From xen-devel-bounces@lists.xenproject.org Tue Apr 01 00:48:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 00:48:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.933269.1335256 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzPnZ-0006Hv-J5; Tue, 01 Apr 2025 00:48:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 933269.1335256; Tue, 01 Apr 2025 00:48: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 1tzPnZ-0006Ho-Fs; Tue, 01 Apr 2025 00:48:13 +0000
Received: by outflank-mailman (input) for mailman id 933269;
 Tue, 01 Apr 2025 00:48: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=p4cc=WT=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1tzPnZ-0006Hi-0y
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 00:48:13 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fae08de2-0e92-11f0-9ffb-bf95429c2676;
 Tue, 01 Apr 2025 02:48:09 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 4BBD961161;
 Tue,  1 Apr 2025 00:48:01 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 60843C4CEE3;
 Tue,  1 Apr 2025 00:48: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: fae08de2-0e92-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1743468487;
	bh=NZ82hI+qO7plWorq+dxS86hxfYMJlAP+dDEZh6tc7vk=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=qbVRXzRimWfuwn0ZBCOKKlJ7HlXYL4h3IO5VBnu5BVqU27vrcpC7zm3zBjGCS8Gzu
	 p95rcU/dSqQgKT8GNXnIXQNYATHTWXHSXwCBKkWjmYRGe5aLsu8u97Y2Oioo2zwCN9
	 z+UG0+O9g61qQFSU0mwEfUpOSNwHtGawYS8mKxJaMQ6D4A6jVhv/kK/ODD5mwDl8iT
	 ARN4j4Z8wuVLKXQuxZ9N1o3ERUIMd6Wun7+p5SBWlgO2VM8qH1epUlt9TS8CWiTTX1
	 wzvezPjhj9s6HKsVR1usiK5xDLQzdWnyivsMlmUOeVXdwh2F0GtObubx1WGcpHFPyr
	 7K2IZM/rqOMVw==
Date: Mon, 31 Mar 2025 17:48:03 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Stefano Stabellini <sstabellini@kernel.org>
cc: Jan Beulich <jbeulich@suse.com>, 
    Stefano Stabellini <stefano.stabellini@amd.com>, andrew.cooper3@citrix.com, 
    roger.pau@citrix.com, julien@xen.org, michal.orzel@amd.com, 
    bertrand.marquis@arm.com, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v3] xen: simplify bitmap_to_xenctl_bitmap for little
 endian
In-Reply-To: <alpine.DEB.2.22.394.2503311656190.563920@ubuntu-linux-20-04-desktop>
Message-ID: <alpine.DEB.2.22.394.2503311700160.563920@ubuntu-linux-20-04-desktop>
References: <20250327233419.1119763-1-stefano.stabellini@amd.com> <217ed304-ca5d-4422-a187-da5493cecb5e@suse.com> <alpine.DEB.2.22.394.2503311656190.563920@ubuntu-linux-20-04-desktop>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Mon, 31 Mar 2025, Stefano Stabellini wrote:
> On Mon, 31 Mar 2025, Jan Beulich wrote:
> > On 28.03.2025 00:34, Stefano Stabellini wrote:
> > > --- a/xen/common/bitmap.c
> > > +++ b/xen/common/bitmap.c
> > > @@ -52,7 +52,7 @@ static void clamp_last_byte(uint8_t *bp, unsigned int nbits)
> > >  	unsigned int remainder = nbits % 8;
> > >  
> > >  	if (remainder)
> > > -		bp[nbits/8] &= (1U << remainder) - 1;
> > > +		*bp &= (1U << remainder) - 1;
> > >  }
> > 
> > Technically there's nothing wrong with dropping the if(), I think. Even more
> > so then than now, ...

We need to keep the if because otherwise we end up zeroing the last
8-bit-aligned byte


> > > @@ -338,7 +338,6 @@ static void bitmap_long_to_byte(uint8_t *bp, const unsigned long *lp,
> > >  			nbits -= 8;
> > >  		}
> > >  	}
> > > -	clamp_last_byte(bp, nbits);
> > >  }
> > >  
> > >  static void bitmap_byte_to_long(unsigned long *lp, const uint8_t *bp,
> > > @@ -363,7 +362,6 @@ static void bitmap_long_to_byte(uint8_t *bp, const unsigned long *lp,
> > >  				unsigned int nbits)
> > >  {
> > >  	memcpy(bp, lp, DIV_ROUND_UP(nbits, BITS_PER_BYTE));
> > > -	clamp_last_byte(bp, nbits);
> > >  }
> > 
> > ... with the two prior call sites now shrunk to ...
> > 
> > > @@ -384,21 +382,41 @@ int bitmap_to_xenctl_bitmap(struct xenctl_bitmap *xenctl_bitmap,
> > >      uint8_t zero = 0;
> > >      int err = 0;
> > >      unsigned int xen_bytes = DIV_ROUND_UP(nbits, BITS_PER_BYTE);
> > > -    uint8_t *bytemap = xmalloc_array(uint8_t, xen_bytes);
> > > -
> > > -    if ( !bytemap )
> > > -        return -ENOMEM;
> > > +    uint8_t last;
> > >  
> > >      guest_bytes = DIV_ROUND_UP(xenctl_bitmap->nr_bits, BITS_PER_BYTE);
> > >      copy_bytes  = min(guest_bytes, xen_bytes);
> > >  
> > > -    bitmap_long_to_byte(bytemap, bitmap, nbits);
> > > +    if ( IS_ENABLED(__BIG_ENDIAN) )
> > > +    {
> > > +        uint8_t *bytemap = xmalloc_array(uint8_t, xen_bytes);
> > >  
> > > -    if ( copy_bytes &&
> > > -         copy_to_guest(xenctl_bitmap->bitmap, bytemap, copy_bytes) )
> > > -        err = -EFAULT;
> > > +        if ( !bytemap )
> > > +            return -ENOMEM;
> > >  
> > > -    xfree(bytemap);
> > > +        bitmap_long_to_byte(bytemap, bitmap, nbits);
> > > +        last = bytemap[nbits / 8];
> > > +
> > > +        if ( copy_bytes > 1 &&
> > > +             copy_to_guest(xenctl_bitmap->bitmap, bytemap, copy_bytes - 1) )
> > > +            err = -EFAULT;
> > > +
> > > +        xfree(bytemap);
> > > +    }
> > > +    else
> > > +    {
> > > +        const uint8_t *bytemap = (const uint8_t *)bitmap;
> > > +        last = bytemap[nbits / 8];
> > > +
> > > +        if ( copy_bytes > 1 &&
> > > +             copy_to_guest(xenctl_bitmap->bitmap, bytemap, copy_bytes - 1) )
> > > +            err = -EFAULT;
> > > +    }
> > > +
> > > +    clamp_last_byte(&last, nbits);
> > 
> > ... just one, I wonder if that being a separate function is actually still
> > necessary.
> > 
> > As indicated before, I think it would be nice if the two identical copy-out
> > operations could also be folded.
>  
> Please see: https://marc.info/?l=xen-devel&m=174319650100975
> 
> Other than that, I addressed all the other points

Sorry, that's not true, one comment above



From xen-devel-bounces@lists.xenproject.org Tue Apr 01 00:50:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 00:50:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.933280.1335265 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzPpc-0007iQ-Tl; Tue, 01 Apr 2025 00:50:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 933280.1335265; Tue, 01 Apr 2025 00:50: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 1tzPpc-0007iJ-Qa; Tue, 01 Apr 2025 00:50:20 +0000
Received: by outflank-mailman (input) for mailman id 933280;
 Tue, 01 Apr 2025 00:50:20 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=TUTC=WT=amd.com=stefano.stabellini@srs-se1.protection.inumbo.net>)
 id 1tzPpb-0007iD-Ma
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 00:50:19 +0000
Received: from NAM11-CO1-obe.outbound.protection.outlook.com
 (mail-co1nam11on20601.outbound.protection.outlook.com
 [2a01:111:f403:2416::601])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 46e6f017-0e93-11f0-9ea7-5ba50f476ded;
 Tue, 01 Apr 2025 02:50:17 +0200 (CEST)
Received: from BL1PR13CA0232.namprd13.prod.outlook.com (2603:10b6:208:2bf::27)
 by IA0PR12MB8226.namprd12.prod.outlook.com (2603:10b6:208:403::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.44; Tue, 1 Apr
 2025 00:50:11 +0000
Received: from BL6PEPF00020E64.namprd04.prod.outlook.com
 (2603:10b6:208:2bf:cafe::5e) by BL1PR13CA0232.outlook.office365.com
 (2603:10b6:208:2bf::27) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8606.21 via Frontend Transport; Tue,
 1 Apr 2025 00:50:11 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BL6PEPF00020E64.mail.protection.outlook.com (10.167.249.25) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8606.22 via Frontend Transport; Tue, 1 Apr 2025 00:50:10 +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, 31 Mar
 2025 19:50:10 -0500
Received: from smtp.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; Mon, 31 Mar 2025 19:50:09 -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: 46e6f017-0e93-11f0-9ea7-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=XZN4vu8818YkPvLHSjYkK3fXn75B6cvgfJ3Y/kXRjtvkK0CDFA4k1AfG61VMlhl4VrCu9+lnXohOgb3Zu8lFLpnSv0qfB/Q8iM/JekYaS+Y6/mDejuAVXQG8n4SLYyHInY0dpYyHLT1aEJDJd7BRfAPj8FCTJm6SDFUZLynWCbhpoTGuk46jVFX3R4sbaBWIufEKe/9xuh0rkd0+4B1ZIC4LJad7eOtP3DB44PjBn9vD+ST/2iU25B6U4vTpvhZdZlMOtKT+LBsVWH4808JYHQZ2vd60acGaobvM6wSwkj52xLdDAEBZCheX7DpeiZykHQvmJYv9GM4hEgEoZvh5kw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=QOh1PMhAmneXmi4SqQjeQtPfLaspvsz6qTHru6ouAok=;
 b=UaockEq4PmaTCWXRakySE4lLhx7mrZ0sSkPrvexYgxwSHjqV3p5lJFlzM9XjFZlwP7PzG3cKekOik/kFowbebWKuSqnG2sZW/ItUzZThb24qsWSHi3eCfvFCHrGYFJWAzafy9rfsx4rV2sf25kZdo4LLJKoAJ+nQeLjA1cBRXrGlQ8rXPP7kbT+H8w+U0hJ0UyjM87wC9+s+TMCT9ZzkGzmE1L5hR0G0G1yIjuEIRwsVh9Pe9rsr3UnYPmXm50xpj9+TKFE+Joeu0P7ryCpL78j4C4MB0eRux3KrArHji5QvhI62Fd1oNRKyuIKZOuaRZAScxN40uMQ9ELcslgiyhA==
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=QOh1PMhAmneXmi4SqQjeQtPfLaspvsz6qTHru6ouAok=;
 b=jTvVzFTaHlaKsfJ200otkbktqPDGMVz3zSOCGREV18tWPXwSMxtcJImiX1bKW3vPN3/+O5pOY/s4YXoyeIy8rToP58HRNueh8DQtt2NbkttM8cCYaEIwp+/dqx95jMvxS1ydmMv6SUtrgstREhkJ+hY6N49+MAbssNki+LSCPvo=
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: Stefano Stabellini <stefano.stabellini@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <sstabellini@kernel.org>, <jbeulich@suse.com>, <julien@xen.org>,
	<michal.orzel@amd.com>, <bertrand.marquis@arm.com>, <roger.pau@citrix.com>,
	<andrew.cooper3@citrix.com>, Stefano Stabellini <stefano.stabellini@amd.com>
Subject: [PATCH v4] xen: simplify bitmap_to_xenctl_bitmap for little endian
Date: Mon, 31 Mar 2025 17:50:08 -0700
Message-ID: <20250401005008.2787764-1-stefano.stabellini@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 (SATLEXMB04.amd.com: stefano.stabellini@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL6PEPF00020E64:EE_|IA0PR12MB8226:EE_
X-MS-Office365-Filtering-Correlation-Id: 64a27bf4-b9a0-488d-cdcd-08dd70b727eb
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|376014|36860700013|34020700016|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?J/qzyqmhbATRFLj3AxHwRHBjzvxUlVgOPM8iSaeVlOvOyDZQmrJy1IMUNeoy?=
 =?us-ascii?Q?jP50VWp8ZkRmXeKOi8eNI09vHGe+282OE3Y8ri2wLbAZTJqsuz45eLyJvWqz?=
 =?us-ascii?Q?clhZyPcKj98a06uz8AhBg1vnn0bQ4HKx2eK5wI6ATFD4RzvaiOI7I9QUcKsx?=
 =?us-ascii?Q?tn9PsRoWxU+hMCFMYKJ+sEUYxgOKda5j6e8xDpcpxziLUN0dBT4caHnFmEXb?=
 =?us-ascii?Q?8YAabZ7mWhY7PLxQhUQfur+8N9SKQIgMEWRUGl05xJsFqMiPJ3lVOuXls7X4?=
 =?us-ascii?Q?IaWdtTtG1yB67x/+r1kLVcw7q7wJDZXnB7tl5Q01SKRu525COkIYgs8tlsWS?=
 =?us-ascii?Q?mdsN6uO3cLX+gUDsoX3Q+v4eVL1EuwsxHCcOv4wEAzcGvH9YiOGEOjb0FlMg?=
 =?us-ascii?Q?N5CcdyhSLxYN4jcL96MI7XPf9uKyztbMFjF6l4vvYfKDmtR4yS3ZC4MAR3VV?=
 =?us-ascii?Q?OqBTlb4+k85EwO5uKDW4Twtdem1sfuRDTw/Os8gjw1NS8KAtIS7NEGdisqGw?=
 =?us-ascii?Q?mWVVQFcIap2Mj5SkoMIE9OV5aEiEUsQQTDrTh1HvNHVPoxFpHcY1zrGb7rlW?=
 =?us-ascii?Q?tulLCuqe3Hs/YJMYVXYhOuJb4Izel8PYncCIDJ77JhoAytnx3ygDiPl+nh5A?=
 =?us-ascii?Q?X9DS2U0gvY3N4ASkKLSI7duM9W7nYd+jETi6dq57eZbf7U11rDDFyMKdObju?=
 =?us-ascii?Q?kLM8MVrU76RaWLgDP6E/HG8ivuC/yP6woqjfUUTDhKC+znBfWytijUYZhtxu?=
 =?us-ascii?Q?XWBf8V3NCY5MmG3uql0xC1faUgGZIBcc3/G7a+1ZBT0xzh5EUhcr3rXOlkzl?=
 =?us-ascii?Q?7aQ42VyShYn340+HDhHjhQSRUKwhnoPq1MqUFTR+raYXBFMP1J4Iki/60daQ?=
 =?us-ascii?Q?A/IUqcefOqNwFtK0uTjPfNM7T8YKqhUnNYE/C7VyiCMjephaqYUrxJtdidGx?=
 =?us-ascii?Q?JIP99kdNH+muECvN13naUDOcioze4qSfgNMXSDfXLKUT0HAfdhT9c2aPNsqM?=
 =?us-ascii?Q?5GzVTeWlFMgbaKiLW9Vgv6Y9OZBf0B0wV4HH3DzU3ksDCyH+HddUVFll3nVj?=
 =?us-ascii?Q?Mz1S3jboKHivsiUGpJiNY+sbx9QK8VlZOemuaXrquZsYelCavlwqeTdzUSsD?=
 =?us-ascii?Q?6nnrhnCIhSpMD/z03NP8Bw1EGX61D2n0Qkd8MPz9sr364fUv6p9qQTNWNnGE?=
 =?us-ascii?Q?bewBF9WPIcfufO9dl4bFnmo7oW888yeZVssSPFW0BiGE+2O0fpiUX0Aq8pI1?=
 =?us-ascii?Q?aPh74bQtoZtjsy9IQPQfhonpsjjO6IaXyoL107TyjYF66rBwIDSvsYf9xcpg?=
 =?us-ascii?Q?s64NyUjwUDlUdrVLH6F1y/3pu8Rrh/9B3065JjUR44BdqLFIJ2B3V21xsz3g?=
 =?us-ascii?Q?DtYXnzjEy/CCgYTBwHJTFatPcV8Zrhg7d42eu1ESc8NVDyzP1UBfIu37gGW3?=
 =?us-ascii?Q?zLG+Q7euvbfFScIrA/gZYu89zAQ/QdsBydRmzAgVggk8t6O82YPasgh9VGxL?=
 =?us-ascii?Q?terTuSjfFrCrvms=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)(82310400026)(376014)(36860700013)(34020700016)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Apr 2025 00:50:10.7100
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 64a27bf4-b9a0-488d-cdcd-08dd70b727eb
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:
	BL6PEPF00020E64.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PR12MB8226

The little endian implementation of bitmap_to_xenctl_bitmap leads to
unnecessary xmallocs and xfrees. Given that Xen only supports little
endian architectures, it is worth optimizing.

This patch removes the need for the xmalloc on little endian
architectures.

Remove clamp_last_byte as it is only called once and only needs to
modify one byte. Inline it.

Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
---
Changes in v4:
- improve commit message
- remove clamp_last_byte
---
 xen/common/bitmap.c | 64 +++++++++++++++++++++++++++------------------
 1 file changed, 38 insertions(+), 26 deletions(-)

diff --git a/xen/common/bitmap.c b/xen/common/bitmap.c
index 3da63a32a6..10d19f4c0d 100644
--- a/xen/common/bitmap.c
+++ b/xen/common/bitmap.c
@@ -40,21 +40,6 @@
  * for the best explanations of this ordering.
  */
 
-/*
- * If a bitmap has a number of bits which is not a multiple of 8 then
- * the last few bits of the last byte of the bitmap can be
- * unexpectedly set which can confuse consumers (e.g. in the tools)
- * who also round up their loops to 8 bits. Ensure we clear those left
- * over bits so as to prevent surprises.
- */
-static void clamp_last_byte(uint8_t *bp, unsigned int nbits)
-{
-	unsigned int remainder = nbits % 8;
-
-	if (remainder)
-		bp[nbits/8] &= (1U << remainder) - 1;
-}
-
 int __bitmap_empty(const unsigned long *bitmap, unsigned int bits)
 {
 	int k, lim = bits/BITS_PER_LONG;
@@ -338,7 +323,6 @@ static void bitmap_long_to_byte(uint8_t *bp, const unsigned long *lp,
 			nbits -= 8;
 		}
 	}
-	clamp_last_byte(bp, nbits);
 }
 
 static void bitmap_byte_to_long(unsigned long *lp, const uint8_t *bp,
@@ -363,7 +347,6 @@ static void bitmap_long_to_byte(uint8_t *bp, const unsigned long *lp,
 				unsigned int nbits)
 {
 	memcpy(bp, lp, DIV_ROUND_UP(nbits, BITS_PER_BYTE));
-	clamp_last_byte(bp, nbits);
 }
 
 static void bitmap_byte_to_long(unsigned long *lp, const uint8_t *bp,
@@ -377,6 +360,13 @@ static void bitmap_byte_to_long(unsigned long *lp, const uint8_t *bp,
 
 #endif
 
+/*
+ * If a bitmap has a number of bits which is not a multiple of 8 then
+ * the last few bits of the last byte of the bitmap can be
+ * unexpectedly set which can confuse consumers (e.g. in the tools)
+ * who also round up their loops to 8 bits. Ensure we clear those left
+ * over bits so as to prevent surprises.
+ */
 int bitmap_to_xenctl_bitmap(struct xenctl_bitmap *xenctl_bitmap,
                             const unsigned long *bitmap, unsigned int nbits)
 {
@@ -384,21 +374,43 @@ int bitmap_to_xenctl_bitmap(struct xenctl_bitmap *xenctl_bitmap,
     uint8_t zero = 0;
     int err = 0;
     unsigned int xen_bytes = DIV_ROUND_UP(nbits, BITS_PER_BYTE);
-    uint8_t *bytemap = xmalloc_array(uint8_t, xen_bytes);
-
-    if ( !bytemap )
-        return -ENOMEM;
+    uint8_t last;
 
     guest_bytes = DIV_ROUND_UP(xenctl_bitmap->nr_bits, BITS_PER_BYTE);
     copy_bytes  = min(guest_bytes, xen_bytes);
 
-    bitmap_long_to_byte(bytemap, bitmap, nbits);
+    if ( IS_ENABLED(__BIG_ENDIAN) )
+    {
+        uint8_t *bytemap = xmalloc_array(uint8_t, xen_bytes);
 
-    if ( copy_bytes &&
-         copy_to_guest(xenctl_bitmap->bitmap, bytemap, copy_bytes) )
-        err = -EFAULT;
+        if ( !bytemap )
+            return -ENOMEM;
 
-    xfree(bytemap);
+        bitmap_long_to_byte(bytemap, bitmap, nbits);
+        last = bytemap[nbits / 8];
+
+        if ( copy_bytes > 1 &&
+             copy_to_guest(xenctl_bitmap->bitmap, bytemap, copy_bytes - 1) )
+            err = -EFAULT;
+
+        xfree(bytemap);
+    }
+    else
+    {
+        const uint8_t *bytemap = (const uint8_t *)bitmap;
+        last = bytemap[nbits / 8];
+
+        if ( copy_bytes > 1 &&
+             copy_to_guest(xenctl_bitmap->bitmap, bytemap, copy_bytes - 1) )
+            err = -EFAULT;
+    }
+
+    if ( nbits % 8 )
+        last &= (1U << (nbits % 8)) - 1;
+
+    if ( copy_bytes > 0 &&
+         copy_to_guest_offset(xenctl_bitmap->bitmap, copy_bytes - 1, &last, 1) )
+        err = -EFAULT;
 
     for ( i = copy_bytes; !err && i < guest_bytes; i++ )
         if ( copy_to_guest_offset(xenctl_bitmap->bitmap, i, &zero, 1) )
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Apr 01 00:52:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 00:52:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.933295.1335275 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzPrz-00012s-CB; Tue, 01 Apr 2025 00:52:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 933295.1335275; Tue, 01 Apr 2025 00: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 1tzPrz-00012l-99; Tue, 01 Apr 2025 00:52:47 +0000
Received: by outflank-mailman (input) for mailman id 933295;
 Tue, 01 Apr 2025 00:52: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=Dnoa=WT=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1tzPrw-00012a-GM
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 00:52:45 +0000
Received: from mail-10628.protonmail.ch (mail-10628.protonmail.ch
 [79.135.106.28]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9d7e3286-0e93-11f0-9ffb-bf95429c2676;
 Tue, 01 Apr 2025 02:52:41 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9d7e3286-0e93-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1743468760; x=1743727960;
	bh=GFqthro3iq6tf+JDFaLzzXcjIdmu4fT0hxT+wTrVwBk=;
	h=Date:To:From:Cc:Subject:Message-ID:Feedback-ID:From:To:Cc:Date:
	 Subject:Reply-To:Feedback-ID:Message-ID:BIMI-Selector:
	 List-Unsubscribe:List-Unsubscribe-Post;
	b=QFhMeFhIKw4VC9zjG3iF8PSy/PFNYiNAVIGDcC+het2nmyYd6qAfeJLPWD4C3aP0H
	 2B9yrrvCDG1iKVKmtOhtIEAgiHdQ8gPg1tBX7QnzMDpHTteZaF+pVObR1mzCSMkh4m
	 UNEJH8F1PSbFp71G8ckpYTTtX3JsQ3bn3JNotqxBpc1GlrcWLc688uOXH6FKLaVd9p
	 Sdw+5hIOfjyJR5w3f6MFLIhbbqBiqy7LScOF0/YYWEoa8pG8BZYAwX8sgWAzzO30H0
	 /mvJyjm2J4DrofsIZ/tG18ZQPVu784vmrPhsoWhknyyALSwybwSpLpQggEUMITOXZT
	 5jHXXg3IG+upA==
Date: Tue, 01 Apr 2025 00:52:33 +0000
To: xen-devel@lists.xenproject.org
From: dmkhn@proton.me
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org, dmukhin@ford.com
Subject: [PATCH v1 0/3] xen/domain: updates to hardware emulation flags
Message-ID: <20250401005224.461325-1-dmukhin@ford.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 744bf75cc58d419b653e38a1aaca5637be21d919
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

The patch series introduces use of d->arch.emulation_flags for non-x86
platforms (patch 1) and hooks emulation_flags to 'q' keyhandler for
debugging. emulation_flags on non-x86 systems will be used in the follow
on virtual UARTs clean up series.

Also, series adds helper macros (patch 2) which are used in re-write of
emulation_flags_ok() on x86 (patch 3, depends on patch 2).

Originally, the code was part of [1], part of NS16550 emulator v3 series.

[1] https://lore.kernel.org/xen-devel/20250103-vuart-ns8250-v3-v1-6-c5d36b3=
1d66c@ford.com/
[2] Link to CI run: https://gitlab.com/xen-project/people/dmukhin/xen/-/pip=
elines/1745622772

Denis Mukhin (3):
  xen/domain: introduce non-x86 hardware emulation flags
  x86/domain: add helpers to simplify emulation flags management
  xen/domain: rewrite emulation_flags_ok()

 tools/python/xen/lowlevel/xc/xc.c   |  4 +---
 xen/arch/arm/include/asm/domain.h   |  2 ++
 xen/arch/ppc/include/asm/domain.h   |  2 ++
 xen/arch/riscv/include/asm/domain.h |  2 ++
 xen/arch/x86/domain.c               | 29 +++++++++++------------------
 xen/arch/x86/include/asm/domain.h   |  2 +-
 xen/common/keyhandler.c             |  1 +
 xen/include/public/arch-x86/xen.h   |  7 +++++++
 8 files changed, 27 insertions(+), 22 deletions(-)

--=20
2.34.1




From xen-devel-bounces@lists.xenproject.org Tue Apr 01 00:52:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 00:52:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.933296.1335281 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzPrz-00016E-M6; Tue, 01 Apr 2025 00:52:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 933296.1335281; Tue, 01 Apr 2025 00: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 1tzPrz-00015V-HQ; Tue, 01 Apr 2025 00:52:47 +0000
Received: by outflank-mailman (input) for mailman id 933296;
 Tue, 01 Apr 2025 00:52:46 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Dnoa=WT=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1tzPry-00012a-4g
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 00:52:46 +0000
Received: from mail-10630.protonmail.ch (mail-10630.protonmail.ch
 [79.135.106.30]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9f4d30db-0e93-11f0-9ffb-bf95429c2676;
 Tue, 01 Apr 2025 02:52:44 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9f4d30db-0e93-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1743468763; x=1743727963;
	bh=VbGdRQcIdJuxOnTDcd1yoix3INOLV2Z0Txcr2KwDyRY=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=BrRU3CUwzP0YzrmSowanjdjabarJvCg4qgtATyyKwb/5lPSYRatEF4D+XolhR2xlj
	 tRu2seO2BrG0Jo2rmzBcDtl7xo/cwHrFZdRLUweGq7p3FDtVbuohaQ0Lr4RKsEwHjY
	 WG+nS/byz1ps5lDL3mbD4VUsSrJtpCz7QXq6I2oOMWMiknWNyeYpU21gfJyO5c9GhJ
	 ADTrkUdPbSa2rdE7QaRmS+AVOSGf8TzR045NVY11WPlkG+Bwh/GRWUj4cJx3KezORg
	 6rjE1hivbAw8LWNHwO7d3Mxb0THqXvMskcZHKI+fZZGTPcXy2M/v4hbu0Q99mTWKpd
	 QKD6bOvzWYXjg==
Date: Tue, 01 Apr 2025 00:52:38 +0000
To: xen-devel@lists.xenproject.org
From: dmkhn@proton.me
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org, dmukhin@ford.com
Subject: [PATCH v1 1/3] xen/domain: introduce non-x86 hardware emulation flags
Message-ID: <20250401005224.461325-2-dmukhin@ford.com>
In-Reply-To: <20250401005224.461325-1-dmukhin@ford.com>
References: <20250401005224.461325-1-dmukhin@ford.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 18d18a5caa72342da17d3b5f5ef42323c57fea6b
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

From: Denis Mukhin <dmukhin@ford.com>

Define per-architecture emulation_flags for configuring in-hypervisor
emulators.

Print d->arch.emulation_flags from 'q' keyhandler for better traceability
while debugging in-hypervisor hardware emulators.

Simplify the x86's emulation_flags description and make it consistent
with newly introduced non-x86 descriptions.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
 xen/arch/arm/include/asm/domain.h   | 2 ++
 xen/arch/ppc/include/asm/domain.h   | 2 ++
 xen/arch/riscv/include/asm/domain.h | 2 ++
 xen/arch/x86/include/asm/domain.h   | 2 +-
 xen/common/keyhandler.c             | 1 +
 5 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/xen/arch/arm/include/asm/domain.h b/xen/arch/arm/include/asm/d=
omain.h
index 50b6a4b009..279ff64fe0 100644
--- a/xen/arch/arm/include/asm/domain.h
+++ b/xen/arch/arm/include/asm/domain.h
@@ -119,6 +119,8 @@ struct arch_domain
     void *tee;
 #endif
=20
+    /* Hardware emulation flags. */
+    uint32_t emulation_flags;
 }  __cacheline_aligned;
=20
 struct arch_vcpu
diff --git a/xen/arch/ppc/include/asm/domain.h b/xen/arch/ppc/include/asm/d=
omain.h
index 3a447272c6..8aa7b4a6ac 100644
--- a/xen/arch/ppc/include/asm/domain.h
+++ b/xen/arch/ppc/include/asm/domain.h
@@ -21,6 +21,8 @@ struct arch_vcpu {
=20
 struct arch_domain {
     struct hvm_domain hvm;
+    /* Hardware emulation flags. */
+    uint32_t emulation_flags;
 };
=20
 #include <xen/sched.h>
diff --git a/xen/arch/riscv/include/asm/domain.h b/xen/arch/riscv/include/a=
sm/domain.h
index c3d965a559..b561e6f4f8 100644
--- a/xen/arch/riscv/include/asm/domain.h
+++ b/xen/arch/riscv/include/asm/domain.h
@@ -18,6 +18,8 @@ struct arch_vcpu {
=20
 struct arch_domain {
     struct hvm_domain hvm;
+    /* Hardware emulation flags. */
+    uint32_t emulation_flags;
 };
=20
 #include <xen/sched.h>
diff --git a/xen/arch/x86/include/asm/domain.h b/xen/arch/x86/include/asm/d=
omain.h
index 5fc1d1e5d0..6b877e33a1 100644
--- a/xen/arch/x86/include/asm/domain.h
+++ b/xen/arch/x86/include/asm/domain.h
@@ -456,7 +456,7 @@ struct arch_domain
     /* Don't unconditionally inject #GP for unhandled MSRs. */
     bool msr_relaxed;
=20
-    /* Emulated devices enabled bitmap. */
+    /* Hardware emulation flags. */
     uint32_t emulation_flags;
 } __cacheline_aligned;
=20
diff --git a/xen/common/keyhandler.c b/xen/common/keyhandler.c
index 0bb842ec00..73f5134b68 100644
--- a/xen/common/keyhandler.c
+++ b/xen/common/keyhandler.c
@@ -306,6 +306,7 @@ static void cf_check dump_domains(unsigned char key)
             if ( test_bit(i, &d->watchdog_inuse_map) )
                 printk("    watchdog %d expires in %d seconds\n",
                        i, (u32)((d->watchdog_timer[i].expires - NOW()) >> =
30));
+        printk("    emulation_flags %#x\n", d->arch.emulation_flags);
=20
         arch_dump_domain_info(d);
=20
--=20
2.34.1




From xen-devel-bounces@lists.xenproject.org Tue Apr 01 00:52:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 00:52:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.933297.1335297 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzPs4-0001XU-0R; Tue, 01 Apr 2025 00:52:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 933297.1335297; Tue, 01 Apr 2025 00: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 1tzPs3-0001XG-RK; Tue, 01 Apr 2025 00:52:51 +0000
Received: by outflank-mailman (input) for mailman id 933297;
 Tue, 01 Apr 2025 00:52:49 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Dnoa=WT=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1tzPs1-0001Vj-P0
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 00:52:49 +0000
Received: from mail-24418.protonmail.ch (mail-24418.protonmail.ch
 [109.224.244.18]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a1db7de8-0e93-11f0-9ea7-5ba50f476ded;
 Tue, 01 Apr 2025 02:52:48 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a1db7de8-0e93-11f0-9ea7-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1743468767; x=1743727967;
	bh=xy+Rn46fun91syrPY3ZLIJ9vjLWYFH0FTIVp7v5cQ80=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=blLYzK2HVp83a/yMjTd34LOlCYWV9fKn0Mlr1SvjJ3Fgv/Wp1zTxe8VdImo16FpKe
	 FvtLBxjk1is9hPlWfOd6UyfkFf8HNwKHgddseVdlQ6ST/MvN6M3x/jzYUojxYoX8yF
	 Hzv6QRfzg3iAj82X3B473JD/abkIuXQnwKlCB9fZfJFuPvuEFfIIJhc9FsIQpuJF37
	 MScUtCRHDpB4UttOvYKus9kuO4OIWCgMa2MNC0WRA5vDSFCKQIwQS/BIrIbs5P2BMA
	 lcrsNQBZGqvcB8fuKQfGS02+TrLEOfwan6/YcMYyI5Ng9s4LzVwf7Inu2gVarz9HU/
	 oSWoffrJY7P1A==
Date: Tue, 01 Apr 2025 00:52:42 +0000
To: xen-devel@lists.xenproject.org
From: dmkhn@proton.me
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org, dmukhin@ford.com
Subject: [PATCH v1 2/3] x86/domain: add helpers to simplify emulation flags management
Message-ID: <20250401005224.461325-3-dmukhin@ford.com>
In-Reply-To: <20250401005224.461325-1-dmukhin@ford.com>
References: <20250401005224.461325-1-dmukhin@ford.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 2433a0764aebe7bc34d954ffd0da932cc05b0f2c
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

From: Denis Mukhin <dmukhin@ford.com>

Introduce XEN_X86_EMU_BASELINE and XEN_X86_EMU_OPTIONAL to simplify
d->arch.emulation_flags management in the code.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
 tools/python/xen/lowlevel/xc/xc.c | 4 +---
 xen/include/public/arch-x86/xen.h | 7 +++++++
 2 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/tools/python/xen/lowlevel/xc/xc.c b/tools/python/xen/lowlevel/=
xc/xc.c
index 9feb12ae2b..2c01d47575 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,
=20
 #if defined (__i386) || defined(__x86_64__)
     if ( config.flags & XEN_DOMCTL_CDF_hvm )
-        config.arch.emulation_flags =3D XEN_X86_EMU_ALL &
-                                      ~(XEN_X86_EMU_VPCI |
-                                        XEN_X86_EMU_USE_PIRQ);
+        config.arch.emulation_flags =3D XEN_X86_EMU_BASELINE;
 #elif defined (__arm__) || defined(__aarch64__)
     config.arch.gic_version =3D XEN_DOMCTL_CONFIG_GIC_NATIVE;
 #else
diff --git a/xen/include/public/arch-x86/xen.h b/xen/include/public/arch-x8=
6/xen.h
index fc24879866..55802720f8 100644
--- a/xen/include/public/arch-x86/xen.h
+++ b/xen/include/public/arch-x86/xen.h
@@ -290,6 +290,13 @@ struct xen_arch_domainconfig {
                                      XEN_X86_EMU_VGA | XEN_X86_EMU_IOMMU |=
   \
                                      XEN_X86_EMU_PIT | XEN_X86_EMU_USE_PIR=
Q |\
                                      XEN_X86_EMU_VPCI)
+
+#define XEN_X86_EMU_OPTIONAL        (XEN_X86_EMU_VPCI | \
+                                     XEN_X86_EMU_USE_PIRQ)
+
+#define XEN_X86_EMU_BASELINE        (XEN_X86_EMU_ALL & ~XEN_X86_EMU_OPTION=
AL)
+
+    /* Hardware emulation flags. */
     uint32_t emulation_flags;
=20
 /*
--=20
2.34.1




From xen-devel-bounces@lists.xenproject.org Tue Apr 01 00:52:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 00:52:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.933299.1335306 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzPs5-0001ma-5x; Tue, 01 Apr 2025 00:52:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 933299.1335306; Tue, 01 Apr 2025 00:52: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 1tzPs5-0001mO-2V; Tue, 01 Apr 2025 00:52:53 +0000
Received: by outflank-mailman (input) for mailman id 933299;
 Tue, 01 Apr 2025 00:52: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=Dnoa=WT=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1tzPs4-0001Vj-0o
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 00:52:52 +0000
Received: from mail-10630.protonmail.ch (mail-10630.protonmail.ch
 [79.135.106.30]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a379d6bf-0e93-11f0-9ea7-5ba50f476ded;
 Tue, 01 Apr 2025 02:52:51 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a379d6bf-0e93-11f0-9ea7-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1743468770; x=1743727970;
	bh=B+nW3wpkgRHCfK9/oUXAoU8jQvHaLOWMAP0n+f15LaY=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=TA1rQmaHsgnCSk9bWlamhagyRoq/7zM0ah9oNGDruOiCQzpvt0xAq+lav9GnU23hq
	 WpGxu3+TIyNOZ7G56HdBRZLKrU2YSeBc8qysNMuBlE5m7EBhbzt8/ktEnp0uxCufkI
	 LA8R0lMwb3sy1n08vYdEu7IkGZrqDoNYr3zovDgJsQZ3KeoijX5zwPa58HiKgkwUxV
	 vbwghoQAwJvb5+pqdHx3inwHP34igIIyM2+ciogKI7oe0zlol/7yg3c67jBeS9h265
	 c4wKHez1wuEh/yP4APKKiuvn2GT8f/LjvNaBP08nPD4olDnQWce41EWiOXl6OC9cSE
	 /db/kQoU7MBng==
Date: Tue, 01 Apr 2025 00:52:46 +0000
To: xen-devel@lists.xenproject.org
From: dmkhn@proton.me
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org, dmukhin@ford.com
Subject: [PATCH v1 3/3] xen/domain: rewrite emulation_flags_ok()
Message-ID: <20250401005224.461325-4-dmukhin@ford.com>
In-Reply-To: <20250401005224.461325-1-dmukhin@ford.com>
References: <20250401005224.461325-1-dmukhin@ford.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: bee36f03c1d6eac652f496a7ccdb1508ba725863
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

From: Denis Mukhin <dmukhin@ford.com>

Rewrite emulation_flags_ok() using XEN_X86_EMU_{OPTIONAL,BASELINE}
to simplify future modifications.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
Came in the context of NS16550 emulator v3 series:
  https://lore.kernel.org/xen-devel/20250103-vuart-ns8250-v3-v1-0-c5d36b31d=
66c@ford.com/

After modifying emulation_flags_ok() with a new NS16550 vUART
configuration switch passed from the toolstack for the HVM
case, I decided to look into how to improve emulation_flags_ok().
---
 xen/arch/x86/domain.c | 29 +++++++++++------------------
 1 file changed, 11 insertions(+), 18 deletions(-)

diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index 15c5e2a652..23051bb176 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -750,25 +750,18 @@ static bool emulation_flags_ok(const struct domain *d=
, uint32_t emflags)
     BUILD_BUG_ON(X86_EMU_ALL !=3D XEN_X86_EMU_ALL);
 #endif
=20
-    if ( is_hvm_domain(d) )
-    {
-        if ( is_hardware_domain(d) &&
-             emflags !=3D (X86_EMU_VPCI | X86_EMU_LAPIC | X86_EMU_IOAPIC) =
)
-            return false;
-        if ( !is_hardware_domain(d) &&
-             /* HVM PIRQ feature is user-selectable. */
-             (emflags & ~X86_EMU_USE_PIRQ) !=3D
-             (X86_EMU_ALL & ~(X86_EMU_VPCI | X86_EMU_USE_PIRQ)) &&
-             emflags !=3D X86_EMU_LAPIC )
-            return false;
-    }
-    else if ( emflags !=3D 0 && emflags !=3D X86_EMU_PIT )
-    {
-        /* PV or classic PVH. */
-        return false;
-    }
+    /* PV or classic PVH */
+    if ( !is_hvm_domain(d) )
+        return emflags =3D=3D 0 || emflags =3D=3D XEN_X86_EMU_PIT;
=20
-    return true;
+    /* HVM */
+    if ( is_hardware_domain(d) )
+        return emflags =3D=3D (XEN_X86_EMU_LAPIC |
+                           XEN_X86_EMU_IOAPIC |
+                           XEN_X86_EMU_VPCI);
+
+    return (emflags & ~XEN_X86_EMU_OPTIONAL) =3D=3D XEN_X86_EMU_BASELINE |=
|
+            emflags =3D=3D XEN_X86_EMU_LAPIC;
 }
=20
 void __init arch_init_idle_domain(struct domain *d)
--=20
2.34.1




From xen-devel-bounces@lists.xenproject.org Tue Apr 01 01:18:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 01:18:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.933349.1335346 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzQGN-0007To-Nz; Tue, 01 Apr 2025 01:17:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 933349.1335346; Tue, 01 Apr 2025 01:17:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzQGN-0007Tb-LD; Tue, 01 Apr 2025 01:17:59 +0000
Received: by outflank-mailman (input) for mailman id 933349;
 Tue, 01 Apr 2025 01:17: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=gZL1=WT=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1tzQGM-0006nG-Ce
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 01:17:58 +0000
Received: from EUR02-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur02on20630.outbound.protection.outlook.com
 [2a01:111:f403:2607::630])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 245813c6-0e97-11f0-9ea7-5ba50f476ded;
 Tue, 01 Apr 2025 03:17:56 +0200 (CEST)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by PA4PR03MB6703.eurprd03.prod.outlook.com
 (2603:10a6:102:ec::12) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.46; Tue, 1 Apr
 2025 01:17: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%4]) with mapi id 15.20.8534.043; Tue, 1 Apr 2025
 01:17: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: 245813c6-0e97-11f0-9ea7-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Oj+tm7K88H1MPomCItq+65O8sldxVITws5ECAYwPaFuFd8OMpYF6sTrLRHxaBQzcwoRO6o01Bep1Dd9K+PLR2DsjXewyw/JT2DO88KbfTHr9uNvBHmxjssO4Wmg6odxAjRFKbZuFDm4BEeFF4EB2w8o7eBc3uljOCSwGTERvURgjePz/whmkrLIMQ5UNUrh7dd5fxp4WGh4Nzn82dbzI5U5jQn5q8C8cfKQs7+Ru32RLt3UKFNonNzu9sAx+v42VPA7r/QWKyez2TOaxSLiB9a1hp+cFEpw8cMR5boi6iF2AMPjjMezK+Pe9iWWrOxF9SS2QfvHY2iujJpcf1i6cVg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=HGPtfu1XySmVw/zK9unEnF48Uef93WdT2NZnuvi0GjM=;
 b=e8K2eMp3aRnoPoUtuAnQxa2oI+MtKt7CQW9vMI5/JdBXLSKw3MFvmrLn/TZk7nmczmKK45rElcmtP/vIXVlc9wHnyWGk6Dak1KmcAwQYbhKNwpIwYRqeQTFkeb2DCMFUnUCuqLSokXnIqSvcOI8UamgdhSb/zZMkHrKJ9KMRMYq4IKsNSvrpLxqbvLpnz0EodwIKorx1tXoxvFAt28rBak4dk9DdNJAy6gqsOCv7QNJ26ucgh0zQY5mWsV9Dvr5WU9IK74jlc2WpcQjsls3rqFxRyUR2XafV6M0A2d9i0aUHImxVQzUCnxdCKn/xC6qh8HuK9hqych/VFEOktOrvWA==
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=HGPtfu1XySmVw/zK9unEnF48Uef93WdT2NZnuvi0GjM=;
 b=QIyQF/3BBmLCCUbx7fSOsupVbRyKEukdcYmFNy7RLNSoxvgoRWNH+F8NnF0h1K6kJV8qXNmiwKt6EdGo1cbKUsyFV/yfT60k2BsYhCnTY6rpncpRr5MPDblFEl+WJKA+xT2l+k9Usvb2VWcoTgI0R6f0oG3g4u5wajGx5VqlGQVM5ksxtUQkBZbCP/qQBI6sDcgJw6TsG0JIu/49Q9O+ZtluurKxQdp6jn1BPNBjhv7ksITzBmigEE4kaddErnA43oyPK+1/OP3oVMnNyfkn5WJLzX5gu5KJsMOgg61+IBD5L10OjyZQPiGrx8JDEaeU6c1qFtRup9o8e1Dwrjnjgg==
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>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, Julien
 Grall <julien@xen.org>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v3 3/3] xen: debug: gcov: add condition coverage support
Thread-Topic: [PATCH v3 3/3] xen: debug: gcov: add condition coverage support
Thread-Index: AQHboqPjQYlXeZrAE0u+zEMqLR0ZhQ==
Date: Tue, 1 Apr 2025 01:17:51 +0000
Message-ID: <20250401011744.2267367-4-volodymyr_babchuk@epam.com>
References: <20250401011744.2267367-1-volodymyr_babchuk@epam.com>
In-Reply-To: <20250401011744.2267367-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.48.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_|PA4PR03MB6703:EE_
x-ms-office365-filtering-correlation-id: 399a3fc3-8d76-4b02-68f6-08dd70bb064b
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?Jg/adk7Pyci12INTJhjq7QhoMvO4U8qyLLFmtl62heHCbflCPXprux4npv?=
 =?iso-8859-1?Q?Cj3qXUGEN33w7oH8i/p3lt8i4Maxqm81eUBv8S/VZE5H/Ts6kDujmTeI8T?=
 =?iso-8859-1?Q?eArPLxjPI9IAxPh+QZanQ/DD0nU1TncB9gY2zSYmjfmKbMGSCm7wjoCqBj?=
 =?iso-8859-1?Q?BgfqSnizv6oU0KJnKKXfRPMG8Zm2zqhcPpZ58ZqcezLAFcjmPz5UnhIIT4?=
 =?iso-8859-1?Q?4Jsl6HalAXsszYYUpNxreqxqJYzvDsHqG6FZS7YXQQQApkrbNdpA+Tya/U?=
 =?iso-8859-1?Q?aunDnsRx/VCgEGI7NQ4MLMkz2KQbWCvHznRi3w43NONOUBzI+yzwUkjekK?=
 =?iso-8859-1?Q?7Lcfv8Ps/GTqEBVcuwd4c9WWAVb5mFC79gKtcxNTu7J6ay4dtBo+RKLBH9?=
 =?iso-8859-1?Q?yDdp1WrtwsGLBnaA2PscFTkLkvJlk0YFjVCNI0osGkJOJMdCNy8apM6Bol?=
 =?iso-8859-1?Q?uT06wvMfsrTzhKqx9VwTsu8Xe4Snvk+t2iAI/kK/VJ2Q5f15AsfUyn9fus?=
 =?iso-8859-1?Q?YpVuJWFyt9XlA05sB9D+SwPeqPJuXpa+2qaoN+teoiGYODMjs3wjdiV2SZ?=
 =?iso-8859-1?Q?xNp0mnKICTEKDRwey+e5z/oXHYu014CkJtu6eN/grtWTpNO83/QNonZCSw?=
 =?iso-8859-1?Q?aLi5Z9SOIHe1H/srqAqjx9s1ulHQGOLS0lqjvJgeP+cTHVi6Djj9gj36zo?=
 =?iso-8859-1?Q?yAv5ImxPoSFEQaLSH+zyypWi3FIRvjyVjPDirFiOQ+mJ6P4JgJM2lG59bH?=
 =?iso-8859-1?Q?kfTztwx7HauhZyR2zTALGBoGM/p2RReLURsfNOs+pDvYPYviwgsd/wq2y1?=
 =?iso-8859-1?Q?V6OxonVH7bab0HPG4VrXJeB4UUPy/Bfc/B1qZW6+3zmfbo3h3ptMQH1AeI?=
 =?iso-8859-1?Q?YJCXIhWAV4JDFQvfQI8LV6OAj7U6MpHXy/dmXH2YJNQ99J6l44ZcJXOeJY?=
 =?iso-8859-1?Q?XfZF56T0VKAtNchsaB3p6mK9nMEBwwnPPLAsQsD/3pDI/j8lny0g6kpaUl?=
 =?iso-8859-1?Q?eQ2UXbvtFuKgYMH8T6d9udCfVpWnrgz7hlhQ/2V/UXAYX2InTCf/UKLBbI?=
 =?iso-8859-1?Q?Nzxb9veyCwUz/I8NVsGkoOn9lBSvUTSKC38E5AcNJ3D3Szs5J4WKGmkJLc?=
 =?iso-8859-1?Q?gYT7j/vqhePrhh+KFsz2XlGFM1QvBHgdWNbHRXcuDjUZK3Xdj2XUtCYiQs?=
 =?iso-8859-1?Q?QvIL42lQtCWgRWERxHbawq0ys4+z8F4PgNTfI4DH528XqLPuoZpZ/cPo+N?=
 =?iso-8859-1?Q?GbmjRfhx5/bqVjIM0FOhV6Wl3Z58CColRSEcCoPn8DcN/DmOcRZ19SMm71?=
 =?iso-8859-1?Q?UKQLma1lhSquEDxl+2lI/h6bMemLKjBHHmdI4pAD1z4x9w4b2CFAaPxQ4i?=
 =?iso-8859-1?Q?pCcuBXm+QT2UOlJm2xlFqTzKiU5QU0prQIiLbjBLQjU423H32IH2IyKGZV?=
 =?iso-8859-1?Q?iYSupNSwoDSWUiTPzlk0WpKUXCQejo459XThhzviqGNQ5gDpjqB+AIcHem?=
 =?iso-8859-1?Q?XHhaLzBbHe5UT5SqtGp/5r?=
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?hMD6/aby3vH4GXE36eywehfK2XS9uI4P1nw7FuHiB1ZMU6SwBuMm34rosL?=
 =?iso-8859-1?Q?ysamHclTW6Ot02r0lSJUjjF9N/Q0LMD+Zm07737cIdxktu4SYmkjY5X70a?=
 =?iso-8859-1?Q?XG+QU2ogB4DuBwTo6wh6T6zRIisJDpxJ+y9W238vqhOinPFYc1VfdyyB53?=
 =?iso-8859-1?Q?uqSRTAcqlqKyubFceZTkxOiJcMeeGhRObrmV2Bcuijxifp/nchzLD+KyPR?=
 =?iso-8859-1?Q?Ka7npV/LRj06GCXwaor2YBZOOD4BoCYz3ecItOOi3Ib6qtvImZczRduMQT?=
 =?iso-8859-1?Q?quEZ1z27B5JTwKj10RUxSRvvkRatJ6JmKxh4mJO9AZV2nvxUkReJOp9UAS?=
 =?iso-8859-1?Q?48Asx6y30ZPcF3lddyPw4UY4BcHr6+MEkDBbZ+BSCgS/G74DYs8uchQNUn?=
 =?iso-8859-1?Q?WtUqoEIHdfNW/1Zh+4NFqH9XTGBke6uMwlrN7rVGG2xA2bgfZX+duRvAcG?=
 =?iso-8859-1?Q?HoL+hPj9mVV1ei9+ScZIWe6hd6VDqKuQvrHtrAzjYqZqJfBsadz0+PjS4u?=
 =?iso-8859-1?Q?uNjOfPnR9D+KN4ZWJ0/dth2fuEhQ/faj/IenSmI5wqKnPtL3qDsz19ZIEn?=
 =?iso-8859-1?Q?cSEomY60XPnl6jPzWwKNpShskuDD/15wY7utiiVPPjiMDp/mKLqyfhx6xY?=
 =?iso-8859-1?Q?IxcA2HkSHNyLhRGTe4nO1lCqitRSl1ql3LcP60ZFdzg5S2V7wegWiIpSkn?=
 =?iso-8859-1?Q?zWrpCEFE6k9L+mQbTn9s9hapqvLfoJGOMWCdbE1/WUTN/bUzznbkEhUGlY?=
 =?iso-8859-1?Q?yRATe+5OVIFLZvPozcGxid4gFNAjwi+RIVgV6A7z7OV8yuWUSwtCaJ4hje?=
 =?iso-8859-1?Q?crvtYLVcl+sK6YJc1fJUdfthziqUSRphEHxCdxcfCZ8+TPdvz8RknrkUb7?=
 =?iso-8859-1?Q?1PSmpMgiMsV9cC3IuIxWg8l6S/NluJP0tiJVTT21/Q7pEq2spAHsDNW6cr?=
 =?iso-8859-1?Q?ay0P98jp5Ux3l0GNfGs0CRI5nv9/jarhZ5b0aHdKvPQJiLA9jhIxBOB6F3?=
 =?iso-8859-1?Q?VUrgcRZGCwC7GmIVIWqAe5EvMjTMXpjJ3/yBgLngSVCWZ/pSxTZ/29xej1?=
 =?iso-8859-1?Q?PYzg3fPvS1/DC4Xob8KLcZjj7TArTYf7thZt/b5G2jT4kYWHZCNYrD4Zj+?=
 =?iso-8859-1?Q?FSzVm66kqR6qMoMqe3NMX76BvcD60KnYmzuJcWV7XxN1CVPRIbQInAPEsR?=
 =?iso-8859-1?Q?zj4rZ0IeR3eXIh9zFfXgsX+Zq3g4YbeMqlPfzB2rJBaSYAXdg2oWICAVXk?=
 =?iso-8859-1?Q?U/I0ZInME7hm7xcvEDk/0Bu5PCR9MqHenDgFU/YCwZpxeKzJfw6YlrWISX?=
 =?iso-8859-1?Q?ujGdlfW0VgFIq+FKauS70IhG6odjVSN2Vo1EW1x5zrQJu87o42EiRl/6HN?=
 =?iso-8859-1?Q?FO7SYIIlJiX0GSfH4NInNPvrXdVsdGfRhScMSk8Rhs+4u3E1wNJswZ04Vy?=
 =?iso-8859-1?Q?odwavlBe9U6zwo8YWon3yAWvNrbsk2e16IeKt6oCy6/faMXJVSNBKwkoaE?=
 =?iso-8859-1?Q?tlOEEFmaGHrIGfkfzU0hhzBqD4cfRBeD5aJjFH1iVlxxB/iU/OUSfcZqU9?=
 =?iso-8859-1?Q?OIj2Z/+8W5/x/q9IsBPwEKXzhWOwfcRg8qvfZs7ImK47ArB72jFEXk1IhR?=
 =?iso-8859-1?Q?00aiA0srN1IH+rNpe1GUc+G2TFMtXb9SLsAU6qH+w/CrKJ/DvG607Pvw?=
 =?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: 399a3fc3-8d76-4b02-68f6-08dd70bb064b
X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Apr 2025 01:17:51.9544
 (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: T7+UJ9blVH+nnhdI5iEPRDZCA9vRPblO5Gjod5i2A8fMYI+rg4NXqSNdfswlmS21fV/GDNtAmorupBKIBoq5eeymKCeRZ/g5kca8iKM4zFA=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR03MB6703

Condition coverage, also known as MC/DC (modified condition/decision
coverage) is a coverage metric that tracks separate outcomes in
boolean expressions.

This patch adds CONFIG_CONDITION_COVERAGE option to enable MC/DC for
GCC. Clang is not supported right now.

Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>

---

Changes in v3:
 - Introduced CC_HAS_MCDC that checks if compiler supports
   required feature
Changes in v2:
 - Move gcc version check from .c file to Rules.mk (I can't find
   an easy way to check GCC version at Kconfig level)
 - Check for gcc 14, not gcc 14.1
---
 xen/Kconfig       | 5 +++++
 xen/Kconfig.debug | 9 +++++++++
 xen/Rules.mk      | 3 +++
 3 files changed, 17 insertions(+)

diff --git a/xen/Kconfig b/xen/Kconfig
index 2128f0ccfc..2bdebfc808 100644
--- a/xen/Kconfig
+++ b/xen/Kconfig
@@ -41,6 +41,11 @@ config CC_SPLIT_SECTIONS
 config CC_HAS_UBSAN
 	def_bool $(cc-option,-fsanitize=3Dundefined)
=20
+# Compiler supports -fcondition-coverage aka MC/DC
+config CC_HAS_MCDC
+	def_bool $(cc-option,-fcondition-coverage)
+
+
 # Set code alignment.
 #
 # Allow setting on a boolean basis, and then convert such selection to an
diff --git a/xen/Kconfig.debug b/xen/Kconfig.debug
index f7cc5ffaab..f89cbd823b 100644
--- a/xen/Kconfig.debug
+++ b/xen/Kconfig.debug
@@ -44,6 +44,15 @@ config COVERAGE
=20
 	  If unsure, say N here.
=20
+config CONDITION_COVERAGE
+	bool "Condition coverage support"
+	depends on COVERAGE && CC_HAS_MCDC
+	help
+	  Enable condition coverage support. Used for collecting MC/DC
+	  (Modified Condition/Decision Coverage) metrics.
+
+	  If unsure, say N here.
+
 config DEBUG_LOCK_PROFILE
 	bool "Lock Profiling"
 	select DEBUG_LOCKS
diff --git a/xen/Rules.mk b/xen/Rules.mk
index d759cccee3..0a2933cffa 100644
--- a/xen/Rules.mk
+++ b/xen/Rules.mk
@@ -138,6 +138,9 @@ ifeq ($(CONFIG_CC_IS_CLANG),y)
     COV_FLAGS :=3D -fprofile-instr-generate -fcoverage-mapping
 else
     COV_FLAGS :=3D -fprofile-arcs -ftest-coverage
+ifeq ($(CONFIG_CONDITION_COVERAGE),y)
+    COV_FLAGS +=3D -fcondition-coverage
+endif
 endif
=20
 # Reset COV_FLAGS in cases where an objects has another one as prerequisit=
e
--=20
2.48.1


From xen-devel-bounces@lists.xenproject.org Tue Apr 01 01:18:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 01:18:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.933347.1335322 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzQGL-0006qk-7l; Tue, 01 Apr 2025 01:17:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 933347.1335322; Tue, 01 Apr 2025 01: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 1tzQGL-0006qA-2l; Tue, 01 Apr 2025 01:17:57 +0000
Received: by outflank-mailman (input) for mailman id 933347;
 Tue, 01 Apr 2025 01:17: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=gZL1=WT=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1tzQGK-0006nG-CK
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 01:17:56 +0000
Received: from EUR02-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur02on20630.outbound.protection.outlook.com
 [2a01:111:f403:2607::630])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 23d7f4c8-0e97-11f0-9ea7-5ba50f476ded;
 Tue, 01 Apr 2025 03:17:55 +0200 (CEST)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by PA4PR03MB6703.eurprd03.prod.outlook.com
 (2603:10a6:102:ec::12) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.46; Tue, 1 Apr
 2025 01:17:51 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e%4]) with mapi id 15.20.8534.043; Tue, 1 Apr 2025
 01:17: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: 23d7f4c8-0e97-11f0-9ea7-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=HmUDlfz14M7RkPqJu/JFHDVAAYvGPh4RaVloRgwAOKkbkph6qXig4Wp3X4YezopFdCPoo9hb1UECQvI2auy01Jx3GeIJrftjqtU8n3qqixoplFQnDrzWbbYjCoifNPlqpycZMbUqv8BhheRdxH1IgJIgsDXfhUExZnP8E/48In2A8h7gPdLik2qlctZAQTep4nQHE6Mf7y4jdN8cUN/vQzwf2W8kk9kU1ORUNr8C9473rUlJ2ghSniWU+g99QyAxjJcsOeLMFULrBOyQDuYy1iGHqiB4f/TvYifrTptz+6UdQz1n6s0w7Nq5lZjzLPzAbLob0KiL9pAlNL/JXxw9RQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=6eauTMPP1KriVl2OZ/pYML5XrBsfISutp4e5CHq9zXk=;
 b=Rh1f0J1sQOCnONn2lZ6au3YLNRcjqiRDG0f4Ftu96rrHLysqw1b30TOm2VXCB5K7v09QQp5IYUhO3nENG5UzK1xPNO82s7iL3FH3u0dN8ZQz+4J3oX8V/yD4ZkXQ2nIeqnIS4uah10sxsIda0fFrYKg/SJbTq7qvosZ4Qaok7HkiuzasglBpYug57edEURqtKgI569QUJrHH2osEjpsshiSFcoC7DrS71K63nv+kr9LZ6GRVD2M+LdxFUkD1KpLS2cN6ecPRpOIS0vk3O8CxcTmC4vJcBHwE4CajG2FShMn/qDquMljgEcDY2YJogkDhCfLuLYYS6Y9erzT5OQDR2A==
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=6eauTMPP1KriVl2OZ/pYML5XrBsfISutp4e5CHq9zXk=;
 b=OLGhuDc4wXoAJeI68NticqjH+ss5QthC7Slg6xxqIHOotpW2p5Pormm550Dn139xxrnUTXckOZSNcSF01m9HVlFkq/X10WNHf4cGbc0ZvqbuJmqEjo8llVPHFTcYeb4eHUyZTV87ZqYvwPdxOLKD7tM1+uhUZyqufwq22NKirTIUci6O/EZxrdfE2C9l4HCJQOPRddJkBc8KTSZc5OCHsQygaqr4lXrmyaextNJFtxc6KyvyhJ0pGZNysy8SAD8dg3P5ykXJfBQQNICp9Yve65xy0gg2KjKS09OsrWtgIGuvxkWhY5KQ399jEDH2YtouZoNsyCMCEZjYFci07afxEg==
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>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, Julien
 Grall <julien@xen.org>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v3 1/3] xen: gcov: add support for gcc 14
Thread-Topic: [PATCH v3 1/3] xen: gcov: add support for gcc 14
Thread-Index: AQHboqPjoKv09jK/Dk2C7qcEL02CdA==
Date: Tue, 1 Apr 2025 01:17:51 +0000
Message-ID: <20250401011744.2267367-2-volodymyr_babchuk@epam.com>
References: <20250401011744.2267367-1-volodymyr_babchuk@epam.com>
In-Reply-To: <20250401011744.2267367-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.48.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_|PA4PR03MB6703:EE_
x-ms-office365-filtering-correlation-id: 20e60f01-19eb-45c7-a7ff-08dd70bb05fb
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?Pp8//HL1rigYOceyxaJPEO2Uab6ZrCi2NKfRDTrmHZMBheTrORYoI7ptoA?=
 =?iso-8859-1?Q?7qwyMMUbK7O/lXNH6TeTTQTB8k+NoWCPqo6qlp/lBl7Q0+elEN+4LBxury?=
 =?iso-8859-1?Q?JHWFgw0h+lfO2R/YwEUUgLtmGCVILUOzDhSn80/Wqnwgxb0YF5/28+GQf4?=
 =?iso-8859-1?Q?j0tBDaeXwqlK46m5XPA2cSjLvky3b2tvlzmledTeSFQ/tnxNV90OHIeq9+?=
 =?iso-8859-1?Q?Y+ee1z4CDWRlTPeXE/VccgBVbAbIkd5LczRxmvh4CmbgUW55ucfzPJrIq9?=
 =?iso-8859-1?Q?DUq6FMSuvPlMdQpYa1rRybr30dSd31fRFDuWL6Mn9ahTBNaF/KilOhmz41?=
 =?iso-8859-1?Q?AiL8i1bZS6k/MliQQHUTTienyLyl0k8GQRsmcOqRUHcVPaBy7AYRPb20He?=
 =?iso-8859-1?Q?jYO5UJi21b6H4GdGGg6ZjSY4u505o1T9UBUU5VBJhj9YO78yq3P4AAVm13?=
 =?iso-8859-1?Q?/zznHFiy5X9FA8ZE83y5GRhrsH/kJRp2HwfDTpRUdDnxm7aFv6FeE0UY/I?=
 =?iso-8859-1?Q?Bpdq+/nm4kJLqa7TmzRkPTIon6H32RKVqoAHBdKSe40MR79KQOtA8mtjFY?=
 =?iso-8859-1?Q?YSt2n+pQXF+n4l3Kp1sCcjJt/InKvQcqk2idlOFrMNAodY/oryDDyz/U4E?=
 =?iso-8859-1?Q?badrlos2tEzcmVKpZ2rYEEkTldgHFYkKRI+mhr+XeaJ9l1tC4ZV7fFuJtw?=
 =?iso-8859-1?Q?reSBOAkvRtNtrub+TcuB9VxeG6fv1wVJcAyWZtcruzx+qaHXCSESYyxcZm?=
 =?iso-8859-1?Q?vl2w4Z3sdWTuvErsYa2PuA5VPP8No8IQz+hY4NH4UsSTk7ivgFK/VsH45H?=
 =?iso-8859-1?Q?CCG0snZg+/nw4kF5bBeR+CxKA6ePJsqpGl6tNeyNwqEHc9q7qL41P08EpR?=
 =?iso-8859-1?Q?51/gC64PD0fe801jbCK0H4w7cXDmwfb/zCcztBuahjzabromiUSpXt6+Kf?=
 =?iso-8859-1?Q?YD+LD9rwO9kjDOj1jSAMlAW4B2PYzRjtL5ULM/Rq3lQWJM5q+WVWNrx3+3?=
 =?iso-8859-1?Q?Dgh+AbNv9wO6+NXxLMYkeshcopqgkA6G4HTuHkiE5Z+SHGX/VmyU3cyNBB?=
 =?iso-8859-1?Q?RhqEZ/sW4rjqowPVkByDRh73faabyk6l4KjN4UfN1uN3IbpC8H2bwYwvi8?=
 =?iso-8859-1?Q?VlVMbIuVcpkCs3b+2YETCsOqkIG1+1yFmUXUnpR4RCaEr//St0FFf2IN0h?=
 =?iso-8859-1?Q?JPbKyUy/VJd6TK+S4cXf4X9+KJco+v7radcXPaFi29pIRRc2RJM0u0uyw3?=
 =?iso-8859-1?Q?RnrHzTWJhuNdLAnMq/KhaF945xuv2+RSVgUdjCBkSFPylh4RwJ4ZklyWYg?=
 =?iso-8859-1?Q?WQ5FMcwVOE8u+Z0QbJhEWICvVt7UXjrL7BWzNnst0VUu6twux7xLzvHwSN?=
 =?iso-8859-1?Q?AkYpcUJDS3Ihk/J15yuvvKaAQYxMrAXhxXtKCCNvUILMXPhklEPiVz4PR4?=
 =?iso-8859-1?Q?rBcxCWUm5F6ePUAyrlWEk8SekglPU4qN+rODSYH+ArguweY5+kVUqVCcec?=
 =?iso-8859-1?Q?DWgiHzz+6Gq+rk+b0QEyrx?=
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?XjC+f851RNrbupabmBI99y8vEzHz22snNgVbiXwbLxqX4ff4UbHWyuMuKg?=
 =?iso-8859-1?Q?VluMYmwO+cUIJjj6Mi3EkPHZojgElqyw+NSta8H3TRsulRTIw934kWHevQ?=
 =?iso-8859-1?Q?RDadOuK+Dr+1oPUdeiPfOjuzTnrQBR0/KILPKFAbApa4BtlAIvOab3daqh?=
 =?iso-8859-1?Q?jWuiL1Xzo0BF7r6rL29lVUSh/ZT79FPBlNvtKNtN5Zu+Df5dYu1Ym6Qssw?=
 =?iso-8859-1?Q?AwocYaHyWey2M8XgFK7AYyHs4/pQlr67KZMu3VMOjcOA3bNrby2mWXOUdh?=
 =?iso-8859-1?Q?bdicNDButkI0kjeDH9lXKcuEGDnAdrLog7s1WPOnpqsDySXE7lgjEEb2YM?=
 =?iso-8859-1?Q?fqK8TLdcvc7ZW+gJQminO0odqssHZzglv1EdFTC8aafHmsVSE+/T0HN6do?=
 =?iso-8859-1?Q?RNIPF+9nyxDSOjLCFooI43H4d488njHpuZfL+LLgKeRXDDDZttFpbgBJQg?=
 =?iso-8859-1?Q?hMoM0aqEaRRw4t2vIt0Mu9wkDRPFll1zD4mmFFirqTj/gD52QDDGwyYrJM?=
 =?iso-8859-1?Q?M7GcbWwaRu8vSEArzXjZ4Q598pomALgrVskOcubA+j5eI0UPUj6OGJyN7p?=
 =?iso-8859-1?Q?KxwcaNreLsnic74vrTc6g88ZvT4pZr/TeV4fR9UkQGuwx/eqTzw3Ixb28t?=
 =?iso-8859-1?Q?zOpIIw5rpX3S5BXrL4CcQNNSvn8DyKUMa62dVaVRp5/B6Q3GQnLy+0eEzy?=
 =?iso-8859-1?Q?V9sJclxDYXR21dqQn0Rn+GXDdbcosRoBBW0AOFuvB151Z1GZeCjOH9BGjp?=
 =?iso-8859-1?Q?pn+evk9xOK8+bq1PaRk7jrCbDsJSwNyoFkafjvKksHMIhkkoBKRCR6SFCe?=
 =?iso-8859-1?Q?RrM7a5uM5z6oKCGFNRFh4a3eOBa3mbxnxUiUCpezAHajYtuB/P2MdnGmL2?=
 =?iso-8859-1?Q?lBdYxvAPt/M5HCni2rcVjq2uXz/5yzDE62mIGhxaQAsSTHd/SVEP6yWxVH?=
 =?iso-8859-1?Q?0rh/ZEaq5q/EaQhXVku8w6/rhVCWWSDNTcZf26NQNoeiQSZ3mPksE1ULDf?=
 =?iso-8859-1?Q?ElX9PXS9lZrAZpm+AALhE7UdlS57PV2/DK5kUbuLHjAzr3AgMUZW/xKBzR?=
 =?iso-8859-1?Q?JuExteDLVr5yKp+lel/eJ70gNgMFKDTfrMWagp1lmyz+seVcCAlzYuCqYm?=
 =?iso-8859-1?Q?OhAX/bYednFrsEVz+GPO4Nvvc/C6UMdTwZ9NZch1zQvegGnVcOV9cz7/wp?=
 =?iso-8859-1?Q?crsHGNs5GimhHEHOknnIVmy/8BMSkGGg6c0rpsA00o5ekeEDSPoVjNMgCO?=
 =?iso-8859-1?Q?FHQmiVTJoD9DjzF5rnPUt1kBBwhQ0/HAX1ZfBLi6m9BRxrXk6B6CjsQ8I0?=
 =?iso-8859-1?Q?DTnkS2xe4DamSn7X2N1B0lsow76uurPePYqxsYDzUaunrADMUpI+3aRjIu?=
 =?iso-8859-1?Q?7yCmP9g2C9iqSZOEm98P4dbMNZ14HmpJj/JuocsDJ4s25I2vysbXmLltSx?=
 =?iso-8859-1?Q?985QYR8jzG/jJh+P75xK06g9pUphiRqFVbrcs+NskXNTOXcowwheyUJZMC?=
 =?iso-8859-1?Q?s6MbIKFbY8cS3NrbJNMLTBjPSGNjqvJeAOg7lvKzHBrtA8+diMZOYVq46w?=
 =?iso-8859-1?Q?mzDqPvGb9P/Z1vfK+7vb43dMS+QVqFh3ofAIGjnJpP9LZ6f+uD20kH45PQ?=
 =?iso-8859-1?Q?tH0Dlwd8NY0/MeJsOB7hjgjxmnReRU7NT3aoDeD1rr6E0Ye59qvlUjZQ?=
 =?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: 20e60f01-19eb-45c7-a7ff-08dd70bb05fb
X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Apr 2025 01:17:51.3584
 (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: gG6QQC3pAHoXU74YI2PAH+aXxp7SoU478Ny1RiL4L+4ww0mvZiTuwQ81UqivtU1ZaWQ4TapRktT2FULl2PbHsvgq0/lIQs2oQmix0+dz11c=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR03MB6703

gcc 14 (with patch "Add condition coverage (MC/DC)") introduced 9th
gcov counter. Also this version can call new merge function
__gcov_merge_ior(), so we need a new stub for it.

Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>

---

Changes in v3:
 - Added Jan's R-b tag

Changes is v2:
 - Check for gcc 14, not gcc 14.1
---
 xen/common/coverage/gcc_4_7.c   | 4 +++-
 xen/common/coverage/gcov_base.c | 5 +++++
 2 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/xen/common/coverage/gcc_4_7.c b/xen/common/coverage/gcc_4_7.c
index 1c20e35ee5..f4c1802303 100644
--- a/xen/common/coverage/gcc_4_7.c
+++ b/xen/common/coverage/gcc_4_7.c
@@ -28,8 +28,10 @@
 #define GCOV_COUNTERS 10
 #elif GCC_VERSION < 100000
 #define GCOV_COUNTERS 9
-#else
+#elif GCC_VERSION < 140000
 #define GCOV_COUNTERS 8
+#else
+#define GCOV_COUNTERS 9
 #endif
=20
 #define GCOV_TAG_FUNCTION_LENGTH        3
diff --git a/xen/common/coverage/gcov_base.c b/xen/common/coverage/gcov_bas=
e.c
index d0c6d0a3f9..742034e039 100644
--- a/xen/common/coverage/gcov_base.c
+++ b/xen/common/coverage/gcov_base.c
@@ -56,6 +56,11 @@ void __gcov_merge_delta(gcov_type *counters, unsigned in=
t n_counters)
     /* Unused. */
 }
=20
+void __gcov_merge_ior(gcov_type *counters, unsigned int n_counters)
+{
+    /* Unused. */
+}
+
 /*
  * Local variables:
  * mode: C
--=20
2.48.1


From xen-devel-bounces@lists.xenproject.org Tue Apr 01 01:18:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 01:18:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.933348.1335336 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzQGM-0007FT-HG; Tue, 01 Apr 2025 01:17:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 933348.1335336; Tue, 01 Apr 2025 01:17: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 1tzQGM-0007FI-Ck; Tue, 01 Apr 2025 01:17:58 +0000
Received: by outflank-mailman (input) for mailman id 933348;
 Tue, 01 Apr 2025 01:17: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=gZL1=WT=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1tzQGL-0006nG-Cb
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 01:17:57 +0000
Received: from EUR02-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur02on20630.outbound.protection.outlook.com
 [2a01:111:f403:2607::630])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 241708ab-0e97-11f0-9ea7-5ba50f476ded;
 Tue, 01 Apr 2025 03:17:55 +0200 (CEST)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by PA4PR03MB6703.eurprd03.prod.outlook.com
 (2603:10a6:102:ec::12) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.46; Tue, 1 Apr
 2025 01:17: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%4]) with mapi id 15.20.8534.043; Tue, 1 Apr 2025
 01:17: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: 241708ab-0e97-11f0-9ea7-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=nAwatLDyaajIHjiL/s5mfEpHBsbwKLOAGOTkfgtUeIMilYYDcjsWvQOs6G0zozNkMC7qGx/DG6UkH03NzM3BYapxhhiTPipH4KUXC9xU5vnqsUlhX7W1SakJEX6028VqLaZSuqoVlC8rotawfVCSEFeFyJYzi52HsyWcFyl4kJo2nZ6eVQ3l/3q4lU6czc4MKroajrfmOUGvdSBKz9xIYJtX4MOPSGsTI6Lq7vlkTr3qKJwdPjDmPBCbIBYoFxURWNycYsM7nTuAH8GO6mkWLTLQRKFdC38nQZQnEQIIklKL+6b2OJJfl8HTwBipacyiQgDBK6yOwdnf4HUKLtst/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=pYY5TMzKZzk8Pg6xp60F/cK2FtqsNx/Afg43r5Pf3JM=;
 b=mOrbLM/vuq9wFjCobJL4h6WgP0EUf0bCNJfkVFrgQZmE/ykKUs7zmwAtf4iqjZUscF2GeZ1iPcj0TP2MXkXY1TMChrszNIuMUr3uF+Qpc8vVHAXJKsRgqVPQIQPfIimGulLsV1c7FEM7z4+zMh4guMbygkJ/PwffjnEnfbB+oNUvvMz4rrcKJ/gjxDlihybtySNigmA2kl+RrxzallUaVk9PyEGkpS93e7nHMDE6M10aS7w3GFMkGFayI7P1N3prdYrMfoLQJl3A0iiR7MU8pcfgCzRTkOkKannmsVL0cePRoVG8n88uOrBAGocyzh2w1pWnbocVbfGq9Kp7xaHNpg==
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=pYY5TMzKZzk8Pg6xp60F/cK2FtqsNx/Afg43r5Pf3JM=;
 b=J1h9Xh5r2iq8Gw4JEDG1f4qW7TX3eYASmChHMjhGirR4LOhMPEYBNowFLAsU+FHvWV8pUQiSiD5xTnwFAab56SY4Oyj/Oo/+38VIrihCab9C3QO42Kn+EkH3iipNM9CfyTArz9cTtaXBtNiFrKApfapXPdfUPLZHNwWt78DAw26LHbPS8Vhu1HquOv0uA0mOCo7Jw024gyXmemitf9c9Etysf8lZF1S3BN6shBpAdZKiA/0+KG29aOVOax8FjtcJJWPeOwq23jiPhT3vGyNjhZZSN6aHJq/jLeRRABYNUlFRPHmBnlvaxoTzbOqni4wfSAYfzpJVYpf3f7i/0N/qhA==
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>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>
Subject: [PATCH v3 2/3] xen: x86: irq: use do-while loop in create_irq()
Thread-Topic: [PATCH v3 2/3] xen: x86: irq: use do-while loop in create_irq()
Thread-Index: AQHboqPjgHkUwEzR90uZDjrf8rDceQ==
Date: Tue, 1 Apr 2025 01:17:51 +0000
Message-ID: <20250401011744.2267367-3-volodymyr_babchuk@epam.com>
References: <20250401011744.2267367-1-volodymyr_babchuk@epam.com>
In-Reply-To: <20250401011744.2267367-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.48.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_|PA4PR03MB6703:EE_
x-ms-office365-filtering-correlation-id: 9100af57-b86e-46f7-630e-08dd70bb061f
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?SWMrZ3JtKzd2SGpwT1dZR3BLWndGNjhYSVhLdVJrWnpOaDZ1TlVtS3lRN0hs?=
 =?utf-8?B?bU00ZUQvVk5DbGJWVEhnUloxem4vZitYcHhpcGY2aFMxNnhJR2dPMHZqUElq?=
 =?utf-8?B?UEMwdXYySXpXQmNoM0F3YXAvTnpLNzhZMWRvaVRLdzJmd0hySmV0QTlxQzFY?=
 =?utf-8?B?N1NRdzFmZm1nbnpXMjB1eG16Zy83ZWM1SVhSNHhWa0dncDQ2WVlBazFlWmYz?=
 =?utf-8?B?UUZqWm0yMngxRmU1c0NpYTVjdjZQTXZZdm9TSExIMk9SdjRWdDBqQVN6ejFH?=
 =?utf-8?B?WkcwWkFjVUY0ZGFLc1lERStBSmFJTlBXSEVEYUwzdmtWUHlxRmk4WFJpRHpm?=
 =?utf-8?B?YVlldHFQVnNidU56V24rM09EZW5SU3lzVGlJYXY4Vmo4NGdBM2ZaWmJubWRV?=
 =?utf-8?B?RFpiUUxxak9VbkFsRmFDNjZhU2o5TmprOXZFa0laZU83c1R2dFJyUmpidzhs?=
 =?utf-8?B?Slh1a1NQWDVMZFVoK1hhc2F4TU1nVDNjOGZidXdPQllKSmJDNFQ2VEtNYkxL?=
 =?utf-8?B?NjZocWhUUDdIblRiekRRRzBDVWU0NW5SVU5LbEZCZ3FwRUFNNnRJUUQyOFpz?=
 =?utf-8?B?ZUprQmVMcTA0L0VwSEtQQWEwRTFDZHhoWUpSSTAvdDJmK0xwSHg0Uy9RRkRM?=
 =?utf-8?B?WVU3cmRYTEdpUDlNeUJ3djlxMFhVNXozbWxYUlpJY080SmhlWWFjVzBabEFS?=
 =?utf-8?B?Wm5jZlAzWDBrck4rOTNjcUN2TDhaY0RXUmw5MGoydEFWQmlLK2ZtRVIzbnBl?=
 =?utf-8?B?TmJRbDU5ek5HUjNXS1ZWSHU3MzlMZlIxVHlieTAzYnNkdzNOSEV1U2ZucS8w?=
 =?utf-8?B?Y1RPUWlhZmRHWG5uQnV5TUZOWWNIQWtobjIwUi8rdVlVNVB5cDQ3R21Zd3p5?=
 =?utf-8?B?REZrb0twcUpOM0RzckgvcWgyckxRNFF6VDZBdTRhMDVUeWUySHhLQTdsUFEx?=
 =?utf-8?B?MGdla1dzdWVXUy9zRjZSbWVTcURLQkV5OXltYWxrVXBXOUNKbFFvSG1xcGE1?=
 =?utf-8?B?Tnd1bnU4OWxjN05MUjVLckVHdlZ1QlltdXJaWVVWWEtYcU0vajM1K01mRUt1?=
 =?utf-8?B?ckxRNmk2OXN0ZjEwVlBUUDBsemhHN3RHSFVXTmc4Rkd0QzQrcGdGWG1hb0Ns?=
 =?utf-8?B?MW93cGFjT3BJenkvU3NUTktLK1A5K0J0eGVWbE5meFEzcG00SHhnRlk5bmds?=
 =?utf-8?B?eFNsbTdBVHFva3g3Q1l3SmNMSjNYZ09BSGJOZE5WTWJSVGh4Q0tXVU1Qa1ps?=
 =?utf-8?B?VjM2aUI2MmRzSkxOZVpWNVJPWWtGUk5oV3cvelBTaTUxbWY5QURaa2pxaHcw?=
 =?utf-8?B?dVZiNERwcFFLU0VFZzdnS25yaUxyaVdHN3ZqQUd2eFRucmUzN2ZNMHBhWUI2?=
 =?utf-8?B?U0R3bWl4MUJXRis5SDRHSnVuNVBBc3dPMEIvM21ZenhrcWNORkR6UXBWNnpC?=
 =?utf-8?B?ZjJjSVRkSnp5aklKZUNheFB6OUlzdkFOZFhvY3RpL21DYmZwT3lab1FWVm1z?=
 =?utf-8?B?bmFmWWlwMzkwaDMybHZWNksyWm5qMGdlVWhlM3BIc1dNM2diMmtBdFhHdmVD?=
 =?utf-8?B?SGNqaEZhSzR4aUJCNVh6L0UzMlZIbnVjQ0JmektlUGVQa1N0c3dkSm1XWHZB?=
 =?utf-8?B?bldBTkViV3BZMndMTnFVWVRGWCtCK2RsOGh2blF3a05nQXpVQjFLTlpDNVMr?=
 =?utf-8?B?MnZoR2hhUFBzZVJoMlIxR0QxNFRjaXdxRnFoMjVtVlZSUTFDdktaeVIwVk1l?=
 =?utf-8?B?TEVsNFREeFd2Uy9NNW1paWEvcDA3aVhhVDU3VG1uV3kzem5jRWpISE1janBh?=
 =?utf-8?B?b28zRjN1ZEtmT3lCSnl4S09lYUx3Qld1UnhXKzV0YXhPYWZrRk9hTEdkMmlo?=
 =?utf-8?B?c3dLVEVNeEROektyZElwa0c0N2dxVlZYb2FwTmdHY1lqc3owaFd1UzE1R3ZY?=
 =?utf-8?Q?ns7eJ6HRCQX4FlVbfmlKu7GdBZfK2Pq2?=
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:
 =?utf-8?B?eDI5ZEFnMFB4K0lkWi83SmFYYzBqVVN3cjduM0NOSjFRUFY1WVpXU0EwWS9h?=
 =?utf-8?B?Ym1MTTYvODQ5dlFRQlV0UTJqU3hUSm8xVC9rMHZKSnRXUEJYaEpHR2J5UzFU?=
 =?utf-8?B?bE5uY1NFdVJSbXFXVHpXcUMyN0M3MjJyc1ZjdG05NVpjY253UzhYcUJsNXd1?=
 =?utf-8?B?V09TUXdIZjZGNE9ZblJSREQxems5dWZZMzc1aGplK2ppOWFDUTBuMUFERUlJ?=
 =?utf-8?B?ajNVaWozaGkvRnZPcjhCVThmWUR6S1ZkaEtxaUtQMW9TSnFmdC80TDQyUlNo?=
 =?utf-8?B?d2JJMXBNazdvQ3FzQXc4WlRwREJsN3padDhTaXpURUhqaWNab2Zjdk5wSGw0?=
 =?utf-8?B?NUhJdVhJY3NJcFp2Q0VpVGdxNEUzeGlKbnJDa084S2hsVG5OKzQ5N1MzaWJY?=
 =?utf-8?B?d3laMHlOWTZ6V3ZzV1RkUWhGWFVqaTV5ZTFYTW5RcFJZVGpLbTd1clBPcUVN?=
 =?utf-8?B?aVZtM2l6TTM5ZDk1TnNLU1U1REZMRWdIdnVyTUZDQ3dmWVhabWJMa2dVUk1R?=
 =?utf-8?B?Tkw4Q2pTTktZTmlQVEh1R1VCemtJU3ZxNDlyYVIrNWZBaDd3QTlIYUVOSHJt?=
 =?utf-8?B?bVAxaEdwcG5vVlRWSENJWUlxeEZ0cndqOVZLazY1SkJIaDZlcjY1SWNlSGE3?=
 =?utf-8?B?RE1HWCt4Q3NFQUNPdDFvQkYwbFQ1OVkvL2k5ZXhDVTR6SllzbnJXam1PbDEw?=
 =?utf-8?B?QzZaQkdJN3Q3VVpWOTZtTElSTGdkb2xtNjFOT0hTWnRWTkhhTVgreFN1NVdi?=
 =?utf-8?B?dTNnMFRMcXhCUFVNcFRsc3ZqTnlOa3BHSUVYZ3pzL001RlJhcGkrbDM2ZENZ?=
 =?utf-8?B?V2tPNGxWSW5vNWdpTG1iZHJVaGhGV1NMWU1qRnVXMW9GaGdIRlVJVmpNdllB?=
 =?utf-8?B?dkxYOEhHa3RkQ2Zaa3FaZGs5bFlNV29xcTZvVW5qcWlkZlRVM3lEYmc1MndJ?=
 =?utf-8?B?M2ZvTkJwRlo3TFZUN2VhWnYwT3RpcFFPM0NkR1ZJNlpqbk9QL3A0WjI4V2gz?=
 =?utf-8?B?YkxOT3BidEJlbnhpTHJ2MDBVM3JtV1VyYUs2UWVXTGU2aERaODZPMWdlNkpF?=
 =?utf-8?B?OTVneFB0Z2ZRR1ZQSWxlUTUycVdxUE5ib3ZSZjlsT2NPbHVSZWl0Uy9nQjFI?=
 =?utf-8?B?WGhJMlpDb1FncENRMFJHRXl6bVliamNxeVpXVVJtbkI2YVBleVBnUG9Jd3pN?=
 =?utf-8?B?RE5yQXJBR2xYS05nMHhPeHREaDd1SWFid00rbnExVGF4SUsvUGdldTZBZ29x?=
 =?utf-8?B?R3FNaXVGSlF4R3l5Z2ZoRGxoOFNseEU4b2ZtemptcW5DemxRZ2I5b2hHTVVY?=
 =?utf-8?B?SFRlQnhCVEdDbmpkc2pQV1hxWFdncW8xQ2ZHbXZCcmhOMXYxcmRuelo3d3Zh?=
 =?utf-8?B?NWdvUzZXbmhRNnFUcW1SQUFEakdTaWxOR2x2MG1HWHI0ckVkR0lQU2lyVXVH?=
 =?utf-8?B?K3cveHN6N3k1NUtoa0orOXN1cml2V0dkMEtmb2Y4Qyt1THhyK1RiWHdkV1JE?=
 =?utf-8?B?N1dKRS93SWtDa2NUSVFXVTBYNUhtSFBGUFJ1T0xyM0tYckt5S1dvclVFa2c1?=
 =?utf-8?B?L2hRSzl1UE1IUkE5Z0pjdUNDdFdsY21YWTVYL2llODhnVmVWQnh6YTVWK3A4?=
 =?utf-8?B?cm1VOFVtVkg1N29tZFRPbzJndHdFamZ3TGd1VTZSaU9WbFZGSFRtVUtDZ1pD?=
 =?utf-8?B?U2pFdmRURDFFYXRrTEN3UzJUbWptTDRYZnltSTJhOW9PRy9pNzhDcDZCcE41?=
 =?utf-8?B?WUJSRjJtZm1yVWlpdGczNXBOWHNqSVFVSUVGM3ZPeVlYV1JmQzM1L2s1dHJ5?=
 =?utf-8?B?eGdwNlhQU3o5cXk4Qllxa05hakJVeTlzekxESytDSVhaZ2VBc3JVcnVwSXZ5?=
 =?utf-8?B?b2QzemxWQlNaSU5mdEM4MzZHL0lkTStVL1BHSGJvcnlpRXNRd3NEMkpIWi9P?=
 =?utf-8?B?bmtWYTdCQzRKaDVKSnpiOU5Td0ZTL2owSUhCcWF5bHI2UC9YcXM3QUZwOEhC?=
 =?utf-8?B?QVhSVmhweCtONkZYYzUwbU9DVUxRTGx2dGlPaFByLzEyVWtHVDBaelF1QUtE?=
 =?utf-8?B?US9DYk9taTNVcjdYY1dLbVQwV0RabmNLakM1Qzl1ZW5CT2huaHNBN25IVnho?=
 =?utf-8?B?cHZOU3lXUkx6R2h4TGpXdXpYbHFvOEJQTTVPZ1lPUFkvbnB2T0hDS2k5enE0?=
 =?utf-8?B?UEE9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <6EE89C3D6CF6004F9DD0A0D8CB2A0C39@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: GV1PR03MB10456.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9100af57-b86e-46f7-630e-08dd70bb061f
X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Apr 2025 01:17:51.6593
 (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: Zsh/WTgvIvAxew5xeHXv1ZP/H3Z2PgHGa+1dOypOV9a0W3/WEpsEwP1+Vwbl1W8NknLMUk9Ef0Co+5/VBPsZGB5FbnIhnRo/WyfFmUTlXk4=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR03MB6703

V2hpbGUgYnVpbGRpbmcgeGVuIHdpdGggR0NDIDE0LjIuMSB3aXRoICItZmNvbmRpdGlvbi1jb3Zl
cmFnZSIgb3B0aW9uLA0KdGhlIGNvbXBpbGVyIHByb2R1Y2VzIGEgZmFsc2UgcG9zaXRpdmUgd2Fy
bmluZzoNCg0KICBhcmNoL3g4Ni9pcnEuYzogSW4gZnVuY3Rpb24g4oCYY3JlYXRlX2lyceKAmToN
CiAgYXJjaC94ODYvaXJxLmM6MjgxOjExOiBlcnJvcjog4oCYZGVzY+KAmSBtYXkgYmUgdXNlZCB1
bmluaXRpYWxpemVkIFstV2Vycm9yPW1heWJlLXVuaW5pdGlhbGl6ZWRdDQogICAgMjgxIHwgICAg
IHJldCA9IGluaXRfb25lX2lycV9kZXNjKGRlc2MpOw0KICAgICAgICB8ICAgICAgICAgICBefn5+
fn5+fn5+fn5+fn5+fn5+fn5+fg0KICBhcmNoL3g4Ni9pcnEuYzoyNjk6MjI6IG5vdGU6IOKAmGRl
c2PigJkgd2FzIGRlY2xhcmVkIGhlcmUNCiAgICAyNjkgfCAgICAgc3RydWN0IGlycV9kZXNjICpk
ZXNjOw0KICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIF5+fn4NCiAgY2MxOiBhbGwgd2Fy
bmluZ3MgYmVpbmcgdHJlYXRlZCBhcyBlcnJvcnMNCiAgbWFrZVsyXTogKioqIFtSdWxlcy5tazoy
NTI6IGFyY2gveDg2L2lycS5vXSBFcnJvciAxDQoNClRoZSBzYW1lIGJlaGF2aW9yIGNhbiBiZSBv
YnNlcnZlZCB3aGVuIGJ1aWxkaW5nIFhlbiB3aXRoICItT2ciDQpvcHRpbWl6YXRpb24gbGV2ZWwu
IEZpeCB0aGlzIGJ5IHVzaW5nICJkbyB7IH0gd2hpbGUiIGxvb3AgaW5zdGVhZCBvZg0KImZvciIg
bG9vcC4NCg0KU2lnbmVkLW9mZi1ieTogVm9sb2R5bXlyIEJhYmNodWsgPHZvbG9keW15cl9iYWJj
aHVrQGVwYW0uY29tPg0KDQotLS0NCg0KQ2hhbmdlcyBpbiB2MzoNCiAtIENvcnJlY3QgY29kZSBz
dHlsZSAoImRvIHsiKQ0KIC0gQWRkIGNvbW1lbnQgZGVzY3JpYmluZyB3aHkgd2UgbmVlZCBkbyB7
IH0gd2hpbGUgbG9vcC4NCiAgIEkgcHJlZmVyIHRvIGxlYXZlIGRvIHt9IHdoaWxlIGJlY2F1c2Ug
Tmljb2xhIFZldHJpbmkNCiAgIHNhaWQgdGhhdCB0aGlzIGFwcHJvYWNoIG1pZ2h0IGhlbHAgd2l0
aCBNSVNSQSBSdWxlIDkuMQ0KICAgd2l0aG91dCBuZWVkaW5nIGFuIGV4cGxpY2l0IGluaXRpYWxp
emVyLg0KDQpDaGFuZ2VzIGluIHYyOg0KDQogLSBVc2UgZG8geyB9IHdoaWxlIGxvb3AgaW5zdGVh
ZCBvZiBpbml0aWFsaXppbmcgZGVzYyB3aXRoIE5VTEwNCi0tLQ0KIHhlbi9hcmNoL3g4Ni9pcnEu
YyB8IDE3ICsrKysrKysrKysrKystLS0tDQogMSBmaWxlIGNoYW5nZWQsIDEzIGluc2VydGlvbnMo
KyksIDQgZGVsZXRpb25zKC0pDQoNCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaXJxLmMgYi94
ZW4vYXJjaC94ODYvaXJxLmMNCmluZGV4IGRkOGQ5MjFmMTguLjJmMjg4NzA0YjUgMTAwNjQ0DQot
LS0gYS94ZW4vYXJjaC94ODYvaXJxLmMNCisrKyBiL3hlbi9hcmNoL3g4Ni9pcnEuYw0KQEAgLTI2
NCwxNSArMjY0LDI0IEBAIHZvaWQgX19pbml0IGNsZWFyX2lycV92ZWN0b3IoaW50IGlycSkNCiAN
CiBpbnQgY3JlYXRlX2lycShub2RlaWRfdCBub2RlLCBib29sIGdyYW50X2FjY2VzcykNCiB7DQot
ICAgIGludCBpcnEsIHJldDsNCisgICAgaW50IHJldDsNCisgICAgaW50IGlycSA9IG5yX2lycXNf
Z3NpOw0KICAgICBzdHJ1Y3QgaXJxX2Rlc2MgKmRlc2M7DQogDQotICAgIGZvciAoaXJxID0gbnJf
aXJxc19nc2k7IGlycSA8IG5yX2lycXM7IGlycSsrKQ0KLSAgICB7DQorICAgIGlmICggaXJxID49
IG5yX2lycXMgKQ0KKyAgICAgICAgcmV0dXJuIC1FTk9TUEM7DQorDQorICAgIC8qDQorICAgICAq
IGRvIHsgfSB3aGlsZSBsb29wIGlzIHVzZWQgaGVyZSB0byBjb252aW5jZSBnY2MxNCB0aGF0ICdk
ZXNjJyBpcw0KKyAgICAgKiByZWFsbHkgYXNzaWduZWQuIE90aGVyd2lzZSB3aXRoIC1PZyBvciAt
ZmNvbmRpdGlvbi1jb3ZlcmFnZSBpdA0KKyAgICAgKiBtYXkgdGhyb3cgYW4gZmFsc2UgZXJyb3Ig
c3RhdGluZyB0aGF0ICdkZXNjJyBtYXkgYmUgdXNlZCBiZWZvcmUNCisgICAgICogaW5pdGlhbGl6
YXRpb24uDQorICAgICAqLw0KKyAgICBkbyB7DQogICAgICAgICBkZXNjID0gaXJxX3RvX2Rlc2Mo
aXJxKTsNCiAgICAgICAgIGlmIChjbXB4Y2hnKCZkZXNjLT5hcmNoLnVzZWQsIElSUV9VTlVTRUQs
IElSUV9SRVNFUlZFRCkgPT0gSVJRX1VOVVNFRCkNCiAgICAgICAgICAgIGJyZWFrOw0KLSAgICB9
DQorICAgIH0gd2hpbGUgKCArK2lycSA8IG5yX2lycXMgKTsNCiANCiAgICAgaWYgKGlycSA+PSBu
cl9pcnFzKQ0KICAgICAgICAgIHJldHVybiAtRU5PU1BDOw0KLS0gDQoyLjQ4LjENCg==


From xen-devel-bounces@lists.xenproject.org Tue Apr 01 01:18:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 01:18:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.933346.1335316 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzQGK-0006nZ-Vw; Tue, 01 Apr 2025 01:17:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 933346.1335316; Tue, 01 Apr 2025 01: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 1tzQGK-0006nS-SB; Tue, 01 Apr 2025 01:17:56 +0000
Received: by outflank-mailman (input) for mailman id 933346;
 Tue, 01 Apr 2025 01:17: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=gZL1=WT=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1tzQGJ-0006nG-Mu
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 01:17:56 +0000
Received: from EUR02-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur02on20630.outbound.protection.outlook.com
 [2a01:111:f403:2607::630])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 22de69c2-0e97-11f0-9ea7-5ba50f476ded;
 Tue, 01 Apr 2025 03:17:54 +0200 (CEST)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by PA4PR03MB6703.eurprd03.prod.outlook.com
 (2603:10a6:102:ec::12) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.46; Tue, 1 Apr
 2025 01:17:51 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e%4]) with mapi id 15.20.8534.043; Tue, 1 Apr 2025
 01:17: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: 22de69c2-0e97-11f0-9ea7-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=krPtipCaeTQe3o6Aa6BAQZXGn4MZtVUHmI/6vlqF75AcelczLAHAPNcmA/tbWkRBEYnpCXJPQPHxl5i5VfR5XRGzi7EAjrSCG1mrfxWkwPS8to+4waoAl7fDJ5+7aOiH4KnOyXavo+qJpRcnYpREHvr2+OKM8Kc0uL8UucXr/ynIp7sbN3dJ2choa9dstwcNUSiFHerzGfHi1aY/iJmJVKUKjJIr0SuDoHX+Z5ascPlEecolExIt1WXATj8Pa2Qes8U+iQ+K1fAb1Kj2WyEJH0l4tl1UOXyVWO3b+mbpgyfxNx1ZIN9As0Rvl0v9jjl5zGLRqmJUWlb0nWwuA1CZJg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=IhyzxsWIAx4f3eaDtm+eA6M5Z//uPe+FE4Q+ivR65Rk=;
 b=aS+cLPNyo5DrJyY/VbLfDjAxmS+rfD7HAHbp6z2inJGCAmrfRqlPQUmeDQGj1qg/fJPtOj1Vh8skdKKbjpT9U6i6Mpr3+6XsfGGmq7ZuX3YdddWmfl+jvwdy942DFYQyBt3P014zrPEQ2zWk5IB66Ackpq12PZ+bJ4GptCEMR7yVD0DbPuQAA5yzvLFf47qd3N3t4A5fz+KzWEb9QmJryrXz2vCl9gl9CSsvZ1eTDaK7x0k3YqrFPFs4iXPdVTSA8l7mz3jZSrjNjMxUssjupITNEywYE/p4xA46MCi0Ur3SN7ltwuZuIx4nCKctAUgE9ezFWLGEPPDsqKr+a1v6bQ==
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=IhyzxsWIAx4f3eaDtm+eA6M5Z//uPe+FE4Q+ivR65Rk=;
 b=uAtOp/jllX5v/zw12/fcS5WbJMkohe/ib/DEv+DEoSHLdC2ScfDSa2ss4O/IpWOUQVYC78QNrATH81Oukj2KYWOtTncmvztHpmKh1tAlxKjmCx8rPmiorn89HOPzV2QpX7I/9ptUoNqPCEc3GdnNcS4Y86StY98l8dgiCY/OkCEvlxOWeA6gM9X0WZreHlAAv6wkf5NLMFkw1peyX6GxsmUrCTV+6QSTP6JSi9UmKB+GFU23399R3pW9Avr76Zsio83+ALLNd91qqA2pKxyL3OvrcSz6BwUZTGH15YO9816E/eCJXc35TCmFKS8y59UJkBfeHfFWrZg5EVneH9Expg==
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>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, Julien
 Grall <julien@xen.org>, =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v3 0/3] Enable MC/DC support for GCC/GCOV
Thread-Topic: [PATCH v3 0/3] Enable MC/DC support for GCC/GCOV
Thread-Index: AQHboqPid7iD1Q3Hzke/JMt84+VW+w==
Date: Tue, 1 Apr 2025 01:17:50 +0000
Message-ID: <20250401011744.2267367-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.48.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_|PA4PR03MB6703:EE_
x-ms-office365-filtering-correlation-id: 9a83d28b-c600-424f-4efd-08dd70bb057f
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?enpvd3p5RnFjK1ZTUnpkUDBJYkxWNmVlaHovUjFYUktlcVAyY0xPQjdKS2Qy?=
 =?utf-8?B?Nk5IdENRVnp6aDN6NEVtOElVdm1rcDdUVjZlOWZORFVheGlEeGRDVHFCUjhS?=
 =?utf-8?B?SGFtQWdZZDh5ZU8zWmxsZVBVV3ExMUdMaGE5NmRaQkZBREpBSVRweEppYk4v?=
 =?utf-8?B?TzBWK3N1bE1OczZ5NjI2c3pTSlI4RlBVVEdZMHUzejJTc3EwT1dJdW0vWXBO?=
 =?utf-8?B?dXJ6NTBucEpyMGp2dlBneEVnZHlaY2IreW5uYi9QZUdyc3ZIZHZKcmM2TTU1?=
 =?utf-8?B?R0g3QVJEb0hiKzUzcDJjNDQrbVE4eVhDbkU3aWVLSFcvNVZya3pXMVN0TDZX?=
 =?utf-8?B?K3p0S0JsR1dSSTF2WU1lYWRhUjRVS2NnY3I3N3pWY2dUZHB4aFo5ekxuZnVh?=
 =?utf-8?B?K2xVak96REJObHpodHFPQko4R3djcndpeWVZNHFaSHVRaWhLanFRV1M0RU5j?=
 =?utf-8?B?eE4vNHA1TVdDMjUxZ2dNMG84QTRSZE5oazNqcFZacGdKUThRZ2dWcmpSeHBv?=
 =?utf-8?B?NGw2TnFtNVVNNGQ1bGMwSVBXQUQvajA5LzlVM0tIOVA5M0hkMWxnUVFXUmp4?=
 =?utf-8?B?aTdsT3FIUkxQUFl0SHk3bDc5MU9qeUdGcFF6bXAwVGZGUURpMlpHcmEwaTJZ?=
 =?utf-8?B?b2lTRFUxNDhGbXIwWndRYnV5Z1FxYmswNTZUOUU0a20zYSttWkwvUXFTekJK?=
 =?utf-8?B?bC8wa2p0SGdaZ1VHWWpxVDM3WGNOS01HUEhYeTZCZmFzY2t1QUVDT1AxTEFS?=
 =?utf-8?B?YzZKT3BrRHVmL2pyME9sK2NQd0tUNFNxWjZaK2ZQbkZpSTVqR1IvSGlSNFo1?=
 =?utf-8?B?SFlkYkRPNGtuN3dWbkREZW5IbE5MWEtJWGVKN29HZjZibWxLVWhWa1VnNUJF?=
 =?utf-8?B?elNnSGw2WlVQMXptMk1GMlZTWFJnOVRmYm5VcitXOWwxcHluSEVGdHVKK3dC?=
 =?utf-8?B?eDNxWUt3a2UwOUMzTkY4ajdpRTdlL0RUQU51Y2drWGpEY3o2dFhiTG8yckZB?=
 =?utf-8?B?cElKRnJnc0IxOXdxRStGNFBqRm5FZEpNNWxObE9FMmlZbTBXb2R1ZmVYVmJ1?=
 =?utf-8?B?cDk5ckVWcjJKQnc5R2RGT3hFQ3pOeTlsTk05OFhtK29wNUR1YWRRUUpobjQv?=
 =?utf-8?B?QVAxR1hHUUlZaWU2TDk1SmtVWjE4aXk2OGNFS0hadktPMWhCNkRndDNuSG5J?=
 =?utf-8?B?RVk0cVF2KzIyNWttWVdiVHN1ZVJiUUVGdnlCZVZQZXlwdHFjaUdGYmVDWlN2?=
 =?utf-8?B?ZWRUQlRDckpWTzFyS0JJYXFNR25Jc3dORytPVUtJUGxlNDgwZE84YUNlNjhD?=
 =?utf-8?B?UjZKVUp1N3dEQWRLUG1PNHlDdzVaSTFDdm1IWFErRmNjUzZpNWxoR3RRcmhx?=
 =?utf-8?B?VUxKWnY1a1JaZW1KdUMzUWo1ZUJRZWd2elRHY0xyNUJCVUdCZTNsNmd5NmxL?=
 =?utf-8?B?eWE5RDRrWUVQQWwxMkZjMm1PZU1GQzlTbHVoNnVoeG5RK1dzTG1ZY0JOR1pY?=
 =?utf-8?B?VTBPeTBVcjlGRWo4clVXZU01Ty90ZXh5T2lzOWlkNkRNNEFlNjJvSWdBeWFp?=
 =?utf-8?B?NTVyTFdIMzM2RnhDTm5lWXQ3bkkyOGU5VE5uczUrUlU4U2xLckgwb0pUcnB4?=
 =?utf-8?B?dDhMV2o4d3NmbSt0bnFhOXBzUGVVTjBSeDdpdGdjbEM1MEpyZnE3M21VaHlk?=
 =?utf-8?B?VC85ejhGSlA0M1hkRVIyMnhlTDZ3ZFZTMUlDMFFrVFVkbnl4amk2L1N4dG1O?=
 =?utf-8?B?cE12WHR0UWgwMnllZTZRYi92OUIxT0w5dGxZb3JtcTFpbk02bHpFYytvUDdF?=
 =?utf-8?B?OTB0MXR6OHB2ZEJlMmNvdlowc3lSclBuODNQVHBSK2tvdHRCcC9MOWVSOWRi?=
 =?utf-8?B?Zmw1YnZSZ2VlcGY3SWRlMWlxZGlvMTdEVlUvVHVPRXZnZ3hFNVVEMjdzVWo4?=
 =?utf-8?Q?KbN0U/bJxtq9DrCEy6/2iSWIfD9Eb6mX?=
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:
 =?utf-8?B?YlUvMi8wZDF0bEpqSXZFNDMvcnc5UW1jbm5CcXE2czhYd0VtRkFVWEc4Z2U0?=
 =?utf-8?B?cU5lNHEySGZNaUs5eC9UL2dKNEF3ZHMzb3h6WFRsMlAwWUpRbDRTbkVwcGNR?=
 =?utf-8?B?aFRZbHBJdlJzNjhZQW0xS0FLR1JsRFBJOG9uZnphTU5lSmJBQyswSzFiR21Y?=
 =?utf-8?B?aHhwME03dzNEaVNXMUtiN3QydVJKSy9sdnZkeUpLYTh6SkE0ZXhBZ1FLakhU?=
 =?utf-8?B?L1BkNVMwT2ZSY2pwWDkrOXRpWVpEKzdhclBEdE55WVBweWM3b3EvTzQzYkc3?=
 =?utf-8?B?dTNRTlZTelpzQTR5bFpxbm0zemRPK1U5N1J3eVEwZXplVHAyL3ZzNm80YWt0?=
 =?utf-8?B?TVdMUm9ZSUkvOEwvcmc0WVFsWjVxWGdqL2syRUlqeExxMTZabVUzM3RibHBO?=
 =?utf-8?B?bmNRZy9jSTJPdnluRTYzbGIyaCtLVzE0NHRBWDhjbDZsRWo0eS85Qkx6WXl4?=
 =?utf-8?B?QnFnTXZqZUNSaXNPcDRKNVd2ajVYSHVIRWhoVXZHdUNzNjNzYWtGeCtTSG9o?=
 =?utf-8?B?WDBxYVdlNDRxeTRYZlRyeHFmZjdqakU2bmp5R0ZJcVM5V0VsYW9uNkRRUFZZ?=
 =?utf-8?B?UVArV0VrbzVzR0E2MWV5ZVNacHZQVTVEREQ5NDdaYmorVDdmQXh2dk00bjJP?=
 =?utf-8?B?bzVTOEY0NW9UbHNXQWQ0ZkV1SklyK01PQjk3MlFyTit3RDU4QjhNbzMyZVdr?=
 =?utf-8?B?R3E4dnYxM0l4WVhZYTJjZEdieHJiZm9HaWxON3hudjR5ajE5ZWZBZVE3dW9z?=
 =?utf-8?B?aEdiZ0xNNERSdVpheWsvdjFhUW1pSmN5bTYxUjhLTGIrdGNCSWsrUU0xaURk?=
 =?utf-8?B?NnBHRW9MeVR4SjNiQmxTNWVqZzZ0SGN4TWoyei9tUko1dmdQM2RicGtQd2w2?=
 =?utf-8?B?bWd0MC8zcE9xQ25lemRORTQ2OU5sa0RHem93SmMrWW54U0ZXNzJ4d295WGYw?=
 =?utf-8?B?anRWYkY4c3FmOFV3VHN0ZDBEY3ZMSE1sTGY4K0ZuSU1lL3RZUWl5STRMeWVZ?=
 =?utf-8?B?Q1FFdmtDRjlIeGhjWWE3b0xvSEFMdUJ0NjYydWYxNkZ1MDlkaWlycjhVeWhu?=
 =?utf-8?B?NmRITnFiR3VtN0FhbHhaOXdCL0NGZGczL2paWm81V1ZOSHBhTVZUekxxcitI?=
 =?utf-8?B?aElpUmJ3OHVNNlR5dkFCd210OFdRVUdSbmx4SDRjc2tWc1lLY3QxOXp1bE9W?=
 =?utf-8?B?dzRIU2pidEFlejVKVTlLa0VnZVI3M0VvZTZBbWFCQ2lLdDdMeDRCSVAyNEJq?=
 =?utf-8?B?b01weGNCZ1E0YThLN21BVm9HUGo0OEh2YU9zbSs0WndnYmpYNXIxSUQ2NCtY?=
 =?utf-8?B?aGVBanNqa1pTMDRRbVNWMGZpUHJ5eHdCejI0SFgvZkxJYUZMODhwRE0rdTdZ?=
 =?utf-8?B?MGJEbXRjRWw0S3RiVWg3cGRYVFFPVTMvQzhQNjlJR2pndjhhbUgwUHpybWZR?=
 =?utf-8?B?ZEVQV3B4aHlKVnhiTGNLUlRRY3p0Q0JpczNORXJrdVJBcTBLTEhsNnNXY3Bv?=
 =?utf-8?B?NW96RHBLRUVORS8yZkdtQWZVblU1VU1GNDR2cTMrZUVEaTc3YjkzT0pLVC9t?=
 =?utf-8?B?ZTc2UGRLc1dPM1lBWjN1TmpSaGl0Qk4yNnBQcE1xOXRCU0p5QXBBVktLUzV6?=
 =?utf-8?B?ODE2QVJBaWxuMXdGdVBQS0ZqUDRTaUhLb0N6bDRRY1pZUFUxM1BabFhPcmVQ?=
 =?utf-8?B?ZWVpOXZhZlBHcElUSGRwNDBBWXZWZ2xnS21xTlhPb3g5d0JUN2RJa2MzZkox?=
 =?utf-8?B?ZFZMdndKSEsrdm1SZjhaL0o4QVFhY1lwdzZGNkVsWXNhaTV6RytacTZQVUhI?=
 =?utf-8?B?QWloSi9BdUhHS2hvOTdlNlZNQVFsVTJzb25SWjgzR3haK3Y2WWdFK2NsSy9z?=
 =?utf-8?B?VmZHQUNWT2RYbk9sQW4ydnN1ZlBUS0I2Z1lvWnNqalo4SnozT05oc2tsNE5x?=
 =?utf-8?B?THF2TFZvV2UrNjJjd2FUZUhuVC9mNDJoRlZUaHgwaHRVWm5ZUzRIN09lWHRy?=
 =?utf-8?B?eThFZnJsOWlJQUlSallhS1piQjJvaG1WRmFDOVhWNmhoS25LZkpqTEcxVVZO?=
 =?utf-8?B?TGpFVTRvamN5a1Y0STNHRmx2VllRMXZXZm5YakNveTdvSzdZVXpGekFkK3NO?=
 =?utf-8?B?YmxKQldGVFdMR3FlVmp1SkZnZ3lBeW1WRjg5NmdPbW8xRks5Vm41cnVyUjJp?=
 =?utf-8?B?TUE9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <F705019BDA75DC42821A70E66C08E4DB@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: GV1PR03MB10456.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9a83d28b-c600-424f-4efd-08dd70bb057f
X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Apr 2025 01:17:50.9762
 (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: FWEL2Sbyy0GBjSjUC7X1pB4DYDLjlWCD5lqYrOpevf8wJhJ+J/cbwi1mpcjoo8S5CDAF1rqZeaVL3U9rb2aNA0daIkXsBVYoGw+wM/eTdIE=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR03MB6703

VGhpcyBzZXJpZXMgZW5hYmxlcyBNQy9EQyBmb3IgWGVuIHdoZW4gYnVpbGRpbmcgd2l0aCBHQ0Mu
DQoNCkNvbmRpdGlvbiBjb3ZlcmFnZSwgYWxzbyBrbm93biBhcyBNQy9EQyAobW9kaWZpZWQgY29u
ZGl0aW9uL2RlY2lzaW9uDQpjb3ZlcmFnZSkgaXMgYSBjb3ZlcmFnZSBtZXRyaWMgdGhhdCB0cmFj
a3Mgc2VwYXJhdGUgb3V0Y29tZXMgaW4NCmJvb2xlYW4gZXhwcmVzc2lvbnMuIFRoaXMgbWV0cmlj
IGlzIHVzZWQgaW4gY3JpdGljYWwgc29mdHdhcmUNCmNvbXBvbmVudHMsIHNvIGl0IG5hdHVyYWwg
dG8gY29sbGVjdCBpdCBmb3IgWGVuLg0KDQpTZWNvbmQgcGF0Y2ggaW4gdGhlIHNlcmllcyAoInhl
bjogeDg2OiBpcnE6IHVzZSBkby13aGlsZSBsb29wIGluDQpjcmVhdGVfaXJxKCkiKSBkZWFscyB3
aXRoIHVuZXhwZWN0ZWQgR0NDIGlzc3VlLiBBcyB3YXMgZGlzY3Vzc2VkIGluDQp0aGUgcHJldmlv
dXMgdmVyc2lvbiwgSSBjaGFuZ2VkICJmb3IiIGxvb3AgdG8gImRvIHt9IHdoaWxlIi4NCg0KVGhp
cyBzZXJpZXMgc3VwcG9ydCBvbmx5IEdDQywgYWx0aG91Z2ggQ2xhbmcsIHN0YXJ0aW5nIHdpdGgg
Y2xhbmcgMTguDQpzdXBwb3J0cyBzaW1pbGFyIGZlYXR1cmUuIEJ1dCBDbGFuZyAxOCB1c2VzIHJh
dyBwcm9maWxpbmcgZm9ybWF0DQp2ZXJzaW9uIDEwLCB3aGlsZSBYZW4gc3VwcG9ydHMgb25seSB2
ZXJzaW9uIDQsIGFuZCB0aGVyZSBhcmUgcXVpdGUNCnN1YnN0YW50aWFsIGNoYW5nZXMgaW4gaGVh
ZGVycyBhbmQgc3RydWN0dXJlcywgc28gYWRkaW5nIG5ldyB2ZXJzaW9uDQpmb3JtYXQgaXMgbm9u
LXRyaXZpYWwuIEFsc28sIFhlbiBidWlsdCBmb3IgYWFyY2g2NCB3aXRoIGNsYW5nIDE5LjEuMTcN
CmFuZCBjb2RlIGNvdmVyYWdlIGVuYWJsZWQsIGNvbXBsZXRlbHkgaGFuZ3MgdXAgZHVyaW5nIGJv
b3QsIHNvIHRoZXJlDQppcyBjbGVhcmx5IG1vcmUgd29yayByZXF1aXJlZC4NCg0KQW5vdGhlciBw
cm9ibGVtIHdpdGggY2xhbmctYmFzZWQgTUMvREMgc3VwcG9ydCBpcyB0aGF0IGl0IGhhcyBtdWx0
aXBsZQ0KaXNzdWVzIHdoaWNoIHdpbGwgcHJldmVudCB1c2UgaXQgaW4gYSBtZWFuaW5nZnVsbCB3
YXk6DQoNCmh0dHBzOi8vZ2l0aHViLmNvbS9sbHZtL2xsdm0tcHJvamVjdC9pc3N1ZXM/cT1pcyUz
QWlzc3VlJTIwc3RhdGUlM0FvcGVuJTIwTUMlMkZEQw0KDQpCdXQgYXQgbGVhc3Qgd2UgY2FuIGhh
dmUgTUMvREMgd2l0aCBHQ09WLg0KDQpDaGFuZ2VzIGluIHYzOg0KIC0gQ2hlY2sgaWYgZ2NjIGFj
Y2VwdHMgLWZjb25kaXRpb24tY292ZXJhZ2UNCiAtIENsYXJpZnkgd2h5IHdlIHVzZSBkbyB7IH0g
bG9vcA0KIC0gQWRkIEphbidzIFItYiB0YWcgZm9yIFBBVENIIDEvMw0KDQpDaGFuZ2VzIGluIHYy
Og0KIC0gQ2hlY2sgZm9yIGdjYyAxNCwgbm90IGdjYyAxNC4xDQogLSBSZXdvcmtlZCBpcnEuYyBw
YXRjaA0KDQoNClZvbG9keW15ciBCYWJjaHVrICgzKToNCiAgeGVuOiBnY292OiBhZGQgc3VwcG9y
dCBmb3IgZ2NjIDE0DQogIHhlbjogeDg2OiBpcnE6IHVzZSBkby13aGlsZSBsb29wIGluIGNyZWF0
ZV9pcnEoKQ0KICB4ZW46IGRlYnVnOiBnY292OiBhZGQgY29uZGl0aW9uIGNvdmVyYWdlIHN1cHBv
cnQNCg0KIHhlbi9LY29uZmlnICAgICAgICAgICAgICAgICAgICAgfCAgNSArKysrKw0KIHhlbi9L
Y29uZmlnLmRlYnVnICAgICAgICAgICAgICAgfCAgOSArKysrKysrKysNCiB4ZW4vUnVsZXMubWsg
ICAgICAgICAgICAgICAgICAgIHwgIDMgKysrDQogeGVuL2FyY2gveDg2L2lycS5jICAgICAgICAg
ICAgICB8IDE3ICsrKysrKysrKysrKystLS0tDQogeGVuL2NvbW1vbi9jb3ZlcmFnZS9nY2NfNF83
LmMgICB8ICA0ICsrKy0NCiB4ZW4vY29tbW9uL2NvdmVyYWdlL2djb3ZfYmFzZS5jIHwgIDUgKysr
KysNCiA2IGZpbGVzIGNoYW5nZWQsIDM4IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pDQoN
Ci0tIA0KMi40OC4xDQo=


From xen-devel-bounces@lists.xenproject.org Tue Apr 01 03:25:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 03:25:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.933403.1335356 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzSFW-000273-KM; Tue, 01 Apr 2025 03:25:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 933403.1335356; Tue, 01 Apr 2025 03:25: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 1tzSFW-00026v-G9; Tue, 01 Apr 2025 03:25:14 +0000
Received: by outflank-mailman (input) for mailman id 933403;
 Tue, 01 Apr 2025 03:25: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=FaGF=WT=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1tzSFV-00026o-9u
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 03:25:13 +0000
Received: from NAM04-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam04on2060b.outbound.protection.outlook.com
 [2a01:111:f403:240a::60b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e9e77e43-0ea8-11f0-9ea7-5ba50f476ded;
 Tue, 01 Apr 2025 05:25:10 +0200 (CEST)
Received: from DM4PR12MB8451.namprd12.prod.outlook.com (2603:10b6:8:182::7) by
 DS0PR12MB6557.namprd12.prod.outlook.com (2603:10b6:8:d3::5) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.8534.50; Tue, 1 Apr 2025 03:25:06 +0000
Received: from DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::b04e:2da5:7189:4c4d]) by DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::b04e:2da5:7189:4c4d%6]) with mapi id 15.20.8534.045; Tue, 1 Apr 2025
 03:25: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: e9e77e43-0ea8-11f0-9ea7-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=WCW84NTgb1RghfbNfLXFRVh/sNGpdd2CX8I8brhHdoCY/dJ15TxlEAKrF0d5xJ7LgM3IidIBdkYRe1MHF59Cyuy0bR8Iwdychqkw+rN9RKuc/LuQcG+KZLe9oXlHJLBp/7aG5/vrPaI7MMGNCCZmdflVdXqSS2vDRvUNbaNN6GVXisZTHYpjblicgd8PekPaDA7Nju0el+ebUyTXlqpm9WFFGzPPJrb1n1Y9xuHthD5HS6Ddwo7iYpRdnnzVS/vo87lbJynH0SYjJ8sTBYeezOoIyuxTCkVweT3XE8/Loz+2qjPeitSMODbDiQKevWod3490UQ7FgtAsQE8/+y1xrA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=A/KU+f+4WVQIKdgF9kt5wfqdUCJyew4L+MSOgiPW6js=;
 b=ROO3hz9zofrJTckDx4mGk5/f3+JDyl9WezpjwEUjY+M01ji+H9YhogdGJoMBwfv+Oab7h2eXC+OaDPcp8egM+0bpNY3cYsRIX69Ut7+/8dTgM4J61X0cb8TuxpXWMqU7ifVRUMq4qGUKC71svXjtuod05DomIBGMBq/VWpWKKt3VFlW/vxpYmh4zFExSqzP/IBU7U9gjI/yo/4NqbeukKEvSG75r5H9tIzRO8/jlr4bcs+SsX9vMDJiigKSM+zZzaOENgdK3Wb2egb7dcIFNd3KIu76YvCGiZlVyGVbSrXwDzugo62wI3tYK1JK+5EM3XP5OAPIp364HI69hEqqiBw==
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=A/KU+f+4WVQIKdgF9kt5wfqdUCJyew4L+MSOgiPW6js=;
 b=Bp/yU7OL9WfuoGPYHdsUdC9KFkNbGTeu11IToR3ID3R7CjHOzOErgrZfv4MadRLyg5/wIfsnxKkvPDRKBwuxyihnzr4z7ZjbBQ2qgM4SB6B9zbuL7e7boSt1aQfP4TBbXdLosrKZjzhJizA5KJ+JRSfNXbm6/0PDLRkd4Jh8rE0=
From: "Penny, Zheng" <penny.zheng@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "Huang, Ray" <Ray.Huang@amd.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, "Orzel,
 Michal" <Michal.Orzel@amd.com>, Julien Grall <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: RE: [PATCH v3 01/15] xen/cpufreq: introduces XEN_PM_PSD for solely
 delivery of _PSD
Thread-Topic: [PATCH v3 01/15] xen/cpufreq: introduces XEN_PM_PSD for solely
 delivery of _PSD
Thread-Index: AQHbjnNoTRyqRKkrMUKJ/Guu/RHDX7OCb44AgAqX8RA=
Date: Tue, 1 Apr 2025 03:25:05 +0000
Message-ID:
 <DM4PR12MB84510147E03DE64519CC4D62E1AC2@DM4PR12MB8451.namprd12.prod.outlook.com>
References: <20250306083949.1503385-1-Penny.Zheng@amd.com>
 <20250306083949.1503385-2-Penny.Zheng@amd.com>
 <8f0efe3b-296e-4f1b-9501-8431f299e90c@suse.com>
In-Reply-To: <8f0efe3b-296e-4f1b-9501-8431f299e90c@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
 MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_ActionId=342404d3-5c86-4c97-b390-9f0e78de4631;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_ContentBits=0;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Enabled=true;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Method=Privileged;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Name=Open
 Source;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SetDate=2025-03-31T07:55:06Z;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Tag=10,
 0, 1, 1;
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DM4PR12MB8451:EE_|DS0PR12MB6557:EE_
x-ms-office365-filtering-correlation-id: 867f6878-f386-4378-d759-08dd70cccc46
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?dzhwcWhrbHl1YjZLR0d6amltZmY3azdXNi8zZTBLQkRuNytRdHhpdzlRTGFR?=
 =?utf-8?B?Z1dRWEZ3MGRwYU82YnA4T3gxbHBHa2M0azRGK3ZGZGhLWU9UU1VsT0hMZDBJ?=
 =?utf-8?B?MnpkZG5PYTRSdXFuUmdscEVoUWhvM2RESiswOTllM0IrOFh1Y21yOFRnblJk?=
 =?utf-8?B?UHhHK3M0bmF5bnV6V2huWjdjYnhKbnlyR2NhbkxEK0p3TUlwK3JaRGU2dWJQ?=
 =?utf-8?B?ejNKUzZ4Y1c5b2NFOEY4ZFNXL0hRZENzSi82SlBGUjhvQUxXUkVTcUxLMkNl?=
 =?utf-8?B?MnpMaU9KTmFINWNhRENmbWRNQWMzTWUvcGgyYWxsTGxPUXFtQ3crdTdCV2JY?=
 =?utf-8?B?V2E1eWpHNUxlZDd1ODFwcU9aR2hxZFJUVExxSDJhL1lPaVRrcllSMmY3ZDZk?=
 =?utf-8?B?RjNsZHZkTVVJalovOU1hNWUrbEl0SDc5a0pyT1VqVThYcnFocjF6WlhsYWFD?=
 =?utf-8?B?TWNacllBWVNQS20vZ05UbDVlU0IraDJwQkp5Qy96NjFkNkg5QXNxQUtqOXJi?=
 =?utf-8?B?aVY4SGpQcElvNE9KbkJBeGdwU29PZ2d0K2NOY0RDZzhna2cyd2xsRThQZ0p4?=
 =?utf-8?B?OE5RcDMrZ05YTzB3aUI3WVl0dTlIYklmMUVxYXVjcGNyaGlaYjFwZkd2S2dT?=
 =?utf-8?B?R1NHRzFPeUNJK2hWYWJQSUdrTGNQaDVCWnJSdk16TTNFT1FxTW1CdnpqNlRx?=
 =?utf-8?B?R2ptQ2lCLzVKeFhDR0xYaWY0QzVjRVdYaDFobytjbjZFeHF5dzR2MDQ3QTNh?=
 =?utf-8?B?Yk1zUys5VUlwbjZoNVJtUzVHUjIwNmtveHMwUUJjQVVaZGJIVWNUT2tIRWFl?=
 =?utf-8?B?eVp0cmlBa3RCRHAyQkp3UXZwVVRlYmhMTUxNL1FYWTllclF0STVicUl2V3kz?=
 =?utf-8?B?MFhNT01RWU9FNnNDVFdEdEl4UU1uenpDS2UrdEZBMDN4ZUloS2RwV3ZwaXFa?=
 =?utf-8?B?bllicWRlUGhSOGlVMVlXVHdUUzVRV1RSbDk3UmtlTjV3SDhrL1lrWDBrOTJU?=
 =?utf-8?B?SngwbldyakpieS9TV0p1V0I4cWcxOHdJRDJRZzE4TnhyZW1ja2lEdkU3d3A1?=
 =?utf-8?B?L1ZaN1BwWmFOTFZwSnJWeDN6NTQ4eDVCQ1dCaXBzVTFSeDdEeFNVZGQrVk50?=
 =?utf-8?B?SFBOYndvMnU5QUJLTXJxT05HSkc4bUFPbkovcGVQd3NmL1VkMWFDd2Y3WHI0?=
 =?utf-8?B?V3VBa3k3MTZ0WTZ0QWxMTW1oSWlOWDBDYXZNOGtmYlorYVFINU5peWFCczlh?=
 =?utf-8?B?U0Fhb3ZxWXVQV1lnTzVEKzdMVG5QWWJXSlY1TVVPZTZDTmxkUWtEeHZtMkF0?=
 =?utf-8?B?TCt6UG1GVHhvZ3FGVXBvWjJtSCswU0RZR1FlRFpzRFEvTkY3dytrT2RTVTQ0?=
 =?utf-8?B?OTdwTkxnRnF0dmJ0QitHejBncDB3cEtOd3lwdHZhV0ZEeFFzbTVRN24yL3VM?=
 =?utf-8?B?cTdrWVJBY0cyN0lzWDI2akErbzhOaFRSZ3NrUFdVUGNhSVNqZmtFU2VibjlY?=
 =?utf-8?B?cWtObDhKTWh2N0d0TEsySG5ZRkNXSTNjbzZvZThWSGpud1VsR0ZpSTVOWlN2?=
 =?utf-8?B?QkZwRGdJZVM5UEFHT2hubUptT01qQklqL0dUNFEvMFc1TnFPVnl0RCtOdEsy?=
 =?utf-8?B?TTdyWDJkVy90cmVrclN5ellSTHdSS2RHaURmUUZXaG8rZUh1MFBZaHc2UTVq?=
 =?utf-8?B?VFIvSGxZVDVlZllKbjhsY2dHbGlibE5wZm1VbXFXaGJIRkZpQ29QdENNdEFZ?=
 =?utf-8?B?aW5lZGxkMFM0dGxicTgxK3Axb1lVb3p3ZmRNYytjRTFGK2ZDNnp5VTZHZyt3?=
 =?utf-8?B?cjJBTnkyZlA0eTdoRDdUdGdQQ0JRb2tlWVZXcW1RSUdGRFN4MlZ6WG9lbWNU?=
 =?utf-8?B?aFRldVRtdVB4MnNYQTlUNGliYUdkM3MzZEdwYzdyVHB0T3JlUm1lSzVhR2JI?=
 =?utf-8?Q?2piT6e6ztEnFg+ZJlJZwCSopqkqDPjR6?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB8451.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?ZUc2azQ2QUdiMzFEVUQrdXVSV2pmYkJuNjFYTEhISlBnczBmSHRLcE5PblNk?=
 =?utf-8?B?c1MwdWlZL1VYQU1ObldsVFk1ZVAxQ0g4NEViWG9uS25vOW80YktWbmMrckRH?=
 =?utf-8?B?d1ZnOTJPaWFsakdBVXQ3VDZhYktkaXhTYXk2YzA0SXR4bEZmcFpMcWF6ejBq?=
 =?utf-8?B?MFNhSkdXeFUzSWwwYnpxWHdJakNKeUdqV1ljTy9jbFlrUEZZOW13WEhqSmsz?=
 =?utf-8?B?SkRBWEVJWnFleUxqRldrVE0vWEthY3VuMm53U29PeXJ0OHdESEtObnRQbkty?=
 =?utf-8?B?VUhzV3p3NUJRZ2pkM0dRajE1YlBYSm9KZjhuWWdzQWVPMUpzQVc5ZHNjaHYw?=
 =?utf-8?B?V0RXK085VWNRNWNSelM2KzE4L21DSUJ5eGhOMGxQMzhjUlA2NG9yVlJ1WnNv?=
 =?utf-8?B?dWRYNDlKNFJmYzVGUVNUVmw3dWtVL0tidXNsWTFhM2hleGR0NjJLNUdZTmtr?=
 =?utf-8?B?TXN2cjZVYTl1ZTFWcVZNUnlXZUtRUFQwckRhWGlGaVNkNkNVWDhObDErcTd1?=
 =?utf-8?B?QlFuNHp3K1BJMWlTSVdrdVlYSEVUSjFxcHhrOXovNG1IV0RBSTB0QitDZDNM?=
 =?utf-8?B?b2RLOXR5QnVyZCtzVWNQMzFxbDRiUXZIMlhHK0ZvQTJGS1E2aVlSVXUwYkpT?=
 =?utf-8?B?NHdSOXA1ZUFRa0JVTk9Ya0c0Y0VBbVhhTjZyWmhPYVhIaHpaRHBtRGVrWXBu?=
 =?utf-8?B?REY4anZwZEhZWjRBSnU3WnBjWWRrYU9PRVFiVjNtcGdYSWcwT05lbjNqQ1VG?=
 =?utf-8?B?MFRRVjF4N3pqU0EwZEdRRlczQVVOMEhEOG1CU0lEZmhrcXpCZHgxVGkwU1ZJ?=
 =?utf-8?B?MEwwenQyUVNnMWZqLy9raWY0OGFZK2czYWJmdm40YzAraE1qVHJrakdJWHBv?=
 =?utf-8?B?VXlRN2IxSGQxNmJrRWlDZ2tZbjdOOFUvT2dYQ0xFU09nUzAyRFI2dVVuamQ0?=
 =?utf-8?B?aTdvRlR3encxUGFuNiszRTZzRTEzMTJhNTdxdzEzVE5yODk5c2VPV2liTlhj?=
 =?utf-8?B?VmZTTGhWbWxieVd4OTljSE40aUx5ek01cGxuZWhWTUdyUWhEb1VxVU1NTExF?=
 =?utf-8?B?bUlFQmVsUzk4VkpVam5SS3pIRGZ2eVp5VSswWXhTYXFDd1BaNHcrOGgxYVNL?=
 =?utf-8?B?MGg2RTN2RDhPeU1tYW5KNi9zUkFNajFKOCtPTEJSMjB3d2I1MitIZG1IMkRh?=
 =?utf-8?B?VXRGMURHcjl3MzlFSlFHdjlWaHBmTzBFdThSQkxJbXMwNkFuM1Rtem01S1pU?=
 =?utf-8?B?VHE0VmF5NXVvZndacnJ0clZ2ckQ2cGMva2hGRWpaelRkc0l0SzRsSmJTNGtm?=
 =?utf-8?B?UXlrU0FySmdsMjEwTUdUVlZya0Fab3hkMkRicmhPZU4vZmpOQ1I4bS9aQkpK?=
 =?utf-8?B?Y2xhalVZbHlyU3FEYW1taER6N0Rld3dKTmwwOFVNU2FSN2xqd2xodkQ2OXNE?=
 =?utf-8?B?b0V3eURiNnRGNEtrVXROZnYwM1dPQWc2TjZVbjdHQkdUMW1KUDJjdmpXZVg3?=
 =?utf-8?B?ZWZSeWJyd1c4ZEFxdTVzam9SQTJScytyL3drTmEzRFVuS3ZVZUlLVklQbzlR?=
 =?utf-8?B?NlhQQVpGblRqekJLb2QxQlRYbDV6eHFPblZmUG8xMlEwc2xwdjQ3TGxETC9Q?=
 =?utf-8?B?V2crV3NxM01hVHh0eU9oT3lWZVR4QmhoeDRYQis2emxUSXVTaHg3RHJyQ3ZR?=
 =?utf-8?B?QnZ5REljR09xQ1l3VkNBaVJVNFNEYzZPa0Y2aG9OeHcvTmlIVWI5UmNIY1pa?=
 =?utf-8?B?d1YvaG94cHpUcWlVWEZMK1VzMEdLTDZ0QnFDTUkxNCtUNnV3M21XUmVCZTVI?=
 =?utf-8?B?UEtXeHpWK2srazNIa0VZV0hMQ2NsVk0vbVZ5S2FLdXVlTkxZNVR0RHgzQlNn?=
 =?utf-8?B?TVE2UEZqRUUwTjdDektPS0ZZYzVteUlKQllRS3lCRzVrMEFnd0ErdU5lL0pp?=
 =?utf-8?B?Ry9LRHJEb3piVitRZHlKeHJGelFRcEdYUUtLdkEyRXZsRzBTUklJWjNRU1Nx?=
 =?utf-8?B?ZCtxcHhwMjI5dVNMWnlySDdKQng4ZGNnd0I0NTUwMlJudzhlelBodE0wKzlW?=
 =?utf-8?B?bnFOVnVHOWM0eCt3RUhZaDhrbEREZ29mTktDSmMzczhZMlI5ODN4UzZ1dUFu?=
 =?utf-8?Q?Z0yM=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB8451.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 867f6878-f386-4378-d759-08dd70cccc46
X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Apr 2025 03:25:05.9279
 (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: XNWI85AC3F6yqF9JY5edd9ufyhPDfqFJxwyut1YOsANm79APWVlda0q0D0zqXtho7uD09kSxXYu9kGFZL7uSYg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB6557

W1B1YmxpY10NCg0KSGksDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTog
SmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPg0KPiBTZW50OiBNb25kYXksIE1hcmNoIDI0
LCAyMDI1IDEwOjA5IFBNDQo+IFRvOiBQZW5ueSwgWmhlbmcgPHBlbm55LnpoZW5nQGFtZC5jb20+
DQo+IENjOiBIdWFuZywgUmF5IDxSYXkuSHVhbmdAYW1kLmNvbT47IEFuZHJldyBDb29wZXINCj4g
PGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+OyBSb2dlciBQYXUgTW9ubsOpIDxyb2dlci5wYXVA
Y2l0cml4LmNvbT47DQo+IEFudGhvbnkgUEVSQVJEIDxhbnRob255LnBlcmFyZEB2YXRlcy50ZWNo
PjsgT3J6ZWwsIE1pY2hhbA0KPiA8TWljaGFsLk9yemVsQGFtZC5jb20+OyBKdWxpZW4gR3JhbGwg
PGp1bGllbkB4ZW4ub3JnPjsgU3RlZmFubyBTdGFiZWxsaW5pDQo+IDxzc3RhYmVsbGluaUBrZXJu
ZWwub3JnPjsgeGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQo+IFN1YmplY3Q6IFJlOiBb
UEFUQ0ggdjMgMDEvMTVdIHhlbi9jcHVmcmVxOiBpbnRyb2R1Y2VzIFhFTl9QTV9QU0QgZm9yIHNv
bGVseQ0KPiBkZWxpdmVyeSBvZiBfUFNEDQo+DQo+IE9uIDA2LjAzLjIwMjUgMDk6MzksIFBlbm55
IFpoZW5nIHdyb3RlOg0KPiA+IC0tLSBhL3hlbi9pbmNsdWRlL3B1YmxpYy9wbGF0Zm9ybS5oDQo+
ID4gKysrIGIveGVuL2luY2x1ZGUvcHVibGljL3BsYXRmb3JtLmgNCj4gPiBAQCAtMzYzLDEyICsz
NjMsMTIgQEANCj4gREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVucGZfZ2V0aWRsZXRpbWVfdCk7
DQo+ID4gICNkZWZpbmUgWEVOX1BNX1BYICAgMQ0KPiA+ICAjZGVmaW5lIFhFTl9QTV9UWCAgIDIN
Cj4gPiAgI2RlZmluZSBYRU5fUE1fUERDICAzDQo+ID4gKyNkZWZpbmUgWEVOX1BNX1BTRCAgNA0K
PiA+DQo+ID4gIC8qIFB4IHN1YiBpbmZvIHR5cGUgKi8NCj4gPiAgI2RlZmluZSBYRU5fUFhfUENU
ICAgMQ0KPiA+ICAjZGVmaW5lIFhFTl9QWF9QU1MgICAyDQo+ID4gICNkZWZpbmUgWEVOX1BYX1BQ
QyAgIDQNCj4gPiAtI2RlZmluZSBYRU5fUFhfUFNEICAgOA0KPiA+DQo+ID4gIHN0cnVjdCB4ZW5f
cG93ZXJfcmVnaXN0ZXIgew0KPiA+ICAgICAgdWludDMyX3QgICAgIHNwYWNlX2lkOw0KPiA+IEBA
IC00MzksNiArNDM5LDcgQEAgc3RydWN0IHhlbl9wc2RfcGFja2FnZSB7DQo+ID4gICAgICB1aW50
NjRfdCBjb29yZF90eXBlOw0KPiA+ICAgICAgdWludDY0X3QgbnVtX3Byb2Nlc3NvcnM7DQo+ID4g
IH07DQo+ID4gK3R5cGVkZWYgc3RydWN0IHhlbl9wc2RfcGFja2FnZSB4ZW5fcHNkX3BhY2thZ2Vf
dDsNCj4gPg0KPiA+ICBzdHJ1Y3QgeGVuX3Byb2Nlc3Nvcl9wZXJmb3JtYW5jZSB7DQo+ID4gICAg
ICB1aW50MzJfdCBmbGFnczsgICAgIC8qIGZsYWcgZm9yIFB4IHN1YiBpbmZvIHR5cGUgKi8NCj4g
PiBAQCAtNDQ3LDEyICs0NDgsNiBAQCBzdHJ1Y3QgeGVuX3Byb2Nlc3Nvcl9wZXJmb3JtYW5jZSB7
DQo+ID4gICAgICBzdHJ1Y3QgeGVuX3BjdF9yZWdpc3RlciBzdGF0dXNfcmVnaXN0ZXI7DQo+ID4g
ICAgICB1aW50MzJfdCBzdGF0ZV9jb3VudDsgICAgIC8qIHRvdGFsIGF2YWlsYWJsZSBwZXJmb3Jt
YW5jZSBzdGF0ZXMgKi8NCj4gPiAgICAgIFhFTl9HVUVTVF9IQU5ETEUoeGVuX3Byb2Nlc3Nvcl9w
eF90KSBzdGF0ZXM7DQo+ID4gLSAgICBzdHJ1Y3QgeGVuX3BzZF9wYWNrYWdlIGRvbWFpbl9pbmZv
Ow0KPiA+IC0gICAgLyogQ29vcmRpbmF0aW9uIHR5cGUgb2YgdGhpcyBwcm9jZXNzb3IgKi8NCj4g
PiAtI2RlZmluZSBYRU5fQ1BVUEVSRl9TSEFSRURfVFlQRV9IVyAgIDEgLyogSFcgZG9lcyBuZWVk
ZWQNCj4gY29vcmRpbmF0aW9uICovDQo+ID4gLSNkZWZpbmUgWEVOX0NQVVBFUkZfU0hBUkVEX1RZ
UEVfQUxMICAyIC8qIEFsbCBkZXBlbmRlbnQgQ1BVcw0KPiBzaG91bGQNCj4gPiBzZXQgZnJlcSAq
LyAtI2RlZmluZSBYRU5fQ1BVUEVSRl9TSEFSRURfVFlQRV9BTlkgIDMgLyogRnJlcSBjYW4gYmUg
c2V0DQo+IGZyb20gYW55IGRlcGVuZGVudCBDUFUgKi8NCj4gPiAtICAgIHVpbnQzMl90IHNoYXJl
ZF90eXBlOw0KPiA+ICB9Ow0KPiA+ICB0eXBlZGVmIHN0cnVjdCB4ZW5fcHJvY2Vzc29yX3BlcmZv
cm1hbmNlIHhlbl9wcm9jZXNzb3JfcGVyZm9ybWFuY2VfdDsNCj4gPiBERUZJTkVfWEVOX0dVRVNU
X0hBTkRMRSh4ZW5fcHJvY2Vzc29yX3BlcmZvcm1hbmNlX3QpOw0KPiA+IEBAIC00NjMsOSArNDU4
LDE1IEBAIHN0cnVjdCB4ZW5wZl9zZXRfcHJvY2Vzc29yX3BtaW5mbyB7DQo+ID4gICAgICB1aW50
MzJfdCB0eXBlOyAgLyoge1hFTl9QTV9DWCwgWEVOX1BNX1BYfSAqLw0KPiA+ICAgICAgdW5pb24g
ew0KPiA+ICAgICAgICAgIHN0cnVjdCB4ZW5fcHJvY2Vzc29yX3Bvd2VyICAgICAgICAgIHBvd2Vy
Oy8qIEN4OiBfQ1NUL19DU0QgKi8NCj4gPiAtICAgICAgICBzdHJ1Y3QgeGVuX3Byb2Nlc3Nvcl9w
ZXJmb3JtYW5jZSAgICBwZXJmOyAvKiBQeDogX1BQQy9fUENUL19QU1MvX1BTRA0KPiAqLw0KPiA+
ICsgICAgICAgIHhlbl9wc2RfcGFja2FnZV90ICAgICAgICAgICAgICAgICAgIGRvbWFpbl9pbmZv
OyAvKiBfUFNEICovDQo+ID4gKyAgICAgICAgc3RydWN0IHhlbl9wcm9jZXNzb3JfcGVyZm9ybWFu
Y2UgICAgcGVyZjsgLyogUHg6IF9QUEMvX1BDVC9fUFNTLyAqLw0KPiA+ICAgICAgICAgIFhFTl9H
VUVTVF9IQU5ETEUodWludDMyKSAgICAgICAgICAgIHBkYzsgIC8qIF9QREMgKi8NCj4gPiAgICAg
IH0gdTsNCj4gPiArICAgIC8qIENvb3JkaW5hdGlvbiB0eXBlIG9mIHRoaXMgcHJvY2Vzc29yICov
DQo+ID4gKyNkZWZpbmUgWEVOX0NQVVBFUkZfU0hBUkVEX1RZUEVfSFcgICAxIC8qIEhXIGRvZXMg
bmVlZGVkDQo+IGNvb3JkaW5hdGlvbiAqLw0KPiA+ICsjZGVmaW5lIFhFTl9DUFVQRVJGX1NIQVJF
RF9UWVBFX0FMTCAgMiAvKiBBbGwgZGVwZW5kZW50IENQVXMNCj4gc2hvdWxkDQo+ID4gK3NldCBm
cmVxICovICNkZWZpbmUgWEVOX0NQVVBFUkZfU0hBUkVEX1RZUEVfQU5ZICAzIC8qIEZyZXEgY2Fu
IGJlDQo+IHNldCBmcm9tIGFueSBkZXBlbmRlbnQgQ1BVICovDQo+ID4gKyAgICB1aW50MzJfdCBz
aGFyZWRfdHlwZTsNCj4gPiAgfTsNCj4gPiAgdHlwZWRlZiBzdHJ1Y3QgeGVucGZfc2V0X3Byb2Nl
c3Nvcl9wbWluZm8NCj4gPiB4ZW5wZl9zZXRfcHJvY2Vzc29yX3BtaW5mb190Ow0KPiA+IERFRklO
RV9YRU5fR1VFU1RfSEFORExFKHhlbnBmX3NldF9wcm9jZXNzb3JfcG1pbmZvX3QpOw0KPg0KPiBX
aXRoIHRoaXMgY2hhbmdlIHRvIHN0YWJsZSBoeXBlcmNhbGwgc3RydWN0dXJlcywgaG93IGlzIGFu
IG9sZGVyIERvbTAga2VybmVsIGdvaW5nDQo+IHRvIGJlIGFibGUgdG8gcHJvcGVybHkgdXBsb2Fk
IHRoZSBuZWNlc3NhcnkgZGF0YT8gSU9XOiBObywgeW91IGNhbid0IGFsdGVyIGV4aXN0aW5nDQo+
IHN0YWJsZSBoeXBlcmNhbGwgc3RydWN0dXJlcyBsaWtlIHRoaXMuDQo+DQoNClVuZGVyc3Rvb2Qu
DQpJJ2xsIGV4cGFuZCB0aGUgbmV3bHkgYWRkZWQgInN0cnVjdCB4ZW5fcHJvY2Vzc29yX2NwcGMi
LCB0byBsZXQgaXQgYWxzbyBpbmNsdWRlIF9QU0QgaW5mbw0KYW5kIHNoYXJlZCB0eXBlDQpgYGAN
CitzdHJ1Y3QgeGVuX3Byb2Nlc3Nvcl9jcHBjIHsNCisgICAgdWludDhfdCBmbGFnczsgLyogZmxh
ZyBmb3IgQ1BQQyBzdWIgaW5mbyB0eXBlICovDQorICAgIC8qDQorICAgICAqIFN1YnNldCBfQ1BD
IGZpZWxkcyB1c2VmdWwgZm9yIENQUEMtY29tcGF0aWJsZSBjcHVmcmVxDQorICAgICAqIGRyaXZl
cidzIGluaXRpYWxpemF0aW9uDQorICAgICAqLw0KKyAgICBzdHJ1Y3Qgew0KKyAgICAgICAgdWlu
dDMyX3QgaGlnaGVzdF9wZXJmOw0KKyAgICAgICAgdWludDMyX3Qgbm9taW5hbF9wZXJmOw0KKyAg
ICAgICAgdWludDMyX3QgbG93ZXN0X25vbmxpbmVhcl9wZXJmOw0KKyAgICAgICAgdWludDMyX3Qg
bG93ZXN0X3BlcmY7DQorICAgICAgICB1aW50MzJfdCBsb3dlc3RfbWh6Ow0KKyAgICAgICAgdWlu
dDMyX3Qgbm9taW5hbF9taHo7DQorICAgIH0gY3BjOw0KKyAgICBzdHJ1Y3QgeGVuX3BzZF9wYWNr
YWdlIGRvbWFpbl9pbmZvOyAvKiBfUFNEICovDQorICAgIC8qIENvb3JkaW5hdGlvbiB0eXBlIG9m
IHRoaXMgcHJvY2Vzc29yICovDQorICAgIHVpbnQzMl90IHNoYXJlZF90eXBlOw0KK307DQordHlw
ZWRlZiBzdHJ1Y3QgeGVuX3Byb2Nlc3Nvcl9jcHBjIHhlbl9wcm9jZXNzb3JfY3BwY190Ow0KYGBg
DQoNCj4gSmFuDQo=


From xen-devel-bounces@lists.xenproject.org Tue Apr 01 05:14:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 05:14:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.933416.1335365 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzTxT-0000mk-42; Tue, 01 Apr 2025 05:14:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 933416.1335365; Tue, 01 Apr 2025 05: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 1tzTxT-0000md-1F; Tue, 01 Apr 2025 05:14:43 +0000
Received: by outflank-mailman (input) for mailman id 933416;
 Tue, 01 Apr 2025 05: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=UCkk=WT=zytor.com=hpa@srs-se1.protection.inumbo.net>)
 id 1tzTxR-0000mX-HS
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 05:14:42 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 33457037-0eb8-11f0-9ffb-bf95429c2676;
 Tue, 01 Apr 2025 07:14:35 +0200 (CEST)
Received: from [127.0.0.1] ([76.133.66.138]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 5315DrPW3571921
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NO);
 Mon, 31 Mar 2025 22:13:53 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 33457037-0eb8-11f0-9ffb-bf95429c2676
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 5315DrPW3571921
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025032001; t=1743484436;
	bh=fXArKFGaxt8nFnaWBdSW+pU45Be8cuJJXPIK/BFyt00=;
	h=Date:From:To:CC:Subject:In-Reply-To:References:From;
	b=kDAtkLct4ESsM95J+GAXm6Ip9nS2vCeNnpZd5bqqzetTLzyI1dGpO4FHTdCywuUb7
	 WGNeXx4i+jLpuQrfsgKmAO//REzlRpcJIhlg3BiQafg1GzI6ikQM3j7rveeHHx8qEQ
	 CWx/fzNgtVCbn/YdOsKRTX3+ivqNDh7QpvYGnD8XTDDfehr8TQnDZRQ5T6cB2w2NXq
	 sNL/9PBtrg1oFPYF0fJT9aZRbEjTs4UCCHnnJFtzzQgDFxprnhDKMIRSwjt3dTD6q1
	 Lo7DVLOnslrIY9K+rdbbOdFCWR3dM3o3/+miqBEdIWuSpByt20GZTiNiujHjtNVCBm
	 M4aSJPmJLqUXA==
Date: Mon, 31 Mar 2025 22:13:51 -0700
From: "H. Peter Anvin" <hpa@zytor.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>,
        "Xin Li (Intel)" <xin@zytor.com>, linux-kernel@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-edac@vger.kernel.org,
        kvm@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-ide@vger.kernel.org, linux-pm@vger.kernel.org,
        bpf@vger.kernel.org, llvm@lists.linux.dev
CC: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, jgross@suse.com,
        peterz@infradead.org, acme@kernel.org, namhyung@kernel.org,
        mark.rutland@arm.com, alexander.shishkin@linux.intel.com,
        jolsa@kernel.org, irogers@google.com, adrian.hunter@intel.com,
        kan.liang@linux.intel.com, wei.liu@kernel.org, ajay.kaher@broadcom.com,
        alexey.amakhalov@broadcom.com, bcm-kernel-feedback-list@broadcom.com,
        tony.luck@intel.com, pbonzini@redhat.com, vkuznets@redhat.com,
        seanjc@google.com, luto@kernel.org, boris.ostrovsky@oracle.com,
        kys@microsoft.com, haiyangz@microsoft.com, decui@microsoft.com
Subject: =?US-ASCII?Q?Re=3A_=5BRFC_PATCH_v1_01/15=5D_x86/msr=3A_Re?=
 =?US-ASCII?Q?place_=5F=5Fwrmsr=28=29_with_native=5Fwrmsrl=28=29?=
User-Agent: K-9 Mail for Android
In-Reply-To: <0da43a86-81b0-4388-b47b-3a76b15f2a4c@citrix.com>
References: <20250331082251.3171276-1-xin@zytor.com> <20250331082251.3171276-2-xin@zytor.com> <0da43a86-81b0-4388-b47b-3a76b15f2a4c@citrix.com>
Message-ID: <03874E9B-FAEB-4ACA-B13D-0BED7D54F443@zytor.com>
MIME-Version: 1.0
Content-Type: text/plain;
 charset=utf-8
Content-Transfer-Encoding: quoted-printable

On March 31, 2025 2:45:43 PM PDT, Andrew Cooper <andrew=2Ecooper3@citrix=2E=
com> wrote:
>On 31/03/2025 9:22 am, Xin Li (Intel) wrote:
>> __wrmsr() is the lowest level primitive MSR write API, and its direct
>> use is NOT preferred=2E  Use its wrapper function native_wrmsrl() inste=
ad=2E
>>
>> No functional change intended=2E
>>
>> Signed-off-by: Xin Li (Intel) <xin@zytor=2Ecom>
>
>The critical piece of information you're missing from the commit message
>is that the MSR_IMM instructions take a single u64=2E
>
>Therefore to use them, you've got to arrange for all callers to provide
>a single u64, rather than a split u32 pair=2E
>
>~Andrew

That being said, there is nothing wrong with having a two-word convenience=
 wrapper=2E


From xen-devel-bounces@lists.xenproject.org Tue Apr 01 05:30:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 05:30:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.933427.1335375 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzUCM-0004O4-Bi; Tue, 01 Apr 2025 05:30:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 933427.1335375; Tue, 01 Apr 2025 05:30: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 1tzUCM-0004Nw-80; Tue, 01 Apr 2025 05:30:06 +0000
Received: by outflank-mailman (input) for mailman id 933427;
 Tue, 01 Apr 2025 05:30: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=O7Gc=WT=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1tzUCK-00049U-Ud
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 05:30:04 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5bbbcdcc-0eba-11f0-9ea7-5ba50f476ded;
 Tue, 01 Apr 2025 07:30:03 +0200 (CEST)
Received: from [192.168.7.202] ([71.202.166.45]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 5315TLRJ3578162
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NO);
 Mon, 31 Mar 2025 22:29:22 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5bbbcdcc-0eba-11f0-9ea7-5ba50f476ded
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 5315TLRJ3578162
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025032001; t=1743485364;
	bh=tuYUVWHXKKCOA8JUjduDbXOfJ32573HPzEBPhF28G1U=;
	h=Date:Subject:To:Cc:References:From:In-Reply-To:From;
	b=PuNRo8V6ftJc3Js38Xt4+TPl7kcUwg2H/x5pUpEyYzi5yh4DDLkLlfTh1+cPv15Ju
	 dWziFt2BjmW6G8CLCEsUhjN9zmSFpxd5hIVv9cdXt52fpANXDQAF4mQigMq0+0E0CE
	 7/6oUfZw2t3Ler+zOXMQ8swzm01cbejNDrBEd8Q2Z5fBJmEFZL9uYdaS0txe/IvZ/i
	 e5OGXzLYWtkOw6AtYS5H4IMxdvILUBb9AFccmBXaVWsdDmNMkIr7xMXEIHaglNHoxU
	 yMzPh3IKZ+Ue5Am3ilhBA2dMtkCPTsFDGLanh6aCEHH/0mNg/Lm28JEuiML1/KzRw6
	 RrhgzdOxIVCTw==
Message-ID: <0084e9a9-8247-456f-b1a5-c5cd7bb62710@zytor.com>
Date: Mon, 31 Mar 2025 22:29:21 -0700
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH v1 01/15] x86/msr: Replace __wrmsr() with
 native_wrmsrl()
To: "H. Peter Anvin" <hpa@zytor.com>,
        Andrew Cooper <andrew.cooper3@citrix.com>,
        linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org,
        linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
        linux-edac@vger.kernel.org, kvm@vger.kernel.org,
        xen-devel@lists.xenproject.org, linux-ide@vger.kernel.org,
        linux-pm@vger.kernel.org, bpf@vger.kernel.org, llvm@lists.linux.dev
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, jgross@suse.com,
        peterz@infradead.org, acme@kernel.org, namhyung@kernel.org,
        mark.rutland@arm.com, alexander.shishkin@linux.intel.com,
        jolsa@kernel.org, irogers@google.com, adrian.hunter@intel.com,
        kan.liang@linux.intel.com, wei.liu@kernel.org, ajay.kaher@broadcom.com,
        alexey.amakhalov@broadcom.com, bcm-kernel-feedback-list@broadcom.com,
        tony.luck@intel.com, pbonzini@redhat.com, vkuznets@redhat.com,
        seanjc@google.com, luto@kernel.org, boris.ostrovsky@oracle.com,
        kys@microsoft.com, haiyangz@microsoft.com, decui@microsoft.com
References: <20250331082251.3171276-1-xin@zytor.com>
 <20250331082251.3171276-2-xin@zytor.com>
 <0da43a86-81b0-4388-b47b-3a76b15f2a4c@citrix.com>
 <03874E9B-FAEB-4ACA-B13D-0BED7D54F443@zytor.com>
Content-Language: en-US
From: Xin Li <xin@zytor.com>
Autocrypt: addr=xin@zytor.com; keydata=
 xsDNBGUPz1cBDACS/9yOJGojBFPxFt0OfTWuMl0uSgpwk37uRrFPTTLw4BaxhlFL0bjs6q+0
 2OfG34R+a0ZCuj5c9vggUMoOLdDyA7yPVAJU0OX6lqpg6z/kyQg3t4jvajG6aCgwSDx5Kzg5
 Rj3AXl8k2wb0jdqRB4RvaOPFiHNGgXCs5Pkux/qr0laeFIpzMKMootGa4kfURgPhRzUaM1vy
 bsMsL8vpJtGUmitrSqe5dVNBH00whLtPFM7IbzKURPUOkRRiusFAsw0a1ztCgoFczq6VfAVu
 raTye0L/VXwZd+aGi401V2tLsAHxxckRi9p3mc0jExPc60joK+aZPy6amwSCy5kAJ/AboYtY
 VmKIGKx1yx8POy6m+1lZ8C0q9b8eJ8kWPAR78PgT37FQWKYS1uAroG2wLdK7FiIEpPhCD+zH
 wlslo2ETbdKjrLIPNehQCOWrT32k8vFNEMLP5G/mmjfNj5sEf3IOKgMTMVl9AFjsINLHcxEQ
 6T8nGbX/n3msP6A36FDfdSEAEQEAAc0WWGluIExpIDx4aW5Aenl0b3IuY29tPsLBDQQTAQgA
 NxYhBIUq/WFSDTiOvUIqv2u9DlcdrjdRBQJlD89XBQkFo5qAAhsDBAsJCAcFFQgJCgsFFgID
 AQAACgkQa70OVx2uN1HUpgv/cM2fsFCQodLArMTX5nt9yqAWgA5t1srri6EgS8W3F+3Kitge
 tYTBKu6j5BXuXaX3vyfCm+zajDJN77JHuYnpcKKr13VcZi1Swv6Jx1u0II8DOmoDYLb1Q2ZW
 v83W55fOWJ2g72x/UjVJBQ0sVjAngazU3ckc0TeNQlkcpSVGa/qBIHLfZraWtdrNAQT4A1fa
 sWGuJrChBFhtKbYXbUCu9AoYmmbQnsx2EWoJy3h7OjtfFapJbPZql+no5AJ3Mk9eE5oWyLH+
 QWqtOeJM7kKvn/dBudokFSNhDUw06e7EoVPSJyUIMbYtUO7g2+Atu44G/EPP0yV0J4lRO6EA
 wYRXff7+I1jIWEHpj5EFVYO6SmBg7zF2illHEW31JAPtdDLDHYcZDfS41caEKOQIPsdzQkaQ
 oW2hchcjcMPAfyhhRzUpVHLPxLCetP8vrVhTvnaZUo0xaVYb3+wjP+D5j/3+hwblu2agPsaE
 vgVbZ8Fx3TUxUPCAdr/p73DGg57oHjgezsDNBGUPz1gBDAD4Mg7hMFRQqlzotcNSxatlAQNL
 MadLfUTFz8wUUa21LPLrHBkUwm8RujehJrzcVbPYwPXIO0uyL/F///CogMNx7Iwo6by43KOy
 g89wVFhyy237EY76j1lVfLzcMYmjBoTH95fJC/lVb5Whxil6KjSN/R/y3jfG1dPXfwAuZ/4N
 cMoOslWkfZKJeEut5aZTRepKKF54T5r49H9F7OFLyxrC/uI9UDttWqMxcWyCkHh0v1Di8176
 jjYRNTrGEfYfGxSp+3jYL3PoNceIMkqM9haXjjGl0W1B4BidK1LVYBNov0rTEzyr0a1riUrp
 Qk+6z/LHxCM9lFFXnqH7KWeToTOPQebD2B/Ah5CZlft41i8L6LOF/LCuDBuYlu/fI2nuCc8d
 m4wwtkou1Y/kIwbEsE/6RQwRXUZhzO6llfoN96Fczr/RwvPIK5SVMixqWq4QGFAyK0m/1ap4
 bhIRrdCLVQcgU4glo17vqfEaRcTW5SgX+pGs4KIPPBE5J/ABD6pBnUUAEQEAAcLA/AQYAQgA
 JhYhBIUq/WFSDTiOvUIqv2u9DlcdrjdRBQJlD89ZBQkFo5qAAhsMAAoJEGu9DlcdrjdR4C0L
 /RcjolEjoZW8VsyxWtXazQPnaRvzZ4vhmGOsCPr2BPtMlSwDzTlri8BBG1/3t/DNK4JLuwEj
 OAIE3fkkm+UG4Kjud6aNeraDI52DRVCSx6xff3bjmJsJJMb12mWglN6LjdF6K+PE+OTJUh2F
 dOhslN5C2kgl0dvUuevwMgQF3IljLmi/6APKYJHjkJpu1E6luZec/lRbetHuNFtbh3xgFIJx
 2RpgVDP4xB3f8r0I+y6ua+p7fgOjDLyoFjubRGed0Be45JJQEn7A3CSb6Xu7NYobnxfkwAGZ
 Q81a2XtvNS7Aj6NWVoOQB5KbM4yosO5+Me1V1SkX2jlnn26JPEvbV3KRFcwV5RnDxm4OQTSk
 PYbAkjBbm+tuJ/Sm+5Yp5T/BnKz21FoCS8uvTiziHj2H7Cuekn6F8EYhegONm+RVg3vikOpn
 gao85i4HwQTK9/D1wgJIQkdwWXVMZ6q/OALaBp82vQ2U9sjTyFXgDjglgh00VRAHP7u1Rcu4
 l75w1xInsg==
In-Reply-To: <03874E9B-FAEB-4ACA-B13D-0BED7D54F443@zytor.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 3/31/2025 10:13 PM, H. Peter Anvin wrote:
> On March 31, 2025 2:45:43 PM PDT, Andrew Cooper <andrew.cooper3@citrix.com> wrote:
>> On 31/03/2025 9:22 am, Xin Li (Intel) wrote:
>>> __wrmsr() is the lowest level primitive MSR write API, and its direct
>>> use is NOT preferred.  Use its wrapper function native_wrmsrl() instead.
>>>
>>> No functional change intended.
>>>
>>> Signed-off-by: Xin Li (Intel) <xin@zytor.com>
>>
>> The critical piece of information you're missing from the commit message
>> is that the MSR_IMM instructions take a single u64.
>>
>> Therefore to use them, you've got to arrange for all callers to provide
>> a single u64, rather than a split u32 pair.
>>
>> ~Andrew
> 
> That being said, there is nothing wrong with having a two-word convenience wrapper.
> 

Yes, I ended up keeping the two-word convenience wrapper in this patch
set, and the wrapper calls a lower level API that takes a u64 argument.

And yes, as Ingo said, some of the conversion is NOT an improvement.



From xen-devel-bounces@lists.xenproject.org Tue Apr 01 05:45:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 05:45:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.933439.1335386 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzUQm-0000Ul-J9; Tue, 01 Apr 2025 05:45:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 933439.1335386; Tue, 01 Apr 2025 05:45: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 1tzUQm-0000Ue-Ef; Tue, 01 Apr 2025 05:45:00 +0000
Received: by outflank-mailman (input) for mailman id 933439;
 Tue, 01 Apr 2025 05:44: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=FaGF=WT=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1tzUQk-0000UO-6b
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 05:44:58 +0000
Received: from NAM12-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam12on20624.outbound.protection.outlook.com
 [2a01:111:f403:200a::624])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6fd08b3b-0ebc-11f0-9ffb-bf95429c2676;
 Tue, 01 Apr 2025 07:44:55 +0200 (CEST)
Received: from DM4PR12MB8451.namprd12.prod.outlook.com (2603:10b6:8:182::7) by
 BL1PR12MB5778.namprd12.prod.outlook.com (2603:10b6:208:391::22) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.44; Tue, 1 Apr
 2025 05:44:51 +0000
Received: from DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::b04e:2da5:7189:4c4d]) by DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::b04e:2da5:7189:4c4d%6]) with mapi id 15.20.8534.045; Tue, 1 Apr 2025
 05:44: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: 6fd08b3b-0ebc-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=SzZcgZwzVmInpqVGQSCuANdfzOdjWftqICybpD0mURxvsr8N9Lm0QWz0KPrDC1rjU8DSZLEQdv7ubVPtN2LGWufxSKIOGKagYJn15oTpwGmLvv1vZIHi60UJR7ZTSiTgSW0vwVq5gkJul/Ll+LCxgSt1K5u6v6S0EPtm7sKZZ+cexSqlK2eekAHuqtY34r/OdQ+p0X84jfv93BHiJbtgepQix4lqGXsmo+BmRsUKJCt14WtDD8IhqCxqT4syKcZRDc9eP/j6xtUi4qix4nS51/enA5uGGBIE22efSj166GzZBU3eGuigASeLr6nh/v2ncXj/wP2FuTF+NANWM0me9A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=6n4B6Jc20zwFIFzFziY1e68w/DqumTRMr2U5rS0iJ1I=;
 b=DGNFlAwUTNvN3K5mjjNtNt52Em0DntVeXl0ltiinmZLWaASpBxLbget8P5jR9y7UZBsNgzCOBkcuPlAqNTgQxzuQi5ZmhUSNyyu9hSw4NYfwvQnAxNdrtVo+qOcFpZiF6gU6+QVeKTjiegvCEEXKFLryp/sCda5h8VomTftlOScF6CdPM9eezEWKVKyKjiwpZqFcKA/u0Hzrk+sa7JDcT566q+IWp0JeQJoLrCgllpq1rKyKqFYb9aPHP4/Cljl3oej3pYRUqitZaz3WAhh6hXsHFifec9W2AqjHlAk69r5ISuH4ssVpPjPziC1U7ZSw4uWfqUJ8UeyxVXviq71F+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=6n4B6Jc20zwFIFzFziY1e68w/DqumTRMr2U5rS0iJ1I=;
 b=pDtDPv+tuMWHCayMIZV92CYtLmZsLnpAsDTXxL22tIGpbaooX8ySosjmgfvWl0JtTezrhCDgDA08d0Awam94Qt7i6Xg20yfOmjbrrsPXaXjDSkjOc0/Lsrn6yfjciB2N8amm0OaDitn53IP/ThokLomP/o3l91lsrdAH62crcfs=
From: "Penny, Zheng" <penny.zheng@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "Huang, Ray" <Ray.Huang@amd.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	"Orzel, Michal" <Michal.Orzel@amd.com>, Julien Grall <julien@xen.org>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Stefano
 Stabellini <sstabellini@kernel.org>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: RE: [PATCH v3 03/15] xen/cpufreq: refactor cmdline "cpufreq=xxx"
Thread-Topic: [PATCH v3 03/15] xen/cpufreq: refactor cmdline "cpufreq=xxx"
Thread-Index: AQHbjnNpEkvZJyYnHka7avkYmH1MUrOCfisAgAKWJuCAAEZ9gIAJF6sQ
Date: Tue, 1 Apr 2025 05:44:50 +0000
Message-ID:
 <DM4PR12MB845172547933E0618DC27EEDE1AC2@DM4PR12MB8451.namprd12.prod.outlook.com>
References: <20250306083949.1503385-1-Penny.Zheng@amd.com>
 <20250306083949.1503385-4-Penny.Zheng@amd.com>
 <80963bfa-a19e-49a7-8de2-0d8508af450f@suse.com>
 <DM4PR12MB8451F07287ABC9BB683D7BD3E1A62@DM4PR12MB8451.namprd12.prod.outlook.com>
 <94160460-357a-4852-b56d-3d89febd0e68@suse.com>
In-Reply-To: <94160460-357a-4852-b56d-3d89febd0e68@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
 MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_ActionId=905956bd-b65c-468d-948a-897500a09bf4;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_ContentBits=0;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Enabled=true;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Method=Privileged;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Name=Open
 Source;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SetDate=2025-04-01T05:44:12Z;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Tag=10,
 0, 1, 1;
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DM4PR12MB8451:EE_|BL1PR12MB5778:EE_
x-ms-office365-filtering-correlation-id: 64d83e2b-31e4-4771-6e1d-08dd70e05217
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?Nk92RnRlTEE4Wm5rcFJqUitkV1hMMGNRbWRDVzgra2hBZUx6NnBDd29oeW1I?=
 =?utf-8?B?cHZuQTJsYTNWZ0Z6RGhqTlU3d295ZFF2ZzdiS2hTekJqaWNkQXRyVzI4R3ZQ?=
 =?utf-8?B?S0FreDAyRFpWSU9BZEV6cEZmZzZueVgwQXVlaFFRQTFNSmlGOWVUVGpEK1B6?=
 =?utf-8?B?ODRCWlZDTVAva0RJY2l6eit1aENlSm1xeWw3cytUY0dtaDl3dmpBTW9Pam1P?=
 =?utf-8?B?c2xMZktXSFFYWFEzS0xrdEl5T3d4aWJvREdUbjNRSVdiNndtQ1Zac0U4cEpv?=
 =?utf-8?B?cEU4bXV2T0w4cU9RNnVHbElmRFd5ZGJDbHpJZVRkU25HR1RKY1ZNWGUreksz?=
 =?utf-8?B?U0xYRVVBYmlNK09YS3NmdTZVcDc1ZmJtRFRzanV5RFpReU9EMFVhekMwZlNC?=
 =?utf-8?B?QzFSdjJLK1JxVlRPcVRXZmhUMWYvaGZNQW1sQWxRREhvUGtreHpDdlI0eTNp?=
 =?utf-8?B?S1dPZmpkUGsvYjl1U3ppR1dKYzhJdEwzNld3eXZFaVd0R3dJS0IwVWNQWGN6?=
 =?utf-8?B?M0lRSmlzWXVNck5SZE9NeUx3RzI2ZGovYTFRMWx1YWt1ZC9vRmRKWXpONUt1?=
 =?utf-8?B?YzJmMzgxUHh4NE5rQkNHcHNtR0NXU0MzQ29VNXdzQ254WUZxdEZ4dHVyMDNn?=
 =?utf-8?B?cDJiVzA5ODVsT1FiSk1relJtbHFyay9NQ3hLUFg0QVc2RVRJMlorVFdWcnh2?=
 =?utf-8?B?SXJPY1ZTcElTekZHK01kamRhZXVzNzZYVXNGQXpUQmN0bm1rZkFGZU1TYUdZ?=
 =?utf-8?B?eEVlRnpnUmlLY0Q4cDhTNEg1aGJ3d0Uwek80R3oyOGFJa0d0SjQ4Y3M4K2FK?=
 =?utf-8?B?Y0NVY3p6YWFQbEViclFVRm5YaE1CSDQzMCttRUE2ejduc1V0M3pwUUpsRXFW?=
 =?utf-8?B?YkxmTTJvc3lsVjYzMFRMWTMxZmVPZXcreVVacWFzVnBjd1RtdExUMHRtT1BV?=
 =?utf-8?B?ZjN6UDYrZWpqSVEyUVVQcGYzQXhHbTJVclhaODdhTDA4Rm02RmptRFdkcnJH?=
 =?utf-8?B?WlNidUpidEp4SVN5ak1OeiszSW9xQVZoTElIS2lTWnJZWHBNeWRMRDhpdmV1?=
 =?utf-8?B?eUFBb3BudzZ5eUJNMzE1dnJ2Y2l1NE0zaGFpRDF1MHlINTVQci9sTjJmajEv?=
 =?utf-8?B?TENYZHhQakFXeHFZNmNtUzRyVUtGZVc5MGNuM1pjTFpvMHNHWFZjYklTejdh?=
 =?utf-8?B?MUtjdE1KQkgxZUpGaUtFM0JpOHlESVJDVFZJVi9SRThCT0NFcUpXUW1OMXZh?=
 =?utf-8?B?QitPYk1EOGt6dEhRUnovWnJiejJkazdOa1RLamFqYnpTWkxZang2TG1LeCtL?=
 =?utf-8?B?TVR4THlHWS9zakpQT0dXMXdrM1pidkFCdVc1L1ZxOSt0SjVQMGgrWll5TzdZ?=
 =?utf-8?B?aXljRzhQeHVhTERzNTd2SW5MMWxEWGtoeWUwemRnSStaS1VOanNPRlB1Ym9Z?=
 =?utf-8?B?aEJwMjkwQjhjTUpiQ2o2a1ArY2lwdElVOGFFZmJEUlVGSnIxSkhRZUFNM21R?=
 =?utf-8?B?Y1dsdWRnd0FTYnJFNFlqT3pLbmdGR3lBTitvK0dYRE9NZlBoTkY5Ti9FN3Fs?=
 =?utf-8?B?ODh1a2lqbDliRGwzdmxXT2YwYVRnRUVBVXhwNVFLVlJxWG5weWZEOGVnK1lZ?=
 =?utf-8?B?NHgxYkk1NFV6VStxVWxJbXlKcVdMWk8rblMrWW8zMWhqWG5xZlFSblZaTkJZ?=
 =?utf-8?B?eTh6ZGRiUU5ZWFA0dW9MSjlXTWU5SnJyaWtOYTRPV3BlY2x5Qjc2VndEcC8v?=
 =?utf-8?B?b1VmSWdJS1l2TnA5cDN6Ni83bVR1WUNDVTVQNTZJUnhGcDA0VDFXeGYvakxx?=
 =?utf-8?B?Vm5naUdsSE1Bblgvb3Z1ZmtpTlZhNUVSNy9QMnhsVDhoTmhsNlcyeXJUS1Ba?=
 =?utf-8?B?UXZMWTNVVlJ5N0lmcXVHT1poWFRvTnBJQ1JtN3hrL2VhcWhab3V6eTllRUlT?=
 =?utf-8?Q?MH198OggIsth16q0ALLrH+6fEvKhjrFz?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB8451.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?T2lpeFM1T2NWajdWWVEvcUpXMVI4RjZud2ZPUldJMkFOUE1BcVIvMjVEdlp3?=
 =?utf-8?B?NDhVKy9kaFZhREU4ZGttem1OWTJOMXUvaEpOSGQwZk1GMzNoNStXejJOa2Nw?=
 =?utf-8?B?N0hMdkN5dDEwOUl1OHExWnFnL2RDc2Y4eXpsM1FlelIwcFUxQkY3QVlqamY5?=
 =?utf-8?B?dkRBTjJtTk5INDE4MHBpOE44SjFXQWMxaHY1bVFIN3YwYWZvc056ZXZTT2R2?=
 =?utf-8?B?aUpWWGt5UnBWZ21MZVlkeXo3QmdPUjZKN2F4Z3JDZERmZ2Q0ZXdZNy93NUhC?=
 =?utf-8?B?T29SOVJzNHdpdld1ejlFckQxSWtKVHRrZzh4VnkyeXhma0ZaUEtBOHB1YlpS?=
 =?utf-8?B?Und4V2RKQmxPZjNrUm5DZ0NUbTVQR081eklNeVpjYmVrd1IvZVc2VEtscmhP?=
 =?utf-8?B?V2kyN3UybmFsZXpkdm45K25ra21UbjIrZHFYSmFaL0pjZmdjTUo5QWYyTy9V?=
 =?utf-8?B?eFJQYzVPRU0vQklPR1BKZlBCc2JmdW40ZXlkK2xIK01ib1ZUWHJHeFdWbDFy?=
 =?utf-8?B?bVR6YVJPMU9reUMySWVlZlFIMjFRRnJjMitwNkJUaFA3UmpzL3RRU1VOM1VP?=
 =?utf-8?B?amdnb1RUcnEwMjZpbDBDV2t4UVh1US9qTGZEZWxBT05HcVZYWlF2T3I5bGIx?=
 =?utf-8?B?TmVxSkZWQjdGZndTbHdybTN1NVhacXlpazYzQjRSNG9hSlBrbUpoTW5YWUZ5?=
 =?utf-8?B?TEg0NVRkNmRNK1BWQjl5dW1pVUpGMVBoVnU3U05EV0o5U2Z6T2JJK2xucFU2?=
 =?utf-8?B?YVpVTTg0RjZkTFRaVnlHVUlQVUFMWGVFL3lCSGR2ek12bVBQb0IwQkRDMjN2?=
 =?utf-8?B?Ni9URUhsSHVYeXZSajQ5aHp1Um1pVkNQUFhCakhPU3paYTYwWngwQVFWT0dz?=
 =?utf-8?B?K1JrVTFPT3o0L29sOXhXbDNDNjJBN0REeG54SXQzMEMrQWVBZWF6U0JEVlJK?=
 =?utf-8?B?OGRaQ0VDMmppTk9oQ0YyNVRuaEJ1ZFJjblk1ZmJRcy9TQ1FGSXMrb3lXS2tQ?=
 =?utf-8?B?MjNSblBLMmNrclNyQkExRmx6b0plQ0RUSEFlbmt0bDIxQnlnR0pDbEdSTnFp?=
 =?utf-8?B?NWs0N1dFMSsvRC9YVzN6ak1ONkhTaEJHQ3I2aERqTEZmbGRkcGl0WC9xRmFa?=
 =?utf-8?B?M0daNlpqWWRWY0RiaFd3aFU5WHpVcmx3K052cldBS2k2MEN1Z2hGRmpHc1Z2?=
 =?utf-8?B?eGpRY04rUis4SnBGWHI3K056ajB2RTYyajYxYm5JYXBPbWVNektldUNzZFRX?=
 =?utf-8?B?azBTNnpZTW1MVUlGajBlZlV0c1g2alhQTTNTN2NyUmlZS1hTa0lVdmluRUU4?=
 =?utf-8?B?bVRLLzRWSmNPWXJVcW8zUnlpN1ZVSGpqbk5NaWdvbG5kRUVOd1JzOWRObmY3?=
 =?utf-8?B?bEdqU2FFZ1NCcFJWZTc1Wmg3OFhHc2tnSTlTTURHRDk1OElvVVNSTXpuUUJt?=
 =?utf-8?B?YTUvd1dnWEc5UmZ1ZTNDUFIxUEdiTUEzNHZOZ2tUMEpNVk52dHJya2VpeFhv?=
 =?utf-8?B?WE1HenYxS0lFNk0rYmdMblBRSGVYbk04ZSs1anRZNjNUV0g0Qzd1RjZXSnBZ?=
 =?utf-8?B?MGx3Zkd3UDQ3eWk5NWlLQjhMZEVoT1lpUldMamJRNDM1QUV0NFFTSkx6L2Z1?=
 =?utf-8?B?SFJMNHh2ZnhvbDMvaS9xNmU5Mk9OZXZTeDZrTkpCNytYTnhmZldKQWtWdTF1?=
 =?utf-8?B?dVFianBOSk9NLzI3WTlsWWtPMTJ0em9MdjhyQWEzR3BiTzhoZlBoSHZzMUo4?=
 =?utf-8?B?MElZSGZIOUR3Q0N5Q1pvaTFJd2ZvQjJpNFBvMmNWNWNxODlrVnZTcW9XOXlM?=
 =?utf-8?B?dWhtMzh1Ykd5ZGVoTlhrTU5peEhtbFhVMXE1ajBBSnRacDdRc01icDFZRDdW?=
 =?utf-8?B?QXBFMFdoVU1UdFhTeWVyWmEzODBQQ1EvWHA4TzVvOE9QZlFNSG9UU1dRK0Jo?=
 =?utf-8?B?a0lLYkZxMFpDZllJdXFqZEN2SGVFYk5zZmFoZHdzY1VKSjdvMWc3dTBRSG9k?=
 =?utf-8?B?Uzg5WVhYTTlDVmtBYUtvQzMvQWVCT0xndExuMGlHSUhxYm94a2tLWSs3WFZT?=
 =?utf-8?B?dXZkaGdkdHFhUE05Q3ZEb29KZ0NBaGJNN0s3ZTVOM3JHYjJ6SGVSWGhtUnBj?=
 =?utf-8?Q?0YP8=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB8451.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 64d83e2b-31e4-4771-6e1d-08dd70e05217
X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Apr 2025 05:44:50.8211
 (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: TXgUltHhUh2ixWsGwi0a3sVt4mpSrv1s3JHH2I6k2rxXyP1tPaLComoQt+8c9unVyuS0yFYqKWzdM6VB27oxTQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL1PR12MB5778

W1B1YmxpY10NCg0KSGkNCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBK
YW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQo+IFNlbnQ6IFdlZG5lc2RheSwgTWFyY2gg
MjYsIDIwMjUgNjo0MyBQTQ0KPiBUbzogUGVubnksIFpoZW5nIDxwZW5ueS56aGVuZ0BhbWQuY29t
Pg0KPiBDYzogSHVhbmcsIFJheSA8UmF5Lkh1YW5nQGFtZC5jb20+OyBBbmRyZXcgQ29vcGVyDQo+
IDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPjsgQW50aG9ueSBQRVJBUkQgPGFudGhvbnkucGVy
YXJkQHZhdGVzLnRlY2g+Ow0KPiBPcnplbCwgTWljaGFsIDxNaWNoYWwuT3J6ZWxAYW1kLmNvbT47
IEp1bGllbiBHcmFsbCA8anVsaWVuQHhlbi5vcmc+OyBSb2dlcg0KPiBQYXUgTW9ubsOpIDxyb2dl
ci5wYXVAY2l0cml4LmNvbT47IFN0ZWZhbm8gU3RhYmVsbGluaSA8c3N0YWJlbGxpbmlAa2VybmVs
Lm9yZz47DQo+IHhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0KPiBTdWJqZWN0OiBSZTog
W1BBVENIIHYzIDAzLzE1XSB4ZW4vY3B1ZnJlcTogcmVmYWN0b3IgY21kbGluZSAiY3B1ZnJlcT14
eHgiDQo+DQo+IE9uIDI2LjAzLjIwMjUgMDg6MjAsIFBlbm55LCBaaGVuZyB3cm90ZToNCj4gPj4g
LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4gRnJvbTogSmFuIEJldWxpY2ggPGpiZXVs
aWNoQHN1c2UuY29tPg0KPiA+PiBTZW50OiBNb25kYXksIE1hcmNoIDI0LCAyMDI1IDExOjAxIFBN
DQo+ID4+DQo+ID4+IE9uIDA2LjAzLjIwMjUgMDk6MzksIFBlbm55IFpoZW5nIHdyb3RlOg0KPiA+
IE1heWJlIEkgbWlzLXVuZGVyc3Rvb2QgdGhlIHByZXZpb3VzIGNvbW1lbnQgeW91IHNhaWQgYGBg
DQo+ID4gICAgICAgICA+ICAgICAgICAgIGVsc2UgaWYgKCBJU19FTkFCTEVEKENPTkZJR19JTlRF
TCkgJiYgY2hvaWNlIDwgMCAmJg0KPiA+ICAgICAgICAgPiBgYGANCj4gPg0KPiA+ICAgICAgICAg
Rm9yIHRoZSByZXN0IG9mIHRoaXMsIEkgZ3Vlc3MgSSdkIHByZWZlciB0byBzZWUgdGhpcyBpbiBj
b250ZXh0LiBBbHNvIHdpdGgNCj4gPiAgICAgICAgIHJlZ2FyZCB0byB0aGUgaGVscGVyIGZ1bmN0
aW9uJ3MgbmFtZS4NCj4gPiBgYGANCj4gPiBJIHRob3VnaHQgeW91IHN1Z2dlc3RlZCB0byBpbnRy
b2R1Y2UgaGVscGVyIGZ1bmN0aW9uIHRvIHdyYXAgdGhlIGNvbmRpdGlvbmFsDQo+IGNvZGVzLi4u
DQo+ID4gT3IgbWF5IHlvdSB3ZXJlIHN1Z2dlc3Rpbmcgc29tZXRoaW5nIGxpa2U6DQo+ID4gYGBg
DQo+ID4gI2lmZGVmIENPTkZJR19JTlRFTA0KPiA+IGVsc2UgaWYgKCBjaG9pY2UgPCAwICYmICFj
bWRsaW5lX3N0cmNtcChzdHIsICJod3AiKSApIHsNCj4gPiAgICAgeGVuX3Byb2Nlc3Nvcl9wbWJp
dHMgfD0gWEVOX1BST0NFUw0KPiA+ICAgICAuLi4NCj4gPiB9DQo+ID4gI2VuZGlmDQo+ID4gYGBg
DQo+DQo+IFdhcyB0aGlzIHJlcGx5IG9mIHlvdXJzIG1pc3BsYWNlZD8gSXQgZG9lc24ndCBmaXQg
d2l0aCB0aGUgcGFydCBvZiBteSByZXBseSBpbiBjb250ZXh0DQo+IGFib3ZlLiBPciBtYXliZSBJ
J20gbm90IHVuZGVyc3RhbmRpbmcgd2hhdCB5b3UgbWVhbiB0byBzYXkuDQo+DQo+ID4+IEluIHRo
ZSBlbmQgSSdtIGFsc28gbm90IGVudGlyZWx5IGNvbnZpbmNlZCB0aGF0IHdlIG5lZWQgdGhlc2Ug
dHdvDQo+ID4+IGFsbW9zdCBpZGVudGljYWwgaGVscGVycyAod2l0aCBhIDNyZCBsaWtlbHkgYXBw
ZWFyaW5nIGluIGEgbGF0ZXIgcGF0Y2gpLg0KPg0KPiBJbnN0ZWFkIGl0IGZlZWxzIGFzIGlmIHRo
aXMgcmVzcG9uc2Ugb2YgeW91cnMgd2FzIHRvIHRoaXMgcGFydCBvZiBteSBjb21tZW50Lg0KPiBJ
bmRlZWQgaWlyYyBJIHdhcyBzdWdnZXN0aW5nIHRvIGludHJvZHVjZSBhIGhlbHBlciBmdW5jdGlv
bi4gTm90ZSwgaG93ZXZlciwgdGhlDQo+IHNpbmd1bGFyIGhlcmUgYXMgd2VsbCBhcyBpbiB5b3Vy
IHJlc3BvbnNlIGFib3ZlLg0KPg0KDQpDb3JyZWN0IGlmIEkgdW5kZXJzdG9vZCB3cm9uZ2x5LCB5
b3UgYXJlIHN1Z2dlc3RpbmcgdGhhdCB3ZSBzaGFsbCB1c2Ugb25lIHNpbmdsZSBoZWxwZXINCmZ1
bmN0aW9uIGhlcmUgdG8gY292ZXIgYWxsIHNjZW5hcmlvcywgbWF5YmUgYXMgZm9sbG93czoNCmBg
YA0KK3N0YXRpYyBpbnQgX19pbml0IGhhbmRsZV9jcHVmcmVxX2NtZGxpbmUoY29uc3QgY2hhciAq
YXJnLCBjb25zdCBjaGFyICplbmQsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBlbnVtIGNwdWZyZXFfeGVuX29wdCBvcHRpb24pDQorew0KKyAgICBpbnQgcmV0Ow0K
Kw0KKyAgICBpZiAoIGNwdWZyZXFfb3B0c19jb250YWluKG9wdGlvbikgKQ0KKyAgICB7DQorICAg
ICAgICBjb25zdCBjaGFyICpjcHVmcmVxX29wdHNfc3RyW10gPSB7ICJDUFVGUkVRX3hlbiIsICJD
UFVGUkVRX2h3cCIgfTsNCisNCisgICAgICAgIHByaW50ayhYRU5MT0dfV0FSTklORw0KKyAgICAg
ICAgICAgICAgICJEdXBsaWNhdGUgY3B1ZnJlcSBkcml2ZXIgb3B0aW9uOiAlcyIsDQorICAgICAg
ICAgICAgICAgY3B1ZnJlcV9vcHRzX3N0cltvcHRpb24gLSAxXSk7DQorICAgICAgICByZXR1cm4g
MDsNCisgICAgfQ0KKw0KKyAgICB4ZW5fcHJvY2Vzc29yX3BtYml0cyB8PSBYRU5fUFJPQ0VTU09S
X1BNX1BYOw0KKyAgICBjcHVmcmVxX2NvbnRyb2xsZXIgPSBGUkVRQ1RMX3hlbjsNCisgICAgY3B1
ZnJlcV94ZW5fb3B0c1tjcHVmcmVxX3hlbl9jbnQrK10gPSBvcHRpb247DQorICAgIHN3aXRjaCAo
IG9wdGlvbiApDQorICAgIHsNCisgICAgY2FzZSBDUFVGUkVRX2h3cDoNCisgICAgICAgIGlmICgg
YXJnWzBdICYmIGFyZ1sxXSApDQorICAgICAgICAgICAgcmV0ID0gaHdwX2NtZGxpbmVfcGFyc2Uo
YXJnICsgMSwgZW5kKTsNCisgICAgY2FzZSBDUFVGUkVRX3hlbjoNCisgICAgICAgIGlmICggYXJn
WzBdICYmIGFyZ1sxXSApDQorICAgICAgICAgICAgcmV0ID0gY3B1ZnJlcV9jbWRsaW5lX3BhcnNl
KGFyZyArIDEsIGVuZCk7DQorICAgIGRlZmF1bHQ6DQorICAgICAgICByZXQgPSAtRUlOVkFMOw0K
KyAgICB9DQorDQorICAgIHJldHVybiByZXQ7DQorfQ0KYGBgDQoNCj4gSmFuDQo=


From xen-devel-bounces@lists.xenproject.org Tue Apr 01 05:54:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 05:54:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.933454.1335397 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzUZx-0003CW-Ij; Tue, 01 Apr 2025 05:54:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 933454.1335397; Tue, 01 Apr 2025 05:54:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzUZx-0003CP-DT; Tue, 01 Apr 2025 05:54:29 +0000
Received: by outflank-mailman (input) for mailman id 933454;
 Tue, 01 Apr 2025 05:54: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=O7Gc=WT=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1tzUZw-0003CJ-OW
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 05:54:28 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c45012fa-0ebd-11f0-9ffb-bf95429c2676;
 Tue, 01 Apr 2025 07:54:26 +0200 (CEST)
Received: from [192.168.7.202] ([71.202.166.45]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 5315rnna3585174
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NO);
 Mon, 31 Mar 2025 22:53:50 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c45012fa-0ebd-11f0-9ffb-bf95429c2676
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 5315rnna3585174
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025032001; t=1743486833;
	bh=IsfDg+Xsar+P1dKxOMDHesRyrvTgpQ4ZnItmblKhbNo=;
	h=Date:Subject:To:Cc:References:From:In-Reply-To:From;
	b=mCuaWYHpnRlQenAgliGLWATiV5WBBr6xjToONzu4sHItD9CcH/Hn50bDSEPtXNZHr
	 EmqrAKW9JffJBkWQby7YDNbuh5dAusXyZylpGe//cf2TIpo8U9KQTebtElsvd5V6YU
	 HF8RdPMDVbhf6+t7dYSnb9ysczMAV1Fx5VJE/67I9mU0mkx81L5F9z8nRvdhiz9hLN
	 sCK8LNjY5ocO9OXH0mW1yJE2ZnmLSV7SipWK2RChNsbc23C/QGRt/kc29IMVpQqyvo
	 nZSU48inZXaexf0KV8NOAQgpc90SasTMpL5bfOFSYTA0+0PAcMy4DOrsLjm31CtW80
	 qxOV8xFK/xmlw==
Message-ID: <a0254e73-bf7c-4876-b64e-b08e96044666@zytor.com>
Date: Mon, 31 Mar 2025 22:53:49 -0700
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH v1 01/15] x86/msr: Replace __wrmsr() with
 native_wrmsrl()
To: "H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@kernel.org>
Cc: linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org,
        linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
        linux-edac@vger.kernel.org, kvm@vger.kernel.org,
        xen-devel@lists.xenproject.org, linux-ide@vger.kernel.org,
        linux-pm@vger.kernel.org, bpf@vger.kernel.org, llvm@lists.linux.dev,
        tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, jgross@suse.com,
        andrew.cooper3@citrix.com, peterz@infradead.org, acme@kernel.org,
        namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        alexey.amakhalov@broadcom.com, bcm-kernel-feedback-list@broadcom.com,
        tony.luck@intel.com, pbonzini@redhat.com, vkuznets@redhat.com,
        seanjc@google.com, luto@kernel.org, boris.ostrovsky@oracle.com,
        kys@microsoft.com, haiyangz@microsoft.com, decui@microsoft.com
References: <20250331082251.3171276-1-xin@zytor.com>
 <20250331082251.3171276-2-xin@zytor.com> <Z-pruogreCuU66wm@gmail.com>
 <9D15DE81-2E68-4FCD-A133-4963602E18C9@zytor.com>
Content-Language: en-US
From: Xin Li <xin@zytor.com>
Autocrypt: addr=xin@zytor.com; keydata=
 xsDNBGUPz1cBDACS/9yOJGojBFPxFt0OfTWuMl0uSgpwk37uRrFPTTLw4BaxhlFL0bjs6q+0
 2OfG34R+a0ZCuj5c9vggUMoOLdDyA7yPVAJU0OX6lqpg6z/kyQg3t4jvajG6aCgwSDx5Kzg5
 Rj3AXl8k2wb0jdqRB4RvaOPFiHNGgXCs5Pkux/qr0laeFIpzMKMootGa4kfURgPhRzUaM1vy
 bsMsL8vpJtGUmitrSqe5dVNBH00whLtPFM7IbzKURPUOkRRiusFAsw0a1ztCgoFczq6VfAVu
 raTye0L/VXwZd+aGi401V2tLsAHxxckRi9p3mc0jExPc60joK+aZPy6amwSCy5kAJ/AboYtY
 VmKIGKx1yx8POy6m+1lZ8C0q9b8eJ8kWPAR78PgT37FQWKYS1uAroG2wLdK7FiIEpPhCD+zH
 wlslo2ETbdKjrLIPNehQCOWrT32k8vFNEMLP5G/mmjfNj5sEf3IOKgMTMVl9AFjsINLHcxEQ
 6T8nGbX/n3msP6A36FDfdSEAEQEAAc0WWGluIExpIDx4aW5Aenl0b3IuY29tPsLBDQQTAQgA
 NxYhBIUq/WFSDTiOvUIqv2u9DlcdrjdRBQJlD89XBQkFo5qAAhsDBAsJCAcFFQgJCgsFFgID
 AQAACgkQa70OVx2uN1HUpgv/cM2fsFCQodLArMTX5nt9yqAWgA5t1srri6EgS8W3F+3Kitge
 tYTBKu6j5BXuXaX3vyfCm+zajDJN77JHuYnpcKKr13VcZi1Swv6Jx1u0II8DOmoDYLb1Q2ZW
 v83W55fOWJ2g72x/UjVJBQ0sVjAngazU3ckc0TeNQlkcpSVGa/qBIHLfZraWtdrNAQT4A1fa
 sWGuJrChBFhtKbYXbUCu9AoYmmbQnsx2EWoJy3h7OjtfFapJbPZql+no5AJ3Mk9eE5oWyLH+
 QWqtOeJM7kKvn/dBudokFSNhDUw06e7EoVPSJyUIMbYtUO7g2+Atu44G/EPP0yV0J4lRO6EA
 wYRXff7+I1jIWEHpj5EFVYO6SmBg7zF2illHEW31JAPtdDLDHYcZDfS41caEKOQIPsdzQkaQ
 oW2hchcjcMPAfyhhRzUpVHLPxLCetP8vrVhTvnaZUo0xaVYb3+wjP+D5j/3+hwblu2agPsaE
 vgVbZ8Fx3TUxUPCAdr/p73DGg57oHjgezsDNBGUPz1gBDAD4Mg7hMFRQqlzotcNSxatlAQNL
 MadLfUTFz8wUUa21LPLrHBkUwm8RujehJrzcVbPYwPXIO0uyL/F///CogMNx7Iwo6by43KOy
 g89wVFhyy237EY76j1lVfLzcMYmjBoTH95fJC/lVb5Whxil6KjSN/R/y3jfG1dPXfwAuZ/4N
 cMoOslWkfZKJeEut5aZTRepKKF54T5r49H9F7OFLyxrC/uI9UDttWqMxcWyCkHh0v1Di8176
 jjYRNTrGEfYfGxSp+3jYL3PoNceIMkqM9haXjjGl0W1B4BidK1LVYBNov0rTEzyr0a1riUrp
 Qk+6z/LHxCM9lFFXnqH7KWeToTOPQebD2B/Ah5CZlft41i8L6LOF/LCuDBuYlu/fI2nuCc8d
 m4wwtkou1Y/kIwbEsE/6RQwRXUZhzO6llfoN96Fczr/RwvPIK5SVMixqWq4QGFAyK0m/1ap4
 bhIRrdCLVQcgU4glo17vqfEaRcTW5SgX+pGs4KIPPBE5J/ABD6pBnUUAEQEAAcLA/AQYAQgA
 JhYhBIUq/WFSDTiOvUIqv2u9DlcdrjdRBQJlD89ZBQkFo5qAAhsMAAoJEGu9DlcdrjdR4C0L
 /RcjolEjoZW8VsyxWtXazQPnaRvzZ4vhmGOsCPr2BPtMlSwDzTlri8BBG1/3t/DNK4JLuwEj
 OAIE3fkkm+UG4Kjud6aNeraDI52DRVCSx6xff3bjmJsJJMb12mWglN6LjdF6K+PE+OTJUh2F
 dOhslN5C2kgl0dvUuevwMgQF3IljLmi/6APKYJHjkJpu1E6luZec/lRbetHuNFtbh3xgFIJx
 2RpgVDP4xB3f8r0I+y6ua+p7fgOjDLyoFjubRGed0Be45JJQEn7A3CSb6Xu7NYobnxfkwAGZ
 Q81a2XtvNS7Aj6NWVoOQB5KbM4yosO5+Me1V1SkX2jlnn26JPEvbV3KRFcwV5RnDxm4OQTSk
 PYbAkjBbm+tuJ/Sm+5Yp5T/BnKz21FoCS8uvTiziHj2H7Cuekn6F8EYhegONm+RVg3vikOpn
 gao85i4HwQTK9/D1wgJIQkdwWXVMZ6q/OALaBp82vQ2U9sjTyFXgDjglgh00VRAHP7u1Rcu4
 l75w1xInsg==
In-Reply-To: <9D15DE81-2E68-4FCD-A133-4963602E18C9@zytor.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 3/31/2025 1:32 PM, H. Peter Anvin wrote:
> On March 31, 2025 3:17:30 AM PDT, Ingo Molnar <mingo@kernel.org> wrote:
>>
>> * Xin Li (Intel) <xin@zytor.com> wrote:
>>
>>> -	__wrmsr      (MSR_AMD_DBG_EXTN_CFG, val | 3ULL << 3, val >> 32);
>>> +	native_wrmsrl(MSR_AMD_DBG_EXTN_CFG, val | 3ULL << 3);
>>
>> This is an improvement.
>>
>>> -	__wrmsr      (MSR_IA32_PQR_ASSOC, rmid_p, plr->closid);
>>> +	native_wrmsrl(MSR_IA32_PQR_ASSOC, (u64)plr->closid << 32 | rmid_p);
>>
>>> -	__wrmsr      (MSR_IA32_PQR_ASSOC, rmid_p, closid_p);
>>> +	native_wrmsrl(MSR_IA32_PQR_ASSOC, (u64)closid_p << 32 | rmid_p);
>>
>> This is not an improvement.
>>
>> Please provide a native_wrmsrl() API variant where natural [rmid_p, closid_p]
>> high/lo parameters can be used, without the shift-uglification...
>>
>> Thanks,
>>
>> 	Ingo
> 
> Directing this question primarily to Ingo, who is more than anyone else the namespace consistency guardian:
> 
> On the subject of msr function naming ... *msrl() has always been misleading. The -l suffix usually means 32 bits; sometimes it means the C type "long" (which in the kernel is used instead of size_t/uintptr_t, which might end up being "fun" when 128-bit architectures appear some time this century), but for a fixed 64-but type we normally use -q.
> 
> Should we rename the *msrl() functions to *msrq() as part of this overhaul?
> 

Per "struct msr" defined in arch/x86/include/asm/shared/msr.h:

struct msr {
         union {
                 struct {
                         u32 l;
                         u32 h;
                 };
                 u64 q;
         };
};

Probably *msrq() is what we want?




From xen-devel-bounces@lists.xenproject.org Tue Apr 01 05:56:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 05:56:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.933465.1335407 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzUbl-0003ib-SY; Tue, 01 Apr 2025 05:56:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 933465.1335407; Tue, 01 Apr 2025 05:56: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 1tzUbl-0003iU-OA; Tue, 01 Apr 2025 05:56:21 +0000
Received: by outflank-mailman (input) for mailman id 933465;
 Tue, 01 Apr 2025 05:56: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=WxAi=WT=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tzUbk-0003iM-8f
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 05:56:20 +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 028b1c81-0ebe-11f0-9ffb-bf95429c2676;
 Tue, 01 Apr 2025 07:56:09 +0200 (CEST)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-43cfb6e9031so46513075e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 31 Mar 2025 22:56:09 -0700 (PDT)
Received: from [10.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-43d82efe678sm187540035e9.20.2025.03.31.22.56.08
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 31 Mar 2025 22:56: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: 028b1c81-0ebe-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743486969; x=1744091769; 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=ORKB6C1TyOKaOMr2m1txEulVAqu30jxMqshHNeRcyLM=;
        b=OSlo0nOdQmKVB+wzHSM6MNEduQRmk7MQuFqDaIzZA3fW9qv5E6jC+YdnQ0aBvZmvfQ
         WlTVsbr7L7+FN3NVvQcpZjxht0G0Gc6QEfr6ycUbciz7ePHSyBqvJttWXYZL1SXZKtCA
         KGkGYNaNa/D7ymMOyylUPxGsDq0WgabQMU17eZM/XIMnCYnzaRbX9YDi1h8VC/4Z1Jfu
         vm+NBTccA1qXB4G4Dfh85qbzXmNUPWJ027Sddj5ODAQH4hLk62P4T4f1/pxd598WK1PE
         jjeYYR3oOtM9xzqGr6cmoBqyaZYCxPbMyIm+81jdDvDm8d+1l9ypOL/IPn+JwvstPhPp
         GXVA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743486969; x=1744091769;
        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=ORKB6C1TyOKaOMr2m1txEulVAqu30jxMqshHNeRcyLM=;
        b=t084Y2TdQSuy3rjYCf1d3q/HSHROMo4S0MnAqvJyvSGhTtHzKnPuMViJNJnVaxPONE
         9O4ETgGtHu4VI0fDqba6bRnv9Wq1cD/Z+baGcN39lt+1uwMDUQhVBHTDuWzugxHqJp7H
         91jskhtzBj65mex/a9W5OET9vlod5KSxYasUo6zL+X0hE1ajjKrBpwgX7Kj3bWVAD4xK
         7CVfWkGOvF4pJs/mBxzzcmL7Y+gjZjNGhLrrrIcCJ9viaqzCVbBwaizNNb5JyWxbyHuo
         gN48nw13aUG1QLSuk3PBPSu0HLY9MICn/umPzcGrgNEu0RGiIexOxi7J9TcwX335n9M5
         E0zw==
X-Gm-Message-State: AOJu0Yy7sujvBhIuTxgRGmMaQXiHWgyvo+DGwqJmJsfXxTLKMGv1CQP0
	a9MdniFpTAjInZupnmkhBmSFezvPmmxOo9t3rbVP3hPTba4D0/Jtx6hSCOP90dwcsWvyRKHo6ZE
	=
X-Gm-Gg: ASbGncv6C0of73nKnZlmP9iq9CawnaNFXPxuxcFmuvZQvm+o+YCsIEHHypJfhm5rvyO
	CG5V+1q/YJQw5LedWhtXrpWaSW9IpgxeMyVDDf6oipQLpXwGi1lllgkWexKhw5qmpiXmbAar0tc
	lxrj9HvYJOAp5VpOaz+HZ4Brhsb1W8k5YBAb6rqQ5k1ZsUZ8R90Db/6u/DFhag+VdQ11RjvimKY
	MgKXC2LRnZ3gWAuD/gAMKXoaCSnaFEpsm9/SbhmwOnAB8ogSn9q87gZChT5GFK4NaMPHm+i2Stl
	nkcASvhpHJQ09XRCs3p211OlSlbU7PGCN9LgZJKR37CzBpnDA0fVzeXtZw4VX7oPFWqan/kxqwJ
	uRc84LXHOOlek+Bcc+OKOpON3zexo9w==
X-Google-Smtp-Source: AGHT+IFNZ6eN3wrYunI2Xqkz98fstK4Cj5eFqfWXKn1MZp5HSUFhyoRpjZyVz4kDZByI5QVcrq97kw==
X-Received: by 2002:a05:600c:1d0b:b0:43c:f3e4:d6f7 with SMTP id 5b1f17b1804b1-43dbc6fa716mr102177695e9.31.1743486969374;
        Mon, 31 Mar 2025 22:56:09 -0700 (PDT)
Message-ID: <b0266c19-d0e5-4de7-b2fb-a50e2766168c@suse.com>
Date: Tue, 1 Apr 2025 07:56:08 +0200
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/boot: re-order .init.data contributions
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+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

Putting a few bytes ahead of page tables isn't very efficient; there's
a gap almost worth a full page. To avoid re-ordering of items in the
source file, simply put the few small items in sub-section 1, for them
to end up after the page tables, followed (in the final binary) by non-
page-aligned items from other CUs.

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

--- a/xen/arch/x86/boot/head.S
+++ b/xen/arch/x86/boot/head.S
@@ -136,6 +136,7 @@ multiboot2_header:
 .Lno_nx_msg:   .asciz "ERR: Not an NX-capable CPU!"
 
         .section .init.data, "aw", @progbits
+        .subsection 1 /* Put data here after the page tables (in x86_64.S). */
         .align 4
 
         .word   0


From xen-devel-bounces@lists.xenproject.org Tue Apr 01 06:25:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 06:25:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.933477.1335416 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzV3T-0002aQ-Rp; Tue, 01 Apr 2025 06:24:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 933477.1335416; Tue, 01 Apr 2025 06:24: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 1tzV3T-0002aJ-Oq; Tue, 01 Apr 2025 06:24:59 +0000
Received: by outflank-mailman (input) for mailman id 933477;
 Tue, 01 Apr 2025 06:24: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=WxAi=WT=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tzV3S-0002aD-B5
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 06:24:58 +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 07e41c1a-0ec2-11f0-9ea7-5ba50f476ded;
 Tue, 01 Apr 2025 08:24:57 +0200 (CEST)
Received: by mail-wr1-x42c.google.com with SMTP id
 ffacd0b85a97d-391342fc1f6so4558447f8f.1
 for <xen-devel@lists.xenproject.org>; Mon, 31 Mar 2025 23:24:56 -0700 (PDT)
Received: from [10.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-39c0b79e141sm13268647f8f.77.2025.03.31.23.24.55
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 31 Mar 2025 23:24:56 -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: 07e41c1a-0ec2-11f0-9ea7-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743488696; x=1744093496; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=XkzftAsK1g18/pFY5bDveb4EsOHn6gCqvCtwAMMOZ+A=;
        b=XCUd8W3o/6TJzevLQnmgnjMMMy8ly4SJS8U+69TBuUhfjCUoY1PqLHPndDUdoFO26p
         rHQVV1iGJVKx67RXVm0zVvnTuMh/CKFj2JoqahYzJz10qDS9sfDxefnSaa4QU/W6JBwy
         RA7XQYRQSvCy0UiUnzSu3eSrDthZl3HzwpTHoavYJe3YDgm3rtapRZ1LkDNv2WKHaCku
         QOBHzfzs4IW0gk682KI+U+Yo2cGoQD1S6L69oNSVIjdAAEjznDrNUrfzGvr7ssjaVVcd
         1OY5drvJVGI3WCw7VN74ss0I+uR6k9xhWMpHL/3pWKzbCLwBDe79mAbiqUIOyMUh7r28
         Q7WQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743488696; x=1744093496;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=XkzftAsK1g18/pFY5bDveb4EsOHn6gCqvCtwAMMOZ+A=;
        b=o1tzXmBDNsLLYVarVX0r4A9Ya/FJ1nt0uJqfZLlNQtjmRZrKGNLyW4yXo+EUOnAPyG
         fMM241DM7mdAfjwaBOdKGbx7X8qxGcYHUulEH7pqokRbqupnLvnWOw3rSCsyTMYd5AM0
         nJ+dn0UotFQepenY5OSVTunSjRbtJBdy0nP/lk9xhUl1FldWcKt82uZNWCmV3qQuQKJK
         gXlVocNjibdvTkbuSZchxoTJ9hLie2vPlj7qR42ZeTj83SGxOj+Y/0tRKhycMEttgvpC
         +xAdHm7p2bQNX82l6vOko/BYy0JkyshNykmZkdLTMiFsCewmaa8KIZp//BJAewJNS5uO
         FIag==
X-Forwarded-Encrypted: i=1; AJvYcCWmqlgvhZtIx5ox9FPCiivopusfLJR0NT1Ub134QJI/sgaUMVs4Z7ndCQhYGtx3QZH2aJl7MPT9iUc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxbjofNdxwVyh/oVoWdw4AgN1X4M/TY3Y+u+3rbkqLDUev7R2qU
	d+8lt5qnkafGGRoBryXrLoiKmzp/od/V+pmudrtJN1XKQK+mjS43eTor33xW0A==
X-Gm-Gg: ASbGncsPRpy/CuW1dbq7s0fr3kVeBTKtnB/4SAhLYWqrrROL3ptS7KS3vV3CWYphSwc
	ghzHEuqZp0Wb754oh+d6peG1/Zkm9WY43xNvzw6ZZpOLagKbAA2rURy1PmqB2nEb4P7unPUGj73
	UqjYJr9yQ7E4AQpDJ09f7oI67Yk0GYMmZeTqVSkQ7x2AuBQ+o3YZkW8RgEkipO7GnExTSxn8+wg
	QVKLR7tpz0R2puUjfWx2xWZwh6NvrbhCrg8Y2L1rLcm0By0/YEuu3zVlea9I4QidDfXhFheFo/M
	f0NsffXa6aX3cgL+GOhIm0XFE01hdeMvTnQ+ozmWZo46IH8B6rcpjesSPuawZA83GIT1snevM18
	vycs3dSC6FK/P0R6NDSgHwpy5XKt/R1RHhORGM14K
X-Google-Smtp-Source: AGHT+IGSgQ9q+ZoHfUGWJtE9oREClZyIGm0YR+T9P7ad+XI1cV4rz9NCu6Mx1GRcVoQm+2dDvLgTDg==
X-Received: by 2002:a05:6000:1acf:b0:390:f358:85db with SMTP id ffacd0b85a97d-39c120e0bafmr8972304f8f.30.1743488696318;
        Mon, 31 Mar 2025 23:24:56 -0700 (PDT)
Message-ID: <c8a786f0-cc78-41f4-8323-dabde70a7c91@suse.com>
Date: Tue, 1 Apr 2025 08:24:54 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1] xen/riscv: Increase XEN_VIRT_SIZE
To: Julien Grall <julien@xen.org>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org, Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <e5fa4219ccf43125e2489cc8c49b4404e6ed22ce.1743434164.git.oleksii.kurochko@gmail.com>
 <54ebdcb7-071f-411f-803a-930dc330a497@suse.com>
 <6f0efa9a-876e-4ae1-9367-ccd89f51bab0@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: <6f0efa9a-876e-4ae1-9367-ccd89f51bab0@xen.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 31.03.2025 18:17, Julien Grall wrote:
> On 31/03/2025 17:14, Jan Beulich wrote:
>> On 31.03.2025 17:20, Oleksii Kurochko wrote:
>>> A randconfig job failed with the following issue:
>>>    riscv64-linux-gnu-ld: Xen too large for early-boot assumptions
>>>
>>> The reason is that enabling the UBSAN config increased the size of
>>> the Xen binary.
>>>
>>> Increase XEN_VIRT_SIZE to reserve enough space, allowing both UBSAN
>>> and GCOV to be enabled together, with some slack for future growth.
>>
>> At some point you may want to use 2M mappings for .text (rx), .rodata
>> (r), and .data (rw).
> 
> OOI, why would we want to switch to 2MB? At least on Arm, Xen is tiny 
> enough that it can fit in less than a couple of MB. I would expect the 
> same for RISC-V.

For TLB efficiency reasons for example. On x86 we switched to using 2Mb
pages quite some time back, just to find that (at least) one of the
bootloaders choked on the then larger binary. Hence we ended up with
the XEN_ALIGN_2M Kconfig symbol plus the unconditional use of 2Mb
mappings for xen.efi. For the original change see cf393624eec3 ("x86:
use 2M superpages for text/data/bss mappings").

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 01 06:27:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 06:27:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.933488.1335426 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzV6G-00038m-9L; Tue, 01 Apr 2025 06:27:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 933488.1335426; Tue, 01 Apr 2025 06: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 1tzV6G-00038f-5h; Tue, 01 Apr 2025 06:27:52 +0000
Received: by outflank-mailman (input) for mailman id 933488;
 Tue, 01 Apr 2025 06:27: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=WxAi=WT=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tzV6F-00038Z-5R
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 06:27:51 +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 6f3b8f9d-0ec2-11f0-9ea7-5ba50f476ded;
 Tue, 01 Apr 2025 08:27:50 +0200 (CEST)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-43948f77f1aso35661245e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 31 Mar 2025 23:27:50 -0700 (PDT)
Received: from [10.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-43d82efeacasm188888795e9.23.2025.03.31.23.27.49
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 31 Mar 2025 23:27:49 -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: 6f3b8f9d-0ec2-11f0-9ea7-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743488870; x=1744093670; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ZyiVXcj2WknUIQ7FL1t41LRlfv1Xo+TrnUPacs9oCSQ=;
        b=DTNp1Y+1GajR+BTgvnKgLMdjeHF6H9Buwrhd6BpFdMqgVzJgNdUJr7zaj9gAWckShw
         WBh2/+lwHgMMx95puBIQn++WOtQ+tCLp5rF5tdZwroGXWtL8IBOIZjFJeGwGkk5J+80m
         Efl1pz+xisGc5gNuPbA26VQpH36ftUkGIs4T4zc0rlVcF3PWt++ldfjmoeu3T4PDOgHS
         wOl9hMcwHi5Gudiy/AJwYBhywhLDaP6BQdib6LsK9A9Q6+mYt9dhYAjGFMfKYGQhD8Nv
         FUTd6tF8WL+DJulfWGLCydkBsmv09RNrUnyawEebw5sWy2CNVdpbmI+kZqXbpeez946g
         UtWw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743488870; x=1744093670;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ZyiVXcj2WknUIQ7FL1t41LRlfv1Xo+TrnUPacs9oCSQ=;
        b=t/eyBZB8aEp8zwem7Khd5yZJeHRxZqaqQsEL1r0EaPHVEl45/26blof5kkijNzfHyF
         Ko5pQNIkktN3RK+2hlfFa5c2FTTWvlH4Cr3OX4lSHqh19YpbVXlLfA1Suf02CHDM97me
         44EvR4NJFgcPdJpD0qMhAjyMb7u2PNrrREyO9tIGvAZUXP5MjkET6h3NTT+hE4VOyMG5
         ggHlzkQ9737L58+DchHoyoiLahcgGNZ+gFQeDt6K0WG0Dj5he3BGEWdYl3FAPdNCna9M
         ZyHSGxwHkgIWcrOHM560bhatpR5PFbQnMet4ENliGKDnwHZI/VEPJHfwDCBAFmIPXDbW
         N9LQ==
X-Forwarded-Encrypted: i=1; AJvYcCX1URVjg9r+TaMHc6tckqaeOlDPUp2dtY//5CmsWlNMouH/xZuR2r2e/DgkNYXeFV7HUdz1WFDEk08=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwrHpRHfBksxJXv545Z02DXAT38fmqjbdITvU4spGN2PI3IBwh8
	3Urqd0hbrNMEm6S7weBj6srgN02V8Fj5lHQZ2NK2vPhXY02FWwXNRki4oV1eTg==
X-Gm-Gg: ASbGnctd3A0USioFQwUDX5QnrJaR8dO9HR+n75/KRMxPSFh5muSqyPdNzBUfCkKPIWX
	8Lzk+oP+DFR8jjetPDnGvM3QJnLENYoKAGE7e8yjgZHBCRS276/G/TQ81W4QgIBq1YJeF55v8am
	evVPe+FtNYZaO+3wOeKLhGWAzmqG60Upyd6qrD3EMP/xqNPtG8GVYlchT01XalIpGk1Tq1gl7/F
	N04hI5zzKm9l6hkqObwblLeS/fzJlXtL/p88sfk3XXIBUbiq224/0GZ3rAsqqx9nSNgm+wt/F0e
	bdG73WXQANNd8yV4tjvyxijq17nKFzNzcHWmofqCH6mRMvsRzUFTM071OjI7KjWQZhTIsCxFDL2
	BQwLWqQdVxSEGab2jtNB8Jel5nGNLRQ==
X-Google-Smtp-Source: AGHT+IH/Sn9gkF7r2JapXxbpMlrd8teGBj/LhxQctumb59yAfBY8J5npWpPfHi4ZvUjL59gwc33N7A==
X-Received: by 2002:a05:600c:229a:b0:43d:fa58:8377 with SMTP id 5b1f17b1804b1-43dfa588414mr65765245e9.32.1743488869697;
        Mon, 31 Mar 2025 23:27:49 -0700 (PDT)
Message-ID: <f29b792c-49ec-4b05-81b0-d1b925f272b4@suse.com>
Date: Tue, 1 Apr 2025 08:27:48 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 1/3] xen: gcov: add support for gcc 14
To: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20250401011744.2267367-1-volodymyr_babchuk@epam.com>
 <20250401011744.2267367-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: <20250401011744.2267367-2-volodymyr_babchuk@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 01.04.2025 03:17, Volodymyr Babchuk wrote:
> gcc 14 (with patch "Add condition coverage (MC/DC)") introduced 9th
> gcov counter. Also this version can call new merge function
> __gcov_merge_ior(), so we need a new stub for it.
> 
> Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
> Reviewed-by: Jan Beulich <jbeulich@suse.com>

Any reason this got re-posted, when it was committed already?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 01 06:33:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 06:33:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.933500.1335436 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzVBt-0005wm-Rw; Tue, 01 Apr 2025 06:33:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 933500.1335436; Tue, 01 Apr 2025 06:33: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 1tzVBt-0005wf-Nv; Tue, 01 Apr 2025 06:33:41 +0000
Received: by outflank-mailman (input) for mailman id 933500;
 Tue, 01 Apr 2025 06:33: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=WxAi=WT=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tzVBs-0005wZ-6p
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 06:33:40 +0000
Received: from mail-wm1-x32c.google.com (mail-wm1-x32c.google.com
 [2a00:1450:4864:20::32c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3e4d29b8-0ec3-11f0-9ffb-bf95429c2676;
 Tue, 01 Apr 2025 08:33:37 +0200 (CEST)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-43d04dc73b7so57603395e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 31 Mar 2025 23:33:38 -0700 (PDT)
Received: from [10.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-43d8fcd03adsm144934685e9.21.2025.03.31.23.33.36
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 31 Mar 2025 23:33:36 -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: 3e4d29b8-0ec3-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743489217; x=1744094017; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=OCYG6Leeggrm7qn2kkV8TUwqwR1mM5q8sW7fNVL5irE=;
        b=CBDIMS+aMrDKcB2wrEo9xEe/aBnH4y18nIJK6nVlUuxHqfmi1sXY3gdmrtvND1AQ8k
         U3qFpBbgyE+/9svpOmsE0H+3elYUGTaZJmN9XmSFYxdyx59+aTBe2snzpVoBKbJrrdmB
         leaZ+1l4oYM3z6+8FVP/MXUb5mpf3FSoEWh0DIcWfZARlfZ6vQEVMbd4t/lh8wByDN5H
         zzSFf6naDuaHLOpl3rD2aEt0kMVvOJX6C+M50AWDTFyWhS0z8Azxq82gX6gZg5nBtzD+
         +XPMpie95lRlVScuLyQOR5a7B/CY3mZ7keIAQK58gX9YjSz/IquQrdfkRfUWOciI54tE
         hPvg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743489217; x=1744094017;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=OCYG6Leeggrm7qn2kkV8TUwqwR1mM5q8sW7fNVL5irE=;
        b=WUFiZlnOWsksj/KEzlQu9H9RZBVhg8njzVVZ0OvYWWTAG8ApMFRGqh4XMsRQxpZfIc
         kH26Fqz/5f4Gj/0ml1TaHvcGHt9oNct6Tyj3YjeuRAM9MydBIkGdO9RRL//AJyzoBgRD
         f5hXetZx9R8mEtE/FsOkQDm+jKyyM1swL3ZlW/jaOzmuBjaZF1dKYABA/2TGi1a7AmSg
         Oj/ZRnwbBIfo8ouR0yKk/IrCZCqvarz2fAUPLj9nhDIPxWf8/1g6BQHpdWeVrCj8dUh+
         zCYpoarz+9dQk2a7V7O/a4rfQoQvqrCQEkpnDB8gdoy/0/xUZzMq4vZkSH5EDgnBh4o9
         EBig==
X-Forwarded-Encrypted: i=1; AJvYcCWa/hce3v9Zf7gcnDclz2S6q1fJIMWmGqgzuP7OWdTzrlbaQ3jM4ivW/QkInjfyKWtu05cClOFR/2s=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxZsflgmnUn35qhZa0R5CpbEtNh2XmdH7f4dM5sPfTLrRyAuQOi
	3AdQLP6k38WThzfQ/+Tsfnm7Wopa+pXYAnC2nCrnyPWXc65XYB3fSfAjra9KqQ==
X-Gm-Gg: ASbGnctHH3LSQrRrvSjSOyrtSX8NcByOm018oaBhJLE2piw7A1+L3+WB0F0MuZuLW8/
	5PccNMunkWP+UTe+uIvAWuUWxgTE+f/VVrUTLlm6QFFA1XJoyxNHXiGqltGaaozn/CPTzZBe91v
	8l5x7iTvrLvi3UsumQLrP0OD5UjO8ZLZZ4+NPMmnE/U+/GPwoqZ4BJyym9b1XInLLPbvUA/JBAB
	+xLP6GHoJRK75XAV8NfwVKEKoXxYP1m7L25otQulm5+FFzh4UaApNbZPgpv+WXvkhcN4y60kQxK
	D5MP998tGFdvU0L+i5sbH13sqCUHBAeGclbdj1Zijbmxofcx3zVzLspRYbJkStt4tvAcea8GXQj
	nLjFvDONiSGeUg406+f7NLFN8kwrKnw==
X-Google-Smtp-Source: AGHT+IE7npL3UWEEepwtLWzIB4dqeI1tcoFmzTm9dCpwZ2/qPHlCTBHIhFQvQuYytNl0nbjrhcM8MA==
X-Received: by 2002:a05:600c:3584:b0:43d:ac5:11e8 with SMTP id 5b1f17b1804b1-43db62b7557mr90785945e9.21.1743489217289;
        Mon, 31 Mar 2025 23:33:37 -0700 (PDT)
Message-ID: <c925ec97-0011-4f1e-b055-ec5f40cb5d08@suse.com>
Date: Tue, 1 Apr 2025 08:33:35 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 2/3] xen: x86: irq: use do-while loop in create_irq()
To: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20250401011744.2267367-1-volodymyr_babchuk@epam.com>
 <20250401011744.2267367-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: <20250401011744.2267367-3-volodymyr_babchuk@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 01.04.2025 03:17, Volodymyr Babchuk wrote:
> Changes in v3:
>  - Correct code style ("do {")
>  - Add comment describing why we need do { } while loop.
>    I prefer to leave do {} while because Nicola Vetrini
>    said that this approach might help with MISRA Rule 9.1
>    without needing an explicit initializer.

Just to mention it here as well - I still prefer the v1 form of the fix. Plus,
for my taste, ...

> --- a/xen/arch/x86/irq.c
> +++ b/xen/arch/x86/irq.c
> @@ -264,15 +264,24 @@ void __init clear_irq_vector(int irq)
>  
>  int create_irq(nodeid_t node, bool grant_access)
>  {
> -    int irq, ret;
> +    int ret;
> +    int irq = nr_irqs_gsi;
>      struct irq_desc *desc;
>  
> -    for (irq = nr_irqs_gsi; irq < nr_irqs; irq++)
> -    {
> +    if ( irq >= nr_irqs )
> +        return -ENOSPC;
> +
> +    /*
> +     * do { } while loop is used here to convince gcc14 that 'desc' is
> +     * really assigned. Otherwise with -Og or -fcondition-coverage it
> +     * may throw an false error stating that 'desc' may be used before
> +     * initialization.
> +     */
> +    do {
>          desc = irq_to_desc(irq);
>          if (cmpxchg(&desc->arch.used, IRQ_UNUSED, IRQ_RESERVED) == IRQ_UNUSED)
>             break;
> -    }
> +    } while ( ++irq < nr_irqs );

... the comment is now to verbose. See what I suggested as a comment for the
v1 change, as a very rough example.

Furthermore the question towards reporting the issue upstream still wasn't
answered. There really would want to be a reference to the bug report in the
description (or even the code comment) here.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 01 06:38:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 06:38:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.933516.1335447 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzVGQ-0006bN-Et; Tue, 01 Apr 2025 06:38:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 933516.1335447; Tue, 01 Apr 2025 06:38:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzVGQ-0006bG-Aa; Tue, 01 Apr 2025 06:38:22 +0000
Received: by outflank-mailman (input) for mailman id 933516;
 Tue, 01 Apr 2025 06:38: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=WxAi=WT=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tzVGO-0006bA-I2
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 06:38:20 +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 e614d7c9-0ec3-11f0-9ea7-5ba50f476ded;
 Tue, 01 Apr 2025 08:38:19 +0200 (CEST)
Received: by mail-wr1-x433.google.com with SMTP id
 ffacd0b85a97d-3913b539aabso2979220f8f.2
 for <xen-devel@lists.xenproject.org>; Mon, 31 Mar 2025 23:38:19 -0700 (PDT)
Received: from [10.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-43d90000f48sm144489275e9.37.2025.03.31.23.38.17
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 31 Mar 2025 23:38:18 -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: e614d7c9-0ec3-11f0-9ea7-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743489498; x=1744094298; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=3KyJcf0Q5Z+31C42hrAx9ma9jZnCwyV2rBRy4XkZjYg=;
        b=TbCJpQAcqVE0bWgx+qCeW/SywRDmrc+3cbXH/ZS+9RVQDJ5rsPnq1obg75SXiaZJfu
         1HDHWfTrEGOZB+3Gza9TQ1KOfOVVS/xcujq5ImNAqu+xYBv/mOtQVNAHhY++hbFgzxFb
         MmLYxP/AdT0xo9WOzVBJ7T627lPzmPKW6xkRosgDdmkBuuxpS+1mGXJt822SvxG8T+pt
         vWe+htInBq20ZtOJC9fP5xC6MNRr7pu9DGBGf2ONqUlgTlmgj6orQWVOhaISafFdu6Jm
         bYEs3DG/unZl6XsH384v4JYVY2QFMCn3lJqZnsupO6sCNQ8gpIJfZidNWSNlNekvjih5
         nG+g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743489498; x=1744094298;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=3KyJcf0Q5Z+31C42hrAx9ma9jZnCwyV2rBRy4XkZjYg=;
        b=tLOmc3AR6FBHVWBRrIjRqUlHuHYrjTG/pmgyWOOznyWRUV+Lzz4Mpz4+FgBtRmWNcj
         839fSSI52l9WNaB79c2PPkJLYJJTpD+5SVa1P7Xn0AAQzOGWCwZNi8aUnOUfW5zM9rE+
         dGdD2sp/9F5NN/xFTg55bqCq6x5ySkYyhp5tVsV+C8xO7KpaOkwPX4U8MZHMudV3pNdn
         WXDVIj7KdxqMdzRh3/vszqBOZ8egu8BTjIKqu7CPIoV8nchU4q+rfyLxZqRAXuzoIVJS
         gEoUvxWy20pihGpQ6RUoEMyI8WB2VnSBeQwVCgiNYJQ1m2mY1J1VPPGLhRqTROppNOyT
         TmiQ==
X-Forwarded-Encrypted: i=1; AJvYcCWCsXReqpbdGN8AHpQeoMJlrZNPa0izUfbEUMO4O/nwmZHvfYfh3vH7q8fVZ7Qa1uH0z68Qia0on10=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwkRbwvCb1SOnZAZjGiADdlzldqnRiEjXPzaQu735rduUYPTmA8
	Jtb00YwkBCvUBCQq7nZIw676jGEVa8ZgvxQpGfRDi01ySOGwvQrgsaE+4F41cA==
X-Gm-Gg: ASbGncvMS2Wg07JUIdVUhMSP56x8I2z8pov+B+M2CTW3hf6+rpRgOlvfXqSckHJn2gB
	vwdq6hpgqY0hknlWZlRHAsYi3To1LROw6ufxRi7Am+76bwGgcFhBI53vAJLkifIr5vyOCAMY6xU
	03bHpj7C9wJlZDkoLhm/M2av+m0zvCQnCuX04x4RVDnfpMu/8CLz4jqr19dfs9ITRnBZT9PuxNT
	VCH2/x5BrMNOninh0VSsTpkK4Kx1k42foLKxKIIHAml0MbPPHZ8TAejZQwiA+8fZOPZM5vrP/jD
	iLUj2vce+fbIICl4XH9pTPX8rim1DAyFJ7yUIz1V98YILxi8MClcE7M5Agy+ZPZ3ZNp8WFf7IZQ
	poBSkqy7VG6JLkDtT5GkYze4c1bOJfQ==
X-Google-Smtp-Source: AGHT+IFhMY8eTFmb3+UJZUxSrwIorwQ4grpB7wy1aUBvO4Jpj2H7PWppNYE8Ltgwcel0jjesjke9sQ==
X-Received: by 2002:a05:6000:18a8:b0:390:fb37:1ca with SMTP id ffacd0b85a97d-39c12119c94mr9231553f8f.53.1743489498532;
        Mon, 31 Mar 2025 23:38:18 -0700 (PDT)
Message-ID: <3cd17873-5905-4d2f-86cb-9875edd8025f@suse.com>
Date: Tue, 1 Apr 2025 08:38:17 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 03/15] xen/cpufreq: refactor cmdline "cpufreq=xxx"
To: "Penny, Zheng" <penny.zheng@amd.com>
Cc: "Huang, Ray" <Ray.Huang@amd.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 "Orzel, Michal" <Michal.Orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20250306083949.1503385-1-Penny.Zheng@amd.com>
 <20250306083949.1503385-4-Penny.Zheng@amd.com>
 <80963bfa-a19e-49a7-8de2-0d8508af450f@suse.com>
 <DM4PR12MB8451F07287ABC9BB683D7BD3E1A62@DM4PR12MB8451.namprd12.prod.outlook.com>
 <94160460-357a-4852-b56d-3d89febd0e68@suse.com>
 <DM4PR12MB845172547933E0618DC27EEDE1AC2@DM4PR12MB8451.namprd12.prod.outlook.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <DM4PR12MB845172547933E0618DC27EEDE1AC2@DM4PR12MB8451.namprd12.prod.outlook.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 01.04.2025 07:44, Penny, Zheng wrote:
> [Public]
> 
> Hi
> 
>> -----Original Message-----
>> From: Jan Beulich <jbeulich@suse.com>
>> Sent: Wednesday, March 26, 2025 6:43 PM
>> To: Penny, Zheng <penny.zheng@amd.com>
>> Cc: Huang, Ray <Ray.Huang@amd.com>; Andrew Cooper
>> <andrew.cooper3@citrix.com>; Anthony PERARD <anthony.perard@vates.tech>;
>> Orzel, Michal <Michal.Orzel@amd.com>; Julien Grall <julien@xen.org>; Roger
>> Pau Monné <roger.pau@citrix.com>; Stefano Stabellini <sstabellini@kernel.org>;
>> xen-devel@lists.xenproject.org
>> Subject: Re: [PATCH v3 03/15] xen/cpufreq: refactor cmdline "cpufreq=xxx"
>>
>> On 26.03.2025 08:20, Penny, Zheng wrote:
>>>> -----Original Message-----
>>>> From: Jan Beulich <jbeulich@suse.com>
>>>> Sent: Monday, March 24, 2025 11:01 PM
>>>>
>>>> On 06.03.2025 09:39, Penny Zheng wrote:
>>> Maybe I mis-understood the previous comment you said ```
>>>         >          else if ( IS_ENABLED(CONFIG_INTEL) && choice < 0 &&
>>>         > ```
>>>
>>>         For the rest of this, I guess I'd prefer to see this in context. Also with
>>>         regard to the helper function's name.
>>> ```
>>> I thought you suggested to introduce helper function to wrap the conditional
>> codes...
>>> Or may you were suggesting something like:
>>> ```
>>> #ifdef CONFIG_INTEL
>>> else if ( choice < 0 && !cmdline_strcmp(str, "hwp") ) {
>>>     xen_processor_pmbits |= XEN_PROCES
>>>     ...
>>> }
>>> #endif
>>> ```
>>
>> Was this reply of yours misplaced? It doesn't fit with the part of my reply in context
>> above. Or maybe I'm not understanding what you mean to say.
>>
>>>> In the end I'm also not entirely convinced that we need these two
>>>> almost identical helpers (with a 3rd likely appearing in a later patch).
>>
>> Instead it feels as if this response of yours was to this part of my comment.
>> Indeed iirc I was suggesting to introduce a helper function. Note, however, the
>> singular here as well as in your response above.
>>
> 
> Correct if I understood wrongly, you are suggesting that we shall use one single helper
> function here to cover all scenarios, maybe as follows:
> ```
> +static int __init handle_cpufreq_cmdline(const char *arg, const char *end,
> +                                         enum cpufreq_xen_opt option)
> +{
> +    int ret;
> +
> +    if ( cpufreq_opts_contain(option) )
> +    {
> +        const char *cpufreq_opts_str[] = { "CPUFREQ_xen", "CPUFREQ_hwp" };
> +
> +        printk(XENLOG_WARNING
> +               "Duplicate cpufreq driver option: %s",
> +               cpufreq_opts_str[option - 1]);
> +        return 0;
> +    }
> +
> +    xen_processor_pmbits |= XEN_PROCESSOR_PM_PX;
> +    cpufreq_controller = FREQCTL_xen;
> +    cpufreq_xen_opts[cpufreq_xen_cnt++] = option;
> +    switch ( option )
> +    {
> +    case CPUFREQ_hwp:
> +        if ( arg[0] && arg[1] )
> +            ret = hwp_cmdline_parse(arg + 1, end);
> +    case CPUFREQ_xen:
> +        if ( arg[0] && arg[1] )
> +            ret = cpufreq_cmdline_parse(arg + 1, end);
> +    default:
> +        ret = -EINVAL;
> +    }

Apart from the switch() missing all break statements, the helper I was thinking
of would end right before the switch(). The <xyz>_cmdline_parse() calls would
remain at the call sites of the helper.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 01 06:56:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 06:56:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.933528.1335456 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzVXz-0003Ga-Rx; Tue, 01 Apr 2025 06:56:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 933528.1335456; Tue, 01 Apr 2025 06:56:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzVXz-0003GT-P0; Tue, 01 Apr 2025 06:56:31 +0000
Received: by outflank-mailman (input) for mailman id 933528;
 Tue, 01 Apr 2025 06:56: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=FaGF=WT=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1tzVXz-0003GL-2g
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 06:56:31 +0000
Received: from NAM11-CO1-obe.outbound.protection.outlook.com
 (mail-co1nam11on2060a.outbound.protection.outlook.com
 [2a01:111:f403:2416::60a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6e4e2baa-0ec6-11f0-9ffb-bf95429c2676;
 Tue, 01 Apr 2025 08:56:28 +0200 (CEST)
Received: from DM4PR12MB8451.namprd12.prod.outlook.com (2603:10b6:8:182::7) by
 CH3PR12MB8972.namprd12.prod.outlook.com (2603:10b6:610:169::11) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.44; Tue, 1 Apr
 2025 06:56:23 +0000
Received: from DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::b04e:2da5:7189:4c4d]) by DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::b04e:2da5:7189:4c4d%6]) with mapi id 15.20.8534.045; Tue, 1 Apr 2025
 06:56: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: 6e4e2baa-0ec6-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=q1ayL4C4gNONe/yptG1Ev9KFLlMnQRfn/Bfj+4soMUEHI5vjuspcaN3/ZXNRq/I971yVGpISriMybLahpxX9s4NQecil59rtvq2+g8s2FPgiyAddGNXgSNoepaP6XbgRSlHbvzwz48eq+eVFHO7B1SfvJCgi6iGE7OT3T+R4KzMey+hlXNI/3O1N4RTJunzyS1e1EMtWlzllbbbfohj3tCVuvzk+xvU33J+I38RmXTYCMCqcL89iwKeyJxFlmXenA+meymxKRcj6KpuXYEo3adyt9kdNCav4Hf99sXsnC+Bwb1Puw36NXazyRWqsVfYopKA76GkbYKy3936LSWyoTw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=CqKJxW773laYA185KmgpNmCsZnZzyhTG+MZ0a0K4jlU=;
 b=boz5DCL9JqUxYG8Eg2BZsLwVzhl/vqBMbq8yAHx2yJns0vsM5snXuedWBoxyGO1uNYlicTQK3BkXPsYNz4mwiIa00xuuZL0lB1elCV3I4jTqw62OLqMQl3WmU+oL83Eg4sXKPbU4GNlQ3ZO9PD7lsf17xwBbDAONax+axc3bexl3jL4iyww7BHmtfjhkv31DtgQNM0C1EuptKtKjp7HLg4kEF9+TW/1dtj9LTAS0nrfUVOgXWRPxjJuB+Yyuvpm0j29XEMxQj+lKjGdjaG5qQsxS25DXk4Yz2mnFKjPWySA/7b0yT2LroWAdvbsKpjFjtDjjR1Qg3gGjHJH6nHsjjw==
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=CqKJxW773laYA185KmgpNmCsZnZzyhTG+MZ0a0K4jlU=;
 b=dRBnBNo/vKxygGxBnJROxcoWuPKj8OGXidZ5rENbTjlogtvRJvTf0t0iWZJZOiFohwHwszco6DCUEUukE8Uej0OvML3TB/S96nr4t/jU5SxgnysYAOn+OVJPESJ1E2Dh8miMY/orCWS9MPY9Q4HH9lTOVTKAzK4oMUA3JUg3atM=
From: "Penny, Zheng" <penny.zheng@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "Huang, Ray" <Ray.Huang@amd.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	"Orzel, Michal" <Michal.Orzel@amd.com>, Julien Grall <julien@xen.org>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Stefano
 Stabellini <sstabellini@kernel.org>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: RE: [PATCH v3 03/15] xen/cpufreq: refactor cmdline "cpufreq=xxx"
Thread-Topic: [PATCH v3 03/15] xen/cpufreq: refactor cmdline "cpufreq=xxx"
Thread-Index:
 AQHbjnNpEkvZJyYnHka7avkYmH1MUrOCfisAgAKWJuCAAEZ9gIAJF6sQgAAR7YCAAATs8A==
Date: Tue, 1 Apr 2025 06:56:23 +0000
Message-ID:
 <DM4PR12MB8451185E36A580EEA21E9B28E1AC2@DM4PR12MB8451.namprd12.prod.outlook.com>
References: <20250306083949.1503385-1-Penny.Zheng@amd.com>
 <20250306083949.1503385-4-Penny.Zheng@amd.com>
 <80963bfa-a19e-49a7-8de2-0d8508af450f@suse.com>
 <DM4PR12MB8451F07287ABC9BB683D7BD3E1A62@DM4PR12MB8451.namprd12.prod.outlook.com>
 <94160460-357a-4852-b56d-3d89febd0e68@suse.com>
 <DM4PR12MB845172547933E0618DC27EEDE1AC2@DM4PR12MB8451.namprd12.prod.outlook.com>
 <3cd17873-5905-4d2f-86cb-9875edd8025f@suse.com>
In-Reply-To: <3cd17873-5905-4d2f-86cb-9875edd8025f@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
 MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_ActionId=71d6ac26-92fb-4575-84da-b463158c0210;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_ContentBits=0;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Enabled=true;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Method=Privileged;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Name=Open
 Source;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SetDate=2025-04-01T06:56:14Z;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Tag=10,
 0, 1, 1;
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DM4PR12MB8451:EE_|CH3PR12MB8972:EE_
x-ms-office365-filtering-correlation-id: ccfbd063-68b2-4d03-a0d0-08dd70ea50aa
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?eW8wRFdzT0FUbHJhcENJRHV6WnQ0dFo4aUhvcjhPYjZPNjhLSHJEbjhZV3Yw?=
 =?utf-8?B?REdHUlBSaXdDY1d1dmJlOTJnNVM4ODN0VUtBNVVqV243UmxPaUNCQTFBUjdJ?=
 =?utf-8?B?MzJJalhoenZHS1o3c1BMNnYwenFqM3A1cUhrVERQVTVFd0NUdWNVWXptaDB0?=
 =?utf-8?B?VWNDcThhUW9zOFJBY0F6VmpZUnV5a0haenEyNktONnNMaHhRZi82OTY2U3Ux?=
 =?utf-8?B?MGUycW40R3pxWUJLVUhEaEV2cHoyR1k0WWllc0VUWEloV2xyblVBMThtOUpN?=
 =?utf-8?B?TVNmYlF6TDlZMzZ2YW1QdlJRaWQ3TEZsS2NOOVlSTmlRd0Q0VWZiVGxDNXRX?=
 =?utf-8?B?aFRUbUJxU1pmMlgwRnJWQ0M1MG12bERaay9QL2k5QkRqK3BaQkNaQmFqQi9X?=
 =?utf-8?B?WlZOYW1DSHBSV1NqTFg4bXNWODUvS2V1NElORkZtZENQMUZMaEJHTUtMRlcy?=
 =?utf-8?B?OE03b3hlbE1idmk0dUxlOGF3TUtpMjVUS1k0WXpFaHJOeFdVenpwV0VtWU91?=
 =?utf-8?B?UFl0MnAzVWZkN2RhSENVL0NBYU9mYUFEYTRZWDVvcjdvcTh3TlRTeFg4dVFJ?=
 =?utf-8?B?Q05Sb2Rqc05NQU1BSjlaT1l6bk94cm1YNThuL0cvWWJyRTZBb1RwZXBCTjV6?=
 =?utf-8?B?OEFQTEVLeTZOeU14d1Fsc2lDV3d4TDY4YmhMNVgrTENvTVNmQ2lkTW83N0dC?=
 =?utf-8?B?Zk5pbUF5dEVNM1BNUHhmcDdiOENsN3pKWDVEOVR3aDlNV3V0SStHbnc5eUoy?=
 =?utf-8?B?NWRmVnhMM3BienQ2aENzVjlRZDMyMU5oTkswVFYvc3NUZG1XTlN2QVVDTXcr?=
 =?utf-8?B?cVpvak1IUlFUZThMaHNKVjhXbWZ2c3pXVWpCYXRsUVFDSEJhSHMxeW9sMDBy?=
 =?utf-8?B?MHdFdmdnZDVMK2ZsM3NyYUFvYjc1cUZtQkZGblllMk92cVkwNVA0b2xOcWEz?=
 =?utf-8?B?ZUZZTEplSi9UUW95UStGbUJDMDVIeFpLWHpYUWdzSCtpNTI2OXdhaUNCODdJ?=
 =?utf-8?B?TDFDaWx6Q21teE5ZYmFuVWw4VmgxaGdMUk9xR1dYVlJnR2s2VWpPK21GcE1u?=
 =?utf-8?B?YzltaC8yWXRKcjl6cVJqZWk0ZmRweGtabk5mRXU5eHVpMlpOc1AyK1hac1Fq?=
 =?utf-8?B?RWZqek96SHl1aWFCaTZuOWUvUmVJbDNrZFJvSDk3T0JpYTV6ZitJaWU5eEFZ?=
 =?utf-8?B?VW9pR3cwS2dHemZiWnptTkRwR1U1N3BFY3BiQWZ2M1Q3TE1za2hqbS9CNWVz?=
 =?utf-8?B?VUtWQ1h4Vks0Y2J3alFXRnpQV1RPUlRZT3lOcHFQRmlUZmJqOU41Q1ppRkNN?=
 =?utf-8?B?bkMzTDZiellKTmU0SDdXUys4V21OakdrWU9pV3VyeWpQYjlsSlIvODhBV0JC?=
 =?utf-8?B?WFlpWkowTHFQemY2TEs5WENRbzJ2NXA3RzFMdmwxYjFSUS9Qcm9nMEt5UEZs?=
 =?utf-8?B?TVpCSGpLV0tmaVcyNzlNcWNSMTlFZUw1MkRjWjByTmxaU09tYkVHNlgrMUYz?=
 =?utf-8?B?WHJuQW03UDNDd0ZERUJCNHdZTll6eUNnWmQ3YTgwRVEwMVlZUG4xYmJCWFZk?=
 =?utf-8?B?YVE1UzVVT2ZBS25GUlBUSy9INVAvUnA4ZVFGT3M0bmhNbWZ5aktjRHFEc0Z1?=
 =?utf-8?B?UCtkWHZIVUNSN01MOVJneWR4R0hXL3ZtRFNnbHZ2aW1DVnBkRExUT1NKd0g5?=
 =?utf-8?B?TFJlaEdoMzljbS9sMFJNcDRrbG85eHJCSVZYbENUS25pQUY5bjBYM2RjV0lI?=
 =?utf-8?B?aFpVL0RMQmpEMDM1cWFjSCs4akI2cHRGOWJkSEFmQjRmZEt4Wlh0WDZoZC96?=
 =?utf-8?B?TUFibER3L3lwSXVVd0ZzMFQwMW9xQ3N6b0NxLzFPWlIxeFhkYWhWVlY3Y29p?=
 =?utf-8?B?OXJpRldBTmtlRXZSQVRRYkxIZmgzcXFDWGhUY2UxK0Y5dWx2ajdCbnpxbjh4?=
 =?utf-8?Q?FMpRB35VNCiM73spLquipZvrU8t/Yzb7?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB8451.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?VEZTQStHQ0dhcG5Ca0Fyc1FONFVoM25PYzB4YkFpZWJ3RzROdlMrZ0pEZGhH?=
 =?utf-8?B?bTErODQ3M0pQTVRnZStDSUQwRTVjVmVJTGUvem1oVExzdDhhT2VSOVJhc3NZ?=
 =?utf-8?B?SS9YeU1veGY2V2NISXdkZ254elB3V2dhd011ZWg1Y3ZLam1kYWpHQk01L2U4?=
 =?utf-8?B?a0I0VzFzb1hrWkVadmZvNnRvSHpRTWtaY3NCZ3VPL2pwUFdzbjV5U2FuZ2Ro?=
 =?utf-8?B?SXp1bzNteE1yZndCbGJTTVU2cmtyN2VuNWNaaWhETkUyY2Q4NkdoNE56WUd1?=
 =?utf-8?B?SXpIZTlVc09Sc2xMYkhVbnFhWU9jcmhmNmlEQmp1em5hblBZYVRDZjkvQXY5?=
 =?utf-8?B?YkVNKytKYkUvRTRHdTR1NjQ0SkhGSTlQRUwxcW5DSTBXOGN1M09lSVBtUHFl?=
 =?utf-8?B?RytxdjV0SjZISkMvMmhvZC9PLytHbmI4R0U3RnhrREVPNjg5WFZaZ21jUzlv?=
 =?utf-8?B?bHQzN1U1alB5Q0ZCNTZDamFUeWJvNlF6ckQ4QzB3YXcrNWtFRG5iRVFrd3lu?=
 =?utf-8?B?UmlPL1JEN1AxTm9mOWpiVU45NVVtZEtoSFQyRUp2UUV2K1BUSE1MVnBIQkE5?=
 =?utf-8?B?S1lGUUs2dmNGTytaalRlLy82R0REUGFhM1lSMkEvdWF3b0hsbDhEL2RmZVE0?=
 =?utf-8?B?Q1lGKzJvcWwxNjZjeFNXKzJTYkMzZit6M2IzaFNhVmp5N05IcjhnSkVYaUNB?=
 =?utf-8?B?VCs3Y0hqc282T1drQzNWMTk2TzgvOXF0Rm93TWhyTW13cUFBRXR2Rng2b2U2?=
 =?utf-8?B?dS81QVhucUlXSXFVZ3YxS0VUZVNmOGcvQ2UyQzlnazltRG5KcEtFeWhvUVpK?=
 =?utf-8?B?VE1ZaTlYdkk0UFFXZjRsSDZKengrNGhPS2RGb1ZTbTRieXZmNXRFeWVvcDdC?=
 =?utf-8?B?emVBekV0OFljSFBocENWemlpckp3QVNxS01RaENKbnlWK2N6K01xZERncFdJ?=
 =?utf-8?B?Q2dLKzJpV1FTOVRUcndqVDZVRW9rLzRYVU9lUzVSd0F6T0RpakZPZjdPOG9J?=
 =?utf-8?B?NzZaTlYwLzA0bHMyRmFmeHRCanJJaEZTczBzeEZrOXVqb1hiZzduZGZvZ2Vi?=
 =?utf-8?B?L2pOS3lidUtUUkM4MGVLSHVMMFFINmgyN2Erekhwa0RrSXVIVlBpYWJ1anBs?=
 =?utf-8?B?N09zbEVlOXlDeDVqeEczaVVkRGgzd3JDWG5iOG1JeHZQNEdrVVBKakhteE94?=
 =?utf-8?B?UlJQZGpmRldEdmtTdjNhcjFuYzZSSjFyVXdPd1o1aWhiTHRYc2dyS2VIeEZm?=
 =?utf-8?B?bUhRUCswbkU5Y2lsK2puaWFzOGIxRnZaenJKUkR1TWFkTk00d2ttZHVZZ1Iz?=
 =?utf-8?B?a3h0QUh2SGJrekU3b1hMQUovaHVvVDZ4aFN3RWJLUS9jREhqelRXUnFNVlJL?=
 =?utf-8?B?Tm05Wk5xZDM3OVNxdlFOaTJIaE5XbFkrUDNOVmRtZzJsMkdadk56UlE1bklI?=
 =?utf-8?B?Z0FqSk5VWFZjT3RBam1rbVJxYitnQ3AvUG9yTnBaUHBLWG5FK2JrdE1YVHlR?=
 =?utf-8?B?TjBndkw0TjZybTQrOU1HdFNYUlhlVkdDUGVhLzkrS1BFQlVSMk1vTlFsZWxk?=
 =?utf-8?B?SHp2R2dxczQvdTNmaGkyRm9JNHIrWVBEaWN0bXhjUFRBdWVpcnl5LytKUFpL?=
 =?utf-8?B?dzU5bEhsR2wwdXhCMytpZEdZSno3cVQ2K1ZBYzMwMXhMd09wZnlYempQeDlS?=
 =?utf-8?B?U1JhdzYrcEhmbmhuRG1XbjhraW44ZlcyL1grbWtkMVAvemJBZUJ0ZHI2aEZv?=
 =?utf-8?B?UE42dXhOWDQrMGtLanRHV2dZU2syRlZ1SjdvT01YYWlSWlNTdWhqSFJ5NVNL?=
 =?utf-8?B?V3ZJTWFrckx4T2ZrV0I5d01JbWRuZUc4UDArV0JYRmF2TWlJcUxhQUpqVG5Q?=
 =?utf-8?B?b3hsMW13TXRiWHBWQnhoUDQ3Z1ZNTExjREdLSjE1UmYvSXZZdkZoMklncnE5?=
 =?utf-8?B?WGRNb0pxbzlobU4rOUpuOERiYXRqZ0JZZ2lOR21RMTl6eDBocGI0RWlQT1J1?=
 =?utf-8?B?Ulg0R1lYZHNKS0U4TWE1b2QrV2E3c2lJbUtweGg2TDI3NmNZOXJDTTNHZnBE?=
 =?utf-8?B?bmtJb2NWZm12Zk9OT0h4bWlCWFBKbUNDeEEyVGNiRWpvWDlVOGROcU5TYjZp?=
 =?utf-8?Q?3U28=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB8451.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ccfbd063-68b2-4d03-a0d0-08dd70ea50aa
X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Apr 2025 06:56:23.4448
 (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: nmGQOoAr5e8pK8SDcwsEyod91ATBTVw5Ss+z+/ZEjjjICuuRLs7SDReEbjXN9PyEzt6kRYFuHICNSkv0q0HMIA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB8972

W1B1YmxpY10NCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBKYW4gQmV1
bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQo+IFNlbnQ6IFR1ZXNkYXksIEFwcmlsIDEsIDIwMjUg
MjozOCBQTQ0KPiBUbzogUGVubnksIFpoZW5nIDxwZW5ueS56aGVuZ0BhbWQuY29tPg0KPiBDYzog
SHVhbmcsIFJheSA8UmF5Lkh1YW5nQGFtZC5jb20+OyBBbmRyZXcgQ29vcGVyDQo+IDxhbmRyZXcu
Y29vcGVyM0BjaXRyaXguY29tPjsgQW50aG9ueSBQRVJBUkQgPGFudGhvbnkucGVyYXJkQHZhdGVz
LnRlY2g+Ow0KPiBPcnplbCwgTWljaGFsIDxNaWNoYWwuT3J6ZWxAYW1kLmNvbT47IEp1bGllbiBH
cmFsbCA8anVsaWVuQHhlbi5vcmc+OyBSb2dlcg0KPiBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0
cml4LmNvbT47IFN0ZWZhbm8gU3RhYmVsbGluaSA8c3N0YWJlbGxpbmlAa2VybmVsLm9yZz47DQo+
IHhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0KPiBTdWJqZWN0OiBSZTogW1BBVENIIHYz
IDAzLzE1XSB4ZW4vY3B1ZnJlcTogcmVmYWN0b3IgY21kbGluZSAiY3B1ZnJlcT14eHgiDQo+DQo+
IE9uIDAxLjA0LjIwMjUgMDc6NDQsIFBlbm55LCBaaGVuZyB3cm90ZToNCj4gPiBbUHVibGljXQ0K
PiA+DQo+ID4gSGkNCj4gPg0KPiA+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+PiBG
cm9tOiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQo+ID4+IFNlbnQ6IFdlZG5lc2Rh
eSwgTWFyY2ggMjYsIDIwMjUgNjo0MyBQTQ0KPiA+PiBUbzogUGVubnksIFpoZW5nIDxwZW5ueS56
aGVuZ0BhbWQuY29tPg0KPiA+PiBDYzogSHVhbmcsIFJheSA8UmF5Lkh1YW5nQGFtZC5jb20+OyBB
bmRyZXcgQ29vcGVyDQo+ID4+IDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPjsgQW50aG9ueSBQ
RVJBUkQNCj4gPj4gPGFudGhvbnkucGVyYXJkQHZhdGVzLnRlY2g+OyBPcnplbCwgTWljaGFsIDxN
aWNoYWwuT3J6ZWxAYW1kLmNvbT47DQo+ID4+IEp1bGllbiBHcmFsbCA8anVsaWVuQHhlbi5vcmc+
OyBSb2dlciBQYXUgTW9ubsOpDQo+ID4+IDxyb2dlci5wYXVAY2l0cml4LmNvbT47IFN0ZWZhbm8g
U3RhYmVsbGluaSA8c3N0YWJlbGxpbmlAa2VybmVsLm9yZz47DQo+ID4+IHhlbi1kZXZlbEBsaXN0
cy54ZW5wcm9qZWN0Lm9yZw0KPiA+PiBTdWJqZWN0OiBSZTogW1BBVENIIHYzIDAzLzE1XSB4ZW4v
Y3B1ZnJlcTogcmVmYWN0b3IgY21kbGluZSAiY3B1ZnJlcT14eHgiDQo+ID4+DQo+ID4+IE9uIDI2
LjAzLjIwMjUgMDg6MjAsIFBlbm55LCBaaGVuZyB3cm90ZToNCj4gPj4+PiAtLS0tLU9yaWdpbmFs
IE1lc3NhZ2UtLS0tLQ0KPiA+Pj4+IEZyb206IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNv
bT4NCj4gPj4+PiBTZW50OiBNb25kYXksIE1hcmNoIDI0LCAyMDI1IDExOjAxIFBNDQo+ID4+Pj4N
Cj4gPj4+PiBPbiAwNi4wMy4yMDI1IDA5OjM5LCBQZW5ueSBaaGVuZyB3cm90ZToNCj4gPj4+IE1h
eWJlIEkgbWlzLXVuZGVyc3Rvb2QgdGhlIHByZXZpb3VzIGNvbW1lbnQgeW91IHNhaWQgYGBgDQo+
ID4+PiAgICAgICAgID4gICAgICAgICAgZWxzZSBpZiAoIElTX0VOQUJMRUQoQ09ORklHX0lOVEVM
KSAmJiBjaG9pY2UgPCAwICYmDQo+ID4+PiAgICAgICAgID4gYGBgDQo+ID4+Pg0KPiA+Pj4gICAg
ICAgICBGb3IgdGhlIHJlc3Qgb2YgdGhpcywgSSBndWVzcyBJJ2QgcHJlZmVyIHRvIHNlZSB0aGlz
IGluIGNvbnRleHQuIEFsc28gd2l0aA0KPiA+Pj4gICAgICAgICByZWdhcmQgdG8gdGhlIGhlbHBl
ciBmdW5jdGlvbidzIG5hbWUuDQo+ID4+PiBgYGANCj4gPj4+IEkgdGhvdWdodCB5b3Ugc3VnZ2Vz
dGVkIHRvIGludHJvZHVjZSBoZWxwZXIgZnVuY3Rpb24gdG8gd3JhcCB0aGUNCj4gPj4+IGNvbmRp
dGlvbmFsDQo+ID4+IGNvZGVzLi4uDQo+ID4+PiBPciBtYXkgeW91IHdlcmUgc3VnZ2VzdGluZyBz
b21ldGhpbmcgbGlrZToNCj4gPj4+IGBgYA0KPiA+Pj4gI2lmZGVmIENPTkZJR19JTlRFTA0KPiA+
Pj4gZWxzZSBpZiAoIGNob2ljZSA8IDAgJiYgIWNtZGxpbmVfc3RyY21wKHN0ciwgImh3cCIpICkg
ew0KPiA+Pj4gICAgIHhlbl9wcm9jZXNzb3JfcG1iaXRzIHw9IFhFTl9QUk9DRVMNCj4gPj4+ICAg
ICAuLi4NCj4gPj4+IH0NCj4gPj4+ICNlbmRpZg0KPiA+Pj4gYGBgDQo+ID4+DQo+ID4+IFdhcyB0
aGlzIHJlcGx5IG9mIHlvdXJzIG1pc3BsYWNlZD8gSXQgZG9lc24ndCBmaXQgd2l0aCB0aGUgcGFy
dCBvZiBteQ0KPiA+PiByZXBseSBpbiBjb250ZXh0IGFib3ZlLiBPciBtYXliZSBJJ20gbm90IHVu
ZGVyc3RhbmRpbmcgd2hhdCB5b3UgbWVhbiB0byBzYXkuDQo+ID4+DQo+ID4+Pj4gSW4gdGhlIGVu
ZCBJJ20gYWxzbyBub3QgZW50aXJlbHkgY29udmluY2VkIHRoYXQgd2UgbmVlZCB0aGVzZSB0d28N
Cj4gPj4+PiBhbG1vc3QgaWRlbnRpY2FsIGhlbHBlcnMgKHdpdGggYSAzcmQgbGlrZWx5IGFwcGVh
cmluZyBpbiBhIGxhdGVyIHBhdGNoKS4NCj4gPj4NCj4gPj4gSW5zdGVhZCBpdCBmZWVscyBhcyBp
ZiB0aGlzIHJlc3BvbnNlIG9mIHlvdXJzIHdhcyB0byB0aGlzIHBhcnQgb2YgbXkgY29tbWVudC4N
Cj4gPj4gSW5kZWVkIGlpcmMgSSB3YXMgc3VnZ2VzdGluZyB0byBpbnRyb2R1Y2UgYSBoZWxwZXIg
ZnVuY3Rpb24uIE5vdGUsDQo+ID4+IGhvd2V2ZXIsIHRoZSBzaW5ndWxhciBoZXJlIGFzIHdlbGwg
YXMgaW4geW91ciByZXNwb25zZSBhYm92ZS4NCj4gPj4NCj4gPg0KPiA+IENvcnJlY3QgaWYgSSB1
bmRlcnN0b29kIHdyb25nbHksIHlvdSBhcmUgc3VnZ2VzdGluZyB0aGF0IHdlIHNoYWxsIHVzZQ0K
PiA+IG9uZSBzaW5nbGUgaGVscGVyIGZ1bmN0aW9uIGhlcmUgdG8gY292ZXIgYWxsIHNjZW5hcmlv
cywgbWF5YmUgYXMgZm9sbG93czoNCj4gPiBgYGANCj4gPiArc3RhdGljIGludCBfX2luaXQgaGFu
ZGxlX2NwdWZyZXFfY21kbGluZShjb25zdCBjaGFyICphcmcsIGNvbnN0IGNoYXIgKmVuZCwNCj4g
PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnVtIGNwdWZyZXFf
eGVuX29wdCBvcHRpb24pDQo+ID4gK3sNCj4gPiArICAgIGludCByZXQ7DQo+ID4gKw0KPiA+ICsg
ICAgaWYgKCBjcHVmcmVxX29wdHNfY29udGFpbihvcHRpb24pICkNCj4gPiArICAgIHsNCj4gPiAr
ICAgICAgICBjb25zdCBjaGFyICpjcHVmcmVxX29wdHNfc3RyW10gPSB7ICJDUFVGUkVRX3hlbiIs
DQo+ID4gKyAiQ1BVRlJFUV9od3AiIH07DQo+ID4gKw0KPiA+ICsgICAgICAgIHByaW50ayhYRU5M
T0dfV0FSTklORw0KPiA+ICsgICAgICAgICAgICAgICAiRHVwbGljYXRlIGNwdWZyZXEgZHJpdmVy
IG9wdGlvbjogJXMiLA0KPiA+ICsgICAgICAgICAgICAgICBjcHVmcmVxX29wdHNfc3RyW29wdGlv
biAtIDFdKTsNCj4gPiArICAgICAgICByZXR1cm4gMDsNCj4gPiArICAgIH0NCj4gPiArDQo+ID4g
KyAgICB4ZW5fcHJvY2Vzc29yX3BtYml0cyB8PSBYRU5fUFJPQ0VTU09SX1BNX1BYOw0KPiA+ICsg
ICAgY3B1ZnJlcV9jb250cm9sbGVyID0gRlJFUUNUTF94ZW47DQo+ID4gKyAgICBjcHVmcmVxX3hl
bl9vcHRzW2NwdWZyZXFfeGVuX2NudCsrXSA9IG9wdGlvbjsNCj4gPiArICAgIHN3aXRjaCAoIG9w
dGlvbiApDQo+ID4gKyAgICB7DQo+ID4gKyAgICBjYXNlIENQVUZSRVFfaHdwOg0KPiA+ICsgICAg
ICAgIGlmICggYXJnWzBdICYmIGFyZ1sxXSApDQo+ID4gKyAgICAgICAgICAgIHJldCA9IGh3cF9j
bWRsaW5lX3BhcnNlKGFyZyArIDEsIGVuZCk7DQo+ID4gKyAgICBjYXNlIENQVUZSRVFfeGVuOg0K
PiA+ICsgICAgICAgIGlmICggYXJnWzBdICYmIGFyZ1sxXSApDQo+ID4gKyAgICAgICAgICAgIHJl
dCA9IGNwdWZyZXFfY21kbGluZV9wYXJzZShhcmcgKyAxLCBlbmQpOw0KPiA+ICsgICAgZGVmYXVs
dDoNCj4gPiArICAgICAgICByZXQgPSAtRUlOVkFMOw0KPiA+ICsgICAgfQ0KPg0KPiBBcGFydCBm
cm9tIHRoZSBzd2l0Y2goKSBtaXNzaW5nIGFsbCBicmVhayBzdGF0ZW1lbnRzLCB0aGUgaGVscGVy
IEkgd2FzIHRoaW5raW5nIG9mDQo+IHdvdWxkIGVuZCByaWdodCBiZWZvcmUgdGhlIHN3aXRjaCgp
LiBUaGUgPHh5ej5fY21kbGluZV9wYXJzZSgpIGNhbGxzIHdvdWxkDQo+IHJlbWFpbiBhdCB0aGUg
Y2FsbCBzaXRlcyBvZiB0aGUgaGVscGVyLg0KPg0KDQpVbmRlcnN0b29kIQ0KDQo+IEphbg0K


From xen-devel-bounces@lists.xenproject.org Tue Apr 01 06:59:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 06:59:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.933540.1335466 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzVbF-0003pj-Aj; Tue, 01 Apr 2025 06:59:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 933540.1335466; Tue, 01 Apr 2025 06:59: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 1tzVbF-0003pc-75; Tue, 01 Apr 2025 06:59:53 +0000
Received: by outflank-mailman (input) for mailman id 933540;
 Tue, 01 Apr 2025 06:59: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=oF/L=WT=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1tzVbD-0003pW-RS
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 06:59:51 +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 e7d48e04-0ec6-11f0-9ea7-5ba50f476ded;
 Tue, 01 Apr 2025 08:59:50 +0200 (CEST)
Received: by mail-wr1-x42a.google.com with SMTP id
 ffacd0b85a97d-3913b539aabso2989111f8f.2
 for <xen-devel@lists.xenproject.org>; Mon, 31 Mar 2025 23:59:50 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 ffacd0b85a97d-39c0b658c87sm13431650f8f.9.2025.03.31.23.59.49
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 31 Mar 2025 23:59:49 -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: e7d48e04-0ec6-11f0-9ea7-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1743490790; x=1744095590; 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=ScQu8B85nX7UoHj6OIK9JPoXlkR0ynGgpmVeiNLdA5Y=;
        b=fZ51vd47wajgd6El1GP9VkJPjVOVSx+aNsoJPCoL0N5UAndg5AvBcxaVOm4kCpPJWE
         Alv/kJb4qH3o0udehlmkwQTG1PiOoiA8gnzlSzbFnD4RloMdM+sotR0fF7RFEUVNVtTF
         ivHTJuQ1VL7ZybBlNsQ90Pi9huGJHHhYaTXpM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743490790; x=1744095590;
        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=ScQu8B85nX7UoHj6OIK9JPoXlkR0ynGgpmVeiNLdA5Y=;
        b=h9JPYiR2MxrDSWYHVY0Q/zBf+86QuOgUEnrr42cU7QB5dv50H2e/ApPx5UgVBsTLyk
         afaUX3TQk48H962jzkC++kvZgiT5Wj9Ot1o20kfw7hVhIqYA/Q8ogykrZrTqkCFCCgKV
         CTHAqKT0/haxJstERN2e1LvxoW+t+xzIwp+YXUI1JZijsiE+/ci7mPA60B7Axih0Cqsb
         LldRWrr2nDyaxApIt4jWeJX4FekKeg0fsnug4OOVb3KfHlM5490QEhqChqR/ifenKEEU
         4Ky69IPFfOxhUpZION6gk9LZoeblKP3wQOpqWO0Db063mTsYkikT+LFKMEkgCrn7b26I
         j0Sg==
X-Gm-Message-State: AOJu0YyGLNpE0nkxgVGRRyQm2NdS++jOEPxmhBxfpm5hdxAT16gdkijD
	SHX6um9nevSaJO7615Duo5ODjlhJqzMNMrD9G2aGRI04FrPh3TGbkahnp2H6Alk=
X-Gm-Gg: ASbGncsfWhBHJaZBYg4pkiCFCR/q8O5FkxPGk9KWM2vbo7o/RjhMX1H/1XL2ugeZwff
	yr0AGDACa32inqvl8JtMn2qk4vgh0wSKVarYfAyllJ/tGZ3zKsYTUPweLskyuc0unrDoH7Il1zA
	Zu/zzuIehH69DajBNUtnWl5c9v0FIqrcfBdO1Tp2XcvtNH0zeHqvN0kCKM2/4uJI3Wx0C61WfQY
	sW3+FpC+FRYtWh80JCMWWPQ6RZ6rdq2LRk/4qafUzuMWw+5OtunQvbsdH9/VDgfypez3FsxFavy
	u7FSX66BPOfpbTLR+5556fFSWIL9XMqznCKzyXFscTblTEA9v37/NKoA9YYh
X-Google-Smtp-Source: AGHT+IFKQVah+X6jaRwBpp/tbQLwgQ0G67K/eV0jLgdbPhzBFasoUXNF/SYBJC91/1+ITHLHk0pUBg==
X-Received: by 2002:a5d:59a6:0:b0:399:6dc0:f15b with SMTP id ffacd0b85a97d-39c12119cebmr8878018f8f.48.1743490790005;
        Mon, 31 Mar 2025 23:59:50 -0700 (PDT)
Date: Tue, 1 Apr 2025 08:59:45 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: dmkhn@proton.me
Cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com,
	anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org,
	michal.orzel@amd.com, sstabellini@kernel.org, dmukhin@ford.com
Subject: Re: [PATCH v1] x86/domain: revisit logging in arch_domain_create()
Message-ID: <Z-uO4X_mk8QycVVe@macbook.local>
References: <20250331213406.422725-1-dmukhin@ford.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <20250331213406.422725-1-dmukhin@ford.com>

On Mon, Mar 31, 2025 at 09:34:24PM +0000, dmkhn@proton.me wrote:
> From: Denis Mukhin <dmukhin@ford.com>
> 
> Use %pd in all logs issued from arch_domain_create().
> 
> Also, expand error message in arch_domain_create() under
> !emulation_flags_ok() case to help debugging.
> 
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> ---
> The origin of the patch is:
>   https://lore.kernel.org/xen-devel/20250103-vuart-ns8250-v3-v1-6-c5d36b31d66c@ford.com/
> ---
>  xen/arch/x86/domain.c | 18 ++++++++++--------
>  1 file changed, 10 insertions(+), 8 deletions(-)
> 
> diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
> index a42fa54805..15c5e2a652 100644
> --- a/xen/arch/x86/domain.c
> +++ b/xen/arch/x86/domain.c
> @@ -798,13 +798,12 @@ int arch_domain_create(struct domain *d,
>      {
>          if ( !opt_allow_unsafe )
>          {
> -            printk(XENLOG_G_ERR "Xen does not allow DomU creation on this CPU"
> -                   " for security reasons.\n");
> +            printk(XENLOG_G_ERR "%pd: Xen does not allow DomU creation on this CPU"
> +                   " for security reasons.\n", d);

Since you are already touching this, I would switch to gprintk, and
avoid splitting the lines:

            gprintk(XENLOG_ERR,
                    "%pd: Xen does not allow DomU creation on this CPU for security reasons.\n",
                    d);

Same for the other messages below.

>              return -EPERM;
>          }
>          printk(XENLOG_G_WARNING
> -               "Dom%d may compromise security on this CPU.\n",
> -               d->domain_id);
> +               "%pd: domain may compromise security on this CPU.\n", d);
>      }
>  
>      emflags = config->arch.emulation_flags;
> @@ -814,16 +813,19 @@ int arch_domain_create(struct domain *d,
>  
>      if ( emflags & ~XEN_X86_EMU_ALL )
>      {
> -        printk(XENLOG_G_ERR "d%d: Invalid emulation bitmap: %#x\n",
> -               d->domain_id, emflags);
> +        printk(XENLOG_G_ERR "%pd: Invalid emulation bitmap: %#x\n",
> +               d, emflags);
>          return -EINVAL;
>      }
>  
>      if ( !emulation_flags_ok(d, emflags) )
>      {
> -        printk(XENLOG_G_ERR "d%d: Xen does not allow %s domain creation "
> +        printk(XENLOG_G_ERR "%pd: 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,
> +               is_hvm_domain(d) ? "HVM" : "PV",
> +               is_hardware_domain(d) ? "(hardware) " : "",

I wouldn't use parentheses around hardware, but that's just my taste.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Apr 01 07:46:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 07:46:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.933560.1335476 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzWK6-00077n-Oe; Tue, 01 Apr 2025 07:46:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 933560.1335476; Tue, 01 Apr 2025 07:46:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzWK6-00077g-Ln; Tue, 01 Apr 2025 07:46:14 +0000
Received: by outflank-mailman (input) for mailman id 933560;
 Tue, 01 Apr 2025 07:46: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=hrmQ=WT=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1tzWK5-00077K-2z
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 07:46:13 +0000
Received: from OSPPR02CU001.outbound.protection.outlook.com
 (mail-norwayeastazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20f::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 60bc27f2-0ecd-11f0-9ffb-bf95429c2676;
 Tue, 01 Apr 2025 09:46:10 +0200 (CEST)
Received: from DU2PR04CA0238.eurprd04.prod.outlook.com (2603:10a6:10:2b1::33)
 by DU0PR08MB7461.eurprd08.prod.outlook.com (2603:10a6:10:354::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.44; Tue, 1 Apr
 2025 07:46:05 +0000
Received: from DB5PEPF00014B9C.eurprd02.prod.outlook.com
 (2603:10a6:10:2b1:cafe::6e) by DU2PR04CA0238.outlook.office365.com
 (2603:10a6:10:2b1::33) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8534.53 via Frontend Transport; Tue,
 1 Apr 2025 07:46:05 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 DB5PEPF00014B9C.mail.protection.outlook.com (10.167.8.170) with
 Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8606.22
 via Frontend Transport; Tue, 1 Apr 2025 07:46:03 +0000
Received: ("Tessian outbound eb3c789b7dfa:v604");
 Tue, 01 Apr 2025 07:46:03 +0000
Received: from Le8c4b34ada3b.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 44EF0E72-95BE-411A-AA80-3C23C3D11C16.1; 
 Tue, 01 Apr 2025 07:45:56 +0000
Received: from EUR03-VI1-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id
 Le8c4b34ada3b.1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Tue, 01 Apr 2025 07:45:56 +0000
Received: from DB9PR08MB6588.eurprd08.prod.outlook.com (2603:10a6:10:25a::24)
 by VI0PR08MB10426.eurprd08.prod.outlook.com (2603:10a6:800:20d::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.44; Tue, 1 Apr
 2025 07:45:53 +0000
Received: from DB9PR08MB6588.eurprd08.prod.outlook.com
 ([fe80::a8fc:ea0d:baf1:23a]) by DB9PR08MB6588.eurprd08.prod.outlook.com
 ([fe80::a8fc:ea0d:baf1:23a%7]) with mapi id 15.20.8534.048; Tue, 1 Apr 2025
 07:45: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: 60bc27f2-0ecd-11f0-9ffb-bf95429c2676
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=XAmTR3FOhGUikYzq9mojtKQEHHdgwc4rjJdWUb2hMB2eDgMEbjzCWvECm6viy3nDnVq9u7E57oM1jB9s4LLdDxQaurkX+npxwx4e5m+rLmWN+zJKQqfiLQzVpz6h9msUPv3V23g/HSJVBXuV+t27SdiCaJMJwkhxdaLa3nnI31JVqjHudpeDMzQllFIGObzdbQwqY/BUz2x3badDJuh93uGKtqjOJJmKk/qk1BS0T8E5hzJ0+bIPgPAW7W71DroJl4TN38emvPyLxyOUM25xP5VespnMSTeFGDLQDFggzUJzV2i91ORQpv535zxa+YLEg1XiS+lvnyAJ/GaBBiK0VA==
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=LygCG9fwK/L9LXwvWXAWI159V+0t6R493yF13OMpwCY=;
 b=scXsXHlCbqdmmM5pbZqzPqbx6hwMOPYGSNRyeIj7Xv/Mib28hDXwq/ArdNCfRbnEKglfHr7ZU1GqaYkIIXRxU7u+D5tz3lU4dUEcnTDnKqLT0GW/hPbFIq+UNCwBWqAiWbGc8TqCez1Fa7+Vuy0E5rbiPNUzqajxButIaCQM3qkA7sWEoBexA1lnTEihhPjeurpeTBktnUUqkqGoDm9jNLeF1Q9zvfdE/fJHQp/5wtRvcu3tIQAGx88bOjC/zjOWQERVANvfQ5kxi5QYOX05wYjeyq4kWsFtFOr1oBKMhO1bTFgAtPy1sdXxZbOR673vxx0lyEvavX7cphewzyDVhQ==
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=LygCG9fwK/L9LXwvWXAWI159V+0t6R493yF13OMpwCY=;
 b=rVeZSKIzTfAmCvKzsoClYG9rDL4qoYW77DD/OYBZlUlKNnq9zbj3aeU9tNss7NxTCiYWeqX/VRyhDYMWMCcp7xlg42O2xG9aH8gGdAnalRdT+TdzKI3WEZyzVIc2dU385Wv/Vh/90Hhyy6KNMhNTn0xlhPA3CjYyr8tXs7RDPGM=
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: ded4d8ad8960e0b7
X-TessianGatewayMetadata: d/X+zuIyFpMMMsXhmTcw3KeHvwvp0WimGHsEt1jaut3zwTNF8J5PzXOdIrPZQTh+GfJjw62PopOt7TH4IgkcXvH4rHmKK1OJe2TssxYzBp92HOH+mwHlotIsD6seCDpbTRmXYneVJMBP7ng7Tfglq4vZGFQpsuKS/nQl+6OuZCs=
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=lkSpUJM3BBWF5741O0SXOd7sx4NxTE5a+oToCdF9NXI/o9XAerwr+BBiGeb+1mWSdV8JMbfDjgXdqaah2niesmXmcSaUqZsk6b7KtXveGmOYccdSr/LsyyRUQ6GN5JWV+hXBkht4ZqwwMzcnuGJZbJB3eWNr0/pQVJyH4BKfRDtSnofhLk0oxNbD/FYMo1aNFotLiD9pLcnFhVDIfqhtLyMg35YjlZBk0i3u9OWRkb28fq7GXUcHbzgtdBDNktGE0sgzjZbdpVQIYObTCexjD2oBP/x1kBCSloGjrfuuSaSbOXRpzi57o5noWHYer6d2jmdb79vSHpfO61/9F+4YVQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=LygCG9fwK/L9LXwvWXAWI159V+0t6R493yF13OMpwCY=;
 b=SrC//G6lckOYuBK09+pkNVZ8bcM0U/327CIQUuzG4guW6Umjz2bKC1P9YXifQy6MGloPP7DN2Oy5wYiq9AV+lvsnwsEmAv69eK3JXw8TsO848PxxjvDn0Banb3dMWzfnJqAuxUUIp9nvugWPlmY7cN8r/pEJeeya3Rs3cRCJmk4MIrSA0Ivh7H29CBvYVFj+3cHMAO4UfbF76ULeFSRLeZYYFhy2WGPjdnhfXHjFZF/7nSbfKQtoOCjbSITXLZSB8o6ExoAKbUcjs9JPRKeO37wlrum13aPipUGwsFjDISRNPH6EKdSHFm4Ti5Ka7JNNNOfD1MRwLWNkUkWYNf5WBA==
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=LygCG9fwK/L9LXwvWXAWI159V+0t6R493yF13OMpwCY=;
 b=rVeZSKIzTfAmCvKzsoClYG9rDL4qoYW77DD/OYBZlUlKNnq9zbj3aeU9tNss7NxTCiYWeqX/VRyhDYMWMCcp7xlg42O2xG9aH8gGdAnalRdT+TdzKI3WEZyzVIc2dU385Wv/Vh/90Hhyy6KNMhNTn0xlhPA3CjYyr8tXs7RDPGM=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Julien Grall <julien@xen.org>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"jens.wiklander@linaro.org" <jens.wiklander@linaro.org>, Volodymyr Babchuk
	<volodymyr_babchuk@epam.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH v4 2/5] xen/arm: ffa: Introduce VM to VM support
Thread-Topic: [PATCH v4 2/5] xen/arm: ffa: Introduce VM to VM support
Thread-Index: AQHbnMQnVQCSJAleWkGtVlVLXLrx+bOGED+AgACZt4CABZFtgIACPzcA
Date: Tue, 1 Apr 2025 07:45:52 +0000
Message-ID: <46C42C5C-00C3-4706-8A35-CA0FF1DA5DA7@arm.com>
References: <cover.1742824138.git.bertrand.marquis@arm.com>
 <8f0928b4e94b47d6fed201dcd8cfb1068573b297.1742824138.git.bertrand.marquis@arm.com>
 <338d8982-0a2e-4a40-a9a2-bed8f50d81e1@xen.org>
 <90051748-EA8A-4657-BCE1-EEDD1C4D080B@arm.com>
 <b8f70df9-0004-4733-b73d-33dea2bc37cf@xen.org>
In-Reply-To: <b8f70df9-0004-4733-b73d-33dea2bc37cf@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.400.131.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DB9PR08MB6588:EE_|VI0PR08MB10426:EE_|DB5PEPF00014B9C:EE_|DU0PR08MB7461:EE_
X-MS-Office365-Filtering-Correlation-Id: 398599fd-4020-42ec-7ca2-08dd70f14139
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|10070799003|38070700018;
X-Microsoft-Antispam-Message-Info-Original:
 =?us-ascii?Q?VmwF7Bdzl52bGiPKL/t6kT/t01SbJiQp7FO1y5Bv9JsNftS4bOnDXquAFyYl?=
 =?us-ascii?Q?wpgDzTjcHMFXZ+eHQE63H3xJEtw4tO4YQ4b7Jb2c9HH+e9c9EZoFdOyL2upl?=
 =?us-ascii?Q?Bhe29T+/iaV44V4EGX2e0+HSeZdHQa44S0MNsCiIERFWbCnC5+UWHZNZgotY?=
 =?us-ascii?Q?CbHhvi8wYfBCeb/qIEUxV2n9hV+oL9+GLAwUrDKgeInfK7UNhHo8dOhj6oFW?=
 =?us-ascii?Q?sO6PxlCpHO09UtYnfp5p7ouiX24QSavcHhbd6jDVV7l5QcNvRLSMApPUhU7/?=
 =?us-ascii?Q?cFmx/56IKqULCzcsnHB5nNQHq+iwxzurr2Ty2F8EONyB3nNHIX73SOxgVOBn?=
 =?us-ascii?Q?/LgiLyxIok9V+qId6D97FPwrd2CsXVHk9TlGTkn9Fh6atM/D2enLHJtKegVI?=
 =?us-ascii?Q?aSW6KB2E+IfqJAruGgezcGHcSVNQVgAEgDZurcfGbgjHPtL3W459rS+q5JlT?=
 =?us-ascii?Q?dl4JIkUdJlnX8Uvpl+VXFeok2kL0nQWoXg3QOUxrm9WeKRB7E1scB4lRww5/?=
 =?us-ascii?Q?kas0EFnrEPjGD5NE4rkvxSdIV7UCgZZgQ0BCxisRSdDKLDHYkV9PsFY/v//F?=
 =?us-ascii?Q?v7uh0MlOOJhSSIOy19yimFYkKmhJjz6BFnUYhd9UGuoAhziTph/+RI2qtgQH?=
 =?us-ascii?Q?9hTmnG6FZQcE0cvy/kE74jVLU8IV6lvCalnF1PfHyJ1fRlENl9K78mklP0o4?=
 =?us-ascii?Q?/KbcahG0IWNVEUKBVTnTvvXqDJcyuHfOHIweL1I1ECGNsVbX7rON7RXaYF88?=
 =?us-ascii?Q?DAeLks1RGSBg2kiHv5I1rB1RsdyVUxAJej8YaIRUHPvGo4YmviuTFhwVdc99?=
 =?us-ascii?Q?r6WChkeq0iKDL22FzNMb0Ndo4cwQSsctS7fWw+F1DfCvEO9bQ2BOCoQUJ8ln?=
 =?us-ascii?Q?UqXe64f+qYZSCd82Wg6MfZjLfsLf3kFzhSYaQFkeMJEvm4Hlq6/Bpcc96CTF?=
 =?us-ascii?Q?oJTRHfxVDwlfVq7yua7bUJsDI0x5l+xFJ0PFbE1BZovYHdxZYdc8V+2RO3jB?=
 =?us-ascii?Q?oxjr8Grc/EN9aExv7aU5t1YaLtWz1cz5qx8/tBwEYkOQUk/7IXvLxyaQHY15?=
 =?us-ascii?Q?i7aktUea8i2oxPHPKv+f7iPzQuV0NRaW7KIz0MMBTfhRvxN6uEYmx/iOGJaC?=
 =?us-ascii?Q?sNd7geV6RongBiD2GWXi9B6MSgOpYUGkkpYrj15BXTsVo7JFm0d2DvKqNcUv?=
 =?us-ascii?Q?finmxYSrBZ63aWvhwY7XPVXPQynEu8CoVpMr4u1SZN0VduV/ER9OsWvKhGNT?=
 =?us-ascii?Q?IIrS6fbqf4TO32UIweoxB+xf5B2gFx/TpkbWlZIWio6ofJB/FT1vzIeblg+z?=
 =?us-ascii?Q?MCBJji8o+WWdVdqHhRKZiewYPiCTxmL1/W3KbENb0Izu6/Wz6Re3/yDtP2m9?=
 =?us-ascii?Q?ioFXJOrgHzsZzaMg6JBCsOmR4gggtbzMfsLK2R+zSR08vpiNerjImcI/q9Lf?=
 =?us-ascii?Q?GhrOWMFIlmfbb83id8JKF/jx1e4CoyGV?=
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)(376014)(10070799003)(38070700018);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-ID: <8CD7861C9E199542B6954557D9BE110C@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI0PR08MB10426
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:
 DB5PEPF00014B9C.eurprd02.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	a53e19c7-6c36-4fec-7180-08dd70f13a84
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|14060799003|376014|36860700013|35042699022|1800799024|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?c13C+EWlVqXIKwuk3MztqpS5irNo1JKyOcGk4FE1hARVtNA1NOV4EN7Dk1Z2?=
 =?us-ascii?Q?NpNrNrK1B6W7iZzpyFlgaHhnfndYafoAo0HDgm4DcdQq2U+H8YQd9t4VFZJH?=
 =?us-ascii?Q?MDbrWx/mV4FKCKL5a6gcJITgulwTJS7uF8ihtvRKjcGEuDe+2fQQVedls5Iy?=
 =?us-ascii?Q?zV8jhsaOOCf49/e/vhxsZCKCb9g6BNZ/5Bu4PK8FVbQJu3GvuW2lBKBTER8d?=
 =?us-ascii?Q?uxj3otSe1gzEUjta965csRNLgvaPWsgnBH366pBXr2BieFUUng5ZtnebXBUB?=
 =?us-ascii?Q?/jgRxM+997npsTG2WjyhkHEnT4z788mfG8Gn5Igyu8kjc8AkVgrhNLs8f6Ei?=
 =?us-ascii?Q?5TSefAH6R94liZOaJassD7M+FENy9AwBHHo6R2/hmuDxN4KMcPTtlUo0Yg89?=
 =?us-ascii?Q?ylAO1ufc22hq8lA9AgV3QS1Jq5aK8AZa1lkAbcikl0XvxndPOlhubo6ohvWN?=
 =?us-ascii?Q?BXmLq8/UqJKdnbqD03mkv3M/wsh5X8HPei+GQy4JXMLyJhazTq0TqGdsY0Xl?=
 =?us-ascii?Q?4XPDhje2zFJYBPypNaOAG2hyJLSCAHT6Xpi1T95vcX6S0whWkWWj5GxIuziS?=
 =?us-ascii?Q?WuwaXi3mLxfiDgAi4ZZD9rhezxzuajIbn+dk6pSgL8/w4NgffIZ6maANy3Nj?=
 =?us-ascii?Q?QFryrpJahkfAv6mc31rY3fDrj2gSjm3f4b3f8Rpq6ZQTx+V80mqltWkx5osK?=
 =?us-ascii?Q?oqX9200i1wYH7p8/A6Pbpl2v2q7sHjEBgymBSmH2KhtVC8g24sEf+qc4TLq8?=
 =?us-ascii?Q?ErEpZJh/bleVJcGrz6DpFEfiaIlS4cbH9/+WA/CHCsB7/SpMsFQZBx6cktA6?=
 =?us-ascii?Q?wa2BA3pQgeoEkH6y1Uz6pcr3mt73iLhmKUQX3cT+WQSgaJXkneDf9uJe9FeY?=
 =?us-ascii?Q?1QrxXgtGVt5/SComUQKySJPhph7Dly5jQAZPYi7giA5FiBF+LVowhdjWmQjt?=
 =?us-ascii?Q?oMQDQPAKUk6VhSlc3OAj/F30uAzhYf5sVcPK2/LwrkcKXywzSo4Rde5487eY?=
 =?us-ascii?Q?RDdFQ3iq/9Uv9mZb/IOlSPblu1bMOEH5ytupcLw3IOLCXjsYg5MmYCfGKAJd?=
 =?us-ascii?Q?O2EyT1i6Y3IWRW+rpjnmHdPr9guR3T1tLzWIZZFe4nmFVTn6qxI79z8/RQNN?=
 =?us-ascii?Q?9XFQqJhpKQhzOzCtD7IJemOfeXPfBvLkKveyc16MRDUqBvfI7BYhbiZWSP67?=
 =?us-ascii?Q?FNA6LvvhUU5QBfhyVWbF15EPtXw+OLGeCNRYEhGOfVYk0RHHSmwV3B5L4Xmh?=
 =?us-ascii?Q?L0+FYQ/Vdhut7qUtuQwDrZdqm5sFPcQKnpjyVPuuIG6h1jQ51DG0/zVlO41p?=
 =?us-ascii?Q?XOxICqOfpQVtCQLrIIAaTEUx05I6LFoFU1QcC2p3m+bgR1rG//1iTX7afKA7?=
 =?us-ascii?Q?aZij2Ze2jeBF4nTgjoSqAqaNv6VZf8+55/lGN0+uO/Ew6x7+SCdv3UFfnzjM?=
 =?us-ascii?Q?keMQR/3XYF8DhUSlv8ZOjLJBP1NNDRa2lZtem9uM0hdxSnxwmcoERhbty4ES?=
 =?us-ascii?Q?oAu43jKkh9IlXuc=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)(35042699022)(1800799024)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Apr 2025 07:46:03.9569
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 398599fd-4020-42ec-7ca2-08dd70f14139
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:
	DB5PEPF00014B9C.eurprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB7461

Hi Julien,

> On 30 Mar 2025, at 23:26, Julien Grall <julien@xen.org> wrote:
>=20
> Hi Bertrand,
>=20
> On 27/03/2025 08:25, Bertrand Marquis wrote:
>>> On 27 Mar 2025, at 00:14, Julien Grall <julien@xen.org> wrote:
>>>> +static int32_t ffa_get_sp_partinfo(uint32_t *uuid, uint32_t *sp_count=
,
>>>> +                                   void *dst_buf, void *end_buf,
>>>> +                                   uint32_t dst_size)
>>>>  {
>>>>      int32_t ret;
>>>> +    uint32_t src_size, real_sp_count;
>>>> +    void *src_buf =3D ffa_rx;
>>>> +    uint32_t count =3D 0;
>>>> +
>>>> +    /* Do we have a RX buffer with the SPMC */
>>>> +    if ( !ffa_rx )
>>>> +        return FFA_RET_DENIED;
>>>> +
>>>> +    /* We need to use the RX buffer to receive the list */
>>>> +    spin_lock(&ffa_rx_buffer_lock);
>>>> +
>>>> +    ret =3D ffa_partition_info_get(uuid, 0, &real_sp_count, &src_size=
);
>>>> +    if ( ret )
>>>> +        goto out;
>>>> +
>>>> +    /* We now own the RX buffer */
>>>> +
>>>> +    /* We only support a 1.1 firmware version */
>>>> +    if ( src_size < sizeof(struct ffa_partition_info_1_0) )
>>>> +    {
>>>> +        ret =3D FFA_RET_NOT_SUPPORTED;
>>>> +        goto out_release;
>>>> +    }
>>>> +
>>>> +    for ( uint32_t sp_num =3D 0; sp_num < real_sp_count; sp_num++ )
>>>=20
>>> What's the upper limit of real_sp_count? Asking just in case we need to=
 handle preemption.
>> In theory that would be 32k but in practice the number of entries we can=
 receive is
>> limited by the size of the exchange area we have with the secure world.
>> This area is currently defined to be one page and each entry is 8 byte i=
n the
>> case where firmware is 1.0 (24 bytes otherwise).
>> This is an upper limit of 500 entries.
>> Now I do think this is completely unrealistic to imagine a secure world =
with 500 SPs
>> so If you are ok I would rather define an upper limit in Xen (I would sa=
y 64 SPs) that
>> can be changed in the code (through a define).
>> This call currently does not support preemption in the FF-A spec (and th=
at is something
>> i will check for future versions) so I would have no solution to "contin=
ue" it.
>=20
>> Would the "define" solution be acceptable for now ?
>=20
> I think the define solution is acceptable for now and possibly longer. It=
 is an easy way to avoid dealing with preemption.

I will do something with a default value of 64 which should fit for now (an=
d maybe longer).

>=20
> [...]
>=20
>=20
>>>> +static uint32_t ffa_get_vm_count(void)
>>>=20
>>> Is this meant to be called often? If so, can we instead have a counter =
that will be incremented when the vTEE is first initialized and then decrem=
ented when the VM is destroyed?
>> As of now we could have a global counter that we increase or decrease
>> when a domain version is negociated and when a domain is destroyed.
>> We could also have some kind of global save of the result to be returned
>> to a guest.
>> But I did not do that because:
>> - cpu time required to update the list would be taken out an FF-A call
>> for FFA_VERSION of a VM which would require a global lock to protect
>> the data
>=20
> I would have thought an atomic counter would be sufficient. Is there anyt=
hing you had in mind?

Very good idea. I only need to increase it when an FFA_VERSION has been
negociated and decrease on VM destruction.

I will do that.

>=20
>> - when we will have filtering the data will be per VM (which would make
>> the initial update more complex)
>> - incoming we have a notion of UUID and filtering depending on the
>> requested UUID which will make the global value only useable in a
>> limited number of cases.
>> I have 2 pending series on top of this one which would have to remove
>> such optimisations.
>> At the end this is definitely not something supposed to call often (linu=
x
>> driver is calling it once during init).
>=20
> I think it was a mistake for me to asked whether this is called often or =
not. When it comes to security, what matter is whether a malicious guest co=
uld indirectly call ffa_get_vm_count() and delay any work on the pCPU (Xen =
is not preemptible).
>=20
> We don't have to resolve this now. But this will need to be addressed bef=
ore we can we consider FFA security supported. So we should at least add it=
 in the list of issue at the top of the file.

No this is really useful and I will fix it and also the partition info part=
 because:
- all information is read only and known when the VM is created (VM ID, max=
 vcpus and 64bit or not)
- I do not need anything else than that to build the result
- If we can prevent to take a lock this will make the code better.

So I will:
- add an atomic to count the number of VMs with FF-A
- create a chain list of VM FF-A contexts
- add a context to the chain when a version is negociated
- put the infos i need in the ffa ctx structure
- just go through the list to build the partinfo result

>=20
>>>=20
>>>> +{
>>>> +    struct domain *d =3D current->domain;
>>>> +    struct domain *dom;
>>>=20
>>> NIT: "d" and "dom" are a bit too close. Could we rename "d" with "curr_=
d"?
>> i will go with curr_d dest_d to make this clearer.
>>>=20
>>>> +    uint32_t vm_count =3D 0;
>>>> +
>>>> +    /* Count the number of VM with FF-A support */
>>>=20
>>> This comment implies this is including the current VM. But ...
>>>=20
>>>> +    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 )
>>>=20
>>> ... here you are excluding it. Also, it sounds like this is support by =
the OS rather than the VM itself. Is that correct?
>> I have a comment to explain that one in a different serie that i will pu=
t here.
> > > Basically before 1.2, the spec was a bit blurry on if or not the resu=
lt should include the
>> calling VM and in fact Linux driver (before 1.2) was ending with an erro=
r if its own data
>> was included in the result hence this filter.
>=20
> Thanks for the clarification. Just to clarify...
>=20
>> I will add a comment for that.
>=20
> ... will the comment be added in this patch?

Yes i will add the comment in the next version of the patch.

>=20
>>>=20
>>>> +            vm_count++;> +    }
>>>> +    rcu_read_unlock(&domlist_read_lock);
>>>> +> +    return vm_count;
>>>=20
>>> OOI, I guess this value is just used as an hint? Asking because the num=
ber of domains can change at any point.
>> Definitely yes. The data is what it is when called but anything could ch=
ange after.
>> This is mostly used as hint by callers.
>=20
> Does this mean we would always return a fixed number? Asking because this=
 would solve nicely the preemption problem in ffa_get_vm_count().

Well the number is changing when VMs are created or destroyed but as explai=
n earlier i will modify the design to prevent the lock
using an atomic and a chain list.

Now the problem of the potential high number of VMs still stand so I will a=
dd a todo for that and discuss with others to check if this could be solved=
 in the FF-A spec in the feature.

Thanks a lot for the comments.

I will work on v4 for when you get back :-)

Cheers
Bertrand



From xen-devel-bounces@lists.xenproject.org Tue Apr 01 07:50:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 07:50:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.933573.1335487 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzWO2-0000Bb-Al; Tue, 01 Apr 2025 07:50:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 933573.1335487; Tue, 01 Apr 2025 07:50: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 1tzWO2-0000BU-6N; Tue, 01 Apr 2025 07:50:18 +0000
Received: by outflank-mailman (input) for mailman id 933573;
 Tue, 01 Apr 2025 07: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=hrmQ=WT=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1tzWO0-0000BO-JY
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 07:50:16 +0000
Received: from AS8PR04CU009.outbound.protection.outlook.com
 (mail-westeuropeazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c201::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f2302159-0ecd-11f0-9ffb-bf95429c2676;
 Tue, 01 Apr 2025 09:50:14 +0200 (CEST)
Received: from AS4PR10CA0023.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:5d8::15)
 by GV1PR08MB8380.eurprd08.prod.outlook.com (2603:10a6:150:80::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.44; Tue, 1 Apr
 2025 07:50:08 +0000
Received: from AM4PEPF00027A5D.eurprd04.prod.outlook.com
 (2603:10a6:20b:5d8:cafe::a5) by AS4PR10CA0023.outlook.office365.com
 (2603:10a6:20b:5d8::15) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8583.39 via Frontend Transport; Tue,
 1 Apr 2025 07:50:08 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 AM4PEPF00027A5D.mail.protection.outlook.com (10.167.16.69) with
 Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8606.22
 via Frontend Transport; Tue, 1 Apr 2025 07:50:07 +0000
Received: ("Tessian outbound 5d826d745fa9:v604");
 Tue, 01 Apr 2025 07:50:07 +0000
Received: from L6e0d3955cd35.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 A10058C8-0E0E-4EC8-B378-688DCB4C357C.1; 
 Tue, 01 Apr 2025 07:50:01 +0000
Received: from EUR02-VI1-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id
 L6e0d3955cd35.1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Tue, 01 Apr 2025 07:50:01 +0000
Received: from DB9PR08MB6588.eurprd08.prod.outlook.com (2603:10a6:10:25a::24)
 by GV1PR08MB10455.eurprd08.prod.outlook.com (2603:10a6:150:16f::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.51; Tue, 1 Apr
 2025 07:49:57 +0000
Received: from DB9PR08MB6588.eurprd08.prod.outlook.com
 ([fe80::a8fc:ea0d:baf1:23a]) by DB9PR08MB6588.eurprd08.prod.outlook.com
 ([fe80::a8fc:ea0d:baf1:23a%7]) with mapi id 15.20.8534.048; Tue, 1 Apr 2025
 07:49: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: f2302159-0ecd-11f0-9ffb-bf95429c2676
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=isXX6ZtfckrC/5XBQ5hAP2ojw56g790ENRjXlIh2ZoaY/zMvRd7qWYQ3Vm8hDGJT7fUqW8AhQnRQr1d9XPu4biOa/sUfMx4V154IcxYvKXbxyf2Ghd7T8ZBHM/cAe3F270f4F4m/9i7e++BxuqXeEHBW/gvx2q393kl4B6bamf+PSxgOye+Wj6sikPs7Q8GkJIJ8R6H8LCXOUhjsSxdcMIWCAAOaAMdKANTtBF0nhhsvFsFYwp7V01qlpSKxj6SpDQRCth3aaf7gPxqVTcNq5n176L4nbsvrHpWfOqcWsrKcONiBhIkSJuQhY6pR3GXXfd2MvGu+Bjmprl/aVYJErA==
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=USuQfzxBUVNlwPYZRuVv6Yeh3NFUDbJv5/Ei20OuS/s=;
 b=CL8FY+EMjhH4f1VibT1ARxqd2Hih75b92tKIwM7gTy4B6lOuhwpm/mrSms/oTDRzikJkxGUZDGS6boanHbXgT8kQ5ADG1Q1Pjwdf0sg/ZpVhO2VSWin3NI4DKd3Zb+VawgrSKkB8WS6lX4g44JJRTsyHFGKP34MEZXtRWwrzzdoDV00TTtyVInXGMj0ZBwQ9NhBuIbuJdojJbrsU4IadGOGMlc7IatF7FNEhVgf7LoLHuJqzEAoXxsXkbr4VVgQdxisw8MTj/52+/FjRbYPYLizuiTqFnz6w8RiqkGG42qJjbH3IjmSW9y5kBhLAXfcKwRxXnpy4Y1Z7K+PaHBE2Ow==
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=USuQfzxBUVNlwPYZRuVv6Yeh3NFUDbJv5/Ei20OuS/s=;
 b=oBjdQ1AyQg1TEEBcR0mfp6itgQhWEB4+z2ZkP44o4lG390HZU/Rc7rNlSX7VzU1VKSQD2VKhhQ2gmZ9Mcyof5m4KQDZjkXTOj6c5/gJXXGrZApQxuTxJpqMHpVyMC+WUs+VhTmJz4QRtkYctx3dmh643XfuTmSBk9pC5PgFNAeg=
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: 7ae1b8f3b6facffe
X-TessianGatewayMetadata: HDa7dnEjzEkRFrc7oc8B+mlu1YzaAlmosx9f9olLoX0JZOKGkgyH78mdzoxGvRoPpzVyjQQ0p8W4trBDmb/H2TDPzzPDNlkA7qIsXMTVAPRMlG4VWQ+WpMmYfdd4CmuTEJUNr62Gn/fHDaZL02Bg90S4/7WecC+goAX8qn48P6A=
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=tJifkbxPZXUOFKPiw3jo6IGpEiwiVIvPRqDnG2WvKQ0JwYN4uOOF77fUCmnPdQu4xqMIjYZPWEwp7FJ2KwBo7A7b2WvGoP2X63FPUJvqvn/yYITI8GuaZWONZdb74DQoU8lwpw8CF8QTKa1UBhJPCsP7r+HUVTSvdVtwAfFSotxv7XymGFZXoGY4kib4XEbZjXScCLMEg3Xr26gFZ1/7bOnTuX2A94Qt2+ShWcmYgOgNfxW/Y8dx0uV8Ohb2ffJHNosTzbgnhLhBKHfRyEsPXzbyE6NcraOAGU+RhBoiDnGTtJ5wcdEkq6PzhjIwP409IW724vtL+rHvKTYFgfyIiA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=USuQfzxBUVNlwPYZRuVv6Yeh3NFUDbJv5/Ei20OuS/s=;
 b=J0ZeuA+ircU3Q7p7d9F5ZBvt34Qf7k0EvdoG8WRI3Yi9xt0dG1WFO3Hwx9wZ8D65YYn2+07Dr9loO+S5rUA6im6Hj3El/+CrBszD9JzfzpWuQ8VG1CH80jInwYAeAdE28Ae9VpXGxG/k72wCEI2zjv/sJy0OQ+L3UmB8huI0UupBhEWc6kAZphxOnCczvdxBtnjanIoye+n6mKUB4fh1gnAVCpwAoKnmJGB1Oi3GS3EeWPithivwvDPzK8GZg7G40pYE1Qi5DpuPOOPX6Dmbt+vkhWbyQ8s0w/uqBD62/52MgDyoGFxNtSoABVqsKXokXXZ0N5DTMyFe4Den2hAiQA==
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=USuQfzxBUVNlwPYZRuVv6Yeh3NFUDbJv5/Ei20OuS/s=;
 b=oBjdQ1AyQg1TEEBcR0mfp6itgQhWEB4+z2ZkP44o4lG390HZU/Rc7rNlSX7VzU1VKSQD2VKhhQ2gmZ9Mcyof5m4KQDZjkXTOj6c5/gJXXGrZApQxuTxJpqMHpVyMC+WUs+VhTmJz4QRtkYctx3dmh643XfuTmSBk9pC5PgFNAeg=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Julien Grall <julien@xen.org>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"jens.wiklander@linaro.org" <jens.wiklander@linaro.org>, Volodymyr Babchuk
	<volodymyr_babchuk@epam.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH v4 5/5] xen/arm: ffa: Enable VM to VM without firmware
Thread-Topic: [PATCH v4 5/5] xen/arm: ffa: Enable VM to VM without firmware
Thread-Index: AQHbnMQpJ/OSxu9MyEmYd5oQRaZ927OGF78AgACVfQCABZFUgIACPS+A
Date: Tue, 1 Apr 2025 07:49:57 +0000
Message-ID: <5E8833E6-D4CD-49CA-A8AF-E2195759BC22@arm.com>
References: <cover.1742824138.git.bertrand.marquis@arm.com>
 <0f5cf498c3c511ed192e8b7b7d0f4987e00e5c0d.1742824138.git.bertrand.marquis@arm.com>
 <6727ece4-d589-4ab4-9172-07dd6a7f2b44@xen.org>
 <8742853A-E32D-4BA5-AA4D-C69A2FCAEE85@arm.com>
 <504f5df7-4d23-4fbd-a15d-632262f2b685@xen.org>
In-Reply-To: <504f5df7-4d23-4fbd-a15d-632262f2b685@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.400.131.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DB9PR08MB6588:EE_|GV1PR08MB10455:EE_|AM4PEPF00027A5D:EE_|GV1PR08MB8380:EE_
X-MS-Office365-Filtering-Correlation-Id: c9ac3e2e-78de-49dd-ab39-08dd70f1d2aa
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|10070799003|1800799024|38070700018;
X-Microsoft-Antispam-Message-Info-Original:
 =?us-ascii?Q?3k2LR/vuwo1UB9R+l1MVgamazpwXSqd8B4jyjZccxFPnbggZS2Lz0pEX9yp8?=
 =?us-ascii?Q?CvMzaWA+GhPelWs8hoKU7H6truHtHwuG5WOFaiBOqfiDLX2w4tpyNcaDa9l1?=
 =?us-ascii?Q?bjtX1Q4Yf5J8nt7OmO6HW2lr7AbHJXd1uHQLZM4TZjGT3eP5mDbjcviBHnAN?=
 =?us-ascii?Q?DoS2UyyFKgWp2KWNhwO7srxDNlMz6pK1yU0T1lNLpLDb9JoWMLAdhwV6XBPx?=
 =?us-ascii?Q?cdc5NBBYtZ6MdJNVHhPQDFKGJMHbUMLNS1ibR0DagKTpFtdDoQ8uILNt1VMS?=
 =?us-ascii?Q?U5c5eboJ71KWopuTS2S0T5sddAqSZADsQAMP8pKAqbSYop+wft8rwyYh+6W4?=
 =?us-ascii?Q?Nev3l4Eq4uEvgYlazG+OQRtfQfN2UokfBI3qyl5ZT7dGaHPBGcfUGbWuLXQq?=
 =?us-ascii?Q?URUiAmugMu8LqbSXxuwCElMll/uafloSqFZoRrAdiq4R0TmXlMjaxGaIdgiR?=
 =?us-ascii?Q?b/xBY2ttjndNP0ge/CYbCbbP0wELTIYex1rwLo3bCT3eLyN6rKKmo2H3jsDl?=
 =?us-ascii?Q?oYuTrAC08V5fVeUYEn71aqhWXnOrLf3rhmYsDiOuz2VrS2C/ZbPX+2/2boHO?=
 =?us-ascii?Q?f8PVGV6jIEZaJ9o06qzFJzkuG/cYiH5d6DNts1dl1GVvt7l6jupbzN6zDrqu?=
 =?us-ascii?Q?nEux3sJuSSwSpq1E2e6TsMnRviEDNEBlcLs2HMS3TvkhzSN3l2LtXg2Qw5ge?=
 =?us-ascii?Q?s+ewpd+eGSzMLsMEqqx+kyJrYb9L4aE2di7mbHe5/OI2WyZ58LowRwGfqhTV?=
 =?us-ascii?Q?L/9M+hM89xEpeLmhFD4QyvEpFRHfI8dYeu6nq9MRs/igi9zyILjTzkZwArgX?=
 =?us-ascii?Q?0l0jub6ybQp3rDJE/Cn1JgM7ROLhexHBmBcEFtcWahaq6/L7ZpcoRwBQQy16?=
 =?us-ascii?Q?1DKwgHGZ90djtOFJxFJyTRlGUq2dVP0t8oQRw52EepBwzVTBlNDUeqcBqdhs?=
 =?us-ascii?Q?aFP+EDuzV5k/nLZUiOlmq5gEzni8F+bVP7WwuwM7lFiSuGSv/VVGtz9ZscTb?=
 =?us-ascii?Q?Qq+fYcMsCvWMbGn3PZ9vYtZLfGu+AgL77iNJUkndWLqdtpsDUTMtdxNSnXTN?=
 =?us-ascii?Q?FHwIN4wOcCsGe+r4ilHRJc+ArZ/nr06yfijh4mjpUkNWLVrddoyIbpmQRcBm?=
 =?us-ascii?Q?1U6hwN+ynaIMWZiLEHuu5vitnO2VOD0XqopSbPAdQW4ZmAeSPxliM4K4ECk5?=
 =?us-ascii?Q?A0321QToqUg9u8BFK0EWyHEuT4Osa7dOhHSESxB5cGABhJ6GKIuuAMUQdOZK?=
 =?us-ascii?Q?55J3BP/ZQhso/Ljij4lM33SiHe74tKjKLHHhqK0nm50Wc50m60HUVN2Sg9De?=
 =?us-ascii?Q?GLT8zXkN+YmomPX9hMJQhGHP427SrhJVBuLn+HKPPx0m59IdQtSI8H09Pvyu?=
 =?us-ascii?Q?Exs3kicGLe/Iy01BF5zhmQpLKODh/whJKGFx3Ttd3vZRQM6r1drPT8xjUj3Q?=
 =?us-ascii?Q?kudKWNNaSas5sbnMy3TwNSJGt6s2Je/m?=
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)(10070799003)(1800799024)(38070700018);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-ID: <24C15E4CA0D56441B0069AA749715A5F@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR08MB10455
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:
 AM4PEPF00027A5D.eurprd04.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	8206e0d1-a81e-45ab-a507-08dd70f1cc80
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|14060799003|82310400026|376014|36860700013|1800799024|35042699022;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?SNkFA2TKodAgziV5jqXOHMms6HxU5luhDaDrlyjn43azdbZflqbtL6PVOKWr?=
 =?us-ascii?Q?5PpfPC7iXjQhJT9qELisP+PUKflzOnM0ynlKmj9pBYitYvfhg+9CMdyF8auA?=
 =?us-ascii?Q?1FZrs2qbLtWhkPjbDidd2/dIVSX1Wdp8gKK+MTeSita6DWVli3+bKEqafW5B?=
 =?us-ascii?Q?E29QvuCXYFGLiMnN4WgHtGyzNMk0aZsNrnGNPa2JbIu8KeFWOyhUTgXRPveS?=
 =?us-ascii?Q?oqRQ19aY4D4DviB5eSzRKZIFTHuYjjzab6073x0MZ7Xr46+ErowMqrB2JBKV?=
 =?us-ascii?Q?X/l0SZQbMWZFoZaaDRxzD4LaxGRpHdV12dReYAVqR1M9IFNjKZVpPKOm2Hon?=
 =?us-ascii?Q?EhzZNIqwNhlztIUSyEArlQ+Czwie4V/dOkFnTKFdVjNM/n2eBGk/uqajN79R?=
 =?us-ascii?Q?Tc0I4MaX4aA5F/UOvwzFhuARV4/+G4qsGOyqswrpkJc4tOL0TTg0JpV4gofv?=
 =?us-ascii?Q?r8od2ZwYVyTDvy+Lrq/oqzvvLjoW/hwtGzKhcvc8yyqFFPucJ+C9UEpWvMo4?=
 =?us-ascii?Q?py5fFgevnsxop5h64khvxD/Yd067XsBEAkYxz0rc+u258ZK3p1aSvAIsOOrj?=
 =?us-ascii?Q?vzIxrqtUwSrGdT7hoeHKHLE6GZSL5Ukn0cpI/aEUoeAMry+gTOVibSxa3lXc?=
 =?us-ascii?Q?9UyhmmmElolQk3XWlSiKVwoHcv07olmlC1p8dHDZLIQvnIKbvp1cytZxJIJd?=
 =?us-ascii?Q?xyTkaEarfGnkggZozWsXLVd5lZNSocYBNCX+15+k6Ug9/enl1zJhCEXX39Rz?=
 =?us-ascii?Q?qkLxc9wt1RBkI7xOi2oFGCRX6Qb9gyHEk+ucqcKlts7WPEuTfVPMvh7mpvgb?=
 =?us-ascii?Q?W1TFn6YYjhkFNrt6jF2NBiNumHY0KSSb2XAq0F+uXlzDu/0FuxtYYvc0kSe7?=
 =?us-ascii?Q?xatUPjEfWWCjo7VsDWxJOrUle/gp9wWBRkuoDu1eQ5W8u4saYg48NiACWU1y?=
 =?us-ascii?Q?ltwodwViv8rNvMgAFaeiH6WlGThCMKsAW53IRp9S5/x0ISUSqa2dQPXylL1y?=
 =?us-ascii?Q?GPZ4vCBR4EYpgqgt104sJaiT3KAhSl7woWNOF0gs76TARKF5hrPeeywjl81y?=
 =?us-ascii?Q?xWHu5elCpGcFbFZ0VcM1Gx/pPSoz7JYGIHwfJL3HxU/O1xqk+EMhd8Jyhqb2?=
 =?us-ascii?Q?E40BquJPv2YNNzgF2UHHy7DTqHHeqSTj03WfpcW6MwRgdi0oeuO/h+lMLpC/?=
 =?us-ascii?Q?WIsN2xysmkCvypl902aIMIvE8gjUKM5bEszdw2icsNQ1GxVUzjMCXyUdKy7x?=
 =?us-ascii?Q?zrd0yWjhaJCN1URQxT7Rhy+Mg59RX4rZtti+LvPRV+XG30ijkRnoKvgG3YYB?=
 =?us-ascii?Q?SI5FoBVOeauolFpJF9bs9QTvdub25geJWLmkgoJGmEpjJ5IdTtWIpC1L2NYO?=
 =?us-ascii?Q?l053VNHL+4sLJF59yCUmVwuxk2NAYujy63Du+5+cY1ooo1nvZYzsHPi+P5Ra?=
 =?us-ascii?Q?kNc77bnle6rL8RzDZB7BAWeJs4GjvtzRU3FiHSM+VYYEhXGBuZUqm1E7byQs?=
 =?us-ascii?Q?kNPAYfuBKh3b7D0=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)(82310400026)(376014)(36860700013)(1800799024)(35042699022);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Apr 2025 07:50:07.9683
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: c9ac3e2e-78de-49dd-ab39-08dd70f1d2aa
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:
	AM4PEPF00027A5D.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR08MB8380

Hi Julien,

> On 30 Mar 2025, at 23:38, Julien Grall <julien@xen.org> wrote:
>=20
> Hi Bertrand,
>=20
> On 27/03/2025 08:37, Bertrand Marquis wrote:
>>> On 27 Mar 2025, at 00:41, Julien Grall <julien@xen.org> wrote:
>>>=20
>>> Hi Bertrand,
>>>=20
>>> On 24/03/2025 13:53, Bertrand Marquis 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.
>>>=20
>>> tee/ and the callbacks associated are meant to be used for mediatiors. =
My current interpretation ist this is only meant to interpose between a gue=
st and physical resources. Here you are extending the meaning to "virtual T=
EE". I am sort of ok with that but ...
>> I see what you mean but FF-A will not only be used to communicate with T=
EE (even if the primary use case right now is this one, including have it i=
n a VM instead of the secure world).
> > >>
>>>> If there is OP-TEE 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 OP-TEE could be non functional (if FF-A =
is
>>>> probed first) so it is not recommended to activate the configuration
>>>> option for such systems.
>>>=20
>>> ... this part is concerning me. You should be able to build with CONFIG=
_FFA_VM_TO_VM and still boot when OP-TEE is present on the system. This is =
not too critical now as this is tech preview but this is definitely a block=
er for making FFA supported. Can this be mentioned at the top of the ffa.c =
file (which already contains existing blocker)?
>> OP-TEE supports FF-A and in fact should be switched to using it by defau=
lt as it allows it to run in parallel of other TEEs in the secure world or =
have FF-A compliant SPs running on top of OP-TEE.
>> More and more you will see FF-A popping up as a recommended (or required=
) part of the firmware features.
>> So the only reason to use OP-TEE without FF-A is if you have an old OP-T=
EE in which case your firmware will not support FF-A and using it between V=
Ms is probably not required.
>=20
> Thanks for the clarification. I know we only support OP-TEE in Xen today,=
 but do you know what will happen for the other TEEs? Will they adopt FF-A?

On Arm the idea is to make them adopt FF-A yes and it will be part of Syste=
m Ready recommendations in the future.

>=20
>>>=20
>>> Also, given this would expose a fully virtual TEE, we should be able to=
 have a system where you have some VMs talking FFA and some using the physi=
cal OPTEE (or another TEE). Whether we want to support it is a different qu=
estion but this design would prevent it. Is this intended?
>> Right now i would say this is definitely not something we need as part o=
f the tech preview as anybody using this feature in Xen would use an OP-TEE=
 with FF-A support.
>> But from Xen point of view, we should (if we can) support running on old=
 systems with an existing OP-TEE but still use FF-A between VMs.
>> This has some consequences on how the tee mediator and FF-A support is d=
esigned and I will definitely give it some thoughts (primary idea would be =
to decouple FF-A with secure as mediator to FF-A between VMs somehow).
>=20
> I am not sure we need to decouple anything. Today, we can already specify=
 the type of the TEE used by a given VM (see tee_type). But we are enforcin=
g the TEE type match the one of the current mediator.

Yes for VMs this has to be specified explicitly, this was the idea behind t=
he command line parameter for Xen to.

>=20
> So what if we allow multiple mediator to run and when the domain is initi=
alized we select the correct medatior/ops for the VM?

Right now a VM gets the mediator selected by configuration if it is availab=
le.

I do not think we should make it automatic as there might be good reasons t=
o not allow to access a TEE from some VMs.

>=20
> For simplification, we could even hardocode FF-A as the second mediator.

That could be a long term solution yes but we definitely need to solve the =
access rights first.
As long as VMs can use FF-A to communicate with any other VMs or TEEs, the =
current approach is the most secure one.

>=20
>> For the review side of things, am I right to understand from your commen=
ts that this ok for now as tech-preview ?
>=20
> Yes I am happy with the approach for now.

Great thanks.

Cheers
Bertrand

>=20
> Cheers,
>=20
> --=20
> Julien Grall
>=20



From xen-devel-bounces@lists.xenproject.org Tue Apr 01 07:52:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 07:52:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.933587.1335496 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzWPe-0001vd-Qa; Tue, 01 Apr 2025 07:51:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 933587.1335496; Tue, 01 Apr 2025 07:51: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 1tzWPe-0001vW-NG; Tue, 01 Apr 2025 07:51:58 +0000
Received: by outflank-mailman (input) for mailman id 933587;
 Tue, 01 Apr 2025 07:51: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=WxAi=WT=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tzWPd-0001vO-AI
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 07:51:57 +0000
Received: from mail-wm1-x32d.google.com (mail-wm1-x32d.google.com
 [2a00:1450:4864:20::32d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2e52d6e9-0ece-11f0-9ffb-bf95429c2676;
 Tue, 01 Apr 2025 09:51:55 +0200 (CEST)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-43ea40a6e98so10653235e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 01 Apr 2025 00:51:55 -0700 (PDT)
Received: from [10.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-39c0b7a420bsm13190188f8f.82.2025.04.01.00.51.54
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 01 Apr 2025 00:51: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: 2e52d6e9-0ece-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743493915; x=1744098715; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=mpvQjVE4nbCDZ2c9KzZCEqNpXJTESDU+FczLteCD6AQ=;
        b=RsU0Hxdw+NLwl6dlUf36wag+Zspre32MK9SdEad4mb3DJfRfezK2oLMu0GDLJ9x9g9
         PZFITM2jbWNz0R2Wmmgv5W3Qp8Pxgsx1VvbOgqvKtHFyPhZrhEraRHgRckhiHHvWQBWu
         QfNGLFl/TsCHVB63o35aHWJNHtyVbzi58/S0B9Z7+Xz5G8B/TUMjD3bmKkiWEjeFFFDI
         xZLDh3orkgT/xMQQIoCkbm/ZNXCT9l0nFDQ0bBrVO5QWdvNwBFnGStrjx+Qmd6zFmypI
         eCbe8yScUq4MUh4u4qeMC0k99KOp7vOyzM22h+h7bOaBJt3P582FR1C4mezaX/pllc+H
         tu4g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743493915; x=1744098715;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=mpvQjVE4nbCDZ2c9KzZCEqNpXJTESDU+FczLteCD6AQ=;
        b=Nl5Vq1wek3qm5T6Y43FS2EgeHq9pARE8WdpKFBAVLMh9J1KTbxaq47YOoxc5GtKc6p
         AI6xurO2KYmFImdECxAszSz/BXRdluhWkyfQpx5rTzHz/598oWhzHyYNLf2D/Nx9+roR
         VH4sfmXtqAGKVwCLIAQL8GQGUbXJixBi8ZT6ppQ1mhPGsIrgijkIbkmQ3mnSFJTyl7hj
         wOyPJmVLAwi3Ew8m9Fb3ekcLG9bItlM2/w1GMA7IiBrVOYBWRVDfpKKONpwo1n9+LLRE
         NltQ6LKmHBUWcIUqtWcjaPXg0bsw7yjfIZmiVbktUSALYFjcUF2cQZJUHSyKfUzq6BNw
         d0Og==
X-Gm-Message-State: AOJu0YxfH1AI1b+A9ZQ6Pk6DLW7xWu3Xef4KBjvpRnGsovQIrnsASaxc
	lfYIXAhrIfpzAx3+Sx44u2LMuAW3BrCpghMzPHGJ/ThTJeZ2iHZYMRDLCkKL2g==
X-Gm-Gg: ASbGncur36MikPR3Z6mLslCzvkzmeQNOmqhx6WP1l2q3afeBfsYEI4sc8AYho3jkFYg
	vR0IeKLOxdnbAOvfu/gpEdeEtsdRoh9ZCTJsGeq8dDtLdaVp4266Ska+Dmtxt7FE55aU/klaV0i
	eJ+Log1mbH2L3Xkp2R1kH/El5WQsMTiHl+AK4+8cLtqil5KtyaBDkDFZ7ce0mx7sCgZk53nrMNH
	dW0wI+IXRgMCBXDLgu9sdSRWQe4Wbg8MscGOfr1VxdpHQYVxF3ouO16z8L95zgw+4l34kLUK9Dh
	drGBpaGHMnjnsIpa2cZhqDvkS3EtbQGGOUDAXlExlyyFh60n4VtFjQBBLWfxo6J2grddW4PsRKs
	vqXw4n42Goq5XbtHBBvseRJMTFNxn4g==
X-Google-Smtp-Source: AGHT+IFizIHLI6SAMM3YYa5w0n97QKUKvt6ksD+hRGMaMycnpICGSm6JX1DTnnkgT0Rrb3AQkHnN8Q==
X-Received: by 2002:a05:600c:1c11:b0:43d:300f:fa1d with SMTP id 5b1f17b1804b1-43dbc70a243mr110259475e9.31.1743493914727;
        Tue, 01 Apr 2025 00:51:54 -0700 (PDT)
Message-ID: <e87e77ea-0d5b-4fca-abe9-abbb0688ca28@suse.com>
Date: Tue, 1 Apr 2025 09:51:53 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1] x86/domain: revisit logging in arch_domain_create()
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, dmkhn@proton.me
Cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com,
 anthony.perard@vates.tech, julien@xen.org, michal.orzel@amd.com,
 sstabellini@kernel.org, dmukhin@ford.com
References: <20250331213406.422725-1-dmukhin@ford.com>
 <Z-uO4X_mk8QycVVe@macbook.local>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <Z-uO4X_mk8QycVVe@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 01.04.2025 08:59, Roger Pau Monné wrote:
> On Mon, Mar 31, 2025 at 09:34:24PM +0000, dmkhn@proton.me wrote:
>> --- a/xen/arch/x86/domain.c
>> +++ b/xen/arch/x86/domain.c
>> @@ -798,13 +798,12 @@ int arch_domain_create(struct domain *d,
>>      {
>>          if ( !opt_allow_unsafe )
>>          {
>> -            printk(XENLOG_G_ERR "Xen does not allow DomU creation on this CPU"
>> -                   " for security reasons.\n");
>> +            printk(XENLOG_G_ERR "%pd: Xen does not allow DomU creation on this CPU"
>> +                   " for security reasons.\n", d);
> 
> Since you are already touching this, I would switch to gprintk, and
> avoid splitting the lines:
> 
>             gprintk(XENLOG_ERR,
>                     "%pd: Xen does not allow DomU creation on this CPU for security reasons.\n",
>                     d);
> 
> Same for the other messages below.

IOW you see value in also logging current->domain?

What I'd like to ask for when touching these log messages is to get rid of
the full stops.

>>              return -EPERM;
>>          }
>>          printk(XENLOG_G_WARNING
>> -               "Dom%d may compromise security on this CPU.\n",
>> -               d->domain_id);
>> +               "%pd: domain may compromise security on this CPU.\n", d);
>>      }
>>  
>>      emflags = config->arch.emulation_flags;
>> @@ -814,16 +813,19 @@ int arch_domain_create(struct domain *d,
>>  
>>      if ( emflags & ~XEN_X86_EMU_ALL )
>>      {
>> -        printk(XENLOG_G_ERR "d%d: Invalid emulation bitmap: %#x\n",
>> -               d->domain_id, emflags);
>> +        printk(XENLOG_G_ERR "%pd: Invalid emulation bitmap: %#x\n",
>> +               d, emflags);
>>          return -EINVAL;
>>      }
>>  
>>      if ( !emulation_flags_ok(d, emflags) )
>>      {
>> -        printk(XENLOG_G_ERR "d%d: Xen does not allow %s domain creation "
>> +        printk(XENLOG_G_ERR "%pd: 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,
>> +               is_hvm_domain(d) ? "HVM" : "PV",
>> +               is_hardware_domain(d) ? "(hardware) " : "",
> 
> I wouldn't use parentheses around hardware, but that's just my taste.

+1 (provided we really need this extra property logged here)

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 01 07:53:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 07:53:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.933599.1335505 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzWQp-0002Tu-31; Tue, 01 Apr 2025 07:53:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 933599.1335505; Tue, 01 Apr 2025 07: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 1tzWQp-0002Tn-0J; Tue, 01 Apr 2025 07:53:11 +0000
Received: by outflank-mailman (input) for mailman id 933599;
 Tue, 01 Apr 2025 07: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=+mHN=WT=kernel.org=mingo@srs-se1.protection.inumbo.net>)
 id 1tzWQn-0002Th-Ju
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 07:53:09 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org
 [2600:3c0a:e001:78e:0:1991:8:25])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 585f120b-0ece-11f0-9ffb-bf95429c2676;
 Tue, 01 Apr 2025 09:53:07 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 4FD3543BA6;
 Tue,  1 Apr 2025 07:53:04 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8963EC4CEE4;
 Tue,  1 Apr 2025 07:52: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: 585f120b-0ece-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1743493984;
	bh=85J+UQqrPmkLGjgTDn4/gMvG0FvRmMphb7RZrr3I10Q=;
	h=Date:From:To:Cc:Subject:References:In-Reply-To:From;
	b=Z8qHtNByIm8E5p7AbYs018QH17/ls1OzKBt8dHzcgbJ67+A1/wTK+6rA4JlB/4Ps/
	 WHwSgnuRMBluhXVJsMV2uImUjVoCl7ZOUajOXz8Hy2N7kW37JJREgvN1MLwtK8P16B
	 30z2+YLa787+Wp3jqgsF4EZ1g26n27iQ91Ma0VqyTWbEZNW+g4X5Pr7B5VytBQpKSn
	 gU5tO4JDdcbGvmbLt948CbvNiXSCFGtMI8xYuqH8g75jwnqDwYAt1tbX3G/fZ2xGxQ
	 vbNOC92UT5Zbj1+851IKPt/uEZp+yF68D+7pSayPTk33ws4MtrWg9ytAxtDP4ARZWZ
	 93xpSccuufhrg==
Date: Tue, 1 Apr 2025 09:52:52 +0200
From: Ingo Molnar <mingo@kernel.org>
To: "H. Peter Anvin" <hpa@zytor.com>
Cc: "Xin Li (Intel)" <xin@zytor.com>, linux-kernel@vger.kernel.org,
	linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
	virtualization@lists.linux.dev, linux-edac@vger.kernel.org,
	kvm@vger.kernel.org, xen-devel@lists.xenproject.org,
	linux-ide@vger.kernel.org, linux-pm@vger.kernel.org,
	bpf@vger.kernel.org, llvm@lists.linux.dev, tglx@linutronix.de,
	mingo@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com,
	x86@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com,
	peterz@infradead.org, acme@kernel.org, namhyung@kernel.org,
	mark.rutland@arm.com, alexander.shishkin@linux.intel.com,
	jolsa@kernel.org, irogers@google.com, adrian.hunter@intel.com,
	kan.liang@linux.intel.com, wei.liu@kernel.org,
	ajay.kaher@broadcom.com, alexey.amakhalov@broadcom.com,
	bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
	pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
	luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
	haiyangz@microsoft.com, decui@microsoft.com,
	Linus Torvalds <torvalds@linux-foundation.org>
Subject: Re: [RFC PATCH v1 01/15] x86/msr: Replace __wrmsr() with
 native_wrmsrl()
Message-ID: <Z-ubVFyoOzwKhI53@gmail.com>
References: <20250331082251.3171276-1-xin@zytor.com>
 <20250331082251.3171276-2-xin@zytor.com>
 <Z-pruogreCuU66wm@gmail.com>
 <9D15DE81-2E68-4FCD-A133-4963602E18C9@zytor.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <9D15DE81-2E68-4FCD-A133-4963602E18C9@zytor.com>


* H. Peter Anvin <hpa@zytor.com> wrote:

> On March 31, 2025 3:17:30 AM PDT, Ingo Molnar <mingo@kernel.org> wrote:
> >
> >* Xin Li (Intel) <xin@zytor.com> wrote:
> >
> >> -	__wrmsr      (MSR_AMD_DBG_EXTN_CFG, val | 3ULL << 3, val >> 32);
> >> +	native_wrmsrl(MSR_AMD_DBG_EXTN_CFG, val | 3ULL << 3);
> >
> >This is an improvement.
> >
> >> -	__wrmsr      (MSR_IA32_PQR_ASSOC, rmid_p, plr->closid);
> >> +	native_wrmsrl(MSR_IA32_PQR_ASSOC, (u64)plr->closid << 32 | rmid_p);
> >
> >> -	__wrmsr      (MSR_IA32_PQR_ASSOC, rmid_p, closid_p);
> >> +	native_wrmsrl(MSR_IA32_PQR_ASSOC, (u64)closid_p << 32 | rmid_p);
> >
> >This is not an improvement.
> >
> >Please provide a native_wrmsrl() API variant where natural [rmid_p, closid_p]
> >high/lo parameters can be used, without the shift-uglification...
> >
> >Thanks,
> >
> >	Ingo
> 
> Directing this question primarily to Ingo, who is more than anyone 
> else the namespace consistency guardian:
> 
> On the subject of msr function naming ... *msrl() has always been 
> misleading. The -l suffix usually means 32 bits; sometimes it means 
> the C type "long" (which in the kernel is used instead of 
> size_t/uintptr_t, which might end up being "fun" when 128-bit 
> architectures appear some time this century), but for a fixed 64-but 
> type we normally use -q.

Yeah, agreed - that's been bothering me for a while too. :-)

> Should we rename the *msrl() functions to *msrq() as part of this 
> overhaul?

Yeah, that's a good idea, and because talk is cheap I just implemented 
this in the tip:WIP.x86/msr branch with a couple of other cleanups in 
this area (see the shortlog & diffstat below), but the churn is high:

  144 files changed, 1034 insertions(+), 1034 deletions(-)

So this can only be done if regenerated and sent to Linus right before 
an -rc1 I think:

  git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip WIP.x86/msr

Thanks,

	Ingo

=======================>
Ingo Molnar (18):
      x86/msr: Standardize on u64 in <asm/msr.h>
      x86/msr: Standardize on u64 in <asm/msr-index.h>
      x86/msr: Use u64 in rdmsrl_amd_safe() and wrmsrl_amd_safe()
      x86/msr: Use u64 in rdmsrl_safe() and paravirt_read_pmc()
      x86/msr: Rename 'rdmsrl()' to 'rdmsrq()'
      x86/msr: Rename 'wrmsrl()' to 'wrmsrq()'
      x86/msr: Rename 'rdmsrl_safe()' to 'rdmsrq_safe()'
      x86/msr: Rename 'wrmsrl_safe()' to 'wrmsrq_safe()'
      x86/msr: Rename 'rdmsrl_safe_on_cpu()' to 'rdmsrq_safe_on_cpu()'
      x86/msr: Rename 'wrmsrl_safe_on_cpu()' to 'wrmsrq_safe_on_cpu()'
      x86/msr: Rename 'rdmsrl_on_cpu()' to 'rdmsrq_on_cpu()'
      x86/msr: Rename 'wrmsrl_on_cpu()' to 'wrmsrq_on_cpu()'
      x86/msr: Rename 'mce_rdmsrl()' to 'mce_rdmsrq()'
      x86/msr: Rename 'mce_wrmsrl()' to 'mce_wrmsrq()'
      x86/msr: Rename 'rdmsrl_amd_safe()' to 'rdmsrq_amd_safe()'
      x86/msr: Rename 'wrmsrl_amd_safe()' to 'wrmsrq_amd_safe()'
      x86/msr: Rename 'native_wrmsrl()' to 'native_wrmsrq()'
      x86/msr: Rename 'wrmsrl_cstar()' to 'wrmsrq_cstar()'

 arch/x86/coco/sev/core.c                           |   2 +-
 arch/x86/events/amd/brs.c                          |   8 +-
 arch/x86/events/amd/core.c                         |  12 +--
 arch/x86/events/amd/ibs.c                          |  26 ++---
 arch/x86/events/amd/lbr.c                          |  20 ++--
 arch/x86/events/amd/power.c                        |  10 +-
 arch/x86/events/amd/uncore.c                       |  12 +--
 arch/x86/events/core.c                             |  42 ++++----
 arch/x86/events/intel/core.c                       |  66 ++++++-------
 arch/x86/events/intel/cstate.c                     |   2 +-
 arch/x86/events/intel/ds.c                         |  10 +-
 arch/x86/events/intel/knc.c                        |  16 +--
 arch/x86/events/intel/lbr.c                        |  44 ++++-----
 arch/x86/events/intel/p4.c                         |  24 ++---
 arch/x86/events/intel/p6.c                         |  12 +--
 arch/x86/events/intel/pt.c                         |  32 +++---
 arch/x86/events/intel/uncore.c                     |   2 +-
 arch/x86/events/intel/uncore_discovery.c           |  10 +-
 arch/x86/events/intel/uncore_nhmex.c               |  70 ++++++-------
 arch/x86/events/intel/uncore_snb.c                 |  42 ++++----
 arch/x86/events/intel/uncore_snbep.c               |  50 +++++-----
 arch/x86/events/msr.c                              |   2 +-
 arch/x86/events/perf_event.h                       |  26 ++---
 arch/x86/events/probe.c                            |   2 +-
 arch/x86/events/rapl.c                             |   8 +-
 arch/x86/events/zhaoxin/core.c                     |  16 +--
 arch/x86/hyperv/hv_apic.c                          |   4 +-
 arch/x86/hyperv/hv_init.c                          |  66 ++++++-------
 arch/x86/hyperv/hv_spinlock.c                      |   6 +-
 arch/x86/hyperv/ivm.c                              |   2 +-
 arch/x86/include/asm/apic.h                        |   8 +-
 arch/x86/include/asm/debugreg.h                    |   4 +-
 arch/x86/include/asm/fsgsbase.h                    |   4 +-
 arch/x86/include/asm/kvm_host.h                    |   2 +-
 arch/x86/include/asm/microcode.h                   |   2 +-
 arch/x86/include/asm/msr-index.h                   |  12 +--
 arch/x86/include/asm/msr.h                         |  50 +++++-----
 arch/x86/include/asm/paravirt.h                    |   8 +-
 arch/x86/include/asm/spec-ctrl.h                   |   2 +-
 arch/x86/kernel/acpi/cppc.c                        |   8 +-
 arch/x86/kernel/amd_nb.c                           |   2 +-
 arch/x86/kernel/apic/apic.c                        |  16 +--
 arch/x86/kernel/apic/apic_numachip.c               |   6 +-
 arch/x86/kernel/cet.c                              |   2 +-
 arch/x86/kernel/cpu/amd.c                          |  28 +++---
 arch/x86/kernel/cpu/aperfmperf.c                   |  28 +++---
 arch/x86/kernel/cpu/bugs.c                         |  24 ++---
 arch/x86/kernel/cpu/bus_lock.c                     |  18 ++--
 arch/x86/kernel/cpu/common.c                       |  68 ++++++-------
 arch/x86/kernel/cpu/feat_ctl.c                     |   4 +-
 arch/x86/kernel/cpu/hygon.c                        |   6 +-
 arch/x86/kernel/cpu/intel.c                        |  10 +-
 arch/x86/kernel/cpu/intel_epb.c                    |  12 +--
 arch/x86/kernel/cpu/mce/amd.c                      |  22 ++---
 arch/x86/kernel/cpu/mce/core.c                     |  58 +++++------
 arch/x86/kernel/cpu/mce/inject.c                   |  32 +++---
 arch/x86/kernel/cpu/mce/intel.c                    |  32 +++---
 arch/x86/kernel/cpu/mce/internal.h                 |   2 +-
 arch/x86/kernel/cpu/microcode/amd.c                |   2 +-
 arch/x86/kernel/cpu/microcode/intel.c              |   2 +-
 arch/x86/kernel/cpu/mshyperv.c                     |  12 +--
 arch/x86/kernel/cpu/resctrl/core.c                 |  10 +-
 arch/x86/kernel/cpu/resctrl/monitor.c              |   2 +-
 arch/x86/kernel/cpu/resctrl/pseudo_lock.c          |   2 +-
 arch/x86/kernel/cpu/resctrl/rdtgroup.c             |   6 +-
 arch/x86/kernel/cpu/sgx/main.c                     |   2 +-
 arch/x86/kernel/cpu/topology.c                     |   2 +-
 arch/x86/kernel/cpu/topology_amd.c                 |   4 +-
 arch/x86/kernel/cpu/tsx.c                          |  20 ++--
 arch/x86/kernel/cpu/umwait.c                       |   2 +-
 arch/x86/kernel/fpu/core.c                         |   2 +-
 arch/x86/kernel/fpu/xstate.c                       |  10 +-
 arch/x86/kernel/fpu/xstate.h                       |   2 +-
 arch/x86/kernel/fred.c                             |  20 ++--
 arch/x86/kernel/hpet.c                             |   2 +-
 arch/x86/kernel/kvm.c                              |  28 +++---
 arch/x86/kernel/kvmclock.c                         |   4 +-
 arch/x86/kernel/mmconf-fam10h_64.c                 |   8 +-
 arch/x86/kernel/process.c                          |  16 +--
 arch/x86/kernel/process_64.c                       |  20 ++--
 arch/x86/kernel/reboot_fixups_32.c                 |   2 +-
 arch/x86/kernel/shstk.c                            |  18 ++--
 arch/x86/kernel/traps.c                            |  10 +-
 arch/x86/kernel/tsc.c                              |   2 +-
 arch/x86/kernel/tsc_sync.c                         |  14 +--
 arch/x86/kvm/svm/avic.c                            |   2 +-
 arch/x86/kvm/svm/sev.c                             |   2 +-
 arch/x86/kvm/svm/svm.c                             |  16 +--
 arch/x86/kvm/vmx/nested.c                          |   4 +-
 arch/x86/kvm/vmx/pmu_intel.c                       |   4 +-
 arch/x86/kvm/vmx/sgx.c                             |   8 +-
 arch/x86/kvm/vmx/vmx.c                             |  66 ++++++-------
 arch/x86/kvm/x86.c                                 |  38 ++++----
 arch/x86/lib/insn-eval.c                           |   6 +-
 arch/x86/lib/msr-smp.c                             |  16 +--
 arch/x86/lib/msr.c                                 |   4 +-
 arch/x86/mm/pat/memtype.c                          |   4 +-
 arch/x86/mm/tlb.c                                  |   2 +-
 arch/x86/pci/amd_bus.c                             |  10 +-
 arch/x86/platform/olpc/olpc-xo1-rtc.c              |   6 +-
 arch/x86/platform/olpc/olpc-xo1-sci.c              |   2 +-
 arch/x86/power/cpu.c                               |  26 ++---
 arch/x86/realmode/init.c                           |   2 +-
 arch/x86/virt/svm/sev.c                            |  20 ++--
 arch/x86/xen/suspend.c                             |   6 +-
 drivers/acpi/acpi_extlog.c                         |   2 +-
 drivers/acpi/acpi_lpit.c                           |   2 +-
 drivers/cpufreq/acpi-cpufreq.c                     |   8 +-
 drivers/cpufreq/amd-pstate-ut.c                    |   6 +-
 drivers/cpufreq/amd-pstate.c                       |  22 ++---
 drivers/cpufreq/amd_freq_sensitivity.c             |   2 +-
 drivers/cpufreq/e_powersaver.c                     |   6 +-
 drivers/cpufreq/intel_pstate.c                     | 108 ++++++++++-----------
 drivers/cpufreq/longhaul.c                         |  24 ++---
 drivers/cpufreq/powernow-k7.c                      |  14 +--
 drivers/crypto/ccp/sev-dev.c                       |   2 +-
 drivers/edac/amd64_edac.c                          |   6 +-
 drivers/gpu/drm/i915/selftests/librapl.c           |   4 +-
 drivers/hwmon/fam15h_power.c                       |   6 +-
 drivers/idle/intel_idle.c                          |  34 +++----
 drivers/mtd/nand/raw/cs553x_nand.c                 |   6 +-
 drivers/platform/x86/intel/ifs/core.c              |   4 +-
 drivers/platform/x86/intel/ifs/load.c              |  20 ++--
 drivers/platform/x86/intel/ifs/runtest.c           |  16 +--
 drivers/platform/x86/intel/pmc/cnp.c               |   6 +-
 drivers/platform/x86/intel/pmc/core.c              |   8 +-
 .../x86/intel/speed_select_if/isst_if_common.c     |  18 ++--
 .../x86/intel/speed_select_if/isst_if_mbox_msr.c   |  14 +--
 .../x86/intel/speed_select_if/isst_tpmi_core.c     |   2 +-
 drivers/platform/x86/intel/tpmi_power_domains.c    |   4 +-
 drivers/platform/x86/intel/turbo_max_3.c           |   4 +-
 .../x86/intel/uncore-frequency/uncore-frequency.c  |  10 +-
 drivers/platform/x86/intel_ips.c                   |  36 +++----
 drivers/powercap/intel_rapl_msr.c                  |   6 +-
 .../int340x_thermal/processor_thermal_device.c     |   2 +-
 drivers/thermal/intel/intel_hfi.c                  |  14 +--
 drivers/thermal/intel/intel_powerclamp.c           |   4 +-
 drivers/thermal/intel/intel_tcc_cooling.c          |   4 +-
 drivers/thermal/intel/therm_throt.c                |  10 +-
 drivers/video/fbdev/geode/gxfb_core.c              |   2 +-
 drivers/video/fbdev/geode/lxfb_ops.c               |  22 ++---
 drivers/video/fbdev/geode/suspend_gx.c             |  10 +-
 drivers/video/fbdev/geode/video_gx.c               |  16 +--
 include/hyperv/hvgdk_mini.h                        |   2 +-
 144 files changed, 1034 insertions(+), 1034 deletions(-)


From xen-devel-bounces@lists.xenproject.org Tue Apr 01 08:08:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 08:08:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.933614.1335515 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzWfB-00062d-Dn; Tue, 01 Apr 2025 08:08:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 933614.1335515; Tue, 01 Apr 2025 08:08: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 1tzWfB-00062W-Aa; Tue, 01 Apr 2025 08:08:01 +0000
Received: by outflank-mailman (input) for mailman id 933614;
 Tue, 01 Apr 2025 08:08: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=WxAi=WT=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tzWfA-00062I-Br
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 08:08:00 +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 6c65f250-0ed0-11f0-9ea7-5ba50f476ded;
 Tue, 01 Apr 2025 10:07:58 +0200 (CEST)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-43cf06eabdaso49312215e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 01 Apr 2025 01:07:58 -0700 (PDT)
Received: from [10.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-43d82efeacasm191461405e9.23.2025.04.01.01.07.57
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 01 Apr 2025 01:07:57 -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: 6c65f250-0ed0-11f0-9ea7-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743494878; x=1744099678; 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=9bovgRmlu21D+Vno2OUk1sYiIkjhw0RBe5xo/egaiZs=;
        b=NpB8e48VXwd1zim59WJ5ywPZVpyfAn61DnsHiLoDveakU94xmTsy8bjbnM6vvErdn1
         9CXmgO3/wiim++K6p162MSk8RURYuc03dChGJCJIbXWMs7pO/jqz6be+CaUVzfUAaNsq
         JqQAzytbbX3LdyJYWIxlwLd5Fo9b+eihw93zv4AxOFb1o2WTUQP2ey8WCPdzECHNLCiJ
         Aq1AloN9Gfx6m4Re3LnCjSubam1SifvZXYZ2jHtmJN8A3C5s0ScbrwcAp3y3jBoQ92fo
         8siiuZYjSi6ja6ULhk4rmuC6GN/kCh/93+Q/U4NG9E/0/2zvGvouE61gkgrH+ZGxCFPe
         ORDA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743494878; x=1744099678;
        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=9bovgRmlu21D+Vno2OUk1sYiIkjhw0RBe5xo/egaiZs=;
        b=HRc63DDqx0fGgeNILpLhNkVKSb6ZzlIskHS1Z6bmcVkWmRuyxueCsRcwa+fcUImVF9
         mvTaPOGPHkhSp+WZpYEfn4uq4m3cbjwKv2sGAlUOI/ASsLjwxIhdQ/dvlw8xGxN+17GU
         YmWT/tKlHzRu27OC2H2HUSizB35y4bxH3FoKkmJ9ApSpxwPYTWGMd28lzntMdYuCvrxX
         0LGIwLmzipvgdThxWYyMmKwsfZrhozqNUz87mipxGE3cKmh3BLwlp9l1kXoCl+gfFz7c
         U4D3/52UWmQd1CSMg+w+LlX96ypEnHCE99qUJxtcGM5kx5x6FxqJexfzFYsCNURrqWSG
         mxXw==
X-Gm-Message-State: AOJu0YxTIOZrw51RcxpiBYtEPeQ2pkOa4jfOv/j1U6248wMFMKXI40VI
	LHJEfwDVlpO89/PCnU/7G0Tv4AEhD2OzDMtFVwtWA03YoJBJ1xNI3+mP8B006IXtPYUmz1gNl2c
	=
X-Gm-Gg: ASbGncvgzn/zPM/G4ZKG1QvF38k2YilKFoCAnrYkx6ecaK3a6gee+Wabc5UOm3jhmgx
	pQb4HXAfw97IscbLKa/8V+YV6pklyxnyZnkXGaYAJJIXj22jw+B0Z+rV/bv+WsW17A+h0r5uoov
	NwsmPqXCRota2lXeAb1huZRgwjOG8yLbvi/xbHWYthrrF73cCrAsTx9R87Lrugjwp2aG7Po1eGw
	gLAAc1szz6u9CpgsU7zvZaMdAqGqO5ZHNpfvZk3KzBTHnkqBQR+nOuSy1Cl7MkfnelHS0Rnr/46
	OkhW4QMGj7jaupqyuwnDsoYbh6rh8w1JghIgYXWH4Hma69rP6ZoSM/e3bTUtuNID7N1qSjH3Qtz
	5OsJ70zhV3ZGrKx9vRpFtF3cSDHNRoA==
X-Google-Smtp-Source: AGHT+IH0rv3a5YpQckKPKHlRaLMLEdQM+0krR5o68S2MEJpGHPxhfIOkBBC+liNZvHDX239H8OIxWg==
X-Received: by 2002:a05:600c:1382:b0:43c:e7ae:4bc9 with SMTP id 5b1f17b1804b1-43db61e0348mr88094395e9.1.1743494877808;
        Tue, 01 Apr 2025 01:07:57 -0700 (PDT)
Message-ID: <cc53bc20-51f4-49f9-b35c-77805147e603@suse.com>
Date: Tue, 1 Apr 2025 10:07:56 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Domain IDs and Capabilities
To: Jason Andryuk <jason.andryuk@amd.com>
References: <0dd25ebd-34f2-4391-aa08-3d873ec72347@amd.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: <0dd25ebd-34f2-4391-aa08-3d873ec72347@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 31.03.2025 23:46, Jason Andryuk wrote:
> It is useful for a domain to know its own domid.  Xenstored has command 
> line flags to set --master-domid (the local domid) and --priv-domid, but 
> it would be better to autodetect those.  Also, domids are necessary to 
> set xenstore permissions - DOMID_SELF is not supported today.

Setting permissions for oneself?

> Juergen already implemented a get_domid() function for Mini-OS for a 
> xenstore stubdom to query its own domid indirectly through event channel 
> games.  That can be re-imlemented in Linux userspace, but it needs the 
> unstable xenctrl library to query event channel status.
> 
> x86 HVM exposes the domid through a CPUID leaf, so it isn't actually hidden.
> 
> Should I add a hypercall to query a domid?  An alternative, for ARM at 
> least, is to expose the domid and capabilities in the domain's DT in 
> /hypervisor/domid and /hypervisor/caps.  I've tried this out as just 
> dumping the domid and caps as uint32_ts.
> 
> Reviewing 
> https://lore.kernel.org/xen-devel/20231110113435.22609-1-jgross@suse.com/ 
> it seems like both a hypercall and an arch specific means might be possible.
> 
> XENFEAT could be extended to exposed finer grain capabilities: 
> XENFEAT_{control,hwdom,xenstore}.  This is easy.  Seems a little bit 
> like a mis-use of XENFEAT to me, but it works.
> 
> If generally exposing domids is not desirable, they could be exposed 
> only to domains with capabilities since those are not migratable, AFAICT.

Since guests have ways to figure out their IDs, there's probably nothing
wrong with having a dedicated means for them to obtain them. It just needs
to be made very clear that the ID can (and, at least for now, typically
will) change across migration. As to the mechanism thereof, I stand by my
views voiced in that earlier thread you point at.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 01 08:42:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 08:42:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.933640.1335526 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzXC0-0007JR-1J; Tue, 01 Apr 2025 08:41:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 933640.1335526; Tue, 01 Apr 2025 08:41: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 1tzXBz-0007JK-Tr; Tue, 01 Apr 2025 08:41:55 +0000
Received: by outflank-mailman (input) for mailman id 933640;
 Tue, 01 Apr 2025 08:41: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=FaGF=WT=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1tzXBy-0007JE-NY
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 08:41:55 +0000
Received: from NAM11-CO1-obe.outbound.protection.outlook.com
 (mail-co1nam11on20624.outbound.protection.outlook.com
 [2a01:111:f403:2416::624])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 274c06f8-0ed5-11f0-9ea7-5ba50f476ded;
 Tue, 01 Apr 2025 10:41:53 +0200 (CEST)
Received: from DM4PR12MB8451.namprd12.prod.outlook.com (2603:10b6:8:182::7) by
 DM4PR12MB6544.namprd12.prod.outlook.com (2603:10b6:8:8d::6) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.8534.54; Tue, 1 Apr 2025 08:41:45 +0000
Received: from DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::b04e:2da5:7189:4c4d]) by DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::b04e:2da5:7189:4c4d%6]) with mapi id 15.20.8534.045; Tue, 1 Apr 2025
 08:41: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: 274c06f8-0ed5-11f0-9ea7-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=OKoAoGXkM+PV50GEaWmLRVErzU6oL9J0kckPgrAsfzsKrAqTcIcIdBlxGrOUGCJyd9i+yk+Ixn/GZ1k5lkQ9C8CviX7yYJJdhihAVWYvjRK5kdrGkjKGOb5CUMal6ZB7iz9GaJawR0Aa3gtLk41DPDdoV1jh2/DtUe2hVbEcwDseLvgJ23/ysYoYQ8qxSQLqVzlwV2oxagmO2mhhZEnmaMW4o1IDufxqEu1Husxe6/ST45t2eL8bDVv+qQoefJzdPccn30uIQHJs67mVzqCI9MwsCO5w2pwQL3HO/y9JMDhtRKg4t27KIr+ZK0jpiVysZ7e6qxyG2rXoNj40OUqpNQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=BNXJ/K7D+4UO5wnw40yPCH7jryRqnk8zYHkM2mCKS5s=;
 b=t2ekMYLZjuFBox/zh+rQX/uP21GRHjyMyVMk1oIsODIJCv8WKQl3WFMCBkC4DxmjVb4Qsr0UlmAkDbyAa0/fI6bxwyzLIOHvKZyJtHDqRDMNQCA5aZkUJtcMHUCPkVKwip0+KrdBKQIbu9g7WWIJTxwhqByd9ouFA0fT/SyZUDTlCzwXylPzB07EU9nHY9QW6p4ZY9l0LBiLVn3lPXgnq930yIHEGgc+VX2TQgAaNh/YS/Y/mcrCVXzpaK6UnCmxJ2uw50SdP5CdB23fS7qdM8NHSmK+mYghp8lH7p1fo3B4O6lngDGKXxlZIfLVU77Ng74EBa+aqsKn2aH7CuYqxg==
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=BNXJ/K7D+4UO5wnw40yPCH7jryRqnk8zYHkM2mCKS5s=;
 b=lfgTdvCQrJi/pyYAK7NEAYyxzLEpzddvbgO9VFhFF1EkP/OI6CpqqhAycqSZxwcMUi5Tz5td0NL8aAx4tjubx7uPeuBhEZJVwth7Z4kpGg4WQcJkKb12NzHcsPVGKj89faZhLbgEgxjEbqFv5lqVr6SBnyE9KeXhzlM+IHc55yA=
From: "Penny, Zheng" <penny.zheng@amd.com>
To: Jan Beulich <jbeulich@suse.com>, Stefano Stabellini
	<sstabellini@kernel.org>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, "Huang,
 Ray" <Ray.Huang@amd.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, "Orzel, Michal" <Michal.Orzel@amd.com>, Julien
 Grall <julien@xen.org>
Subject: RE: [PATCH v2 01/19] xen/x86: remove "depends on !PV_SHIM_EXCLUSIVE"
Thread-Topic: [PATCH v2 01/19] xen/x86: remove "depends on !PV_SHIM_EXCLUSIVE"
Thread-Index: AQHbnhNmXaX6/9Ps5keSZ4aq1y0sz7OJPdwAgAOSgQCAAbXbAA==
Date: Tue, 1 Apr 2025 08:41:45 +0000
Message-ID:
 <DM4PR12MB845170590A152B7AEF4D4153E1AC2@DM4PR12MB8451.namprd12.prod.outlook.com>
References: <20250326055053.3313146-1-Penny.Zheng@amd.com>
 <20250326055053.3313146-2-Penny.Zheng@amd.com>
 <alpine.DEB.2.22.394.2503281655590.563920@ubuntu-linux-20-04-desktop>
 <6b3c3baa-331c-44fa-9085-9b0bf72c62a1@suse.com>
In-Reply-To: <6b3c3baa-331c-44fa-9085-9b0bf72c62a1@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
 MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_ActionId=edf9968a-536f-4ae0-969c-cffbd64106b9;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_ContentBits=0;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Enabled=true;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Method=Privileged;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Name=Open
 Source;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SetDate=2025-04-01T08:39:29Z;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Tag=10,
 0, 1, 1;
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DM4PR12MB8451:EE_|DM4PR12MB6544:EE_
x-ms-office365-filtering-correlation-id: e022503f-549f-4a8e-9565-08dd70f908e3
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?VVFuOWtMVTVxSHA2QXNUNjk3KzFFcFlkdTZzYjJBc0pjY3ZiZXZRMWFSQ1dC?=
 =?utf-8?B?Umx6dVk2NlArdG5uRnQrN1I2TmRjY01vVjkvWmFVRGFPd245OHJpb2hyaUxU?=
 =?utf-8?B?Yk1paDRBaHlFWjgxSDNuakowZXZJaVUwMGQzbnU4OVFtbUp4a0Nrc3pFa0hr?=
 =?utf-8?B?VDJ2WnFYaHN3cWhLejVtUjFQUjlOQXVtdzA3YUk0QStrd3RMRTVWTm9CSndv?=
 =?utf-8?B?aFlZQVducVluVkJNNEZrdVMyNVAvTzFGQVByWGtpdC9xcnFncXNxNWtONll6?=
 =?utf-8?B?dHZnZjRxL01xUjJsWEhQZThuTjk3V0FIYm9EWk9wME03eVNSbjRmTVVWZFJL?=
 =?utf-8?B?VGR3Z3gvY2hHUXpMZ0JJdElWRFNnL2RpTEdFVEY1UlpBY2NVV0tBbmgvdllK?=
 =?utf-8?B?eHo3VGhZV2tpWW9zY3lZS2JFVkt5Y2NWV2lTMUovell2UW1rNytMZXhnTlZt?=
 =?utf-8?B?cG1yV0ExdzkxeGhyeUFhckFUYUdSK05NenNkSnBxcDVKNHd0cTZCVlRUOXpa?=
 =?utf-8?B?S2I4WHlQOW81UVgwR2RYUlhRTENjdEM4Ylg0K0pudSttaThqcThZNVRxYUxV?=
 =?utf-8?B?VHhnblVOSW1EZVNyOEI5V1hGRUVzd0VkeXI5YXlFUlU1Z2t5NTFPdFAvQTlB?=
 =?utf-8?B?TXFwK1I1ZjZWWEJnM25DYWkyQzZnNG1MdnI5TURKeGZKeVlkcnRHUWszWmxB?=
 =?utf-8?B?bGRTL2FRZG9vRW5sSFJUVFlTTmYyblE4MjVRM3RrSEdNWkhJS1Y1anZ1ejF5?=
 =?utf-8?B?U2lESVQxdUIydXpDd21IWXNaWk5udEJYMzZuK2NWMTVIbmtlbGhCeXRLQmlX?=
 =?utf-8?B?cDlOWDI3eFBSc3gyZG5RdTBlbGJ1QTJTVU1wUUd6SGNZSzN5dVpvMC9NNmtQ?=
 =?utf-8?B?cHk0TTRXRjJjTjdBMVQ5cm0yQUVkNy95cTNPb0VVNHlhKzkwQ2dKSC9RTHNh?=
 =?utf-8?B?S2ZTVWl3ZGo1NW12bWM1K3owNFd2bGNJRUFtbjBGY015M2xnOGxoc2t3WVJm?=
 =?utf-8?B?WEUxWHFZQjJVZk5TQjJEMXBiSzhpTXUxZ3Y5ZVdxdm0yN1liSHl0c000Mk1U?=
 =?utf-8?B?VnM5K3UxNHRvTUM1Rk1Rek95KzJ3dE54bG9UVUQxUTRSU1E4Nmx4ZENzQjdF?=
 =?utf-8?B?blpLb2pJYVJQNTdRZjJDRG5wbmIrZ3F2eENVT0JvMDBvY2UzUXRhRlkwWmVo?=
 =?utf-8?B?OU9sbDhFU2NNQVNQUlpMUkZiQ2tBRDU1TlVva1FVeHUxREpOQWtWdkRERzdU?=
 =?utf-8?B?NUFCdmRIbERvUkE0bnovemVvNi9QOUQyVE1vSmRYWWd4VE95eDdMM25tVkJK?=
 =?utf-8?B?MjVVaFVhVU41UFBNZ3hjL0NLblZFSVE1VzNXbzNMVFJKYkVnVzZiSFhiNm5C?=
 =?utf-8?B?UTIrU1ZZTmlkWVFQMlFnRXFPekI4RTJFc2dxNm9ORklxQXRkSmxMbkh2dDhT?=
 =?utf-8?B?WkFsa0xCR0ZVNThWeHdMeStDb3hPbjZsbDFtL1NBT2F3UGRHbFRJcnRUU0c1?=
 =?utf-8?B?MVlhRHVpbGVNdUJYek9NdmVudjFzeXkydnFOOWo1U2FiUi9IM1V2ODBJUUtE?=
 =?utf-8?B?L01lOHdEMDJhaHF2SG9zUEpjSzAxVUZ5dmt4NkRSb1pVSU1aMzNZVGZhRnFy?=
 =?utf-8?B?K0U0Z1hSdEUzN2o5RTVkU0FkSjNwdUxOalR6eFBGdTR5MStKeUhDaHd4K25J?=
 =?utf-8?B?RmxrNFRwSy9YYk9rcTFKcmx0SDhhdS9TNGdHUlNmOXcwS0dkdXVwM2ZDUkEx?=
 =?utf-8?B?RXpZZjRob2JNZmdaaWJjZ3dZeE04MTF4ait5ZHVpZFVlTDFDeis5MjhuSysw?=
 =?utf-8?B?eGxxS0RqVnh4Q0s2cnZIYWprUk9iNHZLL2dXaUI0bi9Tdy9xckxKcTBNdzFu?=
 =?utf-8?B?TzZPSTZTcVpTanVMOWJOVmtzTzNjRW9FSWs3Mi8xTHlwYmc9PQ==?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB8451.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?VHJGdnc5RjhrQzhXUmdtcW5iS2pTNDJZdENuZGRaNC9GY0U2MEp3cG1NODZI?=
 =?utf-8?B?Tk5ydU80UFIxdHFQaFhPak9CRWR4NGZ2MVRlMVFIRk01MGcvdUx0bkdtRUly?=
 =?utf-8?B?TGJlU2haQVhXS1JsTUk5VHdvdU92SGNSdHYva1RHOFhicUlZNU1TTHJIUnQ4?=
 =?utf-8?B?TGNpcXg5YzNveWwvRTQ4Tms2YzdaYldwRTgxSFRBdTBaMGxUZk9xaDg0SGd5?=
 =?utf-8?B?TlI2cEFadXBnREtVZFlqaVZxYTB0cnBGU1Y1ZVJJbEtML2c4RVZZc2YwQ2c0?=
 =?utf-8?B?OXlYN1hQSFEwdGgrTzM2WWdQZHZ3cnpJSUZwRWxIalJ1ZkJ6T0wzRXJjRnc3?=
 =?utf-8?B?clRwMTlHdGozdmczTUJEVjBDZ0tTeTBxYXh4REM3WFV4M3NYWlVjWll1SW9u?=
 =?utf-8?B?N0V4SEpvbE1HaS83aHRMZFEyUm9FdmdkcDNwRUVPZmwxMTB4Q21iRkN0dTF0?=
 =?utf-8?B?MGlaMnZack1xV214N2p5T01aSEM4UWt6UUdRQW5ySmdqcE5CR0E2Z3JrTDd2?=
 =?utf-8?B?dW4xOCtqcXZyR2ZGTDNUZWh5UEg0RC92aHgrV0NFQlhCYWcrSUl5L1BmZjNi?=
 =?utf-8?B?N1MwbVJ5Z0N4bnlLdjltOXcxWGN1cUw4YzlsZ1NIMU9xL21YenIwMU1YampZ?=
 =?utf-8?B?eDhiZHE0cGlWUTVkbmI0ZUd1ZEpnbkNQc0tUMHprbm5mVWd3aGhrY1ViY0dF?=
 =?utf-8?B?WVdsd2R0STNFVjhYdkNGOExZT3o5V1ZyMEY4bUVIRnVIa2ozc0FMZisreGhx?=
 =?utf-8?B?ZkI3WEtQNUN3Z2pwcVJPWDhucEdrMFZXc3cwZXNmOXpidVF2NkpQTzRXK0lZ?=
 =?utf-8?B?QzUwMWNFL0loUG9qUG1XaXkwZXl3b01JRUp3K3F5VVEvWlgvTS83K1BDTWta?=
 =?utf-8?B?V3k5RU1TRWRvQTdEWCtNQThVZkZnWlF6YmFNRmljcSswUmRPNVJXVVN6eFht?=
 =?utf-8?B?MzhmR3hZaWdaUFVNTC83Q292MzI5Vk5FYUl4ZmIzMS9jOFFSQlk4c2J2S3Zw?=
 =?utf-8?B?K1JmMmtabGdzUzRXc3UyaWEzSzZoV1BYRWxaOWpWcTdXZG5vQXF3ejd3OXJX?=
 =?utf-8?B?bmY0b2pGSnNpUzN4U3hlVEl6ZU1mUjNIb2JIMUxCMGhZM1lIM3NIZ2NsdW1l?=
 =?utf-8?B?YnpPbEhib2NTakg3ckR6VitESHd0cFFQMjdpVURZWWdHOFdKQzRRZFBHeXFZ?=
 =?utf-8?B?MVZmRkZibkF5QWI4WndYS2ZLdVZuTVdTblJoeE9MbGJxNG95cm9kaVFSOElm?=
 =?utf-8?B?U2p5NTlVKzB4c05pKzVhSGdDdW5TN0RmMDljMGJpTm5qdXRaUGtlQ2lZVXBr?=
 =?utf-8?B?SVFlVmkrUDZPTHZNYnh3elpsd3NTRUVsaDJmd2hlZFR5ZXZkNUpUY3FZZXFY?=
 =?utf-8?B?L3pwTzVKemVxRGlsL3FVbWcxVzhaaC9UeEczdGFDU3RHNzZndmxaUC9JYVlY?=
 =?utf-8?B?U0dnOUR0dkNjUzNrcU80ZU9JZWlqY0V5cnpBdFA1QUZaRFNRMmFvR2V3TzE5?=
 =?utf-8?B?akRMSmlkNkMxZitTQnZWWlJMRzZSaFR6L3QxdER5YmFYSWI2emJkWTNkUjNi?=
 =?utf-8?B?MnhNdkxxWXBsRDFhYmFNRmYyUjUydzhzdXZyQzBtSFlVQ3Z3dWd2Q1ZucDRq?=
 =?utf-8?B?eUNZS096WWtJK082MzdKeXJtR1FyQnlVSGVOd01zT240dlQwSjdYcVM5c3RU?=
 =?utf-8?B?dkNYS3JVc1JmbjRNQ1hVZXhkUkJlek5UN2RYMW9HRUI2UDJycmZiV0VsWjF6?=
 =?utf-8?B?T2pGU3YvTnVQRTQvZDNmM0Y3SzFnTHBlVGNSS1Z3VU92SSsydi9vY1NIUUQ4?=
 =?utf-8?B?WDVpSU9aK0pQZGVGZmppaHVJQjR0WGhsbDhTRnMwTWthU3NtMkRUQXIwSTk3?=
 =?utf-8?B?SnFzcGVBVjRBVlorWmUzVzZLWWdjK0xSTFdOTnVUQjI4RmswTXA2akdhWVg0?=
 =?utf-8?B?ckp6bXZnRkh0RWtpRm1LMDNRZG1DYlNUMjRJWmIrN2lNTFB4cGpmeHgvQ0h0?=
 =?utf-8?B?bC9QRjNPcEVKRWpHUElReEp2anNtS2JvZU9CeHVUMjJBVE8rZy96eHFMREtJ?=
 =?utf-8?B?YmQ3WUhzODBISU5vb0s3RVBieUpmV1JXTkc3bmw1YUVrZmJlamIzT29jbHpU?=
 =?utf-8?Q?tKvk=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB8451.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e022503f-549f-4a8e-9565-08dd70f908e3
X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Apr 2025 08:41:45.4274
 (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: Ng5wpaR6HjUQw6vU0f7ESaeLOqZXtODqS8N1H1I3mF6dtMIombd06LfJT5pa11uBrT7qor0DdDy+xpCUHft5wQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB6544

W1B1YmxpY10NCg0KSGksDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTog
SmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPg0KPiBTZW50OiBNb25kYXksIE1hcmNoIDMx
LCAyMDI1IDI6MzAgUE0NCj4gVG86IFN0ZWZhbm8gU3RhYmVsbGluaSA8c3N0YWJlbGxpbmlAa2Vy
bmVsLm9yZz47IFBlbm55LCBaaGVuZw0KPiA8cGVubnkuemhlbmdAYW1kLmNvbT4NCj4gQ2M6IHhl
bi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZzsgSHVhbmcsIFJheSA8UmF5Lkh1YW5nQGFtZC5j
b20+Ow0KPiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPjsgUm9nZXIg
UGF1IE1vbm7DqQ0KPiA8cm9nZXIucGF1QGNpdHJpeC5jb20+OyBBbnRob255IFBFUkFSRCA8YW50
aG9ueS5wZXJhcmRAdmF0ZXMudGVjaD47IE9yemVsLA0KPiBNaWNoYWwgPE1pY2hhbC5PcnplbEBh
bWQuY29tPjsgSnVsaWVuIEdyYWxsIDxqdWxpZW5AeGVuLm9yZz4NCj4gU3ViamVjdDogUmU6IFtQ
QVRDSCB2MiAwMS8xOV0geGVuL3g4NjogcmVtb3ZlICJkZXBlbmRzDQo+IG9uICFQVl9TSElNX0VY
Q0xVU0lWRSINCj4NCj4gT24gMjkuMDMuMjAyNSAwMDo1NiwgU3RlZmFubyBTdGFiZWxsaW5pIHdy
b3RlOg0KPiA+IE9uIFdlZCwgMjYgTWFyIDIwMjUsIFBlbm55IFpoZW5nIHdyb3RlOg0KPiA+PiBX
ZSBpbnRlbmQgdG8gcmVtb3ZlIGFsbCAiZGVwZW5kcyBvbiAhUFZfU0hJTV9FWENMVVNJVkUiIChh
bHNvIHRoZQ0KPiA+PiBmdW5jdGlvbmFsbHkgZXF1aXZhbGVudCAiaWYgIS4uLiIpIGluIEtjb25m
aWcgZmlsZSwgc2luY2UgbmVnYXRpdmUNCj4gPj4gZGVwZW5kYW5jeSB3aWxsIGJhZGx5IGFmZmVj
dCBhbGx5ZXNjb25maWcuDQo+ID4+IFRoaXMgY29tbWl0IGlzIGJhc2VkIG9uICJ4ODY6IHByb3Zp
ZGUgYW4gaW52ZXJ0ZWQgS2NvbmZpZyBjb250cm9sIGZvcg0KPiA+PiBzaGltLWV4Y2x1c2l2ZSBt
b2RlIlsxXQ0KPiA+Pg0KPiA+PiBbMV0NCj4gPj4gaHR0cHM6Ly9saXN0cy54ZW4ub3JnL2FyY2hp
dmVzL2h0bWwveGVuLWRldmVsLzIwMjMtMDMvbXNnMDAwNDAuaHRtbA0KPiA+Pg0KPiA+PiBTaWdu
ZWQtb2ZmLWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQo+DQo+IFdoZXJlJ3Mg
dGhpcyBjb21pbmcgZnJvbSwgaWYgSSBtYXkgYXNrPw0KPg0KDQpJIHNhaWQgaW4gdGhlIGNvbW1p
dCBtZXNzYWdlLCB0aGlzIGNvbW1pdCBpcyBiYXNlZCBvbiB5b3VyIGNvbW1pdCAieDg2OiBwcm92
aWRlIGFuIGludmVydGVkIEtjb25maWcgY29udHJvbCBmb3INCnNoaW0tZXhjbHVzaXZlIG1vZGUi
WzFdLg0KU28gSSB0aGluayBJIHNoYWxsIGFkZC1pbiB0aGUgb3JpZ2luYWwgYXV0aG9yLCBpZiBp
dCBpcyBub3QgdGhlIHJ1bGUsIEknbGwgcmVtb3ZlIGl0Lg0KDQo+ID4+IFNpZ25lZC1vZmYtYnk6
IFBlbm55IFpoZW5nIDxQZW5ueS5aaGVuZ0BhbWQuY29tPg0KPiA+PiAtLS0NCj4gPj4gIHhlbi9h
cmNoL3g4Ni9LY29uZmlnICAgICAgfCA2ICsrLS0tLQ0KPiA+PiAgeGVuL2FyY2gveDg2L2h2bS9L
Y29uZmlnICB8IDEgLQ0KPiA+PiAgeGVuL2RyaXZlcnMvdmlkZW8vS2NvbmZpZyB8IDQgKystLQ0K
PiA+PiAgMyBmaWxlcyBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0pDQo+
ID4+DQo+ID4+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvS2NvbmZpZyBiL3hlbi9hcmNoL3g4
Ni9LY29uZmlnIGluZGV4DQo+ID4+IDE4ZWZkYjJlMzEuLjFlNWRmODRiMjUgMTAwNjQ0DQo+ID4+
IC0tLSBhL3hlbi9hcmNoL3g4Ni9LY29uZmlnDQo+ID4+ICsrKyBiL3hlbi9hcmNoL3g4Ni9LY29u
ZmlnDQo+ID4+IEBAIC0xMzcsNyArMTM3LDYgQEAgY29uZmlnIFhFTl9JQlQNCj4gPj4NCj4gPj4g
IGNvbmZpZyBTSEFET1dfUEFHSU5HDQo+ID4+ICAgIGJvb2wgIlNoYWRvdyBQYWdpbmciDQo+ID4+
IC0gIGRlZmF1bHQgIVBWX1NISU1fRVhDTFVTSVZFDQo+ID4+ICAgIGRlcGVuZHMgb24gUFYgfHwg
SFZNDQo+ID4+ICAgIGhlbHANCj4gPj4NCj4gPj4gQEAgLTE2OSw3ICsxNjgsNiBAQCBjb25maWcg
QklHTUVNDQo+ID4+ICBjb25maWcgVEJPT1QNCj4gPj4gICAgYm9vbCAiWGVuIHRib290IHN1cHBv
cnQgKFVOU1VQUE9SVEVEKSINCj4gPj4gICAgZGVwZW5kcyBvbiBJTlRFTCAmJiBVTlNVUFBPUlRF
RA0KPiA+PiAtICBkZWZhdWx0ICFQVl9TSElNX0VYQ0xVU0lWRQ0KPiA+PiAgICBzZWxlY3QgQ1JZ
UFRPDQo+ID4+ICAgIGhlbHANCj4gPj4gICAgICBBbGxvd3Mgc3VwcG9ydCBmb3IgVHJ1c3RlZCBC
b290IHVzaW5nIHRoZSBJbnRlbChSKSBUcnVzdGVkDQo+ID4+IEV4ZWN1dGlvbiBAQCAtMjc5LDEw
ICsyNzcsMTEgQEAgY29uZmlnIFBWX1NISU1fRVhDTFVTSVZFDQo+ID4+ICAgICAgQnVpbGQgWGVu
IGluIGEgd2F5IHdoaWNoIHVuY29uZGl0aW9uYWxseSBhc3N1bWVzIFBWX1NISU0gbW9kZS4gIFRo
aXMNCj4gPj4gICAgICBvcHRpb24gaXMgb25seSBpbnRlbmRlZCBmb3IgdXNlIHdoZW4gYnVpbGRp
bmcgYSBkZWRpY2F0ZWQgUFYgU2hpbQ0KPiA+PiAgICAgIGZpcm13YXJlLCBhbmQgd2lsbCBub3Qg
ZnVuY3Rpb24gY29ycmVjdGx5IGluIG90aGVyIHNjZW5hcmlvcy4NCj4gPj4gKyAgICBGZWF0dXJl
cywgbGlrZSB0Ym9vdCwgc2hhZG93IHBhZ2UsIFZHQSwgSFZNLCBIeXBlci1WIEd1ZXN0LCBldGMs
DQo+ID4+ICsgICAgYXJlIHVuYXZhaWxhYmxlIGluIHNoaW0tZXhjbHVzaXZlIG1vZGUuDQo+ID4N
Cj4gPiBJIGRvbid0IGtub3cgaWYgd2Ugd2FudCB0byBhZGQgdGhlc2UgdHdvIGxpbmVzIG9yIG5v
dC4gRWl0aGVyIHdheToNCj4gPg0KPiA+IFJldmlld2VkLWJ5OiBTdGVmYW5vIFN0YWJlbGxpbmkg
PHNzdGFiZWxsaW5pQGtlcm5lbC5vcmc+DQo+DQo+IEkgZG9uJ3QgdGhpbmsgd2Ugc2hvdWxkIGFk
ZCB0aGF0LiBJdCdzIGFsc28gd3JvbmcgZm9yIHNoYWRvdyBpbiB0aGUgZmlyc3QgcGxhY2UgKHdo
ZXJlDQo+IGl0IHdhcyBhIGRlZmF1bHQgb25seSBhbnl3YXksIG5vdCBhIGRlcGVuZGVuY3kpLg0K
DQpBY2ssIEknbGwgcmVtb3ZlDQoNCj4NCj4gSmFuDQo=


From xen-devel-bounces@lists.xenproject.org Tue Apr 01 08:48:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 08:48:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.933659.1335536 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzXI6-0007wI-La; Tue, 01 Apr 2025 08:48:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 933659.1335536; Tue, 01 Apr 2025 08:48: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 1tzXI6-0007wB-IT; Tue, 01 Apr 2025 08:48:14 +0000
Received: by outflank-mailman (input) for mailman id 933659;
 Tue, 01 Apr 2025 08:48: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=yHas=WT=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1tzXI5-0007vn-9J
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 08:48:13 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on20609.outbound.protection.outlook.com
 [2a01:111:f403:2414::609])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 09ae657d-0ed6-11f0-9ffb-bf95429c2676;
 Tue, 01 Apr 2025 10:48:10 +0200 (CEST)
Received: from BN9PR12MB5273.namprd12.prod.outlook.com (2603:10b6:408:11e::22)
 by CY8PR12MB7609.namprd12.prod.outlook.com (2603:10b6:930:99::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.47; Tue, 1 Apr
 2025 08:48:06 +0000
Received: from BN9PR12MB5273.namprd12.prod.outlook.com
 ([fe80::cf66:58ab:47be:4b13]) by BN9PR12MB5273.namprd12.prod.outlook.com
 ([fe80::cf66:58ab:47be:4b13%5]) with mapi id 15.20.8534.045; Tue, 1 Apr 2025
 08:48: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: 09ae657d-0ed6-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=GIfBi4cSdzCdJnc7rHDxAdw8ZB2hLQQyoGP27wFSBtBycgsvzv9f1mOhY45M68pUM2BKpmOkWAIeh66X1pCl4FE3KOlb5vJoOcb0luD6ex6D6+1s4DG8t4oy0uDCWHC6y1ba20+khUFq/gUFc8F/46yGexdGMpoFtqk2b5UkBU/5HfORnAWnTK0oo4b4IBTHE13hxUKcoqphXkgAnoVNp7/XhYYRU5uNilKsDxedlYbzRCe1hrZ96QVWwS9y0Rs/rBM3vA5Ize3QQyB6hiy0Zahs0ij8Y/C4W8u8YTEiq9reHXMu5A6uI8zeRkml4e5UrFKS1d4CGZ8OIq2M/rb6Xg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=K2XN2GRBd4VyylS6KuVM9hkU6i0nfjLQm7mE2igBJfE=;
 b=xHzqRl0iSxAMpYQmKXMD+g1F6G+70y8Tb9XJdAcaom9m99/0dJyMy2tR5FmOMw8mnd2nWXgC2fEWtIcyRtRWmJXXrh2xA7xIEELsAl/fx+PH/lviPlyMRFKC22sxfCcHCXSe+OICCVvF1rAipXsNBP6B/qMGDmC1MhXkS2At97Dr7PhGOus16DcipMWUxfvmMSvEsX1iYWs6bvJQjGXCItDoZv0XMdn2voEfUglP48oANYmu6J16XP+9+jRxzMW3pmHMD10Me0BZUZWRes57aJc2blIwpk+VougjtAuUb3lNApafgDQGiU6Z8FTVtl+8kzxP0mSaj6pM2qAomJDCyQ==
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=K2XN2GRBd4VyylS6KuVM9hkU6i0nfjLQm7mE2igBJfE=;
 b=1dw6E4TpxV9KTaKGCM/P7Xnm8AbZiLg8DtLqfFGatHhd8W71zOPdOTvQSQ6E6LoG3F6Ee7NS7UY5MziqVxja3BXuEolsZEJxF4jk+JluG6VEK3c+EOudOyqgFNBwd1vbmqz1eBTAOyXozQZo87FDB/X3+kCv4QsbFrvhZnx7LjU=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <8b524c74-a1ab-4abb-81b4-189673e8f99c@amd.com>
Date: Tue, 1 Apr 2025 10:48:02 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/6] xen/arm: dom0less hwdom construction
To: Jason Andryuk <jason.andryuk@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>
References: <20250331214321.205331-1-jason.andryuk@amd.com>
 <20250331214321.205331-3-jason.andryuk@amd.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <20250331214321.205331-3-jason.andryuk@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR4P281CA0394.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:cf::12) To BN9PR12MB5273.namprd12.prod.outlook.com
 (2603:10b6:408:11e::22)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN9PR12MB5273:EE_|CY8PR12MB7609:EE_
X-MS-Office365-Filtering-Correlation-Id: a065b101-8c64-443d-5922-08dd70f9eb84
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?bk12ZFZ5S1JjRVI3QWZXYlF4cENkenhSdjlDTXZjQVZpbC9UbDdYRXc1WFhT?=
 =?utf-8?B?b3NZOHU3UnZrMGdlbzEyK1NTQkgvT2NmWUlZM0o0Y01POFhhYjY5SHFyZkJh?=
 =?utf-8?B?aUtpS1RhU2dhQ3djcnR4c0VyVzVOMTVxOHFGTW1FZ0FUSlFRd05qa2tVejE5?=
 =?utf-8?B?bWcrcnpya0czVlo0aXV3VGdhUXkxd0JOeXk5b0loemIvdVhIdlFmamhMOVI5?=
 =?utf-8?B?cTlFbnhDM0ZyV3hwQ1dVUmdFMEFTdGtwa2Qxa3p3RWwxVXB4RnJxS09SNXl3?=
 =?utf-8?B?b3dOSmd3Vk1lK3VmY0RXZ2g5eHQvNTZYaWdTdElYUTg1a2U1Z2JzeXRkV1hP?=
 =?utf-8?B?WVh1aEtmaWszTXZ0T1ptNUt3TXRUSHBaZEpxNW12WXNoQjV0ZTZmckpkMlFh?=
 =?utf-8?B?L3ZXN2I4cUJDaDFrVU0xOTFnQ3pMMkI5VTVzUDVZV3QwRDQ3b054THhwRUFG?=
 =?utf-8?B?Y1JETjRkd3dTNHRlYVFxZU00R0kxYW9NZmJnTXFZVmxhZmVZRXZabU5WZm1P?=
 =?utf-8?B?UG5IN0czSGxNR0VxS0N1TGtxVThZYk1WaE1FYWFBN1dpK0tDV25oNUc0S2wr?=
 =?utf-8?B?d09valk3eVpWUm8zSjVCdzZ4VVRrQXY1U1dmNzlvUnB1OHM5d0l6R3VBOXR1?=
 =?utf-8?B?WCtGTWc5QU1MMFF6SXZvb3R1VVlOODBiZFdMWU1md3d0RGZBZFg4SGd2WVpZ?=
 =?utf-8?B?U1prcncwK2lsbnA3QTRPdStGOXdXTVF3NnJ0bGxUYXQ1WlprTWYrMUppNkdF?=
 =?utf-8?B?NVUrV3BIUXBOWmpQSXF3aWh0SFFIaXI2bkdWMmJtK2xEdnQ1a2dvVWlpekxu?=
 =?utf-8?B?TDFEK2ZSSHdpZUtUcmwzekYrTlJFUjB6aUFZYnpVa1dFOG42K0MwU2tnM3RF?=
 =?utf-8?B?OFdsZDF6bi9mQ1AxbmVYcEZNN0hQTGNvOXIySVZVWjhtZ3hFdFJMYjdkNm1y?=
 =?utf-8?B?Nm9lc2krU3h1MGJnVC91RVJCblRleGVZMEl6c1pkdGg3NUJ4NEVRelVqeWM4?=
 =?utf-8?B?UGwzeDZxTFFhRGh3MFRNWXRTUHAvY0hlY2E2MFNSR2k1UXExS2RoTWdPdEtv?=
 =?utf-8?B?NGhpbVVMY2JFTFVHRGVIS0VVNGpjR3lxWkhWSDlUNWJhVWdIOVhKSzU4Qi9k?=
 =?utf-8?B?T2JxdHB4R0w1TzY4RHZGQndyOGJScnRuYTdhMTZzbW5YLzAzQUFzZkk5MVk5?=
 =?utf-8?B?dkJvU2JqYW9GQVlWNDlPM0hheU1EdGtQRENkVnJEVGxDaG52ckQwZFZrUWlI?=
 =?utf-8?B?T0owN2thdlFibXRaanNqUklFSWZsN2h6a3J4MUFqNzkzZ1ZrMUtvWjlPZmgw?=
 =?utf-8?B?a2tDOWZjVTVBdng3MVVHVFdaeUdPU0RLMDF3b3c1bktIUlpXdlR0SVEvWGZB?=
 =?utf-8?B?SnhyOEhrc3VXeXliSm90OHZIeUg5VGNCcldYOEc5dHJmc20wZFhKNUFzd2Rt?=
 =?utf-8?B?dkpPYkZyM3M1Q3lpbWF3bDRaZHhwb3Z3OTlTZnB2Ykk2K0lGSzZpUXQvTW9H?=
 =?utf-8?B?T3ZPWlFLUmJMb25YYVl2QVA4OFlzeFlMaUFMcFQySk1aOUUwY3FDS1RlSEtI?=
 =?utf-8?B?V1hEcnc3a050L0UwVHZIQUY3NzgwWUw3aHVqZ0xKWW8rUzdvc1BRU1RVK3FH?=
 =?utf-8?B?RXhZZE03M2txeGNqNEpHQVBWcEhPUm41MlBFSVo2cW1NUWxzSjZFd0U1SXJw?=
 =?utf-8?B?TmMyV08rZVRLK0dUSmI0UTN1US8zRXRXZWVxNXovZk5TNVdQdGlmcERSSnZ4?=
 =?utf-8?B?SFpZeEIrVjgzeTFZR29OUVdKbFdvKy9tTitZYUpRZU9OWFJuRVU4M2pvWVhQ?=
 =?utf-8?B?TUVQSGNtcGNvdjNKckdsK3RMNDNNcnkyWm1WblhadTYxV3pVTmVUQVV6c2JY?=
 =?utf-8?Q?Bn+lJoEzZjyWw?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN9PR12MB5273.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?TWpmbXR6M0RxMHhwRi8rR2Z1MWd0aWFJUjQ5RGpudkxFSHBXRytvL3dkYnRi?=
 =?utf-8?B?aHpkcTlZUFliVE1IYVcrWDdlVG8zMTR2Q0xpZTIzT3NXb3lyUE4za1MxTmRq?=
 =?utf-8?B?NksyeEtTUTAzenhwcjM1dU5waU0yTXNpV0NDdVpGL2dYQzREV0tPYnhTejIz?=
 =?utf-8?B?QVlub0lKOXZiaVNXcXhjMlBNZHlnbXRwUmZ2cTJ3U0FJdXlYbmViSjRjR1Bi?=
 =?utf-8?B?bVIwMmwvaTIzNlgrUmZkN240RE1GT3BCWjF3aWFiS1pPK0pPbDdFTWtHTXRa?=
 =?utf-8?B?b05aK1EwQ21jSVBIVlVBQUZ0K3lwQVVUU1lqdDYrd2ljV2FFZHc3ZS9nd3ln?=
 =?utf-8?B?UzV3Z3JBZFZtUFdQa2kzWmtLVE9mY3BleXNKNEVWQkdaRmZPdXR6ZklDQ29R?=
 =?utf-8?B?dWRsaU1hd1crYjhsdWhKT0Y1Smpac3d5Q0t2YUpKSEpLSmdWcWhGYmZsTXBU?=
 =?utf-8?B?SGQ2VUhGTkh6bG40ZU52VVlwL3dqaEovWDRSN2x6WGlBV3pJWUxYbDNqdGp6?=
 =?utf-8?B?Q0FJZlFCU1FsV21nQ1hpMGk2MFZKRHNNZkxnVU1pMy9yK25VRHM4T1RnNEtR?=
 =?utf-8?B?VHYxajhicmFuSW51TngzZ3VoSzVQeWQ4bnJ2YUd4b3JQd1hyZW9RSStZUmZT?=
 =?utf-8?B?RWppZ1pYQTl2R2NCenYxOHNQaEJ6NUVhbEV2KzBSblNXVDYvMU1jc051WWhC?=
 =?utf-8?B?WW9uN1lPQjRNVGtOR3JCcUVPckM3V2t5c0VjcWY4R0JEQ1F2bS9lM0swQ2JN?=
 =?utf-8?B?K2xPZS9TSDBlUHpnbmVXd2lsYVVWNzBVVURhTjFqakQxblMyckU1cGRFMFll?=
 =?utf-8?B?NWlyTU9yVnVYaVkxbGw0SUNndExCVlAvcHVpVXFHZnQxazdCVHBMbW1mRDYz?=
 =?utf-8?B?bXlvSTJ0UFRuY01xeHJKVGxmUGljaWgzWXQ3SmdHaXdGRVg3K0QzYXJvNjVm?=
 =?utf-8?B?NTA4M3hMV25tR3ZkYnVadEhpMzU5dWlSVmQ4c2hkYmhOWFdKc29KdTlHMTJP?=
 =?utf-8?B?K3VnTXlXVXpBY1V4b2tVTEhid3pqMVNvejBVZTdCRlhEUmdtS3dHQkk4bit4?=
 =?utf-8?B?cGd3WjFTR1BiMmVSRXo5U1B6WEp0UFVPTHo0VFpBQW5NS1JaazJJVGdQeFdV?=
 =?utf-8?B?MEdBTHBVczFOWktOc3BxTUxoZUhWUnhNdVRmWTI1RVlTU1lqVUo2a0M1dnFu?=
 =?utf-8?B?UGpDTFhQY0JKSHRHMjhhZWtvdnVuU2tUcC96cTdFUC9sR1FsRk9pQ1BmeVRs?=
 =?utf-8?B?TFA1WDdsOERpd2xxR3FRQ3dMTTJYMS92TzJNUEZKQi82ZGV5SUdpcmpYbVox?=
 =?utf-8?B?S0VJYkd6WThLRTE0SG9TRlNrcGJpOWdpNEdIUks0UjhmdXREV2RzVlhsTUNB?=
 =?utf-8?B?UGxZc1VSOWMzUkowd2RaUTdSL1I3YnBhcmVqV0d6dzh1Y1FCakNlVktDdGJU?=
 =?utf-8?B?VThOUW82RVBJTGZRRHRsUXB4VEM3WTZtL3pJRHZZYVdyU09pT0NrbGxDUjVS?=
 =?utf-8?B?WEErWndEQjdJKy96c2RGUmFLQ0lUd0l3REgyM3BRUHI5cjJrYkMva0d5MzZq?=
 =?utf-8?B?OG5xRmVkYUNWMS9VQXUwMkFDMWgvUFJUQzE5cWpDOWhuajFLWVdQQko4WjNw?=
 =?utf-8?B?WlZBd1hsZEliMFY0eHlxalh1R0N1NkszM2pHWmhpTDYxbnNIbzhITlVXNDJr?=
 =?utf-8?B?Yk9JdEl6RDF6bXUwOTFXQ1FHS3ZYNUZINUgvdjNQZEZCRkJjUVA2VTM0cW5y?=
 =?utf-8?B?a3Z0dkw4dkVrY0VHZThmbTgzcGMyVVh2dktGYTlPdmxCYjY0Ynl6OUNVcGw0?=
 =?utf-8?B?Nmx1R1J5c2pBRnNnYUd2SWZ0VGh2MXV4cCtJOVdtQjYyYjFSVUxUWW41bGF4?=
 =?utf-8?B?T0FZWjdXakdqVWNJbWFWN3B1eUhTcG8rQXB5UWpaMEN6amNGK1MxR0sydDJp?=
 =?utf-8?B?a1lRZ1B6U0NnUkxzOVFKOVVRNVRHdFlIZllEMFVDMmR4bkpKNmkrSFJUaDVZ?=
 =?utf-8?B?U1ZaSXR0RUFqV3EzN3VqaUxFazkvUmdiRnF4MDlBcmI4OEF1aW1qTE1zdUVn?=
 =?utf-8?B?aG5pNVpTVWdUV0NlOVlwd2ZRejRFdWxONVQ5SnRWa1FjVGdJekNqTzc1OHY3?=
 =?utf-8?Q?blEokWceQy8wbgTEBy+BJWQ7h?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a065b101-8c64-443d-5922-08dd70f9eb84
X-MS-Exchange-CrossTenant-AuthSource: BN9PR12MB5273.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Apr 2025 08:48:05.8836
 (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: +pNbrtYnhVqnqA3XTBY+zSYUWv9pxUwJAshs/9O647oSWB4JGtZFPb8r7z58dsbM
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR12MB7609



On 31/03/2025 23:43, Jason Andryuk wrote:
> When creating a hardware domain, have the dom0less code call
> construct_hwdom() which is shared with the dom0 code.  The hardware
> domain requires building that best matches the dom0 build path.  Re-use
> it to keep them in sync.
> 
> The device tree node of the dom0less config is now passed into
> construct_hwdom().  dom0 uses /chosen for process_shm while a hwdom will
> use the value from its dom0less device tree node.
> 
> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
> ---
>  xen/arch/arm/dom0less-build.c           | 57 ++++++++++++++-----------
>  xen/arch/arm/domain_build.c             | 10 +++--
>  xen/arch/arm/include/asm/domain_build.h |  3 +-
>  3 files changed, 42 insertions(+), 28 deletions(-)
> 
> diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
> index 573b0d25ae..e25d7bd468 100644
> --- a/xen/arch/arm/dom0less-build.c
> +++ b/xen/arch/arm/dom0less-build.c
> @@ -911,36 +911,45 @@ static int __init construct_domU(struct domain *d,
>      /* type must be set before allocate memory */
>      d->arch.type = kinfo.type;
>  #endif
> -    if ( !dt_find_property(node, "xen,static-mem", NULL) )
> -        allocate_memory(d, &kinfo);
> -    else if ( !is_domain_direct_mapped(d) )
> -        allocate_static_memory(d, &kinfo, node);
> -    else
> -        assign_static_memory_11(d, &kinfo, node);
> -
> -    rc = process_shm(d, &kinfo, node);
> -    if ( rc < 0 )
> -        return rc;
> -
> -    /*
> -     * Base address and irq number are needed when creating vpl011 device
> -     * tree node in prepare_dtb_domU, so initialization on related variables
> -     * shall be done first.
> -     */
> -    if ( kinfo.vpl011 )
> +    if ( is_hardware_domain(d) )
>      {
> -        rc = domain_vpl011_init(d, NULL);
> +        rc = construct_hwdom(&kinfo, node);
>          if ( rc < 0 )
>              return rc;
>      }
> +    else
> +    {
> +        if ( !dt_find_property(node, "xen,static-mem", NULL) )
> +            allocate_memory(d, &kinfo);
> +        else if ( !is_domain_direct_mapped(d) )
> +            allocate_static_memory(d, &kinfo, node);
> +        else
> +            assign_static_memory_11(d, &kinfo, node);
>  
> -    rc = prepare_dtb_domU(d, &kinfo);
> -    if ( rc < 0 )
> -        return rc;
> +        rc = process_shm(d, &kinfo, node);
> +        if ( rc < 0 )
> +            return rc;
>  
> -    rc = construct_domain(d, &kinfo);
> -    if ( rc < 0 )
> -        return rc;
> +        /*
> +         * Base address and irq number are needed when creating vpl011 device
> +         * tree node in prepare_dtb_domU, so initialization on related variables
> +         * shall be done first.
> +         */
> +        if ( kinfo.vpl011 )
> +        {
> +            rc = domain_vpl011_init(d, NULL);
> +            if ( rc < 0 )
> +                return rc;
> +        }
> +
> +        rc = prepare_dtb_domU(d, &kinfo);
> +        if ( rc < 0 )
> +            return rc;
> +
> +        rc = construct_domain(d, &kinfo);
> +        if ( rc < 0 )
> +            return rc;
> +    }
>  
>      domain_vcpu_affinity(d, node);
>  
> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
> index 051c48329a..b3a396c2fc 100644
> --- a/xen/arch/arm/domain_build.c
> +++ b/xen/arch/arm/domain_build.c
> @@ -2305,10 +2305,11 @@ static int __init construct_dom0(struct domain *d)
>      if ( rc < 0 )
>          return rc;
>  
> -    return construct_hwdom(&kinfo);
> +    return construct_hwdom(&kinfo, NULL);
>  }
>  
> -int __init construct_hwdom(struct kernel_info *kinfo)
> +int __init construct_hwdom(struct kernel_info *kinfo,
> +                           const struct dt_device_node *node)
>  {
>      struct domain *d = kinfo->d;
>      int rc;
> @@ -2325,7 +2326,10 @@ int __init construct_hwdom(struct kernel_info *kinfo)
>      else
>          allocate_memory(d, kinfo);
>  
> -    rc = process_shm_chosen(d, kinfo);
> +    if ( node )
> +        rc = process_shm(d, kinfo, node);
> +    else
> +        rc = process_shm_chosen(d, kinfo);
I think we can avoid this if/else. I see no reason to keep process_shm_chosen.
We could check in process_shm, whether node is NULL and then grab /chosen node.
I'll try to send a patch shortly.

Rest LGTM.

~Michal



From xen-devel-bounces@lists.xenproject.org Tue Apr 01 08:59:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 08:59:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.933678.1335570 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzXSk-0002uF-Fq; Tue, 01 Apr 2025 08:59:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 933678.1335570; Tue, 01 Apr 2025 08: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 1tzXSk-0002tN-Bb; Tue, 01 Apr 2025 08:59:14 +0000
Received: by outflank-mailman (input) for mailman id 933678;
 Tue, 01 Apr 2025 08:59: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=heJ8=WT=arm.com=luca.fancellu@srs-se1.protection.inumbo.net>)
 id 1tzXSj-0002OX-Mo
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 08:59:13 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 94c1d5fb-0ed7-11f0-9ea7-5ba50f476ded;
 Tue, 01 Apr 2025 10:59:12 +0200 (CEST)
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 96AD219F0;
 Tue,  1 Apr 2025 01:59:15 -0700 (PDT)
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 1B1073F694;
 Tue,  1 Apr 2025 01:59: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: 94c1d5fb-0ed7-11f0-9ea7-5ba50f476ded
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 v4 3/7] xen/arm: Introduce frame_table and virt_to_page
Date: Tue,  1 Apr 2025 09:58:54 +0100
Message-Id: <20250401085858.2228991-4-luca.fancellu@arm.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250401085858.2228991-1-luca.fancellu@arm.com>
References: <20250401085858.2228991-1-luca.fancellu@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Introduce frame_table in order to provide the implementation of
virt_to_page for MPU system, move the MMU variant in mmu/mm.h.

Introduce FRAMETABLE_NR that is required for 'pdx_group_valid' in
pdx.c, but leave the initialisation of the frame table to a later
stage.
Define FRAMETABLE_SIZE for MPU to support up to 1TB of ram at this
stage, as the only current implementation of armv8-r aarch64, which
is cortex R82, can support 1TB or 256TB (r82 TRM r3p1
ID_AA64MMFR0_EL1.PARange).

Take the occasion to sort alphabetically the headers following
the Xen code style and add the emacs footer in mpu/mm.c.

Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
Reviewed-by: Michal Orzel <michal.orzel@amd.com>
---
v4 changes:
 - no changes
v3 changes:
 - Simplified MPU virt_to_page conversions (Michal suggested)
 - Mentioned r82 TRM source for frame table size (Michal)
 - Add Michal R-by
v2 changes:
 - sorted headers in mm.c
 - modified commit message
 - moved virt_to_page to MMU and MPU
 - removed frametable_pdx_end, used mfn_valid
---
 xen/arch/arm/include/asm/mm.h         | 14 --------------
 xen/arch/arm/include/asm/mmu/mm.h     | 14 ++++++++++++++
 xen/arch/arm/include/asm/mpu/layout.h |  3 +++
 xen/arch/arm/include/asm/mpu/mm.h     | 14 ++++++++++++++
 xen/arch/arm/mpu/mm.c                 | 14 +++++++++++++-
 5 files changed, 44 insertions(+), 15 deletions(-)

diff --git a/xen/arch/arm/include/asm/mm.h b/xen/arch/arm/include/asm/mm.h
index 444fd03823ec..fbffaccef49b 100644
--- a/xen/arch/arm/include/asm/mm.h
+++ b/xen/arch/arm/include/asm/mm.h
@@ -294,20 +294,6 @@ static inline uint64_t gvirt_to_maddr(vaddr_t va, paddr_t *pa,
 #error "Unknown memory management layout"
 #endif
 
-/* Convert between Xen-heap virtual addresses and page-info structures. */
-static inline struct page_info *virt_to_page(const void *v)
-{
-    unsigned long va = (unsigned long)v;
-    unsigned long pdx;
-
-    ASSERT(va >= XENHEAP_VIRT_START);
-    ASSERT(va < directmap_virt_end);
-
-    pdx = (va - XENHEAP_VIRT_START) >> PAGE_SHIFT;
-    pdx += mfn_to_pdx(directmap_mfn_start);
-    return frame_table + pdx - frametable_base_pdx;
-}
-
 static inline void *page_to_virt(const struct page_info *pg)
 {
     return mfn_to_virt(mfn_x(page_to_mfn(pg)));
diff --git a/xen/arch/arm/include/asm/mmu/mm.h b/xen/arch/arm/include/asm/mmu/mm.h
index 6737c3ede783..caba987edc85 100644
--- a/xen/arch/arm/include/asm/mmu/mm.h
+++ b/xen/arch/arm/include/asm/mmu/mm.h
@@ -70,6 +70,20 @@ static inline void *maddr_to_virt(paddr_t ma)
 }
 #endif
 
+/* Convert between Xen-heap virtual addresses and page-info structures. */
+static inline struct page_info *virt_to_page(const void *v)
+{
+    unsigned long va = (unsigned long)v;
+    unsigned long pdx;
+
+    ASSERT(va >= XENHEAP_VIRT_START);
+    ASSERT(va < directmap_virt_end);
+
+    pdx = (va - XENHEAP_VIRT_START) >> PAGE_SHIFT;
+    pdx += mfn_to_pdx(directmap_mfn_start);
+    return frame_table + pdx - frametable_base_pdx;
+}
+
 /*
  * Print a walk of a page table or p2m
  *
diff --git a/xen/arch/arm/include/asm/mpu/layout.h b/xen/arch/arm/include/asm/mpu/layout.h
index 248e55f8882d..c331d1feaa84 100644
--- a/xen/arch/arm/include/asm/mpu/layout.h
+++ b/xen/arch/arm/include/asm/mpu/layout.h
@@ -3,6 +3,9 @@
 #ifndef __ARM_MPU_LAYOUT_H__
 #define __ARM_MPU_LAYOUT_H__
 
+#define FRAMETABLE_SIZE   GB(16)
+#define FRAMETABLE_NR     (FRAMETABLE_SIZE / sizeof(*frame_table))
+
 #define XEN_START_ADDRESS CONFIG_XEN_START_ADDRESS
 
 /*
diff --git a/xen/arch/arm/include/asm/mpu/mm.h b/xen/arch/arm/include/asm/mpu/mm.h
index 6cfd0f5cd2c2..86f33d9836b7 100644
--- a/xen/arch/arm/include/asm/mpu/mm.h
+++ b/xen/arch/arm/include/asm/mpu/mm.h
@@ -3,9 +3,13 @@
 #ifndef __ARM_MPU_MM_H__
 #define __ARM_MPU_MM_H__
 
+#include <xen/bug.h>
 #include <xen/macros.h>
 #include <xen/page-size.h>
 #include <xen/types.h>
+#include <asm/mm.h>
+
+extern struct page_info *frame_table;
 
 #define virt_to_maddr(va) ((paddr_t)((vaddr_t)(va) & PADDR_MASK))
 
@@ -15,6 +19,16 @@ static inline void *maddr_to_virt(paddr_t ma)
     return _p(ma);
 }
 
+/* Convert between virtual address to page-info structure. */
+static inline struct page_info *virt_to_page(const void *v)
+{
+    mfn_t mfn = _mfn(virt_to_mfn(v));
+
+    ASSERT(mfn_valid(mfn));
+
+    return mfn_to_page(mfn);
+}
+
 #endif /* __ARM_MPU_MM_H__ */
 
 /*
diff --git a/xen/arch/arm/mpu/mm.c b/xen/arch/arm/mpu/mm.c
index 0b8748e57598..3632011c1013 100644
--- a/xen/arch/arm/mpu/mm.c
+++ b/xen/arch/arm/mpu/mm.c
@@ -1,9 +1,12 @@
 /* SPDX-License-Identifier: GPL-2.0-only */
 
-#include <xen/lib.h>
 #include <xen/init.h>
+#include <xen/lib.h>
+#include <xen/mm.h>
 #include <xen/sizes.h>
 
+struct page_info *frame_table;
+
 static void __init __maybe_unused build_assertions(void)
 {
     /*
@@ -13,3 +16,12 @@ static void __init __maybe_unused build_assertions(void)
      */
     BUILD_BUG_ON(PAGE_SIZE != SZ_4K);
 }
+
+/*
+ * 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 Apr 01 08:59:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 08:59:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.933677.1335566 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzXSk-0002qo-6i; Tue, 01 Apr 2025 08:59:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 933677.1335566; Tue, 01 Apr 2025 08: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 1tzXSk-0002qh-39; Tue, 01 Apr 2025 08:59:14 +0000
Received: by outflank-mailman (input) for mailman id 933677;
 Tue, 01 Apr 2025 08: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=heJ8=WT=arm.com=luca.fancellu@srs-se1.protection.inumbo.net>)
 id 1tzXSi-0002OX-Kq
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 08:59:12 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 93ee04b7-0ed7-11f0-9ea7-5ba50f476ded;
 Tue, 01 Apr 2025 10:59:11 +0200 (CEST)
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 3A4CB14BF;
 Tue,  1 Apr 2025 01:59:14 -0700 (PDT)
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 4D3B53F694;
 Tue,  1 Apr 2025 01:59: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: 93ee04b7-0ed7-11f0-9ea7-5ba50f476ded
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>,
	Penny Zheng <penny.zheng@arm.com>,
	Wei Chen <wei.chen@arm.com>
Subject: [PATCH v4 2/7] xen/arm: Implement virt/maddr conversion in MPU system
Date: Tue,  1 Apr 2025 09:58:53 +0100
Message-Id: <20250401085858.2228991-3-luca.fancellu@arm.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250401085858.2228991-1-luca.fancellu@arm.com>
References: <20250401085858.2228991-1-luca.fancellu@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Penny Zheng <Penny.Zheng@arm.com>

virt_to_maddr and maddr_to_virt are used widely in Xen code. So
even there is no VMSA in MPU system, we keep the interface in MPU to
to avoid changing the existing common code.

In order to do that, move the virt_to_maddr() and maddr_to_virt()
definitions to mmu/mm.h, move the include of memory management
subsystems (MMU/MPU) on a different place because the mentioned
helpers needs visibility of some macro in asm/mm.h.

Finally implement virt_to_maddr() and maddr_to_virt() for MPU systems
under mpu/mm.h, the MPU version of virt/maddr conversion is simple since
VA==PA.

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>
Reviewed-by: Michal Orzel <michal.orzel@amd.com>
---
v4 changes:
 - no changes
v3 changes:
 - Add Michal R-by
v2 changes:
 - add missing headers, fix header protection macro name convention
 - take into account PADDR_MASK in virt_to_maddr
 - fixed typo in commit message
 - moved also maddr_to_virt to mmu/mm.h and moved include of mmu/mpu.
 - moved introduction of mm.c footer on commit that touches that file.
---
 xen/arch/arm/include/asm/mm.h     | 64 +++++--------------------------
 xen/arch/arm/include/asm/mmu/mm.h | 56 +++++++++++++++++++++++++++
 xen/arch/arm/include/asm/mpu/mm.h | 27 +++++++++++++
 3 files changed, 92 insertions(+), 55 deletions(-)
 create mode 100644 xen/arch/arm/include/asm/mpu/mm.h

diff --git a/xen/arch/arm/include/asm/mm.h b/xen/arch/arm/include/asm/mm.h
index a0d8e5afe977..444fd03823ec 100644
--- a/xen/arch/arm/include/asm/mm.h
+++ b/xen/arch/arm/include/asm/mm.h
@@ -14,12 +14,6 @@
 # error "unknown ARM variant"
 #endif
 
-#if defined(CONFIG_MMU)
-# include <asm/mmu/mm.h>
-#elif !defined(CONFIG_MPU)
-# error "Unknown memory management layout"
-#endif
-
 /* Align Xen to a 2 MiB boundary. */
 #define XEN_PADDR_ALIGN (1 << 21)
 
@@ -261,55 +255,6 @@ static inline void __iomem *ioremap_wc(paddr_t start, size_t len)
 /* Page-align address and convert to frame number format */
 #define paddr_to_pfn_aligned(paddr)    paddr_to_pfn(PAGE_ALIGN(paddr))
 
-#define virt_to_maddr(va) ({                                        \
-    vaddr_t va_ = (vaddr_t)(va);                                    \
-    (paddr_t)((va_to_par(va_) & PADDR_MASK & PAGE_MASK) | (va_ & ~PAGE_MASK)); \
-})
-
-#ifdef CONFIG_ARM_32
-/**
- * Find the virtual address corresponding to a machine address
- *
- * Only memory backing the XENHEAP has a corresponding virtual address to
- * be found. This is so we can save precious virtual space, as it's in
- * short supply on arm32. This mapping is not subject to PDX compression
- * because XENHEAP is known to be physically contiguous and can't hence
- * jump over the PDX hole. This means we can avoid the roundtrips
- * converting to/from pdx.
- *
- * @param ma Machine address
- * @return Virtual address mapped to `ma`
- */
-static inline void *maddr_to_virt(paddr_t ma)
-{
-    ASSERT(is_xen_heap_mfn(maddr_to_mfn(ma)));
-    ma -= mfn_to_maddr(directmap_mfn_start);
-    return (void *)(unsigned long) ma + XENHEAP_VIRT_START;
-}
-#else
-/**
- * Find the virtual address corresponding to a machine address
- *
- * The directmap covers all conventional memory accesible by the
- * hypervisor. This means it's subject to PDX compression.
- *
- * Note there's an extra offset applied (directmap_base_pdx) on top of the
- * regular PDX compression logic. Its purpose is to skip over the initial
- * range of non-existing memory, should there be one.
- *
- * @param ma Machine address
- * @return Virtual address mapped to `ma`
- */
-static inline void *maddr_to_virt(paddr_t ma)
-{
-    ASSERT((mfn_to_pdx(maddr_to_mfn(ma)) - directmap_base_pdx) <
-           (DIRECTMAP_SIZE >> PAGE_SHIFT));
-    return (void *)(XENHEAP_VIRT_START -
-                    (directmap_base_pdx << PAGE_SHIFT) +
-                    maddr_to_directmapoff(ma));
-}
-#endif
-
 /*
  * Translate a guest virtual address to a machine address.
  * Return the fault information if the translation has failed else 0.
@@ -340,6 +285,15 @@ static inline uint64_t gvirt_to_maddr(vaddr_t va, paddr_t *pa,
 #define virt_to_mfn(va)     __virt_to_mfn(va)
 #define mfn_to_virt(mfn)    __mfn_to_virt(mfn)
 
+/* Memory management subsystem header placed here to see the above macros */
+#if defined(CONFIG_MMU)
+# include <asm/mmu/mm.h>
+#elif defined(CONFIG_MPU)
+# include <asm/mpu/mm.h>
+#else
+#error "Unknown memory management layout"
+#endif
+
 /* Convert between Xen-heap virtual addresses and page-info structures. */
 static inline struct page_info *virt_to_page(const void *v)
 {
diff --git a/xen/arch/arm/include/asm/mmu/mm.h b/xen/arch/arm/include/asm/mmu/mm.h
index f5a00558c47b..6737c3ede783 100644
--- a/xen/arch/arm/include/asm/mmu/mm.h
+++ b/xen/arch/arm/include/asm/mmu/mm.h
@@ -2,6 +2,13 @@
 #ifndef __ARM_MMU_MM_H__
 #define __ARM_MMU_MM_H__
 
+#include <xen/bug.h>
+#include <xen/pdx.h>
+#include <xen/types.h>
+#include <asm/mm.h>
+#include <asm/mmu/layout.h>
+#include <asm/page.h>
+
 /* Non-boot CPUs use this to find the correct pagetables. */
 extern uint64_t init_ttbr;
 
@@ -14,6 +21,55 @@ extern unsigned long directmap_base_pdx;
 
 #define frame_table ((struct page_info *)FRAMETABLE_VIRT_START)
 
+#define virt_to_maddr(va) ({                                                   \
+    vaddr_t va_ = (vaddr_t)(va);                                               \
+    (paddr_t)((va_to_par(va_) & PADDR_MASK & PAGE_MASK) | (va_ & ~PAGE_MASK)); \
+})
+
+#ifdef CONFIG_ARM_32
+/**
+ * Find the virtual address corresponding to a machine address
+ *
+ * Only memory backing the XENHEAP has a corresponding virtual address to
+ * be found. This is so we can save precious virtual space, as it's in
+ * short supply on arm32. This mapping is not subject to PDX compression
+ * because XENHEAP is known to be physically contiguous and can't hence
+ * jump over the PDX hole. This means we can avoid the roundtrips
+ * converting to/from pdx.
+ *
+ * @param ma Machine address
+ * @return Virtual address mapped to `ma`
+ */
+static inline void *maddr_to_virt(paddr_t ma)
+{
+    ASSERT(is_xen_heap_mfn(maddr_to_mfn(ma)));
+    ma -= mfn_to_maddr(directmap_mfn_start);
+    return (void *)(unsigned long) ma + XENHEAP_VIRT_START;
+}
+#else
+/**
+ * Find the virtual address corresponding to a machine address
+ *
+ * The directmap covers all conventional memory accesible by the
+ * hypervisor. This means it's subject to PDX compression.
+ *
+ * Note there's an extra offset applied (directmap_base_pdx) on top of the
+ * regular PDX compression logic. Its purpose is to skip over the initial
+ * range of non-existing memory, should there be one.
+ *
+ * @param ma Machine address
+ * @return Virtual address mapped to `ma`
+ */
+static inline void *maddr_to_virt(paddr_t ma)
+{
+    ASSERT((mfn_to_pdx(maddr_to_mfn(ma)) - directmap_base_pdx) <
+           (DIRECTMAP_SIZE >> PAGE_SHIFT));
+    return (void *)(XENHEAP_VIRT_START -
+                    (directmap_base_pdx << PAGE_SHIFT) +
+                    maddr_to_directmapoff(ma));
+}
+#endif
+
 /*
  * Print a walk of a page table or p2m
  *
diff --git a/xen/arch/arm/include/asm/mpu/mm.h b/xen/arch/arm/include/asm/mpu/mm.h
new file mode 100644
index 000000000000..6cfd0f5cd2c2
--- /dev/null
+++ b/xen/arch/arm/include/asm/mpu/mm.h
@@ -0,0 +1,27 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#ifndef __ARM_MPU_MM_H__
+#define __ARM_MPU_MM_H__
+
+#include <xen/macros.h>
+#include <xen/page-size.h>
+#include <xen/types.h>
+
+#define virt_to_maddr(va) ((paddr_t)((vaddr_t)(va) & PADDR_MASK))
+
+/* On MPU systems there is no translation, ma == va. */
+static inline void *maddr_to_virt(paddr_t ma)
+{
+    return _p(ma);
+}
+
+#endif /* __ARM_MPU_MM_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 Apr 01 08:59:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 08:59:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.933675.1335545 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzXSh-0002Op-NQ; Tue, 01 Apr 2025 08:59:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 933675.1335545; Tue, 01 Apr 2025 08:59: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 1tzXSh-0002Oi-KV; Tue, 01 Apr 2025 08:59:11 +0000
Received: by outflank-mailman (input) for mailman id 933675;
 Tue, 01 Apr 2025 08:59: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=heJ8=WT=arm.com=luca.fancellu@srs-se1.protection.inumbo.net>)
 id 1tzXSg-0002OX-0K
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 08:59:10 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 92103686-0ed7-11f0-9ea7-5ba50f476ded;
 Tue, 01 Apr 2025 10:59:08 +0200 (CEST)
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 0D3D314BF;
 Tue,  1 Apr 2025 01:59:11 -0700 (PDT)
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 6C8923F694;
 Tue,  1 Apr 2025 01:59: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: 92103686-0ed7-11f0-9ea7-5ba50f476ded
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>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH v4 0/7] MPU mm subsystem skeleton
Date: Tue,  1 Apr 2025 09:58:51 +0100
Message-Id: <20250401085858.2228991-1-luca.fancellu@arm.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Hi all,

this serie implements the skeleton for the MPU memory management subsystem,
at the end of the serie it will be possible to compile the Arm64 arch using MPU.

The minimum Arm Kconfig configuration is this one:

CONFIG_UNSUPPORTED=y
CONFIG_MPU=y
CONFIG_XEN_START_ADDRESS=0x0

Luca Fancellu (5):
  arm/mpu: Add HYPERVISOR_VIRT_START and avoid a check in xen.lds.S
  xen/arm: Introduce frame_table and virt_to_page
  arm/mpu: Kconfig symbols for MPU build
  arm/mpu: Implement stubs for ioremap_attr on MPU
  arm/mpu: Create the skeleton for MPU compilation

Penny Zheng (2):
  xen/arm: Implement virt/maddr conversion in MPU system
  xen: introduce Kconfig ARCH_PAGING_MEMPOOL

 xen/arch/arm/Kconfig                  |  4 +-
 xen/arch/arm/arm64/mpu/Makefile       |  2 +
 xen/arch/arm/arm64/mpu/p2m.c          | 19 ++++++
 xen/arch/arm/arm64/mpu/smpboot.c      | 26 +++++++++
 xen/arch/arm/dom0less-build.c         | 70 +++++++++++++---------
 xen/arch/arm/include/asm/domain.h     |  2 +
 xen/arch/arm/include/asm/mm.h         | 76 +++---------------------
 xen/arch/arm/include/asm/mmu/mm.h     | 70 ++++++++++++++++++++++
 xen/arch/arm/include/asm/mpu/layout.h |  5 ++
 xen/arch/arm/include/asm/mpu/mm.h     | 41 +++++++++++++
 xen/arch/arm/include/asm/mpu/p2m.h    | 21 +++++++
 xen/arch/arm/include/asm/p2m.h        |  2 +-
 xen/arch/arm/mm.c                     |  5 ++
 xen/arch/arm/mmu/pt.c                 |  5 --
 xen/arch/arm/mpu/Makefile             |  3 +
 xen/arch/arm/mpu/mm.c                 | 45 +++++++++++++-
 xen/arch/arm/mpu/p2m.c                | 84 +++++++++++++++++++++++++++
 xen/arch/arm/mpu/setup.c              | 40 +++++++++++++
 xen/arch/arm/mpu/vmap.c               | 26 +++++++++
 xen/arch/arm/xen.lds.S                |  2 +
 xen/arch/riscv/stubs.c                | 11 ----
 xen/arch/x86/Kconfig                  |  1 +
 xen/common/Kconfig                    |  3 +
 xen/include/xen/domain.h              | 17 ++++++
 24 files changed, 467 insertions(+), 113 deletions(-)
 create mode 100644 xen/arch/arm/arm64/mpu/p2m.c
 create mode 100644 xen/arch/arm/arm64/mpu/smpboot.c
 create mode 100644 xen/arch/arm/include/asm/mpu/mm.h
 create mode 100644 xen/arch/arm/include/asm/mpu/p2m.h
 create mode 100644 xen/arch/arm/mpu/p2m.c
 create mode 100644 xen/arch/arm/mpu/setup.c
 create mode 100644 xen/arch/arm/mpu/vmap.c

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Tue Apr 01 08:59:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 08:59:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.933676.1335552 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzXSi-0002S1-0V; Tue, 01 Apr 2025 08:59:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 933676.1335552; Tue, 01 Apr 2025 08:59: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 1tzXSh-0002Qy-R4; Tue, 01 Apr 2025 08:59:11 +0000
Received: by outflank-mailman (input) for mailman id 933676;
 Tue, 01 Apr 2025 08:59: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=heJ8=WT=arm.com=luca.fancellu@srs-se1.protection.inumbo.net>)
 id 1tzXSg-0002OX-Kr
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 08:59:10 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 92d9b3a6-0ed7-11f0-9ea7-5ba50f476ded;
 Tue, 01 Apr 2025 10:59:09 +0200 (CEST)
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 696D7150C;
 Tue,  1 Apr 2025 01:59:12 -0700 (PDT)
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 E17953F694;
 Tue,  1 Apr 2025 01:59: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: 92d9b3a6-0ed7-11f0-9ea7-5ba50f476ded
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 v4 1/7] arm/mpu: Add HYPERVISOR_VIRT_START and avoid a check in xen.lds.S
Date: Tue,  1 Apr 2025 09:58:52 +0100
Message-Id: <20250401085858.2228991-2-luca.fancellu@arm.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250401085858.2228991-1-luca.fancellu@arm.com>
References: <20250401085858.2228991-1-luca.fancellu@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The define HYPERVISOR_VIRT_START is required by the common code,
even if MPU system doesn't use virtual memory, define it in
mpu/layout.h in order to reuse existing code.

Disable a check in the linker script for arm for !MMU systems.

Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
Reviewed-by: Michal Orzel <michal.orzel@amd.com>
---
v4 changes:
 - no changes
v3 changes:
 - no changes
v2 changes:
 - Add Michal R-by
---
 xen/arch/arm/include/asm/mpu/layout.h | 2 ++
 xen/arch/arm/xen.lds.S                | 2 ++
 2 files changed, 4 insertions(+)

diff --git a/xen/arch/arm/include/asm/mpu/layout.h b/xen/arch/arm/include/asm/mpu/layout.h
index d6d397f4c2ac..248e55f8882d 100644
--- a/xen/arch/arm/include/asm/mpu/layout.h
+++ b/xen/arch/arm/include/asm/mpu/layout.h
@@ -22,6 +22,8 @@
  */
 #define XEN_VIRT_START         _AT(paddr_t, XEN_START_ADDRESS)
 
+#define HYPERVISOR_VIRT_START  XEN_VIRT_START
+
 #endif /* __ARM_MPU_LAYOUT_H__ */
 /*
  * Local variables:
diff --git a/xen/arch/arm/xen.lds.S b/xen/arch/arm/xen.lds.S
index bbccff1a0350..4342e54422a7 100644
--- a/xen/arch/arm/xen.lds.S
+++ b/xen/arch/arm/xen.lds.S
@@ -239,4 +239,6 @@ ASSERT(IS_ALIGNED(__bss_start,      POINTER_ALIGN), "__bss_start is misaligned")
 ASSERT(IS_ALIGNED(__bss_end,        POINTER_ALIGN), "__bss_end is misaligned")
 /* To simplify the logic in head.S, we want to _end to be page aligned */
 ASSERT(IS_ALIGNED(_end,             PAGE_SIZE), "_end is not page aligned")
+#ifdef CONFIG_MMU
 ASSERT((_end - _start) <= XEN_VIRT_SIZE, "Xen is too big")
+#endif
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Tue Apr 01 08:59:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 08:59:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.933679.1335586 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzXSl-0003KA-Oy; Tue, 01 Apr 2025 08:59:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 933679.1335586; Tue, 01 Apr 2025 08:59: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 1tzXSl-0003JI-LU; Tue, 01 Apr 2025 08:59:15 +0000
Received: by outflank-mailman (input) for mailman id 933679;
 Tue, 01 Apr 2025 08:59: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=heJ8=WT=arm.com=luca.fancellu@srs-se1.protection.inumbo.net>)
 id 1tzXSk-0002OX-Nc
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 08:59:14 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 9592794f-0ed7-11f0-9ea7-5ba50f476ded;
 Tue, 01 Apr 2025 10:59:14 +0200 (CEST)
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 F3179150C;
 Tue,  1 Apr 2025 01:59:16 -0700 (PDT)
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 779473F694;
 Tue,  1 Apr 2025 01:59: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: 9592794f-0ed7-11f0-9ea7-5ba50f476ded
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 v4 4/7] arm/mpu: Kconfig symbols for MPU build
Date: Tue,  1 Apr 2025 09:58:55 +0100
Message-Id: <20250401085858.2228991-5-luca.fancellu@arm.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250401085858.2228991-1-luca.fancellu@arm.com>
References: <20250401085858.2228991-1-luca.fancellu@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The MPU system requires static memory to work, select that
when building this memory management subsystem.

While there, provide a restriction for the ARM_EFI Kconfig
parameter to be built only when !MPU, the EFI stub is not
used as there are no implementation of UEFI services for
armv8-r.

Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
Reviewed-by: Michal Orzel <michal.orzel@amd.com>
---
v4 changes:
 - no changes
v3 changes:
 - No changes
v2 changes:
 - clarified commit message about static memory
 - Add R-by Michal
---
 xen/arch/arm/Kconfig | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
index 466b7db63cfd..7a7658812d0e 100644
--- a/xen/arch/arm/Kconfig
+++ b/xen/arch/arm/Kconfig
@@ -85,6 +85,7 @@ config MMU
 
 config MPU
 	bool "MPU" if UNSUPPORTED
+	select STATIC_MEMORY
 	help
 	  Memory Protection Unit (MPU). Select if you plan to run Xen on ARMv8-R
 	  systems supporting EL2. (UNSUPPORTED)
@@ -102,7 +103,7 @@ config ACPI
 
 config ARM_EFI
 	bool "UEFI boot service support"
-	depends on ARM_64
+	depends on ARM_64 && !MPU
 	default y
 	help
 	  This option provides support for boot services through
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Tue Apr 01 08:59:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 08:59:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.933680.1335596 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzXSp-0003eK-0u; Tue, 01 Apr 2025 08:59:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 933680.1335596; Tue, 01 Apr 2025 08:59: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 1tzXSo-0003eB-TF; Tue, 01 Apr 2025 08:59:18 +0000
Received: by outflank-mailman (input) for mailman id 933680;
 Tue, 01 Apr 2025 08:59: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=heJ8=WT=arm.com=luca.fancellu@srs-se1.protection.inumbo.net>)
 id 1tzXSn-0003bM-H7
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 08:59:17 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 9663f51c-0ed7-11f0-9ffb-bf95429c2676;
 Tue, 01 Apr 2025 10:59:15 +0200 (CEST)
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 5CE9814BF;
 Tue,  1 Apr 2025 01:59:18 -0700 (PDT)
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 D59763F694;
 Tue,  1 Apr 2025 01:59:13 -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: 9663f51c-0ed7-11f0-9ffb-bf95429c2676
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 v4 5/7] arm/mpu: Implement stubs for ioremap_attr on MPU
Date: Tue,  1 Apr 2025 09:58:56 +0100
Message-Id: <20250401085858.2228991-6-luca.fancellu@arm.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250401085858.2228991-1-luca.fancellu@arm.com>
References: <20250401085858.2228991-1-luca.fancellu@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Implement ioremap_attr() stub for MPU system; the
implementation of ioremap() is the same between MMU
and MPU system, and it relies on ioremap_attr(), so
move the definition from mmu/pt.c to arm/mm.c.

Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
Reviewed-by: Michal Orzel <michal.orzel@amd.com>
---
v4 changes:
 - no changes
v3 changes:
 - No changes
v2 changes:
 - Add R-by Michal
---
 xen/arch/arm/mm.c     | 5 +++++
 xen/arch/arm/mmu/pt.c | 5 -----
 xen/arch/arm/mpu/mm.c | 6 ++++++
 3 files changed, 11 insertions(+), 5 deletions(-)

diff --git a/xen/arch/arm/mm.c b/xen/arch/arm/mm.c
index a56e20ba2bdc..5a52f0c623e5 100644
--- a/xen/arch/arm/mm.c
+++ b/xen/arch/arm/mm.c
@@ -395,6 +395,11 @@ unsigned long get_upper_mfn_bound(void)
     return max_page - 1;
 }
 
+void *ioremap(paddr_t pa, size_t len)
+{
+    return ioremap_attr(pa, len, PAGE_HYPERVISOR_NOCACHE);
+}
+
 /*
  * Local variables:
  * mode: C
diff --git a/xen/arch/arm/mmu/pt.c b/xen/arch/arm/mmu/pt.c
index da28d669e796..11cb1c66dac8 100644
--- a/xen/arch/arm/mmu/pt.c
+++ b/xen/arch/arm/mmu/pt.c
@@ -223,11 +223,6 @@ void *ioremap_attr(paddr_t start, size_t len, unsigned int attributes)
     return ptr + offs;
 }
 
-void *ioremap(paddr_t pa, size_t len)
-{
-    return ioremap_attr(pa, len, PAGE_HYPERVISOR_NOCACHE);
-}
-
 static int create_xen_table(lpae_t *entry)
 {
     mfn_t mfn;
diff --git a/xen/arch/arm/mpu/mm.c b/xen/arch/arm/mpu/mm.c
index 3632011c1013..4e9a2405d8c5 100644
--- a/xen/arch/arm/mpu/mm.c
+++ b/xen/arch/arm/mpu/mm.c
@@ -17,6 +17,12 @@ static void __init __maybe_unused build_assertions(void)
     BUILD_BUG_ON(PAGE_SIZE != SZ_4K);
 }
 
+void __iomem *ioremap_attr(paddr_t start, size_t len, unsigned int flags)
+{
+    BUG_ON("unimplemented");
+    return NULL;
+}
+
 /*
  * Local variables:
  * mode: C
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Tue Apr 01 08:59:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 08:59:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.933684.1335606 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzXSr-0003yx-FT; Tue, 01 Apr 2025 08:59:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 933684.1335606; Tue, 01 Apr 2025 08:59: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 1tzXSr-0003ya-BW; Tue, 01 Apr 2025 08:59:21 +0000
Received: by outflank-mailman (input) for mailman id 933684;
 Tue, 01 Apr 2025 08: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=heJ8=WT=arm.com=luca.fancellu@srs-se1.protection.inumbo.net>)
 id 1tzXSq-0002OX-0D
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 08:59:20 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 983424ac-0ed7-11f0-9ea7-5ba50f476ded;
 Tue, 01 Apr 2025 10:59:18 +0200 (CEST)
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 64E2F14BF;
 Tue,  1 Apr 2025 01:59:21 -0700 (PDT)
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 400733F694;
 Tue,  1 Apr 2025 01:59: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: 983424ac-0ed7-11f0-9ea7-5ba50f476ded
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>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Penny Zheng <penny.zheng@arm.com>,
	Wei Chen <wei.chen@arm.com>
Subject: [PATCH v4 6/7] xen: introduce Kconfig ARCH_PAGING_MEMPOOL
Date: Tue,  1 Apr 2025 09:58:57 +0100
Message-Id: <20250401085858.2228991-7-luca.fancellu@arm.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250401085858.2228991-1-luca.fancellu@arm.com>
References: <20250401085858.2228991-1-luca.fancellu@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Penny Zheng <Penny.Zheng@arm.com>

ARM MPU system doesn't need to use paging memory pool, as MPU memory
mapping table at most takes only one 4KB page, which is enough to
manage the maximum 255 MPU memory regions, for all EL2 stage 1
translation and EL1 stage 2 translation.

Introduce ARCH_PAGING_MEMPOOL Kconfig common symbol, selected for Arm
MMU systems and x86. Removed stubs from RISC-V now that the common code
provide them and the functions are not gonna be used.

Wrap the code inside 'construct_domU' that deal with p2m paging
allocation in a new function 'domain_p2m_set_allocation', protected
by ARCH_PAGING_MEMPOOL, this is done in this way to prevent polluting
the former function with #ifdefs and improve readability

Introduce arch_{get,set}_paging_mempool_size stubs for architecture
with !ARCH_PAGING_MEMPOOL.

Remove 'struct paging_domain' from Arm 'struct arch_domain' when the
field is not required.

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>
Reviewed-by: Michal Orzel <michal.orzel@amd.com> # arm
Reviewed-by: Oleksii Kurochko <oleksii.kurochko@gmail.com> # riscv
---
v4 changes:
 - removed arch_{get,set}_paging_mempool_size from RISC-V since they
   are not gonna be used (confirmed by Oleksii)
 - Removed blank lines around #ifdef/#else/#endif
 - Add Michal R-by #arm
 - Add Oleksii R-by #riscv
v3 changes:
 - Introduced ARCH_PAGING_MEMPOOL instead of HAS_PAGING_MEMPOOL
v2 changes:
 - make Kconfig HAS_PAGING_MEMPOOL common
 - protect also "xen,domain-p2m-mem-mb" reading with HAS_PAGING_MEMPOOL
 - do not define p2m_teardown{_allocation} in this patch
 - change commit message
---
 xen/arch/arm/Kconfig              |  1 +
 xen/arch/arm/dom0less-build.c     | 70 +++++++++++++++++++------------
 xen/arch/arm/include/asm/domain.h |  2 +
 xen/arch/riscv/stubs.c            | 11 -----
 xen/arch/x86/Kconfig              |  1 +
 xen/common/Kconfig                |  3 ++
 xen/include/xen/domain.h          | 17 ++++++++
 7 files changed, 68 insertions(+), 37 deletions(-)

diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
index 7a7658812d0e..565f28833118 100644
--- a/xen/arch/arm/Kconfig
+++ b/xen/arch/arm/Kconfig
@@ -75,6 +75,7 @@ choice
 
 config MMU
 	bool "MMU"
+	select ARCH_PAGING_MEMPOOL
 	select HAS_LLC_COLORING if !NUMA && ARM_64
 	select HAS_PMAP
 	select HAS_VMAP
diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
index 573b0d25ae41..bd15563750e8 100644
--- a/xen/arch/arm/dom0less-build.c
+++ b/xen/arch/arm/dom0less-build.c
@@ -673,21 +673,6 @@ static int __init prepare_dtb_domU(struct domain *d, struct kernel_info *kinfo)
     return -EINVAL;
 }
 
-static unsigned long __init domain_p2m_pages(unsigned long maxmem_kb,
-                                             unsigned int smp_cpus)
-{
-    /*
-     * Keep in sync with libxl__get_required_paging_memory().
-     * 256 pages (1MB) per vcpu, plus 1 page per MiB of RAM for the P2M map,
-     * plus 128 pages to cover extended regions.
-     */
-    unsigned long memkb = 4 * (256 * smp_cpus + (maxmem_kb / 1024) + 128);
-
-    BUILD_BUG_ON(PAGE_SIZE != SZ_4K);
-
-    return DIV_ROUND_UP(memkb, 1024) << (20 - PAGE_SHIFT);
-}
-
 static int __init alloc_xenstore_evtchn(struct domain *d)
 {
     evtchn_alloc_unbound_t alloc;
@@ -841,6 +826,49 @@ static void __init domain_vcpu_affinity(struct domain *d,
     }
 }
 
+#ifdef CONFIG_ARCH_PAGING_MEMPOOL
+static unsigned long __init domain_p2m_pages(unsigned long maxmem_kb,
+                                             unsigned int smp_cpus)
+{
+    /*
+     * Keep in sync with libxl__get_required_paging_memory().
+     * 256 pages (1MB) per vcpu, plus 1 page per MiB of RAM for the P2M map,
+     * plus 128 pages to cover extended regions.
+     */
+    unsigned long memkb = 4 * (256 * smp_cpus + (maxmem_kb / 1024) + 128);
+
+    BUILD_BUG_ON(PAGE_SIZE != SZ_4K);
+
+    return DIV_ROUND_UP(memkb, 1024) << (20 - PAGE_SHIFT);
+}
+
+static int __init domain_p2m_set_allocation(struct domain *d, uint64_t mem,
+                                            const struct dt_device_node *node)
+{
+    unsigned long p2m_pages;
+    uint32_t p2m_mem_mb;
+    int rc;
+
+    rc = dt_property_read_u32(node, "xen,domain-p2m-mem-mb", &p2m_mem_mb);
+    /* If xen,domain-p2m-mem-mb is not specified, use the default value. */
+    p2m_pages = rc ?
+                p2m_mem_mb << (20 - PAGE_SHIFT) :
+                domain_p2m_pages(mem, d->max_vcpus);
+
+    spin_lock(&d->arch.paging.lock);
+    rc = p2m_set_allocation(d, p2m_pages, NULL);
+    spin_unlock(&d->arch.paging.lock);
+
+    return rc;
+}
+#else /* !CONFIG_ARCH_PAGING_MEMPOOL */
+static inline int domain_p2m_set_allocation(struct domain *d, uint64_t mem,
+                                            const struct dt_device_node *node)
+{
+    return 0;
+}
+#endif /* CONFIG_ARCH_PAGING_MEMPOOL */
+
 static int __init construct_domU(struct domain *d,
                                  const struct dt_device_node *node)
 {
@@ -848,8 +876,6 @@ static int __init construct_domU(struct domain *d,
     const char *dom0less_enhanced;
     int rc;
     u64 mem;
-    u32 p2m_mem_mb;
-    unsigned long p2m_pages;
 
     rc = dt_property_read_u64(node, "memory", &mem);
     if ( !rc )
@@ -859,15 +885,7 @@ static int __init construct_domU(struct domain *d,
     }
     kinfo.unassigned_mem = (paddr_t)mem * SZ_1K;
 
-    rc = dt_property_read_u32(node, "xen,domain-p2m-mem-mb", &p2m_mem_mb);
-    /* If xen,domain-p2m-mem-mb is not specified, use the default value. */
-    p2m_pages = rc ?
-                p2m_mem_mb << (20 - PAGE_SHIFT) :
-                domain_p2m_pages(mem, d->max_vcpus);
-
-    spin_lock(&d->arch.paging.lock);
-    rc = p2m_set_allocation(d, p2m_pages, NULL);
-    spin_unlock(&d->arch.paging.lock);
+    rc = domain_p2m_set_allocation(d, mem, node);
     if ( rc != 0 )
         return rc;
 
diff --git a/xen/arch/arm/include/asm/domain.h b/xen/arch/arm/include/asm/domain.h
index 50b6a4b00982..a3487ca71303 100644
--- a/xen/arch/arm/include/asm/domain.h
+++ b/xen/arch/arm/include/asm/domain.h
@@ -75,7 +75,9 @@ struct arch_domain
 
     struct hvm_domain hvm;
 
+#ifdef CONFIG_ARCH_PAGING_MEMPOOL
     struct paging_domain paging;
+#endif
 
     struct vmmio vmmio;
 
diff --git a/xen/arch/riscv/stubs.c b/xen/arch/riscv/stubs.c
index 5951b0ce91ed..cd594eb6b849 100644
--- a/xen/arch/riscv/stubs.c
+++ b/xen/arch/riscv/stubs.c
@@ -335,11 +335,6 @@ void arch_do_physinfo(struct xen_sysctl_physinfo *pi)
 
 /* p2m.c */
 
-int arch_set_paging_mempool_size(struct domain *d, uint64_t size)
-{
-    BUG_ON("unimplemented");
-}
-
 int unmap_mmio_regions(struct domain *d,
                        gfn_t start_gfn,
                        unsigned long nr,
@@ -362,12 +357,6 @@ int set_foreign_p2m_entry(struct domain *d, const struct domain *fd,
     BUG_ON("unimplemented");
 }
 
-/* Return the size of the pool, in bytes. */
-int arch_get_paging_mempool_size(struct domain *d, uint64_t *size)
-{
-    BUG_ON("unimplemented");
-}
-
 int guest_physmap_remove_page(struct domain *d, gfn_t gfn, mfn_t mfn,
                               unsigned int page_order)
 {
diff --git a/xen/arch/x86/Kconfig b/xen/arch/x86/Kconfig
index 18efdb2e3130..de2fa37f088d 100644
--- a/xen/arch/x86/Kconfig
+++ b/xen/arch/x86/Kconfig
@@ -9,6 +9,7 @@ config X86
 	select ACPI_NUMA
 	select ALTERNATIVE_CALL
 	select ARCH_MAP_DOMAIN_PAGE
+	select ARCH_PAGING_MEMPOOL
 	select ARCH_SUPPORTS_INT128
 	imply CORE_PARKING
 	select FUNCTION_ALIGNMENT_16B
diff --git a/xen/common/Kconfig b/xen/common/Kconfig
index a6aa2c5c1456..218357d593b7 100644
--- a/xen/common/Kconfig
+++ b/xen/common/Kconfig
@@ -44,6 +44,9 @@ config ALTERNATIVE_CALL
 config ARCH_MAP_DOMAIN_PAGE
 	bool
 
+config ARCH_PAGING_MEMPOOL
+	bool
+
 config GENERIC_BUG_FRAME
 	bool
 
diff --git a/xen/include/xen/domain.h b/xen/include/xen/domain.h
index 83069de50118..a34daa7d10ab 100644
--- a/xen/include/xen/domain.h
+++ b/xen/include/xen/domain.h
@@ -2,6 +2,7 @@
 #ifndef __XEN_DOMAIN_H__
 #define __XEN_DOMAIN_H__
 
+#include <xen/errno.h>
 #include <xen/numa.h>
 #include <xen/types.h>
 
@@ -114,9 +115,25 @@ void arch_get_info_guest(struct vcpu *v, vcpu_guest_context_u c);
 int arch_initialise_vcpu(struct vcpu *v, XEN_GUEST_HANDLE_PARAM(void) arg);
 int default_initialise_vcpu(struct vcpu *v, XEN_GUEST_HANDLE_PARAM(void) arg);
 
+#ifdef CONFIG_ARCH_PAGING_MEMPOOL
+
 int arch_get_paging_mempool_size(struct domain *d, uint64_t *size /* bytes */);
 int arch_set_paging_mempool_size(struct domain *d, uint64_t size /* bytes */);
 
+#else /* !CONFIG_ARCH_PAGING_MEMPOOL */
+
+static inline int arch_get_paging_mempool_size(struct domain *d, uint64_t *size)
+{
+    return -EOPNOTSUPP;
+}
+
+static inline int arch_set_paging_mempool_size(struct domain *d, uint64_t size)
+{
+    return -EOPNOTSUPP;
+}
+
+#endif /* CONFIG_ARCH_PAGING_MEMPOOL */
+
 bool update_runstate_area(struct vcpu *v);
 
 int domain_relinquish_resources(struct domain *d);
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Tue Apr 01 08:59:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 08:59:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.933687.1335615 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzXSs-0004FD-R2; Tue, 01 Apr 2025 08:59:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 933687.1335615; Tue, 01 Apr 2025 08: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 1tzXSs-0004EL-Ju; Tue, 01 Apr 2025 08:59:22 +0000
Received: by outflank-mailman (input) for mailman id 933687;
 Tue, 01 Apr 2025 08:59: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=heJ8=WT=arm.com=luca.fancellu@srs-se1.protection.inumbo.net>)
 id 1tzXSr-0003bM-UG
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 08:59:21 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 990b0e36-0ed7-11f0-9ffb-bf95429c2676;
 Tue, 01 Apr 2025 10:59:19 +0200 (CEST)
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 C12B3150C;
 Tue,  1 Apr 2025 01:59:22 -0700 (PDT)
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 4582E3F694;
 Tue,  1 Apr 2025 01:59:18 -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: 990b0e36-0ed7-11f0-9ffb-bf95429c2676
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 v4 7/7] arm/mpu: Create the skeleton for MPU compilation
Date: Tue,  1 Apr 2025 09:58:58 +0100
Message-Id: <20250401085858.2228991-8-luca.fancellu@arm.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250401085858.2228991-1-luca.fancellu@arm.com>
References: <20250401085858.2228991-1-luca.fancellu@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

This commit introduces the skeleton for the MPU memory management
subsystem that allows the compilation on Arm64.

Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
Reviewed-by: Michal Orzel <michal.orzel@amd.com>
---
The implementation of setup_virt_paging() is under arm64/mpu
because it will have a different implementation from arm32.
v4 changes:
 - Add Michal R-by
v3 changes:
 - rebase changes
v2 changes:
 - p2m_teardown{_allocation} stubs are now part of this patch
 - included missing headers
 - rename vmap-mpu.c to vmap.c
 - remove comment "Not used on MPU system" on implemented stubs
---
---
 xen/arch/arm/arm64/mpu/Makefile    |  2 +
 xen/arch/arm/arm64/mpu/p2m.c       | 19 +++++++
 xen/arch/arm/arm64/mpu/smpboot.c   | 26 +++++++++
 xen/arch/arm/include/asm/mpu/p2m.h | 21 ++++++++
 xen/arch/arm/include/asm/p2m.h     |  2 +-
 xen/arch/arm/mpu/Makefile          |  3 ++
 xen/arch/arm/mpu/mm.c              | 25 +++++++++
 xen/arch/arm/mpu/p2m.c             | 84 ++++++++++++++++++++++++++++++
 xen/arch/arm/mpu/setup.c           | 40 ++++++++++++++
 xen/arch/arm/mpu/vmap.c            | 26 +++++++++
 10 files changed, 247 insertions(+), 1 deletion(-)
 create mode 100644 xen/arch/arm/arm64/mpu/p2m.c
 create mode 100644 xen/arch/arm/arm64/mpu/smpboot.c
 create mode 100644 xen/arch/arm/include/asm/mpu/p2m.h
 create mode 100644 xen/arch/arm/mpu/p2m.c
 create mode 100644 xen/arch/arm/mpu/setup.c
 create mode 100644 xen/arch/arm/mpu/vmap.c

diff --git a/xen/arch/arm/arm64/mpu/Makefile b/xen/arch/arm/arm64/mpu/Makefile
index 3340058c08c6..cf0540aecc84 100644
--- a/xen/arch/arm/arm64/mpu/Makefile
+++ b/xen/arch/arm/arm64/mpu/Makefile
@@ -1 +1,3 @@
 obj-y += head.o
+obj-y += p2m.o
+obj-y += smpboot.o
diff --git a/xen/arch/arm/arm64/mpu/p2m.c b/xen/arch/arm/arm64/mpu/p2m.c
new file mode 100644
index 000000000000..b6d8b2777b58
--- /dev/null
+++ b/xen/arch/arm/arm64/mpu/p2m.c
@@ -0,0 +1,19 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <xen/bug.h>
+#include <xen/init.h>
+#include <asm/p2m.h>
+
+void __init setup_virt_paging(void)
+{
+    BUG_ON("unimplemented");
+}
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/xen/arch/arm/arm64/mpu/smpboot.c b/xen/arch/arm/arm64/mpu/smpboot.c
new file mode 100644
index 000000000000..5090f443f577
--- /dev/null
+++ b/xen/arch/arm/arm64/mpu/smpboot.c
@@ -0,0 +1,26 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <xen/bug.h>
+#include <xen/errno.h>
+#include <xen/mm.h>
+#include <xen/stdbool.h>
+
+int prepare_secondary_mm(int cpu)
+{
+    BUG_ON("unimplemented");
+    return -EINVAL;
+}
+
+void update_boot_mapping(bool enable)
+{
+    BUG_ON("unimplemented");
+}
+
+/*
+ * 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/mpu/p2m.h b/xen/arch/arm/include/asm/mpu/p2m.h
new file mode 100644
index 000000000000..e46d9e757a1d
--- /dev/null
+++ b/xen/arch/arm/include/asm/mpu/p2m.h
@@ -0,0 +1,21 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#ifndef __ARM_MPU_P2M_H__
+#define __ARM_MPU_P2M_H__
+
+struct p2m_domain;
+
+static inline void p2m_clear_root_pages(struct p2m_domain *p2m) {}
+
+static inline void p2m_tlb_flush_sync(struct p2m_domain *p2m) {}
+
+#endif /* __ARM_MPU_P2M_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/p2m.h b/xen/arch/arm/include/asm/p2m.h
index 594dc4004138..2d53bf9b6177 100644
--- a/xen/arch/arm/include/asm/p2m.h
+++ b/xen/arch/arm/include/asm/p2m.h
@@ -168,7 +168,7 @@ typedef enum {
 #if defined(CONFIG_MMU)
 # include <asm/mmu/p2m.h>
 #else
-# error "Unknown memory management layout"
+# include <asm/mpu/p2m.h>
 #endif
 
 static inline bool arch_acquire_resource_check(struct domain *d)
diff --git a/xen/arch/arm/mpu/Makefile b/xen/arch/arm/mpu/Makefile
index b18cec483671..21bbc517b51a 100644
--- a/xen/arch/arm/mpu/Makefile
+++ b/xen/arch/arm/mpu/Makefile
@@ -1 +1,4 @@
 obj-y += mm.o
+obj-y += p2m.o
+obj-y += setup.init.o
+obj-y += vmap.o
diff --git a/xen/arch/arm/mpu/mm.c b/xen/arch/arm/mpu/mm.c
index 4e9a2405d8c5..07c8959f4ee9 100644
--- a/xen/arch/arm/mpu/mm.c
+++ b/xen/arch/arm/mpu/mm.c
@@ -1,9 +1,12 @@
 /* SPDX-License-Identifier: GPL-2.0-only */
 
+#include <xen/bug.h>
+#include <xen/errno.h>
 #include <xen/init.h>
 #include <xen/lib.h>
 #include <xen/mm.h>
 #include <xen/sizes.h>
+#include <xen/types.h>
 
 struct page_info *frame_table;
 
@@ -17,6 +20,28 @@ static void __init __maybe_unused build_assertions(void)
     BUILD_BUG_ON(PAGE_SIZE != SZ_4K);
 }
 
+void __init setup_mm(void)
+{
+    BUG_ON("unimplemented");
+}
+
+int modify_xen_mappings(unsigned long s, unsigned long e, unsigned int nf)
+{
+    BUG_ON("unimplemented");
+    return -EINVAL;
+}
+
+void dump_hyp_walk(vaddr_t addr)
+{
+    BUG_ON("unimplemented");
+}
+
+/* Release all __init and __initdata ranges to be reused */
+void free_init_memory(void)
+{
+    BUG_ON("unimplemented");
+}
+
 void __iomem *ioremap_attr(paddr_t start, size_t len, unsigned int flags)
 {
     BUG_ON("unimplemented");
diff --git a/xen/arch/arm/mpu/p2m.c b/xen/arch/arm/mpu/p2m.c
new file mode 100644
index 000000000000..f7fb58ab6aa8
--- /dev/null
+++ b/xen/arch/arm/mpu/p2m.c
@@ -0,0 +1,84 @@
+
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <xen/bug.h>
+#include <xen/domain.h>
+#include <xen/errno.h>
+#include <xen/mm-frame.h>
+#include <xen/sched.h>
+#include <xen/types.h>
+#include <asm/p2m.h>
+
+int p2m_set_entry(struct p2m_domain *p2m, gfn_t sgfn, unsigned long nr,
+                  mfn_t smfn, p2m_type_t t, p2m_access_t a)
+{
+    BUG_ON("unimplemented");
+    return -EINVAL;
+}
+
+mfn_t p2m_get_entry(struct p2m_domain *p2m, gfn_t gfn, p2m_type_t *t,
+                    p2m_access_t *a, unsigned int *page_order, bool *valid)
+{
+    BUG_ON("unimplemented");
+    return INVALID_MFN;
+}
+
+void p2m_dump_info(struct domain *d)
+{
+    BUG_ON("unimplemented");
+}
+
+int p2m_init(struct domain *d)
+{
+    BUG_ON("unimplemented");
+    return -EINVAL;
+}
+
+void p2m_save_state(struct vcpu *p)
+{
+    BUG_ON("unimplemented");
+}
+
+void p2m_restore_state(struct vcpu *n)
+{
+    BUG_ON("unimplemented");
+}
+
+void p2m_final_teardown(struct domain *d)
+{
+    BUG_ON("unimplemented");
+}
+
+bool p2m_resolve_translation_fault(struct domain *d, gfn_t gfn)
+{
+    BUG_ON("unimplemented");
+    return false;
+}
+
+void p2m_flush_vm(struct vcpu *v) {}
+
+int relinquish_p2m_mapping(struct domain *d)
+{
+    return 0;
+}
+
+void p2m_domain_creation_finished(struct domain *d) {}
+
+int p2m_teardown(struct domain *d)
+{
+    return 0;
+}
+
+int p2m_teardown_allocation(struct domain *d)
+{
+    return 0;
+}
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/xen/arch/arm/mpu/setup.c b/xen/arch/arm/mpu/setup.c
new file mode 100644
index 000000000000..b4da77003f47
--- /dev/null
+++ b/xen/arch/arm/mpu/setup.c
@@ -0,0 +1,40 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <xen/bug.h>
+#include <xen/init.h>
+#include <xen/mm.h>
+#include <xen/types.h>
+#include <asm/setup.h>
+
+void __init setup_pagetables(void) {}
+
+void * __init early_fdt_map(paddr_t fdt_paddr)
+{
+    BUG_ON("unimplemented");
+    return NULL;
+}
+
+/*
+ * 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)
+{
+    BUG_ON("unimplemented");
+}
+
+void __init remove_early_mappings(void)
+{
+    BUG_ON("unimplemented");
+}
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/xen/arch/arm/mpu/vmap.c b/xen/arch/arm/mpu/vmap.c
new file mode 100644
index 000000000000..f977b79cd436
--- /dev/null
+++ b/xen/arch/arm/mpu/vmap.c
@@ -0,0 +1,26 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <xen/bug.h>
+#include <xen/mm-frame.h>
+#include <xen/types.h>
+#include <xen/vmap.h>
+
+void *vmap_contig(mfn_t mfn, unsigned int nr)
+{
+    BUG_ON("unimplemented");
+    return NULL;
+}
+
+void vunmap(const void *va)
+{
+    BUG_ON("unimplemented");
+}
+
+/*
+ * 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 Apr 01 09:02:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 09:02:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.933775.1335625 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzXVU-0000Tm-98; Tue, 01 Apr 2025 09:02:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 933775.1335625; Tue, 01 Apr 2025 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 1tzXVU-0000Tf-6S; Tue, 01 Apr 2025 09:02:04 +0000
Received: by outflank-mailman (input) for mailman id 933775;
 Tue, 01 Apr 2025 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=WxAi=WT=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tzXVT-0000TZ-Ca
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 09:02:03 +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 f850c840-0ed7-11f0-9ffb-bf95429c2676;
 Tue, 01 Apr 2025 11:01:59 +0200 (CEST)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-39c1efbefc6so793932f8f.1
 for <xen-devel@lists.xenproject.org>; Tue, 01 Apr 2025 02:01:59 -0700 (PDT)
Received: from [10.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-39c0b79e136sm13594597f8f.67.2025.04.01.02.01.58
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 01 Apr 2025 02:01:58 -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: f850c840-0ed7-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743498119; x=1744102919; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=0rh1MlzLcKRGud8Gqy7zKpiAgAmPuaUeoP2Pc6JhElo=;
        b=fJQWVagiZUwhYfoXARi/6hYBX8vWDtu5opcVCmN0mwyWLRfLh2faByMmctMIgmQb4H
         BSo/0IQK5uSOti7Ie/z9WsHf3VCr8PBVymdrwbqv9lTe0cGhzmSr4qrQk93nKyYkM/RU
         mxinB+66Pht9zkKCokT7eNbSIOWTXGtbBMZUJadms5d5IX4ZD10rFbJEkmZe6rLPs2VG
         EXIyLp6pAHukreKQPFH/P3t6R9ZaF9EbAVCDTSorsrKX6c5UcNIVhjUUv1Fl7+QKs6WP
         IXCj0ew87uVdXWxpQh93MGSoc/FpoADnPUqwdhg4uF8xOHD7mYRvs37cyZZzGT5W9qo/
         tNoQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743498119; x=1744102919;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=0rh1MlzLcKRGud8Gqy7zKpiAgAmPuaUeoP2Pc6JhElo=;
        b=K5Ii4Pmtd68EZt4ZxWAsM5FCxoyuGbDMuVR2e44NSGZ3TY7YnIJdMlbxg8KgV6Tmgk
         Lb7cM2+4dGo32ZVAXQsQYt9XmSXgzUmWb8e6+ftwP3fVuiCdBlkvVZAT3UKsTidQtHUl
         rTJGZcbXnzXQylhmOtQyTMmQRqHAvKpnTlXy1lDMa6gStowZsJJFu+eCdX1WFCbCJ8p0
         HkvahPOZYezLMXKVLnu6qirdR4pONViIcrVFAHKlW23XIMdF/ScbUEkkIPe+/Z7PNGNQ
         Ug6WjJka0Lpjwd8/0zI0fNtFT0MsFy/9PCX8N/rdMzHQITRQSfVDgArbRZXpcEqZTNB6
         SCfA==
X-Gm-Message-State: AOJu0YzDHZqbIVlH13j0by+ONBYwvuQs2SpK3kNOJL6DqyotdeG5sMUc
	emlL5aUYBrb4rCbfJQSyNZtfySjI1meLYzlQ3W/Y0OareTZLfMdexxrg/JgwvA==
X-Gm-Gg: ASbGncs69IrzlAUb1VNTvLQ43OUWkIVX1+nraaGIhbh8w73eeIkyl0F3SuS7ssUWa/1
	GdmrkFNuLJGj9B5unrfdDdiXfNYTmFdBEYXWZ8fsjppyToUkgOsrlTUlHnI7NK5oK86VhEZhTyW
	vdu3aGjf9BifoRtt48/VXkcqSGzQI/e1NHtwdLo0cbdjRThtXC8frRDH+r2hml39FZ2LJg1hfhK
	f0aFjk1V8ksF8Rxa1WfqjRAT895yZBByWPZlmpnagRy5F8iy38QoYw4OT+8BrFvVHwHe/yI/am1
	4fOgY8Z8zkclO0EfPUUQL/X+HzYbYUMdFLvkPmVKmBzKr5kWF9RPChgKYCPApRb8sx8yDWkNzAL
	rYKCbAcqRwhEw0KEDaFkhr02fD4x9UQ==
X-Google-Smtp-Source: AGHT+IEbrm+sD2dy/Wgc9WB37KWJkWnSJdZenG0HuGYZLPhb1o9gapqPsGz1nt3pmvu94ER0lXIurQ==
X-Received: by 2002:a5d:588a:0:b0:39a:d32c:fb5e with SMTP id ffacd0b85a97d-39c120deb56mr9283793f8f.21.1743498119121;
        Tue, 01 Apr 2025 02:01:59 -0700 (PDT)
Message-ID: <a0148fb5-0b0f-4fe7-b31a-ea220965c662@suse.com>
Date: Tue, 1 Apr 2025 11:01:57 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 01/19] xen/x86: remove "depends on !PV_SHIM_EXCLUSIVE"
To: "Penny, Zheng" <penny.zheng@amd.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 "Huang, Ray" <Ray.Huang@amd.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 "Orzel, Michal" <Michal.Orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>
References: <20250326055053.3313146-1-Penny.Zheng@amd.com>
 <20250326055053.3313146-2-Penny.Zheng@amd.com>
 <alpine.DEB.2.22.394.2503281655590.563920@ubuntu-linux-20-04-desktop>
 <6b3c3baa-331c-44fa-9085-9b0bf72c62a1@suse.com>
 <DM4PR12MB845170590A152B7AEF4D4153E1AC2@DM4PR12MB8451.namprd12.prod.outlook.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <DM4PR12MB845170590A152B7AEF4D4153E1AC2@DM4PR12MB8451.namprd12.prod.outlook.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 01.04.2025 10:41, Penny, Zheng wrote:
>> -----Original Message-----
>> From: Jan Beulich <jbeulich@suse.com>
>> Sent: Monday, March 31, 2025 2:30 PM
>>
>> On 29.03.2025 00:56, Stefano Stabellini wrote:
>>> On Wed, 26 Mar 2025, Penny Zheng wrote:
>>>> We intend to remove all "depends on !PV_SHIM_EXCLUSIVE" (also the
>>>> functionally equivalent "if !...") in Kconfig file, since negative
>>>> dependancy will badly affect allyesconfig.
>>>> This commit is based on "x86: provide an inverted Kconfig control for
>>>> shim-exclusive mode"[1]
>>>>
>>>> [1]
>>>> https://lists.xen.org/archives/html/xen-devel/2023-03/msg00040.html
>>>>
>>>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>>
>> Where's this coming from, if I may ask?
> 
> I said in the commit message, this commit is based on your commit "x86: provide an inverted Kconfig control for
> shim-exclusive mode"[1].

I don't think this belongs there. Also recall what I said elsewhere about
"This commit ..." and alike not being appropriate wording for commit messages.

> So I think I shall add-in the original author, if it is not the rule, I'll remove it.

Please remove it. You necessarily touch a few of the same places, but that's
about it. I accept this route being taken, but I don't agree with it. I don't
want to be viewed as a co-author in such a case.

However, you having gone from that patch (which had an entirely different
intention), has lead to the patch here being incomplete. At least my
understanding of Andrew's original request was to not only prune Kconfig-s of
the dependency, but also e.g. various Makefile-s. Possibly even .c and .h
ones. That clearly wasn't necessary with the approach I had taken. Please
consult with Andrew to confirm.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 01 09:09:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 09:09:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.933790.1335636 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzXcz-0001AX-4b; Tue, 01 Apr 2025 09:09:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 933790.1335636; Tue, 01 Apr 2025 09:09: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 1tzXcz-0001AQ-1L; Tue, 01 Apr 2025 09:09:49 +0000
Received: by outflank-mailman (input) for mailman id 933790;
 Tue, 01 Apr 2025 09:09: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=yHas=WT=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1tzXcx-0001AK-79
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 09:09:47 +0000
Received: from NAM10-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam10on2060b.outbound.protection.outlook.com
 [2a01:111:f403:2413::60b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0da11553-0ed9-11f0-9ffb-bf95429c2676;
 Tue, 01 Apr 2025 11:09:44 +0200 (CEST)
Received: from BL6PEPF00013E11.NAMP222.PROD.OUTLOOK.COM
 (2603:10b6:22e:400:0:1001:0:17) by DS4PR12MB9684.namprd12.prod.outlook.com
 (2603:10b6:8:281::11) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.44; Tue, 1 Apr
 2025 09:09:41 +0000
Received: from BN3PEPF0000B069.namprd21.prod.outlook.com
 (2a01:111:f403:c803::1) by BL6PEPF00013E11.outlook.office365.com
 (2603:1036:903:4::4) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8583.39 via Frontend Transport; Tue,
 1 Apr 2025 09:09:41 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BN3PEPF0000B069.mail.protection.outlook.com (10.167.243.68) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8632.2 via Frontend Transport; Tue, 1 Apr 2025 09:09:40 +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, 1 Apr
 2025 04:09:39 -0500
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, 1 Apr 2025 04:09:38 -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: 0da11553-0ed9-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=EkG/I8ehET7N/0ntQI5GQ8Uj5I0/qeyDo8RC0k5Hytt6IDqEokLk4dcPP/FNHvb9Sk5VXbDFetz66NyMjIpqwmh/ZdxwgcCiMR4RaQ5G8JMY4jVADBgh1eyQeqYZTBABG95hAkmBna9BdlmEnP4/O/TUQFGjteemNTIN6TgoaV0X2VuTA/zjdW4PLj3uZ0oauQgiYvsQ6z+/0Q2bwxDC/ZF2mMzmq1qL/UpmIurp4Jv4UlYvLEiA2+kWAiam56hvHErGQbVxHNYb6ZaUf4+86eaD0JizIWSPEBb/ULA4rVx+uItdYJu0HjWcu6XW+C13N6VNevsxQIenv09EPB9XOg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=1xofejERuiNYRNRtkzxZ8405VkZ3ajr+w43Np80D7Zg=;
 b=VGfcBoz/ZuhjklbMiawrXU/zKqhA5nZecmCZUowK0ldms1BifIQIG7wu5dYUgV97TnQwigPunw5/biKjgx1i5YQ+cx1Pv0avI9RyhDvUfK8kfsclUO53kawttRVQLT75EHSDMZ25h4FK5aGBs/d4mr4Km2ieFfS/sYFOeMHDYCh39njOy8bMb3/ML6uaSskFw1oShBLgLo3TmFaos9dAsVneeKkmeujblckhOV20V8N5rmklE02HBs3HeaEAi7u/8JxKZuKC6Lh9mAuICYpewgsgAFzkQ4mvY1g7VWlkTmdzKwLR46LFm24ej7ATYyquq5dxXuEELsjVYPp6qwXIRg==
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=1xofejERuiNYRNRtkzxZ8405VkZ3ajr+w43Np80D7Zg=;
 b=cpidvbtuo5lJVX60Myy7cDl6xtHKpwmS2EDG6VxCHjI3cpUodT0NKkBM1zfWRHmSXKeOC8QbenST7O0fX+Yu/6G7UjO1eIvuYfSynBeoYdEF6YloYcsZKqE9AK4BygKv9tdOChJ+MypP3D5azNabUGcBTF/owQQ/bqQBfgYxUoI=
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>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH] xen/arm: Drop process_shm_chosen()
Date: Tue, 1 Apr 2025 11:09:37 +0200
Message-ID: <20250401090937.105187-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 (SATLEXMB04.amd.com: michal.orzel@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN3PEPF0000B069:EE_|DS4PR12MB9684:EE_
X-MS-Office365-Filtering-Correlation-Id: 3143e36a-62bf-4e12-069d-08dd70fcef56
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?2zaCbIFbqlsoaKNrQfrJhhnGlCsKqck/504OxMIi1UrBF6GA7c36o2lBw7hh?=
 =?us-ascii?Q?V2o2Lb+P9q0RCrzBpmSpxATMk3VDI6+vLuVuvdaRyphAT36fc2poRZf23wTM?=
 =?us-ascii?Q?5kr5mzw+hYYlf3qw04jhlqa5CrTQyjknxVeiPUT6E/jLHcnz96lexz1ro/9t?=
 =?us-ascii?Q?IvhtFL0RyDKyc9pKKGVIWPhN3/OSyjccUq/gZ5HnJs7cjcr4oLy2P4KV6xzy?=
 =?us-ascii?Q?BoU5iEgb1bYodsPJWn24s06QHkqQGtkB3dLHAfbiJC+mRumBcahFHL44G6Iw?=
 =?us-ascii?Q?AWZuxJ2fFExPb4zCijCwxAT/F3zfQ7Ew7KeMAms5uS5p7e43lQVtfCej0KHl?=
 =?us-ascii?Q?VBGF5SEASsGAXOaJJSFJf6szSpcwFFYF4epnoWHkcfYEIeJRzYl5XP3If4J2?=
 =?us-ascii?Q?rmNYUlODQMEa51m6Num7Xzwml+OxOiFQHlN4aT2lfePmCzZh6FyiR1sLqggf?=
 =?us-ascii?Q?SmAv8D0KMSuPO8lVEWbAhGpftpnA/QAgwsKOPBQIAFJ2HWRCweg0t1ksuhNS?=
 =?us-ascii?Q?vMda4XiaOQWLK7cJo1LVhk4+hyGtm6Ha2YXAdz0c6qb2j4yPGAfpMd254tM6?=
 =?us-ascii?Q?c+3oKQvF6skhifoGWh6o79+TakTWUgn6HVGLk1fHEXkkf0A/bgoOkPVgt3n2?=
 =?us-ascii?Q?T5R/Eev8OBplu0lK+ynwCekxHE+9mNqg0RvHQHcJ0m7McycLsDyAiuoD/ui2?=
 =?us-ascii?Q?XbsdXgvOqFH0mUHkTOZZ2vZyvfbrhlAZPn5hewJ7u2y4QK6Qnh4czZpDpmsM?=
 =?us-ascii?Q?hQ+aEHxNU804g/hp8CEYKq/QudgXjuXikEATmQk+r4DZbXLas63Dnzj/XxPw?=
 =?us-ascii?Q?umXfE+gCBuOw8Zg6rFaoBSbJOGLTjwPQb084j9bVmaQ7iQvYgyYcNHOGQ3NV?=
 =?us-ascii?Q?Vh9b5y6cDsrWbBpudIa0Abi73b+uM1hzUZg63P7ciAFEZLT+jkL1aulFrO6N?=
 =?us-ascii?Q?WtQl90Qq3W2nwFx2HDXM54FHpZ1O94R7cP0iFDfwy2LiwotyeoHSgOusUn8j?=
 =?us-ascii?Q?SE5BHj1QFo+fS1VuqYdh0KfsLMKSBYoI5oCsMB+hL6AsdoleWitfxUyQxRMM?=
 =?us-ascii?Q?h9cw1l/6aveTcDWwR8Kd/5kG2vL/ezCnNqq+jNWBosHyUO4sUsmNSY9Jiaaj?=
 =?us-ascii?Q?zk08NPX8FszmaDzB98ydyCkngYOWQGKg6OAofT8EZfVWI1ZZjZaWSrXnxvKm?=
 =?us-ascii?Q?tC+0MgXvj1/oMxuU27F++GLzGgaAIjq7TzpO0B88nhckBX86lyrid3+/XYkb?=
 =?us-ascii?Q?dDJpPsbHkpLO4V+V3RABmxmEhG37/42VonwDj2+JHZh7EUI4hjAiQK/oQkUC?=
 =?us-ascii?Q?jEIaWWJPW+4h1EeBFrNP3xeNQUwMMp/g21aCMnc3tP5cd+7y2aoL/44vuCSn?=
 =?us-ascii?Q?EB5jd5cFZxYLqKVfLFIQJccI3RHE/w6NvCBUQnW5VF6K8hPnibIrdbga2i7Y?=
 =?us-ascii?Q?RanbE0e0q4DEi8GHtz6Y2dhBiwrt2SHF7pnGjnQ3Lz9w3SmJPP6w2M9nVdj0?=
 =?us-ascii?Q?ExVdCC0CE7LAhco=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: 01 Apr 2025 09:09:40.5519
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 3143e36a-62bf-4e12-069d-08dd70fcef56
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:
	BN3PEPF0000B069.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS4PR12MB9684

There's no benefit in having process_shm_chosen() next to process_shm().
The former is just a helper to pass "/chosen" node to the latter for
hwdom case. Drop process_shm_chosen() and instead use process_shm()
passing NULL as node parameter, which will result in searching for and
using /chosen to find shm node (the DT full path search is done in
process_shm() to avoid expensive lookup if !CONFIG_STATIC_SHM). This
will simplify future handling of hw/control domain separation.

Signed-off-by: Michal Orzel <michal.orzel@amd.com>
---
 xen/arch/arm/domain_build.c             |  2 +-
 xen/arch/arm/include/asm/static-shmem.h | 14 --------------
 xen/arch/arm/static-shmem.c             |  4 ++++
 3 files changed, 5 insertions(+), 15 deletions(-)

diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index 2b5b4331834f..7f9e17e1de4d 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -2325,7 +2325,7 @@ int __init construct_hwdom(struct kernel_info *kinfo)
     else
         allocate_memory(d, kinfo);
 
-    rc = process_shm_chosen(d, kinfo);
+    rc = process_shm(d, kinfo, NULL);
     if ( rc < 0 )
         return rc;
 
diff --git a/xen/arch/arm/include/asm/static-shmem.h b/xen/arch/arm/include/asm/static-shmem.h
index fd0867c4f26b..94eaa9d500f9 100644
--- a/xen/arch/arm/include/asm/static-shmem.h
+++ b/xen/arch/arm/include/asm/static-shmem.h
@@ -18,14 +18,6 @@ int make_resv_memory_node(const struct kernel_info *kinfo, int addrcells,
 int process_shm(struct domain *d, struct kernel_info *kinfo,
                 const struct dt_device_node *node);
 
-static inline int process_shm_chosen(struct domain *d,
-                                     struct kernel_info *kinfo)
-{
-    const struct dt_device_node *node = dt_find_node_by_path("/chosen");
-
-    return process_shm(d, kinfo, node);
-}
-
 int process_shm_node(const void *fdt, int node, uint32_t address_cells,
                      uint32_t size_cells);
 
@@ -74,12 +66,6 @@ static inline int process_shm(struct domain *d, struct kernel_info *kinfo,
     return 0;
 }
 
-static inline int process_shm_chosen(struct domain *d,
-                                     struct kernel_info *kinfo)
-{
-    return 0;
-}
-
 static inline void init_sharedmem_pages(void) {};
 
 static inline int remove_shm_from_rangeset(const struct kernel_info *kinfo,
diff --git a/xen/arch/arm/static-shmem.c b/xen/arch/arm/static-shmem.c
index c74fa13d4847..cda90105923d 100644
--- a/xen/arch/arm/static-shmem.c
+++ b/xen/arch/arm/static-shmem.c
@@ -297,6 +297,10 @@ int __init process_shm(struct domain *d, struct kernel_info *kinfo,
 {
     struct dt_device_node *shm_node;
 
+    /* Hwdom case - shm node under /chosen */
+    if ( !node )
+        node = dt_find_node_by_path("/chosen");
+
     dt_for_each_child_node(node, shm_node)
     {
         const struct membank *boot_shm_bank;
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Apr 01 09:17:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 09:17:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.933802.1335646 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzXkh-00046m-Ss; Tue, 01 Apr 2025 09:17:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 933802.1335646; Tue, 01 Apr 2025 09:17: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 1tzXkh-00046f-Pv; Tue, 01 Apr 2025 09:17:47 +0000
Received: by outflank-mailman (input) for mailman id 933802;
 Tue, 01 Apr 2025 09:17: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=Br0a=WT=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1tzXkg-00046Z-HL
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 09:17:46 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on2061e.outbound.protection.outlook.com
 [2a01:111:f403:2412::61e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2ae7da66-0eda-11f0-9ea7-5ba50f476ded;
 Tue, 01 Apr 2025 11:17:45 +0200 (CEST)
Received: from BL1PR12MB5849.namprd12.prod.outlook.com (2603:10b6:208:384::18)
 by SA1PR12MB8641.namprd12.prod.outlook.com (2603:10b6:806:388::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.44; Tue, 1 Apr
 2025 09:17:40 +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.8534.043; Tue, 1 Apr 2025
 09:17: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: 2ae7da66-0eda-11f0-9ea7-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=V7Xva29WQPHc1UDrH4oZpwJv7nHB/zIE/vJcIq17VyXb9Wta2YM0uvMlfYNwFtYkSC7Ugm2bQZpqilUwmsF7uODVmXOeuzEP0G8i4r2XIwSphgSZeM9gqcE0bfxqAMpz0ea/rHPFgepjoM6tQTv4/wypBpG9UFIhMV938JPNODFw5mXQJYIqVprbxOHC/sFwoZ1qG5AawJzrGfVYQwjAgYEa6GUEylJHKjCvFdb/1hXQ58NToGk1+dC4hBSfW2DLAC3ODzMoGXbodoDSxTNAQpHcKeWg2yf1Zm3LmM/p2bp4IE8MvqZL2WEfJmDIEU/ks8pqTj94WvzUsTUxm3ioZQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=m05oKeqOmUwBWuc8B5wEYGYklrb7uaZ6HRfWR+nH6r0=;
 b=Wql0SfYuqdv6Mfvp0XX49irV1UzV3Cx4Pf02eG1xeltzZLCGT1DI/nEVLS0pcXZwswz+WZSLOV6EjUIzsIo30IpzOuf8frSInuo3qWOu7ZAxHSHzKJRsNRQ7qKTwXvXV/BEDpAxlh6SY7n7ktEcxK1JMsT/AR9hTsba9oaEdkmwwFusvZWb+rG1jd+N7qOtAsEB5g78YTIau6YQLkbEeqvAbXwx6fWbqQQ5gWm2Nt6SB03qUSjrtBI2kIgObNomlPsnO7Jkah9RS80qfvILECoEH8tAR4qj6eNH8wrF4eP6L/9l6ELI8EaeFtQo5FaAWC9pHPx7jwe0pxDqvsteE6g==
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=m05oKeqOmUwBWuc8B5wEYGYklrb7uaZ6HRfWR+nH6r0=;
 b=5X+3cPxIyxt+79/RcHOyk6AzuhE3GkNTHT2njjaYo8rxz/fCkK6jhrZLWpwlTnNVR4RYPS/KyeRMeWhvAAzdEIDYOG6uHLfKKopVfd8DzH4imGUQaW0Rp8FtJu71Xm//110e1goQvkfMRzg27SxFRvvkYdQNRs0kVF7vVVcfXno=
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>, "Huang,
 Ray" <Ray.Huang@amd.com>, "Chen, Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [PATCH v1 1/3] vpci: Hide capability when it fails to initialize
Thread-Topic: [PATCH v1 1/3] vpci: Hide capability when it fails to initialize
Thread-Index:
 AQHbnup9DfRmpRg4a0apmzEwGKAL0LOGtpyAgAamp4D//5bVAIAAjtkA//+YpgCAAfg2AA==
Date: Tue, 1 Apr 2025 09:17:40 +0000
Message-ID:
 <BL1PR12MB5849A28F132E9C19F0E6102FE7AC2@BL1PR12MB5849.namprd12.prod.outlook.com>
References: <20250327073214.158210-1-Jiqian.Chen@amd.com>
 <Z-UZm5sTIz4nOt4-@macbook.local>
 <BL1PR12MB5849F1134D9E51E6A0F7B4A7E7AD2@BL1PR12MB5849.namprd12.prod.outlook.com>
 <Z-pVrGLZTCk1ZXb1@macbook.local>
 <BL1PR12MB5849783E854628DC49F9A609E7AD2@BL1PR12MB5849.namprd12.prod.outlook.com>
 <Z-p2zgB2tUtVd7hP@macbook.local>
In-Reply-To: <Z-p2zgB2tUtVd7hP@macbook.local>
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.8534.033)
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_|SA1PR12MB8641:EE_
x-ms-office365-filtering-correlation-id: a6262f8f-f971-44b5-c849-08dd70fe0d5a
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?ZFk5WHR1QmJSQ3B2WXpwSjdQV1VGU1p3ck9iRGlJSHJ3czJvbHZEUmV0a0Zj?=
 =?utf-8?B?bTJSRzN2TzA5OVhWYWJLV2dmQlEyNnFVdGNGL0NzMXFOTGloMEttc0FEamxl?=
 =?utf-8?B?QXBmNjFTUlZpd2o4YW15VXZHaE5ra1VpdkFFS2NtZnF0WlBkNjlpWHp1dDFC?=
 =?utf-8?B?NEVaSWM4eldSNk9pNENtTEJmUWdNYnJiUDFudWdBbTN6bDYvdkJqZDE2Q2Zq?=
 =?utf-8?B?U2J0NzkydkU5VHpJVkF5ZzVKK202ZXhQbW8xVktZVDRiRTY3Z3lqaDhRVkI0?=
 =?utf-8?B?d0Z6Vk9Xd05DYWNZWVVpNHVJdWlEaGIrTlJMUWY3Vm4zNkZ6QnJ4YS93VnhJ?=
 =?utf-8?B?a0tqMjU3dkxnUk9COElqanZaYWkrcDNaU2w1aEkzK2htTTR0ZnVGU2MranlN?=
 =?utf-8?B?dlJTVUxIMlJtTUhiSHk4Z0lieEdYSm5uUC9HSk5KS25UaU5tVTJHSEJ2ZXYv?=
 =?utf-8?B?ZGpwR3ZKUUloemRFUE5RWDdVaHZNSVI0WXl6Q1d2cFdtcDN4SmxEa21VZUNt?=
 =?utf-8?B?eUVDQUtCY0R0bFR1cFRDejdEa2F6RVp2RjJXRThYVTU0ZFhWWjFuSmVmL1lZ?=
 =?utf-8?B?VGRyaFV0U2xwcHJHZnhFbXg4bkdqaXJVUUx1ZU5KZ1JKVThJMXBNWm5raGZE?=
 =?utf-8?B?bTE3NmRwN3l5QlE4L0F2QmhuM01jQ3R4WWxyck45TGxSWVI5dWw5aWllVm5P?=
 =?utf-8?B?NzZqd29ncVFBdlZlaXV3UFZrNW9OdC95NUllTmdpVHc1cGNhdHVuOFBCTlc0?=
 =?utf-8?B?cEd0TE9KUmxPY3lyeXZ1WDYzUmFuQ2M5eHBqdmFkL3R2eWY0b1hFZkJkV0k4?=
 =?utf-8?B?ekJWNkJjUURtczdrVEhNYXR5Q2hHakk5VVF6OVVSWkw2dm5MeTNQUW1aWXNm?=
 =?utf-8?B?cmovQy9KZlk1U0N3TlpsNnphSVpGdXRlUmNTWkJYczBCUWJsYmVLOHpONnVI?=
 =?utf-8?B?QXV2cFBCQVFFQ2k4VElJOXlJeDRaTTZ0MnI0SlFucS9YOC9SRGV2cUdNZ0dD?=
 =?utf-8?B?Um1uWGUwUEU3czV5WUJiM3R6T1pNaERkbjBialo5WWJUc1ZmWlZNNnBRKzI2?=
 =?utf-8?B?YjVOZ3VjTjZRYmZUSXZtTkM1N0Z6NkViaWsyYnlHd1dIUStOTUNSK2R4SS9k?=
 =?utf-8?B?MTVxMU1TR0JHVExwekpJWGhEeGlsZEVZSUx4MGowWUo0S3YxRXM4K3hPT1VY?=
 =?utf-8?B?SmYzeXZUSHJhdDVTb2pXWm02dTkya3J1SWRhdWdFQXYzdDQza1RjUm9uaU9q?=
 =?utf-8?B?NU83bHBMVlFmSDR3eHlVelc0WGNTRTNld092MGZJVzFDeWNZWVpWZUhiMEMr?=
 =?utf-8?B?V3h1dnFYZlQrZVJzeVI3MmlOZkFDUkt3TUlYUStDWUR4ZkpVaTNYM1ozOGFG?=
 =?utf-8?B?bENmREhSN3lieldHazNJM3BMTjVDTVMvRGdVZXFZa1N2VktmSTJHc3ZmMUw5?=
 =?utf-8?B?clRObEVGcm5SeXBPbG1tZmE3RHEyVDliTStQdjlQVTlHb0Z0TDNPNkVmSXFC?=
 =?utf-8?B?N3k2K0doK2E4ZkVWdXphMnNyeVVoKzNtR1ZQcWJkTWVrQXhxQzc2ME5jbnk0?=
 =?utf-8?B?SUlPNElvVnR0a3pPMExYaHV4Zzl6NHlHZk95VzQ4MTBDTld4OVM1T2x2cSsy?=
 =?utf-8?B?N1VkS1Ixa3UrRDd2S3FVOGhHRWhzRVdVaUJkOEFUbVFCblN4L1VKWTN6Z0Q3?=
 =?utf-8?B?U0J1QWRpeWNZSmgwekNHa2dLV1daditraUNtRGxBVjM0bkVWZkdCZXNlWWFw?=
 =?utf-8?B?MTJlaWtsMm9MWEh1YUhMbmxwbXptbTYxNE95SXlRdlJKZWhJS2NNbUhLcTJr?=
 =?utf-8?B?QUtVV3R5YU9mVjRVeXhLWU56dHJRMHRxaXJER0VSQTd3RTNBdnlGKzhWV0F4?=
 =?utf-8?B?M3VzQ1ZFU3ZSTHRmM0U0ZlQrNWFIREhMbFVQZEhYU1RnOVExMTNhbzd0RTQ3?=
 =?utf-8?Q?ve7PGp3KTarT3iC4lgoIaYkC5YWFWS+x?=
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?VW9tdEFXa3NBK0NaY0hpZVZYaHFmaG1iRy90bkZzL0xoM1pkMjFhcUF3aE1w?=
 =?utf-8?B?SEZhSEhVdk5HNkgvWjVGTmNVVmlId1RaZXE3U2VjRndKQk5JTzd6M2FaMFlq?=
 =?utf-8?B?Rkw5OU5EUEFIZmFrZFpJSU5rcE1ITHJ0bmdNeVRqYU1qY2xIRFVJeGF4M01w?=
 =?utf-8?B?ajhVVVg3V3pwaXREdFp0ZUd4SXBBVlJvWGtXSHRTUkVXYkpjT0JjbnhDTU9Y?=
 =?utf-8?B?Z0E0TFlrRkRzWVAwNjlSdXY1UVF4aGF2REowSHppLytKNmxQdndraDNjM2hw?=
 =?utf-8?B?L1FkZndIeVdpVjV1S0NTcTg3V0VxT1JRZlVyUlFIVDVSMFZXcUplc2tCU3Jz?=
 =?utf-8?B?L3NxOE91Y1hOa0lRV0dLc3pnWUU4QXFqSWtpZmFxOE4rNEpKL1oxRmh5UTlp?=
 =?utf-8?B?R1kybFA3TFBQYktGZmRjcWNseGdYMVdLMVpqc2FWa0ZneE92YUR0eE1jV3I2?=
 =?utf-8?B?RDlGSVVLUklrRTN6MUdLVElXQ2UzOWxCOTJybHBwanRIYU9kYVBNTEtGRWxN?=
 =?utf-8?B?dEcxTGEwa0VrcGlldjVteHllNzBzR2VFRDl3a2VacmFFK3NmN0ViRXoxeGo3?=
 =?utf-8?B?a241MWZRNVE0a3lISVVuaGFFL3ZPTmdxMTNkSFl5eEZobFk3aDVLQ3BuZUhL?=
 =?utf-8?B?TU1HRDJzUUUwa2s0ZndUaWtUVFRnUk50ZUVkMi8yR045a1NYSVBsdVZDb3hy?=
 =?utf-8?B?V0hqa25lMC8xUHN0T3RNN1k2MWZMTTZGaWhRVVNKdXM1b0xEM2VxS2hLNTRU?=
 =?utf-8?B?RnVoc0FISmlIY2QvcFhWUXM2bFM0TnVjZGl0ZVN1TXJLYmtTd0VnMHplbG9k?=
 =?utf-8?B?aXpVQTAybzFmckpuNGVtcDZiTFF3RjdyUHF4VzhCcjVEN1pWM1duQk1ualdi?=
 =?utf-8?B?OVhicWxmTXpnelQzQmZrdndoSVBwSXd6dDhZMlc0Z0xQckZleENKKzBGL2Rw?=
 =?utf-8?B?NW8veTFXb0NXNDBIM2htVjdjV2FMUzBzblVKREZhQjRhSkRGand3anl6eG56?=
 =?utf-8?B?d3BZMWw0bnlBZ2JGUFZKMEdaSTdoaDU2NmxkUGE1Nzk2R1VZV0tySUdINnlk?=
 =?utf-8?B?ZnpnNW9ZbS9rZ2J5Z1dEMktpWEtNL3l5VHQxM3NNM0RTbnk1cSswSmxZUm0x?=
 =?utf-8?B?U1Bhdzk2QVp5L1huYllPbTJHSDFRY1RnckUwTFN3U3lCeCt3bXo4MW1YOFFl?=
 =?utf-8?B?K2NpdVkrVjNOdEh1blV3WVFhTEh4b0xCc3AxWnp2S0QrRWVMR0dIT2RQZmdm?=
 =?utf-8?B?bTllSjlDNkkxUm9rMTZXeHFTSFVSd01nVVh2WklCMXdNc1V0WGJEVXpLRVpD?=
 =?utf-8?B?bk9seW1Vbi9hbmF4Z2pFV0w2SWwwSkthY0RkMWJqenlwKzZZenluUG5JczJ2?=
 =?utf-8?B?SE9lVWJZVnUwVWE2c3A1SklranlWT09JN1JHd2tENkxsbkhKQUJtbHo5M0p5?=
 =?utf-8?B?Qm9rdk9vbmJFdSsrZzNJczR5SHRJbXZXUWZyOVdEOXlweWtnL2JTR1FIeGh1?=
 =?utf-8?B?NjZWRG83aGlML1pRWDBtYXMySGtrRnl5bHh3d0dYMUpFaTc5aW04cVFaS2JB?=
 =?utf-8?B?RzdGUFB1Q3BaWjBUbFBTWC9JdUFLQ216L2IyZFNkcnFtWk9kNWl1cTdDd2tk?=
 =?utf-8?B?MHNZbXdWaGFDdm1md25Ud3QrcDdJaWwzVkdtbytiNHFZVG5DNVRlSytqRWVW?=
 =?utf-8?B?ZU9sSUZiM3VoakduK01LUWVPZGo5NjRuL3hMbU5wc2RWRWpOMFBEb2xaVEww?=
 =?utf-8?B?aVV6L3RNUUdWQlkzNVJnRythVDZzVUk0dTQ1cm85M0FHWjFReEhwckd0cGVJ?=
 =?utf-8?B?OURJd0dyVHlwMDVkQ3k3MFc5Z3FROUh0SHVZSTF2WnZyQTFPTHovcWVON1JU?=
 =?utf-8?B?NXBlRTJOVkZFSUh5ck9rRDBqeEgxSXE3SFJpOUkrQ3NkY3ptSVFvb1M3T3dK?=
 =?utf-8?B?ZHJEcWNQd2NqU0xtQk5ybjQ4bFAvUTNhRTMzQUZSNk10T1dROWZTandEVkw0?=
 =?utf-8?B?MEVTMWttZ0pTK1JLM2RMdDhGZzZzR1ZLS2FlMStoMHE2S0hZSXNaVmk1K2d3?=
 =?utf-8?B?dkIrWHVpRXpWNG51aFd5dGJTVUc4QmdSZGVQQkpwSk9rR1NseXkzaFRKb3Ba?=
 =?utf-8?Q?kFKI=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <EA4512F0A46BFC4E9579459B4D8CAF9A@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: a6262f8f-f971-44b5-c849-08dd70fe0d5a
X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Apr 2025 09:17:40.4263
 (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: nYAv9pxz2B4E1dPT9+SdDKQIxad5cNhBNUKGqpj3gjwWNov3ZQytRHsotuEwbhM6mR6zISgT3pyNjF5Sf0QkGQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB8641

T24gMjAyNS8zLzMxIDE5OjA0LCBSb2dlciBQYXUgTW9ubsOpIHdyb3RlOg0KPiBPbiBNb24sIE1h
ciAzMSwgMjAyNSBhdCAwOTozMjowMkFNICswMDAwLCBDaGVuLCBKaXFpYW4gd3JvdGU6DQo+PiBT
bywgSSBuZWVkIHRvIHJlZmFjdG9yIHRoZSBlbXVsYXRpbmcgUENJIGNhcGFiaWxpdHkgbGlzdCBj
b2RlcyBvZiBpbml0X2hlYWRlcigpIHRvIHNlcnZlDQo+PiBmb3IgYWxsIGRvbWFpbihkb20wK2Rv
bVVzKSBmaXJzdGx5LCBzaW5jZSBjdXJyZW50IGNvZGVzIG9ubHkgZW11bGF0ZSBQQ0kgY2FwYWJp
bGl0eSBsaXN0IGZvciBkb21VcywgcmlnaHQ/DQo+IA0KPiBZZXMsIHRoYXQgd291bGQgYmUgbXkg
dW5kZXJzdGFuZGluZy4gIFRoZSBjdXJyZW50IGxvZ2ljIGluDQo+IGluaXRfaGVhZGVyKCkgbmVl
ZHMgdG8gYmUgZXhwYW5kZWQvZ2VuZXJhbGl6ZWQgc28gaXQgY2FuIGJlIHVzZWQgZm9yDQo+IG1h
c2tpbmcgcmFuZG9tIFBDSSBjYXBhYmlsaXRpZXMsIHBsdXMgYWRhcHRlZCB0byB3b3JrIHdpdGgg
UENJZQ0KPiBjYXBhYmlsaXRpZXMgYWxzby4NCk9LLCBJIHdpbGwgdHJ5IHRvIHJlZmFjdG9yIHRo
ZSBsb2dpYyBpbiBuZXh0IHZlcnNpb24uDQpIb3BpbmcgdGhlIG5leHQgdmVyc2lvbiB3aWxsIGJl
IG1vcmUgaW4gbGluZSB3aXRoIHlvdXIgaWRlYXMuDQpUaGFua3MhDQo+IA0KPj4+DQo+Pj4+DQo+
Pj4+Pg0KPj4+Pj4+ICsgICAgLyoNCj4+Pj4+PiArICAgICAqIENhcGFiaWxpdGllcyB3aXRoIGhp
Z2ggcHJpb3JpdHkgbGlrZSBNU0ktWCBuZWVkIHRvDQo+Pj4+Pj4gKyAgICAgKiBiZSBpbml0aWFs
aXplZCBiZWZvcmUgaGVhZGVyDQo+Pj4+Pj4gKyAgICAgKi8NCj4+Pj4+PiArICAgIHJjID0gdnBj
aV9pbml0X2NhcF93aXRoX3ByaW9yaXR5KHBkZXYsIFZQQ0lfUFJJT1JJVFlfSElHSCk7DQo+Pj4+
Pj4gKyAgICBpZiAoIHJjICkNCj4+Pj4+PiArICAgICAgICBnb3RvIG91dDsNCj4+Pj4+DQo+Pj4+
PiBJIHVuZGVyc3RhbmQgdGhpcyBpcyBub3QgaW50cm9kdWNlZCBieSB0aGlzIGNoYW5nZSwgYnV0
IEkgd29uZGVyIGlmDQo+Pj4+PiB0aGVyZSBjb3VsZCBiZSBhIHdheSB0byBkaXRjaCB0aGUgcHJp
b3JpdHkgc3R1ZmYgZm9yIGNhcGFiaWxpdGllcywNCj4+Pj4+IHNwZWNpYWxseSBub3cgdGhhdCB3
ZSBvbmx5IGhhdmUgdHdvICJwcmlvcml0aWVzIjogYmVmb3JlIG9yIGFmdGVyIFBDSQ0KPj4+Pj4g
aGVhZGVyIGluaXRpYWxpemF0aW9uLg0KPj4+PiBJIGhhdmUgYW4gaWRlYSwgYnV0IGl0IHNlZW1z
IGxpa2UgYSBoYWtlLg0KPj4+PiBDYW4gd2UgYWRkIGEgZmxhZyhtYXliZSBuYW1lIGl0ICJtc2l4
X2luaXRpYWxpemVkIikgdG8gc3RydWN0IHZwY2l7fT8NCj4+Pj4gVGhlbiBpbiB2cGNpX21ha2Vf
bXNpeF9ob2xlKCksIHdlIGNhbiBmaXJzdCBjaGVjayB0aGF0IGZsYWcsIGlmIGl0IGlzIGZhbHNl
LCB3ZSByZXR1cm4gYW4gZXJyb3IgdG8gbGV0IG1vZGlmeV9kZWNvZGluZygpIGRpcmVjdGx5IHJl
dHVybiBpbiB0aGUgcHJvY2VzcyBvZiBpbml0X2hlYWRlci4NCj4+Pj4gQW5kIGluIHRoZSBzdGFy
dCBvZiBpbml0X21zaXgoKSwgdG8gc2V0IG1zaXhfaW5pdGlhbGl6ZWQ9dHJ1ZSwgaW4gdGhlIGVu
ZCBvZiBpbml0X21zaXgoKSwgdG8gY2FsbCBtb2RpZnlfZGVjb2RpbmcoKSB0byBzZXR1cCBwMm0u
DQo+Pj4+IFRoZW4gd2UgY2FuIHJlbW92ZSB0aGUgcHJpb3JpdGllcy4NCj4+Pg0KPj4+IE1heWJl
IHRoZSBpbml0aWFsaXphdGlvbiBvZiB0aGUgTVNJLVggY2FwYWJpbGl0eSBjb3VsZCBiZSBkb25l
IGFmdGVyDQo+Pj4gdGhlIGhlYWRlciwgYW5kIGNhbGwgdnBjaV9tYWtlX21zaXhfaG9sZSgpPyAg
VGhlcmUncyBhIGJpdCBvZg0KPj4+IHJlZHVuZGFuY3kgaGVyZSBpbiB0aGF0IHRoZSBCQVIgaXMg
Zmlyc3QgZnVsbHkgbWFwcGVkLCBhbmQgdGhlbiBhIGhvbGUNCj4+PiBpcyBwdW5jaGVkIGluIHBs
YWNlIG9mIHRoZSBNU0ktWCByZWxhdGVkIHRhYmxlcy4gIFNlZW1zIGxpa2UgdGhlDQo+Pj4gZWFz
aWVyIG9wdGlvbiB0byBicmVhayB0aGUgZGVwZWRlbmN5IG9mIGluaXRfbXNpeCgpIGluIGJlaW5n
IGNhbGxlZA0KPj4+IGFoZWFkIG9mIGluaXRfaGVhZGVyKCkuDQo+PiBZb3UgbWVhbiB0aGUgc2Vx
dWVuY2Ugc2hvdWxkIGJlOg0KPj4gdnBjaV9pbml0X2hlYWRlcigpDQo+PiB2cGNpX2luaXRfY2Fw
YWJpbGl0eSgpIC8vIGFsbCBjYXBhYmlsaXRpZXMNCj4+IHZwY2lfbWFrZV9tc2l4X2hvbGUoKQ0K
Pj4NCj4+IFJpZ2h0Pw0KPiANCj4gWWVzLCBJIHRoaW5rIHRoYXQgd291bGQgYmUgbXkgcHJlZmVy
ZW5jZS4gIFRoZSBjYWxsIHRvDQo+IHZwY2lfbWFrZV9tc2l4X2hvbGUoKSBzaG91bGQgYmUgaW5z
aWRlIG9mIGluaXRfbXNpeCgpLg0KR290IGl0LCB3aWxsIGRvIGluIG5leHQgdmVyc2lvbi4NCg0K
PiANCj4gVGhhbmtzLCBSb2dlci4NCg0KLS0gDQpCZXN0IHJlZ2FyZHMsDQpKaXFpYW4gQ2hlbi4N
Cg==


From xen-devel-bounces@lists.xenproject.org Tue Apr 01 09:57:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 09:57:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.933820.1335655 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzYMw-0005PH-Om; Tue, 01 Apr 2025 09:57:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 933820.1335655; Tue, 01 Apr 2025 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 1tzYMw-0005PA-Ly; Tue, 01 Apr 2025 09:57:18 +0000
Received: by outflank-mailman (input) for mailman id 933820;
 Tue, 01 Apr 2025 09:57:17 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=FaGF=WT=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1tzYMv-0005P4-M8
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 09:57:17 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on20629.outbound.protection.outlook.com
 [2a01:111:f403:2418::629])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b00fc322-0edf-11f0-9ffb-bf95429c2676;
 Tue, 01 Apr 2025 11:57:15 +0200 (CEST)
Received: from DM4PR12MB8451.namprd12.prod.outlook.com (2603:10b6:8:182::7) by
 CH3PR12MB7521.namprd12.prod.outlook.com (2603:10b6:610:143::14) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.44; Tue, 1 Apr
 2025 09:57:11 +0000
Received: from DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::b04e:2da5:7189:4c4d]) by DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::b04e:2da5:7189:4c4d%6]) with mapi id 15.20.8534.045; Tue, 1 Apr 2025
 09:57: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: b00fc322-0edf-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=qNICqT42ez+Uz/hVaZNwWWwNW1ezMsv97GYXtkXxnHmTCPjq6VppQf9COzoJsJv0qN6MjRdHdLJlmoKoGNj3uhfMT5ofSPkNCDo5kQvbBn8tCX96/dVDcY7QR236cgGxUR9FeTlpTQvuQA8DWaq+6nR+YTmCSpxc+j7mOwL7wv7swJ1qLkZtxhjDya6ixSdxZnL3tAGaOKXjj1kqZTbFXbPUikNFyUi7dFG8jSL7p//IO64qaXO7cRosCxKIYxEbijlfBRF0xcN1hPAVjeHmS65gtPoLeZ2Ac21xNJ6eY5ypP7yA0L6Ju4ntyt2QFW79VU1jkSmzYeoKRf/+lARd4w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=weTRQmvPingIvBy2VTNNNo8H2y0BgJl20cqZUcYQvIs=;
 b=W8QkcN8+X0eXzVdFZcrqZCu6iWNCfNlSDZGosAL+3TgtCMVui5FKBmBYmX1DQrz4XFnoETM9VX/XWd762tVlN5oeLFdR5BPb8kvDL+/u54zUTx0pnCGmCFTuqr5H+azVzAaXCvizmczUsSCYVUILSmw/D8nHO3mv9r/pa8K3+t0X2FonuEb94zmgVi+Vy4mPIFNR4o2mdpQeRGcsUr8Z2ry82AMxZ6+IUKBNcTCLOPzFH6uOfkShmtPamrKIKP/2HRUEPQN9e+7PXZ21VclF4/BG+zpKGTePnDYGuaaOlg39wU818oCyJxMZcUDSyfkraMoz3Ft5vKakDclVqw4NeQ==
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=weTRQmvPingIvBy2VTNNNo8H2y0BgJl20cqZUcYQvIs=;
 b=JxT0xyCZ3OFttL/NJll0LSuQ436WQAeVG3gGA0Td7SKzF6EIj9rvrpbbNr0QVlaJNhgcbqvu0sVif7KySShd3Wl9H0utSWn1Xa5MuRZP2+BVkKzlyxKbwegJ9pdrWpG+7WW1FbH/2QPufxBUVhHQamaZ3NN+cTA872SO1Jzw84M=
From: "Penny, Zheng" <penny.zheng@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, "Huang,
 Ray" <Ray.Huang@amd.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, "Orzel, Michal" <Michal.Orzel@amd.com>, Julien
 Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
Subject: RE: [PATCH v2 01/19] xen/x86: remove "depends on !PV_SHIM_EXCLUSIVE"
Thread-Topic: [PATCH v2 01/19] xen/x86: remove "depends on !PV_SHIM_EXCLUSIVE"
Thread-Index: AQHbnhNmXaX6/9Ps5keSZ4aq1y0sz7OJPdwAgAOSgQCAAbXbAIAABxKAgAAOfPA=
Date: Tue, 1 Apr 2025 09:57:11 +0000
Message-ID:
 <DM4PR12MB845113FE3887BF22E2F28962E1AC2@DM4PR12MB8451.namprd12.prod.outlook.com>
References: <20250326055053.3313146-1-Penny.Zheng@amd.com>
 <20250326055053.3313146-2-Penny.Zheng@amd.com>
 <alpine.DEB.2.22.394.2503281655590.563920@ubuntu-linux-20-04-desktop>
 <6b3c3baa-331c-44fa-9085-9b0bf72c62a1@suse.com>
 <DM4PR12MB845170590A152B7AEF4D4153E1AC2@DM4PR12MB8451.namprd12.prod.outlook.com>
 <a0148fb5-0b0f-4fe7-b31a-ea220965c662@suse.com>
In-Reply-To: <a0148fb5-0b0f-4fe7-b31a-ea220965c662@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
 MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_ActionId=60ed6edb-84fc-45b8-91dc-cc6946e2457a;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_ContentBits=0;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Enabled=true;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Method=Privileged;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Name=Open
 Source;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SetDate=2025-04-01T09:55:07Z;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Tag=10,
 0, 1, 1;
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DM4PR12MB8451:EE_|CH3PR12MB7521:EE_
x-ms-office365-filtering-correlation-id: 21233fc5-f60b-442c-a93b-08dd71039288
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?YzlDVnZ4UWt0SW5lWlA2MTU0aEIzeWlKZmsrdW9lcUxXTjFMcWIzbWhYYkRG?=
 =?utf-8?B?eG4xYzN2aEFSTlRoL1FJMXNMdjAyTHJvWWxZdG5jaHR4OWlTK1V5citESytX?=
 =?utf-8?B?VnVrOGZxVHdjMi8zR1plMG02VmkxVEFPYVU3ZUwyUktSME1GQk1RUHVxalA3?=
 =?utf-8?B?Z3VjaHFRMHJVSXFId3dQMEdJcFk5VDkxM21GaW94bktUdzVOdlZRcHlTVGMv?=
 =?utf-8?B?UldxTWMvWTVwRWp2azZxRnN0WnZwK09wd21KVUVQNW1FUUNUcm1HRStSQWdw?=
 =?utf-8?B?QVY4ckFFWGExVGxJNXE4QlNvT2lhUVl0ZHY4ZnFwMXNjdFlVbkFjaHArTCtD?=
 =?utf-8?B?RHdEaTVEOUdSUFlRVTRIazYrVGpHUzlFeVNEdVJCSjBINE9uQ3NyY1UyZkNa?=
 =?utf-8?B?M1AydStMUU54bFNKT2RrSmZyaVozdE4zRDVWeW5nMVRibDBTZE0zTVJuTEkv?=
 =?utf-8?B?QUpZekwyMW5NRHZyWXM2aklDbnBhZm82MjJqcTdEaWQ0VE1hS1V2T29GaDVL?=
 =?utf-8?B?YzF6dzFnT2xubm9PemxlMGhYeDM3Tmc4VWZndHFRdzFyUjRKbVQxeWNXVW1u?=
 =?utf-8?B?U0owWGpqMFc1NWhCenJNVENTTE50blo4NHBnT1dxN3NWWUVRZ3lnSHRWWW5L?=
 =?utf-8?B?ZGdxSm4zMDh3dGwvNlRpYUNmM0ZXWmpXdmJTclpiVU9mMXpRV3NwMlhILzY2?=
 =?utf-8?B?Zm1uWHFDVlo5SCtMRmdQRnlaUXFtUWVwQlFGNkRic29JT24xbjBtbnpRQWNM?=
 =?utf-8?B?cWVBdE9IVEJ3U2M3dzFXQjNKamVkdFJzelFsaWJuVWRpaHZ5aGxSWUlUVVBi?=
 =?utf-8?B?d284bHlKNTZvbzgwUlB3d3lVeTc3Mjh3SXhnRGhiekNrYmRlT2dzT1k3SlBo?=
 =?utf-8?B?Y3FqVFpxbWxzRWI1QkRlZlAyazNlNGduNm0rOUVUY3MxemIwaE1TYWpqUnR4?=
 =?utf-8?B?UUJTcUUveWdOalRNZ0hRL0JMdldQY0xDWGVyVTR5enk4WGNIbFh5eUl2OEpB?=
 =?utf-8?B?TVVrZTkrSUp5cjBidkxaZFZlTFMyNVFKbFBXSU5mU1oxZ0pqVE1IVXlTSlUv?=
 =?utf-8?B?OFZUVHM0d3FweUhWOG5TcDBYSU00NTl1Sm1kazVZdWFxQ215U0pXZFlJZjVo?=
 =?utf-8?B?NVFnKzlpSHpiUEIxZVJ2SENuRjkrZ01ndThSQjhDQk5mM2xlanh5aEZzS3pa?=
 =?utf-8?B?TG9FVGo3U1lsaXVpb0hwM3kvNUkvMENScW9WZXl4U3FEUXl1TmJNRFMzK0Rq?=
 =?utf-8?B?UlY0UjNsRjdZRTFiMVZiSXM4VWRjc1dCQWJVbGJib1RhNTY1VzI3Zm9uek5H?=
 =?utf-8?B?eXMwaGhpOXRGbFpaaHNYYUxNaHlpM213ekJ4RmpraHJtSXBzcGRoZ1ZSR0Mv?=
 =?utf-8?B?RFhady82TFpmcDhaNnB0OFFqcWtSWGNqZEw2cUlpSUZ0UExLcFVEMFZXdWJn?=
 =?utf-8?B?QWNUd0cyWVdCbFVHN0sxOGtZTTF6Uk9qTER5cktsQ2ZSd2xoQ05oREJDeFNI?=
 =?utf-8?B?eFVjSHpTV080em1FOVZKblZQb1NMeEdaL1pnTkNkUTRRd3FVc1hkMFZud1Na?=
 =?utf-8?B?L1dxVHNKblFnWko1WnFNbjY1T2tZOFFOVEgxVCsrSTgvSTRvcTBDWnRVOG8r?=
 =?utf-8?B?TUdjWWpMa0xVYW1oV2dRREJxVWhCbzZBelkzOHhHQjJqZnpSZzZheElVK1FR?=
 =?utf-8?B?WXgyUThmdFI4NWtreUxld3loQ1AxOVJ4bTFYMlRRUWQ3SDlTcWRMME1ua0dK?=
 =?utf-8?B?OFA5bDlzYWM3YkNYclV2YkF5by9XamVvQkZBbTArWGkrVTJqNm5lL0VYVWwz?=
 =?utf-8?B?L0xaTEoxQkkrUEVVOFhTRS9GMHhDMVZPdXRBV2VJdWZIVVdwWm9kS0k1eG1O?=
 =?utf-8?Q?Mk9TleojA4JEO?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB8451.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?b3BKZk12Z296UjRuRnlQNDVibzdvQjI1L0dZTXVSRyszZFRudTdEU3c1VC94?=
 =?utf-8?B?K1ZCWHJUeUVvbjJ2Z1I3STBxWkd6SXFXOXU0bTRMQXJESXFWUFdoU1BXZUIr?=
 =?utf-8?B?c2daY0FCTVIwcnRCMGEveERJcHpRSUEvbXMrVXd0UnlEV2tDVUM1dktNNmdU?=
 =?utf-8?B?Nmcwc3M4MjFiamJieUhCeHhWRmpVNkllUEZEMkhyZzgvL2dqT0Z2QUhLcU9r?=
 =?utf-8?B?aDZQMkY5eUliaE4zcGRhbVEwVlJlZmo4SEs5WjFPOWFRQnJTRGNoTTJYVnBB?=
 =?utf-8?B?dWl4azliWWdzMmdYaHFUcEFyM2I5cHJsQi9GNkwxSythT0g5cHJqNG9Mdnkz?=
 =?utf-8?B?NHZrdVVNdUZ3Y2Mvbld6SkdTTmhaMldUMnZDUG9QSFJoU2wwT2VpOHN5U3g3?=
 =?utf-8?B?eVQvTm1JbGYzZUhXYmJtanphaUZBYnFMOFdxdlJDNnJ2R05PNnBuU2todzFs?=
 =?utf-8?B?VnBlblY5bWdSSlhEWVR2SkN4Z0daOWF3ZlJYWlNoYUxxTllYMmk3SFBLY28r?=
 =?utf-8?B?RjJSbDIxZUUzQzUwNTU0Q1lwMkh4NGxIc2FCNHJtdzd4WWhxVUtNZTV1M3FX?=
 =?utf-8?B?Yzd5UU9FMDJLa2M5dkZxNjVFUUpOZVhxeHI4bTE2SmRraG9EcE9ORjV3TnA4?=
 =?utf-8?B?N3BEZzBuZ3hSWnRzVkxvV1I2alNWeG1NNXprbTRUNWRXUGFFM1RBZ2NEeTB0?=
 =?utf-8?B?NytqM3NsSUJrdmJBL3FJLzBPY2V6TVpKY0lVQXg0T050eWM4eVpjRndkYUFF?=
 =?utf-8?B?djhRTVZUakdUa1IyV1RmdkFaaERySDlKQTBwV0NmWitiL01PSGFOQnJIdERq?=
 =?utf-8?B?aUZlYlY3M2NTSE1TaFdiNytvN01DTzJvejZuRWt1VHE2ZU1mZy9yUU5yb2Fv?=
 =?utf-8?B?bUdXL0hNQjdwWGdmUUtIalRQdDg0VVF6cWw4YnFZTDNKRllpYXhHdDdRSUFE?=
 =?utf-8?B?UzM1NFpaU1Q1NG51SUdXNlltd0VocklGZnUwNC9rV2dtR3JtV002NHB6d2w4?=
 =?utf-8?B?b0FKT25pSkhkUDV0dVcvdy9iNlRpVkVlanluN2xJcVg5S3dLS05wNDBPZjNJ?=
 =?utf-8?B?UytFMmFESFIybVZQN3dvbzJwQmxlbU1QYkJua0tsbzBZeW13MEJacXB0RW9i?=
 =?utf-8?B?ZzJDbkpCdEFYRExaVWdFVEpFUStSR0hGQ2IrNHdwTzgrM2lobXNNMHI1cmQ3?=
 =?utf-8?B?ZnFRc3VXRUVMdm9DaFVWcVpxOVdRZlVyZzhlSDV3ZDNGUU1MR2dWNVltYm9O?=
 =?utf-8?B?TmhUTnU0TXRqOE5LcTVKT1ZZeFFHS1ZjRStNNVIxYkord25ZbmZ5OVFhTG9t?=
 =?utf-8?B?cEhTZ3pxam9VY0t1NXBnUDJhMmtZRTlUVEpVaU12d3c4S0FDRk1DaFVYYUo1?=
 =?utf-8?B?aVVid1U5YUhOTDF2VnVKZ0VtYVlMQmYrYy9WTkd2UDFYd1FjRlptRnlIVTdK?=
 =?utf-8?B?UTFCZnpFbW01dngvVTdKRUoxQ0VZUjlNWjE3QWhmNG9mcDgzcjVTY1NpUk1B?=
 =?utf-8?B?ekpKazh3b3JjV2dwVTRReWFCNUhFZjZSc0VMZG0vMjAzeGNKWWhKNVBhVUtL?=
 =?utf-8?B?QnREWjFrb1pQNy96b0E1WmpXQXVybXRNWEZmeXRGaFdqT096MHRPUDJCdnlZ?=
 =?utf-8?B?NGQvSktxQWVqYksyN3JUdHpsRkxhVlR2OE9tLzZOelYzWUUySWJrM3JKcVR4?=
 =?utf-8?B?ZzBvdlJDbW56akw2YTc0VlBzdmRReEYybmY4MDhyMzRhMS9WWTZmVTQ3djEv?=
 =?utf-8?B?RGdQdFJJQjBzQ1BCNzFTWkZaYXptWnR5WnBISWFIN0N6clZvWlZQQlZaekVI?=
 =?utf-8?B?NVEzeXJVb0pIMk4zMzUyRDNtYVdXbkQ0VWRSM05yR0xxcksvZUJwSk9YRUtT?=
 =?utf-8?B?NTAyR1FqZ09ibVJhSFlyMnJjMDJvNUFBSjk2V3NUUVFZdmdkcEZzdk5pOFZp?=
 =?utf-8?B?N2wvYnI0cTFvc25NNExKb0FiQzlhZHhYNDdrTURNZG1CM1JwVTE1d2c4eEJG?=
 =?utf-8?B?YlNwa0U1SXBOYVEzRSt3SGVtQWpKVWQrUnpmZnF3NXZCUlVhU2xSQ1dTSEtU?=
 =?utf-8?B?Kzd6Nnh2QWZDYkxLYW9rTHVnUDJCRE9QekFzVmE4emNsTndQNjJpaDN1Q3Zu?=
 =?utf-8?Q?yLog=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB8451.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 21233fc5-f60b-442c-a93b-08dd71039288
X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Apr 2025 09:57:11.3508
 (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: Yy8hUbrN17JNeRpIRZRoR9Okqe4hnHzTH0fFVosfyZe4J1AKEaPhXNAL7J3XbduwnTBJrOhP7eLKICaO17EXkg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB7521

W1B1YmxpY10NCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBKYW4gQmV1
bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQo+IFNlbnQ6IFR1ZXNkYXksIEFwcmlsIDEsIDIwMjUg
NTowMiBQTQ0KPiBUbzogUGVubnksIFpoZW5nIDxwZW5ueS56aGVuZ0BhbWQuY29tPg0KPiBDYzog
eGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnOyBIdWFuZywgUmF5IDxSYXkuSHVhbmdAYW1k
LmNvbT47DQo+IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+OyBSb2dl
ciBQYXUgTW9ubsOpDQo+IDxyb2dlci5wYXVAY2l0cml4LmNvbT47IEFudGhvbnkgUEVSQVJEIDxh
bnRob255LnBlcmFyZEB2YXRlcy50ZWNoPjsgT3J6ZWwsDQo+IE1pY2hhbCA8TWljaGFsLk9yemVs
QGFtZC5jb20+OyBKdWxpZW4gR3JhbGwgPGp1bGllbkB4ZW4ub3JnPjsgU3RlZmFubw0KPiBTdGFi
ZWxsaW5pIDxzc3RhYmVsbGluaUBrZXJuZWwub3JnPg0KPiBTdWJqZWN0OiBSZTogW1BBVENIIHYy
IDAxLzE5XSB4ZW4veDg2OiByZW1vdmUgImRlcGVuZHMNCj4gb24gIVBWX1NISU1fRVhDTFVTSVZF
Ig0KPg0KPiBPbiAwMS4wNC4yMDI1IDEwOjQxLCBQZW5ueSwgWmhlbmcgd3JvdGU6DQo+ID4+IC0t
LS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+IEZyb206IEphbiBCZXVsaWNoIDxqYmV1bGlj
aEBzdXNlLmNvbT4NCj4gPj4gU2VudDogTW9uZGF5LCBNYXJjaCAzMSwgMjAyNSAyOjMwIFBNDQo+
ID4+DQo+ID4+IE9uIDI5LjAzLjIwMjUgMDA6NTYsIFN0ZWZhbm8gU3RhYmVsbGluaSB3cm90ZToN
Cj4gPj4+IE9uIFdlZCwgMjYgTWFyIDIwMjUsIFBlbm55IFpoZW5nIHdyb3RlOg0KPiA+Pj4+IFdl
IGludGVuZCB0byByZW1vdmUgYWxsICJkZXBlbmRzIG9uICFQVl9TSElNX0VYQ0xVU0lWRSIgKGFs
c28gdGhlDQo+ID4+Pj4gZnVuY3Rpb25hbGx5IGVxdWl2YWxlbnQgImlmICEuLi4iKSBpbiBLY29u
ZmlnIGZpbGUsIHNpbmNlIG5lZ2F0aXZlDQo+ID4+Pj4gZGVwZW5kYW5jeSB3aWxsIGJhZGx5IGFm
ZmVjdCBhbGx5ZXNjb25maWcuDQo+ID4+Pj4gVGhpcyBjb21taXQgaXMgYmFzZWQgb24gIng4Njog
cHJvdmlkZSBhbiBpbnZlcnRlZCBLY29uZmlnIGNvbnRyb2wNCj4gPj4+PiBmb3Igc2hpbS1leGNs
dXNpdmUgbW9kZSJbMV0NCj4gPj4+Pg0KPiA+Pj4+IFsxXQ0KPiA+Pj4+IGh0dHBzOi8vbGlzdHMu
eGVuLm9yZy9hcmNoaXZlcy9odG1sL3hlbi1kZXZlbC8yMDIzLTAzL21zZzAwMDQwLmh0bWwNCj4g
Pj4+Pg0KPiA+Pj4+IFNpZ25lZC1vZmYtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNv
bT4NCj4gPj4NCj4gPj4gV2hlcmUncyB0aGlzIGNvbWluZyBmcm9tLCBpZiBJIG1heSBhc2s/DQo+
ID4NCj4gPiBJIHNhaWQgaW4gdGhlIGNvbW1pdCBtZXNzYWdlLCB0aGlzIGNvbW1pdCBpcyBiYXNl
ZCBvbiB5b3VyIGNvbW1pdA0KPiA+ICJ4ODY6IHByb3ZpZGUgYW4gaW52ZXJ0ZWQgS2NvbmZpZyBj
b250cm9sIGZvciBzaGltLWV4Y2x1c2l2ZSBtb2RlIlsxXS4NCj4NCj4gSSBkb24ndCB0aGluayB0
aGlzIGJlbG9uZ3MgdGhlcmUuIEFsc28gcmVjYWxsIHdoYXQgSSBzYWlkIGVsc2V3aGVyZSBhYm91
dCAiVGhpcw0KPiBjb21taXQgLi4uIiBhbmQgYWxpa2Ugbm90IGJlaW5nIGFwcHJvcHJpYXRlIHdv
cmRpbmcgZm9yIGNvbW1pdCBtZXNzYWdlcy4NCj4NCg0KVW5kZXJzdG9vZCwgSSdsbCByZW1vdmUg
IlRoaXMgY29tbWl0IGlzIGJhc2VkIG9uIHh4eCIuDQoNCj4gPiBTbyBJIHRoaW5rIEkgc2hhbGwg
YWRkLWluIHRoZSBvcmlnaW5hbCBhdXRob3IsIGlmIGl0IGlzIG5vdCB0aGUgcnVsZSwgSSdsbCBy
ZW1vdmUgaXQuDQo+DQo+IFBsZWFzZSByZW1vdmUgaXQuIFlvdSBuZWNlc3NhcmlseSB0b3VjaCBh
IGZldyBvZiB0aGUgc2FtZSBwbGFjZXMsIGJ1dCB0aGF0J3MgYWJvdXQNCj4gaXQuIEkgYWNjZXB0
IHRoaXMgcm91dGUgYmVpbmcgdGFrZW4sIGJ1dCBJIGRvbid0IGFncmVlIHdpdGggaXQuIEkgZG9u
J3Qgd2FudCB0byBiZSB2aWV3ZWQNCj4gYXMgYSBjby1hdXRob3IgaW4gc3VjaCBhIGNhc2UuDQo+
DQoNClVuZGVyc3Rvb2QsIEknbGwgcmVtb3ZlLg0KDQo+IEhvd2V2ZXIsIHlvdSBoYXZpbmcgZ29u
ZSBmcm9tIHRoYXQgcGF0Y2ggKHdoaWNoIGhhZCBhbiBlbnRpcmVseSBkaWZmZXJlbnQNCj4gaW50
ZW50aW9uKSwgaGFzIGxlYWQgdG8gdGhlIHBhdGNoIGhlcmUgYmVpbmcgaW5jb21wbGV0ZS4gQXQg
bGVhc3QgbXkgdW5kZXJzdGFuZGluZw0KPiBvZiBBbmRyZXcncyBvcmlnaW5hbCByZXF1ZXN0IHdh
cyB0byBub3Qgb25seSBwcnVuZSBLY29uZmlnLXMgb2YgdGhlIGRlcGVuZGVuY3ksDQo+IGJ1dCBh
bHNvIGUuZy4gdmFyaW91cyBNYWtlZmlsZS1zLiBQb3NzaWJseSBldmVuIC5jIGFuZCAuaCBvbmVz
LiBUaGF0IGNsZWFybHkgd2Fzbid0DQo+IG5lY2Vzc2FyeSB3aXRoIHRoZSBhcHByb2FjaCBJIGhh
ZCB0YWtlbi4gUGxlYXNlIGNvbnN1bHQgd2l0aCBBbmRyZXcgdG8gY29uZmlybS4NCj4NCj4gSmFu
DQo=


From xen-devel-bounces@lists.xenproject.org Tue Apr 01 10:09:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 10:09:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.933836.1335666 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzYYS-0008KS-TR; Tue, 01 Apr 2025 10:09:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 933836.1335666; Tue, 01 Apr 2025 10: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 1tzYYS-0008KL-Q5; Tue, 01 Apr 2025 10:09:12 +0000
Received: by outflank-mailman (input) for mailman id 933836;
 Tue, 01 Apr 2025 10: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=WxAi=WT=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tzYYR-0008KF-N2
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 10:09:11 +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 5ac6e222-0ee1-11f0-9ea7-5ba50f476ded;
 Tue, 01 Apr 2025 12:09:10 +0200 (CEST)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-43d0782d787so35417955e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 01 Apr 2025 03:09:10 -0700 (PDT)
Received: from [10.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-43d8fbc10e1sm150399105e9.12.2025.04.01.03.09.09
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 01 Apr 2025 03:09: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: 5ac6e222-0ee1-11f0-9ea7-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743502150; x=1744106950; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=FYlBIF7QsuFYGoWoS1MtcTc4f885ritXKmGZRwOaB+0=;
        b=CBAf9iYI1dvTaISKmtU9+w57VrERr/DsTYjhJCvWAqm9gmYT8vZTbZjAWMj/1MQJfe
         tVO3svVGVh4pnonnDnR+NZZ6fVRC/GPQgW3BwuW9WS2nrF04fmGOccopGKeSEb1aYbDq
         dqiaUe9otwVETRrJGrvH/S9NbIngvCcHG2vJ5rGPnuHA1+BuqQqeccjsBxUAemgKu6aW
         7SjxtYxxVliI1iHfbViytxyRy9ULaF4iPHNOkpT61xM384Zx1Efuz08QD4dv4SKWYARS
         baTdDye078RmQwWAbSdrcLz1duK/NaiwyaB85xmuGyYbrzx6iUl+E3ppsaX05uVEcl8z
         Jm5A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743502150; x=1744106950;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=FYlBIF7QsuFYGoWoS1MtcTc4f885ritXKmGZRwOaB+0=;
        b=NJYP5iITRO20iqJZwLOqkUJI6r/3KmzvGR6FAH3bs/3k9ezsbj+874yfmuVwQ0013R
         H0nU08aF3GUffOBLsrpNPv31/lckxUYVzQd9U3LeLQdPqLTSzimLo/pI2lNC7lt1gCBA
         4kfTl79+84sI+KtySVIW+asDlkPmOp+ObZLB7JuUKyqgnvd8I2IPAB6BL6XCT3+MNx7n
         D0JKbAjWaHp+br64q4efAc80wxwgrEsqbxEDA+FmNKibUOy8yaNW4VizGOCWvmlz+rZs
         e4YbvcpfxSLE5MDrcG8sB/Tn5X+rlwJKD/AIeoVme+OG2uW5axdI3rgbuX/mg2gb7lLe
         FYzA==
X-Forwarded-Encrypted: i=1; AJvYcCWfA63j4nCDlDEWG2FPCSEyGCwlZ3K2TLx4Y3/duj3BeiDWHmG2N86eYXauuZgFSK8umG1Lg35B86I=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzfzOzkh2uf0u+bm5OeCfoatH7Q71ywHr5B37gNToOvTCcvVh9K
	gksbsTJBX9/6w/4NUO1aisVF4mpPDCasMweVdiI9QEJjm8wZHe+Ppr+T7ocGzQ==
X-Gm-Gg: ASbGncsnmGji/32FJnvbB45UEfv+BLgrJ5ahWlcsKDGYDhftGxV27sjKamvubsSACPx
	fr6cUY/SYVEKQeOXXw0Oy4XnUNsWGLD8zavBFket6QaGta3jXXCJiw2w94tcVHEvHraa4ViFWwO
	KsnxgFsTscYa7DKfti+bPzvcXPXxQd33tnPzWjAdeI7GQgpjb8mr8kQgdjfPSvfOudseyD6f5lK
	fvBDSkpmOJwCP4SykP8Xvhlu3e/Z8y7zmZieSocnAUQLekrzyhD9SjUsWYQvBQNURNIcSZdIGVA
	Ch0gYHK2cg1fGxETVj9DGk95mluDF5NV15jVZiObFE7H9bFA7ft5/9Zyy8+Ud09OYBbKb/Nfkm2
	x4KkAqs2RyOU0WxTEbNHGtYr8jrQNg41yf42ZWkx+
X-Google-Smtp-Source: AGHT+IEmlSoRO6rxeuxLq4/6jdq+fl9WlLmXMcOq31xWCW1BakWwPulwpIYHj/QdNCIoS74jYG47Bg==
X-Received: by 2002:a05:600c:4747:b0:43d:82c:2b23 with SMTP id 5b1f17b1804b1-43db62b726amr96829355e9.23.1743502149725;
        Tue, 01 Apr 2025 03:09:09 -0700 (PDT)
Message-ID: <694eac75-e872-4ba0-80ed-95c14cd11f5e@suse.com>
Date: Tue, 1 Apr 2025 12:09:08 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v5] xen: simplify bitmap_to_xenctl_bitmap for little endian
To: Stefano Stabellini <stefano.stabellini@amd.com>,
 xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <20250401005008.2787764-1-stefano.stabellini@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: <20250401005008.2787764-1-stefano.stabellini@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

From: Stefano Stabellini <stefano.stabellini@amd.com>

The little endian implementation of bitmap_to_xenctl_bitmap leads to
unnecessary xmallocs and xfrees. Given that Xen only supports little
endian architectures, it is worth optimizing.

This patch removes the need for the xmalloc on little endian
architectures.

Remove clamp_last_byte as it is only called once and only needs to
modify one byte. Inline it.

Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
v5: Fix IS_ENABLED() use. Keep more code common. Move comment.
    Convert LE bitmap_long_to_byte() to just a declaration.

--- a/xen/common/bitmap.c
+++ b/xen/common/bitmap.c
@@ -40,21 +40,6 @@
  * for the best explanations of this ordering.
  */
 
-/*
- * If a bitmap has a number of bits which is not a multiple of 8 then
- * the last few bits of the last byte of the bitmap can be
- * unexpectedly set which can confuse consumers (e.g. in the tools)
- * who also round up their loops to 8 bits. Ensure we clear those left
- * over bits so as to prevent surprises.
- */
-static void clamp_last_byte(uint8_t *bp, unsigned int nbits)
-{
-	unsigned int remainder = nbits % 8;
-
-	if (remainder)
-		bp[nbits/8] &= (1U << remainder) - 1;
-}
-
 int __bitmap_empty(const unsigned long *bitmap, unsigned int bits)
 {
 	int k, lim = bits/BITS_PER_LONG;
@@ -338,7 +323,6 @@ static void bitmap_long_to_byte(uint8_t
 			nbits -= 8;
 		}
 	}
-	clamp_last_byte(bp, nbits);
 }
 
 static void bitmap_byte_to_long(unsigned long *lp, const uint8_t *bp,
@@ -359,12 +343,11 @@ static void bitmap_byte_to_long(unsigned
 
 #elif defined(__LITTLE_ENDIAN)
 
-static void bitmap_long_to_byte(uint8_t *bp, const unsigned long *lp,
-				unsigned int nbits)
-{
-	memcpy(bp, lp, DIV_ROUND_UP(nbits, BITS_PER_BYTE));
-	clamp_last_byte(bp, nbits);
-}
+#define LITTLE_ENDIAN 1 /* For IS_ENABLED(). */
+
+/* Unused function, but a declaration is needed. */
+void bitmap_long_to_byte(uint8_t *bp, const unsigned long *lp,
+			 unsigned int nbits);
 
 static void bitmap_byte_to_long(unsigned long *lp, const uint8_t *bp,
 				unsigned int nbits)
@@ -384,22 +367,46 @@ int bitmap_to_xenctl_bitmap(struct xenct
     uint8_t zero = 0;
     int err = 0;
     unsigned int xen_bytes = DIV_ROUND_UP(nbits, BITS_PER_BYTE);
-    uint8_t *bytemap = xmalloc_array(uint8_t, xen_bytes);
+    const uint8_t *bytemap;
+    uint8_t last, *buf = NULL;
 
-    if ( !bytemap )
-        return -ENOMEM;
+    if ( !IS_ENABLED(LITTLE_ENDIAN) )
+    {
+        buf = xmalloc_array(uint8_t, xen_bytes);
+        if ( !buf )
+            return -ENOMEM;
+
+        bitmap_long_to_byte(buf, bitmap, nbits);
+
+        bytemap = buf;
+    }
+    else
+        bytemap = (const uint8_t *)bitmap;
 
     guest_bytes = DIV_ROUND_UP(xenctl_bitmap->nr_bits, BITS_PER_BYTE);
     copy_bytes  = min(guest_bytes, xen_bytes);
 
-    bitmap_long_to_byte(bytemap, bitmap, nbits);
+    if ( copy_bytes > 1 &&
+         copy_to_guest(xenctl_bitmap->bitmap, bytemap, copy_bytes - 1) )
+        err = -EFAULT;
+
+    /*
+     * If a bitmap has a number of bits which is not a multiple of 8 then the
+     * last few bits of the last byte of the bitmap can be unexpectedly set,
+     * which can confuse consumers (e.g. in the tools), who also may round up
+     * their loops to 8 bits. Ensure we clear those left over bits so as to
+     * prevent surprises.
+     */
+    last = bytemap[nbits / 8];
+    if ( nbits % 8 )
+        last &= (1U << (nbits % 8)) - 1;
+
+    xfree(buf);
 
     if ( copy_bytes &&
-         copy_to_guest(xenctl_bitmap->bitmap, bytemap, copy_bytes) )
+         copy_to_guest_offset(xenctl_bitmap->bitmap, copy_bytes - 1, &last, 1) )
         err = -EFAULT;
 
-    xfree(bytemap);
-
     for ( i = copy_bytes; !err && i < guest_bytes; i++ )
         if ( copy_to_guest_offset(xenctl_bitmap->bitmap, i, &zero, 1) )
             err = -EFAULT;



From xen-devel-bounces@lists.xenproject.org Tue Apr 01 10:34:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 10:34:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.933853.1335676 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzYwn-00077q-Qy; Tue, 01 Apr 2025 10:34:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 933853.1335676; Tue, 01 Apr 2025 10:34: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 1tzYwn-00077j-Nt; Tue, 01 Apr 2025 10:34:21 +0000
Received: by outflank-mailman (input) for mailman id 933853;
 Tue, 01 Apr 2025 10: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=WxAi=WT=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tzYwm-00077d-C9
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 10:34:20 +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 de0f55f6-0ee4-11f0-9ea7-5ba50f476ded;
 Tue, 01 Apr 2025 12:34:19 +0200 (CEST)
Received: by mail-wr1-x42a.google.com with SMTP id
 ffacd0b85a97d-3913958ebf2so4111428f8f.3
 for <xen-devel@lists.xenproject.org>; Tue, 01 Apr 2025 03:34:19 -0700 (PDT)
Received: from [10.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-39c0b79e0a3sm13896892f8f.71.2025.04.01.03.34.17
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 01 Apr 2025 03:34:18 -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: de0f55f6-0ee4-11f0-9ea7-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743503658; x=1744108458; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=N6DBJ2I6aWTitY+JURHjAi+NtfhPO39mqKSGTdlQwew=;
        b=U2VQA5+bOVTgdsXYGlmzG7dQ7+PSNp6nq/aZXXaxuA/HxsTTB7Al8h5Mi9qv76Ro4i
         1Kpv2jRPEQQ2vxfZrNALnFzkwrA32JL7/FDxv9gm9xm8RG4gpvHw1J6JkfGWH0HeR51t
         G4VxOaAvHzbYoDoOmoX/8CuHVehv5ZobjA5+W6YGPe4At3u55ximCzjdkfeTfIOKqe5a
         aedaFxvOj7XURbPOvkcY0givmd8zqTS6y5A6PdOayITt392uO0UgDKjLAq1y0JDlJm5S
         sgqR8ZJgPYSkCDERZYOBcRYaVxBkqUDOKall5WbgnAjUi9O99+2ddQAogwDFx50OaA19
         AFbA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743503658; x=1744108458;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=N6DBJ2I6aWTitY+JURHjAi+NtfhPO39mqKSGTdlQwew=;
        b=jdF1LkpfArkUspwaLV5kUUAPOW2J/pJ/2113+2qzE3VkFza/IDJiBAKdk7EKIexZUO
         aAxS2XGbXmUqxIvjHiYtVjRf+CJfTbxVRRrit6HSDYWiCzqvRD/LOUusJIw0QLF5+KsP
         4ZslPFxJ935djI6eauvxSutuqb37KHb6vzJmQpOcGkc9AjrlkmFdJLmzpLOuxkNOlDj4
         7eJFjJlEsu+d4tfFXB1XJ5cw4FGAVUKvO/woaDTreALmVzRr57l8W2hUPA2odg2XEm+z
         DKVS4rAk4unp0JhM+J/6zxlZPwLkBA4D6dDoHHVleK9VcEHnaAJfdww7jXeFRFHBWVOK
         sXTQ==
X-Forwarded-Encrypted: i=1; AJvYcCWUjcuRWoiqgrifo/zxyN+eW3HTDRh99effIh4JQ4lA/8bf3fYWpuZemvDWZi8jwHlfo4gP7N/CKic=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw/sTYlTTLF0OnTp7pi4w7YTIi3M7rvFEzfftGh+3ZCtsKdXVX5
	4iec/E9LfKhaNMwavErul9q2zNHl94eu6h1SOu7Bszp8Fu/B/p+jR6DuiDHZnw==
X-Gm-Gg: ASbGncttGeNNz1rX8QJEACu9B+rTQ6K4ZOGVXXezNimwlbTnfHPw527F3cgV4tjyd1Q
	gbZzQghJo4C1o8hQt+mRXGrk0+mBCRcXibOnt2bCSqpBZtYM3MvmXH+fU2Vdz2z51PlLJv36C/B
	I0cM9eT4UsCk7hsNXIyq4pk2nFR0CCjtq05njQIO9scFpGuyyh+zvqiHJm4PWJIAvkM5GXQCf3Y
	Ez3KUyrXa12P+pbHxAOsbsNGLcV6MOcAVfaTnOAN1OG7nGGz+PID9PStH6U+uC1zTj1V4AiQiGI
	oNm6+tqnIOs9j5Fa5TGx7KGY6eNLKpD+UXliVTOmTZqzrVKVVT/pw0i48f5YoG4+bTS0zf1xr/A
	TqlYNy5su5rJYmByf9HLJsuXZL8IESrabXmciZOd2
X-Google-Smtp-Source: AGHT+IHzAlYxs8xjvlfzYQzSrMfLU2E0CoAVejvkfb2F5+GLIw6Ie2XECvgpf/VbEkLcDaCqjHWR9g==
X-Received: by 2002:a05:6000:40cf:b0:39a:c80b:8283 with SMTP id ffacd0b85a97d-39c120e3ef7mr8639419f8f.31.1743503658438;
        Tue, 01 Apr 2025 03:34:18 -0700 (PDT)
Message-ID: <cdfdf007-3bd1-4269-9a03-3f87893dc224@suse.com>
Date: Tue, 1 Apr 2025 12:34:16 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 1/4] xen/riscv: introduce preinit_xen_time()
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <4ddde60347edf6740fbc69b5739d099616f5b5ff.1743165791.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: <4ddde60347edf6740fbc69b5739d099616f5b5ff.1743165791.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 28.03.2025 17:58, Oleksii Kurochko wrote:
> preinit_xen_time() does two things:
> 1. Parse timebase-frequency properpy of /cpus node to initialize cpu_khz
>    variable.
> 2. Initialize boot_clock_cycles with the current time counter value to
>    have starting point for Xen.
> 
> timebase-frequency is read as a uint32_t because it is unlikely that the
> timer will run at more than 4 GHz. If timebase-frequency exceeds 4 GHz,
> a panic() is triggered, since dt_property_read_u32() will return 0 if
> the size of the timebase-frequency property is greater than the size of
> the output variable.
> 
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

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

However, ...

> --- a/xen/arch/riscv/include/asm/time.h
> +++ b/xen/arch/riscv/include/asm/time.h
> @@ -3,8 +3,12 @@
>  #define ASM__RISCV__TIME_H
>  
>  #include <xen/bug.h>
> +#include <xen/types.h>
>  #include <asm/csr.h>
>  
> +/* Clock cycles count at Xen startup */
> +extern uint64_t boot_clock_cycles;

... this should use cycles_t, just that for this cycles_t first needs changing.
Hence why this wants to be another separate change imo. I.e. I'll put this one
in as is.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 01 10:58:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 10:58:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.933878.1335722 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzZKK-00044F-3U; Tue, 01 Apr 2025 10:58:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 933878.1335722; Tue, 01 Apr 2025 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 1tzZKK-000448-0n; Tue, 01 Apr 2025 10:58:40 +0000
Received: by outflank-mailman (input) for mailman id 933878;
 Tue, 01 Apr 2025 10:58: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=WxAi=WT=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tzZKJ-000442-Bb
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 10:58:39 +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 437e777a-0ee8-11f0-9ea7-5ba50f476ded;
 Tue, 01 Apr 2025 12:58:37 +0200 (CEST)
Received: by mail-wr1-x42a.google.com with SMTP id
 ffacd0b85a97d-38a25d4b9d4so2804954f8f.0
 for <xen-devel@lists.xenproject.org>; Tue, 01 Apr 2025 03:58:37 -0700 (PDT)
Received: from [10.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-39c0b6588d0sm13599752f8f.7.2025.04.01.03.58.36
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 01 Apr 2025 03:58:36 -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: 437e777a-0ee8-11f0-9ea7-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743505117; x=1744109917; 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=PyNBLoPWIMH+5RulYTt6JZI7gGnxnhN3rdmzgFXet9c=;
        b=GcqxhIB8zPbUGoB6Th/nAtTSIO3xW8BDRKuyIIU1JBd05q74C4hid7hu7LYr4BljNh
         rLek+j6f0Sj4NEsbONeGGBjfli9eMxOhorcT3eN9elq0RAvRXNT7pOb2RMWggLJhDJVg
         hNljkMuLKAwKBDyW4Vd+3h1LJVX41A/TcAtdpdUEbx4UrG3R/83HGiMMYU2UAc9JuSNE
         d7ohGDjHkQsYBDCZd07I03Msckc19vNzW0WQCX5Smz7SkA2MKQdih6uZNjPVza5Hverg
         UW0R8+zylLkb/NG9B0I1kRPc0FpdlOe3FkZDNBs74WC3k8dcg6DImOa55f5q+m3Y1DyS
         tgNw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743505117; x=1744109917;
        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=PyNBLoPWIMH+5RulYTt6JZI7gGnxnhN3rdmzgFXet9c=;
        b=De1SKiH4UTdOk7+dxKkhFBTo16FoxS54cSkLpiDn7CmGYwX+Z37EEH0dcj2DeSSz6R
         zv8aDImCaNndePirvwcWx8Ky/GNgzUdrraBffLMCJxJO//YpU+4r33HTaFW6LTvR+R2i
         vBA3iyrrvA0Ho0F5cr1Y6iNOG74NaVizj3qrAtz+yNgbF47NiLCHdS5GVkI5YjmFr0XI
         U53mJ4rlD3QElYg5SArAUEbMLsNd1sgKVLIHN8887tz+6LjFyQUleE90hYnYSnBCNgEL
         OHRLmp04XEkeNQtMRG3lIgmmOnCJGgWwvl0DeRttuqYeXvM5d30CpMCw6O4nrHRdBHKs
         K+9w==
X-Gm-Message-State: AOJu0YztpPSYmmByVQRT3RGR5wxhUwp7AfHaccvDxupQP9YMj1kXplq2
	ktsbhVlOx96jRNiChECwh5OtlYxW/f2l4dvLKHDX3bPBfanMxY9aSN1OulcCoqBBTZ3XwZeDCtQ
	=
X-Gm-Gg: ASbGncvyCaLvOZEn1E0rZiuZjcYmOWLrcRVGDv0UGM8cdHtQqvSUiHN7lU1KtIAoFGv
	Bbau4D7lg9GwIQgAJJm9zvPGJrSeU9pmXl8dbDUAsLW48zHWxCjiP/UMVzTEaePzPcAVYYvrSZ9
	8l9B7FMOB3b60Ybpl/UWJ4KoXiL0fasNcHrJqIeMJapOT/QTuGf+MbWI8t5AN4Q3f7ViweK+Wvg
	96ds6dmlQLFMO5Ce2aR0fVuWZjFftjNWOTsFXHE0TNgMzGOSTbcMW8LxsDqX9CZgsWs3LOVSlUy
	RzYqKNhaBrNxze6EftokRnt5cF3WhqCPCQtfb1D0SDnsR4VOaWmgyQ72ZKE7ryyERkx3reFTTrw
	HLQVOwfS3odDDi1pbURjaY6SSbl2YYA==
X-Google-Smtp-Source: AGHT+IHFBs41558R/2Ql1mt5QVYpaW1f0cE63012gPSaUeuMuvTatI+Irratrib0MMoRX/PSslUpFA==
X-Received: by 2002:a05:6000:4287:b0:39c:1a86:e473 with SMTP id ffacd0b85a97d-39c1a86e5d3mr6095876f8f.56.1743505117026;
        Tue, 01 Apr 2025 03:58:37 -0700 (PDT)
Message-ID: <a11e692c-2bfe-440d-915b-818b133874c2@suse.com>
Date: Tue, 1 Apr 2025 12:58:35 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Shawn Anastasio <sanastasio@raptorengineering.com>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH v9] common: honor CONFIG_CC_SPLIT_SECTIONS also for assembly
 functions
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+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

Leverage the new infrastructure in xen/linkage.h to also switch to per-
function sections (when configured), deriving the specific name from the
"base" section in use at the time FUNC() is invoked.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Tested-by: Luca Fancellu <luca.fancellu@arm.com> # arm
---
TBD: Since we use .subsection in UNLIKELY_START(), a perhaps not really
     wanted side effect of this change is that respective out-of-line
     code now moves much closer to its original (invoking) code.

TBD: Of course something with the same overall effect, but less
     impactful might do in Config.mk. E.g. $(filter-out -D%,$(3))
     instead of $(firstword (3)). In fact Roger wants the detection to
     be in Kconfig, for LIVEPATCH to depend on it. Yet the whole
     underlying discussion there imo would first need settling (and
     therefore reviving).

Note that we'd need to split DATA() in order to separate r/w, r/o, and
BSS contributions. Further splitting might be needed to also support
more advanced attributes (e.g. merge), hence why this isn't done right
here. Sadly while a new section's name can be derived from the presently
in use, its attributes cannot be. Perhaps the only thing we can do is
give DATA() a 2nd mandatory parameter. Then again I guess most data
definitions could be moved to C anyway.
---
v9: Move Arm32 SYM_PUSH_SECTION() overrides here.
v7: Override SYM_PUSH_SECTION() in arch/x86/indirect-thunk.S. Re-base,
    notably to deal with fallout from fba250ae604e ("xen/arm64: head:
    Add missing code symbol annotations").
v6: Deal with x86'es entry_PF() and entry_int82() falling through to the
    next "function". Re-base.
v5: Re-base over changes earlier in the series.
v4: Re-base.
v2: Make detection properly fail on old gas (by adjusting
    cc-option-add-closure).

--- a/Config.mk
+++ b/Config.mk
@@ -102,7 +102,7 @@ cc-option = $(shell if $(1) $(2:-Wno-%=-
 # Usage: $(call cc-option-add CFLAGS,CC,-march=winchip-c6)
 cc-option-add = $(eval $(call cc-option-add-closure,$(1),$(2),$(3)))
 define cc-option-add-closure
-    ifneq ($$(call cc-option,$$($(2)),$(3),n),n)
+    ifneq ($$(call cc-option,$$($(2)),$(firstword $(3)),n),n)
         $(1) += $(3)
     endif
 endef
--- a/xen/Makefile
+++ b/xen/Makefile
@@ -415,6 +415,9 @@ AFLAGS += -D__ASSEMBLY__
 
 $(call cc-option-add,AFLAGS,CC,-Wa$$(comma)--noexecstack)
 
+# Check to see whether the assembler supports the --sectname-subst option.
+$(call cc-option-add,AFLAGS,CC,-Wa$$(comma)--sectname-subst -DHAVE_AS_SECTNAME_SUBST)
+
 LDFLAGS-$(call ld-option,--warn-rwx-segments) += --no-warn-rwx-segments
 
 CFLAGS += $(CFLAGS-y)
--- a/xen/arch/arm/arm32/head.S
+++ b/xen/arch/arm/arm32/head.S
@@ -48,6 +48,13 @@
 
         .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)
 
         /*
          * This must be the very first address in the loaded image.
--- a/xen/arch/arm/arm32/mmu/head.S
+++ b/xen/arch/arm/arm32/mmu/head.S
@@ -160,6 +160,13 @@
 .endm
 
 .section .text.idmap, "ax", %progbits
+/*
+ * 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)
 
 /*
  * Rebuild the boot pagetable's first-level entries. The structure
--- a/xen/arch/arm/arm64/head.S
+++ b/xen/arch/arm/arm64/head.S
@@ -28,6 +28,14 @@
 #include <asm/arm64/efibind.h>
 #endif
 
+/*
+ * Code here is, at least in part, ordering sensitive.  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)
+
 #define __HEAD_FLAG_PAGE_SIZE   ((PAGE_SHIFT - 10) / 2)
 
 #define __HEAD_FLAG_PHYS_BASE   1
--- a/xen/arch/arm/xen.lds.S
+++ b/xen/arch/arm/xen.lds.S
@@ -140,6 +140,9 @@ SECTIONS
   .init.text : {
        _sinittext = .;
        *(.init.text)
+#ifdef CONFIG_CC_SPLIT_SECTIONS
+       *(.init.text.*)
+#endif
        _einittext = .;
        . = ALIGN(PAGE_SIZE);        /* Avoid mapping alt insns executable */
        *(.altinstr_replacement)
--- a/xen/arch/ppc/xen.lds.S
+++ b/xen/arch/ppc/xen.lds.S
@@ -103,6 +103,9 @@ SECTIONS
     DECL_SECTION(.init.text) {
         _sinittext = .;
         *(.init.text)
+#ifdef CONFIG_CC_SPLIT_SECTIONS
+        *(.init.text.*)
+#endif
         _einittext = .;
         . = ALIGN(PAGE_SIZE);        /* Avoid mapping alt insns executable */
     } :text
--- a/xen/arch/riscv/xen.lds.S
+++ b/xen/arch/riscv/xen.lds.S
@@ -98,6 +98,9 @@ SECTIONS
     .init.text : {
         _sinittext = .;
         *(.init.text)
+#ifdef CONFIG_CC_SPLIT_SECTIONS
+        *(.init.text.*)
+#endif
         _einittext = .;
         . = ALIGN(PAGE_SIZE);        /* Avoid mapping alt insns executable */
     } :text
--- a/xen/arch/x86/indirect-thunk.S
+++ b/xen/arch/x86/indirect-thunk.S
@@ -11,6 +11,10 @@
 
 #include <asm/asm_defns.h>
 
+/* Section placement is done explicitly here; override the respective macro. */
+#undef SYM_PUSH_SECTION
+#define SYM_PUSH_SECTION(name, attr)
+
 .macro IND_THUNK_RETPOLINE reg:req
         call 1f
         int3
--- a/xen/arch/x86/x86_64/compat/entry.S
+++ b/xen/arch/x86/x86_64/compat/entry.S
@@ -31,6 +31,9 @@ FUNC(entry_int82)
 
         mov   %rsp, %rdi
         call  do_entry_int82
+#ifdef CONFIG_CC_SPLIT_SECTIONS
+        jmp   compat_test_all_events
+#endif
 END(entry_int82)
 
 /* %rbx: struct vcpu */
--- a/xen/arch/x86/x86_64/entry.S
+++ b/xen/arch/x86/x86_64/entry.S
@@ -771,6 +771,9 @@ END(common_interrupt)
 FUNC(entry_PF)
         ENDBR64
         movb  $X86_EXC_PF, EFRAME_entry_vector(%rsp)
+#ifdef CONFIG_CC_SPLIT_SECTIONS
+        jmp   handle_exception
+#endif
 END(entry_PF)
 /* No special register assumptions. */
 FUNC(handle_exception, 0)
@@ -1084,8 +1087,11 @@ FUNC(entry_NMI)
         ENDBR64
         pushq $0
         movb  $X86_EXC_NMI, EFRAME_entry_vector(%rsp)
+#ifdef CONFIG_CC_SPLIT_SECTIONS
+        jmp   handle_ist_exception
+#endif
 END(entry_NMI)
-
+/* No special register assumptions. */
 FUNC(handle_ist_exception)
         ALTERNATIVE "", clac, X86_FEATURE_XEN_SMAP
         SAVE_ALL
--- a/xen/arch/x86/xen.lds.S
+++ b/xen/arch/x86/xen.lds.S
@@ -85,6 +85,9 @@ SECTIONS
        . = ALIGN(PAGE_SIZE);
        _stextentry = .;
        *(.text.entry)
+#ifdef CONFIG_CC_SPLIT_SECTIONS
+       *(.text.entry.*)
+#endif
        . = ALIGN(PAGE_SIZE);
        _etextentry = .;
 
@@ -204,6 +207,9 @@ SECTIONS
 #endif
        _sinittext = .;
        *(.init.text)
+#ifdef CONFIG_CC_SPLIT_SECTIONS
+       *(.init.text.*)
+#endif
        *(.text.startup)
        _einittext = .;
        /*
--- a/xen/include/xen/linkage.h
+++ b/xen/include/xen/linkage.h
@@ -18,6 +18,14 @@
 
 #define SYM_ALIGN(align...) .balign align
 
+#if defined(HAVE_AS_SECTNAME_SUBST) && defined(CONFIG_CC_SPLIT_SECTIONS)
+# define SYM_PUSH_SECTION(name, attr) \
+         .pushsection %S.name, attr, %progbits; \
+         .equ .Lsplit_section, 1
+#else
+# define SYM_PUSH_SECTION(name, attr)
+#endif
+
 #define SYM_L_GLOBAL(name) .globl name; .hidden name
 #define SYM_L_WEAK(name)   .weak name
 #define SYM_L_LOCAL(name)  /* nothing */
@@ -32,7 +40,14 @@
         SYM_ALIGN(align);                         \
         name:
 
-#define END(name) .size name, . - name
+#define END(name) \
+        .size name, . - name; \
+        .ifdef .Lsplit_section; \
+            .if .Lsplit_section; \
+                .popsection; \
+                .equ .Lsplit_section, 0; \
+            .endif; \
+        .endif
 
 /*
  * CODE_FILL in particular may need to expand to nothing (e.g. for RISC-V), in
@@ -47,6 +62,7 @@
 #endif
 
 #define FUNC(name, align...) \
+        SYM_PUSH_SECTION(name, "ax"); \
         SYM(name, FUNC, GLOBAL, DO_CODE_ALIGN(align))
 #define LABEL(name, align...) \
         SYM(name, NONE, GLOBAL, DO_CODE_ALIGN(align))
@@ -54,6 +70,7 @@
         SYM(name, DATA, GLOBAL, LASTARG(DATA_ALIGN, ## align), DATA_FILL)
 
 #define FUNC_LOCAL(name, align...) \
+        SYM_PUSH_SECTION(name, "ax"); \
         SYM(name, FUNC, LOCAL, DO_CODE_ALIGN(align))
 #define LABEL_LOCAL(name, align...) \
         SYM(name, NONE, LOCAL, DO_CODE_ALIGN(align))


From xen-devel-bounces@lists.xenproject.org Tue Apr 01 11:56:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 11:56:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.933894.1335732 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzaDq-0000w6-AX; Tue, 01 Apr 2025 11:56:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 933894.1335732; Tue, 01 Apr 2025 11:56: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 1tzaDq-0000vz-7Z; Tue, 01 Apr 2025 11:56:02 +0000
Received: by outflank-mailman (input) for mailman id 933894;
 Tue, 01 Apr 2025 11:56: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=WxAi=WT=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tzaDp-0000vt-Aa
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 11:56:01 +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 47541fa9-0ef0-11f0-9ea7-5ba50f476ded;
 Tue, 01 Apr 2025 13:56:00 +0200 (CEST)
Received: by mail-wr1-x42e.google.com with SMTP id
 ffacd0b85a97d-39727fe912cso2022445f8f.3
 for <xen-devel@lists.xenproject.org>; Tue, 01 Apr 2025 04:56:00 -0700 (PDT)
Received: from [10.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-39c0b79e37bsm14134846f8f.61.2025.04.01.04.55.58
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 01 Apr 2025 04:55: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: 47541fa9-0ef0-11f0-9ea7-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743508559; x=1744113359; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=5Cp52t05p6c9+E1C9W9DHeiCq8Tol7n5ayhxWb/IgnE=;
        b=PO3sCpr1cs1kvBApYjoabmlhp8cAIHmZsuxGTh6tpC1k+j4xHrdhu0CN8kGEUGNsuc
         XM1TBH3dxIH4yikaukGlkxYW4+en4lvTBDJj+HexFmlt9KS9uXj2/uiENHizLkPPU//k
         8H5VsSD364Q8qOMYzV0lU9oYBR2EUTPm/DSg6tHnzdlDwRLjSyERxcvmfsswYPN6SjDf
         v23lviEaslzgf1U1ncYJmwZDy/bxwOfg1/ypqZR6zUDYjnXwKY1Zy+cfHxSDPNc2QNlg
         u58KhwJ5M79FC4QIMsdmm5JpTnwJgsP6E9o44Nm3yqKO9PU+RPZj+ZAof8+u+V+fT4kX
         oEig==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743508559; x=1744113359;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=5Cp52t05p6c9+E1C9W9DHeiCq8Tol7n5ayhxWb/IgnE=;
        b=bKMUniD8kYdori0lfjm9JQpOjlq8TfnnVyROjGVLCX+3ewNYnOW9aKymzfG86UixiF
         OMFPiD2GdIzb3zUUggE7B1Tdd1RuU7sXo2ZreiDVxyh1JIF3dM1sbzP8nHOszygw9ipG
         ruFIohZKJKmedE5wH+rps73cj/wZZzYr3/kjHV7J9SjLD992dYzVhAj/k+VFp9mrz7x9
         1Wnl6DHtWaED5qfq+oE8BEwa9rpL6YBjyp8ltC7QmeeEkFblcp30dd0rpuFy49XwdLmu
         hdvppY5FFHzCAz2YOmDG2HMWISlO57wW8KsaEgTVc2mbylY1ZbMpUX+lW5vYi5VOzODA
         gbRQ==
X-Forwarded-Encrypted: i=1; AJvYcCW85DuNcqigkwnuVHrCxRjNmW1chudLTiUun85NgvdVZecUpwgcVspmbff8AfOR/3+6MQ9CKUkcTiE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzS5qRJvIEJQajxj7gXfm7gOvDDLKpMKlr0mUVOKuCUr05DFuBz
	IXhbsJtpJ//v93t20CzI9aDXi1m4KEFUXh0FFXvFMnd77KfyUBu0aFqA6nH8FA==
X-Gm-Gg: ASbGncv7oGdLcrhW0DeYA6pPrJSD4r6ldVMZ5W5g0jyzwFgmQC6bhMFgasoVtm5VYpW
	mkTMz5ctvSmOyWO442dkThwe2KsIyBa4Zj3jpuu+g+wz9tNJxrP/C0IjdrBQYmV8IC6dxJ+NOt2
	R4W+oqJPXQIfJ15+IjQ4EGjIFoIK+Ii81ObX+catU3rwuisjhb3y7gCXoOmagncUL9Oe3UDE631
	wmFvmHMabahYepDEqERqyMSvbYqkgZJLSz7Bt5HaeTD41GHyaWhHSWCDyVzUT6h8/zJWx9EWvel
	+XQ8XA1OBwP06vZT41/tBuYaVTpARZDY/w7hGrczlm4PMxgK5tApYHYMykOdHkqc3mTTs1Nt+E6
	mvsf9inZ9rU7g87s5aSVKN2CiOrw/5g==
X-Google-Smtp-Source: AGHT+IFUn3Ss9iELqvfjjCosozs5UytbBYMIKLZY4y9Mu1QSsRFCGYEj9J3P0zEmb09vMambw/gQdg==
X-Received: by 2002:a5d:59ae:0:b0:391:4389:f36a with SMTP id ffacd0b85a97d-39c1211cf8dmr9665980f8f.48.1743508559557;
        Tue, 01 Apr 2025 04:55:59 -0700 (PDT)
Message-ID: <690122f5-5e11-4d3f-a5a1-55c6c4f2051d@suse.com>
Date: Tue, 1 Apr 2025 13:55:58 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 6/7] xen: introduce Kconfig ARCH_PAGING_MEMPOOL
To: Luca Fancellu <luca.fancellu@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>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Wei Chen <wei.chen@arm.com>, xen-devel@lists.xenproject.org,
 Penny Zheng <Penny.Zheng@amd.com>
References: <20250401085858.2228991-1-luca.fancellu@arm.com>
 <20250401085858.2228991-7-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: <20250401085858.2228991-7-luca.fancellu@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 01.04.2025 10:58, Luca Fancellu wrote:
> From: Penny Zheng <Penny.Zheng@arm.com>
> 
> ARM MPU system doesn't need to use paging memory pool, as MPU memory
> mapping table at most takes only one 4KB page, which is enough to
> manage the maximum 255 MPU memory regions, for all EL2 stage 1
> translation and EL1 stage 2 translation.
> 
> Introduce ARCH_PAGING_MEMPOOL Kconfig common symbol, selected for Arm
> MMU systems and x86. Removed stubs from RISC-V now that the common code
> provide them and the functions are not gonna be used.
> 
> Wrap the code inside 'construct_domU' that deal with p2m paging
> allocation in a new function 'domain_p2m_set_allocation', protected
> by ARCH_PAGING_MEMPOOL, this is done in this way to prevent polluting
> the former function with #ifdefs and improve readability
> 
> Introduce arch_{get,set}_paging_mempool_size stubs for architecture
> with !ARCH_PAGING_MEMPOOL.
> 
> Remove 'struct paging_domain' from Arm 'struct arch_domain' when the
> field is not required.
> 
> 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>
> Reviewed-by: Michal Orzel <michal.orzel@amd.com> # arm
> Reviewed-by: Oleksii Kurochko <oleksii.kurochko@gmail.com> # riscv

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

> @@ -114,9 +115,25 @@ void arch_get_info_guest(struct vcpu *v, vcpu_guest_context_u c);
>  int arch_initialise_vcpu(struct vcpu *v, XEN_GUEST_HANDLE_PARAM(void) arg);
>  int default_initialise_vcpu(struct vcpu *v, XEN_GUEST_HANDLE_PARAM(void) arg);
>  
> +#ifdef CONFIG_ARCH_PAGING_MEMPOOL
> +
>  int arch_get_paging_mempool_size(struct domain *d, uint64_t *size /* bytes */);
>  int arch_set_paging_mempool_size(struct domain *d, uint64_t size /* bytes */);
>  
> +#else /* !CONFIG_ARCH_PAGING_MEMPOOL */
> +
> +static inline int arch_get_paging_mempool_size(struct domain *d, uint64_t *size)
> +{
> +    return -EOPNOTSUPP;
> +}
> +
> +static inline int arch_set_paging_mempool_size(struct domain *d, uint64_t size)
> +{
> +    return -EOPNOTSUPP;
> +}

Arguably while "set" will of course need to fail (perhaps unless size was zero),
"get" may be fine to uniformly succeed, reporting back a size of 0. But we can
switch to that alternative model whenever a need arises, I guess.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 01 11:59:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 11:59:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.933906.1335742 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzaHI-0001Vu-O5; Tue, 01 Apr 2025 11:59:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 933906.1335742; Tue, 01 Apr 2025 11:59:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzaHI-0001Vn-LH; Tue, 01 Apr 2025 11:59:36 +0000
Received: by outflank-mailman (input) for mailman id 933906;
 Tue, 01 Apr 2025 11:59: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 1tzaHG-0001Vh-PK
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 11:59: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 1tzaHA-005Q8Q-0F;
 Tue, 01 Apr 2025 11:59:28 +0000
Received: from [2a02:8012:3a1:0:31b1:5de8:95ef:d60f]
 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 1tzaH9-00G2er-2g;
 Tue, 01 Apr 2025 11:59:27 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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=FUyksunoxaosTWI6TbzQrWg+usM93yjXi/2kA70+rmM=; b=S9zqNLfPIJyNzoJt9obWQRJmaw
	Gqj2ODlDigW127LK0GHhhRoohR7VFhDc1EoOHhZVqiKXJ8XPBTz7wRK9Wq2/SoWac+gwb1fGMJ5iA
	aMbFScBzjzh0vFjLb1hPU7kLZ7ryDdLDbUO40T3ooFdeVNIJZoZFwN9SXO00xqTmdLBY=;
Message-ID: <33786f0b-eefa-4f1f-ac57-7f1b2c74715e@xen.org>
Date: Tue, 1 Apr 2025 12:59:25 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1] xen/riscv: Increase XEN_VIRT_SIZE
Content-Language: en-GB
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org, Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <e5fa4219ccf43125e2489cc8c49b4404e6ed22ce.1743434164.git.oleksii.kurochko@gmail.com>
 <54ebdcb7-071f-411f-803a-930dc330a497@suse.com>
 <6f0efa9a-876e-4ae1-9367-ccd89f51bab0@xen.org>
 <c8a786f0-cc78-41f4-8323-dabde70a7c91@suse.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <c8a786f0-cc78-41f4-8323-dabde70a7c91@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit



On 01/04/2025 07:24, Jan Beulich wrote:
> On 31.03.2025 18:17, Julien Grall wrote:
>> On 31/03/2025 17:14, Jan Beulich wrote:
>>> On 31.03.2025 17:20, Oleksii Kurochko wrote:
>>>> A randconfig job failed with the following issue:
>>>>     riscv64-linux-gnu-ld: Xen too large for early-boot assumptions
>>>>
>>>> The reason is that enabling the UBSAN config increased the size of
>>>> the Xen binary.
>>>>
>>>> Increase XEN_VIRT_SIZE to reserve enough space, allowing both UBSAN
>>>> and GCOV to be enabled together, with some slack for future growth.
>>>
>>> At some point you may want to use 2M mappings for .text (rx), .rodata
>>> (r), and .data (rw).
>>
>> OOI, why would we want to switch to 2MB? At least on Arm, Xen is tiny
>> enough that it can fit in less than a couple of MB. I would expect the
>> same for RISC-V.
> 
> For TLB efficiency reasons for example. On x86 we switched to using 2Mb
> pages quite some time back, just to find that (at least) one of the
> bootloaders choked on the then larger binary. Hence we ended up with
> the XEN_ALIGN_2M Kconfig symbol plus the unconditional use of 2Mb
> mappings for xen.efi. For the original change see cf393624eec3 ("x86:
> use 2M superpages for text/data/bss mappings").

For Arm, we can using the contiguous bit (it allows to combine a few 
entries into one TLB on some CPUs) to reduce the TLB usage. Not sure if 
RISC-V has a similar feature.

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Tue Apr 01 12:00:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 12:00:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.933923.1335754 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzaIR-0004E7-85; Tue, 01 Apr 2025 12:00:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 933923.1335754; Tue, 01 Apr 2025 12:00:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzaIR-0004E0-5U; Tue, 01 Apr 2025 12:00:47 +0000
Received: by outflank-mailman (input) for mailman id 933923;
 Tue, 01 Apr 2025 12:00:46 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=WxAi=WT=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tzaIQ-0001md-OQ
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 12:00:46 +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 f1c8fd8f-0ef0-11f0-9ea7-5ba50f476ded;
 Tue, 01 Apr 2025 14:00:46 +0200 (CEST)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-391342fc1f6so4859179f8f.1
 for <xen-devel@lists.xenproject.org>; Tue, 01 Apr 2025 05:00:46 -0700 (PDT)
Received: from [10.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-39c0b79e33asm14112644f8f.66.2025.04.01.05.00.44
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 01 Apr 2025 05:00: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: f1c8fd8f-0ef0-11f0-9ea7-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743508845; x=1744113645; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=3qekdNUqCvpMaPyCEk3DKVrFHTGPXVQAlbwO0gptoXI=;
        b=YczKRiYnDoK1PTdBAPEmH9ljr4ClO17JFLvGZNicyGV/7aZWMTHttXN6ThKRHbWSxf
         1Q03RfRBcsta9zFYGmgHl8PUhi4MjlB3k8+8AoM9wRS+qhY5gavKO1xXxji6NP8P7Xew
         8puPUiuqAs/v4FqNUbdDTCeXeL8hJ6Fn6XA26+6tlta02rYF59OFQ+FnH0bmwzms6qKP
         FuGYj/ow/DW4AAUTLpWqj2UfV5J+4HJaea5UYGvfehvnvhKw4UqSfazFl8D1QYxWq3ti
         O+fGS6I7tD13O3MfShdf9CTuZYgnLKEjx13pU/GYKSfRFi4P1NoHM4fmXKpPoFWaMQpf
         XrYA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743508845; x=1744113645;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=3qekdNUqCvpMaPyCEk3DKVrFHTGPXVQAlbwO0gptoXI=;
        b=jlzj7LAXuiC5xBKF3x+P0D24It35Iorgn43DjBmgeV5x5yvnGWIaIQBbCOfDbi7JFc
         SvHct3GbkLtXFUOoZAOSUCkUhjZ8T3Ck9LRf5Dso7Vv1JsETQSLxagrjXUbj5SS8L8n7
         Wb8n6gFDJ3z+s0dBB9dICMSMVP10CoHi6LGU4T9mRXo7BhfoD1uAEoomjopDV231PyEy
         6XbvsuqgsWus+xV7apyzTg5scm1o29ZymjWSoRG/JSEaMJKZJ/qZkPe9OoGxq/nFWDMq
         iC5KKryaN9F+hJCsLgGR3/NaMzth3QvOTX0L16CZpKO5QEq6izQgnk/VgWfgWenqooqs
         Hn2Q==
X-Forwarded-Encrypted: i=1; AJvYcCW18LHcb7TJUoHkwFfggyN4ryQ2+Tty9kgtUe5u8tskRtpl04dhMFYOWiZM1oKKKEONTj9nI1sDEB4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzHEu/6Mo2Pj+ZTvbkD0oYK69YPKIvySR2tzMDWj0FQo1DbTGU0
	H7rHJ3O1M32NMqsAw6DX1LWkaAnbqtj102B3gBhA8hUoXMvkmYiGdt1FQvhw3A==
X-Gm-Gg: ASbGncu8Riuzl4mQ3RSM1jUCN0G+P0oPjhgY74fUpEx2jybuCM2P59IxeTputdAE/Y8
	ukihlY5tCf2TfTu0EZ7dbIFVDt5M5S8GYO6Re4eI4YegOpWW0Njva4aE78kcV3I8pIpvRXASmlq
	Iv6IchqC6YiN3AYT7WiZiuvTjntmGhUc4g+I3P6COOCyCkl+aJcegdjFqnqDmLAEK+aHTk/qFpv
	8WF0054PNY7Y4k8/Q81INsALUD8tg66LXH3sUz7VLwSfSleVT2boC3LkSE8CP3LyT2MuI+AqFyF
	821r7s0e/SEQeDrMaKFCRF/C9C/tmYdX4nBHOYNWz0FzgqQTA3Fh+147WRPhpOAIMOm/HfGRcw1
	ujQonqUY0ig3PnHzaba86Q8/TYHgbhw==
X-Google-Smtp-Source: AGHT+IGVTjE50Mwt/p6Sslki70RiZ27mt2+FrE+rzDOSTBuemDjaHYm6a+AoRHxZLZwTAn17dV4bsg==
X-Received: by 2002:a5d:6d8d:0:b0:391:1218:d5f7 with SMTP id ffacd0b85a97d-39c12114f44mr9718993f8f.40.1743508845445;
        Tue, 01 Apr 2025 05:00:45 -0700 (PDT)
Message-ID: <049a2acc-09a9-43b8-9937-960ce2b99fda@suse.com>
Date: Tue, 1 Apr 2025 14:00:44 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/6] xen: introduce hardware domain create flag
To: Jason Andryuk <jason.andryuk@amd.com>
Cc: "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>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <20250331214321.205331-1-jason.andryuk@amd.com>
 <20250331214321.205331-2-jason.andryuk@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20250331214321.205331-2-jason.andryuk@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 31.03.2025 23:43, Jason Andryuk wrote:
> --- a/xen/common/domain.c
> +++ b/xen/common/domain.c
> @@ -820,11 +820,15 @@ struct domain *domain_create(domid_t domid,
>      d->is_privileged = flags & CDF_privileged;
>  
>      /* Sort out our idea of is_hardware_domain(). */
> -    if ( domid == 0 || domid == hardware_domid )
> +    if ( (flags & CDF_hardware) || domid == hardware_domid )

Since it's || here ...

>      {
>          if ( hardware_domid < 0 || hardware_domid >= DOMID_FIRST_RESERVED )
>              panic("The value of hardware_dom must be a valid domain ID\n");
>  
> +        /* late_hwdom is only allowed for dom0. */
> +        if ( hardware_domain && hardware_domain->domain_id )
> +            return ERR_PTR(-EINVAL);
> +
>          old_hwdom = hardware_domain;
>          hardware_domain = d;
>      }

... doesn't this code then also need to set CDF_hardware if it's unset
in the function argument? Then:
Reviewed-by: Jan Beulich <jbeulich@suse.com>

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 01 12:16:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 12:16:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.933944.1335770 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzaXk-0007MN-Lj; Tue, 01 Apr 2025 12:16:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 933944.1335770; Tue, 01 Apr 2025 12:16: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 1tzaXk-0007MG-IS; Tue, 01 Apr 2025 12:16:36 +0000
Received: by outflank-mailman (input) for mailman id 933944;
 Tue, 01 Apr 2025 12:16: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=WxAi=WT=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tzaXj-0007MA-De
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 12:16:35 +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 26c9ecee-0ef3-11f0-9ea7-5ba50f476ded;
 Tue, 01 Apr 2025 14:16:34 +0200 (CEST)
Received: by mail-wr1-x42e.google.com with SMTP id
 ffacd0b85a97d-39ac9aea656so4514043f8f.3
 for <xen-devel@lists.xenproject.org>; Tue, 01 Apr 2025 05:16:34 -0700 (PDT)
Received: from [10.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-43d8314b5e7sm199241115e9.35.2025.04.01.05.16.32
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 01 Apr 2025 05:16:32 -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: 26c9ecee-0ef3-11f0-9ea7-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743509793; x=1744114593; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=kPWTSv5K/ONC8F+o1mQaSyKy+gzQpEWQzDbOHHnxz78=;
        b=Ipqq59I8FsJArUrIUBxQg64tNsrAyGbij7m/HpG1Gp/ev0Ji4NbR2eA+JeAl4zSBng
         rwvVGzosvrRhXi8i+hjC/FjF67tAyEWKTEnf/s9E4lwxCg3Q56it7NyxQkAtIvMnvFqF
         ITCU3q+LRkFBQwacWmbIA7p4yhlQJ7pbfNEBdWl7ISxoZupS/YymAHXAz0f86b4SruMl
         oy2vaSW45jwWgSOJ6M/FUqKEk18Cqrrcrh1S8fF1YaiBtBLDZ9x1OM4Z2lXwUrHtwsgz
         sWBbcOMjuHC8e7L1iP5G7V+xWI2DDskZoAXt37NlIdMyE5CEXwWiaBtQRi6PZbK/GIBY
         2cDA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743509793; x=1744114593;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=kPWTSv5K/ONC8F+o1mQaSyKy+gzQpEWQzDbOHHnxz78=;
        b=GrPL7c5ZgMbL3gtRpx4dRRkK9UEdOCrPZRSMu+OCQLQojsRFBYzPijdnQY4ghq9A8t
         TF6kgrslljBgnQoDrlgomo9TceQRBQGCx57dhfWg1T9RvdzYFfLEc+cdRBHz0A0wLLWm
         UUGWaIo2bo/rZ3NTpQ2Ya9n66Gp5UrHL4dlIXn5FsaBfg2tT6qWCampc+bK5ve3hzsRb
         3x0/fxOGwc9R2KuX3wccmWsucXmhB+d/YzpHzmWW5gEKuQpT5pHL2WEQC5u86vlNUl4w
         4HlAFVK26xsdP+A6K24/Bzsp2vX2zMBq3yOeO0LNas86ydqX0byQqCW5SMS9cJgZ0ivw
         oVAA==
X-Forwarded-Encrypted: i=1; AJvYcCUvNppYsT952tYZa/NkP3qqkMqqCBtp2kRr45ThdFaoB7mIJkw0bE/C/QPAhUGGmKGG4WD6a3wx3wc=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywm/NpdhHKRQcEDMy4bh57cOvONXvk4PLYwp/3I7Q49A9G9MzP6
	vY3vfhDgt+q7wrzY1eD/UxijitkE1aYfwv52RREfCorooso/otKR/uTtyoC24Q==
X-Gm-Gg: ASbGnctXLh/fiz5Fx1nfxzCJo8bfYmFL0vFunnJHSeO10HPnwr6Wis3vUsT22mkoIaT
	mDiE5HLsFkCCAt37nQn99bn1Qgr81Bw0V2zQciPfb5MvLn2Rpi1WHxwFXKL6QX8DIeXXQr4pzRJ
	ZzO5+ps8guHd+EnBMOenMdrbYXuRtMesfPkZjzu6BJ3PMC9oyX5gkEuRNlS9l4RsRdDNwuupohQ
	BAetXJewLJbcdogihnmTkBZVFv90pDBvHe/QUB9dHHrnrmXGOb+vXdV45+32WmhBbK3LlqTUoeU
	rRm664XLtw9OU2yLkXWvEXTZtBkxSERrVVdWds8LGLwhgEZabIsUwrHK4UUfE1iYIEgAIAfUgPU
	mPQL9Dwi1ayqrX+q8kQo2KbmKQnYsyBEP0NShhkYb
X-Google-Smtp-Source: AGHT+IGR6XEBWGq3rif+DS8uWb9hT6JlG9cY25zlVFhFU3RrNgNAvlHVMP8bZN9pfAgJnkEJYV9Q4g==
X-Received: by 2002:a05:6000:2706:b0:39c:1257:cd3f with SMTP id ffacd0b85a97d-39c1257d4fbmr6864114f8f.57.1743509793253;
        Tue, 01 Apr 2025 05:16:33 -0700 (PDT)
Message-ID: <6765d129-66dc-48d9-aaac-2b973edfda80@suse.com>
Date: Tue, 1 Apr 2025 14:16:31 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 4/6] xen/arm: dom0less seed xenstore grant table entry
To: Jason Andryuk <jason.andryuk@amd.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <20250331214321.205331-1-jason.andryuk@amd.com>
 <20250331214321.205331-5-jason.andryuk@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20250331214321.205331-5-jason.andryuk@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 31.03.2025 23:43, Jason Andryuk wrote:
> xenstored maps other domains' xenstore pages.  Currently this relies on
> init-dom0less or xl to seed the grants from Dom0.  With split
> hardware/control/xenstore domains, this is problematic since we don't
> want the hardware domain to be able to map other domains' resources
> without their permission.  Instead have the hypervisor seed the grant
> table entry for every dom0less domain.  The grant is then accessible as
> normal.

Yet aiui the original idea was to specifically not do this in the hypervisor.
I agree it shouldn't be the hardware domain, but what's wrong with having the
control domain do that? It is what is responsible for creating new domains as
well. The question of where to do that when there's no control domain must
also have been solved already (without me knowing the answer), as that's
where init-dom0less must be running.

> This works with C xenstored.  OCaml xenstored does not use grants and
> would fail to foreign map the page.

>From the sentence it's not clear whether this is unchanged behavior or
a deliberate regression.

> --- a/xen/arch/arm/dom0less-build.c
> +++ b/xen/arch/arm/dom0less-build.c
> @@ -865,6 +865,10 @@ static void __init initialize_domU_xenstore(void)
>          rc = alloc_xenstore_evtchn(d);
>          if ( rc < 0 )
>              panic("%pd: Failed to allocate xenstore_evtchn\n", d);
> +
> +        if ( gfn != ~0ULL )

Is this an odd open-coding of INVALID_GFN? And even if not - why ULL when
"gfn" is unsigned long? The way you have it the condition will always be
false on Arm32, if I'm not mistaken.

> --- a/xen/common/grant_table.c
> +++ b/xen/common/grant_table.c
> @@ -4346,6 +4346,21 @@ static void gnttab_usage_print(struct domain *rd)
>          printk("no active grant table entries\n");
>  }
>  
> +#ifdef CONFIG_DOM0LESS_BOOT
> +void __init gnttab_seed_entry(const struct domain *d, unsigned int idx,
> +                              domid_t be_domid, uint64_t frame,
> +                              unsigned int flags)
> +{
> +    const struct grant_table *gt = d->grant_table;
> +
> +    ASSERT(!d->creation_finished);

While I don't mind the assertion, it's a little funny to see such in an
__init function.

> +    ASSERT(gt->gt_version == 1);
> +    shared_entry_v1(gt, idx).flags = flags;

Does this really need to be a function parameter? The sole caller passes
a constant (GTF_permit_access).

> --- a/xen/include/xen/grant_table.h
> +++ b/xen/include/xen/grant_table.h
> @@ -45,6 +45,11 @@ void grant_table_destroy(
>      struct domain *d);
>  void grant_table_init_vcpu(struct vcpu *v);
>  
> +/* Seed a gnttab entry for Hyperlaunch/dom0less. */
> +void __init gnttab_seed_entry(const struct domain *d, unsigned int idx,

No __init on declarations please. They have no effect (as long as the definition
properly has the attribute) and hence are only at risk of going stale.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 01 12:24:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 12:24:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.933967.1335816 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzafC-00028m-Nz; Tue, 01 Apr 2025 12:24:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 933967.1335816; Tue, 01 Apr 2025 12: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 1tzafC-00028f-KF; Tue, 01 Apr 2025 12:24:18 +0000
Received: by outflank-mailman (input) for mailman id 933967;
 Tue, 01 Apr 2025 12: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=WxAi=WT=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tzafA-00028I-Ny
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 12: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 3a0e8fa7-0ef4-11f0-9ea7-5ba50f476ded;
 Tue, 01 Apr 2025 14:24:15 +0200 (CEST)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-3914a5def6bso3097616f8f.1
 for <xen-devel@lists.xenproject.org>; Tue, 01 Apr 2025 05:24:15 -0700 (PDT)
Received: from [10.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-39c0b79e33asm14163357f8f.66.2025.04.01.05.24.14
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 01 Apr 2025 05:24: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: 3a0e8fa7-0ef4-11f0-9ea7-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743510255; x=1744115055; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=NG3GHntTYPBQ4J0/UTfJ45c6gyMAT8x80KJMDD/TFBI=;
        b=TsX4YXWknyAB+2A+6VLgS1dCTVybZdzS12IamNrXQP1fm6OW4qytWrUdG6EtLn3PtM
         S0po8xzMHPyQJos9u9UCRCgRLXPUM34PI8BdlsDhwT8TQVmRdAu0Q4MGiWbMEHMz4x+J
         gygqVz8MVEGB4dHAHDBluS/YjF3mlpb/O18wpnpqeaHir4j34HwrY0k40IkTW9bfAbUJ
         VIzEH57NB3aX6iDC//QJyWWeaYs9PkH962qARXL71lnBwNRZt4XnACGUGAkxG4ExUAbb
         9qN/yHfTciArjPIX7Br1qMUa4zsgs77LAGqsEZcTahCiVhp0K/J5zOp7D9ajDiDf124a
         wRCw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743510255; x=1744115055;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=NG3GHntTYPBQ4J0/UTfJ45c6gyMAT8x80KJMDD/TFBI=;
        b=ol7FH18YJOH6Ws0a8bJUoUAzs0cM0xFMgEXYB+6S931zH/8nzhoOFy15e47k6q4Ne7
         TW6WfGHPwpPRD8yiwyTxzB2arNjwgxqXzHfvbsyh1QoEzk8PJT+PO3ikKU9CSV/YY16u
         Sl0VcXaDnegpRzacp/YDX9MWPfDTyqvPtSlmIUHdNR8pO2AVQRJH2vDql/tBPSViSVbN
         o+Br0KLDTY86PHNbTkWJYXRfrr0zG6UA/JInGQspL55mC2GxK8jImAhQOR9H2hZnEbQo
         mHCGuypDcnDUrna+vj4Z4gRtnc/aKtjRwr4abpz95USIr0aCNwMVbT90QlDFC7HK38ZF
         X8NQ==
X-Forwarded-Encrypted: i=1; AJvYcCV0gWzma0tkLWr8d69+k+8FJoFZfaXWPAsAGHxo20HAktlnp0fxzaFGnfggPVS+swiQ1TdnGNZ0CLw=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx3K4zQZCxfs0GC33qxmVv9V3irnLbgLcOWQGfbjfC52IXb4yRl
	6DxHcrhftt78fkGluItfvWS0StFvpVnKUWIz9Ozh0f1cKzIHAHYKjrLO4I59kQ==
X-Gm-Gg: ASbGncvKCt9t7JIP+5HFLBeVUX2JP9/E4zoPLbtCStMLmxsUN9EvxlYc4NDQlzHxYjJ
	IupCdJzDmd17oxOLvNkEo46W2g0flV28bkVAEChyefNKxEegADgeBi+JliUpGi68W49DbAFwdVX
	mt3PRzeJic705aAW/TG1uQfhlLULjcgUcAAI2khJVm5zIYni4gDPsGIH9Povll5atuuiKgVBHl4
	aO+FaZqu/3t8zTtPAJjUmZ7RZwT78X1E2hkpCXq8fIo+CYEib6nsSVfBA7xkekwmbkEnGcqzheH
	HL8ZlkIUYesFZbTswz+UX53BmsWknbr13tlGJn79gpF2i8ye6fyzrpR/ug2jA0bzA1Csj+vuBE/
	uve4JW8n7/pILHNjs8GADd/IZVSnetQ==
X-Google-Smtp-Source: AGHT+IHpHdtykKUfHQC4Vd8c9qZ/pFruzPe4SK+4h9JYOtfBIkbjZTffQQbnc8IFVqFHd7y8DCWqhQ==
X-Received: by 2002:a5d:6d83:0:b0:38d:de45:bf98 with SMTP id ffacd0b85a97d-39c120cb898mr9117869f8f.8.1743510255260;
        Tue, 01 Apr 2025 05:24:15 -0700 (PDT)
Message-ID: <aead1e5f-8c3e-4579-94f3-6e75c77db0e0@suse.com>
Date: Tue, 1 Apr 2025 14:24:13 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 04/19] xen/sysctl: wrap around XEN_SYSCTL_readconsole
To: Penny Zheng <Penny.Zheng@amd.com>
Cc: ray.huang@amd.com, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 xen-devel@lists.xenproject.org
References: <20250326055053.3313146-1-Penny.Zheng@amd.com>
 <20250326055053.3313146-5-Penny.Zheng@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20250326055053.3313146-5-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 26.03.2025 06:50, Penny Zheng wrote:
> --- a/xen/common/sysctl.c
> +++ b/xen/common/sysctl.c
> @@ -58,6 +58,7 @@ long do_sysctl(XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl)
>  
>      switch ( op->cmd )
>      {
> +#ifdef CONFIG_SYSCTL
>      case XEN_SYSCTL_readconsole:
>          ret = xsm_readconsole(XSM_HOOK, op->u.readconsole.clear);
>          if ( ret )
> @@ -66,6 +67,7 @@ long do_sysctl(XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl)
>          ret = read_console_ring(&op->u.readconsole);
>          break;
>  
> +#endif /* CONFIG_SYSCTL */
>      case XEN_SYSCTL_tbuf_op:

Nit: Can the #endif please live ahead of the blank line?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 01 12:27:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 12:27:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.933978.1335825 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzaiE-0002ii-3a; Tue, 01 Apr 2025 12:27:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 933978.1335825; Tue, 01 Apr 2025 12:27: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 1tzaiE-0002ib-10; Tue, 01 Apr 2025 12:27:26 +0000
Received: by outflank-mailman (input) for mailman id 933978;
 Tue, 01 Apr 2025 12:27: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=WxAi=WT=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tzaiC-0002iV-28
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 12:27:24 +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 a98e2592-0ef4-11f0-9ea7-5ba50f476ded;
 Tue, 01 Apr 2025 14:27:22 +0200 (CEST)
Received: by mail-wr1-x42e.google.com with SMTP id
 ffacd0b85a97d-39ac9aea656so4521959f8f.3
 for <xen-devel@lists.xenproject.org>; Tue, 01 Apr 2025 05:27:22 -0700 (PDT)
Received: from [10.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-43d8fbc1889sm154230465e9.16.2025.04.01.05.27.21
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 01 Apr 2025 05:27:22 -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: a98e2592-0ef4-11f0-9ea7-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743510442; x=1744115242; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=9XOFuAm2foLrtwsOzZNmoxIVwlBZyCQ84zcLOGva/yo=;
        b=FWIruyhMaQdnF8gq5qdPb4pC+jx2WS43S2qC/wAolaHH5F0b5seJWjjg5d2jJgPk8g
         eYH5D8wS49ZX33n7bp7SHF85ojQT+KST8Fu0zVQ3VD328R2LNfW7CwsQNEZqye4lUFuY
         /Qy6+7ZTVEjui3LKE2V7RT36L1O35fH4FL0swCKiQGX6tItoknfF858wC9AMuEKjfEbL
         pFT9mmF50cXbaV1WihUYllq0kXqsyMO2fGT6xD2UbQtxF7y4jG7TIotq/s6cYVYkEJXu
         tOqgQ8wsJy/uIISVSsc4+Pd2gPgKgXXbgixHt87d4zyuW7DmuEyo2FJmcJJtbEL8I640
         H9VQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743510442; x=1744115242;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=9XOFuAm2foLrtwsOzZNmoxIVwlBZyCQ84zcLOGva/yo=;
        b=vQ/ZaHRoT0AUmAQY+NVgu1A998UmfcJa2x2qh3wh36uIAfuxnNcG2ESAgmlwNw0Vg9
         sbdp8xnHOxLecSQ87mgkOv3W+YIcxRq50BY3MQL3tFxbEluNOb8GD5366HDk9V9HOGkB
         19wbkWME3TxR7YqGcE/CxiWlPZx3WQFl6HQjHuQ82v85gkSGWX8r/uR/KOO5WhsDNoyT
         p/wYIVOp+eunIma6G1AsF7VKvEJhsZFAsP26S2wXm2MIUSHHK0KHgkqVA/AxvjP1eqM8
         bFiSGzrBhFJsAGhOahy2tBz7crpOLvXyKoWonIHra3zhqgKAJ7hxi5BzLVFt4lps19j/
         lO1w==
X-Forwarded-Encrypted: i=1; AJvYcCULWHceZFvL0TTM5H+BAafUql8o/3IeHFQPxc97Sd7mkEaCl6Qnvk/+X+IcCmzb7PnNN27l8hYBHgw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxJqIzAuLBm2pbTF9t3uzeKl9qSidSv7fATTuq4e7NJFa1jxPtA
	q9yKsKifID88lvGRrttXqLt9Hmyh8zfp5QoDhdJl9uw+G4xzr51CyGM4tNtw0g==
X-Gm-Gg: ASbGncscKnFoR1XJnCMpzpmuL2GncTGgE2A+l6rMXlceRvGJwLKjSHNbNt8bYy+nrsp
	wQz9hEpw7ElqhD/qBE+abnlOC8bXS+ccdEhr6s488z8o0f+S4cpuASO0gQjYYKXtviKRLGjZQfF
	vcJsphPKxL34kTH0BCsTMAA462yIilk85v0ov2MQDpO53d0T0YoEggI2hNKJOE51EZODUkrwuHK
	4Uk0f6QMWXS2LrgNL63M+GpTZCj5oxneKiseulx6KOO2QajZzx+y1ZJMUsbcQ1a43nB05TMA3Og
	chJpiqPRJEuRPmtcUUfPuN+wNzuiiv7qFOb1jKiQEE+o94c9/XR75GcthfL/nWpfrSi7DCPfGd3
	nHiRG0oq8Wr3Z63H/QsXycZHPD+kNFw==
X-Google-Smtp-Source: AGHT+IFcFU6RTaKHZMHnsc3RxJYuJ23jeO0RsZsrVSo0X7/JmFGaXxozlwWa8ofvtpUIIbpQmBh3+w==
X-Received: by 2002:a5d:47a7:0:b0:391:487f:280b with SMTP id ffacd0b85a97d-39c120cb53amr10963785f8f.10.1743510442380;
        Tue, 01 Apr 2025 05:27:22 -0700 (PDT)
Message-ID: <f1e9a924-68c8-4ebb-9f20-bfef028f2b52@suse.com>
Date: Tue, 1 Apr 2025 14:27:21 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 06/19] xen/sysctl: wrap around XEN_SYSCTL_sched_id
To: Penny Zheng <Penny.Zheng@amd.com>
Cc: ray.huang@amd.com, Dario Faggioli <dfaggioli@suse.com>,
 Juergen Gross <jgross@suse.com>, George Dunlap <gwd@xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20250326055053.3313146-1-Penny.Zheng@amd.com>
 <20250326055053.3313146-7-Penny.Zheng@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20250326055053.3313146-7-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 26.03.2025 06:50, Penny Zheng wrote:
> --- a/xen/common/sysctl.c
> +++ b/xen/common/sysctl.c
> @@ -72,10 +72,12 @@ long do_sysctl(XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl)
>          ret = tb_control(&op->u.tbuf_op);
>          break;
>  
> +#ifdef CONFIG_SYSCTL
>      case XEN_SYSCTL_sched_id:
>          op->u.sched_id.sched_id = scheduler_id();
>          break;
>  
> +#endif /* CONFIG_SYSCTL */
>      case XEN_SYSCTL_getdomaininfolist:

Same as in the earlier patch (and I may not repeat this if later in the series
this re-occurs): #endif ahead of the blank line please.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 01 12:36:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 12:36:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.933992.1335835 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzar8-0005fr-0m; Tue, 01 Apr 2025 12:36:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 933992.1335835; Tue, 01 Apr 2025 12:36: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 1tzar7-0005fk-UT; Tue, 01 Apr 2025 12:36:37 +0000
Received: by outflank-mailman (input) for mailman id 933992;
 Tue, 01 Apr 2025 12:36: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=WxAi=WT=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tzar7-0005fe-ER
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 12:36:37 +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 f353f9aa-0ef5-11f0-9ea7-5ba50f476ded;
 Tue, 01 Apr 2025 14:36:36 +0200 (CEST)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-43690d4605dso37696155e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 01 Apr 2025 05:36:36 -0700 (PDT)
Received: from [10.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-43d82e6a532sm197628825e9.9.2025.04.01.05.36.34
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 01 Apr 2025 05:36:35 -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: f353f9aa-0ef5-11f0-9ea7-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743510995; x=1744115795; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Py943HeTv7E45c0XDZ90PGc7uXDHukAZFFuNRvjoeIc=;
        b=aKRAXhbAAvFGqV+ry5HxgV7n2oRYXoHIZlA9adXSciG3qHumSislq6PjSmeO5V/jAo
         sI9dWybKqEUd6Z8rJa+our8j5wFbBRYXx90VEG6q18wOtj8hPJeKGUQhc4w+eopoNm1G
         g47h2oV6c7wjHmIXh7OIpDEzC2J8DgB9QIb/jjZE403ezXJ9lKs1Ge6MJgLInFjBxcOg
         5ptCmGOaajii3TWbNPTfB1UK2olAwgXTtQIha2JygpMP12QWXt6QklV4pQS4mTsM4MPq
         rbuxFgY7actxN4Oxwjt0xF6egMcwtR0Wshf5oHFa5i3aeJRdVrIw3CPf2tfOZK2RKfr4
         kmsQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743510995; x=1744115795;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Py943HeTv7E45c0XDZ90PGc7uXDHukAZFFuNRvjoeIc=;
        b=VIMjvVrHTmwGR4rP0cb4gU2ZNrh7LM3ZVS9bOLq9mQujNeBks2m5HCZ4kP7PNgsM0K
         yPxbKSW+HwIGqLtZfC0ofsI4wr717XLZ3RAPmMw7TMdQO6IvsfY5g8h9v1RD04mj5wBq
         Gb32T0CPGsJY66JPEGOPd8z8eAFHUXBufBn2xai4REPlwEYYk8C40dNlYG38hBcthXyF
         LdpOJV4tPDxG9BGQpZLXyWuMy0jJwZmuc9sQDc0AIOxcPO37B3WYMXth/XvOtJClCuCd
         ULyQEP3kSq0ut5i1PremUni+UJXqRKW3+5F9ch0c2KkMlqKZYwxj5Nprt1UnAhdjpesl
         6d8Q==
X-Forwarded-Encrypted: i=1; AJvYcCXwwtE6/vkOEgighS7nRZlcY7DLR6zJRJAii8bQn2OqtN3ie0AMO0bN17zXTHmvOfS+Jq0h3z//9Ew=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyRkVJmWGXXAV4XkXXEJk4oNSCIsoDUJk0xZLR+en+sVXwJVL6P
	qNlUp1P4oX5HD53n0PQGwALHEjNKcASFaMeerl2WlE20IRp5yqB3+M3WKr0Bdg==
X-Gm-Gg: ASbGncvG9K202GTiAYINWzt1K6bZFxro+qdHLlv0tKDPjRoL1becip9gykJ1i8rvH7W
	zq7uvnwn0pxpTg5dOt89xf6B5dR4h4v9Cmo2Aptq/bIvE7io91AHP7CZgFY82mBCgBTLROoK6CR
	VE6kNOFEcp21dxq6yvYoJceuS1dm8REZgCXODLzhvfBG051URjDKcYaKtkWlrW1MdSo6JO1PO9s
	FtH/rxSBqmRS9x3k18va9RDc/u31IHHUidzDLepR4/YyixVnrP1FfV5VvtqSVxbhIg7DFuBCK35
	KpRAHkRwU79h7YW1GlyxAPONTFFlx/m21wrLua4kh9NmL9wwM13N7Hk89X5kn2Qx+ixcVekNjVo
	tagMxksMZBMZbYqJiaSHhPu9uZrXn3Q==
X-Google-Smtp-Source: AGHT+IEG91Bfd3zpZkHZzw3OGw/digGM0Cs19qkAdpIvTr/psUx7ubjEmP4U3PnKhQ1M5ULl6PQC1g==
X-Received: by 2002:a05:600c:4e87:b0:43d:8ea:8d80 with SMTP id 5b1f17b1804b1-43db61d5fd2mr106441985e9.5.1743510995641;
        Tue, 01 Apr 2025 05:36:35 -0700 (PDT)
Message-ID: <eb6d841c-7972-4b2e-a28b-3a5ebed733a0@suse.com>
Date: Tue, 1 Apr 2025 14:36:34 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 08/19] xen/sysctl: wrap around XEN_SYSCTL_lockprof_op
To: Penny Zheng <Penny.Zheng@amd.com>
Cc: ray.huang@amd.com, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20250326055053.3313146-1-Penny.Zheng@amd.com>
 <20250326055053.3313146-9-Penny.Zheng@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20250326055053.3313146-9-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 26.03.2025 06:50, Penny Zheng wrote:
> --- a/xen/common/sysctl.c
> +++ b/xen/common/sysctl.c
> @@ -123,13 +123,13 @@ long do_sysctl(XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl)
>          ret = perfc_control(&op->u.perfc_op);
>          break;
>  #endif
> -#endif /* CONFIG_SYSCTL */
>  
>  #ifdef CONFIG_DEBUG_LOCK_PROFILE
>      case XEN_SYSCTL_lockprof_op:
>          ret = spinlock_profile_control(&op->u.lockprof_op);
>          break;
>  #endif
> +#endif /* CONFIG_SYSCTL */
>      case XEN_SYSCTL_debug_keys:

In such a situation please take the opportunity and add the blank line
that was missing ahead of the subsequent case label.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 01 12:39:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 12:39:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.934002.1335846 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzau2-0006Eh-Fs; Tue, 01 Apr 2025 12:39:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 934002.1335846; Tue, 01 Apr 2025 12: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 1tzau2-0006Ea-Bv; Tue, 01 Apr 2025 12:39:38 +0000
Received: by outflank-mailman (input) for mailman id 934002;
 Tue, 01 Apr 2025 12:39: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=neKF=WT=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1tzau1-0006ER-EV
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 12:39:37 +0000
Received: from NAM12-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam12on20607.outbound.protection.outlook.com
 [2a01:111:f403:200a::607])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5cfe58ba-0ef6-11f0-9ffb-bf95429c2676;
 Tue, 01 Apr 2025 14:39:35 +0200 (CEST)
Received: from CH2PR04CA0010.namprd04.prod.outlook.com (2603:10b6:610:52::20)
 by DS7PR12MB8274.namprd12.prod.outlook.com (2603:10b6:8:da::13) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.44; Tue, 1 Apr
 2025 12:39:30 +0000
Received: from DS3PEPF0000C37D.namprd04.prod.outlook.com
 (2603:10b6:610:52:cafe::e2) by CH2PR04CA0010.outlook.office365.com
 (2603:10b6:610:52::20) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8534.54 via Frontend Transport; Tue,
 1 Apr 2025 12:39:29 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 DS3PEPF0000C37D.mail.protection.outlook.com (10.167.23.7) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8606.22 via Frontend Transport; Tue, 1 Apr 2025 12:39:29 +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, 1 Apr
 2025 07:39:28 -0500
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, 1 Apr
 2025 07:39:28 -0500
Received: from [172.29.45.113] (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, 1 Apr 2025 07:39:27 -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: 5cfe58ba-0ef6-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=MIc0jFuX1sG8qthipMKzXGCNFEP9fEba+MY454aWT47DqJaNUlgGXlx8N/Bm2+rrd01sZp2sYoBufGBD0gx2oSc8WHzehw661niKFeJcTPx+37tYi5i6NrEARniYNANkYnE/Ram4+DDg7x4Urka5QjHekBD/5eMlkuuM1/1H9jmbQDCY8akyVizIUjhxeE0az4xPxSM1leMXNWRKegnfETtdYwBxO+w68rEZI1DW8/5qBX4CFNlvtkJNpQRqzw4YzwsVUBHNKepu61B/pR35KTMPsEcQ+g/ICI3oq3nxfPj2UqRiCAOOzDc+56Kd1ZvdtOC+LRCgBg9Da4Mmn1PUgg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=gl5YIREPVy4diKHm+UdWDNY2Fzpg+ZBzCB3gMcTj42A=;
 b=kh1HCqAGWRwsTLN+nxQ63InF7Awi7uTq8EKyIOjaotD97CIltxmj2w0FeviWSU5IVuzULo7x8CkkPH9TUbotG8L0f5DtZET8cdBGKKH5zyp3oGUlJweVcABlpC7yCTIaD5gomZymKjRA7TkA4ORWLTmoVggfl6GIQyNmtt8RznXWLYNqLOWfhChh+3tyo8YK3KqhZbwzjJ5zrW9yCdhKdGtILXtHq1vYD48/jSF4PD7LiW3CQdsTWwWojuCNVFjlcOFrRr/I1cOTvFzXXGBKlLOhC48HwrKWvYkHbFsPjnw4m8YOmMg6gLwiB/a1K+hNSnqml98LiepujnkdOt6gEg==
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=gl5YIREPVy4diKHm+UdWDNY2Fzpg+ZBzCB3gMcTj42A=;
 b=bWTbkobCJfaJLuh2O48Q61TrGwCBJjL0gkn2N1hD//xxgm5ZSDwx2fnXUdlvYlxdDSdS4Ozlp4Vy8j5bxzw9fNrfaoWDnPgDADAZz9U4vFc8BbrRJnvn4yYtrUs+VXhLHXhr2uX9Vn7RGVEtDXTi8rUBwckpoEFCThIatV/V6cc=
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: <d2f986dc-db9c-43ab-9e46-702b4f94af31@amd.com>
Date: Tue, 1 Apr 2025 08:39:29 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/6] xen: introduce hardware domain create flag
To: Jan Beulich <jbeulich@suse.com>
CC: "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>, "Volodymyr
 Babchuk" <Volodymyr_Babchuk@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
	<xen-devel@lists.xenproject.org>
References: <20250331214321.205331-1-jason.andryuk@amd.com>
 <20250331214321.205331-2-jason.andryuk@amd.com>
 <049a2acc-09a9-43b8-9937-960ce2b99fda@suse.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <049a2acc-09a9-43b8-9937-960ce2b99fda@suse.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: DS3PEPF0000C37D:EE_|DS7PR12MB8274:EE_
X-MS-Office365-Filtering-Correlation-Id: 659fa37e-5f70-49c4-6b5b-08dd711a3eee
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|7416014|36860700013|82310400026|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?bTJXWmZMcEFTNGF2OEhHZ0JmYlUyWVdJMU5WTzAwVzdrbmh2WG1qZXlmRUc5?=
 =?utf-8?B?RGcxSlc4YVVPaW5ScHVjQ1NwZDBKMFB6aWM0ak5PYjVlYlFwY3ZwQlB6aWd3?=
 =?utf-8?B?dlhxbUJocDliajlXMXpobW8wQ0hsWVdFbWFkeG5qMHhkWXQzaHR4YjZ6SjFG?=
 =?utf-8?B?NWxjdWRhdkFKK2d3MWo2NHptSThSWC83ZGRLNmFWaytMQ3diQUI4SnA2WkZu?=
 =?utf-8?B?L3dxUjFtV3d4em5mcUc3bkpJQmZIQmg3dU51K29IWkE1LzFvS2RQZk4xZzha?=
 =?utf-8?B?SElLUWJub29kcVRqUFE4eTVRZkVrR3NzTDdLMnNHZFBMZGJjb0xNc1FFQ09m?=
 =?utf-8?B?aWM1NGI0RFNMY0lUQy9EOFdCZXViWTVRZS9ValBvN3BOc0VGWSt6bzZvNFpz?=
 =?utf-8?B?R0c2NitUWXBvTnk3MStZem9qTm0vZFhDQlJXcHpoQ3hnWVhicW9VWXJiWnZk?=
 =?utf-8?B?ZVdUYnBPMk5qY0NxYWFxelZpa1pZNWFqRWFIK0NNQlVtdnNSRXZWQkVJWC8w?=
 =?utf-8?B?NlZlS3ZWT0xNMVovQWN1YnBFbEdGU2gxZS9jbjVlei9PeUVDV3JBY1drQVhm?=
 =?utf-8?B?YWh4eWI0Y1Y3cDB5TDBvc1NTTExiemp2WGtpVThQUEhnSnpmOHNkYm1pdWZa?=
 =?utf-8?B?emM1UkcvMjJVNEQ2SWJXOVJzV09BZFpYZkJEWnF5S3lRSVF0YUtOUFV5aG1V?=
 =?utf-8?B?VDRHdnBPMUF5Z2NTS2hkWTJhSkJTTkNQS1V2UWRMSlkvYVk4Yy9vVFJRL3pC?=
 =?utf-8?B?VytyVnp0WDlPQ2dOVXB5WEEwaGRWZnpOcEVjYmZkRGpud0ZwZDhBeXBZWjVv?=
 =?utf-8?B?cVpxWWNlMmFXdnI3N29wdWp0RU01RjVrblZhVlJUelZQSXBDYWpDcFdlWG1z?=
 =?utf-8?B?emhXQkFsWDRzenhuRGs5dVZSUldmYnpGS2tjT00yWWFyUGVKblh3eUZHU0pC?=
 =?utf-8?B?bmtPcHlDak93VFBLN3NDOVNyc2pnZUphV2RNVnVzWndOKytkdjVqOWJ6LzN6?=
 =?utf-8?B?RExEQlJ4aktlRWZXblJLaWVXMURvaHRzUmZsdjlDaWEwR3diVXI0cTZSbDVY?=
 =?utf-8?B?TysxVjlUeWVCUW1RcDJFTUtWeFdkeVVqbFFPdG9IZ0doQnJoM204THZHV0d5?=
 =?utf-8?B?eldwM1Z2U1RzRmM3Zkk3eE5KMkJ6SUhzOVdLVTlUZmNqUG1FdHpIUHdDMG9v?=
 =?utf-8?B?RTNubTJEVUpXQXVEaHc2U3JsSGhhK1hkWlNocDBpUnBJMDh6blZ0cHhQSkEz?=
 =?utf-8?B?MVovL0ZSM3MvQ3FPRytyUGh3dlJBNWY4UTdvbHlwTm84Uks3YVJzWGd4Q0ZG?=
 =?utf-8?B?dks1bm9ISVFCZVdsMW5nYmxNQXRnQkJyWXlXTTAza05lM2w0dVNpSlNoZjkw?=
 =?utf-8?B?aWtkeDAyTGErVXZENmdLbVRNc1NIdmpCdDdEUy90ZHlMOC9jNFE2WDFGcC9R?=
 =?utf-8?B?ajY0QzBkdmhFejRXQ2MySTJRQmZYQ1RlZ2VQcnY2NktMOWJ3Y0FhK08yMDBF?=
 =?utf-8?B?UmFwUU5CMlMwWVVQNGV0eXBJcGZPVFdwL1E2OTBzM09RS2M3eDUxR1h6NnhB?=
 =?utf-8?B?dmZXQ0tpYU9ucXg2dkhkK08wZnEzYkFwZXpHTmtlcERLcVhoUm83YkR3OFJo?=
 =?utf-8?B?Y0VkSURlclZuT3daR2xMa3REaTVEL3pLRkhxajBmUUpZMU5FYnhpQldoYi9x?=
 =?utf-8?B?MWFwWEhORStzTXRKaG55ZjI2YUxEYk9BRzF1M25VM3hBUFlsRFA2ak5WT1hp?=
 =?utf-8?B?V0NCUE9SNjgxZ1o1ZUtnOTg3WHlnREFzWmdXMFhYNW9QU1FDSHBKM1NHVzh4?=
 =?utf-8?B?elhmeXdWY0pJYXEyN2lVdmJSaFdhSFBhaE4wVnBxYUVNU1pWbDhpVWs5NnUy?=
 =?utf-8?B?ZTdBV3NoK2Z0VlJid0M2OXZOcmdsS054eW1NM1JhMHU1YjVtZXZLeHNvb2Rq?=
 =?utf-8?B?VTJVcVVhZzhFd1c0SlFVL1pJaVN3Ukl1RHk4dVR3YW1QdHl6TjVVNGZ4U1JC?=
 =?utf-8?Q?3EK3pyFyHfXvee11bNcpcMSIj1JbfA=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)(7416014)(36860700013)(82310400026)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Apr 2025 12:39:29.4285
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 659fa37e-5f70-49c4-6b5b-08dd711a3eee
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:
	DS3PEPF0000C37D.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB8274

On 2025-04-01 08:00, Jan Beulich wrote:
> On 31.03.2025 23:43, Jason Andryuk wrote:
>> --- a/xen/common/domain.c
>> +++ b/xen/common/domain.c
>> @@ -820,11 +820,15 @@ struct domain *domain_create(domid_t domid,
>>       d->is_privileged = flags & CDF_privileged;
>>   
>>       /* Sort out our idea of is_hardware_domain(). */
>> -    if ( domid == 0 || domid == hardware_domid )
>> +    if ( (flags & CDF_hardware) || domid == hardware_domid )
> 
> Since it's || here ...
> 
>>       {
>>           if ( hardware_domid < 0 || hardware_domid >= DOMID_FIRST_RESERVED )
>>               panic("The value of hardware_dom must be a valid domain ID\n");
>>   
>> +        /* late_hwdom is only allowed for dom0. */
>> +        if ( hardware_domain && hardware_domain->domain_id )
>> +            return ERR_PTR(-EINVAL);
>> +
>>           old_hwdom = hardware_domain;
>>           hardware_domain = d;
>>       }
> 
> ... doesn't this code then also need to set CDF_hardware if it's unset
> in the function argument?

I don't think it matters today - later construction depends on the value 
of hardware_domain.  Which is also used for the check underlying 
is_hardware_domain().

But I agree that it makes sense to set it here in case the use of 
CDF_hardware expands in the future.

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

Thanks,
Jason


From xen-devel-bounces@lists.xenproject.org Tue Apr 01 12:41:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 12:41:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.934014.1335855 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzava-00007j-P2; Tue, 01 Apr 2025 12:41:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 934014.1335855; Tue, 01 Apr 2025 12:41:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzava-00006j-MF; Tue, 01 Apr 2025 12:41:14 +0000
Received: by outflank-mailman (input) for mailman id 934014;
 Tue, 01 Apr 2025 12:41: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=heJ8=WT=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1tzavZ-0008PM-6q
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 12:41:13 +0000
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 (mail-db8eur05on20620.outbound.protection.outlook.com
 [2a01:111:f403:2614::620])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9674ba96-0ef6-11f0-9ea7-5ba50f476ded;
 Tue, 01 Apr 2025 14:41:10 +0200 (CEST)
Received: from AS4P189CA0006.EURP189.PROD.OUTLOOK.COM (2603:10a6:20b:5d7::10)
 by AS1PR08MB7585.eurprd08.prod.outlook.com (2603:10a6:20b:471::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.45; Tue, 1 Apr
 2025 12:41:06 +0000
Received: from AMS0EPF000001B6.eurprd05.prod.outlook.com
 (2603:10a6:20b:5d7:cafe::4e) by AS4P189CA0006.outlook.office365.com
 (2603:10a6:20b:5d7::10) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8534.54 via Frontend Transport; Tue,
 1 Apr 2025 12:41:06 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AMS0EPF000001B6.mail.protection.outlook.com (10.167.16.170) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8606.22
 via Frontend Transport; Tue, 1 Apr 2025 12:41:05 +0000
Received: from DB7PR08MB2987.eurprd08.prod.outlook.com (2603:10a6:5:1c::25) by
 AS2PR08MB10351.eurprd08.prod.outlook.com (2603:10a6:20b:579::13) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.50; Tue, 1 Apr
 2025 12:40:33 +0000
Received: from DB7PR08MB2987.eurprd08.prod.outlook.com
 ([fe80::d53f:b16d:70a5:8668]) by DB7PR08MB2987.eurprd08.prod.outlook.com
 ([fe80::d53f:b16d:70a5:8668%4]) with mapi id 15.20.8534.043; Tue, 1 Apr 2025
 12:39: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: 9674ba96-0ef6-11f0-9ea7-5ba50f476ded
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=uzFyFCyKS31KwPQ8GpinjEifNPPFQR+MFUcte7iVvkKG3bKGECKEFgITHcjsZsPwWR1UbN2z/jM8C9fnU7jTd3nXxAeZ0byWUU+R8kXiyzmh8YUsqrgYDpzECIzvNgMmTe8jiaEaCid7aja7dQOILCtZ6jqEw5PqTSLGmOscJDfMu+6729KDSHbKBZLfnu8gPyI7BJacmf4ZB02LrIeTjtZSzRCxb2itX3tzhmMsVXZ/escGRG0EpK/LIOltTUsek8ICRC56ynIP4+/Z3PFCLEhXpzKX7kzMi2ZDcg8agpYpszywmbcQdFKR1TIZbRUIUrpw9V3gdlsiPMz2gnEY/Q==
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=IrmUDUAsVhFxUMqGL5k77UKZXX+SoRVVirby99Rb2k4=;
 b=nT4PbSRXNwuN5EAUNmLp23FglpYQUNCG8SjWxsZWjk9PPl9w+clgAy692jljK3eXiQasvcVj2IE9YyX4luVDXP2faNud4uKNj5FSCqKcNapB+Vjs1BzDYpf0InvQoGggfpwNANPqBH4abHJq3Mbo6j3dw+dgZozZpTRHgCGqX1TkNLu+lEY5gopIR9bBrVSYQShYPyaSTNZ3VVq/WwwGFMtTGwLXVRXi7RXL+k1Uv7c4+EQeEVC9MD/x5MTpxQ4NCpCW8d6GiUhpk329zekwRVB7Hlvq6eXBd4cI3jMeDt9T83LTcaE/pDw5Fh1zVi8Y1JJNwTrJlEn8xn/yKPuAsw==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=fail (sender ip is
 4.158.2.129) smtp.rcpttodomain=amd.com smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=IrmUDUAsVhFxUMqGL5k77UKZXX+SoRVVirby99Rb2k4=;
 b=eBSQxqF9/24JUfZSo8ekx3swerGb0xAt6emPaKQ1pqj7zGBTBgyfTdZ0Oisfda7GjJoQmiYMYxMonc4kMa0UlWi8C8SrVgJdgy05VMZThSWDgyeTlxP0JhQmUI9j/FTPe/otDX4Gr65KavNVbOOq+/4qNLBUtnHVse7V4Ky3YEQ=
X-MS-Exchange-Authentication-Results: spf=fail (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Fail (protection.outlook.com: domain of arm.com does not
 designate 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com;
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=iR6qpIHP1Y6FYyJL01Uh/iEepFhA5PG0z66aXIknz2/PtZBskoo2wYNzdTppw+d/3BtvGHVZZOqhW5wgZQZgW9mxipC6+kSByNn1lo6Tew5Rg8wHLEU1vur3IVymszOc1PsK2QRJBg42c6E3+FMeR8XjAnzgctf/aEA2kNlPAioKRy74MY4orS/ZMpZfUp68YVYK4DTB1vs7hufHOm4kwvn6gldzd/kbPfP8GJx1xZOj8h/GuktOVUnv8BzH+t9tCgiYwJ7elm7hueGnIiPu3nPy+pL8mwBjHzl/8wKdkyhkC4sV9QwVXLO9ujtJoNUbEDuYOv+OyUMZFVftneKYdQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=IrmUDUAsVhFxUMqGL5k77UKZXX+SoRVVirby99Rb2k4=;
 b=TpmJK0UidoCO4qM0+z5R6hE8OtYTr2ZbE6gWKOJ7mcku7us0inWYU4xKQ0kirqtwe9pnMGE9vELSXDqzGdUdAwO+RJqrZ2zGj7DyE0YRYFzaBM0dYwFoVCOS2TywD/JRDv5Gj4vIjhS6nuH4WPC/9IXaPhI9QmHLrbgKJbCRpSp7kBbpVJdFcmmII2IFiJgRdMH0nYCbGkvd55JB1xNja+dHgk+KHiZ14nicXipEC/ugPOFuGi5IUzaUtKrDanVP5YOpkQ2k3x+4r6Jd4Q0yuKyw7N4bg28P0dDNx8YoE1qYulTusty/svwtGfaS4Vk1xTS6aj1bZmnH62vMm7exzQ==
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=IrmUDUAsVhFxUMqGL5k77UKZXX+SoRVVirby99Rb2k4=;
 b=eBSQxqF9/24JUfZSo8ekx3swerGb0xAt6emPaKQ1pqj7zGBTBgyfTdZ0Oisfda7GjJoQmiYMYxMonc4kMa0UlWi8C8SrVgJdgy05VMZThSWDgyeTlxP0JhQmUI9j/FTPe/otDX4Gr65KavNVbOOq+/4qNLBUtnHVse7V4Ky3YEQ=
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>
Subject: Re: [PATCH] xen/arm: Drop process_shm_chosen()
Thread-Topic: [PATCH] xen/arm: Drop process_shm_chosen()
Thread-Index: AQHbouXYbSonA6PaSkKWeRFZ+sT80rOOwF8A
Date: Tue, 1 Apr 2025 12:39:48 +0000
Message-ID: <EBE0456F-945C-4B55-AE86-602AD0F1556E@arm.com>
References: <20250401090937.105187-1-michal.orzel@amd.com>
In-Reply-To: <20250401090937.105187-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.300.87.4.3)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DB7PR08MB2987:EE_|AS2PR08MB10351:EE_|AMS0EPF000001B6:EE_|AS1PR08MB7585:EE_
X-MS-Office365-Filtering-Correlation-Id: 35f7c8b4-4d85-40d2-3097-08dd711a77f1
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?akN2d285MUtHRldqZm5rVHp0dzRwSGJIT3pzVW9iRWxSM1FPSDhJaXJoaXVL?=
 =?utf-8?B?VTA0cmRBY0IxVmZTT1ZrNDc0WE9ZZElJSnkxK0dMaUtVNDk0U0swMC83S0dP?=
 =?utf-8?B?T1hCZFJ0YXJ3ZklrRXJLL2pDT2ZRbnlMb0FRN2hKb0ZKQ2QvSXc0SVh4c0JD?=
 =?utf-8?B?L2RtTVRYbzdjM2VFeVB2UlphRjFKemZYUFFNYTYvR3d5dzdVdXFXcXlMcE1s?=
 =?utf-8?B?QzhJWVRGRmg1dmJ1MHBNcEVrd2h3ODA0MkJGaFNkaXl3dVFFM0VmbERXUjYy?=
 =?utf-8?B?bytqNGdlQm9oOWVrYTlyNnFDNXowblBWTk9TWm96SXBlNy9mN1FINzU5NXNq?=
 =?utf-8?B?M1BPK0ZhcWhFTUN4K0lSZk5jOTY4RlZpOGVWMW5vTiswSTFydmRlRlRXT25E?=
 =?utf-8?B?Sk40RGFvK05TM3ZwNXUvbGlIbndYbUxiL09lYXloTmxlMzVRa2FFdUliVmRP?=
 =?utf-8?B?cUZ3S1h6YWNYc0crTUJmU2VDbUNtdzNXUDExR1JDanR5ZTNXY204K1RaQ1l5?=
 =?utf-8?B?SDFaUHNzK3JTT3lEV1dOTzF6aGo0bU9VVFpNbCtvOHA2NktWN1d1T0daSlBL?=
 =?utf-8?B?WXA0OTNkQjBEYkdGMmlEbVlFZVY0dUxic3ZDNlJkZW5IK3AwR05iNys3QmdL?=
 =?utf-8?B?Z3QrNEQxZEFGTFQ3QUwwYm5yR3BCeVJmR3ZSc05EbmF4T1k4eTd2UkE2MVg3?=
 =?utf-8?B?dXY0YmcyNndUVkZXcFgzQytRU0xRbk13ZktOK0toNFZtdW9hcmtPUFljTWdp?=
 =?utf-8?B?aUc1bkk3dkdzeHQ3TnUwL29saU9leEJwWUhwcGRhakVRMEdTOC95Qit5QUIx?=
 =?utf-8?B?U00zNkdsOUVxRFNoTkhHeFI1MUg1eVR6dWtlMUVSUllXWXZXektZb29SblJ6?=
 =?utf-8?B?RzJGQTJzSWVac3lGaHNhdEdINytBUEZEUG9SUDl6dU10ZVVWcmFIZEVMOWtm?=
 =?utf-8?B?dXFIK2pmQWIxOFFZcWl1RUJhOElZam0zaS8yLzZLVzBVam5CUlBqdklXN20w?=
 =?utf-8?B?UmNGak1rV0VCTW8xMVIwU0tDeXZaMyt1SUNYN1hWMGFvMXIrMW53ZkxQMHZV?=
 =?utf-8?B?OGkvYy93S0FkM0t2VFBRNHV0Z1llNW5EQ01oR0lyeFdteVFFVGpadjBsY1k2?=
 =?utf-8?B?RklFaTgzQUJmazh6QjlEeDVQZzBRQWpkLzRaOVp3VW5jM25GejVyMzdycTZ4?=
 =?utf-8?B?SlV5ZnhmenJveVhuNDF4MUZXZHRhNHhGanJtbm03WWQxdEMxMU04czhEbWhm?=
 =?utf-8?B?WTZXb0VTVk5mc2ZMMmpIeWNWR2JEd3FyeG5LVXdNakt0K3M4a3dKdXZ3c1pF?=
 =?utf-8?B?VGpBVTZpVmZHYVVaQzNKK09rdy9VSnF4RE9zN2JrcTdzUFVNZ2NCb3p3MWhG?=
 =?utf-8?B?SmR2YWx2b0oyK3RVV1JXZVNyRUdXeXZGRW1lODFlRkhQdC9NWGE1ZHFzK2NL?=
 =?utf-8?B?djk0Q21SMmsySU1yU2xDOGRQNEFMS24xVE00SzFJaks0SnJkcXVjTTBWeXl4?=
 =?utf-8?B?dytLcnEzOTAycEkySUxTaStOTkRBdURHdnJXQ2xVSjRSWjhoWTM5WUV3VTV1?=
 =?utf-8?B?T1NoeFZ6bGVrVFJWWXVPVnFKMUxyYkM0cjJOUnlMcEd1bU14V2hIaWpMd0pB?=
 =?utf-8?B?S2JpZjFudE0wZGx3TTFXK0xLc215SGVTTmNzS0UwaFI4b3p4MCtwTXQ2cEw1?=
 =?utf-8?B?em1TQTJJMXV6b2ttb3pLVnRwTzlaYWF5RG4vanBPWEwwQ3UvRUFTUmFzWUhE?=
 =?utf-8?B?UGdadVRIUFZkT25IN0xOcVk1bVBjTGU5eEk0c3dXNTZuVkk4U2RqdzQwdERa?=
 =?utf-8?B?UWJuMnVuUGIzOTlVQUJBVXR3L1lRVVV3UG15bWZBNG1MTkVXVENkS3NHdHZh?=
 =?utf-8?B?UmFKakNuZ3ZjQWFDcElOcC9QWG1NaGJCRE91NnphOXVHUGpzSFNhaDB4UlNQ?=
 =?utf-8?B?ZkJYdTVQazg4SnZSdm1VNmJUOFBzYmh2cHBKK3h4eHFGTzRUa1BzNTRKTm9i?=
 =?utf-8?B?MVBFQnN4YnN3PT0=?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB7PR08MB2987.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: <797576624C5C8840A4BA6920E288E501@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR08MB10351
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AMS0EPF000001B6.eurprd05.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	25ae182c-3c40-4e9a-7b4d-08dd711a4a7d
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|82310400026|35042699022|1800799024|14060799003|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?cTVnbHRKRlpvWlU5elRjRnUvSG1XQktoY0J3RUhpYlJ6dUw4cU5WOWx4a05I?=
 =?utf-8?B?TGI2MVZMV0VMcnd4dm5KVVdnZ01OV2ZvY1Z1NEUwblBNQ2N4eGd1RGtBRGps?=
 =?utf-8?B?VXhDT283YUxPbzB0d3NjSG5JRlhwc2RLU3dXTHlVLzcyRS9pbVgxcDQ3WCtN?=
 =?utf-8?B?ZVIxWXp6d1ovNDJGNHNYL0UvR0hMRGQyV25mZ1FLenZhY1RxeUpUNVBpYXZX?=
 =?utf-8?B?bmhDcmd5K0dkVVhlMUQ3cVE1UlRiQmY3Q0d1VWxpNE9NcTRIQzl1UTlCSFF1?=
 =?utf-8?B?N00wcWIwK1MybnBIRnA5K2JIMDRBMlpGZzFKNHFNb3hvRDNtTEI2a0RaTkdG?=
 =?utf-8?B?SFJ3ek5wVTQxV2FqZlZpSGpvdjVZM1VzVnRRanNiU2djV3Z2UXFPUHZqeG9i?=
 =?utf-8?B?RjY0aEpFUTVEOEZJeEE1Vkt0MmRPa1BKRXU4elpiQXFveUp6R3ZNd0duVU1V?=
 =?utf-8?B?UHViMEphb2lrYlJTbGhTODFRMDBTdkpJOWlCYkE3dlFiN25PWkt2K01VWXF0?=
 =?utf-8?B?ajhIWDF3TEh5SGRxUW0rdllDTmRoQ2dNc3kyLzJmcXpZU0tEcmVyZHRGa3Nt?=
 =?utf-8?B?Y3VCUDVveGV5a2x3NzVuQ0pYdko1VlI5WnVwMUY1YW1IVVdNS0JJQTFRa1Mz?=
 =?utf-8?B?bGZHbmFHM2QvclkwVG5JL2xBUnRlK3BOa2F1dUZhdU1QZ3JmVmN4NWJtYmJo?=
 =?utf-8?B?Uld1ZVV2SUNLVVBiMS9YT2liWmJndXFhMTNmZUpxb1drZjRqaTBBNUNPQ2tC?=
 =?utf-8?B?N1lQZDdmNk5MaVdDQ3lPM0ZWTHNGRFRnYjlBM2RTUFpwOHdSMWh4V0s0cTdp?=
 =?utf-8?B?WkNJWDc3bXNnVWlkTUw2dzdpa2ZMVVpFY2hGak1mZlZhcWNzS3dtSnh6a3I0?=
 =?utf-8?B?Y01yUlU3NFVYTllWMXYrb0NCNHd3TEhuazIyMW9OTS9wZ1lQVXhyZlZoeGgz?=
 =?utf-8?B?RUJzOVQ1UU80aFE1Y25VcFc0REF1ZENPYldhQ1d0SFJ5NDBHdnAyTzVqYW9q?=
 =?utf-8?B?VXBQQ0U1amR4aThtN3g1YWRpbGdldEh4Qmo4d1J2dDkrUExWS3ZKYi9NaXNO?=
 =?utf-8?B?UlRkY1VqRlUvMFY2WlN5MXpZdVJUQkppQWJFTWVJZ2wvR0JwSnBjTGZlQnpr?=
 =?utf-8?B?aXAyRUhSalBCSUY4dkRYcWRqSFRsMTJxTy9jQWFUa2F6RkRJeGthQktKTUNt?=
 =?utf-8?B?NUdKSjFLdHgzUVB5NXY5cUNHc3BlbWRiNnZ4M2RLTFB5RWR5SDMybVRKa09Q?=
 =?utf-8?B?UnlEM0hCUTZXNDIrdHNVenowOGJsdGpvUVE4aDBMTTIxOEZEeW1tMXFXRXcr?=
 =?utf-8?B?bHRoTnIwQjQrN0hUM3k3N3NGVlRvU2hLWklvWUxET1FzSHdza1pXaHNvd2xZ?=
 =?utf-8?B?WFZBWFRsMkd3Yjk3N0phQzZyajdLNWN1VnFMZ1JaOXRPTnhwQ29yelUwZEpw?=
 =?utf-8?B?WTRkOS92c3JIcEFpVGJqb3JZT2NyUDYwZlUwaDJhaHNSb3hmRkVBNDVESDU1?=
 =?utf-8?B?cjBCdTZOcDdjWTBXdTc1aTU0MHhDQ0J3OCtsc3Z3dXFhbmFUcXY4MlE4ZXls?=
 =?utf-8?B?Z0ltcWo4ODcySklRZDIyOVVnOCtwdUlFMTZLVDQ3SjVoeUFWL211dHA3cnIr?=
 =?utf-8?B?bVNwc2RuanZHaWFRUFB0a241QzgxOVhDQS9XM0lNcXBwYm9HT0FTWi9nWVZE?=
 =?utf-8?B?L2xpTkhJU1hNZXcycFNQTWtBSFA0NXJUZW9xK0FyM21QcFluZnFEODQ1VTRH?=
 =?utf-8?B?UFpCVmVIdmx6UTR3ajYvd3V4M2dTOGtXRzhpbVBBdFFTSlRMZkREaUR5V0dJ?=
 =?utf-8?B?VTY3ZlNGS3NNWXE0MXVZNXgzM0dmSnlMK1BzR2hiL2dKSWd3UUtyaThjdGdq?=
 =?utf-8?B?M0Y4QnpjdmltNXM0akdhUmZ4azU3U0Nxbkl2WHR5bEtDU1RxOWZwQU9TSFg4?=
 =?utf-8?B?S0hRcTRQcU9NZFdFYUppUkd5UnE3U0dnN1llV3IveG5jODlZYS9URTZGc1Zr?=
 =?utf-8?B?aFkydXBFUE9MRmcyY01GakVNcTNsRVRSYUd4L1BnTUVWNGExaTZXYVQwbjNa?=
 =?utf-8?Q?/K0P2l?=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(82310400026)(35042699022)(1800799024)(14060799003)(376014)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Apr 2025 12:41:05.1080
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 35f7c8b4-4d85-40d2-3097-08dd711a77f1
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AMS0EPF000001B6.eurprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS1PR08MB7585

SGkgTWljaGFsLA0KDQo+IE9uIDEgQXByIDIwMjUsIGF0IDEwOjA5LCBNaWNoYWwgT3J6ZWwgPG1p
Y2hhbC5vcnplbEBhbWQuY29tPiB3cm90ZToNCj4gDQo+IFRoZXJlJ3Mgbm8gYmVuZWZpdCBpbiBo
YXZpbmcgcHJvY2Vzc19zaG1fY2hvc2VuKCkgbmV4dCB0byBwcm9jZXNzX3NobSgpLg0KPiBUaGUg
Zm9ybWVyIGlzIGp1c3QgYSBoZWxwZXIgdG8gcGFzcyAiL2Nob3NlbiIgbm9kZSB0byB0aGUgbGF0
dGVyIGZvcg0KPiBod2RvbSBjYXNlLiBEcm9wIHByb2Nlc3Nfc2htX2Nob3NlbigpIGFuZCBpbnN0
ZWFkIHVzZSBwcm9jZXNzX3NobSgpDQo+IHBhc3NpbmcgTlVMTCBhcyBub2RlIHBhcmFtZXRlciwg
d2hpY2ggd2lsbCByZXN1bHQgaW4gc2VhcmNoaW5nIGZvciBhbmQNCj4gdXNpbmcgL2Nob3NlbiB0
byBmaW5kIHNobSBub2RlICh0aGUgRFQgZnVsbCBwYXRoIHNlYXJjaCBpcyBkb25lIGluDQo+IHBy
b2Nlc3Nfc2htKCkgdG8gYXZvaWQgZXhwZW5zaXZlIGxvb2t1cCBpZiAhQ09ORklHX1NUQVRJQ19T
SE0pLiBUaGlzDQo+IHdpbGwgc2ltcGxpZnkgZnV0dXJlIGhhbmRsaW5nIG9mIGh3L2NvbnRyb2wg
ZG9tYWluIHNlcGFyYXRpb24uDQo+IA0KPiBTaWduZWQtb2ZmLWJ5OiBNaWNoYWwgT3J6ZWwgPG1p
Y2hhbC5vcnplbEBhbWQuY29tPg0KPiAtLS0NCg0KTG9va3MgZ29vZCB0byBtZToNCg0KUmV2aWV3
ZWQtYnk6IEx1Y2EgRmFuY2VsbHUgPGx1Y2EuZmFuY2VsbHVAYXJtLmNvbT4NCg0KSeKAmXZlIGFs
c28gdGVzdGVkIGJvdGggY29uZmlndXJhdGlvbiBDT05GSUdfU1RBVElDX1NITSBhbmQgIUNPTkZJ
R19TVEFUSUNfU0hNLA0Kd2l0aCBEb20wIGFuZCB3aXRoIG9ubHkgRG9tVSAoRG9tMGxlc3Mgc3Rh
cnRlZCk6DQoNClRlc3RlZC1ieTogTHVjYSBGYW5jZWxsdSA8bHVjYS5mYW5jZWxsdUBhcm0uY29t
Pg0KDQpDaGVlcnMsDQpMdWNhDQoNCg==


From xen-devel-bounces@lists.xenproject.org Tue Apr 01 12:55:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 12:55:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.934063.1335866 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzb9G-0003yz-32; Tue, 01 Apr 2025 12:55:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 934063.1335866; Tue, 01 Apr 2025 12:55: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 1tzb9G-0003ys-05; Tue, 01 Apr 2025 12:55:22 +0000
Received: by outflank-mailman (input) for mailman id 934063;
 Tue, 01 Apr 2025 12:55: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=WxAi=WT=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tzb9E-0003ym-6n
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 12:55:20 +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 903b76ff-0ef8-11f0-9ea7-5ba50f476ded;
 Tue, 01 Apr 2025 14:55:18 +0200 (CEST)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-43cf3192f3bso55964375e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 01 Apr 2025 05:55:18 -0700 (PDT)
Received: from [10.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-43d82efe389sm197293005e9.19.2025.04.01.05.55.17
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 01 Apr 2025 05:55: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: 903b76ff-0ef8-11f0-9ea7-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743512118; x=1744116918; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=rz52h27Y0K49eVUrNNhBULweTSr/z2skN7gf7HWe99E=;
        b=OnoMYFqzxkoZtCjG5Dd4xzO7TdwJjxGjUmWRgT57+PVmL0hqo6BBMQ6r6L+hdVPPp9
         Mnc/69mv7b1/c0Bj8ZTX+M26V26Nr7yB6TV/XEwWRPHGhqLIy6Z7SoVniF+pR+Em8Oom
         QNUB4bs0sNSXm3pxed31SrTD7m0p1lSUmako1K5CGzS1PBiZsWG35kUfbbZtVrTU8JXH
         9i+s6cJdRNSBGam/l2bOqKeU4WRTAHizSY61AAjo0UQ9zmahQhVGJdvOtIxp0JF3xiAY
         QNSZHi2kjLSMaGpLbpHMVum5mVXG4YF9WXnAULHaYkn2CB7z/BklIGPtkc4YNp4xic02
         IXew==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743512118; x=1744116918;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=rz52h27Y0K49eVUrNNhBULweTSr/z2skN7gf7HWe99E=;
        b=NT8hbdJMxlQ1Zbxng42nofhdbtSRgr4vCYjHedAdf/ToU0uCh/ggY4pDqpA9r9QVCV
         BjFMpRXeUd0yAm7W9Rkg7ZPsvPD2y85bd0B0Tm9SGQEHjpGgtpMEyrphWy5fdK+W5yQo
         OKH4I/Fp07azn0E1CaykPC1ZDUeXHqRUD9Xnw4ggWgJMy8n6usJR3ZwQmflq+T9a4M3M
         s6wXsft2OZu38WShOF4B393HRKU4H3YXjfAYeSf4c3itrdilL0wbORURIPkU9dVAMx4+
         4mZ6loPbh6e4g+1kHGazexkgvkqN30xEuUw5464YfJb14zpDnfUtd68MEKOJcuqRCiU6
         cWRA==
X-Forwarded-Encrypted: i=1; AJvYcCX7Qi6GvltvaYmyHufCCeX2Gj8LO+OgfWp4bFAyFSL0xYprxcKwA81Wz5FMIMwEY3LC9yDobevfLGU=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxn/NNskr7bZYGU29/kh3TA/MH23sb4Ft7LRSkE2hb6yQOIgW4m
	phBpQb+VIe8/BLGYCpxsK30fWQvhlMFHlmi6xOxrfATUJIo4SwanviaDo9RMnQ==
X-Gm-Gg: ASbGncsKo0/LWozr/48I778+zlR/qW4gRH5RoKrJVs6dvUbH+x/PJhPbc85y2E9j5Ze
	+UQTid1aYwSAbj/pKysDMJlJwbdEH3CCqYct56GteltwcRr3+UwD//BgWFEclAv0gzOeWbYdntr
	URxHU7ySlrtSABeTm8nzNYSXPSDG2mqFjGBXB8fPTDiLh1A64kM+0LvnqAFFwUtVZR3DurQRAIg
	328EC8T+LOqo5Lnid2+xaBrBhf2tjcHOgfePGkck8ymFsS2aEc6jtkKT2/pyhV9qVFL294Boc1M
	dTEydYPjeK/A+d7OxKvNKzhhnhysfro1FeLhtYQ84G3WYQEsOAX5wjQib6G1bMB/D1PtehA0T2t
	mIXEDXbZyzVufkqWBsgBgeiBJMiqWeQ==
X-Google-Smtp-Source: AGHT+IEZThWwMBojUtCw7qoNrDEnvdpzW9YtRgSzOwbY3IHgFK8YCdY1KM2Gh+g7RFcAKF5ycKrHfQ==
X-Received: by 2002:a05:600c:154b:b0:43c:f81d:f with SMTP id 5b1f17b1804b1-43db6228077mr116479535e9.8.1743512117822;
        Tue, 01 Apr 2025 05:55:17 -0700 (PDT)
Message-ID: <2383a0ba-0c6b-47a4-8bbb-896c98edf51a@suse.com>
Date: Tue, 1 Apr 2025 14:55:16 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 09/19] xen/pmstat: clean up pmstat.c
To: Penny Zheng <Penny.Zheng@amd.com>
Cc: ray.huang@amd.com, xen-devel@lists.xenproject.org
References: <20250326055053.3313146-1-Penny.Zheng@amd.com>
 <20250326055053.3313146-10-Penny.Zheng@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20250326055053.3313146-10-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 26.03.2025 06:50, Penny Zheng wrote:
> We intend to move the following functions into drivers/acpi/pmstat.c, as they
> are all designed for performance statistic:

"We intend to ..." describes future plans. Yet this is what you're doing in this
very patch.

> - cpufreq_residency_update
> - cpufreq_statistic_reset
> - cpufreq_statistic_update
> - cpufreq_statistic_init
> - cpufreq_statistic_exit
> and moving out acpi_set_pdc_bits(), as it is the handler for sub-hypercall
> XEN_PM_PDC, and shall stay with the other handlers together in
> drivers/cpufreq/cpufreq.c.
> This commit also applies various style corrections while moving these
> functions

Nit - I'd like to remind you of how to (not) word commit messages.

As to what the sentence says - you staying vague leaves unclear which
style violations may have been left in place, for perhaps a good
reason. For example I observe u32 in code being moved.

> Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
> ---
> v1 -> v2:
> - new commit
> ---
>  xen/drivers/acpi/pmstat.c                 | 199 ++++++++++++++++++----
>  xen/drivers/cpufreq/cpufreq.c             |  31 ++++
>  xen/drivers/cpufreq/utility.c             | 162 ------------------
>  xen/include/acpi/cpufreq/processor_perf.h |   2 -
>  4 files changed, 199 insertions(+), 195 deletions(-)

Nit: Considering that code is being moved _into_ pmstat.c, "clean up"
in the subject is somewhat misleading. Maybe "consolidate code into
pmstat.c"?

> --- a/xen/drivers/acpi/pmstat.c
> +++ b/xen/drivers/acpi/pmstat.c
> @@ -43,6 +43,174 @@
>  
>  DEFINE_PER_CPU_READ_MOSTLY(struct pm_px *, cpufreq_statistic_data);
>  
> +DEFINE_PER_CPU(spinlock_t, cpufreq_statistic_lock);

If you really move everything that's statistics-related, then both of
the above items ought to be possible to become static now.

> +/*********************************************************************
> + *                    Px STATISTIC INFO                              *
> + *********************************************************************/
> +
> +static void cpufreq_residency_update(unsigned int cpu, uint8_t state)
> +{
> +    uint64_t now, total_idle_ns;
> +    int64_t delta;
> +    struct pm_px *pxpt = per_cpu(cpufreq_statistic_data, cpu);
> +
> +    total_idle_ns = get_cpu_idle_time(cpu);
> +    now = NOW();
> +
> +    delta = (now - pxpt->prev_state_wall) -
> +            (total_idle_ns - pxpt->prev_idle_wall);
> +
> +    if ( likely(delta >= 0) )
> +        pxpt->u.pt[state].residency += delta;
> +
> +    pxpt->prev_state_wall = now;
> +    pxpt->prev_idle_wall = total_idle_ns;
> +}
> +
> +void cpufreq_statistic_update(unsigned int cpu, uint8_t from, uint8_t to)
> +{
> +    struct pm_px *pxpt;
> +    const struct processor_pminfo *pmpt = processor_pminfo[cpu];
> +    spinlock_t *cpufreq_statistic_lock =
> +               &per_cpu(cpufreq_statistic_lock, cpu);
> +
> +    spin_lock(cpufreq_statistic_lock);
> +
> +    pxpt = per_cpu(cpufreq_statistic_data, cpu);
> +    if ( !pxpt || !pmpt ) {

Hmm, you said style corrections are being made, yet the brace here is
misplaced.

> +        spin_unlock(cpufreq_statistic_lock);
> +        return;
> +    }
> +
> +    pxpt->u.last = from;
> +    pxpt->u.cur = to;
> +    pxpt->u.pt[to].count++;
> +
> +    cpufreq_residency_update(cpu, from);
> +
> +    (*(pxpt->u.trans_pt + from * pmpt->perf.state_count + to))++;

I came across this line the other day, iirc when reviewing you other
series. I find it expremely odd that this doesn't use array notation:

    pxpt->u.trans_pt[from * pmpt->perf.state_count + to]++;

Could you please switch to that, unless of course you see an issue with
it?

> +    spin_unlock(cpufreq_statistic_lock);
> +}
> +
> +int cpufreq_statistic_init(unsigned int cpu)
> +{
> +    uint32_t i, count;

Here any elsewhere - converting to unsigned int would also fall under
style corrections.

> +static void cpufreq_statistic_reset(unsigned int cpu)
> +{
> +    uint32_t i, j, count;
> +    struct pm_px *pxpt;
> +    const struct processor_pminfo *pmpt = processor_pminfo[cpu];
> +    spinlock_t *cpufreq_statistic_lock = &per_cpu(cpufreq_statistic_lock, cpu);
> +
> +    spin_lock(cpufreq_statistic_lock);
> +
> +    pxpt = per_cpu(cpufreq_statistic_data, cpu);
> +    if ( !pmpt || !pxpt || !pxpt->u.pt || !pxpt->u.trans_pt )
> +    {
> +        spin_unlock(cpufreq_statistic_lock);
> +        return;
> +    }
> +
> +    count = pmpt->perf.state_count;
> +
> +    for ( i = 0; i < count; i++ )
> +    {
> +        pxpt->u.pt[i].residency = 0;
> +        pxpt->u.pt[i].count = 0;
> +
> +        for ( j = 0; j < count; j++ )
> +            *(pxpt->u.trans_pt + i * count + j) = 0;

Preferrably array notation again, please.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 01 12:57:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 12:57:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.934074.1335876 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzbBM-0004XA-Ea; Tue, 01 Apr 2025 12:57:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 934074.1335876; Tue, 01 Apr 2025 12: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 1tzbBM-0004X0-Bg; Tue, 01 Apr 2025 12:57:32 +0000
Received: by outflank-mailman (input) for mailman id 934074;
 Tue, 01 Apr 2025 12: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=hrmQ=WT=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1tzbBL-0004Wu-LL
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 12:57:31 +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 df1f5f3a-0ef8-11f0-9ea7-5ba50f476ded;
 Tue, 01 Apr 2025 14:57:30 +0200 (CEST)
Received: from DU7PR01CA0007.eurprd01.prod.exchangelabs.com
 (2603:10a6:10:50f::7) by DU4PR08MB11008.eurprd08.prod.outlook.com
 (2603:10a6:10:570::8) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.44; Tue, 1 Apr
 2025 12:57:27 +0000
Received: from DU2PEPF00028D09.eurprd03.prod.outlook.com
 (2603:10a6:10:50f:cafe::97) by DU7PR01CA0007.outlook.office365.com
 (2603:10a6:10:50f::7) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8583.39 via Frontend Transport; Tue,
 1 Apr 2025 12:57:27 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 DU2PEPF00028D09.mail.protection.outlook.com (10.167.242.169) with
 Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8606.22
 via Frontend Transport; Tue, 1 Apr 2025 12:57:27 +0000
Received: ("Tessian outbound 93207444acda:v604");
 Tue, 01 Apr 2025 12:57:26 +0000
Received: from Lf08b6128223b.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 04696AE2-FD7D-416E-BA4D-C5FE93C0B36D.1; 
 Tue, 01 Apr 2025 12:57:21 +0000
Received: from EUR05-VI1-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id
 Lf08b6128223b.1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Tue, 01 Apr 2025 12:57:21 +0000
Received: from DB9PR08MB6588.eurprd08.prod.outlook.com (2603:10a6:10:25a::24)
 by GV1PR08MB10807.eurprd08.prod.outlook.com (2603:10a6:150:161::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.44; Tue, 1 Apr
 2025 12:57:18 +0000
Received: from DB9PR08MB6588.eurprd08.prod.outlook.com
 ([fe80::a8fc:ea0d:baf1:23a]) by DB9PR08MB6588.eurprd08.prod.outlook.com
 ([fe80::a8fc:ea0d:baf1:23a%7]) with mapi id 15.20.8534.048; Tue, 1 Apr 2025
 12:57: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: df1f5f3a-0ef8-11f0-9ea7-5ba50f476ded
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=B35vR+jSGAjA3+pe1LdziuaTfys+lz96DAkFkkHQ14jLfM5O6SsE+J4tRr4X0gN9EMY2jnwyuHKjDQePiEquJODqHml3B+vVGHbk5GgAs8HJpsrRgPLSwgRtbKhKScITei6kHaXJL5DfVqmW5r+2YgvsKwrtPYLtApcZCSUG0WdHFgDlGarlLJVst4x/0zwm5GsZbgEQrZXyTjPqGdxuDR2Qe8iBM+MC+2H+fS+B4RT3L946O6vevFx7bxk4PyMWrsg3id0Vsygi+8xRbhUHDjfoHS9vdLrpcjqEAnjfo2dgsSWEWYG0AeWgz9x5d3kJsj0PQSfIYnwCYdQnSlyYpg==
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=y5AATKNPluFdCwzXm5L3oQURTFzDKmb8VieU9s77kaI=;
 b=jDXCsvAOYhaWg2XdMjyH9bHTxa+zoPJgS1FcLRAUBI3ivhP5EVFkA+auDQSicj1AMoFuCxPikK0WqQpDXGjvA2xy0/H0x1MqjyYzWx2wUIP0VBjSz8MaZzsKYdU7c5EqDtn4JnGubYEiGzgLs6E2fEzdsOUoq9KuTZy7bUaGaMQQ5cxvYQZNNa2NHfdiK55Q08PExFbqHFigruBVniA4YoYBvLi0wkBTGeay6NdHpBRnjGMYWWrEp+YP10jGm8YRrSI5KL5eU44C5ahWdKutXdUZA54lsMZQ+ErDcmu1k3wCEQ/atinUZwnbFjYIyqz76WL3scZiIlahYm2JKqqVdA==
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=y5AATKNPluFdCwzXm5L3oQURTFzDKmb8VieU9s77kaI=;
 b=pHjBGs+V/+WAM5kmRlMEodCa6hQjF3UziLJo+eMC9WEMelwOViWAQ8veKW5MkNn1ECjERrnA9K+W8GNwdtEHol1dCSAWaZLCgvT69hTBNuTayNpwpFFRSsvdZ9fzWkvGDlFbe2QVbxCO+7RO2DvlWnUvBQNWHF+asLA6tVahxto=
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: a676e840ca0ebe73
X-TessianGatewayMetadata: bGrBQyz+VBwu66vwpNeOd9He312tOszC+SI2SgCZpBN6iw7tERjdwKIPPChLEYwH9YbqH2XQcy2Q5rsacWwtLDHu0LN2ng+6+W30lbB3vZvzE4tnxUNgg30G6HYhbS+gTBIfrlPgBbfmuAOSUHDJ6z+QMmeHjjjYyXpE5ExgpQI=
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=pXyBHVfhhpDgyzEAC83mAmfgm4hct4Ltd8dZufjkZiXBZAKM/e1TS153b1JQwoISrBOH/xpa3DVgbXE+JuFtbtwoRZaTeGh/jNDwfUKhnCfaj34YGh0Cv/b5Hk1NSZD/VeoJIifPwVPPO1VCiOmEQLIrcc9SnChUgxc2L7ZFMn2CBVqTMFIPPvTnWDGrgF7aqedt7NkpqBsTDuxNOu9+UHp+Hb/OlmYEZ5lglLVL002AN6DuZ5s0G65RDbAG+iALm9DJAzG4BYhyBrZYmcAV9b1uIK2yHMTVFtbdmIVmLi3mbkx2PWMfS5hLtGUZKFGXxIbYgu+zfiIZEsdIhJvQ+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=y5AATKNPluFdCwzXm5L3oQURTFzDKmb8VieU9s77kaI=;
 b=LQfeV+Ytd01KBawYKHSNlRFt0lOuu3FSc3tNl8gZwwy2D3tzzzhCogAAMKdoAaMUj3UdlI2dRNUoZJzp9AxSNs3thO5MBdqRoAqZeZcd6DEp4n7mS7VS6sdcfrq7NSpFBOhcEmg29kp7gQyBlMowcExSDtXsp05ZV7tq4u8aQjzEi5XT3ZsmdUdkHu6wB5fVhsu5PnWUCC2WW7A50ALdwLGQKzVVhP1CIYK8WGtp+tCXKAr2RIMDiXjCKSEtkY84Z9Zmr121ZLItPYi4uFcohkHc4ACBsMXFmgBQTBNiuXCk5HmHXy3qSF1/qOQkm7wmeiybl+aYs//0zw4sfYDJ6w==
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=y5AATKNPluFdCwzXm5L3oQURTFzDKmb8VieU9s77kaI=;
 b=pHjBGs+V/+WAM5kmRlMEodCa6hQjF3UziLJo+eMC9WEMelwOViWAQ8veKW5MkNn1ECjERrnA9K+W8GNwdtEHol1dCSAWaZLCgvT69hTBNuTayNpwpFFRSsvdZ9fzWkvGDlFbe2QVbxCO+7RO2DvlWnUvBQNWHF+asLA6tVahxto=
From: Bertrand Marquis <Bertrand.Marquis@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>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH] xen/arm: Drop process_shm_chosen()
Thread-Topic: [PATCH] xen/arm: Drop process_shm_chosen()
Thread-Index: AQHbouXQNh7nKprt5k2iUHPtnXy/N7OOxVgA
Date: Tue, 1 Apr 2025 12:57:18 +0000
Message-ID: <3D313BC0-75C9-4208-9067-C1F6153B3859@arm.com>
References: <20250401090937.105187-1-michal.orzel@amd.com>
In-Reply-To: <20250401090937.105187-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.400.131.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DB9PR08MB6588:EE_|GV1PR08MB10807:EE_|DU2PEPF00028D09:EE_|DU4PR08MB11008:EE_
X-MS-Office365-Filtering-Correlation-Id: 3ff1b743-b85f-46e0-006b-08dd711cc14b
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:
 =?us-ascii?Q?vs6Rk9IeaEK0DTW8eeOQ90zZvwAPxAEjI1t9IvCGgcbV9YorBkQEgxnM6yV6?=
 =?us-ascii?Q?QWLFNuZunZZ22QK/gDrlEam84ssnkgEL+77aW7mn8swAmJqn9PBSrSqFWS/m?=
 =?us-ascii?Q?C9DZ0zbiao/Iqr2dokUcRs2dBWkN1ftbh12xvmJAa75D/PMwgStP47h+lwQr?=
 =?us-ascii?Q?5O8VQd1vvqI1xMEAt/prUKn9lxmRiTJHzZ+GSIQE+cjsUb7SYL8vmEdJyFnN?=
 =?us-ascii?Q?3q6WB0/64Kn8JDE3rQR2DN1w7g9NCDowgLJD/Fu0N/ZxaRsWCV56SxPRyrru?=
 =?us-ascii?Q?PjyqJIURp1ASFAD9oetjoWWI6uK8vY5OGBqJ+jW6D85XYr5j7+z1B4mZhpnk?=
 =?us-ascii?Q?8sJFZ0/mm+heynPawsQKGAiZFS8kfhEfjpXuvJRJbCW15YKEVd2skPLczyV8?=
 =?us-ascii?Q?N8qyg7ifw9JGdmql8cmr13LomEzZ/m41/btWkvRjn7nNAGPmGq/pW78BZc9i?=
 =?us-ascii?Q?GRskgIqFo9H56SqyUGlf1RjnVYyFihYBmfMWDQA2dvHxHakWqCcOdu0MI70L?=
 =?us-ascii?Q?YNph63uFil96Sz2YuZOvqfmKzsmfSsoLgCCxtAe15w97Y8Pa5QYB0LfXrPak?=
 =?us-ascii?Q?x5JGF4ij5wn1xZ/nMBfPC9usCQKzetBDuRelYiy656bOF35cvTa79iubglmp?=
 =?us-ascii?Q?KFcMFbYD+F2ZTPqmg3LAloF8NQ2VrCnK2U/LZieelz9031EMDRMwGrO3Ys9E?=
 =?us-ascii?Q?WmSfXyydjBOMkmAeSjoCCiKnCOqOYmMPao1utz/WI6wghdr3SqwVD+Kr1u7J?=
 =?us-ascii?Q?o4CD9LXf8OEjY142+VXQei0y61cafXLCWRWQsj4DL6Va5osNIt8pt2TEZFBD?=
 =?us-ascii?Q?G/zhRmr4T80QyYTZi+trrj1+iUXmh4Szjl/zDjxoYG3AfR4YwW58c8UMUAuY?=
 =?us-ascii?Q?RiCbybSO7WfSN/jOvObYlK9uSp+DgRuLI0BAvjqx85Nv/Rx4JN48j950YAR5?=
 =?us-ascii?Q?eoovT6+xvjaTnQrVO6bfbVzhwEnFueOa7ViduDXYBBndQtX0fvko72Fo/mG3?=
 =?us-ascii?Q?pxJ94DY8vLD0fIVX4Kb0FHebu55ODE00DIQq5RqXEk1yvdWVAAdJtlXNWTL4?=
 =?us-ascii?Q?Aa0364FsJbTf3z389+2HbRQY0IcA8EJVfzi+nxnS39jSeBqFaYUlgRk31gPi?=
 =?us-ascii?Q?Gm+vh8FoMe1KEhICycD2xxO9sarXu7O4fOM7SFe/jONyokCF645e47bEZWa6?=
 =?us-ascii?Q?lmjl+dA8W2Fgt6AlROe3j9sgxQWu9EbTrYgptfDPQuD+g7pBvQj8r0e03558?=
 =?us-ascii?Q?ZgCE5nlHsp+Ru12gn3+byO89lDi3EBKCJdu+uOsYEcjuZVwRw3NPcX85nvkx?=
 =?us-ascii?Q?1z5Tq5cddzKWlsq1Jftm7mKlWkbqJZtbNJ/oV4gqcgfw67C3sOaGiHxjzoKf?=
 =?us-ascii?Q?ZEx0C0NSpmHcxcZFHd2T1susyMb8KIJNZ/lKw5N8zD6/JhqVyJ9MGhK/THrT?=
 =?us-ascii?Q?odaYnU27QOMY71BFir4TbUOSv7D2Oi4o?=
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)(376014)(366016)(38070700018);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-ID: <19FCD2424636B14CA0A926C9589565A3@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR08MB10807
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:
 DU2PEPF00028D09.eurprd03.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	2235bce2-6046-4c36-9f7f-08dd711cbbd8
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|1800799024|36860700013|376014|14060799003|35042699022;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?cZUmySSv+WOfSxMSaVaDlBCGyem4FBRSfeGpt4wK6l3Z/yzjmkqdhyy5YusO?=
 =?us-ascii?Q?WmmdLbrK/ECmCAZha4vYNpMcoStyuthEtpHj446aYDdrJknJ/IwZxx5kZdic?=
 =?us-ascii?Q?i/ukZmYSMgngcYv65AyVmoCqzHsKZcNQn7KVdJGRlj0AA434a1nnnGhJy2CB?=
 =?us-ascii?Q?Cx6Utot938EI2CIlOKcXaMsDZ3SbcHdToVT66+ssFMR6HOO6hQ5bgOCYIScy?=
 =?us-ascii?Q?pTfE/7fA0m25dxuQbrVe0apYL2zxJli28MJBXbx8kaPqyjnAOPEE34tKGoQY?=
 =?us-ascii?Q?XDaOb91zTMi6RsQvigS90+SuIJDg16x/VGa029WnVGIoJxOqf986PZ837NLn?=
 =?us-ascii?Q?JjW6ve7iwlUQO30qNYL1dCUG0KR7+CrqgIi9UiGSwQkdj3rKKTkJompp+i0q?=
 =?us-ascii?Q?p79x56H2/P/pvsW6AEDjPHofv9CzS/Po9zoBhGfCFg+K6nxH5BTO68onEzsz?=
 =?us-ascii?Q?tCJHfnrb3rlJjbiWLHfPO4lZJcu79Rj7hM9PHEGBkApJDlWRPemBjswhcG8M?=
 =?us-ascii?Q?OA6/IGtYqKaDoh2cBopVORSvVbnW+pp0vK2EYCTvaIzM90TU3HJvieKwzezU?=
 =?us-ascii?Q?I/EHmSajAgJkSfivdQ57hVV0stD6IalXrLAWmZWc84x1c/Zv2Qk/0XYzJ7Py?=
 =?us-ascii?Q?hZFc0tYMUeJU14Vvxh/OVG00roR3CHq7RRsAtlONJQRHxauMn2NEr3vkqurZ?=
 =?us-ascii?Q?1D87zOijZ19WuA1+sn1O7fM0iDiq3hB15EgjhBfadbwnKTg+IlYGzHoR7bw9?=
 =?us-ascii?Q?lSx2ma+wYN9uY2OYR3t3eyqZRR8+78F9gDNRu/Hk82jiPG1o7u+oXtkSyY/b?=
 =?us-ascii?Q?epCo2iTrS/h2c3+0exM2TjdSCKOh1ZXCD5/YmopaRYGKoEFaKmxVMCD9XIAj?=
 =?us-ascii?Q?/evuZP+sFGiJNB8V1XIsKd1BmsxbiW9oMvj79NQsEvE3Yz/ydp0T2ibAHoAC?=
 =?us-ascii?Q?gPbRzrkmd/3VBIbaoZCndIlbazVXTq7SiPQFD1jKYv5iyZvFhitNEVWQbUOd?=
 =?us-ascii?Q?dYjUDDIdXXQaWVIw5f653c37ApRxqLj0rMyw27JuNfeHUXBuFf1tonYeixoQ?=
 =?us-ascii?Q?y35Zsw2jIkXYckkfXacX0WTCi6G36Ooa5eTjQXUMf5TxLWTVfBQO67yHt2GL?=
 =?us-ascii?Q?hSgExO1+GX7e5guY3KiM7KAqfY8MJ7QRu+EjEQNlmLlWx4hUsa8QDXorb0No?=
 =?us-ascii?Q?YRRYswvDPfggRfjT0XlPxE85OFMjNouHDeJojgP14X/k0a7ZF882q8R1ML4G?=
 =?us-ascii?Q?/k0Du/nnuTlV0xQqtlk1AD3bWXa7eP3piBK6TXui4gqeGsTCUd/YrzrS4krE?=
 =?us-ascii?Q?skKyVZto76Ud58VvpUcsj3Xnbq9cHpVmYTldPqETfbFRCPu9RWtfqq8vWnnG?=
 =?us-ascii?Q?d/Jas+VvbqfjhIlnlmUA9OHPN6piPCCM8Pe3TQmR0ASFVLK7xUq0HQVi8o+N?=
 =?us-ascii?Q?iTf2S+3gQB9CU669D0T4u59HSwanxsvog5jf5Jrmu7BXg6tVP+Oj9M/ZGsfS?=
 =?us-ascii?Q?EwG3lrU9xdVVYOpwWfyWKYaDiamNIQxqARvR?=
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)(1800799024)(36860700013)(376014)(14060799003)(35042699022);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Apr 2025 12:57:27.2419
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 3ff1b743-b85f-46e0-006b-08dd711cc14b
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:
	DU2PEPF00028D09.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU4PR08MB11008

Hi Michal,

> On 1 Apr 2025, at 11:09, Michal Orzel <michal.orzel@amd.com> wrote:
>=20
> There's no benefit in having process_shm_chosen() next to process_shm().
> The former is just a helper to pass "/chosen" node to the latter for
> hwdom case. Drop process_shm_chosen() and instead use process_shm()
> passing NULL as node parameter, which will result in searching for and
> using /chosen to find shm node (the DT full path search is done in
> process_shm() to avoid expensive lookup if !CONFIG_STATIC_SHM). This
> will simplify future handling of hw/control domain separation.
>=20
> Signed-off-by: Michal Orzel <michal.orzel@amd.com>
> ---
> xen/arch/arm/domain_build.c             |  2 +-
> xen/arch/arm/include/asm/static-shmem.h | 14 --------------
> xen/arch/arm/static-shmem.c             |  4 ++++
> 3 files changed, 5 insertions(+), 15 deletions(-)
>=20
> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
> index 2b5b4331834f..7f9e17e1de4d 100644
> --- a/xen/arch/arm/domain_build.c
> +++ b/xen/arch/arm/domain_build.c
> @@ -2325,7 +2325,7 @@ int __init construct_hwdom(struct kernel_info *kinf=
o)
>     else
>         allocate_memory(d, kinfo);
>=20
> -    rc =3D process_shm_chosen(d, kinfo);
> +    rc =3D process_shm(d, kinfo, NULL);
>     if ( rc < 0 )
>         return rc;
>=20
> diff --git a/xen/arch/arm/include/asm/static-shmem.h b/xen/arch/arm/inclu=
de/asm/static-shmem.h
> index fd0867c4f26b..94eaa9d500f9 100644
> --- a/xen/arch/arm/include/asm/static-shmem.h
> +++ b/xen/arch/arm/include/asm/static-shmem.h
> @@ -18,14 +18,6 @@ int make_resv_memory_node(const struct kernel_info *ki=
nfo, int addrcells,
> int process_shm(struct domain *d, struct kernel_info *kinfo,
>                 const struct dt_device_node *node);
>=20
> -static inline int process_shm_chosen(struct domain *d,
> -                                     struct kernel_info *kinfo)
> -{
> -    const struct dt_device_node *node =3D dt_find_node_by_path("/chosen"=
);
> -
> -    return process_shm(d, kinfo, node);
> -}
> -
> int process_shm_node(const void *fdt, int node, uint32_t address_cells,
>                      uint32_t size_cells);
>=20
> @@ -74,12 +66,6 @@ static inline int process_shm(struct domain *d, struct=
 kernel_info *kinfo,
>     return 0;
> }
>=20
> -static inline int process_shm_chosen(struct domain *d,
> -                                     struct kernel_info *kinfo)
> -{
> -    return 0;
> -}
> -
> static inline void init_sharedmem_pages(void) {};
>=20
> static inline int remove_shm_from_rangeset(const struct kernel_info *kinf=
o,
> diff --git a/xen/arch/arm/static-shmem.c b/xen/arch/arm/static-shmem.c
> index c74fa13d4847..cda90105923d 100644
> --- a/xen/arch/arm/static-shmem.c
> +++ b/xen/arch/arm/static-shmem.c
> @@ -297,6 +297,10 @@ int __init process_shm(struct domain *d, struct kern=
el_info *kinfo,
> {
>     struct dt_device_node *shm_node;
>=20
> +    /* Hwdom case - shm node under /chosen */
> +    if ( !node )
> +        node =3D dt_find_node_by_path("/chosen");
> +

I would have 2 questions here:
- what if a NULL pointer is passed, wouldn't you wrongly look in the main d=
evice tree ?
- isn't there a NULL case to be handled if dt_find_node_by_path does not fi=
nd a result ?

Couldn't the condition also check for the domain to be the hwdom ?

Cheers
Bertrand

>     dt_for_each_child_node(node, shm_node)
>     {
>         const struct membank *boot_shm_bank;
> --=20
> 2.25.1
>=20



From xen-devel-bounces@lists.xenproject.org Tue Apr 01 12:57:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 12:57:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.934082.1335886 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzbBl-0004xG-M7; Tue, 01 Apr 2025 12:57:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 934082.1335886; Tue, 01 Apr 2025 12:57:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzbBl-0004x9-JB; Tue, 01 Apr 2025 12:57:57 +0000
Received: by outflank-mailman (input) for mailman id 934082;
 Tue, 01 Apr 2025 12:57:56 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=WxAi=WT=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tzbBk-0004pc-3j
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 12:57:56 +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 ed440d88-0ef8-11f0-9ffb-bf95429c2676;
 Tue, 01 Apr 2025 14:57:54 +0200 (CEST)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-43ce71582e9so39324925e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 01 Apr 2025 05:57:54 -0700 (PDT)
Received: from [10.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-43d900009e5sm155663555e9.34.2025.04.01.05.57.53
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 01 Apr 2025 05:57:53 -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: ed440d88-0ef8-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743512274; x=1744117074; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=q074qb7siEiV1o4yxk63IddYLBieZ8FtwGsqz4h3YHY=;
        b=OqsAdtU+OCYXpa6uGYSg02a8cN1YCgq6abVa8xzkiLYoM38OW7V79vR09LcWemS2bS
         I7A7lnX/L1j/lo9Kw+F8+Q2IIGXXW00+KrnwyTvicrU1uFDZk9lDIOhdwmfxtmUZmFV8
         iaDZWiLHXx97KQFsAWZvaMGoo+Ekc7xYROsuGPgi6skgGr2+LLmb7WN0LupVbSVjLt/0
         TdCTxQUkCgv6xwTYuiPPCIkLKOGPg8+n6xg9zushv92OaC3UkbWWSpAUGQq/XwGH0X0i
         I2ezaQjOq52fziu3O8yDUs9t+gEL8KIoHSB6o5kzFIWKeh8ejhTKPrseseQz2Jc04ot6
         E2yw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743512274; x=1744117074;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=q074qb7siEiV1o4yxk63IddYLBieZ8FtwGsqz4h3YHY=;
        b=WzzWlMZU2Ji7fGlcNla7s7MYYu+zinUlaGt+9JsBf+uS8RAUjiRwaVVGAbzlP2kCf7
         pNoCKTPJp9y9+mVKCe7Qe4jcFUmA5v9ex5oFH25sxI/EF6bDBjUiONXMvXaELDyUps/v
         bTc27MDri8ANEdC3WkxbwS4rDel5tvxikjAYsf5L+Myhoin/s+nBURDUFvuC/JxOy5b7
         pNLy2XHBNoxIEFTa2+6F+TaRb0SLP01m3ZDaqscXlU3efqnbfwO6TstDmUhidY+a0FtF
         ACqjdDbf7GSHtYdNL1PTiMPn3ParoY/XQTZ3JbsRkRDHcJpn2s0n03LDkWIAGx4serYd
         1ITw==
X-Forwarded-Encrypted: i=1; AJvYcCVESeJxUMn7ufmDC3/KYgSEebt6oR4+DOOIfc9WQ3k9EU8r9pRvX8HUQ2e+e0D4BPQqWr0Dud/0Fwg=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzbat7tYhRqTlcs+JYp6GfsGbAbke1wTx5ITSDVRGrVEDMRRXoH
	H0fjqjupglKV20huyFu5nPB0d3YwZ9z+ZLlyWH9J4tHd+mQDZyShUnkPpn0vcA==
X-Gm-Gg: ASbGnctcS6/iccy8d5mRufbSTEXnSz6Da4SyGHLrZiMOODoIlRUa0CSLV59EvjbvP+S
	UIzO+qztHQNpXrjJ/LLcqver/c/vUo2b+QSz94R6bfbH0+kLxksKxB7nzuswwAE8evNlkb70y2u
	wTM1YD2Bmb1rFrRiwVkSGx2OY6RntQKvp3Wf+0fgMHCDbDSTg1zeQhWnkO7v2EmbGh2/mVTa026
	pxffXFo+rFyw2P1/Bn1b9eb2VRcDW6XowM5602bK1Au7Hd9CbHWlUQQcYojGOlvOOi3lq438yhW
	kqGpiUf2NhrHo3AjFQXjHnsNr8hkhYp3JaTTtBclAivOQqh+b1fRskS3ugFwibibqog9BHRG7xo
	ql/CuTfrSet8Dv44Jc7HKFyLTgrOfMxtEaSTQ51Fe
X-Google-Smtp-Source: AGHT+IE4qDfwSqYhvUPsg20lVl1XLQvtK5/FUxQ6+XuocmM3vNJXioVZwwF3VMZ/LwjtMTKye2Ddqg==
X-Received: by 2002:a05:600c:c86:b0:43c:f050:fed3 with SMTP id 5b1f17b1804b1-43db61d1becmr114374365e9.11.1743512273987;
        Tue, 01 Apr 2025 05:57:53 -0700 (PDT)
Message-ID: <8f1df169-247e-4a15-8830-27ed47efd103@suse.com>
Date: Tue, 1 Apr 2025 14:57:52 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/6] xen: introduce hardware domain create flag
To: Jason Andryuk <jason.andryuk@amd.com>
Cc: "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>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <20250331214321.205331-1-jason.andryuk@amd.com>
 <20250331214321.205331-2-jason.andryuk@amd.com>
 <049a2acc-09a9-43b8-9937-960ce2b99fda@suse.com>
 <d2f986dc-db9c-43ab-9e46-702b4f94af31@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: <d2f986dc-db9c-43ab-9e46-702b4f94af31@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 01.04.2025 14:39, Jason Andryuk wrote:
> On 2025-04-01 08:00, Jan Beulich wrote:
>> On 31.03.2025 23:43, Jason Andryuk wrote:
>>> --- a/xen/common/domain.c
>>> +++ b/xen/common/domain.c
>>> @@ -820,11 +820,15 @@ struct domain *domain_create(domid_t domid,
>>>       d->is_privileged = flags & CDF_privileged;
>>>   
>>>       /* Sort out our idea of is_hardware_domain(). */
>>> -    if ( domid == 0 || domid == hardware_domid )
>>> +    if ( (flags & CDF_hardware) || domid == hardware_domid )
>>
>> Since it's || here ...
>>
>>>       {
>>>           if ( hardware_domid < 0 || hardware_domid >= DOMID_FIRST_RESERVED )
>>>               panic("The value of hardware_dom must be a valid domain ID\n");
>>>   
>>> +        /* late_hwdom is only allowed for dom0. */
>>> +        if ( hardware_domain && hardware_domain->domain_id )
>>> +            return ERR_PTR(-EINVAL);
>>> +
>>>           old_hwdom = hardware_domain;
>>>           hardware_domain = d;
>>>       }
>>
>> ... doesn't this code then also need to set CDF_hardware if it's unset
>> in the function argument?
> 
> I don't think it matters today - later construction depends on the value 
> of hardware_domain.  Which is also used for the check underlying 
> is_hardware_domain().
> 
> But I agree that it makes sense to set it here in case the use of 
> CDF_hardware expands in the future.

If we don't do this now, it'll be quite likely that it'll be forgotten
later. Hardly anyone actually tests late-hwdom these days, afaict. It
may also matter if someone looks at e.g. a dump of Xen after a crash.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 01 13:08:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 13:08:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.934106.1335897 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzbMG-0008Km-SY; Tue, 01 Apr 2025 13:08:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 934106.1335897; Tue, 01 Apr 2025 13:08: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 1tzbMG-0008Kf-Md; Tue, 01 Apr 2025 13:08:48 +0000
Received: by outflank-mailman (input) for mailman id 934106;
 Tue, 01 Apr 2025 13:08: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=oF/L=WT=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1tzbMF-0008KU-8r
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 13:08:47 +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 71ae02da-0efa-11f0-9ea7-5ba50f476ded;
 Tue, 01 Apr 2025 15:08:46 +0200 (CEST)
Received: by mail-ed1-x52c.google.com with SMTP id
 4fb4d7f45d1cf-5e5e0caa151so10451351a12.0
 for <xen-devel@lists.xenproject.org>; Tue, 01 Apr 2025 06:08:46 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 4fb4d7f45d1cf-5edfaacd006sm5569248a12.79.2025.04.01.06.08.44
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 01 Apr 2025 06:08:44 -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: 71ae02da-0efa-11f0-9ea7-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1743512925; x=1744117725; 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=i+k/6xoif6G18S7LhhZwjPIf1Qq+MJLqrDCjFM/tlQQ=;
        b=KG7jlfx2h3clYX3yZjWwy6VoyhJ2aSZzl2hzNdfIMKt33n7tqPxdYOLo5wAb3s/wGc
         dL3t4vvzaiA4KxImfS5gfZdYqb0r+RUuPPvIxb5QX/4atHBpipiR685i09/uDGGs7DWF
         2AhUiTpitdHzEg/nEevOj+dK/ayLLT7lQ9A30=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743512925; x=1744117725;
        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=i+k/6xoif6G18S7LhhZwjPIf1Qq+MJLqrDCjFM/tlQQ=;
        b=Kldm8DOy7ctGkOumSsFeJYTN/1ODI/goL4BGKXgKZyU1cww1QDbgJf8LSa3EChsM4M
         98NFXNfwVWmoCtSiTzA25/0tZxJwaqfeJ+ztOR6h3JzVwCD6S02aD8TBDWyF4kK6pUqC
         S33hlAOL47MN0zhL7X3+p7jzfHpEu6H0rlD7RKGNlDVWrcHhsTw38wOs29y0Q8JfaEnA
         As/ZaEvZ1W2Sr8OtXTzOlbQeQgBh/TjFGWO2YH7kjCcPMheqIqURB9mmLxX2hk4G2STg
         WRYZPm13zLJw71qZRsaxiYC7PKdnstQTtEP72N+FmQ8IxwfUvMA2/oQU04t6uBue0llr
         f5Ow==
X-Gm-Message-State: AOJu0YxWjSUbar1603Ce7xOnNM9wuZbJd/qm7wirGmEMVJnQdTqE4XxT
	YmiUOeLUVDDIeV+zkGvbK26mYy8zeUgGEwDIKuPN7xsQY/fs83srod6zBJlsj5TbLBIbWqojuGo
	5
X-Gm-Gg: ASbGnctpCsupgem9f6PQ1tCjY4aKiiE8oeaFZ1B5uOhsrbiQo/iaZEb7QToo4NPccfq
	9ZOLiB+WmQ2vU6pMaaxzNtPqbVikkSdIEU8byYGaDaIgIuKNVccL/VP0p5bqqdoJV1ylgQnRhSo
	th+553sHiTxT6nSpslZ2e6xApwrF6O/3dEOFLAjl122j2SPi545KzU8/kddIIh3+NRzZfQqYcEA
	gyX+jysCTJxEW1PinK7CuOnIImuh8+I7eg0Kr1PiaCOTQ60/eCdbqxuyuM91YmTaPHG58Yx/CmW
	Qq0bJaH2dfuBXsNRymf4u1MUH4WgBgMbM/cuu5euuGq5h+7l2g==
X-Google-Smtp-Source: AGHT+IEuEIE9Um3D9BJs1q1bWJlf4SLyF9szb3Oq6jabVbWM/EGS4SqMEm9R6Rb1xVrprqgO28w0PA==
X-Received: by 2002:a05:6402:3229:b0:5ee:486:ea33 with SMTP id 4fb4d7f45d1cf-5ee0486eb5amr11074834a12.33.1743512925295;
        Tue, 01 Apr 2025 06:08:45 -0700 (PDT)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Jan Beulich <jbeulich@suse.com>,
	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>,
	Shawn Anastasio <sanastasio@raptorengineering.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH v2 00/11] x86/EFI: prevent write-execute sections
Date: Tue,  1 Apr 2025 15:08:29 +0200
Message-ID: <20250401130840.72119-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.48.1
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Hello,

The following series aim to remove the presence of any write and execute
section in the PE Xen image.  This is required to support the NX
compatible flag in the PE header.   By the end of the series the
resulting PE image has no relocations that apply to text sections, as
text sections are strictly mapped read-execute only.  Xen itself
attempting to apply relocations to text would result in page-faults.

A smoke test is added to Gitlab to ensure the PE NX support doesn't
regress.

Only patches 5 and 10 are carried over from v1, the rest are new.

Thanks, Roger.

Roger Pau Monne (11):
  automation/dockers: add to README how to rebuild all containers
  x86/mkreloc: fix obtaining PE image base address
  x86/mkreloc: use the string table to get names
  x86/mkreloc: print the linear address of relocations to read-only
    sections
  xen: remove -N from the linker command line
  x86/efi: discard .text.header for PE binary
  x86/efi: discard multiboot related entry code for PE binary
  x86/boot: place trampoline code in a non-execute section
  x86/efi: avoid a relocation in efi_arch_post_exit_boot()
  x86/efi: do not merge all .init sections
  automation/x86: add a xen.efi test with a strict NX OVMF build

 automation/build/README.md                   |  7 ++
 automation/build/fedora/41-x86_64.dockerfile |  5 ++
 automation/gitlab-ci/test.yaml               |  9 +++
 automation/scripts/qemu-smoke-x86-64-efi.sh  | 22 +++++-
 xen/arch/arm/Makefile                        |  6 +-
 xen/arch/ppc/Makefile                        |  6 +-
 xen/arch/riscv/Makefile                      |  6 +-
 xen/arch/x86/Makefile                        | 12 +--
 xen/arch/x86/boot/head.S                     |  3 +-
 xen/arch/x86/efi/efi-boot.h                  |  7 +-
 xen/arch/x86/efi/mkreloc.c                   | 77 +++++++++++++++++---
 xen/arch/x86/xen.lds.S                       | 20 +++--
 12 files changed, 138 insertions(+), 42 deletions(-)

-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Tue Apr 01 13:08:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 13:08:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.934107.1335907 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzbMI-00006x-1z; Tue, 01 Apr 2025 13:08:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 934107.1335907; Tue, 01 Apr 2025 13:08: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 1tzbMH-00006q-Td; Tue, 01 Apr 2025 13:08:49 +0000
Received: by outflank-mailman (input) for mailman id 934107;
 Tue, 01 Apr 2025 13:08: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=oF/L=WT=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1tzbMF-0008KU-Sl
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 13:08:47 +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 7275c56e-0efa-11f0-9ea7-5ba50f476ded;
 Tue, 01 Apr 2025 15:08:47 +0200 (CEST)
Received: by mail-ed1-x52c.google.com with SMTP id
 4fb4d7f45d1cf-5e6194e9d2cso10754572a12.2
 for <xen-devel@lists.xenproject.org>; Tue, 01 Apr 2025 06:08:47 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 4fb4d7f45d1cf-5edc17dfe1dsm7009648a12.69.2025.04.01.06.08.46
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 01 Apr 2025 06:08: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: 7275c56e-0efa-11f0-9ea7-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1743512927; x=1744117727; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=/ptGrBuxtEj31Q7M6MgPsMH1aHP2RP83UeWmucEzVyU=;
        b=C6vtzZBGnKO/n0dgmtDMCGVg962H3wjnYye2aLXeWBN7OAd2pAOrzABJ2SKLFIf2tP
         oQUtPGiYGIYF8V1d/GVsonyQNhh9UpAK/upcwx7M6ds8eVPQ0p0+nSznsUVJDgyP1Xxb
         V9z8sNXM2VHdVaGFQNRNvF0iiF7nET4LRa7AA=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743512927; x=1744117727;
        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=/ptGrBuxtEj31Q7M6MgPsMH1aHP2RP83UeWmucEzVyU=;
        b=F2LTdQ4uUY4R9HmhSihkTdzRiKw1wFehyjWUI6AgtnIuKc1CLpyoUR7WGzBlmJ4CkK
         6oZOrur3dTwpmsdPNyCMt55zPiXlbpVhjLl6wjBH0OSWNpJYcERDx3oENQ/DlThC6+g+
         A2zwttyKWsyDZQR4nWba4lv/GP4vyhbZzXhBMU/D3KeZ7zVx+WUiHKitKJg8m+HB74WJ
         S0/uzv2XlE8DwClqWh8RlQWwKJyLjijDkUwG9oeCPeAfzhRrudgc/natacZjk8poxifi
         0oYZ2n7BYvjUa9ijoRXmngLEB3NJGzAkU5oUpAvE1lok5PsylvLIeVcu6r2fEtqMJqFE
         DDKg==
X-Gm-Message-State: AOJu0YwK4GiS3Yb3uh1wbnDUVazIxf+fcDHgvF0kuBi9W3qeUli+WLrs
	ffW7XK5FlE7vlZhxRww/h2aJfxZf2+8AoMnbebxSHBFXz+AujE5fLZfWJSAD7E+fYvwMJhzPKru
	j
X-Gm-Gg: ASbGncuUM11sNJVEaOO5F0HFbfhFl6yatZIqWeHTLi3D92Jz61paG1KjOQh4I7nCe/x
	zmFf8ZpIngEwPMvyAsEB8q0k0+0g1HOUH1k2Swm0K9bvR4BzopqywOfSfH6sc8QuM+GrtgBBQyO
	530HCdB/leRFvsbLb64dNpkVJlkLDwSctth3gGjPGLIKlgUeiNS30iSXXq3iMMGt+POh+3Q+VsN
	cwhJQKqGAZ70k+ktFPWcj+WiGMmR51tz6sVTJQGJYn6SrflHuOE6ESogWKNmhDZqZQ69LBjphen
	CDRXYw+4XdmSqFQGGGZ5R0InvU1AeGlB5Gc5oP7qRrGY1Tn8ww==
X-Google-Smtp-Source: AGHT+IHEWU/Tdnp6Rgb2HZZhYTozC4Ntsq+w55gYeFC4BgiTnRNz4Ghw0pw6dxqwj1LLsltSzA6ocA==
X-Received: by 2002:a05:6402:2706:b0:5e5:3610:8b7a with SMTP id 4fb4d7f45d1cf-5edfcfe6179mr10612256a12.17.1743512926585;
        Tue, 01 Apr 2025 06:08:46 -0700 (PDT)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 01/11] automation/dockers: add to README how to rebuild all containers
Date: Tue,  1 Apr 2025 15:08:30 +0200
Message-ID: <20250401130840.72119-2-roger.pau@citrix.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <20250401130840.72119-1-roger.pau@citrix.com>
References: <20250401130840.72119-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Document in the README how to rebuild all containers.  This is helpful when
populating a local docker registry for testing purposes.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
 automation/build/README.md | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/automation/build/README.md b/automation/build/README.md
index ecc898680c91..6c647b1b2a68 100644
--- a/automation/build/README.md
+++ b/automation/build/README.md
@@ -108,6 +108,13 @@ env CONTAINER_NO_PULL=1 \
 make -C automation/build opensuse/tumbleweed-x86_64 PUSH=1
 ```
 
+To rebuild all containers the `all` make target can be used, with or without
+the `PUSH` environment variable:
+
+```
+make -C automation/build all PUSH=1
+```
+
 [BuildKit]: https://docs.docker.com/build/buildkit/
 [registry]: https://gitlab.com/xen-project/xen/container_registry
 [registry help]: https://docs.gitlab.com/ee/user/packages/container_registry/
-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Tue Apr 01 13:08:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 13:08:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.934110.1335916 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzbMQ-0000QL-8m; Tue, 01 Apr 2025 13:08:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 934110.1335916; Tue, 01 Apr 2025 13:08: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 1tzbMQ-0000QC-5G; Tue, 01 Apr 2025 13:08:58 +0000
Received: by outflank-mailman (input) for mailman id 934110;
 Tue, 01 Apr 2025 13:08: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=oF/L=WT=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1tzbMP-0000Od-8u
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 13:08:57 +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 76ee7198-0efa-11f0-9ffb-bf95429c2676;
 Tue, 01 Apr 2025 15:08:55 +0200 (CEST)
Received: by mail-ed1-x532.google.com with SMTP id
 4fb4d7f45d1cf-5e6f4b3ebe5so10105035a12.0
 for <xen-devel@lists.xenproject.org>; Tue, 01 Apr 2025 06:08:55 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 a640c23a62f3a-ac719278d40sm758430666b.43.2025.04.01.06.08.47
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 01 Apr 2025 06:08: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: 76ee7198-0efa-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1743512934; x=1744117734; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=NsEpEdsMppdQXfKAAy8KJLkcIZ3dN80EvB2RdrH7vDo=;
        b=TvDoznc4sPuIsNPC+8tzsVYHSzRFgVmjwpFGZMTiRg2vleHRbsvNuKel5vgbh+pTwj
         8RKxRZj1C90M75lrlYxnfDyoMY8boKCWhHWegcwHq18xxN3XWPx3qfb1YNYshENmR4RW
         az5w8NAcBOlUlyvIdk4RunMQp2WEopyeTNOg0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743512934; x=1744117734;
        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=NsEpEdsMppdQXfKAAy8KJLkcIZ3dN80EvB2RdrH7vDo=;
        b=N5Byvf8iw3Ii90N6h6ZPFTKZh5HxiYnehH1QmtG4f35OCIE/fayRbqnWByRqGIvmrx
         QpgPug7CL6tu+ygUqa+RToXCR178XAmunHlfoqloJtx+qE5j6deE56D7hJ4yjsHJp8IU
         npl8dLsldp5rVg7gHgGqTJxhPzVFqcnWuNEiED59rU39ZsmpkleTahlzYp9iPosUiqK5
         DVVcZZhwlafLg/6xPBrq6Mhn5cE6MxNsp3S9caWaYtlnpDCBXPDVV5dULGWsQnj4gXzm
         aAWcv8G122BM//DDv8O37sapFkpy3jdYQ+R/Ivf2eC6U1yWPIV/tsRVuqo8Sv5I/X3al
         1L3A==
X-Gm-Message-State: AOJu0YySjyILldvr9ItkD/aF0KvW/q38K/J4YGzcwgpkLsfNjlKiEigT
	3nhP019VA8LAKdi+xBi8g/rg0whpgiESJQR6JBcQkOK/G2KJVV69Mr2ZyGjcwT6/VrDtfGHUarp
	c
X-Gm-Gg: ASbGnct/WyIoYzuwqza8cVoaHzLkjXhlqVqVuToQyJEndshQJTiSCLn1wXNaducuECB
	jcQSAbu00h8+bk+yQiUoVDU2F/mJiADLZxlxYMrVaHk8OCgkwCP6KElLaMXMKj3HrT7DG7bOKea
	/smZlmz+9dGb4R7kp1/+uTYmYRdgj/hEk3dje2DNR+guwKGZLWnJjFHuh03Sffw38/8vHqUk2yv
	tLRioINJfBn4E9nLdVI2dIBQSaRTnd6w/aSxZU6qE96TQbSs8Pn3EddqjJNJTsvrl+hx2EwK7lu
	JBJoDEPFUnGlIRYTOMd0/PReNzLi/EEwUwEXu21ZzDj0STDGAA==
X-Google-Smtp-Source: AGHT+IEjNM0hl1ZuDEUz8kinw6uldqxQXFDuinCrTlRAbXXd1L6CBSNezmpIgEeTcYwhFpI/avEATA==
X-Received: by 2002:a17:907:3e1d:b0:ac3:3f11:2955 with SMTP id a640c23a62f3a-ac738bae5ffmr1213282666b.39.1743512928140;
        Tue, 01 Apr 2025 06:08:48 -0700 (PDT)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: [PATCH v2 02/11] x86/mkreloc: fix obtaining PE image base address
Date: Tue,  1 Apr 2025 15:08:31 +0200
Message-ID: <20250401130840.72119-3-roger.pau@citrix.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <20250401130840.72119-1-roger.pau@citrix.com>
References: <20250401130840.72119-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The base address is in the pe32_opt_hdr, not after it.

Previous to commit f7f42accbbbb the base was read standalone (as the first
field of pe32_opt_hdr).  However with the addition of reading the full
contents of pe32_opt_hdr, such read will also fetch the base.  The current
attempt to read the base after pe32_opt_hdr is bogus, and could only work
if the file cursor is repositioned using lseek(), but there's no need for
that as the data is already fetched in pe32_opt_hdr.

Fixes: f7f42accbbbb ('x86/efi: Use generic PE/COFF structures')
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/arch/x86/efi/mkreloc.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/xen/arch/x86/efi/mkreloc.c b/xen/arch/x86/efi/mkreloc.c
index 375cb79d6959..1a6cfc845cba 100644
--- a/xen/arch/x86/efi/mkreloc.c
+++ b/xen/arch/x86/efi/mkreloc.c
@@ -35,7 +35,6 @@ static unsigned int load(const char *name, int *handle,
     struct mz_hdr mz_hdr;
     struct pe_hdr pe_hdr;
     struct pe32_opt_hdr pe32_opt_hdr;
-    uint32_t base;
 
     if ( in < 0 ||
          read(in, &mz_hdr, sizeof(mz_hdr)) != sizeof(mz_hdr) )
@@ -55,7 +54,6 @@ static unsigned int load(const char *name, int *handle,
     if ( lseek(in, mz_hdr.peaddr, SEEK_SET) < 0 ||
          read(in, &pe_hdr, sizeof(pe_hdr)) != sizeof(pe_hdr) ||
          read(in, &pe32_opt_hdr, sizeof(pe32_opt_hdr)) != sizeof(pe32_opt_hdr) ||
-         read(in, &base, sizeof(base)) != sizeof(base) ||
          /*
           * Luckily the image size field lives at the
           * same offset for both formats.
@@ -73,11 +71,12 @@ static unsigned int load(const char *name, int *handle,
     {
     case PE_OPT_MAGIC_PE32:
         *width = 32;
-        *image_base = base;
+        *image_base = pe32_opt_hdr.image_base;
         break;
     case PE_OPT_MAGIC_PE32PLUS:
         *width = 64;
-        *image_base = ((uint64_t)base << 32) | pe32_opt_hdr.data_base;
+        *image_base = ((uint64_t)pe32_opt_hdr.image_base << 32) |
+                      pe32_opt_hdr.data_base;
         break;
     default:
         fprintf(stderr, "%s: Wrong PE file format\n", name);
-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Tue Apr 01 13:08:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 13:08:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.934111.1335925 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzbMR-0000fo-HP; Tue, 01 Apr 2025 13:08:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 934111.1335925; Tue, 01 Apr 2025 13:08:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzbMR-0000fg-DY; Tue, 01 Apr 2025 13:08:59 +0000
Received: by outflank-mailman (input) for mailman id 934111;
 Tue, 01 Apr 2025 13:08:58 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=oF/L=WT=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1tzbMQ-0000Od-8w
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 13:08:58 +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 7787ab51-0efa-11f0-9ffb-bf95429c2676;
 Tue, 01 Apr 2025 15:08:56 +0200 (CEST)
Received: by mail-ed1-x531.google.com with SMTP id
 4fb4d7f45d1cf-5e5e0caa151so10451659a12.0
 for <xen-devel@lists.xenproject.org>; Tue, 01 Apr 2025 06:08:56 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 4fb4d7f45d1cf-5edc17dfe1dsm7009781a12.69.2025.04.01.06.08.54
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 01 Apr 2025 06:08: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: 7787ab51-0efa-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1743512935; x=1744117735; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=iNjc/wja0hxlH+2aMQfRdD42ULkgPnjmDI4A0WYPe2E=;
        b=bXvlFdocO5yNuYroTWHqc48h/QWhoBA4lDGkA/sf3ssLH7ZUwfIZVG6T3pgTT8Bl2D
         U2ThE9KZUqK9PJPtj9DjDJlUCrqqB51PRORbh8vr/zfyI3mXi+fBpEfxtM3W1+sEsfYb
         TvYCZMv6+kcJHVh4E2ryoTIJTC7zSKRfpvh6k=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743512935; x=1744117735;
        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=iNjc/wja0hxlH+2aMQfRdD42ULkgPnjmDI4A0WYPe2E=;
        b=U+W6/v0CS0cn+vWwQUSqvcRyY/Ju61UmD4cZo30OAgNPbNw7QdnLBAP9ey+6OnpchN
         BmPqBVVJEUDkyyt5R/AFN4JGKT6qwc22zo73ixGZ5XzniQbDQgBx9Q5MQVVJyDFiDLDk
         UwfBlhqSBHbuVd92aGtpQU+cUVzS2cuGE0LLTr8PXbamRDuBpwltp5s/dLUP3AJP1aoH
         1Xo1onKxXoASKI2NmczXnMEkQxiIhmssp38nXPKmWRs1B2s43M74PsinO7ncrpuLs3XC
         YwnuzocLMY1/bMUtkqNtCrLCOO8N1KzUWZZYkzKHkb0+6zXZ1A/QpxtQ5xHAFU2/lqhm
         6DlQ==
X-Gm-Message-State: AOJu0YxDh+MY/KCAppIdU2IvuE+YxSx6kUWVwrk/qtJvK/JB8Nl/+m8O
	7D4czhRK3khU5ykFOOFmwdcqn65S8ThUW6d0ayOGD8mnWA5M1ymig6WV5PPEfJb/h1UCeVcfelk
	6
X-Gm-Gg: ASbGncsFRqLPx+qktkkdZarVPSFvtkGVkrQVGhTAdXVUPriENjmrvGAh0HnbMDIv3lJ
	OM7O2QBqKK3ebaqmdFocKbp5eiSiZmbRj5f1wYHNp9ViQTDdDmWfXjrmvGXi9mzeYJimGD4fmtg
	8QWWUygSzxCEK0fqwLSqKGnV8m2/2+jc8xLa8CHbvLYAb4hlA1tulQDQDC0l5BukTmdUROJyIFO
	SP5TssTK0kkeyQ4eR7+qd+dUtuLS88NqpW0+2nuLQzp0HkfXWsb+WIO+srVlCOfjJN5OAaF3CmW
	uiNN70kBXP4Fg5HOCWtF+ot16VODszvgmChtcW5pG7Lg0pZ5Yw==
X-Google-Smtp-Source: AGHT+IEbNjBBsUGdEZiCoaAKgdqxjc289hgYwwv3U8wReSm/CSYqDlTS21ANBN4YU43+aDtmHqTlGA==
X-Received: by 2002:a05:6402:2709:b0:5e5:ca1b:c425 with SMTP id 4fb4d7f45d1cf-5edfd101725mr11186425a12.17.1743512935025;
        Tue, 01 Apr 2025 06:08:55 -0700 (PDT)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: [PATCH v2 03/11] x86/mkreloc: use the string table to get names
Date: Tue,  1 Apr 2025 15:08:32 +0200
Message-ID: <20250401130840.72119-4-roger.pau@citrix.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <20250401130840.72119-1-roger.pau@citrix.com>
References: <20250401130840.72119-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

When using PE format names greater than 8 characters are placed in the
string table, and a reference using the '/<offset>' format is placed in the
name field.  Read the string table if present, and decode names as
required.

No functional change intended, but the name references printed in error
messages are now human readable:

Warning: relocation to r/o section /4:00042d43

Becomes:

Warning: relocation to r/o section .init.text:000446c3

Note the introduced helper to print names relies on a static internal
buffer to make sure the returned string are always null terminated.
This is enough for the current use-case, but if the returned value is to
stay valid between calls the current static buffer won't work as expected.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/arch/x86/efi/mkreloc.c | 69 +++++++++++++++++++++++++++++++++-----
 1 file changed, 61 insertions(+), 8 deletions(-)

diff --git a/xen/arch/x86/efi/mkreloc.c b/xen/arch/x86/efi/mkreloc.c
index 1a6cfc845cba..cc106bd875ba 100644
--- a/xen/arch/x86/efi/mkreloc.c
+++ b/xen/arch/x86/efi/mkreloc.c
@@ -17,6 +17,12 @@
 #define PE_BASE_RELOC_HIGHLOW  3
 #define PE_BASE_RELOC_DIR64   10
 
+/* The size of a symbol table entry is always 18 bytes. */
+#define SYM_SIZE 18
+
+const char *string_table;
+unsigned int string_table_size;
+
 static void usage(const char *cmd, int rc)
 {
     fprintf(rc ? stderr : stdout,
@@ -25,6 +31,28 @@ static void usage(const char *cmd, int rc)
     exit(rc);
 }
 
+const char *get_name(const char *name)
+{
+    static char buffer[sizeof(((struct section_header *)NULL)->name) + 1] = {};
+    unsigned long offset;
+
+    if ( name[0] != '/' )
+    {
+        /*
+         * Use a temporary buffer in case the name is 8 characters long, as
+         * then there's no terminating null character in the input string.
+         */
+        strncpy(buffer, name, sizeof(buffer) - 1);
+        return buffer;
+    }
+
+    offset = strtoul(&name[1], NULL, 10);
+    if ( !string_table || offset < 4 || offset >= string_table_size )
+        return name;
+
+    return &string_table[offset - 4];
+}
+
 static unsigned int load(const char *name, int *handle,
                          struct section_header **sections,
                          uint_fast64_t *image_base,
@@ -83,6 +111,31 @@ static unsigned int load(const char *name, int *handle,
         exit(3);
     }
 
+    if ( !string_table && pe_hdr.symbol_table )
+    {
+        char *strings;
+
+        if ( lseek(in, pe_hdr.symbol_table + pe_hdr.symbols * SYM_SIZE,
+                   SEEK_SET) < 0 ||
+             read(in, &string_table_size, sizeof(string_table_size)) !=
+             sizeof(string_table_size) )
+        {
+            perror(name);
+            exit(3);
+        }
+
+        string_table_size -= sizeof(string_table_size);
+        strings = malloc(string_table_size);
+
+        if ( read(in, strings, string_table_size) != string_table_size )
+        {
+            perror(name);
+            exit(3);
+        }
+
+        string_table = strings;
+    }
+
     *sections = malloc(pe_hdr.sections * sizeof(**sections));
     if ( !*sections )
     {
@@ -173,8 +226,8 @@ static void diff_sections(const unsigned char *ptr1, const unsigned char *ptr2,
         if ( i < disp || i + width - disp > sec->raw_data_size )
         {
             fprintf(stderr,
-                    "Bogus difference at %.8s:%08" PRIxFAST32 "\n",
-                    sec->name, i);
+                    "Bogus difference at %s:%08" PRIxFAST32 "\n",
+                    get_name(sec->name), i);
             exit(3);
         }
 
@@ -184,9 +237,9 @@ static void diff_sections(const unsigned char *ptr1, const unsigned char *ptr2,
         if ( delta != diff )
         {
             fprintf(stderr,
-                    "Difference at %.8s:%08" PRIxFAST32 " is %#" PRIxFAST64
+                    "Difference at %s:%08" PRIxFAST32 " is %#" PRIxFAST64
                     " (expected %#" PRIxFAST64 ")\n",
-                    sec->name, i - disp, delta, diff);
+                    get_name(sec->name), i - disp, delta, diff);
             continue;
         }
         if ( width == 8 && (val1.u64 < base || val1.u64 > end) )
@@ -210,15 +263,15 @@ static void diff_sections(const unsigned char *ptr1, const unsigned char *ptr2,
         else if ( rva != cur_rva )
         {
             fprintf(stderr,
-                    "Cannot handle decreasing RVA (at %.8s:%08" PRIxFAST32 ")\n",
-                    sec->name, i - disp);
+                    "Cannot handle decreasing RVA (at %s:%08" PRIxFAST32 ")\n",
+                    get_name(sec->name), i - disp);
             exit(3);
         }
 
         if ( !(sec->flags & IMAGE_SCN_MEM_WRITE) )
             fprintf(stderr,
-                    "Warning: relocation to r/o section %.8s:%08" PRIxFAST32 "\n",
-                    sec->name, i - disp);
+                    "Warning: relocation to r/o section %s:%08" PRIxFAST32 "\n",
+                    get_name(sec->name), i - disp);
 
         printf("\t.word (%u << 12) | 0x%03" PRIxFAST32 "\n",
                reloc, sec->rva + i - disp - rva);
-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Tue Apr 01 13:09:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 13:09:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.934112.1335931 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzbMR-0000j2-TU; Tue, 01 Apr 2025 13:08:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 934112.1335931; Tue, 01 Apr 2025 13:08:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzbMR-0000iG-N3; Tue, 01 Apr 2025 13:08:59 +0000
Received: by outflank-mailman (input) for mailman id 934112;
 Tue, 01 Apr 2025 13:08: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=oF/L=WT=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1tzbMQ-0008KU-J8
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 13:08:58 +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 78e5185f-0efa-11f0-9ea7-5ba50f476ded;
 Tue, 01 Apr 2025 15:08:58 +0200 (CEST)
Received: by mail-ed1-x530.google.com with SMTP id
 4fb4d7f45d1cf-5e66407963fso10569369a12.2
 for <xen-devel@lists.xenproject.org>; Tue, 01 Apr 2025 06:08:58 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 4fb4d7f45d1cf-5edc16d38e3sm7060814a12.24.2025.04.01.06.08.56
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 01 Apr 2025 06:08:57 -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: 78e5185f-0efa-11f0-9ea7-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1743512937; x=1744117737; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=jfWLQG6h7frzFHFbSmMTlSLAtyeTFMN2ST7SsEhdNzA=;
        b=UsP4WOptdov6oxd3WY8aRQ9XNQo5MA98OlOCErowTJONQbpCGdj778+wbAbk3P9EO1
         ehw0tJ36hEA2+XbZavFByRk2TdlAClZ3nnD80jDAKHNd0ctphwMCRTVpq42B/DWjojy+
         jo/uf4gMvk/2zuIKVbPjhf3u4KFj+IoxQ6z4c=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743512937; x=1744117737;
        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=jfWLQG6h7frzFHFbSmMTlSLAtyeTFMN2ST7SsEhdNzA=;
        b=n79ZsNyUzEMKdh/hRJLKG3n6eEkhvakiamVZv6AQ/mmSaTSqVBcRVCrFWKvZ5m9nOf
         J2eR9d9cdwWYOWGaTf0Qc4LXb8rhGnt5+rTMhxqNxA558cPwjt8T1QCxjDD9bEnm70yT
         W7qRLNGqQXVjw/Ji9LhkbPYfI3PtO71XQQsdO6zB68Y4bjnl1mDi5MEDnBKPY4otnr32
         ZCPVhOodISkj6B9tAIB2sil9JBR3Ov+eUpOVvt92Kj60/LS1onFE1c+cnn3Hyilmp6oI
         iINhholYqVHhKIHJmvdfujc3/K4rErdfVFrtQ3UqgGayRkfedwwTX3QzYMxbwvtrQat+
         /Gng==
X-Gm-Message-State: AOJu0YwTbhG+bPLHsmNTW0OVBPufCQBvy6fTrw1Wu6kncQFfXHTNPPyk
	rctRiEkNwR32IOxkCbdBjrklk5R2Z/591zUl2UXU+JZ1VMziMTMt3aajeXC6XNt6pVNDpqJltHB
	0
X-Gm-Gg: ASbGncug5Oh6PzBmg2wDgjouUFCvnGdEEwS8LFwzMpIn0efDRJvDrHpqhmtMzEnfqse
	v3Jtk8b0LQAy2b0mQgK1442ovej5i7mjFvF7o4nZQXvPA9EUSoWnizDwcbWPFXRiXrB2m6LHZPF
	jBfDdIV+GtFoZ3wq2fag8TszC5MpGem206Z7J8osZkqItKZXhkijrP43ujTGxklhDD2nVzLpHci
	Kn//oGTfnPnqcmx8wl94a62zzxQP8NEb0uis3rLhJ8XndcrC6EpK8rniXR6QE1nuv2slYKlrbp2
	p9BUia5ZTxErD0H29StQvhwOkgatoFGFyGLoHT+N+MfWuqbG7hkdpFJFLXuI
X-Google-Smtp-Source: AGHT+IFBCFclBJDg35uPgPPiBhTX81NYsoap5Pfs68kxM6wnIjcu3k+NCH+4yhuhaKAXVWCJOl7MEg==
X-Received: by 2002:a05:6402:1d4d:b0:5ed:921a:ded6 with SMTP id 4fb4d7f45d1cf-5edfd1242ecmr11615211a12.18.1743512937276;
        Tue, 01 Apr 2025 06:08:57 -0700 (PDT)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Shawn Anastasio <sanastasio@raptorengineering.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: [PATCH v2 05/11] xen: remove -N from the linker command line
Date: Tue,  1 Apr 2025 15:08:34 +0200
Message-ID: <20250401130840.72119-6-roger.pau@citrix.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <20250401130840.72119-1-roger.pau@citrix.com>
References: <20250401130840.72119-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

It's unclear why -N is being used in the first place.  It was added by
commit 4676bbf96dc8 back in 2002 without any justification.

When building a PE image it's actually detrimental to forcefully set the
.text section as writable.  The GNU LD man page contains the following
warning regarding the -N option:

> Note: Although a writable text section is allowed for PE-COFF targets, it
> does not conform to the format specification published by Microsoft.

Remove the usage of -N uniformly on all architectures, assuming that the
addition was simply done as a copy and paste of the original x86 linking
rune.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/arch/arm/Makefile   |  6 +++---
 xen/arch/ppc/Makefile   |  6 +++---
 xen/arch/riscv/Makefile |  6 +++---
 xen/arch/x86/Makefile   | 12 ++++++------
 4 files changed, 15 insertions(+), 15 deletions(-)

diff --git a/xen/arch/arm/Makefile b/xen/arch/arm/Makefile
index 4837ad467a06..129a109d6ec5 100644
--- a/xen/arch/arm/Makefile
+++ b/xen/arch/arm/Makefile
@@ -97,19 +97,19 @@ ifeq ($(CONFIG_ARM_64),y)
 endif
 
 $(TARGET)-syms: $(objtree)/prelink.o $(obj)/xen.lds
-	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds -N $< \
+	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< \
 	    $(objtree)/common/symbols-dummy.o -o $(dot-target).0
 	$(NM) -pa --format=sysv $(dot-target).0 \
 		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
 		> $(dot-target).0.S
 	$(MAKE) $(build)=$(@D) $(dot-target).0.o
-	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds -N $< \
+	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< \
 	    $(dot-target).0.o -o $(dot-target).1
 	$(NM) -pa --format=sysv $(dot-target).1 \
 		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
 		> $(dot-target).1.S
 	$(MAKE) $(build)=$(@D) $(dot-target).1.o
-	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds -N $< $(build_id_linker) \
+	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< $(build_id_linker) \
 	    $(dot-target).1.o -o $@
 	$(NM) -pa --format=sysv $@ \
 		| $(objtree)/tools/symbols --all-symbols --xensyms --sysv --sort \
diff --git a/xen/arch/ppc/Makefile b/xen/arch/ppc/Makefile
index 655d212f6687..cf27bcebb25a 100644
--- a/xen/arch/ppc/Makefile
+++ b/xen/arch/ppc/Makefile
@@ -12,19 +12,19 @@ $(TARGET): $(TARGET)-syms
 	cp -f $< $@
 
 $(TARGET)-syms: $(objtree)/prelink.o $(obj)/xen.lds
-	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds -N $< \
+	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< \
 	    $(objtree)/common/symbols-dummy.o -o $(dot-target).0
 	$(NM) -pa --format=sysv $(dot-target).0 \
 		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
 		> $(dot-target).0.S
 	$(MAKE) $(build)=$(@D) $(dot-target).0.o
-	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds -N $< \
+	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< \
 	    $(dot-target).0.o -o $(dot-target).1
 	$(NM) -pa --format=sysv $(dot-target).1 \
 		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
 		> $(dot-target).1.S
 	$(MAKE) $(build)=$(@D) $(dot-target).1.o
-	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds -N $< $(build_id_linker) \
+	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< $(build_id_linker) \
 	    $(dot-target).1.o -o $@
 	$(NM) -pa --format=sysv $@ \
 		| $(objtree)/tools/symbols --all-symbols --xensyms --sysv --sort \
diff --git a/xen/arch/riscv/Makefile b/xen/arch/riscv/Makefile
index b0c8270a9947..516f5d505ca8 100644
--- a/xen/arch/riscv/Makefile
+++ b/xen/arch/riscv/Makefile
@@ -16,19 +16,19 @@ $(TARGET): $(TARGET)-syms
 	$(OBJCOPY) -O binary -S $< $@
 
 $(TARGET)-syms: $(objtree)/prelink.o $(obj)/xen.lds
-	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds -N $< \
+	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< \
 	    $(objtree)/common/symbols-dummy.o -o $(dot-target).0
 	$(NM) -pa --format=sysv $(dot-target).0 \
 		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
 		> $(dot-target).0.S
 	$(MAKE) $(build)=$(@D) $(dot-target).0.o
-	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds -N $< \
+	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< \
 	    $(dot-target).0.o -o $(dot-target).1
 	$(NM) -pa --format=sysv $(dot-target).1 \
 		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
 		> $(dot-target).1.S
 	$(MAKE) $(build)=$(@D) $(dot-target).1.o
-	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds -N $< $(build_id_linker) \
+	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< $(build_id_linker) \
 	    $(dot-target).1.o -o $@
 	$(NM) -pa --format=sysv $@ \
 		| $(objtree)/tools/symbols --all-symbols --xensyms --sysv --sort \
diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
index f59c9665fdd0..c2f1dcf301d6 100644
--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -139,19 +139,19 @@ $(TARGET): $(TARGET)-syms $(efi-y) $(obj)/boot/mkelf32
 CFLAGS-$(XEN_BUILD_EFI) += -DXEN_BUILD_EFI
 
 $(TARGET)-syms: $(objtree)/prelink.o $(obj)/xen.lds
-	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds -N $< $(build_id_linker) \
+	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< $(build_id_linker) \
 	    $(objtree)/common/symbols-dummy.o -o $(dot-target).0
 	$(NM) -pa --format=sysv $(dot-target).0 \
 		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
 		> $(dot-target).0.S
 	$(MAKE) $(build)=$(@D) $(dot-target).0.o
-	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds -N $< $(build_id_linker) \
+	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< $(build_id_linker) \
 	    $(dot-target).0.o -o $(dot-target).1
 	$(NM) -pa --format=sysv $(dot-target).1 \
 		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort $(syms-warn-dup-y) \
 		> $(dot-target).1.S
 	$(MAKE) $(build)=$(@D) $(dot-target).1.o
-	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds -N $< $(build_id_linker) \
+	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< $(build_id_linker) \
 	    $(orphan-handling-y) $(dot-target).1.o -o $@
 	$(NM) -pa --format=sysv $@ \
 		| $(objtree)/tools/symbols --all-symbols --xensyms --sysv --sort \
@@ -212,7 +212,7 @@ ifeq ($(CONFIG_DEBUG_INFO),y)
 	$(if $(filter --strip-debug,$(EFI_LDFLAGS)),echo,:) "Will strip debug info from $(@F)"
 endif
 	$(foreach base, $(VIRT_BASE) $(ALT_BASE), \
-	          $(LD) $(call EFI_LDFLAGS,$(base)) -T $(obj)/efi.lds -N $< $(relocs-dummy) \
+	          $(LD) $(call EFI_LDFLAGS,$(base)) -T $(obj)/efi.lds $< $(relocs-dummy) \
 	                $(objtree)/common/symbols-dummy.o $(note_file_option) \
 	                -o $(dot-target).$(base).0 &&) :
 	$(MKRELOC) $(foreach base,$(VIRT_BASE) $(ALT_BASE),$(dot-target).$(base).0) \
@@ -222,7 +222,7 @@ endif
 		> $(dot-target).0s.S
 	$(MAKE) $(build)=$(@D) .$(@F).0r.o .$(@F).0s.o
 	$(foreach base, $(VIRT_BASE) $(ALT_BASE), \
-	          $(LD) $(call EFI_LDFLAGS,$(base)) -T $(obj)/efi.lds -N $< \
+	          $(LD) $(call EFI_LDFLAGS,$(base)) -T $(obj)/efi.lds $< \
 	                $(dot-target).0r.o $(dot-target).0s.o $(note_file_option) \
 	                -o $(dot-target).$(base).1 &&) :
 	$(MKRELOC) $(foreach base,$(VIRT_BASE) $(ALT_BASE),$(dot-target).$(base).1) \
@@ -231,7 +231,7 @@ endif
 		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
 		> $(dot-target).1s.S
 	$(MAKE) $(build)=$(@D) .$(@F).1r.o .$(@F).1s.o
-	$(LD) $(call EFI_LDFLAGS,$(VIRT_BASE)) -T $(obj)/efi.lds -N $< \
+	$(LD) $(call EFI_LDFLAGS,$(VIRT_BASE)) -T $(obj)/efi.lds $< \
 	      $(dot-target).1r.o $(dot-target).1s.o $(orphan-handling-y) \
 	      $(note_file_option) -o $@
 	$(NM) -pa --format=sysv $@ \
-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Tue Apr 01 13:09:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 13:09:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.934113.1335946 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzbMT-0001B7-BB; Tue, 01 Apr 2025 13:09:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 934113.1335946; Tue, 01 Apr 2025 13: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 1tzbMT-0001AK-6t; Tue, 01 Apr 2025 13:09:01 +0000
Received: by outflank-mailman (input) for mailman id 934113;
 Tue, 01 Apr 2025 13: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=oF/L=WT=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1tzbMR-0000Od-9G
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 13:08:59 +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 78222bfe-0efa-11f0-9ffb-bf95429c2676;
 Tue, 01 Apr 2025 15:08:57 +0200 (CEST)
Received: by mail-ed1-x535.google.com with SMTP id
 4fb4d7f45d1cf-5eb92df4fcbso10046686a12.0
 for <xen-devel@lists.xenproject.org>; Tue, 01 Apr 2025 06:08:57 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 4fb4d7f45d1cf-5edc16aae9esm7227853a12.11.2025.04.01.06.08.55
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 01 Apr 2025 06:08: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: 78222bfe-0efa-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1743512936; x=1744117736; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=6J5IWMe9fuG9cz0NbV8d3wevTadFVymZS2btgRyX9fc=;
        b=E1z28gwBLqGYK9HtjIdkgSxq5pBONngrJu1ubGuZsPiJlWs9XZlIRv9wHrHFRygPZ2
         LctCd+SsPSv2frdWb/3SYOZq2nbifRJZgRLnN19Ql6WsBBYRQ/MGkq8g2y4yuAEVkz4o
         N/UDrjwKl5BqxRFZaww11LJrboolLH8fBFhbA=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743512936; x=1744117736;
        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=6J5IWMe9fuG9cz0NbV8d3wevTadFVymZS2btgRyX9fc=;
        b=Z6YNc/5SOCm9XSu2jiU6TofpDp/rxG4lX/wdvJn3637GjkFFaxiO0xeX+wmt6IO5ap
         7l4Q5HyuxU61MVmIqgsC57eg0g0TTfpJpy3pSKjHigMr5hZmKerQisr9hAi0PcsMPTlX
         2IdgRTHC7A1ag6RcuuJIJ1AArACA+1hT4Gi/ScqjOZqDSNafpemlC/yrA/iBCdfB8+L5
         yhwiKXA5P9fVy+W3ZjVT5Hn6fCCI860o6vRmk+lRU8ziEpAr2oeB2i/5gYxDFTWFcomJ
         2yp2SSGEHTrWMkvXtZGZv5N244NFTol6UYC+nBjrBFHD04+IlHTzRlej069cFQe+I1p7
         qIgg==
X-Gm-Message-State: AOJu0Yxfb3Anqsj0ku7C1TWo9dXw9YttheO4Wd+MC6iqR28yWAVwU4lq
	7sKxnBLx2DJaZSivBoLhnPSQAaJmym9D9U9rBCIpyHhRHmO8QbBYwJp46uwZhZLzJ3SbmGDaDum
	L
X-Gm-Gg: ASbGncsJmL4RlXPTbrj4zc1zaENzUyihkIlpX7uhS45vXHxJHIagwO5nPLG0dlyObxo
	fM94mK6dq/BnzyDbu2u0t4ocbF3qdAVVtDyH8VCvWYuLiZi/lhkKmz44DT8E6Kundi5x7hRVg2l
	XNRvBLN4qpStNRyi9wnpPses4m3eC8FG8Ul4UVDezRi7h3IP3SMDUsr9eAU++MGvrS39ODJO80i
	QY5kdgogeYl/sPvVA28Jv8dzj/k8c2lCSL9xPOtROXeJ0SJEMN4uEyw1KQmiVf+vjLCOzlADzZ1
	rYVIiY4mRDxTeTzvC3zwgfk06+oS/FCAf2/H+flTnoD8iLVW9OOhAusvepXX
X-Google-Smtp-Source: AGHT+IFlaBZQNfY0LTeE/fILoefvlfJB50Sqda8agd9IG5gVxT9iBNOHCfoQMcaMzWfevyEFGUdD9Q==
X-Received: by 2002:a05:6402:24a4:b0:5e7:8501:8c86 with SMTP id 4fb4d7f45d1cf-5edfd6fdbdemr12939174a12.22.1743512936181;
        Tue, 01 Apr 2025 06:08:56 -0700 (PDT)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: [PATCH v2 04/11] x86/mkreloc: print the linear address of relocations to read-only sections
Date: Tue,  1 Apr 2025 15:08:33 +0200
Message-ID: <20250401130840.72119-5-roger.pau@citrix.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <20250401130840.72119-1-roger.pau@citrix.com>
References: <20250401130840.72119-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Expand the warning message about relocations generated against read-only
sections, so it also contains the linear address of the offending
relocation, like:

Warning: relocation to r/o section .text:00000048 @ 0xffff82d040200048

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/arch/x86/efi/mkreloc.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/efi/mkreloc.c b/xen/arch/x86/efi/mkreloc.c
index cc106bd875ba..fa50314ae945 100644
--- a/xen/arch/x86/efi/mkreloc.c
+++ b/xen/arch/x86/efi/mkreloc.c
@@ -270,8 +270,9 @@ static void diff_sections(const unsigned char *ptr1, const unsigned char *ptr2,
 
         if ( !(sec->flags & IMAGE_SCN_MEM_WRITE) )
             fprintf(stderr,
-                    "Warning: relocation to r/o section %s:%08" PRIxFAST32 "\n",
-                    get_name(sec->name), i - disp);
+                    "Warning: relocation to r/o section %s:%08" PRIxFAST32 " @ %p\n",
+                    get_name(sec->name), i - disp,
+                    (void *)(base + sec->rva + i - disp));
 
         printf("\t.word (%u << 12) | 0x%03" PRIxFAST32 "\n",
                reloc, sec->rva + i - disp - rva);
-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Tue Apr 01 13:09:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 13:09:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.934115.1335952 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzbMT-0001FH-PZ; Tue, 01 Apr 2025 13:09:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 934115.1335952; Tue, 01 Apr 2025 13: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 1tzbMT-0001Do-J8; Tue, 01 Apr 2025 13:09:01 +0000
Received: by outflank-mailman (input) for mailman id 934115;
 Tue, 01 Apr 2025 13:09: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=oF/L=WT=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1tzbMT-0008KU-0K
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 13:09:01 +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 7a42de4d-0efa-11f0-9ea7-5ba50f476ded;
 Tue, 01 Apr 2025 15:09:00 +0200 (CEST)
Received: by mail-ej1-x633.google.com with SMTP id
 a640c23a62f3a-ac2a089fbbdso991083966b.1
 for <xen-devel@lists.xenproject.org>; Tue, 01 Apr 2025 06:09:00 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 a640c23a62f3a-ac71961f9b9sm761161266b.114.2025.04.01.06.08.59
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 01 Apr 2025 06:08: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: 7a42de4d-0efa-11f0-9ea7-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1743512940; x=1744117740; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=EPf0H0iWY3C1zaNGO1+8PzDu8ltCUQ9Xi40SfByzm4E=;
        b=K8UwQuVbMzyrzUXvk2qATMdJKPjMEWnpIfMw67Xnr+gmVqQYDulAd1LCY39VZfQbNx
         yuIela0a++A9gmIrfNFb7cyK+Th1NaoqVtoRO9nfE8fLYtgrOkJh4nkUVmdY/WONkhj6
         3s80bTl517LlLwGTvzozHo9MpmAdV6W4otF0o=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743512940; x=1744117740;
        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=EPf0H0iWY3C1zaNGO1+8PzDu8ltCUQ9Xi40SfByzm4E=;
        b=a27K0dLBHNtozf7oyLJjotsUyu6LFwZMgXCYE1Qh7/XGmAuEUZGFFdCNIoPVPI9+8o
         U2AD3wzBFl/BELrrvlDapOhvUdvhAYIJburuRDdMdlQ4rxjWcye8l3Yll8ej79jwiGOg
         eFbg+A3mgtJTTuLPpsy0LIqmv/g0FMaKOWv8dXZ8rZSxbIPQfgqBjHVkcfdQHPLPZpS1
         BwDkiJWLRA00EUUFuwy5iYYn3+9pRXLwcK+XKoqNTUEV1tkHUY9Tgt2B6+Y5mKx2CgR1
         Wos4/7MpqzkCD/pXuKr+nFAw0GiHr3CIVcFEQ+W12uHRx/HgfFz5AF5BeHRp5VSEDICQ
         3zxQ==
X-Gm-Message-State: AOJu0YwULyxcufj97cjfrcnpCfCgXE2uCpTVsIWt7xZZH/BsAJDMl0f3
	AFdijWPJWbDPV8A3ZeCjQi88A/z7QtL7HWF9BegAuGhOILLTC9Y4hFl1NAWP2nohwTwiL99yZys
	2
X-Gm-Gg: ASbGnctUAr79TCkHC4H5yHX7DFVpY3w0GgT/5tHrk+1dF+ewgkteC0XD8GBoERoAip8
	VYawBmohJ3ODrvJ1htdCuLzwtPQymNH3Pvc2S8M+5F3B1O5HI2bhGhrsV4z8eS0ITW+BcUENNbJ
	hRCprbrK6EOgVANnhbR0LJMJz3XJ5pyAdP/RJtGfrq9nxMkxpmsh2/LhKVCXHcsNgyve2fELsE6
	ZtpNjADJvXJlOR81H+rhO4GmIYvhSTTG0bDl5oUz78LhNwcQ1uufh9ofpZ9xA11OwEAOxQQFY9g
	LDmEqeUYUtfEju655bysTNR4NZDuKV9kL4HEYiW6OXPf8bum1g==
X-Google-Smtp-Source: AGHT+IHY/qPLexqKDJxO4g24fcXOb0HmgauV7SPAPnQfLmH6qR3xT3USyAbirTGkx2VpSSrw64zi3w==
X-Received: by 2002:a17:907:1c97:b0:ac6:e42a:fb4c with SMTP id a640c23a62f3a-ac71ec04f5cmr1466839766b.9.1743512939707;
        Tue, 01 Apr 2025 06:08:59 -0700 (PDT)
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 07/11] x86/efi: discard multiboot related entry code for PE binary
Date: Tue,  1 Apr 2025 15:08:36 +0200
Message-ID: <20250401130840.72119-8-roger.pau@citrix.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <20250401130840.72119-1-roger.pau@citrix.com>
References: <20250401130840.72119-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The multiboot and PVH entry points are not used in the PE binary, hence
discard them in the linker script when doing a PE build.

That removes some relocations that otherwise appear due to the entry point
code in head.S not being position independent.

No functional change intended.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
We could also place the entry points in it's own isolated section and skip
such section for relocations generation in mkreloc, but it seems best to
just remove the code if it's unused.
---
 xen/arch/x86/boot/head.S | 3 ++-
 xen/arch/x86/xen.lds.S   | 2 ++
 2 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/xen/arch/x86/boot/head.S b/xen/arch/x86/boot/head.S
index 81473578fe84..774894954e44 100644
--- a/xen/arch/x86/boot/head.S
+++ b/xen/arch/x86/boot/head.S
@@ -151,7 +151,7 @@ vga_text_buffer:
 efi_platform:
         .byte   0
 
-        .section .init.text, "ax", @progbits
+        .section .init.multiboot, "ax", @progbits
 
 early_error: /* Here to improve the disassembly. */
 
@@ -709,6 +709,7 @@ trampoline_setup:
         /* Jump into the relocated trampoline. */
         lret
 
+        .section .init.text, "ax", @progbits
 ENTRY(trampoline_start)
 #include "trampoline.S"
 ENTRY(trampoline_end)
diff --git a/xen/arch/x86/xen.lds.S b/xen/arch/x86/xen.lds.S
index ad908539f38a..1191bf4e2ddd 100644
--- a/xen/arch/x86/xen.lds.S
+++ b/xen/arch/x86/xen.lds.S
@@ -63,6 +63,7 @@ SECTIONS
   . = __image_base__;
   /DISCARD/ : {
     *(.text.header)
+    *(.init.multiboot)
   }
 #endif
 
@@ -208,6 +209,7 @@ SECTIONS
        _sinittext = .;
        *(.init.text)
        *(.text.startup)
+       *(.init.multiboot)
        _einittext = .;
        /*
         * Here are the replacement instructions. The linker sticks them
-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Tue Apr 01 13:09:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 13:09:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.934116.1335965 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzbMV-0001e0-4j; Tue, 01 Apr 2025 13:09:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 934116.1335965; Tue, 01 Apr 2025 13:09: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 1tzbMU-0001be-VP; Tue, 01 Apr 2025 13:09:02 +0000
Received: by outflank-mailman (input) for mailman id 934116;
 Tue, 01 Apr 2025 13:09: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=oF/L=WT=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1tzbMT-0000Od-9s
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 13:09:01 +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 79a8e624-0efa-11f0-9ffb-bf95429c2676;
 Tue, 01 Apr 2025 15:08:59 +0200 (CEST)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-ac339f53df9so982517566b.1
 for <xen-devel@lists.xenproject.org>; Tue, 01 Apr 2025 06:08:59 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 a640c23a62f3a-ac71961f0e9sm766309366b.101.2025.04.01.06.08.58
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 01 Apr 2025 06:08:58 -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: 79a8e624-0efa-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1743512939; x=1744117739; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Eaji7nWfNm9j69tZV5bRL2oO0fL1lVBczAnwU7AW6j8=;
        b=Ty5wJy1ey/X8Hh+lhVbhCdO2jqlU4i2iinCjw0NVNgGwLDPJ02YNG/afzjuJFNbJ28
         Cv9ab+fkbKA7/iV4S6Vvo2XwYZLszMwl++KBwZjp3zq+j56sFi1g7w+VnaXgfWql0HiE
         dcW2Ft5h2T6vPSnQ8eZCiYlRGc02yhKSWQebI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743512939; x=1744117739;
        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=Eaji7nWfNm9j69tZV5bRL2oO0fL1lVBczAnwU7AW6j8=;
        b=J7far2vTxLEKL/4GujufO6JGwl9b97RE7XHaYmQBgZVs5ZFeXNuT72xfaEHcDnajz3
         QXHMX2L3n+/tXo+LsENF1+U5yVs/AHQnz39xMz6/fMD78kgxHAalxm8VMYrH4t36CrC6
         gy7+MX6JPMK0MzTxrsTaqxrG2MEm0pVLj9LORdMwymEA5aoTLKsOxnAW2wH9REnCmXTg
         n4PfaqGA6oe2GecBoNd9vKGREU71tL7/j+5J4Dmux+5uKa8fu02pf5hd+GYpC/0KVuG5
         qD/Ijr9gMRGDFVu1pYZK+VHRm8mQbAxPV03EubBjKCvfRsknxKbd75AkRRN5ktTt+JaO
         t+og==
X-Gm-Message-State: AOJu0YyYn4bTnUu6+WfVMTL6QWoF7AZmWG3MdOYfzR+tcuXB3CqWIhUX
	IbM/FScS4/Jut3W4OiWTZHRdROxWQArTMkK/LkNSZ25U9cf6FJSmnAhXhRlEOLsbPCY08tL8UCz
	8
X-Gm-Gg: ASbGncuCPFIo1HwtLjgL/X/ifS2kuW/TujW6cE5zvVAtydX54Sp1GFBg4QYT+ArdLGH
	FJlnNxjX992BMoCaiVlikhI2nJTLsZE1eDQxJ7OLj8RNdU/tZNQ9o0vILFdrfIpJe3dOd7LfGgy
	M2Usc1W0jySuiJtnRuxXC8ATy5xwrqHq4o+vIHhb/JMoPy5kNp0flEoTX9tDnXuArBfKN/lKd3M
	KF776EGeQFJNVusYyWX6C6JH0vw74X8y3VLUYvUEryr52Z3a+5oB33elQGgPpMBgIisz3NEKHdT
	7ZJhTdVasAI14136NAacj6n0q3eOeV5iVCA+l9uis2HI5KEGVTmWcRFlc+M9
X-Google-Smtp-Source: AGHT+IFEAYGnrYThDPAMGzjbZHMr1I7RawUz/d9U/DPxyEPsI8rXQHzi8rJZZziXUhur4LUgDCyORg==
X-Received: by 2002:a17:907:3f09:b0:ac3:ec70:18ae with SMTP id a640c23a62f3a-ac73897605dmr1150923666b.3.1743512938462;
        Tue, 01 Apr 2025 06:08:58 -0700 (PDT)
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 06/11] x86/efi: discard .text.header for PE binary
Date: Tue,  1 Apr 2025 15:08:35 +0200
Message-ID: <20250401130840.72119-7-roger.pau@citrix.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <20250401130840.72119-1-roger.pau@citrix.com>
References: <20250401130840.72119-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The multiboot headers are not consumed in the PE binary, hence discard them
in the linker script when doing a PE build.

That removes some relocations that otherwise appear due to the usage of the
start and __efi64_mb2_start symbols in the multiboot2 header.

No functional change intended.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
We could also place the multiboot header in it's own isolated section and
skip such section for relocations generation in mkreloc, but it seems best
to just remove the code if it's unused.
---
 xen/arch/x86/xen.lds.S | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/xen/arch/x86/xen.lds.S b/xen/arch/x86/xen.lds.S
index d4dd6434c466..ad908539f38a 100644
--- a/xen/arch/x86/xen.lds.S
+++ b/xen/arch/x86/xen.lds.S
@@ -61,6 +61,9 @@ SECTIONS
   __image_base__ = .;
 #else
   . = __image_base__;
+  /DISCARD/ : {
+    *(.text.header)
+  }
 #endif
 
 #if 0
-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Tue Apr 01 13:12:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 13:12:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.934184.1335981 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzbPM-0006Uc-Qx; Tue, 01 Apr 2025 13:12:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 934184.1335981; Tue, 01 Apr 2025 13:12: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 1tzbPM-0006TW-La; Tue, 01 Apr 2025 13:12:00 +0000
Received: by outflank-mailman (input) for mailman id 934184;
 Tue, 01 Apr 2025 13:11: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=oF/L=WT=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1tzbMf-0000Od-KR
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 13:09:13 +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 7f3c5ade-0efa-11f0-9ffb-bf95429c2676;
 Tue, 01 Apr 2025 15:09:08 +0200 (CEST)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-ac2bdea5a38so907883266b.0
 for <xen-devel@lists.xenproject.org>; Tue, 01 Apr 2025 06:09:08 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 a640c23a62f3a-ac719223e4dsm763101066b.24.2025.04.01.06.09.07
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 01 Apr 2025 06:09: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: 7f3c5ade-0efa-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1743512947; x=1744117747; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=0LTQkhLhC9QAjpitQrbO7ny5f+6pVlhp14370Lqax5o=;
        b=t/Ui8srvOTYkPt3TB9gdcPzITc1WARf0mT4nefjh/e3Eoli69wcAxNIngVMCqiDtQa
         ORzg4Afr8dPi8omud4jaGXG2uZNXuFNfZHOLuFXkpzTVol8an2R2MQrd1hvknPoeXivs
         s0kVlhSaD5Lh/EUAFOEnkimpgLD/tHNft/dn8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743512947; x=1744117747;
        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=0LTQkhLhC9QAjpitQrbO7ny5f+6pVlhp14370Lqax5o=;
        b=vt3uJi3o5fDoRyZyqpjOBg1wbmOtzY7LMaitmWXBjoML+30Cn48JzXIxjakwe88T0/
         WR4CKwC3z2be2dsqWhu8QV9KHj8KJNA6MwS8J7aqImu+tXj6C7OISiIbten7J+ZrwwHN
         dt3C2SMmL29zruOXBaD5EzBmP83RgcRsAJ4jJjbpAkPlzq+fFU0fqeDCoD/YYs/fNJsT
         YlFCOnNIC19j6FY4s26+B/CIvQW/a2tpv1CwCXC6cB9c3tW9R7GGYy0BtAwqbobzjpVQ
         J+/ClvKvkF7b6Zb/r0RhmL/PcARMbZOJbEFKwsqxF/RZ5VsGjFckVYyruNC//1B3Hx8c
         CmXg==
X-Gm-Message-State: AOJu0YwjvgSUuvvaGpnOxNVdU9MGhTk2PiRwIHm/JgOFpp+hVjpjGIG9
	ztcpu+eBk6g7JkwV62NL5e9AjTAq0v/JuiizeJuTdvrpvGxGJUXk8cnBg8h0YsDxHHA1Tb5tUGS
	X
X-Gm-Gg: ASbGncsAA8xddCIUju/A+HdGlY5P4BqAxVCijOKkDp2zlYgsMxYyNhyfB53t6bRar6Q
	NczaO6caqr4KpzFyNKGwa+wuljojoDamt0fJiS+milsMVTYznPqcPeN8BmPSa4YQTTieRBQ2wN/
	TCri/B0iB0Cn+MtLGd0Apgp2AGDtmZ+Y95m7QyoP3BAKHP3TG4tUypas35+GFNl1GvdyWahgg+Q
	TxrO0gjqZoBY3Q29hxs+AAIgwkOO9q4kVtKod+k5kVcheb8Dvjdirmb9vwKd6MYCKnt5rCUdrlp
	XaSLaYA5ve/J9pWFMh3FD5Kzhg/Biu5YUFSN9Qd3ymsWBy2SCw==
X-Google-Smtp-Source: AGHT+IG1AIAtLq4CiN9qMplBG9p/hjmatcs3t1KrHTBJAC7KcEg/Oo4Z4AuluQw1FWKNeNMhFndeBg==
X-Received: by 2002:a17:907:97c2:b0:abf:63fa:43d4 with SMTP id a640c23a62f3a-ac738bbe89bmr1018652166b.44.1743512947558;
        Tue, 01 Apr 2025 06:09:07 -0700 (PDT)
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 10/11] x86/efi: do not merge all .init sections
Date: Tue,  1 Apr 2025 15:08:39 +0200
Message-ID: <20250401130840.72119-11-roger.pau@citrix.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <20250401130840.72119-1-roger.pau@citrix.com>
References: <20250401130840.72119-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

As a result of having no relocations against text sections, there's no need
for a single .init section that's read-write-execute, as .init.text is no
longer modified.

Remove the bodge and fallback to the layout used by ELF images with an
.init.text and .init.data section.

The resulting PE sections are:

Sections:
Idx Name          Size      VMA               LMA               File off  Algn
  0 .text         00193f6b  ffff82d040200000  ffff82d040200000  00000480  2**4
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  1 .rodata       0008a010  ffff82d040400000  ffff82d040400000  00194400  2**2
                  CONTENTS, ALLOC, LOAD, DATA
  2 .buildid      00000035  ffff82d04048a010  ffff82d04048a010  0021e420  2**2
                  CONTENTS, ALLOC, LOAD, READONLY, DATA
  3 .init.text    00049e70  ffff82d040600000  ffff82d040600000  0021e460  2**2
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  4 .init.data    000560a8  ffff82d040800000  ffff82d040800000  002682e0  2**2
                  CONTENTS, ALLOC, LOAD, DATA
[...]

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
Changes since v1:
 - Align .init.text.
 - Clarify commit message.
---
 xen/arch/x86/xen.lds.S | 15 +++++++--------
 1 file changed, 7 insertions(+), 8 deletions(-)

diff --git a/xen/arch/x86/xen.lds.S b/xen/arch/x86/xen.lds.S
index 1191bf4e2ddd..852aa135a76c 100644
--- a/xen/arch/x86/xen.lds.S
+++ b/xen/arch/x86/xen.lds.S
@@ -201,11 +201,7 @@ SECTIONS
   __2M_init_start = .;         /* Start of 2M superpages, mapped RWX (boot only). */
   . = ALIGN(PAGE_SIZE);             /* Init code and data */
   __init_begin = .;
-#ifdef EFI /* EFI wants to merge all of .init.*  ELF doesn't. */
-  DECL_SECTION(.init) {
-#else
   DECL_SECTION(.init.text) {
-#endif
        _sinittext = .;
        *(.init.text)
        *(.text.startup)
@@ -218,12 +214,15 @@ SECTIONS
         */
        *(.altinstr_replacement)
 
-#ifdef EFI /* EFI wants to merge all of .init.*  ELF doesn't. */
-       . = ALIGN(SMP_CACHE_BYTES);
-#else
   } PHDR(text)
-  DECL_SECTION(.init.data) {
+#ifdef EFI
+  /*
+   * Align to prevent the data section from re-using the tail of an RX mapping
+   * from the previous text section.
+   */
+  . = ALIGN(SECTION_ALIGN);
 #endif
+  DECL_SECTION(.init.data) {
        *(.init.bss.stack_aligned)
 
        . = ALIGN(POINTER_ALIGN);
-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Tue Apr 01 13:12:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 13:12:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.934178.1335976 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzbPM-0006Rf-JS; Tue, 01 Apr 2025 13:12:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 934178.1335976; Tue, 01 Apr 2025 13:12: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 1tzbPM-0006RY-Eg; Tue, 01 Apr 2025 13:12:00 +0000
Received: by outflank-mailman (input) for mailman id 934178;
 Tue, 01 Apr 2025 13:11: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=WxAi=WT=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tzbNP-0000Od-Pu
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 13:09:59 +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 9c2e7e94-0efa-11f0-9ffb-bf95429c2676;
 Tue, 01 Apr 2025 15:09:57 +0200 (CEST)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-3996af42857so4372495f8f.0
 for <xen-devel@lists.xenproject.org>; Tue, 01 Apr 2025 06:09:57 -0700 (PDT)
Received: from [10.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-39c0b79e0afsm14258344f8f.65.2025.04.01.06.09.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 01 Apr 2025 06:09:56 -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: 9c2e7e94-0efa-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743512997; x=1744117797; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=/gF64dXv6sBhyC1t7NW0BRm8NXvB4SI7N9Oj+yapuNo=;
        b=LaIE4ji5lkq80PgRs3P1ytIcvWkd4pJADf+h0PpVM64OgPy7MnGC0T13lGdIvqnQNo
         33cgGG/6VJfENGzFYJdlPnxqrWMfDpgvGqeZUujB9coAAWINbllUZYb33HFDO/vyppod
         tA4cjHTUIZD+VX4pelLtc1XLBCTipVCaUzaHnZUHpSFd8xU5/usvDoKYPP/kJNH6FPb+
         K4xHHhPA+lZQUXir0ypW74YseFWbXuMAM12jONAOHF8n24XMTMhGer6N06d9PqS2YY/o
         Pm7aRKboNuPwJvFScOfS/vHK/Kj2qQ8aZlx7Uq9oxI39UgtghAw/EDQcDeoimZB1kfw9
         xk8Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743512997; x=1744117797;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=/gF64dXv6sBhyC1t7NW0BRm8NXvB4SI7N9Oj+yapuNo=;
        b=oUnVtdEoOD8rw53pMakH9jXCP4167KWNC7CbgyotWzcP3X3UeuRwli3kzGVHYC+jR1
         XM2+YjY624ZliXGJ9IZLuLk7uPc7IeNM4pypMtu5kJ4+KaptpwRt45ymO6D9l92CvUwy
         v8Rw9Aq4rrdOaaPKt6Zx/Ipb+1J5Z5AWrxYD8lUWdZNbDVZrEwkayIVKEhIi/5j6OTLy
         cjfcflyK2NBFWBmrvkdJQ3Vhps6ZlMXEkfJF9pQa9gQSlxA/5eYxVnthL3STiv5WayiR
         4d2RocP8Xh2uZxr8E2lhi3jHM7A7e6CsIfiayvtXsu0b828d0S1lWnCvmLM4cDCVgRBK
         26zw==
X-Forwarded-Encrypted: i=1; AJvYcCUtGRvPmOnOFTRqMsFUN0H7+IpilpFw9dcNHzcxk7b1WX7CRi94y7FCW1Jur97aVzZqldAinHCJlao=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxlGCddC2ClwGZ6t3I1kvQL7Zqb5z7sVuiQIcCENmykfVIt7/bj
	EiGdYZL1OTylD0DJOozFNiHZ5FgT0/fe10YRW/1wn4nwIknC6GCkd0unxAhABw==
X-Gm-Gg: ASbGncskRbjSG8G42AGdb+1+S3Fk2pTHvYv3hE8FMet1aEww5NnSJ6lvr7d6DcQC6er
	HRO8ueKYFQ9vDLHoVt8xX7Zogr46wLq+3HCKBMv4i1ilKI8lS8G4wRIgdfKszucrAyWXfTrQHqO
	07SmrgT8+uqpMRQjPaCOENZTEc515pRhsq7gbibu/k/jYN8GU+1/Q2cqomdTYzNvX6sPyPlFpU3
	ns4pcMI12rrF/WAOKyPmIe+QydYrawZ94lTeoSv9pFcNgPNfTcnnF7wsBYSEJQc25mh2k/jFIzu
	0BOf7NmRgxcI+IUWta+pXC4eJGOHGuRHiL+gLwEToEUGD7HBhyZw//lQ+MLSt/TVTDx+iE3o7pk
	UWafJhdshD3I949/MBWXtTzAP/9sIuw==
X-Google-Smtp-Source: AGHT+IGB034m70MBls2U3Pja2dYHRJF+7crijUZKoqlMUqCVPQU4IxCdb0GNPKC5whvDbFdv7wkpPg==
X-Received: by 2002:a05:6000:40cb:b0:39c:1efb:f7c4 with SMTP id ffacd0b85a97d-39c1efbfcaemr4998679f8f.25.1743512996798;
        Tue, 01 Apr 2025 06:09:56 -0700 (PDT)
Message-ID: <df30d9fa-15dd-4923-bdaf-04f9476529d1@suse.com>
Date: Tue, 1 Apr 2025 15:09:55 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 10/19] xen/sysctl: introduce CONFIG_PM_STATS
To: Penny Zheng <Penny.Zheng@amd.com>
Cc: ray.huang@amd.com, Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20250326055053.3313146-1-Penny.Zheng@amd.com>
 <20250326055053.3313146-11-Penny.Zheng@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20250326055053.3313146-11-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 26.03.2025 06:50, Penny Zheng wrote:
> We intend to introduce CONFIG_PM_STATS for wrapping all operations
> regarding performance management statistics.
> The major codes reside in xen/drivers/acpi/pmstat.c, including two main
> pm-related sysctl op: do_get_pm_info() and do_pm_op().
> So This commit also makes CONFIG_PM_STATS depend on CONFIG_SYSCTL
> 
> Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
> ---
> v1 -> v2:
> - rename to CONFIG_PM_STATS
> - fix indention and stray semicolon
> - make code movements into a new commit
> - No need to wrap inline functions and declarations
> ---
>  xen/arch/x86/acpi/cpu_idle.c                 |  2 ++
>  xen/arch/x86/acpi/cpufreq/hwp.c              |  6 ++++++
>  xen/arch/x86/acpi/cpufreq/powernow.c         |  4 ++++
>  xen/common/Kconfig                           |  5 +++++
>  xen/common/sysctl.c                          |  4 ++--
>  xen/drivers/acpi/Makefile                    |  2 +-
>  xen/drivers/cpufreq/cpufreq_misc_governors.c |  2 ++
>  xen/drivers/cpufreq/cpufreq_ondemand.c       |  2 ++
>  xen/include/acpi/cpufreq/processor_perf.h    | 14 ++++++++++++++
>  9 files changed, 38 insertions(+), 3 deletions(-)
> 
> diff --git a/xen/arch/x86/acpi/cpu_idle.c b/xen/arch/x86/acpi/cpu_idle.c
> index 420198406d..b537ac4cd6 100644
> --- a/xen/arch/x86/acpi/cpu_idle.c
> +++ b/xen/arch/x86/acpi/cpu_idle.c
> @@ -1487,6 +1487,7 @@ static void amd_cpuidle_init(struct acpi_processor_power *power)
>          vendor_override = -1;
>  }
>  
> +#ifdef CONFIG_PM_STATS
>  uint32_t pmstat_get_cx_nr(unsigned int cpu)
>  {
>      return processor_powers[cpu] ? processor_powers[cpu]->count : 0;
> @@ -1606,6 +1607,7 @@ int pmstat_reset_cx_stat(unsigned int cpu)
>  {
>      return 0;
>  }
> +#endif /* CONFIG_PM_STATS */
>  
>  void cpuidle_disable_deep_cstate(void)
>  {
> diff --git a/xen/arch/x86/acpi/cpufreq/hwp.c b/xen/arch/x86/acpi/cpufreq/hwp.c
> index d5fa3d47ca..98e9d46890 100644
> --- a/xen/arch/x86/acpi/cpufreq/hwp.c
> +++ b/xen/arch/x86/acpi/cpufreq/hwp.c
> @@ -466,6 +466,7 @@ static int cf_check hwp_cpufreq_cpu_exit(struct cpufreq_policy *policy)
>      return 0;
>  }
>  
> +#ifdef CONFIG_PM_STATS
>  /*
>   * The SDM reads like turbo should be disabled with MSR_IA32_PERF_CTL and
>   * PERF_CTL_TURBO_DISENGAGE, but that does not seem to actually work, at least
> @@ -508,6 +509,7 @@ static int cf_check hwp_cpufreq_update(unsigned int cpu, struct cpufreq_policy *
>  
>      return per_cpu(hwp_drv_data, cpu)->ret;
>  }
> +#endif /* CONFIG_PM_STATS */
>  
>  static const struct cpufreq_driver __initconst_cf_clobber
>  hwp_cpufreq_driver = {
> @@ -516,9 +518,12 @@ hwp_cpufreq_driver = {
>      .target = hwp_cpufreq_target,
>      .init   = hwp_cpufreq_cpu_init,
>      .exit   = hwp_cpufreq_cpu_exit,
> +#ifdef CONFIG_PM_STATS
>      .update = hwp_cpufreq_update,
> +#endif
>  };

Something's wrong here: The .update hook is actually making changes, so is
definitely not (only) about statistics. Same for the powernow driver.

> +#ifdef CONFIG_PM_STATS
>  int get_hwp_para(unsigned int cpu,
>                   struct xen_cppc_para *cppc_para)
>  {
> @@ -639,6 +644,7 @@ int set_hwp_para(struct cpufreq_policy *policy,
>  
>      return hwp_cpufreq_target(policy, 0, 0);
>  }
> +#endif /* CONFIG_PM_STATS */

This also isn't about statistics, but about getting / setting parameters.

> --- a/xen/common/Kconfig
> +++ b/xen/common/Kconfig
> @@ -557,4 +557,9 @@ config SYSCTL
>  	  to reduce Xen footprint.
>  endmenu
>  
> +config PM_STATS
> +	bool "Enable Performance Management Statistics"
> +	depends on ACPI && HAS_CPUFREQ && SYSCTL
> +	default y

As per above - either name, prompt and the description that Stefano suggested
are wrong, or it is too much that is being covered by this new control.

> --- a/xen/drivers/cpufreq/cpufreq_misc_governors.c
> +++ b/xen/drivers/cpufreq/cpufreq_misc_governors.c
> @@ -64,6 +64,7 @@ static int cf_check cpufreq_governor_userspace(
>      return ret;
>  }
>  
> +#ifdef CONFIG_PM_STATS
>  int write_userspace_scaling_setspeed(unsigned int cpu, unsigned int freq)
>  {
>      struct cpufreq_policy *policy;
> @@ -80,6 +81,7 @@ int write_userspace_scaling_setspeed(unsigned int cpu, unsigned int freq)
>  
>      return __cpufreq_driver_target(policy, freq, CPUFREQ_RELATION_L);
>  }
> +#endif /* CONFIG_PM_STATS */

Here the name of the function also makes pretty clear that it isn't about
statistics.

> --- a/xen/drivers/cpufreq/cpufreq_ondemand.c
> +++ b/xen/drivers/cpufreq/cpufreq_ondemand.c
> @@ -57,6 +57,7 @@ static struct dbs_tuners {
>  
>  static DEFINE_PER_CPU(struct timer, dbs_timer);
>  
> +#ifdef CONFIG_PM_STATS
>  int write_ondemand_sampling_rate(unsigned int sampling_rate)
>  {
>      if ( (sampling_rate > MAX_SAMPLING_RATE / MICROSECS(1)) ||
> @@ -93,6 +94,7 @@ int get_cpufreq_ondemand_para(uint32_t *sampling_rate_max,
>  
>      return 0;
>  }
> +#endif /* CONFIG_PM_STATS */

Same for the ones here.

> --- a/xen/include/acpi/cpufreq/processor_perf.h
> +++ b/xen/include/acpi/cpufreq/processor_perf.h
> @@ -9,9 +9,23 @@
>  
>  unsigned int powernow_register_driver(void);
>  unsigned int get_measured_perf(unsigned int cpu, unsigned int flag);
> +#ifdef CONFIG_PM_STATS
>  void cpufreq_statistic_update(unsigned int cpu, uint8_t from, uint8_t to);
>  int  cpufreq_statistic_init(unsigned int cpu);
>  void cpufreq_statistic_exit(unsigned int cpu);
> +#else
> +static inline void cpufreq_statistic_update(unsigned int cpu, uint8_t from,
> +                                            uint8_t to)
> +{
> +}

This could do with both braces moved to the line with the closing parenthesis.

> +static inline int cpufreq_statistic_init(unsigned int cpu)
> +{
> +    return 0;
> +}
> +static inline void cpufreq_statistic_exit(unsigned int cpu)
> +{
> +}

Same here.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 01 13:12:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 13:12:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.934190.1335996 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzbPV-00074x-5X; Tue, 01 Apr 2025 13:12:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 934190.1335996; Tue, 01 Apr 2025 13:12: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 1tzbPV-00074q-24; Tue, 01 Apr 2025 13:12:09 +0000
Received: by outflank-mailman (input) for mailman id 934190;
 Tue, 01 Apr 2025 13:12: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=oF/L=WT=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1tzbMe-0008KU-BX
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 13:09: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 7fdb7702-0efa-11f0-9ea7-5ba50f476ded;
 Tue, 01 Apr 2025 15:09:10 +0200 (CEST)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-ac29fd22163so926513066b.3
 for <xen-devel@lists.xenproject.org>; Tue, 01 Apr 2025 06:09:09 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 a640c23a62f3a-ac71927b7cfsm754553366b.49.2025.04.01.06.09.08
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 01 Apr 2025 06:09: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: 7fdb7702-0efa-11f0-9ea7-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1743512949; x=1744117749; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=NMjGk2rTj1yEkoZ9b/TWFB91n+XjEue7/7KXBnaUhCc=;
        b=eiSNgyT0eOS3FieQZdky1f+9BRhQrxOKnQ7VP8FlX+hyyQADbPxb0bqEhX9kdW050R
         OJON/U1vHojc3kVREzLpS03v3OQq10aozH3JR6w+/dY0mbR7+1ga/OmzDNhomKHzOjJa
         rKEYTKqlu6kQuF2rLK9n6Mh62+pxMXl1oOdaw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743512949; x=1744117749;
        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=NMjGk2rTj1yEkoZ9b/TWFB91n+XjEue7/7KXBnaUhCc=;
        b=g1YGYNxqKO946VpdjP5JezL1i6w3IaLDkHue74OoBopArXwKcW+r+HGH7oVqXkz+m5
         iN4xzYTcTL5DQ/D6jQ6ShMR/bGEt+BZCJCNPQeYwJVSBTvmx/w866XFhXDuejPo5Pg3p
         L7ZtHsdDBfTKEX40dac6cZX6QM7810/0zId1JR3KLxIzgijI4RERQAZWeF+jph8xA9/c
         gkoj1NdXGh8l8ERmKofjKItiZPRAhX/kU+yuZSIO/OrNo89rX88OAtCKBGQJrJaVoOP5
         3dm9h9P2YmBIgHlfGsF2l8jhND6K8iICAmZitTYeA2aUkrsnffxhl4lPrSKYgv5Wch0C
         YqCg==
X-Gm-Message-State: AOJu0Yww7d1JdyAfg6N6lF06ojK+OcI5X3nRWsiJP2h9NxwSGcTdPUiY
	+QwlPEOEtDaO8wTUZmbjjZlBGJ+fwQrAtQ2ucxU96wRuLZQqvJSoVwtX5kIDoScFgbgxs7wP4Nx
	a
X-Gm-Gg: ASbGnctdV94zyQs0k9VXpvGwCEKr/UmVAL/eq90fpnlkUZImxBDji1ozzkUeS+TiLze
	fUsyhJ0ANe6cTL2BLC5Wg26Sqpv9jiksYo2b4hRyT7okWGsZdB6Syz3vSTZf+LEQp1J7X/AgLCI
	P2K+rJhsNcbdRxVWseHLt6JCGjU1x6R3Ais6zhOaCZwuIhLWowKYl3ja3C6X95sfyis24xK87fo
	CjxcP8b0ny1Vd9ebpzfF+usZJ9rvHX8M8rOyvAGs+GdOVVibJdLchOwItnlCsI3f2Zyuja1NCW6
	TDxZLv6coyyonqgwgVhjRZY2sFc4PKCwwFeHEyFWYD02ZdAiRw==
X-Google-Smtp-Source: AGHT+IFCculQFVIsAPIfraVZnCR3LJEGuoFKSvhvYzJv0ILOugajihhVFyqaE+eW8Eh1agmb3b2qsQ==
X-Received: by 2002:a17:906:7955:b0:abf:4bde:51b1 with SMTP id a640c23a62f3a-ac738a4bf32mr1077303566b.21.1743512948972;
        Tue, 01 Apr 2025 06:09:08 -0700 (PDT)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 11/11] automation/x86: add a xen.efi test with a strict NX OVMF build
Date: Tue,  1 Apr 2025 15:08:40 +0200
Message-ID: <20250401130840.72119-12-roger.pau@citrix.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <20250401130840.72119-1-roger.pau@citrix.com>
References: <20250401130840.72119-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Such OVMF build does honor the PE sections attributes, and will not blindly
create all section mappings with read-write-execute permissions.

Strict NX build is only available in the Fedora edk2-experimental
package, so add the required dependencies to run a QEMU EFI job on the
Fedora 41 container and use it for the test.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
 automation/build/fedora/41-x86_64.dockerfile |  5 +++++
 automation/gitlab-ci/test.yaml               |  9 ++++++++
 automation/scripts/qemu-smoke-x86-64-efi.sh  | 22 ++++++++++++++++----
 3 files changed, 32 insertions(+), 4 deletions(-)

diff --git a/automation/build/fedora/41-x86_64.dockerfile b/automation/build/fedora/41-x86_64.dockerfile
index 8032a2098632..84f366ac0643 100644
--- a/automation/build/fedora/41-x86_64.dockerfile
+++ b/automation/build/fedora/41-x86_64.dockerfile
@@ -65,6 +65,11 @@ RUN <<EOF
         glib2-devel
         pixman-devel
         ninja-build
+
+        # EFI Strict NX test
+        qemu-system-x86
+        edk2-experimental
+        expect
     )
 
     dnf -y --setopt=install_weak_deps=False install "${DEPS[@]}"
diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
index 225eb4399807..dec14420ab62 100644
--- a/automation/gitlab-ci/test.yaml
+++ b/automation/gitlab-ci/test.yaml
@@ -593,6 +593,15 @@ qemu-smoke-x86-64-gcc-efi:
   needs:
     - debian-12-x86_64-gcc-debug
 
+qemu-smoke-x86-64-gcc-efi-strictnx:
+  extends: .qemu-smoke-x86-64
+  variables:
+    CONTAINER: fedora:41-x86_64
+  script:
+    - ./automation/scripts/qemu-smoke-x86-64-efi.sh pv strict 2>&1 | tee ${LOGFILE}
+  needs:
+    - debian-12-x86_64-gcc-debug
+
 qemu-smoke-riscv64-gcc:
   extends: .qemu-riscv64
   script:
diff --git a/automation/scripts/qemu-smoke-x86-64-efi.sh b/automation/scripts/qemu-smoke-x86-64-efi.sh
index 7572722be6e5..fbb662f1a756 100755
--- a/automation/scripts/qemu-smoke-x86-64-efi.sh
+++ b/automation/scripts/qemu-smoke-x86-64-efi.sh
@@ -4,6 +4,7 @@ set -ex -o pipefail
 
 # variant should be either pv or pvh
 variant=$1
+mode=$2
 
 # Clone and build XTF
 git clone https://xenbits.xen.org/git-http/xtf.git
@@ -14,6 +15,19 @@ case $variant in
     *)   k=test-pv64-example     extra= ;;
 esac
 
+case $mode in
+    strict)
+        ovmf_code=/usr/share/edk2/experimental/OVMF_CODE_4M.secboot.strictnx.qcow2
+        ovmf_vars=/usr/share/edk2/ovmf/OVMF_VARS_4M.qcow2
+        ovmf_format=qcow2
+        ;;
+    *)
+        ovmf_code=/usr/share/OVMF/OVMF_CODE.fd
+        ovmf_vars=/usr/share/OVMF/OVMF_VARS.fd
+        ovmf_format=raw
+        ;;
+esac
+
 mkdir -p boot-esp/EFI/BOOT
 cp binaries/xen.efi boot-esp/EFI/BOOT/BOOTX64.EFI
 cp xtf/tests/example/$k boot-esp/EFI/BOOT/kernel
@@ -27,13 +41,13 @@ options=loglvl=all console=com1 noreboot console_timestamps=boot $extra
 kernel=kernel
 EOF
 
-cp /usr/share/OVMF/OVMF_CODE.fd OVMF_CODE.fd
-cp /usr/share/OVMF/OVMF_VARS.fd OVMF_VARS.fd
+cp $ovmf_code OVMF_CODE.fd
+cp $ovmf_vars OVMF_VARS.fd
 
 rm -f smoke.serial
 export TEST_CMD="qemu-system-x86_64 -nographic -M q35,kernel-irqchip=split \
-        -drive if=pflash,format=raw,readonly=on,file=OVMF_CODE.fd \
-        -drive if=pflash,format=raw,file=OVMF_VARS.fd \
+        -drive if=pflash,format=${ovmf_format},readonly=on,file=OVMF_CODE.fd \
+        -drive if=pflash,format=${ovmf_format},file=OVMF_VARS.fd \
         -drive file=fat:rw:boot-esp,media=disk,index=0,format=raw \
         -m 512 -monitor none -serial stdio"
 
-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Tue Apr 01 13:12:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 13:12:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.934201.1336007 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzbPb-0007h5-Fu; Tue, 01 Apr 2025 13:12:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 934201.1336007; Tue, 01 Apr 2025 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 1tzbPb-0007gq-98; Tue, 01 Apr 2025 13:12:15 +0000
Received: by outflank-mailman (input) for mailman id 934201;
 Tue, 01 Apr 2025 13:12: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=oF/L=WT=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1tzbMY-0008KU-L5
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 13:09:06 +0000
Received: from mail-ed1-x536.google.com (mail-ed1-x536.google.com
 [2a00:1450:4864:20::536])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7d87fe32-0efa-11f0-9ea7-5ba50f476ded;
 Tue, 01 Apr 2025 15:09:06 +0200 (CEST)
Received: by mail-ed1-x536.google.com with SMTP id
 4fb4d7f45d1cf-5edc07c777eso5614074a12.3
 for <xen-devel@lists.xenproject.org>; Tue, 01 Apr 2025 06:09:06 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 4fb4d7f45d1cf-5edc16d5077sm7044407a12.32.2025.04.01.06.09.00
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 01 Apr 2025 06:09: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: 7d87fe32-0efa-11f0-9ea7-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1743512945; x=1744117745; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=TZxBOQSFyBxeOjrMoPK4/0WOsmdYg4n3s13OFZoBbPU=;
        b=YiCO8ulVsFFFvFuU6WtuBxTveEgQd1mmsQ7Hll5Tag/ki+HU/HC/WNSUfAkf2rMr7w
         ID1LngUaHVfoYuuel6vFaOyk+J3L9ZowlBcnDjWgo/ds+yeyKcYQdzGOPUWX6VpVkn7t
         9rpNOkyDBya8ixHmoC2N3VxgmrpKyrKPrOMqY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743512945; x=1744117745;
        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=TZxBOQSFyBxeOjrMoPK4/0WOsmdYg4n3s13OFZoBbPU=;
        b=Ix1qikTl+TAp15IxTHfCXJiChcaPweQwtml083pOjHjURqdIGjvizw316E38r8JqBa
         xMzlC08Dwh+9EU3FUuVM7tE0+0FkqIALSxlFQFI+rV4vFu5NRriBWQR6rlXXmtyLJwjQ
         sWe58UZsMavZaqO/UK/4EATF20JDYodPNmzIs8tavEcLesgoyu8PJOJFhMyy+4H4tOmo
         J/f7gep9oSMFUDmu8L1qbg78I2KJLJsEfk0r557v19L0oPKak9NccP8+HPZbVNWBQgbN
         M3+GHc93iivTguLGIt5LNexzqVJcw4Ux9Jym5PO+W+VBllVILY/ih3cZV3dm7OiAZPi0
         DAoA==
X-Gm-Message-State: AOJu0Yze5qh7NP083mgsmRpTAysleNpiNP5/jJJCG6LKWe2IBU9mCumG
	l2CzPfac4+7kKy7WA2z/wg9Nhv1rpFPtaBsvkNkgmrYT+nQL31ztSr0uSZUqXw5sYbfmn2Y90om
	X
X-Gm-Gg: ASbGncurXRwsOHt+EE/NrpteXEIIZKndn6OWLC1jSuJtqKfMLIV80nNSUytLyPhWfmB
	I/B/Mr6sED+fcH5gqAvaJNTE3yL3ceiskyrIHo1g8A9QW851Gr8Ekx6ssdZW8F7G+Kug4E/vc/r
	S52PUNW2LZMYefeQ2voe8f+CY8+WJENwGRFoxZC+hoQAf5MNFv42g2+Gew+PP2r8XVmrWIAZQUg
	40NWNJcM/mbxVoZL7P/WhYsiv+wq5Q8bViwlVmaWpl/1QBCpNGzmMvWbuXsnG1UvUrzsEukmLm2
	P+FNXTgx1hvENKJOHn2lOZREVuAxHrWRnOFoICM6eL3WkihyNA==
X-Google-Smtp-Source: AGHT+IE/BKGYvhgZRW5pouc3MtVys3s9WDTS+gmscGkaRwz0gTdBrRfVUs0dYAvq+MEuHWARTmvC6g==
X-Received: by 2002:a05:6402:2b8b:b0:5ed:994c:7e75 with SMTP id 4fb4d7f45d1cf-5edfd9f7c9emr10260312a12.24.1743512940814;
        Tue, 01 Apr 2025 06:09:00 -0700 (PDT)
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 08/11] x86/boot: place trampoline code in a non-execute section
Date: Tue,  1 Apr 2025 15:08:37 +0200
Message-ID: <20250401130840.72119-9-roger.pau@citrix.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <20250401130840.72119-1-roger.pau@citrix.com>
References: <20250401130840.72119-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The trampoline code is never executed in the position placed by the
loader.  It's first copied to the low 1MB, and always executed from
there.

Move the trampoline code from being in .init.text section into
.init.data, so it's not in an executable section.  This allows applying
the relocations safely against a non-executable (and thus non-read only)
section, and then copy the relocated trampoline to the low 1MB.  Note
that the trampoline code is placed on an .init section, so zapped after
boot has finished.

No functional change intended.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
An alternative approach is to apply the relocations after having copied the
trampoline to the low 1MB, but that still generates relocations in mkreloc,
which is not helpful for the goal of having no relocations applied to
read-execute code sections.  This approach however places code in a data
section, which might cause issues when debugging it.
---
 xen/arch/x86/boot/head.S | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/arch/x86/boot/head.S b/xen/arch/x86/boot/head.S
index 774894954e44..f5a2d08d0d0e 100644
--- a/xen/arch/x86/boot/head.S
+++ b/xen/arch/x86/boot/head.S
@@ -709,7 +709,7 @@ trampoline_setup:
         /* Jump into the relocated trampoline. */
         lret
 
-        .section .init.text, "ax", @progbits
+        .section .init.data, "aw", @progbits
 ENTRY(trampoline_start)
 #include "trampoline.S"
 ENTRY(trampoline_end)
-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Tue Apr 01 13:12:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 13:12:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.934208.1336016 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzbPd-00084R-Ny; Tue, 01 Apr 2025 13:12:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 934208.1336016; Tue, 01 Apr 2025 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 1tzbPd-000847-JP; Tue, 01 Apr 2025 13:12:17 +0000
Received: by outflank-mailman (input) for mailman id 934208;
 Tue, 01 Apr 2025 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=oF/L=WT=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1tzbMb-0000Od-JU
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 13:09:09 +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 7e3f2c1c-0efa-11f0-9ffb-bf95429c2676;
 Tue, 01 Apr 2025 15:09:07 +0200 (CEST)
Received: by mail-ed1-x52c.google.com with SMTP id
 4fb4d7f45d1cf-5e5c7d6b96fso10198523a12.3
 for <xen-devel@lists.xenproject.org>; Tue, 01 Apr 2025 06:09:07 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 a640c23a62f3a-ac71927b013sm774356166b.63.2025.04.01.06.09.05
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 01 Apr 2025 06:09: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: 7e3f2c1c-0efa-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1743512946; x=1744117746; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=3Qwa4790XsBU40/HS4XW3tzOpxssCxzWLfWfhM2utiU=;
        b=BkvfiEE7gG+1K3C9XyJGMTrQg+FNHyl+MsDTN9zPCawRnuBV232J4lrMwk6eVzh4rS
         H+7kv35lKaHOCyl/b63ZMZznKXyQijbnk0Y+XMc90HWb47EcZfTpgx4DVcVKIgPDEhVv
         jN1ucFGRGeubeXmKUw5U8JulmsF5Y4Q6GPtkM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743512946; x=1744117746;
        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=3Qwa4790XsBU40/HS4XW3tzOpxssCxzWLfWfhM2utiU=;
        b=JkLcV2X9wXb9WiDFg2cyJVwZdRcyyz43HQf8y6e4V3Z2U/i+vfsQoZZ4MgLYevCtxH
         wt+kSU00GI0e8ZsmCcwEazc7n4YswklEkK8j8+XSAwpdrF54mjlqu7iC4St8dKOGw0Bo
         oXXtipEdmjGaCWZ5mzVFz4o9M/Q1AIBajFZ1jRAZnU+XAOrbKDC0WtPFB1/SkenmmD+P
         A7ZuI1k7XP+x7y9aXwmJ3UHzcFRF5UEe9t/Og/S3h7lE5wnKKhevQtBsfpnncL1z+o0P
         VFwDXB1kf8pi8tzpbz2HaOPfsBlZhFGExPvF93M4k9h4A5zGzfRG86k1Xp7yesKbrVzL
         hcag==
X-Gm-Message-State: AOJu0YwVg+sqoMl+t4bKwXrhwuhOtg75iNyx36VLZj6jaF7usj8IgGP+
	phgve2XoA0dkQDwPRFQ5gNMUzUeVDlfTk9ViGcDMoFTk/FFB3iLBidL8mZacviV3+rrybMugqE9
	R
X-Gm-Gg: ASbGnct5LwZGfHkos4lixRAPMLV6dgb7RkvdwO+DL8B3IfLph9GX4IFcgQQ1w7+27v+
	cV6kQ8SPaH10Z2B7AmRUFyyMVjaxWr7IREu8ehHshhYWQ0Ig8nqUxw9EM5AzVpvo1VSbcKH6TdY
	JymXxySlBO9T4e0RY4tUt3eMvpgO1uvvirQilWQ3XN/5ArRyrg7xSH1WXtYzwIX3j9TjlcSJWBs
	ZbJK8VwK/Er3+O4of2/Jhc+eezj4dNdWI9JB2juoFV/E9cKMwiEg3uGIVR78yxxzhoUcqnsoJ98
	sK6j19PiMK65i7Apj3OrA2chAW5NXKpxiKpjVjMwisO0wyFDbiH+BPsyAftT
X-Google-Smtp-Source: AGHT+IGaTL4+DNncckQbpL2w1mfIC0PN54mgxJ8UCHZmW+A0RvqhvxCvguiv22/squAYZqlGE4+Jag==
X-Received: by 2002:a17:906:d551:b0:ac3:26ff:11a0 with SMTP id a640c23a62f3a-ac738bac990mr1068582266b.38.1743512946332;
        Tue, 01 Apr 2025 06:09:06 -0700 (PDT)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: [PATCH v2 09/11] x86/efi: avoid a relocation in efi_arch_post_exit_boot()
Date: Tue,  1 Apr 2025 15:08:38 +0200
Message-ID: <20250401130840.72119-10-roger.pau@citrix.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <20250401130840.72119-1-roger.pau@citrix.com>
References: <20250401130840.72119-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Instead of using the absolute __start_xen address, calculate it as an
offset from the current instruction pointer.  The relocation would be
problematic if the loader has acknowledged the Xen image section
attributes, and mapped .init.text with just read and execute permissions.

No functional change intended.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/arch/x86/efi/efi-boot.h | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/efi/efi-boot.h b/xen/arch/x86/efi/efi-boot.h
index 1d8902a9a724..c5cbf56cc0c4 100644
--- a/xen/arch/x86/efi/efi-boot.h
+++ b/xen/arch/x86/efi/efi-boot.h
@@ -266,7 +266,9 @@ static void __init noreturn efi_arch_post_exit_boot(void)
 
                    /* Jump to higher mappings. */
                    "mov    stack_start(%%rip), %%rsp\n\t"
-                   "movabs $__start_xen, %[rip]\n\t"
+                   "lea    __start_xen(%%rip), %[rip]\n\t"
+                   "add    %[offset], %[rip]\n\t"
+
                    "push   %[cs]\n\t"
                    "push   %[rip]\n\t"
                    "lretq"
@@ -274,7 +276,8 @@ static void __init noreturn efi_arch_post_exit_boot(void)
                      [cr4] "+&r" (cr4)
                    : [cr3] "r" (idle_pg_table),
                      [cs] "i" (__HYPERVISOR_CS),
-                     [ds] "r" (__HYPERVISOR_DS)
+                     [ds] "r" (__HYPERVISOR_DS),
+                     [offset] "r" (__XEN_VIRT_START - xen_phys_start)
                    : "memory" );
     unreachable();
 }
-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Tue Apr 01 13:14:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 13:14:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.934262.1336026 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzbRH-0001Eg-4g; Tue, 01 Apr 2025 13:13:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 934262.1336026; Tue, 01 Apr 2025 13: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 1tzbRH-0001ES-0p; Tue, 01 Apr 2025 13:13:59 +0000
Received: by outflank-mailman (input) for mailman id 934262;
 Tue, 01 Apr 2025 13: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=WxAi=WT=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tzbRF-0001ED-N0
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 13:13:57 +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 295648e5-0efb-11f0-9ffb-bf95429c2676;
 Tue, 01 Apr 2025 15:13:54 +0200 (CEST)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-43cf05f0c3eso37073875e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 01 Apr 2025 06:13:54 -0700 (PDT)
Received: from [10.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-39c0b658b7bsm13918170f8f.20.2025.04.01.06.13.52
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 01 Apr 2025 06:13:53 -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: 295648e5-0efb-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743513234; x=1744118034; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=k2aOFrJeLChF3MlqRq3WH4VJ3NAOi+R+dVtjMisS9nE=;
        b=dA8dWoI2c4xAtzFS5QefN0eXPutUl22Py5/as/FNAbcQasRVckvmS29pM8ypDBpOSg
         qzSoffk6zVPL+ZomOWL8Ut6ExpsjhKT+lkaBr/5LvrigaSyVRf5tQ28zw3HqsXhJBM6U
         l3iBcCGrY5l7M3MwfPaJG0iSG4HeFzfbL4MKigbpnCzTDZvxrP3EBAMMYoEXQGeorS6A
         LDb8wFtYs8T/LG0GpBzlQpbfv6bF2wBKSaoPEj3Hmcluz0+Cjx5ltJyDwa9PRFUXIKTD
         G1yjU2Ke0wJf4damYa6JvjEf1e4pKJB/sV4ekhXrpDuFrLDf/VDGe/IEOPfJk/MI2iLF
         /1Jw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743513234; x=1744118034;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=k2aOFrJeLChF3MlqRq3WH4VJ3NAOi+R+dVtjMisS9nE=;
        b=olWLE6VoVCH/noFZO3A14+t7jvFFmgymhYQayuhTBlyDeuSBbNrvFywJq5yx96349d
         eSSKWSi5q5v58BdSCM0siGDKRZiZbjrl1vALfYmHCllGLXKM9xzFrdNhkusemlboTqdp
         LBV4HLIu0GbB2yf+4BgrmClLWlt5FEYe05yF/hdlrVXSoHr6PDMGdRPf/huCVxEUJqAm
         oxs3I9AE7b8XmXwtbVU06gQ2JlSwr/tgdFje8fPf+21OB/fvMlrMsTAYAYi7Siwln7Wn
         JrV83fbLQxsdKbybsNVayK480cVqBn1KDwSXWiME/jfz82gdn1aYgR41+EiGDwZQ/yfh
         M+eA==
X-Forwarded-Encrypted: i=1; AJvYcCXG5SglfhsRdtVWr7HkG62EwmFy2ocrWTpI5EUcC2wThIs03FkBghXAGWvsDWOmTr3rNEDDoEcig/I=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxjXrAHOAWS3Lxb1ugvVaMW//orI303AtJmJPHwnaTU18WgPhlT
	yttUx7CfLsC4uC/5zsF4PpdVtIf3ZAfdCJ64mo2CkQ+qCx/88NC0/VTzpGODYQ==
X-Gm-Gg: ASbGncsk2LxXDMJzWdobwj8uHET294BvAFtOYoepLbbh2rM72GQzp8reJ+1fw3MJG62
	Fic9utLR92cvi6qwXH0rht5szs9fBjN+M6cVjTuKA69BOcUrMxxfncXSuqB/1k+sEWEstR7zVxe
	uInl+jJjbhNWi1FiTab1RmNfuZKpqtDEigYKq8ZK2prTfxmrachBT0tnP9SfW5omBeE83Rico9H
	IkLeuZAOJXn66epi6T176nfXb+fs55xOswH/hVPhvfo1Xp/MfC9D4rlBEPCFba6VYAAMZ+S9YZy
	1OipTchGLJEWZ3t1EGvrHU6clvYfCxDazRGHaHu6L9xRdYqNnbmz+z9Symd0QUnpmj1MY+F3wc+
	qQb6Atjemgvo0A8Q3i3BiLJyBzGDIWA==
X-Google-Smtp-Source: AGHT+IH2XFvrXrEpvXa4wXWmABZvGl+Rv3rxTfd1HKyfO65pXGtMSlIseu0EGsHlE4ZG1ZOwFrwH2g==
X-Received: by 2002:a05:600c:45cd:b0:43d:54a:221c with SMTP id 5b1f17b1804b1-43e94a3bccdmr110965595e9.18.1743513233684;
        Tue, 01 Apr 2025 06:13:53 -0700 (PDT)
Message-ID: <c686844c-4cb8-43d0-a762-7f93a30f9388@suse.com>
Date: Tue, 1 Apr 2025 15:13:52 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 00/11] x86/EFI: prevent write-execute sections
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, 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>,
 Shawn Anastasio <sanastasio@raptorengineering.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 xen-devel@lists.xenproject.org
References: <20250401130840.72119-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: <20250401130840.72119-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 01.04.2025 15:08, Roger Pau Monne wrote:
> Hello,
> 
> The following series aim to remove the presence of any write and execute
> section in the PE Xen image.  This is required to support the NX
> compatible flag in the PE header.   By the end of the series the
> resulting PE image has no relocations that apply to text sections, as
> text sections are strictly mapped read-execute only.  Xen itself
> attempting to apply relocations to text would result in page-faults.
> 
> A smoke test is added to Gitlab to ensure the PE NX support doesn't
> regress.
> 
> Only patches 5 and 10 are carried over from v1, the rest are new.
> 
> Thanks, Roger.
> 
> Roger Pau Monne (11):
>   automation/dockers: add to README how to rebuild all containers
>   x86/mkreloc: fix obtaining PE image base address
>   x86/mkreloc: use the string table to get names
>   x86/mkreloc: print the linear address of relocations to read-only
>     sections
>   xen: remove -N from the linker command line
>   x86/efi: discard .text.header for PE binary
>   x86/efi: discard multiboot related entry code for PE binary
>   x86/boot: place trampoline code in a non-execute section
>   x86/efi: avoid a relocation in efi_arch_post_exit_boot()
>   x86/efi: do not merge all .init sections
>   automation/x86: add a xen.efi test with a strict NX OVMF build
> 
>  automation/build/README.md                   |  7 ++
>  automation/build/fedora/41-x86_64.dockerfile |  5 ++
>  automation/gitlab-ci/test.yaml               |  9 +++
>  automation/scripts/qemu-smoke-x86-64-efi.sh  | 22 +++++-
>  xen/arch/arm/Makefile                        |  6 +-
>  xen/arch/ppc/Makefile                        |  6 +-
>  xen/arch/riscv/Makefile                      |  6 +-
>  xen/arch/x86/Makefile                        | 12 +--
>  xen/arch/x86/boot/head.S                     |  3 +-
>  xen/arch/x86/efi/efi-boot.h                  |  7 +-
>  xen/arch/x86/efi/mkreloc.c                   | 77 +++++++++++++++++---
>  xen/arch/x86/xen.lds.S                       | 20 +++--
>  12 files changed, 138 insertions(+), 42 deletions(-)

>From titles and diffstat (all Makefile changes being covered by patch 05)
it looks like you still don't add passing --nxcompat to the linker. Is
that intentionally left out here?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 01 13:19:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 13:19:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.934279.1336035 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzbWA-0001q3-M2; Tue, 01 Apr 2025 13:19:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 934279.1336035; Tue, 01 Apr 2025 13:19: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 1tzbWA-0001pw-J8; Tue, 01 Apr 2025 13:19:02 +0000
Received: by outflank-mailman (input) for mailman id 934279;
 Tue, 01 Apr 2025 13:19: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=WxAi=WT=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tzbW9-0001pq-2z
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 13:19:01 +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 df3f5209-0efb-11f0-9ea7-5ba50f476ded;
 Tue, 01 Apr 2025 15:18:59 +0200 (CEST)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-4393dc02b78so36008585e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 01 Apr 2025 06:18:59 -0700 (PDT)
Received: from [10.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-39c0b665707sm14392394f8f.38.2025.04.01.06.18.58
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 01 Apr 2025 06:18:58 -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: df3f5209-0efb-11f0-9ea7-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743513539; x=1744118339; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=zMmEMEWdVmIruzzY6wmLLgf8ZzpH2/FIAZvu1Yd2zeQ=;
        b=J7Ol4bkLLb+5WgAcWq1yXKNT657ix8mDN+Qx4PNTBuJQkZl+RN7pDBZKfc9kJ8zdpX
         sKEGcAxgBAWzmVZzPIlJa1fM1ReUx+9iMd+usvEAxb80NFSgq7Lpfb/V6LClFYnksqmT
         2OAbvws+Byg+VdAo+svRsQP98YsdnHjnu8bAJsGnBBy2FnZPQsSvSPyFdLTomE5Yxqqk
         W+wLSZ9DQnX0uuHUWKgRMa1vPLx9eQMsgWY/ZscYkCz/ZatkmBx5zJW07DelHVcpDQuv
         zyHThnrFOe4C9qEee5FlgDYptgP9Pki0QcbNNDlzVWR3qFrVj+ktyLDKH2nTLkuBhIdX
         TE1A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743513539; x=1744118339;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=zMmEMEWdVmIruzzY6wmLLgf8ZzpH2/FIAZvu1Yd2zeQ=;
        b=fpQjRNKaDhA8GmDSSrWaeP0Vt6R8MkWZSz3+svaAq+SxUYJlAX0zBZfcgX32lVjpSU
         4IK7lUi2InCnL8sGxKF2KI2Q+Qad2oLgIb3HthhcjSAxQyQIpIxd54DGSg/nARHvQTZE
         2nJwhLJ930hwhELO+Zj/XL30iSlD2kSzqgVUJxCHpJtkYbvNpofWPWzZhwqZ+QGj4ysh
         tKSu1vsDF0Wgaw7Gufm9nszgtVALcbr1p8Zc+FjsmHRL6j8fmQDvhLfOfGhNCGJTJt5s
         +M4Hnr0mYqrnAsz3+9+Lpp/SUqxnqgbir5sFGL/scmvLgBrOcpGwQr80RfsTq+bZ83TY
         9x2Q==
X-Forwarded-Encrypted: i=1; AJvYcCVpL0GHSlx+HWdBqBAi/GXlkl0JsyetTRA0FQn8iN/UiMbfyNc3pxBjpVoax/SMjp/mspbb7iY/BGQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxGG9TRq1BMGm2SwGTJOQQCs+wFoPKH0K+6U56e6l+6WclZ4XoM
	yOZnhciIvkTc1D8t55fcKwA/MttxWtB7i2DRrK6GGq3hHvSbVj1TVBYxhaeQLQ==
X-Gm-Gg: ASbGnctG0q0bWxwPbyMmvjuAMEBHswy3TeIgLLtavsE4Tmz4fNIh/KVIaojd+8NzR5x
	jJwyq61ACzp6THp3lconK8sCIJCuOAhw8rUNJnWyRI9odXJWTOqY/+zUAqJJ4ngpUqz8sQG/cin
	w+gLpSSR8FyTdtSi4ZQubnuZX5k6/et0FUUtzZhNjpj+3Yq9M4lu7iIPwjxtXpni+lnkrHkPktN
	L7uWqCquZM0VswHiQZOiMsB2xNOe/sXzMNlAvjpJXLAeuF0ObqXJgfo0mI6yTU4pe6TRB9YK8P8
	iI8SxKx4RKVwszuImqtM5JtenE2eXBnAUq7X4Xt9yOpIyfLqx8UbyryaD9RJLfd5dD8PYC/X5ug
	0JmINwfC9t1a93A8VVqBWjEFqBOPXuQ==
X-Google-Smtp-Source: AGHT+IGLj05hEc00N9mMliVgZTaXvX0aPtfyeV8Lv8IoVr9e8UdbHbCgOJBrG0zSWIdPuVdANFOVmQ==
X-Received: by 2002:a05:600c:c15:b0:43c:fe90:1279 with SMTP id 5b1f17b1804b1-43ea7cc382amr26149375e9.21.1743513538877;
        Tue, 01 Apr 2025 06:18:58 -0700 (PDT)
Message-ID: <9fb343fe-8bbf-4af9-a204-46eef4bd2aac@suse.com>
Date: Tue, 1 Apr 2025 15:18:57 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 06/11] x86/efi: discard .text.header for PE binary
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20250401130840.72119-1-roger.pau@citrix.com>
 <20250401130840.72119-7-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: <20250401130840.72119-7-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 01.04.2025 15:08, Roger Pau Monne wrote:
> The multiboot headers are not consumed in the PE binary, hence discard them
> in the linker script when doing a PE build.
> 
> That removes some relocations that otherwise appear due to the usage of the
> start and __efi64_mb2_start symbols in the multiboot2 header.
> 
> No functional change intended.
> 
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>

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

> ---
> We could also place the multiboot header in it's own isolated section and
> skip such section for relocations generation in mkreloc, but it seems best
> to just remove the code if it's unused.

I agree. I'd like to mention that I recall people intending to try to make
xen.efi usable with an MB loader. Nothing ever came of that, so if anyone
still wanted to pursue that route, they'd need to undo / redo what you're
doing here.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 01 13:22:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 13:22:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.934305.1336045 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzbZa-0004dq-7z; Tue, 01 Apr 2025 13:22:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 934305.1336045; Tue, 01 Apr 2025 13:22: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 1tzbZa-0004dj-4s; Tue, 01 Apr 2025 13:22:34 +0000
Received: by outflank-mailman (input) for mailman id 934305;
 Tue, 01 Apr 2025 13:22:32 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=KZod=WT=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tzbZY-0004c8-Gs
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 13:22:32 +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 5dca5cfb-0efc-11f0-9ea7-5ba50f476ded;
 Tue, 01 Apr 2025 15:22:31 +0200 (CEST)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-43ce70f9afbso57742125e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 01 Apr 2025 06:22:31 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43d8314bbf1sm197189955e9.38.2025.04.01.06.22.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 01 Apr 2025 06:22: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: 5dca5cfb-0efc-11f0-9ea7-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1743513751; x=1744118551; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=5WUzqrA+LcYY/Vhg5mLvvAklr4Mj/wh4x1uWNh/e3+0=;
        b=XYqjn7cvTb9SkKxb9eoiY5JXMAPOlStQtkqLeQdFwdFxWvJPfGgyqbkJEvXpSt5RX5
         ZtxtsB5s4kSVsUIvTLU7RzTpXd1JSQzwZ+arJp75suC1unGutyJAvldvHqANoFP0Zz28
         6tievJ0BgRHWUfxkVGu7Lf+ni4VnCtm/XboAI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743513751; x=1744118551;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=5WUzqrA+LcYY/Vhg5mLvvAklr4Mj/wh4x1uWNh/e3+0=;
        b=MrBSWRqtvVxlr/W47nwseCnubnFv9rhqjQ72ublCScAVDaZ17BW7mrlsMHnbM5xNag
         Hoz3ZsXLiKqPn8k3U/y9scth0PULwT8R8sACvmAQ46pIhrj08qTo3VsaMAQNiVP4yOhu
         a0tb0xr9HMeSEEp1dNWP+Ro6IaVmD9BvKjisVr7OHX9h/zEkgexPSRXUTnVez2gwouwJ
         MfQMz6pnqcCSLJOHRT6bACDtCJvz1Ux3nHY6TpdrT3h/7DAvKIFJN1JI4aSkA4kGiEjE
         n6QVZJz9MGQbDoqpeHuSfB/NWTnJiTpcyYk8kLuq8PvPc6A3sBFnm4K63B7c4ZrtGwPr
         Q/QA==
X-Gm-Message-State: AOJu0YyeCES0/DQV9PqJztpOCeEifjT/duEDvOUY66O280ZLw78hBHK6
	MJKE20BaBH+je64bfKUx/3jTRztZVrhjLs9FEgbndsBOx4WWO6welSJPBc3cM0k=
X-Gm-Gg: ASbGncunGe1xK/H272yySILCnd7GtBUAiwwtPOFo1BsoUxH9pw4YKIhqfF9NW0qKjx1
	JGGR0moMGlDasQAILz+s444cNFyvD56qcDZi3qytNRd33c8ePvnE7osWYFyTbgFoL1dPrw6F5Sb
	ecHpkGkD/GVMlFN32Zs/krIl45gKtQpM4oi17heqEu+c5XCGs/PCunx/IO40nzxMzCpfUYUj/jk
	V/qya2o01bjag7xr4QFE2yKc4toe4mgJbErUYXiX4q94bwtyjXAOjyS0+K74HX/E6NxqDuqLzL0
	qKYYXftXpgVIM3Ls5Hj1TKO6Q23zTut7gkPwmqqvTBPX17N73eCghWO5uEwUyPmYacumPGJK+hq
	Rs415lJYeXA==
X-Google-Smtp-Source: AGHT+IF86HXuYi3czdDjUN/JDOlUKJoh/oHoEL3ugpvZufZw/xiyqmIdqvfq5hyNSww9wovFBU6Nkw==
X-Received: by 2002:a05:600c:5489:b0:43c:fda5:41e9 with SMTP id 5b1f17b1804b1-43dbc419540mr126131855e9.31.1743513751266;
        Tue, 01 Apr 2025 06:22:31 -0700 (PDT)
Message-ID: <fc21a6e6-90d2-4f1a-8032-516d6a371d8e@citrix.com>
Date: Tue, 1 Apr 2025 14:22:30 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 06/11] x86/efi: discard .text.header for PE binary
To: Jan Beulich <jbeulich@suse.com>, Roger Pau Monne <roger.pau@citrix.com>
Cc: xen-devel@lists.xenproject.org
References: <20250401130840.72119-1-roger.pau@citrix.com>
 <20250401130840.72119-7-roger.pau@citrix.com>
 <9fb343fe-8bbf-4af9-a204-46eef4bd2aac@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: <9fb343fe-8bbf-4af9-a204-46eef4bd2aac@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 01/04/2025 2:18 pm, Jan Beulich wrote:
> On 01.04.2025 15:08, Roger Pau Monne wrote:
>> The multiboot headers are not consumed in the PE binary, hence discard them
>> in the linker script when doing a PE build.
>>
>> That removes some relocations that otherwise appear due to the usage of the
>> start and __efi64_mb2_start symbols in the multiboot2 header.
>>
>> No functional change intended.
>>
>> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> Reviewed-by: Jan Beulich <jbeulich@suse.com>
>
>> ---
>> We could also place the multiboot header in it's own isolated section and
>> skip such section for relocations generation in mkreloc, but it seems best
>> to just remove the code if it's unused.
> I agree. I'd like to mention that I recall people intending to try to make
> xen.efi usable with an MB loader. Nothing ever came of that, so if anyone
> still wanted to pursue that route, they'd need to undo / redo what you're
> doing here.

It was Frediano, and for this same task (Host UEFI SecureBoot).

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Apr 01 13:25:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 13:25:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.934331.1336058 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzbcL-00068v-Kt; Tue, 01 Apr 2025 13:25:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 934331.1336058; Tue, 01 Apr 2025 13:25: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 1tzbcL-00068o-I9; Tue, 01 Apr 2025 13:25:25 +0000
Received: by outflank-mailman (input) for mailman id 934331;
 Tue, 01 Apr 2025 13:25: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=KZod=WT=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tzbcK-00068i-7F
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 13:25:24 +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 c368a62e-0efc-11f0-9ffb-bf95429c2676;
 Tue, 01 Apr 2025 15:25:22 +0200 (CEST)
Received: by mail-wr1-x433.google.com with SMTP id
 ffacd0b85a97d-391342fc1f6so4936511f8f.1
 for <xen-devel@lists.xenproject.org>; Tue, 01 Apr 2025 06:25:22 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43d8ff02e84sm155652855e9.32.2025.04.01.06.25.21
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 01 Apr 2025 06:25:21 -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: c368a62e-0efc-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1743513922; x=1744118722; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=VFMj127YW25n0oGy9qJUEugIqGXnAG5LIQf0LifWFt4=;
        b=FqOU6mBTxEUV/YIrBXlHlZmZ2A0i94cZs9hhavuyL9x+EQeOe/g4OEFVvo9eoyxje6
         T26mkmiuqZ10YwZVmoNf1F8R++nRYr74bhcvn+bk6UIq2tu01cyFyaccI6d1dL2bL2nh
         EPUNOSjMhb0sunP6sUUWpr/qcuaOaaeIqKOTs=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743513922; x=1744118722;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=VFMj127YW25n0oGy9qJUEugIqGXnAG5LIQf0LifWFt4=;
        b=vSXNzQXrNtBciqzYjzzRfcmE3Tn9KFkjpiMKw0ct9xIhqgY3SDUIhc8nB3fS9G6poF
         LGBP1CTsTr4mnFM+51OQfeoBsPgxtHc1lbCMsTYSUAAFAY0+s7hmldArlzN57PukHu8u
         1sscjtKC3x/SPzURrQW8GmCCEsMuiJ9CRdqU8G1dAw0CCMPXNCvrUfL5R1nJuSw5Nufa
         haKZZthjaXXgwsqle5wZwyroVGnmqgEodohBIMP9p0og3qbrjp42/nEi9ZPkxJgoUyfx
         t8abIdz4J6jvvAzD1yiOsVvrGobdhxQsSMe/ouU90hENlqfoWkS1tQFVu2c8lPyYMwWT
         wvaQ==
X-Forwarded-Encrypted: i=1; AJvYcCWGznOkC9XSmP2/NtfhKS7AJOgwLwVlaxGP6/Pxwp9VX2V0sYY1JAG/sYfvGgiD7DnFkfby3D3QV08=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx8o7jHGaKpMsWxH4Kfq3Qfyq6DmEKe9VQ3PRp7fa0SGOJchfx4
	plJca7PP3rSEQZIZGzmT7Y2KEOgvkEmO1hmV5K9am0coJDo5lsVbqr1MVMDP/7A=
X-Gm-Gg: ASbGncvGCppMSUtYg8WDQeBkusdCb+e6i1oPuOXCGKf1Janodjox2IJ8UJj6P4utNaQ
	WVIOOYFjIt0XND9oUjYwRKeDj23Fluq5P7EDDiEKyWWXV4+sLdB2746xy5P/r1TQExTfOMNrVOi
	hNK8RSVSmypCgfyEfsT+SfUSezK9/Lu220VNVjHcfV8QcUbqWzl7ueyVNHNNWQLGUM88CqQBMKG
	n9RLhJBrAHUwACAfe0+aKXr7P5c62TYR/LbSF59L+xon431BM2zDbSUqjP4YsKP731KFnx/vdgN
	qW1qGjoNZATw10k1R7jFEHLzLuHkJJTtOEuAhgQXhPRAvBmNMPXWCtXB+D81Fmp546uljGIxaxb
	4HooUlSRY0UmBS8G2OASw
X-Google-Smtp-Source: AGHT+IG360ggLaWG8FKCdyc/K4kBcyCk1bzcQW8J0PBqjcMH4nHrVKICd7xpMX96ld65TMwefDEyKw==
X-Received: by 2002:a05:6000:430c:b0:39c:2692:425a with SMTP id ffacd0b85a97d-39c26924316mr1651885f8f.6.1743513921744;
        Tue, 01 Apr 2025 06:25:21 -0700 (PDT)
Message-ID: <2ad947f4-3a04-4461-a6ec-203ec350de4b@citrix.com>
Date: Tue, 1 Apr 2025 14:25:20 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 01/11] automation/dockers: add to README how to rebuild
 all containers
To: Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
Cc: Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>
References: <20250401130840.72119-1-roger.pau@citrix.com>
 <20250401130840.72119-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: <20250401130840.72119-2-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 01/04/2025 2:08 pm, Roger Pau Monne wrote:
> Document in the README how to rebuild all containers.  This is helpful when
> populating a local docker registry for testing purposes.
>
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>

Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>

I'm working on extending Anthony's container-rebuild pipeline to do this
too, but that's not quite ready yet.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Apr 01 13:27:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 13:27:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.934342.1336069 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzbdz-0006eP-Vq; Tue, 01 Apr 2025 13:27:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 934342.1336069; Tue, 01 Apr 2025 13:27: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 1tzbdz-0006eI-Sp; Tue, 01 Apr 2025 13:27:07 +0000
Received: by outflank-mailman (input) for mailman id 934342;
 Tue, 01 Apr 2025 13: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=oF/L=WT=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1tzbdy-0006e9-QZ
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 13:27:06 +0000
Received: from mail-pj1-x102f.google.com (mail-pj1-x102f.google.com
 [2607:f8b0:4864:20::102f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0027a2ed-0efd-11f0-9ffb-bf95429c2676;
 Tue, 01 Apr 2025 15:27:05 +0200 (CEST)
Received: by mail-pj1-x102f.google.com with SMTP id
 98e67ed59e1d1-301d6cbbd5bso8893384a91.3
 for <xen-devel@lists.xenproject.org>; Tue, 01 Apr 2025 06:27:04 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 d9443c01a7336-2291eee0bfdsm88335955ad.72.2025.04.01.06.27.01
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 01 Apr 2025 06:27: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: 0027a2ed-0efd-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1743514023; x=1744118823; 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=u/P6zE2mL8Ng1bH7wNcqBTKLcot4sfQX+ZxLrcuajBU=;
        b=UgFMmLt9ZrrBd+wIXoWd6BDCAZr+yN+uIFum3BUhmoIkj9Cuyco2ZJnBbHDwli8Nab
         rCRyvANUMZ81yoCK0mf7BjdzPxHu88w5JC6x0AoX//fHZ49QAZ39gS8qdVh/LT9aPteD
         0CGf9YhtzT6akvIcz/GVg/apC1fH1rBOAy+1E=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743514023; x=1744118823;
        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=u/P6zE2mL8Ng1bH7wNcqBTKLcot4sfQX+ZxLrcuajBU=;
        b=ut4p6Lju/Im92r/RarZoiPT9s/3cP0zMKrbhkR9kIZn1rvfsrMMiheH5q1KSleVIIM
         oSk3ig9bk4xUo2dexLtnNyX/uvh3HeCeWZq2/mXSu9Zngzn/7ywUheExjygdZ2yi9Vji
         BV6V65Lb5DcNMBeKbs881PP34ZuYBqKxp45EM+QBa1F6wBwe0FpEsv9q3z/r/k2P1lhT
         Xv8MSfvPAADsPmH/tL1Ie5dLXBRooOb0JtiT1RGfMJOFoX9qW1NPRK0aEPR27YhLMyN3
         RN0dHF8QXikpbftjBEQ2g+BbTE/8rEbjxnJbnwSNVfpzLHLmizVaEHMb74s3EDyE1Nwy
         Q3Uw==
X-Forwarded-Encrypted: i=1; AJvYcCWOr7RnbY52CwTRrqPo80RZL84BvxVa0rAzTldFn4EeEOZ8xVvyI+LCx5TDHn1dTCrtBqzYQVa5A0o=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yyj5j1vOD2A8aomkf0J9HVVC6N/Y0hlIUtdHGqM0yowk68nKBoM
	zXadbyTbcidys8JdjalxdKmu0FFXPrmBzXtdeuHW31lPlz0cv66e2euRCulcnBE=
X-Gm-Gg: ASbGncuvYNUlKTg6OB4be/cfeKIn5LRU7l5te+mOYQCC2qirUzgjSO8+O/3TCVJucv7
	v984CET+LPcIZ0iwlhg8DdkYhnwXMgUP2NaYnZpAOGvEpfsPpNmErYT4GSA2psmPIoPOWuBvn51
	9xWlGJSOrk84ghfq4dPAusOmcXBbebFtfcKvwlpl6f+s+S2VVjgx+/3VtkUAZtg17koV/3Kpw5p
	ZYRP6FezCwqUursz8x1FjK6iO5DErQmqIcE+LuGvjFAlOpfbDGOCV0uM41jU4Cr4N9lQ/JxUvpP
	ZLvGekE5xfsgRIdzG+asUV05RVJo9WXDLd1X2cccgQGTxGwPgw==
X-Google-Smtp-Source: AGHT+IFz0phDLuDwLdRjon3b8HeLoAsC6aO+gfIyHRul27N+fvrvbn040xWYs3no5Q4Yrq/vOmgzJQ==
X-Received: by 2002:a17:90b:1f8b:b0:2ff:6608:78cd with SMTP id 98e67ed59e1d1-30531f928cdmr21437266a91.9.1743514023425;
        Tue, 01 Apr 2025 06:27:03 -0700 (PDT)
Date: Tue, 1 Apr 2025 15:26:58 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	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>,
	Shawn Anastasio <sanastasio@raptorengineering.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v2 00/11] x86/EFI: prevent write-execute sections
Message-ID: <Z-vpoh858ldjXok_@macbook.local>
References: <20250401130840.72119-1-roger.pau@citrix.com>
 <c686844c-4cb8-43d0-a762-7f93a30f9388@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <c686844c-4cb8-43d0-a762-7f93a30f9388@suse.com>

On Tue, Apr 01, 2025 at 03:13:52PM +0200, Jan Beulich wrote:
> On 01.04.2025 15:08, Roger Pau Monne wrote:
> > Hello,
> > 
> > The following series aim to remove the presence of any write and execute
> > section in the PE Xen image.  This is required to support the NX
> > compatible flag in the PE header.   By the end of the series the
> > resulting PE image has no relocations that apply to text sections, as
> > text sections are strictly mapped read-execute only.  Xen itself
> > attempting to apply relocations to text would result in page-faults.
> > 
> > A smoke test is added to Gitlab to ensure the PE NX support doesn't
> > regress.
> > 
> > Only patches 5 and 10 are carried over from v1, the rest are new.
> > 
> > Thanks, Roger.
> > 
> > Roger Pau Monne (11):
> >   automation/dockers: add to README how to rebuild all containers
> >   x86/mkreloc: fix obtaining PE image base address
> >   x86/mkreloc: use the string table to get names
> >   x86/mkreloc: print the linear address of relocations to read-only
> >     sections
> >   xen: remove -N from the linker command line
> >   x86/efi: discard .text.header for PE binary
> >   x86/efi: discard multiboot related entry code for PE binary
> >   x86/boot: place trampoline code in a non-execute section
> >   x86/efi: avoid a relocation in efi_arch_post_exit_boot()
> >   x86/efi: do not merge all .init sections
> >   automation/x86: add a xen.efi test with a strict NX OVMF build
> > 
> >  automation/build/README.md                   |  7 ++
> >  automation/build/fedora/41-x86_64.dockerfile |  5 ++
> >  automation/gitlab-ci/test.yaml               |  9 +++
> >  automation/scripts/qemu-smoke-x86-64-efi.sh  | 22 +++++-
> >  xen/arch/arm/Makefile                        |  6 +-
> >  xen/arch/ppc/Makefile                        |  6 +-
> >  xen/arch/riscv/Makefile                      |  6 +-
> >  xen/arch/x86/Makefile                        | 12 +--
> >  xen/arch/x86/boot/head.S                     |  3 +-
> >  xen/arch/x86/efi/efi-boot.h                  |  7 +-
> >  xen/arch/x86/efi/mkreloc.c                   | 77 +++++++++++++++++---
> >  xen/arch/x86/xen.lds.S                       | 20 +++--
> >  12 files changed, 138 insertions(+), 42 deletions(-)
> 
> From titles and diffstat (all Makefile changes being covered by patch 05)
> it looks like you still don't add passing --nxcompat to the linker. Is
> that intentionally left out here?

Hm, and I see I also failed to add (the already RB patch) "xen/build:
warn about RWX load segments".

nxcompat should be enabled by default I think?  I can of course make
it explicit by adding to the PE link command line.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Apr 01 13:29:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 13:29:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.934353.1336078 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzbgV-0007DR-BX; Tue, 01 Apr 2025 13:29:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 934353.1336078; Tue, 01 Apr 2025 13: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 1tzbgV-0007DK-8h; Tue, 01 Apr 2025 13:29:43 +0000
Received: by outflank-mailman (input) for mailman id 934353;
 Tue, 01 Apr 2025 13:29: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=neKF=WT=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1tzbgU-0007DA-H4
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 13:29:42 +0000
Received: from NAM12-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam12on2062d.outbound.protection.outlook.com
 [2a01:111:f403:200a::62d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5c28d615-0efd-11f0-9ffb-bf95429c2676;
 Tue, 01 Apr 2025 15:29:40 +0200 (CEST)
Received: from BL1PR13CA0116.namprd13.prod.outlook.com (2603:10b6:208:2b9::31)
 by CH1PPF4C9628624.namprd12.prod.outlook.com
 (2603:10b6:61f:fc00::60d) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.44; Tue, 1 Apr
 2025 13:29:34 +0000
Received: from BL6PEPF0001AB72.namprd02.prod.outlook.com
 (2603:10b6:208:2b9:cafe::f3) 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.8606.24 via Frontend Transport; Tue,
 1 Apr 2025 13:29:34 +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.8606.22 via Frontend Transport; Tue, 1 Apr 2025 13:29:34 +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, 1 Apr
 2025 08:29:34 -0500
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, 1 Apr
 2025 08:29:33 -0500
Received: from [172.29.45.113] (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, 1 Apr 2025 08:29:33 -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: 5c28d615-0efd-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=h0ZsoPe1Jl3BzsVrw7aqxBsiKiIVea8zYMevcABAN6yoFZ1bJd6LW1VPzvAlo1JMeLA1acW+3OOnZ02qLkQMOcsRxvb93vlOGzNS9RGRuIfs+Wcp+PeY6BkwPty1hHDmszywvP1yuyP04w35gDIlxwAe5eTV4zPdNYqCOmJ8mKk8xP0p2xzlM6ahPXRp+akt2Og8RWZn5mctbrlf3MqTgIFI7LuYkQeJeaCSRiXw12mOArsWeow5GqFvisklj8loxXgsklL/aOkTVO29Qm0H5w7TIe2hKZKZ6vFsd5D9ft5Ulzd88Km23GnPYSUfZEGD6QLysCggpCc6LoAnuxJA9w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=vLMzIdnhM/XKumo1BdHqwMW0a8QccBItyEYyTYz+sQk=;
 b=eVNov9neuAEKvB89N7wEP6EsSs98XcBtrmOm3U1eRmroodcBvLIn5B9Fg/dNGfJNsCREvxviz2S540t3mbs6uwGmRuH6tLxg7G422syplJGmqWQ+9eK23IN+1/JNQRAeUip9PJb9Zq2kgwhtVnjbUDOz4Yiuyb7g1bUGNviUlQit7+DkzewrZEZp15+pur4tiTm9nB6kNbjT4DcrLrhewdqfmyP64C/qNT3ZgFQT56OAnn4IAnsW/eIT1OSV+Bepoqze/Nrry2qNMXaMWYYw3BqMjfbI6Uk6L4hZVrv88QA/Fx87+qzBSs2u//5uhIYV4mSxvYM3W/S65WQq0aaKyg==
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=vLMzIdnhM/XKumo1BdHqwMW0a8QccBItyEYyTYz+sQk=;
 b=luoiqQ5D7iIqIGqcwBXtpODWlNbkVN25qL5YwzlNOHCdS7zo/WcJRafZf/dd6HGy/q8H8Bld61MsxDxNj4q3gM+h3ZdlpXpJeM0ooTO1xLUk4uI3Tm3GezVirlPqhOXnJbvz63diHAD5gWBx4QoSyUjH7aur4gz8mRsQ+p3gm88=
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: <1f685c7c-0b63-4051-ad6c-003b262c4315@amd.com>
Date: Tue, 1 Apr 2025 09:29:29 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 4/6] xen/arm: dom0less seed xenstore grant table entry
To: Jan Beulich <jbeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
	<julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, Michal Orzel
	<michal.orzel@amd.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>, <xen-devel@lists.xenproject.org>, Juergen Gross
	<jgross@suse.com>
References: <20250331214321.205331-1-jason.andryuk@amd.com>
 <20250331214321.205331-5-jason.andryuk@amd.com>
 <6765d129-66dc-48d9-aaac-2b973edfda80@suse.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <6765d129-66dc-48d9-aaac-2b973edfda80@suse.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: BL6PEPF0001AB72:EE_|CH1PPF4C9628624:EE_
X-MS-Office365-Filtering-Correlation-Id: a3a4a5ca-6f17-4dc4-dcff-08dd71213e02
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|376014|7416014|1800799024|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?TVJkVjZKVFN2U1pOY1pQVHNZM3B6UDI1VTVLcXNNdGNKN0tsMUlNQkEzeHY0?=
 =?utf-8?B?UmloaWZhYlNvVnYxOTh3TTFQYldSb2tpUGxDcGl5SWh4R3cwNWFabmpZZWVq?=
 =?utf-8?B?S2lDbDhWd1pTUHVnRXVGd2sxUCtZNHN1YUVFM1BBUHFuWFFMVkxFNHZRL09v?=
 =?utf-8?B?WTRlcklyYlE3SkJOTWhZMVM4d0FsMDlnK0I1SjVONk5BcFpaMElYWG15cTlY?=
 =?utf-8?B?ZXFHT1AwZEoyclpYUHdxKzF3Mi9JM3p1dEdZV3cxUFU3SmxGalZJZnFLOXZY?=
 =?utf-8?B?Vkk2a3VQTy9mU2xQdUJHNHhCUHN2QitHZUJCQ2N0ei91NDlYZllwT0RDYVZ0?=
 =?utf-8?B?Z2lGZHQyUm9CZEUwTW5ldi9IY3Nnd3U1Rk9CQmo2SDR6dEU2cVZiVGZNS253?=
 =?utf-8?B?ZWlWNWtGNUFJb3Joa25TWGdlbVZvcjI2ZWxzVzhmK2FqRnd0cUcxbW9BYlJ5?=
 =?utf-8?B?aE1JQU1Mc1JGQVBSdW40ZjVZT3lrU3dENkpkU05McldVdDR5N1p4OFZMNnRX?=
 =?utf-8?B?QTI3OGdXelN5V1BaMi95T1hyUGJnUXJPVzRQWnhuNkRScUNCczdtNEM5M2kw?=
 =?utf-8?B?THZrVExELyttNzZtMDhHV2Z1dXlxdDJSTGducW9QNmNwYk10dEt4SGZVWkNo?=
 =?utf-8?B?Y2VVZU1kUW1rUGMyYzY5Mmh2NEJEaGNyMDlrYXJkT3pScEVpY3p6ajZYR2h0?=
 =?utf-8?B?cjN0RFlwRnlFOGk5bE1mcm5BMTVDMTdsRmt2YWlqV0pYbjY0bzlzRVdGZXlR?=
 =?utf-8?B?akFyUXRjYlhlWlQ1Ymd2SHA1aUJ3cDBjYUJuVDFEaEF1M01aT09MNzNsVXVL?=
 =?utf-8?B?RmtJcTlpelpUdi9ZSUYxUVRTSnozaWNGQjgzSUpFOHBGVCt2UDRLSjc5ZWtS?=
 =?utf-8?B?VHp3c2tEbmV6SW8rUlRmVVZDSTU3TDIxK3lIbXZqU3JZTDNySzNXYTc1cGx6?=
 =?utf-8?B?VlAyWU1YM2FrbVFSMHFzaHA5NURvLzJ5b1hsTjV0K0lmVXpHZE4xTjRONDVk?=
 =?utf-8?B?czFKbytWOVBlMXVEcXlGSlVVanZBbE5WUW13U0RFYzFFNm9PcU9Jb2hXMG1m?=
 =?utf-8?B?NnRCRmZraGRwOXU4Z0Z4MW5yaGMxdWQ3RnVkU2JuZU1jYkVWcUk4UTFNdVpl?=
 =?utf-8?B?Wko3cy9tTE1ybGtaMFVCLzZUUG9wTklibFRHQVNhRDQ0SXhIZnZhTk5sY0lZ?=
 =?utf-8?B?M05EUTE5a2JIOHVBUkVrZFc3Uzd4ZnRVcVRCTVFnRlNudURlR3AyYVVYcXU0?=
 =?utf-8?B?Q2NVVVlqY0NzOG1RdGdIQncwZEpvQlFEVXpNRkVycDZnWGdRNlBhWTcwaVJv?=
 =?utf-8?B?UHZzQ2hzd0Fuc3NFTzdXQlRWSm80TGkxMENvOW0weURURVR4a0hEd1c0eW52?=
 =?utf-8?B?bzdDbUdGcDdCVlJFZW5UaWd1di9BM29PUk0xa2FQSThFNGxDaFc5eWQ2dzFa?=
 =?utf-8?B?SWZ5TG1pSnNoQzNmWWNUdlltUXpPOXdRME1oaXRlUktsdldEa2ltYmhWWXp6?=
 =?utf-8?B?ZmdpYVFYVjI0a3VsejZQemR1MU1mcExQU1c3Mkx1RzFWdnd0Q1JGQTc3aWV6?=
 =?utf-8?B?SVk2aFlRMEpRWHRwTUpxdWlQSFJ5M3ozWWRGb1JPRVZXUEFmMEtQRnpkTldW?=
 =?utf-8?B?blR1ZHBxcmhnVkdhbUFiRnphbFRJS0RmUnMvWWxmQU1ZazlFVkpxd0N1SFE1?=
 =?utf-8?B?NnNSaXd3UXltTFl0Umt2Sk11bmlMbWFadCtVaWU4b2dPVnFzU2JxY2FReDNj?=
 =?utf-8?B?UzFxRHhxYS9pcjdpcHlXVHNMY042T0lMUEFGeitXVjZObDI5QTdNNlYrVFk0?=
 =?utf-8?B?TDRqN01OZytmc1JJWDZVUWxOWVZQK1ZHRExCVkJZS2NLZ3JxMEFWTlM5V0hk?=
 =?utf-8?B?cHJYK3JzZzZZaGRsNDJWUXp4MzJuczRMYzhHZ1V1Q0o5WWhORTBxSG1kWkdZ?=
 =?utf-8?B?a0dTeSthQU5oUWlGdklJc3NFd042L05teWUxM2FuZ1Irb3VENzZ2VzVnL2RQ?=
 =?utf-8?Q?MpKRNEAtLUuDB+7wfhQykdeWVUEKLg=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)(82310400026)(376014)(7416014)(1800799024)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Apr 2025 13:29:34.4244
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: a3a4a5ca-6f17-4dc4-dcff-08dd71213e02
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: CH1PPF4C9628624

On 2025-04-01 08:16, Jan Beulich wrote:
> On 31.03.2025 23:43, Jason Andryuk wrote:
>> xenstored maps other domains' xenstore pages.  Currently this relies on
>> init-dom0less or xl to seed the grants from Dom0.  With split
>> hardware/control/xenstore domains, this is problematic since we don't
>> want the hardware domain to be able to map other domains' resources
>> without their permission.  Instead have the hypervisor seed the grant
>> table entry for every dom0less domain.  The grant is then accessible as
>> normal.
> 
> Yet aiui the original idea was to specifically not do this in the hypervisor.
> I agree it shouldn't be the hardware domain, but what's wrong with having the
> control domain do that? It is what is responsible for creating new domains as
> well. The question of where to do that when there's no control domain must
> also have been solved already (without me knowing the answer), as that's
> where init-dom0less must be running.

dom0less does not allow configuring a domU to have xenstore without 
using dom0 today.  This series changes the dependency to the xenstore 
domain.

I want to move away from relying on the control domain to set up 
xenstore connections.  Domain boot can achieve more parallelism if 
xenstore domain can independently configure its connections.  If 
xenstore connections need to wait until dom0/control userspace runs, 
that is a measurable delay.

 From the permission side, with a preseeded grant, and the event channel 
places in the xenstore_domain_interface page, a xenstore domain can 
connect and introduce existing domains when it starts up without needing 
additional permissions.

Generally, I'm looking at making xenstored perform more configuration on 
its own.  It doesn't matter for dom0, but it will help for 
dom0less/Hyperlaunch.  Seeding grants from the hypervisor is a small 
change, but it helps remove dependencies for xenstore.

>> This works with C xenstored.  OCaml xenstored does not use grants and
>> would fail to foreign map the page.
> 
>  From the sentence it's not clear whether this is unchanged behavior or
> a deliberate regression.

I was trying to highlight existing compatibility.  xenstored uses 
grants, so it can take advantage of the pre-seeded grant and therefore 
does not need privilege to map foreign pages.  OCaml does not use 
grants, so this seeding is irrelevant.  With a combined 
hardware|xenstore domain, C xenstored using grants works, but Ocaml does 
not.

>> --- a/xen/arch/arm/dom0less-build.c
>> +++ b/xen/arch/arm/dom0less-build.c
>> @@ -865,6 +865,10 @@ static void __init initialize_domU_xenstore(void)
>>           rc = alloc_xenstore_evtchn(d);
>>           if ( rc < 0 )
>>               panic("%pd: Failed to allocate xenstore_evtchn\n", d);
>> +
>> +        if ( gfn != ~0ULL )
> 
> Is this an odd open-coding of INVALID_GFN? And even if not - why ULL when
> "gfn" is unsigned long? The way you have it the condition will always be
> false on Arm32, if I'm not mistaken.

I'll have to double check that.  Thanks.

>> --- a/xen/common/grant_table.c
>> +++ b/xen/common/grant_table.c
>> @@ -4346,6 +4346,21 @@ static void gnttab_usage_print(struct domain *rd)
>>           printk("no active grant table entries\n");
>>   }
>>   
>> +#ifdef CONFIG_DOM0LESS_BOOT
>> +void __init gnttab_seed_entry(const struct domain *d, unsigned int idx,
>> +                              domid_t be_domid, uint64_t frame,
>> +                              unsigned int flags)
>> +{
>> +    const struct grant_table *gt = d->grant_table;
>> +
>> +    ASSERT(!d->creation_finished);
> 
> While I don't mind the assertion, it's a little funny to see such in an
> __init function.

This check was added in response to v1 comment.  Yes, I too considered 
just relying on __init, but the ASSERT explicitly checks the desired 
property holds.

>> +    ASSERT(gt->gt_version == 1);
>> +    shared_entry_v1(gt, idx).flags = flags;
> 
> Does this really need to be a function parameter? The sole caller passes
> a constant (GTF_permit_access).

I suppose it could be dropped.  The toolstack side passes flags, which I 
mirrored when writing this.

>> --- a/xen/include/xen/grant_table.h
>> +++ b/xen/include/xen/grant_table.h
>> @@ -45,6 +45,11 @@ void grant_table_destroy(
>>       struct domain *d);
>>   void grant_table_init_vcpu(struct vcpu *v);
>>   
>> +/* Seed a gnttab entry for Hyperlaunch/dom0less. */
>> +void __init gnttab_seed_entry(const struct domain *d, unsigned int idx,
> 
> No __init on declarations please. They have no effect (as long as the definition
> properly has the attribute) and hence are only at risk of going stale.

Oh, okay.  I thought they were necessary, but clear I am wrong.

Thanks,
Jason


From xen-devel-bounces@lists.xenproject.org Tue Apr 01 13:32:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 13:32:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.934367.1336089 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzbj9-00019i-Td; Tue, 01 Apr 2025 13:32:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 934367.1336089; Tue, 01 Apr 2025 13: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 1tzbj9-00019b-Ps; Tue, 01 Apr 2025 13:32:27 +0000
Received: by outflank-mailman (input) for mailman id 934367;
 Tue, 01 Apr 2025 13: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=oF/L=WT=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1tzbj8-00019V-IS
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 13:32:26 +0000
Received: from mail-ed1-x52b.google.com (mail-ed1-x52b.google.com
 [2a00:1450:4864:20::52b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bf32a040-0efd-11f0-9ffb-bf95429c2676;
 Tue, 01 Apr 2025 15:32:24 +0200 (CEST)
Received: by mail-ed1-x52b.google.com with SMTP id
 4fb4d7f45d1cf-5e5e8274a74so8951434a12.1
 for <xen-devel@lists.xenproject.org>; Tue, 01 Apr 2025 06:32:24 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 a640c23a62f3a-ac71927b12dsm779359466b.59.2025.04.01.06.32.23
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 01 Apr 2025 06:32: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: bf32a040-0efd-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1743514344; x=1744119144; 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=HkwcpJVk2cv3xdY0ODsqO7E+oi90S51LaKb2PT9NXn8=;
        b=DnBlwrtMrk+xClppGsMMqn76hXE9r5rJP4HycfXNqJEKd66UhD2x22648VP6XtK+il
         klB91VTtxqihg0SNs+jtLzDGB60ume161oakbFVJ7LjmMIKtkv9Ra9HSiP3nBbwRR2z9
         BGScJnqDXsMBtyzWHIx1eWoubwc62SR07iOV4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743514344; x=1744119144;
        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=HkwcpJVk2cv3xdY0ODsqO7E+oi90S51LaKb2PT9NXn8=;
        b=Xdv+nKIVtpegg0fZJ2MZP41YpYi5nNLvaRb75qGpXdp0QWP+XyzOfQKpDebSiS6bdm
         ynYaVaie9dvFSZpOApd2Al25uMrHw8rRe/xPWC26DS7+a9oHgLr+VzufjjlGWLDEd3mC
         3zmDYiYWjxeuWIlpXSYRQ+iE1M3okXOcUFoTza9W9atUQTF9Nugxo4j53QHsRrOXiF1Z
         Kn3+4vC4eX4rl6UNo2W63nNqpcQaANhiAWeITyJ/FfSNPywj5l1iI8cosF934TOHh50+
         f77fbddubkyvwOFZe5R6W3DoYXUpkQLEcoAx4p1w2ls0xScUGabTp3L9bEFln75p9NFg
         xv6A==
X-Forwarded-Encrypted: i=1; AJvYcCXghrn9FNTebhnPTrRdpbv43Osj7xvLKcp/4m1TnnKbaDY4TtBkO5m7Fg+q45kr1qCBRVzPS0biT8w=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyYyU6qyuoYan3ngAQafUL59H1Ivk3WuLd4h46MuJ7emqk2hkdh
	9KgzTkbIH6gV84Na7DplYKsExyPDzJGwYabGmVslk2EdMefdQ/7ntQEz3lSi0vo=
X-Gm-Gg: ASbGnctk116jH0Foel+prJfrlWdetJToOoChOcwJKGiFTN2RFYYnCj7ywJsNLB2tQA5
	k7IyyR7pv+TKa74TzyMoSlgHqInBtQ4/PIJ4AO4cPZPVubiFdfK+KhZICPiebEFYhYzJHAj9pn8
	D7us5W9embC+fOW3idN+Pa6DySfaDrW2jZe9MRFlogKVr6U1YhzhEa8z9KHhwZrFlxaItccS4GX
	/t+mnCB7wMpKREReTjxACHBsRXoYAEHOXQXawovR8YWL812S/2OlbDPIOAKMqn3MPl4M3740roR
	aVbmrVLG7XXyOFQwBAeFE7WFT6/7FPuGQltf/DnHPGnFoCUwiA==
X-Google-Smtp-Source: AGHT+IFRM0FfL/2J9e0VKkIZHxGwiD4TXSp6Qasycdu5tw/eRMz1BzxAwZ61a6jCznUCSzei3P05Ow==
X-Received: by 2002:a17:906:dc95:b0:ac2:9841:3085 with SMTP id a640c23a62f3a-ac738a557cdmr1207808366b.30.1743514344082;
        Tue, 01 Apr 2025 06:32:24 -0700 (PDT)
Date: Tue, 1 Apr 2025 15:32:22 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: dmkhn@proton.me, xen-devel@lists.xenproject.org,
	andrew.cooper3@citrix.com, anthony.perard@vates.tech,
	julien@xen.org, michal.orzel@amd.com, sstabellini@kernel.org,
	dmukhin@ford.com
Subject: Re: [PATCH v1] x86/domain: revisit logging in arch_domain_create()
Message-ID: <Z-vq5nefN-QFg74I@macbook.local>
References: <20250331213406.422725-1-dmukhin@ford.com>
 <Z-uO4X_mk8QycVVe@macbook.local>
 <e87e77ea-0d5b-4fca-abe9-abbb0688ca28@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <e87e77ea-0d5b-4fca-abe9-abbb0688ca28@suse.com>

On Tue, Apr 01, 2025 at 09:51:53AM +0200, Jan Beulich wrote:
> On 01.04.2025 08:59, Roger Pau Monné wrote:
> > On Mon, Mar 31, 2025 at 09:34:24PM +0000, dmkhn@proton.me wrote:
> >> --- a/xen/arch/x86/domain.c
> >> +++ b/xen/arch/x86/domain.c
> >> @@ -798,13 +798,12 @@ int arch_domain_create(struct domain *d,
> >>      {
> >>          if ( !opt_allow_unsafe )
> >>          {
> >> -            printk(XENLOG_G_ERR "Xen does not allow DomU creation on this CPU"
> >> -                   " for security reasons.\n");
> >> +            printk(XENLOG_G_ERR "%pd: Xen does not allow DomU creation on this CPU"
> >> +                   " for security reasons.\n", d);
> > 
> > Since you are already touching this, I would switch to gprintk, and
> > avoid splitting the lines:
> > 
> >             gprintk(XENLOG_ERR,
> >                     "%pd: Xen does not allow DomU creation on this CPU for security reasons.\n",
> >                     d);
> > 
> > Same for the other messages below.
> 
> IOW you see value in also logging current->domain?

I always forget that gprintk also logs current->domain, my suggestion
was so that XENLOG_ERR instead of XENLOG_G_ERR was used, as it's more
compact.

I think I withdraw my suggestion, there's likely very little help from
printing current->domain in this context.  It's either the IDLE domain
for initial domain build, or the control domain otherwise.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Apr 01 13:49:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 13:49:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.934390.1336099 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzbzj-00068S-8Z; Tue, 01 Apr 2025 13:49:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 934390.1336099; Tue, 01 Apr 2025 13:49:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzbzj-00068L-5r; Tue, 01 Apr 2025 13:49:35 +0000
Received: by outflank-mailman (input) for mailman id 934390;
 Tue, 01 Apr 2025 13:49: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=KZod=WT=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tzbzh-00068F-O2
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 13:49:33 +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 240a45b5-0f00-11f0-9ea7-5ba50f476ded;
 Tue, 01 Apr 2025 15:49:32 +0200 (CEST)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-43d04dc73b7so62016505e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 01 Apr 2025 06:49:32 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43d900013besm158220585e9.38.2025.04.01.06.49.31
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 01 Apr 2025 06:49:31 -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: 240a45b5-0f00-11f0-9ea7-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1743515372; x=1744120172; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=934f/DsVR2RZXg9cTFXimx5/9vVGZ8O6IYrjxAnGHlA=;
        b=Qk8N0LNLZLR5e6V/6D8n3c1EjOOlKrE6yvnHv+JiUtLovO9kDYvJAM9URDl9Nxfjsg
         DDdTzXDjuMqJfj6iq1IzN5y+DPDvEmJO7033I7oAF0jaKQxgfBDTOWB1owjMKGe+QgSx
         EhixJQrl7JG78GqM8nVj4S1+52S7cEt9H71W0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743515372; x=1744120172;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=934f/DsVR2RZXg9cTFXimx5/9vVGZ8O6IYrjxAnGHlA=;
        b=wWagbeiT9lLi0CGD7xv7FEkz3YdN6Yhng+OC/LXIhhSPxxdvn5H3dyl1e2kyIdE0jj
         3VVB4lKeauBKFN72kILs42a1TbfDDH66dhs1DctO/6np+1LSnvLWXW0cAiQy3n9ZUv46
         VQPexF1MmPPoLC/L2QOc1i+yeeud3IbN0XXEs9zfklDbjBHxTFHWhREGWID8UcsO6FCn
         1UnsAhWFZxu81VFpiIUH3gZcg6lKBDflsChfea8pF0hDNIwJltpV7hh+3arNwQxXFB+Y
         ea1qeBJFHr/g0mQ45jpf2mvPvVMCMo3q+BE5P38/6CaooFgo/BHh+0jpYflNbal9Nmx1
         da2A==
X-Forwarded-Encrypted: i=1; AJvYcCUUlB0rNhvIjqUqR26N0K2ZK9vOjfmRgCrsuHNn52eYl8sKmQQ6gIOSuKYj41kzPmAqBeml+iGdqcQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzE5xzZ9Uny1GYyKEsvZnq6oghkwuS1ZmRNlMFM1ycYZetbIBzh
	8oCzgxYJZDRIpJBNLEQrJK4rPKz0sokQBBElR/3s0KPqG+qz117BuvbMBwThsAM=
X-Gm-Gg: ASbGncui6DXsu82/QFJvE56Z96NNrF43c8bbhLcfJrpLyKmu6Bj5QdeiDohVRSexRiu
	xE0PWtZNSs1h/243ju/44o1tDSV9B51Szz1oRS3WUEc6rOaIRWD6Vx/6mBc0HKadLCu8rNVxuhm
	/ZqXZFVv1tlZfH8CeKZcowPP7p6P9EsPyPE9UCTEMU5rCfq17y/wXDgPrN3BcuaY4ZGmJIhQCqv
	J6ltuV+MTukhdGuwNbzMJL9bri/x2hnGCzTTuvMeCSmN3gErh/nN8Z7nh+l/fUfL0Wk3wo1qdy4
	yHvCjuwDSPB9CcrCgODhwT3cOPkVCdx8fVS3N0dGheqhG/BobVRLlG84QqOAB9yhizEhrFaI1X9
	YoCLVk+0Khw==
X-Google-Smtp-Source: AGHT+IGiuPEay/hUrF2L2v/AAQ4KTbNqUAx8g+/h5+2YH5OQij6UIcPoFh6cGdA6QpWQROsokAxJUA==
X-Received: by 2002:a05:600c:3b9d:b0:43c:ebc4:36a5 with SMTP id 5b1f17b1804b1-43db6222078mr97141745e9.7.1743515372269;
        Tue, 01 Apr 2025 06:49:32 -0700 (PDT)
Message-ID: <3fd56964-918a-49f7-a0fe-a1c6b8633af6@citrix.com>
Date: Tue, 1 Apr 2025 14:49:30 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 08/11] x86/boot: place trampoline code in a non-execute
 section
To: Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>
References: <20250401130840.72119-1-roger.pau@citrix.com>
 <20250401130840.72119-9-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: <20250401130840.72119-9-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 01/04/2025 2:08 pm, Roger Pau Monne wrote:
> The trampoline code is never executed in the position placed by the
> loader.  It's first copied to the low 1MB, and always executed from
> there.
>
> Move the trampoline code from being in .init.text section into
> .init.data, so it's not in an executable section.  This allows applying
> the relocations safely against a non-executable (and thus non-read only)
> section, and then copy the relocated trampoline to the low 1MB.  Note
> that the trampoline code is placed on an .init section, so zapped after
> boot has finished.
>
> No functional change intended.
>
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> ---
> An alternative approach is to apply the relocations after having copied the
> trampoline to the low 1MB, but that still generates relocations in mkreloc,
> which is not helpful for the goal of having no relocations applied to
> read-execute code sections.  This approach however places code in a data
> section, which might cause issues when debugging it.

I, probably most of all, spend a reasonable amount of time disassembling
the trampoline. I really would prefer to keep it in an executable section.

What are the options with relocations?  Can't we simply drop any in the
trampoline region?

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Apr 01 13:58:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 13:58:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.934403.1336108 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzc8H-00014x-VT; Tue, 01 Apr 2025 13:58:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 934403.1336108; Tue, 01 Apr 2025 13:58: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 1tzc8H-00014q-Sy; Tue, 01 Apr 2025 13:58:25 +0000
Received: by outflank-mailman (input) for mailman id 934403;
 Tue, 01 Apr 2025 13:58: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=WxAi=WT=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tzc8G-00014k-Pg
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 13:58:24 +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 6023f332-0f01-11f0-9ea7-5ba50f476ded;
 Tue, 01 Apr 2025 15:58:23 +0200 (CEST)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-4394036c0efso37831505e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 01 Apr 2025 06:58:23 -0700 (PDT)
Received: from [10.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-43d8fba3b13sm162074955e9.3.2025.04.01.06.58.21
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 01 Apr 2025 06:58:22 -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: 6023f332-0f01-11f0-9ea7-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743515903; x=1744120703; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=xagmlVaVQGeaP1tbXZzkvoh+Y/8fLOW6OUuV1MsP6oY=;
        b=CBTMbmqH/25t6hfrXLyWYW/WDHRQ8JayM1mElOe04wZRVcfTVButbSOaEI2Pyq3uMS
         hVjvjky0dpi9AivkoZlpO1KBWQjhcm/1Znnpy+tD32VXbSfsrSn5IIr7/jd04H25qp+f
         6jzG7VBGRB0T9puroE9P5VX89b6Ee96W6l0/oyDj2RIsERpCurgq1Lv5rbtVq8/L7LHM
         +w7ts+sEiaCcufjzvFj/jJo14ICLVS70qFZxtKCbA+fsHnPzyM/tcAUcpkLVV0pUE3Gh
         BF3tjkolD4a95wMm7eqEE8TXQjD0VXKKZih93AWiEeOawRpkwGUGgX2NAsH2GpPFpoT5
         lHlQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743515903; x=1744120703;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=xagmlVaVQGeaP1tbXZzkvoh+Y/8fLOW6OUuV1MsP6oY=;
        b=einjPegVmsppddX+tYQO6y0xpbNUfUtyiugHkwCLvI1NdXacERstROkQ4wEu2dqBnQ
         M2zZQjmXqnAJVEOM9AitP1guMD/HYU25HEezMoKrIDEBJjVdvMXMmMLcSR4xE8fyoCQV
         q02UwDD1Ji72huFkCBVi0oKkt/VQhAv4q+YnSWE8nZ/ynSvnir5ms6sXK2Z2OJZT/3YS
         G5s10r/Mhnr+1VvmX95xx7oBRq53AoB1cOKdNv1wPLZMmRzsRIKBKz42UHfIn7MtJqIL
         FO5JIxr65H28VNJOJzsMsKqvjJhjEjwUEWSfZqj9CD4SGIR0JTkKnyKMKa5UCTHnHQuB
         pb7w==
X-Forwarded-Encrypted: i=1; AJvYcCVOIUMseTWMqd4O19S1+VrNbQfFjTwuGd19RmlI4wV0yop++ugct234TlZxYRZKhlXdNPqslYgTn2g=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz5H42i5JSiMsyX/utGhisXlaOkY9e0kFCHhdiUVIlwTqH+a22Y
	XaS/jMQaN/Oq/cqqjT3jQ9SIzX1gqlwx7tcnWLURhOirbhOVpgrw6qF6Nfq8hQ==
X-Gm-Gg: ASbGncuX/JgmiX9C63FRm9FNF9gU95SlmqVYl2Pd4r7LV/C5nrZd64xx5h6S++pP8vz
	xVh5snyvvU4csZsnnNBbd6Edm3QCSwkOrhiSeNmPnGK8BA1k2mt8Z5p2OHcQqDNgYw6rpKRnJS/
	90i9DNLofw/E1OzRR+vAeZ129zPmwz9RtwJaZrw0vEWIWvipMUN28+xvtNiJK6q8Atjtnfa5DTi
	aaC5Y8NJzUB3uduMBR3+BREfQYheE8uOq1xoOko73H8TFJLoSOQIw0PhUz4zzUYug+gJrsN4Z8d
	CzqAubXaiwfscuXBbS9rkWOH7UbpxcULOp+7/NIgO//xtEoEDh4XRI/V2Ovrz3YHTG4/JLI6Acz
	sIajraO1O1mGljKr232Zc9MZpIWtdFsEk772LhGCI
X-Google-Smtp-Source: AGHT+IGo3eSAgqiQ0OtjCLncy/UAlaDfaK1VWu71bChMENCAVL46y1M+ChhZAfM1TWwM2UgtUwNW0A==
X-Received: by 2002:a05:600c:35c2:b0:43c:f8fc:f697 with SMTP id 5b1f17b1804b1-43db61d0c5fmr122462395e9.9.1743515902567;
        Tue, 01 Apr 2025 06:58:22 -0700 (PDT)
Message-ID: <137124c0-854f-4c31-b907-aecdcf9f5eb6@suse.com>
Date: Tue, 1 Apr 2025 15:58:20 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 00/11] x86/EFI: prevent write-execute sections
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, 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>,
 Shawn Anastasio <sanastasio@raptorengineering.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 xen-devel@lists.xenproject.org
References: <20250401130840.72119-1-roger.pau@citrix.com>
 <c686844c-4cb8-43d0-a762-7f93a30f9388@suse.com>
 <Z-vpoh858ldjXok_@macbook.local>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <Z-vpoh858ldjXok_@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 01.04.2025 15:26, Roger Pau Monné wrote:
> On Tue, Apr 01, 2025 at 03:13:52PM +0200, Jan Beulich wrote:
>> On 01.04.2025 15:08, Roger Pau Monne wrote:
>>> Hello,
>>>
>>> The following series aim to remove the presence of any write and execute
>>> section in the PE Xen image.  This is required to support the NX
>>> compatible flag in the PE header.   By the end of the series the
>>> resulting PE image has no relocations that apply to text sections, as
>>> text sections are strictly mapped read-execute only.  Xen itself
>>> attempting to apply relocations to text would result in page-faults.
>>>
>>> A smoke test is added to Gitlab to ensure the PE NX support doesn't
>>> regress.
>>>
>>> Only patches 5 and 10 are carried over from v1, the rest are new.
>>>
>>> Thanks, Roger.
>>>
>>> Roger Pau Monne (11):
>>>   automation/dockers: add to README how to rebuild all containers
>>>   x86/mkreloc: fix obtaining PE image base address
>>>   x86/mkreloc: use the string table to get names
>>>   x86/mkreloc: print the linear address of relocations to read-only
>>>     sections
>>>   xen: remove -N from the linker command line
>>>   x86/efi: discard .text.header for PE binary
>>>   x86/efi: discard multiboot related entry code for PE binary
>>>   x86/boot: place trampoline code in a non-execute section
>>>   x86/efi: avoid a relocation in efi_arch_post_exit_boot()
>>>   x86/efi: do not merge all .init sections
>>>   automation/x86: add a xen.efi test with a strict NX OVMF build
>>>
>>>  automation/build/README.md                   |  7 ++
>>>  automation/build/fedora/41-x86_64.dockerfile |  5 ++
>>>  automation/gitlab-ci/test.yaml               |  9 +++
>>>  automation/scripts/qemu-smoke-x86-64-efi.sh  | 22 +++++-
>>>  xen/arch/arm/Makefile                        |  6 +-
>>>  xen/arch/ppc/Makefile                        |  6 +-
>>>  xen/arch/riscv/Makefile                      |  6 +-
>>>  xen/arch/x86/Makefile                        | 12 +--
>>>  xen/arch/x86/boot/head.S                     |  3 +-
>>>  xen/arch/x86/efi/efi-boot.h                  |  7 +-
>>>  xen/arch/x86/efi/mkreloc.c                   | 77 +++++++++++++++++---
>>>  xen/arch/x86/xen.lds.S                       | 20 +++--
>>>  12 files changed, 138 insertions(+), 42 deletions(-)
>>
>> From titles and diffstat (all Makefile changes being covered by patch 05)
>> it looks like you still don't add passing --nxcompat to the linker. Is
>> that intentionally left out here?
> 
> Hm, and I see I also failed to add (the already RB patch) "xen/build:
> warn about RWX load segments".
> 
> nxcompat should be enabled by default I think?  I can of course make
> it explicit by adding to the PE link command line.

It's not always the default for GNU ld:

#define DEFAULT_DLL_CHARACTERISTICS	(${cygwin_behavior} ? 0 : \
					   IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE \
					 | IMAGE_DLL_CHARACTERISTICS_HIGH_ENTROPY_VA \
  					 | IMAGE_DLL_CHARACTERISTICS_NX_COMPAT)

And even that I'm not sure is entirely right. I think it goes from the assumption
that everything that isn't Cygwin is MinGW. EFI, however, is yet something else.
I'm further unconvinced that for any environment the linker may reasonably set
this bit without the programmer's consent. But of course that's also a matter of
how things are documented - there's a command line option after all to turn off
the flag.

Plus there's yet another concern I have. Historical knowledge (i.e. may no longer
be true) of mine is that the DLL characteristics field is applicable only for
binaries which have the IMAGE_FILE_DLL flag set in the respective header field.
EFI binaries aren't libraries, though. Otoh GNU ld, judging from source code,
apparently doesn't set the flag even for DLLs (or I'm simply failing to spot the
respective use of IMAGE_FILE_DLL). Whereas going from observations I find the bit
is set in DLLs of the Cygwin installation I have sitting around somewhere. (IOW -
I'm confused.)

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 01 14:01:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 14:01:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.934416.1336119 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzcAy-0002uA-D2; Tue, 01 Apr 2025 14:01:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 934416.1336119; Tue, 01 Apr 2025 14:01:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzcAy-0002u3-A1; Tue, 01 Apr 2025 14:01:12 +0000
Received: by outflank-mailman (input) for mailman id 934416;
 Tue, 01 Apr 2025 14:01:11 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=KZod=WT=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tzcAw-0002nP-VA
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 14:01:10 +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 c3388cfa-0f01-11f0-9ffb-bf95429c2676;
 Tue, 01 Apr 2025 16:01:09 +0200 (CEST)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-43cf58eea0fso27306945e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 01 Apr 2025 07:01:09 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43d82e6a63esm201707145e9.11.2025.04.01.07.01.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 01 Apr 2025 07:01: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: c3388cfa-0f01-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1743516069; x=1744120869; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=lrrWJ7Ow9YuXzKrQqiGgqhvXj8P+5frEc/U+vRyIL4Q=;
        b=D9PfI4xJVnAjYWxI4dWN6/Yandu7yFacDfa1KqovTEgR3QHmuYj+RnNXTCxu0pF505
         kovvfmzIWPe8dK/dm/M2/ZmpdYzlH8u9q1EUeK7pcf75/xWAKoYjxvnNNZqYv9eVM4gY
         ZWqi6wT84UGCAbdpRtJ8eabZid6kwtTfrFnOM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743516069; x=1744120869;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=lrrWJ7Ow9YuXzKrQqiGgqhvXj8P+5frEc/U+vRyIL4Q=;
        b=PAsGZNKXIjyskDBkn3Wq4jUAOdTHB7gtyWMgiR0GH/lCfnS0Qo1Oumj1gy0SfoIN9j
         ShyeK00FGnIgzgeY5sdgzH76Y8aKWFpa3R4jIe/DNcs7qg/gTwI6u2dOhcXUbRuyzr6k
         EKZGHXOL5lVFb9htt8C2t08Sxm+UnVtBNEAxJFL5HWTirk1XEJK/7yI+MBndIOiKdp8i
         Bl8fkhrTdZ+f34Q2nTlVkXLatuEGe6FSrWT3kjZKMlzgNnMsqKaiUk66xGbkYqWLL/C8
         c0a41XvcqchwT5ry1VvXsenHWl+8e4a0ibs8Qck8g+mnjuz85gXT51ztltwQ08AyWiR5
         CJjg==
X-Forwarded-Encrypted: i=1; AJvYcCXKT9LnBmkjsJS1024Wl1Aj8QnTQ1Jpg1nuparEU+HAe6YTBJFT9hlBfMTsStKwEiD/nLlIOGP4H8U=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyM65a7XxPd+i8ojh4KUDXXXbqg76jf3exhabSuiNyahA43JiLZ
	VSnbC7k2/8KnEVNGekYtrknR8lUOOVQLFBmu4ZufK0RoMsmVNjITeb0eQ38mInYUvp8jhD7zDTF
	gKY4=
X-Gm-Gg: ASbGncvD0Oh2AOlhLc6FDPpPT7eFbddxDsZ5R7rFh/5jvbqFwd74OMf9L0mjiNIXtNs
	FJUqvCJ0FG5pKHex3UNdUm4WJZ9jfgzs1qZbn+4q2pT9bBsdihD56OFgcQVI+X4fB7Pj227GIM1
	yScAHwek/Ay+bFZXQEKxz0gb/w4nkIOkLkVZaHGkmY5DGcXUGjgO4giZ3kmU0c6y0MqBivzqDcE
	AduzP5PWohqxHclJomYF+Tk0WUuzuoZlHpq9ECklfqYixL+uEjgpCWRPo1dDmFvJkge27R8zyqh
	DvX35Qojc8EYV6qh/VFA21u0Q8BCkqh7RecdAzivAqjPCorqGF42Obw/5AMX9BkW0TSgm2YjkwS
	Z58u3D6YdSa/w1WLu5DCP
X-Google-Smtp-Source: AGHT+IHgaWkHQAbX2/CRzog3AHjatdUWK12m8N/8HcS5CLWf85rq5L39Hmo/j50WGw3TxC/l+llnnw==
X-Received: by 2002:a05:600c:3b0d:b0:43c:e478:889 with SMTP id 5b1f17b1804b1-43ea7bf5717mr36257345e9.0.1743516068473;
        Tue, 01 Apr 2025 07:01:08 -0700 (PDT)
Message-ID: <e4232951-8e26-44d4-9e44-306fc0336208@citrix.com>
Date: Tue, 1 Apr 2025 15:01:07 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 02/11] x86/mkreloc: fix obtaining PE image base address
To: Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, Jan Beulich <jbeulich@suse.com>
References: <20250401130840.72119-1-roger.pau@citrix.com>
 <20250401130840.72119-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: <20250401130840.72119-3-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 01/04/2025 2:08 pm, Roger Pau Monne wrote:
> The base address is in the pe32_opt_hdr, not after it.
>
> Previous to commit f7f42accbbbb the base was read standalone (as the first

This is slightly awkward grammar. "Prior to commit" is the more normal
phrasing.

> field of pe32_opt_hdr).  However with the addition of reading the full
> contents of pe32_opt_hdr, such read will also fetch the base.  The current
> attempt to read the base after pe32_opt_hdr is bogus, and could only work
> if the file cursor is repositioned using lseek(), but there's no need for
> that as the data is already fetched in pe32_opt_hdr.
>
> Fixes: f7f42accbbbb ('x86/efi: Use generic PE/COFF structures')
> 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 Tue Apr 01 14:05:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 14:05:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.934430.1336128 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzcFF-0004ys-0b; Tue, 01 Apr 2025 14:05:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 934430.1336128; Tue, 01 Apr 2025 14:05: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 1tzcFE-0004yl-Ty; Tue, 01 Apr 2025 14:05:36 +0000
Received: by outflank-mailman (input) for mailman id 934430;
 Tue, 01 Apr 2025 14: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=WxAi=WT=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tzcFD-0004yf-SZ
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 14:05:35 +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 5f8a5e47-0f02-11f0-9ffb-bf95429c2676;
 Tue, 01 Apr 2025 16:05:31 +0200 (CEST)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-39c0e0bc733so2979200f8f.1
 for <xen-devel@lists.xenproject.org>; Tue, 01 Apr 2025 07:05:31 -0700 (PDT)
Received: from [10.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-39c0b79e304sm14260250f8f.73.2025.04.01.07.05.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 01 Apr 2025 07:05: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: 5f8a5e47-0f02-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743516331; x=1744121131; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=BUzySOy7m+et2yXPBeM9fNADXUGNyYzKby3fECCG3C8=;
        b=Viki2S41D6ZAGgnkeZoZ3lYs3PmFlrvsmWZFtliF7zHY6mEmKp267anwY5gjwlhSpC
         iqjqTn5kA6QP3VWhOK8w9gU3CYPtUcdKqkCYW3PAUoaVrUbybVeiAWQ3PI9nkHPmacpT
         7ebBQeX8stZEZKkvgjYuflMygQUJDEO4PUzetNR3jwAmmo5s/AFsTn/chCAUH/qZ4mA0
         EfJeyRKKTgdaM7J84+82nZcmbWHSemcyIJJWGa67mlE9+zRjTvvcfV85L5Ysctce9itU
         09G8QBeH4odf9ouX/qpf8+AEC8RWo65NIy6ZzfBqCHsIJcQeQbtEsYKPwgcMs8RX9zNN
         DGLQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743516331; x=1744121131;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=BUzySOy7m+et2yXPBeM9fNADXUGNyYzKby3fECCG3C8=;
        b=g5z9WPPyFYXc3E4zjoTUHsA2S+O9j9+UuAgwzH8shphmpxSm5swhEeIOgE8+1tTfAw
         ftzbzvfkvyZQ5O2XG+5h2Ff3mN+dFMLwoKOJRvbOthHB1sW69BdbWkWgf4HyrbMC4QiE
         izuJBhLVgr7LF0mOAtSAlsSYlAK45OpldjgMyjm4FTQgALF9TqK7Xluj5f2BASpTrbPc
         LZtOzcgztttRPofP+r0xhcnid9lan5agq8O1MjYYe4d1reljBDtonDzYKRwgfXZGAKiK
         /PpNq77b/4fPePTXPgNHhAPYOKpPQ/LDDS2Uv7NX7QInEIckdgiFVWlqtVsa7g+fIvDJ
         kQFA==
X-Forwarded-Encrypted: i=1; AJvYcCUB+7m8RSCSfpc/8zr0c1fKhHIdymTla28k4NYkjEoXpQU6wcPU4XzMCOucoQmIDU7TkenSyOoEUmI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwbSydwAWVT5YVk2L2Lzh5Izmu5OYzifiYlZSjPIIHW+c1AT8Xq
	6XykQiu7HVScuqwfcYGPljrIkStjWOElOoXFAABMh0/0DZ8HtGsJjGBTG+iGuA==
X-Gm-Gg: ASbGncsyIBZp8uTw+2LaKN72TwLNOyztStx+YhK6WjWScfpDq/29KepaZAiUeqzOCWD
	H54MGDckbg96NCp7Hu7HcvUYQS02MDn20/Lp01fN2c0/whnHC5DcpEup2AhiEn8SOtsiNCgpRco
	5w3DbhLUAfaD1mrfmFuqEt6OQOFAOcoZcMSBS4dqPzwNoELt/0R8vBp/r6FH+JYe0cwR9Ow3LtW
	d5vI2K4jPyQjA9tmQUMAdJbNgm/yRTKmLZX2d+ViM2RnhwiDv9Rzc10RYz0YzVO7ML6QCjj8d//
	INQQHIHf2glh9+56Ixer7XfZluaDBsTJ4pKLLdEiqcPKspj16Y6dn1ro5RySNO1MzbcddZ4HYUE
	Wjz/UBAyON2J46naJBoRcRBmMcCpz5Q==
X-Google-Smtp-Source: AGHT+IFzAtdrL5Dho1GHF1P0dFpQnd4gUv9LOpUidOEBuMnccDIx6joOj3/TCh66Iq6+LxpYrRxKJQ==
X-Received: by 2002:a05:6000:2b03:b0:38c:2745:2df3 with SMTP id ffacd0b85a97d-39c12118f9fmr7536606f8f.37.1743516331165;
        Tue, 01 Apr 2025 07:05:31 -0700 (PDT)
Message-ID: <921df02b-2a6f-4823-b118-d2683eaadb7d@suse.com>
Date: Tue, 1 Apr 2025 16:05:29 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 4/6] xen/arm: dom0less seed xenstore grant table entry
To: Jason Andryuk <jason.andryuk@amd.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org, Juergen Gross <jgross@suse.com>
References: <20250331214321.205331-1-jason.andryuk@amd.com>
 <20250331214321.205331-5-jason.andryuk@amd.com>
 <6765d129-66dc-48d9-aaac-2b973edfda80@suse.com>
 <1f685c7c-0b63-4051-ad6c-003b262c4315@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: <1f685c7c-0b63-4051-ad6c-003b262c4315@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 01.04.2025 15:29, Jason Andryuk wrote:
> On 2025-04-01 08:16, Jan Beulich wrote:
>> On 31.03.2025 23:43, Jason Andryuk wrote:
>>> This works with C xenstored.  OCaml xenstored does not use grants and
>>> would fail to foreign map the page.
>>
>>  From the sentence it's not clear whether this is unchanged behavior or
>> a deliberate regression.
> 
> I was trying to highlight existing compatibility.  xenstored uses 
> grants, so it can take advantage of the pre-seeded grant and therefore 
> does not need privilege to map foreign pages.  OCaml does not use 
> grants, so this seeding is irrelevant.  With a combined 
> hardware|xenstore domain, C xenstored using grants works, but Ocaml does 
> not.

IOW oxenstored works in all-mighty Dom0 only now, and that doesn't change?
This would be fine. Re-wording the sentence to become unambiguous (towards
possibly admitting to deliberately introduce a regression) would seem
desirable though.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 01 14:17:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 14:17:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.934445.1336139 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzcQV-00089u-0f; Tue, 01 Apr 2025 14:17:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 934445.1336139; Tue, 01 Apr 2025 14:17: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 1tzcQU-00089n-Tp; Tue, 01 Apr 2025 14:17:14 +0000
Received: by outflank-mailman (input) for mailman id 934445;
 Tue, 01 Apr 2025 14:17: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=WxAi=WT=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tzcQT-00089h-II
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 14:17:13 +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 00ab7c0e-0f04-11f0-9ffb-bf95429c2676;
 Tue, 01 Apr 2025 16:17:11 +0200 (CEST)
Received: by mail-wr1-x42a.google.com with SMTP id
 ffacd0b85a97d-3912d2c89ecso4965340f8f.2
 for <xen-devel@lists.xenproject.org>; Tue, 01 Apr 2025 07:17:11 -0700 (PDT)
Received: from [10.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-39c0b662bf9sm13830075f8f.29.2025.04.01.07.17.10
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 01 Apr 2025 07:17: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: 00ab7c0e-0f04-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743517031; x=1744121831; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=1DaFncNjduLvUQEYj7vtELOfXESl1xsFj/fU9zDzYbY=;
        b=MpCwKxH7IEv5TrEU+k4xDg0aGROsU0dwLH6qkDwW6soTnOxYVufCZAMebvrw4ZbgYw
         CpuGuDEawL4fdVU6ELKhQwoWiTBRg/fPZJ3Sti3ZOtwIaN6lm5yv2mXMt56yySoCIiFl
         X8iFnB/iCXKfW663tIa451z8m15JRjtv6r5ZmWsMu3bxIXvYx+Qjy75IpYpHUBiy+uCu
         gczSYo6aP140mNgYe55n55NK6sPHj/3d1BbwqxKND54CvdKO1KABKoK47nucMFvo5FRI
         Vone94Y6A0w1VUQfYsVZt21TsratGPBZAT7SpJG71GXnxy6LTkO/nv0XlLv35jpr7Ovz
         A8zw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743517031; x=1744121831;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=1DaFncNjduLvUQEYj7vtELOfXESl1xsFj/fU9zDzYbY=;
        b=YIvoz3vGgrcfb2eAcSHJwZf/BqpreTKXMqEGxXm53zbeUPuQ88hD1qI1bc0MgPXSSr
         mQJI+IS2KkijX0gcpFo+tpOmkg1kt7Hzmo+7/7Zz9X7pzKrGWtpw2lu0t9N2gmSMXmM7
         KdPul3jXtcWs5Z8lPyrsyQJY0xguHDQU/qZqQJn8mXlUtG/oXy0srOs7x3bCBHfoZDEF
         s3AZoMeuvYmomSVjLpfdAZygLxO8dop7MTJZJyBFOoKAcZRkNxMbq4Ocmk1RfUDU1Nbp
         08laE5acNTlMGqqowYNUjmIVolzfNn3/CV87vq0+ES+EFWEhovOx84rZEeymidi7FoaF
         btUA==
X-Forwarded-Encrypted: i=1; AJvYcCW7GvbXPfk6y21Zm2GmAT9m5CfdYNjWi+spRRO97zdbaPoNJNeL0MqUceCBbZ8SagjuIxKN8mKChTw=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzr6UjASSq8QaHMsUl8NZwA3as03R2D0RAy7iEH33t5DZYKaGB3
	fSOYotEwcWh0JdIyEZpZ7TXBG1UfN2UqL3d/DbUx64+lmcNkUbOnRuLmYL+CxA==
X-Gm-Gg: ASbGncv7JdTbtOHfLqxg8XQwGsvZ8K0x0vsoE48zUbtatQtnOYsgpmjQonw+qDXM28v
	8iJjLF7B8ANK8cKaYAMci0mhOfoELmDvrXIWUBpcmrt1HgRMWOB5vPdXCsGKennzVr8wEa3HfY6
	cdwJfmUkJk70ghApteg4HzPUpKAQ8q7BXujbUcnuLX5nXX4R2YzPFZzicmJ0cH6D5oTCBP9SAC0
	hsvuCaLwxE3GRIKZwJg/4UT61Sj3xJb6AaPiyJf+BA5jmQ4EuyXH5K69osuUHIYFpgZ9c+ntF0J
	lGGeYiXdPzHrp6AOY+ggWxUXSjZjKaCu9wMLoU0P/2zq0+lwycM+RVL8lL9biqPREyuz+yze5vZ
	L/RGya2HD4wpQl9FUP1j3UKjf7PfMew==
X-Google-Smtp-Source: AGHT+IEByqOqnYGQ0VGXsFZX7UB6dZQFONIUFPkfTl18Z3eZpG0XgCzHRCDfpn8qG8liHq441ZABHA==
X-Received: by 2002:a05:6000:401f:b0:391:2dea:c9a5 with SMTP id ffacd0b85a97d-39c120de319mr11607390f8f.20.1743517030945;
        Tue, 01 Apr 2025 07:17:10 -0700 (PDT)
Message-ID: <6c37ad18-a830-453e-a7ff-fb4978e3f0df@suse.com>
Date: Tue, 1 Apr 2025 16:17:09 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 02/11] x86/mkreloc: fix obtaining PE image base address
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, Andrew Cooper
 <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20250401130840.72119-1-roger.pau@citrix.com>
 <20250401130840.72119-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: <20250401130840.72119-3-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 01.04.2025 15:08, Roger Pau Monne wrote:
> The base address is in the pe32_opt_hdr, not after it.
> 
> Previous to commit f7f42accbbbb the base was read standalone (as the first
> field of pe32_opt_hdr).  However with the addition of reading the full
> contents of pe32_opt_hdr, such read will also fetch the base.  The current
> attempt to read the base after pe32_opt_hdr is bogus, and could only work
> if the file cursor is repositioned using lseek(), but there's no need for
> that as the data is already fetched in pe32_opt_hdr.

Yes, but: How did things work at all then with this bug? Plus ...

> --- a/xen/arch/x86/efi/mkreloc.c
> +++ b/xen/arch/x86/efi/mkreloc.c
> @@ -35,7 +35,6 @@ static unsigned int load(const char *name, int *handle,
>      struct mz_hdr mz_hdr;
>      struct pe_hdr pe_hdr;
>      struct pe32_opt_hdr pe32_opt_hdr;
> -    uint32_t base;
>  
>      if ( in < 0 ||
>           read(in, &mz_hdr, sizeof(mz_hdr)) != sizeof(mz_hdr) )
> @@ -55,7 +54,6 @@ static unsigned int load(const char *name, int *handle,
>      if ( lseek(in, mz_hdr.peaddr, SEEK_SET) < 0 ||
>           read(in, &pe_hdr, sizeof(pe_hdr)) != sizeof(pe_hdr) ||
>           read(in, &pe32_opt_hdr, sizeof(pe32_opt_hdr)) != sizeof(pe32_opt_hdr) ||
> -         read(in, &base, sizeof(base)) != sizeof(base) ||
>           /*
>            * Luckily the image size field lives at the
>            * same offset for both formats.

... the code right below here has the same issue then, hasn't it? It's a
SEEK_CUR that's being done, which I'm sure isn't going to land us at the
image size field (which again we did read already).

Using the full structure also renders questionable why it's (only)
pe32_opt_hdr that we use here, and not (also) pe32plus_opt_hdr.

I think this is a pretty clear indication that said earlier change
better wouldn't have gone in without a proper R-b.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 01 14:23:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 14:23:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.934457.1336149 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzcWC-0002jL-KX; Tue, 01 Apr 2025 14:23:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 934457.1336149; Tue, 01 Apr 2025 14:23:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzcWC-0002jE-Hh; Tue, 01 Apr 2025 14:23:08 +0000
Received: by outflank-mailman (input) for mailman id 934457;
 Tue, 01 Apr 2025 14: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=yHas=WT=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1tzcWA-0002j6-Kb
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 14:23:06 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on20614.outbound.protection.outlook.com
 [2a01:111:f403:2415::614])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d1f77215-0f04-11f0-9ffb-bf95429c2676;
 Tue, 01 Apr 2025 16:23:03 +0200 (CEST)
Received: from BN9PR12MB5273.namprd12.prod.outlook.com (2603:10b6:408:11e::22)
 by CY8PR12MB7731.namprd12.prod.outlook.com (2603:10b6:930:86::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.44; Tue, 1 Apr
 2025 14:22:57 +0000
Received: from BN9PR12MB5273.namprd12.prod.outlook.com
 ([fe80::cf66:58ab:47be:4b13]) by BN9PR12MB5273.namprd12.prod.outlook.com
 ([fe80::cf66:58ab:47be:4b13%5]) with mapi id 15.20.8534.045; Tue, 1 Apr 2025
 14:22: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: d1f77215-0f04-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Wm0Cwi5bUBmeSViwy6rORGgQEKmHkdoVw8TcJSdlhWVvYWzh7xTtrqQQKT3vSD2u7XVqB5K5laxAhudVazFTNKQfclQtW6ddESHXqCuR3mhGFwO4gt8uIeCL0kqKKZWbxAGW2Ur8KRdcgccBfskMLJmHtXd0qhO9WlX/R/MedLlA9GvfCBFkC41f3tVh+kW6MC5y32daRgSfKlr6ITg+uBIAdlLky+xK626u/lQdRj4F6VIo2/8DDZcjayEW6h1tlattWSrn3xuHud9HqHAaV+Z/jkLo64+VvnCK1F0WgFERl31ys4NV6zESDoWLoW8q0k2o3rv9M2jlIPC3DugGSA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=SjyrndyVo2+ZlN/22DnDdyVsBvHEPlDTRQGZAvj5WAM=;
 b=RqSYbMshHQy+7lhC3db1du7zRoaYIjEde/OEVYJD008xSWQL0m4rAa4ratUoZ4b/BKKGTgpXvA9ZKg2WkWHKKplSxeM5/1p8dmnjmEGiF7IbJ/NVx3JZBSMfKq3Af1ltVxKCbk59JujZi7/oTVC9SvsreYAqu9sRqCSNDueTPwvtD8OCrIT8/6IhNjKkLQZi/yxFJw2dZzeUHH9EDv3hWtFTgl8A1GUAedJAMvJm2/nWbsr7YVdlDE+amSFlF8wYMSNCw3s0d0dySIdaJGZ4SM9mB1uxW75/UlBzM6qZmxD+CF3G8XfSsGuCtkwO7LfdhGD3kBFftYj68AZS36ATSg==
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=SjyrndyVo2+ZlN/22DnDdyVsBvHEPlDTRQGZAvj5WAM=;
 b=PSybFa1WaPP0GmB0Iuk/OM3pc0Lq60jT4klUgr4IEpP6AKQRnHNlX7ZmtC+gf5zAyOt9leEUGCK1IVi6fMbu1MB2+zR67qU10ttgsOwrHfGsw7HXnJWaYwDGK2bNqb4d/LfgYWzHC/uOpYOuvhYe0FYkU+iNnIWP2w5htnldwwc=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <f7a6dd50-28d9-409b-8740-f4433f2fd72e@amd.com>
Date: Tue, 1 Apr 2025 16:22:54 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/arm: Drop process_shm_chosen()
To: Bertrand Marquis <Bertrand.Marquis@arm.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <20250401090937.105187-1-michal.orzel@amd.com>
 <3D313BC0-75C9-4208-9067-C1F6153B3859@arm.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <3D313BC0-75C9-4208-9067-C1F6153B3859@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR4P281CA0227.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:e9::8) To BN9PR12MB5273.namprd12.prod.outlook.com
 (2603:10b6:408:11e::22)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN9PR12MB5273:EE_|CY8PR12MB7731:EE_
X-MS-Office365-Filtering-Correlation-Id: 7fd7debd-6593-47ba-f23f-08dd7128b320
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?WEUwbzdjWnlEVEk3UjR6V2hETGtsVmhhMGJVVXExQzhIa1A4RlFKS3hQd3Iz?=
 =?utf-8?B?bzF4UWtScExoTi9JUnR4WFFBaHBndkp5KzE0NlB3RzRlUzNsYlEwK0RENEwr?=
 =?utf-8?B?MEdVb2hoYzJEV3BVQXc1VzNsQTh1RDNqdEhXajZHZDZPczkrZlRLdlZOOUtw?=
 =?utf-8?B?OVRTcEd2WFEwODBPNHJGK3c2Qml5d2FhSXAya1VqMGpLZzNLRWMxbkFlcUVE?=
 =?utf-8?B?Z1o0N21VRDhqbXQydlU3V3RhLzFmRXZDVWlqTWFEaTlyMjZ4SGM3L3dKcFFT?=
 =?utf-8?B?a0F0dHZ4NytkNzdsaGhuV0lVUXhwZy83b2E3RksrV2cyYUJpQmJmdEhKUytl?=
 =?utf-8?B?d3UwWTRiQ3ZxRUphbFE4eHh0WTZubVlJLzZKQ2VIRmhnVDVFU1E0bE9pdG5D?=
 =?utf-8?B?bU1KNVoybTEvREg1dkRSelppdXVsU040bHlnbFJrL25MU3ZES3ZWRi9qSjRX?=
 =?utf-8?B?QUZCK1o3ODQ3Y0VISmQ5emY3WTdHZ2U0blJWUnFPemUyYWdRT3E1ZUZhdXFx?=
 =?utf-8?B?ajJ1WFpoVWYweFdhS1ZIVFV3Mjk2aVhKaWJKeGllMWZsTWFzV2Z5dFRNV21p?=
 =?utf-8?B?V2c5Rnl5enFSSVFRRUhMbXNMd2ptSjdXWHhEQU9ITEduMis2S3dhbWczRmNw?=
 =?utf-8?B?bmxWMm44Q3lpSWgzOTVRQVNYdFdjY0IrZWZWaUxmTzNJY05OUzUxU0NmVmkv?=
 =?utf-8?B?citMUDBaMW9FdnVMMEVUblFxaGUzQ3N5Z0FVU1NCV3VPOGhHelNySmo3YnA1?=
 =?utf-8?B?K0lrZjJ1RE1GSFY4bTRaNkpxNzlGWjM5eFEvZzYzU3p3emtYMllEeHNXRlAx?=
 =?utf-8?B?TXhjSDhxYXRyQ3oyaWc2MUhzUEJuNHVoT3RZeGx0VGtTUjl3a3RwRUVNblZE?=
 =?utf-8?B?YlMyeVYxME9BSFNhMk9nbTJSQlE0N2ExUmtZbjNHR1I0bng0dDdZdXpKRzRz?=
 =?utf-8?B?NGtBYWNUVmE3OHp1OHhnN3U3THRRV1VpZEZsNUx3NDdwZ0RCdXpacU9sN2Uv?=
 =?utf-8?B?aE1oK05SYzNYblliMys0WnQybFpmVXZkUENWZFU1MnFpS3FoMURXblAzNXFM?=
 =?utf-8?B?bUZPSFhZeUl6a29laG1adVg3Ylo4azNJNDZ2WXp2TWZ0QXVLU2d1dWZnbVND?=
 =?utf-8?B?bWRiWCt5ZitqN0s5M054THl5S1R2VFNPaFNmQUFYdVFBRGxtajhFaCtqU1Rv?=
 =?utf-8?B?enUxV3VmR0c1QjU3VmVmNjNiVXpTaXNtZGNiamRiVHU0dzJUT2lMWDNiSEZS?=
 =?utf-8?B?Uk9uYzgwVmhlK0l1cC9OYk5HdXhxOHUyd0xMS3lOdTZMY2phdDMwemRnR01M?=
 =?utf-8?B?WDZuUW9DdStsaUtkM3hZVUNFaktRMWIxb1JUV1o1QjBlYTkyaEhodGJOa080?=
 =?utf-8?B?Rmo4TnJYY2dteXVjbHNFQzBrbUliN2RmQmVSRVVzNTU2M2xZNjV3d2JtNzYy?=
 =?utf-8?B?ZURyL1Q1c0pESGlVZ3c5eFZMVWdiU21rVlUwWU94QmhpaTJzNmxWVXZzanZz?=
 =?utf-8?B?bFFqcGdFSHdONDJoRUJEY21qcnczMFlmcXlDcTlhL2hYSldtbXlIRWNhMEpp?=
 =?utf-8?B?ZkFrOWZ5LzRaVGZxSWVRWEh3WS9SMktRdjJ0NmhmQlI1SlNqdnNJM2lhdGM4?=
 =?utf-8?B?QTZQWkdZem1qY3cxWEZEdUNOSkF6MTNzTnZXZEplM2ZFVGVzWjQzMHV2cUd0?=
 =?utf-8?B?RDQ2QXZWUitSd1JNSTdlenlVcDFYSXVXM2NHcGZISFV3QklSZVl4ZEVnSXZt?=
 =?utf-8?B?OHVQcHpDTmg4U2M1VHFEZlJZT05iSjE2bGUxOU5oQlFtaVBWMUxMWWphOXNt?=
 =?utf-8?B?SFJ2aHJZYVlyYldXWEFiOUx1VklObFV2dnNZbUR6VGNsbzJTQS9VSk5URWkv?=
 =?utf-8?B?OGlIcTNhbFdOZ3diU3N6Uy83MU5Tc0J6RFVtRDFEL1RxVFRwMnM3MG9UbWR4?=
 =?utf-8?Q?FMhOKPt6Sog=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN9PR12MB5273.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?QUR0WnBTV2JxYUxPK2VEK3V2ZGx3MFZiZGcwTVExYkNGeDBUaVdmQUdGQUVj?=
 =?utf-8?B?dHdWUnhqcGF3eXhkQlVxOGc1K28rYnAxRC8zOEJXaFRLOG1OMm04Q2hhZzgr?=
 =?utf-8?B?bVBHV2x1bkRHRHpqY1E4dTBPeXFSUCtxUWFFek50bHBFMlNBV0VaQk1XbWxU?=
 =?utf-8?B?ZEx0cTNNVkgyTzdpaDkvK1ZJbWl1VnNmNUZ4OXg3dzg0Ky9vNHQwSnlsSC9p?=
 =?utf-8?B?Sm9xakFNVkg5NzdOYjEzcTh0UWlUT1U0TlJwa3FIRHB5Tm5PK1FFWWpHaVVQ?=
 =?utf-8?B?UkNUNkJxZHlOWDZCTnpyRDB6WnE5VXpBaTlZV0Y3SnMrZzh6WGNXdEVkWG9O?=
 =?utf-8?B?ckZlWnh1WnpjMUhuUzU4VCtJSjQwd3RGL253RGpXVk5vQjVSTTAzNjI0a3Vx?=
 =?utf-8?B?V243U3U4S00rMnZ3ZmNLZW5Oa0JtVkhrRWNESmVNb3VxV3VFMHZxTy9EWTNH?=
 =?utf-8?B?S1FibTJ2SWZ4Z2o3MS9PWTJsbnNiZmxBRFVKb3RPNjJSVmFrQUEvMWoxc0RM?=
 =?utf-8?B?d1JHbEk4d2hPOU8xSm54UjR4ZWRMV1puUU5EQm5WYUF4UFBhdThGUFZZS1VF?=
 =?utf-8?B?TFY1M0I4OSs4NjVGaDg2cmtGYlJsRlB0TUJqd2R1cU1jWEZTMnRITUxWRmxF?=
 =?utf-8?B?ODdzMU5HL2NuZEQ4a0s3WWdYTFljalhHT0FFL1VvaXdFM3FzbW9SdTRSQnBp?=
 =?utf-8?B?cWhQcWtVSXVHRU1ZK1JlODhLSzI1Q0pWdFNWa2NmUkZQYjlEdkplVDlGRmFN?=
 =?utf-8?B?UFhEamhYQTkxMFZwLzhYbVphTUlBV3dMalJKYUpDOThpUWFacU5LL2hEVC81?=
 =?utf-8?B?Z1VGU0lpK2pzMXlpblFjN05OY1RRbEg2OUNlRThVSTlreE9uY01FN3ExVWh3?=
 =?utf-8?B?SDU1YmNBRUNrUVMwanpnWTRENW9LOEdzZDROMldGVE9XZnhWUmJ1M0RqNm5t?=
 =?utf-8?B?YlJXMVhhOGE2c3M4WXYwVThITWFVb2ljbk8ySjhHV3RiT1BkbWw3dVZlcERU?=
 =?utf-8?B?U2ZFTUtoUi9Xd3BXTFBON3FGMTdpM2FqU0NEcnZVVEUrT0puUTN4MWE1Zm5Y?=
 =?utf-8?B?U1hUcVNBVmxLUW11VTZLcFpYMWxQdFhFQmZ2RjhSeHQ5dFlFZkJYWjEwMU1K?=
 =?utf-8?B?a3NPSEhwZzh3TUh3cUJjK2k4UkFBT1haby9oTUdtY2RBb1BjcDY2SUovcUI3?=
 =?utf-8?B?VS9hNkgrVjZUZXg5RTB0MGMzR3VUaVp6RnpSK0dhLzVtNE5SVWJGMFJDdnR6?=
 =?utf-8?B?V2ZnbThOYkNqanJvM3lUTGtLcWxIbDd6Z1F6emEzZUV4UXByb0g0N1o0OUhk?=
 =?utf-8?B?OWlEeVk1bFQvcFU5TExpUDdjNk5ubEMrQUN5b3ZpVHBBajhiM1Y2WU12ODlD?=
 =?utf-8?B?OFpjSG1CaGY4MHZENnV3SXExcTYxODVkcmw3ekhWeklPVENrb2ZTcEVicUpl?=
 =?utf-8?B?M0pzZitjY0o5WVhyQnhnU3hXcFllWk8yS2RzQ2JFYkp0ckJGVFZESmVodVR0?=
 =?utf-8?B?TVIyOStUdjFPN2o3bFczazFvSFE4SzFWVVJaYWk2UDl6N0ZFOFUvcUdmSUpK?=
 =?utf-8?B?aFlSazU0R1R5K2dQUjMxbWNicEhKRFJWeCtyazNUenRGaWpVV3lONEowQnBx?=
 =?utf-8?B?Nmdxb2dhRU1HalNObXNhSG1KK29IYXhWL21PQUMwU2xCQzJPTldkcVlMYVNv?=
 =?utf-8?B?UlJkT0U1Qi9lLzRjellPQmdvZ1pSWVlwbmU1L0xhVG9ldno5blJTcGFta0pj?=
 =?utf-8?B?S2VUYkdBNGdMK0tpam1YYk9iVUd6RVpRNGxtL2wzRVdubUE2SlBLajlwb2Z4?=
 =?utf-8?B?NExBYTZEL2ZHaDl6Zm1wSWFOQW5KcnJvK2JRS2poTCtYVjE5RnpaRUo4dERP?=
 =?utf-8?B?eko2ak9YRzdJYi9abTJ2bWc4Q2dWa08vdG92N1AwWDMvd1IwK3RUMzJGUDV0?=
 =?utf-8?B?K2t5YzlQYm1idVUxRU96QVY2TzYxZUthSG9Bd0ZORWxMcUtUcFRPM0o1ME9W?=
 =?utf-8?B?Z1ZoWktZZUJlYy80cks5Z0RSV0w1RDg2bWhzb1MzREVZTEx2cFpsMlJNMWtW?=
 =?utf-8?B?d3NrbExpeFVaZmF4cWRxVkdYem5TbGZVSkNZNXAvZ25QY0lPdlB5TDRNNlpT?=
 =?utf-8?Q?SR93VyZ4kDT6nY4VJAV4PaAHA?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 7fd7debd-6593-47ba-f23f-08dd7128b320
X-MS-Exchange-CrossTenant-AuthSource: BN9PR12MB5273.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Apr 2025 14:22:57.6040
 (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: vUJVzI9Stmo0WhMl2wXAEyLVEonoN3rvaR2XdkQ8GvOAZbgGqmlh8ajH1iY+tcm3
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR12MB7731



On 01/04/2025 14:57, Bertrand Marquis wrote:
> 
> 
> Hi Michal,
> 
>> On 1 Apr 2025, at 11:09, Michal Orzel <michal.orzel@amd.com> wrote:
>>
>> There's no benefit in having process_shm_chosen() next to process_shm().
>> The former is just a helper to pass "/chosen" node to the latter for
>> hwdom case. Drop process_shm_chosen() and instead use process_shm()
>> passing NULL as node parameter, which will result in searching for and
>> using /chosen to find shm node (the DT full path search is done in
>> process_shm() to avoid expensive lookup if !CONFIG_STATIC_SHM). This
>> will simplify future handling of hw/control domain separation.
>>
>> Signed-off-by: Michal Orzel <michal.orzel@amd.com>
>> ---
>> xen/arch/arm/domain_build.c             |  2 +-
>> xen/arch/arm/include/asm/static-shmem.h | 14 --------------
>> xen/arch/arm/static-shmem.c             |  4 ++++
>> 3 files changed, 5 insertions(+), 15 deletions(-)
>>
>> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
>> index 2b5b4331834f..7f9e17e1de4d 100644
>> --- a/xen/arch/arm/domain_build.c
>> +++ b/xen/arch/arm/domain_build.c
>> @@ -2325,7 +2325,7 @@ int __init construct_hwdom(struct kernel_info *kinfo)
>>     else
>>         allocate_memory(d, kinfo);
>>
>> -    rc = process_shm_chosen(d, kinfo);
>> +    rc = process_shm(d, kinfo, NULL);
>>     if ( rc < 0 )
>>         return rc;
>>
>> diff --git a/xen/arch/arm/include/asm/static-shmem.h b/xen/arch/arm/include/asm/static-shmem.h
>> index fd0867c4f26b..94eaa9d500f9 100644
>> --- a/xen/arch/arm/include/asm/static-shmem.h
>> +++ b/xen/arch/arm/include/asm/static-shmem.h
>> @@ -18,14 +18,6 @@ int make_resv_memory_node(const struct kernel_info *kinfo, int addrcells,
>> int process_shm(struct domain *d, struct kernel_info *kinfo,
>>                 const struct dt_device_node *node);
>>
>> -static inline int process_shm_chosen(struct domain *d,
>> -                                     struct kernel_info *kinfo)
>> -{
>> -    const struct dt_device_node *node = dt_find_node_by_path("/chosen");
>> -
>> -    return process_shm(d, kinfo, node);
>> -}
>> -
>> int process_shm_node(const void *fdt, int node, uint32_t address_cells,
>>                      uint32_t size_cells);
>>
>> @@ -74,12 +66,6 @@ static inline int process_shm(struct domain *d, struct kernel_info *kinfo,
>>     return 0;
>> }
>>
>> -static inline int process_shm_chosen(struct domain *d,
>> -                                     struct kernel_info *kinfo)
>> -{
>> -    return 0;
>> -}
>> -
>> static inline void init_sharedmem_pages(void) {};
>>
>> static inline int remove_shm_from_rangeset(const struct kernel_info *kinfo,
>> diff --git a/xen/arch/arm/static-shmem.c b/xen/arch/arm/static-shmem.c
>> index c74fa13d4847..cda90105923d 100644
>> --- a/xen/arch/arm/static-shmem.c
>> +++ b/xen/arch/arm/static-shmem.c
>> @@ -297,6 +297,10 @@ int __init process_shm(struct domain *d, struct kernel_info *kinfo,
>> {
>>     struct dt_device_node *shm_node;
>>
>> +    /* Hwdom case - shm node under /chosen */
>> +    if ( !node )
>> +        node = dt_find_node_by_path("/chosen");
>> +
> 
> I would have 2 questions here:
> - what if a NULL pointer is passed, wouldn't you wrongly look in the main device tree ?
Do you mean from hwdom or domU path? In the former it is expected. In the latter
it would be a bug given that there are several dozens of things that operate on
this node being a /chosen/domU@X node before we pass node to process_shm().

> - isn't there a NULL case to be handled if dt_find_node_by_path does not find a result ?
It wasn't validated before this change. It would be catched in early boot code
so no worries.

> 
> Couldn't the condition also check for the domain to be the hwdom ?
I could although we have so many /chosen and hwdom asserts in the tree in the
dom0 creation that I find it not necessary.

~Michal



From xen-devel-bounces@lists.xenproject.org Tue Apr 01 14:23:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 14:23:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.934469.1336158 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzcWr-0003Gx-Vf; Tue, 01 Apr 2025 14:23:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 934469.1336158; Tue, 01 Apr 2025 14: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 1tzcWr-0003Gq-SI; Tue, 01 Apr 2025 14:23:49 +0000
Received: by outflank-mailman (input) for mailman id 934469;
 Tue, 01 Apr 2025 14:23: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=KZod=WT=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tzcWp-0002j6-VO
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 14:23:47 +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 ebd877f9-0f04-11f0-9ffb-bf95429c2676;
 Tue, 01 Apr 2025 16:23:46 +0200 (CEST)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-3914bc3e01aso3173348f8f.2
 for <xen-devel@lists.xenproject.org>; Tue, 01 Apr 2025 07:23:46 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39c0b66d0dbsm14381181f8f.58.2025.04.01.07.23.44
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 01 Apr 2025 07:23: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: ebd877f9-0f04-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1743517425; x=1744122225; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=HKWMI+/C71+DLxq3vf3Vhph0cXh0zcgSRDqsGySwCBI=;
        b=gMcGh1vu8+flbdJPh8svuuu9wCO4+uhpydLVC1G48dF4qDAv/TYdvUVuK03nGRBwEw
         r36gGwURznOO8j18C1YCGmbPA+egWmP9dIb+m/r0LxonpwbkT7AVMAC3AMcxNt1so5BK
         uShypqphXiChF+KOCKrOgKP6tU2t7Z85Bxtn4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743517425; x=1744122225;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=HKWMI+/C71+DLxq3vf3Vhph0cXh0zcgSRDqsGySwCBI=;
        b=mCYrnZ2emwpXnbkQntP1gTtgs47VFl1D+c48vRCZQyrDJeZawCELv+k2EvPIN+995W
         x2tLX9QprROCwxxI4la+BoBfD2kBXCuhDNOldyJiGLOE5AOcvxoUzdXdBMHx6VrQB+HH
         M4pouoHAuy6tA/pH3WiLS61r8ZHppGvtwrqhlSHCG66JMKgmTtaenWtXSJ+dyElVYTaf
         P8T11Ybdr6YA6ImRQZnOUGSORBNzXVt7mh2p8tmn4lkmggCLOaHOnIVy9Mxu2nIJQsUK
         n5eRhefPEpN2Bj4pGAHqAnEHro22vFM7RckYIcg8eOMg9kqnWRZf635sc05W5QHrokxt
         Qm1A==
X-Forwarded-Encrypted: i=1; AJvYcCV+ykCC1gMjTkQxORX7+G+wp23HxlMzqLlHM5jeELMvDLMnXOU8YQdRTbOHkA3xQG1xWamwido084Q=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxhjcMoZ8ktPbXF8w0Fm4ZKjtPdLj8siP4SG6DJ8h8M3aeMPl9P
	d4EnttK96MnarOyoZ6bbtfv6KbBorVLVkwSdzZin8d24hXex4vuvwnOu8i6HTkH3bw8FmkHsXH4
	uP8g=
X-Gm-Gg: ASbGnctb1lvSUoznooe3yg3yBKcaPt6aUdRpvHobZnp1U/wYKrQxwLn8wbjJgi6Zz+I
	YjWnVrg4tQxuJNZdnCKPkNWPCVNyo0FNIdPx9TFVNou+TG6A5Va4RyX79q4hxsflDCJzj+OkVHW
	xCn8GFhGz0SoaihOaLhTZVCW972uffsnNTlyYWePHChEBGLtZ7DWJL4Clg21F0iqya+378cVrwb
	PWPZbAZSqOWin8F49c9BSb/ePdwHw4mYgBGYssiP/YgSNOzBJoePTZFy0HVAicBszvl0h7tJ6QD
	Htxqr2iAr/Y5cdGoec9td1begxODlA+lndOlb/IrUdwISE+1FVyYZm5mo/uHh7bP7Fzx250Ri0H
	p03y8A9KipXxU/6pLswcm
X-Google-Smtp-Source: AGHT+IFPZPOHIkKvRm9x8IvUOzOX9bLWm3OlE5+TpJPMmYDzw/UZxrLmKuP4gCNoiNlzWEWMmojytw==
X-Received: by 2002:a5d:47af:0:b0:391:42f2:5c7b with SMTP id ffacd0b85a97d-39c120dc8c6mr11373791f8f.16.1743517425438;
        Tue, 01 Apr 2025 07:23:45 -0700 (PDT)
Message-ID: <993b1ca7-6ae7-4e10-974b-4c726306a88a@citrix.com>
Date: Tue, 1 Apr 2025 15:23:44 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 11/11] automation/x86: add a xen.efi test with a strict
 NX OVMF build
To: Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
Cc: Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>
References: <20250401130840.72119-1-roger.pau@citrix.com>
 <20250401130840.72119-12-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: <20250401130840.72119-12-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 01/04/2025 2:08 pm, Roger Pau Monne wrote:
> Such OVMF build does honor the PE sections attributes, and will not blindly
> create all section mappings with read-write-execute permissions.
>
> Strict NX build is only available in the Fedora edk2-experimental
> package, so add the required dependencies to run a QEMU EFI job on the
> Fedora 41 container and use it for the test.
>
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>

I guess this always has to go last?

It will need a bit of careful gymnastics to deploy the new container
prior to committing this patch, but it shouldn't be difficult.

Alternatively, you can submit hunk 1 in a separate patch and we can get
the new container deployed independently of the rest of the series.

> diff --git a/automation/build/fedora/41-x86_64.dockerfile b/automation/build/fedora/41-x86_64.dockerfile
> index 8032a2098632..84f366ac0643 100644
> --- a/automation/build/fedora/41-x86_64.dockerfile
> +++ b/automation/build/fedora/41-x86_64.dockerfile
> @@ -65,6 +65,11 @@ RUN <<EOF
>          glib2-devel
>          pixman-devel
>          ninja-build
> +
> +        # EFI Strict NX test
> +        qemu-system-x86
> +        edk2-experimental
> +        expect

Please could this follow the pattern in debian.

# for test phase, qemu-smoke-* jobs
expect
qemu-system-x86

# for *-efi-strictnx
edk2-experimental

> diff --git a/automation/scripts/qemu-smoke-x86-64-efi.sh b/automation/scripts/qemu-smoke-x86-64-efi.sh
> index 7572722be6e5..fbb662f1a756 100755
> --- a/automation/scripts/qemu-smoke-x86-64-efi.sh
> +++ b/automation/scripts/qemu-smoke-x86-64-efi.sh
> @@ -4,6 +4,7 @@ set -ex -o pipefail
>  
>  # variant should be either pv or pvh
>  variant=$1

# mode should be nothing, or strict

Also, I'd suggest using mode=strictnx here as it matches both the test
name and the OVMF file name.

Assuming you're ok with these changes, Reviewed-by: Andrew Cooper
<andrew.cooper3@citrix.com> (however you end up splitting).


From xen-devel-bounces@lists.xenproject.org Tue Apr 01 14:29:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 14:29:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.934482.1336169 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzcc9-0003ui-JM; Tue, 01 Apr 2025 14:29:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 934482.1336169; Tue, 01 Apr 2025 14:29: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 1tzcc9-0003ub-GG; Tue, 01 Apr 2025 14:29:17 +0000
Received: by outflank-mailman (input) for mailman id 934482;
 Tue, 01 Apr 2025 14:29: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=WxAi=WT=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tzcc9-0003uV-1m
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 14:29:17 +0000
Received: from mail-wm1-x334.google.com (mail-wm1-x334.google.com
 [2a00:1450:4864:20::334])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b0057f51-0f05-11f0-9ea7-5ba50f476ded;
 Tue, 01 Apr 2025 16:29:15 +0200 (CEST)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-4394036c0efso38264935e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 01 Apr 2025 07:29:15 -0700 (PDT)
Received: from [10.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-43d82dede98sm200242165e9.6.2025.04.01.07.29.13
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 01 Apr 2025 07:29: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: b0057f51-0f05-11f0-9ea7-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743517755; x=1744122555; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ad4SficZADWClmDSEwIBfwJ5WOoljiHtU472VMlnQCQ=;
        b=PrJRAlOpzM0t175cP+JMUiuXFng1jcsCHwPoaJ8Z5Fy0SbBdu0V3XzS8JOvmVQYBID
         mo8vlwhOmKiSOPGYzSdmMv/uZWzfDDT+SzcI2z6F+tsRYi9N44MytrbrcEVtA2biaPfH
         O1C7sU+PNesg4jY0Bm13HC9pRWqptthxtVUQ5bcuw+VsahmTHo7MNIB+TYbWP54yWHyT
         WPGVdyHnVA3boR27h2c4bwJDFGeczorjGY05uDBFi+1/xKmn/0KFRgP9p5lvvVdOSXRW
         sLCEWIWEWV/40JfZXxJ9Shu/zEzS9VUldkquFG9XEL9IFfCvaD+PRyTrQ7Pp/DIS17KZ
         2Nag==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743517755; x=1744122555;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ad4SficZADWClmDSEwIBfwJ5WOoljiHtU472VMlnQCQ=;
        b=XKyMi14jtswci/bWK5HIw/oJ5Nf1aOBtaDZSVRJHyK+ZYzyTIt6ul7d1rEe7j9JcMl
         KQmoMgamWBS1XI/1gL5Jm5yRYd33nCppaKeSujH2PpFcvPQMrF/HcEvKGt1dKgzxIfO+
         fijWBVuhBwTyCoZqKEJPrmqnrpDQG8hhQeId+D95w5brQyqmv/AUdAcchCQm+CO3u0Iu
         p+Fl5zsjKwRYChCMThubQbRiNVQqI9eSNarWYIEGivvCX3jug/8CsdGTTGnKJTTgYUKC
         732s1TuTrbUcFL/LptcXOZDOagDLIVi9/KRn4Qr7ZR0WNuuVMxjIL2IBT67LxMQ9OC+J
         uYLg==
X-Gm-Message-State: AOJu0Yxu1G7RlrhRA51n6MjWjEtzcuf+LHvVpOFrSBMEZ5Yf+SQ5ZJhd
	RNeuqimCD6xbSmbYRvZJ9qR45E1YpOOrwC8mMGKDKSKEIeJyiv5AaCgx167Ziw==
X-Gm-Gg: ASbGncv+fCuVOPXO8FmqrfnAz4XRL+M+r/8jy/YPHuuzlhPfIWaCL7sdLLbikN1V4S1
	cfvGOZvcIN0jhqb7T8tVPTIQVBqosFCXkHzb/wgc0sssueQBWCX5rV2v4gMqLTOLiFj6KAXVdMr
	8jDbtiq87t2w9MffnDOKmAJ8//HABtNqvfNT4yxdC3ha3OL+COd5QpCXsed0/EYX3x/YBb8mqub
	y9NJP8MWy+iMKZuyFM6aJXnHNUVjwwLC7sNhynvrxfAfECtjKc0zxTkT1KKa5OuHHcdDrVyinEE
	IC0Ik5qpWLskFwbyviVjjNp+Hr58w8VE9AW/wiA+vOl4egCH26hailA6sBACgBSvF3cGu3mrsWs
	ww2qO31N3q8TSqvS1+JcQ6QRmKtRsrA==
X-Google-Smtp-Source: AGHT+IER3Xw2Q6VoloKAcCUldjcVpP8kK1ilUcoYRmcD96vD3FgrIkuoxsZ+QGKWRUziyZU09PzaDA==
X-Received: by 2002:a05:600c:3547:b0:439:86fb:7340 with SMTP id 5b1f17b1804b1-43eb06bd359mr1456515e9.30.1743517754661;
        Tue, 01 Apr 2025 07:29:14 -0700 (PDT)
Message-ID: <3b858ed2-7d89-4208-a4c1-e71600897c1d@suse.com>
Date: Tue, 1 Apr 2025 16:29:13 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 15/19] xen/sysctl: wrap around XEN_SYSCTL_physinfo
To: Penny Zheng <Penny.Zheng@amd.com>
Cc: xen-devel@lists.xenproject.org, ray.huang@amd.com,
 Julien Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Stefano Stabellini <sstabellini@kernel.org>
References: <20250326055053.3313146-1-Penny.Zheng@amd.com>
 <20250326055053.3313146-16-Penny.Zheng@amd.com>
 <alpine.DEB.2.22.394.2503281713230.563920@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.2503281713230.563920@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 29.03.2025 01:13, Stefano Stabellini wrote:
> On Wed, 26 Mar 2025, Penny Zheng wrote:
>> The following functions are only used to deal with XEN_SYSCTL_physinfo,
>> then they shall be wrapped:
>> - arch_do_physinfo
>> - get_outstanding_claims
>>
>> Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
> 
> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>

With earlier, series-wide nit taken care of here:
Acked-by: Jan Beulich <jbeulich@suse.com>

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 01 14:46:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 14:46:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.934497.1336179 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzcsy-0000zm-Vr; Tue, 01 Apr 2025 14:46:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 934497.1336179; Tue, 01 Apr 2025 14: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 1tzcsy-0000zf-Sn; Tue, 01 Apr 2025 14:46:40 +0000
Received: by outflank-mailman (input) for mailman id 934497;
 Tue, 01 Apr 2025 14:46: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=WxAi=WT=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tzcsy-0000zZ-3M
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 14:46:40 +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 1e152e2f-0f08-11f0-9ea7-5ba50f476ded;
 Tue, 01 Apr 2025 16:46:38 +0200 (CEST)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-43cf628cb14so45626485e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 01 Apr 2025 07:46:38 -0700 (PDT)
Received: from [10.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-39c0b663564sm14528233f8f.32.2025.04.01.07.46.37
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 01 Apr 2025 07:46:37 -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: 1e152e2f-0f08-11f0-9ea7-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743518798; x=1744123598; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=QHC15nd4PSRDca98Yxo67NkIO5WyxPw50y41IKl4czw=;
        b=XvFj+JoyC6+w4TCKE+Z34SseuUuN8JCcFzrfpNWT4X4WLzW/j0/zechzK4WYF3pvHC
         uQAob4lwtpBE8vfFp+VWYnEShXU0GKvdAM776tirVeTkF7QKvH0ob6/1asaA+TR5JfG2
         H6CDU+iRBZbcAMyro+gQoh7m/ipKeDMynhXmOIs4iF8Xe/Vb7jQi6Eajot5wcOAJT+P4
         BGAMGcyyqneIyvAIpl8Pb9XzKlSY50O7IGxvz41Xjmegj9wVXuOtF/V7F66pj4IE6JwD
         GjgET/RO/rYEfam1/DfrLShuhyF8K/n6CQfiUxZTIdD1wDeYwrBsuFIn/8lNcovI+b3Y
         2BOQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743518798; x=1744123598;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=QHC15nd4PSRDca98Yxo67NkIO5WyxPw50y41IKl4czw=;
        b=srspE93KYXR/6y4GgB54jh/5aOfNnOje/bCQ442yQsbeSoTwusm39cGRlGj3oTn6RJ
         9OdZq0SXM+ER4K9qDD+8UgHleX3hqkZ8xg+OiLejEobrT61U4utzs5YQM4DtFz/AwXFM
         CGJNRtJIB0YZneZzXN2atIgNxU2zLsKG3VLYGSiKbLirGhF6JTOVEhg7rz3OIlNga3gA
         EsHOqpJ6++1oAgna8bCkUA3Pc25yVp9G/1XNY8z4KR/J6LAOUrCWuP4sWvzYMvyDrTx1
         CxoLtbK3G7/bTff5W/fVX6CICc1k1yP81TwyVwvXSRCQ/IGzTbUh13cuFPAQGmQ9iiDt
         nH9g==
X-Forwarded-Encrypted: i=1; AJvYcCXNywcKNJpnYBNjOLvQ0fquAoR5/MClV03JqK7QvMXwMdYLVfCokGrMwhKRdlwjRh7eRXNBxQC2qM0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzfWBCo4c+Kxk8kNWz6wp69jNWxxE34S+dId0WUQFazA5GlEhnT
	yHmQAn4M3M/ywKwIeB9f/ayutDvmpuLks7taMoUci5ILmzPcg+jvHef2f6dboQ==
X-Gm-Gg: ASbGnctKBBs8bLpx6+skTvYGgrziacLjZXO6WTDDSw4ZabtM3OPAZICHYkGP2OxMJIz
	usR2AdPcdsQECjqtGCj6x2KVP1zEPX8sL/48sGPHvROpYNkNyQRszwdy0sql15oDJdiLyEqBx+o
	CyTBJFsEq3e80dgW2GOsvdXSxaE8fggps4wzT86WIWwieq+Z97yYfe4ysgChma+Z0efkv5GEQV0
	Pp1z5cuMlUHqLpYE41eKgDkxIsflr6UDuKKEdgEKZ+otWT34Amp15H2Bf5dZ4g7of5gTjIcVkwL
	GPguKxBAtxuzZAr95Od6lbwd8nI9UmmtWfeOdMRG1KCSW8ytSaM8XFoF7Pwg/REVlOPOIHnv5JG
	ImBgZW2LGGSXKcNVXBMKlOc03ftb7MQ==
X-Google-Smtp-Source: AGHT+IHE+b/ZTOWK3eX/p2/oof7eJfENe6egzrfirVdm3xS3y1AJ39nx8dx1Bj/KDMYDeQDjCQAOCg==
X-Received: by 2002:a05:6000:2281:b0:38d:dc03:a3d6 with SMTP id ffacd0b85a97d-39c27ee3659mr300851f8f.4.1743518798221;
        Tue, 01 Apr 2025 07:46:38 -0700 (PDT)
Message-ID: <33b166be-21db-473e-a59a-3779436c0494@suse.com>
Date: Tue, 1 Apr 2025 16:46:36 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 18/19] xen/sysctl: wrap around arch-specific
 arch_do_sysctl
To: Penny Zheng <Penny.Zheng@amd.com>
Cc: ray.huang@amd.com, Stefano Stabellini <sstabellini@kernel.org>,
 Julien Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Stefano Stabellini <stefano.stabellini@amd.com>,
 Sergiy Kibrik <Sergiy_Kibrik@epam.com>, xen-devel@lists.xenproject.org
References: <20250326055053.3313146-1-Penny.Zheng@amd.com>
 <20250326055053.3313146-19-Penny.Zheng@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20250326055053.3313146-19-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 26.03.2025 06:50, Penny Zheng wrote:
> Function arch_do_sysctl is to perform arch-specific sysctl op.
> Some functions, like psr_get_info for x86, DTB overlay support for arm,
> are solely available through sysctl op, then they all shall be wrapped
> with CONFIG_SYSCTL
> Also, remove all #ifdef CONFIG_SYSCTL-s in arch-specific sysctl.c, as
> we put the guardian in Makefile for the whole file.
> 
> Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
> Signed-off-by: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
> Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
> ---
> - use "depends on" for config OVERLAY_DTB
> - no need to wrap declaration
> - add transient #ifdef in sysctl.c for correct compilation
> ---
>  xen/arch/arm/Kconfig   |  1 +
>  xen/arch/arm/Makefile  |  2 +-
>  xen/arch/arm/sysctl.c  |  2 --
>  xen/arch/riscv/stubs.c |  2 +-
>  xen/arch/x86/Makefile  |  2 +-
>  xen/arch/x86/psr.c     | 18 ++++++++++++++++++
>  xen/arch/x86/sysctl.c  |  2 --
>  xen/common/sysctl.c    |  2 ++
>  8 files changed, 24 insertions(+), 7 deletions(-)
> 
> diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
> index ffdff1f0a3..aa1b4a6e6b 100644
> --- a/xen/arch/arm/Kconfig
> +++ b/xen/arch/arm/Kconfig
> @@ -141,6 +141,7 @@ config HAS_ITS
>  
>  config OVERLAY_DTB
>  	bool "DTB overlay support (UNSUPPORTED)" if UNSUPPORTED
> +	depends on SYSCTL
>  	help
>  	  Dynamic addition/removal of Xen device tree nodes using a dtbo.
>  
> diff --git a/xen/arch/arm/Makefile b/xen/arch/arm/Makefile
> index 4837ad467a..7c6015b84d 100644
> --- a/xen/arch/arm/Makefile
> +++ b/xen/arch/arm/Makefile
> @@ -54,7 +54,7 @@ obj-y += smpboot.o
>  obj-$(CONFIG_STATIC_EVTCHN) += static-evtchn.init.o
>  obj-$(CONFIG_STATIC_MEMORY) += static-memory.init.o
>  obj-$(CONFIG_STATIC_SHM) += static-shmem.init.o
> -obj-y += sysctl.o
> +obj-$(CONFIG_SYSCTL) += sysctl.o
>  obj-y += time.o
>  obj-y += traps.o
>  obj-y += vcpreg.o
> diff --git a/xen/arch/arm/sysctl.c b/xen/arch/arm/sysctl.c
> index 2d350b700a..32cab4feff 100644
> --- a/xen/arch/arm/sysctl.c
> +++ b/xen/arch/arm/sysctl.c
> @@ -15,7 +15,6 @@
>  #include <asm/arm64/sve.h>
>  #include <public/sysctl.h>
>  
> -#ifdef CONFIG_SYSCTL
>  void arch_do_physinfo(struct xen_sysctl_physinfo *pi)
>  {
>      pi->capabilities |= XEN_SYSCTL_PHYSCAP_hvm | XEN_SYSCTL_PHYSCAP_hap;
> @@ -23,7 +22,6 @@ void arch_do_physinfo(struct xen_sysctl_physinfo *pi)
>      pi->arch_capabilities |= MASK_INSR(sve_encode_vl(get_sys_vl_len()),
>                                         XEN_SYSCTL_PHYSCAP_ARM_SVE_MASK);
>  }
> -#endif
>  
>  long arch_do_sysctl(struct xen_sysctl *sysctl,
>                      XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl)
> diff --git a/xen/arch/riscv/stubs.c b/xen/arch/riscv/stubs.c
> index 7b3f748886..ae865e1972 100644
> --- a/xen/arch/riscv/stubs.c
> +++ b/xen/arch/riscv/stubs.c
> @@ -322,13 +322,13 @@ unsigned long raw_copy_from_guest(void *to, const void __user *from,
>  
>  /* sysctl.c */
>  
> +#ifdef CONFIG_SYSCTL
>  long arch_do_sysctl(struct xen_sysctl *sysctl,
>                      XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl)
>  {
>      BUG_ON("unimplemented");
>  }
>  
> -#ifdef CONFIG_SYSCTL
>  void arch_do_physinfo(struct xen_sysctl_physinfo *pi)
>  {
>      BUG_ON("unimplemented");
> diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
> index f59c9665fd..837eafcbc0 100644
> --- a/xen/arch/x86/Makefile
> +++ b/xen/arch/x86/Makefile
> @@ -79,7 +79,7 @@ ifneq ($(CONFIG_PV_SHIM_EXCLUSIVE),y)
>  obj-y += domctl.o
>  obj-y += platform_hypercall.o
>  obj-$(CONFIG_COMPAT) += x86_64/platform_hypercall.o
> -obj-y += sysctl.o
> +obj-$(CONFIG_SYSCTL) += sysctl.o
>  endif

I think I had indicated before that this shouldn't stay inside the conditional,
but move back up. Whether that is to happen here or while addressing my
respective comment on patch 01 I can't easily tell.

> --- a/xen/common/sysctl.c
> +++ b/xen/common/sysctl.c
> @@ -490,8 +490,10 @@ long do_sysctl(XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl)
>          break;
>  
>      default:
> +#ifdef CONFIG_SYSCTL
>          ret = arch_do_sysctl(op, u_sysctl);
>          copyback = 0;
> +#endif
>          break;
>      }

This isn't enough. "ret" is 0 when reaching the default: label, but may not
stay 0 for the return from the function. I understand (expect) this is going to
be dropped again in the next patch, but even if only transiently needed this
should be kept correct imo. Things might be different if patch 02 introduced
the option without a prompt, i.e. always enabled. Then all the #ifdef-ary added
up to here would be merely syntactic sugar. In fact in that case you could omit
all the transient #ifdef that the last patch is going to remove again. Please
consider going that route.

Otherwise I think the #endif also needs moving up, for copyback to still be
cleared here.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 01 14:47:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 14:47:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.934504.1336188 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzctS-0001Q4-6q; Tue, 01 Apr 2025 14:47:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 934504.1336188; Tue, 01 Apr 2025 14:47: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 1tzctS-0001Px-4K; Tue, 01 Apr 2025 14:47:10 +0000
Received: by outflank-mailman (input) for mailman id 934504;
 Tue, 01 Apr 2025 14:47: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=KZod=WT=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tzctQ-0001L3-Dn
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 14:47:08 +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 2eaf8b27-0f08-11f0-9ffb-bf95429c2676;
 Tue, 01 Apr 2025 16:47:06 +0200 (CEST)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-39c266c2dd5so454408f8f.3
 for <xen-devel@lists.xenproject.org>; Tue, 01 Apr 2025 07:47:06 -0700 (PDT)
Received: from localhost.localdomain (host-92-26-98-202.as13285.net.
 [92.26.98.202]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39c0b66a96dsm14091348f8f.44.2025.04.01.07.47.05
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 01 Apr 2025 07:47: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: 2eaf8b27-0f08-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1743518826; x=1744123626; 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=x1ng98cg6r0EpaZ0hRdZSynFb1XZuzv1vYF46lpGdfU=;
        b=wFtIsmytnUIbr+D4iM406rxPBUtra3qRwjbGQ1A0wQkWKvkA2HIN/fNxRnBGsVPgWi
         fBc5hojjIHO9lbuICyO+5x1q5mm9GFi61nFT8NzgMq2vn3XKqnSVOSl62/DOLrDNU5No
         h0v/99CRAXTW4gAxe+RFNREQKlaRapTOKCjUw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743518826; x=1744123626;
        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=x1ng98cg6r0EpaZ0hRdZSynFb1XZuzv1vYF46lpGdfU=;
        b=wQU77hKnrOlu0r6BBsNpnGrFIf+gISY25Dmnk2zCNA35XjvUohVUAnsWh08Vpr6zHV
         ZIZMDmeKVlMEApwfb5HsdO67oiVS8j6owXQtMVIV0NCK6Y5r0zjqYl0oCcVj4uxqTF2u
         iY7amC3QHnAT15tXP9exbHi9pZ0TMMIuNcXJlxjcoymdC2MhxlCOb1J2MjxWJb7DA3Mn
         MGlHWZhx9EPL3SMijIWZF4AfqnQHtMZIN+gQjUzrUX9YgbLVuAOVwXgMYgMxwgcuR+lU
         6WXy2vaoOCMScm98CTO58KJfWC6KzEQuQy6XZ9ATUgM8w7aM1Xsd2TmAdNWtNuGxieqM
         ZK0g==
X-Gm-Message-State: AOJu0Yxhl4nhHGLGWPacd60LuP/RE4TgKHI0EGmnf2FNlgzHfRsfyR4F
	RcB5kKU28sKaIKZWC6mkk8cD3eJhD/ZYnf2QF6tjf17zVkvxcoQIw8RMM2sS9xje6Se2OpO6GL+
	WvXw=
X-Gm-Gg: ASbGncs5E23/Rre6dYxxyZD6iwq4R+1yjPGpI8+zpRI3XvMZSiXII0tqC6zvEhFArFT
	4qQ6Jt6bYRCDP7Boq/DkucBFp+LzclWNI2EjvA+12eJYXcaB8vAfKJrp1kMUvw4Ln58gChlFUdb
	nMTgWZTtQeAr2uuBTY3OY5i/EOF2Fg77f9LvCuVv+4AlvY3nGwSLf0NjSqYe+0uL7E/NLE+6rYG
	FL00uNPPHyYhowKtUlsfu4/XR94KQk9oH5a/y7rxKev1UMm+mnv9H+0ajoQIHMIlKOaSogcY02f
	NkiLphX6gMpjKggYOrjHaWMCWi8OAHl4/Dj7XpLxhV+qjqILtDMYvcuLRPhmWdVzo1/6YYnkrRl
	y5JY28f8BojVjVqjXuw==
X-Google-Smtp-Source: AGHT+IFpPFkWRyeQp3pd7RYDaNWk6Aj7tRtunrZmPS+65o57D8DsP9c6hEky4TvxrottFPKWuuq01Q==
X-Received: by 2002:a5d:47c1:0:b0:391:2995:5ef2 with SMTP id ffacd0b85a97d-39c12114e24mr10673851f8f.37.1743518825863;
        Tue, 01 Apr 2025 07:47:05 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Shawn Anastasio <sanastasio@raptorengineering.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH] xen/arch: Simplify $(TARGET)-syms rule
Date: Tue,  1 Apr 2025 15:47:03 +0100
Message-Id: <20250401144703.961836-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

In all cases, "-T $(obj)/xen.lds" can be factored out by appending to
XEN_LDFLAGS.  This takes the $(LD) commands from multi-line to single-line.

x86 uses $(build_id_linker) for all links, so factor that out too.

No functional change.

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

This is based on top of Roger's "xen: remove -N from the linker command line".

x86 might want to follow ARM's lead and only use $(build_id_linker) on the
final link.  It also wants extending to PPC/RISC-V

$(orphan-handling-y) needs making common and using ouside of x86 too.
---
 xen/arch/arm/Makefile   | 10 ++++------
 xen/arch/ppc/Makefile   | 10 ++++------
 xen/arch/riscv/Makefile | 10 ++++------
 xen/arch/x86/Makefile   | 10 ++++------
 4 files changed, 16 insertions(+), 24 deletions(-)

diff --git a/xen/arch/arm/Makefile b/xen/arch/arm/Makefile
index 129a109d6ec5..811adf3567c4 100644
--- a/xen/arch/arm/Makefile
+++ b/xen/arch/arm/Makefile
@@ -96,21 +96,19 @@ ifeq ($(CONFIG_ARM_64),y)
 	ln -sf $(@F) $@.efi
 endif
 
+$(TARGET)-syms: XEN_LDFLAGS += -T $(obj)/xen.lds
 $(TARGET)-syms: $(objtree)/prelink.o $(obj)/xen.lds
-	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< \
-	    $(objtree)/common/symbols-dummy.o -o $(dot-target).0
+	$(LD) $(XEN_LDFLAGS) $< $(objtree)/common/symbols-dummy.o -o $(dot-target).0
 	$(NM) -pa --format=sysv $(dot-target).0 \
 		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
 		> $(dot-target).0.S
 	$(MAKE) $(build)=$(@D) $(dot-target).0.o
-	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< \
-	    $(dot-target).0.o -o $(dot-target).1
+	$(LD) $(XEN_LDFLAGS) $< $(dot-target).0.o -o $(dot-target).1
 	$(NM) -pa --format=sysv $(dot-target).1 \
 		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
 		> $(dot-target).1.S
 	$(MAKE) $(build)=$(@D) $(dot-target).1.o
-	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< $(build_id_linker) \
-	    $(dot-target).1.o -o $@
+	$(LD) $(XEN_LDFLAGS) $< $(build_id_linker) $(dot-target).1.o -o $@
 	$(NM) -pa --format=sysv $@ \
 		| $(objtree)/tools/symbols --all-symbols --xensyms --sysv --sort \
 		> $@.map
diff --git a/xen/arch/ppc/Makefile b/xen/arch/ppc/Makefile
index cf27bcebb25a..9ba23ecfff7e 100644
--- a/xen/arch/ppc/Makefile
+++ b/xen/arch/ppc/Makefile
@@ -11,21 +11,19 @@ obj-y += tlb-radix.o
 $(TARGET): $(TARGET)-syms
 	cp -f $< $@
 
+$(TARGET)-syms: XEN_LDFLAGS += -T $(obj)/xen.lds
 $(TARGET)-syms: $(objtree)/prelink.o $(obj)/xen.lds
-	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< \
-	    $(objtree)/common/symbols-dummy.o -o $(dot-target).0
+	$(LD) $(XEN_LDFLAGS) $< $(objtree)/common/symbols-dummy.o -o $(dot-target).0
 	$(NM) -pa --format=sysv $(dot-target).0 \
 		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
 		> $(dot-target).0.S
 	$(MAKE) $(build)=$(@D) $(dot-target).0.o
-	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< \
-	    $(dot-target).0.o -o $(dot-target).1
+	$(LD) $(XEN_LDFLAGS) $< $(dot-target).0.o -o $(dot-target).1
 	$(NM) -pa --format=sysv $(dot-target).1 \
 		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
 		> $(dot-target).1.S
 	$(MAKE) $(build)=$(@D) $(dot-target).1.o
-	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< $(build_id_linker) \
-	    $(dot-target).1.o -o $@
+	$(LD) $(XEN_LDFLAGS) $< $(build_id_linker) $(dot-target).1.o -o $@
 	$(NM) -pa --format=sysv $@ \
 		| $(objtree)/tools/symbols --all-symbols --xensyms --sysv --sort \
 		> $@.map
diff --git a/xen/arch/riscv/Makefile b/xen/arch/riscv/Makefile
index 516f5d505ca8..92e084db91a2 100644
--- a/xen/arch/riscv/Makefile
+++ b/xen/arch/riscv/Makefile
@@ -15,21 +15,19 @@ obj-y += vm_event.o
 $(TARGET): $(TARGET)-syms
 	$(OBJCOPY) -O binary -S $< $@
 
+$(TARGET)-syms: XEN_LDFLAGS += -T $(obj)/xen.lds
 $(TARGET)-syms: $(objtree)/prelink.o $(obj)/xen.lds
-	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< \
-	    $(objtree)/common/symbols-dummy.o -o $(dot-target).0
+	$(LD) $(XEN_LDFLAGS) $< $(objtree)/common/symbols-dummy.o -o $(dot-target).0
 	$(NM) -pa --format=sysv $(dot-target).0 \
 		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
 		> $(dot-target).0.S
 	$(MAKE) $(build)=$(@D) $(dot-target).0.o
-	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< \
-	    $(dot-target).0.o -o $(dot-target).1
+	$(LD) $(XEN_LDFLAGS) $< $(dot-target).0.o -o $(dot-target).1
 	$(NM) -pa --format=sysv $(dot-target).1 \
 		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
 		> $(dot-target).1.S
 	$(MAKE) $(build)=$(@D) $(dot-target).1.o
-	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< $(build_id_linker) \
-	    $(dot-target).1.o -o $@
+	$(LD) $(XEN_LDFLAGS) $< $(build_id_linker) $(dot-target).1.o -o $@
 	$(NM) -pa --format=sysv $@ \
 		| $(objtree)/tools/symbols --all-symbols --xensyms --sysv --sort \
 		> $@.map
diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
index c2f1dcf301d6..b5227aeabb81 100644
--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -138,21 +138,19 @@ $(TARGET): $(TARGET)-syms $(efi-y) $(obj)/boot/mkelf32
 
 CFLAGS-$(XEN_BUILD_EFI) += -DXEN_BUILD_EFI
 
+$(TARGET)-syms: XEN_LDFLAGS += -T $(obj)/xen.lds $(build_id_linker)
 $(TARGET)-syms: $(objtree)/prelink.o $(obj)/xen.lds
-	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< $(build_id_linker) \
-	    $(objtree)/common/symbols-dummy.o -o $(dot-target).0
+	$(LD) $(XEN_LDFLAGS) $< $(objtree)/common/symbols-dummy.o -o $(dot-target).0
 	$(NM) -pa --format=sysv $(dot-target).0 \
 		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
 		> $(dot-target).0.S
 	$(MAKE) $(build)=$(@D) $(dot-target).0.o
-	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< $(build_id_linker) \
-	    $(dot-target).0.o -o $(dot-target).1
+	$(LD) $(XEN_LDFLAGS) $< $(dot-target).0.o -o $(dot-target).1
 	$(NM) -pa --format=sysv $(dot-target).1 \
 		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort $(syms-warn-dup-y) \
 		> $(dot-target).1.S
 	$(MAKE) $(build)=$(@D) $(dot-target).1.o
-	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< $(build_id_linker) \
-	    $(orphan-handling-y) $(dot-target).1.o -o $@
+	$(LD) $(XEN_LDFLAGS) $< $(orphan-handling-y) $(dot-target).1.o -o $@
 	$(NM) -pa --format=sysv $@ \
 		| $(objtree)/tools/symbols --all-symbols --xensyms --sysv --sort \
 		> $@.map

base-commit: debe8bf537ec2c69a4734393cd2b0c7f57f74c0c
prerequisite-patch-id: 7911818c8833f061c9476332975b9aecb69bc26d
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Tue Apr 01 14:49:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 14:49:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.934520.1336200 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzcvc-00028p-Mx; Tue, 01 Apr 2025 14:49:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 934520.1336200; Tue, 01 Apr 2025 14: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 1tzcvc-00028i-IW; Tue, 01 Apr 2025 14:49:24 +0000
Received: by outflank-mailman (input) for mailman id 934520;
 Tue, 01 Apr 2025 14:49: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=hrmQ=WT=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1tzcva-00028a-UN
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 14:49:23 +0000
Received: from DU2PR03CU002.outbound.protection.outlook.com
 (mail-northeuropeazlp170120003.outbound.protection.outlook.com
 [2a01:111:f403:c200::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7e386e76-0f08-11f0-9ffb-bf95429c2676;
 Tue, 01 Apr 2025 16:49:20 +0200 (CEST)
Received: from AS9PR06CA0566.eurprd06.prod.outlook.com (2603:10a6:20b:485::27)
 by AS8PR08MB9888.eurprd08.prod.outlook.com (2603:10a6:20b:5ba::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.44; Tue, 1 Apr
 2025 14:49:15 +0000
Received: from AM2PEPF0001C70E.eurprd05.prod.outlook.com
 (2603:10a6:20b:485:cafe::ca) by AS9PR06CA0566.outlook.office365.com
 (2603:10a6:20b:485::27) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8534.54 via Frontend Transport; Tue,
 1 Apr 2025 14:49:15 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 AM2PEPF0001C70E.mail.protection.outlook.com (10.167.16.202) with
 Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8606.22
 via Frontend Transport; Tue, 1 Apr 2025 14:49:14 +0000
Received: ("Tessian outbound d933a9851b56:v604");
 Tue, 01 Apr 2025 14:49:13 +0000
Received: from L57e4fcb3af52.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 DB63007D-FF76-48DB-820D-339FB22D78DE.1; 
 Tue, 01 Apr 2025 14:49:07 +0000
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id
 L57e4fcb3af52.1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Tue, 01 Apr 2025 14:49:07 +0000
Received: from DB9PR08MB6588.eurprd08.prod.outlook.com (2603:10a6:10:25a::24)
 by AS2PR08MB9739.eurprd08.prod.outlook.com (2603:10a6:20b:605::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.44; Tue, 1 Apr
 2025 14:49:05 +0000
Received: from DB9PR08MB6588.eurprd08.prod.outlook.com
 ([fe80::a8fc:ea0d:baf1:23a]) by DB9PR08MB6588.eurprd08.prod.outlook.com
 ([fe80::a8fc:ea0d:baf1:23a%7]) with mapi id 15.20.8534.048; Tue, 1 Apr 2025
 14:49: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: 7e386e76-0f08-11f0-9ffb-bf95429c2676
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=jS3vU61gwIWrUyf+iexoekfuvhBfQDhl49izRVqt/UqUayeh4yv/hbZHiqyMO7pLfvClLxRnNsbwfBVkIQoMY5dPZTNIKG8CgHwCGHJF8VPPP4pRwH7yFDpw7U9kU0LRfFviF0jpZ6VXjt1zKBRZ4t1blZExxfWzM7S4Q2EzUEJ//Z/iKuSFz9YYWcfh4WS6t7tY/TzGzXOhxTrOjValL9hb/PHTQpD+JE0WrYew5EwFLHMFsGgf3/r/a9OC8D98/r3THOnusdKkjOCyr4xo9M0yJ0ounmzHqryUxW8RnRkfHPgIiEzSctSnlpNTafdBWw8PgVVLPWldGzWrv/56NQ==
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=LBoxAhTMvGTHVvXw6TRdNqZ5477E5cRCBeyA5QD0awA=;
 b=mr+LR2yUDOA0Nf7AUEIwcILw6nmij6vqXEK8NUcDgqKjDn+VOYajVSZFOcnn7veK2orCCqQHlZw5VyWwEaMUAI0QBVVAoVBEA1kOOvM8pGv1xiCXIRjXQCX1aOqLmFSnXkI0Jt5EDYWMt9jWu+ggpjzZXPpnsgLvndoZRcwNZMG560LxSzEFqPP6Y5zF3TPDZIUOBpS04pbqJ8X05wPSSP6Vo8x38p6TjT6NtVB1zOlsb+kJMYYUrDLZVZrfB+1R0Km+z2XqZmGoXDmKnoztTAnzi9kwtTiO0+kQZDegP107ShVstLSnjrr4Z73knS1jOYDTvHcib+7hUm/0LRfnFg==
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=LBoxAhTMvGTHVvXw6TRdNqZ5477E5cRCBeyA5QD0awA=;
 b=nbHg+7ZicZCqICPt+tIqpcnqcNrmUx2JAkj0ycSkmkk2PUCegnwQGz9Z2Mb20Uh5HXZGCJQZR9VqVbak0MF41YR0xlyvi3JUdUzYgKuJ/PWlS7NfAY1uVXptP3Lu3Az1BEKe4r3avR8rCSN7VZrfPF2OEYAL1A5ywxidQJiF+jw=
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: 45346fb1b0927520
X-TessianGatewayMetadata: B+XeTytQrhw3kQ/pw0LwH/OPjFHhlcfJNV/15Nr5CAkwHlEv6BQULan9XY9jpLyGMqTXam84mgOTxT4t0QOAX+cDwGALZTKHmAaFVcxQgREWBmy+v0b0hQTMADEkcZaKAjqgEscu1cmYron96P8f3uy+4ZKiSWueuyS3s6KAHB8=
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=d24qkDXRrfX4egOHecja84hbUyCOQa2jpbjzi55wsltB8Zw48sCrDS9iK7Uy0PR1GvPYE4WPeBLWuJHOKQKtxKdOjwPJLS7VfRSms/WE5XytpYZcndx4nUXl2xBXj7INTe1mGVVwc7BCl6dEfjOwBV3n8XdjS17BM9fRXWwEfntrt1A97pB8WafOLYSG8gz3a3yu2g1bmMolzNkKjCj3ok5WyPrPpzPMXQ93qaFAnJ4uXwXzxepRSw78HTqvEsEE1o4v/JFAMu3HMKhHH3ccyxoCJgxgIbnZsnzR6piB4putSZDJ9pdT+XB0IMzhFHLn3b9qGyQfnxH8YSPlSfsIHA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=LBoxAhTMvGTHVvXw6TRdNqZ5477E5cRCBeyA5QD0awA=;
 b=rIqgQ2+RrucAiIzXQ6YmJuIi4PcI6l85kRWnEwLeonrCkv7573bX8rOTFa5v0y6VMYGyGweZSlt8O3M1O4j+PaEdnTVwwJE3Xbm8T6otGMyFIMtajeyIYMweUBEl/5XXcskzCEtojAFblymKkbtH32Lo1nc6TAMKaVS0kPMzUNMErGZtNcUkt85p43POJy6wwf0onUJ4+FDiUlZeovrZslyZKNaz86HkhCbyFWWxaCRvH9YQEoS3Eob7+uIl1Zz7bDAM+t/TvYvdwf+iU6Z3ZLXHTK3yPQvPZnd1vMwz0tA/vS3JjZ7tKmBH/ci0m1s/VtmNT2cTkFoluz6mTanRmA==
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=LBoxAhTMvGTHVvXw6TRdNqZ5477E5cRCBeyA5QD0awA=;
 b=nbHg+7ZicZCqICPt+tIqpcnqcNrmUx2JAkj0ycSkmkk2PUCegnwQGz9Z2Mb20Uh5HXZGCJQZR9VqVbak0MF41YR0xlyvi3JUdUzYgKuJ/PWlS7NfAY1uVXptP3Lu3Az1BEKe4r3avR8rCSN7VZrfPF2OEYAL1A5ywxidQJiF+jw=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: "Orzel, Michal" <Michal.Orzel@amd.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH] xen/arm: Drop process_shm_chosen()
Thread-Topic: [PATCH] xen/arm: Drop process_shm_chosen()
Thread-Index: AQHbouXQNh7nKprt5k2iUHPtnXy/N7OOxVgAgAAX+QCAAAdEAA==
Date: Tue, 1 Apr 2025 14:49:05 +0000
Message-ID: <237153F4-56B2-40AD-A2D4-824B621D3477@arm.com>
References: <20250401090937.105187-1-michal.orzel@amd.com>
 <3D313BC0-75C9-4208-9067-C1F6153B3859@arm.com>
 <f7a6dd50-28d9-409b-8740-f4433f2fd72e@amd.com>
In-Reply-To: <f7a6dd50-28d9-409b-8740-f4433f2fd72e@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.400.131.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DB9PR08MB6588:EE_|AS2PR08MB9739:EE_|AM2PEPF0001C70E:EE_|AS8PR08MB9888:EE_
X-MS-Office365-Filtering-Correlation-Id: df459a68-69ec-4f77-2252-08dd712c5f54
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?9kl58yCHIEeG9yWA3zvAflHtS1iCQTf6gWAsz3BaQ1mdqzCSyz6vy57K4goy?=
 =?us-ascii?Q?hvuFoTYjqL9bizJlvIL165O/EGerPtf2+U+STMU9LWFfN4tC03SYYVTo5GLQ?=
 =?us-ascii?Q?fnpMz72VmSuY9yy7Kt3cMmraYFz8hyAP9TQFAamPSoG6qimTVZwET4VhC3UG?=
 =?us-ascii?Q?UdisN2LvwJ3gbevBR6zJV1IUKek/lcsYdcTCXxLm45FDPxCZy7pbkv3he0DP?=
 =?us-ascii?Q?xCNdOh8BHX1j/0QooyU0EiRY3JNsurFXQGyfo+f5PNUbdFe0QjWrhZC6N3/4?=
 =?us-ascii?Q?xnNbZx95aQZgbWVIN/JTvt6wRdot2+RgMITvPaZF6HG2gj63VeVbxH2b+dHX?=
 =?us-ascii?Q?2YM3bAxcgT8AWnhpyh4SNsFbltef4HHNiMcT/cOf7tbubxKDrsZppLNPfFc3?=
 =?us-ascii?Q?cnBbzizdQ+fHDv2Y8ibq1FF8cOZL8hoihSEt/pTs4OcGavkJgLU42Tvyek1v?=
 =?us-ascii?Q?Ox0Dme+gdDTry/B1kwmwg9QdTZDlyWxjM6peQmspAaw2BO13/bNNjY3ijneV?=
 =?us-ascii?Q?oikuOILd71EnBjLyQGK/X93AOvwFHgxyYmLsdX0emjVR5l4ftaVbr4oDXcSd?=
 =?us-ascii?Q?1s1r0DFKRcWaAmwpnSXegqEvZ5uZD2D/6E9QSOG/kx+m4jdJksu4LYcM4V+/?=
 =?us-ascii?Q?3GzIN3f6XIRL2nobuLre2oeqNVFEJ6c463nCLG0CzwY541l4On0d/8rohVd7?=
 =?us-ascii?Q?iypeOZ7bYSrhDok8OPNvEOe66eJ8wMKeJxkX6I0oSxEsfAiIUS+jk2ACUoyJ?=
 =?us-ascii?Q?eFu2DmllqYddgq9yJiN90jzOrW6CrTDP3KiW7+AenE3EDnqJ4yneRFtfhg6W?=
 =?us-ascii?Q?HrF27ZW0wrM7YlqiYPKvPb35tve2j2cVKmS8h7fT73g6sQQvXJL5Z3DdHDvh?=
 =?us-ascii?Q?jRzormkjbN2jUjInGfMYkLgqkKKjWC+6S8iLnXJeGGX0h3EM3+vCGZ/SVf+/?=
 =?us-ascii?Q?MXRvsw/LkldQKogn5P1546vSJjDTiKnxGyMrk5u2JYwZC0zYeU+5m9Bm5SNb?=
 =?us-ascii?Q?avZqbnh09I3EXVYSd0IwUlvpjTaxjXIIYam+gQwjH8kxKLr3dvc9T82xU79n?=
 =?us-ascii?Q?K9q8vjt/CMToS9JHqf8tnjJNFMgejVorX+I+pJ+ZlNA7VLWwTqoTSOtQcU51?=
 =?us-ascii?Q?T6QSD7oIRpWucVeZUkGns1GGUg6sHrrnd0JvnE4AkemAHKfOF+G5lohgSJvT?=
 =?us-ascii?Q?dNb9zx5i0l3UWXAciJUFqnPmfxGPTRWmUZGdx67cmD/1c0q2y5guyHiQ8yHH?=
 =?us-ascii?Q?EzmaH7Hl1Imlv85Mv0G9iIXg9WmRcfz54fq2Ly+3Aq7mvfCt79A2JFfXKnV2?=
 =?us-ascii?Q?fTEzjpsrKwIUiliZfonoYJZdN7E1SVyUCfOPVWpPQQyNMXiVRjdFD2D7sn6q?=
 =?us-ascii?Q?H2YSwQM/FkAa2kL/C6U7siyBmoGInScpU5n/rHKeuyYdufuAbkc+oC6891YY?=
 =?us-ascii?Q?FhKF1xMfdGuU6oSnAUhlx/YLDCSNNXyg?=
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)(376014)(38070700018);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-ID: <F3488EC0DC0F374A822ED68F4F0ADEA2@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR08MB9739
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:
 AM2PEPF0001C70E.eurprd05.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	82e62bf4-410d-44e5-1fd2-08dd712c59a0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|14060799003|36860700013|1800799024|82310400026|376014|35042699022;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?F0XE7K/fBZAeI/BoskgXfuFEwmeQvC2hAFIWLfqyvxezIcD2a3JPGQ0XeTnH?=
 =?us-ascii?Q?Wjr2W8MAzU2sQYKIJ6a56YFngZ/8E8NLMr0cw4ydHm/4BP6DfSXzq06D46UC?=
 =?us-ascii?Q?Grb7sRG/9EIHJXIg4bVA5sujNXaRaEXoZZipklnAj6eIIcmuGwNvRh84TjIL?=
 =?us-ascii?Q?+V69eO/peHFUQ2RdheR3ifZ39SMTjlmFNygRsb7X4mYNNhEHRRIZ5BVPIBl5?=
 =?us-ascii?Q?46sRUA/bblVeHIBTf1Kxg5a9DT5Wdtb5Nyv51f3woMaRB7mAHr0H0JgxMI/x?=
 =?us-ascii?Q?cm8CbXOkHNGwd66zhrgagXB+RAQs11tOAm73ocnLuFQhFDW8np9x8BUZHZ7Y?=
 =?us-ascii?Q?rbSb2r0pQCQME5H8wGBE8ASR0bL3c3cA6lbuK/1RJpllRCXx1HeZkFiAjpxc?=
 =?us-ascii?Q?YfWfHrGty0CEEAyno+CCknps3WxMXddsSiXfuMsI+ItrK0NxvdjPu/ZAPMUG?=
 =?us-ascii?Q?5m+CIRhmvrOEd58DpxULnhwhiK0SnwcPJVPFvvm374+q4TPWjyqfF13b7GBU?=
 =?us-ascii?Q?lciFM7nX7mm8eyAs5gDuhh4C6KBsDREo/STQ9Yv8blwTBQGRmLC1qZbBJt1d?=
 =?us-ascii?Q?JE181Z973ksUTRygz2/9+GSiNvsBC2j2abaKuMCEaWrx6aO91sQkW0y+Wu0n?=
 =?us-ascii?Q?c6c+dYyH9jY0V8/AcDuv9cAdMUxxwA3TAeEMCJdcOTyRnOxG+Kok71nTPwu+?=
 =?us-ascii?Q?ZIjM2qQRykyRqlRt7HMmCwHNKjVnje8gKkE6RDqi80ILTyOfGmW/k8n9PQpl?=
 =?us-ascii?Q?uoGEK3NXqHrmnlYWeG4mSOVnFKJWqODW/hti0CYcGiCqRR6sMnzgYFCWLwjc?=
 =?us-ascii?Q?GCJTdWnJmfKSTjKF1t55fAPDb8L9EEjh8QhlQ7Llw1kcfx2T0F21BbIoSLFn?=
 =?us-ascii?Q?2+Qq9TiblZFgyXYuo53hep9i4IlCVC7ZLTSGzeYhzNnak1FNkNtZqEljn/QJ?=
 =?us-ascii?Q?6b5RH0hKIs7qKxWZZrlWjD/LDl2cyUkiuLjJcmQarVac6HiklaImAAcHFy5M?=
 =?us-ascii?Q?vfnqr7G7AQU3mdyFgjxMHAiAqyLW+tSWa1xezl8EUto0Hp2PcKm9u86H7Fps?=
 =?us-ascii?Q?68NlkaHkrjBPjC9eNkru6F2tTgHGgB8C5W6B+u/R0of+kLPcKOsfwGiyZsFU?=
 =?us-ascii?Q?j1naRL+U7Y1cdotJz/nBEfidfMm3WFSKy//FTf85gLAfNXcBjMzXKiX4FYwn?=
 =?us-ascii?Q?DMdf/96Ar9BaAkiYQ+yFgikySXxAOwUtt5KKavfwiE/O1OBtPdtWbgnops42?=
 =?us-ascii?Q?AH4xOdbpesLz0WDaCxmdu5psEtL/EWxKk1QzYmissTuNhWXsVJgkHgtJOFzy?=
 =?us-ascii?Q?jo51RVQ8vj/M1SWLPhnvjZsXCTdflZBfp0YifjzFlSJ9+wAahBt0ZSoBmL4Y?=
 =?us-ascii?Q?hIofyVPxo0N9rWO7xO9Ss9DTG4f7W3k2z/x6Hte+ldeiK4B4p1k7r6gwDTKf?=
 =?us-ascii?Q?YaXCNHr111OVxzzroqQO+3/bQwgqD/tDXy6SMO7+mxbgpfvLXs5MLoqXEmEQ?=
 =?us-ascii?Q?jEPv3sMQBlgkcUU=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)(36860700013)(1800799024)(82310400026)(376014)(35042699022);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Apr 2025 14:49:14.7390
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: df459a68-69ec-4f77-2252-08dd712c5f54
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:
	AM2PEPF0001C70E.eurprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB9888

Hi,

> On 1 Apr 2025, at 16:22, Orzel, Michal <Michal.Orzel@amd.com> wrote:
>=20
>=20
>=20
> On 01/04/2025 14:57, Bertrand Marquis wrote:
>>=20
>>=20
>> Hi Michal,
>>=20
>>> On 1 Apr 2025, at 11:09, Michal Orzel <michal.orzel@amd.com> wrote:
>>>=20
>>> There's no benefit in having process_shm_chosen() next to process_shm()=
.
>>> The former is just a helper to pass "/chosen" node to the latter for
>>> hwdom case. Drop process_shm_chosen() and instead use process_shm()
>>> passing NULL as node parameter, which will result in searching for and
>>> using /chosen to find shm node (the DT full path search is done in
>>> process_shm() to avoid expensive lookup if !CONFIG_STATIC_SHM). This
>>> will simplify future handling of hw/control domain separation.
>>>=20
>>> Signed-off-by: Michal Orzel <michal.orzel@amd.com>
>>> ---
>>> xen/arch/arm/domain_build.c             |  2 +-
>>> xen/arch/arm/include/asm/static-shmem.h | 14 --------------
>>> xen/arch/arm/static-shmem.c             |  4 ++++
>>> 3 files changed, 5 insertions(+), 15 deletions(-)
>>>=20
>>> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
>>> index 2b5b4331834f..7f9e17e1de4d 100644
>>> --- a/xen/arch/arm/domain_build.c
>>> +++ b/xen/arch/arm/domain_build.c
>>> @@ -2325,7 +2325,7 @@ int __init construct_hwdom(struct kernel_info *ki=
nfo)
>>>    else
>>>        allocate_memory(d, kinfo);
>>>=20
>>> -    rc =3D process_shm_chosen(d, kinfo);
>>> +    rc =3D process_shm(d, kinfo, NULL);
>>>    if ( rc < 0 )
>>>        return rc;
>>>=20
>>> diff --git a/xen/arch/arm/include/asm/static-shmem.h b/xen/arch/arm/inc=
lude/asm/static-shmem.h
>>> index fd0867c4f26b..94eaa9d500f9 100644
>>> --- a/xen/arch/arm/include/asm/static-shmem.h
>>> +++ b/xen/arch/arm/include/asm/static-shmem.h
>>> @@ -18,14 +18,6 @@ int make_resv_memory_node(const struct kernel_info *=
kinfo, int addrcells,
>>> int process_shm(struct domain *d, struct kernel_info *kinfo,
>>>                const struct dt_device_node *node);
>>>=20
>>> -static inline int process_shm_chosen(struct domain *d,
>>> -                                     struct kernel_info *kinfo)
>>> -{
>>> -    const struct dt_device_node *node =3D dt_find_node_by_path("/chose=
n");
>>> -
>>> -    return process_shm(d, kinfo, node);
>>> -}
>>> -
>>> int process_shm_node(const void *fdt, int node, uint32_t address_cells,
>>>                     uint32_t size_cells);
>>>=20
>>> @@ -74,12 +66,6 @@ static inline int process_shm(struct domain *d, stru=
ct kernel_info *kinfo,
>>>    return 0;
>>> }
>>>=20
>>> -static inline int process_shm_chosen(struct domain *d,
>>> -                                     struct kernel_info *kinfo)
>>> -{
>>> -    return 0;
>>> -}
>>> -
>>> static inline void init_sharedmem_pages(void) {};
>>>=20
>>> static inline int remove_shm_from_rangeset(const struct kernel_info *ki=
nfo,
>>> diff --git a/xen/arch/arm/static-shmem.c b/xen/arch/arm/static-shmem.c
>>> index c74fa13d4847..cda90105923d 100644
>>> --- a/xen/arch/arm/static-shmem.c
>>> +++ b/xen/arch/arm/static-shmem.c
>>> @@ -297,6 +297,10 @@ int __init process_shm(struct domain *d, struct ke=
rnel_info *kinfo,
>>> {
>>>    struct dt_device_node *shm_node;
>>>=20
>>> +    /* Hwdom case - shm node under /chosen */
>>> +    if ( !node )
>>> +        node =3D dt_find_node_by_path("/chosen");
>>> +
>>=20
>> I would have 2 questions here:
>> - what if a NULL pointer is passed, wouldn't you wrongly look in the mai=
n device tree ?
> Do you mean from hwdom or domU path? In the former it is expected. In the=
 latter
> it would be a bug given that there are several dozens of things that oper=
ate on
> this node being a /chosen/domU@X node before we pass node to process_shm(=
).
>=20
>> - isn't there a NULL case to be handled if dt_find_node_by_path does not=
 find a result ?
> It wasn't validated before this change. It would be catched in early boot=
 code
> so no worries.

Then an ASSERT on NULL would be good.

>=20
>>=20
>> Couldn't the condition also check for the domain to be the hwdom ?
> I could although we have so many /chosen and hwdom asserts in the tree in=
 the
> dom0 creation that I find it not necessary.

There are never to many asserts but ok :-)

With an ASSERT added for the NULL case you can add my R-b.

Cheers
Bertrand

>=20
> ~Michal




From xen-devel-bounces@lists.xenproject.org Tue Apr 01 14:49:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 14:49:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.934533.1336208 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzcw6-0002bA-UO; Tue, 01 Apr 2025 14:49:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 934533.1336208; Tue, 01 Apr 2025 14:49: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 1tzcw6-0002b3-RZ; Tue, 01 Apr 2025 14:49:54 +0000
Received: by outflank-mailman (input) for mailman id 934533;
 Tue, 01 Apr 2025 14:49: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=WxAi=WT=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tzcw5-00028a-KZ
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 14:49:53 +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 90ee4f11-0f08-11f0-9ffb-bf95429c2676;
 Tue, 01 Apr 2025 16:49:51 +0200 (CEST)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-4393dc02b78so36888225e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 01 Apr 2025 07:49:51 -0700 (PDT)
Received: from [10.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-39c0b7a41f5sm14158388f8f.84.2025.04.01.07.49.50
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 01 Apr 2025 07:49: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: 90ee4f11-0f08-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743518991; x=1744123791; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=bf4xWtutcIU0nIWyeM8P8wncGvIAGEevQlSWy4SuPjA=;
        b=C1E6hs4zZ2NST/pONrR0Jw4k+1m5tkK3AtRKYCXS1WA7hc+NwmTei21siagL1j3sAC
         Lg76UsusE/WstFlLc0cTPicvMeucAD4bZ++CD/iHUcgI+psVHWh8a6OQxpcq2/+cAyoX
         KbNRM/ealhtTiYxqIZh2QDcoWF397a9/B3FIFJUmmYIxmW9TqmcOsfp8u6NDgYvyYicF
         5B7TWVYh/LwCrnsnP7DocW6DQz+MO16xdj4AmR8KzZ6KsQkAgAr/WaTcDxiRRmP7GOLR
         7CAfvudnSgm8jPwEY4qKnRWTR/9lhZnf4t69JJL3Qxhh73T1DzLUvnwRsjnromSxlBWj
         rMrA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743518991; x=1744123791;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=bf4xWtutcIU0nIWyeM8P8wncGvIAGEevQlSWy4SuPjA=;
        b=eSZiN/sdWmPiq5GQr5iqXi0xLGm7OCsJOorM6OJA/En85x60TWsTu2J92daKsr3ckk
         phQ2/gaYJfBX5ToWLRJH/++xnqDhUSnJ4tWXX3rmxlslcXNmwsVVeD9jpkTaP5D1HhC+
         lQIR6I+6rm3zCqXcd3LzovIpV3KTEjUNoa8Vv0QVhog2Ql97ZfewHzByOpAcCA0Opfc7
         Y2xGhYUfQMYpCkCgawjpl8oYiMpcwHIiUSevy+Aw0VIRGl7wrfXisQWKpCorBKgtt0v7
         vg+Ui6u0rrent7HsNEznr1vbsRhgHRcjv3JJ9KhsR4wDtrIOUJmlDwGOCx7ysr/Yb+Sq
         Qg8w==
X-Forwarded-Encrypted: i=1; AJvYcCVL1HOUP4nnPxf+vV7oDzn5fCYWPfzf935CMqBKIpzHEyX61JbqxE27z6NYbKUsCmt+M4yg4/5h8VI=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywklaskc7MqTE+2uuXXM8AzYJ4u0s7xxbfK3mt9YrvFgoJasZof
	l+bWCLdtvBpQnI6EbuGS8WrPjHRlu0eNvcZvaahgBRJoEVYfsn3elR748xke6A==
X-Gm-Gg: ASbGnctp7Hd19qVW6oWU9M/Nif/UrRm61KUDPqnG7xKifwzJqGNMdXk46sr/FQXwHhX
	j9jLYju4VhXHWVF03shQt0E5H+z4cvLna9w1y5OjYd0Ot5TCGdjO4i4asaMj4VHRCGcohNqXIyy
	Xootoak01+tAIEYNA8Zv5iDM0LTFubfXzg8YSSkdMm/Elfe6eRYUIMmgcSmz3wxiT5fYNbmKPSb
	VYajPX8LHzxnN7FdnjACYs/objDc8VuGHVLjlohr71yekuVvHEnvvRNOhQeRpSQedXqTB8ufn5j
	/6tUGVdH+TOaq8Q5p5LBpr3yULQZ5RYaGXdtODwQZLI9xILkBcB6agWeR532q1ogIsYk+ay4T6+
	poG0iioJg4PQ7pWKh4QR5dNyQ5CPeGg==
X-Google-Smtp-Source: AGHT+IE/KyBhInVGibA+sbRLDo1czCrkiOmrJ3LyC5soQg7zujsoLTFtmBHZvHUetzNAIkFTjtneFQ==
X-Received: by 2002:a05:6000:178c:b0:39c:2264:fb22 with SMTP id ffacd0b85a97d-39c2366b028mr2691598f8f.46.1743518991020;
        Tue, 01 Apr 2025 07:49:51 -0700 (PDT)
Message-ID: <8a1bc63a-125f-424b-87bd-acd608fdab73@suse.com>
Date: Tue, 1 Apr 2025 16:49:49 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 19/19] xen/sysctl: wrap around sysctl hypercall
To: Penny Zheng <Penny.Zheng@amd.com>
Cc: ray.huang@amd.com, Stefano Stabellini <stefano.stabellini@amd.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Sergiy Kibrik <Sergiy_Kibrik@epam.com>, xen-devel@lists.xenproject.org
References: <20250326055053.3313146-1-Penny.Zheng@amd.com>
 <20250326055053.3313146-20-Penny.Zheng@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20250326055053.3313146-20-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 26.03.2025 06:50, Penny Zheng wrote:
> --- a/xen/common/Makefile
> +++ b/xen/common/Makefile
> @@ -69,7 +69,7 @@ obj-$(CONFIG_COMPAT) += $(addprefix compat/,domain.o memory.o multicall.o xlat.o
>  ifneq ($(CONFIG_PV_SHIM_EXCLUSIVE),y)
>  obj-y += domctl.o
>  obj-$(CONFIG_VM_EVENT) += monitor.o
> -obj-y += sysctl.o
> +obj-$(CONFIG_SYSCTL) += sysctl.o
>  endif

Same as for the respective x86 change: Imo this needs to move out of the
conditional again, back into the normal list of objects.

> --- a/xen/include/hypercall-defs.c
> +++ b/xen/include/hypercall-defs.c
> @@ -195,10 +195,12 @@ kexec_op(unsigned long op, void *uarg)
>  dm_op(domid_t domid, unsigned int nr_bufs, xen_dm_op_buf_t *bufs)
>  #endif
>  #ifndef CONFIG_PV_SHIM_EXCLUSIVE
> -sysctl(xen_sysctl_t *u_sysctl)
>  domctl(xen_domctl_t *u_domctl)
>  paging_domctl_cont(xen_domctl_t *u_domctl)
>  platform_op(xen_platform_op_t *u_xenpf_op)
> +#ifdef CONFIG_SYSCTL
> +sysctl(xen_sysctl_t *u_sysctl)
> +#endif
>  #endif

If you don't move this out of the enclosing #ifdef, I don't see why you move
it at all.

> @@ -274,8 +276,10 @@ physdev_op                         compat   do       hvm      hvm      do_arm
>  hvm_op                             do       do       do       do       do
>  #endif
>  #ifndef CONFIG_PV_SHIM_EXCLUSIVE
> -sysctl                             do       do       do       do       do
>  domctl                             do       do       do       do       do
> +#ifdef CONFIG_SYSCTL
> +sysctl                             do       do       do       do       do
> +#endif
>  #endif

Same here.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 01 14:58:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 14:58:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.934548.1336219 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzd4E-0005od-OG; Tue, 01 Apr 2025 14:58:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 934548.1336219; Tue, 01 Apr 2025 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 1tzd4E-0005oW-Kp; Tue, 01 Apr 2025 14:58:18 +0000
Received: by outflank-mailman (input) for mailman id 934548;
 Tue, 01 Apr 2025 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=WxAi=WT=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tzd4D-0005oA-Mj
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 14:58:17 +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 bd52d2d0-0f09-11f0-9ffb-bf95429c2676;
 Tue, 01 Apr 2025 16:58:15 +0200 (CEST)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-3996af42857so4481591f8f.0
 for <xen-devel@lists.xenproject.org>; Tue, 01 Apr 2025 07:58:15 -0700 (PDT)
Received: from [10.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-39c0b6588dbsm14109392f8f.2.2025.04.01.07.58.14
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 01 Apr 2025 07:58: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: bd52d2d0-0f09-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743519495; x=1744124295; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=moOEq0i4YR5eTPTCurPycpqYpNHfEuCTEUwN+p0a7Sg=;
        b=fWAUAx+AOC5Pagq3XDkBLd3OQgkgg7eyG+K/8yW42/rFwn9MXILPFVkP/HooI8Qk0b
         Kf7d+Nhhcv+wpBqOQoNnNWFP4cn2nsNGpiHokzwCD/F86a0TONcxtkLyvYt1bEMPlMlI
         SXolDDjRzeKNQKfrkhsH33JMjE0O7lTRmjX9meoQnecKGaLVFI1RRcyYY6nI1UBxe9GC
         cj4C2pwl/00VS0kJ+YREYONFkgCeZTzWfEJKNBBtZcoh195WBCCP27wyHQgeLtifVtlo
         fGavwhEc/LTTnHHgTkAIjO2KVMgVuS+MJpMe7LCsVL80B06ZbXj7BHze8migav30keiC
         vJWA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743519495; x=1744124295;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=moOEq0i4YR5eTPTCurPycpqYpNHfEuCTEUwN+p0a7Sg=;
        b=OSmOz7QuiE/sg79INPY62wSWpFYvysa5COSLRYa1X9YMSi72AWzrLFncM5wGdBrjIr
         B1K2JAER7oM6Krcc7ybPsuLvd0g+OH7ATQMxO5C8AqPsH90eenMFhYhBVLaw8B8bXxsR
         sIFG61imIqRvU50RdQbbMQuj196I7KLhEdeyy0hSrtQ+y+NmNpxh/oIrvIUbqOqwdhHv
         DrmZvKpjld6YPewPYyRqua/AxaACM2JbCnPy17I397LLlqnA5uq7B8VUlZLABVVQqhcw
         4+7Kjpb1/AuQqloVGcV41ZyuqmtgJEh/YnhhOzeVSGWwRH8DGuZYeIgZcTZDf2QI84B3
         Pzow==
X-Forwarded-Encrypted: i=1; AJvYcCU2M3Rc57ttfeqSWgj5Z2NxM2TypZrqA5QCioGyB6s5nCdrfzSH/asSqHLpq6e4k+3RcBG9Z1R3vWI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwoOo7r/JFPHCB3bAP1NpevoJP8fgVC4aMiw1PyQtobPo9OPgtr
	IKbsyoj55GtGFTaaP9l1YKGht9mkFtPwu0ukyoS3cWUVwVnHm6EhuvKtYsC48A==
X-Gm-Gg: ASbGncv6JoPzg3ZcUlt17KND5DNVvQhBAXy2jsrkUoSHWhYWIUVtJhbCp88Ov92ISJv
	QvGMeurlH2tSI6wnkGTxPWn498GIFL7HQY3MmcZRc1cNpAEXxmcglHxa+lUcu++IvJ1ee/4AT3/
	Iqb/cTi/8xQyrLRkC3IVH+jKo3HewIAGsjrNmgtHii8sQht4GTcv3or/zVQgCFi7M8rXobX2gr8
	AtFHxXMMVZ3D6mEh1kqMRGaz2S7BbVGnbVdV2fVnjjfYfQEiFTVMc6DmYRpXON7M3rg0WAFpIjC
	MarNWsjI9LG5x9JJuoVG05Yw+WcDZApEN9pUd4CszRvEEKw/OIfIdHTDNaW9CQMjbD9KjBBSMfX
	AoxiARTWEMdmDJESnFudIJVyvaSl7xQ==
X-Google-Smtp-Source: AGHT+IFnuSLWTwb9vDaRPkWHPhKTD6e0YcTBUlh7wz8Dy6A6tB6WKCasweujTtIRiT4fiLlm6pKAJg==
X-Received: by 2002:a5d:584c:0:b0:39b:3c96:80df with SMTP id ffacd0b85a97d-39c27ee611bmr339646f8f.11.1743519494967;
        Tue, 01 Apr 2025 07:58:14 -0700 (PDT)
Message-ID: <5a314d13-fad7-4448-b629-bd7d614a09a8@suse.com>
Date: Tue, 1 Apr 2025 16:58:13 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/arch: Simplify $(TARGET)-syms rule
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Shawn Anastasio <sanastasio@raptorengineering.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250401144703.961836-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: <20250401144703.961836-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 01.04.2025 16:47, Andrew Cooper wrote:
> In all cases, "-T $(obj)/xen.lds" can be factored out by appending to
> XEN_LDFLAGS.  This takes the $(LD) commands from multi-line to single-line.
> 
> x86 uses $(build_id_linker) for all links, so factor that out too.
> 
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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

However, ...

> --- a/xen/arch/arm/Makefile
> --- a/xen/arch/x86/Makefile
> +++ b/xen/arch/x86/Makefile
> @@ -138,21 +138,19 @@ $(TARGET): $(TARGET)-syms $(efi-y) $(obj)/boot/mkelf32
>  
>  CFLAGS-$(XEN_BUILD_EFI) += -DXEN_BUILD_EFI
>  
> +$(TARGET)-syms: XEN_LDFLAGS += -T $(obj)/xen.lds $(build_id_linker)
>  $(TARGET)-syms: $(objtree)/prelink.o $(obj)/xen.lds
> -	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< $(build_id_linker) \
> -	    $(objtree)/common/symbols-dummy.o -o $(dot-target).0
> +	$(LD) $(XEN_LDFLAGS) $< $(objtree)/common/symbols-dummy.o -o $(dot-target).0
>  	$(NM) -pa --format=sysv $(dot-target).0 \
>  		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
>  		> $(dot-target).0.S
>  	$(MAKE) $(build)=$(@D) $(dot-target).0.o
> -	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< $(build_id_linker) \
> -	    $(dot-target).0.o -o $(dot-target).1
> +	$(LD) $(XEN_LDFLAGS) $< $(dot-target).0.o -o $(dot-target).1
>  	$(NM) -pa --format=sysv $(dot-target).1 \
>  		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort $(syms-warn-dup-y) \
>  		> $(dot-target).1.S
>  	$(MAKE) $(build)=$(@D) $(dot-target).1.o
> -	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< $(build_id_linker) \
> -	    $(orphan-handling-y) $(dot-target).1.o -o $@
> +	$(LD) $(XEN_LDFLAGS) $< $(orphan-handling-y) $(dot-target).1.o -o $@
>  	$(NM) -pa --format=sysv $@ \
>  		| $(objtree)/tools/symbols --all-symbols --xensyms --sysv --sort \
>  		> $@.map

... any reason not to do the same for xen.efi's EFI_LDFLAGS and its
-T $(obj)/efi.lds? I'd really like to keep the two rules as closely in sync
as possible, to make it a little easier to eventually split them into a chain
of smaller rules.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 01 15:21:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 15:21:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.934568.1336230 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzdQl-0005Mh-LS; Tue, 01 Apr 2025 15:21:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 934568.1336230; Tue, 01 Apr 2025 15:21: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 1tzdQl-0005Ma-Gy; Tue, 01 Apr 2025 15:21:35 +0000
Received: by outflank-mailman (input) for mailman id 934568;
 Tue, 01 Apr 2025 15:21:34 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=yHas=WT=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1tzdQk-0005MU-0W
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 15:21:34 +0000
Received: from NAM02-DM3-obe.outbound.protection.outlook.com
 (mail-dm3nam02on20610.outbound.protection.outlook.com
 [2a01:111:f403:2405::610])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fd1b4881-0f0c-11f0-9ea7-5ba50f476ded;
 Tue, 01 Apr 2025 17:21:32 +0200 (CEST)
Received: from BN9PR12MB5273.namprd12.prod.outlook.com (2603:10b6:408:11e::22)
 by MW4PR12MB6898.namprd12.prod.outlook.com (2603:10b6:303:207::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.54; Tue, 1 Apr
 2025 15:21:28 +0000
Received: from BN9PR12MB5273.namprd12.prod.outlook.com
 ([fe80::cf66:58ab:47be:4b13]) by BN9PR12MB5273.namprd12.prod.outlook.com
 ([fe80::cf66:58ab:47be:4b13%5]) with mapi id 15.20.8534.045; Tue, 1 Apr 2025
 15:21: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: fd1b4881-0f0c-11f0-9ea7-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Yh2CwlIgwdLb12rzln0BgbLUa0ypoBl0FphTqH4p0Vd3A49sxvYgg+HPMUredrL5lG9ykPUBqDXmVGxRykGauJqmPcDz3CLXTTKJe0sxMCemKHc3kFEvdLV45U15ZcuISjZghCwoRQPXPY6cD3sY+PsjNIP36x0ERkmvtuLjvNTrCJWVgK7jIyQu8tH1DmlEJtodUWiE7jlsbyTvHmk5NOYkZJAe+40SSAjJLiRO85+TxU+9na1sEH7jl+09ars4tsxrf7sIo0Ch2XS8q8AYN9eZQ8zqbiftI3P68VGmAJ7+d2XaY07cgqUJG3JmZm/6iHGdpEsLFGC9KMP0aysECA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=GQ00bXqxDD33aBAnXIDd5yzs1A1Ol/K9FZxG70s1cl0=;
 b=qO506/V678Mn/4vKK1zE0GclFeR8W5uLbEZNoD8xrL8oUQUbmMfl1Qc+zLo/sktWFq8odsRgdRSKPM+gwSKEJd7lzUuTXrDahH6g2EppVdF6YeOnaMT8glkNlopIHGwX6mZvd/4+E3cmnOcMy07eCKiQl4ddzF0yLM0dHG8S4wkuvZ2SNa/mjD6MsaieE75DXS3AS1xUhy9e3cD8wsOGiviSQ9CXpbPxx0aaffqtUVEkF4xSA/v+7aaeSEW1lK1GH8pExjN+u588ZKVu7xGKDCGeMlNgYulO6deBao/hX9FVZL8FpTT2S9yuinrNZIluiIqLqSd6ztDtGGZsapCdPg==
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=GQ00bXqxDD33aBAnXIDd5yzs1A1Ol/K9FZxG70s1cl0=;
 b=I7KyWPQ8mA1bBDVhzsM3XO0GUcKxKw+Z/9PBf1l2oUKbDSIlqIebU/fOWnkVQzWSyZxYrCnq3lic+4XnchO730nUDEuE1p4RnwUqLzWpg0GXx3XG9rAm4lFE00Dx5PABxRP5RJWSycfTTuptwzh6ElgzdJrTlmpeIPe9W+6xNn0=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <25e30373-139f-4827-91e7-a2dd6e85c433@amd.com>
Date: Tue, 1 Apr 2025 17:21:25 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/arm: Drop process_shm_chosen()
To: Bertrand Marquis <Bertrand.Marquis@arm.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <20250401090937.105187-1-michal.orzel@amd.com>
 <3D313BC0-75C9-4208-9067-C1F6153B3859@arm.com>
 <f7a6dd50-28d9-409b-8740-f4433f2fd72e@amd.com>
 <237153F4-56B2-40AD-A2D4-824B621D3477@arm.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <237153F4-56B2-40AD-A2D4-824B621D3477@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR4P281CA0215.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:e4::16) To BN9PR12MB5273.namprd12.prod.outlook.com
 (2603:10b6:408:11e::22)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN9PR12MB5273:EE_|MW4PR12MB6898:EE_
X-MS-Office365-Filtering-Correlation-Id: 76dda1b4-a722-43a0-ac40-08dd7130dfb0
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?T3RqVTE1NDk3UlV4MERBU1lVN3Z6MkxGbVo3YlpSc0FyUWZDRnZBdnVFSnA2?=
 =?utf-8?B?YTRJOEZobGRlTkZPVGUvN0JUVFdZbjQ5MVdXYkJKQnFLYnk2QmxDbnVXTHpU?=
 =?utf-8?B?VlN6U3RyVzJKTmRqWVJLOEczeFVSM1pVZkJVWWZUSk9nOTFOZ3U5SEJzYzg4?=
 =?utf-8?B?M3RoNFV4cGVUcDhqMlBHRVVFTGxQUXFJTVdNZGtuajhJNzRNVHNZVzltQXN2?=
 =?utf-8?B?aEQrUGpZVDZTMklMZDlVamhkV25kZzcvVkluNWZOQWVGYmI1YjRDcE9iL1N3?=
 =?utf-8?B?NGg5Z2RtdFpDL2ZqUWwvdHVCNlBKeTVQQzE3U3p6M3FBUllJYzNrTHEzVmQ5?=
 =?utf-8?B?eWY3WW80SEQwOXF5Q0F0dFlNbGx1RjRtOWxSVGVkMFNOVm4yOUpSdHBGb1pu?=
 =?utf-8?B?Wkd3TzlwM01NWWJsYjJsSlMyYktsaHVYKzVMbStUY0JWNjl3VnBBclJlMVFJ?=
 =?utf-8?B?SnB3dHJuVUtZelVOZ0VVeURHcFIzQTR6Y3VYNWJzRFFIM1BDVVl3N2Zadjh5?=
 =?utf-8?B?UDU0QUNQak93QkgzQ0RRUWlrTi9KcEE0YTJYOXVta3BhQnk1YTJBS1d1TFNx?=
 =?utf-8?B?cVdiNnFDQThSaHNpemREZzJqaFU0Vk5YaE51YVFyRFF5M1VoZmZubDliR3NX?=
 =?utf-8?B?WjZwa2cwUVhXWDRiR245eXdTSmFhTDJ3a3FjYlBSQ0hGb1NLcmc3elVCK3ZB?=
 =?utf-8?B?MVNJRE9IeEk3ZFhVMnJzcXZPUFBxWWlHSjRNbTRVY1JjeklPQnNtS2VaZHFh?=
 =?utf-8?B?NDdTVll0djZ1R04wMStlVUpzSm5tL0dUZTBSTHJYbkU1dDlDY3pNSU0rbU9O?=
 =?utf-8?B?UGV6VU15RzhJLzNPQlVNSVQvNlRuWjJ2YWsyODRva3VkdG10T3lBNnZydTNu?=
 =?utf-8?B?MnNva05uQllScHVvMDU0TVEwK0ZFaFRLeFRpbFhHeVZBdXVxK3Ntc2xrU0lB?=
 =?utf-8?B?eG9PWVpoQkRVT1IydElWODVneDQ5TEN5cmF6REw0a2NtYlFSQU52VU5sbUlz?=
 =?utf-8?B?dk9GVFpBZGxhWlIrZXBhNG8ydjMyejQ1WU1HTTNaK0hSclltdTZrRHlhaU96?=
 =?utf-8?B?aTBpNkdWdE12TmJPQ0xHMmlHN3JtYkZ0R1ViU0pwTEwrcEVxbUMyUGIvMUZY?=
 =?utf-8?B?VHVrYnNIREhMUVJIZVpLbjdBVEYxL2Jud3dHR2NNRzdGT1dZQUlaMzQyNWY5?=
 =?utf-8?B?ZW1PRnhCbzJPV3pMMjBjbjVyQnF1Q01ZeHQ0TXhZK3BZVWMzMzQrMFZOMDFS?=
 =?utf-8?B?cklhTXFoSFViT2ovMzF2WU0ySnFaQnJjbmhjMnVjOWM1TmF1NGthNkRyNFVl?=
 =?utf-8?B?YjRtMjBScWlTTW9LdWFtYTRZbUZmZ1NHMTMyRVUxSm8zSndTVjdsRUpCaTA0?=
 =?utf-8?B?QmN3QThaM3EwNW1lQ09lVW5lS2plYlMyQ2lzVXRJMHAwT3RrdlNWM1o3enJl?=
 =?utf-8?B?dVhFQ3FjSXQ4V29yek1LR3M1RnVRR2dBZHBYYXdVU01udGpEelUwbTBtUDZF?=
 =?utf-8?B?OEFEYXVrWHZPQ0Zkd0NwRlUxN2gwbTNLblpXbHc3QlZ2TXA1NmppaTVCMkZj?=
 =?utf-8?B?a05uSDhLSWNLYjlQTDZBTlVnWENISThPd1Vhd1dtaXZFcFZxRHQ3TFFSSmZB?=
 =?utf-8?B?citNam5nUE5TQ3htdkxXdzl1WERDTHBXV0Q3NEsveDVlRVBQRnR3YVRGaHpk?=
 =?utf-8?B?Qld1YlRSMzF4aXBmR0kvNVcrV2kxNTU3R092WTIxemhxOHlQR3oxQmVZNjVG?=
 =?utf-8?B?RkovYzhVL0RJajBnYmF6T3ZTK255b2JjRjEva1UzaDJtRy9UUExkcTNqazBH?=
 =?utf-8?B?NDl6MnRsZUJrbkVobFF2dG41SXB5Qytrc29zQmEyN0ozc3VubVVCSlVGNHox?=
 =?utf-8?Q?r0bVy3mSH8HhL?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN9PR12MB5273.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?WUp3a01UNDByOVQzckNmTkRtYzM0L1dXdVYvenJXSjNGczV5OHR1R0d0NzFn?=
 =?utf-8?B?SkRISVpkR1N6bVFtWEVXVzEzaGhaQWZuc0V1ZjZKNXBIczFZUkpoaFFlVC9G?=
 =?utf-8?B?OE9wNzhiYUcvSmpMc1NaU2p2aUpWMDBZOEVJOEpEUzQyU2dIbnRlbVNRWFAx?=
 =?utf-8?B?OGxIVFB3OEZ3dlZnV3JnQzJQOVBETnRZTm13bVZ3ZEtOS09CWm02VnJaaEhR?=
 =?utf-8?B?ZHlSWVJNNUtMOVBiNHhjZTBESHpkb3FkeHhzYk5QNG8wRXRyeC9LU0tXNHlN?=
 =?utf-8?B?eFl3V0NWMk82Q1FxYUlrK2dORVRGZVljMUs0dnlZMTBxYU5SK3B4Z1NsMHVY?=
 =?utf-8?B?eStkSUJMeUZiVnhnZi80T3JQc0NxaVlvMUY1ZUk1UlAzL1RBTnFMZ1MzNnhu?=
 =?utf-8?B?VnUwTnUxanBqTUhaMHViY2h2R1haUklaTlBGOVdaQjN3UDBwbWYxcWs0NUlh?=
 =?utf-8?B?RFpTZVloNEdOeGFTdkhwdlhhYS9SSjZERlZRMWYyK0RYTERnR1hOMWRzT0dE?=
 =?utf-8?B?VUMrTVByZlFCVHNVNW5aMGN6aUdOSnovc25rbDBzZVI2N01zTkZvSm5VOUFn?=
 =?utf-8?B?T1FxOS9acEh4TlRSdGVkVXZBR09EWWZYS2hpK3NDRnNqZ0lYNW9tTXJjdkZS?=
 =?utf-8?B?Q3E0TmNxOEhOOWlrUGF1SFMySnBZa2JYRGREdm1FOXBoV0pvRkVhdjVWWGYr?=
 =?utf-8?B?OWg2SnFvNUx2SUpQNyt0bzFFMGo5NzRVaHZpNC82dDJDL3RaaFZwV1MyeDVy?=
 =?utf-8?B?dHNYVzZwazBDQXZTRlJidzJ2UU5NVHV5N3FBRmx0Qlk3OSs4YXVoWGpERTUw?=
 =?utf-8?B?UmJ1WlJkU2QyYU5aQ1ZIODVDMXRsMmRDTE44NE80cFprWDlRRUNyNmNUWGJG?=
 =?utf-8?B?TGRjYTVoekdTNnpvaDN6UEpiSXFYc0RaaWNEcW1XVUJKcUlNTGZWMk1TZWdJ?=
 =?utf-8?B?VnZUWSt4MUpDa3BkZDRZWlEzK1hsYkNCQlVaamtuQW1lcXNIWEFyQ0F2dGFR?=
 =?utf-8?B?THhmTkxoM3NCdnZ6amptbFFrZUE3aUtaSjNFbnRsc0o3bkY2UFRFUk1hOHhI?=
 =?utf-8?B?aDdWODBXVVRDNHdnaUVUYkNybXZGaUpvYWhmZitDdjl3cHJIbWpEdkNjWkEw?=
 =?utf-8?B?bHFEK3daWGRtTzVyeXlKVURsNW84dnZObFVTbXRJaVVJREhyekFYRDllMFdL?=
 =?utf-8?B?ZmxmT3UzRU1sZE9ZQjc5cHNhQmI1Wmg3V2h1MGozU0VHQUpvQ3VKRktjU0pP?=
 =?utf-8?B?VTY2a3VHbnVYMk9mWGlxUHZ1ZkZBUGpxUktGbW10Y2dUalBidVJrVnlGU0xi?=
 =?utf-8?B?c0hkWE9qUlpJRWNubFJ2SjlRL3NxMDJoUWpud0hCQk5IUi9VQXZDZmMxemwz?=
 =?utf-8?B?Y0dkb3dYN292QVlSQVFaNVRFN1h5dkEvNEF6SEFoNG1HeFY4K0JMaGNkQVBT?=
 =?utf-8?B?Y21YNFJKeFpETy9HRDBDMmY1cVZZdkR6SFIzc1MyMjVwcm9SaER0a3RzSUJW?=
 =?utf-8?B?eDZGQ1JickRPbTJJTGFEZCs4M0FZNjdHaTY5c0xCZVR0aEZYM2Y0YkxKVTFm?=
 =?utf-8?B?RSt6K2diRWgvNFo3ZU1XMmJNbi9JeWkwY1R3M1M2TlpVVmdpcGpIdG8raG02?=
 =?utf-8?B?MVlIWmU1ajRSMnlGc21ZNU4yTmJza0tRKy84ajdMbHM1RHhhdjZJYkdEVHhY?=
 =?utf-8?B?OUJHdjJvekNZRHBKY0pQM3Ewa3FhbGNERUx5TXYzcEQ5RndxN2pybjE2NlhI?=
 =?utf-8?B?aGtRcy9tK0NoQUM4OTRXQnN1eWg5OEcwUktPZXIzS3NySWRhVG1rOHhzVGJz?=
 =?utf-8?B?NjNCcHpxWWRFVk1vR3pCVGN2WGZTTUxSL3R6M21jZS9JQ29Rd2NWV2pRVk1i?=
 =?utf-8?B?ZkwrbDNKN05WVW4rV2d6MjA5RkVnR2pSSjJNbFBnZ2QwUVU2RzNhKzRFMFNh?=
 =?utf-8?B?U3VpdURnY21mZlgwYVB6d05zQ1ZvU2hoVlBlZXFMVmRXSHlyUGlZUGNPR0Yz?=
 =?utf-8?B?RGhDQ1Y3OGY2SkFRN3FVemU4UDYreEZNMUw4ZnJ4OWJZZUE5c3cxL0wxWVdy?=
 =?utf-8?B?a0d2Mkp2TDFldlptSWFyWVRwZy9PVFhuV3BmeGFhL3p0YlJOOWpGUnlyMEY3?=
 =?utf-8?Q?XOBViIvWtPP0I2+ZzLjiNKK2n?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 76dda1b4-a722-43a0-ac40-08dd7130dfb0
X-MS-Exchange-CrossTenant-AuthSource: BN9PR12MB5273.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Apr 2025 15:21:28.4456
 (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: 0vQk2GOH8D9k+SGsnDpnrwJiknUDvsupV0+B87IB7Q3y1uq4S8Zm0YZEwyxA36up
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR12MB6898



On 01/04/2025 16:49, Bertrand Marquis wrote:
> 
> 
> Hi,
> 
>> On 1 Apr 2025, at 16:22, Orzel, Michal <Michal.Orzel@amd.com> wrote:
>>
>>
>>
>> On 01/04/2025 14:57, Bertrand Marquis wrote:
>>>
>>>
>>> Hi Michal,
>>>
>>>> On 1 Apr 2025, at 11:09, Michal Orzel <michal.orzel@amd.com> wrote:
>>>>
>>>> There's no benefit in having process_shm_chosen() next to process_shm().
>>>> The former is just a helper to pass "/chosen" node to the latter for
>>>> hwdom case. Drop process_shm_chosen() and instead use process_shm()
>>>> passing NULL as node parameter, which will result in searching for and
>>>> using /chosen to find shm node (the DT full path search is done in
>>>> process_shm() to avoid expensive lookup if !CONFIG_STATIC_SHM). This
>>>> will simplify future handling of hw/control domain separation.
>>>>
>>>> Signed-off-by: Michal Orzel <michal.orzel@amd.com>
>>>> ---
>>>> xen/arch/arm/domain_build.c             |  2 +-
>>>> xen/arch/arm/include/asm/static-shmem.h | 14 --------------
>>>> xen/arch/arm/static-shmem.c             |  4 ++++
>>>> 3 files changed, 5 insertions(+), 15 deletions(-)
>>>>
>>>> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
>>>> index 2b5b4331834f..7f9e17e1de4d 100644
>>>> --- a/xen/arch/arm/domain_build.c
>>>> +++ b/xen/arch/arm/domain_build.c
>>>> @@ -2325,7 +2325,7 @@ int __init construct_hwdom(struct kernel_info *kinfo)
>>>>    else
>>>>        allocate_memory(d, kinfo);
>>>>
>>>> -    rc = process_shm_chosen(d, kinfo);
>>>> +    rc = process_shm(d, kinfo, NULL);
>>>>    if ( rc < 0 )
>>>>        return rc;
>>>>
>>>> diff --git a/xen/arch/arm/include/asm/static-shmem.h b/xen/arch/arm/include/asm/static-shmem.h
>>>> index fd0867c4f26b..94eaa9d500f9 100644
>>>> --- a/xen/arch/arm/include/asm/static-shmem.h
>>>> +++ b/xen/arch/arm/include/asm/static-shmem.h
>>>> @@ -18,14 +18,6 @@ int make_resv_memory_node(const struct kernel_info *kinfo, int addrcells,
>>>> int process_shm(struct domain *d, struct kernel_info *kinfo,
>>>>                const struct dt_device_node *node);
>>>>
>>>> -static inline int process_shm_chosen(struct domain *d,
>>>> -                                     struct kernel_info *kinfo)
>>>> -{
>>>> -    const struct dt_device_node *node = dt_find_node_by_path("/chosen");
>>>> -
>>>> -    return process_shm(d, kinfo, node);
>>>> -}
>>>> -
>>>> int process_shm_node(const void *fdt, int node, uint32_t address_cells,
>>>>                     uint32_t size_cells);
>>>>
>>>> @@ -74,12 +66,6 @@ static inline int process_shm(struct domain *d, struct kernel_info *kinfo,
>>>>    return 0;
>>>> }
>>>>
>>>> -static inline int process_shm_chosen(struct domain *d,
>>>> -                                     struct kernel_info *kinfo)
>>>> -{
>>>> -    return 0;
>>>> -}
>>>> -
>>>> static inline void init_sharedmem_pages(void) {};
>>>>
>>>> static inline int remove_shm_from_rangeset(const struct kernel_info *kinfo,
>>>> diff --git a/xen/arch/arm/static-shmem.c b/xen/arch/arm/static-shmem.c
>>>> index c74fa13d4847..cda90105923d 100644
>>>> --- a/xen/arch/arm/static-shmem.c
>>>> +++ b/xen/arch/arm/static-shmem.c
>>>> @@ -297,6 +297,10 @@ int __init process_shm(struct domain *d, struct kernel_info *kinfo,
>>>> {
>>>>    struct dt_device_node *shm_node;
>>>>
>>>> +    /* Hwdom case - shm node under /chosen */
>>>> +    if ( !node )
>>>> +        node = dt_find_node_by_path("/chosen");
>>>> +
>>>
>>> I would have 2 questions here:
>>> - what if a NULL pointer is passed, wouldn't you wrongly look in the main device tree ?
>> Do you mean from hwdom or domU path? In the former it is expected. In the latter
>> it would be a bug given that there are several dozens of things that operate on
>> this node being a /chosen/domU@X node before we pass node to process_shm().
>>
>>> - isn't there a NULL case to be handled if dt_find_node_by_path does not find a result ?
>> It wasn't validated before this change. It would be catched in early boot code
>> so no worries.
> 
> Then an ASSERT on NULL would be good.
See below.

> 
>>
>>>
>>> Couldn't the condition also check for the domain to be the hwdom ?
>> I could although we have so many /chosen and hwdom asserts in the tree in the
>> dom0 creation that I find it not necessary.
> 
> There are never to many asserts but ok :-)
> 
> With an ASSERT added for the NULL case you can add my R-b.
:(
So you still want to put ASSERT for a case where host DT does not have /chosen
node. I'd like to talk you to drop this idea. Normally I'm in favor of using
ASSERTs but not for so obvious violations like missing /chosen.

/chosen node is so crucial for Xen on Arm functioning that a lot of things would
simply fail a lot  earlier than a point where we call process_shm() at the end
(almost) of hwdom creation. There would be no modules, so the first example that
comes to my head is panic due to no kernel which happens way before process_shm().

~Michal



From xen-devel-bounces@lists.xenproject.org Tue Apr 01 15:35:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 15:35:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.934580.1336239 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzddq-0008GK-O9; Tue, 01 Apr 2025 15:35:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 934580.1336239; Tue, 01 Apr 2025 15:35: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 1tzddq-0008GD-Ka; Tue, 01 Apr 2025 15:35:06 +0000
Received: by outflank-mailman (input) for mailman id 934580;
 Tue, 01 Apr 2025 15:35: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=neKF=WT=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1tzddp-0008G7-0x
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 15:35:05 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on20601.outbound.protection.outlook.com
 [2a01:111:f403:2412::601])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id dfc3c97d-0f0e-11f0-9ffb-bf95429c2676;
 Tue, 01 Apr 2025 17:35:02 +0200 (CEST)
Received: from BN9PR03CA0844.namprd03.prod.outlook.com (2603:10b6:408:13d::9)
 by DS7PR12MB8252.namprd12.prod.outlook.com (2603:10b6:8:ee::7) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.8534.54; Tue, 1 Apr 2025 15:34:57 +0000
Received: from BL6PEPF00020E5F.namprd04.prod.outlook.com
 (2603:10b6:408:13d:cafe::f5) by BN9PR03CA0844.outlook.office365.com
 (2603:10b6:408:13d::9) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8534.54 via Frontend Transport; Tue,
 1 Apr 2025 15:34:56 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 BL6PEPF00020E5F.mail.protection.outlook.com (10.167.249.20) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8606.22 via Frontend Transport; Tue, 1 Apr 2025 15:34:56 +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, 1 Apr
 2025 10:34:56 -0500
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, 1 Apr
 2025 10:34:56 -0500
Received: from [172.29.45.113] (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, 1 Apr 2025 10:34:54 -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: dfc3c97d-0f0e-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ViD9SvXjABuJxiSbApd5LWmkEqiVZiepGgQuEp7xD6GychxWUNDcgrsG1iekMuFiQLRz2q/pdabYDs7nYZ8lNdrW9arR8/J51AVwbqFfexIwJ449pzz6/QheuU6Wpz8BHtktK/kbhS77Uk7Wn3SpZAVxEMbsAuXFy5Qq24DCHsVQoS4GcgB8Fe1UMmitC4dSTu3tDihnkiyb86F3rMo6ujbBjlZEM20Y42Z3OmKtEnQLA22nTyMRsYwnM0Ih32jubpwx/euddGhZ3A7yfyhNaBWp6REntF7zj3u3dvfQ6tReHj4HRS1A9FDesQIMGkhnNiJXPTBRkRqG2tgPy6d68w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=nYv5beCDUcMPfKuKRp8fAjK/10MpX+8ppWciSJUjTnE=;
 b=je2z/BuJ/b0qGH4R8VlB9XsT99F45H4wYXKcgSFxM88Vug1R933apaMkbkNXXVTALezEFjyermmggS8nmnbFmf4RqvW4rfKPP8/+OYzhR97PTpobMQ9gK/MnaZWX9rzfy2MxExUGMhc/VL8xtDR8oStU1imv+Sl9RnZ3l7R4Toa+yyxg01qtB7nrge5c5JV7dtJlRA/s//EqFimPOLyGJUfGI6Ph8dYZSvzO0E8jJtGd90/0Cm3j845T3Zd6guVYRtafG2BHLSJJsb9HG3+vAdOv+QjCkqjyZfqezKGo0Oi9BuxijLQ7IUauJQTYfGofFHGQDOrX73J1M3XmzdmsrQ==
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=nYv5beCDUcMPfKuKRp8fAjK/10MpX+8ppWciSJUjTnE=;
 b=R1DOgw3YrlDBVLB8gIJ07urDRXbeTUVwXSz5GEBf9tkMr15Cc97Bmiqb3oo+QT5ZteZqAI7u+9PsT+n1w7beyoZlEtOu4U+T09vTTn7//7Te7Z/JAUVQi2qAekMbIhNxjK3jtnem+wMhnMZGaMJ5UiaEd6cc212Gn32rJcegmhE=
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: <3d800459-7762-427e-8765-044adbb6459e@amd.com>
Date: Tue, 1 Apr 2025 11:34:56 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 4/6] xen/arm: dom0less seed xenstore grant table entry
To: Jan Beulich <jbeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
	<julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, Michal Orzel
	<michal.orzel@amd.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>, <xen-devel@lists.xenproject.org>
References: <20250331214321.205331-1-jason.andryuk@amd.com>
 <20250331214321.205331-5-jason.andryuk@amd.com>
 <6765d129-66dc-48d9-aaac-2b973edfda80@suse.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <6765d129-66dc-48d9-aaac-2b973edfda80@suse.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL6PEPF00020E5F:EE_|DS7PR12MB8252:EE_
X-MS-Office365-Filtering-Correlation-Id: 961627ba-0daf-4a5f-1961-08dd7132c1a2
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?UFBVYVVOQWpJbldCZ3hRMjJBeW9pUDNPaElNSHlyYkJDbkhYSjNDQ1FxT0lW?=
 =?utf-8?B?MFUwZEpINlhwS1pEK2lQaDJxVFkwMm9DelNLWG5XeWVyeCtCajVKb2x5SzFH?=
 =?utf-8?B?OVhOKzBQWFNDbmxuRzdjeXMwOXNCUlB6MkM4ME13VFE3SkRiOCtGdEdQZDZI?=
 =?utf-8?B?RElNSG81bVBlVkx5NkJ1aUVkd0o1QlBzc2V0ZUlqOC94RmphZERXWjBEVGFu?=
 =?utf-8?B?NHhDdkxUcWt2NFZBUzcwclVwMVZnMUMyTjBLQXQ1VitOa0tjeS9zOHRzUVVW?=
 =?utf-8?B?UndDZkdpdHZ4dUpSMDdxV09mb04xVldxbWNNQTZXYnphMVFsaW9YaGtERC9w?=
 =?utf-8?B?TXlrTGEyM1QwblA2RGloU3JiYXFJRkR6ZEhYMWMrK1M1bzNKUHRveWsyZEND?=
 =?utf-8?B?K09Vc3NtK2JBbXMvOFExTzJUU05neXRoYUVhWVYwOTYzbjlWSjd1TGIydVRi?=
 =?utf-8?B?MC9QbEJWQnFHc1dySEpKdHpTZEc3dFByTDRsL2pHUmNISEVpd0p6SEhQajNC?=
 =?utf-8?B?SWtrcVEvYTMzRW8xV0h0VTM5d3F3RnJVUmVzVHk4ZDZxa3k0RElyeVNwRXB5?=
 =?utf-8?B?WjNHblY4T3BUZ01JZTlGVkkxQUdHYkJwQ3B1L21Sbm90ZG1HV0hleGE0eHc4?=
 =?utf-8?B?VGNiVGhkcHJSV1l2TGpiLzAzd3lOY29kVTlsSGRwREVFYzVzY3VFNTZ1YWc5?=
 =?utf-8?B?S1ZGbE85c1NaTWlmV0pCc0EydDJTVHhHcnNvYWpYdnQzTWJTN1k3N1c5Z1kr?=
 =?utf-8?B?VVNjQmdaTWxCenlqcnRRZ3M1Z21WdXk3YWNwVFJTWnFsQkFDZzNkbkVOVkVL?=
 =?utf-8?B?YjhJR2RsemJtTnVoVnpIZ0E1a0wxMUNMdlhUZ3h5L2ZsbHpxSVc1MWV1TmhE?=
 =?utf-8?B?SDdtdlE3ZEs3bjdEem5HSmt4ak0zRFZ4Y3BBMURrK3M4V041T3dFY24vc2N0?=
 =?utf-8?B?SWJ4TDFrcFdUcWszVkExYXdZYyt3UUV2bFNJZFo2VENYaTJVbjF4MnlvTDJT?=
 =?utf-8?B?UkF5aWVGc09zdmp1Y3Q5Z1l6ejJTNHovMWgvSTJ0NW9UdldLZHZzMEVkK09a?=
 =?utf-8?B?bWhhVUZBUWZ6Y0hJa2g4VFNKZjJ6YXAvTGk1bmJEdVo3ZG80MHNJYnV3anhw?=
 =?utf-8?B?N3hkMnZBMEV2YUM1aDY4WmZPcjMyMG54N1Y1WXc5emhxTDl5dW8zanMyalRp?=
 =?utf-8?B?dEFuaU5laFI2ck9ITE0va3d6MVh3ZjUzM0JScTJYeEFTM1hTcDNKM0ZndE9X?=
 =?utf-8?B?cmlrMWFxL1hzR05wbVNnamxsRnYzWDNqRUlNT0dEQnBDVEdkOUtqek16d2Vl?=
 =?utf-8?B?Wkp5WmtuQWlHeXM5bVZqU0l1T1p3SmNDcVhBTWlpREluNHlXdnh1UG5iWkMz?=
 =?utf-8?B?dU55Q0hIbGdqd25CenVoM2x2MnNtYXR3TlpFU0FQUXZFb0JlSmdZeVVzWE5z?=
 =?utf-8?B?cGdPbnV2eE9yM3RQYktlUHZCbHJPS1NCY1Z4TkFIRzFHWUNIQWVhZE1WOWhL?=
 =?utf-8?B?ZnBTd2pHd1ZWQ0lUNnZsdVlNNkx0M3VMdFI0bC9hZW45czg5ZDdyeHJ1UmI4?=
 =?utf-8?B?bTE5WUJKd2NqcTJIUzd6eSt0SHFpWWJrTjJxaVptOVVBOGlRRHBJS3Uwa0R1?=
 =?utf-8?B?MTFjQ1FCekdlVEg2bE96alJWRmNka05oaDNWZjRIaGJXWlRtZk9IRWRsSGd6?=
 =?utf-8?B?cjNmODQxWWZPcjloSnR3dkorTW5EM2hiSHErbnRqWHhuaDRNbWxyOE5CeXdB?=
 =?utf-8?B?ZGlvQ2NUMVJ2aVJFYWJDMFFWanBJWitIcUl3c2R4eWJlN1NhOE1LdFVGeXRI?=
 =?utf-8?B?b0pXMUdrelJMMzNidEpWZTlpbnd0RlhMVDJzbjI3V1ZGUTEzc0hLdXBiYTdZ?=
 =?utf-8?B?bS8xeDNRWDZ4a1BWTjRHd3M1dk1aaERpVmViL0tQd3FWOWx3eXo2cUthOHBK?=
 =?utf-8?B?MEsreHR2SmFQSzFIQVFhMjhOMTBock9YVmthZmdZejhIM2VQN1RqMEFrd0Jr?=
 =?utf-8?B?Znk1dnRiczM4ck5rMnVROC9waU9MeksvNGNsS29yZjRPQ1puZ0RiSTZRdUo0?=
 =?utf-8?Q?DSW7Lz?=
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: 01 Apr 2025 15:34:56.7095
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 961627ba-0daf-4a5f-1961-08dd7132c1a2
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:
	BL6PEPF00020E5F.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB8252

On 2025-04-01 08:16, Jan Beulich wrote:
> On 31.03.2025 23:43, Jason Andryuk wrote:

>> --- a/xen/arch/arm/dom0less-build.c
>> +++ b/xen/arch/arm/dom0less-build.c
>> @@ -865,6 +865,10 @@ static void __init initialize_domU_xenstore(void)
>>           rc = alloc_xenstore_evtchn(d);
>>           if ( rc < 0 )
>>               panic("%pd: Failed to allocate xenstore_evtchn\n", d);
>> +
>> +        if ( gfn != ~0ULL )
> 
> Is this an odd open-coding of INVALID_GFN? And even if not - why ULL when
> "gfn" is unsigned long? The way you have it the condition will always be
> false on Arm32, if I'm not mistaken.

The gfn is pulled out of the HVM_PARAMS, which is a uint64_t.  It is set 
like:

d->arch.hvm.params[HVM_PARAM_STORE_PFN] = ~0ULL;

But pulled out by:

unsigned long gfn = d->arch.hvm.params[HVM_PARAM_STORE_PFN];

So your comment highlights that unsigned long is incorrect for ARM32.

While I realize fixed types are discouraged, I'd prefer to use uint64_t 
for the replacement.  That is the type of HVM_PARAMS, and uint64_t is 
used on the init-dom0less side as well.  Using unsigned long long to get 
a 64bit value on ARM32 seems less clear to me.

Thanks,
Jason


From xen-devel-bounces@lists.xenproject.org Tue Apr 01 15:46:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 15:46:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.934592.1336248 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzdou-0002fL-N8; Tue, 01 Apr 2025 15:46:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 934592.1336248; Tue, 01 Apr 2025 15: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 1tzdou-0002fE-Kd; Tue, 01 Apr 2025 15:46:32 +0000
Received: by outflank-mailman (input) for mailman id 934592;
 Tue, 01 Apr 2025 15:46: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=4pMn=WT=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1tzdos-0002f8-Id
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 15:46:30 +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 79ad3066-0f10-11f0-9ffb-bf95429c2676;
 Tue, 01 Apr 2025 17:46:28 +0200 (CEST)
Received: by mail-ed1-x52f.google.com with SMTP id
 4fb4d7f45d1cf-5e673822f76so9702359a12.2
 for <xen-devel@lists.xenproject.org>; Tue, 01 Apr 2025 08:46:28 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-64-225.play-internet.pl.
 [109.243.64.225]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5edc17dfd41sm7408007a12.73.2025.04.01.08.46.26
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 01 Apr 2025 08:46:27 -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: 79ad3066-0f10-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1743522388; x=1744127188; darn=lists.xenproject.org;
        h=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=vIKjI1V1t2FTxepIuuZaGA4R4FaYVcgDVUe45kanUdQ=;
        b=NLPN8pgbz7W5me3YaqkdfmCAEZiC/IdJylkUrOmDx3lklIqx2jxYuiajlsUhRPo403
         yzuRvqsglu+2U49dYtdx/WddwiFpp8qUd2z0nnrAOdeKHL/MsYsMVYIfwNPgU5p5bYJn
         5/8P7Bo15WrUc0x10yFnAZcfItuMt3U/y12pTfBpVq9Lw36RSgRnPL+paqdQOeD+A9/L
         jJyKIcXEx2S2Ps34YXCLRsQhzBwRO2vTvudF6v9nGisTok4hhC137+Wmfc+CvpPAPtFt
         24C9PsVjr2q+XnGh11JMMqGlMExyt7ViRF2EY0comdZKKd4kDeWHskdwFvtHKvYp5ATe
         okCQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743522388; x=1744127188;
        h=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=vIKjI1V1t2FTxepIuuZaGA4R4FaYVcgDVUe45kanUdQ=;
        b=jRPyZjX2PpVwR3TMc+6wb0CL7Lhlw4e1tfTKIRLqL2D4z8E6wb0jT03zlQihKWVEYj
         lSo9m1UZE3K56R9ACgqO1aT+Tu0khljvLXIZ4r1H4/pMX9Uizt7JTCXAQJ63q45aMVrC
         FhGxHWxEQvJOrOBI+siHwoFN45BkFyHmmQ++UwjTx4SqNCFAsnO5cFofDVE5+21h8jEL
         grmCzSDBJxcSYCO+vh4xUman7aPovAw+vBuOmQqsYH7WZosZPiYgTASTYSONS2fOfswP
         ZNCGjKX+qxQHU44s2mGXVRj3pup9g2BiznTjMP17tC0WyB5AqWxTdo6ND72dEuZTXcCb
         paPg==
X-Forwarded-Encrypted: i=1; AJvYcCX71ibs3IQPjKli/oM9i/CWjN5poVzz5iDQ5xgRWZ4uqf/wdcutV7/mpMSK/EG0py1MDEJbyJWjYVU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwkfhxtZQGYM9WKtgx9DPkstuxI4wJCvNyhUGAt174YT4M/LMmR
	jDi8xZ1eDDqrTRYxMtrr46EPUel+VgBsyttZoXH7o7Boz8uPLmTL
X-Gm-Gg: ASbGncuo50dlgDnhcYDp/nbZRk3EYeDu583kgDY0dZXV4HlisF8K1779do/frAutzOM
	MLh4RucDzEk0Webaq1g3dG8VPVvQIfUfVNvAmv17D0YH3CojY9XlUv5tq+C8gnDWkPVNc9qMAfK
	alaTl78hQBn/HDnWjlvNHZBKYRZdBFixglN188M5iB5yEoUGy7z3zz3uyk3/6wFgSClHDBkXwSE
	7K3HGgoGKMGe5V03rwrcqjdzESYiw5/kEE6TGg0rQu+97QjXYuGDpGAOVyUfM56DgqiR2FnctBs
	NypWcs30GJ3oN3zKxYYDveeHncuB/yHZi2O+qxGzrCOzRM1I8tPuPG8n4U4K4d8vG4JhHI/lEaX
	C5z+hhsyN8JLxImRIwA9h
X-Google-Smtp-Source: AGHT+IGswNjWHPim6Ff1BZlJg9zBC287liKJLXY/6h9+2XymHc1KQz4Oqb+Z9Ay2TVOm2eEuWXOXYg==
X-Received: by 2002:a05:6402:320e:b0:5ee:497:91f0 with SMTP id 4fb4d7f45d1cf-5ee049794d5mr11889465a12.34.1743522387498;
        Tue, 01 Apr 2025 08:46:27 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------UOzkySSbTXraRu17i4Ezn956"
Message-ID: <ceec6a5b-89ba-45a9-a023-08f07bcce614@gmail.com>
Date: Tue, 1 Apr 2025 17:46:25 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1] xen/riscv: Increase XEN_VIRT_SIZE
To: Julien Grall <julien@xen.org>, Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org
References: <e5fa4219ccf43125e2489cc8c49b4404e6ed22ce.1743434164.git.oleksii.kurochko@gmail.com>
 <54ebdcb7-071f-411f-803a-930dc330a497@suse.com>
 <6f0efa9a-876e-4ae1-9367-ccd89f51bab0@xen.org>
 <c8a786f0-cc78-41f4-8323-dabde70a7c91@suse.com>
 <33786f0b-eefa-4f1f-ac57-7f1b2c74715e@xen.org>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <33786f0b-eefa-4f1f-ac57-7f1b2c74715e@xen.org>

This is a multi-part message in MIME format.
--------------UOzkySSbTXraRu17i4Ezn956
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 4/1/25 1:59 PM, Julien Grall wrote:
>
>
> On 01/04/2025 07:24, Jan Beulich wrote:
>> On 31.03.2025 18:17, Julien Grall wrote:
>>> On 31/03/2025 17:14, Jan Beulich wrote:
>>>> On 31.03.2025 17:20, Oleksii Kurochko wrote:
>>>>> A randconfig job failed with the following issue:
>>>>>     riscv64-linux-gnu-ld: Xen too large for early-boot assumptions
>>>>>
>>>>> The reason is that enabling the UBSAN config increased the size of
>>>>> the Xen binary.
>>>>>
>>>>> Increase XEN_VIRT_SIZE to reserve enough space, allowing both UBSAN
>>>>> and GCOV to be enabled together, with some slack for future growth.
>>>>
>>>> At some point you may want to use 2M mappings for .text (rx), .rodata
>>>> (r), and .data (rw).
>>>
>>> OOI, why would we want to switch to 2MB? At least on Arm, Xen is tiny
>>> enough that it can fit in less than a couple of MB. I would expect the
>>> same for RISC-V.
>>
>> For TLB efficiency reasons for example. On x86 we switched to using 2Mb
>> pages quite some time back, just to find that (at least) one of the
>> bootloaders choked on the then larger binary. Hence we ended up with
>> the XEN_ALIGN_2M Kconfig symbol plus the unconditional use of 2Mb
>> mappings for xen.efi. For the original change see cf393624eec3 ("x86:
>> use 2M superpages for text/data/bss mappings").
>
> For Arm, we can using the contiguous bit (it allows to combine a few 
> entries into one TLB on some CPUs) to reduce the TLB usage. Not sure 
> if RISC-V has a similar feature.

Unfortunately, RISC-V doesn't have such option.

~ Oleksii

--------------UOzkySSbTXraRu17i4Ezn956
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 4/1/25 1:59 PM, Julien Grall wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:33786f0b-eefa-4f1f-ac57-7f1b2c74715e@xen.org">
      <br>
      <br>
      On 01/04/2025 07:24, Jan Beulich wrote:
      <br>
      <blockquote type="cite">On 31.03.2025 18:17, Julien Grall wrote:
        <br>
        <blockquote type="cite">On 31/03/2025 17:14, Jan Beulich wrote:
          <br>
          <blockquote type="cite">On 31.03.2025 17:20, Oleksii Kurochko
            wrote:
            <br>
            <blockquote type="cite">A randconfig job failed with the
              following issue:
              <br>
                  riscv64-linux-gnu-ld: Xen too large for early-boot
              assumptions
              <br>
              <br>
              The reason is that enabling the UBSAN config increased the
              size of
              <br>
              the Xen binary.
              <br>
              <br>
              Increase XEN_VIRT_SIZE to reserve enough space, allowing
              both UBSAN
              <br>
              and GCOV to be enabled together, with some slack for
              future growth.
              <br>
            </blockquote>
            <br>
            At some point you may want to use 2M mappings for .text
            (rx), .rodata
            <br>
            (r), and .data (rw).
            <br>
          </blockquote>
          <br>
          OOI, why would we want to switch to 2MB? At least on Arm, Xen
          is tiny
          <br>
          enough that it can fit in less than a couple of MB. I would
          expect the
          <br>
          same for RISC-V.
          <br>
        </blockquote>
        <br>
        For TLB efficiency reasons for example. On x86 we switched to
        using 2Mb
        <br>
        pages quite some time back, just to find that (at least) one of
        the
        <br>
        bootloaders choked on the then larger binary. Hence we ended up
        with
        <br>
        the XEN_ALIGN_2M Kconfig symbol plus the unconditional use of
        2Mb
        <br>
        mappings for xen.efi. For the original change see cf393624eec3
        ("x86:
        <br>
        use 2M superpages for text/data/bss mappings").
        <br>
      </blockquote>
      <br>
      For Arm, we can using the contiguous bit (it allows to combine a
      few entries into one TLB on some CPUs) to reduce the TLB usage.
      Not sure if RISC-V has a similar feature.
      <br>
    </blockquote>
    <pre>Unfortunately, RISC-V doesn't have such option.

~ Oleksii
</pre>
  </body>
</html>

--------------UOzkySSbTXraRu17i4Ezn956--


From xen-devel-bounces@lists.xenproject.org Tue Apr 01 15:50:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 15:50:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.934607.1336259 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzdt4-0004fO-C6; Tue, 01 Apr 2025 15:50:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 934607.1336259; Tue, 01 Apr 2025 15:50:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzdt4-0004fH-9M; Tue, 01 Apr 2025 15:50:50 +0000
Received: by outflank-mailman (input) for mailman id 934607;
 Tue, 01 Apr 2025 15:50:49 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=WxAi=WT=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tzdt3-0004fB-MK
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 15:50:49 +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 1426846a-0f11-11f0-9ffb-bf95429c2676;
 Tue, 01 Apr 2025 17:50:47 +0200 (CEST)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-43cf848528aso49821835e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 01 Apr 2025 08:50:47 -0700 (PDT)
Received: from [10.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-43d8ff03715sm161055285e9.31.2025.04.01.08.50.46
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 01 Apr 2025 08:50: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: 1426846a-0f11-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743522647; x=1744127447; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=yP1evTyESBoe3kupzMWoyYCDNDlBmidN0AjqoSd5iAU=;
        b=HCfXg7dNPajBGkrbMjEyUZB7duhE10IwAhD053BPaLqlAoN2aT7Xefy41GN3CCzpp4
         3DKMVWXBoAPrZ30WVeIn6iMMgCbysW0p1cMQ/mTLNnDIoFwCIqJ1lKWs/4hUTxkpUFOz
         zckBii694ZNzAmIlG/rNmPmMAZFl9izPrUm1Vyb8E+U1YNQqRY2wVzsACtbquykXw9cM
         CpuFXyAkFki5d1JLePBahi//kRe8TzUa5vWDvQgOu5clJCyc6KONdv92ZbHJcpFEdmwt
         AJXg6/Z2//3//ADkwxqo9youPg8D/PgUbtucOmN2lj97yc71z3yK+Zz1r4O1FUMxw365
         nMuA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743522647; x=1744127447;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=yP1evTyESBoe3kupzMWoyYCDNDlBmidN0AjqoSd5iAU=;
        b=McSEPehuKnWTos8vyrnmpm2DMJkE3ZA5PAB6HEC9s8vZjpADHxMXlUry1g9j/nN0g8
         ISBbMcsckEDnqzYAf56akrGK2k7sFAGBaVN0E6Zf0e9nZ7hW5AdsryPlYr620s375yh2
         qhK15YHvwZWRXwr67S3aQvUuxeh6umfma+d3WdHUWX0A3rMyxxfAZcdTqgXMtuf/mMCU
         PhzlgxwrvgWLp2pkMIe32dLFgh6iunt46oMgfSW3JjGQcbOuM1N+EL/67L+YwzH8iQ+Y
         LflD4/i05kPJq2s6XpX0pI9KyXmMXzo/SV69hueJVqBVnlYVj2gu58L+b/BnT7WYMoMV
         mZgA==
X-Forwarded-Encrypted: i=1; AJvYcCV3kSMfRwDIzSa1OsmuuWaB7+0KLuJgtmN365GKr5it954OfSzSjgdEwbpAA8ylmv6ohjY/OtXIETA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyVakIqUW0vaSDDwWUtzwzDvmu5tQsXNrvvpNTmG0E9e9alqvjx
	Mg3FpTuGHjaTPdpZgqBkaJ3aU6LazjlOXTbiVQGoxD5SQ4SnIAjWNrf6AuU01oswhW8Xv9bg5Xo
	=
X-Gm-Gg: ASbGncvIUFT+P5kmuCcJXZNahQolS3m61ViawF11kyDqfyP1lWUfLUh9XMUXRTFwULe
	obSiKrqHp5MgSbsDs1G1WTK5oY5oR4dREKrXu5CivITFgq37wKnTPQkSeXrtR35vWNY8ZEB2PBQ
	mAB9NIvOQsrAb1pf1y7+8nKXoLnszakBNw7KeRCQkV8NRl8y0YbPWrRtbwKr1EYJCjeXAnQF4jd
	bVK8YB9hG3qaIA96DHewNeVLziXRjrm/FlXZ/Vm4csNZS1BS6++i8IS9IKsmyxX0lBKrNGUSFwz
	4YzOBIvvlsd1NvIAoVDrgF9xLoEySju+iYW2oXzHSVBYw0UkO4Ej9z2WknEu4/ieU4o25XLD9pt
	BTQrRax3cJHViCqRXy+Qe3gSri7o+qA==
X-Google-Smtp-Source: AGHT+IFpubCdsVR6vIH0dRAiFsYI4N35WJaUHlzSAAhoFtWzrxgvzfCw5MMJuqgIrUEfG9LJhopWPg==
X-Received: by 2002:a05:600c:3150:b0:43d:412e:8a81 with SMTP id 5b1f17b1804b1-43dbc6f89f7mr88502995e9.28.1743522647050;
        Tue, 01 Apr 2025 08:50:47 -0700 (PDT)
Message-ID: <27eb6cb1-b891-4fd5-a1eb-12ff1290f68e@suse.com>
Date: Tue, 1 Apr 2025 17:50:45 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 03/11] x86/mkreloc: use the string table to get names
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, Andrew Cooper
 <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20250401130840.72119-1-roger.pau@citrix.com>
 <20250401130840.72119-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: <20250401130840.72119-4-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 01.04.2025 15:08, Roger Pau Monne wrote:
> --- a/xen/arch/x86/efi/mkreloc.c
> +++ b/xen/arch/x86/efi/mkreloc.c
> @@ -17,6 +17,12 @@
>  #define PE_BASE_RELOC_HIGHLOW  3
>  #define PE_BASE_RELOC_DIR64   10
>  
> +/* The size of a symbol table entry is always 18 bytes. */
> +#define SYM_SIZE 18
> +
> +const char *string_table;
> +unsigned int string_table_size;

The way you use it, imo this wants to be uint32_t.

Both probably want to be static.

> @@ -25,6 +31,28 @@ static void usage(const char *cmd, int rc)
>      exit(rc);
>  }
>  
> +const char *get_name(const char *name)
> +{
> +    static char buffer[sizeof(((struct section_header *)NULL)->name) + 1] = {};

As this makes things section specific, may I suggest to name the function
e.g. get_section_name()? Also better to be static again.

> +    unsigned long offset;
> +
> +    if ( name[0] != '/' )
> +    {
> +        /*
> +         * Use a temporary buffer in case the name is 8 characters long, as
> +         * then there's no terminating null character in the input string.
> +         */
> +        strncpy(buffer, name, sizeof(buffer) - 1);
> +        return buffer;
> +    }
> +
> +    offset = strtoul(&name[1], NULL, 10);

Don't you need to nul-terminate the string here, too, to play safe? (Yes,
we don't expect this big a string table.)

> +    if ( !string_table || offset < 4 || offset >= string_table_size )

Considering how you reduce string_table_size after having read it from
the image, don't you mean "offset - 4 >= string_table_size" here? Also
below you use sizeof(string_table_size) instead of a literal 4.

> +        return name;
> +
> +    return &string_table[offset - 4];

Here as well.

> @@ -83,6 +111,31 @@ static unsigned int load(const char *name, int *handle,
>          exit(3);
>      }
>  
> +    if ( !string_table && pe_hdr.symbol_table )
> +    {
> +        char *strings;
> +
> +        if ( lseek(in, pe_hdr.symbol_table + pe_hdr.symbols * SYM_SIZE,
> +                   SEEK_SET) < 0 ||
> +             read(in, &string_table_size, sizeof(string_table_size)) !=
> +             sizeof(string_table_size) )
> +        {
> +            perror(name);
> +            exit(3);
> +        }
> +
> +        string_table_size -= sizeof(string_table_size);

You're careful of underflow above; better be careful here, too?

> +        strings = malloc(string_table_size);

You check for all other errors, just not here?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 01 15:53:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 15:53:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.934619.1336269 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzdvQ-00065y-O5; Tue, 01 Apr 2025 15:53:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 934619.1336269; Tue, 01 Apr 2025 15:53:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzdvQ-00065r-LD; Tue, 01 Apr 2025 15:53:16 +0000
Received: by outflank-mailman (input) for mailman id 934619;
 Tue, 01 Apr 2025 15:53:15 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=hrmQ=WT=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1tzdvP-00065g-1z
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 15:53:15 +0000
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 (mail-am6eur05on20610.outbound.protection.outlook.com
 [2a01:111:f403:2612::610])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6b2fce56-0f11-11f0-9ea7-5ba50f476ded;
 Tue, 01 Apr 2025 17:53:13 +0200 (CEST)
Received: from DU7P190CA0007.EURP190.PROD.OUTLOOK.COM (2603:10a6:10:550::31)
 by AM9PR08MB6179.eurprd08.prod.outlook.com (2603:10a6:20b:2da::9) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.52; Tue, 1 Apr
 2025 15:53:08 +0000
Received: from DB5PEPF00014B99.eurprd02.prod.outlook.com
 (2603:10a6:10:550:cafe::f7) by DU7P190CA0007.outlook.office365.com
 (2603:10a6:10:550::31) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8534.54 via Frontend Transport; Tue,
 1 Apr 2025 15:53:08 +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.8606.22
 via Frontend Transport; Tue, 1 Apr 2025 15:53:08 +0000
Received: ("Tessian outbound d933a9851b56:v604");
 Tue, 01 Apr 2025 15:53:08 +0000
Received: from L33970440cb72.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 90AFE4F8-7A86-4B1D-86F3-71C449262F14.1; 
 Tue, 01 Apr 2025 15:53:01 +0000
Received: from EUR02-DB5-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id
 L33970440cb72.1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Tue, 01 Apr 2025 15:53:01 +0000
Received: from DB9PR08MB6588.eurprd08.prod.outlook.com (2603:10a6:10:25a::24)
 by DU0PR08MB8929.eurprd08.prod.outlook.com (2603:10a6:10:464::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.50; Tue, 1 Apr
 2025 15:53:00 +0000
Received: from DB9PR08MB6588.eurprd08.prod.outlook.com
 ([fe80::a8fc:ea0d:baf1:23a]) by DB9PR08MB6588.eurprd08.prod.outlook.com
 ([fe80::a8fc:ea0d:baf1:23a%7]) with mapi id 15.20.8534.048; Tue, 1 Apr 2025
 15:53: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: 6b2fce56-0f11-11f0-9ea7-5ba50f476ded
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=mNkFiDa4laKkWdgVtDnKiTEw6BR5DTqaILzC0TfiFLIzdO1g7SkoRhFw9fMvIQHzYrdpX19DhuyAmEekYxA74yf6t0sTZPiqVfLBTDpR83BcD78pNZaaQC3A4/b0TJPNhyRXRyQS7gxgUXppo/TgW3fY61gKPcaoyR5NCpRmplsuCFhizFvI2K0IPjQC3J4/2dRxUM9QmB/z9RM++7nIck3siB+aezYzC1fvfB1IwCzs9mobe08QD8dtY7TBgJIdBTIzALhE9o3M2Oxr7x8y27uG/d5Z2QR01CLqkGVoFz38DE1R4T7LcFA7u/7Ttu7NbbSEknQBXOF39tdth+J4Bw==
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=uUnVTkXdokWyRjr7ZWijg/ttinPRRX4MA2YSQFbSTc0=;
 b=QiSW4KZX91qvZRbh+B/ImJCXiJc8cvWA3kHi/+pCKzMVikdglfCE23S60e2/atjHuDQWf0/k1BolrA67AcznWLDR5IMH/o3hloRE6b8HYs2WU2DFcFaDDdK9CxhOehSzkpdJiBSbDuTXIqEmLcb9OshoJcvjgut61KNdp0+MsKERCgu4aAAq4+50OuHLWFOd2+PL90t/9Ol2RbSXyO/1By28ufj+ZtfJMCt9SOXtE7J4xEvu0noLQ0Vq5uocNAdi+DPu+t4hEgA5pH05TLRfVSoO+imb9UoaM/Ll9wcK5uZ8P6XBBYY7Cx26QBuhHaIzfM2Wl5WYIrMyWcbKi9YznA==
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=uUnVTkXdokWyRjr7ZWijg/ttinPRRX4MA2YSQFbSTc0=;
 b=MkpwIJEBDTU2OfzWaElpojs3WkqU70IlcGL0X1IAVtgMtLaqV7omgTd2YBOs7dCRPLhzWNcEE57WOgfHnc+D2FTfaA3AC4efkIkl+o0yXaKsCodJYv6wGlTQwoR4+QqITfU2M7GL8Tbu+2niTk6+E99gr/KxJrq7ytBxPsbYqYs=
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: 64e72adaf415f2fe
X-TessianGatewayMetadata: kQdjICLw47UegUDOXvnoNU7shGaZJVziiH8v/liJYkMhoNdxvMR1GfGtMEj8T/PMdATY2zs0mOVYqK6oGNJOZ2hAf0gUE1oBA4dMx8q+3lJvKYZhHudFN7jRYPdDs/GZrDRegriEI87lYdublptG6Y0SpQ4vVIgTgHt4eP1KRoI=
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=KJAWrmgx9th0CcEtUT8ueYyPu3/EZZobufomqFf2Wr8H7uR0FrtDwxYFJShHd9h98l+eMs11XbaZnl8Neyo40f+RD5sTeoAx6OWxdytUxjv4w24/UYIIlhq6U8/SkkINcGhoTS9ZfPRfK3uKYcGEsQHD4SchNaIf1QL0GKs4U7N9T9mgoO9g9/il6lKLZU/RjBjyyrAPZfDMsWUwQiEQn8pCvLn/VedqJUj2uShbjBcMg03FSNULXa/0bGfkrccaXrOyZAgB3Y3OqhvSuYpJAGFzzbUMVo0de3Sh7SzCnzSKIj4qZer0sPRrA943db87X2rJcjE14DgOhCl7QatM3Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=uUnVTkXdokWyRjr7ZWijg/ttinPRRX4MA2YSQFbSTc0=;
 b=xUF37JjBLNxx8dJlvRenCLLAqeOVufq9xIddGHKAzlJEcEVTBlePggPNeKtQ+7VkLzIHvNJ0s+1BIkQsvlOIEL8nRE/udP5fz6MO/qBfN4EgiaLa8AnrDAoGWfxEouJEsGxlXQKYUI35c2ZT8oxZGaonaxMJPTrgRS3cb04UsPDNdykp6toHOlVzwqaUIz8ncsagGQk7GgDzPoKDfc8QnRwvn4bf8qqDGSH/hNFaM4Fu0xZnWIko8zAwc+drNv7TBADrTMhtXIlmSQstiAzA8Y7PnJ8KHgD7gWtWKfTxdwFEEuMpofmDBmAr0WR0yraAGko1AJfrLZ7QhPgr1lCjHQ==
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=uUnVTkXdokWyRjr7ZWijg/ttinPRRX4MA2YSQFbSTc0=;
 b=MkpwIJEBDTU2OfzWaElpojs3WkqU70IlcGL0X1IAVtgMtLaqV7omgTd2YBOs7dCRPLhzWNcEE57WOgfHnc+D2FTfaA3AC4efkIkl+o0yXaKsCodJYv6wGlTQwoR4+QqITfU2M7GL8Tbu+2niTk6+E99gr/KxJrq7ytBxPsbYqYs=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: "Orzel, Michal" <michal.orzel@amd.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH] xen/arm: Drop process_shm_chosen()
Thread-Topic: [PATCH] xen/arm: Drop process_shm_chosen()
Thread-Index: AQHbouXQNh7nKprt5k2iUHPtnXy/N7OOxVgAgAAX+QCAAAdEAIAACRaAgAAIxYA=
Date: Tue, 1 Apr 2025 15:53:00 +0000
Message-ID: <16D32474-F78A-4E50-AA96-BE96D76D95FE@arm.com>
References: <20250401090937.105187-1-michal.orzel@amd.com>
 <3D313BC0-75C9-4208-9067-C1F6153B3859@arm.com>
 <f7a6dd50-28d9-409b-8740-f4433f2fd72e@amd.com>
 <237153F4-56B2-40AD-A2D4-824B621D3477@arm.com>
 <25e30373-139f-4827-91e7-a2dd6e85c433@amd.com>
In-Reply-To: <25e30373-139f-4827-91e7-a2dd6e85c433@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.400.131.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DB9PR08MB6588:EE_|DU0PR08MB8929:EE_|DB5PEPF00014B99:EE_|AM9PR08MB6179:EE_
X-MS-Office365-Filtering-Correlation-Id: df75397e-7fbe-4ead-25bf-08dd71354c50
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?DLDWtoRRoY6nadXSEKotcjjpWA8SU0akGlkppZlqu5SCGTYJmhfAOzah8OV3?=
 =?us-ascii?Q?vdn83ErSc6yiShjCvIBEgFAgpV/qyfP76pHE+0FovZYSJMarfDDUI4xznkVm?=
 =?us-ascii?Q?WFy5/D453l3t0wYyS32d2tlj77xSt99QbBCilMaJXiqULoo3D1dhRZ8hI3Fe?=
 =?us-ascii?Q?cjhybHd3fxxBEyRrNAk6jlb/SrDYHAjWRVsHWyeM3a8WgNgHBwTdv9QWS7ti?=
 =?us-ascii?Q?DNpqD6B9SpMADl6HAk7AriMBxHuidFn81ePwijbokU5PgKykDoWe2W8U5ABy?=
 =?us-ascii?Q?qJnJdpGSIEf9SH6bsVlFZMRGt53h629UOemuI/uK6lyRT5kFkgwqptTPEu/l?=
 =?us-ascii?Q?0P2t+I22urcSn7glunfKfF3khLNiAVzol3LfwOmbDwN85Hoo38VJDYDB9IM+?=
 =?us-ascii?Q?Ce0xTRlYUDdIAwKUmcRK+2uqRq7lL7HzxEHe9aUjoSLjuow5Y9tx/WJn19wk?=
 =?us-ascii?Q?1DNWoMXg3QIPZ7YASZdA5mBBtqgZhgWxIQlvR+a/0e2DmqtAPQEq6+RAgRuJ?=
 =?us-ascii?Q?tfcv0WUQfaVoUq/C8hxyqnDzbgd4V48cv5+W5DwPE+AREd5O0/EwgTL0sqpY?=
 =?us-ascii?Q?6n+FV+HsbMc4IaAg68lKr6QLJqKu/cy+g4lmk3WoxUPLS8g/0gviNJM/QBs1?=
 =?us-ascii?Q?U0TOQJd2KRQYtYHWGjvFV/R3GVkuouvDC8keDR7my247n+QXQEP+cGTuYmAP?=
 =?us-ascii?Q?JIIuBFvmkNgRjvFk0TOEQZAMkYOEoGj+tH2RilYWQuqcNZ81ACs2ScnvCedK?=
 =?us-ascii?Q?ulh/g6Dml4u7qzuQ9ahwRnAHE1Cjo13zWIF60EfuCXPE/Wg2N90rYWDFs+m9?=
 =?us-ascii?Q?+ap2aq6jabnxN6kDD/Xyvt59sUByBlACKYHIuSCwZg0crytdIX3KQZz/Cg1W?=
 =?us-ascii?Q?ZFpCvAQC0jXIh1uEFzUJ48ehVQVqvWGIGrrnMVawfHK8ob/lIjGnNJ3SdQuI?=
 =?us-ascii?Q?2CPDXleejQ6V9+50nUPYLY4w8hm4i14VfB1OjZLHyxpRkv4KfNgaMI4oVji3?=
 =?us-ascii?Q?xbmiyHLHPp3qjI8QYvz+qn30acyN6OSds7RRZZJ6h4xTaGSR3f/BXuxGGwmg?=
 =?us-ascii?Q?iFxS8v2A9MDXNboB1kRHVqiaGS8TxhlhIr9NPg+5HbEiOengfb7u2CLbCkz5?=
 =?us-ascii?Q?qup6lQ0D2Or2Y8oQR1UNIqGPBcTUPvvV9LPhVYQqW5l+TyoN6pg21s9lR7e4?=
 =?us-ascii?Q?x7/LerpDmAsRuBKm0nUggARrmhr9FUnxHsFQ7Fn7x2HV4Mr5x3cXW+FtNiP3?=
 =?us-ascii?Q?FTDhB+1BYtmnPlmRZYCxP8nECJowW5uRLJGO+370lHD8fxcfB5iVZFg+wviZ?=
 =?us-ascii?Q?Wp/uSsM3iSCgyG5Lk1dtJwXEbnQK4B61r016NHWf0QhMTHSi4pEiOHxMxxPq?=
 =?us-ascii?Q?gGwohHj7FNSR/hEwBs/O9N0Q9jQBiYX5nyuIM0XJ5sZxVGVV/dGgU1PWzwLm?=
 =?us-ascii?Q?rAT5mxggNo9KpU5qVkNsw5vCCBAuG5108vyT8igURmx+xbxOrmTgXQ=3D=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: <CEF6908CDA4C7C41A5CFB7E7F0363972@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB8929
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:
 DB5PEPF00014B99.eurprd02.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	08c679ea-7140-4bef-c582-08dd71354786
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|36860700013|35042699022|14060799003|82310400026|376014;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?qQzoTQdUDlvFj31NXXWREz/Va+N9SfGQsFLh6vkIYpbBWMOPIR8qp2aeEzRa?=
 =?us-ascii?Q?9s+uVlqkHhXjmFU54eEoY5PO8LjjXk1cs1T67axfz/VcHpInN+d5XEYpq/cJ?=
 =?us-ascii?Q?Ogv6OTg1t1OM8zxiw2K9rIIjEu2cGm3WvUV/yq35qD3j3PAg/MQ3hmSlUY6y?=
 =?us-ascii?Q?6wczGWQ7PD+BM+QSVyCdO9fHhNw/qSTbAYhlYiYqmCn+GLK3vsv+oEcVGKep?=
 =?us-ascii?Q?kNkX4nVVJQ+LJg994ntrZjDyEtSLp4NIyrHgFCAI501F7QPb5FcxtLnpHvvZ?=
 =?us-ascii?Q?8xdyCtaThJ1egkeva/KMlBcuJU4yS7c9N40D2W+U48sOOn5JbBcy8Ye1OxZe?=
 =?us-ascii?Q?g6GPfMYZNJYVYG+5JvS1N81m8tZbw77UTWWq1Axds3IAZbUQudgieeGwKz+K?=
 =?us-ascii?Q?R5uK943ScDMWHcliYmRE8uM4pz3WDCnYPQmVsHo1K1vW3cyIpcM7Va8fjFcn?=
 =?us-ascii?Q?1XfIQttwgVfmJGb0mRJ+XuHO2rHZ7gAieYIwBJPA4SN/NmPthYvF01m9iUx/?=
 =?us-ascii?Q?aGedTHjXLkkYgMJU2RaF/JVQ/YoXoWbZ8I0RKpZe/qIx/+X0lGlDsDraNRB2?=
 =?us-ascii?Q?SwQ5j0TceEghhu7nQFyaG9Bnu+XtXjTk8TcEnE17KHtVdxOWaCuujr01tbp+?=
 =?us-ascii?Q?n4b3XZoNXhqqPSNW27SNypz80LDu/sQk+ZYcK7jQ3GrKuu39KKieSrmbCQZA?=
 =?us-ascii?Q?j2VgT3Dz6FC8iEEp1taVDWTYKnd76RaSFCham6vwmxhXx1lpbf4R6/yWAhK7?=
 =?us-ascii?Q?eievt8UTArcYci3xJGOldkbtussZZsS6LHM6Fuays5VhPrrbikbOBTP12kJe?=
 =?us-ascii?Q?LwtpLlRhqP+ty6mLVfAQRu3akBpVNplYK9OA9yDz4NWvQ8z+ra/pqbyXGd/j?=
 =?us-ascii?Q?eYv3Pdi/0tDTHjarKddj4yQu7seYQ4J4Me2x/RfrwTg9kbdsIy0Q0ehIHzM9?=
 =?us-ascii?Q?ZBG5+KBUA5P3l9SZ/rCof6kKDPD4jVHB8AeRaIz8yXRERF4WbnfHsHYRCW+6?=
 =?us-ascii?Q?107Undz/WSqrhKAcKImp6jl91IHSxsKa4tLUNbeYTYKlMWZfrmN7r5xAgFQy?=
 =?us-ascii?Q?eVAhAvCKhXriWhJIh4XHyzZmeFXjDX70sKLOyiqOzFDztWVfMWTOonsoB36L?=
 =?us-ascii?Q?aQtjMuIKqKTlyoTIrQCqqjyCNAHolGtL871IJmHIcs7i++CH5cAfEMzpeovE?=
 =?us-ascii?Q?VQlWAEk0dCkUmZ4N3zw6GGax8nxskGVlpHVgxcNqwogyPSaSzqg7d2qhyNH/?=
 =?us-ascii?Q?WYq3cPmH5LNxiBgk5CVpy2HQZ9yNUtuiqGXVwsBXrAnQ0Q82Tjzh8cweAO2v?=
 =?us-ascii?Q?gtvgZ1yCq9dJRJuN18O2LVmkopAcikFCGOp5bWOEJBBq8wyKKPoYozApFXjg?=
 =?us-ascii?Q?esJXyzUE871Zy0LiqkDEytxCWdA2dtisSVDJDXoydfG3xcSNkWvOIuRHA5Zr?=
 =?us-ascii?Q?S7odJsIiDlFCNT5kKTQtlftXsL6Soig4+pduYJpv9HgIaLjzG0EyVHvy+kkN?=
 =?us-ascii?Q?kw8EZ5zFkMZh9UA=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)(1800799024)(36860700013)(35042699022)(14060799003)(82310400026)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Apr 2025 15:53:08.3848
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: df75397e-7fbe-4ead-25bf-08dd71354c50
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: AM9PR08MB6179

Hi Michal,

> On 1 Apr 2025, at 17:21, Orzel, Michal <michal.orzel@amd.com> wrote:
>=20
>=20
>=20
> On 01/04/2025 16:49, Bertrand Marquis wrote:
>>=20
>>=20
>> Hi,
>>=20
>>> On 1 Apr 2025, at 16:22, Orzel, Michal <Michal.Orzel@amd.com> wrote:
>>>=20
>>>=20
>>>=20
>>> On 01/04/2025 14:57, Bertrand Marquis wrote:
>>>>=20
>>>>=20
>>>> Hi Michal,
>>>>=20
>>>>> On 1 Apr 2025, at 11:09, Michal Orzel <michal.orzel@amd.com> wrote:
>>>>>=20
>>>>> There's no benefit in having process_shm_chosen() next to process_shm=
().
>>>>> The former is just a helper to pass "/chosen" node to the latter for
>>>>> hwdom case. Drop process_shm_chosen() and instead use process_shm()
>>>>> passing NULL as node parameter, which will result in searching for an=
d
>>>>> using /chosen to find shm node (the DT full path search is done in
>>>>> process_shm() to avoid expensive lookup if !CONFIG_STATIC_SHM). This
>>>>> will simplify future handling of hw/control domain separation.
>>>>>=20
>>>>> Signed-off-by: Michal Orzel <michal.orzel@amd.com>
>>>>> ---
>>>>> xen/arch/arm/domain_build.c             |  2 +-
>>>>> xen/arch/arm/include/asm/static-shmem.h | 14 --------------
>>>>> xen/arch/arm/static-shmem.c             |  4 ++++
>>>>> 3 files changed, 5 insertions(+), 15 deletions(-)
>>>>>=20
>>>>> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.=
c
>>>>> index 2b5b4331834f..7f9e17e1de4d 100644
>>>>> --- a/xen/arch/arm/domain_build.c
>>>>> +++ b/xen/arch/arm/domain_build.c
>>>>> @@ -2325,7 +2325,7 @@ int __init construct_hwdom(struct kernel_info *=
kinfo)
>>>>>   else
>>>>>       allocate_memory(d, kinfo);
>>>>>=20
>>>>> -    rc =3D process_shm_chosen(d, kinfo);
>>>>> +    rc =3D process_shm(d, kinfo, NULL);
>>>>>   if ( rc < 0 )
>>>>>       return rc;
>>>>>=20
>>>>> diff --git a/xen/arch/arm/include/asm/static-shmem.h b/xen/arch/arm/i=
nclude/asm/static-shmem.h
>>>>> index fd0867c4f26b..94eaa9d500f9 100644
>>>>> --- a/xen/arch/arm/include/asm/static-shmem.h
>>>>> +++ b/xen/arch/arm/include/asm/static-shmem.h
>>>>> @@ -18,14 +18,6 @@ int make_resv_memory_node(const struct kernel_info=
 *kinfo, int addrcells,
>>>>> int process_shm(struct domain *d, struct kernel_info *kinfo,
>>>>>               const struct dt_device_node *node);
>>>>>=20
>>>>> -static inline int process_shm_chosen(struct domain *d,
>>>>> -                                     struct kernel_info *kinfo)
>>>>> -{
>>>>> -    const struct dt_device_node *node =3D dt_find_node_by_path("/cho=
sen");
>>>>> -
>>>>> -    return process_shm(d, kinfo, node);
>>>>> -}
>>>>> -
>>>>> int process_shm_node(const void *fdt, int node, uint32_t address_cell=
s,
>>>>>                    uint32_t size_cells);
>>>>>=20
>>>>> @@ -74,12 +66,6 @@ static inline int process_shm(struct domain *d, st=
ruct kernel_info *kinfo,
>>>>>   return 0;
>>>>> }
>>>>>=20
>>>>> -static inline int process_shm_chosen(struct domain *d,
>>>>> -                                     struct kernel_info *kinfo)
>>>>> -{
>>>>> -    return 0;
>>>>> -}
>>>>> -
>>>>> static inline void init_sharedmem_pages(void) {};
>>>>>=20
>>>>> static inline int remove_shm_from_rangeset(const struct kernel_info *=
kinfo,
>>>>> diff --git a/xen/arch/arm/static-shmem.c b/xen/arch/arm/static-shmem.=
c
>>>>> index c74fa13d4847..cda90105923d 100644
>>>>> --- a/xen/arch/arm/static-shmem.c
>>>>> +++ b/xen/arch/arm/static-shmem.c
>>>>> @@ -297,6 +297,10 @@ int __init process_shm(struct domain *d, struct =
kernel_info *kinfo,
>>>>> {
>>>>>   struct dt_device_node *shm_node;
>>>>>=20
>>>>> +    /* Hwdom case - shm node under /chosen */
>>>>> +    if ( !node )
>>>>> +        node =3D dt_find_node_by_path("/chosen");
>>>>> +
>>>>=20
>>>> I would have 2 questions here:
>>>> - what if a NULL pointer is passed, wouldn't you wrongly look in the m=
ain device tree ?
>>> Do you mean from hwdom or domU path? In the former it is expected. In t=
he latter
>>> it would be a bug given that there are several dozens of things that op=
erate on
>>> this node being a /chosen/domU@X node before we pass node to process_sh=
m().
>>>=20
>>>> - isn't there a NULL case to be handled if dt_find_node_by_path does n=
ot find a result ?
>>> It wasn't validated before this change. It would be catched in early bo=
ot code
>>> so no worries.
>>=20
>> Then an ASSERT on NULL would be good.
> See below.
>=20
>>=20
>>>=20
>>>>=20
>>>> Couldn't the condition also check for the domain to be the hwdom ?
>>> I could although we have so many /chosen and hwdom asserts in the tree =
in the
>>> dom0 creation that I find it not necessary.
>>=20
>> There are never to many asserts but ok :-)
>>=20
>> With an ASSERT added for the NULL case you can add my R-b.
> :(
> So you still want to put ASSERT for a case where host DT does not have /c=
hosen
> node. I'd like to talk you to drop this idea. Normally I'm in favor of us=
ing
> ASSERTs but not for so obvious violations like missing /chosen.

I am not quite sure why you do not want an assert here.
Reading the code the first that comes to mind is "what if this is still NUL=
L after"
which would be clearly something no expected if someone sees an assert.

Seeing the place where it is, that would not impact performance in any way.
So why not adding it ?

>=20
> /chosen node is so crucial for Xen on Arm functioning that a lot of thing=
s would
> simply fail a lot  earlier than a point where we call process_shm() at th=
e end
> (almost) of hwdom creation. There would be no modules, so the first examp=
le that
> comes to my head is panic due to no kernel which happens way before proce=
ss_shm().
>=20

Sure you might be right, what if something bypass this due to efi boot or a=
cpi boot and the
code comes down here ?

Even it might be true now, this would make sure that no change in the code =
is changing this.

Anyway i will not argue on that for to long as it is kind of a matter of ta=
ste.

So feel free to put my acked-by without the assert.

Cheers
Bertrand

> ~Michal




From xen-devel-bounces@lists.xenproject.org Tue Apr 01 15:55:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 15:55:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.934632.1336278 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzdy2-0006ce-4j; Tue, 01 Apr 2025 15:55:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 934632.1336278; Tue, 01 Apr 2025 15:55: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 1tzdy2-0006cX-1S; Tue, 01 Apr 2025 15:55:58 +0000
Received: by outflank-mailman (input) for mailman id 934632;
 Tue, 01 Apr 2025 15:55:56 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=WxAi=WT=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tzdy0-0006cP-UA
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 15:55:56 +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 cbdb6ebb-0f11-11f0-9ea7-5ba50f476ded;
 Tue, 01 Apr 2025 17:55:55 +0200 (CEST)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-43d0359b1fcso37928455e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 01 Apr 2025 08:55:55 -0700 (PDT)
Received: from [10.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-43d90000a09sm158690115e9.35.2025.04.01.08.55.54
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 01 Apr 2025 08:55: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: cbdb6ebb-0f11-11f0-9ea7-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743522955; x=1744127755; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=FsFssmijb2yQK1HipmMBz6KwuCpmiCk6Ykqybi7sTTI=;
        b=XMzu3TA9v1KXtU6rNWVo7DZJDq87lMOc6B4xvOmrVjZXnIfRG84Vc+wY8V/bjcM6vT
         EcWfRAbfFZMbSF+h6gtd/7Jc30zj1OxCm3VJJsvOpboMsAqNGNKm3ZYId5QW43WmCLrE
         /g/3q5DgTqmYv0NDfINN9hJXdvtqNes9Oepkk9CLBK+k09DzwIRhreWWmtaFDaqMf1zW
         jZ0t7V1KMX2jIzgUA0LEpWye6fk5Jak3Hl4GTNe3B/kLkJ5KpC+jU4JYxgRILD/DrUZs
         JoHIBozhRH+yDwjamsWZd6qj9F74X+GLnhWlL7ttjJtrXbhkLmMRJScXc+GkUKRo8uDI
         Qk/w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743522955; x=1744127755;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=FsFssmijb2yQK1HipmMBz6KwuCpmiCk6Ykqybi7sTTI=;
        b=GgLadu6QbkrIGSsyD3ITXA1kbAqkV6wZVDWcztmTOJ5RSanTRMk2P5zyfAfb1wxxyZ
         G8rKgjD0rbYKqpCTrheAuDHSabfufnwuWmS6Vh7Kly6kNDuyn4Rg2rXWC+Z77Dn9nsux
         U8Y8IMtax+6BxnhtwJ83lcmRWyuHo4RsKZDWlTrglFSX/OQBRogTndN42qjDqvam20IP
         nnD/gQzy3U9agxd4ZDnBLoIPL3N6wEdeRtLziNj6jkCsDs841Uh3+dCRVOxf0PmdpLp+
         NR8qpEAfvyf1fFnDNKebvgh5lU+IpV+ETT3znIpCCFeSgyZmgVxu2WAFFjGDIw/TWck/
         wV0g==
X-Forwarded-Encrypted: i=1; AJvYcCWeP6w9wS5iH7Bcif1HgUDEtZxNarQdrfF7h9uy+KxJOSTUjMho5ITI3BhXNPiXLXXmg9vAU0hnVIo=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwAGs1N9RByN3y7YsWVT0hJdTJwQgBnAiaexJi8GsKlmEfxrP5p
	/dpKLvY0ntNnubCCbTpkBuU9b1xLdUCooAKGGS3TT6NROG4/lIS0T7pdqhqe+A==
X-Gm-Gg: ASbGncv5vgJmUf3DFwJ+oAaeSF/kYpWQ9W8cz3/nUnU/Km0btA8zqLYcl4cdGcDCy4o
	UwPbqnczGjOOhrbAWRejAFyukXjMWUKCJTNVFXY6llXK1fpdaljgh1ybLBVAHFhGD0Fu+CxMz+q
	JibDQaLQFfaKbMcoDqbEaPUTyoVOLY2J1WTo42Ozpe8z0V4Vhxk/hEQ6RUW6JZ1n3PQvpZ0/Rbc
	3SHplw0nwChOe7ddliK8CVJ/nbHh2/5IdTBRzA2cYqHrRGNRY9gwka9BovB6VumenSb4TFSQRun
	oJXCoGEMpNyehtBEHvCCY6RR3kGui+nbIdBula4uVDMEhKirh+YvTo4hnplhG19MrYh+KBwIPeh
	FaC8JuhPvrGOBc2lEuCE1vM099A088w==
X-Google-Smtp-Source: AGHT+IFTTkjVNzQd1HUH9MMyv1+v/H2qZiw1ZftnJWPxnh8wCgZsnsskP60Wp16g/S844pkuiDyfvA==
X-Received: by 2002:a05:600c:698c:b0:43d:186d:a4bf with SMTP id 5b1f17b1804b1-43eb04507e6mr5128515e9.0.1743522955295;
        Tue, 01 Apr 2025 08:55:55 -0700 (PDT)
Message-ID: <2564a765-bc7d-4d11-8d91-97df655da8fc@suse.com>
Date: Tue, 1 Apr 2025 17:55:54 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 04/11] x86/mkreloc: print the linear address of
 relocations to read-only sections
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, Andrew Cooper
 <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20250401130840.72119-1-roger.pau@citrix.com>
 <20250401130840.72119-5-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: <20250401130840.72119-5-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 01.04.2025 15:08, Roger Pau Monne wrote:
> --- a/xen/arch/x86/efi/mkreloc.c
> +++ b/xen/arch/x86/efi/mkreloc.c
> @@ -270,8 +270,9 @@ static void diff_sections(const unsigned char *ptr1, const unsigned char *ptr2,
>  
>          if ( !(sec->flags & IMAGE_SCN_MEM_WRITE) )
>              fprintf(stderr,
> -                    "Warning: relocation to r/o section %s:%08" PRIxFAST32 "\n",
> -                    get_name(sec->name), i - disp);
> +                    "Warning: relocation to r/o section %s:%08" PRIxFAST32 " @ %p\n",
> +                    get_name(sec->name), i - disp,
> +                    (void *)(base + sec->rva + i - disp));

This being a build tool, it may be built/run as 32-bit code. I fear the
conversion to a pointer will not be liked by the compiler then, for (in
this case) really losing half of the bits.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 01 15:59:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 15:59:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.934649.1336288 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tze0t-0007Gq-ME; Tue, 01 Apr 2025 15:58:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 934649.1336288; Tue, 01 Apr 2025 15:58: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 1tze0t-0007Gj-JV; Tue, 01 Apr 2025 15:58:55 +0000
Received: by outflank-mailman (input) for mailman id 934649;
 Tue, 01 Apr 2025 15:58: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=4pMn=WT=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1tze0r-0007Gd-Sv
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 15:58: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 34c1091f-0f12-11f0-9ffb-bf95429c2676;
 Tue, 01 Apr 2025 17:58:51 +0200 (CEST)
Received: by mail-ej1-x62d.google.com with SMTP id
 a640c23a62f3a-aaee2c5ee6eso859894266b.1
 for <xen-devel@lists.xenproject.org>; Tue, 01 Apr 2025 08:58:51 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-64-225.play-internet.pl.
 [109.243.64.225]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-ac71922bf79sm777430666b.35.2025.04.01.08.58.50
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 01 Apr 2025 08:58: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: 34c1091f-0f12-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1743523131; x=1744127931; darn=lists.xenproject.org;
        h=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=j8htelpKbTU2dix2B4lkHfx85WH71okU6YTp1RO/csU=;
        b=RqMKO4NMrnisWpVFDM82Y9ifZ4y6vFOzeDSnOTGc5cFIgO/p/D8IWNcAkjfThpsyrj
         qV152d+2+Jp0b01BjmGJC9i7LD+83i0CJ2fCjEAFkaddehkc+OyiS1cmAC99w7MUfcWI
         7NIdTxbnUnSVTNpxu5uIDRHW7t7TNqTnBMiuUAeJBDKnXG+3KqxsmRljb8ZxMwk4szdu
         nIyvd8C56Oa7jJohTH6hvuxyNPTPA3NrcDFgeOZH3NzqL2O3cH5e2BDCYixKxRv7IneT
         Jo7RGZgsk/gycVrfHQ0Db+1FN70wz9aBkdsagdhF2MUbyDoDZzH/Pk9+eE2Bau4LQRsX
         /YKg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743523131; x=1744127931;
        h=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=j8htelpKbTU2dix2B4lkHfx85WH71okU6YTp1RO/csU=;
        b=Z3yGQo+VwwXhQqQQAr3AxHczwSxqnFwTfBGaNeqVr7v4l0im2pcjgwZKmUysaLIcse
         2jCCvOLWPVNm1OZoKzgvEHUogws58oI/T3z93NOXu6OXbaZDNptjOBjYLDq75gVpW2Vt
         DsmnatfEVoQkRDISriJ1XVaAQ/ELgmyUIJSM+f9/9fnZWqJSMdqPPCmQPTHQ/LdxnjHx
         CKuCZ0XL42SzbPlBnxiiXTeAeVFRBhWyUcnlRMUVKoXD09gP7bXgfZuj41FV1PrAID6j
         3vfep2yJci72MTPEy794v8cz9eOreDpYhUHVHDOctpvONi7tm6UXW3LzmXMe1q2RC1xx
         uVsQ==
X-Forwarded-Encrypted: i=1; AJvYcCXvJApPExEbgBdMJII9AhTZXrSlNtuyCF6icxvxID8ZVYAQq0TQ7S7m3wlQJEVDtMnDVgx1X9Mbkj8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YziXtFTfE91lXDM5jeZLeSErSzN3jqXSPsXNNIpV/S+jL3fsDqu
	Z71uEs3k5+dnWEvm9e15F3Bqri6AjoP8GPzE6wcr1qnuvFzGbqI7
X-Gm-Gg: ASbGncv1a/k6V3L9sBNjnOQxNxwGKGzQqbL/a6pri2DpP5j4FEtMci/u+VxX8FZbiW7
	r5wbZ8+38kDr3PINjp49HCk7/LWvvlB1JZY4C5i/6d9e/wehgBE3f6Bp4DAxab43B7edVjif2u4
	1uhZEhYFrMcJN5BR3pwogx3zI6l3dbDNIKC2grT37YhPUmqMhnWblNirybthC82P3eoQ+DotvQQ
	69ohKQGn+3dCTbHKdxo5XPKgez++mgcxA6qND87pBGS8TVIwVxm0PNPYjIR6yl5XO+QaPgnws7f
	410/UcBPo8T7WymSgk9my0zUDP7cWMPO2Sdl/cFh6uQn79wExT7xkM8lJtC7jZvLBIs+pj0O5UU
	a+G22NJf/Y6QjLc8wQrwc
X-Google-Smtp-Source: AGHT+IFhXCuOgljTK8alXcoIlemvZQ0YKSpjnp43Og0j+ByHWhBl2b33+FOHWM+AIR2S5KaD3oHvWA==
X-Received: by 2002:a17:907:96a5:b0:ac3:ec77:27fb with SMTP id a640c23a62f3a-ac738a8b84cmr1061901066b.26.1743523131100;
        Tue, 01 Apr 2025 08:58:51 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------sSxrmNcgtobUfYa6NOQKX0v9"
Message-ID: <32264ccb-e566-41e0-973f-5bc7d874f970@gmail.com>
Date: Tue, 1 Apr 2025 17:58:50 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1] xen/riscv: Increase XEN_VIRT_SIZE
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <e5fa4219ccf43125e2489cc8c49b4404e6ed22ce.1743434164.git.oleksii.kurochko@gmail.com>
 <54ebdcb7-071f-411f-803a-930dc330a497@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <54ebdcb7-071f-411f-803a-930dc330a497@suse.com>

This is a multi-part message in MIME format.
--------------sSxrmNcgtobUfYa6NOQKX0v9
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 3/31/25 6:14 PM, Jan Beulich wrote:
> On 31.03.2025 17:20, Oleksii Kurochko wrote:
>> A randconfig job failed with the following issue:
>>    riscv64-linux-gnu-ld: Xen too large for early-boot assumptions
>>
>> The reason is that enabling the UBSAN config increased the size of
>> the Xen binary.
>>
>> Increase XEN_VIRT_SIZE to reserve enough space, allowing both UBSAN
>> and GCOV to be enabled together, with some slack for future growth.
> At some point you may want to use 2M mappings for .text (rx), .rodata
> (r), and .data (rw). Together with .init that would then completely
> fill those 8Mb afaict. Hence you may want to go a little further right
> away, e.g. to 16Mb.

It makes sense to me. I'll update to 16 Mb then right now.

>> +        _AC(XEN_VIRT_START, UL) >> vpn1_shift;
>> +    const unsigned long xen_virt_end_vpn =
>> +        xen_virt_starn_vpn + ((XEN_VIRT_SIZE >> vpn1_shift) - 1);
>> +
>>       if ((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)) ==
>> -           (_AC(XEN_VIRT_START, UL) >> (PAGETABLE_ORDER + PAGE_SHIFT)));
>> +    BUILD_BUG_ON(XEN_VIRT_SIZE != MB(8));
> Is it necessary to be != ? Won't > suffice?

It could be just > MB(2). Or perphaps >=.

>
>> +    ASSERT((va_vpn >= xen_virt_starn_vpn) && (va_vpn <= xen_virt_end_vpn));
> Are you sure about <= on the rhs of the && ?

I am using -1 [ ((XEN_VIRT_SIZE >> vpn1_shift) - 1) ] when calculating the xen_virt_end_vpn to make the range inclusive.
So it should be fine.

>
>> --- a/xen/arch/riscv/mm.c
>> +++ b/xen/arch/riscv/mm.c
>> @@ -31,20 +31,21 @@ unsigned long __ro_after_init phys_offset; /* = load_start - XEN_VIRT_START */
>>   #define LOAD_TO_LINK(addr) ((unsigned long)(addr) - phys_offset)
>>   
>>   /*
>> - * It is expected that Xen won't be more then 2 MB.
>> + * It is expected that Xen won't be more then 8 MB.
>>    * The check in xen.lds.S guarantees that.
>> - * At least 3 page tables (in case of Sv39 ) are needed to cover 2 MB.
>> + * At least 6 page tables (in case of Sv39) are needed to cover 8 MB.
>>    * One for each page level table with PAGE_SIZE = 4 Kb.
>>    *
>> - * One L0 page table can cover 2 MB(512 entries of one page table * PAGE_SIZE).
>> + * Four L0 page table can cover 8 MB(512 entries of
>> + * one page table * PAGE_SIZE).
>>    *
>>    * It might be needed one more page table in case when Xen load address
>>    * isn't 2 MB aligned.
>>    *
>> - * CONFIG_PAGING_LEVELS page tables are needed for the identity mapping,
>> + * (CONFIG_PAGING_LEVELS + 2) page tables are needed for the identity mapping,
>>    * except that the root page table is shared with the initial mapping
>>    */
>> -#define PGTBL_INITIAL_COUNT ((CONFIG_PAGING_LEVELS - 1) * 2 + 1)
>> +#define PGTBL_INITIAL_COUNT ((CONFIG_PAGING_LEVELS + 2) * 2 + 1)
> I'm in trouble fitting the comment updates with the update of the #define. Why
> would more tables be needed for the identity mapping?

Agree, it isn't needed more tables for the identity mapping.

>   Why does XEN_VIRT_SIZE
> not appear anywhere here?

I just used 8 Mb explicitly in the comment but I think you really asked me about definition
of PGTBL_INITIAL_COUNT where I just explicitly take into account 3 extra pages for L0.
I will update it with using of XEN_VIRT_SIZE to have more generic definition of PGTBL_INITIAL_COUNT.

Thanks

~ Oleksii

--------------sSxrmNcgtobUfYa6NOQKX0v9
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 3/31/25 6:14 PM, Jan Beulich wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:54ebdcb7-071f-411f-803a-930dc330a497@suse.com">
      <pre wrap="" class="moz-quote-pre">On 31.03.2025 17:20, Oleksii Kurochko wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">A randconfig job failed with the following issue:
  riscv64-linux-gnu-ld: Xen too large for early-boot assumptions

The reason is that enabling the UBSAN config increased the size of
the Xen binary.

Increase XEN_VIRT_SIZE to reserve enough space, allowing both UBSAN
and GCOV to be enabled together, with some slack for future growth.
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
At some point you may want to use 2M mappings for .text (rx), .rodata
(r), and .data (rw). Together with .init that would then completely
fill those 8Mb afaict. Hence you may want to go a little further right
away, e.g. to 16Mb.</pre>
    </blockquote>
    <pre>It makes sense to me. I'll update to 16 Mb then right now.

</pre>
    <blockquote type="cite"
      cite="mid:54ebdcb7-071f-411f-803a-930dc330a497@suse.com">
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+        _AC(XEN_VIRT_START, UL) &gt;&gt; vpn1_shift;
+    const unsigned long xen_virt_end_vpn =
+        xen_virt_starn_vpn + ((XEN_VIRT_SIZE &gt;&gt; vpn1_shift) - 1);
+
     if ((va &gt;= DIRECTMAP_VIRT_START) &amp;&amp;
         (va &lt;= DIRECTMAP_VIRT_END))
         return directmapoff_to_maddr(va - directmap_virt_start);
 
-    BUILD_BUG_ON(XEN_VIRT_SIZE != MB(2));
-    ASSERT((va &gt;&gt; (PAGETABLE_ORDER + PAGE_SHIFT)) ==
-           (_AC(XEN_VIRT_START, UL) &gt;&gt; (PAGETABLE_ORDER + PAGE_SHIFT)));
+    BUILD_BUG_ON(XEN_VIRT_SIZE != MB(8));
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Is it necessary to be != ? Won't &gt; suffice?</pre>
    </blockquote>
    <pre>It could be just &gt; MB(2). Or perphaps &gt;=.

</pre>
    <blockquote type="cite"
      cite="mid:54ebdcb7-071f-411f-803a-930dc330a497@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+    ASSERT((va_vpn &gt;= xen_virt_starn_vpn) &amp;&amp; (va_vpn &lt;= xen_virt_end_vpn));
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Are you sure about &lt;= on the rhs of the &amp;&amp; ?</pre>
    </blockquote>
    <pre>I am using -1 [ ((XEN_VIRT_SIZE &gt;&gt; vpn1_shift) - 1) ] when calculating the xen_virt_end_vpn to make the range inclusive.
So it should be fine.

</pre>
    <blockquote type="cite"
      cite="mid:54ebdcb7-071f-411f-803a-930dc330a497@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">--- a/xen/arch/riscv/mm.c
+++ b/xen/arch/riscv/mm.c
@@ -31,20 +31,21 @@ unsigned long __ro_after_init phys_offset; /* = load_start - XEN_VIRT_START */
 #define LOAD_TO_LINK(addr) ((unsigned long)(addr) - phys_offset)
 
 /*
- * It is expected that Xen won't be more then 2 MB.
+ * It is expected that Xen won't be more then 8 MB.
  * The check in xen.lds.S guarantees that.
- * At least 3 page tables (in case of Sv39 ) are needed to cover 2 MB.
+ * At least 6 page tables (in case of Sv39) are needed to cover 8 MB.
  * One for each page level table with PAGE_SIZE = 4 Kb.
  *
- * One L0 page table can cover 2 MB(512 entries of one page table * PAGE_SIZE).
+ * Four L0 page table can cover 8 MB(512 entries of
+ * one page table * PAGE_SIZE).
  *
  * It might be needed one more page table in case when Xen load address
  * isn't 2 MB aligned.
  *
- * CONFIG_PAGING_LEVELS page tables are needed for the identity mapping,
+ * (CONFIG_PAGING_LEVELS + 2) page tables are needed for the identity mapping,
  * except that the root page table is shared with the initial mapping
  */
-#define PGTBL_INITIAL_COUNT ((CONFIG_PAGING_LEVELS - 1) * 2 + 1)
+#define PGTBL_INITIAL_COUNT ((CONFIG_PAGING_LEVELS + 2) * 2 + 1)
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
I'm in trouble fitting the comment updates with the update of the #define. Why
would more tables be needed for the identity mapping?</pre>
    </blockquote>
    <pre>Agree, it isn't needed more tables for the identity mapping.

</pre>
    <blockquote type="cite"
      cite="mid:54ebdcb7-071f-411f-803a-930dc330a497@suse.com">
      <pre wrap="" class="moz-quote-pre"> Why does XEN_VIRT_SIZE
not appear anywhere here?</pre>
    </blockquote>
    <pre>I just used 8 Mb explicitly in the comment but I think you really asked me about definition
of PGTBL_INITIAL_COUNT where I just explicitly take into account 3 extra pages for L0.
I will update it with using of XEN_VIRT_SIZE to have more generic definition of PGTBL_INITIAL_COUNT.

Thanks

~ Oleksii

</pre>
  </body>
</html>

--------------sSxrmNcgtobUfYa6NOQKX0v9--


From xen-devel-bounces@lists.xenproject.org Tue Apr 01 16:02:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 16:02:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.934660.1336300 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tze4a-0002QB-71; Tue, 01 Apr 2025 16:02:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 934660.1336300; Tue, 01 Apr 2025 16:02: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 1tze4a-0002Q4-1s; Tue, 01 Apr 2025 16:02:44 +0000
Received: by outflank-mailman (input) for mailman id 934660;
 Tue, 01 Apr 2025 16:02: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=WxAi=WT=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tze4Z-0002Py-82
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 16:02:43 +0000
Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com
 [2a00:1450:4864:20::330])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bd72b2e6-0f12-11f0-9ffb-bf95429c2676;
 Tue, 01 Apr 2025 18:02:41 +0200 (CEST)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-43cfebc343dso43409005e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 01 Apr 2025 09:02:41 -0700 (PDT)
Received: from [10.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-43d82e834a5sm207545625e9.13.2025.04.01.09.02.38
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 01 Apr 2025 09:02:38 -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: bd72b2e6-0f12-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743523360; x=1744128160; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=1Rd1UfYIcfzPadMvtlKgSvC+u88t6PcyshAEvjoQHYQ=;
        b=Yq5OPQmJQcfq7wlNwBWmLIMBr1bT0Em13txZMGRMzDENKm1jgm/yWc2g6vqeKFxNIf
         h65ufOQFw1Cy/zW+O6COcS+JxWdVXN2GFRVlbk7/sxRb4C5PobNUASQRCEM9ArJ3v5zm
         SmNOE5afIYL4GAAO6amiLDENj15WcX/V0vcjwMa7RlCq61IyE//P9mL9IX5/wZetHyPA
         4nBAeRlLzJGTy1KVNyj1+BgWkIt2JSRkO322r7cjWbPstQZuoQQl1lGUZEcGFzVKrxEb
         g0jhIHBlwiwukWCMstYzWLBFyrBBvVEzxR5e/3fATQBZgYdCLLYQvDUb1eViEwMO9TR4
         mIKg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743523360; x=1744128160;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=1Rd1UfYIcfzPadMvtlKgSvC+u88t6PcyshAEvjoQHYQ=;
        b=gMgG3Dc3w0MmN1ZSO2viXe5oCQpZ3NbQRfQdHBzEzXHZALo1p3B1XyI6kpQ/O+ZzRb
         BCrYYdJo3fR37RZn89NtOd/SSFb3r/Yx6yNPI2/QGdBPNzJy0g+rIeGy7HXfbSyUwRmh
         xHO9q35vgTHQUgPjG+EgKW1AjK12mtlShO5l1TVk0MEusnu4YQOkQx/PgKibZCiTyzSw
         DkMCIdMeStJoJPg3S5sMBU8Q2AEwPs32+cuyre8PjuBqehy7bzasbTPAY3CCOTULg1ts
         nFV4i4vs3dGOENOqg3//b1MC85joUoOJcDofyyCptyYvJPvs41mrBTZ07l807D2ESqFv
         ywuQ==
X-Forwarded-Encrypted: i=1; AJvYcCWATlp6GWiY4jO1cbXFxgPjhVdzbcO/hUQ/oK5ykT2B/m36MJQ726lXyLZjgJMM1YIis6gB2jLuNxI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzhoykKAUJeRGq3G80PUfuz8021KtsKCQ4Z9tcGaN+0I7jJzg5Y
	0eSSi9as8BkOXjxsC8w4YvHOJFJ/3ouGRIXcMQ3pX3i5W+1Q3yNU6Hyi3+6xgg==
X-Gm-Gg: ASbGncvdEvT2m+oEjFe66qkBQg7oPkRhZXaB4w8nU9hBuWJmNFooyrdZLB60fdp+Wkw
	8iPFnU3JYBQE9I/fOluFM6afpylx747Juod25KTCitauEAWNgYuxiCLCO++8DbYeFBB5sB+gFAM
	WTR4RNMXha8ysMNmnfP3/g+4v/JMUsqzL1vdlV7l4hkommSFoPPe3/BB1pjHZbQLef93kUzWovS
	k0WNT2DRwu6QZuIk7ASYGnTkmXMepc4CTt7YkKJjf8XHQan33qNDvZKZs/XTBMP0Wvw2/WClXf9
	uqGRdOGAIGnx/Fg3UckO2awdrxo8qBCqZKxo/OQVihnAu/16Kre6cKLWfBTvhQDwx5oXoWSxnH5
	nxjU5gkT1W6WzI51ey0khufhguEaDCA==
X-Google-Smtp-Source: AGHT+IFMqIf6XOdSzNNyMPn+t/KNTyFbUHBdss3pG+DS8HHYqEttGrEW4CBc3kbNTmfs9dVGxzyzKg==
X-Received: by 2002:a05:600c:190b:b0:43d:49eb:963f with SMTP id 5b1f17b1804b1-43ea7cc37d7mr35677805e9.24.1743523359072;
        Tue, 01 Apr 2025 09:02:39 -0700 (PDT)
Message-ID: <ff6afa1e-8fa8-4adf-998d-af2b10aaebea@suse.com>
Date: Tue, 1 Apr 2025 18:02:37 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 07/11] x86/efi: discard multiboot related entry code
 for PE binary
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20250401130840.72119-1-roger.pau@citrix.com>
 <20250401130840.72119-8-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: <20250401130840.72119-8-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 01.04.2025 15:08, Roger Pau Monne wrote:
> --- a/xen/arch/x86/xen.lds.S
> +++ b/xen/arch/x86/xen.lds.S
> @@ -63,6 +63,7 @@ SECTIONS
>    . = __image_base__;
>    /DISCARD/ : {
>      *(.text.header)
> +    *(.init.multiboot)
>    }
>  #endif
>  
> @@ -208,6 +209,7 @@ SECTIONS
>         _sinittext = .;
>         *(.init.text)
>         *(.text.startup)
> +       *(.init.multiboot)
>         _einittext = .;

Better keep stuff that was early in .init.text early, by putting
.init.multiboot first here? Then in principle:
Reviewed-by: Jan Beulich <jbeulich@suse.com>

However, there are then-orphan contributions to .init.rodata (maybe also
to .init.data), which is at least a little odd. If they're to stay that
way at least for the moment, maybe at least mention the aspect as known
in the commit message?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 01 16:05:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 16:05:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.934671.1336309 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tze6l-0002xV-GQ; Tue, 01 Apr 2025 16:04:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 934671.1336309; Tue, 01 Apr 2025 16:04: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 1tze6l-0002xO-DW; Tue, 01 Apr 2025 16:04:59 +0000
Received: by outflank-mailman (input) for mailman id 934671;
 Tue, 01 Apr 2025 16:04: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=WxAi=WT=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tze6k-0002xG-5m
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 16:04:58 +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 0e844da7-0f13-11f0-9ea7-5ba50f476ded;
 Tue, 01 Apr 2025 18:04:57 +0200 (CEST)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-4393dc02b78so37603215e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 01 Apr 2025 09:04:57 -0700 (PDT)
Received: from [10.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-43d8fba3ed8sm162317185e9.6.2025.04.01.09.04.55
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 01 Apr 2025 09:04:56 -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: 0e844da7-0f13-11f0-9ea7-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743523497; x=1744128297; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=6SjNuBV4iL+6r1962jfN/sJuCzHuPQdZ1glXkhh3DH0=;
        b=XWAgs3TZllWDtamJv80t4HHrHbcoKMeh8eff+NCF0LRwEGSYBXDYsdp2PHkTZ/QfV5
         4WkffFDlX4lSe4lrZeFSrlvpZa6ovdSj51EBSyQDBbQ6Hujw+H6WYD523JVTZGQVnq6v
         433QFMymmMyEQS7T+HObF17h9AZs82KcWfvdulWAIjdsiKtPJPpjdliHdpvoIG9B8ncI
         apq+P1fm5M5RjWgFSPT9KvRuXqQYbxLH2grx8rTiT0l9ngBUERUqxNUYc55yXVErNWO7
         3O6bkRYHNeCbC+q0eDXTMM+MiVPI3EZXGmefMCRPTmM18GcqzQbozIba3XPTdBAiT3Ao
         +4uA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743523497; x=1744128297;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=6SjNuBV4iL+6r1962jfN/sJuCzHuPQdZ1glXkhh3DH0=;
        b=hUEMayFqgUt1tkODqQ9vQMy4w8ejAaxI/aQDQwX0gfJgPsPT9WlM3/S8WSNXKLwV4T
         8DupyKUy5w+1/u0mdSkbJY9DDyCfbjQXZwq5R9o7GeFhhpQi8fJxohJd/dcmGGD1eTOQ
         VWXtp/OyzHgDjzXZtCy9/IFHCtRr2FToNvWSh8lRz8q4l3+23QKGbwhkrsiB0tUeF5O7
         XIw+I+aQj/qwfpKD9hYbbHdb/+3iWtPD6OvUwuwNCOm6QIxWWwLorpDvvRed04tWRwWa
         I6cbQaBUSnUbvjaO7gqt6oRpFowniLOpA3pOuW/4T5T4UFN9rQRWgdW+R6eNvZahj3f1
         H+UA==
X-Forwarded-Encrypted: i=1; AJvYcCUKLiLxgLWKNozDS0OT5/oSucqKDauas52h8qlyMEeJlhvtzEJV0BmgTvF68UDSknqClYa1vtKmeA8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwsPHVzmofE2xZepa4yZhIueXTbfKvlhA5j6FFQqMy+8eh0EPqT
	BOl9T1lSP1qYjS/x3+9j73vW5eDBMjG6q8V1lQ3GqRw/nv4AaP1/ps8OkBLgEg==
X-Gm-Gg: ASbGncvZcslskJsr1fh61U3NkM4A2MhS95TCanyBtdCMOrsX9FnjeSxupoOyBPLHeKl
	6BIvOpzGsA1lfZ1qKzJNt3pS+ASdBphM///93sapOZhWQyQMdXbjlRIzDFWljTdqcUf9F/k1nBH
	LkpdWfDxSxbdy+InXW7GtQdnf5k/xv/9teFJe1jd8sRV/lnAmGDCotFEAy7HcEJnCSVu/njGL+0
	oMrn+Ht5MXZK6+b15Ei4pL1Yy75tOqTTilH2sHiS5sSu2f3REH57g6YEEEKMwPCbtF3UOWMoS6L
	1f3S8too1B6Lq0n3CLFypp+VfO7cZfz0sqrC6tq+LrTWKtNqKZTKYb8Pzodhf5qV8FE/7sIL+nK
	kh7oQ+rb16icaArCaWG/28l8dzXL+Sg==
X-Google-Smtp-Source: AGHT+IHZ7Bz8VCa1ygwrlJIUsUY0MJKNQ+Tr+RvHOTOnkMaZnZ4ZCUrlO6zrN3JT1AqFrMmB2GglLQ==
X-Received: by 2002:a05:600c:3c9e:b0:43c:e9d0:9ee5 with SMTP id 5b1f17b1804b1-43ea7c9699fmr38910225e9.18.1743523496584;
        Tue, 01 Apr 2025 09:04:56 -0700 (PDT)
Message-ID: <9d7e1553-3af8-4fc3-a400-8714d9b68411@suse.com>
Date: Tue, 1 Apr 2025 18:04:55 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1] xen/riscv: Increase XEN_VIRT_SIZE
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <e5fa4219ccf43125e2489cc8c49b4404e6ed22ce.1743434164.git.oleksii.kurochko@gmail.com>
 <54ebdcb7-071f-411f-803a-930dc330a497@suse.com>
 <32264ccb-e566-41e0-973f-5bc7d874f970@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: <32264ccb-e566-41e0-973f-5bc7d874f970@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 01.04.2025 17:58, Oleksii Kurochko wrote:
> On 3/31/25 6:14 PM, Jan Beulich wrote:
>> On 31.03.2025 17:20, Oleksii Kurochko wrote:
>>> +        _AC(XEN_VIRT_START, UL) >> vpn1_shift;
>>> +    const unsigned long xen_virt_end_vpn =
>>> +        xen_virt_starn_vpn + ((XEN_VIRT_SIZE >> vpn1_shift) - 1);
>>> +
>>>       if ((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)) ==
>>> -           (_AC(XEN_VIRT_START, UL) >> (PAGETABLE_ORDER + PAGE_SHIFT)));
>>> +    BUILD_BUG_ON(XEN_VIRT_SIZE != MB(8));
>> Is it necessary to be != ? Won't > suffice?
> 
> It could be just > MB(2). Or perphaps >=.

>= would make the build fail, wouldn't it?

>>> +    ASSERT((va_vpn >= xen_virt_starn_vpn) && (va_vpn <= xen_virt_end_vpn));
>> Are you sure about <= on the rhs of the && ?
> 
> I am using -1 [ ((XEN_VIRT_SIZE >> vpn1_shift) - 1) ] when calculating the xen_virt_end_vpn to make the range inclusive.

Oh, indeed, I didn't look there closely enough.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 01 16:42:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 16:42:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.934690.1336319 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzeh8-00052O-9W; Tue, 01 Apr 2025 16:42:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 934690.1336319; Tue, 01 Apr 2025 16:42: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 1tzeh8-00052H-63; Tue, 01 Apr 2025 16:42:34 +0000
Received: by outflank-mailman (input) for mailman id 934690;
 Tue, 01 Apr 2025 16:42: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=yHas=WT=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1tzeh6-000528-5p
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 16:42:32 +0000
Received: from NAM11-CO1-obe.outbound.protection.outlook.com
 (mail-co1nam11on20623.outbound.protection.outlook.com
 [2a01:111:f403:2416::623])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4b82b240-0f18-11f0-9ffb-bf95429c2676;
 Tue, 01 Apr 2025 18:42:29 +0200 (CEST)
Received: from BN9PR12MB5273.namprd12.prod.outlook.com (2603:10b6:408:11e::22)
 by SN7PR12MB7954.namprd12.prod.outlook.com (2603:10b6:806:344::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.44; Tue, 1 Apr
 2025 16:42:24 +0000
Received: from BN9PR12MB5273.namprd12.prod.outlook.com
 ([fe80::cf66:58ab:47be:4b13]) by BN9PR12MB5273.namprd12.prod.outlook.com
 ([fe80::cf66:58ab:47be:4b13%5]) with mapi id 15.20.8534.045; Tue, 1 Apr 2025
 16:42: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: 4b82b240-0f18-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=SkCF5N00/IdUXr21M6LylDLvBpEEh3hxMdr3hrBXhj49UejZoMQzciI48zumoENgOsYNUVWPfZEf1L59VHOvHx5wr0IuqbzJ5y0bTEmvilh/Vn0qC8hGBFIS6I48VtVfxME216ZPo8Ysjdzq1R1cVZ5NJhcUdO8GsLuXpLqn2YdOPrAOQMkfqlahFr+p+wo60O1PRSh2k8VLObEzxxkEbmLHGkRdhRT0i6jFlgGHBk/Sf9/6fahSekEF62iD+TEBL24Wo9gcyMXZPwfCKp4MwC/ryvj/O34fYOHZA043+8gHo9AvTDil8M66AmtfPEiE8WHyVSXSqjQv7hQ2P0oDZg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=1aTHYGmgzcKfrE8NYEk1QVMZeXSE7B7B726AvkDoqKA=;
 b=jAp6yqag2bXP8qOAhrWzOZy/i3aYTkbqqw8OgeQHFBkgAmozjWYKNxHtQBx9Ngzo7l1ry0r2vXIAeGhyYBWmr3Uo1y96Ydj6L0IG6J6V8jZOn6l+ejPizKkXckAKqPgoEuzZfE85eAdS7DSMffCnYpaX6N1AbJSF3jkmRMZ/EaOac+rfUtoGqYnKHMJDWoBAJlko34U6ZQ8QuvXfPMvEBRKuCXooPL1E9Tx1Ox1gyFgVPtPWUQPU9n0QaYU7sNIZMSM5Dzm/5AQcp6TlreY3FAwSLgPgaL/TMTMZmT66ksmDPFvvCrNCkuFccTAupfUuSNRV9h7xvHsSTpZ7jjZZdw==
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=1aTHYGmgzcKfrE8NYEk1QVMZeXSE7B7B726AvkDoqKA=;
 b=vd849Vb3gm4bkhHzh7VC/em5+aGDSZcj/7Mgh51Ydclp0A/Ial1318EEgtTXadsvyViG6A5z8OxgA6R8ANnDC8x82WJVBcOF9qZaIefG1rCnhw54zgAjvLER3BKk19uOFN5Y9NutVctC2rdMCGvQbRP0BaPLktrl2PgqlP+swXA=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <f06abd4c-dcf3-4b95-ba37-82b72da1f783@amd.com>
Date: Tue, 1 Apr 2025 18:42:21 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/arm: Drop process_shm_chosen()
To: Bertrand Marquis <Bertrand.Marquis@arm.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <20250401090937.105187-1-michal.orzel@amd.com>
 <3D313BC0-75C9-4208-9067-C1F6153B3859@arm.com>
 <f7a6dd50-28d9-409b-8740-f4433f2fd72e@amd.com>
 <237153F4-56B2-40AD-A2D4-824B621D3477@arm.com>
 <25e30373-139f-4827-91e7-a2dd6e85c433@amd.com>
 <16D32474-F78A-4E50-AA96-BE96D76D95FE@arm.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <16D32474-F78A-4E50-AA96-BE96D76D95FE@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR4P281CA0010.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:c8::9) To BN9PR12MB5273.namprd12.prod.outlook.com
 (2603:10b6:408:11e::22)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN9PR12MB5273:EE_|SN7PR12MB7954:EE_
X-MS-Office365-Filtering-Correlation-Id: cc59317b-6f1f-4fe5-45f3-08dd713c2dfd
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?dy9sT3d3WCthcWN5ME0yV25TYjVJMWJqeDB5MlJEREZFWkpvUmVxUy9aSmJw?=
 =?utf-8?B?ZzIzc0JMUFF6QUhaVGZFMVRTWDJRU3p6TDFwRXhIQnFSd2l2MElqVDZGY0lm?=
 =?utf-8?B?ZmpvbnRvdFFoZEgyTmhvMVZtNUVXYVdDQ0VWc2t1RU1tRG8xZ1JjMUtXbnE5?=
 =?utf-8?B?NHRzeUsyZHVIY25jZUF0MXVBc2tFMWFYNU9HRGNkM2pqeWR0MUJUNmVKRC9T?=
 =?utf-8?B?UVVtM096MFBYajAvTHNFb3d3SFhnLzUyRjUzdTJ5NnprSlBnVzlzQ1NzNE8r?=
 =?utf-8?B?VVkvNVBrNmxzOWFDeFRxMXFtUmRaRHRraWxwbi9DNmkrN3p1ZHNGYTNTYnpY?=
 =?utf-8?B?SWQrM2xzRkFycVlia0NRL2hOdGlvdy9HeG52dXRWWC9uLzFzUnNSVUREQWpB?=
 =?utf-8?B?VUw3OHk0Z2o2cjlkdkdVYVEwUGdRRERoRHhDZmp2ZDVlT0tKazBRaGxKNjFz?=
 =?utf-8?B?dG9KTnRENVI5aHZTZ01Wbm0rTXVyMkxzMGNUZ0owcnlEbHVFMjBwUXUvZ2My?=
 =?utf-8?B?R2doSjlyS24rd3VJNGltc3lWcW1GWm14eGpYTFVFallGMldyTlJST2J3c2cy?=
 =?utf-8?B?eHdJTFh2UnFTbUxkVFdPeGNUUHFrellRdm96OXlWd0l6MEkzYjVxZ1p0ZUQ1?=
 =?utf-8?B?Q1ZDMWlMRDc3Y01scHQ0eFhHcjlCVEVKUHQwYW51MzFQd3NZbE5sUUVERE1H?=
 =?utf-8?B?YlBPNVk3V21jT3U5U01PUDFESyt6L1ZxTU5FV0ZzVWhZQWtYb0k5VFBOQ2VT?=
 =?utf-8?B?ZDRPOHV3QnZqRWRQTnY2OCtJRVBpN2p2RG1OZllQeGNZMWhVMXpWWW83YzRm?=
 =?utf-8?B?eC9ZcjFvZHZ6dzhkZGU5d01nSUdJYUVzSCtsZGVOdUo2K3c5YU84VEZQVmJV?=
 =?utf-8?B?Y2NLWmxUeDdaeFByQjVVZUJzWFMrNFlJaGlrSlQzclF1MldYR3AwSTBIUjlY?=
 =?utf-8?B?Q2dzRm9oNkZWdm9ZZXVia2RzSmx0RmJJZmR3dnRMTDJBVHNPSDlDN2IvZElB?=
 =?utf-8?B?a09ZQUpxZUlYbzd0OFJ5cUpDOVVZVUhwVDBsQ0VNTWtpWG5aeTJjQmJxR3J2?=
 =?utf-8?B?TWZndUU0RHBGdmI1U0NvMmpQWHZEVWV5NXNxa3lqU2JEUCsvcnIrWjg2RmVj?=
 =?utf-8?B?aVpyaVhweXpsZ21NcEN5emdYOWU2OE9Vb3ljNm9PeUVST2w2WEF1aER4dGJB?=
 =?utf-8?B?MHZtRy9ZSE5tajZqSi9SRENjNklzTnhaQXJFcDNGOU5GaVFVRUZpdUxXK1JU?=
 =?utf-8?B?djdCeStFQWRneXRNT1cvb2NWL0h1SGhWRVg3VmsyZThsZjd1Q09PK0I3YThu?=
 =?utf-8?B?N29CMklxaUc4bDFGOFEzU0U0Z2t6WU54ckM5aUFzM3lEbGFUY1NibENJOFpN?=
 =?utf-8?B?by9NWDZXallkaHVQeVREdG9GZ1hPRldNT1JXVVE1WnNoWW5OUkZUbTQxek1O?=
 =?utf-8?B?c3lEVFB3REo5UVFveStsK3dTcVpkRlBONUt6N1RRRGlleVRrS0luTFM3bG1j?=
 =?utf-8?B?anFuOXdqbGx2c29jcHBQMDUxeVh0M0g3QzFGbFl4R01qYkdHN1VnM1lVZ1hm?=
 =?utf-8?B?NXZQa0RPaUZCNVVQWU1CTkdtcHFpYnJIWEN3QUphS1prbHNPOUpiTTcyekds?=
 =?utf-8?B?dy9pZ1l1eS9LVjVoaWQvMTdHM1hDbko5dGdaWUhST0M3alJTNHpBWGRHdVZo?=
 =?utf-8?B?c0NmaU1oc3dYbURISUhXaXVmRXhwTHIwZkFreHZaYkFiTTNlcFZwZCtaWjlD?=
 =?utf-8?B?VXJINGVIRjNKYXhsMTZRUDRSREVaVzJXNS9pK21GVUZKS1YwbVdvUm1raHY2?=
 =?utf-8?B?VGNDM1BmdkltZzhybVE2aktDQWxpWDJMbVB3anE1eDdXaytWWTZCTmdhN3l4?=
 =?utf-8?Q?Bp1F08mCTfKF1?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN9PR12MB5273.namprd12.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?N282bStIeUUxWDQzMHhhM1N0T1BMOHRUalBGK29Sa1cwSzlTUkpVbG04YXZu?=
 =?utf-8?B?U3UyOEZuMGRDRVMrVjdyZHVXNlY3ZTRBbFFtdG1TSEVESzZxdThnQWdUaWhL?=
 =?utf-8?B?dXh1MWtnQ0IvbXBGOWZxOGU0RTJ0ZHR6b3dQdlU5RS9aTXRXZVFJOFFiSGU1?=
 =?utf-8?B?aWZLN3ZOaWk5UmU2aEdPMVpzSW5GS1ZjSlZHb0JvRGM5VGx3R0x0RDhnTG9M?=
 =?utf-8?B?UkU2STBORm15cEN1YlpxdFlKT0RYM3NWQWFlVjByL3NCWTVVT1FBU0FkampY?=
 =?utf-8?B?TWgydWIwNkxDZjJVZEdXUFh5eFBFeDQ0OTlDS0diK3ZDQ3MxYjlRNG1ldDk0?=
 =?utf-8?B?VVp0NS9NcityUXFRSjV1OWhKc0lyeWJpdWVSNmlvT3hXNkFKOTlJd2h4RHhx?=
 =?utf-8?B?R3Q0RnpmUDNtWHZXYmk3bmFScnB1L3JqSkJrRjN4N3dLamhSbVN3SStOZVh5?=
 =?utf-8?B?NGR4MDU4TjhITXNuQXU5Nk1pZ2tDZkJBQzZjOWxhNVlKcHRTNUZNSkVjMFJQ?=
 =?utf-8?B?NU1kZWVVSThsbk1PbVdXNjBlVzJBbE4zWi9ibzNvT00wTHllMmt6bzBsckRq?=
 =?utf-8?B?eXE3eEwvWlNDN05XMVBzMFBkZkNub3UxYm5hd1lQYmcyU0doOGtyOWc4SkxD?=
 =?utf-8?B?MUhmTStldURwOExuV201R0N3bnk2dmx1ci9TR2Fadmtva1BsSWJnSkN0TnlE?=
 =?utf-8?B?a0NKd3A1Z0dqQ2xrendFVzdobmhvbWZqTTJkMWE3OEI4aFB0dlgzQXNuTngr?=
 =?utf-8?B?Zy9sUzdwM0VGS3N0eGFYZWM1M3pPUTdVMDJtK2oxTnBKZGtPVTFJcGdTM0RY?=
 =?utf-8?B?MUVVYU51cFd1VUpOc1B4ZFZvajNGVnh6ajBNOEFzTjdWakdmeG15U2RldzRC?=
 =?utf-8?B?S25yR05tbW8zK3RNc2w0Y3B3WFEzanlRU0xoRC9MRWIwaWdBK1VtemgvOVRn?=
 =?utf-8?B?c3doSHJyVHVabk9ESjA0ZGwxdTJ3YklFZE1aZDlPTTZ2UVBVNlhlN1F4ck5T?=
 =?utf-8?B?YUozWXBUVWk0Z3lRNWxJTlkraFo0djlqV1lMdkRlRVp5V09pVDBOOHg4cWdF?=
 =?utf-8?B?VFB4MmxHM1Jad1ZUZ3RjVlQwZUVhM1F6aWJGMzYzRVA3QW81NjQ3WlJnYjV4?=
 =?utf-8?B?N1p2Q1liczVqOE83SCt4dEdjcElBVklvRE1Ec1JubitWc1o5ZGsyVG9BTWhh?=
 =?utf-8?B?K0ppbmFaUWZHZUl0YnVWTE1SODFNQkFyaHJQT3l6eEM3L3lDSXNKVzkrbHFX?=
 =?utf-8?B?SXVoTHY0aUdHODBsam5zOHUzbjUra2JqZzlibUEweFVhS2lodkhZUEJ4dGFh?=
 =?utf-8?B?NGdwaTdNRGErSlNEdWJKcENwUlhuZ0R5SUdSZXczV1F4Qjh2UHd3ZzNpcVpr?=
 =?utf-8?B?a2pXeHFxZHpocVAxNWVPZ1dzaGlTKzR4cEU1Q1VDQzVNZjVFSkVOdllXbm9k?=
 =?utf-8?B?QUs5azRGSVZUNUs0a1pxMnd5N2xoRThQeTIrMW5Fekx6MktVUGdKQXJUUGhU?=
 =?utf-8?B?S2wvNkZTclJyUlQvZVloUEwvTDhvNUVXeG51K0tSTkFsMzFnZlVhYzRiakFQ?=
 =?utf-8?B?ZzhlVlYwMlRWNTBJRTcvVnJIaGxsZ08ybEpqcWpTTTUyMTRFZ1lnaVZRWkhk?=
 =?utf-8?B?WmEvOXZPbkRkQlNZNVdYWE9yNGk3YWRIOGR6bGpWbURrWXB4SVlTM2VGM0lM?=
 =?utf-8?B?elQ4UFRDUENqSDNXTzQ3elFwdkV1NFBZdk5TcWNaRytRM1BzajI4Zmw4Q0M2?=
 =?utf-8?B?K2dZSUY1ODdha1FmQnNVU3VRZk8yNjVVTEl1NVd1Mzhzd0VoUzZ6YktFb2xH?=
 =?utf-8?B?dXFSc0dZWVZmeTNPM0FaTG5NYVlKSmtuNm5vMmlYRXlUU1NrZW1sQTJLdEhH?=
 =?utf-8?B?MUFXZWRCbTM1ZC9FbkMwOFUvNDRWdkJPRUI0SFk4bWlKcG5hVkZLeEJjWG1V?=
 =?utf-8?B?eFpqUk5EZGt2TWNqR1lGVFVVazE5cEZuTVlRWkJ2SnhsQm9QUHRsOUdwaFhh?=
 =?utf-8?B?bHJ0b0JIb1Q3KzFmN1RvNk4yM0RwMi95d2k2SElvZVJTQUkvVGl4VFJrS2xW?=
 =?utf-8?B?ZzZzYTcxb2FmOXY2MTRFWWQrcGR3dWhhazl4Z2dvUWxHZG5QaG8xaUsrZTVu?=
 =?utf-8?Q?4pg5VOojI643yRF+6CREOmd/n?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: cc59317b-6f1f-4fe5-45f3-08dd713c2dfd
X-MS-Exchange-CrossTenant-AuthSource: BN9PR12MB5273.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Apr 2025 16:42:24.2147
 (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: EmS54A0FpRwjYWygZLasap8pw/G8SrABVwMzX6F4ADPkp1L2j65nD+oX6dsJ4HF7
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR12MB7954



On 01/04/2025 17:53, Bertrand Marquis wrote:
> 
> 
> Hi Michal,
> 
>> On 1 Apr 2025, at 17:21, Orzel, Michal <michal.orzel@amd.com> wrote:
>>
>>
>>
>> On 01/04/2025 16:49, Bertrand Marquis wrote:
>>>
>>>
>>> Hi,
>>>
>>>> On 1 Apr 2025, at 16:22, Orzel, Michal <Michal.Orzel@amd.com> wrote:
>>>>
>>>>
>>>>
>>>> On 01/04/2025 14:57, Bertrand Marquis wrote:
>>>>>
>>>>>
>>>>> Hi Michal,
>>>>>
>>>>>> On 1 Apr 2025, at 11:09, Michal Orzel <michal.orzel@amd.com> wrote:
>>>>>>
>>>>>> There's no benefit in having process_shm_chosen() next to process_shm().
>>>>>> The former is just a helper to pass "/chosen" node to the latter for
>>>>>> hwdom case. Drop process_shm_chosen() and instead use process_shm()
>>>>>> passing NULL as node parameter, which will result in searching for and
>>>>>> using /chosen to find shm node (the DT full path search is done in
>>>>>> process_shm() to avoid expensive lookup if !CONFIG_STATIC_SHM). This
>>>>>> will simplify future handling of hw/control domain separation.
>>>>>>
>>>>>> Signed-off-by: Michal Orzel <michal.orzel@amd.com>
>>>>>> ---
>>>>>> xen/arch/arm/domain_build.c             |  2 +-
>>>>>> xen/arch/arm/include/asm/static-shmem.h | 14 --------------
>>>>>> xen/arch/arm/static-shmem.c             |  4 ++++
>>>>>> 3 files changed, 5 insertions(+), 15 deletions(-)
>>>>>>
>>>>>> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
>>>>>> index 2b5b4331834f..7f9e17e1de4d 100644
>>>>>> --- a/xen/arch/arm/domain_build.c
>>>>>> +++ b/xen/arch/arm/domain_build.c
>>>>>> @@ -2325,7 +2325,7 @@ int __init construct_hwdom(struct kernel_info *kinfo)
>>>>>>   else
>>>>>>       allocate_memory(d, kinfo);
>>>>>>
>>>>>> -    rc = process_shm_chosen(d, kinfo);
>>>>>> +    rc = process_shm(d, kinfo, NULL);
>>>>>>   if ( rc < 0 )
>>>>>>       return rc;
>>>>>>
>>>>>> diff --git a/xen/arch/arm/include/asm/static-shmem.h b/xen/arch/arm/include/asm/static-shmem.h
>>>>>> index fd0867c4f26b..94eaa9d500f9 100644
>>>>>> --- a/xen/arch/arm/include/asm/static-shmem.h
>>>>>> +++ b/xen/arch/arm/include/asm/static-shmem.h
>>>>>> @@ -18,14 +18,6 @@ int make_resv_memory_node(const struct kernel_info *kinfo, int addrcells,
>>>>>> int process_shm(struct domain *d, struct kernel_info *kinfo,
>>>>>>               const struct dt_device_node *node);
>>>>>>
>>>>>> -static inline int process_shm_chosen(struct domain *d,
>>>>>> -                                     struct kernel_info *kinfo)
>>>>>> -{
>>>>>> -    const struct dt_device_node *node = dt_find_node_by_path("/chosen");
>>>>>> -
>>>>>> -    return process_shm(d, kinfo, node);
>>>>>> -}
>>>>>> -
>>>>>> int process_shm_node(const void *fdt, int node, uint32_t address_cells,
>>>>>>                    uint32_t size_cells);
>>>>>>
>>>>>> @@ -74,12 +66,6 @@ static inline int process_shm(struct domain *d, struct kernel_info *kinfo,
>>>>>>   return 0;
>>>>>> }
>>>>>>
>>>>>> -static inline int process_shm_chosen(struct domain *d,
>>>>>> -                                     struct kernel_info *kinfo)
>>>>>> -{
>>>>>> -    return 0;
>>>>>> -}
>>>>>> -
>>>>>> static inline void init_sharedmem_pages(void) {};
>>>>>>
>>>>>> static inline int remove_shm_from_rangeset(const struct kernel_info *kinfo,
>>>>>> diff --git a/xen/arch/arm/static-shmem.c b/xen/arch/arm/static-shmem.c
>>>>>> index c74fa13d4847..cda90105923d 100644
>>>>>> --- a/xen/arch/arm/static-shmem.c
>>>>>> +++ b/xen/arch/arm/static-shmem.c
>>>>>> @@ -297,6 +297,10 @@ int __init process_shm(struct domain *d, struct kernel_info *kinfo,
>>>>>> {
>>>>>>   struct dt_device_node *shm_node;
>>>>>>
>>>>>> +    /* Hwdom case - shm node under /chosen */
>>>>>> +    if ( !node )
>>>>>> +        node = dt_find_node_by_path("/chosen");
>>>>>> +
>>>>>
>>>>> I would have 2 questions here:
>>>>> - what if a NULL pointer is passed, wouldn't you wrongly look in the main device tree ?
>>>> Do you mean from hwdom or domU path? In the former it is expected. In the latter
>>>> it would be a bug given that there are several dozens of things that operate on
>>>> this node being a /chosen/domU@X node before we pass node to process_shm().
>>>>
>>>>> - isn't there a NULL case to be handled if dt_find_node_by_path does not find a result ?
>>>> It wasn't validated before this change. It would be catched in early boot code
>>>> so no worries.
>>>
>>> Then an ASSERT on NULL would be good.
>> See below.
>>
>>>
>>>>
>>>>>
>>>>> Couldn't the condition also check for the domain to be the hwdom ?
>>>> I could although we have so many /chosen and hwdom asserts in the tree in the
>>>> dom0 creation that I find it not necessary.
>>>
>>> There are never to many asserts but ok :-)
>>>
>>> With an ASSERT added for the NULL case you can add my R-b.
>> :(
>> So you still want to put ASSERT for a case where host DT does not have /chosen
>> node. I'd like to talk you to drop this idea. Normally I'm in favor of using
>> ASSERTs but not for so obvious violations like missing /chosen.
> 
> I am not quite sure why you do not want an assert here.
> Reading the code the first that comes to mind is "what if this is still NULL after"
> which would be clearly something no expected if someone sees an assert.
> 
> Seeing the place where it is, that would not impact performance in any way.
> So why not adding it ?
> 
>>
>> /chosen node is so crucial for Xen on Arm functioning that a lot of things would
>> simply fail a lot  earlier than a point where we call process_shm() at the end
>> (almost) of hwdom creation. There would be no modules, so the first example that
>> comes to my head is panic due to no kernel which happens way before process_shm().
>>
> 
> Sure you might be right, what if something bypass this due to efi boot or acpi boot and the
> code comes down here ?
> 
> Even it might be true now, this would make sure that no change in the code is changing this.
> 
> Anyway i will not argue on that for to long as it is kind of a matter of taste.
> 
> So feel free to put my acked-by without the assert.
You gave me a reason to scan the code and I realized that in ACPI case, if
STATIC_SHM is enabled, it triggers a bug in process_shm_chosen. So, you were
right and we found a latent bug that is not related to this series. But maybe it
would want to be handled as separate fix before the process_shm_chosen drop?

~Michal



From xen-devel-bounces@lists.xenproject.org Tue Apr 01 17:19:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 17:19:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.934706.1336329 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzfGt-0004E8-4v; Tue, 01 Apr 2025 17:19:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 934706.1336329; Tue, 01 Apr 2025 17:19: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 1tzfGt-0004E1-1r; Tue, 01 Apr 2025 17:19:31 +0000
Received: by outflank-mailman (input) for mailman id 934706;
 Tue, 01 Apr 2025 17:19: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=6xap=WT=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1tzfGq-0004Dt-Tw
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 17:19:29 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on20603.outbound.protection.outlook.com
 [2a01:111:f403:2415::603])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 731186aa-0f1d-11f0-9ffb-bf95429c2676;
 Tue, 01 Apr 2025 19:19:22 +0200 (CEST)
Received: from PH8PR12MB7326.namprd12.prod.outlook.com (2603:10b6:510:216::7)
 by DS0PR12MB9060.namprd12.prod.outlook.com (2603:10b6:8:c4::12) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.44; Tue, 1 Apr
 2025 17:19:18 +0000
Received: from PH8PR12MB7326.namprd12.prod.outlook.com
 ([fe80::6d76:9c33:d230:8264]) by PH8PR12MB7326.namprd12.prod.outlook.com
 ([fe80::6d76:9c33:d230:8264%5]) with mapi id 15.20.8534.045; Tue, 1 Apr 2025
 17:19: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: 731186aa-0f1d-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=TpU9B3SB+r7f8b1UZSWu5k/+Gl9oHFfTlh9IosJBASZuF0+QBIB500yXoNYCaV8teASof5wSgd8+pEXJroyO1OxQY2umZniO2PWj5lr/mnswUFOMr0Gbsx+gZ8/wOVQK6DIh1x/h/vA2AARazw23BFTjaoJQzATgndkpXNmlBnjLmguV6hjehrc6l3nJG4WaQ64/TaNM4boIO861jRIJ1SAXIR5Jj+smNv8ev20b9r+YYBVzMC/xOqOtqouhJbY+V/B+bdxIfmf3mh+wLa/MtBJ8rf4XMgftnSYOu2xcpVa5zKh8ovWhFq73eTgURA6xCWJTW2xEO/v5YWuH8cLvRw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=efYGWTBTqgGmxeILytMzJC944Xt54sDddXNZF1UtR3w=;
 b=MuhwJQiFHLJ5iazpHeuC6sz6QebMc6PrTVC0DGo6pDUPK1JZbiU40ML8EXpftYSSUFBLtRpo1LDzCDRsOXyBMqDx//VHriJfcy97SR76VhB3e8fx2TC9tkDf906ltsFeyJ/gQQHsWm3wO3VMR6sO2eXEfCBX0bt5GfI6TjZADtAe0OQuyv1qTsx+WelLeZvhRS0w6e036rNC3FeLqXPepunjGhEauDnFyLAXKpa7AYvsooytyFDUg+jcUYBoh0TsqDUuxGCqlZTMyc363k3MLpuYhA77uiKFmt0xwnw8iTQo1eT6mD4oFKIMfm9lJL3xl2vGtSSgbQi5C4QaoJYneQ==
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=efYGWTBTqgGmxeILytMzJC944Xt54sDddXNZF1UtR3w=;
 b=Ge+Ei+gLt0dNh/6buG4l/ERqDN9eM1EDEIo5pSfDB3h4mKuOTgXiuiZSshji3lwBVSj0bq7wKgq/p2wOMLMS9rKEXVXNnzLWGb5hwHhAtVxGPtkdUF540mGHyAiQEdCGkVs1ZPvVuvgvDi5v955lOWcGR95e5eWnMnqw+R4bHk4=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Content-Type: multipart/mixed; boundary="------------5s9NWzQQ01ZSmqQutE9KEvk2"
Message-ID: <53dcce22-b545-4d17-963f-dfa348472717@amd.com>
Date: Tue, 1 Apr 2025 18:19:12 +0100
User-Agent: Mozilla Thunderbird
Content-Language: en-GB
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 "users@lists.zephyrproject.org" <users@lists.zephyrproject.org>
Cc: "francesco.rossi@resiltech.com" <francesco.rossi@resiltech.com>,
 SHein@baumer.com
From: Ayan Kumar Halder <ayankuma@amd.com>
Subject: Tool for documenting coverage gap
X-ClientProxiedBy: WA0P291CA0013.POLP291.PROD.OUTLOOK.COM (2603:10a6:1d0:1::8)
 To PH8PR12MB7326.namprd12.prod.outlook.com (2603:10b6:510:216::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: PH8PR12MB7326:EE_|DS0PR12MB9060:EE_
X-MS-Office365-Filtering-Correlation-Id: b775d267-ee28-4070-ee0c-08dd71415549
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|366016|4053099003;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?eVRzaVl3cC9ibGVvYUZmSTJRWGh4dHY0cFRPTVNKTEx5L0RPeXlROSsxWFRC?=
 =?utf-8?B?ckpCQnpIRjFYa1VoaWhyNTdCQXNwKzY2M25KSlZRRENabENOcGkxZHR2WVRF?=
 =?utf-8?B?SVN1eXg4Y3FGRHFrcGVsODd5L1FIZ3h0VVZocHd6eEFqTE5VQUhnSlNQalpH?=
 =?utf-8?B?UlZrcGl5akV4SUtDTHRuQVh0d3ZsejFFT2pZTWliR1pkQmFYdFhBcnZUVGt3?=
 =?utf-8?B?UmZGaUV6VndoR3p3VXl5KzAzNUtuSHFRUjZuQVhMSTNGN3M2V2xqYmJlNlM0?=
 =?utf-8?B?VElSYVd4Rm96T0RJdGttcUlCOW10Uk9OYkZhZkFPYlF2SEQ0ZldjUmIrUlBM?=
 =?utf-8?B?QVRvaW1oN3ZzejNKMmR6bGZNOVI4WHJnWWRTUFl1UWZlbWJUYU9WbG5EMkhK?=
 =?utf-8?B?SkRuSnFSOTduNi80V25yUFNESkI1bFg2VHJ3RURxMGJubkFyY0ZGamFLNG5U?=
 =?utf-8?B?MFFMSWNnTlhQTm9UMEE2UlRlQXQ0OHl1OHNBaWoxWFFyM1RKWGovZlFHaDdn?=
 =?utf-8?B?NWdhSjZpajFQQy9qZGUycUFMMEtqV0FFb0tEd3VJT01sU0V3dGlCKy9IeS81?=
 =?utf-8?B?VnRlbWtJaGtVU1gyZDNTcGVEOTF5OW83R0d6Yzd5cTNqR1p2RHhLRnNHbG9z?=
 =?utf-8?B?MXBhRDkxY1J2ekpLT1E2dVJtU3VwV0t0b2UxaFp4U0pMYnhXRFpXT2NJeTRC?=
 =?utf-8?B?VzNLTmhMQWc4amp0V281Z1Q0c1A4ZEdXYk9yTDUrYm5KTGwrY2hKSyszMGZk?=
 =?utf-8?B?RHpTd3NQWHZnM3ptb2gyL1hQYk9zaEJEQ0tHWXdobVh3aWYxM3FCOHh4ajZW?=
 =?utf-8?B?U0ppMnVITFZGaVltVUt0bjJBaThMM3lzYmMxcUc4QURQWW53NzFuWGVzN1FO?=
 =?utf-8?B?MUsyUGZBaHV1U3VqeHJHT09sMU1FVmNhanJXUVFaWnJaTVNOVWZ5ZWxOcVcz?=
 =?utf-8?B?SURMME5BcU9INXBQZWFHK1ZkUHRrUTdvRzVRZlNnUlgvaWQ0WUdZM1FqTFVY?=
 =?utf-8?B?cDlXN1hzUm55WWR5c2FiU2hSQnJGZnJoUE5EYmN3YTE1d2NHL1FQZTl6RFF2?=
 =?utf-8?B?VTVRdGRvQmc4bThFVm5xSE55dkRWK3ZVN2d1S3d4REZ4MlBQZzFXT0dZS01Y?=
 =?utf-8?B?NXA4blNTK2liV2FpUzFvNnV5cUVNNy9CcjFHSVhEbDNCN241RWx3WkdyZ2pS?=
 =?utf-8?B?cER2MWtka3RVYVdEN0JSRXY5SlZlOGJ2MnJhM2F0S3h5eXFHVWQyYmMyc2tX?=
 =?utf-8?B?b0U2WSsyeTMrYXN0bUx3UE8rYXljcjJGZi9hdjQyemp6aERGNUlMbmJ2Zktl?=
 =?utf-8?B?K2NqcmNIQXNqZXJIaG1zTUVOQmJ2NFdBK1N2a3VRNkoxRlExVkhxNzRSTjFO?=
 =?utf-8?B?SnhITFczeGFxZWJIR0xqTitVN0krb2dWc2RtWDVIMStLQXg5Ykd5ekM2azlG?=
 =?utf-8?B?Z0RpaURsVjViV2g2UjJTUFJKY2FoaUdqK1pOYU1DUjFQSXByRHFoVjZvQlFt?=
 =?utf-8?B?S0Y3dmNGR0U4SHBMTXBLaDVqZWhFWlZmZUVjR1FxRVBVYVdvTDdINkNyWlp6?=
 =?utf-8?B?bTBaVVlieGlWOVJZYlBZejl2L0dxR1Q4ME5EcC9ZazBsSWxaaFp5bW1ZQkJ6?=
 =?utf-8?B?ZFJFMWZSNFZlQkk4VUE1cHRxM25SSG1YYlBsdS8xemNnekN1Yll3UDhwR1M3?=
 =?utf-8?B?NGMvKzZlS0FhVlFUWGdYQTdxNWlJUVhHZDhGRzJ2aDU4SWErTWpCOEdwR1B1?=
 =?utf-8?B?QVc4cllWODlYV1RsZ2I5VXVhMTRnb3RiL3JzVkxIT0NUSWhMQmJYM3J5U2NV?=
 =?utf-8?B?aHZ1d0hJN0pPWnp6NU10ODdnbVBsbkVWeEs3WWQ2OWsvVmNwTHNwTVBBbmVp?=
 =?utf-8?Q?Yv/lxsZ7PrqMT?=
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)(4053099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?bjd4UmZWUkJ0bkt0enFvSWdwd2xHNXN1L1dmOVVGdkR1dXpWcWN5RTh2c2VW?=
 =?utf-8?B?bXF2WVM4QUV0Q2JNVDcxaW85dWJMeXNSWUZCTVBsOFgwdytLSDgrR2F1cFFv?=
 =?utf-8?B?bTE1SDN0Wktid1pOR1BuVDhoV0pZaVMrUE5YK2tBeFpodmdFTW5PNHI0YUg4?=
 =?utf-8?B?YkFzSW40Z0IzVUhwK1o5WUl1NEg5UmVGemxWaVlNVlRtaGlUVitJUjBGdFZ0?=
 =?utf-8?B?VXE3aG5LM2FMaDNnU1pCdW8vcTk4T2FPc1pqaWg4NDRySldoQm5IYW8yYk1G?=
 =?utf-8?B?ZEdSYnlQSVYvd0djQ1A2eGwzaFpoamVOZzJhem1ZalpHY2tsYzJLem9SWUpC?=
 =?utf-8?B?ZXVnL3RkaERMVkxMZnBZUGlLSjZCQjRQNjdOSG4rMEJwZmhyaGFVWnkzU1Bl?=
 =?utf-8?B?WmZiNldrMzd2MTZrRVMvaHJ6d2IxU0dLaUFhZlNmQ3ZSSndzN3NqV1hiaDZo?=
 =?utf-8?B?MTNRRC9ZMzZNVGdHeDRjKzArZkwxL0Eyb0tvTXhXYlpVeWE2aHB6eVVBYmJo?=
 =?utf-8?B?Z3JKQXp6L3RNYjI1SWJ3Vk14c0xrN21GK2NOV3FKRjF0YkZiQ205YS9UQU5X?=
 =?utf-8?B?aFpkSk1IZTU3eWVqVE9iWkpzUTZjcmQzWHBVM1hwVjJ6czFTcUh1N2tmV2pX?=
 =?utf-8?B?TTFVVzJCbHJremplSENLQUcrRUp2dWVla3JKdWdRdllRUUFYTHhaQ2lWMm1v?=
 =?utf-8?B?WlJSV1RDUjZjbVA1ck1oR2VCcHF4OU0rZlNRVVVycFc3R2dxeVlTckFoZzlF?=
 =?utf-8?B?TmxRU3I3RG9DRTFwUktBdlZoWThGRlNDTUEyRkdZRkk2MENlWXRJc1JXYjBq?=
 =?utf-8?B?b1NsSGJSbC8yNEhGWFB4TzYxOXdxVUQ1ZnVkNzBpYVpzOGpTVWloOFVJQWt1?=
 =?utf-8?B?cHhYVVowUVFCQkdmbXNqTDZHdTc0bFdXV3F4UGNpaVlETCtLVW9rbnZQMk1n?=
 =?utf-8?B?UElFQTN6SEs3UWt3QmVIeTdPZ3RUQTNsNkJ6K2ZsTGFoTFd6c2RWczUrRGQx?=
 =?utf-8?B?Y2VFSUQrSnBpWWZ4dFArNC94Tk45YlJEWk9xVHo2a0dsNURGaGtEQmdqQjk3?=
 =?utf-8?B?Q1l5c2VvQkV6OU5kdW5YY0djTG5hdE5SbEdmN2c0MHJzeFlBVjVyVnJzWExk?=
 =?utf-8?B?VVVyNzgwK1VjVlE3bnlENW9sdEFQME9IRUFWVlNQVnhwNmNrR2J1dFd5Wmpz?=
 =?utf-8?B?TU1OU1JGelhCSWdtdFByZmxsQ1ltNzhRTEVTSENXNjZSSTJJakJlRzNZT2Vo?=
 =?utf-8?B?ejZQUjF1RVpDcGJNMWZQYzhYZCtQa0gvaVVYZ3JnSXhzaUx3WHhJUWIyczNB?=
 =?utf-8?B?UUh6dk5selczMmF2OEVRNmprS0tLZldFM2NpUytubmRyRTJHUHloNDEySTBR?=
 =?utf-8?B?NlRQV3diMmVqZGpUVkc3alUvY0RzTnRvYVR0UnhLRWZuTFpNWHpvdUVmVm5T?=
 =?utf-8?B?dHQ3NDVFZkdvUFU5R0NVZGdCWjZJVmNjeEJoZXBpcWJaSWRMaUs4eXRCbkYv?=
 =?utf-8?B?OGlXY25iYVVmbndwWm5rdmFDbDhvcTlBUW1ZK3VxY3NMMm8wakF0YzBKU3BL?=
 =?utf-8?B?N1RCZ1VvVDFNN0V5ZVdhRUJKOFFuVXFZUk4xTlVUaVlEc2hMLzd3Z0JzQVNH?=
 =?utf-8?B?Z0xsK1hjTHg4cm1pS0ZlbkRqTmgraTI2L1dweWxNREwzREVrWVBkcXVjNmhh?=
 =?utf-8?B?WnZIY2NUQVBQUWRDQTI0YVoraXhDNjJiZ0V0ekdTSzdWZ2VnbWJQMjVNd1lQ?=
 =?utf-8?B?ZXBFOFJWYlZGVHBuRE1BRWdMUnBLWDVYU3Z5S01XSFNKbXl4KzU3aEE2V3Z1?=
 =?utf-8?B?ZUFScXRmOHRaOEhySE1LK0t4emZ6Rm9SaUNsQmRDVVdMT1JzRXJqZWhhNU83?=
 =?utf-8?B?N0VTYU9lSzZoTjFpWVY3N0FGZWp1ZmxERHh4VnB6eE9DcWZLUmltZFlJbzY1?=
 =?utf-8?B?QzMvOEdQd1E4bXZUSVBHQUw2dHFOYWNXaDN0SGJQRSt6bUl2eHRwM0tDajV2?=
 =?utf-8?B?UlRpMXMzcmVIV0lyL1Y4UnRBcHBtaHVwRlJ4OWk1QVZudFU2a29DZEdUOE9w?=
 =?utf-8?B?M2MwYjVrVThFZW5xTFBnb1BQNzFvMzZHRmIzaTFteGRaenRhaGxzVldMOWV2?=
 =?utf-8?Q?AD349Tu887yU53gJHx6QPVuSN?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b775d267-ee28-4070-ee0c-08dd71415549
X-MS-Exchange-CrossTenant-AuthSource: PH8PR12MB7326.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Apr 2025 17:19:18.0785
 (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: /4x9Z6xQwrqTpaUl1XU0huWq8Dtx6mk2AEFQMQSrqto7FbwlnD/EiD3FPZXCLNQDsk0A/vVlBT3VSPK+dTfQMw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB9060

--------------5s9NWzQQ01ZSmqQutE9KEvk2
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi,

One of the aspects of safety certifying a software is that we need to 
produce a coverage report (statement, branch, function and MCDC) and 
document the coverage gap (justifying why there is a gap).

Is there a tool which could ingest the coverage output generated by 
Gcov, parse it to find instances of coverage gap and enable the 
developer to document the reasons for the various coverage gaps ?

The attached screenshot shows a snippet of the coverage report generated 
in HITML.

If I  were to justify the gaps, I would need to manually document the 
functions ( call_psci_cpu_off(), call_psci_system_off()) in a separate 
document and explain why there is a gap. I am wondering if there is a 
tool which will generate a single report for coverage and justification, 
so that the end user sees full coverage.

Kind regards,

Ayan

--------------5s9NWzQQ01ZSmqQutE9KEvk2
Content-Type: image/png; name="Screenshot 2025-04-01 at 18.03.07.png"
Content-Disposition: attachment; filename="Screenshot 2025-04-01 at
 18.03.07.png"
Content-Transfer-Encoding: base64

iVBORw0KGgoAAAANSUhEUgAAAuQAAAKqCAYAAABy9kt5AAAKrmlDQ1BJQ0MgUHJvZmlsZQAASImV
lwdUk8kWx+f70kMCgUDoEGoo0gUCSAk9dOkgKiEJEEoIgaAiKiqLK7gWVERAWdEVEQXXAogNEcW2
KNjrgiwC6rpYEAWU9wGH4O47773zbs5kfvnnzp0793yTcwMAmc4RidJgCgDpwmxxqI87PTomlo4b
AhCAAQHIAUUON0vECgkJAIjNzn+3T/cRb8TumE3F+vfv/6vJ8/hZXACgEIQTeFncdIRPImOMKxJn
A4A6huh6y7JFU3wXYUUxkiDCg1OcNMMTU5wwzWjKtE94qAfC+gDgSRyOOAkAkiWi03O4SUgc0tRe
lkKeQIhwPsIu6ekZPIRbETZCfEQIT8VnJnwXJ+lvMROkMTmcJCnPnGXa8J6CLFEaZ8X/WY7/belp
ktk9GMggJYt9Q5GZhtTsj9QMfykLE4KCZ1nAm/af5mSJb8Qsc7M8Ymc5Ky2MPcs8jqe/NE5aUMAs
Jwq8pT6CbHb4LPOzvMJmWZwRKt03UezBmmWOeC4HSWqEVE/ms6Xxc5PDo2Y5RxAZJM0tNcx/zsdD
qoslodKz8IU+7nP7ekvrkJ713dkFbOna7ORwX2kdOHP584WsuZhZ0dLceHxPrzmfCKm/KNtdupco
LUTqz0/zkepZOWHStdnIwzm3NkRawxSOX8gsA18QAuggEFgjr0SEvBHFE4Bs/vLsqcN4ZIhWiAVJ
ydl0FnLj+HS2kGs+j25taW0LwNT9nXk8PjycvpcQDT+ncZE8rBMQuDWnpRQBcEYJAApzTjPGAaCA
6G0GXIk4Z0ZDT71hAHHqVwGoAi2gB4yAGZKhHXACbsAL+IFgEA5iwBLABckgHYjBMpAH1oJCUAy2
gp2gHFSB/eAQOAqOgyZwFlwEV8ANcBvcA09AD+gHr8Ew+ATGIQjCQWSICqlC2pABZApZQ0zIBfKC
AqBQKAaKh5IgISSB8qD1UDFUApVD+6Ba6FfoNHQRugZ1QY+gXmgIeg+NwSiYBCvCmrAhbAEzYRbs
D4fDi+EkOBPOhQvgzXAZXA0fgRvhi/AN+B7cA7+GR1AAJYOioXRQZigmygMVjIpFJaLEqNWoIlQp
qhpVj2pBdaDuoHpQb1Bf0Fg0FU1Hm6Gd0L7oCDQXnYlejd6ELkcfQjei29F30L3oYfQ3DBmjgTHF
OGLYmGhMEmYZphBTijmIOYW5jLmH6cd8wmKxNCwDa4/1xcZgU7ArsZuwe7AN2FZsF7YPO4LD4VRx
pjhnXDCOg8vGFeJ2447gLuC6cf24z3gZvDbeGu+Nj8UL8evwpfjD+PP4bvwAfpxAIRgQHAnBBB5h
BWEL4QChhXCL0E8YJ8oTGURnYjgxhbiWWEasJ14mPiV+kJGR0ZVxkFkoI5DJlymTOSZzVaZX5gtJ
gWRC8iDFkSSkzaQaUivpEekDmUw2JLuRY8nZ5M3kWvIl8nPyZ1mqrLksW5Ynu0a2QrZRtlv2rRxB
zkCOJbdELleuVO6E3C25NxQCxZDiQeFQVlMqKKcpDygj8lR5K/lg+XT5TfKH5a/JDyrgFAwVvBR4
CgUK+xUuKfRRUVQ9qgeVS11PPUC9TO1XxCoyFNmKKYrFikcVOxWHlRSU5itFKi1XqlA6p9RDQ9EM
aWxaGm0L7TjtPm1MWVOZpcxX3qhcr9ytPKqiruKmwlcpUmlQuacypkpX9VJNVd2m2qT6TA2tZqK2
UG2Z2l61y2pv1BXVndS56kXqx9Ufa8AaJhqhGis19mvc1BjR1NL00RRp7ta8pPlGi6blppWitUPr
vNaQNlXbRVugvUP7gvYruhKdRU+jl9Hb6cM6Gjq+OhKdfTqdOuO6DN0I3XW6DbrP9Ih6TL1EvR16
bXrD+tr6gfp5+nX6jw0IBkyDZINdBh0Go4YMwyjDDYZNhoMMFQabkcuoYzw1Ihu5GmUaVRvdNcYa
M41TjfcY3zaBTWxNkk0qTG6ZwqZ2pgLTPaZd8zDzHOYJ51XPe2BGMmOZ5ZjVmfWa08wDzNeZN5m/
tdC3iLXYZtFh8c3S1jLN8oDlEysFKz+rdVYtVu+tTay51hXWd23INt42a2yabd7NN53Pn793/kNb
qm2g7QbbNtuvdvZ2Yrt6uyF7fft4+0r7B0xFZghzE/OqA8bB3WGNw1mHL452jtmOxx3/cjJzSnU6
7DS4gLGAv+DAgj5nXWeO8z7nHhe6S7zLzy49rjquHNdq1xduem48t4NuAyxjVgrrCOutu6W72P2U
+6iHo8cqj1ZPlKePZ5Fnp5eCV4RXuddzb13vJO8672EfW5+VPq2+GF9/322+D9iabC67lj3sZ++3
yq/dn+Qf5l/u/yLAJEAc0BIIB/oFbg98GmQQJAxqCgbB7ODtwc9CGCGZIWcWYheGLKxY+DLUKjQv
tCOMGrY07HDYp3D38C3hTyKMIiQRbZFykXGRtZGjUZ5RJVE90RbRq6JvxKjFCGKaY3GxkbEHY0cW
eS3auag/zjauMO7+Ysbi5YuvLVFbkrbk3FK5pZylJ+Ix8VHxh+MnOMGcas5IAjuhMmGY68HdxX3N
c+Pt4A3xnfkl/IFE58SSxMEk56TtSUPJrsmlyW8EHoJywbsU35SqlNHU4NSa1Mm0qLSGdHx6fPpp
oYIwVdieoZWxPKNLZCoqFPVkOmbuzBwW+4sPZkFZi7OasxWRRummxEjyg6Q3xyWnIufzsshlJ5bL
Lxcuv7nCZMXGFQO53rm/rESv5K5sy9PJW5vXu4q1at9qaHXC6rY1emsK1vTn++QfWktcm7r2t3WW
60rWfVwftb6lQLMgv6DvB58f6gplC8WFDzY4baj6Ef2j4MfOjTYbd2/8VsQrul5sWVxaPLGJu+n6
T1Y/lf00uTlxc+cWuy17t2K3Crfe3+a67VCJfEluSd/2wO2NO+g7inZ83Ll057XS+aVVu4i7JLt6
ygLKmnfr7966e6I8ufxehXtFQ6VG5cbK0T28Pd173fbWV2lWFVeN/Sz4+eE+n32N1YbVpfux+3P2
vzwQeaDjF+YvtQfVDhYf/FojrOk5FHqovda+tvawxuEtdXCdpG7oSNyR20c9jzbXm9Xva6A1FB8D
xyTHXv0a/+v94/7H204wT9SfNDhZeYp6qqgRalzRONyU3NTTHNPcddrvdFuLU8upM+Znas7qnK04
p3Ruy3ni+YLzkxdyL4y0ilrfXEy62Ne2tO3JpehLd9sXtnde9r989Yr3lUsdrI4LV52vnr3meO30
deb1pht2Nxpv2t489Zvtb6c67Tobb9nfar7tcLula0HX+W7X7ot3PO9cucu+e+Ne0L2u+xH3Hz6I
e9DzkPdw8FHao3ePcx6PP8l/inla9IzyrPS5xvPq341/b+ix6znX69l780XYiyd93L7Xf2T9MdFf
8JL8snRAe6B20Hrw7JD30O1Xi171vxa9Hn9T+Kf8n5Vvjd6e/Mvtr5vD0cP978TvJt9v+qD6oebj
/I9tIyEjzz+lfxofLfqs+vnQF+aXjrGosYHxZRO4ibKvxl9bvvl/ezqZPjkp4og5060AChlwYiIA
72sAIMcAQL0NAHHRTH89bdDMf4JpAv+JZ3rwabMDoKYVgEgEw9wAqESYkY/0JMgcgnwOdwOwjY10
zPbC0337lOnKAmCPRjoH6Hn3FfBPm+npv8v7nzOQRv3b/C+c7QdzXYhlYAAAAFZlWElmTU0AKgAA
AAgAAYdpAAQAAAABAAAAGgAAAAAAA5KGAAcAAAASAAAARKACAAQAAAABAAAC5KADAAQAAAABAAAC
qgAAAABBU0NJSQAAAFNjcmVlbnNob3RUw7t3AAAB1mlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAA
PHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNi4w
LjAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjIt
cmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAg
ICAgICAgICB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyI+CiAgICAg
ICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj42ODI8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAg
ICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NzQwPC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAg
ICAgICAgPGV4aWY6VXNlckNvbW1lbnQ+U2NyZWVuc2hvdDwvZXhpZjpVc2VyQ29tbWVudD4KICAg
ICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CsllAwwAAEAA
SURBVHgB7J0FnBXVF8cP3UstS6d0s3R3ijRKSioijZRIiTRICQgWYRACIpKSIpIiLd3dLc3739+F
ef/33r6Yt7x9uwu/w2eZmdvznXkz55577p0oFiVCIQESIAESIAESIAESIAESCBcCUcOlVlZKAiTw
2hG4fv26HDp06LU574cPH8quXbtem/PliZIACZAACYSeQBRayEMPLzLnXL9+vdy8eVPq1KkTaU5j
9OjRcuvWLd3e5s2bS7Zs2axtP3PmjEybNk0fR48eXQYNGmSNi0g7kZG7r/i9/fbbkjBhQvn6669D
FHn+/Hn5+eef5YMPPpBYsWKFiI+MAf/995+kSZNGZs6cKW+99VZkPAW2mQRIgARIwE8EaCH3E+iI
Vs38+fNl0qRJXjcLHk5NmzaVHTt2eJ33ZTNcunRJoHgPHTo0hKX1yZMncvbsWfnzzz9l+PDhL1tV
mOUPLfcwa5CfCj548KAsWLBAunTp4rTGI0eOSNeuXeXevXtO490Fjhs3Tr788kt3ScIlLm7cuPLe
e+/p+zVcGsBKSYAESIAEIg0BWsgjzaXybUPPnTsnDx48kDfeeMOrgp8+fSqwQP/6669Sq1Ytr/L6
IrGn+ufMmSMtWrQQuAtERAkt94h4Lt60qVWrVrrDtGrVKqfZoIhDKc+bN69EjeqdnaB+/foC5ff7
7793WnZ4BqIDmTFjRvn999+lQoUK4dkU1k0CJEACJBCBCXj35ovAJ/I6NW3ZsmWSO3duadasmden
DStlgQIFpGbNmjJmzBi7/MeOHZNcuXLJsGHDJGvWrJIhQwaBm4ghZcqUkTx58ujDjh076rQFCxY0
ok1tFy5cKIUKFZL48eNLypQp5ZNPPtH5Hj16JHXr1tVhUK7QDmeuDaYqCUWiqlWrSrt27TRXuFWg
LVevXrWWBP9nWDszZcok8eLF0wxh9TXk/v370rdvX8mcObPEiRNHtx9KmCHuuBtp3G2PHj2q3YuS
J08uAQEBUrlyZUGbIJ7ajnP55ptvrMVjBKFt27bWY087K1eu1OeLa5Y9e3b57rvvrFkmT56s2wVX
k2TJkknZsmUFbjmOsnr1aqcK6Z07d3TZpUqVEijtd+/etcuKTl+fPn2kdOnSkjhxYmndurVgpASC
+xT3CZR8dBCxjz+MkpgVd1zHjh0rNWrUkNq1a2vm+fLlkw0bNliLNsM1bdq0kiVLFsH5U0iABEiA
BEjAFQEq5K7IROBw+H7v379foEB7K7DSwacV/tewSNoKLOb//vuv9uWFogXlp1evXnLhwgWdbPr0
6QKXC0jv3r0FyjUs0mYFSgmsmVBs1qxZo/NHiRLFmh2Ky6JFi2T37t0CH/H3339f/vjjD2t8WO6A
xaxZs+TDDz+UGTNmaJcc284I3GRWrFgh8+bN04y6d+8u0aJFszYJ7hZTp07Vbd65c6cMGDDATqF3
x91aiIsdKKnID+s63Iy2bdsmxYsX1yMcyOKp7ZhIaSixSI9yzN47cAPCPANYeXH+6Ai0adNGNm7c
iKLk8uXLWhnG/i+//CIxY8aU/v3749AqN27c0NZxW59/IxKdG3Dv1KmTngAJ1yNbgcI8fvx4Perx
448/6rrmzp2rk6AduAeLFCki5cqV0/s4Dg4Oti3C5b4nrmC2fPly3RFYsmSJ9gdv2bKltTyzXNGJ
2bNnjzUfd0iABEiABEjAkUB0xwAeR3wCUDhGjRolqVOn9rqxsDLiLzAw0E5htC0IyjYUL1jEYYWE
UtyoUSPt3gKXEQgsf84ULNtyHPfh54s2w1prKOJQLCFQ5HBOGOLftGmTtrYibO/evdrq6lhWWBxD
qYNCDvn7778FStjIkSP1sbE6KCz5qVKl0h0GHaH+Q9i3334rGDVABwYCJcxWzHC3TW+7j3aAy+zZ
s6VkyZI6avDgwbZJtELqqu12Cb08QN3oqEEpTpcune4IoEOHCZiwakMwCRPWZIxsoBOFOQYYMcBI
AeTEiRN6iwmOjgL3FIy6GNZ+x3gcv/nmm1aLPjom65UFvnPnzoLRAvxhRAN1e3s/muGK9k2cOFFb
yDEygdGlw4cP6xEkZ211FobzXrt2rbMohpEACZAACZCAJkALeSS8EaDs9ezZU5o0aRImrYfSAYGi
BWUHFk5fCBQzuDQYyrhtmY8fP9aW88KFC2vFE0o5fNWh2PlLYLk3BEoirJq3b9/WQd26dRO0rZxS
2hMkSKDdK65du6bjTp8+LeioIC4sBNxwLYzOi7M63LXdWXqzYbCmJ0mSRCvjyINRAfh5I9wQuDdB
IYZAQca1tJ2cCTcfCDiFRoz7EXlRvi/vR09c4bYFRRwCNzHcu964xCAfztvbuRrIRyEBEiABEnh9
CER9fU711TlTvOAxbA+3j7AQd5PqoJDgD0qXtwLrONwtnMkPP/wgp06d0qunwG0FyxZi2TjDMm3k
QdtgObdV+Iw4bGPHjq2V49BM6rRdIxtuIFAkDWUMIwJwh4CCjrbCdcXwy4bFHExcnZtt+0KzD244
H3duD+7aDrcQuDkZYuv7boS52gYFBWnrteHyguuB/Ag3xN39gjSJEiXSIyq2bTTymtmCrTtB/aG9
Hz1xxciE0SmE+wzOP3/+/Lo5ZrnivI25F+7Og3EkQAIkQAKvLwEq5JHw2sN/Fy4k/fr187r1cK+A
EgJfXVh1sY8/swLlBz67cFmAfzEm5ZmVxo0bC5SaIUOGyJUrV7TLjKHUwhqOdsDyCiXImOzpWDaU
s0qVKmm/YyjNhpXaSAcrNdoINwOsbe04SdBI52wLVwhMYITiiw4PJvQZgvOFIgqLKqzR6BSAJQTW
YUz8gy80Jm8iHH7ktpM6X4Z7tWrVtJsRmKBccII/Nfy3DXHXdriWYCLwyZMnZenSpV755YM1rOK4
ZhcvXtSuKWCOiaTeSJUqVfTkS8c8xj1osDTux2fPnjkmdXmMkQNYrTH3APej4VblMsOLCDNcoehj
EizuJUyCTpEihdVH3QxXjG7gPsX5U0iABEiABEjAJQFl8aFEMgI//fSTRV1Qi1JEvG65srbqvMhv
+6csv5Z9+/bpMKVAWMtVllDLlClTrMfYUStaWNQkP4tSji3KSmgX5+lAKTcW5VtsrVt1LHQW5ads
qV69ukUpfxalUFuUgmtBW5UPd4git2/fblEKoa5fKcch4tUHgixqgqiuQ/nAh4h3FoDzKVasmEUp
2jqfWi3FYstBrbCi2xUjRgx9zmqFDYuy0luLUsqxbjOYoP1Kcbcopdka7467NZGbHbW6h0W5Pei2
oXyUpybb6hye2v7PP/9YlIVW51X+zBY1P8BSvnx5N7XZRynff4saebDW3aNHD2sCNZJhsb0GaCfu
K7VCjTUNdtQkUovqdFnU+vV24WoyrE5vey9iX/nk63Q5c+a0qAm11jzKTz9E21UnzoL7SLnW6LJU
p8Oa3tOOO65qPoAFvAzuuKZqaUVrkWa4qnXXLWouhjUPd0iABEiABEjAGQGuQ67e/hT/EoAFE5ZD
+GLDJ9hWsNQgLNzwW/anwD0FkyI7dOigV5XBqiKOrhJwV4GlFGlhIXcmsMhj5AAuLnBp8LVgxRu4
UKRPn966youZtqMdsJAjn+N5mWkjLNjIjwmKhr+4mXy2abBqD8qBy09EE2dcMbl53bp1snXrVjl+
/LiekAyXKEdxxRX3C3hhSUbVAXLMxmMSIAESIAESsBLgKitWFNzxFwG4QGC9bmeC1V98Lfhsue36
0Y7lb9myxRqElUGg4DoT+JMbPuXO4hFmrNXtKt4x3EzbcuTIYc2Gtdtdibu2I08GNUHRVrCeOCar
uhKsGGO4DqEDgsmbLyNYZQcrtkREcccVHRh3kzIduRrnh3sBHc+kSZMaQdySAAmQAAmQgFMCVMid
YmHgq0Rg4MCBLpd4xHnCilmxYkW3SldY8TDTNk91h7bt8Gs21vR2VgfWhfelwP8ef5FFlLtMqCaL
GueHkR4q4wYNbkmABEiABNwRcOqysvXg87Wm3WVk3KtHoGj2/3/o5tU7O54RCZAACZAACZAACURM
AlxlJWJeF7+06tCBXbLu94Vy7epFv9THSkiABEiABEiABEiABEISoEIekolPQ7B8m5pNG6JMhJ86
cVgunDsZIs4fAV+O6yct6hWSz/q2kZPHDvqjStZBAiRAAiRAAiRAAiTghAAVcidQPAWdOHZAhvZ7
T8oHJ5SeHeq6TL5x3RIpkSumfNzlbbs0q5bNlSrFksk7NXJK3UqZ5dPeLe3i/XGwduUCqVqzsaza
ekUKFi3njypZBwmQAAmQAAmQAAmQgBMCnNTpBIq7oJs3rkrTWvmkSMnKkjxVWnn8yPlHdZBuxMD2
Ej9BQrHYfOTkwL4d0v+jplKjdnN5u3knSZw0mZw/e9JdlWESd+fOTcmVt4haOo+3QJgAZqEkQAIk
QAIkQAIkYJIAtTGToIxkceMlkLnL9kva9FmkR/va8uTpEyPKbjt6cEcpXeEtOX3ysF343O8nSoFC
pWXAiOny7NlTteZ2NEmeIq1dGk8HmzYsl0mje0uWHPnl01GzPCV3Gv/k8SOJqpYfpJAACZAACZAA
CZAACYQvAbqseMk/ZsxYWhm3ZnPiH/770jmyZ+dm6dhjhDWZsXPq+EFJmCipNK9bUMoWCJA+nRrI
P9v+MKJNbe/cvinHj/4r504fM5XeMdG2Tavl7p1b8kaW3I5RPCYBEiABEiABEiABEvAzASrkPgZ+
9fJ5GfNZZ+k1YJLEix8QovQb167I+tWLpHqtpvLd3E3aSj2odwunEz9DZH4RkD1nsFb2Gzbr6CqJ
0/BdOzZKnQqZpHObatLmw/6SX1nqKSRAAiRAAiRAAiRAAuFLgAq5j/lPHNVLAoNSSqzYcQSW6Nu3
bsj1a5esVvCAREkkfcZs0qRVd8mSPZ+0aPexXL54VvYqi7pZSZ8pmzRr00NPyjSbB+my5Swgwyf+
LDXrtZSZX43Q7fImP9OSAAmQAAmQAAmQAAn4ngAVch8zjaK+zvf0yRP5fEgX/Xfm5BE5enifTBjZ
Q9eUIlU6iaE+Q25IjBjP9x8rn26zcvHCaVm9fJ5s37LWbBadLk6ceJIjd0H5qN8EQTu3/LnSq/xM
TAIkQAIkQAIkQAIk4HsCnNQZCqZYOxw+2Fip5NnTp3Lk4G5JEJBIUqRKH2KSZYeWlSR+/IQyctIC
XVOVNxtJv+5NZMXiH9VKLZVkzozxEpgspRQoXMZ0S3bv+EsG9mwuufMVlcJzKpjOZySEYg53mnv3
7hhB3JIACZAACZAACZAACYQTASrkoQA/dlg3+XPtb9aceoJmxdpWpdsa4WSnQtUG0rDZJhnct7VW
5qEc9x40Ra22Yn6wIkqUKLpkY+ukGo9BAQGJdUfCY0ImIAESIAESIAESIAESCFMCUdRXJEN8RnLr
wadhWikLF3n44L5cUr7jKVOnF8NtxZ9cvpn8mXwz6VO1DnqQjJjws+QrWFKKZucyiP68BqyLBEiA
BEiABEiABECACvlrfB9cvXJBTSg9p5ZxfEO53CSmQv4a3ws8dRIgARIgARIggfAjQJeV8GMf7jXD
dx1/FBIgARIgARIgARIggfAjQIU8/NhHuJrpqhThLgkb9IoSoHvYK3pheVokQAIkEEoC5mcShrIC
ZiMBEiABEiABEiABEiABEnBNgAq5azY+iXn27JnTr3Ai/NSJw4IlFCkkQAIkQAIkQAIkQAKvLwEq
5KG49ieOHZCh/d6T8sEJpWeHui5L2LhuiZTIFVM+7vK2XZpVy+ZKlWLJ5J0aOaVupczyae+WdvGv
88HsmeNl4eyp4YJg764tMrhPq3Cpm5WSAAmQAAmQAAm8vgSokHt57W/euCpNa+WTK5fPS/JUaeXx
o4dOS0C6EQPbS/wECcWirOGGHNi3Q/p/1FTKVKglM+Zvk1/XnZBaDdsY0a/9Fh892rNrc7hwuHj+
lKCzRCEBEiABEiABEiABfxKgQu4l7bjxEsjcZftl/FdLJU3aN9TCkc8/0uNYzOjBHaV0hbckW84C
dlFzv58oBQqVlgEjpkvWHPkkeYq0+tgukYeDTRuWS5O38srAXu96SBmxom/fui7D+reTepWzSLkC
AfJuvUJy6vgh3cgZ04ZL45p5ZNum1bJhzWK9j+NdOzZaT+L6tUs6fOVvP0n75uWtZdy/f08WzP5S
PunWyJr24P5/pGnt/OqLqjetYWdPH5VeHetJ9VKppEKhxNKpdVVBm5AWdU0Y2VMeP35krXvq+P7W
vO52kKd3x/ryZuk0UrZAAp3/15+/scviqu3ouKHu1u8Ul8pFAwUfnapdPqN80KycnDtz3K4MVwfu
uK5fvUhaNSyqmWM05vMhXVQ9yWT04E7W4rAm/pfj+kn9qtmkTP74uj1b/1plOt4VV2sBHnbw1dnp
U4fp0YlqJVJIzTJp9X2AbLh+uGdqlk2n+fTp3FDA0pCdf/+pR6nArkqxIOnb9R0jytR2+eIfpHOb
avLL3K/UiFUuPeo1cVQvnRefaFg4Z5o0qpnbeq/t2LreWq477kaiccO7698q6qGQAAmQAAmQgCsC
XGXFFRkX4TFjxlLrdmf5f2zI7yrJ70vnyJ6dm2XOkr1aAfx/YlEK6EGthOPrnifVfsky1eXt5p0k
uEhZ22Ru9+/cvinHj/4r6BxEJpk+dbhs2bhSRn6xQBInCRQoU1GjPe8T1mrQWspXqS9jVEcmVpy4
0qnnKH1qQSlSW0/xyePHAnehMUM6S71GH0j7bkMV5006/vrVy3L65BFrWijpxw7vkydPnuiw+//d
lQ4tKkuSwCDp0W+iZM6aR1YumS2PHj6QjG/kkBGqTX+tXyJTxn6i95EpfoIAa3medtJmyCLvvt9b
AhImlnW/L5ThAz6QdBmySoHCZXRWV23HXAKc04fdhyoF/ITM/3GyTPhmuXwxuresUB2PNh/281S1
UmZdc71z64YcO7Jflznkk7ayb/cW+ezzH6XrezXk7WYdJX2mbAKlcc2K+fLue730yM2RQ7sFHQVD
3MW742rk97RFx2PV8nlSrlIdGThyhtz/755Ei/b80dRPjSadO31cXbMJEk+NNk0e00emTRgoHw+e
qudmfNqrhf6o1fSft8ijR4+UIv//joSnehGP80QnEEp+k1bdFI/sclzxgixZOEPGfNZJOnw0XAoW
LS/oZPX7qIksXndSf8zLHXddgPrv4rlT+rd68/oVI4hbEiABEiABEghBgAp5CCQvF3BVubKM+ayz
9B/2rcSLH1Khu3HtisBtpXOvUVK4eEVtGRzUu4X8uvaEMrY7t7Y7tih7zmDp2GOEJEv+f2XVMU2E
PH7ReXmiLMqBQamkeq1m1mYmSZpc8AelK7ZSyNNnzGqNc9yppvK17zZEB+cNLuEY7fR44/ql6suo
Z7QyauR5v/Mga1rUd/hAan0N3NVtzWCzgy+t4nqg/L2qI5YoSTKtsB09vNeqkBvJHdsOhRZSvHQ1
rQhuWLtY3xdZsuWV61f/bwk28jvduuGK9MYoTKbMOfV+sVJVJFbsOHLt6kVJlTajLF7wnTRs2kGa
t+2pi4eSbgis/+7iPXE1yvG0TZIkSIaOm2P3G4CivuXPlVKtVlO5d++O/suZp7AsX/yjdOk9WuLE
ja+LRRujRIkqOD/8hUZ69P9C8hcspbMa2/k/TZE06TLrr9keO7JPsucKlsXzv1MjOL9KxWoNRfUI
dHpn97PRhjfrtpA8BYpL/kLPO2ZGOLckQAIkQAIkYEuACrktDR/sY7g7MCilVnhgebutLJSwwv6z
7Q9tBQ9IlETHNWnVXdfWot3H0kK5bkCRMxRFT82AwmSrNHlKH1HiG7XsoleVaf9uBYkSNapUebOR
7pgkTJTUqyaWLFvDq/RIfP7sCYmhRjdy5y/mdV5PGZ48eSwtGxRRCvRlVX5RwfnAwgtXEEdx1Xa0
LbpS7GPGiKWzYP/RoweO2Z0ee+IaI2ZMnQ+jO6gHgk7EIzX/4dKF0/Ls6VOXIzSe4n3FtXiZanbK
ONp4/txJbARWfvx+DKlQtb5yZbmlR4h6fzpFJn/+sdSvklV38pq1+UgavdvFSGpqmyAgkeQtELJj
d/7sSUmmfsu2biroHESLHkOX64k7EpWpWMtUG5iIBEiABEjg9SZAhdzH1x+K5lPlJgFfXcilC2e0
8jlhZA+ZuWC7pEiVTiuHRrVQjCCw8pmVi0qJ2qdWBEmYOFAKF6tgNlu4p4OldsQX83UHBZZVrGiS
QXUumrd97rOLBkZV/ODe4U4CAhKHiI4TN57AlceQk8oNxFYwmoAJuLBaZ82ezzbKuo+64UKCP+yb
lRXKYnvx/GlZtOa4nsQLS/lvC6Y7Xe7SWdvN1uMqnRmuRl5jFMbYYqQC+//u2S5lK9Y2klm3nuLN
cLUW5mYngZNrGhT0fASoVPmaUved953mxsgC/q5euSA/fjdWxg//SEqXf0tSp83kNL2zwHjxApxe
b7hLJVajHRjtciZmuB86sEvOK0t/BuUWBdcoCgmQAAmQAAk4I2Be63CW+zUNw9rhRw7uljtqwtm9
u7f1PlbogHw6apae9ImJn/jLla+IFFGuKVDGIbAKHz20V6DEwW91zozx+vP1hq+xTuThP6xE0q97
E5lmctKhh+L8Fg0/ZUzihJU2S/a8ahszREckj7JgYyIn+P6n3BSePXtqqn35gksqpfiUdnFAHYvm
fW2Xr3ipqgKlb6qavAglCdZhTA69ce2yNV2ufEXl6dMnsvSXmUq5VyMbLlbQsWZ4sRMtenSdFivv
QBmfOs7cZFDHckJ7bIarq7Jjx46r/caX/fq99n1HxxB8jEmdnuLNcHVVt6dw+OXnyF1Q+25jvgHu
BVxbuJJAMPIEv25MroTiDFcjdKS86dy6a0PVmo0FvzX8VuFadOvmNV0fOsQQM9yxhCeWPV3+6w/u
qmIcCZAACZDAa06AFvJQ3ABYCePPtb9Zc2KCJqyLIyctsIa52qlQtYE0bLZJBvdtrV0F4sSJJ70H
TXFqoXNVhmHdNLau0kW0cLjw9FeT4qJGjaZdJoqWrKwm0j133THaWrnGO/Lv3r+lQ8vKWtEaO+03
KaEmvkLcnW/OvIXVpNB60r19LYmmyq9QrYEc+nenNU/ipEEyesov8lnfNtpFCIpb0mQpZUbxCkbV
kiJlOmncoque5Ih15uH/68o6as2kduBPjIm8WNUFfsWw6Dr697tsu7JO2wpGWCBID79oM+KOq8t6
bQruoyZIDh/QTq9QgvRwyeg39BtrCnfxZrhaC3Kx8/xc7TkgKa4R/Mo/+7i1XlVHp1Nh5SvXlQZN
PpRnlmfy7ZQhegJtdNXmpIEp9ETfDGpipi8E9+aN61f1PTP441Z65AQ+5Zj7AXHH3agfSjwkMFkK
I4hbEiABEiABEghBIIpa2uv5zCSbqK0HzVklbbJw10sC8C++dPGspEydXiunXmaPtMkxonD18gU9
mdBw1/HlycB1IUGCRNpP31W5SAP+YI/Oga8EK3ZAiQxImMRXRZouxxdcYQW+fPGcBKVMI+goOoqn
+LDiinZg+cNrVy4J3EiMyZxG+4x6vXFTMfKa2cLiDn/yBAEJ9cRj2zzuuOPRimUco0aLJgtXHbFj
WjS77+472/ZwnwRIgARIIHISoEIeOa8bW/2aEOjRvrZeHtLV6X47d5Pyw/eNRdhVHaENj8xtD+05
2+aDa1svtT59gybtpXbDtrZRQoXcDgcPSIAESOC1J0CF/LW/BQggIhPAEpm3bNYEd2wrVuaJqOvR
R+a2O3L29TEVcl8TZXkkQAIkELkJOFXII/cpsfUkQAIkQAIkQAIkQAIkEHkImJs1FnnOhy0lARIg
ARIgARIgARIggUhFgAp5pLpcbCwJkAAJkAAJkAAJkMCrRoAK+at2RXk+JEACJEACJEACJEACkYoA
FfJIdbnYWBIgARIgARIgARIggVeNABXySHhFly1bJrlz55ZmzZpFwtazySRAAiRAAiRAAiRAArYE
+KVOWxqRZP/mzZuyf/9+9QGcBJGkxWwmCZAACZAACZAACZCAKwJUyF2RicDhwcHBMmrUKEmdOnUE
biWbRgIkQAIkQAIkQAIkYIYA1yE3Q4lpSIAESIAESIAESIAESCCMCNBCHkZgw7LY06dPy+bNmyUw
MFAqVqwYllWxbBIgARIgARIgARIggTAmwEmdYQw4LIrfuHGjNGrUSPr16xcWxbNMEiABEiABEiAB
EiABPxKgQu5H2L6qKkqUKLooY+urclkOCZAACZAACZAACZCA/wnQh9z/zFkjCZAACZAACZAACZAA
CVgJ0EJuRcEdEiABEiABEiABEiABEvA/ASrk/mfOGkmABEiABEiABEiABEjASsDpKitbDz61JuAO
CZAACZAACZAACZAACZCAewJFs0dzn8BNLC3kbuAwigReJwLPnj2TQwd2yePHj16n0+a5ksBrR+D2
rety6sRhv5739WuX5PzZE36t09+VhQdXf5/j61Lfo0cP5fDB3X49XSrkYYwbSo7FYglRC8LxQLxw
7mSIOAaQQHgQWL/qF+n6Xg2n92tYt+fq5fMyd9ZEwUOQ8noT2PLnSpk6YYD+W/f7wjCD8c+2P+SP
Nb/6tHx/tf1lGz1y0Ify43efv2wxXuXfv3ubtGpYTO7fv+dVvsiU2B3Xl33GhcX9GpnYnjtzTGZ+
NUKgO/lDnj17Kh1aVJKN65b4ozpdBxXyUKA+ceyADO33npQPTig9O9R1WQIuZIlcMeXjLm/bpVm1
bK5UKZZM3qmRU+pWyiyf9m5pF88DEggPAjOmDZf6jT6QmDFj+b36M6eOyrjh3eXBK/yy9jvUSFrh
3bu35MrFs7J80fc+V5htkaxduUDm/zDZNuil9/3V9pdp6KnjhwQdnXfe7fQyxXidt2S5NyV+QCL5
Zc40r/NGhgyeuL7sM87d/Tp75nhZOHtqZMAU6jaeVPftl+P6KYXcPy7VsWPHlTpvt5XpU4eFus3e
ZqRC7iWxmzeuStNa+eSKsuglT5VWHruw6CHdiIHtJX6ChGKx6dEd2LdD+n/UVMpUqCUz5m+TX9ed
kFoN23jZCiYnAd8S2LRhuZw4+q/Ua9zOtwWbLC177oIy65cd6veSyGQOJntVCVSq/rb0H/6d5MhT
KExPscX7vaXP4C99Woe/2v4yjZ71zSgpWLS8vJEl98sU43XeqFGjyttNOyjL/NhX0i3OE9eXfca5
u1937/hL9uza7PU1YQb3BBo0/VAO7N8hf29Z5z6hj2KpkHsJMm68BDJ32X4Z/9VSSZP2DZEXH+lx
LGb04I5SusJbki1nAbuoud9PlAKFSsuAEdMla458kjxFWn1sl8jDAZSnJm/llYG93vWQMmJFz54x
Tt6unlPK5I8vtctnlOEDPpD/7t2xNhI+ho1r5pGVv/0k7ZuXl3IFAuTdeoX0EOeoTztIu2ZlpVKR
pNKjfW3p0ra61CqfQdasmG/N72kH9bd5p4Suv06FTLJo3tc6y/rVi9RQalGpVzmLHrH4fEgXqVw0
mYwebG9BgktHywZF9MjIm6XTyNTx/a1VPnxwX/fe61fNpsvHeWz9a5XpeGtCFzth2XZUuX3TGsmY
OackSZrcrgUYDcK5gAnO+a1y6WX6l0Pt3Fpctc0o6Ozpo9KrYz2pXiqVVCiUWDq1rirwtYTg+uMa
t2taVob0bSP3/7trZDO1dcfdU9sXzP5SPunWyFrPwf3/SNPa+eXunZvWMHc7Vy6d0+dVpViQZoMO
uNF+DK+CG0YdGlbLIXUqviE/fDvGXXF2cfN/mqLLxhB4tRIp9O8BQ9a2snzxD9K5TTX5Ze5XarQt
l74vJ47qZZsk1PvhydVTo91xR95lv34v9atkVaOQQfo33Pqd4rL5zxXWYmEdxj33kXqOQDl0FHf3
677dW+W9xqX0c6hy0UD5sEVFOeIjP1NPzzjM7ejdsb6+18oWSKDvr19//sbafPwOu7WrqUdt8Ttr
VqeA7Pz7T2u8sbN98xopVKy8cWi3dfeMwzMX9zjePRULJ9FtgeEJcu7Mcf3buXj+lLW8Di0rhXg+
FypeQa5dvSjHVec/ooin54TZa+6Kq6dnXI8P68jkz/vq9xvuqSGftBW8Cw1xd7/i+YLnzLZNq2XD
msV6H8e7dmw0snvcunt+41k4rH87qVk2nXonBkqfzg3t2obC3d0zWzb+rn9r8CbAM+q3BdOt7fH0
jMQzCDpC1eLJ9bsZngW2Yua6DOzZXFu4B/dppZ+jNcuk1azAB5wuXjhtLRL3MML27tpiDYN+ljZ9
FsG19YdQIfeSMobzcYGs4sQ//Pelc2TPzs3SsccIazJj59Txg5IwUVJpXreglFUKZ59ODcTxRWuk
dbW9c/umfqCdO33MVZIIGR4tWnTp3GuUzFmyV3p/OkUPR08Z+4m1rU8ePxY8HMcM6Sx5g0vKxG9X
SJU3nytM58+dFOT/ZMjXsnH9UtXRCdZx3075zJrf3Q5+vBNG9pS677wvP684oDtESQNT6Cx3bt2Q
Y0f2a6tc1GjRZN/uLfLZ5z8KFDYMQ0Lwg8TDKEv2fDJpxioZ8YXqCNh0xuBusVANxdZp2Fa+X7hD
2nToL8bLCvk9xSONKwnrtqPeo4f2SPqM2UI0AQ9FXJN/tv+h+dRr1E6mTRwoh/7dqdO6axsSQEHt
0KKyQInq0W+iTJ+3RfLkLy6PHj7Q+WPHiScDVee0obKcHVYTSp8+faLDzf7njquntl+/ellOnzxi
rQq+rccO75MnT8y1YVDvFnL8yL/yydCvpV2XT7Xy8eWLTtrDhw81Nwwz9xzwhbxVv5VMGtNHrl65
YK3P3c6Na1f0CxZpRn6xQKLHiKm4D7DLgvsLL2Lcp01adZNxXysjQTplJPCBhCdXT813x/3O7Rta
oYEFeNTkhUpRPCb/7tkut28+7wCibCijA5QFPl2GrHLG5vojztP9CqW4Wq2m8s2cv9TzaaVgWLvb
+zV9Moxu5hmXNkMWfV4/LPpHqtduphWWnds3oOlKUbosmzeskICAxPL51MUSlDyNfPZxax1n/Ac+
l5U7kLPfuqdnHFwudGenSXv9LEAH1vBDf6h+z/jt2E4Ih9J964XCbtSPdycs5ccO7zWCwn3r6Tlh
5pq74+rpGYcO4JxZE+TNOu/Kp6O/17/71cvmWbm4u19rNWit3kULJFeewhJcpKzex7GjIdBamMOO
p+d3PzWaj/urR78JMmzCPEGHa9qEgdZS3N0zuM9giEmVOoOM/3qZFClRSbv6wpoP8fSMhB61evk8
6fDRMPmw+1DZ9tdqa73YMXNdoGR/PelTefDgPxk4coZ0/2S81iPy5C8md+7ckl9//tZa5uL53ykD
0V3JlbewNQw7GdR7Ee9Hf4jTZQ/9UfGrWgcmboz5rLP0H/atxIsfEOI08aKF2woU08LFK+reG14w
v649ofS7KCHSOwvIrpRRKPvJkqd2Fh1hw95u3km/8Hb/s0muX70kaZXy4OzBXK1WM2nfbYg+j7zB
Jaznk7dACSlVvqY+Ll6mmrauLlk4wxpvZgc/4nhqlAMPL1sxRioyKSsx9ouVqiKxYsfR1pz0mbIp
pWeq5t33s6+s1wk/agjKXLzgO61UNm/bU4chjyGe4o10nrZh0XajzvPqQZvVYTTHiMO20btdNBNw
WaZ8ezerUZrsuYKtSVy1DZ2nSxfP6A6OcS3f7zzImg8v5zey5lEW8xvWMLM7Zrl6arvZ+mzT3bp5
TXZsXS+deo6UshVr6yi8aNaqEZvufcdZk+J+wIsovxoVgzULL7fKNd6xxrvbiaE6/136jNFKX523
3xNYe6A84L60lR79v5D8BUvpIGNrG+/tfnhy9dRWT9w3qwmhUaNElY/Uixec3u88WGCls5UESmHF
X6LEgSEURk/3K0Y386ln0pGDe5RRZL9AQcaIJTpHjqNLtnWa3Xf3jIuhOmV47uP3tFcZfBIlSSYI
O6qU2wKFy+gq8HuC0oF3D/7eVYYfdDrTqXZCzp89qbdQ1h3F3TPOSIvnZv3G7fXhQfUe27h+iVKY
hhvRHrcwaCVKnMzaDo8Z/JjA1XPCzDV3x9XMM65k2RpSq0EbfbZQwGGkw/sS4u5+xT2Hv3jKNTZ2
nLiqo5VV5/H2P2fPbyizmKSMDug9NZKJv5xK8V+++Efp0nu0wFvA3T2D3xIML137jpUUKdNJngLF
ZOmiWbJm5XzJV7CktYmunpF//bFM60gGF0wKhq+8IWauC9ImSRIkQ8fNsb63jfx4pi5So4ttlfEM
C29Al2igOptRo0YzkuhtUIo0ymVlrV1YWB3QQu5jshgyDgxKqV8GsF5B0cDwk2EFD0iURFsnmrTq
rq2tLdp9rC0WeMCaFSh7zdr0kKo1G5vNEiHSabcHNWQ0UykmGDK6q3qo6Lk6Ch5OzgQKCl5AEDzY
sW92VY7c+YpKq/afaDcTuKNg2HmP6hgYEiOmTbmqbIht+ViuK1i99Jx1mi6pYa9nT5+GUPKNsj3F
G+lcbcOy7UadqdNktBu+M8KNbdYc+Y1d5XuaS3b/89zK4alt4IbrlvtF58VaiA92zHJ11faXaQIs
/hDbTgzqwXC87aSjrDmeu6zhfsV8EozGmBUoUbDAQpIEJleW+8chVqhIoCbJQYnzpYQnV0/n4Yk7
hpvTps9s7bTgXvVGPN2vUFAwhP6pMqLg+W5Y2B/cD/kc86ZeI627ZxyuP9xQWjUoJrAe4p2BUUN0
0gxJqayRhiEI547n1a4dfxrRkjptRr1vO1RvRLp7xhlpsmTLZ+yqjnRuZTncK/fu3raGedqBgnbz
xhVrOzyl92e8q+eEmWvujquZc8hm83yFgn1bjWT4Q9w9vzFiA8EzC/oL/jASUqFqff3uRpy7ewbz
7AISJtHKONJC0c2cLY8eLcWxIa6ekXg/Z1bGGkMyZ89r7OqtmeuChDDeOXtvY8LmjetX5M+1v+k/
dPZrqzBHwW8ltY9GHh3LdjymQu5I5CWPoygLxVM15A3lE394YB9VQ3kTRvbQJadIlU4pKM+VPwQY
CiZ6qGYFNwiGcrb7qddmtl3u0sH14+cfJ0u/od/Il9+v01u8OJwtCYkh17CQdp0/lZWbL8l3ym0C
9Y4d1tVpNcaP19giUZAajdivhr6dSWBQKv2Dx9C4M/EU7yyPY1hYtd2oB1bq027WJT514rnrDtKf
UUOsWbL/X0F31zaM4mDiM6x4vhazXF21PU7ceAL3L0NOKtccs5I4aZBOChc0Q06+cEeztbBEjWpu
1Msow3ZrW45tuO1+vHgB2gXANszYx8sG/qeOFmIj3tU2PLnatilWrNhyXw0h24on7lAwzipXPkNJ
9dZX2dP9+sWY3lKkZGX56bc98umoWcqCV8G2edZ9Z223RoZyZ4WyTF48f1rmLf9XRk1aKG07DtAG
Ddtn6KULZ6znfvbUMf2cy2rzW8WkaYwA2v4mjOa4e8YZaU7bPgdOHVGKdSbdAYj9YtTmzq3nvyeM
GDi6q6CM0ycP62Xr8LxxJliZDPes2XkczsoIbZgtE9tnnJlr7o6rqfaYHB13VRas8HD5DI24en4H
BT0fgceoNEb8bf9gNYa4u2cSqxEczBUy/OFxn0IPMH7DRltdPSMxAntG3WOGOL6fzFwX5MUIgzMJ
TJZSylWpq11NMZ+sfJV6Tke5UK9tx8C2LHy3A/cr3Dp9IVTIQ0Hxguo5YiLPHTXhAdYB7BuTWfCQ
xqRP4y9XviJSRLmmzFzwXFmDTzSsCni44kadM2O84MYwhhzNNAdD4/26N5FpNpMKzeQLzzRJAoO0
1Qqc4KcJFw/4r/lL4CYEixY6PrCg4aEAX36zUlldN/j6YUIjFB28cBbPf+5/BismVs2BfyV+nKgD
P1RjUqeneE9tCMu2G3XDFQWrrMDlyplg4iD8cTGxBulKlK2uk3lqW/FSVfUDcapargpMMKKBSbs3
lL8rBNZkhBkdUuzjz8xas2a5ump7PjVPAfcjLC14URiTfHXDPPyH+QeYT4BhzmNH9mn3FQzRFlUc
I4rguYQlV0d/Zj852VP7wpOrbdug+GIkDc87+N7jXvHEvXjpqvJUpZswqqfqQG+TbycPti1S7+Ne
wz2G+QpIa9xziPR0v8ICffvGNa0wom0LZjtfws9Z20M0xMuAaNGj67bC8gi3lanj+ocoAVb0mV+N
1L9j+HeDl6M/cVHFFc9CR3H3jDPSYi4JOnjwqYWfc4kyz58DqdQIGzozeAZilGjW16Oc/oZRL9LB
NdCZfNqnpb5nz71wrXGWJqzCXD0nzF5zV1xf5hmHc3V3vxos4D6J+xG/eUwitR2lM9I427p7fsMd
K4da/QoThzE5GGXiOYkJ54a4u2fgqoc5WdO/HKbvCUwehRW6WElzz0hYtrepuVuwzGO+Aubj2IrZ
62Kbx3G/QZMP9W8B72rMj3IUjACgU4Br60yw1CSesct//cFZtNdhVMi9RibKstpNT8rEiwJDpJig
OW5Yd1MlVajaQBo26yiD+7aWGqVSawUHfoHo4ZoVw3JrbM3mC8906KW27TBA+cwP1yttfDd5iPYH
tz0H231nbX0ZIwKGurFCAVYnwJDzNfWC/6Drcz91T/WiLXAPwsSSGerDBNVLptQztrdv/r9fWZ/B
U/XDq2/Xd6SsWkWmbaOSdpM6PcU7O18jLKzbjnrwwMGLe56rdZmVdaN+lWx6yU4s7QY/Woi7tiEe
HZ/RU36RU8oy1kKtbFFO8Z/0+cfyzPIM0QIXrzL54unVQnCMWfA4XvrLTBx6FFNcXbQ9p5q8A6tI
9/a1tCtAhjdy6PrM3A9IiImBmBjUtFZ+wYoSKdXoF3zKbcVsWbZ5sI+RNlsxyjG2tnGu9o2VbJIq
dxdvJTy5Gm0tV6mO4F7r/sFb+r7AyxHijjuGyHsPnKxf3h+olZqSKIUUbh0xlbXdEKymhHsMChhe
9tjHHxQZT/dri/f7yJUr5/UqTFgtyJiL4nhdXLXdaIOrrbtnXMVqDdVyheX0aiZ11ao99+7dDjGP
CJbLlUtn61Uxlv/2o74fHdvWol0f7a5nTMw22uLpGYd0mAzaU60K0qxOsOocPLJbyxzL8sGVBqsx
wXgBdypbQQdo3veT5N33ekn06DFso/Q+3Fng+gMlLrHy7/e7uHhOmL3mrrh6esZFEfXP5sJj3/bY
3f1qMMK8FPhUd2hZWb9fzY6KuXt+QyeB73UcNfEeq56VzB1bGtfKq+fBGPW6u2cyZMquJ/L/qgxX
uCcwqb1p64+kTMVaRna9tT1X2wiUDeMZVjJq/XYxZbh8vgiDkcbMdXFkaeQ1tmCWXrUT97Uzo+jc
779Q77qSTuNQhvGMdWybUb632yhqGMHimGnrwaeOQTz2MQEMqV5Ss5BTpk5vdVvxcRURsjj09mGF
Re/W3wLrEfxj48VPqCd0haZ+WAmgGGBCi7NJXLD+X754ToJSptEPMsc6PMU7pjeO/dF2LA03oEdz
Wbz+pLXtsExgqcdFa45ppSaKmjCHoUhbMds2WDlx3+OeN+OOYVuHp31nXM20HeWiXQnUUL7jZElP
dRrxcCGDj7iz+8FIEx7bUWrpVVhwxk77zWrJ9LYd4cnVU1s9cYcCeOjfXdK2cUlZ8dcF7c/qqUzb
eHf3K0ZJ4dpjuBza5gvrfYzOQVlC58NWJquO7o6t6+TbuZvVM+q4JFMuB7YdEdu0WFoPz2KM6DqK
q2ccFMP6jT9QE98+1L8ZWMUdlSnMCULHxtlvAW6WWOlqwe+HnX58DJOk0bF9s24L7R7h2K6wOjb7
nDBzzd1xDav2v2y5Zp7fcCG6duWSBKVILXHixg9Rpat7Bglxn104d0rnxeibt4LRILjmYQ6OMzFz
XZzlQxieb1jKt9UHfXVnwTYdvB8QN3ryL7ojbBuHfajOWMoXv4GFq45Y35lFs9tPCnXM5+44urtI
xoUdAbz8jZnvYVdLxCsZLzBfK+NYl9zZervG2X87d5Ogtw6rTGqsHf8SAkUyTbrMLkvAw8p2hRXH
hI7xEantxUtX00tCxooVx7HZ+tjZSxYRZrnCNcusYBkxrN3tSvDbmf7zVmu0I1drxIsdV21HtLN2
mb0uyI8VBLwRrMU7fsRHLrNgwjZeEC8rO9THLDCUbbgVhKa88OTqqb2uuGPN4SxqAhju40VquB0r
zzgqr57KRryz+8LI5+0zzNv72ajH2TaRB+sxFARPz7leahTBWHrUsQ5Pzzi8u+A77kygcLlSukqX
f0vfi+i8OhMo5HiWtPmwn7Nop2GeuAYkTOx2BSf81vDcM8Tdc8LMNXfH1ajDX1uzzzAzz2/4yLv7
aJu7ewbv/JfRdTDnwZ2YuS7O8sPldIVyn8TvpWa9liGS4Nn3y+qjLl1bjytXxZvKfRUrYWEUwRdC
hdwXFFlGuBJoo1xhnE0gMhqFiScRVSJa2x1f9vETBAhWvcFauv4UjEAMHTvbZZV4WHqSl2l7WF4X
uAe5O7e0GVx3+Dyds238xO9WaMuSbZgv9iMqV+PcsPoHhuwxGoM171u1f/nOjVF2aLe+uJ891Q2X
K7MT+6AUu1KMXdVTqFiFl1ptwtMIVKMWnZUf7/t65MFVGxzDPXF9oO4BY8KpY14c47cGS6evnnGh
4eqsXb4IC8tnmC/aF95l7Nz+pzYOdu412qnSjVEod/PM0qrvGMAynjyl+w6DN+fp1GXFmwKYlgRI
gARIgARIgARIgARIIPQE7GcOhb4c5iQBEiCBMCFw8OBBuXHDP+vyhskJsFASIAESIAES8ECAFnIP
gBhNAiTwfALLgQMHJDAwUIKCnq/B7S8uzZs3135+s2aFnIDmrzawHhIgARIgARIISwK0kIclXZZN
Aq8AgWXLlkmGDBkkX758kjx5clmzZo1fz6pr164ye/ZsOX78uF/rZWUkQAIkQAIk4C8CtJD7izTr
IYFISiBPnjxSsmRJ+eKLL+Ty5ct6ybWUKc2vmOKL0y5VqpSgHV9++aUvimMZJEACJEACJBChCNBC
HqEuh7nGwGKZO3duadasmbkMTEUCL0EgQYIE8vDhQ7Xmslo2MnVqcVTGv//+e6lSpYpMmzZNsmfP
LvHjx5cePXroGrGCwdSpUyVnzpxqxY94EhwcLOvWrbO25vr16/Lee+9JpkzqE9wqvkCBAgKfcUep
WLGirFq1yjFYH8OCjt8D2kEhARIgARIggchIgAp5JLxqN2/elP3798uxY8ciYevZ5MhGoGjRojJz
5kxZvny506ZfvXpVK8tTpkyRjz76SKfLnPn50n3Tp0+XDh06SOvWrWXDhg1SpEgRadSokf7KHwob
OnSorFixQubNmyf//vuvdO/eXX1ZMeSHFbJly6ZdVu7duxeiDadOndK/hytXroSIYwAJkAAJkAAJ
RAYCVMgjw1VyaCOsjKNGjZJOnTo5xPCQBHxL4Ouvv5YffvhBMLGyadOmVj/uLl26aAXbtrZJkyZp
a3fp0qXlgw8+0FGTJ08WKOeYCLpv3z4pWLCgwCq+aNEiHW98KBif4U6VKpWuJ0uWLLbF6v20adPq
9YKhfDtKy5Yt9e+hTJkyjlE8JgESIAESIIFIQYAfBooUl8m+kXALwB+FBMKawJgxY2TIkCFa0a5e
vbrUrVtXNm/eLL/99pvUr1/fWn2iRIm0n7k14MXOiRMntKJt66YCVyu4v0C6desmJ0+elHLlymnf
9MaNGwvqTJo06YsSnm+giONDDZhc6ii1a9d2DOIxCZAACZAACUQqAlTII9Xlet7Y06dPa6UIS9DB
t5ZCAmFB4MmTJwKF+v79+1oZxkonsHDXqFFDrl27pidZGvUGBAToNMaxsU2TJo0kS5ZM4LriTGD5
XrhwoTx48ECWLFkiLVq00J3N3r172yU/dOiQ9jOPGzeuXTgOdu7cqS33OXLk0L7qIRIwgARIgARI
gAQiOAG6rETwC+SseRs3btR+uP369XMWzTAS8AmB6NGjS4UKFWT8+PGycuVKSZgwoWAC5R9//CF1
6tSRxIkTe6ynSZMmgvsVbi93797VijzcYNCphPz88896EmesWLH0sooxY8a0+pfbFv7777/riaO2
YcY+Vl5p0KABJ3UaQLglARIgARKIdARoIY90l0z0R1LQ7ChRokTC1rPJkYkALNtwMalWrZp2M4Fr
Sps2bfQkT/iJFy9e3O3pYJInJlu2atVKW7+fPXumfcorVaqk82HlFEzyxEROKONYrQV5bGXTpk2y
a9cumT9/vm2wdR/Weojj6i/WBNwhARIgARIggQhOgOuQR/ALxOaRQEQggJVUbt26JRkzZnTqmuKp
jZi0CfcXKPT4uJCt3L59W86fP69dUqCUOwqs33B7cbYGOSaFIg4KPT4chKUTKSRAAiRAAiQQ2QhQ
IY9sV4ztJYHXjACW+YTvuDNlHRNC4T6DpRWxnjmFBEiABEiABCIjASrkkfGqsc0kQAIkQAIkQAIk
QAKvDAFO6nxlLiVPhARIgARIgARIgARIIDISoEIeGa8a20wCJEACJEACJEACJPDKEKBC/spcSp4I
CZAACZAACZAACZBAZCRAhTwyXjW2mQRIgARIgARIgARI4JUhQIX8lbmUPBESIAESIAESIAESIIHI
SIAKeSS8asuWLZPcuXPrD7ZEwuazySRAAiRAAiRAAiRAAjYE+KVOGxiRZRfrMu/fv18SJEgQWZrM
dpIACZAACZAACZAACbggQIXcBZiIHBwcHCyjRo2S1KlTR+Rmsm0kQAIkQAIkQAIkQAImCPDDQCYg
MQkJkAAJkAAJkAAJkAAJhBUBWsjDimwYlnv69GnZvHmzBAYGSsWKFcOwJhZNAiRAAiRAAiRAAiQQ
1gQ4qTOsCYdB+Rs3bpRGjRpJv379wqB0FkkCJEACJEACJEACJOBPAlTI/UnbR3VFiRJFl2RsfVQs
iyEBEiABEiABEiABEggHAvQhDwforJIESIAESIAESIAESIAEDAK0kBskuCUBEiABEiABEiABEiCB
cCBAhTwcoLNKEiABEiABEiABEiABEjAIOF1lZevBp0Y8tyRAAiTwShIomj3aK3lePCkSIAESIIHI
R4AW8sh3zdhiEoiQBG7fui6nThz2a9sePXoohw/u9mudrIwESIAESIAEfE2ACrmviTqU9+zZM7FY
LA6hIgiH8nLh3MkQcQyIfASePXuqrin+nrls/MMH9+XY4b1y6eIZl2kuXzwrp44fkidPHlvT4P75
f/me67FmfLHz/7zO2/b/eKPsp9Z71lmcEeZYz8hBH8qP333uGBymx2hLhxaVZOO6JWFaDwsnARIg
ARIggbAkQIU8FHRPHDsgQ/u9J+WDE0rPDnVdlgAloUSumPJxl7ft0qxaNleqFEsm79TIKXUrZZZP
e7e0i+eBawKzZ46XhbOnuk4QDjHoWJXIFUv/lcwdS1q/U1ymTx0mN29ctbZm5lcjpFLRQGlau4DU
Lp9R6lTIJFC+Ddm3e6vUr5pNapXPIO+8mUtqlk1ntTb/8O0Ya/lGPZWKJDWyut3iXjXylMoTW95v
UlpQ3oMH/+l8tm030mE7vH87uXLpnDWvbZyxv23Tamvd6ESs+32hvPNuJ2uYP3Zix44rdd5uq3n7
oz7WQQIkQAIkQAJhQcCpD3lYVPSqlAklq2mtfFKkZGVJniqtPFZD5s4E6UYMbC/xEyQUi43V9MC+
HdL/o6ZSo3Zzebt5J0mcNJmcP3vSWREMc0Jg946/JHacuFKv8QdOYsMp6MUIyCdDvpZc+YrKrr//
lIkje8q+XVvk86mLZdOG5fLluH7S9ePPpXqtZvLo4QNZt+oXMdaRh2LeoWUlKV+lnkydtVZixY4j
61cvkujRn/s412rQWkqWe1MWzftafpn7lcxcsF2iRfPup9tv6DeSLWcB+XvrOt22i+dPS4/+E0WZ
wjW0Pp9+KXmDS1oBBgQkUvdmkPz02x4ddvnCGenKNffpAABAAElEQVT6/pvyUb8JUrBoeR2WKk0G
a/pZ34zS4W9kyW0N89dOg6bKMj99rPy9ZZ0UKva8bf6qm/WQAAmQAAmQgC8I0ELuJcW48RLI3GX7
ZfxXSyVN2jdEaVVOSxg9uKOUrvCWVoJsE8z9fqIUKFRaBoyYLllz5JPkKdLqY9s0nvah4DV5K68M
7PWup6QRLn5gz+bamjm4TyupViKF1CyTVgxL68H9/8iHLSpKxcJJtAX5uy+HWF0nZkwbLo1r5tFp
N6xZrPdxvGvHRn2OC2Z/KZ90a2Q9X5TVtHZ+uXvnpjVs+eIfpHObalqpfadGLj3CMXFULx3f48M6
MvnzvtKuWVmprCzZQz5pK9evXbLmNbMTlCKNZMqcU+o1aqev/T/bN+hsRw/tkRgxY6nwDyRhoqSS
LHlqebtZR71FAiiTMWPGlo8/narDAhImkVr1W0tq3F9KkAflJlEKcrSo0fR++oxZdZzZ/9C2LNnz
SeMWXSVH7oKyd9dmu6wpU2fQ5aIe/AUGpdJKv3GcNkMWnT5FynTWdLBOG7J98xqXyrA77rg+w5Q1
HiMC4N6nc0M77vBLR3y9ylmkXIEAebdeIe3SY9SLLX5DadNnEbTBmYwb3l3/XtAOCgmQAAmQAAlE
RALemdki4hn4uU0xlWKFl79VnPiH/750juzZuVnmLNkrvTrWsybFzqnjB7UC0bxuQTmp9kuWqa4t
5cFFytqlc3dw5/ZNOX70X0HnILLJuTPHZdXyeVKuUh0ZOHKG3P/vnlb8rl4+r5XxYqWqyIRvlqvz
2y9jh3SV3PmKSZESlQRW4vJV6ssY1dGJpSzknXqO0qcelCK13l6/ellOnzxixXH//j3lr71P+WI/
sYZh1ALKPxTtJq26SfpM2eX4kf06/uzpo7L1r1XSU1mNoYwO6tVCsioFFqMY3sr9/+7Kv3u3S3Zl
kYaUrVRXpoz9RDoqK3itBm2kqBpdgVJuCBT27LmCtWXcCAuLLXzR0VE5qrg0aPKhXRVwqVmycIY1
7K36rTR3a4CbnTu3b2j3m/QZszlN5Y57PzVadO70cemhLO/x1GjS5DF9ZNqEgfLx4OduSdOnDpct
G1fKyC8WSOIkgbJTjT5EjRbSjpBB1Q2OzuTiuVP693Lz+hVn0QwjARIgARIggXAnQIXcx5cAiuWY
zzpL/2HfSrz4ASFKv3HtisBtpXOvUVK4eEVtLR7Uu4X8uvaE1YUhRCaHgOw5g6VjjxF2Sp1Dkgh9
mCRJkAwdN8fufL9XLg//3bsj6JicOnFIK+kZ3siu3TSgkCdJmlz/QWmDy4q3FmJbID36fyH5C5bS
QcYWByXL1tAKM/bh+vDPtj+8Usgnf/6xzFC+4/uVMh4/fkJ5r9MgFKXbik4GrPzDB3ygz/vNui2k
a58xEidufLl29aK8kTWPThtW/xnzGO7dvS0VqtaXVh98bFcVOgi2HU2036wYLldBydO4zeLIHZ2z
LX+ulGq1mso9de3xlzNPYVm++Efp0nv08w7niw7vk8ePdEcJLj/OBCMAf29Z6yxKwDpPgeKSv1AZ
p/EMJAESIAESIIHwJkCF3MdXAC4QgUEptbUT1tjbt25on2Eod1A2AxIl0XFNWnXXNbdo97G0UMPw
e5VFPW9wCVOtSZ8pm7LuOrdGmiognBMVL1PNThlHc86dOSFwgUBnxRAoqYHJUhqHPtkmUL7ReQs4
55wtR35rHegAwErvjeRXrkiZs+WRbp+MlyzZ8tqdI6zi+IP1fMVvP+lOW668hXUHIFmyVHLLZgKo
N3WaTduuy2DJoEYE5n3/hezYul4eKwXXVjCnAe0LjaROm1Fnu3jhtORU5+RMnHE/f+6kTnpH/Ubw
+zAEHYa7d25phbxRyy56JaL271aQKFGjSpU3G+nOLNx4bAV1p0733MXHNhz7ZSrWcgziMQmQAAmQ
AAlEKAJUyH18OaA0PFVuEp8P6aJLvqQmwyFswsgeejJeilTp1CTOE9ZaY8SIqfcdFSRrAic7UD4w
YTBh4kApXKyCkxQROyhBQOIQDYTryaNHD5QrykhJpM7LlURVLJ88fhwiOk7ceAJXHkNOqtVFnEm8
eAGCMpyKi/kATtM6CYSF3ZNSC4t43Xfel19//kZN9lyhFfLMyjUGxxghCCs3JCjjGGnIrSadYqWX
sUO7yZCxPzk5C++D4idIpN2wMLLhSpxxDwp67rZTqnxNzcRZXviHj/hivu7Ubly/VDD3IIPqjDZv
+9z338hzWq10g0mxzuTQgV1yXlnjM7yRQzKqPwoJkAAJkAAJRDQCLjSTiNbMiNUerB1+RH2M5I6a
kAYXAOxfPH9KN/LTUbP0pE9M/MRfrnxFpIhyTcHKGBBY+I4e2isr1LA8fJnnzBivrcAFCpsfTsdK
I/26N5Fp4/vrMl+F/ypUbaDdVL76YpDusOCDL5ikB5cGW8mTv5ieyAnmUGCxDjUkn1ohBNcA6bEE
H1YkiSjy59rfZNbXI/V5YRIjlr089O9OKaVWToE0adlVrzuOiaRYcQUTGbG0o/GRnRvXLuuP31y5
dF6eWZ7pfVf+0p7OGQr/e50GypoVP+s2GOnPnT6my8VHdvAHdxJvBB0RY3Ku2XyYKIoJpuiMwDcc
1xLXbv5PU6xFrFkxX4dhUmyW7HnV5NiYIaz76OCeOXXEZWcILOGys/zXH6zlcocESIAESIAEIhIB
WshDcTXGDusmULIMwQTNshVry8hJC4wgl1song2bbZLBfVvLs6dPJU6ceNJ70BTXVlsnJRnL5Rlb
J0kibBDa7KzdsOAOGTdbRg3qoJVRWLGhPHbt87nduVSu8Y6aMPm3dGhZWSuuY6f9JiXUxFi4SsBC
2r19Lb0SSYVqDbTC6awuuwJfHKhW2bXLVTud5VUZdbAry3vMWLHl5x+n6ImdSIgVTRqqVVZq1Gmu
88F/e/KM1Xo9eqxDDsEowbQXox9LF82SSWqyoyHvqvsNy2mu3nbNCPK4teVQ7a0m8t2UoWry5ADp
8oLvKDVZ1lYw8vLF9N+tQa7OzUjQol0febt6Ts0cyyuaEZSJuQSffdxa2jcvr/ljNKl85brWSadQ
8vt/1ET9PqIJRpOg+BvuXkYdc5UbDjpkrjq1t24+5xSYLIWRhVsSIAESIAESiFAEoqiVF0J8RnLr
wedWxwjV0lesMfhq4yVlDU2ZOr1WNF6x03up08GXLOH2kzxlWm0196awq1cuSALlQoG1vCOS4GeG
yZu47qnTZnLZNIyawM88Rar0Xp+7y0L9FAELP1yvMErkrWDk4NqVSwLXJbj12ApGoa5eviCplK+6
4eJlxCPurXLpZfTkX9Q66OWMYOsW3LG8ZtRo0WThqiO6A2xEFs3+fJ1345hbEiABEiABEggvAlTI
w4s86yWBlySA5QbrVHQ+kRFFp1MuIdN/3vqStZjPDjcjfPQI1nt/yTP10S1wcJzkadQP97JeHesr
i3t7qd2wrRGst1TI7XDwgARIgARIIBwJUCEPR/ismgRehsDTp09k+6Y1LouApTlfwZIu41/3CCrk
r/sdwPMnARIggYhDgAp5xLkW4d4SKijhfgnYABIgARIgARIggdeQQNTX8Jxf21OGP+1q9ZVMfG7e
m2UWX1tgPHESIAESIAESIAES8AMBrrISxpDh4+psxQ6Enzl1VGKqZdyw6oY/xKKWzMP605g4mDNP
Ifl27ma7lUX80QbWQQIkQAIkQAIkQAIkYE+AFnJ7HqaOTqiPzgzt956UD04oPTvUdZln47olUiJX
TL0Gsm0irENdpVgyeadGTqlbKbNe7s42Pqz2sXTcso3npO+Qr/TSgVjNhEICJEACJEACJEACJBC+
BGgh95L/TfWJ86a18kkRtR5y8lRp5bFaWcKZIN2Ige31ihMWZQ03BJ+G7/9RU8Gnyt9u3kkSJ02m
Phhz0oj2yzZfcCldz62b1yVFynR+qZOVkAAJkAAJkAAJkAAJOCdAhdw5F5eh+FgNvsCZNn0W6dG+
tjxRK104k9HqQyulK7wlp08etoue+/1EKVCotAwYMV1/mRBWa3we3BvZtGG5TBrdW7LkyB+qNZ+j
RXs+MPJErRlNIQESIAESIAESIAESCF8CdFnxkn9M9QlvKONWCfldJfl96RzZs3OzdOwxwprM2Dl1
/KBeM1l/3bNAgPTp1ED+2faHEW1qe+f2TTl+9F/B585DI6nSZNRfgly/apH10/OhKYd5SIAESIAE
SIAESIAEXp4AFfKXZ2hXwtXL52XMZ52l14BJEi9+gF0cDm5cuyLrVy+S6rWayndzN+kvCA7q3UKc
fDA1RF4jIHvOYK3s4/ProRFY5fsN/UYWzftKqpdMJbO+HhmaYpiHBEiABEiABEiABEjABwTosuID
iLZFTBzVSwKDUupPt2/btFpu37qhv14IK3hwkbISkCiJjmvSqrvO1qLdx9KiXiHZqyzqeYNL2Bbl
cj99pmyCv5eRbyYPVl9yzCrvd/5UsmbP9zJFMS8JkAAJkAAJkAAJkMBLEKBC/hLwnGWNEjWqPH3y
RD4f0kVHX7pwRhA2YWQPmblgu6RIlU5N4jxhzRojRky978264BcvnJZ9u7ZIwsSBUrhYBWtZZndg
xT+4/x8Z99USKaomp1JIgARIgARIgARIgATCjwAV8lCwv3DupNy9c0vu3Lkpz54+lSMHd0uCgERK
2U4fYpJlh5aVJH78hDJy0gJdU5U3G0m/7k1kxeIf1UotlWTOjPESmCylFChcxnRLdu/4Swb2bC65
8xWVwnO8V8jv3bur60oSmMJ0nUxIAiRAAiRAAiRAAiQQNgSokIeC69hh3eTPtb9Zc+oJmhVrW5Vu
a4STnQpVG0jDZptkcN/WWpmPEyee9B40RaIqK7pZwYeGIMbWbD4j3ZGDu3R9yZRrDYUESIAESIAE
SIAESCB8CURRkwktjk3YevCpYxCPfUzg4YP7cuniWfWVzvRiuK34uIoQxT179lQaVssh584cl1Ll
a8qYKYvs0hTNHs3umAckQAIkQAIkQAIkQAJhT4AKedgzjlA17FW+54kSJ7VfuvFFC6mQR6hLxcaQ
AAmQAAmQAAm8JgTosvKaXGjjNPPkL2bscksCJEACJEACJEACJBABCDi1kEeAdrEJJEACJEACJEAC
JEACJPBaEDA/k/C1wMGTJAESIAESIAESIAESIAH/EqBC7l/erI0ESIAESIAESIAESIAE7AhQIbfD
wQMSIAESIAESIAESIAES8C8BKuT+5c3aSIAESIAESIAESIAESMCOABVyOxyR42DZsmWSO3duadas
WeRoMFtJAiRAAiRAAiRAAiTgkgCXPXSJJuJG3Lx5U/bv3y8JEiSIuI1ky0iABEiABEiABEiABEwR
oEJuClPEShQcHCyjRo2S1KlTR6yGsTUkQAIkQAIkQAIkQAJeE+A65F4jYwYSIAESIAESIAESIAES
8B0BWsh9x9JvJZ0+fVo2b94sgYGBUrFiRb/Vy4pIgARIgARIgARIgAR8T4CTOn3PNMxL3LhxozRq
1Ej69esX5nWxAhIgARIgARIgARIggbAlQIU8bPmGSelRokTR5RrbMKmEhZIACZAACZAACZAACfiF
AH3I/YKZlZAACZAACZAACZAACZCAcwK0kDvnwlASIAESIAESIAESIAES8AsBKuR+wcxKSIAESIAE
SIAESIAESMA5ASrkzrkwlARIgARIgARIgARIgAT8QoAKuV8wsxISIIGXJXD8+HG5dOnSyxbj0/wH
Dx6UGzdu+LRMFkYCJEACJPD6EeCkztfvmvvkjL/++mspVqyY5MmTx2V5S5culYcPH0q9evVcpvFV
xJkzZ2TatGm6uOjRo8ugQYPsivYUb5c4HA/McA3H5r1U1VeuXJGFCxfK9evXpV27dpIkSRK78nbv
3i2///67JE2aVFq3bm0Xd+vWLUmfPr3MmzdPqlSpYhfniwMz3I8dO6br7927t0SN+tyW0bx5c8Fq
R7NmzfJFM1gGCZAACZDAa0qAFvLX9MK/7Gl/8sknsmnTJrfFQHnyl6Ly5MkTOXv2rPz5558yfPjw
EO3yFB8iQzgFmOEaTk17qWr37NkjadKkkalTp8off/wh9+/ftytv8ODBUrx4cVmyZIls377dLg4H
kyZNktSpU4eJMo7yzXCHNbxv377y9OlTZNHStWtXmT17tsB6TyEBEiABEiCB0BLglzpDS+41z7du
3TpJmTJlhKGQMWNGmTFjhsyZM0e2bNkSol2e4kNkCKeAiMbVVxjQOcNoyt9//+20yB9//FGPavTq
1StEPJT38ePHy9ChQ0PE+SogtNwLFiwoRYsWldGjR8uXX37pq+awHBIgARIggdeMAC3kkfCCL1u2
THLnzi3NmjXzqvU9evSQVq1a2eUZMmSInUvJypUrpUCBAhI/fnzJnj27fPfdd3bpP/jgAx2Puteu
XWsXd+DAASldurQkSJBASpYsKSdPnrSL93QAxQsWyMyZM0ucOHEkV65c2oUB+R49eiR169bVnYC4
cePqOLgZ+EuqVq2q3SzAPWHChLotV69etVa/YcMGqV27tiROnFi7XDRs2NAahx1354Z4d1wR70ng
ClKoUCF93dBRgsXXEHdth2U3b968curUKSO5VKhQQX7++WfrsbsdWIsHDBggGTJkkICAAClXrpzs
3bvXmmXy5Mn6WsHCfejQIb2P63rixAmdplatWjrsyJEjWulGHK6zrezatUvAGu2ylbC+n3HN3n//
fQkMDJRMmTLpzp5t/cZ+xYoVZdWqVcYhtyRAAiRAAiTgPQELJdIRUNZEi7rSFuXD7VXbFyxYYIkW
LZrlwoULOt/jx48tyZMntyilXB8rP2tL7NixLUohsijXD0vHjh11Pdg3RClwFuXra0mUKJFFuR8Y
wXqrFD+LshhalHJiUQqhzquUVLs07g6U8mNRCq1l5MiRFqXcW5S124JzhShfdEvPnj0tyvptOXz4
sEW5pejy169fb1ekch+wxIwZ0y7M9sBTvG1a231lYddslIJpUcqvJW3atBZlzdVJnj17ZkmXLp2l
SZMmFqVYWvbt22cZN26cbXaLu3NDQndc7QpycgDeuB+U37Xmo1yJNH8jqbu2o63IC6aGBAUFWaZM
mWIcut0infLZt4wYMUJfd9yTytdbXy9kvHbtmkW5elhUB8VSqlQpvY9j3HsQpZjrMNUBtCgLuN5H
mK2ouQH6miq3I9tgS1jfz99++61FdTIsquOn70X8VsBKdQ7t2oF7VPmRW+7evWsXzgMSIAESIAES
MEtAzCZkuohDAMrqqFGjrMqq2ZZBqVXWPsuYMWN0FuWva1GT0yynT5/Wx2rIXSscylqqj6EAKWu3
pXPnziGqSJYsmZ1Cfu/ePa2wQuE1RPn8Wswq5GgbOgtdunQxsjvdoq1Q1L/55hutpH3xxRd26Twp
3J7i7QqzOYBSW61aNWuIsuRblGVZHxsKeYMGDSxq4p81jbFj9tyQ3pGrUYa7rZo0awFrtMOZuGv7
yyrk5cuXtxQpUsRaLe4pKK22nThEtm3b1lK9enVrOscdNepgUaMxjsH6uE+fPlrJd4wMy/sZdYEr
/gzp1q2bU4VcjY7o8P379xtJuSUBEiABEiABrwjQZUVpD5FN4EqirMWiLLJeNV1ZjnWemTNn6nzY
YrhdWXv18blz5/TKF8raq4+VgqzdGRDuSXbs2CEPHjzQ6Y20+fPnN3Y9bpWirSfLweXBmSiLquTL
l08KFy6sJ9FhQilWU4Fbgb8E9RsCf2hMVLx9+7ZeZQOTFZWVWd544w09+RA+z4Z4OjcjXWi3yqIs
ZcuW1e1wVYartrtKbzYc9wZcnAwx9s3cM0YeT1swPX/+vGBirq2E5f2Mev766y+7VYRsGdq2A+4+
WHUFbjsUEiABEiABEggNASrkoaEWznmg4M2dO1fWrFnjdUtatmypfXwxiW3x4sWCY0OUq4Jeks5Y
61l17QQrSyDck8APGQoylFJDkNespEqVSiuU27Ztc5rlhx9+0H7O8ENetGiRngD433//YYTHLr1y
udGKvbKe2oUbB57ijXTOtqjbEPg8w68YftMQZf0VLNsHxbFRo0airKnWlTc8nZtRZmi3WH3EFTej
TFdthz8+xFhLG77atr7xRn5XW+XGIZg7YIixb+aeMfJ42qLzgw4ZOh6OElb3M+rBhE1cZ0NsGRph
2CIc94LB0jaO+yRAAiRAAiRghgAVcjOUIliajRs3aqWvX79+XrcMFkxY+mBdh3JqO4GuUqVKAqs4
JnpevHhRxo4dK8oHWDApEALlF4quoexCScI+tpjoWKJECb2sHSZzTp8+XbBus1mBMoNJkVgmUfkG
60mcO3futE7qhLKPumB5xZritpMWbeuAhR3WyokTJ2rlWPn12kaLp3i7xA4Hyl9dMOkVlnF0iGrU
qKFTYGQAE0yxvrZyOZFs2bLpNhicPJ2bO64OTXB62LhxYzl69Ki+bljrGwq1cumxS+uq7cqdRVv0
wR3XXPmCi3J9scvr7gD3BjoD8+fP1x2mCRMm6EmtmGDqK8H9CgXf2cTJsLqf0XZ0slavXi1ghxEg
nKMzwdrpYbE2urO6GEYCJEACJPCKElDKACWSEfjpp5+0z6patzlULVfuFDq/+jhLiPzwI8fETnW7
a/9ytZKFNQ0mCyLc8c/wrVbrS1vUx150PLZKkbLUqVPHmt/TzuXLl7XPOSbIwbc9VqxYVj95pfRq
H2T4mSMOvunwm8YEUEfBJMAsWbLodgwbNswx2uIpPkQGFQA/bExYxIRRnL9aCUZP4ERa+M+rNbZ1
eIwYMfSET8d2uTs3T1ydtccxDJNc1co0ug1on7LSW5O4azsSqRVQrNcNXDFh1+ykTpx7/fr1rfVi
jsLy5cutdRs78CF/8803jcMQW9SpOnEhwo0AzHvANVWruhhB1m1Y3c+YkKpWC9LnhnuuTJkyet92
Uqdya9H3BOY2UEiABEiABEggtAT4pU6lvVDsCWCJQVi58SEXb4fh4eeLvPCnhVU7NAKrNj7yA9/2
ePHi2RUB6y8s4I5febRLFAYHcEn48MMPpUOHDqJWqRFYlvGFRltBOHzakdaVuDs3V3nMhmMJQrh1
YNlJuJIYYqbtcP+5c+eOXT4jv5ntzZs39WgKuOD6+FrQPpT91Vdf6ZEUb8p/mfsZ9WBEBq5JGAVy
FDWRV4+KcA1yRzI8JgESIAES8IYAFXJvaDHtK0cAvtPoPLiSrFmz6i9HGkot1r72p7z11luCNc5d
CT6ClCNHDlfROjy0bcca9PCFdyX4iI8r1yFXeV4mHB0GdPKwRn1EEXRE0GnFBFMKCZAACZAACYSW
QOhMmKGtjflIIIIRgDUZ/uCuBB9IgmA1Gqz24W8ZOHCg20mWGMXwJKFtO/yi3bFRLiSeqvZpPK5V
RBPlahPRmsT2kAAJkAAJREICzi3kbctEwlNhk1+awDeuLbEvXTYLIAESIAESIAESIAEScErA986e
TqthYEQksPPaXVlw8qpcvP8oIjaPbSIBEiABEiABEiCB14IAFfJwusz3nz6Tc/+FnyLc9++TErxo
p7TacFgO3PwvnCiwWhIgARIgARIgARIgAfqQh8M9AGX4871n5dEzi2RLGEd+q5JLsgT4d6La/BNX
pckbQTKzTFaJHtV+tZBwQMIqSYAESIAESIAESOC1JUALuZ8v/a+nrsmI3Wfkh3LZ5e/aBeSxUsob
rTX/RUtfNffmoydSNFkCKuO+AspySIAESIAESIAESCCUBKiQhxJcaLPNPHJJiihFuGHGQIkdLaqc
uvtQ/lG+3Ptu3DNd5LIz1yX3wh3SbP3/P+VuOvOLhLDOR6Nh3FtsTE8CJEACJEACJEACPidAhdzn
SN0XeEIp4LkSx5UnSiFuseGQtM76/AMuJ+48dJ/RJhbW7f03/pNjd+7bhJrfXXXuptxSZeROYv/R
HfMlMCUJkAAJkAAJkAAJkICvCNCH3FckTZZz/eFjSRAjugxTbivR1ZcehxTMIF8fuigINyvBSePL
qCIZJXVc7z5G8ufFW9Lsj0NyWnUKBhRIJ2VShPzyoNk2MB0JkAAJkAAJkAAJkIBvCFAh9w1H06Uk
jRVD/lCK8fHb92Wb8iHHaisQhJuV7IniCv68leDA+LKgYk6ZcuC8DFcdgvY5UkqKON4p9d7WyfQk
QAIkQAIkQAIkQALuCdBlxT0fn8dmShBbdimf8cEF0+sVVvZcf+47nlGFmxVYuOcevyJrzt80m0Wn
ixc9mhRSSvkXxd+QqMo6v+LsDa/yMzEJkAAJkAAJkAAJkIDvCVAh9z1TtyU2yxyk4wNjx1BuKk9k
1J4zUkC5oMCv3KxsvHRLGq07KP12nDSbxS4dFPOAGNHkzuOnduE8IAESIAESIAESIAES8D8Buqz4
mXnt9Emle+7U0uKPw/LUYhFYxpeqdci9kSjyfHkUY+tNXiNt4ljRtaXeOOaWBEiABEiABEiABEgg
fAhEsSgJUXXbMiGCGOBbAveePJUrDx5LhvjmXVV82YJPd56WQf+ckqA4MbRfeankASLfbPBlFSyL
BEiABEiABEiABEjABAEq5CYgvapJLvz3SM7eeyiZ1VdCYTGnQv6qXmmeFwmQAAmQAAmQQEQmQJeV
iHx1wrhtKdWyifijkAAJkAAJkAAJkAAJhB8BKuThxz7i1UxXpYh3TdgiEiAB8wTodmeeFVOSAAlE
KAJcZSVCXQ42xhcEsHrNoVuh+4qpL+pnGSQQkQgcv/NALt03/+Exf7Qd7Tmh2hVaOXjzP7mhfucU
EiABEnhVCFAhD6criQ8CnVM+3K+jnFfnPWH/OXn44qNIjgweP7PIr6eu6Y8Xbb582zHa4/EHfx2R
MXvPekwXHgnWX7gli9S5vS6CGeNYTQh/IWePP6egLrccu/1AoGQ9woETQf4DKh5zHmzFKNt2axvv
bh95HAUhRhOwb1uusW/kMY6N9Ea47Ra/873qWwNnHNqNNEZ+261tXuzffPS8cxmypY4pnR/fUvmD
F+2U3dfvOk2AieVI42/ZeuW2FP51l2Bye2hkqPqwWZctx0KTlXlIgARIIEISoMtKOFyWvn+flM+V
wgjlI1vCOPKbWvYwi5pY+brIEfWV0q5bjkvzzMklVrSQfUIoENcePpY8ieNJ+vixpHiQWgHGpECp
W3DyquyuG2wyh3+TzVdtQxvrqOUvXwcZolbzGaBW84HEiBpFKqRKJI0yJZOWWZLrsK1X7kijtQfl
5N3n1lKskT+5xBvS4kU8EqFzNeif01blraIqY3X1PNrCmmnedl2O7X8rq+WWKqkT2waF2F+rPqpV
cfle+ePNvFImRUJrfPmle3THAeG2bbcmUDvLq+aWdOq+zLVghw5WpyXF1D2Ka9ohRyqJG/35PY2v
4WI1I6PjiTx/1cwnaeLF8tj2J+rZ0HbjEZl15JJuT3L1Rd1FlXKqehLI+yp8pgrvmTeNDCmYQbcB
91S+X/6RmWWzab46UP036d8LklrNE3Hkgd9XnVX/ysZLt9VHwkTlCZLpZbJKTBy8pKCD8tvpazJa
Xbft6vpOK5XFer2NomumTSqJYh2XqQcuyEd50hjBprddc6WWYr/tkkHB6QUfW6OQAAmQQGQnQIXc
z1cQlt8R6kU9t0IO/SJ5e+0BrZDsqFPAzy0Jv+rwtdCddYIlUcyQtx++XLrvxr3/sXcecFIU2R9/
CJKRDBIlgwhKUDGhCOYzp8M71NNTT08xZ1DvzGI8/545YTjOfCbOzIlIEFREQHIGQQGRHNT5v2/t
1tA7OzPdszsbBt7js3RPV3WFX1V3/+rVq1cy59S9nI/2TEt516RF0rdJHemiZL48ynV7tJCNv/xW
HotWYmWqqZtQfaX9e7lqY4fO/EHOGjnD7RQ7oG0jRy53r1dDINGN1QXn50oQg/LotO+FAeyj+7eX
k1s3kB/V1OH1+ctdFIjt5BN7OjJ/9AdT5OH92jlyzSAuTHorCaf/sVutJ+SrdaOs0Tojc8eereK3
U/axx3SL/+akVa0qMl93y0We7t1Bemh/huBfMW6Ou/6Q7oQ7fOFKV+7792mjA89GsvHXmLyug7EK
ukMuElZ26v1v3Y333l5thLJeqtrgkz6eKvN+v7cwg8Rg/oHJS+QSJaYNdZMxNOhc+y2g9Uc7/4DO
RN2WT9pdxvn/XTJmjjBTNeOUPWXU0tVy9mczdABcXa7V/llceXz693L1F3PdwID2hKAnCrx/YOem
+i5cJAO1DpkOBHoq5r0a1pK79Xl/ZP92icnbb0PAEDAEcg6Bwowo56qQWwVGs7W3fkhOUXIx5af1
7gM+J7bRkdCoJJKP/dXj50q3ejXlhT4dcwYAdgY9UDWQXtBCsmMogsnCsR9OkbX5U9hHvj9ZKip5
uXi3pvKXTk38LaHHj5QY/XXX6PF9goe/N9kRLQjEQiVbaHKfUM0eO6oi2KVfo5h/rOkv27BZOtSu
LsMU+0518nZYhfzcotrQl+f+KIvXbXaDLciY10yitb914kKX1j7a/lFJBCRr37cmytWqDf29apYR
+M1BiuMf2zZ02GDWcJUSIPrFeiX7lB1yCsH18sf/TZfOWtYZP6+X4UpC0VYPPbCjHNqsjo+S9Agu
kJ8zlFT6uiaNmOYi+mJmgPjr2aCWPD9rmYxU0539VNvLAGxwt5aKZ94M0VEt6hVICUyp99kd8jTq
9Jer8jWq1IEdbitXzCO5Tmsdccdb7v2d5vVfxeL2fAJO20J2j9+lQbwMlD3dLroQ6z10QMHfMCXQ
Y/IHFNSL2Z8LtO/6WSAIqJewsj836wc5RNvxMt1EDLlPiXkv7QeUEdlZNeZ11FUpA9B79m7triX+
N3HFWjcI6tt06wwAcegjr2g/pd60yatz8wY4QzXPbBBycP2jDrao4xPTlyYWK/6bmQ5myqboAJzd
ijMV7n9x9g+Z3mbxDQFDwBAolwgUthcol8Xcdgo1V8keH3impM8cOT1ONOauKWgbm67GEDDI/Ow1
ubVwEXOE53RaHGICWQADLy1Uq/m6TsnfoOQMGXZwJ/cbrWhUYZEXNsaYAWUqmNE8p9rbv6rJwbM6
7f/l8rVuyt2nc9vEBU6b+rLObEw9aU+322pFJRxe0GCi1TyvYxPV/neXG7u3dGTIh6O1H6p1p2zk
FVXQHLbXe0jby/++XyWfLf1ZDtY0kdNGTJNPleD+n2pmX+23qw7yNsoNX85zYf6/OdpXblLTkfU6
cHhO6/fgPm0l37LCR0l6hAhPWL5Gurz+lSOED6uJAYOTospY1UBDCHG3if97tONgd7MS72+UxAYF
swq0uF6DHQzLxjkmJvRD/PEj/9UBDWZSbXfaagKxTssKvsG/RJtrevEE7S/Yih+sJBE5oVUDZ6rS
V81inpmxLOP1IrShH6SQnj/nOsIY5CbtYw9PXRIvvwsI/PftyvVO88xuwEFZsn6T06ajAKDMmNYw
4JpXjEWWwfRb6CCllg6ctj7dwdCt5wwGeIS+1XdZUYRnaY4O5Itqh16UPO0eQ8AQMARKCgHTkJcU
sinSXakko9aOleR2/QhWUg0wNqBokbgeVXqoNmmIasWwDc0l4ePbVQnYyiSLyCCefGAX5JsCQEAg
8JnI3HyygtayKNKnSe24dn2C2r6+owTtrr1au6Q8udishLap4o4Zghe02E9NXyYX6UADTTaSqE1m
4yX+0LhjupGJnKX21MwYYCaBOQZmH/vpzqpghAcNzC4GaHmYgeBvL9VCv6CaQ8wdIEZe2JWVAYU2
Q2RBO80fXjFeUg0wNs2Xq2kGWlDIf5S0mPU4VIkpCwjRHNN/wQp589DOcpvOHNw3ebEbMDDIuLdX
a6cxXbo+D6e6SUybIlcgTcQjmtd12uv3F//kbJzRlp+Vr4n3t1XSfpnYljvusFWPcbKakSCYuzB4
HJRv8kFfxgzndq3bebrIGJywm0fTjRlMmDDoCfb/mvnPQtCzyKmtG+qsywL3Lkk2K8TzwMCHmaag
+AEVmvsz1XxokA6C61TWwbJqyBkseRv44D0lcU7+DatWLrK3FYg/zyXPBbM/JoaAIWAI5DICRshL
ufXqV9lRPlXt5hzVkn5xXHfB1AHhelSBICSShKj3bsvx/OIuSD1mQZkKZgdeGDgwaIJoYSaB6QAa
xD7DJzn759OUpN6jxJF2W6DEB08ZEPqSkEN1gSKDAEw9KAfmLxA7xLuOg6jhwcXLyaqhRZMbJORH
KgEtSM187PBjg6qVtM9Vk121732tWuXpavoSVaoogT1V8YJUglFwM6pWNas606DH1TwIO+yLx8yW
a8fPc2SWOiNoyktCIMaYhfx34U/CugZmVxIX21ZRQo4mOpXcqmYfndR86UG11R6x5GenefZxMVfi
b632IUwrLtK60S/P6bizj5LySL/iPi8MtJB67j2RN8PCAPdv3XeRAZ9Ol6MTTH2I21Y148wwMBPF
wMKLf9dg9lZNp0kwAbp38iKppgS5tMg4Zdmo774fN+aZd/myZXKEiFMt+pCJIWAIGAK5jsBWVU+u
1yRHyg9pZJr85p67OI0wGkMkcVo5XXUgnGgrvT1purjbUxiL9NCaFdUHefC+merHnLbyNu6ki0nN
6jP2kxfU5ANb8SdVK440rV7FEd0vVKteEgLpOEO1q5jUvDZvhfyqBMvbk/tZkmNa1nNeMvCU4f8S
ZwrqZjDo8/XAC8pAJZJNh40T7NB3Uk3qaF3kyGLKrRTPx05+xJb4XCWhp6nNe5CMB2OTFjbB1PMT
NclhgMOMAriXZD+HgH+45Cd5Z8FK5zkF7X0mAhnHDv9famLF4CeZKz6IP+sgGPChhY8irXQmZKp6
TvGCy0ck8T1xkmrlO6k2Hk15ojCoxCbezxz58KY1KruZAWy3MaOif2G6kpg2Ay8Gf8Fy+DSycZyh
z5gWz5kJFSU9ntc2taqV6iCiKOW0ewwBQ8AQiIKAEfIoKGUxDqYFCKYLTB0PmbTQTc+nWziWmP2o
ZT9Lf7VrHZxgJ5wYr7z9hmThAm6zepxAOOePj3K2BI3kh2qCUBRBw/y+EiYGSS8p4Q4uMHxFF77h
Wo5p9j3q11Db3B20HnmzG2gVj1NihzkHBAYTFsjMB4FycI26oq30OPA7qmDugO35Nbp480TVfvuB
AotL0e5i9jRSZ15Im3L+U22LsyHnfDZTF6luksfVy8mS03rJP9T2nEWe2RBmH/C4gms87IDH/rDG
zQJg7uHNLK7v1kK9k6yQR9R2nfizFANPPiGbE1esc/7JKQ8Lg/kd1CyHlfPYlvXdTAKLI4/T80T5
RfEkzeBfMo09ZPzvOsh+WQfKX2nbv6Vu//CmxAwGaz7wmPKV2pl7TXZY2XlPjNCBCQQeEyf8bjNj
cHDCLAwDGVz/4b4wURgAYKb04eK8haA+HE34ia3qS20dwIIzA8k31PuTfzf5eGB+8sffaZtktnCS
x5lnCJKP4IOd9QHgEBSeUwaUmbz7gvfzfB0Wsig5GN/ODQFDwBAozwiYyUoptw7E7XI1Ozjz0xmO
PKGVelf9kGciFfJ1k/6Yyb1lGffKcXOdGzZfBrSuyFPqOs570Ugwd/VRIx8hcB1fneBIUcbaTjXJ
wNML5JkFh5eohxcvkIf+I75zBAYyDhEI+k/G5OJc9Q99ihIY6oCd8dO92/vbpc1LXxRY2Ff12c9d
GBr3oFlJ/IaEE+zFsRsfrcQraOeMdhO78D8pscXzCgRtBy0AhOvCgFcP+gphmcq4Y7uVmAaShYm4
uNxbvYcg4IB5jl/Yy7XzVbOMuQbmFX8dPYtLzovM4G55RK/7f75y1/jPa6ffUz/hh6t5ThSBsO6n
PsQhtCcoZomCTXUwD8If08HJATvn+cYP9le83uAV5oYv57u+85AOiq5Tl40IZhUDtT+d0T5vQA5J
DaabWHY06iwUPfqDyW7AyszC6/06O9MT8vTuE0kbLT99nYFAsJWrKvG+Ws1RHlD7fHCkr3h5oFdb
OUb7On7cuYymnfdSULyteRP16JKJMNjAJ7qXv+liYv5YqI0PeoSB6YOKD15dmEHJVHgOmGlkHYOJ
IWAIGALbAgIVYiqFKnLOgYUu2YXsIoBGkEVuZv+YXVxJDZ/KaOEzcQkJMWFhHCQWrxsMlBJpAhra
JUqk2ihZT+U3Ge0stsh4jQkuyst+LQuniAZyqZYdU5UoCwcLp1A2V7B1X6qLRjERSkXOlL/pAtYN
DtNUZi9lU/rUufJipT1YJ+LXN6SOnTyEwQga8kRzkuSxC19lQNH65S/cDAfKgETBxhziXk/Ng4JC
2Ru/ONYNLtkTINt9GZM7/LbP1rS9W8hg/mHnaO7xv17IfeiTI8NutXBDwBAwBMolAkbIy2WzWKGK
gwCmICwYY0o+qnhCfmURdg2MmkeyeMfohjaYmqSSsaqhZiGlSWYIPK2uBi9Ls7X61bu3UO8ixd8E
J7NSlU1sSD2LOjFViSqYm+yuWm4WD3tf6FHvjRKPQQpa8iizQ8nSY/BZXRcJFxoYGyFPBpddMwQM
gRxAIDpjyYHKWBENARBA45ap1o0FhW1V813acpPa/6Zzg5i4MLO0y5er+WFSxG64qQQf2NuLFIX0
Opeaqr1mUW1JiBschHt/TJl1sl1+U0a2AEPAEDAEcgCB5BryHCi4FdEQMAQMAUPAEDAEDAFDwBDY
FhAwDfm20Io5WIclS5bI119/LQ0aNJBevXrlYA2syIaAIWAIGAKGgCFgCGQHgehGhdnJz1IxBGTs
2LHSunVrOe644+TVV181RAwBQ8AQMAQMAUPAENiuETAN+Xbd/GVT+bfffluqV68u8+bNk9q1S2Z3
y7KpmeVqCBgChoAhYAgYAoZA5giYhjxzzOyOYiKwatUq6dKli5HxYuJotxsChoAhYAgYAobAtoGA
EfIcbMfhw4c7QjtgwIAcLL3u0Llpk1SsWAwXCzlZayu0IWAIGAKGgCFgCBgCyREwQp4cl3J9FQ3z
lClTZPbs2eW6nMkKt3LlShkxYoQbUCQLt2uGgCFgCBgChoAhYAhsbwiYDXkOtniPHj1kyJAh0qxZ
wa2uy3tVKDeeVQ499FAZPHhweS+ulc8QMAQMAUPAEDAEDIFSQcD8kJcKzJYJCMyYMUM+/PBDufLK
K+X++++X888/34AxBAwBQ8AQMAQMAUNgu0fACHkOdoEFCxbImDFjnA/vfv365VwNTjzxRGdH/u67
7+Zc2a3AhoAhYAgYAoaAIWAIZBsBsyHPNqKlkN6oUaOkf//+OWv20aRJE1mzZk0pIGVZGAKGgCFg
CBgChoAhUP4RMEJe/tuoUAkrVKjgrvljoQjl/ELdunVl6tSpsnnz5nJeUiueIWAIGAKGgCFgCBgC
JY+AmayUPMaWQwICEyZMkD59+shvv/0ml19+udx6660JMeynIWAIGAKGgCFgCBgC2w8CRsi3n7Yu
VzVdu3atzJkzR6pVqybt27cvV2WzwhgChoAhYAgYAoaAIVCaCBghL020LS9DwBAwBAwBQ8AQMAQM
AUMgAYHkfsjPOTAhmv00BAwBQ8AQ2CYQeHLkNlENq4QhYAgYAtsSAraoc1tqTauLIWAIGAKGgCFg
CBgChkDOIWCEvIyabMOvv8ni9eZlpIzgt2wNAUPAEDAEDAFDwBAoNwgYIS+Dprh+wjyp89xoaT5s
nHR6dYLMXL2hDEphWSYiMOaH1XLmp9MTL5fK75jm8sf/TZcvl68tlfwsE0PAEDAEDAFDwBAoPwgY
IS/ltnhz/gq585uF8kKfTjLhuO6y5beY9P9kWimXwrJLhsD8tZvk33N+TBZU4td+i8XkX7N/0FmT
TSWel2VgCBgChoAhYAgYAuULgeSLOstXGbep0gyduUz2blhLTmndQKb8tF4ggXNiG2XyT+ukS90a
keo6fOFKuXr8XOlWr6YS+46R7rFIIvdNXiwvK+H+ZuU6aVRtRxm0R0s5r9POTit9hmrGV23+RTbr
AGm31750cB2/S325bc9WcejQYHeuU11m/Lxehi/6SXbcoYIMPbCjtN2pqhz/4VR5+7DdZJeaVVz8
vsO/lQt2beLamQuYKN3y9QJ5ee6PsnjdZmlTq6rcv08bOaxZXTnw3UmyfOMWd99Fo2fLdePnSdWK
O8iXx3d318L+o16PTfteFmhfalh1RzmieV25t1cbqbVjxfitqcr++rzlru99q32xd+OdXP2nrlov
9+n99NEokgrX9b/8Jnu9+bXU1HLM+HmDnNG+kbwxb4W00ro/e2AHhwHpU4bbdZA6bdUGV+azOzQu
gHu68HS4Rin787N+kOdnLZOTWjWQ+xXHRdo252u73bN3a2HWAlwfnLJEn9ON0rF2dcW1tRzcpI5L
euWmX+QafQ4/XrJKlm3YLB00fJg+j520j0SRZRu2SN/hk+T6bi3k8WlLZcLyNS6NUUfvLtUrVUyb
N+mnwt3nbe8Jj4QdDQFDwBAo/wgYIS/lNpqrpKlH/RryixK/M0dOF8jHE9OXytw1myITcogjZD5I
uEq5GjmX3dgf1sgV4+bI0707yCHN6sjs1Rtl9ZZfXD06160urx/SWd5ZsEKuU3MizpHalbcSWn7P
WbNBXlJCf0Kr+vLcQR1l3ZZfpZLOMW1Q4vmtDqg260ZHXqasWhcn2Vy7dOxseWXucrl29xZybMt6
blDgSfgzWqZNei8DgWt2b67lqyvK9SNLJd259Z6922j/qS7fKZn+08gZUlkJ/UP7to2nkars85Ro
VtLMnurdXk7++Du5do8Wske9GnKzDh6iEPJ0uKL1h9zfoYOaOWs2ykNTl8j7R3SVq76YKy8oEb6x
e0v5SMnsSZovz8E/92sn3POuDji9hIWnw9Wnke5IG3y4GEK9Ra7o2lw61a4mU7TMyDMzlsmFo2fJ
XXvlkXCe0/4jpsnC/r2ksmJ228QF8p4OzN7Q/sJAaOTSn6ViBg23RdscfBiEMXi7XXEarWZTUfJO
h7tLQP+z94RHwo6GgCFgCJR/BIyQl3Ibrdy0RYl0JacRhEjd2rOVI+Rcjyo96teUIarBa1a9ctRb
LF4+ApBmBjJ9mtSOY1JNyWtHJWJf16gi8GDOUwma9Zf77uri+TgMjtIJWvenpi+Tizo3lauVcCNB
LSoa9l+ViCItVMOeLn8XKeG/i3drKmt1cPD5stWOWLbbqZp8q7MAiZKs7EMmLZL9Gu0kx7Ss76If
qdr1NZrWMzqTk4kkw9Xff2SLek4L/6YOeA5pWscRfjTKyCPffe/68ZM6KPFjkH21PF7ShYfh6tOI
cmTw0nvnvD7hj//UAQRYNqpW2ZW/Z4Oa8tSMpfKf+cvl1NYNnQadtDfr7EdTfRZPb9coSlaF4nAf
ZBzZX2cpkLC8XST9Lx3u9p7wKNnREDAEDIHyj4AR8lJuo/pVdpRPVZM2RxdyfqE25Ey5I1yPKpC5
IKGLet/2HG+fRrVkcLeWMmjCfLng81myj5K+u3VQ4wlQVGwgrJ44Rr1ngWqhIdzBQUDUe6PEGzhm
tmAK1V0HapD7n3UGpTqq+wRJVfYqOiBB44twvunXmP5t1fYnJFPgZxRcSbvyDjtIFf1D+L0xP/25
qjk/SE1AUmGaLjxbuNapXEn7wdYBmq/gXG03iPYI1eJ7GdC2kZoq5dXjsi7NZJ6Wv4+aneygg+vT
2jSUe9SkJZNnmXR/pwOWRAnLOwru9p5IRNV+GwKGgCFQfhEwQl7KbYPt8GtqM/uA2g+jCX17Qd70
fGu9HlWwFcYjSAOdJu+nGkeTaAjc0nMX4W+CejIZOGaWXKJmJCys9QInhYaqQjulyUjdJAMnT35/
UptiBDMIb47C76bV8zTvX/y4RrBLTyYVlJJCSlnkm4lMU5MHTEFeUa39yfk23/u+PTFpOsnKnkle
qeKG4ZrqPq4zywMuqSRdeBRcU6UbvL6Tmiblj0eCl6W5tltDnRF5Ru3dk0kLnVHBvInBxTv6HGOC
BgnG7CgTqVul8Gs4LG/SD8P9R+2HmNHUVHv0w3UgaWIIGAKGgCFQfhEorEYrv2XdJko2IH9aGzLN
orAhkxY6zeZuav8bVUYt+9nZsg7+cl7UW7b7eJBwbIUxc2ivWuRGVSsX0mTu03AnZ9v/rGqbIddR
tcQMpiCOz6ld9FI1xbhTzUCCvBrCfpwS8ec0XQZjlOHrFWvlg8U/xdsFQshiX+zMF63b5MxG4oFp
ThqrOQUmNyw6xGwFkwrsi0tLouCariyntW0os3S26Fa1x4ZAMpB5Um21vaQLj4KrT6coxz9o2UYp
ocXeHWxXqFkZduQMiBHaigERswp76LoQZgEwX8mGhOUdBfeJK9a5dQEX6uDTxBAwBAwBQ6B8I1BY
NVO+y5vzpYOYXa5T3Wd+OsOZMUDm3lXvHJlIni5V8nWqmdy5/cZdrCQXTyNoM9W6wA2CHtZFhEFp
qfbbmCGwUPDPn82QP7VvXEA76rXYwXv8+XW6GPLGr+Y721/aGDOIoDx+QHs5d9RMOUUXMJI/Zg9P
60LKoOBt49Kxc6Tlv79wXjbWnrlfMDjpOdrVv/XYRW5TLyUslsQG/RhdNPp9wqZT6cqOZr6okg5X
6hkUr4Xm+g75Rip/UBMQCC6LSG/4cr6L3l9NP87puLM7DwuPgmuwDJmcs8iTQcJZ2hfOHBlzgyxs
yrGDRz7UAVX/Ed9JRa0QZPwwXSzMPVGlQiJAgRvD8k6Hu0/Gr0vZWQdtJoaAIWAIGALlG4EKMZVC
RTznwEKX7EJ2EVj3y6/uY9+qZnRTleyWYPtLDXMQyB/eU5ihyLbg5o8FkY3VzCGVoGlFAw5xrqGm
BNkStO5L1Id5WfSnbOCKjT324ix4ToZfWHhJ4Ur7gC1lY5CVWLbV2p5LtD3bKFH3dvjZatOwvMNw
P1/XSuC2kQH/UUE79SdHZrOIlpYhYAgYAoZAFhAwQp4FEC0JQ2BbROBpdft3mc4WpJKr1YXjINXq
l0fJ5bJnC89TPvnOJcX6ggJihLwAHPbDEDAEDIHygIAR8vLQClYGQ6AcIoAmf3Ial47tVSuMV5fy
KLlc9hLH0wh5iUNsGRgChoAhkCkCyQl5pqlYfEPAEDAEDAFDwBAwBAwBQ8AQKBIC5mWlSLDZTYaA
IWAIGAKGgCFgCBgChkB2EDBCnh0cLRVDwBAwBAwBQ8AQMAQMAUOgSAgYIS8SbHaTIWAIGAKGgCFg
CBgChoAhkB0EjJBnB0dLxRAwBAwBQ8AQMAQMAUPAECgSAkbIiwRb2d40fPhw6dKliwwYMKBsC2K5
GwKGgCFgCBgChoAhYAgUG4GC2wkWOzlLoDQQWLVqlUyZMkVq1apVGtlZHoaAIWAIGAKGgCFgCBgC
JYiAEfISBLekku7Ro4cMGTJEmjVrVlJZWLqGgCFgCBgChoAhYAgYAqWEgPkhLyWgLRtDwBAwBAwB
Q8AQMAQMAUMgGQKmIU+GSjm/tmDBAhkzZow0aNBA+vXrV85La8UzBAwBQ8AQMAQMAUPAEEiHgC3q
TIdOOQ0bNWqU9O/fXwYPHlxOS2jFMgQMAUPAEDAEDAFDwBCIioAR8qhIlaN4FSpUcKXxx3JUNCuK
IWAIGAKGgCFgCBgChkCGCJgNeYaAWXRDwBAwBAwBQ8AQMAQMAUMgmwiYhjybaFpahoAhYAgYAoaA
IWAIGAKGQIYIGCHPEDCLbggYAoaAIWAIGAKGgCFgCGQTASPk2UTT0jIEDAFDwBAwBAwBQ8AQMAQy
RMAIeYaAWXRDwBAwBAwBQ8AQMAQMAUMgmwhU/JtKNhO0tAyBXEHg119/lR12yM6YlLRisViBv2Rp
b9myRd555x154403pFKlStKiRYtcgavEy/nNN9/I888/L9OnT5fu3btHyu/uu++W//73v/LJJ5+4
nWvxzR+UsPBg3EzPn3zySdm0aVOJtCF96bfffnP9CW9KqTwq/fjjjzJ79mypUqWKVK1atVAV6Jfg
STl32mmneDhpvZzKHQAAQABJREFU+/R9v02XT/zGHDoJe9bCwkuiqu+99548++yzrr/+9NNP0rlz
5wLZZLO/0i8ee+wx2X///VP2nwKZl8KPcePGufp369bN9dlSyHK7y4LnGkn1ztjuAMmhCmeHjeRQ
ha2ohgAI/Otf/5Lq1avL999/X2xA5s6d68g1BDv498EHHxRKu0ePHnLBBRfI//73P+E+kzwEbr75
Ztl3333dYGX8+PGRYVm2bJksXLhQbrvtNkc8E28MC0+Mn/gbsvrHP/5Rvvzyy8Qgue+++xyxKhSQ
hQu33nprvC9Bto844ghHZHzSa9euld/97nfSqFEj2WOPPaRevXpyyimn+GB3vOeee6R27dqO9DHw
O+SQQ+Lhe++9dzx932fPPffcePi2cBL2rIWFlwQGP//8syxatEiee+45+c9//lMoi+L212CC06ZN
k+uvv14YlJUX+eyzz+SGG26QVatWFSpSumetUOQSuHD//ffLI488UgIpl16SK1eulDp16riBWOnl
ajllDQF9CEwMge0KAf1AxTp16hRTYlyo3kq8YqpRLHQ93YXNmzfHJk+eHFPNd0wfzNjDDz/sfq9Z
s6bAbaoBduFz5swpcN1+xGIdOnSI3XXXXUWC4pdffnG4vvnmm0nvDwtPelP+xXT37rrrrjElzulu
L3KYDlBiNWvWjM2YMSM2evTo2F/+8hdXx6FDh7o0//73v8caNmwYGzlyZEzJeWzixImxBx98MJ6f
EovYjjvuGHvqqadiSgJjs2bNig0ZMiQeTh+kz3bs2DF27LHHuvMlS5bEw3P9JOxZCwsv6fqfeOKJ
sQEDBiTNJl2fS3pDiov+fcT7qbyIzgC4fjx//vxCRcpWvQslHPFCujaJmESJRuP9tn79+rR5DBo0
KNasWbPYxo0b08azwPKJAFOiJjmGwLvvvhvbbbfdYqq5y7GSl4/iDhs2LFa5cuXYggULXIGCHyyI
jyeGEHc+ElEF8gQh50MYFMiQTk3HWrZs6cIhQfx+9NFHg9HSnt97772xXr16xdQswaWjU9Hx+Mcf
f3zsiSeeiP++/fbbY3/+85/jvzl57bXXYj179ozVqFEjtvPOO8dUcxYP5yV/3XXXxdq2bevSp2zv
v/9+PHzChAmxPn36xNTkweUNWdRp0Xh4urIRKV34Mccc47DQ6dVYkyZN3Dn18RKlbmEf8rBwn1fi
sXfv3jFIN22qGmZXNtWqxqMRdvbZZ8cOOOCAmGqlYmeddVZs6dKl8fAw3OIRk5yAMXh7UZOTmM7o
xNtVp/xjqhH3wYWOTZs2TUn4gpFVux4788wzg5cinafrM7T3kUce6Yh+rVq1Yrvvvnvs008/jaf7
z3/+s0DZwalr164xNeGIx0l3ohrm2HHHHRfTWQHXl88777yYH/yGPWth4eny9WEzZ850+evsRIz6
6cxDbMWKFS6YujO45Dmlz+isQ2z16tX+1vgxHfkran+lTcivfv36sdatW7v2p+/69xvpqnY6tssu
u7hyH3TQQbFJkybFywT+55xzToy+Q3+mjMH+TB0JJ236In3wu+++c/d7XHWmKta+fXuXR3AA6DNJ
RcjDnjV/f7rjH/7wBzdAPuOMM2JquubeJzpL6W5J9yxSZt55tCV/nPPHYBeJ0l91xiN26KGHunc6
73fes1dccYW7n3fcNddck/I94SKl+M+3HcF169aN6ayqixm87i7of6odd++M//u///OX7JhjCBgh
z7EGo7gvvviiIwn77LNPDpa+bIsMyeZlC/H2AjmFcH711VfuOoT8o48+ikFW1E7YRws9piLkkCmd
PnakmQ8k+fB7+fLloWkSYcyYMa69n376aTeIGDFiRCyoDU7U1F544YWuPj7xDz/80N0PeRw7dqzT
uKJJ8QKh4WVPvfnA/vvf/3Z9jPDFixe7j9TJJ5/sygEefIz9hy6sbGHhfGDAAm0wH0bO/UeH/MPq
RpwwAhMWThrJBJIxZcoUh91DDz3kykYbe6Fsak7i2pVBMgTxH//4hwsOw82nkeqYSMghtPSdwYMH
u1tuueUWpwH/05/+FCPvDRs2xJOiXxH38ccfj19LdVJUQp6uz1x99dUuf4g+5T7qqKMcifNluPHG
G92z5X/7uqk9vL+U9njwwQfH2rVrF9N1GA57+u7FF1/s7gl71sLC02asgRB/iPaee+4Ze/nll93z
AsmlvRHa/6233ooxA0G7MIvB85goJUHImQ1hEMfgnGe4cePGrh08eWPmTs2TYnfeeWeMdwLfD8g5
mCBqFuXININ33n8M4CH4Xi6//PJY8+bNY2pSFps3b14MEuqfB2Zb6HOQdN4NzODwO3HWhZkcFBHM
6gQl7FkLxk11Tn0qVqwY4101fPjw2CuvvBLTtSWh7zAGHbx3+vXrF4M8c86fL2OU/qrma66+DD55
7iDzzFIh6d4TqerCdZQeKN4uvfRSR7bp55RLTdHcQFTNmwrcTj9kMBV8FxSIYD/KPQKV9KExyTEE
sH1U7YNbxJZjRS/z4r766quiGi7RF3a8LPrxEDUFEH2RO9tGFmOqtlZY73zCCSfE4xX1RLXxoloT
UY28S0I1aKIalIyT0w+rqAZHdPCQ0b3YReo0prAI0S/0wV4bIU39kMtFF10kSqTcNTXncUf+Y5Gl
khCXJ4sDsTfWD4zoR0dUIxSPF1a2VOGtWrVyaeiH1GEOTuVFdMYgbn+LDXaysmHHrVpDV+S+ffu6
tQFKDiPjlq6u2ImDMQs3VZMpPPe0E6LaN9eHdKDgbMt11kOUxAt24EowXBz9gLtjtv8L6zPkxzOk
JjRuISmLSVmkq+RN6PvFEdXSig5IhcWPOnvikho1apQo+RIlwxL2rIWFh5WNBdmsWdBZNrdYkvjg
7oW2p90+//xzwR5cBw7y7bff+uASPeoAwK0T8P2RBZTYRXsBI/qQamvdJSXicvTRR8sXX3whSuSE
BadqRuOed575vfbaS1544QVRrb977yibcffR/sQ//fTTfdLxI2nTZw888EDRmTrRwZb0798/Hs56
B/4SJcqzlnhPst+sqdCBUvw9RxxVNKR9h+nARfhjvQXripI958nySnaN51G1/S7IH/mR6j2RLA1/
jXf1xx9/7MqvM0jCImDS5D3DInbq6gWbfJ43+mKyxd0+nh3LNwK2qLN8t0/S0kGYrrrqKtEpuqTh
djE5AnxQVLMoqlUU1QzFI0EyVTsianogLIpRDaMcdthh7uXnCWw8chmcqOZHVDMqqtV2i/f2228/
98GPWhTVOItOTxf4SPl7GSSw6CsVyVdNn/tI6ZSvI5ssRuXjoNPSLomwsoWF+3Lk6jHoDYaPOh9N
JAy3KPVlMeepp57qCJRqYN3CUvJAqlWrJpdddpnzsKLaRUeCVBMrEFbIEsJ5SUhYnyFPBloQcaRL
ly6u77Ggr7gCDkgQd84ZhNCPS1p4lmgXP6BNzG/gwIEOf8go9WURp5qSJEYrkd8MAng2vSQSX7BL
xI24XKdeCP2XZ5w/tUN2SgrqgNDfIOm8K1AMqIlWoT7m0wcjCK5/HlwCpfCfmkoVes9l41mMUnQW
U+LRJpl4XAgLvieSxQ1eIy518oNrvmH8ThzYPvDAA+6doDNXwdvtPMcQMA15jjUYxeWDqKYAgos3
iKRJNAR0KtZ54nj77bcL3KA2d4KW/MorrxS1P3TaZFyiMfBBq5wNLXmBDIvwg4EEfxBjPvqXXHKJ
OycptO1BrwU6rVkgB7TjaMGSCeSNQQfhXuMYjKdT1O7DjEYy0aWgj5eubMQJC/fpJDuG1Y170Mai
+Vy3bl2yJELDk96UfxFs+KM/JJNUA7YouCVLL3hNF2U6jXfwWrJztIv0X2Yz1NRAfv/73ztXjGjX
1DQr2S3FuhbWZ0gcLbJOnTuSwIABIoGrO0TNkwr0VzWTctej/Oe1gvRx/+7jfrWbFmZZSlp4ltAs
M2Ph6+PzpExoSNFEM9uGQNyT9R20mGjSk0lYf052D9fUxMTN/vlwZrSCArkLYu3PwZQZQURNNlL2
GWaJXn/9dfc+YKZATZLcO9Jr3LmfshdVwp61KOl64hqMG/VZpOzJ2ipqf2UAmqr+qd4TwXImnvPM
MNvAYBOPSSjg+B7Rx/AqxcwQbceAidmhm266ybTjiSDm2O+iPz05VtFtqbg8iEwDojU1iYYALzem
8yDcrfLNJPydTNtOnTpVrr32Wkcg0HRAQHG/h9Y8THiJq21k/GOH/19+p/rghqWXGA4JV5tPZ16C
ZpqXMATEC2XEBGfevHnCtDXTxEE57bTTBFKEKz3MH5gB4MWOMEWrC+ScGzYGLExHf/311+JdNkIs
mEFQO0qnRYOMQPqY3kbCyhYW7hJJ819Y3biVjx0u/XAlhzlSomY4LDxN9u4Di4tASBbu6pjKjyJh
uEVJI10c3NnRXtQV7abaBbu2RHuJEA55wlxJFxXG298F6n+Yj9BHIc2kwTkkOoqE9RnS4Jm44447
RG2IHZnApAZzCQQtonrZcH0IEov5U1QhHTS/zzzzjKjdsjNfgRwefvjhUZMoVjzcT0L6mK3iOeF5
0DU98sMPPzjNJzMX1I1nH1MwXbORND9m4NCg8y7H9WpQu1/U/ormlGcT7TZuOjHPCwoYMfDmOmWE
xPEeUXt4p3HlqPbnovbPrjy0jS5ojCfBM8A1tN+0AYNg3hfZEshsUZ61sPyjPosMnmgT9kPgOfdt
Upz+Gla2dOH0A55rykO/Q8CdbwGDbz84pR1pk5IYfKcrn4WVAAJKVExyDAH1oe0WkOgLJMdKXnbF
ZaESC5qULKctBAuiWJSViZCmPpqF/pS0FkjGL67Uj3WB62E/1F+xW7XPgiXqoNPGbmGVv49Fonip
oAwsulKtSoyFb0FRchRTshAvow7o4sFKJpzXCP0AxPSj6BYqsnDYC4vn8MxC+oTrVHSMBaZIWNnC
wn0eeHVQkuV/xo9R6kZkFpop4YhRB/1oxe/3J2HhPl6yIwto8SxB2nhP8MLiYBaielH77gK4p8PN
35PqqIPHAl5WEuOpyVq8PWkT3gVq71sgGl4uWCzr+6bansbDWbDnr/tjomeeeOQkJ+n6DIs66Yd4
7SFtJQsxJRDxVJSsx0466SS3AE9JnfMWRbyoi5x18BBPm/vUhKvQ4sGwZy0sPF7YJCcs2PN1A3vc
zCmpdjFZGK2E3fUVvCqxSJAFoImCK8q//vWvro2pA55bglKU/qoDq5iSx/hzqnbc7lxJs0taZ5Ac
7uTHH55IdFOteLZq2hHz99DXed8EPfmwwJP64k6T50BnDmOkifhFncF6KGF0LmDjGUQ4SfWsRbjV
PQM6y5k0apRnUU13YrwXWZwNPizKRaL0VxZ10t7JJOw9keyeZNfw4sRzFxT6Ef0N7z4muY9ABaqg
nc/EENhmEaCLY8OHhk6JZE7WE40jpkrYZaYyHUFDjm28fkyT1hGND9pU7D+9LXIwIlo9tMBMTWMq
kihoUNVjiQtHa+4lrGxh4T6ddMewuqW7t6zDUuFW3HKhnaS96BPBGZNguuzahw0t7enNEoLhxT1P
1mcwYWDhJYsKyRszj2QLzdAMMxuFVrkowvOAZjBZXy5KepneQ/mZYeCZC5rL0C7MDLRKmInLNP2i
xqe/YT5Bv0gmmLcxK6KDzKQmFoRjJoGpB+YaQWG2hbq1adPGaciDYblwXpxnsbj9tSTwYdYTk0ve
68xcmeQ2AkbIc7v9rPQREICIMr2MxwMIgIkhYAiUHAKekKdat5AqZxYApiOxLGTDjMzEEDAE8hDA
9AzlCAMkk9xHYKuaK/frYjUwBJIigPYK+0gTQ8AQKHkEdIo+6eK4sJyZuXnppZdSRkvU1qaMaAGG
wHaCQKK3le2k2ttsNZNryM85cJutsFXMEDAEDAFDwBAwBDJA4MmRGUS2qIaAIVAUBMzLSlFQs3sM
AUMg6wjMWbNRlm1I7l4w65lZgobAdogAz9dcfc5MDAFDoPwhYIS8jNpkw6+/yeL12XMZVUbVsGwN
gawg8PPmX6THf76Wb1YW9M38my45/1UX5fKXSniWvl25Thau25Qqiqzd8quLs1qPXkjRp+2P5Jep
/Lhxi1D+TIWsFmmZp/y0XjZpHTIVX+bgMZPi/6Dk7BvFbbmWP1GKWzafHvWbtmq9bAkAS9q+zMnK
S1hQ+BW4PRiU8pz8pmq+9I1EIS2fvz8G0/fXgseCJUpMMfPf4DJr9Qbn7iTzu4t+x7gfV8teb06U
db9sfQ6KnprdaQgYAtlEwGzIs4lmxLSunzBP7v12kWzWr0DH2tXk7cN2k/Y7Fc3TQMQsLZohUK4R
eGjq99KsemU5rFnB7d67vfGVfPtT3oY/9avsKMfvUl/O67Sz7N2wlqvPHd8slL9/vSBOaFvWrCKf
H72HNK9RxYX/tOkXOeuzGfL2ghWO1FXaoYLc36uNXNS5qdw9aZFcM35uAVxq7VhRVp+xX4FrqX6s
2LRFjv9wqoxatlo0WenfppE8c2AHqcyPEBnzw2oZ8L/pwqwAQr53791a/tIpb4OWkNvlkyWrpN9/
C2/JfuderWXIpIVuADLm2G7So36el4zbJi6Um7+eL+vO3F/AgMHP1yu2Dn5OUFyf79NRalSqKMUt
G2Uf+8MaGfDpNJm9Oq9+DavuKJ9pu/C+u1Xb68av5rsq7qhl6du0jmLXUP7UvrGL3+6V8fKOvhN/
16KeizNE28mX3V0I+e/fc36UP2ubr//lNyH9m7rvIoO6tYjf1fDFMbJS+0VQ9mxQU8Yf1z0trtfs
3jx4S5HOyffYD6c4fGJKx8/t2EQe3b9dkdIqyk1Ht6gvdarMkUe/+16u6Fr8+hSlDHaPIWAIJEfA
CHlyXErs6pvzV8idSiJe6rurtKlVVU795Dvp/8k0+fL47iWWpyVsCJRnBNBiPjBlsdzWs1WhYqKZ
PLl1A7l9z1YyVTXJt05c4Ijo7FP2kgnL1wiD2/v3aSOnt2skG3+Nyevzlhdw+3iyPl8L126SMcd0
k93qVpcvl6+Nm8X8uWNjR/oen/69PDZtqXyphAyyGlUuGTNHlugs14xT9pRRS1fL2UoCu2oe1+6x
lfylSmudksXzd23iBhiQxpuVpF7w+SzZSwcankSnupfrXmP7xiGdCwzmm+ig5hZNi8H+jV/Od8SW
+Gh7uebvg1x2V7LeQInyqGU/y4kffafYLpQ7FOfilg3tb9/hk+QkbbdPf7eHVKu4g7wxf7lUqrAV
25o6APlK33lo54fO/EHOGjlDBzUVZL9GeQOtoJIct6XB39QnlTDrePqn0+XEXRrIjd1byjMzl8ng
L+fJ/o13kj5N8twAggEDn4E6KPNSrVLeZLHHJxmuPm5xjg9NXeJmRZb9sZcb/PgBWXHSzOReujf1
vvObRTJwt2aRBo+ZpG9xDQFDoOgIGCEvOnZFunOofiDQ7p2iHyumqucrWZgT2yiTVQvYpW5h38/J
Mhm+cKVcrZq9bvVqyguq1TIJRwCN3eXj5rhpbGhBt/o15IF92soe9bZi/kfVWHauU11m/Lxehi/6
yWnXhh7YUdbq9O7tSgRXqHYLYnB0y3ry4uwf5DTV6v1zv2jarZFLf9ZZkcXCkY8iWsFXdFCGFm+v
N78WCMqMnzfIGe0byRvzVkgrHaw9q9pWBm0I09tXfjHXaS836D29tA8xqKtXJe8RhojergO9aas2
OG3r2R0ay21KrryEhft4yY4lXfaJqqmFmPVtmtxvcp3KlRzpZBYJA4QTP5oqX+k9k9TcooqSvQuU
XHFEgiTrc9Vco0l+89DOcY36gTtvzQONO3+Nq1WWitomEPaoQru9MvdHN1CgXK/OXe5uHTrrh0iE
/BBtf/68XNGluTwzY5kz74hCyP19bbV/JCv3QVpP3hPjflzj+oqP74+/177rBa0pRP6HDXkmdMUt
2z3az6sqwX38gPaOjJPPnzvs7LNzR1oL3Pjr2aCWPD9rmYz8/uc4IS8QOYMfw/S5RJ7o3V520mfq
Hp11eFXbifQ9ISe8UbUdk+JGGJIK17zQov/PTAgDxyq6K2VV7bO8b4KCjTeDmetVo/+4DhIZdHao
XV1GHb27I/AMKK/8Yo58pcc6+uyfo7gO1oEH7zTkvsmL5WWdIcAUiToO2qOlm1HKC837v5/2u0vH
ztHvzzo3KAuG2bcliIadGwKli4DZkJcu3jJXCTgf0F9UW3XmyOkCcULmrklt/5pYxFVqrwqZn71m
Q2KQ/U6BwGbdIGWAalHHHKNbDx/ZVarr1PyR7092mkN/yxzF8yadSl+vGtvnDuooDyphR3GG2cNk
xRuCDO8bq+YGw/p0kod12hf72DBB64bWDtI9/rhuMlK1hmjskN+U4WPriskAgzQ0aE9rPmvU1vkF
JXcI9s99h38ri1Xz+NC+7eQLNUXYV+/fmG8f+5GSzpM+/s4NLj4+qqu8fsiuqiV2t7r/wsK3xix8
VtJlJ8dvV653mrrW+YOPwqXIu0JZRmhd0Sh30WfohFYNnKlKXzXdgMwmrsnwpi5BEp4q7UyvL1m/
yWmcGURjv47pzBnav+YVccHce4tWOgwOaLx1wBClTFcoOWOWzf9522C035j33PDlvJTJMGC5W03n
Dn/vW+Gdcl4Kc5lMy8ZAqafmj2Y8ivA8McBhUFBcmafv1511gAUZ9wLp53pQXtMBlMeMIwO3oKTC
NRinKOf76AzAMh34XDJ2dtLbt+h7ivfBRaNnu3fEB0d0lT+0zRs8MRtzsJJ1ZjXe1+vMANyp5kkf
Lc4rO0qHK1TpgPafWRuUCTtX37FQPuCBUuBbfaclin1bEhGx34ZA6SFgGvLSw9rltFLtTmvtWMlp
M5nCvVWn6Z+YvlRtGgsvrEpVNDRoQ1Tzg82tSTQEIGWQYDRHaIb4KKENWr7xF9WQbv1ooVV6WTXP
AT6rg6Vl0kJtkkljtzo1pIXaKR/evK4jHEtVo9Vpq6IzbWEYFDAtv1vdaoW0c0eqvSyzJG+qrTMa
SjT3fLiRd7ScLFgcdnCnOJG/uccu8bwe0YEBfeHJ3h3i5d63UR7hJ1JYeDyhNCclVXaynLt2oyNj
FYOjiEBZaKdDlXRPUaLC4OhKtX31NuLvH9FFZy8Wynmfz3R1xw75PrURZ/CzVAkMxKO2atizLd4G
Gc38mWpuMahbS6lTuaI8p4MoyGX1fBOIKPlCpAapeQn239jAZyIdVXsa7L9Bs5C/ax/ZQ23wP9NZ
mWRCf3tLTejGqhb9SO3PLfPt7oNxi1K2pdpvu4bM9jHrRJuyIBYCzzsNu/41WwradgfLEuWc/lEj
Afsa2hcwWwoKpHb3wOwY2uagpMM1GC+Tc2a5jtM1BxdqPZ+Y9r3so8/ouR131pmW5Wo7v6HAzAom
WJhpIX7wzjoLBup99D00XWfxaOtdVcOOydWhzba+hHhW0cQHZwRcQvn/0WcbVq2c1NuKfVuCSNm5
IVC6CBR8C5Vu3ttlbkyRf6ofyDn6Av5CbVa9FwCuR5VO+hLmzyQ6Au+pCcppI6ZJsxqVnanPT/le
MdY7bwNbsYeYBMm4z8GbRFRR24YqsDyVyvphi+Idg9iP7t9erlUzo7Yvj5emSp6vUhveS9WG0wsL
ASvrNDZT2Qi/vQYcN2XkHyTZ/j6OhB/UpE7SckcJD6aVeF7SZSc/zAPQ/jFrlMyGG835qWpiwaDo
ILUDDmpeWQTKH7MImBFdNGa2M085R4lO0+pV3EJOSJo37UmsX1F/++cV0zHsj6/SQcK9kxe5smVC
xjG9YaYGs5vLumztD1HLdZ7Ws2uAWAbv4/oprRuqlny+M5EKhnGOJpU/PMR0ef0r1z+H6syQl6KW
jf69PETBQD+nTWvqTBXE0WvH855HX4KtRwayUaS+EmtIa1DoG4ntTz8arIOoVJIO11T3hF1/Vs0V
GQQ8tG9bt9bgotGz3MAFsxQGcUHxC1qD15jBo29NUHMVLwx8PHZo36nToAnz3XoECD8LhT2h9/fw
Xvlx4+a4OZy/ztG+LUE07NwQKF0EjJCXLt7uJfia2vs+oAvRnIeVBStdCcKm64PFXKDaHjwhoOXB
HtAkHIGr1f4a4vZS304uMraWaF4TpW6EgVGFfHIQjSLk5QDR5+97JZ73qJnAZWrDeWzL+tJI2zBM
mikRhfijScT2PVHQjn+hWs5UEhae6j5/vSTLTh4QR9zUoSln5iJR0AKiSUwnaMQhl8w2/VcHXxDy
PfKx+ljNETAHyqY01YEdgyRmW745oUeeCYC2TybPMYT3ENUSs26AhaklITf1aCldX/+ygGlWYj7M
IBygs0fg5KU4ZWN2h3aAGKOpTSaYHSVrU95pCFpeLyxGxUtLFGHtBXbYDMLq5mu9MSs7Kt9jS5Q0
osR5W9/blJH3L2scosjMnzfGFTD0VZ7Zkz+e6sznmM0Iii978FpzHWBCpiHZHqdgOOe39NzF/UHa
B46Z5UxjJqjiJyisVVFIk85iMGPBmhEGSswCmhgChkDpIRDNyK/0yrPN54QdM8ILlWlvXJRh75ls
YVYqMPCK0F+1vXgPMImGQKtaVXRR5hZnK8sUPmYcpSV8RPPMkn5xxILpcJTsUbTrlPEIHUjwgR6k
7Y2rOu5DG4wfaeQ0tTFlOhwPJHxQWSD5pBIiL2HhPl6yY0mXnTwhcJgKfZhvC5usHMmuvaXmPXgs
YoYA21fc3bHY7eh88sXCVxbPXqV21gxgsa8e8f0qGTb7R5cc+E1csc7Z5kNQOGfQE0XQ0p/Yqr4z
h8HUBnL1hpp/+Oc7LA3ygYzz7GNmQ9780X7ZFBYN4o4R14xe5unAB6829BnMS8DtP1p2tOlIcct2
uc4WMMDC6wweV3jP8bxNVyIYJhB4ZkLwvMLzSllZkNw54oJbFqsyXsYVJn2CNRmsLYjaLmHl8+Fn
6JqQk3XdRiab7BzWvI6M1nb4h2JP2a5Tbzxg84O2OR5pwgRvQ5ip4DKSfHkPsD6E2T8EEs4zxACm
/U5VdbBf2S1aTkz3w8U/ORO3ZN8c+iD1ulDJvIkhYAiULgLRhvalW6ZtOrfjdKHV5To1feanM5zW
Co3au+pzNxOpkG+c4I+Z3Lu9xuXj9+fPZkq958c4UxNsNCEk+cpuBwt4JtN6J7uWCY6QPdzanTdq
pluQyKKzO/Zs7ew//SI8nx5EHaFcO+SXBrL6prq3w582/qOJ00TT6Hd83uzIH9o2EmZNyAPzBAS/
zmiJkbBwFynFfyVddrLF28TVSuIe0FmL81Vz6DEgLB8OTgsJ90G4rpswz4W1qllVXbk1dRpnHxlP
NhDD3u9Mcs8bJjHYmCND1fMGMydeuv/nK0ewV52+r7+U9vhAr7ZyjPqUbqNmSJQTUsWzHUXQRqPF
ZTEhberlLrUjvzqCv+t0uNB3gv36Jl3895KSblwfct8m9fKBD3ZmaRD6I8/DDRoPKW7ZmJH5RBcX
n6HvuBb//sKliQKCwVEUwXMUPtobvDDWRWfAxgLrKELez+liRtYUQHwx/cLbUHBhLxikwi/V9WDe
DFIxrWEgFlVzz/14mpmjftmv0j53xbi5ro1YCMxgaLD2YdYF+dm3YH7+nJkiPCvhHpMBDs8J65Hw
q4+w6BtPUZSP9mew93CCFyjMwh7UZwbXnMxSJIpfy0SfMDEEDIHSRaCC+nhVupAg5xyYcMF+ZhsB
iBjaMEiESekhgMYN2+Iom7dku1SYq7BmwLsyLEr6Po1ddPFf4iJICBeaMz7SwYV+Pp+wcB8v2dHn
W1Jlx4a29ctfyONqa8+gNarw8mLxZhiuhM9XbDD/SWVGETXPxHjYvzM4SLRTToxX3n6jHV+9+Vdp
r5v1FKZm2Skt5iPYcNNfk60PSJULA8H5+qyyTgOSnan4vo623a//yDSNVPGZZcHrETMbbASVqUCY
cXfLAt7geohM0mGRN+Sa+gVxZWaCwXltXWCczKyFgRmeWGafuldSXM5Xsv+YLjhFSVTAzOfJkZkU
z+IaAoZAERAwQl4E0OwWQ8Aj8LS627sshQsz4ly9ewv1wBG+UYxPrzSP5a3s2BxDLopKUrKJ3TEf
THG2tKnSHKuuJ9FYJpPi4lqcvJOVJ5vXilu34pSFGYVWL+Vp3JOl00EHFuy2WdKCyQimUtNP3jOj
NQMlXa4o6TMwhcinGpSeoi4gEWaWCogR8gJw2A9DoCQQMEJeEqhamtsNAtjI4qM8lbBIsa3ac5ZH
yeWylzSe2ONii59K8FyRitQUF9fi5J2qvNm6Xty6FaccEElsplMJC3tZnFrSgt03Wm68yWw3YoR8
u2lqq2jZIWCEvOywt5wNAUPAEDAEDAFDwBAwBMoTAmU0ADUvK+WpE1hZtnsE0L5F8Uax3QNlABgC
hoAhYAgYAopAqu8mLk8xdcsVMUJeRi2FLV/iVt9lVBTLNosI/O/7n53XhKImeb56h8BPeVBw2cdC
KxYw8nJ5VM/ZXtuLzuQ7DxosZEslxJmtHh54QeEWLZmw+I5t4FfrMSikm/gXDN8WzllgDcZ3qG0w
L/dECQtPjB/8zUK7N9WTBmnTlpkKLjNpl6CwqA+3p/z9TW2aiyvvqk9+3AtmKsWtW6b5BePTJ7/T
/owZTVB8X03Wzen5idf5nfyJCKaa/JxninZNTDN57Ny6GuwTyXDLpDZh77BM0rK42x4CUb6b6Z61
ZN9NULpNn81L0qzxKm9IGiEvgxa5Xl1c1XlutDQfNk46vTpBZqr7PZNtA4FXldTgiq8oAllm06hL
1HVfUF6bt0LwfgD5+V49Y+D2jM07vHTT7dErPT3K/eEq7hx17xjcKGic+shmh9B2r4yXXV/70rl+
HKq7BnqB5B//0VSp/fxo2V3Tqv/CmHgd8Nri0w4eP1BfxtuK4HebZ/HRaUvdLroMloMSFh6Mm+wc
t4YX6K6MfHQy8Vvt0xqk74vRCUQee+pF6zbLZ0tXO0Lo4xb1+LJ633hu1g8Z317cumWcYf4NDFpr
PzdGOmt/xrUiPt0RZpe29tPPpNdbE+W2iQvj6wHu0g90zaGf56eSd9j7ra/l7JEz3A/8hOOFhOcj
CkmfplvY8z5nEFDeJdO6BfsEezdUfPoztw9CUeoZ9g4rSpp2z7aDQJTvZqpnLdV3E3TYDXuYvtvm
6HcsF8T8kJdyK6EpY4U+/mRxIXeqrmrv/8k0+fL4kvcOUMpV3S6zw9/5xoRtsKMCcZf6hu7bpI50
0e2wMxGoAJuG3K7+lqfqAlM2COqnBGX2KXs512f4P2fL7veP6OLcIX4e2CSGfE7WPriQ3V+P6eY2
qPpSFzTirg5prm7VJp/Y023QcrR6HsGvMT6dcWO3rcjLc390u4Um7mjo6xcW7uMlO0LmJ+tunnPU
zVwmu3gG0xpx1O7x7dH9ddJ6Vl3usanP2ASy7uOU9DEbdStKGZkhggQ/qi4y6fc/al99fX6edt97
8X2qdwdhY6jPdBM1CDYa2nfUlV8y2gyX/k3/YzEtG65d0bWZ3PvtYvlJN+/hg74tSHHrxjPfW//Y
6+AN3RPBxBDIJgIl9d3s2aCmew+w78Ij+7fLZpFLJC0j5CUCa+pE0bzsrR8KtvKeouQJf7RzYhvd
RzsqEWPL96vHz5Vu9WoKm2iYhCNwn24685FqdXfcYQe3WyOE5v/2bRvfMIRwTBbw4ctmH0fottH3
6oYb3pPGsboBDLseQmbxqnKC7tLI5j7e3zea7VtVE4fso+2b+PCjdb1FP2aQu8Wq2WQwxnbph+ku
nF7wIPHXXZv4nxkd2b4bjy78od89UTXebH/eTj28QJwGd2spuIVDgv6FqQ+b07x5aGfXLwkPbqLC
5iHs6Fe5Yp6nanwnJ9vhj/tSCRswXamboUCKNuhgBaLEgBS/3Ye/N1nYRZVyMChg85gnDmgf96F8
gtbjd7rzpt/kCPMApi6f7N0+VXYFrr+vuxheq+RtpmpOm+t297ihPLtDYxfnnzqT8bBusILpGBrO
3VTbikDc6B9h4S5yiv8oI31mre43gBz5/mTnN/5inf1g23TMhn6vA6GxP6yRn5X4kd+luqlQcDt5
ZkWY3UAG6UAP8hlV2AmSDWh4V+DjHVwZTPn+iqkHA7WJ2jcYrLEDZLLt2pPlF1Y3sGSnzOf0XYf5
Tw/doIZnravm4+V51cY/rxszndSqgdyvzx7a/vO179+jm+OECc8RO3L6dtxJvatcpRtLBYW2pp/y
96nOTLyjOIQJ/ZO+f4mScGaNZmkbeuH5xR0nx0vGzFbznhWyk/r6xttOJhLWLgyE+w6fJNerq9TH
dcZmwvI1+txWl1FH7y41dDv7sPBUZYlSt7A+8TfdOIqZiG+0z7BZU1B8n/ijbnT0rLqC3fzbb3Jh
56aF2iV4TzbP6WfX6DeRTa2W6SwimA3Tb2MnfWczo8ig+Ft9b/fW9uLZw+SPDcL4DnN+iu5OyjPy
6tzl+pyK64uD9J2Z99ZLX9Kwbwt3s2ET348ZOqMyXN9JvFeHHthRDm1Wx71/LtQZNGYhKuv36dhd
6sm9e7cRvAYhYd8OFChX6m7E7FJcR9+p5+gGVIO1rXzZKR+zHbQbm8wN2qOlnNcpb9M40k8Xzrsx
Xdm4P13dCE8n6b6bUZ+1sO9mP21XdrbOBTFCXsqtNFdJR4/6NZwv2DNHTncfFWxE567ZFFkzyksd
Mu/JYilXISez4yX9X30RnqmbeUC40Eb/Saep0VwiEJJ79CXYRT/gfJgIY1OSh5RIIHycP9BtqfmN
u7PTdetsBkQQLATNNmT4diWMyUyQLlU7tlf0ZX+tEsJjW9ZzL8egWz0IALawHfNJs0s0/z8+GmyF
TRnZJOVRHekHSXMwLhrAEfpR4oVPXdBwQ7jIn3qx6U7wY/qtfqiQVOm5wGL8h106m6hABB/at510
1TL9Sz8OuI1DwArzGwY/TbRukJ271RyBHSsRTBD2bLDV/SAfiNlropl4gSemOEfq4ApCyKYof9Zd
OxmY4B7vNN3h9BAdEN2gdthsfPSkalURNltBwsJdpBT/tdCBy+uqSeQje64S32EHd5LqSqgaVN36
yqW/sGMiA5PXtG9AkCnbQUoKkWt0x058sx/07iS3jXyKrJJePk01vZAk6l1bB2uQFer5uA52kMtU
a8wHD23n/3SjG8w6om7IFFY3iCQDp1t7thI0VOTLjqYzdMbGb8hF32ebdwjmFUqmO2m9p2j/DJMV
m7YIGzFF7a/0P8y3GBSEyR/aNnS7e+7++ldOO84glQH00Jk/uE2KJp3QU4bN/tH1Iz9YvyR/t9Ow
tH14WLtsUSILQbxo9Gy5QAcozHoFzZVShXMPz1kyOa5lffnHvm1C6xbWJyCsDEDQkr/Wr6Cfcp5n
ysA77p868GMAwC64A/QZ47nO5B2WrA5h127TWcH39P1Of0ahwjulor4DETaDY3+Dp3QQf7ISb545
3oHUg3KhJKDsbLTGrBOzCazNOLJ5Pdd/w/IO+7Zw/xx9Z/H+QZHz3EEdZZ32y0r5BsOnK1lfqO8q
ZnV4LlC2sdHYP/J3p0337eBZOFgHcIfrO+79I7rqM7ROLtZ36D6NdnJknwE/M0RPa9qHKPnnnbB6
y9Y1MmHhYWULq1sYdum+m1GetXTfTZ8331R2yGUzRga15Vm2fh3Kcym3obKxNTE7KULcIFh8tCDk
fsviKFXl48I2y0XZwS5K+ttqHN7PDypBQaO2k7YBW6XPUMIHCYJY8/FGUwtJaKdkKXEhXVBTy8cJ
IuMJOdpF/tgdL0i0wRKNzFPTl8lFqjHy26KjuQnKXP1oIBDoREGjzB8CuULDmihoQg9V7RWkhpfU
lUpyfFoQCwgXmpCbdAHgwTp4uLdXa7e1NrtcggvploSgmeRjAyH12sSbe+xSIKs+TWrHZwYmKHni
Hk/IC0TM8AfpQBQe0A8bmv19G9VytsGvKMmCkEOE+aPutH3iYCgsPF1xIJ6kx4wLQh8LfgwI5xkG
G2x7G+qAhWv0OU/I0ZojybY4dwEp/sNeEnIyQLWVEHr+9mpQS15QLRFEEuKB1phdJg/RfswfWs2o
ElY3SBnvKAYUyKZfWwrmThDjRD/hDHAxhUD80f1I8d/S9XmDs7oh/fXa8fNcnydP2vfvCX0uWfL1
q+woM3XQ8JS+j7nvWC3zQfqssKbjkKZ13XPCQkcGcX7GhhkMNPxRJKxdggqW07XtIOOIf27cj/z/
EsPp55/+bvdglPg5/Tisbu7+CH3iJsXxMH3P0E+DMx4+M9ocre+BO+/kvnGfKjHur7MZUd5hPo2i
HL0p0mbFwSlMFL+g7KcE9RgdmCAM0Hkmngmso+E6M1QQW/6Yyf7vopWRCDn38g5N9W0hHEE7/bLO
DOYNE/KuMcBk59e79V1wfP4OxaP0fcAzBCEP+3Yw00Rd+ugzNF2173AKNix7fPr3rh3ycuEb9JtT
4PGuTSbJwsPKFkwnWd2C4anO0303ozxr6b6bPk8ULPQPrBGYpSjPUjJf4fJc4zIuGy9GXlJzVDP4
he4qh5YK4XpUgcwlErqo927P8VrVrOrIOBigPebFiI0pZGmgahV4CXdXIsFGPpgRVPcqjHzQuuvM
hpfG1SrrLEWedtlfS3VcoGSbafxUL0Pu81vSQ+AwacpUIG+n6oePl89B+tIN7nZJvTEDQTuKeQoa
FAgLNuVNq1dxHiIg8Xy4sy0sYmTr8n31g5hKghp7PvIMVvH0wsCpOIJpEHWCjCMQUWYLuF7WwgLd
Pd/82g3+9tGBQn0tJ1o8/z4oTvn8wlHalIWkXk5W8xD6NeEQMLDw0i2CBtnHDTsuXr/JDfp8PJ4p
ZLEOPoKCmdX+jZMThGC84LnfjAeykE56KyGkfpCaPfS59SRoB+0DyQRtKsQIzTR9hpk0+uX/qVkT
2l4GDph6MWA/PzDdH+y7ydINXgtrlyAhZ/CfThLDqVfNFNo/zCDC6kbeUfoEg7d9dTB7i2qkIZeJ
4tuaZ762mvTQB0tDLlMyPU/7dR/VFoPFafouvEeVDv67SnkYSCKcb/o1pn8FF293C7zf+T5AjKNK
um+LT4OBQGLv8+8ijxtx+c5g7sU3I+zbgead7xRafS9ddQ0SsxII7xbMFQdNmO9Md9CcQ/79IC9d
eFjZeJ96SVY3H1bUY5RnLcp3EyJO09NG5V2y/wUu7zUu4/LRgbCbekDth9Ggvb0gz7bRa8OiFA/S
xkcCbSz2USbREEAbCeGBrGLXzKgZsxNWaeMZhe2ivZ3uvm9PdF5NgilXKPQ6DYamPof08upC6+a1
IImxISeQ6aL6IEcrErQ/Tkyf35SB/nKGkg2mZHnhQ1YQbC+Zvs22NNM68eHDjj34wQvmE6wztt48
I56M19CPDSZaXmirqILWBttSZjwwmaG9p63aUICIRk0r2/FeUM0WH4r5v9/LaXDpm2xLr02SkTC1
rdzCYQzRQPzM2TFqGpVsNgXyBflndshrjPBgEHUNS1gBGaxiHuXFn9MeQcEGO58jBS+nPUejxnNC
f01WN38zhDW4PsNfx5wBrWNQ+N1AFSKd1O74rUN3cwNyZkxavTRePjmqq8PpTDVh+/GP+ziN6Uyd
/vYS7Lv+WqpjWLsE76Oe6SQxnOcCb0vJ5CR9rh/UgUm6us06Zc/IfeImtU8+Qtd+YDaZuJ4k0/ZM
LC/fQ7S1vKd4J0YV+gQmYgwq3tE0MAdFaeVnaaKkM13fDd60CRPFo1psXd8Tdn+qb0vwvrpJlG7+
maD9/Lf8Oy1Hfe2nEN6wb0dz/bZQZ0g2fCCZ3NJzF+EP0j5wzCznBjC4gD1VeFjZgnklq1swvCjn
mLuFPWtRvps8o21qVSukYKNMuLPFvInBLDMjZS3m9rCUW4BpZISHB7IwZNJCp5VNfLGlK9Yo1eri
DQBSZRIdAbSS2LZid3ePelHYWYlDD33oIRCQ9PmqyeZD/NSMpW6xXfSU88xSIJ64o4Pocu41MGgw
sM9F68FgDALwtS64THQdCIH4MMvuBNE0n6VkYrwOBrChw2aQxXQMBnnhM5WM+c1VuiiIQR5x0KZh
v4eA2cQV6+IECxtEfoNTFDlC6wR5GKR9lTqDCQtsflCS7AUtLosvIe0vqTlJcNHpAapBxRwHO1Cm
MJldiipo86gjXmeW6hqC+9Q2Hc3q4VqmshYIMVhgE8/HHNeGQYEyBvsQ7cBvjkFh1gUS9KAOKOnX
tAsL2vbUfo0pHB8b+iMffBapIphwMIWPtxJwfUYHArRrtgR8GXyyQI5Bxz+mLHaayj3VbCYbwoJH
FlU+ogty6d8MrmnjKMJ7FjyoO32ddSVM9XMdrSKzY0H5ReMSv1E+2UET+NGSn9zMA4vpqGNUCWuX
qOkki8dswG9/7p30D0VDWN0y6RO8p9C0oiXPtpyha3Ow8/azCVHTx8SDPs6gFCUDswKYr2QiLOrn
OcBzEbbYwfdQWDqpvi1h9/ENYpYF8xkWnvLufWfBivg7KuzbgQIJM5Ub1RQRzHhHsMgRkzUEEs5a
Db45rENqVLVyfNYgLDysbC6DYv5HuShzsu9m1Gct7LvJd/YwNaNKJnzL6G8X6kClPEj0IWh5KO02
UAaI2eU6vXbmpzPcix7N+Lu6yDAT8Zpaf8zk3u05LjbV/1IyiJcGXtxPqgkHWmMI49/UNpJNBPBM
waI1tIss9PNCPH3vxcX9DmjM27z0RYGNnqo++7mLu/qM/ZztHuYiLO5jNT/p4O3l6QRPIRCNjuqX
Hu8oXlMTzzDNSaBYhWLhMYAX/d7qjxlBO3qoflBv0GlML3ywz9bFjr3fmeT6JGQRDwQIZBFbey9+
k4X3Du8SSaOAluVN1Vydpenjsxry2EQ/Qv2O3/qC7FSnmvNIwssZ2/2gH/Yz2jdy2tDWqq2k/Q5W
AhrVqySzBg/t11Yu04V3zICQN7b1yRYvpjJl8PUOC/fxEo/BPhMMO1U/pMO0L7KAMKb/sG/1GlTi
4cpwv7e/id+CSRV/eP/5r2LvBQ0Ri2Xxy80iOuyOcSGGOQELk1kQSv+g/CfqgjI8XyBoxfBgA66Y
aEAKiJeJpKob5gMMvk5RLzIIyge8QQVNMjLJJzHu+bqGArtZFr/9Vb1TIAwqB3fjGc2rRar2YgDK
GgYWD+N9g9hnqded09vled5xiel/eLjACxJuaeupZpN+hPxBFylC2FhIR39iwJhsEbeLnPAf8cPa
xZc/4db4z7DweMQ0J6nqlkmfQEt+1AeThSPPmZc89P2vzI5oetfrIIlBNDMZmQiKjP4jvnP3QsYh
YCwW9hKlXAx12asBOU0X+HqzDnch5L9U3xZ/G9/qVGUYqos8T/p4qnTVdwGyn5oEofH2ku7bAfZ4
rKIvM0Clj7FG7f789zdmYnhBAVseDUxj8LbkJSw8rGykk65uPp9Ux3TfzajPWrrv5mg1O5qo76JX
ExYh+/L4tXsMPsqDVFC/rQVVLpTqnAPLQ9m26TKgnWG6JBfsmraFhsDLxAjVxI47tptbcd1M3aIx
3R8UCOEStX8tyTZBg4n3D0h/cJGfLwfEeLPaIGTbnSW2w0tVK405SKpFgpjzzFctC2Ym2SJPvl4c
GeCQBz7M+egibXTDIlw9QhQJZ4CaF+KC4/+hyd1FbQCThcUjpTihXbEv5aOZuC4gxS2ldpkFwJDH
krDfpxKY+7Bwl7p7N2q+cmilwJX+ziAs20LeKzbmuXQsgeTd2gdsaHmOvM1s1DrQDzH94z5vHhX1
XuIxUOU+NMtFkXTtUpT0snVPJn1iHx3kt1Gt67/6dMpK9miH8RTzJzWpY8FxpsJsyRJtlzY6qPf2
4lHSYKaD9Rzzfr+3+ybQVzMZEET5tkQpB/0RRZF3TZp4T9i3gz5J+2G+E3ye0d6TNjb9ycxawsIp
R1jZEsuazd9RnrVU302037RlohtiXz4G9AxkUIoWmBF5cqSPUqrHor1NSrWI22ZmfERq1CzeorVt
E5mSrRW0I3Fa2ufIS7wkyTj5QIrSLch9RLUXaDOyLRCHMPKA2U66shW3TOlIE3n7BTrJ8ilOu9Cu
LNwtj5LsA5nNcqJBT2WLy0ebGYmSknR5ZyNPiFNRy09/S/Sqk0mZID3FkZLGpqhly6RP4GLwBx1Q
ZktQmKAsuFG17kURBkg7BbT1RUkjkQwfo552MPtKJWNVweMl3bfFx0l39IvPU8UJ+3ak6pNgmuqb
R15h4cQJKxtxgsJ6mMvU1W4qYT+IQTojHEVS1St4b6rvJvtV4G42leDkAIcDBch4qsilcN0IeSmA
bFmUPQIsXku0vy37UhUuARoS/rYXYSFT2xIkhdsLjlZPQ6C0EWCAnW6QnWl52BUVcyTvSSfT+4sa
H80xi4BZQJ4ouHlMdGMbjMPMU658W4LlLulzTIYwpUkl7MGQTUn13UyljPB5f3hk1yLNkPn7s31M
brKS7VwsPUPAEDAEDAFDwBAwBAwBQ8AQSIpA4SFh0mh20RAwBAyBskVgzpw5smzZslItBPnNnTs3
ZZ7Tpk2Tn37K82iQMpIFGAKGgCFgCBgCIQgYIQ8ByIINgbJGgHXXv/76q/tLtgab8v2mvntnz54t
EMTNm7d6hwmWnTS+++47WbRoUfByPG2fB8eoQr7+vmT3BMvu4/n0g/cGwzhPrOfPP/8sPXr0kG++
2ep5JFl+2b42btw42WuvvWTduuSbQN12221yySWXZDtbS88QMAQMAUNgO0PACPl21uBW3dxD4NZb
b5VKlXQnR/2rUqWKHHHEEfLss8/GKwJpbNu2rbRr10523XVXqVevngwdOjQezsk999wjtWvXls6d
O0uLFi3kkEMOceFof33aweMHH3xQ4P5UP7p27Rq/v3Xr1nLZZZe5QYGPHyx7MP333ntPDjjggPi9
wTDO//KXv/gk3PGhhx6SZs2ayWGHHVbgekn/OProo6VOnTry6KOPJs3q0ksvlWHDhgnaexNDwBAw
BAwBQ6CoCBghLypydp8hUIoI1KxZU2bMmCGffvqptGrVSs466yx57rnnnGb8vPPOk913312mT58u
q1atkpdfflkaNmwYLx1k8vrrr5cHH3xQ0DTPmjVLDj/8cBfevHlzmTx5srzzzjvu98MPP+x+77ff
fvH7w05OPfVUl/eQIUPk3XfflX79+skvv2zdXZOyk0fwr3fv3vKvf/0rfo2BBOTXx/n73/8ez3bD
hg3ywAMPlIkmegf1aTxw4EA3oEk289CzZ0/p1auX3H333fHy2okhYAgYAoaAIZApAkbIM0WsHMQf
Pny4dOnSRQYMGFAOSmNFKA0EIIbt27eXfffd1xHr6tWry8iRI51mdtKkSa4vdOjQwWnBjzrqKOHP
yy233CK///3v5eyzz5addtrJadOvuuoqF7zjjjvKbrvtJtyLtGzZ0v2GREcVNO/cf8opp8i5554r
S5YskQULFsRvp+zkEfyrUaOGG1j4a9QHTbT/3aRJk/j9EydOlOXLl0vfvn3j1/wJNt7c8+KLL8pB
Bx0kpNu9e/e4icmXX34pBx98sMNll110C2nFImgOc99998k+++wj1apVE8Iff/xxn3T8yABj6dKl
MmXKlPi14AnhH374YfBS/BwNOs/q888/H79mJ4aAIWAIGAKGQCIC5vYwEZEc+I0WFHJQq1Z2tqLO
gSpbEQMIjB07VtavXy+QVsxU0I5D/LAPP+6442SPPfaIx16xYoUjyAceWPKbfX3//feCKQrEFvMV
L9hfn3baaf6nO6K1h8hHkW+//VYqV65cIE1/35YtW2Tq1Kly0UUXyQUXXCC33367jB492gUzMICM
Mxvw/vvvu2fm4osvdgT80EMPFXC84oor5Omnn3YmPNjgr1692icdPzIQYlBBOSD7idKxY0c3MKKe
DAiCMn/+fJfvjz/+GLxs54aAIWAIGAKGQAEEjJAXgCM3frC4DfMAbGpNtg8E1q5dK5BIiB0acfoA
JBR58803hcWFaHtvuukmR0LvvfdeRx7R7CJ169Z1x5L4D9OZN954w2mxsU9//Scl6NsAAEAASURB
VPXX41uYkx824Z06FdzND818VMHOncFHxYqpN3g4/fTTHRknzf33398ljd35mjVrpE+fPs6khnJg
GoMWHCy9YIrC4JZ4yQS7fUyAUnlboc5o3SHf2OgH5U9/+pNg/lMaA6JgvnZuCBgChoAhkFsIGCHP
rfZypYXcJBKcHKyGFTkDBCCF2GpjSgJxDJp0YFP+xBNPOKL5ySefCFrga6+91mmFmzZt6nJBU15S
wiLTa665Rj7++GO58cYbna37nnvuGc+OsjNQKKqwYBVtN3bpkOpk8rvf/a7QZRZaYgozYcKEeBiL
UD12mKoMHjxYBg0a5LTr/MYW3BN6f9PGjRvdQKhNmzb+UoEjRBwNOu2QKMxYmBgChoAhYAgYAmEI
JP+6hd1l4WWKAPa5Y8aMkQYNGrgFdGVaGMu8VBBAo4x9djqpUKGC6w9nnHGGI5q4D0QzjgYXspzo
uSRdWpmENWrUyNm2Y98OcWZAcOSRR2ZNKw+JxjQFDTXmI8kk2QwAC1Yh05BsnpVkgk05f5B2Fm/i
wjBI4LmHxbS4aKQcyYTFtJB1yH+ifP31186cBc18ovY8Ma79NgQMAUPAENh+Edhh+6167tZ81KhR
0r9/f0e6crcWVvJsIIDNMx5Xxo8f7xYyYhfNAkLsmr2JBx5WMCN55JFHnI00XlZwR4hAdFk0if05
gh01vzGRKYrgHcWTYH8/mm3SDP5lorHHJh7Sn2rhpM8n8XjyySc7jTpae8j8pk2b5KOPPnJ27sSF
eJMmJisQffKoX79+YjIuDuZhLB5NJriITOWOEcwphy3qTIacXTMEDAFDwBDwCBgh90jk0BFNKOKP
OVR0K2qWEYB04ypw7733duYsEEPI+AsvvBDP6fzzz5c77rhDrr76areQEvI5YsQIF75w4UJna+5N
K9AQs3Dx888/j9+f7iSxD2Jr/de//lX+8Y9/ODMP7mUBKmkG/1577bVCySam5SNUrVrVlR3Xh2iq
g5LqHuKglX7ppZecfbvXYEOOWXyKLF68WE444QSn2UaDznVs8YPCYAJ3kZgAJbN7ZwEpAw3Ck4kf
eHgzmWRx7JohYAgYAoaAIVBBFyPFDAZDwBDIbQTwL84CTohnMuJI7SCz2FXjCSTXCCKkHs8tLMj0
g4dMWoyBB+Qa852gHTozBJiA4fElmVkLhB5PLMwcYAufKBB8BiFowhOFVythDJo87olx7LchYAgY
AoaAIQACRsitHxgChkBSBHAHyM6bqQSNOwsiS0vwmAKZxmd4aQmbEkHkU7kYxQUptuO4ZUyUefPm
yfHHHy8XXnhhqP1/4r322xAwBAwBQ2D7QsAI+fbV3lZbQyAyAosWLXLmMKluwPQFDygmhoAhYAgY
AoaAIVA8BIyQFw8/u9sQMAQMAUPAEDAEDAFDwBAoFgLm9rBY8NnNmSCAdxh2M8Rrxs4775zJrRbX
EDAEDAFDwBAwBAyBbRYB87KyzTZt+asYrt+OOuootzjPu9krf6W0EhkChoAhYAgYAoaAIVC6CBgh
L128t+vcHnvsMecJBO8T77777naNhVXeEDAEDAFDwBAwBAwBj4ARco+EHUsFAdzAdejQQVauXFkq
+VkmhoAhYAgYAoaAIWAIlHcEjJCX9xZKUr7hw4dLly5dZMCAAUlCy/8lXNexO6KJIWAIGAKGgCFg
CBgChoCILerMwV6A7+MpU6ak9I1c3qvErpJsWc5mNmzIYmIIGAKGgCFgCBgChsD2jIBpyHOw9Xv0
6CFDhgyRgQMH5mDpRa677jqpU6eO++vTp09O1sEKbQgYAoaAIWAIGAKGQLYQMA15tpAsxXQ6deok
/OWqvPDCCzJx4kS3DXrfvn1ztRpWbkPAEDAEDAFDwBAwBLKCgG0MlBUYSzeRBQsWyJgxY6RBgwbS
r1+/0s08C7lhsrLbbrvJM888k4XULAlDwBAwBAwBQ8AQMARyGwEzWcnB9mODnf79+8vgwYNzsPQi
mzZtkiZNmuRk2a3QhoAhYAgYAoaAIWAIZBsBI+TZRrQU0qtQoYLLxR9LIcusZcFOnTNnzpRmzZpl
LU1LyBAwBAwBQ8AQMAQMgVxGwExWcrn1cqzsF198sbMbr1atmkybNk0aN26cYzWw4hoChoAhYAgY
AoaAIZB9BIyQZx9TSzEFApBw/I+3a9dOqlevniKWXTYEDAFDwBAwBAwBQ2D7QsAI+fbV3lZbQ8AQ
MAQMAUPAEDAEDIFyhoDZkJezBrHiGAKGgCFgCBgChoAhYAhsXwgYId+O2jsWi8lLL70kn332mW1d
vx21u1XVEDAEDAFDwBAwBMo3AmayUr7bJ6ul+/XXX513k2XLlslee+0l48aNk1z01JJVUCwxQ8AQ
MAQMAUPAEDAEyhgB05CXcQOUZvYVK1aUpUuXypNPPinjx4+XhQsXlmb2lpchYAgYAoaAIWAIGAKG
QBIEjJAnAWVbv3TAAQe4Kq5YsWJbr6rVzxAwBAwBQ8AQMAQMgXKPgBHyct9EhQs4fPhw6dKliwwY
MKBwYIQraMoRXBCaGAKGgCFgCBgChoAhYAiULQJGyMsW/yLlvmrVKpkyZYrMnj27SPe3bt1aGjRo
IG+88YZgV25iCBgChoAhYAgYAoaAIVB2CBghLzvsi5xzjx49ZMiQITJw4MAipYGG/Omnn5bHHnvM
7ZZ55513Fikdu8kQMAQMAUPAEDAEDAFDoPgImJeV4mOYkynsueeeUqlSJbn55pulW7du0qhRo5ys
hxXaEDAEDAFDwBAwBAyBXEfACHkOtuCCBQtkzJgxzuykX79+GddgyZIlzv0htuhHHnlkxvfbDYaA
IWAIGAKGgCFgCBgC2UPATFayh2WppTRq1Cjp37+/DB48uEh5rlmzxt238847F+l+u8kQMAQMAUPA
EDAEDAFDIHsIGCHPHpallpLfzMcfM8144sSJssMOO0jTpk0zvdXiGwKGgCFgCBgChoAhYAhkGQEz
WckyoOU5OTyqdOjQQebMmSPHHHOMvPXWW+W5uFY2Q8AQMAQMAUPAEDAEtgsEjJBvF828tZLe9rx9
+/ZbL9qZIWAIGAKGgCFgCBgChkCZIWCEvMygt4wNAUPAEDAEDAFDwBAwBAwBEbMht15gCBgChoAh
YAgYAoaAIWAIlCECRsjLEHzL2hAwBAwBQ8AQMAQMAUPAEDBCbn3AEDAEDAFDwBAwBAwBQ8AQKEME
jJCXIfiWtSFgCBgChoAhYAgYAoaAIWCE3PqAIWAIGAKGgCFgCBgChoAhUIYIGCEvQ/CLmjVb3nfp
0kUGDBhQ1CTsPkPAEDAEDAFDwBAwBAyBcoJApXJSDitGBgisWrVKpkyZIrVq1crgLotqCBgChoAh
YAgYAoaAIVAeETBCXh5bJaRMPXr0kCFDhkizZs1CYlqwIWAIGAKGgCFgCBgChkB5R8A2BirvLWTl
MwQMAUPAEDAEDAFDwBDYphEwDXkONu+CBQtkzJgx0qBBA+nXr18O1sCKbAgYAoaAIWAIGAKGgCHg
EbBFnR6JHDqOGjVK+vfvL4MHD86hUltRDQFDwBAwBAwBQ8AQMASSIWCEPBkq5fxahQoVXAn9sZwX
14pnCBgChoAhYAgYAoaAIZAGAbMhTwOOBRkChoAhYAgYAoaAIWAIGAIljYBpyEsaYUvfEDAEDAFD
wBAwBAwBQ8AQSIOAEfI04FiQIWAIGAKGgCFgCBgChoAhUNIIGCEvaYQtfUPAEDAEDAFDwBAwBAwB
QyANAkbI04BjQYaAIbB9ILBy5UqZPn16uarssmXLZO7cueWqTFYYQ8AQMAQMgZJBwPyQlwyu23yq
TzzxhOyzzz7StWvXlHV99913ZdOmTXLiiSemjJOtgIULF8pjjz3mkqtUqZL87W9/K5B0WHiByGX4
IwquZVi8cpv1li1bZPjw4TJ16lTp06eP7LvvvgXKGhZ+/vnnS+3atQX8sy3/+9//ZNWqVXL88cen
Tfree++Vo446SnbddVcXb9y4cXL22WfL/PnzpUaNGmnvtUBDwBAwBAyB3EbANOS53X5lVvpBgwbJ
6NGj0+b/8ssvy3PPPZc2TrYCf/nlF1m0aJF89tlncscddxRKNiy80A1ldCEKrmVRtPvvv18eeeSR
ssg6Up49evSQCy64QCC/ybTK6cKnTZsmr732mlxyySWR8so00quvvioPPfRQ6G033HCDfPXVV/F4
Rx99tNSpU0ceffTR+DU7MQQMAUPAENg2ETAN+bbZriVeqxEjRkiTJk1KPJ+oGbRu3VqeffZZ+fe/
/y1jx44tdFtYeKEbyuhCecPVw8BmVNWrV3ek118rL8dJkybJ5MmTZc6cOUI7J0pY+F133SV9+/aV
Ll26JN6ald/XXXedbNy4MeO0dthhBxk4cKDceeed7li5cuWM07AbDAFDwBAwBHIDAdOQ50Y7FSgl
U/OQhwEDBhS4HvbjyiuvlLPOOqtAtFtvvbWAScn7778v3bt3l5o1a0qnTp3k6aefLhCfqX3CyfuT
Tz4pEPbdd99J7969pVatWrL//vvLvHnzCoSH/diwYYNcf/310q5dO6lWrZrstttu8sEHH7jbNm/e
LCeccIIbBEAMCSsJ84JUZTz88MPlL3/5i8Md0wbKsnz58nj0kSNHynHHHSd169aV+vXryymnnBIP
4yRd3QhPhyvh6QT753PPPVfatGnjTBtoH7S+CDMGYLVgwYJ4EhBXro0ZM8ZdS1f222+/3cX98MMP
5c0333Tn3Eu6SCwWcxrczp07u7zRRDOoQNavX+/i9+rVy+GCBrply5Zy4IEHOvLsIoX8t3jxYmfq
AaYMAGmDtWvXurtmz57t0j/mmGPc7yOPPNL99qZLYeE+648++sgRcv+bI/2tZ8+e8tJLL8UvU1fK
7tNPVzZuQutOW6Dpvueee+Lp+JOhQ4e6vl6vXj030GEWJ1H69esnS5culSlTpiQG2W9DwBAwBAyB
bQkB/ciY5BgCL774Ykz7YExtuDMquRKEWMWKFWPff/+9u0/tamONGzeOKSl3v9XOOla1atWYks2Y
Eq7YRRdd5PLh3IuSudg333wT06n0mE6l+8vuqKQ1piQmpuQtpqYX7l4lqQXipPtx3nnnxZTQxlRj
GVNyH1Ntd4y6ImqLHrvqqqtiqv2OzZgxI6ZmKS59NVEokOSwYcNiqkkscC34Iyw8GDd4rppXh80/
//nP2Ouvvx5r0aJF7Oqrr3ZRfvvtt5gSzdgf/vCH2MyZM2OqrY2piUfw9li6uhExHa4FEkry4/LL
L481b948Nn78+JgOgmJqJuQwIipt3LRp09jgwYPjd6rG1pVfCWAsrOxKBmNK7mNKDGNKfN05v5UU
u/SeeuqpmGpyY3fffXdswoQJMSXMsUaN/p+9s4CXqtr++KKkpVtJCRGREFBUnoD5DGxRUdQ/dnd3
YzzswkB9+izsxAILkJKS7kY6BXH+67vv3cO5cyfO3L6w1uczc2rHOr+zz8zaa//22rXd81q3bp17
Rjwr7TC4dLSNdu3aRe66666oPsl2unfvHtEOWuSDDz6IaAfMtY/LL7/cZaFNoAvneR+U7uGOtaMU
6jqJtDPj8vJuxMqpp54aUT569LR2QF1anfzpziXTjQSUzbtCOeAXFK7xLoIXbZjr3MMbb7wRTBZR
z7rDTY33LOftwBAwBAwBQ2DHQgAPl0kxQwBjtX///lFjNaz6GDA1a9aMqLfOZfn000/dn716T92x
coSdUaCTyNwxBpt6uyPeAArWU6tWrSwG+YYNG5zBisHrpUGDBpGwBjm6YaCoF9Vnj7tFVwz1gQMH
OsP7ySefzJIulcGd6nqWwgIHGORHHHFE9Ix68iNt27Z1x96oPemkkyLqlY2m8Tth7430sbj6MpJt
r7rqKmeQ//zzzxH17GZLqhNcI+pddsY51+vWrRu55557XLpUuvvCdGJuREdF/GF0qx7xSIsWLSIY
jEoZirzwwgsRnVQbUc9yxBvk48aNc4YmhjrSt2/fyMUXXxwtI9EOhjVGKsa+F/JyL0HRURSXzncS
gtfYT3Z99OjRLq9OoIzNFvnyyy8jJUqUcJ0cLlJ3165dXbqwupH4kksuyWaQ0w7LlCkT0ZETV57O
x3B6xBrkXKTTzDM0MQQMAUPAENhxETDKiv7jFzeBSqLeYlGPbFqqw0ElD0PlCFuGxNXb644Zgmf4
HFoBogayqNEpnE8latg4nizpvagn1O+m3EKp2LZtm4uQES8xUTL22Wcf6dSpk6gx4yaUEk0FKkhB
CfV7IboM3OS1a9eKGm2OtqGee2nWrJloR0QGDBjgkzq6SLJ7iybM4Y4a5A4XootAF4KWtGLFimhp
6p2X5cuXy8cff+w+XIPigqTSPVpIgh0mUKph6Wgq6ul1zwU6E+e80O74lC1b1p1iPwyn2rc7aB9e
2IfCAZ55IdB8kCClx5d76KGHio4uyOuvvy7a4XQUlLPPPttdzq1u2nmS5s2bi45IufKCbcvXzxac
eHZez+A12zcEDAFDwBDYcRAwg7wYPkuMB7it3377bdraY1BMmDDBGVAYaN7AoCD1YAp8ZOIfI9oP
dVxkzqcSDHEMZIxSL57H7I+TbTF8MA5HjhwZN5l6Dl34N2JFf/jhh6IeQ8dRRsegYOBgrKlXOng6
up/qejRhnJ1gnGqlpjgjadddd3Up4S8rPUEWLVokvXv3FoxkuNpIqntziXLxRYdKaTSucwBORLfR
EYRoiXCvCT1JtA71YMuJJ54o6nWNXk+mu0/EBEM6RbGiVBlX1iuvvCLBDxz73Ipvd8F2xDwF+OR0
FvNCiGICfsFn68vlns866ywXKQg+OO1K6Sfucm51g5/OHAvPG49XPxXxPukoRtLwol5f2xoChoAh
YAgUXwTMIC+Gz46IFxh9ygtOW3s8jHjj8JRjnAYNp0MOOcQZOkz0xAv52GOPOU8rExoRjF8MXW/s
YqCxz5aJjjqc74w+DA2MMybVhRUmajIpkjCJGD9Mqhs7dmx0UifGPnXhmSSmOOEB4wleYgypJ554
whnHfgKgT5vquk8Xb4sHmEmveMbpEBEzGsGLyQRTOjNKOZGWLVs6HTxOqe4tGa7x9Ig99+6777qO
Ex5oni0eaPALitImhImZTJJlAqmXVLr7dMT1ZiInnQ6lokQ91LQj2iMdAbDG+w4W8TzOvqywW6XW
uPuhLRFFhcmiSrMS3x7DlpMq3WGHHeawiZeODiudrxtuuMF1anwHLIxuPAPaAEa37yT6NqH0Jze6
w2RP2jQxyOMJz4wRFybSmhgChoAhYAjswAioMWBSzBB48803Hd9UjaQcaa50CpefCWWxAo9cDXV3
ncl6GpklmsTzXPV1cNf91nOrhw4dGlHKi7vGVo3DiC6GEs2famfZsmWOcw5vl7rVwIzy5NVwjKgn
1/HMuQY3HY46E0BjRaNgRJQO4PTQKCGxlyOprmfLoCfgkDOJVo1dVy4TDZnAicCfZ1IleMALZsJn
rF7J7i0Vrq6SJF9+wiR16wIyblIuOsWKUp0i2lnIcjqM7mRQozGincDo89VFn1w5cNKZVApvnOcC
BmDDJFU43RzrYj0R9dpHGjVq5PIwwbVfv35uP9UX/HOlAblyKAsOt45CZMnGRFGuJeKQp7oO7x/9
4ZPHE+qkfI3GkuVyKt1on+SL/SjNyZXDRFuPmUZvcW07yCHXjq6bLBw7TyKLEnZgCBgChoAhsEMg
UIK70D8ME0MgigCePbzc0BHw7qYjeAPJ27hxY0dhSSevT4unlUV+oBLErlBIqEE1YhzX3acviC0c
Xp2IKHiaNUqNi3cNxSYonIfTnozvm+zegmWluw+XHboMdeMhjxXq5XkyqkL4y1gJo3tsnuAxbQY+
ORSQIB0mmCY3+3jcGQHIj7LRixUxuQc8/elKbnTjubGKp5+3EaybUZhrrrnGjTR5/n3wuu0bAoaA
IWAI7DgImEG+4zxLu5McILBq1SrXeUiUVSOIiIYTdIYuBnk8YzZR3rw4T4xt4oQnEhZB8kutJ0oD
n1zDR4p6dGXGjBmOg50obUGdD4t7QekDlQT6DtSroiJ07ujgMlHXxBAwBAwBQ2DHRsBW6tyxn6/d
XQoEMHbwRCYSFkhCiEZDBJWCljvuuCPLAkSx9eP1TiUY9IxYwFdmQmRRkLC4F5SueKCLmheaxbFM
DAFDwBAwBHYOBOJ7yPt12znu3u4yKwIDE3tisya0I0PAEDAEDAFDwBAwBAyBvELAoqzkFZLFsJyx
K9bL+3P+lCWbskbkKIa3YiobAoaAIWAIGAKGgCFQbBEwg7yQHt2mbf/Iwo2FZwjfPGqOdPhwrJwz
bJr8sXpjIaFg1RoChoAhYAgYAoaAIWAIGIe8ENoAxvCjExbIln8i0rJKefnksL2k+a4Fyxd9b/af
cnqz2jKoWwspXTJrtJBCgMSqNAQMAUPAEDAEDAFDYKdFwDzkBfzoP5q7Qh78fb68cXArGdWrvWxV
o7z3d1MKWAuR1Vv+li61KpsxXuDIW4WGgCFgCBgChoAhYAhkRcAM8qx45PvRoOlLpbMawic3qSnl
SpWUuev/kjHK5Z64akPouj+fv1LaDB4tfX6YGjpPbEK886XMMR4Lix0bAoaAIWAIGAKGgCFQ4AiY
QV7AkM9WA3yvahXkbzWI+w6bKue2qOM0mL3ur9Ca4N2etGqjzFy3KXSeYMIhC1fLGi2jTfWKwdO2
bwgYAoaAIWAIGAKGgCFQCAgYh7yAQV/511apXKa03K+0ldK60uO9HRvLi1OXCOfDSocalaR/5ybS
oEL2FRmTlfHjkjXSZ+hUmaedgtvbN5RudYvOIijJ9LZrhoAhYAgYAoaAIWAI7MgImEFewE+3Rtky
MlQN41lrN8lI5ZATbQXhfFhpVbWC8ElXOtSsJO/3bC3P/LFIHtAOwUV71pO65dMz6tOt09IbAoaA
IWAIGAKGgCFgCCRHwCgryfHJ86tNK5eTccoZv7tjIxdhZfzKDO54Ez0fVvBwvz1ruXy7aHXYLC5d
xdKlZF81yp/cv5mUVO/8lwtWpZXfEhsChoAhYAgYAoaAIWAI5D0CZpDnPaZJS+yzR213vWa5MkpT
+Vv6j58v7ZWCAq88rPy0dI30/n6K3Dp6TtgsWdJhmO9appSs27oty3k7MAQMAUPAEDAEDAFDwBAo
eASMslLAmPdqVEOubtNA+g6dJtsiEcEz/pnGIU9HSkhGeBS/TSevT1utbGnnqffHtjUEDAFDwBAw
BAwBQ8AQKBwESkRUslXdr1u2U3YibxHY8Pc2Wb55qzSuFJ6qkpca3DV2ntw5Zq7ULl/G8coPrLOr
yMBheVmFlWUIGAKGgCFgCBgChoAhEAIBM8hDgLSjJlm8cYss2PCX7KGrhOIxN4N8R33Sdl+GgCFg
CBgChoAhUJQRMMpKUX46+axbPQ2byMfEEDAEDAFDwBAwBAwBQ6DwEDCDvPCwL3o1G1Wp6D0T08gQ
MATCI2C0u/BYWUpDwBAoUghYlJUi9ThMmbxAgOg1U9fkbBXTvKjfyjAEihICs9ZtlqWbwi88VhC6
o89s1SunMmX1Rlml77mJIWAIGAI7CgJmkBfSk2RBoIXK4d4ZZZHe9+OTFspfmYsixWKw9Z+IfDR3
hVu86Ndla2Mvpzy+8Ofp8siEBSnTFUaCHxavkQ/13nYWYcY40YT4ZJ89noGCPm6ZuXazYGRt4SCO
kP8Pvc6ch6D4soPb4PVk++SJFc54FdgPluv3fR5/7NP788Et7/kEXWtgfozepPH5g9tgXvZXb8no
XGbXNDZl/OM1mr/Dh2Pl95Xr4yZgYjlpClpGLF8rnT4aJ0xuz4ncpwubXTF8Zk6yWh5DwBAwBIok
AkZZKYTHcvOoOfKoGowYHy2rlJdPNOxhc51YubPIdF2l9Mrhs+TMPepI2VLZ+4QYECv+2ip7V6so
jSqVlf1rawSYkIJR9/6cP+X34zuEzFGwyd5T3dDxOA1/uTPIvRrN53aN5oOUKVlCetSvKr2b1pKz
m9dx50YsXye9v5sic9ZneEuJkf9012bSN/M6iehc3TlmXtR466llfHPk3s7D2vSd31w5wa+vjmgj
hzWoFjyVbf87XVSr5xcTZOhRbaVb3SrR690/G+86DpwP6h5NoDtfHN5GGmq73Ov90e603pbsp22U
Z3rJnvWlQumMNs1quEQz8h1P8vx89D6yW8WyKXX/W38b+v00XV6bvtTpU0dX1P3wkNZaT2U5X88P
0vPXtd1N7u3Y2OlAm9rngzEy6F8tHb7upH49NXmxNNB5IrF48H4dN2Sy/LR0rS4SJpqntrzSrYXs
wkEuhQ7KJ/NWyMP63H7T5/v8gc2jz9sXffTuNaRq2Vny3B+L5Zq9d/OnQ2+v3KuB7PfJOLmzQyNh
sTUTQ8AQMASKOwJmkBfwE8Tz+6D+Ub/dY0/3R3LKd384g2T0ce0LWJPCq47VQsce10Gq7pK9+bFy
6cRVG2TWKZ1cjPZ0tXxo/ALpUa+qtFFjvijKTfvsLpv//qcoqpZvOlXSRajGaPv+U72xg6Yvk3OG
TXMrxfZpVtsZl22rVxSM6DoagvNnNRCD8tyUxUIH9rkDmstJTWrKcqU6DJ77p0uCYTvxhI7OmD/6
60nyTNc9nHFNJy6VHKRGOO2P1Wq9Qb5WF8r6RUdkHti3cTQ7ug8/pl30mJ3GlcvKXF0tF3n5oBbS
QdszBv41I2a580/pSrifz1/p9P7Pfk2141lbNm+LyGDtjJXQFXKRVLpz3//T1Xgf7dJU0PVK9Qaf
+O1kmXNqZ2EEic78gImL5Ao1TGvpImN40Dn3T8Drj3d+gI5E3ZdptLuKM7+u+HWWMFI17eR95acl
a+XcH6dpB7iC3KjtM7fywtTFcv3I2a5jwPPEQI8V7P7LWtfX38IFcpneQ7odgY6KeZdaleVhfd+f
PWCP2OLt2BAwBAyBYodAdouo2N1C8VIYz1Zn/SM5WY2LSas2uj/wWZHNzggNa0TyZ3/9b7OlXfVK
8sbBLYsNAKwM2k09kF7wQrJiKAJl4dghk2R95hD2kV9NlFJqvFy+V325oFU9nyXl9hs1jC7eM3x6
X+DhX050hhYGxHw1tvDkvqiePVZUReCl36CYf6vlL920RVpUqSBvKfatqmassIrxc496Q9+ZvVwW
btjiOlsYY94zidf+3nHzXVn76fMPa0RgZO3/8Ti5Xr2hp6pnGcG++ZfieEazWg4baA3XqQFEu9io
xj66Y5xi4Ho544ep0lp1nbZmo3yuRije6kHdWsqhDar6JHG34ILxc5Yalf5e4yZMchJ/MSNAfDrW
rCyvz1gqw5S601W9vXTAbm3XUPHMGCH69+7Vs5QEptz3uS0yPOq0l+syParcAyvc7lIqw8h1XuuQ
K96S9yit6wvF4v5MA5xni7F7XKOaUR3QPdkquhjW+2iHgs9bakD/mtmh4L4Y/blI264fBcIA9ZJK
99dmLJND9DlepYuIIY+pYd5F2wE6InXVY15VQ5XSAX2kcxN3LvZr3Ir1rhPUo/72EQDS0Ebe1XbK
ffNM3pud0cEZpHXmhUEOrmdoZ4t7fHHqkli1oseMdDBSNkk74KxWnK6Q/78zl6WbzdIbAoaAIVAk
EcjOFyiSau44Ss1WY48/eIak+w6bGjU0Zq/Lyo1NdscYYBjzM9cVr4mL0BFe02FxDBOMBTDwsrt6
NQfrkPxtapwhb3Vv5Y7xioYVJnnBMYYGlK5Ao3lNvbcXK+XgVR32H/3nejfk7su5b9w85019R0c2
Jp+4r1tttZQaHF7wYOLVPL9lPfX+t5fb2zd0xpC/jtd+kN47ulFXWMFz2FzzULaXHxavlh+XrJHu
WiZy2vdTZKgauE+qZ/a9nntqJ2+z3DZ6jrvmv2ZpW7lDqSMbtePwmt7fE/s1k0xmhU8Sd4shPOrP
ddJm8BhnED6jFAM6JzmV4eqBxiAk3Cbx7/GOg93danj/rkZsUKBV4MX1HuzgtbzYh2JCOyQeP/KF
dmigSTXbdTsFYoPqCr7BTyznmlY8StsLXPHuaiQixzeu6agqPZQW88q0pWnPF+EZ+k4K5fl9ziP0
Qe7QNvbM5EVR/d2FwNeElRud55nVgIOyaONfzpuOAwCdodbQ4ZqTi0mWwfJ3105KZe04bX+7g1e3
79MZ4BWaoL9lORHepVnakc8pDz0ndVoeQ8AQMATyCwHzkOcXsgnKXalGRuUypeV+/RMsrR5gOKB4
kTgfVjqoN6m/esXghhYn4c93bzXAVsaZRIbhyR/svEwqAAYIBnw6MjvTWMFrmRM5uF6VqHd9lHJf
P1UD7aFOTVxR3rjYogZtfcUdGoIXvNgvTV0ql2pHA082EutNZuElPnjcoW6kI+con5oRA2gS0DGg
fXTVlVXBiAga0C76qD6MQPDppF7oN9RzCN0Bw8gLq7LSodDHEFrwTvMhKsbb6gGG03y1UjPwgmL8
hymLUY9D1TBlAiGeY9ovWCEfHdpa7tORg8cmLnQdBjoZj3Zp4jymSzZm4FQtDrUp9A0kSXjEbtWc
9/qrhascxxlv+TmZnnifrbS2y9hnWabkdj/GSUojQaC70Hm8JZPyQVuGhnO/3tv5OskYnODN4+mG
BpNK6PQE23+lzHchGFnklCa1dNRlnvstiTcqxPtAx4eRpqD4DhWe+75KH7pFO8FVd9HOsnrI6Sx5
DnwwT37sU3+tcrvkONoKhj/vJe8Foz8mhoAhYAgUZwTMIC/gp1ejbBkZqt7NWeolHdmrvUB1QDgf
VjAQYo2EsHl35HR+chdGPbSgdAXagRc6DnSaMLSgSUAdwIN48OfjHf/5NDVSH1HDkec2Tw0fImVg
0OeHHKoTFOkEQPVAD+gvGHaIDx2HoUYEFy8nqYcWT27QID9SDdCspplPnXpbs1xpbXPlZU9te2PV
qzxVqS9hpawasKcoXhiVYBRcjKpxpXKOGvSC0oPgYV/+60y58bc5zpjlnhE85fkhGMbQQr6Yv0qY
18DoSuxk27JqkOOJTiT3Ku2jldKXnlCu9veL1jjPs08LXYnPem1DUCsu1XujXfZrWdcnSbilXZHP
Cx0tpLr7ncgYYaGDe2f7RtJn6FQ5OobqQ9pm6hlnhIGRKDoWXvxvDbS38jpMAgXo0YkLpLwayAVl
jKPLZv3tW745g97ldUtniyHObdGGTAwBQ8AQKO4IbHf1FPc7KSb6YzQyTH53x0bOI4zHEIkdVk52
OxiceCs9nzRZ2p3pGpP08JrlNAZ5MN90jWPOs/Icd8qFUrP2rK7yhlI+4IoPVK84Ur9CWWfojlSv
en4IRsdZ6l2FUvP+nBWyTQ0szyf3oyTHNKzuomQQKcN/YkcKqqXR6fP3QRSUy9SQrP/WCIGHvqt6
Un/RSY5Mptxu4vnU8bdwic9TI/Q05bwHjfFgasqCE8x9fqeUHDo4jCiAe362cwzwIYtWyafzVrrI
KXjv0xGMcXj4byrFis5PvFB8GP7Mg6DDhxc+jDTWkZDJGjnFCyEfkdjfiRPVK99KvfF4ymOFTiWc
eD9y5K/Xr7iLGxmAuw2NivYFdSW2bDpedP6Cevgy8mI7Td8xVc/RhHJSHu9r08rlC7QTkRM9LY8h
YAgYAmEQMIM8DEp5mAZqAQJ1gaHj/uPnu+H5ZBPHYqv/aeka6a281ltjeMKx6YraMUYWIeC2aMQJ
hH0+/CnnleCRHKIUhJwIHuav1GCik/S2GtzBCYbv6sQ3QssxzL5PjYrKzS2p95ExuoFXsZcadtA5
MGCgsGDMfB3Qg3PcK95KjwPHYQW6A9zzG3Ty5gnq/fYdBSaX4t2F9jRMR14oGz2fVm5xXki/H6fr
JNW/5AWNcrLotC7yuHLPmeSZF8LoAxFXCI0HD3j4snVuFAC6h6dZ3Nxud41OskKeVe466WcoBt74
xNgct2KDi0+OPkwM5jjoWU6l57ENa7iRBCZH9tL9WPlb8aTM4Ceexx5j/C7tZL+jHeUx+uw/1rB/
RFNiBIM5H0RMGaM8c+/JTqU7vxPfa8cEAx6KE3G3GTHoHjMKQ0eG0H+EL4wVOgDQlIYszJgI6q/j
CT+hcQ2poh1YcKYj+YFGf/K/TT4dmJ/07R/6TNKbOMnrzDuEkY8Qg535AeAQFN5TOpTp/PYF8/N+
HZZiUnIwve0bAoaAIVCUETDKSgE/HQy3q5V20HfoNGc84ZX6TOOQpyMlMn2TfptO3sJMe+2I2S4M
m9cBryvykoaO81E0YuiuPmnoLQZcy/dGOaMobW+nUjKI9ILxzITDKzTCixeMh97f/+EMGIxxDIFg
/GQoF+dpfOiT1YDhHuAZv3xQc59dmr49MsvEvnKv/uyu4XEP0kqiGWJ24IvDG/9FDa8gzxnvJrzw
s9WwJfIKBlpJVQCD65JAVA/aCtfSlRHHtss3DyQTEwlx2VmjhyDgAD3HT+zl3IXqWYauAb3i4l9m
cMpFkbm1XYah1/7DMe4cX947/aXGCT9c6TlhBIO1q8YQx6A9XjGLFTjVwTq4/rx2Tg6smxEbP9he
iXpDVJjbRs91becp7RTdpCEbEWgVl2l7Oqt5RoccIzVYbqzueNSZKHr01xNdh5WRhcE9WzvqCXX6
8ImUjZeftk5HIPiUy6nhfb3SUQYoPx8caSteBnRpJsdoWyeOO6fxtPO7FBTPNa+nEV3SETobxET3
cqdOJubDRG1i0CN0TJ9QfIjqwghKusJ7wEgj8xhMDAFDwBDYERAoEVHJdiP9umU7ZSfyFgE8gkxy
M/5j3uJKacRUxgufTkhIDBMmxmHEEnWDjlKsmYCHdpEaUk3VWE8UNxnvLFxkosYEJ+Xl/V1mLxEP
5BLVHapKmImD2UsonDNw3ZfopFEoQomMM7XfdALrJodpItpL4WifuFZ+WHkezBPx8xsSp45/hc4I
HvJYOkn81NnP0qFo8s5IN8KBMyBW4JhjuFdXelBQ0L3Of4e7ziVrAuR1W4ZyR9z2mVq2DwsZrD/V
Pp574q9nCx86cFiqrHbdEDAEDIEiiYAZ5EXysZhSuUEAKggTxhiSDyveIL82B6sGhq0jXrpjdEEb
qCaJZLh6qJlIaZIeAi9rqMGrkiytfn3b3TW6SO4XwUlPq8JJjVHPpE6oKmEFuklb9XIzedjHQg+b
N0w6Oil4ycOMDsUrj85nBZ0knK1jbAZ5PLjsnCFgCBQDBMJbLMXgZkxFQwAE8Lil63VjQmEz9XwX
tNyh/N9kYRBjJ2YWtH7FtT4oRayGm0iIgb2zSE6MXhdSU73XTKrND3Gdg9TRHxNWHW+V34SJ7YIh
YAgYAsUAAfOQF4OHZCoaAoaAIWAIGAI7JAI2qrFDPla7qfQRCD+GmX7ZlsMQMAQMgdAIsMgRCxCZ
GAKGQPFDAKog0YhMDAFDIGcImEGeM9xynQsO5UKdUGViCBgC4kIPdvhwrIbHW58FDiZzEsqRTyLh
XYLzTOSSRMJkW9IwMdcLJfqy/Zb60hUmZzMxNV2hKiYAT9Kl49MJgenr8ToHt+mov0w7P4QjjEeZ
yq1u6OhXZg2GO6Rc9I0VzgSxZ58wloTwJOqRF3aD9xvc96mC5/y+v+bLye2WeyIOemy5HPs6g1tf
X6rrPl1+bMEuVl909MJeAGp/OrpNdZ1otj2+GC+faEx/E0PAEEgfAeOQp49ZrnPcrKHQHp2wwP3R
EHP5Ew17uDNxWnMNoBWwwyHw1OTFLiY1ceSD0k4nFk7Q0IgIK0wS4u/8VnWjK7E+oPG579JQg96g
bajRbX4+eh8XaYY8rGB6jkbd+UTjgmNsMLnxPzpR8VKNpvOwxh6/QcMpBgW+NaEowwjxyI8bMtmF
TCRyX++mtd2iTNkmGsYp7Ndla6WPLrTEqABCvQ93buIWEIqTPNspVjXt+cWEbOcf7NTErW1AB+RX
nRDsQ3/eN26+3D12rmzoe4DDgM4PsfK9HK+4vn5wSxdNJbe6Ufepuk7C5/MzDDMfVvFd5fQTPvTw
LyfKB7rIll8VFaMQfcDgJ312LEbV+7spMkdXwEWI8PJ012bSV2PxH/jp74J+8YTFpwhF2krDnsbK
/7WoK1e2qS8dtR6iJP1xYkeX5K2ZyzVk6FQ5Vu8f/VIJE1H7aXhT1hzAQK2jISE/1HvZr3bGysAX
/TxDnp+yOFsxRKohUk6q69kyhjxxvuo0SHW6ru1ucm/Hxi4XnRnCTw7ShcwIN9nxo7FucapXdTEo
hA7PHu/+Jp/q/89RutLr0TrBfOs//8jXR+ztrsd+pbrOegw8g/t0kSoWKjMxBAyB9BAwgzw9vHKd
+iNdgIMFQ5hwRii0U777w/35jD6ufa7LtgIMgeKIAB7uAbr0/H2ZhkTwHjB6TtIY2ffv21gmqyeZ
RYEwRGee3EnjdK8TOrf/2a+pnKkL6WxWF91gXZgpGKP7JH2/5uvKtr/q6qIsQDNaY3t7Wsz/tazj
DJEXpi5WI2qJjO7V3hmrwfqT7V/x6yy3NP20k/eVn5asdeE299Y6iK2dSjZoOMILNcwmRimhHu/W
TgXGWqdalaNGdLIywAXBsA125gkJSSx0vMq3azx0jC0Eo5dzPt8Nari119jlLFDGQmMnfPOHYjtf
HlCcc6vbYxr3nMWehh3VVjroIlIz1PDzkYTocJ3SpJZGwJnlYsUzufMZXYCIlUjH6G8gnSaMy7a6
qNFXR7RRg7eM/BxY9OjN7i1lw9aMBbVO1mfbTH9D6YQghG70IxXEij9A4/Z7YdVXRgLAAEMVo35/
jT//qhqxnPOLlfn0ibbPqbHNIk+PaqfuoLpV5EqN5HPit5NlzqmdoyE7CWXrcfflBCdnp7ru86Sz
JfY79zFg4iKNgd/AhYTkWXPun6AXPLCfTvlh09LRfXTCQqHD2EMnypsYAoZAeATMIA+PVZ6kxIvR
Wf90T1Yjg6HquWoszIpsdguktKlWMVQdeJ5YKKVd9UppxdoOVfgOmohVIK/WuMcsA47Hrp2utjlA
V51kNUMvLA3fWkMMTluzUT7XFRIxlAZ1aynrNWb8/WoIrlBvK/9nR6v3578zl8lp6nV6uusePnvS
LQYJf1Rs8abyZ4VHjjjRndRzRdxwlhJn4ZgPdGXKxmpo4Mny8atZofJaXaUTQ2KT5umibYhOnY8f
jSF6v3b0pqze5DyNLLR0nxpXXlJd9+nibfNbdxZ4wVjqUb9KvOqFiBoYnXwwxU74ZrJbBIfVIImm
c5EueuOj6lwWWAwJQw7D4KNDW0c96t3UiPKCx50PXk4WKUpnxUie27u6misdBfR6T1dyRQbpqpZh
DPJD9Pnz8XJNm93kFQ3ViLHovdr+WrItBmk8vf+l98nvBN5m2kqsnJq5QA/nj969hmDIL9uUQaHL
rW6s+nmwriiKwYrwjgXfs8f3b6pe7NHOMYEBR8fhOvVs8/tHO+e53tquoRDpBQmumBtctwGPbFU1
tIP37w3yxpXLZjlPOZ6aw0q3g6Yvk4ZqONMZCZZPumTymj5f8PGhIAkL2UUXtvpW29kRmYtRlVO9
gjrFlpfqemz6sMd1tR2DB6vOPqKjLYUhROVprs/tmzgGOZ3Cdh+M1U5hRL49sq3rbBWGjlanIVBU
ETAOeQE/mdlqgPNjzdBnXx0q9StUzl6XmP8aqyL8RYz5mbpQikk4BLboUCxLg/96zD4y5Mi9XQzj
I7+amIXPysIzd+iKghvVY/uaDvM+oQa7/rc62sNExRsDmVDOw9UofuvgVs6zhwGVSvBUnTl0qjO6
f+vVTj2H+0S9d3iv6CRAGaCTxuqOL2s9xI5+I3PJcigAPT6f4Jawf2r/PWSkUhH2V+8fsdYR/vxO
1IVSMHq+/ffeMviQPd2CLu5iiOs+XbxtfutOnRNWbnTxpFMtfoMu3+u90lFqo+/Q8WpYQVXpoR5z
jNnYORme6hI0wuPdY07OLdr4l/M+YkTCTYc6c5a2rzmZFJR0y/xywUqHwYF1tncYwpRxzchZbpSN
kTY+LDiG4P3G+37b6DnuON4XHZaHlTp3+JcT3LL252vHJp6kq9uJuuLph2qUn6Orx9Ip8O3Ul43h
+GCnxkqtWSBn6XuBl/629g3dZVbIxTuO55lRAzjuORGex2lKm/GfIQtXR4vpq53ed7Qz9dLUJW6E
JJ0QinOVRuM7ChTo9znvhXkB/nmwZVQnKKmuB9Oms0+n8g7F8Rn9DWFxs8KSVmqQ06mKFZwZrMzL
fxfUGBNDwBDIioB5yLPike9HK5V3WrlMaefNLK1rYMP3e1H/GDgfVvCg9VcPSAP1apmEQwCjjCFs
/uAn6Z8CXk2MhT83/53FU8NS6ixFr/9tUZm9bqmLx0wZe1Wt6FbhZGl2httZYbLVdkdnNE+8HToF
LGu/V7Xy2TxoRyqHkz+rj5TrjAcO43pppsfyU9WTCYssPe6H4e/W+OVentUhf9rCwINaRPVmON5L
qus+XbJtfulOnbPVmMFDWyq4Dn1AGZ7ToWp0T9KOC5xwFm/yFABoDfcr1eL8n6e7ez9becZ4LRlx
YJVMRiPSWSAqUG3SXb+sPJ75vmp43qIe3aq7lBI8qHjP8d6GFUZvblEvMdQLOPDpSMsqFbK0X35T
vNylbQQO8Y8JFp6ivX2shvNw9aIfqe25YZyY4znRDR43vG86l1BCMMDv7tjI8Yu9bheo8f+aeqm/
1JGob7SDzGqhXhjRgPMO9YUOcvd6VZUi0sR1MnyaVNsGFTI8tT5dFX02XlopZrz/GPzwv99SCkpY
4bkHVy2tpPeJ0C69lC1Z0nUq/LEf5fLHqa77dDnZQgeiA8BoGSsPF4bwbjIyFSv89jFPgo41FCIT
Q8AQyIqAvRVZ8cj3I4bIh+of5Cwdmh2pnFX4swjnw0orpVXwMQmPAH/8eMsaVNzFUX1WZUbF2Og8
ituxxzDZbtJsL99TIsqqG6osVp7KLmpE+MmE21Nm3yP1c8ppvVFpRs3e+U3qq/HJ5KsrlevphYmA
u+gfOX/WCMfeszhbva7UHzSyfT62XP+XGi3x9A5zPVhW7H5+60590C5Ywp1RIyZdxgqe81OUYsFw
+L+UChFccRJOMh9GEaARXfrrTEdP6aeTy+qrUaZFOmPJU3tiy87psX9foY6VV+MbysWjExc43dIx
xscoXYeRGmg3ngaRjk7n633urZ23eML5k9VAu02N/Xh8XoxiPtA82gwe49onEwC95FQ3ng/3woeJ
g3fpZNJLfpkhJ6jn3OPGU4b6RVQdFuUKCrSUFw9sLi/oB8Pucn2mN/42x3HKg+mS7UP9ip0gHPTa
QpXBEQLNJB2DHP1pa14YyUKqB36/a2mnHspNIkl1PVG+MOd5fe5s30j66MjD0drJD0rp7K+Wu4yh
nJcyT0eBm+1aLluR6FbQKyFnU8JOGAJFGIHtbokirOSOpBreEjizeIyIsOL/JFIN1wcx4AfvbfXq
wFs0CYfA9cq/5g964gkdHe8+1gjwpVQL/LH6c7FbP2kwnb8xDP3fj+8gi07r4iIeMKnNR9iILT/2
uIEaohj+vq1ku64G/kj1ciYSvOfJrifK58/np+7UgeHIpDQ85fFkT+18Er0B4ylojAfT4hHHuGRk
4QvtfCH76DwBJD/ek/rasaOTxGjLIKUYYWxAXUnnPcbgPUQ9/xiPTEzND7mjQ0P5UXnSRDdJJIwg
HKijR0Gc8ko3DDM89TzfbwK0kUS6BM/zfvGenqWjHt8tXp2FXhZMl5N9JgEz6TReBzBZeY11BAOK
mRcmoyLpPHefN9GW6Dfv65yQYD2J0sY7f6JS36CNxFJlaig1iEmeXhj1Qmrmsbd6qs7B2TvBfChC
InJvwVCYXh/bGgI7OwJmkBdwC4DHjMCbZPiz//j5big22SSgWBWZiNRbvb23JuGHxubZ2Y+Z5EWY
Ov4IGMKHxlFQgqc7g5b0t4t+AM0AAy6Mdx0dj9COBEO8t+jz5s+afHiDiSONnNaslpsMxx8wsZ+Z
vDZQvX9eUl336eJt81t36sSIhioU5PnG0yX23MdK7yFiESMEPFeiX4zRKCreM8hkRjzD1ynPmsmw
8Ku/V8OOUHcI+LGQyUKlA2GnsJ+o0xNbNx0DPL4Ys1Bt6PAwmdG/37HpY4+pB2Mcrjc0G+rmw/PL
S2GSMuEYfwpEKiGcIFFtmEC5RGlR4AbnG286klvdiHyD0cX7xrN5UH/jGDU4WEdxUglx4uGeE6WF
5wVl5vUZS53zIhGlKV6ZeOY9pmzDdn7jlRU8x/OlDdHp4z27T9sfI17ddeQmr4TfppN0TsjrmXNI
0i2Xjsyd2gkKPnPKYL7DD4vXuN8QcH5BIwvRjpsGvNlrt2zLghvYBWP3p7rO856u7eow7TzHE+YM
cG+kMzEEDIGsCBhlJSse+X7USydaXa1DuX2HTnMeHzwrn2WGJgtbeYlMcoLfhs23M6e7SUPR/d+P
06X66786qgkeMgyS4GgtePJnFivxzsWmSXaMsQdflXBuTEiEU/vAvk0Ez6+fhOfzY6gj6FUyUxuM
1Y+U60o8beI1k6aeltHzuAwD5/RmtYVRE+qAnoAQdxjaBpLqukuU4Cu/dada+MPXK+VjgHKGL1Qv
t8eAa5lwsJtNyAdP+SY1ABGoDpftVd95nN0J/SKSzbmK20GfjnfvGx5ROObIIDX0GDnx0v7DMc7A
Xn3m/v5U0u2ALs3kmCGTpKnSkNATzyTvdhjBGw3vGEoGz9TLQ8ojv17pTKkkGS60nWC7ZqIfI2pE
uSDfXxoekhjsjNIgtEfeBz+xMre6QT06UyMWQcfjWXaptaujnxDCMFZi3zgmJsJt76yRSxBikx+q
HdLbElBAuJ+g+NGri5UiExQ87cSfR4LYBNOE2WcUZhSdvq8nuk4ccx8G92ydtqc9WV1+fgLveFjJ
eObb0WBCL3ONGOnwGN/abnf5XY99e2My60s678TTiKiLqDy8B0H5+NC9onHFU11/fNIiHW2pIkT5
iRU691AE6VjVUoeUiSFgCGRFoEREJespPerXLdspO5G3CGCI4Q0LhvHK2xqstHgI4B2EWxxm8ZZ4
+XNzjsgHGCmxk7zSKdOX0UiHzmM9hhhceJ6YNBzP+El1PZkevt780p2JkE3eGSkvKNeeTmtY4ceL
yZupcOX6XMUG+g9GXl4K/Hc6B3nNU89LHeOVhXccjydh6rabcvFSpn8OagTRRJhMGTT4wpYEr50J
07Q3OrFFTeCO4yHPS6oK90h7rvPf4a7TwGJCwQmkeYUB/zuMKPHfk5fY4knf7a0RLswoE3FjhY4e
o0KMCL2iNK+oDBwW3bUdQ2BnRsAM8p356du95xqBlzXc3lUaoi2RXN92d7lFPVNFUYqa7hg5eLAT
8cQLEsNjdNVCv5hNvHqHa+hJRjjiSW5xzU3d8fTJy3O5vbe81CWvyyoKuDMPoa1GxmEUJyeTfPMa
k3TKYzRt1ZatCTtg0PZYBGpwzz2zdmTMIE8HZku7AyNgBvkO/HDt1vIfAbyAxChPJIRXixdxIFH6
gjxfnHXPb5ygJfiFZOLVRfjJRJ723OKam7rj6ZqX53J7b3mpS16XVRRwZ34IIy5EFEp3wmle41Fg
5ZlBXmBQW0VFGwEzyIv28ylY7eyHsWDxttoMAUPAEDAEDAFDwBBQBCzKyk7UDOAnMrmLKCPB8Fc7
EQR2q4aAIWAIGAKGgCFgCBQ5BCzKSiE9EiaZMZu+IFfbZJn2KzSyAitAdtKQcCOUB1v0pksV0gOx
ag0BQ8AQMAQMAUPAECgkBMxDXgjAE6e36mu/uBnprd4b5eK2FoQaROVYcnoXXWK9uYvzO19D5ZkY
AoaAIWAIGAKGgCFgCBQuAmaQFzD+H+kCHCxm8sbBrWRUr/ZuBbve300pUC2IE4uwcIeJIWAIGAKG
gCFgCBgChkDhImAGeQHjP2j6UumsdJGTdRERYhfPVS81izewGEZY+Xz+SmkzeLT00cU3ciIsvoEY
jzwDB/s2BAwBQ8AQMAQMAUOgMBEwg7yA0Z9oLSAkAABAAElEQVStBvhe1SoIq9n1HTZVzm1Rx2kw
e114+giLOkzSUHsz123KkfYsZlFTV0r7QJe3ZrEYE0PAEDAEDAFDwBAwBAyBwkPADPICxn6l0kRY
SfF+pa2UVk73vR0bOw04H1ZYErl/5yZyWev6YbNkSQeX/GVdMvn5KUt0VbgRjkKTJYEdGAKGgCFg
CBgChoAhYAgUGAIWZaXAoM6oiGWkh2rYwVlrN8lI5ZATbQVJZ3npVrpCIJ/cyF1j50pLXTL77o6N
pF31SrkpyvIaAoaAIWAIGAKGgCFgCOQCAfOQ5wK8nGRtqnSRccoZxxDGIB6vSyUj0EjCyjylvRBP
/NtFq8NmyZKOleBG60qEd3RoJIc1qCa1y5fJct0ODAFDwBAwBAwBQ8AQMAQKDgEzyAsOa1dTnz1q
uy0cbuKQ9x8/X9orBQVeeVj5aeka6f39FLl19JywWbKkW7d1mzuua4Z4FlzswBAwBAwBQ8AQMAQM
gcJAwCgrBYx6r0Y15Oo2DaTv0GluQiWe8c8O2ystLUpkLufjt2ll1sR46EtqpJX6Fcqmm9XSGwKG
gCFgCBgChoAhYAjkMQIlIirZyuzXLdspO5G3CGz4e5ss37xVGlcKT1XJrQZEVGnx7iiZtW6zHNOw
unx8aExHYOCw3FZh+Q0BQ8AQMAQMAUPAEDAE0kTAPORpApZXySuWLiUVK5XKq+JClUN0lTcObulC
HjbftXyoPJbIEDAEDAFDwBAwBAwBQyB/ETCDPH/xLXKl71971yKnkylkCBgChoAhYAgYAobAzoxA
fMrKzoyI3bshYAgYAoaAIWAIGAKGgCFQgAhYlJUCBNuqMgQMAUPAEDAEDAFDwBAwBGIRMIM8FhE7
NgQMAUPAEDAEDAFDwBAwBAoQATPICxBsq8oQMAQMAUPAEDAEDAFDwBCIRcAM8lhE7NgQMAQMAUPA
EDAEDAFDwBAoQATMIC9AsPOqqs8//1zatGkjffr0yasirRxDwBAwBAwBQ8AQMAQMgUJCwMIeFhLw
ual29erVMmnSJKlcuXJuirG8hoAhYAgYAoaAIWAIGAJFAAEzyIvAQ0hXhQ4dOkj//v2lQYMG6Wa1
9IaAIWAIGAKGgCFgCBgCRQwBi0NexB6IqWMIGAKGgCFgCBgChoAhsHMhYB7yYvi8582bJ7/++qvU
rFlTevbsWQzvwFQ2BAwBQ8AQMAQMAUPAEPAI2KROj0Qx2v7000/Su3dvufXWW4uR1qaqIWAIGAKG
gCFgCBgChkA8BMwgj4dKET9XokQJp6HfFnF1TT1DwBAwBAwBQ8AQMAQMgSQIGIc8CTh2yRAwBAwB
Q8AQMAQMAUPAEMhvBMxDnt8IW/mGgCFgCBgChoAhYAgYAoZAEgTMIE8Cjl0yBAwBQ8AQMAQMAUPA
EDAE8hsBM8jzG2Er3xAwBAwBQ8AQMAQMAUPAEEiCgBnkScCxS4aAIWAIhEFg1qxZsnTp0jBJCyzN
lClTZNWqVQVWn1VkCBgChoAhkHMEzCDPOXY7dc4XX3xRJkyYkBSDzz77TAYPHpw0TV5dnD9/vgsD
SSjIO++8M1uxqa5ny1BIJ8LgWkiqWbUJEFizZo2weu7vv/+eIEXuTodpEzNnzpQHHnhA/vnnn2hl
9913n1xxxRXRY9sxBAwBQ8AQKLoImEFedJ9NkdbslltukV9++SWpju+884689tprSdPk1cW///5b
FixYID/++KMzTGLLTXU9Nn1hHYfBtTB0+89//iPPPvtsYVRdqHVGIhE544wzZPTo0Qn1eOqpp6RB
gwZy2GGHJUyTmwth2gTe8Jtvvlm2bdsWrerKK6+Ut956S/DemxgChoAhYAgUbQTMIC/az6fIavf9
99/LySefXGT0a9Kkibz66qty0UUXxdUp1fW4mQrhZFHD1UPAYlSpOmA+7Y60xeP85ptvysKFC+Pe
1qZNm2TAgAH56onOaZvo2LGjdOnSRR5++OG4uttJQ8AQMAQMgaKDgBnkRedZhNbk888/lzZt2kif
Pn1C5yHhtddeK+ecc06WPPfee6+ccMIJ0XNfffWVtG/fXipVqiStWrWSl19+OXqNnQsvvNBdp+7v
vvsuy7U//vhDDjroIKlcubIccMABMmfOnCzXUx1g3ODl22OPPaR8+fKy1157yddff+2ybdmyRY4/
/nipV6+eVKhQwV1jKL+g5PDDD5cLLrjA4V6lShWny59//hmtftiwYdKrVy+pVq2a1KhRI1tnJdm9
UUgyXKOVJNhZuXKlnHfeedK0aVOpWLGiez54TBFGDMBx3rx50dx4TDn366+/unPJdL///vtd2iFD
hshHH33k9slLuQge5Oeee05at27t6oa6gQGJbNy40aXHKAQX6BMNGzaUbt26peW1xUMN/aJv375S
q1YtqV+/vqAPgue6e/fuwjNp1KiR3HPPPU4nd1G/kt1bMt3Jj5577723K+rSSy9194KRG5Rx48YJ
7aBHjx7B0/n+rtGezj//fKlZs6Z77v/73/+y1O8PevbsGcXKn7OtIWAIGAKGQBFEQP+UTIoZAv/9
738j2pQi++23X1qav//++5FSpUpFFi9e7PJt3bo1UqdOnYga5e5YedaRcuXKRdTwjajBFVEjxNXD
vhc15iLKlY1UrVo1ooaYP+22arRG1GCJqLEU0WF2l1eN1Cxpkh2ogRFRwy3y0EMPRdS4j6iREeFe
kb/++ity3XXXRYYPHx6ZNm1aRPmyrvwffvghS5E6RB/ZZZddspwLHqS6Hkwb3FcPu8Pm6aefjigv
PrL77rtHrr/+epdEvagRNTQjp59+emT69OmRiRMnRpTiEcweSXZvJEyGa5aC4hxcffXVkd122y3y
22+/RbQTFFGakMOIpDxjNWAjyq2P5rzpppuc/krjiaTSfcmSJRE17iNq2EWOOeYYt8/x+vXrXXkv
vfRSpGTJkhH1wkZGjRoV0U5LpHbt2u55rVu3zj0jnpV2GFw62ka7du0id911V1SfVDu0c9rtSSed
FNHOaOTdd9+NaGcwol7riHb+3HntXEQGDhwY0c5aRDtxrshU95ZMdwqYMWNGZNKkSe4elJbi7p22
F5Tnn3/etTewDEp+v2vovuuuu0a0U+reE95jfhO04xpUw70/uqJv9HlluWgHhoAhYAgYAkUGAbxJ
JsUMAYzV/v37R43VsOpj1KpHLfLII4+4LJ9++qkzktR76o6VI+z+1OfOneuOMTIweC6//PJsVain
MotBvmHDBmewYvB6UV5tJKxBjm4YXepF9dnjbtEVQx3jC8P7ySefzJIulcGd6nqWwgIHGORHHHFE
9Ix68iNt27Z1x97ww2DUyXXRNH4n7L2RPhZXX0ay7VVXXeUM8p9//jmbQUY+neQa0ZEFZ5xjsNWt
WzeinmRXZCrdfb06ihLRURF/GN2qRzzSokWLyKBBgyJKGYq88MILkdKlS0fefvvtiDfI1YsceeON
N5yhTkb1dEcuvvjiaBmpdjDI0R9dg/Lggw9GjWXq5kOHkOeApLq3ZLr7engHMHR1dMCfyrK98cYb
I+qZz3KOg/x81yif58HHC20gnkGuIwTuPB0LE0PAEDAEDIGii4BRVvRfrLgJVBL1Fot6ZNNSXQ1Y
l0eNJ5ePLUPa6u11x/Bkq1ev7mgFnFADWdToTMifdZkyv6AObN682aX359UT6ndTbqFUMCHt4IMP
jptWPb2yzz77SKdOndxENfjMavgJQ/cFJdTvBSrD+PHjZe3ataIeSEfbUO+pNGvWzE3wg1fsJdW9
+XQ53aox5nABO+hC0JJWrFgRLQ5qw/Lly+Xjjz92H65BcUFS6R4tJMHO7NmzpUyZMo6moqMVjmcO
nYlzXmh3fMqWLetOsU9bSUeOPPJIp2swD9Qb6EvqmZcftG4+PJfmzZu7ZKnuLYzuwfri7fO8Fy1a
JGq4Z7mcn+8aFWnnK0qn4TjYNjn2op1r0REMady4sT9lW0PAEDAEDIEiiEDpIqiTqZQCAQw8+L/w
RzGo05Gzzz5bnnjiCWdAYaAFOeJKNRD4yMRT1iFwx8WFi4xRnkpIg4GMUQqfGCEvXPcwAi8YA2rk
yJFy3HHHZcuiHlbBuOADX5gwhuiufd0saZVy4wx79VBGDcBgglTXg2lj96dOnRo9pdQUx91V2oA7
h8HIR+lAoiMQgpF87LHHujSp7i1aaA536FARXhIjV0c9HNeaTtsNN9zgSoR3zzwBuN5gfOKJJ7rn
66tLprtPg1FHpyhWlCrjeN2vvPJK7CVRWku2czk9AQc9Vqibe2bSIu9CPEl2b8l092WBF594904a
OgBcw7j3HQGfN7/eNcqHy04b9BJsm/4cW84zt4COi4khYAgYAoZA0UXAPORF99kk1IyIF71793Zx
txMmSnCBCZt40/CuY5wyUdLLIYcc4rziTPRU7rA89thjztPKhEYE4xdDlw+CIcI+W4zkrl27OqOP
yZwYaMRGDisYDEyKJEyi8m+FSZxjx46NTurE2KcuvPgY44SCiyd4iTEe6XTguYw1ClNdj1emP4cH
lkmveMaVkiH//ve/3SWMQiaY0plh0mHLli2dDh6nVPeWDFdfd7Ktcqpd5wcPNM8W7yz4BeWSSy5x
k/uYJMsEUi+pdPfp9t9/fzeRk1jbSkWJhtejHdEe6TCBNd53sKDTmN+i1BTXCbz99tudQQze33zz
jXz55Zeu6lT3FkZ32lLnzp0FjAmryb0HBbzpyPpJpsFr+fWuUQcdDe6VNsno1HvvvResOrrP886v
cIzRSmzHEDAEDAFDIPcIFF02jWmWCAENw+Z4oWokJUqS9LzSKVx+JuDFCjxyJnZqy3L8co3MEk2i
NBF3nmvBj+dWDx06NKKUF3eNrRorEfV2R/On2lm2bJnjnKtH0tWtBmaUJ6/GVUSNEMczVyPJpYOj
zgTQWGGinXornR4aJST2ciTV9WwZ9AQccrjMauy6cjUSjJvASVr480yqBBOlargJk7F6Jbu3VLjG
0yd4zk+YpG6NsuIm5aJTrKjXPKKdhSynw+hOBiZQaicw+nx10SdXDpx0JpXCG+e5gAHYMEmViZ8c
T548OaIx6aNcaya49uvXL4seyQ5o58F2GEz7wQcfOE489VC/dgwjOnLikqS6t2S6B+uAP87zp12C
b6wwJ4P2ppSr2EuR/HrXtOMT0UhGDl/uWyPCuH3uyQtzCmiv2jnyp2xrCBgChoAhUEQRKIFe+mdm
YghEEcC7ipebIf10h7rh0pK3sXJW8WrnRPC04o2EikEYv6AQYk4NEMd1D57P732G/XUiouBphpai
Blo2TjPn4bSTNpEku7dEecKch8vOiAB14yGPFerlebKSKeEvYyWM7rF5gse0GWgbGn0nCx0mmCY/
9xk1oe3RZmLbXap7y63uhHekPeiEVjfKk8595uZdox7uG9oUI1SxwggCIzY744JOsVjYsSFgCBgC
RR0BM8iL+hMy/fIVgVWrVrnOQ6JKNIKIaDhBZ+hikMczZhPlzYvzGmrQxdJOVJaGgZQ999wz0WV3
XiPSiIaPFGJmayg/Fyc9aYYCuBgW9wJQJU+qgMpCR4D4+UVFVq9e7TrU8TpoRUVH08MQMAQMAUMg
A4GcuTANPUNgB0GAqCTwwRMJCyQhTJ4lokZByx133OEWnklUL17vVMLiOIxYMNmURYuKgoTFvSjo
GkYH7qeoCaMVJoaAIWAIGALFA4H4HvJ+3YqH9qZl3iIwcFjelmelGQKGgCFgCBgChoAhYAikRKBk
yhSWYIdFYOyK9fL+nD9lyaasETl22Bu2GzMEDAFDwBAwBAwBQ6AIImAGeSE9lE3b/pGFGwvPEL55
1Bzp8OFYOWfYNPlj9cZCQsGqNQQMAUPAEDAEDAFDwBAwDnkhtAGM4UcnLJAt/0SkZZXy8slhe0nz
XQt2Mth7s/+U05vVlkHdWkjpkiUKAQWr0hAwBAwBQ8AQMAQMAUMABMxDXsDt4KO5K+TB3+fLGwe3
klG92stWNcp7fzelgLUQWb3lb+lSq7IZ4wWOvFVoCBgChoAhYAgYAoZAVgTMIM+KR74fDZq+VDqr
IXxyk5pSrlRJmbv+LxmjXO6JqzaErvvz+SulzeDR0ueH7Uu5h86cmRDvfClzjKcLm6U3BAwBQ8AQ
MAQMAUMgzxEwgzzPIU1e4Gw1wPeqVkH+VoO477Cpcm6LOi7D7HUZy9Enz51xFe/2pFUbZea6TWGS
Z0szZOFqWaNltKmeddGdbAnthCFgCBgChoAhYAgYAoZAviNgHPJ8hzhrBSv/2iqVy5SW+5W2UrpE
Cbm3Y2N5ceoS4XxY6VCjkvTv3EQaVMi+ImOyMn5cskb6DJ0q87RTcHv7htKtbvbV/ZLlt2uGgCFg
CBgChoAhYAgYAnmPgBnkeY9p0hJrlC0jQ9UwnrV2k4xUDjnRVhDOh5VWVSsIn3SlQ81K8n7P1vLM
H4vkAe0QXLRnPalbPj2jPt06Lb0hYAgYAoaAIWAIGAKGQHIEjLKSHJ88v9q0cjkZp5zxuzs2chFW
xq/M4I430fNhBQ/327OWy7eLVofN4tJVLF1K9lWj/Mn9m0lJ9c5/uWBVWvktsSFgCBgChoAhYAgY
AoZA3iNgBnneY5q0xD571HbXa5YrozSVv6X/+PnSXiko8MrDyk9L10jv76fIraPnhM2SJR2G+a5l
Ssm6rduynLcDQ8AQMAQMAUPAEDAEDIGCR8AoKwWMea9GNeTqNg2k79Bpsi0SETzjn2kc8nSkhGSE
R/HbdPL6tNXKlnaeen9sW0PAEDAEDAFDwBAwBAyBwkGgREQlW9X9umU7ZSfyFoENf2+T5Zu3SuNK
4akqeanBXWPnyZ1j5krt8mUcr/zAOruKDByWl1VYWYaAIWAIGAKGgCFgCBgCIRAwgzwESDtqksUb
t8iCDX/JHrpKKB5zM8h31Cdt92UIGAKGgCFgCBgCRRkBo6wU5aeTz7rV07CJfEwMAUPAEDAEDAFD
wBAwBAoPATPICw/7olezUZWK3jMxjQwBQyA8Aka7C4+VpTQEDIEihYBFWSlSj8OUyQsEiF4zdU3O
VjHNi/qtDEOgKCEwa91mWbop/MJjBaE7+sxWvXIqU1ZvlFX6npsYAoaAIbCjIGAGeSE9SRYEWqgc
7p1RFul9Pz5pofyVuShSLAZb/4nIR3NXuMWLfl22NvZyyuMLf54uj0xYkDJdYST4YfEa+VDvbWcR
ZowTTYhP9tnjGSjo45aZazcLRtYWDuII+f/Q68x5CIovO7gNXk+2T55Y4YxXgf1guX7f5/HHPr0/
H9zynk/QtQbmx+hNGp8/uA3mZX/1lozOZXZNY1PGP16j+Tt8OFZ+X7k+bgImlpOmoGXE8rXS6aNx
wuT2nMh9urDZFcNn5iSr5TEEDAFDoEgiYJSVQngsN4+aI4+qwYjx0bJKeflEwx4214mVO4tM11VK
rxw+S87co46ULZW9T4gBseKvrbJ3tYrSqFJZ2b+2RoAJKRh178/5U34/vkPIHAWb7D3VDR2P0/CX
O4Pcq9F8btdoPkiZkiWkR/2q0rtpLTm7eR13bsTyddL7uykyZ32Gt5QY+U93bSZ9M6+TiM7VnWPm
RY23nlrGN0fu7TysTd/5zZUT/PrqiDZyWINqwVPZ9r/TRbV6fjFBhh7VVrrVrRK93v2z8a7jwPmg
7tEEuvPF4W2kobbLvd4f7U7rbcl+2kZ5ppfsWV8qlM5o06yGSzQj3/Ekz89H7yO7VSybUve/9beh
30/T5bXpS50+dXRF3Q8Paa31VJbz9fwgPX9d293k3o6NnQ60qX0+GCOD/tXS4etO6tdTkxdLA50n
EosH79dxQybLT0vX6iJhonlqyyvdWsguHORS6KB8Mm+FPKzP7Td9vs8f2Dz6vH3RR+9eQ6qWnSXP
/bFYrtl7N3869PbKvRrIfp+Mkzs7NBIWWzMxBAwBQ6C4I2AGeQE/QTy/D+of9ds99nR/JKd894cz
SEYf176ANSm86lgtdOxxHaTqLtmbHyuXTly1QWad0snFaE9Xy4fGL5Ae9apKGzXmi6LctM/usvnv
f4qiavmmUyVdhGqMtu8/1Rs7aPoyOWfYNLdSbJ9mtZ1x2bZ6RcGIrqMhOH9WAzEoz01ZLHRgnzug
uZzUpKYsV6rD4Ll/uiQYthNP6OiM+aO/niTPdN3DGdd04lLJQWqE0/5YrdYb5Gt1oaxfdETmgX0b
R7Oj+/Bj2kWP2WlcuazM1dVykZcPaiEdtD1j4F8zYpY7/5SuhPv5/JVO7//s11Q7nrVl87aIDNbO
WAldIRdJpTv3/T9djffRLk0FXa9Ub/CJ306WOad2FkaQ6MwPmLhIrlDDtJYuMoYHnXP/BLz+eOcH
6EjUfZlGu6s48+uKX2cJI1XTTt5XflqyVs79cZp2gCvIjdo+cysvTF0s14+c7ToGPE8M9FjB7r+s
dX39LVwgl+k9pNsR6KiYd6lVWR7W9/3ZA/aILd6ODQFDwBAodghkt4iK3S0UL4XxbHXWP5KT1biY
tGqj+wOfFdnsjNCwRiR/9tf/NlvaVa8kbxzcstgAwMqg3dQD6QUvJCuGIlAWjh0ySdZnDmEf+dVE
KaXGy+V71ZcLWtXzWVJuv1HD6OI9w6f3BR7+5URnaGFAzFdjC0/ui+rZY0VVBF76DYr5t1r+0k1b
pEWVCvKWYt+qasYKqxg/96g39J3Zy2Xhhi2us4Ux5j2TeO3vHTfflbWfPv+wRgRG1v4fj5Pr1Rt6
qnqWEeybfymOZzSr5bCB1nCdGkC0i41q7KM7xikGrpczfpgqrVXXaWs2yudqhOKtHtStpRzaoKpP
EncLLhg/Z6lR6e81bsIkJ/EXMwLEp2PNyvL6jKUyTKk7XdXbSwfs1nYNFc+MEaJ/7149S0lgyn2f
2yLDo057uS7To8o9sMLtLqUyjFzntQ654i15j9K6vlAs7s80wHm2GLvHNaoZ1QHdk62ii2G9j3Yo
+LylBvSvmR0K7ovRn4u07fpRIAxQL6l0f23GMjlEn+NVuogY8pga5l20HaAjUlc95lU1VCkd0Ec6
N3HnYr/GrVjvOkE96m8fASANbeRdbafcN8/kvdkZHZxBWmdeGOTgeoZ2trjHF6cuiVUresxIByNl
k7QDzmrF6Qr5/ztzWbrZLL0hYAgYAkUSgex8gSKp5o6j1Gw19viDZ0i677CpUUNj9rqs3Nhkd4wB
hjE/c13xmrgIHeE1HRbHMMFYAAMvu6tXc7AOyd+mxhnyVvdW7hivaFhhkhccY2hA6Qo0mtfUe3ux
Ug5e1WH/0X+ud0Puvpz7xs1z3tR3dGRj8on7utVWS6nB4QUPJl7N81vWU+9/e7m9fUNnDPnreO0H
6b2jG3WFFTyHzTUPZXv5YfFq+XHJGumuZSKnfT9FhqqB+6R6Zt/ruad28jbLbaPnuGv+a5a2lTuU
OrJROw6v6f09sV8zyWRW+CRxtxjCo/5cJ20Gj3EG4TNKMaBzklMZrh5oDELCbRL/Hu842N2thvfv
asQGBVoFXlzvwQ5ey4t9KCa0Q+LxI19ohwaaVLNdt1MgNqiu4Bv8xHKuacWjtL3AFe+uRiJyfOOa
jqrSQ2kxr0xbmvZ8EZ6h76RQnt/nPEIf5A5tY89MXhTV310IfE1YudF5nlkNOCiLNv7lvOk4ANAZ
ag0drjm5mGQZLH937aRU1o7T9rc7eHX7Pp0BXqEJ+luWE+FdmqUd+Zzy0HNSp+UxBAwBQyC/EDAP
eX4hm6DclWpkVC5TWu7XP8HS6gGGA4oXifNhpYN6k/qrVwxuaHES/nz3VgNsZZxJZBie/MHOy6QC
YIBgwKcjszONFbyWOZGD61WJetdHKff1UzXQHurUxBXljYstatDWV9yhIXjBi/3S1KVyqXY08GQj
sd5kFl7ig8cd6kY6co7yqRkxgCYBHQPaR1ddWRWMiKAB7aKP6sMIBJ9O6oV+Qz2H0B0wjLywKisd
Cn0MoQXvNB+iYrytHmA4zVcrNQMvKMZ/mLIY9ThUDVMmEOI5pv2CFfLRoa3lPh05eGziQtdhoJPx
aJcmzmO6ZGMGTtXiUJtC30CShEfsVs15r79auMpxnPGWn5PpiffZSmu7jH2WZUpu92OcpDQSBLoL
ncdbMikftGVoOPfrvZ2vk4zBCd48nm5oMKmETk+w/VfKfBeCkUVOaVJLR13mud+SeKNCvA90fBhp
CorvUOG576v0oVu0E1x1F+0sq4eczpLnwAfz5Mc+9dcqt0uOo61g+PNe8l4w+mNiCBgChkBxRsAM
8gJ+ejXKlpGh6t2cpV7Skb3aC1QHhPNhBQMh1kgIm3dHTucnd2HUQwtKV6AdeKHjQKcJQwuaBNQB
PIgHfz7e8Z9PUyP1ETUceW7z1PAhUgYGfX7IoTpBkU4AVA/0gP6CYYf40HEYakRw8XKSemjx5AYN
8iPVAM1qmvnUqbc1y5XWNlde9tS2N1a9ylOV+hJWyqoBe4rihVEJRsHFqBpXKueoQS8oPQge9uW/
zpQbf5vjjFnuGcFTnh+CYQwt5Iv5q4R5DYyuxE62LasGOZ7oRHKv0j5aKX3pCeVqf79ojfM8+7TQ
lfis1zYEteJSvTfaZb+WdX2ShFvaFfm80NFCqrvfiYwRFjq4d7ZvJH2GTpWjY6g+pG2mnnFGGBiJ
omPhxf/WQHsrr8MkUIAenbhAyquBXFDGOLps1t++5Zsz6F1et3S2GOLcFm3IxBAwBAyB4o7AdldP
cb+TYqI/RiPD5Hd3bOQ8wngMkdhh5WS3g8GJt9LzSZOl3ZmuMUkPr1lOY5AH803XOOY8K89xp1wo
NWvP6ipvKOUDrvhA9Yoj9SuUdYbuSPWq54dgdJyl3lUoNe/PWSHb1MDyfHI/SnJMw+ouSgaRMvwn
dqSgWhqdPn8fREG5TA3J+m+NEHjou6on9Red5Mhkyu0mnk8dfwuX+Dw1Qk9TznvQGA+mpiw4wdzn
d0rJoYPDiAK452c7xwAfsmiVfDpvpYucgvc+HcEYh4f/plKs6PzEC8WH4c88CDp8eOHDSGMdCZms
kVO8EPIRif2dOFG98q3UG4+nPFboVMKJ9yNH/nr9iru4kQG429CoaF9QV2LLpuNF5y+ohy8jL7bT
9B1T9RxNKCfl8b42rVy+QDsROdHT8hgChoAhEAYBM8jDoJSHaaAWIFAXGDruP36+G55PNnEstvqf
lq6R3sprvTWGJxybrqgdY2QRAm6LRpxA2OfDn3JeCR7JIUpByIngYf5KDSY6SW+rwR2cYPiuTnwj
tBzD7PvUqKjc3JJ6HxmjG3gVe6lhB50DAwYKC8bM1wE9OMe94q30OHAcVqA7wD2/QSdvnqDeb99R
YHIp3l1oT8N05IWy0fNp5RbnhfT7cbpOUv1LXtAoJ4tO6yKPK/ecSZ55IYw+EHGF0HjwgIcvW+dG
AaB7eJrFze121+gkK+RZ5a6TfoZi4I1PjM1xKza4+OTow8RgjoOe5VR6HtuwhhtJYHJkL92Plb8V
T8oMfuJ57DHG79JO9jvaUR6jz/5jDftHNCVGMJjzQcSUMcoz957sVLrzO/G9dkww4KE4EXebEYPu
MaMwdGQI/Uf4wlihAwBNacjCjImg/jqe8BMa15Aq2oEFZzqSH2j0J//b5NOB+Unf/qHPJL2Jk7zO
vEMY+Qgx2JkfAA5B4T2lQ5nOb18wP+/XYSkmJQfT274hYAgYAkUZAaOsFPDTwXC7WmkHfYdOc8YT
XqnPNA55OlIi0zfpt+nkLcy0146Y7cKweR3wuiIvaeg4H0Ujhu7qk4beYsC1fG+UM4rS9nYqJYNI
LxjPTDi8QiO8eMF46P39H86AwRjHEAjGT4ZycZ7Ghz5ZDRjuAZ7xywc199ml6dsjs0zsK/fqz+4a
HvcgrSSaIWYHvji88V/U8ArynPFuwgs/Ww1bIq9goJVUBTC4LglE9aCtcC1dGXFsu3zzQDIxkRCX
nTV6CAIO0HP8xF7OXaieZega0Csu/mUGp1wUmVvbZRh67T8c487x5b3TX2qc8MOVnhNGMFi7agxx
DNrjFbNYgVMdrIPrz2vn5MC6GbHxg+2VqDdEhblt9FzXdp7STtFNGrIRgVZxmbans5pndMgxUoPl
xuqOR52Jokd/PdF1WBlZGNyztaOeUKcPn0jZePlp63QEgk+5nBre1ysdZYDy88GRtuJlQJdmcoy2
deK4cxpPO79LQfFc83oa0SUdobNBTHQvd+pkYj5M1CYGPULH9AnFh6gujKCkK7wHjDQyj8HEEDAE
DIEdAYESEZVsN9KvW7ZTdiJvEcAjyCQ34z/mLa6URkxlvPDphITEMGFiHEYsUTfoKMWaCXhoF6kh
1VSN9URxk/HOwkUmakxwUl7e32X2EvFALlHdoaqEmTiYvYTCOQPXfYlOGoUilMg4U/tNJ7Bucpgm
or0UjvaJa+WHlefBPBE/vyFx6vhX6IzgIY+lk8RPnf0sHYom74x0Ixw4A2IFjjmGe3WlBwUF3ev8
d7jrXLImQF63ZSh3xG2fqWX7sJDB+lPt47kn/nq28KEDh6XKatcNAUPAECiSCJhBXiQfiymVGwSg
gjBhjCH5sOIN8mtzsGpg2DripTtGF7SBapJIhquHmomUJukh8LKGGrwqydLq17fdXaOL5H4RnPS0
KpzUGPVM6oSqElagm7RVLzeTh30s9LB5w6Sjk4KXPMzoULzy6HxW0EnC2TrGZpDHg8vOGQKGQDFA
ILzFUgxuxlQ0BEAAj1u6XjcmFDZTz3dByx3K/00WBjF2YmZB61dc64NSxGq4iYQY2DuL5MTodSE1
1XvNpNr8ENc5SB39MWHV8Vb5TZjYLhgChoAhUAwQiOshHzFle7itYnAPpqIhYAgYAoaAIWAI7IQI
dGmVi57dToiX3XLRRSD8GGbRvQfTzBAwBHYABBbOnyUrVyzdAe7EbsEQMATSRYB3f9GC2elms/SG
wA6DgBnkOXiUzINdtmSBzJoxWbZsib/k/Yb1a931v//OvqjJ1q1bZO6sqbJ44RyJN6c2BypZFkOg
WCOwft0a6XtiJ5k+ZXyW+/jnHw2L+c8298lyIXDw1+ZNMnPaBFm6ZH7gbNbdTRvXuzS8l15493zZ
27fhQ1H6clatXC7on66E+R1JVuZ2nTPw4Tid35NVK5Yp3r/L6lV/Zqsmt7pRILjMmDpesdkedtFj
Hlthxvnt2PPcF86f6X4n+b30EmwPsffv7z32fLq4+LribYP1p7q+XY/t90WeRPeWcW37s/T5k92X
TxNPl7w+R11BiffMvK7BdH4/Nr8/77eTfh8p55y8n2zalBEu05+3rSGwsyBgBnmaT3rCuOFy0uEt
5djujeX0Y9rKEV3rygdvv5CllKcfvUkO6VzDXe+xbzX5+L2XotcHvfCgHLZfbTn1qL3k+EP2cGn4
UzQxBHZmBN7979NSq3Z96XLAoVlgOPP4DtJ1r7Luc/j+deT+W8+XyeN/i6bhfTqkS005Q1e97dW9
iRzXo6nrLPsE69aukusvPUF6dqru0vDuURfyxkuPRMv2dfDehpU1q1fIBX3+JUceUE/f6Vpyx3Vn
StB4TFZOmN+RZPlHDf8+m+7cwxsvPex+Xw5qW0GmTh4bLeKV5+4Xzm3blhEL/KwT9pUjD6wvZx7f
0f2G3XjZSVFDKLe60fm5+oJjHC59jusgh3apJTdfearTZeQv3zi9h377UVQ3DDWe84VnHuzOTRo/
Uk48rIV+WrrfycM0/2cfvuauXXBGt7j3zb0/eMdFMnf2tLjXH7jtApk5faLD4NSj2kTr/vqz/7lz
Xr/ohQQ7Zxy7T7R8fr8HPHiN6zT45MH2Gq9NJbu3ZLovX7owWq8vN7gF19wI70WyNkPniPp+Hvp5
tBraWo+OVd3x5s0b9fouWf7rogl157MPBrn8wQ5x8Dr7Bxx8lFTatap88L/nYy/ZsSGwUyBgkzrT
fMybtfd+/Knny78O6SWlS5eRl565V/rfdYm03ruTtGzdXr06s+T1gQ/LNbc+LocceYq8/fqT8sDt
F0qHzv+S3Rru4fLcdv9L0rZDV1m6eL7cfeM5ctMVp8p7X01JUxNLbgjsGAjg4X77tSfkwivvyXZD
eNx6HH6iXHTVvTJ7xh/yynP3ySXnHCqDv54mf0waLc/+51a58qZH5chj+8iWvzbL90M+yBKj+6Yr
TtH3bIEMfOtnadK8tUyZNEZW/plBizn2pHOdEfDhOy+6TvWg93+TUqXC/yQ+dv9V8ueyxfLul3/I
76N/lntv6SfNWrSRs867Idt9xJ5I9TsSmz72OCIEJhR56Kn3ZfdG2+Pd16xVV15+5j7XMXjhiTvk
0ec+dunwytJZ8B7Ms867Xlrs2V6qVqvhdL/h8pPklWfvl4uvvk9yq9ubrw6QyRNHyXNv/OB+ExfM
nSFjR/3o9KDD1fPIk2XAA9fIfgccJmXLlZf33nxW5sycIoMG/+a8xw/cfoHs0XJveXzgF1K9Rm0Z
P/YXl5evux95QzsOGauW3nzlKbLb7s3k4msecNd3rVJNNqzLGAG58a5n9Tf2gGi+XdXQYyQgY3Ry
itDp2Lvdfs5Q5FzYjhQFov8Fl9/tRheeG3CbfPPFu/LRd7Nc2wHfgw89Xs6//K5o3aVKZnCceQbJ
7k0fjssTT/dqisObn2SMHi3T/40rzz/K/cd07NLd5am/W+NofTnZ2aojvWCQqM34duO31MG+b4fB
88nqT5aupK7dcMoZl8hrL/aXk/tcKmXKpBf/Plm9ds0QKA4IhP/3KQ53UwA6dtq/p/Dxcvo5V8un
g1+VObOmuD+frz99Syrrj/+Jp10oJfWHuK/+8f1XPXF4Ys696FY549xrfFapWaueHPrvU+XlZ+91
1JdddgkX0eCXYV/IUw/fIM33bCd39c/wHEULtZ24CEz8fYQ8rt6s2TNZuKeENG+1j1x102Nu6zPg
4WzcbE+ZP2e6gDEdrtsffEU2qsdv0PMPyJrVK92f0IHqyfnykzflsKN6y3W3P+mzJ91ikLz5ymMy
TrclSpSUfffrLvcPeFvwLJ1zUhcpX7GSq/fIXmfK0CEfSr0GjeS2B16WBrs3deUumDdDnuh/vTMk
MGD3attZ7vvPW7Jrleru+g9qiL6qOkKFqlCxshxz4jlZDNxU15Mpn9+6T8ukTYBJPKlUuaozOjE8
/4n8I3hz8f5Chyij78wJvS8U/+6con/kXsaP+UXwJD/89AfSum0nd7r9vgf5y1Klqq5WqR+MPoym
pnu0jl5LtcNz++7L91xHAb2+++p9l+WzD18PZZCn+h1JVb+/vpu2j3h6t+/UzbVhPLK0lVjBWeAF
zyS/RatWZqzImVvdhn7zoXRUB0S7jge6KnjX+Hi5+ub/yKn/3ssZXiedcbG8+OSd0uf/rpVmzdsI
7XzG1AlyzoW3SMPGGR2Nrt2O9Fn1vWgc3S9XroLzqAbv3xvkpAueJ5On5mAwf64e97r1dnedkWD5
0cKT7FSqVMXphn7QDp965EZZsmhe9F3lnYytm+IWLZiV9N58lfF055ovs2zZci5p3XoNo+d83txs
U7WZ3JQdNu+++/eQ/zxwtaN7ttT/t6DY/14QDdvfEREwgzyXT3X4j1+6nvw+HTO8MfzB/6Weuq1b
tjjvD3w4eOR46WIFj8mIn7+WvdvvHzUoYtPEO163drX7wcLwMgmHAN6fI449Q/Aobdq4wRkBV51/
tHz8wxzXcaIURjeGfPGOHHzIcXLHQ6+6dHhM161ZpcPdk5zHDi/oxN+Hyz2P/leuPO/fggHYqGnL
pErgFbrr+r5CG3nl3eHa+doiI38Z4vJEtA3QScAzuXD+bHlP6RR4Bp/UDhdG//9dfKvqsV4u6Xuo
VK9ZW6699QnZo8Xe8pV2/PAII7/9+q3cePnJzgi/7vannJcxOLSc6rorJMFXfutOtfC/8YbV361J
Ai0yTqPL6BE/uI5S0+Z7ST1N/8xjt8ilZx8ix570f47uUqtOg2gZM7RcpH2n7UZ49GIud/5ctsh5
FJuqEYn+g154SP6tnalvvnw3RyXH/o6ELeTxh65zDgCf/lYdfUMYrauihuHzj98uT7z0pb+cZUuH
Be/ziJ+HCL8px51yXpbr/iBd3bqrwcvI4T03/5/0POIk2VffuV0yjUjKrFGzrrb3+x3dY9KEkdop
qqnOiltcdYwi4h3HKMPJ0a3HMVmMea9Tqi1UJhwlXuig0vFCjjruLLn7pnOlplKkDjj436490elO
V/5cvliG//SV1K3fKEvbHT3ie7ntmjOixdHJ5z0Oe2/xdO/c9ZBoefm1E6bN5Ffdvlw6t3jKeadi
DXL73/Mo2XZHRcAM8lw8Wbyuz+qQ5cXX3K/eloaupIMPO14eue8Kebz/ddLjsBNl8P+ec17V4MQm
XyV/lniDXn1vpD8VatuqdQe59NoHJWh8hMq4EyfCM7qP0oSYNDhrxiTZXb1beFzwmlWvUSeKTPXq
tdXz/L8stAdm/tepu7tQBl4q9vc7MGO4fcWfS1Ia5L5wOgV4xynDe7v8tf0POkJmqdE/7LuP3QhM
85Zto9SKn374zE1YpBMA1Qk5//I73Zav9996zrWFm+95Iao3w/FeUl336ZJt80t36ly0YI7UUA8t
I0rxhOd02bmHK2VlsqxVTjijTLXr7uaS0nlhZABaGCMfRx3fV6688REpX6GSw48/94rq0cxrWbt6
lSsSz/xdSjs758KbBE/+5x+97kY98N6GlXi/I2HzNmrSMmpokidIuTnvsjsEDve40T/FLQ5O9Y/f
fyITx42Q/bsdIXXUYxwrOdGNUcNyFSpq5/IZRwnBAKe99jq5X7R4aH9fKFbDf/xKnnzl6ywGOyMa
rzz3gLz16n9cx7ljl4Pl8hseyWagRQuLs8NvY5DKg1fbS6OmrfT930M7DfdI/6cGyxAdvUxHeMaM
AvDbwW/Bg0++F33vKKdipV31N6FVtEg88V7C3Fsy3X05+bVN1Wbyq15fLu9T1Wq13G+CP+e39r/n
kbDtjoqAGeQ5fLIMmV+lPD6oKaf1vTJaCsbdI898qJNbXpbbr+0jnbr2dEPG1fVPKSivD+wvbw0a
4DieqTyswXzskz7dPLFl7GzH/PHfdu0ZbuIgVB+83sjmTD6qxwPDBMMuVsrsksFn5A8DmgSCVzdR
lJ1gfsq74a5nhMm+TFbDM9fn/66R3mddEU1GmaW1vF3KZJTN/pYtGR5wOgRcbxMwsqMZdYfrHZSi
EE9v0qW6Hiwrdj+/dae+3Ro2VS72IjfhMGhQel3gxx6ivF3XKdL7hHfsBU4yH0YRGFF45J7L9X3r
5DzmNWvXc6MFTOz01B6fL7fbKtUyqEJPPXKDlFN9zjj3WkdJQrd0jPFEvyNh9TvuFHjre8dNzvke
6qGm47/vfj2ypcEo5kOEmNN1suIzj97sKFo+YU51AwN+E/kwGXDgU/fIw3df5rjVjCAitCuoMnSQ
O8XoBmXj5nuel5vufk5Gqbf5sXuvUN1uciNHXrdUW0YrYicIQ3HycrJylT96Z6Dsf9DhaRvk5Dmz
3/UySkemXlC6zbw502TPNh190dJqr47S75LbosfBnTD3Fk/3YBn5uZ+ozSTqLJdUB0NeCqN+q1ct
V/pP9tEy+9/LS6StrKKIQN6+TUXxDvNBJ/6oLj3nMIHve+WNj2arAU7ig0+8K5//tFCuVwoBlIQm
AY8Jkz4HPq1/UuoJiv0zylZYnBNLFs/TiUTvyG/Dv4tz1U7FQ+BJNZw6q+HGxCh4952UqxhPKu9a
Ld7pLOe84eu3WS4mOMAD/saHY+XTYfPdvAEmtUGRCSN4zJh05SkYsXlq6/VJgcgj6V6PTR97nJ+6
UxdGALQuOg7xpHHTPZ13dT81hILGeDAtHnGMy+at2urIRwZFw/OWf/s179+TmrXqu07SrOmTnRGb
Mcw+UeoHOM5B/eLtp/odiZcn3XP9LrldedI/RSlS8fJXqlxFR48OyPJ7kle6NdBJl3hdeb5Qp9IR
3i9+H/993JluLkCqsHnplM0kYCadxusApiqnmo6iMQJ1jtJsju99gTx235VK+cno4KfK66/n5739
9P2n8v3Xg7OEm/T1htnGazNVq9V0Wf/WUT4vW7dularVa/nDPNnSuYHKGa+TSRhN7mv4T1/nSV1W
iCFQ1BAwgzzNJ4KXBWO8Zet2bnicCWl8+LHwQkgvjpmgdNeNZ7sf/SN79XGXGYbFU3repXcIM+d9
figBYYWIDrdefbo8r3QZk3AI4Jlau2qF+5NiCP/9twoutBZen4/eHShr16yUavoH1qhJC8eTDPvM
9z/wcOUJV5PnNKLI1D/GOa/8V+oNJo40cqhOLqWtvfLsfa7dMZQeDLWZ6noyBPNbd+qGnsO7kG7o
th+/+0QnBj7kDHkoYUM+f9tN9mTSLcJkRiaKwscnqgbzOeCgM8EaAT/ev+VLF7nJouwHvaguUYIv
OgZwpTFm8R4SivEHpTEwTyGMhPkdCVNOqjRNlL/MxHF+M7wwEfF/rz3u2gyUK3DjNwu+N5Jb3Yh8
g+FEWEg6WUTNYNSASFOphLB4cM8nTxjlnheUmS8+eiPznYlPaYpX5sJ5M6O/rTzXsJ3feGUlO8fv
OO/IGy9td8ys0ffP/677LUZm2HvLre785xBdaKFSwXIi8doM85UYoSL8JM+VNsREcdIGhblS/p7Z
wgUPynT9/wxeX7JobvCy+w3AARFL6SMR4YG5r4fvuSxLHjswBHYUBIyykuaTxCuNN4ToDX01lq+X
SzT01pn9rnOHTDSbqxOSECbyPPnyV47TyjF/VAgz84VPpnzwzYwsEQT8+Xhb75n123hp7FxWBPqe
f6Pcd2s/FxMZOggeMozYIIbsB499CfHO+WthtkQGYZIbPGcit8Cpveiq+6SxjprELoJRQjnPSIYu
GfsYqw8/84EzVGhzeGPhXL+a6eU//OjTdNLwPFfH8xrqDsEIY6Ijkuq6S5TgK791p1om/J2pUTb+
N+gJ9XJf4O7Pq5MMe/K9qzxl3jeEThfh0vCoeiGSDRNxiRf+z7ZtrnN8hXLMEYwL9x5mJj7r+I7O
wP5m5IrMM8k3ROm55uJecsKhzd3z6n7YCXLa2Vclz5R5NczvSLKCtKUmvkw7Dlz/P/WSM1mZ+wdP
JhVjQDJKg9AeeR/8xMrc6kas8ztv6CtEA6Kt0jGCfhKcq+GVj32+JUuV0rkUE+XcU/ZzSTAEmdB4
rk6KjCfB+3TX9f6Q/ndvj7bDMZ52wmMimUncfrpfsfrSwT7x9Itc2M7efa9w+NK5CcZZp44hI5Y7
SlrSe0uiOzx7L2CaSOgcQMMDx2qZXu1EabOc17qDWMa2GdLe+fBrcud1ZwnrASCMQF1z6wC373Eh
YhgfL1Dtfvx9QxT0i87s7i+5Le2OCfQI7ead15/SKEXXu99JdzLwhUMDqVFz+5yfwGXbNQSKPQIl
NHJBRvDTwK2MmLItcGS76SLA0CoehLLqFSKcmEnRQYDnAoe7MGLcEpUBI8WHMswJKr4MwiLG8jpp
d3gkMWLiGT+prifTx9ebX7oTRpCFVm666znp1vPYZKpkucbPF17eVLhyndB0terUd/hkKSSXB/Df
6RzkNU89l2qlzA5uG9av08mPezhDMmWGNBIw+sNqxowgeN54Gtkdr32FxouHS0wndkcSOPv5dW+M
AF2iUYeY3Mx6F3ktePrxavP7iSc7LwUaJlGD3v96WtyoYw/debFbL+Cx5z+RYKjKLq3Cj5zkpb5W
liGQ1wiYQZ7XiFp5OxUCn7z/igvfluimia98zoU3J7pcqOeLmu4bN6xzHuxEPPGCBOvai3pFF7OJ
V+9Lb//iRjjiXcstrrmpO54+eXkut/eWl7rkdVlFGfew9/rCE3c6Gtc7X0zOEooxbP7CTEenGS95
onC+fjVVRr2CYgZ5EA3bL84ImEFenJ+e6V7oCOAFJFxhIiG8GhPbiqIUZ93zG88/Jo4WuMCJhPCT
iQyH3OKam7oT6ZtX53N7b3mlR36UU5RxD3u/0DqgrTAKuLOIGeQ7y5Pe8e8zrkEu/brt+Hdud5gd
gYHDsp+zM4aAIWAIGAKGgCFgCBgC+YpA4tkh+VqtFV4YCDBZ4O1Zy+XHJWtkyz/Zpg4UhkpWpyFg
CBgChoAhYAgYAjs9AhZlpZCawKZt/8jKv/6WBhUyFpwpCDX+0QlwVwyfJUs3bZFOtSrLiGPbBWIx
FIQGVochYAgYAoaAIWAIGAKGQCwC5iGPRaQAjm8eNUeqvvaL7PbWCGn13iiZvnZTAdSqy2praKsl
p3eRgQc1l9+Wr5P56/8qkHqtEkPAEDAEDAFDwBAwBAyBxAiYQZ4Ym3y58tHcFfLg7/PljYNbyahe
7WWrUkd6f5cRszxfKoxT6IF1qrizK/7aGueqnTIEDAFDwBAwBAwBQ8AQKEgEzCAvSLS1rkHTl0pn
pYuc3KSmlCtVUuaql3rMivUycZUunhBSPv9/9s4CPorji+MPdw9Bgntxdw/u7hDc3SW4BylSKLS4
FNd/gQJF2uJS3N0dApTi5D+/CbPsXU72kktyad7jc+zu+H7X3rx5M7nznLKvP07N9l4ymMM0WaSv
f1OE/chNufARE2ACTIAJMAEmwARCgwAr5CFM/YZQwLMliEmfhGXc689L1DqT/18du/HauPuI74dP
dO7Fv3TtdeBcXdLGiU5u0aPQhptP6XPAvwsVwkS4OibABJgAE2ACTIAJhG8CrJCH8PV/LtxE4kSJ
TOOE20pk4dM9Jl8a2QKEG5W8iWKTT8G01C1r4NaahS/5ghKZaO7Fh5Rk+WHpQmO0bk7HBJgAE2AC
TIAJMAEm4FwCvMqKc3naLS1RtCj0h1h28LqYyHlE+JBjtRUIwo1KlvgxCb+gyMgTtyhzvBg0Kl9q
yp0wdlCK4rxMgAkwASbABJgAE2ACQSDAFvIgwAtM1nTCXeSk8BmHIgyF+PRzf99xuJEYldvC7QXr
ie+672s0i0m6+/9+oONP/6HheVNTBY8E5B7DeGfApCA+YAJMgAkwASbABJgAEwgyAVbIg4zQsQKa
ZXCXGeDDjXXIfU7foTzCBQV+5UZl36OX1GjPRfI+ftNoFpN0rz9+lsdJWRE34cIHTIAJMAEmwASY
ABMIDQLsshLC1GumTkS9s3uQ1x+X5YRKWMa3VMjmUCsifP1zPmrrUGaRGBb6iGKlleQxozmaldMz
ASbABJgAE2ACTIAJOJlABD8hAcpsWzJAEAc4l8CbT5/pybuPlCa2cVeVoLYAK6pkWnOMrr9+R9VT
JaTN5c06AvP+DGoVnJ8JMAEmwASYABNgAkzAQQJsIXcQmLOSx4ociWLFjuSs4gyVg9VVlpXOLJc8
zBg3hqE8nIgJMAEmwASYABNgAkwgeAmwQh68fF2u9CLucV2uTdwgJsAEmAATYAJMgAmEZwKWXVbC
MxE+dybABJgAE2ACTIAJMAEmEIIEeJWVEITNVTEBJsAEmAATYAJMgAkwAXMCrJCbE+FjJsAEmAAT
YAJMgAkwASYQggRYIQ9B2FwVE2ACTIAJMAEmwASYABMwJ8AKuTkRPmYCTIAJMAEmwASYABNgAiFI
gBXyEITtrKq2bt1K2bNnp2bNmjmrSC6HCTABJsAEmAATYAJMIJQI8LKHoQQ+KNX6+vrSuXPnKE6c
OEEphvMyASbABJgAE2ACTIAJuAABVshd4CI42oS8efOSj48PeXh4OJqV0zMBJsAEmAATYAJMgAm4
GAFeh9zFLgg3hwkwASbABJgAE2ACTCB8EWALeRi83rdv36aDBw+Sm5sbeXp6hsEz4CYzASbABJgA
E2ACTIAJKAI8qVORCEPbffv2UaNGjcjb2zsMtZqbygSYABNgAkyACTABJmCJACvklqi4eFiECBFk
C9XWxZvLzWMCTIAJMAEmwASYABOwQYB9yG3A4SgmwASYABNgAkyACTABJhDcBNhCHtyEuXwmwASY
ABNgAkyAqSnMqwAAQABJREFUCTABJmCDACvkNuBwFBNgAkyACTABJsAEmAATCG4CFldZOXzxc3DX
y+UzASbABJgAE2AC4ZxAoSyRwjkBPn0m4E+ALeR8JzABJsAEwjCBVy+f060bl8PwGXDTwwOB588e
0f27N8LDqfI5MoFAEWCFPFDYjGf68uUL+fn5BciAcHxEH9y7GSDuvx7w9PF9WrVkBn348D5YTnXT
mnl07fKZYCk7uAsNStuDm2twnntQ2/7p00f6c9dmWvzTBDpz8lBwNtXlyp44ojMtXzAlUO0KKndr
lb579y9dv3peKmB415nLx48f6Nb1S/L9Z+n9aJ4+rB0Hlasr389Gz+2XhVPp5vWL2qU7d+oItapf
mN6+faOF8Q4TYALfCLBC/o2F4b0b1y7QWO92VCZvPOrXpbbVfPv2/EpFs0WlQT0amKTZuXUVVSic
mBpWyUq1y2WgkQNamsSH9sGKxdNo/Yo5gWoGlKFRA1vZzHvn1lX6fnxvehdML+Yfpw2l0ycO2myD
pUgjbbeUz5lhgW072mCLqyucmy1OttpuK5+Ka1EnP/mM7EJ/H/nDqVY4KIvD+zWni+f+VlW51BZK
7Z4d66lhi26BaldQuFt7Tyz4cQx55k9ITarnpDrlM4r3XDY6f+aY1j50mioUdqeGVbPJ9x/SXbl4
Sos3ssP3sxFKwZPG6D0zd8ZwuqR7boqVrkqx48anDSvnBk/DuFQmEMYJsELu4AX0ffGUmtbIRU+E
lTdJ8pT00YqVF+kmDO9EsePEIz+dhejC2eM0tE9TKlm2Bi1ae4Q27blBNeq3cbAVwZv81PH9dPqk
4wotWvXw/i1Ch8OWZMmej5ZsOC7YxLeVLNBxsxfvIs9K9RzOb6TtDhfqYIbAth3V2OLqCudmC4Wt
ttvKh7irl07T9Svn6Kdf/qTp87ZRxWqN7WUxHO/n94W2/7qCnjy6ZzhPSCZcMs+H8hUqQ+kzZg9U
tUHhbu09ka9gGXktdh5+Ip/zmLFii3deE619kSNHoaHj5tOvf96h+asOECzog3o01OKN7PD9bIRS
8KQJ7D0TMWJEatC0ixjNmUoYIWFhAkzAlAAr5KY87B7FjBWHVm09R9N+2kIpUqYn+vpHeswzThrV
lUqUrU6Zs+YxiVq1dAblyV+Chk1YSJm+y0VJkqaUxyaJ7Bwc+HObtD4N79/CTsqA0SeO/SWt+uUL
uUkr1eCe3z6Ei+aOp8bVctCRA7/L4X/s43fy+D5Z0NlTh6ld4+JUrmAiQv7OXp6aZQsWRKSdPrGf
fNmqvHOEtVrJv29eEyyZHZqWojGD29Dbf/9RUXL7/t1b+vF7b6pbMTOVzB1blnd4/06TNLYOMHSP
8kcILscO7TFJuvaX2dS/ax1CmkpFk1Kn5mWkNRWJjLTdpLBgOAhs29EUW1yDem4YDcK1nDKmB1Ut
kYKql05NC38ca+KGtWLR99SmYVF5zWqVTUcbV/9sQuju7auSfeXiyals/gTUrXVFgt+zvbabFGLh
4N6da7JtfTvVkrG92leTxxtW/aSlxvnjPvUskJDQNlhvlYuErfsZBXRsVpqaiM43ZPLo7rJsr7oF
5DH+G9C1Lm1eO187huV3nHd77Rg+s2C3/X+/yPutdJ648v5UQ/a22oZC7HFFmqMHd1H+wmWwayL2
2mbrnlFc8T6oX+k7quWZnpbNn6yVb+89kStfMcqWsyDFiZuAMmXJRbnF+w7XW7muNG3dh8pWrEtu
iZPJdOWrNBSjGtcNubCF5/v53p3r1LRmbmn0UBejS8tytOu3tfLQ1jtOpbf1LKo01ra27hnk2bJx
iXx3ly+UWI5Wff70KUBR+YuUpWdPH0p3pgCRHMAEwjkBi6ushHMmNk8/atRolDJ1xm9pLPiH79iy
UrpMrPz1jFREviUm4Td5USrhzWvnk/51xUpWpgbNu1HegqX0yWzuv37lK19o6Bw4IlBERvb3Inww
F645JD6AH4Ty/U3hrVGvNZWpUJcmi85EtBgxqVs/H1m8e1IPuYVVo1KNptIi9/bfN/TzzBEEJWjz
3puUNv13NGHmOtq/91eaPXWI3Eem2HHiyrz4L3qMWDRcdEQwfA2Xn8+fTV/YcGPBx6VFu/5yBOHK
pVOEkQaj0rxtP6mcdmpRll76PjPJ9uLZE9nJqN2wPU0U7Zw3axTNnTGM5i77w1DbTQoLhoPAth1N
scXVyHWxdTroJEEpjxgpEg0dv4AunD1Gc6cPoyLivs2SLS9BqUUnzHvsPCpQ1JPu3b5Ob/55pRWJ
TlcXr/KU0M2d+nrPoAyZhIIqLM4f3r+TaWy1XSvEyo676Mzinjt1/C8aN7QDjZqynKJHj0nxEySS
OeDrCmW8cPEK0nJ+/eo5mjqmJ2XPVZgKFi0nO47W7ueIEXG+8+UzAqW6ebt+VKBIOYoY0f+v5KKC
WzcvUZan+bTWPXl0n+6KToKSTx8/SnaTx3SnOo06UqdeY8V74YCMttc2e1xRyOtXL+jxw7uUOm1m
VaW2tdc2W9zfv38v2717+zrqN2ym9Mn/YfJA+exDibb3nkAj0BnBs3z5wknauWUVQQmHhdRcoKQf
3r+DcuQpQni32pPwfD+/F8/MtctnTazL8NN/+fUdaesdB672nkV77G3dM7gX8U6vWa8NVajaiBbM
HkPwgzcXfDtxH2COT+bvcptH8zETCNcEWCF38uXHhxbWNAzJxor9TRlV1eClCbeV7v19xAfekxbO
GUcjBnjRpt03hLH928depbe0zZI1L3XtO4ESJ/FXlC2lsRUGxTpChIiULkNW+VNpEyZKQvjFEm42
0YVCnjptJhUlt7Ds58pbVFjFhYuAUG5SpslIsNZDaUY+pL98wUOeh3leFIAXcXqhkL16+cKkXByg
TZvXLaD6YkgTyikkdbqAioaMsPJf8hRpZUwkMSRuSaKID36PgZOl0larQTvpGwyFM1r0GHbbbqk8
Z4YFpe22uDrr3Bq16CEVWyi3WzcupYPiukMhV4LrF0t0EM07lvv2bqFHD+/QaKEs5xT3DqR99xFy
i/9stV1LZGUnSpSo8ro9enBbpkgl7scYotOnZNvmZbKDhjbdunGJIkWKTGnSZ5EWfCjk9u5nDzEC
9uWL/xKwGMmydE+rumxtK9VoJpTxMTKJYrB2+SybbVPlWeOK+Pt3b8pk7klSyK0j/xnhjucQnGDh
hlX8xNE/CdZse+8JtOOl73PCHBpYtOPGT2jRio906NxdvXRGuu/h2J6E5/vZHhvE23rH2XsW7ZVv
6545tG8HRRTflF6DplLUaNGpfY9RdPTQ7gBFotMVP0Fi7d4NkIADmEA4JhDQZBGOYTjj1Gf49Cc3
92RSyYPrB5RPWIsw2QyCjxMsWk1a9aaMYjjXq8MgaeU648AkRCiqzdr0ddhXFgr/gJGz6fbNy1S3
QiaqVioVrVwy3fBpH/prO1UskkRMQvWSbi13bl6Red+9/ddwGdYSQqn68vlzAIXOWvrAhENhgwUV
ktAtibTgKPeBwJQXknlCu+2ZdNas9Bmz0am/98vTz56rELXqNITgmoSharg0nf7b3wqMBFjmDEpC
9tyFQxKXrOvenRvyeqMDjOcPP3QI1QhXcN7P+pMtVqqK/tBQ2+xxRSEeKf07oA+/dkgCVBLEgEzf
+bvbQYnCXJjXFjrS1qqAJRv+/Nv236ciJSpJNzl0LvSyVPi/Y2Koz+wNDne+9eUEZj8s3s9GztPW
eyI4n0U88ylTZ5DKONqZMUtOi83FyJjviyfavWsxEQcygXBKgBVyJ1/4CMIKDN85+NziB6X1qhhm
nD6xr6wpafJUQkGJqtUKKx/E/GOlJbCwgw/w79tWW7RAWEhuEoSP47KNJ+SEKli7po3vQ/BN1Ass
IRhuN5eZkwdQwWLl6Zf/naaRPkuEhb+seRJp8cQwtPIXDZDASoCbe3JpWT9/+qiVFEEPhhuCLcF5
B6bttsp0Vpy9tturJ6jnBguzkjvCJzxjlm/DzR26j6TtBx/RgtWHpH/21HE9VVI5ioOJz1dDYRlK
uFp9+PBOuF5NlCNWGLXCT1mrjdzPYpKIvC8tDb/DGv/P65faucIdzZLEFb7U5mKvbUhviyviMSka
lnv9tUE4xGjb/FNb/l/vnmMphbX3hD4t7tsiJSpKTrCWK1k6b5JwGxtNk2ZtoAKFA75HVDpr2/B4
P0cXI3mQ1y995RYjk8pdRQaI/2y9JzCiGlzPIkbLHty7pbkhWlsXH8YgvGPRMWZhAkzAlAAr5KY8
DB09uHdTTmZ8/dpX+stiyS7M+odAUcWkT/XLlqsgFRSuKYvX+Sua8K/DEO1vm5dLy/nKRdPk5KY8
BUoaqhuJsLqBd+8mNFc3YdJIZlgnsM41JlglSJhYDsHjw2beGcghrJmYyInzwkQeNWyfzCMNvXrx
THxcfWX8uhUBl6/KJiym8A3fsmGx9HHVrzWOcnCs6sM+fnhBw3KNlWe2bloql3FDmkvC/9TopE74
x6vywAIKFI4tKVLWWNlqu7U8zggPatttcVXtC+q5YaIkJvthBZ0bwm+1aKnKsmhYnzEShOsFC1mC
RO4UL76/DzcSFCleUU7umyMm6+J64ppgkuOLZ49lfiNtlwkD8V/ZivWkm8pPYq4DrIOoG5MgYRmH
GLmf8XxkzVFA+kPDXxvPg5Jc+YrTgT+2yrW094vt38Klw6jYa5s9rqqeQqKDDP7mYq9tzuBu7T0B
Zfvc6SPyPYNRCUwIhUuWcnHCZNVZUwZRu67D5f1yWbxn8FPvBfNzsXQcHu9nMIRSjXckJkYu+dlH
vjst8bEUZu9ZtJRHH2brniksOl3v37+V6+FjRSKsQW5JcK/iHOAuycIEmIApAVbITXkYOpo6rhdh
UiYUY6yHi/3vx/U2lBcf4vrNutKowa2pSnEPqeDAHxwffqOifM3V1mi+L2IJt/lisg3WAC6VO45Y
LWOcnGiWJl0WkyJgOYd/bZeW5eWqGPAPhHi1H0hPntyXrglYKUP5C+vbkTRZKmrs1VOuMw4XBqwe
ogTuPCVzxaLubSrJoGolU8pjKO+QgaPm0HdiSUSs/FJKrLLStlExw5M6MQkOZePn+/yJHJ3Aft/O
tWTZGLnQi2qz2iLOVtv1eZ29H9S22+PqlHMTHZ66FTLLJTvLVW4g5xKgXHx8saJHqTxxpDvTsycP
qGNPf39pxENBnyRcEm4Jy5iXWAGntEj3g1DGcC9CjLRdJrTxn/4a6pPhvh7z/Qr6Y+dGuR426sbf
BHgq2ggxcj8jXUvhVnb+zFGqWTatXGkGYZDKNZvLya74WwK4z/MVKi2t6f6xWIApgtoNsLXXNntc
VYFeHQZKF6FL50+oILm11zYj3G21H5VYe08cE77DeHbxnunZvirFjZdQriqlRgOxbjoEE0VbiHen
+mH+jVEJ8rMaBu9nsPFqP4CwaABWPMKKKXHEut5K7L3j7D2LqhxrW1v3TCK3pNSy42DpuoaVmB4/
uCOfDX1ZMNSsXvqDnLSPpS9ZmAATMCUQQVjnAvwZycMX/ScymSblI2cSwGTCR8LilswjNakPlTPL
t1UWFBLU75Eyna1kVuMwQgAXk+BqN1YDePzwHrknS2EySc9qgzgi2AjAzaBlvYK0cdc16R+KycAY
XdELRiEwByBW7HhiwpabPspkX913uOdtDa2bZHLSASaWwpUsSbKU0mquLzao9zPyJ02e2qYCrq/P
fN9a24xyHTOkrbQuY3TOXILaNvPyjB5jpZ2nTx4SXHP0E22N5g+udP+F+xl/BRUjNZhcG1gJrmcR
1x0jx+gwmQvcLLEi07odl01W1CmUxbYroXk5fMwE/qsEWCH/r15ZPq8QIfC/dQtp2oQ+VuvKL/xj
YTG0Jpic20pYllxV9AoMlM6QEiyjhvWvrQkmry1cc9hadLgKl65awh0NEy/DsoTENef7OeAdEhLc
USuMQLCSmy/Xywp5wGvCIeGTAC97GD6vO5+1kwjAh3fs1BVWS4sZOzbVFkssWpOUaTJYi3KJcKwj
j1VCsAZxSAo+2ra4xogZOySb49J1YRUUI2t4u/RJiMaFxDXn+zngXRAS3FErlqxkYQJMwDoBixZy
68k5hgkwASbABJgAE2ACTIAJMAFnEojozMK4rLBF4MSJE7Ru3Tp6+PBh2Go4t5YJMAEmwASYABNg
Av8hAqyQ/4cupiOnMnjwYMqbNy+1atWKLly44EhWTssEmAATYAJMgAkwASbgRALssuJEmGGpqEyZ
MlGBAgVo8eLFFDkyTyUIS9eO28oEmAATYAJMgAn8twiwhfy/dT0Nn42vry8VKlSIlXHDxDghE2AC
TIAJMAEmwASChwAr5MHDNVhL3bp1K2XPnp2aNWsW6Ho+fPgg1mPm9V8DDZAzMgEmwASYABNgAkzA
SQTYV8FJIEOyGFi3z507R3HixAlUtTt37qSXL19KpT5QBXAmJsAEmAATYAJMgAkwAacRYIXcaShD
riBMxvTx8SEPDw+HKv3rr7+kVf327ds0bNgwKlmypEP5OTETYAJMgAkwASbABJiA8wnwpE7nM3XZ
Et+8eSNXVJk9ezYtW7aMoJgnTZrUZdvLDWMCTIAJMAEmwASYQHggwAp5GLzKUKQPHjxIbm5u5Onp
6fAZQDFPlCgRzZkzh1q2bOlwfs7ABJgAE2ACTIAJMAEm4DwCPKnTeSxDrKR9+/ZRo0aNyNvbO1B1
xooVi+LGjUuvX78OVH7OxASYABNgAkyACTABJuA8AqyQO49liJUUIUIEWZfaBqbiBAkS0MmTJwOT
lfMwASbABJgAE2ACTIAJOJEAK+ROhBlSRTVu3Jj8/PzowIEDga6ySZMmtGDBAkqSJAnB4s7CBJgA
E2ACTIAJMAEmEDoE2Ic8dLi7RK0PHjygu3fvUoYMGQgWcxYmwASYABNgAkyACTCBkCfACnnIM+ca
mQATYAJMgAkwASbABJiARsDiOuSHL37WEvAOE2ACTIAJOJdAoSz8V3KdS5RLYwJMgAmEbQLsQx62
rx+3ngkwASbABJgAE2ACTCCME2CFPJgv4JcvX+QETPNqEH7rxmV6cO+meRQfMwEmwASYABNgAkyA
CYQjAqyQB+Ji37h2gcZ6t6MyeeNRvy61rZawb8+vVDRbVBrUo4FJmp1bV1GFwompYZWsVLtcBho5
oKVJfHg+WLF4Gq1fMSdUEJw5eYhGDWwVKnVzpUyACTABJsAEmED4JcAKuYPX3vfFU2paIxc9eXyf
kiRPSR8/vLdYAtJNGN6JYseJR37CGq7kwtnjNLRPUypZtgYtWnuENu25QTXqt1HR4X576vh+On3y
YKhweHj/FqGzxMIEmAATYAJMgAkwgZAkwAq5g7RjxopDq7aeo2k/baEUKdMTff0jPebFTBrVlUqU
rU6Zs+YxiVq1dAblyV+Chk1YSJm+y0VJkqaUxyaJ7Bwc+HMbNamek4b3b2EnpWtFv3r5nMYN7UB1
ymek0nniUos6+enW9UuykYvmjqfG1XLQkQO/05+7Nst9HJ88/m2N9OfPHsnw7f/7hTo1L6OV8fbt
G1q34kca0quRdsIXz/1NTWvmpn9e+2phd29fpf5d61Dl4smpbP4E1K11RUKbkBZ1TZ/Yjz5+/KDV
PWfaUC2vrR3kGdC1LlUtkYJK5Ykj829aM88ki7W2o+OGuls3LELlC7nR1HG9qGaZtNSxWWm6d+e6
SRnWDmxx3fv7RmpVv5BkjtGYKWN6iHoS06RR3bTi3r97Sz9+7011K2amkrljy/Yc3r/TcLw1rloB
dnaG92tOC+eMk6MTlYompWolU8r7ANlw/XDPVCuVSvIZ2L0+gaWSE8f+kqNUYFehsDsN7tlQRRna
btu8jLq3qUQbVv0kRqyyyVGvGT79ZV6s9b9+5VxqVC27dq8dP7xXK9cWd5Xo+/G95bOKeliYABNg
AkyACVgjYHGVFWuJOZwoatRolDJ1xm8oxEfbXHZsWUmnTxyklb+ekQqgPv7W9YtSCW9eOx/dFPvF
SlamBs27Ud6CpfTJbO6/fuVL16+eJ3QOwpIsnDOeDu3bThNnrqMECd0IylTESP59whr1WlOZCnVp
sujIRIsRk7r185Gn5p7UQzvFTx8/EtyFJo/pTnUadaROvcYKzv5/HOn508d0++YVLS2U9GuXz9Kn
T59k2Nt//6EuXuUpoZs79fWeQRky5aDtv66gD+/fUdr039EE0ab9e3+l2VOHyH1kih0nrlaevZ2U
aTJSi/YDKG68BLRnx3oaP6wjpUqTifIUKCmzWms75hLgnDr3HisU8Bu0dvksmj5vG82cNIB+Ex2P
Np297VUtlFnrXF+/fEHXrpyTZY4Z0pbOnjpEo6csp57tqlCDZl0pdbrMBKVx129rqUW7/nLk5sql
U4SOghJb8ba4qvz2tuh47Ny2mkqXq0XDJy6it/++oUiR/F9N3mI06d7t6+KaTadYYrRp1uSBNHf6
cBo0ao6cmzGyvxflyleMFq45RB8+fBCK/LeOhL16EY/zRCcQSn6TVr0Ejyx0XfCC/Lp+EU0e3Y26
9BlP+QqVIXSyvPs0oc17blKUKFFtcpcFiP8e3rsln1Xf509UEG+ZABNgAkyACQQgwAp5ACRBC3gq
XFkmj+5OQ8fNp1ixAyp0L549IbitdO/vQwWKeErL4IgBXrRp9w1hbI9gqPIsWfNS174TKHGSb8qq
oYyhnehr5+WTsCi7uSenyjWaaS1KmCgJ4QelK7pQyFOnzaTFme9UEvk69Rojg3PmLWoebfF4394t
9OjhHamMqjztu4/Q0qK+yxc85DWwVbeWQbcD5QzXA+WfER2x+AkTS4Xt6uUzmkKukpu3HQotpEiJ
SlIR/HP3ZnlfZMyck54//WYJVvktbm1wRXo1CpMuQ1a5X7h4BYoWPQY9e/qQkqdMS5vXLaD6TbtQ
87b9ZPFQ0pXA+m8r3h5XVY69bcKE7jT2+5UmzwAU9UN/badKNZrSmzev5S9rjgK0bfNy6jFgEsWI
GVsWizZGiBCRcH74BUb6Dp1JufMVl1nVdu0vsylFKvFHsxK5i07NWcqSLS9tXrtAjOBsIs9K9Un0
CGR6S/ezakPV2l6UI08Ryp3fv2OmwnnLBJgAE2ACTEBPgBVyPQ0n7GO42809mVR4YHl7JSyUsML+
feQPaQWPGz+hjGvSqreszavDIPISrhtQ5JSiaK8ZUJj0SpO99K4S36hlD7mqTKcWZSlCxIhUoWoj
2TGJFz+RQ00sVqqKQ+mR+P7dGxRFjG5kz13Y4bz2Mnz69JFa1isoFOjHovxChPOBhReuIOZire1o
W2Sh2EeNEk1mwf6HD+/Ms1s8tsc1StSoMh9Gd1APBJ2ID2L+w6MHt+nL589WR2jsxTuLa5GSlUyU
cbTx/r2b2BCs/Hh+lJStWFe4sryUI0QDRs6mWVMGUd0KmWQnr1mbPtSoRQ+V1NA2Ttz4lDNPwI7d
/bs3KbF4lvVuKugcRIocRZZrjzsSlfSsYagNnIgJMAEmwATCNwFWyJ18/aFofhZuEvDVhTx6cEcq
n9Mn9qXF645S0uSppHKoqoViBIGVz6g8FErUWbEiSLwEblSgcFmj2UI9HSy1E2aulR0UWFaxokka
0blo3tbfZxcNjCj4wb3DlsSNmyBAdIyYsQiuPEpuCjcQvWA0ARNwYbXOlCWXPkrbR91wIcEP+0bl
N2GxfXj/Nm3cdV1O4oWl/H/rFlpc7tJS243WYy2dEa4qrxqFUVuMVGD//OmjVMqzpkqmbe3FG+Gq
FWZjJ46Fa+ru7j8CVLxMNardsL3F3BhZwO/pkwe0fMFUmja+D5UoU508UqazmN5SYKxYcS1eb7hL
JRCjHRjtsiRGuF+6cJLuC0t/GuEWBdcoFibABJgAE2AClggY1zos5Q6nYVg7/MrFU/RaTDh7888r
uY8VOiAjfZbISZ+Y+IlftlwFqaBwTYEyDoFV+OqlMwQlDn6rKxdNI7fEyQK4NsjEVv7DSiTevZvQ
XIOTDq0UE+LB8FPGJE5YaTNmySm2UQN0RHIICzYmcoLvv8JN4csXY381NlfeYkIpviVdHFDHxtU/
m5xfkeIVCUrfHDF5EUoSrMOYHPri2WMtXbZchejz50+0ZcNiodyLkQ0rK+hoGb7uRIocWabFyjtQ
xud8b2wyqHk5gT02wtVa2dGjx5R+41s3LZW+7+gYgo+a1Gkv3ghXa3XbC4df/nfZ80nfbcw3wL2A
awtXEghGnuDXjcmVUJzhaoSOlCOdW1ttqFitMeFZw7MK16KXvs9kfegQQ4xwxxKeWPZ026Zltqri
OCbABJgAEwjnBNhCHogbACth/LX7f1pOTNCEdXHiD+u0MGs7ZSvWo/rNDtCowa2lq0CMGLFowIjZ
Fi101spQ1k21tZbO1cLhwjNUTIqLGDGSdJkoVKy8mEjn77qj2lq+SkM6f+YYdWlZXipaU+f+j4qK
ia8QW+ebNWcBMSm0DvXuVIMiifLLVqpHl86f0PLAD3jS7A00enAb6SIExS2R6AgtKlJWVU1Jk6Wi
xl495SRHrDMP/19r1lEtk9iBPzEm8mJVF/gVw6Jr7t9vte3COq0XjLBAkB5+0UbEFler9eoKHigm
SI4f1kGuUIL0cMnwHjtPS2Er3ghXrSArO/7nasoBSXGN4Fc+elBruaqOTCfCypSvTfWadKYvfl9o
/uwxcgJtZNHmRG5J5UTfNGJipjME9+aL50/lPTNqUCs5cgKfcsz9gNjiruqHEg9xS5xUBfGWCTAB
JsAEmEAAAhHE0l4Blgk5fNGYVTJAaRxgmAD8ix89vEvJPFJL5dRwxjCeECMKTx8/kJMJlbuOM08J
rgtx4sSXfvrWykUa8Ad7dA6cJVixA0pk3HgJnVWk4XKcwRVW4McP75F7shSEjqK52IsPLq5oB5Y/
fPbkEcGNRE3mVO1T9TripqLyGtnC4g5/8jhx48mJx/o8trjj1YplHCNGikTrd14xYVooi/PuO317
eJ8JMAEmwATCJgFWyMPmdeNWhxMCfTvVlMtDWjvd+asOCD9851iErdUR2PCw3PbAnrM+H1zb+ov1
6es16UQ167fVRxEr5CY4+IAJMAEmEO4JsEIe7m8BBuDKBLBE5kvdmuDmbcXKPK66Hn1Ybrs5Z2cf
s0LubKJcHhNgAkwgbBOwqJCH7VPi1jMBJsAEmAATYAJMgAkwgbBDwNissbBzPtxSJsAEmAATYAJM
gAkwASYQpgiwQh6mLhc3lgkwASbABJgAE2ACTOC/RoAV8v/aFeXzYQJMgAkwASbABJgAEwhTBFgh
D1OXixvLBJgAE2ACTIAJMAEm8F8jwAp5GLyiW7dupezZs1OzZs3CYOu5yUyACTABJsAEmAATYAJ6
AvyXOvU0wsi+r68vnTt3TvwBnDhhpMXcTCbABJgAE2ACTIAJMAFrBFght0bGhcPz5s1LPj4+5OHh
4cKt5KYxASbABJgAE2ACTIAJGCHA65AbocRpmAATYAJMgAkwASbABJhAMBFgC3kwgQ3OYm/fvk0H
Dx4kNzc38vT0DM6quGwmwASYABNgAkyACTCBYCbAkzqDGXBwFL9v3z5q1KgReXt7B0fxXCYTYAJM
gAkwASbABJhACBJghTwEYTurqggRIsii1NZZ5XI5TIAJMAEmwASYABNgAiFPgH3IQ54518gEmAAT
YAJMgAkwASbABDQCbCHXUPAOE2ACTIAJMAEmwASYABMIeQKskIc8c66RCTABJsAEmAATYAJMgAlo
BCyusnL44mctAe8wASbABJgAEwgLBApliRQWmsltZAJMgAkEIMAW8gBIOCCsE3j18jndunE5rJ8G
t58JOIXAvTvX6fmzR04py1mFoD33794IdHG3rl+i169eBDo/Z2QCTIAJuBoBVsiD+Yp8+fKF/Pz8
AtSCcCiND+7dDBD3Xw94+vg+rVoygz58eG/xVD99+kh/7tpMi3+aQGdOHrKYxlbgxBGdafmCKbaS
hFrc30f+oD92bQq1+kO6Ytz7X758lj9LzwHag2fh3p1rBCXr48cPFpuIMm5ev0iPH941iVdl67cm
CWwcII+5+Lf3iwzWt91S+d/C/NObl4Xj9+/e0rXLZ+jRwzsBor/l9+djqT3/vPaV7wlr7AIUahbw
z+uX5FW3AF25eNosJvgPce5PHt2zWNG5U0eoVf3C9PbtG4vx9gIXzh1HU8f2speM45kAE2ACYYYA
K+SBuFQ3rl2gsd7tqEzeeNSvS22rJezb8ysVzRaVBvVoYJJm59ZVVKFwYmpYJSvVLpeBRg5oaRL/
Xz+4c+sqfT++N72z8jFuUSc/+YzsQlBeHbWiQanbs2M9NWzRzSUx7t6+jtYum+WSbQuORi2cM1Y8
A9Hkr0TOmNSzXRXasmGxVtW500eoboVM4peZGlbNRhUKJaYtG5do8dhB58ozf0JqVDU71SiThrq1
qiDjcW+osvXbw/t3ynhb/x07tEfmPXHsL5Nknb08qYv4QfRt15d/6K/thHeACiueIzq1b1KCls2f
TO/e/auVhw5luUJu1LRmHqpZJi3VKptO61DYa/vnz59o9KDWVF7wwHuiaokUdPbUYVn2+GEdCSzn
TB+m1YX7HmF4t+hlzfJZlNg9ORUqVl4fTFDUl86bJHki39t//zGJD+rBj997U7mCiah66dSi/dno
zq0rJkUWK12VYseNTxtWzjUJN3rQqEUP2rFlpejIXTeahdMxASbABFyagEUfcpducSg3zvfFU2pa
IxcVFB+4JMlT0kcrVl6kmzC8E8WOE4/8hAVQyYWzx2lon6ZUpWZzatC8GyVIlFgonTdVdLjYZsme
j5ZsOC7YxA9wvlcvnabrV87R+p1XKHmKtAHi7QUsmedD+QqVofQZs9tLGirxXu0HiJGBd6FSd2hV
GiNmbFqy/ij5vnhGW4WyPXpwG4oQMSJVqt6Uxg/rQBky56Dp87ZRwkTudPrEAZNmrhcKG5S7ASNm
U9mKdUUZT0SHa4NM4540Bf3yv9NylKlPxxrUf9gPlLtASUqWPJVJGZYOcucvTnGEQgjlOk/+EjLJ
m39e0ZkTB6lz77FaFrR9/irTNiXzSE0P79+WabzHzqPMWfPQscN7aMbEfjK879AZdODPbbLdPQdN
oco1mtGH9+9oz84NpP52gL2247x3COW6+4BJlDtfCdGB7UUDu9enjbuuEUaQMJKwavF0aoh3SMLE
5Cf+IQyjDUpgocZIVMeeo1WQth3Qra7oHNyjTFly0b69WyyO4mmJHdzB6NaSnyfSmKkryCNlOhrS
S/wRs95NaPG6o1pJEcX1b9C0i0jnQ/WbdaUoUaJqcUZ2smTLS9lyFZSdtf7Dw08H1wgbTsMEmEDY
JMAWcgevW8xYcWjV1nM07actlCJlehJfWIslTBrVlUqUrS4/1voEq5bOkArAsAkLKdN3uShJ0pSa
QqBPZ2sfH/sm1XPS8P4tbCVzubh/37wmWL87NC1FY4RSprfKwWWhcbUc1LdTLdnuXu2ryeMNq35y
6DyOHtxF+QuXcSgPEvdoW1l2oMDVs0BCGtAVyt9TrRz4pY8b2oHqlM9IpfPElecBq6QSKD9QHOtW
zEwlc8eWbddbamG1x7n36VRTKBFTVTa7WyhZcDn4fdtqLS3cFzo2K02KDdwa0LZqpVIJi6qbVNzM
fYaH92suLL7jaNTAVlSpaFKqVjIlHTnwu1am0R24ICwVnZ4molOqV/5s5YfylTJ1RsqRuzD1HjKN
okePSSeP/iU6otfp6qUzUjFPlSaj7LwWLVmZ8FOy4MexVK5KA6petxXFih1XKHjpqVmbvjI6cuQo
lC5DVkJeSBKhiOMYSrQ9Qd6iparQwb9+05IePbRbKrulytXUwtB2lKn/xYgRS4uHYp1RKLWNvXrS
d6KjeebkQRmHjmWUqNGoTqOOFC9+IkqcxIMaCMUTW4i9tm/btJQKFvHUyu05YArB1evYwd0yfyK3
pOSeLKW0cssAC/9dvnhK3sOWnoe+Q2fS6m3nqWylehZyBi0Ina6sOQqQpyg7arTo9OD+Lbp0/gRd
u3LWpOD8RcrSs6cP6frV8ybhRg8KFPakw4G4h42Wz+mYABNgAiFJgBVyB2lHFR9ZKBeaWPAPx1Dq
aWFp69p3gpZM7dwSfrD4QDevnY9KCcVuYLd60jVDxRvZvn7lKz9i925fM5LcZdJEF4rMcNERqS8s
Y5cvnCQMyytxFx2TCTPXUevOQ2TQqCnL5TGsokYFk7zgY5w6bWajWbR0cKPZKpSguk060dDxC+ji
ub9N/NAXzhlPh/Ztp7Hfr6SVW85Q45Y9KWKkb48PXHBg1axVvy0tXX+c2nQZaqLQQykaJspNlSYT
3blpOnyvNcLCDiyHuN9QthK48pw8vk+OBCDMW4y4nDj6J/X1nk7jpq8WVtpbNHf6cJVcbjG0//MP
I6VLxfCJi6RiHCmSsQEyuGFs/98vstNS0zMd7d25UZ4nlFVHBW4XKC+RezJKkSqDtI6D3fzZY4Sf
8ymT4l76PpNKqLJgm0Q64aCUZ015Hz598kCWdvDP3yh9puxS6VfFw8cZI1r6H9w99IIOEka+rl4+
q12TUuVqy9Gzri3L0a/rF1n1pdaXo99/ICzwuFeUpErr/86BcguJGCkStRX32LoVP5Jqv0qrtvBd
x/1jaaQpbfrvNGu9Su+s7f17Nyldxmzy+R41sCVVr9NKFv3AbCQQ9zXuIbQzMJIqbSa6L+7rwPqh
B6ZOzsMEmAATCC4Cjn9Rg6sl/5FyYcWaPLq7HD6HRc9cXjx7Qnt/3yiGsZvSAjEUjg/riAFeDg0Z
Z8maVyr7GOoNS4KPb/pMOYQiJkYWzASKQ2rxgU2aPLWMgdUTx+i8GBXl+uOeJIXRLCbp8hYsRXUb
d6LS5WpR5ZrNTKyn4gLJtJ+ExdpN+OTCDUF1zGDF3rxuAVWp1Zyat+1HqdNlpnKVG1DFao218uPE
TSCUz5wUP4GbFmZ0p1qdllLhhqINgQUyZ54i0jIMRRtuFxi+fyNGINAhgXUSnUKMSOglYUJ32aEo
UqKSdP/IV6i0Ptri/gyf/lSluActENb1XPmK0RphVYULB9ytjApGQrq1rig7oZ1blJWjRvWbdpbZ
J83aIC3iKxZ9L+O7CAX2kuisQZ499V8ZBOyCQ4qUqCit2If37ZDFw1peytN/hEbVh05L6nRZTH6R
o0RR0XJ+CHylW9UvRMWFX3SrjoNkHO5duOFEEpZ4+Hxjrgi2+lEhrRALO698n1P0mN8s8crqr19Z
xLNSffIQbl2L5wbs+KNIPA+JEicTSm8kCzUEXxDajpHERaJd4NexxyhZ2UsxyqQXGDfiJwi8y14S
MUKAzpByH9KXzftMgAkwgbBGwJiJLKydVSi2FwqMm7D+RYseQ7oEvHr5QvqPwqoJhS9u/IQyrkmr
3rKVXh0GkZdwZYDvas68RQ21HAoffiymBDxSppUBDx/cpqw5C5hGGjjKmDmXlgqW0kVzxxP8itGx
atSyh/RV7iQUSvg/V6jaiLr395Edhkeivi+fP8vrqxXgxJ2CRcvJTsC2TctEO3rSbuH+0nPgZFkD
rJGQ1+I+wz2mBCMLsORCMVJSpGQlh62imHwIxT6tUErTpPuO3BInV8UZ3sJ1o1zl+tKVBM+Am1AS
lSTzSEODR8+lQaPmSD/sqWN60Owpg6Qym1g8RxBYyoNDoOTCLeSAUMQxrwGdGb27CuqE0ghLtDXp
IJTNNILN6qUz6fjhvSarxGAiJX5Qwn8TIwzoqGcT92WNem2sFaeFoyOqV95V5ypuvIRaGnRw23Yd
Ll3XMEnSXFKkSidHGDASZXQ0xLyMwBzjHYcRG3QWF6w+RO/fv5XFmHeu4VePOQHquXW0rof3bkkL
O3z6WZgAE2ACYZ0AW8idfAWhrH3+9ImmCMUCP7gnYCh7+kR/v9ekws81StRvE5jUZCZYWY0KFE74
FMPnleUbAUwShU/+rRuXvgU6sHdblw+rQmBCmhrlQLkTZq6l3cde0EifJbRr2xravHa+LB0Wc0zW
O3/6qAO1GU8KxQuTgLcKhRy+6FgeDxZ4iLu7v09y8TLVaOi4+SY/+DfrJTCW5gkz1tDa7ReFC0J2
mjlpAFUunlz6ocMqb1TgL11TuPKgE6NXxvX5wa9A4bJylAEroOAc0V5wPxaM9zkU8CP7f6f9YmJj
0mSpAsz50LfR0j6UcXSYRk1eJjs/lpbig+Jfu2F74WueU0z2/Oazbqk8FQYl84bOt/rmtYsyytz9
pEyFOrJDgBVhzAWjUZgA6uhKRaocjFTgfsOKMo4Inhu4pLXvNkKOcmGeAMS87bdvXpbzENDOwMgt
kT95inRyTkJg8nMeJsAEmIArEWCFPBBXA2uHw9/1tZhMBwsq9pU7AZQ1TPpUP7gSwAqnVhiAUoIP
1G+bl8s/1rFy0TSppOQRq0MYlVPH98tVC+ZOs265M1pWSKaDkoW1x1XnA/v4GZ0caKStsEgGZrIi
yv776B/CT3yHuD6n6fetq00mF+76ba1cJxvWXihW6FSp88AkxZJla0gfdCgwCIcyo5/UiTCcK6yV
n79ywLFRqVrbSy4dN2vyICpdvrbWUUgpXHswmXDTmnmEJfzAGJNN1/4y22jRdtPB17t99xFy5ZvJ
szdKN6vBYuWMoF43PDtYceX8mWPSDxj+5RgFgLuHcrPw6jBQrk6yfsUc+azdvX2VFoqJnhAom5i4
qJRVzKnAsd6ybO/kSpSpLsr1XwKwhGeNAMnRuUaZ+p8liz1GItp1G067flsjJzD+tft/cqURKMOY
dIvlCDGxEW4tEHttryRc2mBxhxsNJhdjQi46fuZuRujItO06jPBOMJeMwkUqgVi5xtLzgDbhvfXo
62ox14TRAPe9XsAcS7bimjgiaDskvnDPwmTopfMniQnsueXEWH05aBcmuWLCbGDk8P4dAZZzDEw5
nIcJMAEm4AoE2GUlEFdh6rhehA+uEjlBU0wQm/jDOhVkdVu2Yj2xzNcBGjW4tXRzwIoNWNINVlCj
opZOU1uj+UI7Hdx5Voql2pRgpQ/IkDE/y1U0sB/Uc4IC16ByVqn8YDk6RwSTQft1riUVaiih+rXM
oTwM7dNEKooY1YDir9yOUMdA4XKBJfwG92wozwG+w1gSTwlWZ9H/kZSSufz9g2Fx17uVqPTmW/jU
w28ck4XhU64E9w0mmmLN6k7Ny8i6MUpTRijt9Zr4+2kjLbgGlS3yw+UEv35ilQ5H7lnVXv0W8yeu
i5U3WjcoLIPBAdbm1p29tWR1GnWQLjMzJw8kH7FyEQQTZFt1GkKPHtyhFmJytBI8l5BpP2+lwsUr
qGCbWyisOQRXKLSYO2AumICqrwPxA0f+KPzpi8ukeqaVqjehBbPHigm1w8S9053WLJ9Ns6cOkeng
moM5H5hnALHXdljUL4qJoljOER0fjCxghAauJ+bXEpNTca9D4de3ByucNBcr0qxcPENY6DuYXK/9
e7earNLUTqyjDtl/9p3m3gJlGuKWOKncGv0PndPGLXvRyEGt5DsOlvGpc7+9L1EOOqarl/5ALdr1
lyvOGC1bpYOL35ULp2i8mMTMwgSYABP4LxCIICbF+M9W053N4YufdUe8GxwEsEzeI+GziqFp5bYS
HPWExzLHDGkrlWqMVhgVKMx1G3eUSixWrYASoVduUA4suk8fizjhq27tmsE6i/Wd3ZOlIP3yeEbb
EZR0sHo+e/KI3JN6GFr6Lyh1OTMvfN0xgRO+xHBvsSRQSrFMIlbqseb2YilfaIbh1Ypl/fCsw40j
MALfcVjIzd09jJaFDgUmlA4aOYdKWhgBsFYO2g73JDwD+JsAgbmXsfqJ7/Mn4h2XJkA1cLmbLtZt
X7fjsvTTD5DATgAs91h/3XwN8kJZQnYCq51mcjQTYAJMwDABVsgNo+KEYYWAdIURE8bwR5mMilLI
m7buYzSLU9L17VRTuppYKwwrmsBPmcUxAv9bt5CmTbB+LbGWeauOgx0rNIymhlIPyzommhsVLEWI
vzDaQ0wexhrrzhZ0UmAlNzI6ZKludD6jCVcx844xK+SWaHEYE2ACYYEAu6yEhavEbXSIAFbGwM8R
yS8mFHpYWI7RkTICk7ZNl2H0UvcHiMzLcP/6h2TMw/nYNgG4FI0VfynSmqRMk8Fa1H8uPDBKb0qx
Bjos41haMDjEkc6Bpfot/ZVfS+k4jAkwASYQVghYtJCHlcZzO5kAE2ACTIAJMAEmwASYQFgnYHwm
YVg/U24/E2ACTIAJMAEmwASYABNwQQKskLvgReEmMQFHCGDC42fxh4nwsyZIc+3aNbp48aJYftHy
mvf//PMPnTlzhl69emVSjCpbvzVJ4ISDGzdu0KNH/n+ZUxWnPy993di3MBddZQuwffv2rTyvO3fu
mMShfPNyULYSxKl6zdMhjb59Ko/59uPHj3T+/HmxrKP/H8dR8bbK1sep+tUWdUKspVHlI71Kq8J4
ywSYABNgAq5LgBVy17023DIXI3Dw4EHy8vJysVYR5c6dW6xOEln+3NzcqG3btnTkyBGtnYcPH6b0
6dNThgwZ6LvvvqOECRPS4sWLtfgXL15QrVq1KF68eJQzZ05KlCgR/fDDDzIeirIqW7/dsWOHlt/a
Tvv27SlatGjk7f1tGUN0CBC2cuVKrfysWbNSunTpKGnSpFSuXDl6+fKljCtevLjFutGODh06WKvW
JHz8+PGUIEECeV6pUqWi1KlT0927d2WafPnyUatWrbT06LCg7C1btsiwMWPGaPWjzZUqVaJFixZp
6e1xxznGjx+fsmXLJtmOHeu/fjoKGDVqlFZ23LhxqUGDBrRp0yZZ9rRp07Q4PXPs49pA9G3Tp/nt
t9/o2LFjMn8ksayku7s7lSlThvbs2SPz8X9MgAkwASbgmgRYIXfN68KtckECt27d0hRJV2oerKX1
6tWjy5cv0/z58+nUqVPk6elJjx8/llZSKMZQtC9dukS+vr60evVqSpw4sXYKyAsrLjocsJLv2rWL
kiRJIuNTpEhBZ8+epV9//VUez549Wx4XLVpUy29tB9ZhWOOhYD558kQmQ1sRpqy36OBg//fff6fl
y5fLtg8e7L/6yS+//CLrQv3oSFSrVk07HjlypLVqtfCtW7cSypowYQI9ffpUKuJ9+/Y1Wc4S7bEl
sWPHllz/+OMPSpMmjVTglyxZIrPY4n7v3j1q3ry51ubu3bvLjsnevXu1vKpssMWa7ugUIR5McM74
9erVSyrX6vjQoUNac5FfhattiRIltHjwXLNmDWXPnl3eD6qjoSXgHSbABJgAE3AdAuKjwhLGCIgP
q5+wuvk1bdo0jLU8dJsrFCm/8uXL+82ZM8cvc+bMfrFixfLr06ePbJSwEvsJy7Jf8uTJ/YRV069O
nTp+Dx8+lHHC4ugnrLgyTjy5ch/HQtmT8cKy6pcjRw6/mzdvaicorJJ+QvHVjlEW8ixbtsyvZMmS
fjFjxvQTFlY/oQD7CWu0X82aNf2E1ddPWLhlvLBoannt7QiFS7ZdpVu/fj20TL9t27b5XblyRe7r
26LSYbtv3z4ZL6yz+uAA+0LZl+mE8hggzlpAy5Yt/YTV2y9LliwaZ6H4y3KEsih5oZ3C6qwVIRRm
vzhx4mjHakdYs/2aNWumDg1thXXcT1i2/d69e2cxPfi3aNFCi7t69arJOQortp+wXmvx79+/l9et
TZs2MswW90mTJvkJy7WfsPZr+YV13q9169byePjw4X5iREKLw70DFqLzoIVhB8dRo0Y1CcOBedv0
CY4ePSrLwrVVgvsxT5486lBu+T1igoMPmAATYAKhSoAt5OIrGNYEVs5z585Jn+Cw1vbQbC+spDt3
7iRYeYUiTkJhlW4caFPjxo0JVtCZM2fS2rVrCdbwoUOHyubCpUIoudS7d2+x7nEUuY/jbt26yXjl
o6z3zcb1QX1KlC9x165dqVixYgSXjyZNmshoWLKVu8KGDRvEko1RtbpVfqNb8TaR7gloJyyjcFOB
dbxnz57STQLWc73AZxwiOgn6YKftw21CKJ+S+YMHD0zKBWNIpkyZtHDsv379mp4/9/8rkVpEIHZq
165NQommsmXL0sKFCwlW66AIrNP//vsvJUuWLEAx5tyFgi1dcOCOoiRjxoyEcHPB/bNixQoZXLp0
afNoq8dv3ryR9y3uXfVT7j7mmWA5xygI2qmE3yOKBG+ZABNgAqFPgNchD/1r4HAL8ubNSz4+PuTh
4eFwXs5A0j9aDe1je/36dYLvrbDASmUQCmGBAgVIWLNpypQpJCy2JCzqdOKE/58mx35gBW4M48aN
k9mhmCuBj/LUqVNJWM4JLiZi9ENOBIwRw9gfc4F7hrD+y44afMLhmgF3EwiUffgvo3wox/ApxnkJ
iykJy710l4D/eHAJ/KPh84zz7ty5s1aNUrrheqEE5w+Bsghf96AIrtP27dtlvWCKvzoprPaSg75O
W3XAhQdc4XJz+vRpwrOHTpUSa9xxDcQIjEomtzjWTyzF5Fn4eGOLjgM6g4UKFTLJY+sAvuNi9MEk
CTpilgR+9KgD7VJc+T1iiRSHMQEmwARChwAr5KHDPUi14iNs/iEOUoHhKDMm2ekVYZw6Ji5CoKzA
h1cJfKthcYRC7iypWrWqxaJgGVbKKPy3YVGHBdSoQp42bVo5MTBlypRUqlQpk3zwff7555/pp59+
ot27dxP8mQcOHCiVVeGiI3249YqaxQYGIRD+0SNGjJAdHviBK1ETFNEBUoJzhiilUYUHdluhQgXC
D4o1fKqhTBcsWFBOfIVCa0nQXiXoKKFDAQUe1mtz67g17jg3/XmhPLRBf1643vAfR4ewX79+0ndf
r+yrNljbom3oYBmRZ8+eUfTo0eUEV5We3yOKBG+ZABNgAqFPwPIXKfTbxS2wQeD27dtyAh5W1MDk
PRbjBOBCoFe4kFONNFSvXt3m6h3IhwmI+OnLUIo0lFoIXFX07ioy8Ot/sFRaEn15luLthWHSY7t2
7Wwmg4UY94vwm5YTDLE0Xq5cuWQeTOSsX7++zfxBiaxbt660ksNSrgQdBQhcKdQkUeyj04SfMwUK
NVZmQccErkpYiQZKs97NSO3juVICi7Mtrta449ywjCPuCXXNscJMlSpVVNFysiY6B/jBUo5rs27d
OgIrZwsmzcJ1CfeAElj9//zzT9nZqFixogrmLRNgAkyACYQCgW+moFConKsMHAExWYsaNWpkspxc
4EriXCAA63T+/PmlsgYFBYoqlKdZs2aZACpcuDB9+vSJFi1aJBUtuABAYCWFUo/VN+ACglU91Coi
JgWEwgHcIbC0n5joJy3u8INeunSpdMGBfzdcJOBjDQstVlmBhRpL5CmfZljqT548SRcuXJCtx9KA
OIa11xGBIggrOe5dJbDmw3d9+vTp0pUDLkGwYsN1yBmyefNmeS0wAgIXGCxD+Pfff8uVT1A+fOwx
IoJ6wQkjCBiRwBKMQZWGDRtK5RerwaBuLCMJH3Zr54ZrgNGTIUOG2FxPXt8u3Iu4FvofLOFKcK0w
VwGrtmDpSyy1qBfkwyhQly5d9MG8zwSYABNgAqFAgBXyUIAe1CqVlUttg1peeM8P6zSWAoSPL9w9
1IRITPLUC9axxjJ0mCAJ14OOHTtq0YMGDZJKLFwaxGodASy8tq6VuXVcpVVbrRIrO7bSQenGkniw
wsJKDPcN+FbDP14JlsbDmtrwp1dplIUfPs/wNRerwMjkPXr0kMf79+9X2a1u0S5927CsH/yWISoc
ky3ReQFbxKEuvRVdX7jKow+ztQ8XDSjCULBhpcY1wkRcjBBAsD46lHLUCx96dLSwbKRypbFVNuJs
tUd10FAe6sYkYvjx6yfPml93uJ9gaUr9tUE95ukQBsEEU/DS/2BhVwJFHD+su45OlrkVXPnwY/13
FibABJgAEwhdAhGwxkvoNoFrZwKuQwDWTFi5MSESyqkjAgUJfsNqDW9H8vOkg2oAACz9SURBVAZ3
WvjC47ygnFqb+IfVPrDyCZRJZ/rNGzk3WI+hQBtVho2UiTR4veG8cW7WLN9w3cB1TyPcTKyxMVqf
eTqMtsBCj9EA+Hy7kqBDOXfuXPmHkPSuNK7URm4LE2ACTCC8EGCFPLxcaT5PJuBkAvC5h4uPNYF7
DHysg0MWLFggRyusld2/f3/p/mEtnsNJmzOAERIWJsAEmAATCF0CrJCHLn+unQmEWQL4E+3KtcXS
SWA1m+CytMMNA6441gRrfqdPn95aNIczASbABJgAE3ApAqyQu9Tl4MYwASbABJgAE2ACTIAJhDcC
PKkzvF1xPl8mwASYABNgAkyACTABlyLACrlLXQ5uDBNgAkyACTABJsAEmEB4I8AKeXi74ny+TIAJ
MAEmwASYABNgAi5FgBVyl7oc3BgmwASYABNgAkyACTCB8EaAFfIweMW3bt0q/6CJtb/6FwZPiZvM
BJgAE2ACTIAJMIFwSyByuD3zMHzi+CMm586dC7Yl5cIwGm46E2ACTIAJMAEmwATCHAFWyMPcJSP5
p759fHzkX1QMg83nJjMBJsAEmAATYAJMgAnoCPA65DoYvMsEmAATYAJMgAkwASbABEKaAFvIQ5q4
E+q7ffs2HTx4kNzc3MjT09MJJXIRTIAJMAEmwASYABNgAqFFgCd1hhb5INS7b98+atSoEXl7eweh
FM7KBJgAE2ACTIAJMAEm4AoEWCF3havgYBsiRIggc6itg9k5ORNgAkyACTABJsAEmIALEWAfche6
GNwUJsAEmAATYAJMgAkwgfBHgC3k4e+a8xkzASbABJgAE2ACTIAJuBABVshd6GJwU5gAE2ACTIAJ
MAEmwATCHwGLq6wcvvg5/JHgM2YCTIAJMAEmwASYABOgQlkiMYUQJsAW8hAGztUxAVcl8OXLF7p0
4SR9/PjBVZvI7WICTIAJMAEHCDx/9oju373hQA5OGloEWCEPZvJQcvz8/ALUgvBbNy7Tg3s3A8Rx
ABMIDQJ7d26gnu2qBLhfv3z5TP6/L1ab9eL5E7p66TT989rXaprHD+/SreuX6NOnj1oaPAffyvev
x9LzomUIhp33797Sk0f3HC4Z7TRvO46NCs793p3rdO3KWUIbzAUdI/DCO8JRJnqu5uWqY//6r8k6
rHXC3v77D127fIbe/PNKZZPboJw3CrCUX52jvu3f0gW89/zTmYZ/S6/u2W9b1Ot/zczzfHtH6+tG
enMxcs2NcDUv15WOnz6+T6uWzKAPH94Hqll4vv/ctZkW/zSBzpw8FKgygivT30f+oD92bbJb/C8L
p9LN6xftpnMkAd5/d29fdfhZdqQOS2nPnTpCreoXprdv31iK5jAXIsAKeSAuxo1rF2isdzsqkzce
9etS22oJ+/b8SkWzRaVBPRqYpNm5dRVVKJyYGlbJSrXLZaCRA1qaxPMBEwgNAovmjqe6jTpS1KjR
tOrRaSyaLZr8FcsejVo3LEIL54wj3xdPZRoobL07VKfKxZJRs1p5qXyhxDS4Z0MtP3bOnjpMdStm
phpl0lDDqtmoWqlUsjOKuNYNCmvlq3rGD+2AKENi9Fm0VtiP33tTuYKJqHrp1OJ5zEZ3bl2xljRA
uM/ILgHajnPYunEJlcgZk5pUzykVT5XRq24BGtK7sTy8eO5vqljEnepWyERNa+SmSkWTSiVIpYUy
U6Gwu+SFdwTKunLxlIq2u21eO6/WtopFktA47/Z0/vRRLd+500dk3XUrZJZ1VBDXbYtot5LXr15Q
/651yLNAQmpaM49sy5rls2Q0rG3qWum3h/fvVNltbo8d2mMx/7L5k2Q+fdtV+bhGenn08A7hfqxS
PLnGGJ0qld7S9siB32npPB8qky+evih5D44Z0laGNa2RSysD3KdN6CM7LCrDwjljtXh9HYf+2i6T
2OOqynHl7Z1bV+n78b3pXSAVuBZ18hOeDSi/rmaZ3b19Ha1d5n8f27oGc2cMp0viGXWGvHr5nNo3
LUm1yqWnBpWzSjbOKNdoGcVKV6XYcePThpVzjWbhdKFEwKIPeSi1JUxUC0UEL+2CxcpTkuQp6aMV
KwLSTRjeiWLHiUd+whKm5MLZ4zS0T1OqUrM5NWjejRIkSixeWjdVNG+ZQKgQOPDnNrpx9TxN+3mL
af1fR3eGjPmZsuUqRCeP/UUzJvajs8LyNWXOZvpl0TQ6f/YYzVm2lzJnzUN3xcf8hEijBFahLi3L
UZkKdWjOkt0ULXoM2vv7Rooc2d8/cdy0VfROWIcHda9PqdJmok69xlLceAlUdptbo8+itUJgxVvy
80QaM3UFeaRMR0N6iT+21bsJLV73TXG1lleFJ/NIIzmoY2zv370u3X6uC56//e8X+awjHO+KTx/8
3YHw3A+fsIiyZM9HXz5/Fhy/l0pQrnzFKUu2vIJPFBo6bj7lzFuUHj24Q6MGthId+4a0drsxqx0s
uWUr1hU8x4jrekF0osZSl1blaf2OyxQvgRuNH9aBMmTOQdPnbaOEidzp9IkDaKImMCI8enCX5q3Y
T2kzZiV0IJ4/fSTj3ZOmoF/+d1pa7vt0rEH9h/1AuQuUpGTJU2n5be34kf+I4cQf1lHK1Bm1pG6J
k8p9tL10+drUvvtILS5SRFN/1r07NlCs2HEJys5xofgVKFyWErolke1CpseCWc/2VamP93TKV6iM
LCd5ijR0Qdyr5oL69O9oz8r1qUP3UbIDNGfaUPp92xratPs6RYrk/7mMETM2zV9lyiuZR2rRMfhi
l6t53a54jHtyyYbj4tsV3+HmYZTs+pVztH7nFUqeIq3D+YM7g1f7AcLy/y64qzEpf83y2fT44T3a
tu8+xYgRi+6FsPtIxIgRqUHTLuJd50P1m3WlKFGimrSPD1yHACvkDl6LmLHi0Kqt5+SHpG+nmvTp
8yeLJUwa1ZVKlK1Ot29eNolftXQG5clfgoZNWCgtOxHFhyZJ0pQmaewdQHn6YdIAyvhdbhrp882q
ZS9faMevEErHhlU/08MHtylBgsRUuERF6jFgEoEpBL5uXbzKUcsOg2jj6p/Fx/O4VNLmLv+DZvr0
l0P71y6fpdxCacEQO6yjPQZMJs9K9QydGurHx/WK+GgkTOhOLTsOoloN2kkFcbGwDr/0fS6HE4sL
iwIUqQpVG1G/YTO1suHSASsy3AjQ5up1W1HHnqNlPFwOFvw4ln7/bY10f/AQH6Oeg6ZSIdFxg9iL
l4ls/BecbUe1Rw/sorQZsgrlLInFVkAJSyfi8Ttx9E/at9dfcf9DKNf5CpaS1wQZM2bJJX+qkOVi
6Ddq1Og0aOQcqYwjvEbd1ipa+2hHjRad4sZNIMvXIu3sGH0WrRUDS3bWHAXk/QPl+cH9W1I5hgtJ
+ozZrWUzCUe7wUQvj8T9DckruMyfNZoqVmusKXMqHZ55/XNftkJdWrl4ujby0LR1H5WU3BIno/JV
Gor7a4x0I9CPYGiJLOxAoYLCi98Xvy80sFs9unT+BKVInV64F52hVh2HUKo0/gpx0ZKVtRJO/32A
YMWeNGsDZc1ZQIbjnaUEnQWcc5QoUWRQEqGImzNQaW1tU4hOkLV8ceMltBqHMnfvWCeZQAHcs2O9
VMihMKvyoonrAkmazPG2xY4dT3IBG7gL/TB5ID28f1t22lAmFBxVD46VwB3BFleVLrBbvO8Gi45S
ftH5gKU3YqRIVKdhe/EeG0zqj8RZe0+oOtHGGeJdClcSvJOy5SxIY79fITrBCenfN6+pY3P/zgvS
/yg60Oj0GJF7d65R30616O2/b2TyXu2rSU4wOtUWbVy34kdpMR/7/UoZjw7e6MGtae6yvVLxX/vL
bMIIRiK3pPJ6pk3/HbXrNkI+Q6p+W+9flcbaFvcIRvYg2YVhof/wWSZJMTqE9/cr8Q0oX6UBff5k
+btuksngQcxYsenD+3dy5BHvC5ybuQzv15zSiPA7N68Qvu94xqAjFCxaTnaGZ/j0k89uHPFM16jf
Wj676prDAAIXGxhLIkSIKO6PMgRDh17yFykrO/x4z2UWeoNe4OaF0U3x8aMfFu20+g3Q5+H94CEQ
MXiK/e+Wio+h3qqDm9hcdmxZKSxOB6lr3wnmUUKZu0jx4iei5rXzUak8ceVHEkN7jsjrV76EB+ve
7WuOZAv1tPhgdu/vQyt/PUMDRs6Wvnyzpw7R2vXp40epZE8e011YBovRjPm/SaUYCe6LDyPyw1IL
ZTBz1rwybv5sf4VYK8TKDtwmpgvLLj4Oa367IF92ePlDXr98IZT9czR0/AL5kTt76hCNnrJcfkSg
fEOOHtxFA4UVFwonXloTZq4l8faTcfgPQ7zrxZBgrfptaen649Smy1BNuTISrxVkYSe4244qodik
TpvZQu2mQXBROX/mKGUR1nBIGWHJ/OP3TeLj2kZ+SPDh0QvKhcUXlnFni5Fn0VaduKfSZcxGn0Wn
etTAllS9TiuZ/MHdm7aymcRhBACWdfVbKD7qSpq06i3vgV/XL1JBAbZQBOA2M3JQK2mxxsfUXGB5
Pbx/B+XIU8TEncg8nbVjWICPH94rP/I43xSpMsi6cM/Onz0mgCvMVeEzDslT4JsSbq3soITjeVTc
sNX7uB4/vEeOJGI0ET+0U8nTJw/ojHi/Fi9TTf7+2LlRWqdVvLO2qOfQvu2UNHlqreOIstFO1S61
/ef1S7tcg9ouKNBQyv8++od8V9Vp1IGka4XoZEFsvScQj2e3i1d5aTDo6z2DFq4+RDlyF5HKIuKj
C+vtcKEE1hfW1MticjeeC6PiLjqYE2auo9ad/d/no8T7E8cYpYE8f/pYGKeuaMWBIYwrn74qvi+e
PZF+50gwUeSLLKy4c2cM09Lbe/9qCa3s4LkaJt7vqdJkkkqvPhncs+CCWrCIJ/mIURsoxfp5Lvq0
gdnPnquwNDZNHdfLanbMJfn5h5FitPBfGj5xEfUeMk1+7+DP39nLk+KLUS2MZrXu4k1LfvKR3yMU
hmd7ZH8viilGbRauOSRHKjGqZi7QWdCRxHwQc0EZGNWAToFvMEvoEWALuZPZ4wGaPLq7HG62ZF3A
iweWXyimBcQLAL32EQO8xJDoDc3KYa9JWYQyCmU/cRIPe0ldKh7WEnwUTgkLHIa/U6ZKb/EFUalG
MznUjsbrXy458xSVH2CEFylZSVp0bCk7SGcusKzHEtZtWC/1AmslrICwfGG/cPEKUol89vQhpU6X
WSjncyTvwaN/0q5TjtyFZREoc/O6BfJD1rxtPxmGPErsxat09rbB0XZV531hHc70VclWYfrtrCmD
aJG4V88JZRwWRFivIFA6o8eMRWvFsOyWDYulhat99xFUU3RMIOCXPlMOue9q/8EaBiv7orkT5Mev
Y49RtGnNPHop3CCMCjoFGXTnl1xYfZXEE1bHRi160MIfx1GVWi1UsMkWisbFc8dl5xrPND6a5jJ3
+jBpeV209oh5lM1jWNq6ta4oXZFeCaUDVneMdEBg/V44ZzzBovrzzBHCraM0dRejTbCe4dlEO2KJ
6xycgg4g3GWUKJcQHOPdmTpdFhUlLN3fRhExKoNRF7ipJBXWeXRoTv29Xz6/WoYg7GzdtFR0MjfK
zhTeBeh8K2skikU79W1DWOSvowW2uCKdMwT3FN5P+G3duJQOiuuMTq8Sa+8JGDLgew9jg3qv4llV
gmuOZ/WVMFA4KnCDSC1cztToEEYX4J7hiEQRz1KPgZMpevSYcuQSVmN0QtCZt/X+NVJHHDH6hh8U
25df57+ofIf27aCIwrLcS4xowoLdXrwHjh7araKDtMWIBOaZ1WvSWb5bYJ3Hu3HXb2vFhO5r1KLd
AK18jNpiBEF/r2HOA0Yu8L26deOSvPfSpM8iR5BhPVeCaw7rOL5flkZv8J6KL0alLbnHIl+3fhOl
ch/HoLugqpe3ziXACrlzecrhQDf3ZPIlgiE4vNxgNYQVHA9V3PgJZRwUGYiXcM/wEpNgYPFRL0l7
TYKyp1f47KV3lfgpY3rIiWP46HsIZRxWpegxYgZoXrFSVQKEIQAvbOX/hhcMfHKNrgSAF2GrTkMI
PqGYcITjbv18NOZRovr71aFc1CPrEx8ZVT4mJ+UVfrL6l6VMJP7DRwh+wOZKvtF4lc7aNjjbruqE
iw1ciaxJbtFZgc9xL2G5yZg5p8YBH8vGXj3lDx+YeT+MpkmjukkfYIwEJU6cPMAH0FodIR2OZxHu
N7BOLRDWwvfv38omoN1GJX7CxPK+0qc/+Ndv2mHjlj1p9bKZ8mOsBep2RkxcLI8wKRA+zxi2hsuU
EnyQVyyeJv3UHX3m4TNdTvhDy86muHf1oxTwfR88ei4NGjWHjglr9FTxbM4WnS5Y4fD+glUelkO4
MgSX1GrQ1mpnLUu2fNRWjDJZErhrgLuaZIp3AsL0bjWW8iHMUodHhgv3DyVFhCtd87b96ZjoLP0k
OitwO/xO+FUrwTvCWttscVX5g7rNpHM5SC9GPNAZgdh7T+Adhndb9q+GhKC2w9n5ocRDGYdgPgCs
1LCk47619f4NajvgopUydQapjKOsjFlyBrVILf+vG5ZQRtHJ6Tt0hrjXs0tjHTo96IS/e/uvlg47
MDKZf1/u3bkhmcCIpwT54cYGQXqMNsNgggnibu7JqVmbPtIQoNJjCx3E98UT4XaVVh8s9/FM6F3k
AiTggBAjENAcE2JV/zcriiBubvifQfnED8NfV8XQ3PSJfeUJw6KjlD8EKAUTPVyjAsXp922rndaL
N1pvUNLB9QMfUO+x8+jHpXvkFlYwDJeZC3yJg0M6iEli2w8+ksoX6p06rqfFatRLUW2RyF2MRpzT
rVKhz4iXINLqV7FwJF6f1tp+cLVd1YeX/G2xooo1QScJvt+ZhMuOnos+vUfK9MJyPlx+SGH5hWQQ
6c+fOSatPPq0rrCPiZwYmm8vrP2w7sH/F+LMyWiY1N2kZS9phX9v5s6jZ5BXWKihjBwXvttKls6b
RPOEDzqsrrAGOypp0n0nrXGYq6FXxvXl4Fqi7Cq1mku/cfiTwi0LcvSgc6yE+vqCuo/lNeEzC8UC
/vD4Ye4D/IstvUvM64OV0Pxdi2NYTpUkEJZKjH6hA19buIVMHdtTdk5UvJGtJa4qH84BPs2wzAZG
YClVckdYYDNm+eYTbOs9gRFVGDGUS5IqIyS2McQoGlwtldwUrjfmgvlU1sTW+9daHqPhGF14cO+W
5qKDlaUsCVZNw3WztbSreT6s2qQ6+nCXrFSjqVx1ba9ws4ILml5gwTcX96QechIqLNiY5K1+mKyt
pEiJSrRs4wn69c87cl7FtPF9pJFBxWOLTiU62XjPW5LAnJulcjgsaARYIQ8EP0z0wRJkr8Way1if
F/sPxZA/BJMsMelT/bLlKih909TKDZgoiA//b5uXS7+ylWKVCvR28wgLllE5dXy/XA1irrD2hhVJ
6OYulQJwgtsKXDzg8xhSAgsDRizw8YU1JIEYKnfEElpeXDcMP8JHGB9UrPCxee182XwoUiXL1iAM
deOFjTrwB3bUMnD24u0xCM62q7ox/I1VVuBy5YjAXQDn/NL3mbRiYSY/zleNFjQRFmJYurCsHPyt
sSrGeuH+oz568Cu9LJ4fDE2jDOxjWN2o2HoW7ZWBjyMEyhjatVQsuwfro6UhX3tl2Ypv2KK7tFDB
Eq/kr93/k3Mo4NKD9Y5nTx0s/UeVzy1cSWD1atd1uLxXwQU/c2VSlefIFu8s+PyjowQLJJ7DbZuW
yU4JlCJM9IPP7UwxcRyT/5AGPuiYGwPB9URbbl67KI8xlwXHeK6dJXArUOestlAo4EoiNG+5Ms6o
ycsIP0zsxpKHRt4n8KHHaBbme+C8MJqBjiiUeksC/rAuLps/RYuGwUW1SW1x79rjqgrA9wKr2Ewa
3U0FObTdsOon6e6A5XPxzBYtVVnmt/eeKFK8onTbmCOeWbyfMPq3XUxef/HsscyPzhjC1D2GffzA
PaiSS8wJwrsfI0EwzmDSviNi6/1rpBycE84FfvGfv54njiHosEJpXr5giryPMEHSkowc2FJet3sO
zDHBpH7MJ8O67lDkscoL3jUvnj+WK09ZqkcfVrZiPemmgpEajBKgzTB2qGU2cW/CzQ5lJhCjRjAs
wOKtrqEqC98+dMisvdsCc26qbN46jwC7rASCJSZn4IOqRE7Q9KxJWMbLnuABq9/sAI0SM8zxYYCf
3YARs60OpVoqT1ko1dZSGlcLQ++/bZdh0m8VH3oMo2NS1jMxcUqJvfMRxrxACz7Y0idRLHkVQfzL
nDW3WEHFf6a9vXpRKVbKgGsKJpdhIhUEK1/UqNdG7g8UQ/9YSg5rcKO8SGKWPEYDlNiLV+ksbYO7
7agTHw4sW7harNHbufe3iYniZGSTrA314wOHORBQqJEGyhzcINRqLfgIzFr0u1xrv0aZNLIsKMBz
v1p8h/VtKlcRQASsOPBzhSV+8JifZFp7/wXlWUQnqrGwXmNCJZ5FWManzv32XNur2148Rssg8FPH
MLJ+AjNGuWZNHiSVcKRBRwD+s8pqhk4OBCt8EH5fZcPvVwluEfbE1j2N1Tmui5VkWos14CFoH/xR
W3f21orFKg3oRHVoVkqygd802gfBMowtxKR0JWqy2rSft0q/ZhVubYvnz5ag7fjjLeZ/wGXn4Sdy
RaTvsueXyocqI1e+YnJ5WVjJ1bwOa/cr7k/4TX8v3uFwXUNd1eq0pMpi3grEnBuUnLpNOkmFqpFX
D5kGE+/054/AgSN/pIrVm9jlirRQniCJhFtGoER0SLB+PAQGnlxfJ/HZek8gLYwQk2ZvkJ0xuEmC
USJhDFokVuCAYPUVrPSjpFrJlHIXE+mxopQRMeen8mC1Hix92rtTDcISlmXFylgY3VDp1bOi0mvh
X98/9t6/Kp+1bZ3yGaWyreJL5vL3b9997IWc94KVauDOiGcUrk94RvQCxRcuJghPIN5fRgXvsvvC
7QTfvOlipRTc+xiNwkR4zA1RCz/gfNU568tOI+ZRjBGr4PiM6CINGbhmeF57DvTvIGL1JHyTxg/r
KCdtY6ECLB2LfErwjl699Afhr95fplHhahvYc1P5ees8AhHEMF8An4HDFz87rwYuySIBKDCPhMUQ
69cqtxWLCf9jgei5wwprRKlw9qnDsgelGpPVoBQGRmBFgqUCL0WldOrLgZUQa866J0thcVKTvXh9
Wfr9kGg7rIXD+janzXtvWmy7vj36fVxTWL/hnmFr1AHLWuL8sWqFfgKfvqzQ2Iel1FeMeoT0PYlr
CiUKS5yFxgRtzOF4JiZwwv0DbbAkeE9hyb/ESZLLe95SmrAYJs9LdCyw9rmlyfdBOSd7XH3EkrgY
JULnT7/cpL06sVRgy3oFaeOua9LfGZPx0GHQi9H3BFaQAQN8f2y5iujLdsY+6sXSfdZcqOzVYe/9
ay+/rXiMcGDUG0tlmgtGiPD3FKrW9pJuI+bx9o6h9D4QzxEmJwf23DFyiNGZJKIM8/enup5wwzMX
uLdiRaN1Oy5bXKUJE1i7taoQ4NwKZTHtlJiXy8fOJ8AKufOZcokhTADrwev/GI159fgjHnqLgXl8
aB67WtvhioOJfNYsjCHFChMKa3mmt1odJoAtXGPd5el/6xbKv7JorYBmbfqKtXwHW4sWayq77j3F
bbN62cJEBP4iLP741c8r9jnUXr1Cjk5tSElQn8XgbGdIte2nGSPkHxFbve28U+eYBCcbVTY6XrCS
w4hkSeDyglVsJsxYY3JurJBbohW8YayQBy9fLj0ECMB30nwpK321WL3G2stIny409sNy24OTFz4g
+GNF1gR/LRGuCtYEFnusrWtNUqbJICzD1hV+V74u3DZrVzVshMPSGStWXDmi5EiLMYfl+3G95Rrk
gR3hc6Q+lTaoz6IqJzi2IdU2uBnByo0J/OFFWCEP+SttUSEP+WZwjUyACTABJsAEmAATYAJMIHwS
8J91FD7Pnc+aCTABJsAEmAATYAJMgAmEOgFWyEP9EnADmAATYAJMgAkwASbABMIzAVbIw/PV53Nn
AkyACTABJsAEmAATCHUCrJCH+iXgBjABJsAEmAATYAJMgAmEZwKskIfBq79161bKnj07NWvm/8cs
wuApcJOZABNgAkyACTABJsAEvhLgv9QZBm8FX19fOnfunPgDC5bXFQ2Dp8RNZgJMgAkwASbABJhA
uCXACnkYvPR58+YlHx8f8vDwCIOt5yYzASbABJgAE2ACTIAJ6AnwOuR6GrzPBJgAE2ACTIAJMAEm
wARCmABbyEMYuDOqu337Nh08eJDc3NzI09PTGUVyGUyACTABJsAEmAATYAKhRIAndYYS+KBUu2/f
PmrUqBF5e3sHpRjOywSYABNgAkyACTABJuACBFghd4GL4GgTIkSIILOoraP5OT0TYAJMgAkwASbA
BJiA6xBgH3LXuRbcEibABJgAE2ACTIAJMIFwSIAt5OHwovMpMwEmwASYABNgAkyACbgOAVbIXeda
cEuYABNgAkyACTABJsAEwiEBi6usHL74ORyi4FNmAkwgPBEolCVSeDpdPlcmwASYABNwYQJsIXfh
i8NNYwJhicCrl8/p1o3LIdrkDx/e0+WLp0K0Tq6MCTABJsAEmICzCbBC7myiZuV9+fKF/Pz8zEKJ
EA7l5cG9mwHiOCDsEfjy5bO4pvh9sdr49+/e0rXLZ+jRwztW0zx+eJduXb9Enz591NLg/vlWvv16
tIxfd77ltdy2b/Gq7M/aPWspToWZ1zNxRGdavmCKeXCwHqMtXbzK0b49vwZrPVw4E2ACTIAJMIHg
JMAKeSDo3rh2gcZ6t6MyeeNRvy61rZYAJaFotqg0qEcDkzQ7/9/emUBVVXVx/B8UoigqAiKIgIog
o6g4QSqIZg44iyGImqWWA5oDpOQQTqQ45RilWalkamkO5dSXZRJallK5nCEQVBLF6XP6vrMP3rve
0/sUlOGle6/1uOee+fzue4t99tnn3K3JaNfMBmEdPNAtpC6mjO+vl843hgms+XgeNqxZajhDGaTQ
xKqFZzn5CfAqh4FhzbFi6XTkXbyg9ubj5TMR0tQafbv4oUuQC7oG1wYp34oc+S0FPV5yQ2iQM8I6
eqJTq1qqtfnTD2er9SvthDSpphR96JW+q0qZQG9zvB7+Iqi+GzeuyXK6fVfy0XVG3GCcz8lUy+qm
KeGf9+1U26ZJxJ5vNyCs33A1rjQC5uYV0LX3IMm7NNrjNpgAE2ACTIAJlAQBTR/ykmjoaamTlKy+
ob5oEtAW1e0dcUssmWsJ5Zs5aSgqVqqM/+lYTf88chBxb/VFhy6R6B05HFWr2SDr79NaVXCcBoHf
Dv4I8/IV0P2VIRqpZRR1bwVkQvwH8PRtikMH9mLBrLE4cmg/5izdhH3fb8OSuRMRHTsHL4dG4OZ/
b2DPjo1QzpEnxfzN/iEIatcdS1ftRjnz8vhu55d4/vkCH+fQngMR0Lojvvz8A2xMXo6P16fC1LRo
P92J05Lg5uGHAyl7ZN+ys9IxJm4BhClcQouZsgQ+DQNUgJaWVcR30xarN/8u486dzUD06x3x1sT5
aNQ0SMbZ13RW869KSpDxdVy91LjSCvTsKyzzKxJxYP8eNG5W0LfSapvbYQJMgAkwASZQHATYQl5E
ihUsKiF5axrmLd+Cmo51ILQqzRremzoMLwZ3lkqQbobkTxbAr/GLeGfmCtSr74vqdo7yXjfPo8Kk
4IV39sGkcf0eldXo0ieNjZTWzKkxA9C+hR06tXSEYmn9K+0XvBHVBm38raQF+aMl8arrxMplM/BK
J2+Z9/tdm2SY7g8d/EGOcf2aJZgwqo86Xqqrb5cGuJKfp8Zt2/QpRrzaXiq1YR085QrHgoRxMn3M
G12xaM7bGBzRCm2FJTt+wiD8k5ujli1MwNauJmrX9UD3PoPls/8l9XtZ7PjR3/GCWTkRPwSVq1SD
TXUH9I4YJq+UgZRJMzNzxE5ZKuMsK1shtMdAOND3SwiVoXqthIJsamIqw04u9WRaYf9Q31zdffFK
VDTqezXC4UM/6RWt4eAs66V26GNtay+VfuXe0dlV5rerUUvNR9ZpRVJ/2mVQGX4Yd3o+04U1nlYE
iHvMiF563MkvndK7t3VFaz9L9OveWLr0KO3SlX5Djk6uoD5oydwZo+XvhfrBwgSYABNgAkzAGAkU
zcxmjCMo5T6ZCcWK/vmrouEf/u2Wtfj915+w9uvDGDesu5qVAmdO/iUViMhujXBahANaviwt5Q2b
tNLL97Cb/Mt5OHn8D9Dk4N8mmRknsWPb52gd0hWTZq3E9WtXpeJ34VyWVMabBbbD/KRtYnxpSIyP
hpdvMzRpEQKyEge164HZYqJTTljIh49NkEO3tXOQ138unEP66WMqjuvXrwp/7SPCF/u2GkerFqT8
k6IdPmAUnGq74+SxNJn+d/pxpPy4A2OF1ZiU0cnjolBPKLC0ilFUuX7tCv44nAp3YZEmaRXSDYsT
J2CYsIKH9nwVTcXqCinlipDC7u7ZUFrGlbiSuJIvOk1UjgsuPcPf0GuCXGq+3rBSjevcY4DkrkY8
JJB/+aJ0v3FycdPM9TDuE8VqUWb6SYwRlncLsZq0aHYMls2fhNipBW5JK5bOwP4fvsGshetR1coa
v4rVBxPTB+0IzqJt4qgl2Zln5O8l75/zWskcxwSYABNgAkygzAmwQl7Mj4AUy9nvjkDc9A9hUdHy
gdov5p4Hua2MGJcA/+ZtpLV48vgofLX7lOrC8ECh+yLcPRpi2JiZekrdfVmM+tbKyhbT5q7VG+8n
wuXh2tV80MTkzKmjUkl3ruMu3TRIIbeqVl1+SGkjl5WiWoh1gYyJW4gGjQJllHKlm4BWHaTCTGFy
ffjl5/8USSFfNCcWK4XveJpQxitWrIzXhk+mqmRfaZJBVv4Z7wyR4+7YLQrRMbNRvkJF5F7IRp16
3jJvSf1R9jFcvXIZwS/1wIAhsXpN0QRBd6JJ/S+sKC5XttVrPrTI/dxpcrZ/7zdoH9oXV8Wzp4+H
tz+2bfoMI8e/VzDhvDfhvX3rppwokcuPltAKwIH9u7WSQKy9/ZqjQeOWmukcyQSYABNgAkygrAmw
Ql7MT4BcIKxta0hrJ1ljL1+6KH2GSbkjZdOyipVMCx8wWrYcNTgWUWIZ/rCwqPs0bFGo3jjVdhPW
XW1rZKEqKONMzVu211PGqTuZGadALhA0WVGElFRrmxrKbbFcKwnfaB8/bc5u9RuobdAEgKz0RZEG
whWprps3Rk2YB1c3H70xklWcPmQ93755tZy0efr4ywmAjY09LulsAC1Km4XNO3jkVDiLFYHPP1mI
gynf4ZZQcHWF9jRQ/x5HHBxdZLHss+nwEGPSEi3uWZmnZdZ88Ruh34ciNGG4kn9JKuR9+o+UJxEN
7ReM50xM0K5jHzmZJTceXaG2HWoVuPjoxlO4ZZvQ+6P4ngkwASbABJiAURFghbyYHwcpDXeEm8Sc
+JGy5hyxGY7i5s8aIzfj2dnXEps4T6mtvvCCmQzfryCpGTQCpHzQhsHKVa3h3yxYI4dxR1WyrPpA
B8n15ObNG8IVZRaqiHEZEhPB8vatWw8kl69gAXLlUeS0OF1ESywsLEF1aIqB/QCaeTUiycL+KKWW
LOLdwl7HV+uSxGbP7VIhrytcY+ieVghKyg2JlHFaafASm07ppJfEaaMQn7haYxRFj6pYqYp0w6KV
DUOixd3WtsBtJzCok2SiVZb8w2cu/EJOan/4bgto74GzmIxGDirw/VfKpIuTbmhTrJYc/fMQsoQ1
3rlOfbiIDwsTYAJMgAkwAWMjYEAzMbZuGld/6OzwY+JlJPliQxq5AFA4O+uM7OSUhFVy0ydt/KSP
p28TNBGuKXQyBglZ+I4fPYztYlmefJnXrpwnrcB+/oVfTqeTRiaODseyeXGyzqfhT/BLPaWbyvKF
k+WEhV74Qpv0yKVBV7wbNJMbOYk5KbB0DjWJrzghhJ4B5acj+OhEEmORvbs3Y9UHs+S4aBMjHXt5
9I9fEShOTiEJ7x8tzx2njaR04gptZKSjHZWX7FzMPSdffnM+Jwt3/3dXhg35Sz9qzKTwvzZ8EnZt
Xyf7oOTPTD8h66WX7NCH3EmKIjQRUTbnFrYcbRSlDaY0GSHfcHqW9Oy+WL1YrWLX9i9kHG2KdXX3
EZtjzR6w7tMEN+PMMYOTIWJJLjvbvvpUrZcDTIAJMAEmwASMiQBbyB/jaSROHwVSshShDZqt2nTB
rPfXK1EGr6R49orYh6lvD8TdO3dQvrwFxk9ebNhqq1GTclyectXIYrRR1GetfpMFN37uGiRMflMq
o2TFJuUxOmaO3ljadggTGyYP4M3+baXimrhsM1qIjbHkKkEW0tFDQ+VJJMHte0qFU6stvQrv3Yhe
6fXLUD+1yoqCMtqQ5d2snDnWfbZYbuykjHSiSS9xykqHrpGyHPlvL1q5U55HT+eQk9AqwbJ7qx9b
vlyF98VmR0X6ie8bHae58+dcJeqRV10O7TuH46PF08TmyXcw8h7fBLFZVldo5WXhim/VKENjUzJE
DY5B75c9JHM6XrEwQnXSXoJ3YwdiaGSQ5E+rSUFtu6mbTknJj3srXPw+TEGrSaT4K+5eShvJwg2H
JmSGJrWX8go4WdvYKUX4ygSYABNgAkzAqAg8J05eeOA1kil/FVgdjaqnT1ln6K2NOcIaWsPBSSoa
T9nwnmg49CZLcvupXsNRWs2LUtmF82dRSbhQ0FnexiT0M6PNm/TcHRxrG+warZqQn7mdvVORx26w
0lJKIAs/uV7RKlFRhVYOcs/ngFyXyK1HV2gV6sK5s7AXvuqKi5eSTmmdWzvhvUUbxTnorZVo9Urc
6XhNE1NTbNhxTE6AlcSm7gXnvCv3fGUCTIAJMAEmUFYEWCEvK/LcLhN4QgJ03GDXNtobGanqWsIl
ZMW6lCdspfDFyc2IXnpE1vvSkrvipVvE4f5Nnkr75F42blgPYXEfii69BinR8soKuR4OvmECTIAJ
MIEyJMAKeRnC56aZwJMQuHPnNlL37TJYBVmafRsFGEx/1hNYIX/WvwE8fibABJiA8RDQVMiNp3vc
EybABJgAE2ACTIAJMAEm8HQTMHm6h8ej0yVA/rTJycnYu3evOGJQ/xxq3XwcZgJMgAkwASbABJgA
Eyg9AmwhLz3WZd7SHXGqi4ODA3JycuDv74+UlBS9k0XKvIPcASbABJgAE2ACTIAJPIME2EL+DD10
U3HSRHZ2NpKSkpCamoqMjIxnaPQ8VCbABJgAE2ACTIAJGCcBVsiN87mUaK8CAwNl/bm5hT/HukQ7
xJUzASbABJgAE2ACTOAZJsAK+b/w4W/duhVeXl6IiIh4rN6TpZyE/cgfCx8XYgJMgAkwASbABJhA
sRJghbxYcZZOZXl5eUhLS8OJEyceq0EXFxdYW1tj48aNIL9yFibABJgAE2ACTIAJMIGyI/B/G5CA
K94c8DoAAAAASUVORK5CYII=

--------------5s9NWzQQ01ZSmqQutE9KEvk2--


From xen-devel-bounces@lists.xenproject.org Tue Apr 01 17:32:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 17:32:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.934721.1336339 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzfTJ-0000jJ-DW; Tue, 01 Apr 2025 17:32:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 934721.1336339; Tue, 01 Apr 2025 17:32:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzfTJ-0000jC-AB; Tue, 01 Apr 2025 17:32:21 +0000
Received: by outflank-mailman (input) for mailman id 934721;
 Tue, 01 Apr 2025 17:32: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=neKF=WT=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1tzfTH-0000iq-R3
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 17:32:19 +0000
Received: from NAM11-CO1-obe.outbound.protection.outlook.com
 (mail-co1nam11on2061e.outbound.protection.outlook.com
 [2a01:111:f403:2416::61e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4144244d-0f1f-11f0-9ea7-5ba50f476ded;
 Tue, 01 Apr 2025 19:32:18 +0200 (CEST)
Received: from BN9PR03CA0634.namprd03.prod.outlook.com (2603:10b6:408:13b::9)
 by SJ1PR12MB6050.namprd12.prod.outlook.com (2603:10b6:a03:48b::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.44; Tue, 1 Apr
 2025 17:32:11 +0000
Received: from BL02EPF0001A0F9.namprd03.prod.outlook.com
 (2603:10b6:408:13b:cafe::71) by BN9PR03CA0634.outlook.office365.com
 (2603:10b6:408:13b::9) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8534.54 via Frontend Transport; Tue,
 1 Apr 2025 17:32:10 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 BL02EPF0001A0F9.mail.protection.outlook.com (10.167.242.100) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8606.22 via Frontend Transport; Tue, 1 Apr 2025 17:32:10 +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, 1 Apr
 2025 12:32:10 -0500
Received: from [172.29.45.113] (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, 1 Apr 2025 12:32:10 -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: 4144244d-0f1f-11f0-9ea7-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=imLlrInLe2cbyIusN30b/rgwdxYJtLyHExfeo36zogDnGd0IwD/gdfo59WOkkXdV9bVgJ/y1WAAsNap0JXrcbdDSaaEWwmzBUGHS4bcBmQpucnHnxFHnDw1Ych2hkQZRl1IOOTsOwY4w2CxCnPMKiclVcrfm8s/aXcJzLRL8SP7cVDcBcJQC1AZfL6Ot36vXB4AWPIt1eBDXYaXR1xMQTiM+hv0gxz3gEmmnsZc3mgeXJRkdcG0xbdTz73UPDzdGTSJEL98Xp8bhM2PV+rXXNfSZTj09sGlvPtFTXPdSq+lFJeqm+iYnLjvxoCGyK5rPtJzGhsAusOU5UleWo23NkQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=kTmMEaNdYEZu6AqoZQ69ySOHy1dmC9tej6Z7zHKl08w=;
 b=N/ASOGWVQCdbpeYhoNVBIKjDg6LsLUtJdsKMrbooVGSQyaOth+RT2MG3fJ6/yaTgzonNeUFQtTo4VjTAijRcmydF1DEyyIgHwWdu9TloqLPilC0BKkd51DQSCeL/dim6islVDz5lqG9p19BANnPHgRjpINcACFFMT4pBaWhwBpwAJ7+iuRR6ZzVFWxLRyQM4f6zbk6jjjxYpettuNwDLZ3W996AJLWBfalppBkVYyIiBr3tlaJpB3O9Mzi3+sybWEfoN+HTjd2ulX1O0synS7d/UOiKeaU10lZzyn5Zs6wpkPyDGZQZA8fcyQf7vBB0s5YSI9hIc5qFlkmhiPycgNg==
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=kTmMEaNdYEZu6AqoZQ69ySOHy1dmC9tej6Z7zHKl08w=;
 b=eTp7MiNZ+b7BVb/J6mJ32lrBCLTZVRiZhUfCHC3Ip9jm7VJYGWCsJ+Av38xrCBG9zsARBKATojUk4Y5eppW2sIcMVePbJYXEnwxcnUekCZZEIrfiBtxKBKiWwTnFisI/CM410pwYUjRLDy6Q3tZeUe6uAZkN43RXDTwb3By6D+A=
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: <8e2ecb31-6fea-46b4-b236-65a663510973@amd.com>
Date: Tue, 1 Apr 2025 13:32:06 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Domain IDs and Capabilities
To: Jan Beulich <jbeulich@suse.com>
CC: Xen-devel <xen-devel@lists.xenproject.org>
References: <0dd25ebd-34f2-4391-aa08-3d873ec72347@amd.com>
 <cc53bc20-51f4-49f9-b35c-77805147e603@suse.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <cc53bc20-51f4-49f9-b35c-77805147e603@suse.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: BL02EPF0001A0F9:EE_|SJ1PR12MB6050:EE_
X-MS-Office365-Filtering-Correlation-Id: a6912451-a4a6-4838-c708-08dd71432251
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?WmJJekR1YVZJekFXRUtRakc2T3ZDQjJRcTBjQVAwb0hGTCsrd3cvYmFKdXoz?=
 =?utf-8?B?VFFZSkttTjY0Z2dKMjczaWRUbE9Xa0d3cVFZMkowdnhPWnpweTc3a3p0Sk5J?=
 =?utf-8?B?eVgvelNwemRNOW1kanlsVUNBQnJUL2p6TXFkMFh5ajlZbjJNZkVQNURaeVFz?=
 =?utf-8?B?OVRRYXZLaFNHZEs1RmluMHdzWHNHeTFhakczY3Y4N3lrdmc3bWdBL3ZEcFho?=
 =?utf-8?B?dXkxaVV3aHlzOWtFTTRaMUtmazJDNzZ0Qm51TGk0UnNKNjNoNDY0ekszMlVM?=
 =?utf-8?B?Z0YvSGFSamtyQk9FQmdod0pXV1ZjOUdCVFVyWndpYVJOMzA3WWtSV0t0clNj?=
 =?utf-8?B?QUkxNVJkZmpmUXJ5Ry9ta2RFOU5wb2xyRU9rY0NMYUFTR3ZlamU4WmlRWitx?=
 =?utf-8?B?VmxJVm44U2xmcjJLczdxM2JaT2lLbnIvZTM4eWpZQi9EM2FwajRXWjVlZDkv?=
 =?utf-8?B?aGNMeHdhUjZTMVFzVzJNRG9ncC9rcFp4RXVjNUFscVQ3dEZRS3ViQmp2NVNi?=
 =?utf-8?B?QlA1Y0RLOXpqaXdjQlJyd1RTcFJybGRDN1U3UWVONzJSSXcza3d6NDNmTFVv?=
 =?utf-8?B?blVOS3BCcFNEelNJMVZFZEtOcjVrUTNRQ3RqRGZYQXYxdWYvMlN5RTdSZlUw?=
 =?utf-8?B?bkFvemNuWSszN2RWZjR0QmU5SG9XVzNUdDhhWjcvVXgvOWJYWjdaSkJqc0dn?=
 =?utf-8?B?YUpJRlRYMS85Z3U3WkJwenhRTERTd1lwc1pJeEg5UFVzMWloYTk3bWg0Mmxn?=
 =?utf-8?B?eUJ6bUFvUXVtZnJMcCtrZWZDZkZlT0FGUzZrOUdZODNDNzdiSGlScVpwV3h1?=
 =?utf-8?B?UjRZdmNoT21oUXJ6bEduaUdQbGQxeG9lRXduWEd5UTVBOUJvTWI1ZCtrT1Vh?=
 =?utf-8?B?Y3I2d1VYT0xXbVdMeUFqWThTcnNrTm1DOXhDMER3aGdKcUoxMzl4T3krWW5m?=
 =?utf-8?B?cW4vU2YyZXNZSWdaUGNwdWlXQnRCMXZ2b1BhQWRsZjAxc3BxNnJNRVV3cFRW?=
 =?utf-8?B?NTY2M054Z3R6eUFYdXNoaktFZXo2TnVVQVl1akkzeUNwbTZXMk5QaWR5WFBa?=
 =?utf-8?B?ZmNaSCtNdmVaSkhNZHcwTzhpOFZqeDBxNm04R0djdGRTdTNIRmZlUVRaazhN?=
 =?utf-8?B?dEZ5VGdNVEJVSW9lRGtHbjdMT0FWamZ2U1M3V3IzcmxOWXRuTCtYK3RHQUw0?=
 =?utf-8?B?SHlLUXpOSzJiUWhreXNFem5nSml2RDBKM1FycFdESVQvQ1JveW01cTNydllq?=
 =?utf-8?B?MXpaTkEwVmJQTFRaaGtYV1IzUlkrVDVld0twRldkNFNZRTEwQVJoRFNXdEsv?=
 =?utf-8?B?UkhxUzNDQ3FBK3dyTXFDYlZrTkRXc2tQMTc5eExiUHNvQWxNV2xYVWFOVTF1?=
 =?utf-8?B?czI4UDFlV3RzaTdDcjZwNUowRFBqN1NldHA0aXI5RVBmeWQ5dFJ1VWFQRDBP?=
 =?utf-8?B?c2F0SFdISDFVUXZaUi8vVW9GcXJybVZtNHpZcE9iWUNlSFBvSU9Ed0pMdW1n?=
 =?utf-8?B?dUFNVzMxQ3lwWUVZdnl2aU80VFQ3cXdYU1JiR0IxV20vQkhZaCs4QTRBRXI4?=
 =?utf-8?B?UDMybVoySTVBLzQ1NkNnak5UWVVaY3ZhZ0ZMdk5RRitUUmQrVVp2d1Rrc2h5?=
 =?utf-8?B?YmF4ZHdDVUplTmNydmhrYzZNSVNsS1I5ZUYzSzdwSitaempZQmRoTlJpZzh6?=
 =?utf-8?B?bWtYRFBLNXpCcCt1SHFRMVlmQWhRcUhLa3lORnlMWVB4eklIdklLK21DY1pz?=
 =?utf-8?B?T3h5eVJwRFVVSG1sZkdUSVB3YUtya00zUDlqMFk3SHlOMktHNXpndlhOOTA2?=
 =?utf-8?B?aHRienR4b3NQd01wOVkvWmNUZzE3MGpnYkdNUGEzT3pRaytQek5qUVh4dzJx?=
 =?utf-8?B?bmwwSWhNWWdQaGF1dGtWODVFdW5xU1FwUWtxRWJPUGVqTTc5U3JhcHZybjNG?=
 =?utf-8?B?RXZiVjhzVjB5K3NYVGxpTW1wWG5PV2tubHJ4b29wVWs4NExvYmlMaEVubnZG?=
 =?utf-8?Q?kvnueCx5ymedoAZABabsdtIWsnlobI=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)(376014)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Apr 2025 17:32:10.8698
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: a6912451-a4a6-4838-c708-08dd71432251
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:
	BL02EPF0001A0F9.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ1PR12MB6050

On 2025-04-01 04:07, Jan Beulich wrote:
> On 31.03.2025 23:46, Jason Andryuk wrote:
>> It is useful for a domain to know its own domid.  Xenstored has command
>> line flags to set --master-domid (the local domid) and --priv-domid, but
>> it would be better to autodetect those.  Also, domids are necessary to
>> set xenstore permissions - DOMID_SELF is not supported today.
> 
> Setting permissions for oneself?

Any call to xs_set_permissions(), AIUI.  Say you have two domUs, dom1 & 
dom2.  dom1 wants to create a shared xenstore node with full permissions 
for itself, but read-only permission for dom2.  dom1 needs to know its 
own domid to set the permissions:

  *  struct xs_permissions perms[2];
  *
  *  perms[0].id = domid1;
  *  perms[0].perms = XS_PERM_NONE;
  *  perms[1].id = domid2;
  *  perms[1].perms = XS_PERM_READ;

perms[].id doesn't handle DOMID_SELF

> Since guests have ways to figure out their IDs, there's probably nothing
> wrong with having a dedicated means for them to obtain them. It just needs
> to be made very clear that the ID can (and, at least for now, typically
> will) change across migration. As to the mechanism thereof, I stand by my
> views voiced in that earlier thread you point at.

Thanks,
Jason


From xen-devel-bounces@lists.xenproject.org Tue Apr 01 18:02:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 18:02:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.934734.1336348 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzfvz-00083W-ES; Tue, 01 Apr 2025 18:01:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 934734.1336348; Tue, 01 Apr 2025 18:01: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 1tzfvz-00083P-Bw; Tue, 01 Apr 2025 18:01:59 +0000
Received: by outflank-mailman (input) for mailman id 934734;
 Tue, 01 Apr 2025 18: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=neKF=WT=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1tzfvy-00083J-II
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 18:01:58 +0000
Received: from NAM02-SN1-obe.outbound.protection.outlook.com
 (mail-sn1nam02on20604.outbound.protection.outlook.com
 [2a01:111:f403:2406::604])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 653ef51b-0f23-11f0-9ffb-bf95429c2676;
 Tue, 01 Apr 2025 20:01:55 +0200 (CEST)
Received: from DS7PR03CA0108.namprd03.prod.outlook.com (2603:10b6:5:3b7::23)
 by BL4PR12MB9477.namprd12.prod.outlook.com (2603:10b6:208:58d::5) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.44; Tue, 1 Apr
 2025 18:01:51 +0000
Received: from DS1PEPF0001709D.namprd05.prod.outlook.com
 (2603:10b6:5:3b7:cafe::67) by DS7PR03CA0108.outlook.office365.com
 (2603:10b6:5:3b7::23) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8534.52 via Frontend Transport; Tue,
 1 Apr 2025 18:01:49 +0000
Received: from SATLEXMB04.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.8606.22 via Frontend Transport; Tue, 1 Apr 2025 18:01:49 +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, 1 Apr
 2025 13:01:49 -0500
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, 1 Apr
 2025 13:01:49 -0500
Received: from [172.29.45.113] (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, 1 Apr 2025 13:01:48 -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: 653ef51b-0f23-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=XCq2gELE980tJ+f0E4LjlYC7neh5rWxDnE5AqcId/oPOjCYWLAreIss5m3jJIK6j7JcprfDMD/oJCqRsQU3E8iFTGpI1hWTub6NhWDS+ARhvi2sTWwQJDD2NaykIuUKOSuJhTjeTHfv1YPt+w8OfI7orUkT7YxWM+Er8B9Mx87PBoMtoRYka5ygAkP878UzEPrPtlUIX5g3PwspbSe4MB8I00hOTFM+a3wKaV9RQAZ6yTS6MsVH19mlsLts90XrgX96XT211UhKeAG4rSV67smv1Wn806REhGjFqRaWTEBkp1xXtnEl8ifzZc2y0dBlZl3gcc3dKokmFdodUGNwuBg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=pcUKqZsSMSarP+4zvxYFVt9m2aIJjAWdVhCQvDV839Q=;
 b=rSjJ/7v3RZox32meY0q9UXTz0jOZUkkIV8K9P3gSDIfmLulZMsMXvsRuCOISFXOl3VV3ANKjwBsqeUy28EGRjqgzIXsNy/0EdMvWgY/3/ioVxXf1ObWrcwnqgR/+PHgsTgn6hm9csBhk0heEDwhF29l45tfE9sesq/0qR9dNibdtkam34N4S9c20JfHfDe0eLZOe+jXHCOsZlzJlKKaKC8DBTfIVyEniws55yiG1M9+2THu9QQaiwOA144Fwso2f2PqfKOlDsN9L93sLUj1+H7Nm84HZgOBVTvLUzcMaA+89YlRgHCK8n0P9m14xRGY2k0XsAjRZVbgbB3kJM8G1JA==
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=pcUKqZsSMSarP+4zvxYFVt9m2aIJjAWdVhCQvDV839Q=;
 b=oBxbHo/7gWgBVWEY2SfIJjsGDoxZZzsmEDrSr9jOtINnAoUwP3f9byO4/PQg1u/97DMi2rMc29cdqFYsbmK9Lh13LLn+Y0Wvw8srKImZ+vnXK0Jkk7kdkkrAzYM5NKysmTvj2jlChnOeY9zLD1/6lBVxCXStvY9TfAs6kXkyHGA=
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: <847a0afa-05bd-4f33-b07c-d9d69b9198ae@amd.com>
Date: Tue, 1 Apr 2025 14:01:50 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Jason Andryuk <jason.andryuk@amd.com>
Subject: Re: [PATCH v2 06/15] x86/hyperlaunch: introduce the domain builder
To: Jan Beulich <jbeulich@suse.com>, "Daniel P. Smith"
	<dpsmith@apertussolutions.com>
CC: <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>,
	<Alejandro.GarciaVallejo@amd.com>
References: <20241226165740.29812-1-dpsmith@apertussolutions.com>
 <20241226165740.29812-7-dpsmith@apertussolutions.com>
 <004b066a-b26f-44bd-994f-5c573f6511e6@suse.com>
Content-Language: en-US
In-Reply-To: <004b066a-b26f-44bd-994f-5c573f6511e6@suse.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: DS1PEPF0001709D:EE_|BL4PR12MB9477:EE_
X-MS-Office365-Filtering-Correlation-Id: e97c8388-4dfd-4d09-064b-08dd7147469c
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?NXZySU9uWUtaNHl5M3NWbE5JT2tKNktWWFViRWZCazlzN3ltWXJpLzNRVDhG?=
 =?utf-8?B?RUJ3bXlCTjlVUS9JaVdUTkxuMjh2RUcrMXNyd0VhV3VDSE5BMmliQ2R5V0Y5?=
 =?utf-8?B?Zjg1cXpoM0hRZi9FT0NSMFV3RUdmWFdnemkzUXFrRmNucUZLTGw0QzJHbEUx?=
 =?utf-8?B?QjhScnQrSnhDc0ZDd2xQS3o1ZUFGdjNVSFlYRUQ4SUR1aGgyejg0Vm5JS0Zp?=
 =?utf-8?B?aWZUdkorZmdkVTBrc1hSR09UWUJIcjdwNUVsTkxsaXhSdGozM0RheFZSeStr?=
 =?utf-8?B?cUV3VEk5akZNVnlaa2kycC9mMURWSzZFMCtjTU5xOFhHYWUvOTNCU0d5blk5?=
 =?utf-8?B?am5ETEpQTTBpRWFVVzREV1B5R28xTzZkREZlemJjMnAzYjhNQisxb1gwcUdS?=
 =?utf-8?B?ZHZQQTYyVW9hL3Z1Y2xuL2ZPUVc3aXAxcVR6clVDa2wva21IeGRaZUhkQllP?=
 =?utf-8?B?dHZHckhxcGM2WVVCWFZOc0s4ZDdCVUZsZE5VOHN1WGxNMUgyeU5GZFlGMkRs?=
 =?utf-8?B?S2RxbEhKU1JHQWpyRGQwOStnWnpkRHQydTNkcythbTIxdFplcEZTWmh0MVBX?=
 =?utf-8?B?QUROaVBmTGU0ZDRPWk9YWXdtSXhvNFpMYTRXL3BEYkNjWDR6am5BbDl2am1u?=
 =?utf-8?B?UjNvV0RRd2U0b2dyTkt1Y2hRSlNVblcvOWtncHFkTHRqOGhubDNOdERMZTdH?=
 =?utf-8?B?OWVaeS9BOTliTHVIVnp2akhqTzlvOW9manhEUlRCM0hmalFCa1FlTy9IYTBV?=
 =?utf-8?B?Zys0ZkNtRVJGc0hpbE5URllCejFEM3Joc256VHh6bHpZWUdCdWtleFNGalBD?=
 =?utf-8?B?MWRGeWV1alA5TzR6WHZyYXpva3ZGNmp5T0VuSy81UEFDV0NnaG1ZS3JTbnRq?=
 =?utf-8?B?ZHJ6ZXlrc2tKeHJWd21RalZOYU5hcWVHQ0xlWUQybmxpYXlIeGRsVTBFMVZq?=
 =?utf-8?B?ZkZjRkx3UUVDdnJTc2t5bWNIazRsMkFXRjF5S0NXSGlZRDZpT28zN24rT3BO?=
 =?utf-8?B?THc3M0htQXl4WDZWZkxhM3lrNnlMN3BtRXR3cmI1ZUxHc1kvdVY1M0ticDJQ?=
 =?utf-8?B?T3plSzE5U2dmSElPOGdKOU5sM2ZlS0dWTmJ6MlNNeURDNEVHYWVZckhNOU1z?=
 =?utf-8?B?eEQ0YUl1ZnFtYTZONkJBM2c5YU5rWm9KZW1kaCtnL1RuZkZkQW5kR0lyVHRQ?=
 =?utf-8?B?YytJOUFtVEI0UXExTUN5U2NyZHVZYittWjI3RmRmbGlTdmx5QXNHdDdheHBw?=
 =?utf-8?B?LzRabHVzbEJJT2tCUWJZeEgzRi9qSlFQMGExOCtIVENLak96dzNCaDBENWZF?=
 =?utf-8?B?TlVCZ0txQWxRRlY0YkJsbzVGK3NsYk4rbU8xTUl2WTRqNTU4WFExNmgvVlo2?=
 =?utf-8?B?SUhXQzJtcGo3dXpVeFE4WnpLMTEveWljaisydWp6aGNCRUJyOXAvV2JyM2dn?=
 =?utf-8?B?cWZJRmZmeGN3QnhsTUZuMUtaUXp3NG9rYTdJQ0txcmtQN3k2N1Z1bllrMVly?=
 =?utf-8?B?Mm8vRjR5ZGg2ZTdSa3YzU3lSazI3T2FHSEhQQThOaXVlUmdYNWFvWE9UUVZa?=
 =?utf-8?B?czBubkVqRkJBR3dmcU9wMjhwa25mQUJqZGpZdkt1TVBwa1RTSmdBNkxxeW5R?=
 =?utf-8?B?QmJDU1hJVnJyQm9RNnc1LzZpbEFSUS9BNDgyNFhIMEZ5WFFhc0w4WnVYWUZl?=
 =?utf-8?B?T1dCUDF1ODNEYmQ4dHRkYWFYU1Y5OHQxQlN2OWtQRWxTSEx0Nnk3WWlsQ2hY?=
 =?utf-8?B?UnFIUGRTOFB3NUEvZVlrZUorRi9kdWx3NmJYaDVndXRZdU05ZlhnSWdudHJO?=
 =?utf-8?B?U0x6OGxNNCtJdVg2RGo5MUdMNE80MzNxS2EvNnlzQlg2V2cxT1p2MjU3Mlh2?=
 =?utf-8?B?Sk5MME8xR0RiR1VhUHFXK2Q0a3U2Qk9RUjhjNlR4WVZuUTg5eVJnUms0aU5I?=
 =?utf-8?B?aWpmUzRqWWQzcDRTWUNJcFRrRnZPZ2tONzJhNGo5YktvR3NScE82UEo2d0Fq?=
 =?utf-8?Q?ZwoG9ERCuf0bvVW3aBJ5GlsdEbPaPA=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)(82310400026)(1800799024)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Apr 2025 18:01:49.6788
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: e97c8388-4dfd-4d09-064b-08dd7147469c
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:
	DS1PEPF0001709D.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL4PR12MB9477

On 2025-01-30 09:52, Jan Beulich wrote:
> On 26.12.2024 17:57, Daniel P. Smith wrote:
>> --- 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/
> 
> The set of subdirs needed in $(obj-y) is specified at the top of the file.
> Also shouldn't this be obj-$(CONFIG_DOMAIN_BUILDER)?

Later, all boot-time domain building is handled by 
domain-builder/core.c.  So some of domain-builder/ is always built, and 
Kconfig disables multidomain support.

>> --- /dev/null
>> +++ b/xen/arch/x86/domain-builder/core.c
>> @@ -0,0 +1,57 @@
>> +/* 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:
>> +        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;
>> +            break;
>> +        }
>> +    }
>> +}
> 
> What is it that's x86-specific in here?

Would you prefer xen/common/domain-builder ?

>> --- /dev/null
>> +++ b/xen/arch/x86/domain-builder/fdt.c

>> +{
>> +    int ret = 0;
>> +    const void *fdt = bootstrap_map_bm(&bi->mods[HYPERLAUNCH_MODULE_IDX]);
>> +
>> +    if ( fdt_check_header(fdt) < 0 )
>> +        ret = -EINVAL;
>> +
>> +    bootstrap_unmap();
>> +
>> +    return ret;
>> +}
> 
> Is this function intended to later be extended? Aiui anything fitting
> the hyperlaunch-agnostic fdt_check_header() will do here, despite the
> name of the function.

Eventually, there will be some checking to ensure that the DT actually 
contains hyperlaunch device nodes.

> And again - what is it that's x86-specific in here?


>> --- /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>
> 
> ... here, is it? Forward decls of struct boot_info are going to do.

Generally, if you only need a type, just use a forward decl?  Use an 
include when you need function prototypes?

>> @@ -1285,9 +1286,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];
> 
> This is going to change again later? Or else what about there already
> being a module marked BOOTMOD_KERNEL?

Yes, it will change.  There will be two paths, and this is part of the 
non-Hyperlaunch path which needs to implicitly select kernel and initrd 
from the module order, the same as today.  For hyperlaunch, the device 
tree explicitly assigns kernel and initrd.

Regards,
Jason


From xen-devel-bounces@lists.xenproject.org Tue Apr 01 18:12:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 18:12:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.934746.1336358 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzg5s-0002Kg-C4; Tue, 01 Apr 2025 18:12:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 934746.1336358; Tue, 01 Apr 2025 18: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 1tzg5s-0002KZ-9B; Tue, 01 Apr 2025 18:12:12 +0000
Received: by outflank-mailman (input) for mailman id 934746;
 Tue, 01 Apr 2025 18:12: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=p4cc=WT=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1tzg5q-0002KT-TJ
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 18:12:10 +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 d2d87f46-0f24-11f0-9ffb-bf95429c2676;
 Tue, 01 Apr 2025 20:12:08 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by nyc.source.kernel.org (Postfix) with ESMTP id 851F8A4056E;
 Tue,  1 Apr 2025 18:06:38 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8C8E0C4CEE4;
 Tue,  1 Apr 2025 18: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: d2d87f46-0f24-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1743531127;
	bh=AMxKMdc6JaXGoDULpx2LsHyyK+9guJAeFHlb18Ysfys=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=RZj2dFPq9CTYBxL2ojDtgvUsvNyjuQ/khq0dVSld02s3uJRixI6q+XQq1UIuEY4l0
	 GWgtEzhuIvYaGpDgDrggEoO14uv2OFxfPDRBoCjl/jkHU4qEzM4k6n9A4LWZ5r9Vrv
	 UM6EgVkgubAlZTaVD1ccHnaF4IeRHWDejy9pk7e72ZMj93He1g8Nb/ecxbH6ajQyYQ
	 qIWzipxQ1HqPHTeWQo+7Kp2tTp/VKU+nKPAddKsbk/Vdva8kXA641iUyfCY0bFEdB9
	 uMAvDgqrlSV485Sjwq8YzjzAqhfpKJ4O+5izxRcngML+meYkeqq2DmJuWvfEOKaQSN
	 Ega5cn/gKzE9A==
Date: Tue, 1 Apr 2025 11:12:03 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Luca Fancellu <luca.fancellu@arm.com>
cc: 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>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    Anthony PERARD <anthony.perard@vates.tech>, 
    Jan Beulich <jbeulich@suse.com>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Alistair Francis <alistair.francis@wdc.com>, 
    Bob Eshleman <bobbyeshleman@gmail.com>, 
    Connor Davis <connojdavis@gmail.com>, 
    Oleksii Kurochko <oleksii.kurochko@gmail.com>, 
    Penny Zheng <penny.zheng@arm.com>, Wei Chen <wei.chen@arm.com>
Subject: Re: [PATCH v4 6/7] xen: introduce Kconfig ARCH_PAGING_MEMPOOL
In-Reply-To: <20250401085858.2228991-7-luca.fancellu@arm.com>
Message-ID: <alpine.DEB.2.22.394.2504011111440.3003625@ubuntu-linux-20-04-desktop>
References: <20250401085858.2228991-1-luca.fancellu@arm.com> <20250401085858.2228991-7-luca.fancellu@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, 1 Apr 2025, Luca Fancellu wrote:
> From: Penny Zheng <Penny.Zheng@arm.com>
> 
> ARM MPU system doesn't need to use paging memory pool, as MPU memory
> mapping table at most takes only one 4KB page, which is enough to
> manage the maximum 255 MPU memory regions, for all EL2 stage 1
> translation and EL1 stage 2 translation.
> 
> Introduce ARCH_PAGING_MEMPOOL Kconfig common symbol, selected for Arm
> MMU systems and x86. Removed stubs from RISC-V now that the common code
> provide them and the functions are not gonna be used.
> 
> Wrap the code inside 'construct_domU' that deal with p2m paging
> allocation in a new function 'domain_p2m_set_allocation', protected
> by ARCH_PAGING_MEMPOOL, this is done in this way to prevent polluting
> the former function with #ifdefs and improve readability
> 
> Introduce arch_{get,set}_paging_mempool_size stubs for architecture
> with !ARCH_PAGING_MEMPOOL.
> 
> Remove 'struct paging_domain' from Arm 'struct arch_domain' when the
> field is not required.
> 
> 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>
> Reviewed-by: Michal Orzel <michal.orzel@amd.com> # arm
> Reviewed-by: Oleksii Kurochko <oleksii.kurochko@gmail.com> # riscv

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



From xen-devel-bounces@lists.xenproject.org Tue Apr 01 19:51:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 19:51:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.934778.1336372 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzhdQ-00082x-AD; Tue, 01 Apr 2025 19:50:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 934778.1336372; Tue, 01 Apr 2025 19: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 1tzhdQ-00082q-6D; Tue, 01 Apr 2025 19:50:56 +0000
Received: by outflank-mailman (input) for mailman id 934778;
 Tue, 01 Apr 2025 19:50: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=Dkoz=WT=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1tzhdO-00082i-R8
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 19:50:54 +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 9d54ec39-0f32-11f0-9ea7-5ba50f476ded;
 Tue, 01 Apr 2025 21:50:52 +0200 (CEST)
Received: from BL1PR13CA0255.namprd13.prod.outlook.com (2603:10b6:208:2ba::20)
 by CH2PR12MB4135.namprd12.prod.outlook.com (2603:10b6:610:7c::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.44; Tue, 1 Apr
 2025 19:50:47 +0000
Received: from BN2PEPF000044A8.namprd04.prod.outlook.com
 (2603:10b6:208:2ba:cafe::42) by BL1PR13CA0255.outlook.office365.com
 (2603:10b6:208:2ba::20) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8606.22 via Frontend Transport; Tue,
 1 Apr 2025 19:50:46 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BN2PEPF000044A8.mail.protection.outlook.com (10.167.243.102) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8606.22 via Frontend Transport; Tue, 1 Apr 2025 19:50:46 +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, 1 Apr
 2025 14:50:46 -0500
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, 1 Apr
 2025 14:50:46 -0500
Received: from [172.23.214.75] (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, 1 Apr 2025 14:50:45 -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: 9d54ec39-0f32-11f0-9ea7-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=A52KvFicwJiha5U+m7c55RZhVdCDvY4WyReusIlVDHt9kvLB0ynIFGwmgkGH7qyPK9Qblv49rf9ldzh7CV2Xxewd30l69eKHddmA7xO9FD6/ZkFM6cnsZw+runUFiFoso0fO3C5DvUz2CbLEyM5GW6YQpLSl81GHykwPnmt7bVUoI20r1g3y6aGrXRsCU45Q5ymOSbnC1h8zQL2HkpOZEC3rXI3tpV4hF0YAL66vMkt0Ghdk5Xh1PwZLn3UO3raJ+1/nY9Gj4ozzHKEcCTk7AX9eo/CsWmtDlHih7UphMNGSwI8WUZf04YB8xgXnc4RDdXU/SUgO4RBweBbtyF9jvQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=78rzobEEHDiCGVLMc8M5TlNFbWs0btjXkBRBmrKoM3U=;
 b=B4ydmfrCI60LwRIXaXZaz/Q7CyUzBzFuB0EZJ6AHyKtOMQi/oIVTuVPm7hKJj8CkID/b9fwTVAuonqIINO9gUFh7rGtW45iVQk9BDArqlpFjDxoTLFi2Um+EPFP+DOrCYgN9O67Kw/ONETkz4bRgE9N7fZGa5fHrxnjl4l8V/X5OvE04/yLWL1sMXng5y6jtq6Pz+rEbU6ssJYnnGES5K6UXEMkH3Knrp3r32S/2yfB/Rvb0OVLlwm3EbiXZa2TfV4uVf45hRMKmzun7rdOcXmCtFwrELLWkP6BB4xYRLEyfrec50DBvB++PoPV9FwuR1p+lyEAiw6CgJmkeE4iIjg==
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=78rzobEEHDiCGVLMc8M5TlNFbWs0btjXkBRBmrKoM3U=;
 b=J3W3hGNquvl22Msn5gxkybqWCurVXd1F5Izr/Y/mUaZ8w4BDhT2+IVc3uaL4YDl+15E2SK3arK4x0LOKqwWKpYE6dyFg5K0LbHTeJP4iIOAaA4S68XrJpgaHfg0BFir+pnjfzpN9PQxdRiWxUmV17kyxIsYRWH/M4dtRYYpcaq0=
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: <1870766f-9dab-49bf-927b-043c14fba381@amd.com>
Date: Tue, 1 Apr 2025 15:50:44 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v18 2/2] xen/arm: check read handler behavior
To: Julien Grall <julien@xen.org>, <xen-devel@lists.xenproject.org>
CC: Stefano Stabellini <sstabellini@kernel.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, "Volodymyr
 Babchuk" <Volodymyr_Babchuk@epam.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>
References: <20250325172727.600716-1-stewart.hildebrand@amd.com>
 <20250325172727.600716-3-stewart.hildebrand@amd.com>
 <bfe213a6-9dd8-4ac9-9552-46090517e224@xen.org>
Content-Language: en-US
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
In-Reply-To: <bfe213a6-9dd8-4ac9-9552-46090517e224@xen.org>
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: BN2PEPF000044A8:EE_|CH2PR12MB4135:EE_
X-MS-Office365-Filtering-Correlation-Id: 2f57c787-3fd0-4db7-12e5-08dd71567ee4
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|1800799024|82310400026|376014|13003099007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?QkR6Y2MwV1VqY3p5V0RQRHNuWjVTd0c2M0NGSERiZytkVlJDeWkxdWc1SUJN?=
 =?utf-8?B?L2xkK0RTRGZtaWdRWGNFaldxSHlVVWhzcTYxR0dzTlZZTDRFNkEybnJWa21j?=
 =?utf-8?B?eGREQ1BBcjJtRnBNbGZRZVRiQVhZNlZtU01DcDhTVGFCMVBkdmNCdWEvOTdq?=
 =?utf-8?B?alN2cGd6enFXVmJlSnhnRGgrWXRDcW5iazdVZ0NYendUTHpBZ0ZRc1hwankx?=
 =?utf-8?B?bWtXaVFIK2NMdGtmNzdsV2JmWkIyY0hxSzB0ZTBoZWsxa2ZMeUZqODFzd2hr?=
 =?utf-8?B?Ty9SK29oN1hpMWg5MXN1ZUNaeHBIMXNwK3FSSHN4SE9qOFJzZXo0WC82WjdH?=
 =?utf-8?B?MVNUeXNNcHFQTGNFZVRmNTdCdzJDTm1IN0lkaW5GZmxtdmtpaFdpM20wM0pF?=
 =?utf-8?B?bzhxVWNIQVljajFGRDA3RkRQL0xYZEtSd3VQSkhTQzhBYk1tZWJleVBzNU1p?=
 =?utf-8?B?VHJWWHVrUlA5dlVOcXpUUXFvR2ZwdlFscGY4eVIzSDBzUG8rY1kwVVZXY2I0?=
 =?utf-8?B?aGIrZGxBc2gwdTd0RC83MnYxWGhYS0dWNmp5bzZDY0kyU3UrM0ZId0c4KytJ?=
 =?utf-8?B?M1pXSnNkNlhpVWJIaWVoUUNjWDNMS3Nqc1RXZTB1YmxtaDNMWlJ1V3luVTlx?=
 =?utf-8?B?SE1Cek1iQUV1cXJ3aE5jTXF4d1owRC82dzRSN0x4TVZGQlNtVUdHRTJqY1Fp?=
 =?utf-8?B?MVFsZ1VYSFRUcE5sUFBLR2w3N05XWEdPSWFpTEUyczdpOUhiM1dRcnlVMzFm?=
 =?utf-8?B?SlRaeWpMNU5xa2JlL3MxOHduMDZOZVIzRjVXZy9SaFRNYXg3bEdVaS9Dc0cr?=
 =?utf-8?B?RjZtVjd2VCtOT2pURXhJZ2R3WWpXYUtrdWNiVk9WR2J5bUIrUVpyVDdubjgz?=
 =?utf-8?B?bENGMjdpRmRjUHg5Y0pLU3MrakJQTjdBWmx4N1BBQ1NVejY3V3dFM01aZ3hX?=
 =?utf-8?B?OFRSTHNKUDdLcGlpbHlHY0dzczZkU29DWG85eG54amZDN041WEh2d3RyUzFZ?=
 =?utf-8?B?bzBSVjVDVUcycHNhNXRvSVZiRXU1QmdtbFpqdXJXUG45TTFZRjBjNkJ6K2I0?=
 =?utf-8?B?WmVFaXdjM1RlMkZQdURiV1Zwa1BMNUtNaDhBRDVqMW9hOUs0TWJ1Ly94WW9X?=
 =?utf-8?B?Q2g5YVBaRStJemRBNkhMR1grd3pYemxYU1R5bVQzeGlMVFMyWEExUVV1WEVG?=
 =?utf-8?B?ZjJBZUp6eVduYkpUVnNydVFsaHRmVXFKV2JoZ3A3Y2ExcDF6VzRHLys2Z0dS?=
 =?utf-8?B?azAvWjIzTWtaRUd6ZFdzdk94bHI1bHhrZzlQcGZLU0duNEp5K2pGbEM0amNs?=
 =?utf-8?B?UjZmMWl1VkpJS1JsS0E0aSszUlZYSHVPZUF4K2lTbWZYVkViaFBSN3BIR3lw?=
 =?utf-8?B?ZDhnTkRDeXpMeHRrcmZRd0tSQW5obldXWjV1YUEzMjNCZEd4d0dlZnVzMUxp?=
 =?utf-8?B?b1BjdVl0dGcwMzNsbitOU0FaTW92VVJrVkxjUU5JN3piWEFmV0JQOXNheXVQ?=
 =?utf-8?B?ZmEyNVhhYmtqUGVwam5sOG1GMkZrTXdkNnZabDdmTTUwMjVCOTV2NmFsTEVH?=
 =?utf-8?B?aUI3M2FBK1ZkS2RZSmpjc3J5YTlQN3NXWDQzc25iaDJPcmZraEhCelBKQjQ2?=
 =?utf-8?B?TVlGQm1WTFpYbTBjYVVMVGFyUDZJZFpFRnZZR2kybiswdFJ4amJmMjBiNElE?=
 =?utf-8?B?aEs2aUUrSVBIQnppZis4aFlzQ2wyWllHV3JqaG9oSlRqNmxXcEtIS3NXZFo3?=
 =?utf-8?B?cFliVjVNcENHN0ZDc2h0NlcvdkUrSTU3NnZQckYwSkxqd1JYWXNqbE5xeStx?=
 =?utf-8?B?bE9SSnFFVlZ3UG8xWU55ZkdJZ1plekh1YnlMd2pVdmpRdXFOZVBQdnE4aHdi?=
 =?utf-8?B?bFN2Q2hIVEhrelJPSVBLMWRMaHQ2WHZOZCs4L0xBbFF5UTRZSkpFTlpNUFZx?=
 =?utf-8?B?N2ExRHJ6M3QwUmd4SENRWU4rbFgrd0hxbzJwSmlHZmdaNlRHQ3UrdDBuekpO?=
 =?utf-8?Q?SIhV0X2pU8OxxuD2dObfVhOWUBkUpw=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)(1800799024)(82310400026)(376014)(13003099007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Apr 2025 19:50:46.6012
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 2f57c787-3fd0-4db7-12e5-08dd71567ee4
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:
	BN2PEPF000044A8.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR12MB4135

On 3/30/25 18:08, Julien Grall wrote:
> Hi Steward,
> 
> On 25/03/2025 17:27, Stewart Hildebrand wrote:
>> We expect mmio read handlers to leave the bits above the access size
>> zeroed. Add an ASSERT to check this aspect of read handler behavior.
>>
>> Suggested-by: Roger Pau Monné <roger.pau@citrix.com>
>> Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
> 
> With one question below:
> 
> Acked-by: Julien Grall <jgrall@amazon.com>

Thanks!

>> ---
>> v17->v18:
>> * no change
>>
>> v16->v17:
>> * new patch
>>
>> See https://lore.kernel.org/xen-devel/bc6660ef-59f1-4514-9792-067d987e3fbc@xen.org/
>>
>> Also see 7db7bd0f319f ("arm/vpci: honor access size when returning an error")
>>
>> Also see xen/arch/arm/ioreq.c:handle_ioserv()
>> ---
>>   xen/arch/arm/io.c | 2 ++
>>   1 file changed, 2 insertions(+)
>>
>> diff --git a/xen/arch/arm/io.c b/xen/arch/arm/io.c
>> index 653428e16c1f..68b5dca70026 100644
>> --- a/xen/arch/arm/io.c
>> +++ b/xen/arch/arm/io.c
>> @@ -37,6 +37,8 @@ static enum io_state handle_read(const struct mmio_handler *handler,
>>       if ( !handler->ops->read(v, info, &r, handler->priv) )
>>           return IO_ABORT;
>>   +    ASSERT((r & ~GENMASK_ULL((1U << info->dabt.size) * 8 - 1, 0)) == 0);
> 
> OOI, I was expecing GENMASK to be sufficient because "r" is effectively an "unsigned long". So any reason to use GENMASK_ULL?

Only reason was that I took inspiration from Roger's suggestion at [1].
However, I agree that GENMASK is indeed sufficient. Feel free to fix up
on commit. Lastly, this is OK to commit out of order as there is no
dependency on the first patch.

[1] https://lore.kernel.org/xen-devel/Zk72jPtd9iXhChbc@macbook/


From xen-devel-bounces@lists.xenproject.org Tue Apr 01 21:10:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 21:10:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.934805.1336385 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzisa-0000kq-5Q; Tue, 01 Apr 2025 21:10:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 934805.1336385; Tue, 01 Apr 2025 21:10:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzisa-0000kj-15; Tue, 01 Apr 2025 21:10:40 +0000
Received: by outflank-mailman (input) for mailman id 934805;
 Tue, 01 Apr 2025 21:10:38 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Dnoa=WT=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1tzisX-0000aB-IB
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 21:10:38 +0000
Received: from mail-4316.protonmail.ch (mail-4316.protonmail.ch [185.70.43.16])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c094f2ba-0f3d-11f0-9ffb-bf95429c2676;
 Tue, 01 Apr 2025 23:10:35 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c094f2ba-0f3d-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1743541834; x=1743801034;
	bh=hj9Bk2XsZOw0d0IurV4cLOQhgFhNNpF0lbwQuOaOKLU=;
	h=Date:To:From:Cc:Subject:Message-ID:Feedback-ID:From:To:Cc:Date:
	 Subject:Reply-To:Feedback-ID:Message-ID:BIMI-Selector:
	 List-Unsubscribe:List-Unsubscribe-Post;
	b=UpLZTEri+Db4cOhxxAp6AIgWz/HyOmNK3HnxiesffMy59SRKx3urscPzf4eP83g2Q
	 ScD4jYaMBOgVZto2E7bq0v35c1wmo4ysVljv1tW5gL4PVXHLNQTspwCkWR4Fnume0x
	 Bk9KnwPiIhivaoDoC3mH8NiZERMNZpsgZG96koNppIs9zlYRPWwiaOZoTW4wu/0q92
	 eZiRc8rM3VuQe/tJly6wQBrESW9CHkVituigpJMKW7rgIKGqvKdUi+HDx1Fb8mEOuD
	 4BDZQEZkxYHWbQ90CkXptr7udWG8N/V0haiHV6XmY/FpszLnIeMAjQsvLufpF4kH8r
	 PKvnWfVeFUXqA==
Date: Tue, 01 Apr 2025 21:10:28 +0000
To: xen-devel@lists.xenproject.org
From: dmkhn@proton.me
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org, dmukhin@ford.com
Subject: [PATCH v2] x86/domain: revisit logging in arch_domain_create()
Message-ID: <20250401211018.75814-1-dmukhin@ford.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 839b4d7e9735c64dc9d6a9a104cfc1749e5d14dd
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

From: Denis Mukhin <dmukhin@ford.com>

Use %pd in all logs issued from arch_domain_create().

Also, expand error message in arch_domain_create() under
!emulation_flags_ok() case to help debugging.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
Changes since v1:
- dropped parentheses around "hardware" in the log message
---
 xen/arch/x86/domain.c | 18 ++++++++++--------
 1 file changed, 10 insertions(+), 8 deletions(-)

diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index 4989600627..bd887b4d44 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -791,13 +791,12 @@ int arch_domain_create(struct domain *d,
     {
         if ( !opt_allow_unsafe )
         {
-            printk(XENLOG_G_ERR "Xen does not allow DomU creation on this =
CPU"
-                   " for security reasons.\n");
+            printk(XENLOG_G_ERR "%pd: Xen does not allow DomU creation on =
this CPU"
+                   " for security reasons.\n", d);
             return -EPERM;
         }
         printk(XENLOG_G_WARNING
-               "Dom%d may compromise security on this CPU.\n",
-               d->domain_id);
+               "%pd: domain may compromise security on this CPU.\n", d);
     }
=20
     emflags =3D config->arch.emulation_flags;
@@ -807,16 +806,19 @@ int arch_domain_create(struct domain *d,
=20
     if ( emflags & ~XEN_X86_EMU_ALL )
     {
-        printk(XENLOG_G_ERR "d%d: Invalid emulation bitmap: %#x\n",
-               d->domain_id, emflags);
+        printk(XENLOG_G_ERR "%pd: Invalid emulation bitmap: %#x\n",
+               d, emflags);
         return -EINVAL;
     }
=20
     if ( !emulation_flags_ok(d, emflags) )
     {
-        printk(XENLOG_G_ERR "d%d: Xen does not allow %s domain creation "
+        printk(XENLOG_G_ERR "%pd: 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,
+               is_hvm_domain(d) ? "HVM" : "PV",
+               is_hardware_domain(d) ? "hardware " : "",
+               emflags);
         return -EOPNOTSUPP;
     }
     d->arch.emulation_flags =3D emflags;
--=20
2.34.1




From xen-devel-bounces@lists.xenproject.org Tue Apr 01 22:21:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 22:21:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.934828.1336405 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzjzA-0008Gf-7u; Tue, 01 Apr 2025 22:21:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 934828.1336405; Tue, 01 Apr 2025 22: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 1tzjzA-0008GW-4v; Tue, 01 Apr 2025 22:21:32 +0000
Received: by outflank-mailman (input) for mailman id 934828;
 Tue, 01 Apr 2025 22:21: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=Dnoa=WT=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1tzjz8-00080l-WE
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 22:21:31 +0000
Received: from mail-24417.protonmail.ch (mail-24417.protonmail.ch
 [109.224.244.17]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a8fbe079-0f47-11f0-9ea7-5ba50f476ded;
 Wed, 02 Apr 2025 00:21:30 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a8fbe079-0f47-11f0-9ea7-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1743546089; x=1743805289;
	bh=jgn0pg/G4Jnk8NK6PjgRLwbiLA6Q/DQnSJBc+iI7+6w=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=Kj4GfBplEZBgaOzQLjYljiB8dTx12lkeNHPHrWY80W8Z3UwfIBKUlxwnVd6+cFEla
	 76eLuoZRr+NXhjxs9P01u4N+unraBRSmalODrnPb4syAebK/IYCv36ujLmaN5DwV2k
	 zjhvn2qLL1siRIXmq9o+ez9wcgeX0KxDLK0cA9ZnG+gnmX/SfKcBkw6DXZyRjPbm3E
	 6VGJ2eL0P2XZTtxIuiDWtjsrFNe/zVPgCoPBVgAHShYz1kgsyeCVV1PkMDSffdj6cm
	 d72f3KMDfh97t0RY4fB+s8biiKSdl48VaFvFF/JPLMyu/HGRAsqrGv+Vqq0xnVIsBi
	 /Fm2BQVGb2pOg==
Date: Tue, 01 Apr 2025 22:21:26 +0000
To: xen-devel@lists.xenproject.org
From: dmkhn@proton.me
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org, dmukhin@ford.com
Subject: [PATCH v1 2/5] x86/vmx: remove HAVE_AS_EPT
Message-ID: <20250401222105.79309-3-dmukhin@ford.com>
In-Reply-To: <20250401222105.79309-1-dmukhin@ford.com>
References: <20250401222105.79309-1-dmukhin@ford.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 3d61b9bcd8c35dfb3a62007efbaea7de840bbdce
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

From: Denis Mukhin <dmukhin@ford.com>

Remove the workaround under HAVE_AS_EPT for older compilers, as
the minimally required GCC 5.1 / Binutils 2.25, and Clang 11
natively support the VMX instructions used in the hypervisor code.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
 xen/arch/x86/arch.mk                   |  1 -
 xen/arch/x86/include/asm/hvm/vmx/vmx.h | 16 ----------------
 2 files changed, 17 deletions(-)

diff --git a/xen/arch/x86/arch.mk b/xen/arch/x86/arch.mk
index 6e23d3c27c..42c3aa73da 100644
--- a/xen/arch/x86/arch.mk
+++ b/xen/arch/x86/arch.mk
@@ -11,7 +11,6 @@ CFLAGS +=3D -msoft-float
 $(call cc-options-add,CFLAGS,CC,$(EMBEDDED_EXTRA_CFLAGS))
 $(call cc-option-add,CFLAGS,CC,-Wnested-externs)
 $(call as-option-add,CFLAGS,CC,"crc32 %eax$(comma)%eax",-DHAVE_AS_SSE4_2)
-$(call as-option-add,CFLAGS,CC,"invept (%rax)$(comma)%rax",-DHAVE_AS_EPT)
 $(call as-option-add,CFLAGS,CC,"rdrand %eax",-DHAVE_AS_RDRAND)
 $(call as-option-add,CFLAGS,CC,"rdfsbase %rax",-DHAVE_AS_FSGSBASE)
 $(call as-option-add,CFLAGS,CC,"xsaveopt (%rax)",-DHAVE_AS_XSAVEOPT)
diff --git a/xen/arch/x86/include/asm/hvm/vmx/vmx.h b/xen/arch/x86/include/=
asm/hvm/vmx/vmx.h
index cfa04aa5a4..ce3c067a88 100644
--- a/xen/arch/x86/include/asm/hvm/vmx/vmx.h
+++ b/xen/arch/x86/include/asm/hvm/vmx/vmx.h
@@ -429,21 +429,13 @@ static always_inline void __invept(unsigned long type=
, uint64_t eptp)
         type =3D INVEPT_ALL_CONTEXT;
=20
     asm volatile (
-#ifdef HAVE_AS_EPT
                    "invept %0, %1\n"
-#else
-                   INVEPT_OPCODE MODRM_EAX_08
-#endif
                    /* CF=3D=3D1 or ZF=3D=3D1 --> BUG() */
                    UNLIKELY_START(be, invept)
                    _ASM_BUGFRAME_TEXT(0)
                    UNLIKELY_END_SECTION
                    :
-#ifdef HAVE_AS_EPT
                    : "m" (operand), "r" (type),
-#else
-                   : "a" (&operand), "c" (type),
-#endif
                      _ASM_BUGFRAME_INFO(BUGFRAME_bug, __LINE__, __FILE__, =
0)
                    : "memory" );
 }
@@ -458,11 +450,7 @@ static always_inline void __invvpid(unsigned long type=
, u16 vpid, u64 gva)
=20
     /* Fix up #UD exceptions which occur when TLBs are flushed before VMXO=
N. */
     asm volatile ( "1: "
-#ifdef HAVE_AS_EPT
                    "invvpid %0, %1\n"
-#else
-                   INVVPID_OPCODE MODRM_EAX_08
-#endif
                    /* CF=3D=3D1 or ZF=3D=3D1 --> BUG() */
                    UNLIKELY_START(be, invvpid)
                    _ASM_BUGFRAME_TEXT(0)
@@ -470,11 +458,7 @@ static always_inline void __invvpid(unsigned long type=
, u16 vpid, u64 gva)
                    "2:"
                    _ASM_EXTABLE(1b, 2b)
                    :
-#ifdef HAVE_AS_EPT
                    : "m" (operand), "r" (type),
-#else
-                   : "a" (&operand), "c" (type),
-#endif
                      _ASM_BUGFRAME_INFO(BUGFRAME_bug, __LINE__, __FILE__, =
0)
                    : "memory" );
 }
--=20
2.34.1




From xen-devel-bounces@lists.xenproject.org Tue Apr 01 22:21:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 22:21:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.934829.1336415 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzjzB-0008V8-Gh; Tue, 01 Apr 2025 22:21:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 934829.1336415; Tue, 01 Apr 2025 22:21: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 1tzjzB-0008V1-CC; Tue, 01 Apr 2025 22:21:33 +0000
Received: by outflank-mailman (input) for mailman id 934829;
 Tue, 01 Apr 2025 22: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=Dnoa=WT=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1tzjz9-0008FS-QA
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 22:21:31 +0000
Received: from mail-10631.protonmail.ch (mail-10631.protonmail.ch
 [79.135.106.31]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a796039a-0f47-11f0-9ffb-bf95429c2676;
 Wed, 02 Apr 2025 00:21:27 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a796039a-0f47-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1743546086; x=1743805286;
	bh=wGLFy3lg3JRviggNqBY/N5aBkD4idjuoatHTIpS+RQo=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=GDXBPipNoQ3DJ0l0y+eatHGuY1CMsFINkj5MTVjVbbNM5sSrJgtQqPgsdLqtV/CF/
	 PCbqHgRjsudI7ldhGc3VeqtmZgaO82sTWDOFgPY6wRA8WicgeQ+SyHLMujFijYVacp
	 CFI+1ONO3PjnExVAvcCPxswgvGzCWqX7rYKNfuPEPvLNA9RocpJp3a9EJm82+uJNxC
	 JC3GK2qADIwmJ3Ef9/jY2paE002sEmtJCz96q0gE5jyK5HFQTFSnDVngYhYF7laTD1
	 8BfnwYZlUDlVEU9Ma8u7CtAwh/QbG3Oe9FNGINPXyHmW1P6AVC26orGQZT4PVQcs06
	 Mrge/8C5uzxYw==
Date: Tue, 01 Apr 2025 22:21:18 +0000
To: xen-devel@lists.xenproject.org
From: dmkhn@proton.me
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org, dmukhin@ford.com
Subject: [PATCH v1 1/5] x86/vmx: remove HAVE_AS_VMX
Message-ID: <20250401222105.79309-2-dmukhin@ford.com>
In-Reply-To: <20250401222105.79309-1-dmukhin@ford.com>
References: <20250401222105.79309-1-dmukhin@ford.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 26fd564dcd77ad467d9ca23f9d6e27142ff338c9
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

From: Denis Mukhin <dmukhin@ford.com>

Remove the workaround under HAVE_AS_VMX for older compilers, as
the minimally required GCC 5.1 / Binutils 2.25, and Clang 11
natively support the VMX instructions used in the hypervisor code.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
 xen/arch/x86/arch.mk                   |  3 +--
 xen/arch/x86/include/asm/hvm/vmx/vmx.h | 37 --------------------------
 2 files changed, 1 insertion(+), 39 deletions(-)

diff --git a/xen/arch/x86/arch.mk b/xen/arch/x86/arch.mk
index cb47d72991..6e23d3c27c 100644
--- a/xen/arch/x86/arch.mk
+++ b/xen/arch/x86/arch.mk
@@ -10,7 +10,6 @@ CFLAGS +=3D -msoft-float
=20
 $(call cc-options-add,CFLAGS,CC,$(EMBEDDED_EXTRA_CFLAGS))
 $(call cc-option-add,CFLAGS,CC,-Wnested-externs)
-$(call as-option-add,CFLAGS,CC,"vmcall",-DHAVE_AS_VMX)
 $(call as-option-add,CFLAGS,CC,"crc32 %eax$(comma)%eax",-DHAVE_AS_SSE4_2)
 $(call as-option-add,CFLAGS,CC,"invept (%rax)$(comma)%rax",-DHAVE_AS_EPT)
 $(call as-option-add,CFLAGS,CC,"rdrand %eax",-DHAVE_AS_RDRAND)
@@ -24,7 +23,7 @@ $(call as-option-add,CFLAGS,CC,"invpcid (%rax)$(comma)%ra=
x",-DHAVE_AS_INVPCID)
 $(call as-option-add,CFLAGS,CC,"movdiri %rax$(comma)(%rax)",-DHAVE_AS_MOVD=
IR)
 $(call as-option-add,CFLAGS,CC,"enqcmd (%rax)$(comma)%rax",-DHAVE_AS_ENQCM=
D)
=20
-# Check to see whether the assmbler supports the .nop directive.
+# Check to see whether the assembler supports the .nop directive.
 $(call as-option-add,CFLAGS,CC,\
     ".L1: .L2: .nops (.L2 - .L1)$(comma)9",-DHAVE_AS_NOPS_DIRECTIVE)
=20
diff --git a/xen/arch/x86/include/asm/hvm/vmx/vmx.h b/xen/arch/x86/include/=
asm/hvm/vmx/vmx.h
index 843f8591b9..cfa04aa5a4 100644
--- a/xen/arch/x86/include/asm/hvm/vmx/vmx.h
+++ b/xen/arch/x86/include/asm/hvm/vmx/vmx.h
@@ -310,30 +310,18 @@ extern uint8_t posted_intr_vector;
 #define INVVPID_ALL_CONTEXT                     2
 #define INVVPID_SINGLE_CONTEXT_RETAINING_GLOBAL 3
=20
-#ifdef HAVE_AS_VMX
 # define GAS_VMX_OP(yes, no) yes
-#else
-# define GAS_VMX_OP(yes, no) no
-#endif
=20
 static always_inline void __vmptrld(u64 addr)
 {
     asm volatile (
-#ifdef HAVE_AS_VMX
                    "vmptrld %0\n"
-#else
-                   VMPTRLD_OPCODE MODRM_EAX_06
-#endif
                    /* CF=3D=3D1 or ZF=3D=3D1 --> BUG() */
                    UNLIKELY_START(be, vmptrld)
                    _ASM_BUGFRAME_TEXT(0)
                    UNLIKELY_END_SECTION
                    :
-#ifdef HAVE_AS_VMX
                    : "m" (addr),
-#else
-                   : "a" (&addr),
-#endif
                      _ASM_BUGFRAME_INFO(BUGFRAME_bug, __LINE__, __FILE__, =
0)
                    : "memory");
 }
@@ -341,21 +329,13 @@ static always_inline void __vmptrld(u64 addr)
 static always_inline void __vmpclear(u64 addr)
 {
     asm volatile (
-#ifdef HAVE_AS_VMX
                    "vmclear %0\n"
-#else
-                   VMCLEAR_OPCODE MODRM_EAX_06
-#endif
                    /* CF=3D=3D1 or ZF=3D=3D1 --> BUG() */
                    UNLIKELY_START(be, vmclear)
                    _ASM_BUGFRAME_TEXT(0)
                    UNLIKELY_END_SECTION
                    :
-#ifdef HAVE_AS_VMX
                    : "m" (addr),
-#else
-                   : "a" (&addr),
-#endif
                      _ASM_BUGFRAME_INFO(BUGFRAME_bug, __LINE__, __FILE__, =
0)
                    : "memory");
 }
@@ -363,22 +343,13 @@ static always_inline void __vmpclear(u64 addr)
 static always_inline void __vmread(unsigned long field, unsigned long *val=
ue)
 {
     asm volatile (
-#ifdef HAVE_AS_VMX
                    "vmread %1, %0\n\t"
-#else
-                   VMREAD_OPCODE MODRM_EAX_ECX
-#endif
                    /* CF=3D=3D1 or ZF=3D=3D1 --> BUG() */
                    UNLIKELY_START(be, vmread)
                    _ASM_BUGFRAME_TEXT(0)
                    UNLIKELY_END_SECTION
-#ifdef HAVE_AS_VMX
                    : "=3Drm" (*value)
                    : "r" (field),
-#else
-                   : "=3Dc" (*value)
-                   : "a" (field),
-#endif
                      _ASM_BUGFRAME_INFO(BUGFRAME_bug, __LINE__, __FILE__, =
0)
         );
 }
@@ -386,21 +357,13 @@ static always_inline void __vmread(unsigned long fiel=
d, unsigned long *value)
 static always_inline void __vmwrite(unsigned long field, unsigned long val=
ue)
 {
     asm volatile (
-#ifdef HAVE_AS_VMX
                    "vmwrite %1, %0\n"
-#else
-                   VMWRITE_OPCODE MODRM_EAX_ECX
-#endif
                    /* CF=3D=3D1 or ZF=3D=3D1 --> BUG() */
                    UNLIKELY_START(be, vmwrite)
                    _ASM_BUGFRAME_TEXT(0)
                    UNLIKELY_END_SECTION
                    :
-#ifdef HAVE_AS_VMX
                    : "r" (field) , "rm" (value),
-#else
-                   : "a" (field) , "c" (value),
-#endif
                      _ASM_BUGFRAME_INFO(BUGFRAME_bug, __LINE__, __FILE__, =
0)
         );
 }
--=20
2.34.1




From xen-devel-bounces@lists.xenproject.org Tue Apr 01 22:21:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 22:21:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.934827.1336394 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzjz2-00081J-0r; Tue, 01 Apr 2025 22:21:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 934827.1336394; Tue, 01 Apr 2025 22: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 1tzjz1-00081C-UH; Tue, 01 Apr 2025 22:21:23 +0000
Received: by outflank-mailman (input) for mailman id 934827;
 Tue, 01 Apr 2025 22:21: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=Dnoa=WT=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1tzjz0-00080l-1U
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 22:21:22 +0000
Received: from mail-4316.protonmail.ch (mail-4316.protonmail.ch [185.70.43.16])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a1f84a50-0f47-11f0-9ea7-5ba50f476ded;
 Wed, 02 Apr 2025 00:21:18 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a1f84a50-0f47-11f0-9ea7-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1743546077; x=1743805277;
	bh=Lhn4iGVYb8AgrXKdQUot5TI32r7opNEUpEbCe5WqAfo=;
	h=Date:To:From:Cc:Subject:Message-ID:Feedback-ID:From:To:Cc:Date:
	 Subject:Reply-To:Feedback-ID:Message-ID:BIMI-Selector:
	 List-Unsubscribe:List-Unsubscribe-Post;
	b=KLlrjlAfgFKTaG3xdTWg6/QGG9hq2qJzpV85jTwVght4CZGF3l6qlYYiv7/ilqWtu
	 LRsrLjSygljWBE39ix5edHn+q/y1GH1/I8eyYVEZf1rp/EmesGghc+fi6O4rgGm+Nn
	 WMjl0fDS4TbUY3lQGS7iNZkIumZ0UR06FFDsHQszEP4qBF4HYQxvXFUb5BWxuiJGno
	 kwKv82guKrDI8zNwgiLSKLKEjvxcDXvGG0ljshbFYD0As4GQ6BF9jaPvOlxue+I92b
	 0qub0aHN2svngXUt2KKtM/O3QrH13Wnn9lTZ1VP8Rk01eeozBc+FUFdGNWzBQomeNj
	 Z+Fg8QRZz+bFg==
Date: Tue, 01 Apr 2025 22:21:12 +0000
To: xen-devel@lists.xenproject.org
From: dmkhn@proton.me
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org, dmukhin@ford.com
Subject: [PATCH v1 0/5] x86/asm: cleanups after toolchain baseline upgrade
Message-ID: <20250401222105.79309-1-dmukhin@ford.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: b874dd11891ee74d839c329dc52cf9654f21a126
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Patches 1-4 remove various compiler workarounds in the hypervisor code
for Intel's VMX instructions.

Patch 5 removes compiler workaround for missing clac/stac instructions.

CI: https://gitlab.com/xen-project/people/dmukhin/xen/-/pipelines/174739487=
5

Denis Mukhin (5):
  x86/vmx: remove HAVE_AS_VMX
  x86/vmx: remove HAVE_AS_EPT
  x86/vmx: remove GAS_VMX_OP()
  x86/vmx: remove *_OPCODE
  x86/asm: remove HAVE_AS_CLAC_STAC

 xen/arch/x86/arch.mk                   |   5 +-
 xen/arch/x86/include/asm/asm-defns.h   |  10 ---
 xen/arch/x86/include/asm/hvm/vmx/vmx.h | 103 ++++---------------------
 3 files changed, 15 insertions(+), 103 deletions(-)

--=20
2.34.1




From xen-devel-bounces@lists.xenproject.org Tue Apr 01 22:21:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 22:21:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.934830.1336425 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzjzF-0000Mf-PW; Tue, 01 Apr 2025 22:21:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 934830.1336425; Tue, 01 Apr 2025 22: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 1tzjzF-0000MY-Kt; Tue, 01 Apr 2025 22:21:37 +0000
Received: by outflank-mailman (input) for mailman id 934830;
 Tue, 01 Apr 2025 22:21: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=Dnoa=WT=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1tzjzE-00080l-W8
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 22:21:37 +0000
Received: from mail-4322.protonmail.ch (mail-4322.protonmail.ch [185.70.43.22])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id aca3420c-0f47-11f0-9ea7-5ba50f476ded;
 Wed, 02 Apr 2025 00:21:36 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: aca3420c-0f47-11f0-9ea7-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1743546095; x=1743805295;
	bh=N/Gegk4Sj66N/FlyNAXDC53HkooQoIGeUm3rbRAPDd0=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=TWrWiogpGw6G6z4iMaY3LJEJ4HO+DMLO0IVvcadrquh764VMRSj3LiI3UkiBRRSbS
	 7i2+DlfLprIP4770aaDvkLEnBVmJacbyQA1fEtxoEZUsUpUPW1QVPTIWxKnPSYKhZs
	 gFkWs/EdrAPxRqs0nFxc/GGsnLzyL8G7heLmL9JWaHPcYsNpmn35fueoNqt95BQNcC
	 gT2vkPUCKHeuMGdtO7N3KliEovOZm+OxaQJFq9Kb168EjFu2mPOMOOJPYWPtu6YTU5
	 nNrxZdPm1nTdyx4UJ8SGyIZexauF5lSFlXUhfNVEZBlSj2QOxD4K8De+eQu7lA9X21
	 6N3j5+4rQ+eUA==
Date: Tue, 01 Apr 2025 22:21:29 +0000
To: xen-devel@lists.xenproject.org
From: dmkhn@proton.me
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org, dmukhin@ford.com
Subject: [PATCH v1 3/5] x86/vmx: remove GAS_VMX_OP()
Message-ID: <20250401222105.79309-4-dmukhin@ford.com>
In-Reply-To: <20250401222105.79309-1-dmukhin@ford.com>
References: <20250401222105.79309-1-dmukhin@ford.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 93b235a7f48c66273ddf9670081b1e765a1b9a5e
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

From: Denis Mukhin <dmukhin@ford.com>

Remove unneeded GAS_VMX_OP() macro, now that all used VMX instuctions
are natively supported by the baseline compiler.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
 xen/arch/x86/include/asm/hvm/vmx/vmx.h | 16 ++++++----------
 1 file changed, 6 insertions(+), 10 deletions(-)

diff --git a/xen/arch/x86/include/asm/hvm/vmx/vmx.h b/xen/arch/x86/include/=
asm/hvm/vmx/vmx.h
index ce3c067a88..10c0619108 100644
--- a/xen/arch/x86/include/asm/hvm/vmx/vmx.h
+++ b/xen/arch/x86/include/asm/hvm/vmx/vmx.h
@@ -310,8 +310,6 @@ extern uint8_t posted_intr_vector;
 #define INVVPID_ALL_CONTEXT                     2
 #define INVVPID_SINGLE_CONTEXT_RETAINING_GLOBAL 3
=20
-# define GAS_VMX_OP(yes, no) yes
-
 static always_inline void __vmptrld(u64 addr)
 {
     asm volatile (
@@ -374,14 +372,13 @@ static inline enum vmx_insn_errno vmread_safe(unsigne=
d long field,
     unsigned long ret =3D VMX_INSN_SUCCEED;
     bool fail_invalid, fail_valid;
=20
-    asm volatile ( GAS_VMX_OP("vmread %[field], %[value]\n\t",
-                              VMREAD_OPCODE MODRM_EAX_ECX)
+    asm volatile ( "vmread %[field], %[value]\n\t"
                    ASM_FLAG_OUT(, "setc %[invalid]\n\t")
                    ASM_FLAG_OUT(, "setz %[valid]\n\t")
                    : ASM_FLAG_OUT("=3D@ccc", [invalid] "=3Drm") (fail_inva=
lid),
                      ASM_FLAG_OUT("=3D@ccz", [valid] "=3Drm") (fail_valid)=
,
-                     [value] GAS_VMX_OP("=3Drm", "=3Dc") (*value)
-                   : [field] GAS_VMX_OP("r", "a") (field));
+                     [value] "=3Drm" (*value)
+                   : [field] "r" (field));
=20
     if ( unlikely(fail_invalid) )
         ret =3D VMX_INSN_FAIL_INVALID;
@@ -397,14 +394,13 @@ static inline enum vmx_insn_errno vmwrite_safe(unsign=
ed long field,
     unsigned long ret =3D VMX_INSN_SUCCEED;
     bool fail_invalid, fail_valid;
=20
-    asm volatile ( GAS_VMX_OP("vmwrite %[value], %[field]\n\t",
-                              VMWRITE_OPCODE MODRM_EAX_ECX)
+    asm volatile ( "vmwrite %[value], %[field]\n\t"
                    ASM_FLAG_OUT(, "setc %[invalid]\n\t")
                    ASM_FLAG_OUT(, "setz %[valid]\n\t")
                    : ASM_FLAG_OUT("=3D@ccc", [invalid] "=3Drm") (fail_inva=
lid),
                      ASM_FLAG_OUT("=3D@ccz", [valid] "=3Drm") (fail_valid)
-                   : [field] GAS_VMX_OP("r", "a") (field),
-                     [value] GAS_VMX_OP("rm", "c") (value));
+                   : [field] "r" (field),
+                     [value] "rm" (value));
=20
     if ( unlikely(fail_invalid) )
         ret =3D VMX_INSN_FAIL_INVALID;
--=20
2.34.1




From xen-devel-bounces@lists.xenproject.org Tue Apr 01 22:21:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 22:21:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.934832.1336435 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzjzL-0000kA-0e; Tue, 01 Apr 2025 22:21:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 934832.1336435; Tue, 01 Apr 2025 22:21:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzjzK-0000k1-TX; Tue, 01 Apr 2025 22:21:42 +0000
Received: by outflank-mailman (input) for mailman id 934832;
 Tue, 01 Apr 2025 22:21:42 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Dnoa=WT=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1tzjzK-0008FS-10
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 22:21:42 +0000
Received: from mail-10631.protonmail.ch (mail-10631.protonmail.ch
 [79.135.106.31]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id af2da4f7-0f47-11f0-9ffb-bf95429c2676;
 Wed, 02 Apr 2025 00:21:40 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: af2da4f7-0f47-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1743546099; x=1743805299;
	bh=ACi96G57+RpQp/2aY30Q6dbZ1Kg2jsTyScAUQdNS6S8=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=UNRyWTskDvaSWQUDN6iEwtcQEWqV1uQrQMEJTfC+oaLCO/0CJtOLhD1G6XV0R2pZ+
	 ribt3Q2B5B/6s2eQ0QVZfP8zgB0/FdSrNNE9SaUVodbdOeeHsPXLNLHD5NWsAgvtBD
	 4EEXyUhOgDfuquVs1g4G/4k/Nvm2Jt7doATALJ74GIn0evs/34H2cL7awHbPZNaxrg
	 E0exOpP55rLABvY5z8v7w5veaFzB6z8kXJrQtTvCeOCF0DlTtlhgPbZAdb/GUDwOtW
	 V148eXSvwm7yw9QEQeFmHlo6bDicUusIq/65OHOe3Y3wQ/yHWdhPu0qVFqhSo3usya
	 role6lyRYHCEg==
Date: Tue, 01 Apr 2025 22:21:34 +0000
To: xen-devel@lists.xenproject.org
From: dmkhn@proton.me
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org, dmukhin@ford.com
Subject: [PATCH v1 4/5] x86/vmx: remove *_OPCODE
Message-ID: <20250401222105.79309-5-dmukhin@ford.com>
In-Reply-To: <20250401222105.79309-1-dmukhin@ford.com>
References: <20250401222105.79309-1-dmukhin@ford.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: a105727e2157e3c7085f480a753c9f41cb30c15e
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

From: Denis Mukhin <dmukhin@ford.com>

Remove all *_OPCODE definitions from vmx.h now that all used
VMX instructions are natively supported by the baseline compiler.

Use vmxon and vmxoff instructions directly.
Update __vmxon() to account for vmxon use.

Resolves: https://gitlab.com/xen-project/xen/-/work_items/202
Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
 xen/arch/x86/include/asm/hvm/vmx/vmx.h | 34 ++++++--------------------
 1 file changed, 8 insertions(+), 26 deletions(-)

diff --git a/xen/arch/x86/include/asm/hvm/vmx/vmx.h b/xen/arch/x86/include/=
asm/hvm/vmx/vmx.h
index 10c0619108..1d63e49288 100644
--- a/xen/arch/x86/include/asm/hvm/vmx/vmx.h
+++ b/xen/arch/x86/include/asm/hvm/vmx/vmx.h
@@ -257,24 +257,6 @@ typedef union cr_access_qual {
 #define X86_SEG_AR_GRANULARITY  (1u << 15) /* 15, granularity */
 #define X86_SEG_AR_SEG_UNUSABLE (1u << 16) /* 16, segment unusable */
=20
-#define VMCALL_OPCODE   ".byte 0x0f,0x01,0xc1\n"
-#define VMCLEAR_OPCODE  ".byte 0x66,0x0f,0xc7\n"        /* reg/opcode: /6 =
*/
-#define VMLAUNCH_OPCODE ".byte 0x0f,0x01,0xc2\n"
-#define VMPTRLD_OPCODE  ".byte 0x0f,0xc7\n"             /* reg/opcode: /6 =
*/
-#define VMPTRST_OPCODE  ".byte 0x0f,0xc7\n"             /* reg/opcode: /7 =
*/
-#define VMREAD_OPCODE   ".byte 0x0f,0x78\n"
-#define VMRESUME_OPCODE ".byte 0x0f,0x01,0xc3\n"
-#define VMWRITE_OPCODE  ".byte 0x0f,0x79\n"
-#define INVEPT_OPCODE   ".byte 0x66,0x0f,0x38,0x80\n"   /* m128,r64/32 */
-#define INVVPID_OPCODE  ".byte 0x66,0x0f,0x38,0x81\n"   /* m128,r64/32 */
-#define VMXOFF_OPCODE   ".byte 0x0f,0x01,0xc4\n"
-#define VMXON_OPCODE    ".byte 0xf3,0x0f,0xc7\n"
-
-#define MODRM_EAX_08    ".byte 0x08\n" /* ECX, [EAX] */
-#define MODRM_EAX_06    ".byte 0x30\n" /* [EAX], with reg/opcode: /6 */
-#define MODRM_EAX_07    ".byte 0x38\n" /* [EAX], with reg/opcode: /7 */
-#define MODRM_EAX_ECX   ".byte 0xc1\n" /* EAX, ECX */
-
 extern uint8_t posted_intr_vector;
=20
 #define cpu_has_vmx_ept_exec_only_supported        \
@@ -497,9 +479,7 @@ static inline void vpid_sync_all(void)
=20
 static inline void __vmxoff(void)
 {
-    asm volatile (
-        VMXOFF_OPCODE
-        : : : "memory" );
+    asm volatile ("vmxoff" : : : "memory");
 }
=20
 static inline int __vmxon(u64 addr)
@@ -507,15 +487,17 @@ static inline int __vmxon(u64 addr)
     int rc;
=20
     asm volatile (=20
-        "1: " VMXON_OPCODE MODRM_EAX_06 "\n"
-        "   setna %b0 ; neg %0\n" /* CF=3D=3D1 or ZF=3D=3D1 --> rc =3D -1 =
*/
+        "1: vmxon (%[addr])\n"
+        "   setna %b[rc]\n"
+        "   neg %[rc]\n"          /* CF=3D=3D1 or ZF=3D=3D1 --> rc =3D -1 =
*/
         "2:\n"
         ".section .fixup,\"ax\"\n"
-        "3: sub $2,%0 ; jmp 2b\n"    /* #UD or #GP --> rc =3D -2 */
+        "3: mov $-2, %[rc]\n"
+        "   jmp 2b\n"             /* #UD   or #GP   --> rc =3D -2 */
         ".previous\n"
         _ASM_EXTABLE(1b, 3b)
-        : "=3Dq" (rc)
-        : "0" (0), "a" (&addr)
+        : [rc] "=3Dq" (rc)
+        : "0" (0), [addr] "r" (&addr)
         : "memory");
=20
     return rc;
--=20
2.34.1




From xen-devel-bounces@lists.xenproject.org Tue Apr 01 22:21:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 22:21:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.934837.1336444 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzjzN-00015B-DX; Tue, 01 Apr 2025 22:21:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 934837.1336444; Tue, 01 Apr 2025 22:21: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 1tzjzN-00014a-8f; Tue, 01 Apr 2025 22:21:45 +0000
Received: by outflank-mailman (input) for mailman id 934837;
 Tue, 01 Apr 2025 22:21: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=Dnoa=WT=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1tzjzL-00080l-Uw
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 22:21:43 +0000
Received: from mail-24418.protonmail.ch (mail-24418.protonmail.ch
 [109.224.244.18]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id afce6837-0f47-11f0-9ea7-5ba50f476ded;
 Wed, 02 Apr 2025 00:21:41 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: afce6837-0f47-11f0-9ea7-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1743546101; x=1743805301;
	bh=EqD5rWQIMtrh3DD6wy+ihv9SumDjFLVceAqq134Fgcw=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=OFCp6JWZLsruZQqZYzQG685sVK8Y1W7vbv5HWkQsvdRcj7HcPKBBSMAG+UB/Rq6cp
	 lOhJ3QFex6rxWc7XrLMb5QhzEYJ7eoHFb0LHngGZ3jHs9t14Bxts91jqF06x0TpRBz
	 408E2pilYM55IJ4yLItxCO+1k+FTihNQPRF2zkUcVgxfMBVgRH7yWzvIXfCtXL8d15
	 OMOljfHZYtkMN0dGDg1NI7RbjZ+K+991HEiuop6ivv0ijks5HVGEziNESEm4bNz6/K
	 avfKtSlZSZEl/DLa5tH6PS8vmFbBwwD6AfHN779PsEuLiLl1PaeazkKInUu2H0IVVZ
	 NrD0S8xywK4pA==
Date: Tue, 01 Apr 2025 22:21:38 +0000
To: xen-devel@lists.xenproject.org
From: dmkhn@proton.me
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org, dmukhin@ford.com
Subject: [PATCH v1 5/5] x86/asm: remove HAVE_AS_CLAC_STAC
Message-ID: <20250401222105.79309-6-dmukhin@ford.com>
In-Reply-To: <20250401222105.79309-1-dmukhin@ford.com>
References: <20250401222105.79309-1-dmukhin@ford.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 607f19b039f6ff96dca31464c000dad0932e593e
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

From: Denis Mukhin <dmukhin@ford.com>

The new toolchain baseline knows the STAC/CLAC instructions,
no need to carry the workaround in the code.

Resolves: https://gitlab.com/xen-project/xen/-/work_items/203
Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
 xen/arch/x86/arch.mk                 |  1 -
 xen/arch/x86/include/asm/asm-defns.h | 10 ----------
 2 files changed, 11 deletions(-)

diff --git a/xen/arch/x86/arch.mk b/xen/arch/x86/arch.mk
index 42c3aa73da..e9fa1c92d7 100644
--- a/xen/arch/x86/arch.mk
+++ b/xen/arch/x86/arch.mk
@@ -15,7 +15,6 @@ $(call as-option-add,CFLAGS,CC,"rdrand %eax",-DHAVE_AS_RD=
RAND)
 $(call as-option-add,CFLAGS,CC,"rdfsbase %rax",-DHAVE_AS_FSGSBASE)
 $(call as-option-add,CFLAGS,CC,"xsaveopt (%rax)",-DHAVE_AS_XSAVEOPT)
 $(call as-option-add,CFLAGS,CC,"rdseed %eax",-DHAVE_AS_RDSEED)
-$(call as-option-add,CFLAGS,CC,"clac",-DHAVE_AS_CLAC_STAC)
 $(call as-option-add,CFLAGS,CC,"clwb (%rax)",-DHAVE_AS_CLWB)
 $(call as-option-add,CFLAGS,CC,".equ \"x\"$(comma)1",-DHAVE_AS_QUOTED_SYM)
 $(call as-option-add,CFLAGS,CC,"invpcid (%rax)$(comma)%rax",-DHAVE_AS_INVP=
CID)
diff --git a/xen/arch/x86/include/asm/asm-defns.h b/xen/arch/x86/include/as=
m/asm-defns.h
index 32d6b44910..ab653f3218 100644
--- a/xen/arch/x86/include/asm/asm-defns.h
+++ b/xen/arch/x86/include/asm/asm-defns.h
@@ -1,15 +1,5 @@
 #include <asm/page-bits.h>
=20
-#ifndef HAVE_AS_CLAC_STAC
-.macro clac
-    .byte 0x0f, 0x01, 0xca
-.endm
-
-.macro stac
-    .byte 0x0f, 0x01, 0xcb
-.endm
-#endif
-
 .macro vmrun
     .byte 0x0f, 0x01, 0xd8
 .endm
--=20
2.34.1




From xen-devel-bounces@lists.xenproject.org Tue Apr 01 22:28:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 22:28:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.934866.1336455 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzk6G-0002r6-23; Tue, 01 Apr 2025 22:28:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 934866.1336455; Tue, 01 Apr 2025 22:28:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzk6F-0002qz-VV; Tue, 01 Apr 2025 22:28:51 +0000
Received: by outflank-mailman (input) for mailman id 934866;
 Tue, 01 Apr 2025 22: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=KZod=WT=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tzk6E-0002qt-4A
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 22:28:50 +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 adca464e-0f48-11f0-9ffb-bf95429c2676;
 Wed, 02 Apr 2025 00:28:47 +0200 (CEST)
Received: by mail-wr1-x42f.google.com with SMTP id
 ffacd0b85a97d-39149bccb69so5360014f8f.2
 for <xen-devel@lists.xenproject.org>; Tue, 01 Apr 2025 15:28:47 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39c0b60a9ddsm15454590f8f.0.2025.04.01.15.28.45
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 01 Apr 2025 15:28: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: adca464e-0f48-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1743546527; x=1744151327; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=2Gmb1F6DHF04vcoQt+CZ0+WF6QKxkKQAgKdgbUSv2vQ=;
        b=jl4uKoK8UcbxLmlw4NAq1j194sXCzVMvnYtIF7+/hvp/t1BZzlp2veNtfi+KHYZO8d
         odrnc1wGiwGAJ8UMWaJxCh08aFRzSO6ljft8w9cYgFrPDhaVHQphQgdy1z+pBPr+O1Rf
         hGtlAE71e5mQ4J4NP36D709rhuIiAWODQAG6E=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743546527; x=1744151327;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=2Gmb1F6DHF04vcoQt+CZ0+WF6QKxkKQAgKdgbUSv2vQ=;
        b=C1iPfpE3U9LyU0m/aEVf1pxI2RdmnZ07fpSB/soASwE96pWYkCNKpsmxct4yANBNOi
         m+eqPa5HBbfnlmMrzXiw65S4PNQf6qLfgaLVg341HL96gc7Q2SmCIbBCRHuAD+ERDrX2
         vAln9sJhR8RZ5r48Xab43u8TztzicdXSzMOGArrZ24wYbX6+PlFJb3FkhjBaZUdYWiMu
         51OQP9Ly8ENEIqmZ4ZeIy24lqPwF07wDNv++MSwmhbKcJVpCg63uWGPpvgW8acO1lnt4
         bBofqkQWI08xlKC34rZSE2u4aDg+SZUULWJJW7G9awlOkpRh514lnMoGlOuv5ek8iTs/
         kGeA==
X-Forwarded-Encrypted: i=1; AJvYcCVJepjKB0j34ioeoyDzIIW2HnvCFo2wMYTqi4B6Y/Omqn+FtUD2fRmMekAG+3PIiOeCSN7lkOCPYDI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxzcDqnmLGLgHEvgB1iGzbPdfXUXluArNfFl7NOvqMK58HTLuQ7
	gbppeHSHGvjuBz1ZL7gCzbaAPpktZz6nono429LDbsC/A01ZIC20RjJloBquUF4=
X-Gm-Gg: ASbGncuWlAbhNEFdFQJSfvJ7Sr344pEv7yb1gM4dgKnAWgOKnqMMH/SOvMiqhkH/7S5
	QiLUJYO++4X9unF++KeK/M1vFhCI/gKvLY9j7gnpg6I+OXNG2Qc6+vqb0eMZasUqzUjtvq6PQOT
	aybP9J9dLLbtpIqgny7cfyl9W1n25kgO7CeJYZpkqzHLtulXUoGVHT+u2u7lwstiwuy9oBIPLhW
	h6uS4VxJ5mM69AR7KmeuKlF73QjpFL/NhvVGkmRBo1m/jeXEWGtss1F4EqYO5KV+a2fHer7Yk1a
	Ymd02+y87o371r3n+N3LHtmlHFd+K74mrbWPwIweVmvmXxviM/hTIbE8EsBq7DwcfIagvbAzj0c
	HVMq+MtM4dQ==
X-Google-Smtp-Source: AGHT+IGAZIItCNEWZSso9ZOs4K9nL4V8LczqJYRLcdA8ThLy6YVLSIA1WSZgY6rpkr5C/Jl/3kCjrg==
X-Received: by 2002:a05:6000:4203:b0:39c:1f0b:8f6f with SMTP id ffacd0b85a97d-39c297538f4mr156922f8f.24.1743546527194;
        Tue, 01 Apr 2025 15:28:47 -0700 (PDT)
Message-ID: <86249b96-ae02-41c9-9aa9-08958b26b87a@citrix.com>
Date: Tue, 1 Apr 2025 23:28:45 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 5/5] x86/asm: remove HAVE_AS_CLAC_STAC
To: dmkhn@proton.me, xen-devel@lists.xenproject.org
Cc: anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org,
 michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org,
 dmukhin@ford.com
References: <20250401222105.79309-1-dmukhin@ford.com>
 <20250401222105.79309-6-dmukhin@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: <20250401222105.79309-6-dmukhin@ford.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 01/04/2025 11:21 pm, dmkhn@proton.me wrote:
> From: Denis Mukhin <dmukhin@ford.com>
>
> The new toolchain baseline knows the STAC/CLAC instructions,
> no need to carry the workaround in the code.
>
> Resolves: https://gitlab.com/xen-project/xen/-/work_items/203
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>

Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Tue Apr 01 22:47:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 22:47:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.934915.1336465 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzkNx-0007oR-EL; Tue, 01 Apr 2025 22:47:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 934915.1336465; Tue, 01 Apr 2025 22:47: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 1tzkNx-0007oK-Bd; Tue, 01 Apr 2025 22:47:09 +0000
Received: by outflank-mailman (input) for mailman id 934915;
 Tue, 01 Apr 2025 22:47: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=KZod=WT=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tzkNw-0007o8-G6
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 22:47:08 +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 3caf3e3c-0f4b-11f0-9ffb-bf95429c2676;
 Wed, 02 Apr 2025 00:47:06 +0200 (CEST)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-43d0618746bso42455335e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 01 Apr 2025 15:47:06 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43eb5fd138esm2384155e9.13.2025.04.01.15.47.04
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 01 Apr 2025 15:47: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: 3caf3e3c-0f4b-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1743547626; x=1744152426; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=o9pOy7Tik2ts3ocAOTXNdrNb9fTEfKJgg2ghqirIlg8=;
        b=NwOHXT98FHRZb8fA5e6rsmqFj+aUK9bRnvtMiS6HBwmsAs53GzAyW8VKini7d+ppPV
         qOoIq35ykOiOseFwDU17Eq2Avv+bAU72wQtkRHoAvhw1/59ZMWszj6x7yNH8NEmwHC/O
         X3wugD3oU+rBE48GndMNIZgEpH4TW7YvbzDuw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743547626; x=1744152426;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=o9pOy7Tik2ts3ocAOTXNdrNb9fTEfKJgg2ghqirIlg8=;
        b=waqX+bOkvsZRyVZ3LRICZ/sHhGVlqsADgy+neSQq0hzT3ReViogewXjomYJrThdzhl
         2EBdSM4fwP3rk2QRGyXpye3EYXF5zQMd/FAOhhXBrUefByEyPagMr6jbK6s8B6wOmnZ4
         mfvUhOx+HnQ5quWJNKfjuW3eVYKkQMiHLxwEqxCfRhYXCmQoeDvXgR52f9Ca4RUN/K7j
         CeX0L0SSoP5DXhMsFqqVIqPjW+MgZOu0z3MvD+ZzbTnTdmo54+fYt6q8xCG04KfVJ1rw
         smyHjqndbA5MDSguP1J0XeuL+cIJ4KqJULkjWn5B649bQxmvzHsn8kNzJ9EDrpbcfp1a
         JmaQ==
X-Forwarded-Encrypted: i=1; AJvYcCUBnJGQ1IQlio7xO3UeH43yRRmRPfwo3s5JNQZenvF4uQE1ZTpNRuRLwjsWLJkKzEixX7i5muiP0xI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyYtNgc6OyOBWefjqr8kETv3BWVp9++bDP/BkwhWypntTWiC7vA
	GOliYCCEIxIDIHxzeldFSwJpcLmaXrAl24Fjv/LpGqLSeA0LpgQiLyh/0oJ2c9k=
X-Gm-Gg: ASbGnct9MGSp56APlPEfzE6k2QhH7Z4CAq3btuRbGDj8TS0VAztyoo6B/GzAftSHtJn
	bL49uLsICCkbg0xqb+vH/w/DeAdIdByHqi6uk0AYOFErMbyxjUX3Ghl0Pr7xt0hSMnbVPwvCTyS
	KQd/Red5Pk3gZ38L6aW5Jt45yDaGqDstHeQ83G+SFaXdUjKZUPgBf5Ckf0R8bAxXkFY0mkZZMLv
	jqnc9wynIayj+n1bfx1IB0qnLBO8q1zl4whhRCVhbSCjOp7CsZIcnp0Bd0ebnHHveZMUg2FKbj4
	4EFy87ol7l26eIfZBCtqkXWgrU7oYhAb18CfAZZAkjuM867HCpZb34jWbt16kg15CivCYoqThHw
	83hTTKtw3uA==
X-Google-Smtp-Source: AGHT+IFNvFzxv8bvqMERbE2Vz+7mkEecVUYXpfWUX+3/VMEy4CnWPpH35ymphzLllSC4uxyRl/kprA==
X-Received: by 2002:a05:600c:4fd4:b0:43c:eea9:f45d with SMTP id 5b1f17b1804b1-43db6248e50mr137487095e9.18.1743547625935;
        Tue, 01 Apr 2025 15:47:05 -0700 (PDT)
Message-ID: <cf19dd5c-1c87-49e0-a8fc-52b098d12b9f@citrix.com>
Date: Tue, 1 Apr 2025 23:47:04 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 4/5] x86/vmx: remove *_OPCODE
To: dmkhn@proton.me, xen-devel@lists.xenproject.org
Cc: anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org,
 michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org,
 dmukhin@ford.com
References: <20250401222105.79309-1-dmukhin@ford.com>
 <20250401222105.79309-5-dmukhin@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: <20250401222105.79309-5-dmukhin@ford.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 01/04/2025 11:21 pm, dmkhn@proton.me wrote:
> diff --git a/xen/arch/x86/include/asm/hvm/vmx/vmx.h b/xen/arch/x86/include/asm/hvm/vmx/vmx.h
> index 10c0619108..1d63e49288 100644
> --- a/xen/arch/x86/include/asm/hvm/vmx/vmx.h
> +++ b/xen/arch/x86/include/asm/hvm/vmx/vmx.h
> @@ -507,15 +487,17 @@ static inline int __vmxon(u64 addr)
>      int rc;
>  
>      asm volatile ( 
> -        "1: " VMXON_OPCODE MODRM_EAX_06 "\n"
> -        "   setna %b0 ; neg %0\n" /* CF==1 or ZF==1 --> rc = -1 */
> +        "1: vmxon (%[addr])\n"
> +        "   setna %b[rc]\n"
> +        "   neg %[rc]\n"          /* CF==1 or ZF==1 --> rc = -1 */
>          "2:\n"
>          ".section .fixup,\"ax\"\n"
> -        "3: sub $2,%0 ; jmp 2b\n"    /* #UD or #GP --> rc = -2 */
> +        "3: mov $-2, %[rc]\n"
> +        "   jmp 2b\n"             /* #UD   or #GP   --> rc = -2 */
>          ".previous\n"
>          _ASM_EXTABLE(1b, 3b)
> -        : "=q" (rc)
> -        : "0" (0), "a" (&addr)
> +        : [rc] "=q" (rc)
> +        : "0" (0), [addr] "r" (&addr)
>          : "memory");
>  
>      return rc;

A variant of this patch (improvements to __vmxon() helper, or whatever)
probably wants pulling out and doing earlier.

For the function parameter, u64 addr wants to become paddr_t addr.

Use "int rc = 0;" and [rc] "+q" (rc).  That takes away the "0" (0) that
is otherwise unconnected.

Next, "vmxon %[addr]" and [addr] "m" (addr).   The VMXON instruction
strictly takes an m64 operand, and it doesn't need bouncing through
another register.

Finally, __vmx{on,off}() have single callers only in vmcs.c, and really
shouldn't be in vmx.h which is included ~everywhere.  You can move them
into vmcs.c (probably after parse_ept_param_runtime()) to limit their scope.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Apr 01 22:48:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 22:48:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.934926.1336476 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzkPc-0008NE-Qh; Tue, 01 Apr 2025 22:48:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 934926.1336476; Tue, 01 Apr 2025 22:48: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 1tzkPc-0008N7-LO; Tue, 01 Apr 2025 22:48:52 +0000
Received: by outflank-mailman (input) for mailman id 934926;
 Tue, 01 Apr 2025 22:48: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=KZod=WT=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tzkPb-0008Mz-9B
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 22:48:51 +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 7aa76cd7-0f4b-11f0-9ea7-5ba50f476ded;
 Wed, 02 Apr 2025 00:48:50 +0200 (CEST)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-43d04dc73b7so66663135e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 01 Apr 2025 15:48:50 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43eb5eb1d18sm2731625e9.0.2025.04.01.15.48.48
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 01 Apr 2025 15:48: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: 7aa76cd7-0f4b-11f0-9ea7-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1743547730; x=1744152530; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=kkDE9LRh8C/HTprHzpu94nPRwBvjfgP2IHUdRGgltP4=;
        b=ksScTNWtLT1TBLhD8e402UcWDHOvQqTlWjgg8LK2xjyKg2LGbkiYf+NjF7ZRIrRvrC
         jA1VodDzlf+QffI2H+g7lCzzUvtoJ6L4COum3MKpkgYVX6MoUCSUpUOjUCp1Mu/Nzx7m
         o38Lo5E8dV6dw/GpY0pS81MFWonDsJnB+fZU0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743547730; x=1744152530;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=kkDE9LRh8C/HTprHzpu94nPRwBvjfgP2IHUdRGgltP4=;
        b=XlHAnWgRdbqxH/VQkOucHh9c5Ne8OZejgYpGbCicsk0hHC0JR0VWpAlBOcJfrfzXsW
         TbKID+JTtx8DEUCc+U32w+Pp845Hopthp6YIB9A3/4YS2OETTn4ziAgiVU6A4ijXF+u8
         QiFG222g5c1e/T7fQuQVVs6vn9nF+vJDcEa57tToKnGAos+tmfY7Y7hKLS35tcLpFvMv
         eAYG0teudQxMz3XaBKNmtTsu+Z/sNkM/ZBfXieKXM/LMD0GcIE0EtwxVvKBgdr9GsLVs
         usf6LRa7HG4xPnXaef5nmw6tUafQwhPR/9YAPks3T//w/QspM2/oWa1qk4m0iGNefmCy
         +iyA==
X-Forwarded-Encrypted: i=1; AJvYcCWnVrxQUYGZZWtpq0tb3j/Em2eePHGrgVeVM7dOsFy/EO3UsYLwlJTDHIp9pblhYXceSfxDOFfiOCA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwlSMjc50jIzcVOU8nVJGC3yeja+gaYrsaZSfHwZDr1fmU/dhnq
	WUr+itwf4urr8JKm+IjY3osM2DiT4GN4RhgyLpEMR+fJ0RN50IqRBtzICPiQvnU=
X-Gm-Gg: ASbGncuuH40tg+jFH8JjT1/Z/kx7DvQQ0vrDSYV3YS3mKLkfVPOBB22FGEnD1QZnDqr
	BN/1gadzQ609hGLZGbWgoHb9mqRDVCJ0KN+tUYl0xd7gIyG77wbCuSb+03Im6ZMVuyGDCRDc997
	zn1yYZkKrA/al1kz9E4kFYPmqrKVWLvzYoSIOUDjA6zUGHm2Z2sbSxnzwnQ7Atv1BYXJo/Allv4
	2JxUiHa+Evj7+25KbAAB0aZn65PfXy9qRoc3jaPOAG/TEhkMzdjpueE0KRXhmb4vWuCNN7hDTnP
	qG2yv5U/QrOJ8BMp2e54b7aTX1lrNRCbhchSlfGesHG1aw8Qea9ZytewvK/zxiZs3pO8eCorO+3
	Y54Ih9+rBayrotX6pKlL2
X-Google-Smtp-Source: AGHT+IG5v/k5FTfTRq4uGdjfI/Wrl+hKomAcp9MRFWnRy5/FghsnZ8vEVNBi8g8zzDsSLIJKBY8EWg==
X-Received: by 2002:a05:600c:a49:b0:43c:fceb:91f with SMTP id 5b1f17b1804b1-43e8e3d008dmr121571465e9.11.1743547729915;
        Tue, 01 Apr 2025 15:48:49 -0700 (PDT)
Message-ID: <df1091ad-6054-4527-91ce-56dae103c5c2@citrix.com>
Date: Tue, 1 Apr 2025 23:48:48 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 0/5] x86/asm: cleanups after toolchain baseline upgrade
To: dmkhn@proton.me, xen-devel@lists.xenproject.org
Cc: anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org,
 michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org,
 dmukhin@ford.com
References: <20250401222105.79309-1-dmukhin@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: <20250401222105.79309-1-dmukhin@ford.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 01/04/2025 11:21 pm, dmkhn@proton.me wrote:
> Patches 1-4 remove various compiler workarounds in the hypervisor code
> for Intel's VMX instructions.
>
> Patch 5 removes compiler workaround for missing clac/stac instructions.
>
> CI: https://gitlab.com/xen-project/people/dmukhin/xen/-/pipelines/1747394875
>
> Denis Mukhin (5):
>   x86/vmx: remove HAVE_AS_VMX
>   x86/vmx: remove HAVE_AS_EPT
>   x86/vmx: remove GAS_VMX_OP()
>   x86/vmx: remove *_OPCODE

These are fine, but probably ought to be merged because they're all
really one thing.

When you've pulled the __vmx{on,off}() cleanup into a separate patch,
the remains of patch 4 becomes straight deletion, which also means that
Resolves: https://gitlab.com/xen-project/xen/-/work_items/202 is the
commit with almost all of the work in it.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Apr 01 23:08:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 23:08:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.934942.1336485 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzkij-00059n-CJ; Tue, 01 Apr 2025 23:08:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 934942.1336485; Tue, 01 Apr 2025 23:08: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 1tzkij-00059g-8n; Tue, 01 Apr 2025 23:08:37 +0000
Received: by outflank-mailman (input) for mailman id 934942;
 Tue, 01 Apr 2025 23:08: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=p4cc=WT=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1tzkii-00059a-4J
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 23:08:36 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org
 [2600:3c04:e001:324:0:1991:8:25])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3b85154b-0f4e-11f0-9ffb-bf95429c2676;
 Wed, 02 Apr 2025 01:08:33 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 864C261126;
 Tue,  1 Apr 2025 23:08:25 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 60808C4CEE8;
 Tue,  1 Apr 2025 23:08: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: 3b85154b-0f4e-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1743548911;
	bh=O0DqrMi9IZgLWlhMTuVoVpTy+cO5VFLimM8+bVoSttc=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=PYD4jZaDt5gNCIoCaDRpTqwCGtzoclfH3/trtwSzLQZADUsKDrENGVSrUua2TMJz/
	 achF67uVWDFmZU9PLIeZK+kT2yEbtQi27llQO8BkgqnS04RydKoH4TcgVYpvt5ucA5
	 X61p4IlTc8UNHeHU5zd7c0XnC4BasNAavL/8PcglTUld6Fl/LMkTPXfPWTB/0gr+uR
	 0yrDHhaVGOsC81H9Yv1e4020c9XjdtguAH8GlCG6Lx+nVzlWtzgGcvIKyGtD9Ac7ea
	 4OKEgwbxQFvxZjkCuGslm2hgXXAB016fzGnxDaznlaooDHi10hRBEb1MLVvu3IwU7C
	 a74bSrs6K1iyQ==
Date: Tue, 1 Apr 2025 16:08:29 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Roger Pau Monne <roger.pau@citrix.com>
cc: xen-devel@lists.xenproject.org, Doug Goldstein <cardoe@cardoe.com>, 
    Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH v2 01/11] automation/dockers: add to README how to rebuild
 all containers
In-Reply-To: <20250401130840.72119-2-roger.pau@citrix.com>
Message-ID: <alpine.DEB.2.22.394.2504011608030.3098208@ubuntu-linux-20-04-desktop>
References: <20250401130840.72119-1-roger.pau@citrix.com> <20250401130840.72119-2-roger.pau@citrix.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="8323329-1052309063-1743548911=:3098208"

  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-1052309063-1743548911=:3098208
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8BIT

On Tue, 1 Apr 2025, Roger Pau Monne wrote:
> Document in the README how to rebuild all containers.  This is helpful when
> populating a local docker registry for testing purposes.
> 
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>

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


> ---
>  automation/build/README.md | 7 +++++++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/automation/build/README.md b/automation/build/README.md
> index ecc898680c91..6c647b1b2a68 100644
> --- a/automation/build/README.md
> +++ b/automation/build/README.md
> @@ -108,6 +108,13 @@ env CONTAINER_NO_PULL=1 \
>  make -C automation/build opensuse/tumbleweed-x86_64 PUSH=1
>  ```
>  
> +To rebuild all containers the `all` make target can be used, with or without
> +the `PUSH` environment variable:
> +
> +```
> +make -C automation/build all PUSH=1
> +```
> +
>  [BuildKit]: https://docs.docker.com/build/buildkit/
>  [registry]: https://gitlab.com/xen-project/xen/container_registry
>  [registry help]: https://docs.gitlab.com/ee/user/packages/container_registry/
> -- 
> 2.48.1
> 
--8323329-1052309063-1743548911=:3098208--


From xen-devel-bounces@lists.xenproject.org Tue Apr 01 23:35:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 23:35:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.934955.1336495 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzl89-00042h-BM; Tue, 01 Apr 2025 23:34:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 934955.1336495; Tue, 01 Apr 2025 23:34:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzl89-00042a-8V; Tue, 01 Apr 2025 23:34:53 +0000
Received: by outflank-mailman (input) for mailman id 934955;
 Tue, 01 Apr 2025 23:34: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=KZod=WT=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tzl87-00042U-Sj
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 23:34:51 +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 e672c5e4-0f51-11f0-9ffb-bf95429c2676;
 Wed, 02 Apr 2025 01:34:48 +0200 (CEST)
Received: by mail-wr1-x432.google.com with SMTP id
 ffacd0b85a97d-38f2f391864so3663270f8f.3
 for <xen-devel@lists.xenproject.org>; Tue, 01 Apr 2025 16:34:48 -0700 (PDT)
Received: from localhost.localdomain (host-92-26-98-202.as13285.net.
 [92.26.98.202]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39c0b7a420bsm15112429f8f.82.2025.04.01.16.34.46
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 01 Apr 2025 16:34: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: e672c5e4-0f51-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1743550487; x=1744155287; 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=11+pzo1svboxI/YVj1ud4vGVrzsTT62DWsIKE6oIun8=;
        b=ar1Ve6vvFzijaqXpz68ICoek1masWhEIM4dDyofoAKu10AkSWuPquppDIyAeqbiajj
         RT7EC/Z0MjAlZlLw4+4L4ey0oUCpRpShBvI3UItVlqKHzgjrEagUZZanhkYAr7uoopAj
         HUiKKXEK9PrPs+EAz/0CKVeJhAEBWB2AqefnY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743550487; x=1744155287;
        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=11+pzo1svboxI/YVj1ud4vGVrzsTT62DWsIKE6oIun8=;
        b=vAKeCu93TLCfrUyqEnq5ue+BI6wbD7Lk/v3/To5re4TrZ4npUT5FlHjFGEqnBCN9hX
         MOF7MvJCCae9IOOseo8mxu/j5VlWBPC/3lWWYcBJJC+1IK/TQY1kJdpndsmihEyi0Wcf
         NY8wuAOJsA2W+Dd6hpLn52lWbC393sfl1yunAgFwBzgtKVjzWumH+Hcp7eQhJoX+QJQt
         KY8adm66jC1D2RJ2T6HEZnPM/kI28xb6cEyTpMnGAyl9xwy/1OkLQmJMxZCVqoESW22i
         iLuC9q322obsu/iooWNYi7pBL2VDq9G8d03VhjzAH9qxSJIph4jsDUdGSgWZ4v9lS1DE
         yBRg==
X-Gm-Message-State: AOJu0Ywhv6lpOSFOaxw5fMdAOO68JmNkKOnrqTcpkyO5dM0PAebfZEzl
	/ES/22HhtkUHPALarapWVlaiSiI60jvh86CCvVgIlEZ7jLJcuhThduaNxkW8EtXJE3BDyM7dWoJ
	dPFY=
X-Gm-Gg: ASbGncv0BMjWLdjphy1SLyZ4rdL2roUx2XPIDeJXcFzZfqwus7/luDyffoF2vPRrUuI
	z239l89uWcY0XVgDQGZ+bockwsqMvr6Oc6Ue3QkmqFhtvh5bEzhhc6H4ZpPF9zut+m49ApWZN0f
	3M8eUlAMw70AIzpGxRw9MwJj7F8JSdIwBlsg/U1rF16hgH7DQwsj7dxyvOITmI4cv+K6ndhSjWS
	t5Do1k82NVFZrGqebXXrOehwglJJk1NUUIog24rhgnpBV/Qj/CmFmPToaRgrGNjqgguCqDM41SM
	yg21otwlMMQb0qalwBohoKbrwjeEBJMck80QuuT+gArt0yRcR7LIwSqAXZ2R4U8EPlkCOZJphby
	0K7moUtKvDoNcVcazyg==
X-Google-Smtp-Source: AGHT+IE9KXUXpXN32iC3blhVw9ysb6pqdH1yGnKrh++3/JIxyC04X2Q0pWjHmEQebhtOqwSQmruzJw==
X-Received: by 2002:a5d:6d8e:0:b0:391:3aab:a7d0 with SMTP id ffacd0b85a97d-39c120dd0e0mr10964903f8f.19.1743550487525;
        Tue, 01 Apr 2025 16:34:47 -0700 (PDT)
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>,
	dmkhn@proton.me
Subject: [PATCH RFC] x86/vmx: Use asm goto() in _vmx_cpu_up()
Date: Wed,  2 Apr 2025 00:34:44 +0100
Message-Id: <20250401233444.1181076-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

With the new toolchain baseline, we can make use of asm goto() in certain
places, and the VMXON invocation is one example.

This removes the logic to set up rc (including a fixup section where bactraces
have no connection to the invoking function), the logic to decode it, and the
default case which was dead but in a way the compiler couldn't prove
previously.

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: dmkhn@proton.me

RFC.  To be rebased over Denis' general cleanup.

In principle, we can split fail into fail_valid and fail_invalid, allowing us
to spot the VMfail("VMXON executed in VMX root operation") case from the
pseduocode.  However, getting that involves a VMREAD of VM_INSTRUCTION_ERROR,
and error handling in case there isn't a loaded VMCS, so I think the
complexity is unwarranted in this case.

Bloat-o-meter:
  add/remove: 0/0 grow/shrink: 1/1 up/down: 13/-32 (-19)
  Function                                     old     new   delta
  _vmx_cpu_up.cold                            2460    2473     +13
  _vmx_cpu_up                                 1803    1771     -32

The if ( 0 ) isn't terribly nice, but it's the least bad option I could come
up with.  It does allow the structure of the switch() to remain largely
intact.
---
 xen/arch/x86/hvm/vmx/vmcs.c            | 21 ++++++++++++---------
 xen/arch/x86/include/asm/hvm/vmx/vmx.h | 19 -------------------
 2 files changed, 12 insertions(+), 28 deletions(-)

diff --git a/xen/arch/x86/hvm/vmx/vmcs.c b/xen/arch/x86/hvm/vmx/vmcs.c
index 0ba65becec1e..98f56b636fb3 100644
--- a/xen/arch/x86/hvm/vmx/vmcs.c
+++ b/xen/arch/x86/hvm/vmx/vmcs.c
@@ -749,9 +749,16 @@ static int _vmx_cpu_up(bool bsp)
     if ( bsp && (rc = vmx_cpu_up_prepare(cpu)) != 0 )
         return rc;
 
-    switch ( __vmxon(this_cpu(vmxon_region)) )
+    asm goto ( "1: vmxon %[addr]\n\t"
+               "jbe %l[fail]\n\t"
+               _ASM_EXTABLE(1b, %l[fault])
+               :
+               : [addr] "m" (this_cpu(vmxon_region))
+               :
+               : fail, fault );
+    if ( 0 ) /* asm goto error paths */
     {
-    case -2: /* #UD or #GP */
+    fault:
         if ( bios_locked &&
              test_bit(X86_FEATURE_SMX, &boot_cpu_data.x86_capability) &&
              (!(eax & IA32_FEATURE_CONTROL_ENABLE_VMXON_OUTSIDE_SMX) ||
@@ -763,17 +770,13 @@ static int _vmx_cpu_up(bool bsp)
                    "bootloader.\n");
             return -EINVAL;
         }
-        /* fall through */
-    case -1: /* CF==1 or ZF==1 */
+    fail:
         printk("CPU%d: unexpected VMXON failure\n", cpu);
         return -EINVAL;
-    case 0: /* success */
-        this_cpu(vmxon) = 1;
-        break;
-    default:
-        BUG();
     }
 
+    this_cpu(vmxon) = 1;
+
     hvm_asid_init(cpu_has_vmx_vpid ? (1u << VMCS_VPID_WIDTH) : 0);
 
     if ( cpu_has_vmx_ept )
diff --git a/xen/arch/x86/include/asm/hvm/vmx/vmx.h b/xen/arch/x86/include/asm/hvm/vmx/vmx.h
index 843f8591b9cf..7c6ba7340744 100644
--- a/xen/arch/x86/include/asm/hvm/vmx/vmx.h
+++ b/xen/arch/x86/include/asm/hvm/vmx/vmx.h
@@ -559,25 +559,6 @@ static inline void __vmxoff(void)
         : : : "memory" );
 }
 
-static inline int __vmxon(u64 addr)
-{
-    int rc;
-
-    asm volatile ( 
-        "1: " VMXON_OPCODE MODRM_EAX_06 "\n"
-        "   setna %b0 ; neg %0\n" /* CF==1 or ZF==1 --> rc = -1 */
-        "2:\n"
-        ".section .fixup,\"ax\"\n"
-        "3: sub $2,%0 ; jmp 2b\n"    /* #UD or #GP --> rc = -2 */
-        ".previous\n"
-        _ASM_EXTABLE(1b, 3b)
-        : "=q" (rc)
-        : "0" (0), "a" (&addr)
-        : "memory");
-
-    return rc;
-}
-
 int cf_check vmx_guest_x86_mode(struct vcpu *v);
 unsigned int vmx_get_cpl(void);
 

base-commit: cff389bca78885447c8cfa381e058c6fb983df9c
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Tue Apr 01 23:45:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 23:45:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.934967.1336505 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzlIJ-0006sU-AM; Tue, 01 Apr 2025 23:45:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 934967.1336505; Tue, 01 Apr 2025 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 1tzlIJ-0006sN-61; Tue, 01 Apr 2025 23:45:23 +0000
Received: by outflank-mailman (input) for mailman id 934967;
 Tue, 01 Apr 2025 23:45: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=p4cc=WT=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1tzlII-0006sF-Jn
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 23:45:22 +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 5e93d484-0f53-11f0-9ea7-5ba50f476ded;
 Wed, 02 Apr 2025 01:45:20 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by nyc.source.kernel.org (Postfix) with ESMTP id E5340A407DB;
 Tue,  1 Apr 2025 23:39:49 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 57B59C4CEE4;
 Tue,  1 Apr 2025 23:45: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: 5e93d484-0f53-11f0-9ea7-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1743551118;
	bh=bx2xmAHe99qpI7vjn3RgzY1hVk9yZPYcw4BBFjrMsIs=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=o4hkc5I1P2TXhQqXPHrVam8kemtOXNr+sTpvMavU2xUy/m6RoJ/2uiPpD108KRfnw
	 wZBkMpi5DJa5tGq7GKbEePsugv2eUia1kYhA/ZxXijOsUAghjdgzDYpu11d466TVpm
	 K+hBXaxudOGt04sTTEkL4C95CL3ahgBiTW2E2ii5DXaoU8E13hz40MwVOBFFZE6+AR
	 KkQ3rbV+ZlgoNQugKddKBXHtNW0lVy0R7RbM5CsePhYLquRzDDK7fEFFduwTaiRTly
	 NC1g60w5nF3NWd72zOLJsnfiMFluHPhF9WciBV8b/KBv87Hh1SalhPys1BCo/I9o5H
	 aYEQ2mSMz2Dkg==
Date: Tue, 1 Apr 2025 16:45:15 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jason Andryuk <jason.andryuk@amd.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>
Subject: Re: [PATCH v2 3/6] xen/arm: dom0less delay xenstore initialization
In-Reply-To: <20250331214321.205331-4-jason.andryuk@amd.com>
Message-ID: <alpine.DEB.2.22.394.2504011644460.3098208@ubuntu-linux-20-04-desktop>
References: <20250331214321.205331-1-jason.andryuk@amd.com> <20250331214321.205331-4-jason.andryuk@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, 31 Mar 2025, Jason Andryuk wrote:
> To allocate the xenstore event channel and initialize the grant table
> entry, the xenstore domid is neeed.  A dom0 is created before the domUs,
> so it is normally available through hardware_domain.  With capabilities
> and dom0less, the xenstore domain may not be created first.
> 
> Keep the population of the page and HVM_PARAM_STORE_PFN in the normal
> domain construction, but delay event channel creation and grant seeding
> to after all domUs are created.  HVM_PARAM_STORE_PFN now serves as
> indication to setup xenstore since the device tree is no longer
> immediately available.  0 means no xenstore.  ~0ULL means legacy so only
> the event channel needs setup, and any other value means to seed the
> page.
> 
> dom0 needs to set xs_domid when it is serving as the xenstore domain.
> 
> The domain running xenstored needs to be the handler for VIRQ_DOM_EXC,
> so set that as well - it otherwise defaults to hardware domain.
> 
> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
> ---
> v2:
> Re-order ahead of seeding.
> Fix created type in commit message
> Change set_xs_domid to set_xs_domain
> Set xenstore domain as VIRQ_DOM_EXC handler
> 
> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
> ---
>  xen/arch/arm/dom0less-build.c             | 67 +++++++++++++++++------
>  xen/arch/arm/domain_build.c               |  2 +
>  xen/arch/arm/include/asm/dom0less-build.h |  2 +
>  3 files changed, 53 insertions(+), 18 deletions(-)
> 
> diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
> index e25d7bd468..a46f292c1f 100644
> --- a/xen/arch/arm/dom0less-build.c
> +++ b/xen/arch/arm/dom0less-build.c
> @@ -20,6 +20,15 @@
>  #include <asm/static-memory.h>
>  #include <asm/static-shmem.h>
>  
> +static domid_t __initdata xs_domid = DOMID_INVALID;
> +static bool __initdata need_xenstore;
> +
> +void __init set_xs_domain(struct domain *d)
> +{
> +    xs_domid = d->domain_id;
> +    set_global_virq_handler(d, VIRQ_DOM_EXC);
> +}
> +
>  bool __init is_dom0less_mode(void)
>  {
>      struct bootmodules *mods = &bootinfo.modules;
> @@ -694,7 +703,7 @@ static int __init alloc_xenstore_evtchn(struct domain *d)
>      int rc;
>  
>      alloc.dom = d->domain_id;
> -    alloc.remote_dom = hardware_domain->domain_id;
> +    alloc.remote_dom = xs_domid;
>      rc = evtchn_alloc_unbound(&alloc, 0);
>      if ( rc )
>      {
> @@ -760,16 +769,10 @@ static int __init alloc_xenstore_params(struct kernel_info *kinfo)
>      struct domain *d = kinfo->d;
>      int rc = 0;
>  
> -    if ( kinfo->dom0less_feature & (DOM0LESS_XENSTORE | DOM0LESS_XS_LEGACY) )
> -    {
> -        ASSERT(hardware_domain);
> -        rc = alloc_xenstore_evtchn(d);
> -        if ( rc < 0 )
> -            return rc;
> +    if ( (kinfo->dom0less_feature & (DOM0LESS_XENSTORE | DOM0LESS_XS_LEGACY))
> +                                 == (DOM0LESS_XENSTORE | DOM0LESS_XS_LEGACY) )
>          d->arch.hvm.params[HVM_PARAM_STORE_PFN] = ~0ULL;
> -    }
> -
> -    if ( kinfo->dom0less_feature & DOM0LESS_XENSTORE )
> +    else if ( kinfo->dom0less_feature & DOM0LESS_XENSTORE )
>      {
>          rc = alloc_xenstore_page(d);
>          if ( rc < 0 )
> @@ -841,6 +844,30 @@ static void __init domain_vcpu_affinity(struct domain *d,
>      }
>  }
>  
> +static void __init initialize_domU_xenstore(void)
> +{
> +    struct domain *d;
> +
> +    if ( xs_domid == DOMID_INVALID )
> +        return;
> +
> +    for_each_domain( d )
> +    {
> +        unsigned long gfn = d->arch.hvm.params[HVM_PARAM_STORE_PFN];

This should be uint64_t. With that change:

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


> +        int rc;
> +
> +        if ( gfn == 0 )
> +            continue;
> +
> +        if ( is_xenstore_domain(d) )
> +            continue;
> +
> +        rc = alloc_xenstore_evtchn(d);
> +        if ( rc < 0 )
> +            panic("%pd: Failed to allocate xenstore_evtchn\n", d);
> +    }
> +}
> +
>  static int __init construct_domU(struct domain *d,
>                                   const struct dt_device_node *node)
>  {


From xen-devel-bounces@lists.xenproject.org Tue Apr 01 23:51:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 01 Apr 2025 23:51:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.934979.1336514 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzlNn-0000TC-Rs; Tue, 01 Apr 2025 23:51:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 934979.1336514; Tue, 01 Apr 2025 23:51: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 1tzlNn-0000T5-PK; Tue, 01 Apr 2025 23:51:03 +0000
Received: by outflank-mailman (input) for mailman id 934979;
 Tue, 01 Apr 2025 23:51: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=p4cc=WT=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1tzlNm-0000QM-Cs
 for xen-devel@lists.xenproject.org; Tue, 01 Apr 2025 23:51: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 2992d128-0f54-11f0-9ffb-bf95429c2676;
 Wed, 02 Apr 2025 01:51:00 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by nyc.source.kernel.org (Postfix) with ESMTP id 74B87A41712;
 Tue,  1 Apr 2025 23:45:30 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 80B8FC4CEE4;
 Tue,  1 Apr 2025 23:50: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: 2992d128-0f54-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1743551459;
	bh=MyoYIGMJ4pQJ4sDHjS7J1+l6z+LyNDtoYmiWxCj1zac=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=SD/rmbGdSArZlsrwYPEFe+gAbJvLX0Ht2Zzn+P+mLF3zI3xt1JLaFfEiRYUto8pDd
	 jeicG10QeeT9+GOO2kUpLukJPPSFwTh/gZbj3fvWdRmDANLrHBl66qLQ+8hYfLPJoB
	 uu9dTwyjHiAzQ7NGiFTxSI8W2NAqPQTwSH8xHwub4qChOwIPDTXnDf+LgFC7j+Jm3I
	 DFWqkUANWu8/RtQ6ZCq9pGNiezt9iSSSROfl7cmgT792CiJV1uDO8hD4qptFA7G17c
	 TnogyGjJ54W05Au1nTa5L8p1PyYExBwfFYAFqr/qw3LbGyjhvdezsMYtmd3RmMPdFG
	 z6QfWY6rJBPTQ==
Date: Tue, 1 Apr 2025 16:50:55 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jason Andryuk <jason.andryuk@amd.com>
cc: Jan Beulich <jbeulich@suse.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
    Bertrand Marquis <bertrand.marquis@arm.com>, 
    Michal Orzel <michal.orzel@amd.com>, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    Anthony PERARD <anthony.perard@vates.tech>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    xen-devel@lists.xenproject.org
Subject: Re: [PATCH v2 4/6] xen/arm: dom0less seed xenstore grant table
 entry
In-Reply-To: <3d800459-7762-427e-8765-044adbb6459e@amd.com>
Message-ID: <alpine.DEB.2.22.394.2504011648360.3098208@ubuntu-linux-20-04-desktop>
References: <20250331214321.205331-1-jason.andryuk@amd.com> <20250331214321.205331-5-jason.andryuk@amd.com> <6765d129-66dc-48d9-aaac-2b973edfda80@suse.com> <3d800459-7762-427e-8765-044adbb6459e@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, 1 Apr 2025, Jason Andryuk wrote:
> On 2025-04-01 08:16, Jan Beulich wrote:
> > On 31.03.2025 23:43, Jason Andryuk wrote:
> 
> > > --- a/xen/arch/arm/dom0less-build.c
> > > +++ b/xen/arch/arm/dom0less-build.c
> > > @@ -865,6 +865,10 @@ static void __init initialize_domU_xenstore(void)
> > >           rc = alloc_xenstore_evtchn(d);
> > >           if ( rc < 0 )
> > >               panic("%pd: Failed to allocate xenstore_evtchn\n", d);
> > > +
> > > +        if ( gfn != ~0ULL )
> > 
> > Is this an odd open-coding of INVALID_GFN? And even if not - why ULL when
> > "gfn" is unsigned long? The way you have it the condition will always be
> > false on Arm32, if I'm not mistaken.
> 
> The gfn is pulled out of the HVM_PARAMS, which is a uint64_t.  It is set like:
> 
> d->arch.hvm.params[HVM_PARAM_STORE_PFN] = ~0ULL;
> 
> But pulled out by:
> 
> unsigned long gfn = d->arch.hvm.params[HVM_PARAM_STORE_PFN];
> 
> So your comment highlights that unsigned long is incorrect for ARM32.
> 
> While I realize fixed types are discouraged, I'd prefer to use uint64_t for
> the replacement.  That is the type of HVM_PARAMS, and uint64_t is used on the
> init-dom0less side as well.  Using unsigned long long to get a 64bit value on
> ARM32 seems less clear to me.

The types that correspond to hypercall struct field types should match
the hypercall struct field types.

I think gfn should be uint64_t to match the definition of params.

Similarly among the arguments of gnttab_seed_entry, flags should be
uint16_t and I think frame should be uint32_t. This last one I am
confused why you defined it as uint64_t, maybe I am missing something.


From xen-devel-bounces@lists.xenproject.org Wed Apr 02 00:04:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 02 Apr 2025 00:04:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.935000.1336524 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzlaI-0004oW-UR; Wed, 02 Apr 2025 00:03:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 935000.1336524; Wed, 02 Apr 2025 00: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 1tzlaI-0004oP-Rm; Wed, 02 Apr 2025 00:03:58 +0000
Received: by outflank-mailman (input) for mailman id 935000;
 Wed, 02 Apr 2025 00:03: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=YWck=WU=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1tzlaG-0004oJ-Pj
 for xen-devel@lists.xenproject.org; Wed, 02 Apr 2025 00:03:56 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f6ddef03-0f55-11f0-9ffb-bf95429c2676;
 Wed, 02 Apr 2025 02:03:54 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 4040B61129;
 Wed,  2 Apr 2025 00:03:46 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id E3B01C4CEE4;
 Wed,  2 Apr 2025 00:03: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: f6ddef03-0f55-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1743552232;
	bh=jT/+pCeWK8jt5gV1YwLnACokaY0EoUF0vSAd9cxvZwU=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=FtsBGhVSz406sBEBKBZGM5p0RkhZAcUxtosbc3I6r03khjN3jEyWNj87i24Qv5hR7
	 DClGoubpnRnCachofzK+cv5KPRtGQMwL/83zLm+w18qZ6o+hZKHFmTtmFS9g8PcWDC
	 CqzY8MV0vSQHDrGmr06STz3S0zHr+AwomrCVFpTaPLOqgBS/K5VUr0e3Wq9Fl8T8SZ
	 rkKdqvTChQ23Atch+FQPbTxb16zGg44OTnCIyzWxZF5LYrEMvBeym5VqJH0fSHmBmy
	 x/XaXmDTIZBfTxfP8lGesNC8FB5PvWosnzfMuR9XfxJQPX5NWvv0Lqv7eiTKU1geD+
	 ZPiSUZ3aOT1Qw==
Date: Tue, 1 Apr 2025 17:03:49 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jason Andryuk <jason.andryuk@amd.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>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    Anthony PERARD <anthony.perard@vates.tech>, 
    Jan Beulich <jbeulich@suse.com>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Subject: Re: [PATCH v2 6/6] xen/arm: Add capabilities to dom0less
In-Reply-To: <20250331214321.205331-7-jason.andryuk@amd.com>
Message-ID: <alpine.DEB.2.22.394.2504011654320.3098208@ubuntu-linux-20-04-desktop>
References: <20250331214321.205331-1-jason.andryuk@amd.com> <20250331214321.205331-7-jason.andryuk@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, 31 Mar 2025, Jason Andryuk wrote:
> Add capabilities property to dom0less to allow building a
> disaggregated system.  Only a single hardware domain and single xenstore
> domain can be specified.  Multiple control domains are possible.
> 
> Introduce bootfdt.h to contain these constants.
> 
> When using the hardware or xenstore capabilities, adjust the grant and
> event channel limits similar to dom0.
> 
> For a hardware domain, require an IOMMU and disallow specifying a vpl011
> console or nr_spis.
> 
> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
> ---
> v2:
> Fix comment style
> Make DOMAIN_CAPS_* unsigned
> Remove forced directmap & iommu
> Require iommu with use of hardware domain
> Limit to a single xenstore domain
> 
> There is overlap with hyperlaunch.  The numeric values are the same.
> Hyperlaunch doesn't expose the values in a public header as done here.
> Is this to be expected for dom0less?  It seems most of dom0less isn't in
> a header, but just in docs.
> 
> Hyperlaunch uses BUILD_CAPS_, but I chose DOMAIN_CAPS_ since there are
> domain-level capabilities.
> 
> Only a single xenstore and hardware domain make sense.  Hardware domain
> receiving all hardware can only have a single domain.
> 
> For Xenstore, the logic latches the single xs_domid and uses that for
> all domains.  Also, only a single domain can register for VIRQ_DOM_EXC.
> ---
>  docs/misc/arm/device-tree/booting.txt | 11 ++++++++
>  xen/arch/arm/dom0less-build.c         | 39 +++++++++++++++++++++++++++
>  xen/arch/arm/domain.c                 |  3 ++-
>  xen/include/public/bootfdt.h          | 31 +++++++++++++++++++++
>  4 files changed, 83 insertions(+), 1 deletion(-)
>  create mode 100644 xen/include/public/bootfdt.h
> 
> diff --git a/docs/misc/arm/device-tree/booting.txt b/docs/misc/arm/device-tree/booting.txt
> index ac781c9cc8..490c792ddf 100644
> --- a/docs/misc/arm/device-tree/booting.txt
> +++ b/docs/misc/arm/device-tree/booting.txt
> @@ -167,6 +167,17 @@ with the following properties:
>      Refer to docs/misc/cache_coloring.rst for syntax. This option is applicable
>      only to Arm64 guests.
>  
> +- capabilities
> +    Optional.  A bit field of domain capabilities for a disaggregated

Please reword as:

Optional.  A 32-bit integer representing a bit field...

That is because there is no native bit field type in device tree.



> +    system.  A traditional dom0 has all all of these capabilities, and a
> +    domU has none of them.
> +
> +    0x1 DOMAIN_CAPS_CONTROL  - A privileged, control domain
> +    0x2 DOMAIN_CAPS_HARDWARE - The hardware domain - there can be only 1
> +    0x4 DOMAIN_CAPS_XENSTORE - The xenstore domain - there can be only 1
> +
> +    The default is no capabilities.
> +
>  - vpl011
>  
>      An empty property to enable/disable a virtual pl011 for the guest to
> diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
> index fc515c9852..1cb6c170a7 100644
> --- a/xen/arch/arm/dom0less-build.c
> +++ b/xen/arch/arm/dom0less-build.c
> @@ -12,6 +12,7 @@
>  #include <xen/sizes.h>
>  #include <xen/vmap.h>
>  
> +#include <public/bootfdt.h>
>  #include <public/io/xs_wire.h>
>  
>  #include <asm/arm64/sve.h>
> @@ -906,6 +907,8 @@ static int __init construct_domU(struct domain *d,
>             d->max_vcpus, mem);
>  
>      kinfo.vpl011 = dt_property_read_bool(node, "vpl011");
> +    if ( kinfo.vpl011 && is_hardware_domain(d) )
> +        panic("hardware domain cannot specify vpl011\n");
>  
>      rc = dt_property_read_string(node, "xen,enhanced", &dom0less_enhanced);
>      if ( rc == -EILSEQ ||
> @@ -1020,6 +1023,40 @@ void __init create_domUs(void)
>          if ( (max_init_domid + 1) >= DOMID_FIRST_RESERVED )
>              panic("No more domain IDs available\n");
>  
> +        if ( dt_property_read_u32(node, "capabilities", &val) )
> +        {
> +            if ( val & ~DOMAIN_CAPS_MASK )
> +                panic("Invalid capabilities (%"PRIx32")\n", val);
> +
> +            if ( val & DOMAIN_CAPS_CONTROL )
> +                flags |= CDF_privileged;
> +
> +            if ( val & DOMAIN_CAPS_HARDWARE )
> +            {
> +                if ( hardware_domain )
> +                    panic("Only 1 hardware domain can be specified! (%pd)\n",
> +                           hardware_domain);
> +
> +                if ( !iommu_enabled )
> +                    panic("iommu required for dom0less hardware domain\n");

The panic is OK if "direct-map" is not specified. We need to check for
direct-map before panic'ing.

Other than these two comments it looks good to me.


> +
> +                d_cfg.max_grant_frames = gnttab_dom0_frames();
> +                d_cfg.max_evtchn_port = -1;
> +                flags |= CDF_hardware;
> +                iommu = true;
> +            }
> +
> +            if ( val & DOMAIN_CAPS_XENSTORE )
> +            {
> +                if ( xs_domid != DOMID_INVALID )
> +                    panic("Only 1 xenstore domain can be specified! (%u)\n",
> +                          xs_domid);
> +
> +                d_cfg.flags |= XEN_DOMCTL_CDF_xs_domain;
> +                d_cfg.max_evtchn_port = -1;
> +            }
> +        }
> +
>          if ( dt_find_property(node, "xen,static-mem", NULL) )
>          {
>              if ( llc_coloring_enabled )
> @@ -1082,6 +1119,8 @@ void __init create_domUs(void)
>                  d_cfg.arch.nr_spis = MAX(d_cfg.arch.nr_spis,
>                                           vpl011_virq - 32 + 1);
>          }
> +        else if ( flags & CDF_hardware )
> +            panic("nr_spis cannot be specified for hardware domain\n");
>  
>          /* Get the optional property domain-cpupool */
>          cpupool_node = dt_parse_phandle(node, "domain-cpupool", 0);
> diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
> index 3ba959f866..dc4b4e84c1 100644
> --- a/xen/arch/arm/domain.c
> +++ b/xen/arch/arm/domain.c
> @@ -608,7 +608,8 @@ 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_optional = (XEN_DOMCTL_CDF_iommu | XEN_DOMCTL_CDF_vpmu |
> +                                   XEN_DOMCTL_CDF_xs_domain );
>      unsigned int sve_vl_bits = sve_decode_vl(config->arch.sve_vl);
>  
>      if ( (config->flags & ~flags_optional) != flags_required )
> diff --git a/xen/include/public/bootfdt.h b/xen/include/public/bootfdt.h
> new file mode 100644
> index 0000000000..86c46b42a9
> --- /dev/null
> +++ b/xen/include/public/bootfdt.h
> @@ -0,0 +1,31 @@
> +/* SPDX-License-Identifier: MIT */
> +/*
> + * Xen Device Tree boot information
> + *
> + * Information for configuring Xen domains created at boot time.
> + */
> +
> +#ifndef __XEN_PUBLIC_BOOTFDT_H__
> +#define __XEN_PUBLIC_BOOTFDT_H__
> +
> +/*
> + * Domain Capabilities specified in the "capabilities" property.  Use of
> + * this property allows splitting up the monolithic dom0 into separate,
> + * less privileged components.  A regular domU has no capabilities
> + * (which is the default if nothing is specified).  A traditional dom0
> + * has all three capabilities.
> + */
> +
> +/* Control/Privileged domain capable of affecting other domains. */
> +#define DOMAIN_CAPS_CONTROL  (1U << 0)
> +/*
> + * Hardware domain controlling physical hardware.  Typically providing
> + * backends to other domains.
> + */
> +#define DOMAIN_CAPS_HARDWARE (1U << 1)
> +/* Xenstore domain. */
> +#define DOMAIN_CAPS_XENSTORE (1U << 2)
> +#define DOMAIN_CAPS_MASK     (DOMAIN_CAPS_CONTROL | DOMAIN_CAPS_HARDWARE | \
> +                              DOMAIN_CAPS_XENSTORE)
> +
> +#endif /* __XEN_PUBLIC_BOOTFDT_H__ */
> -- 
> 2.49.0
> 


From xen-devel-bounces@lists.xenproject.org Wed Apr 02 00:15:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 02 Apr 2025 00:15:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.935015.1336535 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzlku-0007hn-Vd; Wed, 02 Apr 2025 00:14:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 935015.1336535; Wed, 02 Apr 2025 00: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 1tzlku-0007hg-Sl; Wed, 02 Apr 2025 00:14:56 +0000
Received: by outflank-mailman (input) for mailman id 935015;
 Wed, 02 Apr 2025 00: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=YWck=WU=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1tzlku-0007ha-3p
 for xen-devel@lists.xenproject.org; Wed, 02 Apr 2025 00:14:56 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7fe0d3c5-0f57-11f0-9ea7-5ba50f476ded;
 Wed, 02 Apr 2025 02:14:53 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 726BC61126;
 Wed,  2 Apr 2025 00:14:46 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id A414DC4CEE4;
 Wed,  2 Apr 2025 00:14:51 +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: 7fe0d3c5-0f57-11f0-9ea7-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1743552892;
	bh=DjDOHjuoBfe85suHnJ0PpFAtcPwgZSsYPZVgklI6qJQ=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=aK7KfTTjYWFE52BBT83ruvsz835oHUowybkIh+WEQgiyKyb5jtaMPJiVxen1pMwWJ
	 hOv6Aw64EdHEyJB02lmjpiU976W6F/hLaGuX5nbVPlM3OVqTCgZLNzB0d3snZ1jMwb
	 fOq60FH3YHGLt44DPcdH18NSo2MB/9TawRkh2mRcz7N1QBilQ2lDaZPa9WV9/67NSU
	 xXhn48WO9MoktFYng5PbM0LmmxshXQMqh1E2MfhwF3DAa52PDmYDFBOdSjx7pVkLlH
	 XXX4C9AdouVtnb5JOT3FQNaB5gXR16CUhLPFrwL+sjQq4wtLEgNI3IKXIRcROxmwdR
	 S5Tb07tuNPJ/A==
Date: Tue, 1 Apr 2025 17:14:49 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jan Beulich <jbeulich@suse.com>
cc: Stefano Stabellini <stefano.stabellini@amd.com>, 
    xen-devel@lists.xenproject.org, Andrew Cooper <andrew.cooper3@citrix.com>, 
    Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, 
    Anthony PERARD <anthony.perard@vates.tech>, 
    Michal Orzel <michal.orzel@amd.com>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Subject: Re: [PATCH v5] xen: simplify bitmap_to_xenctl_bitmap for little
 endian
In-Reply-To: <694eac75-e872-4ba0-80ed-95c14cd11f5e@suse.com>
Message-ID: <alpine.DEB.2.22.394.2504011708290.3098208@ubuntu-linux-20-04-desktop>
References: <20250401005008.2787764-1-stefano.stabellini@amd.com> <694eac75-e872-4ba0-80ed-95c14cd11f5e@suse.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Tue, 1 Apr 2025, Jan Beulich wrote:
> From: Stefano Stabellini <stefano.stabellini@amd.com>
> 
> The little endian implementation of bitmap_to_xenctl_bitmap leads to
> unnecessary xmallocs and xfrees. Given that Xen only supports little
> endian architectures, it is worth optimizing.
> 
> This patch removes the need for the xmalloc on little endian
> architectures.
> 
> Remove clamp_last_byte as it is only called once and only needs to
> modify one byte. Inline it.
> 
> Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> v5: Fix IS_ENABLED() use. Keep more code common. Move comment.
>     Convert LE bitmap_long_to_byte() to just a declaration.

Thanks Jan, I looked at your version carefully and it looks correct to
me. I could give my reviewed-by but it looks weird given that I am also
the first author.

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


> --- a/xen/common/bitmap.c
> +++ b/xen/common/bitmap.c
> @@ -40,21 +40,6 @@
>   * for the best explanations of this ordering.
>   */
>  
> -/*
> - * If a bitmap has a number of bits which is not a multiple of 8 then
> - * the last few bits of the last byte of the bitmap can be
> - * unexpectedly set which can confuse consumers (e.g. in the tools)
> - * who also round up their loops to 8 bits. Ensure we clear those left
> - * over bits so as to prevent surprises.
> - */
> -static void clamp_last_byte(uint8_t *bp, unsigned int nbits)
> -{
> -	unsigned int remainder = nbits % 8;
> -
> -	if (remainder)
> -		bp[nbits/8] &= (1U << remainder) - 1;
> -}
> -
>  int __bitmap_empty(const unsigned long *bitmap, unsigned int bits)
>  {
>  	int k, lim = bits/BITS_PER_LONG;
> @@ -338,7 +323,6 @@ static void bitmap_long_to_byte(uint8_t
>  			nbits -= 8;
>  		}
>  	}
> -	clamp_last_byte(bp, nbits);
>  }
>  
>  static void bitmap_byte_to_long(unsigned long *lp, const uint8_t *bp,
> @@ -359,12 +343,11 @@ static void bitmap_byte_to_long(unsigned
>  
>  #elif defined(__LITTLE_ENDIAN)
>  
> -static void bitmap_long_to_byte(uint8_t *bp, const unsigned long *lp,
> -				unsigned int nbits)
> -{
> -	memcpy(bp, lp, DIV_ROUND_UP(nbits, BITS_PER_BYTE));
> -	clamp_last_byte(bp, nbits);
> -}
> +#define LITTLE_ENDIAN 1 /* For IS_ENABLED(). */
> +
> +/* Unused function, but a declaration is needed. */
> +void bitmap_long_to_byte(uint8_t *bp, const unsigned long *lp,
> +			 unsigned int nbits);
>  
>  static void bitmap_byte_to_long(unsigned long *lp, const uint8_t *bp,
>  				unsigned int nbits)
> @@ -384,22 +367,46 @@ int bitmap_to_xenctl_bitmap(struct xenct
>      uint8_t zero = 0;
>      int err = 0;
>      unsigned int xen_bytes = DIV_ROUND_UP(nbits, BITS_PER_BYTE);
> -    uint8_t *bytemap = xmalloc_array(uint8_t, xen_bytes);
> +    const uint8_t *bytemap;
> +    uint8_t last, *buf = NULL;
>  
> -    if ( !bytemap )
> -        return -ENOMEM;
> +    if ( !IS_ENABLED(LITTLE_ENDIAN) )
> +    {
> +        buf = xmalloc_array(uint8_t, xen_bytes);
> +        if ( !buf )
> +            return -ENOMEM;
> +
> +        bitmap_long_to_byte(buf, bitmap, nbits);
> +
> +        bytemap = buf;
> +    }
> +    else
> +        bytemap = (const uint8_t *)bitmap;
>  
>      guest_bytes = DIV_ROUND_UP(xenctl_bitmap->nr_bits, BITS_PER_BYTE);
>      copy_bytes  = min(guest_bytes, xen_bytes);
>  
> -    bitmap_long_to_byte(bytemap, bitmap, nbits);
> +    if ( copy_bytes > 1 &&
> +         copy_to_guest(xenctl_bitmap->bitmap, bytemap, copy_bytes - 1) )
> +        err = -EFAULT;
> +
> +    /*
> +     * If a bitmap has a number of bits which is not a multiple of 8 then the
> +     * last few bits of the last byte of the bitmap can be unexpectedly set,
> +     * which can confuse consumers (e.g. in the tools), who also may round up
> +     * their loops to 8 bits. Ensure we clear those left over bits so as to
> +     * prevent surprises.
> +     */
> +    last = bytemap[nbits / 8];
> +    if ( nbits % 8 )
> +        last &= (1U << (nbits % 8)) - 1;
> +
> +    xfree(buf);
>  
>      if ( copy_bytes &&
> -         copy_to_guest(xenctl_bitmap->bitmap, bytemap, copy_bytes) )
> +         copy_to_guest_offset(xenctl_bitmap->bitmap, copy_bytes - 1, &last, 1) )
>          err = -EFAULT;
>  
> -    xfree(bytemap);
> -
>      for ( i = copy_bytes; !err && i < guest_bytes; i++ )
>          if ( copy_to_guest_offset(xenctl_bitmap->bitmap, i, &zero, 1) )
>              err = -EFAULT;
> 


From xen-devel-bounces@lists.xenproject.org Wed Apr 02 00:19:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 02 Apr 2025 00:19:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.935027.1336545 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzlpC-0008HR-Fx; Wed, 02 Apr 2025 00:19:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 935027.1336545; Wed, 02 Apr 2025 00:19: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 1tzlpC-0008HK-C5; Wed, 02 Apr 2025 00:19:22 +0000
Received: by outflank-mailman (input) for mailman id 935027;
 Wed, 02 Apr 2025 00:19: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=YWck=WU=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1tzlpB-0008HE-6u
 for xen-devel@lists.xenproject.org; Wed, 02 Apr 2025 00:19:21 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1dd265da-0f58-11f0-9ffb-bf95429c2676;
 Wed, 02 Apr 2025 02:19:19 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id BB560435B3;
 Wed,  2 Apr 2025 00:19:16 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8A36AC4CEE4;
 Wed,  2 Apr 2025 00:19:16 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1dd265da-0f58-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1743553157;
	bh=BXQOTDyKHPbRJToz6v568FkioxG5VeYLC1ubRR2EFVo=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=LSZdCIV7Et1tD4JNKKgJNLQMNpog6sIaimzfMsteYP/PztqHxsvxkwWrVThw7bXgM
	 zCukqgE2PLGTGNUKCo/XGKihndLgGk+xcb68bicpz1psIXHfE2bO5H27V+xPgkYed7
	 01fn89Bq7yOCgMOHP1xVhUDVVHo2joooKCg591/od2r1N1XeEQM8aeExq+BWWgCEfL
	 lllvluOeCp577lub1mfWiz3M9cnjb5F6WNZG4gLY+oFrDFYZxR8S7T0JmqazEPvBdg
	 DqD90RjD+mLOfTFl9CqWbjByB0kCHEWSCs4Sz3Oxdd1Ms0R4cd7YUbwN473zBDUMMr
	 NxbqTbAyL2z3A==
Date: Tue, 1 Apr 2025 17:19:14 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
cc: xen-devel@lists.xenproject.org, Doug Goldstein <cardoe@cardoe.com>, 
    Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH 1/2] ci: create boot.ipxe for legacy boot
In-Reply-To: <d9443966db489ac14081d26ddb34f5d2f03f310b.1743464494.git-series.marmarek@invisiblethingslab.com>
Message-ID: <alpine.DEB.2.22.394.2504011718240.3098208@ubuntu-linux-20-04-desktop>
References: <cover.c37f01ae6ae3cbc9c0897f39de9037d7225d2c94.1743464494.git-series.marmarek@invisiblethingslab.com> <d9443966db489ac14081d26ddb34f5d2f03f310b.1743464494.git-series.marmarek@invisiblethingslab.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="8323329-619240473-1743553156=:3098208"

  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-619240473-1743553156=:3098208
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8BIT

On Tue, 1 Apr 2025, Marek Marczykowski-Górecki wrote:
> Hardware runners that use legacy boot use iPXE instead of grub2. Create
> boot.ipxe for those too - with exact same options.
> 
> Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>

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


> ---
> Right now this applies to KBL (hw3) runner. And not many more, as newer
> systems support UEFI network boot.
> ---
>  automation/scripts/qubes-x86-64.sh | 8 ++++++++
>  1 file changed, 8 insertions(+)
> 
> diff --git a/automation/scripts/qubes-x86-64.sh b/automation/scripts/qubes-x86-64.sh
> index 7c80e0c23318..f27296445901 100755
> --- a/automation/scripts/qubes-x86-64.sh
> +++ b/automation/scripts/qubes-x86-64.sh
> @@ -251,6 +251,14 @@ module2 (http)/gitlab-ci/vmlinuz console=hvc0 root=/dev/ram0 earlyprintk=xen
>  module2 (http)/gitlab-ci/initrd-dom0
>  " > $TFTP/grub.cfg
>  
> +echo "#!ipxe
> +
> +kernel /gitlab-ci/xen $CONSOLE_OPTS loglvl=all guest_loglvl=all dom0_mem=4G console_timestamps=boot $extra_xen_opts || reboot
> +module /gitlab-ci/vmlinuz console=hvc0 root=/dev/ram0 earlyprintk=xen || reboot
> +module /gitlab-ci/initrd-dom0 || reboot
> +boot
> +" > $TFTP/boot.ipxe
> +
>  cp -f binaries/xen $TFTP/xen
>  cp -f binaries/bzImage $TFTP/vmlinuz
>  cp -f binaries/dom0-rootfs.cpio.gz $TFTP/initrd-dom0
> -- 
> git-series 0.9.1
> 
--8323329-619240473-1743553156=:3098208--


From xen-devel-bounces@lists.xenproject.org Wed Apr 02 00:22:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 02 Apr 2025 00:22:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.935039.1336555 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzlsD-0002dk-SX; Wed, 02 Apr 2025 00:22:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 935039.1336555; Wed, 02 Apr 2025 00: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 1tzlsD-0002dd-Po; Wed, 02 Apr 2025 00:22:29 +0000
Received: by outflank-mailman (input) for mailman id 935039;
 Wed, 02 Apr 2025 00:22: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=YWck=WU=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1tzlsC-0002dW-Rb
 for xen-devel@lists.xenproject.org; Wed, 02 Apr 2025 00:22:28 +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 8da23f9c-0f58-11f0-9ffb-bf95429c2676;
 Wed, 02 Apr 2025 02:22:26 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id D280B5C3FCC;
 Wed,  2 Apr 2025 00:20:07 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id BA06AC4CEE4;
 Wed,  2 Apr 2025 00:22:23 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8da23f9c-0f58-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1743553344;
	bh=GW+JcUjsAPrxTRCOzqIxwLPCy4cz/rmvfzwYSx+avoY=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=O5ZSeYpuvCHEgKl18yq81EehsbiMSbk7a5bQj2jqx63yskcbVOxXJ+uLjaHt5CejJ
	 01Fat4316/ZlOHFMeYozsa0jyiHGa6q37QDW/PezjcXPZmXPGQEJKQ7zai1xpSalzW
	 x6z0P/1PmYpETGnMzIL4GKb0GsygEOfsJkpzamTifHq4FuGl2GFJaleNb5LhYiZsVk
	 5iRP0NRmvI1902FxZNU54VhO/ja3FBUULRL2QrLlhWFR495SpO8A4b89YKCCsLGkuH
	 g4f4GYQvy0Pdhqu+UYGYau3T9MG116S14+gyybssb4RNIu1p2KJbrhBg6SL4Soag+8
	 7CRcQg0l+6yaw==
Date: Tue, 1 Apr 2025 17:22:22 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    Doug Goldstein <cardoe@cardoe.com>, 
    Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH 2/2] ci: add Intel KabyLake HW runner
In-Reply-To: <c92c7baeb09883dbbfc493c0abc1e9576533cffa.1743464494.git-series.marmarek@invisiblethingslab.com>
Message-ID: <alpine.DEB.2.22.394.2504011722030.3098208@ubuntu-linux-20-04-desktop>
References: <cover.c37f01ae6ae3cbc9c0897f39de9037d7225d2c94.1743464494.git-series.marmarek@invisiblethingslab.com> <c92c7baeb09883dbbfc493c0abc1e9576533cffa.1743464494.git-series.marmarek@invisiblethingslab.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="8323329-305143249-1743553344=:3098208"

  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-305143249-1743553344=:3098208
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8BIT

On Tue, 1 Apr 2025, Marek Marczykowski-Górecki wrote:
> This is Intel i7-7567U in NUC 7i7BNH. This one is an older one, with no
> firmware updates (last update from 2023) and no microcode udpates
> either. While this firmware supports UEFI, network boot works only in
> legacy mode - thus legacy is used here (via iPXE, instead of grub2.efi).
> Testing legacy boot path may be a useful thing on its own.
> 
> Add the same set of tests as on ADL runner.
> 
> Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>

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


> ---
> Cc: Jan Beulich <jbeulich@suse.com>
> Cc: Andrew Cooper <andrew.cooper3@citrix.com>
> 
> Not sure if duplicating pvshim test makes sense? Others do look like may
> have hardware-sensitive parts.

The more the merrier


> ---
>  automation/gitlab-ci/test.yaml | 89 +++++++++++++++++++++++++++++++++++-
>  1 file changed, 89 insertions(+)
> 
> diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
> index 225eb4399807..d05b9a98afa6 100644
> --- a/automation/gitlab-ci/test.yaml
> +++ b/automation/gitlab-ci/test.yaml
> @@ -155,6 +155,17 @@
>    tags:
>      - qubes-hw2
>  
> +.kbl-x86-64:
> +  # it's really similar to the ADL one
> +  extends: .adl-x86-64
> +  variables:
> +    PCIDEV: "00:1f.6"
> +    PCIDEV_INTR: "MSI"
> +    CONSOLE_OPTS: "console=com1 com1=115200,8n1,pci,msi"
> +    SUT_ADDR: test-3.testnet
> +  tags:
> +    - qubes-hw3
> +
>  .zen2-x86-64:
>    # it's really similar to the above
>    extends: .adl-x86-64
> @@ -312,6 +323,84 @@ adl-tools-tests-pvh-x86-64-gcc-debug:
>      - *x86-64-test-needs
>      - alpine-3.18-gcc-debug
>  
> +kbl-smoke-x86-64-gcc-debug:
> +  extends: .kbl-x86-64
> +  script:
> +    - ./automation/scripts/qubes-x86-64.sh 2>&1 | tee ${LOGFILE}
> +  needs:
> +    - *x86-64-test-needs
> +    - alpine-3.18-gcc-debug
> +
> +kbl-smoke-x86-64-dom0pvh-gcc-debug:
> +  extends: .kbl-x86-64
> +  script:
> +    - ./automation/scripts/qubes-x86-64.sh dom0pvh 2>&1 | tee ${LOGFILE}
> +  needs:
> +    - *x86-64-test-needs
> +    - alpine-3.18-gcc-debug
> +
> +kbl-smoke-x86-64-dom0pvh-hvm-gcc-debug:
> +  extends: .kbl-x86-64
> +  script:
> +    - ./automation/scripts/qubes-x86-64.sh dom0pvh-hvm 2>&1 | tee ${LOGFILE}
> +  needs:
> +    - *x86-64-test-needs
> +    - alpine-3.18-gcc-debug
> +
> +kbl-suspend-x86-64-gcc-debug:
> +  extends: .kbl-x86-64
> +  script:
> +    - ./automation/scripts/qubes-x86-64.sh s3 2>&1 | tee ${LOGFILE}
> +  needs:
> +    - *x86-64-test-needs
> +    - alpine-3.18-gcc-debug
> +
> +kbl-pci-pv-x86-64-gcc-debug:
> +  extends: .kbl-x86-64
> +  script:
> +    - ./automation/scripts/qubes-x86-64.sh pci-pv 2>&1 | tee ${LOGFILE}
> +  needs:
> +    - *x86-64-test-needs
> +    - alpine-3.18-gcc-debug
> +
> +kbl-pci-hvm-x86-64-gcc-debug:
> +  extends: .kbl-x86-64
> +  script:
> +    - ./automation/scripts/qubes-x86-64.sh pci-hvm 2>&1 | tee ${LOGFILE}
> +  needs:
> +    - *x86-64-test-needs
> +    - alpine-3.18-gcc-debug
> +
> +kbl-pvshim-x86-64-gcc-debug:
> +  extends: .kbl-x86-64
> +  script:
> +    - ./automation/scripts/qubes-x86-64.sh pvshim 2>&1 | tee ${LOGFILE}
> +  needs:
> +    - *x86-64-test-needs
> +    - alpine-3.18-gcc-debug
> +
> +kbl-tools-tests-pv-x86-64-gcc-debug:
> +  extends: .kbl-x86-64
> +  script:
> +    - ./automation/scripts/qubes-x86-64.sh tools-tests-pv 2>&1 | tee ${LOGFILE}
> +  artifacts:
> +    reports:
> +      junit: tests-junit.xml
> +  needs:
> +    - *x86-64-test-needs
> +    - alpine-3.18-gcc-debug
> +
> +kbl-tools-tests-pvh-x86-64-gcc-debug:
> +  extends: .kbl-x86-64
> +  script:
> +    - ./automation/scripts/qubes-x86-64.sh tools-tests-pvh 2>&1 | tee ${LOGFILE}
> +  artifacts:
> +    reports:
> +      junit: tests-junit.xml
> +  needs:
> +    - *x86-64-test-needs
> +    - alpine-3.18-gcc-debug
> +
>  zen2-smoke-x86-64-gcc-debug:
>    extends: .zen2-x86-64
>    script:
> -- 
> git-series 0.9.1
> 
--8323329-305143249-1743553344=:3098208--


From xen-devel-bounces@lists.xenproject.org Wed Apr 02 03:46:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 02 Apr 2025 03:46:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.935083.1336565 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzp3h-00076s-Gp; Wed, 02 Apr 2025 03:46:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 935083.1336565; Wed, 02 Apr 2025 03:46: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 1tzp3h-00076l-CT; Wed, 02 Apr 2025 03:46:33 +0000
Received: by outflank-mailman (input) for mailman id 935083;
 Wed, 02 Apr 2025 03: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=w5pF=WU=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1tzp3f-00076f-VB
 for xen-devel@lists.xenproject.org; Wed, 02 Apr 2025 03:46:32 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0dbe14ca-0f75-11f0-9ea7-5ba50f476ded;
 Wed, 02 Apr 2025 05:46:30 +0200 (CEST)
Received: from [192.168.7.202] ([71.202.166.45]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 5323jYCp4052768
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NO);
 Tue, 1 Apr 2025 20:45:34 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0dbe14ca-0f75-11f0-9ea7-5ba50f476ded
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 5323jYCp4052768
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025032001; t=1743565538;
	bh=B/0Ul12154gIBLTRQGmDrSHkQipxSmmaRYkawQNhljs=;
	h=Date:Subject:To:Cc:References:From:In-Reply-To:From;
	b=d7YoxvOk9CIKebUmypsUBsbIGJDe0uIJODZYK5DJptXRC7jV6F3X1iHgsxaJq7z/U
	 nBC47DHx45CFSikk6yorSJmHvn/RCUzlkE0NIfP5y7UNWDRWBv91w7rT+GXmQbAe6z
	 HCcFPhy4gq4eFfyUGP1oJ31ejuLGzPZzPtgaEGzAY4WeayjxRzdkiEm1K913UJ2qFb
	 o2q11OGn9+Uc+NNdgOH1HNABy4p6gq8usi/RT27lr00ZcWFGEXHyfLPucBEl+bhIGt
	 HaLheaydO5A8cmC7yD4/mcLHEGK1M9ACDi53Kn4fWVEbhWUVQAm5iuaES3HqoGE7N5
	 7tT7gwjoWNc5Q==
Message-ID: <7a503d55-db41-42da-8133-4a3dbbd36c7e@zytor.com>
Date: Tue, 1 Apr 2025 20:45:33 -0700
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH v1 01/15] x86/msr: Replace __wrmsr() with
 native_wrmsrl()
To: Ingo Molnar <mingo@kernel.org>, "H. Peter Anvin" <hpa@zytor.com>
Cc: linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org,
        linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
        linux-edac@vger.kernel.org, kvm@vger.kernel.org,
        xen-devel@lists.xenproject.org, linux-ide@vger.kernel.org,
        linux-pm@vger.kernel.org, bpf@vger.kernel.org, llvm@lists.linux.dev,
        tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, jgross@suse.com,
        andrew.cooper3@citrix.com, peterz@infradead.org, acme@kernel.org,
        namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        alexey.amakhalov@broadcom.com, bcm-kernel-feedback-list@broadcom.com,
        tony.luck@intel.com, pbonzini@redhat.com, vkuznets@redhat.com,
        seanjc@google.com, luto@kernel.org, boris.ostrovsky@oracle.com,
        kys@microsoft.com, haiyangz@microsoft.com, decui@microsoft.com,
        Linus Torvalds <torvalds@linux-foundation.org>
References: <20250331082251.3171276-1-xin@zytor.com>
 <20250331082251.3171276-2-xin@zytor.com> <Z-pruogreCuU66wm@gmail.com>
 <9D15DE81-2E68-4FCD-A133-4963602E18C9@zytor.com> <Z-ubVFyoOzwKhI53@gmail.com>
Content-Language: en-US
From: Xin Li <xin@zytor.com>
Autocrypt: addr=xin@zytor.com; keydata=
 xsDNBGUPz1cBDACS/9yOJGojBFPxFt0OfTWuMl0uSgpwk37uRrFPTTLw4BaxhlFL0bjs6q+0
 2OfG34R+a0ZCuj5c9vggUMoOLdDyA7yPVAJU0OX6lqpg6z/kyQg3t4jvajG6aCgwSDx5Kzg5
 Rj3AXl8k2wb0jdqRB4RvaOPFiHNGgXCs5Pkux/qr0laeFIpzMKMootGa4kfURgPhRzUaM1vy
 bsMsL8vpJtGUmitrSqe5dVNBH00whLtPFM7IbzKURPUOkRRiusFAsw0a1ztCgoFczq6VfAVu
 raTye0L/VXwZd+aGi401V2tLsAHxxckRi9p3mc0jExPc60joK+aZPy6amwSCy5kAJ/AboYtY
 VmKIGKx1yx8POy6m+1lZ8C0q9b8eJ8kWPAR78PgT37FQWKYS1uAroG2wLdK7FiIEpPhCD+zH
 wlslo2ETbdKjrLIPNehQCOWrT32k8vFNEMLP5G/mmjfNj5sEf3IOKgMTMVl9AFjsINLHcxEQ
 6T8nGbX/n3msP6A36FDfdSEAEQEAAc0WWGluIExpIDx4aW5Aenl0b3IuY29tPsLBDQQTAQgA
 NxYhBIUq/WFSDTiOvUIqv2u9DlcdrjdRBQJlD89XBQkFo5qAAhsDBAsJCAcFFQgJCgsFFgID
 AQAACgkQa70OVx2uN1HUpgv/cM2fsFCQodLArMTX5nt9yqAWgA5t1srri6EgS8W3F+3Kitge
 tYTBKu6j5BXuXaX3vyfCm+zajDJN77JHuYnpcKKr13VcZi1Swv6Jx1u0II8DOmoDYLb1Q2ZW
 v83W55fOWJ2g72x/UjVJBQ0sVjAngazU3ckc0TeNQlkcpSVGa/qBIHLfZraWtdrNAQT4A1fa
 sWGuJrChBFhtKbYXbUCu9AoYmmbQnsx2EWoJy3h7OjtfFapJbPZql+no5AJ3Mk9eE5oWyLH+
 QWqtOeJM7kKvn/dBudokFSNhDUw06e7EoVPSJyUIMbYtUO7g2+Atu44G/EPP0yV0J4lRO6EA
 wYRXff7+I1jIWEHpj5EFVYO6SmBg7zF2illHEW31JAPtdDLDHYcZDfS41caEKOQIPsdzQkaQ
 oW2hchcjcMPAfyhhRzUpVHLPxLCetP8vrVhTvnaZUo0xaVYb3+wjP+D5j/3+hwblu2agPsaE
 vgVbZ8Fx3TUxUPCAdr/p73DGg57oHjgezsDNBGUPz1gBDAD4Mg7hMFRQqlzotcNSxatlAQNL
 MadLfUTFz8wUUa21LPLrHBkUwm8RujehJrzcVbPYwPXIO0uyL/F///CogMNx7Iwo6by43KOy
 g89wVFhyy237EY76j1lVfLzcMYmjBoTH95fJC/lVb5Whxil6KjSN/R/y3jfG1dPXfwAuZ/4N
 cMoOslWkfZKJeEut5aZTRepKKF54T5r49H9F7OFLyxrC/uI9UDttWqMxcWyCkHh0v1Di8176
 jjYRNTrGEfYfGxSp+3jYL3PoNceIMkqM9haXjjGl0W1B4BidK1LVYBNov0rTEzyr0a1riUrp
 Qk+6z/LHxCM9lFFXnqH7KWeToTOPQebD2B/Ah5CZlft41i8L6LOF/LCuDBuYlu/fI2nuCc8d
 m4wwtkou1Y/kIwbEsE/6RQwRXUZhzO6llfoN96Fczr/RwvPIK5SVMixqWq4QGFAyK0m/1ap4
 bhIRrdCLVQcgU4glo17vqfEaRcTW5SgX+pGs4KIPPBE5J/ABD6pBnUUAEQEAAcLA/AQYAQgA
 JhYhBIUq/WFSDTiOvUIqv2u9DlcdrjdRBQJlD89ZBQkFo5qAAhsMAAoJEGu9DlcdrjdR4C0L
 /RcjolEjoZW8VsyxWtXazQPnaRvzZ4vhmGOsCPr2BPtMlSwDzTlri8BBG1/3t/DNK4JLuwEj
 OAIE3fkkm+UG4Kjud6aNeraDI52DRVCSx6xff3bjmJsJJMb12mWglN6LjdF6K+PE+OTJUh2F
 dOhslN5C2kgl0dvUuevwMgQF3IljLmi/6APKYJHjkJpu1E6luZec/lRbetHuNFtbh3xgFIJx
 2RpgVDP4xB3f8r0I+y6ua+p7fgOjDLyoFjubRGed0Be45JJQEn7A3CSb6Xu7NYobnxfkwAGZ
 Q81a2XtvNS7Aj6NWVoOQB5KbM4yosO5+Me1V1SkX2jlnn26JPEvbV3KRFcwV5RnDxm4OQTSk
 PYbAkjBbm+tuJ/Sm+5Yp5T/BnKz21FoCS8uvTiziHj2H7Cuekn6F8EYhegONm+RVg3vikOpn
 gao85i4HwQTK9/D1wgJIQkdwWXVMZ6q/OALaBp82vQ2U9sjTyFXgDjglgh00VRAHP7u1Rcu4
 l75w1xInsg==
In-Reply-To: <Z-ubVFyoOzwKhI53@gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 4/1/2025 12:52 AM, Ingo Molnar wrote:
> 
> * H. Peter Anvin <hpa@zytor.com> wrote:
> 
>> On March 31, 2025 3:17:30 AM PDT, Ingo Molnar <mingo@kernel.org> wrote:
>>>
>>> * Xin Li (Intel) <xin@zytor.com> wrote:
>>>
>>>> -	__wrmsr      (MSR_AMD_DBG_EXTN_CFG, val | 3ULL << 3, val >> 32);
>>>> +	native_wrmsrl(MSR_AMD_DBG_EXTN_CFG, val | 3ULL << 3);
>>>
>>> This is an improvement.
>>>
>>>> -	__wrmsr      (MSR_IA32_PQR_ASSOC, rmid_p, plr->closid);
>>>> +	native_wrmsrl(MSR_IA32_PQR_ASSOC, (u64)plr->closid << 32 | rmid_p);
>>>
>>>> -	__wrmsr      (MSR_IA32_PQR_ASSOC, rmid_p, closid_p);
>>>> +	native_wrmsrl(MSR_IA32_PQR_ASSOC, (u64)closid_p << 32 | rmid_p);
>>>
>>> This is not an improvement.
>>>
>>> Please provide a native_wrmsrl() API variant where natural [rmid_p, closid_p]
>>> high/lo parameters can be used, without the shift-uglification...
>>>
>>> Thanks,
>>>
>>> 	Ingo
>>
>> Directing this question primarily to Ingo, who is more than anyone
>> else the namespace consistency guardian:
>>
>> On the subject of msr function naming ... *msrl() has always been
>> misleading. The -l suffix usually means 32 bits; sometimes it means
>> the C type "long" (which in the kernel is used instead of
>> size_t/uintptr_t, which might end up being "fun" when 128-bit
>> architectures appear some time this century), but for a fixed 64-but
>> type we normally use -q.
> 
> Yeah, agreed - that's been bothering me for a while too. :-)
> 
>> Should we rename the *msrl() functions to *msrq() as part of this
>> overhaul?
> 
> Yeah, that's a good idea, and because talk is cheap I just implemented
> this in the tip:WIP.x86/msr branch with a couple of other cleanups in
> this area (see the shortlog & diffstat below), but the churn is high:
> 
>    144 files changed, 1034 insertions(+), 1034 deletions(-)
> 
> So this can only be done if regenerated and sent to Linus right before
> an -rc1 I think:
> 
>    git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip WIP.x86/msr

Hi Ingo,

Is this branch public?

I wanted to rebase on it and then incooperate your review comments, but
couldn't find the branch.

Thanks!
     Xin

> 
> Thanks,
> 
> 	Ingo
> 
> =======================>
> Ingo Molnar (18):
>        x86/msr: Standardize on u64 in <asm/msr.h>
>        x86/msr: Standardize on u64 in <asm/msr-index.h>
>        x86/msr: Use u64 in rdmsrl_amd_safe() and wrmsrl_amd_safe()
>        x86/msr: Use u64 in rdmsrl_safe() and paravirt_read_pmc()
>        x86/msr: Rename 'rdmsrl()' to 'rdmsrq()'
>        x86/msr: Rename 'wrmsrl()' to 'wrmsrq()'
>        x86/msr: Rename 'rdmsrl_safe()' to 'rdmsrq_safe()'
>        x86/msr: Rename 'wrmsrl_safe()' to 'wrmsrq_safe()'
>        x86/msr: Rename 'rdmsrl_safe_on_cpu()' to 'rdmsrq_safe_on_cpu()'
>        x86/msr: Rename 'wrmsrl_safe_on_cpu()' to 'wrmsrq_safe_on_cpu()'
>        x86/msr: Rename 'rdmsrl_on_cpu()' to 'rdmsrq_on_cpu()'
>        x86/msr: Rename 'wrmsrl_on_cpu()' to 'wrmsrq_on_cpu()'
>        x86/msr: Rename 'mce_rdmsrl()' to 'mce_rdmsrq()'
>        x86/msr: Rename 'mce_wrmsrl()' to 'mce_wrmsrq()'
>        x86/msr: Rename 'rdmsrl_amd_safe()' to 'rdmsrq_amd_safe()'
>        x86/msr: Rename 'wrmsrl_amd_safe()' to 'wrmsrq_amd_safe()'
>        x86/msr: Rename 'native_wrmsrl()' to 'native_wrmsrq()'
>        x86/msr: Rename 'wrmsrl_cstar()' to 'wrmsrq_cstar()'
> 
>   arch/x86/coco/sev/core.c                           |   2 +-
>   arch/x86/events/amd/brs.c                          |   8 +-
>   arch/x86/events/amd/core.c                         |  12 +--
>   arch/x86/events/amd/ibs.c                          |  26 ++---
>   arch/x86/events/amd/lbr.c                          |  20 ++--
>   arch/x86/events/amd/power.c                        |  10 +-
>   arch/x86/events/amd/uncore.c                       |  12 +--
>   arch/x86/events/core.c                             |  42 ++++----
>   arch/x86/events/intel/core.c                       |  66 ++++++-------
>   arch/x86/events/intel/cstate.c                     |   2 +-
>   arch/x86/events/intel/ds.c                         |  10 +-
>   arch/x86/events/intel/knc.c                        |  16 +--
>   arch/x86/events/intel/lbr.c                        |  44 ++++-----
>   arch/x86/events/intel/p4.c                         |  24 ++---
>   arch/x86/events/intel/p6.c                         |  12 +--
>   arch/x86/events/intel/pt.c                         |  32 +++---
>   arch/x86/events/intel/uncore.c                     |   2 +-
>   arch/x86/events/intel/uncore_discovery.c           |  10 +-
>   arch/x86/events/intel/uncore_nhmex.c               |  70 ++++++-------
>   arch/x86/events/intel/uncore_snb.c                 |  42 ++++----
>   arch/x86/events/intel/uncore_snbep.c               |  50 +++++-----
>   arch/x86/events/msr.c                              |   2 +-
>   arch/x86/events/perf_event.h                       |  26 ++---
>   arch/x86/events/probe.c                            |   2 +-
>   arch/x86/events/rapl.c                             |   8 +-
>   arch/x86/events/zhaoxin/core.c                     |  16 +--
>   arch/x86/hyperv/hv_apic.c                          |   4 +-
>   arch/x86/hyperv/hv_init.c                          |  66 ++++++-------
>   arch/x86/hyperv/hv_spinlock.c                      |   6 +-
>   arch/x86/hyperv/ivm.c                              |   2 +-
>   arch/x86/include/asm/apic.h                        |   8 +-
>   arch/x86/include/asm/debugreg.h                    |   4 +-
>   arch/x86/include/asm/fsgsbase.h                    |   4 +-
>   arch/x86/include/asm/kvm_host.h                    |   2 +-
>   arch/x86/include/asm/microcode.h                   |   2 +-
>   arch/x86/include/asm/msr-index.h                   |  12 +--
>   arch/x86/include/asm/msr.h                         |  50 +++++-----
>   arch/x86/include/asm/paravirt.h                    |   8 +-
>   arch/x86/include/asm/spec-ctrl.h                   |   2 +-
>   arch/x86/kernel/acpi/cppc.c                        |   8 +-
>   arch/x86/kernel/amd_nb.c                           |   2 +-
>   arch/x86/kernel/apic/apic.c                        |  16 +--
>   arch/x86/kernel/apic/apic_numachip.c               |   6 +-
>   arch/x86/kernel/cet.c                              |   2 +-
>   arch/x86/kernel/cpu/amd.c                          |  28 +++---
>   arch/x86/kernel/cpu/aperfmperf.c                   |  28 +++---
>   arch/x86/kernel/cpu/bugs.c                         |  24 ++---
>   arch/x86/kernel/cpu/bus_lock.c                     |  18 ++--
>   arch/x86/kernel/cpu/common.c                       |  68 ++++++-------
>   arch/x86/kernel/cpu/feat_ctl.c                     |   4 +-
>   arch/x86/kernel/cpu/hygon.c                        |   6 +-
>   arch/x86/kernel/cpu/intel.c                        |  10 +-
>   arch/x86/kernel/cpu/intel_epb.c                    |  12 +--
>   arch/x86/kernel/cpu/mce/amd.c                      |  22 ++---
>   arch/x86/kernel/cpu/mce/core.c                     |  58 +++++------
>   arch/x86/kernel/cpu/mce/inject.c                   |  32 +++---
>   arch/x86/kernel/cpu/mce/intel.c                    |  32 +++---
>   arch/x86/kernel/cpu/mce/internal.h                 |   2 +-
>   arch/x86/kernel/cpu/microcode/amd.c                |   2 +-
>   arch/x86/kernel/cpu/microcode/intel.c              |   2 +-
>   arch/x86/kernel/cpu/mshyperv.c                     |  12 +--
>   arch/x86/kernel/cpu/resctrl/core.c                 |  10 +-
>   arch/x86/kernel/cpu/resctrl/monitor.c              |   2 +-
>   arch/x86/kernel/cpu/resctrl/pseudo_lock.c          |   2 +-
>   arch/x86/kernel/cpu/resctrl/rdtgroup.c             |   6 +-
>   arch/x86/kernel/cpu/sgx/main.c                     |   2 +-
>   arch/x86/kernel/cpu/topology.c                     |   2 +-
>   arch/x86/kernel/cpu/topology_amd.c                 |   4 +-
>   arch/x86/kernel/cpu/tsx.c                          |  20 ++--
>   arch/x86/kernel/cpu/umwait.c                       |   2 +-
>   arch/x86/kernel/fpu/core.c                         |   2 +-
>   arch/x86/kernel/fpu/xstate.c                       |  10 +-
>   arch/x86/kernel/fpu/xstate.h                       |   2 +-
>   arch/x86/kernel/fred.c                             |  20 ++--
>   arch/x86/kernel/hpet.c                             |   2 +-
>   arch/x86/kernel/kvm.c                              |  28 +++---
>   arch/x86/kernel/kvmclock.c                         |   4 +-
>   arch/x86/kernel/mmconf-fam10h_64.c                 |   8 +-
>   arch/x86/kernel/process.c                          |  16 +--
>   arch/x86/kernel/process_64.c                       |  20 ++--
>   arch/x86/kernel/reboot_fixups_32.c                 |   2 +-
>   arch/x86/kernel/shstk.c                            |  18 ++--
>   arch/x86/kernel/traps.c                            |  10 +-
>   arch/x86/kernel/tsc.c                              |   2 +-
>   arch/x86/kernel/tsc_sync.c                         |  14 +--
>   arch/x86/kvm/svm/avic.c                            |   2 +-
>   arch/x86/kvm/svm/sev.c                             |   2 +-
>   arch/x86/kvm/svm/svm.c                             |  16 +--
>   arch/x86/kvm/vmx/nested.c                          |   4 +-
>   arch/x86/kvm/vmx/pmu_intel.c                       |   4 +-
>   arch/x86/kvm/vmx/sgx.c                             |   8 +-
>   arch/x86/kvm/vmx/vmx.c                             |  66 ++++++-------
>   arch/x86/kvm/x86.c                                 |  38 ++++----
>   arch/x86/lib/insn-eval.c                           |   6 +-
>   arch/x86/lib/msr-smp.c                             |  16 +--
>   arch/x86/lib/msr.c                                 |   4 +-
>   arch/x86/mm/pat/memtype.c                          |   4 +-
>   arch/x86/mm/tlb.c                                  |   2 +-
>   arch/x86/pci/amd_bus.c                             |  10 +-
>   arch/x86/platform/olpc/olpc-xo1-rtc.c              |   6 +-
>   arch/x86/platform/olpc/olpc-xo1-sci.c              |   2 +-
>   arch/x86/power/cpu.c                               |  26 ++---
>   arch/x86/realmode/init.c                           |   2 +-
>   arch/x86/virt/svm/sev.c                            |  20 ++--
>   arch/x86/xen/suspend.c                             |   6 +-
>   drivers/acpi/acpi_extlog.c                         |   2 +-
>   drivers/acpi/acpi_lpit.c                           |   2 +-
>   drivers/cpufreq/acpi-cpufreq.c                     |   8 +-
>   drivers/cpufreq/amd-pstate-ut.c                    |   6 +-
>   drivers/cpufreq/amd-pstate.c                       |  22 ++---
>   drivers/cpufreq/amd_freq_sensitivity.c             |   2 +-
>   drivers/cpufreq/e_powersaver.c                     |   6 +-
>   drivers/cpufreq/intel_pstate.c                     | 108 ++++++++++-----------
>   drivers/cpufreq/longhaul.c                         |  24 ++---
>   drivers/cpufreq/powernow-k7.c                      |  14 +--
>   drivers/crypto/ccp/sev-dev.c                       |   2 +-
>   drivers/edac/amd64_edac.c                          |   6 +-
>   drivers/gpu/drm/i915/selftests/librapl.c           |   4 +-
>   drivers/hwmon/fam15h_power.c                       |   6 +-
>   drivers/idle/intel_idle.c                          |  34 +++----
>   drivers/mtd/nand/raw/cs553x_nand.c                 |   6 +-
>   drivers/platform/x86/intel/ifs/core.c              |   4 +-
>   drivers/platform/x86/intel/ifs/load.c              |  20 ++--
>   drivers/platform/x86/intel/ifs/runtest.c           |  16 +--
>   drivers/platform/x86/intel/pmc/cnp.c               |   6 +-
>   drivers/platform/x86/intel/pmc/core.c              |   8 +-
>   .../x86/intel/speed_select_if/isst_if_common.c     |  18 ++--
>   .../x86/intel/speed_select_if/isst_if_mbox_msr.c   |  14 +--
>   .../x86/intel/speed_select_if/isst_tpmi_core.c     |   2 +-
>   drivers/platform/x86/intel/tpmi_power_domains.c    |   4 +-
>   drivers/platform/x86/intel/turbo_max_3.c           |   4 +-
>   .../x86/intel/uncore-frequency/uncore-frequency.c  |  10 +-
>   drivers/platform/x86/intel_ips.c                   |  36 +++----
>   drivers/powercap/intel_rapl_msr.c                  |   6 +-
>   .../int340x_thermal/processor_thermal_device.c     |   2 +-
>   drivers/thermal/intel/intel_hfi.c                  |  14 +--
>   drivers/thermal/intel/intel_powerclamp.c           |   4 +-
>   drivers/thermal/intel/intel_tcc_cooling.c          |   4 +-
>   drivers/thermal/intel/therm_throt.c                |  10 +-
>   drivers/video/fbdev/geode/gxfb_core.c              |   2 +-
>   drivers/video/fbdev/geode/lxfb_ops.c               |  22 ++---
>   drivers/video/fbdev/geode/suspend_gx.c             |  10 +-
>   drivers/video/fbdev/geode/video_gx.c               |  16 +--
>   include/hyperv/hvgdk_mini.h                        |   2 +-
>   144 files changed, 1034 insertions(+), 1034 deletions(-)



From xen-devel-bounces@lists.xenproject.org Wed Apr 02 04:10:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 02 Apr 2025 04:10:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.935098.1336575 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzpQr-0004uv-Fg; Wed, 02 Apr 2025 04:10:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 935098.1336575; Wed, 02 Apr 2025 04:10: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 1tzpQr-0004uo-C3; Wed, 02 Apr 2025 04:10:29 +0000
Received: by outflank-mailman (input) for mailman id 935098;
 Wed, 02 Apr 2025 04:10: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=4Wck=WU=kernel.org=mingo@srs-se1.protection.inumbo.net>)
 id 1tzpQq-0004ui-CH
 for xen-devel@lists.xenproject.org; Wed, 02 Apr 2025 04:10:28 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6765d36e-0f78-11f0-9ffb-bf95429c2676;
 Wed, 02 Apr 2025 06:10:26 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id DEDAD61130;
 Wed,  2 Apr 2025 04:10:17 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3BD29C4CEE9;
 Wed,  2 Apr 2025 04:10:15 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6765d36e-0f78-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1743567024;
	bh=I0s5Gv1mQHqnKIzWxsoxCEERoVHvYzeckwE8nOas3VU=;
	h=Date:From:To:Cc:Subject:References:In-Reply-To:From;
	b=TnGYyG5PegnZexH78EkVEZhjl67pWL7sXIuankw0lLUoS6l525yDJb1k2Y991Swzi
	 Y/BQdn5EKeOPY4iCMiCsl/wcs58dUo6w4xmkNpQPl13ChnxQG34bUHyTmZ9oI5i9zj
	 GXNesFcifbImdVA7Krak7NrblCx3xnxnf0NZrjadpmZUOlSF3sDsu4Wqsh/OKamc5N
	 +/zpZVi9YHfAGYahd4Ce8z4sLXldFsNZWZ5Nqw2T1fjxJ8DAvB6m9Rtz/uEQMlDmh/
	 IRy6AIGMdjxGih5ykPwxvU4bKYE7f4SM5B+pULQxCAmH41LRub4Yb6OVvdI2LbooM3
	 g8DLjexGSgPew==
Date: Wed, 2 Apr 2025 06:10:12 +0200
From: Ingo Molnar <mingo@kernel.org>
To: Xin Li <xin@zytor.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>, linux-kernel@vger.kernel.org,
	linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
	virtualization@lists.linux.dev, linux-edac@vger.kernel.org,
	kvm@vger.kernel.org, xen-devel@lists.xenproject.org,
	linux-ide@vger.kernel.org, linux-pm@vger.kernel.org,
	bpf@vger.kernel.org, llvm@lists.linux.dev, tglx@linutronix.de,
	mingo@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com,
	x86@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com,
	peterz@infradead.org, acme@kernel.org, namhyung@kernel.org,
	mark.rutland@arm.com, alexander.shishkin@linux.intel.com,
	jolsa@kernel.org, irogers@google.com, adrian.hunter@intel.com,
	kan.liang@linux.intel.com, wei.liu@kernel.org,
	ajay.kaher@broadcom.com, alexey.amakhalov@broadcom.com,
	bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
	pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
	luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
	haiyangz@microsoft.com, decui@microsoft.com,
	Linus Torvalds <torvalds@linux-foundation.org>
Subject: Re: [RFC PATCH v1 01/15] x86/msr: Replace __wrmsr() with
 native_wrmsrl()
Message-ID: <Z-y4pGxgiP55lpOj@gmail.com>
References: <20250331082251.3171276-1-xin@zytor.com>
 <20250331082251.3171276-2-xin@zytor.com>
 <Z-pruogreCuU66wm@gmail.com>
 <9D15DE81-2E68-4FCD-A133-4963602E18C9@zytor.com>
 <Z-ubVFyoOzwKhI53@gmail.com>
 <7a503d55-db41-42da-8133-4a3dbbd36c7e@zytor.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <7a503d55-db41-42da-8133-4a3dbbd36c7e@zytor.com>


* Xin Li <xin@zytor.com> wrote:

> Hi Ingo,
> 
> Is this branch public?
> 
> I wanted to rebase on it and then incooperate your review comments, but
> couldn't find the branch.

Yeah, I moved it over to:

  git://git.kernel.org/pub/scm/linux/kernel/git/mingo/tip.git WIP.x86/msr

Thanks,

	Ingo


From xen-devel-bounces@lists.xenproject.org Wed Apr 02 04:58:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 02 Apr 2025 04:58:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.935111.1336585 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzqB9-0007C2-SZ; Wed, 02 Apr 2025 04:58:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 935111.1336585; Wed, 02 Apr 2025 04: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 1tzqB9-0007Bv-OZ; Wed, 02 Apr 2025 04:58:19 +0000
Received: by outflank-mailman (input) for mailman id 935111;
 Wed, 02 Apr 2025 04:58: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=w5pF=WU=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1tzqB8-0007Bn-Nz
 for xen-devel@lists.xenproject.org; Wed, 02 Apr 2025 04:58:19 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 14a6789f-0f7f-11f0-9ffb-bf95429c2676;
 Wed, 02 Apr 2025 06:58:15 +0200 (CEST)
Received: from [192.168.7.202] ([71.202.166.45]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 5324vV334074560
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NO);
 Tue, 1 Apr 2025 21:57:32 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 14a6789f-0f7f-11f0-9ffb-bf95429c2676
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 5324vV334074560
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025032001; t=1743569855;
	bh=dP9zemrGBwQsO7PTwDde7OdOBV5enCnih/h0UjXSaBY=;
	h=Date:Subject:To:Cc:References:From:In-Reply-To:From;
	b=KgWEvIDk0ptJ+2Le7Mljabnd1tBAvTAd/OvynSGx3lkb8s5fLKNxnDaj/u6UOdm7W
	 +vrd3NNd0O6rV4BrlX3+iTxEb+jQH1rTuOJUcJicRl6Z5aajvTac/lcdNUGieGqjjX
	 JSlO+qiJtqShYTz1ktaVl5/AEupYKCdX1Vrjn9eBhZPMm+kj1KbCioask+G0OE5dak
	 XkwL1uVpPyRsdjk5rXoZkjb1lPz4F5EDEJvOXCJXyv6CyddNA3AKO8tKk5NZ4l3PNj
	 cc4XoBuOZEJzMmYpZNWg/T2fgE69DPZZ1BoWAegBH6U0jZ4x2DVCYEdvlHUn9gNB5t
	 CzEyh2X4dfeiA==
Message-ID: <7f76e23e-45a9-4e9d-b792-02da9e6deee5@zytor.com>
Date: Tue, 1 Apr 2025 21:57:31 -0700
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH v1 01/15] x86/msr: Replace __wrmsr() with
 native_wrmsrl()
To: Ingo Molnar <mingo@kernel.org>
Cc: "H. Peter Anvin" <hpa@zytor.com>, linux-kernel@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-edac@vger.kernel.org,
        kvm@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-ide@vger.kernel.org, linux-pm@vger.kernel.org,
        bpf@vger.kernel.org, llvm@lists.linux.dev, tglx@linutronix.de,
        mingo@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com,
        x86@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com,
        peterz@infradead.org, acme@kernel.org, namhyung@kernel.org,
        mark.rutland@arm.com, alexander.shishkin@linux.intel.com,
        jolsa@kernel.org, irogers@google.com, adrian.hunter@intel.com,
        kan.liang@linux.intel.com, wei.liu@kernel.org, ajay.kaher@broadcom.com,
        alexey.amakhalov@broadcom.com, bcm-kernel-feedback-list@broadcom.com,
        tony.luck@intel.com, pbonzini@redhat.com, vkuznets@redhat.com,
        seanjc@google.com, luto@kernel.org, boris.ostrovsky@oracle.com,
        kys@microsoft.com, haiyangz@microsoft.com, decui@microsoft.com,
        Linus Torvalds <torvalds@linux-foundation.org>
References: <20250331082251.3171276-1-xin@zytor.com>
 <20250331082251.3171276-2-xin@zytor.com> <Z-pruogreCuU66wm@gmail.com>
 <9D15DE81-2E68-4FCD-A133-4963602E18C9@zytor.com> <Z-ubVFyoOzwKhI53@gmail.com>
 <7a503d55-db41-42da-8133-4a3dbbd36c7e@zytor.com> <Z-y4pGxgiP55lpOj@gmail.com>
Content-Language: en-US
From: Xin Li <xin@zytor.com>
Autocrypt: addr=xin@zytor.com; keydata=
 xsDNBGUPz1cBDACS/9yOJGojBFPxFt0OfTWuMl0uSgpwk37uRrFPTTLw4BaxhlFL0bjs6q+0
 2OfG34R+a0ZCuj5c9vggUMoOLdDyA7yPVAJU0OX6lqpg6z/kyQg3t4jvajG6aCgwSDx5Kzg5
 Rj3AXl8k2wb0jdqRB4RvaOPFiHNGgXCs5Pkux/qr0laeFIpzMKMootGa4kfURgPhRzUaM1vy
 bsMsL8vpJtGUmitrSqe5dVNBH00whLtPFM7IbzKURPUOkRRiusFAsw0a1ztCgoFczq6VfAVu
 raTye0L/VXwZd+aGi401V2tLsAHxxckRi9p3mc0jExPc60joK+aZPy6amwSCy5kAJ/AboYtY
 VmKIGKx1yx8POy6m+1lZ8C0q9b8eJ8kWPAR78PgT37FQWKYS1uAroG2wLdK7FiIEpPhCD+zH
 wlslo2ETbdKjrLIPNehQCOWrT32k8vFNEMLP5G/mmjfNj5sEf3IOKgMTMVl9AFjsINLHcxEQ
 6T8nGbX/n3msP6A36FDfdSEAEQEAAc0WWGluIExpIDx4aW5Aenl0b3IuY29tPsLBDQQTAQgA
 NxYhBIUq/WFSDTiOvUIqv2u9DlcdrjdRBQJlD89XBQkFo5qAAhsDBAsJCAcFFQgJCgsFFgID
 AQAACgkQa70OVx2uN1HUpgv/cM2fsFCQodLArMTX5nt9yqAWgA5t1srri6EgS8W3F+3Kitge
 tYTBKu6j5BXuXaX3vyfCm+zajDJN77JHuYnpcKKr13VcZi1Swv6Jx1u0II8DOmoDYLb1Q2ZW
 v83W55fOWJ2g72x/UjVJBQ0sVjAngazU3ckc0TeNQlkcpSVGa/qBIHLfZraWtdrNAQT4A1fa
 sWGuJrChBFhtKbYXbUCu9AoYmmbQnsx2EWoJy3h7OjtfFapJbPZql+no5AJ3Mk9eE5oWyLH+
 QWqtOeJM7kKvn/dBudokFSNhDUw06e7EoVPSJyUIMbYtUO7g2+Atu44G/EPP0yV0J4lRO6EA
 wYRXff7+I1jIWEHpj5EFVYO6SmBg7zF2illHEW31JAPtdDLDHYcZDfS41caEKOQIPsdzQkaQ
 oW2hchcjcMPAfyhhRzUpVHLPxLCetP8vrVhTvnaZUo0xaVYb3+wjP+D5j/3+hwblu2agPsaE
 vgVbZ8Fx3TUxUPCAdr/p73DGg57oHjgezsDNBGUPz1gBDAD4Mg7hMFRQqlzotcNSxatlAQNL
 MadLfUTFz8wUUa21LPLrHBkUwm8RujehJrzcVbPYwPXIO0uyL/F///CogMNx7Iwo6by43KOy
 g89wVFhyy237EY76j1lVfLzcMYmjBoTH95fJC/lVb5Whxil6KjSN/R/y3jfG1dPXfwAuZ/4N
 cMoOslWkfZKJeEut5aZTRepKKF54T5r49H9F7OFLyxrC/uI9UDttWqMxcWyCkHh0v1Di8176
 jjYRNTrGEfYfGxSp+3jYL3PoNceIMkqM9haXjjGl0W1B4BidK1LVYBNov0rTEzyr0a1riUrp
 Qk+6z/LHxCM9lFFXnqH7KWeToTOPQebD2B/Ah5CZlft41i8L6LOF/LCuDBuYlu/fI2nuCc8d
 m4wwtkou1Y/kIwbEsE/6RQwRXUZhzO6llfoN96Fczr/RwvPIK5SVMixqWq4QGFAyK0m/1ap4
 bhIRrdCLVQcgU4glo17vqfEaRcTW5SgX+pGs4KIPPBE5J/ABD6pBnUUAEQEAAcLA/AQYAQgA
 JhYhBIUq/WFSDTiOvUIqv2u9DlcdrjdRBQJlD89ZBQkFo5qAAhsMAAoJEGu9DlcdrjdR4C0L
 /RcjolEjoZW8VsyxWtXazQPnaRvzZ4vhmGOsCPr2BPtMlSwDzTlri8BBG1/3t/DNK4JLuwEj
 OAIE3fkkm+UG4Kjud6aNeraDI52DRVCSx6xff3bjmJsJJMb12mWglN6LjdF6K+PE+OTJUh2F
 dOhslN5C2kgl0dvUuevwMgQF3IljLmi/6APKYJHjkJpu1E6luZec/lRbetHuNFtbh3xgFIJx
 2RpgVDP4xB3f8r0I+y6ua+p7fgOjDLyoFjubRGed0Be45JJQEn7A3CSb6Xu7NYobnxfkwAGZ
 Q81a2XtvNS7Aj6NWVoOQB5KbM4yosO5+Me1V1SkX2jlnn26JPEvbV3KRFcwV5RnDxm4OQTSk
 PYbAkjBbm+tuJ/Sm+5Yp5T/BnKz21FoCS8uvTiziHj2H7Cuekn6F8EYhegONm+RVg3vikOpn
 gao85i4HwQTK9/D1wgJIQkdwWXVMZ6q/OALaBp82vQ2U9sjTyFXgDjglgh00VRAHP7u1Rcu4
 l75w1xInsg==
In-Reply-To: <Z-y4pGxgiP55lpOj@gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 4/1/2025 9:10 PM, Ingo Molnar wrote:
> Yeah, I moved it over to:
> 
>    git://git.kernel.org/pub/scm/linux/kernel/git/mingo/tip.git WIP.x86/msr

On it now.

Thanks!
     Xin


From xen-devel-bounces@lists.xenproject.org Wed Apr 02 06:18:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 02 Apr 2025 06:18:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.935129.1336595 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzrQi-0000MO-DP; Wed, 02 Apr 2025 06:18:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 935129.1336595; Wed, 02 Apr 2025 06:18:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzrQi-0000MH-A8; Wed, 02 Apr 2025 06:18:28 +0000
Received: by outflank-mailman (input) for mailman id 935129;
 Wed, 02 Apr 2025 06:18:27 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=E7/M=WU=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1tzrQh-0000MB-6Q
 for xen-devel@lists.xenproject.org; Wed, 02 Apr 2025 06:18:27 +0000
Received: from EUR05-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur05on20614.outbound.protection.outlook.com
 [2a01:111:f403:2613::614])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 491c8c42-0f8a-11f0-9ea7-5ba50f476ded;
 Wed, 02 Apr 2025 08:18:26 +0200 (CEST)
Received: from DB9PR05CA0025.eurprd05.prod.outlook.com (2603:10a6:10:1da::30)
 by DBBPR08MB5978.eurprd08.prod.outlook.com (2603:10a6:10:1f5::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.52; Wed, 2 Apr
 2025 06:18:19 +0000
Received: from DU2PEPF00028D0B.eurprd03.prod.outlook.com
 (2603:10a6:10:1da:cafe::b4) by DB9PR05CA0025.outlook.office365.com
 (2603:10a6:10:1da::30) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8583.41 via Frontend Transport; Wed,
 2 Apr 2025 06:18:19 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 DU2PEPF00028D0B.mail.protection.outlook.com (10.167.242.171) with
 Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8606.22
 via Frontend Transport; Wed, 2 Apr 2025 06:18:18 +0000
Received: ("Tessian outbound 850a7d29d40b:v604");
 Wed, 02 Apr 2025 06:18:17 +0000
Received: from Lb8a02b34d2a5.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 35317DBB-D55D-44B1-9F4E-C5A2EEBC9ABE.1; 
 Wed, 02 Apr 2025 06:18:11 +0000
Received: from EUR02-DB5-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id
 Lb8a02b34d2a5.1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Wed, 02 Apr 2025 06:18:10 +0000
Received: from DB9PR08MB6588.eurprd08.prod.outlook.com (2603:10a6:10:25a::24)
 by AS8PR08MB6630.eurprd08.prod.outlook.com (2603:10a6:20b:337::24)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.47; Wed, 2 Apr
 2025 06:18:06 +0000
Received: from DB9PR08MB6588.eurprd08.prod.outlook.com
 ([fe80::a8fc:ea0d:baf1:23a]) by DB9PR08MB6588.eurprd08.prod.outlook.com
 ([fe80::a8fc:ea0d:baf1:23a%7]) with mapi id 15.20.8534.048; Wed, 2 Apr 2025
 06:18: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: 491c8c42-0f8a-11f0-9ea7-5ba50f476ded
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=wmqsI2UKjOzThEu8Ng2ui8QtQlLswXS2X04N39fMWtO2sGFCeI8xXYChLBuDoJT6DJXO0vdVNa4jBDFk+pmXTFl9AYzKPFxEEVI4WR13ive15Avl+2FUFf09o9GovOlemaWSYN403ZXQBk9fAWUMYVxjJ+1b8FmjJldP+oFFGT50nDgJ9uUR0t3LXuuSxjLuEjRqWhx5EtotkE5AmY4OsEYl71w5LUZa10Ff1ds2qqIDfLJU495U3GvMdBEglq9EJOCXjtIaXnBbGViOzZQW76z2jDrSG4sjPDrxcYmQ+Jk9q6WLMsSJZ+2HU5kvKxZUVp/FKC4Dpvk4RmHvvacnxw==
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=d9u1UHOwt3q+7T/calpbkRmllY4sydNWRR7pbH0F1sQ=;
 b=xXpyR90EM2Wco/dGygqvk1WqSEnKOAJGHwbIqmJKUDXjKCosyIshDXAo62Hpt9nIxuGa8/3jErtASr/IzoNjkEgUJLI4eSXosTKVDMJP+PyhwqGipkWXV09wTd45ccR9T+BP4LQbvvWYORSErfUTAwuuJMalUN1vlutaDLbQK8OWYY9lPzZ9oXP+VBmb1rKyssvzqWWPaGbrInrQJqK7kl2jBc8ChWK5pUMMMcHxbZn8CI2T9cdbT/RyegUgJpQHyCaP6h5cDmZ+da1FWa8ThE5/L8I8KvOxjgfWbYQpdJgYOhzOi5ye3obdf7bxfq3ee3VKX2SdyM+5ZG38NFUjzQ==
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=d9u1UHOwt3q+7T/calpbkRmllY4sydNWRR7pbH0F1sQ=;
 b=Rkg9rS1i01vcewIRg/zmcsgztDQnZeuggBHCrf4ZNpvWipORkZe53SB0W+gsjbRArPtL5/iUIARLpdneVu3b+jKq18BWZrjK9+45n6bqOF9aije6oFgCpOzepA8jvGSU4lwZD8uyrhyu0TykXSS2p/SwayVnw8PKfeMUcaM/KEI=
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: 7c7716aa1fb92d11
X-TessianGatewayMetadata: sUIwyOUqhzT5OHJQyX+Z1HER1s6mD7YgbPgv2XkxsQKs+7O4VSZ7mwYcLVGvVFxjeXLI11oCmY3vUtWg3JhiGkjNqCZGmbIV6wi5pYlrzLLNBkrVn0QjGaRlZDzJKpyDAlsAnRoOd5DDCWm0+YJrw8moMnbNhdfKpkOwet5QzFA=
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=PpUjKaOVffTMjgIUJ4IEUdi3fUeox9EXsNoiBX6feGvaZ6QtTaRVJmkIShVsT7zxesYUdfrAE23p0L550RjyPRpF5IJEe/CWxk6YOd9MMrLeXe1jcT5V5sxIaJeVBiFuSGFOty5KHbuWNHCBbUpnPnbGz8ldkpjQqkO7dRGrFR718j4n+uk1VfaGpzDpc0E2V1WI0hW504hXybj7s1CRdBwTlxZ6b4KIeVnaN3J5PWK6+oVI4kHIe9c6k/KP16ZGQ6jc3zFBnc1xG7vQmTU8v2Wb8CDY9iBTaxlbXAs/F1s4vlwwvwus/ydlAFr6ZM/xVi+4TRoKdxdtWmgYW4UoBw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=d9u1UHOwt3q+7T/calpbkRmllY4sydNWRR7pbH0F1sQ=;
 b=LeJQWIMZbF4Jl39qFj1FOgqfY+TgNorhqZ7Wgcrp9paSQ9+EOG9dGMi9L7ggjaFjTIAVfRbB47LaCANGgNbfYI3HcEaJbkXn7g+gYf/wXjtBrb+Ij1sqyxspTOMg9bHTMWxjSL2qNQPcWVXsWWOh3qOkBtVx0Zy94dVEWM2IugsA2T8vk121SgXfy4SZ4fXxWpy3qNmHdQbGuJQxDGOeUSSNjL2H2uq4jX1U8kSfSfeFshC+nZWju2yXU78Bg/5uob0WTPHdy1qgrj2218Gh6ZYeCpla7ac2n+8NzTJvR5IfsP81k4jEaZIopNL6S+VvqMYY0K8IOnsl3mGFRVDglw==
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=d9u1UHOwt3q+7T/calpbkRmllY4sydNWRR7pbH0F1sQ=;
 b=Rkg9rS1i01vcewIRg/zmcsgztDQnZeuggBHCrf4ZNpvWipORkZe53SB0W+gsjbRArPtL5/iUIARLpdneVu3b+jKq18BWZrjK9+45n6bqOF9aije6oFgCpOzepA8jvGSU4lwZD8uyrhyu0TykXSS2p/SwayVnw8PKfeMUcaM/KEI=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: "Orzel, Michal" <Michal.Orzel@amd.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH] xen/arm: Drop process_shm_chosen()
Thread-Topic: [PATCH] xen/arm: Drop process_shm_chosen()
Thread-Index:
 AQHbouXQNh7nKprt5k2iUHPtnXy/N7OOxVgAgAAX+QCAAAdEAIAACRaAgAAIxYCAAA3XgIAA496A
Date: Wed, 2 Apr 2025 06:18:05 +0000
Message-ID: <12D5AACF-7A89-43A7-A729-0F0D7AE501EB@arm.com>
References: <20250401090937.105187-1-michal.orzel@amd.com>
 <3D313BC0-75C9-4208-9067-C1F6153B3859@arm.com>
 <f7a6dd50-28d9-409b-8740-f4433f2fd72e@amd.com>
 <237153F4-56B2-40AD-A2D4-824B621D3477@arm.com>
 <25e30373-139f-4827-91e7-a2dd6e85c433@amd.com>
 <16D32474-F78A-4E50-AA96-BE96D76D95FE@arm.com>
 <f06abd4c-dcf3-4b95-ba37-82b72da1f783@amd.com>
In-Reply-To: <f06abd4c-dcf3-4b95-ba37-82b72da1f783@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.400.131.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DB9PR08MB6588:EE_|AS8PR08MB6630:EE_|DU2PEPF00028D0B:EE_|DBBPR08MB5978:EE_
X-MS-Office365-Filtering-Correlation-Id: 52b22c23-223e-47f5-8423-08dd71ae28d9
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|10070799003|366016|1800799024|38070700018;
X-Microsoft-Antispam-Message-Info-Original:
 =?us-ascii?Q?L3Pzb8h0I115EiWR/mfho21GaS1snBworCfy00iYLGhdJyBh1rWoj0T/r6cP?=
 =?us-ascii?Q?oWcwGIVEtrBkBtUNlSQWmC/JvlGAKd+zk4X9gEDNj4NmsaVXmUPG8jN/XkXZ?=
 =?us-ascii?Q?bwj6dKmqhFYNrfMP1hW7cKVA2gvbeVnryMmSpHfLc9kyzGE55G53iGza8d5/?=
 =?us-ascii?Q?zdrhZDw0u/WWvTaqQN/8s6MjtBwJm1Bi4y2L98Q6mn+6fwNXPQuazM4zX9oN?=
 =?us-ascii?Q?ltSKeH+e57eqvY4/+vBtxfpBZtRduNgUiL5VK2ipdrk/+UzshZhxPp67tbQT?=
 =?us-ascii?Q?JG2byRGF82XIFMV6KQYS0BAiIzc229Dl5pLX9wFkp62PlYP5gg+lFuMw6NTY?=
 =?us-ascii?Q?DMYL9xeY9WBO183Hl4HmmYPu2mGwvq43lU4CXc80Tqg1cfjjHWDIpdde9Orv?=
 =?us-ascii?Q?Zik8KebSBdeLORuQxFpghBLWypE6ApWjtlXOncbVOoqDEo9YdvGuTKqQg6Qa?=
 =?us-ascii?Q?F7rEnoKXsXp9RZTt4QByL9VWr49u3ueMVid8P414pNGoCu5A93U9JtSDMu8X?=
 =?us-ascii?Q?gzU/jfnmjJKR0FlIBNvb7KXq2w2GVPwOySDCaYy5XHgGDr10uUGeuoD+Ok4/?=
 =?us-ascii?Q?ClJOj72dimOzbkFtJ9wn6Ha2vhj+Dg+xgHtpZL38tcJCWQ+MX3NHhIqOcF9X?=
 =?us-ascii?Q?ceemCgIa3bDrvN9JBDXtFNF7/JPy43FJxxWmi8APYNNV79xB+UPPEb6nM3gy?=
 =?us-ascii?Q?/sEHDjR2wz6reyLurfUbWPu6lAQnGJEuPjXKBSSNUvUbm1UqqfmeZrk10V+t?=
 =?us-ascii?Q?6hgWIY87XfB45BneQ2s7v2qKHA8qTTGDNVEMszALdZ1ErxaYXTpJq85Q/+jR?=
 =?us-ascii?Q?0AmmlLm6Sela7JRs2VnxjUBSI2HDBwovuSnYDFc0zOulcgI5jsr+zA1ymst5?=
 =?us-ascii?Q?8gjB4YjDZaieVHmts7q+FR2ml4ZAeK8Q8lotnqKBd5X2wHEa5VVtVWQ/SNE8?=
 =?us-ascii?Q?ux4yvMNVAOvNstDfMz5TgXfdKt3rdb8ThpM58e5UEUtm01ZUbvG9lEoj5HBI?=
 =?us-ascii?Q?aOQopuxSwV/Xchoy7uM1gbvakptMt3ZUqbdvMEc/n14r7zTiW3L6VsHuGK8I?=
 =?us-ascii?Q?QGnbPUgponEotYYs7yQkkswcPQ0fYSO4VikVYmrEVIdJ9Nnx2BHx8T9TxvLE?=
 =?us-ascii?Q?JmuX53mlpstHAznnofdfe/7Y4tyFWC2uMT1EzHv3+RgbAS7oHSg3T1I7ylX6?=
 =?us-ascii?Q?6fIVh9fFIY9MrL6fTVcte7JVxVy8QCZRBFHf3wYdNdW0jBdOYufCJ+reUors?=
 =?us-ascii?Q?V4nzlOPcyuEFyyeWOLOQGeKEtcK3Vd7N4w4cUPoghVKE2tW8eJ2n1ci6FeKt?=
 =?us-ascii?Q?/vPrPHDuNwps87GW9k5PABEi0CDxCD8DMCs6e/aI9Uun65ta1jB++PY1xuz4?=
 =?us-ascii?Q?U6uHB9MUCbQAl1VYtJzrEKW6kLG3WsvziaQ3+4hYUjczz2AJZdq0GqHPtm5a?=
 =?us-ascii?Q?MvsgmpmjedL1beiEEYzAc5KWl/wdVswM?=
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)(10070799003)(366016)(1800799024)(38070700018);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-ID: <F760F1AADE8BB745B71190A53D97A9A5@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB6630
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:
 DU2PEPF00028D0B.eurprd03.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	216203f2-4e95-4315-e45c-08dd71ae217a
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|14060799003|36860700013|35042699022|376014|82310400026|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?MJguCp8+ZciOGDafjNccPi08YB79pn39GWeJZaZzHjGNpKM/Vtr5zFFxhueo?=
 =?us-ascii?Q?DnUzYisqQmwHMxNftQRMzc9pks9iqdDp+QsMU+I7NEP3PYh7rDlOaxIOY7H7?=
 =?us-ascii?Q?q6Fxm5OHchOG24nk+mP+nXdWrkYCyYaq6KoYVglN7tXVRYuuqdOkZFX42lGy?=
 =?us-ascii?Q?tMKOIFBCP0MFN4fIphpbXEgEixUBPIoW0iEaOITlMAumPVHjiFDCWgh2T2PP?=
 =?us-ascii?Q?35gtCt6TXqos732jtHRH5M3jpSsIRLBAKuPy+HxgNS97gz1Z3nterXYgtwV4?=
 =?us-ascii?Q?WLBw+3mu6WsJXNBSpnsn3yAHgx0FLou4mswtkjTeS1xmodPGWKkfr0m3S4cT?=
 =?us-ascii?Q?7BS5TnquAfT9h9WMl42LDUcnhFPlpAQs3tHCTEuotR+kqcjOJ8LK3Qouz2xB?=
 =?us-ascii?Q?NajNMqBIsi6NqpKrP3SG6OgrWTNiDY/Juy+yvXNvTdM4KlhjO17pQhCeSh+y?=
 =?us-ascii?Q?mqu6yzXQ825facSHFBTaQDW2D6DzbP7B0Ko8VHebaSoS4m1yE4uUDLk5bkJW?=
 =?us-ascii?Q?qsOgepwnvWh9wd/lfdYdNbzm4toS5zUnJRR2cSp1yGBdOAmxrUTG8WJrORpf?=
 =?us-ascii?Q?zZkmk+z0G2LLzdzCDOcSefDmcI2kf03kJ/Qe2MVSvtdRWzt5YN47LgeGFNVT?=
 =?us-ascii?Q?dbuRNYl2diCpCEsgGryshM5XCj8qdnM000i4oo47gJqlm3bJNxwWa/AUODUo?=
 =?us-ascii?Q?DvlIwFfah1h2U9LYfivnU4GdNxITEJv3jCEBmqkqVVx6QtiPFYf6A71f9ms4?=
 =?us-ascii?Q?qeVogGgykoGlhqeGbQTtblfjjBx1VySQ/gwjWji0SUENrHtCwcIaR0xuEvtv?=
 =?us-ascii?Q?vs7qS4UQoIso5+Ekz1OHYuU388enCeU3EMElCqEkgJP7pfAsjIbTIqJJ5a9U?=
 =?us-ascii?Q?+YbjiO0sIULwvN1llAWsy02mlwXkKXg1lsP5/+1sflYjTSY8HWJMiM9NN/fQ?=
 =?us-ascii?Q?B0pF0n4d3jlN/VyIWAtFfoGdD0n7HaHI7MNcHcLmFkITXQYsOtQyxhS/ONw7?=
 =?us-ascii?Q?5gCanIjPYYIx1D94Mlikhuo1ERrTc07uX0PVTBEi9WI1IaOBBg9I4oqhQUlk?=
 =?us-ascii?Q?uIwIp5TUtexfLtoFzhkIa16vVpWHazOX9YaIzHftwkvPlRgUq6H618xg2qJi?=
 =?us-ascii?Q?q6wM83hdTzB5rM64axoMpITbFhxkEOLoWZcdtANo5fXCc+sWI8mC2Dy5UNIa?=
 =?us-ascii?Q?XLol5gt56p9KziWFLeTCmIRH3di3eOkbHjWELMbCo674IEqOVAv4ZPZNtuyn?=
 =?us-ascii?Q?RXfGRKqNsCrAmQpNIDZXPZ2p1Sy5qDQgKdVHEf0Bl5aMHGr/k5jQfnftLqJS?=
 =?us-ascii?Q?/JdLzHNIrLztDW6WckvBxE2SdAPJr0Wzdp3f3G30p0fHIxbpG+4MwnDB16PH?=
 =?us-ascii?Q?Y09wikG8vB/l84dirmppzh0Dt5vAurZscaiP4kpE5NvKaHO9hc0YiP1eb8ck?=
 =?us-ascii?Q?aMfVzdAH9w/gDJ6AkrVIh7aO/JM6/mnucGbA8URBryMOCup7Q2LAwQoAPwZx?=
 =?us-ascii?Q?1cuIWCBGVQcV7lU=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)(36860700013)(35042699022)(376014)(82310400026)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Apr 2025 06:18:18.0070
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 52b22c23-223e-47f5-8423-08dd71ae28d9
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:
	DU2PEPF00028D0B.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR08MB5978

Hi Michal,

> On 1 Apr 2025, at 18:42, Orzel, Michal <Michal.Orzel@amd.com> wrote:
>=20
>=20
>=20
> On 01/04/2025 17:53, Bertrand Marquis wrote:
>>=20
>>=20
>> Hi Michal,
>>=20
>>> On 1 Apr 2025, at 17:21, Orzel, Michal <michal.orzel@amd.com> wrote:
>>>=20
>>>=20
>>>=20
>>> On 01/04/2025 16:49, Bertrand Marquis wrote:
>>>>=20
>>>>=20
>>>> Hi,
>>>>=20
>>>>> On 1 Apr 2025, at 16:22, Orzel, Michal <Michal.Orzel@amd.com> wrote:
>>>>>=20
>>>>>=20
>>>>>=20
>>>>> On 01/04/2025 14:57, Bertrand Marquis wrote:
>>>>>>=20
>>>>>>=20
>>>>>> Hi Michal,
>>>>>>=20
>>>>>>> On 1 Apr 2025, at 11:09, Michal Orzel <michal.orzel@amd.com> wrote:
>>>>>>>=20
>>>>>>> There's no benefit in having process_shm_chosen() next to process_s=
hm().
>>>>>>> The former is just a helper to pass "/chosen" node to the latter fo=
r
>>>>>>> hwdom case. Drop process_shm_chosen() and instead use process_shm()
>>>>>>> passing NULL as node parameter, which will result in searching for =
and
>>>>>>> using /chosen to find shm node (the DT full path search is done in
>>>>>>> process_shm() to avoid expensive lookup if !CONFIG_STATIC_SHM). Thi=
s
>>>>>>> will simplify future handling of hw/control domain separation.
>>>>>>>=20
>>>>>>> Signed-off-by: Michal Orzel <michal.orzel@amd.com>
>>>>>>> ---
>>>>>>> xen/arch/arm/domain_build.c             |  2 +-
>>>>>>> xen/arch/arm/include/asm/static-shmem.h | 14 --------------
>>>>>>> xen/arch/arm/static-shmem.c             |  4 ++++
>>>>>>> 3 files changed, 5 insertions(+), 15 deletions(-)
>>>>>>>=20
>>>>>>> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_buil=
d.c
>>>>>>> index 2b5b4331834f..7f9e17e1de4d 100644
>>>>>>> --- a/xen/arch/arm/domain_build.c
>>>>>>> +++ b/xen/arch/arm/domain_build.c
>>>>>>> @@ -2325,7 +2325,7 @@ int __init construct_hwdom(struct kernel_info=
 *kinfo)
>>>>>>>  else
>>>>>>>      allocate_memory(d, kinfo);
>>>>>>>=20
>>>>>>> -    rc =3D process_shm_chosen(d, kinfo);
>>>>>>> +    rc =3D process_shm(d, kinfo, NULL);
>>>>>>>  if ( rc < 0 )
>>>>>>>      return rc;
>>>>>>>=20
>>>>>>> diff --git a/xen/arch/arm/include/asm/static-shmem.h b/xen/arch/arm=
/include/asm/static-shmem.h
>>>>>>> index fd0867c4f26b..94eaa9d500f9 100644
>>>>>>> --- a/xen/arch/arm/include/asm/static-shmem.h
>>>>>>> +++ b/xen/arch/arm/include/asm/static-shmem.h
>>>>>>> @@ -18,14 +18,6 @@ int make_resv_memory_node(const struct kernel_in=
fo *kinfo, int addrcells,
>>>>>>> int process_shm(struct domain *d, struct kernel_info *kinfo,
>>>>>>>              const struct dt_device_node *node);
>>>>>>>=20
>>>>>>> -static inline int process_shm_chosen(struct domain *d,
>>>>>>> -                                     struct kernel_info *kinfo)
>>>>>>> -{
>>>>>>> -    const struct dt_device_node *node =3D dt_find_node_by_path("/c=
hosen");
>>>>>>> -
>>>>>>> -    return process_shm(d, kinfo, node);
>>>>>>> -}
>>>>>>> -
>>>>>>> int process_shm_node(const void *fdt, int node, uint32_t address_ce=
lls,
>>>>>>>                   uint32_t size_cells);
>>>>>>>=20
>>>>>>> @@ -74,12 +66,6 @@ static inline int process_shm(struct domain *d, =
struct kernel_info *kinfo,
>>>>>>>  return 0;
>>>>>>> }
>>>>>>>=20
>>>>>>> -static inline int process_shm_chosen(struct domain *d,
>>>>>>> -                                     struct kernel_info *kinfo)
>>>>>>> -{
>>>>>>> -    return 0;
>>>>>>> -}
>>>>>>> -
>>>>>>> static inline void init_sharedmem_pages(void) {};
>>>>>>>=20
>>>>>>> static inline int remove_shm_from_rangeset(const struct kernel_info=
 *kinfo,
>>>>>>> diff --git a/xen/arch/arm/static-shmem.c b/xen/arch/arm/static-shme=
m.c
>>>>>>> index c74fa13d4847..cda90105923d 100644
>>>>>>> --- a/xen/arch/arm/static-shmem.c
>>>>>>> +++ b/xen/arch/arm/static-shmem.c
>>>>>>> @@ -297,6 +297,10 @@ int __init process_shm(struct domain *d, struc=
t kernel_info *kinfo,
>>>>>>> {
>>>>>>>  struct dt_device_node *shm_node;
>>>>>>>=20
>>>>>>> +    /* Hwdom case - shm node under /chosen */
>>>>>>> +    if ( !node )
>>>>>>> +        node =3D dt_find_node_by_path("/chosen");
>>>>>>> +
>>>>>>=20
>>>>>> I would have 2 questions here:
>>>>>> - what if a NULL pointer is passed, wouldn't you wrongly look in the=
 main device tree ?
>>>>> Do you mean from hwdom or domU path? In the former it is expected. In=
 the latter
>>>>> it would be a bug given that there are several dozens of things that =
operate on
>>>>> this node being a /chosen/domU@X node before we pass node to process_=
shm().
>>>>>=20
>>>>>> - isn't there a NULL case to be handled if dt_find_node_by_path does=
 not find a result ?
>>>>> It wasn't validated before this change. It would be catched in early =
boot code
>>>>> so no worries.
>>>>=20
>>>> Then an ASSERT on NULL would be good.
>>> See below.
>>>=20
>>>>=20
>>>>>=20
>>>>>>=20
>>>>>> Couldn't the condition also check for the domain to be the hwdom ?
>>>>> I could although we have so many /chosen and hwdom asserts in the tre=
e in the
>>>>> dom0 creation that I find it not necessary.
>>>>=20
>>>> There are never to many asserts but ok :-)
>>>>=20
>>>> With an ASSERT added for the NULL case you can add my R-b.
>>> :(
>>> So you still want to put ASSERT for a case where host DT does not have =
/chosen
>>> node. I'd like to talk you to drop this idea. Normally I'm in favor of =
using
>>> ASSERTs but not for so obvious violations like missing /chosen.
>>=20
>> I am not quite sure why you do not want an assert here.
>> Reading the code the first that comes to mind is "what if this is still =
NULL after"
>> which would be clearly something no expected if someone sees an assert.
>>=20
>> Seeing the place where it is, that would not impact performance in any w=
ay.
>> So why not adding it ?
>>=20
>>>=20
>>> /chosen node is so crucial for Xen on Arm functioning that a lot of thi=
ngs would
>>> simply fail a lot  earlier than a point where we call process_shm() at =
the end
>>> (almost) of hwdom creation. There would be no modules, so the first exa=
mple that
>>> comes to my head is panic due to no kernel which happens way before pro=
cess_shm().
>>>=20
>>=20
>> Sure you might be right, what if something bypass this due to efi boot o=
r acpi boot and the
>> code comes down here ?
>>=20
>> Even it might be true now, this would make sure that no change in the co=
de is changing this.
>>=20
>> Anyway i will not argue on that for to long as it is kind of a matter of=
 taste.
>>=20
>> So feel free to put my acked-by without the assert.
> You gave me a reason to scan the code and I realized that in ACPI case, i=
f
> STATIC_SHM is enabled, it triggers a bug in process_shm_chosen. So, you w=
ere
> right and we found a latent bug that is not related to this series. But m=
aybe it
> would want to be handled as separate fix before the process_shm_chosen dr=
op?

Nice at least this was useful, and it also means that there are never to mu=
ch asserts :-)

I would suggest to resubmit this patch on top of an other one fixing the la=
tent issue to
make sure everything is merged in the right order but it is up to you as yo=
u will probably=20
be the one commiting both patches anyway.

Cheers
Bertrand

>=20
> ~Michal




From xen-devel-bounces@lists.xenproject.org Wed Apr 02 07:38:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 02 Apr 2025 07:38:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.935151.1336604 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzsfu-0001PH-3y; Wed, 02 Apr 2025 07:38:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 935151.1336604; Wed, 02 Apr 2025 07:38: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 1tzsfu-0001PA-1A; Wed, 02 Apr 2025 07:38:14 +0000
Received: by outflank-mailman (input) for mailman id 935151;
 Wed, 02 Apr 2025 07:38: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=trQc=WU=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1tzsfr-0001P2-Jo
 for xen-devel@lists.xenproject.org; Wed, 02 Apr 2025 07:38:11 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on2060b.outbound.protection.outlook.com
 [2a01:111:f403:2412::60b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6a303fb4-0f95-11f0-9ffb-bf95429c2676;
 Wed, 02 Apr 2025 09:38:07 +0200 (CEST)
Received: from BN9PR12MB5273.namprd12.prod.outlook.com (2603:10b6:408:11e::22)
 by DM3PR12MB9389.namprd12.prod.outlook.com (2603:10b6:0:46::9) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.8583.41; Wed, 2 Apr 2025 07:38:03 +0000
Received: from BN9PR12MB5273.namprd12.prod.outlook.com
 ([fe80::cf66:58ab:47be:4b13]) by BN9PR12MB5273.namprd12.prod.outlook.com
 ([fe80::cf66:58ab:47be:4b13%5]) with mapi id 15.20.8534.045; Wed, 2 Apr 2025
 07:38: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: 6a303fb4-0f95-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=kpSgeOZXlWi0/AcEeGp/8uX/HbjggVNutRrH+SFnW/yVjaZywmRZ17SeCWZkLWZB6srg1K8Lxozl7A1DeNNOwx5qu9RCU/fQbQfL/gGWqEDU7R4Q32fjiMYFpETQb42PVXsC6npt1YUZK7Xx2pp8xryIg8nqTakV9kEFtr50kisHxE7hCzEdShJx6YzKjjtHmKoNDhApWd1XKw36OWOmBv9DvEj2R+27t3oWohCjLGBNkA2eiMvuUy7u8VXGdzS1U1iIm7Sf21yQJ5H5Czbfejt69DtvrhqgIePjcqEafOF1IJF5UPvmz60UdlupjzNahzy+FByazJNb1DKkl0lurg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-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/tkTIv1dVYgEVatHX2S6NjEjl8Sxvdc+7KmIpk3lzo=;
 b=eaZ4r04BglBKxRUF0lmTTww2LIbwIp/RJfblGaW76HxoPDs081+3M6KpYSwjze2FcEHyJAj5BR60tjEYGRSqLAEJU4UyyIhfRuUf6F9sI/x1zdA8AtdHT5lb/rwOE7g7tLKVoObwcjMEPtU9QgHtAUBBqn6XguLYxnY0laybogQt9H6X54v0OyPx7sWc1SVwKVcJDwfSOGDEOSiyeurWV/17dsFzauBLyKqKx+8/ExotJamDj9ZXJDs6g0Jpxfodf7cD6ITm8Xmmb6IoAbEO3b8VGV+D5hlQdqVLDHekeqiHdpnGunqTgffRaWa+hXEsssCJwxuZfaxtLSdJxtmS7A==
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=l/tkTIv1dVYgEVatHX2S6NjEjl8Sxvdc+7KmIpk3lzo=;
 b=W6attACsyhSBHGZRqF4B63vY4lFY1pfqMMr9U9E1jvGuSWwQXrchFd2y1wx2wB+TLv34jAqvV4Veau81R4EeG/bjPYVoBkolmmQXBY3xJSoo+sR2WVbok3btbBd61LB4xDZp2T66N4ACvLFw7rXewuDyJm00qvWbvAjbJgFxiiI=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <4d9cc961-020e-42ec-8302-031dd93bb6ed@amd.com>
Date: Wed, 2 Apr 2025 09:38:00 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/arm: Drop process_shm_chosen()
To: Bertrand Marquis <Bertrand.Marquis@arm.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <20250401090937.105187-1-michal.orzel@amd.com>
 <3D313BC0-75C9-4208-9067-C1F6153B3859@arm.com>
 <f7a6dd50-28d9-409b-8740-f4433f2fd72e@amd.com>
 <237153F4-56B2-40AD-A2D4-824B621D3477@arm.com>
 <25e30373-139f-4827-91e7-a2dd6e85c433@amd.com>
 <16D32474-F78A-4E50-AA96-BE96D76D95FE@arm.com>
 <f06abd4c-dcf3-4b95-ba37-82b72da1f783@amd.com>
 <12D5AACF-7A89-43A7-A729-0F0D7AE501EB@arm.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <12D5AACF-7A89-43A7-A729-0F0D7AE501EB@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO4P265CA0250.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:350::12) To BN9PR12MB5273.namprd12.prod.outlook.com
 (2603:10b6:408:11e::22)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN9PR12MB5273:EE_|DM3PR12MB9389:EE_
X-MS-Office365-Filtering-Correlation-Id: f21f4a02-444f-4b9f-1c4c-08dd71b94cce
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?dEZFWXBZdWlEYlpsekxuTEhybGRQZlVjYSszR2lCQnR1R1VVbitabHYza3dk?=
 =?utf-8?B?OUpVeU5ZUGpkTjUxc1BrOVpsUjBKSGgvSTVpQXM1Q01yZ0lTN3pFRWhsa3hn?=
 =?utf-8?B?WVdQNGNUQW96SkovUGc1eENXTHlSUjBzTWRWTkhzSld4STlFYjh0eDFWb3ox?=
 =?utf-8?B?QTJvZGFaUGw2dWZLRjVudHBDUm0rUEEwYnJxUlpVeWRkekx6ZTBQUGRUakVH?=
 =?utf-8?B?UTlTRkdJRUFRU3FRRXNCcjhmeXl3MHpqbmlZNG1ESStGOW1ESEYwdGQxNEFn?=
 =?utf-8?B?c09LUFgxcGFvTjBlNE1NU2M0YzdDSHZSelpaK0xuZ3BiSHlqbnUydVJXK29X?=
 =?utf-8?B?US9JWU43MHVHUHR1YlFPTVVQQU5BMEliYmtMZGVOdEJ2d2lGZzMrck5MU3Jw?=
 =?utf-8?B?d0NOcjJ3NDdDUTVGemJ6bEtxNXpJSm1KQjIwSHpNM2ZES2toZzNPUFdnSkJZ?=
 =?utf-8?B?T0ExTDFFNXR2WDlzTm1HckZsQXczbFk3dm44VFcrb1ByeW9YaWZJT3RGSmN1?=
 =?utf-8?B?bi9SQU94WjRPUkFnRThDK2VWMkFWS25jeEFURndSSmVNdmozR0RnNW9EdHIx?=
 =?utf-8?B?SzVMNUpRY2ZUUVZ2SjlwOGdaZE83ZGU0d3lSSnRZT0p4ZFRmYTNLWVF6UHg4?=
 =?utf-8?B?QXZhMnFIZGhhei9QUlhwS00vdmVyYzFuaGl1UUlzQTFqM2hGSmdWTlJSa00z?=
 =?utf-8?B?dlhKbFdQZnY0aVRSSTBTK05Ydm9QdDQwUjUwUWtqbHJqWUlqZEtVaCtQbGhx?=
 =?utf-8?B?cHo4czl6RWYwdWwrNzlaZFN2TDJtbEREeWJXQzFzb0dSeXhsMU9CV1J3Wmhr?=
 =?utf-8?B?aGc3YVN1Uk1TNE4rc05pZGxseG8rWFlJK3MvNTV1RThOM040VEFNWThRR1Jl?=
 =?utf-8?B?TEdGQnBrcU9MZzhZSW5JamEvWVNKUFRMZDQwaVMrMmFQWEY0d3FOSW5hcyt4?=
 =?utf-8?B?U1BLd0pyMXo3Y0JuSUQrL1hIMVlERmUwY1BHSVhrZVNTTExWOVo0VXpQWmtV?=
 =?utf-8?B?N3kyRjY2Y0kwdVVKUG9rb25Sbm4yZHRuaGVXbnRuTTZSbVF4ZkdGcTFzMEN5?=
 =?utf-8?B?VkRsbUsyL2V3YjJqY3NVOFg3ZFAxVHROZzNLb0VoYm1EcVpuRnZ0NmdkVzNo?=
 =?utf-8?B?em9BMWVGU01WQlUvdW9GeDdrWFJEc2RjTGxQcURCQTF0cFZrSlUrb2s1Um9I?=
 =?utf-8?B?cndDS1M1a21DN2l6RjdvN3J5YXlrRnVDbXlrS01nUjR1Q0g4SURTWThQdUdz?=
 =?utf-8?B?SHlDT1JjMUN3TElCdkMwYnp5Yzg3cjROVU9MZENpTkc2bGEvVkYvREdveWcw?=
 =?utf-8?B?MnhuUFdld2RQZ1ZNbWs1b0d2TThicXJPWDVFUm9JUDBHeHhoUTB2NGZLZjRh?=
 =?utf-8?B?bzhNVzNobzJkdlc3eGxTNGtERVhCQVV2Nm1Yd1Y4NDRrY3ZtdFlnbkhPKzNp?=
 =?utf-8?B?Y2ZWb1l6aUdTUWNnazVKSFpvRkpRTjNvV3RXcUJmVEdJdE53TGw4VkhHa0JE?=
 =?utf-8?B?NUhWKzNJNHQrd2FkV0hQSm9Vd2VEeGs1REx0N3l1c2lmRktlZ0JRTHZ2WTFE?=
 =?utf-8?B?a25mK0hWUzhGNWk2R1l6OCtpM2E5bFhzR2hMMTlZamFBQSt1cXB1ZnhtL3VV?=
 =?utf-8?B?d2VPUUd4eSthcDU5U2ZFZFZRWm9WOXEvOWZPRDJsenRJblk0TTlTc1hSeVNl?=
 =?utf-8?B?aC9FTEJvNTRQQU4ycUtpMndNTm5yeEtMWkYyZjNyN1VZRWZNZEwwTmN6R2ZU?=
 =?utf-8?B?eWRBSGhQMXcwZWxwQU54MXJwQ0ZyaVNOUmZSUGFSU1BFUnRMVUkzMGpjK1pY?=
 =?utf-8?B?b09KREdKYms2NXM1eDgvd0V1b3VJUWdoRVgzRDI0Yzg2Y0dtWVo1cXdJUzVB?=
 =?utf-8?Q?R3BID2arsUlzG?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN9PR12MB5273.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?RURoR2I5QlBRNzFxN2diM3F5M2syRG5JeUNnT0t0SSt2WElRMGZnWUtvOEtu?=
 =?utf-8?B?OWw1emIxYnQ5L1gwYUEwWU5rUzRzK2R4aGYxdmY1Q0dRd0haYVZQR1lGTDR0?=
 =?utf-8?B?TnZwN0lYc0kwbkorZWhUMTlGSWlwSDhmZElwUXBtYzlwOVhaNUdBdkwyNEdV?=
 =?utf-8?B?MjNjQ2tEQWM5ellKMWNRaHNib0pUdW9wSlVpdFhtS2dMSTAwZmF4VndpbXI0?=
 =?utf-8?B?Vy9ib3h5ZEIzN2o2R0NjVjJ2RWRSMnhxVUQva0RvWm5JcGF1TWFPMkgyblpI?=
 =?utf-8?B?cStNOUtlRVY4UWN5dk1mV0JpaXMxZCtleTk3VElmOHdwVVQ4THBXR0NsNE1z?=
 =?utf-8?B?d2lPNWVqejJVbDhodmlhQnBOSmdPclJaTkNxVlhVREdXVGFQaWN1bTFiTE1r?=
 =?utf-8?B?T3V6V1dsR2xpUFMxUVZGZ0JFb2JGajh6TWFwSnRuNituNTRFZjJMVTJkTmFD?=
 =?utf-8?B?MDZGdzJPc3MxWGpLQ3VtazVPaklzZlI5a0dpeUZud1JWVDdhS2hYOFVyMjBO?=
 =?utf-8?B?Y1pmUGJRQlVGdml4aGFQbHdEQUNaL0gzTHp5SFFCbER2TUcxemlVRnk2RCtW?=
 =?utf-8?B?clJaZmxWNnY1c083dHlJNmY2REswNTRDZ1R4aG9MZys1Wk1vN0U0aXdIbFVT?=
 =?utf-8?B?THJYb3E5dDhZTWdkd1JiMEtIL2lYVmE5bitycG9BbGhVRVlKODlnZ0VvOHZM?=
 =?utf-8?B?R3dvM2htWjExZ3ZkZkRjYmZGYWpvUlYxK0lTbFpEeVJyQU55UmJQeUNnNDNo?=
 =?utf-8?B?QkFvdk9kVU5CbkV3RVdBSHIrZUVXN29nVDBXL2MweGMzYXR0SDNmUE42dzls?=
 =?utf-8?B?SEJvUXlJbnVWdmxVVnU3WC9HdEpwL1lMODU1T0lUSFJQM29Uc2RaTGxnMGdo?=
 =?utf-8?B?cXdiNTJJMEE0NWlVTHJjekFZdUc4MG5FdUoxaU5JV2JoT2UyT0VPMXFDT2dY?=
 =?utf-8?B?UThZdXYyKzJiWHp1ZlNYM1VSSGo0WWlFVTFsTHp5Nk1KOGo2WDAzbXlXQlFN?=
 =?utf-8?B?TThyVVlIdEp4QU5aZUFXcWtZWDB6ZmhMOGpZSGxrK00rQmRVNkE2aEJLZlds?=
 =?utf-8?B?aHcvL0x2NEYwR1JmL2VYejltUTNsd2ZhNC9ZN0d1cGdvcHI1MVg3anhENDkz?=
 =?utf-8?B?ckp3eW1yNnQ1M1QxcHZUTnRSOUNwQkZnYlVLTFZlWDg4ZjVuQWwxSmVBMWxm?=
 =?utf-8?B?bSt6SGxmeVZTOVdZV3BvUDFOb2xCVjN2S3BtVXRMUnhVQ0RwTm5nY0hzUUFp?=
 =?utf-8?B?eVpaMHhCMWxZNDEzNXNEeUxRRnV1ZjhDY09aV0tTdWdBWWkydk1rWmdrK3l2?=
 =?utf-8?B?OElLVkZ5YUQveTl2VmRSRDZhbzJlM292eGpsZVhoV01SWDFVNFY1d2V2MDZm?=
 =?utf-8?B?VmlEaGxJS29NeWRQZEJRZ2hsYmlUd2d2UVBRNFg5eEdtY2dyZGxvTDNiRm13?=
 =?utf-8?B?UFhYa3MxcHZFWEpiUWNidXFVMG1LRy9mS0FlUXZ5TEZOS245Ym96Rld3VlFJ?=
 =?utf-8?B?ditSTWdSK3VBQ3dGYmZTYlNaSU04WlQ3Qkl6N29KTWFRbnFSbXBoeVY0VVZu?=
 =?utf-8?B?eEpKSmNyNmM5Vm9GaEpKTFAwUU9pZEE5RWxZZEdyWkFEOHFyeTlhOFdwbllD?=
 =?utf-8?B?UWhhSHEyUVBwL1dEUW9hK3NpemR4MHV2U2dSZnlQWmxTR0c2L2l3WkEwRHRJ?=
 =?utf-8?B?M284ZSs1a0I2cncyNy9EbEhocWFSMFZlZHpFdnBSVnZDTjFGdXRVcGhGODJE?=
 =?utf-8?B?dnNQK2JWZVRmNDRUNlRTWUFWZlFVQU11MVpNSzBPRGJWU1JmcUtncXZDalJv?=
 =?utf-8?B?WC83UjZDbGdrT3JVTno0QkFYMXcvV1NhMkN3SDVkTGxmamZmR1I1NDQ2ZzlV?=
 =?utf-8?B?RkVIUW5PeGtNVGZRdDRxODFkWFIreHpWeVNyVzV3RVVCaFluYnRDSlpyaGlM?=
 =?utf-8?B?T0FiQlFKc2FUdTJEdlI3bnUxclpVOTNjR04xcmdqeVNRaDlwaTI5R2pWMmo5?=
 =?utf-8?B?NWZ6dEtEQkxlcjJCUklxczNUNkZOYXB2OXdCTFVjdndxamg4VTdwWk4yM0R5?=
 =?utf-8?B?cVdhNkZTR3V2S3JnTVpnQS84eGFDZ3lBbmdncFFyb0I0bkpsMlQxUWFXUXEy?=
 =?utf-8?Q?llAfoDr5wp2QVSYgkQR+DUzi8?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f21f4a02-444f-4b9f-1c4c-08dd71b94cce
X-MS-Exchange-CrossTenant-AuthSource: BN9PR12MB5273.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Apr 2025 07:38:03.0318
 (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: 8ZE6qx50XTP8aGRER959kkt1GwFlabkz9wjnIwDnOPaJ35yQR2lPKhMDhvtj6PZU
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM3PR12MB9389



On 02/04/2025 08:18, Bertrand Marquis wrote:
> 
> 
> Hi Michal,
> 
>> On 1 Apr 2025, at 18:42, Orzel, Michal <Michal.Orzel@amd.com> wrote:
>>
>>
>>
>> On 01/04/2025 17:53, Bertrand Marquis wrote:
>>>
>>>
>>> Hi Michal,
>>>
>>>> On 1 Apr 2025, at 17:21, Orzel, Michal <michal.orzel@amd.com> wrote:
>>>>
>>>>
>>>>
>>>> On 01/04/2025 16:49, Bertrand Marquis wrote:
>>>>>
>>>>>
>>>>> Hi,
>>>>>
>>>>>> On 1 Apr 2025, at 16:22, Orzel, Michal <Michal.Orzel@amd.com> wrote:
>>>>>>
>>>>>>
>>>>>>
>>>>>> On 01/04/2025 14:57, Bertrand Marquis wrote:
>>>>>>>
>>>>>>>
>>>>>>> Hi Michal,
>>>>>>>
>>>>>>>> On 1 Apr 2025, at 11:09, Michal Orzel <michal.orzel@amd.com> wrote:
>>>>>>>>
>>>>>>>> There's no benefit in having process_shm_chosen() next to process_shm().
>>>>>>>> The former is just a helper to pass "/chosen" node to the latter for
>>>>>>>> hwdom case. Drop process_shm_chosen() and instead use process_shm()
>>>>>>>> passing NULL as node parameter, which will result in searching for and
>>>>>>>> using /chosen to find shm node (the DT full path search is done in
>>>>>>>> process_shm() to avoid expensive lookup if !CONFIG_STATIC_SHM). This
>>>>>>>> will simplify future handling of hw/control domain separation.
>>>>>>>>
>>>>>>>> Signed-off-by: Michal Orzel <michal.orzel@amd.com>
>>>>>>>> ---
>>>>>>>> xen/arch/arm/domain_build.c             |  2 +-
>>>>>>>> xen/arch/arm/include/asm/static-shmem.h | 14 --------------
>>>>>>>> xen/arch/arm/static-shmem.c             |  4 ++++
>>>>>>>> 3 files changed, 5 insertions(+), 15 deletions(-)
>>>>>>>>
>>>>>>>> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
>>>>>>>> index 2b5b4331834f..7f9e17e1de4d 100644
>>>>>>>> --- a/xen/arch/arm/domain_build.c
>>>>>>>> +++ b/xen/arch/arm/domain_build.c
>>>>>>>> @@ -2325,7 +2325,7 @@ int __init construct_hwdom(struct kernel_info *kinfo)
>>>>>>>>  else
>>>>>>>>      allocate_memory(d, kinfo);
>>>>>>>>
>>>>>>>> -    rc = process_shm_chosen(d, kinfo);
>>>>>>>> +    rc = process_shm(d, kinfo, NULL);
>>>>>>>>  if ( rc < 0 )
>>>>>>>>      return rc;
>>>>>>>>
>>>>>>>> diff --git a/xen/arch/arm/include/asm/static-shmem.h b/xen/arch/arm/include/asm/static-shmem.h
>>>>>>>> index fd0867c4f26b..94eaa9d500f9 100644
>>>>>>>> --- a/xen/arch/arm/include/asm/static-shmem.h
>>>>>>>> +++ b/xen/arch/arm/include/asm/static-shmem.h
>>>>>>>> @@ -18,14 +18,6 @@ int make_resv_memory_node(const struct kernel_info *kinfo, int addrcells,
>>>>>>>> int process_shm(struct domain *d, struct kernel_info *kinfo,
>>>>>>>>              const struct dt_device_node *node);
>>>>>>>>
>>>>>>>> -static inline int process_shm_chosen(struct domain *d,
>>>>>>>> -                                     struct kernel_info *kinfo)
>>>>>>>> -{
>>>>>>>> -    const struct dt_device_node *node = dt_find_node_by_path("/chosen");
>>>>>>>> -
>>>>>>>> -    return process_shm(d, kinfo, node);
>>>>>>>> -}
>>>>>>>> -
>>>>>>>> int process_shm_node(const void *fdt, int node, uint32_t address_cells,
>>>>>>>>                   uint32_t size_cells);
>>>>>>>>
>>>>>>>> @@ -74,12 +66,6 @@ static inline int process_shm(struct domain *d, struct kernel_info *kinfo,
>>>>>>>>  return 0;
>>>>>>>> }
>>>>>>>>
>>>>>>>> -static inline int process_shm_chosen(struct domain *d,
>>>>>>>> -                                     struct kernel_info *kinfo)
>>>>>>>> -{
>>>>>>>> -    return 0;
>>>>>>>> -}
>>>>>>>> -
>>>>>>>> static inline void init_sharedmem_pages(void) {};
>>>>>>>>
>>>>>>>> static inline int remove_shm_from_rangeset(const struct kernel_info *kinfo,
>>>>>>>> diff --git a/xen/arch/arm/static-shmem.c b/xen/arch/arm/static-shmem.c
>>>>>>>> index c74fa13d4847..cda90105923d 100644
>>>>>>>> --- a/xen/arch/arm/static-shmem.c
>>>>>>>> +++ b/xen/arch/arm/static-shmem.c
>>>>>>>> @@ -297,6 +297,10 @@ int __init process_shm(struct domain *d, struct kernel_info *kinfo,
>>>>>>>> {
>>>>>>>>  struct dt_device_node *shm_node;
>>>>>>>>
>>>>>>>> +    /* Hwdom case - shm node under /chosen */
>>>>>>>> +    if ( !node )
>>>>>>>> +        node = dt_find_node_by_path("/chosen");
>>>>>>>> +
>>>>>>>
>>>>>>> I would have 2 questions here:
>>>>>>> - what if a NULL pointer is passed, wouldn't you wrongly look in the main device tree ?
>>>>>> Do you mean from hwdom or domU path? In the former it is expected. In the latter
>>>>>> it would be a bug given that there are several dozens of things that operate on
>>>>>> this node being a /chosen/domU@X node before we pass node to process_shm().
>>>>>>
>>>>>>> - isn't there a NULL case to be handled if dt_find_node_by_path does not find a result ?
>>>>>> It wasn't validated before this change. It would be catched in early boot code
>>>>>> so no worries.
>>>>>
>>>>> Then an ASSERT on NULL would be good.
>>>> See below.
>>>>
>>>>>
>>>>>>
>>>>>>>
>>>>>>> Couldn't the condition also check for the domain to be the hwdom ?
>>>>>> I could although we have so many /chosen and hwdom asserts in the tree in the
>>>>>> dom0 creation that I find it not necessary.
>>>>>
>>>>> There are never to many asserts but ok :-)
>>>>>
>>>>> With an ASSERT added for the NULL case you can add my R-b.
>>>> :(
>>>> So you still want to put ASSERT for a case where host DT does not have /chosen
>>>> node. I'd like to talk you to drop this idea. Normally I'm in favor of using
>>>> ASSERTs but not for so obvious violations like missing /chosen.
>>>
>>> I am not quite sure why you do not want an assert here.
>>> Reading the code the first that comes to mind is "what if this is still NULL after"
>>> which would be clearly something no expected if someone sees an assert.
>>>
>>> Seeing the place where it is, that would not impact performance in any way.
>>> So why not adding it ?
>>>
>>>>
>>>> /chosen node is so crucial for Xen on Arm functioning that a lot of things would
>>>> simply fail a lot  earlier than a point where we call process_shm() at the end
>>>> (almost) of hwdom creation. There would be no modules, so the first example that
>>>> comes to my head is panic due to no kernel which happens way before process_shm().
>>>>
>>>
>>> Sure you might be right, what if something bypass this due to efi boot or acpi boot and the
>>> code comes down here ?
>>>
>>> Even it might be true now, this would make sure that no change in the code is changing this.
>>>
>>> Anyway i will not argue on that for to long as it is kind of a matter of taste.
>>>
>>> So feel free to put my acked-by without the assert.
>> You gave me a reason to scan the code and I realized that in ACPI case, if
>> STATIC_SHM is enabled, it triggers a bug in process_shm_chosen. So, you were
>> right and we found a latent bug that is not related to this series. But maybe it
>> would want to be handled as separate fix before the process_shm_chosen drop?
> 
> Nice at least this was useful, and it also means that there are never to much asserts :-)
> 
> I would suggest to resubmit this patch on top of an other one fixing the latent issue to
> make sure everything is merged in the right order but it is up to you as you will probably
> be the one commiting both patches anyway.
Actually, I was a little bit imprecise. We don't need any ASSERT and my above
reasoning holds true. The problem I found is that when booting with ACPI we
don't protect call to process_shm_chosen with acpi_enabled like we do for cases
relying on DT. With ACPI enabled, we don't unflatten the host dt and host_dt is
always NULL, so it does not matter whether the host DT has or does not have
/chosen node. So we need the following fix I plan to submit separately later on
today:

-    rc = process_shm_chosen(d, kinfo);
-    if ( rc < 0 )
-        return rc;
+    if ( acpi_disabled )
+    {
+        rc = process_shm_chosen(d, kinfo);
+        if ( rc < 0 )
+            return rc;
+    }

~Michal




From xen-devel-bounces@lists.xenproject.org Wed Apr 02 07:42:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 02 Apr 2025 07:42:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.935163.1336614 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzskR-00044n-KH; Wed, 02 Apr 2025 07:42:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 935163.1336614; Wed, 02 Apr 2025 07: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 1tzskR-00044g-HY; Wed, 02 Apr 2025 07:42:55 +0000
Received: by outflank-mailman (input) for mailman id 935163;
 Wed, 02 Apr 2025 07:42: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=T645=WU=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tzskR-00044a-0g
 for xen-devel@lists.xenproject.org; Wed, 02 Apr 2025 07:42:55 +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 15c144e5-0f96-11f0-9ea7-5ba50f476ded;
 Wed, 02 Apr 2025 09:42:53 +0200 (CEST)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-43cf58eea0fso30963715e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 02 Apr 2025 00:42:53 -0700 (PDT)
Received: from [10.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-43eb60cd354sm12214545e9.18.2025.04.02.00.42.52
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 02 Apr 2025 00:42:52 -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: 15c144e5-0f96-11f0-9ea7-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743579773; x=1744184573; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=fWPwgZy4uPxSnbOoa9RRqDyhzLQm7Xl7UBB7ILiIh+s=;
        b=DPBeHvRtOd1ovih0OrHoVXpLo0LPJ6aOHc9jwpY0zHfDVFH3he2aUXu1NUI7Pb49Rz
         GhcEDHWCI1TgcIdcA426TO1JJ1YbqvanggG6KYw3uAauj6Q2rASmSKuliBDKhPp3MaNm
         JoBtZE79l8Hs6uzspv5Y8bz7dpItgvhoLiLNcgUCckuzAWcjkpBCCdNc5kwSqpUDTWMD
         QixP4W6d+5dUtIjTU0AtmIvhHH+Gd8ZoJev7/wfizgwNOYkVynafJ/P2OhXMklr2hiA0
         v1FQffbA9nMq9L6EUTtdX5XX8YucCeKS8nHhsiROs3FfQ2GuhLknuR7mqFX6uG/iFPnm
         iDrg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743579773; x=1744184573;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=fWPwgZy4uPxSnbOoa9RRqDyhzLQm7Xl7UBB7ILiIh+s=;
        b=XpwXG85wQrA/TgxoTvhBOYPQldiymq7ktwGBXY1wpmZyIWF/+OqgXxUGQWFXVbFIG1
         AN70wY0mxa3qN65V2dcdpwnH7J/vN70xEJdzZf7rxG9B3bQ8UYepwddluQbqQsbfbEBR
         sXpfAcQiWOKZVtEO4DI45ihKVuPB73sCfNvDeR/ZtCfdqSrO2jlWa7N/DTaMq+BRKzRl
         m/S0UfsWhKXTw1EWSDLYGLxrlyMVjfZnwQHOTnlh7TVQfZG/GHiI73XIm5E/gWnI4pvp
         2orF2kuITg0cj87vEQHIfTYt6mMj8Zc65G+CXKvExvgGtcQHxQsH1gyunla+nl6IdfhG
         EmVw==
X-Forwarded-Encrypted: i=1; AJvYcCXUg3EQzDa3zwUge/U5I0ttlzXYucPkHOw2k2iJkKL8mutkM0Q3vLXq4pyZXPZv0dOxbRnUX+otkI4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwEHmKdwKwAB32pWStFZHBT/Ig+i2FAzuLCMTIcGs8rMIWw4/FM
	fbs99LpoU9ayHmY3+2RXGt5OCJk/GcAooSFjRaHPMYPd7ocCj4K6DKLasEvBEQ==
X-Gm-Gg: ASbGncuysc1ZQM4iQ2DLIceDrkjmFzxMDNIHpj7f0Qvlp2M4pcvc7Z4DpdoRoXavn2J
	2H+GmDaXtWb7CPpqRRE0HK9RoNLd6DPDUY17JY4oVbHPFnBDcvmR0BcS1SMkWn+4CdYhzG5rLDt
	pt3j/5gmogBNw/IvJtKFS0sssknmKKT6DTLP3481RcHNh/6QNvCT4GTQBb6uUtJvhwrVjVfmmhJ
	AulacYQQh3XbvgHcgt/5IFWBngfbiKFo9Xd6NG0GfqcaezmOUrrUXxwVUYw9+xu6Cd7s5U6tZbw
	xO3hdJONF6DNwI2oaUiTKdHXnR1XwFZ+vJB67SlGUaV9+vMgXmYKw/1nSMxCxGnhKEldhK6JcYg
	W6OinPtKc4x0dEZ6Qcgjl3mJPLDAi1w==
X-Google-Smtp-Source: AGHT+IGZwJk5t777RePqURdDVK/oNM6a3CkoqAERT+ayQWQ8nPr6+Ov8SWZktvwslMaKkAO2VuTYgA==
X-Received: by 2002:a05:600c:4454:b0:43c:f1b8:16ad with SMTP id 5b1f17b1804b1-43ea7cdfd30mr65487915e9.30.1743579772834;
        Wed, 02 Apr 2025 00:42:52 -0700 (PDT)
Message-ID: <b51de34d-a9b5-4f8e-a26d-3772b0c9cead@suse.com>
Date: Wed, 2 Apr 2025 09:42:51 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 03/11] x86/mkreloc: use the string table to get names
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, Andrew Cooper
 <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20250401130840.72119-1-roger.pau@citrix.com>
 <20250401130840.72119-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: <20250401130840.72119-4-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 01.04.2025 15:08, Roger Pau Monne wrote:
> @@ -83,6 +111,31 @@ static unsigned int load(const char *name, int *handle,
>          exit(3);
>      }
>  
> +    if ( !string_table && pe_hdr.symbol_table )
> +    {
> +        char *strings;
> +
> +        if ( lseek(in, pe_hdr.symbol_table + pe_hdr.symbols * SYM_SIZE,
> +                   SEEK_SET) < 0 ||
> +             read(in, &string_table_size, sizeof(string_table_size)) !=
> +             sizeof(string_table_size) )
> +        {
> +            perror(name);
> +            exit(3);
> +        }
> +
> +        string_table_size -= sizeof(string_table_size);
> +        strings = malloc(string_table_size);

One more thing: Perhaps better to allocate an extra byte here, ...

> +        if ( read(in, strings, string_table_size) != string_table_size )
> +        {
> +            perror(name);
> +            exit(3);
> +        }
> +
> +        string_table = strings;
> +    }

... and then put a nul terminator at the end, just in case.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Apr 02 07:45:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 02 Apr 2025 07:45:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.935174.1336624 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzsma-0004bl-WF; Wed, 02 Apr 2025 07:45:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 935174.1336624; Wed, 02 Apr 2025 07:45: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 1tzsma-0004be-Tf; Wed, 02 Apr 2025 07:45:08 +0000
Received: by outflank-mailman (input) for mailman id 935174;
 Wed, 02 Apr 2025 07:45: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=g9bq=WU=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1tzsmZ-0004bY-Ry
 for xen-devel@lists.xenproject.org; Wed, 02 Apr 2025 07:45:08 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 647c5e72-0f96-11f0-9ffb-bf95429c2676;
 Wed, 02 Apr 2025 09:45:05 +0200 (CEST)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id D46C74EE0755;
 Wed,  2 Apr 2025 09:45:04 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 647c5e72-0f96-11f0-9ffb-bf95429c2676
Authentication-Results: bugseng.com; arc=none smtp.remote-ip=162.55.131.47
ARC-Seal: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; cv=none; t=1743579904;
	b=uU02vpy4h8VghoZIYHSZ6CsIaJoqqjd6MzPOzCVmH7qobbSSGHBcuhOpRHzKRIVN1AKk
	 7ECSP0e9qwEtJnzHrGtyiig9b8aeIfTwwZqQGJxYmvqatmCnEOAt7Oe6zvNPdLpQOGHi8
	 CBSeHC5+W7PJULcC3NkMfZpv1wOazwGn/awVM2no5R84DE+sl5FamFmuwLrdvqpmiPsYc
	 9hZOctApE1JMjfJHj3S2loB99sq/xnRTVfnEmYBTPJNG61sWZZIr2TraMg0DLx3o9Tmqo
	 AHkN/z6DG3sWXPBdo8j+ENTg8o1P045fIeiauZDYn6BGWcP86OH5+/uzwMB3+I/lGimlc
	 PgjEOfOuqAU4ivXOVVfaeOFAzjystWKQWmI1n8BpDAvVkOIxszGf8QuLy+JAHO+mJeBjP
	 1h9ACgbAAe//HoLvkRmovyCoMLfv/39NlB2cEx1ECMmyX6nen9UPQr8Etk/rcTqz8tOxa
	 xS1Zx/A94DOoXh/pQSew12E8uTfcyjopSvY3rj33P4P1nUKQJqGdV0OpH119uNiIIu89g
	 lfEwbMl0IHll66akFqEU7DMBWJ/72XL9IIMfGxvUVcaRQCsX391oVQMZ/VikyBEOnUKND
	 RNY4S5FI/xj3djBgSzCDSFG1D9pNkbOOU9Du2pj9wQ4oZtwvosOHcwIBUPzneYY=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1743579904;
	h=DKIM-Signature:MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:
	 References:Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=qhCy2CGoUJcFbZWqQcomLbijGomZjPwLRYg2MA13gfQ=;
	b=nkdUf6O3wXzgGB4Vw1ZZaRyCKnnlm3mEgKqwAWtRRjiRelNiuEPbpMgWnmAwLr+XYASG
	 LtozptuuxD+B0ag3BaswM3jUhhBzci2xcPSsoqX2UFV0gymjEOunupI7oawfp7/9kwULm
	 I9/iEwfSgjDc5paI4QRmGqgvTgyZVnW7kTpZ/AxKqL0ONWDe+4TDbtMvuGG6JlvJ+oNAB
	 NJT+fTbM3J0MBuxVFE3201vkl47f3CF1o4GqvsgHAUAeJMLf6IQg7VyhjAkvR6T2+OIkF
	 TVzAvVTdUhffOrkP9M/2peLPqIeflqeX9N0JT5DuG+cfvRItvoaM6ky3kui3b5Y+Uw1Ne
	 otWLdWHV8so7kUJ+gnHDcG14m2iN2WAdFcZD9W9LzJhL8akhKBeH96s1BXHv2ZJf4qQpc
	 zFpxcySQ/bwQWYvvpo61ES6By5h2p/6bOYfdCEA/OXkZ0zK89B7m1tdxStckm46JKW5Sy
	 xl3G6wXIbYuuw/++3+miPwbA4ExgOVhZIjNbmX2V0XpnEEAjrpCDu171UIdtJFiexIitB
	 mO2K/FpQGOVbkaibIsQZXFw9WKk1YBhvX+uswjvZ0qwHImGG+GocL7Xpp+o1idVEHshc7
	 FBSrAfRd+taq1uWUkE5RayF3Z2uZGLBfMmyzCiYhEOOywICW7G94eNJFoaywK3g=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1743579904; bh=AtGTAxW0PwrhY5qFpU+TlRRK5r826YovS/7+iYwxjFA=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=H6YVhaTdkmyX8GESw2Q2Fpz9B8uzXlbGB3eCYAmZpgclxFFaF54BTa2sWVlNULMg+
	 ABgI61wOxUtX6WK2CqBT41DloE3ZpjH+irtEv++p5dFE156N0w+6L4RH4oTkwR5Aiv
	 +I5l6qFPyQo2uqJJHkwRp9bILJEjK7KOPTaHiuv3ig8KzeBiCX0AU7A6Wsg0m8y4Lt
	 jhrIThVHMt43mW/cZgDfwkcxLTofq5Lp9kqS01a2rjYzw3VfItmAnx4v54uNBX01MZ
	 tjqKLP+v6V9hj1Yrzl+TXFnc2frLiF+c3+ZYKmHZApaUGHhUDqJmcQMrYIG1J818rM
	 Ntaco1Aw61lOw==
MIME-Version: 1.0
Date: Wed, 02 Apr 2025 09:45:04 +0200
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: "Kwon, Gihwan" <gihwan.kwon@boeing.com>
Cc: xen-devel@lists.xenproject.org, Stefano Stabellini
 <sstabellini@kernel.org>
Subject: Re: [QUESTION] Minimal Xen Configuration
In-Reply-To: <PH3P110MB2246A9D7AFA0A73000781B0390A0A@PH3P110MB2246.NAMP110.PROD.OUTLOOK.COM>
References: <PH3P110MB2246A9D7AFA0A73000781B0390A0A@PH3P110MB2246.NAMP110.PROD.OUTLOOK.COM>
Message-ID: <f4803fc17047a9d74928c66d39bf9632@bugseng.com>
X-Sender: nicola.vetrini@bugseng.com
Organization: BUGSENG s.r.l.
Content-Type: text/plain; charset=US-ASCII;
 format=flowed
Content-Transfer-Encoding: 7bit

On 2025-03-28 07:43, Kwon, Gihwan wrote:
> Dear Xen Community,
> 
> I hope this message finds you well.
> 
> I have heard that there exists a minimal Xen configuration optimized 
> for
> safety-critical products, particularly in automotive applications, with 
> the
> code size reduced to approximately 50k SLOC.
> 
> Could anyone provide guidance or point me to relevant resources 
> regarding
> this minimal Xen configuration? Any insights or references would be 
> greatly
> appreciated.
> 
> Thank you in advance for your assistance.
> 
> Best regards,
> Gihwan Kwon

Hello,

I am part of the team that provides static analysis for Xen, mainly 
towards the objective to make Xen compliant with MISRA C guidelines. As 
part of that effort, a minimal Xen configuration has been defined (for 
Arm and x86_64) at [1], which is the one currently analyzed for static 
analysis for each commit [2]. It starts from the default configuration 
for the architecture (i.e., make defconfig) and then turns on or off 
various Kconfig options, as specified by EXTRA_XEN_CONFIG.

@Stefano Stabellini (Cc'ed) is the main driving force behind the Xen 
certification effort for automotive, therefore he's probably the best 
person to approach to get more information on this matter.

Hope this was helpful as a starting point.

Best Regards,
  Nicola Vetrini

[1] 
https://gitlab.com/xen-project/xen/-/blob/staging/automation/gitlab-ci/analyze.yaml?ref_type=heads
[2] https://gitlab.com/xen-project/hardware/xen/-/pipelines

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


From xen-devel-bounces@lists.xenproject.org Wed Apr 02 07:47:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 02 Apr 2025 07:47:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.935189.1336636 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzsoN-0005C8-FZ; Wed, 02 Apr 2025 07:46:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 935189.1336636; Wed, 02 Apr 2025 07:46: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 1tzsoN-0005C1-BK; Wed, 02 Apr 2025 07:46:59 +0000
Received: by outflank-mailman (input) for mailman id 935189;
 Wed, 02 Apr 2025 07:46: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=T645=WU=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tzsoM-0005Bv-4N
 for xen-devel@lists.xenproject.org; Wed, 02 Apr 2025 07:46:58 +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 a6426d08-0f96-11f0-9ffb-bf95429c2676;
 Wed, 02 Apr 2025 09:46:55 +0200 (CEST)
Received: by mail-wr1-x432.google.com with SMTP id
 ffacd0b85a97d-399744f74e9so4142772f8f.1
 for <xen-devel@lists.xenproject.org>; Wed, 02 Apr 2025 00:46:55 -0700 (PDT)
Received: from [10.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-43eb60cd74dsm12195495e9.20.2025.04.02.00.46.54
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 02 Apr 2025 00:46: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: a6426d08-0f96-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743580015; x=1744184815; 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=edDRPeSSLFBp5KTbZc8k1GEd+2MMcyjQAdZk6SqRO8Y=;
        b=ZBPuCJnc63j6VpVUJbFmDDPdiJ0oYGbProdQwSnESA9jUmOZEa1Or/E6J5ncmBjUR4
         fqJ2n2HlVZplzL3o60fjSVo1eJOzWPJwftKCAeZeT91TKsD/xGE7mdKzSxhVB950Yq/z
         m3yr0h5IV6+2yVyWKOlnSD+ZqZdqAqs5CPGZ6TsGsRN3z0VRF1idjBTWH1169Rx7as60
         7XbBumwXteF1GaUVYkZuPTWERcp7I6e8G/o5qcynV/wshBuddROIK8aRAi9t2RYoNI7E
         wNlTvSiV5qeYRptK6fNPFhUOdy+euiaaYl4AEyyEdCdZWPpyUo1AggSLzHv61olOrwuP
         DV2Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743580015; x=1744184815;
        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=edDRPeSSLFBp5KTbZc8k1GEd+2MMcyjQAdZk6SqRO8Y=;
        b=k3gNZNJMM+CxCQbjcWMSrkX9HN+7wAMRJNAfkyBkxIPyn5T9NO7UQw0ufMx+XnHqG9
         ec2i+eiYZIE+j0TEeP93+Oq70aXlq7mRrG61hoZQPn7cvqHcxi9HhPGWDNOL18RtAd49
         wdYBw7OdPNou97OChxK5er013kXnu2plzHplpyHXwGuaRA8Nhuhp6odbwVqoqPcyq+FN
         cp7YYNqOpoj8u5vcj/MwvwEU7bs2Cu55JENp1LGhN/A7cOo3J0T5ZVN813+jEMp0DD3y
         mqHpewJ/9oEety3+C6BMio6tpzh7m218/Rjr3DeB0kzEFxH7xpKNDHi7wfQz6b8ix4RJ
         5Jlg==
X-Forwarded-Encrypted: i=1; AJvYcCUYBwJFt5E1slbwMlxEFj/VvHlJXv4sQ1ERPyxPQM9f2maBRk7aJmSi1Va1ihQShEP4aoiw4pXmpQ8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwltQ8BreXrpR6le7KnPkphuJP8+A6dLa0yiEmsvvViDsf0wqYS
	yJtz1tdFg3uQCv088nqbwtauzZvwPMvZW4mV9AN18B9MbfksBKuL48zzqBluIA==
X-Gm-Gg: ASbGnctEuAL2odtFwBFaLPOhasMzY9qeVXfblipVxNTYuUHsZLE6sHF0LU/U3TZrt3n
	2kDSq3w0dxB983cg8xMbbP+6rIDwhZmq0pvD3JTqvnFV51jEOoKU2NR8lnyp5sjEPlkzYF5FYr0
	BEZ74jZ5EaYIWUSi2Mdf8viMOhg0Ok0VF4iael4VVfLnsr/0evrYFRbo0MzeBjQracSzF0V/qYj
	HVzmYwtbLRtc1Nl4JstrO5W8ym8QtdmarMzcUlJ7bAOgnh5KaWw6ogsnpHR2tYu01DxhZmTxvAu
	UtKYwUZ4cC9W5yv+4TBB7LZBPbG3YrHENpRvel0fW8F0tz/5JQYYNMzT7mycMlF+iSK5FXeep9D
	wBV9+yVgD7/YFyQA0R3caWOQK6brkgw==
X-Google-Smtp-Source: AGHT+IHBtxkx0B0/ryiZauBIuePc0enQPNC8VT6RZX9GFw/dZ1ansyAK7A18oQAsvRY/3J9sgGWysA==
X-Received: by 2002:a5d:47a2:0:b0:39a:c9ed:8555 with SMTP id ffacd0b85a97d-39c120dfd8dmr13699475f8f.23.1743580015299;
        Wed, 02 Apr 2025 00:46:55 -0700 (PDT)
Message-ID: <a14a7a42-cf7e-463b-a87d-e302ce32371b@suse.com>
Date: Wed, 2 Apr 2025 09:46:53 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 02/11] x86/mkreloc: fix obtaining PE image base address
From: Jan Beulich <jbeulich@suse.com>
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, Andrew Cooper
 <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20250401130840.72119-1-roger.pau@citrix.com>
 <20250401130840.72119-3-roger.pau@citrix.com>
 <6c37ad18-a830-453e-a7ff-fb4978e3f0df@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: <6c37ad18-a830-453e-a7ff-fb4978e3f0df@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 01.04.2025 16:17, Jan Beulich wrote:
> On 01.04.2025 15:08, Roger Pau Monne wrote:
>> The base address is in the pe32_opt_hdr, not after it.

Which is a result of pe.h munging both the optional and the NT header into
a single structure.

>> Previous to commit f7f42accbbbb the base was read standalone (as the first
>> field of pe32_opt_hdr).  However with the addition of reading the full
>> contents of pe32_opt_hdr, such read will also fetch the base.  The current
>> attempt to read the base after pe32_opt_hdr is bogus, and could only work
>> if the file cursor is repositioned using lseek(), but there's no need for
>> that as the data is already fetched in pe32_opt_hdr.
> 
> Yes, but: How did things work at all then with this bug?

It simply didn't. We got away only because apparently no-one tried a build
with a linker old enough for this tool to come into play.

I'd like to suggest the replacement patch below, though.

Jan

x86/EFI: correct mkreloc header (field) reading

With us now reading the full combined optional and NT headers, the
subsequent reading of (and seeking to) NT header fields is wrong. Since
PE32 and PE32+ NT headers are different anyway (beyond the image base
oddity extending across both headers), switch to using a union. This
allows to fetch the image base more directly then.

Additionally add checking to map_section(), which would have caught at
least the wrong (zero) image size that we previously used.

Fixes: f7f42accbbbb ("x86/efi: Use generic PE/COFF structures")
Reported-by: Roger Pau Monné <roger.pau@citrix.com>
Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
Of the two checks added to map_section(), the 1st ends up being largely
redundant with the 2nd one. Should we use just the latter?

Also sanity checking the image base would be possible, but more
cumbersome if we wanted to check moret than just "is in high half of
address space). Therefore I've left out doing so.

--- a/xen/arch/x86/efi/mkreloc.c
+++ b/xen/arch/x86/efi/mkreloc.c
@@ -28,14 +28,16 @@ static void usage(const char *cmd, int r
 static unsigned int load(const char *name, int *handle,
                          struct section_header **sections,
                          uint_fast64_t *image_base,
-                         uint32_t *image_size,
+                         uint_fast32_t *image_size,
                          unsigned int *width)
 {
     int in = open(name, O_RDONLY);
     struct mz_hdr mz_hdr;
     struct pe_hdr pe_hdr;
-    struct pe32_opt_hdr pe32_opt_hdr;
-    uint32_t base;
+    union {
+        struct pe32_opt_hdr pe;
+        struct pe32plus_opt_hdr pep;
+    } pe32_opt_hdr;
 
     if ( in < 0 ||
          read(in, &mz_hdr, sizeof(mz_hdr)) != sizeof(mz_hdr) )
@@ -54,31 +56,40 @@ static unsigned int load(const char *nam
 
     if ( lseek(in, mz_hdr.peaddr, SEEK_SET) < 0 ||
          read(in, &pe_hdr, sizeof(pe_hdr)) != sizeof(pe_hdr) ||
-         read(in, &pe32_opt_hdr, sizeof(pe32_opt_hdr)) != sizeof(pe32_opt_hdr) ||
-         read(in, &base, sizeof(base)) != sizeof(base) ||
-         /*
-          * Luckily the image size field lives at the
-          * same offset for both formats.
-          */
-         lseek(in, 24, SEEK_CUR) < 0 ||
-         read(in, image_size, sizeof(*image_size)) != sizeof(*image_size) )
+         (read(in, &pe32_opt_hdr.pe, sizeof(pe32_opt_hdr.pe)) !=
+          sizeof(pe32_opt_hdr.pe)) )
     {
         perror(name);
         exit(3);
     }
 
     switch ( (pe_hdr.magic == PE_MAGIC &&
-              pe_hdr.opt_hdr_size > sizeof(pe32_opt_hdr)) *
-              pe32_opt_hdr.magic )
+              pe_hdr.opt_hdr_size > sizeof(pe32_opt_hdr.pe)) *
+              pe32_opt_hdr.pe.magic )
     {
     case PE_OPT_MAGIC_PE32:
         *width = 32;
-        *image_base = base;
+        *image_base = pe32_opt_hdr.pe.image_base;
+        *image_size = pe32_opt_hdr.pe.image_size;
         break;
     case PE_OPT_MAGIC_PE32PLUS:
-        *width = 64;
-        *image_base = ((uint64_t)base << 32) | pe32_opt_hdr.data_base;
-        break;
+        if ( pe_hdr.opt_hdr_size > sizeof(pe32_opt_hdr.pep) )
+        {
+            if ( read(in,
+                      &pe32_opt_hdr.pe + 1,
+                      sizeof(pe32_opt_hdr.pep) - sizeof(pe32_opt_hdr.pe)) !=
+                 sizeof(pe32_opt_hdr.pep) - sizeof(pe32_opt_hdr.pe) )
+            {
+                perror(name);
+                exit(3);
+            }
+
+            *width = 64;
+            *image_base = pe32_opt_hdr.pep.image_base;
+            *image_size = pe32_opt_hdr.pep.image_size;
+            break;
+        }
+        /* Fall through. */
     default:
         fprintf(stderr, "%s: Wrong PE file format\n", name);
         exit(3);
@@ -108,11 +119,28 @@ static unsigned int load(const char *nam
 static long page_size;
 
 static const void *map_section(const struct section_header *sec, int in,
-                               const char *name)
+                               const char *name, uint_fast32_t image_size)
 {
     const char *ptr;
     unsigned long offs;
 
+    if ( sec->rva > image_size )
+    {
+        fprintf(stderr,
+                "%s: section %.8s @ %08"PRIx32" beyond image size %08"PRIxFAST32"\n",
+                name, sec->name, sec->rva, image_size);
+        exit(6);
+    }
+
+    if ( (uint_fast64_t)sec->rva + sec->virtual_size > image_size )
+    {
+        fprintf(stderr,
+                "%s: section %.8s @ [%09"PRIx32",%09"PRIxFAST64") extends beyond image size %09"PRIxFAST32"\n",
+                name, sec->name, sec->rva,
+                (uint_fast64_t)sec->rva + sec->virtual_size, image_size);
+        exit(6);
+    }
+
     if ( !page_size )
         page_size = sysconf(_SC_PAGESIZE);
     offs = sec->data_addr & (page_size - 1);
@@ -233,7 +261,7 @@ int main(int argc, char *argv[])
     int in1, in2;
     unsigned int i, nsec, width1, width2;
     uint_fast64_t base1, base2;
-    uint32_t size1, size2;
+    uint_fast32_t size1, size2;
     struct section_header *sec1, *sec2;
 
     if ( argc == 1 ||
@@ -308,8 +336,8 @@ int main(int argc, char *argv[])
             sec1[i].raw_data_size = sec1[i].virtual_size;
             sec2[i].raw_data_size = sec2[i].virtual_size;
         }
-        ptr1 = map_section(sec1 + i, in1, argv[1]);
-        ptr2 = map_section(sec2 + i, in2, argv[2]);
+        ptr1 = map_section(sec1 + i, in1, argv[1], size1);
+        ptr2 = map_section(sec2 + i, in2, argv[2], size1);
 
         diff_sections(ptr1, ptr2, sec1 + i, base2 - base1, width1,
                       base1, base1 + size1);



From xen-devel-bounces@lists.xenproject.org Wed Apr 02 08:43:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 02 Apr 2025 08:43:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.935213.1336656 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tztgS-00037j-0R; Wed, 02 Apr 2025 08:42:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 935213.1336656; Wed, 02 Apr 2025 08:42:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tztgR-00037B-QF; Wed, 02 Apr 2025 08:42:51 +0000
Received: by outflank-mailman (input) for mailman id 935213;
 Wed, 02 Apr 2025 08:42: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=trQc=WU=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1tztgQ-00033V-FN
 for xen-devel@lists.xenproject.org; Wed, 02 Apr 2025 08:42:50 +0000
Received: from NAM11-CO1-obe.outbound.protection.outlook.com
 (mail-co1nam11on2060e.outbound.protection.outlook.com
 [2a01:111:f403:2416::60e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7385deb0-0f9e-11f0-9ffb-bf95429c2676;
 Wed, 02 Apr 2025 10:42:48 +0200 (CEST)
Received: from BYAPR07CA0076.namprd07.prod.outlook.com (2603:10b6:a03:12b::17)
 by DS5PPF5FAA0E762.namprd12.prod.outlook.com (2603:10b6:f:fc00::651)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8583.41; Wed, 2 Apr
 2025 08:42:43 +0000
Received: from SJ1PEPF000023D8.namprd21.prod.outlook.com
 (2603:10b6:a03:12b:cafe::4a) by BYAPR07CA0076.outlook.office365.com
 (2603:10b6:a03:12b::17) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8534.54 via Frontend Transport; Wed,
 2 Apr 2025 08:42:42 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ1PEPF000023D8.mail.protection.outlook.com (10.167.244.73) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8632.2 via Frontend Transport; Wed, 2 Apr 2025 08:42:42 +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, 2 Apr
 2025 03:42:41 -0500
Received: from XIR-MICHALO-L1.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, 2 Apr 2025 03:42:40 -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: 7385deb0-0f9e-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Ci2VW9F6hTyqDnA0aSBAhnFMY2WMqBjEoCzrH5zl26y9/NBSg4dNkSZBQLsPv3qbRDpVYImnmiQwlAEhXhiU3qzhh4gTpvgi3HDWPookGYP/vI3xbJHjvENbNtZ++si0ucHzKB05Y6W0JoIE5IzV+SO2IwMWjflaOTYFOkhP5s7T04qagutKkSM5XNJq3U57dnmQEH5nQT+nEujwxu5M+7B4qwWfZPuGEptnbkEWW6SLz4Q2b3LsH3umHbefo/m+AWT731lMV6pZqDHGZ83aPBWedvtHvxK9OmJdhwd8q/Gzcu5cRbtet+6iFv2Qyx9s/4t5K2nfrk9W3xd4CBJb9w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=TZljzGrNQy2MisI0mWr7E+MgWiJzUwr6Rox2FFdPBos=;
 b=o9r7bWLt4ElxKAq09CtCWBQkDjpHMTqqALK/hAOYSO1aVe71QLjcuHLSHRBEOcqe+hGQkKcwFlu2YlVQ9Nrw9iMU5++EwF/mZsFyE+mbXc8U+/vIMozyUZvoi2qn4Mo0dB7mTD913XNJ/eUQv4s9Plfsd7jBwV1LGqIGKViGLug/LmP8zRrE8KdnSpuGwwI/EahoJwLLLvfPp6+X5qf+JczCuzAA6Sqa42vpu/K6sLMtE0r8Up/9J85wP0D53YScdxTJW4VdrB2gwlsK+V5rqHG3uUd9CCWwxcYitRIqeoDeeZewgg70O1vrSuJccN+GVfDksL6AgP5K4GFgLV4uiw==
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=TZljzGrNQy2MisI0mWr7E+MgWiJzUwr6Rox2FFdPBos=;
 b=pIVqOfSNKBSRDT0eS3gIyjSe7O+ZONlkZmgElGkT01+XbjPXTjQYTE0Aif1fBz9iDLpKKfGbHYVk3kP94edqwsmguGRURAwnwV5ohUbCZMQtrKtHpaB/rNp8crKRzJ4cVW96VjHVmV55Y+SnfGliWEY98M5DnxhWhRf9VPm6IxQ=
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>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v2] xen/arm: Drop process_shm_chosen()
Date: Wed, 2 Apr 2025 10:42:33 +0200
Message-ID: <20250402084233.114604-2-michal.orzel@amd.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20250402084233.114604-1-michal.orzel@amd.com>
References: <20250402084233.114604-1-michal.orzel@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
Received-SPF: None (SATLEXMB04.amd.com: michal.orzel@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF000023D8:EE_|DS5PPF5FAA0E762:EE_
X-MS-Office365-Filtering-Correlation-Id: 393196b1-f36a-4e87-0dca-08dd71c2557b
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|376014|36860700013|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?fMzgybBru1xBuIywczwfWY6RCmhyxWywk0EczLBVthWs0QE0SYpEErM+kmZC?=
 =?us-ascii?Q?+tsc8tHeYxQ0V6r9+eC43mYp70Q8lu8KWFHONFzxsejJKS8wfkJzfrGRR7tN?=
 =?us-ascii?Q?mm5Oorcy1HVKteq3jtIDR3XYbm2D8ID7GTuyVHCGEvKm4Zj6SzvypkbvLUcn?=
 =?us-ascii?Q?AvfA7J03XBP4SAA8in8l0bjrCTEpv1SuVFZqARV7RoF06gkXbUSaPsQjKF0n?=
 =?us-ascii?Q?8AH85SJTEa7SkQnROIPC9PywkCDqoFbxZeTkkUzHtQeC5HItKPurPGQ/SmrV?=
 =?us-ascii?Q?JCXqpToglt2qKOmhS5s/MIJJAThSHQDY46H3brtW3QzrujZLgEn2tqACWKMj?=
 =?us-ascii?Q?mC0oRmIBJ5YqLMZRHzap/EcW3+QoOg3zP0C7FFKj3MaGi4Ww3X0b8c1N0ucv?=
 =?us-ascii?Q?teJjAMY7CcdynfhTTpZot9+5QHmMnvL5rsyQXwbWUOcE5kI68Z7eOR2w3skG?=
 =?us-ascii?Q?tRwJ01j1MWQUzIj6v7nV9jjjrezbYT2N5HaAi0j+HdRdTl7pI8ArGALrm4PK?=
 =?us-ascii?Q?gro/o1lnwcQ8q5PUiLy36U/IYgnnkZQUvZiQfWVLcEiO82yCa5jB1To9ZdaZ?=
 =?us-ascii?Q?xkAJjLJwDBS2OJMKUtXk4x22yHU+LCw2eAWqIFc1By7pgqDkbXTNitoyaNhd?=
 =?us-ascii?Q?HewIz6SDQMhCbDyRuXyg8q+35ATlwOwdxXeRdQrOX0Y8TElPFd6/lxqKiAf7?=
 =?us-ascii?Q?NZv8uwkSGBx2zpIegzXBPVOon9ruOIS5ef5ZR+R3R9HCyAkwNYkRqR9WyL/F?=
 =?us-ascii?Q?wzH+zIOkwjJmKq6mjzKQqxNQml7mXzMzaV+51hk1i3/PorVtga1mub0UM6Tq?=
 =?us-ascii?Q?+bcRly2WHy6wBBpkXUHGj5Vh0MFjzArdIy4bHniMFaVJ7rujJbNlvs6+8jBR?=
 =?us-ascii?Q?QQZ/pj/OyJMu95X658UdRyCt7dyY2BOaiS878zNYkzw7Noz0HbDj+LGKNGK/?=
 =?us-ascii?Q?nRyctsGPMXHwXnNJtdsGRJxhTCvjlfLlu00P2BdYhZzAVzs9cFRPIJMUQIbF?=
 =?us-ascii?Q?SBMwM937suyYSCthIW5w0Qo4nhkRp/Jkz+DbU8sWPRqU+Xmdg3c+oRBTCQD3?=
 =?us-ascii?Q?WOUPTtuBrRSind5/ltil0v33qhrKQ7QtebhKed1godBFOKjy2lUAJFyoFVIn?=
 =?us-ascii?Q?S6pkMlWWAy60BSW3Nr/l0sb1j4HEsl9vSEZWIEZDSke6+Lkv+qnnH4XSuKbh?=
 =?us-ascii?Q?+wbPx113lZ8u1dgMGdVBbg0lMMEwy3Obgip/eD+cGG5eKvhh1tIW2jUiLkvP?=
 =?us-ascii?Q?rMAKIqVxBFjoaeXdPvitLSfnK0JyIHxw1Pumr4X4b330nLFLaY04oirGk/Br?=
 =?us-ascii?Q?sMZQxTCXkC392/XrfnLEDSaqXjBo2U5JHenUIr/Y0dbqCbW+vkYvUUf1Fr60?=
 =?us-ascii?Q?4TxRafl9Y46YsJhb7Nv+sCNma7O0IY0VwDC4Trq5PHc+ySeLf1muD9/iRZRC?=
 =?us-ascii?Q?hp1Y4wqrbvvPewyBnLp9hfkb1LFZjDLnDTc8NJw3FsLR/SQSkgRv0C6+kyaW?=
 =?us-ascii?Q?P9A4UllIP/Mc+Z4=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)(82310400026)(376014)(36860700013)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Apr 2025 08:42:42.6865
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 393196b1-f36a-4e87-0dca-08dd71c2557b
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:
	SJ1PEPF000023D8.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS5PPF5FAA0E762

There's no benefit in having process_shm_chosen() next to process_shm().
The former is just a helper to pass "/chosen" node to the latter for
hwdom case. Drop process_shm_chosen() and instead use process_shm()
passing NULL as node parameter, which will result in searching for and
using /chosen to find shm node (the DT full path search is done in
process_shm() to avoid expensive lookup if !CONFIG_STATIC_SHM). This
will simplify future handling of hw/control domain separation.

Signed-off-by: Michal Orzel <michal.orzel@amd.com>
---
Changes in v2:
 - rebase on ACPI fix
 - add BUG_ON for !/chosen
---
 xen/arch/arm/domain_build.c             |  2 +-
 xen/arch/arm/include/asm/static-shmem.h | 14 --------------
 xen/arch/arm/static-shmem.c             |  7 +++++++
 3 files changed, 8 insertions(+), 15 deletions(-)

diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index 85f423214a44..634333cddef3 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -2327,7 +2327,7 @@ int __init construct_hwdom(struct kernel_info *kinfo)
 
     if ( acpi_disabled )
     {
-        rc = process_shm_chosen(d, kinfo);
+        rc = process_shm(d, kinfo, NULL);
         if ( rc < 0 )
             return rc;
     }
diff --git a/xen/arch/arm/include/asm/static-shmem.h b/xen/arch/arm/include/asm/static-shmem.h
index fd0867c4f26b..94eaa9d500f9 100644
--- a/xen/arch/arm/include/asm/static-shmem.h
+++ b/xen/arch/arm/include/asm/static-shmem.h
@@ -18,14 +18,6 @@ int make_resv_memory_node(const struct kernel_info *kinfo, int addrcells,
 int process_shm(struct domain *d, struct kernel_info *kinfo,
                 const struct dt_device_node *node);
 
-static inline int process_shm_chosen(struct domain *d,
-                                     struct kernel_info *kinfo)
-{
-    const struct dt_device_node *node = dt_find_node_by_path("/chosen");
-
-    return process_shm(d, kinfo, node);
-}
-
 int process_shm_node(const void *fdt, int node, uint32_t address_cells,
                      uint32_t size_cells);
 
@@ -74,12 +66,6 @@ static inline int process_shm(struct domain *d, struct kernel_info *kinfo,
     return 0;
 }
 
-static inline int process_shm_chosen(struct domain *d,
-                                     struct kernel_info *kinfo)
-{
-    return 0;
-}
-
 static inline void init_sharedmem_pages(void) {};
 
 static inline int remove_shm_from_rangeset(const struct kernel_info *kinfo,
diff --git a/xen/arch/arm/static-shmem.c b/xen/arch/arm/static-shmem.c
index c74fa13d4847..e8d4ca3ba3ff 100644
--- a/xen/arch/arm/static-shmem.c
+++ b/xen/arch/arm/static-shmem.c
@@ -297,6 +297,13 @@ int __init process_shm(struct domain *d, struct kernel_info *kinfo,
 {
     struct dt_device_node *shm_node;
 
+    /* Hwdom case - shm node under /chosen */
+    if ( !node )
+    {
+        node = dt_find_node_by_path("/chosen");
+        BUG_ON(!node);
+    }
+
     dt_for_each_child_node(node, shm_node)
     {
         const struct membank *boot_shm_bank;
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Wed Apr 02 08:43:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 02 Apr 2025 08:43:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.935212.1336651 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tztgR-00034Y-KB; Wed, 02 Apr 2025 08:42:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 935212.1336651; Wed, 02 Apr 2025 08:42:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tztgR-00034R-Gn; Wed, 02 Apr 2025 08:42:51 +0000
Received: by outflank-mailman (input) for mailman id 935212;
 Wed, 02 Apr 2025 08:42: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=trQc=WU=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1tztgQ-00033V-3N
 for xen-devel@lists.xenproject.org; Wed, 02 Apr 2025 08:42:50 +0000
Received: from NAM04-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam04on2061f.outbound.protection.outlook.com
 [2a01:111:f403:2409::61f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 72c5cc82-0f9e-11f0-9ffb-bf95429c2676;
 Wed, 02 Apr 2025 10:42:46 +0200 (CEST)
Received: from BYAPR07CA0079.namprd07.prod.outlook.com (2603:10b6:a03:12b::20)
 by DM4PR12MB6010.namprd12.prod.outlook.com (2603:10b6:8:6a::7) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.8534.54; Wed, 2 Apr 2025 08:42:42 +0000
Received: from SJ1PEPF000023D8.namprd21.prod.outlook.com
 (2603:10b6:a03:12b:cafe::e3) by BYAPR07CA0079.outlook.office365.com
 (2603:10b6:a03:12b::20) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8583.41 via Frontend Transport; Wed,
 2 Apr 2025 08:42:41 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ1PEPF000023D8.mail.protection.outlook.com (10.167.244.73) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8632.2 via Frontend Transport; Wed, 2 Apr 2025 08:42:41 +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, 2 Apr
 2025 03:42:40 -0500
Received: from XIR-MICHALO-L1.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, 2 Apr 2025 03:42:39 -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: 72c5cc82-0f9e-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=xMnn8nk28POYOKQmlAt9Tfpj1cDe4RYw+WuEsItd2fo1QOA1JHr4KJ/i/nlUKvNkMoHLnLADXtqyr8iT7X2cxV3daYweQNNyWIwo/kF2Y1aMRCvVxkksdCg+WYD55N3KpzPC3Shh8LIvgely+cVH7GapcwV2WqZNfvXBolu0gCl6s3ro1GKRYuM3MNLwiq/tFnaa9diI3JU2LayAq+t8BiJ4Wyhk1RMZLYNC3pCwyvD/zwxpEH2zpDmlPKSV/9fQg9xWURaQSpSh2dsrLNrO78J/4Z9/cTulqCun+c2WNtOmCxf5890eUVzamei4N2K7RQC6DJbkZI9S/7yQG64LxA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=qt9owdaK4rx3uvVkne5yzswFleGRsEogC1xMHaEwPi0=;
 b=uy+IFskTmkSHfmWh8ZhH3d+z45YE2kMcb0hLIZgr0kIr/B7sE6l3FYJHExA7y4zLbfaYcbPIWKvYMbgMo5SeVPgMclUL0XxrYMH+gub+JOit6ZAoZ+4PhTpTEepHo2LoU7pa7h9AFlbLFi+awZ4/zDdm8B3G7yP6L7M+eAbCfpIl1I2DvooaRVICzp9blxYNAuZTtaHlX9tbLhDrATtjEpU00XojP7jIgmC0yErKTNcytOthjHzmcp16TpEX2gYCbrmLt0J6YbqJB4xk9pQtOm4G2cgK2PuGbxWu6rDeTKAsZorFwlHp/ZZQuvVDh439RLEnyRtWyXkrV7CZi66neA==
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=qt9owdaK4rx3uvVkne5yzswFleGRsEogC1xMHaEwPi0=;
 b=xZTdyLxiozEQwzgVzmfDpfvk9j0QjaGCbDZLA8eH2+vTnqzy3QpaWxVvNokZ/ekGmz4CEu3b7xHCylOZ1ou9MN7oolfmQyb7BJByWIxc2fEq2XFwreDN+t1swK7C0iGhMEkHMu3CJ5JuGxcbI1HCqwhgOY2IvkiVvS3vmr8fLA0=
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>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH] xen/arm: Don't call process_shm_chosen() during ACPI boot
Date: Wed, 2 Apr 2025 10:42:32 +0200
Message-ID: <20250402084233.114604-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 (SATLEXMB04.amd.com: michal.orzel@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF000023D8:EE_|DM4PR12MB6010:EE_
X-MS-Office365-Filtering-Correlation-Id: d251b543-caa8-4c42-04b1-08dd71c25496
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|82310400026|1800799024|376014;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?BsAibWzC8XWglHH5j+Am5tZ7uTwZAxvYEl6e9eV1bXM80ypXdajMrL/GlCmx?=
 =?us-ascii?Q?msE+IHniKIRzfP5EseN6whRIlVgyFJOjYCicJB/0l+0lcC9NtEIF4gr5YovV?=
 =?us-ascii?Q?7diTuBWZDWQhAU19nXhspGEwggXKHFUJJ5oejlBzBky5a5o3MN2kIVEeX0kN?=
 =?us-ascii?Q?dGqhsa5zeCCwr1HdVgIX22pOfGn3/+2UTlmTIYG1mi/4lCFs2pwoLFc/kUN/?=
 =?us-ascii?Q?J4IzPAAXeQE4xL0cE6jXyvYI2NbP+BewD5rDCyhigMGUWjDUHQfEVB5CqCff?=
 =?us-ascii?Q?TdxrPWnmk7kRUA9OB0yyWgfn09X6LfBKFYNwlgsNPLH4Oa9SfTqHSFQXWY4Q?=
 =?us-ascii?Q?Va1dzeKYjp+2jzh45iY6EQlmEd329qWkFAgOk6bLp9go1n4MXs9SjUcnHakE?=
 =?us-ascii?Q?ZK50kSv0n9RDJHPmt+0nbnoPaLp0aL3GmrOemw+SGgNl/9teoA7lmZBtua6l?=
 =?us-ascii?Q?VmMGya9zggB4DSDEWdnQ2GMn/qWCBC4HLHwruY3QNLxBbMR+NZLrQwGLi5Qz?=
 =?us-ascii?Q?BNo4e0BzHpTzYIxDUbP0qP5Zjxeq3U9kor+M8X8PXuvUCglXpNc4KP4xmwe1?=
 =?us-ascii?Q?0WU+wuI3HA3xszJYNPKUIAyIxZrmkKyzNepafMi5E6wSYCswyDDkYP86LUGU?=
 =?us-ascii?Q?3686c74zLx1yrOpP72CrDrg2zmodv1Z0s5iryya+ktzOAr48+Gttxi5f2wTe?=
 =?us-ascii?Q?fX5dCFAhOThrpIBe5euNcds5pctqPDea9XwmUzH3gYa44rm7lmk8y8BFXuF0?=
 =?us-ascii?Q?Hf3IHmmZXxum1CQd3oXXB8ykqE0CMsRMFLLENIh1KPjX+o82bpm7S510iAzy?=
 =?us-ascii?Q?z6/OSgyUbF+wYG6pPCWWTsqf1A740bw9XZc20osT917QlC5hjeU50NcA+iLJ?=
 =?us-ascii?Q?abtjVeBvEg8cpSnUYZkQKBYHppHQokmqdNKA43FRd8/zNAnIUtG7/3lvNaVx?=
 =?us-ascii?Q?5qbrMABRxcyUCjZeIGBJ/KPBfjPg6QyeZ6B5KSpSbtk3Pf3t3XIAhTOvjZ51?=
 =?us-ascii?Q?HTaZoziICDcVkxniz2T94iiTmafqezfKO1o77BoEk7n/ExhCF6ZEdtlGbUcc?=
 =?us-ascii?Q?9nn3Fq1D/31n6gbeWgENUekFNWRH8ncpiGUzwvyY9URDjWeOFKByKQ/wtusF?=
 =?us-ascii?Q?yUS7Cdw825DjHQvIZS1DZ0Cee0C1qR4duLZB+Pg+ukWl7TsF37yNh2/4lBCP?=
 =?us-ascii?Q?/kG067DhRP3VHXbJLlgm/Fuzv8XM8XlBCdmQfgWUjj5aYjOgEO3MH1Sx5V27?=
 =?us-ascii?Q?1S7fQkGMgoevponhzkEweE1sGVdLiDwOrnWxYuHpxCoZ1S6XfLIDp5jjcf78?=
 =?us-ascii?Q?gRMbF8lFbueOp+iFShJV1PDqL2k/+XKPdMoYJqcp+ZynaYblWs7qqNBhuymx?=
 =?us-ascii?Q?H1cmjya/MZyajvBHtiOA+QCYhOuW5ZtSUmyGoZJhDyzzi2gAar7ekggpkm3X?=
 =?us-ascii?Q?b6IQHk4MP++AvGE+C2srTdAfe4Vz9zlFodHjo7T0tM9PGJ3sL+RvEu3tbFeW?=
 =?us-ascii?Q?/vJE/zgCxGUR80Y=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)(82310400026)(1800799024)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Apr 2025 08:42:41.1866
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: d251b543-caa8-4c42-04b1-08dd71c25496
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:
	SJ1PEPF000023D8.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB6010

Static shared memory requires device-tree boot. At the moment, booting
with ACPI enabled and CONFIG_STATIC_SHM=y results in a data abort when
dereferencing node in process_shm() because dt_host is always NULL.

Fixes: 09c0a8976acf ("xen/arm: enable statically shared memory on Dom0")
Signed-off-by: Michal Orzel <michal.orzel@amd.com>
---
 xen/arch/arm/domain_build.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index 2b5b4331834f..85f423214a44 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -2325,9 +2325,12 @@ int __init construct_hwdom(struct kernel_info *kinfo)
     else
         allocate_memory(d, kinfo);
 
-    rc = process_shm_chosen(d, kinfo);
-    if ( rc < 0 )
-        return rc;
+    if ( acpi_disabled )
+    {
+        rc = process_shm_chosen(d, kinfo);
+        if ( rc < 0 )
+            return rc;
+    }
 
     /* Map extra GIC MMIO, irqs and other hw stuffs to dom0. */
     rc = gic_map_hwdom_extra_mappings(d);
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Wed Apr 02 08:51:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 02 Apr 2025 08:51:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.935240.1336670 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tztpA-0006Qm-Te; Wed, 02 Apr 2025 08:51:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 935240.1336670; Wed, 02 Apr 2025 08:51: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 1tztpA-0006Qf-R5; Wed, 02 Apr 2025 08:51:52 +0000
Received: by outflank-mailman (input) for mailman id 935240;
 Wed, 02 Apr 2025 08:51: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=T645=WU=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tztp9-0006QX-JI
 for xen-devel@lists.xenproject.org; Wed, 02 Apr 2025 08:51:51 +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 b707f2d7-0f9f-11f0-9ffb-bf95429c2676;
 Wed, 02 Apr 2025 10:51:49 +0200 (CEST)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-39141ffa9fcso6264834f8f.0
 for <xen-devel@lists.xenproject.org>; Wed, 02 Apr 2025 01:51:49 -0700 (PDT)
Received: from [10.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-39c0b65873bsm16139318f8f.8.2025.04.02.01.51.48
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 02 Apr 2025 01:51: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: b707f2d7-0f9f-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743583909; x=1744188709; 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=I6i5GaUj6GyWkycrBBRANG2P7pRkOQTgytmmORF3WS4=;
        b=VzL4rRIBWtjrJSVnIIvLZCm8IGIJqb01FUUuILogcBJ/rrMowvQaebDV2PIj3NFKVE
         c2wyOBfGtm1O4NX1BNshbfjkdwLLaUZKpYUn4+SU6g+LBdTdZn42SP/xejctfmjWO3wS
         xl+esWME+EvaLw5lAhb6j7Orl3Qo9T6qcUuG3/jVJrVbdk7SJKV1G88HVVMZPEKfTCs+
         1rJodA2b49rCJau3eDrMenT4QfOp3AaG4ia9qWFsKSzLoqudy6NGClE3QNJrKoNr2bwW
         OJfh7OtW0/9wMdUxJMDzkOYL5no7hceVc6H7aO2+hzF2h2x0b7XAflQKN30wRNlcluTj
         OCeA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743583909; x=1744188709;
        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=I6i5GaUj6GyWkycrBBRANG2P7pRkOQTgytmmORF3WS4=;
        b=EiG8D6zRXyOLDdYIyCtn2+JDdHuhFE7NmKIf6rjzp3jLl14hXm2EDw7xFHdxWYupsY
         js5SdYJRkmSLVZpUBRytT0MoOea22IlK59WMoTcOzhwbU3La7zRMIutJk3cBqk6aJJ9I
         OAiPhTlaeVqO09y0X8oZoYMndefSDhvSuHiGU+NaMvyD25nb/qa7m/vf41bvMwj5PLRC
         4ZI126k8YrRTA+W1fXL4N1kAMk6/lZRBKv521Kw/rXQSz8vfVUP8/KXDg1brFCLokQFN
         sTgi4dqtiUcFC3DBelLyOJa70uwYgAsx4jvNHr0I94oDW+tD+VJEtizdzyxkcQXPFR0b
         PRbg==
X-Gm-Message-State: AOJu0YwfgWBTAqANGDdhtvMmsXsqnd2J4v5mdSOPwkqY6n/J5NCqggE8
	1Dwie2G93vC36DeRQgJ6JWVpCDG92ohUftUQu6SRVjmH2nft8p4aLnoNGOih823gVvU77giwdWc
	=
X-Gm-Gg: ASbGncshF3o+9SG4cIDAf53yhnKVjUrn4TnV3BkyfD1RRF/XWZ/GhPEpQv4ifdRzlo9
	i933YRP5uZmaYEwNuEMs2jkS3NNjT42oVqez7o13xt58kctwmW4fQ3v7sHhD0McrIhGotmc3aAY
	XS5savd9uOlJi6wOT3a5nEcIHKdMiz66FeuG9Mqbtaz0OTGsyInHYf0mRmsFCieQD+nC/QOiMIk
	5mvMGqqhHeJnkuSZSflOsPBTP3ITHoP967A79FrGB3sNBcA1s/jwdnSTx+gJaxOwrotY60JzJ6x
	fKFnt4po10FIrYJes42TSs1jZMm/07H+iLE6+5HsSD9VDyagh/9p1ggK3ts2h5QVut09KsJ8CGP
	SJm+kmm5AjMR29SWJRYv5NlS8IBgaWQ==
X-Google-Smtp-Source: AGHT+IF8qeu1KvLbhNAptedlw3vK1X8n5cjfuVwRBkY0mPtEYzVRXUFuhUYFUtR9AxnDNr71/QiOMw==
X-Received: by 2002:a05:6000:430b:b0:39c:1258:7e1a with SMTP id ffacd0b85a97d-39c29a04af9mr1344106f8f.59.1743583908893;
        Wed, 02 Apr 2025 01:51:48 -0700 (PDT)
Message-ID: <90354241-4ebb-4d52-809c-0af788d2b860@suse.com>
Date: Wed, 2 Apr 2025 10:51:47 +0200
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>,
 Marek Marczykowski <marmarek@invisiblethingslab.com>,
 Daniel Smith <dpsmith@apertussolutions.com>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH] x86/EFI: sanitize DLL characteristics in binary
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+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

In GNU ld --disable-reloc-section implies --disable-dynamicbase (and
also --disable-high-entropy-va, just fyi). Therefore to yield
functionally identical binaries independent of whether mkreloc needs to
come into play, add --dynamicbase as well.

GNU ld further defaults to --high-entropy-va (along with --dynamicbase
and --nxcompat) unless "Cygwin-like". This seems wrong to me; that
default should be dependent upon "MinGW-like" instead; for the purpose
of building EFI binaries with a PE32+-capable ELF linker neither
"Cygwin-like" nor "MinGW-like" ought to be true. We certainly don't mean
to have this bit set in the DLL characteristics, so suppress its
setting.

Sadly while --high-entropy-va is supported by GNU ld 2.25,
--disable-high-entropy-va was introduced only in 2.36. Luckily the
defaulting to --high-entropy-va was also only introduced in 2.36. Plus
--disable-reloc-section was introduced precisely there, too. Hence
leverage the probing we do as to base relocation generation, to also
determine whether to pass --disable-high-entropy-va.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
I remain uncertain about the applicability of DLL characteristics to
non-DLLs, i.e. images without IMAGE_FILE_DLL set; current MS doc says
nothing either way. Yet producing consistent binaries still seems
desirable, even if the field wasn't to be used by loaders.

--- a/xen/arch/x86/arch.mk
+++ b/xen/arch/x86/arch.mk
@@ -113,6 +113,7 @@ efi-nr-fixups := $(shell LC_ALL=C $(OBJD
 
 ifeq ($(efi-nr-fixups),2)
 MKRELOC := :
+EFI_LDFLAGS += --disable-high-entropy-va
 else
 MKRELOC := arch/x86/efi/mkreloc
 # If the linker produced fixups but not precisely two of them, we need to
@@ -123,6 +124,8 @@ EFI_LDFLAGS += --disable-reloc-section
 endif
 endif
 
+EFI_LDFLAGS += --dynamicbase
+
 endif # $(XEN_BUILD_PE)
 
 export XEN_BUILD_EFI XEN_BUILD_PE


From xen-devel-bounces@lists.xenproject.org Wed Apr 02 08:59:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 02 Apr 2025 08:59:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.935252.1336681 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tztwI-00073v-L2; Wed, 02 Apr 2025 08:59:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 935252.1336681; Wed, 02 Apr 2025 08: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 1tztwI-00073o-Hn; Wed, 02 Apr 2025 08:59:14 +0000
Received: by outflank-mailman (input) for mailman id 935252;
 Wed, 02 Apr 2025 08:59: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=E7/M=WU=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1tztwG-00073g-DJ
 for xen-devel@lists.xenproject.org; Wed, 02 Apr 2025 08:59:12 +0000
Received: from EUR02-AM0-obe.outbound.protection.outlook.com
 (mail-am0eur02on2062c.outbound.protection.outlook.com
 [2a01:111:f403:2606::62c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bd247e3c-0fa0-11f0-9ffb-bf95429c2676;
 Wed, 02 Apr 2025 10:59:09 +0200 (CEST)
Received: from AS4P195CA0047.EURP195.PROD.OUTLOOK.COM (2603:10a6:20b:65a::24)
 by AS4PR08MB8166.eurprd08.prod.outlook.com (2603:10a6:20b:58d::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.52; Wed, 2 Apr
 2025 08:59:06 +0000
Received: from AM4PEPF00027A66.eurprd04.prod.outlook.com
 (2603:10a6:20b:65a:cafe::30) by AS4P195CA0047.outlook.office365.com
 (2603:10a6:20b:65a::24) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8583.41 via Frontend Transport; Wed,
 2 Apr 2025 08:59:06 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 AM4PEPF00027A66.mail.protection.outlook.com (10.167.16.91) with
 Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8606.22
 via Frontend Transport; Wed, 2 Apr 2025 08:59:05 +0000
Received: ("Tessian outbound 15d661e369c7:v605");
 Wed, 02 Apr 2025 08:59:05 +0000
Received: from L6f5d68abc7e9.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 E4614241-5C08-4965-B67D-2B944BD217CF.1; 
 Wed, 02 Apr 2025 08:58:59 +0000
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id
 L6f5d68abc7e9.1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Wed, 02 Apr 2025 08:58:59 +0000
Received: from DB9PR08MB6588.eurprd08.prod.outlook.com (2603:10a6:10:25a::24)
 by VI0PR08MB10390.eurprd08.prod.outlook.com (2603:10a6:800:207::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.44; Wed, 2 Apr
 2025 08:58:53 +0000
Received: from DB9PR08MB6588.eurprd08.prod.outlook.com
 ([fe80::a8fc:ea0d:baf1:23a]) by DB9PR08MB6588.eurprd08.prod.outlook.com
 ([fe80::a8fc:ea0d:baf1:23a%7]) with mapi id 15.20.8534.048; Wed, 2 Apr 2025
 08:58: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: bd247e3c-0fa0-11f0-9ffb-bf95429c2676
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=DE39kHoaB3RnYehiv/G62bJoGkuG7N3NB8zRhNMjrVZHFvH+mWMDcTxY+Ikidzs65gQaQIAqmYDyMTthkk+0DX5vrs15rSvFmAFIVIyJ9YuaegGjFhZRJ9D7hdwWhZupsQoYrtxQxWXlqXQTxaKY10Bpj6UDsoZtQ2FVVyqtz+sYorVJ1bnmvo2n6ZrbhkGf9Y4Oiz2FxcIxG504yagMKOnk9TZtUf5X7H/yOGj05BAR1g2XxpjncfxDAMz/SZVb5J4YtaI+HmUk70baThoEGn932ZAftSDeB0Eiuy+jzZpPSII0SR8iWNC6SCpXT7ePdjqz0wUARB1jnAqcVy55zw==
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=UVh+cLsbXjVRZjKSAGe4AE+4zxFPQNuouxrlS5koUM8=;
 b=MJq1Tami6X70JbYhg7VAhKgCTRXc35ZR+AkZNH20WeFxsuwtjegcITQswYT7/Q/cwssjuZSepWOb5QMdHm34SoYflmfrxCaIvc7KWgEeR3mdgtljdfNhlacABThU6HSBmXTwDD0Evw/duZcnopmQQU/p7kzp/fQ1mLH2RjaUHzGzlXSdnlpORr+S49bWVU5KzVky7bWvwJjZnwAMXW+PJa7ec6lH2B9iWkVSC34MVUtCpR2274WBpRR5zFEALtFh0OjRWnuoEVffgh0Q6/39UozmT0eMwNBOa+XQUcMdZSToc50ejD8uejl00Me8EF18MLxSG7hOI2beDBzhmT2gag==
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=UVh+cLsbXjVRZjKSAGe4AE+4zxFPQNuouxrlS5koUM8=;
 b=Q5VEgIMgt4xVvKbk/bbD17hTzMkPG5nLsmHZiSiQ21uzMJPdtWTSmze0FWNp9PfDtOJ4t+TVAxDQgVqsjYF9MltAzh7nLZRnOlnsXryasruHOXvcdRcZUoqcvn1BV3bx2EMtR3V445+8NnqFnDoAhqLe/DDsUJJll2miop75rls=
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: 586b74d149800357
X-TessianGatewayMetadata: DwH9Zun0JciJ5IPa4n8VNrj/haWi6UlH6UIhCFOAHjHtc9GqlhUI7HYaYAJjowgW1/Nc/tFTAiUeBAJ0RfkhTlsk5B5xOQvWIUD/PSSmQKiNGOnJgoYo8qrWntCfgwDQlRbz3C2eviWwSkk0YHFkTmhDxWUGhU/EHLkg7q5aP/Q=
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=AN2wfbgc3APcaVuVmpN3jHbbKx3tlUGp+NFcS42BHia9fQaar+1F1feB/W52lu2VsdVDSNoxjUQFJr4KasuURVGv3Qk08vUM7GR8EyBCHMA9RYimGLDMsYAAb0xvGlTHhFaekXWntlSor7AGFV2VbKUOGb6sD08C72PHTTwWHyZvXilva42msP1mE1f9jN6zpd5j1gEzx+/xh4luY1ZJI2Qfe2Kvr36qdJ8dt4Ek6zR50PjMwqQCP4RLuPOngjlseUunBR72k+9BKW1Z99mnX005CiC2Nxh+FmF7WeJ3svvMA0HsX0j6LWwqNglBk10fvArJiByPCBR5AUQ9+fudFA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=UVh+cLsbXjVRZjKSAGe4AE+4zxFPQNuouxrlS5koUM8=;
 b=bqyfgEhlle1+1sz3H2KlPHEwv6H23pK/82b6Ibi/qKXLFv9Tx+q5Jx3bNIsRqs+0ZwHe7ZYhHpLRujQQKUYpW6KV+AolonTJlYXkAUPkLtY7IKxyywU55ZuCUQxtZ60AXQTCJbDK3+u36wvo/XC3dcrixp3o9WZCdXg2eeYCbeagGO006r5NGz2S7Rs7ibKyHscpPJ1seiAeIvWGcK7jAOD+S7DWBvsYTMd9U1qpxvSNfJGvddoyMbZ20z+8uk7nn0svXPe5FIFDCYVSpqicgrxhXch/lIQk86ZNOE3vJ5E1itgfu3UzdiXpeAQNN+GzZzqYC9jZ8eldIPvmzHYznA==
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=UVh+cLsbXjVRZjKSAGe4AE+4zxFPQNuouxrlS5koUM8=;
 b=Q5VEgIMgt4xVvKbk/bbD17hTzMkPG5nLsmHZiSiQ21uzMJPdtWTSmze0FWNp9PfDtOJ4t+TVAxDQgVqsjYF9MltAzh7nLZRnOlnsXryasruHOXvcdRcZUoqcvn1BV3bx2EMtR3V445+8NnqFnDoAhqLe/DDsUJJll2miop75rls=
From: Bertrand Marquis <Bertrand.Marquis@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>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH] xen/arm: Don't call process_shm_chosen() during ACPI boot
Thread-Topic: [PATCH] xen/arm: Don't call process_shm_chosen() during ACPI
 boot
Thread-Index: AQHbo6s3fHChr4GXjUe34zIKQkrL6rOQE4WA
Date: Wed, 2 Apr 2025 08:58:52 +0000
Message-ID: <DB88128D-3712-43A7-93EA-F487A82448BD@arm.com>
References: <20250402084233.114604-1-michal.orzel@amd.com>
In-Reply-To: <20250402084233.114604-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.400.131.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DB9PR08MB6588:EE_|VI0PR08MB10390:EE_|AM4PEPF00027A66:EE_|AS4PR08MB8166:EE_
X-MS-Office365-Filtering-Correlation-Id: d260ce14-6a26-439b-987e-08dd71c49f54
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:
 =?us-ascii?Q?X2Q4/VSV6YFx16lfvvZMZIJUgPAzmpWGP3VgsnuHsc74Ij0u0/kSShuOxe4Y?=
 =?us-ascii?Q?JezdeBoOKrM/oD8z1pAHprN1cK9YkJN8RvJW/3cf6ZQffJBxB0j1W4TO5GNw?=
 =?us-ascii?Q?GxhPPb8o5DWmRnIaqeYOq71sWHfPS5oBYLTmDRxYD7urlgCPAjum4cukSMgQ?=
 =?us-ascii?Q?WwAhA40ADJyydpgHoYhgeB1VPbdsvn7nXHf7PBCSR5lqr75rCJVuDNPCHjob?=
 =?us-ascii?Q?XutnvI0aMnxatIu2ljKZJTmWuAbdN4IsVnLJkGI/KFxgbqpoaAa3quzb8wlT?=
 =?us-ascii?Q?s1ZoBqN/0RnUFXVCX3x2me8w5mYt0a9hzBsgQkhibqFUmg0gs6o+9ULemhbG?=
 =?us-ascii?Q?2SBKfXqTu+zc1HufgO6anMErAf9nD5Q/TvSuOGENduEzoVnTV+0b3PsnxH7F?=
 =?us-ascii?Q?FIemIon+Etoi52jj3hr2p6noY/Pi39kbL96hc3nRTJ8NCVKfxyP1TN8zyecY?=
 =?us-ascii?Q?T9fNOWReue0/xU9n0PgO2FZOxamyJSbNec/tsi8K/HnZqY4zTkQX+E+6RKbU?=
 =?us-ascii?Q?vDKQcw/LmsWMzBseTNvyopaMyb60D3VuImyYQfAEiAVNYXs8GIWLPUgFi+dB?=
 =?us-ascii?Q?PwRa1tqez903kuf7r80RRRUOc/cKz0Ju3/ttETSCnNm1NtS7J07zYqEmu/Xh?=
 =?us-ascii?Q?x7tNH3CM//WT5DHmMkegvyMY+8tnL/lTzXYb7dT9HUqQArI159IHc05oBgHv?=
 =?us-ascii?Q?BBhryhN45DnWQ9JlyTS40rr98pzrbAoBQ4O7QSMk3hiGnNNs+At+tFkjQ9cj?=
 =?us-ascii?Q?xWkyQxrMHtiCoUD4u4x942p3xAZvSQFXI8n7ucZmY4ZQMM92iRN76ewBamBn?=
 =?us-ascii?Q?aFusXDMfJctUBVN8SA927R44cjiPi5JE5J9OjFFT0YKnS8sGjqshy5UL1U3t?=
 =?us-ascii?Q?6pRM/bwmZC4UJtQElY40uXyGpMSlb7KHEJ1Md/RM/0IaubUz7er+d9Y7qcbQ?=
 =?us-ascii?Q?Hgwyu95Ynqw8WK+CdoEw7bK+s/MwMLKFlNefoQU3X4NfpL6VUdfzGGHv/FxL?=
 =?us-ascii?Q?/nnV+fDHVNWmjFdYPg9/Pg9omAWoAWwor6E7aJLG5eQjDjxYTq+PL5oMOG4p?=
 =?us-ascii?Q?xMeFEUWEwTzmhOtck+RsmcvEas6dBda0xK/NuE7lQM0FIJpvQqQk+p9D5svz?=
 =?us-ascii?Q?Wmjb8EHNAVwd4OPRxPd9OyR1fjeFJws9dCkbGzG0CNOaGIIw5/Y4boaoR5Cu?=
 =?us-ascii?Q?5U5DarMWnBGchc3ZNUiJuoz/syy040RRucuB/tEStiphPj328k283bxUtKq6?=
 =?us-ascii?Q?cAO/KG4CnlRYUQOSQ448cnT42QjyTrZ23+nKGe2FpS+FzZ28XIWHYMmp/4+E?=
 =?us-ascii?Q?dklecIYUQAks4Tzw+rXbYyntFVN6UI8qGd2oIaO7FkBSXCO6BuUthHnOblx+?=
 =?us-ascii?Q?YkdBYiNZZqlxC9JKU29yV0VvIEHPrai6HbI8azL/6Y9nDfk+yHYAxMZjIa78?=
 =?us-ascii?Q?QpDWBa7cUgpcrg2G/LKd8AJlr/uH1ujC?=
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)(1800799024)(376014)(38070700018);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-ID: <DD34DCF07D88DF408DDA51EED0ECBA0F@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI0PR08MB10390
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:
 AM4PEPF00027A66.eurprd04.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	ad2abcca-ea9e-4341-ff4a-08dd71c497b7
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|36860700013|82310400026|376014|14060799003|35042699022;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?urvYiIEAhMlOTRdijp+SEdzwwTRtceBwwDd6Q5wt8rRVXmXkItUnsi0b4N27?=
 =?us-ascii?Q?QOURMkm5yR7N7bOorujSb5Vdpas8xxxYVL3AWEn0GkxsTehogVagxszHxOZu?=
 =?us-ascii?Q?Kt+ySToOJGGFrH0ftTSve8qexqrbcmD5oupY8lzkTyLyNjSrDzDDxBSs/Klh?=
 =?us-ascii?Q?S1QD+HQYWro0NeVyeJLZSMnN9FMZ9jLDZV+mGae2vIuDFrgixYJg6wxKAfc5?=
 =?us-ascii?Q?w8gV536UXePPqQ8Jt1tzOmKbFH+FGcb7bQ8jMKFsPjvTTgUqsdAd65MP+eZf?=
 =?us-ascii?Q?IsjIiEwBBAW5jZRkJggkemxFrzLfXFq6VuKiyLfkrfdUbpOVYn1sl4aqU/2L?=
 =?us-ascii?Q?fjQJwQJtgY+03elrUfqH5zFOfUw8eaVGNngCvLUET+rR55ndBOtmHdNvO9pF?=
 =?us-ascii?Q?NOp19jof66X7xtCenIXqrQY2wOouHK2U5GJPEQBMaoCMgw2uLnXRjenXIoq0?=
 =?us-ascii?Q?F+UxgoIRBvCC4PaWKuo2UZxyv2RDynd20ayR+KrelkLV0MXVbt7aZk49AIC6?=
 =?us-ascii?Q?3axGVuAlzz0Y7SKMgc/DVQ5qBnY+Mz9oUcwbnnhDGVHTZItPwGQhzHa8UwvS?=
 =?us-ascii?Q?jWVPwlXegU24lhJMjscNqRF0bL5G6OmDbmyigBtnvuGhTiadIsabp3YfY5nS?=
 =?us-ascii?Q?oYPdYqe0iJqfSbB66cBVc+x8NJFRTxCGocCHFkpNYJaL8Bf7NiPtqTydT9kj?=
 =?us-ascii?Q?TLIARD2nRANgNULdYO7Z4i9fSD1Zv/XB3bQHAI7Ia6KI/hKhELEVigs4bK5f?=
 =?us-ascii?Q?ZRPsTzpJ6LRBqJoFcLNSS/TgUf1rYHxuoiSdANJ9ZogLs7p8DJ7NMP6BFKTT?=
 =?us-ascii?Q?Y95zmjALFHuIZyI/Fp8S6vS1JCTmQIma8bIbDVO61hV9xYP1P0O9L6hJeXno?=
 =?us-ascii?Q?zBY4ErUY0S64Cx7h989v/eBv9HZnVpje+S4gvRMrk1kD9B8vIGnt+8ZcAIfn?=
 =?us-ascii?Q?9QGMI6l7fdT8YDcRuyOefkzA4RlChkNGBnNcaiZu+tcceY426TbImIgYs6hd?=
 =?us-ascii?Q?AJmqPlKYNi4MHtpbqqzijQVAii/pNxrMj7auKn1IphA1eQmQ+djSCJvQ8A9i?=
 =?us-ascii?Q?ohGMQr23CUT2TjrGWy7gr4VZI19F48x80+rgw8TH2oYDkUUxZwGBkmDc3aEr?=
 =?us-ascii?Q?Tj6m/AES8hUoMmtouchx5Nnl7ztlEYig0Nzw7xgPRi2Tij//0aPyPWwM43IR?=
 =?us-ascii?Q?o/HBykis2WndUUUGaMciKtF/qEDnk6Ucg+g8L72iTpl1IIp7AdQpA6XEtex5?=
 =?us-ascii?Q?eEfbnsQRekJv+LVdc79CGrRwYQCtXHPnmdffz43gX1OeZcDmWJdiunJ7YxjU?=
 =?us-ascii?Q?doWHChWOOCut1e7x+AAukEN0Kpf4GGHceOZ1yMdMJjQ/P/snz+Lz17SKXMqf?=
 =?us-ascii?Q?xgGKIGsbh9zpAObEHGNfZFGWs0hrEz22OqVWXY7y6VctZ4JaAvn+L0Up5mK7?=
 =?us-ascii?Q?hjugrka9xmilOzHTBLmd5ZCXE7wdh/t4YVjbLGn79paHXgXpNz3MFUcj71ha?=
 =?us-ascii?Q?Me1YjAwigV7WPxg=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)(1800799024)(36860700013)(82310400026)(376014)(14060799003)(35042699022);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Apr 2025 08:59:05.6503
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: d260ce14-6a26-439b-987e-08dd71c49f54
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:
	AM4PEPF00027A66.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS4PR08MB8166

Hi Michal,

> On 2 Apr 2025, at 10:42, Michal Orzel <michal.orzel@amd.com> wrote:
>=20
> Static shared memory requires device-tree boot. At the moment, booting
> with ACPI enabled and CONFIG_STATIC_SHM=3Dy results in a data abort when
> dereferencing node in process_shm() because dt_host is always NULL.
>=20
> Fixes: 09c0a8976acf ("xen/arm: enable statically shared memory on Dom0")
> Signed-off-by: Michal Orzel <michal.orzel@amd.com>

Reviewed-by: Bertrand Marquis <bertrand.marquis@arm.com>

Cheers
Bertrand

> ---
> xen/arch/arm/domain_build.c | 9 ++++++---
> 1 file changed, 6 insertions(+), 3 deletions(-)
>=20
> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
> index 2b5b4331834f..85f423214a44 100644
> --- a/xen/arch/arm/domain_build.c
> +++ b/xen/arch/arm/domain_build.c
> @@ -2325,9 +2325,12 @@ int __init construct_hwdom(struct kernel_info *kin=
fo)
>     else
>         allocate_memory(d, kinfo);
>=20
> -    rc =3D process_shm_chosen(d, kinfo);
> -    if ( rc < 0 )
> -        return rc;
> +    if ( acpi_disabled )
> +    {
> +        rc =3D process_shm_chosen(d, kinfo);
> +        if ( rc < 0 )
> +            return rc;
> +    }
>=20
>     /* Map extra GIC MMIO, irqs and other hw stuffs to dom0. */
>     rc =3D gic_map_hwdom_extra_mappings(d);
> --=20
> 2.25.1
>=20



From xen-devel-bounces@lists.xenproject.org Wed Apr 02 08:59:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 02 Apr 2025 08:59:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.935261.1336691 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tztwt-0007WG-T0; Wed, 02 Apr 2025 08:59:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 935261.1336691; Wed, 02 Apr 2025 08:59: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 1tztwt-0007W9-Pq; Wed, 02 Apr 2025 08:59:51 +0000
Received: by outflank-mailman (input) for mailman id 935261;
 Wed, 02 Apr 2025 08:59: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=E7/M=WU=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1tztws-0007Ia-6Z
 for xen-devel@lists.xenproject.org; Wed, 02 Apr 2025 08:59:50 +0000
Received: from EUR03-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur03on20615.outbound.protection.outlook.com
 [2a01:111:f403:260c::615])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d5305ceb-0fa0-11f0-9ea8-5ba50f476ded;
 Wed, 02 Apr 2025 10:59:49 +0200 (CEST)
Received: from PR0P264CA0187.FRAP264.PROD.OUTLOOK.COM (2603:10a6:100:1c::31)
 by AS8PR08MB5957.eurprd08.prod.outlook.com (2603:10a6:20b:290::20) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.52; Wed, 2 Apr
 2025 08:59:47 +0000
Received: from AMS1EPF00000042.eurprd04.prod.outlook.com
 (2603:10a6:100:1c:cafe::dd) by PR0P264CA0187.outlook.office365.com
 (2603:10a6:100:1c::31) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8583.41 via Frontend Transport; Wed,
 2 Apr 2025 08:59:47 +0000
Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by
 AMS1EPF00000042.mail.protection.outlook.com (10.167.16.39) with
 Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8606.22
 via Frontend Transport; Wed, 2 Apr 2025 08:59:47 +0000
Received: ("Tessian outbound d42effb6eaa7:v605");
 Wed, 02 Apr 2025 08:59:47 +0000
Received: from Ld2048c796f61.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 958F11A9-C2E0-4AE6-AA29-6B69F03848DC.1; 
 Wed, 02 Apr 2025 08:59:39 +0000
Received: from EUR03-VI1-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id
 Ld2048c796f61.1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Wed, 02 Apr 2025 08:59:39 +0000
Received: from DB9PR08MB6588.eurprd08.prod.outlook.com (2603:10a6:10:25a::24)
 by VI0PR08MB10390.eurprd08.prod.outlook.com (2603:10a6:800:207::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.44; Wed, 2 Apr
 2025 08:59:38 +0000
Received: from DB9PR08MB6588.eurprd08.prod.outlook.com
 ([fe80::a8fc:ea0d:baf1:23a]) by DB9PR08MB6588.eurprd08.prod.outlook.com
 ([fe80::a8fc:ea0d:baf1:23a%7]) with mapi id 15.20.8534.048; Wed, 2 Apr 2025
 08:59: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: d5305ceb-0fa0-11f0-9ea8-5ba50f476ded
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=yhT2aMVFLP1HahJkeRMTIwQDY22qpwYa/hU0h7FEkI7CuP/ynArOBIVwCGdSnTCFqiQtMhf5HsERXbP7utcApcZTpH+1BPf3Lmlz64zc50iFTB7loAGzPe/+JGLBBskNKtADWu/THOmFRzisJ761Sw+rCBi/RQXawO2cah25D5YY26sqoNF3ID7sjndTBRq9N8JQLvXoMw97vjZmbkZ5VO8riTN3SUxCWiWMg4u4SfRxiAhs8nKGu9eUzM9B6Ne00AZpQ60Pyq5KIw1Q2/Tnkolzwuh1Ohe+JOTHwPS2E1OgEFa8IgBDcuxEVxMU8mz4j3tya0SxbkHAYBQ1VoObrg==
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=ERBiYWJ2Gt9JuwxSCCPkBVODkT3XJbnuq0l8QqZGlZ8=;
 b=I4Ll9lRnHmjw4HAx7M9kEb7pgji3la2K0/y1TvamQT/HV3DTnhFbmtvtqXfwv3f5ykc82YLliAHzPMooRwzBIlPzjVnP0+Ol6X0Pkp8y3ll23Y56XH4snZqkhUCmFe1J2bLmtHlf2vBC95hrShJka0fmPCAhaN/qVmhV8BrAVqvPb8IBZHNCLsynzls/UrNTcKJSfdrPHZsIn//H1B3Dr5gFUmfjU+YKmJSb+cKAnzv2tbE7l/cxj6coIjMHc9+98yfAIC89XYA90sEgdMeZW/n8OG1uFSSQ28rBsBryMD4rV/GGduw3dyIcGFEePNvS5a70XTuj+4ZZRQctPJ7GSQ==
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=ERBiYWJ2Gt9JuwxSCCPkBVODkT3XJbnuq0l8QqZGlZ8=;
 b=oNVFP52RcHQ721aEt6eydpv0rlarWSKH9A3Dn3bHro5NBUWqhyO+j4TXk45Yq/ZhxK1o8Tuu0nMy0gbEfryzONiX5wdb44nW51r968jD3y2IAZlba0EofVxCZ8qdNGCTGy//yrv69TpgMuwk6V3CnieK4l6jD81M0IU+3gxoLxk=
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: 4c7e144c2e7a7052
X-TessianGatewayMetadata: /OV4pbLgkl0ir0vpF51xeTMW1S4mOMHhI/TQOrZYV8Fri0A0KMMWJtqEDXtDLr3FuW7kNnFhAI4LUZHNpEVBwOCYKQtGRMF0pBP+S4WEOk1fQnjy6+axbzXKGW6kt/wn5eCgLmJvxCQM2xuCUa5hQvS16W2g7LMZeAR+f/JKCAA=
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=CG/PP4f07iECl8GSLMc7l06chON0YEHXZU6O5VxHNMHmPJKRLOFRKslE0VIfc7g/TFs47zH9yHACkWAa5uxrc67Urv3AEFpiAa2LKNW2E+oZUIM1a1zFni0ohdZH930AMowxA1imUu8vey8fuhurwG9bvDo0gRRr980iHFuBtcjhSi+ZEkCPUxvc/Z/Ut4SdrzkMkmhgX8WinsTH7BwRtYQWLlJz81bYUgzssBNKXYv/z9ZFvxMVaVwBmsGGDl5AXx/QZHm9L43w4vmhJLZUUEe60pe4h8uLgzggoN9ktArumKBbwgkIFknQrOcDRrMzTPSkgbZJg4htZqUAbomHyw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ERBiYWJ2Gt9JuwxSCCPkBVODkT3XJbnuq0l8QqZGlZ8=;
 b=KOibUa35o8AW9ya7wBL8+GQ69WEjfZdwqd4WD0SwaDYFFqNBOtq4WTBAZ0AIJoDZQmUJISpmvOdodIdar+MbLJTKNHwq4Nd7Vu+vS/X3gDSb/5dD4KGrSyPifzRjCdSycxL8nyRpJwTQlspy4wY7N3cbtxchX7dFn4SIoxpOIzxreQgMX6Xd6VdRO23ih6a+onMbNZlKOmDoxdnOcDMbWl63a9uKXg7EOuQgeS6DCayHQOpVr347/BCyu6M2ATVGk7kcJ+aWMpppL88Z6SXo1o2Lazyjt+oG6pZ3zNIkT5jChDPnlErLT5sMB5B8mv1/sLNDlRE8wSt7Mh8gCGPJdg==
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=ERBiYWJ2Gt9JuwxSCCPkBVODkT3XJbnuq0l8QqZGlZ8=;
 b=oNVFP52RcHQ721aEt6eydpv0rlarWSKH9A3Dn3bHro5NBUWqhyO+j4TXk45Yq/ZhxK1o8Tuu0nMy0gbEfryzONiX5wdb44nW51r968jD3y2IAZlba0EofVxCZ8qdNGCTGy//yrv69TpgMuwk6V3CnieK4l6jD81M0IU+3gxoLxk=
From: Bertrand Marquis <Bertrand.Marquis@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>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH v2] xen/arm: Drop process_shm_chosen()
Thread-Topic: [PATCH v2] xen/arm: Drop process_shm_chosen()
Thread-Index: AQHbo6s3glvEsGfqTEyrN7Z2cNAq6bOQE7yA
Date: Wed, 2 Apr 2025 08:59:37 +0000
Message-ID: <407B18D1-7047-47D2-8FF2-51703B6AA688@arm.com>
References: <20250402084233.114604-1-michal.orzel@amd.com>
 <20250402084233.114604-2-michal.orzel@amd.com>
In-Reply-To: <20250402084233.114604-2-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.400.131.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DB9PR08MB6588:EE_|VI0PR08MB10390:EE_|AMS1EPF00000042:EE_|AS8PR08MB5957:EE_
X-MS-Office365-Filtering-Correlation-Id: f3aef3b9-48b5-4f97-93b1-08dd71c4b80e
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:
 =?us-ascii?Q?qgwh3+D4bSYgPCeMEPc5tQFdGwc6C1zLvFcEYEod6xWSOFCuV1+BRWK6V61x?=
 =?us-ascii?Q?XfODwQDFYY6uiJiXTKi58oE5dz7rqlDS5NNCU01MPnlVp0TqFgL1RgeBkzeY?=
 =?us-ascii?Q?IfHpr/ySxDDha2AxnpYhUkYTNAht+ZIUbhXrjb5yA1/OP1E83XMpkJwBFeCY?=
 =?us-ascii?Q?Md1SjI39+4HPh6tPZhmVW0eE1lc5a3VJYVplTn41cEVqcxMiOPTuZjLhgB51?=
 =?us-ascii?Q?Q1goY8n1JyoOKO68QCRq1Vu7PSKoI7EkLdNW8YQq6E8jzVd8nnhCgH6Bn15w?=
 =?us-ascii?Q?8Jgd4/6e4JUfX8FPukbz4DL4X6xRv/tSVyQO7eJzPUkW6IeOYCpev+2JanX0?=
 =?us-ascii?Q?CAXFf0nIHYchB6dmnePTOgaEYMIlsTOhXL8xWRcKgdY9yX5dNqwOy47mHNqJ?=
 =?us-ascii?Q?yEyl+R1MJ8TptR1OJEIM9pE01blT+kgJOM3c4lWY992JWTtimQXUl/cjyEvx?=
 =?us-ascii?Q?jxNbfQ3L4spgV3CBImtN+9HVyexsgUHcH/NxFacm3uoXdECixjZ1VCmRkG/b?=
 =?us-ascii?Q?HTsIDetJQAHqvEm4I7t87a8DgyMuKnZg7wnkD3hJiIbm/otHB9VtB8cpKer1?=
 =?us-ascii?Q?4wzd98yfn09t1GVjTQCxiTBSdTSGoF1bqgNVQ+qznRuasCwJVrqELGGXGqpc?=
 =?us-ascii?Q?RB7yfLkRPRAKTNnoVHqVBHPl+jfqg5Cmrlh3I7kuYTeVK5JwzncPBCE5hPGX?=
 =?us-ascii?Q?+9YR6xK+5DSiGXuNewYHICQM2GHlpfUSuVBH1NNI5Yvk/eGDbyvg/7XNgiTc?=
 =?us-ascii?Q?fsxoSor8IgUcaoI56tyyIbUIIYhiYmrjSnY1a96MN/Ns5B59iWWM4ff+dOcK?=
 =?us-ascii?Q?HY5fW3Xr1OK2bZLjXyDMuKcgneyPRHFaRBw17NQ6h1EZV0pjbcckj8FoMvfT?=
 =?us-ascii?Q?hAytoUKoQ6T4J2OTFHmGEFIjNgAxY3XME9o6hnBG+fDjtzBrVnWg0snwPJr1?=
 =?us-ascii?Q?J8Y2dT3xGmTluhv4VL/BkfIVoannOemw6m3hb68Rv7EoUqXnN0WO9mHbjDYX?=
 =?us-ascii?Q?q1nXplwcqtPMdBfRhd8Ok4FH0tsSNyXcOJv5XCPH0SS/m9mirBcZbjy/Z+Ju?=
 =?us-ascii?Q?kcynRDpdjIiSvag8froKXO5zuiKBlhh8OfXLnlG5yHRWnFyVeItHkq2pKCym?=
 =?us-ascii?Q?zdKWg2DTKnROjmZWw6/L3gLQA4W0T4XlHMWmoHR/s6R1d6tQUouDKqJn7fyt?=
 =?us-ascii?Q?J4PjK+EFlMH3srGNyf5ruPkIQflqmM0waevTm8O1hxJ1vfNKmafUOn0RF2+o?=
 =?us-ascii?Q?tx+9ptcc7yF4Hi1HcjN/5HLCOPflhhqE1y1NA9mxRH0JYT2AiBKQm9xMGDjS?=
 =?us-ascii?Q?qvVOVa2E5gRuV0aL12emmIZLdl4mPrYdGcpGwBi2uQhxdTxq4AD6PcLzs3r5?=
 =?us-ascii?Q?qK335l3DXpi2i3wjdEvLcOkGXphnsWxcXuQt7I8gmsEQmP0Am86/R3MRxa1C?=
 =?us-ascii?Q?zyTnkPbyK+NUxacTclVUuoW808A/Yswg?=
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)(1800799024)(376014)(38070700018);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-ID: <72F497F92135BD4994577AB067766477@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI0PR08MB10390
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:
 AMS1EPF00000042.eurprd04.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	4790bf5a-752e-45c0-2efe-08dd71c4b282
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|1800799024|14060799003|376014|35042699022|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?NBX7Dbrv0v3S5iAvaKwuzz2fuYCqyDeB2vTU6OORnUPYSnCniZbkKnfs4BkQ?=
 =?us-ascii?Q?uvrKRpZB2wwVN8FkVUY3+4E9v2v0l3/WEqDsyEDUj1WSXctOxAHVjgziTfaJ?=
 =?us-ascii?Q?GvFXYXsuuZQygCqC/tu3wigYQ93iuZVA50fXN5vTSebXqZ550YaQJ4S01NIr?=
 =?us-ascii?Q?7Tib+P0jNL80YYH6vjhS3f/jlNAeztDRvNXb5CoM6Z2e+KK6Jv5s8zm+BkJv?=
 =?us-ascii?Q?QRz5Pog0GC263kvl4rrf0yqfgP755skkuQ9yg8R0NVXpYeaCSAy9Gma0trAn?=
 =?us-ascii?Q?YL07Akp9kZ9zb6eJXelSX9Aa+E3Fk27JPHK9fYk9CVyFAS96LFoHAn7JlTAR?=
 =?us-ascii?Q?VGqWbd318Ca1h3YRXbHi9BX2dZv0PbENEA3NJQttfBfKCOua1ZwXRlzbCLX2?=
 =?us-ascii?Q?D41vFIa1GOcnt2/KSom43sLo5c21dUb+dB3KNcS9arjlR0DgNJgMSvUzETtW?=
 =?us-ascii?Q?NTNWD6e4HvCZlUBH6c5nqdUDzXzt5FyZ+yQ86P4PEKXUXdTuBwGk4Wvw2+tF?=
 =?us-ascii?Q?s0FkZmlfJd/z0kzcLb9CpSgg6tl1pklRACxJjv8Xgs5cbsx+EfHucWqump+W?=
 =?us-ascii?Q?ddhv66m3yBp/rxfu6hozuW1dPO5S0gc71I55sygYQOr3iY85T+ThJJrrUTig?=
 =?us-ascii?Q?HHTK9LIBtL2148voUBw/uIolXXV8KhYMT6kgHynCjhYgZcPagTqJiqDUmjH6?=
 =?us-ascii?Q?6fsA7KD47A31SlF4Jd/XPa5RJO+r/aRkvzLZYJd0ngeJEkb8TbHEJVuj/GQC?=
 =?us-ascii?Q?EsABGW5EQoH1HnJtooFjSXjL2VcwPRg0dxlVORYq1ypSV+VuxA+smlGssS0u?=
 =?us-ascii?Q?DAhJoq0VMCzzyI2AbPzqs89zJyi9Qr+gp+GuuuNm6cltBr2W9PkyrhYzVXHc?=
 =?us-ascii?Q?WEsw9EB0dSM/3qViq2PIoIoKe+FJAK0wL2Hzsw3Bo78AgRJ+n3l3/IFHaCnk?=
 =?us-ascii?Q?UIVvjkA6wNZSKt4DVKN+CUbLETQDNxISasKo/a2E9d5SdFkfpYq5ueIR+Vl+?=
 =?us-ascii?Q?aCA+MfbTj5TrBVe49JqwJYRRVC4tOjZt3F/hxk1v0t8QMNRfr7JMJvUaL7Gl?=
 =?us-ascii?Q?a9ZQWBc33oXksG6g8v6rRWXSBskgoJAENUrjkgj8v8livI2XiDLetXOD1fPu?=
 =?us-ascii?Q?V8tWz7Db4NKeWJk7wGFdufNkjmfBEu4Qrnfzl1dx6grlZSRXv8hWQ/UaR5Cv?=
 =?us-ascii?Q?6RtanCAUfGfvxERVd2plQNEs6FRRJLtI/iJ5Fu10UrUk3SlgviD5tf89tHya?=
 =?us-ascii?Q?eT2rl3yZJpKG01mNe1ZRwfA6rwsY95bHUnYKfbPXLNEasfcBHodfKKfDxsyD?=
 =?us-ascii?Q?rB+QEnXq4RJCiEtzLLlcHuXXUZB7aaxc0bANKk2zYgyu68hcjNMLX0BGetAJ?=
 =?us-ascii?Q?KkX2pLAiwFhBWsPWzB88rVdSWQ+XpUT+It5ZHjACn88UEWmISxrL7epDUrtB?=
 =?us-ascii?Q?EGeLflfi7AcX5l/pG0bz/qmH2QXc9v9trGMaqtqugj82FqYnFggu6EOBfKWw?=
 =?us-ascii?Q?sqaWbjz2NZNVFAM=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)(1800799024)(14060799003)(376014)(35042699022)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Apr 2025 08:59:47.1032
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: f3aef3b9-48b5-4f97-93b1-08dd71c4b80e
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:
	AMS1EPF00000042.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB5957

Hi Michal,

> On 2 Apr 2025, at 10:42, Michal Orzel <michal.orzel@amd.com> wrote:
>=20
> There's no benefit in having process_shm_chosen() next to process_shm().
> The former is just a helper to pass "/chosen" node to the latter for
> hwdom case. Drop process_shm_chosen() and instead use process_shm()
> passing NULL as node parameter, which will result in searching for and
> using /chosen to find shm node (the DT full path search is done in
> process_shm() to avoid expensive lookup if !CONFIG_STATIC_SHM). This
> will simplify future handling of hw/control domain separation.
>=20
> Signed-off-by: Michal Orzel <michal.orzel@amd.com>

Thanks for the BUG_ON :-)

Reviewed-by: Bertrand Marquis <bertrand.marquis@arm.com>

Cheers
Bertrand

> ---
> Changes in v2:
> - rebase on ACPI fix
> - add BUG_ON for !/chosen
> ---
> xen/arch/arm/domain_build.c             |  2 +-
> xen/arch/arm/include/asm/static-shmem.h | 14 --------------
> xen/arch/arm/static-shmem.c             |  7 +++++++
> 3 files changed, 8 insertions(+), 15 deletions(-)
>=20
> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
> index 85f423214a44..634333cddef3 100644
> --- a/xen/arch/arm/domain_build.c
> +++ b/xen/arch/arm/domain_build.c
> @@ -2327,7 +2327,7 @@ int __init construct_hwdom(struct kernel_info *kinf=
o)
>=20
>     if ( acpi_disabled )
>     {
> -        rc =3D process_shm_chosen(d, kinfo);
> +        rc =3D process_shm(d, kinfo, NULL);
>         if ( rc < 0 )
>             return rc;
>     }
> diff --git a/xen/arch/arm/include/asm/static-shmem.h b/xen/arch/arm/inclu=
de/asm/static-shmem.h
> index fd0867c4f26b..94eaa9d500f9 100644
> --- a/xen/arch/arm/include/asm/static-shmem.h
> +++ b/xen/arch/arm/include/asm/static-shmem.h
> @@ -18,14 +18,6 @@ int make_resv_memory_node(const struct kernel_info *ki=
nfo, int addrcells,
> int process_shm(struct domain *d, struct kernel_info *kinfo,
>                 const struct dt_device_node *node);
>=20
> -static inline int process_shm_chosen(struct domain *d,
> -                                     struct kernel_info *kinfo)
> -{
> -    const struct dt_device_node *node =3D dt_find_node_by_path("/chosen"=
);
> -
> -    return process_shm(d, kinfo, node);
> -}
> -
> int process_shm_node(const void *fdt, int node, uint32_t address_cells,
>                      uint32_t size_cells);
>=20
> @@ -74,12 +66,6 @@ static inline int process_shm(struct domain *d, struct=
 kernel_info *kinfo,
>     return 0;
> }
>=20
> -static inline int process_shm_chosen(struct domain *d,
> -                                     struct kernel_info *kinfo)
> -{
> -    return 0;
> -}
> -
> static inline void init_sharedmem_pages(void) {};
>=20
> static inline int remove_shm_from_rangeset(const struct kernel_info *kinf=
o,
> diff --git a/xen/arch/arm/static-shmem.c b/xen/arch/arm/static-shmem.c
> index c74fa13d4847..e8d4ca3ba3ff 100644
> --- a/xen/arch/arm/static-shmem.c
> +++ b/xen/arch/arm/static-shmem.c
> @@ -297,6 +297,13 @@ int __init process_shm(struct domain *d, struct kern=
el_info *kinfo,
> {
>     struct dt_device_node *shm_node;
>=20
> +    /* Hwdom case - shm node under /chosen */
> +    if ( !node )
> +    {
> +        node =3D dt_find_node_by_path("/chosen");
> +        BUG_ON(!node);
> +    }
> +
>     dt_for_each_child_node(node, shm_node)
>     {
>         const struct membank *boot_shm_bank;
> --=20
> 2.25.1
>=20



From xen-devel-bounces@lists.xenproject.org Wed Apr 02 09:02:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 02 Apr 2025 09:02:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.935280.1336702 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tztzf-000271-IN; Wed, 02 Apr 2025 09:02:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 935280.1336702; Wed, 02 Apr 2025 09:02: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 1tztzf-00026u-E1; Wed, 02 Apr 2025 09:02:43 +0000
Received: by outflank-mailman (input) for mailman id 935280;
 Wed, 02 Apr 2025 09:02: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=trQc=WU=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1tztze-00026o-5a
 for xen-devel@lists.xenproject.org; Wed, 02 Apr 2025 09:02:42 +0000
Received: from NAM04-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam04on20625.outbound.protection.outlook.com
 [2a01:111:f403:240a::625])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3a146226-0fa1-11f0-9ffb-bf95429c2676;
 Wed, 02 Apr 2025 11:02:40 +0200 (CEST)
Received: from BL1PR13CA0138.namprd13.prod.outlook.com (2603:10b6:208:2bb::23)
 by BY5PR12MB4242.namprd12.prod.outlook.com (2603:10b6:a03:203::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8583.41; Wed, 2 Apr
 2025 09:02:34 +0000
Received: from MN1PEPF0000F0E5.namprd04.prod.outlook.com
 (2603:10b6:208:2bb:cafe::db) by BL1PR13CA0138.outlook.office365.com
 (2603:10b6:208:2bb::23) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8606.21 via Frontend Transport; Wed,
 2 Apr 2025 09:02:33 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 MN1PEPF0000F0E5.mail.protection.outlook.com (10.167.242.43) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8606.22 via Frontend Transport; Wed, 2 Apr 2025 09:02:33 +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, 2 Apr
 2025 04:02:32 -0500
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, 2 Apr
 2025 04:02:32 -0500
Received: from XIR-MICHALO-L1.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, 2 Apr 2025 04:02:31 -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: 3a146226-0fa1-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=unESOFCyjNMIeKkyB04DxrHZFQR3kFBCmI0DXsSWqo8oS22VOzeGrjMdNUJU10WqVcNwu28/tHSkd9GRL06AkzHZe3wmH92nZg51n6oTwXSNBRb4MCDNbE7nOuvobJOQN43Stu83QiJenqSfSv8eBcKy/lS4SZxMQE5woJ5eOGUsEgJxs7gJicGAcG5DZYIswMBJxSf2P3vJEyixi5+knHMkUsf/ST+BX94YdsGBPezXFZ9k3b/R+PFw6g2H1oRiH/PIfVGbn4oAPMdm8vQjcms5j81Vqu6D5SuH5fI62D2vpyS7YBqnKxEIElNuGlTGK/f8hRevXqrhC4XY+0wTCg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=sX+21THbZg5jhNxFuhk1wSJWXSVAeYR+tivHug6ydRI=;
 b=ZqZrcXRy2PToaP56Nst/VNM1mQS+0P+LC/9Os60Ea/s4lG0XrV49DzJmoBJk7fXU/KPpSxPi0oFQnLf9mSebOUH/214EIkPRPHP/UwTgSqRJAKklYBGJMZR/Yx6MNa/tbY5qznY69opsO2cvgeYeaUrkFVk0h66GtoBEZmjICjtR4QtwFc42LZNkxbQ7WddZ4RudqOyvc3O2TGSCgB2Jp53mZ2MinL8DMzcKwLcFdpYKC2V2eUDMnbWaa0kI92q+HIddf02xo6Z0gsHfJ1Wkn+BAUGBs9HdM4BMrgYvI8tuAYV0wO5gCPlQqzonfYakGPjeNIqgjl5J8Tiy1sh/KNg==
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=sX+21THbZg5jhNxFuhk1wSJWXSVAeYR+tivHug6ydRI=;
 b=jSX1h1Y9zF2ny5P9H83kI3WM1OiCxOCBjlEBDbs9ooZrbQD2rkkxUuRG+03e8cO7nFWbq6akZc3SeQTwZC5DuKurAsjPRf3mLgfASfBJITjYShyknhLqJPVv5NQBMIT7VL4hoOyzoZuxRdJ67Yi3reo3aHmaNKG43YDOwQG8aOk=
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>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Jan Beulich <jbeulich@suse.com>
Subject: [PATCH] xen/arm: mpu: Use new-style annotations
Date: Wed, 2 Apr 2025 11:02:29 +0200
Message-ID: <20250402090229.161177-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
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MN1PEPF0000F0E5:EE_|BY5PR12MB4242:EE_
X-MS-Office365-Filtering-Correlation-Id: 72572f61-0b24-41c4-bece-08dd71c51b33
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|376014|36860700013|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?GPh94eDxuYUUQBusF8F6zWU8+bEOD3d2rtgz4Re2CsJkK6x5OrP1hRkFK5WR?=
 =?us-ascii?Q?/396xLbXcIGgzXmRtPEscbotSNWDdUlLB10Hz32CuR8RJG8HC8SLzTEQD6sw?=
 =?us-ascii?Q?uJbHRAZGH2sMh8cJUcbR6Nj5/qURQG9fdhV91ZgFj23G7iAzNX7epj9/w28K?=
 =?us-ascii?Q?IsksM6fJrNisEPY4KYiKgIZcns1tk9TiE8oMsE3naP6VLXWJkl3JIlosZs1h?=
 =?us-ascii?Q?bLDZzOP9w8cNJO7Hw+8QcFpUJBi9RBoji1vRaoiITkj39jOjI/zS7ymjvRhA?=
 =?us-ascii?Q?vODb+HtJ2TE8uLxNBtLQf0K10dWVybhz8nbvcG4z0guHyYzizfHyGo67Z6se?=
 =?us-ascii?Q?Am46Xke6wo9SFnJOJq30pVQHoYUYrWo7NWtIFK+CgR1HfWAUGuNu3cyhtjeC?=
 =?us-ascii?Q?b9Fc8ue77zs0vAWW7dPr0cUuw4xexWjpo24Ew27+xHeytLzxv4tTqXsIefSb?=
 =?us-ascii?Q?yBnX+iyEbZhkG6UtA7UxlS5ZGnHf1K4z/pFwRlYtrVaOtqubg16Nxv6abEGV?=
 =?us-ascii?Q?QxggWxzVPM0X83y8oqYOrYCl6ssfyZf9f8/BOIYC4jdKmm9221EPcSrNbckG?=
 =?us-ascii?Q?bUdcYZm7Q0CQmTWvx/FVfC0yJliF1JiNLJMZ5MLd5xo7YmK+x1rGArhJcDBV?=
 =?us-ascii?Q?p2v10x+Z+gEXyt0BDR83rx6ObPCeOqhrIAe9bmkF1BSPZSKjZtDBSf0nFe6Z?=
 =?us-ascii?Q?/blvUef/Nqkl3iSUl/xIq0R7qUqMG1uJNy6ulbRWhE2WLqSEM1KG3iUHsj/q?=
 =?us-ascii?Q?txuU5/rOCPnJQ5MsMEQW/XDr6X0X6vExLoZUtOhONTAUWu5XUBpl5SpYPVOC?=
 =?us-ascii?Q?ShVMsqLOdNPetWse82w/x7QTP+UGx99iR7tpeaVFD5jgKx078bKUF401OYVk?=
 =?us-ascii?Q?Ap7I/IF2dzf2J2KY8pDInNKl1WcWFm+rnOkOpAk0kyWaddOJ/AIsJtbAEQWi?=
 =?us-ascii?Q?WSJh+XZSIb1f1+3rbN2W9+mHa8pmh/D9XP4PJgLOkOXVEmT34WJ7IUueOW70?=
 =?us-ascii?Q?zBnrZI7jvaLdQMWJkgglQqC4GyZtMYGBsrofidOkLSEn2RUZMjaWCB5RzMqK?=
 =?us-ascii?Q?vxFWHAWeb1ZSftVbPLxoSJfHIBuZa+bAm5vWTtTpy2Zd0qS9LUhwsoib6Rnf?=
 =?us-ascii?Q?sHtoMUH5lWRQc64AByupvEqfJWq/pBE1svE//1WSTjfjjxE2AwVeDNjxA0me?=
 =?us-ascii?Q?oBch+XFA7tA0A0z00Z02N6GA1O5CJC352bLSqqfJtN+TueYZOCGck9O6aM+D?=
 =?us-ascii?Q?YQV1JjRJ7BW7m8Lz4menUeIdD1zu0l40u5J7t9mJP//S+EgbXSCAw0PBkaQL?=
 =?us-ascii?Q?DxSHal7whLwcuHcS2Xrlp5tgxnPZpGJISywD4yRsWhcmSvX9pb6/SJtduYkn?=
 =?us-ascii?Q?e/soM5IwD4AEH1UCqAyUFZVpasyJ9FXGm3nqBrKauPzOBk02fUKnWiYn6MMG?=
 =?us-ascii?Q?YPsoiGfqjcT9RK8RHbbOYGaON19pKdJ90GFEMShyU27QSRGrhVZdSXIUiRhP?=
 =?us-ascii?Q?odJ4bCerYFTacf4=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)(82310400026)(376014)(36860700013)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Apr 2025 09:02:33.5037
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 72572f61-0b24-41c4-bece-08dd71c51b33
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:
	MN1PEPF0000F0E5.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR12MB4242

When purging old-style annotations, MPU code was left unmodified. Fix
it.

Fixes: 221c66f4f2a4 ("Arm: purge ENTRY(), ENDPROC(), and ALIGN")
Signed-off-by: Michal Orzel <michal.orzel@amd.com>
---
I found the issue when applying Luca series to be commited enabling MPU on
Arm64 build. This patch is a prerequisite for it.
---
 xen/arch/arm/arm64/mpu/head.S | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/xen/arch/arm/arm64/mpu/head.S b/xen/arch/arm/arm64/mpu/head.S
index 4d00de4869af..ed01993d8556 100644
--- a/xen/arch/arm/arm64/mpu/head.S
+++ b/xen/arch/arm/arm64/mpu/head.S
@@ -158,11 +158,11 @@ 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)
+FUNC(enable_secondary_cpu_mm)
     PRINT("- SMP not enabled yet -\r\n")
 1:  wfe
     b 1b
-ENDPROC(enable_secondary_cpu_mm)
+END(enable_secondary_cpu_mm)
 
 /*
  * Local variables:
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Wed Apr 02 09:04:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 02 Apr 2025 09:04:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.935291.1336711 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzu1B-0002eh-SD; Wed, 02 Apr 2025 09:04:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 935291.1336711; Wed, 02 Apr 2025 09:04:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzu1B-0002ea-OK; Wed, 02 Apr 2025 09:04:17 +0000
Received: by outflank-mailman (input) for mailman id 935291;
 Wed, 02 Apr 2025 09:04: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=trQc=WU=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1tzu1A-0002eU-KX
 for xen-devel@lists.xenproject.org; Wed, 02 Apr 2025 09:04:16 +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 73252db3-0fa1-11f0-9ffb-bf95429c2676;
 Wed, 02 Apr 2025 11:04:14 +0200 (CEST)
Received: from BN9PR12MB5273.namprd12.prod.outlook.com (2603:10b6:408:11e::22)
 by CH3PR12MB9022.namprd12.prod.outlook.com (2603:10b6:610:171::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.50; Wed, 2 Apr
 2025 09:04:11 +0000
Received: from BN9PR12MB5273.namprd12.prod.outlook.com
 ([fe80::cf66:58ab:47be:4b13]) by BN9PR12MB5273.namprd12.prod.outlook.com
 ([fe80::cf66:58ab:47be:4b13%5]) with mapi id 15.20.8534.045; Wed, 2 Apr 2025
 09:04: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: 73252db3-0fa1-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=g6xovmobdBHQk4jXqJAtLvyjy4ifafUMFa7rQsdY8Nk2mBBRt+qmCGLH01OJNkbraViURAOpJeez7z3e8KHJJADCPh39DzUnceHNMMCwmyD00JBlFQEU7Gsf4byaixXOUc7BEzPqAS3bwf9dEZzE1Wgub3uof3ijP+GuHpjxeCLd2CBr7IjmvxluDvyXikNbrjds+XdmkanSYfOQDl37YkHJQEfcjUvEKcqsiPVBnjx9RtBFRsei0tyKxBLUnDmPscdlSg0ZTxvmsGJ5WsbARbZzjd8PgNVlef7jHvO/h+gykicHRYP234KvXfqdNRJfXeGg9ORkTzO6GC0RIUWl2Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=49pBpG9I4LV0Rpvb7Ee9EEPkhH/chRtrEzqAzYy69Pw=;
 b=xTD82uhRh3d9kkKg1kaIL+caWCyPjU453QMLRgCEuGzeWuiQNJMEqp/laSF8Py1TFRpNxFvQriIp3IsmqXVCW0JWkAi9fqKSmNBbQJPyS0BrGApYTDBGj96wkbIOEB98biQHJokXhPShWxCwYNJDjtEIZKunvSuEdTo5OOjIXZe3d60p3tAcHiAxOHd8Goj4SLfhNgIl0Y30Nzyw88nsw9lEz95j+elYJH3SO55TMBMHtM5qXj8WiKp7dbsCYpTD/kN8OJ1TPHELmHBUhEIxvv5a+9Ejffpi3yw5lxum2Que1gAZclxoHu9F4Syx3DkHm+V8vx9GPKs38eACQ3agDA==
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=49pBpG9I4LV0Rpvb7Ee9EEPkhH/chRtrEzqAzYy69Pw=;
 b=BhK6GvXaY/C2bWF/7YA6kL6LrNRmvQG+JmMPtQvooRMd/Zw7gQGj6iFWd6X3QAMvDSKeuD9MgGAdb8hBVLPIorox/vnRRPuJ9x3OCh9qzYo+ae6EcYZIm9RQc1AIUMFy1qwtH4XZDd7nAI2wNZnQuy1ZLClUwSAX7voW38X5UBE=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <3961e7d2-4f34-4297-8166-6a8a220e12c5@amd.com>
Date: Wed, 2 Apr 2025 11:04:05 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] xen: add kconfig for event_fifo
To: Stefano Stabellini <stefano.stabellini@amd.com>,
 xen-devel@lists.xenproject.org
Cc: sstabellini@kernel.org, andrew.cooper3@citrix.com, jbeulich@suse.com,
 roger.pau@citrix.com, julien@xen.org, bertrand.marquis@arm.com
References: <20250327232225.1114007-1-stefano.stabellini@amd.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <20250327232225.1114007-1-stefano.stabellini@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: PR0P264CA0104.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:100:19::20) To BN9PR12MB5273.namprd12.prod.outlook.com
 (2603:10b6:408:11e::22)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN9PR12MB5273:EE_|CH3PR12MB9022:EE_
X-MS-Office365-Filtering-Correlation-Id: afdd0152-25ce-4972-5968-08dd71c55408
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?Zlp3N0kwcjNzM1hhRXdWMXVIRDhCaXIzcHV4ZG1PZUhNN1p1dXU4VndUL0c5?=
 =?utf-8?B?Qm05Yy9KU3ArTFgrWFMvd3RuNitmeklTOU9rKy9PM0dBNitnS0puSXZKb0Ux?=
 =?utf-8?B?YzBMK2tYRXBkR1pZVDdNR1hsOWdNQzlSeUl2NEFmeDJ5T3NXZnU5dDI0Z1FD?=
 =?utf-8?B?YmthNTdvQ0szMUtqb2xjVDR4Vm5WNDZiSmFDbEtzN1hSZDdmekdlTWhjNkls?=
 =?utf-8?B?aU5jUHMybXZ6aVZkTG90TURvT0p6SmxvYUF5cXhlN2daTm45ZzlXdDIvQkkz?=
 =?utf-8?B?eXNXcVVWS1NVVWRDSmNTaTJVRTJ0bFlXclhBNVJYcTRiN203Y3NZZFd3RDR1?=
 =?utf-8?B?TGlSczd1OTdnbTdTOWdKLzZiOW5kRXhPdHkweUg2MzAxaWlraVgyU3V3VjJU?=
 =?utf-8?B?V2wzUWNFZ2pwZit2QmVsU25pd1luc2xwcnRBRDRMbjNDMDRsZTJ0OG51WFU1?=
 =?utf-8?B?Vko2S1pYUUwxMHJHeHBWTGRXMCtBY2JDeDlCQ0ppSFhyMFJPWkdMcjB1NXlS?=
 =?utf-8?B?VDYwejhnTGVXSDI5QVZpbGlRSU92b1BPeHREUXMzWkxNcUJhKzI2V0thTndj?=
 =?utf-8?B?aTVIK0NjdS9tUXRJdmRTWUxmcGJGSmpWQ2dlUFpleTlSV1IrYjZnZzZaTm9k?=
 =?utf-8?B?bzY3TExyNDBMTmpHNm8wckgxY0ZjUGtOaVhZQmRvcjFsWWppcmh6VGtieWpv?=
 =?utf-8?B?Q3pnNWhzeEEwazE3aXZMeWd1RCtQM1pDc1pyTWt6U2twbjZhVnZCQ2tHalBn?=
 =?utf-8?B?V0hDTnpqeTdxczhNRVIrYnJqSzUxdTVyRDNGZXY3L1hQbXRtTll3YjNhU1BD?=
 =?utf-8?B?NHhBRnQ3c1ptN2RJdHhDMGFQcE9kUU5zODZvd1ZmNjVaNDF1TExJNVAwVGl4?=
 =?utf-8?B?Nnl5K09DcUdHS0UxencwUFdQYjJjQ3AwbExKeXl2TUxOcVEwUDlvQzdGNGtM?=
 =?utf-8?B?eDlPUVUrU2NsZEFWZk83RmZmS25BTHVETlMxVGVyOEFlK3dhT0w2TFRTTlBv?=
 =?utf-8?B?NHpaVG0wTWROM2dCYWlNOXBPUVJUV2NONHRUWnVZSHptcW1QbGdmSytkLy9v?=
 =?utf-8?B?b3BZbmpidXJ2NkQ1WEY1UFpINm9HZlJ3a2h6TFVyVEFsRG5QUU9CblVHY0tw?=
 =?utf-8?B?RXU2NWJCTGxWbTdXTEZZR1kwTGxGZ3k5Q0ZKUjZwbE5YOWFZdzFxbEhzeUlj?=
 =?utf-8?B?UTJ5alNJSWcxd1gyOWZPSUI2elM4V3FwM3FGK3Awc3BuMkJ3Z0NoQ0NjZTlk?=
 =?utf-8?B?TmxReThHZUEyNXVtaW16elMveXF6VUg3L0xmdEZVTWJEVUhZWnN1cGUvNnFz?=
 =?utf-8?B?ZGR2STRBTVk1U3RCa1RURzBOT2YreXZxZHluTDBsU3dhckRqQ2tuRFFUcHI4?=
 =?utf-8?B?Z2d2ck9tL0o5U0V1SXhQUklRSmxoRTNxc1RnVkFVaHVxbG8wUms4aktRL01X?=
 =?utf-8?B?V01xenhXN1pZSWVpMlNlNGM0YVFPQzYvN0t4OVhGZUE5MFF2dS9tVGxjVGdM?=
 =?utf-8?B?UnpzVzJvV0Yrb0N6TnRQVG9YaGFod1ErUXBPMTlSY203NjUxcnZOTUxYbUY4?=
 =?utf-8?B?TzVrOUZ0TmdoeHZleFhLU2tzZjVJSkJVU1ZlM20ybmo2VzR0bFA0d0t0MXBq?=
 =?utf-8?B?alRrKzAwalZEd1czZnhOanFXRW5ZcEsxSDliV2c0c1ovR1lva0lpRkRPSFBW?=
 =?utf-8?B?Zm9LWWhMbjV3bHBzRWZ0VWtTRmdIajFZVHhQNnN5OVU0cFZIR0djM0U0UVFW?=
 =?utf-8?B?ZGVzdlNEZi9ZQ2VUUTBFTHdjK1phTmZPa1duRHVZYVRwMmI5d1JObDdRcU0y?=
 =?utf-8?B?MFpHOVdERkJxdnhmRjhJeDY4ZWk5SVFORWh0QnZ1R25rdmVKMWF4TjZlZk04?=
 =?utf-8?Q?gdaH+41MxZvbs?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN9PR12MB5273.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?Nm9YWUJMZENhbExnYnMyWHFCV3FQdnFVa2gxcmU4cFpxeVdHVkVjVzVaZGtM?=
 =?utf-8?B?ZzdDcEdYMW5Fa2k0U0hSemFMa052Umh3eDRyQ09UM08vTW5Sc3RwSzlPODJJ?=
 =?utf-8?B?Z3lKNVRRSFNEQ3JUcHhSbEUrSlhCQVZwZW9acDBwWjBUSUJCSDNra3R2Z1Jp?=
 =?utf-8?B?Tnp1NDlCaS9LV0lVeDZtenJYRDZza0Q4U254V2pSYVZWdG1Ga3JmUjJVQWhE?=
 =?utf-8?B?RGw0d2luTklVSzdKa0d3SVVQK2F2Q24rRHo0aUlhUjM4VUhMZE5DVTVyZzZY?=
 =?utf-8?B?MllyRU1EclJMck51dTIrYUo2aDcwejM0VENXWVRJYXoySmRKNDJYSDRKTUZK?=
 =?utf-8?B?azFDQWRNbWNwR2ExWnU0aUlTekpoV2J4SVptUUkxS251cGNWaXFQNXhnVnVN?=
 =?utf-8?B?SlQyQyt4N1dPRW1QWEZxNzQ0UElTci96clZyZ2JrV0hVREN6NDhBSUN6SHVG?=
 =?utf-8?B?RmpqNzViL0NzNWEzMFIwNXlxckpXMWVwdlNuRkx4SENTY1l2dCtuRCtVTjNh?=
 =?utf-8?B?OWtrejFrN09GWDJNOUhjRFdYTGdHM0kvdTc2TmN1RVNPSWU1b1AvR01sYmUw?=
 =?utf-8?B?eXBnS1d4OFJLTCtzMldTZWhINDV4UmlERHJoeFl5dmt6d0hmV0VQdzFxKzV4?=
 =?utf-8?B?a29yOEI4cUpzd0VnRFNHRDZXbVd3dUI5NWJHMDdxcUo3T3hUd1N5Q3BXOUFk?=
 =?utf-8?B?NUFhczV5ekQ0cDd0YjBhcnB5QTVtS3V5MXd2bHVYTE12M3ZDK3pkNG16ZitE?=
 =?utf-8?B?WlRkcitDdlBXTjArcW1JeUlZVjJXVWJTd2E2enFtTGZ6U1VJdDltaDFlemho?=
 =?utf-8?B?UFlTM3BOZ1dKcEVCSXIwRjYzWWRZUmUraGtEUVVZT2dDdWZ6UTBRRFRCYXNY?=
 =?utf-8?B?SEkydU94K3VycURWenpYbmJldklOckZvL2xDZ3E4VG1GNzlxT1FKMEduRFhx?=
 =?utf-8?B?UHJMeHlmVXY3NHowbzduSVViYTJXcWRXYnkweEQ5aXpiRFlKVHp5SmFmZEdB?=
 =?utf-8?B?bFJhZ1JnTytjRENObkd6bjVOVVdxVmUwQ1pKbi9kSmVwMEduOE1NT1pweVZi?=
 =?utf-8?B?VVBjQXVnWVpURmIwZTVyS0ovMThNQjJkU0Y3U1VZd3pqWi9EUWNFVU91MEhY?=
 =?utf-8?B?Z2ZscVh4dWVNQmY4ZGRySGF4K0ZmdWdvQys4OWhzWWRZS2dwTmVJSnRUb0tl?=
 =?utf-8?B?d0MrWmNlTHJXWGlLcFpNUXlySGZIMFpLdCttcm10RFRBV1Jab1NkSDFYWUpW?=
 =?utf-8?B?VlErVmhCalFnT0xKUFNJN0RwSnJPdGc4bXN3eGk3UEkxTUZGVzRyN0w2bVVo?=
 =?utf-8?B?bXg5R1J6UUFWQkltbzlDY0tiRllJS2RybzRBSlovc2ZZSEErNmF1Z0Nlaity?=
 =?utf-8?B?bG0zbU9SRkZ0elJYNGl3VmtPdHZ2UTBXRHVxYjk5eGVpQjdFV0htem1CajJC?=
 =?utf-8?B?SGVISG51bDN0Sy9sRXNXSVlKcG8rai93a3JaQW0yZVlja3pBeXdBWkZyNkV2?=
 =?utf-8?B?TWtlVHVEeXNJQ01zMVAyc1ppc1ZNZytob2t1WVhwNHZ4OUNrTVZtRDlFT1hG?=
 =?utf-8?B?NlRZbm9RdjZTNTJSQU5kZEZSeGVhMVB4OFkwdzU1bjlNZ2xERTliN1hYc3pq?=
 =?utf-8?B?enNtamNlYlJMdXpzVU1kN0JrMmJ0aWg5cjBsRHI0Q0hZTlpDejZzRzNrbVZ5?=
 =?utf-8?B?SWpwdE41clZ0NDhybDZXQ0pSTUsrSTlVSjUrakJLaGFLdklQczlMbGs0SXB1?=
 =?utf-8?B?QThneGZpU0x4UGpWaXhuVkNqWFBTRm1lR1JHckNMb0E0bGhXNUV6L1hFbVdk?=
 =?utf-8?B?eUMwdjY0RXMveHNLa1B1dTBPRW5sdGVjRTVweE1WeWc3OVRkaEFzRGErbTFE?=
 =?utf-8?B?K1FHRGdhZnFuNUMxWTlValJIcDZKWlpFd1RNc293ajRQMEhsVStHYXg3TGEx?=
 =?utf-8?B?OU5TSjdkaDMzWDFKUkhCazZNS29zL0tKUjZRZURwbmVxdFFhQVp5S3E0cWsv?=
 =?utf-8?B?NG5aMWhnTUNSUkpaRWVSZlZoVXN2YUZ5R2MxTmZla3FpWUlWSlczeEljc3FH?=
 =?utf-8?B?NVpNWCt3ZE85VHhzeW1BNnV5VmlMYUIzZFViY056bzdDeVFVVUxxM1ZIbEtI?=
 =?utf-8?Q?DL7gqBUapW2V2OWj8YmIVw85N?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: afdd0152-25ce-4972-5968-08dd71c55408
X-MS-Exchange-CrossTenant-AuthSource: BN9PR12MB5273.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Apr 2025 09:04:09.1053
 (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: g9BSmb6RwpQIYKOxFBqGJiLTanpy2W5YU5AlgyX8r0om6Y1lnsICX6p6T5bQtP4x
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB9022



On 28/03/2025 00:22, Stefano Stabellini wrote:
> Evtchn fifos are not needed on smaller systems; the older interface is
> lightweight and sufficient. Also, event_fifo causes runtime anonymous
> memory allocations, which are undesirable.  Additionally, it exposes an
> extra interface to the guest, which is also undesirable unless
> necessary.
> 
> Make it possible to disable evtchn fifo.
> 
> Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
Acked-by: Michal Orzel <michal.orzel@amd.com>

~Michal



From xen-devel-bounces@lists.xenproject.org Wed Apr 02 09:10:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 02 Apr 2025 09:10:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.935303.1336721 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzu6n-00043t-Ex; Wed, 02 Apr 2025 09:10:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 935303.1336721; Wed, 02 Apr 2025 09:10: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 1tzu6n-00043T-Bj; Wed, 02 Apr 2025 09:10:05 +0000
Received: by outflank-mailman (input) for mailman id 935303;
 Wed, 02 Apr 2025 09:10: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 1tzu6m-0003la-7o
 for xen-devel@lists.xenproject.org; Wed, 02 Apr 2025 09:10: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 1tzu6l-007QTq-2C;
 Wed, 02 Apr 2025 09:10:03 +0000
Received: from [2a02:8012:3a1:0:9928:c7aa:a3ed:1d45]
 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 1tzu6l-003UYx-1e;
 Wed, 02 Apr 2025 09:10: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=IiUYA9wWEk3RqA3ZFseM7mr4K627FllFl5yqmwTYLzQ=; b=KbUZWghIMEx8AEU4hziQkHv1pV
	r0PyC6RmyH7R6Br9eEwINGgS05yXZjVG9V4PoQDCIEx/b8CNtNuG2TJmSB812i3jVHmXvJyGP4dgI
	/oATLex4DuX+Fg8xvrjsBwOjnDPw4t38kSN1grsZPJtk6HA7Z2PR5HNVX2i3Z89ZuUY4=;
Message-ID: <e9f0139b-957e-4223-a7c4-9547eaca1a50@xen.org>
Date: Wed, 2 Apr 2025 10:10:01 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/arm: mpu: Use new-style annotations
Content-Language: en-GB
To: Michal Orzel <michal.orzel@amd.com>, xen-devel@lists.xenproject.org
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Jan Beulich <jbeulich@suse.com>
References: <20250402090229.161177-1-michal.orzel@amd.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20250402090229.161177-1-michal.orzel@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Michal,

On 02/04/2025 10:02, Michal Orzel wrote:
> When purging old-style annotations, MPU code was left unmodified. Fix
> it.
> 
> Fixes: 221c66f4f2a4 ("Arm: purge ENTRY(), ENDPROC(), and ALIGN")
> Signed-off-by: Michal Orzel <michal.orzel@amd.com>

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

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Wed Apr 02 09:13:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 02 Apr 2025 09:13:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.935316.1336730 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzu9q-0006Dd-RL; Wed, 02 Apr 2025 09:13:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 935316.1336730; Wed, 02 Apr 2025 09: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 1tzu9q-0006DW-Or; Wed, 02 Apr 2025 09:13:14 +0000
Received: by outflank-mailman (input) for mailman id 935316;
 Wed, 02 Apr 2025 09:13: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=T645=WU=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tzu9p-0006DM-B5
 for xen-devel@lists.xenproject.org; Wed, 02 Apr 2025 09:13:13 +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 b3a117ee-0fa2-11f0-9ea8-5ba50f476ded;
 Wed, 02 Apr 2025 11:13:12 +0200 (CEST)
Received: by mail-wr1-x429.google.com with SMTP id
 ffacd0b85a97d-3912d2c89ecso5697939f8f.2
 for <xen-devel@lists.xenproject.org>; Wed, 02 Apr 2025 02:13:12 -0700 (PDT)
Received: from [10.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-39c0b66363fsm16914518f8f.36.2025.04.02.02.13.11
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 02 Apr 2025 02:13: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: b3a117ee-0fa2-11f0-9ea8-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743585192; x=1744189992; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=LdnoTxTKSF7fSTh0u+R4IIHdHncbHjgjfzFp4UydAQ0=;
        b=Zw3vXSFGhDmINn10NM/pq5Vji2CKQxUtpXfaMDSNAgRa+w6CJtyAJcE7pfT8KSKQ3Q
         V7IERl3BT7OsCaTGMarOEZ0i+lsPfT+cLaRtE/l3TjlApr+ViJL2VWbL13pGnQpFBazq
         6U5wFpWzrNv+6YajyYjcYTEX12gJ2l5cLsyvvoBiYBoBp/3E8CAvauWukQ+bXrer7jxv
         NF4Sl5VC4qD02kHSjsTy5+Kxn/bUs+AdTPHXwHlnM7Epuxk4jOcR/j5QbiRyCC0KJIlL
         n3ROTln1I+eoyDr+1zd3p5nBnENPmFMowJvzMdK/yxWHzNzRlSOGx4OldYWsRP/CaBkV
         a/lw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743585192; x=1744189992;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=LdnoTxTKSF7fSTh0u+R4IIHdHncbHjgjfzFp4UydAQ0=;
        b=iv6DZR/Lm7OdiSj5yFEzSZGW0lkupnVZuOlOyy24nPq0nEX+MOjBdEBGn1YT5SzLLk
         /BFOiKOwN/GciEU4Xdr/0CvGZmqrK79OhxvDs8Kj9+kF9AYtr1tiflyxk+7xfM03u925
         co4p7Dky9BassQzYsaE1gurDM9jyQe/b+anfkQwtSZ89Nusrbm17kIJe+K0tqpGKGDkL
         YjYHAXUzKMRpHXlw6dwR9U+mnGIjzsAQxjRf+ncwEYge3bDaEFpCxFrVICL8kuicEVtZ
         844XtdabO2YBCubQjZynAWAk33qSUR3RFoIJm41wTm118094dGKXMlJZTj11aVcxvI6f
         Ycew==
X-Forwarded-Encrypted: i=1; AJvYcCXCS1wd472BxWzrI44POZP26N87oRGCEF4vqfJbWPe6vY5z+T/nBCLbPr67NqsjY+T8kbzYEFs5XXQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzi7JuOHoH/kk63EufvORJigBMZe211pnL8P5cdwUzFvqPCp6IK
	HO5fa0axuG3e9Jt4UlqHpU3DU9DcB1QpzMqf9oC0pyG7JU+Pk60LGIjUjE1vfg==
X-Gm-Gg: ASbGncuTKVBmEMaOxW6JJBuPDQR+cN/BI+QM2o7987yhJHoqYwTHUIhQ80F/EHmA0Cl
	xTdKVwy9kbfUtcwLWkVquN+DnwgMcJ8JL6wqPcXRfNvkboUUB8dBEy8Rn47kB+p0S/iVPHsLS/A
	I2H6HK/hrm75hL2bpN/1HD0ficaXPYyg5kgfl0eMP3U9S2b8veUO1eAIglN6WolVBQqzMjbU7F1
	GRC1lzdhAOalQHmc+8D2BnbWMJ6Yuaoht6TlEgWGc/sq4/vm6A46fh5Dk1tpe0eViZMu+OAItb8
	17Iywu7x31MEJmUj34OcfX64rLHR1zWe4mZKhum27ZzNNDddPfEOfp0fGplUDXhQoMsPouTMAjv
	0kwjLyloTt+WP7KjcdGB0F06U6NuAUQ==
X-Google-Smtp-Source: AGHT+IHtyy3OsNBWilkv4NusLAIsg9/dJmuo1yuVQ6WpForVgWE2tTeTCuEyizqmFBnFbRLtGhsHRA==
X-Received: by 2002:a05:6000:401f:b0:391:2dea:c9a5 with SMTP id ffacd0b85a97d-39c120de319mr14307966f8f.20.1743585191660;
        Wed, 02 Apr 2025 02:13:11 -0700 (PDT)
Message-ID: <4ec15a0b-7fb9-4722-8ac4-ace83eee74c8@suse.com>
Date: Wed, 2 Apr 2025 11:13:10 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/arm: mpu: Use new-style annotations
To: Michal Orzel <michal.orzel@amd.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 xen-devel@lists.xenproject.org
References: <20250402090229.161177-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: <20250402090229.161177-1-michal.orzel@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 02.04.2025 11:02, Michal Orzel wrote:
> When purging old-style annotations, MPU code was left unmodified. Fix
> it.
> 
> Fixes: 221c66f4f2a4 ("Arm: purge ENTRY(), ENDPROC(), and ALIGN")
> Signed-off-by: Michal Orzel <michal.orzel@amd.com>

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

I'm sorry for the oversight. I had meant to do a last-minute grep before
committing that patch, but then forgot. A tiny bit to my excuse: The
introduction of MPU post-dates the common-ized assembly annotations by
quite a bit. It should have used new-style annotations from the very
beginning imo.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Apr 02 09:18:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 02 Apr 2025 09:18:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.935332.1336741 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzuEd-0006ro-Ik; Wed, 02 Apr 2025 09:18:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 935332.1336741; Wed, 02 Apr 2025 09:18: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 1tzuEd-0006rh-Ey; Wed, 02 Apr 2025 09:18:11 +0000
Received: by outflank-mailman (input) for mailman id 935332;
 Wed, 02 Apr 2025 09:18: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=T645=WU=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tzuEc-0006rZ-7Y
 for xen-devel@lists.xenproject.org; Wed, 02 Apr 2025 09:18:10 +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 64624342-0fa3-11f0-9ea8-5ba50f476ded;
 Wed, 02 Apr 2025 11:18:08 +0200 (CEST)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-43cfe574976so44836105e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 02 Apr 2025 02:18:08 -0700 (PDT)
Received: from [10.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-39c0b66b015sm16894939f8f.54.2025.04.02.02.18.06
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 02 Apr 2025 02:18: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: 64624342-0fa3-11f0-9ea8-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743585488; x=1744190288; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=zZezMXvIcwKj55KZ2ucC+5Rw5WbJ4OWTiUFXPCRvTss=;
        b=JFedLb9YpH4/V1az5ul62C0rc5VyFAsj36jZp/hgh3E7j90dBBDm13SP8AsGMNJ0xx
         E8PdVcl68eIbQcuB+A52lUf1IAZ7dLGlzFhCpFEIkCgYBeJsVgJSCx0vDBSY2ZQ+h6+H
         T01I4xIrPHQeDSm6WkJl4Q376J8FesOrwFbjeocxpVmqXzVdUL3HqWNrBfaiRQ7wwmhJ
         rRokyqDiG4fGoW9tqksU9vEkiZrUxUfFFBejlGD3ZAtnzufa7Z+3wnjKbyqpHF6eZ37d
         rxAu7/6pEsVjB1n+3OfmRX9v8p3mMT1UbZrsSxT12fUNHGf34TByn1gopwfpipFIUhiC
         9Qxw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743585488; x=1744190288;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=zZezMXvIcwKj55KZ2ucC+5Rw5WbJ4OWTiUFXPCRvTss=;
        b=k549peKwX048K0Qcnip+clIDom7nJa/p9Lxy5cMnBj28O/I4+pobiAQgj06fRSYJS3
         mZ8NWMdYsdEcfaC++3DSyXFwbJ7WeOMe2nyNAKVljygQAONwx0HHXav4P3OKQpBNa5UP
         /PDUBbXqgzdkUdwz2CYwBOH2XprZ4dTqoV9hxOyyBiCMIBOHpMotrkofptVDvBkzhQGx
         +aHzzoKl+zsfrOgqGZffv9nwP9zzN7Yu5WNIfdpEvvhsrupAoUn8jTQaodWRB1tDtlZY
         OEv2qcZaC0l4crkOroTZEm8D0QXLECjJ4CUMgwe7CboszovWPFNSxtDo1Wi8SkyVqvIb
         qitw==
X-Forwarded-Encrypted: i=1; AJvYcCWcgg1BFef/AbBBi1wrzWNpFJWAiMBPKEfBDttXvk+rih/6GzPMY+kO+2/OGWYYKkfrqLXvgvMEe28=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxjdGaeUhUyDtBS7S615cJCMtDPD8ubFoWMOnjT5HAc4GGhzJFr
	YBa198Br63XMwcaABJL8MqdnabcwSK40snApzuAt2dA0TERa1vtkZPFGPDxM5g==
X-Gm-Gg: ASbGnctKfmGNp7vWM9Uaev17h3syYkhNxemFXEXnzPOAG8YTE4oGqQtr2RDTX5/KJmY
	yGYeHM9zuLbLFpb94ye0kDqlJ56SJdQaJnH2l1HtaxzwJv7YzuM3hQvlqa1WKfFvqeopfqm7lTA
	aPEmwKr9yjXh43q1bnD+JUm21Us8h+0XCTnxwmUE2o7PlojeqnZ/8S4nuDnuHw/ccVaagDJ3Ls3
	oxwDE15OyP9TE5XB+bdCqjRmZk3Jqe0vVk/0FNjCNvrJnIbDT8M4TIvzCWX3TtUXouciLdKBNeM
	4iuNiV9icRTRSzNBAakeWi/JQTQcc26GQDBUiYo8QbbS44I3RTTTUrBW/nz0MyDF2sD/6XnBZSd
	IQgk6qKr9AjXQiYer5eMELo3y793dv2rHsJ2LYQkZ
X-Google-Smtp-Source: AGHT+IH+aqNfHD39mIV7ldSawEbddk4nWjJrqUMdCyG62gyCBY9QtE+xT1kO/b0FXXef3lr6ldZz5w==
X-Received: by 2002:a05:6000:144d:b0:39c:1ef6:4364 with SMTP id ffacd0b85a97d-39c2364b2cfmr4991150f8f.14.1743585488204;
        Wed, 02 Apr 2025 02:18:08 -0700 (PDT)
Message-ID: <fada573b-a195-43a6-8777-96ee6b5c402c@suse.com>
Date: Wed, 2 Apr 2025 11:18:04 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5] xen: simplify bitmap_to_xenctl_bitmap for little
 endian
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: Stefano Stabellini <stefano.stabellini@amd.com>,
 xen-devel@lists.xenproject.org, Andrew Cooper <andrew.cooper3@citrix.com>,
 Julien Grall <julien@xen.org>, Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <20250401005008.2787764-1-stefano.stabellini@amd.com>
 <694eac75-e872-4ba0-80ed-95c14cd11f5e@suse.com>
 <alpine.DEB.2.22.394.2504011708290.3098208@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.2504011708290.3098208@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 02.04.2025 02:14, Stefano Stabellini wrote:
> On Tue, 1 Apr 2025, Jan Beulich wrote:
>> From: Stefano Stabellini <stefano.stabellini@amd.com>
>>
>> The little endian implementation of bitmap_to_xenctl_bitmap leads to
>> unnecessary xmallocs and xfrees. Given that Xen only supports little
>> endian architectures, it is worth optimizing.
>>
>> This patch removes the need for the xmalloc on little endian
>> architectures.
>>
>> Remove clamp_last_byte as it is only called once and only needs to
>> modify one byte. Inline it.
>>
>> Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>> ---
>> v5: Fix IS_ENABLED() use. Keep more code common. Move comment.
>>     Convert LE bitmap_long_to_byte() to just a declaration.
> 
> Thanks Jan, I looked at your version carefully and it looks correct to
> me. I could give my reviewed-by but it looks weird given that I am also
> the first author.

./MAINTAINERS has a section specifically on this situation, starting with
"In the case where two people collaborate on a patch, ..."

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

Thanks.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Apr 02 09:22:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 02 Apr 2025 09:22:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.935346.1336750 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzuII-00019F-0T; Wed, 02 Apr 2025 09:21:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 935346.1336750; Wed, 02 Apr 2025 09:21: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 1tzuIH-000198-U3; Wed, 02 Apr 2025 09:21:57 +0000
Received: by outflank-mailman (input) for mailman id 935346;
 Wed, 02 Apr 2025 09:21:56 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=qYE3=WU=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tzuIG-000192-Kz
 for xen-devel@lists.xenproject.org; Wed, 02 Apr 2025 09:21:56 +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 eaaf4cf2-0fa3-11f0-9ffb-bf95429c2676;
 Wed, 02 Apr 2025 11:21:54 +0200 (CEST)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-43cf06eabdaso61398885e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 02 Apr 2025 02:21:54 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39c0b658ab2sm16581014f8f.15.2025.04.02.02.21.52
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 02 Apr 2025 02:21:53 -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: eaaf4cf2-0fa3-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1743585713; x=1744190513; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=mVu+XsclTEC69Fn0hfsPm/jbJrrBw+MNBUSAN9D3KoA=;
        b=YH9KCPouYgRoZ3AcG7re+NrDIENfMsIT7Lzky+4ylOJ3wvldRC4pG6xCgsnVbQwIqw
         tbqTnPvadrqnZerA/ltGdPakxCm74O0owdpqj+oFkdm6rE6eaiQdKSN1GukKNzjewZrw
         dFdY2X+qrq3rrpwTNoRbS+Sss4iubwnQYbAWY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743585713; x=1744190513;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=mVu+XsclTEC69Fn0hfsPm/jbJrrBw+MNBUSAN9D3KoA=;
        b=b4DjjvKHFtr0/NWGv/tb6fD6JKB37FGcYnK6mQylvZb/1FhJRpWC6Mi2ZCetF7Vjmn
         NDd9EeYysXXmVBRIaD4mfGrcL45yDZDf+7ReenNjms4foJ82/5VYYhAGZmRHo9CSBTd6
         1SO3qyFXx33xCoaUeAZ+wHg9N3r5c6Httpw67u2GctKJjLwOucPIXWQrz0xZR1PWe284
         mgVRHj+BQZGKhTNZR6x3ycqxDjFYW14lfhzdRUYVR+45L0gXl6VuZiyD9OvwU2jBjZZz
         utRFZdzvRYdHDyZGE50oi97/005Y1JGmbrjYuKdGcSoRD13+Aw0s+7JoLf6g/7PzEve8
         H+8g==
X-Forwarded-Encrypted: i=1; AJvYcCWr//A/uYaKrLUjeJBaF6p2XAnggpwFZ2dXNFKHRQgQXuqsPQesc+lLLrs290ehrLhFjwlLjWU68Vk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwcJijMQiN72DwHEh4oxG4b6DZZQkKaCrckX9JO9NTsEfyeuWZO
	C6lR5xEbbKFXVxryPUlflDQvyhyTeUpuI5C6jYKqft/RbzlI7e3IhTsDgstx1XY=
X-Gm-Gg: ASbGncuvqItTfff1pgPm4BbF1bCMe/RD8XnM2tX84SE0NW+Eg+zpy8TmvLBdqI/E4YL
	JsTEIB6XuiDL8ygfz/dnxqLVAcbYnBmiG8J7+UCvrUYgN4KyCd2DIbLBZgm5ZMkGqmCuD2+F9m8
	SOHYfN5NsavmV6c9gOqHcOEgD331P3dLfnnGpPy9GsoZkshtWQutj6wi9WSsFPMtsQYHAKwwrYN
	eAR4p5WUr1YJw8hrUVroQZ7q/EOZey+GLBn8L6qNjgOfSCUxc/SYbhV+hima8rWXwAtQo40BT/i
	OKcI+zdG2lz/227Tmoma0gvSS1H3c4cczUK2Ao+apodfA4hSoMmJHwKBHJaAPbVMGnD8/MMWL6k
	1gLA8zhNQZg==
X-Google-Smtp-Source: AGHT+IEjg2h2sr0RGMW7BYHDBG9NGN8XBDyWLSPudhDAVwOv023J+nRR0TyF62V+D/be7OMopFOj6Q==
X-Received: by 2002:a05:600c:310c:b0:43c:f575:e305 with SMTP id 5b1f17b1804b1-43db6227bb7mr137625625e9.8.1743585713535;
        Wed, 02 Apr 2025 02:21:53 -0700 (PDT)
Message-ID: <87f8fc5f-ed82-4930-bc04-50106cc5acff@citrix.com>
Date: Wed, 2 Apr 2025 10:21:52 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5] xen: simplify bitmap_to_xenctl_bitmap for little
 endian
To: Jan Beulich <jbeulich@suse.com>,
 Stefano Stabellini <stefano.stabellini@amd.com>,
 xen-devel@lists.xenproject.org
Cc: Julien Grall <julien@xen.org>, Stefano Stabellini
 <sstabellini@kernel.org>, Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <20250401005008.2787764-1-stefano.stabellini@amd.com>
 <694eac75-e872-4ba0-80ed-95c14cd11f5e@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: <694eac75-e872-4ba0-80ed-95c14cd11f5e@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 01/04/2025 11:09 am, Jan Beulich wrote:
> --- a/xen/common/bitmap.c
> +++ b/xen/common/bitmap.c
> @@ -359,12 +343,11 @@ static void bitmap_byte_to_long(unsigned
>  
>  #elif defined(__LITTLE_ENDIAN)
>  
> -static void bitmap_long_to_byte(uint8_t *bp, const unsigned long *lp,
> -				unsigned int nbits)
> -{
> -	memcpy(bp, lp, DIV_ROUND_UP(nbits, BITS_PER_BYTE));
> -	clamp_last_byte(bp, nbits);
> -}
> +#define LITTLE_ENDIAN 1 /* For IS_ENABLED(). */

I guess I can fix this in my bswap series by giving __LITTLE_ENDIAN the
value of 1 when it is defined ?

Otherwise, Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>

This is very very long overdue.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Apr 02 09:25:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 02 Apr 2025 09:25:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.935370.1336792 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzuLg-0002IT-RR; Wed, 02 Apr 2025 09:25:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 935370.1336792; Wed, 02 Apr 2025 09:25: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 1tzuLg-0002IM-Ot; Wed, 02 Apr 2025 09:25:28 +0000
Received: by outflank-mailman (input) for mailman id 935370;
 Wed, 02 Apr 2025 09:25: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=T645=WU=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tzuLf-0002IG-7J
 for xen-devel@lists.xenproject.org; Wed, 02 Apr 2025 09:25:27 +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 686cc44c-0fa4-11f0-9ffb-bf95429c2676;
 Wed, 02 Apr 2025 11:25:25 +0200 (CEST)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-43cec5cd73bso42953195e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 02 Apr 2025 02:25:25 -0700 (PDT)
Received: from [10.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-43eb60cc0fcsm14663835e9.20.2025.04.02.02.25.23
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 02 Apr 2025 02:25: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: 686cc44c-0fa4-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743585924; x=1744190724; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=M7u46J27CCYhmEFRigGoqBgSwxL6f/h2A8tMYQRwoLE=;
        b=HdUzMVIQ9QzoraNf9ebWZWEloSPPXlVEG3oxNKDDyWEkKc/PGeU6N3/r6xk65rEdBi
         tNw1bfRRr1d18REscgve/TM1X5b6fEjP3nLRKb7NtrHW1JtYLIA8vXU17oUXHzC1zjna
         xPJsQLWEKoFBdjvS4ydZ0ozSO9d4iNor1Ux2tfnPg/gAQn6plOmg4UGBoK77ltmUmaiF
         yUCLPt2TprYpY14nfiF5wMe8yRvfQbt1rPJykQAOqjgLjpRmKYIxMBXNoQivvM4fpQW0
         uL7x9ACXduwS2NA058mNcuerB6uzyybZ4S6tLSxYyJWm6yWYHUmBdN+1qKDvYfBoDPLf
         yhMA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743585924; x=1744190724;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=M7u46J27CCYhmEFRigGoqBgSwxL6f/h2A8tMYQRwoLE=;
        b=cZ8BrVYofg1tMfMhLlOQd4fBWKjVrtF+GIDUX//Mv44Z7bLmPswh0g/wMvHpQsN/yd
         v9lxdimwYIH4em8rlLFXI0XuTW6mTp4FJ0xayZeec4SWdJHG1h9GnVOL2Sm6Ukwq4UQ7
         AEZ44L9/vINb78qW1DL1b1xjohF72Bfn2RLfWgiJFiZu2MRc8ujN/6z7By/Qrsq8dEbh
         o/yXik2CmvYN63F4/9NNYE7mKFhQN8R2divf1YK/TjuZzgQXEn7q1ReWwUJfg86MfYn2
         UHXftb7OdUzAZBBye0R01Sh4f424wp7giKjYsODTeXqkwdSjzs4KRFdcA1niO4D45HhH
         n4bw==
X-Forwarded-Encrypted: i=1; AJvYcCXh9Wcuo5fLy7g0+IIJmuGA9SrY0tB5IuhwrJbfl+IcAlzgnOPe4X6jmeyvBiorgoo3N8L3z67xH0I=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwqfRG052EKQ0ORmoSEU0l8abNped20/jmxej2i8Vbv7b+7J4RZ
	wY7hxLF3WnU9hrbHdoNb69RSV6jBA/azaqnheuaB0r+miz7/MksuYlPHJiTKaw==
X-Gm-Gg: ASbGncsHaweXrATTNTzdBWLqsjDbTtdT0zWfX3lRIffxMx7kfTjQM7Th4v9MieVIUhp
	qUEx2bhywbUoyj8JiSGTT0ZN2CbZydj3feFwMFtspfuut/TdtX17TSvaQFXslnJy416kmK1rzZj
	KzzNY1bMRUrU38FiFkEZpPa+QHVlZPI3Ad0BryYyLxFyP/GygYaXu3+fhidOcea1ERwcyuZNVbj
	Wm7g2EULeOXVWTPR7+O8APUK5eYICCi34z99ujaY7QHRYcrmpd6ygJPKSav2gkXEGK1Oao+kGD3
	mW5AcbtmG2oOzDJdx3tcu6kNN87w9zTjzjlCrZt6B2Ghiy3M9sd8mIPVLAg6eG+ZW0MLcuoYPPS
	reiq0ajx3DgQ1TMsIJRhHolCWrdFNeQ==
X-Google-Smtp-Source: AGHT+IGe/EIvN2ws27sfb998cV92d1rAmiAjYiESQdPV8FaqXGyln3o46aHOHJP8e5topfxCNAJ4kw==
X-Received: by 2002:a05:600c:1f96:b0:43c:e7ae:4bcf with SMTP id 5b1f17b1804b1-43eb5b80267mr16802475e9.0.1743585924487;
        Wed, 02 Apr 2025 02:25:24 -0700 (PDT)
Message-ID: <9e3f962a-a45b-4dba-b204-b9f6acae30ec@suse.com>
Date: Wed, 2 Apr 2025 11:25:23 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 06/15] x86/hyperlaunch: introduce the domain builder
To: Jason Andryuk <jason.andryuk@amd.com>
Cc: 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, Alejandro.GarciaVallejo@amd.com,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>
References: <20241226165740.29812-1-dpsmith@apertussolutions.com>
 <20241226165740.29812-7-dpsmith@apertussolutions.com>
 <004b066a-b26f-44bd-994f-5c573f6511e6@suse.com>
 <847a0afa-05bd-4f33-b07c-d9d69b9198ae@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: <847a0afa-05bd-4f33-b07c-d9d69b9198ae@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 01.04.2025 20:01, Jason Andryuk wrote:
> On 2025-01-30 09:52, Jan Beulich wrote:
>> On 26.12.2024 17:57, Daniel P. Smith wrote:
>>> --- 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/
>>
>> The set of subdirs needed in $(obj-y) is specified at the top of the file.
>> Also shouldn't this be obj-$(CONFIG_DOMAIN_BUILDER)?
> 
> Later, all boot-time domain building is handled by 
> domain-builder/core.c.  So some of domain-builder/ is always built, and 
> Kconfig disables multidomain support.

Then CONFIG_DOMAIN_BUILDER is a misnomer?

>>> --- /dev/null
>>> +++ b/xen/arch/x86/domain-builder/core.c
>>> @@ -0,0 +1,57 @@
>>> +/* 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:
>>> +        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;
>>> +            break;
>>> +        }
>>> +    }
>>> +}
>>
>> What is it that's x86-specific in here?
> 
> Would you prefer xen/common/domain-builder ?

Whatever isn't arch-specific would better live somewhere under xen/common/, yes.

>>> --- /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>
>>
>> ... here, is it? Forward decls of struct boot_info are going to do.
> 
> Generally, if you only need a type, just use a forward decl?  Use an 
> include when you need function prototypes?

Yes. The latter also when you need struct/union fields or sizes.

>>> @@ -1285,9 +1286,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];
>>
>> This is going to change again later? Or else what about there already
>> being a module marked BOOTMOD_KERNEL?
> 
> Yes, it will change.  There will be two paths, and this is part of the 
> non-Hyperlaunch path which needs to implicitly select kernel and initrd 
> from the module order, the same as today.  For hyperlaunch, the device 
> tree explicitly assigns kernel and initrd.

Here and elsewhere, for things that aren't quite right yet, mentioning
such aspects specially in the description (or in certain cases even in
FIXME comments) would help avoid questions like the one I had raised.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Apr 02 09:30:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 02 Apr 2025 09:30:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.935382.1336802 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzuQW-0003np-CX; Wed, 02 Apr 2025 09:30:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 935382.1336802; Wed, 02 Apr 2025 09:30:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzuQW-0003ni-9r; Wed, 02 Apr 2025 09:30:28 +0000
Received: by outflank-mailman (input) for mailman id 935382;
 Wed, 02 Apr 2025 09:30:26 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=T645=WU=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tzuQU-0003nc-BN
 for xen-devel@lists.xenproject.org; Wed, 02 Apr 2025 09:30:26 +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 1ae4f222-0fa5-11f0-9ffb-bf95429c2676;
 Wed, 02 Apr 2025 11:30:24 +0200 (CEST)
Received: by mail-wr1-x435.google.com with SMTP id
 ffacd0b85a97d-38a25d4b9d4so3319712f8f.0
 for <xen-devel@lists.xenproject.org>; Wed, 02 Apr 2025 02:30:24 -0700 (PDT)
Received: from [10.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-39c0b6588d0sm16175757f8f.7.2025.04.02.02.30.23
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 02 Apr 2025 02:30: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: 1ae4f222-0fa5-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743586224; x=1744191024; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=RZwtvBbefCO1sOZ9F2axG1WYO8tBhUMCAr1RvBwciM0=;
        b=a0C4+kzzSc0DeNnHjS92DRuNlf+cLfyNf7VDKlv3fIa+b9sTm/7DNS0J/47rx6AK1h
         yjn2R3a24gss3skm7IvZMrXs0am93clF2DRe0YPuzAFPQAQ9129fPKEszGtn2Z6/OAqH
         mxIV6cDj9doZIEPZhd8xQuNB21p6Ca/VWPcWzYEIGFJkU54AP4VgbyOZ8SzHqSdya7vN
         EleHkX7k0IUvvx1mxUj0OQa9Fm0tPc5U+tjnYkwIMz9tQE+m83EkMBdRW6ssN6X90wlG
         DQUquf1jV8JcegMyNlTq0dLzzBP/wJb7XARrUFuEYg04+abJZz6FHtWjtFjVmqA8+vxl
         LDBQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743586224; x=1744191024;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=RZwtvBbefCO1sOZ9F2axG1WYO8tBhUMCAr1RvBwciM0=;
        b=MwbQsqSp6zinmrYVxaWaIMSLMY9J52Hf18QcWowfd7//5X1GxSVDM7AYHY53EYOZcO
         iIZqy1teE4VN7x+hThcy3PB9Ne4ahjmSFsUtGF5ugt8icFes6Hgh19UZ5nKbRRFTtA1I
         Jcfnyn7+gY/ne9P+2gRsXt9Q6bTRnZ6pqhYRFDorukAaOjp3XvhRte2JF0yX6/+HkdZl
         AeAEiu6AJOwpQeEmp4WDT/8ggrJmBS7+BQkjfAFOA9y5CqsC0m/SKh1bGyrD5Nx+M+Mo
         6uS/YA68VAW88t0FEBy+jPoUuHPwpzLC4Bub8/S4sqHgKzhP5DMfqvsLLHTgAHcWcSGO
         059g==
X-Forwarded-Encrypted: i=1; AJvYcCXtUGdbL0p57IKSoo0uxdXB+2EmaGKAVU27y8N0t4uWlqYU0SdPw73Tr4Jio1+DFMs00NXKbMAMJA8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyuNkiYMfH4ELCd0/RPR4wbqFrrWea2sEbIO9ugA/OzWiaVIJAx
	5gmzRsZMYZ8tf79nbuoMm2k+WeAsLr/RxLKYg3FdKqJv6ugSxmc4VqhpldgpWw==
X-Gm-Gg: ASbGncvp1F6Q8gncjqQT6tTOTz7W6rfVjJ3JJYPPWO7v40g0XDqCJPwusAqXXNyUtfT
	bLYy502m5lZdO2jjtyWbnvFC7gCM2uUUZvRPdobg5pnMr8Xosqh/QoucOFWk0LnyxLpgWWEEBPw
	UNqgDrlDZzLZkoSNYEWomOp36qWAps0H3Vaqte8JlPaOXHCnB3NzMbyR0ppYCbjwhSEZ43ozZnA
	XUZHZUZCBXR4ZAXHlfT/n1cBjUvA1OLhDyf6rwaz9KjH8nluldBPjC1cy/CSpfetq6bc6Oe1jQ1
	fr5hTBUKXj+DU8F8ofugm6K2ebfWayzzX4i9laDmY3Nkm6hFeaewYQaVFvVleFTAWNgz03ZsfWq
	dNBe+uCpSZE1toPXl6MCaFyW/pUP/dEPH3pnmd+lf
X-Google-Smtp-Source: AGHT+IEeEXLRSVPtGrZeVbW6qUqDDZbNcl/djdxhZ4ogI/Bqaqj4tC4vu/rX+PEr072yzMyysFBwOA==
X-Received: by 2002:a5d:584c:0:b0:391:4559:8761 with SMTP id ffacd0b85a97d-39c1211394bmr13707502f8f.36.1743586223881;
        Wed, 02 Apr 2025 02:30:23 -0700 (PDT)
Message-ID: <52ae7bed-ba15-4842-b5d8-4fcb61df28b2@suse.com>
Date: Wed, 2 Apr 2025 11:30:22 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5] xen: simplify bitmap_to_xenctl_bitmap for little
 endian
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Julien Grall <julien@xen.org>, Stefano Stabellini
 <sstabellini@kernel.org>, Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <stefano.stabellini@amd.com>,
 xen-devel@lists.xenproject.org
References: <20250401005008.2787764-1-stefano.stabellini@amd.com>
 <694eac75-e872-4ba0-80ed-95c14cd11f5e@suse.com>
 <87f8fc5f-ed82-4930-bc04-50106cc5acff@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: <87f8fc5f-ed82-4930-bc04-50106cc5acff@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 02.04.2025 11:21, Andrew Cooper wrote:
> On 01/04/2025 11:09 am, Jan Beulich wrote:
>> --- a/xen/common/bitmap.c
>> +++ b/xen/common/bitmap.c
>> @@ -359,12 +343,11 @@ static void bitmap_byte_to_long(unsigned
>>  
>>  #elif defined(__LITTLE_ENDIAN)
>>  
>> -static void bitmap_long_to_byte(uint8_t *bp, const unsigned long *lp,
>> -				unsigned int nbits)
>> -{
>> -	memcpy(bp, lp, DIV_ROUND_UP(nbits, BITS_PER_BYTE));
>> -	clamp_last_byte(bp, nbits);
>> -}
>> +#define LITTLE_ENDIAN 1 /* For IS_ENABLED(). */
> 
> I guess I can fix this in my bswap series by giving __LITTLE_ENDIAN the
> value of 1 when it is defined ?

Hmm, that's an option, yes. Yet then I didn't pay close enough attention
to that part of the respective patch in that series, as I was blindly
assuming it to instead be

#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
# define __LITTLE_ENDIAN __ORDER_LITTLE_ENDIAN__
#elif __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
# define __BIG_ENDIAN __ORDER_BIG_ENDIAN__
#endif

to keep the values of the symbols unaltered.

> Otherwise, Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>

Thanks.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Apr 02 09:33:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 02 Apr 2025 09:33:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.935396.1336813 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzuTL-0005zN-Uu; Wed, 02 Apr 2025 09:33:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 935396.1336813; Wed, 02 Apr 2025 09:33:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzuTL-0005zG-Pn; Wed, 02 Apr 2025 09:33:23 +0000
Received: by outflank-mailman (input) for mailman id 935396;
 Wed, 02 Apr 2025 09:33: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=T645=WU=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tzuTK-0005zA-PQ
 for xen-devel@lists.xenproject.org; Wed, 02 Apr 2025 09:33:22 +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 840b5770-0fa5-11f0-9ffb-bf95429c2676;
 Wed, 02 Apr 2025 11:33:20 +0200 (CEST)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-43cf05f0c3eso42747715e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 02 Apr 2025 02:33:20 -0700 (PDT)
Received: from [10.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-39c0b6589e4sm16652693f8f.10.2025.04.02.02.33.19
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 02 Apr 2025 02:33: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: 840b5770-0fa5-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743586400; x=1744191200; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=MeCf6n989tXLOJZFpJnmN0Q/GEGGOoSiAkvUxACvkTs=;
        b=R345YPZODtBcO1ydXv3HA+EN0J7YfCa0VrNdlu3LM+KdxOEM/m4Mxz79fAROkR5Dz8
         v0nt4e9ypjGaWJNXfiRy/mv7kxZJypO64eKS0jeb1qyrpf7M4XJr5x7S5zqEYIROwDy0
         DJWoQEDvFYTiAHYKoIa8coy24WN7EgglIh9OhCfbqfuWt2hGtJpi++kztbYCx3Cd/loO
         bu7uY8uZyJ7t/CD4cl5GzrmKbsvsLADWnakH1ePBYsssP5X4P8qfvL/yNDPTFSO8M2XG
         aCPkHyzJzcDcSI47IbyF6igKnL1TLHzDQ1xkii7wsgN+2gaY8BHYTcL+ciXgVVCejyjD
         dGbg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743586400; x=1744191200;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=MeCf6n989tXLOJZFpJnmN0Q/GEGGOoSiAkvUxACvkTs=;
        b=qDW9BtasnNq/ksuPyYCNfOrBi3nfAvfGGXtQkV2qXO1TcxqyLwxPSiTpOKYI+B8zKZ
         P9NKR+OAXIzgmXieDlja53a6HU5SaJccOq/uoo/X/6f0T8Twc31bFtd+tevTxtjoswLh
         0fi+ivUzczeRyF/QRM5JgAHUxf+8m4qpDkH/VNJQ80brFqWhUlSzXe5KVnf8OwhtWxY+
         lY7S8gg3gMdyi8lZHbvTNGuHaqi2QfTJhDsi1970Sy34B8t3sE/4F+6pZAOCGBUoQIxW
         fMHrQtxCNc9312BPHOMoHaA8zuS4VhGp4+GPzVZA9FzNF2zJP7ZPsSdwAJPmULKQkKG1
         v7EA==
X-Gm-Message-State: AOJu0YzPg3gmScQhcVulXqlhl+uuPLjIE7vqskB0aPlvch1LvfSHiRc1
	0fDfl7EbJS8SyGCL3FbXhuPXU/24tKmLkEleAZCM6S9byqvm6Nb94On+JMwdgA==
X-Gm-Gg: ASbGncv07Ogup/YlCrADxrxX2fmh04fo2Vch39J44iSxEGiMV+kt98Z+BbRp5zq8X6X
	+/D/bmTvCBpKYj55HLmbPiCptyJHTYf9SqRNKll80660ytU5lJybe//Q8zMCVxqelCKmdzV0bOt
	5Z6HCDH2QpOCzhX5Hc+FtfRJJmUpr/IkCqs6OTQBAb00EHCarAZqUR9nVtvQ9LT6Ilde2a0d6R9
	FohlSLEJOFErCAHieCdvHanax62gtetkaGwCZfin86uwNN38PVFCSE2mrrGtZSRhxGoGuglpBvO
	IJazF6wC+JiPkdLa/fpuNDNxu6PBK7ekzTcl+oFj9B+kUHD7PN2mQ49AMj+K2bQw7m+wd0gdeif
	8/J27+KuhJd29pDzQIlPVDD4J3KBhMA==
X-Google-Smtp-Source: AGHT+IH+twusrWPZo08mPCvhSf9OkIeFlwbB7n1v6KtGQFRD6Hj2CA/V+OuUsEKticEaxX4yWsyIJg==
X-Received: by 2002:a05:6000:210d:b0:39c:1257:dbab with SMTP id ffacd0b85a97d-39c1257dd00mr9578013f8f.59.1743586400325;
        Wed, 02 Apr 2025 02:33:20 -0700 (PDT)
Message-ID: <a6264b70-5880-42a8-96fb-bc0d69785227@suse.com>
Date: Wed, 2 Apr 2025 11:33:19 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Domain IDs and Capabilities
To: Jason Andryuk <jason.andryuk@amd.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>
References: <0dd25ebd-34f2-4391-aa08-3d873ec72347@amd.com>
 <cc53bc20-51f4-49f9-b35c-77805147e603@suse.com>
 <8e2ecb31-6fea-46b4-b236-65a663510973@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: <8e2ecb31-6fea-46b4-b236-65a663510973@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 01.04.2025 19:32, Jason Andryuk wrote:
> On 2025-04-01 04:07, Jan Beulich wrote:
>> On 31.03.2025 23:46, Jason Andryuk wrote:
>>> It is useful for a domain to know its own domid.  Xenstored has command
>>> line flags to set --master-domid (the local domid) and --priv-domid, but
>>> it would be better to autodetect those.  Also, domids are necessary to
>>> set xenstore permissions - DOMID_SELF is not supported today.
>>
>> Setting permissions for oneself?
> 
> Any call to xs_set_permissions(), AIUI.  Say you have two domUs, dom1 & 
> dom2.  dom1 wants to create a shared xenstore node with full permissions 
> for itself, but read-only permission for dom2.  dom1 needs to know its 
> own domid to set the permissions:
> 
>   *  struct xs_permissions perms[2];
>   *
>   *  perms[0].id = domid1;
>   *  perms[0].perms = XS_PERM_NONE;
>   *  perms[1].id = domid2;
>   *  perms[1].perms = XS_PERM_READ;
> 
> perms[].id doesn't handle DOMID_SELF

That is, XS_SET_PERMS only ever fully replaces existing permissions, rather
than allowing incremental permit/revoke?

Jan


From xen-devel-bounces@lists.xenproject.org Wed Apr 02 09:37:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 02 Apr 2025 09:37:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.935408.1336823 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzuWu-0006YH-BS; Wed, 02 Apr 2025 09:37:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 935408.1336823; Wed, 02 Apr 2025 09:37: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 1tzuWu-0006YA-89; Wed, 02 Apr 2025 09:37:04 +0000
Received: by outflank-mailman (input) for mailman id 935408;
 Wed, 02 Apr 2025 09:37: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=qYE3=WU=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tzuWt-0006Y4-Cy
 for xen-devel@lists.xenproject.org; Wed, 02 Apr 2025 09:37:03 +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 0766d654-0fa6-11f0-9ffb-bf95429c2676;
 Wed, 02 Apr 2025 11:37:01 +0200 (CEST)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-43cf58eea0fso31630965e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 02 Apr 2025 02:37:01 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43eb619062fsm15027605e9.28.2025.04.02.02.36.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 02 Apr 2025 02:37: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: 0766d654-0fa6-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1743586621; x=1744191421; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=dWid1er7dE8FVIvprQ/zqaxWwTMIUEe1HsAI4kdDWvY=;
        b=Ot0SpcztKboMjI/XlfRZyOyupCR5G/rMoRK81ur+Vs2v8wiMWlP/OeJQJOe0r9Tm5i
         55+EET9atMlj8gvBIddmCKld+9JZ/vkhazLdQlaOpF40Ec1aesSkiJC7Kj8k3bmfJNr1
         IV2i7W9Cmrqe7FPRWWr7rOo1KMXLW48mRN/lk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743586621; x=1744191421;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=dWid1er7dE8FVIvprQ/zqaxWwTMIUEe1HsAI4kdDWvY=;
        b=dpshFNXFyrvgqOZuV6lt0npVueA8ACE2a5yN1GDVbdM4bRbQDMuq+XejXq3/6WBagj
         3RJPjTh5VWBIPTZ5iNr3I5rBXq98hTk9oBTLoBKMvx8+fb5nMX6STK7dzxCazJpCQgUo
         rbWEeqPIeYgxf/5NKJl3mGONMDDx0rJV8PCmj7LLB/rCR+TpetB+2yHZl+n33ylMpdka
         OBMr2jIzmlSI/FrSBerp9Fjr3E9cBg9MV+zY0Fz7reyguPnUTPhCYJbvaK0cay86QOor
         kykvF6auxBFxaP2bhzkhes4bx3KeyLX9k3DveOCRaFD/iVXiqvq1c9szj8ruP85ONQRY
         LtWg==
X-Forwarded-Encrypted: i=1; AJvYcCU1nGY7/pCabWX13ncq08pXaRwFw2JCmtGMNQJUS36LZ752j17ReYJ3x/u9Xr0NFoWATYukYOyKmKg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyKfPaZUe35F1xxXSPTqakUniIAGA/A3UTEOo86LmN2ju5gB8uQ
	UfW6p6gSVYGfaLDdupWNB3Dmp+QfbdiiZH7d5B1h8fXvdSVLOfO/Kq/zlS0jfdho4a9GoOcEtFp
	dCJE=
X-Gm-Gg: ASbGnctFx+ZqYvwP1BuG7TfeL8VuUBEFS/1db13w2kDSsRZDp4/Pt0zvtMXJDzRzFrp
	RnhwrNaR75aAXv8m6NhIGJaLLHGAxUc9eCjEkTwuElCYTB3fjM9OCDy9WA1OqD3NOLIujA4TW3p
	H8Gd1qgYDMwgNyeZJAZW2VbQxK7reY9tyG6Tv8mU58uSf9zXxPbPwgtjbxOHiGra1jY2wr7AffW
	Mx+hEWlX3O6YA6DXiSo9sFjGhb/Tgzd8+4z7Qp0L3gs3R3dsw/7wCmKq6PDik1K4Cn+xQDoX8ur
	LprpgVmR9H2x+PpUga0+j72nxhQRanMlahzsnDNUxNkgy74amBa1rANJuHSXZ0KyS3BGcaASc+n
	bijrovmjTjQ==
X-Google-Smtp-Source: AGHT+IH/3ZqQaRrjbbNn0OCz8GO0fN8qEQxqRKEdUDwlFpBns1rBTTrU5BeCoJZVE4JiB3W1vtdv0w==
X-Received: by 2002:a05:600c:34c2:b0:43c:f8fc:f687 with SMTP id 5b1f17b1804b1-43ea7cdf399mr55930215e9.27.1743586620572;
        Wed, 02 Apr 2025 02:37:00 -0700 (PDT)
Message-ID: <d8be8991-8ac0-4b79-83a9-f0393f1dc46e@citrix.com>
Date: Wed, 2 Apr 2025 10:36:59 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5] xen: simplify bitmap_to_xenctl_bitmap for little
 endian
To: Jan Beulich <jbeulich@suse.com>
Cc: Julien Grall <julien@xen.org>, Stefano Stabellini
 <sstabellini@kernel.org>, Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <stefano.stabellini@amd.com>,
 xen-devel@lists.xenproject.org
References: <20250401005008.2787764-1-stefano.stabellini@amd.com>
 <694eac75-e872-4ba0-80ed-95c14cd11f5e@suse.com>
 <87f8fc5f-ed82-4930-bc04-50106cc5acff@citrix.com>
 <52ae7bed-ba15-4842-b5d8-4fcb61df28b2@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: <52ae7bed-ba15-4842-b5d8-4fcb61df28b2@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 02/04/2025 10:30 am, Jan Beulich wrote:
> On 02.04.2025 11:21, Andrew Cooper wrote:
>> On 01/04/2025 11:09 am, Jan Beulich wrote:
>>> --- a/xen/common/bitmap.c
>>> +++ b/xen/common/bitmap.c
>>> @@ -359,12 +343,11 @@ static void bitmap_byte_to_long(unsigned
>>>  
>>>  #elif defined(__LITTLE_ENDIAN)
>>>  
>>> -static void bitmap_long_to_byte(uint8_t *bp, const unsigned long *lp,
>>> -				unsigned int nbits)
>>> -{
>>> -	memcpy(bp, lp, DIV_ROUND_UP(nbits, BITS_PER_BYTE));
>>> -	clamp_last_byte(bp, nbits);
>>> -}
>>> +#define LITTLE_ENDIAN 1 /* For IS_ENABLED(). */
>> I guess I can fix this in my bswap series by giving __LITTLE_ENDIAN the
>> value of 1 when it is defined ?
> Hmm, that's an option, yes. Yet then I didn't pay close enough attention
> to that part of the respective patch in that series, as I was blindly
> assuming it to instead be
>
> #if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
> # define __LITTLE_ENDIAN __ORDER_LITTLE_ENDIAN__
> #elif __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
> # define __BIG_ENDIAN __ORDER_BIG_ENDIAN__
> #endif
>
> to keep the values of the symbols unaltered.

I saw no value doing that, after auditing that it was only ever used in
an #ifdef kind of way.  IS_ENABLED() is an extension of the same
concept, but requiring a 1 to work.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Apr 02 09:40:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 02 Apr 2025 09:40:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.935420.1336833 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzuaC-00082a-PW; Wed, 02 Apr 2025 09:40:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 935420.1336833; Wed, 02 Apr 2025 09: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 1tzuaC-00082T-Lx; Wed, 02 Apr 2025 09:40:28 +0000
Received: by outflank-mailman (input) for mailman id 935420;
 Wed, 02 Apr 2025 09:40: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=T645=WU=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tzuaB-00082N-Hr
 for xen-devel@lists.xenproject.org; Wed, 02 Apr 2025 09:40:27 +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 81c03788-0fa6-11f0-9ea8-5ba50f476ded;
 Wed, 02 Apr 2025 11:40:26 +0200 (CEST)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-43d04dc73b7so70667645e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 02 Apr 2025 02:40:26 -0700 (PDT)
Received: from [10.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-43eb613aabesm15049185e9.39.2025.04.02.02.40.25
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 02 Apr 2025 02:40: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: 81c03788-0fa6-11f0-9ea8-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743586826; x=1744191626; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=InMwXKqE5qe8NGSs3K9c17Beqvph34pwUmT987hRlCc=;
        b=VpqQegJ2HrDh+n8mGGt02cNm+pUFLMz34rHZbwzlZ36YHFaxI7tAxybsJB9I9+OgFM
         YmYjmJahwUIbJulrT/tWFFsJakie0IJZsfXAfWea8mQqKNXSEGWqNwsqgi3L6en9qUE4
         gYxdoFAuKjoETdi3KpuzroR8ZRhPSIZ1fX2G0BKOR37hF3yYw/35+KmhrAM4jLH2Ka20
         5ufBSbC6etsSWTRlRT45O//QQtT7w/UnZmOUx9s0MC0bO5UiQweVUgQg+IkgBjlShpQi
         EF7DVqYUhS8NPX8bsSaeHZrEZWaZD6hsZi+JcHyklJbocoPr2pRCHj393XlgHb4u9u1W
         sQig==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743586826; x=1744191626;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=InMwXKqE5qe8NGSs3K9c17Beqvph34pwUmT987hRlCc=;
        b=jmbJLrv9meT+O304M8jIGYnbyM8WlDFSxtAMwfxrkPcpvXoYgPy7i8X+iqWO0zI2Fe
         aTxFV5cjYVoLKN7worztfHVHyTsloak0op2V5EAHP94Z4uKC/iRn5xGudoErGdN1YjYR
         M/iwI7trZ8wjOnzs6rG9wajo3RC2odugeRzgvSaIMu4+31OBMVVz2ZlSgXfxizX9FaS4
         xOug209FbY8/HN3s+8iY+m3i89qXX0/xACAi5KJlAQBRkhbwL2TdB0xEH/MZbCH1hBzZ
         kUCAyxlb2IYCndOpjpZJe0yA8HSgK1ktdzw2eZORiyxveX3/q7yHRFuOQ4WMio8M2D7O
         qOmg==
X-Forwarded-Encrypted: i=1; AJvYcCWJs6HN0rvrO+UhvyNR0jmrgknskDiz3VrW1aXpEDxxL8T5ZpfVIwmb4UWBbgx7qUT0FrrsZgsww+A=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzMrUtusExGoIRiermd6/d74B+/FUp2UJoo05HhtYuig17AhjM8
	p/B5Xb2njgD5ffEYR0Vm8j1cBdhTIDjYWn7W1au9CL43Lq8v2oQBRE0ajwgE6w==
X-Gm-Gg: ASbGncukU1AenzRXjlhGTJsI/ZxABAZL3OKyzNpW3u/6LJXmDDWArvItGHIg77QqrFg
	+qQn63YSxGatTi8y/Yh2vqY/AJjuaUo355jSenUxKWTQbfo1yboR4awV3fI9RLBXpSYG7ku1JdE
	EIfXSfZBEqOBErMcBrxGN5F1McwQ4Kj5FrjRqwhwGQlYfkSEugqZ1rbbKgFJ4mvbfoiJxV/fPIg
	AkJMLT8oZZ9y3C4ZKHiIPdiEVcHQDdp7NmFOBljzRILLVGIDMsFCpWmHNy+9IlDOXsVE6v5nWel
	jSo8g0ZEVC3czGLvelfH9LRIPXvIzz1TeVHANz0ofePBLbx5T6PZAPU4asXoHlCMTJpEevUTYrr
	8qwsDZNCIqRCrF2zyuqJmK8lnsSkGe1Nk49FOo1xB
X-Google-Smtp-Source: AGHT+IEWYYoz3km9Zpy8u6oaAaE0mb6oF4dMBp9jAx927mae0CjwYrjBDZAv9WeL3k98zQC26bCO+Q==
X-Received: by 2002:a05:600c:5108:b0:43c:f629:66f3 with SMTP id 5b1f17b1804b1-43db624be12mr140553625e9.18.1743586825975;
        Wed, 02 Apr 2025 02:40:25 -0700 (PDT)
Message-ID: <c84ee77b-2a5b-49d9-ac4e-018ce359f67c@suse.com>
Date: Wed, 2 Apr 2025 11:40:24 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH RFC] x86/vmx: Use asm goto() in _vmx_cpu_up()
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, dmkhn@proton.me,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250401233444.1181076-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: <20250401233444.1181076-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 02.04.2025 01:34, Andrew Cooper wrote:
> With the new toolchain baseline, we can make use of asm goto() in certain
> places, and the VMXON invocation is one example.
> 
> This removes the logic to set up rc (including a fixup section where bactraces
> have no connection to the invoking function), the logic to decode it, and the
> default case which was dead but in a way the compiler couldn't prove
> previously.
> 
> 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: dmkhn@proton.me
> 
> RFC.  To be rebased over Denis' general cleanup.

LGTM. Can't this actually replace some of his cleanup? Judging from
base-commit: at the bottom this isn't based on his work. In which case:
Reviewed-by: Jan Beulich <jbeulich@suse.com>

> In principle, we can split fail into fail_valid and fail_invalid, allowing us
> to spot the VMfail("VMXON executed in VMX root operation") case from the
> pseduocode.  However, getting that involves a VMREAD of VM_INSTRUCTION_ERROR,
> and error handling in case there isn't a loaded VMCS, so I think the
> complexity is unwarranted in this case.

+1

> Bloat-o-meter:
>   add/remove: 0/0 grow/shrink: 1/1 up/down: 13/-32 (-19)
>   Function                                     old     new   delta
>   _vmx_cpu_up.cold                            2460    2473     +13
>   _vmx_cpu_up                                 1803    1771     -32
> 
> The if ( 0 ) isn't terribly nice, but it's the least bad option I could come
> up with.  It does allow the structure of the switch() to remain largely
> intact.

For the purpose of the diff here I agree. In a subsequent change we could then
still move the whole blob to the end of the function. Especially if some of
the static analysis tools didn't like the "if ( 0 )".

Jan


From xen-devel-bounces@lists.xenproject.org Wed Apr 02 09:40:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 02 Apr 2025 09:40:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.935429.1336842 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzuaf-0000az-1O; Wed, 02 Apr 2025 09:40:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 935429.1336842; Wed, 02 Apr 2025 09:40: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 1tzuae-0000as-VC; Wed, 02 Apr 2025 09:40:56 +0000
Received: by outflank-mailman (input) for mailman id 935429;
 Wed, 02 Apr 2025 09:40: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=L/lH=WU=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1tzuad-0008Rq-9I
 for xen-devel@lists.xenproject.org; Wed, 02 Apr 2025 09:40:55 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de
 [2a07:de40:b251:101:10:150:64:2])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 91d2fec0-0fa6-11f0-9ffb-bf95429c2676;
 Wed, 02 Apr 2025 11:40:53 +0200 (CEST)
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 C64CF1F74A;
 Wed,  2 Apr 2025 09:40:52 +0000 (UTC)
Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id A24D913A4B;
 Wed,  2 Apr 2025 09:40:52 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap1.dmz-prg2.suse.org with ESMTPSA id x6qlJSQG7WfWSAAAD6G6ig
 (envelope-from <jgross@suse.com>); Wed, 02 Apr 2025 09:40: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: 91d2fec0-0fa6-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1743586853; 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=ZzIAqlyOa19EnXZDrGGKdN3P4lN8XlUiJDRjumS/9M8=;
	b=fEZ4WYgNQSqCBmoIRSiX+YSxEvonnCLli2GUtmmA4Vc4h8FsNE3CLARYQLCuFyXInCohbi
	+b/OHi6NfLU5AmXT7pd0cMCZp4kfLX9ZbVUDFTTGeBq7xCej8m0JJiYKNhM8y0kiaTu9J3
	+DIZKnU3UgGjD1bOQKNFIjn4G7PVcTk=
Authentication-Results: smtp-out2.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=FRXu306r
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1743586852; 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=ZzIAqlyOa19EnXZDrGGKdN3P4lN8XlUiJDRjumS/9M8=;
	b=FRXu306rGzsPe7Jrrzg2o8wUBjQ7wBuUGFDbmI7h+Qz6sf56v5Mrnc/hTJd6stn3uYO/Lo
	MepGsFbM91noOPnwOsjskzQ4AAQHE03cNuBsiUAtLGJOMRZaEGGG99jCoGc3h6wSIJXhS9
	Ud9Y3BchSeqjLbzpd0hgXQJzEsnHnss=
Message-ID: <76fd5421-149d-452a-8386-c0a4387b2c8b@suse.com>
Date: Wed, 2 Apr 2025 11:40:51 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Domain IDs and Capabilities
To: Jan Beulich <jbeulich@suse.com>, Jason Andryuk <jason.andryuk@amd.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>
References: <0dd25ebd-34f2-4391-aa08-3d873ec72347@amd.com>
 <cc53bc20-51f4-49f9-b35c-77805147e603@suse.com>
 <8e2ecb31-6fea-46b4-b236-65a663510973@amd.com>
 <a6264b70-5880-42a8-96fb-bc0d69785227@suse.com>
Content-Language: en-US
From: Juergen Gross <jgross@suse.com>
Autocrypt: addr=jgross@suse.com; keydata=
 xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOB
 ycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJve
 dYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJ
 NwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvx
 XP3FAp2pkW0xqG7/377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEB
 AAHNH0p1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT7CwHkEEwECACMFAlOMcK8CGwMH
 CwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRCw3p3WKL8TL8eZB/9G0juS/kDY9LhEXseh
 mE9U+iA1VsLhgDqVbsOtZ/S14LRFHczNd/Lqkn7souCSoyWsBs3/wO+OjPvxf7m+Ef+sMtr0
 G5lCWEWa9wa0IXx5HRPW/ScL+e4AVUbL7rurYMfwCzco+7TfjhMEOkC+va5gzi1KrErgNRHH
 kg3PhlnRY0Udyqx++UYkAsN4TQuEhNN32MvN0Np3WlBJOgKcuXpIElmMM5f1BBzJSKBkW0Jc
 Wy3h2Wy912vHKpPV/Xv7ZwVJ27v7KcuZcErtptDevAljxJtE7aJG6WiBzm+v9EswyWxwMCIO
 RoVBYuiocc51872tRGywc03xaQydB+9R7BHPzsBNBFOMcBYBCADLMfoA44MwGOB9YT1V4KCy
 vAfd7E0BTfaAurbG+Olacciz3yd09QOmejFZC6AnoykydyvTFLAWYcSCdISMr88COmmCbJzn
 sHAogjexXiif6ANUUlHpjxlHCCcELmZUzomNDnEOTxZFeWMTFF9Rf2k2F0Tl4E5kmsNGgtSa
 aMO0rNZoOEiD/7UfPP3dfh8JCQ1VtUUsQtT1sxos8Eb/HmriJhnaTZ7Hp3jtgTVkV0ybpgFg
 w6WMaRkrBh17mV0z2ajjmabB7SJxcouSkR0hcpNl4oM74d2/VqoW4BxxxOD1FcNCObCELfIS
 auZx+XT6s+CE7Qi/c44ibBMR7hyjdzWbABEBAAHCwF8EGAECAAkFAlOMcBYCGwwACgkQsN6d
 1ii/Ey9D+Af/WFr3q+bg/8v5tCknCtn92d5lyYTBNt7xgWzDZX8G6/pngzKyWfedArllp0Pn
 fgIXtMNV+3t8Li1Tg843EXkP7+2+CQ98MB8XvvPLYAfW8nNDV85TyVgWlldNcgdv7nn1Sq8g
 HwB2BHdIAkYce3hEoDQXt/mKlgEGsLpzJcnLKimtPXQQy9TxUaLBe9PInPd+Ohix0XOlY+Uk
 QFEx50Ki3rSDl2Zt2tnkNYKUCvTJq7jvOlaPd6d/W0tZqpyy7KVay+K4aMobDsodB3dvEAs6
 ScCnh03dDAFgIq5nsB11j3KPKdVoPlfucX2c7kGNH+LUMbzqV6beIENfNexkOfxHfw==
In-Reply-To: <a6264b70-5880-42a8-96fb-bc0d69785227@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------EwKeWyZu3XJTh4PXFzZWD8oz"
X-Rspamd-Queue-Id: C64CF1F74A
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];
	MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain];
	R_DKIM_ALLOW(-0.20)[suse.com:s=susede1];
	NEURAL_HAM_SHORT(-0.20)[-0.999];
	MIME_UNKNOWN(0.10)[application/pgp-keys];
	MIME_BASE64_TEXT(0.10)[];
	MX_GOOD(-0.01)[];
	FUZZY_BLOCKED(0.00)[rspamd.com];
	FROM_HAS_DN(0.00)[];
	RBL_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	ARC_NA(0.00)[];
	TO_DN_ALL(0.00)[];
	RCVD_TLS_ALL(0.00)[];
	SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	MID_RHS_MATCH_FROM(0.00)[];
	RCVD_COUNT_TWO(0.00)[2];
	FROM_EQ_ENVFROM(0.00)[];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	DKIM_TRACE(0.00)[suse.com:+];
	RCPT_COUNT_THREE(0.00)[3];
	HAS_ATTACHMENT(0.00)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[imap1.dmz-prg2.suse.org:rdns,imap1.dmz-prg2.suse.org:helo,suse.com:mid,suse.com:dkim]
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)
--------------EwKeWyZu3XJTh4PXFzZWD8oz
Content-Type: multipart/mixed; boundary="------------AM0piFPuOBw0N5TYOGx2hUe8";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Jan Beulich <jbeulich@suse.com>, Jason Andryuk <jason.andryuk@amd.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>
Message-ID: <76fd5421-149d-452a-8386-c0a4387b2c8b@suse.com>
Subject: Re: Domain IDs and Capabilities
References: <0dd25ebd-34f2-4391-aa08-3d873ec72347@amd.com>
 <cc53bc20-51f4-49f9-b35c-77805147e603@suse.com>
 <8e2ecb31-6fea-46b4-b236-65a663510973@amd.com>
 <a6264b70-5880-42a8-96fb-bc0d69785227@suse.com>
In-Reply-To: <a6264b70-5880-42a8-96fb-bc0d69785227@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=

--------------AM0piFPuOBw0N5TYOGx2hUe8
Content-Type: multipart/mixed; boundary="------------TeQGFbXQvhSR4eZw4EI7JwxK"

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

T24gMDIuMDQuMjUgMTE6MzMsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAwMS4wNC4yMDI1
IDE5OjMyLCBKYXNvbiBBbmRyeXVrIHdyb3RlOg0KPj4gT24gMjAyNS0wNC0wMSAwNDowNywg
SmFuIEJldWxpY2ggd3JvdGU6DQo+Pj4gT24gMzEuMDMuMjAyNSAyMzo0NiwgSmFzb24gQW5k
cnl1ayB3cm90ZToNCj4+Pj4gSXQgaXMgdXNlZnVsIGZvciBhIGRvbWFpbiB0byBrbm93IGl0
cyBvd24gZG9taWQuICBYZW5zdG9yZWQgaGFzIGNvbW1hbmQNCj4+Pj4gbGluZSBmbGFncyB0
byBzZXQgLS1tYXN0ZXItZG9taWQgKHRoZSBsb2NhbCBkb21pZCkgYW5kIC0tcHJpdi1kb21p
ZCwgYnV0DQo+Pj4+IGl0IHdvdWxkIGJlIGJldHRlciB0byBhdXRvZGV0ZWN0IHRob3NlLiAg
QWxzbywgZG9taWRzIGFyZSBuZWNlc3NhcnkgdG8NCj4+Pj4gc2V0IHhlbnN0b3JlIHBlcm1p
c3Npb25zIC0gRE9NSURfU0VMRiBpcyBub3Qgc3VwcG9ydGVkIHRvZGF5Lg0KPj4+DQo+Pj4g
U2V0dGluZyBwZXJtaXNzaW9ucyBmb3Igb25lc2VsZj8NCj4+DQo+PiBBbnkgY2FsbCB0byB4
c19zZXRfcGVybWlzc2lvbnMoKSwgQUlVSS4gIFNheSB5b3UgaGF2ZSB0d28gZG9tVXMsIGRv
bTEgJg0KPj4gZG9tMi4gIGRvbTEgd2FudHMgdG8gY3JlYXRlIGEgc2hhcmVkIHhlbnN0b3Jl
IG5vZGUgd2l0aCBmdWxsIHBlcm1pc3Npb25zDQo+PiBmb3IgaXRzZWxmLCBidXQgcmVhZC1v
bmx5IHBlcm1pc3Npb24gZm9yIGRvbTIuICBkb20xIG5lZWRzIHRvIGtub3cgaXRzDQo+PiBv
d24gZG9taWQgdG8gc2V0IHRoZSBwZXJtaXNzaW9uczoNCj4+DQo+PiAgICAqICBzdHJ1Y3Qg
eHNfcGVybWlzc2lvbnMgcGVybXNbMl07DQo+PiAgICAqDQo+PiAgICAqICBwZXJtc1swXS5p
ZCA9IGRvbWlkMTsNCj4+ICAgICogIHBlcm1zWzBdLnBlcm1zID0gWFNfUEVSTV9OT05FOw0K
Pj4gICAgKiAgcGVybXNbMV0uaWQgPSBkb21pZDI7DQo+PiAgICAqICBwZXJtc1sxXS5wZXJt
cyA9IFhTX1BFUk1fUkVBRDsNCj4+DQo+PiBwZXJtc1tdLmlkIGRvZXNuJ3QgaGFuZGxlIERP
TUlEX1NFTEYNCj4gDQo+IFRoYXQgaXMsIFhTX1NFVF9QRVJNUyBvbmx5IGV2ZXIgZnVsbHkg
cmVwbGFjZXMgZXhpc3RpbmcgcGVybWlzc2lvbnMsIHJhdGhlcg0KPiB0aGFuIGFsbG93aW5n
IGluY3JlbWVudGFsIHBlcm1pdC9yZXZva2U/DQoNCkNvcnJlY3QuDQoNCkJUVywgaXQgaXMg
cXVpdGUgZWFzeSB0byBnZXQgdGhlIGRhdGEgbmVlZGVkIGZvciBzZXR0aW5nIHRoZSBwZXJt
aXNzaW9uczoNCg0KMS4gY3JlYXRlIHRoZSBuZXcgbm9kZQ0KMi4gcmVhZCB0aGUgY3VycmVu
dCBwZXJtaXNzaW9ucyAod2lsbCBoYXZlIHRoZSBvd25lciBpbiBwZXJtc1swXSkNCjMuIGV4
dGVuZCB0aGUgcGVybWlzc2lvbnMgYXMgbmVlZGVkDQoNCg0KSnVlcmdlbg0K
--------------TeQGFbXQvhSR4eZw4EI7JwxK
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-----

--------------TeQGFbXQvhSR4eZw4EI7JwxK--

--------------AM0piFPuOBw0N5TYOGx2hUe8--

--------------EwKeWyZu3XJTh4PXFzZWD8oz
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/Ey8FAmftBiQFAwAAAAAACgkQsN6d1ii/Ey/L
KAgAh3jr2llxqEqsGIPAjcpqWnwlhVAu3vP6v2VGIPRTx+pdbGQFUgI9un0rF5sZFTwXlJyZjUSn
EfH4lafEOTCW08WUVJlotlt3kN6l4i8BIRF1PMaqeqpljQTSa8s9j4hwR1LM/Wh3TwXwXTnPxchC
29wgRCwRYyi4VW3b12AFuLy4WYjam2X9P3edcYmKVXP0YhyPlXaF08Wr1n4AJj3DlYiL/9gcASfx
HpaAf8T12lT89WCg/ojshjH7Bx6jyYvyOFw8GeFD2Bb54c1R00KQ4C1cWXSacNd96kBgK+QkZaLo
dM/eDlkTzS4Sh0iKgoD8Snh3vPvUH8iA7Zdc5T63NQ==
=gmo6
-----END PGP SIGNATURE-----

--------------EwKeWyZu3XJTh4PXFzZWD8oz--


From xen-devel-bounces@lists.xenproject.org Wed Apr 02 09:42:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 02 Apr 2025 09:42:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.935445.1336852 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzuby-0002II-GE; Wed, 02 Apr 2025 09:42:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 935445.1336852; Wed, 02 Apr 2025 09: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 1tzuby-0002IB-DJ; Wed, 02 Apr 2025 09:42:18 +0000
Received: by outflank-mailman (input) for mailman id 935445;
 Wed, 02 Apr 2025 09: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=T645=WU=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tzuby-0002I3-2u
 for xen-devel@lists.xenproject.org; Wed, 02 Apr 2025 09:42:18 +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 c38dc7ab-0fa6-11f0-9ea8-5ba50f476ded;
 Wed, 02 Apr 2025 11:42:17 +0200 (CEST)
Received: by mail-wr1-x433.google.com with SMTP id
 ffacd0b85a97d-3912fdddf8fso385408f8f.1
 for <xen-devel@lists.xenproject.org>; Wed, 02 Apr 2025 02:42:16 -0700 (PDT)
Received: from [10.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-39c0b662c1csm16235017f8f.28.2025.04.02.02.42.15
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 02 Apr 2025 02:42: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: c38dc7ab-0fa6-11f0-9ea8-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743586936; x=1744191736; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=7bkYIc5sK6KC2H3l8sO731WfsRKLZIuOe9PPaPtYiA4=;
        b=LWwIo+FU2k7Ze1v6U6K9NYPCDS1Ww+z76ZXHIqeIvPfIFK0OOdNlFMsmvPNI04gEla
         fEC9X0qRbYfbsg+NC9sMJ1+nlY3sbGgg0cB53XBtpZ3zZF5MSLGbqMwnsEapz6WC+HRu
         96Wj8TsxijFLVZCCE/nMcPi/pZHwPZTymI9gSNPIVZwbT2bqkYM84rCD0BWeRCl9ZsyC
         X7p2klmdmds23/fRX/ecCyxmQbnBXwJ1F1QtBhTFswzD1RpZ2G4b3a69OHIREq4AQsce
         F383EYGu+0c7uuF7dz5tGn0zbskhSn9FBei0eSyiS5sZx5BgcK4Sk+ABlSVf2FbnDn/F
         Q/Wg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743586936; x=1744191736;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=7bkYIc5sK6KC2H3l8sO731WfsRKLZIuOe9PPaPtYiA4=;
        b=iwni+UUZ5B4OeiBWrASzt2nYbNZMhuFp7+EZHwTUaz7Y0twGXaRye075eeplm+jPPB
         vaqvx1+UKd9m77tPP5S7qpgYV74ZRXLcpEGHYxczd26cTd/IBYNIEWQXBiyvWaUYnsut
         IfBPuQ2KiodB79tBl4K10B03N6wcS2HnQGe9ob4eoq8dhEC5aJoBdQmQQ6r9MpZgQA8x
         ULz2+u0pk5EQQHPo24ay1GEsynFo5DuyVtZafsf3SKeMQ62wE4ukSkFIfn81QuS8fZn7
         H2tIQMWqkVhwmriGJJ1ow/2kr1A/E6/toTo3VtoLJ5GbV4UYIayv6HEBv9P2VKMbBHjR
         ShNQ==
X-Forwarded-Encrypted: i=1; AJvYcCUGei+7VgZcwKWT4K1WL5i1N7WsbjCiV6B816pGpMomWuOxzhFudRDZ2ov5Xdlw8DKmXIBn2GYzSq4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwFJo2x9cyaVRKJIAM0B7IOX1qdn6DjXffGl5K7SF90RRQu5y3G
	4B7ay+wtR+wtN2KaYX9C5YzJmVNrJOOpGfTrJ5/+9rgt+I4M5r7R0R+RiSU7Vw==
X-Gm-Gg: ASbGncvjlDz/ChS32oj+h5F5UaWsM35xoPLmMbbYLnN2bKE8qQEHQD3KdOAhcut6ovS
	VDsEa+/qSoNv/EFkWRM7ZfTkQjZkFRuXwjJe8CkZ3xMFrp96A2CR+n1FFFmeMBXPo3H8tTnf75A
	VtDgJuSjU12UcGpConaYgeyQ0VQsXtABKrK86c0AHchaXvlabhBCWGmHCe6v3vofDy/uF1j/JdQ
	Qnvf2uSZY82zfxfCFHzY9KnMpFzuL+MiRcGIfoTPx3YPHEFjU+HYt3VwegPt3LrtvOUvNcidWHG
	+ll/OHDc/kuw6/o+8o6SYiuHa68STN+99lMpkWYpKmi4xHecoiQV+vr4+l2lh9Egjic1dZFph1e
	Ug++O1eI8ArcrWOXAEPghhz9TUVOncw==
X-Google-Smtp-Source: AGHT+IGRCWogGRl8is2Zy5qQ32YRBWRqyizqwdChEvaCfiHL2lx9WOjh/1ggrupDQqtA+DeK/moGkg==
X-Received: by 2002:a05:6000:2504:b0:390:dec3:2780 with SMTP id ffacd0b85a97d-39c2a6a3febmr1182451f8f.24.1743586936282;
        Wed, 02 Apr 2025 02:42:16 -0700 (PDT)
Message-ID: <5e9f85f2-8ac8-40de-9e17-1a070b3ff180@suse.com>
Date: Wed, 2 Apr 2025 11:42:15 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5] xen: simplify bitmap_to_xenctl_bitmap for little
 endian
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Julien Grall <julien@xen.org>, Stefano Stabellini
 <sstabellini@kernel.org>, Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <stefano.stabellini@amd.com>,
 xen-devel@lists.xenproject.org
References: <20250401005008.2787764-1-stefano.stabellini@amd.com>
 <694eac75-e872-4ba0-80ed-95c14cd11f5e@suse.com>
 <87f8fc5f-ed82-4930-bc04-50106cc5acff@citrix.com>
 <52ae7bed-ba15-4842-b5d8-4fcb61df28b2@suse.com>
 <d8be8991-8ac0-4b79-83a9-f0393f1dc46e@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: <d8be8991-8ac0-4b79-83a9-f0393f1dc46e@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 02.04.2025 11:36, Andrew Cooper wrote:
> On 02/04/2025 10:30 am, Jan Beulich wrote:
>> On 02.04.2025 11:21, Andrew Cooper wrote:
>>> On 01/04/2025 11:09 am, Jan Beulich wrote:
>>>> --- a/xen/common/bitmap.c
>>>> +++ b/xen/common/bitmap.c
>>>> @@ -359,12 +343,11 @@ static void bitmap_byte_to_long(unsigned
>>>>  
>>>>  #elif defined(__LITTLE_ENDIAN)
>>>>  
>>>> -static void bitmap_long_to_byte(uint8_t *bp, const unsigned long *lp,
>>>> -				unsigned int nbits)
>>>> -{
>>>> -	memcpy(bp, lp, DIV_ROUND_UP(nbits, BITS_PER_BYTE));
>>>> -	clamp_last_byte(bp, nbits);
>>>> -}
>>>> +#define LITTLE_ENDIAN 1 /* For IS_ENABLED(). */
>>> I guess I can fix this in my bswap series by giving __LITTLE_ENDIAN the
>>> value of 1 when it is defined ?
>> Hmm, that's an option, yes. Yet then I didn't pay close enough attention
>> to that part of the respective patch in that series, as I was blindly
>> assuming it to instead be
>>
>> #if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
>> # define __LITTLE_ENDIAN __ORDER_LITTLE_ENDIAN__
>> #elif __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
>> # define __BIG_ENDIAN __ORDER_BIG_ENDIAN__
>> #endif
>>
>> to keep the values of the symbols unaltered.
> 
> I saw no value doing that, after auditing that it was only ever used in
> an #ifdef kind of way.  IS_ENABLED() is an extension of the same
> concept, but requiring a 1 to work.

Fair enough then, and a (tiny) simplification here. I'll see about getting the
change here in, so you can re-base over it.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Apr 02 09:47:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 02 Apr 2025 09:47:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.935462.1336863 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzuh3-0002uv-3t; Wed, 02 Apr 2025 09:47:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 935462.1336863; Wed, 02 Apr 2025 09:47: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 1tzuh3-0002uo-08; Wed, 02 Apr 2025 09:47:33 +0000
Received: by outflank-mailman (input) for mailman id 935462;
 Wed, 02 Apr 2025 09:47: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=T645=WU=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tzuh2-0002uf-7z
 for xen-devel@lists.xenproject.org; Wed, 02 Apr 2025 09:47:32 +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 7e491439-0fa7-11f0-9ffb-bf95429c2676;
 Wed, 02 Apr 2025 11:47:30 +0200 (CEST)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-43cf257158fso45232885e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 02 Apr 2025 02:47:30 -0700 (PDT)
Received: from [10.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-43eb61369d9sm14988585e9.34.2025.04.02.02.47.28
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 02 Apr 2025 02:47:29 -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: 7e491439-0fa7-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743587249; x=1744192049; 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=NdKGFxVWSPRNWLC+7QUq0r7MZjDgcRM54pN02gxh+s0=;
        b=g3F2QavKItFC1oeKZwYAb31Vq/PLEK+wqi8HJ38s7XKsHFmOV56Z4hIg2GqmH41p0K
         nekEauD1xKDAImQ8D/rznTSH2wChkGHJqKs89lXipRv/OP06IBUmQB9sPpemGt+E0XIX
         tlr88iQrenxrFKKYsYfg85Ke7wTlLfKanvf1VgXSiIg4v14e+nWH2SnXqwfC+sTs4bi7
         T22rMn5ybU9/eIoUsGW1Hww8eSY2FQw3fejCLIPmU9wSKVYOZYjaHvLOogNo4mw9ysNX
         B0gVZgb8YbKNLNxECFtSD6Pgc2m9cZ+FUwWXgEnn8H2yU6UN8XqGC9hqPee2x/URMwaT
         JFLg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743587249; x=1744192049;
        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=NdKGFxVWSPRNWLC+7QUq0r7MZjDgcRM54pN02gxh+s0=;
        b=SZ/5S+qpvx1hp5iYfmy2bUyPGmlGIiGevNhgp1WGUYG92PJKPaUA+KEJdHMNDAjEVN
         nirXp1fQpp2w+WAamgOkn7jWkR5q0bnHqtx5m0qwrP1tBSvos5BZ6ofZMCBJvkc1O/Vd
         ySQt6nmg15uSIimx7oK6Xvk/ZvEWLi3G06BePws0ppJ5ajVqkj5E3VLi4Xmhjx6m4M/r
         FOtpA/u+iLRJ9zy47svO+QsjuPWNppMiecPMB1vq7yzeaEfbE/pX2tqy9IB5vhuzNM5c
         ll+u2gyiG7mbMNW1E5es3t6xkDDrUW24vY1WBYbFvPIToleq3HYk1XdlfjtQLmSjnLNK
         gFjQ==
X-Forwarded-Encrypted: i=1; AJvYcCXE+uAmmDoZ3mppexWEsTs7X5P+Q8TQodATQsL5oBGWa05IUIUNd3EyApZH1xNiKSIY7jiFvB02WPk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzVvsPLRz6MRv7HAivbEExQyHUNnEcW1trriftAJfM1z1fJVPhu
	057LQaLA7f7yDyP93wbw1VTKtC7T2JzVlfSWMBcAZdI6pozst5P0qxBp9lz09A==
X-Gm-Gg: ASbGncugBdl/+cK61orkvEgALCZqwyhrijOykdCogev4O+oGf5m3+sA6kOn9CT3Zm0a
	XFF7Na7M6mMyFCBXyZ1GMJvqcYSnHZdyx18dxbdq3whZYgzduG6G3KhWMugeu7hIl3DAHlYZt2e
	z3CrhinVsm4RLnmquudiDiDYq75NGS9vN3cMiHU1kL/VVEMoVYfwck4Abqp40/bY3I01kscOtH7
	tlpCyqBNT0get0stLoNqMcvoyz5vHcG3qvGy+A8c7YvrYiAE0ZlM+SH7cxzxOGwkpSkPLrOcIaI
	qpiNxyGf/HpV3Q0/xh1axxZ37BDhfreg0xUntElg5sZnVXgRNjCZUEa5+wEARB4NSpl3SWjJddq
	ZbpwZkS3gNpJ2C84O8u2TynOVumdxQsvnCSYOFloQ
X-Google-Smtp-Source: AGHT+IHlyiSONRTyMWoLNXKOp9N/0n5BsuYqdUJL5ms+3rrxiFOXS9AsAMIbT+l121TCvOzAXxwZjA==
X-Received: by 2002:a05:600c:444d:b0:43c:f85d:1245 with SMTP id 5b1f17b1804b1-43db6249f80mr134776985e9.17.1743587249646;
        Wed, 02 Apr 2025 02:47:29 -0700 (PDT)
Message-ID: <9de3107f-d6e2-49d8-bf9b-32ce75868514@suse.com>
Date: Wed, 2 Apr 2025 11:47:28 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 08/11] x86/boot: place trampoline code in a non-execute
 section
To: Andrew Cooper <andrew.cooper3@citrix.com>
References: <20250401130840.72119-1-roger.pau@citrix.com>
 <20250401130840.72119-9-roger.pau@citrix.com>
 <3fd56964-918a-49f7-a0fe-a1c6b8633af6@citrix.com>
Content-Language: en-US
Cc: Roger Pau Monne <roger.pau@citrix.com>, 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: <3fd56964-918a-49f7-a0fe-a1c6b8633af6@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 01.04.2025 15:49, Andrew Cooper wrote:
> On 01/04/2025 2:08 pm, Roger Pau Monne wrote:
>> The trampoline code is never executed in the position placed by the
>> loader.  It's first copied to the low 1MB, and always executed from
>> there.
>>
>> Move the trampoline code from being in .init.text section into
>> .init.data, so it's not in an executable section.  This allows applying
>> the relocations safely against a non-executable (and thus non-read only)
>> section, and then copy the relocated trampoline to the low 1MB.  Note
>> that the trampoline code is placed on an .init section, so zapped after
>> boot has finished.
>>
>> No functional change intended.
>>
>> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
>> ---
>> An alternative approach is to apply the relocations after having copied the
>> trampoline to the low 1MB, but that still generates relocations in mkreloc,
>> which is not helpful for the goal of having no relocations applied to
>> read-execute code sections.  This approach however places code in a data
>> section, which might cause issues when debugging it.
> 
> I, probably most of all, spend a reasonable amount of time disassembling
> the trampoline. I really would prefer to keep it in an executable section.
> 
> What are the options with relocations?  Can't we simply drop any in the
> trampoline region?

That's perhaps an option with mkreloc, but would require zapping them after
linking if we have the linker produce relocations. Doable, but likely not
to end up being pretty.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Apr 02 09:52:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 02 Apr 2025 09:52:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.935477.1336873 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzulh-000621-M5; Wed, 02 Apr 2025 09:52:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 935477.1336873; Wed, 02 Apr 2025 09:52:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzulh-00061u-HC; Wed, 02 Apr 2025 09:52:21 +0000
Received: by outflank-mailman (input) for mailman id 935477;
 Wed, 02 Apr 2025 09:52: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=T645=WU=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tzulg-0005z2-Fx
 for xen-devel@lists.xenproject.org; Wed, 02 Apr 2025 09:52:20 +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 2a8ede22-0fa8-11f0-9ea8-5ba50f476ded;
 Wed, 02 Apr 2025 11:52:19 +0200 (CEST)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-38f2f391864so3895917f8f.3
 for <xen-devel@lists.xenproject.org>; Wed, 02 Apr 2025 02:52:19 -0700 (PDT)
Received: from [10.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-39c0b6588dbsm16210364f8f.2.2025.04.02.02.52.18
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 02 Apr 2025 02:52:18 -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: 2a8ede22-0fa8-11f0-9ea8-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743587538; x=1744192338; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=VUNK9W8wV2mujo6N+5rPbjZDFz3Oe4t/5642xMeyKpw=;
        b=eMNYAp+j/mREwJU1XdI+IlElywVElh9h0oD7jb8lWjMrevLgII2cxSfpX8YkqcdNrL
         aXhS4ulQgGNjaUGl5tAQkfJGlmfHTaLrP2nJVpcL2yydn/yrN29Yrb9XmHFEfCe0sztM
         JD1jTgrKYjg1wYYJUcBwBuYjAJLojyWMy2/AS2uHi0PJ5yUggNHG0pHGqo+ncrrlSvx9
         +74NvbvbjVG7L4Hzv8ZuVmwTqfg3KK5P9QyeR4TdKx7ELw/ij82hSuS44C08w4fbAjn7
         DnGMtAswSOMKQcq4LgrVBAQEYDcpoCchgeHPM0OIhTnNWM+kLogbiYDTombpgtTouiDV
         3fuQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743587538; x=1744192338;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=VUNK9W8wV2mujo6N+5rPbjZDFz3Oe4t/5642xMeyKpw=;
        b=cAwZES0X0pUJ0PClcXS7+v2KR87cHFsEqwTxmhA+NG7/e84x5p7s03sxwHdzCzAuGn
         bbFnr4XXMnQD3AkBPUMpavixJzBYFB1zI9djXznZrYmUU3h7vRt/a0d6UWnP6bEm03xd
         cyrQA8phQqCvlazcDwQtx/yD/Kjm4JWKgGx0oYLNl0oUCGnTF34azxRXOaQa8cdyM3Ba
         1707sESebGPza4W1NpQigWJrKCpHV3ESnowCpmTWyMSQ+7wxSHDMV9qGQbulVSVhU0Oc
         CBlVsBDxbu9jRx+CISInc2XghWBplxSDLpgwigds5JJvJXmQPXf9t6KvX6nSuKr9ZAFZ
         C9lw==
X-Forwarded-Encrypted: i=1; AJvYcCUt3K6m8tGf0zt/5Y4L/nT/EMPbkb3y+6UWaWwpRfwTmtzLYQqOz0NIQGhz2X2dIhGa6vVfQOT2HMI=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzjipf2+aTy+x4Yz7zpg+35FZp2NXXB3NaYMFvikL5jN43U+khI
	Hq4A2zjQ0MRszcYsoGpWK4UhhR8yw9F/owlNPxiShW1KRPMmzS1ezWtWkbmVnA==
X-Gm-Gg: ASbGncu1DwwwhLfFZVu5l2KzdVGg+A5gHOlllqIhHEwMSFg1bEc+UeG6Nn5L0nqafiM
	fRx4HrHn5Wovkj+oiw6vN9k5Aa68odL2KrP/HTqABNVQyrv4mVldZkNFbkMDtpbsvSng83QZQYi
	Ymq2zMUHzspYgwMjg8uktPp95lglzztY1JdvaEDE7Zs7WesgyYwJUI1DMiQ4nOj73lO6IMq56UW
	agaRgKeas+VKd0q4UyjQZrfjTf6/a5TR4V8eO7zH8N4LllTXWYqJQ6/Fw+bNStDW/q+89eSMKgY
	ROxIwGtzifoQcGlNHJGj/PZ0Mi96F9FYimTjpDdArAO4ut7JAkJA2ACo6v64dNGm3JcZ8kHdOU3
	Xupduum6E/C3aOcIn5Yw8oD2lY4C1tA==
X-Google-Smtp-Source: AGHT+IFL5lGpxKIdfiYMutyujXBFRRd+hRBXLkx07R4s2xxTlXEguS65ZeyVZ+R6ojvo2E09jjvYLw==
X-Received: by 2002:a05:6000:1842:b0:391:253b:405d with SMTP id ffacd0b85a97d-39c12115d7amr11756941f8f.41.1743587538638;
        Wed, 02 Apr 2025 02:52:18 -0700 (PDT)
Message-ID: <0fe8cbc5-cb34-4446-881c-f7ef20d36ce5@suse.com>
Date: Wed, 2 Apr 2025 11:52:17 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 4/5] x86/vmx: remove *_OPCODE
To: dmkhn@proton.me
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, julien@xen.org,
 michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org,
 dmukhin@ford.com, xen-devel@lists.xenproject.org
References: <20250401222105.79309-1-dmukhin@ford.com>
 <20250401222105.79309-5-dmukhin@ford.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20250401222105.79309-5-dmukhin@ford.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 02.04.2025 00:21, dmkhn@proton.me wrote:
> @@ -497,9 +479,7 @@ static inline void vpid_sync_all(void)
>  
>  static inline void __vmxoff(void)
>  {
> -    asm volatile (
> -        VMXOFF_OPCODE
> -        : : : "memory" );
> +    asm volatile ("vmxoff" : : : "memory");

Nit (style): Blanks immediately inside parentheses please. Ideally ...

> @@ -507,15 +487,17 @@ static inline int __vmxon(u64 addr)
>      int rc;
>  
>      asm volatile ( 
> -        "1: " VMXON_OPCODE MODRM_EAX_06 "\n"
> -        "   setna %b0 ; neg %0\n" /* CF==1 or ZF==1 --> rc = -1 */
> +        "1: vmxon (%[addr])\n"
> +        "   setna %b[rc]\n"
> +        "   neg %[rc]\n"          /* CF==1 or ZF==1 --> rc = -1 */
>          "2:\n"
>          ".section .fixup,\"ax\"\n"
> -        "3: sub $2,%0 ; jmp 2b\n"    /* #UD or #GP --> rc = -2 */
> +        "3: mov $-2, %[rc]\n"
> +        "   jmp 2b\n"             /* #UD   or #GP   --> rc = -2 */
>          ".previous\n"
>          _ASM_EXTABLE(1b, 3b)
> -        : "=q" (rc)
> -        : "0" (0), "a" (&addr)
> +        : [rc] "=q" (rc)
> +        : "0" (0), [addr] "r" (&addr)
>          : "memory");

... you'd also take the opportunity to add the missing one here. Then
again Andrew eliminates this altogether anyway.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Apr 02 09:53:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 02 Apr 2025 09:53:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.935491.1336882 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzumI-0006ae-SK; Wed, 02 Apr 2025 09:52:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 935491.1336882; Wed, 02 Apr 2025 09:52: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 1tzumI-0006aX-PM; Wed, 02 Apr 2025 09:52:58 +0000
Received: by outflank-mailman (input) for mailman id 935491;
 Wed, 02 Apr 2025 09:52: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=qYE3=WU=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tzumH-0005z2-Nu
 for xen-devel@lists.xenproject.org; Wed, 02 Apr 2025 09:52:57 +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 4124cceb-0fa8-11f0-9ea8-5ba50f476ded;
 Wed, 02 Apr 2025 11:52:57 +0200 (CEST)
Received: by mail-wr1-x429.google.com with SMTP id
 ffacd0b85a97d-3914a5def6bso3711846f8f.1
 for <xen-devel@lists.xenproject.org>; Wed, 02 Apr 2025 02:52:57 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43eb5fcfa0esm15520405e9.13.2025.04.02.02.52.55
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 02 Apr 2025 02:52:56 -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: 4124cceb-0fa8-11f0-9ea8-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1743587576; x=1744192376; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=En/bICaPihI7jstGsUOESsxe0abo1T73f7rgPlM2d/g=;
        b=lheR0xdwbayd9Pb2ZK+h7kMVai4BdISPvph3D4ug3ZUNmBimDRIrxv+emyLDydLqEU
         xQJmGR9TqftzeWy2s8d+fcN3ci3cnYHk8abNalfqcvh0kfl/rcjz8CKIsenoC3X2YGDe
         NsjReqKh2zmk3dz3yiJ1A+tTv6WD5qMPVdJ0Q=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743587576; x=1744192376;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=En/bICaPihI7jstGsUOESsxe0abo1T73f7rgPlM2d/g=;
        b=Iu6y9DN0tQpWvimrTKcUyfQDVYhD740ck0v6L9ZgEKLIg64fyQDE1k0fUOTqljyd3D
         Fx9ee9yfeosuhBOZDqVrxxqIqaAZonYDRkYS5xvkuRCxPWHUQvqTJ7hKyzZ8s5r/0BI5
         uwQDg/35Sb8PlKwse1bv0HgyXrwIiUeNnvC0KFgUTGM3I0N0/TNeH4jnHlPA9rbCBoud
         +oRnN9ub/3iXmnE+RpBZ+WilC5N1ZjqYBmHpZtkxcfN3PuCYsZ2LL8X5SqEtAN9F/Bu9
         Ra5MMDLcpsVqwLdOIu6yEcSYpk0LXvyNwEUF0VyI4JWRW+K5tW0SemkWg3wOyG3sRvGu
         sAsA==
X-Forwarded-Encrypted: i=1; AJvYcCXN/kE1u/tz1FGkk6OxDVRwvn4YC22DAdzSNlFpp070lyqyjajclSln8pKcEIODGyIzMQtoYx5pKTk=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx+SJ25cG6heRAifvgxB3q+g4wgU55XFliEWAfMPgyoQ9F/ZGsk
	4YUEwDgeN0W0+bOUNqn5agivp00jj8NMEhXv8RiP7a/4tVc767i67gB1XCtWAdM=
X-Gm-Gg: ASbGnct+nyFGdum09T16UD/4KWNr9KY+QFi2+jr7q7y4CYticlMXdRNhBoI5asofbBK
	RFtCNxZbzhC8IivP8omgy1nqNhyvRtEo+Da0IQ5J4eFVF4JZQE8BFX/2mYpkDbHFvNvUdmetfAb
	0n8CZ8bYM4MIC5hw/5w5owhc30l2SMOZW8UVYabAQprlcKnx0DNW74V//w8jYHLoexqNYWxTBCh
	V34QYJ1JldzV10w2eOFApe8X4OKKI1+H0UzdHsbb47lu+4JC4W6uNIcKVRJS7hBrAfbmwpEblB9
	1ppPZdQLUijneN+TQRuKSDajbHEGtnGAkzUfYAWGgIloqm0a5rQ2/LoU1EezM9A2wACMBmri/qk
	HjLiZ5FidBBbOX2VI44in
X-Google-Smtp-Source: AGHT+IHVefCQccuI8MK9OZ+mR+wfwQBHMayZb2SFRn94nlQAgxD7jsdV+imgtPLOxh7ViH36yabI+g==
X-Received: by 2002:a5d:5f52:0:b0:391:253b:4046 with SMTP id ffacd0b85a97d-39c120de297mr13417474f8f.16.1743587576572;
        Wed, 02 Apr 2025 02:52:56 -0700 (PDT)
Message-ID: <093d7c80-b013-4f33-8fb5-29d6133f85c3@citrix.com>
Date: Wed, 2 Apr 2025 10:52:55 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH RFC] x86/vmx: Use asm goto() in _vmx_cpu_up()
To: Jan Beulich <jbeulich@suse.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, dmkhn@proton.me,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250401233444.1181076-1-andrew.cooper3@citrix.com>
 <c84ee77b-2a5b-49d9-ac4e-018ce359f67c@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: <c84ee77b-2a5b-49d9-ac4e-018ce359f67c@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 02/04/2025 10:40 am, Jan Beulich wrote:
> On 02.04.2025 01:34, Andrew Cooper wrote:
>> With the new toolchain baseline, we can make use of asm goto() in certain
>> places, and the VMXON invocation is one example.
>>
>> This removes the logic to set up rc (including a fixup section where bactraces
>> have no connection to the invoking function), the logic to decode it, and the
>> default case which was dead but in a way the compiler couldn't prove
>> previously.
>>
>> 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: dmkhn@proton.me
>>
>> RFC.  To be rebased over Denis' general cleanup.
> LGTM. Can't this actually replace some of his cleanup? Judging from
> base-commit: at the bottom this isn't based on his work. In which case:
> Reviewed-by: Jan Beulich <jbeulich@suse.com>

Oh.  I was expecting there to be far more debate on this.

In which case I expect it will be easiest for this patch to go in first,
and supersede Denis' cleanup to __vmxon(), so as not to rework it twice
in quick succession.  (Sorry.)

>
>> In principle, we can split fail into fail_valid and fail_invalid, allowing us
>> to spot the VMfail("VMXON executed in VMX root operation") case from the
>> pseduocode.  However, getting that involves a VMREAD of VM_INSTRUCTION_ERROR,
>> and error handling in case there isn't a loaded VMCS, so I think the
>> complexity is unwarranted in this case.
> +1
>
>> Bloat-o-meter:
>>   add/remove: 0/0 grow/shrink: 1/1 up/down: 13/-32 (-19)
>>   Function                                     old     new   delta
>>   _vmx_cpu_up.cold                            2460    2473     +13
>>   _vmx_cpu_up                                 1803    1771     -32
>>
>> The if ( 0 ) isn't terribly nice, but it's the least bad option I could come
>> up with.  It does allow the structure of the switch() to remain largely
>> intact.
> For the purpose of the diff here I agree. In a subsequent change we could then
> still move the whole blob to the end of the function. Especially if some of
> the static analysis tools didn't like the "if ( 0 )".

Actually, doing that is still a nice diff to read.  I think I'll take
this approach.  I'll send out a v2 in just a moment.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Apr 02 09:56:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 02 Apr 2025 09:56:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.935504.1336893 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzupf-0007Ee-Eu; Wed, 02 Apr 2025 09:56:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 935504.1336893; Wed, 02 Apr 2025 09:56: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 1tzupf-0007EX-BF; Wed, 02 Apr 2025 09:56:27 +0000
Received: by outflank-mailman (input) for mailman id 935504;
 Wed, 02 Apr 2025 09:56: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=qYE3=WU=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tzupd-0007ER-S9
 for xen-devel@lists.xenproject.org; Wed, 02 Apr 2025 09:56:25 +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 bc762b73-0fa8-11f0-9ffb-bf95429c2676;
 Wed, 02 Apr 2025 11:56:24 +0200 (CEST)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-4394a823036so60762905e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 02 Apr 2025 02:56:24 -0700 (PDT)
Received: from localhost.localdomain (host-92-26-98-202.as13285.net.
 [92.26.98.202]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43eb5fc1ab6sm15500745e9.1.2025.04.02.02.56.22
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 02 Apr 2025 02:56:22 -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: bc762b73-0fa8-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1743587783; x=1744192583; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=P2WgklV4aS+vL81IQKhOiZwM+XpHySTiTqu70gWfUIk=;
        b=eJHWsUuiaELBw/2f41nff6t//yOxacguNIKfgmAunG77Y5da5JxKefCa3dn5oKcBGO
         VlydRk9La1ZqzSzkUG04T1fT6+IZCZLHI3nQIkI24uqqOW/Qf4psMP+JFQnADoW0hST1
         MKkSKNEWmssAFTtIxNY63fIe1mYlXt+Pp6VVA=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743587783; x=1744192583;
        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=P2WgklV4aS+vL81IQKhOiZwM+XpHySTiTqu70gWfUIk=;
        b=GW7I5CvL8CERMEoWS9v/EuF+eojcd8vPVFza8DjalnZkSsL4GjK/ZcBRdg1KBo9cWL
         gX5la3Kwh6GOKUm3nSGpQTjS7VgVZUP/gyaUyJT9ZlbHD04yCp8tpcTkEb3NVY5S1e0r
         X4q16oue8IJL5dieWZaWpLBqv6KyV3bNiJBcoK+2Bw9H9Tbxebctpa8P8D7rhpayex9l
         3YGbiBH8e+xA3N/P7Ss7EER3HGEWqYgef1/jIMv7jNSJp1jN4JI4P2aKF97ik6WE8SgS
         cSQw+QnCZOhDZ5qGug299gpzf8hEKSec1orvcUkbYXtf4a0kOQCxnrkVb3v3kl75Zz0i
         4P2Q==
X-Gm-Message-State: AOJu0YxA+qojDhTIgWRV3V9piMK4cEatidrEcvl4QEnCYepzzIac9CzT
	smY0GUUUnS44q8kjwXXgrPikf5EQe6odah3l3Sm4mqYuDYuQ+QPo3qvaksPjEpva1lHowv2ej5D
	hejo=
X-Gm-Gg: ASbGncsayM3Aqar1i48ye/YXEoghWJ238QAwMUynFRZXxh1Y/42M1bHeciqZr3to6DM
	DSG3B2wIqPcIWbkoFWRCjSTobG3B5gLvOvWqq+qx7u8qYj397YMO1a7QD0xkYEtMu5T0sPtTqbi
	uXpV6VEV4QhucyG5zVCyApgH3TFhsc9uyCfSAAYH7q8PWX30/iAaBCXSX//ufM1vSHTa/4H6Qad
	NqsLBxq8FPV/GwzGKvo1EgLPn4poxeHL3W9uu4bXzdcpTM1KP0OYsWUm3OMQeETp7xnhv4EgjPU
	WOTZ1yOLTQUbaWbZ4/b8qEXznXDAci7HBtgwX7o9fUcBz+YXIb056UUgQwztJhoY0vn1w7/Jo2J
	Me69+dD4VJNOpLNXpjA==
X-Google-Smtp-Source: AGHT+IGSvV3p1yGdksYG8oWda9MkUImUK0jSBNaWq/jhqUjSd36YhX7uVI4mFRebNCGs0cnPXnNuxw==
X-Received: by 2002:a05:600c:470f:b0:43c:e305:6d50 with SMTP id 5b1f17b1804b1-43eb5c95bf9mr13879465e9.24.1743587783146;
        Wed, 02 Apr 2025 02:56:23 -0700 (PDT)
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>,
	dmkhn@proton.me
Subject: [PATCH v2] x86/vmx: Use asm goto() in _vmx_cpu_up()
Date: Wed,  2 Apr 2025 10:56:21 +0100
Message-Id: <20250402095621.1278093-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250401233444.1181076-1-andrew.cooper3@citrix.com>
References: <20250401233444.1181076-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

With the new toolchain baseline, we can make use of asm goto() in certain
places, and the VMXON invocation is one example.

This removes the logic to set up rc (including a fixup section where bactraces
have no connection to the invoking function), the logic to decode it, and the
default case which was dead but in a way the compiler couldn't prove
previously.

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: dmkhn@proton.me

v2:
 * Move error block to the end of the function.

Bloat-o-meter:
  add/remove: 0/0 grow/shrink: 1/1 up/down: 13/-32 (-19)
  Function                                     old     new   delta
  _vmx_cpu_up.cold                            2460    2473     +13
  _vmx_cpu_up                                 1803    1771     -32
---
 xen/arch/x86/hvm/vmx/vmcs.c            | 50 +++++++++++++-------------
 xen/arch/x86/include/asm/hvm/vmx/vmx.h | 19 ----------
 2 files changed, 26 insertions(+), 43 deletions(-)

diff --git a/xen/arch/x86/hvm/vmx/vmcs.c b/xen/arch/x86/hvm/vmx/vmcs.c
index 0ba65becec1e..8e99e6f73062 100644
--- a/xen/arch/x86/hvm/vmx/vmcs.c
+++ b/xen/arch/x86/hvm/vmx/vmcs.c
@@ -749,30 +749,15 @@ static int _vmx_cpu_up(bool bsp)
     if ( bsp && (rc = vmx_cpu_up_prepare(cpu)) != 0 )
         return rc;
 
-    switch ( __vmxon(this_cpu(vmxon_region)) )
-    {
-    case -2: /* #UD or #GP */
-        if ( bios_locked &&
-             test_bit(X86_FEATURE_SMX, &boot_cpu_data.x86_capability) &&
-             (!(eax & IA32_FEATURE_CONTROL_ENABLE_VMXON_OUTSIDE_SMX) ||
-              !(eax & IA32_FEATURE_CONTROL_ENABLE_VMXON_INSIDE_SMX)) )
-        {
-            printk("CPU%d: VMXON failed: perhaps because of TXT settings "
-                   "in your BIOS configuration?\n", cpu);
-            printk(" --> Disable TXT in your BIOS unless using a secure "
-                   "bootloader.\n");
-            return -EINVAL;
-        }
-        /* fall through */
-    case -1: /* CF==1 or ZF==1 */
-        printk("CPU%d: unexpected VMXON failure\n", cpu);
-        return -EINVAL;
-    case 0: /* success */
-        this_cpu(vmxon) = 1;
-        break;
-    default:
-        BUG();
-    }
+    asm goto ( "1: vmxon %[addr]\n\t"
+               "jbe %l[vmxon_fail]\n\t"
+               _ASM_EXTABLE(1b, %l[vmxon_fault])
+               :
+               : [addr] "m" (this_cpu(vmxon_region))
+               :
+               : vmxon_fail, vmxon_fault );
+
+    this_cpu(vmxon) = 1;
 
     hvm_asid_init(cpu_has_vmx_vpid ? (1u << VMCS_VPID_WIDTH) : 0);
 
@@ -785,6 +770,23 @@ static int _vmx_cpu_up(bool bsp)
     vmx_pi_per_cpu_init(cpu);
 
     return 0;
+
+ vmxon_fault:
+    if ( bios_locked &&
+         test_bit(X86_FEATURE_SMX, &boot_cpu_data.x86_capability) &&
+         (!(eax & IA32_FEATURE_CONTROL_ENABLE_VMXON_OUTSIDE_SMX) ||
+          !(eax & IA32_FEATURE_CONTROL_ENABLE_VMXON_INSIDE_SMX)) )
+    {
+        printk("CPU%d: VMXON failed: perhaps because of TXT settings "
+               "in your BIOS configuration?\n", cpu);
+        printk(" --> Disable TXT in your BIOS unless using a secure "
+               "bootloader.\n");
+        return -EINVAL;
+    }
+
+ vmxon_fail:
+    printk("CPU%d: unexpected VMXON failure\n", cpu);
+    return -EINVAL;
 }
 
 int cf_check vmx_cpu_up(void)
diff --git a/xen/arch/x86/include/asm/hvm/vmx/vmx.h b/xen/arch/x86/include/asm/hvm/vmx/vmx.h
index 843f8591b9cf..7c6ba7340744 100644
--- a/xen/arch/x86/include/asm/hvm/vmx/vmx.h
+++ b/xen/arch/x86/include/asm/hvm/vmx/vmx.h
@@ -559,25 +559,6 @@ static inline void __vmxoff(void)
         : : : "memory" );
 }
 
-static inline int __vmxon(u64 addr)
-{
-    int rc;
-
-    asm volatile ( 
-        "1: " VMXON_OPCODE MODRM_EAX_06 "\n"
-        "   setna %b0 ; neg %0\n" /* CF==1 or ZF==1 --> rc = -1 */
-        "2:\n"
-        ".section .fixup,\"ax\"\n"
-        "3: sub $2,%0 ; jmp 2b\n"    /* #UD or #GP --> rc = -2 */
-        ".previous\n"
-        _ASM_EXTABLE(1b, 3b)
-        : "=q" (rc)
-        : "0" (0), "a" (&addr)
-        : "memory");
-
-    return rc;
-}
-
 int cf_check vmx_guest_x86_mode(struct vcpu *v);
 unsigned int vmx_get_cpl(void);
 
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Wed Apr 02 09:58:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 02 Apr 2025 09:58:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.935515.1336903 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzur9-0007nX-O7; Wed, 02 Apr 2025 09:57:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 935515.1336903; Wed, 02 Apr 2025 09: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 1tzur9-0007nQ-LR; Wed, 02 Apr 2025 09:57:59 +0000
Received: by outflank-mailman (input) for mailman id 935515;
 Wed, 02 Apr 2025 09:57: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=T645=WU=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tzur9-0007kq-AC
 for xen-devel@lists.xenproject.org; Wed, 02 Apr 2025 09:57:59 +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 f4ec942f-0fa8-11f0-9ea8-5ba50f476ded;
 Wed, 02 Apr 2025 11:57:58 +0200 (CEST)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-43cfa7e7f54so3953605e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 02 Apr 2025 02:57:58 -0700 (PDT)
Received: from [10.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-43eb5fd163dsm15243615e9.14.2025.04.02.02.57.57
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 02 Apr 2025 02:57:58 -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: f4ec942f-0fa8-11f0-9ea8-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743587878; x=1744192678; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Bzi83+Z3rcqC/DTXNkxSkmIU4O6+LWZXSNfqsU7U8v4=;
        b=D8ASt0agAjagDMN4e/uJPiCh6+XaGkO1Y34fsBs+OQrRyfoENnRwjZdx0rQck3ZNHO
         +tOsbG2fwQMxpoWbDZ9FjD9P939F5FzUCYmuCaVoDb0ul5pPJM4YQ5etjl3wFWsWvPr/
         0RKEZol4EtFyQiFAp2CVDZV7aUpkh9uyVH6PpYE9kfbUgsJM3Iqm6q0mqxadAaN381n2
         6uDALsS2aRSY4plmSmJ/uH+BOWvQsGr3/JzCSnGFOnwyUpv7IGVww9qfzxzuH064H46D
         Mgy9PETPQ1WIOCR9bWIrzeFhrxNxWy7dSpIFRtbx6E6UWZru5EHrb+eQb0MXUPBQgng6
         PTVg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743587878; x=1744192678;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Bzi83+Z3rcqC/DTXNkxSkmIU4O6+LWZXSNfqsU7U8v4=;
        b=jX6ZDhtb3ABBwuKhboebF2VUVBDGvnWJnFPqR2lxp5VJNvTc3/vVvc71cwos4UZR0A
         AwSITeCtaFeSENFVlvgQeD2CM2zcyrF/ZLqa/X439ZcYsSiJ3Lr0XDxr/Vqp5148zAdx
         LGRfXGjrpYgETF4kXpnZ5J6gVS3QYEdiPOTFjsa0iiZZAgQZmKnfJ4CXVhiPy4WEZ50A
         4WztjgBTmr77lKNj8RQgGRVl94FZ+oTyVvSt5LMf5t9MS28tmsUAhC1WWj+w4MvR4W5p
         XWWBOiKGJTkH4vSK0JXcoH8OtKLq1bzHvV/mwoUCHCFGmKrUcsqA5QPTtkwkEFQpeznx
         sKWw==
X-Forwarded-Encrypted: i=1; AJvYcCUr8v6HZS8dDuyuJcjxlLlEzyrTrnuNHGceXHQa/NQGxuOkgKXzKvQElDJeLQql4J29Q9bDD9Lg+Zw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxK7gj8v55KX3sajY2yMGp3yS82U8F9/5ASumYaumMrhHsCraK6
	tKa+hx8knced7Qbg7WWyN3V8I/JcoNOpQTlXMC0xYqKM4Cy0tfPmEffAlOBh+g==
X-Gm-Gg: ASbGnct6Yx8al8zHqDFe+tQCNZ8BvPPo4KUM50bC8HFgajgcVlxedSrKlT+eolla0Nj
	QAoicI0lOlxjdzL8iQvUB1zOrwxYy++CBEdrp74wh6sba0qL46Ls9szfjsAfFDNYuk6CAOj4v6j
	IU0wmaA+d9NPA+UuKCEHsrCTumKAZaSRe9foYxtbN5nu/SUIyBWB+pYd8QuT4UgJ/EvjfpxzyBM
	5dq4Rf+VkvHYEYOeaN9kT08/m+dnlhsuOEGu8J2B+soA6Em8dLRrVwgy0o4sw3YQA6JKirveB2T
	awaKnlsdBxoQeRGorXzm2aKERlKsB6DcdJFblHD19IXxyb4fuFiI8IdU0aYarHdE0HQ227R50QD
	aYnnQCTPJahOKyC9xBeV1+ithKWdztrf7LhPPNDwx
X-Google-Smtp-Source: AGHT+IFxpkxKFFuSR3NFMbLkravCZQ+aTY6GyXGdcGfCwp/HhoLH6cx5GhQxXnjQDsTf5gsJRD91kQ==
X-Received: by 2002:a05:600c:1e0f:b0:43b:c592:7e16 with SMTP id 5b1f17b1804b1-43eb6fea736mr16740225e9.3.1743587878257;
        Wed, 02 Apr 2025 02:57:58 -0700 (PDT)
Message-ID: <a92e034f-ea62-4213-b1a8-c49038c6348f@suse.com>
Date: Wed, 2 Apr 2025 11:57:57 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH RFC] x86/vmx: Use asm goto() in _vmx_cpu_up()
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, dmkhn@proton.me,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250401233444.1181076-1-andrew.cooper3@citrix.com>
 <c84ee77b-2a5b-49d9-ac4e-018ce359f67c@suse.com>
 <093d7c80-b013-4f33-8fb5-29d6133f85c3@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: <093d7c80-b013-4f33-8fb5-29d6133f85c3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 02.04.2025 11:52, Andrew Cooper wrote:
> On 02/04/2025 10:40 am, Jan Beulich wrote:
>> On 02.04.2025 01:34, Andrew Cooper wrote:
>>> With the new toolchain baseline, we can make use of asm goto() in certain
>>> places, and the VMXON invocation is one example.
>>>
>>> This removes the logic to set up rc (including a fixup section where bactraces
>>> have no connection to the invoking function), the logic to decode it, and the
>>> default case which was dead but in a way the compiler couldn't prove
>>> previously.
>>>
>>> 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: dmkhn@proton.me
>>>
>>> RFC.  To be rebased over Denis' general cleanup.
>> LGTM. Can't this actually replace some of his cleanup? Judging from
>> base-commit: at the bottom this isn't based on his work. In which case:
>> Reviewed-by: Jan Beulich <jbeulich@suse.com>
> 
> Oh.  I was expecting there to be far more debate on this.

You had indicated many times that you want to make use of asm goto(),
and for situation like the one here I'm actually in trouble seeing
any objections you might have been expecting. Were you maybe
expecting me to object just for the purpose of objecting ;-) ?

Jan


From xen-devel-bounces@lists.xenproject.org Wed Apr 02 10:03:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 02 Apr 2025 10:03:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.935530.1336912 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzuwk-0002et-A8; Wed, 02 Apr 2025 10:03:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 935530.1336912; Wed, 02 Apr 2025 10:03:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzuwk-0002em-7a; Wed, 02 Apr 2025 10:03:46 +0000
Received: by outflank-mailman (input) for mailman id 935530;
 Wed, 02 Apr 2025 10:03: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=T645=WU=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tzuwj-0002eg-NL
 for xen-devel@lists.xenproject.org; Wed, 02 Apr 2025 10:03:45 +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 c2f2cff4-0fa9-11f0-9ea8-5ba50f476ded;
 Wed, 02 Apr 2025 12:03:44 +0200 (CEST)
Received: by mail-wr1-x42c.google.com with SMTP id
 ffacd0b85a97d-39ac9aea656so5329592f8f.3
 for <xen-devel@lists.xenproject.org>; Wed, 02 Apr 2025 03:03:44 -0700 (PDT)
Received: from [10.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-39c0b7a4482sm16133589f8f.86.2025.04.02.03.03.42
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 02 Apr 2025 03:03:43 -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: c2f2cff4-0fa9-11f0-9ea8-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743588224; x=1744193024; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=+oqq49Ulim8UYSMiHT1yk8DRl/YoWfLnj7lGCKE59aI=;
        b=KxsqAMWcbQ6x5lCLJ50EF5JO4cLy/gYvTmhY5Z4Raejtpurg60izjpQ2ZyuqjXCCV5
         sZCZw8Sew+E/dCxMcmm6I2G3HoGH30ekh4sE90QDiz5AaYgF4q2pFO1Eb5vW9awlQ6by
         0fHrkQBr7KLJZUFa2M1vCd1JIhz9hee3ycV3xARaZImfBuNDW3nc3ml0Ur05dkVaigaF
         BlxRXqtKlJfNxW4Mtzvsx8vQYDV09nSJ14kjVlnkomgSfg/z4GIBXpJwzsNBi2qEAE/u
         TFwhPDAkUTdgnnTBG+YjTplwoi8cNem2DAidMtk85w9cGGDgDqmLW5RAUqmBKc5bDGl3
         GdYw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743588224; x=1744193024;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=+oqq49Ulim8UYSMiHT1yk8DRl/YoWfLnj7lGCKE59aI=;
        b=LemeDPPkS80aFMPAyjiOK80X40Cpmz+FPsluiqjNFfCv6+cho4m5GYWmrXLGwSHdEs
         Jg4hs+uolX7zQCdBLNQyUV8BmJszvwXFMA8KOR2QxaqCMn+zRo/eQQECFG1e+QgoFBMI
         Q0LdW0hc/qbIXRsD4rpCrvOOvDlETLUPqtkmaoSSMYKFbgM6uMirwIu1nTqUNVtjJGPD
         GQ0hnIylYTPDqkAuJPefpYeB4lk+vazQbZrFbQsSNikSOUsBBB0YlzKPc5VL7vjlobKn
         Rg/f8uyuemj0gpTC042oUM+9fNiTLCxywGyOk2cD7JCYJafsRcm1KcC207L3koLQd9pO
         Ke1Q==
X-Forwarded-Encrypted: i=1; AJvYcCX2+lAQViJPADLSjQyZ6cffdnfgTltjtaHfYbtcFH0QZ4hu5VqWOTxMld8zqE4v8fMDzA++U+/4rRY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxDWrmV/jYv7hsNdawcKZusxz7x3yU+Nl6kAM2VLzawseJTlim8
	cZxBiTTV2YeHdZcghAZEZrAlCTRD6MnSfSXw93NvYVbVJLRrfmFJ+W3NJ/RcNA==
X-Gm-Gg: ASbGncs4y1DPrrbRwvKJIvYtTKV96tnk66xgO8YsOJPMUlJ3cQMVTEDhGiWZ7SFEhUR
	r49yWp56OqpOYBu7gSuzaoKbuP08IzJavcnZ+u0NdFLTEgL00bU3foZbYmJS1E8zxVgopwqYLBz
	gjgGX1Kg4lBbQx5lrChScrQHASgWwWuvDKTDeNlBlEIsoWDdAhz84jzfqpSFiGrY0r2JKkwLJO7
	PjsKHan9DtyWng6JzbJUawwtQ4wtUlAN4cXp0Ux5tqBDIp+cuzS7LZqtLcPDvN5nz24hXqNtIgP
	W1HMmaHg+89ZB7wZTJmjb4Ay8wucp2r5a8bSIs977kRX4ktU72CHfJGG0GJsu7KQavva0bIWmpS
	1+gufphhFjyYQzDNKjnRxCPIfYfDPYw==
X-Google-Smtp-Source: AGHT+IH2eLbjB8jfTAWhFWZAm9xWsa4Eg0Pvv8u+BwSmyk6MRuIeo++2R83yk0JJx9AwfV9YiVUkWQ==
X-Received: by 2002:a05:6000:4282:b0:391:4bcb:828f with SMTP id ffacd0b85a97d-39c120de080mr14208464f8f.14.1743588223810;
        Wed, 02 Apr 2025 03:03:43 -0700 (PDT)
Message-ID: <1d73f823-aab3-4648-a5b9-4d0eedc33fc2@suse.com>
Date: Wed, 2 Apr 2025 12:03:42 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] x86/vmx: Use asm goto() in _vmx_cpu_up()
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, dmkhn@proton.me,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250401233444.1181076-1-andrew.cooper3@citrix.com>
 <20250402095621.1278093-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: <20250402095621.1278093-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 02.04.2025 11:56, Andrew Cooper wrote:
> --- a/xen/arch/x86/hvm/vmx/vmcs.c
> +++ b/xen/arch/x86/hvm/vmx/vmcs.c
> @@ -749,30 +749,15 @@ static int _vmx_cpu_up(bool bsp)
>      if ( bsp && (rc = vmx_cpu_up_prepare(cpu)) != 0 )
>          return rc;
>  
> -    switch ( __vmxon(this_cpu(vmxon_region)) )
> -    {
> -    case -2: /* #UD or #GP */
> -        if ( bios_locked &&
> -             test_bit(X86_FEATURE_SMX, &boot_cpu_data.x86_capability) &&
> -             (!(eax & IA32_FEATURE_CONTROL_ENABLE_VMXON_OUTSIDE_SMX) ||
> -              !(eax & IA32_FEATURE_CONTROL_ENABLE_VMXON_INSIDE_SMX)) )
> -        {
> -            printk("CPU%d: VMXON failed: perhaps because of TXT settings "
> -                   "in your BIOS configuration?\n", cpu);
> -            printk(" --> Disable TXT in your BIOS unless using a secure "
> -                   "bootloader.\n");
> -            return -EINVAL;
> -        }
> -        /* fall through */
> -    case -1: /* CF==1 or ZF==1 */
> -        printk("CPU%d: unexpected VMXON failure\n", cpu);
> -        return -EINVAL;
> -    case 0: /* success */
> -        this_cpu(vmxon) = 1;
> -        break;
> -    default:
> -        BUG();
> -    }
> +    asm goto ( "1: vmxon %[addr]\n\t"
> +               "jbe %l[vmxon_fail]\n\t"
> +               _ASM_EXTABLE(1b, %l[vmxon_fault])
> +               :
> +               : [addr] "m" (this_cpu(vmxon_region))
> +               :
> +               : vmxon_fail, vmxon_fault );

I must have overlooked this in the RFC - you're losing ...

> --- a/xen/arch/x86/include/asm/hvm/vmx/vmx.h
> +++ b/xen/arch/x86/include/asm/hvm/vmx/vmx.h
> @@ -559,25 +559,6 @@ static inline void __vmxoff(void)
>          : : : "memory" );
>  }
>  
> -static inline int __vmxon(u64 addr)
> -{
> -    int rc;
> -
> -    asm volatile ( 
> -        "1: " VMXON_OPCODE MODRM_EAX_06 "\n"
> -        "   setna %b0 ; neg %0\n" /* CF==1 or ZF==1 --> rc = -1 */
> -        "2:\n"
> -        ".section .fixup,\"ax\"\n"
> -        "3: sub $2,%0 ; jmp 2b\n"    /* #UD or #GP --> rc = -2 */
> -        ".previous\n"
> -        _ASM_EXTABLE(1b, 3b)
> -        : "=q" (rc)
> -        : "0" (0), "a" (&addr)
> -        : "memory");

... the memory barrier here. I will admit I'm not sure I see why it's
there, but if the removal was deliberate, then a sentence wants saying
about this in the description. With that or with it re-added:
Reviewed-by: Jan Beulich <jbeulich@suse.com>

Now that you move the printk()s, I also wouldn't mind if you pruned them
some: Un-wrap the format strings and perhaps purge the full stop.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Apr 02 10:05:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 02 Apr 2025 10:05:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.935541.1336922 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzuyA-0003B1-M7; Wed, 02 Apr 2025 10:05:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 935541.1336922; Wed, 02 Apr 2025 10: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 1tzuyA-0003Au-Iy; Wed, 02 Apr 2025 10:05:14 +0000
Received: by outflank-mailman (input) for mailman id 935541;
 Wed, 02 Apr 2025 10:05: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=qYE3=WU=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tzuy9-0003An-Hi
 for xen-devel@lists.xenproject.org; Wed, 02 Apr 2025 10:05:13 +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 f6fda1e1-0fa9-11f0-9ffb-bf95429c2676;
 Wed, 02 Apr 2025 12:05:11 +0200 (CEST)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-4394036c0efso44442715e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 02 Apr 2025 03:05:11 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43eb60cc172sm15699195e9.21.2025.04.02.03.05.09
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 02 Apr 2025 03:05: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: f6fda1e1-0fa9-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1743588311; x=1744193111; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=0ox6JV0NvXmrbFJj+nazu1SIV6qH4uyBb3294h1tlrQ=;
        b=BnM7SWuOOcOSfIoAxtsbzj8S8hVO+i4J+yh0FRet6ORldcPKbLwWkQRoDUs2LSK+61
         YdVfgeagMnzQRvDrLdwUGLlbgciuwEg0GtqG679et6KDtUEJxWRsoIdYysjxmb9Z506H
         BgnadNxFK7ITFtljaGbLMb7qLGWszdXdYgWwQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743588311; x=1744193111;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=0ox6JV0NvXmrbFJj+nazu1SIV6qH4uyBb3294h1tlrQ=;
        b=GCvYFl0BHn+VsHOFtKKPoC2+JHLZ7bS5QphymZVhwLDOkcznddKduHWVn7qr1j2hDq
         3p+dDFeuoDLoO7NwxOLORve1nE9GhBE1uYVo1IfEyilV/RQfCWaVG7Ri049ylqRO7B7I
         3M7CSz7WdGPZwFjAJ8KHSgCSHcbd480BWq/f3lAI/R+kDlpxicnS/OLFwpSj2D5UIXMV
         u48z00aEZGaenr3LrfnGT8PqIU9Z4S02413OYvx+SDxUVZ+avHxWar4WpNiygVU8mz1c
         F60QpX4FR82igI+IAwWFdHMc/VaweCkWVK9HjNtUeetkVYwz5skFbxM56HsT7GA08cjf
         iQxg==
X-Gm-Message-State: AOJu0Yz/RYUgdxFBqnljpTeEzBOmSGweu6daicVkFLMTCYaTrfLwocqn
	fqQJnWORIWNbE76XWJ8SyVNRufNXLs6fXlNTWKaPBteIoyk2GXMMEOGKgvVTqPZbw4jtBaIHTSv
	AqnI=
X-Gm-Gg: ASbGncuVMuarGZ9TLV2PWlFcHY/OHgYxjweZ9ID6IHyu6SfBcDsahf4goa7X4pSChzy
	k+yAW12y0jCdoFenqSta9lFINzVqfM03J8ckZSTFWsp9OoHcadR/tebBskJ7mkltW+nlvtV51DT
	HiT3uIArq7o9hNxSz/xpbPRYY62tGxZErB+uKv5MSXTfi4odC7wGPgXE19rTV4w/afJyPYmTZDw
	I9/WvtJIxArffxHcgAUApksU94JWYn7scwFY8JAUaqbBepDQvBvjc1M9+SycD0phOIJZrIa7//y
	pCt5o8PLEfUOa1iDdNbWsOyDrGGbrT9mwbp3J0WLKwIwsTe757NDmeb3EFFiX7TtZ8DnaQnK8L9
	lknDIqBnyJw==
X-Google-Smtp-Source: AGHT+IFUUcvFknDh/mmASfovAB76T1166MkgezHkQrWxXYaRw8+RPGoKn7kna22bF70//+6IL0SFiw==
X-Received: by 2002:a05:600c:6a12:b0:43d:fa59:cc8e with SMTP id 5b1f17b1804b1-43dfa59cd01mr103071575e9.32.1743588310727;
        Wed, 02 Apr 2025 03:05:10 -0700 (PDT)
Message-ID: <32e8c022-1564-478b-833f-75f56f4afd45@citrix.com>
Date: Wed, 2 Apr 2025 11:05:09 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] x86/vmx: Use asm goto() in _vmx_cpu_up()
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>, dmkhn@proton.me
References: <20250401233444.1181076-1-andrew.cooper3@citrix.com>
 <20250402095621.1278093-1-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: <20250402095621.1278093-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 02/04/2025 10:56 am, Andrew Cooper wrote:
> diff --git a/xen/arch/x86/hvm/vmx/vmcs.c b/xen/arch/x86/hvm/vmx/vmcs.c
> index 0ba65becec1e..8e99e6f73062 100644
> --- a/xen/arch/x86/hvm/vmx/vmcs.c
> +++ b/xen/arch/x86/hvm/vmx/vmcs.c
> @@ -785,6 +770,23 @@ static int _vmx_cpu_up(bool bsp)
>      vmx_pi_per_cpu_init(cpu);
>  
>      return 0;
> +
> + vmxon_fault:
> +    if ( bios_locked &&
> +         test_bit(X86_FEATURE_SMX, &boot_cpu_data.x86_capability) &&
> +         (!(eax & IA32_FEATURE_CONTROL_ENABLE_VMXON_OUTSIDE_SMX) ||
> +          !(eax & IA32_FEATURE_CONTROL_ENABLE_VMXON_INSIDE_SMX)) )
> +    {
> +        printk("CPU%d: VMXON failed: perhaps because of TXT settings "
> +               "in your BIOS configuration?\n", cpu);
> +        printk(" --> Disable TXT in your BIOS unless using a secure "
> +               "bootloader.\n");

Oh, I should remove the line splits, and put in some XENLOG_*.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Apr 02 10:10:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 02 Apr 2025 10:10:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.935556.1336933 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzv3E-0004kO-CU; Wed, 02 Apr 2025 10:10:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 935556.1336933; Wed, 02 Apr 2025 10: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 1tzv3E-0004kH-8W; Wed, 02 Apr 2025 10:10:28 +0000
Received: by outflank-mailman (input) for mailman id 935556;
 Wed, 02 Apr 2025 10:10: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=trQc=WU=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1tzv3C-0004kB-Ok
 for xen-devel@lists.xenproject.org; Wed, 02 Apr 2025 10:10:26 +0000
Received: from NAM04-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam04on20602.outbound.protection.outlook.com
 [2a01:111:f403:2408::602])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b09796ad-0faa-11f0-9ffb-bf95429c2676;
 Wed, 02 Apr 2025 12:10:24 +0200 (CEST)
Received: from BN0PR10CA0014.namprd10.prod.outlook.com (2603:10b6:408:143::12)
 by PH8PR12MB7135.namprd12.prod.outlook.com (2603:10b6:510:22c::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8583.41; Wed, 2 Apr
 2025 10:10:18 +0000
Received: from BN1PEPF0000468B.namprd05.prod.outlook.com
 (2603:10b6:408:143:cafe::13) by BN0PR10CA0014.outlook.office365.com
 (2603:10b6:408:143::12) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8583.42 via Frontend Transport; Wed,
 2 Apr 2025 10:10:18 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 BN1PEPF0000468B.mail.protection.outlook.com (10.167.243.136) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8606.22 via Frontend Transport; Wed, 2 Apr 2025 10:10:18 +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, 2 Apr
 2025 05:10:16 -0500
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, 2 Apr
 2025 05:10:16 -0500
Received: from XIR-MICHALO-L1.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, 2 Apr 2025 05:10:15 -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: b09796ad-0faa-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=DN7x9ZwdmE8VQo4s+eBMvucxt34jYftdcOWgBQI02tY4mVj4graoHFoeI02VTNSMG5gLe1tFRS6gkNX2MzqvUuTJ2lkaFE6fJSrSGSqRSWehZX6XLBjNziZdInZ3FMUrSWm76GjA+NcZQpsy9sxXddTQxFiItpu/iP5B+HCAhvRHIL2xUR7O2f2RqapiGE9sxFL7HyKhwgL1/zORSHJHTzgb86PWunn+LYoopt2kpitlKJzqJLfNgzKZy0IIEnA7x5sSVw7iIFcYGpcK18d1LM4J3RJCEho5iPe1KlAxlJk111AOknSMtVt+oGJh3cI0OELNilEtvkAHE+zrBJkJXA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ADuMDM8egoZu1uE9vHwAch9ISm9ET1plXZIxCkREhgg=;
 b=wAePgqMdFFC5HePyMgWAL3olx0U19nrzkmwFiIIlnKtNlsGth83jRClACbdOXYQnpB8lc1YHjD4/Q5T1EPvy8WpE0EYQDDHDhL/xnaMqfeMqLfD+/iMeW7+3Fyb2OI8/k4az4SPxKvwiQCtrV/vOf0y9Yt9130cFn2At0OFzRzr9cdG3kR2YRRaptvSauSu5O+d132Nhek5b3fLUm+fCd7nXh2eCpg6MlVgBSssKtKKwop4CkV3wu3rYvUCyWvTMGPFeqB6M9tbDImA6jrqZ8I6gWxKkcazbaqsDWajL5sjNy0ce6NqRM0DnMFA90uEBSVivd+KyOLsklMTeKqMmKQ==
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=ADuMDM8egoZu1uE9vHwAch9ISm9ET1plXZIxCkREhgg=;
 b=B1beDnPu+79g8uwcxYcL6aPjwNEIkUIPVARZ2Z6S+cKNUcGDC9Ev211H7i94QbyPsPzA8wOZ6A+BC2GkGSNc8pF64O+NzRzVTo/iTdjqOCDF2Eke4ufgzQsR0Fva/mI8wxsXv1U2u1zzCvu5d3HktErmGkRwpQqXKzVhdyQkWj4=
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: 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>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH] xen/arm: Include xen/vmap.h in mm.c
Date: Wed, 2 Apr 2025 12:10:13 +0200
Message-ID: <20250402101013.220310-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
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN1PEPF0000468B:EE_|PH8PR12MB7135:EE_
X-MS-Office365-Filtering-Correlation-Id: 7e6c4eeb-e664-4a0b-f289-08dd71ce91dd
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|36860700013|82310400026|376014|13003099007;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?jqTnUJSvb4Ymg0il3WxFbeffZ9C3bWHHZ/jzsjAZzgi6pN4ie96S66HnoHhP?=
 =?us-ascii?Q?PjFX5dAelVkoIxusdGedXyI4GyWjJlsvEcCrlJOG19sNBr9klbNp7Pq3g+qj?=
 =?us-ascii?Q?ugTUaoxKukIzA5JuX1mQhOdeQ+ZvesLcQPi7gS4UDYwRuufwo0pH6w0MonD3?=
 =?us-ascii?Q?lJmxKPViPr16TxqS2X1jb9OfGDiWwzmNNc+TrfqzAn9F4kwkiCGqVjVQ9PJn?=
 =?us-ascii?Q?1MoC6+ltRg69vE1x4QlAaQFu0M+buEvS79N+v+4kUg+gtqLL0DTpmvNkj3MJ?=
 =?us-ascii?Q?yXyk0xZ/89ixeyftpwN45VpsgHV3m+rFFSaWuqVunPFzsKobH3F985uRe/Sc?=
 =?us-ascii?Q?kjbjoOpCiyL7pkT+omVtcLKgeCX2Q//wbD2jASvajHKUHBS8EGyg+oe0qa9C?=
 =?us-ascii?Q?NEXp5BHH5EcFDV4/dvZb4s51OHj81qB/gbJlB2/ZisXMjDl/tVB3VZABiWpW?=
 =?us-ascii?Q?8f7gQR1CjgPfReIVLI4DWPoIFIcnC+sEKuLd+rQ86Tr3/O/PQdQAy0oxZG72?=
 =?us-ascii?Q?qaCvR6EJ5TemP03J80nU1xTw/BbYu6vSv3cj+G1aS+Of+DRHtXn8owQimkrP?=
 =?us-ascii?Q?g8s5JzO8eG4TlOreD334blsqbr3e5ws/NiEqEthZ/30ERnuVBSNYnydqFl13?=
 =?us-ascii?Q?2x4tPsRSTyBilXyhvEdVl7SrnTA1SzlAXifRl1dNtRv0NWf4qD17uVGRJ9gb?=
 =?us-ascii?Q?LE0lAtJwMBcZlO1ZYqEe+f8VMemqDFIdQm/5MMIwGRAmzWQdoRxPry8J8hiv?=
 =?us-ascii?Q?5lmwHyJb0tkdHK8fAx9dhq7q5tpU5ZGSy12KzdtvRcFm84B6kFPKGjn1kIAV?=
 =?us-ascii?Q?UNLrtTa7ryEhTEu9Xv2xmurEC1USVfKgV+/CaSf9iBWupcvLTjyDw9shMSnB?=
 =?us-ascii?Q?fPEpMuFYJm1sFRkgyMY2tFegX5EUI9NGGEKk0EVyOgRPwjcsKRz0uoWidCRv?=
 =?us-ascii?Q?/mEb+ksOTKCKNGdYK9WeqfPlOD0d2+L1nVsCSXYb0mT3Mcq3wWJuc7vFmYZL?=
 =?us-ascii?Q?nFnE4cj36It0uKPA+zqiBLImC7zwKYNVfEaoCu4CrHBcbSoQzil8taqF1cNg?=
 =?us-ascii?Q?zNUFL9pLZ+/4PMrcfKCgMsGORhHADlZAui9Romcjva5O9m/MQj2t1GmuN/uK?=
 =?us-ascii?Q?suDtvOTJy013eWyk9SJ49nQNS51OeRGSk/xoF+YW+gAX4qgmq/JdUtWZctqO?=
 =?us-ascii?Q?+EIuzmM8ZvkYxeQjyZQVb3U1CFtfrqx+hid+KZlVFUUseoBgqffQkX95LDii?=
 =?us-ascii?Q?jpho4c1fwW4uyoiMAji9vne4OCWGk9WfTCRI2isUGvZr1LJl/W/+gjt1LYAa?=
 =?us-ascii?Q?UE2OtofezXk7f3x3DsALqusWu54whqsspURBhCugCrIa9NKBjQ62xRHLvZn7?=
 =?us-ascii?Q?PiF8pmY456sI3Npmu0koTffQMnV1nuZz9Bh/N59t96FmHX8Gj7P6750w5NUF?=
 =?us-ascii?Q?S3L0yxGolen5Aw/0/Lv2jnrTn7BPfltr?=
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)(13003099007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Apr 2025 10:10:18.0495
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 7e6c4eeb-e664-4a0b-f289-08dd71ce91dd
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:
	BN1PEPF0000468B.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH8PR12MB7135

As reported by ECLAIR scan, MISRA requires declaration to be visible
(R8.4). This is not the case for ioremap().

Fixes: 2cd02c27d327 ("arm/mpu: Implement stubs for ioremap_attr on MPU")
Signed-off-by: Michal Orzel <michal.orzel@amd.com>
---
https://gitlab.com/xen-project/hardware/xen/-/jobs/9599092510
as part of the most recent pipeline on staging:
https://gitlab.com/xen-project/hardware/xen/-/pipelines/1748174980
---
 xen/arch/arm/mm.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/xen/arch/arm/mm.c b/xen/arch/arm/mm.c
index 5a52f0c623e5..0613c1916936 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/vmap.h>
 
 #include <xsm/xsm.h>
 
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Wed Apr 02 10:19:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 02 Apr 2025 10:19:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.935568.1336942 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzvBW-0007B1-4A; Wed, 02 Apr 2025 10:19:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 935568.1336942; Wed, 02 Apr 2025 10:19: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 1tzvBW-0007Au-1T; Wed, 02 Apr 2025 10:19:02 +0000
Received: by outflank-mailman (input) for mailman id 935568;
 Wed, 02 Apr 2025 10:18: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=E7/M=WU=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1tzvBT-0007Ao-KX
 for xen-devel@lists.xenproject.org; Wed, 02 Apr 2025 10:18:59 +0000
Received: from AS8PR04CU009.outbound.protection.outlook.com
 (mail-westeuropeazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c201::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e255597a-0fab-11f0-9ffb-bf95429c2676;
 Wed, 02 Apr 2025 12:18:56 +0200 (CEST)
Received: from DUZPR01CA0033.eurprd01.prod.exchangelabs.com
 (2603:10a6:10:468::8) by AS8PR08MB10247.eurprd08.prod.outlook.com
 (2603:10a6:20b:629::14) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.54; Wed, 2 Apr
 2025 10:18:53 +0000
Received: from DB1PEPF000509EE.eurprd03.prod.outlook.com
 (2603:10a6:10:468:cafe::4b) by DUZPR01CA0033.outlook.office365.com
 (2603:10a6:10:468::8) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8583.41 via Frontend Transport; Wed,
 2 Apr 2025 10:18:53 +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.8606.22
 via Frontend Transport; Wed, 2 Apr 2025 10:18:53 +0000
Received: ("Tessian outbound ef9f95d5bce0:v605");
 Wed, 02 Apr 2025 10:18:52 +0000
Received: from L3d314bcd976c.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 D833CF91-E84F-4C8F-8022-451DC6DD6686.1; 
 Wed, 02 Apr 2025 10:18:46 +0000
Received: from EUR03-AM7-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id
 L3d314bcd976c.1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
 Wed, 02 Apr 2025 10:18:46 +0000
Received: from DB9PR08MB6588.eurprd08.prod.outlook.com (2603:10a6:10:25a::24)
 by GV2PR08MB8437.eurprd08.prod.outlook.com (2603:10a6:150:c3::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.44; Wed, 2 Apr
 2025 10:18:43 +0000
Received: from DB9PR08MB6588.eurprd08.prod.outlook.com
 ([fe80::a8fc:ea0d:baf1:23a]) by DB9PR08MB6588.eurprd08.prod.outlook.com
 ([fe80::a8fc:ea0d:baf1:23a%7]) with mapi id 15.20.8534.048; Wed, 2 Apr 2025
 10:18: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: e255597a-0fab-11f0-9ffb-bf95429c2676
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=Atpl6NWHU8jfDt7LD3PSSUvUchZpCkWikk8m7zRcUW8c36vjBQn4NDEP6F14W3G1t5uNx4AgZfT1B5eVXP52TyGuJv/FpKwvWRrN9d8RpnX9HFJ+JJFvqrCuhDU8qgUac/WIiZUO+Ceggasl7UpJT/RaJblkkbYIwBO3k1rNAsJ9ePrfDCfIr1LpEDSbSGJm8Rvj7tQWrWUh5oI/XPnTwA0086+ddjXYUOZ4+HBDIouDzZia0K7aqtM0+1tD40lTab7xtiKlH/qERV/OT9SamWqk1Vsx15ELgYydOlsXStUqckt3ybtQ569XqkRe51LHD7FmCv+nqNnZQMqBIMNmgg==
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=1r7GQpHsG6E2ot1GzGLTWIM4jFY2HlvvSvGZqHrVg+c=;
 b=dCEHCUNLerdgO95VzlMlKYpIr6pg/wTXnI8uGaZVpEVSYG+E/rNVnF8IikoRM98+1D+eDVcaQtbFbKcDYBT9k+EJ7TGhu1Kn+e3vtfSMapfHyjP4aLGn+MGGmMSgFLgO1khH92+yZVhr1oHQjeLa0Dy3wLYpCCuMDb+2pNERSZVlyCpaUN2wANYGTbHCtBoytilggJKrxDCvf5MwAolR8oY/DK/V4ey/W07F69JUHtf0fTT3Itr1YnFDSUEL2NjWYXJ+Z6E3DbuyNsrRmMQwPyvdmoj48zE5GpkcldSdiZfRtnBnQlA1+dDMkzoPxAUr/hc3dINOCtv35TfRPuc5FQ==
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=1r7GQpHsG6E2ot1GzGLTWIM4jFY2HlvvSvGZqHrVg+c=;
 b=iAppds6dvgeRUZBuzq+276pg2T5fhzrOcTlkU5oxAzydcI49jd3eNE4K+GvMpSZdbEAFhByHRuRAPwO7Y9Iq7xsfwqbqa9nYRtoMYztaltVXeDarAc54TSNNRLaha5+LHPSKKs5TMXHT0lrcq7ZJsq1AKUtYJw/8EJvhi99GGBU=
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: b62a61eee17289cb
X-TessianGatewayMetadata: 8NLswAVgIqdOPBZql2eaQIy+F6zhTOdohc8KZpOUJobbkxWIVOszgAivwsYu3u3x4g9PiuiNPapGcNw61MFWA5TE5tEi2oXVcDMaM5YOyb8Xzeqe7K5S0KgpRcAcaJE40pIqi+kEkJTnrdozglWLlTly4v7/te05/JvGLh/k1RU=
X-CR-MTA-TID: 64aa7808
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=FTRiYhqwjdx0lZbplQX6/zvVZzfEFNA+ckdO99w/Gp4kJGCik7R8vGoPM505LpMJZSKSI1PvT+QwIbEWKA12vgl7uSFysHZu/5diIMGSSgvohEeQLm28mjXL+sf7xy1c0Zo+lWZ3ZCP8jC94wm/PgT1gzpZHV8r8H6KXyZaL2iN/TZ99rpy+E8OLy7IBnzII26acpoVqTZ3c3AwZElAQRX6kAqtZVRrnQ1hzY5fsxbAzWloEwx8itK1s21sZTMg3q7UpBhZV2YqPb1SmnQFlxzklS7T/4bzj1Pgjfa91m3iTkzKfSEHTX8RTZHB0X/dy2ovSvIDQRMl4rV/OG2JyIw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=1r7GQpHsG6E2ot1GzGLTWIM4jFY2HlvvSvGZqHrVg+c=;
 b=WWJqSK3rn88rStSTQ3H1u3TyGxV7xRxjaJZ89w71XHibJDi/neifv70GW7rK3O2lkGw5GbYk3kQXEwN3HbzfF0wY76EQbhR+y8QWAzc3sB78OnypqnJDewvJq/+Ta2Foj64Rz1rE4lfDRPA0aj7VkyIQFEZ9SdKxFwyojpFLF/XFt1Zp8Lae63/eR4f2K8Buwzr2lK8I9ldnFZlDn5Q0EnkMKcdTRlR+746yRtS2H2O5OcVxGc9z1YXGOlwcFBw/C+ARzOesrijUuH8veFZtlFU5xKUZ0e6kWnLWzHnQIwx+47R/sLl9xlXXMAEHnqkl3j08MmIn03HjllNuevbzLw==
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=1r7GQpHsG6E2ot1GzGLTWIM4jFY2HlvvSvGZqHrVg+c=;
 b=iAppds6dvgeRUZBuzq+276pg2T5fhzrOcTlkU5oxAzydcI49jd3eNE4K+GvMpSZdbEAFhByHRuRAPwO7Y9Iq7xsfwqbqa9nYRtoMYztaltVXeDarAc54TSNNRLaha5+LHPSKKs5TMXHT0lrcq7ZJsq1AKUtYJw/8EJvhi99GGBU=
From: Bertrand Marquis <Bertrand.Marquis@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>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH] xen/arm: Include xen/vmap.h in mm.c
Thread-Topic: [PATCH] xen/arm: Include xen/vmap.h in mm.c
Thread-Index: AQHbo7d15E5qTwszR0+VWaNpReNh97OQKbwA
Date: Wed, 2 Apr 2025 10:18:43 +0000
Message-ID: <A97B7757-DD49-496A-B597-B668384091E4@arm.com>
References: <20250402101013.220310-1-michal.orzel@amd.com>
In-Reply-To: <20250402101013.220310-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.400.131.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DB9PR08MB6588:EE_|GV2PR08MB8437:EE_|DB1PEPF000509EE:EE_|AS8PR08MB10247:EE_
X-MS-Office365-Filtering-Correlation-Id: 9c19ef7a-3058-4525-574e-08dd71cfc4de
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:
 =?us-ascii?Q?/VPLyDYByNEMPZ0aXB476OgZwxUf/HC6ObGUsqwq4ps0USnv0mHqS27A6I/b?=
 =?us-ascii?Q?v8KyQ5lRsbo24Ifs6BVWT4flm1u1o5E+4wml0aMRORZe41uU9nj3TrDko+54?=
 =?us-ascii?Q?QtisbK/OYDQ62Y8SCpsVG/PibIb6OsZnOUt2k6kKNwpdbDH8T1fB7BNpsW5v?=
 =?us-ascii?Q?JVm5c2KcWxvItC8yhx8yAl7U+YOogQtzujbNYS1eeSWGDsGN7uvIJOnSRaiM?=
 =?us-ascii?Q?gsEoqvI9chaWu5zwm4c8jSbabmpCzJVGUvLoPLNDDk2xiC8ftrRv8l4NaeEi?=
 =?us-ascii?Q?DkDrrfRkbz5YBrLLK/++sN20EJCZxJJpfsvjSfp5V5Qr++I442NLOX6yOvco?=
 =?us-ascii?Q?856m1wEmU6Hi6qQrI3l1L50KFGvxF2+NAWk7rxlJ2+obZmNQ2S2/ezCs4iz1?=
 =?us-ascii?Q?1g5WYVWXJWB7CGTO59jlkeVFm1TGkmzqplVjAuI9aUiT/f2am6b+pONlWC0i?=
 =?us-ascii?Q?2Eyyxj044Zk0TiXuI4a/Fbt5kfvKTcu0pFbGqyKMdieX7v4urlU6yY49h8yg?=
 =?us-ascii?Q?xByptelesJNQRx8sb7oCJ7yvJW/ap7Gt/aEU2jD8zgQZF8sYFbBLsaBJYy0n?=
 =?us-ascii?Q?obK3nDW7tQCg+dlUhUOP3up+sMOoxUmhag/h4uagUXXchjfQ+1zmApwOhNrt?=
 =?us-ascii?Q?XufQANfEuQg/itW/ZL/kPdd4RH6jb9gBu+eF0LzlAbDJEh73HpzdT/9ne0Dd?=
 =?us-ascii?Q?UDwhTr6JsEnqERpPkRqg0G3At+rYFBifztf+YEztk1sHUEX3B0IJcIu75mJg?=
 =?us-ascii?Q?ToLsA41dLO9k3KHgrEfFbOjWKf+FJGVK+i6TTQ74VO+TWGdPODp/REnMaMSj?=
 =?us-ascii?Q?Mcj8JApfQFwkOGvv3lfRTd6WQY1jZzKaJ/DhW8sjFcMBypqedBYrZvTZ607H?=
 =?us-ascii?Q?V+2MejXlwtH1tpj8DHjmqe4AOJZrgXcdrC59Cm9mCFZdS5YpBXwNE5/br/cq?=
 =?us-ascii?Q?B50REjafFag7Pldj4d8G41tDfAUgugGMbEFIvRWMIQq7C/5ck+GcqUFqerwT?=
 =?us-ascii?Q?3BNz2IqV7I2eBqE/w6m+BPl8crUaWSNWWsNNTpg9PQs78CF9g8IBb7bDsuQY?=
 =?us-ascii?Q?24JF3+Xh9gbD5Y4bgmBh5sO5LyzWbLc7EzfiZwitQTdMZG/8fB8JZH4tZOyV?=
 =?us-ascii?Q?gVVJWVQ29/Z6b6H6aCVQ/SY/+NZk2glrrcT8Djuc66hk0tPwESWyGtcivCGl?=
 =?us-ascii?Q?C5L9igkJbZz3Qlw3RpfYSUTp5e2xyx2kMytMa99CBBJ1DlclOn/sespQL+ZX?=
 =?us-ascii?Q?9ZcWdCVCIKEND+0wgRwgoNohAKtMi/fJUUzenEnCK2/aujrPFUSjsCFBxU7n?=
 =?us-ascii?Q?Uoo1gkhwrzl7+vzlsanYYAxt2Ids0SeBaG3cJmX/rhN4dXzR8602T3ZSQA5a?=
 =?us-ascii?Q?PpxQxHICKqLkTV996u3qwZDmwbgvuVrpTHbdQeU2rcNGgg2x/6DIWG/0Hf2y?=
 =?us-ascii?Q?r0rSTF1IHyT6ir/RVoTBb/3mor0nMIef?=
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)(1800799024)(376014)(38070700018);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-ID: <E595C99BB7A125459D1E8511F60D01C8@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV2PR08MB8437
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:
 DB1PEPF000509EE.eurprd03.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	ab5f61fc-cdb6-4960-9aeb-08dd71cfbede
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|14060799003|36860700013|82310400026|1800799024|35042699022|376014;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?AUfdgSZZpUWpHi1VpXFL2yRyZM52gH2SCMl5glj46ecznJvr880qmCg8qBjI?=
 =?us-ascii?Q?tsL0iok/Jr8xkW386LbZm3lnjuzOSqg36VDD0U7d2uvLf7WaFIDnxeTkMkUT?=
 =?us-ascii?Q?qhRzaiOlOywu6psT3SLZR774zanC4gP1wFZuZEGX7ZknwR8FgXbJuyLjR1wG?=
 =?us-ascii?Q?935r6tkpNnhP2YR01q8z4Byfx5tXArAWJyeHegfDyCTMcMvQLfmNz/KxWNXn?=
 =?us-ascii?Q?pBzPF+t3+55ZTf+h4VKFfizO3zHnJB8doYgJYmSIuPAdVAB7zcJgdPKZQHR1?=
 =?us-ascii?Q?cji0eE8HmLDroXvYS2MKyAsHaVXsUoGhfTFYxyhfqkt1OY2LnMpKeJbRTbxH?=
 =?us-ascii?Q?fy/I30sZq9lg3IHrLmnT9pOMgrKG3ZwnOmQ7TrrsfnCj5OYf9PuJkGdFdZet?=
 =?us-ascii?Q?o4VMUDJ8ba9/PCjA74D9HoNmDwUpA6fqiplpiL2hWtWN2LHxg8EqCS6CcL24?=
 =?us-ascii?Q?P2dqBum6pZwUZt4GDtWmpYjPwqJ2bGt2LCZQcBrr+vZkv98jAgOGTS3SZ2JF?=
 =?us-ascii?Q?6lGlIlnIX2QzhjqN8Pyth/WDZEPEU3aTnap1UseW8JdaVRB6IULylO0zVB8f?=
 =?us-ascii?Q?ib1MYY8G5umOukHRpuYwh+7Ya1Xd1rFYecc1A4YFzoA0o1OBYQIAdAeyzAXJ?=
 =?us-ascii?Q?oEhUgBkRwn4iEmb+etpKZKXpdP7JE68aVjFqD4NMcwRCW5GQrLhvUhyrF//6?=
 =?us-ascii?Q?5JCRPl145Br2OnA441r2HxPkugbKJLzQkFfxgT3eJa6+B2Z81RndKgUJSrws?=
 =?us-ascii?Q?TOM32IohPA02cok0F/v6LaaYh/3zLpFAqJhqninrjzsj64Z5pNpEhydxzhcb?=
 =?us-ascii?Q?rIU/HaESfp/6GnHH4u8haJCn+2V8s8ktr8kdEH6W62WB57IWui6t+dCitdC+?=
 =?us-ascii?Q?+D4fVzNIVvkye4G28Q2C5xj2liSsL4MlX50eom0YYDlY8kfN61EAPWWVU5/a?=
 =?us-ascii?Q?0zNncyagpOdN30VE4U43L9YWnWdQPaOLmtLzFl39knPK+d1uZbrbPySs2NVG?=
 =?us-ascii?Q?ZAjxOUzgAqHPOAurY5cUJe0pndzjJrke4Ok7O0xzK7I49LTwblK3gU3SbBu5?=
 =?us-ascii?Q?LcKp5YM0Hy17KtfYCDwoW+ESg0+ivgrIWZbsfKOo64MMgSGkLANHcKA5BkOI?=
 =?us-ascii?Q?tWaK0ralF7NlxpfUUfd1ZCGCKwFQyDOIC72EUw6sdHIYacq4qn293ygaZrKf?=
 =?us-ascii?Q?i6FFwmBuxncSUubrhnN/yLhVwdlgjTz1gYRgSp28d5TlZpO9bWW88SD7PuEe?=
 =?us-ascii?Q?LGRGgNX5BF0Si+5YIqewfkDR+b3aOO2IO576NSWxFDohXMEDEgr2t7yQtZ9K?=
 =?us-ascii?Q?4Z56LNkULj7eylZ/COC7IVuMYS4q1fJ2znjji6F4gX1C//Sg2hm+F/y0kAxm?=
 =?us-ascii?Q?vYjai2p/jDzO5ErPo6u16nW/FxMGDDTbdzeL4dei9r0WIGq0qG7/7oYHs7QK?=
 =?us-ascii?Q?p0l5YhZHVSQq8Ch64vxGqIwf3WsgJviu?=
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)(36860700013)(82310400026)(1800799024)(35042699022)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Apr 2025 10:18:53.1084
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 9c19ef7a-3058-4525-574e-08dd71cfc4de
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: AS8PR08MB10247

Hi Michal,

> On 2 Apr 2025, at 12:10, Michal Orzel <michal.orzel@amd.com> wrote:
>=20
> As reported by ECLAIR scan, MISRA requires declaration to be visible
> (R8.4). This is not the case for ioremap().
>=20
> Fixes: 2cd02c27d327 ("arm/mpu: Implement stubs for ioremap_attr on MPU")
> Signed-off-by: Michal Orzel <michal.orzel@amd.com>

Reviewed-by: Bertrand Marquis <bertrand.marquis@arm.com>

Cheers
Bertrand

> ---
> https://gitlab.com/xen-project/hardware/xen/-/jobs/9599092510
> as part of the most recent pipeline on staging:
> https://gitlab.com/xen-project/hardware/xen/-/pipelines/1748174980
> ---
> xen/arch/arm/mm.c | 1 +
> 1 file changed, 1 insertion(+)
>=20
> diff --git a/xen/arch/arm/mm.c b/xen/arch/arm/mm.c
> index 5a52f0c623e5..0613c1916936 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/vmap.h>
>=20
> #include <xsm/xsm.h>
>=20
> --=20
> 2.25.1
>=20



From xen-devel-bounces@lists.xenproject.org Wed Apr 02 10:19:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 02 Apr 2025 10:19:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.935578.1336954 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzvC3-0007dK-F8; Wed, 02 Apr 2025 10:19:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 935578.1336954; Wed, 02 Apr 2025 10:19: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 1tzvC3-0007dD-AU; Wed, 02 Apr 2025 10:19:35 +0000
Received: by outflank-mailman (input) for mailman id 935578;
 Wed, 02 Apr 2025 10:19: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=qYE3=WU=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tzvC2-0007Ao-RH
 for xen-devel@lists.xenproject.org; Wed, 02 Apr 2025 10:19:34 +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 f891cef5-0fab-11f0-9ffb-bf95429c2676;
 Wed, 02 Apr 2025 12:19:33 +0200 (CEST)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-43ce71582e9so47666665e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 02 Apr 2025 03:19:33 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43eb5eb1d18sm16311355e9.0.2025.04.02.03.19.32
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 02 Apr 2025 03:19:32 -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: f891cef5-0fab-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1743589173; x=1744193973; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ulg30UhRTzM62UfYP0ygnXk7G0G30vo2YuPvJQXX204=;
        b=s5ZWxE34BH0miCxufa62EmLktlX/BtPcMRZQZ2twaxY48S0s506ELQvPA4LePscclx
         ddSskoMjXhhENR+BjLgpP6/2U+j/dFM6yy89JbHUgLH4s8nDCAWEMFg3rtpKHhl4Q7Ho
         9zTjJX54kfrBEwwmI/rbHRlptoh6Xb053SV/c=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743589173; x=1744193973;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ulg30UhRTzM62UfYP0ygnXk7G0G30vo2YuPvJQXX204=;
        b=OAtZM+kn75LbVIarCCkVwgxT/L7cAmBRQh6h2xnUgPbXPHwQiuKWcj0kw0qugLhVJ5
         46fpE1FiRO5Y5895aw2Q4BAdBQEuHumcW/RSDuWwyUhqX0zAYGCKcUObldZ+zZI/vext
         k1CXQAzroJOs7mGyN7qMVALsxCM/SV+vet9HMQKKfQApBD5fViHj7Ycm8cw3MHha+sWH
         dBdFXc5rXtPqDMTKdXDKoemEq9U+0zXCKkSHO+7V81icpFEi61JFiQjAi1D20dJlTar/
         MzIQuzepJ6O8FvjoHzRy1wjn4ukpdNq0rbhOrTxuN9NpmXj3wg3tWfFhyj/YF+SvmXDU
         bhcg==
X-Forwarded-Encrypted: i=1; AJvYcCWIHHqkP7apetrVS5W2z3F3Ju44VzElrmJjIeiBVAjy7OkH+PpBDqzUeTwrBQ5lDguz8fP2wSV4f+k=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yyu4dp2rXAvte/8rVGxfOUKysLg1KKRUdz2hSwvhIOvp/JQDPmF
	hWJe93lMk/naclVsfD3/Vg6eOYlhbX/MRYz6lD9YrkzN68A1GSOjoNY6HYIsKpc=
X-Gm-Gg: ASbGncujAYEZVep5kZtbs8LVv23R3QhAJ+EG2sr01Yycg8nVwQ6sN6QZFrHnV45d+Br
	jb18QX5aTTdpevL7jP40qmw3MdlAIkIqj5cpVgQVRkJONsTzZAl0xJVzsohihwHa3p2g7/75as6
	vt7DTBuS5pBL/YdFSIrD7LE8BvsD1wjZ1MLo+2NBKhvoPUVqsf25EhQDOrSZBCEQN9Z4wgR++mA
	mAcLxxS38Lzhv6nBMbubx1XkIhyp0UwQjKdkvz8Zf8/BNFbXadOPWBiE2EsKkGTiVvqGfnOC0Zc
	DaJdSeHqsIgp/BovTIHztwPtHQUsoidJkWrACBh0bIJ6CcQ879J47rv/m9dNUEQ7Jef+dp5Or+8
	YzuG97WnBPg==
X-Google-Smtp-Source: AGHT+IERsyIDDfCxT9SIRQbk9RPjRIe9HQ+Meiw9KR/qFjUijQlvc1q/VD4LGK8JFhKp+di6yhwANg==
X-Received: by 2002:a05:600c:468c:b0:43c:fa3f:8e5d with SMTP id 5b1f17b1804b1-43db61b52e5mr172264565e9.2.1743589172800;
        Wed, 02 Apr 2025 03:19:32 -0700 (PDT)
Message-ID: <89f85f1a-3e09-42cb-babb-b8faff687a73@citrix.com>
Date: Wed, 2 Apr 2025 11:19:31 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/arm: Include xen/vmap.h in mm.c
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>
References: <20250402101013.220310-1-michal.orzel@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: <20250402101013.220310-1-michal.orzel@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 02/04/2025 11:10 am, Michal Orzel wrote:
> As reported by ECLAIR scan, MISRA requires declaration to be visible
> (R8.4). This is not the case for ioremap().
>
> Fixes: 2cd02c27d327 ("arm/mpu: Implement stubs for ioremap_attr on MPU")
> Signed-off-by: Michal Orzel <michal.orzel@amd.com>

Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Wed Apr 02 10:24:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 02 Apr 2025 10:24:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.935596.1336967 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzvGJ-0002bt-2m; Wed, 02 Apr 2025 10:23:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 935596.1336967; Wed, 02 Apr 2025 10:23:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzvGI-0002bm-W1; Wed, 02 Apr 2025 10:23:58 +0000
Received: by outflank-mailman (input) for mailman id 935596;
 Wed, 02 Apr 2025 10:23: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=T645=WU=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tzvGI-0002bg-4X
 for xen-devel@lists.xenproject.org; Wed, 02 Apr 2025 10:23:58 +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 95a91886-0fac-11f0-9ea8-5ba50f476ded;
 Wed, 02 Apr 2025 12:23:56 +0200 (CEST)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-43cf680d351so3732945e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 02 Apr 2025 03:23:56 -0700 (PDT)
Received: from [10.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-39c0b6627bfsm16298236f8f.25.2025.04.02.03.23.55
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 02 Apr 2025 03:23:56 -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: 95a91886-0fac-11f0-9ea8-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743589436; x=1744194236; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=hrSHIf+8pKjzaW7mVuOrWE8Arv3Oj6JpYoasXLZL0gM=;
        b=Tm28b99FJkOFGHS+o7pacgDErB3Ykg7NPTapU5Cu62k5P7w7V/OcZ5OFQbRk182bPf
         L1OzG+LWcckx6LTePeyAb9h7WQs5YC+zbWkQlANBEBUNq//DkP7L3UqwJ+MvtHjDvZ1L
         3schW8apm2dRkUzJqL6Da+/lAkCLOQcEfyaYTxauNd+qGBhz4iztaZf7poTCVnnaxWRL
         U7cEX2+e997JFLpinMEBynB0smwGns+2YBsX6Q3DdmKihFZBbAmz6h6aaU4ks38x/2SF
         kxbBzu2MjyFBux9fjI6io900iT1rLUJjyfuxR6fUBGYgmkxn6B0NX9OB4w/nUJIS5mrj
         SJVw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743589436; x=1744194236;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=hrSHIf+8pKjzaW7mVuOrWE8Arv3Oj6JpYoasXLZL0gM=;
        b=Uzxjc9K9Jh+G07KragPtRr8i/1bfdq+DCti6cp1eNlmzZXSZeq95ad4f3EuXTlEPnw
         aQJ94+3TgPUXonG54mItrTIdyyvfqv9yc+QogZYmMYoabDBdT6Cm/ri3+TOXO4FAk0Do
         2dM9eH8nEjAtVX5vgcQkZ3fRgNdiRagbfW77+8riTCBHsoQLuomz58G35BYYqcNDLZzU
         YXikeQV+pO1YFba9dmABiFagBwrLAtM56MkkDwhxy/Jk2yOu/fJtOzpGDGk8c0e9N722
         vvM5vyWEv+kMK+bsBcM3gy+YXEUrhiAmFVa0MV6KbPjk834cZJMisV7jOoH/nGojXYVX
         bLaw==
X-Forwarded-Encrypted: i=1; AJvYcCUnZ8os3z/PrUV8CypyApTzvRkOQmRot3Pj+TTYe2pKqsx/zNausRkXInsoD4SIxCvv7j+96Rn9xCk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyaGK4riKNuR5hhWRSnPtxawDovDOabOOf6++a28zCwDF5XGCwq
	fZj7f3MoGEFlKv0t5WsOUT0tP8Cn4vyu1eyKLYw8YX4RVVhzvCcdnj3sKk0SQA==
X-Gm-Gg: ASbGncs3p1SRyP5S7+Fp9FbvGT0KmE+Le1vYoJb8d/o3LgghGg3Dgi89H+N7LCJxBJw
	TSQKZLm+ZeNLdeDWXMohL9GYZuB5EPvQ8MRIoWkiisPY62u3tZdngTBmwHyP4EAD0pGrHly9lol
	AHtLBi7mpVRkrfjSVRDgoQFZNpdHgKl2Ws4pt21U8jPcMtAmpE9lTdZ/mIJsgnbm7DXAlpFHZDh
	j6wrM5ajG6ZRcr7YbQXeH9e6f37AL+DYil+QW/8AnUOXwbL0SkFPIRUT1rKTDcT2+VhAiqJTG64
	dHthKEu6fEhMhdRz6B25vw/kY89Tpl8oaDYlD6kjB4pEQJ7OE+teumq+oauabGY9XflDcu31LHs
	ojXIMcRbHdmQn14zOpOxEO7EdYBn9pRBIWifgvb5N
X-Google-Smtp-Source: AGHT+IGQ2vkFfceZst/vSUmSlYwDI+Vw9YVJanG+BAbywpsRDHKFK3XfeVW2sjMpkdYbz3qHE1WjvQ==
X-Received: by 2002:a5d:6d89:0:b0:390:f0ff:2c10 with SMTP id ffacd0b85a97d-39c2a3877a3mr1194827f8f.19.1743589436351;
        Wed, 02 Apr 2025 03:23:56 -0700 (PDT)
Message-ID: <2c8a45f8-bf6d-4a13-a6d2-dab20f7ad3d6@suse.com>
Date: Wed, 2 Apr 2025 12:23:54 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 09/11] x86/efi: avoid a relocation in
 efi_arch_post_exit_boot()
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, Andrew Cooper
 <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20250401130840.72119-1-roger.pau@citrix.com>
 <20250401130840.72119-10-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: <20250401130840.72119-10-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 01.04.2025 15:08, Roger Pau Monne wrote:
> Instead of using the absolute __start_xen address, calculate it as an
> offset from the current instruction pointer.  The relocation would be
> problematic if the loader has acknowledged the Xen image section
> attributes, and mapped .init.text with just read and execute permissions.

Fine in principle, but ...

> --- a/xen/arch/x86/efi/efi-boot.h
> +++ b/xen/arch/x86/efi/efi-boot.h
> @@ -266,7 +266,9 @@ static void __init noreturn efi_arch_post_exit_boot(void)
>  
>                     /* Jump to higher mappings. */
>                     "mov    stack_start(%%rip), %%rsp\n\t"
> -                   "movabs $__start_xen, %[rip]\n\t"
> +                   "lea    __start_xen(%%rip), %[rip]\n\t"
> +                   "add    %[offset], %[rip]\n\t"
> +
>                     "push   %[cs]\n\t"
>                     "push   %[rip]\n\t"
>                     "lretq"
> @@ -274,7 +276,8 @@ static void __init noreturn efi_arch_post_exit_boot(void)
>                       [cr4] "+&r" (cr4)
>                     : [cr3] "r" (idle_pg_table),
>                       [cs] "i" (__HYPERVISOR_CS),
> -                     [ds] "r" (__HYPERVISOR_DS)
> +                     [ds] "r" (__HYPERVISOR_DS),
> +                     [offset] "r" (__XEN_VIRT_START - xen_phys_start)
>                     : "memory" );
>      unreachable();
>  }

... imo ought to come with a brief comment, to keep people from trying to
undo ("simplify") that again.

[offset]'s constraint could in principle be "rme", I think, as [rip] is
"&r" already. Just that the compiler (at least gcc) won't synthesize a
memory operand, and the value can't be expressed by an immediate. IOW -
probably all fine with just "r". Of course if/when we add further operands
here, we need to pay attention to the number of registers needed.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Apr 02 10:28:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 02 Apr 2025 10:28:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.935608.1336977 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzvKc-0003C6-I7; Wed, 02 Apr 2025 10:28:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 935608.1336977; Wed, 02 Apr 2025 10:28:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzvKc-0003Bz-FU; Wed, 02 Apr 2025 10:28:26 +0000
Received: by outflank-mailman (input) for mailman id 935608;
 Wed, 02 Apr 2025 10:28:24 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1tzvKa-0003Bt-QJ
 for xen-devel@lists.xenproject.org; Wed, 02 Apr 2025 10:28:24 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1tzvKZ-007SMz-36;
 Wed, 02 Apr 2025 10:28:23 +0000
Received: from [2a02:8012:3a1:0:9928:c7aa:a3ed:1d45]
 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 1tzvKZ-003gIi-2H;
 Wed, 02 Apr 2025 10:28:23 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=PKowBXBcB7HtZS8R1FiKtj/7DXSJMRMUvRrU/YRv5SY=; b=U1IM/xGY2hoCliET9G9uGEgQyY
	vy5vYN0d1z47aBTO9p8s4vT5F3jfv4Zm0Y+BbP+M6jOZQCccahCDe4NZ/W71D3rL/AkwFQ7SGaOxQ
	Gxgp+tWQ3wT7JGbwsFKZ44WzDVghYGDTfheiPnNyFaMN9LOT8P307hYjwiXp5hExyx10=;
Message-ID: <72c9c91a-d536-42e1-9b7b-37375c2fb3e1@xen.org>
Date: Wed, 2 Apr 2025 11:28:21 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 05/11] xen: remove -N from the linker command line
Content-Language: en-GB
To: Roger Pau Monne <roger.pau@citrix.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>,
 Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>
References: <20250401130840.72119-1-roger.pau@citrix.com>
 <20250401130840.72119-6-roger.pau@citrix.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20250401130840.72119-6-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi Roger,

On 01/04/2025 14:08, Roger Pau Monne wrote:
> It's unclear why -N is being used in the first place.  It was added by
> commit 4676bbf96dc8 back in 2002 without any justification.
> 
> When building a PE image it's actually detrimental to forcefully set the
> .text section as writable.  The GNU LD man page contains the following
> warning regarding the -N option:
> 
>> Note: Although a writable text section is allowed for PE-COFF targets, it
>> does not conform to the format specification published by Microsoft.
> 
> Remove the usage of -N uniformly on all architectures, assuming that the
> addition was simply done as a copy and paste of the original x86 linking
> rune.
> 
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Reviewed-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

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

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Wed Apr 02 10:28:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 02 Apr 2025 10:28:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.935609.1336987 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzvKe-0003QA-PI; Wed, 02 Apr 2025 10:28:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 935609.1336987; Wed, 02 Apr 2025 10:28:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzvKe-0003Q1-MU; Wed, 02 Apr 2025 10:28:28 +0000
Received: by outflank-mailman (input) for mailman id 935609;
 Wed, 02 Apr 2025 10: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=T645=WU=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tzvKd-0003L4-BR
 for xen-devel@lists.xenproject.org; Wed, 02 Apr 2025 10:28:27 +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 365aef39-0fad-11f0-9ea8-5ba50f476ded;
 Wed, 02 Apr 2025 12:28:26 +0200 (CEST)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-43cf05f0c3eso43103965e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 02 Apr 2025 03:28:26 -0700 (PDT)
Received: from [10.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-43eb6190bc4sm16297355e9.31.2025.04.02.03.28.25
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 02 Apr 2025 03:28: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: 365aef39-0fad-11f0-9ea8-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743589706; x=1744194506; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=f0PgYp5QCMpyYh4GpAEi1Gm1bVUY1EFhMzr7c7SFzvo=;
        b=Sd1FoQkenh0sxOaJeuoB8iv4LBChKB4eRp71DUpymn8bSSYjizfEEj0i0CQ+loHB5+
         IFZkTzRMV2fFbzogzfEDy61J5QKovHQViOy3lMU6r9/L10QcLRgnFq4dznvAOOV0V/qp
         oVQ4rGvxg5jMfCtLVd77uLd9LhtntisyEWiislJr8QUqxKT+IFMUJGM20vCNX/oeW4/z
         fddfGfCYY2N92y7bQBgx/Wm5mXPci7bw4G63x/FYpgsAa55S5mEQvEPgQYrARHzpFDiC
         361iw2fCDimarViVPCmBRCZ85KdqtN3TKgR88L9EuLZrClcCWTe4WhIobPT8RqYxtlYp
         H6KA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743589706; x=1744194506;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=f0PgYp5QCMpyYh4GpAEi1Gm1bVUY1EFhMzr7c7SFzvo=;
        b=ZwIezPlbsKFBIy4PmLGZ8T3Kz5F5rL/6C+wxeURydl1UZTLlxruyc7u4ua3C5nb9d7
         p1WUcZ+NkTW93aVU76FImPys6KAKeRB8wlj9q2jHbqiQ/q7+ph0rvxhp3jNpAywebgFv
         SiUmVGL+PVKtcvROmGzOvAQumDpW7VRmLYVTO3c+JsJNtqqgfzExCl7P8sHLfOCj3mgU
         hMqkJz5QvyH73UTN9Rm+2aaXVcKMspXR/yGsHvZL8B1kgCa2+fxS9mSx/kah1CgWODeN
         pAbXpPbLd4MWfe8hbyQJEQYndSwlzxwi20cbXSDeufMULp4xSY9RtbX5ulVH1PQrkrv4
         DDBw==
X-Forwarded-Encrypted: i=1; AJvYcCWJSk/ZcWCbBd5+VC9oTO1t9LTY28EAOmoDnn4B/k5YTcV9PXF/qQWO8KfppmWfjWKpk4RHK9CjJFQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyVoqDeebNZTtNLB1CHtTXAeVjDqktdZoSqv4lLhflJJlN4yzpT
	iQ8vmKRV+QeXZmST1fPnoxwEouP6NjU6dJbQCRtusYp2q92MzX66sVF1Gavncw==
X-Gm-Gg: ASbGnctpWpVx/8Kp9CGo+EQOq0LXsxYEZsMIvN3AGklTloZHnuXoC6B/XA/n7zRa9Yj
	o/BxafPwJOWqo+rfj0gBPHY7x9VdR5CDk/9ANN3V1Ip58Vk54GNSgZ9eiFnuJhkaAVI1SUEBAhw
	/0s+RFg5sDyqD5h1Os8mzdGEg/a4tngzi766SKeBYYnMz30douuVHhI9ILiMnGM6xwgQd++nOM5
	/pbI4PTiUN6/JLClNeIivZ8r2U5QXQBFgBECNT03zxkbK9WH6BSNOWTMU3zHeWqP6BAwaf5ho58
	aXCftrebotvDRv7mBjnYE9ZJLDfnR+1rkUhS88xMZNxRCc9fKpn29GIUJDp/rLgcTM/VaDAIfCe
	E0bHZfn02GY1lTdqyTibAXAjtK4Hbtg==
X-Google-Smtp-Source: AGHT+IH5fHjI0lmyPYrvSftgUrAnjS4yNRaQFxxCfsGmKS7b1kmSsVn/uoHN9Q6i0glzckWF7TJMLQ==
X-Received: by 2002:a05:600c:4e12:b0:43d:db5:7af8 with SMTP id 5b1f17b1804b1-43db628c48bmr133194655e9.21.1743589706044;
        Wed, 02 Apr 2025 03:28:26 -0700 (PDT)
Message-ID: <47b6e49c-6692-46c8-88a8-5e2c2a08f805@suse.com>
Date: Wed, 2 Apr 2025 12:28:24 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 10/11] x86/efi: do not merge all .init sections
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20250401130840.72119-1-roger.pau@citrix.com>
 <20250401130840.72119-11-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: <20250401130840.72119-11-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 01.04.2025 15:08, Roger Pau Monne wrote:
> @@ -218,12 +214,15 @@ SECTIONS
>          */
>         *(.altinstr_replacement)
>  
> -#ifdef EFI /* EFI wants to merge all of .init.*  ELF doesn't. */
> -       . = ALIGN(SMP_CACHE_BYTES);
> -#else
>    } PHDR(text)
> -  DECL_SECTION(.init.data) {
> +#ifdef EFI
> +  /*
> +   * Align to prevent the data section from re-using the tail of an RX mapping
> +   * from the previous text section.
> +   */
> +  . = ALIGN(SECTION_ALIGN);

Does this need to be SECTION_ALIGN, growing image size by perhaps more than
1Mb (at least that's what I expect as an effect)? Wouldn't PAGE_SIZE suffice
for our purposes?

Jan

>  #endif
> +  DECL_SECTION(.init.data) {
>         *(.init.bss.stack_aligned)
>  
>         . = ALIGN(POINTER_ALIGN);



From xen-devel-bounces@lists.xenproject.org Wed Apr 02 10:56:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 02 Apr 2025 10:56:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.935634.1337000 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzvlz-0003pD-SL; Wed, 02 Apr 2025 10:56:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 935634.1337000; Wed, 02 Apr 2025 10: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 1tzvlz-0003p6-Pn; Wed, 02 Apr 2025 10:56:43 +0000
Received: by outflank-mailman (input) for mailman id 935634;
 Wed, 02 Apr 2025 10:56: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=qYE3=WU=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tzvlz-0003oy-3J
 for xen-devel@lists.xenproject.org; Wed, 02 Apr 2025 10:56:43 +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 273714d0-0fb1-11f0-9ffb-bf95429c2676;
 Wed, 02 Apr 2025 12:56:39 +0200 (CEST)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-4394a823036so61313205e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 02 Apr 2025 03:56:39 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43eb60caac5sm16715325e9.17.2025.04.02.03.56.37
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 02 Apr 2025 03:56:38 -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: 273714d0-0fb1-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1743591398; x=1744196198; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ZHMP4jQJgTEjkBcZQU32rbc29wrMeZkXUiaTKmXw1bU=;
        b=g7fvOXsboVlyFqLk15DeapDZYha3ZAFmjCjy3zl2XgccLcsfmmH8FiEkvVTnNm9BtK
         TGjACX25UpnaXk2qQs1RxWMK/oUGBX5ptS8j5kSnuTSZSkrIDBEjjOPvm0kGvUMDRo/d
         afxlxXnt5wGwlrqgUxbPJnYtm9aDaCA8Yodbo=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743591398; x=1744196198;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ZHMP4jQJgTEjkBcZQU32rbc29wrMeZkXUiaTKmXw1bU=;
        b=PSHL6qEe500TsOP+tXBrI7psySFAOEDUAdhuX/FLA2ML28Y+UEY+rHNpRbJz7VM/AK
         rPwPUsItst7Xch8YL/LQ2Kj5VDX1YANCfhp0TbbIQqb+MT9PBUIdjOgCDPPTbX4HpiHZ
         yi/6yA8F+Rt7X6SHvcCskXXDKmQwr66wOb3aiRm1pQNQzwWLGlSmZt+KDNcK3gmuFFPe
         gYzEagvT/Zo7n4NEd9inVoqbBoWaKSwY+ApsftvZRpNJDJ4yyDC7CJAJK32LFLHNa/yj
         +Z1Yn9JhUeUOfrQy853STa+hA3bOEDnpSzq/nLjfyxOfVdo6FvvKZKyGrJ6iJ+66BNVl
         byNg==
X-Forwarded-Encrypted: i=1; AJvYcCWEgwC/BNeYPt+8d10gwnq6YsyIMBaeB7SW4mLNO3C2wMlQkabXiviABCWLRLhQVC1E1BW91vWCb2Q=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwQCqtkUhgPK7pZJcGI8CZP94x/jWUqMEEwqDyZqqFXFKGOO0dE
	/is9FTwM/fOmsdtyWr9xVLDGLl61LstrRqT04YLj5w2z3wv9TApuvZMMbEzYtsY=
X-Gm-Gg: ASbGncs9uve5N6H5B/HulbYIYNaDSnUsBSAYS2w0hp2JWPEVB+YBjMfBncJYHRxOTBn
	buyGU68GyvVc3dWFAsCRC86Hzav6R3YSqJjQV8EVRJ46NleCjCPqyzb3dRp8V/dXp90EKmWdWpL
	3hOQxqeWVfCEgf0N3hPNAjmIfCG/U41AFqfGVQlyTve6DbHHDHk2x4fQTru9/LiDoX1zZo40N9H
	+Td493+PRD2nTjZEu0DTUU5xUQynbAwtLJWvn3tURqnJoQ2Z6suZPr//Bzm6zJxjx6Z5Zeov8c4
	ZIfY/UBH4RBuE7x0XboI9324lKIvcl5ll9qrI+MLvdCmGoP+MEyV2X5s1Sr+u6jUlSfSC+9tXZs
	lYDGZ09XcFw==
X-Google-Smtp-Source: AGHT+IGk9BP+BW2j4ms1SJW13ys0tAHFkgbMQwXylJRzz+B1gfhuXzU+IjFbEWToQlkrVR+xjpyqrA==
X-Received: by 2002:a05:600c:34d5:b0:43c:eec7:eab7 with SMTP id 5b1f17b1804b1-43eb5c20fd3mr22669475e9.11.1743591398536;
        Wed, 02 Apr 2025 03:56:38 -0700 (PDT)
Message-ID: <ed1ea3a2-d438-46ec-a59c-7e63c4d794bd@citrix.com>
Date: Wed, 2 Apr 2025 11:56:37 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] x86/vmx: Use asm goto() in _vmx_cpu_up()
To: Jan Beulich <jbeulich@suse.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, dmkhn@proton.me,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250401233444.1181076-1-andrew.cooper3@citrix.com>
 <20250402095621.1278093-1-andrew.cooper3@citrix.com>
 <1d73f823-aab3-4648-a5b9-4d0eedc33fc2@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: <1d73f823-aab3-4648-a5b9-4d0eedc33fc2@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 02/04/2025 11:03 am, Jan Beulich wrote:
> On 02.04.2025 11:56, Andrew Cooper wrote:
>> --- a/xen/arch/x86/include/asm/hvm/vmx/vmx.h
>> +++ b/xen/arch/x86/include/asm/hvm/vmx/vmx.h
>> @@ -559,25 +559,6 @@ static inline void __vmxoff(void)
>>          : : : "memory" );
>>  }
>>  
>> -static inline int __vmxon(u64 addr)
>> -{
>> -    int rc;
>> -
>> -    asm volatile ( 
>> -        "1: " VMXON_OPCODE MODRM_EAX_06 "\n"
>> -        "   setna %b0 ; neg %0\n" /* CF==1 or ZF==1 --> rc = -1 */
>> -        "2:\n"
>> -        ".section .fixup,\"ax\"\n"
>> -        "3: sub $2,%0 ; jmp 2b\n"    /* #UD or #GP --> rc = -2 */
>> -        ".previous\n"
>> -        _ASM_EXTABLE(1b, 3b)
>> -        : "=q" (rc)
>> -        : "0" (0), "a" (&addr)
>> -        : "memory");
> ... the memory barrier here. I will admit I'm not sure I see why it's
> there, but if the removal was deliberate, then a sentence wants saying
> about this in the description.

Hmm.  (Honestly, I wrote the asm goto from scratch, rather than copying it).

The VMXON instruction itself will modify the 4k vmxon_region.  It's an
opaque region, and it might (implementation specific) become
non-coherent with main memory.

However, we don't have a 4k object we could pass as a faux memory
operand, nor can we use asm goto with outputs (That requires a newer
toolchain, and some compiler errata workarounds, but we can do it
conditionally I think).

Lets put the memory clobber back in.

>  With that or with it re-added:
> Reviewed-by: Jan Beulich <jbeulich@suse.com>

Thanks.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Apr 02 11:37:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 02 Apr 2025 11:37:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.935649.1337010 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzwPF-0005XY-PS; Wed, 02 Apr 2025 11:37:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 935649.1337010; Wed, 02 Apr 2025 11:37: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 1tzwPF-0005XR-Mv; Wed, 02 Apr 2025 11:37:17 +0000
Received: by outflank-mailman (input) for mailman id 935649;
 Wed, 02 Apr 2025 11:37: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=PNgW=WU=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1tzwPE-0005XL-6A
 for xen-devel@lists.xenproject.org; Wed, 02 Apr 2025 11:37:16 +0000
Received: from mail-pf1-x42a.google.com (mail-pf1-x42a.google.com
 [2607:f8b0:4864:20::42a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d2be7ca8-0fb6-11f0-9ea9-5ba50f476ded;
 Wed, 02 Apr 2025 13:37:15 +0200 (CEST)
Received: by mail-pf1-x42a.google.com with SMTP id
 d2e1a72fcca58-73712952e1cso16587b3a.1
 for <xen-devel@lists.xenproject.org>; Wed, 02 Apr 2025 04:37:15 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 41be03b00d2f7-af93b6d6f77sm8173978a12.36.2025.04.02.04.37.12
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 02 Apr 2025 04:37:13 -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: d2be7ca8-0fb6-11f0-9ea9-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1743593833; x=1744198633; 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=ixU0oqK5jbY2nPR4JZGgt/nTg2jny4RurPx7i/XkUWw=;
        b=WG8hewpDW6y228cGhbVjjVcfXTyo1BBHpwNf/fjvSwRIpBM/BNuEkZ6zMesQllMqzP
         /aSQCf3X+4kJg+/bOprOEyLBApMpneu97dTtPlDmoOn9hXv1KLwsxkXS9SJjdVIyS9d4
         OiMSCN+1OIsuPp3T79NtQsxOIskIpDk3islfc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743593833; x=1744198633;
        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=ixU0oqK5jbY2nPR4JZGgt/nTg2jny4RurPx7i/XkUWw=;
        b=DTslPGrW8C5A6xT3GRhXYARf8RgSZZwCsvLhAZfHYhnLAbkA1oUzegb/xv4KOAdAOO
         +IqXvrHcLffDgT3IEJitxRf2llPDiF0DNIgPO/HzxjOGN8ITuJzk5/XmM6rzRqdjs4sg
         BGHAlWeSVEc5WJ0vFuVcZLXmAG0BALWjYfs7dwAsBsDIC+mL1FzL8fciN/Q9PLuWNcc3
         uxRl8mlwdPTX00/bOT1gnZ8rLd2KaQ/zwIcdqxlLzifZvRSEGXe+qdNe3BqvdqABjiLB
         pizVxCMKpACyVKFUrp49C335tTTR8a5/U1UPGTr0tokUC7sPMIbZiWGhdxsiCENR6msg
         1dhw==
X-Forwarded-Encrypted: i=1; AJvYcCX/cpY81/eULmPj+DRrGEH+37k2OOPCx9hhyvIpH8ULNribnGX4A06D4IjAP5VfoRK1skAJNYLxk2g=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzzU22X+keO7v4ec3Qk2hFFXbJ0E7MBHPstKNtUriUkIzlNlWyS
	4D0bAAaBjJmYyixEvDuj38mUvSZ8XlyIO7rotnYSCKQj7stNz0aHD599zSazFKg=
X-Gm-Gg: ASbGncvd25X/M/br3ZYz3LcfRvoYsjHCunvUApSLRBY9slKOY4mRQfbHPpjICRyBhip
	a6FKxUthCFpFQzzinLc46ZlPecR4YZ83DqYHi3hPggU40jTr7dShghP7ubycQdI+bOgu3qj+WXM
	rbvyV3e6GsZsUdgJ09MpgRpu493G22og4jL5ThldkzNTFtA9r091UCStns5AekdWhk03KW8LIk/
	9PoydIB6Zd38hIXKzf80nega0NCO58KStTowpvPKln5Ulo6V40SddqSlPwT1rCqQF2RrAHX3qdk
	ciSXUENuleBY+u7S+NEsTJ73Q6Fx+5splCmD1bF7z22ndczGyINsPRYYRXYS
X-Google-Smtp-Source: AGHT+IGIDNqLOf2aBjmE23vtRj3zY193A54lzODujE/OYAP6rZ4Xy3aIyLk/gK9APCDfp4CLMHy1Ow==
X-Received: by 2002:a05:6a20:9f99:b0:1f0:e42e:fb1d with SMTP id adf61e73a8af0-2009f79c23amr28543288637.36.1743593833636;
        Wed, 02 Apr 2025 04:37:13 -0700 (PDT)
From: Roger Pau Monne <roger.pau@citrix.com>
To: Juergen Gross <jgross@suse.com>,
	Roger Pau Monne <roger.pau@citrix.com>,
	xen-devel@lists.xenproject.org,
	linux-kernel@vger.kernel.org
Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Subject: [PATCH] x86/xen: fix balloon target initialization for PVH dom0
Date: Wed,  2 Apr 2025 13:36:55 +0200
Message-ID: <20250402113656.84673-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.48.1
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

PVH dom0 re-uses logic from PV dom0, in which RAM ranges not assigned to
dom0 are re-used as scratch memory to map foreign and grant pages.  Such
logic relies on reporting those unpopulated ranges as RAM to Linux, and
mark them as reserved.  This way Linux creates the underlying page
structures required for metadata management.

Such approach works fine on PV because the initial balloon target is
calculated using specific Xen data, that doesn't take into account the
memory type changes described above.  However on HVM and PVH the initial
balloon target is calculated using get_num_physpages(), and that function
does take into account the unpopulated RAM regions used as scratch space
for remote domain mappings.

This leads to PVH dom0 having an incorrect initial balloon target, which
causes malfunction (excessive memory freeing) of the balloon driver if the
dom0 memory target is later adjusted from the toolstack.

Fix this by using xen_released_pages to account for any pages that are part
of the memory map, but are already unpopulated when the balloon driver is
initialized.  This accounts for any regions used for scratch remote
mappings.

Take the opportunity to unify PV with PVH/HVM guests regarding the usage of
get_num_physpages(), as that avoids having to add different logic for PV vs
PVH in both balloon_add_regions() and arch_xen_unpopulated_init().

Much like a6aa4eb994ee, the code in this changeset should have been part of
38620fc4e893.

Fixes: a6aa4eb994ee ('xen/x86: add extra pages to unpopulated-alloc if available')
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
I think it's easier to unify the PV and PVH/HVM paths here regarding the
usage of get_num_physpages(), as otherwise the fix needs to add further PV
vs HVM divergences in both balloon_add_regions() and
arch_xen_unpopulated_init(), but it also has a higher risk of breaking PV
in subtle ways.
---
 arch/x86/xen/enlighten.c |  7 +++++++
 drivers/xen/balloon.c    | 19 +++++++++++--------
 2 files changed, 18 insertions(+), 8 deletions(-)

diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
index 43dcd8c7badc..651bb206434c 100644
--- a/arch/x86/xen/enlighten.c
+++ b/arch/x86/xen/enlighten.c
@@ -466,6 +466,13 @@ int __init arch_xen_unpopulated_init(struct resource **res)
 			xen_free_unpopulated_pages(1, &pg);
 		}
 
+		/*
+		 * Account for the region being in the physmap but unpopulated.
+		 * The value in xen_released_pages is used by the balloon
+		 * driver to know how much of the physmap is unpopulated and
+		 * set an accurate initial memory target.
+		 */
+		xen_released_pages += xen_extra_mem[i].n_pfns;
 		/* Zero so region is not also added to the balloon driver. */
 		xen_extra_mem[i].n_pfns = 0;
 	}
diff --git a/drivers/xen/balloon.c b/drivers/xen/balloon.c
index 163f7f1d70f1..085d418ee6da 100644
--- a/drivers/xen/balloon.c
+++ b/drivers/xen/balloon.c
@@ -698,7 +698,15 @@ static void __init balloon_add_regions(void)
 		for (pfn = start_pfn; pfn < extra_pfn_end; pfn++)
 			balloon_append(pfn_to_page(pfn));
 
-		balloon_stats.total_pages += extra_pfn_end - start_pfn;
+		/*
+		 * Extra regions are accounted for in the physmap, but need
+		 * decreasing from current_pages to balloon down the initial
+		 * allocation, because they are already accounted for in
+		 * total_pages.
+		 */
+		BUG_ON(extra_pfn_end - start_pfn >=
+		       balloon_stats.current_pages);
+		balloon_stats.current_pages -= extra_pfn_end - start_pfn;
 	}
 }
 
@@ -711,13 +719,8 @@ static int __init balloon_init(void)
 
 	pr_info("Initialising balloon driver\n");
 
-#ifdef CONFIG_XEN_PV
-	balloon_stats.current_pages = xen_pv_domain()
-		? min(xen_start_info->nr_pages - xen_released_pages, max_pfn)
-		: get_num_physpages();
-#else
-	balloon_stats.current_pages = get_num_physpages();
-#endif
+	BUG_ON(xen_released_pages >= get_num_physpages());
+	balloon_stats.current_pages = get_num_physpages() - xen_released_pages;
 	balloon_stats.target_pages  = balloon_stats.current_pages;
 	balloon_stats.balloon_low   = 0;
 	balloon_stats.balloon_high  = 0;
-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Wed Apr 02 13:51:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 02 Apr 2025 13:51:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.935716.1337112 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzyUU-0004cj-4T; Wed, 02 Apr 2025 13:50:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 935716.1337112; Wed, 02 Apr 2025 13:50:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzyUU-0004cc-1f; Wed, 02 Apr 2025 13:50:50 +0000
Received: by outflank-mailman (input) for mailman id 935716;
 Wed, 02 Apr 2025 13:50:49 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=T645=WU=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tzyUS-0004cW-WF
 for xen-devel@lists.xenproject.org; Wed, 02 Apr 2025 13:50:49 +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 7a678662-0fc9-11f0-9ffb-bf95429c2676;
 Wed, 02 Apr 2025 15:50:46 +0200 (CEST)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-43cef035a3bso49437785e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 02 Apr 2025 06:50:46 -0700 (PDT)
Received: from [10.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-39c0b79e31csm17254292f8f.68.2025.04.02.06.50.45
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 02 Apr 2025 06:50: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: 7a678662-0fc9-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743601846; x=1744206646; 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=pSW9VSD9x8+DlQyOnY1YaaClIczFQMLB3PDQAj7FsFU=;
        b=JZ84A6Iu1MUIK8z6xFrOFzi2I3pvEVUeUwvETG8zfDk3RYl/DM9rOxQc47v/eNp56j
         waBjWxNhoKJixFGVTL1W5cQOG14hE3XlNgb3oWzHldzI72H55y2m2VNrKVKa/8Asi+a/
         U9yKlUSpHJOEM0Tntz2Yo5M5oiDn7IKRGE2pea8q1LQFhxGgGrajU5vVwWYFDpem0vwS
         jY9Zb4TwbwhiL+IDH0THN5EahrM1zuLDUI+qgaBa2ou+4AfMZCSiCEm7TQDCBO2b4M6u
         gZdWej5aE1CsqRDxHZFcbaRJWVgFNKixnUtEtWRL4UbHQlLBqe1To3xYOpnZUEf1QiRG
         Nt4Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743601846; x=1744206646;
        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=pSW9VSD9x8+DlQyOnY1YaaClIczFQMLB3PDQAj7FsFU=;
        b=EMIer5GwG/YKDMAgJ+8p+jenbCezKUH86p28hkId8CLDgk8WVWj10SCDCf+sFHDaTL
         HDuY4WfTUI8YUNmVW6RJDAAFMYKzckeJ+mAfmzcs6p6Bzkowp6SXKeYtPb0VaJXzRNcd
         6xGGeJ/8wCRolvxlYWG16HefqoUoaV3Xzl6rVknrAh2oRSOzhHnK6PJXJkhY5F3/t74f
         KFG+IHK0/6fTMSX/JKbrky2x0ATIdOs/+EWioV+TNUo7mLAjMyIclDUA9OlQ+FjKtjjz
         R8ujWzAxNuvCqo/16c4vIUgIZ5rsqxew/SOUwNZE15x0P1bv1qJy0L8Jr5BoaM4/kNVr
         o5LA==
X-Forwarded-Encrypted: i=1; AJvYcCU/MS6Cnc1bTB2H4ULshCN1kCBCl+b8lnmJE451c+eL1lmlIUS+kl7l8iQ6TZKw+fvvMVVOiv0yulc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzzRNNsw9AXLXmChleIWNulU1BgWDBZckFe8E9gycTI+aCitnpb
	oUOpcXlcBSQ2i64dpROmeyTg3dCqdbZG6ox0/RRQnL/qA2/OZtKuCXgc+aVL1Q==
X-Gm-Gg: ASbGncuBwirMp0+gDLl4bUo+exMOfmxM1QCa2AaII63OM2dVSxcs++8er+UoFwokL/o
	g6rzLUSKSmYxSs4eenL/v4K/VnFDHjY64GjZp9foEIgviIewcbFkTg2S1GygDmA5h6MhleSQEnj
	uJqkcPz96nlW5qmkBqVZwjo0U16yfjG5iJBaU1HWTOfEIp4Uot7aWFN+DoIEnQOpO60CJJIiN63
	zHbBg4kBJEJTtdiqd8VMNV1JsXqPNDcRe4M0D1oJU9m2PqJjZgKsnUzRjEAHcgMD9uViSAKSdkr
	R3o303Wbfy5o6GY3pgkLn6R9NXiRUGCcIX1QVSgms44D/yJXjvYL2hI1NinAx5Ou+Wz2I/U/cWh
	9Eu/I9HYoLS0gJ2hQgI4y99jm9ipcrw==
X-Google-Smtp-Source: AGHT+IF3sBU0E2+GC4iUiNctXJzQeNCrPF47Sx+FMZpNZ8/Hk7PObVAARRxj1D2gxrW2gTYRbsb20w==
X-Received: by 2002:a05:600c:4e87:b0:43d:8ea:8d80 with SMTP id 5b1f17b1804b1-43db61d5fd2mr139646895e9.5.1743601846063;
        Wed, 02 Apr 2025 06:50:46 -0700 (PDT)
Message-ID: <3f51a217-8f23-4c83-b431-17ae83ed395b@suse.com>
Date: Wed, 2 Apr 2025 15:50:44 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/apic: Fix function typechecking in TSC Deadline
 errata check
From: Jan Beulich <jbeulich@suse.com>
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: <20220321141207.18422-1-andrew.cooper3@citrix.com>
 <f3a49994-db28-5976-579f-b94c1c6d9339@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: <f3a49994-db28-5976-579f-b94c1c6d9339@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 21.03.2022 15:26, Jan Beulich wrote:
> On 21.03.2022 15:12, Andrew Cooper wrote:
>> --- a/xen/arch/x86/apic.c
>> +++ b/xen/arch/x86/apic.c
>> @@ -1092,12 +1092,17 @@ static void setup_APIC_timer(void)
>>      local_irq_restore(flags);
>>  }
>>  
>> +#define DEADLINE_MODEL_FUNCT(m, fn) \
>> +    { .vendor = X86_VENDOR_INTEL, .family = 6, .model = (m), \
>> +      .feature = X86_FEATURE_TSC_DEADLINE, \
>> +      .driver_data = fn + (0 * sizeof(fn == ((unsigned int (*)(void))NULL))) }
> 
> Are you sure all compiler versions we support are happy about +
> of a function pointer and a constant? Even if that constant is zero,
> this is not legal as per the plain C spec.

Thanks for the pointer to
https://gcc.gnu.org/onlinedocs/gcc/Pointer-Arith.html - this is indeed
fine then, with the assumption that this is also only meaningful with
the non-upstream -fcf-check-attribute= patch in place.

Hence with ...

> Also strictly speaking you would want to parenthesize both uses of
> fn.

... this taken care of (also to please Misra)
Reviewed-by: Jan Beulich <jbeulich@suse.com>

IOW ...

>>  #define DEADLINE_MODEL_MATCH(m, fr) \
>>      { .vendor = X86_VENDOR_INTEL, .family = 6, .model = (m), \
>>        .feature = X86_FEATURE_TSC_DEADLINE, \
>>        .driver_data = (void *)(unsigned long)(fr) }
> 
> As long as we leave this in place, there's a (small) risk of the
> wrong macro being used again if another hook would need adding here.
> We might be safer if driver_data became "unsigned long" and the
> void * cast was dropped from here (with an "unsigned long" cast
> added in the new macro, which at the same time would address my
> other concern above).

... while I continue to be concerned here, we can as well deal with
that if and when a new such hook appeared.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Apr 02 13:56:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 02 Apr 2025 13:56:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.935732.1337122 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzyZY-0005Di-LF; Wed, 02 Apr 2025 13:56:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 935732.1337122; Wed, 02 Apr 2025 13:56: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 1tzyZY-0005Db-IK; Wed, 02 Apr 2025 13:56:04 +0000
Received: by outflank-mailman (input) for mailman id 935732;
 Wed, 02 Apr 2025 13:56: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=T645=WU=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tzyZX-0005DV-Cb
 for xen-devel@lists.xenproject.org; Wed, 02 Apr 2025 13:56:03 +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 368bc8b4-0fca-11f0-9ea9-5ba50f476ded;
 Wed, 02 Apr 2025 15:56:02 +0200 (CEST)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-39c1ef4acf2so1790784f8f.0
 for <xen-devel@lists.xenproject.org>; Wed, 02 Apr 2025 06:56:02 -0700 (PDT)
Received: from [10.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-39c0b79e0d1sm17039553f8f.70.2025.04.02.06.56.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 02 Apr 2025 06:56:01 -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: 368bc8b4-0fca-11f0-9ea9-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743602162; x=1744206962; 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=ZX3nFh5HbaqnfPwak8MkT9aP3MsYz6LqGQBNR1uuhiw=;
        b=E212LmGvxSFgZO5mblRrXLGQqDsuEcrAglb+pBxV0FItgHl/BxJCjPP5rjRhCkzZIS
         jh+d4S9/l0vHxLosyPvCsWdneu1zvsuJpKFNVcusx6t1MlxuRm3LsTs8bSePECOHkrCu
         EMmu9Sl1bqFcQ1A42fYRAaKJhHyfZ2LUgq/TTIGWCqgdLly7LR7gxWJYTwRy34M5W4/6
         kFEQ02ewlfvQwttFOv3yrsRuDdwx/+Isf/nE03y3sCNZ6W7TjWkTjaxEGgM8nxenyksl
         Y47jeLFN7evY8G1cXUYPUUZke6n/ZbUy6NpFKXz3W+j/Qg4RSTHvSDDqHZ3kalT9ODAB
         dKHg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743602162; x=1744206962;
        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=ZX3nFh5HbaqnfPwak8MkT9aP3MsYz6LqGQBNR1uuhiw=;
        b=nzXjZ+9Ulk9PxhWAO/weV7n48ZeFi89EIRQujwSOedDM5Hv1eC/jQA3Bh4BdAIP323
         hEsFO5WmQ2R/iqSCt9YDTyARe698Qf2vZgOMnKOsT97fapJiN8DIVa5zBfxooP/e/TbM
         FpsnWewCgGQOQ1dxGCpSpmTXOIUXwzJmi6nB8BwNKT+8sju7+FzOm670zjOlg9YmpH3o
         59B8KfEE+4EK5edvakm16VeLD8Rng5pok6lkAbfTceA4wUYj7DKip9n4TK87l7oNEa12
         kLbbDZGgNjOAR10kHaXV/gdcDaRtd46E8rbhcu33NFgYEx6/PQ8mMiQpahApraOIbRuD
         xjYg==
X-Gm-Message-State: AOJu0YxRprUedYgfHtCnWR3tuthOZEpqpgSxzpUGO6vNJlRIT7ylaaX9
	OQdz0YZ+k2Wo4Sz+ZPM/h/ehc9Qwsbg1r0guv+YfudzdiU4iaWhw3bEtVmMd2fcGZOKqynDeyUI
	=
X-Gm-Gg: ASbGnctpZAyDGwH7qHtZMBelSa26iMFSN5UvFUgx2LYDd9C9V5eqgNx8jZWOiQ2pl7w
	NKydWsedt0T2LlX5HIiWuHE1hYUU/v/Nfw3ksbDlwAeUY2UWYwXWqHqJ6d6x/iuZGWgyNvrPhvg
	Fuj80Lt0cJ4uSMZIAODM3YnFmRf78fwkPC1+vR1xntoxNMqQEMXRabr0sshs03xnOX3E1fvhVvH
	lW1LnHqPxX07oiEm/2lMxi/aSNhCmahXmUJXYj9rAC2Qw7RrtVDOyxiSrV8LDkEbtIqqwFNU9TE
	hmKuElzCiscdPh5Vv+wrlRy+B3lPfagTfFcY6T+Sn7IwVjD6ZsIvTH5oGs6wujXp0t0zBWnI7HI
	2tySZUuwFHTRKDSwDqJSDASTZD1F3qw==
X-Google-Smtp-Source: AGHT+IFYf7xjs2J4xX3XrP5JnnIDZF25OBcET/HLi3k4MilG5Dd73fQOfqcnpPoyW+g8e24seNnVlA==
X-Received: by 2002:a05:6000:1a85:b0:391:40b8:e890 with SMTP id ffacd0b85a97d-39c120dd0d3mr11137841f8f.22.1743602161679;
        Wed, 02 Apr 2025 06:56:01 -0700 (PDT)
Message-ID: <ceef1876-8759-465c-9a74-309b6b92f773@suse.com>
Date: Wed, 2 Apr 2025 15:56:00 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH v2 0/5] symbols: assorted adjustments
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

The main goal was what patch 3 does, but on the way there various other
things became noticeable, and some preparation was necessary, too.

1: add minimal self-test
2: split symbols_num_syms
3: arrange to know where functions end
4: centralize and re-arrange $(all_symbols) calculation
5: prefer symbols which have a type

Jan


From xen-devel-bounces@lists.xenproject.org Wed Apr 02 13:58:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 02 Apr 2025 13:58:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.935742.1337133 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzybS-0005la-01; Wed, 02 Apr 2025 13:58:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 935742.1337133; Wed, 02 Apr 2025 13:58:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzybR-0005lT-T2; Wed, 02 Apr 2025 13:58:01 +0000
Received: by outflank-mailman (input) for mailman id 935742;
 Wed, 02 Apr 2025 13:58:00 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=T645=WU=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tzybQ-0005kV-M0
 for xen-devel@lists.xenproject.org; Wed, 02 Apr 2025 13:58:00 +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 7c8ce4f1-0fca-11f0-9ea9-5ba50f476ded;
 Wed, 02 Apr 2025 15:57:59 +0200 (CEST)
Received: by mail-wr1-x42d.google.com with SMTP id
 ffacd0b85a97d-39c266c2dd5so1280170f8f.3
 for <xen-devel@lists.xenproject.org>; Wed, 02 Apr 2025 06:57:59 -0700 (PDT)
Received: from [10.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-39c0b7a41f5sm16850495f8f.84.2025.04.02.06.57.58
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 02 Apr 2025 06:57:58 -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: 7c8ce4f1-0fca-11f0-9ea9-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743602279; x=1744207079; 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=Wvo15DS2o3owPyk9r+14HmKhMwdf4HpSiy1AYZEx6FU=;
        b=gUd6KJWJo66qrP3F+gJnG3Bh7b5qYyhSon4t+AE0K5Jttk8C+5zMF4S3H7y/tDKrmZ
         0EcNb0LepAa7d75GnJC6Fda6HPKDCBFC8b5rZMzysWLduCQ89MeKd7OcVXLWtqyZkMx4
         Ov4XaT0yX/sSLfGax1jAXf2F+rdkpavjalJbhR+mMD5MSQm5kfVvfXHU8dtVkC9i+RGR
         fWBmHg7PrteXBTok8xq9EJkDWOjomlD2tk2FgpiWuVViaNhR9E9jP6A61/5Itzc6IdUD
         TYc70fM7htk11cE7gnptEz8VnV7k1Y9YhF8CZ1zvFn8Niqb5aEA1+JTulDCBLGYORQH7
         VXxA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743602279; x=1744207079;
        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=Wvo15DS2o3owPyk9r+14HmKhMwdf4HpSiy1AYZEx6FU=;
        b=jNEfrgk5EUCs52bkOmDpi3OdSKQme/5VRF7LP8tbqD50egjC9ucuGpg0S3qrhu2650
         havtBG1TgKUY0B41+gHyd1FuCNETkRPM+oP6AnLD+Kyt34L1l+rXYb2JcYxh2qTtc7B0
         guixg2nygv9coG/RB33YJhPNZS6Mm6VxSf/jLWHdf7/5zucl8u+78vDX4l7rtI5jltbI
         9iNdpjF6P37R39SMwPDZZ3/x0mN4M1Ue9iOaTmdFRUN3FpfTFqAzXzfGVjcHKs5h5pVY
         Vc+oRc5C6+YMRICnP3l666EBPgTUJBKUKk87mrdJ8gPOSDVOtelcc8I0gOmy4MjHGsp9
         9LOQ==
X-Gm-Message-State: AOJu0YyO44j9PnEs0lj/89TQfWZRHNeJVjowV770zYSUDVnbcBTCNvxL
	eDZXJXUDjEgUk+9rHiR7wtWfcVRv5bbq1fy8LgRiuvNqliNNF5C5JogScY+PmijjRDdQkUqaeZo
	=
X-Gm-Gg: ASbGncsDdeBTcaG5bfsAAt7sNRusdkXqJcVIHp/Cp7Jvn239vRNukaR2RJyq/p4tzCX
	hiHxxVV9x0j5Kl1/4aXU/JfQa5ihTq+oH08o4kcU+UC0uPgGd09XIP+PdjzcUc5gIWIldVJ0tNl
	ygWTiJt0KbrpVRkMOMAV+x5zw1BSBGdWRVcRZs7zBaLRVv74mUbI8Hz/QfqkoI66QF0M3idsOVw
	7sVb4w0fy4UNmXAJEcKwnKQO3eX+1j5myQUC57wGOPFshO4B7wkTlnU9awzNmWqEil8zsgIlmI+
	qs4UJ1HKaoH92GFC26PDUBM8WNLt9GssbY01ND2razzmY7Y53b+xhLKQn3z/dt+Ld3xgKxmjidU
	EdpX+dzpuprhWtJqf+ELj0OFZC7jhrQ==
X-Google-Smtp-Source: AGHT+IEvAMaGKn2Ttwk6M7eKwGqm0dtPoHP8cqbSjO8/vuoj4E5L4kwjV5UwiuRxQkhnHa0WG3iBUw==
X-Received: by 2002:a05:6000:2a10:b0:39c:1257:ccad with SMTP id ffacd0b85a97d-39c1257ccdamr9248107f8f.56.1743602279222;
        Wed, 02 Apr 2025 06:57:59 -0700 (PDT)
Message-ID: <879646dd-b55e-4b42-b637-d3b14570b880@suse.com>
Date: Wed, 2 Apr 2025 15:57:57 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v2 1/5] symbols: add minimal self-test
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <ceef1876-8759-465c-9a74-309b6b92f773@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: <ceef1876-8759-465c-9a74-309b6b92f773@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

... before making changes to the involved logic.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
While Andrew validly suggests cf_check isn't a requirement for selecting
which function(s) to use (with the non-upstream gcc patch that we're
using in CI), that's only because of how the non-upstream patch works.
Going function-pointer -> unsigned long -> function-pointer without it
being diagnosed that the cf_check is missing is a shortcoming there, and
might conceivably be fixed at some point. (Imo any address-taking on a
function should require it to be cf_check.) Hence I'd like to stick to
using cf_check functions only for passing to test_lookup().

With this FAST_SYMBOL_LOOKUP may make sense to permit enabling even
when LIVEPATCH=n. Thoughts? (In this case "symbols: centralize and re-
arrange $(all_symbols) calculation" would want pulling ahead.)

--- a/xen/common/symbols.c
+++ b/xen/common/symbols.c
@@ -260,6 +260,41 @@ unsigned long symbols_lookup_by_name(con
     return 0;
 }
 
+#ifdef CONFIG_SELF_TESTS
+
+static void __init test_lookup(unsigned long addr, const char *expected)
+{
+    char buf[KSYM_NAME_LEN + 1];
+    const char *name, *symname;
+    unsigned long size, offs;
+
+    name = symbols_lookup(addr, &size, &offs, buf);
+    if ( !name )
+        panic("%s: address not found\n", expected);
+    if ( offs )
+        panic("%s: non-zero offset (%#lx) unexpected\n", expected, offs);
+
+    /* Cope with static symbols, where varying file names/paths may be used. */
+    symname = strchr(name, '#');
+    symname = symname ? symname + 1 : name;
+    if ( strcmp(symname, expected) )
+        panic("%s: unexpected symbol name: '%s'\n", expected, symname);
+
+    offs = symbols_lookup_by_name(name);
+    if ( offs != addr )
+        panic("%s: address %#lx unexpected; wanted %#lx\n",
+              expected, offs, addr);
+}
+
+static void __init __constructor test_symbols(void)
+{
+    /* Be sure to only try this for cf_check functions. */
+    test_lookup((unsigned long)dump_execstate, "dump_execstate");
+    test_lookup((unsigned long)test_symbols, __func__);
+}
+
+#endif /* CONFIG_SELF_TESTS */
+
 /*
  * Local variables:
  * mode: C



From xen-devel-bounces@lists.xenproject.org Wed Apr 02 13:58:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 02 Apr 2025 13:58:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.935747.1337143 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzybl-00068M-6y; Wed, 02 Apr 2025 13:58:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 935747.1337143; Wed, 02 Apr 2025 13: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 1tzybl-000682-3X; Wed, 02 Apr 2025 13:58:21 +0000
Received: by outflank-mailman (input) for mailman id 935747;
 Wed, 02 Apr 2025 13: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=T645=WU=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tzybj-0005kV-Qk
 for xen-devel@lists.xenproject.org; Wed, 02 Apr 2025 13:58:19 +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 879344c6-0fca-11f0-9ea9-5ba50f476ded;
 Wed, 02 Apr 2025 15:58:19 +0200 (CEST)
Received: by mail-wr1-x42a.google.com with SMTP id
 ffacd0b85a97d-399749152b4so3295683f8f.3
 for <xen-devel@lists.xenproject.org>; Wed, 02 Apr 2025 06:58:19 -0700 (PDT)
Received: from [10.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-43eb6135dc4sm21915525e9.33.2025.04.02.06.58.17
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 02 Apr 2025 06:58: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: 879344c6-0fca-11f0-9ea9-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743602298; x=1744207098; 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=P+LOVlzxlWAhiyLhRnyUc5EdBZYUf7MC1TaE2FmTLf4=;
        b=ZVZ3Iw/qtaE/AnBK3ohe8LRCktJ4RD+ZeblpFnP+oHoD12GfiqJZf9IxkUNHJDgODk
         VPBjnOS00WnLAyRtaplMkWZ/UitzVuVdLZdIfUGicMKE9w2xfhSnsx5rdpjNxDOvYHDU
         Bwafz8XzYiLucos3uP+bhNR5FEwPZMvPa/ledbccFGjAPMUTbIFJHN2dKYtjuKBJuga9
         3USC6R41Yh6tZZkKDSm5HWvwvgmmLj/z7hB0qKtbLCwmupXbJl3vHZOaEgsKy3Wiv7rD
         4L7hYqXUE7ONFXfmrf1MWQnxo/BVTAmjBODLctHocxR93Z0CLGGP+sLjsgzaD60nQrw2
         VGWA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743602298; x=1744207098;
        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=P+LOVlzxlWAhiyLhRnyUc5EdBZYUf7MC1TaE2FmTLf4=;
        b=r9+DxBOmiMhNmvTOY4sXR4h0tdXT3EHITBHCkJlhmZ/fxoGp1mOHdW6ZOGmIcuGZ68
         fsmBcONNljMT1/HS5XD5LURB1vbhH+L1vHhUHZ4R0dYq7ei90MV+39V89mbddDgimlSc
         7ExJ7uUzsA78iQfZPBqz7gGcuzOjSn6wRovumEfXQS5NiyWGBrdnBcUqM7wpmZUV/XcS
         ztxmSrwkrFJzrztJ5c+MJCJr+tw4tdlw735AdFvewGNUoD4GyPzw0PS70ozinTEOXy5/
         WoXt0xB9qBLs4qpxBY3vaRNXV1Usunaa7hH9rME/+jX6wM43gwOoAllW7L15T7KRb+K7
         lxOw==
X-Gm-Message-State: AOJu0YzA6rI5BIXNzc2ar+R1G94HYYxo/ueJ+9J0+GOmfmkjKqHslmOP
	2+82uguikX9PEHv8ahU5dkdIqI7TFrInJiE5SEdkL0o23MumicX4/EyGpI+K9cBTRLR0CFPsYI8
	=
X-Gm-Gg: ASbGncuPKARzE++rjr8hFD6Ol8q233VHTjXQLkMWtwB0rpAxVAksbEjMIj5FU7bENQb
	fp4nWsQNE+ao/LrNS3d2PINlX1/8P5Xudc55nRYYo+BfzO0+HqjkBnSaCwgY+Vh5ToTibAV6C6m
	OgPppieaWFZxyOa69HkRoICgy01apTT+FFvSWyactDqzeERd2gWxK5Cj/jmv3S3wgjRL0zs7X+I
	YIOmeWZfYGOKTIo3IoGYWy0EFt+I1qK5HFDqvf/1hZuwDeL/zWFijzfrlb7TkYhlnLujtXO6mit
	+VCAqc8SuDI0MQzyu0SBmKQdLgXwFZ83yOUVBXbgndrtYnk2Y0YfhvGK8CRTPr9Bq+npOA+nMtx
	KTyvSFHc+/LYIbpNh0JgNXCjese4BGwZ+ZHQQr5PI
X-Google-Smtp-Source: AGHT+IEPWM4pLIvNJKv9hvi5KcBEPkQlR1qwBmNSaJR90hRsMiKg3Eqggx0tBeXaRir6xP01k69eGw==
X-Received: by 2002:a05:6000:420c:b0:390:f902:f973 with SMTP id ffacd0b85a97d-39c23646776mr5682274f8f.8.1743602297716;
        Wed, 02 Apr 2025 06:58:17 -0700 (PDT)
Message-ID: <5015ce6d-a961-491b-9fe7-f6628329f3f0@suse.com>
Date: Wed, 2 Apr 2025 15:58:16 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v2 2/5] symbols: split symbols_num_syms
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <ceef1876-8759-465c-9a74-309b6b92f773@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: <ceef1876-8759-465c-9a74-309b6b92f773@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

In preparation for inserting address entries into symbols_addresses[] /
symbols_offsets[] without enlarging symbols_sorted_offsets[], split
symbols_num_syms into symbols_num_addrs (counting entries in the former
plus symbols_names[] as well as, less directly, symbols_markers[]) and
symbols_num_names (counting entries in the latter).

While doing the adjustment move declarations to a new private symbols.h,
to be used by both symbols.c and symbols-dummy.c. Replace u8/u16 while
doing so.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>

--- a/xen/common/symbols.c
+++ b/xen/common/symbols.c
@@ -10,7 +10,6 @@
  *      compression (see tools/symbols.c for a more complete description)
  */
 
-#include <xen/symbols.h>
 #include <xen/kernel.h>
 #include <xen/init.h>
 #include <xen/lib.h>
@@ -21,22 +20,7 @@
 #include <xen/guest_access.h>
 #include <xen/errno.h>
 
-#ifdef SYMBOLS_ORIGIN
-extern const unsigned int symbols_offsets[];
-#define symbols_address(n) (SYMBOLS_ORIGIN + symbols_offsets[n])
-#else
-extern const unsigned long symbols_addresses[];
-#define symbols_address(n) symbols_addresses[n]
-#endif
-extern const unsigned int symbols_num_syms;
-extern const u8 symbols_names[];
-
-extern const struct symbol_offset symbols_sorted_offsets[];
-
-extern const u8 symbols_token_table[];
-extern const u16 symbols_token_index[];
-
-extern const unsigned int symbols_markers[];
+#include "symbols.h"
 
 /* expand a compressed symbol data into the resulting uncompressed string,
    given the offset to where the symbol is in the compressed stream */
@@ -124,7 +108,7 @@ const char *symbols_lookup(unsigned long
 
         /* do a binary search on the sorted symbols_addresses array */
     low = 0;
-    high = symbols_num_syms;
+    high = symbols_num_addrs;
 
     while (high-low > 1) {
         mid = (low + high) / 2;
@@ -141,7 +125,7 @@ const char *symbols_lookup(unsigned long
     symbols_expand_symbol(get_symbol_offset(low), namebuf);
 
     /* Search for next non-aliased symbol */
-    for (i = low + 1; i < symbols_num_syms; i++) {
+    for (i = low + 1; i < symbols_num_addrs; i++) {
         if (symbols_address(i) > symbols_address(low)) {
             symbol_end = symbols_address(i);
             break;
@@ -182,9 +166,9 @@ int xensyms_read(uint32_t *symnum, char
     static unsigned int next_symbol, next_offset;
     static DEFINE_SPINLOCK(symbols_mutex);
 
-    if ( *symnum > symbols_num_syms )
+    if ( *symnum > symbols_num_addrs )
         return -ERANGE;
-    if ( *symnum == symbols_num_syms )
+    if ( *symnum == symbols_num_addrs )
     {
         /* No more symbols */
         name[0] = '\0';
@@ -227,7 +211,7 @@ unsigned long symbols_lookup_by_name(con
 
 #ifdef CONFIG_FAST_SYMBOL_LOOKUP
     low = 0;
-    high = symbols_num_syms;
+    high = symbols_num_names;
     while ( low < high )
     {
         unsigned long mid = low + ((high - low) / 2);
--- /dev/null
+++ b/xen/common/symbols.h
@@ -0,0 +1,31 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+#include <xen/stdint.h>
+#include <xen/symbols.h>
+
+#ifdef SYMBOLS_ORIGIN
+extern const unsigned int symbols_offsets[];
+#define symbols_address(n) (SYMBOLS_ORIGIN + symbols_offsets[n])
+#else
+extern const unsigned long symbols_addresses[];
+#define symbols_address(n) symbols_addresses[n]
+#endif
+extern const unsigned int symbols_num_addrs;
+extern const unsigned char symbols_names[];
+
+extern const unsigned int symbols_num_names;
+extern const struct symbol_offset symbols_sorted_offsets[];
+
+extern const uint8_t symbols_token_table[];
+extern const uint16_t symbols_token_index[];
+
+extern const unsigned int symbols_markers[];
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
--- a/xen/common/symbols-dummy.c
+++ b/xen/common/symbols-dummy.c
@@ -3,22 +3,22 @@
  *                  link of the hypervisor image.
  */
 
-#include <xen/types.h>
-#include <xen/symbols.h>
+#include "symbols.h"
 
 #ifdef SYMBOLS_ORIGIN
 const unsigned int symbols_offsets[1];
 #else
 const unsigned long symbols_addresses[1];
 #endif
-const unsigned int symbols_num_syms;
-const u8 symbols_names[1];
+const unsigned int symbols_num_addrs;
+const unsigned char symbols_names[1];
 
 #ifdef CONFIG_FAST_SYMBOL_LOOKUP
+const unsigned int symbols_num_names;
 const struct symbol_offset symbols_sorted_offsets[1];
 #endif
 
-const u8 symbols_token_table[1];
-const u16 symbols_token_index[1];
+const uint8_t symbols_token_table[1];
+const uint16_t symbols_token_index[1];
 
 const unsigned int symbols_markers[1];
--- a/xen/tools/symbols.c
+++ b/xen/tools/symbols.c
@@ -323,7 +323,7 @@ static void write_src(void)
 	}
 	printf("\n");
 
-	output_label("symbols_num_syms");
+	output_label("symbols_num_addrs");
 	printf("\t.long\t%d\n", table_cnt);
 	printf("\n");
 
@@ -373,6 +373,10 @@ static void write_src(void)
 		return;
 	}
 
+	output_label("symbols_num_names");
+	printf("\t.long\t%d\n", table_cnt);
+	printf("\n");
+
 	/* Sorted by original symbol names and type. */
 	qsort(table, table_cnt, sizeof(*table), compare_name_orig);
 



From xen-devel-bounces@lists.xenproject.org Wed Apr 02 14:00:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 02 Apr 2025 14:00:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.935766.1337152 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzydr-0007tH-Lu; Wed, 02 Apr 2025 14:00:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 935766.1337152; Wed, 02 Apr 2025 14: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 1tzydr-0007tA-JG; Wed, 02 Apr 2025 14:00:31 +0000
Received: by outflank-mailman (input) for mailman id 935766;
 Wed, 02 Apr 2025 14:00:30 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=T645=WU=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tzydq-0007t4-BD
 for xen-devel@lists.xenproject.org; Wed, 02 Apr 2025 14:00:30 +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 d52bd2ff-0fca-11f0-9ffb-bf95429c2676;
 Wed, 02 Apr 2025 16:00:28 +0200 (CEST)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-43cf3192f3bso67742015e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 02 Apr 2025 07:00:28 -0700 (PDT)
Received: from [10.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-43eb619132esm21871615e9.32.2025.04.02.07.00.26
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 02 Apr 2025 07:00:27 -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: d52bd2ff-0fca-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743602428; x=1744207228; 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=aQQDd1gapuOKC8ERRVi4SvfFIF2zEKLTqlaKAIWA6lc=;
        b=FFME+Cu+NUZge2lreisO3+ZiSWA0s56nixzSNr2EptBiW/Vr3NAAd5u1mlfvmwPHZD
         9p8gkoY2bAAczUQ3MDIMqzB+dtjy5tHSPjLl00NxG3TBPl+UpgqfUJ/nUBBsRgXwaS7D
         6eTD0V+VoIkGaxTGTz+iOKYJDDCqYQG/cYkdWFVzJYZ6xUXf5uqoVHMBkLMFb1gwbXVO
         mRsy4pA/Fzv0EexUX4tUyZLhk0mRVafuS5Gh7N5JtTfFIrcAC88LLahVH+e9p+5Ys8nc
         v+e0iiOXdZMm1Y1aOzYsLiGuqZFJDc8M1aALlyNgLvOqg3ynKaincaQ29jfY9bWbtRMu
         VLzg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743602428; x=1744207228;
        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=aQQDd1gapuOKC8ERRVi4SvfFIF2zEKLTqlaKAIWA6lc=;
        b=MIqLQUNCLNZKESzRVzNGBlktRfMDVY6Sd1J5t3Igy+QKyBfr1/7RCP1OKMhr8GVYu4
         11+rtrXmXwZUdAU/7vXRkj47sl8SXqyufLlX7RrYF07HytkIPe/bZ2ypBvd/ERfp55/o
         W3cDU7TaCHaiCv2l/OtwsJH2KVeH7Wp4f2VPIm2kzTpxgNUvwcsxC4LKNkwn158WEPKQ
         ZK3nPn68/Wvh20Hl64ja2yeFhQ6Kj5opFE3a4Ocv11FSv3C+DdG4Erqfu1H2NhIRepdA
         hH4XlMVHEQf7KTcIKTfMMJJPMmUzBu64ZV6jrKQAela0qFo8x1Of3/I7JbpOa3HuZ5af
         jFkg==
X-Gm-Message-State: AOJu0YwRqQ9SCEGLQnHGI4yuZqa7tiEfKIhXU3b286bp7qh9xt33RtRe
	NJw+BX+5wv4b/1ZKJcR1DoRJzIcuXuLgEU078AEDg3+NG8ZXbMj78TmFltZ3l6jnf3YTJqnKtKY
	=
X-Gm-Gg: ASbGncsH1LBvYnc4kdkalj2gJv0vGuFawaUmjn6SyNwrhX+FIgbeHTKYNLqIddNtIiV
	WTpLN7S40X1cDTR8R+IYv3/JlFkz3P2yGHa4EOJIjGlIGe9/26WA3e1ioYgLAhiSjAoSOcEboVx
	0m7yxxz1aYbyEGtKuJ8LXVQhoSU+cxj8XLpZzZdmMiri5D2gRSJmL3AKIFwlbi4w38pfcm1iLJV
	TE3GNG2nbpuTSK6ObwQL/KN8LqJop02oOt1dETMlTlF7/QTpPrSfP6PHYOvQ6obJWnknUn2C3Ui
	h3aKfpc3g3PmW7buas8SF/1jXHqccI8Go8C0l0VjKtFASNNHL2YPebCBui3Ex/UjW4869ubLZha
	RtpBvu1RzIwdXesctbXywr07Q58tKgA==
X-Google-Smtp-Source: AGHT+IF7C52hwri8XqctfZkS5LIAbXhdTYt5qRh8ZJuO7bII2d2p+oH8oXGLZUrSCyGsPzSnsxhO4A==
X-Received: by 2002:a05:600c:42c8:b0:43a:b0ac:b10c with SMTP id 5b1f17b1804b1-43e8ff51423mr84298105e9.26.1743602427814;
        Wed, 02 Apr 2025 07:00:27 -0700 (PDT)
Message-ID: <b7261eaf-b3ce-4b71-aba2-3f40adbbe93e@suse.com>
Date: Wed, 2 Apr 2025 16:00:25 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v2 5/5] symbols: prefer symbols which have a type
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <ceef1876-8759-465c-9a74-309b6b92f773@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: <ceef1876-8759-465c-9a74-309b6b92f773@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

... and thus typically also a size. Using global vs local is undesirable
in certain situations, e.g. when a "real" symbol is local and at the
same address as a section start/end one (which are all global).

Note that for xen.efi the checking for "Function" is only forward-
looking at this point: The function-ness of symbols (much like their
size) is lost when linking PE/COFF binaries from ELF objects with GNU ld
up to at least 2.44.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
I didn't see much reason to also check for "Pointer" and "Array" or any
of the basic types. While nm reports pointers and arrays (but not the
basic types) for PE/COFF, making those up when linker input is ELF would
be impossible without further auxiliary (and non-standard) data in the
ELF symbol table. Transforming STT_FUNC, otoh, is in principle possible.

Implicit from the above: Until GNU ld properly transforms STT_FUNC,
symbol conflicts will be resolved differently for functions. Symbol
conflicts will always be resolved differently for data. xen.efi stack
traces may therefore be less informative than xen-syms ones.
---
v2: New.

--- a/xen/tools/symbols.c
+++ b/xen/tools/symbols.c
@@ -45,6 +45,7 @@ struct sym_entry {
 	unsigned int addr_idx;
 	unsigned int stream_offset;
 	unsigned char type;
+	bool typed;
 };
 #define SYMBOL_NAME(s) ((char *)(s)->sym + 1)
 
@@ -180,6 +181,9 @@ static int read_symbol(FILE *in, struct
 		s->type = stype; /* As s->sym[0] ends mangled. */
 	}
 	s->sym[0] = stype;
+	s->typed = strcmp(type, "FUNC") == 0 ||
+	           strcmp(type, "OBJECT") == 0 ||
+	           strcmp(type, "Function") == 0;
 	rc = 0;
 
  skip_tail:
@@ -613,6 +617,13 @@ static int compare_value(const void *p1,
 		return -1;
 	if (sym1->addr > sym2->addr)
 		return +1;
+
+	/* Prefer symbols which have a type. */
+	if (sym1->typed && !sym2->typed)
+		return -1;
+	if (sym2->typed && !sym1->typed)
+		return +1;
+
 	/* Prefer global symbols. */
 	if (isupper(*sym1->sym))
 		return -1;



From xen-devel-bounces@lists.xenproject.org Wed Apr 02 14:01:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 02 Apr 2025 14:01:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.935777.1337163 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzyeU-0000Zr-Uk; Wed, 02 Apr 2025 14:01:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 935777.1337163; Wed, 02 Apr 2025 14:01: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 1tzyeU-0000Zk-SA; Wed, 02 Apr 2025 14:01:10 +0000
Received: by outflank-mailman (input) for mailman id 935777;
 Wed, 02 Apr 2025 14:01: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=T645=WU=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tzyc1-0005kV-IU
 for xen-devel@lists.xenproject.org; Wed, 02 Apr 2025 13:58:37 +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 92a3c56e-0fca-11f0-9ea9-5ba50f476ded;
 Wed, 02 Apr 2025 15:58:36 +0200 (CEST)
Received: by mail-wr1-x42c.google.com with SMTP id
 ffacd0b85a97d-39ac8e7688aso5226141f8f.2
 for <xen-devel@lists.xenproject.org>; Wed, 02 Apr 2025 06:58:36 -0700 (PDT)
Received: from [10.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-43eb61b5768sm21420665e9.33.2025.04.02.06.58.35
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 02 Apr 2025 06:58:35 -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: 92a3c56e-0fca-11f0-9ea9-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743602316; x=1744207116; 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=e3lgQoWVEwKIU2psKovovYbn8xTJJbRXjtvyqx11OTY=;
        b=fIPdtene7QMz/+a1gdxCVElRmr6rJ358OYdtOgu6RqMpV0PfplwsVslKES9RjQt0v9
         Gt6hCmg17nTtn5/Cc7qWO2ODt85T3zP/MihFEdUc2fOA7YnwYxB5RIDKRP3Nn2wW2G0y
         TC2deztkOIfxvnZQDzsD4VUYM/b3RyT5TzfNa1FtxqO7hWqw8C+930duCQxT2tZcG4sC
         RJrflkjljndEcxS90DiV0BSpM6m3sNL+ZFblsGdgG9I6dCmnj4RgilvF9NUM1TFEsy+2
         WQ77zwZsoqwHm/I0IbRc1flrxDi4tUIAWK/2CBdglhCZuwU/pBYfr81hlAdu/LlzkZq4
         vL9g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743602316; x=1744207116;
        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=e3lgQoWVEwKIU2psKovovYbn8xTJJbRXjtvyqx11OTY=;
        b=EjUA5wyozFLNo0KxCQpavQcAltlAsBskEhjtydDlnAZn7d6ZAT8Zfb84iiwhutlCh9
         s5aNrC+5qYQAqDRpLcGYt0seJQL5oyg1+kKi8x8hDg+qj08JfqsFumjPkChbgISRPkAU
         kbQr4xQbxPLz+cExWW2LBPyDbJlz1kzG7ZBAz6uQRR9kelCsp9C/v9bq4CplXasJZXHT
         HCkL27NC3ldeFVYeLXZLXyH6EKLK8zlA1xHYUpN6Hz5gLRFVo/efSUVoVQnYO9JTWomg
         upCe4mhmaryZoSI2x45VOeBfKMSw45ZP0tx9itY1oAYXYNuGzukbK5DM+MIq6+t7kRnc
         v5Kg==
X-Gm-Message-State: AOJu0YzxjW5vexGIPPq3ROnPNIWQDytWR7coXhDpR0PZCeBGz6l1SMV0
	QwxYxEqCRzTTpp3TXXne/BFUiMjF1MJ2H7BNW6aRaq8IRllH5TOEXQXQYrSp4eC6UZ3hvFcG0HU
	=
X-Gm-Gg: ASbGncs2Dn8M4AVTsGcoxvAiijdCtlxGrg0YJdHx4ZAhlOMtk54mB/sS0pNanApc3xb
	/+TKZGkq4rmZM4CKsMNoG/fTfSwwOrEMFBrjmvV2fDT2rArzaNUKdCGsspYiBpAODxOGBuToKQK
	dJXiJ1H0fSkNWZfw0jeirWkIyiIqa78V0O0jP8fkfgnONHZt1POybUQ9RU6lZt5MGsB/Ke1L7gd
	2e5GcdjBeZXgselKWGqdIYon0Q/ScbVRV+ZBbOXQgop8LlVhvO2NaQOe4JdSPxI/ACgfDBVMfMU
	/Jb1hXXqpaPV4RiE0tC7g4W49xNrLxZxuUNedA3tK5N6/TR8r258QHeOkcXR9nXpNv0T9vJLUtP
	rBumGR3AVZpbdaFErL6zOjcTB6AVEtg==
X-Google-Smtp-Source: AGHT+IGLmQhSCBY0UpP7m+2d+nwr4FWstvnmSxxJqz7JNHuoO6b7H2PAgbj4gvMi0VJF8W5LpG/fkA==
X-Received: by 2002:a05:6000:40dd:b0:391:231b:8e0d with SMTP id ffacd0b85a97d-39c297e5c6dmr2109644f8f.39.1743602316126;
        Wed, 02 Apr 2025 06:58:36 -0700 (PDT)
Message-ID: <10e116c5-5a62-4abc-a52a-e2ca12118cfe@suse.com>
Date: Wed, 2 Apr 2025 15:58:34 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v2 3/5] symbols: arrange to know where functions end
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <ceef1876-8759-465c-9a74-309b6b92f773@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: <ceef1876-8759-465c-9a74-309b6b92f773@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

When determining the symbol for a given address (e.g. for the %pS
logging format specifier), so far the size of a symbol (function) was
assumed to be everything until the next symbol. There may be gaps
though, which would better be recognizable in output (often suggesting
something odd is going on).

Insert "fake" end symbols in the address table, accompanied by zero-
length type/name entries (to keep lookup reasonably close to how it
was).

Note however that this, with present GNU binutils, won't work for
xen.efi: The linker loses function sizes (they're not part of a normal
symbol table entry), and hence nm has no way of reporting them.

The address table growth is quite significant on x86 release builds (due
to functions being aligned to 16-byte boundaries), though: Its size
almost doubles.

Requested-by: Andrew Cooper <andrew.cooper3@citrix.com>
Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
Note: Style-wise this is a horrible mix. I'm trying to match styles with
      what's used in the respective functions.

Older GNU ld retains section symbols, which nm then also lists. Should
we perhaps strip those as we read in nm's output? They don't provide any
useful extra information, as our linker scripts add section start
symbols anyway. (For the purposes here, luckily such section symbols are
at least emitted without size.)

Even for section start symbols there is the question of whether they
really need retaining (except perhaps when producing a map file). The
main question here likely is whether livepatch may have a need to look
them up by name. (Section end symbols may actually be slightly more
useful to keep, but that may also want considering more closely.)
---
v2: Deal with multiple symbols at the same address, but only some having
    a size specified.

--- a/xen/common/symbols.c
+++ b/xen/common/symbols.c
@@ -116,6 +116,13 @@ const char *symbols_lookup(unsigned long
         else high = mid;
     }
 
+    /* If we hit an END symbol, move to the previous (real) one. */
+    if (!symbols_names[get_symbol_offset(low)]) {
+        ASSERT(low);
+        symbol_end = symbols_address(low);
+        --low;
+    }
+
     /* search for the first aliased symbol. Aliased symbols are
            symbols with the same address */
     while (low && symbols_address(low - 1) == symbols_address(low))
@@ -124,11 +131,13 @@ const char *symbols_lookup(unsigned long
         /* Grab name */
     symbols_expand_symbol(get_symbol_offset(low), namebuf);
 
-    /* Search for next non-aliased symbol */
-    for (i = low + 1; i < symbols_num_addrs; i++) {
-        if (symbols_address(i) > symbols_address(low)) {
-            symbol_end = symbols_address(i);
-            break;
+    if (!symbol_end) {
+        /* Search for next non-aliased symbol */
+        for (i = low + 1; i < symbols_num_addrs; i++) {
+            if (symbols_address(i) > symbols_address(low)) {
+                symbol_end = symbols_address(i);
+                break;
+            }
         }
     }
 
@@ -170,6 +179,7 @@ int xensyms_read(uint32_t *symnum, char
         return -ERANGE;
     if ( *symnum == symbols_num_addrs )
     {
+    no_symbol:
         /* No more symbols */
         name[0] = '\0';
         return 0;
@@ -183,10 +193,31 @@ int xensyms_read(uint32_t *symnum, char
         /* Non-sequential access */
         next_offset = get_symbol_offset(*symnum);
 
+    /*
+     * If we're at an END symbol, skip to the next (real) one. This can
+     * happen if the caller ignores the *symnum output from an earlier
+     * iteration (Linux'es /proc/xen/xensyms handling does as of 6.14-rc).
+     */
+    if ( !symbols_names[next_offset] )
+    {
+        ++next_offset;
+        if ( ++*symnum == symbols_num_addrs )
+            goto no_symbol;
+    }
+
     *type = symbols_get_symbol_type(next_offset);
     next_offset = symbols_expand_symbol(next_offset, name);
     *address = symbols_address(*symnum);
 
+    /* If next one is an END symbol, skip it. */
+    if ( !symbols_names[next_offset] )
+    {
+        ++next_offset;
+        /* Make sure not to increment past symbols_num_addrs below. */
+        if ( *symnum + 1 < symbols_num_addrs )
+            ++*symnum;
+    }
+
     next_symbol = ++*symnum;
 
     spin_unlock(&symbols_mutex);
--- a/xen/tools/symbols.c
+++ b/xen/tools/symbols.c
@@ -38,6 +38,7 @@
 
 struct sym_entry {
 	unsigned long long addr;
+	unsigned long size;
 	unsigned int len;
 	unsigned char *sym;
 	char *orig_symbol;
@@ -87,6 +88,8 @@ static int read_symbol(FILE *in, struct
 	static char *filename;
 	int rc = -1;
 
+	s->size = 0;
+
 	switch (input_format) {
 	case fmt_bsd:
 		rc = fscanf(in, "%llx %c %499s\n", &s->addr, &stype, str);
@@ -96,8 +99,12 @@ static int read_symbol(FILE *in, struct
 			/* nothing */;
 		rc = fscanf(in, "%499[^ |] |%llx | %c |",
 			    str, &s->addr, &stype);
-		if (rc == 3 && fscanf(in, " %19[^ |] |", type) != 1)
-			*type = '\0';
+		if (rc == 3) {
+			if(fscanf(in, " %19[^ |] |", type) != 1)
+				*type = '\0';
+			else if(fscanf(in, "%lx |", &s->size) != 1)
+				s->size = 0;
+		}
 		break;
 	}
 	if (rc != 3) {
@@ -287,9 +294,18 @@ static int compare_name_orig(const void
 	return rc;
 }
 
+/* Determine whether the symbol at address table @idx wants a fake END
+ * symbol (address only) emitted as well. */
+static bool want_symbol_end(unsigned int idx)
+{
+	return table[idx].size &&
+	       (idx + 1 == table_cnt ||
+	        table[idx].addr + table[idx].size < table[idx + 1].addr);
+}
+
 static void write_src(void)
 {
-	unsigned int i, k, off;
+	unsigned int i, k, off, ends;
 	unsigned int best_idx[256];
 	unsigned int *markers;
 	char buf[KSYM_NAME_LEN+1];
@@ -318,24 +334,42 @@ static void write_src(void)
 	printf("#else\n");
 	output_label("symbols_offsets");
 	printf("#endif\n");
-	for (i = 0; i < table_cnt; i++) {
+	for (i = 0, ends = 0; i < table_cnt; i++) {
 		printf("\tPTR\t%#llx - SYMBOLS_ORIGIN\n", table[i].addr);
+
+		table[i].addr_idx = i + ends;
+
+		if (!want_symbol_end(i)) {
+			/* If there's another symbol at the same address,
+			 * propagate this symbol's size if the next one has
+			 * no size, or if the next one's size is larger. */
+			if (table[i].size &&
+			    i + 1 < table_cnt &&
+			    table[i + 1].addr == table[i].addr &&
+			    (!table[i + 1].size ||
+			     table[i + 1].size > table[i].size))
+				table[i + 1].size = table[i].size;
+			continue;
+		}
+
+		++ends;
+		printf("\tPTR\t%#llx - SYMBOLS_ORIGIN\n",
+		       table[i].addr + table[i].size);
 	}
 	printf("\n");
 
 	output_label("symbols_num_addrs");
-	printf("\t.long\t%d\n", table_cnt);
+	printf("\t.long\t%d\n", table_cnt + ends);
 	printf("\n");
 
 	/* table of offset markers, that give the offset in the compressed stream
 	 * every 256 symbols */
-	markers = (unsigned int *) malloc(sizeof(unsigned int) * ((table_cnt + 255) / 256));
+	markers = malloc(sizeof(*markers) * ((table_cnt + ends + 255) >> 8));
 
 	output_label("symbols_names");
-	off = 0;
-	for (i = 0; i < table_cnt; i++) {
-		if ((i & 0xFF) == 0)
-			markers[i >> 8] = off;
+	for (i = 0, off = 0, ends = 0; i < table_cnt; i++) {
+		if (((i + ends) & 0xFF) == 0)
+			markers[(i + ends) >> 8] = off;
 
 		printf("\t.byte 0x%02x", table[i].len);
 		for (k = 0; k < table[i].len; k++)
@@ -344,11 +378,22 @@ static void write_src(void)
 
 		table[i].stream_offset = off;
 		off += table[i].len + 1;
+
+		if (!want_symbol_end(i))
+			continue;
+
+		/* END symbols have no name or type. */
+		++ends;
+		if (((i + ends) & 0xFF) == 0)
+			markers[(i + ends) >> 8] = off;
+
+		printf("\t.byte 0\n");
+		++off;
 	}
 	printf("\n");
 
 	output_label("symbols_markers");
-	for (i = 0; i < ((table_cnt + 255) >> 8); i++)
+	for (i = 0; i < ((table_cnt + ends + 255) >> 8); i++)
 		printf("\t.long\t%d\n", markers[i]);
 	printf("\n");
 
@@ -450,7 +495,6 @@ static void compress_symbols(unsigned ch
 		len = table[i].len;
 		p1 = table[i].sym;
 
-		table[i].addr_idx = i;
 		/* find the token on the symbol */
 		p2 = memmem_pvt(p1, len, str, 2);
 		if (!p2) continue;



From xen-devel-bounces@lists.xenproject.org Wed Apr 02 14:01:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 02 Apr 2025 14:01:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.935781.1337174 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzyet-0001Wi-81; Wed, 02 Apr 2025 14:01:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 935781.1337174; Wed, 02 Apr 2025 14:01: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 1tzyet-0001W7-2M; Wed, 02 Apr 2025 14:01:35 +0000
Received: by outflank-mailman (input) for mailman id 935781;
 Wed, 02 Apr 2025 14:01: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=T645=WU=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tzycb-0005kV-EA
 for xen-devel@lists.xenproject.org; Wed, 02 Apr 2025 13:59:13 +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 a81e1e25-0fca-11f0-9ea9-5ba50f476ded;
 Wed, 02 Apr 2025 15:59:12 +0200 (CEST)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-39129fc51f8so5089913f8f.0
 for <xen-devel@lists.xenproject.org>; Wed, 02 Apr 2025 06:59:12 -0700 (PDT)
Received: from [10.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-43eb5fc1b9esm21848495e9.6.2025.04.02.06.59.11
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 02 Apr 2025 06:59: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: a81e1e25-0fca-11f0-9ea9-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743602352; x=1744207152; 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=5qdZYmy9cJ905wD0Otv7PRiJxoIoH9X0sUdlDkKSKcA=;
        b=Y84pn2cUzi96+haxqMOfvcQY7hcJR0PF0zrCRwraalJ+MEplLMb8frXZcRK/q4dzFc
         tw7cC97ABu7LrHAzEf8g9+0EQqYOs+FP8zPykniT5E4+i98cowy0ApG0VtO4u0pZEnCj
         9C0TCQNjuem8Xw48wvReDPsifSTV8tQOSz8u4KUtJ70bUWWKjTsS0EBCyiLcDS2LImYb
         8mpCfiVz6dJrGMb3eL5hi4OtMHuAOCaXccwkZS06aH/1x+i/o6d7Amlqz/46kGTL6COE
         9UnvFBQ+r9oUQLtfh7Y/tpEz+2YLaDIDOfDBNwPEaVTwDQ6fFi1iE9Bf6KEkTaXb+2Ja
         y0IA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743602352; x=1744207152;
        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=5qdZYmy9cJ905wD0Otv7PRiJxoIoH9X0sUdlDkKSKcA=;
        b=PtZX41/oyzKO1g1ANTB5eFjtw/XH3FcES9gEr6NMbRd4kumjzqS47ImKriMX/Fbc9o
         sYWG3kPDFnhmUnOOBknzZzL2iSEn/A9o9bw7ymvRvE+ja75IDJKXT8FxOMMBgkvYXpu8
         62zlwt28aEcr2XtZEf1WQqSmRCdOLDh459hhnLG0/MIg5Sc+UtUiaHXqt1Rt99ykX+RI
         cvpO38D5JL3JwQaXIkCCLn5Bk5vGSH9wIAiBqFKEAArO1h8NT0mCHC5Gem/DnzJcYDZc
         c1BBti2zIQEGF8RHjTIZ8TgB9wVqjK2Wi16uPBENDnECVxxrHtApMCKX9jMuWSvW1KJC
         NDDA==
X-Gm-Message-State: AOJu0YxSqYn+daXVCW+mrtv+1d3f+h4v9+UB4oEAfqqswb9D1knFRYJm
	K7lfv03gVsQc+GrzGIaSU22XO3/VDYEerxqgFy3c0TkmkNkushGpIQ7zwqq/pyEJRjzV08Vw6PA
	=
X-Gm-Gg: ASbGnctJN7ekac4qFAv16DXnPuxeYtQKJj2o3AYjA21OoELJx+aScjnVUzDM83VBA9V
	Pj18AvxvblVdJpklMDjxBr7Fwup7k6mtnmTxtiol5WTKXmKqv6BkCMvq8UvH7HMOdtc6Sj9BRB4
	23HOZItYHNAUkZ2z4iByDwl0zhOk9GjBP0jFmztzQKwFp/2ej2BPfy0IHtkv1JO6/dI03u//mHf
	bVdzCIjYYl9xZ1+5U9vs7CrVxaXTOVb6xBGI3/xp8bBd25pHAFFS7ggxJZDzwlM+tEV0Bz8rcnj
	U0wKxDBQMliJ1Tp+425f5I7H+9t6nj03oZx4lkYNgc88JZqdB61sEpdsewH7ozd5r3f7DwO93Ll
	PVaS+uAhIE+mrZ7Z15p2ZBzMin4DGGg==
X-Google-Smtp-Source: AGHT+IHOd3wRqTHID5d6KPFa4btlsYknPWJ6RTcqPa2SHO6OnvcQROz0ypVVkXn5/L2ZVZwycctLHQ==
X-Received: by 2002:a05:6000:1862:b0:390:f6aa:4e7c with SMTP id ffacd0b85a97d-39c120e0bc1mr13767984f8f.28.1743602352238;
        Wed, 02 Apr 2025 06:59:12 -0700 (PDT)
Message-ID: <5a77bb51-22d1-4956-8e45-c2412c413766@suse.com>
Date: Wed, 2 Apr 2025 15:59:10 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v2 4/5] symbols: centralize and re-arrange $(all_symbols)
 calculation
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <volodymyr_babchuk@epam.com>
References: <ceef1876-8759-465c-9a74-309b6b92f773@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: <ceef1876-8759-465c-9a74-309b6b92f773@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

For one there's no need for each architecture to have the same logic.
Move to the root Makefile, also to calculate just once.

And then re-arrange to permit FAST_SYMBOL_LOOKUP to be independent of
LIVEPATCH, which may be useful in (at least) debugging.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
Likely syms-warn-dup-y wants to follow suit; it doesn't even have an Arm
counterpart right now.

--- a/xen/Makefile
+++ b/xen/Makefile
@@ -460,6 +460,10 @@ ALL_OBJS-$(CONFIG_CRYPTO) += crypto/buil
 
 ALL_LIBS-y                := lib/lib.a
 
+all-symbols-y :=
+all-symbols-$(CONFIG_LIVEPATCH) += --all-symbols
+all-symbols-$(CONFIG_FAST_SYMBOL_LOOKUP) += --sort-by-name
+
 include $(srctree)/arch/$(SRCARCH)/arch.mk
 
 # define new variables to avoid the ones defined in Config.mk
@@ -612,7 +616,8 @@ $(TARGET): outputmakefile asm-generic FO
 	$(Q)$(MAKE) $(build)=include all
 	$(Q)$(MAKE) $(build)=arch/$(SRCARCH) include
 	$(Q)$(MAKE) $(build)=. arch/$(SRCARCH)/include/asm/asm-offsets.h
-	$(Q)$(MAKE) $(build)=. MKRELOC=$(MKRELOC) 'ALL_OBJS=$(ALL_OBJS-y)' 'ALL_LIBS=$(ALL_LIBS-y)' $@
+	$(Q)$(MAKE) $(build)=. MKRELOC=$(MKRELOC) 'ALL_OBJS=$(ALL_OBJS-y)' \
+	            'ALL_LIBS=$(ALL_LIBS-y)' 'all_symbols=$(all-symbols-y)' $@
 
 SUBDIRS = xsm arch common crypto drivers lib test
 define all_sources
--- a/xen/arch/arm/Makefile
+++ b/xen/arch/arm/Makefile
@@ -81,15 +81,6 @@ ifneq ($(CONFIG_DTB_FILE),"")
 obj-y += dtb.o
 endif
 
-ifdef CONFIG_LIVEPATCH
-all_symbols = --all-symbols
-ifdef CONFIG_FAST_SYMBOL_LOOKUP
-all_symbols = --all-symbols --sort-by-name
-endif
-else
-all_symbols =
-endif
-
 $(TARGET): $(TARGET)-syms
 	$(OBJCOPY) -O binary -S $< $@
 ifeq ($(CONFIG_ARM_64),y)
--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -111,15 +111,6 @@ notes_phdrs = --notes
 endif
 endif
 
-ifdef CONFIG_LIVEPATCH
-all_symbols = --all-symbols
-ifdef CONFIG_FAST_SYMBOL_LOOKUP
-all_symbols = --all-symbols --sort-by-name
-endif
-else
-all_symbols =
-endif
-
 syms-warn-dup-y := --warn-dup
 syms-warn-dup-$(CONFIG_SUPPRESS_DUPLICATE_SYMBOL_WARNINGS) :=
 syms-warn-dup-$(CONFIG_ENFORCE_UNIQUE_SYMBOLS) := --error-dup



From xen-devel-bounces@lists.xenproject.org Wed Apr 02 14:05:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 02 Apr 2025 14:05:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.935806.1337183 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzyir-0002ca-PH; Wed, 02 Apr 2025 14:05:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 935806.1337183; Wed, 02 Apr 2025 14: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 1tzyir-0002cT-MU; Wed, 02 Apr 2025 14:05:41 +0000
Received: by outflank-mailman (input) for mailman id 935806;
 Wed, 02 Apr 2025 14:05: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=MBi7=WU=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1tzyiq-0002cN-Uc
 for xen-devel@lists.xenproject.org; Wed, 02 Apr 2025 14:05:41 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on2062c.outbound.protection.outlook.com
 [2a01:111:f403:2418::62c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8dfde14e-0fcb-11f0-9ffb-bf95429c2676;
 Wed, 02 Apr 2025 16:05:38 +0200 (CEST)
Received: from MW4P220CA0001.NAMP220.PROD.OUTLOOK.COM (2603:10b6:303:115::6)
 by SJ1PR12MB6289.namprd12.prod.outlook.com (2603:10b6:a03:458::17) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.44; Wed, 2 Apr
 2025 14:05:33 +0000
Received: from CO1PEPF000042AB.namprd03.prod.outlook.com
 (2603:10b6:303:115:cafe::28) by MW4P220CA0001.outlook.office365.com
 (2603:10b6:303:115::6) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8583.41 via Frontend Transport; Wed,
 2 Apr 2025 14:05:33 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CO1PEPF000042AB.mail.protection.outlook.com (10.167.243.40) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8606.22 via Frontend Transport; Wed, 2 Apr 2025 14:05:33 +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, 2 Apr
 2025 09:05:32 -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; Wed, 2 Apr
 2025 09:05:31 -0500
Received: from [172.29.45.113] (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, 2 Apr 2025 09:05:31 -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: 8dfde14e-0fcb-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=anMscykytJ/bnsdYtzyoQqxklXc2dxMxvioFyj6VOfEyQXag6XbeFh9KPR7qw0icmeHIVLSjuzycHIJADWCGxI9xM3D6DrNid0ZvKGje01YrDocyJGyJ8V927flwexOieOnDx99BcI1iVZpd9Q1XZ4lz0ga2f7T9hxlHrZjWbO+IagXuP0q7xJEVQgP4c/dcW2Oge+saW1zX/3RE8z3iO9infQkVAo0ojcbJDvhjpOFx+r+JmhhB7B4isEm1HzbzxWLIw4+hi8xZn7HPH4QMiJFz2ttcgpZVebETxbs2/K7qL28oFrU/F3GL+syfTnSxBiXYYfobYn7caMIUh3dQUg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=3QfUJLszbI9BishTllASLZuC8witncdVXux36r4o72w=;
 b=cg/gy62laxlKsWLOzB22dmX/2qN9C9NlDRtPPLnOoZoqDzaV/46th+7c9NlTLxk6FyKnGaWsFdlDKHUlvL+mhenwmNLEg0wV56CRgZubBCBIif0AyzE9DrXF8pV5HFHiXe2ycoeMnoJy3cKx5lXAJ92q1qEWud5qFq0EFhoP/d82Z7CBibWueFZn/VPkMvYn4eOqtDlTVKohXNACSjbtXjKpmRMPEXAkkqG9vSvfcyMHB7I1y5QXM9FPPq6LX1/lW47WnMl97SRl2Y3/hlKRcUEJqZf5vcRiSwYGljKj4x8/ACOoX0HjqBW1KP2DVe5Du7B41YcuwqJmlJl6ABfVmA==
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=3QfUJLszbI9BishTllASLZuC8witncdVXux36r4o72w=;
 b=09rH7e0ajjmvAvYPAUTuthbPNTW7hG1TX34fjq2RhnZGOV43xNB/0fObEBuwXV2pii0dcZwusrY0TX7ABEzwLDOmZsl/VFlcQpjKoM6TtOhE5o4WQ7wMGVD3nbndMhMUpO/bx3cCXLuY+CZYCJ7sk/X+5PSKoMrErxhI9PGQ6OA=
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: <2b25f792-2e57-402f-8b57-d54f721e8291@amd.com>
Date: Wed, 2 Apr 2025 10:05:32 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 4/6] xen/arm: dom0less seed xenstore grant table entry
To: Stefano Stabellini <sstabellini@kernel.org>
CC: Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>, "Bertrand
 Marquis" <bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
	<xen-devel@lists.xenproject.org>
References: <20250331214321.205331-1-jason.andryuk@amd.com>
 <20250331214321.205331-5-jason.andryuk@amd.com>
 <6765d129-66dc-48d9-aaac-2b973edfda80@suse.com>
 <3d800459-7762-427e-8765-044adbb6459e@amd.com>
 <alpine.DEB.2.22.394.2504011648360.3098208@ubuntu-linux-20-04-desktop>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <alpine.DEB.2.22.394.2504011648360.3098208@ubuntu-linux-20-04-desktop>
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: CO1PEPF000042AB:EE_|SJ1PR12MB6289:EE_
X-MS-Office365-Filtering-Correlation-Id: c5e191d0-7354-41d9-2d38-08dd71ef6f21
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?WVI0SkhURElycm5NRmFBc1l0NWU2N01LV0txNnJqOWVzM0Q2VzFhYUp1K3pM?=
 =?utf-8?B?R3VOckkzUUx4YUdSN2RUTzhJSVRpcE1LdFJpTTliOGZxRml6emFVL0s0L1dO?=
 =?utf-8?B?UEVKU3VWSFVoSVpGSFNQN24vNXZZczNKeG1hbzBmYXB6YTFKRHpROGc5ZnNa?=
 =?utf-8?B?N0dNY09rSi81T3dCbE1aMnhOdmRWQU5FcGkwd0xyT2hZcldacEFncmtDajRa?=
 =?utf-8?B?blNWTG5BbDVZRkM0TDFGYTdYYzVac1phQVh0RFg5VjdqK2F5cEF2cnlFY0h5?=
 =?utf-8?B?ejE2d2VQWDhDVCszOFhZUGdtQnJsRHVaYktsYy9xdGFRMWQ2SlVSSWRtMXdO?=
 =?utf-8?B?SHBVRHJvWE9TcFdTaGRRejlKSHpWNTdqbzdvRE9uTUIwSi9NL0FjK1pKR3NO?=
 =?utf-8?B?K0hZZktVLzdTQlU0Z3BpWkNSVTZ0UmxEMmpBTDhDWnI3dlBaenRqYnhCeEVX?=
 =?utf-8?B?dkljS1FZRzNuUHhMclNvcllHRG1UeXFsZ1hMY2dsRkVpU1lnOVdSaDZWT3l4?=
 =?utf-8?B?aTBhQ0FwdGdTdU8wZmFwTkx2QlRkYWs1cE9TV3Z4aUZ1SW5HZG95QVpWSDlJ?=
 =?utf-8?B?VjVmRGlKcWJpYUp4RFZPOXpjMW5FOEFzdkQxU1lpQkZLVFNuZ1JhYzZteU5z?=
 =?utf-8?B?bzhzL1Z3ajhWUDREZW5wZHFrZko0bVQwMDZWNXlVei8zQ1hZdkRxZDc3NkJH?=
 =?utf-8?B?a2JVdHYxQVFHekhxK3BUdllyeENCUktmMGJxbFZiR29Kem42V3oySy9uNjdT?=
 =?utf-8?B?V2pmZ29NSVVMV2FXREJQK3NMNmxzRlFYZnVveDdjUEpYdE0xTzNzZVVoN29Z?=
 =?utf-8?B?bzlldEJpVForcUdIUDRwU29jajhEOUhQdUtpQmhMYitnWXJTWEhGdG1OTEpR?=
 =?utf-8?B?cENMQ3g2UXF5dk83VGZlblY0MnE1YXpqZGZDd3prenYrM3FGQ1NCTkFwMWkw?=
 =?utf-8?B?Q2xKMFF2d2w0UGo0RUd4RkdHbFNlOU9KdkdPRkI2SGdCb1NlaTA0L3ZPQXVp?=
 =?utf-8?B?WGR4VS83eU12UTRneDdjZ2R6MGZxS2grQkdZa1VjV3I3cXZSVmRZSml1aG1L?=
 =?utf-8?B?WkNKNi9xSHA4eUUxenlDZkVLUFoxZklSTHlQbVU4dmsyUitRd3JxbGtJOFZH?=
 =?utf-8?B?bndMY1krb1VCT1RIUTlweW1aNjVOQ1J6UTFESkg2WjFNODNiTno3bi83T2VN?=
 =?utf-8?B?U01vZUM1UEVxVHBiQVVMQkd4UWFweXpLSzhTSWRqUHpmNFR3clVhM0orU3Zo?=
 =?utf-8?B?eVhFRjJVbzZkb1Y4dFJ4ajZyNGpTYWY0ZzZkaEFXYnhBWmlrdTdQWWFYaGJS?=
 =?utf-8?B?THRtaTUzOGhQby9YRStNdDBabWlEcU9nb3Q5RHdOQWJDZk41ZFoxQ0c2TUFZ?=
 =?utf-8?B?SlcvOGFlNEdqUGZzMkVaYTA3cTU2SldRSkxvZytBYnZXWW1CcFhna255eFJy?=
 =?utf-8?B?TU1kallWVWRwdE02ckpDZVBDQ2g4T01KSG9yUVAwMHA5RjY1TFp4VFhZbVo2?=
 =?utf-8?B?eFhZRnZ4NytuR29uZDhqSDB4WVZSTm96SUViemFOTllCYmVEZTVhYVBUT3Fv?=
 =?utf-8?B?TVRUVkZpV1ArLzFUeGVPaU1XUnNPdDZydHJoNmtRVkk3SC9aMzhqa0w1N2Zy?=
 =?utf-8?B?WmlOYTZDejFkd3dSR1hkQmhPd25kSnd2QkZKVVlGVkJoRjV2aW5kOFdOZk5W?=
 =?utf-8?B?Qyt2bWdYSUNFTG0rZDdkTVV1bElBdW0yR1pOc3dTMk5jWFdDbnM4OThZbWQ2?=
 =?utf-8?B?QnpDYzd6ODk5aERNNG5DZWQzSTJUS20rNlU0a2hhRXNMT3ovYUd3NDcwSHJ3?=
 =?utf-8?B?NXJMOTdQQnNocUdxajQ1bFgvSkcrUWhJM1U5Y1N4RDdaTGFoTjJRT0ZuUlN1?=
 =?utf-8?B?WUxNT1o1VUZYdE9FdUFUWnZqTVdvRzhsa2dKNVU4QXROSVgzeUdidGRDNys1?=
 =?utf-8?B?bzNvMjBEaGpscThBOUVwUlJoR1VpdUVIVWFrMmpuUHJVdWdXY2VmRllRTmtO?=
 =?utf-8?Q?ubm1u7j1RQtWecDYie3xKIgrIFXDMo=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)(1800799024)(376014)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Apr 2025 14:05:33.0483
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: c5e191d0-7354-41d9-2d38-08dd71ef6f21
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:
	CO1PEPF000042AB.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ1PR12MB6289

On 2025-04-01 19:50, Stefano Stabellini wrote:
> On Tue, 1 Apr 2025, Jason Andryuk wrote:
>> On 2025-04-01 08:16, Jan Beulich wrote:
>>> On 31.03.2025 23:43, Jason Andryuk wrote:
>>
>>>> --- a/xen/arch/arm/dom0less-build.c
>>>> +++ b/xen/arch/arm/dom0less-build.c
>>>> @@ -865,6 +865,10 @@ static void __init initialize_domU_xenstore(void)
>>>>            rc = alloc_xenstore_evtchn(d);
>>>>            if ( rc < 0 )
>>>>                panic("%pd: Failed to allocate xenstore_evtchn\n", d);
>>>> +
>>>> +        if ( gfn != ~0ULL )
>>>
>>> Is this an odd open-coding of INVALID_GFN? And even if not - why ULL when
>>> "gfn" is unsigned long? The way you have it the condition will always be
>>> false on Arm32, if I'm not mistaken.
>>
>> The gfn is pulled out of the HVM_PARAMS, which is a uint64_t.  It is set like:
>>
>> d->arch.hvm.params[HVM_PARAM_STORE_PFN] = ~0ULL;
>>
>> But pulled out by:
>>
>> unsigned long gfn = d->arch.hvm.params[HVM_PARAM_STORE_PFN];
>>
>> So your comment highlights that unsigned long is incorrect for ARM32.
>>
>> While I realize fixed types are discouraged, I'd prefer to use uint64_t for
>> the replacement.  That is the type of HVM_PARAMS, and uint64_t is used on the
>> init-dom0less side as well.  Using unsigned long long to get a 64bit value on
>> ARM32 seems less clear to me.
> 
> The types that correspond to hypercall struct field types should match
> the hypercall struct field types.
> 
> I think gfn should be uint64_t to match the definition of params.
> 
> Similarly among the arguments of gnttab_seed_entry, flags should be
> uint16_t and I think frame should be uint32_t. This last one I am
> confused why you defined it as uint64_t, maybe I am missing something.

With Jan's suggestion, I am dropping flags.

Yes, frame should be uin32_t since it is filling in a grant table v1 
entry, and that is limited to 32bit frame numbers.  If the frame number 
is >32bits, then the grant can't be seeded.  I guess I'll put a check in 
the caller to ensure that.  Looking at the supported guest memory 
maximums, 32bit gfns should be enough to cover all the limits.  > 16TiB 
would be needed to exceed a 32bit frame number.

Regards,
Jason


From xen-devel-bounces@lists.xenproject.org Wed Apr 02 14:08:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 02 Apr 2025 14:08:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.935817.1337192 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzylv-0003C6-5x; Wed, 02 Apr 2025 14:08:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 935817.1337192; Wed, 02 Apr 2025 14: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 1tzylv-0003Bz-2q; Wed, 02 Apr 2025 14:08:51 +0000
Received: by outflank-mailman (input) for mailman id 935817;
 Wed, 02 Apr 2025 14:08: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=T645=WU=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tzylt-0003Br-RA
 for xen-devel@lists.xenproject.org; Wed, 02 Apr 2025 14:08:49 +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 ff4f69fb-0fcb-11f0-9ea9-5ba50f476ded;
 Wed, 02 Apr 2025 16:08:48 +0200 (CEST)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-43d0c18e84eso31681775e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 02 Apr 2025 07:08:48 -0700 (PDT)
Received: from [10.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-43eb5fcf42asm21941685e9.15.2025.04.02.07.08.47
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 02 Apr 2025 07:08: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: ff4f69fb-0fcb-11f0-9ea9-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743602928; x=1744207728; 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=l0Tf+vyRuessvExbURnykkCoocQawVoLUKda5jgwwcM=;
        b=clfvZ9Aea78gNZC0fBYmZYM/WsHY/0iGcUBCUOZMsseUNEkcAZ+TYppgamUGFstGOj
         J8xX8HXQA1TxvnIpq4j5VoZDyDdPEZpcQkYfPHEikHcIM2bKoKzwRWL2f30/T+yb0mUX
         psFgxzBGMZf+tjUTYNiqWXBokJAYw+R2+VvbLk6I8owJ5zmPrnlCW0RZUKD2C1jAG6Gy
         BJKAWm+R39v2cAuOw7HsFHI6ImALK2X7AoGH4AvSeZrX/2heOb0pMsMGhYs6+UXl82pc
         Hplhb0giWAqXBj19V6nPr5Hbt3yA9pPJoPySg4zaYmwIa02pLqYiOrKpj6pc9ly6BUXa
         Q6+g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743602928; x=1744207728;
        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=l0Tf+vyRuessvExbURnykkCoocQawVoLUKda5jgwwcM=;
        b=vx7WRTDv1CM8pcgQDSfhThzIUY9p9ZsQJ/gdYbsPbyIN4jqi4V2KzfkaMnS+bNz1pY
         4cquo5EOY67f2HNpMIqwz2JS1V1o28QOt9vgRawiDCVXXaxYYpIWE05YJdsHiI988atW
         Avo20gdT6O23+udYZdc34/U33m8hUVnYHhroZwZYASVocIUmsc6W07gbLoC8heiLBqRM
         dDU/M1dSVzGyp/F8/HV11lWUCti/KF4IfQ4Mq73yPnKclDe4c0YSCBVlthmAcPl/NoFB
         dMnwh7+mFieXZAigsmRsQEGq08vnLJhI/4WbuuSL0eqKZFOV5ZurVBdxWqChuw/pUPzE
         9QTw==
X-Gm-Message-State: AOJu0YxsvdJwbMmSHFakwh+oV0b0RLqLnO08gMjQv2rhzNM8VatS0NJO
	XQfPm8Pjjt5xLmN6N/lQKmtgLDCd3JpERuXCdg4Rc7NJ7UhTuI+6Jkw7d2pqdgXuQ0qZKyoN7R0
	=
X-Gm-Gg: ASbGnct9wMAUKczfvlrC5SPBYncfJbiQBFHiZe+Ol4kf4iwdMjrUztBbuk5fRk1JBru
	KcINPuDqLsDmSnw6iv3MSLEyoac1/OmENEND29b8f/DjSOJYkLDtDmVyr2d5P5TS9TtX5K4q9O4
	dOdBHBugM735cqiboONTMBQZC/13OOTW1sVFiltAFTUZMgmaboNtjgAnzGIlTQ50hStHyz60qbs
	nS3LIP24FCMZbbL37iP3nT53YLk+DP5BdezDYNunnO6vJALkdnk2kU7osGGecN/rXfu3NRUGqUQ
	VU4jZ5TBjnHprIPEYlC/Ir/5/ZinYJ1DD07YHX3ZEWp405lRgcc1xYUB4sDP1KY9u1clc1UKL7/
	caG1b3cKN624S6EQgQXushB6cTh0RYw==
X-Google-Smtp-Source: AGHT+IHXrBIEdAz8Ufpjv2r4Z3PDNfUacDh+ULRDT8MD61NisaNchvS87gpgKN+Lh8Fvp60ZrQxutg==
X-Received: by 2002:a05:600c:1e1f:b0:43c:fc04:6d48 with SMTP id 5b1f17b1804b1-43dabe18000mr201059325e9.0.1743602928254;
        Wed, 02 Apr 2025 07:08:48 -0700 (PDT)
Message-ID: <b42aa0a9-c622-4fc9-83d9-a14811169e6d@suse.com>
Date: Wed, 2 Apr 2025 16:08:46 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 3/5] symbols: arrange to know where functions end
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <ceef1876-8759-465c-9a74-309b6b92f773@suse.com>
 <10e116c5-5a62-4abc-a52a-e2ca12118cfe@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: <10e116c5-5a62-4abc-a52a-e2ca12118cfe@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 02.04.2025 15:58, Jan Beulich wrote:
> When determining the symbol for a given address (e.g. for the %pS
> logging format specifier), so far the size of a symbol (function) was
> assumed to be everything until the next symbol. There may be gaps
> though, which would better be recognizable in output (often suggesting
> something odd is going on).
> 
> Insert "fake" end symbols in the address table, accompanied by zero-
> length type/name entries (to keep lookup reasonably close to how it
> was).
> 
> Note however that this, with present GNU binutils, won't work for
> xen.efi: The linker loses function sizes (they're not part of a normal
> symbol table entry), and hence nm has no way of reporting them.

And, just for reference:
https://sourceware.org/pipermail/binutils/2025-March/140252.html

Jan


From xen-devel-bounces@lists.xenproject.org Wed Apr 02 14:19:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 02 Apr 2025 14:19:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.935833.1337202 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzywZ-0006SH-4Z; Wed, 02 Apr 2025 14:19:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 935833.1337202; Wed, 02 Apr 2025 14:19: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 1tzywZ-0006SA-21; Wed, 02 Apr 2025 14:19:51 +0000
Received: by outflank-mailman (input) for mailman id 935833;
 Wed, 02 Apr 2025 14:19: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=T645=WU=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1tzywY-0006S4-2g
 for xen-devel@lists.xenproject.org; Wed, 02 Apr 2025 14:19:50 +0000
Received: from mail-wm1-x336.google.com (mail-wm1-x336.google.com
 [2a00:1450:4864:20::336])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 86dfcb21-0fcd-11f0-9ffb-bf95429c2676;
 Wed, 02 Apr 2025 16:19:45 +0200 (CEST)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-43d2d952eb1so47909855e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 02 Apr 2025 07:19:45 -0700 (PDT)
Received: from [10.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-43eb60d3627sm22259175e9.24.2025.04.02.07.19.44
 for <xen-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 02 Apr 2025 07:19:44 -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: 86dfcb21-0fcd-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743603585; x=1744208385; 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=wPL6ydlD5nnltGYjVB1l8J+yUg9LEsB7Y0op5fiX6XI=;
        b=ciSW/YQDqWneSnxq0lyKVP+HbI8W92Z+z4QdArQT5yyM1886VqWlOeKO6gfejRNeSW
         xzA2cxQLp4CYIUpx0z2oWrYKRZKmnZLf7U/otD3qelY2Xwzf7RypWeFYMdFgFxFwOB07
         S1JIAk+PuwWoqn1Q1Yr81gBB7NJ/XQv7Ffgoqc2FmGFGagCJX/2T7MObIZa1KsQZ6LEc
         3N85Vnoi9r4Vbu2Zq6CU5LHSWHLltzfzQVx8CYxUzxa0FTQ7c9N/jE+gNkZmcMGd7fFs
         Uwye3W9fhRTFW+vKPHLoY4q8IPmKfGaLAfJsuMO6qGih9Bs9x0VtUa5HHqC90ceVUa1Y
         aOsw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743603585; x=1744208385;
        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=wPL6ydlD5nnltGYjVB1l8J+yUg9LEsB7Y0op5fiX6XI=;
        b=YDcH6zb8FOJFusAQnIW9cUJMvlAyLOexz+zVaFLWvMfF/693IHHWOEZhpGtBNebEG9
         uXI+PbFD2DDup255gRYIcIucWLxsfvp1stcvlGX29boh5WjyseNUYILjR/MHABYPX8Dd
         Os4GWXqHP++inJKWDnifRFUFHy33bRcAKBXPKPzCvOAtjEKE0s4C1c94eCCrMDPPrGyd
         tDYRjcccVjd5ShytZLb5Db63kKJP0Dh4cTv36LU8w1T3Ue4E2ptHMbIFguE0TifiDRjE
         pa4g4jSPbGIN3Dmr5ck4mfzCOCJV9kapeVM88xef9WNCXhohl1t2rjM9rK8D/RWhPcVP
         uBQg==
X-Gm-Message-State: AOJu0YxmSlE+6FYl66MNFqUal/YlBEthftzdfkIsElw6IFHGxkW52eYo
	p6WPsAwMHCZqQ2vBc9rItaiamX7hUEU7lKV1umwDgGrkETlazbKfqGi0BUe1z2zw/N5S2T6MfuA
	=
X-Gm-Gg: ASbGnctYUXDnAoj3kZxFTwTV27KFUDHiY7YaFSkU+iqUlWpPeKyFVMgP99V6HXyZwP4
	qLvRkejncodTF9y1z2A40EeqlDcorexH43C1cOKnvxfBbeTmNrdLUvQSUkTQ2hQQKbb4FgyY95w
	WErp9NlQ38yEolwiADL4QYCrwVCbojs0gOivmRrTo9YVPVvRmqYAqxtESnkJEtFQSPOJe0x6yeY
	EQLYyxJ4cDw0URfm2JN2VEBInG0mB9huFwWf7rwrkDR3A2JmMVPcchSphMgeCo8f3vc0ksPlKXL
	LGkIvPOWCblDem4OO3eDNgeoTD7VbuIIwyCydhW4ASR1qq2h+tYNOSSPxDq2XhH6wL1B6jcaxGW
	IE0kx8ZF+4vfpNSPkaUPYXc21oEC1yw==
X-Google-Smtp-Source: AGHT+IG088zWw2+yQN39YM6SOBc6PDqd2m3VsLWAxwfiEvvCfV4xMF6LdxKtK1J3qlhbREQbNPb8SQ==
X-Received: by 2002:a05:600c:4514:b0:43d:209:21fd with SMTP id 5b1f17b1804b1-43eb5c96d6emr24967195e9.30.1743603584986;
        Wed, 02 Apr 2025 07:19:44 -0700 (PDT)
Message-ID: <e9e139fb-c023-460d-9d84-632a5ca4374c@suse.com>
Date: Wed, 2 Apr 2025 16:19:43 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: New Defects reported by Coverity Scan for XenProject
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <67ed34047fd3c_1209992cc92a0f99a0989e0@prd-scan-dashboard-0.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: <67ed34047fd3c_1209992cc92a0f99a0989e0@prd-scan-dashboard-0.mail>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 02.04.2025 14:56, scan-admin@coverity.com wrote:
> ** CID 1645573:  Null pointer dereferences  (FORWARD_NULL)
> 
> 
> ________________________________________________________________________________________________________
> *** CID 1645573:  Null pointer dereferences  (FORWARD_NULL)
> /xen/arch/x86/mm/p2m.c: 346 in get_page_from_mfn_and_type()
> 340     
> 341         if ( p2m_is_ram(t) )
> 342         {
> 343             if ( p2m_is_shared(t) )
> 344                 d = dom_cow;
> 345     
>>>>     CID 1645573:  Null pointer dereferences  (FORWARD_NULL)
>>>>     Passing null pointer "d" to "get_page", which dereferences it.
> 346             if ( get_page(page, d) )
> 347                 return page;
> 348         }

I wonder how the tool concludes d is NULL. The only vague guess I could come
up with is that it checks a MEM_SHARING=n build, where dom_cow is always
NULL. Yet in such a build p2m_shared() is also always false. Should we perhaps
help it by forcing P2M_SHARED_TYPES (maybe also P2M_SHARABLE_TYPES) to 0 when
MEM_SHARING=n? We do such already for MEM_PAGING=n ...

Jan


From xen-devel-bounces@lists.xenproject.org Wed Apr 02 14:23:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 02 Apr 2025 14:23:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.935845.1337213 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzyzj-0001CR-ID; Wed, 02 Apr 2025 14:23:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 935845.1337213; Wed, 02 Apr 2025 14: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 1tzyzj-0001CK-FK; Wed, 02 Apr 2025 14:23:07 +0000
Received: by outflank-mailman (input) for mailman id 935845;
 Wed, 02 Apr 2025 14:23: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=L/lH=WU=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1tzyzh-0001CE-Uz
 for xen-devel@lists.xenproject.org; Wed, 02 Apr 2025 14:23:06 +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 fd905ae7-0fcd-11f0-9ea9-5ba50f476ded;
 Wed, 02 Apr 2025 16:23:04 +0200 (CEST)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-43cf680d351so5388555e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 02 Apr 2025 07:23:04 -0700 (PDT)
Received: from ?IPV6:2003:e5:873d:1a00:8e99:ce06:aa4a:2e7b?
 (p200300e5873d1a008e99ce06aa4a2e7b.dip0.t-ipconnect.de.
 [2003:e5:873d:1a00:8e99:ce06:aa4a:2e7b])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39c0b663860sm17333761f8f.39.2025.04.02.07.23.03
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 02 Apr 2025 07:23: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: fd905ae7-0fcd-11f0-9ea9-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743603784; x=1744208584; 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=dW6W4xGMXyVIKCYqBbFC7vgU2Q+nMeROqdsrhUXv5kw=;
        b=Dddv5CeQa99gpRzps7wE+H5vqnAzhyNvhyo4XbYAKoJCEv3oije3gORgWDYEmoXY3m
         gnOkyascOFDSzoT06uLjhEplQTzTY0jcTXi8mBXfNNR/ydoqcKYYKDlkrfAHU//7nfou
         7hIF1vNrinFkHt9qBvB4y8pY/AShWLeUyCEtg7mWb0Gt+htvyRYp1aQsHgLwatLypHvx
         tWwCMWor3K3DrPeBZkeG3VWZb7vmJZwObRhY6yiMOAH9VL8+8Y66vEzvkivK1do4xn+b
         pqKtMKHLyG6TQ31w9/vVDtpS8W064C/N8/RVMEM1s5lLojzX6Mxjg0/o6YnNZYNN1Iak
         Rd5Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743603784; x=1744208584;
        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=dW6W4xGMXyVIKCYqBbFC7vgU2Q+nMeROqdsrhUXv5kw=;
        b=RLb7cL5OH388ERhyTmvXbonnZEZrm5DZcPV/tOoxXqV8alqVYgOwnpdZX5P3W7GQJ2
         Gj22w/ZCjYHE1oWcmS73ym1m3pqUu851FGoQWyAR2pX5BbHjRGCLcJlsdKLBcLvJ1fVY
         ynfjFD9wuMesnpXTY0SYAIllLNSvxTlHyijB6b9r02kHB/xRMR9J7jSTSS2Bt+D1QBMR
         6tO2s7/ys9jPkKZA2ofVB1r+28hthjF3Ygo5ti8CELGUqI5TxHaMBmKAsVIdmJfDA6D0
         0eSWNkB8miP6EbDjQSoEdAqDtEoRG3CKobZK7bIEc/Uoc3JYs1oDppd/PajhafwN7M3Z
         vgrQ==
X-Forwarded-Encrypted: i=1; AJvYcCUsNOC0O2Ez/W+2CRKJ0ACl7AtCTYCtQ19Z6v5IgJFzuZz5Bk7EjFJPGhFzpH6kwtaGNnb3UbVCdF4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwUK6LR1z3KBv5SWk+UgZPQj2r431ZyHHRzBs/oKEcDEjHPL2/g
	O2YbgP5J0r7EhOTVNrPUJsrfZ3Gcm/U+nYVXBt9rc8vqvEJ1i76IJzhGiHGyVZs=
X-Gm-Gg: ASbGncs5PzKNbK3cLI+Efsugvep+iGhbW2NgDo8ocl5zowIAF3BqS0Y6tUbSLv9cFPR
	YdTmaseX/AltaTdzE4olwQclm+9/ufHoJH4BJYXCbOkhIkykMXllwP7zeRv8yOsQ2WoErNnAnKW
	tcaoiDA952GSZ4qokitDVzti5TrqpklZDO9jfz3BVZ2+R2pH3xZ1M81GVckLwDpGvJ2SKlNwfuq
	jtNHEtPh3A2WaNG3eAWgA9Dx3JBElUV7XXjbro99VQDU7LH9zzMPYCsSGYK5WZRCtKXwjVlOtvY
	U747jDvhEF9zoJe6cFqLgy3vsZp4838u0cQDoYfbT+T0k5NVyIRjIoRCP/CwQ575lv/Ub4Fx/dD
	XkE3kNtsIBV5EsQ/VZO3LilqkDf4iHbfoi4p8CVLg7qg1rIX8yQtgkxHv8YdgtCL/4Nb84w==
X-Google-Smtp-Source: AGHT+IETRZED7ZsQcGAcMp9McU6wrB6K3PBTPKwBl2p+/70kIocYRQJYvHoGosm7XLXPjnWdSDvs6Q==
X-Received: by 2002:a05:600c:a015:b0:43d:fa5f:7d30 with SMTP id 5b1f17b1804b1-43eb71e27bdmr25530615e9.16.1743603784169;
        Wed, 02 Apr 2025 07:23:04 -0700 (PDT)
Message-ID: <05974e77-ae3c-4e62-a2c2-c764ab4a6d48@suse.com>
Date: Wed, 2 Apr 2025 16:23:02 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/xen: fix balloon target initialization for PVH dom0
To: Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org,
 linux-kernel@vger.kernel.org
Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
References: <20250402113656.84673-1-roger.pau@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: <20250402113656.84673-1-roger.pau@citrix.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------JxCZvdLcOPVULmrk5v0xs8hy"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------JxCZvdLcOPVULmrk5v0xs8hy
Content-Type: multipart/mixed; boundary="------------4IlyO0e06YQKSOcYRDsspWPU";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org,
 linux-kernel@vger.kernel.org
Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Message-ID: <05974e77-ae3c-4e62-a2c2-c764ab4a6d48@suse.com>
Subject: Re: [PATCH] x86/xen: fix balloon target initialization for PVH dom0
References: <20250402113656.84673-1-roger.pau@citrix.com>
In-Reply-To: <20250402113656.84673-1-roger.pau@citrix.com>

--------------4IlyO0e06YQKSOcYRDsspWPU
Content-Type: multipart/mixed; boundary="------------8SKrxIyjysNDcLV0IxPx3de1"

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

T24gMDIuMDQuMjUgMTM6MzYsIFJvZ2VyIFBhdSBNb25uZSB3cm90ZToNCj4gUFZIIGRvbTAg
cmUtdXNlcyBsb2dpYyBmcm9tIFBWIGRvbTAsIGluIHdoaWNoIFJBTSByYW5nZXMgbm90IGFz
c2lnbmVkIHRvDQo+IGRvbTAgYXJlIHJlLXVzZWQgYXMgc2NyYXRjaCBtZW1vcnkgdG8gbWFw
IGZvcmVpZ24gYW5kIGdyYW50IHBhZ2VzLiAgU3VjaA0KPiBsb2dpYyByZWxpZXMgb24gcmVw
b3J0aW5nIHRob3NlIHVucG9wdWxhdGVkIHJhbmdlcyBhcyBSQU0gdG8gTGludXgsIGFuZA0K
PiBtYXJrIHRoZW0gYXMgcmVzZXJ2ZWQuICBUaGlzIHdheSBMaW51eCBjcmVhdGVzIHRoZSB1
bmRlcmx5aW5nIHBhZ2UNCj4gc3RydWN0dXJlcyByZXF1aXJlZCBmb3IgbWV0YWRhdGEgbWFu
YWdlbWVudC4NCj4gDQo+IFN1Y2ggYXBwcm9hY2ggd29ya3MgZmluZSBvbiBQViBiZWNhdXNl
IHRoZSBpbml0aWFsIGJhbGxvb24gdGFyZ2V0IGlzDQo+IGNhbGN1bGF0ZWQgdXNpbmcgc3Bl
Y2lmaWMgWGVuIGRhdGEsIHRoYXQgZG9lc24ndCB0YWtlIGludG8gYWNjb3VudCB0aGUNCj4g
bWVtb3J5IHR5cGUgY2hhbmdlcyBkZXNjcmliZWQgYWJvdmUuICBIb3dldmVyIG9uIEhWTSBh
bmQgUFZIIHRoZSBpbml0aWFsDQo+IGJhbGxvb24gdGFyZ2V0IGlzIGNhbGN1bGF0ZWQgdXNp
bmcgZ2V0X251bV9waHlzcGFnZXMoKSwgYW5kIHRoYXQgZnVuY3Rpb24NCj4gZG9lcyB0YWtl
IGludG8gYWNjb3VudCB0aGUgdW5wb3B1bGF0ZWQgUkFNIHJlZ2lvbnMgdXNlZCBhcyBzY3Jh
dGNoIHNwYWNlDQo+IGZvciByZW1vdGUgZG9tYWluIG1hcHBpbmdzLg0KPiANCj4gVGhpcyBs
ZWFkcyB0byBQVkggZG9tMCBoYXZpbmcgYW4gaW5jb3JyZWN0IGluaXRpYWwgYmFsbG9vbiB0
YXJnZXQsIHdoaWNoDQo+IGNhdXNlcyBtYWxmdW5jdGlvbiAoZXhjZXNzaXZlIG1lbW9yeSBm
cmVlaW5nKSBvZiB0aGUgYmFsbG9vbiBkcml2ZXIgaWYgdGhlDQo+IGRvbTAgbWVtb3J5IHRh
cmdldCBpcyBsYXRlciBhZGp1c3RlZCBmcm9tIHRoZSB0b29sc3RhY2suDQo+IA0KPiBGaXgg
dGhpcyBieSB1c2luZyB4ZW5fcmVsZWFzZWRfcGFnZXMgdG8gYWNjb3VudCBmb3IgYW55IHBh
Z2VzIHRoYXQgYXJlIHBhcnQNCj4gb2YgdGhlIG1lbW9yeSBtYXAsIGJ1dCBhcmUgYWxyZWFk
eSB1bnBvcHVsYXRlZCB3aGVuIHRoZSBiYWxsb29uIGRyaXZlciBpcw0KPiBpbml0aWFsaXpl
ZC4gIFRoaXMgYWNjb3VudHMgZm9yIGFueSByZWdpb25zIHVzZWQgZm9yIHNjcmF0Y2ggcmVt
b3RlDQo+IG1hcHBpbmdzLg0KPiANCj4gVGFrZSB0aGUgb3Bwb3J0dW5pdHkgdG8gdW5pZnkg
UFYgd2l0aCBQVkgvSFZNIGd1ZXN0cyByZWdhcmRpbmcgdGhlIHVzYWdlIG9mDQo+IGdldF9u
dW1fcGh5c3BhZ2VzKCksIGFzIHRoYXQgYXZvaWRzIGhhdmluZyB0byBhZGQgZGlmZmVyZW50
IGxvZ2ljIGZvciBQViB2cw0KPiBQVkggaW4gYm90aCBiYWxsb29uX2FkZF9yZWdpb25zKCkg
YW5kIGFyY2hfeGVuX3VucG9wdWxhdGVkX2luaXQoKS4NCj4gDQo+IE11Y2ggbGlrZSBhNmFh
NGViOTk0ZWUsIHRoZSBjb2RlIGluIHRoaXMgY2hhbmdlc2V0IHNob3VsZCBoYXZlIGJlZW4g
cGFydCBvZg0KPiAzODYyMGZjNGU4OTMuDQo+IA0KPiBGaXhlczogYTZhYTRlYjk5NGVlICgn
eGVuL3g4NjogYWRkIGV4dHJhIHBhZ2VzIHRvIHVucG9wdWxhdGVkLWFsbG9jIGlmIGF2YWls
YWJsZScpDQo+IFNpZ25lZC1vZmYtYnk6IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBj
aXRyaXguY29tPg0KPiAtLS0NCj4gSSB0aGluayBpdCdzIGVhc2llciB0byB1bmlmeSB0aGUg
UFYgYW5kIFBWSC9IVk0gcGF0aHMgaGVyZSByZWdhcmRpbmcgdGhlDQo+IHVzYWdlIG9mIGdl
dF9udW1fcGh5c3BhZ2VzKCksIGFzIG90aGVyd2lzZSB0aGUgZml4IG5lZWRzIHRvIGFkZCBm
dXJ0aGVyIFBWDQo+IHZzIEhWTSBkaXZlcmdlbmNlcyBpbiBib3RoIGJhbGxvb25fYWRkX3Jl
Z2lvbnMoKSBhbmQNCj4gYXJjaF94ZW5fdW5wb3B1bGF0ZWRfaW5pdCgpLCBidXQgaXQgYWxz
byBoYXMgYSBoaWdoZXIgcmlzayBvZiBicmVha2luZyBQVg0KPiBpbiBzdWJ0bGUgd2F5cy4N
Cj4gLS0tDQo+ICAgYXJjaC94ODYveGVuL2VubGlnaHRlbi5jIHwgIDcgKysrKysrKw0KPiAg
IGRyaXZlcnMveGVuL2JhbGxvb24uYyAgICB8IDE5ICsrKysrKysrKysrLS0tLS0tLS0NCj4g
ICAyIGZpbGVzIGNoYW5nZWQsIDE4IGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pDQo+
IA0KPiBkaWZmIC0tZ2l0IGEvYXJjaC94ODYveGVuL2VubGlnaHRlbi5jIGIvYXJjaC94ODYv
eGVuL2VubGlnaHRlbi5jDQo+IGluZGV4IDQzZGNkOGM3YmFkYy4uNjUxYmIyMDY0MzRjIDEw
MDY0NA0KPiAtLS0gYS9hcmNoL3g4Ni94ZW4vZW5saWdodGVuLmMNCj4gKysrIGIvYXJjaC94
ODYveGVuL2VubGlnaHRlbi5jDQo+IEBAIC00NjYsNiArNDY2LDEzIEBAIGludCBfX2luaXQg
YXJjaF94ZW5fdW5wb3B1bGF0ZWRfaW5pdChzdHJ1Y3QgcmVzb3VyY2UgKipyZXMpDQo+ICAg
CQkJeGVuX2ZyZWVfdW5wb3B1bGF0ZWRfcGFnZXMoMSwgJnBnKTsNCj4gICAJCX0NCj4gICAN
Cj4gKwkJLyoNCj4gKwkJICogQWNjb3VudCBmb3IgdGhlIHJlZ2lvbiBiZWluZyBpbiB0aGUg
cGh5c21hcCBidXQgdW5wb3B1bGF0ZWQuDQo+ICsJCSAqIFRoZSB2YWx1ZSBpbiB4ZW5fcmVs
ZWFzZWRfcGFnZXMgaXMgdXNlZCBieSB0aGUgYmFsbG9vbg0KPiArCQkgKiBkcml2ZXIgdG8g
a25vdyBob3cgbXVjaCBvZiB0aGUgcGh5c21hcCBpcyB1bnBvcHVsYXRlZCBhbmQNCj4gKwkJ
ICogc2V0IGFuIGFjY3VyYXRlIGluaXRpYWwgbWVtb3J5IHRhcmdldC4NCj4gKwkJICovDQo+
ICsJCXhlbl9yZWxlYXNlZF9wYWdlcyArPSB4ZW5fZXh0cmFfbWVtW2ldLm5fcGZuczsNCj4g
ICAJCS8qIFplcm8gc28gcmVnaW9uIGlzIG5vdCBhbHNvIGFkZGVkIHRvIHRoZSBiYWxsb29u
IGRyaXZlci4gKi8NCj4gICAJCXhlbl9leHRyYV9tZW1baV0ubl9wZm5zID0gMDsNCj4gICAJ
fQ0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy94ZW4vYmFsbG9vbi5jIGIvZHJpdmVycy94ZW4v
YmFsbG9vbi5jDQo+IGluZGV4IDE2M2Y3ZjFkNzBmMS4uMDg1ZDQxOGVlNmRhIDEwMDY0NA0K
PiAtLS0gYS9kcml2ZXJzL3hlbi9iYWxsb29uLmMNCj4gKysrIGIvZHJpdmVycy94ZW4vYmFs
bG9vbi5jDQo+IEBAIC02OTgsNyArNjk4LDE1IEBAIHN0YXRpYyB2b2lkIF9faW5pdCBiYWxs
b29uX2FkZF9yZWdpb25zKHZvaWQpDQo+ICAgCQlmb3IgKHBmbiA9IHN0YXJ0X3BmbjsgcGZu
IDwgZXh0cmFfcGZuX2VuZDsgcGZuKyspDQo+ICAgCQkJYmFsbG9vbl9hcHBlbmQocGZuX3Rv
X3BhZ2UocGZuKSk7DQo+ICAgDQo+IC0JCWJhbGxvb25fc3RhdHMudG90YWxfcGFnZXMgKz0g
ZXh0cmFfcGZuX2VuZCAtIHN0YXJ0X3BmbjsNCj4gKwkJLyoNCj4gKwkJICogRXh0cmEgcmVn
aW9ucyBhcmUgYWNjb3VudGVkIGZvciBpbiB0aGUgcGh5c21hcCwgYnV0IG5lZWQNCj4gKwkJ
ICogZGVjcmVhc2luZyBmcm9tIGN1cnJlbnRfcGFnZXMgdG8gYmFsbG9vbiBkb3duIHRoZSBp
bml0aWFsDQo+ICsJCSAqIGFsbG9jYXRpb24sIGJlY2F1c2UgdGhleSBhcmUgYWxyZWFkeSBh
Y2NvdW50ZWQgZm9yIGluDQo+ICsJCSAqIHRvdGFsX3BhZ2VzLg0KPiArCQkgKi8NCj4gKwkJ
QlVHX09OKGV4dHJhX3Bmbl9lbmQgLSBzdGFydF9wZm4gPj0NCj4gKwkJICAgICAgIGJhbGxv
b25fc3RhdHMuY3VycmVudF9wYWdlcyk7DQoNCk1heWJlIGluc3RlYWQgb2YgY3Jhc2hpbmcg
dGhlIHN5c3RlbSBkaXNhYmxlIGJhbGxvb25pbmcgYW5kIHByaW50IHNvbWUNCmRpYWdub3N0
aWNzIHdoeSB0aGlzIGhhcHBlbmVkPw0KDQo+ICsJCWJhbGxvb25fc3RhdHMuY3VycmVudF9w
YWdlcyAtPSBleHRyYV9wZm5fZW5kIC0gc3RhcnRfcGZuOw0KPiAgIAl9DQo+ICAgfQ0KPiAg
IA0KPiBAQCAtNzExLDEzICs3MTksOCBAQCBzdGF0aWMgaW50IF9faW5pdCBiYWxsb29uX2lu
aXQodm9pZCkNCj4gICANCj4gICAJcHJfaW5mbygiSW5pdGlhbGlzaW5nIGJhbGxvb24gZHJp
dmVyXG4iKTsNCj4gICANCj4gLSNpZmRlZiBDT05GSUdfWEVOX1BWDQo+IC0JYmFsbG9vbl9z
dGF0cy5jdXJyZW50X3BhZ2VzID0geGVuX3B2X2RvbWFpbigpDQo+IC0JCT8gbWluKHhlbl9z
dGFydF9pbmZvLT5ucl9wYWdlcyAtIHhlbl9yZWxlYXNlZF9wYWdlcywgbWF4X3BmbikNCj4g
LQkJOiBnZXRfbnVtX3BoeXNwYWdlcygpOw0KPiAtI2Vsc2UNCj4gLQliYWxsb29uX3N0YXRz
LmN1cnJlbnRfcGFnZXMgPSBnZXRfbnVtX3BoeXNwYWdlcygpOw0KPiAtI2VuZGlmDQo+ICsJ
QlVHX09OKHhlbl9yZWxlYXNlZF9wYWdlcyA+PSBnZXRfbnVtX3BoeXNwYWdlcygpKTsNCg0K
QWdhaW4sIEknZCByYXRoZXIganVzdCBkaXNhYmxlIGJhbGxvb25pbmcgaW5zdGVhZCBvZiBj
cmFzaGluZyB0aGUgc3lzdGVtLg0KDQo+ICsJYmFsbG9vbl9zdGF0cy5jdXJyZW50X3BhZ2Vz
ID0gZ2V0X251bV9waHlzcGFnZXMoKSAtIHhlbl9yZWxlYXNlZF9wYWdlczsNCj4gICAJYmFs
bG9vbl9zdGF0cy50YXJnZXRfcGFnZXMgID0gYmFsbG9vbl9zdGF0cy5jdXJyZW50X3BhZ2Vz
Ow0KPiAgIAliYWxsb29uX3N0YXRzLmJhbGxvb25fbG93ICAgPSAwOw0KPiAgIAliYWxsb29u
X3N0YXRzLmJhbGxvb25faGlnaCAgPSAwOw0KDQpPdGhlciB0aGFuIHRoYXQgSSB0aGluayB5
b3VyIGFwcHJvYWNoIGlzIGZpbmUuDQoNCg0KSnVlcmdlbg0K
--------------8SKrxIyjysNDcLV0IxPx3de1
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-----

--------------8SKrxIyjysNDcLV0IxPx3de1--

--------------4IlyO0e06YQKSOcYRDsspWPU--

--------------JxCZvdLcOPVULmrk5v0xs8hy
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/Ey8FAmftSEYFAwAAAAAACgkQsN6d1ii/Ey+o
5Qf+KcPF8TuM128KjfFQnF1BCTBTGbvfsfJbHffFpOOtQxgVH93Pye6UqsguLgkuLJM5ghI3hqAT
wYPOPuoebSHZ4TnWgPYeitN4oeOIEhUnRWNTI5rqRqIrixbBZUt1S9aogqsIC1E1cDtlbqUr+jzw
ZVCFKVgRdeixz/oHSvY82SusbA3qLdyrxg1/ICb2CBIAUUrnLYJBsg+zN0VD7bueVRXj5EZpRJJA
ybcYUuheu2xT50JCFMg5mGBGMU1DJozDvolrXaEvaFV4+1IJry0kZSXyGSsfLnsq/jjh/wjqcbLU
1Fki5QCAuKVnXzKHufViw5TxglwBigrG7rZIpz83qA==
=2OzK
-----END PGP SIGNATURE-----

--------------JxCZvdLcOPVULmrk5v0xs8hy--


From xen-devel-bounces@lists.xenproject.org Wed Apr 02 14:24:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 02 Apr 2025 14:24:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.935858.1337222 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzz17-0001m2-UK; Wed, 02 Apr 2025 14:24:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 935858.1337222; Wed, 02 Apr 2025 14:24: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 1tzz17-0001lv-Ri; Wed, 02 Apr 2025 14:24:33 +0000
Received: by outflank-mailman (input) for mailman id 935858;
 Wed, 02 Apr 2025 14:24: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=L/lH=WU=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1tzz16-0001CE-DS
 for xen-devel@lists.xenproject.org; Wed, 02 Apr 2025 14:24:32 +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 316fa96b-0fce-11f0-9ea9-5ba50f476ded;
 Wed, 02 Apr 2025 16:24:31 +0200 (CEST)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-43cfb6e9031so61236525e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 02 Apr 2025 07:24:31 -0700 (PDT)
Received: from ?IPV6:2003:e5:873d:1a00:8e99:ce06:aa4a:2e7b?
 (p200300e5873d1a008e99ce06aa4a2e7b.dip0.t-ipconnect.de.
 [2003:e5:873d:1a00:8e99:ce06:aa4a:2e7b])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43eb613a283sm22291795e9.37.2025.04.02.07.24.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 02 Apr 2025 07:24:31 -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: 316fa96b-0fce-11f0-9ea9-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743603871; x=1744208671; 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=iJzineMrgwmkQWOI4wS34a3mCsqCX+XEhj/GY/k54Ew=;
        b=XbpeTB2xsq1UkXjkzRAwHk/v5HzyVdZLS5kKCLsNKdvZzsqgR2meDoLBmAPfzqciZJ
         n/LJxexyaxSd7LWzS1LyoOGU2Tn3gzbrgvPc7tKY8B5O/Fcr+nCMMzO5pdUMO4f83FUP
         DC5ll/BVjbB+Mu0/89hXdLcttePzjxVnjGyMdj4xggv/SC8Ren8F58Tg3RcOCwZNxLSm
         hWQca/THWV3qqjViNldKhGcgvIRdcdkDjh1mXqdjE5l8xabZZ5ji8HzLTeMXg6JV99Hm
         +lgaL6ZXWAxc/7iLHgf5HMAmi8Q5inbKXyYCFQmU5Fm7actshbrD40KGAA0kidBc4+sf
         vzHg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743603871; x=1744208671;
        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=iJzineMrgwmkQWOI4wS34a3mCsqCX+XEhj/GY/k54Ew=;
        b=wvdoUA01mRdXJwl1Fxw+4fCDvFIZA/Ir+2EK3oLy+4dmlXGraSpPgDqSmAvbaqJ3Tu
         E9JnfTVTvVpDz9FUxW5Jtu6ZcfMDTElZEBYqzlA1X3yYKY7Ey/4KKPhqrsH5RU5yylyn
         REoeVaMMmHIecLMVFQW+TsTDoChfaVtpmMrDOjd4m0P9RjpnHQmzulTUP587SYEz0et0
         sOKaa0b7lerAacKtw1Ny9cFkV4bPJErNqfW8YWILUAU6iruQW0hpYC63uf9omCoXBOnC
         5SkVlkG4dtY2TC+evThh04367cl9XxTrWFhc8jYuysOPzSSzaVpKvse5wzt8Bnq7RhRS
         xk1Q==
X-Forwarded-Encrypted: i=1; AJvYcCXzOunXZ4DazNx02AmuReXxL92cLa8t3fz9dKsivIlKol49vyGXX0LsO3eUYpzKt+ET1dBy/kTcPJI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxgbsQKbIMFZHJ9gg/M5r2pXawJ51SS+av8Kf0c0Eoo7JObgq0t
	K9zvQqD0mkToTDVdyw0inNs6Y/hQjbIpmQffFNV2LGJVPg1MpvmrDfQyyN9j8k4=
X-Gm-Gg: ASbGncu9tWT7esl6b4F32bwaxH/0kbO4i83icIG8/OnTEQLWr27MePWROTf5cny+Iue
	nXwuFfsKHSoI3tqah/nrgXOmgBudPd+IKSxQciM9SCoqAujB4AHNlym7ARUWXqo3LDpRmwTl9zL
	K43zjmJKXrgefesa0+NmcMrqqTeEh0rtL9WgqWrWUNPQSeHn+kQr5wylBO8GciqMOk3MB1oq1Se
	+bBHwZDK4eRzw24zMZZAjJcuLFHaswSRwlcOJ/YEYgR5O0rfOh7y+iTeO8PkH6nwjpXB1c1eS+G
	6xD2lVw6Qp5K1MASQ4WLYAQCmy+yMOA2KVscO8E5XxmwtEsDlprF/XAdRDTTJYOA73S6PLfR0pl
	Cgh24iEGbaqAyD5JpajfIyRjL/evTkfh+gmDpCrtQE19FfotjcRQmbfC15PdZrFW9M2bCV8rnTD
	nFjV1v
X-Google-Smtp-Source: AGHT+IGtPGezyCWJtX6IVYSkPaMY2YGHUv364L5zBXLlo5aESABGFxd8SNox1SCTQJZY3CEj07y/6Q==
X-Received: by 2002:a05:6000:4021:b0:390:d73a:4848 with SMTP id ffacd0b85a97d-39c1211ddd9mr13452019f8f.47.1743603871312;
        Wed, 02 Apr 2025 07:24:31 -0700 (PDT)
Message-ID: <a6977caf-ce0e-4002-8df5-26cb0bdc88d7@suse.com>
Date: Wed, 2 Apr 2025 16:24:30 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen: Change xen-acpi-processor dom0 dependency
To: Jason Andryuk <jason.andryuk@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Cc: Penny Zheng <penny.zheng@amd.com>, Jan Beulich <jbeulich@suse.com>,
 xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org
References: <20250331172913.51240-1-jason.andryuk@amd.com>
Content-Language: en-US
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
Autocrypt: addr=jgross@suse.com; keydata=
 xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOB
 ycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJve
 dYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJ
 NwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvx
 XP3FAp2pkW0xqG7/377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEB
 AAHNH0p1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT7CwHkEEwECACMFAlOMcK8CGwMH
 CwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRCw3p3WKL8TL8eZB/9G0juS/kDY9LhEXseh
 mE9U+iA1VsLhgDqVbsOtZ/S14LRFHczNd/Lqkn7souCSoyWsBs3/wO+OjPvxf7m+Ef+sMtr0
 G5lCWEWa9wa0IXx5HRPW/ScL+e4AVUbL7rurYMfwCzco+7TfjhMEOkC+va5gzi1KrErgNRHH
 kg3PhlnRY0Udyqx++UYkAsN4TQuEhNN32MvN0Np3WlBJOgKcuXpIElmMM5f1BBzJSKBkW0Jc
 Wy3h2Wy912vHKpPV/Xv7ZwVJ27v7KcuZcErtptDevAljxJtE7aJG6WiBzm+v9EswyWxwMCIO
 RoVBYuiocc51872tRGywc03xaQydB+9R7BHPzsBNBFOMcBYBCADLMfoA44MwGOB9YT1V4KCy
 vAfd7E0BTfaAurbG+Olacciz3yd09QOmejFZC6AnoykydyvTFLAWYcSCdISMr88COmmCbJzn
 sHAogjexXiif6ANUUlHpjxlHCCcELmZUzomNDnEOTxZFeWMTFF9Rf2k2F0Tl4E5kmsNGgtSa
 aMO0rNZoOEiD/7UfPP3dfh8JCQ1VtUUsQtT1sxos8Eb/HmriJhnaTZ7Hp3jtgTVkV0ybpgFg
 w6WMaRkrBh17mV0z2ajjmabB7SJxcouSkR0hcpNl4oM74d2/VqoW4BxxxOD1FcNCObCELfIS
 auZx+XT6s+CE7Qi/c44ibBMR7hyjdzWbABEBAAHCwF8EGAECAAkFAlOMcBYCGwwACgkQsN6d
 1ii/Ey9D+Af/WFr3q+bg/8v5tCknCtn92d5lyYTBNt7xgWzDZX8G6/pngzKyWfedArllp0Pn
 fgIXtMNV+3t8Li1Tg843EXkP7+2+CQ98MB8XvvPLYAfW8nNDV85TyVgWlldNcgdv7nn1Sq8g
 HwB2BHdIAkYce3hEoDQXt/mKlgEGsLpzJcnLKimtPXQQy9TxUaLBe9PInPd+Ohix0XOlY+Uk
 QFEx50Ki3rSDl2Zt2tnkNYKUCvTJq7jvOlaPd6d/W0tZqpyy7KVay+K4aMobDsodB3dvEAs6
 ScCnh03dDAFgIq5nsB11j3KPKdVoPlfucX2c7kGNH+LUMbzqV6beIENfNexkOfxHfw==
In-Reply-To: <20250331172913.51240-1-jason.andryuk@amd.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------m66sebaDQsVxECLQq91DuIcx"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------m66sebaDQsVxECLQq91DuIcx
Content-Type: multipart/mixed; boundary="------------oQ3RPytk3d9i5O0EtiFFiinQ";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Jason Andryuk <jason.andryuk@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Cc: Penny Zheng <penny.zheng@amd.com>, Jan Beulich <jbeulich@suse.com>,
 xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org
Message-ID: <a6977caf-ce0e-4002-8df5-26cb0bdc88d7@suse.com>
Subject: Re: [PATCH] xen: Change xen-acpi-processor dom0 dependency
References: <20250331172913.51240-1-jason.andryuk@amd.com>
In-Reply-To: <20250331172913.51240-1-jason.andryuk@amd.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=

--------------oQ3RPytk3d9i5O0EtiFFiinQ
Content-Type: multipart/mixed; boundary="------------VD3gOMoYFtwHmoy3ZVcwlLLC"

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

T24gMzEuMDMuMjUgMTk6MjksIEphc29uIEFuZHJ5dWsgd3JvdGU6DQo+IHhlbi1hY3BpLXBy
b2Nlc3NvciBmdW5jdGlvbnMgdW5kZXIgYSBQVkggZG9tMCB3aXRoIG9ubHkgYQ0KPiB4ZW5f
aW5pdGlhbF9kb21haW4oKSBydW50aW1lIGNoZWNrLiAgQ2hhbmdlIHRoZSBLY29uZmlnIGRl
cGVuZGVuY3kgZnJvbQ0KPiBQViBkb20wIHRvIGdlbmVyaWMgZG9tMCB0byByZWZsZWN0IHRo
YXQuDQo+IA0KPiBTdWdnZXN0ZWQtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNv
bT4NCj4gU2lnbmVkLW9mZi1ieTogSmFzb24gQW5kcnl1ayA8amFzb24uYW5kcnl1a0BhbWQu
Y29tPg0KPiAtLS0NCj4gICBkcml2ZXJzL3hlbi9LY29uZmlnIHwgMiArLQ0KPiAgIDEgZmls
ZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQ0KPiANCj4gZGlmZiAt
LWdpdCBhL2RyaXZlcnMveGVuL0tjb25maWcgYi9kcml2ZXJzL3hlbi9LY29uZmlnDQo+IGlu
ZGV4IGY3ZDZmNDc5NzFmZC4uMjRmNDg1ODI3ZTAzIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJz
L3hlbi9LY29uZmlnDQo+ICsrKyBiL2RyaXZlcnMveGVuL0tjb25maWcNCj4gQEAgLTI3OCw3
ICsyNzgsNyBAQCBjb25maWcgWEVOX1BSSVZDTURfRVZFTlRGRA0KPiAgIA0KPiAgIGNvbmZp
ZyBYRU5fQUNQSV9QUk9DRVNTT1INCj4gICAJdHJpc3RhdGUgIlhlbiBBQ1BJIHByb2Nlc3Nv
ciINCj4gLQlkZXBlbmRzIG9uIFhFTiAmJiBYRU5fUFZfRE9NMCAmJiBYODYgJiYgQUNQSV9Q
Uk9DRVNTT1IgJiYgQ1BVX0ZSRVENCj4gKwlkZXBlbmRzIG9uIFhFTiAmJiBYRU5fRE9NMCAm
JiBYODYgJiYgQUNQSV9QUk9DRVNTT1IgJiYgQ1BVX0ZSRVENCj4gICAJZGVmYXVsdCBtDQo+
ICAgCWhlbHANCj4gICAJICBUaGlzIEFDUEkgcHJvY2Vzc29yIHVwbG9hZHMgUG93ZXIgTWFu
YWdlbWVudCBpbmZvcm1hdGlvbiB0byB0aGUgWGVuDQoNCkFzc3VtaW5nIHRoYXQgYWxsIG5l
ZWRlZCBoeXBlcmNhbGxzIGFyZSBmaW5lIGZvciBQVkggZG9tMDoNCg0KUmV2aWV3ZWQtYnk6
IEp1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT4NCg0KDQpKdWVyZ2VuDQo=
--------------VD3gOMoYFtwHmoy3ZVcwlLLC
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-----

--------------VD3gOMoYFtwHmoy3ZVcwlLLC--

--------------oQ3RPytk3d9i5O0EtiFFiinQ--

--------------m66sebaDQsVxECLQq91DuIcx
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/Ey8FAmftSJ4FAwAAAAAACgkQsN6d1ii/Ey/L
JAf/bhOl9OHcEuNgUSKI6NfwxDIDgaauqljWmZC0ymjFKbkvQmgtTcpY42kVDGxX7rzTQmMYhCQg
iBMa28Dp3oeqEFctCZ0Z69y3eWDDcE7Da+c/GDmyH59Iv/96f5lO9W/2OKQkgB5QH7HUs2jRxbUt
t6DRjYD2dOTZMFQj1qxYixaB0s/5LhN7beCc4RjGy2jwFu3OUuRho/ZrNjCMSYlgfGjeNhpdhmRm
xsmmsPblJ7Jaz/dX0VLeAPK4yv6SaI+NJ/FX0NkoPsx88TTxKn2BAjoNSFeQfMR7Dag6naGw2lCI
fuCg9L/v7c/4zZqE+LANzRTd/+p2gYYezVWwmzu3QQ==
=kMeA
-----END PGP SIGNATURE-----

--------------m66sebaDQsVxECLQq91DuIcx--


From xen-devel-bounces@lists.xenproject.org Wed Apr 02 14:34:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 02 Apr 2025 14:34:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.935879.1337249 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzzB2-0005DQ-1Q; Wed, 02 Apr 2025 14:34:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 935879.1337249; Wed, 02 Apr 2025 14:34:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzzB1-0005DJ-U1; Wed, 02 Apr 2025 14:34:47 +0000
Received: by outflank-mailman (input) for mailman id 935879;
 Wed, 02 Apr 2025 14: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=MBi7=WU=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1tzzB0-0005DD-Ow
 for xen-devel@lists.xenproject.org; Wed, 02 Apr 2025 14:34:46 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on2062a.outbound.protection.outlook.com
 [2a01:111:f403:2418::62a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9e8858f3-0fcf-11f0-9ea9-5ba50f476ded;
 Wed, 02 Apr 2025 16:34:45 +0200 (CEST)
Received: from BY5PR03CA0028.namprd03.prod.outlook.com (2603:10b6:a03:1e0::38)
 by CH3PR12MB7761.namprd12.prod.outlook.com (2603:10b6:610:153::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.50; Wed, 2 Apr
 2025 14:34:39 +0000
Received: from MWH0EPF000989E8.namprd02.prod.outlook.com
 (2603:10b6:a03:1e0:cafe::78) by BY5PR03CA0028.outlook.office365.com
 (2603:10b6:a03:1e0::38) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8534.46 via Frontend Transport; Wed,
 2 Apr 2025 14:34:38 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 MWH0EPF000989E8.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.8606.22 via Frontend Transport; Wed, 2 Apr 2025 14:34:38 +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, 2 Apr
 2025 09:34:37 -0500
Received: from [172.29.45.113] (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, 2 Apr 2025 09:34:36 -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: 9e8858f3-0fcf-11f0-9ea9-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=PmjPGOT9+/VsaYpVN62v/xY3QkGWnCgguykiHIdB5WT8kkRMmCeUayQaVY+msGxLWxZO6Vqq/1Ef0iD5BmJ29BRN3Nka0YOfjFlRPRXyX4/iGXC07of5gzG0BAh9ABdamMmQh+xy3RFRg33wMV7iF3clz3NpSSNSx/SORfrQDouebMw4QmXdBD6qpeCVcxswtuE0s7+kXwUFhsHaGtk+DoetgRA7jmz+tw4AfNO097qAWHf43KHOJ7pKWYVv5gwl9QzIwpPQWObbIbqgLQUqsw3qUvGo2bZx1j1zhJ+jWlYVoosFoMvGJ6mpDBf61sgGxvQ7ymblBBAQqxLyEKPZaA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=+X1UWKTXT7x30EugxmzPaNX3CVifcbT2x17P8EMPK4Q=;
 b=S744Zc98EuoyHt/JFQBWHwGlIlljAmbQIoOho8sNDLPfxKwVM8jRoe+RV75Rq6qPyVdeRHpTWOnKw1g7TbNFuB9vPmnVfNS5BynObSEfmoxUwSRPypsHzVsNDiKdlgmGWhNRyPiLLhCouvSBejSaU3aqRDe6WeDfzmex0dcRVgfYmLudpVVLScQxVXHYtDvbMO4WrICCG8gcMlTZ7xWXtVxQei869GGax2/EJN8WB+atVJCu0pg4biSzGn3fUQyj25f5e72AIgAujon+xAblOuAkbcgqCo5EzUF4uu9QRIxZTMyTeUwf9hhWwMU+JzAPvaTtOo4M41c1Cy6AB4AWjQ==
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=+X1UWKTXT7x30EugxmzPaNX3CVifcbT2x17P8EMPK4Q=;
 b=OJ1oXUBsNvs1QaiH94kSEsBP9k/bQs/xI5epwlKnyd7x1Yjb8/OlrhLaBUZa14U7gk3yggh2Tq4s/Wd5VlLhj+q/Fo7dKlRfoFQ1akqMYxSDlvDrG0BbwJ0cNd9RHk3qAW0kah7yVkaGIFWGSiowzZNcfRkIcvjbNX0z3IVOlGg=
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: <7fb49337-e1df-41fe-abba-6b2104094a68@amd.com>
Date: Wed, 2 Apr 2025 10:34:33 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen: Change xen-acpi-processor dom0 dependency
To: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Oleksandr Tyshchenko
	<oleksandr_tyshchenko@epam.com>
CC: Penny Zheng <penny.zheng@amd.com>, Jan Beulich <jbeulich@suse.com>,
	<xen-devel@lists.xenproject.org>, <linux-kernel@vger.kernel.org>
References: <20250331172913.51240-1-jason.andryuk@amd.com>
 <a6977caf-ce0e-4002-8df5-26cb0bdc88d7@suse.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <a6977caf-ce0e-4002-8df5-26cb0bdc88d7@suse.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 8bit
Received-SPF: None (SATLEXMB03.amd.com: jason.andryuk@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MWH0EPF000989E8:EE_|CH3PR12MB7761:EE_
X-MS-Office365-Filtering-Correlation-Id: 7664e9cd-bc4b-41f7-31e1-08dd71f37f92
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|376014|1800799024|82310400026|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?RTBaaHFyV1kzaSs1cDRmZ096NzYwKytQZ1BmaUtKZU1BV3YyaGNucUNRdWtr?=
 =?utf-8?B?eTdBREt5QkhKelpuaWYrek9rbUMwMmNjUUwyRCs3Qi9HRTlMTENHOU1GbDVG?=
 =?utf-8?B?TzFIa1p5WURUYzBBTzFpclFzNFZhaG50Q0RyQm5VbythRldNUWFwTG5YYWZN?=
 =?utf-8?B?UjAzVEx6VENyaUl5VmdwNTVLRGRnaDd1Q01aUDRNNHdKUURteTB3TmJKL3Rw?=
 =?utf-8?B?L3FQY04zbGhiK3BrZXc2RTRpbzM0cVNRclNQcmVxK2UzTWF2TWZsMjZqbEVs?=
 =?utf-8?B?bW91bHdDelhaZXRYenhQWmZJSjRkRHVEai8zb1NFSis0Vk91T1U0cHlWeW5h?=
 =?utf-8?B?aHFkV1RCcXhLdjBxblBBMDYyb3dpL2VjNS9BR0Z0elVBdW1Kc255YUorZTFF?=
 =?utf-8?B?MUVNRXJuWUhFRmtqNld4a0NRTlhwYUNtNzhZRmF2T2Q5bzZYZTF5Z2l1SFZl?=
 =?utf-8?B?OHZXYWZ4SWNEQVZFSVFHMVVjZmxlbWtlWWZuS25vcXdQaVhiYjFKaGxSaGZH?=
 =?utf-8?B?RTk3T2psMUZCUlVuamIxaFBvdVVNUGdIT2dPOFp1QlhhQm5ZcUU5VVBkbitT?=
 =?utf-8?B?UnRMZjFVNUhzVHZrUnpKRnFtTGg1cGFhTmxuZU11T0NPUmRHSWZuaHhBT3Bm?=
 =?utf-8?B?YTFIYnlqaTVZNlZudzBPMEpUUCtxUmM1WlhkQWdaNFgvdk85allxb1FoLzg5?=
 =?utf-8?B?dTVWU0ZudDJvN3ZBSHdXSXFoeDU1ZWdVTWQvWWwySnQrNGFuYjQxNzEzYkRq?=
 =?utf-8?B?a05NcHVsMWFjeXJURXA4V0RTbzd1S1FzZm5oa3d0WVB3VGl0c1B3MFBHTUdy?=
 =?utf-8?B?M2lQL1pwS3VEMFJiSVkyVHZ5a3NrUWs2QjVTZHlTN3F5cjZnb1dlNTZsZEU1?=
 =?utf-8?B?ano4Ui9LdHFydnRnSm5IeVQwT2lObU5iRHNUVXE1aURBUHNPR1pYdmJ5WUQx?=
 =?utf-8?B?Yzl5aUtKeHN4L3YxY0VKUzhKdlNhU29QUTdxVGlaeHJMajd3V0pFaDdNZ1ZW?=
 =?utf-8?B?Snl5VVg5VVdqNkZHNDlMek9hYXR2MURrbTlPK3hIbUg4RUFRdm02YkMyNlVk?=
 =?utf-8?B?UWw4OGN1czhBM2VpNnVkdzdjMkozNGhyZmphUXdNUjlBczRFSUFzVjNGYjUy?=
 =?utf-8?B?MFZXVHdSdllJRlhyandESWQ4SlNYOUFSRGxIWFVqWUUyNkduVVpOMDZBdkJZ?=
 =?utf-8?B?RE8xMU8wcWl1b2Jtd3RnTUlvUEdVQXZTMEFJd1ltYng4ajI4UDhRaGxvR3Yz?=
 =?utf-8?B?UVR2R2NwNlNoaG5oeEhaanhVNnIyYmZsek5ESUV4enY0cTJ1Zytkd2pjT2ZF?=
 =?utf-8?B?Uit1U1pnVVBoeVB3OVVwY3d1UEpFbGVDZjBXT1Z5K1pCRHVvSHFwQmExampH?=
 =?utf-8?B?UTYxTkQ5aTJzeklLaDdES1Q4SS90eTJaVDZvMVJNRlhuaitYbDRSa3BTdHZw?=
 =?utf-8?B?cHVxYmNnY1AyWDIrZ0d6YmV1L3Fad21tMnZFbHl2a3NZT1ZBQlZ3REtUbi81?=
 =?utf-8?B?Y21FKzJuc2JLVWNsK0EzTzViOUJ6Ymxwb1VXamFpc2VJaXhuTDQxbFlKRWxW?=
 =?utf-8?B?em85MlFzR2lzS1BlWFpRemZsVVc0akhRdnUyNHFOdmd6WlZCR2puN0ZVN3JB?=
 =?utf-8?B?TVNGQXRuL1UvVWMwVFVyVnJXNCthTXhma2NRMFdIQW9LYmlWZ21jRzAwQ1JH?=
 =?utf-8?B?bzlPRENnMHVZUFpGdkh6SC9tcllFQ2RoYjNvNlN4bGgvU3pBK1ArejlHNDJw?=
 =?utf-8?B?dHMwNHdJczZiSjhqSmY5cVZWQVBneWFBNHBmdFBsNFRsaGxCLzhkMVFnMUQr?=
 =?utf-8?B?TGZqVDY2aW5tQzVGL3FuU09aQjV2cTI4TStJTDJjVWR4VVh0T095QkN1M1Bl?=
 =?utf-8?B?VEVVazNoeHMydG11UjB0SWQxeGJHY2gxNTZBc1VIaEtjZklmS3oyTXRqUm1l?=
 =?utf-8?B?U1hqUUpNeTNYNE5EV3FyQ3VWRGRGSzlPTVpZeGtuRmhPT1NqNE1KVlNtcnFK?=
 =?utf-8?B?MFZaM2RpSEVnPT0=?=
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)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Apr 2025 14:34:38.6195
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 7664e9cd-bc4b-41f7-31e1-08dd71f37f92
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:
	MWH0EPF000989E8.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB7761

On 2025-04-02 10:24, Jürgen Groß wrote:
> On 31.03.25 19:29, Jason Andryuk wrote:
>> xen-acpi-processor functions under a PVH dom0 with only a
>> xen_initial_domain() runtime check.  Change the Kconfig dependency from
>> PV dom0 to generic dom0 to reflect that.
>>
>> Suggested-by: Jan Beulich <jbeulich@suse.com>
>> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
>> ---
>>   drivers/xen/Kconfig | 2 +-
>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/xen/Kconfig b/drivers/xen/Kconfig
>> index f7d6f47971fd..24f485827e03 100644
>> --- a/drivers/xen/Kconfig
>> +++ b/drivers/xen/Kconfig
>> @@ -278,7 +278,7 @@ config XEN_PRIVCMD_EVENTFD
>>   config XEN_ACPI_PROCESSOR
>>       tristate "Xen ACPI processor"
>> -    depends on XEN && XEN_PV_DOM0 && X86 && ACPI_PROCESSOR && CPU_FREQ
>> +    depends on XEN && XEN_DOM0 && X86 && ACPI_PROCESSOR && CPU_FREQ
>>       default m
>>       help
>>         This ACPI processor uploads Power Management information to 
>> the Xen
> 
> Assuming that all needed hypercalls are fine for PVH dom0:

It's platform_op XENPF_set_processor_pminfo and XENPF_get_cpuinfo.  Xen 
doesn't check if the caller is PV or PVH.

> Reviewed-by: Juergen Gross <jgross@suse.com>

Thanks, Juergen.

-Jason


From xen-devel-bounces@lists.xenproject.org Wed Apr 02 14:54:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 02 Apr 2025 14:54:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.935892.1337268 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzzTv-0002lS-Rs; Wed, 02 Apr 2025 14:54:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 935892.1337268; Wed, 02 Apr 2025 14:54:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzzTv-0002lK-Oy; Wed, 02 Apr 2025 14:54:19 +0000
Received: by outflank-mailman (input) for mailman id 935892;
 Wed, 02 Apr 2025 14:54:18 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=zyr3=WU=edera.dev=alexander@srs-se1.protection.inumbo.net>)
 id 1tzzTu-0002Wn-Ie
 for xen-devel@lists.xenproject.org; Wed, 02 Apr 2025 14:54:18 +0000
Received: from mail-qv1-xf35.google.com (mail-qv1-xf35.google.com
 [2607:f8b0:4864:20::f35])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 594e59b5-0fd2-11f0-9ffb-bf95429c2676;
 Wed, 02 Apr 2025 16:54:17 +0200 (CEST)
Received: by mail-qv1-xf35.google.com with SMTP id
 6a1803df08f44-6ecfc7fb2aaso61185636d6.0
 for <xen-devel@lists.xenproject.org>; Wed, 02 Apr 2025 07:54:17 -0700 (PDT)
Received: from dell.axolotl-tone.ts.net
 ([2605:9480:312:2031:4ed7:17ff:feaa:a013])
 by smtp.gmail.com with ESMTPSA id
 6a1803df08f44-6eec97bdd78sm75399536d6.124.2025.04.02.07.54.14
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 02 Apr 2025 07:54: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: 594e59b5-0fd2-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=edera.dev; s=google; t=1743605655; x=1744210455; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=fZi4Eq4uS4syTFaufhJVx5idvQkHlIkt7q9u4cXSyo8=;
        b=MAkQy/nkID5xO2sc9mQxifN02TonzJX7J6a6cSm3zdLVtTZflIhru8Ly2kkcraTzaJ
         S0dVuV0jqRIwIkcX4d/CjG6LVmo9Ti5rFY5JCd5GkAqmYbRkSc4OalGrODFU6wS8vTAL
         TArAlsBfifCmvVjlKtqowSxxbm/N8hVZd+ZsZXRQk+qepmGD1hshabktO/B6Vve3OYXR
         0e+DDmLyECmot258gS3ZlBqbQjIIP00GM70Sp9Qqic4/Hz1LVuvCt7+z88/1zuobmPIO
         HYTDAG965zax8iAx24D0OfPf+rJnZuoe+MlIiCQyO9YuzcwcOdwyqdbpUF1w8B4EHRIE
         +2wg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743605655; x=1744210455;
        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=fZi4Eq4uS4syTFaufhJVx5idvQkHlIkt7q9u4cXSyo8=;
        b=cqei0Z1Mzy439SEfZ9ODhcSThdxgZPXctGzNS+KUmr+6iA0RF9DNyssmbg/zPDZdDd
         g3w0DU4QuUDQlycLtcMiWbDCbAg/ZUYH+mloPaYyM2pdhNBL95aF5YAjL/dzINylAlVH
         t0kQLAEpferWBqbKdQdKwD77cOx4Rnz3P5E92w6rDcroYbokbTVQh1NlgWX4haocGg5H
         IR9zVnIWqyjGw0RRn3cP7T9eBFYVP0r8/TAc5Rm8IzIJyMT0F50F4WiS5kjBGGGa9OL2
         S3A37FGIeJonYob7NRKJRYUzJtqP/FniUIcd4IlJEIHTvkUZ5UzC7loQweawZaWhluaE
         IkwA==
X-Gm-Message-State: AOJu0Yw80S6++KMJmmaQea0ZlgVE9DfwUv824kIO0uhfIpPBPSzy4cTm
	kNlxM77HdnzGyiWLFdHo10gJkZWOLt6KTvmJ+Hr35yDYDTd5ZKtC06sIevO0/fcPqlzXkdQ29gb
	m1y8=
X-Gm-Gg: ASbGncvdv+IiZzfqPnGHlKzjilVNvpPfBLn/B9xEWM+wmOey6t+H6CMk1vblyr9PKxC
	GpFXbR7gtd6WZveZJ5VL1OzgmELFqZtKO7aIt1iTbhj/jOCxC94TcY9SiguikxC1rI1b8ju9G29
	g2+mvJjKmnIg2Mv5igmgjm66lX+1tUjGL9dLiQHO0HnHfaJpLMdviC33U3eBtmEFbubIMvY+hsr
	1ai8fk3onHK9FalTU/bREDc/tQ0RJIRRH3MFHJ+ErEu47nyZQSWMiouxm271UMza1aHTBNBCMIe
	HMxOjF3wkZxxgo7DZ1FBxKD9QDuX20LI3raUba89ZKGODkPgZdczoEb3z83RJL6MWnjg9r87aO4
	=
X-Google-Smtp-Source: AGHT+IF83fq1fLPTKCVMBSHP0CIenee/OmpeRoe097/dgfjTu3PK3KWVldklPVKHKeviZrFhULV2dg==
X-Received: by 2002:a05:6214:496:b0:6e8:f4d3:e8a5 with SMTP id 6a1803df08f44-6eed5fcb027mr248266536d6.15.1743605655651;
        Wed, 02 Apr 2025 07:54:15 -0700 (PDT)
From: "Alexander M. Merritt" <alexander@edera.dev>
To: xen-devel@lists.xenproject.org
Cc: "Alexander M. Merritt" <alexander@edera.dev>,
	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 1/1] xen/x86: drop wrappers of SVM instructions
Date: Wed,  2 Apr 2025 14:54:10 +0000
Message-ID: <034a5518e8dfde9ac707b494f5d863d78efec84e.1743601241.git.alexander@edera.dev>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <cover.1743601241.git.alexander@edera.dev>
References: <cover.1743601241.git.alexander@edera.dev>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The new toolchain baseline knows the SVM instructions.

Resolves: xen-project/xen#204

Signed-off-by: Alexander M. Merritt <alexander@edera.dev>
---
 xen/arch/x86/hvm/svm/svm.h           | 14 +++-----------
 xen/arch/x86/include/asm/asm-defns.h | 12 ------------
 2 files changed, 3 insertions(+), 23 deletions(-)

diff --git a/xen/arch/x86/hvm/svm/svm.h b/xen/arch/x86/hvm/svm/svm.h
index beeaaab4f7..5c5e91a1ac 100644
--- a/xen/arch/x86/hvm/svm/svm.h
+++ b/xen/arch/x86/hvm/svm/svm.h
@@ -23,25 +23,17 @@ void __update_guest_eip(struct cpu_user_regs *regs, unsigned int inst_len);
 
 static inline void svm_vmload_pa(paddr_t vmcb)
 {
-    asm volatile (
-        ".byte 0x0f,0x01,0xda" /* vmload */
-        : : "a" (vmcb) : "memory" );
+    asm volatile ( "vmload" : : "a" (vmcb) : "memory" );
 }
 
 static inline void svm_vmsave_pa(paddr_t vmcb)
 {
-    asm volatile (
-        ".byte 0x0f,0x01,0xdb" /* vmsave */
-        : : "a" (vmcb) : "memory" );
+    asm volatile ( "vmsave" : : "a" (vmcb) : "memory" );
 }
 
 static inline void svm_invlpga(unsigned long linear, uint32_t asid)
 {
-    asm volatile (
-        ".byte 0x0f,0x01,0xdf"
-        : /* output */
-        : /* input */
-        "a" (linear), "c" (asid) );
+    asm volatile ( "invlpga" : /* output */ : /* input */ "a" (linear), "c" (asid) );
 }
 
 /*
diff --git a/xen/arch/x86/include/asm/asm-defns.h b/xen/arch/x86/include/asm/asm-defns.h
index 32d6b44910..5a64b42495 100644
--- a/xen/arch/x86/include/asm/asm-defns.h
+++ b/xen/arch/x86/include/asm/asm-defns.h
@@ -10,18 +10,6 @@
 .endm
 #endif
 
-.macro vmrun
-    .byte 0x0f, 0x01, 0xd8
-.endm
-
-.macro stgi
-    .byte 0x0f, 0x01, 0xdc
-.endm
-
-.macro clgi
-    .byte 0x0f, 0x01, 0xdd
-.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...
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Wed Apr 02 14:54:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 02 Apr 2025 14:54:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.935891.1337260 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzzTu-0002X0-It; Wed, 02 Apr 2025 14:54:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 935891.1337260; Wed, 02 Apr 2025 14:54: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 1tzzTu-0002Wt-E9; Wed, 02 Apr 2025 14:54:18 +0000
Received: by outflank-mailman (input) for mailman id 935891;
 Wed, 02 Apr 2025 14:54: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=zyr3=WU=edera.dev=alexander@srs-se1.protection.inumbo.net>)
 id 1tzzTs-0002Wn-Ry
 for xen-devel@lists.xenproject.org; Wed, 02 Apr 2025 14:54:16 +0000
Received: from mail-qv1-xf30.google.com (mail-qv1-xf30.google.com
 [2607:f8b0:4864:20::f30])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 57e96866-0fd2-11f0-9ffb-bf95429c2676;
 Wed, 02 Apr 2025 16:54:14 +0200 (CEST)
Received: by mail-qv1-xf30.google.com with SMTP id
 6a1803df08f44-6eaf1b6ce9aso70271726d6.2
 for <xen-devel@lists.xenproject.org>; Wed, 02 Apr 2025 07:54:14 -0700 (PDT)
Received: from dell.axolotl-tone.ts.net
 ([2605:9480:312:2031:4ed7:17ff:feaa:a013])
 by smtp.gmail.com with ESMTPSA id
 6a1803df08f44-6eec97bdd78sm75399536d6.124.2025.04.02.07.54.12
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 02 Apr 2025 07:54: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: 57e96866-0fd2-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=edera.dev; s=google; t=1743605653; x=1744210453; 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=e7ji2VHe1iwTejbRw/dZBkx2WBb2AT12F+aAca8XgHw=;
        b=BX1qir+UiMKdbzIT/s6knNXCNaoVeP2Jzx9Cw/CnBprrA8GbhcanX/Mh32GA+V93Ew
         Mj4yyQmETBAETjmOU37kLDom3A4J/WV0wWj99VlpV7NBQ6G9JeMt4+diklhd7YASoy7X
         B1H8zOjc9p6VpWuHC5nKHRl2LAURrFNMmVtny6jA0K5MRcItlqn0Jif7EXRfOpikloGW
         H3CVaAzMQbXMaKl8CeytLsGVpcbVjOMTet8m9ARssNwNkpAlDM93yd1FLZz9KqhX0F+K
         mmD0P/g67SHrhcHqX3xIp2utZEZxY4/rfp3d7v8BUf3l5uzzDZbeOyKU9tcIR8b7M3b2
         G/ng==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743605653; x=1744210453;
        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=e7ji2VHe1iwTejbRw/dZBkx2WBb2AT12F+aAca8XgHw=;
        b=TWZ9Sz+fHZ5uQhHjjh5Sn7oBdvFSb2sjc6ludAxUtMVCohoA8VIpvyyTZHPBva6c6b
         xaqQSaq0n4tX6ZWBs/+P0Q3MafE8SrPQm9N2gPLIWHvUXkFf5FXTATpwsdYcRxeeXQfq
         tC9HRcOKipny4eDPEnOW8SWxit5L77bUZBPHQmYVgPm/KgpF5SiJ11bhIhZPMP74Gf7R
         cK5GQqQZfcqJuxDc79uAq0YgYyAUjL53DWIeoTjz/GroNLPP5BU2URmkVcUHHOAgAR+r
         j5Grsvvf/LZ+I4lz8ehnjM7zkF5LAUVlEYTfpQXiOViPviouRAks6M9WThgaz3N8aydu
         QOeQ==
X-Gm-Message-State: AOJu0YxClIfjtQqCeTF54VOsc87TdQ29C8zn3jXEhIaeNTTs+Dkb0j5o
	9N0rORaADlFtKWOI9/Q8wqmUbyzzv22V7xO+YoiJQOj0npx3AYMALU3cXJ0HAUU6RJsSut3Xogd
	JQxg=
X-Gm-Gg: ASbGncuzQcyP8JZDgJrrDwF0fl8qhB6JU483yT1Rwk3nekw+++JPPGG5P0yL/U8yyaV
	CMC6NOHmCZQGy7KwGK8+REovznQriahRCgVyFDQwiPpx7Mr73QpEy985TsIOXGNkcqygOBocsBD
	h/ef405464CDXj9RQGTizdWrdILXDubJ1A0B+3GfBlhgJUkZtCoUeyLenRUO4wv8wBAIYUsjLdA
	gDPhrz2MyGtt0T4+Nwu+QVn2IONaibHp1TL4KErp5IIMesKG24ULNfX/pcHULL6yLym5gOG89Xa
	eJUaI3qGxoSpXb+ahk+ol4/7jjoqT1AHGjPjUH517BhbxxfBB6u02MmhKv+AgRDJ
X-Google-Smtp-Source: AGHT+IF8QxpbvHtdegJrm3IlWKgHT3VM906UGcvroCedLuKeYHAwbGIsTdgLZRQbjpgiwYiwiRDJDw==
X-Received: by 2002:a05:6214:500f:b0:6e6:6699:7e58 with SMTP id 6a1803df08f44-6ef02bafca3mr34542376d6.1.1743605653373;
        Wed, 02 Apr 2025 07:54:13 -0700 (PDT)
From: "Alexander M. Merritt" <alexander@edera.dev>
To: xen-devel@lists.xenproject.org
Cc: "Alexander M. Merritt" <alexander@edera.dev>,
	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/1] drop wrappers of SVM instructions
Date: Wed,  2 Apr 2025 14:54:09 +0000
Message-ID: <cover.1743601241.git.alexander@edera.dev>
X-Mailer: git-send-email 2.45.2
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Part of cleanup following toolchain baseline upgrade.

As the new toolchain baseline knows the SVM instructions, this series drops
macros with SVM instructions, and updates SVM wrappers to use real instructions
rather than bytecode.

Resolves: xen-project/xen#204

Alexander M. Merritt (1):
  xen/x86: drop wrappers of SVM instructions

 xen/arch/x86/hvm/svm/svm.h           | 14 +++-----------
 xen/arch/x86/include/asm/asm-defns.h | 12 ------------
 2 files changed, 3 insertions(+), 23 deletions(-)

-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Wed Apr 02 14:56:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 02 Apr 2025 14:56:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.935915.1337279 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzzWN-0003dN-7s; Wed, 02 Apr 2025 14:56:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 935915.1337279; Wed, 02 Apr 2025 14: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 1tzzWN-0003dG-4w; Wed, 02 Apr 2025 14:56:51 +0000
Received: by outflank-mailman (input) for mailman id 935915;
 Wed, 02 Apr 2025 14:56: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=qYE3=WU=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1tzzWL-0003d5-4S
 for xen-devel@lists.xenproject.org; Wed, 02 Apr 2025 14:56:49 +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 b3bd7b34-0fd2-11f0-9ea9-5ba50f476ded;
 Wed, 02 Apr 2025 16:56:48 +0200 (CEST)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-391342fc1f6so6019294f8f.1
 for <xen-devel@lists.xenproject.org>; Wed, 02 Apr 2025 07:56:48 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43eb61b633asm23109565e9.37.2025.04.02.07.56.46
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 02 Apr 2025 07:56: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: b3bd7b34-0fd2-11f0-9ea9-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1743605808; x=1744210608; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Nv1p4IGpQMMNQSNqQTAs0ujjLm9bUOMpacx56ZbSUkU=;
        b=XRXAfoNxGMJoi3SSPFOOMjmpxN1kxtLllm6dTiONDe5yXuUVKRI7x2Yf3wx04DEqfm
         bBRDmh2zPE6IB68PiGyffoD8EzbBG7ib9vZ3V9C9yH8U7Q93oA3wChsFYzwRscJuQHpZ
         9l5TM01SwMMQnPAZvAdO/3ffxo3Q+4ZywgtQw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743605808; x=1744210608;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Nv1p4IGpQMMNQSNqQTAs0ujjLm9bUOMpacx56ZbSUkU=;
        b=rzpsGaMBzG9IGXyyRMfvYywVheCqmlLuAQni8WCGfXLGeHtIQS6BMMGJ6HRBo9/tm0
         cgGL/7miAC5Ka9Oay/qkaoK//TV6idmdRiXY1yeB53boWPTIjDIXVJN0o5kxRkEtZTbe
         aG2rS1N55MEtqHM0G6/sFN2t5UhEf2LAukzO6Drw+QB+Pi9L7znDEobiuCiEeVclLCF5
         tt1BuhYvp1+3C2oy8uyqShnCXJjwI5ZhhwV5g3dMwJDUzMRsDJo4mqxfjbeaT0rtaYxQ
         773vT4I+SEcfxDwh+SB+S+MDNTdGxLaWpVZ4sAMomjHc7mFX46ALTpyItjwhi7oQV12U
         ueMQ==
X-Forwarded-Encrypted: i=1; AJvYcCWyXLm5GnRjGS0rpPp7sSgJRfCMIP6SpGGMzhZ7izSUnKyxxXbBtGm9xZ/AvcmsdS3NtFgBR9vi9gY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyqEdq+hOvjNX3qMRI//ZX9fgwMY6zX12YIG3I1Ny0syf4EdSF1
	hpzYHcerLpoiMOvkZ5PGoK3w5Mi8qEHENliQ9mKJLYRvAN/WdJ1YKIyzJWnJZQ4=
X-Gm-Gg: ASbGncuk/7mWrJEj3Og5tsyy6AEuZdT6r0gg/B119sbGVziwtPSzTDt8Eyk3XVLWX3X
	ErUalPPQd9viRgFmwjXRaTtdkNwsq8UBrUexpAPNkvmBjcElzOv0RV7Hn+M/6RgTK0Ccku9MHCe
	KMGfB7PAqcdCUervfPMydjnU74Jy8hHtfvs9JNpN6xqoctpCp6/WtkZGBj5LSFMNpRsl87ylQQq
	SNXLc1ZaqVNSy42iNVre4yV/42PYFu4WhqIOL516FnXFKSW8OCtz77SGmrxKQWtNxbbKWbOQYGB
	M64HuaTtWYmQFw3qxe4/i8dJHrUbqrKKEvhlEqruldocWAifIJF0w1ZxVrK8x/yqqCXhk2hDDag
	wXzUU0ck4NA==
X-Google-Smtp-Source: AGHT+IHzP++h2ww1qZXeELRWUTt6/wilZpQQvJ4b0ZwzO4UtO5aSU0bhV/qlHLCNWkvkZ+bz9Ntl2A==
X-Received: by 2002:a05:6000:1789:b0:39c:cc7:3c62 with SMTP id ffacd0b85a97d-39c1211b6edmr13973063f8f.51.1743605807593;
        Wed, 02 Apr 2025 07:56:47 -0700 (PDT)
Message-ID: <70d8d88d-63e1-4622-8b30-09ff2f0eff87@citrix.com>
Date: Wed, 2 Apr 2025 15:56:46 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH 1/1] xen/x86: drop wrappers of SVM instructions
To: "Alexander M. Merritt" <alexander@edera.dev>,
 xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <cover.1743601241.git.alexander@edera.dev>
 <034a5518e8dfde9ac707b494f5d863d78efec84e.1743601241.git.alexander@edera.dev>
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: <034a5518e8dfde9ac707b494f5d863d78efec84e.1743601241.git.alexander@edera.dev>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 02/04/2025 3:54 pm, Alexander M. Merritt wrote:
> The new toolchain baseline knows the SVM instructions.
>
> Resolves: xen-project/xen#204
>
> Signed-off-by: Alexander M. Merritt <alexander@edera.dev>

Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>, with a couple of
notes.

> ---
>  xen/arch/x86/hvm/svm/svm.h           | 14 +++-----------
>  xen/arch/x86/include/asm/asm-defns.h | 12 ------------
>  2 files changed, 3 insertions(+), 23 deletions(-)
>
> diff --git a/xen/arch/x86/hvm/svm/svm.h b/xen/arch/x86/hvm/svm/svm.h
> index beeaaab4f7..5c5e91a1ac 100644
> --- a/xen/arch/x86/hvm/svm/svm.h
> +++ b/xen/arch/x86/hvm/svm/svm.h
> @@ -23,25 +23,17 @@ void __update_guest_eip(struct cpu_user_regs *regs, unsigned int inst_len);
>  
>  static inline void svm_vmload_pa(paddr_t vmcb)
>  {
> -    asm volatile (
> -        ".byte 0x0f,0x01,0xda" /* vmload */
> -        : : "a" (vmcb) : "memory" );
> +    asm volatile ( "vmload" : : "a" (vmcb) : "memory" );

We tend to prefer :: for empty sections.

>  }
>  
>  static inline void svm_vmsave_pa(paddr_t vmcb)
>  {
> -    asm volatile (
> -        ".byte 0x0f,0x01,0xdb" /* vmsave */
> -        : : "a" (vmcb) : "memory" );
> +    asm volatile ( "vmsave" : : "a" (vmcb) : "memory" );
>  }
>  
>  static inline void svm_invlpga(unsigned long linear, uint32_t asid)
>  {
> -    asm volatile (
> -        ".byte 0x0f,0x01,0xdf"
> -        : /* output */
> -        : /* input */
> -        "a" (linear), "c" (asid) );
> +    asm volatile ( "invlpga" : /* output */ : /* input */ "a" (linear), "c" (asid) );

And here, the output/input comments are useless and can be dropped.

I can fix both on commit if you're happy?

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Apr 02 15:04:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 02 Apr 2025 15:04:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.935929.1337289 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1tzzdq-0006lw-Vl; Wed, 02 Apr 2025 15:04:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 935929.1337289; Wed, 02 Apr 2025 15:04: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 1tzzdq-0006lp-T4; Wed, 02 Apr 2025 15:04:34 +0000
Received: by outflank-mailman (input) for mailman id 935929;
 Wed, 02 Apr 2025 15: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=zyr3=WU=edera.dev=alexander@srs-se1.protection.inumbo.net>)
 id 1tzzdp-0006lT-Rw
 for xen-devel@lists.xenproject.org; Wed, 02 Apr 2025 15:04:33 +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 c7a9bdcf-0fd3-11f0-9ffb-bf95429c2676;
 Wed, 02 Apr 2025 17:04:31 +0200 (CEST)
Received: by mail-qk1-x72d.google.com with SMTP id
 af79cd13be357-7c56a3def84so672510985a.0
 for <xen-devel@lists.xenproject.org>; Wed, 02 Apr 2025 08:04:31 -0700 (PDT)
Received: from localhost ([64.201.234.99]) by smtp.gmail.com with ESMTPSA id
 af79cd13be357-7c5f77650desm798848385a.79.2025.04.02.08.04.29
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 02 Apr 2025 08:04: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: c7a9bdcf-0fd3-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=edera.dev; s=google; t=1743606270; x=1744211070; darn=lists.xenproject.org;
        h=content-transfer-encoding:organization:message-id:references
         :in-reply-to:subject:cc:to:from:date:mime-version:from:to:cc:subject
         :date:message-id:reply-to;
        bh=S9XoP9pFh+bHUVre2EMojdhOPftzHzM1XqMVPhqiZ7g=;
        b=ew7k4VixXUNMynvCKYZYETd2jnclqh3BwT+5xL3yVtUh0K/ufIB4z682/HKY+66NRg
         394I+2gKe9QdBuPqXHpIhw42yaPlDqCEhrxFoxbvDNH90s4H4OaL6jLm6y1AdePxy4My
         QrClAX4Q/0CFXcs2OmdbTEZR4c9KerTSazpIqwMm8ERFBWz26qxtfkH3vkJFn1HFfmuo
         eR1EvljBPUEX1GIUPEiW8YqYkpi+plF7LnD3YRA57+B1zLCl7Q6eguwCRaX6WGj1fl5S
         oVQo4LNWN16OejLCNa6B98yDpYtybt1+hcU+/e7jbz3iERSoT9C5hNgEZO6hbyjNRZKx
         06Og==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743606270; x=1744211070;
        h=content-transfer-encoding:organization:message-id:references
         :in-reply-to:subject:cc:to:from:date:mime-version:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=S9XoP9pFh+bHUVre2EMojdhOPftzHzM1XqMVPhqiZ7g=;
        b=LbWfJks22wd0MMok93Te4JxPGKWV5rXXxyS64vPV+IeDgfrwhfjGc5eCpgUCoUq+cT
         5XirOYrsP2WcCgEclBr7GEEajjPfpq1RjpeD8YisHlH9GXpbCiMBaEieml05ui1uB4Lo
         tpTL8pebfCVJlG73KO6rcwLDoPm9/6gi3iAHzwvoxEksVl9YgCnXBD4bq9MHuiVWODdF
         eCR87+C0tyCTdXt447Nb7atBSRNYHNcoFFZUcxXOUAwYkBtZ42yJqVctBqdD30iFSsXV
         QAc2GfaFI+EN22jYwLjIPY00nKjun9uXhVL9CJcvNcak5ufS9qpIkRxJK4oNiRH8SdL3
         z8Wg==
X-Gm-Message-State: AOJu0Yw9CFEufI06JgJuMGQRcps5lbJ8clCcpY9BdAhuInGOZmqtTbWZ
	EbglbqqfYcAG55KmUhhQFaX9AO77XLPIvmZ1k0gfd+7hkmUG2X9kZ4sdoG1Oul0=
X-Gm-Gg: ASbGnctybgEEzYHk+To0bVZ9RoSd+UFkVOVHQncnVApv+dbrXb2bAoluqBqgKewUOHG
	ieLyG3pKcgbr/lcGtFKOiGKLBqvWv7nOJOkkFi0jXpq1oV3FliGqBC3Ha3NQgUIAyawCg2qbcnp
	bZdD9hq9BgEYDjvQ0tUBK+oKkg+WpmjSrttr3ZIjixvX3YnvU8znVplWiGMxsASce+XGoVfKrVF
	iXyj+YHviknjLVgiYE4P5My0jtpjSJkWB8TzqK+t9Tth7D7QEuh9+3Y3rqoBMus6OiB2w053AQI
	xMrIBncfNnCBi7p5QRZeoA/X+kDyeKdcIm/5wkqS3uh6ItzncsI=
X-Google-Smtp-Source: AGHT+IFAFQA3tjy5BAduDPmdO5IlBp7dX054sr8O25yIC3amtZPTDyKqSezRYHnrvyAcm0lXWASlzA==
X-Received: by 2002:a05:620a:430f:b0:7c5:57b2:2cb9 with SMTP id af79cd13be357-7c766455557mr365882985a.26.1743606270560;
        Wed, 02 Apr 2025 08:04:30 -0700 (PDT)
MIME-Version: 1.0
Date: Wed, 02 Apr 2025 11:04:28 -0400
From: Alexander Merritt <alexander@edera.dev>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Subject: Re: [XEN PATCH 1/1] xen/x86: drop wrappers of SVM instructions
In-Reply-To: <70d8d88d-63e1-4622-8b30-09ff2f0eff87@citrix.com>
References: <cover.1743601241.git.alexander@edera.dev>
 <034a5518e8dfde9ac707b494f5d863d78efec84e.1743601241.git.alexander@edera.dev>
 <70d8d88d-63e1-4622-8b30-09ff2f0eff87@citrix.com>
Message-ID: <6e4cddefb40c953a684b7c4f343da225@edera.dev>
X-Sender: alexander@edera.dev
Organization: Edera
Content-Type: text/plain; charset=US-ASCII;
 format=flowed
Content-Transfer-Encoding: 7bit

On 2025-04-02 10:56, Andrew Cooper wrote:
> On 02/04/2025 3:54 pm, Alexander M. Merritt wrote:

> I can fix both on commit if you're happy?
> 
> ~Andrew

Noted for future updates. Yes please go ahead.

-Alex


From xen-devel-bounces@lists.xenproject.org Wed Apr 02 15:35:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 02 Apr 2025 15:35:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.935947.1337302 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u007w-0006B1-Ah; Wed, 02 Apr 2025 15:35:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 935947.1337302; Wed, 02 Apr 2025 15: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 1u007w-0006Au-88; Wed, 02 Apr 2025 15:35:40 +0000
Received: by outflank-mailman (input) for mailman id 935947;
 Wed, 02 Apr 2025 15: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=MBi7=WU=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1u007u-0006Ao-NE
 for xen-devel@lists.xenproject.org; Wed, 02 Apr 2025 15:35:38 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on2061a.outbound.protection.outlook.com
 [2a01:111:f403:2414::61a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1e8b2530-0fd8-11f0-9ffb-bf95429c2676;
 Wed, 02 Apr 2025 17:35:36 +0200 (CEST)
Received: from BN9PR03CA0201.namprd03.prod.outlook.com (2603:10b6:408:f9::26)
 by MW4PR12MB7429.namprd12.prod.outlook.com (2603:10b6:303:21b::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.44; Wed, 2 Apr
 2025 15:35:31 +0000
Received: from BN3PEPF0000B071.namprd04.prod.outlook.com
 (2603:10b6:408:f9:cafe::93) by BN9PR03CA0201.outlook.office365.com
 (2603:10b6:408:f9::26) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8534.54 via Frontend Transport; Wed,
 2 Apr 2025 15:35:31 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BN3PEPF0000B071.mail.protection.outlook.com (10.167.243.116) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8606.22 via Frontend Transport; Wed, 2 Apr 2025 15:35:31 +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, 2 Apr
 2025 10:35:30 -0500
Received: from [172.29.45.113] (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, 2 Apr 2025 10:35:29 -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: 1e8b2530-0fd8-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=qf2qh6UPsgoMlTWhftBEZ33exZPzDFLcBl5DnfIx9s31txNo1o35+2PnfHUtj6SHuN1XQxKCyxI8sNyh5V38gv50LYuFEFLUiLUz5HDTSqmskLaHgNWixCf69yDP3GG83R96lnGi3ZNZ5BqUSWlUjjdKbNoOF7BfFSCbXEGaU8OlW2V3FEBK5aPNUIxJzSmRTPyd98p05anCA/Dq+xnjIiTyij452MuZy9efavTPg5VL8NnMPMR2dm/BEqjWkFMkWH1OJaMpaEZYZmAoi7KB8ihZitxOcHebA4ZZVZODEofJKW7kDZcLsrqR7mBo5BYcxjwEIkEBBMwXTnNDeBhhuQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=QG6CIx2DDe8kfe6fYcgM7yJYGTgsvNPGe0+TfyQj3dU=;
 b=DDyK76fv5QqpB+4pvBEzkS/Z2/nHdVLtdOvwFM1hEqD4AJ8u2vqr/hOA+4alLQ6wNH1OB47quvv5UVhxCY5JbbzkwpT2/MabcL6B6GVXT9PUgs2rCFuybQaM32A2kvPq0esWZoO/oGoLoggqmPbe/ufyBhCThGvTuLZaMlItWGgdoMRo5r0cWn2pDdOZl4wLo0SJtRlJVsAFqfYrB5urgYG+Cp4A/q/QdI14hXRlT43RAr0ju1DCmy1SHAGdd7RCJJbrvUcHI6415QrpQ0aoY5yK36QwbGgJbZpwddEtZu9z4qt273ln8RwWLwcXX2AH83J8aV1TKXdeJ/8Ci2X5Jw==
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=QG6CIx2DDe8kfe6fYcgM7yJYGTgsvNPGe0+TfyQj3dU=;
 b=HdOevBj27gplEVAq7tFW1WRk0vrgpyCS1UHyhnuBQkobjyk0+ugzaERmoMwR6SPXiN9wH5QXNJMF3cNqB/V4SVUhmiCTo5myp09T0IiSSdKJehihen3PYvJFgSujMFonSCxcpLqkAjfVLlqp9HA4wOLH0iwbCvJphU4YIWhLK9A=
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: <0d36750a-34d2-460b-a021-5afb7c2e7039@amd.com>
Date: Wed, 2 Apr 2025 11:35:31 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 6/6] xen/arm: Add capabilities to dom0less
To: Stefano Stabellini <sstabellini@kernel.org>
CC: <xen-devel@lists.xenproject.org>, Julien Grall <julien@xen.org>, "Bertrand
 Marquis" <bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, "Jan
 Beulich" <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>
References: <20250331214321.205331-1-jason.andryuk@amd.com>
 <20250331214321.205331-7-jason.andryuk@amd.com>
 <alpine.DEB.2.22.394.2504011654320.3098208@ubuntu-linux-20-04-desktop>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <alpine.DEB.2.22.394.2504011654320.3098208@ubuntu-linux-20-04-desktop>
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: BN3PEPF0000B071:EE_|MW4PR12MB7429:EE_
X-MS-Office365-Filtering-Correlation-Id: 254c8433-8121-441c-7e01-08dd71fc008f
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|1800799024|36860700013|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?K3lxZFRVMURBa095cWZFTnR3a0F3Wk5oZyt0clJWcmxudGIvMTBnNEZPU0ds?=
 =?utf-8?B?Ty9JYUZCT0VJamRaV0doOFh0YWorN1IyZjV2ZmRMbUZjRzJseXdMUXZ2NXBM?=
 =?utf-8?B?dHNLamszalFGOG1LZUl2cU5aNmI1STJRUCtXWStsMnlja1kwekU1ZUI5ZS8v?=
 =?utf-8?B?Y2VXTzg5MVRBRkVYb3lJNU5lRzZURThicFYvQ092UnFNd0g4UTk5NnFOMXBo?=
 =?utf-8?B?TFBwcHJ2Y012bG9Namc4cDBRVlA5UGFaWHEzajFOa0FkYU90WnVpZGZITTl6?=
 =?utf-8?B?bC9KdmhvNFpHbC9LRFN6SkRHRStUZ1pyUXJmaDlydEhNU21NT2J1RE1PUEtY?=
 =?utf-8?B?SE5YYlBBV3dnNmpucFppU0FBZ2pqQU4zNSs3a2trN0FDaFFLeHNidDdhRlNC?=
 =?utf-8?B?Vm0wclBRTndzYzVjTXZ5SWQwZjVXZU1VRDN2V1pwODUvTThHZlM0aFhDSUlD?=
 =?utf-8?B?ME5qalRkYisyTFdlYmNubEd0UVdReVNicWVjQTdWaWtHaFpuR1lFSXJqYkFX?=
 =?utf-8?B?QTF4SEdhOGFQZ1RkR1hSSDY4c0pVZGpyZmEwaEFEcjBzTVB5STFkYnF3Q1Iz?=
 =?utf-8?B?MDUxUGc4ODFidzROVTczbHQ4Q1Z3RlZLMGh2cElsbVQvNFNPMnp1UUw0STFn?=
 =?utf-8?B?TlV5MEx5cjJzSkxBT3p3WlRKQVNGb0lkU1A3elErZXBEblQ5VGdTbjJoWjJ4?=
 =?utf-8?B?cVdrSzF3ZlZQWjhrRXhEek1mMEZ1bXpmeFgwOTNlMDJLVlF6dlpwMjN5Mm82?=
 =?utf-8?B?NVcxRzZMOHdOKzJPdUErMTl0dG5UdGJ3cmxVUlBhejRCcXFUYTNubkFxbmFE?=
 =?utf-8?B?UUFZNnB3TmQ5VCtWREIxVGFhSDJCYnRLNEZ4emkwZ0hibGU4dXZkTWY1dFZy?=
 =?utf-8?B?RlpvKzI4eGVXM3hVcHplTkJCRzhLdVMvb2VaMGwzRWlMREQ1YUt4L3Z3OHJN?=
 =?utf-8?B?eWdySnJEZlZJU3lKN25MVTFCaXpwSlk4dlc1d20rRjYyZXEvMk9GMHB0OFVv?=
 =?utf-8?B?V3MzWDVua0xKajNDRzR0VEpxV1ZUOTlFWkZZK2tEa0tQcVgxYXJPWUpDbVRI?=
 =?utf-8?B?UkpGRWlza1FpVEdBdDMwRW85amp6QWhZQVJmV21JZlVUa2J3MjFEVFpJazZT?=
 =?utf-8?B?NjExcU1BMGtRalc0Vy9JWE9FTW5JQVRodG0vZTh1djVWa2tBemlOb2d3OVI5?=
 =?utf-8?B?SFhCVCtBTFNwcWR6ZlZmK3pGUncxSnc4bjQweHVLUVVENTh1NERjb0RZT3hC?=
 =?utf-8?B?b2hCWWZQZlVqSXEzWCtWSnQyL1lUNHhTUTNiSWxkamlZYVRPZm81ZGRrdTFL?=
 =?utf-8?B?dVJGdTFLWk53QlJPK29YRWtEVTZkZ3VMOW16QWVsTTVFNnMyK3hyK25HTXpZ?=
 =?utf-8?B?ZTJObHBlRVlIZ1lpMUVqWmZqWFRFY1RFc1cvUVNjYWNKckIxU1VoSDhjVEZ5?=
 =?utf-8?B?amlhb2V2ZmMzbG5zeU9UMzhKNmZkZkZkaVRnaUZkVDlJR05DNGROaGxTYXQr?=
 =?utf-8?B?Zys5N0JRUlZ5VUNoQ2p6NWR6V2d5ZDN4TW5RVkFlU2pEdXlmQ1ZVK1QvL1lX?=
 =?utf-8?B?L1MrU1Niajl1V3ZCR2NyamlwS0FHTnU0T1dhMjlZanQxcUhMNzJ6L1cybUFO?=
 =?utf-8?B?SkVmdEJuTWRia2lXNnNUeldJZDFidGJqUEtPSjVHSzNHQ0U4YzZzdEdzdUFF?=
 =?utf-8?B?QnE2SVBoSXVjeGNQNzdGMlZNWXgxQmxXMXZtTStsUnNXa2p4Z1paUkJWSEJl?=
 =?utf-8?B?ZElRZHV5TzlUYzUxdkxPanNmZjFhczJya01mYnpmekRTckd0UTJYUlNXUHVh?=
 =?utf-8?B?WDg4SDlMRUh5MEpGd2gxbmowS0luNnlVRVlhZDhzY3FUbS9UbFVLa3lndHJv?=
 =?utf-8?B?eWpxbHI3SGVaU3VoL045SkxqN3g1Mlk2K212R0xnUS93R1FHVCtDemFHVVVZ?=
 =?utf-8?B?MkFvdXptVzBWWStkZjk5a3NRbXVaY0NUbmpDNzVVKzRvRUJZRzdRS0xISkQ4?=
 =?utf-8?B?ajMwN1JVMzRnPT0=?=
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);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Apr 2025 15:35:31.1110
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 254c8433-8121-441c-7e01-08dd71fc008f
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:
	BN3PEPF0000B071.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR12MB7429

On 2025-04-01 20:03, Stefano Stabellini wrote:
> On Mon, 31 Mar 2025, Jason Andryuk wrote:
>> Add capabilities property to dom0less to allow building a
>> disaggregated system.  Only a single hardware domain and single xenstore
>> domain can be specified.  Multiple control domains are possible.
>>
>> Introduce bootfdt.h to contain these constants.
>>
>> When using the hardware or xenstore capabilities, adjust the grant and
>> event channel limits similar to dom0.
>>
>> For a hardware domain, require an IOMMU and disallow specifying a vpl011
>> console or nr_spis.
>>
>> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
>> ---
>> v2:
>> Fix comment style
>> Make DOMAIN_CAPS_* unsigned
>> Remove forced directmap & iommu
>> Require iommu with use of hardware domain
>> Limit to a single xenstore domain
>>
>> There is overlap with hyperlaunch.  The numeric values are the same.
>> Hyperlaunch doesn't expose the values in a public header as done here.
>> Is this to be expected for dom0less?  It seems most of dom0less isn't in
>> a header, but just in docs.
>>
>> Hyperlaunch uses BUILD_CAPS_, but I chose DOMAIN_CAPS_ since there are
>> domain-level capabilities.
>>
>> Only a single xenstore and hardware domain make sense.  Hardware domain
>> receiving all hardware can only have a single domain.
>>
>> For Xenstore, the logic latches the single xs_domid and uses that for
>> all domains.  Also, only a single domain can register for VIRQ_DOM_EXC.
>> ---

>> @@ -1020,6 +1023,40 @@ void __init create_domUs(void)
>>           if ( (max_init_domid + 1) >= DOMID_FIRST_RESERVED )
>>               panic("No more domain IDs available\n");
>>   
>> +        if ( dt_property_read_u32(node, "capabilities", &val) )
>> +        {
>> +            if ( val & ~DOMAIN_CAPS_MASK )
>> +                panic("Invalid capabilities (%"PRIx32")\n", val);
>> +
>> +            if ( val & DOMAIN_CAPS_CONTROL )
>> +                flags |= CDF_privileged;
>> +
>> +            if ( val & DOMAIN_CAPS_HARDWARE )
>> +            {
>> +                if ( hardware_domain )
>> +                    panic("Only 1 hardware domain can be specified! (%pd)\n",
>> +                           hardware_domain);
>> +
>> +                if ( !iommu_enabled )
>> +                    panic("iommu required for dom0less hardware domain\n");
> 
> The panic is OK if "direct-map" is not specified. We need to check for
> direct-map before panic'ing.

Ok, I guess I misunderstood Julien's comment - I thought he wanted to 
require an iommu.  I can re-work it.

!direct-map && !iommu will panic.  Any other combination of direct-map 
and iommu will be allowed.

Hmmm, "passthrough" and "multiboot,device-tree" are essentially ignored 
for hwdom right now.  I'll require them to be unset for hwdom.

Regards,
Jason


From xen-devel-bounces@lists.xenproject.org Wed Apr 02 15:41:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 02 Apr 2025 15:41:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.935962.1337313 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u00DO-00080U-1u; Wed, 02 Apr 2025 15:41:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 935962.1337313; Wed, 02 Apr 2025 15:41: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 1u00DN-00080N-UR; Wed, 02 Apr 2025 15:41:17 +0000
Received: by outflank-mailman (input) for mailman id 935962;
 Wed, 02 Apr 2025 15:41: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=mzyM=WU=intel.com=dave.hansen@srs-se1.protection.inumbo.net>)
 id 1u00DM-00080H-Ap
 for xen-devel@lists.xenproject.org; Wed, 02 Apr 2025 15:41:16 +0000
Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.15])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e7be4100-0fd8-11f0-9ea9-5ba50f476ded;
 Wed, 02 Apr 2025 17:41:14 +0200 (CEST)
Received: from orviesa003.jf.intel.com ([10.64.159.143])
 by fmvoesa109.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 02 Apr 2025 08:41:11 -0700
Received: from johunt-mobl9.ger.corp.intel.com (HELO [10.124.222.41])
 ([10.124.222.41])
 by ORVIESA003-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 02 Apr 2025 08:41:08 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e7be4100-0fd8-11f0-9ea9-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1743608474; x=1775144474;
  h=message-id:date:mime-version:subject:to:cc:references:
   from:in-reply-to:content-transfer-encoding;
  bh=Y/O2DK5Lf6ey6Pfej1vFZZLi5jn02o1oRvHXFQ36iCQ=;
  b=DCWsLztWWH6mMAe3YyF6daSqgIXAHmar5AHhc64uXXhxpfPtwNSv1hnh
   W+lVZCj7MWMv/eWaNHVdYmImqRV1sLhEibuFvY2N38U5pJcT5JkV00k7D
   y44wZ95c5QPIg9dpcUFpiSJ07QVP8aeQJPfa937fLmxCGz57QfV+DPVrG
   4/i5JFMBmpYlD4/lodJIhQXfC3fJmKmlhlYLgqhFRsBU39s1nXuZtjo12
   XpwiQ2wB6HZU7BmJptqKNHUjCbQI6OrTn4WQpZKEh8jrogGshAqyDy9+E
   MHIcLti/7ovRRth5KVzQ9QzatKUXgM5hnHBD2PHcTNiiHE10oQd0yUWzG
   A==;
X-CSE-ConnectionGUID: nr5s/BUfRBC/UwoQbmFGOA==
X-CSE-MsgGUID: Sm1NmKgNTs67vbv2HMNuFA==
X-IronPort-AV: E=McAfee;i="6700,10204,11392"; a="45106894"
X-IronPort-AV: E=Sophos;i="6.15,182,1739865600"; 
   d="scan'208";a="45106894"
X-CSE-ConnectionGUID: zHDjNtvDTouroy5OyapFag==
X-CSE-MsgGUID: S3MiKWOZRGuvNqyyZyUeaQ==
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="6.15,182,1739865600"; 
   d="scan'208";a="131603092"
Message-ID: <e5770add-9d18-40e1-929d-df7c40f3c7d1@intel.com>
Date: Wed, 2 Apr 2025 08:41:07 -0700
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH v1 01/15] x86/msr: Replace __wrmsr() with
 native_wrmsrl()
To: Xin Li <xin@zytor.com>, "H. Peter Anvin" <hpa@zytor.com>,
 Ingo Molnar <mingo@kernel.org>
Cc: linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org,
 linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
 linux-edac@vger.kernel.org, kvm@vger.kernel.org,
 xen-devel@lists.xenproject.org, linux-ide@vger.kernel.org,
 linux-pm@vger.kernel.org, bpf@vger.kernel.org, llvm@lists.linux.dev,
 tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
 dave.hansen@linux.intel.com, x86@kernel.org, jgross@suse.com,
 andrew.cooper3@citrix.com, peterz@infradead.org, acme@kernel.org,
 namhyung@kernel.org, mark.rutland@arm.com,
 alexander.shishkin@linux.intel.com, jolsa@kernel.org, irogers@google.com,
 adrian.hunter@intel.com, kan.liang@linux.intel.com, wei.liu@kernel.org,
 ajay.kaher@broadcom.com, alexey.amakhalov@broadcom.com,
 bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
 pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
 luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
 haiyangz@microsoft.com, decui@microsoft.com
References: <20250331082251.3171276-1-xin@zytor.com>
 <20250331082251.3171276-2-xin@zytor.com> <Z-pruogreCuU66wm@gmail.com>
 <9D15DE81-2E68-4FCD-A133-4963602E18C9@zytor.com>
 <a0254e73-bf7c-4876-b64e-b08e96044666@zytor.com>
From: Dave Hansen <dave.hansen@intel.com>
Content-Language: en-US
Autocrypt: addr=dave.hansen@intel.com; keydata=
 xsFNBE6HMP0BEADIMA3XYkQfF3dwHlj58Yjsc4E5y5G67cfbt8dvaUq2fx1lR0K9h1bOI6fC
 oAiUXvGAOxPDsB/P6UEOISPpLl5IuYsSwAeZGkdQ5g6m1xq7AlDJQZddhr/1DC/nMVa/2BoY
 2UnKuZuSBu7lgOE193+7Uks3416N2hTkyKUSNkduyoZ9F5twiBhxPJwPtn/wnch6n5RsoXsb
 ygOEDxLEsSk/7eyFycjE+btUtAWZtx+HseyaGfqkZK0Z9bT1lsaHecmB203xShwCPT49Blxz
 VOab8668QpaEOdLGhtvrVYVK7x4skyT3nGWcgDCl5/Vp3TWA4K+IofwvXzX2ON/Mj7aQwf5W
 iC+3nWC7q0uxKwwsddJ0Nu+dpA/UORQWa1NiAftEoSpk5+nUUi0WE+5DRm0H+TXKBWMGNCFn
 c6+EKg5zQaa8KqymHcOrSXNPmzJuXvDQ8uj2J8XuzCZfK4uy1+YdIr0yyEMI7mdh4KX50LO1
 pmowEqDh7dLShTOif/7UtQYrzYq9cPnjU2ZW4qd5Qz2joSGTG9eCXLz5PRe5SqHxv6ljk8mb
 ApNuY7bOXO/A7T2j5RwXIlcmssqIjBcxsRRoIbpCwWWGjkYjzYCjgsNFL6rt4OL11OUF37wL
 QcTl7fbCGv53KfKPdYD5hcbguLKi/aCccJK18ZwNjFhqr4MliQARAQABzUVEYXZpZCBDaHJp
 c3RvcGhlciBIYW5zZW4gKEludGVsIFdvcmsgQWRkcmVzcykgPGRhdmUuaGFuc2VuQGludGVs
 LmNvbT7CwXgEEwECACIFAlQ+9J0CGwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEGg1
 lTBwyZKwLZUP/0dnbhDc229u2u6WtK1s1cSd9WsflGXGagkR6liJ4um3XCfYWDHvIdkHYC1t
 MNcVHFBwmQkawxsYvgO8kXT3SaFZe4ISfB4K4CL2qp4JO+nJdlFUbZI7cz/Td9z8nHjMcWYF
 IQuTsWOLs/LBMTs+ANumibtw6UkiGVD3dfHJAOPNApjVr+M0P/lVmTeP8w0uVcd2syiaU5jB
 aht9CYATn+ytFGWZnBEEQFnqcibIaOrmoBLu2b3fKJEd8Jp7NHDSIdrvrMjYynmc6sZKUqH2
 I1qOevaa8jUg7wlLJAWGfIqnu85kkqrVOkbNbk4TPub7VOqA6qG5GCNEIv6ZY7HLYd/vAkVY
 E8Plzq/NwLAuOWxvGrOl7OPuwVeR4hBDfcrNb990MFPpjGgACzAZyjdmYoMu8j3/MAEW4P0z
 F5+EYJAOZ+z212y1pchNNauehORXgjrNKsZwxwKpPY9qb84E3O9KYpwfATsqOoQ6tTgr+1BR
 CCwP712H+E9U5HJ0iibN/CDZFVPL1bRerHziuwuQuvE0qWg0+0SChFe9oq0KAwEkVs6ZDMB2
 P16MieEEQ6StQRlvy2YBv80L1TMl3T90Bo1UUn6ARXEpcbFE0/aORH/jEXcRteb+vuik5UGY
 5TsyLYdPur3TXm7XDBdmmyQVJjnJKYK9AQxj95KlXLVO38lczsFNBFRjzmoBEACyAxbvUEhd
 GDGNg0JhDdezyTdN8C9BFsdxyTLnSH31NRiyp1QtuxvcqGZjb2trDVuCbIzRrgMZLVgo3upr
 MIOx1CXEgmn23Zhh0EpdVHM8IKx9Z7V0r+rrpRWFE8/wQZngKYVi49PGoZj50ZEifEJ5qn/H
 Nsp2+Y+bTUjDdgWMATg9DiFMyv8fvoqgNsNyrrZTnSgoLzdxr89FGHZCoSoAK8gfgFHuO54B
 lI8QOfPDG9WDPJ66HCodjTlBEr/Cwq6GruxS5i2Y33YVqxvFvDa1tUtl+iJ2SWKS9kCai2DR
 3BwVONJEYSDQaven/EHMlY1q8Vln3lGPsS11vSUK3QcNJjmrgYxH5KsVsf6PNRj9mp8Z1kIG
 qjRx08+nnyStWC0gZH6NrYyS9rpqH3j+hA2WcI7De51L4Rv9pFwzp161mvtc6eC/GxaiUGuH
 BNAVP0PY0fqvIC68p3rLIAW3f97uv4ce2RSQ7LbsPsimOeCo/5vgS6YQsj83E+AipPr09Caj
 0hloj+hFoqiticNpmsxdWKoOsV0PftcQvBCCYuhKbZV9s5hjt9qn8CE86A5g5KqDf83Fxqm/
 vXKgHNFHE5zgXGZnrmaf6resQzbvJHO0Fb0CcIohzrpPaL3YepcLDoCCgElGMGQjdCcSQ+Ci
 FCRl0Bvyj1YZUql+ZkptgGjikQARAQABwsFfBBgBAgAJBQJUY85qAhsMAAoJEGg1lTBwyZKw
 l4IQAIKHs/9po4spZDFyfDjunimEhVHqlUt7ggR1Hsl/tkvTSze8pI1P6dGp2XW6AnH1iayn
 yRcoyT0ZJ+Zmm4xAH1zqKjWplzqdb/dO28qk0bPso8+1oPO8oDhLm1+tY+cOvufXkBTm+whm
 +AyNTjaCRt6aSMnA/QHVGSJ8grrTJCoACVNhnXg/R0g90g8iV8Q+IBZyDkG0tBThaDdw1B2l
 asInUTeb9EiVfL/Zjdg5VWiF9LL7iS+9hTeVdR09vThQ/DhVbCNxVk+DtyBHsjOKifrVsYep
 WpRGBIAu3bK8eXtyvrw1igWTNs2wazJ71+0z2jMzbclKAyRHKU9JdN6Hkkgr2nPb561yjcB8
 sIq1pFXKyO+nKy6SZYxOvHxCcjk2fkw6UmPU6/j/nQlj2lfOAgNVKuDLothIxzi8pndB8Jju
 KktE5HJqUUMXePkAYIxEQ0mMc8Po7tuXdejgPMwgP7x65xtfEqI0RuzbUioFltsp1jUaRwQZ
 MTsCeQDdjpgHsj+P2ZDeEKCbma4m6Ez/YWs4+zDm1X8uZDkZcfQlD9NldbKDJEXLIjYWo1PH
 hYepSffIWPyvBMBTW2W5FRjJ4vLRrJSUoEfJuPQ3vW9Y73foyo/qFoURHO48AinGPZ7PC7TF
 vUaNOTjKedrqHkaOcqB185ahG2had0xnFsDPlx5y
In-Reply-To: <a0254e73-bf7c-4876-b64e-b08e96044666@zytor.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 3/31/25 22:53, Xin Li wrote:
> Per "struct msr" defined in arch/x86/include/asm/shared/msr.h:
> 
> struct msr {
>         union {
>                 struct {
>                         u32 l;
>                         u32 h;
>                 };
>                 u64 q;
>         };
> };
> 
> Probably *msrq() is what we want?

What would folks think about "wrmsr64()"? It's writing a 64-bit value to
an MSR and there are a lot of functions in the kernel that are named
with the argument width in bits.


From xen-devel-bounces@lists.xenproject.org Wed Apr 02 15:57:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 02 Apr 2025 15:57:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.935980.1337322 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u00TG-0003Zr-Bm; Wed, 02 Apr 2025 15:57:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 935980.1337322; Wed, 02 Apr 2025 15:57: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 1u00TG-0003Zk-9J; Wed, 02 Apr 2025 15:57:42 +0000
Received: by outflank-mailman (input) for mailman id 935980;
 Wed, 02 Apr 2025 15:57: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=UCKB=WU=zytor.com=hpa@srs-se1.protection.inumbo.net>)
 id 1u00TD-0003Ze-VL
 for xen-devel@lists.xenproject.org; Wed, 02 Apr 2025 15:57:40 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 31b612d0-0fdb-11f0-9ffb-bf95429c2676;
 Wed, 02 Apr 2025 17:57:36 +0200 (CEST)
Received: from [127.0.0.1] ([76.133.66.138]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 532FutGe095148
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NO);
 Wed, 2 Apr 2025 08:56:56 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 31b612d0-0fdb-11f0-9ffb-bf95429c2676
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 532FutGe095148
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025032001; t=1743609418;
	bh=Xa25b++XKImzKTw5z/38OkUO4BtW0ZFRs8vcKJg4Ci0=;
	h=Date:From:To:CC:Subject:In-Reply-To:References:From;
	b=PKY9pYPRwrzTz3T2wfMHzO5CxQTclyrXpopuE633CLIfZy/ukPrGJisoGqNXqtKGR
	 Kwz413hdEtK5pBXselQWUxDFcZNypXyGZdI8G30/DwRJXDsP4zWDSJB/AE9/Rxd+2y
	 UpqxkHxOPXPWmGYI+FJgvcCaL46+fNbgfHJ0c/b1wjVyQCE2qT0M/ZA7JLtTSrk+kH
	 ZmVpsuIPE4MYWvvrXrlGIXqvQJY0mfJeR5VLbutwJ29pIU+n402Afr0HUdg174buI6
	 LnlSkpy+WJQiHzFkU9vzRc2V7DoFNa6OrQ/gdWEEYK97M+97vAsoAKJUgXaK8+OFNg
	 pTT1Aq8YFeE0Q==
Date: Wed, 02 Apr 2025 08:56:55 -0700
From: "H. Peter Anvin" <hpa@zytor.com>
To: Dave Hansen <dave.hansen@intel.com>, Xin Li <xin@zytor.com>,
        Ingo Molnar <mingo@kernel.org>
CC: linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org,
        linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
        linux-edac@vger.kernel.org, kvm@vger.kernel.org,
        xen-devel@lists.xenproject.org, linux-ide@vger.kernel.org,
        linux-pm@vger.kernel.org, bpf@vger.kernel.org, llvm@lists.linux.dev,
        tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, jgross@suse.com,
        andrew.cooper3@citrix.com, peterz@infradead.org, acme@kernel.org,
        namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        alexey.amakhalov@broadcom.com, bcm-kernel-feedback-list@broadcom.com,
        tony.luck@intel.com, pbonzini@redhat.com, vkuznets@redhat.com,
        seanjc@google.com, luto@kernel.org, boris.ostrovsky@oracle.com,
        kys@microsoft.com, haiyangz@microsoft.com, decui@microsoft.com
Subject: =?US-ASCII?Q?Re=3A_=5BRFC_PATCH_v1_01/15=5D_x86/msr=3A_Re?=
 =?US-ASCII?Q?place_=5F=5Fwrmsr=28=29_with_native=5Fwrmsrl=28=29?=
User-Agent: K-9 Mail for Android
In-Reply-To: <e5770add-9d18-40e1-929d-df7c40f3c7d1@intel.com>
References: <20250331082251.3171276-1-xin@zytor.com> <20250331082251.3171276-2-xin@zytor.com> <Z-pruogreCuU66wm@gmail.com> <9D15DE81-2E68-4FCD-A133-4963602E18C9@zytor.com> <a0254e73-bf7c-4876-b64e-b08e96044666@zytor.com> <e5770add-9d18-40e1-929d-df7c40f3c7d1@intel.com>
Message-ID: <ADCFB190-A89A-460D-81A6-80E20AEFBFBC@zytor.com>
MIME-Version: 1.0
Content-Type: text/plain;
 charset=utf-8
Content-Transfer-Encoding: quoted-printable

On April 2, 2025 8:41:07 AM PDT, Dave Hansen <dave=2Ehansen@intel=2Ecom> wr=
ote:
>On 3/31/25 22:53, Xin Li wrote:
>> Per "struct msr" defined in arch/x86/include/asm/shared/msr=2Eh:
>>=20
>> struct msr {
>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 union {
>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0 struct {
>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 u32 l=
;
>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 u32 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=C2=A0=C2=A0=C2=A0 u64 q;
>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 };
>> };
>>=20
>> Probably *msrq() is what we want?
>
>What would folks think about "wrmsr64()"? It's writing a 64-bit value to
>an MSR and there are a lot of functions in the kernel that are named
>with the argument width in bits=2E

Personally, I hate the extra verbosity, mostly visual, since numerals are =
nearly as prominent as capital letters they tend to attract the eye=2E Ther=
e is a reason why they aren't used this way in assembly languages=2E


From xen-devel-bounces@lists.xenproject.org Wed Apr 02 16:01:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 02 Apr 2025 16:01:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.935990.1337332 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u00We-00062O-QV; Wed, 02 Apr 2025 16:01:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 935990.1337332; Wed, 02 Apr 2025 16:01:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u00We-00062H-Nk; Wed, 02 Apr 2025 16:01:12 +0000
Received: by outflank-mailman (input) for mailman id 935990;
 Wed, 02 Apr 2025 16:01: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=qYE3=WU=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u00Wc-00062B-R7
 for xen-devel@lists.xenproject.org; Wed, 02 Apr 2025 16:01:10 +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 b0a8cca5-0fdb-11f0-9ffb-bf95429c2676;
 Wed, 02 Apr 2025 18:01:08 +0200 (CEST)
Received: by mail-wr1-x436.google.com with SMTP id
 ffacd0b85a97d-39ac9aea656so5664705f8f.3
 for <xen-devel@lists.xenproject.org>; Wed, 02 Apr 2025 09:01:08 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39c0b79e304sm17450271f8f.73.2025.04.02.09.01.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 02 Apr 2025 09:01: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: b0a8cca5-0fdb-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1743609668; x=1744214468; 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=G+1sbc63Ze+euMZdz+WzYemuEtRMyFbIG9QURo1ofzA=;
        b=k0GiNrRNsHujyM+x4NIyIi6TssQCmYSkmiCeW8JnOP1dEoN2qQJJE5g2TZ+T3TBplB
         jG82nSvWtKWcZSeaux8x2rQeTBXo3sobBMd7ml1bfO7JWiRL/QfrZPsrC2oFentW0JLs
         XuO0gTgZuidFO4rgM5CvEoEi0tgkoMd5iZU+8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743609668; x=1744214468;
        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=G+1sbc63Ze+euMZdz+WzYemuEtRMyFbIG9QURo1ofzA=;
        b=VBkZleut2Uk2M/KmYSFPTzY2jBvmj8AeSqUX8l16kaLW8H4K+MNf+n2af4KipngNnW
         LVwXAopmyGfuJhjoRQ7hm7Y1Pi01Ld1aMou8eizyaQDlwlcmbw7prI0ca6cP+WP44fs3
         8C0xi0gpj0IuqoRfZ41wZ6bMwU6y14ffdyHfLz7Chnk1Ww/cywZKS0CEUI1qDhgLXiGg
         mBZ9NnNgIdeGvvtBQt7Ruuiw+ftAa4kViOo579h0dKMknww1+dvVrqGBpoAn6yeu041J
         CYX/DRXLX0vueidplt/f6b79KWAFMd+WEhqJVn4RXcPSScNbSgzBAuk2Wi1XG960xlw7
         d3qg==
X-Forwarded-Encrypted: i=1; AJvYcCUMgpva5KlC+DKnkv05t8gRs5o14A2to+88EdJ9BhZKKMdJW+JqTavtTxrBQk+2i3wa0GpM+CPA5T0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyZvMf6GFmsMLVkrz4JfzDdRLv+wy49J1s8BlvvFXurXur3pofQ
	+nsoSA+Vmjdd0TC+U5A1a3RgQ5gWujott8cLIDRP+Ku4zpa6KdkP0RWVVi9YIn4=
X-Gm-Gg: ASbGncs1JfYXQ9azDLOM4HDB+ss5nfamC9nsfa4NmnDGAYdE9v0obrKF8SpEF7KIjzu
	IJnBjqNDoacuvaRT5cUK8CQDu1OR06av+SU8tpEYaTpp5+TukkX8NehaFN7BpNmoBiupTKvrjL3
	manuW6bsy4IyVmRfo5rClPBxrBfXhOwEDJqxEXD5UyDrPW1K4nfCj6o3LSIgfvgc35LYY0MrsXK
	1zJBtHmPzmW2+kUOQOLb2dRqiBW6vbM476mTaJVYtTzvi7ADNEkMrmZPn+ryuXZpxQ4tuKd7oRL
	ZSiIcdrqhS5TIeh0jFlpzK1NUq+EGMsVFlMYg/8OfTQEsVuF7JTAHZm8k84jCJtDd/D6R7tYJc5
	+PLL5aPuJNONTABc/exyr
X-Google-Smtp-Source: AGHT+IFyEjzK8/XL32Y+XmMdrmXR7JnLAvofjVJqJCU1vrU4HL9gcBjTvtVUguaS3552GGSZP4HR8g==
X-Received: by 2002:a05:6000:2181:b0:39c:1257:cd41 with SMTP id ffacd0b85a97d-39c1257d4f0mr9858132f8f.59.1743609667830;
        Wed, 02 Apr 2025 09:01:07 -0700 (PDT)
Message-ID: <98c3fe8e-9965-45a0-85e7-f6064f16c575@citrix.com>
Date: Wed, 2 Apr 2025 17:01:06 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: New Defects reported by Coverity Scan for XenProject
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <67ed34047fd3c_1209992cc92a0f99a0989e0@prd-scan-dashboard-0.mail>
 <e9e139fb-c023-460d-9d84-632a5ca4374c@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: <e9e139fb-c023-460d-9d84-632a5ca4374c@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 02/04/2025 3:19 pm, Jan Beulich wrote:
> On 02.04.2025 14:56, scan-admin@coverity.com wrote:
>> ** CID 1645573:  Null pointer dereferences  (FORWARD_NULL)
>>
>>
>> ________________________________________________________________________________________________________
>> *** CID 1645573:  Null pointer dereferences  (FORWARD_NULL)
>> /xen/arch/x86/mm/p2m.c: 346 in get_page_from_mfn_and_type()
>> 340     
>> 341         if ( p2m_is_ram(t) )
>> 342         {
>> 343             if ( p2m_is_shared(t) )
>> 344                 d = dom_cow;
>> 345     
>>>>>     CID 1645573:  Null pointer dereferences  (FORWARD_NULL)
>>>>>     Passing null pointer "d" to "get_page", which dereferences it.
>> 346             if ( get_page(page, d) )
>> 347                 return page;
>> 348         }
> I wonder how the tool concludes d is NULL. The only vague guess I could come
> up with is that it checks a MEM_SHARING=n build, where dom_cow is always
> NULL. Yet in such a build p2m_shared() is also always false. Should we perhaps
> help it by forcing P2M_SHARED_TYPES (maybe also P2M_SHARABLE_TYPES) to 0 when
> MEM_SHARING=n? We do such already for MEM_PAGING=n ...

What's in the web UI but missing from the email is:

343        if ( p2m_is_shared(t) )
      4. assign_zero: Assigning: d = NULL.
344            d = dom_cow;
345
     
CID 1645573: (#1 of 1): Explicit null dereferenced (FORWARD_NULL)
5. var_deref_model: Passing null pointer d to get_page, which
dereferences it.[show details]
346        if ( get_page(page, d) )
347            return page;

So it's definitely running a CONFIG_MEM_SHARING=n build, with some logic
that doesn't DCE properly.

I think we'd have a better time if dom_cow remained a dangling extern,
but I expect it's NULL because it doesn't DCE properly.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Apr 02 19:45:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 02 Apr 2025 19:45:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.936032.1337375 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u041I-0006rq-HF; Wed, 02 Apr 2025 19:45:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 936032.1337375; Wed, 02 Apr 2025 19:45: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 1u041I-0006rg-CF; Wed, 02 Apr 2025 19:45:04 +0000
Received: by outflank-mailman (input) for mailman id 936032;
 Wed, 02 Apr 2025 19:45: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=MBi7=WU=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1u041H-0006rI-F8
 for xen-devel@lists.xenproject.org; Wed, 02 Apr 2025 19:45:03 +0000
Received: from NAM11-CO1-obe.outbound.protection.outlook.com
 (mail-co1nam11on2062e.outbound.protection.outlook.com
 [2a01:111:f403:2416::62e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f592b708-0ffa-11f0-9eaa-5ba50f476ded;
 Wed, 02 Apr 2025 21:45:00 +0200 (CEST)
Received: from SA1PR05CA0021.namprd05.prod.outlook.com (2603:10b6:806:2d2::21)
 by CH2PR12MB4216.namprd12.prod.outlook.com (2603:10b6:610:a8::23)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.45; Wed, 2 Apr
 2025 19:44:54 +0000
Received: from SA2PEPF00003F64.namprd04.prod.outlook.com
 (2603:10b6:806:2d2:cafe::ed) by SA1PR05CA0021.outlook.office365.com
 (2603:10b6:806:2d2::21) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8606.24 via Frontend Transport; Wed,
 2 Apr 2025 19:44:53 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 SA2PEPF00003F64.mail.protection.outlook.com (10.167.248.39) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8606.22 via Frontend Transport; Wed, 2 Apr 2025 19:44: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; Wed, 2 Apr
 2025 14:44:53 -0500
Received: from [172.29.45.113] (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, 2 Apr 2025 14:44:52 -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: f592b708-0ffa-11f0-9eaa-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=s3bK63PPiplHHbsZ//LGfO10SodNB8zdxl2wRHont/VuA/MALtToKenYK8z3PxDEI5twyI31vOC2OsUV/775JbMS2qT2OGLZ3yG7FjG/ft06BLsYklZ9lvoGLmQ+7mNvFeUpD7RHeNUTPOdDEr68fNsSEsG5fMQKJBzhKjO5flhkA21tJ6dKCGDa/5shDbFJ9nh4cnU8yLlXZPaLf/QaUdqghn3NH55dM67yI/8VKpbTrm0hFO7XcEaG608JEYShPhMJto73q1a/OAgHcKALoK8auLCQQwh5zQFGyOtWND3zsttfBFRt+dczpTUbhh1n24gpWRYSBvGjG1D5Ve0zpA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=YVUDgxZwZhbEor8eFex4pwB2zoHtjJee5WY22BW857s=;
 b=V+tVFnA7RaoJY4Z/p56BnM/VsQljuSDkIMMuw8P+u42QMmWc8doTCeF69W/j30iRNgS6sSDWXfWsV61we+DIVEHxsPSIcjT4qKIr93J06W8ikAa+lAuQeT9LLOkrm0Q/KjNKiRHifIg00xbXgArqfttG3q77bDd6Z9JFvqaHs+fFpW6qTSE8zYayhNSjESaQqUm6QOhSDGyO5Q+gbrHRjX4UsPYf2NGDOR0jYyxlKcHYvqnJdR49CH9OxaATXgnnyrOdUGJZqCCIjk0LDkBec+yjF41xlyTu0O/wYENSCDR49SuJq+RJVYkb8VtR8GzCe3TWRsD/lfHf49v3TaJ8Iw==
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=YVUDgxZwZhbEor8eFex4pwB2zoHtjJee5WY22BW857s=;
 b=vVTTdWNr53Vz5HWysWO7tQ8yInMeVqftM2INVAJao1PEqOfBg5EUYSG5whaaeZa6FOEYVWogiOc0u8b8bqZno+MhMbKjxEaGLg2XYvZRNTCKmQ7XXzbon3o4BJ30hXiQNTltDFl2OMsG7mObVxe8SR+JLduj/foL+1ZoB8Wqzpo=
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: <8afae3ba-c804-4867-a699-1ecf8f262cbd@amd.com>
Date: Wed, 2 Apr 2025 15:44:54 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 06/15] x86/hyperlaunch: introduce the domain builder
To: Jan Beulich <jbeulich@suse.com>
CC: <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>,
	<Alejandro.GarciaVallejo@amd.com>, "Daniel P. Smith"
	<dpsmith@apertussolutions.com>
References: <20241226165740.29812-1-dpsmith@apertussolutions.com>
 <20241226165740.29812-7-dpsmith@apertussolutions.com>
 <004b066a-b26f-44bd-994f-5c573f6511e6@suse.com>
 <847a0afa-05bd-4f33-b07c-d9d69b9198ae@amd.com>
 <9e3f962a-a45b-4dba-b204-b9f6acae30ec@suse.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <9e3f962a-a45b-4dba-b204-b9f6acae30ec@suse.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: SA2PEPF00003F64:EE_|CH2PR12MB4216:EE_
X-MS-Office365-Filtering-Correlation-Id: 7971bac2-a61e-4f6f-7b97-08dd721ed703
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|376014|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?YVlHVVFaVVF2bDVac2tjOERXSjMwbWpOaU84QUV0dEJyTmtoOFBUdzVETWds?=
 =?utf-8?B?em5zd3FUMlpBYXRQeC9MYnQxRWJjcmZVRi9HVVJkQ29yczFhQTltVGN3bWs4?=
 =?utf-8?B?NzlwTUU1T2Q1dWQ3T3ZtbjRRWTV3Tm1hWDJwSzdCYldXTFBBTzdpWVI5QW1u?=
 =?utf-8?B?bXFHV0MxWVUzWlZoWGxRTjU3bzRjcVpOM3lDNUZiWENpemR0RWV6dWUzV1NK?=
 =?utf-8?B?WUJGbGtLT2VxQTBNT1VSRDRCTThMNlU3cXFwekpUamhGeCtZRkI1MTdndnYr?=
 =?utf-8?B?bDEwVHhqNGg2VXB5dndzNHJvTWtFUzArdE9yOFU5TmtCQ0F1S0hQVGVnbFRP?=
 =?utf-8?B?YkNWTENFZ0l4blBuQWhHUEVyK1JKMGhkMnNrL0tNR0dZNWJkSXlCMFZyV1pY?=
 =?utf-8?B?QUZnbzRkK0hSaGhZUVJQMFp0R2ZBNTl0bmNzZVpwNUNmK1MzdGI3blBCaCsw?=
 =?utf-8?B?RGtNbXJTcWp2Y29uZHhERk96YnNwaStacllFVVI1TjN1RnhONHR0Y2hYaDIv?=
 =?utf-8?B?V0NnV0orZTA2cCttT3N6a0syUXphTGpWemFBZ0FscUZERnZaa2EyaHR0cU9E?=
 =?utf-8?B?K3BSS2NOLzhUTjB4NzRBbEt5cyt0bG41cnpCRjM5eklaaUZYZXIyQmFpTHpy?=
 =?utf-8?B?UlkyOWM2R0hNWmlSV3BVUkV0M0UwbzZsOWZtRytVWWl2QzNWTVFKeEhFQ1dM?=
 =?utf-8?B?T1pkaVZ6OWg0YzJRODZQeUJicExqaUxiMjZkSVpuTThDQk15UU94ZmlKTGJj?=
 =?utf-8?B?VFpacHJPY3VoajJUR3IrZU1OT1BLYXUxT2VFTXJzRTZCQWQ5SVpZdzZKNDEz?=
 =?utf-8?B?UGpsQ041UW5mcDZjYjdMalRzOFY5QXpycWZZUlBOdmdkSUFIVTVoRE5FeXFj?=
 =?utf-8?B?REVnVVFGcGhoNmUveG9UbjlGTk1jbUdVaXl0VzVlZVlKWFZkb1IwSFAvS2wr?=
 =?utf-8?B?V1RlZ1FyUFhGc00yUmc3VFZ4RXF3Y1dXQ1ZtUG5idzhrcG1EN2J4a1UyVHBD?=
 =?utf-8?B?S2YxMUZaM0sya3hJdi9EeUNoMHQ3N2hRalRPdjAzUmVXQTZuaXlPSEdkUmpw?=
 =?utf-8?B?VHk1eS82YXFlOEx3dlBGdWZPUDdrRWRNZmw2RHZLZjZmdlJCRWF5eTh1TW01?=
 =?utf-8?B?cjZraTRralA5K3JwdW5TbnBXMGpxYmZ6bXlhVGZqMlF0Q0lIWjNMMzQ3QnRI?=
 =?utf-8?B?VEhlNUpVWklkZmJtdzVLK25QZ1M5bGU1b09oYUxENzF0ZEFweWdZdk4xQ0VE?=
 =?utf-8?B?aVcxK2JVZ1ZFdjRlUXN0by9JT3lEY2I2NUpyNHVkaWQ0VFZpTlBXdVZ4VW9a?=
 =?utf-8?B?L0ovNHE1OEJ3b1dKRkUvTEQ0Ynljd00yYm1HbzJ6dTlzZ29FaVY1aTVGbnVN?=
 =?utf-8?B?V1hIQXVhU1hQQlNDS0J6V3NpZEU2aWZFQVdDcW1LKzNhcUMyalloYnlGR2Fs?=
 =?utf-8?B?MHllNUJzVFd2dlF3NFdFVnpPbFc3dlljRW4wKzVWbDl2a0lrVmpWNEp2cnV5?=
 =?utf-8?B?T0F2cUppQnp0RXJIM0lkL1Q1enFJRmtTbEpUekNBUExEam5EakZWYjVzZHFq?=
 =?utf-8?B?OFM0ajR5M3J1a0ZOY0dLdE1KTUFxWlFaTXNrSmhqdHNvRlpoZnoxT2pyeDhK?=
 =?utf-8?B?SGNjSTZaemJqUVNGdXpOUFdJb29ycUhPMVNPMFRCWWxNcjNCd3pXMUxvUEo4?=
 =?utf-8?B?anhldWJYNzJlV2dEM3pVcDU1RWpzN3MyemhjUnpqV0gya0JNamVhYjhoekhl?=
 =?utf-8?B?Mnp3eXNzeCtmeXJ3dnpVYktNQ1FxVDhlKzNLODNXTi90SGY3M1dxRXFLUkll?=
 =?utf-8?B?cVFjQXVmejZQVitXeVVQdUVNMjR1RXFub1Q4SDhJeGtjSGtTa2I1QUZEUHBp?=
 =?utf-8?B?cVJ5a25kZW1CdWEwdTJoc2pYa1RTRFJxc0FDMGhEYmZrYVUvMkxLdEJnT3Vp?=
 =?utf-8?B?NW01ZWlkRmkrMzl4UXJxL3oyVlZrYUtPaS9sZ0RnODBhUERFV082MXlKTis0?=
 =?utf-8?Q?VLLRlsSdt9YcbQMIoYdrUsRKfMRA1o=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)(376014)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Apr 2025 19:44:53.7768
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 7971bac2-a61e-4f6f-7b97-08dd721ed703
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:
	SA2PEPF00003F64.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR12MB4216

On 2025-04-02 05:25, Jan Beulich wrote:
> On 01.04.2025 20:01, Jason Andryuk wrote:
>> On 2025-01-30 09:52, Jan Beulich wrote:
>>> On 26.12.2024 17:57, Daniel P. Smith wrote:
>>>> --- 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/
>>>
>>> The set of subdirs needed in $(obj-y) is specified at the top of the file.
>>> Also shouldn't this be obj-$(CONFIG_DOMAIN_BUILDER)?
>>
>> Later, all boot-time domain building is handled by
>> domain-builder/core.c.  So some of domain-builder/ is always built, and
>> Kconfig disables multidomain support.
> 
> Then CONFIG_DOMAIN_BUILDER is a misnomer?

Dan also adds CONFIG_MULTIDOMAIN_BUILDER later... which is used only for:
-    BUG_ON(!pv_shim && d->domain_id != 0);
+    if ( ! IS_ENABLED(CONFIG_MULTIDOMAIN_BUILDER) )
+        BUG_ON(!pv_shim && d->domain_id != 0);

:(

I thought it at least restricted the size of the boot domains array.

-Jason


From xen-devel-bounces@lists.xenproject.org Wed Apr 02 21:09:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 02 Apr 2025 21:09:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.936066.1337384 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u05Kz-0000Dv-Ap; Wed, 02 Apr 2025 21:09:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 936066.1337384; Wed, 02 Apr 2025 21: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 1u05Kz-0000Do-6j; Wed, 02 Apr 2025 21:09:29 +0000
Received: by outflank-mailman (input) for mailman id 936066;
 Wed, 02 Apr 2025 21:09:27 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=YWck=WU=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u05Kx-0000Di-8d
 for xen-devel@lists.xenproject.org; Wed, 02 Apr 2025 21:09:27 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org
 [2600:3c0a:e001:78e:0:1991:8:25])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c1132ec0-1006-11f0-9eaa-5ba50f476ded;
 Wed, 02 Apr 2025 23:09:25 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id E94A5443FF;
 Wed,  2 Apr 2025 21:09:22 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id A165DC4CEDD;
 Wed,  2 Apr 2025 21:09: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: c1132ec0-1006-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1743628163;
	bh=LeuFIcu9sOgRcgqhLY+HpJHhnhovo3qkAvw7E1i2XAk=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=WjSSlkJZfxjQ03ROkOAtZD5h+C/AQA1TI/41929IRrcNEzpSpy2tsMn5tYQU7WM4G
	 G2kzLbRUO2Ho98kSbPpmwjtleCA5hARLJlM2v6ppBKySfr5Prir3sAhKdfTwj4oKG6
	 2YTUQni92cXYerAZUSuI8bX56K1Nb2l12Z6f9Bo9XaFASe1Wwb8oidAGwcwX9GlTQQ
	 GVusvqdwp/FEM6pR3H2E6iL6RxWD6DcG9csCKBwoKLI7lr6fCKyJ554VKiV3X+Adct
	 FuuMOc5mBsp1FnwrhWw46cTKV5RhP3u7dwPf/X3CDthntmmaDuOi50JQImCAJZVTHz
	 AZKJos4oQBoBg==
Date: Wed, 2 Apr 2025 14:09:21 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
cc: "Kwon, Gihwan" <gihwan.kwon@boeing.com>, xen-devel@lists.xenproject.org, 
    Stefano Stabellini <sstabellini@kernel.org>, stewart.hildebrand@amd.com
Subject: Re: [QUESTION] Minimal Xen Configuration
In-Reply-To: <f4803fc17047a9d74928c66d39bf9632@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2504021409170.3098208@ubuntu-linux-20-04-desktop>
References: <PH3P110MB2246A9D7AFA0A73000781B0390A0A@PH3P110MB2246.NAMP110.PROD.OUTLOOK.COM> <f4803fc17047a9d74928c66d39bf9632@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, 2 Apr 2025, Nicola Vetrini wrote:
> On 2025-03-28 07:43, Kwon, Gihwan wrote:
> > Dear Xen Community,
> > 
> > I hope this message finds you well.
> > 
> > I have heard that there exists a minimal Xen configuration optimized for
> > safety-critical products, particularly in automotive applications, with the
> > code size reduced to approximately 50k SLOC.
> > 
> > Could anyone provide guidance or point me to relevant resources regarding
> > this minimal Xen configuration? Any insights or references would be greatly
> > appreciated.
> > 
> > Thank you in advance for your assistance.
> > 
> > Best regards,
> > Gihwan Kwon
> 
> Hello,
> 
> I am part of the team that provides static analysis for Xen, mainly towards
> the objective to make Xen compliant with MISRA C guidelines. As part of that
> effort, a minimal Xen configuration has been defined (for Arm and x86_64) at
> [1], which is the one currently analyzed for static analysis for each commit
> [2]. It starts from the default configuration for the architecture (i.e., make
> defconfig) and then turns on or off various Kconfig options, as specified by
> EXTRA_XEN_CONFIG.
> 
> @Stefano Stabellini (Cc'ed) is the main driving force behind the Xen
> certification effort for automotive, therefore he's probably the best person
> to approach to get more information on this matter.

Thanks Nicola. In addition to what Nicola wrote, there is an outstanding
activity to further reduce the code size by adding more kconfig options.
There are a couple of patch series on the list right now to that effect.

https://marc.info/?l=xen-devel&m=173745442831026

Last year we ran some experiments and for ARM we should be able to go below
35K LOC. The tools measuring LOC are very imprecise as they do not
account for #ifdefs and kconfig options. So we switched to text binary
size for measurements as it is more accurate.
do not account for kconfig options and #ifdefs. Hence, we switch to
using text size as size measurement for Xen. One of the figure was XXX.


From xen-devel-bounces@lists.xenproject.org Wed Apr 02 21:44:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 02 Apr 2025 21:44:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.936078.1337393 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u05sm-0001KC-Pj; Wed, 02 Apr 2025 21:44:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 936078.1337393; Wed, 02 Apr 2025 21: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 1u05sm-0001K5-Mw; Wed, 02 Apr 2025 21:44:24 +0000
Received: by outflank-mailman (input) for mailman id 936078;
 Wed, 02 Apr 2025 21:44: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=CoDa=WU=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u05sk-0001Jz-PN
 for xen-devel@lists.xenproject.org; Wed, 02 Apr 2025 21:44:23 +0000
Received: from mail-10628.protonmail.ch (mail-10628.protonmail.ch
 [79.135.106.28]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a29c0901-100b-11f0-9eaa-5ba50f476ded;
 Wed, 02 Apr 2025 23:44:20 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a29c0901-100b-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=s3n67ongsnhqzjj3s2c2zfm2xi.protonmail; t=1743630259; x=1743889459;
	bh=TmNqU07uPQxkM/ghHUkY6N16icK4s+P0Dzt381klIEE=;
	h=Date:To:From:Cc:Subject:Message-ID:Feedback-ID:From:To:Cc:Date:
	 Subject:Reply-To:Feedback-ID:Message-ID:BIMI-Selector:
	 List-Unsubscribe:List-Unsubscribe-Post;
	b=DF35QvxR8Ta+vpy+n5bFioraPiC9X4x0qiBbh2gZflxNRapBHC3gdc9cdv6KLboC+
	 xdKa7U/tKTGph20AlVUXysBg+TTFGZYK83/QWkOGF2b6PVKEXBwAPur2C2fwNq8Ivk
	 XOAD4zNbZBVnu108lEJWsur+I4gvpZUYoNiqnznvpStR3BJ1Duxs/sfbgLfHzLsFRE
	 SA1FzAnP+Gep4eG7BuqcMLMks8i5tz+iLO7HSBXhAFmcqDeRHEvETyAZRwnpbmYs6/
	 eEcBBxZGgmnGo9WNSQrP3HSevC65KTCPa3pm1VwUlIvQzeQpIs+AFpN5oi8+GjGWdB
	 qy1QeuXdRIKdw==
Date: Wed, 02 Apr 2025 21:44:15 +0000
To: xen-devel@lists.xenproject.org
From: dmkhn@proton.me
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org, dmukhin@ford.com
Subject: [PATCH v3] x86/domain: revisit logging in arch_domain_create()
Message-ID: <20250402214406.115578-1-dmukhin@ford.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: f26cd1a4b7aed4d217898d2b7dc24fa33d658f8c
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

From: Denis Mukhin <dmukhin@ford.com>

Use %pd in all logs issued from arch_domain_create().

Also, expand error message in arch_domain_create() under
!emulation_flags_ok() case to help debugging.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
Changes since v2:
- dropped full stops in the updated log messages
---
 xen/arch/x86/domain.c | 18 ++++++++++--------
 1 file changed, 10 insertions(+), 8 deletions(-)

diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index 4989600627..4ae1344cf5 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -791,13 +791,12 @@ int arch_domain_create(struct domain *d,
     {
         if ( !opt_allow_unsafe )
         {
-            printk(XENLOG_G_ERR "Xen does not allow DomU creation on this =
CPU"
-                   " for security reasons.\n");
+            printk(XENLOG_G_ERR "%pd: Xen does not allow DomU creation on =
this CPU"
+                   " for security reasons\n", d);
             return -EPERM;
         }
         printk(XENLOG_G_WARNING
-               "Dom%d may compromise security on this CPU.\n",
-               d->domain_id);
+               "%pd: domain may compromise security on this CPU\n", d);
     }
=20
     emflags =3D config->arch.emulation_flags;
@@ -807,16 +806,19 @@ int arch_domain_create(struct domain *d,
=20
     if ( emflags & ~XEN_X86_EMU_ALL )
     {
-        printk(XENLOG_G_ERR "d%d: Invalid emulation bitmap: %#x\n",
-               d->domain_id, emflags);
+        printk(XENLOG_G_ERR "%pd: Invalid emulation bitmap: %#x\n",
+               d, emflags);
         return -EINVAL;
     }
=20
     if ( !emulation_flags_ok(d, emflags) )
     {
-        printk(XENLOG_G_ERR "d%d: Xen does not allow %s domain creation "
+        printk(XENLOG_G_ERR "%pd: 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,
+               is_hvm_domain(d) ? "HVM" : "PV",
+               is_hardware_domain(d) ? "hardware " : "",
+               emflags);
         return -EOPNOTSUPP;
     }
     d->arch.emulation_flags =3D emflags;
--=20
2.34.1




From xen-devel-bounces@lists.xenproject.org Wed Apr 02 21:46:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 02 Apr 2025 21:46:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.936089.1337403 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u05uN-0001q2-3a; Wed, 02 Apr 2025 21:46:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 936089.1337403; Wed, 02 Apr 2025 21:46:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u05uN-0001pv-0J; Wed, 02 Apr 2025 21:46:03 +0000
Received: by outflank-mailman (input) for mailman id 936089;
 Wed, 02 Apr 2025 21:46: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=CoDa=WU=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u05uM-0001ph-Hy
 for xen-devel@lists.xenproject.org; Wed, 02 Apr 2025 21:46:02 +0000
Received: from mail-4316.protonmail.ch (mail-4316.protonmail.ch [185.70.43.16])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id dea41218-100b-11f0-9eaa-5ba50f476ded;
 Wed, 02 Apr 2025 23:46:01 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: dea41218-100b-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1743630360; x=1743889560;
	bh=2O1kGMLaTlLl5JHSdR5zf6l3ThcyTHn9xa2ox9FZA50=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=SkNShEUeG3iQS9fKVhudWpT2j0pY4umPzcNfyDOuWZFi9McMmLe/3qrbfP9dzF/0q
	 QuwMCkSG3WdLHEazhCMfIGFQATekCEmuvZft7AQoky7vAqUeoabNsWERwgqit7BVs3
	 fWA95QHSm2wViukilhKqQsC2T7s0mqvKToA28En6mSe1BaSD9vXOFshUOoGYiF3GLh
	 W9NQ1fehI70yhiSSL7pg+G+KaN/t8CMT/Z/fYoItAmXJwvPUU2D5gdjSdhpGw7s9iO
	 HyTrT1HVYBvmIyE2CFknBxZNdME1nhVlNn85HjXURvmiIewBu+Gzf648oCC7XAdDud
	 UVvh6ooU6Q/PA==
Date: Wed, 02 Apr 2025 21:45:56 +0000
To: xen-devel@lists.xenproject.org
From: Denis Mukhin <dmkhn@proton.me>
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org, dmukhin@ford.com
Subject: Re: [PATCH v2] x86/domain: revisit logging in arch_domain_create()
Message-ID: <qB_dfgqIHku9ojcMtx7Rv8BnT5JJG_lR8zAel48G1FTnc5NoYnW3XSYOHEnHp4zf0J_JObBDxf5czJVpuAyZ_E_PUQLmdeQrRb2TVo8Gr6Y=@proton.me>
In-Reply-To: <20250401211018.75814-1-dmukhin@ford.com>
References: <20250401211018.75814-1-dmukhin@ford.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 7e16880c56190518ec26e337f7ad9041e2850b27
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Tuesday, April 1st, 2025 at 2:10 PM, dmkhn@proton.me <dmkhn@proton.me> w=
rote:

>=20
>=20
> From: Denis Mukhin dmukhin@ford.com
>=20
>=20
> Use %pd in all logs issued from arch_domain_create().
>=20
> Also, expand error message in arch_domain_create() under
> !emulation_flags_ok() case to help debugging.
>=20
> Signed-off-by: Denis Mukhin dmukhin@ford.com
>=20
> ---
> Changes since v1:
> - dropped parentheses around "hardware" in the log message
> ---
> xen/arch/x86/domain.c | 18 ++++++++++--------
> 1 file changed, 10 insertions(+), 8 deletions(-)
>=20
> diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
> index 4989600627..bd887b4d44 100644
> --- a/xen/arch/x86/domain.c
> +++ b/xen/arch/x86/domain.c
> @@ -791,13 +791,12 @@ int arch_domain_create(struct domain *d,
> {
> if ( !opt_allow_unsafe )
> {
> - printk(XENLOG_G_ERR "Xen does not allow DomU creation on this CPU"
> - " for security reasons.\n");
> + printk(XENLOG_G_ERR "%pd: Xen does not allow DomU creation on this CPU"
> + " for security reasons.\n", d);

Forgot to remove full stops in the messages.
Sent v3:
  https://lore.kernel.org/xen-devel/20250402214406.115578-1-dmukhin@ford.co=
m/

> return -EPERM;
> }
> printk(XENLOG_G_WARNING
> - "Dom%d may compromise security on this CPU.\n",
> - d->domain_id);
>=20
> + "%pd: domain may compromise security on this CPU.\n", d);
> }
>=20
> emflags =3D config->arch.emulation_flags;
>=20
> @@ -807,16 +806,19 @@ int arch_domain_create(struct domain *d,
>=20
> if ( emflags & ~XEN_X86_EMU_ALL )
> {
> - printk(XENLOG_G_ERR "d%d: Invalid emulation bitmap: %#x\n",
> - d->domain_id, emflags);
>=20
> + printk(XENLOG_G_ERR "%pd: Invalid emulation bitmap: %#x\n",
> + d, emflags);
> return -EINVAL;
> }
>=20
> if ( !emulation_flags_ok(d, emflags) )
> {
> - printk(XENLOG_G_ERR "d%d: Xen does not allow %s domain creation "
> + printk(XENLOG_G_ERR "%pd: 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);
>=20
> + d,
> + is_hvm_domain(d) ? "HVM" : "PV",
> + is_hardware_domain(d) ? "hardware " : "",
> + emflags);
> return -EOPNOTSUPP;
> }
> d->arch.emulation_flags =3D emflags;
>=20
> --
> 2.34.1


From xen-devel-bounces@lists.xenproject.org Wed Apr 02 21:49:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 02 Apr 2025 21:49:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.936102.1337413 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u05xa-0002Qd-IA; Wed, 02 Apr 2025 21:49:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 936102.1337413; Wed, 02 Apr 2025 21: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 1u05xa-0002QW-Fg; Wed, 02 Apr 2025 21:49:22 +0000
Received: by outflank-mailman (input) for mailman id 936102;
 Wed, 02 Apr 2025 21:49: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=YWck=WU=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u05xZ-0002QQ-CX
 for xen-devel@lists.xenproject.org; Wed, 02 Apr 2025 21:49:21 +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 545b55ab-100c-11f0-9eaa-5ba50f476ded;
 Wed, 02 Apr 2025 23:49:20 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id E4E485C689D;
 Wed,  2 Apr 2025 21:47:00 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id DE808C4CEDD;
 Wed,  2 Apr 2025 21:49:15 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 545b55ab-100c-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1743630557;
	bh=ecnnbyPtWEqCBgoLWsWF93nY7KLOkv/2yxHzkcCVAOI=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=bgeGGNqE4NEi3SMx+onifC4Eebo2I0zctFzuQB7RbC8zPHmCHMP+SrnN9Tz5RwpKA
	 7S4hmVJAOpd9km7zJbWRfAzvQzZ2i7pEdZNobvrg+7o9BmtcdVR6flyi0KBzV9JBP1
	 CCkpoH6Q7xkOtDlTV3BUl1pdyN4nCmYqUBbKhRB1Q57j7XnWk7N+o1sUW5GqEMDCaP
	 eSBd2PE1b2Q581iBKsO2wSRXutQL7FLMv+RyWhj6KfYQnVkyp+ma3+KPfBZSad5GWf
	 JM4RPIrp7r4kdxNahG2wTK2Y0CASa9pi8Aj0rRtLqPxbrLaVC9oafK1NAMOBRdsPfy
	 iyWSMPrYEbVYA==
Date: Wed, 2 Apr 2025 14:49:14 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jason Andryuk <jason.andryuk@amd.com>
cc: Stefano Stabellini <sstabellini@kernel.org>, 
    xen-devel@lists.xenproject.org, Julien Grall <julien@xen.org>, 
    Bertrand Marquis <bertrand.marquis@arm.com>, 
    Michal Orzel <michal.orzel@amd.com>, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    Anthony PERARD <anthony.perard@vates.tech>, 
    Jan Beulich <jbeulich@suse.com>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Subject: Re: [PATCH v2 6/6] xen/arm: Add capabilities to dom0less
In-Reply-To: <0d36750a-34d2-460b-a021-5afb7c2e7039@amd.com>
Message-ID: <alpine.DEB.2.22.394.2504021446121.3529306@ubuntu-linux-20-04-desktop>
References: <20250331214321.205331-1-jason.andryuk@amd.com> <20250331214321.205331-7-jason.andryuk@amd.com> <alpine.DEB.2.22.394.2504011654320.3098208@ubuntu-linux-20-04-desktop> <0d36750a-34d2-460b-a021-5afb7c2e7039@amd.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Wed, 2 Apr 2025, Jason Andryuk wrote:
> On 2025-04-01 20:03, Stefano Stabellini wrote:
> > On Mon, 31 Mar 2025, Jason Andryuk wrote:
> > > Add capabilities property to dom0less to allow building a
> > > disaggregated system.  Only a single hardware domain and single xenstore
> > > domain can be specified.  Multiple control domains are possible.
> > > 
> > > Introduce bootfdt.h to contain these constants.
> > > 
> > > When using the hardware or xenstore capabilities, adjust the grant and
> > > event channel limits similar to dom0.
> > > 
> > > For a hardware domain, require an IOMMU and disallow specifying a vpl011
> > > console or nr_spis.
> > > 
> > > Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
> > > ---
> > > v2:
> > > Fix comment style
> > > Make DOMAIN_CAPS_* unsigned
> > > Remove forced directmap & iommu
> > > Require iommu with use of hardware domain
> > > Limit to a single xenstore domain
> > > 
> > > There is overlap with hyperlaunch.  The numeric values are the same.
> > > Hyperlaunch doesn't expose the values in a public header as done here.
> > > Is this to be expected for dom0less?  It seems most of dom0less isn't in
> > > a header, but just in docs.
> > > 
> > > Hyperlaunch uses BUILD_CAPS_, but I chose DOMAIN_CAPS_ since there are
> > > domain-level capabilities.
> > > 
> > > Only a single xenstore and hardware domain make sense.  Hardware domain
> > > receiving all hardware can only have a single domain.
> > > 
> > > For Xenstore, the logic latches the single xs_domid and uses that for
> > > all domains.  Also, only a single domain can register for VIRQ_DOM_EXC.
> > > ---
> 
> > > @@ -1020,6 +1023,40 @@ void __init create_domUs(void)
> > >           if ( (max_init_domid + 1) >= DOMID_FIRST_RESERVED )
> > >               panic("No more domain IDs available\n");
> > >   +        if ( dt_property_read_u32(node, "capabilities", &val) )
> > > +        {
> > > +            if ( val & ~DOMAIN_CAPS_MASK )
> > > +                panic("Invalid capabilities (%"PRIx32")\n", val);
> > > +
> > > +            if ( val & DOMAIN_CAPS_CONTROL )
> > > +                flags |= CDF_privileged;
> > > +
> > > +            if ( val & DOMAIN_CAPS_HARDWARE )
> > > +            {
> > > +                if ( hardware_domain )
> > > +                    panic("Only 1 hardware domain can be specified!
> > > (%pd)\n",
> > > +                           hardware_domain);
> > > +
> > > +                if ( !iommu_enabled )
> > > +                    panic("iommu required for dom0less hardware
> > > domain\n");
> > 
> > The panic is OK if "direct-map" is not specified. We need to check for
> > direct-map before panic'ing.
> 
> Ok, I guess I misunderstood Julien's comment - I thought he wanted to require
> an iommu.  I can re-work it.

There are some subtleties here that it is best to clarify.

Julien asked for the hardware domain not to imply 1:1 memory mapping. If
the hardware domain has memory not mapped 1:1, then the IOMMU is
required. However, a user could still explicitly request the hardware
domain to be 1:1 mapped with the direct-map property, in that case the
IOMMU is optional.


> !direct-map && !iommu will panic.  Any other combination of direct-map and
> iommu will be allowed.

I think that's correct


> Hmmm, "passthrough" and "multiboot,device-tree" are essentially ignored for
> hwdom right now.  I'll require them to be unset for hwdom.

Good idea


From xen-devel-bounces@lists.xenproject.org Wed Apr 02 21:55:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 02 Apr 2025 21:55:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.936114.1337425 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u063b-0005AI-83; Wed, 02 Apr 2025 21:55:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 936114.1337425; Wed, 02 Apr 2025 21: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 1u063b-0005AB-3Q; Wed, 02 Apr 2025 21:55:35 +0000
Received: by outflank-mailman (input) for mailman id 936114;
 Wed, 02 Apr 2025 21:55: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=MBi7=WU=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1u063Z-0005A5-Oa
 for xen-devel@lists.xenproject.org; Wed, 02 Apr 2025 21:55:33 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on20606.outbound.protection.outlook.com
 [2a01:111:f403:2415::606])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3145214a-100d-11f0-9eaa-5ba50f476ded;
 Wed, 02 Apr 2025 23:55:31 +0200 (CEST)
Received: from SJ0PR05CA0145.namprd05.prod.outlook.com (2603:10b6:a03:33d::30)
 by MW4PR12MB7213.namprd12.prod.outlook.com (2603:10b6:303:22a::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.54; Wed, 2 Apr
 2025 21:55:21 +0000
Received: from SJ1PEPF000023D0.namprd02.prod.outlook.com
 (2603:10b6:a03:33d:cafe::4f) by SJ0PR05CA0145.outlook.office365.com
 (2603:10b6:a03:33d::30) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.8 via Frontend Transport; Wed, 2
 Apr 2025 21:55:21 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 SJ1PEPF000023D0.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.8606.22 via Frontend Transport; Wed, 2 Apr 2025 21:55:21 +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, 2 Apr
 2025 16:55:20 -0500
Received: from [172.29.45.113] (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, 2 Apr 2025 16:55:20 -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: 3145214a-100d-11f0-9eaa-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=KfmSzq3/d+MjOcBYgOSYnjcAY0KRQXM0HeOtSIvjmLESSF2siXBfci2zc0z6/VTi6+61FpJ5B+LDeKZ64uk2nWRpo3/9tLBUI+fkUs7BRlERLlzfmvDRlOfEDv7yrOZTYx6xPnfkslBYGJKpvLrYLL2rmQHi3HlONoMaP/Klh+Pbi/aCnbIS6eO57M3pElT2Rib0EUXg0i/Q5v2fW1HzrMt8YzkBenuJb6n0TwS3j/fYYdxv32j5JicNp6aX6d74WSeN6DVVjjLDV2DhnRMONysVzxYH3rI7f4old4imNXTYIIO+Vo1qMNLMNOwJ6uwCvq7IFGsWNYsDnIxcuykLxw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=v8ctBpHNFFMT1QP7LGDbdwdOg3Jv+XMTGHOUx2dBDSA=;
 b=kLJNOQR4mqB/0sf7//cHGQmd1UkS4KWBGit1/32wvBaz4Bp3ZXD5HPI64Lgf/VX0+bKeQiDk8Jfi52VgpygIybemqci2Jlk2u0Cm8rpHGHT0+asHH7Q8Rh/4d28dE9AG5ZBSBauOw38VQ0eUIYcijcXnWCJJPLvF71Xgkl/LYMEodS4I5gCWWOym5VCIAYnfEe1qM/agq6H2Mk8td0zLL4Jy2xIOw9p5e4WvQRL5tNOHoDkVzgF8bfXBsmFL0Dyj+/reDBC3Xzulz1h4Ll8/9hFqT08NGgvQPUkTqjJMaC2tPVwxSK5YmD3y0ZUuaj6xJYe2XSCbLYlcDglgKjnW2Q==
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=v8ctBpHNFFMT1QP7LGDbdwdOg3Jv+XMTGHOUx2dBDSA=;
 b=ON5vF9i6qhLk7e2dRe4sdzNAlpoHGfd4RhsZucq+MzbJqX2+eKG/+iBcCARzvCifmHrt6wXLOFxSY9g1YhHWlY3gOsDnSvE8l72mPpTMlDDiBR2YVsrNTZ7R3rZEDW8Tjkk8h/1WhyGXlJsJrI0a5Swh2yIh0elk+S9RcANNdTo=
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: <eedcac2c-3f19-4417-9da8-a648f36bec3e@amd.com>
Date: Wed, 2 Apr 2025 17:55:17 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/boot: re-order .init.data contributions
To: Jan Beulich <jbeulich@suse.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <b0266c19-d0e5-4de7-b2fb-a50e2766168c@suse.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <b0266c19-d0e5-4de7-b2fb-a50e2766168c@suse.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: SJ1PEPF000023D0:EE_|MW4PR12MB7213:EE_
X-MS-Office365-Filtering-Correlation-Id: c4f88e95-fa74-4890-2fa2-08dd723110b9
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|376014|82310400026|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?a3ZuaFowcnl0QVlrMDJQdWVMV1NWWWtEUEN2THVDeDJIc3ZPMjU1SnNhSnUy?=
 =?utf-8?B?N1pUYnFvaXNDUlk2ZEJETXBldzF5VDJEdzhpVFJYcjV2LzA0VGNybFhic3A1?=
 =?utf-8?B?MHRMb2lJOGNWRDFxUm1mZTBVSUFweWtPQkpXSk1WWFB6bHp5eHlsNUNzKzRC?=
 =?utf-8?B?d2hUaWQxY01seFZ4MTNQOHQydFlscmlRMXJVODNJMDRYeXplWGtTRW5lMkZK?=
 =?utf-8?B?emZQVFQ0U0g4STc2QXpyaE52TUJCN3pVcjk5WGZ2RmZCd0JKZUdmUjN4dHdD?=
 =?utf-8?B?RGJBWUZuUkhNRXdhZzdRbkR4eCtmWUxpVkpCRnpWcmUrV3lwcWhiNjBjZXYy?=
 =?utf-8?B?ZHBxd3Z1eTZMQ1gwMmp1MEJ2WndncmlhZ2U3T1dEeXJKVEZ0T0s5U1BHNGdF?=
 =?utf-8?B?QXIxL1N5RnJyNGVKTkZZMWdIVU5rZTVMdzVXSExEdDkzOVFHM2FOR2NTcmtp?=
 =?utf-8?B?WWFNMXpFVnZZREtVaUViUWtHc1hIajdFYVpCZnpRamk2YVIrK0kwc1o5N2lU?=
 =?utf-8?B?cGFsMVdvWkNIVGo5SFFzRStWV1JuN2pQQ1Uyc2FuaEIybStSYUowRCtnNytL?=
 =?utf-8?B?OVpVWWo3OVBDRFpLcXBaYXFCMGttc1U4M3VGZHUyUnJaaTE4bldMQlZCMkJ4?=
 =?utf-8?B?alVUT0U2dVJqVmVVQnFQd3NGS0d5N2QzaTF5VklhR0ZndTNyNmlkclQzTWpS?=
 =?utf-8?B?TkNXMUl4RE5DNm5YSytwb010bWMxeXpsTlloU2FYRXMvNUlPbFlpMUo2VnFq?=
 =?utf-8?B?MC9iZW1sMmx0UDJqVWRMWjV3Umo0Q2xhWnhDTUNESXg4WlhWTG9Gc0tiY3J0?=
 =?utf-8?B?a2pUa0RJcHRGakhvM0VjMXZpU05XWlcwNVpGcW9aQkdPdlJHSzRORXNZVVZx?=
 =?utf-8?B?ODhwdllUQURJcDhHdkRINGRTUjdnNXg2aHh4TXJGZE0vUENIT0NNOU9TYTFy?=
 =?utf-8?B?Rmx3b2FUTUV5OHBDK05TOTRDbm55enFNZlF3WmlFRHJQckdsYU5JTzNUaWFp?=
 =?utf-8?B?a2k4YnlvNFNweTM0bHhOL0NOQXZDRWpXOWhlQVZBNC9IQ3RHTCtnTUN5K09F?=
 =?utf-8?B?QU1xOGEvWDJwOXVnYlNPaCswbG9NK0ErNlBYdWwydDAvZStPdThONERvUTlQ?=
 =?utf-8?B?MFo4bE83L21vMm9iZjlsYnAxbDJmVlhQTmdhRWNZSjZVMjRzMFJvK0x6OUZz?=
 =?utf-8?B?dHBENmJCUGJxVW1ON3pwR0VkVDdreFRnSjhiYVdWb3AwZlYzZ0RURDNrbXVZ?=
 =?utf-8?B?QjkzYjJ4TzlpRFVncC9XUk1ZMmV0WkNhR3p6S2k2SmQzZFg4YTU2VGthckU1?=
 =?utf-8?B?aEMrMm9CeEY4MHdDZ2VyTUxFOEFqRVhIVlpadTh6ZVZCcFVQMUFGSktLQXFo?=
 =?utf-8?B?K1lIUk5ENVoyb21oL3ZJL21INEJxaFlKV29TOGF5MXJEUS80MWlFN3U0azRo?=
 =?utf-8?B?RFJBSVVWeUd1ODExd2ZGU3ZDd1lSSDFmcE1MZ3lnWnI3YUoybDlRT00ySGUr?=
 =?utf-8?B?K1loWWk0LzhHNXhaSzFYclpoNDhLLzgwZXdKcTBEZ0N5RDg1eWFRdlJQVHFV?=
 =?utf-8?B?VFljN2JsdjFVYlNYQ1NzVm4rY1lIaFJzRW9kcW4xbmR0VktJbjJtQm5oVVVZ?=
 =?utf-8?B?WVhxVkk2YnlvSVlXeHpQYmJ3NUJ4RXFtbnpGSGY2azE0Yk41QndKYkdwZWJG?=
 =?utf-8?B?YUxab3BkQkF1QzVRQWxnQ2xKcStSdVZCWEhlbHhxWGdVK1BETDRuNjF2Tjls?=
 =?utf-8?B?Zjg3V3ZLWGJ5cjVFcHFkZXczSVRZaUhTd2t1UVZaelZrdmU1QnUxL3FQY0E5?=
 =?utf-8?B?WmhzWGpxbU1WaXpxOElYN2VHMFdCYmJzaDhjem1OWkI2amlEY0hRY2sySUFk?=
 =?utf-8?B?SWVpeGhUV2VhRXZHK0ovZFpsWENyeStPRC9odXhwZ1dWTnd4WlRpVVBWeHlx?=
 =?utf-8?B?cC9Pa0Vic1ZCdUZ0VlhwVVpXNTJ4QUxZekdVVWtUaWdUazQ5dU9zeVhBc3lj?=
 =?utf-8?B?MTBOekp0bldzV0F1azRtQk9BME04THdWanpvcDF3WlYwYWZ2OTh2bzlpOTRa?=
 =?utf-8?Q?f4bCFM?=
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)(82310400026)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Apr 2025 21:55:21.4764
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: c4f88e95-fa74-4890-2fa2-08dd723110b9
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:
	SJ1PEPF000023D0.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR12MB7213

On 2025-04-01 01:56, Jan Beulich wrote:
> Putting a few bytes ahead of page tables isn't very efficient; there's
> a gap almost worth a full page. To avoid re-ordering of items in the
> source file, simply put the few small items in sub-section 1, for them
> to end up after the page tables, followed (in the final binary) by non-
> page-aligned items from other CUs.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

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

Seems a little fragile, but I don't have a better suggestion.

Regards,
Jason


From xen-devel-bounces@lists.xenproject.org Thu Apr 03 00:06:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 00:06:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.936146.1337446 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u086G-0001pS-Nn; Thu, 03 Apr 2025 00:06:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 936146.1337446; Thu, 03 Apr 2025 00:06: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 1u086G-0001pL-Kx; Thu, 03 Apr 2025 00:06:28 +0000
Received: by outflank-mailman (input) for mailman id 936146;
 Thu, 03 Apr 2025 00:06: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=Em9L=WV=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u086E-0001pF-KV
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 00:06:27 +0000
Received: from mail-24416.protonmail.ch (mail-24416.protonmail.ch
 [109.224.244.16]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7aaea449-101f-11f0-9eaa-5ba50f476ded;
 Thu, 03 Apr 2025 02:06:24 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7aaea449-101f-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1743638782; x=1743897982;
	bh=zScPCgDT4Rb2CxmAcwTQX1VAw0rGhJQd5Vd3GI95vFs=;
	h=Date:To:From:Cc:Subject:Message-ID:Feedback-ID:From:To:Cc:Date:
	 Subject:Reply-To:Feedback-ID:Message-ID:BIMI-Selector:
	 List-Unsubscribe:List-Unsubscribe-Post;
	b=nQ6H9rS4xOh9K8hq4mLIdT3yLizr5ao/wQ6y70zrRT4V2PQpcXQOWOgGRHvTDCFWH
	 uUl5S13Cclm+ihbFvGyqis9F8p82r/fLnx/r5R+KnE0KYReS8maExKmLLkyMlN3Edg
	 zS9MQ2d3JVyLhcQYWOP77/n6xqehPfpQRufF35ko0yWzkd5NgVojJgwibYhZHG0GTg
	 ckNxokDQEFO8zjPN/hMCQGwzzTTrYN/NSlKH1QjoezFOJ3j7pxKEvsOUMjRxyrPTqQ
	 rpm5gBk599HSpAt3q3x5tscQtcXOUGqQsJSiS8lf6pWJu0bWsEexQ4P/p0udDPY2qL
	 IZJ3+kHtAsCIw==
Date: Thu, 03 Apr 2025 00:06:17 +0000
To: xen-devel@lists.xenproject.org
From: dmkhn@proton.me
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org, dmukhin@ford.com
Subject: [PATCH v1 0/3] xen/console: few cleanups in console driver
Message-ID: <20250403000604.169619-1-dmukhin@ford.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: b5d0944d21a12ab39365ae4c2243e62852d793a7
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

The patch series introduces a few cleanups aimed at reducing code duplicati=
on
in the console driver.

Originally, patches 2 and 3 were part of NS16550 emulator v3 series [1].

Patch 1 removes some code duplication for logging via conring facility.

Patch 2 (see [2]) removes code duplication between __putstr() and the rest =
of
the driver. It also introduces private flags to select console devices for
printout which simplifies some code paths.

Patch 3 (see [3]) adds conring_flush() to send contents of conring to all
currently available console devices.

[1] https://lore.kernel.org/xen-devel/20250103-vuart-ns8250-v3-v1-0-c5d36b3=
1d66c@ford.com/
[2] https://lore.kernel.org/xen-devel/20250103-vuart-ns8250-v3-v1-16-c5d36b=
31d66c@ford.com/
[3] https://lore.kernel.org/xen-devel/20250103-vuart-ns8250-v3-v1-17-c5d36b=
31d66c@ford.com/
[4] CI link: https://gitlab.com/xen-project/people/dmukhin/xen/-/pipelines/=
1749584524

Denis Mukhin (3):
  xen/console: cleanup conring management
  xen/console: introduce console_puts()
  xen/console: introduce conring_flush()

 xen/drivers/char/console.c | 175 ++++++++++++++++++++++---------------
 1 file changed, 104 insertions(+), 71 deletions(-)

--=20
2.34.1




From xen-devel-bounces@lists.xenproject.org Thu Apr 03 00:06:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 00:06:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.936147.1337457 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u086J-00023P-VY; Thu, 03 Apr 2025 00:06:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 936147.1337457; Thu, 03 Apr 2025 00:06: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 1u086J-00023I-R2; Thu, 03 Apr 2025 00:06:31 +0000
Received: by outflank-mailman (input) for mailman id 936147;
 Thu, 03 Apr 2025 00:06: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=Em9L=WV=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u086I-000234-P9
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 00:06:30 +0000
Received: from mail-4316.protonmail.ch (mail-4316.protonmail.ch [185.70.43.16])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7dba8132-101f-11f0-9ffb-bf95429c2676;
 Thu, 03 Apr 2025 02:06:29 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7dba8132-101f-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=loyd6buz5vf63b67ydln5ulsbm.protonmail; t=1743638788; x=1743897988;
	bh=TBQLnMlSerAh3mR7qO98G0AbutCfSkHB8vVcz9TwNvY=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=PppSoZd4UgwV5D/68YhO2Lbx4eJjbIX9gzEMQ4qIb3yfQbGmFCTRKFH8chjItIRmq
	 vGitz+iz9RUM6bPLc/wKjR4P7ISo/NFy9MPefeEi59jkr8J5eiJ/sjAXvR9DLHYvcv
	 qpwHE4Rv3fydF6uWc82lzJPmV7UV3UpY+8ogDuqpl99pKlUYOEy1s2tBbxaUkgOxtP
	 LEHM6riRiQxR/4XPeoRo3Tyd71eoY3Pn6i9dXaYGtehUD32vaju6nKQwIsoq6xm4LP
	 Lmh0X1Lg/YsBwSriH+YDfUVyrZrzqkmqwUb/HiS3I0/WLYJ5LQx3709CQzgjGa2yEh
	 f95i2zubfAUwA==
Date: Thu, 03 Apr 2025 00:06:22 +0000
To: xen-devel@lists.xenproject.org
From: dmkhn@proton.me
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org, dmukhin@ford.com
Subject: [PATCH v1 1/3] xen/console: cleanup conring management
Message-ID: <20250403000604.169619-2-dmukhin@ford.com>
In-Reply-To: <20250403000604.169619-1-dmukhin@ford.com>
References: <20250403000604.169619-1-dmukhin@ford.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 4c3ff2d98affcb365872036c446a394a36e85caa
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

From: Denis Mukhin <dmukhin@ford.com>

Move console_locks_busted handling inside conring_puts() to remove
tasklet code duplication.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
 xen/drivers/char/console.c | 29 ++++++++++++++---------------
 1 file changed, 14 insertions(+), 15 deletions(-)

diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
index c3150fbdb7..aaa97088aa 100644
--- a/xen/drivers/char/console.c
+++ b/xen/drivers/char/console.c
@@ -325,6 +325,17 @@ static void cf_check do_dec_thresh(unsigned char key, =
bool unused)
  * ********************************************************
  */
=20
+static void cf_check notify_dom0_con_ring(void *unused)
+{
+    send_global_virq(VIRQ_CON_RING);
+}
+
+static DECLARE_SOFTIRQ_TASKLET(notify_dom0_con_ring_tasklet,
+                               notify_dom0_con_ring,
+                               NULL);
+
+static bool console_locks_busted;
+
 static void conring_puts(const char *str, size_t len)
 {
     ASSERT(rspin_is_locked(&console_lock));
@@ -334,6 +345,9 @@ static void conring_puts(const char *str, size_t len)
=20
     if ( conringp - conringc > conring_size )
         conringc =3D conringp - conring_size;
+
+    if ( !console_locks_busted )
+        tasklet_schedule(&notify_dom0_con_ring_tasklet);
 }
=20
 long read_console_ring(struct xen_sysctl_readconsole *op)
@@ -594,13 +608,6 @@ static void cf_check serial_rx(char c)
     __serial_rx(c);
 }
=20
-static void cf_check notify_dom0_con_ring(void *unused)
-{
-    send_global_virq(VIRQ_CON_RING);
-}
-static DECLARE_SOFTIRQ_TASKLET(notify_dom0_con_ring_tasklet,
-                               notify_dom0_con_ring, NULL);
-
 #ifdef CONFIG_X86
 static inline void xen_console_write_debug_port(const char *buf, size_t le=
n)
 {
@@ -648,10 +655,7 @@ static long guest_console_write(XEN_GUEST_HANDLE_PARAM=
(char) buffer,
 #endif
=20
             if ( opt_console_to_ring )
-            {
                 conring_puts(kbuf, kcount);
-                tasklet_schedule(&notify_dom0_con_ring_tasklet);
-            }
=20
             nrspin_unlock_irq(&console_lock);
         }
@@ -753,8 +757,6 @@ long do_console_io(
  * *****************************************************
  */
=20
-static bool console_locks_busted;
-
 static void __putstr(const char *str)
 {
     size_t len =3D strlen(str);
@@ -775,9 +777,6 @@ static void __putstr(const char *str)
 #endif
=20
     conring_puts(str, len);
-
-    if ( !console_locks_busted )
-        tasklet_schedule(&notify_dom0_con_ring_tasklet);
 }
=20
 static int printk_prefix_check(char *p, char **pp)
--=20
2.34.1




From xen-devel-bounces@lists.xenproject.org Thu Apr 03 00:06:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 00:06:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.936148.1337465 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u086N-0002IY-4Z; Thu, 03 Apr 2025 00:06:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 936148.1337465; Thu, 03 Apr 2025 00: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 1u086N-0002IR-1W; Thu, 03 Apr 2025 00:06:35 +0000
Received: by outflank-mailman (input) for mailman id 936148;
 Thu, 03 Apr 2025 00:06: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=Em9L=WV=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u086M-0001pF-4S
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 00:06:34 +0000
Received: from mail-24417.protonmail.ch (mail-24417.protonmail.ch
 [109.224.244.17]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 80412bcb-101f-11f0-9eaa-5ba50f476ded;
 Thu, 03 Apr 2025 02:06:33 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 80412bcb-101f-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1743638792; x=1743897992;
	bh=DJWq/Ys6nmpLJsXwbo5VcgkgnUs3GTyXmEBcuGoVeyo=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=j/stRxmIQoJIllzxWPVBCAYzIBg1i89TD0fYa10MFfZnfrOIqUT0DJ0EbG4fXzbEU
	 +11HUlDCoIv9BVigGf5mAsqEbNs3vsBYTDTmm+TngsTSOC4DsKGhcIW6N/Jehtou54
	 5c/rSwAn35jU7lStZEjig2WCiXv/7TW4u8UHZLT2GL2a/JTuKfrf0zuO61h+ffzLNd
	 obf95oPi7SweOKbGxDqolF0McnZPwD21Grtmj60TV2/6zMVt6UddZGPo1J3G4eMVIK
	 8wdZodNGgVro5LrIhUgk1mo6IqchTkf03oiDXBUOIO2XOKA+JtorDVJ2arSAz7USva
	 4o2ziWGOx12Ig==
Date: Thu, 03 Apr 2025 00:06:27 +0000
To: xen-devel@lists.xenproject.org
From: dmkhn@proton.me
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org, dmukhin@ford.com
Subject: [PATCH v1 2/3] xen/console: introduce console_puts()
Message-ID: <20250403000604.169619-3-dmukhin@ford.com>
In-Reply-To: <20250403000604.169619-1-dmukhin@ford.com>
References: <20250403000604.169619-1-dmukhin@ford.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: cb58e55f650cb81c34a5b94f37bd90dc617546e1
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

From: Denis Mukhin <dmukhin@ford.com>

guest_console_write() duplicates the code from __putstr(), eliminate code
duplication.

Introduce console_puts() for writing a buffer to console devices.

Also, introduce internal console flags to control which console devices
should be used.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
 xen/drivers/char/console.c | 112 ++++++++++++++++++++++---------------
 1 file changed, 66 insertions(+), 46 deletions(-)

diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
index aaa97088aa..2618c2e47d 100644
--- a/xen/drivers/char/console.c
+++ b/xen/drivers/char/console.c
@@ -41,6 +41,20 @@
 #include <asm/vpl011.h>
 #endif
=20
+/* Internal console flags. */
+enum {
+    CONSOLE_SERIAL  =3D BIT(0, U),    /* Use serial device. */
+    CONSOLE_PV      =3D BIT(1, U),    /* Use PV console. */
+    CONSOLE_VIDEO   =3D BIT(2, U),    /* Use video device. */
+    CONSOLE_DEBUG   =3D BIT(3, U),    /* Use debug device. */
+    CONSOLE_RING    =3D BIT(4, U),    /* Use console ring. */
+    CONSOLE_DEFAULT =3D CONSOLE_SERIAL | CONSOLE_PV | CONSOLE_VIDEO |
+                      CONSOLE_DEBUG,
+    CONSOLE_ALL     =3D CONSOLE_DEFAULT | CONSOLE_RING,
+};
+
+static void console_puts(const char *str, size_t len, unsigned int flags);
+
 /* console: comma-separated list of console outputs. */
 static char __initdata opt_console[30] =3D OPT_CONSOLE_STR;
 string_param("console", opt_console);
@@ -338,8 +352,6 @@ static bool console_locks_busted;
=20
 static void conring_puts(const char *str, size_t len)
 {
-    ASSERT(rspin_is_locked(&console_lock));
-
     while ( len-- )
         conring[CONRING_IDX_MASK(conringp++)] =3D *str++;
=20
@@ -432,9 +444,6 @@ void console_serial_puts(const char *s, size_t nr)
         serial_steal_fn(s, nr);
     else
         serial_puts(sercon_handle, s, nr);
-
-    /* Copy all serial output into PV console */
-    pv_console_puts(s, nr);
 }
=20
 static void cf_check dump_console_ring_key(unsigned char key)
@@ -468,8 +477,7 @@ static void cf_check dump_console_ring_key(unsigned cha=
r key)
         c +=3D len;
     }
=20
-    console_serial_puts(buf, sofar);
-    video_puts(buf, sofar);
+    console_puts(buf, sofar, CONSOLE_SERIAL | CONSOLE_VIDEO | CONSOLE_PV);
=20
     free_xenheap_pages(buf, order);
 }
@@ -618,11 +626,61 @@ static inline void xen_console_write_debug_port(const=
 char *buf, size_t len)
 }
 #endif
=20
+static inline void console_debug_puts(const char *str, size_t 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
+}
+
+/*
+ * Write buffer to all enabled console devices.
+ *
+ * That will handle all possible scenarios working w/ console
+ * - physical console (serial console, VGA console (x86 only));
+ * - PV console;
+ * - debug console (x86 only): debug I/O port or __HYPERVISOR_console_io
+ *   hypercall;
+ * - console ring.
+ */
+static void console_puts(const char *str, size_t len, unsigned int flags)
+{
+    ASSERT(rspin_is_locked(&console_lock));
+
+    if ( flags & CONSOLE_SERIAL )
+        console_serial_puts(str, len);
+
+    if ( flags & CONSOLE_PV )
+        pv_console_puts(str, len);
+
+    if ( flags & CONSOLE_VIDEO )
+        video_puts(str, len);
+
+    if ( flags & CONSOLE_DEBUG )
+        console_debug_puts(str, len);
+
+    if ( flags & CONSOLE_RING )
+        conring_puts(str, len);
+}
+
+static inline void __putstr(const char *str)
+{
+    console_puts(str, strlen(str), CONSOLE_ALL);
+}
+
 static long guest_console_write(XEN_GUEST_HANDLE_PARAM(char) buffer,
                                 unsigned int count)
 {
     char kbuf[128];
     unsigned int kcount =3D 0;
+    unsigned int flags =3D opt_console_to_ring
+                         ? CONSOLE_ALL : CONSOLE_DEFAULT;
     struct domain *cd =3D current->domain;
=20
     while ( count > 0 )
@@ -640,23 +698,7 @@ static long guest_console_write(XEN_GUEST_HANDLE_PARAM=
(char) buffer,
         {
             /* 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);
-
+            console_puts(kbuf, kcount, flags);
             nrspin_unlock_irq(&console_lock);
         }
         else
@@ -757,28 +799,6 @@ long do_console_io(
  * *****************************************************
  */
=20
-static void __putstr(const char *str)
-{
-    size_t len =3D 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);
-}
-
 static int printk_prefix_check(char *p, char **pp)
 {
     int loglvl =3D -1;
--=20
2.34.1




From xen-devel-bounces@lists.xenproject.org Thu Apr 03 00:06:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 00:06:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.936150.1337476 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u086S-0002aq-De; Thu, 03 Apr 2025 00:06:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 936150.1337476; Thu, 03 Apr 2025 00:06:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u086S-0002aj-8e; Thu, 03 Apr 2025 00:06:40 +0000
Received: by outflank-mailman (input) for mailman id 936150;
 Thu, 03 Apr 2025 00:06: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=Em9L=WV=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u086R-000234-AB
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 00:06:39 +0000
Received: from mail-4316.protonmail.ch (mail-4316.protonmail.ch [185.70.43.16])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 830b6832-101f-11f0-9ffb-bf95429c2676;
 Thu, 03 Apr 2025 02:06:37 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 830b6832-101f-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=lluhb2firrddhpi264e3pc4bsy.protonmail; t=1743638797; x=1743897997;
	bh=GYrF79Lky+t8pJBLpkLDqHS5mjT9sR3p7CaY+cQEX88=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=GjjTpaza1P+1T0MBPu3LhQ4JPYAc/JiUfL5MOerA+xFcmNwv6vGJit7Ht90Kshu/I
	 K3EWULEH/Pz8AaYQAjS3CbXlzavFt5Tbs7ZMFz8aQ7hPSuBcLzyPmo34WFPUxeOZCi
	 Txoy3EEzjK5fGMlwGyc7gTSOSBsj8hwcNJ1nIMueHRWq8OYycYlspL8xCAg6yQMrAV
	 gnp5mtxlebkEZ+/sElzxhJW+TsKkFMlfB1umiEiNlr6hgBGg+VMOhCqdlsv2PMLC7D
	 dc3hguy/FuQ4XnkFitHEOwOrTf7RO0lnHK3MO1wYLIJN4NqoXkPpMIVOj6x6aaa+Ab
	 T8OQvn3y1i2JA==
Date: Thu, 03 Apr 2025 00:06:32 +0000
To: xen-devel@lists.xenproject.org
From: dmkhn@proton.me
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org, dmukhin@ford.com
Subject: [PATCH v1 3/3] xen/console: introduce conring_flush()
Message-ID: <20250403000604.169619-4-dmukhin@ford.com>
In-Reply-To: <20250403000604.169619-1-dmukhin@ford.com>
References: <20250403000604.169619-1-dmukhin@ford.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 9f9887882ae5bbc02fc76b68206c9230209cbb57
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

From: Denis Mukhin <dmukhin@ford.com>

Introduce conring_flush() to ensure all messages kept in the internal
console ring are sent to all physical consoles (serial, VGA (x86))
after their initialization is completed.

Resolves: https://gitlab.com/xen-project/xen/-/issues/184
Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
The patch conflicts with
  https://lore.kernel.org/xen-devel/20250331230508.440198-7-dmukhin@ford.co=
m/
in console_init_preirq()
---
 xen/drivers/char/console.c | 34 ++++++++++++++++++++++++----------
 1 file changed, 24 insertions(+), 10 deletions(-)

diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
index 2618c2e47d..18eb66df89 100644
--- a/xen/drivers/char/console.c
+++ b/xen/drivers/char/console.c
@@ -446,24 +446,22 @@ void console_serial_puts(const char *s, size_t nr)
         serial_puts(sercon_handle, s, nr);
 }
=20
-static void cf_check dump_console_ring_key(unsigned char key)
+/*
+ * Flush contents of the conring to the physical console devices.
+ */
+static int conring_flush(void)
 {
     uint32_t idx, len, sofar, c;
     unsigned int order;
     char *buf;
+    unsigned long flags;
=20
-    printk("'%c' pressed -> dumping console ring buffer (dmesg)\n", key);
-
-    /* create a buffer in which we'll copy the ring in the correct
-       order and NUL terminate */
     order =3D get_order_from_bytes(conring_size + 1);
     buf =3D alloc_xenheap_pages(order, 0);
     if ( buf =3D=3D NULL )
-    {
-        printk("unable to allocate memory!\n");
-        return;
-    }
+        return -ENOMEM;
=20
+    flags =3D console_lock_recursive_irqsave();
     c =3D conringc;
     sofar =3D 0;
     while ( (c !=3D conringp) )
@@ -478,8 +476,21 @@ static void cf_check dump_console_ring_key(unsigned ch=
ar key)
     }
=20
     console_puts(buf, sofar, CONSOLE_SERIAL | CONSOLE_VIDEO | CONSOLE_PV);
+    console_unlock_recursive_irqrestore(flags);
=20
     free_xenheap_pages(buf, order);
+
+    return 0;
+}
+
+static void cf_check conring_dump_keyhandler(unsigned char key)
+{
+    int rc;
+
+    printk("'%c' pressed -> dumping console ring buffer (dmesg)\n", key);
+    rc =3D conring_flush();
+    if ( rc )
+        printk("failed to dump console ring buffer: %d\n", rc);
 }
=20
 /*
@@ -1044,6 +1055,9 @@ void __init console_init_preirq(void)
     serial_set_rx_handler(sercon_handle, serial_rx);
     pv_console_set_rx_handler(serial_rx);
=20
+    /* NB: send conring contents to all enabled physical consoles, if any =
*/
+    conring_flush();
+
     /* HELLO WORLD --- start-of-day banner text. */
     nrspin_lock(&console_lock);
     __putstr(xen_banner());
@@ -1134,7 +1148,7 @@ void __init console_endboot(void)
     if ( opt_conswitch[1] =3D=3D 'x' )
         console_rx =3D max_console_rx;
=20
-    register_keyhandler('w', dump_console_ring_key,
+    register_keyhandler('w', conring_dump_keyhandler,
                         "synchronously dump console ring buffer (dmesg)", =
0);
     register_irq_keyhandler('+', &do_inc_thresh,
                             "increase log level threshold", 0);
--=20
2.34.1




From xen-devel-bounces@lists.xenproject.org Thu Apr 03 05:10:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 05:10:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.936208.1337486 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0CqK-00044K-P3; Thu, 03 Apr 2025 05:10:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 936208.1337486; Thu, 03 Apr 2025 05:10: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 1u0CqK-00044C-JH; Thu, 03 Apr 2025 05:10:20 +0000
Received: by outflank-mailman (input) for mailman id 936208;
 Thu, 03 Apr 2025 05:10: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=xrrH=WV=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u0CqI-000446-VJ
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 05:10:19 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ea20c6a8-1049-11f0-9ffb-bf95429c2676;
 Thu, 03 Apr 2025 07:10:11 +0200 (CEST)
Received: from [192.168.7.202] ([71.202.166.45]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53359MMx352770
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NO);
 Wed, 2 Apr 2025 22:09:23 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ea20c6a8-1049-11f0-9ffb-bf95429c2676
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53359MMx352770
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025032001; t=1743656967;
	bh=vsKRR0KcxHt+bY5piLdo+Eui94XS6wGecFObRFyi4AA=;
	h=Date:Subject:To:Cc:References:From:In-Reply-To:From;
	b=V9uVTX4xgBbACAe/f7Zrx5r+z9b4d1DfYgbNIB8wYvA68c1uxe0ihfeMYGbviPIoI
	 wTMFzQg2Fid5gHaVjQFISDACPHyspg7RzwHijSy6/ZmCrt/DlP4GvTHPiqGcB/4cvd
	 AXYWHXLY7oKRr3YH+gVlWe8bvGTKcZn6fFapbQodpDHtCHy2EbuxOzLWKaU/ptKGkZ
	 YqGfSlTUalEu5dyJYTz3tBI0kwslGoJnWU1+IYMdKiUnn8nJQY3z4rbePe1d1wtRq2
	 Ft7OOFI4h7fGZ1G8M4ScF2LdGFEFm/MkylKdAYsHDEPOzjpBz+P8h/DypI1JQXduc+
	 RpGH73LFcK3gg==
Message-ID: <c316a6c6-b97c-48b2-9598-d44e2ec72fbc@zytor.com>
Date: Wed, 2 Apr 2025 22:09:21 -0700
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH v1 01/15] x86/msr: Replace __wrmsr() with
 native_wrmsrl()
To: Ingo Molnar <mingo@kernel.org>, "H. Peter Anvin" <hpa@zytor.com>
Cc: linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org,
        linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
        linux-edac@vger.kernel.org, kvm@vger.kernel.org,
        xen-devel@lists.xenproject.org, linux-ide@vger.kernel.org,
        linux-pm@vger.kernel.org, bpf@vger.kernel.org, llvm@lists.linux.dev,
        tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, jgross@suse.com,
        andrew.cooper3@citrix.com, peterz@infradead.org, acme@kernel.org,
        namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com,
        Linus Torvalds <torvalds@linux-foundation.org>
References: <20250331082251.3171276-1-xin@zytor.com>
 <20250331082251.3171276-2-xin@zytor.com> <Z-pruogreCuU66wm@gmail.com>
 <9D15DE81-2E68-4FCD-A133-4963602E18C9@zytor.com> <Z-ubVFyoOzwKhI53@gmail.com>
Content-Language: en-US
From: Xin Li <xin@zytor.com>
Autocrypt: addr=xin@zytor.com; keydata=
 xsDNBGUPz1cBDACS/9yOJGojBFPxFt0OfTWuMl0uSgpwk37uRrFPTTLw4BaxhlFL0bjs6q+0
 2OfG34R+a0ZCuj5c9vggUMoOLdDyA7yPVAJU0OX6lqpg6z/kyQg3t4jvajG6aCgwSDx5Kzg5
 Rj3AXl8k2wb0jdqRB4RvaOPFiHNGgXCs5Pkux/qr0laeFIpzMKMootGa4kfURgPhRzUaM1vy
 bsMsL8vpJtGUmitrSqe5dVNBH00whLtPFM7IbzKURPUOkRRiusFAsw0a1ztCgoFczq6VfAVu
 raTye0L/VXwZd+aGi401V2tLsAHxxckRi9p3mc0jExPc60joK+aZPy6amwSCy5kAJ/AboYtY
 VmKIGKx1yx8POy6m+1lZ8C0q9b8eJ8kWPAR78PgT37FQWKYS1uAroG2wLdK7FiIEpPhCD+zH
 wlslo2ETbdKjrLIPNehQCOWrT32k8vFNEMLP5G/mmjfNj5sEf3IOKgMTMVl9AFjsINLHcxEQ
 6T8nGbX/n3msP6A36FDfdSEAEQEAAc0WWGluIExpIDx4aW5Aenl0b3IuY29tPsLBDQQTAQgA
 NxYhBIUq/WFSDTiOvUIqv2u9DlcdrjdRBQJlD89XBQkFo5qAAhsDBAsJCAcFFQgJCgsFFgID
 AQAACgkQa70OVx2uN1HUpgv/cM2fsFCQodLArMTX5nt9yqAWgA5t1srri6EgS8W3F+3Kitge
 tYTBKu6j5BXuXaX3vyfCm+zajDJN77JHuYnpcKKr13VcZi1Swv6Jx1u0II8DOmoDYLb1Q2ZW
 v83W55fOWJ2g72x/UjVJBQ0sVjAngazU3ckc0TeNQlkcpSVGa/qBIHLfZraWtdrNAQT4A1fa
 sWGuJrChBFhtKbYXbUCu9AoYmmbQnsx2EWoJy3h7OjtfFapJbPZql+no5AJ3Mk9eE5oWyLH+
 QWqtOeJM7kKvn/dBudokFSNhDUw06e7EoVPSJyUIMbYtUO7g2+Atu44G/EPP0yV0J4lRO6EA
 wYRXff7+I1jIWEHpj5EFVYO6SmBg7zF2illHEW31JAPtdDLDHYcZDfS41caEKOQIPsdzQkaQ
 oW2hchcjcMPAfyhhRzUpVHLPxLCetP8vrVhTvnaZUo0xaVYb3+wjP+D5j/3+hwblu2agPsaE
 vgVbZ8Fx3TUxUPCAdr/p73DGg57oHjgezsDNBGUPz1gBDAD4Mg7hMFRQqlzotcNSxatlAQNL
 MadLfUTFz8wUUa21LPLrHBkUwm8RujehJrzcVbPYwPXIO0uyL/F///CogMNx7Iwo6by43KOy
 g89wVFhyy237EY76j1lVfLzcMYmjBoTH95fJC/lVb5Whxil6KjSN/R/y3jfG1dPXfwAuZ/4N
 cMoOslWkfZKJeEut5aZTRepKKF54T5r49H9F7OFLyxrC/uI9UDttWqMxcWyCkHh0v1Di8176
 jjYRNTrGEfYfGxSp+3jYL3PoNceIMkqM9haXjjGl0W1B4BidK1LVYBNov0rTEzyr0a1riUrp
 Qk+6z/LHxCM9lFFXnqH7KWeToTOPQebD2B/Ah5CZlft41i8L6LOF/LCuDBuYlu/fI2nuCc8d
 m4wwtkou1Y/kIwbEsE/6RQwRXUZhzO6llfoN96Fczr/RwvPIK5SVMixqWq4QGFAyK0m/1ap4
 bhIRrdCLVQcgU4glo17vqfEaRcTW5SgX+pGs4KIPPBE5J/ABD6pBnUUAEQEAAcLA/AQYAQgA
 JhYhBIUq/WFSDTiOvUIqv2u9DlcdrjdRBQJlD89ZBQkFo5qAAhsMAAoJEGu9DlcdrjdR4C0L
 /RcjolEjoZW8VsyxWtXazQPnaRvzZ4vhmGOsCPr2BPtMlSwDzTlri8BBG1/3t/DNK4JLuwEj
 OAIE3fkkm+UG4Kjud6aNeraDI52DRVCSx6xff3bjmJsJJMb12mWglN6LjdF6K+PE+OTJUh2F
 dOhslN5C2kgl0dvUuevwMgQF3IljLmi/6APKYJHjkJpu1E6luZec/lRbetHuNFtbh3xgFIJx
 2RpgVDP4xB3f8r0I+y6ua+p7fgOjDLyoFjubRGed0Be45JJQEn7A3CSb6Xu7NYobnxfkwAGZ
 Q81a2XtvNS7Aj6NWVoOQB5KbM4yosO5+Me1V1SkX2jlnn26JPEvbV3KRFcwV5RnDxm4OQTSk
 PYbAkjBbm+tuJ/Sm+5Yp5T/BnKz21FoCS8uvTiziHj2H7Cuekn6F8EYhegONm+RVg3vikOpn
 gao85i4HwQTK9/D1wgJIQkdwWXVMZ6q/OALaBp82vQ2U9sjTyFXgDjglgh00VRAHP7u1Rcu4
 l75w1xInsg==
In-Reply-To: <Z-ubVFyoOzwKhI53@gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 4/1/2025 12:52 AM, Ingo Molnar wrote:
>> Should we rename the *msrl() functions to *msrq() as part of this
>> overhaul?
> Yeah, that's a good idea, and because talk is cheap I just implemented
> this in the tip:WIP.x86/msr branch with a couple of other cleanups in
> this area (see the shortlog & diffstat below), but the churn is high:
> 
>    144 files changed, 1034 insertions(+), 1034 deletions(-)

Hi Ingo,

I noticed that you keep the type of MSR index in these patches as
"unsigned int".

I'm thinking would it be better to standardize it as "u32"?

Because:
1) MSR index is placed in ECX to execute MSR instructions, and the
    high-order 32 bits of RCX are ignored on 64-bit.
2) MSR index is encoded as a 32-bit immediate in the new immediate form
    MSR instructions.

Thanks!
     Xin


From xen-devel-bounces@lists.xenproject.org Thu Apr 03 06:02:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 06:02:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.936222.1337501 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0DeZ-0000FQ-AE; Thu, 03 Apr 2025 06:02:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 936222.1337501; Thu, 03 Apr 2025 06:02: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 1u0DeZ-0000FJ-4Z; Thu, 03 Apr 2025 06:02:15 +0000
Received: by outflank-mailman (input) for mailman id 936222;
 Thu, 03 Apr 2025 06:02: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=dXPq=WV=zytor.com=hpa@srs-se1.protection.inumbo.net>)
 id 1u0DeY-0000FC-28
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 06:02:14 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2e5faa72-1051-11f0-9ffb-bf95429c2676;
 Thu, 03 Apr 2025 08:02:11 +0200 (CEST)
Received: from [127.0.0.1] ([76.133.66.138]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53361TVl369646
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NO);
 Wed, 2 Apr 2025 23:01:30 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2e5faa72-1051-11f0-9ffb-bf95429c2676
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53361TVl369646
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025032001; t=1743660093;
	bh=dlct/QjME2ZRc2GbrZa4+YEUwLyiwmon1oWoqtApkXY=;
	h=Date:From:To:CC:Subject:In-Reply-To:References:From;
	b=WPP0bDZK1lApqNXdOtF12S5ARISaib9mLKSdGhnx3gf+KvTavErQMB5tHsDboEZaM
	 dLsgA/Wr4k2VPAKvg4Q/jtE0gFB4ojRvE+oKmyqXmPeIVyoZtruCTjMkDVanwskwS+
	 jiuGUYw2dmNjKOKZNCiNGXO9zxp8lWX1y5seDxftNeQHvt8RBeGECAiOxqTKUMgh1b
	 zD9Kyl+NSFQ59y87oScNqVpMXyezROjMwevUzZS+FRy/CxOc3SftPfgsBUCB4x+623
	 2LcVsu0VnYA1sp4yMqo6TRQHgTa6YRFjMp5wTke1MjTH1hw4LpEw+MZO87TrcY7Ja6
	 ziwf36ftnA50g==
Date: Wed, 02 Apr 2025 23:01:27 -0700
From: "H. Peter Anvin" <hpa@zytor.com>
To: Xin Li <xin@zytor.com>, Ingo Molnar <mingo@kernel.org>
CC: linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org,
        linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
        linux-edac@vger.kernel.org, kvm@vger.kernel.org,
        xen-devel@lists.xenproject.org, linux-ide@vger.kernel.org,
        linux-pm@vger.kernel.org, bpf@vger.kernel.org, llvm@lists.linux.dev,
        tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, jgross@suse.com,
        andrew.cooper3@citrix.com, peterz@infradead.org, acme@kernel.org,
        namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com,
        Linus Torvalds <torvalds@linux-foundation.org>
Subject: =?US-ASCII?Q?Re=3A_=5BRFC_PATCH_v1_01/15=5D_x86/msr=3A_Re?=
 =?US-ASCII?Q?place_=5F=5Fwrmsr=28=29_with_native=5Fwrmsrl=28=29?=
User-Agent: K-9 Mail for Android
In-Reply-To: <c316a6c6-b97c-48b2-9598-d44e2ec72fbc@zytor.com>
References: <20250331082251.3171276-1-xin@zytor.com> <20250331082251.3171276-2-xin@zytor.com> <Z-pruogreCuU66wm@gmail.com> <9D15DE81-2E68-4FCD-A133-4963602E18C9@zytor.com> <Z-ubVFyoOzwKhI53@gmail.com> <c316a6c6-b97c-48b2-9598-d44e2ec72fbc@zytor.com>
Message-ID: <580DD4EE-8694-4525-AA73-A6823126FF9F@zytor.com>
MIME-Version: 1.0
Content-Type: text/plain;
 charset=utf-8
Content-Transfer-Encoding: quoted-printable

On April 2, 2025 10:09:21 PM PDT, Xin Li <xin@zytor=2Ecom> wrote:
>On 4/1/2025 12:52 AM, Ingo Molnar wrote:
>>> Should we rename the *msrl() functions to *msrq() as part of this
>>> overhaul?
>> Yeah, that's a good idea, and because talk is cheap I just implemented
>> this in the tip:WIP=2Ex86/msr branch with a couple of other cleanups in
>> this area (see the shortlog & diffstat below), but the churn is high:
>>=20
>>    144 files changed, 1034 insertions(+), 1034 deletions(-)
>
>Hi Ingo,
>
>I noticed that you keep the type of MSR index in these patches as
>"unsigned int"=2E
>
>I'm thinking would it be better to standardize it as "u32"?
>
>Because:
>1) MSR index is placed in ECX to execute MSR instructions, and the
>   high-order 32 bits of RCX are ignored on 64-bit=2E
>2) MSR index is encoded as a 32-bit immediate in the new immediate form
>   MSR instructions=2E
>
>Thanks!
>    Xin

"unsigned int" and "u32" are synonymous, but the latter is more explicit a=
nd would be better=2E


From xen-devel-bounces@lists.xenproject.org Thu Apr 03 07:08:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 07:08:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.936247.1337537 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0EgX-0006Sm-4P; Thu, 03 Apr 2025 07:08:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 936247.1337537; Thu, 03 Apr 2025 07: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 1u0EgX-0006Sf-1r; Thu, 03 Apr 2025 07:08:21 +0000
Received: by outflank-mailman (input) for mailman id 936247;
 Thu, 03 Apr 2025 07: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=lWYu=WV=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u0EgV-0006SX-Nv
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 07:08:19 +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 68ef78ed-105a-11f0-9ffb-bf95429c2676;
 Thu, 03 Apr 2025 09:08:14 +0200 (CEST)
Received: by mail-wr1-x435.google.com with SMTP id
 ffacd0b85a97d-3914aba1ce4so474760f8f.2
 for <xen-devel@lists.xenproject.org>; Thu, 03 Apr 2025 00:08:14 -0700 (PDT)
Received: from [10.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-39c3020d92dsm940405f8f.71.2025.04.03.00.08.13
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 03 Apr 2025 00:08:13 -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: 68ef78ed-105a-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743664094; x=1744268894; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=3ygNy7TpE/EybhxZCszoMTx6j9tYNzu3q7HVkiSNenM=;
        b=Du9JgfV2JlI3uJDsjDAx42p2CE1IegRGQfB1EXCbeaV/rtkWFYyMJObJapI6S+suUi
         KNRXaNYV+KGuAA2j4tg7FNwjZDrwc2gegy/mtm0HOK5bA9HV8DYZUTJJ9wApX2AegQSq
         UKBz98mYy9/amAS3DN2TJYs6+aaEAJbw9SdXgDQiSc9MuOLUPqJ9TynjCHtuwPo+OBZr
         2F4heQ7GAGKJ5hLSgO2U7iN+POuB7TvlWGyVHywoI2ppJXnc7KhYgsp/gPBVbgZJN7Ca
         v7C3D3q4TlwwcNPoMLT6O1ZwjyQN6V/HHQ1WxIR2H4H5T/wqcYwC40cuIPWq0A6dyowL
         8WAw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743664094; x=1744268894;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=3ygNy7TpE/EybhxZCszoMTx6j9tYNzu3q7HVkiSNenM=;
        b=JaAeXNLoEXrI+1XI7NPfqXove8jrIqE/hQOOG7JNIXN9GUADb4YeCEQ4yCXe4SwrTI
         b8k+lmkeWrB6DKhQYdKIZnWxMFbgNkx7pIsS3xIqEo0EpSwGYWcAvtoWxHGKLZb0UvqD
         SZNS4E/xu71B72k3pwaWQQSIMbxPua1WPht/Bdu1jDukyA/p0RG0f4QJF8vnTrK2YbiW
         3IMFkofp6+ag1rqXpq3Cmq+/4TBZlAdSpIXgdE4m6jAtuTBe0sjzuqSTww5ayorpmaGy
         NGGKAl8zrTAwPaPd/jK+gNCUKV6mWH3dfXFTeW0axwKDGDfCFnq8UKj5VnMnRUE5UhGT
         9xdA==
X-Forwarded-Encrypted: i=1; AJvYcCWxPaqUaObGycNptWK04/8kVEo98LnSAYVyihUQLBClhui0HnTxbOBVNuQNsv37PGVO73QvvfCojg4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyABWM1er7w0zj+k+3idpZ9DQLFqQWdpHPh+R8ztj8fOGSqRoMU
	/xslBXA75iyIpNbBQ4sT4q2RLsk+46w24w9MasHKnQXcFLWKKaLtrerBrTzP9A==
X-Gm-Gg: ASbGncs821KH7+7T+rqsHnq12QbTGsRHb2GfMS+skPFwrXiZIPvGqqnmxyc87mrve7x
	wUnBstbZ8gCTknhMNqAFyLBzQlKzwbnVa6RljxJDItiqheSC4PQ2qPQgrGvCWxeo4/IN6I4cv0Y
	hNJ4e+cfR09CtNpxncLTJ4hVKL8R0HGpE22rE3kprRiI4RH9eG79dpwzeTHfpaoWeyWKo1F172t
	uxsGVnAozaR0NLH9FAf3O0b6MfyPa+TvqWTJxUjAEW8gSmEID64aSg0EtJxuUuhKYBo4ZijThx7
	GkmBzOjDvRcZxyKoZbWiPMzk/FPMMOyjNo9c28oeWeAxX6rRxkTXsnfoBvjVbpe6kIG+hzFdaQA
	B6DrX88ib7jn3LbRfqPloUDAQa1K9Hw==
X-Google-Smtp-Source: AGHT+IFnX6JduAHPOKQnq8RBXyoZ/4SvgwizUWaaQ03B3v/UpmPZS5BPdEF+QaBlxZT+JsjQRMScoQ==
X-Received: by 2002:a05:6000:23c7:b0:39c:cd5:4bc0 with SMTP id ffacd0b85a97d-39c1211b77amr10130061f8f.52.1743664093736;
        Thu, 03 Apr 2025 00:08:13 -0700 (PDT)
Message-ID: <53a596b9-7755-4064-a65c-fb3db1e4550e@suse.com>
Date: Thu, 3 Apr 2025 09:08:12 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen: Change xen-acpi-processor dom0 dependency
To: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
Cc: Penny Zheng <penny.zheng@amd.com>, xen-devel@lists.xenproject.org,
 linux-kernel@vger.kernel.org, Jason Andryuk <jason.andryuk@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
References: <20250331172913.51240-1-jason.andryuk@amd.com>
 <a6977caf-ce0e-4002-8df5-26cb0bdc88d7@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: <a6977caf-ce0e-4002-8df5-26cb0bdc88d7@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 02.04.2025 16:24, Jürgen Groß wrote:
> On 31.03.25 19:29, Jason Andryuk wrote:
>> xen-acpi-processor functions under a PVH dom0 with only a
>> xen_initial_domain() runtime check.  Change the Kconfig dependency from
>> PV dom0 to generic dom0 to reflect that.
>>
>> Suggested-by: Jan Beulich <jbeulich@suse.com>
>> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
>> ---
>>   drivers/xen/Kconfig | 2 +-
>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/xen/Kconfig b/drivers/xen/Kconfig
>> index f7d6f47971fd..24f485827e03 100644
>> --- a/drivers/xen/Kconfig
>> +++ b/drivers/xen/Kconfig
>> @@ -278,7 +278,7 @@ config XEN_PRIVCMD_EVENTFD
>>   
>>   config XEN_ACPI_PROCESSOR
>>   	tristate "Xen ACPI processor"
>> -	depends on XEN && XEN_PV_DOM0 && X86 && ACPI_PROCESSOR && CPU_FREQ
>> +	depends on XEN && XEN_DOM0 && X86 && ACPI_PROCESSOR && CPU_FREQ
>>   	default m
>>   	help
>>   	  This ACPI processor uploads Power Management information to the Xen
> 
> Assuming that all needed hypercalls are fine for PVH dom0:

If you want to feel further ascertained, you could also add
Tested-by: Jan Beulich <jbeulich@suse.com>
even if that was only in the context of "xen/acpi: upload power and
performance related data from a PVH dom0", where I noticed this issue.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Apr 03 07:14:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 07:14:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.936259.1337548 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0EmP-0000r7-O6; Thu, 03 Apr 2025 07:14:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 936259.1337548; Thu, 03 Apr 2025 07:14: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 1u0EmP-0000r0-L3; Thu, 03 Apr 2025 07:14:25 +0000
Received: by outflank-mailman (input) for mailman id 936259;
 Thu, 03 Apr 2025 07:14: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=xrrH=WV=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u0EmN-0000qu-Q7
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 07:14:24 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 413829fb-105b-11f0-9ffb-bf95429c2676;
 Thu, 03 Apr 2025 09:14:18 +0200 (CEST)
Received: from [192.168.7.202] ([71.202.166.45]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 5337DaOj395784
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NO);
 Thu, 3 Apr 2025 00:13:36 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 413829fb-105b-11f0-9ffb-bf95429c2676
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 5337DaOj395784
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025032001; t=1743664419;
	bh=dud2+LDxOfaRRcFmlvhcB6Zv69u4yGoWIvsFJ3yQaXY=;
	h=Date:Subject:To:Cc:References:From:In-Reply-To:From;
	b=LvUp7AXAlEO7ZIoS25ITyVlvXptK8gf870o88D54rWCbMQJtullUs6cSr27rMyA/c
	 e00XhjujppWmi0xvi52Gm5YkQ9UqdP9DhcXE4mt5uG56eLAwJBxdh7bKLKbRIqR2p0
	 hxKa4VWv19GOJTD4k62M7VFYmdH3jsk65f7uqAnVJxOmWHStXYZEEGIcS6Niv2j2w8
	 IpwtqFX6o9BUdi073LOjU6OWdKPza4N1Bv/d9TXdnTnKbzJm97DWYQJKY13xLxauZ1
	 08EiDBm8bzmIvt+yzgcbSw7C5JTPomxa++o0v4ZpnafbOTywuWRfv+qFdLQxvDDbc8
	 M3z/FLprqi4PA==
Message-ID: <9618fccf-3620-4395-bdac-aa8999fe2437@zytor.com>
Date: Thu, 3 Apr 2025 00:13:35 -0700
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH v1 01/15] x86/msr: Replace __wrmsr() with
 native_wrmsrl()
To: Andrew Cooper <andrew.cooper3@citrix.com>, linux-kernel@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-edac@vger.kernel.org,
        kvm@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-ide@vger.kernel.org, linux-pm@vger.kernel.org,
        bpf@vger.kernel.org, llvm@lists.linux.dev
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        jgross@suse.com, peterz@infradead.org, acme@kernel.org,
        namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com
References: <20250331082251.3171276-1-xin@zytor.com>
 <20250331082251.3171276-2-xin@zytor.com>
 <0da43a86-81b0-4388-b47b-3a76b15f2a4c@citrix.com>
Content-Language: en-US
From: Xin Li <xin@zytor.com>
Autocrypt: addr=xin@zytor.com; keydata=
 xsDNBGUPz1cBDACS/9yOJGojBFPxFt0OfTWuMl0uSgpwk37uRrFPTTLw4BaxhlFL0bjs6q+0
 2OfG34R+a0ZCuj5c9vggUMoOLdDyA7yPVAJU0OX6lqpg6z/kyQg3t4jvajG6aCgwSDx5Kzg5
 Rj3AXl8k2wb0jdqRB4RvaOPFiHNGgXCs5Pkux/qr0laeFIpzMKMootGa4kfURgPhRzUaM1vy
 bsMsL8vpJtGUmitrSqe5dVNBH00whLtPFM7IbzKURPUOkRRiusFAsw0a1ztCgoFczq6VfAVu
 raTye0L/VXwZd+aGi401V2tLsAHxxckRi9p3mc0jExPc60joK+aZPy6amwSCy5kAJ/AboYtY
 VmKIGKx1yx8POy6m+1lZ8C0q9b8eJ8kWPAR78PgT37FQWKYS1uAroG2wLdK7FiIEpPhCD+zH
 wlslo2ETbdKjrLIPNehQCOWrT32k8vFNEMLP5G/mmjfNj5sEf3IOKgMTMVl9AFjsINLHcxEQ
 6T8nGbX/n3msP6A36FDfdSEAEQEAAc0WWGluIExpIDx4aW5Aenl0b3IuY29tPsLBDQQTAQgA
 NxYhBIUq/WFSDTiOvUIqv2u9DlcdrjdRBQJlD89XBQkFo5qAAhsDBAsJCAcFFQgJCgsFFgID
 AQAACgkQa70OVx2uN1HUpgv/cM2fsFCQodLArMTX5nt9yqAWgA5t1srri6EgS8W3F+3Kitge
 tYTBKu6j5BXuXaX3vyfCm+zajDJN77JHuYnpcKKr13VcZi1Swv6Jx1u0II8DOmoDYLb1Q2ZW
 v83W55fOWJ2g72x/UjVJBQ0sVjAngazU3ckc0TeNQlkcpSVGa/qBIHLfZraWtdrNAQT4A1fa
 sWGuJrChBFhtKbYXbUCu9AoYmmbQnsx2EWoJy3h7OjtfFapJbPZql+no5AJ3Mk9eE5oWyLH+
 QWqtOeJM7kKvn/dBudokFSNhDUw06e7EoVPSJyUIMbYtUO7g2+Atu44G/EPP0yV0J4lRO6EA
 wYRXff7+I1jIWEHpj5EFVYO6SmBg7zF2illHEW31JAPtdDLDHYcZDfS41caEKOQIPsdzQkaQ
 oW2hchcjcMPAfyhhRzUpVHLPxLCetP8vrVhTvnaZUo0xaVYb3+wjP+D5j/3+hwblu2agPsaE
 vgVbZ8Fx3TUxUPCAdr/p73DGg57oHjgezsDNBGUPz1gBDAD4Mg7hMFRQqlzotcNSxatlAQNL
 MadLfUTFz8wUUa21LPLrHBkUwm8RujehJrzcVbPYwPXIO0uyL/F///CogMNx7Iwo6by43KOy
 g89wVFhyy237EY76j1lVfLzcMYmjBoTH95fJC/lVb5Whxil6KjSN/R/y3jfG1dPXfwAuZ/4N
 cMoOslWkfZKJeEut5aZTRepKKF54T5r49H9F7OFLyxrC/uI9UDttWqMxcWyCkHh0v1Di8176
 jjYRNTrGEfYfGxSp+3jYL3PoNceIMkqM9haXjjGl0W1B4BidK1LVYBNov0rTEzyr0a1riUrp
 Qk+6z/LHxCM9lFFXnqH7KWeToTOPQebD2B/Ah5CZlft41i8L6LOF/LCuDBuYlu/fI2nuCc8d
 m4wwtkou1Y/kIwbEsE/6RQwRXUZhzO6llfoN96Fczr/RwvPIK5SVMixqWq4QGFAyK0m/1ap4
 bhIRrdCLVQcgU4glo17vqfEaRcTW5SgX+pGs4KIPPBE5J/ABD6pBnUUAEQEAAcLA/AQYAQgA
 JhYhBIUq/WFSDTiOvUIqv2u9DlcdrjdRBQJlD89ZBQkFo5qAAhsMAAoJEGu9DlcdrjdR4C0L
 /RcjolEjoZW8VsyxWtXazQPnaRvzZ4vhmGOsCPr2BPtMlSwDzTlri8BBG1/3t/DNK4JLuwEj
 OAIE3fkkm+UG4Kjud6aNeraDI52DRVCSx6xff3bjmJsJJMb12mWglN6LjdF6K+PE+OTJUh2F
 dOhslN5C2kgl0dvUuevwMgQF3IljLmi/6APKYJHjkJpu1E6luZec/lRbetHuNFtbh3xgFIJx
 2RpgVDP4xB3f8r0I+y6ua+p7fgOjDLyoFjubRGed0Be45JJQEn7A3CSb6Xu7NYobnxfkwAGZ
 Q81a2XtvNS7Aj6NWVoOQB5KbM4yosO5+Me1V1SkX2jlnn26JPEvbV3KRFcwV5RnDxm4OQTSk
 PYbAkjBbm+tuJ/Sm+5Yp5T/BnKz21FoCS8uvTiziHj2H7Cuekn6F8EYhegONm+RVg3vikOpn
 gao85i4HwQTK9/D1wgJIQkdwWXVMZ6q/OALaBp82vQ2U9sjTyFXgDjglgh00VRAHP7u1Rcu4
 l75w1xInsg==
In-Reply-To: <0da43a86-81b0-4388-b47b-3a76b15f2a4c@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 3/31/2025 2:45 PM, Andrew Cooper wrote:
> On 31/03/2025 9:22 am, Xin Li (Intel) wrote:
>> __wrmsr() is the lowest level primitive MSR write API, and its direct
>> use is NOT preferred.  Use its wrapper function native_wrmsrl() instead.
>>
>> No functional change intended.
>>
>> Signed-off-by: Xin Li (Intel) <xin@zytor.com>
> 
> The critical piece of information you're missing from the commit message
> is that the MSR_IMM instructions take a single u64.
> 
> Therefore to use them, you've got to arrange for all callers to provide
> a single u64, rather than a split u32 pair.

You definitely caught me on how I was thinking it ;)

Sometimes it is nice to see a change log with a thinking process.

Thanks!
     Xin


From xen-devel-bounces@lists.xenproject.org Thu Apr 03 07:30:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 07:30:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.936271.1337557 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0F1u-0004kI-0P; Thu, 03 Apr 2025 07:30:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 936271.1337557; Thu, 03 Apr 2025 07:30: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 1u0F1t-0004kB-UA; Thu, 03 Apr 2025 07:30:25 +0000
Received: by outflank-mailman (input) for mailman id 936271;
 Thu, 03 Apr 2025 07: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=lWYu=WV=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u0F1t-0004k5-DO
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 07:30:25 +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 80eb6df0-105d-11f0-9ffb-bf95429c2676;
 Thu, 03 Apr 2025 09:30:23 +0200 (CEST)
Received: by mail-wr1-x435.google.com with SMTP id
 ffacd0b85a97d-3913958ebf2so385882f8f.3
 for <xen-devel@lists.xenproject.org>; Thu, 03 Apr 2025 00:30:23 -0700 (PDT)
Received: from [10.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-39c3020d66csm1016652f8f.63.2025.04.03.00.30.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 03 Apr 2025 00:30:22 -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: 80eb6df0-105d-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743665422; x=1744270222; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=WLWyeffkEI0DITwT1h1JvghkPyY+DnSQcGtm13OsIPY=;
        b=faODUXP9sAUolS+JqZE1ocuVgcCC5pa5X/EeC+uFVtdeS8RMF0fgRjE0LYePUl2ohJ
         0Ewe6+NMzBGWBu21tcPktJVkAamsJ+8JWRkTVfgwOylIUrF6OjKTmJbZBxsUqPZeSxOL
         Zl27QykuNIgZg/8eMmhh3XO7AdGMvsPQolY/ZmWlDzKvX3hMS4ds4dgWtIRxKXybhdEG
         i35Ft3Jp1LR6yFjQoxSibBTwTjqSODRbiuEsWgqUgf9wHmJ1lERd81e8+LtkesjQ/8un
         Ce5of/Q07qxqo3ZTEcfkqDkLHKN3acw6Q91d1N5FsqkiVtDs3U1xt8q4t0plj4acxe5T
         D4tA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743665422; x=1744270222;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=WLWyeffkEI0DITwT1h1JvghkPyY+DnSQcGtm13OsIPY=;
        b=wJ9yi8wd9QEdTj4V/T87rosLdxc2VvukgW3M2vCl+UlEaAwj8z5InYceb/ZXVE5jQb
         v7mLnPHPHjQzbOdjnxm2UfKXLw41gCkCdz3zb4E6IGm0vsbyhRj1Rfz+fV2ifAlgx1PE
         0u6oH4N3p5NcW17McYUlwT1/0AVdeVTNxsutFMeaIMVwdATUXBC1rN/mynVXXWQdv6lk
         +O1EhUB8wXDDPOGl40LouKlCRNZoMgujEJ2EYRxADYgA9ySGheudFipGrajNL4zknu3N
         mH7SRdYg4Ct5ctjnAAE5MTKaDvw8iwpORVROcyILb53PfxE+09oLbtHUyPoyRPQZSAUg
         pRqg==
X-Forwarded-Encrypted: i=1; AJvYcCUb8ZO6PVHcPj4c+QdO+E3ulV5V1G0OEv000kWXkAAFYu9g7haCJbn8FLcM/6l+5DWHD0Z0h9In9zI=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx7bzLgQbLLrB/Hu0RJ0n/RUKH9sW3tREabPs+XY0v/NUIjtS4V
	NMac9ex45UzL0bOdaMe/LkP01geFZUUgznrOO41AogHYTiR6J09vsTNjX8yVLg==
X-Gm-Gg: ASbGncsVlIT/Fe1PVCHMm6s4DiUnVfLu6hesKcOhK+HDY9qp9XFm5kom3MJOJ0M1Ank
	y8pnxESYeyHiPaDvKok9lSrxoLg/uUlCZmGOXdDGiHMwOqCH/P141ln6pZBqVGLXyFq1XiuJAr5
	Uo03Osme9Amip2hTAZmpZHTF0sCJNkoDrmpZ0T2RoX37avYFh8uQNpIltX0+4XqzUmrUQ+dTL0A
	dtZYYQNlKU4cNoXlJ9kbCpWRaZecZ6pvcuEL1OH3r7IqOK2Tfutb5qEmgTH/ihy+BJSZIElftrd
	faIl1aEVwxG4+9VV7TpN5Gb78Y6lhbllfYVsCOhcJMmJ1jqyKZjeaIQAfi8IjKWw11cKYZhFXIn
	Tv1ypuhJUEkDg515xvwmgawOtOXcrSQ==
X-Google-Smtp-Source: AGHT+IEe+nqWenyWmQiQLZXrNOOwcxZfDhlSn2kN/vQOMtNmTB7oh+JYwvT7gwwMeLxTFTsukuTqgQ==
X-Received: by 2002:a05:6000:1acf:b0:38f:6287:6474 with SMTP id ffacd0b85a97d-39c29752f9cmr4542091f8f.15.1743665422542;
        Thu, 03 Apr 2025 00:30:22 -0700 (PDT)
Message-ID: <7281b7d8-ba7b-4658-82f1-a63d66c1baff@suse.com>
Date: Thu, 3 Apr 2025 09:30:21 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 3/3] xen: debug: gcov: add condition coverage support
To: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20250401011744.2267367-1-volodymyr_babchuk@epam.com>
 <20250401011744.2267367-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: <20250401011744.2267367-4-volodymyr_babchuk@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 01.04.2025 03:17, Volodymyr Babchuk wrote:
> --- a/xen/Kconfig
> +++ b/xen/Kconfig
> @@ -41,6 +41,11 @@ config CC_SPLIT_SECTIONS
>  config CC_HAS_UBSAN
>  	def_bool $(cc-option,-fsanitize=undefined)
>  
> +# Compiler supports -fcondition-coverage aka MC/DC
> +config CC_HAS_MCDC
> +	def_bool $(cc-option,-fcondition-coverage)
> +
> +

Nit: No double blank lines please.

Also, just to clarify - until the use of Kconfig (alone) for things like
this is properly resolved one way or another, I'm not going to approve
such changes (but I'm also not going to veto them). My proposal [1] is
still pending with no resolution, nor any counter-proposals.

> --- a/xen/Rules.mk
> +++ b/xen/Rules.mk
> @@ -138,6 +138,9 @@ ifeq ($(CONFIG_CC_IS_CLANG),y)
>      COV_FLAGS := -fprofile-instr-generate -fcoverage-mapping
>  else
>      COV_FLAGS := -fprofile-arcs -ftest-coverage
> +ifeq ($(CONFIG_CONDITION_COVERAGE),y)
> +    COV_FLAGS += -fcondition-coverage
> +endif
>  endif

Personally I find ifeq() uses like this unhelpful, and would prefer

COV_FLAGS-$(CONFIG_CONDITION_COVERAGE) += -fcondition-coverage
together with an eventual

COV_FLAGS += $(COV_FLAGS-y)

(if we don't already have one).

Jan

[1] https://lists.xen.org/archives/html/xen-devel/2022-09/msg01793.html


From xen-devel-bounces@lists.xenproject.org Thu Apr 03 07:40:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 07:40:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.936284.1337567 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0FBw-00087r-UR; Thu, 03 Apr 2025 07:40:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 936284.1337567; Thu, 03 Apr 2025 07:40: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 1u0FBw-00087k-Qd; Thu, 03 Apr 2025 07:40:48 +0000
Received: by outflank-mailman (input) for mailman id 936284;
 Thu, 03 Apr 2025 07:40: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=Sjqr=WV=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1u0FBv-00083d-GL
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 07:40:47 +0000
Received: from NAM02-SN1-obe.outbound.protection.outlook.com
 (mail-sn1nam02on20625.outbound.protection.outlook.com
 [2a01:111:f403:2406::625])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f2d33700-105e-11f0-9eaa-5ba50f476ded;
 Thu, 03 Apr 2025 09:40:44 +0200 (CEST)
Received: from DM4PR12MB8451.namprd12.prod.outlook.com (2603:10b6:8:182::7) by
 DS0PR12MB6605.namprd12.prod.outlook.com (2603:10b6:8:d3::11) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.8534.44; Thu, 3 Apr 2025 07:40:41 +0000
Received: from DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::b04e:2da5:7189:4c4d]) by DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::b04e:2da5:7189:4c4d%6]) with mapi id 15.20.8534.045; Thu, 3 Apr 2025
 07:40: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: f2d33700-105e-11f0-9eaa-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=JVuJjMUt8mcOhVCk9HEwWdukAAyXPo8Sa6RPY/yVdyETtO0don9BvDZ+uZvi6W/yVCQytXVVGE2Hs3BrWBKHqIlvwr335GEyL4Xpz7jxBYwWHwlxExpCFSlyKbRJ2hdinbIPx3kfreMUiRx25VfMkx2HNSV42cAMig7dPozYzB5MV3x1Gw+eYrE+LLHy6+hN1fo+jfn3/cFtlnA5Zzb7Mze3QYi9bwXC76otSWF2siU5tTeQ6MHykqWg7+vdg1BMsSweVde5y93aYgPfF48Dq+IYIu929l6O4dVM7v7M0P3FwaGoNzDVaMJZdHYp1D5hlhyS+/+sXbgxrwRPzlc79Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=xnRVie7wqBFMKEtXvmySiuQpBycrPn+lvfydBL9UVO8=;
 b=X3lcZ0iD8tFQSSuB8f9cek5pwHYCf5t6XL5mlv/Ro6h8253IMu0RVgWXd0KrBfG91nrtl2IJAeVdzSsOh43x6eCvpCbskBN/sGG4dAejo3Fwm/hNA4PRHKmTvKsLdjKNLr0fseYXVEOx5Wtvj0J2EVqg1gG9UIUFsV53qrQGPwv1QmPcsHjAFvlvXoyEDKFqMhNSMKNlKK0FLZICo2nkUXe7wQYfwbi2+HV8NRdOn882QwHAK/3NS6X6nwPtPaXrVtnJyj4jMZw7kd/8hxURTcQGX1nAHllMg/nvcyshWynkS9GllnCprzK9lOdu5cdSLcsHxSVn3EjVsCAjpsIfKg==
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=xnRVie7wqBFMKEtXvmySiuQpBycrPn+lvfydBL9UVO8=;
 b=ruJgnxb3lbQMo7BIdG5XnUs3O3NYQTNbB/Mm1M8rzkdsz1ktwlqnYPQgLOz5jvbo45xYB76LfHHuGpNX2Y7Ok8G9gmA9K9AJJZv9hJuZAEQJyGth1CtSBOaI3ZMTOAmhO8MT5qFte2wbR9l8PgyICxviLYJG5oEHZ1C743Bel8c=
From: "Penny, Zheng" <penny.zheng@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "Huang, Ray" <Ray.Huang@amd.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>, Jason Andryuk <jandryuk@gmail.com>
Subject: RE: [PATCH v3 09/15] xen/x86: introduce a new amd cppc driver for
 cpufreq scaling
Thread-Topic: [PATCH v3 09/15] xen/x86: introduce a new amd cppc driver for
 cpufreq scaling
Thread-Index: AQHbjnNzqp5kMkMxq06YB77LYWaCT7ODu8GAgAxxPEA=
Date: Thu, 3 Apr 2025 07:40:40 +0000
Message-ID:
 <DM4PR12MB84513D678809A610AA9551D0E1AE2@DM4PR12MB8451.namprd12.prod.outlook.com>
References: <20250306083949.1503385-1-Penny.Zheng@amd.com>
 <20250306083949.1503385-10-Penny.Zheng@amd.com>
 <4fe44e49-f55d-4d2a-ac02-538038e9128c@suse.com>
In-Reply-To: <4fe44e49-f55d-4d2a-ac02-538038e9128c@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
 MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_ActionId=b0f85d97-5b3e-4795-abe3-9ae0a6a143c7;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_ContentBits=0;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Enabled=true;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Method=Privileged;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Name=Open
 Source;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SetDate=2025-04-02T07:58:09Z;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Tag=10,
 0, 1, 1;
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DM4PR12MB8451:EE_|DS0PR12MB6605:EE_
x-ms-office365-filtering-correlation-id: 318bbad8-2d07-48f3-1494-08dd7282d56d
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?SG5pVjZUcXhiVmVDSmc3eFEvUkZ2MHRNYmtUYitqVXlLM3U2NEd5MHdkK2FJ?=
 =?utf-8?B?ZWJ2VDBpQVNlZ3RtaGI4OEhHejYycFhSZTdkVVYrSDI2MXRrbndTclFxL2w2?=
 =?utf-8?B?R1lON3hNMTdzMXFvRkhLSU1MRGM5cHh3UEpGbFFrdkVZcklNU1ZPS3ZETHpJ?=
 =?utf-8?B?bHZQeVp4M0x0Zm9XYkdVczI4K3p1dkVzaDhFcXVyL01BWFpvT3pIK1prRnQv?=
 =?utf-8?B?MXBnRzVlTXI1UjdIanZiNEdVQkxJN3AzYkFpWXpZai9LOXJhYXZMb2QvcXlY?=
 =?utf-8?B?cUV0STNrWnlVVkxEUmd6Yy9YWHpvTTIvRTZzS010LzRVWWcxNVFLNCtEcVhV?=
 =?utf-8?B?WUNQWkQvQkdTNEdXN2RLeTJIUmU2TnpZTjJDc0hYUUVKS0xzOGh2WVVJQjF2?=
 =?utf-8?B?RFZIQW9IbmM4ekZ5NTZpR1dKV3NwMmErSy8zOUNUb28zSVV6LzVPYXY3S2I1?=
 =?utf-8?B?ejZKRjNHU0FrNVVZbGplN1V6N252UmlESEs3cnR3TW1rT2dMMm14ZnZINnpw?=
 =?utf-8?B?eW5LK0ZlbHlNK0FidVloM3dPMlhpVklOOGwwQ21WMHpKTnJGSlNZWm9sZ0li?=
 =?utf-8?B?aVRvbS8wQXFwb2RCOHRQY0EzUHB3MmtjZjFMMVBYM0hCSDhQdjFuSnIzRnlG?=
 =?utf-8?B?Y1VIc0pEQXFwV3FyRXJoYlQ3a2NGN2lqWGMyVDR1RUxKdUp4SDVkbVhsTXFx?=
 =?utf-8?B?V3RLdllsNDZkWFlpOHlrVnNyUnlzK2RjM0lzV2hLLzVyalYvZWdCRlRjSUZG?=
 =?utf-8?B?Q3lQTXBtYTVaSnJVTk9kK3lEajYzZTY1aVJXWmd3cUwzZEI2dTZmNE0rM0w2?=
 =?utf-8?B?NmtZeFJsUytwcTZGdkFXQkpQby82b2Y4RGttWE11RHU3OW0xckY4c1Y4Z1BE?=
 =?utf-8?B?ajJROXdXanlaL2NUQkxmWEFSaDBuczF3bHJsZGtsNURWT00yVWdrZmw4UitI?=
 =?utf-8?B?d0pDZzQrK1VIemhXcHlhakVjRlVDdDNBc1lwMkNWTkwyekhkN2Y4YitwSkhJ?=
 =?utf-8?B?WDF3SFBDNWZuaStNdjhxTE5rVGovMmRTMEY3OXc2bHNIWCtucjJCbk5XV3Nh?=
 =?utf-8?B?OGk1S09rTnRsWmhiL3hyVTV3ODdjUXRmTEtpanB5SW5saGpvYTlrMy9od3By?=
 =?utf-8?B?S203azkzc1VJMi9heFdRb0EwMDNxbmFka1IwaHdVTWpNU0EySml5TDNuL1ds?=
 =?utf-8?B?N084RDM5WThKaFVRQTU4cFM5TE9WeVVkLzBxaS9LaDVxeG85eExnMSs0NVhH?=
 =?utf-8?B?c1RacTJkckM2ZWZZT3Z1YWozV3c3OWtXU29iVDlXaHloaUQvb0NNSUhqbVVy?=
 =?utf-8?B?M0VkblAxR2dIK1FvOHRuZEgxckgxaEppWlZhdFV0cVdidUxteFBTS2NLNGdW?=
 =?utf-8?B?QStnTUdabk04YUYzZk1Xd2hOOXNUck5hNFhaYVp4TmIxOXNsOWJNZ3NYVEpv?=
 =?utf-8?B?bStuWTQyc1pGSTlOTzllazJ1N2tONDhJaHFKU2Z3Q2FGb2ZGMTVNRW43T2pR?=
 =?utf-8?B?dUJUOFpRTTNUdFVaRVZ6WDh6cE5iQnJMdnVZZFM0Wi84QzlWdGJlMVUxblJi?=
 =?utf-8?B?QnRvS1dZNjcyUXZNcjVqTmV5OFJXVG82bDdIZWc0SWNHQUs0aDNRVFNzcTNH?=
 =?utf-8?B?UGFWUFNGeVpHaDY2UXViQ3U5U3dhU3lnU3JYUDBIcHpqYlh4YkcwV0FBOFBO?=
 =?utf-8?B?NTZwaDl1R3J1RlJDQ1JpYjlrWU5PTjlmL1l2QUpTUTIvbVUyekNGdmRwMndp?=
 =?utf-8?B?MStKVHRFNFVxaUcwRHVIQUNkUzVzbWlOVkxIbk8zZktXV1RYYnBnYmx4amYw?=
 =?utf-8?B?bk0zNitkUDRZWUthZ0NScWhsQ0REY0dWYTd3aUxDSWlhNTZQM2E2N3EwT1Vk?=
 =?utf-8?B?U0xsOUdodm5YVlIzd24wRktKV0Q3MVRxbjQwcHFuS0hpdkhFS0NHMXhjT25a?=
 =?utf-8?Q?unQhbwcQVDFOY14Utym4bGay5xsuPt16?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB8451.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?K0xJbTJHR2kydERaZTVWNVlWc0Q3OUJtUkhDSXlQOXIwNHpSdHRCbWMwUXcv?=
 =?utf-8?B?dEZjVGdHRkdpNTF6UXdBK05nV3RhemdmSWFKYWZJdVlzNnc2Z2tWKzRxRlVX?=
 =?utf-8?B?eEdmT1hBT29mUGlmUmFtWm9IL3hHSDB0ZU5rVFVobEhwZzN2MjdjVWErQnNB?=
 =?utf-8?B?c2xHc29pR3phTjZUZTVycC9tc0VHNVpmRDdsWkZqY3Y3RUFieEwydnMvN3dB?=
 =?utf-8?B?d2NrcVcxRUtlV1pTUERKZUdFWXYrYnRhOUtjbnBlMllEV0gyYW52MWF3eXBE?=
 =?utf-8?B?MkEwVno3bDMxRFJoZEoxTFRmVExDZ1NQWGZUczFkTU1sTVo5REkycmUzekFz?=
 =?utf-8?B?QUtuRWNTb09oZ0gvOEszbXVUdUhpN1BUV0N0U3JmUzRqTyt2TW51Ujlnam94?=
 =?utf-8?B?cjBOZE85anVEWnlsdi8ybzVsZTU5STZNTWZ0RUhYVlNDMlhITmRaaGQ3d0ZG?=
 =?utf-8?B?TmpnaStGeXZOdWg0TGcrdjlTL2IrQ2ovbGtGbktBSkVrNEo2SVIyQ3AzSkM1?=
 =?utf-8?B?VGc4aWJQMVVDWVFZVDdjQXQ3SkhicHMzZHd4bGhUWlUzM2xQS3g5eTFlcUlT?=
 =?utf-8?B?cFhTMWtNNVowQlhUU0hFSUFoMXBzMVFqbUxNL2w2SWRJRHBiNXZzT2ppQVQv?=
 =?utf-8?B?cXJ0ekF1TXZURlhBdkNRUGpIVGppUW1QOGZ1YzdEUzJsblBKZkphOWNqcTlP?=
 =?utf-8?B?UmZKMEVPb09KS2tkQTBoRHhTNThPWGlWaWJkRHJQOU03SjRKaWY0YTF4d3hS?=
 =?utf-8?B?NGtodW1PdktKZUI5MHg0WFNvbXMzdlN6amozOTNPWWxjQkQxeTQ2MjNscHFI?=
 =?utf-8?B?NlZNMTYzaGNVdWN0UU04OHJ5alVEZzZCcndWSTVFUmlsQU9KWXVualQvN1F6?=
 =?utf-8?B?SERVa0Z1ZXVrZmMwemE1c3FXdUtBL0o5NTdnVUNDS0ZxTXJCakw4bHRVMEtE?=
 =?utf-8?B?aCt5SVJQRk1OZFJyakVWenAzZ2MybU9XMjVOc2Q4REFodUNBZTc0WmVidlVn?=
 =?utf-8?B?eWFNcUhyV0k1bCs3U25jSDJxS3hiY0VNb0wzQk1UYk1zTGlsWTJLYzVGTEJ6?=
 =?utf-8?B?TDh0NkJnS1g0SXNReURTbzZxUklXK3cxQkZwSjRrWXRWSVByU2RiQVdvc2hj?=
 =?utf-8?B?VEZycHdHMzZ1Q04zRHZyRjRXNzByTUNHTGxWSDhybWlJR1M1dzR5L0FRcXE3?=
 =?utf-8?B?SkhGZ1lXRjBZaUhYSnJaZzY2bU1PdWgvT1gxSVZmbXEwOXR3a01Qc3A1M1lt?=
 =?utf-8?B?RmxPanc0NHBhelRVblFLaFpwbzhzQWozOUVyOFZ4Y2ZPakNQN2JsNFpGd25O?=
 =?utf-8?B?eHVrdEMwbEV4VUxkbkpjTVd2UldmQlJRL3QzT21jMUtJZlhjSzErUmthMmtt?=
 =?utf-8?B?VzlHUmpLeGFtbzFPY2tjWUZnQ2toM3Q1RnZhZWo1Q2JDZlp2QWYzNFRxanBX?=
 =?utf-8?B?aEx3cHRmbi9yaVNIck02SWp1NnlGSmlaL041YUhTME1QcTVLRzg3N1d2a2lX?=
 =?utf-8?B?b2dEMllET0J2TFpZTUp2NmZSV0hNVHJ1Q0pEZ2t3c2RVZTJJTXdpZkk0QW0x?=
 =?utf-8?B?QnNqUHFpL1FORE1MblhhOHh4TzBucWxONUQwM0hRRDVvK0hhM2NwdjArcXVY?=
 =?utf-8?B?NmYybzlpYkhTTCtUYlVncEl3Wml1RFN4Undhb1hKK0pyRGh0RWFhd3JHVUhq?=
 =?utf-8?B?ZVc2bXd3cHREWk0rNkhJTWRmR01TNFo5eXJkeUVZQWhwTTJZM0R6eWc1bWFL?=
 =?utf-8?B?ZnVyd3orb20yQXRWMHhuRnZQd2FrTm9aMFlKM0FxK29OelZzYXRodW4yNU85?=
 =?utf-8?B?c2lZM2kwVXQ3QVluYS93SlpJNzhCVXNuRFVodGdNVlhOdU1SL2lqeHJaKzBK?=
 =?utf-8?B?cVZnbGlPMjNtQWIwYjYvTk1xWFlZYXBuSnd0N2hnc0RNbUNNZWZZMFJqdk9M?=
 =?utf-8?B?a3M1cHR1SitrbnRDLzg4K3lIVk8vVjJRSW5QSThtZXZnYmhNVVRtbWwyamhK?=
 =?utf-8?B?amFoWmx5bUtadXJjRko3NUNlbytsd1VLNG9wWlFWOUFDU3oyWU9iWVpybmIz?=
 =?utf-8?B?TUR5V1Q2b3c5RFdla0FXSEdNNEVydXp6NHFiWm1hWFFLVVJXQXlSSTQzM01q?=
 =?utf-8?Q?rwY8=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB8451.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 318bbad8-2d07-48f3-1494-08dd7282d56d
X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Apr 2025 07:40:40.8111
 (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: lSrLN+y/TBFfJMkQhLJpTcpb3zBsj1VV+7DU8Sd9JIQzyZ/vQtDqvcvD6ohXoz+/P1AEJzcpo9I9/QHfVsqGpg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB6605

W1B1YmxpY10NCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBKYW4gQmV1
bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQo+IFNlbnQ6IFR1ZXNkYXksIE1hcmNoIDI1LCAyMDI1
IDU6NTggUE0NCj4gVG86IFBlbm55LCBaaGVuZyA8cGVubnkuemhlbmdAYW1kLmNvbT4NCj4gQ2M6
IEh1YW5nLCBSYXkgPFJheS5IdWFuZ0BhbWQuY29tPjsgQW5kcmV3IENvb3Blcg0KPiA8YW5kcmV3
LmNvb3BlcjNAY2l0cml4LmNvbT47IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXgu
Y29tPjsgeGVuLQ0KPiBkZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZzsgSmFzb24gQW5kcnl1ayA8
amFuZHJ5dWtAZ21haWwuY29tPg0KPiBTdWJqZWN0OiBSZTogW1BBVENIIHYzIDA5LzE1XSB4ZW4v
eDg2OiBpbnRyb2R1Y2UgYSBuZXcgYW1kIGNwcGMgZHJpdmVyIGZvcg0KPiBjcHVmcmVxIHNjYWxp
bmcNCj4NCj4gPiArICAgICAgICAgKiBkaXJlY3RseSB1c2Ugbm9taW5hbF9taHogYW5kIGxvd2Vz
dF9taHogYXMgdGhlIGRpdmlzaW9uDQo+ID4gKyAgICAgICAgICogd2lsbCByZW1vdmUgdGhlIGZy
ZXF1ZW5jeSB1bml0Lg0KPiA+ICsgICAgICAgICAqLw0KPiA+ICsgICAgICAgIGRpdiA9IGRpdiA/
OiAxOw0KPg0KPiBJbW8gdGhlIGNwcGNfZGF0YS0+bG93ZXN0X21oeiA+PSBjcHBjX2RhdGEtPm5v
bWluYWxfbWh6IGNhc2UgYmV0dGVyDQo+IHdvdWxkbid0IG1ha2UgaXQgaGVyZSwgYnV0IHVzZSB0
aGUgZmFsbGJhY2sgcGF0aCBiZWxvdy4gT3Igc3BlY2lhbC0gY2FzZQ0KPiBjcHBjX2RhdGEtPmxv
d2VzdF9taHogPT0gY3BwY19kYXRhLT5ub21pbmFsX21oejogbXVsIHdvdWxkDQo+IChob3BlZnVs
bHkpIGJlIHplcm8gKGkuZS4gdGhlcmUgd291bGQgYmUgdGhlIGV4cGVjdGF0aW9uIHRoYXQNCj4g
ZGF0YS0+Y2Fwcy5ub21pbmFsX3BlcmYgPT0gZGF0YS0+Y2Fwcy5sb3dlc3RfcGVyZiwgeWV0IG5v
IGd1YXJhbnRlZQ0KPiB3aXRob3V0IGNoZWNraW5nKSwgYW5kIGhlbmNlIC4uLg0KDQpPa2F5LCBJ
J2xsIGRyb3AgdGhlICIgZGl2ID0gZGl2ID86IDEiLCB0byBzdHJpY3QgdGhlIGlmKCkgdG8NCmBg
YA0KaWYgKCBjcHBjX2RhdGEtPmNwYy5sb3dlc3RfbWh6ICYmIGNwcGNfZGF0YS0+Y3BjLm5vbWlu
YWxfbWh6ICYmDQogICAgIChjcHBjX2RhdGEtPmNwYy5sb3dlc3RfbWh6ICE9IGNwcGNfZGF0YS0+
Y3BjLm5vbWluYWxfbWh6KSApDQpgYGANCg0KPg0KPiA+ICsgICAgICAgIG9mZnNldCA9IGRhdGEt
PmNhcHMubm9taW5hbF9wZXJmIC0NCj4gPiArICAgICAgICAgICAgICAgICAobXVsICogY3BwY19k
YXRhLT5ub21pbmFsX21oeikgLyBkaXY7DQo+DQo+IC4uLiBvZmZzZXQgPSBkYXRhLT5jYXBzLm5v
bWluYWxfcGVyZiByZWdhcmRsZXNzIG9mICJkaXYiIChhcyBsb25nIGFzIHRoYXQncyBub3QgemVy
bykuDQo+IEkuZS4gdGhlICJlcXVhbCIgY2FzZSBtYXkgc3RpbGwgYmUgZmluZSB0byB0YWtlIHRo
aXMgcGF0aC4NCj4NCj4gT3IgaXMgdGhlcmUgYSBjaGVjayBzb21ld2hlcmUgdGhhdCBsb3dlc3Rf
bWh6IDw9IG5vbWluYWxfbWh6IGFuZCBsb3dlc3RfcGVyZg0KPiA8PSBub21pbmFsX3BlcmYsIHdo
aWNoIEknbSBzaW1wbHkgb3Zlcmxvb2tpbmc/DQo+DQoNClllcy4gSSBvdmVybG9va2VkIHRoZSBz
Y2VuYXJpbyB0aGF0IGxvd2VzdF9taHogPiBub21pbmFsX21oeiBhbmQgbG93ZXN0X3BlcmYgPiBu
b21pbmFsX3BlcmYNCmFuZCBJJ2xsIGFkZCB0aGUgY2hlY2sgb24gZmlyc3QgcmVhZA0KDQo+ID4g
KyNkZWZpbmUgYW1kX2dldF9mcmVxKG5hbWUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcDQo+DQo+IFRoZSBtYWNybyBwYXJhbWV0ZXIgaXMgdXNlZCBq
dXN0IC4uLg0KPg0KPiA+ICsgICAgc3RhdGljIGludCBhbWRfZ2V0XyMjbmFtZSMjX2ZyZXEoY29u
c3Qgc3RydWN0IGFtZF9jcHBjX2Rydl9kYXRhDQo+ID4gKyAqZGF0YSwgIFwNCj4NCj4gLi4uIGhl
cmUsIC4uLg0KPg0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5z
aWduZWQgaW50ICpmcmVxKSAgICAgICAgICAgICAgICAgICAgXA0KPiA+ICsgICAgeyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXA0KPiA+ICsgICAgICAgIGNvbnN0IHN0cnVjdCB4ZW5fcHJvY2Vzc29yX2NwcGMgKmNw
cGNfZGF0YSA9IGRhdGEtPmNwcGNfZGF0YTsgICAgICAgXA0KPiA+ICsgICAgICAgIHVpbnQ2NF90
IG11bCwgZGl2LCByZXM7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiA+ICsgICAgICAgIGlmICggY3BwY19k
YXRhLT5uYW1lIyNfbWh6ICkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XA0KPiA+ICsgICAgICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiA+ICsgICAgICAgICAgICAvKiBTd2l0Y2gg
dG8ga2h6ICovICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0K
PiA+ICsgICAgICAgICAgICAqZnJlcSA9IGNwcGNfZGF0YS0+bmFtZSMjX21oeiAqIDEwMDA7ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXA0KPg0KPiAuLi4gdHdpY2UgaGVyZSBmb3J0aGUgTUh6
IHZhbHVlLCBhbmQgLi4uDQo+DQo+ID4gKyAgICAgICAgICAgIHJldHVybiAwOyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ID4gKyAgICAg
ICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ID4gKyAgICAgICAg
LyogUmVhZCBQcm9jZXNzb3IgTWF4IFNwZWVkKG1oeikgYXMgYW5jaG9yIHBvaW50ICovICAgICAg
ICAgICAgICAgICBcDQo+ID4gKyAgICAgICAgbXVsID0gdGhpc19jcHUoYW1kX21heF9mcmVxX21o
eik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ID4gKyAgICAgICAgaWYg
KCAhbXVsICkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcDQo+ID4gKyAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ID4gKyAgICAgICAgZGl2ID0g
ZGF0YS0+Y2Fwcy5oaWdoZXN0X3BlcmY7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBcDQo+ID4gKyAgICAgICAgcmVzID0gKG11bCAqIGRhdGEtPmNhcHMubmFtZSMjX3BlcmYg
KiAxMDAwKSAvIGRpdjsgICAgICAgICAgICAgICAgICBcDQo+DQo+IC4uLiBoZXJlIGZvciB0aGUg
cmVzcGVjdGl2ZSBwZXJmIGluZGljYXRvci4gV2h5IGRvZXMgaXQgdGFrZSAuLi4NCj4NCj4gPiAr
ICAgICAgICBpZiAoIHJlcyA+IFVJTlRfTUFYICkgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwNCj4gPiArICAgICAgICB7ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gPiArICAg
ICAgICAgICAgcHJpbnRrKFhFTkxPR19FUlIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwNCj4gPiArICAgICAgICAgICAgICAgICAgICJGcmVxdWVueSBleGNl
ZWRzIG1heGltdW0gdmFsdWUgVUlOVF9NQVg6ICVsdVxuIiwgcmVzKTsgIFwNCj4gPiArICAgICAg
ICAgICAgcmV0dXJuIC1FSU5WQUw7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwNCj4gPiArICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gPiArICAgICAgICAq
ZnJlcSA9ICh1bnNpZ25lZCBpbnQpcmVzOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gPiArICAgICAgICByZXR1
cm4gMDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwNCj4gPiArICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gPiArDQo+ID4gK2FtZF9nZXRf
ZnJlcShsb3dlc3QpOw0KPiA+ICthbWRfZ2V0X2ZyZXEobm9taW5hbCk7DQo+DQo+IC4uLiB0d28g
YWxtb3N0IGlkZW50aWNhbCBmdW5jdGlvbnMsIHdoZW4gb25lICh3aXRoIHR3byBleHRyYSBpbnB1
dCBwYXJhbWV0ZXJzKSB3b3VsZA0KPiBzdWZmaWNlPw0KPg0KDQpJIGhhZCBhIGRyYWZ0IGZpeCBo
ZXJlLCBJZiBpdCBkb2Vzbid0IHdoYXQgeW91IGhvcGUgZm9yLCBwbHogbGV0IG1lIGtub3cNCmBg
YA0Kc3RhdGljIGludCBhbWRfZ2V0X2xvd2VzdF9hbmRfbm9taW5hbF9mcmVxKGNvbnN0IHN0cnVj
dCBhbWRfY3BwY19kcnZfZGF0YSAqZGF0YSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgKmxvd2VzdF9mcmVxLA0KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCAqbm9taW5hbF9mcmVxKQ0K
ew0KICAgIGNvbnN0IHN0cnVjdCB4ZW5fcHJvY2Vzc29yX2NwcGMgKmNwcGNfZGF0YSA9IGRhdGEt
PmNwcGNfZGF0YTsNCiAgICB1aW50NjRfdCBtdWwsIGRpdiwgcmVzOw0KICAgIHVpbnQ4X3QgcGVy
ZjsNCg0KICAgIGlmICggIWxvd2VzdF9mcmVxICYmICFub21pbmFsX2ZyZXEgKQ0KICAgICAgICBy
ZXR1cm4gLUVJTlZBTDsNCg0KICAgIGlmICggbG93ZXN0X2ZyZXEgJiYgY3BwY19kYXRhLT5jcGMu
bG93ZXN0X21oeiApDQogICAgICAgIC8qIFN3aXRjaCB0byBraHogKi8NCiAgICAgICAgKmxvd2Vz
dF9mcmVxID0gY3BwY19kYXRhLT5jcGMubG93ZXN0X21oeiAqIDEwMDA7DQoNCiAgICBpZiAoIG5v
bWluYWxfZnJlcSAmJiBjcHBjX2RhdGEtPmNwYy5ub21pbmFsX21oeiApDQogICAgICAgIC8qIFN3
aXRjaCB0byBraHogKi8NCiAgICAgICAgKm5vbWluYWxfZnJlcSA9IGNwcGNfZGF0YS0+Y3BjLm5v
bWluYWxfbWh6ICogMTAwMDsNCg0KICAgIC8qIFN0aWxsIGhhdmUgdW5yZXNvbHZlZCBmcmVxdWVu
Y3kgKi8NCiAgICBpZiAoIChsb3dlc3RfZnJlcSAmJiAhKCpsb3dlc3RfZnJlcSkpIHx8DQogICAg
ICAgICAobm9taW5hbF9mcmVxICYmICEoKm5vbWluYWxfZnJlcSkpICkNCiAgICB7DQogICAgICAg
IGRvIHsNCiAgICAgICAgICAgIC8qIENhbGN1bGF0ZSBsb3dlc3QgZnJlcXVlbmN5IGZpcnN0bHkg
aWYgbmVlZCAqLw0KICAgICAgICAgICAgaWYgKCBsb3dlc3RfZnJlcSAmJiAhKCpsb3dlc3RfZnJl
cSkgKQ0KICAgICAgICAgICAgICAgIHBlcmYgPSBkYXRhLT5jYXBzLmxvd2VzdF9wZXJmOw0KICAg
ICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgICAgIHBlcmYgPSBkYXRhLT5jYXBzLm5vbWluYWxf
cGVyZjsNCg0KICAgICAgICAgICAgLyogUmVhZCBQcm9jZXNzb3IgTWF4IFNwZWVkKE1IeikgYXMg
YW5jaG9yIHBvaW50ICovDQogICAgICAgICAgICBtdWwgPSB0aGlzX2NwdShhbWRfbWF4X3B4ZnJl
cV9taHopOw0KICAgICAgICAgICAgaWYgKCBtdWwgPT0gSU5WQUxfRlJFUV9NSFogfHwgIW11bCAp
DQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19FUlINCiAgICAg
ICAgICAgICAgICAgICAgICAgIkZhaWxlZCB0byByZWFkIHZhbGlkIHByb2Nlc3NvciBtYXggZnJl
cXVlbmN5IGFzIGFuY2hvciBwb2ludDogJWx1XG4iLA0KICAgICAgICAgICAgICAgICAgICAgICBt
dWwpOw0KICAgICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOw0KICAgICAgICAgICAgfQ0KICAg
ICAgICAgICAgZGl2ID0gZGF0YS0+Y2Fwcy5oaWdoZXN0X3BlcmY7DQogICAgICAgICAgICByZXMg
PSAobXVsICogcGVyZiAqIDEwMDApIC8gZGl2Ow0KDQogICAgICAgICAgICBpZiAoIHJlcyA+IFVJ
TlRfTUFYIHx8ICFyZXMgKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIHByaW50ayhY
RU5MT0dfRVJSDQogICAgICAgICAgICAgICAgICAgICAgICJGcmVxdWVueSBleGNlZWRzIG1heGlt
dW0gdmFsdWUgVUlOVF9NQVggb3IgYmVpbmcgemVybyB2YWx1ZTogJWx1XG4iLA0KICAgICAgICAg
ICAgICAgICAgICAgICByZXMpOw0KICAgICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOw0KICAg
ICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZiAoIGxvd2VzdF9mcmVxICYmICEoKmxvd2VzdF9m
cmVxKSApDQogICAgICAgICAgICAgICAgKmxvd2VzdF9mcmVxID0gKHVuc2lnbmVkIGludClyZXM7
DQogICAgICAgICAgICBlbHNlDQogICAgICAgICAgICAgICAgKm5vbWluYWxfZnJlcSA9ICh1bnNp
Z25lZCBpbnQpcmVzOw0KICAgICAgICB9IHdoaWxlICggbm9taW5hbF9mcmVxICYmICEoKm5vbWlu
YWxfZnJlcSkgKTsNCiAgICB9DQoNCiAgICByZXR1cm4gMDsNCn0NCmBgYA0KDQo+IEluIGFtZF9j
cHBjX2toel90b19wZXJmKCkgeW91IGhhdmUgYSBjaGVjayB0byBhdm9pZCBkaXZpc2lvbiBieSB6
ZXJvLiBXaHkgbm90DQo+IHRoZSBzYW1lIHNhZmVndWFyZGluZyBoZXJlPw0KPg0KDQpkaXYgPSBk
YXRhLT5jYXBzLmhpZ2hlc3RfcGVyZjsgRm9yIGhpZ2hlc3RfcGVyZiBub24temVybyBjaGVjaywg
aXQgaXMgYWxyZWFkeSBhZGRlZA0KaW4gIGFtZF9jcHBjX2luaXRfbXNycygpDQoNCj4gPiArc3Rh
dGljIGludCBhbWRfZ2V0X21heF9mcmVxKGNvbnN0IHN0cnVjdCBhbWRfY3BwY19kcnZfZGF0YSAq
ZGF0YSwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCAqbWF4
X2ZyZXEpIHsNCj4gPiArICAgIHVuc2lnbmVkIGludCBub21fZnJlcSwgYm9vc3RfcmF0aW87DQo+
ID4gKyAgICBpbnQgcmVzOw0KPiA+ICsNCj4gPiArICAgIHJlcyA9IGFtZF9nZXRfbm9taW5hbF9m
cmVxKGRhdGEsICZub21fZnJlcSk7DQo+ID4gKyAgICBpZiAoIHJlcyApDQo+ID4gKyAgICAgICAg
cmV0dXJuIHJlczsNCj4gPiArDQo+ID4gKyAgICBib29zdF9yYXRpbyA9ICh1bnNpZ25lZCBpbnQp
KGRhdGEtPmNhcHMuaGlnaGVzdF9wZXJmIC8NCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZGF0YS0+Y2Fwcy5ub21pbmFsX3BlcmYpOw0KPg0KPiBTaW1pbGFybHkgaGVyZSAt
IEkgY2FuJ3Qgc3BvdCB3aGF0IHdvdWxkIHByZXZlbnQgZGl2aXNpb24gYnkgemVyby4NCj4NCg0K
SW4gYW1kX2NwcGNfaW5pdF9tc3JzKCksIGJlZm9yZSBjYWxjdWxhdGluZyB0aGUgZnJlcXVlbmN5
LCB3ZSBoYXZlIGNoZWNrZWQNCmFsbCBjYXBzLnh4eF9wZXJmIGluZm8gc2hhbGwgbm90IGJlIHpl
cm8uDQpJJ2xsIGNvbXBsZW1lbnQgY2hlY2sgdG8gYXZvaWQgImhpZ2hlc3RfcGVyZiA8IG5vbWlu
YWxfcGVyZiIsIHRvIGVuc3VyZSB0aGF0DQp0aGUgY2FsY3VsYXRpb24gcmVzdWx0IG9mIGJvb3N0
X3JhdGlvIG11c3Qgbm90IGJlIHplcm8uDQpgYGANCiAgICBpZiAoIGRhdGEtPmNhcHMuaGlnaGVz
dF9wZXJmID09IDAgfHwgZGF0YS0+Y2Fwcy5sb3dlc3RfcGVyZiA9PSAwIHx8DQogICAgICAgICBk
YXRhLT5jYXBzLm5vbWluYWxfcGVyZiA9PSAwIHx8IGRhdGEtPmNhcHMubG93ZXN0X25vbmxpbmVh
cl9wZXJmID09IDAgfHwNCiAgICAgICAgIGRhdGEtPmNhcHMubG93ZXN0X3BlcmYgPiBkYXRhLT5j
YXBzLmxvd2VzdF9ub25saW5lYXJfcGVyZiB8fA0KICAgICAgICAgZGF0YS0+Y2Fwcy5sb3dlc3Rf
bm9ubGluZWFyX3BlcmYgPiBkYXRhLT5jYXBzLm5vbWluYWxfcGVyZiB8fA0KICAgICAgICAgZGF0
YS0+Y2Fwcy5ub21pbmFsX3BlcmYgPiBkYXRhLT5jYXBzLmhpZ2hlc3RfcGVyZiApDQpgYGANCg0K
Pg0KPiBKYW4NCg==


From xen-devel-bounces@lists.xenproject.org Thu Apr 03 07:55:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 07:55:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.936316.1337594 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0FPf-0003lv-Ao; Thu, 03 Apr 2025 07:54:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 936316.1337594; Thu, 03 Apr 2025 07:54:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0FPf-0003lo-6r; Thu, 03 Apr 2025 07:54:59 +0000
Received: by outflank-mailman (input) for mailman id 936316;
 Thu, 03 Apr 2025 07:54: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=lWYu=WV=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u0FPe-0003li-35
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 07:54:58 +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 ef6f0e6c-1060-11f0-9eaa-5ba50f476ded;
 Thu, 03 Apr 2025 09:54:57 +0200 (CEST)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-43d04ea9d9aso2338325e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 03 Apr 2025 00:54:57 -0700 (PDT)
Received: from [10.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-43ec16a3aefsm14012145e9.21.2025.04.03.00.54.55
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 03 Apr 2025 00:54:56 -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: ef6f0e6c-1060-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743666896; x=1744271696; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=gaMukuvdUIaWagUwyVANBOItJ+CWoS5b6z07Y9WIUcs=;
        b=RtvkWbms564jOGp6d3tKq7RmNQyBGEefcHxarNXSFXsORwu0b7PB1zH4Nq4/CA2G6v
         4PkNf4ZVpTelwj8grYCI8IIxm7yhzfYGM7DDG6PH2gSdHwgIH6GpxPgvytwQR5Xdt5Rn
         +HmOh83swhTev/M0y9nFq/ciiNOIU/uiOTHA/zv3qBHl4aLH6PUZOzZwVEs9krPBmxns
         V7F1trwScCpVCfhD11bLEQM2zoDAs6skRueVl8vvnHkB/+YPXj3QQVf4mHhpI8tfhv4t
         5AJTGDPDtgzMUycfzDJarzuPsNYRbTLvIMSP66L7dvV0b3MKzXYM+FZa9AOtYNu76gmq
         KRnw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743666896; x=1744271696;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=gaMukuvdUIaWagUwyVANBOItJ+CWoS5b6z07Y9WIUcs=;
        b=IrV7cw6wZAnkhClsCWplD0+eqpXXU35rsOFNozhA6zwykirapFNnZUrzTjKdPjpCG4
         sfdzEHFlaTKMW4RTLmU2V6jDPTLt6qJvmFyTS4UXnfm+Ygh0PvR6gL1ymXLp/xh8IGro
         CT4m55a6VII270mENSd2rhlU+8IUeRWk0pO9/hCvzKZL4UXN0Nuh9kJb9OJ5Bt8op0R2
         bhmQFVFe0KXVxti0YRN2m2K06pAF1/gEh7nQrK0BDKa55NvMt/WwqnApIDbMUFYfC1Vq
         pzrfZXEERYa1HhrJkHgAEZ7xtw/Hkq6RHXAH5yZvgGBwZPp7BfzvO86Z1V/EKmdaqeYd
         7c6Q==
X-Forwarded-Encrypted: i=1; AJvYcCXIMRiYZBOvWaN5G3S0CYJd2NlKPd9qmhJtj7QGq7K23rBDDK/IhZV4F3w520oCs3PCxyKMgsocfmc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzwiTSqjNXFaeGQ5kWkL8uU9DAd3fG8aIWFx6QI6pjERU0/LKLz
	1DIbZ7VCXixJVgDt00L/vleRA9ZpkpvagP7SXgr0R5iipAqZoU0DjpreggbicA==
X-Gm-Gg: ASbGncuSrB4UA0/hjQj+lf+ab+SsNif8H5EhCrAWj3WeOu1YyIKgMGhkT8JFfcykBGM
	SczUB3KDg+ogpd7X8Fijw/E6dcWEE+8gMOI5v9p9lNna5GrIaqmhT4ZMJUmDRAUV0RU5GtHMFyK
	XcPEtJS7aUED5LVzEtZqlze/K6+1+pUR9xHNfs6Zd87bqBhnyLyXYsqVKdIDIb3Xf6jYNwZMEEZ
	KAd0mWOR0CyIjTutR/3OHcMu4C9mlBI0JpnfbFyuSXHC1WUv/AJC1aoqKaR05fkdlqucP+SZ05c
	n2bHuQ7b0lRCzaVmIrvVjwbl+fSqFOaJVDEZywnnAiw/JWDpqQMTskpcsOgQnGbpgGCPe7W56st
	mwAtj7Y+S7EBC84CeCmDyegUdgTjXSg==
X-Google-Smtp-Source: AGHT+IEwjfGjl8AT0TU8Zkz5++wpBF9fYqfr+yysc/RNsqrAqP+pg3+q9NTn83mqzI9yF8ljjXByKw==
X-Received: by 2002:a05:600c:510c:b0:43c:fffc:7886 with SMTP id 5b1f17b1804b1-43ec139aa3amr13532525e9.8.1743666896422;
        Thu, 03 Apr 2025 00:54:56 -0700 (PDT)
Message-ID: <38efe2ef-a87e-4558-8532-01be16626787@suse.com>
Date: Thu, 3 Apr 2025 09:54:54 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 09/15] xen/x86: introduce a new amd cppc driver for
 cpufreq scaling
To: "Penny, Zheng" <penny.zheng@amd.com>
Cc: "Huang, Ray" <Ray.Huang@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" <xen-devel@lists.xenproject.org>,
 Jason Andryuk <jandryuk@gmail.com>
References: <20250306083949.1503385-1-Penny.Zheng@amd.com>
 <20250306083949.1503385-10-Penny.Zheng@amd.com>
 <4fe44e49-f55d-4d2a-ac02-538038e9128c@suse.com>
 <DM4PR12MB84513D678809A610AA9551D0E1AE2@DM4PR12MB8451.namprd12.prod.outlook.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <DM4PR12MB84513D678809A610AA9551D0E1AE2@DM4PR12MB8451.namprd12.prod.outlook.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 03.04.2025 09:40, Penny, Zheng wrote:
>> -----Original Message-----
>> From: Jan Beulich <jbeulich@suse.com>
>> Sent: Tuesday, March 25, 2025 5:58 PM
>>
>>> +#define amd_get_freq(name)                                                  \
>>
>> The macro parameter is used just ...
>>
>>> +    static int amd_get_##name##_freq(const struct amd_cppc_drv_data
>>> + *data,  \
>>
>> ... here, ...
>>
>>> +                                     unsigned int *freq)                    \
>>> +    {                                                                       \
>>> +        const struct xen_processor_cppc *cppc_data = data->cppc_data;       \
>>> +        uint64_t mul, div, res;                                             \
>>> +                                                                            \
>>> +        if ( cppc_data->name##_mhz )                                        \
>>> +        {                                                                   \
>>> +            /* Switch to khz */                                             \
>>> +            *freq = cppc_data->name##_mhz * 1000;                           \
>>
>> ... twice here forthe MHz value, and ...
>>
>>> +            return 0;                                                       \
>>> +        }                                                                   \
>>> +                                                                            \
>>> +        /* Read Processor Max Speed(mhz) as anchor point */                 \
>>> +        mul = this_cpu(amd_max_freq_mhz);                                   \
>>> +        if ( !mul )                                                         \
>>> +            return -EINVAL;                                                 \
>>> +        div = data->caps.highest_perf;                                      \
>>> +        res = (mul * data->caps.name##_perf * 1000) / div;                  \
>>
>> ... here for the respective perf indicator. Why does it take ...
>>
>>> +        if ( res > UINT_MAX )                                               \
>>> +        {                                                                   \
>>> +            printk(XENLOG_ERR                                               \
>>> +                   "Frequeny exceeds maximum value UINT_MAX: %lu\n", res);  \
>>> +            return -EINVAL;                                                 \
>>> +        }                                                                   \
>>> +        *freq = (unsigned int)res;                                          \
>>> +                                                                            \
>>> +        return 0;                                                           \
>>> +    }                                                                       \
>>> +
>>> +amd_get_freq(lowest);
>>> +amd_get_freq(nominal);
>>
>> ... two almost identical functions, when one (with two extra input parameters) would
>> suffice?
>>
> 
> I had a draft fix here, If it doesn't what you hope for, plz let me know
> ```
> static int amd_get_lowest_and_nominal_freq(const struct amd_cppc_drv_data *data,
>                                            unsigned int *lowest_freq,
>                                            unsigned int *nominal_freq)

Why two outputs now when there was just one in the macro-ized form? I was
rather expecting new inputs to appear, to account for the prior uses of
the macro parameter. (As a result the function is now also quite a bit
more complex than it was before. In particular there was no ...

> {
>     const struct xen_processor_cppc *cppc_data = data->cppc_data;
>     uint64_t mul, div, res;
>     uint8_t perf;
> 
>     if ( !lowest_freq && !nominal_freq )
>         return -EINVAL;
> 
>     if ( lowest_freq && cppc_data->cpc.lowest_mhz )
>         /* Switch to khz */
>         *lowest_freq = cppc_data->cpc.lowest_mhz * 1000;
> 
>     if ( nominal_freq && cppc_data->cpc.nominal_mhz )
>         /* Switch to khz */
>         *nominal_freq = cppc_data->cpc.nominal_mhz * 1000;
> 
>     /* Still have unresolved frequency */
>     if ( (lowest_freq && !(*lowest_freq)) ||
>          (nominal_freq && !(*nominal_freq)) )
>     {
>         do {
>             /* Calculate lowest frequency firstly if need */
>             if ( lowest_freq && !(*lowest_freq) )
>                 perf = data->caps.lowest_perf;
>             else
>                 perf = data->caps.nominal_perf;
> 
>             /* Read Processor Max Speed(MHz) as anchor point */
>             mul = this_cpu(amd_max_pxfreq_mhz);
>             if ( mul == INVAL_FREQ_MHZ || !mul )
>             {
>                 printk(XENLOG_ERR
>                        "Failed to read valid processor max frequency as anchor point: %lu\n",
>                        mul);
>                 return -EINVAL;
>             }
>             div = data->caps.highest_perf;
>             res = (mul * perf * 1000) / div;
> 
>             if ( res > UINT_MAX || !res )
>             {
>                 printk(XENLOG_ERR
>                        "Frequeny exceeds maximum value UINT_MAX or being zero value: %lu\n",
>                        res);
>                 return -EINVAL;
>             }
> 
>             if ( lowest_freq && !(*lowest_freq) )
>                 *lowest_freq = (unsigned int)res;
>             else
>                 *nominal_freq = (unsigned int)res;
>         } while ( nominal_freq && !(*nominal_freq) );

... loop there.)

Jan

>     }
> 
>     return 0;
> }
> ```



From xen-devel-bounces@lists.xenproject.org Thu Apr 03 08:19:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 08:19:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.936332.1337604 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0FnT-0001Ao-7e; Thu, 03 Apr 2025 08:19:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 936332.1337604; Thu, 03 Apr 2025 08:19: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 1u0FnT-0001Ah-4a; Thu, 03 Apr 2025 08:19:35 +0000
Received: by outflank-mailman (input) for mailman id 936332;
 Thu, 03 Apr 2025 08:19: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=t8zK=WV=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1u0FnR-0001Ab-GP
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 08:19:33 +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 5d86079e-1064-11f0-9eaa-5ba50f476ded;
 Thu, 03 Apr 2025 10:19:31 +0200 (CEST)
Received: from BN9PR03CA0587.namprd03.prod.outlook.com (2603:10b6:408:10d::22)
 by DM6PR12MB4201.namprd12.prod.outlook.com (2603:10b6:5:216::9) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.44; Thu, 3 Apr
 2025 08:19:25 +0000
Received: from BN1PEPF00005FFF.namprd05.prod.outlook.com
 (2603:10b6:408:10d:cafe::3e) by BN9PR03CA0587.outlook.office365.com
 (2603:10b6:408:10d::22) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8606.26 via Frontend Transport; Thu,
 3 Apr 2025 08:19:24 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 BN1PEPF00005FFF.mail.protection.outlook.com (10.167.243.231) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8606.22 via Frontend Transport; Thu, 3 Apr 2025 08:19:24 +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, 3 Apr
 2025 03:19:24 -0500
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; Thu, 3 Apr 2025 03:19:22 -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: 5d86079e-1064-11f0-9eaa-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Fwkvxu+FmEXVqSuPUh/Z2X4g7auYrv3c9KtKFChfW3Qs9rao1+XwvCL9u+iGIdc1KIL7Ui9zc7tDT2Y7WRd9BlJLNsIJZV8JJ6I45mdcl7wCvgxeJjIWLh/mteQdZtLEN85AjPoY/LYSmNnL1i0UiRH3D9w9W0pdM5lHxIOpEzTR6ykdxxj7W2lW2dR7xcI9bmMkTrfJUp2Yd2sekrin4FJkkYU1FYpTVbHbbwRG1BqhLx9/Ag07XJksSt5zZ3Ha86YTFvoW3BuGGzUGS1L8z5BAssFa7XGEi+VcLqDdm3df4WApmKc1Tsq7usRywSoPffnF9ueJuIhKE4vMIx7AsQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=siK3ewKkAJq17lVUU6E9iWSkb/n2a7tTFyiT/lNAD+o=;
 b=qlRtaRjWDOMR28PN5oEtXWsBP2fXskin3k7Pqg1mHHM1O9Q7mXCZY1lt46x1n/bNyvM+IWH+5fdFGXLSwdHi5+v855noEJzYYvB65cijucF2nQ7Fk61w+rhTdsiGJh397xRFRXw/RTDyN6mPFBsvgSfkovb9cA2kgtg0oKQh/2XacRwPTrXJfALhFu/scdo5vxGDWaCZthQlABDTbs69JMnr3rnhW0QN+r78bACBuH4yVcfc+c9fVh4TBMQl+xXTk6hrgUlNY8DIvKEVRZR+07i6FCGsHizo0TMxwh2vUlI7k4q15u8tdCQrxgr7Uw/k59L//djwoZaA59F1hsEGCw==
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=siK3ewKkAJq17lVUU6E9iWSkb/n2a7tTFyiT/lNAD+o=;
 b=neMDgu5DaDqGtr9k7FriclZxQ2WuMg8kuZNUYUkmEfl6BteAn3DyH65OzBClPk8mwn6Ph/PGErVPkOgsu04VXCuO7yCjGRm0qOmFtDQN1dpjzrcLBy7nZMf7j+dNaze8Yfdl4UyhG78sgQpAzLXi31sNzaYtzKGYpAiCHvkApDQ=
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: Michal Orzel <michal.orzel@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Michal Orzel <michal.orzel@amd.com>, Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>, Luca Fancellu
	<luca.fancellu@arm.com>
Subject: [PATCH] automation: Add Arm64 MPU build job
Date: Thu, 3 Apr 2025 10:19:16 +0200
Message-ID: <20250403081916.6834-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 (SATLEXMB03.amd.com: michal.orzel@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN1PEPF00005FFF:EE_|DM6PR12MB4201:EE_
X-MS-Office365-Filtering-Correlation-Id: b85a2a70-7b51-4359-a72e-08dd72883e83
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|376014|1800799024|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?UUAG9Z7DbEWwFcPxMrYO1SZoM7aLgc/q10KwX8LZoevl0qFMAzW+87ioESOQ?=
 =?us-ascii?Q?b//B3yAmtodrnFyQHjBMDlqkyA3bXL8e4N5s+mFzSSXMXoAosM/fFW06s6dL?=
 =?us-ascii?Q?bFGqBoUZ/ubVSbLxw3McZlGUF36rK4o5puIDJILF5GwHEJ0NBGXj9apcSQE7?=
 =?us-ascii?Q?vpxGsEEE/gL4JiWRkryI/RgTNiuZ2M6lYYA8BhcCeO1EHFgjO7drXEPxVDiS?=
 =?us-ascii?Q?RjWJum9U6azb9CLlvpG4G/lggJWOkSgDlrVjcBUSFcZqrf2RuDsx84rCrxsz?=
 =?us-ascii?Q?kLxYI8VPK3t7rhb9sSekfKeNHN4KPo+MAW1iDmx1j+hODGzKJot6/6ueaPDI?=
 =?us-ascii?Q?2265Em+aawzwsyf0SgILV9PUqLLB4UNntG4jpDeM9Igdpc25sSDgXRvjofqo?=
 =?us-ascii?Q?dqdPNtlwJGOETzWez2M9sxOZh57Qi0vz6igD2oArP8+ThoUmmtkGafQBE0gN?=
 =?us-ascii?Q?ihT84uBZ68LRK6aPZwsuBmV8Apq2n7FOxJQWyo4MgEjHipWsl1fK0lGkM0ZU?=
 =?us-ascii?Q?h17FRxh0ZbM72Hwc2+Y1bvcjb7Ud2AfckzAxr2rfwxdI7nppgeIFQtBXmETA?=
 =?us-ascii?Q?anw01V4j3VjLXi46jtVJGQnlefBVWjIsX5AFqSpFIXrk3C/Ppm8Hi9OThKMc?=
 =?us-ascii?Q?X+/ICbJ03xJgIQDk2EtkJ3hxUs3zK8V5BLf2b3bua/Rs+dHwMpJ8CU6rsC0d?=
 =?us-ascii?Q?HAeuffjuDb/MdKiw1ZYIf0hRPGeTRvNCei4LHtYxE6FmF8y77nDpKPgUMIyL?=
 =?us-ascii?Q?4N38vDScoKK5z5Qnwn9Wufi27Mkje6nKKzjQVa3zz3qYGFBikKLgJXv4OS/7?=
 =?us-ascii?Q?Xdvk3C+/rc5i2Ecb9ycEifNwX3W/PNJKyZPkq+3wMHTPWYQJvkRmEhagisgw?=
 =?us-ascii?Q?5vg8qrpK+rFGag2/IwFrFnAf4XcE7OdlQmB+a4jFgPsxBRLiEspUSwsbYPKw?=
 =?us-ascii?Q?KzY6xAe9QDSf5494vjJKskkSYoXwIAbpKija85dGCEJq1nbowf7Pn5yBsi7I?=
 =?us-ascii?Q?+GCYmFVFVVDR7UEqmprxfFcCxsHqnJjKqHVExXFaeMJxXYmEy8VyZA+GlGbE?=
 =?us-ascii?Q?LWPg4jJ0jI8m+Fb5p1b1aiD6ni7La7Of2cGe7F9hZCfFF98eJL3iuny6AKAf?=
 =?us-ascii?Q?04V0opjB1Jy84NhEIIfELcVIonV48+/DPOF1KFO92eOdGiz5ptfvQYnqP6cZ?=
 =?us-ascii?Q?rraEZ2e7k38gnyUxoRMBj8loKjvsvcheWnUDZkkS7k/E967F6B+n9I9ajoJy?=
 =?us-ascii?Q?3MYbPhI6J1TAdtI5GiFx3I8WEomrNQsKetSiYh1r3saV1xe91qaq7rplimSy?=
 =?us-ascii?Q?It8c8kiJqyNaJ+k53YUSIWkP4ujDSsgBYNCF4NW5y/Tsmwo52QljN4VFyIQA?=
 =?us-ascii?Q?nrlxuVF9DPLdnoA+TF6OBd2v/jYchYpnEtNJdEArYLDK/8m2ExtLMYXK5SN5?=
 =?us-ascii?Q?bXk0ngT1rOoiMbzg7UJR749qxqttpdYAsl6xVYuvl7RlQIVEeIebyQ=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)(376014)(1800799024)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Apr 2025 08:19:24.5943
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: b85a2a70-7b51-4359-a72e-08dd72883e83
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:
	BN1PEPF00005FFF.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4201

Just like for RISCV and PPC, the earlier we enable the CI build the
better.

Signed-off-by: Michal Orzel <michal.orzel@amd.com>
---
 automation/gitlab-ci/build.yaml | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
index 2513908b059b..8cb770d6ff27 100644
--- a/automation/gitlab-ci/build.yaml
+++ b/automation/gitlab-ci/build.yaml
@@ -476,6 +476,16 @@ alpine-3.18-gcc-debug-arm64-earlyprintk:
       CONFIG_EARLY_UART_CHOICE_PL011=y
       CONFIG_EARLY_UART_BASE_ADDRESS=0x9000000
 
+alpine-3.18-gcc-debug-arm64-mpu:
+  extends: .gcc-arm64-build-debug
+  variables:
+    CONTAINER: alpine:3.18-arm64v8
+    HYPERVISOR_ONLY: y
+    EXTRA_XEN_CONFIG: |
+      CONFIG_XEN_START_ADDRESS=0x0
+      CONFIG_MPU=y
+      CONFIG_UNSUPPORTED=y
+
 # Yocto test jobs
 yocto-qemuarm64:
   extends: .yocto-test-arm64
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Thu Apr 03 08:41:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 08:41:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.936346.1337614 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0G8t-000098-VY; Thu, 03 Apr 2025 08:41:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 936346.1337614; Thu, 03 Apr 2025 08:41: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 1u0G8t-000091-Ru; Thu, 03 Apr 2025 08:41:43 +0000
Received: by outflank-mailman (input) for mailman id 936346;
 Thu, 03 Apr 2025 08:41: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=lWYu=WV=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u0G8t-00008v-06
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 08:41:43 +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 75c48301-1067-11f0-9ffb-bf95429c2676;
 Thu, 03 Apr 2025 10:41:39 +0200 (CEST)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-43cfdc2c8c9so3108065e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 03 Apr 2025 01:41:40 -0700 (PDT)
Received: from [10.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-43ec1795243sm15067915e9.32.2025.04.03.01.41.39
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 03 Apr 2025 01:41:39 -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: 75c48301-1067-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743669699; x=1744274499; 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=4dc4gJDbEWPz2Yducl+vIXVnvrP64klwYDevu5ZqWx0=;
        b=Ll0IpMcc32RKoQWQ5WG5ovTE+5ROYPqtPrkYczBgs9R4mywwEr4ShXlY/0NW1+brqt
         hYdsr/p2bbtWHabATEZiVtTLFuloZkSbBpIzCFlRF4zE/z8yAGqGxJsDEHqiCr5gSBzL
         +Y0/WXKJlywOW+i67A0slzicRz87zFhZHY9BeamdQKCQptqEbs/O/wo1OF+UeN0CrsTh
         E0zhJlJeWaXTLlAsDcPZSMQvtr2fJ/sl0G8pdVP2UWNsuBK8dRu0b+MRRYM2helUNhj2
         nWlktk7GPE8QughcDefB6If5fzMiinZ9VNQqocXXScyrsPFGSbDKEH0S2BQhhSPXhDKQ
         YnGw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743669699; x=1744274499;
        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=4dc4gJDbEWPz2Yducl+vIXVnvrP64klwYDevu5ZqWx0=;
        b=qr5uZiVFAL5BfYrPHIZNx2gmVGZV9Ff2RICeRuktLN4i2KbFg4RdQgqJAxZUy5szoZ
         NDc61E7+WkJigJ2ckLKrqTecGb8UwwgI+y0D1A4wHmpURu5b5RrOx2ADaX7yYcqOezKm
         EpcrELIQVZpaNBu/E12u8YdAUutsVMv0iaspJH46AjMW6kLq48a8MVWzDrpf3+dqmDVN
         sGWLvHQTlw4zjbR82MvZAC/j3ml1x0tWfbJM0OkQrc4WKZRK7Cel/vxEp7VSZCZsIevQ
         wWjn/Gbug0MQ/cuxjWAQTrydk5GQNpA80/viH39l7VHJtidA3ExLcjHgS4e0Fx3LTEOs
         c9eg==
X-Gm-Message-State: AOJu0Yy2ots+tCD0SMe2+MYc0uhs5uLzdjRKAazyW5rzaNjBkRrKBg2d
	dG5IXWS0u+a6Qz3x2GnjTX11fWArMnh7wzm36w+kgzzGjvfW8fDuq+pK+c9jnpULhv7sw84ONBg
	=
X-Gm-Gg: ASbGnculfHlfiAilIL7WQ1fWw3Z4zGqhYv5N1wprDRhBphFU8+RyHTEYQusMpmaygmu
	qrgCmaN1a2VzZKI9nfxK5sfYM9GS4ku5rroXsD5cLxmMofYGqvJ0Wc8RrBGNugfLVx1t5hhb2OU
	D00Xb3wjNUOJEpOXyx2+JZTfrv7Ck7DwS/yjoDwnI2acqnFJ3D4354+g6oQ3KwSXcNmXWAezdjx
	/95atqo93UeMOHFRiau058FbR4D0chaFxfimQse0japvnNugG+yKcFDBCNt1l6Tokqr8WgS2hhb
	+66d3gIOs1LvwqnDyzHbQcSR2bAYnKJTwAol00mteAndfW0xKdwxNracqJlc8vg6QQkFz3k6e6N
	L4U54vDVJ6CMu5BFMhSKC/t2rAkDkjggzzL/LliVy
X-Google-Smtp-Source: AGHT+IFun5LY3PXmDOeiFCS7y+E+YGSlufpMSSVE9fUCRWbf+XF3n1jm6+yQCJe4VCi1UZNSv3G+jw==
X-Received: by 2002:a05:600c:5124:b0:43d:24d:bbe2 with SMTP id 5b1f17b1804b1-43eb5c95c04mr39695195e9.28.1743669699493;
        Thu, 03 Apr 2025 01:41:39 -0700 (PDT)
Message-ID: <5a261173-d225-44fc-9078-4030ba11cfd8@suse.com>
Date: Thu, 3 Apr 2025 10:41:38 +0200
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>,
 Tamas K Lengyel <tamas@tklengyel.com>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH] x86/mem-sharing: short-circuit p2m_is_shared() when
 MEM_SHARING=n
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+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

Some of the uses of dom_cow aren't easily DCE-able (without extra
#ifdef-ary), and hence it being constantly NULL when MEM_SHARING=n
misguides Coverity into thinking that there may be a NULL deref in

        if ( p2m_is_shared(t) )
            d = dom_cow;

        if ( get_page(page, d) )
            return page;

(in get_page_from_mfn_and_type()). Help the situation by making
p2m_is_shared() be compile-time false when MEM_SHARING=n, thus also
permitting the compiler to DCE some other code.

Note that p2m_is_sharable() isn't used outside of mem_sharing.c, and
hence P2M_SHARABLE_TYPES can simply be left undefined when
MEM_SHARING=n.

Coverity ID: 1645573
Fixes: 79d91e178a1a ("dom_cow is needed for mem-sharing only")
Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
Might be nice to also eliminate p2m_ram_shared (and for MEM_PAGING=n
also the three paging types) entirely from such builds, to eliminate the
risk of accidental use. Yet that would apparently also come at the price
of more #ifdef-ary. Opinions?

--- a/xen/arch/x86/include/asm/p2m.h
+++ b/xen/arch/x86/include/asm/p2m.h
@@ -136,11 +136,16 @@ typedef unsigned int p2m_query_t;
 #endif
 
 /* Shared types */
+#ifdef CONFIG_MEM_SHARING
 /* XXX: Sharable types could include p2m_ram_ro too, but we would need to
  * reinit the type correctly after fault */
 #define P2M_SHARABLE_TYPES (p2m_to_mask(p2m_ram_rw) \
                             | p2m_to_mask(p2m_ram_logdirty) )
 #define P2M_SHARED_TYPES   (p2m_to_mask(p2m_ram_shared))
+#else
+/* P2M_SHARABLE_TYPES deliberately not provided. */
+#define P2M_SHARED_TYPES 0
+#endif
 
 /* Types established/cleaned up via special accessors. */
 #define P2M_SPECIAL_TYPES (P2M_GRANT_TYPES | \


From xen-devel-bounces@lists.xenproject.org Thu Apr 03 08:43:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 08:43:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.936357.1337624 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0GAW-0000hS-AO; Thu, 03 Apr 2025 08:43:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 936357.1337624; Thu, 03 Apr 2025 08:43: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 1u0GAW-0000hL-6i; Thu, 03 Apr 2025 08:43:24 +0000
Received: by outflank-mailman (input) for mailman id 936357;
 Thu, 03 Apr 2025 08:43: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=lWYu=WV=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u0GAU-0000hF-LW
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 08:43:22 +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 b18190ee-1067-11f0-9ffb-bf95429c2676;
 Thu, 03 Apr 2025 10:43:19 +0200 (CEST)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-43cef035a3bso3903825e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 03 Apr 2025 01:43:20 -0700 (PDT)
Received: from [10.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-39c301b8161sm1180683f8f.50.2025.04.03.01.43.19
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 03 Apr 2025 01:43: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: b18190ee-1067-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743669800; x=1744274600; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=KDN37NcvX8KcUZxPKc9glr1elKUrs+22KzM5rpYWI2o=;
        b=Bwb6WUDLLLXW/APVs2KkvrzRpB8hBbPp7Qr7kLXXHUaQUC5Wk/LdwKpRmRo8PiSPo4
         60eW0dM7n6yqEttx1/1yWmx4C/rpzgD/HUp3ac4E33KxoS1QK0Kc1a5pVK30Wb4sYxiG
         YheDEmmy2uXxJB9skLD8YDI9CIgKNPgHcztBA1sWkzfjBFMjj2pKA3Jt4QGgKeDRalNM
         k06ltNk2Gz1PoDlf/NyooZ8go5NJDMjtc/1rHXV0uXGFtRyLla7Y8LYIhBlrG6jT/7bo
         l2xLoe5SNVgLhFnjgs42MIPsSLOuAkiNjLzlwL06T4Y+wuhzb+bq1g+eriVrxwiCpQ2J
         fdrw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743669800; x=1744274600;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=KDN37NcvX8KcUZxPKc9glr1elKUrs+22KzM5rpYWI2o=;
        b=vqPKmwyxBwJrG7oex1JO/ypUwWCAXY9UcBvGw2y0xPtdJHchANO7CsNCaXDevAbGBU
         xtDRM5UkhX+W4k2yIafe+LmcrjJ4ty2tHi1MwX8Ix861jNJxs/piv+WODk3+sgbIZbvy
         gnz6QyByIPp09Mkh1KMvnc0e7eWSqiFT/dyYFWfdfVb2UQRPHJEt5Wvh/tt+8Ev1RPKH
         liMgjvSPtpi+6s45eMSYx7aMYN1RuL1g94D56LE6GS0EAd3Gt2ga/pTnSmItKBsnCY1B
         StRIHFwC7Vj9bR0v0zzmyyG65dnodKaVarJzZRxOrrgn7+yfEpM5CVD6ycw8eEqkbJt0
         200g==
X-Forwarded-Encrypted: i=1; AJvYcCWO3pyaY6jet9iXocjjCmKk19YK7wmPB2KUbNTirQAWAUlHIQb6MoLeQloEF2KtkIXgFTlF5nsafbQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwxVim5dn4vQ+S1cOEMTrWNesiuDljoFrmVKLAHHge+7ijL0iTB
	qoywBwvUuxXQ90OtJbZABo1CFA7YkbE/P/1/rUNZku2UTQwvl/a6vhg9mz4j6A==
X-Gm-Gg: ASbGncvEik/XqvBlz6LQMAdumlF5Dz0PVxZMmudgf5kw5Kyb/ECvaScvW78uNbmzS10
	sXgfMPN9zrmn2NDumJ3RbJp/6uwL3e47X5RX5FhycXVJ2Rtu0uChqZxOtUwGMcExn1kTthAbzuA
	u4tKgYuISgm6XI0s54R8spVuyh9ZPL20UuRTJdb3+F0kaFWjb52wrp3nIiyq71qSm2mnNhCI3hA
	8tF1fG69BbXBp32IFQv9axCR0nPqzGUdyoG5L8xww+7BA2c6nLwkhYsSzvM3nou0R98niC3Or6R
	jle2cAd/rpbPUi66U8Y2TF9nq/JHeSNRkta+jH+8uTEan2YJTJfZuiyJdj40O0JGsCtgxRhAf4V
	igUJyu9iJZ82k9vFGCewpVHXM186DQZ0HFFelJM7o
X-Google-Smtp-Source: AGHT+IFd4XGJG4KU/7DYvVw1f0BuBWZlGc83gee9Bp7RpmsayEjU2fkX1xpvlykZaZEYH7/eywzuxQ==
X-Received: by 2002:a5d:648d:0:b0:391:47d8:de3d with SMTP id ffacd0b85a97d-39c2f8d40a9mr1386652f8f.16.1743669799807;
        Thu, 03 Apr 2025 01:43:19 -0700 (PDT)
Message-ID: <20ac780b-f5ac-4531-997e-362d72adddd2@suse.com>
Date: Thu, 3 Apr 2025 10:43:18 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] automation: Add Arm64 MPU build job
To: Michal Orzel <michal.orzel@amd.com>
Cc: Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Luca Fancellu <luca.fancellu@arm.com>, xen-devel@lists.xenproject.org
References: <20250403081916.6834-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: <20250403081916.6834-1-michal.orzel@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 03.04.2025 10:19, Michal Orzel wrote:
> Just like for RISCV and PPC, the earlier we enable the CI build the
> better.

What about Arm32?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Apr 03 08:45:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 08:45:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.936371.1337634 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0GCB-0001Ji-Nc; Thu, 03 Apr 2025 08:45:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 936371.1337634; Thu, 03 Apr 2025 08: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 1u0GCB-0001Jb-JY; Thu, 03 Apr 2025 08:45:07 +0000
Received: by outflank-mailman (input) for mailman id 936371;
 Thu, 03 Apr 2025 08:45: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=t8zK=WV=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1u0GCA-0001Im-JA
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 08:45:06 +0000
Received: from NAM10-BN7-obe.outbound.protection.outlook.com
 (mail-bn7nam10on20608.outbound.protection.outlook.com
 [2a01:111:f403:2009::608])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id eddae65b-1067-11f0-9ffb-bf95429c2676;
 Thu, 03 Apr 2025 10:45:00 +0200 (CEST)
Received: from BN9PR12MB5273.namprd12.prod.outlook.com (2603:10b6:408:11e::22)
 by PH7PR12MB8425.namprd12.prod.outlook.com (2603:10b6:510:240::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.44; Thu, 3 Apr
 2025 08:44:58 +0000
Received: from BN9PR12MB5273.namprd12.prod.outlook.com
 ([fe80::cf66:58ab:47be:4b13]) by BN9PR12MB5273.namprd12.prod.outlook.com
 ([fe80::cf66:58ab:47be:4b13%5]) with mapi id 15.20.8534.045; Thu, 3 Apr 2025
 08:44: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: eddae65b-1067-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=aSfu6n6ohIqzbxq6Us7q/Yy+5NjSKAVdc7IX3491tdLVlIsdxyI/HlJeKqUupu2gCN2C9iXCjT8jZctFbEMfq3Bkjgu8OPaubUKRKANFo+Vtbhqkr/UoXX9OkF6oiyvMTvqBvzjXv3sQP2x+BqnZj5l+YKjj7GPIRw0gzXhHTMIxG20eOEW/Ll9rLhfyyCfGKnhN/IGTxg4RCPUYAbKgpwj6sNPzKzu0bpnY1urXPOE/qnHFMNwNkpyZqwA5Oo4D4wIW+MhtZHqPn0VhLx5oTam2zi9gDvd3UM67tEPSPaWw766ZfLFm9kBeZ2XdHHbJQqEVLyFtmkq6pewdtySOHQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=7vxY4SwuTUpl8FZx4jLTvct1XS1oKnTecVQ4yeoZqgw=;
 b=B89dtGIggtgTy8ndpnHD2+H8xZCOrIfW9QAUq/72jjQiuJsHUlnetz/y3RUJ2IfZOei3DOCTKICtlqUjH4Y85FfWNkMj2V8nKHuLFT4/EYoH4GzpX5nesuMtJIfCG5+/QBJlbNI5ZTX54qd0m6vGrMGtt6okVkxlCoUyLysPJWZ52OrkRRe3hv4tx4crQGgDPZyuELhR/UUI+fKK66KGZYtsuNO3QjCa/owNyzo0YlOnevh6stLfJmAe45RnIV+bfS8C6Uz8qBdJLnZ2jAl7dYhcKC1VvaZrs+3MM9uvsvL0EExTKLDE0Ygp1/e+Cpx8T6JnxvzgPjqtAZlx1KrLsw==
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=7vxY4SwuTUpl8FZx4jLTvct1XS1oKnTecVQ4yeoZqgw=;
 b=kxr5QL/HCxOu+1s5SoFI1N6Q5pMkNIv5XB3rHM2I1QksmY8o/7ze+P2k2jp13IIgxbPLXg7VXMXwqbU2Xp+7I4Qn3Y18yKeIp9nuij9QJ9+V51yhbfShERo7CElNDkhw42n4CNiJTuyzAiVQMob1i/KtF/EsmIkawlw2Sz0AV9U=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <2a8ab261-480f-4bfe-b2b7-7fdff4516078@amd.com>
Date: Thu, 3 Apr 2025 10:44:55 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] automation: Add Arm64 MPU build job
To: Jan Beulich <jbeulich@suse.com>
Cc: Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Luca Fancellu <luca.fancellu@arm.com>, xen-devel@lists.xenproject.org
References: <20250403081916.6834-1-michal.orzel@amd.com>
 <20ac780b-f5ac-4531-997e-362d72adddd2@suse.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <20ac780b-f5ac-4531-997e-362d72adddd2@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR2P281CA0026.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:14::13) To BN9PR12MB5273.namprd12.prod.outlook.com
 (2603:10b6:408:11e::22)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN9PR12MB5273:EE_|PH7PR12MB8425:EE_
X-MS-Office365-Filtering-Correlation-Id: 92a3db93-f43f-474a-1125-08dd728bd070
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?QlJNS0NhRzRVVjZNTld4MGRyYXVvbm5pWTZEUzlWakR5MEswODE1QWxsYjd0?=
 =?utf-8?B?NjRlSTZDQkgvT0xJS3pRcytxdllOTlVzdmZVd2d2TlBQbTlXOW9RMW40NG9H?=
 =?utf-8?B?QnlqeStqdlJWZVBZMXhPWGpmTHI3bzlHWjFaSkRPc2VWQy9SeUFVdlk4VGpI?=
 =?utf-8?B?b2dOQS9QcUNVNXZhcGc5blM3OWxPNEMvdUd6eWtIVjdoWGRxNmtGRWNZOFJ6?=
 =?utf-8?B?bU9IZEFxc1B5dzJKM0Q5UXVwcE1wODNRN0VWc1JMZG5IeG4rRnhEZVlreHgw?=
 =?utf-8?B?T3BlVHJWbEREQWt6cSt1NnhZOG1yZWhLRjBuYmxUbW1YaWtaV05makRIVEVo?=
 =?utf-8?B?b0hDWnlLekZHUTN5YlFadzB1NFVUQmJXREFpdHh5STl3SUJkL1VpRnBTcE1k?=
 =?utf-8?B?eVpMZ0lYemFnRCtMbitET0phYnRhS3NhNEVKWjN0aVdKYTV3alBDSWQwTDF5?=
 =?utf-8?B?ZFhzTkJsNys3azlqL29VZ1pOcXZUWkpCajlYdkFDL1Q1SXN0RDZFUUVUclhv?=
 =?utf-8?B?enlaeGdCb2l0S3hRdkt4MW54L0VBYm8wd3NZMjlxN2Uya0hCeVhhckREazhs?=
 =?utf-8?B?aC9BT1hNZ3hQeFZWVjR6ZGIyYXhBTFpicnl1M2Q1aVdSNCtWOUVGa1VOaTJ4?=
 =?utf-8?B?cG0vbXRIaUZKVlgxUHVuY3I4T2wxZlNTN2Z1NHdTMHBHZ3g3MlMwSVpKbVY4?=
 =?utf-8?B?dTQ3MGJOaHlXTm4xeCtBVTQwMXh2Tnh5UGpkSCtiZEdGK3pEREl3bjBJcFUz?=
 =?utf-8?B?RDRkMmxieWtqcGZtSE4yaHRhVDN1bEt1WjUyd3ZkbkYrL0NCYVdkRm1GNGJU?=
 =?utf-8?B?T0J5K2MwN0ZCZktyU2Naak1TcHVTK2FCNmI3U3ZnbElndnNLb25SK0Q2UEFI?=
 =?utf-8?B?WTdpZTVNU3IxY05XVXgxY2ExL09sV1FMLyt3cGk4VlozZ1Ric3QrajBJOUlh?=
 =?utf-8?B?QzF6WHlhTzBLRTJERXNGVVVYdHZqVE8xWDB0OWw3bzV0RjBObm93cTdKOVBX?=
 =?utf-8?B?dTBVN0lqcC81bUhtNzJKSEowK3hmMUFlSnUya0l4T0RHRXZwMkdnNjJ0ZkI5?=
 =?utf-8?B?L0hzVGRDU1VnNHhZNkpMdWc2NnBUTzE2QVd4OUtweUoyTDNrekdBMEowWkhB?=
 =?utf-8?B?RC91UGhGZ0hyOXZtdWVmMkFxSitIWXUzWjQ5VFk1QXRzcTlnNXp5OVFpRVgx?=
 =?utf-8?B?bmxIcGpLRDVLNFQzOGZWMlhYOFYybkQyQVFRdUgxcm4wVVNCNUlWczd0SWFy?=
 =?utf-8?B?UmFtZlE5UllyZUU4WWNaVEloVWFUT0p4LzRxZW9lNnpOQkliZmR4eFdzZkRx?=
 =?utf-8?B?SXJ5SHgxV1RBYnFEM1JyblRzUzd0ZTdZWUJsaVFybUpQWjRsbUxMeFBLY3Vm?=
 =?utf-8?B?b0NnUnR2eVBHK0UvZFRmRTN4QnJYNG9XL1BrYURMN2hQTVh3THZiYXNSY1RU?=
 =?utf-8?B?UTRWUG5rQ1hmdVNCZ1pQNndlVVZjNDN0R0c5eXlmcTM0S0ZmVStLOFRYa3pt?=
 =?utf-8?B?bDZqOWVpZ1pxQ29vK0JKbFdKRldaZ20wN3FuekNibDFYdnlLeHBxYlArMVNs?=
 =?utf-8?B?d1NWdUtPRW1nN0E5WHZQbmpxTkNxcVZOMEVWdkdoTVRicW9DUnNKOHRpcEph?=
 =?utf-8?B?WHhkS21LOENvYlRlbll5N1JQbDV2RitUZVhRdVI0VDhvbTI3Z1ZoODFGa1dk?=
 =?utf-8?B?T0dSMXp0N2VSTHphVlg2T2JEVTdKd2hGek5RQmhOV0ZHYW1hQ3MyTkpFVGtq?=
 =?utf-8?B?VFR2MXlxbDg4TmtZRkJ2ajUzSVhmNkFsc09iOUwxVElEczRiWVQrOVNrNFR5?=
 =?utf-8?B?MWpwaEJTc3lCbVNVRTlxRGk0a2c4SDhrb3NFM2RWMlV6MFo2V1JZVEM1cHl6?=
 =?utf-8?Q?bTbUxzBxPuASh?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN9PR12MB5273.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?bVR0Kzh5TFl2Z1dMZlptcWlzdUZRTjJkR2tYaDY4WHhaMkdSRlNPY2UyZC8r?=
 =?utf-8?B?RWZoamN4SlN4QzFhZmowZkxYZ0JoMzlZZE8xTnJoRFhGeTJQdTJnYnF2NDJB?=
 =?utf-8?B?Wk5EcEtrUUN3SHZPVVcyTXhTekhUQlIydE9EbVFYbGtlZzBubHNMSllseHZn?=
 =?utf-8?B?R3VSSnRLZzNtSFhLSmxIaS9XT2RlODM1d0k0WGxJUFAyYWxjbnNHT1N4OUZ6?=
 =?utf-8?B?SldtL2ZOKzIzRXpxNWZCRHhRWHE5ME1GYUxpQXdnYmRjZWx5YStDUWVmOGNa?=
 =?utf-8?B?citoSDVwWlB5ZVZKalR6SHY2dEZZTGh5SGM4SlpOUHV6OWJndnhIUFZ0Lzdp?=
 =?utf-8?B?c0xhbmZObkN0RFMrdmJheW1YdTkzOGxOUVIwVnZPUy9BWjNQcVRzRWNOem5B?=
 =?utf-8?B?SjJCMlFoKzlqK1FrVkU5UEprS05Ma1pzN1oxSFJLM0ZlTU9BcUlaSkpqRUdV?=
 =?utf-8?B?S2poRGZ2WEIxaUdHTnErb1FzUkxnTDlaUkIwaWtWaHZ6N0pPcnRNZjJDYjVw?=
 =?utf-8?B?YlpOWTJIeXZDc3BNamVRVHE5dDlXMHYxdDZXWlpqdExpdmNCM3hxRnhIc3g0?=
 =?utf-8?B?dURNSnk5TVhWQmtRMm9Memphc2NPb2diYzNCTmMzallWamIyVllWYjl1a0RQ?=
 =?utf-8?B?WXVvdEZjOTByeEtHNFZoRWN4cDV2OXJXejV6Z1h1VUpZcEZNV090dW9IbmFP?=
 =?utf-8?B?aEMrcGYvbk0yMTVpWW51UmpreWdOaDJwZFNTS1BZSzJmdzJVSVU5WEh5aVdT?=
 =?utf-8?B?S29SbG9QUS9SR01hRk5nODNYaGM1S1lPdWNaOStNSUNCMkcrT1lVcFR0eGpD?=
 =?utf-8?B?S1laYzJTK0MvUTF1WFZ5Rkh5dFdZdjZhWGlSbHhIK3ZQN0NNSXVJRXR1akN6?=
 =?utf-8?B?QmgzUVZncGo5YlJCeTdnR2lJZk52RFQyZXJSYVd5RjdPcnk1NEdabk5aK3lM?=
 =?utf-8?B?aStXWGhoWTNadTlCM3cxODlPL0dpYStTRjRoVythUUZUQ1loRXFjZDZJbTBX?=
 =?utf-8?B?QkJ5WFYybUs1Y3hXbjVacFpmZG8zMUsweFZZOTJXTkh2TmFyZlo1V0NMelBN?=
 =?utf-8?B?MU45YkhYdzRLR2sxN0lqbCtWMzY3NFk3ckx1QkNJYjJjd3F4cUc5aHo2UWFT?=
 =?utf-8?B?TjZ3YlVudGp5c011M1pkQUU5NWo4djc1SUZaV05VRitGYWV4S3pSK0hNbEJK?=
 =?utf-8?B?NDY2V0JmeFAxSmcranIyN1NRbm1seWdhZCt1OVIrR29ET2Y3K2loWUVTdkdI?=
 =?utf-8?B?U3J5dnpNUVVWK3QzWThSZHQxN3FQQ0FCNG5EWTRueWFJWThDVy9SdVlWZGZi?=
 =?utf-8?B?TlJvdW12b1hvYWNpb05tVlpIT1RicDlSTTVPNWdwYktqQlZ6MXUxQ3VpREtU?=
 =?utf-8?B?eGd4d0t5djVQTTNEQjlMSVVSMXhUV2ZjejhLcXFTSzNUQUVmWGxoV1dxZGh6?=
 =?utf-8?B?ODM1allJOU04SlUySXJiaU9MTE5SZE83SDgvVFgvYjdCMWNnK3MwVWZjVTVj?=
 =?utf-8?B?V2JCK1U4Y0xpMkxnN211TEdPN2FjaG5kdlVYemJwT0w5bHpxWWd4ZndKeHVx?=
 =?utf-8?B?VXRrVk9TV1QrT0d4dE15QU5GNkJ5MnQ3QTZzaysweDF6SmlKV25qcWVkOHov?=
 =?utf-8?B?WkZ6NzNiQ3c2cW01bzBQbVdUZG9EQVI3NkVkWkw4WGN6QWF1blRvSno5T1Fh?=
 =?utf-8?B?eFdLQnM1TEhvNUpkcjRMNkRqTlhOZU5OZ2dsUjhIQWlpaWllbnFpb3EzcXhH?=
 =?utf-8?B?WG5xWHFacEtmalJUc3U3a3h1eW9aMnFWcWxFVkJNWnNvaEljYTFVSXhOSGUr?=
 =?utf-8?B?bDljN2o0UnJBazJwOGFyNGUzT3c3b0JabWFJUUROdEhGUW1DV3J5SHNwVERS?=
 =?utf-8?B?a1EyZmwyK2l6UlZvNmdkNERPdVkxaFQxcjhjVlE4THIwaTB6MTVjdlR4M2Ez?=
 =?utf-8?B?NGVOOVBEcWJRdkFLOW1aMi9BcGxqemZucVRGZHVvYTIwci9GVlFoNG1EWFhG?=
 =?utf-8?B?NnJvc2V0V2lSVmwwQm9rSmZjU2tOaGVGWjdONW5FalkxRGNLcGlxOHgzaWY0?=
 =?utf-8?B?RktIZjdndkRkb1UzQ2J3NzlnbXdka2dkNWdpbUJVUStkVDBrRWFDKzBIdlFx?=
 =?utf-8?Q?B/F2gV73VmsSkZiGTuUv3eTh3?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 92a3db93-f43f-474a-1125-08dd728bd070
X-MS-Exchange-CrossTenant-AuthSource: BN9PR12MB5273.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Apr 2025 08:44:58.1717
 (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: Xz37+J2KOJ6iHPtXwZNSg2RUTFtOMfkO9Q51DuVUEobif80CzkMUujTNwmHMHs3o
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB8425



On 03/04/2025 10:43, Jan Beulich wrote:
> 
> 
> On 03.04.2025 10:19, Michal Orzel wrote:
>> Just like for RISCV and PPC, the earlier we enable the CI build the
>> better.
> 
> What about Arm32?
The series to enable compilation of Arm32 with MPU is still under review on the ML.

~Michal



From xen-devel-bounces@lists.xenproject.org Thu Apr 03 08:58:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 08:58:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.936383.1337643 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0GOp-0004J2-Pi; Thu, 03 Apr 2025 08:58:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 936383.1337643; Thu, 03 Apr 2025 08:58: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 1u0GOp-0004Iv-Mc; Thu, 03 Apr 2025 08:58:11 +0000
Received: by outflank-mailman (input) for mailman id 936383;
 Thu, 03 Apr 2025 08:58: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=lWYu=WV=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u0GOn-0004Ip-P6
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 08:58: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 c351813f-1069-11f0-9eaa-5ba50f476ded;
 Thu, 03 Apr 2025 10:58:08 +0200 (CEST)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-43948021a45so5632875e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 03 Apr 2025 01:58:08 -0700 (PDT)
Received: from [10.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-43ec364d07csm11786055e9.28.2025.04.03.01.58.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 03 Apr 2025 01:58: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: c351813f-1069-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743670688; x=1744275488; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=embU6GXLDQ92HwWH0WfoeQy0wiSalRwveP8jnXM7BRA=;
        b=Q2BCYzVNH0A8vHpJdYequ+R2moQsgtGbbbRVgFTWmxRgbmGl7msvO90Ijhaag+Cfw+
         NSTqcUulYtPXtY2nFueDvW4alA/hte5iefrcXF8crm7HyLoPGht0RWLD4HmbddpWkhFS
         LTJ3mms/EOphMH6XnNbTzeV70ASwhCmvgNtJM/nSNyRNjUceRbZcyC26mx2H8u4yJUhE
         xsxrC2AcQLL6bM20XzP9bpU1XnoNvpUE0RpPpguepOf7s3zA6psdy4hm4Dejle87VGNL
         KXklLaqMR6zBxOpz/Mu9nE1k/gIUfEZO5FQ2Xj20iUlEy0JZXgU2f/zGqc2oFwI0YGwB
         PmiA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743670688; x=1744275488;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=embU6GXLDQ92HwWH0WfoeQy0wiSalRwveP8jnXM7BRA=;
        b=fFU2Iz8smT/mLLJMvdwhnXFlQfQ2oVC9TfD6d9ATpQNdhn64j6LaebFKKNwClzQvqA
         hpNUPjxE22Rc+TlW7fvKMmXP+D2bBC0EAGkwv831JqtMLbp4X/Wv4wibDotE7G6nDBGz
         Vo8gV2Oez313PIQ/A/VXWqVLnOYeYm75MONR9po2yZNMsWEpcJLxnRW/CScLmvk6qoB4
         9gs+VM9H/IQs9igqZJg5+C5XuOqjqNF+GoNvTdTqUyxEjFoFDs/PMdjmIZ0WExCln/es
         jP4+exGEizWDOQ9hGcj1/jEWlM+zIePAT7dVQEbq1w/DEuZ7SjIXEe+b3VLPB0hgZAJF
         d14A==
X-Forwarded-Encrypted: i=1; AJvYcCVbTTBTlGK3EzcLGUgXqAE/jSka5AK14aFDzWRgHTVho2YIHR8AgJCunIX9DebJeYNsizdehWBgILE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzK7ZXtusl0btWaB6qJnMepsS/FdCAItSJsaxj0m7Y6/zpx7S0I
	UmYE4zxaaoYHDlSwJ1SJRe2wpWEllbLRMrBziu4tP2I4fWABzYTgTmkr+9XaEw==
X-Gm-Gg: ASbGncvMp/GVt74hxrk/qW3pMr7qzdUU+Z59RuTuaw5lNEKoM29BJEnBDoTXinNFYAX
	un5pjNWNqj/bCpjdL4s6B/Y48tu6AitY709XvdsrFkmv6IAannLdfw3g1bmHpP+rxI5CzRBvsBW
	4NqdEENfDxMlK7xrc+0IND7UqiGxHi+MyT+fljvgdJJ/JdlhOQVeWROuHNps1rVeYDPyVMo6ukG
	X1KXuFDJ3wAnzNOVF+Wb9Y3HIrOIdf2CAqZfBXO9cvuV96/KfMLHQvSsVD7txhwUopQNTHUfH6z
	Q/OZEnGHu/lxjNLj7Zz44Au9HnDp6T8MwoL6wpjIENdROKrKsZfAlbFf6Lhb5xROyxH9lhk4AA/
	6eAh8N/JTOFUTmBmE66THX7Tt1azwkm0Em9rWxTRY
X-Google-Smtp-Source: AGHT+IETAI01sLG7/7JGHOS6pyEJ52dbp5Wcvtoq0iH3+VD5wDsWhtc1vb4FYYgjaXkQYTbsc+2rxA==
X-Received: by 2002:a5d:5848:0:b0:391:45e9:face with SMTP id ffacd0b85a97d-39c1211d5bbmr15251881f8f.54.1743670687883;
        Thu, 03 Apr 2025 01:58:07 -0700 (PDT)
Message-ID: <a67d260e-fe1a-44bb-8b49-fa0509716da2@suse.com>
Date: Thu, 3 Apr 2025 10:58:06 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] automation: Add Arm64 MPU build job
To: "Orzel, Michal" <michal.orzel@amd.com>
Cc: Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Luca Fancellu <luca.fancellu@arm.com>, xen-devel@lists.xenproject.org
References: <20250403081916.6834-1-michal.orzel@amd.com>
 <20ac780b-f5ac-4531-997e-362d72adddd2@suse.com>
 <2a8ab261-480f-4bfe-b2b7-7fdff4516078@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: <2a8ab261-480f-4bfe-b2b7-7fdff4516078@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 03.04.2025 10:44, Orzel, Michal wrote:
> On 03/04/2025 10:43, Jan Beulich wrote:
>> On 03.04.2025 10:19, Michal Orzel wrote:
>>> Just like for RISCV and PPC, the earlier we enable the CI build the
>>> better.
>>
>> What about Arm32?
> The series to enable compilation of Arm32 with MPU is still under review on the ML.

Oh. Is MPU in Kconfig then missing a dependency on 64BIT?

Jan



From xen-devel-bounces@lists.xenproject.org Thu Apr 03 09:18:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 09:18:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.936398.1337654 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0Gi3-0001LC-Cf; Thu, 03 Apr 2025 09:18:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 936398.1337654; Thu, 03 Apr 2025 09:18: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 1u0Gi3-0001L5-9i; Thu, 03 Apr 2025 09:18:03 +0000
Received: by outflank-mailman (input) for mailman id 936398;
 Thu, 03 Apr 2025 09:18: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=t8zK=WV=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1u0Gi2-0001Kz-RJ
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 09:18:02 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on2060a.outbound.protection.outlook.com
 [2a01:111:f403:2412::60a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 881f5e60-106c-11f0-9ffb-bf95429c2676;
 Thu, 03 Apr 2025 11:17:59 +0200 (CEST)
Received: from BN9PR12MB5273.namprd12.prod.outlook.com (2603:10b6:408:11e::22)
 by IA1PR12MB9031.namprd12.prod.outlook.com (2603:10b6:208:3f9::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8583.41; Thu, 3 Apr
 2025 09:17:54 +0000
Received: from BN9PR12MB5273.namprd12.prod.outlook.com
 ([fe80::cf66:58ab:47be:4b13]) by BN9PR12MB5273.namprd12.prod.outlook.com
 ([fe80::cf66:58ab:47be:4b13%5]) with mapi id 15.20.8534.045; Thu, 3 Apr 2025
 09:17: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: 881f5e60-106c-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=P77cRVLXdQHRiiVc4ucYaDpPLvxBoWnOdPd01PE1youknQ2gv622EwdhJBvzPZ0mOkU9zxIoR0jrBNEu9yc63YvQuml0+HW//YUe/DQT/7KlL0rHo3DqGYIwzSQuwkgyHlNOM10TilUvmAe5f2u+zxj7DJ3Um4crQJ2BxL6/wbeGIplsuFGPpzyI3hoWHaZNreOCHdAP7h5TceUfdFKcNVBNkt4fwmg12eOBrovZqpGXA5/IG+vRtwIyrdb25JVpWtsKoLElJkWe7foeJMjtt6zDjnLc/JVZlHmkCuZP87YSBgJYAMc8aysaauFvPdPtofsIAqrHy5ZlHClf9t0aRw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=++bhdMV7NuH9qQaQkI3dgnz84eih/ED+vzvMYKUD00M=;
 b=kf38nnFqMG7mTMt2/+3qhXSfR9PCewoCKOZFVn5+5PNQlKa88q65V4N6hjZMUfNLuJgWvD1EoE4regbI7A2l6TMwAgog4U2tPjwAfGWY2Ebcj+/erD0MMMRn3Oyy9U8raAuikl1nVHgZ19+SH1MF0x9moJCSJF/VVvO3QT0734aBuvTJBewQEfXeELutukXZduol9oKVgfIx5Hv3zY8qe83qlBdmDSgW7ARZiAK2kmUUds9qkfspwpvI34sK0K7FlfI5Kbnx6YIggYrDg2KnQN4aoXcQQdI6UTytsd6DSKeaFc2XoSwCExEHkxnV1Rf7WLwrhwf4O5rV+szBFzRtUw==
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=++bhdMV7NuH9qQaQkI3dgnz84eih/ED+vzvMYKUD00M=;
 b=itiu5IOfX3wnVxXgWaONhjDqz/X9Ntp8Q9AsDoYdK1Xz0ZMH5Dlmg+XNus/kY4cESVOBZaSs1q3TuMxC/lZiYxVuedMSEUEsRXh8zJw796Td7F1sw4XCxft0NRHISlwzX2L3PvMaw4a3yyE8iQroOXNpE7gB+jgexyM+HbaQ4Kg=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <44500161-1346-4c9e-bcb3-a4301c197913@amd.com>
Date: Thu, 3 Apr 2025 11:17:51 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] automation: Add Arm64 MPU build job
To: Jan Beulich <jbeulich@suse.com>
Cc: Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Luca Fancellu <luca.fancellu@arm.com>, xen-devel@lists.xenproject.org
References: <20250403081916.6834-1-michal.orzel@amd.com>
 <20ac780b-f5ac-4531-997e-362d72adddd2@suse.com>
 <2a8ab261-480f-4bfe-b2b7-7fdff4516078@amd.com>
 <a67d260e-fe1a-44bb-8b49-fa0509716da2@suse.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <a67d260e-fe1a-44bb-8b49-fa0509716da2@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR4P281CA0171.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:b7::18) To BN9PR12MB5273.namprd12.prod.outlook.com
 (2603:10b6:408:11e::22)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN9PR12MB5273:EE_|IA1PR12MB9031:EE_
X-MS-Office365-Filtering-Correlation-Id: c5d9b35c-7bd6-43a6-6244-08dd72906a0c
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?dGoxeEd4M0JpVkg4R2VHRXIxcmgyTitpR1BibmxHd2xlaHY4NG1kb0phcE52?=
 =?utf-8?B?ckxwUjFWVGdpU0VxSjVocHArZUlxMC85c1A3bkJiS1c2ZHFGTG5RTDYwbG81?=
 =?utf-8?B?UmRPYlF5TUdDZ3hMcEVPSTNpRVQzSU9Nako0R01BV2Y4aTFBV1dCdXFibXBa?=
 =?utf-8?B?NnFub2JPYTRKQzdpallaa0YzZnhJM2dnQVg3M3JxSExibXMvZ2pNeEZLNzF0?=
 =?utf-8?B?V1ZJMXZFOFFLSzVMNGJ3Nk0yQ1dhRmdOM0c3K0E0cUdKSXBVWjI2bVI3VXpY?=
 =?utf-8?B?Q3k4UFVpU2hLdG5SUlNNS202NGx4MjlVemlBaUdLZVhVRzZGb091TDJlSnJW?=
 =?utf-8?B?dFhhMVBxc1E3RWVQbUJhU0J6M3BDdS9xckRZS0Y0M3lpbTdqZThET0NjM3pO?=
 =?utf-8?B?Qi8wWHZlQU5wL0VKbTlFNUFBdDNkR3lpNmZaOTcxZDViL2tld2ZBd1BmSEZp?=
 =?utf-8?B?UFpJWjRVUWpnd1FjY2dpYys5VmE4N2Jpc0xoM29IUXUrY2drcmMzMldiVU9o?=
 =?utf-8?B?TzB6OW43dmlaemtFQlhmcmU5c3ZtOVpzbEt5OVN4Q0Y4YW9aRVNQemNjdUlS?=
 =?utf-8?B?eHdkZlliMTF0T2U0a1Y2eS94MkFvbUx3S2lEMDdwdUZjNkpjcWxBUXFmNG9q?=
 =?utf-8?B?Y1FjbWs2ZkNwaDNtSmxtU0F2akNqNm9ibzVoaFRQL2xNYTM3empncmtOQmRK?=
 =?utf-8?B?a0tsY0J5cFR6bEd1c3JDU0dhZXl0VWxFRFJ1QUhPRzdMLzc0RmVHTk5MaXpr?=
 =?utf-8?B?ekhHNE1jQk00ZjhNTVY5RnF2bHlJUEFHOUo3THhUUzVjYXZqNnY3c1Y5RWpD?=
 =?utf-8?B?cXM2dTQyV0VmWngwTjB5RW1FcWoxa2xNcG5WemQwR3JwOXRBRXk1M0Z2c1RU?=
 =?utf-8?B?SWJmcC9hQUFNYXYwa2dRZUNQeDl4MElYbmk5MkFKVVBVbDNkTVQydmtjdlhl?=
 =?utf-8?B?Q3RNNldJWEVMQk96MEpwMnFWQVhTeU8zREF5V29yQ3lPdUc0YjQ4aFBnbUs5?=
 =?utf-8?B?N1VkaVQrNXc2VjdsRG9Iai9DWDhxZ2NhSFZHZ1VZb0N5UmlPRnBzLzZHMFAz?=
 =?utf-8?B?TFFZckNRbHFUSU10TGU3dnVHRWRpa1VjSVhONzhIV3BZbU5NaHNaVFdJbkhB?=
 =?utf-8?B?TlVHRXF0MEtRK2MxZjdydm9Ma3NwRE54blZvUGpxZDVEdUhxTGlSSW5BUHU1?=
 =?utf-8?B?Y0poMFM1cjQ5SVRaZDlpOXlGc1NhNDg5NXNkaUFkdWVjNnp0WVpSdHNIZkdN?=
 =?utf-8?B?T3lUZGRzZGZnV2s3VDZIalV0WTJoQi9FUU1MYUhLZ3lPeUVlSGFGR2xFdmQw?=
 =?utf-8?B?MWNDaUF1SlgzVlJBMEhBOVpzTi9uT3M5dXpaeVhuakRrQ2VvTzh3dWdnSHh2?=
 =?utf-8?B?VEd5eU5aWVh3QUZrYWR1dGdiUlVsVUg1WFpQYk8zeTIvajVqdm1oc283R1hm?=
 =?utf-8?B?MEhMSXd3ZGVQWnU2SmVjamc1TlpkaG9VYjZjSmM1Y0NnTU9xQTRaOFZtS3hU?=
 =?utf-8?B?TnpFeitVUHVORjBMMFdTdGx3MDYxcm5VM2hjNTAxY0cwdlRLdXJjUEFDdnVC?=
 =?utf-8?B?MnRML2NUQ2xZNlBraVc1Rk5LTkI5aENaV3NHNGJUaVVDSXVZdERGeGVwS1B3?=
 =?utf-8?B?QWFJMnFaSXhwbGNQTGF4OVdteFJ6emtvRG5RREQvbFFzT1pxQmNlNXFjMVpX?=
 =?utf-8?B?OEc1VmZtNDVYbWUvcU93Q1FFVkc2Y0FXMDJWN3FQdWpLR3RYYW5ZUXF4SjlT?=
 =?utf-8?B?YThmZ0NuRG4rK0VUTEhJU2E0OGc0N3plNzhZL1ovVGd0cHZVYUVjUkJmbFhw?=
 =?utf-8?B?ekJxUjRFL2hHN3VzVEM2UnhXSjhuMU50QzVqUElBZlI4VWxjRnVObFIwcmVO?=
 =?utf-8?Q?0y+tzLKJtdlZQ?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN9PR12MB5273.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?WTZRWGZBSWpjYUo5SmRtVTlTdDNvajJGMWpXTlV3a09USWR4L1NPeDlLb1Ew?=
 =?utf-8?B?Z0dvUkcvY0NjOXFQcGhsWXNrVHBDTWx3Umk2V1BuVWk2OGZ3T0xVMllvVlRF?=
 =?utf-8?B?RnZUNURpNXpxenZDREFVYlBHRUEyNmFENkxkMG5RZmxQVStuRWdhdko1SG9C?=
 =?utf-8?B?TEt6L2t4cndpeTBrY3BtaFlIQlJMeHlWTWRtdkRUYzduOW96RzJKMDcwckZ6?=
 =?utf-8?B?WHRIL25GZkowVUIyVU5UV0pqWlh2NzhVQ3BLQjhWTDhzSktxbXNwQnRyc0V6?=
 =?utf-8?B?aTBORThlM1lSbVZFK0QvS3hPbGFSUHE2T0VsYy84NFJ5dlplcnpib29xTGdw?=
 =?utf-8?B?YlVoeWFHd1dLRTAzNU5jaGFWWVphbXg1b1pKeSsrZndYY25Pbm4waGs1eHhz?=
 =?utf-8?B?cEI1WmI2aUF6V0lISFpkbDBzaVZOWjVLNkNGUWpVWmxVQXBlVTJuYVRZNnVH?=
 =?utf-8?B?eWcxZjBsMEhiV0EwT29JTTN0YTVkY1J4dnI3eHFIUDM2eld2NUR4TURUV2VU?=
 =?utf-8?B?UkNjaEJjK2phMmljYlZ6QXp6cm9CeXlha21nbldCN2cwMEhjc0lZZmVGWjRR?=
 =?utf-8?B?QWR4YnpSTmZVQStkU1lxcFRPM2UzL0QrKzhwQkNLeldxNUdwQTZqMndXU0ZT?=
 =?utf-8?B?aTM5K2ZWRlVMZmxGSFBLZlNrMjdKWlZXUDVnNTZyTHpyNnlPNE0wKzRGUjlO?=
 =?utf-8?B?cUk2QTZwUU1rN05BQWRoUnl1Y3Nhc2s4Y1Vhc2Z1ekovUTZyamVaQzRwVi9h?=
 =?utf-8?B?TUJFZDN1a0VmVG91M01OR3plMXdra1Vhc3Z5RE1qRStKWFdqam9FTWpVMko1?=
 =?utf-8?B?dHg3V1lmdmczakJPcWR1cnhWdDFrSzIwM0xjUUpkMVgwdTgxYXBNWllGeGpX?=
 =?utf-8?B?Z3lLbThrcVlhQ09PWmsxQnVYcFZWOVBCOW8weUxkWGpNYlJJaGlPNTJDMXNS?=
 =?utf-8?B?RVJuU0RFTFoxQ0YrNkcvY1B6NjhqOXY3eFRzcnlCbUxHb2pKUFU4OVozWjN4?=
 =?utf-8?B?S0luaHQ0Vk9ibzRIVElFcGY5b21ad3ZTdU5TMTlJQzQxaTlHVGxzNjR5NDlt?=
 =?utf-8?B?SHYwemcyM05KbTRORCsyVk5xY2Nqak54VzVTNWhIZlJGZS9Cd2JwcHZLbVVS?=
 =?utf-8?B?L0tJYjJvejl3WHgzeFR6d1hxK2tNQkpMbDVhbXhwOENsNWMrVDRrQTJSOE5I?=
 =?utf-8?B?SmFJbndnZGVjYnpnZ1JGaWd0dkNxMGxOZHpOTmp4Z0tEWHFVdk9JYXlmdFd5?=
 =?utf-8?B?WEFNcVUrOEVKZXlZU0J4OWM4d29IQlpSd0Vxd1RaNzBGanRNUXhKcWlkVVhS?=
 =?utf-8?B?YS9qNHdMTjZtaGhDdVlGMGdERFhHeVF6QXZaN0ZMT3FUbEgvRUkyMC9FRE1H?=
 =?utf-8?B?NFg5VU5ldDFEc3lJVHN5L0U2YTR1OU5EQnFQbzMybGV4Q0h6ZFFVOUZid1Nm?=
 =?utf-8?B?eDF1anFWL0JJRU5mL0cxUWhoYzFGVTlSV09OTG9rcmcrVEhZUzBJM3cxMjRw?=
 =?utf-8?B?ZWFuQ2hPWkxEdVRhNElEeHI4RFN2RHdDS2NRL1phZWljVEdsSW16ZjhBMENv?=
 =?utf-8?B?NW5lSFNZeGJpbUdwWUcxTFA3WkVXVXpJUUdnOE9ld2ozbmZDdGVNRXlidURv?=
 =?utf-8?B?Z21hZFRoMVJ0TnBoa3ZNVVNDWlZpV2pmTXFQQ29kWGQ4dHREdGJSR2U3QmpF?=
 =?utf-8?B?QXA0d2RIdjUrTjFXOGRsREJ3RTVMNlZDLzI5MzZKY0J3UWxydHNHNkVWelFJ?=
 =?utf-8?B?aXFLZ0o4UDdBY0tCN2dkc2dtTFh3WjFUUXRUeXZoc05YMGN2dVBtTTRZOVh2?=
 =?utf-8?B?L05wMHFoaS9HemtRZjE1L0NGbENqVW5kdk5IOXN1c3hLL3IwTFNEMEV0L2ZE?=
 =?utf-8?B?R083ZTNSMzFaWTFDMDRWdkFVOWlsYmoyRXNFZkhlOG1NN01DWmtYVmRtWXVz?=
 =?utf-8?B?YU00UmlOcEc2cE8zYW1POVNVMW5OakNjY2I0UHdWNHhDMzNUb1V6OUptU2FY?=
 =?utf-8?B?VnJwcGI3cUpZSkJNcmNZVW5IQkliOW9DWXVZRUZDK0QyQVY5KzgrYXRjaVhH?=
 =?utf-8?B?VTZMNjI4TVl6bW1ZanAzdTlyTWhYMklQQXp4RlJLdUVQYmlpTjNIQk5ETmUr?=
 =?utf-8?Q?J5lS/AoZQVjquXyZSeKO2ZLkk?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c5d9b35c-7bd6-43a6-6244-08dd72906a0c
X-MS-Exchange-CrossTenant-AuthSource: BN9PR12MB5273.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Apr 2025 09:17:53.8305
 (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: NcoQRgX3NuPClHivV21aF42NzdSz3uzKFUAH4a5Arb2ESVXLAJj2zaD3u9jzbJcG
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB9031



On 03/04/2025 10:58, Jan Beulich wrote:
> 
> 
> On 03.04.2025 10:44, Orzel, Michal wrote:
>> On 03/04/2025 10:43, Jan Beulich wrote:
>>> On 03.04.2025 10:19, Michal Orzel wrote:
>>>> Just like for RISCV and PPC, the earlier we enable the CI build the
>>>> better.
>>>
>>> What about Arm32?
>> The series to enable compilation of Arm32 with MPU is still under review on the ML.
> 
> Oh. Is MPU in Kconfig then missing a dependency on 64BIT?
Well, yes you're right although when I think about it, it's been like that (for
both 64 and 32) since the introduction of CONFIG_MPU by commit (in October last
year):
0388a5979b21 ("xen/arm: mpu: Introduce choice between MMU and MPU")

If you're saying that all the Kconfig combinations + targets like allyes/allno
need to build successfully also for new ports (MPU on Arm is kind of like a new
port), then I agree (I did not think about it and clearly others too seeing the
MPU patch above) although I'd prefer to avoid sending a patch adding dependency
just to be removed in 1-2 weeks. But I can do whatever you think needs to be done.

~Michal



From xen-devel-bounces@lists.xenproject.org Thu Apr 03 09:28:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 09:28:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.936411.1337663 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0Grs-0004Hc-7x; Thu, 03 Apr 2025 09:28:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 936411.1337663; Thu, 03 Apr 2025 09:28: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 1u0Grs-0004HV-5S; Thu, 03 Apr 2025 09:28:12 +0000
Received: by outflank-mailman (input) for mailman id 936411;
 Thu, 03 Apr 2025 09:28: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=lWYu=WV=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u0Grr-0004HP-Fw
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 09:28:11 +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 f493f1cf-106d-11f0-9ffb-bf95429c2676;
 Thu, 03 Apr 2025 11:28:09 +0200 (CEST)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-39ac9aea656so576972f8f.3
 for <xen-devel@lists.xenproject.org>; Thu, 03 Apr 2025 02:28:09 -0700 (PDT)
Received: from [10.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-39c301a6796sm1296979f8f.31.2025.04.03.02.28.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 03 Apr 2025 02:28: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: f493f1cf-106d-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743672488; x=1744277288; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=WbHficwKeEUZee6X6aRVG/cBQmmbqxXJlSiN6zVTZXI=;
        b=QjxHWAIPbWryrb7wEJourzM7OrZrQl9IS94sUolJUFr6mjwV2zef6EDsAfVSPYAwZV
         yAVFK2wC1Z0J1Utb1mvwM0mwE/jB73cvp8zowV/6gYk2m8X1zdYFr2TtLB9OuWn338lN
         eV/myBfUlT+j0lmogpQuaOA0A9pZbNvGTmX5o4U8qpp6TUaZ9MbF3PjuOh2v28m6+rbL
         AzMRCrWyfP0EjIGfIBnGykHLDCuKhCJfiI6zv91bOocoCC+VsDPJou0xX3CmRqV6yGP8
         +vFnnPhWf8ynIcIUlVFmw01vlJwuJtubXblRRNcifGc5NVTzEN3nSHrYe3MAfJ5AWTOb
         /LUA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743672488; x=1744277288;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=WbHficwKeEUZee6X6aRVG/cBQmmbqxXJlSiN6zVTZXI=;
        b=JFAB9jefVT/sYWnVxr1kzvDx4INIorRpFzeCZAS31X+U7WCKnN6/hEMQN+3OGBZf65
         2RNBnvabVua7uhPkzBc0sWrXF9Ba/EBs5uQsVR5f/kWKHCZF95fZpfjHZbnhU5QK1plJ
         McZwLpOGoVh1EPqGzZ/dYDjqQ2dmx74nP9itQNgVjtHUhfWv3Ya1bEXWEYss0tCQ/+Li
         lDlwv0LorSQwe5D4UP0usdm8TkRufu6ti+D1WKghpequ4Z/YBtbziGMpl0k3eLY4PjQC
         FpNhg3PKyj0nr/h/NT/5iFzVjgmD1fmgAfcLJ6Pwip/1U+Gxryr/hd5ypUCFCMATuIy9
         kK6A==
X-Forwarded-Encrypted: i=1; AJvYcCUMwrJa8Hu5BYlNnFuQc/vyEow6rpfkTwXZoH0nmdO3rII+BOc4qrCYZHBXZwRNnGU/juvWkGKgIgY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwtGMmberkGldvQcyUpLQTZfUWT4LZCF+TjS8+bL5xzvyf3or8H
	NTnISW+RUosskI0468P7/vS8UzmKT0HyHT/LsBxOf6wakkgUKwS4Hjuwn0AnOg==
X-Gm-Gg: ASbGnctXaMeOxMHubPXYZZLcafFAlkbXb7yjWZ0+JYPYooUYtkb0FPVV82TzJryMfPJ
	SI4m3r2Kuw6iSiukveU2o4tWfq+EFYoeLfOg9NUHQ2IJ174UCOXydYnrZJNciHvmBIyn2EgOPHp
	MLGHnZGOKzV+qCkVP3gsU6rlY09AT0b0v4AzIi1HzJkD3Hp+sg15PfS0Y4hjLIGne8buYouaagh
	6FeGc1+Vspg31icyUUB9YeIfSdEYSyM+X2Ff0zNvQtmBqLYPDREvbuITQFqEB+7xndFoGsjvk8I
	qqoCZknyGUrSR3PkLdzxnsX5cCh6PKOQtJOuNV9i+1DayD71Fwne7uxLtNIzM7XKduR+U/8zUMx
	UKlHc2NHrMCstO1bt1CyYOyeOQ2zunA==
X-Google-Smtp-Source: AGHT+IF0+8DTdWAW0eA1UIN28ZWQ4IRGJVaZbYd+nYIRqGbwWpioEqD+K9eJaB62aitdnhfekT5Cnw==
X-Received: by 2002:a05:6000:2483:b0:39c:142a:ed6c with SMTP id ffacd0b85a97d-39c142aed73mr16349170f8f.40.1743672488481;
        Thu, 03 Apr 2025 02:28:08 -0700 (PDT)
Message-ID: <235cb577-b28f-49ab-b0a3-94ab35572d83@suse.com>
Date: Thu, 3 Apr 2025 11:28:07 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] automation: Add Arm64 MPU build job
To: "Orzel, Michal" <michal.orzel@amd.com>
Cc: Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Luca Fancellu <luca.fancellu@arm.com>, xen-devel@lists.xenproject.org
References: <20250403081916.6834-1-michal.orzel@amd.com>
 <20ac780b-f5ac-4531-997e-362d72adddd2@suse.com>
 <2a8ab261-480f-4bfe-b2b7-7fdff4516078@amd.com>
 <a67d260e-fe1a-44bb-8b49-fa0509716da2@suse.com>
 <44500161-1346-4c9e-bcb3-a4301c197913@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: <44500161-1346-4c9e-bcb3-a4301c197913@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 03.04.2025 11:17, Orzel, Michal wrote:
> On 03/04/2025 10:58, Jan Beulich wrote:
>> On 03.04.2025 10:44, Orzel, Michal wrote:
>>> On 03/04/2025 10:43, Jan Beulich wrote:
>>>> On 03.04.2025 10:19, Michal Orzel wrote:
>>>>> Just like for RISCV and PPC, the earlier we enable the CI build the
>>>>> better.
>>>>
>>>> What about Arm32?
>>> The series to enable compilation of Arm32 with MPU is still under review on the ML.
>>
>> Oh. Is MPU in Kconfig then missing a dependency on 64BIT?
> Well, yes you're right although when I think about it, it's been like that (for
> both 64 and 32) since the introduction of CONFIG_MPU by commit (in October last
> year):
> 0388a5979b21 ("xen/arm: mpu: Introduce choice between MMU and MPU")
> 
> If you're saying that all the Kconfig combinations + targets like allyes/allno
> need to build successfully also for new ports (MPU on Arm is kind of like a new
> port), then I agree (I did not think about it and clearly others too seeing the
> MPU patch above) although I'd prefer to avoid sending a patch adding dependency
> just to be removed in 1-2 weeks. But I can do whatever you think needs to be done.

I'm far from insisting on a change here; you're a maintainer of that code while
I am not. Yet I indeed think Kconfig needs to have the dependencies right, or
else randconfig CI jobs may randomly fail.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Apr 03 09:35:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 09:35:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.936425.1337674 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0GzI-0007HL-2I; Thu, 03 Apr 2025 09:35:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 936425.1337674; Thu, 03 Apr 2025 09:35: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 1u0GzH-0007HE-Vf; Thu, 03 Apr 2025 09:35:51 +0000
Received: by outflank-mailman (input) for mailman id 936425;
 Thu, 03 Apr 2025 09:35: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=t8zK=WV=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1u0GzG-0007H8-Bf
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 09:35:50 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on2060b.outbound.protection.outlook.com
 [2a01:111:f403:2415::60b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 06b2ff9b-106f-11f0-9eaa-5ba50f476ded;
 Thu, 03 Apr 2025 11:35:49 +0200 (CEST)
Received: from BN9PR12MB5273.namprd12.prod.outlook.com (2603:10b6:408:11e::22)
 by CH3PR12MB8849.namprd12.prod.outlook.com (2603:10b6:610:178::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.50; Thu, 3 Apr
 2025 09:35:46 +0000
Received: from BN9PR12MB5273.namprd12.prod.outlook.com
 ([fe80::cf66:58ab:47be:4b13]) by BN9PR12MB5273.namprd12.prod.outlook.com
 ([fe80::cf66:58ab:47be:4b13%5]) with mapi id 15.20.8534.045; Thu, 3 Apr 2025
 09:35: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: 06b2ff9b-106f-11f0-9eaa-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=sv9jqQQP85TheNWqgopVDvEk8hro7QI2ObbhO52rK8opPahHbk7verw9LGaA8KnTW/crpT6UZ0dG5QA482MiFrucYXsATPGXNyzYIf3CkUpx/8XLCjw57d42UdiAKtPBMxHBtueU0WAd5V8/DGNJJepO1I+mt8HRX96CePQ4BB5XGYdKLl1pvPQ8RpdOXm+Q2IfVtmlS3/1ghSt3DKXRkTErvXdp/pISOm2EcwHFVbSrmEoE+IEjHXdzKg9UiX0nDTPwHCOCJvlDNxhD86efMXaqzQNtB2KM8WBUYEy/nuyxFyaClmrqBjM3WpXKU1B34lt3N5jzm4FkD4IIityqsw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=H2Mo6Z1TodjxGYRpnAA31H0tyJUYgFl7YtnziJkp+9s=;
 b=gGoGm8oMczfHvNd5dj6wlPoR+tkiE258P/PfhtHaW0jI43tvSaJuIDKbYO/Un/lJUfQCex8oI9WpHsFqSsWCtSvhQmKWYqKkxEG0my5/3WR33H5pnKI5kU6VJ1hpfbMe0zw4fQ482X8g+L8yl0/rHyS3ehZP5HCF1Pri/8p2K9XwtqwPUIWecylWDVl/oVcFoXW1D4NdPxNxxjHG/EHtnU9jiY/vHQ6L9sahtQtaopTHWWQZFIESmT0lSM4VIb2cgIP8r5t5gFsytLRa+VHZVVRkRBUuvkAi6aXM7biiLnb6psLYMJ8qgsjVjiLQdD5yGa55IglDAmbd24rpmFrUHw==
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=H2Mo6Z1TodjxGYRpnAA31H0tyJUYgFl7YtnziJkp+9s=;
 b=qHB2jj0uQJ9RNdFvV+07P6IhnNsS5pfOaOMtMG8tu3hvDMDB5T+0PxscjB13mNo9mFecLl7oNzl682zxSmjZ/aIG8BRb4lAWLdXCbavy1bfnGCrU8wq3MA61JEVr3A0H4yGNMbZfrCxKFcomLdyElTWH9pTKmASVZv/oGIMuyc4=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <65d12272-0ceb-4570-bade-5a0901264e16@amd.com>
Date: Thu, 3 Apr 2025 11:35:42 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] automation: Add Arm64 MPU build job
To: Jan Beulich <jbeulich@suse.com>
Cc: Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Luca Fancellu <luca.fancellu@arm.com>, xen-devel@lists.xenproject.org
References: <20250403081916.6834-1-michal.orzel@amd.com>
 <20ac780b-f5ac-4531-997e-362d72adddd2@suse.com>
 <2a8ab261-480f-4bfe-b2b7-7fdff4516078@amd.com>
 <a67d260e-fe1a-44bb-8b49-fa0509716da2@suse.com>
 <44500161-1346-4c9e-bcb3-a4301c197913@amd.com>
 <235cb577-b28f-49ab-b0a3-94ab35572d83@suse.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <235cb577-b28f-49ab-b0a3-94ab35572d83@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR4P281CA0190.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:ca::15) To BN9PR12MB5273.namprd12.prod.outlook.com
 (2603:10b6:408:11e::22)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN9PR12MB5273:EE_|CH3PR12MB8849:EE_
X-MS-Office365-Filtering-Correlation-Id: 8d35a131-c201-4b2d-0b89-08dd7292e901
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?aDQwR0dCK1lxRklYR1RsOW9jbzAyc2tuZlRadlRsaEJoMGZvV2R5akZhNlM4?=
 =?utf-8?B?enhXd2hUbjY5VW81anJMdmo3dyt6MkFGYmh3MUphRmdwWGZiWXJKQ28wOW01?=
 =?utf-8?B?Y2ZyMk5zMFMxNFpSaHJ2R1BrRWtPeFpUTEpZb3V6aWZKRkIyaSs0MUd5K0pT?=
 =?utf-8?B?Tk95TW9yejBKVHQ2THNOZnFUd3dHWHl3QVRXWUtWRXlMQWI3RVRGZWp5bi91?=
 =?utf-8?B?RUdSaHUvMmNNSUo0cTVqbEttQm9HM1BaZldDZTdBWkVjZEhhU096M01kSUZE?=
 =?utf-8?B?TjFXTndaRW5KTit4K1FOaE5HMWRxbWhxaXAyVWl3d2JzWjh1WDMwN3VXTy9R?=
 =?utf-8?B?VEtFMFA0eVQ0Ui8yL0h6dVV5cEdoTW12QWxjeU9yVmorb1I3TklmSEREUUFK?=
 =?utf-8?B?S1crVzBSOGpIcDE5REJOUXhIRlZSaFJZYmcreE5zWWdCK3BkczFPVVJaMzR2?=
 =?utf-8?B?NGYyYjB1TlN4bjBhY25HOEI5a3drN1dFR2RXZmVWcjJUMlFGNWU0eno1NVE5?=
 =?utf-8?B?QzBIMjE1RnRodnI1RmN6YVN0Qjg1ZHJBdWdqOUo1a0RMNy9jaS90ejVacVJs?=
 =?utf-8?B?Rnh4VVpFTC94YkxVQkdFMnNQenZpbFo3TVBKYXk5MDBaeDZrbzUyeG9KeUE4?=
 =?utf-8?B?NnNnMjJ3SWN4eVVqNlpxU25DK1B3QmZqWVV2bDZzRGJuSVRHb1dxVFRFSzZo?=
 =?utf-8?B?SFhMNnFaa0ZsbGxDR0ZNekNlNlhGRVY4eitsMXo2UmZ4YTNYWEZpTjNJVnJR?=
 =?utf-8?B?Rk80K2FBM0VhbTRWUXRGdzJEK3VGRXNURE5LdllTeDdBeW9VTmd2VU5zZTcr?=
 =?utf-8?B?WUV3SnJaM2VsajFGOTJ2OGRWYTR6VDBmMXNoUmYzRkd3ZW9UdTh6MTRnQUQ5?=
 =?utf-8?B?ZjhiYVZtY2QxOFpyYzEvcFRGaXo5RjBkWHJYZmxGM1pJRzd3SkIwc3BwWEpU?=
 =?utf-8?B?c3pFRUtaOUt4MmtickNWV1NLZ2hydnB1clJMNVF4RGROUWF3L05sUmtWV3ZC?=
 =?utf-8?B?bWRoYzVnM1cvU3pTdHZxcUM0VW1mMW41VzlSbWZmaEU2eklWZTkxVDNkbllL?=
 =?utf-8?B?VmlaN0RCNCtyZHN5WHo4NHV6WVhQMDcrdE92c0hNTkplY0tSajRPcldmeld2?=
 =?utf-8?B?aHNwSlNnem9wakxpRmZHa0JlbmtaQlJRZC9hU0FiQzNzN3NsM29kVFJZdnlk?=
 =?utf-8?B?c0dxQTkyMmtTeXFHNHNHU2RhWWlMcVI5eTVySXJKSElsVjNIYVdiZ0VFb2FS?=
 =?utf-8?B?K01GYUk5c0tkOUNGWXNRQzJxZmZucG02d0tOV0U1WUI1bGtjaWY1Q2tIWU51?=
 =?utf-8?B?VG5Ya0llUzljZU9XUDAyTTNJS3J2VjRTUC9BT1dIeG5DaitlVDY3ckR0VkFt?=
 =?utf-8?B?OVpIRStReHp3YXFYNGd6YnpIY1JubXJ4eGlnUWloQnpHK0JlcUZ0ckRncjB1?=
 =?utf-8?B?d3RTUTducnhwUnZZNUdJRmtJSFd2QUYvWUlrRWFSWkNPdHJZZTZGRDhqcTVl?=
 =?utf-8?B?akpPWlAvK3NtL1MrbzJWeWowRGRzSXRKUSsrQ0pjSU4wSXcvT0pzaW9PU0ZX?=
 =?utf-8?B?ZFAzU2V2UFZOK2g5VEQwdGMwaEcxcEtQSnF5T252VEM1ZkFnWHJKNGl6eUJK?=
 =?utf-8?B?TVpvM1RzWXk1Q3BtWGxGMlVwYXI4YTR6by9CdjZmRDhVTStBT3NIT0kzM3Iw?=
 =?utf-8?B?WWUwK3ByYWY0YklscXZueWNsc0d6WXVWSm9qZkF5bnJJM21CS1lWcm56SDBH?=
 =?utf-8?B?LzQ0Vy8vUytOdXRLWlYxVGU1eFQ1SFM3emRYOHJoRVJnYXM5dE5jbmcza2h2?=
 =?utf-8?B?eVlTOUVETkNtYVVNaVU1MGJuNGpLRGxxWWI5S2JybE1LQng2c2hUREZaT3Bw?=
 =?utf-8?B?Um5Mek93Vkx1RFhvZTErd0hHRHpad1NSUlluSkVUQjdmTzR6cUFQLzFFRjdU?=
 =?utf-8?Q?75v9+/qk7sw=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN9PR12MB5273.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?V2kzQWdFYVFPUWp5RkRkTU1VbU91TEIyd2E2d0IrWW4vaTljTDJIZlZHaHc1?=
 =?utf-8?B?RzY4bEFkd2FiSmE1bXZUZk4rbUF3N2xGZ3BMbXdRUENXREpnbEMwYitITkMy?=
 =?utf-8?B?elMrM1hqOEdUaitFdlR4TXpiZTd6UTkwUm1JaXR5eWhyQjVFYXBpSjhpM2E3?=
 =?utf-8?B?Y3V5a3R2WUNoOUVWL2picGR6OXZGR3BEdENnQXV0MHltNS9lRUtLYTB2M2xC?=
 =?utf-8?B?c1ovSjN1OHNzSUpxQWRJeUgrcHlYZllXUHdMMGRVNnFmTEMzMGJUY1lUQitN?=
 =?utf-8?B?cE1DK1BNSXIzS3MxTEkxSkNWUEtQaFNqM1dkamxHY3NIaURUNDVDTUFjNXpD?=
 =?utf-8?B?bnJWWk5nRytERFJyYnp4RjF6by9GUitzR1cwVEVPWjl1aFh0cU1xc0lwMHo3?=
 =?utf-8?B?Y2NkQTQ1dXRrR1IrcTNiMHhscm9JNjVrZjZXV1NocjJYTk4ycTdoMTBuQ1VZ?=
 =?utf-8?B?RTcya3lmRTMwMDA2UlhrQ0ZQM0Qyc1NGeUUzc0ZCYjI0eUNVc0JmcDVSRVhO?=
 =?utf-8?B?SlkxYnJycTV4MVZ3YXVrTkp2aGRFZ3BJRnM2a2xGbitxeDFGVVZ0OHl6YUo1?=
 =?utf-8?B?ZnJsNnFmTncvY0tONUJWckRSZEZ1RmlWNzEwT0g0RW5LaDN2N1BEaitxYmlB?=
 =?utf-8?B?bk1YakZoWDBhbkJEVlZSdDczODhWMDRzMG91TlhTbStuc2xDNWk2YzlTNHNh?=
 =?utf-8?B?Y0ViOWlJRUxSZmJ2dzU3SVRIMWpyOElabjN6aFU4Uk9JQ1p6TmJudGZ1b3hu?=
 =?utf-8?B?NUI5dFk2UHpnMUhFYW1LQWx6dkEvUGRSSUROdnZ2WjZTR0NYVDJMeHpsZ3V0?=
 =?utf-8?B?QXdSVnZFZUp6S1dRbkRBYVZrZ2EyL0U2ekRtVS8vdDFmUXlWMmRGYjd2cDRQ?=
 =?utf-8?B?dnpnOURLbnJFSGhWT0txZUtpUUtMTG1kRHl2N2NFRit2ZW16SDkvNk5pVita?=
 =?utf-8?B?c2M1a0t3S3A2ODVxNmw4WVBDREwwRU1zejZwMDhPS3kzMm10aXJJazU2aTdx?=
 =?utf-8?B?L2h6cnJPeU5WTy9VaHVuS1Y4cVFJeG5iazJwWStoNHlFMElHVEFZYWRmVi9r?=
 =?utf-8?B?Q2xkN3U4dXhrTEdjOUV4TWJmQlZsaWdOYWF0czJhd2p3by9uUnBWNmFSQVNZ?=
 =?utf-8?B?RnphRzFDMHhTUzBLOTBwUzM0U0JHMmpUdmZSUE1ZdVF1NFB2cmRmUldldUFr?=
 =?utf-8?B?MjdUUVNmWjN3cFFkL3Npdld3RjczN2dqYlREMTBiYkUvaWJNa3BXK01wTUR4?=
 =?utf-8?B?NDNhcmNiY08vUE1KUERkU2lDTzdDSzJCSTZ4SGF4MG5nZUJ6QW5NdGozN1NH?=
 =?utf-8?B?bUkzQ1Z4QTZmdS9Qb2hNQnljUlU0T0RPNEpOTXZVaVRoNnE5ZURFcU90ZG5J?=
 =?utf-8?B?STVSbVJOeVUzK3dwbm9yby8yNFZWT29UVlVqTlErOU9sUms3eWczVmE3YWpN?=
 =?utf-8?B?UVZqczZwQ3JybGJtTHJSMkFmM2ZRcXV3Q0R3WGpwdEJkZU0yNFZZQmxRL2JS?=
 =?utf-8?B?VkdRWms0SVJoZ2pkd2o4QU9iSmxXZzJqWUkwaTNSMUs5R2FPS212cHVtNnAv?=
 =?utf-8?B?angvUWRnQzhwRUpJVzNZNTcvbDh0cmhCOUd2anBOK095dVo5VythdllPYnhN?=
 =?utf-8?B?N1N3Q2Zzc0lIUko1ZHhZWlJJR3lnTHJXT1I5S3Q0M0xOY1NING9wR3ZqandT?=
 =?utf-8?B?K3V0d2FtQVpjdisvQ1Y2UHFtVGc0KzlxTjNybXR6M2NNYTJMUFA2WFlpSEsx?=
 =?utf-8?B?Qk9DRWdYdVRBTzVUckJEaWJpWmJPSm80WjV1VzRma0l4cVcxakt6ajY0Rldn?=
 =?utf-8?B?WUp2Q0pTSUN2ckZIZHhGMW1vN090Z3Q5L1JWb3hTYi9pWnFJUkxJUFlGbnQv?=
 =?utf-8?B?MU1VdjlrOXNuMFdWanF4Sys5ZUJuTUx0R2pYZThUM2V1TjdoYzF1VXR2SnRE?=
 =?utf-8?B?V1FmOVRheUE2d1NtOGhzYUkrVWg0WXZ0UitWNzdWd0ljeC96Sjl5NG9UNmR5?=
 =?utf-8?B?ZVBweXpseXhkYW1iWnV2V1pnVEdJTTluWDBaTHo5Z0srUU5zeGtTRy9aUFVE?=
 =?utf-8?B?VjNjMHRYUlFVVEFsVTBMRzZOYzdySUd4TS9NYWJMOUNldXU1ekFydTlQMmFV?=
 =?utf-8?Q?1AP0TzvY0HheXdLUI8L/IgOGi?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 8d35a131-c201-4b2d-0b89-08dd7292e901
X-MS-Exchange-CrossTenant-AuthSource: BN9PR12MB5273.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Apr 2025 09:35:45.8115
 (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: WbEIoC4YTy60Nj5uOUpOqbcAagcWqwUB00WemVF50lyR/ItpSH2QyRA/CRkasT9M
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB8849



On 03/04/2025 11:28, Jan Beulich wrote:
> 
> 
> On 03.04.2025 11:17, Orzel, Michal wrote:
>> On 03/04/2025 10:58, Jan Beulich wrote:
>>> On 03.04.2025 10:44, Orzel, Michal wrote:
>>>> On 03/04/2025 10:43, Jan Beulich wrote:
>>>>> On 03.04.2025 10:19, Michal Orzel wrote:
>>>>>> Just like for RISCV and PPC, the earlier we enable the CI build the
>>>>>> better.
>>>>>
>>>>> What about Arm32?
>>>> The series to enable compilation of Arm32 with MPU is still under review on the ML.
>>>
>>> Oh. Is MPU in Kconfig then missing a dependency on 64BIT?
>> Well, yes you're right although when I think about it, it's been like that (for
>> both 64 and 32) since the introduction of CONFIG_MPU by commit (in October last
>> year):
>> 0388a5979b21 ("xen/arm: mpu: Introduce choice between MMU and MPU")
>>
>> If you're saying that all the Kconfig combinations + targets like allyes/allno
>> need to build successfully also for new ports (MPU on Arm is kind of like a new
>> port), then I agree (I did not think about it and clearly others too seeing the
>> MPU patch above) although I'd prefer to avoid sending a patch adding dependency
>> just to be removed in 1-2 weeks. But I can do whatever you think needs to be done.
> 
> I'm far from insisting on a change here; you're a maintainer of that code while
> I am not. Yet I indeed think Kconfig needs to have the dependencies right, or
> else randconfig CI jobs may randomly fail.
Sure, thanks for showing understanding.

A different question (also to other people who knows this stuff).
MPU requires to specify Xen start address using CONFIG_XEN_START_ADDRESS that is
set to invalid default value to catch user attention. Provided that randconfig
can select UNSUPPORTED and MPU, we should somehow set CONFIG_XEN_START_ADDRESS
to e.g. 0 to be able to build successfully. Is this where we need to add
EXTRA_FIXED_RANDCONFIG to existing arm64 and arm32 randconfig jobs?

~Michal



From xen-devel-bounces@lists.xenproject.org Thu Apr 03 10:01:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 10:01:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.936445.1337684 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0HNM-0005UL-UK; Thu, 03 Apr 2025 10:00:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 936445.1337684; Thu, 03 Apr 2025 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 1u0HNM-0005UE-R8; Thu, 03 Apr 2025 10:00:44 +0000
Received: by outflank-mailman (input) for mailman id 936445;
 Thu, 03 Apr 2025 10:00: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=lWYu=WV=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u0HNL-0005U6-6i
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 10:00:43 +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 80912e29-1072-11f0-9eaa-5ba50f476ded;
 Thu, 03 Apr 2025 12:00:42 +0200 (CEST)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-43cfa7e7f54so4084215e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 03 Apr 2025 03:00:41 -0700 (PDT)
Received: from [10.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-39c30096964sm1368325f8f.15.2025.04.03.03.00.40
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 03 Apr 2025 03:00: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: 80912e29-1072-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743674441; x=1744279241; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=9XzR85yc2MgrUpoOirnROaslTphOlUH+wAFlwg/u5Rg=;
        b=Zk4K7t3Z2CHdXQV5nOhnNJwwEODJiDkTwk1emyiKpob2ydW0f8T9Lt+y7fdepuUw8Y
         RkgAiWN63iz8hq89LlSc/ON/yTeH3k3oUdoSx+96FW3Dq6ReSJd7EW/I5rTrEIT5fN9K
         iSENlxcKaI2UHtlwUgN7O/IMzDdKpCeqTGYKyLVIwl5YAa0utpE3VMKU4geUietwiAhU
         J2zGx5NHkkeFWOYR+ZhkWJBVfbOhLO7IkvVJ134I2SiXEMfd/nY4HeP4ZtjFMNjXa4fn
         Z0TwwuGYR2Fn+tWW3oRsJLQg6suJtKeMEJoKgM0arNU6Lma81fRjWgz46sWLNzyPcBNk
         YWCg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743674441; x=1744279241;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=9XzR85yc2MgrUpoOirnROaslTphOlUH+wAFlwg/u5Rg=;
        b=RrB/qvI2kthUKb5Q5Prbw9ipHGf7PWPjfU32BwhlXbgjc/LkMqR3WwKkADFAdbupJW
         hQ/geyT5yPszGEd7B9cmkzXB000QCJfMdGGOU6PDQ+fa0rFlnIOcC1sn5q4QLHOIMfNV
         z842JDZxiokn/dH1D8U9HzXW0S+xNZ6d2PGyb83m7N2vjriaGWh/TD56PnkjRsId4vab
         ja20SOMEukpKx9VFEmD2C9l7zEfPnn8w5BgCxuCKoqI5fNgUOcdkPyoIj0NKyMoHOVH+
         yORg4j7vgB4QBfYeuNQTAaDawwRUtaPi4Ma1qo7Uk+eVVSpUq+5BXNUXFBhROLL+DWqS
         TcQQ==
X-Forwarded-Encrypted: i=1; AJvYcCU0xZQem2DXoqw5kCOXIlinufnQTCSzhVW8DFQ+rCwAs0BanN1BH0uY2uWOmpyvxlzzGMcYWDiDyfM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxeVl31m7Xtgq1/7E8Uo1Tj+f5heMi9TzuxeocHV9ljhg0SOx4i
	AkYtnRAlPvYDHVuZad4aQkOXFAzY3xk//153g38vPl7jlLu8GSrWDPMY+F0/PA==
X-Gm-Gg: ASbGncvSRIFKrgNpMs+qxH7fH8n5wGCqDvXLI7vfWcPdcJW6xB01Z+KPYLYrRsPlLr+
	TjHdW8d+eYEmYMsg6baC43T4va0yBh7y8i93OHEwlPijPgtsZcF50GLef2rB7leIfxokzgfXH1G
	dNvWYdlUgXkLZz3C7fKmZY5zGpVpIU0CcPfeq1wDvW5MIKFNVF6Sde3F+imJY0UoV+qyTFIDunj
	b5ZD8D9dqg3XBzjlRyYGKxvC8tsDszx/oWqQ48v6ymuScuwKki6mOwNfcHY5YQWNL/n8b8nZ7lB
	fwfiTq64QglC9kzOj8sMpEFh35LbM9bSaZB8cbSHm9PLrYgVZ4uzY3Hkqn9fdeF+iq5c966/gqV
	KPUlfMavkpMmclMWhxvxshYs2Hmhawg==
X-Google-Smtp-Source: AGHT+IFWYlR6gIBAf66Y9X/eQfyhN8u6WXkgkM4hZmzNIZUPvDEI7OZJnZsqgf8I3wyc6PlGEpivZw==
X-Received: by 2002:a05:600c:35ca:b0:43d:b33:679c with SMTP id 5b1f17b1804b1-43ebef75b5dmr23629495e9.14.1743674441314;
        Thu, 03 Apr 2025 03:00:41 -0700 (PDT)
Message-ID: <921c6250-9485-4d66-a568-15045ecc17bb@suse.com>
Date: Thu, 3 Apr 2025 12:00:39 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] automation: Add Arm64 MPU build job
To: "Orzel, Michal" <michal.orzel@amd.com>
Cc: Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Luca Fancellu <luca.fancellu@arm.com>, xen-devel@lists.xenproject.org,
 Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <20250403081916.6834-1-michal.orzel@amd.com>
 <20ac780b-f5ac-4531-997e-362d72adddd2@suse.com>
 <2a8ab261-480f-4bfe-b2b7-7fdff4516078@amd.com>
 <a67d260e-fe1a-44bb-8b49-fa0509716da2@suse.com>
 <44500161-1346-4c9e-bcb3-a4301c197913@amd.com>
 <235cb577-b28f-49ab-b0a3-94ab35572d83@suse.com>
 <65d12272-0ceb-4570-bade-5a0901264e16@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: <65d12272-0ceb-4570-bade-5a0901264e16@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 03.04.2025 11:35, Orzel, Michal wrote:
> 
> 
> On 03/04/2025 11:28, Jan Beulich wrote:
>>
>>
>> On 03.04.2025 11:17, Orzel, Michal wrote:
>>> On 03/04/2025 10:58, Jan Beulich wrote:
>>>> On 03.04.2025 10:44, Orzel, Michal wrote:
>>>>> On 03/04/2025 10:43, Jan Beulich wrote:
>>>>>> On 03.04.2025 10:19, Michal Orzel wrote:
>>>>>>> Just like for RISCV and PPC, the earlier we enable the CI build the
>>>>>>> better.
>>>>>>
>>>>>> What about Arm32?
>>>>> The series to enable compilation of Arm32 with MPU is still under review on the ML.
>>>>
>>>> Oh. Is MPU in Kconfig then missing a dependency on 64BIT?
>>> Well, yes you're right although when I think about it, it's been like that (for
>>> both 64 and 32) since the introduction of CONFIG_MPU by commit (in October last
>>> year):
>>> 0388a5979b21 ("xen/arm: mpu: Introduce choice between MMU and MPU")
>>>
>>> If you're saying that all the Kconfig combinations + targets like allyes/allno
>>> need to build successfully also for new ports (MPU on Arm is kind of like a new
>>> port), then I agree (I did not think about it and clearly others too seeing the
>>> MPU patch above) although I'd prefer to avoid sending a patch adding dependency
>>> just to be removed in 1-2 weeks. But I can do whatever you think needs to be done.
>>
>> I'm far from insisting on a change here; you're a maintainer of that code while
>> I am not. Yet I indeed think Kconfig needs to have the dependencies right, or
>> else randconfig CI jobs may randomly fail.
> Sure, thanks for showing understanding.
> 
> A different question (also to other people who knows this stuff).
> MPU requires to specify Xen start address using CONFIG_XEN_START_ADDRESS that is
> set to invalid default value to catch user attention. Provided that randconfig
> can select UNSUPPORTED and MPU, we should somehow set CONFIG_XEN_START_ADDRESS
> to e.g. 0 to be able to build successfully. Is this where we need to add
> EXTRA_FIXED_RANDCONFIG to existing arm64 and arm32 randconfig jobs?

In principle some override like this will be needed, I think, yet that undermines
the randomness of the build. From what I can tell the sole constraint on
XEN_START_ADDRESS is that it needs to be page aligned (for whatever reason; I
didn't think there was the concept of "pages" without an MMU [1]). Arbitrary
values satisfying this constraint ought to be selectable by random configurations.
Which would then - hopefully - also trigger the case where XEN_START_ADDRESS is
e.g. so large that Xen can't fit in the remaining address space anymore. Plus
perhaps any other constraints presently not enforced.

How to deal with all of this, i.e. how to leave as much flexibility as possible
to randconfig, I simply don't know. Extending the Cc list in the hope for someone
to provide some insight.

Jan

[1] Perhaps PAGE_SIZE there is purely a software construct, used as allocation
granularity. Yet then it's not clear why XEN_START_ADDRESS would need to be
PAGE_SIZE-aligned. Maybe that's merely simplifying some code ...


From xen-devel-bounces@lists.xenproject.org Thu Apr 03 11:00:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 11:00:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.936461.1337695 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0IIv-0003LU-4R; Thu, 03 Apr 2025 11:00:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 936461.1337695; Thu, 03 Apr 2025 11:00: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 1u0IIu-0003LN-W8; Thu, 03 Apr 2025 11:00:12 +0000
Received: by outflank-mailman (input) for mailman id 936461;
 Thu, 03 Apr 2025 11:00: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=JbNy=WV=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u0IIu-0003LH-GR
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 11:00:12 +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 cd660fdd-107a-11f0-9ffb-bf95429c2676;
 Thu, 03 Apr 2025 13:00:06 +0200 (CEST)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-43cf257158fso4620315e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 03 Apr 2025 04:00:06 -0700 (PDT)
Received: from localhost.localdomain (host-92-26-98-202.as13285.net.
 [92.26.98.202]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43ec1692ba4sm18302915e9.16.2025.04.03.04.00.05
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 03 Apr 2025 04:00: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: cd660fdd-107a-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1743678006; x=1744282806; 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=08NszHezCOETcMiXOyrzLaeHkX918KHLikx4QSFS/rU=;
        b=EogBNckk10AFC6jtUmOc+2t4ucpdPzSQfUGlQ/tmOajscxb233kpleHmb8iIySFx3e
         +4GMC971bjrtU1GNIhYNxXSXTrjqJcRU9Fk42eWFwwu9AdVzniOQYEQmzR45UfJMjKqx
         qAKgH4q7/YoFQIoKRErF124kwSaX/NunHLdew=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743678006; x=1744282806;
        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=08NszHezCOETcMiXOyrzLaeHkX918KHLikx4QSFS/rU=;
        b=UVLW1c8gh7Adk4KEQOMEyeaEm4K9NlclkO6Jlw8Ym1pCetDBNmvj4ybAP7xaOsowPY
         XA+bPVA3t1gH5vKzWDaLE4KK0zxV0/KGinXOca6Z8MiNe/6OcbROX/yZOcWam+BMxPBc
         HfPfzGO1ls4hykn1IhXklvfYs91iThmT54qlqFrZ7Ph4kgVwmV1qdu8DzQQg0H8LYRft
         JdCzhH16868g71EZmC0Q5oM2rzLTfQ7oiETDIOOL9eFyaPabZNtj3RTdHilocaTIFAzc
         36dQGXDV1FgNSwQsZO7wc9rDSz0zAQZrG3kC8zSbdbjTa4LhccreJ3eraIftuAOnrNev
         8Jog==
X-Gm-Message-State: AOJu0YwbOBn6Mt8ikDjqLeDcYIAU8asq/zGPMZmW0JBzrn5xVgWCVmKd
	ji9WN/XPAmLWSHA833lRIPPDAoKtVnt5Iyr2NsNGw0LOiRwgt6CvhNncykw19Gkp4/NhdpVhiKm
	NVFg=
X-Gm-Gg: ASbGncv2SU+Xh/OPIp8EZgs20JIem2R8xBp7QYkEejLa1lihmj0NvsPgEBehEzm7Cij
	je5GY0xfZNLHtDLtaT7v42KarAAV52hhUYs8V1l5fK5Xo/RbeCCA8R371KkWVCuq6a3b29MYl77
	e8UvL+ONtJ0U0L4rmgW5GJwyoUOWrgSWW82GhlFBN53mgRp7uyWb0oj538oyfBZon1pNoWB/b99
	y2HnKvu0E5m1wJTIPP97mmHLYvAdUytHd91lgPCDF6j56SMnmTWdF1Y3aEMOLEr/5MBXc9CLFVD
	UBSwVt78x6J0t4eLxIPXlgw4GlU9t+s3VmAOd6txgIUNAgoLEZPUiulPoFtDtBYiwBce1YYreZ7
	9FmAPvVbdWXIFjD+uq72kwx2+VZGf
X-Google-Smtp-Source: AGHT+IF48VQh9DG8vVnIIJIFW2/gfFQBVofNPlg6Nu2o+qvbGc42nX+p+3lzniXif1vJnYON1IhApw==
X-Received: by 2002:a05:600c:314f:b0:43d:53c:1ad6 with SMTP id 5b1f17b1804b1-43ec14d8015mr19152055e9.26.1743678005954;
        Thu, 03 Apr 2025 04:00:05 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Shawn Anastasio <sanastasio@raptorengineering.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH] xen/link: Drop .fixup section from non-x86 architectures
Date: Thu,  3 Apr 2025 12:00:03 +0100
Message-Id: <20250403110003.1461522-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 fixup section is only used by x86, and we're working to remove it there
too.  Logic in the fixup section is unconnected to it's origin site, and
interferes with backtraces/etc.

Remove the section from the architectures which don't use it.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Michal Orzel <michal.orzel@amd.com>
CC: Jan Beulich <jbeulich@suse.com>
CC: Julien Grall <julien@xen.org>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
CC: Bertrand Marquis <bertrand.marquis@arm.com>
CC: Shawn Anastasio <sanastasio@raptorengineering.com>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/arch/arm/xen.lds.S   | 1 -
 xen/arch/ppc/xen.lds.S   | 1 -
 xen/arch/riscv/xen.lds.S | 1 -
 3 files changed, 3 deletions(-)

diff --git a/xen/arch/arm/xen.lds.S b/xen/arch/arm/xen.lds.S
index 86a6e311cfc5..ae1903246f69 100644
--- a/xen/arch/arm/xen.lds.S
+++ b/xen/arch/arm/xen.lds.S
@@ -45,7 +45,6 @@ SECTIONS
        *(.text.*)
 #endif
 
-       *(.fixup)
        *(.gnu.warning)
        _etext = .;             /* End of text section */
   } :text = 0x9090
diff --git a/xen/arch/ppc/xen.lds.S b/xen/arch/ppc/xen.lds.S
index 3f2a7676ec96..1366e2819eed 100644
--- a/xen/arch/ppc/xen.lds.S
+++ b/xen/arch/ppc/xen.lds.S
@@ -38,7 +38,6 @@ SECTIONS
         *(.text.*)
 #endif
 
-        *(.fixup)
         *(.gnu.warning)
         . = ALIGN(POINTER_ALIGN);
         _etext = .;             /* End of text section */
diff --git a/xen/arch/riscv/xen.lds.S b/xen/arch/riscv/xen.lds.S
index dffc6ae11913..818aa4366949 100644
--- a/xen/arch/riscv/xen.lds.S
+++ b/xen/arch/riscv/xen.lds.S
@@ -33,7 +33,6 @@ SECTIONS
         *(.text.ident)
         _ident_end = .;
 
-        *(.fixup)
         *(.gnu.warning)
         . = ALIGN(POINTER_ALIGN);
         _etext = .;             /* End of text section */

base-commit: ae5fd39be98c6219a302045aec7c25bdafa81781
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Apr 03 11:06:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 11:06:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.936473.1337704 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0IPJ-0005Cq-N7; Thu, 03 Apr 2025 11:06:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 936473.1337704; Thu, 03 Apr 2025 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 1u0IPJ-0005Cj-Jf; Thu, 03 Apr 2025 11:06:49 +0000
Received: by outflank-mailman (input) for mailman id 936473;
 Thu, 03 Apr 2025 11:06: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=X4pi=WV=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1u0IPI-0005Cd-QN
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 11:06:48 +0000
Received: from fout-a5-smtp.messagingengine.com
 (fout-a5-smtp.messagingengine.com [103.168.172.148])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id bb2a0096-107b-11f0-9eaa-5ba50f476ded;
 Thu, 03 Apr 2025 13:06:46 +0200 (CEST)
Received: from phl-compute-12.internal (phl-compute-12.phl.internal
 [10.202.2.52])
 by mailfout.phl.internal (Postfix) with ESMTP id 2F9DA1380212;
 Thu,  3 Apr 2025 07:06:45 -0400 (EDT)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-12.internal (MEProxy); Thu, 03 Apr 2025 07:06:45 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 3 Apr 2025 07:06:44 -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: bb2a0096-107b-11f0-9eaa-5ba50f476ded
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=fm2;
	 t=1743678405; x=1743764805; bh=hcPUC6lyGcOBvjwSAqWIcFQ6cB01R6VL
	ke5S96EY+H0=; b=LKucaZ8vQoWMtuHVE3tJNQedV8TnKv8dNrcZFfAcAvk2lLD3
	zjr2SsD1xNrtF/OykYFOmjInQh/FvbkFQThyQSC0UUkDC4t4YkmBxTpZE+8cNNgO
	krJPmQmjvTmT4X4fO2PVy8EJbc2eQF30p+e+0x+XKd8R3jKRMbp2l5iasVlWZKtj
	iL476iqq5h4MNM7Hhspujyuw+Y1g/nUj2ahI6c7F+n+r7Y0zhlNW5doyVz2jGn/s
	j8lRhtLIjk6VAv3iFsNpIEaxOi8yxa6/MX40J5xdUwmc0nQ2Vf9H4Bukk6qRtT/P
	L+9PZ8ffJo1yqPe/ikjtgk7nlzYjsRhf79NZeA==
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=
	fm2; t=1743678405; x=1743764805; bh=hcPUC6lyGcOBvjwSAqWIcFQ6cB01
	R6VLke5S96EY+H0=; b=WA4SciCuuXtoKTSXjQ0/Fi3foS/FQkisBNm9dU20+i8F
	eE3/ieo0QchhyRa1kjhZ9StaZDzROQgWS4LeQ6NqBk4/k5Xo0rkaaGs+jfITr8dc
	aRQIevvTPBKQkTcxdSfaAxckrTEa4A0igiLMBGHwJJF98Vp/HDRhHeuyPos2RqMA
	cf05oYCHZ1AdL7IdlLHm/TaRNCE6nMcSjkXUztbYGIU8EtKEnNJqUEQ3JoEc7I3W
	Ji6WWIkhJIeDN0JiI+pUJM7BrCzfIU0g6KsPoSeFzCXd7HUBpo9WM0NNBrvcDUmI
	MZCbh73Q2WZ/JUDUbpQnepQ/B7jycB/Wanhi7xWoGw==
X-ME-Sender: <xms:xGvuZ4qVaiaNJEuRPFl7aH6JIE-O0J3kkU0VytwWvWQUDuOWgi0fEw>
    <xme:xGvuZ-rD6exUdMM6oDQWng4S72iRnWMT1aTHl62tgdNT_LLuOXaNJynA_Eg9wvsou
    YAaS2RVCuNkeg>
X-ME-Received: <xmr:xGvuZ9P-pGSErAfUjtOyegH9BqgV3deh01EMOK022-zsPxDtj1CY5zd3YbKiNv2q1GxTluCmSEOgYLkk_gA1KbGZSRE5TackSRUyw20IUhEevbUezaI>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddukeekfeelucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
    pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
    gvnhhtshculddquddttddmnecujfgurhephffvvefufffkofggtgfgsehtkeertdertdej
    necuhfhrohhmpeforghrvghkucforghrtgiihihkohifshhkihdqifpkrhgvtghkihcuoe
    hmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhmqeenucgg
    tffrrghtthgvrhhnpeelkefhudelteelleelteetveeffeetffekteetjeehlefggeekle
    eghefhtdehvdenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhr
    ohhmpehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhmpd
    hnsggprhgtphhtthhopeefpdhmohguvgepshhmthhpohhuthdprhgtphhtthhopeigvghn
    qdguvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdprhgtphhtthhope
    grnhgurhgvfidrtghoohhpvghrfeestghithhrihigrdgtohhmpdhrtghpthhtohepmhgr
    rhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomh
X-ME-Proxy: <xmx:xGvuZ_59mUAXsy7RIWJZlFJ-dJWxwiqEfvy03fo0uS3B83ogtEbm3A>
    <xmx:xGvuZ36d-A6NrZx3CcvyoQSb3xvXerS-YIDYEDR1daSe8lmEN3D7Aw>
    <xmx:xGvuZ_jeaLIvKPXTSh64dowAO5WlIurtl5AweY0FmuY88hbAQAaISw>
    <xmx:xGvuZx5RNz62-UZoZvKXnWtlaAXzs8HVKEcTL_XLeJPVV1bB1s_moQ>
    <xmx:xWvuZwVMieYau97ZYyoeSOeCbLu3sognyqqiWFcTaGzAbSnH7FWgenRZ>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH v1 00/11] Several CI cleanups and improvements, plus yet another new runner
Date: Thu,  3 Apr 2025 13:04:35 +0200
Message-ID: <cover.59b4d1e66776c1e577aa5dd5460605dc6c240613.1743678257.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.48.1
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Some of those patches are collected from my stubdomain test series, others are
made while getting the new runner working. All of the cleanups can be applied
independently, but most if not all are needed for the final patch adding new
runner.

As usual, besides the patches, somebody need to click on "hal9012" runner in
the relevant projects.

Marek Marczykowski-Górecki (11):
  ci: prevent grub unpacking initramfs
  ci: increase timeout for hw tests
  ci: enable XHCI console in Xen debug build on Alpine
  ci: include domU kernel messages in the console output log
  ci: increase verbosity of starting a domain
  ci: consistently use DOCKER_CMD in makefiles
  ci: wait for the network interface in PCI passthrough tests
  ci: switch test kernel from 6.1.19 to 6.12.21
  ci: adjust resolving network interface into PCI device
  ci: add AMD Zen 4 HW runner
  [DO NOT MERGE] container

 automation/build/Makefile                            |  4 +-
 automation/gitlab-ci/build.yaml                      |  5 +-
 automation/gitlab-ci/test.yaml                       | 58 ++++++++++++-
 automation/scripts/qemu-alpine-x86_64.sh             |  2 +-
 automation/scripts/qemu-smoke-dom0-arm32.sh          |  2 +-
 automation/scripts/qemu-smoke-dom0-arm64.sh          |  2 +-
 automation/scripts/qubes-x86-64.sh                   | 14 +--
 automation/tests-artifacts/Makefile                  |  4 +-
 automation/tests-artifacts/kernel/6.1.19.dockerfile  | 41 +---------
 automation/tests-artifacts/kernel/6.12.21.dockerfile | 43 ++++++++++-
 10 files changed, 119 insertions(+), 56 deletions(-)
 delete mode 100644 automation/tests-artifacts/kernel/6.1.19.dockerfile
 create mode 100644 automation/tests-artifacts/kernel/6.12.21.dockerfile

base-commit: 35910ed65f1d188774ce90ba9898ca33f7a9fe4d
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Thu Apr 03 11:06:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 11:06:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.936475.1337720 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0IPP-0005UH-CO; Thu, 03 Apr 2025 11:06:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 936475.1337720; Thu, 03 Apr 2025 11: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 1u0IPP-0005Tp-48; Thu, 03 Apr 2025 11:06:55 +0000
Received: by outflank-mailman (input) for mailman id 936475;
 Thu, 03 Apr 2025 11: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=X4pi=WV=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1u0IPO-0005Qy-0n
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 11:06:54 +0000
Received: from fhigh-a8-smtp.messagingengine.com
 (fhigh-a8-smtp.messagingengine.com [103.168.172.159])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bd9a8eb9-107b-11f0-9ffb-bf95429c2676;
 Thu, 03 Apr 2025 13:06:50 +0200 (CEST)
Received: from phl-compute-07.internal (phl-compute-07.phl.internal
 [10.202.2.47])
 by mailfhigh.phl.internal (Postfix) with ESMTP id 7AA001140292;
 Thu,  3 Apr 2025 07:06:49 -0400 (EDT)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-07.internal (MEProxy); Thu, 03 Apr 2025 07:06:49 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 3 Apr 2025 07:06:48 -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: bd9a8eb9-107b-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:subject
	:subject:to:to; s=fm2; t=1743678409; x=1743764809; bh=lA5rNoXMFj
	Yd+4VEypprEaANw1GP9/mRcCpOefAjoY8=; b=PbAlQHudWw8iLI/QReiOn313Ra
	TnYL+0BAhDHrdor7ToF35o+oXC2BJzuWgNlnUKLWdUqurxgQYoJxyN0MoN3aSq+O
	ZsiqhbTBda1kVpgxzh0hC8A2TMqi5lM0+WzCNQql751yDIO9twptiDwb2FjHgO1c
	ZDv+cgOxJa4I2pQXOomzdhHVs7rNzAmK4n+lHnj6EQANC8JxDaDzHbclD41dKI4j
	6sLuNBkJbsAxzdJxhuecL1Mn+PQvd1JTidIv3LdFHSaMy3oc5VcPKSv1t0ckEhW1
	LNwxX/yUzudQ7YGr3kFbA6upWx0dRK9pH6GnFfgBV++1fKdIrjUCOSuLqADg==
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=fm2; t=1743678409; x=
	1743764809; bh=lA5rNoXMFjYd+4VEypprEaANw1GP9/mRcCpOefAjoY8=; b=Y
	cwrokVZ7jqto5GogC+j9RgjiBWsxLXdI9lDcV9pT9yqmyRECSFilrWksSZZhUC6Z
	vJ+eFsDonrv5AbIJOmFLQtG27TYdn1VEJffVCwihoHebjsSey631kKbOZRb8X8nM
	+EQpqlj/0XfSTvqH+vGunCljUth2e4vshE7ZjGwm2C1UEYz658Jcj/GMlYvhVnGQ
	3q2PcSzdb5WbTSFmiFq0PSYPRtzGh17SFH/R4mVqlKyXhWOWlN+fNduOR2EWG/1x
	qWfJNHlh4Y9cilPynvB5dnyYqe43EFvOhtL3vlkroOMmBkvWheWtuYBRpwBIlm4i
	cJicx1oH5KCe28jJzmscA==
X-ME-Sender: <xms:yWvuZ2nTtIeo4vLrKsuDK10D2u3nc2DhDGoPJEParF-cen0qDCDQag>
    <xme:yWvuZ911sHivnyhNOxcYCXLiMz_Y4OvTpHO_J-dQZ_rjzZxvYemwlkjjM_RGN-e95
    rWY01n_UiZzkQ>
X-ME-Received: <xmr:yWvuZ0oVIzJ9-gY6oCnyVMzYyFEHgPJOSEnnJNZ668KLDhMdn3xFsR8Craxngb7q-jGMBAQik759mU2GviUezBSHJsYATbmLqe5RixKQG56lO0gSI7g>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddukeekfeelucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
    pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
    gvnhhtshculddquddttddmnecujfgurhephffvvefufffkofgjfhggtgfgsehtkeertder
    tdejnecuhfhrohhmpeforghrvghkucforghrtgiihihkohifshhkihdqifpkrhgvtghkih
    cuoehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhmqeen
    ucggtffrrghtthgvrhhnpefgueduhefgvdefheehudejheefudevueeghfekhfehleegve
    duteeuiedugffgffenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhl
    fhhrohhmpehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtoh
    hmpdhnsggprhgtphhtthhopeehpdhmohguvgepshhmthhpohhuthdprhgtphhtthhopeig
    vghnqdguvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdprhgtphhtth
    hopegrnhgurhgvfidrtghoohhpvghrfeestghithhrihigrdgtohhmpdhrtghpthhtohep
    mhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdprhgtph
    htthhopegtrghrughovgestggrrhguohgvrdgtohhmpdhrtghpthhtohepshhsthgrsggv
    lhhlihhniheskhgvrhhnvghlrdhorhhg
X-ME-Proxy: <xmx:yWvuZ6n4K-_0QIJMGNzTLM1s2MY35DjtersTkSMgZLlHNKwM_iMT7w>
    <xmx:yWvuZ016MF3CLtVxIZKbJTD4FgwqJ2ezbPpYf-SvNnBvANdJVMG5OA>
    <xmx:yWvuZxvdZ0FxEHVfbYM9w8ZL9Q1xM8T3KDMo6YR6hyR9I9XXorh9ww>
    <xmx:yWvuZwX4YNsJSYDVGtZh6_-sWEbSQTLYAlX97_U9zovdLnbYuDjnEg>
    <xmx:yWvuZ6cVruP2Cm731J7pMsjaixPOx2e70WMlcUWSjDGheRaniRlI40TS>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 03/11] ci: enable XHCI console in Xen debug build on Alpine
Date: Thu,  3 Apr 2025 13:04:38 +0200
Message-ID: <8994039fbd8694a984d234b30b1ce727b16844f3.1743678257.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <cover.59b4d1e66776c1e577aa5dd5460605dc6c240613.1743678257.git-series.marmarek@invisiblethingslab.com>
References: <cover.59b4d1e66776c1e577aa5dd5460605dc6c240613.1743678257.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This build is used for hardware tests, and some runners use XHCI console

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
---
 automation/gitlab-ci/build.yaml | 1 +
 1 file changed, 1 insertion(+)

diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
index 2513908b059b..169bebe3c775 100644
--- a/automation/gitlab-ci/build.yaml
+++ b/automation/gitlab-ci/build.yaml
@@ -341,6 +341,7 @@ alpine-3.18-gcc-debug:
       CONFIG_ARGO=y
       CONFIG_UBSAN=y
       CONFIG_UBSAN_FATAL=y
+      CONFIG_XHCI=y
 
 debian-12-x86_64-gcc-debug:
   extends: .gcc-x86-64-build-debug
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Thu Apr 03 11:06:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 11:06:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.936474.1337714 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0IPP-0005SN-0r; Thu, 03 Apr 2025 11:06:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 936474.1337714; Thu, 03 Apr 2025 11: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 1u0IPO-0005SE-US; Thu, 03 Apr 2025 11:06:54 +0000
Received: by outflank-mailman (input) for mailman id 936474;
 Thu, 03 Apr 2025 11:06: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=X4pi=WV=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1u0IPN-0005Qy-Q9
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 11:06:53 +0000
Received: from fhigh-a8-smtp.messagingengine.com
 (fhigh-a8-smtp.messagingengine.com [103.168.172.159])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bcb955e4-107b-11f0-9ffb-bf95429c2676;
 Thu, 03 Apr 2025 13:06:48 +0200 (CEST)
Received: from phl-compute-12.internal (phl-compute-12.phl.internal
 [10.202.2.52])
 by mailfhigh.phl.internal (Postfix) with ESMTP id 05F62114028B;
 Thu,  3 Apr 2025 07:06:48 -0400 (EDT)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-12.internal (MEProxy); Thu, 03 Apr 2025 07:06:48 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 3 Apr 2025 07:06:46 -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: bcb955e4-107b-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:subject
	:subject:to:to; s=fm2; t=1743678408; x=1743764808; bh=rC8r2721qS
	JvlhwPgxIAo1RX9Y0qBL31QSD1MwC1V0w=; b=KIHPBMMoRiuv47uLFhv6Qh5Eqq
	3a81cqTnRut72JOgfHGS2NTAsXCknnI1i0+7s2obhloqtmqzkrM3ecanbPeUsscf
	2G5mSliGENbFXUs3LVp254j5EkkAvRLDC6BapDfDGDXR0betQ7HvqAvvbD0/AU1y
	nfQHFSKJE8I+oGWDUJwreYc+97ZmKThDKbNM31eyEkXXaqWxUKhRZj2hZjaDAe4u
	ioyz8HGh7fYff2POZ4TDe7JelLnKoGp1IELyScubvnnfQ7XTNLhEpQgdaUcujzsx
	Yb8VG5cWD132pGGBCDjMmUJjGyPW1+mI3noCzsZtGO2vUhF2OC//fOtIxVWQ==
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=fm2; t=1743678408; x=
	1743764808; bh=rC8r2721qSJvlhwPgxIAo1RX9Y0qBL31QSD1MwC1V0w=; b=u
	8O0YrckO7WiIQTAekB2PobwoZDwjEFljRymGje+Pgg4FOVsrX0h/D8q/CWGYkXiB
	6ak/mWtT2KkjF1PTVKg4PibIaZnBMGXJQX4Uk21w78TcUUG6IUSKdwFucIPgSBs6
	q/Qc6TxMAFq2j3oqyhp2k+57cAmHDwNR8kSFlW3JWIPni2W53qMqcKAXRv2nTfzA
	MxG56LGqaVtqf0eNpFLgtJ2bh0M8Ha+vvjHTPGmDcB4Jn2/pBTymB3ESP9Pf14zS
	l3V4oZzaSJN6mfKFaQW5CYAUQv5NziR+H9j7dF4LBL4qdXy5xFOEMBqks1We1lYQ
	ZB6dSrFaPNzIVLEfqSfwQ==
X-ME-Sender: <xms:x2vuZ1pJoOQtu1bp51PU_ar0MOx8qBbNMXn5fN457stPaE9JHEOuVw>
    <xme:x2vuZ3ozFE2t_iaOydQ9eaLd7NeCXAr5MZyyZKWw_MWgHNxi2C62_XFuijwNYbOr0
    8A2q7l6H_CDEA>
X-ME-Received: <xmr:x2vuZyPfsS9MmfEPKC277E_8jnnYI-j736ogHmttqjupRLVlXn9Jr6MI5fNEESg3n2lqWOTzKFkdMnkH_hKMUjyD1TDwVOvG_EHe3N0VkIEHMzbgXIA>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddukeekfeelucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
    pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
    gvnhhtshculddquddttddmnecujfgurhephffvvefufffkofgjfhggtgfgsehtkeertder
    tdejnecuhfhrohhmpeforghrvghkucforghrtgiihihkohifshhkihdqifpkrhgvtghkih
    cuoehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhmqeen
    ucggtffrrghtthgvrhhnpefgueduhefgvdefheehudejheefudevueeghfekhfehleegve
    duteeuiedugffgffenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhl
    fhhrohhmpehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtoh
    hmpdhnsggprhgtphhtthhopeehpdhmohguvgepshhmthhpohhuthdprhgtphhtthhopeig
    vghnqdguvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdprhgtphhtth
    hopegrnhgurhgvfidrtghoohhpvghrfeestghithhrihigrdgtohhmpdhrtghpthhtohep
    mhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdprhgtph
    htthhopegtrghrughovgestggrrhguohgvrdgtohhmpdhrtghpthhtohepshhsthgrsggv
    lhhlihhniheskhgvrhhnvghlrdhorhhg
X-ME-Proxy: <xmx:x2vuZw7gXHAGANP8NmtGriSzYuYyQhjPfqnACoO42Fz2zGy_lW726Q>
    <xmx:x2vuZ06-AzbUzANtiNT7XjdXT_mxfCYIPYR092WR7p_oA2Fda4bSkA>
    <xmx:x2vuZ4i3YPE7r7RJc7yApKWiLp1SlfmONO0uX5H7kMIk-sKYKQyTQA>
    <xmx:x2vuZ27mDz_Vc3AhoAfpcewaMR5ZJ0FPLl1XqTq0XERVlfLycZPxBQ>
    <xmx:x2vuZ3ybpn17BkRHoVFeVNd7NBTuKHHXeWn4ZVdLjRtuQHzIX9URaGkO>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 02/11] ci: increase timeout for hw tests
Date: Thu,  3 Apr 2025 13:04:37 +0200
Message-ID: <7578489af5c7df525d4c82231b68bbb7d955d2b4.1743678257.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <cover.59b4d1e66776c1e577aa5dd5460605dc6c240613.1743678257.git-series.marmarek@invisiblethingslab.com>
References: <cover.59b4d1e66776c1e577aa5dd5460605dc6c240613.1743678257.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

It appears as sometimes it takes more time for Xen even start booting,
mostly due to firmware and fetching large boot files by grub. In some
jobs the current timeout is pretty close to the actual time needed, and
sometimes (rarely for now) test fails due to timeout expiring in the
middle of dom0 booting. This will be happening more often if the
initramfs will grow (and with more complex tests).
This has been observed on some dom0pvh-hvm jobs, at least on runners hw3
and hw11.

Increase the timeout by yet another 60s (up to 180s now).

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
---
 automation/scripts/qubes-x86-64.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/automation/scripts/qubes-x86-64.sh b/automation/scripts/qubes-x86-64.sh
index 8e78b7984e98..771c77d6618b 100755
--- a/automation/scripts/qubes-x86-64.sh
+++ b/automation/scripts/qubes-x86-64.sh
@@ -17,7 +17,7 @@ test_variant=$1
 ### defaults
 extra_xen_opts=
 wait_and_wakeup=
-timeout=120
+timeout=180
 domU_type="pvh"
 domU_vif="'bridge=xenbr0',"
 domU_extra_config=
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Thu Apr 03 11:06:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 11:06:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.936476.1337725 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0IPP-0005aw-L7; Thu, 03 Apr 2025 11:06:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 936476.1337725; Thu, 03 Apr 2025 11: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 1u0IPP-0005Zj-Ev; Thu, 03 Apr 2025 11:06:55 +0000
Received: by outflank-mailman (input) for mailman id 936476;
 Thu, 03 Apr 2025 11: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=X4pi=WV=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1u0IPO-0005Qy-7i
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 11:06:54 +0000
Received: from fhigh-a8-smtp.messagingengine.com
 (fhigh-a8-smtp.messagingengine.com [103.168.172.159])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bbec5d1a-107b-11f0-9ffb-bf95429c2676;
 Thu, 03 Apr 2025 13:06:48 +0200 (CEST)
Received: from phl-compute-05.internal (phl-compute-05.phl.internal
 [10.202.2.45])
 by mailfhigh.phl.internal (Postfix) with ESMTP id 993EB1140298;
 Thu,  3 Apr 2025 07:06:46 -0400 (EDT)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-05.internal (MEProxy); Thu, 03 Apr 2025 07:06:46 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 3 Apr 2025 07:06:45 -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: bbec5d1a-107b-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:subject
	:subject:to:to; s=fm2; t=1743678406; x=1743764806; bh=9bkD07TJxB
	+lkrp/+szfLVpVnbr3Myx9P/iU4VGbZ8o=; b=PE4LxbUMkdvoUkp/29DOrAmaCk
	Zf/9PRgRF4cqOMLKQZedLvWbeFUU0TDD7ViKcYdCkyEfD5i/EPQTK0uTdyOX6rqS
	D4pFueJaVfQBwqukq23cA/G35VuUzDcdMxKcEkfIVnw5CG/zMxkHfAmxYJsK8pob
	LPSiGEgtE3r+8YXM4nnm1MkrsFACPJ4FNxLJ5q2ZJKcYcTjS7+xNuwOjHW6XgnGX
	jEia2WXXmuUQus9ET61prStyeUT0DDjT2PxM2J8O+GWSdmkXVykJzopX4cqCnfL6
	hrsNanhZLcWSuvm4pGuQN5Ej4Q79nfgmt4n8m+4dQDP6czPU5ZZKNeeKPrfA==
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=fm2; t=1743678406; x=
	1743764806; bh=9bkD07TJxB+lkrp/+szfLVpVnbr3Myx9P/iU4VGbZ8o=; b=i
	vrun5sL1047s/6u3hdiTXOz5OMfoBUd8G2oQ6u/ljYAIPCOKCr/L0hRoZFLK/hiE
	tR/HheNWYX/TIihlmtmAHfTVmrWrpMdUnOgsCwOhc6Q5atwVEcIG069bFYji+I/v
	LUaiovxi4MLsPNUEvb2hedxxsC78lJhfZcEXd4Dztc68Rn18GEqTmnTQN7lndFc/
	/A+nBYWCxxk0DQ5XIm9HExxww9RqB4hydG1Vmzve/hY6/Wi87gbRs19xGpRGtH0a
	YoQ0OFsZhsEP8fUGpB7gQ66TVq1dj2WLW4K2ELallgwnZvqjagg0qiw9T226Nhvg
	F+cW1kspWiC5zcJgws8sQ==
X-ME-Sender: <xms:xmvuZwk-PpkoPqSJ4V6ayL5HeVixV-gesSuxoaXuP4VvmvtACWlCeg>
    <xme:xmvuZ_2bfnHrw-Xp_PTcDyArmVFHh05wJdJQ4duERQt5Mem4WhW3h551Te_o5-NAe
    jGPwik8Bg1XvA>
X-ME-Received: <xmr:xmvuZ-oQqj2L5hinYsDL2QNsK_QdQIAl_b_wiQCfQE7jwct4PDNpRYxEmJ7OeSMOioaq7SptjOjMfG0Wz7ZOFFOVhC2TgUbUTnGw55sWqUTBlXq5B2I>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddukeekgedtucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
    pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
    gvnhhtshculddquddttddmnecujfgurhephffvvefufffkofgjfhggtgfgsehtkeertder
    tdejnecuhfhrohhmpeforghrvghkucforghrtgiihihkohifshhkihdqifpkrhgvtghkih
    cuoehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhmqeen
    ucggtffrrghtthgvrhhnpefgueduhefgvdefheehudejheefudevueeghfekhfehleegve
    duteeuiedugffgffenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhl
    fhhrohhmpehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtoh
    hmpdhnsggprhgtphhtthhopeehpdhmohguvgepshhmthhpohhuthdprhgtphhtthhopeig
    vghnqdguvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdprhgtphhtth
    hopegrnhgurhgvfidrtghoohhpvghrfeestghithhrihigrdgtohhmpdhrtghpthhtohep
    mhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdprhgtph
    htthhopegtrghrughovgestggrrhguohgvrdgtohhmpdhrtghpthhtohepshhsthgrsggv
    lhhlihhniheskhgvrhhnvghlrdhorhhg
X-ME-Proxy: <xmx:xmvuZ8nbNtVoAT3hKOVxTca6TUPnniucsG1JMMLlaHsrEcNHGnaXFw>
    <xmx:xmvuZ-3uYTmMEEVkYLKIVSz2I37H5yN399p435CcWc8hoHIt3gHT2w>
    <xmx:xmvuZztFvrSvC15kFPnUGC5XQyPvg_onr93JRM4CG78noGBFHRKnsA>
    <xmx:xmvuZ6UNOFajd3jOAv6c32q6EjluanI7W7B8dsuXs6ZWOSFmAqOW7g>
    <xmx:xmvuZ8e-HhNGtSG4GXz3YI2ZyvTpBkhq3xlve2dWAA5ybLTvThtLp7U4>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 01/11] ci: prevent grub unpacking initramfs
Date: Thu,  3 Apr 2025 13:04:36 +0200
Message-ID: <e1d07b26a92a45ed387594dd789453def1ef1eb2.1743678257.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <cover.59b4d1e66776c1e577aa5dd5460605dc6c240613.1743678257.git-series.marmarek@invisiblethingslab.com>
References: <cover.59b4d1e66776c1e577aa5dd5460605dc6c240613.1743678257.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

It fails on larger initramfs (~250MB one) and sometimes even smaller
depending on memory size/memory map, let Linux do it.

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
---
 automation/scripts/qubes-x86-64.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/automation/scripts/qubes-x86-64.sh b/automation/scripts/qubes-x86-64.sh
index f27296445901..8e78b7984e98 100755
--- a/automation/scripts/qubes-x86-64.sh
+++ b/automation/scripts/qubes-x86-64.sh
@@ -248,7 +248,7 @@ CONTROLLER=control@thor.testnet
 echo "
 multiboot2 (http)/gitlab-ci/xen $CONSOLE_OPTS loglvl=all guest_loglvl=all dom0_mem=4G console_timestamps=boot $extra_xen_opts
 module2 (http)/gitlab-ci/vmlinuz console=hvc0 root=/dev/ram0 earlyprintk=xen
-module2 (http)/gitlab-ci/initrd-dom0
+module2 --nounzip (http)/gitlab-ci/initrd-dom0
 " > $TFTP/grub.cfg
 
 echo "#!ipxe
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Thu Apr 03 11:06:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 11:06:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.936477.1337730 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0IPQ-0005iI-1n; Thu, 03 Apr 2025 11:06:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 936477.1337730; Thu, 03 Apr 2025 11: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 1u0IPP-0005fN-QQ; Thu, 03 Apr 2025 11:06:55 +0000
Received: by outflank-mailman (input) for mailman id 936477;
 Thu, 03 Apr 2025 11: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=X4pi=WV=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1u0IPP-0005Qy-0o
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 11:06:55 +0000
Received: from fout-a5-smtp.messagingengine.com
 (fout-a5-smtp.messagingengine.com [103.168.172.148])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id be8a615c-107b-11f0-9ffb-bf95429c2676;
 Thu, 03 Apr 2025 13:06:52 +0200 (CEST)
Received: from phl-compute-01.internal (phl-compute-01.phl.internal
 [10.202.2.41])
 by mailfout.phl.internal (Postfix) with ESMTP id 056C613801CB;
 Thu,  3 Apr 2025 07:06:51 -0400 (EDT)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-01.internal (MEProxy); Thu, 03 Apr 2025 07:06:51 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 3 Apr 2025 07:06:49 -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: be8a615c-107b-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:subject
	:subject:to:to; s=fm2; t=1743678411; x=1743764811; bh=CG3r5e95Ow
	X8jqQD81Gk2i2+rrH9WMNFIvnRfMaYPhM=; b=UkUJYwB6XZ3wti06ChW1j3lX3b
	zaVgy+WhVt6eVzuNHpgIXer3+/f4uiy6O0TtrSQ0GLeANu5bPljHfU0mFu4xN7kP
	dsec6Q11zbUpI/m9CpSgaGlPkBQCgdOep63HDvqaADP/YTEr3QL8y/zvObzWo4UR
	n/uj2gyb+rMNFQrPJUCEj/VR1x9TV/ej3+H0qXEt3I9PycLW+j9s1yiPNW/pPf6D
	IPV6m74JURYINk7L9wMZbACXyv5Df2iOy266deSGeacyyKKsVGpNFTLkLICHyydP
	fNN4PqymoTrfAqbKZXvRMON+4ZD/Nd55jxp1FGPSQBmDe1mPZ5jE8XOn/OzQ==
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=fm2; t=1743678411; x=
	1743764811; bh=CG3r5e95OwX8jqQD81Gk2i2+rrH9WMNFIvnRfMaYPhM=; b=N
	M4QyWUPRGbUMrbwjA/eErPIySIfv+t2RZjcQq5sx0Fw5L7vtc8NIWcA7gKCjDf7p
	PfMhnRyWeJADUSP5Z4la6YZvhiGlPn2G1iOfYGq9MXMXao8Hv12Ltv6hKTvynt0R
	0mCuVefGCQ/B4KPVW/AIjpQ1S8fgRnfg5aZlDILJKCiGvd4PnugWKfTBtNSHIJJW
	bMBptpH+pVO5tfIB14QwMEqgzj9KEL0nY9vXUhhIABVhAMrqq3iOkj8jIVcEIC8/
	j4it7sGgyPOlzXcCNa5M3389TQvNbj6ONoGbX8vfqZJBDCmlFoh5nqz7e5MzCq+M
	oJNgGNkAlRVZP/bg1FZ0A==
X-ME-Sender: <xms:ymvuZxbBiFeoWUdU3LNQIB1Mz_cAJ48sb48TpPbPcMiIOj606DqxeQ>
    <xme:ymvuZ4YW8n54m04vZyB6wz71ixS9VcnwwgW-2cztKHAEcKNzhg2QmF2-cW-75SrXc
    xIAWrDsjweP0g>
X-ME-Received: <xmr:ymvuZz9TOHzeqglbI9WyzM2BLJtlTVSVFCuGNeN0zJK9-7i9ws_HuFS0ZIEx8FWRqTeZkazjz8eeUkS5OBbdNLZLBmj3y1rMquO-yymrlAIDS0LYJq0>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddukeekgedtucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
    pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
    gvnhhtshculddquddttddmnecujfgurhephffvvefufffkofgjfhggtgfgsehtkeertder
    tdejnecuhfhrohhmpeforghrvghkucforghrtgiihihkohifshhkihdqifpkrhgvtghkih
    cuoehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhmqeen
    ucggtffrrghtthgvrhhnpefgueduhefgvdefheehudejheefudevueeghfekhfehleegve
    duteeuiedugffgffenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhl
    fhhrohhmpehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtoh
    hmpdhnsggprhgtphhtthhopeehpdhmohguvgepshhmthhpohhuthdprhgtphhtthhopeig
    vghnqdguvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdprhgtphhtth
    hopegrnhgurhgvfidrtghoohhpvghrfeestghithhrihigrdgtohhmpdhrtghpthhtohep
    mhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdprhgtph
    htthhopegtrghrughovgestggrrhguohgvrdgtohhmpdhrtghpthhtohepshhsthgrsggv
    lhhlihhniheskhgvrhhnvghlrdhorhhg
X-ME-Proxy: <xmx:ymvuZ_p3vSM6EZ-8A35jN_78NLx96J-PpVXv0W4ZHYGlUHCe0TcUgw>
    <xmx:ymvuZ8p1MhQeLntKWHjNMjj0jm4LlAznhOSuxGHLBtAjOuhK1qcp5A>
    <xmx:ymvuZ1Q_bjJZga_-X1fUIF5sJJW8YzKXUAwnfS69Ul7gkN_lQw84QQ>
    <xmx:ymvuZ0oA5DH3x7vCajT0pp4v7b_DAWg8ooBQKef7Qg_kocOod7uJUw>
    <xmx:y2vuZ6gBkeK3yFGM344NM0yyGCjOpIVnXRjUXPxGYUxdIZ7zikPwSjMq>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 04/11] ci: include domU kernel messages in the console output log
Date: Thu,  3 Apr 2025 13:04:39 +0200
Message-ID: <8902a1274707600b1fe38d41d11ac28627f386b7.1743678257.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <cover.59b4d1e66776c1e577aa5dd5460605dc6c240613.1743678257.git-series.marmarek@invisiblethingslab.com>
References: <cover.59b4d1e66776c1e577aa5dd5460605dc6c240613.1743678257.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
---
 automation/scripts/qubes-x86-64.sh | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/automation/scripts/qubes-x86-64.sh b/automation/scripts/qubes-x86-64.sh
index 771c77d6618b..d316c17e0c9f 100755
--- a/automation/scripts/qubes-x86-64.sh
+++ b/automation/scripts/qubes-x86-64.sh
@@ -175,6 +175,8 @@ if [ -n "$domU_check" ]; then
     rm var/run
     echo "#!/bin/sh
 
+echo 8 > /proc/sys/kernel/printk
+
 ${domU_check}
 " > etc/local.d/xen.start
     chmod +x etc/local.d/xen.start
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Thu Apr 03 11:06:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 11:06:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.936478.1337749 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0IPR-0006B6-B0; Thu, 03 Apr 2025 11:06:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 936478.1337749; Thu, 03 Apr 2025 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 1u0IPR-0006AI-2j; Thu, 03 Apr 2025 11:06:57 +0000
Received: by outflank-mailman (input) for mailman id 936478;
 Thu, 03 Apr 2025 11:06: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=X4pi=WV=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1u0IPQ-0005Qy-14
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 11:06:56 +0000
Received: from fout-a5-smtp.messagingengine.com
 (fout-a5-smtp.messagingengine.com [103.168.172.148])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bf660edc-107b-11f0-9ffb-bf95429c2676;
 Thu, 03 Apr 2025 13:06:53 +0200 (CEST)
Received: from phl-compute-10.internal (phl-compute-10.phl.internal
 [10.202.2.50])
 by mailfout.phl.internal (Postfix) with ESMTP id 7CFE41380220;
 Thu,  3 Apr 2025 07:06:52 -0400 (EDT)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-10.internal (MEProxy); Thu, 03 Apr 2025 07:06:52 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 3 Apr 2025 07:06:51 -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: bf660edc-107b-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:subject
	:subject:to:to; s=fm2; t=1743678412; x=1743764812; bh=IvTNgoR7x1
	b63sTxPgnBsbrRitkmOkMzfKrMdO24XxM=; b=CWJLHfEOVvh1l+I4vNp8B4/vgU
	axOvsxq0HNeL4Yy3Lo1Z4yJzX5oNzrmJmIN7Rf1QRnJEsCl+GHN2gfM5vId2z6j1
	ea2Zsy3Qhhp/ih+ZMVvAsTTwvRF7LILXrThs4AhPIQZgOkw7YT0Vtj3GDFvFVtg5
	ZDM3Ra9mhs1GmOmuzjpJPSPLvzPCdnOW9vB4aCTKKviIn5rTOmhgoPk77IvbcOLr
	PrXOXauizsVvi4/EwQKjfeIO9S4MprUxcsf2+AJWG+H3JDSv1BEcC+3Nx3rGCRkL
	dfp3uNenl4B9AeiukjAtxYPZsFmUVn4zugUffGJtkenWPYvAo9iVtlG49uQg==
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=fm2; t=1743678412; x=
	1743764812; bh=IvTNgoR7x1b63sTxPgnBsbrRitkmOkMzfKrMdO24XxM=; b=e
	Xe9mO/mEK3l1v17URng9trLdjioi6FjXjDUje85bK7gAWVcfSrhtm5l6Rpc1cE4p
	52O4uTWmFvikuUfpl5N3NnInM/GRvJW575WwxbxnrOkSQBNxMDG+KxndqQF7QMwr
	D8wAtpk8W9HBUaumWDcH/j9JWUsnKiVPACxfbHdf6FJDLInI0kepCv/pliBs362m
	egHUpZTvVgXVn3n3CizmUaT6VLv64yF4/l/2XgOU56W9SKhV+kxLfnmZjmBK6aAl
	0r+blR4ciR6MPBQOmlZhXPhYlkfE5Ehw9ORBZSOKVj8h9FD3GTO4HsGveK+5balb
	Zzh+N5NxAt5m92Ac3vZzg==
X-ME-Sender: <xms:zGvuZzsOFi0-cmHHPJeIkg10MHXQXYpK3WXM9FwQu0uT2_Cp8XGVFg>
    <xme:zGvuZ0cth5Old3HVSfDMCyQzEM57KdS8cTCGDYWJzL2MiaHf2uP2JY46ZruWkxU4j
    1Vxk1D51PYvNA>
X-ME-Received: <xmr:zGvuZ2xpEIrS626xxDlmZfmt3BP0RsbYYTSVaYwct1rQqQtyVy3zVYGdLbYXLjLo4wa5Ds7vlBO5jr-KoQ9e4pdV6MxtJl_1VZC5UXGZOZzBvQ5uqgQ>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddukeekgedtucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
    pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
    gvnhhtshculddquddttddmnecujfgurhephffvvefufffkofgjfhggtgfgsehtkeertder
    tdejnecuhfhrohhmpeforghrvghkucforghrtgiihihkohifshhkihdqifpkrhgvtghkih
    cuoehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhmqeen
    ucggtffrrghtthgvrhhnpefgueduhefgvdefheehudejheefudevueeghfekhfehleegve
    duteeuiedugffgffenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhl
    fhhrohhmpehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtoh
    hmpdhnsggprhgtphhtthhopeehpdhmohguvgepshhmthhpohhuthdprhgtphhtthhopeig
    vghnqdguvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdprhgtphhtth
    hopegrnhgurhgvfidrtghoohhpvghrfeestghithhrihigrdgtohhmpdhrtghpthhtohep
    mhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdprhgtph
    htthhopegtrghrughovgestggrrhguohgvrdgtohhmpdhrtghpthhtohepshhsthgrsggv
    lhhlihhniheskhgvrhhnvghlrdhorhhg
X-ME-Proxy: <xmx:zGvuZyNXJ6TFVQ3GmME72BEgxQByeaZiIIEZ9o4y98z5Su_M6IqMwg>
    <xmx:zGvuZz9QkScd-qNtAOYaiCn0CWlGTWHSarPU0XcSkfFPq9lt0Q5Kag>
    <xmx:zGvuZyVh8oPb-8yZh3BJoB1rtiwKemh14d2kwoXkawUvJxe_npJn4A>
    <xmx:zGvuZ0csNAhGYtfe8SSmGiD_PT1PTtVm5fEh3Ol6wfQuF4aZItC2pQ>
    <xmx:zGvuZwHqQIMMyw5nMzs8132FHs7Mqj-p2p-To0IQNvloo9ESNckMidEE>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 05/11] ci: increase verbosity of starting a domain
Date: Thu,  3 Apr 2025 13:04:40 +0200
Message-ID: <12d51df19d6111c2f61910e9851595aecceb752b.1743678257.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <cover.59b4d1e66776c1e577aa5dd5460605dc6c240613.1743678257.git-series.marmarek@invisiblethingslab.com>
References: <cover.59b4d1e66776c1e577aa5dd5460605dc6c240613.1743678257.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

And start collecting qemu log earlier, so it isn't lost in case of a
timeout during domain startup.

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
---
 automation/scripts/qemu-alpine-x86_64.sh    | 2 +-
 automation/scripts/qemu-smoke-dom0-arm32.sh | 2 +-
 automation/scripts/qemu-smoke-dom0-arm64.sh | 2 +-
 automation/scripts/qubes-x86-64.sh          | 4 ++--
 4 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/automation/scripts/qemu-alpine-x86_64.sh b/automation/scripts/qemu-alpine-x86_64.sh
index 1ff689b577e3..17e2141d625e 100755
--- a/automation/scripts/qemu-alpine-x86_64.sh
+++ b/automation/scripts/qemu-alpine-x86_64.sh
@@ -56,7 +56,7 @@ bash /etc/init.d/xencommons start
 
 xl list
 
-xl create -c /root/test.cfg
+xl -vvv create -c /root/test.cfg
 
 " > etc/local.d/xen.start
 chmod +x etc/local.d/xen.start
diff --git a/automation/scripts/qemu-smoke-dom0-arm32.sh b/automation/scripts/qemu-smoke-dom0-arm32.sh
index e1cd83880928..0c60a66e25e3 100755
--- a/automation/scripts/qemu-smoke-dom0-arm32.sh
+++ b/automation/scripts/qemu-smoke-dom0-arm32.sh
@@ -21,7 +21,7 @@ echo "#!/bin/bash
 
 xl list
 
-xl create -c /root/test.cfg
+xl -vvv create -c /root/test.cfg
 
 " > ./root/xen.start
 echo "bash /root/xen.start" >> ./etc/init.d/xen-watchdog
diff --git a/automation/scripts/qemu-smoke-dom0-arm64.sh b/automation/scripts/qemu-smoke-dom0-arm64.sh
index 4d22a124df11..8774a8701232 100755
--- a/automation/scripts/qemu-smoke-dom0-arm64.sh
+++ b/automation/scripts/qemu-smoke-dom0-arm64.sh
@@ -52,7 +52,7 @@ bash /etc/init.d/xencommons start
 
 xl list
 
-xl create -c /root/test.cfg
+xl -vvv create -c /root/test.cfg
 
 " > etc/local.d/xen.start
 chmod +x etc/local.d/xen.start
diff --git a/automation/scripts/qubes-x86-64.sh b/automation/scripts/qubes-x86-64.sh
index d316c17e0c9f..822b81d186a7 100755
--- a/automation/scripts/qubes-x86-64.sh
+++ b/automation/scripts/qubes-x86-64.sh
@@ -122,7 +122,6 @@ echo \"${passed}\"
 "
 
         dom0_check="
-tail -F /var/log/xen/qemu-dm-domU.log &
 until grep -q \"^domU Welcome to Alpine Linux\" /var/log/xen/console/guest-domU.log; do
     sleep 1
 done
@@ -222,7 +221,8 @@ if [ -n "$domU_check" ]; then
     echo "
 # get domU console content into test log
 tail -F /var/log/xen/console/guest-domU.log 2>/dev/null | sed -e \"s/^/(domU) /\" &
-xl create /etc/xen/domU.cfg
+tail -F /var/log/xen/qemu-dm-domU.log 2>/dev/null | sed -e \"s/^/(qemu-dm) /\" &
+xl -vvv create /etc/xen/domU.cfg
 ${dom0_check}
 " >> etc/local.d/xen.start
 else
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Thu Apr 03 11:06:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 11:06:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.936479.1337763 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0IPS-0006fP-Vr; Thu, 03 Apr 2025 11:06:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 936479.1337763; Thu, 03 Apr 2025 11: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 1u0IPS-0006ei-Pu; Thu, 03 Apr 2025 11:06:58 +0000
Received: by outflank-mailman (input) for mailman id 936479;
 Thu, 03 Apr 2025 11:06: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=X4pi=WV=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1u0IPQ-0005Cd-Sq
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 11:06:56 +0000
Received: from fhigh-a8-smtp.messagingengine.com
 (fhigh-a8-smtp.messagingengine.com [103.168.172.159])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c1070267-107b-11f0-9eaa-5ba50f476ded;
 Thu, 03 Apr 2025 13:06:56 +0200 (CEST)
Received: from phl-compute-12.internal (phl-compute-12.phl.internal
 [10.202.2.52])
 by mailfhigh.phl.internal (Postfix) with ESMTP id 34356114028B;
 Thu,  3 Apr 2025 07:06:55 -0400 (EDT)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-12.internal (MEProxy); Thu, 03 Apr 2025 07:06:55 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 3 Apr 2025 07:06:54 -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: c1070267-107b-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:subject
	:subject:to:to; s=fm2; t=1743678415; x=1743764815; bh=JB+Gi2GOjf
	nWi6se5uw8dD30frUlt29FZmXlnJ+NZkg=; b=YkQpgWNsuwEyBTgmsyCxEGOuNZ
	wX9wnq5xyyl8KJMnwdJJO0hMPtaKHY+Q1hULmt3Id8wLjbBZbaL3bgoWhj3UijXB
	IOEBRP7j1em9ac+kMloKd6FYQbr99ZJvxvVa2WIPh9+Cxh2NMbLLs/RJ4tzpaIHk
	WOfL0Xuy25ridiQ4CUqf82WF/6m2K9o/n6jiJYJitKuyNyKVq9bROXbCWzpZj/GS
	48gx2/s2M8kC5mve1mzev5K3BcP3S3y4z9+HvWPWMFa4qk85PdBdf//6T60jwxma
	Y7c/vu6fbE+1nnG0Wgyt77McyVyNBC0e9oHtxuOAtY+OONLha6reLkSbhB+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=fm2; t=1743678415; x=
	1743764815; bh=JB+Gi2GOjfnWi6se5uw8dD30frUlt29FZmXlnJ+NZkg=; b=I
	BWGI52jRLSwPEtGzpduI5S8breXTIc+X3tCz2lJNoMaHEvbZcbobsH/WdtF1wTcl
	Kp0IZasiWuBr1gcCDiKoeUD78Pln5jUR1lROg+bL9nM4/dSxN75pHsSZWBRXJ2oH
	uAKotFVzSt89RIFaiJ2OPkATOFvQoX9HhKdIojV4/xFOL1u1e38gNU6Mjcqe2z/l
	96mM/X9IHWKcUxr50Mh1ncjm1m6Uqbb5gxqGixFFdjBxlnJkB7PYJhOw7N0aYgik
	HH6Vo9I9GdqGoyIP71UpIUAcIycKcKzipMxX0CuEABIVBX+n05KGMi/OtPb2EikH
	qsGblNwydro0vupg8f7zg==
X-ME-Sender: <xms:z2vuZ9Uzrls8izq27WFVdO9WN6QmGsNRTRbvEHKR9bPprNHJEvV1kw>
    <xme:z2vuZ9mLD1J5LsYH81HT7unlx1iog_Fwz4lxQ6mH0rmzR6k0rh3pUoZ9q-LJPO_XL
    oy6b5Nl4rTLKw>
X-ME-Received: <xmr:z2vuZ5bZr_ngX92YddCjltEPy0yfbxQljEB-gz5s5fjxHJfq8mGJ4JrmFTdilbX0nbwp8xmuPpyvNT6xUa3CRq1r8KiXN3c1ppwVbIJbvOyaig168ck>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddukeekfeelucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
    pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
    gvnhhtshculddquddttddmnecujfgurhephffvvefufffkofgjfhggtgfgsehtkeertder
    tdejnecuhfhrohhmpeforghrvghkucforghrtgiihihkohifshhkihdqifpkrhgvtghkih
    cuoehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhmqeen
    ucggtffrrghtthgvrhhnpefgueduhefgvdefheehudejheefudevueeghfekhfehleegve
    duteeuiedugffgffenucevlhhushhtvghrufhiiigvpedunecurfgrrhgrmhepmhgrihhl
    fhhrohhmpehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtoh
    hmpdhnsggprhgtphhtthhopeehpdhmohguvgepshhmthhpohhuthdprhgtphhtthhopeig
    vghnqdguvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdprhgtphhtth
    hopegrnhgurhgvfidrtghoohhpvghrfeestghithhrihigrdgtohhmpdhrtghpthhtohep
    mhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdprhgtph
    htthhopegtrghrughovgestggrrhguohgvrdgtohhmpdhrtghpthhtohepshhsthgrsggv
    lhhlihhniheskhgvrhhnvghlrdhorhhg
X-ME-Proxy: <xmx:z2vuZwXVhzwGvv6wk9c7PjiqNR5gcAIEpk0NAnGxFKSzZO9X4883Aw>
    <xmx:z2vuZ3n1F8KrxhmQJdtfClTcE2PndxZKYDVL_vFwA4jiRx7EL0OY0g>
    <xmx:z2vuZ9fWMOWY-Qyyk3D09xDpPKQUvPYpkEBtmfrcRJkvhUztXtHEiQ>
    <xmx:z2vuZxE1omlh5zaRygy5T59TDJ-Yavupif_CeD3pq5f3a1B17O1tiQ>
    <xmx:z2vuZ0P9y0JVFLPSDI7WjjLOxjJgWYlSjuqkvA20hlQ1oFbvove6iAnm>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 07/11] ci: wait for the network interface in PCI passthrough tests
Date: Thu,  3 Apr 2025 13:04:42 +0200
Message-ID: <726b40daa70f376f928c559b061e002c8cc2005f.1743678257.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <cover.59b4d1e66776c1e577aa5dd5460605dc6c240613.1743678257.git-series.marmarek@invisiblethingslab.com>
References: <cover.59b4d1e66776c1e577aa5dd5460605dc6c240613.1743678257.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The network driver initializes asynchronously, and it may not be ready
yet by the time the startup script is called. This is especially the
case for USB network adapter (where the PCI device is the USB
controller) in the upcoming runner.

Don't bother about separate timeout - test timeout will cover this part
too.

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
---
 automation/scripts/qubes-x86-64.sh | 1 +
 1 file changed, 1 insertion(+)

diff --git a/automation/scripts/qubes-x86-64.sh b/automation/scripts/qubes-x86-64.sh
index 822b81d186a7..6d2c170d1ee1 100755
--- a/automation/scripts/qubes-x86-64.sh
+++ b/automation/scripts/qubes-x86-64.sh
@@ -104,6 +104,7 @@ on_reboot = "destroy"
         domU_check="
 set -x -e
 interface=eth0
+while ! [ -e \"/sys/class/net/\$interface\" ]; do sleep 1; done
 ip link set \"\$interface\" up
 timeout 30s udhcpc -i \"\$interface\"
 pingip=\$(ip -o -4 r show default|cut -f 3 -d ' ')
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Thu Apr 03 11:06:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 11:06:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.936480.1337768 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0IPT-0006jP-Ap; Thu, 03 Apr 2025 11:06:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 936480.1337768; Thu, 03 Apr 2025 11:06:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0IPT-0006iC-55; Thu, 03 Apr 2025 11:06:59 +0000
Received: by outflank-mailman (input) for mailman id 936480;
 Thu, 03 Apr 2025 11:06: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=X4pi=WV=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1u0IPR-0005Qy-14
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 11:06:57 +0000
Received: from fout-a5-smtp.messagingengine.com
 (fout-a5-smtp.messagingengine.com [103.168.172.148])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c0348d85-107b-11f0-9ffb-bf95429c2676;
 Thu, 03 Apr 2025 13:06:54 +0200 (CEST)
Received: from phl-compute-12.internal (phl-compute-12.phl.internal
 [10.202.2.52])
 by mailfout.phl.internal (Postfix) with ESMTP id D35A713801AD;
 Thu,  3 Apr 2025 07:06:53 -0400 (EDT)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-12.internal (MEProxy); Thu, 03 Apr 2025 07:06:53 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 3 Apr 2025 07:06:52 -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: c0348d85-107b-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:subject
	:subject:to:to; s=fm2; t=1743678413; x=1743764813; bh=zB8SYUejsj
	xVpp7vu0rfC/8v4/UKO9Q5zziXn7Nf5Cc=; b=RJRJZshtwQQB4i75TEbi5B8aZ3
	u0T072LSXpLC59VFNreScrCU6S1SXCTq9RPRaoRPlSqxrJbcFLU/H9TmL+Ug7VRX
	UXovDafvcKgRbLVxAY7Mhu0itgKPDtVXiTirNVvUw2tCd9Xib8YVatjeeMI25CKj
	3mWgEjUl8Oi/oXBEyycxcIY/ohgXOHJ26M9YKksfD/cBnSQeSVGvvdNuHzZp/1sL
	DAA5p63o7LuTNshGP5iq70r14ydJIFxjG7z9P+iTBNs49u6L0r5vu2WlFDOlPQ8Z
	aTSMfMWlHl4FYGWS/7PUYB8fKNp2YgenaLYYwYCHZUiwV/ibG6fa/qto5DTg==
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=fm2; t=1743678413; x=
	1743764813; bh=zB8SYUejsjxVpp7vu0rfC/8v4/UKO9Q5zziXn7Nf5Cc=; b=A
	S59ilIQdFO7NifDOjIq79NXxSOgG4Lhd/2N7ZMesAc+sL9Wx9GIFiyYUSf/u3tF8
	mrrDH2d3nr7Reci4h6boKM9CcL+8hkhiBcvObVLmp0ovYIthuSM5eqdrSpBFhIAs
	HVONa7K6R9fArfaeQtMsKxUc0WCr5+MIMv8RRGTBHTaOLVSwoG3C4f6+ZOVLac0A
	VKSpmfa11BEAnQk1I6qFgecWJAzYIjbjTT6AK/8Ck16vl0IdF+JJpQrUcAs/xhK7
	mt+uf/xeQ0nr6vQMnYmwaFbR2gUrn7RudFPbI9m3x6/1/xT+JO85q1Katv15UKx4
	b1PlgWtxRkQNQ76DISS2Q==
X-ME-Sender: <xms:zWvuZybvegUU5rw7A7dtqpcLsxqazL4tg6dSvEEdhWITjSTxIKgHzA>
    <xme:zWvuZ1YTMnsqTvXreomNkGfg3FGXv4GFfIah29XD6F5QAqtDg9vc5xMtcuEPL5JnI
    6hIt4Qrdtfwqw>
X-ME-Received: <xmr:zWvuZ8_XWdAJLo17DcHL9rmguE2sPg_9CwHBpyxQJsUljgg1yQ1c94tlWhcLFcUNOqG5H3SjxCyFIA-dZqDRRl1m9zHT_w-zKkowIcBTNLhM6Gu_eo4>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddukeekfeelucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
    pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
    gvnhhtshculddquddttddmnecujfgurhephffvvefufffkofgjfhggtgfgsehtkeertder
    tdejnecuhfhrohhmpeforghrvghkucforghrtgiihihkohifshhkihdqifpkrhgvtghkih
    cuoehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhmqeen
    ucggtffrrghtthgvrhhnpefgueduhefgvdefheehudejheefudevueeghfekhfehleegve
    duteeuiedugffgffenucevlhhushhtvghrufhiiigvpedunecurfgrrhgrmhepmhgrihhl
    fhhrohhmpehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtoh
    hmpdhnsggprhgtphhtthhopeehpdhmohguvgepshhmthhpohhuthdprhgtphhtthhopeig
    vghnqdguvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdprhgtphhtth
    hopegrnhgurhgvfidrtghoohhpvghrfeestghithhrihigrdgtohhmpdhrtghpthhtohep
    mhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdprhgtph
    htthhopegtrghrughovgestggrrhguohgvrdgtohhmpdhrtghpthhtohepshhsthgrsggv
    lhhlihhniheskhgvrhhnvghlrdhorhhg
X-ME-Proxy: <xmx:zWvuZ0pJ3Cegnol_Bklbdfv_5v4S-I9NqH8_raefBdQlWd0bdpn9dA>
    <xmx:zWvuZ9p0H9vO4_EvprhuluD4Iv_slrKgOC2jlh9x2I3anW5tByGGwQ>
    <xmx:zWvuZyQ5P9UjY8BeGNLmDAYa2sjvK1RvfFYolTyOMq4XIwob0Ygt5w>
    <xmx:zWvuZ9o9D_HTFhLsf18SnDA6fMftDnsaur9rAswkzD-Jxej2BLIadg>
    <xmx:zWvuZ_hJn0iJeNRzK7_2lkIABNgeBltJ25ECLifm_fPwQTAnLScaq1_9>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 06/11] ci: consistently use DOCKER_CMD in makefiles
Date: Thu,  3 Apr 2025 13:04:41 +0200
Message-ID: <72551291927c75a97657890df15138579f1543ac.1743678257.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <cover.59b4d1e66776c1e577aa5dd5460605dc6c240613.1743678257.git-series.marmarek@invisiblethingslab.com>
References: <cover.59b4d1e66776c1e577aa5dd5460605dc6c240613.1743678257.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This allows rebuilding containers using podman too.

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
---
 automation/build/Makefile           | 4 ++--
 automation/tests-artifacts/Makefile | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/automation/build/Makefile b/automation/build/Makefile
index 4df43b040777..fedf7524dacd 100644
--- a/automation/build/Makefile
+++ b/automation/build/Makefile
@@ -31,8 +31,8 @@ clean:
 define CLEAN_RULE
 .PHONY: clean-$(1)
 clean-$(1):
-	if [ -n "$$$$(docker image ls -q $(REGISTRY)/$(subst /,:,$(1)))" ]; then \
-		docker image rm $(REGISTRY)/$(subst /,:,$(1)); \
+	if [ -n "$$$$($(DOCKER_CMD) image ls -q $(REGISTRY)/$(subst /,:,$(1)))" ]; then \
+		$(DOCKER_CMD) image rm $(REGISTRY)/$(subst /,:,$(1)); \
 	fi
 
 endef
diff --git a/automation/tests-artifacts/Makefile b/automation/tests-artifacts/Makefile
index d055cd696bed..80a60a94f3f7 100644
--- a/automation/tests-artifacts/Makefile
+++ b/automation/tests-artifacts/Makefile
@@ -10,9 +10,9 @@ help:
 	@echo "To push container builds, set the env var PUSH"
 
 %: %.dockerfile ## Builds containers
-	docker build --pull -t $(REGISTRY)/$(@D):$(@F) -f $< $(<D)
+	$(DOCKER_CMD) build --pull -t $(REGISTRY)/$(@D):$(@F) -f $< $(<D)
 	@if [ ! -z $${PUSH+x} ]; then \
-		docker push $(REGISTRY)/$(@D):$(@F); \
+		$(DOCKER_CMD) push $(REGISTRY)/$(@D):$(@F); \
 	fi
 
 .PHONY: all
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Thu Apr 03 11:07:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 11:07:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.936484.1337784 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0IPV-0007Hx-Ny; Thu, 03 Apr 2025 11:07:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 936484.1337784; Thu, 03 Apr 2025 11: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 1u0IPV-0007HY-IU; Thu, 03 Apr 2025 11:07:01 +0000
Received: by outflank-mailman (input) for mailman id 936484;
 Thu, 03 Apr 2025 11:07: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=X4pi=WV=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1u0IPU-0005Qy-BR
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 11:07:00 +0000
Received: from fout-a5-smtp.messagingengine.com
 (fout-a5-smtp.messagingengine.com [103.168.172.148])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c2b67f71-107b-11f0-9ffb-bf95429c2676;
 Thu, 03 Apr 2025 13:06:58 +0200 (CEST)
Received: from phl-compute-11.internal (phl-compute-11.phl.internal
 [10.202.2.51])
 by mailfout.phl.internal (Postfix) with ESMTP id 1223B13801AD;
 Thu,  3 Apr 2025 07:06:58 -0400 (EDT)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-11.internal (MEProxy); Thu, 03 Apr 2025 07:06:58 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 3 Apr 2025 07:06:56 -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: c2b67f71-107b-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:subject
	:subject:to:to; s=fm2; t=1743678418; x=1743764818; bh=KrMIkNcsW4
	7Spr5nyS0BqxsgMbL82nPdur/bMGMqzD4=; b=oimuvXJ+tZDKFivKoPdqtW/P34
	x2ik28wIjpVi5YJd1GdNSBsXkMOfgIDzWdCHPVJFlTdlbsVxfcmbsaf8MuBv5I8v
	ZjyZHeg4viCnYSo8C3KpAJHovdppzgy052di0nVqzY6HH61z+NTgDj3UQGhD9wbr
	RWrnyLUldRcz9cP1bo8CDU/Iw0q8pnF4LNLBXeNTGuC0bHwk8ywaRXR3SdkQfY/+
	7lHqSPHULdtdyyBSBhXwiyoo3FX71qQNH4jZr2gXibfML4kq28s84o5MuTlZuAkR
	eE8Yvf+IWTggfqGBggmnGHWHXpAlGWEoHb27N3dJ1GRQtf4JHtES8Ix+vIGQ==
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=fm2; t=1743678418; x=
	1743764818; bh=KrMIkNcsW47Spr5nyS0BqxsgMbL82nPdur/bMGMqzD4=; b=d
	u+CAcQkErFKKQxxFBB/ZMyPyVp0JrfzG8aa+zY6LEZKHibG8hqAFce4ggsBfaQCi
	UAn9w7CIyjTxOCSyrtuBfSNzteP+8cooKD9nASGWL+42xVNeesyt7/WuGlMEZwBP
	oAzKJs7UyyUL9EOAQNmY7e2HoR42+PCwO3hWn3R100mKp7CMeApMGJabe7Flljeo
	sbjDfRNMeK0MDyaAOYHl0e4JXymH2YkdbGF4AKMFFgh4reN9HC4VikIa1S+dF/sg
	zZ2bPSLSIBhxqthseU3N2nJSn43zaaY9NJmwAhuKVMSIGpcq8I2VSV8hJZh5rEb+
	eOjWKR8BEoZy7Z9zvQPCA==
X-ME-Sender: <xms:0WvuZ8_8svdEPTMi8DQ17yUp1LYj3LgFlfvtTfyUbYWJELHJcLfjAQ>
    <xme:0WvuZ0u6IR_YcSUfZ0DSkuNuz96u8kB3s5xBA-iMmH6ZQtXnAvq2C4OM17oCeuNWB
    jDIANxLlIvDlQ>
X-ME-Received: <xmr:0WvuZyAMQE3J1g-87tBo46rlOlRu_tbYQdhIzAA2Rak6NMDCBzv7tBMzDjbSe8rMObCVkZOga2JS8SfmL-7ECl_-8xzkZyl-pI8dfbzztUcgQ9-yAAw>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddukeekfeelucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
    pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
    gvnhhtshculddquddttddmnecujfgurhephffvvefufffkofgjfhggtgfgsehtkeertder
    tdejnecuhfhrohhmpeforghrvghkucforghrtgiihihkohifshhkihdqifpkrhgvtghkih
    cuoehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhmqeen
    ucggtffrrghtthgvrhhnpefgueduhefgvdefheehudejheefudevueeghfekhfehleegve
    duteeuiedugffgffenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhl
    fhhrohhmpehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtoh
    hmpdhnsggprhgtphhtthhopeehpdhmohguvgepshhmthhpohhuthdprhgtphhtthhopeig
    vghnqdguvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdprhgtphhtth
    hopegrnhgurhgvfidrtghoohhpvghrfeestghithhrihigrdgtohhmpdhrtghpthhtohep
    mhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdprhgtph
    htthhopegtrghrughovgestggrrhguohgvrdgtohhmpdhrtghpthhtohepshhsthgrsggv
    lhhlihhniheskhgvrhhnvghlrdhorhhg
X-ME-Proxy: <xmx:0WvuZ8dVjaEo9lVpv6FkhFV9aIUPF0MdE_M51u7z0Cs5YnzXEbSuvA>
    <xmx:0WvuZxMU9qWDrLzbLmFvYYR1-iuV2lWSt3MVM2IpOhg1s3JQn93kQg>
    <xmx:0WvuZ2k6Ojzo2whvXTTSVJYgJXpKtGOX2M74yXOvGteffV8DRkzPrQ>
    <xmx:0WvuZzvGrk6phQ7aCPjEfaWRoZ5z5mwFS86tpQDxBfr53CesPFP0VQ>
    <xmx:0mvuZ2Vt4t1zwjz1sOLhbgG2_bmjD1JvzON5cCwf1VK4q861yN13F3mk>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 09/11] ci: adjust resolving network interface into PCI device
Date: Thu,  3 Apr 2025 13:04:44 +0200
Message-ID: <bc4788cfc6217be3b900e4ab4c019eb3b7e34f0a.1743678257.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <cover.59b4d1e66776c1e577aa5dd5460605dc6c240613.1743678257.git-series.marmarek@invisiblethingslab.com>
References: <cover.59b4d1e66776c1e577aa5dd5460605dc6c240613.1743678257.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Change how PCI device lookup is done to handle also USB devices, in
which case get the USB controller. Instead of taking basename of the
'device' symlink, resolve the full path (example:
/sys/devices/pci0000:00/0000:00:09.0/usb4/4-7/4-7:1.0) and take the
first part after pci0000:00. Theoretically it could be a bridge, but VM
has flat PCI topology.

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
---
 automation/scripts/qubes-x86-64.sh | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/automation/scripts/qubes-x86-64.sh b/automation/scripts/qubes-x86-64.sh
index 6d2c170d1ee1..dc8013750f5f 100755
--- a/automation/scripts/qubes-x86-64.sh
+++ b/automation/scripts/qubes-x86-64.sh
@@ -110,7 +110,8 @@ timeout 30s udhcpc -i \"\$interface\"
 pingip=\$(ip -o -4 r show default|cut -f 3 -d ' ')
 ping -c 10 \"\$pingip\"
 echo domU started
-pcidevice=\$(basename \$(readlink /sys/class/net/\$interface/device))
+pcidevice=\$(realpath /sys/class/net/\$interface/device |
+             sed 's#.*pci0000:00/\\([^/]*\\).*#\\1#')
 lspci -vs \$pcidevice
 "
         if [ -n "$PCIDEV_INTR" ]; then
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Thu Apr 03 11:07:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 11:07:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.936488.1337793 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0IPX-0007ZH-4p; Thu, 03 Apr 2025 11:07:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 936488.1337793; Thu, 03 Apr 2025 11:07: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 1u0IPW-0007YL-UR; Thu, 03 Apr 2025 11:07:02 +0000
Received: by outflank-mailman (input) for mailman id 936488;
 Thu, 03 Apr 2025 11:07: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=X4pi=WV=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1u0IPV-0005Cd-At
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 11:07:01 +0000
Received: from fout-a5-smtp.messagingengine.com
 (fout-a5-smtp.messagingengine.com [103.168.172.148])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c37a004d-107b-11f0-9eaa-5ba50f476ded;
 Thu, 03 Apr 2025 13:07:00 +0200 (CEST)
Received: from phl-compute-12.internal (phl-compute-12.phl.internal
 [10.202.2.52])
 by mailfout.phl.internal (Postfix) with ESMTP id 58C6C1380212;
 Thu,  3 Apr 2025 07:06:59 -0400 (EDT)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-12.internal (MEProxy); Thu, 03 Apr 2025 07:06:59 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 3 Apr 2025 07:06:58 -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: c37a004d-107b-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:subject
	:subject:to:to; s=fm2; t=1743678419; x=1743764819; bh=eDRMDWc9wx
	viWDrrMjlcr8Np1k6ZW48yzc8tizk3d4M=; b=mFEpgL+4tkxMM84m3+oT/cfigH
	58bAiU08K/GDUK+UoQiOLVWC29+ZiSxAysQDFPESM1w4EdGmwxVfKOVtyxEyRs5D
	3lQ+T26/tWmnPbi8CwSWNP5k8AsvgzGh75P+mIqCNu0WMYESXBYlT1IqUnP9QYd8
	4SlUYc+yub+k7KOUq4B0UvJ6c9+m4K8HLgvxi9cOp6/kNm8q2DKJyNwXRZLaWc/y
	jhYIfntgI2DZsMEj+AKY6tlaPjfrz7Ghd/p2zLUTsygCVZRLL5x7KXLc6AFBOMEJ
	A4M0vY9DRoLuC1uY+9HwMQ0iZp82gLwf6noLw7G2/MzgH9fylKtRszN+JKbA==
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=fm2; t=1743678419; x=
	1743764819; bh=eDRMDWc9wxviWDrrMjlcr8Np1k6ZW48yzc8tizk3d4M=; b=J
	R5sXnLOPhL30a4k2cqBl5CY6nCFJNATgwIMU0kq63W0pjv66sG0FxkyC5ZoUD2UV
	yYzT6qG1O9TF6mDcgyXDCORVB226CQGCVejfq7xvijyESriJGVaRi8Zm9Ke8vhuT
	BJxpJ8Y+PlGwNHokp6XY5Cmou6+fkShxO/gszJigce4aIh7Mpze1I0KljZsbZ2HZ
	p7OM/xuheGLNsAZTB528YDNwzJLv6nMSsi14Z/gEW8wzxTMt/efTF3YvCIvZfjlK
	sVuSZP2qeCp8o3OoqLeGLbnZ47zCJ74c30LVkwBDnICLAOXlgYEDqf2m0f0qHvJf
	uuD53twkM0zgyVl5qnRjA==
X-ME-Sender: <xms:02vuZ0sIMaM7XK7xVP-XLB7YUDO3fSYprN2waFXo19ywH_orRBrt3w>
    <xme:02vuZxcGboC6dhpxLOUI_gNfW1czqR6ZY_8kRGaU-2OslWwDDxqIxhGMyDPPCE9NX
    bxfh1t_eudowQ>
X-ME-Received: <xmr:02vuZ_yZ5Q5GlfOXwva6ziUBMOBAD2ydILFt8FFoFl5gnGL0MM13LCbv2OeUmCmL5wva-PaxCaY5E7bT69yO61hoRS4y2O_nvetS5EeR7gTpH4aElrM>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddukeekfeelucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
    pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
    gvnhhtshculddquddttddmnecujfgurhephffvvefufffkofgjfhggtgfgsehtkeertder
    tdejnecuhfhrohhmpeforghrvghkucforghrtgiihihkohifshhkihdqifpkrhgvtghkih
    cuoehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhmqeen
    ucggtffrrghtthgvrhhnpeffiedtgeevffetledvgefhhfevgffhfeekleehueejjeegvd
    dvgfffjeeutddvleenucffohhmrghinhepkhgvrhhnvghlrdhorhhgnecuvehluhhsthgv
    rhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghksehinh
    hvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdpnhgspghrtghpthhtohephedpmhho
    uggvpehsmhhtphhouhhtpdhrtghpthhtohepgigvnhdquggvvhgvlheslhhishhtshdrgi
    gvnhhprhhojhgvtghtrdhorhhgpdhrtghpthhtoheprghnughrvgifrdgtohhophgvrhef
    segtihhtrhhigidrtghomhdprhgtphhtthhopehmrghrmhgrrhgvkhesihhnvhhishhisg
    hlvghthhhinhhgshhlrggsrdgtohhmpdhrtghpthhtoheptggrrhguohgvsegtrghrugho
    vgdrtghomhdprhgtphhtthhopehsshhtrggsvghllhhinhhisehkvghrnhgvlhdrohhrgh
X-ME-Proxy: <xmx:02vuZ3NkTmGFy3nvOhOIbdq9os49l3kXYVrWvXlC9Jb-_gQV9NDGdg>
    <xmx:02vuZ0_b52znNBfQl96T8QJvta0wSDmKqoBg7VkfE1qLxjxpC1FfxA>
    <xmx:02vuZ_X2e91qxfIi-Kdw43atS1g0J1dPbdp_3j81ScFWDDH7ZAscfA>
    <xmx:02vuZ9fVIUDYobDiYml1P2XWtVUlvllqxxWA3MXHCHXyQO-3cpnlQA>
    <xmx:02vuZ1Gu7INgb68rd0aAKya_TnyOrizUA1CbkwSHI1-fsHbjUwpK1eii>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 10/11] ci: add AMD Zen 4 HW runner
Date: Thu,  3 Apr 2025 13:04:45 +0200
Message-ID: <5d80b0abf5979f5238781099a22a418b744e3315.1743678257.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <cover.59b4d1e66776c1e577aa5dd5460605dc6c240613.1743678257.git-series.marmarek@invisiblethingslab.com>
References: <cover.59b4d1e66776c1e577aa5dd5460605dc6c240613.1743678257.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This is AMD Ryzen 5 7640U in Framework Laptop AMD.
It has several things different than the other runners.
First of all, the console is using XHCI debug capability.
And then, this system doesn't have normal wired ethernet. But is has one
on USB, and this one is used for booting. For this, enable
CONFIG_USB_RTL8152 in the Linux build.

Include some basic tests, plus PCI passthrough.

This machine doesn't support S3. S0ix pretends to be working with
Qubes's dom0 (kernel + userspace), but it hangs on suspend with Alpine
used in test. But even when it doesn't hang, it doesn't really reach
deep sleep, so skip this test for now here.

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
---
Requires containers rebuild, especially tests-artifacts/kernel/6.12.21.

Do not apply yet, until issues found by those tests are fixed. That
would be at least third issue found using this system, so lets have it
in CI.
---
 automation/gitlab-ci/test.yaml                       | 56 +++++++++++++-
 automation/tests-artifacts/kernel/6.12.21.dockerfile |  2 +-
 2 files changed, 58 insertions(+)

diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
index a13dd040bd26..feb2dd10ab30 100644
--- a/automation/gitlab-ci/test.yaml
+++ b/automation/gitlab-ci/test.yaml
@@ -188,6 +188,16 @@
   tags:
     - qubes-hw11
 
+.zen4-x86-64:
+  extends: .adl-x86-64
+  variables:
+    PCIDEV: "c3:00.4"
+    PCIDEV_INTR: "MSI-X"
+    CONSOLE_OPTS: "console=xhci dbgp=xhci@pcic1:00.3,share=yes"
+    SUT_ADDR: test-12.testnet
+  tags:
+    - qubes-hw12
+
 # Test jobs
 build-each-commit-gcc:
   extends: .test-jobs-common
@@ -479,6 +489,52 @@ zen3p-tools-tests-pvh-x86-64-gcc-debug:
     - *x86-64-test-needs
     - alpine-3.18-gcc-debug
 
+zen4-smoke-x86-64-gcc-debug:
+  extends: .zen4-x86-64
+  script:
+    - ./automation/scripts/qubes-x86-64.sh 2>&1 | tee ${LOGFILE}
+  needs:
+    - *x86-64-test-needs
+    - alpine-3.18-gcc-debug
+
+zen4-smoke-x86-64-dom0pvh gcc-debug:
+  extends: .zen4-x86-64
+  script:
+    - ./automation/scripts/qubes-x86-64.sh dom0pvh 2>&1 | tee ${LOGFILE}
+  needs:
+    - *x86-64-test-needs
+    - alpine-3.18-gcc-debug
+
+zen4-pci-hvm-x86-64-gcc-debug:
+  extends: .zen4-x86-64
+  script:
+    - ./automation/scripts/qubes-x86-64.sh pci-hvm 2>&1 | tee ${LOGFILE}
+  needs:
+    - *x86-64-test-needs
+    - alpine-3.18-gcc-debug
+
+zen4-tools-tests-pv-x86-64-gcc-debug:
+  extends: .zen4-x86-64
+  script:
+    - ./automation/scripts/qubes-x86-64.sh tools-tests-pv 2>&1 | tee ${LOGFILE}
+  artifacts:
+    reports:
+      junit: tests-junit.xml
+  needs:
+    - *x86-64-test-needs
+    - alpine-3.18-gcc-debug
+
+zen4-tools-tests-pvh-x86-64-gcc-debug:
+  extends: .zen4-x86-64
+  script:
+    - ./automation/scripts/qubes-x86-64.sh tools-tests-pvh 2>&1 | tee ${LOGFILE}
+  artifacts:
+    reports:
+      junit: tests-junit.xml
+  needs:
+    - *x86-64-test-needs
+    - alpine-3.18-gcc-debug
+
 qemu-smoke-dom0-arm64-gcc:
   extends: .qemu-arm64
   script:
diff --git a/automation/tests-artifacts/kernel/6.12.21.dockerfile b/automation/tests-artifacts/kernel/6.12.21.dockerfile
index d7d34031cab5..4e0a68ec61eb 100644
--- a/automation/tests-artifacts/kernel/6.12.21.dockerfile
+++ b/automation/tests-artifacts/kernel/6.12.21.dockerfile
@@ -19,6 +19,7 @@ RUN apt-get update && \
         flex \
         bison \
         libelf-dev \
+        libssl-dev \
         && \
     apt-get autoremove -y && \
     apt-get clean && \
@@ -33,6 +34,7 @@ RUN curl -fsSLO https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-"$LINUX_VERSI
     scripts/config --enable BRIDGE && \
     scripts/config --enable IGC && \
     scripts/config --enable TUN && \
+    scripts/config --enable USB_RTL8152 && \
     cp .config .config.orig && \
     cat .config.orig | grep XEN | grep =m |sed 's/=m/=y/g' >> .config && \
     make -j$(nproc) bzImage && \
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Thu Apr 03 11:10:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 11:10:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.936555.1337805 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0IT5-0003u9-W9; Thu, 03 Apr 2025 11:10:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 936555.1337805; Thu, 03 Apr 2025 11:10: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 1u0IT5-0003u2-Rl; Thu, 03 Apr 2025 11:10:43 +0000
Received: by outflank-mailman (input) for mailman id 936555;
 Thu, 03 Apr 2025 11:10: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=X4pi=WV=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1u0IPY-0005Qy-Fw
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 11:07:04 +0000
Received: from fout-a5-smtp.messagingengine.com
 (fout-a5-smtp.messagingengine.com [103.168.172.148])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c4609f32-107b-11f0-9ffb-bf95429c2676;
 Thu, 03 Apr 2025 13:07:01 +0200 (CEST)
Received: from phl-compute-11.internal (phl-compute-11.phl.internal
 [10.202.2.51])
 by mailfout.phl.internal (Postfix) with ESMTP id C96F513801AD;
 Thu,  3 Apr 2025 07:07:00 -0400 (EDT)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-11.internal (MEProxy); Thu, 03 Apr 2025 07:07:00 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 3 Apr 2025 07:06:59 -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: c4609f32-107b-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	: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=1743678420; x=1743764820; bh=WvayeI8/G07ya1OZLTzdC
	zIa1mP6LNpSD3wkb/NtbkU=; b=ApojOqlDmd/kN31tyd4yc2IX6Id6P5LpJeHw8
	/jsmyqrBAIf/tfQAhPahSoZjYPSQXEZb9/etX08LehguPm9DfwBLCy0pRCr643+E
	0v3gtL5MFYWYKJivqzV5KXM1rHm/1iuNoSLc8KheUblr/Av8Pz8xbVd/x/bR9gqq
	ikwEU+YIQT6naazTBNpwqSC6brvlzeZsmljKXqDxWOzbuZSGYgC2CG/3UGsIBjgx
	RTorLDIA3Etco/sNs4X+wZnzSVcgYF2430vjWXcUVwk9fI7rKB1Qfn4kvugMzsyq
	y+7/13sj3bIi3M3PuOy7gyNDtphFg+d5vvhmsxd27cPFdD9fw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-transfer-encoding
	: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=fm2; t=1743678420; x=1743764820; bh=W
	vayeI8/G07ya1OZLTzdCzIa1mP6LNpSD3wkb/NtbkU=; b=glbA+Bmf3Q3G+mDF7
	htwVBLyQZjTux/xq4oZCkxyRF18XtOiC9Q+hWqBlpNf+xbDnngsjOmEXK+FV/A8Z
	39W/STy0ozsn6rocn5ZgCi1lAHZg8v3wKpv3g0ZVdnN2Jmqds3uOS57BHXqb0bDd
	SYZzUUaYMmUzMwjIYjN4n4CEMj0wX/klD2yv/rkCx98U0YdQPSjqkRthgLr6Y2Co
	rkOAjqojPoIN7tAmG8RO/e5vXDqlHDDHC1Fus0/S2cu1XQDZFK/2QOzZGnuTpZDf
	YPfzc8zGdVfa5KivOAdF1mip4fwKPRBllCX+Vtu7IxdCzc6cSDx2FnI3usrVn/tz
	WQAsA==
X-ME-Sender: <xms:1GvuZ4x_lkbIp835M1dNPWMsf0lbFACekkKko3CMp0_SkYF8HpCauw>
    <xme:1GvuZ8QysonmKp6Ci5y677KnLk-dZLlJ_mr4c8fCYqtu-CCDBSBIkkrGA2BcPsuqg
    4MgvHIe22uFMg>
X-ME-Received: <xmr:1GvuZ6UNjHb99B1JZnXr7OvKVFW1ASICbPQsNnHcqTkNr5Flm-oygLLpj6biKHCIwjkcM6SZ4u3o7HUmFb1bHCZWb8QWioMHWN886EH8OmmLPYJirOE>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddukeekfeelucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
    pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
    gvnhhtshculddquddttddmnecujfgurhephffvvefufffkofgjfhgggfestdekredtredt
    jeenucfhrhhomhepofgrrhgvkhcuofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuc
    eomhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecu
    ggftrfgrthhtvghrnhepueethefgieehheeftdeuleduhffgieelueejhffggfeiieevte
    fhfeffffeftdehnecuffhomhgrihhnpehgihhtlhgrsgdrtghomhenucevlhhushhtvghr
    ufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhnvh
    hishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhnsggprhgtphhtthhopeehpdhmohgu
    vgepshhmthhpohhuthdprhgtphhtthhopeigvghnqdguvghvvghlsehlihhsthhsrdigvg
    hnphhrohhjvggtthdrohhrghdprhgtphhtthhopegrnhgurhgvfidrtghoohhpvghrfees
    tghithhrihigrdgtohhmpdhrtghpthhtohepmhgrrhhmrghrvghksehinhhvihhsihgslh
    gvthhhihhnghhslhgrsgdrtghomhdprhgtphhtthhopegtrghrughovgestggrrhguohgv
    rdgtohhmpdhrtghpthhtohepshhsthgrsggvlhhlihhniheskhgvrhhnvghlrdhorhhg
X-ME-Proxy: <xmx:1GvuZ2h54zzysrkk6Yxl4jqStt7L8utZEPNIiU2nxhhw2wI7ncpedQ>
    <xmx:1GvuZ6DlEaQtj3yZanhoFhm7k0rI3S6nNXnzVvd1oT01hAaBX-PxCg>
    <xmx:1GvuZ3IhU-A5tm1tQO0DYTKVnsymt8l3EaEcqj06gQj7W4jLSlYbfA>
    <xmx:1GvuZxA7J1e_R1d47YlZL9CupzN1ryRGQzAldhTZMWpcg30i979-KQ>
    <xmx:1GvuZ7aEiRKwRcgYLMgYZEEJQZbRb6zWMG-Sph-z71Cu-HfQ40npPOls>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 11/11] [DO NOT MERGE] container
Date: Thu,  3 Apr 2025 13:04:46 +0200
Message-ID: <dc5fc82931b918a3d77571f7df538aba9fa17605.1743678257.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <cover.59b4d1e66776c1e577aa5dd5460605dc6c240613.1743678257.git-series.marmarek@invisiblethingslab.com>
References: <cover.59b4d1e66776c1e577aa5dd5460605dc6c240613.1743678257.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Switch to my container repo for rebuilt kernel
---
 automation/gitlab-ci/build.yaml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
index d41f27fc94bf..ac7aca141010 100644
--- a/automation/gitlab-ci/build.yaml
+++ b/automation/gitlab-ci/build.yaml
@@ -312,7 +312,7 @@ qemu-system-aarch64-6.0.0-arm32-export:
 
 kernel-6.12.21-export:
   extends: .test-jobs-artifact-common
-  image: registry.gitlab.com/xen-project/xen/tests-artifacts/kernel:6.12.21
+  image: registry.gitlab.com/xen-project/people/marmarek/xen/tests-artifacts/kernel:6.12.21
   script:
     - mkdir binaries && cp /bzImage binaries/bzImage
   artifacts:
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Thu Apr 03 11:25:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 11:25:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.936624.1337814 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0Ih0-00005j-5I; Thu, 03 Apr 2025 11:25:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 936624.1337814; Thu, 03 Apr 2025 11: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 1u0Ih0-00005c-2g; Thu, 03 Apr 2025 11:25:06 +0000
Received: by outflank-mailman (input) for mailman id 936624;
 Thu, 03 Apr 2025 11:25: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=lWYu=WV=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u0Igy-00005V-Ir
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 11:25:04 +0000
Received: from mail-wr1-x433.google.com (mail-wr1-x433.google.com
 [2a00:1450:4864:20::433])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4956e003-107e-11f0-9eaa-5ba50f476ded;
 Thu, 03 Apr 2025 13:25:03 +0200 (CEST)
Received: by mail-wr1-x433.google.com with SMTP id
 ffacd0b85a97d-3995ff6b066so424548f8f.3
 for <xen-devel@lists.xenproject.org>; Thu, 03 Apr 2025 04:25:03 -0700 (PDT)
Received: from [10.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-43ec364ce6esm15468715e9.30.2025.04.03.04.25.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 03 Apr 2025 04:25: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: 4956e003-107e-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743679503; x=1744284303; 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=hx59JCo0LwfdC32DVga3JPUiYnfn4tMcbLWyzRyISnA=;
        b=dTXSb0rNg76x9DLpbbn4+dqLiRtI72wuULxvrO7doZHmy739AEFcgvV4RTEVhPpg8y
         9ZIqui/teQJWLvLGWL7yt/T5Zd/46MTgawNqZ98gpYz1DYJHX0z3SIX379QGXqqsyVBW
         Mw74g3glUxZaGVkF6BtjdCEZw3x2SYC7OBdfj2OYDMDd1I/L2HbUucCxuAp5eegBzPc4
         2ouKB5nSXXVRzKbVhYDcvZyMzjJduQfXVvAk4s2QnROh9TxB9Oet5U9VHDLWlwUkevM7
         b5gN3unUDeZbfah9VurmwXNkQfK9dupzL0y0x0g4Hdtc4bP1L56nnbUU8AHUP8VD8jOM
         OQEQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743679503; x=1744284303;
        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=hx59JCo0LwfdC32DVga3JPUiYnfn4tMcbLWyzRyISnA=;
        b=FQAE/FLaT9/a4Y+3IEilS5EYX2ANGpFkyuCB1eqbbRjQ+mzJhA1apJnLwT8hX0/sTW
         BU2Ct7Z9Iel/h24RffR+5IyLjNq4UDeuYQ9rXAr7O2oKfeHZoefd6tfs7Dk1wEGrLOMR
         vxFV60Jltg1ECM/UHIIVJt3WvaOjyGTf2Ggc9+4gaXHPsQR+JJB/KGu3P6BGpdoMqVqK
         biS+ID/Jqk5FuGlThegL39ifNUZcfbqZ4kLBz9K4UgwaUmC3qVb4Q2zyHeZpehN+lehe
         Viy3VDcvAkw0NBEmX3Z70krKik08VWV+KEXKGSmP7hRcfaSYeOLj41/0Ti0xjzysabia
         qnJQ==
X-Gm-Message-State: AOJu0YyzKf17EuhmadAe6noZ/qu5bAH4WP9j3g9p54kVBUZuIOr8dLNf
	nuOGEKv9x31kDLx0L74s7y56VrElmeiK/momuKZZPH14orRAedzT5a05+SyaF7mpTPSIdTkspD4
	=
X-Gm-Gg: ASbGncuusLn1Q9F4WXrav1h1+/xBHvdbeC1rIfSNANgEG96/NfpNhbh0dGEJy5cPDaF
	8paGFWj0DK9pWm8LXREJQvhPvEBODN0NwJFvBCcNVOnGEDE1upe1qT8+izoLvF66anYvcNmIYc2
	OSltEJqaNomeSrb7TPO7ESWChSoDRCuyHN+fyQS6tBXRZZldjN9dGqnUuoYV0O4QGVqIgF5/8mB
	moAQguZw/HOnDcfq1PHpOlqpgbdlTJw148vNiy4OM1syqfUayBOjbyzxWXgRrp7PJCLOmkM+KPO
	Y6alD6VIQpLKU8JVdfrRxILK+Ewd0aKHD+e5sSuapYdfNoYo+pLvpv9xB7rBxCdB6cY3XhIj8uJ
	JT+taiCvI5R9LqJebc4J3RMNbGbILrAdL9rp400uo
X-Google-Smtp-Source: AGHT+IHUmqg7NAYc4XFHXhX+tyP5SgBETXrzu2ZG8Z3CFGWPLs7OXRU5fM4DDvLkUClUy5+lOQYM6g==
X-Received: by 2002:a05:6000:420a:b0:38f:4d40:358 with SMTP id ffacd0b85a97d-39c2f8c787fmr2080108f8f.9.1743679502620;
        Thu, 03 Apr 2025 04:25:02 -0700 (PDT)
Message-ID: <e14bbf31-24cf-4b82-9b2e-a473ad16d008@suse.com>
Date: Thu, 3 Apr 2025 13:25:00 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH] time: drop cast from NOW()
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

It gives the wrong impression of there being a type change, when
get_s_time() really returns s_time_t itself (kind of naturally given its
name).

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

--- unstable.orig/xen/include/xen/time.h	2024-11-21 21:12:47.000000000 +0100
+++ unstable/xen/include/xen/time.h	2025-04-03 13:17:59.784804154 +0200
@@ -53,7 +53,7 @@ struct tm gmtime(unsigned long t);
 struct tm wallclock_time(uint64_t *ns);
 
 #define SYSTEM_TIME_HZ  1000000000ULL
-#define NOW()           ((s_time_t)get_s_time())
+#define NOW()           get_s_time()
 #define DAYS(_d)        SECONDS((_d) * 86400ULL)
 #define SECONDS(_s)     ((s_time_t)((_s)  * 1000000000ULL))
 #define MILLISECS(_ms)  ((s_time_t)((_ms) * 1000000ULL))


From xen-devel-bounces@lists.xenproject.org Thu Apr 03 11:26:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 11:26:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.936635.1337823 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0Ii3-0000cP-FO; Thu, 03 Apr 2025 11:26:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 936635.1337823; Thu, 03 Apr 2025 11:26: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 1u0Ii3-0000cI-C6; Thu, 03 Apr 2025 11:26:11 +0000
Received: by outflank-mailman (input) for mailman id 936635;
 Thu, 03 Apr 2025 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=JbNy=WV=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u0Ii3-0000cB-0U
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 11:26:11 +0000
Received: from mail-wm1-x334.google.com (mail-wm1-x334.google.com
 [2a00:1450:4864:20::334])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 71512916-107e-11f0-9eaa-5ba50f476ded;
 Thu, 03 Apr 2025 13:26:10 +0200 (CEST)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-43cec5cd73bso4093925e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 03 Apr 2025 04:26:10 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43ea8d16d35sm57505485e9.0.2025.04.03.04.26.08
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 03 Apr 2025 04:26: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: 71512916-107e-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1743679570; x=1744284370; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=iBrHNkWoU3ZZbH3T0ZM+qxY1/3nVB4MF8Xos+HBI8rI=;
        b=IO91cUeh4zqk1RPRPq2uvhGgBNzmS55OjD0iR6NH0FnYWvOUe70gQA/pamU1U2rjQs
         IqrH4zqrzjbIhSMdtdXbrrYQRafbWDuBST2XwL3KBv2oagJ8jFSZ3qk7V1cxRRu76IxA
         kNcaokqFM9F7CA9iXnLqUWXSRUqulMovvVMgY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743679570; x=1744284370;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=iBrHNkWoU3ZZbH3T0ZM+qxY1/3nVB4MF8Xos+HBI8rI=;
        b=QcaeW7JYfdc0xug6o8XSkUt9YPPCWWPiQRMPK+DafL7Du7Gojmpyao0EDtZiVrAD9A
         3Y7lsMru0IPV8uHApHRZ/gMESCkYMQwhNBQ5q/FkYLFT7HVIdq758/Pb1czIfRRXrskC
         MKBHEPpCaOo+yNGYfPOnMX8gTOyefGe/oCNpQDtioujhdjrKaQBqh4Fzm0Z7N/xIQSt7
         vCMPCDUwFXKrG83t1EQoVlXWQ90XI3wi9MmYSLoze38M3ih6trMhGQlXOT/NtHQBUxSa
         eAND4InjK34shlNNWBc6QAWBdgAmt61BIHDiZpCo2Zm/x1XJxkR5cWgzl/S8PG/IW01l
         7Eyg==
X-Forwarded-Encrypted: i=1; AJvYcCXqnc5NXL3I/EvyLpeyiDQ6xUrSk6Eor9t7gH/OeTlOxCxggRakT9PMXMLH4ySUaWcWdxdXdxt5sxs=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyNukR0o/FLcRzJxz1nwkdd3HQ+rSqJtNtmSV/fSDtD9bvADo7y
	Lm3MMcOK4VWhxUdtj/OcYmNGZ1OoX7BiQbNUVPOpgkW2vUwAT1ClzOyN4tjK7co=
X-Gm-Gg: ASbGncsd+YxmE0fGc85lf7+pHjJbS2vu61SQNbvEC2xXG+r8guQzG4MW9Pq026kR05Y
	7OgCaJwrXvh3Wd8SCzIwcHDjcun6MPeikbhNAhxxgtkBdUHro1HQOtVcn5ST+2eXY8ISvYvElDq
	jSGZTaraze0FG+3Uvsyb6YyBfYdd8At84WwIgb7Sor36mOBR9qXfNU8T9JqYCw19zkyD37AZeUr
	bmIwBQ8Fd1e5yynsQJnDmRQEo1RCTywsyvn3GsbmZcCfmhyDt9bonRAa1KTjRrV0DYx1FT/556s
	kDpIlG7xWTI0pNXPP0HvYNZauZU9OsQeRzj5rmqJozWjSQCosMmVYHjOUlRIKSLaBQuk4UL46s5
	L5VYOlzQM2F/295ZAI25/
X-Google-Smtp-Source: AGHT+IEKpmebTPscJZbYsdnm0wFFYi9AXYi57sZ5ogUayL4xv2t+HVU68rzCBaHlmkr2jbAlJCqtNg==
X-Received: by 2002:a05:600c:4514:b0:43d:209:21fd with SMTP id 5b1f17b1804b1-43eb5c96d6emr53688875e9.30.1743679569625;
        Thu, 03 Apr 2025 04:26:09 -0700 (PDT)
Message-ID: <c5ef5d60-3149-4f8f-b48b-f04300962bc4@citrix.com>
Date: Thu, 3 Apr 2025 12:26:07 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] time: drop cast from NOW()
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>, Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <e14bbf31-24cf-4b82-9b2e-a473ad16d008@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: <e14bbf31-24cf-4b82-9b2e-a473ad16d008@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 03/04/2025 12:25 pm, Jan Beulich wrote:
> It gives the wrong impression of there being a type change, when
> get_s_time() really returns s_time_t itself (kind of naturally given its
> name).
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Thu Apr 03 11:29:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 11:29:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.936646.1337834 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0Il6-0001D5-Sj; Thu, 03 Apr 2025 11:29:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 936646.1337834; Thu, 03 Apr 2025 11:29:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0Il6-0001Cy-Pi; Thu, 03 Apr 2025 11:29:20 +0000
Received: by outflank-mailman (input) for mailman id 936646;
 Thu, 03 Apr 2025 11:29: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=lWYu=WV=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u0Il5-0001Cq-TR
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 11:29:19 +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 e1d52477-107e-11f0-9eaa-5ba50f476ded;
 Thu, 03 Apr 2025 13:29:19 +0200 (CEST)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-43cf257158fso4820225e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 03 Apr 2025 04:29:19 -0700 (PDT)
Received: from [10.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-39c301b8ae1sm1577366f8f.51.2025.04.03.04.29.17
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 03 Apr 2025 04:29:18 -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: e1d52477-107e-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743679758; x=1744284558; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=F1hgtLHeUx0/BP7kMGb1rHCPAsT4+st2ctrCwWoIE24=;
        b=QlbPrgATGLG/r71ZN0XDhjxaJ9KUzmEKHYa//CabgwL7V+v4WGPujbFMtwT9JXNC4R
         xOR5edtRz/QJMNZ6OSvP8jiqHq7kmxYqur922KL+Igg3NVYpq4aK7LJRn/Dwd7gPEMG5
         6MTWu1GOLyTd+g4fHxtCpPoAmZBEIJ45sYMYj4ummKUHrK2vw6e44YSMjjCN0yVhXwdH
         QTRPWlW/kI9Xz9JmIc+CJLY+PpKIO+sYedj2DuPwYVDwrZKqkLVi2zQtCc4G5UKHQSAL
         fNJ0a/1GBlnPOE2vy1XMIjKFFBG415l83omY7RpaOMtm5mW6jJQNug2nrWd80dY+4KBj
         0AVg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743679758; x=1744284558;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=F1hgtLHeUx0/BP7kMGb1rHCPAsT4+st2ctrCwWoIE24=;
        b=mS73NgLnSk2Lxi1wzvon3DDkjcgxsF2LOztLkH6FI74+5eG4ufSZ44JZfYI6OMbccm
         I8lkXupZjCUXeKdG/yg7Vte1C0H3BVCGKOjq75hBjWvUogAPtr24pHZaXXzuZwzIwcTp
         NU21z/sAXkp0G8/grx0A8hCbOIYtItfiMm1fDc8ZiiVIPe/r5A75tvRhYzfwbLIzaASp
         evpIV65XNVcbsUjPzagzow698buM+xYzjS8koKp02iLfvSknDGAXuZhnJIao9YsbK0Pz
         1wc2H9jAVNHWQcZVN92w+qw+ESndJCJgNQHV3aZx/wDIwAWto2ADwCEK1cnZYhoWXwId
         zBtg==
X-Forwarded-Encrypted: i=1; AJvYcCUKyj5kwpgujOZo3mgEcRsYU3T4/6WfgDvCd4nlJp2Vge8yORxtrMuN1BOluXgIf6l0ERH71NK/kW8=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy/xHtVv0jTHaEbQlmUeV4FSqdgT4MnAXCTbdP75QCaQfw0InhO
	OSxLitrmvZrTUH0oyE/4z3yNK96w6Jx7VR6BtAt77PbFNjaQOvjMyNscpddycg==
X-Gm-Gg: ASbGncuzbVQaV/PmTQDv7Rqbv+pOwYTztxDdqm/22kz5mkLFx8xyaCXxKBKLyGE8nSO
	Va5bXDxf2fNk6qPe5pModRn1ztplP8o3KYDD9FoUiGmibtLGwVohaRdVCy9PXdwjm2Y1Hf4ajvU
	puEFTxutMBeRWeXEc1FlCUwKkcMgwoFx3GJXzlenv790I38EdkoNZkt9KjUBfiSG2J1rEolLifC
	qZjyUqjkwdPQahYeEOyfIFtnYQ4X6E5y5N2i8DEeTfWrXPdQOqvDQR0QJEZ0f3/atiNs2+Bn2hW
	lz5Qy4wTmKzXP3sbg5V8V8MgM3u6+yDm50GY9wCFBNWniij2LTi40XHB/+CYpyBEndX/bT5f/OZ
	CRVHP8nLSwF4LP0n9Rm3POnSoyhtD2Q==
X-Google-Smtp-Source: AGHT+IGt8LsZupWO8aiGn8SX51kaAd5qf6N8nzOIlNcu6sHqWTXKpLFBgSTG2HFpxWfO/QB2F8jesA==
X-Received: by 2002:a05:600c:190b:b0:43d:10a:1b90 with SMTP id 5b1f17b1804b1-43ec13fdf41mr23281975e9.16.1743679758550;
        Thu, 03 Apr 2025 04:29:18 -0700 (PDT)
Message-ID: <a64136e8-c74e-4f47-b52f-cd5b25c57b2e@suse.com>
Date: Thu, 3 Apr 2025 13:29:16 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 01/11] ci: prevent grub unpacking initramfs
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.59b4d1e66776c1e577aa5dd5460605dc6c240613.1743678257.git-series.marmarek@invisiblethingslab.com>
 <e1d07b26a92a45ed387594dd789453def1ef1eb2.1743678257.git-series.marmarek@invisiblethingslab.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <e1d07b26a92a45ed387594dd789453def1ef1eb2.1743678257.git-series.marmarek@invisiblethingslab.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 03.04.2025 13:04, Marek Marczykowski-Górecki wrote:
> It fails on larger initramfs (~250MB one) and sometimes even smaller
> depending on memory size/memory map, let Linux do it.

Iirc grub only unpacks gzip-ed modules, so wouldn't a yet better approach
be to use a better compressing algorithm, which simply as a side effect
would keep grub from decompressing it, while at the same time moving
farther away from any critical boundaries?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Apr 03 11:32:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 11:32:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.936657.1337843 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0IoN-0004dZ-9d; Thu, 03 Apr 2025 11:32:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 936657.1337843; Thu, 03 Apr 2025 11: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 1u0IoN-0004dS-75; Thu, 03 Apr 2025 11:32:43 +0000
Received: by outflank-mailman (input) for mailman id 936657;
 Thu, 03 Apr 2025 11: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=lWYu=WV=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u0IoL-0004dM-Rb
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 11:32:41 +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 5a17a5c4-107f-11f0-9eaa-5ba50f476ded;
 Thu, 03 Apr 2025 13:32:40 +0200 (CEST)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-43cfe63c592so7476955e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 03 Apr 2025 04:32:40 -0700 (PDT)
Received: from [10.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-43ec34ae0c5sm16068655e9.15.2025.04.03.04.32.39
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 03 Apr 2025 04:32:39 -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: 5a17a5c4-107f-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743679960; x=1744284760; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=i5pZZco6E76e1EG3F3nlkL9lhN/8NZwEMQ1WVZgezSc=;
        b=MtUt+Bui1lHVM3vlZKs4d5gg6QJ6JzEVmW8JeE87EiuKe8dK40wwRzpHSrR10t0JOD
         YbmtJWY7xMpOwQaQArzEDOu6k21/vhaONyrxHsh3hFabMVEv6YGLFcHEDkBw0nRB8bnJ
         iEwFGW97UBH4EtVMVf6FiaYVGUpBx7p6oG1WFbeOhVwetHOziZV3YUWil0zZNlsobvft
         uRvifJNuYgnXTl9z0ZQcCyA1tfX4M9pCe7YPB/V1EBPWgWMBplhiaGU3mMELpV4GfxVr
         A0YTxKkwdmnE8Bkiv6g9DCJcDnmWoQMFTxpF+E0ztJ7mTjJjHcsYZOcHOUYY51BzSqKD
         lBYg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743679960; x=1744284760;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=i5pZZco6E76e1EG3F3nlkL9lhN/8NZwEMQ1WVZgezSc=;
        b=O8DpaWrVYH0CJNHdNkgycdeBhhOGvNrWKcgtV6ekpT657kRsujxqjXaZH5yaylZfYS
         C5IdsVoyOdv+wYkx/pQ+4qX/K1XonvYNl6xF6SGlTfp2XFKJ/QE5y0XkeNX7JJU4Rk1r
         wXu6My5lEyAkidIGjAq5wW/LSncY7D1TwDoQn4EDn7/nSV5lk8lKWkm5I4YOri+hcDJu
         sA3Bk9i13+YYBrsdp6F+ovHM6RJY5VhLaZ5afokFtYdnRbiBr0uPZwcz8ANm514inVqi
         0K+jVjhIgk1biaiOP8lIRvVWllfExQJVj6agpQNXwA7iRg1N6NFFahxJ7zw/9PwRPFUm
         F6hQ==
X-Forwarded-Encrypted: i=1; AJvYcCWMxywjQsxwGLfunKI0Dy3snv2qTOeAPeiyQdMjBdae2rMXKUbHCRDsEwTj32n8yLfEHIPABls/l+I=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzy6YmJL5Q4yFvBcjPl7jcrMdTR8z83Vy50h+MjuP+YgQIOH6tN
	IzTqh38VBt/GWtIo9DVn4LODRXa5cFevDK4gXe7AaYsfbAiTRfn4S60PcREftA==
X-Gm-Gg: ASbGnctz8X7MRgTpO8mvEhHsyeSiZm4Ya7P8o1y6klTXT1k6UFZD3LZtlu/uA1qUUbL
	gxhiQzErz5ALLHiwi5Yu2QD1AiUFrx/clK2TViY+hlpBH1vIiOREB0LXb+nGke0NPtLN7DUedrb
	Qs9zFJSvlzUcHh1250MyU72dclb7UzDRZG1Y5HBwMmNVcY98rgxO+lthwSZ718xBMZyoltaE15g
	jmPewjOFQwH+rlrWATeFA9YnJehohIYWTMl4bfkfEJg4Nkv+SHm9wkolLIzm65FDWq+hoeL+F5l
	H0PNb1dMXs9Evd2faLHZHbE5QtaLOenGVIGZRbBfgTc7rXypRTqGop1/ieGpZrRilaD7ijvtQWp
	lGSftxoWsJiE64FDQAGZ8o/9An2vhww==
X-Google-Smtp-Source: AGHT+IGQrdOSvgUSqPSOjLurAzzucnpBSQIk3jA0WVH2CjlndY2mf4mXxnt7ptT3Eymf8ZL/ZxfADA==
X-Received: by 2002:a05:600c:4fd1:b0:43c:f6b0:e807 with SMTP id 5b1f17b1804b1-43db8527142mr219466125e9.31.1743679960224;
        Thu, 03 Apr 2025 04:32:40 -0700 (PDT)
Message-ID: <9e4660fc-b78f-4323-8a1b-aca3d410edd3@suse.com>
Date: Thu, 3 Apr 2025 13:32:38 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 02/11] ci: increase timeout for hw tests
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.59b4d1e66776c1e577aa5dd5460605dc6c240613.1743678257.git-series.marmarek@invisiblethingslab.com>
 <7578489af5c7df525d4c82231b68bbb7d955d2b4.1743678257.git-series.marmarek@invisiblethingslab.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <7578489af5c7df525d4c82231b68bbb7d955d2b4.1743678257.git-series.marmarek@invisiblethingslab.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 03.04.2025 13:04, Marek Marczykowski-Górecki wrote:
> It appears as sometimes it takes more time for Xen even start booting,
> mostly due to firmware and fetching large boot files by grub. In some
> jobs the current timeout is pretty close to the actual time needed, and
> sometimes (rarely for now) test fails due to timeout expiring in the
> middle of dom0 booting. This will be happening more often if the
> initramfs will grow (and with more complex tests).

With that, ...

> This has been observed on some dom0pvh-hvm jobs, at least on runners hw3
> and hw11.
> 
> Increase the timeout by yet another 60s (up to 180s now).

... is this little a bump going to be sufficient? How about moving straight
to 5min?

As to observed failing jobs - the PV Dom0 boot failure seen today looks to
also be due to too short a timeout.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Apr 03 11:37:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 11:37:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.936673.1337854 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0IsX-0005HL-UB; Thu, 03 Apr 2025 11:37:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 936673.1337854; Thu, 03 Apr 2025 11: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 1u0IsX-0005HE-RN; Thu, 03 Apr 2025 11:37:01 +0000
Received: by outflank-mailman (input) for mailman id 936673;
 Thu, 03 Apr 2025 11:37: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=X4pi=WV=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1u0IsW-0005H8-B0
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 11:37:00 +0000
Received: from fhigh-a8-smtp.messagingengine.com
 (fhigh-a8-smtp.messagingengine.com [103.168.172.159])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f34edcae-107f-11f0-9ffb-bf95429c2676;
 Thu, 03 Apr 2025 13:36:58 +0200 (CEST)
Received: from phl-compute-01.internal (phl-compute-01.phl.internal
 [10.202.2.41])
 by mailfhigh.phl.internal (Postfix) with ESMTP id 6983B1140255;
 Thu,  3 Apr 2025 07:36:57 -0400 (EDT)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-01.internal (MEProxy); Thu, 03 Apr 2025 07:36:57 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 3 Apr 2025 07:36:56 -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: f34edcae-107f-11f0-9ffb-bf95429c2676
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=fm2; t=1743680217;
	 x=1743766617; bh=L6b51u07NUi5iWd5pUhdlpThPd7fQk/6wY6Utkvz2bg=; b=
	RCgEciAaZ9j3nhKYF8EAlUIWlSrzUh6YQU5gsTWi5hf/rKVA3fjrklrYtSf5ntxG
	DfoAWeyCH/+exu4Sf+pbFLwyusFkBo9QZuaJLWPwQVi//Iq9EQWCfG7+nEyav2kV
	31m1vm1zW7HKpp/Dw6t8nEdsi2tMOhA2VmQKOWaMQc4xNzF4cUCNcBVGzLUizAqu
	pTgwcmGUTwCm3r/qQUfpJLELBJbT0d11wQ3ey2Y3aACkWpV6HuERJviP7NMvNOJ+
	28Kasw7vqAXChyxOsg53/EHWT1bww39nlQPh7UxlYI8FqaXmgpoqK5uGYb83Ppr0
	83PTtDE9FYGL0+q23wimZQ==
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=fm2; t=
	1743680217; x=1743766617; bh=L6b51u07NUi5iWd5pUhdlpThPd7fQk/6wY6
	Utkvz2bg=; b=JlRplBgaT/wO5Auw82ZAxgY6ve58H65NU47/hWoB7eMDmcwqAW0
	SS+mBCug46OSRf7/q/9syCyM53TGZ+1H01mF9MEWxDqZj8qPjnr1tzavhM2BWUVc
	UAbFvZUEbbgZB239ubTJNC3NKOF0W3X0fHDoDLUMveZX4xCJpaQ78QfFilHO1Xfx
	kI066VRZB0CvsBF53EMtPMUNUNBFN2jnac+wXT7/F+JarRpTboSfSan91dfGbRhG
	Z6LFrHkeYsZjgwCTIUot2lZ85y4RrBEG4XjARNTo5fmIbWfymastdeRi4TZRQPQN
	g9bJxSWwSNHRKP0P3hrLBFAvmwdoVqMVzuQ==
X-ME-Sender: <xms:2XLuZ5LNXDKQpaBaLSiMtqnqMyJvDKnCPOKT9aes2If1OuugDBN7MQ>
    <xme:2XLuZ1LPwjhle9sOLX8RyY174A_I36CBvuEt-TzlMqmdVP-FogvsMXmobaGktOZaN
    CN8o_-VTtIUYA>
X-ME-Received: <xmr:2XLuZxtKLmQ5_aQAbOw8cPc1pU2-LJeWpif0FWdMDWqC5bY3km1E0Qt4SxQBmIAwQH5z3HnOXXDpyRv8jGIhcCXYP5j5N8pHLA>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddukeekgeehucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
    pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
    gvnhhtshculddquddttddmnecujfgurhepfffhvfevuffkfhggtggujgesghdtreertddt
    jeenucfhrhhomhepofgrrhgvkhcuofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuc
    eomhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecu
    ggftrfgrthhtvghrnhepgfduleetfeevhfefheeiteeliefhjefhleduveetteekveettd
    dvgeeuteefjedunecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhf
    rhhomhepmhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomh
    dpnhgspghrtghpthhtohephedpmhhouggvpehsmhhtphhouhhtpdhrtghpthhtohepjhgs
    vghulhhitghhsehsuhhsvgdrtghomhdprhgtphhtthhopegrnhgurhgvfidrtghoohhpvg
    hrfeestghithhrihigrdgtohhmpdhrtghpthhtoheptggrrhguohgvsegtrghrughovgdr
    tghomhdprhgtphhtthhopehsshhtrggsvghllhhinhhisehkvghrnhgvlhdrohhrghdprh
    gtphhtthhopeigvghnqdguvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhr
    gh
X-ME-Proxy: <xmx:2XLuZ6Y7ET5l3p5EaZ2JJwTPEYEfVbeBbUoqGRtPNfcGeUIb12Kmpg>
    <xmx:2XLuZwZOORY_pVfuU21nFrNc3f5hHAlCHnbCV0slBM_H30IwSz6Dxg>
    <xmx:2XLuZ-A47pR4xZQzqWCzq8lLoSMiV_deatEr1O54903s7RsAsCeVtg>
    <xmx:2XLuZ-YIpZEPNwv0eW_N9DRTAE8uQuylpyLtVE1qbRMA7DR5BuroHA>
    <xmx:2XLuZz5yxQ2Kli6gqk0EOPCwRPp3fXEqCoQFpW3xOhcsUukhLm8VdnSp>
Feedback-ID: i1568416f:Fastmail
Date: Thu, 3 Apr 2025 13:36:53 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v1 01/11] ci: prevent grub unpacking initramfs
Message-ID: <Z-5y1pCNlEVm5rsY@mail-itl>
References: <cover.59b4d1e66776c1e577aa5dd5460605dc6c240613.1743678257.git-series.marmarek@invisiblethingslab.com>
 <e1d07b26a92a45ed387594dd789453def1ef1eb2.1743678257.git-series.marmarek@invisiblethingslab.com>
 <a64136e8-c74e-4f47-b52f-cd5b25c57b2e@suse.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="Z/3W7kebW6kr+ooI"
Content-Disposition: inline
In-Reply-To: <a64136e8-c74e-4f47-b52f-cd5b25c57b2e@suse.com>


--Z/3W7kebW6kr+ooI
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Thu, 3 Apr 2025 13:36:53 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v1 01/11] ci: prevent grub unpacking initramfs

On Thu, Apr 03, 2025 at 01:29:16PM +0200, Jan Beulich wrote:
> On 03.04.2025 13:04, Marek Marczykowski-G=C3=B3recki wrote:
> > It fails on larger initramfs (~250MB one) and sometimes even smaller
> > depending on memory size/memory map, let Linux do it.
>=20
> Iirc grub only unpacks gzip-ed modules, so wouldn't a yet better approach
> be to use a better compressing algorithm, which simply as a side effect
> would keep grub from decompressing it, while at the same time moving
> farther away from any critical boundaries?

That should also make the test faster (if it's a significant
difference). OTOH likely we wouldn't have found the issue with
map_pages_to_xen().

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

--Z/3W7kebW6kr+ooI
Content-Type: application/pgp-signature; name=signature.asc

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmfuctYACgkQ24/THMrX
1yzaHgf+M7bxiY0Y8Cod7GFvsKzYODdbuM5w6tf29WZ6mdFYTWF8pQd546ZLhr1R
ccyJV7ABkD9t03ufZn4i81dlsLQaLn+FcMgYw06uDoEbIidW0EJImGFMQnDzHgMN
R8kj0JCEZTYr7Ia8EavYuD9mtZ0Pxu2ehbLVtDfPhxVJ6RmEAW7+UdDnbUO7wmrA
x5I8TxzJ4DxhKaLE0cx+Y5Di23Qc5PAxbsfYUF7CLEZ8P4tzNj90Cw45nIcQ5L2a
kUrv3H4MlmD5ERjGVXaB4qFa/ASuQCePiyFZOP2SnIrjd8LXXTDMozhv/ODVYWfi
TZeD78E9HFqC/YrsXZqAE2nPqBF2cA==
=ddMy
-----END PGP SIGNATURE-----

--Z/3W7kebW6kr+ooI--


From xen-devel-bounces@lists.xenproject.org Thu Apr 03 11:39:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 11:39:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.936683.1337865 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0Iui-0005p6-By; Thu, 03 Apr 2025 11:39:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 936683.1337865; Thu, 03 Apr 2025 11:39:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0Iui-0005oz-7g; Thu, 03 Apr 2025 11:39:16 +0000
Received: by outflank-mailman (input) for mailman id 936683;
 Thu, 03 Apr 2025 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=JbNy=WV=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u0Iug-0005ot-QV
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 11:39:14 +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 43be9055-1080-11f0-9ffb-bf95429c2676;
 Thu, 03 Apr 2025 13:39:12 +0200 (CEST)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-43cef035a3bso5219465e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 03 Apr 2025 04:39:12 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43ec1794efesm19532625e9.28.2025.04.03.04.39.11
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 03 Apr 2025 04:39: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: 43be9055-1080-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1743680352; x=1744285152; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=rTMWurCpWgTOvf6a0uahbEIIuA5Ty1vkIOgyropEq9U=;
        b=HvDOBtoaPcwWFoY9SKZNSiQHi9jrmvO7+3C1EeFW+Zl/wCr87OW5k6CFM097xAXBNe
         jhZaycSpwWrR7YEx87fko/1+CAwDhHuh92sPa3UHV/i8Tit6kzXnjOgtUzcLFAFwk+61
         ZTK0EvQkG8BrUSQoDst6JGsDD0+T5hHL1yflE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743680352; x=1744285152;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=rTMWurCpWgTOvf6a0uahbEIIuA5Ty1vkIOgyropEq9U=;
        b=dxYhtoCscr7/bKXzUiXN258N9RAa4GM0y1C9J8bfMZ/PcC2ihCP8t+OhMSgeWLGUFn
         +xeCn7OfXuOXmX6b4EJgnAYzqi9XVSm5XsiRIBIVNOre/p8Hr/wJX8xVf5HI77vXwLk2
         InPL1BCYx5c0wQ/fx82HdpzesTJPyMQ3Q75Z6/NPMThaEjUt4tPcuSA0hMY8bKO51lJS
         hUaJ9D06P8r6hrJdjjHQRe7t+tmTss7CCGO2EMx2w6Srqtr1J+V20FzeZHCLSkLGJMHO
         rvRgqBo+o3dzcdoxbj6Mc3tV7osaPI8BfUKHm8NbM9pdBql5ZJAJBYOG8SF3HI7ozwbO
         dCag==
X-Forwarded-Encrypted: i=1; AJvYcCXxX4M/85u004OGQR0ct+FFErA7u+o0WTyR3iI7JVkPm5/R/FuQBfk3zBoGfUgI+M7Q45Zy75rTZ30=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzawcmGQGoskZ7cJr5ixYbeKJf9vpMy7E3q4IjpmLRnYPzE6e09
	EtV38aDKIH4nZsBH0qeOu+xaAQePSpdIYmjhAknTB3aBM2fIILrF+Szu8rASzp4=
X-Gm-Gg: ASbGncvBnLV6FwROBM0IZm0knMI9fjpdXitfa5jMng8tz+hysAdNsLBxxh0efkRlouo
	6I/wp3zmDEswusCUYrsNAXoKKY+x91RkT4ADLWv3FpcxZu1ZDFOQ7yivegBo0V/HI+DbBv6/Foa
	OFpogjU+H6ai8L9zeN8efmLOVi3ihzufv4tkeNphZ/1CUE0mHZhcxCDKvTSGPWiavWmLreK/W4g
	jcBASrYv65BIVfD/ZgGSiemu3zDJBn8K0pxUelMYQlxO++sajoIIwsJockqRJ5IK8g9xKXlsmoR
	a8MkI6fpmYjcpWkRBL+PuQe6d/slf1N1omhO+PKCTCOVcxZavahGP++dEldkW96mTt4ZjHtUDNg
	UUD337c+OTQ==
X-Google-Smtp-Source: AGHT+IHgVchqpuBULl5UDc4oZG8lq5DaOdKDDMA3dT4/IUoFya2aky68HJyCDiMD1Ou++8AdBSzmTg==
X-Received: by 2002:a05:600c:510c:b0:43c:fffc:7886 with SMTP id 5b1f17b1804b1-43ec139aa3amr22108695e9.8.1743680352227;
        Thu, 03 Apr 2025 04:39:12 -0700 (PDT)
Message-ID: <d832f7c5-5a59-46c5-b5c6-109dd13a77e3@citrix.com>
Date: Thu, 3 Apr 2025 12:39:11 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 01/11] ci: prevent grub unpacking initramfs
To: Jan Beulich <jbeulich@suse.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Cc: Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.59b4d1e66776c1e577aa5dd5460605dc6c240613.1743678257.git-series.marmarek@invisiblethingslab.com>
 <e1d07b26a92a45ed387594dd789453def1ef1eb2.1743678257.git-series.marmarek@invisiblethingslab.com>
 <a64136e8-c74e-4f47-b52f-cd5b25c57b2e@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: <a64136e8-c74e-4f47-b52f-cd5b25c57b2e@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 03/04/2025 12:29 pm, Jan Beulich wrote:
> On 03.04.2025 13:04, Marek Marczykowski-Górecki wrote:
>> It fails on larger initramfs (~250MB one) and sometimes even smaller
>> depending on memory size/memory map, let Linux do it.
> Iirc grub only unpacks gzip-ed modules, so wouldn't a yet better approach
> be to use a better compressing algorithm, which simply as a side effect
> would keep grub from decompressing it, while at the same time moving
> farther away from any critical boundaries?

Yes and no.

This is going to change anyway when I (or a delgee) moves initrd
generation from the test step itself into the test artefacts repo.

Switching to a slower algorithm will impact every test step right now.

Real systems doesn't see this in general, because it there's an
uncompressed microcode container at the front, and it's not identified
as being compressed at all.

I'd prefer to stick with Marek's patch in the short term.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Apr 03 11:45:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 11:45:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.936700.1337890 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0J0r-00014u-51; Thu, 03 Apr 2025 11:45:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 936700.1337890; Thu, 03 Apr 2025 11:45: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 1u0J0r-00014n-0x; Thu, 03 Apr 2025 11:45:37 +0000
Received: by outflank-mailman (input) for mailman id 936700;
 Thu, 03 Apr 2025 11:45: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=qNKJ=WV=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1u0J0q-00014Z-1e
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 11:45:36 +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 27106b64-1081-11f0-9ffb-bf95429c2676;
 Thu, 03 Apr 2025 13:45:34 +0200 (CEST)
Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org
 [IPv6:2a07:de40:b281:104:10:150:64:97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out1.suse.de (Postfix) with ESMTPS id 97AA82118C;
 Thu,  3 Apr 2025 11:45:33 +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 3CC3613A2C;
 Thu,  3 Apr 2025 11:45:33 +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 g6dQDd107meSHwAAD6G6ig
 (envelope-from <jgross@suse.com>); Thu, 03 Apr 2025 11:45: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: 27106b64-1081-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1743680733; 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=huW5P+sO427yMCFgCir947LLkhzoOx5DdpPVIcqojs4=;
	b=gJuMUTZXX2LpX+TRVUE+OauZ4VLozJqBtJ6MJVm9uJfSGDTTIeSV/aNhrqWG5tL4mrFibj
	fNt+70T45p/YAiGS6SDPuRn1Uf6YSEENcu56AJ49tEbKngtNdigsRe5VX2BBZimsq7WM+p
	xQR+wsBuxA5QgY6n5RKQMP7JvjqKSp8=
Authentication-Results: smtp-out1.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=gJuMUTZX
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1743680733; 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=huW5P+sO427yMCFgCir947LLkhzoOx5DdpPVIcqojs4=;
	b=gJuMUTZXX2LpX+TRVUE+OauZ4VLozJqBtJ6MJVm9uJfSGDTTIeSV/aNhrqWG5tL4mrFibj
	fNt+70T45p/YAiGS6SDPuRn1Uf6YSEENcu56AJ49tEbKngtNdigsRe5VX2BBZimsq7WM+p
	xQR+wsBuxA5QgY6n5RKQMP7JvjqKSp8=
Message-ID: <fcfe6ea3-6951-4892-accb-13dac0268068@suse.com>
Date: Thu, 3 Apr 2025 13:45:32 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v9 1/3] docs: update xenstore migration stream definition
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org, Julien Grall <julien@xen.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>
References: <20250314121835.1879-1-jgross@suse.com>
 <20250314121835.1879-2-jgross@suse.com>
 <85aa1047-b045-4004-9306-b40e8c5fa6d9@suse.com>
Content-Language: en-US
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: <85aa1047-b045-4004-9306-b40e8c5fa6d9@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------cl6kC0jq2bdYm3uyaXj5pKAw"
X-Rspamd-Queue-Id: 97AA82118C
X-Spam-Score: -6.41
X-Rspamd-Action: no action
X-Spamd-Result: default: False [-6.41 / 50.00];
	BAYES_HAM(-3.00)[99.99%];
	SIGNED_PGP(-2.00)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain];
	R_DKIM_ALLOW(-0.20)[suse.com:s=susede1];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	MIME_BASE64_TEXT(0.10)[];
	MIME_UNKNOWN(0.10)[application/pgp-keys];
	MX_GOOD(-0.01)[];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	FROM_HAS_DN(0.00)[];
	FUZZY_BLOCKED(0.00)[rspamd.com];
	MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	ARC_NA(0.00)[];
	RBL_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	RCVD_TLS_ALL(0.00)[];
	DKIM_TRACE(0.00)[suse.com:+];
	TO_DN_SOME(0.00)[];
	DNSWL_BLOCKED(0.00)[2a07:de40:b281:106:10:150:64:167:received,2a07:de40:b281:104:10:150:64:97:from];
	RCVD_COUNT_TWO(0.00)[2];
	FROM_EQ_ENVFROM(0.00)[];
	HAS_ATTACHMENT(0.00)[];
	MID_RHS_MATCH_FROM(0.00)[];
	RECEIVED_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:106:10:150:64:167:received];
	RCPT_COUNT_SEVEN(0.00)[8];
	ASN(0.00)[asn:25478, ipnet:::/0, country:RU];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[imap1.dmz-prg2.suse.org:rdns,imap1.dmz-prg2.suse.org:helo,suse.com:dkim,suse.com:mid,suse.com: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)
--------------cl6kC0jq2bdYm3uyaXj5pKAw
Content-Type: multipart/mixed; boundary="------------IRID20eYKf0SCuMtDB0racen";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org, Julien Grall <julien@xen.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>
Message-ID: <fcfe6ea3-6951-4892-accb-13dac0268068@suse.com>
Subject: Re: [PATCH v9 1/3] docs: update xenstore migration stream definition
References: <20250314121835.1879-1-jgross@suse.com>
 <20250314121835.1879-2-jgross@suse.com>
 <85aa1047-b045-4004-9306-b40e8c5fa6d9@suse.com>
In-Reply-To: <85aa1047-b045-4004-9306-b40e8c5fa6d9@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=

--------------IRID20eYKf0SCuMtDB0racen
Content-Type: multipart/mixed; boundary="------------xWbYh2129DsqGWMoqd3SqJwr"

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

T24gMjUuMDMuMjUgMTA6MTcsIEp1ZXJnZW4gR3Jvc3Mgd3JvdGU6DQo+IE9uIDE0LjAzLjI1
IDEzOjE4LCBKdWVyZ2VuIEdyb3NzIHdyb3RlOg0KPj4gSW4gb3JkZXIgdG8gY2xvc2UgYSBy
YWNlIHdpbmRvdyBmb3IgWGVuc3RvcmUgbGl2ZSB1cGRhdGUgd2hlbiB1c2luZw0KPj4gdGhl
IG5ldyB1bmlxdWVfaWQgb2YgZG9tYWlucywgdGhlIG1pZ3JhdGlvbiBzdHJlYW0gbmVlZHMg
dG8gY29udGFpbg0KPj4gdGhpcyB1bmlxdWVfaWQgZm9yIGVhY2ggZG9tYWluIGtub3duIGJ5
IFhlbnN0b3JlLg0KPj4NCj4+IFNpZ25lZC1vZmYtYnk6IEp1ZXJnZW4gR3Jvc3MgPGpncm9z
c0BzdXNlLmNvbT4NCj4gDQo+IFRoaXMgcGF0Y2ggaXMgc3RpbGwgbWlzc2luZyBhbiBBY2su
DQoNClBJTkc/DQoNCj4gDQo+IEp1bGllbj8NCj4gDQo+IA0KPiBKdWVyZ2VuDQo+IA0KPj4g
LS0tDQo+PiBWODoNCj4+IC0gbmV3IHBhdGNoDQo+PiBWOToNCj4+IC0gaW5zdGVhZCBvZiB1
c2luZyBhbiBvZmZzZXQsIHVzZSBhIGZsYWcgZm9yIHVuaXF1ZV9pZCBwcmVzZW5jZQ0KPj4g
wqDCoCAoSnVsaWVuIEdyYWxsKQ0KPj4gLS0tDQo+PiDCoCBkb2NzL2Rlc2lnbnMveGVuc3Rv
cmUtbWlncmF0aW9uLm1kIHwgMTggKysrKysrKysrKysrKysrKystDQo+PiDCoCAxIGZpbGUg
Y2hhbmdlZCwgMTcgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQ0KPj4NCj4+IGRpZmYg
LS1naXQgYS9kb2NzL2Rlc2lnbnMveGVuc3RvcmUtbWlncmF0aW9uLm1kIGIvZG9jcy9kZXNp
Z25zL3hlbnN0b3JlLSANCj4+IG1pZ3JhdGlvbi5tZA0KPj4gaW5kZXggMDgyMzE0YmY3Mi4u
YTBhY2Q3NmNlMSAxMDA2NDQNCj4+IC0tLSBhL2RvY3MvZGVzaWducy94ZW5zdG9yZS1taWdy
YXRpb24ubWQNCj4+ICsrKyBiL2RvY3MvZGVzaWducy94ZW5zdG9yZS1taWdyYXRpb24ubWQN
Cj4+IEBAIC0xNTYsNyArMTU2LDcgQEAgdGhlIGRvbWFpbiBiZWluZyBtaWdyYXRlZC4NCj4+
IMKgIGBgYA0KPj4gwqDCoMKgwqDCoCAwwqDCoMKgwqDCoMKgIDHCoMKgwqDCoMKgwqAgMsKg
wqDCoMKgwqDCoCAzwqDCoMKgwqDCoMKgIDTCoMKgwqDCoMKgwqAgNcKgwqDCoMKgwqDCoCA2
wqDCoMKgwqDCoMKgIDfCoMKgwqAgb2N0ZXQNCj4+IMKgICstLS0tLS0tKy0tLS0tLS0rLS0t
LS0tLSstLS0tLS0tKy0tLS0tLS0rLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0rDQo+PiAtfCBj
b25uLWlkwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfCBj
b25uLXR5cGXCoMKgwqDCoCB8wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8DQo+PiAr
fCBjb25uLWlkwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg
fCBjb25uLXR5cGXCoMKgwqDCoCB8IGZpZWxkc8KgwqDCoMKgwqDCoMKgIHwNCj4+IMKgICst
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0t
LS0tLS0tLS0rDQo+PiDCoCB8IGNvbm4tc3BlYw0KPj4gwqAgLi4uDQo+PiBAQCAtMTY1LDYg
KzE2NSw5IEBAIHRoZSBkb21haW4gYmVpbmcgbWlncmF0ZWQuDQo+PiDCoCArLS0tLS0tLS0t
LS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Kw0KPj4gwqAgfCBkYXRhDQo+PiDCoCAuLi4NCj4+ICsrLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKw0KPj4gK3wgdW5p
cXVlLWlkwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqAgfA0KPj4gKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+PiDCoCBgYGANCj4+IEBAIC0xNzgsNiArMTgxLDE2
IEBAIHRoZSBkb21haW4gYmVpbmcgbWlncmF0ZWQuDQo+PiDCoCB8wqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgIHwgMHgwMDAxOiBzb2NrZXTCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfA0KPj4gwqAgfMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8IDB4MDAwMiAtIDB4RkZGRjogcmVzZXJ2ZWQg
Zm9yIGZ1dHVyZSB1c2XCoMKgwqDCoCB8DQo+PiDCoCB8wqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgIHzCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfA0KPj4g
K3wgYGZpZWxkc2DCoMKgwqDCoMKgwqAgfCBBIGNvbGxlY3Rpb24gb2YgZmxhZ3MgaW5kaWNh
dGluZyBwcmVzZW5jZcKgwqDCoCB8DQo+PiArfMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoCB8IG9mIGFkZGl0aW9uYWwgZmllbGRzIGFmdGVyIHRoZSB2YXJpYWJsZcKgwqDCoMKg
wqAgfA0KPj4gK3zCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfCBsZW5ndGggYGRh
dGFgIHBhcnQuIFRoZSBhZGRpdGlvbmFsIGZpZWxkc8KgwqDCoCB8DQo+PiArfMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8IHdpbGwgc3RhcnQgYWZ0ZXIgYSBwb3NzaWJsZSBw
YWRkaW5nIGZvcsKgwqDCoMKgwqAgfA0KPj4gK3zCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqAgfCBhbGlnbmluZyB0byBhIDggb2N0ZXQgYm91bmRhcnkuwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqAgfA0KPj4gK3zCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfCBE
ZWZpbmVkIGZsYWcgdmFsdWVzICh0byBiZSBvci1lZCk6wqDCoMKgwqDCoMKgwqDCoMKgwqAg
fA0KPj4gK3zCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfCAweDAwMDE6IGB1bmlx
dWVfaWRgIHByZXNlbnQgKG9ubHkgbmVlZGVkIGZvciB8DQo+PiArfMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoCB8wqDCoMKgwqDCoMKgwqDCoCBgc2hhcmVkIHJpbmdgIGNvbm5l
Y3Rpb24gaW4gbGl2ZcKgwqDCoMKgIHwNCj4+ICt8wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgIHzCoMKgwqDCoMKgwqDCoMKgIHVwZGF0ZSBzdHJlYW1zKS7CoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHwNCj4+ICt8wqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgIHzCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfA0K
Pj4gwqAgfCBgY29ubi1zcGVjYMKgwqDCoCB8IFNlZSBiZWxvd8KgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg
fA0KPj4gwqAgfMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHwNCj4+IMKgIHwgYGluLWRhdGEtbGVuYMKgIHwg
VGhlIGxlbmd0aCAoaW4gb2N0ZXRzKSBvZiBhbnkgZGF0YSByZWFkwqDCoMKgwqDCoCB8DQo+
PiBAQCAtMTkzLDYgKzIwNiw5IEBAIHRoZSBkb21haW4gYmVpbmcgbWlncmF0ZWQuDQo+PiDC
oCB8IGBkYXRhYMKgwqDCoMKgwqDCoMKgwqAgfCBQZW5kaW5nIGRhdGE6IGZpcnN0IGluLWRh
dGEtbGVuIG9jdGV0cyBvZsKgwqDCoCB8DQo+PiDCoCB8wqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgIHwgcmVhZCBkYXRhLCB0aGVuIG91dC1kYXRhLWxlbiBvY3RldHMgb2bCoMKg
wqDCoMKgwqAgfA0KPj4gwqAgfMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8IHdy
aXR0ZW4gZGF0YSAoYW55IG9mIGJvdGggbWF5IGJlIGVtcHR5KcKgwqDCoMKgwqAgfA0KPj4g
K3zCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoCB8DQo+PiArfCBgdW5pcXVlLWlkYMKgwqDCoCB8IFVuaXF1ZSBp
ZGVudGlmaWVyIG9mIGEgZG9tYWluwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHwN
Cj4+ICt8wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqAgfA0KPj4gwqAgSW4gY2FzZSBvZiBsaXZlIHVwZGF0ZSB0
aGUgY29ubmVjdGlvbiByZWNvcmQgZm9yIHRoZSBjb25uZWN0aW9uIHZpYSB3aGljaA0KPj4g
wqAgdGhlIGxpdmUgdXBkYXRlIGNvbW1hbmQgd2FzIGlzc3VlZCB3aWxsIGNvbnRhaW4gdGhl
IHJlc3BvbnNlIGZvciB0aGUgbGl2ZQ0KPiANCg0K
--------------xWbYh2129DsqGWMoqd3SqJwr
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-----

--------------xWbYh2129DsqGWMoqd3SqJwr--

--------------IRID20eYKf0SCuMtDB0racen--

--------------cl6kC0jq2bdYm3uyaXj5pKAw
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/Ey8FAmfudNwFAwAAAAAACgkQsN6d1ii/Ey8i
GQf/XjFfIgFRiFKeUgtQnMtSMgcAOAVH9zlhP/TX3h/c7+nVXWlbtTOyHLOjO1+3b45Xc+1yyr9K
aa26Pn2BD7f5EI84LrCfEUiOLzxVng0dTxpa63wGgHRmYvCZzcHAKWIYzy8914CE7eKMMNAl+ITw
qlCkeqsm0eJJRyOCsx12H+nR6ta58/CecYDbElT8wXOoJmy/kscN4zWSgu4LtA1niOQm5BuYZvBs
LiYzaU7BlOPxwc3d+JQRLY5kiLV2ZsGTxZcM4mrE0+byadpz7UZzVG9tbOpgp4Rn2Gv7nYJVvT1y
gHO+W9DNslybxuKqNQAv/UoU9HOm8kylueAHSc9s0w==
=NacV
-----END PGP SIGNATURE-----

--------------cl6kC0jq2bdYm3uyaXj5pKAw--


From xen-devel-bounces@lists.xenproject.org Thu Apr 03 12:02:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 12:02:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.936726.1337899 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0JHB-0006Gz-IS; Thu, 03 Apr 2025 12:02:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 936726.1337899; Thu, 03 Apr 2025 12: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 1u0JHB-0006Gs-Fa; Thu, 03 Apr 2025 12:02:29 +0000
Received: by outflank-mailman (input) for mailman id 936726;
 Thu, 03 Apr 2025 12:02: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=JbNy=WV=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u0JHA-0006Gl-4o
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 12:02:28 +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 8283cfbb-1083-11f0-9eaa-5ba50f476ded;
 Thu, 03 Apr 2025 14:02:26 +0200 (CEST)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-4394036c0efso5315275e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 03 Apr 2025 05:02:26 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39c301a6ae5sm1649257f8f.32.2025.04.03.05.02.25
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 03 Apr 2025 05:02: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: 8283cfbb-1083-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1743681746; x=1744286546; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=XH0JeYAt408M7KR9d9UEq3IEkO53yY1KEgdqn7A9GBw=;
        b=NhykE5Z2oTmWgcwxWxrcksgI6TjQVKZ58JbLjxSJ2lJMd+XSq2oE0KvMNvQbuQ2bu4
         a+OuLo0G5WU7kcIlwB4s9OnV1rRLXfioXcEU1C5VMRbB4uNfezLK6bUmrV/7VHxedCye
         C+8e7abyuzEexMIf3vyIlm75ngaLtyK7Y0FjQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743681746; x=1744286546;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=XH0JeYAt408M7KR9d9UEq3IEkO53yY1KEgdqn7A9GBw=;
        b=q69+kbUZ56m6F2ZKlk7R9x0BiMR+ewesRsFSXtkn47TsTeyBNNfspoh2aSY18OQ6xG
         7zgPaq0s6A+omz+wcVNuhk4DMN8smanKGT0CGol3nwAYIcgJvF5PDkmMctztV8vcxqXX
         IasWh7X202AI82e3ivW9aD6S1DIqiUeGFBfNq9Qgl9cpSUDp/rNooQyp21YUf/3cs4MA
         4DdWn7HJWaY4m3rxqOPeOkPN+Jtd6pENgm7uYIFrdZpXUJN9VtfO9Bk4ym349tJFqPse
         lPAcdYgicwPLMCUHuUwomfCoMWkqU/40EtenUTxBsLlQqWjUDzHLSlbq4ToeHmLz+Xy3
         AXPA==
X-Forwarded-Encrypted: i=1; AJvYcCWUS+mbXXhpdMGqWIFEq04iOCGCnOYGNDj6/217h+ceCFAt4MKJcRnLYo1Cot9aGCCAiJ9H7c22v88=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxYf9ssDImxUOm/5uYLDE3oH5NyH/PlLJ/DqaVM8LVqHrunliOr
	z+laLrEnmvMY14oY02TcWs5aEsJ4kHdMXBSSZaz8JU5g31gkuJeY2vQ3UEQugKU=
X-Gm-Gg: ASbGncvOXMDvar3/NaB/tkdzPVLSH9+a0ANPwF+sMj4M9FROyGhey5i8v0bWgo5zOUP
	W37uZkDGyJTpMKge6Z0yO6Ssl4dec6wXGTBKcftU27w3jzvLjHE0vaN9AK24NbZNlGfkxKSuaGa
	GLOpIxMfVfETmhHiDh1NrL20EXCjVo6lS9AdDIdBwU6d2pvyKSCcHaXrtWYAUty3J6l7bGhwZqZ
	dpkhvSjhS1tctx5XWypKA3el0JaGlYXzi9hqCfQ6ifShPlOM5EY1ekkeGcEphl/47Wmt2tF9s6K
	CR9K2QpWNXaAKI0lBIbWO+K1TUZd6Jz2gx6f6Y6cgzEuK9IhJlhVBNWhBWoaDDirNHic062S+Io
	8VymzI+N0Ig==
X-Google-Smtp-Source: AGHT+IHJLS4DCDlaws9WDiSZYdYjhFMnrLTDL0HvD10KLRcHGdlGST1clDJTPVoM5HhsKbrwva1OpQ==
X-Received: by 2002:a05:6000:42c6:b0:391:2e97:5788 with SMTP id ffacd0b85a97d-39c1211ca8amr13938983f8f.55.1743681745886;
        Thu, 03 Apr 2025 05:02:25 -0700 (PDT)
Message-ID: <b8200dc3-35a9-4ae5-a345-45f4c6143e55@citrix.com>
Date: Thu, 3 Apr 2025 13:02:24 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/boot: re-order .init.data contributions
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: <b0266c19-d0e5-4de7-b2fb-a50e2766168c@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: <b0266c19-d0e5-4de7-b2fb-a50e2766168c@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 01/04/2025 6:56 am, Jan Beulich wrote:
> Putting a few bytes ahead of page tables isn't very efficient; there's
> a gap almost worth a full page. To avoid re-ordering of items in the
> source file, simply put the few small items in sub-section 1, for them
> to end up after the page tables, followed (in the final binary) by non-
> page-aligned items from other CUs.
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>
> --- a/xen/arch/x86/boot/head.S
> +++ b/xen/arch/x86/boot/head.S
> @@ -136,6 +136,7 @@ multiboot2_header:
>  .Lno_nx_msg:   .asciz "ERR: Not an NX-capable CPU!"
>  
>          .section .init.data, "aw", @progbits
> +        .subsection 1 /* Put data here after the page tables (in x86_64.S). */
>          .align 4
>  
>          .word   0

Just as a note, this depends on the toolchain baseline bump, so can't be
backported.

Clang-11 does now like subsection, so we can remove the !__clang__
specialisation for UNLIKELY_{START,END}_SECTION.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Apr 03 12:03:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 12:03:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.936737.1337910 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0JIH-0006lO-SM; Thu, 03 Apr 2025 12:03:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 936737.1337910; Thu, 03 Apr 2025 12:03: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 1u0JIH-0006lH-Pi; Thu, 03 Apr 2025 12:03:37 +0000
Received: by outflank-mailman (input) for mailman id 936737;
 Thu, 03 Apr 2025 12:03: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=lWYu=WV=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u0JIG-0006Gl-P1
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 12:03:36 +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 abd57c05-1083-11f0-9eaa-5ba50f476ded;
 Thu, 03 Apr 2025 14:03:36 +0200 (CEST)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-4394345e4d5so5048805e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 03 Apr 2025 05:03:35 -0700 (PDT)
Received: from [10.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-43ec1660eb3sm20179915e9.11.2025.04.03.05.03.34
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 03 Apr 2025 05:03:35 -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: abd57c05-1083-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743681815; x=1744286615; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Sgg1/ugnyIOc1WIKoA/Z0SxgW5B3RMyuYwm4J7+mjxc=;
        b=NK+Ryc+Cufgo4p/tdLIf3FyAfyiTAJeGPQp9Qw2Tpes4yJS2RiNpZZb+7ZpwztI+WC
         xbAcJ2yuglrdclMJBw39YEW79d7anizqTU9vd4cSNN1dtA526y/sCwJxdXDysWc2MRUZ
         NP9sgF9a34mtQjl2Wjf8S/JEBQB8AJZS5DYEjNHctGqqW+BdZdGikjiVbMFTjd2M6Fqy
         /Cf5wLi+Umbs364XxZr4ARbqsFN5LuUqtINRrZUgGCRPAFW+KMcoy50vw78/nuMTix+C
         gSX2cLj57+BsQLc0Tb5KKrtPv5fDkNPQF7OqZl+vfl5mFsBn2VIdfdUD3GxBMejUxiOm
         xVGQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743681815; x=1744286615;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Sgg1/ugnyIOc1WIKoA/Z0SxgW5B3RMyuYwm4J7+mjxc=;
        b=f6U8oHiu2DRIxSc1MysAWZlsV9CAiJWsJyVeBbn7UyQuorwwlIlxJLrnBQ5OFykmpc
         2fbuxwwas8JWIg2sbGDU36afWq1bLMcr4LL81mLsz+5etcID4uRL+Jm+Wzs781fPDYtC
         8QMA7Ue4DXgxO0K/QrRSAnRF3ngUq7LMgoHJJWd3jGHwE8jzzYDd8qQ4kwSVX+5c8cWw
         56KD3Unj9VFgoU1MXQxMQCaek9h3ti71mXAUzVlT90B5pIIY+m0NnuYLFYTx032X2Q1W
         u57zzYyquDNT1zFsP61PLLNxsBl5k85w7U45Xfk1X4TdXbmcZkgnzp3G2bb1OYPF0no7
         avhg==
X-Forwarded-Encrypted: i=1; AJvYcCWe3MueXbQ5MZzIx9z03EyrM1QH5donUc/XBY1GRJuGp9+M4Ow/ZyG64jZUnZJ8PnZ8j1fN7UNsxZ0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwxLNlWgYagBjV1gFifcEmUjLrCOPjZZphTchMhTeyzMAGqxCUg
	tz3QsKaChXdTDck0DW6Me8LC1pPsz9Twm8VTz6IoHk4jHszDCz3dkzLoKxqrP+m0ho7yd/T8nzs
	=
X-Gm-Gg: ASbGncuO/H9WLjNLUri+m+ZI+WPKIPvay1pajck/ModECXpg7EBNE4nKC5QZxFulTGF
	90vvu2XVXtZYntzhEhwUXixjpXxFPFYnD+2gfL/ws0/rBZ0cFi3xfRK8PXXc8QK14H2BP9TJBCI
	6eSKXf2klxPUllD2FZopVPJzsjmW03yTRf5+shNG+9mMu+RVQ1vAv2eKKPbgVHWnfSRKZ5zH3ag
	dfI5Cjn7Bf183+H6fM5YdidcAq8YFFxJT7cTEAEP4Do4s70eTz2ge1IVd64dn+okSiQt7AvjisO
	5YEnt5rNmLNipzvy9cwybDYJwSFJRxS39H0Pl7O6g8IM31bt2wlIIL1kxvHoaoRoUap/FWM2+w+
	z44wgVoc+Cb5W+NZYTu7d05rpQdrYgA==
X-Google-Smtp-Source: AGHT+IHVwKBg9QjNQFncCiQkszkDM9a1epLnklZTwdUssNj1L9LvAOGT5P0auVL6emjxxl3Kqf4aVA==
X-Received: by 2002:a05:600c:190b:b0:43d:94:2d1e with SMTP id 5b1f17b1804b1-43eb5c188b3mr64118545e9.13.1743681815329;
        Thu, 03 Apr 2025 05:03:35 -0700 (PDT)
Message-ID: <fd08e366-7da6-45d2-b3c6-a63d732c5cc3@suse.com>
Date: Thu, 3 Apr 2025 14:03:33 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 01/11] ci: prevent grub unpacking initramfs
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
References: <cover.59b4d1e66776c1e577aa5dd5460605dc6c240613.1743678257.git-series.marmarek@invisiblethingslab.com>
 <e1d07b26a92a45ed387594dd789453def1ef1eb2.1743678257.git-series.marmarek@invisiblethingslab.com>
 <a64136e8-c74e-4f47-b52f-cd5b25c57b2e@suse.com>
 <d832f7c5-5a59-46c5-b5c6-109dd13a77e3@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: <d832f7c5-5a59-46c5-b5c6-109dd13a77e3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 03.04.2025 13:39, Andrew Cooper wrote:
> On 03/04/2025 12:29 pm, Jan Beulich wrote:
>> On 03.04.2025 13:04, Marek Marczykowski-Górecki wrote:
>>> It fails on larger initramfs (~250MB one) and sometimes even smaller
>>> depending on memory size/memory map, let Linux do it.
>> Iirc grub only unpacks gzip-ed modules, so wouldn't a yet better approach
>> be to use a better compressing algorithm, which simply as a side effect
>> would keep grub from decompressing it, while at the same time moving
>> farther away from any critical boundaries?
> 
> Yes and no.
> 
> This is going to change anyway when I (or a delgee) moves initrd
> generation from the test step itself into the test artefacts repo.
> 
> Switching to a slower algorithm will impact every test step right now.
> 
> Real systems doesn't see this in general, because it there's an
> uncompressed microcode container at the front, and it's not identified
> as being compressed at all.
> 
> I'd prefer to stick with Marek's patch in the short term.

Fair enough.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Apr 03 12:07:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 12:07:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.936748.1337920 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0JLZ-0007MB-9X; Thu, 03 Apr 2025 12:07:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 936748.1337920; Thu, 03 Apr 2025 12: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 1u0JLZ-0007M4-70; Thu, 03 Apr 2025 12:07:01 +0000
Received: by outflank-mailman (input) for mailman id 936748;
 Thu, 03 Apr 2025 12:06: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=lWYu=WV=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u0JLX-0007Lw-La
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 12:06:59 +0000
Received: from mail-wm1-x32c.google.com (mail-wm1-x32c.google.com
 [2a00:1450:4864:20::32c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 24a4aba7-1084-11f0-9eaa-5ba50f476ded;
 Thu, 03 Apr 2025 14:06:58 +0200 (CEST)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-43d0782d787so5195775e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 03 Apr 2025 05:06:58 -0700 (PDT)
Received: from [10.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-43ea8d1673dsm63722155e9.0.2025.04.03.05.06.57
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 03 Apr 2025 05:06:57 -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: 24a4aba7-1084-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743682018; x=1744286818; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=oUOEEAT0fdYR1j+yOGrKrOC7UgZ4pcUGyDF96IOo+iQ=;
        b=Q7qsLqA2hBW1+qj38AJ0y/r/w1UXCkblpkxJS8Z/sxjaam1FMmWhCIeFTqp7TUDVnd
         Waa73VxRLOh51v2L/iAHQoTZ36sQVHe3ruhI192u4Q+S9+IIX/0hkzFidjy+trushFfk
         AWwPPBRxKyhV1t+9/ltMQJD0bKRWtmDY0GbGvfAxKMt+JJKPNxl5SsFfsQSuO4aeJUzx
         wbr3Q3U/QhzdZvOptt8mfiDtI9JG7ijPsyMQP3wG5w+kixRheqt1FcsuGNp7I2Wkkojv
         ClCSLkKKYt4dALyR6K7l9fzm44EnIDNcRKY0cAi7NjjknKkfGZ0mZ059Qu3smQmZMAfp
         Q0wA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743682018; x=1744286818;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=oUOEEAT0fdYR1j+yOGrKrOC7UgZ4pcUGyDF96IOo+iQ=;
        b=iHt4jMgj5nR03KBvcGbRug7FprLFb90j1QqoNaHTShl6sReVAd45KO2TJLr3zA/MW7
         lv+EcBhskeCcYmy3guZnbsXQjAh77X97UwGdjUjxkH2d4TA0FjuGF3rWLivVYQZqG+2b
         9qZFVlHS4LMwOPrHA2O91y8go+qHA/5im8tE6T3NU4cJfsmj/NK/uReooHAybA+pETqq
         y4Wy+1yXS46W5NIHgKzT5qOim3VeLcUAerwKxaIhn5H05vYSTdwtJpaFcoAtcpei1+Pt
         ZxyJWEKk6Lp6yxM+kx6Hc9LN4GGI8/ewfcvkp07j49RjPJhxsqfMb9kykAIXffwPRUn1
         Cy1g==
X-Forwarded-Encrypted: i=1; AJvYcCUSSGYwlsv6U+hRlYusDIROB680eDK+EBT8Ip/s66TM9g8g+csSoLeeftxqLk9CGDXhkyL44kYwBTM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzFhV+ZEITfAa5tnVLpiIUwkVO/2fKGOLzthvMSsIP+HvuQphlF
	hzBEAT3UIaIVD2ICH4K2Wv4UtiaqhqIvcTXGwPaRxACExCdY+nSQuf8xT6QhxA==
X-Gm-Gg: ASbGnct54eP9TLfXZ/y1LSfnBrXxQuKCpfA45YYyysEH5J0mTEthgU6cxMFj8ZpBSFu
	C3C2IV4rLHUNWOxtvapS1+0c2/0JIJPPHlj6OUTRzelPWe0ceh1nSG8rUBdHF27uNoK9MzNmciJ
	0i2HTN0RIhmJXHOOunwXSAQiq/V2LF1tQ5JvtijyrufjJrwkhqIQj8CPUkN2fgk3FgkmE1RpcHt
	LNZtdhzPFfRB9AZ7yITkR5lqYNCaA2eCSMN1VVWW2gVMj36Ddox+/vWwBaYnSnpj2QFqdQz96sH
	yh/6SmQZ1bEz3ueL3L7gJFfsJO5mT+/uiyi/dU48CW4mv24pucEtEYhTblTBT6cDhK4DGW6TQ7P
	aTUcV4P0TRNDTPX68nM2E+xqeHrd9FUIERP+Ts00l
X-Google-Smtp-Source: AGHT+IGGEZvIwxMbdelq1TpjPwnitRk0RvL7PSiSTkCyTEwrYm0b/X77NTIKN9hiauMpV1B05XBwPg==
X-Received: by 2002:a05:600c:1382:b0:43d:b32:40aa with SMTP id 5b1f17b1804b1-43db61dc79bmr198048405e9.3.1743682018065;
        Thu, 03 Apr 2025 05:06:58 -0700 (PDT)
Message-ID: <3928bdd8-56d8-489a-ba6a-42ca3d93964b@suse.com>
Date: Thu, 3 Apr 2025 14:06:56 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/boot: re-order .init.data contributions
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: <b0266c19-d0e5-4de7-b2fb-a50e2766168c@suse.com>
 <b8200dc3-35a9-4ae5-a345-45f4c6143e55@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: <b8200dc3-35a9-4ae5-a345-45f4c6143e55@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 03.04.2025 14:02, Andrew Cooper wrote:
> On 01/04/2025 6:56 am, Jan Beulich wrote:
>> Putting a few bytes ahead of page tables isn't very efficient; there's
>> a gap almost worth a full page. To avoid re-ordering of items in the
>> source file, simply put the few small items in sub-section 1, for them
>> to end up after the page tables, followed (in the final binary) by non-
>> page-aligned items from other CUs.
>>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>>
>> --- a/xen/arch/x86/boot/head.S
>> +++ b/xen/arch/x86/boot/head.S
>> @@ -136,6 +136,7 @@ multiboot2_header:
>>  .Lno_nx_msg:   .asciz "ERR: Not an NX-capable CPU!"
>>  
>>          .section .init.data, "aw", @progbits
>> +        .subsection 1 /* Put data here after the page tables (in x86_64.S). */
>>          .align 4
>>  
>>          .word   0
> 
> Just as a note, this depends on the toolchain baseline bump, so can't be
> backported.
> 
> Clang-11 does now like subsection, so we can remove the !__clang__
> specialisation for UNLIKELY_{START,END}_SECTION.

Funny you should mention that: I did check before even making the change, and
in assembly code we used .subsection already before. We just needed to be
careful about inline assembly. See UNLIKELY_START() vs the two forms of
UNLIKELY_START_SECTION.

Irrespective of that: I had no intention to backport this.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Apr 03 12:25:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 12:25:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.936767.1337930 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0Jdg-0006B3-OI; Thu, 03 Apr 2025 12:25:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 936767.1337930; Thu, 03 Apr 2025 12:25: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 1u0Jdg-0006Aw-LL; Thu, 03 Apr 2025 12:25:44 +0000
Received: by outflank-mailman (input) for mailman id 936767;
 Thu, 03 Apr 2025 12:25: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=X4pi=WV=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1u0Jdf-0006Aq-6W
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 12:25:43 +0000
Received: from fhigh-b4-smtp.messagingengine.com
 (fhigh-b4-smtp.messagingengine.com [202.12.124.155])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bf1eae95-1086-11f0-9ffb-bf95429c2676;
 Thu, 03 Apr 2025 14:25:37 +0200 (CEST)
Received: from phl-compute-11.internal (phl-compute-11.phl.internal
 [10.202.2.51])
 by mailfhigh.stl.internal (Postfix) with ESMTP id 27A4825401BD;
 Thu,  3 Apr 2025 08:25:36 -0400 (EDT)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-11.internal (MEProxy); Thu, 03 Apr 2025 08:25:36 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 3 Apr 2025 08:25:34 -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: bf1eae95-1086-11f0-9ffb-bf95429c2676
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=fm2; t=1743683136;
	 x=1743769536; bh=zgwlwTNzCGdH3NPWh11FkbzBozSDnxWC3ARCo8yyOWE=; b=
	AdSndEGCF42eQiNxOUZuRnxr3fTJpbrWkDW0FRED+gWedy7aXp86BJGkWwbcTBot
	ZUPpjW1tfpY2ZVN7McGZJ01RJJ8py8BPsltFDQfVYxD7xbEoyFF3RcvZBR5ixWSl
	nSOLDUDui0bQKPr2bSP8yfnuapV8sosEdMaIIxytWw58kZTlRdaa0r0lt6Obj3HZ
	HoS9KxvzLFxJ8DNfBoPaPgvMvaZ8CRsd2wQZoHIEbesRtkU7ODC8nxRVZzHXIJWu
	B4xic6Miti0/S1cYs+MLGcoWsmdeWQIz5LiZ+HGSM/wq6IOrDTzi7CqrClRCwXp3
	Ly3Rmt3QJ3E5B3gLXQIoIg==
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=fm2; t=
	1743683136; x=1743769536; bh=zgwlwTNzCGdH3NPWh11FkbzBozSDnxWC3AR
	Co8yyOWE=; b=umk23coZ0SlmfUhXM8KXJvrKzQXK5GCg2zgdeh7Ppc1OqgikOdQ
	dI64l1LP8uHWsmvH3hL75IahnzeTiISr/i3dMN/WJpd7xBZvKetAHFLT0jKihV+5
	G5bsdGPE4/CEQlDQzC4nMd0As88QRL8HHfHxd5W6JFYeGYgAHWG8ML4Fb2JXtcw+
	jNZTrUJ62CYRybRL5Ks7LtcqSSqdLt/+eKNK6tOcLEFwfhpOTGGXwHaEFA8nndsP
	/BFw5rrcLE1SEJENmIht9BxVQ9SQhvskRjfjfR6upvmh9bQmJQhMXXr11ck++eYr
	NWFhagBZIk3RuJEL8L3V57P/Aiv2JEjUq7g==
X-ME-Sender: <xms:P37uZ50uZMhwHBbP84-1gNLuaK-lkbDQneyM2LsgG-3eBtuoXd0qkA>
    <xme:P37uZwEDO7utwRX4C0z2zcH0P1NvLg3Aq-dkDcTr_fwPScAmw3NoueBvlj-Wd5B1w
    qCuIVTyGsPt9g>
X-ME-Received: <xmr:P37uZ56FH1d24wqUnKYFfwv1hU1U_V89xNSzAyQePwUGoD7qZo96iiqqci_P08vPrqhxyYOy7vENn4WY6py9-71_IADL5B6B7w>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddukeekheehucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
    pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
    gvnhhtshculddquddttddmnecujfgurhepfffhvfevuffkfhggtggujgesghdtreertddt
    jeenucfhrhhomhepofgrrhgvkhcuofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuc
    eomhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecu
    ggftrfgrthhtvghrnhepgfduleetfeevhfefheeiteeliefhjefhleduveetteekveettd
    dvgeeuteefjedunecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhf
    rhhomhepmhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomh
    dpnhgspghrtghpthhtohephedpmhhouggvpehsmhhtphhouhhtpdhrtghpthhtohepjhgs
    vghulhhitghhsehsuhhsvgdrtghomhdprhgtphhtthhopegrnhgurhgvfidrtghoohhpvg
    hrfeestghithhrihigrdgtohhmpdhrtghpthhtoheptggrrhguohgvsegtrghrughovgdr
    tghomhdprhgtphhtthhopehsshhtrggsvghllhhinhhisehkvghrnhgvlhdrohhrghdprh
    gtphhtthhopeigvghnqdguvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhr
    gh
X-ME-Proxy: <xmx:P37uZ21EA-Fbh5xj5QRdna_2kDkzKz4llOspPnZTgVMwJyx5T1ViAA>
    <xmx:P37uZ8HUnZRhfdHl5lKA1okNBvC0lR9h5XrXb8Fdrw-4j9WmmWW5AQ>
    <xmx:P37uZ3-YKxWu5ubGYlu-jQDo88r2NTcJOmonK-oYSovsubE-CWv98g>
    <xmx:P37uZ5mZQ1h14TiYCbtmq3V3-PmobQnGlXsbtzpas302Kbj4mDhmgw>
    <xmx:P37uZx2KhALQNJBnfTMSmeyiY7bo-GhZbr6HyPC37D9gzg1giEjlHMVK>
Feedback-ID: i1568416f:Fastmail
Date: Thu, 3 Apr 2025 14:25:32 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v1 02/11] ci: increase timeout for hw tests
Message-ID: <Z-5-PBcbtUOCSAiv@mail-itl>
References: <cover.59b4d1e66776c1e577aa5dd5460605dc6c240613.1743678257.git-series.marmarek@invisiblethingslab.com>
 <7578489af5c7df525d4c82231b68bbb7d955d2b4.1743678257.git-series.marmarek@invisiblethingslab.com>
 <9e4660fc-b78f-4323-8a1b-aca3d410edd3@suse.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="HpxtcURhaqsRspkz"
Content-Disposition: inline
In-Reply-To: <9e4660fc-b78f-4323-8a1b-aca3d410edd3@suse.com>


--HpxtcURhaqsRspkz
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Thu, 3 Apr 2025 14:25:32 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v1 02/11] ci: increase timeout for hw tests

On Thu, Apr 03, 2025 at 01:32:38PM +0200, Jan Beulich wrote:
> On 03.04.2025 13:04, Marek Marczykowski-G=C3=B3recki wrote:
> > It appears as sometimes it takes more time for Xen even start booting,
> > mostly due to firmware and fetching large boot files by grub. In some
> > jobs the current timeout is pretty close to the actual time needed, and
> > sometimes (rarely for now) test fails due to timeout expiring in the
> > middle of dom0 booting. This will be happening more often if the
> > initramfs will grow (and with more complex tests).
>=20
> With that, ...
>=20
> > This has been observed on some dom0pvh-hvm jobs, at least on runners hw3
> > and hw11.
> >=20
> > Increase the timeout by yet another 60s (up to 180s now).
>=20
> ... is this little a bump going to be sufficient? How about moving straig=
ht
> to 5min?

I don't like this, as many (most) actual failures are visible as timeout
(for example panic that prevents reaching Alpine prompt). One
improvement I can see is splitting this into two separate timeouts: one
before seeing the first line from Xen and then the second one for
reaching Alpine login prompt. The first one can be longer as its mostly
about firmware+fetching boot files and shouldn't hit on crashes (unless
a crash happen before printing anything on the console - but those are
rare).

> As to observed failing jobs - the PV Dom0 boot failure seen today looks to
> also be due to too short a timeout.

As responded on Matrix, I'm not so sure, there is over 1m wait after
"Built 1 zonelists, mobility grouping on.  Total pages: 8228487" line
=66rom dom0 (or a bit later, due to buffering by sed), while in successful
test next lines follow instantaneously.

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmfufjwACgkQ24/THMrX
1yxQfwf7B3erNxfwdP8M6xErtOisjCkENZOPtm63gUzStPJakX2qEqycfCGncf7D
4rfprv321vgK9+zO+/jl6QlwW3rpIKLlpt7koBSwDF1cvd761uZl7nCwcHXSI+t4
voHSxHB7PEWG8K4yDFwo0KyWc6ijQ3FWzoAzTnFECQXHc03W1GCHg/ewh8AycLM0
5gii3JUBFb4DAku+JyoirZY7VsfLG8yr2bbfW2BaukkpU0Vlj7+N37E1Gw6GZ9WO
FLv1cQKaJaTeWgk3TFhG8asmvOOplf0ocAdZimi8RjJtM4478OpYcEUw73otbuYh
NK7121JFR5L4FK7xLQEeBgIAsOMHaA==
=CnYR
-----END PGP SIGNATURE-----

--HpxtcURhaqsRspkz--


From xen-devel-bounces@lists.xenproject.org Thu Apr 03 12:44:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 12:44:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.936782.1337940 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0Jw4-0003GC-An; Thu, 03 Apr 2025 12:44:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 936782.1337940; Thu, 03 Apr 2025 12:44: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 1u0Jw4-0003G5-87; Thu, 03 Apr 2025 12:44:44 +0000
Received: by outflank-mailman (input) for mailman id 936782;
 Thu, 03 Apr 2025 12:44: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=K4Uf=WV=bounce.vates.tech=bounce-md_30504962.67ee82b4.v1-ef2deb9bb0604966a35dd64b54b3996a@srs-se1.protection.inumbo.net>)
 id 1u0Jw3-0003Fv-4v
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 12:44:43 +0000
Received: from mail186-2.suw21.mandrillapp.com
 (mail186-2.suw21.mandrillapp.com [198.2.186.2])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 66a76c71-1089-11f0-9ffb-bf95429c2676;
 Thu, 03 Apr 2025 14:44:37 +0200 (CEST)
Received: from pmta10.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail186-2.suw21.mandrillapp.com (Mailchimp) with ESMTP id 4ZT1dw2K9fzS62T5h
 for <xen-devel@lists.xenproject.org>; Thu,  3 Apr 2025 12:44:36 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 ef2deb9bb0604966a35dd64b54b3996a; Thu, 03 Apr 2025 12:44: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: 66a76c71-1089-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1743684276; x=1743954276;
	bh=x3Lf/29479RVu7L2xkSakMwsgOtskg4f3A7BD13Z4KM=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=w8N28Lq92U3OwTReyaXPxGw/bdOvk3kwLUnFKDA6pTMooDUSMBJBzLrIaObtndvwa
	 F4hY8+yozwzk7PgohieIvJmWkflRYrAb7Z7bziclRoLpSeovRZFLJ/YAair4yQ2ZhX
	 O6z214kMVofN+9pB/HwRuUXDZoOe1k4cEVoVuIMvAL1cq589direVXM7yVndhQUckF
	 UdBFDtUdm053l6BmjSHKcvjxhzax4bdBDg5Aux8MaPZogoFLGrzXxfnyzx+cvELECC
	 lLaB8dpsZP5nWtwjIQf+lj8tcEUr499kBmfCRUBl++e0HVKRsXcBhCuwhcDKyuJs5q
	 db15XbC8ew4kw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1743684276; x=1743944776; i=teddy.astie@vates.tech;
	bh=x3Lf/29479RVu7L2xkSakMwsgOtskg4f3A7BD13Z4KM=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=yKEjCQdx0SgeHMTDk9ttmbzS5qlY3zWYUdvK3/KApcG87YIh21qh8KV2aFi2rLtCJ
	 Y03ZHQIzOXdHVeHhEAvtHhTx1BEaUAWVi1Y9GwaU4j/9pHkAM+qR2v9Q2CeQJ4FqF5
	 YJpvWFf2PT+rU9XkV0NSChJSDXP9uFm6mnQqVq7hYQTBxybl9VbgQBjSC3QyzWQfC5
	 TYicGEzdSYy+rI59wcVvRD8kR6T3Rg+TAqv1X1v+GX6rx0jSR6EoSMbMNOFZee2xan
	 DhPvo/r3/YBdbhZOFPd2argFYWJeovY/+/TTHV6bMGD2Qa2AKtI1QkJM2JxHDZv0OP
	 N+uodlHl/uGDA==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[RFC=20PATCH]=20x86/amd:=20Add=20support=20for=20AMD=20TCE?=
X-Mailer: git-send-email 2.47.2
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1743684275373
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: <6b751a400df49217defc89a19b3ac2ca33ab7690.1743683787.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.ef2deb9bb0604966a35dd64b54b3996a?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250403:md
Date: Thu, 03 Apr 2025 12:44:36 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

AMD Translation Cache Extension is a flag that can be enabled in the EFER MSR to optimize
some TLB flushes. Enable this flag if supported by hardware.

AMD Architecture Developer Manual describe this feature as follow
> Setting this bit to 1 changes how the INVLPG, INVLPGB, and INVPCID instructions operate
> on TLB entries. When this bit is 0, these instructions remove the target PTE from the
> TLB as well as all upper-level table entries that are cached in the TLB, whether or not
> they are associated with the target PTE. When this bit is set, these instructions will
> remove the target PTE and only those upper-level entries that lead to the target PTE in
> the page table hierarchy, leaving unrelated upper-level entries intact. This may provide
> a performance benefit.

Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
---
RFC:
 - is this change actually safe ?
 - should we add a tce/no-tce option to opt-in/out this feature ?
 - is this flag enabled at the right moment during boot ?
---
 xen/arch/x86/include/asm/cpufeature.h       | 1 +
 xen/arch/x86/include/asm/msr-index.h        | 1 +
 xen/arch/x86/setup.c                        | 7 +++++++
 xen/arch/x86/smpboot.c                      | 3 +++
 xen/include/public/arch-x86/cpufeatureset.h | 1 +
 5 files changed, 13 insertions(+)

diff --git a/xen/arch/x86/include/asm/cpufeature.h b/xen/arch/x86/include/asm/cpufeature.h
index 05399fb9c9..ab6d07b767 100644
--- a/xen/arch/x86/include/asm/cpufeature.h
+++ b/xen/arch/x86/include/asm/cpufeature.h
@@ -114,6 +114,7 @@ static inline bool boot_cpu_has(unsigned int feat)
 #define cpu_has_xop             boot_cpu_has(X86_FEATURE_XOP)
 #define cpu_has_skinit          boot_cpu_has(X86_FEATURE_SKINIT)
 #define cpu_has_fma4            boot_cpu_has(X86_FEATURE_FMA4)
+#define cpu_has_tce             boot_cpu_has(X86_FEATURE_TCE)
 #define cpu_has_tbm             boot_cpu_has(X86_FEATURE_TBM)
 
 /* CPUID level 0x0000000D:1.eax */
diff --git a/xen/arch/x86/include/asm/msr-index.h b/xen/arch/x86/include/asm/msr-index.h
index 22d9e76e55..d7b3a4bc40 100644
--- a/xen/arch/x86/include/asm/msr-index.h
+++ b/xen/arch/x86/include/asm/msr-index.h
@@ -200,6 +200,7 @@
 #define  EFER_NXE                           (_AC(1, ULL) << 11) /* No Execute Enable */
 #define  EFER_SVME                          (_AC(1, ULL) << 12) /* Secure Virtual Machine Enable */
 #define  EFER_FFXSE                         (_AC(1, ULL) << 14) /* Fast FXSAVE/FXRSTOR */
+#define  EFER_TCE                           (_AC(1, ULL) << 15) /* Translation Cache Extensions */
 #define  EFER_AIBRSE                        (_AC(1, ULL) << 21) /* Automatic IBRS Enable */
 
 #define EFER_KNOWN_MASK \
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index d70abb7e0c..96f200f853 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -2008,6 +2008,13 @@ void asmlinkage __init noreturn __start_xen(void)
     if ( cpu_has_pku )
         set_in_cr4(X86_CR4_PKE);
 
+    if ( boot_cpu_has(X86_FEATURE_TCE) )
+    {
+        printk("Enabling AMD TCE\n");
+
+        write_efer(read_efer() | EFER_TCE);
+    }
+
     if ( opt_invpcid && cpu_has_invpcid )
         use_invpcid = true;
 
diff --git a/xen/arch/x86/smpboot.c b/xen/arch/x86/smpboot.c
index 54207e6d88..fbd1710720 100644
--- a/xen/arch/x86/smpboot.c
+++ b/xen/arch/x86/smpboot.c
@@ -372,6 +372,9 @@ void asmlinkage start_secondary(void *unused)
 
     microcode_update_one();
 
+    if ( boot_cpu_has(X86_FEATURE_TCE) )
+        write_efer(read_efer() | EFER_TCE);
+
     /*
      * If any speculative control MSRs are available, apply Xen's default
      * settings.  Note: These MSRs may only become available after loading
diff --git a/xen/include/public/arch-x86/cpufeatureset.h b/xen/include/public/arch-x86/cpufeatureset.h
index cc6e984a88..a0c8d561fb 100644
--- a/xen/include/public/arch-x86/cpufeatureset.h
+++ b/xen/include/public/arch-x86/cpufeatureset.h
@@ -170,6 +170,7 @@ XEN_CPUFEATURE(SKINIT,        3*32+12) /*   SKINIT/STGI instructions */
 XEN_CPUFEATURE(WDT,           3*32+13) /*   Watchdog timer */
 XEN_CPUFEATURE(LWP,           3*32+15) /*   Light Weight Profiling */
 XEN_CPUFEATURE(FMA4,          3*32+16) /*A  4 operands MAC instructions */
+XEN_CPUFEATURE(TCE,           3*32+17) /*   Translation Cache Extension support */
 XEN_CPUFEATURE(NODEID_MSR,    3*32+19) /*   NodeId MSR */
 XEN_CPUFEATURE(TBM,           3*32+21) /*A  trailing bit manipulations */
 XEN_CPUFEATURE(TOPOEXT,       3*32+22) /*   topology extensions CPUID leafs */
-- 
2.47.2



Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech


From xen-devel-bounces@lists.xenproject.org Thu Apr 03 12:59:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 12:59:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.936796.1337949 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0K9v-0006Gl-FH; Thu, 03 Apr 2025 12:59:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 936796.1337949; Thu, 03 Apr 2025 12:59:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0K9v-0006Ge-Cn; Thu, 03 Apr 2025 12:59:03 +0000
Received: by outflank-mailman (input) for mailman id 936796;
 Thu, 03 Apr 2025 12:59: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=lWYu=WV=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u0K9t-0006GY-P8
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 12:59:01 +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 68c3b882-108b-11f0-9ffb-bf95429c2676;
 Thu, 03 Apr 2025 14:58:59 +0200 (CEST)
Received: by mail-wr1-x42f.google.com with SMTP id
 ffacd0b85a97d-39ac56756f6so727014f8f.2
 for <xen-devel@lists.xenproject.org>; Thu, 03 Apr 2025 05:58:59 -0700 (PDT)
Received: from [10.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-39c301acec9sm1726695f8f.40.2025.04.03.05.58.58
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 03 Apr 2025 05:58:58 -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: 68c3b882-108b-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743685139; x=1744289939; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=S1QIWdaGEp2LTommQ3D6DVdTGqzR5j+T0OjAeGiVB2U=;
        b=U5CJ856ePwXRC8OSeRZfdxm5OZO/jiX/gZxJmHE20+X4I8YZSUJOGI3PPgpasS2Ms5
         YGuiOztnGXi+xTOXUCQgms3x9i1+1Iu3nqfeVVJHoQ7jL354pOEeERfesgQ1zTFiVtF4
         XsJPqULiaaRApwZfwaYOjRA9fpP8Kz18rGrcC9ahRTDLH8kvfZeLDuDckmJ7/TcVpuQl
         mFbuCm5AJvseujQLY3FSdU0Vz1MTKUjCuyO27yXeP1BJXxfkivz+O4SyQwbQlnEjjBrO
         Dq1zFGiM9wmtnJxZbj/VN0JernmszuplTYCWf8uAh11OHnlTfBDEHBZhSiv8hIT5mSYp
         m/fA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743685139; x=1744289939;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=S1QIWdaGEp2LTommQ3D6DVdTGqzR5j+T0OjAeGiVB2U=;
        b=lJq8hAIpGsEuFmbn78EIiUEGmJO1g98gHeju/n8c7lNpm6fM1cW8OnykLYWmrjhDs0
         2Xm/7PBK7Skety+buf/VK8MtRzT3KOZbO1nPtuz1ZnJyhmx/CEpHPeP2hnf9xTfoLdI+
         XFrbJlBUAS2iZasY2YYcYGTJYhJys2OJyybXlSq7xuvhRDj62cXH0hSh0Qjc4T2ki7KN
         qsBIzOHtfyv02ggB3LWZej8qYTpFVP9zcL9ZKlZMuupXqxTemv3nnbbbQT5nl9uNxEMy
         XnPWUH0I6aNVW8q2h1XS5yu6e3hKi8P9bM5e+wFwKIBoU+fAHUamdwP++9upOei9hvjf
         C9uQ==
X-Forwarded-Encrypted: i=1; AJvYcCXq1p3aXhCeQ+k6qmdjz/N9cGGrkosUsj8kNE0Hf8Rgo6JTjJMcBuVK79w7e3+el28qvdJsUxDnk88=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwVao2ldJVWlJCDQAzwpWI5kll+K6icsXCI7b1vNsbrpg3SvyYL
	zzpUfM0y3j7wOeeEakKHdUR+XlkJYOVOPapGFvTjca7sl7XuNXKhWq72Mw/VuQ==
X-Gm-Gg: ASbGncsdlL71C67YzUZYijLwO0w66S4gSd/AafcZ6HjE1tPRdm9r0xG7ytuI8skOQwn
	ibQjrpWmyOj0s5c0OMDBfBuzGF/mXTFhf/6KYbADL8ZSTRV37s0RD29V+kEqb0kbuEgY6uYyXeU
	EBNFe4KrmI/khikueIVRWsG3ZxjWjIlRP0sWzeDUjWh+eTCesprRob01l4b2KXPhsJNB0UfnGmd
	jZ/ZwaKvT6601wt82uCzLs/OhZx7NZsSt80AchuXj2FbwQeSMDT/zlqOdFwAcPP4oncgQOW6JIn
	D+YRIHXhClv/m5Du1LK0uhXjw5iXQz/VjAnTYByViQCZ7J4DCPCVPn2urbRzf9uNW69Dd75G7BR
	9H2Bjf3SxfHF2kxYfTyq6TExl+Vb/xw==
X-Google-Smtp-Source: AGHT+IH6CYnHHGUM/RSMVL0NvUwc1iU2iBWp/NLV31QiDMqkCHXyfZ1RgJmdT1/zmPFVr5/yP7FREA==
X-Received: by 2002:a05:6000:1acb:b0:391:212:459a with SMTP id ffacd0b85a97d-39c2f8dd8bcmr2241154f8f.22.1743685138774;
        Thu, 03 Apr 2025 05:58:58 -0700 (PDT)
Message-ID: <73b1dd32-c15e-46c4-982c-9b7a33c8785b@suse.com>
Date: Thu, 3 Apr 2025 14:58:57 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH] x86/amd: Add support for AMD TCE
To: Teddy Astie <teddy.astie@vates.tech>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <6b751a400df49217defc89a19b3ac2ca33ab7690.1743683787.git.teddy.astie@vates.tech>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <6b751a400df49217defc89a19b3ac2ca33ab7690.1743683787.git.teddy.astie@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 03.04.2025 14:44, Teddy Astie wrote:
> AMD Translation Cache Extension is a flag that can be enabled in the EFER MSR to optimize
> some TLB flushes. Enable this flag if supported by hardware.
> 
> AMD Architecture Developer Manual describe this feature as follow
>> Setting this bit to 1 changes how the INVLPG, INVLPGB, and INVPCID instructions operate
>> on TLB entries. When this bit is 0, these instructions remove the target PTE from the
>> TLB as well as all upper-level table entries that are cached in the TLB, whether or not
>> they are associated with the target PTE. When this bit is set, these instructions will
>> remove the target PTE and only those upper-level entries that lead to the target PTE in
>> the page table hierarchy, leaving unrelated upper-level entries intact. This may provide
>> a performance benefit.
> 
> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
> ---
> RFC:
>  - is this change actually safe ?

Well, before getting here with reading I was already about to ask this very
question. It's really you who needs to prove it.

>  - should we add a tce/no-tce option to opt-in/out this feature ?

Unless we're entirely certain we got this right and didn't overlook any
corner case, perhaps better to do so.

>  - is this flag enabled at the right moment during boot ?

If (as you appear to take as a base assumption) our code is safe towards
this behavioral change, then it would be largely irrelevant when you set
the bit. So to answer this question the first point above needs sorting.


> --- a/xen/arch/x86/include/asm/cpufeature.h
> +++ b/xen/arch/x86/include/asm/cpufeature.h
> @@ -114,6 +114,7 @@ static inline bool boot_cpu_has(unsigned int feat)
>  #define cpu_has_xop             boot_cpu_has(X86_FEATURE_XOP)
>  #define cpu_has_skinit          boot_cpu_has(X86_FEATURE_SKINIT)
>  #define cpu_has_fma4            boot_cpu_has(X86_FEATURE_FMA4)
> +#define cpu_has_tce             boot_cpu_has(X86_FEATURE_TCE)

If you add this, ...

> --- a/xen/arch/x86/setup.c
> +++ b/xen/arch/x86/setup.c
> @@ -2008,6 +2008,13 @@ void asmlinkage __init noreturn __start_xen(void)
>      if ( cpu_has_pku )
>          set_in_cr4(X86_CR4_PKE);
>  
> +    if ( boot_cpu_has(X86_FEATURE_TCE) )

... the please also use it.

> --- a/xen/arch/x86/smpboot.c
> +++ b/xen/arch/x86/smpboot.c
> @@ -372,6 +372,9 @@ void asmlinkage start_secondary(void *unused)
>  
>      microcode_update_one();
>  
> +    if ( boot_cpu_has(X86_FEATURE_TCE) )
> +        write_efer(read_efer() | EFER_TCE);

Same here. But I wonder if you couldn't set the bit in trampoline_efer.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Apr 03 13:00:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 13:00:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.936807.1337960 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0KBP-0007rZ-R7; Thu, 03 Apr 2025 13:00:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 936807.1337960; Thu, 03 Apr 2025 13:00: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 1u0KBP-0007rS-N5; Thu, 03 Apr 2025 13:00:35 +0000
Received: by outflank-mailman (input) for mailman id 936807;
 Thu, 03 Apr 2025 13:00: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=cGow=WV=bounce.vates.tech=bounce-md_30504962.67ee866f.v1-1f748e6c7f4c4a6c8618dfa17ce7b8a8@srs-se1.protection.inumbo.net>)
 id 1u0KBO-0007rM-AH
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 13:00:34 +0000
Received: from mail180-44.suw31.mandrillapp.com
 (mail180-44.suw31.mandrillapp.com [198.2.180.44])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9ff7d80d-108b-11f0-9eaa-5ba50f476ded;
 Thu, 03 Apr 2025 15:00:32 +0200 (CEST)
Received: from pmta11.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail180-44.suw31.mandrillapp.com (Mailchimp) with ESMTP id
 4ZT20H0W9Vz705bZH
 for <xen-devel@lists.xenproject.org>; Thu,  3 Apr 2025 13:00:31 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 1f748e6c7f4c4a6c8618dfa17ce7b8a8; Thu, 03 Apr 2025 13:00: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: 9ff7d80d-108b-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1743685231; x=1743955231;
	bh=PtWh1hVlkS5h3kJsg3a8eQ616S5HQJRll+KdsJj75oE=;
	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=AqSV5kMjyzO63F04rzzSsMIVZQPGdqbeGk6m7JHh3HBUXyASlzgQh4niSGbp3+zed
	 SUFt4KtIvOC5yl5cs469gotkdIq9CFIgzQBoiXFjTiMtFJp1VwCfKrQU+MqpTQWyFQ
	 yYx1rJbEEmH33jEZttVndMQ8MYKeJwKyRArrUJv1nT7MTE88x6svx1T69Q9nO1uIzh
	 MCQzbtpn5hOlkFJYM4QCjsLYvbdg5dZ+2PAuKKDFLdFAmYs0EMb3apiRRRjEkkbtL4
	 5w3mmTnHzGYsCcj6mUE01sDM84k8HPN6zZxVI2rh1K4nZs3bbI1sB2xE5Grukb7tNv
	 VZ+7M3BXrM6oA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1743685231; x=1743945731; i=anthony.perard@vates.tech;
	bh=PtWh1hVlkS5h3kJsg3a8eQ616S5HQJRll+KdsJj75oE=;
	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=jcl4unUa/oe2vYQkJ30Iwe4nQLfX6BOTEwq7v5XyE817lJwOLpypSD7civAq05Q4J
	 tb9WYJKuHjSPMB9wXb10NzvByte3E32D7PeDu+86esy+NAyw2PQ7yKnM1cQentsr7N
	 yGSIdGw7JaRy8nf7AHGootXkd7aLtrjF9+8jhht/6w5s2to+k7IFRVqGBjqPM1+p31
	 DOiE0nAcpKWEQMjRfUe1aivqKoVjCNYFkD0mjYPGxuBctOF4nNVjkoxXl0/hfhx0WJ
	 H093QEsqELs4P9+GW1j5P+VeGos/f4AC+8Qu/B6w3ZLuxj4hJ4MVq1hwQw9FLGxwV1
	 K9dLRTkGmvEhQ==
From: "Anthony PERARD" <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH]=20x86emul:=20replace=20=5FBYTES=5FPER=5FLONG?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1743685229930
To: "Jan Beulich" <jbeulich@suse.com>
Cc: xen-devel@lists.xenproject.org, "Andrew Cooper" <andrew.cooper3@citrix.com>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>
Message-Id: <Z-6GbdlgaZ7fDPPs@l14>
References: <09082f8f-5c1a-43c9-9b84-19d832e0849d@suse.com>
In-Reply-To: <09082f8f-5c1a-43c9-9b84-19d832e0849d@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.1f748e6c7f4c4a6c8618dfa17ce7b8a8?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250403:md
Date: Thu, 03 Apr 2025 13:00:31 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Mon, Mar 31, 2025 at 05:52:27PM +0200, Jan Beulich wrote:
> We can now easily use __SIZEOF_LONG__ instead. For this to also work in
> the test harness, move hvmloader's STR() to common-macros.h.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Acked-by: Anthony PERARD <anthony.perard@vates.tech>

> Quite likely libxl{,u}_internal.h's STRINGIFY() could then also be
> replaced.

Sounds good. It seems the different between STR() and TOSTRING() is that
a comma can be use as well with STR, so not really a useful difference.

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 Apr 03 13:16:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 13:16:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.936822.1337970 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0KQJ-0003jB-2c; Thu, 03 Apr 2025 13:15:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 936822.1337970; Thu, 03 Apr 2025 13:15: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 1u0KQI-0003j4-VT; Thu, 03 Apr 2025 13:15:58 +0000
Received: by outflank-mailman (input) for mailman id 936822;
 Thu, 03 Apr 2025 13:15: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=AIOE=WV=bounce.vates.tech=bounce-md_30504962.67ee8a09.v1-2714fdff1a4e4d1da47dff16fb2cf74c@srs-se1.protection.inumbo.net>)
 id 1u0KQG-0003iy-Qg
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 13:15:57 +0000
Received: from mail180-44.suw31.mandrillapp.com
 (mail180-44.suw31.mandrillapp.com [198.2.180.44])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c5e151eb-108d-11f0-9eaa-5ba50f476ded;
 Thu, 03 Apr 2025 15:15:55 +0200 (CEST)
Received: from pmta11.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail180-44.suw31.mandrillapp.com (Mailchimp) with ESMTP id
 4ZT2L14npzz7064Cq
 for <xen-devel@lists.xenproject.org>; Thu,  3 Apr 2025 13:15:53 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 2714fdff1a4e4d1da47dff16fb2cf74c; Thu, 03 Apr 2025 13:15: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: c5e151eb-108d-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1743686153; x=1743956153;
	bh=pzx4TDn/ynKuZwN05x58kluDiwnrY6WdDIR6vuLWe6Y=;
	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=gOco+M8k3kveeT5THqmORh+oGihqtl8NbCopgeVvoezWsS5wMxU69aUY22v6TiB38
	 dR2zJazdnb1j5qroSNUTboydxSj9p/z/uws8EtyEOoH6Pp8tz25TEDrqXhB3qMjVb4
	 s/wLRQz5ExTEdFPvnyVePzuK44L7s9Aq4pxhej3RiYomA3F5Q+j1h8ONN9JkqfiUPC
	 EVaVpJLoTW5Eg+P78bGrEZOFnrgcxzA0BEFOoHHGz//cS3QCEDpKKUHt3Ld0DCRxRR
	 PiTOpAeEyc4V5wn/Hfz3kmFw0ReBgoPw0JUKTzB74PLJZe0pYNhLWp3a5+y63F96Dl
	 z4fB3aWGwWnvg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1743686153; x=1743946653; i=anthony.perard@vates.tech;
	bh=pzx4TDn/ynKuZwN05x58kluDiwnrY6WdDIR6vuLWe6Y=;
	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=RaSkQ2Fj8B1xDu4KFQ1mQ2efXIh31OPoKHAOuJEXhOBbY+ac1NxtIiBYMSeEA+kdm
	 MfpYcdBh5t3JzvMAOjYeuKdkF7Am4CpAhzC3Cxu/5MteJinzIC0lABj0bRh7pxvyZw
	 kwXLh2RW0q0SUSCyxuiZp6Xesi/c/W01938NuyjfH3YvoJrRXQKg00janj5jtMwPp6
	 ssQ/HmbD85gRCW01t7nzy9CXNEqT/QAvsBmjYv19BdlfMBdTZymUcbMslTEX6NpKC7
	 /sVSjnWGJ/VeZGm2kcO1m7DDmF4kPNAm01Pv3UEEqI48C5X6huONReksgJyp3CSIKF
	 kk8t62obf0mIw==
From: "Anthony PERARD" <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=20v3=203/3]=20xen:=20debug:=20gcov:=20add=20condition=20coverage=20support?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1743686152338
To: "Jan Beulich" <jbeulich@suse.com>
Cc: "Volodymyr Babchuk" <Volodymyr_Babchuk@epam.com>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "Michal Orzel" <michal.orzel@amd.com>, "Julien Grall" <julien@xen.org>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Stefano Stabellini" <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
Message-Id: <Z-6KA1Kto8PIJJkI@l14>
References: <20250401011744.2267367-1-volodymyr_babchuk@epam.com> <20250401011744.2267367-4-volodymyr_babchuk@epam.com> <7281b7d8-ba7b-4658-82f1-a63d66c1baff@suse.com>
In-Reply-To: <7281b7d8-ba7b-4658-82f1-a63d66c1baff@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.2714fdff1a4e4d1da47dff16fb2cf74c?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250403:md
Date: Thu, 03 Apr 2025 13:15:53 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Thu, Apr 03, 2025 at 09:30:21AM +0200, Jan Beulich wrote:
> On 01.04.2025 03:17, Volodymyr Babchuk wrote:
> > --- a/xen/Rules.mk
> > +++ b/xen/Rules.mk
> > @@ -138,6 +138,9 @@ ifeq ($(CONFIG_CC_IS_CLANG),y)
> >      COV_FLAGS := -fprofile-instr-generate -fcoverage-mapping
> >  else
> >      COV_FLAGS := -fprofile-arcs -ftest-coverage
> > +ifeq ($(CONFIG_CONDITION_COVERAGE),y)
> > +    COV_FLAGS += -fcondition-coverage
> > +endif
> >  endif
> 
> Personally I find ifeq() uses like this unhelpful, and would prefer
> 
> COV_FLAGS-$(CONFIG_CONDITION_COVERAGE) += -fcondition-coverage
> together with an eventual
> 
> COV_FLAGS += $(COV_FLAGS-y)
> 
> (if we don't already have one).

Not we don't. About renaming $(COV_FLAGS) to $(cov-flags-y) instead? It
is simpler as we stay with a single variable for coverage flags.

-- 

Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech


From xen-devel-bounces@lists.xenproject.org Thu Apr 03 13:50:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 13:50:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.936834.1337979 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0Ky4-00055W-Cn; Thu, 03 Apr 2025 13:50:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 936834.1337979; Thu, 03 Apr 2025 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 1u0Ky4-00055P-A9; Thu, 03 Apr 2025 13:50:52 +0000
Received: by outflank-mailman (input) for mailman id 936834;
 Thu, 03 Apr 2025 13: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=veT/=WV=bounce.vates.tech=bounce-md_30504962.67ee922c.v1-f726adaef1844703bcd15d87ca759d97@srs-se1.protection.inumbo.net>)
 id 1u0Ky2-00050L-Up
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 13:50:51 +0000
Received: from mail186-2.suw21.mandrillapp.com
 (mail186-2.suw21.mandrillapp.com [198.2.186.2])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9f57a323-1092-11f0-9ffb-bf95429c2676;
 Thu, 03 Apr 2025 15:50:38 +0200 (CEST)
Received: from pmta10.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail186-2.suw21.mandrillapp.com (Mailchimp) with ESMTP id 4ZT3644XCWzS62QKQ
 for <xen-devel@lists.xenproject.org>; Thu,  3 Apr 2025 13:50:36 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 f726adaef1844703bcd15d87ca759d97; Thu, 03 Apr 2025 13:50: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: 9f57a323-1092-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1743688236; x=1743958236;
	bh=v8m0m53wPhMYCjDNngI1b33QpaUIzevS7ajRoSVZcEg=;
	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=tlccBWJpBnvFY3UiqC6Cou8EUwh1it7HFb3en8xQYFgXuEktjXHXTxRfszmQw0mZp
	 ri8hZBULwy6+1+hgFnUoHgtOXjtl3H0VmHiMVemh014kNPpk/j+GZr2aJABcIB3f8T
	 RqQiiIu9A58O6PPhjydNk7AgolDDSNulHy8XV7ICZKsD3MkDUletmNCPwYy3BBm5/n
	 u5Pp2i8GVIDD5CIUdd/PDoo4H+WCeQGNqpKfPefcv2E87il0J9aHOCvgjbg/GNIEBo
	 k/cPL2+wSRbo8K4DAgQDClYNuvXLy41bNSf9Sw6f9Mg+oyeyR7537MuFDAivj2uy9O
	 oevmA28D11FZg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1743688236; x=1743948736; i=anthony.perard@vates.tech;
	bh=v8m0m53wPhMYCjDNngI1b33QpaUIzevS7ajRoSVZcEg=;
	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=qLR2RWZGseN23SRUWwKrdM7wWV1ue9WfFwFnQgjv3lHyE8au/j/Y7ULCjA0b+YpgP
	 LGxHWlDDyQlkOcuAvhhMQCx5RXdlkIMD76ielgp9Pj30QNahTw+AOyV3IFIoERTLaA
	 T0/eRe5sczw03yAe/3PYiOakcOpd9vUeQqPl2fPOH+uw5X0P3DwEwkOV7/4pwswpFi
	 G26LQ01ka6CN+2F28X08soBOpih7mCqKrZgkTdI6QDE2GK6HbBsnAN7DhudMkLy99f
	 BIUpwYV5xTzcGxbP7Shkko6IYuRLbwQ2MD7vKIDNlC3Jj4WQS6PoD0KF9pJTFM+t8s
	 wucJZX1Bnd10A==
From: "Anthony PERARD" <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH]=20automation:=20Add=20Arm64=20MPU=20build=20job?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1743688235027
To: "Jan Beulich" <jbeulich@suse.com>
Cc: "Orzel, Michal" <michal.orzel@amd.com>, "Doug Goldstein" <cardoe@cardoe.com>, "Stefano Stabellini" <sstabellini@kernel.org>, "Luca Fancellu" <luca.fancellu@arm.com>, xen-devel@lists.xenproject.org, "Andrew Cooper" <andrew.cooper3@citrix.com>, "Julien Grall" <julien@xen.org>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>
Message-Id: <Z-6SKIEk3wjheg1j@l14>
References: <20250403081916.6834-1-michal.orzel@amd.com> <20ac780b-f5ac-4531-997e-362d72adddd2@suse.com> <2a8ab261-480f-4bfe-b2b7-7fdff4516078@amd.com> <a67d260e-fe1a-44bb-8b49-fa0509716da2@suse.com> <44500161-1346-4c9e-bcb3-a4301c197913@amd.com> <235cb577-b28f-49ab-b0a3-94ab35572d83@suse.com> <65d12272-0ceb-4570-bade-5a0901264e16@amd.com> <921c6250-9485-4d66-a568-15045ecc17bb@suse.com>
In-Reply-To: <921c6250-9485-4d66-a568-15045ecc17bb@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.f726adaef1844703bcd15d87ca759d97?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250403:md
Date: Thu, 03 Apr 2025 13:50:36 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Thu, Apr 03, 2025 at 12:00:39PM +0200, Jan Beulich wrote:
> On 03.04.2025 11:35, Orzel, Michal wrote:
> > A different question (also to other people who knows this stuff).
> > MPU requires to specify Xen start address using CONFIG_XEN_START_ADDRESS that is
> > set to invalid default value to catch user attention. Provided that randconfig
> > can select UNSUPPORTED and MPU, we should somehow set CONFIG_XEN_START_ADDRESS
> > to e.g. 0 to be able to build successfully. Is this where we need to add
> > EXTRA_FIXED_RANDCONFIG to existing arm64 and arm32 randconfig jobs?
> 
> In principle some override like this will be needed, I think, yet that undermines
> the randomness of the build. From what I can tell the sole constraint on
> XEN_START_ADDRESS is that it needs to be page aligned (for whatever reason; I
> didn't think there was the concept of "pages" without an MMU [1]). Arbitrary
> values satisfying this constraint ought to be selectable by random configurations.
> Which would then - hopefully - also trigger the case where XEN_START_ADDRESS is
> e.g. so large that Xen can't fit in the remaining address space anymore. Plus
> perhaps any other constraints presently not enforced.
> 
> How to deal with all of this, i.e. how to leave as much flexibility as possible
> to randconfig, I simply don't know. Extending the Cc list in the hope for someone
> to provide some insight.

It doesn't looks like kconfig have support for randomizing hex values.
So you'll have to provide a value for XEN_START_ADDRESS that actually
respect the contrain written in prose, since the default doesn't.

Ah, the prompt of that config value is way to long and contain
explanation that ought to be in the help message instead. So I guess the
default value is the choose default value option, so probably fine for
randconfig.

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 Apr 03 14:07:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 14:07:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.936855.1337989 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0LES-0008Bm-Pi; Thu, 03 Apr 2025 14:07:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 936855.1337989; Thu, 03 Apr 2025 14:07: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 1u0LES-0008Bf-Mu; Thu, 03 Apr 2025 14:07:48 +0000
Received: by outflank-mailman (input) for mailman id 936855;
 Thu, 03 Apr 2025 14:07: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=zd6c=WV=bounce.vates.tech=bounce-md_30504962.67ee962e.v1-593e12f073a34b31910b4c080aa294d0@srs-se1.protection.inumbo.net>)
 id 1u0LEQ-0008BZ-Ox
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 14:07:46 +0000
Received: from mail180-44.suw31.mandrillapp.com
 (mail180-44.suw31.mandrillapp.com [198.2.180.44])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 02d48c1b-1095-11f0-9eaa-5ba50f476ded;
 Thu, 03 Apr 2025 16:07:44 +0200 (CEST)
Received: from pmta11.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail180-44.suw31.mandrillapp.com (Mailchimp) with ESMTP id
 4ZT3Tp3k9yz705bPd
 for <xen-devel@lists.xenproject.org>; Thu,  3 Apr 2025 14:07:42 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 593e12f073a34b31910b4c080aa294d0; Thu, 03 Apr 2025 14:07: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: 02d48c1b-1095-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1743689262; x=1743959262;
	bh=dnyqZmyapdPA7XEuGH6HxDM6nIlOwjs8gSceVqZ4MgI=;
	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=Szdtc6/+z54mk+sVh7iE8m7KJuC3c9FHMA49OT0mjFDrsASmmAd92KAJ0Dafe/COv
	 6JA9c4IxegNUZqhED3vm1qynVDRqbULiKeO+ODOjAAABxWH2kiopVGq2B3InGRBRPI
	 9Em+JP+rNCUGR4q4pHjtJSJzb0lMx4fFBtX4606diLvpOCXFLVdb1xcjvJoknpFKiw
	 29Y6FraSnZiz5HVwyjt9lDTMBCZxpBF/COmEto+Ntos+afnEs8Xnl5ewv25XGw4aup
	 LRF5u+JVqJg4pkKGvww+MIUwyQuaOpVHtLduDgT1AADfGzCqbIdwF2jzDVJVVsv5Fz
	 5t7mSX+E2g1Pw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1743689262; x=1743949762; i=anthony.perard@vates.tech;
	bh=dnyqZmyapdPA7XEuGH6HxDM6nIlOwjs8gSceVqZ4MgI=;
	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=M4oNS69eZDdqx1OOjRRKlMdsPa2XD/GMlBpsheJ71lnzi6xEMRV82MGsJrjH6TqlA
	 uNuJbns0PYCjDcNxUNBmb5u9oNftF8yZ6rDCMU8sP8oXVbXsfcNAj0FKRxBm8z89qN
	 5ljWCtPsdj+8AUI4YrxHA4oSKNXymzsxcqL77l05aRK6k0fkOuNyqwZ4o6YO4h4vpJ
	 Jg+f6AOh8wIxoNcJc7jtTYpdaqGYJYdxcSj3Xor9Q45LLqW1XGU/QBAaLufQC0+aY/
	 yq2mOu5hjsCH5bvXqCUGzomIdNjEtHZzM0Qh3CZ3FUkS/Ulcbsg7n9caZjWawutIxu
	 p9QEbv7N4SGrQ==
From: "Anthony PERARD" <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH]=20xen/arch:=20Simplify=20$(TARGET)-syms=20rule?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1743689260286
To: "Andrew Cooper" <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>, "Michal Orzel" <michal.orzel@amd.com>, "Jan Beulich" <jbeulich@suse.com>, "Julien Grall" <julien@xen.org>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Stefano Stabellini" <sstabellini@kernel.org>, "Volodymyr Babchuk" <Volodymyr_Babchuk@epam.com>, "Bertrand Marquis" <bertrand.marquis@arm.com>, "Shawn Anastasio" <sanastasio@raptorengineering.com>, "Oleksii Kurochko" <oleksii.kurochko@gmail.com>
Message-Id: <Z-6WKwyXil0O_AAK@l14>
References: <20250401144703.961836-1-andrew.cooper3@citrix.com>
In-Reply-To: <20250401144703.961836-1-andrew.cooper3@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.593e12f073a34b31910b4c080aa294d0?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250403:md
Date: Thu, 03 Apr 2025 14:07:42 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Tue, Apr 01, 2025 at 03:47:03PM +0100, Andrew Cooper wrote:
> diff --git a/xen/arch/arm/Makefile b/xen/arch/arm/Makefile
> index 129a109d6ec5..811adf3567c4 100644
> --- a/xen/arch/arm/Makefile
> +++ b/xen/arch/arm/Makefile
> @@ -96,21 +96,19 @@ ifeq ($(CONFIG_ARM_64),y)
>  	ln -sf $(@F) $@.efi
>  endif
>  
> +$(TARGET)-syms: XEN_LDFLAGS += -T $(obj)/xen.lds

I would advise againts this change. Target-specific variables values
tend to apply to prerequist as well, so XEN_LDFLAGS will also be
modified when building prelink.o and xen.lds. It's might be ok in this
case because xen.lds doesn't use it, and prelink.o happen to be linked
in a different Makefile, but that's kind of setting a trap for someone
to fall into.

There's a keyword to keep the variable change strictly to $(TARGET)-syms
but that requires a more recent version of GNU make. That would be
"private" if we could use it. Looks like we need GNU make 3.82 to use
"private":
    "GNU make 3.82 is now available"
    https://lists.gnu.org/archive/html/info-gnu/2010-07/msg00023.html

>  $(TARGET)-syms: $(objtree)/prelink.o $(obj)/xen.lds
> -	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< \
> -	    $(objtree)/common/symbols-dummy.o -o $(dot-target).0
> +	$(LD) $(XEN_LDFLAGS) $< $(objtree)/common/symbols-dummy.o -o $(dot-target).0

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 Apr 03 14:08:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 14:08:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.936865.1338000 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0LFE-0000Ex-20; Thu, 03 Apr 2025 14:08:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 936865.1338000; Thu, 03 Apr 2025 14:08:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0LFD-0000Eq-VT; Thu, 03 Apr 2025 14:08:35 +0000
Received: by outflank-mailman (input) for mailman id 936865;
 Thu, 03 Apr 2025 14: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=JbNy=WV=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u0LFC-0008BZ-Qc
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 14:08:34 +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 210fd271-1095-11f0-9eaa-5ba50f476ded;
 Thu, 03 Apr 2025 16:08:34 +0200 (CEST)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-39149bccb69so827276f8f.2
 for <xen-devel@lists.xenproject.org>; Thu, 03 Apr 2025 07:08:34 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39c301a7064sm1966451f8f.34.2025.04.03.07.08.32
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 03 Apr 2025 07:08:33 -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: 210fd271-1095-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1743689313; x=1744294113; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=nPGKjI/9owz/1bmJghTFym+xVl/jvsn3w2NTC9wCCXE=;
        b=RV5WHOI7whdJHHu0Q8J8s6tyjxAcEaR75c1W45F4CG+DYqnzD1RbETGx3u+joT8tMp
         0XxWx55uwdipC1z9ANPsDb+wYpKUjArBHD0U7ZEE2UM4YzM0iPxTDkJkDJhFQUailbab
         kNnqvbitzgdjBw+maC9w729NoZqSKR7iH5Dws=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743689313; x=1744294113;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=nPGKjI/9owz/1bmJghTFym+xVl/jvsn3w2NTC9wCCXE=;
        b=GXrIBOyy5M7BfH6BLj8aHwDbrp11YnzPHZwixNUnH9pQodszXYk0/zdYeTyOK4Bfth
         SqYDI4k2XYaGp/ww9ySef8G5/qiKW2+3XRVu66Yo0VFifJkl6lgUlcKw1kVormSvoqnx
         CpBpnycevu/HzDxLMeUlDvFwHHe+LZHEctYTkPujJkqA48Xp+YTl+aqNjwL3ceVUchw8
         sdYxsg1rPQrMjWKMW3v80hL5shNE5s3LKjpaMvfgxy2anx3bi539L3Z7oIhjFFWkgvhO
         NN9gK5x+oOdgjc77abxVw8FPrWxShdJKtdn2pIV+vs7iUyEOiHmThSzsJBNtrxsphqo5
         H67w==
X-Forwarded-Encrypted: i=1; AJvYcCU5HmEU6byfbYPZyh4DYXZvM5pW/+aL3A3IOdGsOTWaQxZWCY+ijI+3gGWUAdjJ+1757GI8vhW4Wu8=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy1khrGJPEt+renYAwjqLstbR4LdEG53UNDQLdzngz+UNF/Ozks
	mVyMcDdqchaxGFshTCsjbKgkD1svTLvmNIXWeT7+nI/RmUJ7bZfzs8COKioLOnw=
X-Gm-Gg: ASbGncu+df2wZwl8vgjuKVzvmpcXcpAAxPK1ppwQ8iZ8yE4sh1M11Y97InkPHVaHsGq
	4Sk716r9ujz3se3pEpMaNRn1qnrPcTagpw31997d8cyEy4nLrBEPmmnwt3M7C/3B930ww2yzDbg
	S6j50/BFp7TWbcPMSyKzG2ktipD3lpNdq1ISUeGBsRrYZdZie54ePcC8lRep8xLqvnsoYZd3muy
	lKLSVbwBHt2oDpRSncKOf2VoPZlVE5OnXzbxWb+huDqgvXZGo287lFybLm1/8L/lPrlEtoxT+8V
	2r3csLcZHyQlC8VQlCsp9V/Jrkd8OX9uhBvml+OrXP4AsX/zqzG/rDBFC80e+/BbSV7auKk6lZB
	dA2uKGpjbeg==
X-Google-Smtp-Source: AGHT+IHg/urLNUQ48QfES1BXMWxCFXZ/+TasPJIqR1JIlyodljduolBdOSAiSmIWOPL8CIFqSDRYJg==
X-Received: by 2002:a05:6000:1acf:b0:38f:6287:6474 with SMTP id ffacd0b85a97d-39c29752f9cmr6005648f8f.15.1743689313407;
        Thu, 03 Apr 2025 07:08:33 -0700 (PDT)
Message-ID: <463eca2f-9e2a-474c-ae5a-4ed6cfe01ff8@citrix.com>
Date: Thu, 3 Apr 2025 15:08:32 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH] x86/amd: Add support for AMD TCE
To: Jan Beulich <jbeulich@suse.com>, Teddy Astie <teddy.astie@vates.tech>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <6b751a400df49217defc89a19b3ac2ca33ab7690.1743683787.git.teddy.astie@vates.tech>
 <73b1dd32-c15e-46c4-982c-9b7a33c8785b@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: <73b1dd32-c15e-46c4-982c-9b7a33c8785b@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 03/04/2025 1:58 pm, Jan Beulich wrote:
> On 03.04.2025 14:44, Teddy Astie wrote:
>> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
>> ---
>> RFC:
>>  - is this change actually safe ?
> Well, before getting here with reading I was already about to ask this very
> question. It's really you who needs to prove it.
>
>>  - should we add a tce/no-tce option to opt-in/out this feature ?
> Unless we're entirely certain we got this right and didn't overlook any
> corner case, perhaps better to do so.

To bring across a quote of mine from Mattermost:

"I'm reasonably sure our TLB handling algorithm is safe for it,
following the PCID work we did for Meltdown"

But, proving this is hard.

Some history: INVLPG flushing the entire paging structure cache
(non-leaf mappings) was a last-minute "fix" to keep Windows working on
the Pentium(?), where it had started using INVLPG from the 486(?) but
with a logical error.

AMD's TCE feature is "that's a hefty hit to keep around, so here's an
option for the behaviour one would more reasonably expect from INVLPG".

Anyway.  I have a suspicion that Intel's INVPCID no longer followed the
INVLPG behaviour anyway, and that we were forced to account for that. 
However, I'm struggling to find confirmation one way or another in the SDM.

Another mitigating factor is that, because we use recursive pagetables,
we have to upgrade an INVLPG into a full flush anyway if we edited
non-leaf entries.


As to a cmdline option, there's cpuid=no-tce if we really really need
it, but I don't think we want a dedicated TCE option.


>> --- a/xen/arch/x86/smpboot.c
>> +++ b/xen/arch/x86/smpboot.c
>> @@ -372,6 +372,9 @@ void asmlinkage start_secondary(void *unused)
>>  
>>      microcode_update_one();
>>  
>> +    if ( boot_cpu_has(X86_FEATURE_TCE) )
>> +        write_efer(read_efer() | EFER_TCE);
> Same here. But I wonder if you couldn't set the bit in trampoline_efer.

Yes, do set it in trampoline_efer, and drop this hunk.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Apr 03 14:18:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 14:18:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.936880.1338010 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0LOZ-0003Hb-TL; Thu, 03 Apr 2025 14:18:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 936880.1338010; Thu, 03 Apr 2025 14:18: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 1u0LOZ-0003HR-QH; Thu, 03 Apr 2025 14:18:15 +0000
Received: by outflank-mailman (input) for mailman id 936880;
 Thu, 03 Apr 2025 14:18: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=lWYu=WV=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u0LOY-0003HJ-Tm
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 14:18:14 +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 7802c1d4-1096-11f0-9ffb-bf95429c2676;
 Thu, 03 Apr 2025 16:18:09 +0200 (CEST)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-43cec5cd73bso5563795e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 03 Apr 2025 07:18:11 -0700 (PDT)
Received: from [10.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-39c30227e3bsm1907382f8f.100.2025.04.03.07.18.10
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 03 Apr 2025 07:18: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: 7802c1d4-1096-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743689891; x=1744294691; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=sHprJ3UiA4uO0ngeD7Nv+tW3Y0GhlAo0JJG5lNVt6EY=;
        b=EIOC8JgwOL5/KdsUoddAZp9COtqLqXA8rW76pLTSCGLGedrdvVREZdoNlTjAKk4pWB
         w1Cg9l+ymCOsBCfLNO2+OvxOixc7wMiqYB7q9kpnmYVsPBcxOQbKTcLiDSt209YcdnKf
         9sGCty8bLumW7T1Qs1TQynUEgJXty2I4KMnlJnglr1IUGIZjd8YeM2j41xpYOpGQyXCU
         AS5R4UaNl8U0LzfI/0xzQremkT5mueuFhK8IWULLP0Zegn3sF49hf2WmAdC7qL930NjL
         ol2kFn4BJPnNruttjubzSZxUbb4HAj1Ro8SHo3GWt2Hfr5j1Dl5khw3IeZSTUx3SUFCI
         GNPQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743689891; x=1744294691;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=sHprJ3UiA4uO0ngeD7Nv+tW3Y0GhlAo0JJG5lNVt6EY=;
        b=iByCqTth+e2C3rsF54gSThd0V29OVR8dRWgf9UNwTy8QErfyqmuBZmyZ1VrDV95L3j
         OIQ1oB9/fq+MNlhHB9u+jQnwe33SkP6LhWypOQvtXsN1bF8ojDqR5d71O9wHld/j3wyC
         TIVqvREA0I1tHuYUEai5rU0OsrL/E0kRpMO2LMFdYhQzluaHrFcWiluH67NA9F7wsQEB
         zUK1Pi4MqBFb/+S1kzgXKApjCHZfp6WiL8G1LZlo/sAONNTkBrfDoNS+jX8pIkTXjya3
         V8FKroF7OwvsLIlL6O2SUPIlXoxe4vjF16cToNSL5XXHGoBLo+tU5QkFKjy/Bbp5fcgx
         u0jQ==
X-Forwarded-Encrypted: i=1; AJvYcCV1QZo2x1zcn40HqJnq71JoLrXovrNL3n2NeYJ/68Db6+RtGrkgxFwC/sEE6ZfH0VsANdfjmWBEF6M=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwGf5QDPVc0MKBTViFjAbCfMTcD8u1Kw3lwDTcDgJfbvDiGPGxW
	6IKtwTLxDKjlbZ5rmLKEugCnYFK0H3IQ1Ox+fz9qBcPBLBqpXGz29xbOE3HQ0A==
X-Gm-Gg: ASbGncug5QUia/CvfJktPYpSqb4X2KhpJKrKjcaFvfRsvHI2hhSACkh9fXA2vnkgFiG
	b6DVfLa6QG4bApfaS07OE6aPLJzSLPOXv4l6RXTOvLg9XMpsAlKOqzfWq44ZgflT7Bimltq8lW+
	Pd4voB1SGZ2VCJMfDqMIIucU5fvWABdAkE6mS6h48/Xb5pu8KZa5stwmLDG+vqwM0rwdZfb2Gdg
	6ykorGCqnUN+5bokDYdEQgXZqsqDuLqltN97hp4P0qxxTteRqYfHMyMDeGSSnE5sKWowzvIOkyR
	YRO2El4yiktt/f77tmkol2xigW247kP68uIzTMDUMHBKN0HaIz3y1qR4uvFwuQJ4dpzWWu4XLK4
	F41ENA7gCqCO7n30u7lK7hhNk0QSNJg==
X-Google-Smtp-Source: AGHT+IFpTCl4p76HjWpL+KyhOlZDRwGWxO3BNgy+ST9qR8hHhPETOG7rqScbGwplBFImKLKHi7mDjw==
X-Received: by 2002:a5d:64cd:0:b0:391:412b:e23f with SMTP id ffacd0b85a97d-39c29751a59mr5803812f8f.15.1743689891208;
        Thu, 03 Apr 2025 07:18:11 -0700 (PDT)
Message-ID: <3e330a8b-1b90-4d3d-beca-a3786f3532ec@suse.com>
Date: Thu, 3 Apr 2025 16:18:09 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 3/3] xen: debug: gcov: add condition coverage support
To: Anthony PERARD <anthony.perard@vates.tech>
Cc: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20250401011744.2267367-1-volodymyr_babchuk@epam.com>
 <20250401011744.2267367-4-volodymyr_babchuk@epam.com>
 <7281b7d8-ba7b-4658-82f1-a63d66c1baff@suse.com> <Z-6KA1Kto8PIJJkI@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: <Z-6KA1Kto8PIJJkI@l14>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 03.04.2025 15:15, Anthony PERARD wrote:
> On Thu, Apr 03, 2025 at 09:30:21AM +0200, Jan Beulich wrote:
>> On 01.04.2025 03:17, Volodymyr Babchuk wrote:
>>> --- a/xen/Rules.mk
>>> +++ b/xen/Rules.mk
>>> @@ -138,6 +138,9 @@ ifeq ($(CONFIG_CC_IS_CLANG),y)
>>>      COV_FLAGS := -fprofile-instr-generate -fcoverage-mapping
>>>  else
>>>      COV_FLAGS := -fprofile-arcs -ftest-coverage
>>> +ifeq ($(CONFIG_CONDITION_COVERAGE),y)
>>> +    COV_FLAGS += -fcondition-coverage
>>> +endif
>>>  endif
>>
>> Personally I find ifeq() uses like this unhelpful, and would prefer
>>
>> COV_FLAGS-$(CONFIG_CONDITION_COVERAGE) += -fcondition-coverage
>> together with an eventual
>>
>> COV_FLAGS += $(COV_FLAGS-y)
>>
>> (if we don't already have one).
> 
> Not we don't. About renaming $(COV_FLAGS) to $(cov-flags-y) instead? It
> is simpler as we stay with a single variable for coverage flags.

I'd be all for doing that.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Apr 03 16:03:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 16:03:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.936916.1338035 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0N23-0004ki-5r; Thu, 03 Apr 2025 16:03:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 936916.1338035; Thu, 03 Apr 2025 16: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 1u0N23-0004kb-3E; Thu, 03 Apr 2025 16:03:07 +0000
Received: by outflank-mailman (input) for mailman id 936916;
 Thu, 03 Apr 2025 16:03: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=lWYu=WV=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u0N21-0004kV-S4
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 16:03:05 +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 1dd54551-10a5-11f0-9ffb-bf95429c2676;
 Thu, 03 Apr 2025 18:03:00 +0200 (CEST)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-39c1efc457bso686953f8f.2
 for <xen-devel@lists.xenproject.org>; Thu, 03 Apr 2025 09:03:00 -0700 (PDT)
Received: from [10.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-39c301a0a90sm2149351f8f.21.2025.04.03.09.02.58
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 03 Apr 2025 09:02:58 -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: 1dd54551-10a5-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743696180; x=1744300980; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=c5US3FgL+WnT5I1EmpBYGVjw3dvn8CZK924fJjLYUfQ=;
        b=Qbi87lFHVEYBtG787EOZnUPADQMng+efyiBNEiTBDx2HxN8riE+5B/X5zcqpHbpu+c
         shkIXfs/wlp7N/nguvSF8P9+GY20IN9Mkq6qjz32XIKUVDmAho5QZx05pnmY2xLQQmc3
         ht3/16u8cN3VZjBf7mo+EOHeBwusvq2cDT9JqAc0SJfM0/uVJs55jD80Ro/+6/o4ZPNr
         0lAsqX6WQH/oUsRpvsIK8ylsGqMiasiAjozLCGec1avfs5Q3vKAFktXd/1KgESUmHMXp
         7exlfddaJgYYrIK5jPVUdUdjGDicYaToHqAMzTYMJQy31aDZSVj29A/CIv/FZUXWCszs
         bUnQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743696180; x=1744300980;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=c5US3FgL+WnT5I1EmpBYGVjw3dvn8CZK924fJjLYUfQ=;
        b=cu2frcUFvx44NP6czG/MclT0Oe3UERmOCaSox2NYIl7plqVogn2Kx1OZ6/KmeEg38b
         3L4ndhmsxw88Q/5+QaZrCS2kswkVJaOQ3ya5O2qaEvEKe4wuX43dqbIZW/6TAb0L6Yz7
         KSVtt0XK/X4WitlTxF0TSR4Bqae1uGIR1SaskR/astpJGGgFs7DZWUWNX3WZgwDmm1WR
         k43Ib7GN1RSSJHd2Tb191muf7CynWlExFtr2vE9IQePkEG1wMHtThGHrtcRa0GyzXTgg
         HaYFyFxG9Bzm7WYFM+VMXKCVq1hFYMEr0e/CAiMw11R80WMBEZVp72O/RYDAatIhUqWl
         6wAA==
X-Forwarded-Encrypted: i=1; AJvYcCW8sk3xj/rk97AjlF9ifDxHLupsZsS3D5aSjZ+xc+TWQK5BpnbQtB3BnkIROTxKDfWyCUgd5KzHGa4=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzzcmu6WbY0M5h3JD2IdCNLAC7l/QSe20k2JEBPL61n0NX6nyQm
	NIcmHZ5ESkd6//KCOkRgLvSiDAAoZ/10bL5JlvDDgsBTVhoJ5B7Ku129rPW7bw==
X-Gm-Gg: ASbGncsbkBCmnvwa0ALa6FAdjcNCr5IwY8kyUO4uxVPcSKoV3bcSc7B8X9ing9VwrRM
	ZT7UML7Bi3t7m5M+0A2GkImtkBbxlqAnAjRCK6TUt6p6QgMAEJJ2augmxQynr9/X91mXWWnscxy
	HibNSIIENbg3g52aBeoqPLpI7H3sNEQ/k/T85yCQW9C4Ijn+ooWy6XqzNFtEJHDt3O5Tsa6Dz9m
	WdaT7kqd9cYyGEVbx4Wte3RR5m1JUgKHlZnq9rFP7FDXR+B8m4ab48E+jIeghwGHA/EnGP2RZQf
	twqNPKcyipw5YXksaiAfpBe10lLSGBHvP65O1BikvtgQZFOQ0wx4wVCUqDiBYbaDMH7J1yVcpSl
	BOzK5UzhA826TzULBKnmF2ITHNLtb5g==
X-Google-Smtp-Source: AGHT+IH3kFf3Zm2jflzuBv3P0V4X+DDf3UIY+wZnztn5dvluIHTB4AemB45+fYgBm6pQarNMzrFVTQ==
X-Received: by 2002:a05:6000:188e:b0:390:e158:a1b8 with SMTP id ffacd0b85a97d-39c2f9510dfmr2534036f8f.43.1743696179448;
        Thu, 03 Apr 2025 09:02:59 -0700 (PDT)
Message-ID: <ef5ef0a7-9eb9-43fc-a869-167904c95da6@suse.com>
Date: Thu, 3 Apr 2025 18:02:57 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3] x86/domain: revisit logging in arch_domain_create()
To: dmkhn@proton.me
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, julien@xen.org,
 michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org,
 dmukhin@ford.com, xen-devel@lists.xenproject.org
References: <20250402214406.115578-1-dmukhin@ford.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20250402214406.115578-1-dmukhin@ford.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 02.04.2025 23:44, dmkhn@proton.me wrote:
> From: Denis Mukhin <dmukhin@ford.com>
> 
> Use %pd in all logs issued from arch_domain_create().
> 
> Also, expand error message in arch_domain_create() under
> !emulation_flags_ok() case to help debugging.
> 
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>

A few nits:

> --- a/xen/arch/x86/domain.c
> +++ b/xen/arch/x86/domain.c
> @@ -791,13 +791,12 @@ int arch_domain_create(struct domain *d,
>      {
>          if ( !opt_allow_unsafe )
>          {
> -            printk(XENLOG_G_ERR "Xen does not allow DomU creation on this CPU"
> -                   " for security reasons.\n");
> +            printk(XENLOG_G_ERR "%pd: Xen does not allow DomU creation on this CPU"
> +                   " for security reasons\n", d);

If this is touched, I think it would better become

            printk(XENLOG_G_ERR
                   "%pd: Xen does not allow DomU creation on this CPU for security reasons\n"
                   d);

to follow our "don't wrap format strings" principle.

>              return -EPERM;
>          }
>          printk(XENLOG_G_WARNING
> -               "Dom%d may compromise security on this CPU.\n",
> -               d->domain_id);
> +               "%pd: domain may compromise security on this CPU\n", d);

Personally I don't think the word "domain" needs adding here.

> @@ -807,16 +806,19 @@ int arch_domain_create(struct domain *d,
>  
>      if ( emflags & ~XEN_X86_EMU_ALL )
>      {
> -        printk(XENLOG_G_ERR "d%d: Invalid emulation bitmap: %#x\n",
> -               d->domain_id, emflags);
> +        printk(XENLOG_G_ERR "%pd: Invalid emulation bitmap: %#x\n",

Please switch to using a lower case 'i' on "invalid".

> +               d, emflags);
>          return -EINVAL;
>      }
>  
>      if ( !emulation_flags_ok(d, emflags) )
>      {
> -        printk(XENLOG_G_ERR "d%d: Xen does not allow %s domain creation "
> +        printk(XENLOG_G_ERR "%pd: Xen does not allow %s %sdomain creation "
>                 "with the current selection of emulators: %#x\n",

Here wrapping of the format string would also be nice to avoid. That
may call for an attempt to shorten the text a little. Maybe "with
this set of emulators:" would already help some.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Apr 03 16:20:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 16:20:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.936932.1338046 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0NJ4-0000tM-KW; Thu, 03 Apr 2025 16:20:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 936932.1338046; Thu, 03 Apr 2025 16:20:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0NJ4-0000tF-HF; Thu, 03 Apr 2025 16:20:42 +0000
Received: by outflank-mailman (input) for mailman id 936932;
 Thu, 03 Apr 2025 16:20:41 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=8sHC=WV=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1u0NJ3-0000mp-7U
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 16:20:41 +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 92fb40ca-10a7-11f0-9ffb-bf95429c2676;
 Thu, 03 Apr 2025 18:20:36 +0200 (CEST)
Received: by mail-ed1-x52d.google.com with SMTP id
 4fb4d7f45d1cf-5ec9d24acfbso4055952a12.0
 for <xen-devel@lists.xenproject.org>; Thu, 03 Apr 2025 09:20:36 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-64-225.play-internet.pl.
 [109.243.64.225]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-ac7c01c20f1sm116318266b.177.2025.04.03.09.20.34
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 03 Apr 2025 09:20: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: 92fb40ca-10a7-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1743697235; x=1744302035; darn=lists.xenproject.org;
        h=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=+z11WJnJOatLnkEUyyYOo4mxIOabotJnqQF68ndEaj0=;
        b=KMwJXBnF6+opZ2NYzTu4ZOTHAQhzmhfvA8DqvwFh5IsYnzbSdKN/7pCumkkS27F7i9
         lbyOeif7hUIi//a3Hk6EpoBb8H0lViORxJNnXtX6J5dmT2xA4CviZiY3dx0EoY7+AcPz
         gWCbhINEtkKYexnRi0qy62ZCrwr+QJXFvfZsBsi2hvwi5S4vZU129oki0AksypIlbIsP
         GagQCHkTUSOeJB9hFTk2fV0o6zt9XbjxxrdDMY4M0lj2yppyH+xGI2lS/YmjTdVJH81/
         54UnqgGi/Ufe9xPizgw8b07M8FO0MfMky5W1f3qinT4irsVf65qKaDiVJSCuAV/STt3L
         ueog==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743697235; x=1744302035;
        h=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=+z11WJnJOatLnkEUyyYOo4mxIOabotJnqQF68ndEaj0=;
        b=fs7vgIR6L/i7ZqHqN5uYFrXyLOaXwJDtF35e/DuVVRHrdXbSu1aHNLqIDn5EFz6UFG
         i1mVIl9Ojt37vl0HOqZHTmvdj4LKxq5XesLqAkmQGA1+/NqsYuZXfE3wCM3KznbrDFJW
         +wczY7KoqeiFwxDIkwv3pAoIpfqkqlXOFW6c2xdtqVLi9GJrbj0T5NnK53ubpFJd/l21
         ZkxKJ6xA0jSgaGW7/dj255DGhbVCnkJrcA3glu9b6/9Ea/KbsAdeVQWiATE2yJW3OrcL
         bu/ictJet+h7kZ2UrA5FfdW+oM2sQQQqYhIgqTJRfLHYcc02QgTEnsfw+KDZTcv/khA4
         7bWg==
X-Forwarded-Encrypted: i=1; AJvYcCVdLSu1Vj3JxBoPjkYzLKKYgI8mzFZNH8ROEDbl22EzwI0+A4NdDMbRSqsDFpCbinH1jKx6uepiJXQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YydEZGC0TuA0ugFJlcvAdAS0FmdiLaA2n1oGl8wWr9038LYLWHe
	tlkxkxpvuxPbb6s7OwrwEyG3nBAzIPu/g/KMC55PRTXCVBySdB7B
X-Gm-Gg: ASbGncuT2mpCzqFJW7yZoEyj/Q/rZ4PC+Q7i3mZ+gbKuCeCttCl4OuLYoS6k+O5iCeX
	YwN7Wsl1VTFx+BMhdiofHMosEuQsxUmrgm2jf1FDGFv6YGslSONpCeNVdd/dv0u556EK7DXifEn
	qv2ED6dSWe44+SdZtFBdQEhqBfAVMjU4zSIfbbnB7otyDlXKPYJbeMAOFbpPCFtM0XKc1G+03fz
	WS+x38JrtDFQaanKKTsK8NO3Qm2QDjtGe/m1Q039r+a/nFQPaFa/eu0kEMrra9kVO2RV8t8nk59
	zRh4X6sUoTDh0Xf2zVmR2nUwe+ZfusnfGNveqGxVZF4N9YCrmBRcrG6DLfaM7XnP0FmwyzK9RoU
	tyyRL/tZfFBUeI+ew5zsW
X-Google-Smtp-Source: AGHT+IF7xGhlOmChENg1Hao6eTILkSUrWK5mMyvMTJTgCdRq0Jg3AznDwMETJms8aIjKRDlD006R9w==
X-Received: by 2002:a17:907:3f1a:b0:ac3:ef17:f6f0 with SMTP id a640c23a62f3a-ac7b6b49876mr352169066b.5.1743697235248;
        Thu, 03 Apr 2025 09:20:35 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------UokBImlYq4ZEzn8WCJSlYpx7"
Message-ID: <30d8e316-aff5-498a-b2bd-448e0b2518ae@gmail.com>
Date: Thu, 3 Apr 2025 18:20:33 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1] xen/riscv: Increase XEN_VIRT_SIZE
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <e5fa4219ccf43125e2489cc8c49b4404e6ed22ce.1743434164.git.oleksii.kurochko@gmail.com>
 <54ebdcb7-071f-411f-803a-930dc330a497@suse.com>
 <32264ccb-e566-41e0-973f-5bc7d874f970@gmail.com>
 <9d7e1553-3af8-4fc3-a400-8714d9b68411@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <9d7e1553-3af8-4fc3-a400-8714d9b68411@suse.com>

This is a multi-part message in MIME format.
--------------UokBImlYq4ZEzn8WCJSlYpx7
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 4/1/25 6:04 PM, Jan Beulich wrote:
> On 01.04.2025 17:58, Oleksii Kurochko wrote:
>> On 3/31/25 6:14 PM, Jan Beulich wrote:
>>> On 31.03.2025 17:20, Oleksii Kurochko wrote:
>>>> +        _AC(XEN_VIRT_START, UL) >> vpn1_shift;
>>>> +    const unsigned long xen_virt_end_vpn =
>>>> +        xen_virt_starn_vpn + ((XEN_VIRT_SIZE >> vpn1_shift) - 1);
>>>> +
>>>>        if ((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)) ==
>>>> -           (_AC(XEN_VIRT_START, UL) >> (PAGETABLE_ORDER + PAGE_SHIFT)));
>>>> +    BUILD_BUG_ON(XEN_VIRT_SIZE != MB(8));
>>> Is it necessary to be != ? Won't > suffice?
>> It could be just > MB(2). Or perphaps >=.
>> = would make the build fail, wouldn't it?

I just realized that BUILD_BUG_ON() condition is compared to zero so actually everything what
will make the condition true will cause a build fail as inside it used !(condition).

So it seems like we have to check for XEN_VIRT_SIZE != MB(16) and change each time when XEN_VIRT_SIZE
is increased.

~ Oleksii


--------------UokBImlYq4ZEzn8WCJSlYpx7
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 4/1/25 6:04 PM, Jan Beulich wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:9d7e1553-3af8-4fc3-a400-8714d9b68411@suse.com">
      <pre class="moz-quote-pre" wrap=""><pre wrap=""
      class="moz-quote-pre">On 01.04.2025 17:58, Oleksii Kurochko wrote:
</pre><blockquote type="cite" style="color: #007cff;"><pre wrap=""
      class="moz-quote-pre">On 3/31/25 6:14 PM, Jan Beulich wrote:
</pre><blockquote type="cite" style="color: #007cff;"><pre wrap=""
      class="moz-quote-pre">On 31.03.2025 17:20, Oleksii Kurochko wrote:
</pre><blockquote type="cite" style="color: #007cff;"><pre wrap=""
      class="moz-quote-pre">+        _AC(XEN_VIRT_START, UL) &gt;&gt; vpn1_shift;
+    const unsigned long xen_virt_end_vpn =
+        xen_virt_starn_vpn + ((XEN_VIRT_SIZE &gt;&gt; vpn1_shift) - 1);
+
      if ((va &gt;= DIRECTMAP_VIRT_START) &amp;&amp;
          (va &lt;= DIRECTMAP_VIRT_END))
          return directmapoff_to_maddr(va - directmap_virt_start);
  
-    BUILD_BUG_ON(XEN_VIRT_SIZE != MB(2));
-    ASSERT((va &gt;&gt; (PAGETABLE_ORDER + PAGE_SHIFT)) ==
-           (_AC(XEN_VIRT_START, UL) &gt;&gt; (PAGETABLE_ORDER + PAGE_SHIFT)));
+    BUILD_BUG_ON(XEN_VIRT_SIZE != MB(8));
</pre></blockquote><pre wrap="" class="moz-quote-pre">Is it necessary to be != ? Won't &gt; suffice?
</pre></blockquote><pre wrap="" class="moz-quote-pre">It could be just &gt; MB(2). Or perphaps &gt;=.
</pre></blockquote><blockquote type="cite" style="color: #007cff;"><pre
      wrap="" class="moz-quote-pre">= would make the build fail, wouldn't it?</pre></blockquote></pre>
    </blockquote>
    <pre>I just realized that BUILD_BUG_ON() condition is compared to zero so actually everything what
will make the condition true will cause a build fail as inside it used !(condition).

So it seems like we have to check for XEN_VIRT_SIZE != MB(16) and change each time when XEN_VIRT_SIZE
is increased.

~ Oleksii


</pre>
  </body>
</html>

--------------UokBImlYq4ZEzn8WCJSlYpx7--


From xen-devel-bounces@lists.xenproject.org Thu Apr 03 16:36:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 16:36:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.936945.1338056 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0NXr-0004Nt-P9; Thu, 03 Apr 2025 16:35:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 936945.1338056; Thu, 03 Apr 2025 16: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 1u0NXr-0004Nm-M8; Thu, 03 Apr 2025 16:35:59 +0000
Received: by outflank-mailman (input) for mailman id 936945;
 Thu, 03 Apr 2025 16: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=+EW4=WV=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1u0NXq-0004Ng-1G
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 16:35:58 +0000
Received: from NAM12-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam12on20619.outbound.protection.outlook.com
 [2a01:111:f403:2417::619])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b5c5f76b-10a9-11f0-9eaa-5ba50f476ded;
 Thu, 03 Apr 2025 18:35:54 +0200 (CEST)
Received: from PH8PR12MB7326.namprd12.prod.outlook.com (2603:10b6:510:216::7)
 by SN7PR12MB7105.namprd12.prod.outlook.com (2603:10b6:806:2a0::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.44; Thu, 3 Apr
 2025 16:35:50 +0000
Received: from PH8PR12MB7326.namprd12.prod.outlook.com
 ([fe80::6d76:9c33:d230:8264]) by PH8PR12MB7326.namprd12.prod.outlook.com
 ([fe80::6d76:9c33:d230:8264%5]) with mapi id 15.20.8534.045; Thu, 3 Apr 2025
 16:35: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: b5c5f76b-10a9-11f0-9eaa-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=eHo0kY0chUaidctndK/zhax7K1vNdkB2RwGeSsizBNEYDer0i60Ff7BcGy1z7gmxj5/hEx67iKtr2afImyg8hK3KamE1fns2eJPO57orELXJSECympSnEuBVCp4RRW02j3LYHN+congwMoG+AwmA0QMK9Gjkk44JCHlibhoOOP1t/0mAhmqMWsZeHS7uGs09O8yWXzOKOBwFn+ki4zBhtNtrOtg53wvgqNqLlPBliDcgPHKyWCcN2cZLfpk6/XDPSDEBqpuETX3Ib0lP2Jy+hMwFrpXr8zi67yyiTxTX25NZPPlDPSzbrOFeVJNOzB5UcgTSg8dYkXLC56Jx/L8D+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=Uy7LR9fkeIAeXu7lv8mieQJ2L4ADsBCvEmqKqAxV68A=;
 b=klMa/VkC4Htu9lyld3feqDyASioFS9RbW30xtcUtQOZBUpPHmuzuzqlxfh72Pzjod5O52I34Y5doXCbyPilbfAxQY++2LHSK/+jAi+h2qk+hnbykGRl53afGfW3kjmGJWYsV5X0KmFkP/+ujB6guqw/otVnvYxiF8IS+a2409qSPIJhbRiBqmrpmoxab8WZQEKWA0I92gnNJzzBYVHPqx0uUWvFNywzGA+fucPX+CLk0jZcYwn6zCPHnZxy7UOwwZ3Q4YJA23SUuK3nZfsbmA6jVQgDkR4pNZ1wMsvIwt/N0KA7s51aRMqjgjPJVpwfZyxiWQYN6L9zmozVMITMQvA==
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=Uy7LR9fkeIAeXu7lv8mieQJ2L4ADsBCvEmqKqAxV68A=;
 b=NIYtCl22SoVEuBX/1fl/+/u/FBE53nwZZkPdhokDYb2ntvMIKAwhHyfhsHRPfLdMj+pwGvS0tnE1+hOLVzx1bVd5OHGSE3IcOyeHNRhExukGFI1d4H0jdXm9PjiQq2fxSE5Mgd+L3hekmE2jtzjSJO4IuGsPUqKXHEon78xS3pA=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <96d1a959-95ab-4db0-8afb-baa0c614ac8b@amd.com>
Date: Thu, 3 Apr 2025 17:35:46 +0100
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 5/5] xen/arm32: mpu: Stubs to build MPU for arm32
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: <20250330180308.2551195-1-ayan.kumar.halder@amd.com>
 <20250330180308.2551195-6-ayan.kumar.halder@amd.com>
 <6a767fe1-2d77-4cd4-9726-498fbb27ce87@xen.org>
From: Ayan Kumar Halder <ayankuma@amd.com>
In-Reply-To: <6a767fe1-2d77-4cd4-9726-498fbb27ce87@xen.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0691.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:37b::19) To PH8PR12MB7326.namprd12.prod.outlook.com
 (2603:10b6:510:216::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: PH8PR12MB7326:EE_|SN7PR12MB7105:EE_
X-MS-Office365-Filtering-Correlation-Id: 8515328c-99a9-4989-7cfe-08dd72cd9806
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?ZnRhMFNHclRaWnRnMVBNWXl6TURwZlM5YXNGRER1Z3NDNHAyVnZ0TlJ1M1NI?=
 =?utf-8?B?d1lTR3YvK2szNmJ1S1lkcVZ5VmZtZUwrQnBMUUpUbkVoU3IwQmFBcDQ1OGc1?=
 =?utf-8?B?SnhEVEhXbStaTG9oTHlud1lsQXNFMXYvTVpHVVZzdExRNXBaakMyTXhoeith?=
 =?utf-8?B?OGp4L09kWFllZVU4a05uVmpNeXdVYlpHNlUxaVQ5eGNtN2dYSXpHK3BxRUdX?=
 =?utf-8?B?NVdoMVpvWVFHZnNWOUxtelFWTzJyWGtBVTgvcDlSaEFOWTQzaGJkWXdsMjFR?=
 =?utf-8?B?Q0hlaGZzbnBvRjBCZWt5alVSVnhuVEQwWEY3dXhMd0U0UEo3bkxzUkpIWEFF?=
 =?utf-8?B?aTVkYXN0VWZuMTlLcUN5UGlyWGlRZHUwc3BuWEhNTkRCcEZjbnU4YTB0NGNN?=
 =?utf-8?B?Zk1DOFVvcHhRVHkvT0VvZzN4VlBkdXZkVFAvRjUvTWRsVzJEblZVeVZZSGxO?=
 =?utf-8?B?OTNMUkc1ZHlWNmlKcWFuZjlwVzJwRFVrTE5UempHa054SDhhMXVsc2o4MzB1?=
 =?utf-8?B?SWFCRFd6RGpzU2lHd3F2bjljVW43b1cwcWhYR1NzVktCQXpUNjl3NmhWaFJh?=
 =?utf-8?B?NTRjVFNYREhZZzVvTHBGNXdUQXV0S2R6RmhLbkRaa09palBMcGpKeWNUWW42?=
 =?utf-8?B?TkEybmRTelpqMzRSdlRrT3N6SFNmcWpYamJhRlJCRG1Hb3ZwKzRVVWowMjVr?=
 =?utf-8?B?ZFZ4Ull3Uk5hZlVyam4rQXZpam9iK0t1UC9oK2JnY2k4U1JvbGxkdHJQdXJk?=
 =?utf-8?B?bGJxNXNTSFhibXgrRThFbkx0R25kakNWK0s3MkZXZW9lSnFscU1QTlFmRk44?=
 =?utf-8?B?QkQ0WVNLOGlaTGMrc0R1aGFQNFozak9OT1J6dmRtaVlteVZEWnVMeHVxWXFj?=
 =?utf-8?B?aVRSNHphL2FTajl0SnpVNVV5R0pmOFp5dzg5Z2tkSDZkTEdRV3c3WDR3QVRx?=
 =?utf-8?B?S1FYMU45VUFua3BORUF3ZWc0MWdQTm9rS0cwOEtvcnpXbGhINWU5MkxUMURT?=
 =?utf-8?B?N1JZbDFGN1hjVXZ1L3lrYVMzNnBHTkVsSEp5ckh3TUcyTXRqdHYzUGpqM0Ux?=
 =?utf-8?B?UGFrMUU5OE03eGh1eWUyRUEwVjg2QTk2QTd5K0dyUnN3YnhGbDJiRUVvcldV?=
 =?utf-8?B?YzhPRTFpdzJ6aE03R3VwZkxHRkpmM2RUamdnYUsrL3h6cE5aaGtWTDgzZHZy?=
 =?utf-8?B?RmVibmFYUURiLzZUTWp6Sk0xeTRPVFdHUVhuSlEvR0JQOHhxSUxXb2hxM2dY?=
 =?utf-8?B?MXFQWVNTVVJsckNBdFZqaXgxNWhmUEFXMXJ2aVd3dXBKRm1EMDFzSmxJME9E?=
 =?utf-8?B?ajVQL2tBbXB3U0VXb1Q2QUkvMGZqb1BackJZdFlJY1Z1SFdSL0FjTDU0MXRz?=
 =?utf-8?B?Q3dDL2RHNFNvdkg0aTZMcVNOa3Zvb0lVd2F5dGRyV2I2OVpUYVlvZDA3bE9q?=
 =?utf-8?B?Z0NuVytkMUJJdjF2NEc1WDIrOFJpcjkydlB3SCtpbEZaWWRpNjZWZUl6M2tK?=
 =?utf-8?B?SVFHQitSTS9LTm8rektKRVNPSXRmQkNBY3R1K25DOFQxNEZnTUpUbU96OGJo?=
 =?utf-8?B?UGhjdC93NTNvZzNHM0cwamZvdVB4QnFOUm96WFZFS3FQTFYyWVRlMU9ZaDlY?=
 =?utf-8?B?T3lBZmR5TXBSQjBLazZNZmI2RWdHeFZKUjRnYlA0SUlvaks5Mll4cndkdXps?=
 =?utf-8?B?Y3N4L0owMkV4MlloeDlJbTdsUHhHUitWbkN1YnRkdTZMS0Y2dEY2czloaXlF?=
 =?utf-8?B?eTZlSm10dWRYVVZkZXQwQXQ1NDA0V2pnTzllWFpNUjZtaTI3RU1lcklKZFJW?=
 =?utf-8?B?UTZ5ZEl1UDFDUjZUbnNDcS9JWkU0OVM4TmpML3NZekJtdk4zMzlVdk1oaVFt?=
 =?utf-8?Q?dQvWmZ7pwWDMA?=
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?SHZjOVYzWGl3Z2h1cXR3YllrOXNNKzNubk1oTXc2a1c4cGMrN2hjTXArNFU1?=
 =?utf-8?B?K2NzTTlielZQOGQwNnZ6Sms0dGdqbTFhSzBWbHYvQmZUUjQ4NjJQbENTNUpU?=
 =?utf-8?B?UEFYR2RUd3FoRmN1WDFYdFkwYUhmMm11VGphNS8zaEltSzNFbHI2NkovbG1r?=
 =?utf-8?B?Zlk5d1p2VmN5RzJ6QzQ0VXFBdmNsSyt0S0tZcEdFbVNDNFYzVVlCWHpxTExy?=
 =?utf-8?B?TVBUY0h1ZEtWczdKYTBHeTlUTzVGclZxanBYRVpsdFVnUXFMMTlNL1IwWnBY?=
 =?utf-8?B?aUhETTQxSVNqZnQ5VGJOU21RYkpraXViN0pHc3lDcVFxa2NJN3pMb2pFeFV0?=
 =?utf-8?B?YSszTlI2N3FCVnpFUGhLMmhpVDdoTmxjQ01MQnVIM2VpcVdZNG4rcXlnSW1P?=
 =?utf-8?B?VFBYNUFxYXJPTXJkZjdBT0ZzV3VhZHFRL1ZlZWxxejJtMkFXSzdlUExlcEph?=
 =?utf-8?B?NjE5ODJ5K2x0a2FlYzZCc3NDeUptMEVkUFJLaWNJSXJRSE9lVzVKazc3S2pV?=
 =?utf-8?B?RFNDdUc2TnpTSTFLZFNiOVhYSkw0SkpPN1p1NzNmSTVDSm4zUGo4SzZSUjBY?=
 =?utf-8?B?NVQ0U3RXL0pPeTVaUjJ5V1I1VXpuUnZJM2x6MUdzQjN3YWYvQVVZRDB2QWRw?=
 =?utf-8?B?SFBKbnZZK0lPQ1FDMkdNaFc5VDdoa1R2QVFzQ2VtcUdmcGpmaWFPUkVlUDQv?=
 =?utf-8?B?cjRZZHljUjlMQzRkSk5OcXJrS3lDM2JEdTNtZmlNbFpVUXhtYjBnaWNTbXdT?=
 =?utf-8?B?TW9tNW53djN1dTFlVUtyVVNBRkdnVVZkZjA3d3BNVjZ2aE1VZ3NNZTdOOU5P?=
 =?utf-8?B?K2hFNmpodFplSmJIaU5rS0VSaXhsbncybVN2Y2xUQXp4VDBJeU1XdjRiMXpB?=
 =?utf-8?B?a0YzQyt4Sk9hekJyZEJaREIrMU5CVEtqdzNWd2tHUzVmQVh3Z1FnbWYrcWRm?=
 =?utf-8?B?RUNxTFpZbGROUjdySTVqOWxrYWE3ZEVYcng3UEt6RDRRUzE4MWFPRTRZZHIv?=
 =?utf-8?B?d09mcWFzOGxydmVTS0dFWGhKeGY1NU5KaDBqT3JpSTNMdVBKZG4zb3lmeThm?=
 =?utf-8?B?VHNCR2xpZ1RneEV5dUZSMmo2TEU0amV6UUVHN044a1BTTVZMS1RaaTRlVExJ?=
 =?utf-8?B?UDM5SVNTc25zbGQyUnlBTldIUy95MGR4bThtT0FGd1I4dEtyVXVDMGFxY001?=
 =?utf-8?B?QStjSFBLdjNYTEVqY2NpdmxhNmlDaVBERHk4cDRrbnh0RnJ3VEpla3d5OWNQ?=
 =?utf-8?B?RmFRNkFzV09UMHc1MElPZ3k2S1dXdzFXVVV6bE5jUGJzS0cwTWxrcHpjVVc5?=
 =?utf-8?B?K0xRcG1mbGJaY1FNbng1T01TRytvTDlaTmNWUk9vcjRSWmtxOFZvWlJWQklC?=
 =?utf-8?B?bVIxRXlZZlBGaFlqek1DT0JoQ28wc3k3SkJITVh6MExRU2ZDYVRRcWdhYVhi?=
 =?utf-8?B?a0UyY3NnS3Y4MmhOdkVuQyttRUU5NEsycUw1MVJnd1c5OTNFNkhBeEpzN1Vi?=
 =?utf-8?B?MzlQQmhEVDNKblVjVFA4NDFXUWxPT1B5QTBEOXV3dlgyQXNlVDJHVUxRRTJU?=
 =?utf-8?B?NVA5azVNaXFKcUZXeGcydnVkVitsQkxIakt3QW5yYWdJNXo1Q0ZWakticlBU?=
 =?utf-8?B?MW5ySlVVamtpNDFXSVROeVVRQi9qQjdaRlhSdGdydHpZMXZFQVVHRHpTbEJ5?=
 =?utf-8?B?ajlwSVFSdUVvQ0NuZkpOM3lHQ215a2xDNy9CSy9FRlFvbW1kbVpUNmlJK2JX?=
 =?utf-8?B?aW1RdkpaUTkyUk05L09BS1pXU2o4ZHRuY2lXQVVobkYwTk5kZHlJUGlLQ2Qv?=
 =?utf-8?B?eFExWUQ3QURCWDhVV2U3U1Fnak9EYzh0K051QlVHTHRsSFpXbjRJTTB5NjRV?=
 =?utf-8?B?dnpGUXBPbDVnL1Q0MzVScHAvanovYVBQbGlONFluQ043bDV1YitqRUN6NzAw?=
 =?utf-8?B?b0p0M1FCMmRxU21ESlZTRUVUb0M1c3hzdDRNVjc5S1dLc05oMkNuVnlOMmJv?=
 =?utf-8?B?QU9PK1prRzNaTFM1VG1UeXJHOFV4Q28zWThyR0dzRWtJdEhOWXQ3U3VPTzl1?=
 =?utf-8?B?MFZVMHNjYlVzU2ViWnBWdThSUlpiVGZtNGxETi9mOFNqbW5neHQzaVdWNkwv?=
 =?utf-8?Q?17e2orlP+/tCxAOYn9CF/Hjj5?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 8515328c-99a9-4989-7cfe-08dd72cd9806
X-MS-Exchange-CrossTenant-AuthSource: PH8PR12MB7326.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Apr 2025 16:35:50.4556
 (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: ooHLGiuVAcNeOjUfFXMwtLRGdIx2GluGpGmaMcbaYF/HQx+PE52IO6e6gycH+PqMCGuc3lo621CqKJ2GiMwt9Q==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR12MB7105


On 30/03/2025 22:11, Julien Grall wrote:
> Hi Ayan,
Hi Julien,
>
> On 30/03/2025 19:03, Ayan Kumar Halder wrote:
>> Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
>> ---
>> Changes from :-
>>
>> v1, v2 -
>> 1. New patch introduced in v3.
>> 2. Should be applied on top of
>> https://patchwork.kernel.org/project/xen-devel/cover/20250316192445.2376484-1-luca.fancellu@arm.com/ 
>>
>>
>>   xen/arch/arm/Kconfig             |  2 +-
>>   xen/arch/arm/arm32/mpu/Makefile  |  2 ++
>>   xen/arch/arm/arm32/mpu/p2m.c     | 18 ++++++++++++++++++
>>   xen/arch/arm/arm32/mpu/smpboot.c | 23 +++++++++++++++++++++++
>>   xen/arch/arm/include/asm/mm.h    |  5 +++++
>>   5 files changed, 49 insertions(+), 1 deletion(-)
>>   create mode 100644 xen/arch/arm/arm32/mpu/p2m.c
>>   create mode 100644 xen/arch/arm/arm32/mpu/smpboot.c
>>
>> diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
>> index 565f288331..a1dd942091 100644
>> --- a/xen/arch/arm/Kconfig
>> +++ b/xen/arch/arm/Kconfig
>> @@ -1,7 +1,7 @@
>>   config ARM_32
>>       def_bool y
>>       depends on "$(ARCH)" = "arm32"
>> -    select ARCH_MAP_DOMAIN_PAGE
>> +    select ARCH_MAP_DOMAIN_PAGE if MMU
>
> If ARCH_MAP_DOMAIN_PAGE is not present, then the assumption is Xen 
> will be able to access all the memory. Is this what we want long term?
>
> If not, then I would consider providing stubs rather than disable 
> ARCH_MAP_DOMAIN_PAGE.
I will provide the stubs.
>
>>     config ARM_64
>>       def_bool y
>> diff --git a/xen/arch/arm/arm32/mpu/Makefile 
>> b/xen/arch/arm/arm32/mpu/Makefile
>> index 3340058c08..38797f28af 100644
>> --- a/xen/arch/arm/arm32/mpu/Makefile
>> +++ b/xen/arch/arm/arm32/mpu/Makefile
>> @@ -1 +1,3 @@
>>   obj-y += head.o
>> +obj-y += smpboot.o
>> +obj-y += p2m.o
>> diff --git a/xen/arch/arm/arm32/mpu/p2m.c b/xen/arch/arm/arm32/mpu/p2m.c
>> new file mode 100644
>> index 0000000000..df8de5c7d8
>> --- /dev/null
>> +++ b/xen/arch/arm/arm32/mpu/p2m.c
>> @@ -0,0 +1,18 @@
>> +/* SPDX-License-Identifier: GPL-2.0-only */
>> +
>> +#include <xen/init.h>
>> +#include <asm/p2m.h>
>> +
>> +void __init setup_virt_paging(void)
>> +{
>> +    BUG_ON("unimplemented");
>> +}
>> +
>> +/*
>> + * Local variables:
>> + * mode: C
>> + * c-file-style: "BSD"
>> + * c-basic-offset: 4
>> + * indent-tabs-mode: nil
>> + * End:
>> + */
>> diff --git a/xen/arch/arm/arm32/mpu/smpboot.c 
>> b/xen/arch/arm/arm32/mpu/smpboot.c
>> new file mode 100644
>> index 0000000000..3f3e54294e
>> --- /dev/null
>> +++ b/xen/arch/arm/arm32/mpu/smpboot.c
>> @@ -0,0 +1,23 @@
>> +/* SPDX-License-Identifier: GPL-2.0-only */
>> +
>> +#include <xen/mm.h>
>> +
>> +int prepare_secondary_mm(int cpu)
>> +{
>> +    BUG_ON("unimplemented");
>> +    return -EINVAL;
>> +}
>> +
>> +void update_boot_mapping(bool enable)
>> +{
>> +    BUG_ON("unimplemented");
>> +}
>> +
>> +/*
>> + * 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 fbffaccef4..a894e28ac9 100644
>> --- a/xen/arch/arm/include/asm/mm.h
>> +++ b/xen/arch/arm/include/asm/mm.h
>> @@ -171,12 +171,17 @@ struct page_info
>>   #define PGC_need_scrub    PGC_allocated
>>     #ifdef CONFIG_ARM_32
>> +#ifdef CONFIG_MPU
>> +#define is_xen_heap_page(page) false
>> +#define is_xen_heap_mfn(mfn) false
>
> Can you clarify whether this is the intended implementation? If not 
> then we can be use BUG_ON("unimplemented")?
yes, we will use BUG_ON("unimplemented").
>
> Also...
>
>> +#else
>>   #define is_xen_heap_page(page) is_xen_heap_mfn(page_to_mfn(page))
>>   #define is_xen_heap_mfn(mfn) ({                                 \
>>       unsigned long mfn_ = mfn_x(mfn);                            \
>>       (mfn_ >= mfn_x(directmap_mfn_start) &&                      \
>>        mfn_ < mfn_x(directmap_mfn_end));                          \
>>   })
>> +#endif
>
> ... is the implementation will be similar to is_xen_heap_page() for MMU?
>
>>   #else
>>   #define is_xen_heap_page(page) ((page)->count_info & PGC_xen_heap)
>>   #define is_xen_heap_mfn(mfn) \
>
- Ayan
> Cheers,
>


From xen-devel-bounces@lists.xenproject.org Thu Apr 03 17:13:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 17:13:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.936974.1338065 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0O7h-0005tm-DQ; Thu, 03 Apr 2025 17:13:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 936974.1338065; Thu, 03 Apr 2025 17:13:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0O7h-0005tf-Av; Thu, 03 Apr 2025 17:13:01 +0000
Received: by outflank-mailman (input) for mailman id 936974;
 Thu, 03 Apr 2025 17:12: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=+EW4=WV=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1u0O7f-0005tR-QJ
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 17:12:59 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on20628.outbound.protection.outlook.com
 [2a01:111:f403:2415::628])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e2fcd542-10ae-11f0-9eaa-5ba50f476ded;
 Thu, 03 Apr 2025 19:12:58 +0200 (CEST)
Received: from MW4PR03CA0221.namprd03.prod.outlook.com (2603:10b6:303:b9::16)
 by MW4PR12MB6999.namprd12.prod.outlook.com (2603:10b6:303:20a::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8583.42; Thu, 3 Apr
 2025 17:12:53 +0000
Received: from CO1PEPF000044EF.namprd05.prod.outlook.com
 (2603:10b6:303:b9:cafe::88) by MW4PR03CA0221.outlook.office365.com
 (2603:10b6:303:b9::16) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8534.54 via Frontend Transport; Thu,
 3 Apr 2025 17:12:53 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CO1PEPF000044EF.mail.protection.outlook.com (10.167.241.69) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8606.22 via Frontend Transport; Thu, 3 Apr 2025 17:12:52 +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, 3 Apr
 2025 12:12:51 -0500
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; Thu, 3 Apr 2025 12:12:50 -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: e2fcd542-10ae-11f0-9eaa-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=p5A5H67bz/Hqnvo8rNUHfGXAuQP7jYYBsuL4hDWV9YzoGxbX8mtx2i8hn0hO0f90DJeF1JduLPk+1gdT1BplqhWfgRWPWrCtnY/yjknWVNV59cP8IKVbPye1gJLSp0mLR26CVgV7F2RDVhQ1jE+qcVBmfW/RV4GwwXf/G2CFFT6vPbQu4vaYaht5bXFNMJY1F9QVWEFL2GsTSKrCfeVZDbjbYmjmmVS50MC/OxUXcfzvwalACDDdV4qfQrKylejyCCBEn0Po3Xiz0FL2OSgkwRtQgH2TkSw+Lbxi+1YeURdGYNM9VLv6JV6oS9QoreFmB/enJ/u3qkIzd/WFwUJUpw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=QPaVRhWJsDHWA1QUu0+5fTyeqQZX7UO2SCPi94wxtzQ=;
 b=fS9OE9fgbxtZ+nrb2UF+ZGLuEX6drnLVCTUih+gzNcLYps3aUUslKulMv5tx+b+1NA1V2mddHEmBzGQyL8M3gLK+IDb1/BNMHB9bH6w6NA1FLDx0BbMiFG4XsSoaC7Cu5FnBfuoHV813h5jDa5G/7LQoB/RxFXGVTbx0hfGUpNYEgFeywr5f+7Kaqz6ifUSnsOJO62z+zSt63mxMv81escD8UgqF2qiX6/ew2UIyUkEl10W64Gvrt9XutDU28MrSAq6KoMGgrVze3eihsVKF4HX5KxgdNh93tranwwA6U0xiNx+x3RhXW54EJGMlGfUs7hotzgc66uESBJn1f0FSVA==
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=QPaVRhWJsDHWA1QUu0+5fTyeqQZX7UO2SCPi94wxtzQ=;
 b=WScnSvuXPhK2lD3w4Gt17BphPUx6U6eOplXBGLJ1nkGNwcGTIrDvVCNuzb7ksDkbedRUPEMrEMHdH2nz4Mvp+AJBKWbN/Bh+9IQt0BJvjh2B+CRSfDVPOs+N62jKCkBlRtTiW6nDkD7OEu3KRMvDw10J/3CfbbipqSgbiwXB+Ks=
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 v4 0/3] Enable early bootup of Armv8-R AArch32 systems
Date: Thu, 3 Apr 2025 18:12:38 +0100
Message-ID: <20250403171241.975377-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 (SATLEXMB04.amd.com: ayan.kumar.halder@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CO1PEPF000044EF:EE_|MW4PR12MB6999:EE_
X-MS-Office365-Filtering-Correlation-Id: 7920e019-4a58-49e3-1d6b-08dd72d2c4d6
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|376014|36860700013|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?SAHv5uQ363TBXgigGEjCKqvfU8N70sGEpssv/9IvAZUFs10m4Yefw/3rJh59?=
 =?us-ascii?Q?pLHq+fng+T23CkLqJLAkNax0Zsk3IDhUJqgt3gRAqgyWnT5gg1okFMMc4a4w?=
 =?us-ascii?Q?wmm/Ku78thBxYsPzKZuGVKnTlL/X+FrCL04EuddHW4iD0OZ+lrnFn4aqRCnv?=
 =?us-ascii?Q?YiXxkL+/GU4QEeJE/VDydE5ckexyK66m78XQOTaFnqN4HMvJDYCkekzqcJFh?=
 =?us-ascii?Q?Me+gK/c2sErKU/UWjpMp107G79wvuva2mJrA5qdKBuGy+NdLC3AJ5AIFQOWO?=
 =?us-ascii?Q?6+fkwIEPpia+7mPIZlel8OW/SeIpctAXL8ft3/6frLp5Wi/rqjZDkGKHWiVx?=
 =?us-ascii?Q?XfJXfITkI12mfqF9/wjVreU0ArucIXgCMWc7KxGleAfci7pRHZYVwOZuq9+X?=
 =?us-ascii?Q?hQ6+emanSooj/M/alAb18xrbbfcKCsb5CuTpNzWQl7QMQuUoHasUPQ7uPpGC?=
 =?us-ascii?Q?iy7byNDwxk/FSlbUKMENZubTTn9csCyvv0JW5YOo9NHjFxL2aQH94IoaGx1y?=
 =?us-ascii?Q?8CPJOiIjHw5xycF79EnDIc2m1FTZ+GmJR3xhS1SlzwqCnh/KcEnvSATmleae?=
 =?us-ascii?Q?e6FluR5RLdkDtsBETrJbRwlPruV8T7saHGRr1IxdL/wQkxq9E42YVxRJiWDc?=
 =?us-ascii?Q?TnrTq1xZ11YhunXGvtoQBMGxuIM7skoWfRVThoPq9OxpuHnY9ASgZRD+wfeN?=
 =?us-ascii?Q?YVvOR2tID7ltHwEE3axTmDt5fpu+yvCW9gyjwKsNy4WLv2q7i0R+W7rlHt7V?=
 =?us-ascii?Q?vvgpi4cZol4fSgiI4yMWa06Lw+UhqUXDwiMOmAC2aarR3iduTvFLkenkloD+?=
 =?us-ascii?Q?VNTgj9mlvNI55eF3un4BzNaPiJvOfj24Vn35yMaPGCZdcIisPn5Vg6D7fKZ8?=
 =?us-ascii?Q?mtHg4ccy7IzcVqrJE3Kyfxb+/BqAs7szKJZQZFe9R7aLlWLkzf3yCG+0DdNA?=
 =?us-ascii?Q?FdCZaFKZw3I9dTL8wTNdcHjEjXUgrG4vO1VzVUh4004nviS+YJ7kYZeTJ28j?=
 =?us-ascii?Q?1EIfWhZ2nFNPo0wLZUzgkxHPR2s14tcVz7N2MvXajqP0Paiu+Sj8Mbf6D9lu?=
 =?us-ascii?Q?AmrBQM9nU9jbdFoSqajjEKuwi6fFimKzNDF71P4mBTVmAomXbF0wPjCpqK/I?=
 =?us-ascii?Q?kZhe+d8QOaZ2fRMnw3wkwLQMJCxujWOCBDLVDGXAPfldQy2b6R0m+WUue62I?=
 =?us-ascii?Q?tidSQ3w2GFmGDF6zhBpnY7xh01wIyRK0vU8jqlYoOGFckktrCAftrer2k5RP?=
 =?us-ascii?Q?19OK//cjZAx1vKOI/5asW50MfOENkGmsAGlhoZG7lP8IRpaLy0pt0yrIRthZ?=
 =?us-ascii?Q?y9bRozGf07Kw/dYloWA+tw/XIMVwN53PxlGSei/rdlN/vTIVNKimGk4HbrGz?=
 =?us-ascii?Q?B1FB8ijsQ82X/q4xr/nv2OqtczS+MyrCM6At7lXj6ynT1S5i8SO6kfHlbjAt?=
 =?us-ascii?Q?VodwlMI37chQkb8+5zm5AOfKeRIxQXglicArXWZVCvvnR33Rbq9x+g9/gLfY?=
 =?us-ascii?Q?5Xv6XNDzah/Zerg=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)(82310400026)(376014)(36860700013)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Apr 2025 17:12:52.5981
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 7920e019-4a58-49e3-1d6b-08dd72d2c4d6
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:
	CO1PEPF000044EF.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR12MB6999

Enable early booting of Armv8-R AArch32 based systems.

Ayan Kumar Halder (3):
  xen/arm: Move some of the functions to common file
  xen/arm32: Create the same boot-time MPU regions as arm64
  xen/arm32: mpu: Stubs to build MPU for arm32

 xen/arch/arm/arm32/Makefile                   |  1 +
 xen/arch/arm/arm32/mpu/Makefile               |  3 +
 xen/arch/arm/arm32/mpu/head.S                 | 91 +++++++++++++++++++
 xen/arch/arm/arm32/mpu/p2m.c                  | 18 ++++
 xen/arch/arm/arm32/mpu/smpboot.c              | 23 +++++
 xen/arch/arm/arm64/mpu/head.S                 | 88 +-----------------
 xen/arch/arm/include/asm/arm64/sysregs.h      | 11 +++
 xen/arch/arm/include/asm/cpregs.h             |  4 +
 xen/arch/arm/include/asm/mm.h                 |  5 +
 xen/arch/arm/include/asm/mpu/cpregs.h         | 30 ++++++
 .../include/asm/mpu/prepare_xen_region.inc    | 89 ++++++++++++++++++
 xen/arch/arm/mpu/Makefile                     |  1 +
 xen/arch/arm/mpu/domain_page.c                | 40 ++++++++
 13 files changed, 317 insertions(+), 87 deletions(-)
 create mode 100644 xen/arch/arm/arm32/mpu/Makefile
 create mode 100644 xen/arch/arm/arm32/mpu/head.S
 create mode 100644 xen/arch/arm/arm32/mpu/p2m.c
 create mode 100644 xen/arch/arm/arm32/mpu/smpboot.c
 create mode 100644 xen/arch/arm/include/asm/mpu/cpregs.h
 create mode 100644 xen/arch/arm/include/asm/mpu/prepare_xen_region.inc
 create mode 100644 xen/arch/arm/mpu/domain_page.c

-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Thu Apr 03 17:13:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 17:13:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.936975.1338076 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0O7n-00068m-P1; Thu, 03 Apr 2025 17:13:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 936975.1338076; Thu, 03 Apr 2025 17: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 1u0O7n-00068f-LX; Thu, 03 Apr 2025 17:13:07 +0000
Received: by outflank-mailman (input) for mailman id 936975;
 Thu, 03 Apr 2025 17:13: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=+EW4=WV=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1u0O7m-0005tR-B8
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 17:13:06 +0000
Received: from NAM12-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam12on2062c.outbound.protection.outlook.com
 [2a01:111:f403:2417::62c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e77b7e48-10ae-11f0-9eaa-5ba50f476ded;
 Thu, 03 Apr 2025 19:13:05 +0200 (CEST)
Received: from MW4PR04CA0347.namprd04.prod.outlook.com (2603:10b6:303:8a::22)
 by SA1PR12MB9003.namprd12.prod.outlook.com (2603:10b6:806:389::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.44; Thu, 3 Apr
 2025 17:13:00 +0000
Received: from CO1PEPF000044F0.namprd05.prod.outlook.com
 (2603:10b6:303:8a:cafe::d8) by MW4PR04CA0347.outlook.office365.com
 (2603:10b6:303:8a::22) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8606.24 via Frontend Transport; Thu,
 3 Apr 2025 17:13:00 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CO1PEPF000044F0.mail.protection.outlook.com (10.167.241.70) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8606.22 via Frontend Transport; Thu, 3 Apr 2025 17:12:59 +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, 3 Apr
 2025 12:12:58 -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; Thu, 3 Apr
 2025 12:12:58 -0500
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; Thu, 3 Apr 2025 12:12:57 -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: e77b7e48-10ae-11f0-9eaa-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=NdFF8HbezAIxFhy67uMlSxM/hwNE9DBo81RsfqfkHZu5Meq8Es1pRpeu3UbL2hjgOc/6sbwg75kuv+nNNUlnR/LTL8oMiotWa2gGYYtHfnIFVTS58BumjoEGWXQSaeD8h+arEABadUyIDCfmcwOWLUg9BHcZvgoShl/FaSkS6k7TPYdopDi5IHLhdxz+wRVCnZ7S8sNMu23oyqtdtLAM4bSRA01mXsdlacO/9xN4RkkfLjllOYKI8TNcgvPdUvPAwqByT5mTy+OOAIWfR3ctobKiofipPtYE0Nsswm4H1DSoU5YRF90D6eP8SfZyoNMBH1+FUMMEstC5ObCq9exX9A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=/iEKLthfgRWveEe3S4iS12T9P0XaDOcrSQh/HuvVFWc=;
 b=eOqWzF0eXhyxLaKlaRZIlyFevsMj7WA2fBcwu+c6lJ1QHJ6FXk4TwI95y9lLEfxjkptpLKOdS4js0hE1VuQ3CwjrDwI61kGcZ49MkQsCrXUgFOkmdu8ZKCkt6xzkP4dsYoEKtACM5EoeEg543rjOFcykQUIaZeTQ0CioKjkct0UCzxXRRYRog4x7wutFnvDpUpGxxvBH9Dk/Ska0gkqXXQEMgj2/l045USnQXKffzsLdvpf51vX400LE8gbr2ACQ91KK3ZS4ho82OX4aATDYtWeyAQw6UE258PR8CTfCN5tEnUJd05uzp+87pF/hrMD0XR+aS2bMW3F7L/oTctDXBw==
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=/iEKLthfgRWveEe3S4iS12T9P0XaDOcrSQh/HuvVFWc=;
 b=wo0dWDxZ9b8rJPf8K4n9m1VXwVSbe7yzeqEauQt/dsolsYWQwehiHbHAq+naZxPsnUJZPBU5/4/IDy4TaqkKES8SiMT1a/nTPdCMSz+nia1WZA0CUIx94+vz5a/qK3dk+/OCZWn4ea97dUCZlYUxEn6VnbqMXfFq/d3X52CZZkI=
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 v4 2/3] xen/arm32: Create the same boot-time MPU regions as arm64
Date: Thu, 3 Apr 2025 18:12:40 +0100
Message-ID: <20250403171241.975377-3-ayan.kumar.halder@amd.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20250403171241.975377-1-ayan.kumar.halder@amd.com>
References: <20250403171241.975377-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: CO1PEPF000044F0:EE_|SA1PR12MB9003:EE_
X-MS-Office365-Filtering-Correlation-Id: 26cfe95f-cc09-42c2-3fc9-08dd72d2c8e3
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?q06R+4FoUE6+yZvhUmsuH7Mw3KUIgTh+LQVyIR4fO7iU+hHe/IfCKRzAxRXE?=
 =?us-ascii?Q?ZAatyp1lv/rLoJTeYg4zSc9z/5/Q29WY5XLdSFAkfGoh18fWg/2PAlb54Ub8?=
 =?us-ascii?Q?QwKMNkKHO0rN3NY4dNK9MXsGkO74BJNQL1Z4Pw/J8gqcAkZdiGY3y6P3LOo4?=
 =?us-ascii?Q?oHXIyIpYqhxrv3fK26YzQ46YzHhIz48qDPTHUigVgMwHsPr2Q/tOjV96SX1p?=
 =?us-ascii?Q?uq4c1CTOqLxXGttIXmdDfOBt7YV5bU2ITDY/sPOZW9if9PYPEFbYKjyFPpUC?=
 =?us-ascii?Q?qK1DjU5RvfTxjK+x/00uJz3RZs97sPl80/5W9G36tHKZlPwmeaidJJ1mLZ61?=
 =?us-ascii?Q?k1h1sPmZrDdSbFUQmERZe82fnrIzfumfrbFC41lhHMFy9y9695nux0D3tdgI?=
 =?us-ascii?Q?EA7L0kY5hwfoAhVS+rDIrgsjZ7gL1gWdQ9V3ksCLcoervYTXs6rMF9hiaryZ?=
 =?us-ascii?Q?6qRoI2eLNPhISBcl48q669N5QgtGUCIDSlKzP8lqvw6ckkm3gE6CeTLHMhSt?=
 =?us-ascii?Q?/SkI2sX69FyRJHIe/tkLiFIJVqxSuFtSu/5Jksx4V4+8VslEC+Zf2K1Z4Mg6?=
 =?us-ascii?Q?5LmOMoZ7aI261Wg/GfXKS7FLe8KR3AdFsY0iUHpaPXm8i81IATiAtCrkclC7?=
 =?us-ascii?Q?z1T+TV35JDHhFU8gA5uKCHFCftOA95HlXgsEH2RGv46x+nXsRK5g2BvJJG/V?=
 =?us-ascii?Q?Lma/n25TTVViYexGsOPhtK78EN5FRmWTh1KV3nevujzDAuP+hu9aoEAAOfa0?=
 =?us-ascii?Q?HxLYdXrf4DU/tYzTvDstkykaPnNuULSGhV+XJNIHeiFJcnWbtPnyDJy6zR9Q?=
 =?us-ascii?Q?9HsCBzfHovFp6sCyBv5SzuMaodphnv26W22C0xm0dyUQJ9Bz26RgXnr8qM7g?=
 =?us-ascii?Q?f7xvTYeCntmwP1ArESq5lfYxoRajE+OMuosdSZmhfruVyEc6DDf+GgmxPm84?=
 =?us-ascii?Q?no5kCSXnhPF6AFIGl8wRStAoMarTSFhsDWuUw5urOBmTywq+vHKZ3vlYR9cG?=
 =?us-ascii?Q?FOMcgl9Y0UapA/28VCpyzDXEAvhfDGjyf0W/J2EQpFlve1l0/KbCJ00O70QV?=
 =?us-ascii?Q?T6JXL5MkyMQT0mmUjJziFe6RqXTxKdOwh4of8LxWVqCx/7iXWuIQ3MVKjYfF?=
 =?us-ascii?Q?Db+HEHgdtwDeUoBfMGJSg7AweTkiltIN1M96eoFpKcUpkZ9QAXHDdWYsHMmL?=
 =?us-ascii?Q?c7WE1cur0NxpN9ZTxZjwteaTvtJ/QEFYUEhcfji6ByTZwYXtst/mLWtqVA9f?=
 =?us-ascii?Q?xUImFWej21gw5gXvo4LZpkDURaxIBq4hU8zw6LIWisnY3Ctbko0G+kxBqjJ7?=
 =?us-ascii?Q?x5yHEXsHfQ9aXlqLXBopJ8dMdX9KGlJpdvLfhshO4ODZS7XfqP3whEM0GtcN?=
 =?us-ascii?Q?SQDevs3+zPQ4lJbE38bQql4cYQRvzZLFr8FBXIiLb4LaPeO+a3sJF9fKyEYs?=
 =?us-ascii?Q?Gd2GppEZBmMDFN9jj+Ii/tLScIf6uqy5WFn/Ff/YLVatkNXZQIMMqQ=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)(82310400026)(1800799024)(36860700013)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Apr 2025 17:12:59.4107
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 26cfe95f-cc09-42c2-3fc9-08dd72d2c8e3
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:
	CO1PEPF000044F0.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB9003

We have created the same boot-time MPU protection regions as Armv8-R AArch64.
Also, we have defined *_PRBAR macros for arm32. The only difference from
arm64 is that XN is 1-bit for arm32.
The macros have been defined in mpu/cpregs.h.

Also defined WRITE_SYSREG_ASM() to write to system registers in assembly.

Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
---
Changes from

v1 -

1. enable_mpu() now sets HMAIR{0,1} registers. This is similar to what is
being done in enable_mmu(). All the mm related configurations happen in this
function.

2. Fixed some typos. 

v2 -
1. Include the common prepare_xen_region.inc in head.S.

2. Define LOAD_SYSREG()/STORE_SYSREG() for arm32.

v3 -
1. Rename STORE_SYSREG() as WRITE_SYSREG_ASM()

2. enable_boot_cpu_mm() is defined in head.S

 xen/arch/arm/arm32/Makefile           |  1 +
 xen/arch/arm/arm32/mpu/Makefile       |  1 +
 xen/arch/arm/arm32/mpu/head.S         | 91 +++++++++++++++++++++++++++
 xen/arch/arm/include/asm/cpregs.h     |  4 ++
 xen/arch/arm/include/asm/mpu/cpregs.h | 30 +++++++++
 5 files changed, 127 insertions(+)
 create mode 100644 xen/arch/arm/arm32/mpu/Makefile
 create mode 100644 xen/arch/arm/arm32/mpu/head.S
 create mode 100644 xen/arch/arm/include/asm/mpu/cpregs.h

diff --git a/xen/arch/arm/arm32/Makefile b/xen/arch/arm/arm32/Makefile
index 40a2b4803f..537969d753 100644
--- a/xen/arch/arm/arm32/Makefile
+++ b/xen/arch/arm/arm32/Makefile
@@ -1,5 +1,6 @@
 obj-y += lib/
 obj-$(CONFIG_MMU) += mmu/
+obj-$(CONFIG_MPU) += mpu/
 
 obj-$(CONFIG_EARLY_PRINTK) += debug.o
 obj-y += domctl.o
diff --git a/xen/arch/arm/arm32/mpu/Makefile b/xen/arch/arm/arm32/mpu/Makefile
new file mode 100644
index 0000000000..3340058c08
--- /dev/null
+++ b/xen/arch/arm/arm32/mpu/Makefile
@@ -0,0 +1 @@
+obj-y += head.o
diff --git a/xen/arch/arm/arm32/mpu/head.S b/xen/arch/arm/arm32/mpu/head.S
new file mode 100644
index 0000000000..719ae3624e
--- /dev/null
+++ b/xen/arch/arm/arm32/mpu/head.S
@@ -0,0 +1,91 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Start-of-day code for an Armv8-R MPU system.
+ */
+
+#include <asm/arm32/macros.h>
+#include <asm/mpu/prepare_xen_region.inc>
+#include <asm/page.h>
+
+/*
+ * Set up the memory attribute type tables and 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 AArch32 architecture is
+ * IMPLEMENTATION DEFINED, we intend to turn off the Background region here.
+ *
+ * Clobbers r0 - r1
+ */
+FUNC_LOCAL(enable_mpu)
+    /* Set up memory attribute type tables */
+    mov_w r0, MAIR0VAL
+    mov_w r1, MAIR1VAL
+    mcr   CP32(r0, HMAIR0)
+    mcr   CP32(r1, HMAIR1)
+
+    mrc   CP32(r0, HSCTLR)
+    bic   r0, r0, #SCTLR_ELx_BR       /* Disable Background region */
+    orr   r0, r0, #SCTLR_Axx_ELx_M    /* Enable MPU */
+    orr   r0, r0, #SCTLR_Axx_ELx_C    /* Enable D-cache */
+    mcr   CP32(r0, HSCTLR)
+    isb
+
+    ret
+END(enable_mpu)
+
+/*
+ * Maps the various sections of Xen (described in xen.lds.S) as different MPU
+ * regions.
+ *
+ * Clobbers r0 - r5
+ *
+ */
+FUNC(enable_boot_cpu_mm)
+    /* Get the number of regions specified in MPUIR_EL2 */
+    mrc   CP32(r5, MPUIR_EL2)
+    and   r5, r5, #NUM_MPU_REGIONS_MASK
+
+    /* x0: region sel */
+    mov   r0, #0
+    /* Xen text section. */
+    mov_w   r1, _stext
+    mov_w   r2, _etext
+    prepare_xen_region r0, r1, r2, r3, r4, r5, attr_prbar=REGION_TEXT_PRBAR
+
+    /* Xen read-only data section. */
+    mov_w   r1, _srodata
+    mov_w   r2, _erodata
+    prepare_xen_region r0, r1, r2, r3, r4, r5, attr_prbar=REGION_RO_PRBAR
+
+    /* Xen read-only after init and data section. (RW data) */
+    mov_w   r1, __ro_after_init_start
+    mov_w   r2, __init_begin
+    prepare_xen_region r0, r1, r2, r3, r4, r5
+
+    /* Xen code section. */
+    mov_w   r1, __init_begin
+    mov_w   r2, __init_data_begin
+    prepare_xen_region r0, r1, r2, r3, r4, r5, attr_prbar=REGION_TEXT_PRBAR
+
+    /* Xen data and BSS section. */
+    mov_w   r1, __init_data_begin
+    mov_w   r2, __bss_end
+    prepare_xen_region r0, r1, r2, r3, r4, r5
+
+#ifdef CONFIG_EARLY_PRINTK
+    /* Xen early UART section. */
+    mov_w   r1, CONFIG_EARLY_UART_BASE_ADDRESS
+    mov_w   r2, (CONFIG_EARLY_UART_BASE_ADDRESS + CONFIG_EARLY_UART_SIZE)
+    prepare_xen_region r0, r1, r2, r3, r4, r5, attr_prbar=REGION_DEVICE_PRBAR, attr_prlar=REGION_DEVICE_PRLAR
+#endif
+
+    b    enable_mpu
+END(enable_boot_cpu_mm)
+
+/*
+ * Local variables:
+ * mode: ASM
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/xen/arch/arm/include/asm/cpregs.h b/xen/arch/arm/include/asm/cpregs.h
index aec9e8f329..6019a2cbdd 100644
--- a/xen/arch/arm/include/asm/cpregs.h
+++ b/xen/arch/arm/include/asm/cpregs.h
@@ -1,6 +1,10 @@
 #ifndef __ASM_ARM_CPREGS_H
 #define __ASM_ARM_CPREGS_H
 
+#ifdef CONFIG_MPU
+#include <asm/mpu/cpregs.h>
+#endif
+
 /*
  * AArch32 Co-processor registers.
  *
diff --git a/xen/arch/arm/include/asm/mpu/cpregs.h b/xen/arch/arm/include/asm/mpu/cpregs.h
new file mode 100644
index 0000000000..66871379a5
--- /dev/null
+++ b/xen/arch/arm/include/asm/mpu/cpregs.h
@@ -0,0 +1,30 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#ifndef __ASM_ARM_MPU_CPREGS_H
+#define __ASM_ARM_MPU_CPREGS_H
+
+#define REGION_TEXT_PRBAR       0x18    /* SH=11 AP=10 XN=0 */
+#define REGION_RO_PRBAR         0x1D    /* SH=11 AP=10 XN=1 */
+#define REGION_DATA_PRBAR       0x19    /* SH=11 AP=00 XN=1 */
+#define REGION_DEVICE_PRBAR     0x11    /* SH=10 AP=00 XN=1 */
+
+#define HMPUIR          p15,4,c0,c0,4
+
+/* CP15 CR6: MPU Protection Region Base/Limit/Select Address Register */
+#define HPRSELR         p15,4,c6,c2,1
+#define PRBAR_EL2       p15,4,c6,c3,0
+#define PRLAR_EL2       p15,4,c6,c8,1
+
+#define MPUIR_EL2       HMPUIR
+#define PRSELR_EL2      HPRSELR
+
+#define WRITE_SYSREG_ASM(v, name) mcr CP32(v, name)
+
+#endif /* __ASM_ARM_MPU_CPREGS_H */
+
+/*
+ * Local variables:
+ * mode: ASM
+ * indent-tabs-mode: nil
+ * End:
+ */
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Thu Apr 03 17:13:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 17:13:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.936978.1338093 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0O7p-0006Ua-GY; Thu, 03 Apr 2025 17:13:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 936978.1338093; Thu, 03 Apr 2025 17:13:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0O7p-0006Tv-C4; Thu, 03 Apr 2025 17:13:09 +0000
Received: by outflank-mailman (input) for mailman id 936978;
 Thu, 03 Apr 2025 17:13: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=+EW4=WV=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1u0O7o-0006L0-RM
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 17:13:08 +0000
Received: from NAM10-BN7-obe.outbound.protection.outlook.com
 (mail-bn7nam10on20603.outbound.protection.outlook.com
 [2a01:111:f403:2009::603])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e8380067-10ae-11f0-9ffb-bf95429c2676;
 Thu, 03 Apr 2025 19:13:06 +0200 (CEST)
Received: from MW4PR04CA0341.namprd04.prod.outlook.com (2603:10b6:303:8a::16)
 by CYXPR12MB9425.namprd12.prod.outlook.com (2603:10b6:930:dc::5) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.44; Thu, 3 Apr
 2025 17:13:02 +0000
Received: from CO1PEPF000044F0.namprd05.prod.outlook.com
 (2603:10b6:303:8a:cafe::ca) by MW4PR04CA0341.outlook.office365.com
 (2603:10b6:303:8a::16) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8583.41 via Frontend Transport; Thu,
 3 Apr 2025 17:13:02 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CO1PEPF000044F0.mail.protection.outlook.com (10.167.241.70) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8606.22 via Frontend Transport; Thu, 3 Apr 2025 17:13:02 +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, 3 Apr
 2025 12:13:00 -0500
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; Thu, 3 Apr 2025 12:12:59 -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: e8380067-10ae-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=zAa8UVDK5p8n3Kp3/Tcj3dChSMFgSIS8fpMjuDgGGj6SBAUwRTu/fJc6tNLHIXKO/xgbEix+FKeHeQ3XmZTk1FWLQ20j+o0WM5FjB/eaBe1jaccdRVYl69/4xJW5VDYgeqizOmLlZS+en5vM1d+FD07P9HwV83VhMWcdkFO1eszVksDfkm4+oqV3YnB76HKp0Lpts812ipCq7YGzJT1lL7WT/aW8CP6QoV6ULSeeh/RMe6DP1d2TN/tdbzQ30qzlRxjqfZ+0QCpjqgZ4F+Sbf9OU94+J0Nhci8rSaFc8G6r+A0G1dyk3yoClN9KzEwwN23xu/RsQVSBac6hR1KYe9w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=LFxRm3vAxLemsPGaMdn1gRfz+lxEXXhaQLxo4JEHLaw=;
 b=h1ABOHVYp3AqpAl47Han9h5Mpcd3gitvijyETS6MBNh4T+1P1dSBtD9fsqgvqyC61rz9BBWYNaMEMlM5rnvmn+hkBn7rV0fOQPjzbMuZKQq2R1ul2LEpafDIv3c9bydDDRiEhcWV9kxjnr7k9yew/bgHJuOfZPH7OjHeSi5rz3RUeNTqGBW/iRG/a77OKsclR9NNua6GDXPdT5wLAQurcCpis6mTChe4Udw9e69KKUB3okIGAkSIHYW0GZcZLT49VdkxFM0nMHOXncCQ6ots81o88Up7Js3WI5hIlAk5D0LWSt6kMr6XI3AlGX+PQn38odRgh4yRcgRAeJ2QhqDyow==
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=LFxRm3vAxLemsPGaMdn1gRfz+lxEXXhaQLxo4JEHLaw=;
 b=fgyQUcgvt9wy9jOaC46DGS32yAoxCHYsvIIv3ga+kmT+LI5r+qZbQOBFYF/gjsAq/SM/XuoQN8wWHOuAOiEnveNT9QwZDkB+x90wIpPIivbBbtLz63KsBOL93KgOusirZgUv4Nl5WjPQogSqy5uUIaHOT5QlfcsyO27XKDFxI14=
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 v4 3/3] xen/arm32: mpu: Stubs to build MPU for arm32
Date: Thu, 3 Apr 2025 18:12:41 +0100
Message-ID: <20250403171241.975377-4-ayan.kumar.halder@amd.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20250403171241.975377-1-ayan.kumar.halder@amd.com>
References: <20250403171241.975377-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: CO1PEPF000044F0:EE_|CYXPR12MB9425:EE_
X-MS-Office365-Filtering-Correlation-Id: 862b974f-9f7a-4d42-5303-08dd72d2ca9c
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?uloNzALX8F/VGB8+8su6jVSsMKSlKErxVqlYBO2tzXTza5ov1yNHDcsm0Zoj?=
 =?us-ascii?Q?DLnM7WDFwyK28ti/bI09solcczbjka/S7eWXPfU04ddqHsRdt44lQcY3y7fK?=
 =?us-ascii?Q?tKqsKW7/5nVSt36tnUq8/ObKEQYRRqqAkzoCJNCFZGe6QXkZWs0govF4trhZ?=
 =?us-ascii?Q?eMUAthTgkxUSycwkJHnzYvdnHQiwkZ2BbntNCMdCqtfLERbeOzSGhhYE14DO?=
 =?us-ascii?Q?yyd7FGy9i4cPQcq6b47NmSIh3hzROEUao6ESoVFrxHLxXqBBE6HuIwz7OAXx?=
 =?us-ascii?Q?wdUJXcpjeEv/F+oThp4wKyw2Zja2IdgQ0ujwVgx7h6kYWIQrwdE3apfk/qv6?=
 =?us-ascii?Q?3qoXFwwgsebou9YrLTdMlkCny4BlJpMBKRGtVFefOfY+26IE/+kr4c9ZVWp+?=
 =?us-ascii?Q?tdTAA5pDikqw40Y4BsGg+iamPGnvrMWOtqRaTar/xVsymxNFnFu5t1FqyfS3?=
 =?us-ascii?Q?30xfT+EljJOIHFv4YkVZmTWeejKoTHspZCIMRrCBD+pvS3PtzZCOi+eF5UC3?=
 =?us-ascii?Q?Y/q5b3c2N0xehqctsPywZFfdHBoA2p4n9CuaQyz8bjRcqfq8c9ryWBrgv/yF?=
 =?us-ascii?Q?ltv+V6RQ40E9DgVytHi0t4tWmJUUdWs9ImZ2JD7majtMuYzli+EnmK27NB5n?=
 =?us-ascii?Q?4YR02wriYuHj4b5hGmfUycRm98VFXhEJRwdU0IWpgK4d/ngcvygjm2/7zogA?=
 =?us-ascii?Q?H5zh2sKINRm9QV54GYF+3hvw0JAsi+mcfDsD+1iDAl89nse0LZTq6F3y8Efo?=
 =?us-ascii?Q?hUM+jsVeeROjhLEVeUoarsOC6k+qpTWZjkjaygJSlLyP9bNIeiadjjxMCBjl?=
 =?us-ascii?Q?kyZ1ejHDM1Ibf9Lb5LDL23cm2i9NQPs+aN512sY4cfgAkwtorzzchQ96b2xn?=
 =?us-ascii?Q?hQep8oHsJZH2B3oAmvhsC8B76JwxaLJlu07419bQ61lFd2DAiVd8JnKNcuPP?=
 =?us-ascii?Q?68OEDfGuPRiGqn5qzypVg5TbF4KnQk7ZPPQUCQuMa26KhryN4VN7SszAEyRS?=
 =?us-ascii?Q?EyhEJFj6nDTC4JwOK3fZCoBB4UaaDcJ1olUaVAzoQHm8+YxlNvxaBbD3sWAF?=
 =?us-ascii?Q?CPVFKYkn3x80hdSCJm7bewbG5Q8/4SlDxr5bMsYrOZVOfDmhCZFkWPKdPWtw?=
 =?us-ascii?Q?ByRKPtFmSPdF1eghBztDYfBkcf/V3nVxWztXq7TPbjGcuyZCEPuSl7J3auW5?=
 =?us-ascii?Q?GGB/MWdSDsaxLtl8ckyauBvJkR30AcC4vvulnLl0cZy4NT1cmDMGD0o9fSkz?=
 =?us-ascii?Q?QnDZ7UfpEOprgulzT0cUNs/ikcE8HTuhMe3CZiVBSN9QV5ZhcDXdSqZBywFX?=
 =?us-ascii?Q?4KSB2YyqeQ9MwMMUUt2mU5hN6lIqlTSdMfgUg5YUEqkx7zoceYI1wvIxEkmR?=
 =?us-ascii?Q?f2c6BzJAUf/MqnOn9tcAypD9bUD9feBRpDA3CKsYQnAEa0i13nqvUFl1ngx6?=
 =?us-ascii?Q?EYDYeC79SOj13Y52gM2qLydqDjQL5LussWlyFRF2ysewcqtsnDbyp/ggVKUh?=
 =?us-ascii?Q?NSQskDvS+RwY5Zk=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)(82310400026)(1800799024)(36860700013)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Apr 2025 17:13:02.3013
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 862b974f-9f7a-4d42-5303-08dd72d2ca9c
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:
	CO1PEPF000044F0.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CYXPR12MB9425

Add stubs to enable compilation

Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
---

Changes from :-

v1, v2 -
1. New patch introduced in v3.
2. Should be applied on top of
https://patchwork.kernel.org/project/xen-devel/cover/20250316192445.2376484-1-luca.fancellu@arm.com/

v3 -
1. Add stubs for map_domain_page() and similar functions.

2. 'BUG_ON("unimplemented")' is kept in all the stubs.

 xen/arch/arm/arm32/mpu/Makefile  |  2 ++
 xen/arch/arm/arm32/mpu/p2m.c     | 18 ++++++++++++++
 xen/arch/arm/arm32/mpu/smpboot.c | 23 ++++++++++++++++++
 xen/arch/arm/include/asm/mm.h    |  5 ++++
 xen/arch/arm/mpu/Makefile        |  1 +
 xen/arch/arm/mpu/domain_page.c   | 40 ++++++++++++++++++++++++++++++++
 6 files changed, 89 insertions(+)
 create mode 100644 xen/arch/arm/arm32/mpu/p2m.c
 create mode 100644 xen/arch/arm/arm32/mpu/smpboot.c
 create mode 100644 xen/arch/arm/mpu/domain_page.c

diff --git a/xen/arch/arm/arm32/mpu/Makefile b/xen/arch/arm/arm32/mpu/Makefile
index 3340058c08..38797f28af 100644
--- a/xen/arch/arm/arm32/mpu/Makefile
+++ b/xen/arch/arm/arm32/mpu/Makefile
@@ -1 +1,3 @@
 obj-y += head.o
+obj-y += smpboot.o
+obj-y += p2m.o
diff --git a/xen/arch/arm/arm32/mpu/p2m.c b/xen/arch/arm/arm32/mpu/p2m.c
new file mode 100644
index 0000000000..df8de5c7d8
--- /dev/null
+++ b/xen/arch/arm/arm32/mpu/p2m.c
@@ -0,0 +1,18 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <xen/init.h>
+#include <asm/p2m.h>
+
+void __init setup_virt_paging(void)
+{
+    BUG_ON("unimplemented");
+}
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/xen/arch/arm/arm32/mpu/smpboot.c b/xen/arch/arm/arm32/mpu/smpboot.c
new file mode 100644
index 0000000000..3f3e54294e
--- /dev/null
+++ b/xen/arch/arm/arm32/mpu/smpboot.c
@@ -0,0 +1,23 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <xen/mm.h>
+
+int prepare_secondary_mm(int cpu)
+{
+    BUG_ON("unimplemented");
+    return -EINVAL;
+}
+
+void update_boot_mapping(bool enable)
+{
+    BUG_ON("unimplemented");
+}
+
+/*
+ * 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 fbffaccef4..2a52cf530f 100644
--- a/xen/arch/arm/include/asm/mm.h
+++ b/xen/arch/arm/include/asm/mm.h
@@ -171,12 +171,17 @@ struct page_info
 #define PGC_need_scrub    PGC_allocated
 
 #ifdef CONFIG_ARM_32
+#ifdef CONFIG_MPU
+#define is_xen_heap_page(page) ({ BUG_ON("unimplemented"); false; })
+#define is_xen_heap_mfn(mfn) ({ BUG_ON("unimplemented"); false; })
+#else /* !CONFIG_MPU */
 #define is_xen_heap_page(page) is_xen_heap_mfn(page_to_mfn(page))
 #define is_xen_heap_mfn(mfn) ({                                 \
     unsigned long mfn_ = mfn_x(mfn);                            \
     (mfn_ >= mfn_x(directmap_mfn_start) &&                      \
      mfn_ < mfn_x(directmap_mfn_end));                          \
 })
+#endif /* !CONFIG_MPU */
 #else
 #define is_xen_heap_page(page) ((page)->count_info & PGC_xen_heap)
 #define is_xen_heap_mfn(mfn) \
diff --git a/xen/arch/arm/mpu/Makefile b/xen/arch/arm/mpu/Makefile
index 21bbc517b5..ff221011d5 100644
--- a/xen/arch/arm/mpu/Makefile
+++ b/xen/arch/arm/mpu/Makefile
@@ -2,3 +2,4 @@ obj-y += mm.o
 obj-y += p2m.o
 obj-y += setup.init.o
 obj-y += vmap.o
+obj-$(CONFIG_ARM_32) += domain_page.o
diff --git a/xen/arch/arm/mpu/domain_page.c b/xen/arch/arm/mpu/domain_page.c
new file mode 100644
index 0000000000..b9ebb03d67
--- /dev/null
+++ b/xen/arch/arm/mpu/domain_page.c
@@ -0,0 +1,40 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+#include <xen/domain_page.h>
+
+void *map_domain_page_global(mfn_t mfn)
+{
+    BUG_ON("unimplemented");
+    return (void*)0;
+}
+
+/* Map a page of domheap memory */
+void *map_domain_page(mfn_t mfn)
+{
+    BUG_ON("unimplemented");
+    return (void*)0;
+}
+
+/* Release a mapping taken with map_domain_page() */
+void unmap_domain_page(const void *ptr)
+{
+    BUG_ON("unimplemented");
+}
+
+mfn_t domain_page_map_to_mfn(const void *ptr)
+{
+    BUG_ON("unimplemented");
+}
+
+void unmap_domain_page_global(const void *va)
+{
+    BUG_ON("unimplemented");
+}
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Thu Apr 03 17:13:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 17:13:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.936976.1338087 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0O7p-0006NX-3I; Thu, 03 Apr 2025 17:13:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 936976.1338087; Thu, 03 Apr 2025 17:13:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0O7o-0006NQ-TJ; Thu, 03 Apr 2025 17:13:08 +0000
Received: by outflank-mailman (input) for mailman id 936976;
 Thu, 03 Apr 2025 17:13: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=+EW4=WV=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1u0O7n-0005tR-BF
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 17:13:07 +0000
Received: from NAM04-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam04on2062e.outbound.protection.outlook.com
 [2a01:111:f403:2409::62e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e7cd9c2d-10ae-11f0-9eaa-5ba50f476ded;
 Thu, 03 Apr 2025 19:13:06 +0200 (CEST)
Received: from DM6PR03CA0091.namprd03.prod.outlook.com (2603:10b6:5:333::24)
 by IA1PR12MB6356.namprd12.prod.outlook.com (2603:10b6:208:3e0::5) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.50; Thu, 3 Apr
 2025 17:13:00 +0000
Received: from CY4PEPF0000EDD6.namprd03.prod.outlook.com
 (2603:10b6:5:333:cafe::20) by DM6PR03CA0091.outlook.office365.com
 (2603:10b6:5:333::24) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8606.24 via Frontend Transport; Thu,
 3 Apr 2025 17:12:58 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 CY4PEPF0000EDD6.mail.protection.outlook.com (10.167.241.202) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8606.22 via Frontend Transport; Thu, 3 Apr 2025 17:12:58 +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, 3 Apr
 2025 12:12:56 -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; Thu, 3 Apr
 2025 12:12:55 -0500
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; Thu, 3 Apr 2025 12:12:54 -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: e7cd9c2d-10ae-11f0-9eaa-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Yrjiz/8iMdpbmkbpEcfb1N25WLppPJuEgnUq5eg5fyAk6AWXgngdSeDRYWb/NAEc7fal6ThE+xD3eXKH+gSETWDH/q6z6hTM6PA8yeSlHXPL5p3YDvH/GX5GDPCcKLeHNwyTflB16VD5qOtEJzRK2bjb3/TFBe78CWIqBmt8cZNkLDMdyLSsHiTZulkx6FtQu75GHTiu55YUrv4BS1n3CdMo/7QE3vGxFI2KIddzwxoWMGd1fcvz2VidyVSZ/Y0j/TFhTvSl97a3cVR55fTQhx2x/Hy837s4j3cU/b0qhu0wayBEoAHI2y2q7iD42TDmE/1YIQLhkCM+jUoRAV33CA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=LQlVndv6IFyQsh/aclgDelcrFq42ln2cN7OA9k6EGpQ=;
 b=TtgDXNCJ9wK5MUzKHbauMG2A3yY9zTzu+FFrE9PNr3lEkxpc+yA44m2+sUv4PMW1NeyiM3aO/ZB990mzhKEPBfv9fOu2ETsgvPVwrE5gP93sb2FEz9tAMQVPiFGUCeIlbeqfkmorPpGDuuC8Oeux1WmsPC9R6oJtdNcAFBrXn/7s/5uefYIMozmVYfcpSemTcoc0cU1Gbty3x5NSZgTkmOx9/eiagacsfzVYV73lHwWMMwNO6i4/hq7J7bDmvpVc7HMZOtvfN5/VkN7zo9BM3dLjRW5eBtEgewVLI8mCuDXGsK4x7DN5guwkqamI10LAdCt2RePpXha6EVLvM+w4Iw==
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=LQlVndv6IFyQsh/aclgDelcrFq42ln2cN7OA9k6EGpQ=;
 b=Vry9FLJDemX7W1a0n1yZ+5kb4Q0QlSBdJz+d+kkvzHeIxth3UGJLHAOGmF+1A9f+0FX9+2+s1xtDMjt+dMWIXsXnZenRXTc3sJJrhGFxtoigw9qAo9mbT/njnejkPFmBCXzY8s5UTocyHLQ2yXGdR509d2IxkkKO4FTrPY+lkUQ=
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 v4 1/3] xen/arm: Move some of the functions to common file
Date: Thu, 3 Apr 2025 18:12:39 +0100
Message-ID: <20250403171241.975377-2-ayan.kumar.halder@amd.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20250403171241.975377-1-ayan.kumar.halder@amd.com>
References: <20250403171241.975377-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: CY4PEPF0000EDD6:EE_|IA1PR12MB6356:EE_
X-MS-Office365-Filtering-Correlation-Id: bbc10902-0735-4d6b-f89f-08dd72d2c811
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?MzbSPx4qmyJBklvTR8GMBHK+kCEYa7SHo1gQKBogzY9wMZbbIdJH8gnhdM6t?=
 =?us-ascii?Q?tZYRj0SdP0qwt1u0gTf0rpgVcsKspF56/8XwSNbRwJPoMBp+5eOqMZrtTxgy?=
 =?us-ascii?Q?BIGQQMJXTnErM+WMdtOrqWnbd7JP5knp123Gk1/ISRqJBhrmlAMqcI/hJnhF?=
 =?us-ascii?Q?1f+i6wmYBBM94MzjBnlJUVJRPKA++q/4ATKqS8woU0d0/ecgjKV/iFKZmPkN?=
 =?us-ascii?Q?q8+sW/8P5ywi+HLqHVowvNOHUdmZcZ9dIWms70VigqiDxfCaadD+QS5aEw3s?=
 =?us-ascii?Q?2JFBqCo0exjWrWnPHc91J8AaG6G3GjK+AM4aMeJGJuauKESlMkXCzkYq+kF5?=
 =?us-ascii?Q?iHpfMK+3TT0hD63QyBUcnwfxx6ycBKdQZjNvqHdTOiNgjXEWwLF2TVYJMqcd?=
 =?us-ascii?Q?yUt52ZovD0wr7cSThH1kijEbkYX0LC5CcC7ADxPeAtO/MLWbrWTWwDM8n8rB?=
 =?us-ascii?Q?URPhtxq2BTUR72vuFdQEGlkpKmRfBymrMC0Kc5nLaC2ZbowPojWxhIOiEszR?=
 =?us-ascii?Q?74JCjsp+qGZDUFNXol6PefcyAr1C94DfsDM0tRmgSJklos5xGKheUqyWrF2J?=
 =?us-ascii?Q?cTHeCHA7TQusHJJ9kNlcKnsMyygCmUVBFeDmbzDjd5hzGIPAW6gKsYGzkGkd?=
 =?us-ascii?Q?TnPqnlSu+nhwyx8cKNMNM3P397tyIDBSM9LJy9wmPsbZFa0BdxwY+MWhNTMS?=
 =?us-ascii?Q?Xa7AdPD48/DGIaqbI0zwQ9doNA+mh56jLcOjO3ndzzYYCTfEiwRVT2t/LbqA?=
 =?us-ascii?Q?eVujlTzNIzTA6y7wnO2D0L0c1SNznzYtoorV8A8WUYlRaY88XpPgdg4dvQw8?=
 =?us-ascii?Q?iSgs3fhagNtU/N0vHRBMlJj8nBsO7/8DgA92nU3J4YEj9o4lsdaqrHGOIBWp?=
 =?us-ascii?Q?+BXUN6pVpGFEfcXyl0I0mwFucWwu8GWQY7wXXa6Ue8fvQW/8pS2MgI6B7ctn?=
 =?us-ascii?Q?UxGSQpyjy1YpXQ88KtVbCKgeQgrHM2F2U/9kgQky/5c2+UDqIN/M3Ggwciuw?=
 =?us-ascii?Q?iT2NgwFqHnx/dGYpeCm7FlVzp2dSg0+oAwTkZ64nW4ByhoyTfF+5glm9kUW9?=
 =?us-ascii?Q?hDVCSutlz1RuLwaSxUFJV3Nd6Qh05YEhsoiy8/3tQhVguR+rQaEh2p+f8NGd?=
 =?us-ascii?Q?FeaCHyGe2ea3OQmoCWS/CuuUD3fn5bFDa5XmusSMamA8Ol3Tksh9uNwNEfKz?=
 =?us-ascii?Q?k8/bfilBlC57T9sO9hqmxM+4t2mofxFTAbWG6V3mzii+7OEddToOopkHaLZA?=
 =?us-ascii?Q?BDH2zCPd4mAWOCkp/qGMMCpz3O+c8tx5i9DQsx+E9XOcFzjCVWccPg4xm9ih?=
 =?us-ascii?Q?zCY8alAQPDLfJ9n+Oh9U1XOmCKwOAnq5bcLTcy6DrqzXmHH04LdBsdeJcqEd?=
 =?us-ascii?Q?qnJATAn846f4XEXsnlRWNLjmB75hazoM5xw2QT2VcswTahdlnrRj40SM1/rh?=
 =?us-ascii?Q?2AWnrY2VVKDbsNHiMc1FMjMW34BlS62oN8hqd0M0DAQGm5thPpD2Qln2fx5o?=
 =?us-ascii?Q?/Fut2ax0fY43sog=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)(376014)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Apr 2025 17:12:58.0235
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: bbc10902-0735-4d6b-f89f-08dd72d2c811
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:
	CY4PEPF0000EDD6.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB6356

Added a new file prepare_xen_region.inc to hold the common earlyboot MPU regions
configurations across arm64 and arm32.

prepare_xen_region, fail_insufficient_regions() will be used by both arm32 and
arm64. Thus, they have been moved to prepare_xen_region.inc.

enable_secondary_cpu_mm() is a stub which is moved to prepare_xen_region.inc as
SMP is currently not supported for MPU.

*_PRBAR are moved to arm64/sysregs.h.
*_PRLAR are moved to prepare_xen_region.inc as they are common between arm32
and arm64.

Introduce WRITE_SYSREG_ASM to write to the system registers from the common asm
file.

Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
---
Changes from

v1 -

1. enable_mpu() now sets HMAIR{0,1} registers. This is similar to what is
being done in enable_mmu(). All the mm related configurations happen in this
function.

2. Fixed some typos.

v2 -
1. Extracted the arm64 head.S functions/macros in a common file.

v3 -
1. Moved *_PRLAR are moved to prepare_xen_region.inc

2. enable_boot_cpu_mm() is preserved in mpu/head.S.

3. STORE_SYSREG is renamed as WRITE_SYSREG_ASM()

4. LOAD_SYSREG is removed.

5. No need to save/restore lr in enable_boot_cpu_mm(). IOW, keep it as it was
in the original code.

 xen/arch/arm/arm64/mpu/head.S                 | 88 +-----------------
 xen/arch/arm/include/asm/arm64/sysregs.h      | 11 +++
 .../include/asm/mpu/prepare_xen_region.inc    | 89 +++++++++++++++++++
 3 files changed, 101 insertions(+), 87 deletions(-)
 create mode 100644 xen/arch/arm/include/asm/mpu/prepare_xen_region.inc

diff --git a/xen/arch/arm/arm64/mpu/head.S b/xen/arch/arm/arm64/mpu/head.S
index ed01993d85..8cd8107a13 100644
--- a/xen/arch/arm/arm64/mpu/head.S
+++ b/xen/arch/arm/arm64/mpu/head.S
@@ -3,83 +3,7 @@
  * Start-of-day code for an Armv8-R MPU system.
  */
 
-#include <asm/early_printk.h>
-#include <asm/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 */
-#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.
- * 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
- * Output:
- *  \sel: Next available region selector index.
- * Clobbers \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)
+#include <asm/mpu/prepare_xen_region.inc>
 
 /*
  * Enable EL2 MPU and data cache
@@ -154,16 +78,6 @@ 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.
- */
-FUNC(enable_secondary_cpu_mm)
-    PRINT("- SMP not enabled yet -\r\n")
-1:  wfe
-    b 1b
-END(enable_secondary_cpu_mm)
-
 /*
  * Local variables:
  * mode: ASM
diff --git a/xen/arch/arm/include/asm/arm64/sysregs.h b/xen/arch/arm/include/asm/arm64/sysregs.h
index b593e4028b..3ee3715430 100644
--- a/xen/arch/arm/include/asm/arm64/sysregs.h
+++ b/xen/arch/arm/include/asm/arm64/sysregs.h
@@ -462,6 +462,15 @@
 #define ZCR_ELx_LEN_SIZE             9
 #define ZCR_ELx_LEN_MASK             0x1ff
 
+#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 WRITE_SYSREG_ASM(v, name) "msr " __stringify(name,) #v;
+
+#ifndef __ASSEMBLY__
+
 /* Access to system registers */
 
 #define WRITE_SYSREG64(v, name) do {                    \
@@ -481,6 +490,8 @@
 #define WRITE_SYSREG_LR(v, index)  WRITE_SYSREG(v, ICH_LR_REG(index))
 #define READ_SYSREG_LR(index)      READ_SYSREG(ICH_LR_REG(index))
 
+#endif /* __ASSEMBLY__ */
+
 #endif /* _ASM_ARM_ARM64_SYSREGS_H */
 
 /*
diff --git a/xen/arch/arm/include/asm/mpu/prepare_xen_region.inc b/xen/arch/arm/include/asm/mpu/prepare_xen_region.inc
new file mode 100644
index 0000000000..8af44d5669
--- /dev/null
+++ b/xen/arch/arm/include/asm/mpu/prepare_xen_region.inc
@@ -0,0 +1,89 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <asm/mpu.h>
+#include <asm/sysregs.h>
+
+/* Backgroud region enable/disable */
+#define SCTLR_ELx_BR    BIT(17, UL)
+
+#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.
+ * 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
+ * Output:
+ *  sel: Next available region selector index.
+ * Clobbers 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
+
+    WRITE_SYSREG_ASM(\sel, PRSELR_EL2)
+    isb
+    WRITE_SYSREG_ASM(\prbar, PRBAR_EL2)
+    WRITE_SYSREG_ASM(\prlar, PRLAR_EL2)
+    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)
+
+/*
+ * We don't yet support secondary CPUs bring-up. Implement a dummy helper to
+ * please the common code.
+ */
+FUNC(enable_secondary_cpu_mm)
+    PRINT("- SMP not enabled yet -\r\n")
+1:  wfe
+    b 1b
+END(enable_secondary_cpu_mm)
+
+/*
+ * Local variables:
+ * mode: ASM
+ * indent-tabs-mode: nil
+ * End:
+ */
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Thu Apr 03 17:58:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 17:58:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.937030.1338105 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0Op8-0001Tl-HX; Thu, 03 Apr 2025 17:57:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 937030.1338105; Thu, 03 Apr 2025 17:57:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0Op8-0001Te-F1; Thu, 03 Apr 2025 17:57:54 +0000
Received: by outflank-mailman (input) for mailman id 937030;
 Thu, 03 Apr 2025 17:57: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=JbNy=WV=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u0Op7-0001TY-Q0
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 17:57: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 274ae536-10b5-11f0-9ffb-bf95429c2676;
 Thu, 03 Apr 2025 19:57:48 +0200 (CEST)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-43cfe574976so8308105e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 03 Apr 2025 10:57:48 -0700 (PDT)
Received: from localhost.localdomain (host-92-26-98-202.as13285.net.
 [92.26.98.202]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43ec16a3aefsm28059365e9.21.2025.04.03.10.57.46
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 03 Apr 2025 10:57: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: 274ae536-10b5-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1743703067; x=1744307867; 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=QMLfFfEVVO6Pdzym9UcJtEbdmrCa6bNJDvfvnZ9B4rs=;
        b=jYDdcba7n6rKBREApevDsBg4hGk89e6bYmNHE35tiWq5T2QPkB4d0rhSD3uDBakRB5
         Izb6oyjDnsPVaNJoc+uEFvbV1Ky9V6c6lUffcBLaJS/521Dh/4nmjCSfAxoZmun7S4wo
         FiDGADVaMuccBBJN41Q1d1PTThUpIJ2L4alrY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743703067; x=1744307867;
        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=QMLfFfEVVO6Pdzym9UcJtEbdmrCa6bNJDvfvnZ9B4rs=;
        b=SdTIu/wNliK4BBp45Lk+/l1EwITn8bu6llY4Y7+EQ2FTRyhyZtorhn3g2YOo5oCBU1
         Ixxe95z6S7JU9MRaOMEhsA9IuACRfmIf3HClYMXMvjVUq7FmRCieS9YBvPaL3cXPD0XI
         Hnp6BMRQbUU4oUrOqmz3njFfU7osnlgSTnVVR6RxsQ2UWmSDQAwpTVUmCvDj20UTa7Jm
         qHKgp8JCYNNWdtZGeFuk0CQ6SW/o0XXlsXiFhFQ38WpQZVEpiPfKjme9wh8Y31rMAHje
         YGsDcGwQqtLRJ0VR3PB8hFF+6RedoHOnut8/OJMtWLe1dBU0naoW9iUOPvRsS+ns7Ykd
         corg==
X-Gm-Message-State: AOJu0YzZVAqMTFtX3MiBn7guaUcmrxRDI6gV6QxHL/fpShNJNDrH9jnM
	N0upu0sBdNHRAG664p6kjahbyz5OpWgErqE84P90FgoBU2cpgM9k1D2s6snlB7IoWXTMFlLDqw/
	s7gg=
X-Gm-Gg: ASbGncuk14rruRzT8EHaizpUeo+cQjJW27xzrwQFTnU6xpuRCbEnG7rgr7cCcYjsLZa
	dVitqWqCf0GJvEjZLtjgqf+0mbv6zgXNJTZBNjEqrCMgJJFbrZNYBKQLaauRqNEIoDOQS/J6Ro3
	Es8VbvJP3ljZT0uqzmjYYOYC7+0XrADfC4AaqJsWAdTgJPKoPXA3FNGF7kZZvC0hWya6EsdQlS5
	PafxIE5tTKuffa9iikZOnHb1LX0Xt71PgaMy49qzZPsTUZFB1UpzzK8GxGYw5h+Zda7R3oGRnOP
	ZS3D0jLUEfCMSKnHzC+TjaT/qf/B/DbdQC0IfWRJmeM21DWcNyXhA24i97oQk6/6YoF8VsVXCVU
	5UQ1QuTX2JwNkvsZPQw==
X-Google-Smtp-Source: AGHT+IGfwMp+56Qs1OEYK4UnorKSjvuglUgtfooOg4rsz6ozzUVwuSjlcQgNtunhGdOYmxeFSyNEdw==
X-Received: by 2002:a05:600c:348b:b0:43b:b756:f0a9 with SMTP id 5b1f17b1804b1-43ecf85dd6bmr663715e9.11.1743703067501;
        Thu, 03 Apr 2025 10:57:47 -0700 (PDT)
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/amd: Convert wrmsr_amd_safe() to use asm goto()
Date: Thu,  3 Apr 2025 18:57:44 +0100
Message-Id: <20250403175744.1538469-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

Bloat-o-meter reports:

  add/remove: 0/0 grow/shrink: 0/2 up/down: 0/-29 (-29)
  Function                                     old     new   delta
  _probe_mask_msr                               99      94      -5
  init_amd                                    2418    2394     -24

but that's because .fixup doesn't contain sized/typed symbols.  This also
drops two "mov -EFAULT, %reg; jmp ...;" sequences too.  The net saving is -50.

wrmsr_amd_safe()'s return value is only checked against 0 (if at all), and
because of this, the compiler can now avoid manifesting 0/-EFAULT entirely,
and the %[fault] label simply lands on the right basic block.

Convert to Xen style while rewriting.

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.  We use -EIO elsewhere for this purpose, and nothing in this
logic cares.

I was pleasently surprised by the manifestation of -EFAULT going away
entirely.  I expect converting wrmsr_safe() is going to be far greater win.

Converting rdmsr_amd_safe() (and friends) is going to be much harder, because
they have outputs, which GCCs before this year cannot do safely (there was a
serious bug, found and backported).

I think I'm going to port Linux's CC_HAS_ASM_GOTO_OUTPUT infrastructure, so we
can at least provide a better wrapper on new-enough toolchains.
---
 xen/arch/x86/cpu/amd.c | 22 ++++++++++------------
 1 file changed, 10 insertions(+), 12 deletions(-)

diff --git a/xen/arch/x86/cpu/amd.c b/xen/arch/x86/cpu/amd.c
index 597b0f073d55..ce4e1df71064 100644
--- a/xen/arch/x86/cpu/amd.c
+++ b/xen/arch/x86/cpu/amd.c
@@ -74,21 +74,19 @@ static inline int rdmsr_amd_safe(unsigned int msr, unsigned int *lo,
 }
 
 static inline int wrmsr_amd_safe(unsigned int msr, unsigned int lo,
-				 unsigned int hi)
+                                 unsigned int hi)
 {
-	int err;
+    asm goto ( "1: wrmsr\n\t"
+               _ASM_EXTABLE(1b, %l[fault])
+               :
+               : "c" (msr), "a" (lo), "d" (hi), "D" (0x9c5a203a)
+               :
+               : fault );
 
-	asm volatile("1: wrmsr\n2:\n"
-		     ".section .fixup,\"ax\"\n"
-		     "3: movl %6,%0\n"
-		     "   jmp 2b\n"
-		     ".previous\n"
-		     _ASM_EXTABLE(1b, 3b)
-		     : "=r" (err)
-		     : "c" (msr), "a" (lo), "d" (hi), "D" (0x9c5a203a),
-		       "0" (0), "i" (-EFAULT));
+    return 0;
 
-	return err;
+ fault:
+    return -EFAULT;
 }
 
 static void wrmsr_amd(unsigned int msr, uint64_t val)
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Apr 03 18:23:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 18:23:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.937045.1338116 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0PDZ-0000gN-F4; Thu, 03 Apr 2025 18:23:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 937045.1338116; Thu, 03 Apr 2025 18: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 1u0PDZ-0000fz-Bk; Thu, 03 Apr 2025 18:23:09 +0000
Received: by outflank-mailman (input) for mailman id 937045;
 Thu, 03 Apr 2025 18: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=Em9L=WV=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u0PDW-0000KX-Ux
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 18:23:07 +0000
Received: from mail-10630.protonmail.ch (mail-10630.protonmail.ch
 [79.135.106.30]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id af87bf9a-10b8-11f0-9eaa-5ba50f476ded;
 Thu, 03 Apr 2025 20:23:05 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: af87bf9a-10b8-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1743704583; x=1743963783;
	bh=4s46GxMWhgvHm0rgQ170PYzaHXK6NdimNxre7vDtwbA=;
	h=Date:To:From:Cc:Subject:Message-ID:Feedback-ID:From:To:Cc:Date:
	 Subject:Reply-To:Feedback-ID:Message-ID:BIMI-Selector:
	 List-Unsubscribe:List-Unsubscribe-Post;
	b=hcCkmAN0K7QWL9/QTiLfzme/Vp8SxO3wPugckz1mCAGoW3KcGvCvN2ztCX3i+nlhe
	 RZipxVpoicJ+BuwT+53cgzpH9U72hTfbJa5qEchfsTsEcZsxlINGG37QN3KNUHJ9jC
	 XKklu2Qytvsp2/dJT3FzURU+IUw4umejq90h1rdM6wl4oVoQzl6moaPbUk+d93ppcW
	 Pj+TRJIjrmGND5h6DitUU8WdHhkkArc/cbn0nOsmLegCLsVjf6EbC97x3Yh+olkH/f
	 8R9g7i9eXSy8xPP36xUyq+0IekYgJwsYcMZ/BNkNXTYc1ECvm0ioVBu/cK/U8dDBcy
	 eo27uCGGaApRA==
Date: Thu, 03 Apr 2025 18:22:58 +0000
To: xen-devel@lists.xenproject.org
From: dmkhn@proton.me
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org, dmukhin@ford.com
Subject: [PATCH v2 0/6] x86/asm: cleanups after toolchain baseline upgrade
Message-ID: <20250403182250.3329498-1-dmukhin@ford.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: d9d3b846cb5f0f8ce1df0778aed580181b1fd1d9
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Patches 1-5 remove various workarounds under HAVE_AS_XXX for older compiler=
s,
as the minimally required GCC 5.1 / Binutils 2.25, and Clang 11 natively
support instructions worked around in the hypervisor code.

Patch 6 cleans up error handling in VMX asm wrappers using `asm goto`.

[1] Link to v1: https://lore.kernel.org/xen-devel/20250401222105.79309-1-dm=
ukhin@ford.com/
[2] CI: https://gitlab.com/xen-project/people/dmukhin/xen/-/pipelines/17510=
06178=20

Denis Mukhin (6):
  x86/vmx: remove HAVE_AS_{EPT,VMX}, GAS_VMX_OP() and *_OPCODE
  x86/msr: remove HAVE_AS_FSGSBASE
  x86/asm: remove HAVE_AS_INVPCID
  x86/emulate: remove HAVE_AS_SSE4_2
  x86/emulate: remove HAVE_AS_RDRAND and HAVE_AS_RDSEED
  x86/vmx: rework VMX wrappers to use `asm goto()`

 xen/arch/x86/arch.mk                   |   9 +-
 xen/arch/x86/hvm/vmx/vmcs.c            |   2 +-
 xen/arch/x86/include/asm/hvm/vmx/vmx.h | 236 ++++++++-----------------
 xen/arch/x86/include/asm/invpcid.h     |  12 +-
 xen/arch/x86/include/asm/msr.h         |  22 ---
 xen/arch/x86/x86_emulate/0fc7.c        |  15 +-
 xen/arch/x86/x86_emulate/x86_emulate.c |   7 +-
 7 files changed, 87 insertions(+), 216 deletions(-)

--=20
2.34.1




From xen-devel-bounces@lists.xenproject.org Thu Apr 03 18:23:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 18:23:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.937046.1338125 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0PDb-00014N-LK; Thu, 03 Apr 2025 18:23:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 937046.1338125; Thu, 03 Apr 2025 18:23: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 1u0PDb-00014G-Hq; Thu, 03 Apr 2025 18:23:11 +0000
Received: by outflank-mailman (input) for mailman id 937046;
 Thu, 03 Apr 2025 18:23: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=Em9L=WV=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u0PDZ-0000KX-O6
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 18:23:09 +0000
Received: from mail-24417.protonmail.ch (mail-24417.protonmail.ch
 [109.224.244.17]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b1bb9101-10b8-11f0-9eaa-5ba50f476ded;
 Thu, 03 Apr 2025 20:23:09 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b1bb9101-10b8-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1743704587; x=1743963787;
	bh=qhdb/UMVIzJBSclTVMNrOhHVQ8qtT+hHFmjvP6GsCPc=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=XprKrZdJwozJ7RtPPi0NFr+5IjEy7TCwNSUl7Jq43C65XZess6+LStMze0I2lX3Vf
	 fRr6Avgu/WF+GxGQFxy7tVdjS5xaG+hd8cG4uE735FGHLIAHoBrBFW9EEBlC7Ht0DX
	 u3uHfKp/RHeyYhfVznI/vFqw6qBZb3bOM/9Woqr57vIjako+ye1lvYESGI/2/oWFh9
	 yeDO4ZPFH003yHDd4rMFaPY5LzACzB04Lsq3GQA7yuUgakuL7xjPrjBE6UT368VPiS
	 jG3Z1tacs8ti8uzLGFv7kuSXd/cyqGADneoG/9zii+NM0js3ayTIIi3JGEJX3RZgiE
	 lfouKZYwkSoYQ==
Date: Thu, 03 Apr 2025 18:23:04 +0000
To: xen-devel@lists.xenproject.org
From: dmkhn@proton.me
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org, dmukhin@ford.com
Subject: [PATCH v2 1/6] x86/vmx: remove HAVE_AS_{EPT,VMX}, GAS_VMX_OP() and *_OPCODE
Message-ID: <20250403182250.3329498-2-dmukhin@ford.com>
In-Reply-To: <20250403182250.3329498-1-dmukhin@ford.com>
References: <20250403182250.3329498-1-dmukhin@ford.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 88bc866978d8a58d1e80d42e66ec5b77779ee0e0
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

From: Denis Mukhin <dmukhin@ford.com>

The new toolchain baseline knows the VMX instructions,
no need to carry the workaround in the code.

Move asm for vmxoff directly on the only callsite in vmcs.c

Updated formatting for all __xxx() calls to be consistent.

Resolves: https://gitlab.com/xen-project/xen/-/work_items/202
Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
 xen/arch/x86/arch.mk                   |   4 +-
 xen/arch/x86/hvm/vmx/vmcs.c            |   2 +-
 xen/arch/x86/include/asm/hvm/vmx/vmx.h | 119 ++++---------------------
 3 files changed, 17 insertions(+), 108 deletions(-)

diff --git a/xen/arch/x86/arch.mk b/xen/arch/x86/arch.mk
index 258e459bec..e9fa1c92d7 100644
--- a/xen/arch/x86/arch.mk
+++ b/xen/arch/x86/arch.mk
@@ -10,9 +10,7 @@ CFLAGS +=3D -msoft-float
=20
 $(call cc-options-add,CFLAGS,CC,$(EMBEDDED_EXTRA_CFLAGS))
 $(call cc-option-add,CFLAGS,CC,-Wnested-externs)
-$(call as-option-add,CFLAGS,CC,"vmcall",-DHAVE_AS_VMX)
 $(call as-option-add,CFLAGS,CC,"crc32 %eax$(comma)%eax",-DHAVE_AS_SSE4_2)
-$(call as-option-add,CFLAGS,CC,"invept (%rax)$(comma)%rax",-DHAVE_AS_EPT)
 $(call as-option-add,CFLAGS,CC,"rdrand %eax",-DHAVE_AS_RDRAND)
 $(call as-option-add,CFLAGS,CC,"rdfsbase %rax",-DHAVE_AS_FSGSBASE)
 $(call as-option-add,CFLAGS,CC,"xsaveopt (%rax)",-DHAVE_AS_XSAVEOPT)
@@ -23,7 +21,7 @@ $(call as-option-add,CFLAGS,CC,"invpcid (%rax)$(comma)%ra=
x",-DHAVE_AS_INVPCID)
 $(call as-option-add,CFLAGS,CC,"movdiri %rax$(comma)(%rax)",-DHAVE_AS_MOVD=
IR)
 $(call as-option-add,CFLAGS,CC,"enqcmd (%rax)$(comma)%rax",-DHAVE_AS_ENQCM=
D)
=20
-# Check to see whether the assmbler supports the .nop directive.
+# Check to see whether the assembler supports the .nop directive.
 $(call as-option-add,CFLAGS,CC,\
     ".L1: .L2: .nops (.L2 - .L1)$(comma)9",-DHAVE_AS_NOPS_DIRECTIVE)
=20
diff --git a/xen/arch/x86/hvm/vmx/vmcs.c b/xen/arch/x86/hvm/vmx/vmcs.c
index 1d427100ce..aef746a293 100644
--- a/xen/arch/x86/hvm/vmx/vmcs.c
+++ b/xen/arch/x86/hvm/vmx/vmcs.c
@@ -811,7 +811,7 @@ void cf_check vmx_cpu_down(void)
=20
     BUG_ON(!(read_cr4() & X86_CR4_VMXE));
     this_cpu(vmxon) =3D 0;
-    __vmxoff();
+    asm volatile ("vmxoff" : : : "memory");
=20
     local_irq_restore(flags);
 }
diff --git a/xen/arch/x86/include/asm/hvm/vmx/vmx.h b/xen/arch/x86/include/=
asm/hvm/vmx/vmx.h
index 7c6ba73407..ed6a6986b9 100644
--- a/xen/arch/x86/include/asm/hvm/vmx/vmx.h
+++ b/xen/arch/x86/include/asm/hvm/vmx/vmx.h
@@ -257,24 +257,6 @@ typedef union cr_access_qual {
 #define X86_SEG_AR_GRANULARITY  (1u << 15) /* 15, granularity */
 #define X86_SEG_AR_SEG_UNUSABLE (1u << 16) /* 16, segment unusable */
=20
-#define VMCALL_OPCODE   ".byte 0x0f,0x01,0xc1\n"
-#define VMCLEAR_OPCODE  ".byte 0x66,0x0f,0xc7\n"        /* reg/opcode: /6 =
*/
-#define VMLAUNCH_OPCODE ".byte 0x0f,0x01,0xc2\n"
-#define VMPTRLD_OPCODE  ".byte 0x0f,0xc7\n"             /* reg/opcode: /6 =
*/
-#define VMPTRST_OPCODE  ".byte 0x0f,0xc7\n"             /* reg/opcode: /7 =
*/
-#define VMREAD_OPCODE   ".byte 0x0f,0x78\n"
-#define VMRESUME_OPCODE ".byte 0x0f,0x01,0xc3\n"
-#define VMWRITE_OPCODE  ".byte 0x0f,0x79\n"
-#define INVEPT_OPCODE   ".byte 0x66,0x0f,0x38,0x80\n"   /* m128,r64/32 */
-#define INVVPID_OPCODE  ".byte 0x66,0x0f,0x38,0x81\n"   /* m128,r64/32 */
-#define VMXOFF_OPCODE   ".byte 0x0f,0x01,0xc4\n"
-#define VMXON_OPCODE    ".byte 0xf3,0x0f,0xc7\n"
-
-#define MODRM_EAX_08    ".byte 0x08\n" /* ECX, [EAX] */
-#define MODRM_EAX_06    ".byte 0x30\n" /* [EAX], with reg/opcode: /6 */
-#define MODRM_EAX_07    ".byte 0x38\n" /* [EAX], with reg/opcode: /7 */
-#define MODRM_EAX_ECX   ".byte 0xc1\n" /* EAX, ECX */
-
 extern uint8_t posted_intr_vector;
=20
 #define cpu_has_vmx_ept_exec_only_supported        \
@@ -310,97 +292,54 @@ extern uint8_t posted_intr_vector;
 #define INVVPID_ALL_CONTEXT                     2
 #define INVVPID_SINGLE_CONTEXT_RETAINING_GLOBAL 3
=20
-#ifdef HAVE_AS_VMX
-# define GAS_VMX_OP(yes, no) yes
-#else
-# define GAS_VMX_OP(yes, no) no
-#endif
-
 static always_inline void __vmptrld(u64 addr)
 {
-    asm volatile (
-#ifdef HAVE_AS_VMX
-                   "vmptrld %0\n"
-#else
-                   VMPTRLD_OPCODE MODRM_EAX_06
-#endif
+    asm volatile ( "vmptrld %0\n"
                    /* CF=3D=3D1 or ZF=3D=3D1 --> BUG() */
                    UNLIKELY_START(be, vmptrld)
                    _ASM_BUGFRAME_TEXT(0)
                    UNLIKELY_END_SECTION
                    :
-#ifdef HAVE_AS_VMX
                    : "m" (addr),
-#else
-                   : "a" (&addr),
-#endif
                      _ASM_BUGFRAME_INFO(BUGFRAME_bug, __LINE__, __FILE__, =
0)
-                   : "memory");
+                   : "memory" );
 }
=20
 static always_inline void __vmpclear(u64 addr)
 {
-    asm volatile (
-#ifdef HAVE_AS_VMX
-                   "vmclear %0\n"
-#else
-                   VMCLEAR_OPCODE MODRM_EAX_06
-#endif
+    asm volatile ( "vmclear %0\n"
                    /* CF=3D=3D1 or ZF=3D=3D1 --> BUG() */
                    UNLIKELY_START(be, vmclear)
                    _ASM_BUGFRAME_TEXT(0)
                    UNLIKELY_END_SECTION
                    :
-#ifdef HAVE_AS_VMX
                    : "m" (addr),
-#else
-                   : "a" (&addr),
-#endif
                      _ASM_BUGFRAME_INFO(BUGFRAME_bug, __LINE__, __FILE__, =
0)
-                   : "memory");
+                   : "memory" );
 }
=20
 static always_inline void __vmread(unsigned long field, unsigned long *val=
ue)
 {
-    asm volatile (
-#ifdef HAVE_AS_VMX
-                   "vmread %1, %0\n\t"
-#else
-                   VMREAD_OPCODE MODRM_EAX_ECX
-#endif
+    asm volatile ( "vmread %1, %0\n\t"
                    /* CF=3D=3D1 or ZF=3D=3D1 --> BUG() */
                    UNLIKELY_START(be, vmread)
                    _ASM_BUGFRAME_TEXT(0)
                    UNLIKELY_END_SECTION
-#ifdef HAVE_AS_VMX
                    : "=3Drm" (*value)
                    : "r" (field),
-#else
-                   : "=3Dc" (*value)
-                   : "a" (field),
-#endif
                      _ASM_BUGFRAME_INFO(BUGFRAME_bug, __LINE__, __FILE__, =
0)
         );
 }
=20
 static always_inline void __vmwrite(unsigned long field, unsigned long val=
ue)
 {
-    asm volatile (
-#ifdef HAVE_AS_VMX
-                   "vmwrite %1, %0\n"
-#else
-                   VMWRITE_OPCODE MODRM_EAX_ECX
-#endif
+    asm volatile ( "vmwrite %1, %0\n"
                    /* CF=3D=3D1 or ZF=3D=3D1 --> BUG() */
                    UNLIKELY_START(be, vmwrite)
                    _ASM_BUGFRAME_TEXT(0)
                    UNLIKELY_END_SECTION
                    :
-#ifdef HAVE_AS_VMX
                    : "r" (field) , "rm" (value),
-#else
-                   : "a" (field) , "c" (value),
-#endif
                      _ASM_BUGFRAME_INFO(BUGFRAME_bug, __LINE__, __FILE__, =
0)
         );
 }
@@ -411,14 +350,13 @@ static inline enum vmx_insn_errno vmread_safe(unsigne=
d long field,
     unsigned long ret =3D VMX_INSN_SUCCEED;
     bool fail_invalid, fail_valid;
=20
-    asm volatile ( GAS_VMX_OP("vmread %[field], %[value]\n\t",
-                              VMREAD_OPCODE MODRM_EAX_ECX)
+    asm volatile ( "vmread %[field], %[value]\n\t"
                    ASM_FLAG_OUT(, "setc %[invalid]\n\t")
                    ASM_FLAG_OUT(, "setz %[valid]\n\t")
                    : ASM_FLAG_OUT("=3D@ccc", [invalid] "=3Drm") (fail_inva=
lid),
                      ASM_FLAG_OUT("=3D@ccz", [valid] "=3Drm") (fail_valid)=
,
-                     [value] GAS_VMX_OP("=3Drm", "=3Dc") (*value)
-                   : [field] GAS_VMX_OP("r", "a") (field));
+                     [value] "=3Drm" (*value)
+                   : [field] "r" (field) );
=20
     if ( unlikely(fail_invalid) )
         ret =3D VMX_INSN_FAIL_INVALID;
@@ -434,14 +372,13 @@ static inline enum vmx_insn_errno vmwrite_safe(unsign=
ed long field,
     unsigned long ret =3D VMX_INSN_SUCCEED;
     bool fail_invalid, fail_valid;
=20
-    asm volatile ( GAS_VMX_OP("vmwrite %[value], %[field]\n\t",
-                              VMWRITE_OPCODE MODRM_EAX_ECX)
+    asm volatile ( "vmwrite %[value], %[field]\n\t"
                    ASM_FLAG_OUT(, "setc %[invalid]\n\t")
                    ASM_FLAG_OUT(, "setz %[valid]\n\t")
                    : ASM_FLAG_OUT("=3D@ccc", [invalid] "=3Drm") (fail_inva=
lid),
                      ASM_FLAG_OUT("=3D@ccz", [valid] "=3Drm") (fail_valid)
-                   : [field] GAS_VMX_OP("r", "a") (field),
-                     [value] GAS_VMX_OP("rm", "c") (value));
+                   : [field] "r" (field),
+                     [value] "rm" (value) );
=20
     if ( unlikely(fail_invalid) )
         ret =3D VMX_INSN_FAIL_INVALID;
@@ -465,22 +402,13 @@ static always_inline void __invept(unsigned long type=
, uint64_t eptp)
          !cpu_has_vmx_ept_invept_single_context )
         type =3D INVEPT_ALL_CONTEXT;
=20
-    asm volatile (
-#ifdef HAVE_AS_EPT
-                   "invept %0, %1\n"
-#else
-                   INVEPT_OPCODE MODRM_EAX_08
-#endif
+    asm volatile ( "invept %0, %1\n"
                    /* CF=3D=3D1 or ZF=3D=3D1 --> BUG() */
                    UNLIKELY_START(be, invept)
                    _ASM_BUGFRAME_TEXT(0)
                    UNLIKELY_END_SECTION
                    :
-#ifdef HAVE_AS_EPT
                    : "m" (operand), "r" (type),
-#else
-                   : "a" (&operand), "c" (type),
-#endif
                      _ASM_BUGFRAME_INFO(BUGFRAME_bug, __LINE__, __FILE__, =
0)
                    : "memory" );
 }
@@ -494,24 +422,14 @@ static always_inline void __invvpid(unsigned long typ=
e, u16 vpid, u64 gva)
     }  operand =3D {vpid, 0, gva};
=20
     /* Fix up #UD exceptions which occur when TLBs are flushed before VMXO=
N. */
-    asm volatile ( "1: "
-#ifdef HAVE_AS_EPT
-                   "invvpid %0, %1\n"
-#else
-                   INVVPID_OPCODE MODRM_EAX_08
-#endif
+    asm volatile ( "1: invvpid %0, %1\n"
                    /* CF=3D=3D1 or ZF=3D=3D1 --> BUG() */
                    UNLIKELY_START(be, invvpid)
                    _ASM_BUGFRAME_TEXT(0)
                    UNLIKELY_END_SECTION "\n"
-                   "2:"
-                   _ASM_EXTABLE(1b, 2b)
+                   "2:" _ASM_EXTABLE(1b, 2b)
                    :
-#ifdef HAVE_AS_EPT
                    : "m" (operand), "r" (type),
-#else
-                   : "a" (&operand), "c" (type),
-#endif
                      _ASM_BUGFRAME_INFO(BUGFRAME_bug, __LINE__, __FILE__, =
0)
                    : "memory" );
 }
@@ -552,13 +470,6 @@ static inline void vpid_sync_all(void)
     __invvpid(INVVPID_ALL_CONTEXT, 0, 0);
 }
=20
-static inline void __vmxoff(void)
-{
-    asm volatile (
-        VMXOFF_OPCODE
-        : : : "memory" );
-}
-
 int cf_check vmx_guest_x86_mode(struct vcpu *v);
 unsigned int vmx_get_cpl(void);
=20
--=20
2.34.1




From xen-devel-bounces@lists.xenproject.org Thu Apr 03 18:23:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 18:23:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.937052.1338135 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0PDm-0001QL-08; Thu, 03 Apr 2025 18:23:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 937052.1338135; Thu, 03 Apr 2025 18: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 1u0PDl-0001QB-TI; Thu, 03 Apr 2025 18:23:21 +0000
Received: by outflank-mailman (input) for mailman id 937052;
 Thu, 03 Apr 2025 18:23: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=Em9L=WV=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u0PDk-0001N1-6t
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 18:23:20 +0000
Received: from mail-24416.protonmail.ch (mail-24416.protonmail.ch
 [109.224.244.16]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b4e5688a-10b8-11f0-9ffb-bf95429c2676;
 Thu, 03 Apr 2025 20:23:14 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b4e5688a-10b8-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1743704593; x=1743963793;
	bh=DAdmSxgvTyBN49WAdVm4Ym611V3JMucvy190nmerm+Q=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=Ht7/I1mJ/Y7K0M92SngQbabwHstOiBsqvjCe57WBxgMmdCKeNE6BfGqVyHeOVfAcK
	 5XruK6qxcqnEwUtVT1xp759lPbE/m7y3TYxp6U/m9annLLuNvulyUTLOdLOU1Z0NUW
	 f5dYdnoCkFX5Ch8HDdvU12NEyTD7WzyBRv4OeeR2Fz8VnO4xzwRNj6jOLfv4U8V7Kk
	 iY4zALiVDHmkPhiwAcXmtb/ThtSFmu61wUna7WW/sDZT7JlPdlHD1yD0GGChDuzNE3
	 Qixfkv+/26+TFS4lp6j8j2yKxlOa13xtNSUM3CJAN+3nGWfyTWL9B11v2z9ek7fsag
	 sS4OGBBnFuxEA==
Date: Thu, 03 Apr 2025 18:23:09 +0000
To: xen-devel@lists.xenproject.org
From: dmkhn@proton.me
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org, dmukhin@ford.com
Subject: [PATCH v2 2/6] x86/msr: remove HAVE_AS_FSGSBASE
Message-ID: <20250403182250.3329498-3-dmukhin@ford.com>
In-Reply-To: <20250403182250.3329498-1-dmukhin@ford.com>
References: <20250403182250.3329498-1-dmukhin@ford.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: f6e30f0fc17d05541119b496f78e8cadb4330eed
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

From: Denis Mukhin <dmukhin@ford.com>

The new toolchain baseline knows the {rd,wr}{f,g}sbase instructions,
no need to carry the workaround in the code.

Resolves: https://gitlab.com/xen-project/xen/-/work_items/207
Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
 xen/arch/x86/arch.mk           |  1 -
 xen/arch/x86/include/asm/msr.h | 22 ----------------------
 2 files changed, 23 deletions(-)

diff --git a/xen/arch/x86/arch.mk b/xen/arch/x86/arch.mk
index e9fa1c92d7..6d2876b1a8 100644
--- a/xen/arch/x86/arch.mk
+++ b/xen/arch/x86/arch.mk
@@ -12,7 +12,6 @@ $(call cc-options-add,CFLAGS,CC,$(EMBEDDED_EXTRA_CFLAGS))
 $(call cc-option-add,CFLAGS,CC,-Wnested-externs)
 $(call as-option-add,CFLAGS,CC,"crc32 %eax$(comma)%eax",-DHAVE_AS_SSE4_2)
 $(call as-option-add,CFLAGS,CC,"rdrand %eax",-DHAVE_AS_RDRAND)
-$(call as-option-add,CFLAGS,CC,"rdfsbase %rax",-DHAVE_AS_FSGSBASE)
 $(call as-option-add,CFLAGS,CC,"xsaveopt (%rax)",-DHAVE_AS_XSAVEOPT)
 $(call as-option-add,CFLAGS,CC,"rdseed %eax",-DHAVE_AS_RDSEED)
 $(call as-option-add,CFLAGS,CC,"clwb (%rax)",-DHAVE_AS_CLWB)
diff --git a/xen/arch/x86/include/asm/msr.h b/xen/arch/x86/include/asm/msr.=
h
index 549d40b404..0d3b1d6374 100644
--- a/xen/arch/x86/include/asm/msr.h
+++ b/xen/arch/x86/include/asm/msr.h
@@ -152,11 +152,7 @@ static inline unsigned long __rdfsbase(void)
 {
     unsigned long base;
=20
-#ifdef HAVE_AS_FSGSBASE
     asm volatile ( "rdfsbase %0" : "=3Dr" (base) );
-#else
-    asm volatile ( ".byte 0xf3, 0x48, 0x0f, 0xae, 0xc0" : "=3Da" (base) );
-#endif
=20
     return base;
 }
@@ -165,31 +161,19 @@ static inline unsigned long __rdgsbase(void)
 {
     unsigned long base;
=20
-#ifdef HAVE_AS_FSGSBASE
     asm volatile ( "rdgsbase %0" : "=3Dr" (base) );
-#else
-    asm volatile ( ".byte 0xf3, 0x48, 0x0f, 0xae, 0xc8" : "=3Da" (base) );
-#endif
=20
     return base;
 }
=20
 static inline void __wrfsbase(unsigned long base)
 {
-#ifdef HAVE_AS_FSGSBASE
     asm volatile ( "wrfsbase %0" :: "r" (base) );
-#else
-    asm volatile ( ".byte 0xf3, 0x48, 0x0f, 0xae, 0xd0" :: "a" (base) );
-#endif
 }
=20
 static inline void __wrgsbase(unsigned long base)
 {
-#ifdef HAVE_AS_FSGSBASE
     asm volatile ( "wrgsbase %0" :: "r" (base) );
-#else
-    asm volatile ( ".byte 0xf3, 0x48, 0x0f, 0xae, 0xd8" :: "a" (base) );
-#endif
 }
=20
 static inline unsigned long read_fs_base(void)
@@ -253,15 +237,9 @@ static inline void write_gs_shadow(unsigned long base)
     if ( read_cr4() & X86_CR4_FSGSBASE )
     {
         asm volatile ( "swapgs\n\t"
-#ifdef HAVE_AS_FSGSBASE
                        "wrgsbase %0\n\t"
                        "swapgs"
                        :: "r" (base) );
-#else
-                       ".byte 0xf3, 0x48, 0x0f, 0xae, 0xd8\n\t"
-                       "swapgs"
-                       :: "a" (base) );
-#endif
     }
     else
         wrmsrl(MSR_SHADOW_GS_BASE, base);
--=20
2.34.1




From xen-devel-bounces@lists.xenproject.org Thu Apr 03 18:23:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 18:23:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.937055.1338147 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0PDo-0001gw-A6; Thu, 03 Apr 2025 18:23:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 937055.1338147; Thu, 03 Apr 2025 18:23: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 1u0PDo-0001gn-4W; Thu, 03 Apr 2025 18:23:24 +0000
Received: by outflank-mailman (input) for mailman id 937055;
 Thu, 03 Apr 2025 18:23: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=Em9L=WV=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u0PDn-0001N1-FJ
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 18:23:23 +0000
Received: from mail-4316.protonmail.ch (mail-4316.protonmail.ch [185.70.43.16])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b7974f18-10b8-11f0-9ffb-bf95429c2676;
 Thu, 03 Apr 2025 20:23:19 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b7974f18-10b8-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1743704598; x=1743963798;
	bh=FAnFU2EE55zpL6ceZQ70EasVphCLs90kdKWYj30AMlo=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=Fu9WAITLaHRFhN2dgRC4aZ+EaSzjlopic2qS6JU9L7+AuoWmTa/OBxhbrYfv0/R2w
	 KzrQ6LO2pdS9QWg+LJALdAjcXwfyBJGgiAG4j8UkZ+ntlEjyN4k/ympVP1NfjRgZTm
	 YkD7JWuTZoJPLs77h991CWBYVr4jnn1p54n5THLIQ250RzA3ZPzfDdCH7GFTOKtUXs
	 ala24sSxS9ctUz34WqesHMED9pAGYB8Ind6m1Y473krIrjS7sUMoaFcWF7KUfOildr
	 UTnJDwOGk81/qG4Od9XdBoyhSIQCZbdv5WWeyDSfZBzVopUjbmsGH/LEF/QgXaNQHG
	 yL9hmMUerT0ow==
Date: Thu, 03 Apr 2025 18:23:13 +0000
To: xen-devel@lists.xenproject.org
From: dmkhn@proton.me
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org, dmukhin@ford.com
Subject: [PATCH v2 3/6] x86/asm: remove HAVE_AS_INVPCID
Message-ID: <20250403182250.3329498-4-dmukhin@ford.com>
In-Reply-To: <20250403182250.3329498-1-dmukhin@ford.com>
References: <20250403182250.3329498-1-dmukhin@ford.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: f6f51d824233c96d4937b9d9c830236c66c51944
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

From: Denis Mukhin <dmukhin@ford.com>

The new toolchain baseline knows the invpcid instruction,
no need to carry the workaround in the code.

Resolves: https://gitlab.com/xen-project/xen/-/work_items/209
Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
 xen/arch/x86/arch.mk               |  1 -
 xen/arch/x86/include/asm/invpcid.h | 12 +-----------
 2 files changed, 1 insertion(+), 12 deletions(-)

diff --git a/xen/arch/x86/arch.mk b/xen/arch/x86/arch.mk
index 6d2876b1a8..dcc8c3c330 100644
--- a/xen/arch/x86/arch.mk
+++ b/xen/arch/x86/arch.mk
@@ -16,7 +16,6 @@ $(call as-option-add,CFLAGS,CC,"xsaveopt (%rax)",-DHAVE_A=
S_XSAVEOPT)
 $(call as-option-add,CFLAGS,CC,"rdseed %eax",-DHAVE_AS_RDSEED)
 $(call as-option-add,CFLAGS,CC,"clwb (%rax)",-DHAVE_AS_CLWB)
 $(call as-option-add,CFLAGS,CC,".equ \"x\"$(comma)1",-DHAVE_AS_QUOTED_SYM)
-$(call as-option-add,CFLAGS,CC,"invpcid (%rax)$(comma)%rax",-DHAVE_AS_INVP=
CID)
 $(call as-option-add,CFLAGS,CC,"movdiri %rax$(comma)(%rax)",-DHAVE_AS_MOVD=
IR)
 $(call as-option-add,CFLAGS,CC,"enqcmd (%rax)$(comma)%rax",-DHAVE_AS_ENQCM=
D)
=20
diff --git a/xen/arch/x86/include/asm/invpcid.h b/xen/arch/x86/include/asm/=
invpcid.h
index bf5c30313a..e116a34a6c 100644
--- a/xen/arch/x86/include/asm/invpcid.h
+++ b/xen/arch/x86/include/asm/invpcid.h
@@ -5,9 +5,6 @@
=20
 extern bool use_invpcid;
=20
-#define INVPCID_OPCODE ".byte 0x66, 0x0f, 0x38, 0x82\n"
-#define MODRM_ECX_01   ".byte 0x01\n"
-
 static inline void invpcid(unsigned int pcid, unsigned long addr,
                            unsigned int type)
 {
@@ -17,16 +14,9 @@ static inline void invpcid(unsigned int pcid, unsigned l=
ong addr,
         uint64_t addr;
     } desc =3D { .pcid =3D pcid, .addr =3D addr };
=20
-    asm volatile (
-#ifdef HAVE_AS_INVPCID
-                  "invpcid %[desc], %q[type]"
+    asm volatile ( "invpcid %[desc], %q[type]"
                   : /* No output */
                   : [desc] "m" (desc), [type] "r" (type)
-#else
-                  INVPCID_OPCODE MODRM_ECX_01
-                  : /* No output */
-                  : "a" (type), "c" (&desc)
-#endif
                   : "memory" );
 }
=20
--=20
2.34.1




From xen-devel-bounces@lists.xenproject.org Thu Apr 03 18:23:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 18:23:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.937061.1338156 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0PDt-00027S-G6; Thu, 03 Apr 2025 18:23:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 937061.1338156; Thu, 03 Apr 2025 18:23: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 1u0PDt-00027L-D3; Thu, 03 Apr 2025 18:23:29 +0000
Received: by outflank-mailman (input) for mailman id 937061;
 Thu, 03 Apr 2025 18:23: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=Em9L=WV=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u0PDs-0001N1-17
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 18:23:28 +0000
Received: from mail-10629.protonmail.ch (mail-10629.protonmail.ch
 [79.135.106.29]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bc1f0e2c-10b8-11f0-9ffb-bf95429c2676;
 Thu, 03 Apr 2025 20:23:26 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bc1f0e2c-10b8-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1743704605; x=1743963805;
	bh=0+5RP23zmphaABoW946e9TRg+3ezkXum7FCtTXRbuRo=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=QEy3QHwFJ8D2CudLyCwp8udZXZNunfSRFnD3L5hlC6A0CHwawHqnMmFsIpoH3F1OQ
	 XsLCUhXr7HE+xarwPhDDCwKHqzVX255L/UpyOGXh6sNrqtjWBJV7OAiIMcOeYgYRy/
	 YKJMfUebL07ejDcE3lf22xRET20jM+Kas1UNbAXfuNiCRKJnmZJcbnIwb3BLfnaSSx
	 XZPHMo7LXhquFlVRtmxNtW3QocbTvj4iHHlqVoKNmvQJB0S69mT2b3M1JiZy0ai/Ij
	 DjAAYwIv5ThL/+6bxXHBsR33w/bXI5+S4Rh5o4xvh5ZZhiQPl/ZusGDAGUDIvzztHa
	 L0gJW2G/M51rg==
Date: Thu, 03 Apr 2025 18:23:19 +0000
To: xen-devel@lists.xenproject.org
From: dmkhn@proton.me
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org, dmukhin@ford.com
Subject: [PATCH v2 4/6] x86/emulate: remove HAVE_AS_SSE4_2
Message-ID: <20250403182250.3329498-5-dmukhin@ford.com>
In-Reply-To: <20250403182250.3329498-1-dmukhin@ford.com>
References: <20250403182250.3329498-1-dmukhin@ford.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 5284202ec3cab84c8f2b5e48a374d5a8cfe45ec7
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

From: Denis Mukhin <dmukhin@ford.com>

The new toolchain baseline knows the crc32 instructions,
no need to carry the workaround in the code.

Resolves: https://gitlab.com/xen-project/xen/-/work_items/206
Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
 xen/arch/x86/arch.mk                   | 1 -
 xen/arch/x86/x86_emulate/x86_emulate.c | 7 +++----
 2 files changed, 3 insertions(+), 5 deletions(-)

diff --git a/xen/arch/x86/arch.mk b/xen/arch/x86/arch.mk
index dcc8c3c330..3bbaee2a44 100644
--- a/xen/arch/x86/arch.mk
+++ b/xen/arch/x86/arch.mk
@@ -10,7 +10,6 @@ CFLAGS +=3D -msoft-float
=20
 $(call cc-options-add,CFLAGS,CC,$(EMBEDDED_EXTRA_CFLAGS))
 $(call cc-option-add,CFLAGS,CC,-Wnested-externs)
-$(call as-option-add,CFLAGS,CC,"crc32 %eax$(comma)%eax",-DHAVE_AS_SSE4_2)
 $(call as-option-add,CFLAGS,CC,"rdrand %eax",-DHAVE_AS_RDRAND)
 $(call as-option-add,CFLAGS,CC,"xsaveopt (%rax)",-DHAVE_AS_XSAVEOPT)
 $(call as-option-add,CFLAGS,CC,"rdseed %eax",-DHAVE_AS_RDSEED)
diff --git a/xen/arch/x86/x86_emulate/x86_emulate.c b/xen/arch/x86/x86_emul=
ate/x86_emulate.c
index 535d803588..55d36b9a26 100644
--- a/xen/arch/x86/x86_emulate/x86_emulate.c
+++ b/xen/arch/x86/x86_emulate/x86_emulate.c
@@ -6882,7 +6882,7 @@ x86_emulate(
             goto unhandleable;
         }
         break;
-#ifdef HAVE_AS_SSE4_2
+
     case X86EMUL_OPC_F2(0x0f38, 0xf0): /* crc32 r/m8, r{32,64} */
     case X86EMUL_OPC_F2(0x0f38, 0xf1): /* crc32 r/m{16,32,64}, r{32,64} */
         host_and_vcpu_must_have(sse4_2);
@@ -6901,17 +6901,16 @@ x86_emulate(
             asm ( "crc32l %1,%k0" : "+r" (dst.val)
                                   : "rm" (*(uint32_t *)&src.val) );
             break;
-# ifdef __x86_64__
+#ifdef __x86_64__
         case 8:
             asm ( "crc32q %1,%0" : "+r" (dst.val) : "rm" (src.val) );
             break;
-# endif
+#endif
         default:
             ASSERT_UNREACHABLE();
             goto unhandleable;
         }
         break;
-#endif
=20
     case X86EMUL_OPC_VEX(0x0f38, 0xf2):    /* andn r/m,r,r */
     case X86EMUL_OPC_VEX(0x0f38, 0xf5):    /* bzhi r,r/m,r */
--=20
2.34.1




From xen-devel-bounces@lists.xenproject.org Thu Apr 03 18:23:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 18:23:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.937064.1338166 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0PDx-0002Va-P9; Thu, 03 Apr 2025 18:23:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 937064.1338166; Thu, 03 Apr 2025 18:23:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0PDx-0002VT-M0; Thu, 03 Apr 2025 18:23:33 +0000
Received: by outflank-mailman (input) for mailman id 937064;
 Thu, 03 Apr 2025 18:23:32 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Em9L=WV=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u0PDw-0001N1-Mo
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 18:23:32 +0000
Received: from mail-24417.protonmail.ch (mail-24417.protonmail.ch
 [109.224.244.17]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bec5eddf-10b8-11f0-9ffb-bf95429c2676;
 Thu, 03 Apr 2025 20:23:31 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bec5eddf-10b8-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1743704610; x=1743963810;
	bh=GQ/7FVabQDdWQQqA2ckOWpneHtYQWqdMr/r/gKDzsXM=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=FdEBnhhYepTdHVUzupYP2bMsW8MZKaFZoa8hR6sBqIZQM1f3tH0wrZvfE3SVTsCVA
	 wpXf4hp6GVGyoRnLJ7GpGjL+aB1HP4gDwQJ2zAg0GTr7fwJ1wNgCrxc5BqSf7ikgBh
	 2HIlhN3ryC3V4q22iAgf2TXWDFCEUJhz61bAyg37TbFTjZeQazc46biHas9apQXjPV
	 /RyU3+/2k96ShaxvW/O4tmwkzjVXsshKMXxbSpzqFOVTdyVllDTNS0+OJe0PIsE77H
	 LboVB6CqUWTLcRE0FHTDMwTkQODqlV33GeejjXJWP9fQAlWVebyWGEr3cJlsjp/2hm
	 BnNgdskJi7xLA==
Date: Thu, 03 Apr 2025 18:23:26 +0000
To: xen-devel@lists.xenproject.org
From: dmkhn@proton.me
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org, dmukhin@ford.com
Subject: [PATCH v2 5/6] x86/emulate: remove HAVE_AS_RDRAND and HAVE_AS_RDSEED
Message-ID: <20250403182250.3329498-6-dmukhin@ford.com>
In-Reply-To: <20250403182250.3329498-1-dmukhin@ford.com>
References: <20250403182250.3329498-1-dmukhin@ford.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 8dd76c2aceb6a141989cabe4dc4ca563e968872c
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

From: Denis Mukhin <dmukhin@ford.com>

The new toolchain baseline knows the rdrand/rdseed instructions,
no need to carry the workaround in the code.

Resolves: https://gitlab.com/xen-project/xen/-/work_items/208
Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
 xen/arch/x86/arch.mk            |  2 --
 xen/arch/x86/x86_emulate/0fc7.c | 15 +++++----------
 2 files changed, 5 insertions(+), 12 deletions(-)

diff --git a/xen/arch/x86/arch.mk b/xen/arch/x86/arch.mk
index 3bbaee2a44..5577bf6241 100644
--- a/xen/arch/x86/arch.mk
+++ b/xen/arch/x86/arch.mk
@@ -10,9 +10,7 @@ CFLAGS +=3D -msoft-float
=20
 $(call cc-options-add,CFLAGS,CC,$(EMBEDDED_EXTRA_CFLAGS))
 $(call cc-option-add,CFLAGS,CC,-Wnested-externs)
-$(call as-option-add,CFLAGS,CC,"rdrand %eax",-DHAVE_AS_RDRAND)
 $(call as-option-add,CFLAGS,CC,"xsaveopt (%rax)",-DHAVE_AS_XSAVEOPT)
-$(call as-option-add,CFLAGS,CC,"rdseed %eax",-DHAVE_AS_RDSEED)
 $(call as-option-add,CFLAGS,CC,"clwb (%rax)",-DHAVE_AS_CLWB)
 $(call as-option-add,CFLAGS,CC,".equ \"x\"$(comma)1",-DHAVE_AS_QUOTED_SYM)
 $(call as-option-add,CFLAGS,CC,"movdiri %rax$(comma)(%rax)",-DHAVE_AS_MOVD=
IR)
diff --git a/xen/arch/x86/x86_emulate/0fc7.c b/xen/arch/x86/x86_emulate/0fc=
7.c
index 5268d5cafd..58c8f79501 100644
--- a/xen/arch/x86/x86_emulate/0fc7.c
+++ b/xen/arch/x86/x86_emulate/0fc7.c
@@ -32,7 +32,6 @@ int x86emul_0fc7(struct x86_emulate_state *s,
             return X86EMUL_UNRECOGNIZED;
=20
         case 6: /* rdrand */
-#ifdef HAVE_AS_RDRAND
             generate_exception_if(s->vex.pfx >=3D vex_f3, X86_EXC_UD);
             host_and_vcpu_must_have(rdrand);
             *dst =3D s->ea;
@@ -43,12 +42,12 @@ int x86emul_0fc7(struct x86_emulate_state *s,
                       : "=3Dr" (dst->val), ASM_FLAG_OUT("=3D@ccc", "=3Dqm"=
) (carry) );
                 break;
             default:
-# ifdef __x86_64__
+#ifdef __x86_64__
                 asm ( "rdrand %k0" ASM_FLAG_OUT(, "; setc %1")
                       : "=3Dr" (dst->val), ASM_FLAG_OUT("=3D@ccc", "=3Dqm"=
) (carry) );
                 break;
             case 8:
-# endif
+#endif
                 asm ( "rdrand %0" ASM_FLAG_OUT(, "; setc %1")
                       : "=3Dr" (dst->val), ASM_FLAG_OUT("=3D@ccc", "=3Dqm"=
) (carry) );
                 break;
@@ -57,9 +56,6 @@ int x86emul_0fc7(struct x86_emulate_state *s,
             if ( carry )
                 regs->eflags |=3D X86_EFLAGS_CF;
             break;
-#else
-            return X86EMUL_UNIMPLEMENTED;
-#endif
=20
         case 7: /* rdseed / rdpid */
             if ( s->vex.pfx =3D=3D vex_f3 ) /* rdpid */
@@ -77,7 +73,7 @@ int x86emul_0fc7(struct x86_emulate_state *s,
                 dst->bytes =3D 4;
                 break;
             }
-#ifdef HAVE_AS_RDSEED
+
             generate_exception_if(s->vex.pfx >=3D vex_f3, X86_EXC_UD);
             host_and_vcpu_must_have(rdseed);
             *dst =3D s->ea;
@@ -88,12 +84,12 @@ int x86emul_0fc7(struct x86_emulate_state *s,
                       : "=3Dr" (dst->val), ASM_FLAG_OUT("=3D@ccc", "=3Dqm"=
) (carry) );
                 break;
             default:
-# ifdef __x86_64__
+#ifdef __x86_64__
                 asm ( "rdseed %k0" ASM_FLAG_OUT(, "; setc %1")
                       : "=3Dr" (dst->val), ASM_FLAG_OUT("=3D@ccc", "=3Dqm"=
) (carry) );
                 break;
             case 8:
-# endif
+#endif
                 asm ( "rdseed %0" ASM_FLAG_OUT(, "; setc %1")
                       : "=3Dr" (dst->val), ASM_FLAG_OUT("=3D@ccc", "=3Dqm"=
) (carry) );
                 break;
@@ -102,7 +98,6 @@ int x86emul_0fc7(struct x86_emulate_state *s,
             if ( carry )
                 regs->eflags |=3D X86_EFLAGS_CF;
             break;
-#endif
         }
     }
     else
--=20
2.34.1




From xen-devel-bounces@lists.xenproject.org Thu Apr 03 18:31:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 18:31:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.937117.1338177 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0PLS-0006LS-Hp; Thu, 03 Apr 2025 18:31:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 937117.1338177; Thu, 03 Apr 2025 18: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 1u0PLS-0006LL-Dn; Thu, 03 Apr 2025 18:31:18 +0000
Received: by outflank-mailman (input) for mailman id 937117;
 Thu, 03 Apr 2025 18:31: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=Em9L=WV=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u0PE6-0001N1-A1
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 18:23:42 +0000
Received: from mail-4316.protonmail.ch (mail-4316.protonmail.ch [185.70.43.16])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c31d4645-10b8-11f0-9ffb-bf95429c2676;
 Thu, 03 Apr 2025 20:23:38 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c31d4645-10b8-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1743704617; x=1743963817;
	bh=D9HZ36OBMZA9sIUaGxeMjO+UOWm/VDTojn44aNu2MRk=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=e4hZb91LzXNCKy1yuTR+9aIzDdgYcKNqmytcq179tyDuwTc6KaVHptwjKxt6rDOgS
	 6vexmk8eVMhjjV0Td+ch6AhW8DOyblH44eyR2hJZC8qmdd2b6H9EaTUR8nH8mtkpEU
	 ed6TvuMgm5/IwluVrFFYtocZlJv2KpFxPsjfqNCLISF6s3nDuXE3EOGgDkIiE8NoVF
	 mF7b5Um7ycacVTAuisSbwzKuC71tO7/B+1RzPAF+L0Q4zsQdYswrlF8cn6PVQqn2p5
	 shI2XF0GDLp2n625HN5zWIewNVOKHlJ4d4wKc7n1EpWT3g1UDQU93zxyiqwRfo+Ufh
	 qPO69uGACudmg==
Date: Thu, 03 Apr 2025 18:23:32 +0000
To: xen-devel@lists.xenproject.org
From: dmkhn@proton.me
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org, dmukhin@ford.com
Subject: [PATCH v2 6/6] x86/vmx: rework VMX wrappers to use `asm goto()`
Message-ID: <20250403182250.3329498-7-dmukhin@ford.com>
In-Reply-To: <20250403182250.3329498-1-dmukhin@ford.com>
References: <20250403182250.3329498-1-dmukhin@ford.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: a796a4a4237e8e45901dcb32a84db62739145c57
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

From: Denis Mukhin <dmukhin@ford.com>

Improve error handling in VMX wrappers by switching to `asm goto()` where
possible.

vmread_safe() kept as is because the minimally required baseline GCC does
not support output operands in `asm goto`.

Resolves: https://gitlab.com/xen-project/xen/-/work_items/210
Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
 xen/arch/x86/include/asm/hvm/vmx/vmx.h | 141 +++++++++++++------------
 1 file changed, 73 insertions(+), 68 deletions(-)

diff --git a/xen/arch/x86/include/asm/hvm/vmx/vmx.h b/xen/arch/x86/include/=
asm/hvm/vmx/vmx.h
index ed6a6986b9..19d41f7b90 100644
--- a/xen/arch/x86/include/asm/hvm/vmx/vmx.h
+++ b/xen/arch/x86/include/asm/hvm/vmx/vmx.h
@@ -294,54 +294,57 @@ extern uint8_t posted_intr_vector;
=20
 static always_inline void __vmptrld(u64 addr)
 {
-    asm volatile ( "vmptrld %0\n"
-                   /* CF=3D=3D1 or ZF=3D=3D1 --> BUG() */
-                   UNLIKELY_START(be, vmptrld)
-                   _ASM_BUGFRAME_TEXT(0)
-                   UNLIKELY_END_SECTION
-                   :
-                   : "m" (addr),
-                     _ASM_BUGFRAME_INFO(BUGFRAME_bug, __LINE__, __FILE__, =
0)
-                   : "memory" );
+    asm goto ( "vmptrld %[addr]\n"
+               "jbe %l[vmfail]\n\t"
+               :
+               : [addr] "m" (addr)
+               : "memory"
+               : vmfail );
+    return;
+
+ vmfail:
+    BUG();
 }
=20
 static always_inline void __vmpclear(u64 addr)
 {
-    asm volatile ( "vmclear %0\n"
-                   /* CF=3D=3D1 or ZF=3D=3D1 --> BUG() */
-                   UNLIKELY_START(be, vmclear)
-                   _ASM_BUGFRAME_TEXT(0)
-                   UNLIKELY_END_SECTION
-                   :
-                   : "m" (addr),
-                     _ASM_BUGFRAME_INFO(BUGFRAME_bug, __LINE__, __FILE__, =
0)
-                   : "memory" );
+    asm goto ( "vmclear %[addr]\n"
+               "jbe %l[vmfail]\n\t"
+               :
+               : [addr] "m" (addr)
+               : "memory"
+               : vmfail );
+    return;
+
+ vmfail:
+    BUG();
 }
=20
 static always_inline void __vmread(unsigned long field, unsigned long *val=
ue)
 {
-    asm volatile ( "vmread %1, %0\n\t"
-                   /* CF=3D=3D1 or ZF=3D=3D1 --> BUG() */
-                   UNLIKELY_START(be, vmread)
-                   _ASM_BUGFRAME_TEXT(0)
-                   UNLIKELY_END_SECTION
-                   : "=3Drm" (*value)
-                   : "r" (field),
-                     _ASM_BUGFRAME_INFO(BUGFRAME_bug, __LINE__, __FILE__, =
0)
-        );
+    bool vmfail;
+
+    asm volatile ( "vmread %[field], %[value]\n\t"
+                    "setbe %[vmfail]\n\t"
+                    : [value] "=3Drm" (*value), [vmfail] "=3Drm" (vmfail)
+                    : [field] "r" (field)
+                    : "cc" );
+    if ( vmfail )
+        BUG();
 }
=20
 static always_inline void __vmwrite(unsigned long field, unsigned long val=
ue)
 {
-    asm volatile ( "vmwrite %1, %0\n"
-                   /* CF=3D=3D1 or ZF=3D=3D1 --> BUG() */
-                   UNLIKELY_START(be, vmwrite)
-                   _ASM_BUGFRAME_TEXT(0)
-                   UNLIKELY_END_SECTION
-                   :
-                   : "r" (field) , "rm" (value),
-                     _ASM_BUGFRAME_INFO(BUGFRAME_bug, __LINE__, __FILE__, =
0)
-        );
+    asm goto ( "vmwrite %[value], %[field]\n\t"
+               "jbe %l[vmfail]\n\t"
+               :
+               : [field] "r" (field), [value] "rm" (value)
+               :
+               : vmfail );
+    return;
+
+ vmfail:
+    BUG();
 }
=20
 static inline enum vmx_insn_errno vmread_safe(unsigned long field,
@@ -369,22 +372,22 @@ static inline enum vmx_insn_errno vmread_safe(unsigne=
d long field,
 static inline enum vmx_insn_errno vmwrite_safe(unsigned long field,
                                                unsigned long value)
 {
-    unsigned long ret =3D VMX_INSN_SUCCEED;
-    bool fail_invalid, fail_valid;
+    unsigned long ret;
=20
-    asm volatile ( "vmwrite %[value], %[field]\n\t"
-                   ASM_FLAG_OUT(, "setc %[invalid]\n\t")
-                   ASM_FLAG_OUT(, "setz %[valid]\n\t")
-                   : ASM_FLAG_OUT("=3D@ccc", [invalid] "=3Drm") (fail_inva=
lid),
-                     ASM_FLAG_OUT("=3D@ccz", [valid] "=3Drm") (fail_valid)
-                   : [field] "r" (field),
-                     [value] "rm" (value) );
+    asm goto ( "vmwrite %[value], %[field]\n\t"
+               "jc %l[vmfail_invalid]\n\t"
+               "jz %l[vmfail_error]\n\t"
+               :
+               : [field] "r" (field), [value] "rm" (value)
+               :
+               : vmfail_invalid, vmfail_error );
+    return VMX_INSN_SUCCEED;
=20
-    if ( unlikely(fail_invalid) )
-        ret =3D VMX_INSN_FAIL_INVALID;
-    else if ( unlikely(fail_valid) )
-        __vmread(VM_INSTRUCTION_ERROR, &ret);
+ vmfail_invalid:
+    return VMX_INSN_FAIL_INVALID;
=20
+ vmfail_error:
+    __vmread(VM_INSTRUCTION_ERROR, &ret);
     return ret;
 }
=20
@@ -402,15 +405,16 @@ static always_inline void __invept(unsigned long type=
, uint64_t eptp)
          !cpu_has_vmx_ept_invept_single_context )
         type =3D INVEPT_ALL_CONTEXT;
=20
-    asm volatile ( "invept %0, %1\n"
-                   /* CF=3D=3D1 or ZF=3D=3D1 --> BUG() */
-                   UNLIKELY_START(be, invept)
-                   _ASM_BUGFRAME_TEXT(0)
-                   UNLIKELY_END_SECTION
-                   :
-                   : "m" (operand), "r" (type),
-                     _ASM_BUGFRAME_INFO(BUGFRAME_bug, __LINE__, __FILE__, =
0)
-                   : "memory" );
+    asm goto ( "invept %[operand], %[type]\n"
+               "jbe %l[vmfail]\n\t"
+               :
+               : [operand] "m" (operand), [type] "r" (type)
+               : "memory"
+               : vmfail );
+    return;
+
+ vmfail:
+    BUG();
 }
=20
 static always_inline void __invvpid(unsigned long type, u16 vpid, u64 gva)
@@ -422,16 +426,17 @@ static always_inline void __invvpid(unsigned long typ=
e, u16 vpid, u64 gva)
     }  operand =3D {vpid, 0, gva};
=20
     /* Fix up #UD exceptions which occur when TLBs are flushed before VMXO=
N. */
-    asm volatile ( "1: invvpid %0, %1\n"
-                   /* CF=3D=3D1 or ZF=3D=3D1 --> BUG() */
-                   UNLIKELY_START(be, invvpid)
-                   _ASM_BUGFRAME_TEXT(0)
-                   UNLIKELY_END_SECTION "\n"
-                   "2:" _ASM_EXTABLE(1b, 2b)
-                   :
-                   : "m" (operand), "r" (type),
-                     _ASM_BUGFRAME_INFO(BUGFRAME_bug, __LINE__, __FILE__, =
0)
-                   : "memory" );
+    asm goto ( "1: invvpid %[operand], %[type]\n"
+               "   jbe %l[vmfail]\n\t"
+               "2:" _ASM_EXTABLE(1b, 2b)
+               :
+               : [operand] "m" (operand), [type] "r" (type)
+               : "memory"
+               : vmfail );
+    return;
+
+ vmfail:
+    BUG();
 }
=20
 static inline void ept_sync_all(void)
--=20
2.34.1




From xen-devel-bounces@lists.xenproject.org Thu Apr 03 18:36:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 18:36:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.937138.1338186 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0PQj-00070Y-7O; Thu, 03 Apr 2025 18:36:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 937138.1338186; Thu, 03 Apr 2025 18:36: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 1u0PQj-00070R-4Q; Thu, 03 Apr 2025 18:36:45 +0000
Received: by outflank-mailman (input) for mailman id 937138;
 Thu, 03 Apr 2025 18:36: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=tGE9=WV=bounce.vates.tech=bounce-md_30504962.67eed539.v1-206295418c54479ba96f1ecc4f4fa54f@srs-se1.protection.inumbo.net>)
 id 1u0PQi-00070K-4R
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 18:36:44 +0000
Received: from mail180-44.suw31.mandrillapp.com
 (mail180-44.suw31.mandrillapp.com [198.2.180.44])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 96228ebc-10ba-11f0-9eaa-5ba50f476ded;
 Thu, 03 Apr 2025 20:36:42 +0200 (CEST)
Received: from pmta11.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail180-44.suw31.mandrillapp.com (Mailchimp) with ESMTP id
 4ZT9S90d4nz705bZK
 for <xen-devel@lists.xenproject.org>; Thu,  3 Apr 2025 18:36:41 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 206295418c54479ba96f1ecc4f4fa54f; Thu, 03 Apr 2025 18: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: 96228ebc-10ba-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1743705401; x=1743975401;
	bh=yWMYqlLvIOZSn4k0C3wkSffWXKkjeYNkjrLUrF7ag8k=;
	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=OvEHz5AhaOc6omhbUv3cNjr7sNyf53fkZ21XldSjIfiBsemSzjz5R0OqWHi9Tf22X
	 jkmZqbcYX87GMZqaES2aVQ71gxnOtokW+SRH+vp4gprReev66U7j/Fo4S3m0RZcGRA
	 X2tU33CeiNKvhfPbwJo86OmLlA8E34r0Kc+ajcBmAWEMjiRaLJssTLW04Mp3JDtCyJ
	 QnQAlnIzSqvJW+xl6UEKKtZeNCDWfhHGAl26eFxCFgAPmYW7G4ysIPmeNrHwZLaMgm
	 vizU8EHy3jUAvkZxSjYNwxotDzKDuSWzGiVdHr9NwEyyNXvJO6LlaBQYLxlpaktWAJ
	 a4rJwTyPT4Ukw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1743705401; x=1743965901; i=teddy.astie@vates.tech;
	bh=yWMYqlLvIOZSn4k0C3wkSffWXKkjeYNkjrLUrF7ag8k=;
	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=YfpN+pDacS5NX1P1zCfM9r9VL//u866qLOHbax8+QplxTfDFLsxx+P/iHFafMuYKX
	 HbKIsSlxMgUTClQJ41MtB1wwpmlPU+2C+pn4KtXBIRafNbBHaNmmJQrZgkTg3A/+Bf
	 +4fr9FlTFgZ0C0yn2XWoE7qs//hjiMn5fefMjKTqRVZ6GrcIvDrPqlBnxAkYfXp8w5
	 wDm8qH7BBwKBxsoBVnYwDIPt1YM9rfskjgTVrZJOZdn5jwYjzGp9wLDbIs7XIqaAtw
	 meo76g0lz9LMbScTNTLrXPgCPj8wlRQl1L5Ajt/yAkYW+S2nxrae0/j7yjaM4of9m5
	 yGsoWionVvKbg==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20[RFC=20PATCH]=20x86/amd:=20Add=20support=20for=20AMD=20TCE?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1743705399780
Message-Id: <7056c584-a95e-401b-bb35-e5d0e4171878@vates.tech>
To: "Andrew Cooper" <andrew.cooper3@citrix.com>, "Jan Beulich" <jbeulich@suse.com>
Cc: "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
References: <6b751a400df49217defc89a19b3ac2ca33ab7690.1743683787.git.teddy.astie@vates.tech> <73b1dd32-c15e-46c4-982c-9b7a33c8785b@suse.com> <463eca2f-9e2a-474c-ae5a-4ed6cfe01ff8@citrix.com>
In-Reply-To: <463eca2f-9e2a-474c-ae5a-4ed6cfe01ff8@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.206295418c54479ba96f1ecc4f4fa54f?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250403:md
Date: Thu, 03 Apr 2025 18:36:41 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Le 03/04/2025 =C3=A0 16:08, Andrew Cooper a =C3=A9crit=C2=A0:
> On 03/04/2025 1:58 pm, Jan Beulich wrote:
>> On 03.04.2025 14:44, Teddy Astie wrote:
>>> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
>>> ---
>>> RFC:


>>>   - is this change actually safe ?
>> Well, before getting here with reading I was already about to ask this v=
ery
>> question. It's really you who needs to prove it.
>>
>>>   - should we add a tce/no-tce option to opt-in/out this feature ?
>> Unless we're entirely certain we got this right and didn't overlook any
>> corner case, perhaps better to do so.
> 
> To bring across a quote of mine from Mattermost:
> 
> "I'm reasonably sure our TLB handling algorithm is safe for it,
> following the PCID work we did for Meltdown"
> 
> But, proving this is hard.
> > Some history: INVLPG flushing the entire paging structure cache
> (non-leaf mappings) was a last-minute "fix" to keep Windows working on
> the Pentium(?), where it had started using INVLPG from the 486(?) but
> with a logical error.
> 
> AMD's TCE feature is "that's a hefty hit to keep around, so here's an
> option for the behaviour one would more reasonably expect from INVLPG".
> 
> Anyway.=C2=A0 I have a suspicion that Intel's INVPCID no longer followed =
the
> INVLPG behaviour anyway, and that we were forced to account for that.
> However, I'm struggling to find confirmation one way or another in the SD=
M.
> 
> Another mitigating factor is that, because we use recursive pagetables,
> we have to upgrade an INVLPG into a full flush anyway if we edited
> non-leaf entries.
> 

Yes, while proving it on the hypervisor side may be doable, I am quite 
unsure about PV guests.
Some calls to HYPERVISOR_mmuext_op incidentally call invlpg and alike 
which could be affected with this change, as the guest can "assume" some 
behavior aspects of invlpg.

> 
> As to a cmdline option, there's cpuid=3Dno-tce if we really really need
> it, but I don't think we want a dedicated TCE option.
> 
> 
>>> --- a/xen/arch/x86/smpboot.c
>>> +++ b/xen/arch/x86/smpboot.c
>>> @@ -372,6 +372,9 @@ void asmlinkage start_secondary(void *unused)
>>>   
>>>       microcode_update_one();
>>>   
>>> +    if ( boot_cpu_has(X86_FEATURE_TCE) )
>>> +        write_efer(read_efer() | EFER_TCE);
>> Same here. But I wonder if you couldn't set the bit in trampoline_efer.
> 
> Yes, do set it in trampoline_efer, and drop this hunk.
> 

Will do.

> 
> If you add this, ...
> 
>> --- a/xen/arch/x86/setup.c
>> +++ b/xen/arch/x86/setup.c
>> @@ -2008,6 +2008,13 @@ void asmlinkage __init noreturn __start_xen(void)
>>      if ( cpu_has_pku )
>>          set_in_cr4(X86_CR4_PKE);
>>  
>> +    if ( boot_cpu_has(X86_FEATURE_TCE) )
> 
> ... the please also use it.
> 

Yes, I forgot to change it.

---

Aside enabling this flag for Xen/PV guests, it can be useful to expose 
it to the guests. While it's currently not going to change anything as 
most of the related instructions are trapped and managed by the 
hypervisor, it does affect the behavior of inside-guest INVLPGB if 
enabled in the VMCB.

> ~Andrew

Teddy



Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Thu Apr 03 19:10:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 19:10:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.937157.1338196 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0PxR-0007DZ-Ow; Thu, 03 Apr 2025 19:10:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 937157.1338196; Thu, 03 Apr 2025 19: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 1u0PxR-0007D3-KT; Thu, 03 Apr 2025 19:10:33 +0000
Received: by outflank-mailman (input) for mailman id 937157;
 Thu, 03 Apr 2025 19:10: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=JbNy=WV=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u0PxQ-0007BV-B5
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 19:10:32 +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 4fca58ba-10bf-11f0-9eaa-5ba50f476ded;
 Thu, 03 Apr 2025 21:10:31 +0200 (CEST)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-43d0618746bso9147355e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 03 Apr 2025 12:10:31 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43ec1663053sm29317565e9.15.2025.04.03.12.10.29
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 03 Apr 2025 12:10: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: 4fca58ba-10bf-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1743707431; x=1744312231; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Jzuj1M8SOFjW4JeG6HeNXSF+X7+jyBYmetNErkmeqCc=;
        b=ANCa6yYWUlIqvpkOE/xFsiqaf4pQ6dnE1aoioveQa+c+8Hdeet2cLzEYzSEXO4u//b
         M4/OeKYN8p3MkbpMajbYOCn0NK8SCmKurYZCSk2Srlxy1tP5KXS/ilQ9QOjg2D4tXXk4
         ijx24cYpvMBgryMjIU6+Wdj01bK+yzaDem/DQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743707431; x=1744312231;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Jzuj1M8SOFjW4JeG6HeNXSF+X7+jyBYmetNErkmeqCc=;
        b=VuRi4h70sSfUXUa3tqN68kJUtoYbM6mxM34TbwteBtrfrp24wsiA6oQqQKpmiAjWC3
         B79/ZMz47FvyKyWgGPZwPbXNY37AoYC6Wy1cjA1cZVTywOSKp2kFxJyWoq57kCTsrsXs
         cKerEbaPrzKjelKvP7FEFHAN11AcSOH8ccKbJHGgd5CoXOAkvXCq5O/8RchZQp2m/ZsC
         loLQtxy3xHYyHKFaRn53A9z0Tt7juXEPLH7DZVZgyDrZs77sPYl0qL4Ez7XrWbNQqaP7
         gpOldE/2f+HnOqmZxtxrXiuvYyjofLx6vqHtx8JxgGS655cHWeCjBu1+pSSAcX8GmPWs
         rK5Q==
X-Forwarded-Encrypted: i=1; AJvYcCUaYGtorJxslVl89DbcRVRcxX/AcBxWJLyNwGoQd2pph+lHohtjN9g64JkaNrig7b5h2sHoikEUGP0=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzkf3JSYd7ykz0XGaqdsRDAJlsJGIf6iCyes2czrNKlWPxA8YAz
	jAdRUQ/F7wf83Bs2VkGFXHDhh+jpfielDiK+wtzaglPG00c7jnvHo/T26/k6ub0=
X-Gm-Gg: ASbGncvv3ZSvJkWg+ENxnhywEkDDIEmEcf3pKHH6oEvmDj+mBzFAghxjskReRAYMSju
	/MzvnA8IHUlVd4jKheBHmWmET+uMkn7gFi+1TwTsXQXrqF5UtPDt/vjbv1OOvwrJ18MKE3P4sX0
	TpuaSBXNzDbsGL+ntNvV10FkKFfbLdZc38QXQcQTbZYO1UCLTG5MX1ftfYmW9MNtx9jI/NxS5fF
	sPX5vKwtoYneBS3yg3ZRlNzXecIDUqARMZMTWJUQ6R8x1BPl8dN1aCsvV6DSOoMB3lcRn7K2eOq
	YJxmRsbfIzp+dIK5RCc7H56HEs+cK6G1Yl1Ew5Dx3GUO6j+3tIyLxzlMIfU0aCGmsVxk6DPjdM8
	YhZ25euwJaFbdwD4A3VyR
X-Google-Smtp-Source: AGHT+IEY8RH13JnZ9zEAewyZcY17wd7nDi/+zKodTU+dQ0iFeN1LtUPvT9J1qSUdv2J+XDMo3W5eVw==
X-Received: by 2002:a05:600c:3487:b0:43c:f3e4:d6f6 with SMTP id 5b1f17b1804b1-43ecfa19260mr2824895e9.31.1743707430640;
        Thu, 03 Apr 2025 12:10:30 -0700 (PDT)
Message-ID: <9079e1dd-3c2c-43e3-8afb-bf92fd13d3ee@citrix.com>
Date: Thu, 3 Apr 2025 20:10:29 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/6] x86/vmx: remove HAVE_AS_{EPT,VMX}, GAS_VMX_OP()
 and *_OPCODE
To: dmkhn@proton.me, xen-devel@lists.xenproject.org
Cc: anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org,
 michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org,
 dmukhin@ford.com
References: <20250403182250.3329498-1-dmukhin@ford.com>
 <20250403182250.3329498-2-dmukhin@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: <20250403182250.3329498-2-dmukhin@ford.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 03/04/2025 7:23 pm, dmkhn@proton.me wrote:
> From: Denis Mukhin <dmukhin@ford.com>
>
> The new toolchain baseline knows the VMX instructions,
> no need to carry the workaround in the code.
>
> Move asm for vmxoff directly on the only callsite in vmcs.c

Ideally VMXOFF in capitals as it's an instruction name.  But, this type
of thing is more commonly phrased as "Inline __vmxoff() into it's single
caller", or so.

>
> Updated formatting for all __xxx() calls to be consistent.

I'd suggest "for the other wrappers to be".

>
> Resolves: https://gitlab.com/xen-project/xen/-/work_items/202
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> ---
>  xen/arch/x86/arch.mk                   |   4 +-
>  xen/arch/x86/hvm/vmx/vmcs.c            |   2 +-
>  xen/arch/x86/include/asm/hvm/vmx/vmx.h | 119 ++++---------------------

Just as a note, you're CC-ing The Rest, but this is an x86-only change,
so should really only be CCing myself, Jan and Roger.

> diff --git a/xen/arch/x86/hvm/vmx/vmcs.c b/xen/arch/x86/hvm/vmx/vmcs.c
> index 1d427100ce..aef746a293 100644
> --- a/xen/arch/x86/hvm/vmx/vmcs.c
> +++ b/xen/arch/x86/hvm/vmx/vmcs.c
> @@ -811,7 +811,7 @@ void cf_check vmx_cpu_down(void)
>  
>      BUG_ON(!(read_cr4() & X86_CR4_VMXE));
>      this_cpu(vmxon) = 0;
> -    __vmxoff();
> +    asm volatile ("vmxoff" : : : "memory");

asm volatile ( "vmxoff" ::: "memory" );

>  
>      local_irq_restore(flags);
>  }
> diff --git a/xen/arch/x86/include/asm/hvm/vmx/vmx.h b/xen/arch/x86/include/asm/hvm/vmx/vmx.h
> index 7c6ba73407..ed6a6986b9 100644
> --- a/xen/arch/x86/include/asm/hvm/vmx/vmx.h
> +++ b/xen/arch/x86/include/asm/hvm/vmx/vmx.h
> @@ -310,97 +292,54 @@ extern uint8_t posted_intr_vector;
>  #define INVVPID_ALL_CONTEXT                     2
>  #define INVVPID_SINGLE_CONTEXT_RETAINING_GLOBAL 3
>  
> -#ifdef HAVE_AS_VMX
> -# define GAS_VMX_OP(yes, no) yes
> -#else
> -# define GAS_VMX_OP(yes, no) no
> -#endif
> -
>  static always_inline void __vmptrld(u64 addr)
>  {
> -    asm volatile (
> -#ifdef HAVE_AS_VMX
> -                   "vmptrld %0\n"
> -#else
> -                   VMPTRLD_OPCODE MODRM_EAX_06
> -#endif
> +    asm volatile ( "vmptrld %0\n"

As you're changing the line anyway, this ought to be \n\t.  It's
cosmetic, but comes in handy if you need to read the intermediate assembly.

>                     /* CF==1 or ZF==1 --> BUG() */
>                     UNLIKELY_START(be, vmptrld)
>                     _ASM_BUGFRAME_TEXT(0)
>                     UNLIKELY_END_SECTION
>                     :
> -#ifdef HAVE_AS_VMX
>                     : "m" (addr),
> -#else
> -                   : "a" (&addr),
> -#endif
>                       _ASM_BUGFRAME_INFO(BUGFRAME_bug, __LINE__, __FILE__, 0)
> -                   : "memory");
> +                   : "memory" );
>  }
>  
>  static always_inline void __vmpclear(u64 addr)
>  {
> -    asm volatile (
> -#ifdef HAVE_AS_VMX
> -                   "vmclear %0\n"
> -#else
> -                   VMCLEAR_OPCODE MODRM_EAX_06
> -#endif
> +    asm volatile ( "vmclear %0\n"
>                     /* CF==1 or ZF==1 --> BUG() */
>                     UNLIKELY_START(be, vmclear)
>                     _ASM_BUGFRAME_TEXT(0)
>                     UNLIKELY_END_SECTION
>                     :
> -#ifdef HAVE_AS_VMX
>                     : "m" (addr),
> -#else
> -                   : "a" (&addr),
> -#endif
>                       _ASM_BUGFRAME_INFO(BUGFRAME_bug, __LINE__, __FILE__, 0)
> -                   : "memory");
> +                   : "memory" );
>  }
>  
>  static always_inline void __vmread(unsigned long field, unsigned long *value)
>  {
> -    asm volatile (
> -#ifdef HAVE_AS_VMX
> -                   "vmread %1, %0\n\t"
> -#else
> -                   VMREAD_OPCODE MODRM_EAX_ECX
> -#endif
> +    asm volatile ( "vmread %1, %0\n\t"
>                     /* CF==1 or ZF==1 --> BUG() */
>                     UNLIKELY_START(be, vmread)
>                     _ASM_BUGFRAME_TEXT(0)
>                     UNLIKELY_END_SECTION
> -#ifdef HAVE_AS_VMX
>                     : "=rm" (*value)
>                     : "r" (field),
> -#else
> -                   : "=c" (*value)
> -                   : "a" (field),
> -#endif
>                       _ASM_BUGFRAME_INFO(BUGFRAME_bug, __LINE__, __FILE__, 0)
>          );

Fold this onto the previous line, as you're fixing up all the other
closing brackets.

> @@ -494,24 +422,14 @@ static always_inline void __invvpid(unsigned long type, u16 vpid, u64 gva)
>      }  operand = {vpid, 0, gva};
>  
>      /* Fix up #UD exceptions which occur when TLBs are flushed before VMXON. */

I find this comment deeply troubling, but lets not go changing that
right now.

I'm happy to fix this all on commit.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Apr 03 19:16:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 19:16:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.937190.1338205 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0Q3K-0000ev-Aj; Thu, 03 Apr 2025 19:16:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 937190.1338205; Thu, 03 Apr 2025 19:16: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 1u0Q3K-0000eo-8A; Thu, 03 Apr 2025 19:16:38 +0000
Received: by outflank-mailman (input) for mailman id 937190;
 Thu, 03 Apr 2025 19:16: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=JbNy=WV=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u0Q3J-0000eh-1V
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 19:16:37 +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 28368531-10c0-11f0-9ffb-bf95429c2676;
 Thu, 03 Apr 2025 21:16:35 +0200 (CEST)
Received: by mail-wr1-x42c.google.com with SMTP id
 ffacd0b85a97d-38f2f391864so713706f8f.3
 for <xen-devel@lists.xenproject.org>; Thu, 03 Apr 2025 12:16:34 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39c301a67a1sm2483502f8f.24.2025.04.03.12.16.33
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 03 Apr 2025 12:16:33 -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: 28368531-10c0-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1743707794; x=1744312594; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=0JnEDoYlTFRHgSnQxnYJjeyx6TDcDB2dZ0/ffJJWSFQ=;
        b=Xs0qVTWI+0sCAmthGySOc3U/8jJb2HYuIQe/kuF+E+Ic0hiNNUOi8LCUkGc75F2Uhn
         jGfQdylkoqJizG5IUj2LRZ8UX+xi0oPIccfYWF159Ma0Cp2b1L6VCWQSQl+X3vZeHHGG
         FAQiTyqdKQLgv5SmFrBdF53AWke4ppWX3ULEo=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743707794; x=1744312594;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=0JnEDoYlTFRHgSnQxnYJjeyx6TDcDB2dZ0/ffJJWSFQ=;
        b=X+M+8kPwgd8NFDOle3XUqGSS5h0G+QB14n21ddgPLWROlcbVlEiPp46KKUd3ZHkYjy
         mqVwydDmVYJWpxpkdcMfXSU4TvV5sy1jwtltaqC3/EVAfJlxgoZqrfj6QdP0tLeQ6p4g
         TF1wRcP2Xqpq0nldTn5Ouzbgr19CiCizV1XDAKhW8Mqy9tkrNEP7KkEc3dW/9kkPpyVZ
         ZsaytF4jSsF/aoytex1Pb28+B4FLYWNo5CirQ7PXyB7x8LifbJndzV3qx45QGDsKU81z
         ue3OadiHbT4CAE6i8GV+e4FgyZZhjG14myaDL4IhChxEtWlJu9hxyKoTacmIVCfjKXBo
         7ecA==
X-Forwarded-Encrypted: i=1; AJvYcCVbCPPQ9pRrBditNatCk66kKoZa2PM2viKep7KW2hLHdYBlf7kgO7lxuOJw7jXL2SGYSwIDYStiB/U=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yyigh2SsAk1SuV3Ffb6dmP0E3j/HpwQb7yBrcn0r7EvSlVWHwx7
	F9An0Riy1Q/eK9afN6iv1iaKkKaCewCZEiIh7HmS4BaachuDHtDhYBtYeUeDlV8=
X-Gm-Gg: ASbGncuGJ8ifw4b0GzcxZ/CfsQdRbIeW3yxFnlrLihsifQqN73epDdZYwzD+zTD2cwr
	3AuhByRfMcoiOr09U9eoOvopoD7mPxeclyicFY7dc45uQwg5x2CUyIywLEJXo+ypXSh1C/II8cP
	thoJmfHG+XhJT19PUA4NxixkEVT7PGzvdjxRgr00ETyu4oUSVG8esQ69qZuVSyxA3AJe6eqB8f1
	FSlKXRQV/8hYMOiNNK2Cs0r/EyemKQzY3JmgxOu69inA4E5JfAVMO3/+4z8JAiZWzT8Y7/h9/kz
	pQMV5XsotJJH9KDo9h5WLe8y5Fbn6IE+iWZM4IBU2GjoJddJYYfw6SmrXj8lfMmizttILYhPjYN
	vDMrySk2nWw==
X-Google-Smtp-Source: AGHT+IHEl8m8cA2rMU1EYJf/p24ZniZRUAT42WV0uEALlU5L0kv5wpl8oEnqbzsEeTTlJ/cT781rdw==
X-Received: by 2002:a5d:64ec:0:b0:39c:1efb:ec9a with SMTP id ffacd0b85a97d-39d07ad8ab2mr38421f8f.6.1743707793838;
        Thu, 03 Apr 2025 12:16:33 -0700 (PDT)
Message-ID: <539dde2f-8b48-430a-9534-76a58b4c1b4f@citrix.com>
Date: Thu, 3 Apr 2025 20:16:32 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/6] x86/msr: remove HAVE_AS_FSGSBASE
To: dmkhn@proton.me, xen-devel@lists.xenproject.org
Cc: anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org,
 michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org,
 dmukhin@ford.com
References: <20250403182250.3329498-1-dmukhin@ford.com>
 <20250403182250.3329498-3-dmukhin@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: <20250403182250.3329498-3-dmukhin@ford.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 03/04/2025 7:23 pm, dmkhn@proton.me wrote:
> From: Denis Mukhin <dmukhin@ford.com>
>
> The new toolchain baseline knows the {rd,wr}{f,g}sbase instructions,
> no need to carry the workaround in the code.
>
> Resolves: https://gitlab.com/xen-project/xen/-/work_items/207
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>

Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Thu Apr 03 19:17:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 19:17:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.937200.1338215 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0Q4C-00019f-Ih; Thu, 03 Apr 2025 19:17:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 937200.1338215; Thu, 03 Apr 2025 19:17:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0Q4C-00019Y-G9; Thu, 03 Apr 2025 19:17:32 +0000
Received: by outflank-mailman (input) for mailman id 937200;
 Thu, 03 Apr 2025 19:17:31 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=JbNy=WV=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u0Q4B-0000eh-4f
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 19:17:31 +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 4926ddc4-10c0-11f0-9ffb-bf95429c2676;
 Thu, 03 Apr 2025 21:17:29 +0200 (CEST)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-43d0618746bso9177295e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 03 Apr 2025 12:17:29 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43ec147c9dbsm30682465e9.0.2025.04.03.12.17.28
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 03 Apr 2025 12:17:28 -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: 4926ddc4-10c0-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1743707849; x=1744312649; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=7huC9wpdmi4acDCzK4IZdRut0j5gQKcaQf00ZnMjeQ0=;
        b=F2RdJDds+4j/DqSqp1EElNppAkswsomNu93dsnYwvDKd6k+0IiRYKb7WOpVe6213vH
         8oACKr5ZWjRb1VGiFMOVdgK4Q9AH5eCvrbJ5EECERqnEZ+oLLat+1U7UfuQ5A5LtZgmG
         I1tXfrLKJ0Qh04wMk8XzGJWwrJIiFZ0w+EQ+4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743707849; x=1744312649;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=7huC9wpdmi4acDCzK4IZdRut0j5gQKcaQf00ZnMjeQ0=;
        b=CkwQ5dzAR+O7wlRRBy2ySwOD9iXfF8Ze+GBzCwrd5PBhL48wqzn/vqb5q5OIj2AGv7
         Lz00EGpqQReqzP4lWfOKDzdWN1lecXBLpi+GVqnxXPgcyck+Wjy3RJUv5d+Fr+c+6pIV
         24zbVfLlAKyQQGmm546B2pwmVLBSHA5pg7OkrJTEyunw6LnFokGrvcqzUDEC9rPTGK7C
         rk2Uod/0BRm4wk6nlgeEIo7FbqXt8hlWS1O0JH88m1L6VyeizdVaS68cMC/6zkpLapU7
         auXgpAys3J6k3x/Rgzzy1dyqjRq1UWz4gyd7aTNn+ULaKH8FV0qHUyToBHzZPH6Q3jXB
         adkw==
X-Forwarded-Encrypted: i=1; AJvYcCXjBnBjYqzMI85WB2up5P7uXYrae2kQwWbIv/3ZqYbBJb/E9uAjqykVQ69vWn17okM29eNyq+UkHis=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzwk33GXBRvltjPX9DI5e0IJhaCdCeqr1vm4AvXkQgZ0DXiXVnM
	EzM4GPXG9cJi2lcTXiEjScCug6WC8otDmDo2diYJFiXG4bHpMW3wRT8kKI1345U=
X-Gm-Gg: ASbGncsbh+/ZPQpRnuEG+uIX41t0I4AazgHtrOGEk1fLr21Nc2je9ceNuysWSDb/INy
	6lLl8Y4WApNffpc3uQp3G1tB7dpDuB4QjTnLTNnWx7eCoB2jIqc/fHtgj1DI349uwyXAGdOE5wh
	eYyjfaWOXaHiTUiyx+4u3hGzXtaEsQIxeSyVCuhqa60igrlKy1NR+JnW4TfHkdITafJpRADQVFy
	wSEW5BjvU02f/UI/3glT1+Rx3TnJg16nnn26QaX/xNQVglRM2HT7lIt/gfPyCGlaxEyCjCoCa5P
	asLa/36h4Per5cZtFyanBsiK1tOuZUfPTNcw7ABqqD/KlxClGyPHDiz8fHzqXP4QBX9jzy1DSmB
	KHCTXNKBgbQ==
X-Google-Smtp-Source: AGHT+IHJVvCdMBErkKvPCaMlq2g9fzC6kefN0jKL0+J3ZNxBPpOnZy7Zb9uMHh7AEDSTxS/pZChbMQ==
X-Received: by 2002:a05:600c:500c:b0:43d:bb9:ad00 with SMTP id 5b1f17b1804b1-43ecf8cf6b2mr3646035e9.15.1743707849143;
        Thu, 03 Apr 2025 12:17:29 -0700 (PDT)
Message-ID: <fafcc7f6-3829-4de1-99a0-ddcce33ea526@citrix.com>
Date: Thu, 3 Apr 2025 20:17:28 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 3/6] x86/asm: remove HAVE_AS_INVPCID
To: dmkhn@proton.me, xen-devel@lists.xenproject.org
Cc: anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org,
 michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org,
 dmukhin@ford.com
References: <20250403182250.3329498-1-dmukhin@ford.com>
 <20250403182250.3329498-4-dmukhin@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: <20250403182250.3329498-4-dmukhin@ford.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 03/04/2025 7:23 pm, dmkhn@proton.me wrote:
> From: Denis Mukhin <dmukhin@ford.com>
>
> The new toolchain baseline knows the invpcid instruction,
> no need to carry the workaround in the code.
>
> Resolves: https://gitlab.com/xen-project/xen/-/work_items/209
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>

Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Thu Apr 03 19:18:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 19:18:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.937212.1338225 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0Q4j-0001iZ-UU; Thu, 03 Apr 2025 19:18:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 937212.1338225; Thu, 03 Apr 2025 19:18:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0Q4j-0001iS-RR; Thu, 03 Apr 2025 19:18:05 +0000
Received: by outflank-mailman (input) for mailman id 937212;
 Thu, 03 Apr 2025 19: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=JbNy=WV=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u0Q4h-0001Wd-SH
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 19:18:03 +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 5d469487-10c0-11f0-9eaa-5ba50f476ded;
 Thu, 03 Apr 2025 21:18:03 +0200 (CEST)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-39c0e0bc733so1064650f8f.1
 for <xen-devel@lists.xenproject.org>; Thu, 03 Apr 2025 12:18:03 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39c3009644dsm2488484f8f.6.2025.04.03.12.18.02
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 03 Apr 2025 12:18: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: 5d469487-10c0-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1743707883; x=1744312683; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=pgScJpYzfdf3yrTeCXwBMPpTsWOi7+2uJ0f7z4rWw9k=;
        b=dcHbUU+EXd/n6i6ypVpSHBu+4kB6f78R1QaOEVQJfZIDX/NW1wmcsEQbQHOeOEHvBw
         DD0gMH4jfhxQHNuZoo2uBF+Vy4A4oRu8sWxmxIvSJ87ZL9g2GzQYeY4b5are3K+GiFCK
         +wv2GSm76i7cl5DErh+yVRcdv8mpWxFMZF4MA=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743707883; x=1744312683;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=pgScJpYzfdf3yrTeCXwBMPpTsWOi7+2uJ0f7z4rWw9k=;
        b=s+W6+AII/aE1MkmzmY4MVDCk99bqs6263YpCTO513oFpfbDJaUjTOAjtc3n8Nsd+JN
         0B0n58YtoEFUz/iXZyc6z16NXLl9BduoAfbgijhjC3I5w5aOszTlRBwPesISfKXce2e0
         wb5GD9F505IiwlvNJKv0Z3mJQsWJv1VVx8Sz00I5xIhZne65vI3DcA9NFVnmz1gD5van
         qa7FNAvq3uTD7w9zzUfLTxg+yoIuKPt9gurphmlnZI4ghXJV28SUFelMDyLxs823r48Z
         j9JvOgfZE3VVqQxdvI6JbGkqOp2lmAVHbu0FJdkVCUEys9VSeiM1mbUWOz+7LkLIiIeM
         f4ag==
X-Forwarded-Encrypted: i=1; AJvYcCXeHrHMCY7oifmeMbSuazup14003D0EqNBZa29Cgk68/ACxAkct3Pe/BXBXXMvKqh2diuBXBHSWn1w=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxPsUdR0KITNGx+FsEnewayDc0cvtR7QcfUpw9L+Sh3Sl8FSlA1
	s6phd135PZ63xqEhiruF3rYMvhQKMTAsZeiwqDz4KEOLO2G5aXPPMIkalQ/o1OBi6dvY9S+jaIy
	HRwQ=
X-Gm-Gg: ASbGncvnj7iD0jHTINIIpU+l3YVPkAPPoSBN+90zqeE30iXGQIOPxakq+BRS59tGvB9
	7j7UbNDoumZkxYtYaiFXjsudn9o4tXRxxGAXNOmQkU+2p9XWeYmVs29J/mor+idRzEqoRirxQ9R
	4c2IJQtROm/jU1vHScmG4hcWoe9IQ6NUGQLoIdQVGj1Aw2/qWfAMhHLYEkN8zCSQbX5hJ4K51aQ
	dErsYx6CVh9PBq8CfRyHIDQTJ5J1s/6bEYi9dJHd2bVnrgWltPqvsbdX8m3ygxqLGEItHuk9QTF
	lx1cIsQj1WLeOStFqV/QilWsC5Jp1Keiwpdfd13+go044QnlO6SYYO6dbLFGYOKPG0LDUxhT6Il
	yUTtG2ZXBZTJiikUOIEDH
X-Google-Smtp-Source: AGHT+IEW1FBg++6BOv5OQPdnQnm+WybqdYpt1ghja6bxjN5m4PczJKfT/Weh1sk5pGFXwrIg7lL/4w==
X-Received: by 2002:a05:6000:18ac:b0:39a:c6c4:f877 with SMTP id ffacd0b85a97d-39cba9332c6mr377933f8f.20.1743707882803;
        Thu, 03 Apr 2025 12:18:02 -0700 (PDT)
Message-ID: <4b127cf0-b12c-4988-b030-d775bc3d6700@citrix.com>
Date: Thu, 3 Apr 2025 20:18:01 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 4/6] x86/emulate: remove HAVE_AS_SSE4_2
To: dmkhn@proton.me, xen-devel@lists.xenproject.org
Cc: anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org,
 michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org,
 dmukhin@ford.com
References: <20250403182250.3329498-1-dmukhin@ford.com>
 <20250403182250.3329498-5-dmukhin@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: <20250403182250.3329498-5-dmukhin@ford.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 03/04/2025 7:23 pm, dmkhn@proton.me wrote:
> From: Denis Mukhin <dmukhin@ford.com>
>
> The new toolchain baseline knows the crc32 instructions,
> no need to carry the workaround in the code.
>
> Resolves: https://gitlab.com/xen-project/xen/-/work_items/206
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>

Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Thu Apr 03 19:22:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 19:22:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.937226.1338235 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0Q8Y-0004iH-ED; Thu, 03 Apr 2025 19:22:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 937226.1338235; Thu, 03 Apr 2025 19:22: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 1u0Q8Y-0004iA-BC; Thu, 03 Apr 2025 19:22:02 +0000
Received: by outflank-mailman (input) for mailman id 937226;
 Thu, 03 Apr 2025 19: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=JbNy=WV=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u0Q8X-0004i4-If
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 19:22: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 ea3a35b7-10c0-11f0-9eaa-5ba50f476ded;
 Thu, 03 Apr 2025 21:22:00 +0200 (CEST)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-43690d4605dso9129315e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 03 Apr 2025 12:21:59 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43ec169abd7sm29503565e9.18.2025.04.03.12.21.58
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 03 Apr 2025 12:21:58 -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: ea3a35b7-10c0-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1743708119; x=1744312919; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=lrFEpHrIilUSSMkgYQI2gbZruyjnulK5DcIoWs+kEOA=;
        b=iFwB/I2UKk0lWt8jYiSfTolpDc7OKkZpNLRzv5JL+QdJ0UmGgivwd3oVp1UsjuPVpG
         TwWz/eliR/Ks/3OLZ5LImz2uvbVQMgdyRSriBNmiE00F1YdS54pFBk1CFmweJUfl1Qp+
         NU7sByFeaeOHPfVJDxC97pnxe0VpVgtifr76w=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743708119; x=1744312919;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=lrFEpHrIilUSSMkgYQI2gbZruyjnulK5DcIoWs+kEOA=;
        b=hhFpWK5EsrWq/cQOukAr1B4aeTaDtAtLZIgzzF7TABmB1rV7jdmSQ6r2oO45qj2lJq
         E2dgKO8JSBEJNnLTzwteOLb5eGDg6ugg5CaVDPCkhQzCoAHN4A9/5CQStdow6iSzPYNe
         QU1Cp5IcWZyI2MDZDzQQRZF6LwwZ4ZrS2b4hYZ6K3z9CECrVsKKSSKauq1CIwv82jJF2
         Xw54FuL+yUBWoQG6OzuBmMuGw6gea6rIV/03Ck8inbhHYmA9TZl5KolQh0BOSt+jKnqd
         ZYPXlm2UGnQWd9fLi8ID4iCJRyym7IPpkn+htO3D6jXKR28q9ofmwOd8pUYHiXiBCfVV
         H7Eg==
X-Forwarded-Encrypted: i=1; AJvYcCX3aO5UqVivqa25DCDc6+Z2Rr7uFkkI/wRE4aGbRz8cBEHI32xNgqlRdzgIRgbRD5Wj1SVriFSJmNI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxZx3vN+1gsyb4+Iw1N7Z9VIC7aceDwIwGeqnGF9HValBvMpHi6
	z2Fg542yV9rxuGde1jJpj/IAZDIF/uM0gqcVdC/rSgJFvWnCv8BG3GvDHLYn45YACAMkS34lJSA
	7B6I=
X-Gm-Gg: ASbGnct3XYSgqNSBC9E4FnNopR1dO125WqVQLXMta0MX/8CqTnCvlhiQnKJPXDlwCnq
	9pUXGMb/6WJ1sOESZvYNPW+F3fnmRUggwDOFYk31cu/7xMoCZ1z77BFOjsOvAeJCpudM5XLtJGD
	ZVNLoX0Rz4ZIfoVDH/2fV9z5D3e1bBcgdj1p8NXmJiCjQjynQX6NNzc4OsJrqD8S1mhDry8BQMO
	tnHqyZsn8+yJNuGBMbqO23+yZeOQ7Fn0106Ref8sNMExiWyBoMIsdJb2ACI4BNxpGy5k48dAI/f
	liRysoVytVQIehmXkAkUZ2qyscaWPoIVpKUnerYkDpGvdeAr6RCjyxiXySuZ5/lllB8G1M+F37X
	15lLAN/WTmg==
X-Google-Smtp-Source: AGHT+IEcVS2Nukkf75qDp4Y8gHYwy4QOHWIrScAyx0xit3ZNnjWmmwvLaLWmRVV4gYZRustacrc3fg==
X-Received: by 2002:a05:600c:c07:b0:43d:224:86b5 with SMTP id 5b1f17b1804b1-43ecf81c5a4mr3679645e9.4.1743708119299;
        Thu, 03 Apr 2025 12:21:59 -0700 (PDT)
Message-ID: <de2ef26a-f999-4962-abbc-3ffcc684e7f7@citrix.com>
Date: Thu, 3 Apr 2025 20:21:58 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 5/6] x86/emulate: remove HAVE_AS_RDRAND and
 HAVE_AS_RDSEED
To: dmkhn@proton.me, xen-devel@lists.xenproject.org
Cc: anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org,
 michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org,
 dmukhin@ford.com
References: <20250403182250.3329498-1-dmukhin@ford.com>
 <20250403182250.3329498-6-dmukhin@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: <20250403182250.3329498-6-dmukhin@ford.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 03/04/2025 7:23 pm, dmkhn@proton.me wrote:
> From: Denis Mukhin <dmukhin@ford.com>
>
> The new toolchain baseline knows the rdrand/rdseed instructions,
> no need to carry the workaround in the code.
>
> Resolves: https://gitlab.com/xen-project/xen/-/work_items/208
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> ---
>  xen/arch/x86/arch.mk            |  2 --
>  xen/arch/x86/x86_emulate/0fc7.c | 15 +++++----------

Huh...

I was expecting a hunk in xen/arch/x86/include/asm/random.h but lookin
at it, I see that didn't even get the HAVE_AS_RDRAND treatment in the
first place.  Also, the + constraint, rather than =, looks suspicious.

Could I ask you to clean those up too please?  The rest of this patch
looks fine.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Apr 03 19:40:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 19:40:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.937240.1338245 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0QQK-0000Pn-Qn; Thu, 03 Apr 2025 19:40:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 937240.1338245; Thu, 03 Apr 2025 19: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 1u0QQK-0000Pg-OI; Thu, 03 Apr 2025 19:40:24 +0000
Received: by outflank-mailman (input) for mailman id 937240;
 Thu, 03 Apr 2025 19:40: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=Em9L=WV=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u0QQI-0000PT-I4
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 19:40:23 +0000
Received: from mail-24416.protonmail.ch (mail-24416.protonmail.ch
 [109.224.244.16]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 79b59dea-10c3-11f0-9ffb-bf95429c2676;
 Thu, 03 Apr 2025 21:40:19 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 79b59dea-10c3-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1743709218; x=1743968418;
	bh=sc2yFQNXp/F39+/llOCqL2Y7wDs73l+1zvPiHn2ms7I=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=TbF3gnOWmFmsGdhckT9iBd7hkzEBFEwWMsMxKDTWQOuloWJcW58C3lWdBmcHStlgI
	 Uerl35GbQe6LQgp87phHxjBKj+cwk3hiOqvvswC+Jnl3KsZ1vN5LUy2+0beBmSwH/s
	 pkCdVnUsiCGlrHTxVPcNRQpgaabyvId4NH+VguDo12nSxWS09hXqbpDIiqIw2wPlpF
	 PjIYK1TgIL/DAvPnNTZtMJXHQZlYOTKDLDbpaUJmeD1yNzPm7vJKWlbOHWFitEWup4
	 TWk4wBw1g43xlgdh8sqcv0Jhu8ZQBfoKCd6BI1bBcvfCWRIpaMtdbzVabsbM2ZHS6r
	 /bIe2sSjzA0Kg==
Date: Thu, 03 Apr 2025 19:40:12 +0000
To: Andrew Cooper <andrew.cooper3@citrix.com>
From: Denis Mukhin <dmkhn@proton.me>
Cc: xen-devel@lists.xenproject.org, anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org, dmukhin@ford.com
Subject: Re: [PATCH v2 1/6] x86/vmx: remove HAVE_AS_{EPT,VMX}, GAS_VMX_OP() and *_OPCODE
Message-ID: <60W8YcOEaCr_48cvay1GkakH2dwi1KXBfxmzepNh6axJibw3xbS0h-_64B7IRCCcdTP7LQm-sXLWtVPMuG-IhUFukdBHDscuNcVQRnLa91s=@proton.me>
In-Reply-To: <9079e1dd-3c2c-43e3-8afb-bf92fd13d3ee@citrix.com>
References: <20250403182250.3329498-1-dmukhin@ford.com> <20250403182250.3329498-2-dmukhin@ford.com> <9079e1dd-3c2c-43e3-8afb-bf92fd13d3ee@citrix.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: e0f3a1a5839dd01c92875cf655365e6eac06da46
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Thursday, April 3rd, 2025 at 12:10 PM, Andrew Cooper <andrew.cooper3@cit=
rix.com> wrote:

>=20
>=20
> On 03/04/2025 7:23 pm, dmkhn@proton.me wrote:
>=20
> > From: Denis Mukhin dmukhin@ford.com
> >=20
> > The new toolchain baseline knows the VMX instructions,
> > no need to carry the workaround in the code.
> >=20
> > Move asm for vmxoff directly on the only callsite in vmcs.c
>=20
>=20
> Ideally VMXOFF in capitals as it's an instruction name. But, this type
> of thing is more commonly phrased as "Inline __vmxoff() into it's single
> caller", or so.
>=20
> > Updated formatting for all __xxx() calls to be consistent.
>=20
>=20
> I'd suggest "for the other wrappers to be".
>=20
> > Resolves: https://gitlab.com/xen-project/xen/-/work_items/202
> > Signed-off-by: Denis Mukhin dmukhin@ford.com
> > ---
> > xen/arch/x86/arch.mk | 4 +-
> > xen/arch/x86/hvm/vmx/vmcs.c | 2 +-
> > xen/arch/x86/include/asm/hvm/vmx/vmx.h | 119 ++++---------------------
>=20
>=20
> Just as a note, you're CC-ing The Rest, but this is an x86-only change,
> so should really only be CCing myself, Jan and Roger.

Whoops, I need to improve my tooling.

>=20
> > diff --git a/xen/arch/x86/hvm/vmx/vmcs.c b/xen/arch/x86/hvm/vmx/vmcs.c
> > index 1d427100ce..aef746a293 100644
> > --- a/xen/arch/x86/hvm/vmx/vmcs.c
> > +++ b/xen/arch/x86/hvm/vmx/vmcs.c
> > @@ -811,7 +811,7 @@ void cf_check vmx_cpu_down(void)
> >=20
> > BUG_ON(!(read_cr4() & X86_CR4_VMXE));
> > this_cpu(vmxon) =3D 0;
> > - __vmxoff();
> > + asm volatile ("vmxoff" : : : "memory");
>=20
>=20
> asm volatile ( "vmxoff" ::: "memory" );
>=20
> > local_irq_restore(flags);
> > }
> > diff --git a/xen/arch/x86/include/asm/hvm/vmx/vmx.h b/xen/arch/x86/incl=
ude/asm/hvm/vmx/vmx.h
> > index 7c6ba73407..ed6a6986b9 100644
> > --- a/xen/arch/x86/include/asm/hvm/vmx/vmx.h
> > +++ b/xen/arch/x86/include/asm/hvm/vmx/vmx.h
> > @@ -310,97 +292,54 @@ extern uint8_t posted_intr_vector;
> > #define INVVPID_ALL_CONTEXT 2
> > #define INVVPID_SINGLE_CONTEXT_RETAINING_GLOBAL 3
> >=20
> > -#ifdef HAVE_AS_VMX
> > -# define GAS_VMX_OP(yes, no) yes
> > -#else
> > -# define GAS_VMX_OP(yes, no) no
> > -#endif
> > -
> > static always_inline void __vmptrld(u64 addr)
> > {
> > - asm volatile (
> > -#ifdef HAVE_AS_VMX
> > - "vmptrld %0\n"
> > -#else
> > - VMPTRLD_OPCODE MODRM_EAX_06
> > -#endif
> > + asm volatile ( "vmptrld %0\n"
>=20
>=20
> As you're changing the line anyway, this ought to be \n\t. It's
> cosmetic, but comes in handy if you need to read the intermediate assembl=
y.
>=20
> > /* CF=3D=3D1 or ZF=3D=3D1 --> BUG() */
> > UNLIKELY_START(be, vmptrld)
> > _ASM_BUGFRAME_TEXT(0)
> > UNLIKELY_END_SECTION
> > :
> > -#ifdef HAVE_AS_VMX
> > : "m" (addr),
> > -#else
> > - : "a" (&addr),
> > -#endif
> > _ASM_BUGFRAME_INFO(BUGFRAME_bug, LINE, FILE, 0)
> > - : "memory");
> > + : "memory" );
> > }
> >=20
> > static always_inline void __vmpclear(u64 addr)
> > {
> > - asm volatile (
> > -#ifdef HAVE_AS_VMX
> > - "vmclear %0\n"
> > -#else
> > - VMCLEAR_OPCODE MODRM_EAX_06
> > -#endif
> > + asm volatile ( "vmclear %0\n"
> > /* CF=3D=3D1 or ZF=3D=3D1 --> BUG() */
> > UNLIKELY_START(be, vmclear)
> > _ASM_BUGFRAME_TEXT(0)
> > UNLIKELY_END_SECTION
> > :
> > -#ifdef HAVE_AS_VMX
> > : "m" (addr),
> > -#else
> > - : "a" (&addr),
> > -#endif
> > _ASM_BUGFRAME_INFO(BUGFRAME_bug, LINE, FILE, 0)
> > - : "memory");
> > + : "memory" );
> > }
> >=20
> > static always_inline void __vmread(unsigned long field, unsigned long v=
alue)
> > {
> > - asm volatile (
> > -#ifdef HAVE_AS_VMX
> > - "vmread %1, %0\n\t"
> > -#else
> > - VMREAD_OPCODE MODRM_EAX_ECX
> > -#endif
> > + asm volatile ( "vmread %1, %0\n\t"
> > / CF=3D=3D1 or ZF=3D=3D1 --> BUG() */
> > UNLIKELY_START(be, vmread)
> > _ASM_BUGFRAME_TEXT(0)
> > UNLIKELY_END_SECTION
> > -#ifdef HAVE_AS_VMX
> > : "=3Drm" (*value)
> > : "r" (field),
> > -#else
> > - : "=3Dc" (*value)
> > - : "a" (field),
> > -#endif
> > _ASM_BUGFRAME_INFO(BUGFRAME_bug, LINE, FILE, 0)
> > );
>=20
>=20
> Fold this onto the previous line, as you're fixing up all the other
> closing brackets.
>=20
> > @@ -494,24 +422,14 @@ static always_inline void __invvpid(unsigned long=
 type, u16 vpid, u64 gva)
> > } operand =3D {vpid, 0, gva};
> >=20
> > /* Fix up #UD exceptions which occur when TLBs are flushed before VMXON=
. */
>=20
>=20
> I find this comment deeply troubling, but lets not go changing that
> right now.
>=20
> I'm happy to fix this all on commit.

I will appreciate help with that!
Thanks!

>=20
> ~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Apr 03 20:10:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 20:10:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.937253.1338256 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0QtG-0008SQ-2R; Thu, 03 Apr 2025 20:10:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 937253.1338256; Thu, 03 Apr 2025 20:10: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 1u0QtF-0008SJ-VJ; Thu, 03 Apr 2025 20:10:17 +0000
Received: by outflank-mailman (input) for mailman id 937253;
 Thu, 03 Apr 2025 20:10:16 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=JbNy=WV=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u0QtE-0008SD-Ls
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 20:10:16 +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 a836953b-10c7-11f0-9eaa-5ba50f476ded;
 Thu, 03 Apr 2025 22:10:15 +0200 (CEST)
Received: by mail-wr1-x435.google.com with SMTP id
 ffacd0b85a97d-38f2f391864so735140f8f.3
 for <xen-devel@lists.xenproject.org>; Thu, 03 Apr 2025 13:10:15 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39c3020da17sm2620159f8f.64.2025.04.03.13.10.13
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 03 Apr 2025 13:10:13 -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: a836953b-10c7-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1743711015; x=1744315815; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=O42ZT6SypABuH8tKXzQofcKBmF5oCVLd6Sc/wOgFMxk=;
        b=IcEyaSHua5QAv4MYXuBE1YqM5BADKO9tP2Qq714DEX6dzZwuNr5GAn4w/6kYO9bCHz
         jb5gb4J3rrFnwpzn18+i1PlQloWvu6AvdscRjREWWHq40KzHTk2+8TAyB0lzh57c8OHD
         wxq/bGKwZwKwCk+n/acaBvJG1ZqkHou6GFcSw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743711015; x=1744315815;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=O42ZT6SypABuH8tKXzQofcKBmF5oCVLd6Sc/wOgFMxk=;
        b=bqxA5Vn38y4FHGFUv0sR8L7Z/xI3ToBpGmpRdrZI5hcPPAFQQtJEUA/C7fpo4/B0yt
         Un7C330EMOvSW6LtjohTVojJcVyl+PJcXtQk1tTH4HjYUwyhAwxRkHbOJ2wfurOx5pGi
         Dzb8D8w2094XeFwlByg/fZfTVn42V2l91hfg7q1/SSHm1xQpFPaT3eQO55gaglhOS/cw
         AGVqYXwAnUutfOJmG+OmMiWkGjgF/YNrY96r2MK4SMWVdmh6Tg8fFs8z79ZBzMTb5I5V
         sKB4RleFuAJ1ykxjllO8JESCYXkGpB3q4lAmNdzaCOr+S5GJJa0g9hzcmPL/ceuQlT9f
         Xhsg==
X-Forwarded-Encrypted: i=1; AJvYcCWqEukHRtndqhbqNP1Du+fYy1DrpSr2jrnO6scHNSsNTDvt87u10JKW7oJTYfAtpONjj2ZNY50kdAg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxeVWmsmbPume9AtZk9PycbCZS5la9r8EvIbnH94yz/u6WNcOmt
	L/8u3KBltm+hT8LwqeJiMBo39xoEaZ99gHsvdHXR5ZQ7NhxD9Q3R0TMuPc5Myjc=
X-Gm-Gg: ASbGncsTasnotmO0Ja6BNDhF5Zl/DkNQ9eaPkDT79teT2NwcbacpFQZKPn0Cy4kssN0
	WbTPvxAJX+UanSApcuLTTgMnnjWHvV892lTHq1+kRDbesAkUn6u/phK+yPsogVqsqMDOruydLA2
	8UChDHhf3mXNIRecc4Z4uyCPpePGPDnFdsT7TnHA3d7gcC0iyY3NU7tXUtkn72HlVqrFjWMLgvb
	teGBVyzlFu8MZYt52cz8l3xdA6mgbDOws+ZvQrIxZI/rGY8k2glOdN2rGMfGQ8gdXkP/E/dxIMG
	2IZutnj1JzNauMw1V5J4LWv7ehky/cNTEsF8aMnSBWLVrEJohYF7pgUkIMhqKa/v2bwfruOg2so
	qh7XtyBwc9g==
X-Google-Smtp-Source: AGHT+IHdEI200jVEWyXs19WBQinjMOaqrnF9TAzBrSrED0mAwRpb520FNNt8xBBBNEaUb4ApstQx2g==
X-Received: by 2002:a5d:6d82:0:b0:39c:310a:f87e with SMTP id ffacd0b85a97d-39d0de16301mr149238f8f.16.1743711014866;
        Thu, 03 Apr 2025 13:10:14 -0700 (PDT)
Message-ID: <c452a1d7-4a57-4c5f-8a83-36a74ff228ec@citrix.com>
Date: Thu, 3 Apr 2025 21:10:12 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 6/6] x86/vmx: rework VMX wrappers to use `asm goto()`
To: dmkhn@proton.me, xen-devel@lists.xenproject.org
Cc: anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org,
 michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org,
 dmukhin@ford.com
References: <20250403182250.3329498-1-dmukhin@ford.com>
 <20250403182250.3329498-7-dmukhin@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: <20250403182250.3329498-7-dmukhin@ford.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 03/04/2025 7:23 pm, dmkhn@proton.me wrote:
> From: Denis Mukhin <dmukhin@ford.com>
>
> Improve error handling in VMX wrappers by switching to `asm goto()` where
> possible.
>
> vmread_safe() kept as is because the minimally required baseline GCC does
> not support output operands in `asm goto`.
>
> Resolves: https://gitlab.com/xen-project/xen/-/work_items/210
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>

I'd suggest limiting this patch to the asm-goto transformations only.

> ---
>  xen/arch/x86/include/asm/hvm/vmx/vmx.h | 141 +++++++++++++------------
>  1 file changed, 73 insertions(+), 68 deletions(-)
>
> diff --git a/xen/arch/x86/include/asm/hvm/vmx/vmx.h b/xen/arch/x86/include/asm/hvm/vmx/vmx.h
> index ed6a6986b9..19d41f7b90 100644
> --- a/xen/arch/x86/include/asm/hvm/vmx/vmx.h
> +++ b/xen/arch/x86/include/asm/hvm/vmx/vmx.h
> @@ -294,54 +294,57 @@ extern uint8_t posted_intr_vector;
>  
>  static always_inline void __vmptrld(u64 addr)
>  {
> -    asm volatile ( "vmptrld %0\n"
> -                   /* CF==1 or ZF==1 --> BUG() */
> -                   UNLIKELY_START(be, vmptrld)
> -                   _ASM_BUGFRAME_TEXT(0)
> -                   UNLIKELY_END_SECTION
> -                   :
> -                   : "m" (addr),
> -                     _ASM_BUGFRAME_INFO(BUGFRAME_bug, __LINE__, __FILE__, 0)
> -                   : "memory" );
> +    asm goto ( "vmptrld %[addr]\n"
> +               "jbe %l[vmfail]\n\t"

Also cosmetic, but the very final line in the asm block ideally doesn't
want the \n\t.  Except, this tends to be hard to spot because of the way
we use macros such as UNLIKELY_START() or _ASM_EXTABLE() which do just
expand to more strings under the hood.

> +               :
> +               : [addr] "m" (addr)
> +               : "memory"
> +               : vmfail );
> +    return;
> +
> + vmfail:
> +    BUG();
>  }
>  
>  static always_inline void __vmpclear(u64 addr)
>  {
> -    asm volatile ( "vmclear %0\n"
> -                   /* CF==1 or ZF==1 --> BUG() */
> -                   UNLIKELY_START(be, vmclear)
> -                   _ASM_BUGFRAME_TEXT(0)
> -                   UNLIKELY_END_SECTION
> -                   :
> -                   : "m" (addr),
> -                     _ASM_BUGFRAME_INFO(BUGFRAME_bug, __LINE__, __FILE__, 0)
> -                   : "memory" );
> +    asm goto ( "vmclear %[addr]\n"
> +               "jbe %l[vmfail]\n\t"
> +               :
> +               : [addr] "m" (addr)
> +               : "memory"
> +               : vmfail );
> +    return;
> +
> + vmfail:
> +    BUG();
>  }
>  
>  static always_inline void __vmread(unsigned long field, unsigned long *value)
>  {
> -    asm volatile ( "vmread %1, %0\n\t"
> -                   /* CF==1 or ZF==1 --> BUG() */
> -                   UNLIKELY_START(be, vmread)
> -                   _ASM_BUGFRAME_TEXT(0)
> -                   UNLIKELY_END_SECTION
> -                   : "=rm" (*value)
> -                   : "r" (field),
> -                     _ASM_BUGFRAME_INFO(BUGFRAME_bug, __LINE__, __FILE__, 0)
> -        );
> +    bool vmfail;
> +
> +    asm volatile ( "vmread %[field], %[value]\n\t"
> +                    "setbe %[vmfail]\n\t"
> +                    : [value] "=rm" (*value), [vmfail] "=rm" (vmfail)
> +                    : [field] "r" (field)
> +                    : "cc" );
> +    if ( vmfail )
> +        BUG();

This is almost certainly not an improvement in generated code.  You now
need register to hold the boolean, where previously there was a jbe to a
ud2 and no extra state required.

Here's an example https://godbolt.org/z/GG4r1c7bK showing the
difference.   (It also shows up the Clang "rm" constraint bug.  Change
vmfail from "=rm" to "=r" to get sane(er) code generation.)

Also, you've added a "cc" clobber.  This is one thing you don't need on
x86; it's simply assumed, given how many instructions update flags
naturally.

> @@ -369,22 +372,22 @@ static inline enum vmx_insn_errno vmread_safe(unsigned long field,
>  static inline enum vmx_insn_errno vmwrite_safe(unsigned long field,
>                                                 unsigned long value)
>  {
> -    unsigned long ret = VMX_INSN_SUCCEED;
> -    bool fail_invalid, fail_valid;
> +    unsigned long ret;
>  
> -    asm volatile ( "vmwrite %[value], %[field]\n\t"
> -                   ASM_FLAG_OUT(, "setc %[invalid]\n\t")
> -                   ASM_FLAG_OUT(, "setz %[valid]\n\t")
> -                   : ASM_FLAG_OUT("=@ccc", [invalid] "=rm") (fail_invalid),
> -                     ASM_FLAG_OUT("=@ccz", [valid] "=rm") (fail_valid)
> -                   : [field] "r" (field),
> -                     [value] "rm" (value) );
> +    asm goto ( "vmwrite %[value], %[field]\n\t"
> +               "jc %l[vmfail_invalid]\n\t"
> +               "jz %l[vmfail_error]\n\t"
> +               :
> +               : [field] "r" (field), [value] "rm" (value)
> +               :
> +               : vmfail_invalid, vmfail_error );
> +    return VMX_INSN_SUCCEED;
>  
> -    if ( unlikely(fail_invalid) )
> -        ret = VMX_INSN_FAIL_INVALID;
> -    else if ( unlikely(fail_valid) )
> -        __vmread(VM_INSTRUCTION_ERROR, &ret);
> + vmfail_invalid:
> +    return VMX_INSN_FAIL_INVALID;
>  
> + vmfail_error:
> +    __vmread(VM_INSTRUCTION_ERROR, &ret);

Something not technically toolchain cleanup, but is in desperate need of
doing.

__vmread() being void and producing an output by pointer is insane, and
leads to ugly code such as this, even if the compiler can usually fix up
behind the scenes.

It would be lovely to have:

unsigned long vmread(unsigned int field)

which can be wrapped by __vmread() with "*value = vmread(field);" or
so.  (Don't go converting all users; that's a huge task).

Then, this vmfail_error can be simply "return
vmread(VM_INSTRUCTION_ERROR);" and you can drop the ret variable.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Apr 03 20:43:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 20:43:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.937274.1338281 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0RP3-0000kr-P0; Thu, 03 Apr 2025 20:43:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 937274.1338281; Thu, 03 Apr 2025 20: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 1u0RP3-0000kk-MP; Thu, 03 Apr 2025 20:43:09 +0000
Received: by outflank-mailman (input) for mailman id 937274;
 Thu, 03 Apr 2025 20: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=JbNy=WV=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u0RP2-0000ke-Fd
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 20:43:08 +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 3e09fbb3-10cc-11f0-9ffb-bf95429c2676;
 Thu, 03 Apr 2025 22:43:05 +0200 (CEST)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-43cf0d787eeso12978455e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 03 Apr 2025 13:43:05 -0700 (PDT)
Received: from localhost.localdomain (host-92-26-98-202.as13285.net.
 [92.26.98.202]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43ec34a75fcsm27202185e9.11.2025.04.03.13.43.02
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 03 Apr 2025 13:43: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: 3e09fbb3-10cc-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1743712984; x=1744317784; 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=B8biZZLb0imsAKnEG2uJrErB/VMmdMSVfAWSKtlKmXw=;
        b=PLZi5+ycjidGuiO9xD/w3LgfAf2EI4MMW02Y2BWwNEDYtlZhvhOZ3DLKu3pTiy8BSa
         jhVSCtnnAZuoAxobgvin9LsYsShLYvWoD4K1nsp3I/I/ZkROCLjFu/zBlTu2a7EOBi4x
         CcSrjtr1zHOwpoO/jV+Zw1NXDzM1gr0I5dLLs=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743712984; x=1744317784;
        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=B8biZZLb0imsAKnEG2uJrErB/VMmdMSVfAWSKtlKmXw=;
        b=jwwkKLiN8onegTqME7BgIAIKoCFxr52m3FpbgTv8UD/jBfbxs7klvbm3J9N9dlB1im
         vmx+LBrSatKfXooLKkY07/+wR8+FwnA8BfzXVJX9bQ2RhHSFTFhCBKUHx5/UgW66PDtU
         46h6rrpohbONxTb0CNcSq0WYxt5YiN6mAnEowhOfHKi6H6KcYYKm/UJNtG7aKyooOcgO
         iI1tcz/xvABQ+c8FAvr2Hx34v/FDAv4Q9F04f5FAt8JCNuqRb2O8NZr2AB8ORV1cp6Da
         Sr7t/1o7H6Hpbax1I+OUKriAqhxwMs3dohetpBPKlHQPMqIMXSyq+juNouCXxWm7IH15
         7S7Q==
X-Gm-Message-State: AOJu0YwhgmR1zwE8dKwGgWvzOLzA925hM08XNMxPbbhdWHqd/BavPDE9
	sq+AJo0KxQY1iBXky5a4rIw45KwEkBYOS854sLySmsPs1JFz3HGg3VkzfW6UkJxx3KIHOTG2vg0
	J2AY=
X-Gm-Gg: ASbGncudjN4vBh565FL2xyW+qVd40vvkSQpZyGgGh+I+vs2zhR5FpxGe2kaqH61Lc4Q
	LaOJV6aVDAK50TWwEJau9mAP4OVsC7Y1vM3A1rDRU2rOWsMp98vWOtc7PCbGo6iF3UI91CNVN1o
	xhNIGnZNjPpHYg6+aeCd6ffRLMA4a1ogQDJhiteITKMGdfnFK1y/7D9cJrOAE5Bj49XIDULejw9
	7ggh1emK77sONX0xETGEU8+L6WhMdCg0wCnBWNhAgbfsEBkqD8bVlalJ8p+nkBWVWMHawN2ECpz
	Z9mrMyNR7ir53ayl2c4Xg0E1Hql/d3O3MSpqRXEDH9sFITas4eEzaFlWP+ACVHRY2kIKvmW5AXT
	TohWbVBsSQhxWyrCntg==
X-Google-Smtp-Source: AGHT+IE7N4p5c3YvY7qXT0CvWtwzuSDxMKrAwiGswd7+OX8lG/Z7EXeFAtnCIHlcubgfoChJEaJd0Q==
X-Received: by 2002:a05:600c:1819:b0:43c:f895:cb4e with SMTP id 5b1f17b1804b1-43ed0c6b9famr1435045e9.17.1743712984242;
        Thu, 03 Apr 2025 13:43:04 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Nicola Vetrini <nicola.vetrini@bugseng.com>,
	consulting@bugseng.com
Subject: [PATCH] xen: Swap 'const static' for 'static const'
Date: Thu,  3 Apr 2025 21:43:01 +0100
Message-Id: <20250403204301.1658436-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

MISRA C:2012 Ammendment 3 (which is under consideration, but not used by Xen
yet) is more particular about the order of keywords.

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Julien Grall <julien@xen.org>
CC: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
CC: Bertrand Marquis <bertrand.marquis@arm.com>
CC: Michal Orzel <michal.orzel@amd.com>
CC: Nicola Vetrini <nicola.vetrini@bugseng.com>
CC: consulting@bugseng.com
---
 xen/arch/arm/gic-v2.c  | 2 +-
 xen/include/xen/init.h | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/xen/arch/arm/gic-v2.c b/xen/arch/arm/gic-v2.c
index 02043c0d4b1f..b23e72a3d05d 100644
--- a/xen/arch/arm/gic-v2.c
+++ b/xen/arch/arm/gic-v2.c
@@ -1311,7 +1311,7 @@ static void gicv2_do_LPI(unsigned int lpi)
     BUG();
 }
 
-const static struct gic_hw_operations gicv2_ops = {
+static const struct gic_hw_operations gicv2_ops = {
     .info                = &gicv2_info,
     .init                = gicv2_init,
     .secondary_init      = gicv2_secondary_cpu_init,
diff --git a/xen/include/xen/init.h b/xen/include/xen/init.h
index 0a4223833755..abf275f0eb72 100644
--- a/xen/include/xen/init.h
+++ b/xen/include/xen/init.h
@@ -63,9 +63,9 @@ typedef int (*initcall_t)(void);
 typedef void (*exitcall_t)(void);
 
 #define presmp_initcall(fn) \
-    const static initcall_t __initcall_##fn __init_call("presmp") = (fn)
+    static const initcall_t __initcall_##fn __init_call("presmp") = (fn)
 #define __initcall(fn) \
-    const static initcall_t __initcall_##fn __init_call("1") = (fn)
+    static const initcall_t __initcall_##fn __init_call("1") = (fn)
 #define __exitcall(fn) \
     static exitcall_t __exitcall_##fn __exit_call = fn
 

base-commit: befc384d21784affa3daf2abc85b02500e4dc545
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Apr 03 21:04:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 21:04:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.937286.1338291 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0RjW-000608-DZ; Thu, 03 Apr 2025 21:04:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 937286.1338291; Thu, 03 Apr 2025 21:04: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 1u0RjW-000601-As; Thu, 03 Apr 2025 21:04:18 +0000
Received: by outflank-mailman (input) for mailman id 937286;
 Thu, 03 Apr 2025 21:04: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=FCKq=WV=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1u0RjU-0005zv-AB
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 21:04:17 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3075b84d-10cf-11f0-9ffb-bf95429c2676;
 Thu, 03 Apr 2025 23:04:10 +0200 (CEST)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id E39ED4EE0760;
 Thu,  3 Apr 2025 23:04:09 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3075b84d-10cf-11f0-9ffb-bf95429c2676
Authentication-Results: bugseng.com; arc=none smtp.remote-ip=162.55.131.47
ARC-Seal: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; cv=none; t=1743714250;
	b=m65MH6PMh+Z8sP6Yz+fDgP2Gov3kBRHobRa2erME6vUMbXSpxx7vzXm7eagrWQzMf59c
	 t45OASjT+fxNIFRBoA3M7qVzdORDw++tBZqpVpFstrCEj+KSx2kUPDY3zg8/y0gS+jfVI
	 gdMjb81a2KTvc0XsiVtoxVNpx6GwA69WOkjeMCGgPiyB1qTRdVoEa6gwL78ed3/Z2Vr0L
	 TNjL9OhMdWwgdgRNm8sm+E2PEX06vdn0U5aJT/DRtwXt/lGr7o6BqDxw2D8F5Lq99q3Mo
	 KfW1++tpiyqr1gcRq1wbBflwlUuCXRy1fBHFnjDbzdH4tcTO27HkSV24N6awUVGcYsE4b
	 H4hO4kR+E3ngZ5nTHUBx9uPt+3HVdWxA9qNuEovrVEno5ckKaPVkVubuz9yU298upCGXF
	 D9dU0T5ZtM+9O8nXe2+dwj/rTUzBOKXW/vyyaR2V7P8NYpq7tQPS9UdSLFMhHUTUdEQn7
	 +uWd5XtyrD34ub05yHKKJr5K2gSFIQhYoVU/c6jxoAO6Udqr0y0corql3N8cEAjk1eYRj
	 wNhat0ICqCEvq7dxJYo8p5edLPv0NC44fJx+ZEeZjXwGaxesxNwalJTSoP3kWW82Hb6KF
	 c3LGl0M7CUIfRNZsL+bAE3v0GheGdvLlo087/XMUE2wCrg5gjXxGZsNxiGVbb4M=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1743714250;
	h=DKIM-Signature:MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:
	 References:Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=bNKV1CpW/BD9WuAo7027O2LdhCDRUgtWGbEKGY7b5BY=;
	b=vunKxsNRNwoZgcPCVFvhd+682pCGuiqJhqvxmrK61zx4xZpQoGcO1n7x1e1W8YFNBEEH
	 5+WX+MxkrhqNWvY6gF4D0Ip0IwQrv+dtI6/jVwjs+abdP22wCrPMvF6+T3QuIGmvspCY8
	 +4KC8otF77Xv2TjW9dfsxeF9k1KGc+luzexw5XRfIWv53Z3hMtORgQM0PmFOmSBqEP3CO
	 g2SEgMTx7CiUG2zcCV2Nap5l/8BC4DjJNka2V49w+ZWoqkj5eWC88m3bkgB0E7CTunRV6
	 vNAT9OfZMTBA5nQzc3MY2yzXVRIxzkUoav6EvIR7MNlXhWi1sfyEhD52ZacvgHnUxSHAo
	 ktQEDsCw/ROlgTs4o26QHJ5JpQYqIUUzUo+t++o95Qt4G6tb4SecHfSJyrl/MZ52tqn+y
	 8KCK1T6E5ucX6sdia0kdscxcRaunvXYQ4qCHrMph7hjoh+7rC7uank1SvwkUYTWBN9H7Q
	 tXVM5LnCDqzGM4ItQP/9ffUPZLt5IdAEDnZ7tIgqFvXhOIJnHljCNY1A8vddpqOQGK1yh
	 OfjeakZ1+Q1e3wyqqq+eP/dX3YZS/RBRtoAM8iAJirfzUYnY9BteNtF8YreGs1puWhq+I
	 /1UtJ/GyKqMGrrjKNAe/9Ty4R4SMDUcORbpruUWC1t7OUB6a50Z3q/6JjVZ1U+E=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1743714250; bh=2ZKvMUyb4z3UnsmvX2bhdj7iNZfotJQrDzWdLFcDreY=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=g5JgpjNlumeEskw6kOv1vaOz/dm/qUr3/l3z3pm9TMduTAdF5T+EvB2FUeOjUMrHY
	 VwT8pVEFzHFDOlze2sUdvtEY0919llAyxcIuZ6E/qFDyP/lu2m7Etw3Lm0SUdjOeDA
	 zIG3X2Once4xQ7cEJw39vkmamU1Jzc6koOHKdICOKYzu8RMAslNdSFuFdrSGXqmEGZ
	 2QoHsQrsIGNae5kERavZqvQayKSiE8JUrf0PqMB5qyObeJCtgdjlcdqjf3HzYALZnN
	 a64uskjl8PgGJ3f9vibNuRYqpGegFPA5udk4n36PoeOa+u1Ypydy0NvZMYEhJ0cWoy
	 nfhqUzGzgR6lA==
MIME-Version: 1.0
Date: Thu, 03 Apr 2025 23:04:09 +0200
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>, Julien
 Grall <julien@xen.org>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>, Michal Orzel
 <michal.orzel@amd.com>, consulting@bugseng.com
Subject: Re: [PATCH] xen: Swap 'const static' for 'static const'
In-Reply-To: <20250403204301.1658436-1-andrew.cooper3@citrix.com>
References: <20250403204301.1658436-1-andrew.cooper3@citrix.com>
Message-ID: <5e92df092cc323b061716004fdd41c33@bugseng.com>
X-Sender: nicola.vetrini@bugseng.com
Organization: BUGSENG s.r.l.
Content-Type: text/plain; charset=UTF-8;
 format=flowed
Content-Transfer-Encoding: 8bit

On 2025-04-03 22:43, Andrew Cooper wrote:
> MISRA C:2012 Ammendment 3 (which is under consideration, but not used 
> by Xen
                ^ typo
> yet) is more particular about the order of keywords.
> 
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Any specific reason not to give [1] and [2] the same treatment? Other 
than that, looks good to me.

[1] 
https://saas.eclairit.com:3787/fs/var/local/eclair/xen-project.ecdf/xen-project/people/bugseng/xen/ECLAIR_normal/MISRA_C_AMD3/X86_64/9616508934/PROJECT.ecd;/sources/xen/arch/x86/genapic/x2apic.c.html#R4145_1
[2] 
https://saas.eclairit.com:3787/fs/var/local/eclair/xen-project.ecdf/xen-project/people/bugseng/xen/ECLAIR_normal/MISRA_C_AMD3/X86_64/9616508934/PROJECT.ecd;/sources/xen/arch/x86/hvm/dom0_build.c.html#R13937_1

> ---
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Roger Pau Monné <roger.pau@citrix.com>
> CC: Stefano Stabellini <sstabellini@kernel.org>
> CC: Julien Grall <julien@xen.org>
> CC: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
> CC: Bertrand Marquis <bertrand.marquis@arm.com>
> CC: Michal Orzel <michal.orzel@amd.com>
> CC: Nicola Vetrini <nicola.vetrini@bugseng.com>
> CC: consulting@bugseng.com
> ---
>  xen/arch/arm/gic-v2.c  | 2 +-
>  xen/include/xen/init.h | 4 ++--
>  2 files changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/xen/arch/arm/gic-v2.c b/xen/arch/arm/gic-v2.c
> index 02043c0d4b1f..b23e72a3d05d 100644
> --- a/xen/arch/arm/gic-v2.c
> +++ b/xen/arch/arm/gic-v2.c
> @@ -1311,7 +1311,7 @@ static void gicv2_do_LPI(unsigned int lpi)
>      BUG();
>  }
> 
> -const static struct gic_hw_operations gicv2_ops = {
> +static const struct gic_hw_operations gicv2_ops = {
>      .info                = &gicv2_info,
>      .init                = gicv2_init,
>      .secondary_init      = gicv2_secondary_cpu_init,
> diff --git a/xen/include/xen/init.h b/xen/include/xen/init.h
> index 0a4223833755..abf275f0eb72 100644
> --- a/xen/include/xen/init.h
> +++ b/xen/include/xen/init.h
> @@ -63,9 +63,9 @@ typedef int (*initcall_t)(void);
>  typedef void (*exitcall_t)(void);
> 
>  #define presmp_initcall(fn) \
> -    const static initcall_t __initcall_##fn __init_call("presmp") = 
> (fn)
> +    static const initcall_t __initcall_##fn __init_call("presmp") = 
> (fn)
>  #define __initcall(fn) \
> -    const static initcall_t __initcall_##fn __init_call("1") = (fn)
> +    static const initcall_t __initcall_##fn __init_call("1") = (fn)
>  #define __exitcall(fn) \
>      static exitcall_t __exitcall_##fn __exit_call = fn
> 
> 
> base-commit: befc384d21784affa3daf2abc85b02500e4dc545

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


From xen-devel-bounces@lists.xenproject.org Thu Apr 03 21:10:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 21:10:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.937298.1338303 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0RpJ-0007V4-3o; Thu, 03 Apr 2025 21:10:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 937298.1338303; Thu, 03 Apr 2025 21:10:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0RpI-0007Ux-Uf; Thu, 03 Apr 2025 21:10:16 +0000
Received: by outflank-mailman (input) for mailman id 937298;
 Thu, 03 Apr 2025 21:10:15 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=JbNy=WV=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u0RpH-0007Ur-SY
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 21:10:15 +0000
Received: from mail-wm1-x32f.google.com (mail-wm1-x32f.google.com
 [2a00:1450:4864:20::32f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 087e501b-10d0-11f0-9eaa-5ba50f476ded;
 Thu, 03 Apr 2025 23:10:13 +0200 (CEST)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-43948021a45so12891115e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 03 Apr 2025 14:10:13 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39c3020d980sm2752115f8f.61.2025.04.03.14.10.11
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 03 Apr 2025 14:10: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: 087e501b-10d0-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1743714612; x=1744319412; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=TW8Oroj/D4tDzD3qVELBJ6TjX64+nF5h2ffccKh1nBc=;
        b=anjJYv+YOa874TnXkyG1AtUEUVi2+d6BtOHJSD/SvcnmfVGv1EzSP7hpLn25Ils7Q3
         uBE5JpALugzacA6i69vDubg6mgxvZfbeIs2wa9fQA538E0tFx+15b4KUxkrPTgbSNbTx
         2lkiKrDRsinelQxsRy9jRQ0GarlNvl9VamIhc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743714612; x=1744319412;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=TW8Oroj/D4tDzD3qVELBJ6TjX64+nF5h2ffccKh1nBc=;
        b=ooH/sawsXohJHoq1JaioM3FEDUE90hDAAVnROhl75TpK995VoVYx7jv3lWJo9rg+jM
         FF541ARVSibGa13Hq9bo1Q7Lkjye3/ZvqIf9RI2edfRdCl1korzmRI6sh51aBVD3ZXx4
         x0tQpXdyRzraLTfPhgo1hIO5yrZ7YtttZmeD0OvjYJQ8eiHpPujJXfGIjHn44gwoe38+
         UhnqgvAK10SvWayGFPRZWWLpJ2UqNmvcRS7gTYHiCdD1Q3N0y1Ph3KC60KHy2hgOTg2w
         EPM8VCn/Te8t1IcW1LTHh686EaTp+olZS8ApQaR8gazd5cnAdIusmlhMC4yZGdyvVlQ7
         +95w==
X-Gm-Message-State: AOJu0Yw28TWaBJTSFMbcVAQXdtG8P4tepoHqWWGqqJKyWiIyjbD+/JOK
	dCE3KC6a309MwyjCnTeVJEcRebwKbD0RZBPXvg5yfqA4DcxOIfP67C4o/Dnk/OY=
X-Gm-Gg: ASbGncsiv9FatxpjT36ioWpmWfPZj28zCUAbjiSsxMMtvv+KFJtFJ10a60CTNltB8em
	cepMN8SYwuftq00TxWULSIuj+CGQ4azwX3HmtwxruWsj1dsbqbhx9AfrLlNYMrg0P2hULbzetHG
	kolXXUeRMUcUO6gJ7ICRFKDuCz/Wl1hug6Cx2Zq4iCL4KdO6TUG4WamZTcLbVSdZEOf0isaZhfX
	3TqBbcJzrbwjjv8SHMWSxdU4oP4HmTBk9so7amSw9rZ85MfjKPYEVuln/OCXBN4MNJk1omIdhMk
	asWRUeng9RgxCW5i7IyFY2BwMZGwyGSiTHay05JBLzOBxGwVLREahIHjxSLGcsHOpjqkWuIb4Vt
	uT0gFlgwtWg==
X-Google-Smtp-Source: AGHT+IE9J3Y7cAR/abYni8N7xA7IBS/suZQtN0NT21A9PxblcnyN9Cp+qvzPooiTan7B97n31YW9DA==
X-Received: by 2002:a05:600c:3d94:b0:43c:fceb:91f with SMTP id 5b1f17b1804b1-43ed0bc8d58mr2542905e9.11.1743714612399;
        Thu, 03 Apr 2025 14:10:12 -0700 (PDT)
Message-ID: <99c9bfee-cf7a-4a38-a3bd-2475197ba3f7@citrix.com>
Date: Thu, 3 Apr 2025 22:10:10 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen: Swap 'const static' for 'static const'
To: Nicola Vetrini <nicola.vetrini@bugseng.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>, Volodymyr Babchuk
 <Volodymyr_Babchuk@epam.com>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>, consulting@bugseng.com
References: <20250403204301.1658436-1-andrew.cooper3@citrix.com>
 <5e92df092cc323b061716004fdd41c33@bugseng.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: <5e92df092cc323b061716004fdd41c33@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 03/04/2025 10:04 pm, Nicola Vetrini wrote:
> On 2025-04-03 22:43, Andrew Cooper wrote:
>> MISRA C:2012 Ammendment 3 (which is under consideration, but not used
>> by Xen
>                ^ typo
>> yet) is more particular about the order of keywords.
>>
>> No functional change.
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>
> Any specific reason not to give [1] and [2] the same treatment? Other
> than that, looks good to me.
>
> [1]
> https://saas.eclairit.com:3787/fs/var/local/eclair/xen-project.ecdf/xen-project/people/bugseng/xen/ECLAIR_normal/MISRA_C_AMD3/X86_64/9616508934/PROJECT.ecd;/sources/xen/arch/x86/genapic/x2apic.c.html#R4145_1
> [2]
> https://saas.eclairit.com:3787/fs/var/local/eclair/xen-project.ecdf/xen-project/people/bugseng/xen/ECLAIR_normal/MISRA_C_AMD3/X86_64/9616508934/PROJECT.ecd;/sources/xen/arch/x86/hvm/dom0_build.c.html#R13937_1

Oh, inattention to detail with my `git grep`.

I'll update to include these.  Thanks.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Apr 03 21:41:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 21:41:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.937318.1338312 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0SJm-0007xh-BY; Thu, 03 Apr 2025 21:41:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 937318.1338312; Thu, 03 Apr 2025 21:41: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 1u0SJm-0007xa-8Z; Thu, 03 Apr 2025 21:41:46 +0000
Received: by outflank-mailman (input) for mailman id 937318;
 Thu, 03 Apr 2025 21:41: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=JbNy=WV=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u0SJk-0007xU-Oz
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 21:41:44 +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 6f082bbb-10d4-11f0-9eaa-5ba50f476ded;
 Thu, 03 Apr 2025 23:41:43 +0200 (CEST)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-43d07ca6a80so7190435e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 03 Apr 2025 14:41:43 -0700 (PDT)
Received: from localhost.localdomain (host-92-26-98-202.as13285.net.
 [92.26.98.202]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39c301b760bsm2794473f8f.55.2025.04.03.14.41.41
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 03 Apr 2025 14:41: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: 6f082bbb-10d4-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1743716502; x=1744321302; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=rUR1hjnfI2SJbwOWct6yvBmR39QiKHrxlQlFmPq5U4c=;
        b=UaDMjHcdK2uIkNoYlmX9okudcetL4EZux2YHhL+AMqiXxuNMe1sUZWiJ0Fe29mWjw7
         ZaajsDrJma2w7Q97KV0lwWVbUoqV9UesZWs+fVs4ay7lD2kisis28eOMavRPF8lAMO8z
         1311ade2q41nf/Iq40HRR9x3ZvQSaPrjScr3E=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743716502; x=1744321302;
        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=rUR1hjnfI2SJbwOWct6yvBmR39QiKHrxlQlFmPq5U4c=;
        b=PIMTe09t9j2y9TOVJFiC2TjqIIZTLWj8IBV4f2maJv/avVzHgrFOn8ZsdjtIK8X2CQ
         E2CYrML+Vdyx46tE7Smwp8O2XJ7CodJyKBVz3NRfmgVOI5oFxSAXLPdJC76NgTp4uUW/
         2JI/s2lKcTchXhyIbWf1aYGWumy8w701Cj8InqdJgy2ZG+uH8Elx6gm/rvgG+7MxISIs
         Is7VO2Q5+4/OE/jbloH9fbm7U5RYajH5H6kKsh9qIGGw3KpTPOKSTTkVfqzdK9bkut/W
         NXAEqDHn3mZOxePRJMD7qRivkMY1+6fJhliASWh/bw8nIY6FskfT6YlcFiR/Vq2nL0+C
         of1w==
X-Gm-Message-State: AOJu0YzlowtpoNsb+zCQYnSqw8QBmjf+8QVur3bI/6URq0joiJnV6Kq6
	2gKSCqlUADlVEgKWvDdCeiRlu2OgwG8la1AsSYtAebNa5zxAfrUafGX60KYDLZPGWwOX+KUa9j5
	2xz0=
X-Gm-Gg: ASbGncuAXglXoUZuM016WfutRpO0c5ISzmhMuks7fuPudBppunLuzi5pU2yrzebBbck
	k+0qlWEhzQpJ7DEAiuYbL0rc8MFgaC8bGjKkaI+lWqZkHM5ll9axUUuSTPKZy7Jf3Bp/7xRgfE8
	vtEQuly2RSlgiui/UIWin+2/bTNFiAQESdqHCb4H0ySMbkTaacb6U9/79QK//kivDtRvwPIStBN
	MG1y+28o/rm24dpDhEn6V5Aqx1wk0YXRQQ5nIPv4NgFW2gfjyjU97EQOIM8744u9SKvw9FclG4U
	vvrY6PKSWwjXmHj19pzEwx/scjkPyiV+ewBd3lLbd8eZkMld3aRLEYSbqnJ7JJud6CGVaNQypkg
	aF/zcm8rN0XFfPPY/4w==
X-Google-Smtp-Source: AGHT+IHCykEcsylS6NMJv4p0nnIz6MtOy71k6bWh5aUT36LJcHYC3kIWfLkf2yOV9wJp9csmkaHTgw==
X-Received: by 2002:a5d:64c3:0:b0:390:f9d0:5e4 with SMTP id ffacd0b85a97d-39cb3595eb1mr604540f8f.21.1743716502629;
        Thu, 03 Apr 2025 14:41:42 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Nicola Vetrini <nicola.vetrini@bugseng.com>,
	consulting@bugseng.com
Subject: [PATCH v2] xen: Consistently use 'static' first
Date: Thu,  3 Apr 2025 22:41:39 +0100
Message-Id: <20250403214139.1671954-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250403204301.1658436-1-andrew.cooper3@citrix.com>
References: <20250403204301.1658436-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

MISRA C:2012 Amendment 3 (which is under consideration, but not used by Xen
yet) is more particular about having the storage class specifier first.

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Julien Grall <julien@xen.org>
CC: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
CC: Bertrand Marquis <bertrand.marquis@arm.com>
CC: Michal Orzel <michal.orzel@amd.com>
CC: Nicola Vetrini <nicola.vetrini@bugseng.com>
CC: consulting@bugseng.com

v2:
 * Fix x2apic_mode and orders[] too.
---
 xen/arch/arm/gic-v2.c         | 2 +-
 xen/arch/x86/genapic/x2apic.c | 4 ++--
 xen/arch/x86/hvm/dom0_build.c | 4 ++--
 xen/include/xen/init.h        | 4 ++--
 4 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/xen/arch/arm/gic-v2.c b/xen/arch/arm/gic-v2.c
index 02043c0d4b1f..b23e72a3d05d 100644
--- a/xen/arch/arm/gic-v2.c
+++ b/xen/arch/arm/gic-v2.c
@@ -1311,7 +1311,7 @@ static void gicv2_do_LPI(unsigned int lpi)
     BUG();
 }
 
-const static struct gic_hw_operations gicv2_ops = {
+static const struct gic_hw_operations gicv2_ops = {
     .info                = &gicv2_info,
     .init                = gicv2_init,
     .secondary_init      = gicv2_secondary_cpu_init,
diff --git a/xen/arch/x86/genapic/x2apic.c b/xen/arch/x86/genapic/x2apic.c
index 74a6d808ac30..1d55eb6b8a41 100644
--- a/xen/arch/x86/genapic/x2apic.c
+++ b/xen/arch/x86/genapic/x2apic.c
@@ -216,9 +216,9 @@ static struct notifier_block x2apic_cpu_nfb = {
 static int8_t __initdata x2apic_phys = -1;
 boolean_param("x2apic_phys", x2apic_phys);
 
-enum {
+static enum {
    unset, physical, mixed
-} static __initdata x2apic_mode = unset;
+} x2apic_mode __initdata = unset;
 
 static int __init cf_check parse_x2apic_mode(const char *s)
 {
diff --git a/xen/arch/x86/hvm/dom0_build.c b/xen/arch/x86/hvm/dom0_build.c
index daf1b6f88b14..9fd68df7b936 100644
--- a/xen/arch/x86/hvm/dom0_build.c
+++ b/xen/arch/x86/hvm/dom0_build.c
@@ -91,10 +91,10 @@ static int __init pvh_populate_memory_range(struct domain *d,
                                             unsigned long start,
                                             unsigned long nr_pages)
 {
-    struct {
+    static const struct {
         unsigned long align;
         unsigned int order;
-    } static const __initconst orders[] = {
+    } orders[] __initconst = {
         /* NB: must be sorted by decreasing size. */
         { .align = PFN_DOWN(GB(1)), .order = PAGE_ORDER_1G },
         { .align = PFN_DOWN(MB(2)), .order = PAGE_ORDER_2M },
diff --git a/xen/include/xen/init.h b/xen/include/xen/init.h
index 0a4223833755..abf275f0eb72 100644
--- a/xen/include/xen/init.h
+++ b/xen/include/xen/init.h
@@ -63,9 +63,9 @@ typedef int (*initcall_t)(void);
 typedef void (*exitcall_t)(void);
 
 #define presmp_initcall(fn) \
-    const static initcall_t __initcall_##fn __init_call("presmp") = (fn)
+    static const initcall_t __initcall_##fn __init_call("presmp") = (fn)
 #define __initcall(fn) \
-    const static initcall_t __initcall_##fn __init_call("1") = (fn)
+    static const initcall_t __initcall_##fn __init_call("1") = (fn)
 #define __exitcall(fn) \
     static exitcall_t __exitcall_##fn __exit_call = fn
 

base-commit: befc384d21784affa3daf2abc85b02500e4dc545
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Apr 03 21:46:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 21:46:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.937339.1338338 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0SOD-0000LS-6y; Thu, 03 Apr 2025 21:46:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 937339.1338338; Thu, 03 Apr 2025 21: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 1u0SOD-0000LL-3t; Thu, 03 Apr 2025 21:46:21 +0000
Received: by outflank-mailman (input) for mailman id 937339;
 Thu, 03 Apr 2025 21:46: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=GOX3=WV=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1u0SOB-0000LE-VQ
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 21:46:20 +0000
Received: from NAM10-BN7-obe.outbound.protection.outlook.com
 (mail-bn7nam10on20627.outbound.protection.outlook.com
 [2a01:111:f403:2009::627])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 103b2a84-10d5-11f0-9ffb-bf95429c2676;
 Thu, 03 Apr 2025 23:46:14 +0200 (CEST)
Received: from BN9PR03CA0966.namprd03.prod.outlook.com (2603:10b6:408:109::11)
 by IA0PR12MB8304.namprd12.prod.outlook.com (2603:10b6:208:3dc::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.44; Thu, 3 Apr
 2025 21:46:10 +0000
Received: from BN1PEPF0000468D.namprd05.prod.outlook.com
 (2603:10b6:408:109:cafe::3a) by BN9PR03CA0966.outlook.office365.com
 (2603:10b6:408:109::11) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8534.53 via Frontend Transport; Thu,
 3 Apr 2025 21:46:09 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BN1PEPF0000468D.mail.protection.outlook.com (10.167.243.138) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8606.22 via Frontend Transport; Thu, 3 Apr 2025 21:46:09 +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, 3 Apr
 2025 16:46:09 -0500
Received: from fedora.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; Thu, 3 Apr 2025 16:46:08 -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: 103b2a84-10d5-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=cGbCaYBw1LO1LhnntkmTHW5s91C+0TiPj7LGN7WbyiKJjBegeEoqFl4VS78dBQJOzBACh3MqnyX0SF1aPvRSQDB3X+hw+XXesn4y2eUrgQ+t4Y/6sRJ2L3CkY3hFKeneUhvvKDfMFkJ3WlkMyqdCiDPB+rXTCun514QBxIkQkKzTx+49iErXV39SVFUeVzMye87kVD9h0RwI672DkWoyrBfy/cdsznv0LsOb7Ptn8AVJOuRuxvRvURv0jKc4Z1hmIpyYS7c8pqWEDLNnVCpaOsz1mHZzRQcCxNi6FKkfdCNJ8pOc4reRraTEUy3dbyKmDF/6Iyd7zl1NWnDPatrgFQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=JY7pwv1wK1CqRWVrF/jA8JHdhYkcf/QyWiB4jUMBuYM=;
 b=fME0h7heg5BIj6s+doAzT5ih3UaePocjJR/wZ2CSBjMieE5bqzg0NKdp61b+9uuihgrXnADQyls79usdo1OxZQ6abT/snEfSn0ITcTOiQBVOpFw2WO9A/70O/pE2+9suRPVXbrg0BZ0dd5O5j5y5tQXonAzsgy5uWdLvOY/JvOik+WR2DtHHw/PCIOtUqNcFRJTRBeUkb+TodEgDAkfVc8Kewu/c4lIzcwejjL8omitpo7YmyZO0IdI/snDbJ4LajqpDmcLl89OvpGQy1/M8mreh4wzZhHau0i4sgIhP/3W0ZbP4KztBAWYIF+AMVyvkWiYqs/W8GkfIc64d5tSu8A==
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=JY7pwv1wK1CqRWVrF/jA8JHdhYkcf/QyWiB4jUMBuYM=;
 b=Kkm4heJlzXvuDMnCVF0R9n3DUVcTFl0hTQ/f8dTCNNCYN03xqfmlLCL+ClKC0/K38nr5tFCv1LHE8SKIxqHbxjJzIoyvi4jTjAKhnDTeH5rAFndmUvEPcAbsfnhR/GzWnXOlVSWrF8JoG48zv1X51JUyk5EaBqh66dNu6cEPLMw=
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>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, "Volodymyr
 Babchuk" <Volodymyr_Babchuk@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, "Jan
 Beulich" <jbeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>
Subject: [PATCH v3 0/7] ARM split hardware and control domains
Date: Thu, 3 Apr 2025 17:46:01 -0400
Message-ID: <20250403214608.152954-1-jason.andryuk@amd.com>
X-Mailer: git-send-email 2.49.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
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: BN1PEPF0000468D:EE_|IA0PR12MB8304:EE_
X-MS-Office365-Filtering-Correlation-Id: 70a9255c-b9e1-4e20-6e9f-08dd72f8f1f8
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?82VW6m3CMHC2x7/ulmZf+tinh0XKSfWMV8C1Kl9bl+V4J2aab3h6+J9IDkiw?=
 =?us-ascii?Q?r1Xkk0vY+si9xuAJB2Un6YM0WNFnnmCtZqE8PUBgSqSfBK7e63R65cqFYurL?=
 =?us-ascii?Q?GeqXkVG0pywFylPYUy18kINLUqx+J+h57rAJLyF8wq6nJ9mRO7k5McPY14r+?=
 =?us-ascii?Q?/fUUCnT2hCiQ+M2x1IkWeFxmCKzUdJ0QSe2konIadi+QHwrHMmSiPkknaI1O?=
 =?us-ascii?Q?/76olfqgzmTZhjOJVFrChBBAP3ad9nhRSnxQEWphthRoXZS39gPfIF43fH8K?=
 =?us-ascii?Q?faOrsV6268vFTg5lPliWYu9aQIPXtt+aUZJAyWzrbLe54Wgi1rRIkZOnsjQK?=
 =?us-ascii?Q?nBunSGYfq4GXt51OPf+4tYvXxGpr2lh6w3CWvhBAiVuaCwyrqF8YbnLnr4T9?=
 =?us-ascii?Q?gLbosFDuogsVvpLuC9I/Y+WX1H7zRpM0VAhLwO5Dn6qdf0eJI4rjwH+JU6su?=
 =?us-ascii?Q?iWYx4aTIv189vXxGpBR00vggKgxGmwpS108DYyinXjshfuhZJhgOHJY3dWuG?=
 =?us-ascii?Q?0mROJYPCk5OXl6UMA7kzxJUS6uGQa+fZVG0dezBMy2jjdIQ8Lxr/FKoy/rl1?=
 =?us-ascii?Q?9KjVtgn0A5/42r5Zke5fuw3F2HHJT9RsUof2vxen1dzsWObGTQ2TpeOmQ7KI?=
 =?us-ascii?Q?sVgvFB2bLPg3nEwdDfA0Iwdmw9XwxSk8SLxFxdCLl5Yn6mDeIL4N1Rgr2FiF?=
 =?us-ascii?Q?3ndlFZmTktDIp1gcLYUO3wM6M03Jq7Zd7ZD/3pmuEFe2PvCxt5cqU0TDnL4b?=
 =?us-ascii?Q?KFSO84o134FdEgNH1TeYIYL71wz6kI9j6PUM3tvQ4wcssliKvnF7pG+F+afC?=
 =?us-ascii?Q?W7z1r0snjVSCX1YRtYBAYHO6IgB0uk+fCKPgWMV+BfTb9U/q2fQ7s2/yR+Qi?=
 =?us-ascii?Q?6Qkr+KaFppJ3oMMdF8D7KT1za9NMZGvWFb2P7vPbfbO13HuHwNfoz6CR+xy7?=
 =?us-ascii?Q?BV5oFaRornpZa1bZIyrWu5fdDX/rQfTrc2R+7WhvTy00Jin3qCZ3lI2YziAj?=
 =?us-ascii?Q?fk8AaiXKIxdLF9fx5NwWcqhwe+d3RHtnS/cvUs2zgz94nzWrSU0Kt7B7V+fG?=
 =?us-ascii?Q?IZpEyDQukdmqkGePw1oYaN7adj/kpiJaWlpZubv++ZYxjcKbqREY69QLaWKA?=
 =?us-ascii?Q?UQr5t43ijXtUoL9uQWM/HhaMt8sctlWRIOFeKZxZjBg2o+tx2BjgxgyLLghd?=
 =?us-ascii?Q?Mm2GORUoQLOhqf5FQDpMGQBfKAHbn03fk6USqkwVsVxsR4LHACdp1RmWi1/+?=
 =?us-ascii?Q?6yqd5dJmf5/PHw+zcBrzu/krobBhVXD9fSi+3tME1qdVLjF/bkW+CQrLBAng?=
 =?us-ascii?Q?D2IOWiuYPd4iUi94Y7cHb4Qkkx19u3+gM3x2CLsoUEPwjCLoWEgc7s/Pzr2V?=
 =?us-ascii?Q?AdTCJzMV/hIpkJiWjotmtxiFCyyKKFYxOR9MOvxcde/P9ocqlnRyyQNSGQGp?=
 =?us-ascii?Q?KDZ+Ayix9WWejeZfCVst0dLBxc9j5w7iGlqFLtu/tSYKG3TteP5NMEp8FsQW?=
 =?us-ascii?Q?fo1RyaLUgvOm+Uk=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: 03 Apr 2025 21:46:09.3101
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 70a9255c-b9e1-4e20-6e9f-08dd72f8f1f8
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:
	BN1PEPF0000468D.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PR12MB8304

This series implements separation of dom0 into separate hardware and
control domains.  It uses the capabilities idea from Hyperlaunch -
hardware, control, and xenstore.  It's been tested with  dom1 as
control, dom2 as a domU, and dom3 as hardware and xenstore.

To keep things more managable, this v3 is only the ARM hypervisor changes,
and one associated init-dom0less change.  The series is slightly
re-ordered to move xenstore changes ahead of adding the capabilities.

"xen/arm: dom0less use has_dtb local variable" is a new patch to
slightly simplify "xen/arm: Add capabilities to dom0less".

Setting hardware domain as domid 0 is removed.

I've been unable to run a combined control/xenstore.  Linux console
output stops shortly after the domain determines it should be XS_LOCAL.
I have not investigated further.

Daniel P. Smith (1):
  xen: introduce hardware domain create flag

Jason Andryuk (6):
  xen/arm: dom0less hwdom construction
  xen/arm: dom0less delay xenstore initialization
  xen/arm: dom0less seed xenstore grant table entry
  tools/init-dom0less: Only seed legacy xenstore grants
  xen/arm: dom0less use has_dtb local variable
  xen/arm: Add capabilities to dom0less

 docs/misc/arm/device-tree/booting.txt     |  11 ++
 tools/helpers/init-dom0less.c             |  10 +-
 xen/arch/arm/dom0less-build.c             | 195 ++++++++++++++++------
 xen/arch/arm/domain.c                     |   3 +-
 xen/arch/arm/domain_build.c               |  11 +-
 xen/arch/arm/include/asm/dom0less-build.h |   2 +
 xen/arch/arm/include/asm/domain_build.h   |   3 +-
 xen/arch/x86/setup.c                      |   3 +-
 xen/common/domain.c                       |   7 +-
 xen/common/grant_table.c                  |  14 ++
 xen/include/public/bootfdt.h              |  31 ++++
 xen/include/xen/domain.h                  |   2 +
 xen/include/xen/grant_table.h             |   7 +
 13 files changed, 238 insertions(+), 61 deletions(-)
 create mode 100644 xen/include/public/bootfdt.h

-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Thu Apr 03 21:46:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 21:46:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.937340.1338349 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0SOE-0000ZO-G5; Thu, 03 Apr 2025 21:46:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 937340.1338349; Thu, 03 Apr 2025 21: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 1u0SOE-0000ZH-Bg; Thu, 03 Apr 2025 21:46:22 +0000
Received: by outflank-mailman (input) for mailman id 937340;
 Thu, 03 Apr 2025 21:46: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=GOX3=WV=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1u0SOD-0000LK-Ba
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 21:46:21 +0000
Received: from NAM12-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam12on20621.outbound.protection.outlook.com
 [2a01:111:f403:2417::621])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 12fde235-10d5-11f0-9eaa-5ba50f476ded;
 Thu, 03 Apr 2025 23:46:19 +0200 (CEST)
Received: from BN9PR03CA0965.namprd03.prod.outlook.com (2603:10b6:408:109::10)
 by MW4PR12MB6973.namprd12.prod.outlook.com (2603:10b6:303:20a::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.44; Thu, 3 Apr
 2025 21:46:14 +0000
Received: from BN1PEPF0000468D.namprd05.prod.outlook.com
 (2603:10b6:408:109:cafe::1b) by BN9PR03CA0965.outlook.office365.com
 (2603:10b6:408:109::10) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8534.54 via Frontend Transport; Thu,
 3 Apr 2025 21:46:12 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BN1PEPF0000468D.mail.protection.outlook.com (10.167.243.138) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8606.22 via Frontend Transport; Thu, 3 Apr 2025 21:46:12 +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, 3 Apr
 2025 16:46:12 -0500
Received: from fedora.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; Thu, 3 Apr 2025 16:46: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: 12fde235-10d5-11f0-9eaa-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=b8ZOCFLhuKmVaOxB16h06jOVjyPqBlt/5NgG9yL6q8i4N995CAZWo3rOFB0hUbqriNn/rRHuCBdixVb4549JpU5lvl95uEgqvD92tR8HaIcCIgBNFQa3gztlLF9ajravJIK4jIQBPBY+BZRRfJpRVD0B7lX8UYXB98wWMHjdz1eiltN79Ne/a22Vw4luNvGssNdptOIGPk29QuiS92/bWmeCxNc83nN+tAdxmmM2qowXNUYKj0SCg7tZYNaGtWFhxPagIg7C1E7UOtPIHHd0LQK94LWO+sIQNKYhnsmz8qnVa9Z/6/7CL7nkb/fB+DaP52shT1PFz9HgJ514GIIMmg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=4qO9SiZnuBr9WdpBWU0DoSKy3ddphr2m8uxBGiGeFiI=;
 b=NTymbzKSqWIgbYWLTSCl7+2APxtfz+6madXzetxFojlXTBtrboGCC5fvNISpXdH9PRDe5xDZhBJn0hdHDmLRmff1XNoJnT1USdGHgdbrvYGW259ym2iqi4W6d9Z91yhSv0VvuVFEkY49x/d7hjzr34XBR5XtLTKxaNPKVvf9tO7TkagvPXFMCtiGt2kmzwyoVhYj+Q7pcWg2gtRvkeEpiCoSGXdoSGvyy0ru2gD/hfuvy/eD2YK9DSm+/YlKS7RAZKJ8B5lWGCiW43vHAEnaBZMObXTYmWH9iVdyl5aL0To7u26vFyPG/EVx+ZricD3RzHO3e95ZRrRR69Eyy9KqaQ==
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=4qO9SiZnuBr9WdpBWU0DoSKy3ddphr2m8uxBGiGeFiI=;
 b=u61FTkQTX9o9Fx1VFVBQDjK1qM/NjfFDOJ1WQw77qc7uqINzvJgoWTgBIJV9gpLqaqEU/HrnH2rBvWeW9YHE/dD6/rh5cAeUM2I1GK6pVcZxtXPv6NYbVCrI3+Mz641fRxPkM4ryK8IokqnZ+Tsr2eF10l4UskWdlUZCNE651WA=
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>, 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/7] xen/arm: dom0less hwdom construction
Date: Thu, 3 Apr 2025 17:46:03 -0400
Message-ID: <20250403214608.152954-3-jason.andryuk@amd.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250403214608.152954-1-jason.andryuk@amd.com>
References: <20250403214608.152954-1-jason.andryuk@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
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: BN1PEPF0000468D:EE_|MW4PR12MB6973:EE_
X-MS-Office365-Filtering-Correlation-Id: c20e8eec-c082-4e90-fdda-08dd72f8f412
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?BM6H8rdaJOKpirfc6hC/bkhW0EONp+w6sUlPhjOo4+2ujs1ZS/uU79IfhE9Q?=
 =?us-ascii?Q?jwpo8w+2iIRnndLgqzl+ia+dyCk6YaUCNCuE6td8nvxWAQPrL1zpNNgiE7zX?=
 =?us-ascii?Q?knHJpC+lNXw/EpNFtE0/Q0kYlQ3uvAxzCPZjNwCQyZMfNkWOPcX6HBK0xnb2?=
 =?us-ascii?Q?gFz4Boij6uPetIB84XRNTO42L0vov5k+b0rTxk8WX4Ifvwc7Lyt4nivWXaNk?=
 =?us-ascii?Q?uZ9xlEY73Fuikd85+CsTWhyYA+G8aHLCzBHZxNDGGNGnuBO0ALI1iYl8Ws/6?=
 =?us-ascii?Q?Gf3o2U4M02Z0G/cxzUBS7x6ZqEU5yt7jHMHbfJHEdaCdB199G7aifmJBmAyi?=
 =?us-ascii?Q?8/V3EvqiwAbZVw1yx4z2hB14f4O/DdQzXs+wMTF1tET8o71yHE86ga+kHqOb?=
 =?us-ascii?Q?EtJX2k4VnE3Spj0Tec9Rtnkokn+fh8Z+YA9dPkWNbXFP6GA4lpVIs/ZaaFtJ?=
 =?us-ascii?Q?CcRcUCiN26cuSQYoes6HbO43SRda8HEHDuyY0XBXXbsBaKLlK6NTfEV1XeU6?=
 =?us-ascii?Q?OpJjiEXSUcZ/WqaQg6D+0tlgZP8rHCTAKtCX3G12ev+gU4SM33jaz2M84JxM?=
 =?us-ascii?Q?gTUuKnmZR7bWYwa0DD3o3wDw5QcxRI8Rc6FVVvgNQKaqL6PUlZgWNVK4lZiS?=
 =?us-ascii?Q?9rYivHEG+B7UOyuu99oaTs9em8ADt3SBM5ijVtBVLpI2s5SCsL48ejQvAt61?=
 =?us-ascii?Q?14FePsgTpRfT+2CtrTiLC5y8vTRwKzlgY6jHc37Jrx8H06rfOp4HI7dqb7Ly?=
 =?us-ascii?Q?ZCI2dA1yZN4i1+covuYYR32Qq8jSHsrFfoaeb5/ebyDwkgIQHc8adOi1VwFE?=
 =?us-ascii?Q?N3lIVFwrsQk8jB5M4aXhgPm2YZWsGZGvwZlWI0Tzi7ZIdh3s4s8yqsp1R3r8?=
 =?us-ascii?Q?knZZUr+1mDCZnEMPXW/c3EKAIbss9v3us6Bki5kq3zFUEATS+BYgONKn/U6M?=
 =?us-ascii?Q?npWEaV7hWFaZ5aKBFrChEisb9s/4+D76K7z/aLXE4fnfJZQ8WsUvKC+9zbcR?=
 =?us-ascii?Q?+dC3O4y2C5PPTQavr+EZDGaYsqDNrJJ18WTeHzEZDJf3zOJ4ec3L3+11+TkH?=
 =?us-ascii?Q?K4kRmJJaWgNKmUey8zKV6n81Ud+OmegIVo1UF7VFKMnZ44KbBYOkkebFQ9FV?=
 =?us-ascii?Q?ScC3KCey118YS39pByXsGv6RvLWajWXwuU/Rh/YydJyTu6q59hZPsAjXUTe1?=
 =?us-ascii?Q?F4zBznQUjJJ5zHmdx89XTbcvkUqBmZv77S2MTm6C5pA/EGnZzZkkK70Ii9O/?=
 =?us-ascii?Q?Kf2tHgabaHv6j84yhfaZCZAgruasm1QGFeYSvjop92PfpVD7VIJoMWpBpTpi?=
 =?us-ascii?Q?+jL9Nqm9II5V0SvujRLS4S0l/kfFOsVKZZ8gNnD1jovQYg14sv33ew2u503+?=
 =?us-ascii?Q?DWkvoUuBeLJvVy5aC4kDA83LJ7RALfxR34iMQGEDRn4mxKJsmKF4yJcADIaw?=
 =?us-ascii?Q?mCOlvdwpm0bF535XB/1wzKaqbdN6vctNzha2O+vW1tZp1MzJ2hRMzJTnwQ98?=
 =?us-ascii?Q?84MFyycDjYxwiow=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: 03 Apr 2025 21:46:12.8390
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: c20e8eec-c082-4e90-fdda-08dd72f8f412
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:
	BN1PEPF0000468D.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR12MB6973

When creating a hardware domain, have the dom0less code call
construct_hwdom() which is shared with the dom0 code.  The hardware
domain requires building that best matches the dom0 build path.  Re-use
it to keep them in sync.

The device tree node of the dom0less config is now passed into
construct_hwdom().  dom0 uses /chosen for process_shm while a hwdom will
use the value from its dom0less device tree node.

Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
---
v3:
Rebase on process_shm_chosen() removal
---
 xen/arch/arm/dom0less-build.c           | 57 ++++++++++++++-----------
 xen/arch/arm/domain_build.c             |  7 +--
 xen/arch/arm/include/asm/domain_build.h |  3 +-
 3 files changed, 39 insertions(+), 28 deletions(-)

diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
index bd15563750..7bc6a6c4d7 100644
--- a/xen/arch/arm/dom0less-build.c
+++ b/xen/arch/arm/dom0less-build.c
@@ -929,36 +929,45 @@ static int __init construct_domU(struct domain *d,
     /* type must be set before allocate memory */
     d->arch.type = kinfo.type;
 #endif
-    if ( !dt_find_property(node, "xen,static-mem", NULL) )
-        allocate_memory(d, &kinfo);
-    else if ( !is_domain_direct_mapped(d) )
-        allocate_static_memory(d, &kinfo, node);
-    else
-        assign_static_memory_11(d, &kinfo, node);
-
-    rc = process_shm(d, &kinfo, node);
-    if ( rc < 0 )
-        return rc;
-
-    /*
-     * Base address and irq number are needed when creating vpl011 device
-     * tree node in prepare_dtb_domU, so initialization on related variables
-     * shall be done first.
-     */
-    if ( kinfo.vpl011 )
+    if ( is_hardware_domain(d) )
     {
-        rc = domain_vpl011_init(d, NULL);
+        rc = construct_hwdom(&kinfo, node);
         if ( rc < 0 )
             return rc;
     }
+    else
+    {
+        if ( !dt_find_property(node, "xen,static-mem", NULL) )
+            allocate_memory(d, &kinfo);
+        else if ( !is_domain_direct_mapped(d) )
+            allocate_static_memory(d, &kinfo, node);
+        else
+            assign_static_memory_11(d, &kinfo, node);
 
-    rc = prepare_dtb_domU(d, &kinfo);
-    if ( rc < 0 )
-        return rc;
+        rc = process_shm(d, &kinfo, node);
+        if ( rc < 0 )
+            return rc;
 
-    rc = construct_domain(d, &kinfo);
-    if ( rc < 0 )
-        return rc;
+        /*
+         * Base address and irq number are needed when creating vpl011 device
+         * tree node in prepare_dtb_domU, so initialization on related variables
+         * shall be done first.
+         */
+        if ( kinfo.vpl011 )
+        {
+            rc = domain_vpl011_init(d, NULL);
+            if ( rc < 0 )
+                return rc;
+        }
+
+        rc = prepare_dtb_domU(d, &kinfo);
+        if ( rc < 0 )
+            return rc;
+
+        rc = construct_domain(d, &kinfo);
+        if ( rc < 0 )
+            return rc;
+    }
 
     domain_vcpu_affinity(d, node);
 
diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index b8f282ff10..0a329f9f5e 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -2305,10 +2305,11 @@ static int __init construct_dom0(struct domain *d)
     if ( rc < 0 )
         return rc;
 
-    return construct_hwdom(&kinfo);
+    return construct_hwdom(&kinfo, NULL);
 }
 
-int __init construct_hwdom(struct kernel_info *kinfo)
+int __init construct_hwdom(struct kernel_info *kinfo,
+                           const struct dt_device_node *node)
 {
     struct domain *d = kinfo->d;
     int rc;
@@ -2327,7 +2328,7 @@ int __init construct_hwdom(struct kernel_info *kinfo)
 
     if ( acpi_disabled )
     {
-        rc = process_shm(d, kinfo, NULL);
+        rc = process_shm(d, kinfo, node);
         if ( rc < 0 )
             return rc;
     }
diff --git a/xen/arch/arm/include/asm/domain_build.h b/xen/arch/arm/include/asm/domain_build.h
index 134290853c..17619c875d 100644
--- a/xen/arch/arm/include/asm/domain_build.h
+++ b/xen/arch/arm/include/asm/domain_build.h
@@ -13,7 +13,8 @@ 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 construct_hwdom(struct kernel_info *kinfo);
+int construct_hwdom(struct kernel_info *kinfo,
+                    const struct dt_device_node *node);
 int domain_fdt_begin_node(void *fdt, const char *name, uint64_t unit);
 int make_chosen_node(const struct kernel_info *kinfo);
 int make_cpus_node(const struct domain *d, void *fdt);
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Thu Apr 03 21:46:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 21:46:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.937341.1338353 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0SOE-0000cm-Ol; Thu, 03 Apr 2025 21:46:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 937341.1338353; Thu, 03 Apr 2025 21: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 1u0SOE-0000cS-Jk; Thu, 03 Apr 2025 21:46:22 +0000
Received: by outflank-mailman (input) for mailman id 937341;
 Thu, 03 Apr 2025 21:46: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=GOX3=WV=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1u0SOD-0000LK-Iq
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 21:46:21 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on20630.outbound.protection.outlook.com
 [2a01:111:f403:2418::630])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 135ad057-10d5-11f0-9eaa-5ba50f476ded;
 Thu, 03 Apr 2025 23:46:19 +0200 (CEST)
Received: from BL1PR13CA0070.namprd13.prod.outlook.com (2603:10b6:208:2b8::15)
 by MN0PR12MB5883.namprd12.prod.outlook.com (2603:10b6:208:37b::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8583.42; Thu, 3 Apr
 2025 21:46:16 +0000
Received: from BN1PEPF0000468A.namprd05.prod.outlook.com
 (2603:10b6:208:2b8:cafe::9c) by BL1PR13CA0070.outlook.office365.com
 (2603:10b6:208:2b8::15) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.8 via Frontend Transport; Thu, 3
 Apr 2025 21:46:16 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BN1PEPF0000468A.mail.protection.outlook.com (10.167.243.135) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8606.22 via Frontend Transport; Thu, 3 Apr 2025 21:46:16 +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, 3 Apr
 2025 16:46:16 -0500
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; Thu, 3 Apr
 2025 16:46:15 -0500
Received: from fedora.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; Thu, 3 Apr 2025 16:46:15 -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: 135ad057-10d5-11f0-9eaa-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=vMwJyq38Kfn82exiLooYw0ox6OrkhIhMSdHSYTVI2fI5bWlh8ztAXGV+LmvqYXBn/HfLZeeG8ojU/Bc+X7sUSRCzPPZUXL54GJ/GKRrrS0VbCeP0c3vBx7fGmR9TFb7fgXe3VG74f4MxbLT5j8gPnUmf0+vMT3FK9zdiji4LA7l2GRYdvf7OlacBeLozO7pYMYhpCCXyIIZp+QyNscpuX9muBU53GQK2bUNTcTM53a+KPygppE59wewY0UUfRhJJFiZ3+iZEJgxe9ZKRUe7LgReGzFEkzVFiEYYznkIghglg0hg/hq7kumVc7DS7CxbMLU7sUwBVlsFCwvuvlHL3zg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=HIwhjfknntHy51daW0G7gVn2WkUksiIVEhJto7dMW3I=;
 b=RIUcyTW6EOQzX74SYvWFD7nNUz6PaI2w/g/Zvs2ly3UQpEjOaOSE2z2It4fKlSDogcw1qTXg33klRRMbZzogwYT/MmdA1mEsUOWonfzFbqVWz5jh0ilrklcprXJ3SLus+xwHsuqWCWgR/wuwYNwEhOAnPrXhnzaBJKd3QjErXktD0tGh6rm6fBUDHxJU/RNG4ugR3QkxiW9ktDo4x8VS8i8D+58mgffe9TAUcKECva6Kx6+mTJvHy4uK8JNz8BPzmWr8eXN2c3lNDWmgw1M1JGoGRA9sHMMvzVmXHQrSdTrnAUHQbR5zyAk6JF2jwbik68FnCkUDJPLdIblVgg2ZQQ==
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=HIwhjfknntHy51daW0G7gVn2WkUksiIVEhJto7dMW3I=;
 b=zDMPJGnlCWc6DiXreBiV1hT18/9ROXNk/Rfek9W8xzvG3/2PX2n0TTZiX40o1DQhTkiTZ6A+6XyMltPng/Uo7eeslsRmJ8tAVcDNvB7L2HtgGs75U0d2jmuIkJRBVgUVtpJH5e3doU7mulCpmYhHinmPXZnObSfG2EZSAZO+p6M=
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 v3 5/7] tools/init-dom0less: Only seed legacy xenstore grants
Date: Thu, 3 Apr 2025 17:46:06 -0400
Message-ID: <20250403214608.152954-6-jason.andryuk@amd.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250403214608.152954-1-jason.andryuk@amd.com>
References: <20250403214608.152954-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: BN1PEPF0000468A:EE_|MN0PR12MB5883:EE_
X-MS-Office365-Filtering-Correlation-Id: 743ec4a8-fe24-4f99-d049-08dd72f8f632
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|376014|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?7LUODd+DJM4ySzKY+o7Habc7/hKMUNDAdGfoOiqeZAtji4ldFpdruLuA9GDB?=
 =?us-ascii?Q?i9TX5t/kT7C8Ql78Od8WLrD0ycRru1OLmYUdJBEFRMM6pi5WoMYNNMfoQ/bY?=
 =?us-ascii?Q?F33bMzk1sOND5f3HlWspV/c9mQrgyyVuX7kym+kt9jxEpyFOMfTpvQQfU1va?=
 =?us-ascii?Q?Iwz89nDWIYOB+z3aB5SHyiYq4p1vTlPke3nUw2LfwWy+iGeC8EUCHMOoq8WH?=
 =?us-ascii?Q?F2qZXMc+T3FWHMkqtvZvXxJgSzEUIBwvqGw5RHjaAMlX9TpvwuT/Ma0DoRae?=
 =?us-ascii?Q?JL/Qjrq/0Cdhk2HAyF5aaoNLpOB9otZTyC5LjTB9ae5+6zWV6HmJQHyuUREf?=
 =?us-ascii?Q?UM8pRhM9VHs1kYNPV1LN1pajuMIxh4+CHGLPn/VVu67ZZ5thB/lvIwajth8I?=
 =?us-ascii?Q?sIS3czOLae9MXxle2j7XpkcqvEs5TmcpK58ivpKhz531Pzxb30AGBz5JOreN?=
 =?us-ascii?Q?so2aDjG1wpqPcFqtUC/wMk211Odmm436E/v6b49GBWuiTMLti2vJJlB7dlEw?=
 =?us-ascii?Q?d+OT8RQO2xbsGGiqeGfK+xykYN6oxKzAUxDXRGBybtaZD0wFWTyB1tHiisj3?=
 =?us-ascii?Q?Yy2Tk9HLElFYUAZ2DfmBRQ25Fc3G1jZafWP9Rs9nzt9wHZpTNfpbhBrlOLtk?=
 =?us-ascii?Q?3DM42CXPLLTF8gPST0R2MBYfqBu7eVUaoj4yGXNEPdpjnMT3j8dDKHRn79ZF?=
 =?us-ascii?Q?xBVT/K03CSW/mNDrkRp/A4UVPGT0gXCum5iBn/p6a97z/qGYF3JGmIHtI7ED?=
 =?us-ascii?Q?OY/p2mSrhlgcQH6nr+GaAKMHiFjdlOYERPQPl1JBYEeXXjK9HQ0JMMe0Au/N?=
 =?us-ascii?Q?/zcBtkgErKGiQ9frDv9Axzq1nHxfIh5pt5HRacbiwJBMmrqpsJKB7j/8xqvd?=
 =?us-ascii?Q?sLqTGWyiCpzdFffj1j4jev8ArHn0fnsGTxs5Mf85Fbb6CrjBqracHdWuxGXy?=
 =?us-ascii?Q?jQatnidlAPNUmhF0FOMox98chxRU2aPAmtGS/Q5ciwO0KF0j3mU9jn6Nl3Qs?=
 =?us-ascii?Q?G6U/JLl+wV41N5AbMOQ/F+eifupkkKveryDItYCzPdNs30Gd8qC1z+VqWWod?=
 =?us-ascii?Q?DAE707M2CWpgpYn1zGFpFV8+wpwVoxY1yqqSt1/S4Du96yWKdNXgS5Z0HiRt?=
 =?us-ascii?Q?uuY+qoAFpwUozyloFmGrON8UvjuvJDGiGkOxeL8CpzbEMrnqsdHbg1xWhrYf?=
 =?us-ascii?Q?4TVsplsVTpLFF0xs6U6wo/w7a1RkrS9yv7xOvwQ/3dPmtx3DvrXrN8sB9cpi?=
 =?us-ascii?Q?liyVIQz08ncV9i0/wTE5qIzZqfL3nviWxT2byISzkszfxaWUHoXLlB8YIy/5?=
 =?us-ascii?Q?neW8r+9bgFc0vDss3LGWf+nTKbE+G16bz9FsGTmQHsNj/qK3fiTg0DPTfVRR?=
 =?us-ascii?Q?RJyu/MT3eRCO9Jd5gO9QMTWAKWUidxoF8rlumzEg9eYPJcOAIpdNJE1hPG+S?=
 =?us-ascii?Q?ll9V7zkEq6NCR9WPdiJ+JPpMIeGyvbc9wkHeWSK2WpX0Z+50YysWTq8EFXmR?=
 =?us-ascii?Q?qlq0RXSHNg0vwJ4=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)(376014)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Apr 2025 21:46:16.4035
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 743ec4a8-fe24-4f99-d049-08dd72f8f632
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:
	BN1PEPF0000468A.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN0PR12MB5883

The hardware domain is unable to seed a control domain, but we want the
control domain to use xenstore.  Rely on the hypervisor to seed dom0less
grant table entries for Xenstore, so this seeding is unnecessary.

However, that only works for the new xenstore late init.  The legacy
protocol which uses init-dom0less to populate the page still needs to
seed the grant.

Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
---
 tools/helpers/init-dom0less.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/tools/helpers/init-dom0less.c b/tools/helpers/init-dom0less.c
index 17579fe2e8..91edf17b6c 100644
--- a/tools/helpers/init-dom0less.c
+++ b/tools/helpers/init-dom0less.c
@@ -286,12 +286,12 @@ static int init_domain(struct xs_handle *xsh,
                 xenstore_pfn);
         if (rc < 0)
             return rc;
-    }
 
-    rc = xc_dom_gnttab_seed(xch, info->domid, true,
-                            (xen_pfn_t)-1, xenstore_pfn, 0, 0);
-    if (rc)
-        err(1, "xc_dom_gnttab_seed");
+        rc = xc_dom_gnttab_seed(xch, info->domid, true,
+                                (xen_pfn_t)-1, xenstore_pfn, 0, 0);
+        if (rc)
+               err(1, "xc_dom_gnttab_seed");
+    }
 
     libxl_uuid_generate(&uuid);
     xc_domain_sethandle(xch, info->domid, libxl_uuid_bytearray(&uuid));
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Thu Apr 03 21:46:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 21:46:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.937343.1338378 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0SOH-0001Hr-C4; Thu, 03 Apr 2025 21:46:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 937343.1338378; Thu, 03 Apr 2025 21:46: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 1u0SOH-0001Gw-8g; Thu, 03 Apr 2025 21:46:25 +0000
Received: by outflank-mailman (input) for mailman id 937343;
 Thu, 03 Apr 2025 21: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=GOX3=WV=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1u0SOF-0000LE-HL
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 21:46:23 +0000
Received: from NAM12-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam12on2062b.outbound.protection.outlook.com
 [2a01:111:f403:2417::62b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 14737550-10d5-11f0-9ffb-bf95429c2676;
 Thu, 03 Apr 2025 23:46:21 +0200 (CEST)
Received: from BN9PR03CA0974.namprd03.prod.outlook.com (2603:10b6:408:109::19)
 by SJ0PR12MB7036.namprd12.prod.outlook.com (2603:10b6:a03:483::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.44; Thu, 3 Apr
 2025 21:46:15 +0000
Received: from BN1PEPF0000468D.namprd05.prod.outlook.com
 (2603:10b6:408:109:cafe::f3) by BN9PR03CA0974.outlook.office365.com
 (2603:10b6:408:109::19) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8534.54 via Frontend Transport; Thu,
 3 Apr 2025 21:46:14 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BN1PEPF0000468D.mail.protection.outlook.com (10.167.243.138) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8606.22 via Frontend Transport; Thu, 3 Apr 2025 21:46:14 +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, 3 Apr
 2025 16:46:13 -0500
Received: from fedora.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; Thu, 3 Apr 2025 16:46:13 -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: 14737550-10d5-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=QRf2VebMF5S1bHZBdMQunS8hhCiYkMAg3Q3HHbBuZefPpAbgwZzEh12hLaq3DqY8cUl0u93tTtzJAWM6PlPQEZpHOabJ2PMAzUSUGXsQFwd8x7oqWg/NJex1onLc1zZYchGKfHpiOBpSG0kEsYaFTCE1vNrp4ZUxAGrm18deNWY3mwwjQAxfMfznCtdcqGNiEHzI6U/xXnqGypdjP023rPHdVLM4UFLUTkCl8JKnswcLyfYBxiF7iYvATN84D4xevjRh4JtKvRsO/E6e+YcqufaN1NwtgHiUeXowqT0JAJCzccSjtWQjhv0MzabqNN2uAq4mEWVSQVtl6ZOUI5Pvxw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=IVPsqWJnhdLF5+hV3lvpBxyMDiOJWv0qpQ+/oTy6wHE=;
 b=nD8PK1l+GqlEC40Oilr86lVqCoQrNFRxOberUeDGAo2ORuX04htUZUVmr3lAlb6HSU3QnTFDa8kYeE03hjdXwtryoQ1QV/0xw+qNEPnr+xIgHK3o5uaBHtiOSzJZA3oPlM3murkXGDpiC2HhfoKxkiuPITAgyVsQPPB/L8u5gfpYyA0bBxPjvFXWqbW7iRB9ynXRP7vy0KsFuJ0jgA70R+5W1P+Z65M14H60dlt5obeATuJGwZmDH91FpTxPF71J6Fri04d5doXhdOwhcfPD6YWjBcb6zFzvh0U92asn6vop27enTkOelnIxcjRAbSkD1t+n+7Dw/h3jkUy36W4KzQ==
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=IVPsqWJnhdLF5+hV3lvpBxyMDiOJWv0qpQ+/oTy6wHE=;
 b=prZDrcmdOUtIS67VAhVDhz9wgEriC2arxJnhQzpgACbWdhjY8zUg7U6ZzU6Fx3jkYIZUndaLrhun+hK1zGAxB6IeCmWwgiu6YPeVArCwFv+LRtwP+MpgcXv20GfaYc9TqW5cKJtwQOiFMB/8DfesIGXn3NWa2TcAFe0nDXgPhc0=
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>, 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 3/7] xen/arm: dom0less delay xenstore initialization
Date: Thu, 3 Apr 2025 17:46:04 -0400
Message-ID: <20250403214608.152954-4-jason.andryuk@amd.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250403214608.152954-1-jason.andryuk@amd.com>
References: <20250403214608.152954-1-jason.andryuk@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
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: BN1PEPF0000468D:EE_|SJ0PR12MB7036:EE_
X-MS-Office365-Filtering-Correlation-Id: abf76064-2bf0-4408-088a-08dd72f8f52e
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?20doH1yBm+i64k+YI78my7UtMG0QjhfHpkamU0LVuwdyw+IHy1JItNuoFygm?=
 =?us-ascii?Q?ZKjDAhOI3yZpxHqh/50zWFsXINXOEWiLJIwvgsmd1pJeRhWuZlr95PRf4nP4?=
 =?us-ascii?Q?Uz5JKQht/Zw6yRtusrbHFUCy67QdII595LItQ8L8hJ2EqtFpE3wGO4ryuCca?=
 =?us-ascii?Q?uM/ZM2IsTKitdfHViHKY7zCM1rrL3Je3d2eo42tXBnYctMZZFnHMSqFwlhYO?=
 =?us-ascii?Q?JFUZOdHN2Hk/scMj+OMhA4CYN+YOatHgkdzdtMjJQCa0R9ch2l5lb3Mj/VYk?=
 =?us-ascii?Q?/ZOU5e5B5VvzOjaOuMLPTs6qzat4FrFp96eO2IyZ2vjiyl8433IWCN2ejEqT?=
 =?us-ascii?Q?S18vecQ8a8Yv0EK1HZCeGUsUPzQ4yWIKbsUycfBCWV6HEBC5sYckVmuLvBFf?=
 =?us-ascii?Q?QPVmsjsDySb2DNIBrhC+N7s4QCaMSCyOa1HifNqYRgKuLP3alfwPA6NwSDmu?=
 =?us-ascii?Q?rKojrDxbimuymcN1BGRoR4YnW3nEbGNkLjaBBdZCVxR/FWaGawWKFnKsMwMa?=
 =?us-ascii?Q?actP8R2eGF7ZL7ABIpJY2aqAqfb4GMhIY2erfk6d2/fWBiBlAtl2skQ2K1UL?=
 =?us-ascii?Q?tE7zGMRpMkgEZvu88z29uO5KxlQ64Tjn08YUiumH2eWnfaufmrghu7R7JZ1W?=
 =?us-ascii?Q?K0WDu8KXWNk9vJbcFCpf9Xy3n027aam7qQaGdLQvQxuwop8Cz+jRdTsobqBn?=
 =?us-ascii?Q?NtZJsw76lq9WH/RL9ItuQYU02m4LnT2S1ZnYJi/E8xpCRfNSSOtEWYaqedHU?=
 =?us-ascii?Q?rDQl9n+WuhejKYF6CZYGZRv8ThpyxXoI41yqBwNp1zmfZTBcBQPazUzo+tll?=
 =?us-ascii?Q?BDfp1oVQyiTfl64WiUgkjZGFSqBXVnKavOPXlRr99c6KGb1MH3LV8I4OuX29?=
 =?us-ascii?Q?M7VmfzTAsEvJ9AfBRvitctvgWYUp2IW93mMRwn+toYq4x5OBB2K0DI/SEhb9?=
 =?us-ascii?Q?NAHlWq6ACbQoYg4nRRmksMkHoHLrX2Gha0O8heDCzA5whWiXu2ggpHoEypDn?=
 =?us-ascii?Q?nvtdP5e4lh+G3023qtf5EPxriXh5J9+qTu/IKxY1vnbej969t10VQwbLnGfC?=
 =?us-ascii?Q?tsbu/JWaKW87+HQbPsCt3eiwPDkAE305GNcRSfr9znVgCAI76JSkF8B0S7z0?=
 =?us-ascii?Q?RXRpFIbbsGHq6devSD5ecwaHICnIGrV6VtaGgKwwVHlmUEI/VCq2cgcLxIft?=
 =?us-ascii?Q?8ZlXVfA6zlK9DKd9w1ynenFscyL7SLmXT31M1MWQe0M93V86OWa+jGewboYM?=
 =?us-ascii?Q?/AoU96iGNYJNJhBihHrWnuS2e6ks5goWBVPxvZ7rA03QwWL955IcD88ZK6Ml?=
 =?us-ascii?Q?I0JqYRPpqm7MwarPw4gMviYpPwyHKE3knIfep5VZ2Wua0AOVC/x/vMga8cY/?=
 =?us-ascii?Q?YntPDdQ2SNgH9oo/E1nzuSZiy+nA2f9QABGyG8KVlfFloXnnPcaCSkCxqMey?=
 =?us-ascii?Q?+bnSkJpPJRixWgPKWKBVifYnjjqjvxrVjL2+nFge6zS3xwHN1h/eBcJrXkrA?=
 =?us-ascii?Q?6N41WKD0bWa9J/8=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)(82310400026)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Apr 2025 21:46:14.6937
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: abf76064-2bf0-4408-088a-08dd72f8f52e
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:
	BN1PEPF0000468D.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR12MB7036

To allocate the xenstore event channel and initialize the grant table
entry, the xenstore domid is neeed.  A dom0 is created before the domUs,
so it is normally available through hardware_domain.  With capabilities
and dom0less, the xenstore domain may not be created first.

Keep the population of the page and HVM_PARAM_STORE_PFN in the normal
domain construction, but delay event channel creation and grant seeding
to after all domUs are created.  HVM_PARAM_STORE_PFN now serves as
indication to setup xenstore since the device tree is no longer
immediately available.  0 means no xenstore.  ~0ULL means legacy so only
the event channel needs setup, and any other value means to seed the
page.

dom0 needs to set xs_domid when it is serving as the xenstore domain.

The domain running xenstored needs to be the handler for VIRQ_DOM_EXC,
so set that as well - it otherwise defaults to hardware domain.

Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
---
v3:
Use uint64_t to check for xenstore pfn read from HVM_PARAM
Rebase after mem paging changes

v2:
Re-order ahead of seeding.
Fix created type in commit message
Change set_xs_domid to set_xs_domain
Set xenstore domain as VIRQ_DOM_EXC handler
---
 xen/arch/arm/dom0less-build.c             | 67 +++++++++++++++++------
 xen/arch/arm/domain_build.c               |  2 +
 xen/arch/arm/include/asm/dom0less-build.h |  2 +
 3 files changed, 53 insertions(+), 18 deletions(-)

diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
index 7bc6a6c4d7..bb8cc3be43 100644
--- a/xen/arch/arm/dom0less-build.c
+++ b/xen/arch/arm/dom0less-build.c
@@ -20,6 +20,15 @@
 #include <asm/static-memory.h>
 #include <asm/static-shmem.h>
 
+static domid_t __initdata xs_domid = DOMID_INVALID;
+static bool __initdata need_xenstore;
+
+void __init set_xs_domain(struct domain *d)
+{
+    xs_domid = d->domain_id;
+    set_global_virq_handler(d, VIRQ_DOM_EXC);
+}
+
 bool __init is_dom0less_mode(void)
 {
     struct bootmodules *mods = &bootinfo.modules;
@@ -679,7 +688,7 @@ static int __init alloc_xenstore_evtchn(struct domain *d)
     int rc;
 
     alloc.dom = d->domain_id;
-    alloc.remote_dom = hardware_domain->domain_id;
+    alloc.remote_dom = xs_domid;
     rc = evtchn_alloc_unbound(&alloc, 0);
     if ( rc )
     {
@@ -745,16 +754,10 @@ static int __init alloc_xenstore_params(struct kernel_info *kinfo)
     struct domain *d = kinfo->d;
     int rc = 0;
 
-    if ( kinfo->dom0less_feature & (DOM0LESS_XENSTORE | DOM0LESS_XS_LEGACY) )
-    {
-        ASSERT(hardware_domain);
-        rc = alloc_xenstore_evtchn(d);
-        if ( rc < 0 )
-            return rc;
+    if ( (kinfo->dom0less_feature & (DOM0LESS_XENSTORE | DOM0LESS_XS_LEGACY))
+                                 == (DOM0LESS_XENSTORE | DOM0LESS_XS_LEGACY) )
         d->arch.hvm.params[HVM_PARAM_STORE_PFN] = ~0ULL;
-    }
-
-    if ( kinfo->dom0less_feature & DOM0LESS_XENSTORE )
+    else if ( kinfo->dom0less_feature & DOM0LESS_XENSTORE )
     {
         rc = alloc_xenstore_page(d);
         if ( rc < 0 )
@@ -764,6 +767,30 @@ static int __init alloc_xenstore_params(struct kernel_info *kinfo)
     return rc;
 }
 
+static void __init initialize_domU_xenstore(void)
+{
+    struct domain *d;
+
+    if ( xs_domid == DOMID_INVALID )
+        return;
+
+    for_each_domain( d )
+    {
+        uint64_t gfn = d->arch.hvm.params[HVM_PARAM_STORE_PFN];
+        int rc;
+
+        if ( gfn == 0 )
+            continue;
+
+        if ( is_xenstore_domain(d) )
+            continue;
+
+        rc = alloc_xenstore_evtchn(d);
+        if ( rc < 0 )
+            panic("%pd: Failed to allocate xenstore_evtchn\n", d);
+    }
+}
+
 static void __init domain_vcpu_affinity(struct domain *d,
                                         const struct dt_device_node *node)
 {
@@ -899,17 +926,13 @@ static int __init construct_domU(struct domain *d,
          rc == -ENODATA ||
          (rc == 0 && !strcmp(dom0less_enhanced, "enabled")) )
     {
-        if ( hardware_domain )
-            kinfo.dom0less_feature = DOM0LESS_ENHANCED;
-        else
-            panic("At the moment, Xenstore support requires dom0 to be present\n");
+        need_xenstore = true;
+        kinfo.dom0less_feature = DOM0LESS_ENHANCED;
     }
     else if ( rc == 0 && !strcmp(dom0less_enhanced, "legacy") )
     {
-        if ( hardware_domain )
-            kinfo.dom0less_feature = DOM0LESS_ENHANCED_LEGACY;
-        else
-            panic("At the moment, Xenstore support requires dom0 to be present\n");
+        need_xenstore = true;
+        kinfo.dom0less_feature = DOM0LESS_ENHANCED_LEGACY;
     }
     else if ( rc == 0 && !strcmp(dom0less_enhanced, "no-xenstore") )
         kinfo.dom0less_feature = DOM0LESS_ENHANCED_NO_XS;
@@ -1156,7 +1179,15 @@ void __init create_domUs(void)
         if ( rc )
             panic("Could not set up domain %s (rc = %d)\n",
                   dt_node_name(node), rc);
+
+        if ( d_cfg.flags & XEN_DOMCTL_CDF_xs_domain )
+            set_xs_domain(d);
     }
+
+    if ( need_xenstore && xs_domid == DOMID_INVALID )
+        panic("xenstore requested, but xenstore domain not present\n");
+
+    initialize_domU_xenstore();
 }
 
 /*
diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index 0a329f9f5e..270a6b97e4 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -2408,6 +2408,8 @@ void __init create_dom0(void)
     rc = construct_dom0(dom0);
     if ( rc )
         panic("Could not set up DOM0 guest OS (rc = %d)\n", rc);
+
+    set_xs_domain(dom0);
 }
 
 /*
diff --git a/xen/arch/arm/include/asm/dom0less-build.h b/xen/arch/arm/include/asm/dom0less-build.h
index 5864944bda..b0e41a1954 100644
--- a/xen/arch/arm/include/asm/dom0less-build.h
+++ b/xen/arch/arm/include/asm/dom0less-build.h
@@ -9,6 +9,7 @@
 
 void create_domUs(void);
 bool is_dom0less_mode(void);
+void set_xs_domain(struct domain *d);
 
 #else /* !CONFIG_DOM0LESS_BOOT */
 
@@ -17,6 +18,7 @@ static inline bool is_dom0less_mode(void)
 {
     return false;
 }
+static inline void set_xs_domain(struct domain *d) {}
 
 #endif /* CONFIG_DOM0LESS_BOOT */
 
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Thu Apr 03 21:46:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 21:46:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.937344.1338384 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0SOH-0001KP-PD; Thu, 03 Apr 2025 21:46:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 937344.1338384; Thu, 03 Apr 2025 21:46: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 1u0SOH-0001JN-G8; Thu, 03 Apr 2025 21:46:25 +0000
Received: by outflank-mailman (input) for mailman id 937344;
 Thu, 03 Apr 2025 21:46: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=GOX3=WV=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1u0SOF-0000LK-TR
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 21:46:23 +0000
Received: from NAM10-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam10on20601.outbound.protection.outlook.com
 [2a01:111:f403:2413::601])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 147d7775-10d5-11f0-9eaa-5ba50f476ded;
 Thu, 03 Apr 2025 23:46:23 +0200 (CEST)
Received: from DM5PR07CA0083.namprd07.prod.outlook.com (2603:10b6:4:ad::48) by
 MN2PR12MB4317.namprd12.prod.outlook.com (2603:10b6:208:1d0::16) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8583.42; Thu, 3 Apr
 2025 21:46:17 +0000
Received: from CY4PEPF0000EE33.namprd05.prod.outlook.com
 (2603:10b6:4:ad:cafe::9a) by DM5PR07CA0083.outlook.office365.com
 (2603:10b6:4:ad::48) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8606.26 via Frontend Transport; Thu,
 3 Apr 2025 21:46:17 +0000
Received: from SATLEXMB03.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.8606.22 via Frontend Transport; Thu, 3 Apr 2025 21:46:16 +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, 3 Apr
 2025 16:46:15 -0500
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; Thu, 3 Apr
 2025 16:46:15 -0500
Received: from fedora.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; Thu, 3 Apr 2025 16:46:14 -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: 147d7775-10d5-11f0-9eaa-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=bi3TKmb2ZVV0gFmmBE++K8J38yYMqI/4A1nNKq/CtknxNOjWVzvyuCDKE21mj3qpqOmqoh8zfK7S+XKmCuXkHkjZo5BtZOdam51cnJjl/OdjS9/SMmViKF9MHOCor5u8xsJSUWu3vqGI+QfL4/ELTD0L25Lf0jA22aRa2i1ahaP/40DlCr8xkllRZ4C6zelSvuOeRMlXl8xZXM2xoKTUXlB/FsHCL35Z0jlsapoNSW6mIrZF6o0cSpr9jR9QzbU/guPI8nros7lGhIRnND5nlcXOHx9GeZX+FxiLPtKLpUF3+pnaKIdwkAEVmlra+UEWOSuRSSSF6BzjXtPMVAbJLQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=bDZ6ycYxk9xxKPtvyYcRGvn928vyhygmCRK5DaBoq88=;
 b=D19CGhBMBslc4yAWUZrFnxa2rzFAROdj3mULwjdvSNR5YgmMMEN93rGOLVzG6Iavm6tesrExZgeOAUJ1mHW+4Pn9qrbMv3q3pml0Nw5DD0pEYTiyJIrDKggrUNM5TWxsU2OTD34TKliXkyawMJbcX1UZIj/BCCewZ16h4tMIHC7ew/2NTAYpznb7np/XLQuDKfpeejGaxiUH21EwlMhHoSDRXLsba7YDLvf8tPqswX1xwaJEbQgUCLg6S31Md6iyALVTWY7q3bh1IKZJ73T6nQsXBs9Vcj00dcYjMO6bRM3K1nrCdzelQfWG8+ezUivmWN8ex+MT4epKUmwBOZQSmw==
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=bDZ6ycYxk9xxKPtvyYcRGvn928vyhygmCRK5DaBoq88=;
 b=TIS/TqpXqQiarBZ9GnCYzPUMmytz0FW5r8e9uN6aRuI8toZY3Wp7sXpmtSs39PznYemS2Wj+LQc/sj1213W0JPVEmG1q/CZr0wNK3QUCFKmNLdFW0OEQfr5ClbyiQH1V7HnZvugcScOpyASsw9LmyIT2BDUBn7eEn/G5wQwWnCg=
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>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, "Volodymyr
 Babchuk" <Volodymyr_Babchuk@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, "Jan
 Beulich" <jbeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>
Subject: [PATCH v3 4/7] xen/arm: dom0less seed xenstore grant table entry
Date: Thu, 3 Apr 2025 17:46:05 -0400
Message-ID: <20250403214608.152954-5-jason.andryuk@amd.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250403214608.152954-1-jason.andryuk@amd.com>
References: <20250403214608.152954-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: CY4PEPF0000EE33:EE_|MN2PR12MB4317:EE_
X-MS-Office365-Filtering-Correlation-Id: 6f45ce8e-6443-4fbb-6f18-08dd72f8f67d
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|82310400026|1800799024|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?+QVFhIc8y6KHLo9MkDExt5onxisWyr5FiSgy9P1rB7fmD6lHNeFMNjKKVnxc?=
 =?us-ascii?Q?eUY0OhmG/slu3Niz1stgCmufBmUALHDli8vT6W/JH4nUguhwoLPvTn3Z0inX?=
 =?us-ascii?Q?RJtLLVqjAAUDX1DDTFFnGlo9IlFPvFkTW9mzhyD08Z2QtufjdE8SdTyKxIzs?=
 =?us-ascii?Q?369Le7lBTtSY39iJX+2XOkU8eQcs3VhA+P+Xv+ycw/p6tPcS2B3eLkCwEo+b?=
 =?us-ascii?Q?+47u6Xil3PQCG4S7sKQXLcDyTkIyOjk3dk3uExiYvkkikXiRRoSzFwczuQNE?=
 =?us-ascii?Q?kaeIXiy5Kn5FscTz+wYl6BvNpmLsdbSP9//A+ny5LktxeiP83J1tc2nMSxD4?=
 =?us-ascii?Q?A9FXvEikleu5Kr60BG13btgUXDahwMG0ZihvvQaHuKz6DxXlhKwTEA9w5V+Z?=
 =?us-ascii?Q?cmwePP0lcHtp7uBuqLNVwUEldZCP/o5TTAAw/lGNp2CxXvaKEP8y7smBwLHv?=
 =?us-ascii?Q?topAs9W8WE2qu5V1eienBIrVQJWeduHdsYYIThRBPAqecDvUh4ER76OVwFeY?=
 =?us-ascii?Q?pKZY9Y85831ZLtPPEnuKozVGB5bFKQzPqVdINaBRWzsRDiCXMlrQU4lGvbKx?=
 =?us-ascii?Q?pu/40Snfx6K1FlwQx0DAdaom06dQyj6u0hoiZvVROMzDV/Ne98IDHasZXDjl?=
 =?us-ascii?Q?xGHBos40TOgaGU3XtEEXgVQsorXYvuqBJqknldxbRVMTS1jAqnHtXYy4fsVW?=
 =?us-ascii?Q?/zL77lJ3Lu4CCimY8f0IVDC6dSDfAPjiWCWgmAThFuGahegLyPYAgU4YrSvb?=
 =?us-ascii?Q?c93O8i8NlTb5zFE2MliCdAuNOxbLxlVBlqU/0EMHm/xQjXKKu2BpKYvAdA5P?=
 =?us-ascii?Q?d2lbgn4fDX/i1RG0NZfbnHwNSLSOOvDt7uHeMDSkpzVau8GrdHJzAt4hKQ30?=
 =?us-ascii?Q?+KFNRaSu/dFQ6mENeryojYbigi0eehjXlCyyz6S9YmudRdTTXaiWeiqnytG3?=
 =?us-ascii?Q?hdAfj1QI1LDJjAIE11D4tyyt6XY0mcD5UXHYa2Kk+/4/qs5nbLN4ZDHQkpB/?=
 =?us-ascii?Q?Z1XNgn008hD4x6qR9ES3rcXU7iZ+0qO7hYMb4romjaqFabwVr5sGLiX2y6MG?=
 =?us-ascii?Q?mT2dLiFnIWyvyr5dcy1N1hSfZkuqd5h+2HSyd6xOX+QH2YQxJAKWUncSjTkI?=
 =?us-ascii?Q?q0pIoKf7nj6JJcbIcvVHZnqC2bwJYunNkYxTKCvPlNL02KC9zYESxV6Upqoq?=
 =?us-ascii?Q?lMsijYZxe29FgTATbI0e0z3EdR41e74QoHDHktSpq0/Mr9ca1zlfJU+TMQJC?=
 =?us-ascii?Q?GWEePRv/Auwz7ZBNi1/QfZr90R6z85Wp2ZqVmOOKLoFv/8V3s6hL+85GPxkY?=
 =?us-ascii?Q?WkE69ZEa+SQIits4uqJKxy4wmLU53Cj/4L1WIBeEfepIDCJh5fYCUdcu+irM?=
 =?us-ascii?Q?r/xPBuQhQBOZLglMqa96mt6J0OcX2LXuZKxAFaOBa9YG8d+U8oayqylN3pTr?=
 =?us-ascii?Q?GJjwNeANLRmRJKu8O22MgM9kGmTOu+1TdWZ/npeDGcwa2OaJ2VoTbokgYo+S?=
 =?us-ascii?Q?Omk3GaHwbEnJzI4=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: 03 Apr 2025 21:46:16.7631
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 6f45ce8e-6443-4fbb-6f18-08dd72f8f67d
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:
	CY4PEPF0000EE33.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4317

xenstored maps other domains' xenstore pages.  Currently this relies on
init-dom0less or xl to seed the grants from Dom0.  With split
hardware/control/xenstore domains, this is problematic since we don't
want the hardware domain to be able to map other domains' resources
without their permission.  Instead have the hypervisor seed the grant
table entry for every dom0less domain.  The grant is then accessible as
normal.

C xenstored uses grants, so it can map the xenstore pages from a
non-dom0 xenstore domain.  OCaml xenstored uses foreign mappings, so it
can only run from a privileged domain (dom0).

Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
---
v3:
Expand commit message about C vs. OCaml xenstored.
Remove __init and flags from gnttab_seed_entry()
Change frame to uint32_t
ASSERT gfn fits in a uint32_t
Rebase on mem paging changes

v2:
Tweak commit message
Mark gnttab_seed_entry() __init and put inside CONFIG_DOM0LESS_BOOT
Add ASSERT(!d->creation_finished) and ASSERT(gt->gt_version == 1);
const struct domain & struct grant_table
---
 xen/arch/arm/dom0less-build.c |  6 ++++++
 xen/common/grant_table.c      | 14 ++++++++++++++
 xen/include/xen/grant_table.h |  7 +++++++
 3 files changed, 27 insertions(+)

diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
index bb8cc3be43..284190d54f 100644
--- a/xen/arch/arm/dom0less-build.c
+++ b/xen/arch/arm/dom0less-build.c
@@ -788,6 +788,12 @@ static void __init initialize_domU_xenstore(void)
         rc = alloc_xenstore_evtchn(d);
         if ( rc < 0 )
             panic("%pd: Failed to allocate xenstore_evtchn\n", d);
+
+        if ( gfn != ~0ULL )
+        {
+            ASSERT(gfn <= UINT_MAX);
+            gnttab_seed_entry(d, GNTTAB_RESERVED_XENSTORE, xs_domid, gfn);
+        }
     }
 }
 
diff --git a/xen/common/grant_table.c b/xen/common/grant_table.c
index 6c77867f8c..e75ff98aff 100644
--- a/xen/common/grant_table.c
+++ b/xen/common/grant_table.c
@@ -4346,6 +4346,20 @@ static void gnttab_usage_print(struct domain *rd)
         printk("no active grant table entries\n");
 }
 
+#ifdef CONFIG_DOM0LESS_BOOT
+void __init gnttab_seed_entry(const struct domain *d, unsigned int idx,
+                              domid_t be_domid, uint32_t frame)
+{
+    const struct grant_table *gt = d->grant_table;
+
+    ASSERT(!d->creation_finished);
+    ASSERT(gt->gt_version == 1);
+    shared_entry_v1(gt, idx).flags = GTF_permit_access;
+    shared_entry_v1(gt, idx).domid = be_domid;
+    shared_entry_v1(gt, idx).frame = frame;
+}
+#endif
+
 static void cf_check gnttab_usage_print_all(unsigned char key)
 {
     struct domain *d;
diff --git a/xen/include/xen/grant_table.h b/xen/include/xen/grant_table.h
index 50edfecfb6..936a52ff10 100644
--- a/xen/include/xen/grant_table.h
+++ b/xen/include/xen/grant_table.h
@@ -45,6 +45,10 @@ void grant_table_destroy(
     struct domain *d);
 void grant_table_init_vcpu(struct vcpu *v);
 
+/* Seed a gnttab entry for Hyperlaunch/dom0less. */
+void gnttab_seed_entry(const struct domain *d, unsigned int idx,
+                       domid_t be_domid, uint32_t frame);
+
 /*
  * Check if domain has active grants and log first 10 of them.
  */
@@ -85,6 +89,9 @@ static inline void grant_table_destroy(struct domain *d) {}
 
 static inline void grant_table_init_vcpu(struct vcpu *v) {}
 
+static inline void gnttab_seed_entry(struct domain *d, int idx,
+                                     domid_t be_domid, uint32_t frame) {}
+
 static inline void grant_table_warn_active_grants(struct domain *d) {}
 
 static inline int gnttab_release_mappings(struct domain *d) { return 0; }
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Thu Apr 03 21:46:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 21:46:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.937342.1338368 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0SOG-00012k-4Z; Thu, 03 Apr 2025 21:46:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 937342.1338368; Thu, 03 Apr 2025 21: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 1u0SOG-00012d-1G; Thu, 03 Apr 2025 21:46:24 +0000
Received: by outflank-mailman (input) for mailman id 937342;
 Thu, 03 Apr 2025 21:46:22 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=GOX3=WV=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1u0SOE-0000LK-ET
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 21:46:22 +0000
Received: from NAM04-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam04on20615.outbound.protection.outlook.com
 [2a01:111:f403:2409::615])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 13887f1b-10d5-11f0-9eaa-5ba50f476ded;
 Thu, 03 Apr 2025 23:46:20 +0200 (CEST)
Received: from BN9PR03CA0975.namprd03.prod.outlook.com (2603:10b6:408:109::20)
 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.8534.50; Thu, 3 Apr
 2025 21:46:12 +0000
Received: from BN1PEPF0000468D.namprd05.prod.outlook.com
 (2603:10b6:408:109:cafe::7d) by BN9PR03CA0975.outlook.office365.com
 (2603:10b6:408:109::20) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8606.25 via Frontend Transport; Thu,
 3 Apr 2025 21:46:12 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BN1PEPF0000468D.mail.protection.outlook.com (10.167.243.138) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8606.22 via Frontend Transport; Thu, 3 Apr 2025 21:46:12 +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, 3 Apr
 2025 16:46:11 -0500
Received: from fedora.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; Thu, 3 Apr 2025 16:46:10 -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: 13887f1b-10d5-11f0-9eaa-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=uHC64li2N7s842xsH/lbTDyHbbIz55gm6oYoaeZbJmwl6nm/1DGysckuF7Htr8etaSqN8hZNPjVPMI81A5JAXheXJht087QbkwLwpDLCo8nz9b/Yd8I0iO/Ku7+85cjJXRg7//QCz0CZ0AywX+cP2TxOdwbwzGQVaPZGT+TU1uMhETYjczchQlUB/QUX9LuvnJU4c4JFPjmWVb0IWeclvhA91b7bWtNS19FepRMfCDS4+9DpLN79E+gUm6lkwWZPC63BqX8BD9WfWANkY/8widvYvgn6cXAhnd6YoA8pwGLym0DMRpnsCakPhJ+sF5FILW3dmJ0XCPASpyZw4lIvPA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=XQHFzDKnNDGytpctVWKmIThcFF4nssmMh+JtL5p8sGY=;
 b=P0XbcjGVXtmzs00eMWKThYxeySUVYVT3r07Ew/kTXZYIRPf2MqyUuH5L9rPEtI77eWZyIyAk/o7sVdqlB6aO4EvVCWBpe0DTfK77AgSQio8O5wvQVNwR8hPAYPmimb9H5tH+iO0CIQhvxdxjNCLD3gRLTOs7cSmEmsuL7L/aD6SbKf3fnI8BbtIFevpVKMEhJZtWpGOSqYpyO0S3WXK9FlTnsDJLCLawALYEaFZ3/Q49rB1x9WY2Si3304wKpVovMDI2hXlQe18t/0BqQ1+uq2OJhmomalVHCVeEBAEWIOoYmfy4qAX3mXjgHX6NNKEXseWPXdskNoAdQp/z831ONA==
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=XQHFzDKnNDGytpctVWKmIThcFF4nssmMh+JtL5p8sGY=;
 b=b5yleN2PIgXfP/oNEhEUa3UikGEOqq4GbD6cFvwlX+VgBtdWa6h6Qd4lHFGIIg2a6J/5GpA2jXq7QViQLCjahFv7Y07J0zw9UCpdCBIjxjJv26Bj/rAHMlNRjdAsD2OEFEdr68MdXAFajdvAszVo7VEfPsX7q5tXvbaHL4h+QUM=
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: "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>, "Volodymyr
 Babchuk" <Volodymyr_Babchuk@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, "Jan
 Beulich" <jbeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Jason Andryuk <jason.andryuk@amd.com>
Subject: [PATCH v3 1/7] xen: introduce hardware domain create flag
Date: Thu, 3 Apr 2025 17:46:02 -0400
Message-ID: <20250403214608.152954-2-jason.andryuk@amd.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250403214608.152954-1-jason.andryuk@amd.com>
References: <20250403214608.152954-1-jason.andryuk@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
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: BN1PEPF0000468D:EE_|CH2PR12MB4040:EE_
X-MS-Office365-Filtering-Correlation-Id: 6e5f4112-6fb5-4a54-fef1-08dd72f8f3ba
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|36860700013|7416014|82310400026|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?+raaxEOxIh3uGbT2FD2VIPon+vOmGhEcSD0dhi0EQ7gnSiFG/YXgkPSX1WZB?=
 =?us-ascii?Q?dDffEyCULEJbCwUCzpTtsqYnFi/c5q3cf6J/9+7W/Gc5J70LO+4dLyWNvgnY?=
 =?us-ascii?Q?JDTUdnyASH0L4RAtikQBiJEUJFw7BWPGywkcPLgfucsj+qA673DEnDF3V+Bv?=
 =?us-ascii?Q?GbF2EpEPTUZBMZzbEH+X5dLLAppA+L8sutwXcHxsYk+k8d9YNXeuzRQgQ4hZ?=
 =?us-ascii?Q?GmGjQxvdvoWs9NMGYA13ouoOTHCKAr/nKq5QeuD8vLdkChDXwlSOt9cs6DsU?=
 =?us-ascii?Q?IxmekKHaMGBLMqregqIIIJge8w6N3KcJ8q8S+0Cbfxw2fZP6Q/EeFdLJjPNv?=
 =?us-ascii?Q?0YlLmkIkoqLmuSJxQ3nFT9bbm8cn3gEnZ8XgnzPzi9f1lyfO1HHbFxpsNT3P?=
 =?us-ascii?Q?FejzsgdyP3NW4YervMP6iTQlXiQlNdiyPg4Tgj9wlmScT6r6fal66ewXtjVA?=
 =?us-ascii?Q?KkPj/MgOI4Cd8LSyrSo+ambnF7BqazwILDjX4j4VMYGyHtHjNoTA3fl+DUsw?=
 =?us-ascii?Q?fKab9NqPcdF/XgT/RaOacO+sV5fVukUB1tASSiIIY9g9Ywsj3xuGN7mhHcA5?=
 =?us-ascii?Q?4Ua0GpqiyQwbKTU+Rh8ZYlgHkJjqK9OsqovfuTlOc+5MK0Q4YDtyZP8l/7cM?=
 =?us-ascii?Q?vrn20VQiz0w3gp0DZdMIqH4ldAI5+oG1pVHt0EHoC58zpCc4JZvXy9ItSQOi?=
 =?us-ascii?Q?igD19ZKes2gpAjbJKIQ99fXbXo2LDk87UacQo5/Xjkx5SFUWR8Asl+8yjT/b?=
 =?us-ascii?Q?MIbyXXg7pLrpevSG1ztkSvRpwZ6r8RZeekEsEfYAa0MLtv/ip0rfBU59c4Q5?=
 =?us-ascii?Q?H70B9aeHitoOVHo0Ezb8Gt2zWsHuPxE4Iz8zHR91ie64R5gxda32CF/s+Lw3?=
 =?us-ascii?Q?vT4+GcVzAPoQVzSrQwSVykCBs3lt2LuQByPgODgMAd8/mFPeoJEpReIPl/vs?=
 =?us-ascii?Q?S6QtDvQYteUrKytfAMB5Jtdij5/sbQLk8HCcvwwSefmTq69Bj3Bd85FM3TOA?=
 =?us-ascii?Q?/gmhFZB5CNWBZgIa5xvY2+7csvZDYfza7eaXvhJ6AP+VCLcQAOk/69osPZYb?=
 =?us-ascii?Q?zNU5RwHE4daqw3czLYOl45p7YbYvXCKMHEHNHA4oRuT2IEtK5PcVuJQtKJqp?=
 =?us-ascii?Q?Ufnhiki+Ku4FvUB5XWNmynycM5xd0DHirNYb7AanIv/yKIcpvhxVcTRLqD7U?=
 =?us-ascii?Q?kZdgG8xemEAwtuTr123t/5bbFiyRSrXU9g79P8hCEAmwEwABdZGyZ5VuV1S1?=
 =?us-ascii?Q?d6XH2FInCarjYlGszs2f4Vv5qGrzU70iqKEIRK/Taz6y32jnyr0Ef4uzZdzs?=
 =?us-ascii?Q?Vu5r6i8971v6iUaesRja4D/c4R6XJgQDhvt0AzblyRQETs4rGMryY1iK5d/9?=
 =?us-ascii?Q?UcrT/3Qs8Tx6gckXB7Ef+dNkCRvMT3nnLdiJ35AT4wPbPhz58+FDVncQ2c3S?=
 =?us-ascii?Q?wTuxLwGVDxQzMy6sngv/fHncJnT2gp/UMb6/TyqvY1YU2N5zZeUVjw=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)(36860700013)(7416014)(82310400026)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Apr 2025 21:46:12.2637
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 6e5f4112-6fb5-4a54-fef1-08dd72f8f3ba
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:
	BN1PEPF0000468D.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR12MB4040

From: "Daniel P. Smith" <dpsmith@apertussolutions.com>

Add and use a new internal create domain flag to specify the hardware
domain.  This removes the hardcoding of domid 0 as the hardware domain.

This allows more flexibility with domain creation.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
---
v3:
Or-in CDF_hardware for late hwdom case
Add Jan's R-b

v2:
() around binary &
Only allow late_hwdom for dom0
---
 xen/arch/arm/domain_build.c | 2 +-
 xen/arch/x86/setup.c        | 3 ++-
 xen/common/domain.c         | 7 ++++++-
 xen/include/xen/domain.h    | 2 ++
 4 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index 634333cdde..b8f282ff10 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -2369,7 +2369,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;
+    unsigned int flags = CDF_privileged | CDF_hardware;
     int rc;
 
     /* The vGIC for DOM0 is exactly emulating the hardware GIC */
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index d70abb7e0c..67d399c469 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -1018,7 +1018,8 @@ static struct domain *__init create_dom0(struct boot_info *bi)
 
     /* Create initial domain.  Not d0 for pvshim. */
     domid = get_initial_domain_id();
-    d = domain_create(domid, &dom0_cfg, pv_shim ? 0 : CDF_privileged);
+    d = domain_create(domid, &dom0_cfg,
+                      pv_shim ? 0 : CDF_privileged | CDF_hardware);
     if ( IS_ERR(d) )
         panic("Error creating d%u: %ld\n", domid, PTR_ERR(d));
 
diff --git a/xen/common/domain.c b/xen/common/domain.c
index 585fd726a9..da74f815f4 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -820,13 +820,18 @@ struct domain *domain_create(domid_t domid,
     d->is_privileged = flags & CDF_privileged;
 
     /* Sort out our idea of is_hardware_domain(). */
-    if ( domid == 0 || domid == hardware_domid )
+    if ( (flags & CDF_hardware) || domid == hardware_domid )
     {
         if ( hardware_domid < 0 || hardware_domid >= DOMID_FIRST_RESERVED )
             panic("The value of hardware_dom must be a valid domain ID\n");
 
+        /* late_hwdom is only allowed for dom0. */
+        if ( hardware_domain && hardware_domain->domain_id )
+            return ERR_PTR(-EINVAL);
+
         old_hwdom = hardware_domain;
         hardware_domain = d;
+        flags |= CDF_hardware;
     }
 
     TRACE_TIME(TRC_DOM0_DOM_ADD, d->domain_id);
diff --git a/xen/include/xen/domain.h b/xen/include/xen/domain.h
index a34daa7d10..e10baf2615 100644
--- a/xen/include/xen/domain.h
+++ b/xen/include/xen/domain.h
@@ -53,6 +53,8 @@ domid_t get_initial_domain_id(void);
 #else
 #define CDF_staticmem            0
 #endif
+/* This is the hardware domain.  Only 1 allowed. */
+#define CDF_hardware             (1U << 3)
 
 #define is_domain_direct_mapped(d) ((d)->cdf & CDF_directmap)
 #define is_domain_using_staticmem(d) ((d)->cdf & CDF_staticmem)
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Thu Apr 03 21:46:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 21:46:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.937345.1338398 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0SOK-0001qn-7r; Thu, 03 Apr 2025 21:46:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 937345.1338398; Thu, 03 Apr 2025 21: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 1u0SOK-0001qZ-2v; Thu, 03 Apr 2025 21:46:28 +0000
Received: by outflank-mailman (input) for mailman id 937345;
 Thu, 03 Apr 2025 21:46: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=GOX3=WV=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1u0SOI-0000LE-0t
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 21:46:26 +0000
Received: from NAM10-BN7-obe.outbound.protection.outlook.com
 (mail-bn7nam10on20602.outbound.protection.outlook.com
 [2a01:111:f403:2009::602])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 162cdd88-10d5-11f0-9ffb-bf95429c2676;
 Thu, 03 Apr 2025 23:46:24 +0200 (CEST)
Received: from DM5PR07CA0063.namprd07.prod.outlook.com (2603:10b6:4:ad::28) by
 IA0PPF8FC6E1236.namprd12.prod.outlook.com (2603:10b6:20f:fc04::bda)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8583.43; Thu, 3 Apr
 2025 21:46:20 +0000
Received: from CY4PEPF0000EE33.namprd05.prod.outlook.com
 (2603:10b6:4:ad:cafe::50) by DM5PR07CA0063.outlook.office365.com
 (2603:10b6:4:ad::28) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8606.25 via Frontend Transport; Thu,
 3 Apr 2025 21:46:19 +0000
Received: from SATLEXMB03.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.8606.22 via Frontend Transport; Thu, 3 Apr 2025 21:46:19 +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, 3 Apr
 2025 16:46:17 -0500
Received: from fedora.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; Thu, 3 Apr 2025 16:46:16 -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: 162cdd88-10d5-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=SiTviR1Xx0CZQD0VY+KQWh47Q8sD7Xp/aXXO0fQnXcT74HfLIRA7cHij/H1thr9Rp2vEFZBVnxF+gnludMGAo6xtErHyfptvscvqclaVaVuX6O8Yo78rsFkkrwGE0geRG20yfguHEJBr4QLao8BttnGQJkJ/eBm8Bo8HAHHSpXTZYLpMp5epOsZk+tY+3IGEFESYubkM491eSkjTHh1j/e3gwYdbrEfKA/q8KpCWFO3uwMjizinhGNZLRJ0GsMx4Ua8vnD7tLGqbQGO2XxDQX4Ei23Ima1eF22bytmQhjqKSWD7R6bCdmeEZVNvcT8t8jEsH3BwwRaNCvcJ+WX/7lg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=WdsPqj84Hib8NMMJalt8pI/N2yD+bj+m4mgWcFIdJM4=;
 b=nurlZ8CqZbwbcb8d0GCUwSYtk0uEZNIfXkO2bEyOd+zRGe3VJKWlOBYFE1oZZxxdVyoJ2z6hg7JyuzBZrmTLKEU31wrRSVtFw30na5zZtrGgX508TCjCIDr3ZizQYhpOvKv5TrSpU+76Q3Vrcd4coG/hch+6U/g9/YnIDdwDlw76y4+ZEXH88/rOxRTRVziUbTivr3y9v9fW6DiNDZVViIJKDvJWP3jj3HWCGj2pgEdCBb3YK7MR6N3O1z2m8tyMNZumm6HSUQAyi9qGICr7l9VIapP9YyFURrNYLHmrXHiO8jt5Bz/tTiaoYJyksDbsoPvApNdvh9Np5oyYZ9Vnvg==
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=WdsPqj84Hib8NMMJalt8pI/N2yD+bj+m4mgWcFIdJM4=;
 b=FY7SBnF0Dytfvluu/DD/PO+NOXr0lsMbt16g6nYevHtbuYW+DyoRyt3ERnwf8zCbLr+w93j0DfM1B3D9STz84rLZD8l4SlyPLyMr6SXhEa2kb5lyx1ET4onbUn6YjxaoVGrnGEN+zaSp8uQUEXgl/S+K3kajO35cbyZUq5os62M=
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>, 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 6/7] xen/arm: dom0less use has_dtb local variable
Date: Thu, 3 Apr 2025 17:46:07 -0400
Message-ID: <20250403214608.152954-7-jason.andryuk@amd.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250403214608.152954-1-jason.andryuk@amd.com>
References: <20250403214608.152954-1-jason.andryuk@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
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: CY4PEPF0000EE33:EE_|IA0PPF8FC6E1236:EE_
X-MS-Office365-Filtering-Correlation-Id: 43a04bde-3635-4d8a-0e00-08dd72f8f821
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?ng294MpNCQwzdsijiCh1CsstudgxCEnpjk21l/C+ij0twjG8YPW51d7iBITJ?=
 =?us-ascii?Q?9oZSEe3OgGfVJoippoRDnrcbEAU2gDbpNZnTCmjPV6R554lEtUPQ5eqDkN3D?=
 =?us-ascii?Q?gNVlCsouacESu+7sOsAP1UNF+OqnVx/zvE8bWkR5OavqApcU76BTWPjyFr7S?=
 =?us-ascii?Q?CuK/HLBA3SMBoLdIuQmihgT+dwg3TDFUBJhfxXKSph8CQ2m5c6OeSYXemkBz?=
 =?us-ascii?Q?qXpgQ9MJhLIpEyujAYmYFVTcQISo9/89OFcFeySNQEIrKGqbKeqdirZqDMCM?=
 =?us-ascii?Q?2o+c1IK8zctdq6nQWkhEL1waznT8p38chocHyTiF1EUNBlciay26zSwWY4je?=
 =?us-ascii?Q?UkCPkvfQf8moNk09rmBgDzJBK9fLi6wZxbkHO6CDk8g1sT+ztD40Ujrb9Q49?=
 =?us-ascii?Q?NRQCd66HibzlTJzM9MKW2GzxGeL80ZbtpOXXAh62r/5ZhrGrmArYEZP+v21F?=
 =?us-ascii?Q?uDY8mhPvZpeHVXDAPHzu0ObwhEcLsuFXDjxAdYb/XR7AZ4uHveDFZ0YoL3Pi?=
 =?us-ascii?Q?1gGtFxM+TFvimNr4o8VrON+l2bPYhq+aQgPp427Kr2YSKQ770c3XfFsvacqB?=
 =?us-ascii?Q?s/nUNM5CkrejxAz2hMqbBzXWClJoz95e1+05IeEQ8b5ktaVn6vkx6HYfKFGh?=
 =?us-ascii?Q?t1x+WE/pNAXxxlx9kSPe8peFq24FMp208rYubTYkwcKJ7DUB72e20sznDwv2?=
 =?us-ascii?Q?P7d5kNRy+wDhFw8oyWlTlwnxpIsmtF2sJJj35wvX8lo106+V1hQaFkawp4h4?=
 =?us-ascii?Q?2IXknQj12AtN1WrpS6hE+zfyhXTET41L6Qyi3PAKkXkqOKiFVI4oQW4jkT04?=
 =?us-ascii?Q?orYXt1+A3iYcRQeaX9xEoLVN/XKiOptqVsWr7JuY10oR7McVQMEAnTwVEuvt?=
 =?us-ascii?Q?8fnXPkZhc1YSBFbl+Z6i1Kyhr/BN7qRh4b76Imk5xE0v8trSJjujNlwUUl7B?=
 =?us-ascii?Q?invfxNXMjCASGSgyXOP6JtNaDydsEK1AZILlze8HS6R0NGL08HuAmG+m/UnU?=
 =?us-ascii?Q?GFhyMrXmzfe8zkvQBTc4LkvoD9a7BS63KSz5f3RyiMvFDZTKD/iDn4lGFQed?=
 =?us-ascii?Q?HOjEBn3LSXNB5cDTYGxxB7o1Gh61GVOM0Zjz7bZzWI4dXq/TwfrrRJ9HKFbc?=
 =?us-ascii?Q?+fKwLy9JZqqbma6YvRarUzph2KVow/ESgk/mQQs0bdfajt9C5RF/+FVEmLXe?=
 =?us-ascii?Q?OP2pDjUDBel04V3++ZQvn08hnpvHxIQ/0RGBINf+xd187jWmdGQizaZIk6zi?=
 =?us-ascii?Q?O+qj/saeUporpYTdb8/hVyFTHxLReRDaD9fB+fPa+dIQbqK8AiXAGMYQ7x5I?=
 =?us-ascii?Q?SCJQCgKyLDEoOP8AC01J6rS2ZibvI2DlrK7tys2stn4D0DSam3wyHBXDnPYR?=
 =?us-ascii?Q?/bXvtomohqjjUdEgcwrRGpuMSsHLLj4mJ0jP0i/VuZvvTl7QRize78D//m7h?=
 =?us-ascii?Q?w+sZ+C2QsTstrm4rDa+KhW3V4EMoxqoDh4Yg/7vvslOva4lHbRT5Iifv2Kjq?=
 =?us-ascii?Q?FLaRKGb9aZtn1pA=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)(376014)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Apr 2025 21:46:19.5443
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 43a04bde-3635-4d8a-0e00-08dd72f8f821
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:
	CY4PEPF0000EE33.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PPF8FC6E1236

Store the result of finding a "multiboot,device-tree" node.  This will
simplity adding hardware domain checks.

Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
---
v3:
New

Could be squashed into the next patch, but this helps make the next one
cleaner.
---
 xen/arch/arm/dom0less-build.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
index 284190d54f..a72961dfb4 100644
--- a/xen/arch/arm/dom0less-build.c
+++ b/xen/arch/arm/dom0less-build.c
@@ -1031,6 +1031,7 @@ void __init create_domUs(void)
             .grant_opts = XEN_DOMCTL_GRANT_version(opt_gnttab_max_version),
         };
         unsigned int flags = 0U;
+        bool has_dtb = false;
         uint32_t val;
         int rc;
 
@@ -1065,9 +1066,10 @@ void __init create_domUs(void)
              !strcmp(dom0less_iommu, "enabled") )
             iommu = true;
 
-        if ( iommu_enabled &&
-             (iommu || dt_find_compatible_node(node, NULL,
-                                               "multiboot,device-tree")) )
+        if ( dt_find_compatible_node(node, NULL, "multiboot,device-tree") )
+            has_dtb = true;
+
+        if ( iommu_enabled && (iommu || has_dtb) )
             d_cfg.flags |= XEN_DOMCTL_CDF_iommu;
 
         if ( !dt_property_read_u32(node, "nr_spis", &d_cfg.arch.nr_spis) )
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Thu Apr 03 21:48:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 21:48:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.937373.1338408 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0SQZ-00042h-KZ; Thu, 03 Apr 2025 21:48:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 937373.1338408; Thu, 03 Apr 2025 21:48:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0SQZ-00042a-HW; Thu, 03 Apr 2025 21:48:47 +0000
Received: by outflank-mailman (input) for mailman id 937373;
 Thu, 03 Apr 2025 21:48:45 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=GAK9=WV=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1u0SQX-00042O-Hd
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 21:48:45 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on20615.outbound.protection.outlook.com
 [2a01:111:f403:2415::615])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 69624f55-10d5-11f0-9ffb-bf95429c2676;
 Thu, 03 Apr 2025 23:48:43 +0200 (CEST)
Received: from BL1PR13CA0238.namprd13.prod.outlook.com (2603:10b6:208:2bf::33)
 by SJ0PR12MB6992.namprd12.prod.outlook.com (2603:10b6:a03:483::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.44; Thu, 3 Apr
 2025 21:48:38 +0000
Received: from BL6PEPF00022574.namprd02.prod.outlook.com
 (2603:10b6:208:2bf:cafe::c8) by BL1PR13CA0238.outlook.office365.com
 (2603:10b6:208:2bf::33) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8606.17 via Frontend Transport; Thu,
 3 Apr 2025 21:48:37 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 BL6PEPF00022574.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.8606.22 via Frontend Transport; Thu, 3 Apr 2025 21:48: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; Thu, 3 Apr
 2025 16:48:36 -0500
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; Thu, 3 Apr 2025 16:48:35 -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: 69624f55-10d5-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=KG6Fs4bZCpGpUSR+Lo6hOAKRu24ulJMccpKoY3p186VXmmFXKwgIR0+XpHvEbKOsZ9O5ihsos5WcfHsFYC9onTrumLy9cBz5K4lhIsqm26CfZUqFzXlxFmCJyqpPMMrHQDYhvu1+YPf15FlCHB/nX8kj+MaVbt9lWj5m6tfK1VdTVlU6RgB3InSmcQDPICUZDkSUilBAENMUhnrx6PQunzknQP9qvw+jaHzYYN2P9WofzD6WCMwljASzeWjFOAuJWlqkbVihb+95ub07LVY5bBu7XzCAiHZJe3kt5j5PLkLe1KzdscjEIiYmsObXIvAqB/u1OOBuGai2GHkW3zcVwQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=U7WpMxzStKRb4yl90BOglzDn0Ex8GUy7QeVdyk5lpYk=;
 b=Lx0GfmGFTs9dT8EQ5ZfD/PUN4QojrvSJqPGTDE88pnjiM9mz6MDo++o7WQjC09OvaPvbzKu/sjm2etthGXPK4D4AG+H9gU5VNcmhTnUczLZwHXNsic/iSQyjuf7IfQ9xRTQXzQJaX5mm+FSqJ5UJH5wqs6QnVe+WQXxw9GQ8s3lFznV4xVSDVj3R2WPfKRB/caDBKouxnjjEgY1KlrKx4CizgaqtQZz9yJqMwZbZ8Wa8xRA4d/WTtX8cwG5N5kvFIWPJ23yXPPcgKqJbBQYV3GU9aeuN3FA2+i7ielmQdwEp4ULRy0dDUxdKby8rpoLF2ZIbwUu4qGipQKXD5QFfMg==
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=U7WpMxzStKRb4yl90BOglzDn0Ex8GUy7QeVdyk5lpYk=;
 b=WVL+xB2kxv6KbRDYdiOdLfZaFA2JIxXz4ltn2+JXIrF6kC3eATIn03uot/R7Cy36z//AAtqK9GHWwll12Yue3jaA6iImgwruXUGhpJVwRxoRwIamHempPiKe/6DvLMIvM3PMXRoUWKcbTHJsUJBaHAU8ddqFOcyajrohZdIlwv8=
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>, Dario Faggioli
	<dfaggioli@suse.com>, Juergen Gross <jgross@suse.com>, George Dunlap
	<gwd@xenproject.org>
Subject: [PATCH] sched/null: avoid another crash after failed domU creation
Date: Thu, 3 Apr 2025 17:48:19 -0400
Message-ID: <20250403214829.128294-1-stewart.hildebrand@amd.com>
X-Mailer: git-send-email 2.49.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: BL6PEPF00022574:EE_|SJ0PR12MB6992:EE_
X-MS-Office365-Filtering-Correlation-Id: 769195ac-9595-4434-b8f7-08dd72f949ad
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?mcaGAWjjs7fn/M5jmYK1F48PjHBotXB6+y47Nut/NvotRM4mrDwYMqw5PhWj?=
 =?us-ascii?Q?N9spcYf/TiDKyNLqWpZ376eXvICUfFBSUBi4Zfs8MSZM+boDv5XmX9UkWtH4?=
 =?us-ascii?Q?waFjns03Ox4iW95123NWWyLmcAMcxcGCS4q8z5cvvhquvUeqWNgFZT9PrBNb?=
 =?us-ascii?Q?c97gFrd0rVRRds2WCYDKk9QY9l9u97qUExmLvOQ2MjaYEJTkVt9hLiaqYiBD?=
 =?us-ascii?Q?/fs23qRBfxOW5xq1NC6gqgAKdN0evdIvti7a/PZWH8xrwtQR39E0pvMHrDPo?=
 =?us-ascii?Q?kglGFDYolXWkdhL9pDy0GJekTchGI5RxqPZXtkIks9oRzo10SfpcPHX/g4E6?=
 =?us-ascii?Q?033p6MuOVhhXOaU4u3SSv0AF8OgGV93LB3Vdd+C/VtGeZPApoS2pVizc341F?=
 =?us-ascii?Q?UYmI/KCOa7qIIh3GL9Tr2Lu15LOPsNcdQZ+d3f3E+zcLDYvd4wl2dEfTtULW?=
 =?us-ascii?Q?6/qz961AGNJQVKAvXakW4LNh8YbfoBv+z1zTjQN1L35mtZPC1aS7QWr+MOEe?=
 =?us-ascii?Q?t0UPvHdzCVegEZoF/HIgphyOlRScan0X1JuwJZ7k5l34JP2trjG2bpF23BiL?=
 =?us-ascii?Q?1h7DSuL8YhRXAuzqopo0IM1DM49yVQr4Z4a9iItcWEBtNV6RuB56ukOY5IXt?=
 =?us-ascii?Q?/Ljhdy5aZdAeJwiTcTs0VcNBWX1TA1MjZgQhU/BsXkgYsc1P5oikmggViLn8?=
 =?us-ascii?Q?R0SnP+itAkPYFpjmcrhC+o5d3dNJmAVCObD1+6kJjemrk3KP1Xn6N2cdNUC2?=
 =?us-ascii?Q?eOEPVVkej5Lm5h31Op4F6/DwarPOnmANFAuYGUVSiFkHni3lgiu3sJdLvba7?=
 =?us-ascii?Q?LPJautjnP7NixZB99Rxwpk11dky3r3Y+d5cElPgwPW6ZCLKO/vFIUtC5OsfD?=
 =?us-ascii?Q?dgOiZnksvMgO6a12sKaEdXZsO6qUwGptAZr3EDEWGGTvqijYl5vVE9e0diPb?=
 =?us-ascii?Q?o7QXEaBA5PfMWWeyeHifzETin8+HVfxJ4X6FjIUO8z/UnCtxmU0yrNbX9rAC?=
 =?us-ascii?Q?RrRvlv4XGsHRt4g8DqixEp4rJmlzpJtLc+SGgS9SON1pqP09fOlz1yUbOusq?=
 =?us-ascii?Q?wvyLkkx2fp9009LQlKr8tA5e0e1WXnAMmfQoTKuElG1LC89QEzk2TPqyOo5k?=
 =?us-ascii?Q?7GJ4N7SN2VLcAr7ql+8sx765amDIngStnZ7MwXVA0DlM2+87JSRRsRp0OiRu?=
 =?us-ascii?Q?fGuqQ6ETZEMh8vRru7HWVF2MyzgZGJSsDsUXcd0rEy0lMb+68/rF9hosEoVJ?=
 =?us-ascii?Q?eiUCSQAoB8SCXZktR8LTfbHNez6QpVkDipzWGYs0DUuva2xEvE5k52Y5R8ET?=
 =?us-ascii?Q?xUn2p65MOh0tCLRad+EMJd8beZ/cDUJPQXQFdEOC9QYR9FuJaIZNRBzJzTAO?=
 =?us-ascii?Q?SXLIxzteDGhjFRvIIOj5/E51M7Xx18XV9t34k1VtE36jYfcA//BwrTIMf4J5?=
 =?us-ascii?Q?GoK/B3MR9LsNMQveHOak23e708zAbM/DP6jl5kL6trS6DF5AesMr0Fc7ffTe?=
 =?us-ascii?Q?cyJm+5MJm0lw+1+W7yMAIpfd4V4JJ+N7M3JD?=
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);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Apr 2025 21:48:36.4554
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 769195ac-9595-4434-b8f7-08dd72f949ad
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:
	BL6PEPF00022574.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR12MB6992

The following sequence of events may lead a debug build of Xen to crash
when using the null scheduler:

1. domain creation (e.g. d1) failed due to bad configuration
2. complete_domain_destroy() was deferred
3. domain creation (e.g. d2) succeeds

At this point, d2 is running, while the zombie d1 is not fully cleaned
up:

(XEN) Online Cpus: 0-3
(XEN) Cpupool 0:
(XEN) Cpus: 0-3
(XEN) Scheduling granularity: cpu, 1 CPU per sched-resource
(XEN) Scheduler: null Scheduler (null)
(XEN)   cpus_free = 3
(XEN) Domain info:
(XEN)   Domain: 0
(XEN)     1: [0.0] pcpu=0
(XEN)     2: [0.1] pcpu=1
(XEN)   Domain: 1
(XEN)     3: [1.0] pcpu=2
(XEN)   Domain: 2
(XEN)     4: [2.0] pcpu=2

4. complete_domain_destroy() gets called for d1 and triggers the
following:

(XEN) Xen call trace:
(XEN)    [<00000a0000322ed4>] null.c#unit_deassign+0x2d8/0xb70 (PC)
(XEN)    [<00000a000032457c>] null.c#null_unit_remove+0x670/0xba8 (LR)
(XEN)    [<00000a000032457c>] null.c#null_unit_remove+0x670/0xba8
(XEN)    [<00000a0000336404>] sched_destroy_vcpu+0x354/0x8fc
(XEN)    [<00000a0000227324>] domain.c#complete_domain_destroy+0x11c/0x49c
(XEN)    [<00000a000029fbd0>] rcupdate.c#rcu_do_batch+0x94/0x3d0
(XEN)    [<00000a00002a10c0>] rcupdate.c#__rcu_process_callbacks+0x160/0x5f4
(XEN)    [<00000a00002a1e60>] rcupdate.c#rcu_process_callbacks+0xcc/0x1b0
(XEN)    [<00000a00002a3460>] softirq.c#__do_softirq+0x1f4/0x3d8
(XEN)    [<00000a00002a37c4>] do_softirq+0x14/0x1c
(XEN)    [<00000a0000465260>] traps.c#check_for_pcpu_work+0x30/0xb8
(XEN)    [<00000a000046bb08>] leave_hypervisor_to_guest+0x28/0x198
(XEN)    [<00000a0000409c84>] entry.o#guest_sync_slowpath+0xac/0xd8
(XEN)
(XEN) ****************************************
(XEN) Panic on CPU 0:
(XEN) Assertion 'npc->unit == unit' failed at common/sched/null.c:383
(XEN) ****************************************

Fix by skipping unit_deassign() when the unit to be removed does not
match the pcpu's currently assigned unit.

Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
---
See c2eae2614c8f ("sched/null: avoid crash after failed domU creation")

Another consequence of deferring complete_domain_destroy() is that
eventually domains may fail to be scheduled by the null scheduler,
despite domains/vcpus having previously been running on available pcpus
have been destroyed.

(XEN) common/sched/null.c:639: WARNING: d4v0 not assigned to any CPU!

... but that is a problem for another day. After all, I'm not sure how
common of a use case dynamic domain creation & destruction really is for
the null scheduler.
---
 xen/common/sched/null.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/common/sched/null.c b/xen/common/sched/null.c
index 7e31440e5b84..c8e327e3cdd0 100644
--- a/xen/common/sched/null.c
+++ b/xen/common/sched/null.c
@@ -557,7 +557,7 @@ static void cf_check null_unit_remove(
 
     cpu = sched_unit_master(unit);
     npc = get_sched_res(cpu)->sched_priv;
-    if ( npc->unit )
+    if ( npc->unit == unit )
         unit_deassign(prv, unit);
 
  out:

base-commit: befc384d21784affa3daf2abc85b02500e4dc545
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Thu Apr 03 21:50:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 21:50:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.937434.1338418 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0SSh-0007A7-0V; Thu, 03 Apr 2025 21:50:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 937434.1338418; Thu, 03 Apr 2025 21:50: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 1u0SSg-00079q-Tb; Thu, 03 Apr 2025 21:50:58 +0000
Received: by outflank-mailman (input) for mailman id 937434;
 Thu, 03 Apr 2025 21:50:58 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=GOX3=WV=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1u0SOT-0000LE-Mr
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 21:46:37 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on20630.outbound.protection.outlook.com
 [2a01:111:f403:2412::630])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1a98d05f-10d5-11f0-9ffb-bf95429c2676;
 Thu, 03 Apr 2025 23:46:32 +0200 (CEST)
Received: from DM5PR07CA0075.namprd07.prod.outlook.com (2603:10b6:4:ad::40) by
 IA0PR12MB7506.namprd12.prod.outlook.com (2603:10b6:208:442::14) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.47; Thu, 3 Apr
 2025 21:46:21 +0000
Received: from CY4PEPF0000EE33.namprd05.prod.outlook.com
 (2603:10b6:4:ad:cafe::69) by DM5PR07CA0075.outlook.office365.com
 (2603:10b6:4:ad::40) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8606.26 via Frontend Transport; Thu,
 3 Apr 2025 21:46:21 +0000
Received: from SATLEXMB03.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.8606.22 via Frontend Transport; Thu, 3 Apr 2025 21:46:21 +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, 3 Apr
 2025 16:46:19 -0500
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; Thu, 3 Apr
 2025 16:46:19 -0500
Received: from fedora.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; Thu, 3 Apr 2025 16:46:18 -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: 1a98d05f-10d5-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=y2rzr3MzCowT5gS7ivsGdya3RaJdq4w8G3ugRDHmGEvWlXGPR4keo6G5Nm0fAY6IgV0wj0fazL4hk74HNW6/9ZQK+/ejYPp85Ccm97MhRPXtiZkjnAJs+gEQKxA1a6O5XTfJf5Te71DzzI+DcwnoAhUIhTfZ7n8Ndu6Usy/6pebnM+QN2GjRAypyVuH/w7bxdcmHX3WzhKmg77vT3Zh9oSNCvhDKhISS3MWpJ4fOjPsYqx8DcwNtwHN3SXoOFDg9jnPTCgn73alC2yfs5eEDQqGVeMGF7wU3xuc6wrTSDRWK/8lUL21ErLysO7k8V0JmIhcCcyGqbqG/7IpJi+vWUw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Rn4FfE3RLkkDSEVkvFxm3VJYc8IGJk1EDPqEcHwIjaY=;
 b=dc5kq1ywfu31fqleXUh9liaNL2dPG0qsotQOiY2cXu/CNe/5SCUBRO50VoDONEm1PIITkn21oixf1obgLqMFMY7lSSy7l1ZUOp3CKUrCrqRujYXAcsI/mGjFIpL6xAYCAOaGSsT90M0F2Li4ZYNhtafpHZUwjHfWh5FEf2IhZkMuskrmqb5Y4YVP523K+WCDbEZSJBfcKs6IoKfAgbEYPdrDaO/IstK4qXLpcHVbn2X4JDnd1qlD4soanCSIhdvOOQfuh69lBkH+iGfCh+h/5KgYqxdhH8ho2YOpZCYeqJxRR4MV2ju53BdDfHismCcdS1Yf8BUyzKRCV0TnIAeQgQ==
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=Rn4FfE3RLkkDSEVkvFxm3VJYc8IGJk1EDPqEcHwIjaY=;
 b=YEt5rlTEieTkKnE3xH0LCatZ2pqp14naurQLJNyg+uTV2JGmTTW9CAiNnLYFmLXHOj2i8hDxQ6AKR1HirRETnYq69YjDTYd2924heloGijsEsl6qJSWNbT5UHAT9SMXuxHL1/OKgGy0QqAwW10FEvu2ZzgE1owKRof5Dgscga2M=
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>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, "Volodymyr
 Babchuk" <Volodymyr_Babchuk@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, "Jan
 Beulich" <jbeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>
Subject: [PATCH v3 7/7] xen/arm: Add capabilities to dom0less
Date: Thu, 3 Apr 2025 17:46:08 -0400
Message-ID: <20250403214608.152954-8-jason.andryuk@amd.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250403214608.152954-1-jason.andryuk@amd.com>
References: <20250403214608.152954-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: CY4PEPF0000EE33:EE_|IA0PR12MB7506:EE_
X-MS-Office365-Filtering-Correlation-Id: 3e6ad267-6b04-4910-15e2-08dd72f8f92c
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?mUEKsXmx7JIoCU2Mz2kv1VReG2LXvDmRiTTp0QUnBhs2hbjTezTVouEPtwEu?=
 =?us-ascii?Q?iNOieRm2DM1greiNN7WGL5hzpCXM9/hzzV8IW9NVoFpebSJimtG7wWdrQh6E?=
 =?us-ascii?Q?tPHSL3bfRHXz+XeI6fMqMXU3k4utjWzNuAhWML3VpJnCrt390gQB8aXEmp9i?=
 =?us-ascii?Q?Id9201N+YHT2xSzly710uaZ5p+sNQBKwES2DUmasU9YunYdMLLXjt+tA1puC?=
 =?us-ascii?Q?dRoNXH9ioPN8UO7wiIg7mQ30jeS72Ukz3hb7tWkLt63xqW/RxDbseznlItHn?=
 =?us-ascii?Q?jC++DcDnUZ7YSQ1r2wYBFwwI2RKCw91hbFp967kxjZxJJ3YpnYpouIVQ8PQW?=
 =?us-ascii?Q?P+PhfhRw2nwcJrb8gF5s6JDEIAzM/+nHKROQcD8LdD/FtA5n49rRnJ1CN6J1?=
 =?us-ascii?Q?avsUYglKFrnUiWfXJkU9iMtWhF+Sqb4EcSM1QygG9MPi4LLnQ6nbxkfjksiq?=
 =?us-ascii?Q?e9bMiyz0Z7CJHiKfnzw6nDXbYN03nYCTV4cwfPXAOqrK7Vo7X8QudMibyz/y?=
 =?us-ascii?Q?09nzM5dOVAcJA5RLKNT6VLZ/lzzHC++lbnFk+lK+MDEkP/h0jik3INSSk16b?=
 =?us-ascii?Q?XFm/toeGeex5MStrFVuvxFSFBNDSN31QalRYEoc6zUjq0hpBUCUeBqsh6VBw?=
 =?us-ascii?Q?eA7n9O5UDZ2uXHYkzSMbvb17Fp4tw49pAaJr7WOe00H+R7xvQm1jQTGhAFLO?=
 =?us-ascii?Q?Jbw1A/gEAmkn7huH3R1rtxmx3sFkt78Em8w43MUKV0XVDQJKl/MdtvurXBQx?=
 =?us-ascii?Q?1DqlqVZWXqz9ibiG9SA20EDYeYhg/2/PNuzFJLQdtCKrM3trzgkf1gl0sLm1?=
 =?us-ascii?Q?RxzuNAiEm+xaLXHqjl6RPjTcZeQk+WygPl/c+AB9fi2jA94JSXE2EZspfjcT?=
 =?us-ascii?Q?wmxjr5QigEUTiFCMMUkpgW38VOyra98gRQaT/Axg9+Vg71ou2C2fpwap8WKV?=
 =?us-ascii?Q?EkoZWwnkJzCde4sLZILoFXemxAU5I/EZXacu3kgJUHFAtr85oMVqz0hHDTWq?=
 =?us-ascii?Q?omsCflJq+A/dQRF1PVg4AK8NydcZQXAAInNjnWP1qPrdNmslzHJIe3zj9K6q?=
 =?us-ascii?Q?uv4UdDZXXjCjPI57ctV+ZxJa2agN8RxOvWp5QhQUuGNnDDTAEJs6RY8jmh6a?=
 =?us-ascii?Q?1Ynq5A8K25ujcQJQs5eQPBHzDdi/XgRUWJgIb2ksvqu8ebSF2YWO1vd74ieq?=
 =?us-ascii?Q?4w69rdzxuR3YJrd7n7AHxHqgA5z9MnAsjRZMV+3ZHwjaVqib0rqr2hLSkTdK?=
 =?us-ascii?Q?T5QwxuSvLuVldT9LmAwlY8hCai4MFPAPGj9JbHSyWxn0xtGWZoumYzUkEXV+?=
 =?us-ascii?Q?P10srFuCy4s6Rkq5yIevu2uGkQ0M0YOibyE8vj2X5jH/mVInktZQ9keP8fx3?=
 =?us-ascii?Q?WANk2LGy1PUf3xjA/LK5t2alj34PRqphmZICVdlSVzmPSGsNe0b2xvv0ZNEB?=
 =?us-ascii?Q?yC24CRJ4HGlYL5spgU/oXcBVN44fu8psa22LBAeTttMKybdhamIROXa4mQYr?=
 =?us-ascii?Q?wmOexukBZi4g6MQ=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)(376014)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Apr 2025 21:46:21.2944
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 3e6ad267-6b04-4910-15e2-08dd72f8f92c
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:
	CY4PEPF0000EE33.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PR12MB7506

Add a capabilities property to dom0less to allow building a
disaggregated system.  Only a single hardware domain and single xenstore
domain can be specified.  Multiple control domains are possible.

Introduce bootfdt.h to contain these constants.

When using the hardware or xenstore capabilities, adjust the grant and
event channel limits similar to dom0.

For a hardware domain, disallow specifying "vpl011", "nr_spis",
"multiboot,device-tree" and "passthrough" nodes.  Also, require an IOMMU
when not direct-mapped,

Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
---
v3:
Specify 32bit integer in booting.txt & s/all all/all/
Panic on !direct-map && !iommu
Panic "multiboot,device-tree" or "passthrough" with hardware domain
Include asm/grant_table.h for CONFIG_GRANT_TABLE=n

v2:
Fix comment style
Make DOMAIN_CAPS_* unsigned
Remove forced directmap & iommu
Require iommu with use of hardware domain
Limit to a single xenstore domain

There is overlap with hyperlaunch.  The numeric values are the same.
Hyperlaunch doesn't expose the values in a public header as done here.
Is this to be expected for dom0less?  It seems most of dom0less isn't in
a header, but just in docs.

Hyperlaunch uses BUILD_CAPS_, but I chose DOMAIN_CAPS_ since there are
domain-level capabilities.

Only a single xenstore and hardware domain make sense.  Hardware domain
receiving all hardware can only have a single domain.

For Xenstore, the logic latches the single xs_domid and uses that for
all domains.  Also, only a single domain can register for VIRQ_DOM_EXC.
---
 docs/misc/arm/device-tree/booting.txt | 11 ++++++
 xen/arch/arm/dom0less-build.c         | 57 +++++++++++++++++++++++++--
 xen/arch/arm/domain.c                 |  3 +-
 xen/include/public/bootfdt.h          | 31 +++++++++++++++
 4 files changed, 98 insertions(+), 4 deletions(-)
 create mode 100644 xen/include/public/bootfdt.h

diff --git a/docs/misc/arm/device-tree/booting.txt b/docs/misc/arm/device-tree/booting.txt
index ac781c9cc8..59fa96a82e 100644
--- a/docs/misc/arm/device-tree/booting.txt
+++ b/docs/misc/arm/device-tree/booting.txt
@@ -167,6 +167,17 @@ with the following properties:
     Refer to docs/misc/cache_coloring.rst for syntax. This option is applicable
     only to Arm64 guests.
 
+- capabilities
+    Optional.  A 32-bit integer representing a bit field of domain capabilities
+    for a disaggregated system.  A traditional dom0 has all of these
+    capabilities, and a domU has none of them.
+
+    0x1 DOMAIN_CAPS_CONTROL  - A privileged, control domain
+    0x2 DOMAIN_CAPS_HARDWARE - The hardware domain - there can be only 1
+    0x4 DOMAIN_CAPS_XENSTORE - The xenstore domain - there can be only 1
+
+    The default is no capabilities.
+
 - vpl011
 
     An empty property to enable/disable a virtual pl011 for the guest to
diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
index a72961dfb4..7363943835 100644
--- a/xen/arch/arm/dom0less-build.c
+++ b/xen/arch/arm/dom0less-build.c
@@ -12,11 +12,13 @@
 #include <xen/sizes.h>
 #include <xen/vmap.h>
 
+#include <public/bootfdt.h>
 #include <public/io/xs_wire.h>
 
 #include <asm/arm64/sve.h>
 #include <asm/dom0less-build.h>
 #include <asm/domain_build.h>
+#include <asm/grant_table.h>
 #include <asm/static-memory.h>
 #include <asm/static-shmem.h>
 
@@ -926,6 +928,8 @@ static int __init construct_domU(struct domain *d,
            d->max_vcpus, mem);
 
     kinfo.vpl011 = dt_property_read_bool(node, "vpl011");
+    if ( kinfo.vpl011 && is_hardware_domain(d) )
+        panic("hardware domain cannot specify vpl011\n");
 
     rc = dt_property_read_string(node, "xen,enhanced", &dom0less_enhanced);
     if ( rc == -EILSEQ ||
@@ -1041,6 +1045,37 @@ void __init create_domUs(void)
         if ( (max_init_domid + 1) >= DOMID_FIRST_RESERVED )
             panic("No more domain IDs available\n");
 
+        if ( dt_property_read_u32(node, "capabilities", &val) )
+        {
+            if ( val & ~DOMAIN_CAPS_MASK )
+                panic("Invalid capabilities (%"PRIx32")\n", val);
+
+            if ( val & DOMAIN_CAPS_CONTROL )
+                flags |= CDF_privileged;
+
+            if ( val & DOMAIN_CAPS_HARDWARE )
+            {
+                if ( hardware_domain )
+                    panic("Only 1 hardware domain can be specified! (%pd)\n",
+                           hardware_domain);
+
+                d_cfg.max_grant_frames = gnttab_dom0_frames();
+                d_cfg.max_evtchn_port = -1;
+                flags |= CDF_hardware;
+                iommu = true;
+            }
+
+            if ( val & DOMAIN_CAPS_XENSTORE )
+            {
+                if ( xs_domid != DOMID_INVALID )
+                    panic("Only 1 xenstore domain can be specified! (%u)\n",
+                          xs_domid);
+
+                d_cfg.flags |= XEN_DOMCTL_CDF_xs_domain;
+                d_cfg.max_evtchn_port = -1;
+            }
+        }
+
         if ( dt_find_property(node, "xen,static-mem", NULL) )
         {
             if ( llc_coloring_enabled )
@@ -1062,12 +1097,26 @@ void __init create_domUs(void)
             panic("Missing property 'cpus' for domain %s\n",
                   dt_node_name(node));
 
-        if ( !dt_property_read_string(node, "passthrough", &dom0less_iommu) &&
-             !strcmp(dom0less_iommu, "enabled") )
-            iommu = true;
+        if ( !dt_property_read_string(node, "passthrough", &dom0less_iommu) )
+        {
+            if ( flags & CDF_hardware )
+                panic("Don't specify passthrough for hardware domain\n");
+
+            if ( !strcmp(dom0less_iommu, "enabled") )
+                iommu = true;
+        }
+
+        if ( (flags & CDF_hardware) && !(flags & CDF_directmap) &&
+             !iommu_enabled )
+            panic("non-direct mapped hardware domain requires iommu\n");
 
         if ( dt_find_compatible_node(node, NULL, "multiboot,device-tree") )
+        {
+            if ( flags & CDF_hardware )
+                panic("\"multiboot,device-tree\" incompatible with hardware domain\n");
+
             has_dtb = true;
+        }
 
         if ( iommu_enabled && (iommu || has_dtb) )
             d_cfg.flags |= XEN_DOMCTL_CDF_iommu;
@@ -1104,6 +1153,8 @@ void __init create_domUs(void)
                 d_cfg.arch.nr_spis = MAX(d_cfg.arch.nr_spis,
                                          vpl011_virq - 32 + 1);
         }
+        else if ( flags & CDF_hardware )
+            panic("nr_spis cannot be specified for hardware domain\n");
 
         /* Get the optional property domain-cpupool */
         cpupool_node = dt_parse_phandle(node, "domain-cpupool", 0);
diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
index 3ba959f866..dc4b4e84c1 100644
--- a/xen/arch/arm/domain.c
+++ b/xen/arch/arm/domain.c
@@ -608,7 +608,8 @@ 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_optional = (XEN_DOMCTL_CDF_iommu | XEN_DOMCTL_CDF_vpmu |
+                                   XEN_DOMCTL_CDF_xs_domain );
     unsigned int sve_vl_bits = sve_decode_vl(config->arch.sve_vl);
 
     if ( (config->flags & ~flags_optional) != flags_required )
diff --git a/xen/include/public/bootfdt.h b/xen/include/public/bootfdt.h
new file mode 100644
index 0000000000..86c46b42a9
--- /dev/null
+++ b/xen/include/public/bootfdt.h
@@ -0,0 +1,31 @@
+/* SPDX-License-Identifier: MIT */
+/*
+ * Xen Device Tree boot information
+ *
+ * Information for configuring Xen domains created at boot time.
+ */
+
+#ifndef __XEN_PUBLIC_BOOTFDT_H__
+#define __XEN_PUBLIC_BOOTFDT_H__
+
+/*
+ * Domain Capabilities specified in the "capabilities" property.  Use of
+ * this property allows splitting up the monolithic dom0 into separate,
+ * less privileged components.  A regular domU has no capabilities
+ * (which is the default if nothing is specified).  A traditional dom0
+ * has all three capabilities.
+ */
+
+/* Control/Privileged domain capable of affecting other domains. */
+#define DOMAIN_CAPS_CONTROL  (1U << 0)
+/*
+ * Hardware domain controlling physical hardware.  Typically providing
+ * backends to other domains.
+ */
+#define DOMAIN_CAPS_HARDWARE (1U << 1)
+/* Xenstore domain. */
+#define DOMAIN_CAPS_XENSTORE (1U << 2)
+#define DOMAIN_CAPS_MASK     (DOMAIN_CAPS_CONTROL | DOMAIN_CAPS_HARDWARE | \
+                              DOMAIN_CAPS_XENSTORE)
+
+#endif /* __XEN_PUBLIC_BOOTFDT_H__ */
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Thu Apr 03 21:56:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 21:56:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.937462.1338428 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0SXU-00081J-M8; Thu, 03 Apr 2025 21:55:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 937462.1338428; Thu, 03 Apr 2025 21:55:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0SXU-00081C-J7; Thu, 03 Apr 2025 21:55:56 +0000
Received: by outflank-mailman (input) for mailman id 937462;
 Thu, 03 Apr 2025 21:55:54 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=JbNy=WV=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u0SXS-00080n-Sf
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 21:55:54 +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 69f8e75a-10d6-11f0-9eaa-5ba50f476ded;
 Thu, 03 Apr 2025 23:55:53 +0200 (CEST)
Received: by mail-wr1-x42d.google.com with SMTP id
 ffacd0b85a97d-39c2688619bso917429f8f.1
 for <xen-devel@lists.xenproject.org>; Thu, 03 Apr 2025 14:55:54 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39c30226f2bsm2805855f8f.96.2025.04.03.14.55.52
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 03 Apr 2025 14:55:53 -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: 69f8e75a-10d6-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1743717353; x=1744322153; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=jEk4p1EGuiNew82uYqfK9X7g/oQhrIPhVM+dtL/2Fpk=;
        b=idR9Ld8lmLEcj+WMZ0xkIXiS9t8mk5eQSS88RuKMXHonixGTNvfY9jVkfQ3N/dGXwF
         t7ZiUbHdxoTk/QcHOM6qXJbCsDGHZiLVQ+k0wK3e3AbOwvkIHz3vkb3sXMdcGA7YTHFr
         KaQHGe3v2eoM4amfaVPBf4F0rcWhr9V3HSAsI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743717353; x=1744322153;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=jEk4p1EGuiNew82uYqfK9X7g/oQhrIPhVM+dtL/2Fpk=;
        b=uoxSs+zQLXHfssuhv8S4AOPRXWt6D6y9mEvRZK8I+qoOiaoAQdpcsoXLwrtd1il6e+
         zInEFTk+zwWVuCcdWw4WVQZpExXMAO+/4mzsa3B3JI1NRqqwYbtrphzBFpl1FJvCeWCj
         l5TlyXD8MA/tJRpM9DQzhlUPwupmqtSeT9rOCSUrj+b2EnSN2Y21uTTwx6mC4d8C0b5P
         8cV/E0RTkYFpU34+Ds23M4nnV3qdvxS0O+TLnQaThSMcOiYdI7Yx634TdrncgJfOXtE5
         7IANcFflCtMi9eafC2WmxGFcXPx0q9R1ptL6QPQA8E+ge1OphFkhwalOczfCLbgrqS5H
         1l+w==
X-Forwarded-Encrypted: i=1; AJvYcCWgHL/GgUXLRThxxBF+nixURH46sFmkvE11K40nqnxuv63Tlq0hnAAj+8TQQHHh12JAtqxynRiBCSk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzcPOZ7iRTPoSybfcIe7EESMCBSxLcWgqm5AdSoEH41NwlJ5wkT
	Ddr6+tyKtc4vKYU5HK1C7FFPx5sEBsgM5zvdKZIjESoMQsMOadyflTIh0KNpbI4=
X-Gm-Gg: ASbGncu684g1s4UVXQxSXI1bQL/iaTJEqGpS/aif88+S0CJpxtmz+WcnPoG5U5FzqDm
	qTO+zoa4fIH6yvrh8tGy8lNatIkpbBHgyNchroEB7tCS6PB1M1t6IgSDDnWhcQuLbKTydjrS4MB
	DzwkoJsRZnjPrAzT9RTHmHcxjSZIEF808W8Vs7QTCIyvDTxj86LaLiaQ95pc9uEF1ue7nqHxcOE
	o8GgMOTkOPEVv+N6j4621Gd3MRny8z63hvPxumY/bQKFX/IuJJuKGy0tzxPaahXBQzk0szklSu7
	qHOK3k6rpk+hnN/NFQF8kAi7NXKv6wCj1gxEHP+VOJiz4djulK3681K4fzpNC50bw2FxECH9hkj
	vDlI3NQ03D4jurULrg6H+
X-Google-Smtp-Source: AGHT+IEQ/G7fCl/PPMw5NWlIu7fUiuVmfVEGcS4iKpzVyES71q32bO3lGKhkUCNTFKq7nw6/a447pg==
X-Received: by 2002:a5d:648e:0:b0:39a:c9ae:9efe with SMTP id ffacd0b85a97d-39cb35be4a0mr720993f8f.18.1743717353435;
        Thu, 03 Apr 2025 14:55:53 -0700 (PDT)
Message-ID: <ddf63f06-4b27-4113-b407-102afe8dd59c@citrix.com>
Date: Thu, 3 Apr 2025 22:55:52 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH] x86/amd: Add support for AMD TCE
To: Teddy Astie <teddy.astie@vates.tech>, Jan Beulich <jbeulich@suse.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <6b751a400df49217defc89a19b3ac2ca33ab7690.1743683787.git.teddy.astie@vates.tech>
 <73b1dd32-c15e-46c4-982c-9b7a33c8785b@suse.com>
 <463eca2f-9e2a-474c-ae5a-4ed6cfe01ff8@citrix.com>
 <7056c584-a95e-401b-bb35-e5d0e4171878@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: <7056c584-a95e-401b-bb35-e5d0e4171878@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 03/04/2025 7:36 pm, Teddy Astie wrote:
> Yes, while proving it on the hypervisor side may be doable, I am quite 
> unsure about PV guests.
> Some calls to HYPERVISOR_mmuext_op incidentally call invlpg and alike 
> which could be affected with this change, as the guest can "assume" some 
> behavior aspects of invlpg.

I wouldn't worry about PV guests.

They have to delegate TLB flushing to Xen anyway, and already don't get
to choose whether Xen uses INVLPG, or INVPCID, or something else to
perform the requested action.

We've e.g. switched from INVLPG to INVPCID as a consequence of Meltdown,
and nothing exploded[1].

> Aside enabling this flag for Xen/PV guests, it can be useful to expose 
> it to the guests. While it's currently not going to change anything as 
> most of the related instructions are trapped and managed by the 
> hypervisor, it does affect the behavior of inside-guest INVLPGB if 
> enabled in the VMCB.

Good point.  Linux 6.14 does now use it when available.

You should split this patch in two.

First patch exposes it for guests, so use an H tag in cpufeatureset.h
(available in HAP domains by default), and adjust hvm_efer_valid().  I
think that's all you need to do, although remember CHANGELOG.md.

Then the second patch turns it on for Xen.

~Andrew

[1] Well, XSA-292 was a spectacular explosion, but we fixed that.


From xen-devel-bounces@lists.xenproject.org Thu Apr 03 23:22:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 23:22:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.937483.1338438 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0TtL-0005pb-IO; Thu, 03 Apr 2025 23:22:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 937483.1338438; Thu, 03 Apr 2025 23: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 1u0TtL-0005pU-FP; Thu, 03 Apr 2025 23:22:35 +0000
Received: by outflank-mailman (input) for mailman id 937483;
 Thu, 03 Apr 2025 23: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=gu4W=WV=edera.dev=alexander@srs-se1.protection.inumbo.net>)
 id 1u0TtJ-0005pO-H3
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 23:22:33 +0000
Received: from mail-qk1-x731.google.com (mail-qk1-x731.google.com
 [2607:f8b0:4864:20::731])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 81dfa565-10e2-11f0-9ffb-bf95429c2676;
 Fri, 04 Apr 2025 01:22:28 +0200 (CEST)
Received: by mail-qk1-x731.google.com with SMTP id
 af79cd13be357-7c56a3def84so132170585a.0
 for <xen-devel@lists.xenproject.org>; Thu, 03 Apr 2025 16:22:28 -0700 (PDT)
Received: from dell.axolotl-tone.ts.net
 ([2605:9480:312:2031:4ed7:17ff:feaa:a013])
 by smtp.gmail.com with ESMTPSA id
 af79cd13be357-7c76ea8f8f3sm134106285a.110.2025.04.03.16.22.24
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 03 Apr 2025 16:22:26 -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: 81dfa565-10e2-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=edera.dev; s=google; t=1743722547; x=1744327347; 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=8klrRKu2RIliPNwwgLNPRbdN+AHscLCfYpURpberkhM=;
        b=Ek9gYFKZmY/N99Z+2phH6xqzgA9eHVMHAP6YRVD52wtmT9TXDn3ha6rEc1qZVYJ/BA
         r+bQAe94uooswf//d8aAIBLApmq7A64QhH3QFSslOHTjRs9DZG/2WqIvQ1q1l+/6tuys
         a9BVe2LPLtbjH1GfimPDYCfgM4Mqr3z0wZlRGYL4xPgwrzjAZowil6LXMJEzl6mi1Ute
         7oZ9dq7bbcEQ7uZvT0ccFWLxXBQDR4HKLxL20HQbOgnnJgWeBSQPp2z8hznoMXxOlNeR
         o8OjRHCEnWfk7TlIDOQo4er8xziqzqVJgG3xlgU54Iy1irrl/Y8Dwbxi3dKtwhiZiohu
         xjZw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743722547; x=1744327347;
        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=8klrRKu2RIliPNwwgLNPRbdN+AHscLCfYpURpberkhM=;
        b=ch3oPPNWjls0gmIJgdrOM+BIu8Y1Ry2S96hvLFQ73xjypEszYB3/FIDHOP/r37elGh
         zJMKLrDNHYm4Sjl5jj/Ya2DEKT0KuaAS9qRQ9WSIrLMGY6tNf74hX8hXhiCFzO60ysYM
         wKAJy0lFfakQzkuMo+VgBEqPkED3O9WrFMRVa+xGd4qNYws5YuUfhfT+qArFidXPteJO
         KnxIHYZWJ8Y0Cg5/gsftfbxWFKiNh0dUVVw+Od53LGKTmZOfDMCye9xBT1e5TtKGkDZC
         DpuOyAVvkgn6EB763Jro3n0R2ajkj2K4TVmueJJFCNzJvvC2XmE4s5paQY5YftT2rSnV
         KC8A==
X-Gm-Message-State: AOJu0YzHdljzkofbmJpEI0z7cVhhBLYUKyD5SCk/cREEXdEa66+H8msG
	l6htLCr3dL6Lsx0iIFi0dyDptyI8ypdIIbgXAf0XHhpp2lvrusGY+VAwSTGKQQlTLg2BKyvVU5w
	W9Z4=
X-Gm-Gg: ASbGncsosZWGm+VqP0NeZroMsNeduxydnXROPFVuSJNU4kqmrjQtBDqXCg83j4yIoEf
	U9kjeAEOkffkRkkep7/s3CUu76O89yrWyjUn3q3pv8qJm+9xqMQGeOboWQWuwMcPWP/7s9jHGMe
	Q0tZoDnSNORu7DzF0RPqhpjUPTJoQ7DFai8X6DZuHHsIfcHRGGMzL+HI/kc1sy4AgLTtfwrroxw
	4W3GzzQzD2EX4RiLDR9gWOJvf3UH7ab1/uhtFUhnxYJHTMA6D4AoBBBJmNxS6LbpbsYz5lH9evp
	gLdHpNnvoYIcOyx1Yc7YSJtqNu9xgI1PeYXtOyU2rrHdpMjuMG6iDkHW+p1o35ew
X-Google-Smtp-Source: AGHT+IHxfbzSlx7zX9X+w3q0ALAHutiIvQHxdMAdeap0X0Ebh+d0ez7SbzvWXeI5z4LKOfdUg5I+Aw==
X-Received: by 2002:a05:620a:29c3:b0:7c5:65fb:fe0e with SMTP id af79cd13be357-7c774d099b0mr157542985a.6.1743722546701;
        Thu, 03 Apr 2025 16:22:26 -0700 (PDT)
From: "Alexander M. Merritt" <alexander@edera.dev>
To: xen-devel@lists.xenproject.org
Cc: "Alexander M. Merritt" <alexander@edera.dev>,
	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: drop XSAVEOPT and CLWB build flags
Date: Thu,  3 Apr 2025 23:22:19 +0000
Message-ID: <3de09e4e2a3320e0f314803e349fbe6520d04b12.1743719892.git.alexander@edera.dev>
X-Mailer: git-send-email 2.45.2
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The new toolchain baseline knows both the XSAVEOPT and CLWB instructions.

Resolves: https://gitlab.com/xen-project/xen/-/work_items/205
Signed-off-by: Alexander M. Merritt <alexander@edera.dev>
---
 xen/arch/x86/arch.mk              |  2 --
 xen/arch/x86/flushtlb.c           | 28 +---------------------------
 xen/arch/x86/include/asm/system.h |  7 -------
 3 files changed, 1 insertion(+), 36 deletions(-)

diff --git a/xen/arch/x86/arch.mk b/xen/arch/x86/arch.mk
index 258e459bec..baa83418bc 100644
--- a/xen/arch/x86/arch.mk
+++ b/xen/arch/x86/arch.mk
@@ -15,9 +15,7 @@ $(call as-option-add,CFLAGS,CC,"crc32 %eax$(comma)%eax",-DHAVE_AS_SSE4_2)
 $(call as-option-add,CFLAGS,CC,"invept (%rax)$(comma)%rax",-DHAVE_AS_EPT)
 $(call as-option-add,CFLAGS,CC,"rdrand %eax",-DHAVE_AS_RDRAND)
 $(call as-option-add,CFLAGS,CC,"rdfsbase %rax",-DHAVE_AS_FSGSBASE)
-$(call as-option-add,CFLAGS,CC,"xsaveopt (%rax)",-DHAVE_AS_XSAVEOPT)
 $(call as-option-add,CFLAGS,CC,"rdseed %eax",-DHAVE_AS_RDSEED)
-$(call as-option-add,CFLAGS,CC,"clwb (%rax)",-DHAVE_AS_CLWB)
 $(call as-option-add,CFLAGS,CC,".equ \"x\"$(comma)1",-DHAVE_AS_QUOTED_SYM)
 $(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)
diff --git a/xen/arch/x86/flushtlb.c b/xen/arch/x86/flushtlb.c
index 65be0474a8..962bb87d69 100644
--- a/xen/arch/x86/flushtlb.c
+++ b/xen/arch/x86/flushtlb.c
@@ -313,33 +313,7 @@ void cache_writeback(const void *addr, unsigned int size)
     clflush_size = current_cpu_data.x86_clflush_size ?: 16;
     addr -= (unsigned long)addr & (clflush_size - 1);
     for ( ; addr < end; addr += clflush_size )
-    {
-/*
- * The arguments to a macro must not include preprocessor directives. Doing so
- * results in undefined behavior, so we have to create some defines here in
- * order to avoid it.
- */
-#if defined(HAVE_AS_CLWB)
-# define CLWB_ENCODING "clwb %[p]"
-#elif defined(HAVE_AS_XSAVEOPT)
-# define CLWB_ENCODING "data16 xsaveopt %[p]" /* clwb */
-#else
-# define CLWB_ENCODING ".byte 0x66, 0x0f, 0xae, 0x30" /* clwb (%%rax) */
-#endif
-
-#define BASE_INPUT(addr) [p] "m" (*(const char *)(addr))
-#if defined(HAVE_AS_CLWB) || defined(HAVE_AS_XSAVEOPT)
-# define INPUT BASE_INPUT
-#else
-# define INPUT(addr) "a" (addr), BASE_INPUT(addr)
-#endif
-
-        asm volatile (CLWB_ENCODING :: INPUT(addr));
-
-#undef INPUT
-#undef BASE_INPUT
-#undef CLWB_ENCODING
-    }
+        asm volatile ("clwb %[p]" :: [p] "m" (*(const char *)(addr)));
 
     asm volatile ("sfence" ::: "memory");
 }
diff --git a/xen/arch/x86/include/asm/system.h b/xen/arch/x86/include/asm/system.h
index 8ceaaf45d1..c3529f99dd 100644
--- a/xen/arch/x86/include/asm/system.h
+++ b/xen/arch/x86/include/asm/system.h
@@ -28,14 +28,7 @@ static inline void clflushopt(const void *p)
 
 static inline void clwb(const void *p)
 {
-#if defined(HAVE_AS_CLWB)
     asm volatile ( "clwb %0" :: "m" (*(const char *)p) );
-#elif defined(HAVE_AS_XSAVEOPT)
-    asm volatile ( "data16 xsaveopt %0" :: "m" (*(const char *)p) );
-#else
-    asm volatile ( ".byte 0x66, 0x0f, 0xae, 0x32"
-                   :: "d" (p), "m" (*(const char *)p) );
-#endif
 }
 
 #define xchg(ptr,v) \
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Thu Apr 03 23:28:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 23:28:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.937495.1338448 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0TzO-0006QZ-7h; Thu, 03 Apr 2025 23:28:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 937495.1338448; Thu, 03 Apr 2025 23: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 1u0TzO-0006QS-3s; Thu, 03 Apr 2025 23:28:50 +0000
Received: by outflank-mailman (input) for mailman id 937495;
 Thu, 03 Apr 2025 23:28:48 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=JbNy=WV=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u0TzM-0006QM-EG
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 23:28:48 +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 6164860b-10e3-11f0-9ffb-bf95429c2676;
 Fri, 04 Apr 2025 01:28:43 +0200 (CEST)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-4394345e4d5so9522205e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 03 Apr 2025 16:28:43 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43ec1795db7sm34807235e9.25.2025.04.03.16.28.41
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 03 Apr 2025 16:28: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: 6164860b-10e3-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1743722922; x=1744327722; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=FpOYHRtlvpmL+/aqLFMiinJiy06nm2czDpCqomGNdKk=;
        b=qigXFze8OhWuC+tRcaePtSygD0SAXGJu9s7SUfhC4luDOEYqL7AVmAh4QqOQTheV0P
         ouYVa/00Ki6Cfzi+lVm8j6MxXEmYT+PaJHmQqhnTerjSboiSakWaCkDuwDqd7ML+Zmiw
         ErVx5hiSgaUrxkdNYMzy60hWOA4t1v4sy9Yfo=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743722922; x=1744327722;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=FpOYHRtlvpmL+/aqLFMiinJiy06nm2czDpCqomGNdKk=;
        b=wW/ECMq5E1JNav6M+nutXsU3Us+TVO9c3Hv9fpf02CwF/4k2rkgV/Sd6ytAA7sY3A7
         sgIVt3H4QHwZkOWJ/BI23g9+Z1neEjLUOuZPZEvEv7tngKq9c/25W2jfE0BKen19bZR5
         QkeGxvR2CAMt8Qex6uTt0kD2PPRxw4dRwvQJKfY/oAXp4TGU9lneDvQH4YFxAk5DNCrS
         47NdlaeilO1u0/quK9NR7uo2o+JROoidn9xLWFLK3YfRqKQfif8SCwtSClg780tpbukx
         OZJKvdpEHBx85APbhdPVzGCvTKkdNeduQeGGqpvXpaxwL0Itzoj1WLPQLr1zbCoulGGy
         2b5A==
X-Forwarded-Encrypted: i=1; AJvYcCV6omoZFQo7+667P8SIQwju+4fbrZZ9o+eGjSuka3A+FWtlTkmPH+dZ0pG76cPVsURZhwMzKkiq/6Y=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz0knfb5Qnwie5tiZxXOeT8UT34Wsdj3b0Cl40823ILzEQg5Ag2
	zufB1l4kI5dFSxk8KgXf1ro06TPDXteKAnwv5pnQDFOTQmmPGVojQJv6rVaITHU=
X-Gm-Gg: ASbGncu2zzQi5WaWKYucmETdWqtixdOYA667wG3yYSh4By0x9Js1lposhBwtP10Yg7W
	HT7lIlFKyHePSPx2zlf0sMQ/PkTqcD6/AghtNUKJO2GPL1feLg5XfYUtrKPcXGHAIFJOnSlMUg1
	5iivatNddVQK4P4+IPMDyEF5E15g+l552ZAQSE7a0Z5HF0TrkD9u4TOEYiLgmmkn+1gN1QOMUXo
	IHgl0mlQORvz/Eq/WvOY6FefFwkPcAkaJgbwq/Z4p9p00UDKcrqqdrKoSVSmdZEJ0MgwmuUDTnT
	ixGfm0DSG7vqC8teZ20VPp+H1RgPFHi7yru/xLF5kcuQ+0RKcO2h+91LiBMMc4KPVtMOcyzDfNO
	mst3mGvcboA==
X-Google-Smtp-Source: AGHT+IGTrFl0lERxTKm2YD+xc4hC5R8EEBzFaWV/lOWuosgKnYSiaIQZzkwzciLlQuxXJPtAskK/8Q==
X-Received: by 2002:a05:6000:4205:b0:391:4b8e:a200 with SMTP id ffacd0b85a97d-39cba932823mr800517f8f.32.1743722922059;
        Thu, 03 Apr 2025 16:28:42 -0700 (PDT)
Message-ID: <c07ec835-3c69-4cf9-ba6a-39d6152393bf@citrix.com>
Date: Fri, 4 Apr 2025 00:28:41 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86: drop XSAVEOPT and CLWB build flags
To: "Alexander M. Merritt" <alexander@edera.dev>,
 xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <3de09e4e2a3320e0f314803e349fbe6520d04b12.1743719892.git.alexander@edera.dev>
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: <3de09e4e2a3320e0f314803e349fbe6520d04b12.1743719892.git.alexander@edera.dev>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 04/04/2025 12:22 am, Alexander M. Merritt wrote:
> The new toolchain baseline knows both the XSAVEOPT and CLWB instructions.

I know that's what I wrote on the ticket, but what I'd forgotten was
that we only use XSAVEOPT for it's operand.

Really what we're doing here is knowing CLWB, and also getting rid of
the XSAVEOPT workaround for somewhat-more-old toolchains.

>
> Resolves: https://gitlab.com/xen-project/xen/-/work_items/205
> Signed-off-by: Alexander M. Merritt <alexander@edera.dev>
> ---
>  xen/arch/x86/arch.mk              |  2 --
>  xen/arch/x86/flushtlb.c           | 28 +---------------------------
>  xen/arch/x86/include/asm/system.h |  7 -------
>  3 files changed, 1 insertion(+), 36 deletions(-)
>
> diff --git a/xen/arch/x86/arch.mk b/xen/arch/x86/arch.mk
> index 258e459bec..baa83418bc 100644
> --- a/xen/arch/x86/arch.mk
> +++ b/xen/arch/x86/arch.mk
> @@ -15,9 +15,7 @@ $(call as-option-add,CFLAGS,CC,"crc32 %eax$(comma)%eax",-DHAVE_AS_SSE4_2)
>  $(call as-option-add,CFLAGS,CC,"invept (%rax)$(comma)%rax",-DHAVE_AS_EPT)
>  $(call as-option-add,CFLAGS,CC,"rdrand %eax",-DHAVE_AS_RDRAND)
>  $(call as-option-add,CFLAGS,CC,"rdfsbase %rax",-DHAVE_AS_FSGSBASE)
> -$(call as-option-add,CFLAGS,CC,"xsaveopt (%rax)",-DHAVE_AS_XSAVEOPT)
>  $(call as-option-add,CFLAGS,CC,"rdseed %eax",-DHAVE_AS_RDSEED)
> -$(call as-option-add,CFLAGS,CC,"clwb (%rax)",-DHAVE_AS_CLWB)
>  $(call as-option-add,CFLAGS,CC,".equ \"x\"$(comma)1",-DHAVE_AS_QUOTED_SYM)
>  $(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)
> diff --git a/xen/arch/x86/flushtlb.c b/xen/arch/x86/flushtlb.c
> index 65be0474a8..962bb87d69 100644
> --- a/xen/arch/x86/flushtlb.c
> +++ b/xen/arch/x86/flushtlb.c
> @@ -313,33 +313,7 @@ void cache_writeback(const void *addr, unsigned int size)
>      clflush_size = current_cpu_data.x86_clflush_size ?: 16;
>      addr -= (unsigned long)addr & (clflush_size - 1);
>      for ( ; addr < end; addr += clflush_size )
> -    {
> -/*
> - * The arguments to a macro must not include preprocessor directives. Doing so
> - * results in undefined behavior, so we have to create some defines here in
> - * order to avoid it.
> - */
> -#if defined(HAVE_AS_CLWB)
> -# define CLWB_ENCODING "clwb %[p]"
> -#elif defined(HAVE_AS_XSAVEOPT)
> -# define CLWB_ENCODING "data16 xsaveopt %[p]" /* clwb */
> -#else
> -# define CLWB_ENCODING ".byte 0x66, 0x0f, 0xae, 0x30" /* clwb (%%rax) */
> -#endif
> -
> -#define BASE_INPUT(addr) [p] "m" (*(const char *)(addr))
> -#if defined(HAVE_AS_CLWB) || defined(HAVE_AS_XSAVEOPT)
> -# define INPUT BASE_INPUT
> -#else
> -# define INPUT(addr) "a" (addr), BASE_INPUT(addr)
> -#endif
> -
> -        asm volatile (CLWB_ENCODING :: INPUT(addr));
> -
> -#undef INPUT
> -#undef BASE_INPUT
> -#undef CLWB_ENCODING
> -    }
> +        asm volatile ("clwb %[p]" :: [p] "m" (*(const char *)(addr)));

One minor note about whitespace.  We typically have spaces inside the
outermost brackets on asm statements, as per the clwb() example below.

Also, given the expression is so simple, I'd just use %0 and drop the
[p].  It's just line-verbosity here.

Can fix both on commit if you're happy.

Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>


>  
>      asm volatile ("sfence" ::: "memory");
>  }
> diff --git a/xen/arch/x86/include/asm/system.h b/xen/arch/x86/include/asm/system.h
> index 8ceaaf45d1..c3529f99dd 100644
> --- a/xen/arch/x86/include/asm/system.h
> +++ b/xen/arch/x86/include/asm/system.h
> @@ -28,14 +28,7 @@ static inline void clflushopt(const void *p)
>  
>  static inline void clwb(const void *p)
>  {
> -#if defined(HAVE_AS_CLWB)
>      asm volatile ( "clwb %0" :: "m" (*(const char *)p) );
> -#elif defined(HAVE_AS_XSAVEOPT)
> -    asm volatile ( "data16 xsaveopt %0" :: "m" (*(const char *)p) );
> -#else
> -    asm volatile ( ".byte 0x66, 0x0f, 0xae, 0x32"
> -                   :: "d" (p), "m" (*(const char *)p) );
> -#endif
>  }
>  
>  #define xchg(ptr,v) \



From xen-devel-bounces@lists.xenproject.org Thu Apr 03 23:34:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 23:34:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.937507.1338458 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0U4V-0000u2-Pe; Thu, 03 Apr 2025 23:34:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 937507.1338458; Thu, 03 Apr 2025 23: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 1u0U4V-0000tv-Ly; Thu, 03 Apr 2025 23:34:07 +0000
Received: by outflank-mailman (input) for mailman id 937507;
 Thu, 03 Apr 2025 23:34:06 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=JbNy=WV=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u0U4U-0000tp-LK
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 23:34:06 +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 213080cb-10e4-11f0-9ffb-bf95429c2676;
 Fri, 04 Apr 2025 01:34:04 +0200 (CEST)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-43948021a45so13629365e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 03 Apr 2025 16:34:04 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39c301b8ad6sm3015037f8f.56.2025.04.03.16.34.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 03 Apr 2025 16:34: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: 213080cb-10e4-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1743723244; x=1744328044; 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=pZhPqoScu5SMQXGF+Jvvt/YlCe12voqNnLYGfEPyy14=;
        b=M1m96zyrgD8YgFhXyBo5ey3XMoNqzv4ZFCZeQ0W+5ssGHuYxCcbjHwUOcg+K/xdLVk
         Mf1JjlxzP1ocrmlX8DKI2khNMHhX1FLaEpi3Zu6giP3Wj/yj9ah10QUke2FB7WHAZZtp
         YiquKNOJ1u94uLSw+cjuxAzqiZfi6AVWb7iv4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743723244; x=1744328044;
        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=pZhPqoScu5SMQXGF+Jvvt/YlCe12voqNnLYGfEPyy14=;
        b=FleAtleUBW6vP1AsKdjc4NLPerKz3/eFBMLxrLjgiRgTghafpoAHdWtmPQ4bopPoAE
         6LYvJWoT9XE149TF96/67ldkzJA0t7SvRMNyEBYJ8jqMb5SMNGqE3TsxIzkp3Efg9B5H
         trwyqD1rnUXu28toIAzGcZaEfYngRJ7jcvS9Pu99BNI8KChjws93QhVxIIy0yIeu5Kl/
         5PwOAjNIiUGv4yhu7PX5BBjjmCF/rBwZDeWUTWyZMJfuEw1ZnG+H1ajz0LKO4TJ78t7r
         GnKTAYtEhuO4BRLSfeNadqJt2Vv1SuIAOAPlW+CvaZTk+uBX4LMwrQnyCaOWFor+5cNu
         zTWw==
X-Forwarded-Encrypted: i=1; AJvYcCUoWtzT7sGW7ti2ybh4Wd/njCDUnRp3CItGGHlvxaJZngDdEX8ye4mKSlqRD46cFg1C3wJm5hGwu7c=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzUoCQu5cGxstB+pJtWrd1077uosV93lAI/LZHop1OFpiVQ+nEy
	prQrX62U19b4WiqgHMWudD/8gwq/7W08zQTq7YjZNJJfIa8WBYUQspcn9sus850=
X-Gm-Gg: ASbGncuoaBxL3wbHzG8CBe8mju5+jKFO5I0nGBCEveaeMzfMXEXq1/mVFLwCCzzY/OI
	q+/WIn3D3roLxHYYDuRi5d9s7ueERSNmV1pO/O5w3st1tm/nw99hbZFMnrp81TYVWsTUm/TYqxz
	y7qMk6vis6kRScCfaDv3mjn8gGGEbfxc5B2HGqoS7pzXFWRu//jTYdh57BAM6pxoEBOliV8jmC+
	gJHeuC84/0BZFu0RfGlrHRodPpobIMMOwgetVlJLLywPzepie/jh9Iy242T7OlgTlc8LrNVmX6T
	KnahVY5DhDPFjCsPc65yhfWCGWIAa5BC/fj4992BqQ4/LW4Zlf8c+nwo3mRQ/VpvoVY4IBUiDl4
	o88QXl8dyuQ==
X-Google-Smtp-Source: AGHT+IHeuKRlXTuz5Ym38+UEqRntwM55R2B74LCvz5EYZxB8KsQDSbaJNXYXchKHcM8d/Efb6Lk9tA==
X-Received: by 2002:a05:6000:18ac:b0:391:3406:b4e2 with SMTP id ffacd0b85a97d-39d14662dc1mr370650f8f.49.1743723243889;
        Thu, 03 Apr 2025 16:34:03 -0700 (PDT)
Message-ID: <9870999d-3a45-4c2b-a37b-2651e4d53c3b@citrix.com>
Date: Fri, 4 Apr 2025 00:34:01 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86: drop XSAVEOPT and CLWB build flags
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: "Alexander M. Merritt" <alexander@edera.dev>,
 xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <3de09e4e2a3320e0f314803e349fbe6520d04b12.1743719892.git.alexander@edera.dev>
 <c07ec835-3c69-4cf9-ba6a-39d6152393bf@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: <c07ec835-3c69-4cf9-ba6a-39d6152393bf@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 04/04/2025 12:28 am, Andrew Cooper wrote:
> On 04/04/2025 12:22 am, Alexander M. Merritt wrote:
>> The new toolchain baseline knows both the XSAVEOPT and CLWB instructions.
> I know that's what I wrote on the ticket, but what I'd forgotten was
> that we only use XSAVEOPT for it's operand.
>
> Really what we're doing here is knowing CLWB, and also getting rid of
> the XSAVEOPT workaround for somewhat-more-old toolchains.
>
>> Resolves: https://gitlab.com/xen-project/xen/-/work_items/205
>> Signed-off-by: Alexander M. Merritt <alexander@edera.dev>
>> ---
>>  xen/arch/x86/arch.mk              |  2 --
>>  xen/arch/x86/flushtlb.c           | 28 +---------------------------
>>  xen/arch/x86/include/asm/system.h |  7 -------
>>  3 files changed, 1 insertion(+), 36 deletions(-)
>>
>> diff --git a/xen/arch/x86/arch.mk b/xen/arch/x86/arch.mk
>> index 258e459bec..baa83418bc 100644
>> --- a/xen/arch/x86/arch.mk
>> +++ b/xen/arch/x86/arch.mk
>> @@ -15,9 +15,7 @@ $(call as-option-add,CFLAGS,CC,"crc32 %eax$(comma)%eax",-DHAVE_AS_SSE4_2)
>>  $(call as-option-add,CFLAGS,CC,"invept (%rax)$(comma)%rax",-DHAVE_AS_EPT)
>>  $(call as-option-add,CFLAGS,CC,"rdrand %eax",-DHAVE_AS_RDRAND)
>>  $(call as-option-add,CFLAGS,CC,"rdfsbase %rax",-DHAVE_AS_FSGSBASE)
>> -$(call as-option-add,CFLAGS,CC,"xsaveopt (%rax)",-DHAVE_AS_XSAVEOPT)
>>  $(call as-option-add,CFLAGS,CC,"rdseed %eax",-DHAVE_AS_RDSEED)
>> -$(call as-option-add,CFLAGS,CC,"clwb (%rax)",-DHAVE_AS_CLWB)
>>  $(call as-option-add,CFLAGS,CC,".equ \"x\"$(comma)1",-DHAVE_AS_QUOTED_SYM)
>>  $(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)
>> diff --git a/xen/arch/x86/flushtlb.c b/xen/arch/x86/flushtlb.c
>> index 65be0474a8..962bb87d69 100644
>> --- a/xen/arch/x86/flushtlb.c
>> +++ b/xen/arch/x86/flushtlb.c
>> @@ -313,33 +313,7 @@ void cache_writeback(const void *addr, unsigned int size)
>>      clflush_size = current_cpu_data.x86_clflush_size ?: 16;
>>      addr -= (unsigned long)addr & (clflush_size - 1);
>>      for ( ; addr < end; addr += clflush_size )
>> -    {
>> -/*
>> - * The arguments to a macro must not include preprocessor directives. Doing so
>> - * results in undefined behavior, so we have to create some defines here in
>> - * order to avoid it.
>> - */
>> -#if defined(HAVE_AS_CLWB)
>> -# define CLWB_ENCODING "clwb %[p]"
>> -#elif defined(HAVE_AS_XSAVEOPT)
>> -# define CLWB_ENCODING "data16 xsaveopt %[p]" /* clwb */
>> -#else
>> -# define CLWB_ENCODING ".byte 0x66, 0x0f, 0xae, 0x30" /* clwb (%%rax) */
>> -#endif
>> -
>> -#define BASE_INPUT(addr) [p] "m" (*(const char *)(addr))
>> -#if defined(HAVE_AS_CLWB) || defined(HAVE_AS_XSAVEOPT)
>> -# define INPUT BASE_INPUT
>> -#else
>> -# define INPUT(addr) "a" (addr), BASE_INPUT(addr)
>> -#endif
>> -
>> -        asm volatile (CLWB_ENCODING :: INPUT(addr));
>> -
>> -#undef INPUT
>> -#undef BASE_INPUT
>> -#undef CLWB_ENCODING
>> -    }
>> +        asm volatile ("clwb %[p]" :: [p] "m" (*(const char *)(addr)));
> One minor note about whitespace.  We typically have spaces inside the
> outermost brackets on asm statements, as per the clwb() example below.
>
> Also, given the expression is so simple, I'd just use %0 and drop the
> [p].  It's just line-verbosity here.
>
> Can fix both on commit if you're happy.
>
> Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>

Also, I forgot to write in the ticket, clflushopt wants similar
treatment, even if there isn't an outward define for it.  I think the
following two hunks should do:

~Andrew

diff --git a/xen/arch/x86/flushtlb.c b/xen/arch/x86/flushtlb.c
index 18748b2bc805..ef30ef546336 100644
--- a/xen/arch/x86/flushtlb.c
+++ b/xen/arch/x86/flushtlb.c
@@ -287,7 +287,7 @@ void cache_flush(const void *addr, unsigned int size)
          * of letting the alternative framework fill the gap by
appending nops.
          */
         alternative_io("ds; clflush %[p]",
-                       "data16 clflush %[p]", /* clflushopt */
+                       "clflushopt %[p]",
                        X86_FEATURE_CLFLUSHOPT,
                        /* no outputs */,
                        [p] "m" (*(const char *)(addr)));
diff --git a/xen/arch/x86/include/asm/system.h
b/xen/arch/x86/include/asm/system.h
index 73cb16ca68d6..6f5b6d502911 100644
--- a/xen/arch/x86/include/asm/system.h
+++ b/xen/arch/x86/include/asm/system.h
@@ -23,7 +23,7 @@ static inline void clflush(const void *p)
 
 static inline void clflushopt(const void *p)
 {
-    asm volatile ( "data16 clflush %0" :: "m" (*(const char *)p) );
+    asm volatile ( "clflushopt %0" :: "m" (*(const char *)p) );
 }
 
 static inline void clwb(const void *p)



From xen-devel-bounces@lists.xenproject.org Thu Apr 03 23:45:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 03 Apr 2025 23:45:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.937524.1338468 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0UFo-0003vz-TQ; Thu, 03 Apr 2025 23:45:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 937524.1338468; Thu, 03 Apr 2025 23: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 1u0UFo-0003vs-Qk; Thu, 03 Apr 2025 23:45:48 +0000
Received: by outflank-mailman (input) for mailman id 937524;
 Thu, 03 Apr 2025 23:45: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=gu4W=WV=edera.dev=alexander@srs-se1.protection.inumbo.net>)
 id 1u0UFn-0003vm-FA
 for xen-devel@lists.xenproject.org; Thu, 03 Apr 2025 23:45:47 +0000
Received: from mail-qt1-x830.google.com (mail-qt1-x830.google.com
 [2607:f8b0:4864:20::830])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c30d7956-10e5-11f0-9eaa-5ba50f476ded;
 Fri, 04 Apr 2025 01:45:46 +0200 (CEST)
Received: by mail-qt1-x830.google.com with SMTP id
 d75a77b69052e-4774ce422easo15192081cf.1
 for <xen-devel@lists.xenproject.org>; Thu, 03 Apr 2025 16:45:46 -0700 (PDT)
Received: from localhost ([64.201.234.99]) by smtp.gmail.com with ESMTPSA id
 d75a77b69052e-4791b07140csm13847171cf.25.2025.04.03.16.45.43
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 03 Apr 2025 16:45:44 -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: c30d7956-10e5-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=edera.dev; s=google; t=1743723945; x=1744328745; darn=lists.xenproject.org;
        h=content-transfer-encoding:organization:message-id:references
         :in-reply-to:subject:cc:to:from:date:mime-version:from:to:cc:subject
         :date:message-id:reply-to;
        bh=Y3wEE9msgohyvUhQ0wd+SPQ+rLudI9iRBc56T7zUgrw=;
        b=dy0MhIg3Gm6/x1E90lLq9TFsrL0iQQr4yA7U0FL1+arIoamLzTJfCVbxpGZi2UBJxe
         kSNWlLWTqx+IzqGnBWKWz8/gMsLbKif21fsLecpMvO8AoQxnvl3/ftPZGFpIodv4hKBb
         LD7tTq80nzhntGPJEgbm1+RfK+9PUDwH9X/1SB90K3T1XSLOaoKP99d5h75yUZhYvG0A
         A7BGZUBthsiK4xVzih7+Zb0Abbb+d7qFBhltZgGTY5Aiw84o/6y9e4JEWTqmSFqPQpWK
         BJIdLFse7oESIserXKl3PfkeCguqCWM417+KWGz/dtrmSwf/so45V1xjbgbLoDzjq3Ni
         233w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743723945; x=1744328745;
        h=content-transfer-encoding:organization:message-id:references
         :in-reply-to:subject:cc:to:from:date:mime-version:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=Y3wEE9msgohyvUhQ0wd+SPQ+rLudI9iRBc56T7zUgrw=;
        b=Uf0UYpIgA99C+C/0Az4smQZOFIUaa5UKiJchoNGLTA/cYcb9/QYTa8bh2eh5fR3TQZ
         7TNUOo8dnVNMRFVGQ7BO26EKpjxNIs87V5FEFXSCSF8CM/mfgQ0FLMivf2UuHGeYnQkx
         jLgrFOG4nY0oxfY6ic8pNcZO/tMgZQfB1vs3yWtHOtdvxIcJKPIo0vdQO+hANzyKUfsI
         Lv03QuqDM/xz8F0cFZT2ubWuzoyDne+iIHqKKcyMD+V6FraUSON9ocU4/Iy3ufPFSe19
         pELcJve4suB7LyzjDv8kW7mlfvVEiUH+/LAzgWNxKUcs6QZ4rdI/VT/dsq50q1ej/1jd
         TmUg==
X-Gm-Message-State: AOJu0YwB8eRZDmLSWIIf9ZHH8s5JOklP7HGduX8UAllw/RaLeFarjEXO
	KKdqFV/3eHK5AX9NKy+94C/zHWt7KDHqO0whnzQeHzp9Wz9ukJspMsZdXddIh20=
X-Gm-Gg: ASbGncuDAICsEtxhC/T5bmQcK/2mJ9Q5Vp7RU7V6UOR1QN5u2PvQKokV4wr1bHOBGor
	6DDEZfu93cIVxK3+xMuseJDfW3ZIj2TFzedJUoxqmME76+qNKOyGtKoinsCyqQMBFSbd933mqzc
	6tzoYSDpNk0TtD81Xeapqw+oQJjzwbxwqPdxUEs3wIwE7VB0b32lERqcZ4JA18yst2e5Sp+YgZI
	5wctfDNZ+Vei1sJ8brp2ojL8udO7o27Z1Ddfue3Uvw4gIiU72En7rw5n6zpHziKMq2Z84/mI2sn
	0H89sE/3wrqvwNj3zzo+top4D271DpolmtPWq0dFA8sPtXPapUnxSACJ9tQa8Q==
X-Google-Smtp-Source: AGHT+IHMwFdi1r1IRdEX1Dkb0gKUDHCZ1rFAVPkY856nmsZ8HiQqLnA7ymhgmFpIB1rAEe0Lhe0pkg==
X-Received: by 2002:a05:622a:120d:b0:476:7f5c:e302 with SMTP id d75a77b69052e-47924903698mr20499151cf.11.1743723945034;
        Thu, 03 Apr 2025 16:45:45 -0700 (PDT)
MIME-Version: 1.0
Date: Thu, 03 Apr 2025 19:45:42 -0400
From: Alexander Merritt <alexander@edera.dev>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Subject: Re: [PATCH] x86: drop XSAVEOPT and CLWB build flags
In-Reply-To: <c07ec835-3c69-4cf9-ba6a-39d6152393bf@citrix.com>
References: <3de09e4e2a3320e0f314803e349fbe6520d04b12.1743719892.git.alexander@edera.dev>
 <c07ec835-3c69-4cf9-ba6a-39d6152393bf@citrix.com>
Message-ID: <da37364213f4cec576400ce089e02a8e@edera.dev>
X-Sender: alexander@edera.dev
Organization: Edera
Content-Type: text/plain; charset=UTF-8;
 format=flowed
Content-Transfer-Encoding: 8bit

On 2025-04-03 19:28, Andrew Cooper wrote:
> On 04/04/2025 12:22 am, Alexander M. Merritt wrote:
>> The new toolchain baseline knows both the XSAVEOPT and CLWB 
>> instructions.
> 
> I know that's what I wrote on the ticket, but what I'd forgotten was
> that we only use XSAVEOPT for it's operand.
> 
> Really what we're doing here is knowing CLWB, and also getting rid of
> the XSAVEOPT workaround for somewhat-more-old toolchains.

Will try to be more detailed in the commit message next time, thanks for 
pointing out.

>> +        asm volatile ("clwb %[p]" :: [p] "m" (*(const char 
>> *)(addr)));
> 
> One minor note about whitespace.  We typically have spaces inside the
> outermost brackets on asm statements, as per the clwb() example below.

Makes sense. I had searched for existing examples of this and saw a mix 
with and without spaces.

> Also, given the expression is so simple, I'd just use %0 and drop the
> [p].  It's just line-verbosity here.

Yes, agreed.

> Can fix both on commit if you're happy.
> 
> Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>

Yes please do. Thanks for the review!


From xen-devel-bounces@lists.xenproject.org Fri Apr 04 00:16:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 04 Apr 2025 00:16:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.937539.1338478 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0UjM-00048X-Dr; Fri, 04 Apr 2025 00:16:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 937539.1338478; Fri, 04 Apr 2025 00:16: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 1u0UjM-00048Q-Ao; Fri, 04 Apr 2025 00:16:20 +0000
Received: by outflank-mailman (input) for mailman id 937539;
 Fri, 04 Apr 2025 00:16: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=8oGR=WW=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u0UjL-00048H-L9
 for xen-devel@lists.xenproject.org; Fri, 04 Apr 2025 00:16:19 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 03bb1613-10ea-11f0-9ffb-bf95429c2676;
 Fri, 04 Apr 2025 02:16:12 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 4FA76614B8;
 Fri,  4 Apr 2025 00:16:04 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 405A7C4CEE3;
 Fri,  4 Apr 2025 00:16: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: 03bb1613-10ea-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1743725771;
	bh=/pk15gfjkF0nSlJqxKS7TjrMWj+J3kdNaAoKzPAc20Q=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=kdK2xHyH5mwpJ1PoFryatavEqwzF7Aswq7NLWtWd3Sn0x9dfFFVSIsNipStsMrCL5
	 rQHlzk5oxAJKZI6cSKGWapcuIo2mB3TJnWqNCp53ZlcGYM+Lq6TbQntCGd2nBd6lvs
	 to8odEr3fh3LSobgRXvzXjKKGIuuN0lkQXFZ0BnOAeIJb2US+DKJNHD/30b2TjdarV
	 lgQWRhdBOPy7r2ih86B8+mUGPZJVNrn1UlQjzxe3rfbrFGSQs9osQkRYwCRPyc7waG
	 RPy2FaW08oeRVZcY/k5z9vM6xxnwPtVTYlnf71It+yB/xTLVLs1ktQrYoUERQWAMpw
	 sHjIo+BYoSiFA==
Date: Thu, 3 Apr 2025 17:16:09 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
cc: xen-devel@lists.xenproject.org, Andrew Cooper <andrew.cooper3@citrix.com>, 
    Doug Goldstein <cardoe@cardoe.com>, 
    Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH v1 01/11] ci: prevent grub unpacking initramfs
In-Reply-To: <e1d07b26a92a45ed387594dd789453def1ef1eb2.1743678257.git-series.marmarek@invisiblethingslab.com>
Message-ID: <alpine.DEB.2.22.394.2504031716010.3529306@ubuntu-linux-20-04-desktop>
References: <cover.59b4d1e66776c1e577aa5dd5460605dc6c240613.1743678257.git-series.marmarek@invisiblethingslab.com> <e1d07b26a92a45ed387594dd789453def1ef1eb2.1743678257.git-series.marmarek@invisiblethingslab.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="8323329-2141594815-1743725771=:3529306"

  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-2141594815-1743725771=:3529306
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8BIT

On Thu, 2 Apr 2025, Marek Marczykowski-Górecki wrote:
> It fails on larger initramfs (~250MB one) and sometimes even smaller
> depending on memory size/memory map, let Linux do it.
> 
> Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>

I believe this is the default with U-Boot anyway, if I remember right.

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

> ---
>  automation/scripts/qubes-x86-64.sh | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/automation/scripts/qubes-x86-64.sh b/automation/scripts/qubes-x86-64.sh
> index f27296445901..8e78b7984e98 100755
> --- a/automation/scripts/qubes-x86-64.sh
> +++ b/automation/scripts/qubes-x86-64.sh
> @@ -248,7 +248,7 @@ CONTROLLER=control@thor.testnet
>  echo "
>  multiboot2 (http)/gitlab-ci/xen $CONSOLE_OPTS loglvl=all guest_loglvl=all dom0_mem=4G console_timestamps=boot $extra_xen_opts
>  module2 (http)/gitlab-ci/vmlinuz console=hvc0 root=/dev/ram0 earlyprintk=xen
> -module2 (http)/gitlab-ci/initrd-dom0
> +module2 --nounzip (http)/gitlab-ci/initrd-dom0
>  " > $TFTP/grub.cfg
>  
>  echo "#!ipxe
> -- 
> git-series 0.9.1
> 
--8323329-2141594815-1743725771=:3529306--


From xen-devel-bounces@lists.xenproject.org Fri Apr 04 00:22:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 04 Apr 2025 00:22:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.937551.1338488 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0Uot-00072d-0d; Fri, 04 Apr 2025 00:22:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 937551.1338488; Fri, 04 Apr 2025 00:22: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 1u0Uos-00072W-Tq; Fri, 04 Apr 2025 00:22:02 +0000
Received: by outflank-mailman (input) for mailman id 937551;
 Fri, 04 Apr 2025 00:22: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=8oGR=WW=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u0Uos-00072Q-Go
 for xen-devel@lists.xenproject.org; Fri, 04 Apr 2025 00:22: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 d339fd9b-10ea-11f0-9eaa-5ba50f476ded;
 Fri, 04 Apr 2025 02:22:01 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 333675C5CFC;
 Fri,  4 Apr 2025 00:19:42 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id E9B1EC4CEE3;
 Fri,  4 Apr 2025 00: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: d339fd9b-10ea-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1743726118;
	bh=8GnSjRAbFf4cvHjo/KmuGkTgpbxBCQuAgjrsz8zq2g4=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=mqk4w3gWUgBOkVHJ9Axc4lIow2J/33k2LU7Fw70nEHqvLKNOF+wdoOmpfzTfjd0FA
	 yJC8x1cIoB2m9F2InJ+Fx9avZuDp32439JO60aGp2dBuLVtlzCaj1vnRHzTa+RkbjA
	 km51qRZsN/z2ZiGqc2TaaQcrmG5K3TOhHcq0zTadjMSQC69M3p5j8hBkpO+zKw0YrB
	 VnWvIJIkLysbSMf3gsis+JKgeaEzPXlkZTG6VdQd5COudoAHXgvEydPH5NNuwwrZnm
	 XXpHZVwOlsbPkLyyCtsnlkujUOPu6NwSCYcByBE8Bijnth/O/wSuvhvl0SvG5Fz7Yv
	 bD8wciHFG2dpA==
Date: Thu, 3 Apr 2025 17:21:56 -0700 (PDT)
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: Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>, 
    Doug Goldstein <cardoe@cardoe.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    xen-devel@lists.xenproject.org
Subject: Re: [PATCH v1 02/11] ci: increase timeout for hw tests
In-Reply-To: <Z-5-PBcbtUOCSAiv@mail-itl>
Message-ID: <alpine.DEB.2.22.394.2504031720260.3529306@ubuntu-linux-20-04-desktop>
References: <cover.59b4d1e66776c1e577aa5dd5460605dc6c240613.1743678257.git-series.marmarek@invisiblethingslab.com> <7578489af5c7df525d4c82231b68bbb7d955d2b4.1743678257.git-series.marmarek@invisiblethingslab.com> <9e4660fc-b78f-4323-8a1b-aca3d410edd3@suse.com>
 <Z-5-PBcbtUOCSAiv@mail-itl>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="8323329-1575154196-1743726118=:3529306"

  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-1575154196-1743726118=:3529306
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8BIT

On Thu, 3 Apr 2025, Marek Marczykowski-Górecki wrote:
> On Thu, Apr 03, 2025 at 01:32:38PM +0200, Jan Beulich wrote:
> > On 03.04.2025 13:04, Marek Marczykowski-Górecki wrote:
> > > It appears as sometimes it takes more time for Xen even start booting,
> > > mostly due to firmware and fetching large boot files by grub. In some
> > > jobs the current timeout is pretty close to the actual time needed, and
> > > sometimes (rarely for now) test fails due to timeout expiring in the
> > > middle of dom0 booting. This will be happening more often if the
> > > initramfs will grow (and with more complex tests).
> > 
> > With that, ...
> > 
> > > This has been observed on some dom0pvh-hvm jobs, at least on runners hw3
> > > and hw11.
> > > 
> > > Increase the timeout by yet another 60s (up to 180s now).
> > 
> > ... is this little a bump going to be sufficient? How about moving straight
> > to 5min?

Hi Marek, would you be up for moving your script to use "expect"?
Something like ./automation/scripts/console.exp?

That way, we would immediately complete the job no matter the timeout
value. It is also nicer :-)


> I don't like this, as many (most) actual failures are visible as timeout
> (for example panic that prevents reaching Alpine prompt). One
> improvement I can see is splitting this into two separate timeouts: one
> before seeing the first line from Xen and then the second one for
> reaching Alpine login prompt. The first one can be longer as its mostly
> about firmware+fetching boot files and shouldn't hit on crashes (unless
> a crash happen before printing anything on the console - but those are
> rare).

This is also something you can very specifically tweak with expect.
--8323329-1575154196-1743726118=:3529306--


From xen-devel-bounces@lists.xenproject.org Fri Apr 04 00:22:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 04 Apr 2025 00:22:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.937562.1338498 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0UpW-0007WQ-Au; Fri, 04 Apr 2025 00:22:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 937562.1338498; Fri, 04 Apr 2025 00:22:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0UpW-0007WJ-6m; Fri, 04 Apr 2025 00:22:42 +0000
Received: by outflank-mailman (input) for mailman id 937562;
 Fri, 04 Apr 2025 00: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=8oGR=WW=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u0UpV-0007I9-Gc
 for xen-devel@lists.xenproject.org; Fri, 04 Apr 2025 00:22:41 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id eaa8f1d2-10ea-11f0-9ffb-bf95429c2676;
 Fri, 04 Apr 2025 02:22:40 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id D940E614BC;
 Fri,  4 Apr 2025 00:22:31 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id DE210C4CEE3;
 Fri,  4 Apr 2025 00:22:37 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: eaa8f1d2-10ea-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1743726158;
	bh=vDBmCE+e4wqjLrFEny/6Nh5iNP3s44Po2JhFiH294+E=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=ZH9Mi6ygr8Ga6Q11jAV4DCwFw6c0AIdmJ44hzMrITkeotrr3GYpmUpuiBshFxYpOF
	 P4NP09+yQYW3IRnDAZIDYdBjWjItG6KLeBLN5MZfChLQ2T/03ulgflVmt4AC8M/OBq
	 M6b6ToAY9fDIAJnBbv9D25JZepb+7UF9af6TtT2NeWYG5GTG+pObqZE/9AGllAmYoj
	 6dWva/V3I/EEft22v+OixeUv7kvV8f5XEH1sCtkPzPW3ql8dyaHEqZreJ2M1PJkSSz
	 L5EbMq2g65kYj7im1Wwc+dd0Yqwf8N0ji7MicxE6vjoi00UXgXRB8yfgYtAgalgKBc
	 acDawfgjLI22w==
Date: Thu, 3 Apr 2025 17:22:36 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
cc: xen-devel@lists.xenproject.org, Andrew Cooper <andrew.cooper3@citrix.com>, 
    Doug Goldstein <cardoe@cardoe.com>, 
    Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH v1 03/11] ci: enable XHCI console in Xen debug build on
 Alpine
In-Reply-To: <8994039fbd8694a984d234b30b1ce727b16844f3.1743678257.git-series.marmarek@invisiblethingslab.com>
Message-ID: <alpine.DEB.2.22.394.2504031722310.3529306@ubuntu-linux-20-04-desktop>
References: <cover.59b4d1e66776c1e577aa5dd5460605dc6c240613.1743678257.git-series.marmarek@invisiblethingslab.com> <8994039fbd8694a984d234b30b1ce727b16844f3.1743678257.git-series.marmarek@invisiblethingslab.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="8323329-1273410683-1743726158=:3529306"

  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-1273410683-1743726158=:3529306
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8BIT

On Thu, 3 Apr 2025, Marek Marczykowski-Górecki wrote:
> This build is used for hardware tests, and some runners use XHCI console
> 
> Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>

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

> ---
>  automation/gitlab-ci/build.yaml | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
> index 2513908b059b..169bebe3c775 100644
> --- a/automation/gitlab-ci/build.yaml
> +++ b/automation/gitlab-ci/build.yaml
> @@ -341,6 +341,7 @@ alpine-3.18-gcc-debug:
>        CONFIG_ARGO=y
>        CONFIG_UBSAN=y
>        CONFIG_UBSAN_FATAL=y
> +      CONFIG_XHCI=y
>  
>  debian-12-x86_64-gcc-debug:
>    extends: .gcc-x86-64-build-debug
> -- 
> git-series 0.9.1
> 
--8323329-1273410683-1743726158=:3529306--


From xen-devel-bounces@lists.xenproject.org Fri Apr 04 00:23:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 04 Apr 2025 00:23:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.937570.1338508 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0UqF-000826-Iu; Fri, 04 Apr 2025 00:23:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 937570.1338508; Fri, 04 Apr 2025 00:23: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 1u0UqF-00081z-Fe; Fri, 04 Apr 2025 00:23:27 +0000
Received: by outflank-mailman (input) for mailman id 937570;
 Fri, 04 Apr 2025 00: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=8oGR=WW=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u0UqE-00072Q-KD
 for xen-devel@lists.xenproject.org; Fri, 04 Apr 2025 00:23:26 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 052b917c-10eb-11f0-9eaa-5ba50f476ded;
 Fri, 04 Apr 2025 02:23:25 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 99CD544E87;
 Fri,  4 Apr 2025 00:23:22 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 43056C4CEE3;
 Fri,  4 Apr 2025 00:23: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: 052b917c-10eb-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1743726203;
	bh=qYNCUC3NHYRX5l+9p/SQ+oxNGEpoxSbOC+lW8qY+vaY=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=l/FzCLSEUP9fDpRA3GillwjJIKrgJ2vfbl438TB763BCU6LgOhg3akQGTUBWwKea6
	 YhecnlmeydKxYlNI9+iOKaAkTO8wYkA6lbtmbAqBugq/GTy9je4YBoWT/vDrClohg8
	 Ilai/LJEayEynfeTe1tuPLe8OpuM2kK5Cn1zkXW87AbzWtyDF2FADCcoLk2Tpm3Vvu
	 DSTo833bi6WVK5n61iu2bMfdhuaM1YWeFlKcHL6PQtOl2mlnYo3xBPMvQr2C2mEBr+
	 M/DOiST5ZO8oPnaE07PK6kxrpF3yCLL8qNKmvMpZJvrPcXisvJs1Gpc99yMwJ1S9ln
	 vll0vJ5yIfk/A==
Date: Thu, 3 Apr 2025 17:23:20 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
cc: xen-devel@lists.xenproject.org, Andrew Cooper <andrew.cooper3@citrix.com>, 
    Doug Goldstein <cardoe@cardoe.com>, 
    Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH v1 04/11] ci: include domU kernel messages in the console
 output log
In-Reply-To: <8902a1274707600b1fe38d41d11ac28627f386b7.1743678257.git-series.marmarek@invisiblethingslab.com>
Message-ID: <alpine.DEB.2.22.394.2504031723140.3529306@ubuntu-linux-20-04-desktop>
References: <cover.59b4d1e66776c1e577aa5dd5460605dc6c240613.1743678257.git-series.marmarek@invisiblethingslab.com> <8902a1274707600b1fe38d41d11ac28627f386b7.1743678257.git-series.marmarek@invisiblethingslab.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="8323329-752167660-1743726203=:3529306"

  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-752167660-1743726203=:3529306
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8BIT

On Thu, 3 Apr 2025, Marek Marczykowski-Górecki wrote:
> Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>

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

> ---
>  automation/scripts/qubes-x86-64.sh | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/automation/scripts/qubes-x86-64.sh b/automation/scripts/qubes-x86-64.sh
> index 771c77d6618b..d316c17e0c9f 100755
> --- a/automation/scripts/qubes-x86-64.sh
> +++ b/automation/scripts/qubes-x86-64.sh
> @@ -175,6 +175,8 @@ if [ -n "$domU_check" ]; then
>      rm var/run
>      echo "#!/bin/sh
>  
> +echo 8 > /proc/sys/kernel/printk
> +
>  ${domU_check}
>  " > etc/local.d/xen.start
>      chmod +x etc/local.d/xen.start
> -- 
> git-series 0.9.1
> 
--8323329-752167660-1743726203=:3529306--


From xen-devel-bounces@lists.xenproject.org Fri Apr 04 00:33:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 04 Apr 2025 00:33:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.937588.1338517 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0Uzu-0002jV-Dp; Fri, 04 Apr 2025 00:33:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 937588.1338517; Fri, 04 Apr 2025 00:33:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0Uzu-0002jO-AZ; Fri, 04 Apr 2025 00:33:26 +0000
Received: by outflank-mailman (input) for mailman id 937588;
 Fri, 04 Apr 2025 00:33: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=8oGR=WW=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u0Uzt-0002jI-3N
 for xen-devel@lists.xenproject.org; Fri, 04 Apr 2025 00:33:25 +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 67abc5e4-10ec-11f0-9ffb-bf95429c2676;
 Fri, 04 Apr 2025 02:33:19 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by nyc.source.kernel.org (Postfix) with ESMTP id 265A4A45A44;
 Fri,  4 Apr 2025 00:27:49 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 86F4DC4CEE3;
 Fri,  4 Apr 2025 00:33:16 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 67abc5e4-10ec-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1743726797;
	bh=TkxRwZQ+thdOaCKvNHQdXlojvPVGsxy8M1omF3sUV7o=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=uj9GXk0AE6TSmtEb1s0uqm8UDkf3E8RekJEHXtH1A5ytIqJqKcn8ktt9S7BDtobcW
	 KCbK0Vj9BHOd22jysxDHWNHWK1By/VaotsO491OF413KIOA/2wrIzfhE8WAiYwadZA
	 okLjGLWYR+MeTzbwA7KWH+6Gv4viN/Z357aD+6cm52Hoip+xRk41FO5q2zEFaAoZgK
	 x7UnJnYiee1ZjN3L9uzkms3iCZGaGqsHG2iIGwYUK7UJtvmfDkqui2DK1n9w4kmLkT
	 Ln2LuOuB/pv2qet05WMdCbM6QkqbQEgMpaajH8kwnNAvnbK9yhmiRxhdnd6K/p1l64
	 U7HicKRY1NLTQ==
Date: Thu, 3 Apr 2025 17:33:15 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
cc: xen-devel@lists.xenproject.org, Andrew Cooper <andrew.cooper3@citrix.com>, 
    Doug Goldstein <cardoe@cardoe.com>, 
    Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH v1 05/11] ci: increase verbosity of starting a domain
In-Reply-To: <12d51df19d6111c2f61910e9851595aecceb752b.1743678257.git-series.marmarek@invisiblethingslab.com>
Message-ID: <alpine.DEB.2.22.394.2504031732540.3529306@ubuntu-linux-20-04-desktop>
References: <cover.59b4d1e66776c1e577aa5dd5460605dc6c240613.1743678257.git-series.marmarek@invisiblethingslab.com> <12d51df19d6111c2f61910e9851595aecceb752b.1743678257.git-series.marmarek@invisiblethingslab.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="8323329-402144187-1743726797=:3529306"

  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-402144187-1743726797=:3529306
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8BIT

On Thu, 3 Apr 2025, Marek Marczykowski-Górecki wrote:
> And start collecting qemu log earlier, so it isn't lost in case of a
> timeout during domain startup.
> 
> Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>

As we are doing this across the board please also do the same for
xilinx-smoke-dom0-x86_64.sh


> ---
>  automation/scripts/qemu-alpine-x86_64.sh    | 2 +-
>  automation/scripts/qemu-smoke-dom0-arm32.sh | 2 +-
>  automation/scripts/qemu-smoke-dom0-arm64.sh | 2 +-
>  automation/scripts/qubes-x86-64.sh          | 4 ++--
>  4 files changed, 5 insertions(+), 5 deletions(-)
> 
> diff --git a/automation/scripts/qemu-alpine-x86_64.sh b/automation/scripts/qemu-alpine-x86_64.sh
> index 1ff689b577e3..17e2141d625e 100755
> --- a/automation/scripts/qemu-alpine-x86_64.sh
> +++ b/automation/scripts/qemu-alpine-x86_64.sh
> @@ -56,7 +56,7 @@ bash /etc/init.d/xencommons start
>  
>  xl list
>  
> -xl create -c /root/test.cfg
> +xl -vvv create -c /root/test.cfg
>  
>  " > etc/local.d/xen.start
>  chmod +x etc/local.d/xen.start
> diff --git a/automation/scripts/qemu-smoke-dom0-arm32.sh b/automation/scripts/qemu-smoke-dom0-arm32.sh
> index e1cd83880928..0c60a66e25e3 100755
> --- a/automation/scripts/qemu-smoke-dom0-arm32.sh
> +++ b/automation/scripts/qemu-smoke-dom0-arm32.sh
> @@ -21,7 +21,7 @@ echo "#!/bin/bash
>  
>  xl list
>  
> -xl create -c /root/test.cfg
> +xl -vvv create -c /root/test.cfg
>  
>  " > ./root/xen.start
>  echo "bash /root/xen.start" >> ./etc/init.d/xen-watchdog
> diff --git a/automation/scripts/qemu-smoke-dom0-arm64.sh b/automation/scripts/qemu-smoke-dom0-arm64.sh
> index 4d22a124df11..8774a8701232 100755
> --- a/automation/scripts/qemu-smoke-dom0-arm64.sh
> +++ b/automation/scripts/qemu-smoke-dom0-arm64.sh
> @@ -52,7 +52,7 @@ bash /etc/init.d/xencommons start
>  
>  xl list
>  
> -xl create -c /root/test.cfg
> +xl -vvv create -c /root/test.cfg
>  
>  " > etc/local.d/xen.start
>  chmod +x etc/local.d/xen.start
> diff --git a/automation/scripts/qubes-x86-64.sh b/automation/scripts/qubes-x86-64.sh
> index d316c17e0c9f..822b81d186a7 100755
> --- a/automation/scripts/qubes-x86-64.sh
> +++ b/automation/scripts/qubes-x86-64.sh
> @@ -122,7 +122,6 @@ echo \"${passed}\"
>  "
>  
>          dom0_check="
> -tail -F /var/log/xen/qemu-dm-domU.log &
>  until grep -q \"^domU Welcome to Alpine Linux\" /var/log/xen/console/guest-domU.log; do
>      sleep 1
>  done
> @@ -222,7 +221,8 @@ if [ -n "$domU_check" ]; then
>      echo "
>  # get domU console content into test log
>  tail -F /var/log/xen/console/guest-domU.log 2>/dev/null | sed -e \"s/^/(domU) /\" &
> -xl create /etc/xen/domU.cfg
> +tail -F /var/log/xen/qemu-dm-domU.log 2>/dev/null | sed -e \"s/^/(qemu-dm) /\" &
> +xl -vvv create /etc/xen/domU.cfg
>  ${dom0_check}
>  " >> etc/local.d/xen.start
>  else
> -- 
> git-series 0.9.1
> 
--8323329-402144187-1743726797=:3529306--


From xen-devel-bounces@lists.xenproject.org Fri Apr 04 00:35:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 04 Apr 2025 00:35:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.937602.1338529 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0V1n-0003Kl-Uu; Fri, 04 Apr 2025 00:35:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 937602.1338529; Fri, 04 Apr 2025 00:35: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 1u0V1n-0003Ke-QO; Fri, 04 Apr 2025 00:35:23 +0000
Received: by outflank-mailman (input) for mailman id 937602;
 Fri, 04 Apr 2025 00: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=8oGR=WW=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u0V1n-0003KW-0H
 for xen-devel@lists.xenproject.org; Fri, 04 Apr 2025 00:35:23 +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 b0a128f1-10ec-11f0-9eaa-5ba50f476ded;
 Fri, 04 Apr 2025 02:35:21 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by nyc.source.kernel.org (Postfix) with ESMTP id F3900A46A5D;
 Fri,  4 Apr 2025 00:29:51 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 403BCC4CEE7;
 Fri,  4 Apr 2025 00:35: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: b0a128f1-10ec-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1743726920;
	bh=Zmm0hfoMOjXje/OJG2o2XJH5/y5Rl9dbKPCDg+75bOI=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=Du+Hqn07eV+eZivyxw19vD51pEWmdtk1S6pQD648uCznI9d+8RmRCArJ1P96SRPWZ
	 aWsNeUcwNHHceTkpOdXAZl0WWeFXMscMmDx3dka9/9b0tnuNGmSMZHT1/wf2nB++IN
	 bmqjfl8o7yU9EsJMOQky0Ui9Mg7rEIq7q4YBId5d4kC2Z9KtUzi4V7rVQFfLJBUL4M
	 Z0j0/3FcmGZwvK1Uqhbdk+GEl0fmyFm3pdVZEOCgZIc+J/PqpH39EpSoVqu2ef1v3h
	 noB6JFAK4r0lMgwxFXhqwraIlid+AFQTROaV/otycs1uvrmpIrqKK+hSTitMYyBc1v
	 diqi0ThpIlKQw==
Date: Thu, 3 Apr 2025 17:35:17 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
cc: xen-devel@lists.xenproject.org, Andrew Cooper <andrew.cooper3@citrix.com>, 
    Doug Goldstein <cardoe@cardoe.com>, 
    Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH v1 06/11] ci: consistently use DOCKER_CMD in makefiles
In-Reply-To: <72551291927c75a97657890df15138579f1543ac.1743678257.git-series.marmarek@invisiblethingslab.com>
Message-ID: <alpine.DEB.2.22.394.2504031735100.3529306@ubuntu-linux-20-04-desktop>
References: <cover.59b4d1e66776c1e577aa5dd5460605dc6c240613.1743678257.git-series.marmarek@invisiblethingslab.com> <72551291927c75a97657890df15138579f1543ac.1743678257.git-series.marmarek@invisiblethingslab.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="8323329-148214441-1743726920=:3529306"

  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-148214441-1743726920=:3529306
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8BIT

On Thu, 3 Apr 2025, Marek Marczykowski-Górecki wrote:
> This allows rebuilding containers using podman too.
> 
> Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>


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


> ---
>  automation/build/Makefile           | 4 ++--
>  automation/tests-artifacts/Makefile | 4 ++--
>  2 files changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/automation/build/Makefile b/automation/build/Makefile
> index 4df43b040777..fedf7524dacd 100644
> --- a/automation/build/Makefile
> +++ b/automation/build/Makefile
> @@ -31,8 +31,8 @@ clean:
>  define CLEAN_RULE
>  .PHONY: clean-$(1)
>  clean-$(1):
> -	if [ -n "$$$$(docker image ls -q $(REGISTRY)/$(subst /,:,$(1)))" ]; then \
> -		docker image rm $(REGISTRY)/$(subst /,:,$(1)); \
> +	if [ -n "$$$$($(DOCKER_CMD) image ls -q $(REGISTRY)/$(subst /,:,$(1)))" ]; then \
> +		$(DOCKER_CMD) image rm $(REGISTRY)/$(subst /,:,$(1)); \
>  	fi
>  
>  endef
> diff --git a/automation/tests-artifacts/Makefile b/automation/tests-artifacts/Makefile
> index d055cd696bed..80a60a94f3f7 100644
> --- a/automation/tests-artifacts/Makefile
> +++ b/automation/tests-artifacts/Makefile
> @@ -10,9 +10,9 @@ help:
>  	@echo "To push container builds, set the env var PUSH"
>  
>  %: %.dockerfile ## Builds containers
> -	docker build --pull -t $(REGISTRY)/$(@D):$(@F) -f $< $(<D)
> +	$(DOCKER_CMD) build --pull -t $(REGISTRY)/$(@D):$(@F) -f $< $(<D)
>  	@if [ ! -z $${PUSH+x} ]; then \
> -		docker push $(REGISTRY)/$(@D):$(@F); \
> +		$(DOCKER_CMD) push $(REGISTRY)/$(@D):$(@F); \
>  	fi
>  
>  .PHONY: all
> -- 
> git-series 0.9.1
> 
--8323329-148214441-1743726920=:3529306--


From xen-devel-bounces@lists.xenproject.org Fri Apr 04 00:35:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 04 Apr 2025 00:35:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.937606.1338538 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0V21-0003ex-3u; Fri, 04 Apr 2025 00:35:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 937606.1338538; Fri, 04 Apr 2025 00: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 1u0V21-0003eq-12; Fri, 04 Apr 2025 00:35:37 +0000
Received: by outflank-mailman (input) for mailman id 937606;
 Fri, 04 Apr 2025 00: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=n5Qt=WW=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1u0V20-0003KW-FY
 for xen-devel@lists.xenproject.org; Fri, 04 Apr 2025 00:35:36 +0000
Received: from fout-a5-smtp.messagingengine.com
 (fout-a5-smtp.messagingengine.com [103.168.172.148])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b7834258-10ec-11f0-9eaa-5ba50f476ded;
 Fri, 04 Apr 2025 02:35:34 +0200 (CEST)
Received: from phl-compute-02.internal (phl-compute-02.phl.internal
 [10.202.2.42])
 by mailfout.phl.internal (Postfix) with ESMTP id 2513A13801E2;
 Thu,  3 Apr 2025 20:35:32 -0400 (EDT)
Received: from phl-mailfrontend-01 ([10.202.2.162])
 by phl-compute-02.internal (MEProxy); Thu, 03 Apr 2025 20:35:32 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 3 Apr 2025 20:35:30 -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: b7834258-10ec-11f0-9eaa-5ba50f476ded
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=fm2; t=1743726932;
	 x=1743813332; bh=wuC84Tknj9q9XWXbe+D3YerSpW1Lr2jJHf7iKC1E+a4=; b=
	cLJ61xiiDKIdapTT7XT6DlDmmemaiQ8JzUBd2YXtKR2qUTwHr1yeiXfjWFwqHAhk
	h3Cqlsw4zlInEFw+v8qbP636Rf6zDD4L9vZVQVbcvIkJ784xirvLnEIdrWOsVatd
	oCqdLn3JwS5F5uU/+N+OhhT3q0kMwdiYUAWT5UetSyscmfkQnCmj66blWO6fiNt2
	3UC5433xhY5hTDxNyyouTLAwXwK0RrdjsKWrAyPOyj2BomDOeyWNM1p+R0MTFl0C
	t0Sz9tzUum7Gx3pYd48JHEe0FV3nMv/WiecMRAbQjJcFt9yrjgXfyFC5KYEJEVnP
	R/oJSgvYSwhoxbSlQqmp6g==
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=fm2; t=
	1743726932; x=1743813332; bh=wuC84Tknj9q9XWXbe+D3YerSpW1Lr2jJHf7
	iKC1E+a4=; b=cM3ZuzBrmuoYaS/oxndzSfrelSGQCKzyfr1+OgGGYrAPFski3E7
	/uBfJTn+YnaeFRJulxC4zXnJF89hipolP1OOB7aa5FjHNqzbxjuALq7ccqdlcK1P
	29zXYEAD9+M8eAJSaZSBV0tUqtwoBuRXRo+PYo7QfjvkT8EFDjsmehYZYhpQ5qIK
	3lYjDv7Cih++0xhIYmX0u6k0RgqdQ/JqbGg31ZeeVipbY2B/XFRJljHByRhKnxWY
	glHao6CBohcZDphbuPakQu6O2G4/Jab44JRfKBIwDpeSpeaOYfYe9Uv7CvwriSak
	3XQkGhXzi3I18PeUvBtsE287KrN92EEwhgw==
X-ME-Sender: <xms:UynvZ-eyz8I5ILLc_MyBmIFeLej2sKdDcJdCGKwlVmIOarLJB8acSg>
    <xme:UynvZ4PSFBTkDeajolQtYPbZlPDE49O9XBgDI_yZvNVw1YERJHpQ5qi9_xgGfaoaK
    ia66RU20HdyFw>
X-ME-Received: <xmr:UynvZ_irI-SX0SuUkQd5ix04TsvL5ckDjlXf8VJwquylo4ORXe_vSNDTVt3IGt571OU5hfSBuIVyjCa3FLYwOw9IzvT2_StWZw>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgdduledttdduucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
    pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
    gvnhhtshculddquddttddmnecujfgurhepfffhvfevuffkfhggtggujgesghdtreertddt
    jeenucfhrhhomhepofgrrhgvkhcuofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuc
    eomhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecu
    ggftrfgrthhtvghrnhepgfduleetfeevhfefheeiteeliefhjefhleduveetteekveettd
    dvgeeuteefjedunecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhf
    rhhomhepmhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomh
    dpnhgspghrtghpthhtohephedpmhhouggvpehsmhhtphhouhhtpdhrtghpthhtohepshhs
    thgrsggvlhhlihhniheskhgvrhhnvghlrdhorhhgpdhrtghpthhtohepjhgsvghulhhitg
    hhsehsuhhsvgdrtghomhdprhgtphhtthhopegrnhgurhgvfidrtghoohhpvghrfeestghi
    thhrihigrdgtohhmpdhrtghpthhtoheptggrrhguohgvsegtrghrughovgdrtghomhdprh
    gtphhtthhopeigvghnqdguvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhr
    gh
X-ME-Proxy: <xmx:UynvZ790NA2wSTKdrcdd-Ja5n40XIzWpKBphv0LSK0AXUtaiFNdxRA>
    <xmx:UynvZ6sTkT7kkoPXbyfTfhBn01gYQSsVRCtn1lW2euhHHUZHr4zV2Q>
    <xmx:UynvZyGe--fMvy2ohUx8zupqjpVgtkZHh1olclOljil22LXUKjuJYA>
    <xmx:UynvZ5OLPa0baYLBvzAUB8DpiinY39e2DRq5EDtWX1FRbjtDyti1nQ>
    <xmx:VCnvZz_nMwU3_ypFBJTIr86sCVulbiM7iFTteBshPVhhyceEQH8XG5Km>
Feedback-ID: i1568416f:Fastmail
Date: Fri, 4 Apr 2025 02:35:28 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Doug Goldstein <cardoe@cardoe.com>, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v1 02/11] ci: increase timeout for hw tests
Message-ID: <Z-8pUBzVty-5Us2l@mail-itl>
References: <cover.59b4d1e66776c1e577aa5dd5460605dc6c240613.1743678257.git-series.marmarek@invisiblethingslab.com>
 <7578489af5c7df525d4c82231b68bbb7d955d2b4.1743678257.git-series.marmarek@invisiblethingslab.com>
 <9e4660fc-b78f-4323-8a1b-aca3d410edd3@suse.com>
 <Z-5-PBcbtUOCSAiv@mail-itl>
 <alpine.DEB.2.22.394.2504031720260.3529306@ubuntu-linux-20-04-desktop>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="Ka585L6JABnbgr+x"
Content-Disposition: inline
In-Reply-To: <alpine.DEB.2.22.394.2504031720260.3529306@ubuntu-linux-20-04-desktop>


--Ka585L6JABnbgr+x
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Fri, 4 Apr 2025 02:35:28 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Doug Goldstein <cardoe@cardoe.com>, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v1 02/11] ci: increase timeout for hw tests

On Thu, Apr 03, 2025 at 05:21:56PM -0700, Stefano Stabellini wrote:
> Hi Marek, would you be up for moving your script to use "expect"?
> Something like ./automation/scripts/console.exp?
>=20
> That way, we would immediately complete the job no matter the timeout
> value. It is also nicer :-)

Oh, this is excellent idea, I'll see how it fits there. It seems I'll
need at least add support for wakeup for the suspend tests, but that
shouldn't be a problem.

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

--Ka585L6JABnbgr+x
Content-Type: application/pgp-signature; name=signature.asc

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmfvKVAACgkQ24/THMrX
1yw6ogf7BUAgFFrNp+wXn7sEwD4v+Aoj5ELhQNW5GIjMn0aFP3wnXxC87iy4ux6Q
eAhnDxtmbVSphWnciNttf54VBVPks/Jru5AIlgMMBiYJgyB8PXMfrdEPefpjQFim
37N2mlSnGrT5XD+ELPAc7zK4PAJwrW3RJ4TkB+U8zAmKbJp0KWtuBe5Hd7Ycf025
DjVZS08g9KnP10pb/N33UDNk7xbXgAtwR53YTynwdU/77Ad+LaTG5DJLbv3uC6+s
xtDX/trdrvjh6Dc3R3nFcPENOtXdzUFj+vxa0u8TBxh082US5wwa89A4mKfFgIxc
zY4bhUjd4oQkXewc6x+umgC5ijUfmQ==
=y+9A
-----END PGP SIGNATURE-----

--Ka585L6JABnbgr+x--


From xen-devel-bounces@lists.xenproject.org Fri Apr 04 00:36:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 04 Apr 2025 00:36:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.937624.1338547 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0V3D-0004Mx-D3; Fri, 04 Apr 2025 00:36:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 937624.1338547; Fri, 04 Apr 2025 00:36: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 1u0V3D-0004Mq-9x; Fri, 04 Apr 2025 00:36:51 +0000
Received: by outflank-mailman (input) for mailman id 937624;
 Fri, 04 Apr 2025 00:36: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=8oGR=WW=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u0V3C-0004Mi-EL
 for xen-devel@lists.xenproject.org; Fri, 04 Apr 2025 00:36:50 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e43c511c-10ec-11f0-9eaa-5ba50f476ded;
 Fri, 04 Apr 2025 02:36:49 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 5F9BC44EE7;
 Fri,  4 Apr 2025 00:36:46 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0946EC4CEE3;
 Fri,  4 Apr 2025 00:36: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: e43c511c-10ec-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1743727006;
	bh=Bx6sfO8cbMwYsif5iGWvTvtGjsvy41KYctTvvmh068Q=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=bjufjrLvAwrhjiEM99jVX568G2xTy9V9num6L7dCJoZZWxs4gBbzrNDFpwgTeG1ad
	 eCXOqs2ACW30HZk5ndQScRDN77TTZpB2hRHW4cU2/I2Ykg8+iE9pS70FrcepPxrObv
	 MYMy3pgNJj6sqP0yJGgd2Qi/mc4/4g4jrLNHPaPQ2oBgZqOCBWchtOBITWyKC7LUtH
	 5a/AHyi/gtTutPStQsHKfmX1ZpFXLF+mZrXfFwWsDkid8CxwhsgtBD5AppkE3ckJPj
	 IspTd4p8rSrlxxn4zS0+BR97PvRLl80NjQ9KnyST9DXLTiXru3w/emIZkXCwbDX9Jt
	 utvPXDKWyMR4g==
Date: Thu, 3 Apr 2025 17:36:44 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
cc: xen-devel@lists.xenproject.org, Andrew Cooper <andrew.cooper3@citrix.com>, 
    Doug Goldstein <cardoe@cardoe.com>, 
    Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH v1 07/11] ci: wait for the network interface in PCI
 passthrough tests
In-Reply-To: <726b40daa70f376f928c559b061e002c8cc2005f.1743678257.git-series.marmarek@invisiblethingslab.com>
Message-ID: <alpine.DEB.2.22.394.2504031736140.3529306@ubuntu-linux-20-04-desktop>
References: <cover.59b4d1e66776c1e577aa5dd5460605dc6c240613.1743678257.git-series.marmarek@invisiblethingslab.com> <726b40daa70f376f928c559b061e002c8cc2005f.1743678257.git-series.marmarek@invisiblethingslab.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="8323329-2133017963-1743727006=:3529306"

  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-2133017963-1743727006=:3529306
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8BIT

On Thu, 3 Apr 2025, Marek Marczykowski-Górecki wrote:
> The network driver initializes asynchronously, and it may not be ready
> yet by the time the startup script is called. This is especially the
> case for USB network adapter (where the PCI device is the USB
> controller) in the upcoming runner.
> 
> Don't bother about separate timeout - test timeout will cover this part
> too.
> 
> Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>

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


> ---
>  automation/scripts/qubes-x86-64.sh | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/automation/scripts/qubes-x86-64.sh b/automation/scripts/qubes-x86-64.sh
> index 822b81d186a7..6d2c170d1ee1 100755
> --- a/automation/scripts/qubes-x86-64.sh
> +++ b/automation/scripts/qubes-x86-64.sh
> @@ -104,6 +104,7 @@ on_reboot = "destroy"
>          domU_check="
>  set -x -e
>  interface=eth0
> +while ! [ -e \"/sys/class/net/\$interface\" ]; do sleep 1; done
>  ip link set \"\$interface\" up
>  timeout 30s udhcpc -i \"\$interface\"
>  pingip=\$(ip -o -4 r show default|cut -f 3 -d ' ')
> -- 
> git-series 0.9.1
> 
--8323329-2133017963-1743727006=:3529306--


From xen-devel-bounces@lists.xenproject.org Fri Apr 04 00:45:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 04 Apr 2025 00:45:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.937638.1338558 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0VBl-0007a3-3t; Fri, 04 Apr 2025 00:45:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 937638.1338558; Fri, 04 Apr 2025 00:45: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 1u0VBl-0007Zw-0n; Fri, 04 Apr 2025 00:45:41 +0000
Received: by outflank-mailman (input) for mailman id 937638;
 Fri, 04 Apr 2025 00:45: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=8oGR=WW=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u0VBk-0007Zq-1J
 for xen-devel@lists.xenproject.org; Fri, 04 Apr 2025 00:45:40 +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 1dcd7a16-10ee-11f0-9ffb-bf95429c2676;
 Fri, 04 Apr 2025 02:45:34 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id E0D6F5C57B1;
 Fri,  4 Apr 2025 00:43:15 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id BDFD5C4CEE3;
 Fri,  4 Apr 2025 00:45: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: 1dcd7a16-10ee-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1743727532;
	bh=CzvNuLaMakSNbkeq1+5HHu4L1F3dHXmAw4MfHZ+kYyc=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=TONTfmSZ0QYfSejq/q4Tb79DTny1cQ/zTGmn7EZ/x87PhA3UnVA4cF19urBZ8XPw3
	 jr+/g2UCKi/x5Em3li2hPaH7dSRPNVHQ2MtABQsMi0e7Kl9zM8y7lHI7OiFgT59sUB
	 TjPz1XSYYTMXCBBrzPox8R6rUdbM5hlvIjrSrwuP2elPnhHYBFG6O0OTeJAPL1mAzy
	 PvagfDBO2SJV+dgN/n67uo2KBJx61FO/Qhn8rLnUFkDFDYh/B2HY6aqyQe5DubTW/K
	 IPAGka8EAM2yRGgIfYtFD7tXeUmNhGoXjPrBYqgvQL3dWUxcSm6jD800DBYW/d+bwC
	 BROTGakIkpwAA==
Date: Thu, 3 Apr 2025 17:45:30 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
cc: xen-devel@lists.xenproject.org, Andrew Cooper <andrew.cooper3@citrix.com>, 
    Doug Goldstein <cardoe@cardoe.com>, 
    Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH v1 09/11] ci: adjust resolving network interface into
 PCI device
In-Reply-To: <bc4788cfc6217be3b900e4ab4c019eb3b7e34f0a.1743678257.git-series.marmarek@invisiblethingslab.com>
Message-ID: <alpine.DEB.2.22.394.2504031742420.3529306@ubuntu-linux-20-04-desktop>
References: <cover.59b4d1e66776c1e577aa5dd5460605dc6c240613.1743678257.git-series.marmarek@invisiblethingslab.com> <bc4788cfc6217be3b900e4ab4c019eb3b7e34f0a.1743678257.git-series.marmarek@invisiblethingslab.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="8323329-2010084662-1743727532=:3529306"

  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-2010084662-1743727532=:3529306
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8BIT

On Thu, 3 Apr 2025, Marek Marczykowski-Górecki wrote:
> Change how PCI device lookup is done to handle also USB devices, in
> which case get the USB controller. Instead of taking basename of the
> 'device' symlink, resolve the full path (example:
> /sys/devices/pci0000:00/0000:00:09.0/usb4/4-7/4-7:1.0) and take the
> first part after pci0000:00. Theoretically it could be a bridge, but VM
> has flat PCI topology.
> 
> Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
> ---
>  automation/scripts/qubes-x86-64.sh | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/automation/scripts/qubes-x86-64.sh b/automation/scripts/qubes-x86-64.sh
> index 6d2c170d1ee1..dc8013750f5f 100755
> --- a/automation/scripts/qubes-x86-64.sh
> +++ b/automation/scripts/qubes-x86-64.sh
> @@ -110,7 +110,8 @@ timeout 30s udhcpc -i \"\$interface\"
>  pingip=\$(ip -o -4 r show default|cut -f 3 -d ' ')
>  ping -c 10 \"\$pingip\"
>  echo domU started
> -pcidevice=\$(basename \$(readlink /sys/class/net/\$interface/device))
> +pcidevice=\$(realpath /sys/class/net/\$interface/device |
> +             sed 's#.*pci0000:00/\\([^/]*\\).*#\\1#')

This is still a bit fragile but better than before

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


>  lspci -vs \$pcidevice
>  "
>          if [ -n "$PCIDEV_INTR" ]; then
> -- 
> git-series 0.9.1
> 
--8323329-2010084662-1743727532=:3529306--


From xen-devel-bounces@lists.xenproject.org Fri Apr 04 00:47:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 04 Apr 2025 00:47:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.937649.1338568 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0VD7-000863-EL; Fri, 04 Apr 2025 00:47:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 937649.1338568; Fri, 04 Apr 2025 00:47:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0VD7-00085w-BN; Fri, 04 Apr 2025 00:47:05 +0000
Received: by outflank-mailman (input) for mailman id 937649;
 Fri, 04 Apr 2025 00:47: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=8oGR=WW=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u0VD5-00085o-VB
 for xen-devel@lists.xenproject.org; Fri, 04 Apr 2025 00:47:03 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 528182d1-10ee-11f0-9eaa-5ba50f476ded;
 Fri, 04 Apr 2025 02:47:02 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 7FD0B614B8;
 Fri,  4 Apr 2025 00:46:54 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 74A17C4CEE9;
 Fri,  4 Apr 2025 00:47: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: 528182d1-10ee-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1743727621;
	bh=MsdkSfDvJ/AGNv5LUApFtHfsK8sANXruFfeCJTaq56A=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=V0YxrgA4/4d5iCwHBztGdKKLCwUk8eaGYA9wqD3imKROY9jrCMyIEW1rhwbXLP7jq
	 bTlZTVAwScGAsLHzeI2I+J1h9tul0Qeuc1Fzx882pv0Lw/AXWmueSbb/oiJHzxcVn9
	 9HyPaYJN6uaH75nlYKMNhSyaU2et7DTHt38GeQS0KVoK/QdO74ojZ8jFqMq5ChepbS
	 ESCvvbms2pT5Ll78S2yfxPZF5BwNsrmGULHz7VDtBOmHyL34rbrkKUYoxd3pXsEbdn
	 WodWLL06jHZUt8x0m/giRGrPWsHZnpiSm52gt8yhB3xj9dfu/fbLf4aE12uVPmJiiN
	 6RfDx4sywnFgQ==
Date: Thu, 3 Apr 2025 17:46:59 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
cc: xen-devel@lists.xenproject.org, Andrew Cooper <andrew.cooper3@citrix.com>, 
    Doug Goldstein <cardoe@cardoe.com>, 
    Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH v1 10/11] ci: add AMD Zen 4 HW runner
In-Reply-To: <5d80b0abf5979f5238781099a22a418b744e3315.1743678257.git-series.marmarek@invisiblethingslab.com>
Message-ID: <alpine.DEB.2.22.394.2504031746270.3529306@ubuntu-linux-20-04-desktop>
References: <cover.59b4d1e66776c1e577aa5dd5460605dc6c240613.1743678257.git-series.marmarek@invisiblethingslab.com> <5d80b0abf5979f5238781099a22a418b744e3315.1743678257.git-series.marmarek@invisiblethingslab.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="8323329-512275910-1743727621=:3529306"

  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-512275910-1743727621=:3529306
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8BIT

On Thu, 3 Apr 2025, Marek Marczykowski-Górecki wrote:
> This is AMD Ryzen 5 7640U in Framework Laptop AMD.
> It has several things different than the other runners.
> First of all, the console is using XHCI debug capability.
> And then, this system doesn't have normal wired ethernet. But is has one
> on USB, and this one is used for booting. For this, enable
> CONFIG_USB_RTL8152 in the Linux build.
> 
> Include some basic tests, plus PCI passthrough.
> 
> This machine doesn't support S3. S0ix pretends to be working with
> Qubes's dom0 (kernel + userspace), but it hangs on suspend with Alpine
> used in test. But even when it doesn't hang, it doesn't really reach
> deep sleep, so skip this test for now here.
> 
> Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
> ---
> Requires containers rebuild, especially tests-artifacts/kernel/6.12.21.
> 
> Do not apply yet, until issues found by those tests are fixed. That
> would be at least third issue found using this system, so lets have it
> in CI.

I'd prefer to wait 1 week before committing. In the meantime:

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



> ---
>  automation/gitlab-ci/test.yaml                       | 56 +++++++++++++-
>  automation/tests-artifacts/kernel/6.12.21.dockerfile |  2 +-
>  2 files changed, 58 insertions(+)
> 
> diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
> index a13dd040bd26..feb2dd10ab30 100644
> --- a/automation/gitlab-ci/test.yaml
> +++ b/automation/gitlab-ci/test.yaml
> @@ -188,6 +188,16 @@
>    tags:
>      - qubes-hw11
>  
> +.zen4-x86-64:
> +  extends: .adl-x86-64
> +  variables:
> +    PCIDEV: "c3:00.4"
> +    PCIDEV_INTR: "MSI-X"
> +    CONSOLE_OPTS: "console=xhci dbgp=xhci@pcic1:00.3,share=yes"
> +    SUT_ADDR: test-12.testnet
> +  tags:
> +    - qubes-hw12
> +
>  # Test jobs
>  build-each-commit-gcc:
>    extends: .test-jobs-common
> @@ -479,6 +489,52 @@ zen3p-tools-tests-pvh-x86-64-gcc-debug:
>      - *x86-64-test-needs
>      - alpine-3.18-gcc-debug
>  
> +zen4-smoke-x86-64-gcc-debug:
> +  extends: .zen4-x86-64
> +  script:
> +    - ./automation/scripts/qubes-x86-64.sh 2>&1 | tee ${LOGFILE}
> +  needs:
> +    - *x86-64-test-needs
> +    - alpine-3.18-gcc-debug
> +
> +zen4-smoke-x86-64-dom0pvh gcc-debug:
> +  extends: .zen4-x86-64
> +  script:
> +    - ./automation/scripts/qubes-x86-64.sh dom0pvh 2>&1 | tee ${LOGFILE}
> +  needs:
> +    - *x86-64-test-needs
> +    - alpine-3.18-gcc-debug
> +
> +zen4-pci-hvm-x86-64-gcc-debug:
> +  extends: .zen4-x86-64
> +  script:
> +    - ./automation/scripts/qubes-x86-64.sh pci-hvm 2>&1 | tee ${LOGFILE}
> +  needs:
> +    - *x86-64-test-needs
> +    - alpine-3.18-gcc-debug
> +
> +zen4-tools-tests-pv-x86-64-gcc-debug:
> +  extends: .zen4-x86-64
> +  script:
> +    - ./automation/scripts/qubes-x86-64.sh tools-tests-pv 2>&1 | tee ${LOGFILE}
> +  artifacts:
> +    reports:
> +      junit: tests-junit.xml
> +  needs:
> +    - *x86-64-test-needs
> +    - alpine-3.18-gcc-debug
> +
> +zen4-tools-tests-pvh-x86-64-gcc-debug:
> +  extends: .zen4-x86-64
> +  script:
> +    - ./automation/scripts/qubes-x86-64.sh tools-tests-pvh 2>&1 | tee ${LOGFILE}
> +  artifacts:
> +    reports:
> +      junit: tests-junit.xml
> +  needs:
> +    - *x86-64-test-needs
> +    - alpine-3.18-gcc-debug
> +
>  qemu-smoke-dom0-arm64-gcc:
>    extends: .qemu-arm64
>    script:
> diff --git a/automation/tests-artifacts/kernel/6.12.21.dockerfile b/automation/tests-artifacts/kernel/6.12.21.dockerfile
> index d7d34031cab5..4e0a68ec61eb 100644
> --- a/automation/tests-artifacts/kernel/6.12.21.dockerfile
> +++ b/automation/tests-artifacts/kernel/6.12.21.dockerfile
> @@ -19,6 +19,7 @@ RUN apt-get update && \
>          flex \
>          bison \
>          libelf-dev \
> +        libssl-dev \
>          && \
>      apt-get autoremove -y && \
>      apt-get clean && \
> @@ -33,6 +34,7 @@ RUN curl -fsSLO https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-"$LINUX_VERSI
>      scripts/config --enable BRIDGE && \
>      scripts/config --enable IGC && \
>      scripts/config --enable TUN && \
> +    scripts/config --enable USB_RTL8152 && \
>      cp .config .config.orig && \
>      cat .config.orig | grep XEN | grep =m |sed 's/=m/=y/g' >> .config && \
>      make -j$(nproc) bzImage && \
> -- 
> git-series 0.9.1
> 
--8323329-512275910-1743727621=:3529306--


From xen-devel-bounces@lists.xenproject.org Fri Apr 04 01:02:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 04 Apr 2025 01:02:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.937663.1338578 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0VRT-0004qH-KV; Fri, 04 Apr 2025 01:01:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 937663.1338578; Fri, 04 Apr 2025 01:01: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 1u0VRT-0004qA-Hq; Fri, 04 Apr 2025 01:01:55 +0000
Received: by outflank-mailman (input) for mailman id 937663;
 Fri, 04 Apr 2025 01:01: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=8oGR=WW=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u0VRS-0004q4-7j
 for xen-devel@lists.xenproject.org; Fri, 04 Apr 2025 01:01:54 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org
 [2600:3c04:e001:324:0:1991:8:25])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 613692dd-10f0-11f0-9ffb-bf95429c2676;
 Fri, 04 Apr 2025 03:01:46 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 320456113B;
 Fri,  4 Apr 2025 01:01:38 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id A6606C4CEE7;
 Fri,  4 Apr 2025 01:01:43 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 613692dd-10f0-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1743728504;
	bh=uqchqLTe2Q2WYfzxGfV01BUVnahYzYUq5UwZGo46i6I=;
	h=Date:From:To:cc:Subject:From;
	b=tnodfuHVpgbJlkt2BPdz2Xy0aiM+heAiqHxvsgb23FR2zp7q5R1KJcoKogafvvEC0
	 HKibBXiPCzVF0NNQDuHddgxHG+0+CekIqXSprGGLCdqbkV9Ij9/BsYlA89cnrTYyVF
	 9DbgWFIKTAw1xBIjDV7Hba7lQugCJcDhfiwizKW9Ad8irEt/0r1awGU0jzvAE/28CP
	 AOW701jOP21PrvAYIF2mdC85jNHV3LrcUwfLVeVRKA9DElQXBisfNQ9041Dw2MAXVc
	 WnyYI/FKshYJV2jM05Jgjkyr6aRRFnfa+z536fai/2vEbpxAALnEtrpW7sN0SkIEXD
	 uld83FLrVHHPw==
Date: Thu, 3 Apr 2025 18:01:42 -0700 (PDT)
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, Andrew Cooper <andrew.cooper3@citrix.com>, 
    Jan Beulich <jbeulich@suse.com>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    jason.andryuk@amd.com, Xenia.Ragiadakou@amd.com, 
    Alejandro.GarciaVallejo@amd.com
Subject: [RFC] xen/x86: allow overlaps with non-RAM regions
Message-ID: <alpine.DEB.2.22.394.2504031755440.3529306@ubuntu-linux-20-04-desktop>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On one Sapphire AMD x86 board, I see this:


(XEN) [0000003943ca6ff2]  [00000000f0000000, 00000000f7ffffff] (reserved)
(XEN) [00000039460886d9]  [00000000fd000000, 00000000ffffffff] (reserved)
[...]
(XEN) [    4.612235] 0000:02:00.0: not mapping BAR [fea00, fea03] invalid position


Linux boots fine on this platform but Linux as Dom0 on Xen does not.
This is because the pci_check_bar->is_memory_hole check fails due to the
MMIO region overlapping with the EFI reserved region.

While I think ideally this should not happen, as you can imagine users
are never happy when Linux baremetal boots fine, and Linux on Xen does
not.

This patch fixes the boot issue by relaxing the is_memory_hole check.

Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>

diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
index b294497a14..afb54d6f0f 100644
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -797,6 +797,9 @@ bool is_memory_hole(mfn_t start, mfn_t end)
         if ( !entry->size )
             continue;
 
+        if ( entry->type > 1 )
+            continue;
+
         /* Do not allow overlaps with any memory range. */
         if ( s <= PFN_DOWN(entry->addr + entry->size - 1) &&
              PFN_DOWN(entry->addr) <= e )


From xen-devel-bounces@lists.xenproject.org Fri Apr 04 01:03:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 04 Apr 2025 01:03:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.937677.1338589 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0VTI-0005RU-50; Fri, 04 Apr 2025 01:03:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 937677.1338589; Fri, 04 Apr 2025 01:03:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0VTI-0005RN-00; Fri, 04 Apr 2025 01:03:48 +0000
Received: by outflank-mailman (input) for mailman id 937677;
 Fri, 04 Apr 2025 01:03:47 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=8oGR=WW=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u0VTH-0005RF-Ax
 for xen-devel@lists.xenproject.org; Fri, 04 Apr 2025 01:03:47 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org
 [2600:3c0a:e001:78e:0:1991:8:25])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a7698795-10f0-11f0-9ffb-bf95429c2676;
 Fri, 04 Apr 2025 03:03:44 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 3346544EF5;
 Fri,  4 Apr 2025 01:03:42 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id EB68BC4CEE7;
 Fri,  4 Apr 2025 01:03: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: a7698795-10f0-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1743728622;
	bh=uvT5lNwICIHPRBHCKd7L5EoQdJl1nI1jEp+f1HmtzII=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=Fa9+W9aUza05pY82cFOHghXb07tBEOYLun7kcFutNgg6fluqOvvJry9qO+h7eBOj+
	 93oAgKkKEx70CHxwbnH1YfySknjzZnTOlEN0xMuXyDUJTMyQKXtn5hO6OT3sKa28uA
	 qofvB+H4t7qSoTtUT3quO/QNm+evQ7ztFBJTHzlMujachbwolR7vBZR2jAbZaRviDy
	 mHYJ3u8+CXCbABFvi9aBbo2dN54aFlmhO9nqzJDfjwb1sZs5MFyxqlfKU31GHx7UG8
	 jG2DtO/Zrbm2+Wj0ndfDLKwrkyswzFIzbcBGZ1PM8Ux1UtjGO4Uz6MNBAWT8kMMdhi
	 9lXc5wFuqmLOw==
Date: Thu, 3 Apr 2025 18:03:39 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jason Andryuk <jason.andryuk@amd.com>
cc: xen-devel@lists.xenproject.org, 
    "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>, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    Anthony PERARD <anthony.perard@vates.tech>, 
    Jan Beulich <jbeulich@suse.com>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Subject: Re: [PATCH v3 1/7] xen: introduce hardware domain create flag
In-Reply-To: <20250403214608.152954-2-jason.andryuk@amd.com>
Message-ID: <alpine.DEB.2.22.394.2504031802590.3529306@ubuntu-linux-20-04-desktop>
References: <20250403214608.152954-1-jason.andryuk@amd.com> <20250403214608.152954-2-jason.andryuk@amd.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Thu, 3 Apr 2025, Jason Andryuk wrote:
> From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
> 
> Add and use a new internal create domain flag to specify the hardware
> domain.  This removes the hardcoding of domid 0 as the hardware domain.
> 
> This allows more flexibility with domain creation.
> 
> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
> Reviewed-by: Jan Beulich <jbeulich@suse.com>

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


> ---
> v3:
> Or-in CDF_hardware for late hwdom case
> Add Jan's R-b
> 
> v2:
> () around binary &
> Only allow late_hwdom for dom0
> ---
>  xen/arch/arm/domain_build.c | 2 +-
>  xen/arch/x86/setup.c        | 3 ++-
>  xen/common/domain.c         | 7 ++++++-
>  xen/include/xen/domain.h    | 2 ++
>  4 files changed, 11 insertions(+), 3 deletions(-)
> 
> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
> index 634333cdde..b8f282ff10 100644
> --- a/xen/arch/arm/domain_build.c
> +++ b/xen/arch/arm/domain_build.c
> @@ -2369,7 +2369,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;
> +    unsigned int flags = CDF_privileged | CDF_hardware;
>      int rc;
>  
>      /* The vGIC for DOM0 is exactly emulating the hardware GIC */
> diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
> index d70abb7e0c..67d399c469 100644
> --- a/xen/arch/x86/setup.c
> +++ b/xen/arch/x86/setup.c
> @@ -1018,7 +1018,8 @@ static struct domain *__init create_dom0(struct boot_info *bi)
>  
>      /* Create initial domain.  Not d0 for pvshim. */
>      domid = get_initial_domain_id();
> -    d = domain_create(domid, &dom0_cfg, pv_shim ? 0 : CDF_privileged);
> +    d = domain_create(domid, &dom0_cfg,
> +                      pv_shim ? 0 : CDF_privileged | CDF_hardware);
>      if ( IS_ERR(d) )
>          panic("Error creating d%u: %ld\n", domid, PTR_ERR(d));
>  
> diff --git a/xen/common/domain.c b/xen/common/domain.c
> index 585fd726a9..da74f815f4 100644
> --- a/xen/common/domain.c
> +++ b/xen/common/domain.c
> @@ -820,13 +820,18 @@ struct domain *domain_create(domid_t domid,
>      d->is_privileged = flags & CDF_privileged;
>  
>      /* Sort out our idea of is_hardware_domain(). */
> -    if ( domid == 0 || domid == hardware_domid )
> +    if ( (flags & CDF_hardware) || domid == hardware_domid )
>      {
>          if ( hardware_domid < 0 || hardware_domid >= DOMID_FIRST_RESERVED )
>              panic("The value of hardware_dom must be a valid domain ID\n");
>  
> +        /* late_hwdom is only allowed for dom0. */
> +        if ( hardware_domain && hardware_domain->domain_id )
> +            return ERR_PTR(-EINVAL);
> +
>          old_hwdom = hardware_domain;
>          hardware_domain = d;
> +        flags |= CDF_hardware;
>      }
>  
>      TRACE_TIME(TRC_DOM0_DOM_ADD, d->domain_id);
> diff --git a/xen/include/xen/domain.h b/xen/include/xen/domain.h
> index a34daa7d10..e10baf2615 100644
> --- a/xen/include/xen/domain.h
> +++ b/xen/include/xen/domain.h
> @@ -53,6 +53,8 @@ domid_t get_initial_domain_id(void);
>  #else
>  #define CDF_staticmem            0
>  #endif
> +/* This is the hardware domain.  Only 1 allowed. */
> +#define CDF_hardware             (1U << 3)
>  
>  #define is_domain_direct_mapped(d) ((d)->cdf & CDF_directmap)
>  #define is_domain_using_staticmem(d) ((d)->cdf & CDF_staticmem)
> -- 
> 2.49.0
> 


From xen-devel-bounces@lists.xenproject.org Fri Apr 04 01:06:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 04 Apr 2025 01:06:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.937689.1338597 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0VVk-00062i-F9; Fri, 04 Apr 2025 01:06:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 937689.1338597; Fri, 04 Apr 2025 01: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 1u0VVk-00062b-C2; Fri, 04 Apr 2025 01:06:20 +0000
Received: by outflank-mailman (input) for mailman id 937689;
 Fri, 04 Apr 2025 01: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=8oGR=WW=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u0VVj-00062S-1y
 for xen-devel@lists.xenproject.org; Fri, 04 Apr 2025 01:06:19 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0207d9d0-10f1-11f0-9ffb-bf95429c2676;
 Fri, 04 Apr 2025 03:06:16 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id AB8DE43865;
 Fri,  4 Apr 2025 01:06:14 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id E153AC4CEE3;
 Fri,  4 Apr 2025 01:06: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: 0207d9d0-10f1-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1743728775;
	bh=CQO5AbCBKC7SyzKVQAtya/dBPRgDBcmM2XCkbuhfkZM=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=ArRZ8ZrwmKbgy/DLdp1N0akSsE1hA13j2nRVNPEZcqSm7CCHtekyEjWC0Pct5TJ+W
	 2JsXkiDBEiSoh2kZBKHigPJIIrCREG5fM9QbLNrdYb9l1O1N7DHZhh1BiZCiIRXGqm
	 Hov3i6f5UtXILqNo9yXqSkRZS66ZiHNCIZhEudveA781Qk1bnGZ9KB3YuwUsxoTI51
	 AS3zAo4bnRgit8vdmpWLNIYygJBsCsqDYPGpHEFyfOQRWRpFbDf+xnUFfILBjAPxc7
	 J35Q5hIORwsLG6kthTiPVzwb56H8jPwnE9IQUcMD7Za+OUvZIt9tLN9PNeRGJN5ffO
	 5CeW3rqnIgq0Q==
Date: Thu, 3 Apr 2025 18:06:12 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jason Andryuk <jason.andryuk@amd.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>
Subject: Re: [PATCH v3 3/7] xen/arm: dom0less delay xenstore initialization
In-Reply-To: <20250403214608.152954-4-jason.andryuk@amd.com>
Message-ID: <alpine.DEB.2.22.394.2504031805591.3529306@ubuntu-linux-20-04-desktop>
References: <20250403214608.152954-1-jason.andryuk@amd.com> <20250403214608.152954-4-jason.andryuk@amd.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Thu, 3 Apr 2025, Jason Andryuk wrote:
> To allocate the xenstore event channel and initialize the grant table
> entry, the xenstore domid is neeed.  A dom0 is created before the domUs,
> so it is normally available through hardware_domain.  With capabilities
> and dom0less, the xenstore domain may not be created first.
> 
> Keep the population of the page and HVM_PARAM_STORE_PFN in the normal
> domain construction, but delay event channel creation and grant seeding
> to after all domUs are created.  HVM_PARAM_STORE_PFN now serves as
> indication to setup xenstore since the device tree is no longer
> immediately available.  0 means no xenstore.  ~0ULL means legacy so only
> the event channel needs setup, and any other value means to seed the
> page.
> 
> dom0 needs to set xs_domid when it is serving as the xenstore domain.
> 
> The domain running xenstored needs to be the handler for VIRQ_DOM_EXC,
> so set that as well - it otherwise defaults to hardware domain.
> 
> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>

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



From xen-devel-bounces@lists.xenproject.org Fri Apr 04 01:09:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 04 Apr 2025 01:09:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.937702.1338607 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0VYt-0006c6-Rb; Fri, 04 Apr 2025 01:09:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 937702.1338607; Fri, 04 Apr 2025 01:09: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 1u0VYt-0006bz-Oy; Fri, 04 Apr 2025 01:09:35 +0000
Received: by outflank-mailman (input) for mailman id 937702;
 Fri, 04 Apr 2025 01:09: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=8oGR=WW=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u0VYs-0006bt-HR
 for xen-devel@lists.xenproject.org; Fri, 04 Apr 2025 01:09:34 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org
 [2600:3c04:e001:324:0:1991:8:25])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 775c36b5-10f1-11f0-9eaa-5ba50f476ded;
 Fri, 04 Apr 2025 03:09:33 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id C0DF86113B;
 Fri,  4 Apr 2025 01:09:24 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 07FA1C4CEE3;
 Fri,  4 Apr 2025 01:09:29 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 775c36b5-10f1-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1743728971;
	bh=f3IUdbus24FfNz8uOfqVdlG/NWA4NVaQvT2LwoGluzQ=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=aXwZzZxgMInjuOsAUvwDxwGP6ojyH7GvkUEOh69mFqDHdlux2jIqljiFyC4dCT+PH
	 6fFhRlxNsSiBzDvFS3Ti97tZ8MR1PEFKqxGUAOkHZMR+F8hvKTbGdHuA31XAKl/NWt
	 9FC59pUlzfyvvFZ0WiLtmgzOaTxu1LNTi/OpKZD0ene5rO7ZQU1EZoPAEr5F87gg5l
	 sIqe09QRMyCrVFafrcsdqOpA0Ngej71GFkH8XjE4895QrZW9uqt72A6PUKHrkmORTG
	 TGL5GAT5w9t/fw4ZzjvcjsSW9P8IyAGVh+bIkQQsbCmJsA/W1faPb+IBtWgXQ76j32
	 LAlQLK8wPhkvA==
Date: Thu, 3 Apr 2025 18:09:28 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jason Andryuk <jason.andryuk@amd.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>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    Anthony PERARD <anthony.perard@vates.tech>, 
    Jan Beulich <jbeulich@suse.com>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Subject: Re: [PATCH v3 4/7] xen/arm: dom0less seed xenstore grant table
 entry
In-Reply-To: <20250403214608.152954-5-jason.andryuk@amd.com>
Message-ID: <alpine.DEB.2.22.394.2504031809200.3529306@ubuntu-linux-20-04-desktop>
References: <20250403214608.152954-1-jason.andryuk@amd.com> <20250403214608.152954-5-jason.andryuk@amd.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Thu, 3 Apr 2025, Jason Andryuk wrote:
> xenstored maps other domains' xenstore pages.  Currently this relies on
> init-dom0less or xl to seed the grants from Dom0.  With split
> hardware/control/xenstore domains, this is problematic since we don't
> want the hardware domain to be able to map other domains' resources
> without their permission.  Instead have the hypervisor seed the grant
> table entry for every dom0less domain.  The grant is then accessible as
> normal.
> 
> C xenstored uses grants, so it can map the xenstore pages from a
> non-dom0 xenstore domain.  OCaml xenstored uses foreign mappings, so it
> can only run from a privileged domain (dom0).
> 
> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>

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


> ---
> v3:
> Expand commit message about C vs. OCaml xenstored.
> Remove __init and flags from gnttab_seed_entry()
> Change frame to uint32_t
> ASSERT gfn fits in a uint32_t
> Rebase on mem paging changes
> 
> v2:
> Tweak commit message
> Mark gnttab_seed_entry() __init and put inside CONFIG_DOM0LESS_BOOT
> Add ASSERT(!d->creation_finished) and ASSERT(gt->gt_version == 1);
> const struct domain & struct grant_table
> ---
>  xen/arch/arm/dom0less-build.c |  6 ++++++
>  xen/common/grant_table.c      | 14 ++++++++++++++
>  xen/include/xen/grant_table.h |  7 +++++++
>  3 files changed, 27 insertions(+)
> 
> diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
> index bb8cc3be43..284190d54f 100644
> --- a/xen/arch/arm/dom0less-build.c
> +++ b/xen/arch/arm/dom0less-build.c
> @@ -788,6 +788,12 @@ static void __init initialize_domU_xenstore(void)
>          rc = alloc_xenstore_evtchn(d);
>          if ( rc < 0 )
>              panic("%pd: Failed to allocate xenstore_evtchn\n", d);
> +
> +        if ( gfn != ~0ULL )
> +        {
> +            ASSERT(gfn <= UINT_MAX);
> +            gnttab_seed_entry(d, GNTTAB_RESERVED_XENSTORE, xs_domid, gfn);
> +        }
>      }
>  }
>  
> diff --git a/xen/common/grant_table.c b/xen/common/grant_table.c
> index 6c77867f8c..e75ff98aff 100644
> --- a/xen/common/grant_table.c
> +++ b/xen/common/grant_table.c
> @@ -4346,6 +4346,20 @@ static void gnttab_usage_print(struct domain *rd)
>          printk("no active grant table entries\n");
>  }
>  
> +#ifdef CONFIG_DOM0LESS_BOOT
> +void __init gnttab_seed_entry(const struct domain *d, unsigned int idx,
> +                              domid_t be_domid, uint32_t frame)
> +{
> +    const struct grant_table *gt = d->grant_table;
> +
> +    ASSERT(!d->creation_finished);
> +    ASSERT(gt->gt_version == 1);
> +    shared_entry_v1(gt, idx).flags = GTF_permit_access;
> +    shared_entry_v1(gt, idx).domid = be_domid;
> +    shared_entry_v1(gt, idx).frame = frame;
> +}
> +#endif
> +
>  static void cf_check gnttab_usage_print_all(unsigned char key)
>  {
>      struct domain *d;
> diff --git a/xen/include/xen/grant_table.h b/xen/include/xen/grant_table.h
> index 50edfecfb6..936a52ff10 100644
> --- a/xen/include/xen/grant_table.h
> +++ b/xen/include/xen/grant_table.h
> @@ -45,6 +45,10 @@ void grant_table_destroy(
>      struct domain *d);
>  void grant_table_init_vcpu(struct vcpu *v);
>  
> +/* Seed a gnttab entry for Hyperlaunch/dom0less. */
> +void gnttab_seed_entry(const struct domain *d, unsigned int idx,
> +                       domid_t be_domid, uint32_t frame);
> +
>  /*
>   * Check if domain has active grants and log first 10 of them.
>   */
> @@ -85,6 +89,9 @@ static inline void grant_table_destroy(struct domain *d) {}
>  
>  static inline void grant_table_init_vcpu(struct vcpu *v) {}
>  
> +static inline void gnttab_seed_entry(struct domain *d, int idx,
> +                                     domid_t be_domid, uint32_t frame) {}
> +
>  static inline void grant_table_warn_active_grants(struct domain *d) {}
>  
>  static inline int gnttab_release_mappings(struct domain *d) { return 0; }
> -- 
> 2.49.0
> 


From xen-devel-bounces@lists.xenproject.org Fri Apr 04 01:12:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 04 Apr 2025 01:12:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.937714.1338618 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0Vc9-0001L5-9t; Fri, 04 Apr 2025 01:12:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 937714.1338618; Fri, 04 Apr 2025 01: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 1u0Vc9-0001Ky-66; Fri, 04 Apr 2025 01:12:57 +0000
Received: by outflank-mailman (input) for mailman id 937714;
 Fri, 04 Apr 2025 01:12:55 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=8oGR=WW=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u0Vc7-0001Kc-Ny
 for xen-devel@lists.xenproject.org; Fri, 04 Apr 2025 01:12:55 +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 edac53ff-10f1-11f0-9eaa-5ba50f476ded;
 Fri, 04 Apr 2025 03:12:51 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by nyc.source.kernel.org (Postfix) with ESMTP id B7653A4351E;
 Fri,  4 Apr 2025 01:07:21 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4DFEAC4CEE3;
 Fri,  4 Apr 2025 01:12: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: edac53ff-10f1-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1743729170;
	bh=jwnXwt4wQtNBkUetU0ySAwwrAE6n7F/J5GjR4hoY78o=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=KHzsYAD7Kfnb9CYtrnYOKnt/SDm8m2PXlWb37kX8z5zSDJI1mvHLEmN/gv+edE5+4
	 Pyp2jSE34vgofslmELN01uEnfoT1kWrfWsVmSDeoyAEU7b129pJh/VVVWUv6VbNzMB
	 KPiCeK4Ghe4RkuIkd526Zu7j46IrfKYZ5x52GDj6M/IsqxlNzZReEC4jU8WqmiDxAM
	 i8Ba+WtU/zEe3l3kY1B5qFscLCMgXooXqUbM+SYZZiv4xKkcF+MSUrThPE/o1YTkHC
	 MdfFGsBjUKZuDxyuDo6cFzPwZjX8TnkFYv/w8ahOiC6UN89pRJM0EO4EZIdfNqFvEe
	 mfizUmQYHwPvw==
Date: Thu, 3 Apr 2025 18:12:48 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jason Andryuk <jason.andryuk@amd.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>
Subject: Re: [PATCH v3 6/7] xen/arm: dom0less use has_dtb local variable
In-Reply-To: <20250403214608.152954-7-jason.andryuk@amd.com>
Message-ID: <alpine.DEB.2.22.394.2504031812420.3529306@ubuntu-linux-20-04-desktop>
References: <20250403214608.152954-1-jason.andryuk@amd.com> <20250403214608.152954-7-jason.andryuk@amd.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Thu, 3 Apr 2025, Jason Andryuk wrote:
> Store the result of finding a "multiboot,device-tree" node.  This will
> simplity adding hardware domain checks.
> 
> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>

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

> ---
> v3:
> New
> 
> Could be squashed into the next patch, but this helps make the next one
> cleaner.
> ---
>  xen/arch/arm/dom0less-build.c | 8 +++++---
>  1 file changed, 5 insertions(+), 3 deletions(-)
> 
> diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
> index 284190d54f..a72961dfb4 100644
> --- a/xen/arch/arm/dom0less-build.c
> +++ b/xen/arch/arm/dom0less-build.c
> @@ -1031,6 +1031,7 @@ void __init create_domUs(void)
>              .grant_opts = XEN_DOMCTL_GRANT_version(opt_gnttab_max_version),
>          };
>          unsigned int flags = 0U;
> +        bool has_dtb = false;
>          uint32_t val;
>          int rc;
>  
> @@ -1065,9 +1066,10 @@ void __init create_domUs(void)
>               !strcmp(dom0less_iommu, "enabled") )
>              iommu = true;
>  
> -        if ( iommu_enabled &&
> -             (iommu || dt_find_compatible_node(node, NULL,
> -                                               "multiboot,device-tree")) )
> +        if ( dt_find_compatible_node(node, NULL, "multiboot,device-tree") )
> +            has_dtb = true;
> +
> +        if ( iommu_enabled && (iommu || has_dtb) )
>              d_cfg.flags |= XEN_DOMCTL_CDF_iommu;
>  
>          if ( !dt_property_read_u32(node, "nr_spis", &d_cfg.arch.nr_spis) )
> -- 
> 2.49.0
> 


From xen-devel-bounces@lists.xenproject.org Fri Apr 04 01:15:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 04 Apr 2025 01:15:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.937725.1338629 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0VeW-0001tr-MQ; Fri, 04 Apr 2025 01:15:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 937725.1338629; Fri, 04 Apr 2025 01: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 1u0VeW-0001tk-Hk; Fri, 04 Apr 2025 01:15:24 +0000
Received: by outflank-mailman (input) for mailman id 937725;
 Fri, 04 Apr 2025 01:15:22 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=8oGR=WW=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u0VeU-0001te-Pw
 for xen-devel@lists.xenproject.org; Fri, 04 Apr 2025 01:15:22 +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 47567873-10f2-11f0-9eaa-5ba50f476ded;
 Fri, 04 Apr 2025 03:15:21 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by nyc.source.kernel.org (Postfix) with ESMTP id 46233A46B00;
 Fri,  4 Apr 2025 01:09:52 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 39FB9C4CEE3;
 Fri,  4 Apr 2025 01:15: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: 47567873-10f2-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1743729320;
	bh=FbBa4aH3GdEj0Z9j43PW5UAv5HSqCDZ39OYJX5bd9co=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=inzbANL0MFG6zeL8roIMzitIEXCBIpfNgcxnIVZxKz9sX1F4PNL8T/ETq7PA7kcZR
	 7yqk3OnU/WtWgNcTQR7qj8lczYTgmVnQQzA56f6qsdeaQS77GNwu+w5f3/N+PccTao
	 J7ge6f+HQthPCuDdmAFSEX3hfz+r3gLubCrg2TeWZcZ22CMYLboucyErU0jNZKjK4p
	 2aMjKHLARbpVaMt/sev6zmSs4Y3d5H8hPKKSu4XDWRhKGauV3rvtEb0h5m+XhjVoH2
	 yC5si7NauWvp0fY9Joc02/SD9pGFxYJNJw/t6Qg1RYkyetx3jDlaqTyA9/Fm+KpCqZ
	 2g8/n2Su+BNEg==
Date: Thu, 3 Apr 2025 18:15:18 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jason Andryuk <jason.andryuk@amd.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>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    Anthony PERARD <anthony.perard@vates.tech>, 
    Jan Beulich <jbeulich@suse.com>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Subject: Re: [PATCH v3 7/7] xen/arm: Add capabilities to dom0less
In-Reply-To: <20250403214608.152954-8-jason.andryuk@amd.com>
Message-ID: <alpine.DEB.2.22.394.2504031815100.3529306@ubuntu-linux-20-04-desktop>
References: <20250403214608.152954-1-jason.andryuk@amd.com> <20250403214608.152954-8-jason.andryuk@amd.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Thu, 3 Apr 2025, Jason Andryuk wrote:
> Add a capabilities property to dom0less to allow building a
> disaggregated system.  Only a single hardware domain and single xenstore
> domain can be specified.  Multiple control domains are possible.
> 
> Introduce bootfdt.h to contain these constants.
> 
> When using the hardware or xenstore capabilities, adjust the grant and
> event channel limits similar to dom0.
> 
> For a hardware domain, disallow specifying "vpl011", "nr_spis",
> "multiboot,device-tree" and "passthrough" nodes.  Also, require an IOMMU
> when not direct-mapped,
> 
> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>

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



From xen-devel-bounces@lists.xenproject.org Fri Apr 04 01:23:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 04 Apr 2025 01:23:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.937738.1338639 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0Vm1-0005AZ-Cu; Fri, 04 Apr 2025 01:23:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 937738.1338639; Fri, 04 Apr 2025 01: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 1u0Vm1-0005AS-8O; Fri, 04 Apr 2025 01:23:09 +0000
Received: by outflank-mailman (input) for mailman id 937738;
 Fri, 04 Apr 2025 01:23:07 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=8oGR=WW=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u0Vlz-0005AM-NE
 for xen-devel@lists.xenproject.org; Fri, 04 Apr 2025 01:23: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 58c903a1-10f3-11f0-9ffb-bf95429c2676;
 Fri, 04 Apr 2025 03:23:00 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by nyc.source.kernel.org (Postfix) with ESMTP id B955EA46AB0;
 Fri,  4 Apr 2025 01:17:30 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id AA467C4CEE3;
 Fri,  4 Apr 2025 01:22: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: 58c903a1-10f3-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1743729779;
	bh=IYeIRCjN8ZjnQ+Gdx6fT4/vM2ILYoUAr+TTz97347uU=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=twto0d/CrnVAO/pFj2I2ZrHoZMBzWNEhXnVVmUH9j5aDf+lUMjaOGTt1fctvlDNuq
	 +APFhotr+w57+b6Z2MOnXxLV92/gtb5VlOjYGz9BkcVM/DgWf//b9FrwYCzxNXFAgL
	 idTKyI67F1zMjDikeD/ns/0KXY/Pwv0o7WYato+YiVQ877p2dHKd91zD8le9EV6M+f
	 Qnj9aZnMGpBrGeaR46WnZXNiNcESP4NgHu815ospG+UeHUnHQKRTc8OpFbkjKWz+Tn
	 XbQ/HK5CIXbs9qDnh0NFNYVoqh46KbDlxVIjNsUzEYaYxzgs5pvoarOdLcZTqsZCiF
	 abKxrfTyXeRQw==
Date: Thu, 3 Apr 2025 18:22:57 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jason Andryuk <jason.andryuk@amd.com>
cc: xen-devel@lists.xenproject.org, Anthony PERARD <anthony.perard@vates.tech>
Subject: Re: [PATCH v3 5/7] tools/init-dom0less: Only seed legacy xenstore
 grants
In-Reply-To: <20250403214608.152954-6-jason.andryuk@amd.com>
Message-ID: <alpine.DEB.2.22.394.2504031811190.3529306@ubuntu-linux-20-04-desktop>
References: <20250403214608.152954-1-jason.andryuk@amd.com> <20250403214608.152954-6-jason.andryuk@amd.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Thu, 3 Apr 2025, Jason Andryuk wrote:
> The hardware domain is unable to seed a control domain, but we want the
> control domain to use xenstore.  Rely on the hypervisor to seed dom0less
> grant table entries for Xenstore, so this seeding is unnecessary.
> 
> However, that only works for the new xenstore late init.  The legacy
> protocol which uses init-dom0less to populate the page still needs to
> seed the grant.
> 
> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>

I was thinking whether it is an issue that we change behavior of
init-dom0less for the new protocol. I convinced myself it is not an
issue because init-dom0less is supposed to be a matched set with the Xen
hypervisor version. I also thought whether we could check if the call to
xc_dom_gnttab_seed is needed and only do it if it is, so that
init-dom0less.c could be less depedent on the specific Xen behavior.

Overall I thought it is not worth it, so:

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

> ---
>  tools/helpers/init-dom0less.c | 10 +++++-----
>  1 file changed, 5 insertions(+), 5 deletions(-)
> 
> diff --git a/tools/helpers/init-dom0less.c b/tools/helpers/init-dom0less.c
> index 17579fe2e8..91edf17b6c 100644
> --- a/tools/helpers/init-dom0less.c
> +++ b/tools/helpers/init-dom0less.c
> @@ -286,12 +286,12 @@ static int init_domain(struct xs_handle *xsh,
>                  xenstore_pfn);
>          if (rc < 0)
>              return rc;
> -    }
>  
> -    rc = xc_dom_gnttab_seed(xch, info->domid, true,
> -                            (xen_pfn_t)-1, xenstore_pfn, 0, 0);
> -    if (rc)
> -        err(1, "xc_dom_gnttab_seed");
> +        rc = xc_dom_gnttab_seed(xch, info->domid, true,
> +                                (xen_pfn_t)-1, xenstore_pfn, 0, 0);
> +        if (rc)
> +               err(1, "xc_dom_gnttab_seed");
> +    }
>  
>      libxl_uuid_generate(&uuid);
>      xc_domain_sethandle(xch, info->domid, libxl_uuid_bytearray(&uuid));
> -- 
> 2.49.0
> 
> 


From xen-devel-bounces@lists.xenproject.org Fri Apr 04 06:57:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 04 Apr 2025 06:57:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.937759.1338648 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0az5-000060-OF; Fri, 04 Apr 2025 06:56:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 937759.1338648; Fri, 04 Apr 2025 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 1u0az5-00005p-Ik; Fri, 04 Apr 2025 06:56:59 +0000
Received: by outflank-mailman (input) for mailman id 937759;
 Fri, 04 Apr 2025 06: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=56zs=WW=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u0az3-00005h-Nt
 for xen-devel@lists.xenproject.org; Fri, 04 Apr 2025 06:56:57 +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 fb818744-1121-11f0-9ffb-bf95429c2676;
 Fri, 04 Apr 2025 08:56:50 +0200 (CEST)
Received: by mail-wr1-x436.google.com with SMTP id
 ffacd0b85a97d-39c2688619bso1076777f8f.1
 for <xen-devel@lists.xenproject.org>; Thu, 03 Apr 2025 23:56:50 -0700 (PDT)
Received: from [10.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-39c30096889sm3543417f8f.2.2025.04.03.23.56.48
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 03 Apr 2025 23:56:49 -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: fb818744-1121-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743749809; x=1744354609; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=inRTDlAfEnNSsn2Uh92EmrLSbLyMJS4B3173BF1PyVU=;
        b=Dpq8LdY+dy5nw+noc/GdziyQim1oGAnE4pCYzdpDOdnpthLL9u9BvHpyKaD49G7vv0
         16W2fOk68C0Bk0sbbHp7sIQyjyLKXqGcgf7br2SRAfnTrE3yJbZmfUwYW0hxXSPBELiF
         zG8EXSkyKCyMawNJeflN7MDlh1WaxF9WIav7mz4krzZV1+9ZMFQOLD63/rZJO0uO3gER
         eeQTCfAQ0T8Yc8OdFBytuTVMyEwTBjfdYcK7dBe9hXnWb9+aoRJWWZQ1mLxLAjQ5vXmi
         qK7upR8CPK2Pti8JFZGDl3PhUrZDp4o40vAFY30gHs01qklq5szEBgZaQk5+wLcst02T
         UTlg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743749809; x=1744354609;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=inRTDlAfEnNSsn2Uh92EmrLSbLyMJS4B3173BF1PyVU=;
        b=FL5/651E8a4rSUTflBZJsLkaV8MNvLtYbDtrxvuljb05T6DIM79ojRDze+sATGgzfD
         i7GI26Tfq1hzcvL12fAU7ci9mt0fFqooA8VdRPIH6pqxk28/jMPmpmbd0Xvcvqz2ltgt
         IKjCKO50AhXy50L6TZOed+HaDVgS+TTL4mvCBSFdpJ9UubjjMpDy3E7g8GbR3QUB95p5
         6jT11OgTZrvUGCFTFCwPSy087Q7ac6UgIFi3BZR5acZwvvSmlwuVLba9g0hOH0Rlk/mn
         Qp7NkrdsUDjTn0RHE/m6dI+o+zsTbcUDnDVPSnOWmziem+KSfhzUYg8mABzi/jwI2bg8
         l/7A==
X-Forwarded-Encrypted: i=1; AJvYcCUkxudk0mmUHn6ZbrVU3d6eDIhK/F2cdAzebJLFwMF/odsOQHEizufa8oDhtY2ru4TxGVou43HIgl4=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxi1XXmNRer68+z5tu97sHGgQXNGdblycOl2XU08NCq4aYKEUW3
	7TO54Mk04qiw8SaHjTL/I1TZ9hcspCMmluyhfe6swNqFEKrijrb8YJD7V/DhEg==
X-Gm-Gg: ASbGnctixk1lV7Qeg8QhBZO9Bgx/jDFHRFJ+FJ/8gMAe+pILOoSqHfWjeBkIFUJ2Dpy
	zRvuYXs1T3inXwZES4UPcUn9hY+xOR9uCbHKP1AzwksZzbVyJ9ljgnTwwYank/CS7JsHFi6I/kh
	lVn3QQFJkcpx5CPa/y6mguDa6RAICU1y3h0R7RxIICedDfGjEKtU/UeFXCOkew2D35PN1PiARlL
	oCMMJb5PdBn3EEJNf7lkgAx8tjIT505qEunBFp0usv73euxPo99ErDvruCrUQZ+Kq6yzrQ17eOF
	/nmVjpLXPtikQ+sSZtACb3JSZXflvwHGWBMtxJGipBntmK23KMDNNts3rDLUBlacydpoYeNcdGy
	Gw9IkPkuIbDCVFn7RDR5gS1BizZMtyg==
X-Google-Smtp-Source: AGHT+IGfd2bddJWT6El4nkMTdgAZnOUI4etdYkao2ODX6xTA2G1QKUFLWrOzk3HaH5SggFjYMTWP6w==
X-Received: by 2002:a5d:5c84:0:b0:391:2eb9:bdc5 with SMTP id ffacd0b85a97d-39cb35be53emr1441653f8f.23.1743749809445;
        Thu, 03 Apr 2025 23:56:49 -0700 (PDT)
Message-ID: <3c2127ec-63fb-457b-8229-fc8a2b9fbf00@suse.com>
Date: Fri, 4 Apr 2025 08:56:47 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1] xen/riscv: Increase XEN_VIRT_SIZE
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <e5fa4219ccf43125e2489cc8c49b4404e6ed22ce.1743434164.git.oleksii.kurochko@gmail.com>
 <54ebdcb7-071f-411f-803a-930dc330a497@suse.com>
 <32264ccb-e566-41e0-973f-5bc7d874f970@gmail.com>
 <9d7e1553-3af8-4fc3-a400-8714d9b68411@suse.com>
 <30d8e316-aff5-498a-b2bd-448e0b2518ae@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: <30d8e316-aff5-498a-b2bd-448e0b2518ae@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 03.04.2025 18:20, Oleksii Kurochko wrote:
> 
> On 4/1/25 6:04 PM, Jan Beulich wrote:
>> On 01.04.2025 17:58, Oleksii Kurochko wrote:
>>> On 3/31/25 6:14 PM, Jan Beulich wrote:
>>>> On 31.03.2025 17:20, Oleksii Kurochko wrote:
>>>>> +        _AC(XEN_VIRT_START, UL) >> vpn1_shift;
>>>>> +    const unsigned long xen_virt_end_vpn =
>>>>> +        xen_virt_starn_vpn + ((XEN_VIRT_SIZE >> vpn1_shift) - 1);
>>>>> +
>>>>>        if ((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)) ==
>>>>> -           (_AC(XEN_VIRT_START, UL) >> (PAGETABLE_ORDER + PAGE_SHIFT)));
>>>>> +    BUILD_BUG_ON(XEN_VIRT_SIZE != MB(8));
>>>> Is it necessary to be != ? Won't > suffice?
>>> It could be just > MB(2). Or perphaps >=.
>>> = would make the build fail, wouldn't it?
> 
> I just realized that BUILD_BUG_ON() condition is compared to zero so actually everything what
> will make the condition true will cause a build fail as inside it used !(condition).

???

> So it seems like we have to check for XEN_VIRT_SIZE != MB(16) and change each time when XEN_VIRT_SIZE
> is increased.

I don't think so, but I need to first understand the point you make above.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Apr 04 07:11:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 04 Apr 2025 07:11:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.937771.1338658 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0bDP-0005Ks-Rs; Fri, 04 Apr 2025 07:11:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 937771.1338658; Fri, 04 Apr 2025 07:11: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 1u0bDP-0005Kl-O9; Fri, 04 Apr 2025 07:11:47 +0000
Received: by outflank-mailman (input) for mailman id 937771;
 Fri, 04 Apr 2025 07:11: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=56zs=WW=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u0bDO-0005Kf-IV
 for xen-devel@lists.xenproject.org; Fri, 04 Apr 2025 07:11:46 +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 1088a8af-1124-11f0-9ffb-bf95429c2676;
 Fri, 04 Apr 2025 09:11:44 +0200 (CEST)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-43cfecdd8b2so13085985e9.2
 for <xen-devel@lists.xenproject.org>; Fri, 04 Apr 2025 00:11:44 -0700 (PDT)
Received: from [10.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-43ec16a3aefsm41348975e9.21.2025.04.04.00.11.43
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 04 Apr 2025 00:11:43 -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: 1088a8af-1124-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743750704; x=1744355504; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=gKfb0YXiZ+F4WZnW8J7fJxrVl657tqA94N9IAZy6bRg=;
        b=b1YsGs57bfnNvvxi11hsQ9kyPU7sf/8BkWZxZq5f3ub/yBOQM6q0SoQYOWeyMjxNmD
         lfZsD4yXNQEpG7qZgae+sBMu4dNJ3kcvASEf+V56zjH6iixZzaG1mPZBLZBaRzEDxxx+
         IKRaUY4cLcl7na3Ng27Fj75XvUuWJnYCNJq4taBpcDXFfUUpa8g3W/tUJHDDJN+DLJsM
         wMD8vjIwNnw+o1mZuxvMtdV8duZU+TbwMMSuInAcRNKmArmAZtuwTMWO0NdksH5uzj7F
         DAX6s06v9rquUy5vnWP8DxsdKeRNdh+MRnxyA2RLdfrHITbO81hIUrOSTZjZS2t474Hj
         F27Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743750704; x=1744355504;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=gKfb0YXiZ+F4WZnW8J7fJxrVl657tqA94N9IAZy6bRg=;
        b=QpTtENEPOkhLTNj5WIzqq3Dmhw5sZAN1zxMaE/gUEQ/QGdLEcCh3Z7PFyLygifVlkE
         iZzSw3W3ZWqLpkhX0t7yjdMLv+Kp7nQRZc4rcPsERZ1MHeanreINO33W/eTOig4nmkqM
         QYxtnwkRD45ZLZA2RPxqqdfD8V8lZwKbGXYC0GAo+CzJxRWMuNTgHYd+f6krKtE7926n
         JrMZOS+X1hCWUvXjJ/XAIpNpB3ZyDhLK0I8SCyaoJ98HpxxAxRdfXCO7J4yE+eBwsIFv
         m6UBAb+SATtcq8JqQh9a9V5asIh3IXl/44WboW4JW1CSvKz1sBadQT3IoW07htduO1oW
         HwIw==
X-Forwarded-Encrypted: i=1; AJvYcCVQnQks+STj/6R0xYTXfuLbXVp9QsexTe1aGEJiDH1bT3YWS+Do3CoJrvYOw2RxtE2G7fLGt6isNkg=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw15WOOuwEptub9ogzR51N1Qy7+xI/Zd4SrebQTW3W3Hqs34mTe
	bXzPtjLdWCdfpUM3J0/rn6NOTh66JGnjwmypY0FbEcwbkvscO5DE5ydsv9xoIw==
X-Gm-Gg: ASbGncvmuDul7S34/8As68iaq8PWv6Vot+6sw+kI/vjvbB/hMwIhDgvFdxp5Or9TexH
	kQJfGv97EbyZXZPJ7cPU2PTfRrk3EJrqbJZcLN0Vq8PXrjWf+2YlDroQ2mhx0D7UqRQYFmDFDHq
	z/ie+hQ49NITAUUGS8mPZkpz6Ezx624cpwtXMruXBf7fW5IQlR8eFarwhzTaXspYRg8esa9MRDi
	DsMOkCchwmN6JdrK1b3/ASUysu0QUj+yaPu23Qmr/c/FFsaK7XSRLpJE0I/Fbi2UN9bIV/GTxd+
	s/HrByHFKnnL3DNbJ0B/rnrAwNjNxKRGQrkAZDzlPReYTfqFRfr3J1SfO3oY1AjJ7Dzdkwv8Bgk
	DFkj5icezXJZcDH7VVURFdJJX51h9gQ==
X-Google-Smtp-Source: AGHT+IHlo8OKIE92JKyXXJp0cSRoM0TBs5BNF0W+RWg0HBtg4tCj28v2WUZkQkuGqJ4sfD7LNZ3j7g==
X-Received: by 2002:a05:600c:1e13:b0:43c:fbbf:7bf1 with SMTP id 5b1f17b1804b1-43ed0da49e6mr18224555e9.30.1743750703788;
        Fri, 04 Apr 2025 00:11:43 -0700 (PDT)
Message-ID: <733e19a7-189c-4f98-af1d-e2f880d999be@suse.com>
Date: Fri, 4 Apr 2025 09:11:40 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 5/6] x86/emulate: remove HAVE_AS_RDRAND and
 HAVE_AS_RDSEED
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: anthony.perard@vates.tech, julien@xen.org, michal.orzel@amd.com,
 roger.pau@citrix.com, sstabellini@kernel.org, dmukhin@ford.com,
 dmkhn@proton.me, xen-devel@lists.xenproject.org
References: <20250403182250.3329498-1-dmukhin@ford.com>
 <20250403182250.3329498-6-dmukhin@ford.com>
 <de2ef26a-f999-4962-abbc-3ffcc684e7f7@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: <de2ef26a-f999-4962-abbc-3ffcc684e7f7@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 03.04.2025 21:21, Andrew Cooper wrote:
> On 03/04/2025 7:23 pm, dmkhn@proton.me wrote:
>> From: Denis Mukhin <dmukhin@ford.com>
>>
>> The new toolchain baseline knows the rdrand/rdseed instructions,
>> no need to carry the workaround in the code.
>>
>> Resolves: https://gitlab.com/xen-project/xen/-/work_items/208
>> Signed-off-by: Denis Mukhin <dmukhin@ford.com>
>> ---
>>  xen/arch/x86/arch.mk            |  2 --
>>  xen/arch/x86/x86_emulate/0fc7.c | 15 +++++----------
> 
> Huh...
> 
> I was expecting a hunk in xen/arch/x86/include/asm/random.h but lookin
> at it, I see that didn't even get the HAVE_AS_RDRAND treatment in the
> first place.  Also, the + constraint, rather than =, looks suspicious.

Might that have been for a similar reason as the one you recently added
a XOR ahead of POPCNT for? IOW us wanting the clearing of the output to
happen irrespective of whether the if() condition is true?

Jan


From xen-devel-bounces@lists.xenproject.org Fri Apr 04 07:15:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 04 Apr 2025 07:15:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.937783.1338669 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0bGZ-0005vG-9U; Fri, 04 Apr 2025 07:15:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 937783.1338669; Fri, 04 Apr 2025 07:15:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0bGZ-0005v9-4t; Fri, 04 Apr 2025 07:15:03 +0000
Received: by outflank-mailman (input) for mailman id 937783;
 Fri, 04 Apr 2025 07:15: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=56zs=WW=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u0bGY-0005v3-Hk
 for xen-devel@lists.xenproject.org; Fri, 04 Apr 2025 07:15:02 +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 854cb93f-1124-11f0-9ffb-bf95429c2676;
 Fri, 04 Apr 2025 09:15:00 +0200 (CEST)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-4394036c0efso11772905e9.2
 for <xen-devel@lists.xenproject.org>; Fri, 04 Apr 2025 00:15:00 -0700 (PDT)
Received: from [10.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-43ec3174cf0sm39619435e9.0.2025.04.04.00.14.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 04 Apr 2025 00:14: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: 854cb93f-1124-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743750900; x=1744355700; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=TsSqE5qEVthIS9WBDBAL9NQk8rriV1c+RZxCh5djVj8=;
        b=WoHvDqFAikHFRTRJGQ5xyg8xBnJ3LjlFss5RCJ9RDAKoeKq15+MmZLygt6dnbUEq0c
         ZIEQqsQC6BFmjGGGrNqFfQBz86maPmO5/WpunaUrcFH+/mw4Q/NRxQqzph8RPu7N4hbU
         yH6yqPUhTietndrklWx71xH6R7cDy7iKo3QJ4jENu3E7mo+5TCoGugloLJZx9YzJzrxM
         LTDHEOk7/XTbdl5Tx114NmbQ1ZHpZGS7h7GQFHRKDj8rnB6yVSrfh1zZ7tT8AqQwhnuM
         6uvh3PcadDVP5RfvWiDmmrJBZdDqOfyho9KxeiXpP9XeuEg68RQzEUlLdxVsP62QQ0KZ
         qujA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743750900; x=1744355700;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=TsSqE5qEVthIS9WBDBAL9NQk8rriV1c+RZxCh5djVj8=;
        b=Ko4oz+enO10mNsT3QWTvw3XrBs8vSEyN3Qy/oFtlPscCW4pGQLSNMcOkCaZxvUAd+P
         zqZlN4zUtLZveZh+ARDThTRVtat4AI55cvcDXrQrJZwP4solIpF/lleA+9OhtU5EzF95
         JxbFd3bSFjfMSWq+42PcZcOtOi96YNmXoAng+Y75xXGy5gocfOyv6Bvq0G7Q4NLXdwHi
         vWr6WwJZm3GffAaxfl2mCWpTHxsVeCc4PpvoVYPJ7rOfMqXAHJ91/Lvy1033ntsVq+Od
         EeZNec/czNe30ah9iLiSBcZpYN4pUANcHaNtIYDNklfGT7reBAwEOIA/nT9bYy53efq0
         aVZQ==
X-Forwarded-Encrypted: i=1; AJvYcCWr+QvzO3XkvbGqLH2qo9PL8uM0Vl+s4fBCCP52BHuuUVh51bp1hPuJdVIly8ZO9KTMg9URP8uFz54=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxqA9NUNHNOLFCkdlfK3hDcdbVOt5XfGze/elxRwunTB8gH6CZy
	CCfzbkUr8Pe/QaCbPpMQ50gcQMIau7B1XGFpK4cNAs8E7kVekZ9KfWJKJfHRdA==
X-Gm-Gg: ASbGncv+Gy/+jMPih8YymbAt8KUDQ9fY0G5o6mjxfnkz4jntVgLfiqpJjmdANaWClcn
	pJwQxqnKsdvYJD+n9g+uJWsBYTfBz0ZYARNH81bXurjXWwL0dSQs5X0/N+3XO+h5MpAo0RUVu42
	jcDjmbHLO1VtDxVqO9eKY6TFYioltzB4NBANhAZIBU0GIpM+22ATdWv2igJgU2viXk2a9r/a+D6
	sx0FOU1zcsVecwrvN213812k6vRz5yJwBr4drZq2hC5KV5VM+54LjukuidJ929wNN5T9cWFeJvE
	rghZgux5CS6GYcQnFrw0jBXaXDDXELv3/7z53QAkReMZZqFr1NySfa8ekM7shYE5kiEhsNMSo2A
	CFU7pFGwXfPx9RW5QpDZdUhhN/wGMew==
X-Google-Smtp-Source: AGHT+IFD8tDWCbnnTCZNkOjcxWMDiNdE3fzZqDHQkr39NzAOb2Gz8SlC6SGz8bD7VFxHDI0dFXtW+Q==
X-Received: by 2002:a05:600c:c07:b0:439:86fb:7340 with SMTP id 5b1f17b1804b1-43ed0db3c4bmr17435485e9.30.1743750899714;
        Fri, 04 Apr 2025 00:14:59 -0700 (PDT)
Message-ID: <05063353-93c6-4ca6-8155-bf42bd23bacd@suse.com>
Date: Fri, 4 Apr 2025 09:14:58 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 6/6] x86/vmx: rework VMX wrappers to use `asm goto()`
To: dmkhn@proton.me
Cc: anthony.perard@vates.tech, julien@xen.org, michal.orzel@amd.com,
 roger.pau@citrix.com, sstabellini@kernel.org, dmukhin@ford.com,
 Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20250403182250.3329498-1-dmukhin@ford.com>
 <20250403182250.3329498-7-dmukhin@ford.com>
 <c452a1d7-4a57-4c5f-8a83-36a74ff228ec@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: <c452a1d7-4a57-4c5f-8a83-36a74ff228ec@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 03.04.2025 22:10, Andrew Cooper wrote:
> On 03/04/2025 7:23 pm, dmkhn@proton.me wrote:
>> --- a/xen/arch/x86/include/asm/hvm/vmx/vmx.h
>> +++ b/xen/arch/x86/include/asm/hvm/vmx/vmx.h
>> @@ -294,54 +294,57 @@ extern uint8_t posted_intr_vector;
>>  
>>  static always_inline void __vmptrld(u64 addr)
>>  {
>> -    asm volatile ( "vmptrld %0\n"
>> -                   /* CF==1 or ZF==1 --> BUG() */
>> -                   UNLIKELY_START(be, vmptrld)
>> -                   _ASM_BUGFRAME_TEXT(0)
>> -                   UNLIKELY_END_SECTION
>> -                   :
>> -                   : "m" (addr),
>> -                     _ASM_BUGFRAME_INFO(BUGFRAME_bug, __LINE__, __FILE__, 0)
>> -                   : "memory" );
>> +    asm goto ( "vmptrld %[addr]\n"
>> +               "jbe %l[vmfail]\n\t"
> 
> Also cosmetic, but the very final line in the asm block ideally doesn't
> want the \n\t.

And to clarify (Andrew gave a similar comment elsewhere) the \t instead
wants to appear on the first of these two lines.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Apr 04 07:21:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 04 Apr 2025 07:21:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.937796.1338678 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0bMt-0000R3-S5; Fri, 04 Apr 2025 07:21:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 937796.1338678; Fri, 04 Apr 2025 07:21: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 1u0bMt-0000Qw-PS; Fri, 04 Apr 2025 07:21:35 +0000
Received: by outflank-mailman (input) for mailman id 937796;
 Fri, 04 Apr 2025 07:21:34 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=56zs=WW=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u0bMs-0000Qq-7L
 for xen-devel@lists.xenproject.org; Fri, 04 Apr 2025 07:21:34 +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 6e93c556-1125-11f0-9eaa-5ba50f476ded;
 Fri, 04 Apr 2025 09:21:33 +0200 (CEST)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-391342fc1f6so1441971f8f.1
 for <xen-devel@lists.xenproject.org>; Fri, 04 Apr 2025 00:21:31 -0700 (PDT)
Received: from [10.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-39c301b69a8sm3609287f8f.49.2025.04.04.00.21.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 04 Apr 2025 00:21: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: 6e93c556-1125-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743751291; x=1744356091; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=LMnymf/VfBwR0jIoVq/ftYd/r6MZUFff08R2K/rxggc=;
        b=IDlL+XC0lwycS4DOCatUX2xzv2lsFsI5Rw1xLfMXsaMP0/U1wUxXzW+7oE6LeZEdp5
         7QMRakPx8WuuxTNWTGGhs58lcBrALZEDikfD3uUMiWDywTPaJUWbRV4QZ113UdAEpptg
         VcluCz36djNkY2f7mnKCwSjjvfzYO7jdWD97uO6vETgXLyPZQrOibXopj4GpG0TJbR0C
         J9qMj0Wm0B1ONv5utCbuFHpKzrSiIccEQfao7CJQoMMVGCT0fHu1j0qYVngCukDf6zjE
         qEHKrQEep54/Dc7racD0oT8ML7z1IcnQz14R89Cu2kheNj8u4vK81IELit4bnHUnlVJS
         AhNw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743751291; x=1744356091;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=LMnymf/VfBwR0jIoVq/ftYd/r6MZUFff08R2K/rxggc=;
        b=vmZtDlWB06CHEHX6GmqhCjSzNiJzeq0kVFIMKbYR9Vj7BN6Y8Z+rGCF7WKCE7ULIIn
         0pcfp89l4IVDBIYBxqg87O4c4KTZP5izEybWrfeEONh7U/kRZdXjINqrMO2qoJm7xHDH
         QNdzR9e4Xh8hEHFViBiruIPCrwLB9+Bwz4926PC8D/D/5QrJi6xW4e64TqP+Zp8lcIYh
         RioGO8x/GIT9koz4s4bcJqx85Yn67/KenroPAibP6xl41kaw0rWpFFv15Zm6cJBX02XH
         xsP9Raki4MXdwpMc2AxmMs2d+8rytW2pJT+wZmlZFZDUnO6K58U3G8J9xbEqlngbz9/1
         j97A==
X-Forwarded-Encrypted: i=1; AJvYcCU7ve6rjQxADSTNw3sjQQgmy74vm2I9uC9NgcOBG0YqoY5KQRTBnWznVPq8k2iRsG37JelytxpU3zM=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxj2HVa4YovO1B0Z9pwWUleSLoTPtEhekf5XsQRWuQCQsR+7JMy
	BCX5KpxvaB7LYvXCEaSY1EUXR7BrEUo4p4Ml4RnfV4wZau+m3sosBS0+GsHp2Q==
X-Gm-Gg: ASbGncsJVYvEGXbg1hmhkq1WO39/5IlnxSbQW7NlCTFa2VdhH8c4GHgtrer8BRkRLjZ
	7zzte4rAsc7xMOTuZwTKk4gY8FX9rX+pwKZydDHB/gQXFpx0XsNms+Kez5gxCBIXe3Q3uZnROvH
	lwzgO0jRs4gVxuyr5PPs/1lnBhMHBZ9oqkDtf6MejoH4EkxPH5kzTUthCyGOpMldmxHN9YONH5j
	4jIk8Gmmjzn/AJwyy1W3GsDddJfZ88nZGw9ztgjPF5v/2vTt79kVBGEEE6C9bmi22RvruAC+iDd
	fw8+D3ixJpqRNygCIaYxtTTykEsvKA7CbvUeiFYc+HjGS9nJ8wAXcc+Y+EX3DQeD9AYQNIGfder
	rcO7hZXNjI2lcAgVwY5E9F7772PA0Jg==
X-Google-Smtp-Source: AGHT+IGzprJQUAUbYFvLAn+CAXMfk0V0XcJhdi3H1UJJxCaX2LLBFEEcTxtcj4OEjLAQoU93XJ0UYg==
X-Received: by 2002:a5d:64ce:0:b0:39c:cd5:4bc0 with SMTP id ffacd0b85a97d-39d1475e1acmr1231574f8f.52.1743751291049;
        Fri, 04 Apr 2025 00:21:31 -0700 (PDT)
Message-ID: <046801a7-1990-4629-a8ec-395c7fb233af@suse.com>
Date: Fri, 4 Apr 2025 09:21:29 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86: drop XSAVEOPT and CLWB build flags
To: "Alexander M. Merritt" <alexander@edera.dev>
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: <3de09e4e2a3320e0f314803e349fbe6520d04b12.1743719892.git.alexander@edera.dev>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <3de09e4e2a3320e0f314803e349fbe6520d04b12.1743719892.git.alexander@edera.dev>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 04.04.2025 01:22, Alexander M. Merritt wrote:
> The new toolchain baseline knows both the XSAVEOPT and CLWB instructions.
> 
> Resolves: https://gitlab.com/xen-project/xen/-/work_items/205
> Signed-off-by: Alexander M. Merritt <alexander@edera.dev>
> ---
>  xen/arch/x86/arch.mk              |  2 --
>  xen/arch/x86/flushtlb.c           | 28 +---------------------------
>  xen/arch/x86/include/asm/system.h |  7 -------
>  3 files changed, 1 insertion(+), 36 deletions(-)

For XSAVEOPT there's more work to do, even if not connected via HAVE_AS_XSAVEOPT.
Look for "xsaveopt" (case-insensitively) in xstate.c. Imo (just like was asked
for for the RDRAND counterpart patch) this wants doing all in one go.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Apr 04 07:24:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 04 Apr 2025 07:24:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.937810.1338688 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0bPo-00014T-Cd; Fri, 04 Apr 2025 07:24:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 937810.1338688; Fri, 04 Apr 2025 07:24: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 1u0bPo-00014M-9h; Fri, 04 Apr 2025 07:24:36 +0000
Received: by outflank-mailman (input) for mailman id 937810;
 Fri, 04 Apr 2025 07:24: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=56zs=WW=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u0bPm-00014G-N6
 for xen-devel@lists.xenproject.org; Fri, 04 Apr 2025 07:24:34 +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 db14ce15-1125-11f0-9eaa-5ba50f476ded;
 Fri, 04 Apr 2025 09:24:33 +0200 (CEST)
Received: by mail-wr1-x433.google.com with SMTP id
 ffacd0b85a97d-39149bccb69so1512108f8f.2
 for <xen-devel@lists.xenproject.org>; Fri, 04 Apr 2025 00:24:33 -0700 (PDT)
Received: from [10.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-43ec342827fsm38816255e9.6.2025.04.04.00.24.32
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 04 Apr 2025 00:24:32 -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: db14ce15-1125-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743751473; x=1744356273; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=auaLW4yTsvLHaj2Z9Q+BT39O3gn1EqNmt23dPTPni8I=;
        b=aXK6mYaAXrO3BfPfjIAo5pS0Ey/UK8z12x3/06Kad+SCzHGIhIXPiaNaQy3kggouR/
         86QHnAiA7y/O0kgKEZTJk0omxsHtD0oICKPk7DQuwt4HO6YW9ynfrv7HaPjlQ+YXxkGh
         Of3YZaxkuhwMvl728whO4NJsK7F2DFcXTgj4o4/M7vBq0KKKsVTc5Z06Z+qlPR9kYvXh
         YWhuOfkmNT0bpdPxlPwVVA32ilWu+ZQffwEksVUQYDfZTdEuspfWSPvHa/bYGmxtAiNT
         a7XG3YYF8oPk9GHBuqvhfmR8c71BTu80rvU6ycKmki66El0mg0DZuPultCpZWuwF1y/9
         i+Eg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743751473; x=1744356273;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=auaLW4yTsvLHaj2Z9Q+BT39O3gn1EqNmt23dPTPni8I=;
        b=eX8Pp8Q4awwfLuRNBq3eru0re5tYLtHdcPkKgJF+PRn+5W4Owy+6j+yfp3p7GRASU/
         Qc97lV/HJ1Ct7cL1T6e8DcmKe3bZt6mHrfWyeSt7YjzBBwSgAsThmHOG8nOTzSyzP6Ni
         toteu+rfP3mlP3KHc9iBN3p/lcv8JN8KZZ0RSnsOymcGCRjM0nYU7H1zXSyW84AjVCNf
         rZVv7o6zowMBP2t7Xd2BRczaj0ZnnaVYimNAxCNzhMT/k+KfOzExF6gXzVmnlITZL537
         VdVq+U8JSRC1qcae8UjCiDPnOjxaWTkmzBiYWvMVKyjUUYdWrWYTXUmZ7yVN7rhvb0ba
         b1TA==
X-Forwarded-Encrypted: i=1; AJvYcCW3dmVPfmtcBpGT8MIFCdYdY3vIqYujVgel8PXOPizYOPBXzbJnyX6ftGXdmjVjHBhUIXNdBHRXjls=@lists.xenproject.org
X-Gm-Message-State: AOJu0YysiR/RHZr1ro7b4YvK6l1ZQz5ESIUSTzBSzUK9/+vhr2lnwx/m
	TPCRsDKGddCsldlX1+u9di/FGIdx6ks3X9qSx2/5dBMbN58qsg012GFqVaDzkA==
X-Gm-Gg: ASbGncvkwLsz9Nf4CrsAG3IuprLV/K3vtNGO0iSVo0Ximxb49aGloulggIBKIlZb6FN
	Uq+4nfXFQXhhvyel01QBSVpzE1sWZ72+l4YSO2cDt6yqrCiny79bqHPtlN5bB8LVg1kCCcteaKP
	x04ypZzbHtQ0ylV3QUrYYvPTlAI6N+mLOL2EzH3VuoayaEo1gkidPM2RoK7A04WXA3AkRqe8ANP
	lA2eoG5aAA39GUNABaSfboCwUeUj7L7aYS3KF4/GGo4AMvJ65S/UHClltRS63drNWp3/NZXXwIy
	qQBEa9POUo3yp2JvV3wt5i3rBqQoQgE0K1H+zKYBSHwf5by1eXLQNVROvEIinf6KEwx88stZe46
	hDROCGlRIqWnPVMBpzyFcLtihzoKaDA==
X-Google-Smtp-Source: AGHT+IHCw7F2XYeanlCsOs3S2P/DpGIpfoRjdAL2xzj1ger/vwpFJy1ALPYxKTYYrhwcZexPZyZ70g==
X-Received: by 2002:a05:6000:40ce:b0:391:39bd:a381 with SMTP id ffacd0b85a97d-39cb35ac94fmr1616530f8f.30.1743751473173;
        Fri, 04 Apr 2025 00:24:33 -0700 (PDT)
Message-ID: <2b8e33f7-7e51-4ab5-ba1e-9d30d14be3bb@suse.com>
Date: Fri, 4 Apr 2025 09:24:31 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] sched/null: avoid another crash after failed domU
 creation
To: Stewart Hildebrand <stewart.hildebrand@amd.com>
Cc: Dario Faggioli <dfaggioli@suse.com>, Juergen Gross <jgross@suse.com>,
 George Dunlap <gwd@xenproject.org>, xen-devel@lists.xenproject.org
References: <20250403214829.128294-1-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: <20250403214829.128294-1-stewart.hildebrand@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 03.04.2025 23:48, Stewart Hildebrand wrote:
> The following sequence of events may lead a debug build of Xen to crash
> when using the null scheduler:
> 
> 1. domain creation (e.g. d1) failed due to bad configuration
> 2. complete_domain_destroy() was deferred
> 3. domain creation (e.g. d2) succeeds
> 
> At this point, d2 is running, while the zombie d1 is not fully cleaned
> up:
> 
> (XEN) Online Cpus: 0-3
> (XEN) Cpupool 0:
> (XEN) Cpus: 0-3
> (XEN) Scheduling granularity: cpu, 1 CPU per sched-resource
> (XEN) Scheduler: null Scheduler (null)
> (XEN)   cpus_free = 3
> (XEN) Domain info:
> (XEN)   Domain: 0
> (XEN)     1: [0.0] pcpu=0
> (XEN)     2: [0.1] pcpu=1
> (XEN)   Domain: 1
> (XEN)     3: [1.0] pcpu=2
> (XEN)   Domain: 2
> (XEN)     4: [2.0] pcpu=2
> 
> 4. complete_domain_destroy() gets called for d1 and triggers the
> following:
> 
> (XEN) Xen call trace:
> (XEN)    [<00000a0000322ed4>] null.c#unit_deassign+0x2d8/0xb70 (PC)
> (XEN)    [<00000a000032457c>] null.c#null_unit_remove+0x670/0xba8 (LR)
> (XEN)    [<00000a000032457c>] null.c#null_unit_remove+0x670/0xba8
> (XEN)    [<00000a0000336404>] sched_destroy_vcpu+0x354/0x8fc
> (XEN)    [<00000a0000227324>] domain.c#complete_domain_destroy+0x11c/0x49c
> (XEN)    [<00000a000029fbd0>] rcupdate.c#rcu_do_batch+0x94/0x3d0
> (XEN)    [<00000a00002a10c0>] rcupdate.c#__rcu_process_callbacks+0x160/0x5f4
> (XEN)    [<00000a00002a1e60>] rcupdate.c#rcu_process_callbacks+0xcc/0x1b0
> (XEN)    [<00000a00002a3460>] softirq.c#__do_softirq+0x1f4/0x3d8
> (XEN)    [<00000a00002a37c4>] do_softirq+0x14/0x1c
> (XEN)    [<00000a0000465260>] traps.c#check_for_pcpu_work+0x30/0xb8
> (XEN)    [<00000a000046bb08>] leave_hypervisor_to_guest+0x28/0x198
> (XEN)    [<00000a0000409c84>] entry.o#guest_sync_slowpath+0xac/0xd8
> (XEN)
> (XEN) ****************************************
> (XEN) Panic on CPU 0:
> (XEN) Assertion 'npc->unit == unit' failed at common/sched/null.c:383
> (XEN) ****************************************
> 
> Fix by skipping unit_deassign() when the unit to be removed does not
> match the pcpu's currently assigned unit.
> 
> Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>

Just one remark here: This almost certainly wants a Fixes: tag.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Apr 04 07:31:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 04 Apr 2025 07:31:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.937825.1338698 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0bWn-00048Y-3m; Fri, 04 Apr 2025 07:31:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 937825.1338698; Fri, 04 Apr 2025 07:31:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0bWn-00048R-0R; Fri, 04 Apr 2025 07:31:49 +0000
Received: by outflank-mailman (input) for mailman id 937825;
 Fri, 04 Apr 2025 07:31:47 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=iWoU=WW=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1u0bWl-00048J-3B
 for xen-devel@lists.xenproject.org; Fri, 04 Apr 2025 07:31:47 +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 dcdb3184-1126-11f0-9eaa-5ba50f476ded;
 Fri, 04 Apr 2025 09:31:46 +0200 (CEST)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-ac29af3382dso267729666b.2
 for <xen-devel@lists.xenproject.org>; Fri, 04 Apr 2025 00:31:46 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-64-225.play-internet.pl.
 [109.243.64.225]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-ac7c0186550sm210660966b.144.2025.04.04.00.31.44
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 04 Apr 2025 00:31:44 -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: dcdb3184-1126-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1743751905; x=1744356705; darn=lists.xenproject.org;
        h=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=LQfoTEG4MRtopApKswk9oTRymy8zhlkI+bcVVGiZ9Ws=;
        b=QVwWco4Ah8HyfWhO1IAMm+BgsPXnyrJLads95yhTrUaHlIvvlF4PwVKB6p/V4PXV08
         UGaTr23QgEHGwb9J6CXq7OyIdHa33Yg636tqvJ30sNeZTqElGknzy82+uJjrN037V91o
         PAYwfiRmOyL2mWBN9HsZubGugAbHALxiC2ZLupX9ZoP+2TawYuKzYnEwk+FKNIFzQa+9
         URR67QTxSiEs5OQ75vZYndWBgmkY5FFduQ0yVo1lv1+/hDRjwBE5sOct9b78akDxHoXZ
         xLtNlzOm4ffbncq5x95bZhnIVXjM/aQKqH0ctStIYkF3bl8Qa9shhw7iEKbBa05NhLJL
         YNOQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743751905; x=1744356705;
        h=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=LQfoTEG4MRtopApKswk9oTRymy8zhlkI+bcVVGiZ9Ws=;
        b=rcJDqJPYnh59E2ek7WMJE5/xL1ZGxZXHWaAxUct1sMsXsuuhPcdt114vHM/CbSMrNP
         9zvPW8+ZMjXvyXfMbYFkzgzXe4FwuRNGgY4A67CTgAqesj7VWp8YPH3vjeNDhiqSKCf9
         dE9IN+GDlzL6WWDwgtHQjgM0Ez+QFJSDFSUbZ/VJh1Rh4wclC2dSYt3SDC8AgvVNiGF+
         9e34imHYEppTKzu/0Lon0XqbJRjny93kN2EcdHLUt5vUOv4XAH2St4aEbMkddggDLf6g
         6Zzqh8eSoxLUGxTYGTEePV2Uy8GY0GMGOfTs6N7aKpdiAoIIH9m+UDYYDoQaY+Uzb/sJ
         bcLA==
X-Forwarded-Encrypted: i=1; AJvYcCXU7xRY4xDZ8jEGTTb7z3ZqOPZ6w8drskMK8rh28ggTBEQWIEqia8GDs/1GYLOYci1ighprkesK1AM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzkajYCfTHC9J0gBKXt9RM+VuYfrlmkYoWmPT5+M1xNjwic7XMj
	ZTG6/k11vKYdM1uUjqQJJmeHWlQM4P9D0cjUo2OGvTVeybLjCU7L
X-Gm-Gg: ASbGncskL3zrPUS8y1tTHjsenmqoVTHgGQxVxzRXaPHRwFsojClzVBWdnuKiTmB2uU/
	qdYETCR2Dz8i6TvMe/FLbGwKg11uIboBnRL2unhS8IVdJJtxef7XXNzPcpqD8RxjvYWBGMdoPy5
	zYo6lPFJPsFoAMArahSrxonfRynWrB1v7yLOgLjVpcmTsKKFYZsoWULE4BL86viv98f3Dv+Sh8L
	svU89TG6nXeFrPYpgAhhCj57Kuq7mKXBCzjZDISxG/QUxZolFpddTuKdZYeNKfYQvPcbeWbuyTd
	TPxVDThHKaMg9Hx6NqogwCEYb32WBTQsEBT/pgrI9FKJ/qsVc0TmZ6iIYplluvwpuCNaHR1TBe2
	gZPAIGpMElwsyhEmg2aqb
X-Google-Smtp-Source: AGHT+IE6IbDhoZkauGtEsyUa8q+rskPMQVnFt7mg56kOCVeRHAc9QwTajmQJnoYrA/TPOhJWLSyawg==
X-Received: by 2002:a17:907:1c9d:b0:ac2:7a6d:c927 with SMTP id a640c23a62f3a-ac7d6f1b67cmr154085566b.50.1743751905245;
        Fri, 04 Apr 2025 00:31:45 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------SMRczfIP04OYxOzm0S6CJdGW"
Message-ID: <a4eb8bcf-7043-4661-8879-cdb33d1ca252@gmail.com>
Date: Fri, 4 Apr 2025 09:31:43 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1] xen/riscv: Increase XEN_VIRT_SIZE
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <e5fa4219ccf43125e2489cc8c49b4404e6ed22ce.1743434164.git.oleksii.kurochko@gmail.com>
 <54ebdcb7-071f-411f-803a-930dc330a497@suse.com>
 <32264ccb-e566-41e0-973f-5bc7d874f970@gmail.com>
 <9d7e1553-3af8-4fc3-a400-8714d9b68411@suse.com>
 <30d8e316-aff5-498a-b2bd-448e0b2518ae@gmail.com>
 <3c2127ec-63fb-457b-8229-fc8a2b9fbf00@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <3c2127ec-63fb-457b-8229-fc8a2b9fbf00@suse.com>

This is a multi-part message in MIME format.
--------------SMRczfIP04OYxOzm0S6CJdGW
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 4/4/25 8:56 AM, Jan Beulich wrote:
> On 03.04.2025 18:20, Oleksii Kurochko wrote:
>> On 4/1/25 6:04 PM, Jan Beulich wrote:
>>> On 01.04.2025 17:58, Oleksii Kurochko wrote:
>>>> On 3/31/25 6:14 PM, Jan Beulich wrote:
>>>>> On 31.03.2025 17:20, Oleksii Kurochko wrote:
>>>>>> +        _AC(XEN_VIRT_START, UL) >> vpn1_shift;
>>>>>> +    const unsigned long xen_virt_end_vpn =
>>>>>> +        xen_virt_starn_vpn + ((XEN_VIRT_SIZE >> vpn1_shift) - 1);
>>>>>> +
>>>>>>         if ((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)) ==
>>>>>> -           (_AC(XEN_VIRT_START, UL) >> (PAGETABLE_ORDER + PAGE_SHIFT)));
>>>>>> +    BUILD_BUG_ON(XEN_VIRT_SIZE != MB(8));
>>>>> Is it necessary to be != ? Won't > suffice?
>>>> It could be just > MB(2). Or perphaps >=.
>>>> = would make the build fail, wouldn't it?
>> I just realized that BUILD_BUG_ON() condition is compared to zero so actually everything what
>> will make the condition true will cause a build fail as inside it used !(condition).
> ???

|BUILD_BUG_ON()| forces a compilation error if the given condition is true. Therefore, if the condition
|XEN_VIRT_SIZE != MB(2)| is changed to|XEN_VIRT_SIZE > MB(2)|, the condition will always evaluate to true
(assuming|XEN_VIRT_SIZE| is greater than 2 MB), which will result in a compilation error.

~ Oleksii

>
>> So it seems like we have to check for XEN_VIRT_SIZE != MB(16) and change each time when XEN_VIRT_SIZE
>> is increased.
> I don't think so, but I need to first understand the point you make above.

--------------SMRczfIP04OYxOzm0S6CJdGW
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 4/4/25 8:56 AM, Jan Beulich wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:3c2127ec-63fb-457b-8229-fc8a2b9fbf00@suse.com">
      <pre wrap="" class="moz-quote-pre">On 03.04.2025 18:20, Oleksii Kurochko wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">
On 4/1/25 6:04 PM, Jan Beulich wrote:
</pre>
        <blockquote type="cite">
          <pre wrap="" class="moz-quote-pre">On 01.04.2025 17:58, Oleksii Kurochko wrote:
</pre>
          <blockquote type="cite">
            <pre wrap="" class="moz-quote-pre">On 3/31/25 6:14 PM, Jan Beulich wrote:
</pre>
            <blockquote type="cite">
              <pre wrap="" class="moz-quote-pre">On 31.03.2025 17:20, Oleksii Kurochko wrote:
</pre>
              <blockquote type="cite">
                <pre wrap="" class="moz-quote-pre">+        _AC(XEN_VIRT_START, UL) &gt;&gt; vpn1_shift;
+    const unsigned long xen_virt_end_vpn =
+        xen_virt_starn_vpn + ((XEN_VIRT_SIZE &gt;&gt; vpn1_shift) - 1);
+
       if ((va &gt;= DIRECTMAP_VIRT_START) &amp;&amp;
           (va &lt;= DIRECTMAP_VIRT_END))
           return directmapoff_to_maddr(va - directmap_virt_start);
   
-    BUILD_BUG_ON(XEN_VIRT_SIZE != MB(2));
-    ASSERT((va &gt;&gt; (PAGETABLE_ORDER + PAGE_SHIFT)) ==
-           (_AC(XEN_VIRT_START, UL) &gt;&gt; (PAGETABLE_ORDER + PAGE_SHIFT)));
+    BUILD_BUG_ON(XEN_VIRT_SIZE != MB(8));
</pre>
              </blockquote>
              <pre wrap="" class="moz-quote-pre">Is it necessary to be != ? Won't &gt; suffice?
</pre>
            </blockquote>
            <pre wrap="" class="moz-quote-pre">It could be just &gt; MB(2). Or perphaps &gt;=.
= would make the build fail, wouldn't it?
</pre>
          </blockquote>
        </blockquote>
        <pre wrap="" class="moz-quote-pre">
I just realized that BUILD_BUG_ON() condition is compared to zero so actually everything what
will make the condition true will cause a build fail as inside it used !(condition).
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
???</pre>
    </blockquote>
    <pre><code data-start="71" data-end="87">BUILD_BUG_ON()</code> forces a compilation error if the given condition is true. Therefore, if the condition
<code data-start="177" data-end="201">XEN_VIRT_SIZE != MB(2)</code> is changed to <code
    data-start="216" data-end="239">XEN_VIRT_SIZE &gt; MB(2)</code>, the condition will always evaluate to true
(assuming <code data-start="294" data-end="309" data-is-only-node="">XEN_VIRT_SIZE</code> is greater than 2 MB), which will result in a compilation error.

~ Oleksii
</pre>
    <blockquote type="cite"
      cite="mid:3c2127ec-63fb-457b-8229-fc8a2b9fbf00@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">So it seems like we have to check for XEN_VIRT_SIZE != MB(16) and change each time when XEN_VIRT_SIZE
is increased.
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
I don't think so, but I need to first understand the point you make above.</pre>
    </blockquote>
    <pre>
</pre>
  </body>
</html>

--------------SMRczfIP04OYxOzm0S6CJdGW--


From xen-devel-bounces@lists.xenproject.org Fri Apr 04 07:34:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 04 Apr 2025 07:34:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.937837.1338707 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0bZl-0004i3-Gl; Fri, 04 Apr 2025 07:34:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 937837.1338707; Fri, 04 Apr 2025 07:34:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0bZl-0004hw-E7; Fri, 04 Apr 2025 07:34:53 +0000
Received: by outflank-mailman (input) for mailman id 937837;
 Fri, 04 Apr 2025 07:34: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=56zs=WW=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u0bZk-0004hq-Q0
 for xen-devel@lists.xenproject.org; Fri, 04 Apr 2025 07:34:52 +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 4ade192e-1127-11f0-9ffb-bf95429c2676;
 Fri, 04 Apr 2025 09:34:50 +0200 (CEST)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-43948f77f1aso12363825e9.0
 for <xen-devel@lists.xenproject.org>; Fri, 04 Apr 2025 00:34:50 -0700 (PDT)
Received: from [10.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-43ec34be2f4sm37934475e9.19.2025.04.04.00.34.49
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 04 Apr 2025 00:34:49 -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: 4ade192e-1127-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743752090; x=1744356890; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=F6LuLu7ttBbu+6ihLL7tsvFTfwKTtU6/PD4fs3YDkzI=;
        b=OKaC+FMT1NEu+ntkvz387753jfzh6R7bWkY6ovvXi/nCriqii1r37Ec49MhjMt4u4P
         dmOnqLcLXaiWpzJL4CpPlqICyuP1Z6Ny/rclCTbLMVJORRRFHmI/wUJuWH0Gm9NX/tYr
         144vMJ3BI+ANeDQpb/D8DpACf3jecE/euin03vA2LbhN4XsB4RZfrpU9xQgesDpA649D
         449n9ISLniAoKcY0XP9Gn+5vOf9wniyeA4F1B4+1HX7anUJmrX4gn2TN3S5sGYa7J5xt
         fv3cbHL2MVhJ6purBOsd6MleVMgyKY4toK/tn07zSwIs1Ih4F4QP2gTKM1FSP44qTS/5
         larg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743752090; x=1744356890;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=F6LuLu7ttBbu+6ihLL7tsvFTfwKTtU6/PD4fs3YDkzI=;
        b=V4GEW/pu4ypssZ+xmx1oxhlOmcTYu3o+hM4MszsPAEUvoiKvhi0eEYWBo794mHECRF
         +2DTa9My36LjzxYZYOn/867MIepv4FsuMZ46CpI3PzQ8OhCgR/BSmQIW7Vc3LauSvPO0
         Ug5ZFpHzVO98QYQiL5F3VqfSmMUwEqsYIKIV+iZbjvCvXbXFUKiEh1KZfCSX7459+adF
         pszIJ+3eRhwPYppq3ziMcNOOXz0SqNuxjGfRB9r2QUQr4FLRzqZgqdgy/GpAwiIV0kMu
         t7Hk6WukLZtfhVosCYDzrGLBEgXjX+Jh4NMZoctJdJtehQuO7FtK31uiiZMdF7EuBLTv
         3HdQ==
X-Forwarded-Encrypted: i=1; AJvYcCXK9p1H4UQH+ccG7P97wBRDYO4tc4NIlh7m6gUW8602I11WjGGAcxJICOfgyjor5kMvxILUuwUaxSI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyFDQXM2QVZbhBUbFJjxopkEWrJfFz6gqKb5ww/8tuevqg/jOe2
	9JVQjiIK/fikKPODe7+2oExXhjHhGmtUJTUl/YShhAkhl4uLpAmf7u5FgJK3rw==
X-Gm-Gg: ASbGncvqCiRR72EqR4QVB9TDteAjqUKkpQR9CEC0GvtQvqCNorOv5+DYe5K9ln9tts4
	cI/53aDCcGgoSII9Ad7CgRSYRp/+kObrnOoK5RoLBp+h1Ay+8TAgIHrWfAHHmCf8CLobIMVmM2E
	GaPPKwVGazsgGcrgnO34kSfGCFDKWeqS83nRuwcnP0c9E83Fm0Qqtw8bgFfqesauAFeJSWrxRT9
	0MzYEPVrwy9pfuqwgHurWp6qyCdOFg+GhDKIyXLcBEWYx2FXK8Y/M89gFmzPmchXqeT8Hhq6UbY
	ui5scMBHqtd/SZYVKE7OK/tf74oSnAqegAIBSyUOrbujaau8zocqarL0d5kJ12nA259hB5GKuyu
	HvLmNcq4uTQ7zUpIPevu7Zj+e7lcPgA==
X-Google-Smtp-Source: AGHT+IH872JyRDvaIpe3yJLc3SOHwNB/QQplWT9MK/smPHfiL3IcW9r3+E+sSFWZ0M8Vq9zMz/TX3Q==
X-Received: by 2002:a05:600c:4e09:b0:43c:eeee:b706 with SMTP id 5b1f17b1804b1-43ecf9fe6d2mr18430255e9.24.1743752090183;
        Fri, 04 Apr 2025 00:34:50 -0700 (PDT)
Message-ID: <2d0259da-f617-4fda-bc23-840e54a16527@suse.com>
Date: Fri, 4 Apr 2025 09:34:48 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 4/7] xen/arm: dom0less seed xenstore grant table entry
To: Jason Andryuk <jason.andryuk@amd.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <20250403214608.152954-1-jason.andryuk@amd.com>
 <20250403214608.152954-5-jason.andryuk@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20250403214608.152954-5-jason.andryuk@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 03.04.2025 23:46, Jason Andryuk wrote:
> xenstored maps other domains' xenstore pages.  Currently this relies on
> init-dom0less or xl to seed the grants from Dom0.  With split
> hardware/control/xenstore domains, this is problematic since we don't
> want the hardware domain to be able to map other domains' resources
> without their permission.  Instead have the hypervisor seed the grant
> table entry for every dom0less domain.  The grant is then accessible as
> normal.
> 
> C xenstored uses grants, so it can map the xenstore pages from a
> non-dom0 xenstore domain.  OCaml xenstored uses foreign mappings, so it
> can only run from a privileged domain (dom0).
> 
> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
> ---
> v3:
> Expand commit message about C vs. OCaml xenstored.
> Remove __init and flags from gnttab_seed_entry()
> Change frame to uint32_t
> ASSERT gfn fits in a uint32_t

Ehem. For this you need to use ...

> --- a/xen/arch/arm/dom0less-build.c
> +++ b/xen/arch/arm/dom0less-build.c
> @@ -788,6 +788,12 @@ static void __init initialize_domU_xenstore(void)
>          rc = alloc_xenstore_evtchn(d);
>          if ( rc < 0 )
>              panic("%pd: Failed to allocate xenstore_evtchn\n", d);
> +
> +        if ( gfn != ~0ULL )
> +        {
> +            ASSERT(gfn <= UINT_MAX);

... UINT32_MAX here. Furthermore may I remind you that INVALID_GFN ==
UINT32_MAX in 32-bit environments.

The ~0ULL may also better be UINT64_MAX.

> @@ -85,6 +89,9 @@ static inline void grant_table_destroy(struct domain *d) {}
>  
>  static inline void grant_table_init_vcpu(struct vcpu *v) {}
>  
> +static inline void gnttab_seed_entry(struct domain *d, int idx,
> +                                     domid_t be_domid, uint32_t frame) {}

Hmm. While generally I prefer using such wrappers, I wonder if in this
case it wouldn't end up more clear if a conditional was added in
initialize_domU_xenstore(). Ideally using IS_ENABLED(), which - aiui -
would require moving the declaration of the function.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Apr 04 07:38:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 04 Apr 2025 07:38:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.937848.1338717 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0bcv-0005GD-VR; Fri, 04 Apr 2025 07:38:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 937848.1338717; Fri, 04 Apr 2025 07:38: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 1u0bcv-0005G6-SM; Fri, 04 Apr 2025 07:38:09 +0000
Received: by outflank-mailman (input) for mailman id 937848;
 Fri, 04 Apr 2025 07:38:09 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=5J6g=WW=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1u0bcv-0005G0-18
 for xen-devel@lists.xenproject.org; Fri, 04 Apr 2025 07:38:09 +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 c087a7b3-1127-11f0-9eaa-5ba50f476ded;
 Fri, 04 Apr 2025 09:38:08 +0200 (CEST)
Received: by mail-ej1-x62b.google.com with SMTP id
 a640c23a62f3a-ac345bd8e13so286807566b.0
 for <xen-devel@lists.xenproject.org>; Fri, 04 Apr 2025 00:38:08 -0700 (PDT)
Received: from ?IPV6:2003:e5:873d:1a00:8e99:ce06:aa4a:2e7b?
 (p200300e5873d1a008e99ce06aa4a2e7b.dip0.t-ipconnect.de.
 [2003:e5:873d:1a00:8e99:ce06:aa4a:2e7b])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-ac7bfe99db7sm211081666b.61.2025.04.04.00.38.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 04 Apr 2025 00:38: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: c087a7b3-1127-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743752287; x=1744357087; 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=g1tD2V1UcgkdjoyOj1IrFCiJj9530NYTmGmEw2q9pI4=;
        b=ATFo8q4VwHQHaEvgwkHU8PaWd5+TOZ87EVBGAQvwQwC4VFkDCtecCuQcExnoBH+Xj/
         B4YuPa4Rat4ajAiCSfkwa3XRC/G6Pyn3jvfE851kAJg8fONyLq5lF4FYQU7uVsKHxish
         x6bYdwhbczxn2y9+Cyf9yhYN6JssKoSvf8KDo6qKYyxkOA3HSDDwrhnY34IO1CwBVOow
         g98m9+QZshQxh59A+etsH6JGAtRqyX2esHQZCM0d1q1YRjLBKe+H8u601f3krAEz0uh0
         QGfow8K46LkIkTlb69fQaATxK/qR20lfxcJhDDzNFwtOTovyLPyyz+/Pg2Lx0KOW5oys
         lvYQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743752287; x=1744357087;
        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=g1tD2V1UcgkdjoyOj1IrFCiJj9530NYTmGmEw2q9pI4=;
        b=bAe984ziwa29V4196zuLhENj/e8T0qF1MFu4MPaMzFD7NYeFfzL1KRKHPt73aQSWZd
         znodGIM0Y6PwODG2Q9s25L9N+ohXZLvl29yjxTLkuox9cimUPE1NGnhhfrRugIZMuN5Q
         b2bdmw81M8DKfcEN5NeyR8QLB6bMyAB0FMWe4ZRe9ZWpp3IG3O4gl7gwpHrc4GTgiLYv
         NUsov4/tw5LcWLBrl511Yhi5yOGknQ6BmSiZppyzdzmZEAapLFpKRTJphV2Hfrcx5YuW
         rjA7I9HSQHKIzg1enIwFe4j8YdeN6N73Vbo1Ep8gFbfwit/3DQ6eVSq5/qm9+wgVnyz+
         yBaw==
X-Forwarded-Encrypted: i=1; AJvYcCUo2998b2GIfSIW+U+rmDyxki85KO+ctJHvxxXkwcEvKwD1dXWB2+XSvmMoESzbuAt4r1SoAeN/C5Q=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yyv86N/nB2DR2TneDQF5dAHVcy3XbTWJ1S9Q4vHA2MtrTlyJgir
	7h6xInH+hi73WhsuUlOniFPNtsofRMrBbEEGjGqS95WNM+KT1XvZ2XljX21S530YnChLmz3q1O3
	lo5r3vQ==
X-Gm-Gg: ASbGncvZ3x5jWaib6rHPcFR4IevLEsoVp5Cib34Gijz2MxPITxuEoePOHEK8bMwqR8O
	wibOqQsHTeGuqiEP7m1xHO6mIMfC+icRsDa79+YCsqypYylRhp5Rb3FkIsnNUtliegCUBwuwFvJ
	eDQyQbiFASfDGQ/vbfUbcG3w6kcgKUpVbj4jcV6xgHbTD12bsneUf6EOHAtzXBtXn+vFo4V0Rrl
	29ZdM4yuYCZ0DIZIqTEwNpDkGjGirLr2fxRrSBZG7WHQdOnGvWwH1Q1+/BAwG6gbo5xgboqzWst
	XXnR1ckTTEExVvLQspLo8NCkjT9vZXSjhAXSRNmlY5yCu4WcFh8IddZXRR4HYH3EqzEDFqLMTRd
	qd9r1EW3+E2jIr+zvT9Qu7SlgEso41Xi1V+YqGAJe+U1b6fYfh95VfhLzEO5+LGCGKrf6pQ==
X-Google-Smtp-Source: AGHT+IEeONGr/ZZj73AAgTnOoAqNFu0EStlFIgN/itLYt1u5wlTxG0C4UpShKsFULL4sK5EqPT2dWQ==
X-Received: by 2002:a17:907:970b:b0:ac4:3cd:2cb2 with SMTP id a640c23a62f3a-ac7d166a59dmr194699566b.1.1743752287547;
        Fri, 04 Apr 2025 00:38:07 -0700 (PDT)
Message-ID: <9cf8294b-ac0f-4201-bb3d-9ccdaae47a54@suse.com>
Date: Fri, 4 Apr 2025 09:38:06 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] sched/null: avoid another crash after failed domU
 creation
To: Stewart Hildebrand <stewart.hildebrand@amd.com>,
 xen-devel@lists.xenproject.org
Cc: Dario Faggioli <dfaggioli@suse.com>, George Dunlap <gwd@xenproject.org>
References: <20250403214829.128294-1-stewart.hildebrand@amd.com>
Content-Language: en-US
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
Autocrypt: addr=jgross@suse.com; keydata=
 xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOB
 ycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJve
 dYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJ
 NwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvx
 XP3FAp2pkW0xqG7/377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEB
 AAHNH0p1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT7CwHkEEwECACMFAlOMcK8CGwMH
 CwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRCw3p3WKL8TL8eZB/9G0juS/kDY9LhEXseh
 mE9U+iA1VsLhgDqVbsOtZ/S14LRFHczNd/Lqkn7souCSoyWsBs3/wO+OjPvxf7m+Ef+sMtr0
 G5lCWEWa9wa0IXx5HRPW/ScL+e4AVUbL7rurYMfwCzco+7TfjhMEOkC+va5gzi1KrErgNRHH
 kg3PhlnRY0Udyqx++UYkAsN4TQuEhNN32MvN0Np3WlBJOgKcuXpIElmMM5f1BBzJSKBkW0Jc
 Wy3h2Wy912vHKpPV/Xv7ZwVJ27v7KcuZcErtptDevAljxJtE7aJG6WiBzm+v9EswyWxwMCIO
 RoVBYuiocc51872tRGywc03xaQydB+9R7BHPzsBNBFOMcBYBCADLMfoA44MwGOB9YT1V4KCy
 vAfd7E0BTfaAurbG+Olacciz3yd09QOmejFZC6AnoykydyvTFLAWYcSCdISMr88COmmCbJzn
 sHAogjexXiif6ANUUlHpjxlHCCcELmZUzomNDnEOTxZFeWMTFF9Rf2k2F0Tl4E5kmsNGgtSa
 aMO0rNZoOEiD/7UfPP3dfh8JCQ1VtUUsQtT1sxos8Eb/HmriJhnaTZ7Hp3jtgTVkV0ybpgFg
 w6WMaRkrBh17mV0z2ajjmabB7SJxcouSkR0hcpNl4oM74d2/VqoW4BxxxOD1FcNCObCELfIS
 auZx+XT6s+CE7Qi/c44ibBMR7hyjdzWbABEBAAHCwF8EGAECAAkFAlOMcBYCGwwACgkQsN6d
 1ii/Ey9D+Af/WFr3q+bg/8v5tCknCtn92d5lyYTBNt7xgWzDZX8G6/pngzKyWfedArllp0Pn
 fgIXtMNV+3t8Li1Tg843EXkP7+2+CQ98MB8XvvPLYAfW8nNDV85TyVgWlldNcgdv7nn1Sq8g
 HwB2BHdIAkYce3hEoDQXt/mKlgEGsLpzJcnLKimtPXQQy9TxUaLBe9PInPd+Ohix0XOlY+Uk
 QFEx50Ki3rSDl2Zt2tnkNYKUCvTJq7jvOlaPd6d/W0tZqpyy7KVay+K4aMobDsodB3dvEAs6
 ScCnh03dDAFgIq5nsB11j3KPKdVoPlfucX2c7kGNH+LUMbzqV6beIENfNexkOfxHfw==
In-Reply-To: <20250403214829.128294-1-stewart.hildebrand@amd.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------2tSMUciHeEgoHptR2OCUFIDz"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------2tSMUciHeEgoHptR2OCUFIDz
Content-Type: multipart/mixed; boundary="------------VSAuHIn21xAJ7TYUbGcooM03";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Stewart Hildebrand <stewart.hildebrand@amd.com>,
 xen-devel@lists.xenproject.org
Cc: Dario Faggioli <dfaggioli@suse.com>, George Dunlap <gwd@xenproject.org>
Message-ID: <9cf8294b-ac0f-4201-bb3d-9ccdaae47a54@suse.com>
Subject: Re: [PATCH] sched/null: avoid another crash after failed domU
 creation
References: <20250403214829.128294-1-stewart.hildebrand@amd.com>
In-Reply-To: <20250403214829.128294-1-stewart.hildebrand@amd.com>

--------------VSAuHIn21xAJ7TYUbGcooM03
Content-Type: multipart/mixed; boundary="------------8fZAWV7He5vSJ0wyx9rwhhJC"

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

T24gMDMuMDQuMjUgMjM6NDgsIFN0ZXdhcnQgSGlsZGVicmFuZCB3cm90ZToNCj4gVGhlIGZv
bGxvd2luZyBzZXF1ZW5jZSBvZiBldmVudHMgbWF5IGxlYWQgYSBkZWJ1ZyBidWlsZCBvZiBY
ZW4gdG8gY3Jhc2gNCj4gd2hlbiB1c2luZyB0aGUgbnVsbCBzY2hlZHVsZXI6DQo+IA0KPiAx
LiBkb21haW4gY3JlYXRpb24gKGUuZy4gZDEpIGZhaWxlZCBkdWUgdG8gYmFkIGNvbmZpZ3Vy
YXRpb24NCj4gMi4gY29tcGxldGVfZG9tYWluX2Rlc3Ryb3koKSB3YXMgZGVmZXJyZWQNCj4g
My4gZG9tYWluIGNyZWF0aW9uIChlLmcuIGQyKSBzdWNjZWVkcw0KPiANCj4gQXQgdGhpcyBw
b2ludCwgZDIgaXMgcnVubmluZywgd2hpbGUgdGhlIHpvbWJpZSBkMSBpcyBub3QgZnVsbHkg
Y2xlYW5lZA0KPiB1cDoNCj4gDQo+IChYRU4pIE9ubGluZSBDcHVzOiAwLTMNCj4gKFhFTikg
Q3B1cG9vbCAwOg0KPiAoWEVOKSBDcHVzOiAwLTMNCj4gKFhFTikgU2NoZWR1bGluZyBncmFu
dWxhcml0eTogY3B1LCAxIENQVSBwZXIgc2NoZWQtcmVzb3VyY2UNCj4gKFhFTikgU2NoZWR1
bGVyOiBudWxsIFNjaGVkdWxlciAobnVsbCkNCj4gKFhFTikgICBjcHVzX2ZyZWUgPSAzDQo+
IChYRU4pIERvbWFpbiBpbmZvOg0KPiAoWEVOKSAgIERvbWFpbjogMA0KPiAoWEVOKSAgICAg
MTogWzAuMF0gcGNwdT0wDQo+IChYRU4pICAgICAyOiBbMC4xXSBwY3B1PTENCj4gKFhFTikg
ICBEb21haW46IDENCj4gKFhFTikgICAgIDM6IFsxLjBdIHBjcHU9Mg0KPiAoWEVOKSAgIERv
bWFpbjogMg0KPiAoWEVOKSAgICAgNDogWzIuMF0gcGNwdT0yDQo+IA0KPiA0LiBjb21wbGV0
ZV9kb21haW5fZGVzdHJveSgpIGdldHMgY2FsbGVkIGZvciBkMSBhbmQgdHJpZ2dlcnMgdGhl
DQo+IGZvbGxvd2luZzoNCj4gDQo+IChYRU4pIFhlbiBjYWxsIHRyYWNlOg0KPiAoWEVOKSAg
ICBbPDAwMDAwYTAwMDAzMjJlZDQ+XSBudWxsLmMjdW5pdF9kZWFzc2lnbisweDJkOC8weGI3
MCAoUEMpDQo+IChYRU4pICAgIFs8MDAwMDBhMDAwMDMyNDU3Yz5dIG51bGwuYyNudWxsX3Vu
aXRfcmVtb3ZlKzB4NjcwLzB4YmE4IChMUikNCj4gKFhFTikgICAgWzwwMDAwMGEwMDAwMzI0
NTdjPl0gbnVsbC5jI251bGxfdW5pdF9yZW1vdmUrMHg2NzAvMHhiYTgNCj4gKFhFTikgICAg
WzwwMDAwMGEwMDAwMzM2NDA0Pl0gc2NoZWRfZGVzdHJveV92Y3B1KzB4MzU0LzB4OGZjDQo+
IChYRU4pICAgIFs8MDAwMDBhMDAwMDIyNzMyND5dIGRvbWFpbi5jI2NvbXBsZXRlX2RvbWFp
bl9kZXN0cm95KzB4MTFjLzB4NDljDQo+IChYRU4pICAgIFs8MDAwMDBhMDAwMDI5ZmJkMD5d
IHJjdXBkYXRlLmMjcmN1X2RvX2JhdGNoKzB4OTQvMHgzZDANCj4gKFhFTikgICAgWzwwMDAw
MGEwMDAwMmExMGMwPl0gcmN1cGRhdGUuYyNfX3JjdV9wcm9jZXNzX2NhbGxiYWNrcysweDE2
MC8weDVmNA0KPiAoWEVOKSAgICBbPDAwMDAwYTAwMDAyYTFlNjA+XSByY3VwZGF0ZS5jI3Jj
dV9wcm9jZXNzX2NhbGxiYWNrcysweGNjLzB4MWIwDQo+IChYRU4pICAgIFs8MDAwMDBhMDAw
MDJhMzQ2MD5dIHNvZnRpcnEuYyNfX2RvX3NvZnRpcnErMHgxZjQvMHgzZDgNCj4gKFhFTikg
ICAgWzwwMDAwMGEwMDAwMmEzN2M0Pl0gZG9fc29mdGlycSsweDE0LzB4MWMNCj4gKFhFTikg
ICAgWzwwMDAwMGEwMDAwNDY1MjYwPl0gdHJhcHMuYyNjaGVja19mb3JfcGNwdV93b3JrKzB4
MzAvMHhiOA0KPiAoWEVOKSAgICBbPDAwMDAwYTAwMDA0NmJiMDg+XSBsZWF2ZV9oeXBlcnZp
c29yX3RvX2d1ZXN0KzB4MjgvMHgxOTgNCj4gKFhFTikgICAgWzwwMDAwMGEwMDAwNDA5Yzg0
Pl0gZW50cnkubyNndWVzdF9zeW5jX3Nsb3dwYXRoKzB4YWMvMHhkOA0KPiAoWEVOKQ0KPiAo
WEVOKSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQo+IChYRU4p
IFBhbmljIG9uIENQVSAwOg0KPiAoWEVOKSBBc3NlcnRpb24gJ25wYy0+dW5pdCA9PSB1bml0
JyBmYWlsZWQgYXQgY29tbW9uL3NjaGVkL251bGwuYzozODMNCj4gKFhFTikgKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KPiANCj4gRml4IGJ5IHNraXBwaW5n
IHVuaXRfZGVhc3NpZ24oKSB3aGVuIHRoZSB1bml0IHRvIGJlIHJlbW92ZWQgZG9lcyBub3QN
Cj4gbWF0Y2ggdGhlIHBjcHUncyBjdXJyZW50bHkgYXNzaWduZWQgdW5pdC4NCj4gDQo+IFNp
Z25lZC1vZmYtYnk6IFN0ZXdhcnQgSGlsZGVicmFuZCA8c3Rld2FydC5oaWxkZWJyYW5kQGFt
ZC5jb20+DQoNClJldmlld2VkLWJ5OiBKdWVyZ2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+
DQoNCg0KSnVlcmdlbg0K
--------------8fZAWV7He5vSJ0wyx9rwhhJC
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-----

--------------8fZAWV7He5vSJ0wyx9rwhhJC--

--------------VSAuHIn21xAJ7TYUbGcooM03--

--------------2tSMUciHeEgoHptR2OCUFIDz
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/Ey8FAmfvjF4FAwAAAAAACgkQsN6d1ii/Ey/D
/Qf/Uq2Bfi773mlRcesX+yukLIkNwdWJzTcc+t/lk1HNDPcdaoTraybD5dSbFXd55b1qjOxRNzW4
qRo1V2qjdgu9+vld1RiuecwYWaOr75MqGaZNkQ0Abg/U75DRZI2RsqtXJf7W/wb3xclsDi03xFby
TgEeBNTpzBr0v7RlNhKdDNr524FZo19SOCzJLDPUZozztE7ifnqU96Ekrz54MucMx3Qom/PDYJH/
ZCKccKA8YSheky8ort91XoOQt1pFGtvxOOlMfB4gZtaXBLGg94Og/Lpv7lUmVxnWdHD9p5mY+e+j
MoWLgoUvagWXffZn7GUmX7VySzXqoEsIcY2qOUWkQg==
=VzEw
-----END PGP SIGNATURE-----

--------------2tSMUciHeEgoHptR2OCUFIDz--


From xen-devel-bounces@lists.xenproject.org Fri Apr 04 07:38:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 04 Apr 2025 07:38:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.937861.1338728 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0bdf-0005nu-9m; Fri, 04 Apr 2025 07:38:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 937861.1338728; Fri, 04 Apr 2025 07:38: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 1u0bdf-0005nn-6s; Fri, 04 Apr 2025 07:38:55 +0000
Received: by outflank-mailman (input) for mailman id 937861;
 Fri, 04 Apr 2025 07:38: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=5J6g=WW=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1u0bde-0005Wd-Ci
 for xen-devel@lists.xenproject.org; Fri, 04 Apr 2025 07:38:54 +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 db321eae-1127-11f0-9ffb-bf95429c2676;
 Fri, 04 Apr 2025 09:38:52 +0200 (CEST)
Received: by mail-ed1-x531.google.com with SMTP id
 4fb4d7f45d1cf-5e8be1c6ff8so3234697a12.1
 for <xen-devel@lists.xenproject.org>; Fri, 04 Apr 2025 00:38:52 -0700 (PDT)
Received: from ?IPV6:2003:e5:873d:1a00:8e99:ce06:aa4a:2e7b?
 (p200300e5873d1a008e99ce06aa4a2e7b.dip0.t-ipconnect.de.
 [2003:e5:873d:1a00:8e99:ce06:aa4a:2e7b])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5f087f0a9c9sm2034213a12.41.2025.04.04.00.38.51
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 04 Apr 2025 00:38: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: db321eae-1127-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743752332; x=1744357132; 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=6F3lg40gWNXXM8tzSYOkcqNEacl/M3IDIYky3PiKnR4=;
        b=K4tMCJ/jWQD4cUGtlbYmsK2nVxhCsUhOdsKJz3CBz62wehRi3vdC+rZkY/UEm8pM2F
         zi8DEO+GPXTeV/ghWtGScii1G5XCwFzm0Y3/Ns/JggmSejOY5oFpavuiEsabqfOBW4k+
         k/NfSaPbkSlgCbFlbFkklWBgEJq8Lb+A5DZ46yZI0/nIPVAWO4RW8mc5ok098GefSjuA
         EGiFqj5u/VVXR0KjdHUozgu9T3a2jcxg8oCtGlZEzn6J5jp3q4va8S6btY8EXMS/cQ5V
         QIl4Pu1gLlbcJTnC08aAawCVeUgAsUJyrWZvqhzXf/a+M9OHbz/GhYP+/U9b4QL5MNad
         CZQQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743752332; x=1744357132;
        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=6F3lg40gWNXXM8tzSYOkcqNEacl/M3IDIYky3PiKnR4=;
        b=CBuxytGc+wgMCM5olmVTIZmK866tZuNa/L4/Ba1qEhlh1R7thziRtjjMM1MB4uhXUX
         CxbrynIfChemMv6sSjlP76QjKvf/AwFdNm6Vj0yOWnJ5hvrdmL1vgUsAi8KwFcy+R+yf
         chT0GbYh/4X8E5cJge02HwsmosrtjREbZnZVYcFwVQOuL54yu+RXaNz7q6PqLewb5sUR
         ZpXhbbNfUip5f0ZweRkCn4Fpn6zUEsB1NvKKDHZZoQI2CGWEM/VovbRXOc+szcbmsvXu
         KrfqbRjM5pn1cGZwa3kraoltcP33HU1FUefKfBrplooml05wq0KiNiZN6WTcgYQdHmQn
         G+bw==
X-Forwarded-Encrypted: i=1; AJvYcCX/FwnguhlqhF3WRiwoiNgGgc7kv74Ba2NPGbLaKKpoz1XQr5dCyQgvcUyiv4yQWaEykQfWhaRdrLk=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy36Fv+6IAusS1bLJ8JeTvgW1gu3yLHcM8SDRDgTPyDgDlHpMLH
	mVe1gu0fbvYUD6SmiaSqM5nkm6f8pecjliwBTRBdI37iy5JsZ8JWfDDXjhoWyWY=
X-Gm-Gg: ASbGncs0ydDuOS6wHF4BUq0dnBgWHpDqkMQbspGGiJEr9sQBzymB4VEk3tF6zOnE/iQ
	Mr6J5z0dvRt3EELIKyX1PBR5uFnIuUqUCiAgAPEDsAoGC6NZ5zy5EMYHBGeP9xZCZDlFnVb/VuG
	JBYe68GU3q0Aq+K7lz9BJE48Vg8vpsgOH9UPX3oBbaD84am9YTYlftUD4Z80xvW63XLgL8e9orO
	/Tu/r25Itlfw8S7/uWZsWFos584eZGapPKXqtKFDERv8w2jrxAFVgyTsX8jQbWmwvmE7HSMEOrk
	iMDb1rA/gY+fa8DgdMEYUxfHzkOv6Sja5t8X5B4ccfsEWXZEQJ7SLh3hxml38Lsa8z2NH84MEaY
	bCESUP1JbPxSgg/Fj+iZIOYSXAw+yaBuQeIJwx4SQ3hnIdJ7Gbcf+D3AVvayqa1NIBfnVog==
X-Google-Smtp-Source: AGHT+IFfJsxhw7oogLkUFQJYPvOcG41omT39S8YNHDmmDMSKVLVdlx+p4RvI327g2tpqetU3SS3O5w==
X-Received: by 2002:a05:6402:50cc:b0:5e7:b02b:381f with SMTP id 4fb4d7f45d1cf-5f0b66271aemr1321583a12.30.1743752332190;
        Fri, 04 Apr 2025 00:38:52 -0700 (PDT)
Message-ID: <a03cd26b-c1b0-44d3-8bd8-f9c24d7ada5a@suse.com>
Date: Fri, 4 Apr 2025 09:38:51 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] sched/null: avoid another crash after failed domU
 creation
To: Jan Beulich <jbeulich@suse.com>,
 Stewart Hildebrand <stewart.hildebrand@amd.com>
Cc: Dario Faggioli <dfaggioli@suse.com>, George Dunlap <gwd@xenproject.org>,
 xen-devel@lists.xenproject.org
References: <20250403214829.128294-1-stewart.hildebrand@amd.com>
 <2b8e33f7-7e51-4ab5-ba1e-9d30d14be3bb@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: <2b8e33f7-7e51-4ab5-ba1e-9d30d14be3bb@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------DptvhkxxIkgtM5BhtcWN4AoV"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------DptvhkxxIkgtM5BhtcWN4AoV
Content-Type: multipart/mixed; boundary="------------QlgOJLDV74Vs6u93yw0sWUGS";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Jan Beulich <jbeulich@suse.com>,
 Stewart Hildebrand <stewart.hildebrand@amd.com>
Cc: Dario Faggioli <dfaggioli@suse.com>, George Dunlap <gwd@xenproject.org>,
 xen-devel@lists.xenproject.org
Message-ID: <a03cd26b-c1b0-44d3-8bd8-f9c24d7ada5a@suse.com>
Subject: Re: [PATCH] sched/null: avoid another crash after failed domU
 creation
References: <20250403214829.128294-1-stewart.hildebrand@amd.com>
 <2b8e33f7-7e51-4ab5-ba1e-9d30d14be3bb@suse.com>
In-Reply-To: <2b8e33f7-7e51-4ab5-ba1e-9d30d14be3bb@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=

--------------QlgOJLDV74Vs6u93yw0sWUGS
Content-Type: multipart/mixed; boundary="------------n50QHNCqkIax68GF15RsvDW8"

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

T24gMDQuMDQuMjUgMDk6MjQsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAwMy4wNC4yMDI1
IDIzOjQ4LCBTdGV3YXJ0IEhpbGRlYnJhbmQgd3JvdGU6DQo+PiBUaGUgZm9sbG93aW5nIHNl
cXVlbmNlIG9mIGV2ZW50cyBtYXkgbGVhZCBhIGRlYnVnIGJ1aWxkIG9mIFhlbiB0byBjcmFz
aA0KPj4gd2hlbiB1c2luZyB0aGUgbnVsbCBzY2hlZHVsZXI6DQo+Pg0KPj4gMS4gZG9tYWlu
IGNyZWF0aW9uIChlLmcuIGQxKSBmYWlsZWQgZHVlIHRvIGJhZCBjb25maWd1cmF0aW9uDQo+
PiAyLiBjb21wbGV0ZV9kb21haW5fZGVzdHJveSgpIHdhcyBkZWZlcnJlZA0KPj4gMy4gZG9t
YWluIGNyZWF0aW9uIChlLmcuIGQyKSBzdWNjZWVkcw0KPj4NCj4+IEF0IHRoaXMgcG9pbnQs
IGQyIGlzIHJ1bm5pbmcsIHdoaWxlIHRoZSB6b21iaWUgZDEgaXMgbm90IGZ1bGx5IGNsZWFu
ZWQNCj4+IHVwOg0KPj4NCj4+IChYRU4pIE9ubGluZSBDcHVzOiAwLTMNCj4+IChYRU4pIENw
dXBvb2wgMDoNCj4+IChYRU4pIENwdXM6IDAtMw0KPj4gKFhFTikgU2NoZWR1bGluZyBncmFu
dWxhcml0eTogY3B1LCAxIENQVSBwZXIgc2NoZWQtcmVzb3VyY2UNCj4+IChYRU4pIFNjaGVk
dWxlcjogbnVsbCBTY2hlZHVsZXIgKG51bGwpDQo+PiAoWEVOKSAgIGNwdXNfZnJlZSA9IDMN
Cj4+IChYRU4pIERvbWFpbiBpbmZvOg0KPj4gKFhFTikgICBEb21haW46IDANCj4+IChYRU4p
ICAgICAxOiBbMC4wXSBwY3B1PTANCj4+IChYRU4pICAgICAyOiBbMC4xXSBwY3B1PTENCj4+
IChYRU4pICAgRG9tYWluOiAxDQo+PiAoWEVOKSAgICAgMzogWzEuMF0gcGNwdT0yDQo+PiAo
WEVOKSAgIERvbWFpbjogMg0KPj4gKFhFTikgICAgIDQ6IFsyLjBdIHBjcHU9Mg0KPj4NCj4+
IDQuIGNvbXBsZXRlX2RvbWFpbl9kZXN0cm95KCkgZ2V0cyBjYWxsZWQgZm9yIGQxIGFuZCB0
cmlnZ2VycyB0aGUNCj4+IGZvbGxvd2luZzoNCj4+DQo+PiAoWEVOKSBYZW4gY2FsbCB0cmFj
ZToNCj4+IChYRU4pICAgIFs8MDAwMDBhMDAwMDMyMmVkND5dIG51bGwuYyN1bml0X2RlYXNz
aWduKzB4MmQ4LzB4YjcwIChQQykNCj4+IChYRU4pICAgIFs8MDAwMDBhMDAwMDMyNDU3Yz5d
IG51bGwuYyNudWxsX3VuaXRfcmVtb3ZlKzB4NjcwLzB4YmE4IChMUikNCj4+IChYRU4pICAg
IFs8MDAwMDBhMDAwMDMyNDU3Yz5dIG51bGwuYyNudWxsX3VuaXRfcmVtb3ZlKzB4NjcwLzB4
YmE4DQo+PiAoWEVOKSAgICBbPDAwMDAwYTAwMDAzMzY0MDQ+XSBzY2hlZF9kZXN0cm95X3Zj
cHUrMHgzNTQvMHg4ZmMNCj4+IChYRU4pICAgIFs8MDAwMDBhMDAwMDIyNzMyND5dIGRvbWFp
bi5jI2NvbXBsZXRlX2RvbWFpbl9kZXN0cm95KzB4MTFjLzB4NDljDQo+PiAoWEVOKSAgICBb
PDAwMDAwYTAwMDAyOWZiZDA+XSByY3VwZGF0ZS5jI3JjdV9kb19iYXRjaCsweDk0LzB4M2Qw
DQo+PiAoWEVOKSAgICBbPDAwMDAwYTAwMDAyYTEwYzA+XSByY3VwZGF0ZS5jI19fcmN1X3By
b2Nlc3NfY2FsbGJhY2tzKzB4MTYwLzB4NWY0DQo+PiAoWEVOKSAgICBbPDAwMDAwYTAwMDAy
YTFlNjA+XSByY3VwZGF0ZS5jI3JjdV9wcm9jZXNzX2NhbGxiYWNrcysweGNjLzB4MWIwDQo+
PiAoWEVOKSAgICBbPDAwMDAwYTAwMDAyYTM0NjA+XSBzb2Z0aXJxLmMjX19kb19zb2Z0aXJx
KzB4MWY0LzB4M2Q4DQo+PiAoWEVOKSAgICBbPDAwMDAwYTAwMDAyYTM3YzQ+XSBkb19zb2Z0
aXJxKzB4MTQvMHgxYw0KPj4gKFhFTikgICAgWzwwMDAwMGEwMDAwNDY1MjYwPl0gdHJhcHMu
YyNjaGVja19mb3JfcGNwdV93b3JrKzB4MzAvMHhiOA0KPj4gKFhFTikgICAgWzwwMDAwMGEw
MDAwNDZiYjA4Pl0gbGVhdmVfaHlwZXJ2aXNvcl90b19ndWVzdCsweDI4LzB4MTk4DQo+PiAo
WEVOKSAgICBbPDAwMDAwYTAwMDA0MDljODQ+XSBlbnRyeS5vI2d1ZXN0X3N5bmNfc2xvd3Bh
dGgrMHhhYy8weGQ4DQo+PiAoWEVOKQ0KPj4gKFhFTikgKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKg0KPj4gKFhFTikgUGFuaWMgb24gQ1BVIDA6DQo+PiAoWEVO
KSBBc3NlcnRpb24gJ25wYy0+dW5pdCA9PSB1bml0JyBmYWlsZWQgYXQgY29tbW9uL3NjaGVk
L251bGwuYzozODMNCj4+IChYRU4pICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioNCj4+DQo+PiBGaXggYnkgc2tpcHBpbmcgdW5pdF9kZWFzc2lnbigpIHdoZW4g
dGhlIHVuaXQgdG8gYmUgcmVtb3ZlZCBkb2VzIG5vdA0KPj4gbWF0Y2ggdGhlIHBjcHUncyBj
dXJyZW50bHkgYXNzaWduZWQgdW5pdC4NCj4+DQo+PiBTaWduZWQtb2ZmLWJ5OiBTdGV3YXJ0
IEhpbGRlYnJhbmQgPHN0ZXdhcnQuaGlsZGVicmFuZEBhbWQuY29tPg0KPiANCj4gSnVzdCBv
bmUgcmVtYXJrIGhlcmU6IFRoaXMgYWxtb3N0IGNlcnRhaW5seSB3YW50cyBhIEZpeGVzOiB0
YWcuDQoNClRoaXMgd2lsbCBwcm9iYWJseSBiZSBkNjcxZGEzYmUzY2EgKHRoZSBpbml0aWFs
IE5VTEwgc2NoZWR1bGVyIGNvbW1pdCkuDQoNCg0KSnVlcmdlbg0KDQo=
--------------n50QHNCqkIax68GF15RsvDW8
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-----

--------------n50QHNCqkIax68GF15RsvDW8--

--------------QlgOJLDV74Vs6u93yw0sWUGS--

--------------DptvhkxxIkgtM5BhtcWN4AoV
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/Ey8FAmfvjIsFAwAAAAAACgkQsN6d1ii/Ey/k
AwgAm4B5FbEy2pbfIr9zjZidowOXUTSnGe6w9NZaC6nbY0lXYtYESsARS+Boe+ksvfoK83+ZQ+72
F7HwdIZsk5rFMZU0b46kJaTzbhywzvnkwarH6nYMQYqbtg2/tvKgkJaKlWNx7rCP3Iod0eVPYvWX
+SycVH/EqJgBygFqwZLatqn15dy2Vs8n91oMpGDoJCeYkbdy4Qa63ZeFdahk+MrlALlKCncptelM
06sFtdqZRN9rlKme6gdjGaICgVlMKd0NrmY3fW98sGx81FEJECO+rbtFq/I8jCxQwC0+T86EFtMH
SuM/6UKKDkqBF9VdJsHwhnyMPujiE2yt4oFyV7gr4A==
=e2cE
-----END PGP SIGNATURE-----

--------------DptvhkxxIkgtM5BhtcWN4AoV--


From xen-devel-bounces@lists.xenproject.org Fri Apr 04 07:38:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 04 Apr 2025 07:38:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.937862.1338738 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0bdj-00063p-Gm; Fri, 04 Apr 2025 07:38:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 937862.1338738; Fri, 04 Apr 2025 07:38: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 1u0bdj-00063g-Dd; Fri, 04 Apr 2025 07:38:59 +0000
Received: by outflank-mailman (input) for mailman id 937862;
 Fri, 04 Apr 2025 07:38:57 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=56zs=WW=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u0bdh-0005G0-QC
 for xen-devel@lists.xenproject.org; Fri, 04 Apr 2025 07:38:57 +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 ddd27a85-1127-11f0-9eaa-5ba50f476ded;
 Fri, 04 Apr 2025 09:38:57 +0200 (CEST)
Received: by mail-wr1-x432.google.com with SMTP id
 ffacd0b85a97d-39c1efc457bso1026870f8f.2
 for <xen-devel@lists.xenproject.org>; Fri, 04 Apr 2025 00:38:57 -0700 (PDT)
Received: from [10.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-39c3020d66csm3786424f8f.63.2025.04.04.00.38.55
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 04 Apr 2025 00:38:56 -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: ddd27a85-1127-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743752337; x=1744357137; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=oo9ujPT8cWaLK0iTE7kB3Uob2+wwFuIxbDC/g+i7TnA=;
        b=Z3PO6t0ghdL5O3shzzhbEiI+K7c3fu9NGs56vwVraaMGDjU37YsTPed0X2WyQ4lUlI
         ffRnptrPzoClluup/gRFcpl/93JOHzSt7EBAtAcj5Yv88RICC4yUwmRDvvzWGdPoZSJq
         1QDdt2xhRDnrgDziBAyAbilTSYuGqCITqSGXgPVTINvK2xL2kSzGPczJhBIvYLJGbtWM
         VtpUDe1vcvEpjqXyXtPurRwfsotrP126uX4FgYS1kpWfQ3HZFo2mngPr5mYNApAMHc0t
         DHMYngb/NKuoMR0pgXLpJ27KpGFbsNEUy/NJs21di17WL9kgoiZbWWNCBG0F39dkFXgi
         QClQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743752337; x=1744357137;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=oo9ujPT8cWaLK0iTE7kB3Uob2+wwFuIxbDC/g+i7TnA=;
        b=S86cXie9IGOgFr8UV5Yeh+ZM8wVMmOEWlYjEUbITt1tTQRumbySBVtmjqfAJ2AfL9b
         U78SSp6XscebYMws0O1dg9TmXjNmkgIbTp/WqG5n51LFjw7Cp6m2P/aiga/6tcU9QmTf
         H1ZaUXLdkxLTH5jpCbJfL5ndUM/ChypvznAHsFHfPMXJQRUaUWyLn6sllc+Tq2OdqCiI
         ItKUX6l/kexJO8RC4Te1bJDyFKWJAIyuMIPhPx7TWsJWFrPAKcir6xOncKn6WNy5Pz2H
         WWT0nRuiobghN3Y6WpYIGaIrufw/C0F1jl/XHOVuvZqLJdT20rfDnabChlPTvJuGSqF3
         aNOQ==
X-Forwarded-Encrypted: i=1; AJvYcCW6ZKOqxKl74N7mtBxLmdj2JEjORUVL9c18eylP7q5Dg3/uUZOadt4ksuv4KahZ6mEgTOj/9i4dKwg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxIrtycHVT9xKp0TTCjnGssSDyBGV7XHuMl8No4UQy+MQiM755s
	4g51P5GVQrQIHMGibAF4HvvRhGd4V9QrGOXGO6JdhbqWEiiDmL1HaVtqHMpIZQ==
X-Gm-Gg: ASbGncth+LYQuDaBKB+4N0DHJ0u/aygIN3LvkuS748qcOvVYNJXD4CVp/6BV/pgq4gf
	nwMWoLxDCflwW8VCm23TpsS2xqiRmA6nWyHA3/2Mhz0DuyT5pjkCl2aKCLFzl87Wl1bvbUidC+h
	Bd2m7M2xML3FmlAtYv7YFq2v8OidzsEv8j4C0RJM1bJqy+p9XDl+PB4qy4aw4XAJcovzlQEtswx
	NQf2knO4UVqJia2odL6T08FSSKi+sDOYorCcKi0o/N6lQtg9AQki/9Xsw4AGDHhsCz7tTONDIov
	Pxa4FnvqAqBwp3RJEIG1Tz3PnUiEFoH/0vj5UHLBJj7qH3IkIO18VHnjaDhkNObnLkLb2lsVlkM
	1H0F5SP9xJ8ObEGFcp35ox1aBU2v67A==
X-Google-Smtp-Source: AGHT+IGCJsD0bE/34tcgPCUiuXRkRgDUdrYOYhWoyhsgpYiwuWgLT36gtgCoA33ioJcmj7JWD9RdHg==
X-Received: by 2002:a05:6000:2a06:b0:39c:1257:c96d with SMTP id ffacd0b85a97d-39cba9442bdmr917210f8f.57.1743752336757;
        Fri, 04 Apr 2025 00:38:56 -0700 (PDT)
Message-ID: <332e0afc-9c43-4602-9bc0-dfe4ddd1b107@suse.com>
Date: Fri, 4 Apr 2025 09:38:54 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 1/7] xen: introduce hardware domain create flag
To: Jason Andryuk <jason.andryuk@amd.com>
Cc: "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>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <20250403214608.152954-1-jason.andryuk@amd.com>
 <20250403214608.152954-2-jason.andryuk@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20250403214608.152954-2-jason.andryuk@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 03.04.2025 23:46, Jason Andryuk wrote:
> From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
> 
> Add and use a new internal create domain flag to specify the hardware
> domain.  This removes the hardcoding of domid 0 as the hardware domain.
> 
> This allows more flexibility with domain creation.
> 
> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
> Reviewed-by: Jan Beulich <jbeulich@suse.com>
> ---
> v3:
> Or-in CDF_hardware for late hwdom case

Except that ...

> --- a/xen/common/domain.c
> +++ b/xen/common/domain.c
> @@ -820,13 +820,18 @@ struct domain *domain_create(domid_t domid,
>      d->is_privileged = flags & CDF_privileged;
>  
>      /* Sort out our idea of is_hardware_domain(). */
> -    if ( domid == 0 || domid == hardware_domid )
> +    if ( (flags & CDF_hardware) || domid == hardware_domid )
>      {
>          if ( hardware_domid < 0 || hardware_domid >= DOMID_FIRST_RESERVED )
>              panic("The value of hardware_dom must be a valid domain ID\n");
>  
> +        /* late_hwdom is only allowed for dom0. */
> +        if ( hardware_domain && hardware_domain->domain_id )
> +            return ERR_PTR(-EINVAL);
> +
>          old_hwdom = hardware_domain;
>          hardware_domain = d;
> +        flags |= CDF_hardware;
>      }

... this isn't quite enough. You're only modifying what will go out of scope
when returning from the function. What's at least equally important to OR into
is d->cdf.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Apr 04 07:42:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 04 Apr 2025 07:42:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.937887.1338749 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0bgo-0001Ck-1l; Fri, 04 Apr 2025 07:42:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 937887.1338749; Fri, 04 Apr 2025 07:42: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 1u0bgn-0001Cd-SV; Fri, 04 Apr 2025 07:42:09 +0000
Received: by outflank-mailman (input) for mailman id 937887;
 Fri, 04 Apr 2025 07:42: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=56zs=WW=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u0bgm-0001AG-Is
 for xen-devel@lists.xenproject.org; Fri, 04 Apr 2025 07:42:08 +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 4f45f5ba-1128-11f0-9eaa-5ba50f476ded;
 Fri, 04 Apr 2025 09:42:07 +0200 (CEST)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-43d04ea9d9aso8201255e9.3
 for <xen-devel@lists.xenproject.org>; Fri, 04 Apr 2025 00:42:07 -0700 (PDT)
Received: from [10.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-39c301b7dedsm3729452f8f.52.2025.04.04.00.42.06
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 04 Apr 2025 00:42: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: 4f45f5ba-1128-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743752527; x=1744357327; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=uXzEHtB2UpGFKAxNm9Hp74QNk7Xi7yRPzLG9TvgOWFc=;
        b=OeT2D/LXETUVv5Mnc6WFmrKeJZTsMFEk9/wfFNpC3gGIPIPNngpnvS8ZbsgH4iwOtm
         EnmzgqWRzcxkfIFSfnx4GkKdoj53/KDrLsHGWQO/rBX1lI8gWHQ3LEo86HK1e/PQuZSg
         ioQkRzP7eF1B7eOQeyI1Wm8S/Z2y86rNadbUtFEW5IEolopMvB07AmVkgUftke/3mHCv
         ODHfpRuVjjYjO+qL5X8+teHyXBzR1oKsxMf6xTbowp7ApTKeqmSOTevw/orbehqBrLGq
         x6m0mxB17l1mRt7arPrrS0IqLPKNuEULvYEIh9J2Au+G93kFq5HKFfiNRpp1DIoknZPr
         gRoA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743752527; x=1744357327;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=uXzEHtB2UpGFKAxNm9Hp74QNk7Xi7yRPzLG9TvgOWFc=;
        b=xI6OjlJ6g2Am2Q9DLdFdmV+aDQiRdjiwo62tgvPQ3Ke6gJQ4PTeA5HiqC8ldlf8oLh
         uzOnd5AlVSti1omc+rkDixjxgbnmnp3tlKBLLzw/uo7KitVrIbJjGUbZvytyJ9K3FnwG
         P0P3ylMMgYsbEzSc4vkWAZ0O6QjwwaIFjjVnxmPheuXOBQcRPCwrnXSygazE7/f3jZVU
         6qa7NE/0OATdinSOkeRzRTfWn1mCQK9VFXVCoDq/Op9Bir1gpgWUA/K8VK7vTc4MQ5x8
         bM/uAZwdbORjX6TbE3oC5H/DVidxMvsa5Fn798JXlC73ywoan/kWCCwoSJxm5h9DUjC4
         1KcA==
X-Forwarded-Encrypted: i=1; AJvYcCWx4A4u+NQJipNn5Nest48de1gn7VaJ4aQimGLIJgOC0OfoAp2iBqapJfC3zdCasNJCTFqylqoak+w=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yya36wSgC+4XPvNoQ7d1+mDHopywO5A+CNOBaBlq+z/JABCwt8Z
	o6vKFxQC9S1LUSgVWJkFYXmp/juCUcETPNQ3xP6GrpDb93m05S1pIUM1AhuyXw==
X-Gm-Gg: ASbGncsTHJLBAIiHayc0W8nNko+Hgnvv2pXv96t+X8HzwHPJpqRmuOfe2mwnrqvkizG
	XFelQBnOj6wLUsjRcRTrW012OdowEU7yxAcZku6LowJkggWf7cUnW2fYB1SuEx1TXZ7R5BDc9Ln
	C0XmG7SvwwYLxdFLNsnEkvKD+S39CQ+b8z1j4b19DSpIwyf10mqzWJvX5q/dvlD7lRi7TwWNGYH
	v0K74Y+4ZA5AuLIezUylyQxHr0kUYkR/UFkKI3qg9NiEayg6PNshdx7OVs9o/z43LN9OGAgLaxZ
	KSpnuta3j3CmPYE7MD/UmV0BeLHC9zQLpE2beGeQYI3RHnDIlp0Ht66O8Sb4t5CneT9kG3TWIkb
	bz9ot7B5mlXWooo3DRBrwYxMzqBH0zA==
X-Google-Smtp-Source: AGHT+IHqwZ0/QiejxWovtti4wqsm5Zghvvk/jdzMbRgew9Pnu4wd0INoti+9boESqZeZgXuqgnUFZg==
X-Received: by 2002:a05:600c:511f:b0:43d:10c:2f60 with SMTP id 5b1f17b1804b1-43ecf9c4571mr13569425e9.24.1743752527071;
        Fri, 04 Apr 2025 00:42:07 -0700 (PDT)
Message-ID: <72cd6820-feb8-437c-afd3-4aeadef3e7d7@suse.com>
Date: Fri, 4 Apr 2025 09:42:05 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] xen: Consistently use 'static' first
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>, Julien Grall <julien@xen.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Nicola Vetrini <nicola.vetrini@bugseng.com>, consulting@bugseng.com,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250403204301.1658436-1-andrew.cooper3@citrix.com>
 <20250403214139.1671954-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: <20250403214139.1671954-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 03.04.2025 23:41, Andrew Cooper wrote:
> MISRA C:2012 Amendment 3 (which is under consideration, but not used by Xen
> yet) is more particular about having the storage class specifier first.
> 
> 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 Fri Apr 04 07:48:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 04 Apr 2025 07:48:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.937903.1338758 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0bnH-0001sB-Nl; Fri, 04 Apr 2025 07:48:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 937903.1338758; Fri, 04 Apr 2025 07:48: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 1u0bnH-0001s4-Kg; Fri, 04 Apr 2025 07:48:51 +0000
Received: by outflank-mailman (input) for mailman id 937903;
 Fri, 04 Apr 2025 07:48: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=56zs=WW=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u0bnH-0001ry-2v
 for xen-devel@lists.xenproject.org; Fri, 04 Apr 2025 07:48:51 +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 3ea0afcb-1129-11f0-9ffb-bf95429c2676;
 Fri, 04 Apr 2025 09:48:49 +0200 (CEST)
Received: by mail-wr1-x42c.google.com with SMTP id
 ffacd0b85a97d-3913d129c1aso1199108f8f.0
 for <xen-devel@lists.xenproject.org>; Fri, 04 Apr 2025 00:48:49 -0700 (PDT)
Received: from [10.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-39c301b8161sm3741541f8f.50.2025.04.04.00.48.48
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 04 Apr 2025 00:48: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: 3ea0afcb-1129-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743752928; x=1744357728; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=CtpPoJYyVZM1m2CjQQ5qkq2+3NFaWRVg3+NYDb5djZs=;
        b=K9u8kk05U6dRKHfokdHYbkwSLzJUYEH+EPjwEOK7Yu1+YNvnYEuDGBORJzIS3yo3K8
         w5pvc7e/eYdHr40Im29oil6nrivBFoYU6hNeGyJTp+YxbLZXPxSFFPNe8iOTbGVUx17P
         ZYM1EDfarCBJIBm6jd7BgLUnXuzvkAvzXgigGueNNN9xxkaT3hjbsgEPplCuvU+gf7Sx
         QqbyDhnGpcwEasUDr+o/OgNygexYB9IHdHGGwpBBGRoEY7clDLovtiyd78VTT4uAUajo
         Np9uO1BtSCEve97QhqF5JvzIGIt8pWprnjMyfjgC4DUkVGkI87MiJ8jl72UBh5Mjs36J
         9M0w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743752928; x=1744357728;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=CtpPoJYyVZM1m2CjQQ5qkq2+3NFaWRVg3+NYDb5djZs=;
        b=SMSqpO7VraOY7jAShbrjHm65DA47NtU1WCwCo5YAR990TbjgHV8zG7UJqoSuAhbDKB
         VHfgEbDm9gMqF/I75dKyyJaxkeC8pQHIQRZgjOzX42Hi5tVAEDJKLxO0Cv/TaWlAj9UB
         /XE5tnPl4cKyXSoAoBQr+RODk8GC/OXpW8tIPrGhVUtz//XuX+HM7AKq9+kh8sSYNTqN
         FwN3ftqlJNeGMRfNO2s/IsbTK5Gjjojea2izb2DMdiegU+F1xgGuCRM9Oxl/T3OJpH6D
         9L+uDBbLEQWFWnRr8vih9uGydoQ1gdBuHHUXHsRHLqE4XldltbfggB1c3H4ucFBh69cW
         L7GA==
X-Forwarded-Encrypted: i=1; AJvYcCW0wniGUtGYTJqFREpnFQX+brHxtvx62dPZmo1UIyGJQW4Ixie1BTKxHcF+rVcRJNC1JUx1tG8TXKk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxN6Myh+dfFBFkJed1v+s3uZ7cOLbKeMOkAk5tKMCds3njdefrT
	kj++GegbAg4iTLXiCAamdyhOMXNr0TnWchiAb3yoaTh9wNM7THA9hIWysUjU/w==
X-Gm-Gg: ASbGncsLnbVVBh9yCzzDT+KpsoZq/YuIBne2zFkFWUifcOEtHj+vQIaA2zsx6GSbIeU
	9GYELabFjVufDXmXAIpczwwu7rsbnzgGdNeM3rBwUxjK1ZZCmvSidE4dIoRCVENfT/V7HNFUvfL
	o5/AxwV71bKsj6hetVI8zuxi0KZ7MxwsPZCxYWaAHPX4YHjshYGNA0U212g5Rog4V+3YusRHNEc
	/yosJ9+ZvgEOHnRi3Dq3wkpF1B188ifZLLWfr5IJuvvXjhOzQ27j2t9ZjtQ3mtm2sUhS7ZfGrGA
	jUVuPYtEcxw7wwIaTtmz1I6x/zyb2tOMHivBhO/um1bx1X0HmON1jHHvp3jMWUrmIB3oIBv88ag
	wtQoX9XshgkHOq/R7ow1Peo46aJdrXkreGhgc3QKR
X-Google-Smtp-Source: AGHT+IE4YdG56wunnU01vj+zKGzh9sgHU92vuxui5RkrmtsIxulW28LcQkkxG73Khqs/aUH67ZIDlQ==
X-Received: by 2002:a05:6000:240a:b0:391:bc8:564a with SMTP id ffacd0b85a97d-39c2e6510f0mr5910642f8f.22.1743752928556;
        Fri, 04 Apr 2025 00:48:48 -0700 (PDT)
Message-ID: <9b3b8397-943e-4171-9ec4-27fe45ba1a60@suse.com>
Date: Fri, 4 Apr 2025 09:48:46 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/amd: Convert wrmsr_amd_safe() to use asm goto()
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: <20250403175744.1538469-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: <20250403175744.1538469-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 03.04.2025 19:57, Andrew Cooper wrote:
> Bloat-o-meter reports:
> 
>   add/remove: 0/0 grow/shrink: 0/2 up/down: 0/-29 (-29)
>   Function                                     old     new   delta
>   _probe_mask_msr                               99      94      -5
>   init_amd                                    2418    2394     -24
> 
> but that's because .fixup doesn't contain sized/typed symbols.  This also
> drops two "mov -EFAULT, %reg; jmp ...;" sequences too.  The net saving is -50.
> 
> wrmsr_amd_safe()'s return value is only checked against 0 (if at all), and
> because of this, the compiler can now avoid manifesting 0/-EFAULT entirely,
> and the %[fault] label simply lands on the right basic block.
> 
> Convert to Xen style while rewriting.
> 
> 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.  We use -EIO elsewhere for this purpose, and nothing in this
> logic cares.

{rd,wr}msr_safe() both use -EFAULT. What's "elsewhere" here?

> I was pleasently surprised by the manifestation of -EFAULT going away
> entirely.

I fear I don't understand this, given the -EFAULT is still there in the
new code.

Irrespective of these remarks:
Reviewed-by: Jan Beulich <jbeulich@suse.com>

Jan


From xen-devel-bounces@lists.xenproject.org Fri Apr 04 07:52:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 04 Apr 2025 07:52:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.937915.1338769 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0br5-0005Eu-7j; Fri, 04 Apr 2025 07:52:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 937915.1338769; Fri, 04 Apr 2025 07: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 1u0br5-0005En-2p; Fri, 04 Apr 2025 07:52:47 +0000
Received: by outflank-mailman (input) for mailman id 937915;
 Fri, 04 Apr 2025 07:52:46 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=56zs=WW=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u0br4-0005Eg-HT
 for xen-devel@lists.xenproject.org; Fri, 04 Apr 2025 07:52:46 +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 cac06101-1129-11f0-9ffb-bf95429c2676;
 Fri, 04 Apr 2025 09:52:44 +0200 (CEST)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-43cf034d4abso18325235e9.3
 for <xen-devel@lists.xenproject.org>; Fri, 04 Apr 2025 00:52:44 -0700 (PDT)
Received: from [10.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-43ec34ae0c5sm38675885e9.15.2025.04.04.00.52.42
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 04 Apr 2025 00:52:43 -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: cac06101-1129-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743753164; x=1744357964; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=QcY3//PJ1WPeXM90v4eyQhxXTyvAF1pYYiS2pveoGuI=;
        b=JQykXNeLa8KP3da7Feeu4AipzJook0AAgDEBDRZUfZq/p1BHPKfouW1XpZhhXVBU6A
         EFBTjTRFAE7SiLnS+zWL+nMOKXHdo5+n7sVUHf5S9cbtzesfbr20SVmezKZddGaCcdTQ
         VMiEmkbI2Jca84t1ZBXkOPHG9IhZxb980nT2FBE/lhV1dVh49lWPp/LBsV/lkrq+Sp4G
         VQDZEzCTre0nHRWx0SO0gwns1htu187qAve3cb+SwvsZuT+jvajvP6AqKZVv1FBfyp8P
         W1fBN3w38vFCjRYa1iHNUXDDyYXU+1lfKoIGDHSbAUh+yjo0UZ+O55RuvQmso4h8FeZ0
         G77w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743753164; x=1744357964;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=QcY3//PJ1WPeXM90v4eyQhxXTyvAF1pYYiS2pveoGuI=;
        b=DKXi6jD5JQMhzlHxgMqz6pbD3myP3CfyczIP10Gd5/kXT5sGsZTb7ytWSlUJdMVUst
         PQSz6X0lVfdStnnsOUX7872iUV0RkCAZQHwuBJ//GTY1YRtHzu5a0PUeMKDOdBLl64Bk
         2QunzAnsJkNRcJv3qrUnYsbWQWvK5yx7+FC0b6eZt8LJOMtNmIA+IX5Go6k8aEs8ofpd
         gcyvsTCtOrtU3RUjQo7CFK/qErm3KCcYNmLD61McnCwM4dnDdUVyUfRM1DPNMGPZt4+M
         +WhpY/E6/ZEkE4IVGF3eROIqkL3Iwc8wQE9ewWxrbSR5jI6jd9BGcaJ9IeTqhbuF9/ZG
         y3gQ==
X-Forwarded-Encrypted: i=1; AJvYcCVJtVLgVLLEFkQrDnGVMcg+cIdfQSoo/sRTKzlMMgWtPWo69EF98JPQuD7XvwZzb42PTjv4Pr4dHAE=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy/8TNIzkaA3RrI8vRA3wXuJFdRyVWrcMzaMk7wStss6EDPo1eP
	D/R8Yy1SlgWmjKySkWonihCeW2j5hUegZn7NZeUGi8jhzpuxEQvYiFzett1xng==
X-Gm-Gg: ASbGncullTTnW2+UfQNKiFYm7Sk2IwBiLPHFySNuJrwF3EfapMX8de6nIBjgotBYz/O
	PQXANzrBsUq1xw43wwzGZE5JzNrCaxYXGM/8o4Md0JAreFEjOFqxpenwEOVzzZQtLxNzbrrQ4BI
	NkZLELxuhHs3PHexwfBGNOe2dsBPVP9RKtYbwQO0NNbZ7oW2FNubaCZ+nZaKZ0+Z/kHV20sgOA0
	M/m9+OUtA1+nebE9jCyR1xQKLXLXD6entlsgU5k9paqTvCumcSOP6XKrJoSG8Xr7FRGKt0O6hc1
	3JOqwlVGz/KukObvo4CVnqK/qoZyKf0mnBYx/IF/PuJYr/O3SzW+WpR4bjjhAeChtSSQClqHqmj
	o+WNvKkrLkMw7Vtj9fXzILWFiRFg58Q==
X-Google-Smtp-Source: AGHT+IHTpaJG5j78XKVkstL5sycTbjF6h8kOA9ndCtqnv5LEs0Ckwg6fosWe1MWeqtW05BZxV/+aQw==
X-Received: by 2002:a05:600c:1d88:b0:43d:7a:471f with SMTP id 5b1f17b1804b1-43ecf8ece15mr21202555e9.18.1743753163675;
        Fri, 04 Apr 2025 00:52:43 -0700 (PDT)
Message-ID: <14ac3e72-d21d-4b45-a434-d123152c0113@suse.com>
Date: Fri, 4 Apr 2025 09:52:41 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1] xen/riscv: Increase XEN_VIRT_SIZE
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <e5fa4219ccf43125e2489cc8c49b4404e6ed22ce.1743434164.git.oleksii.kurochko@gmail.com>
 <54ebdcb7-071f-411f-803a-930dc330a497@suse.com>
 <32264ccb-e566-41e0-973f-5bc7d874f970@gmail.com>
 <9d7e1553-3af8-4fc3-a400-8714d9b68411@suse.com>
 <30d8e316-aff5-498a-b2bd-448e0b2518ae@gmail.com>
 <3c2127ec-63fb-457b-8229-fc8a2b9fbf00@suse.com>
 <a4eb8bcf-7043-4661-8879-cdb33d1ca252@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: <a4eb8bcf-7043-4661-8879-cdb33d1ca252@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 04.04.2025 09:31, Oleksii Kurochko wrote:
> 
> On 4/4/25 8:56 AM, Jan Beulich wrote:
>> On 03.04.2025 18:20, Oleksii Kurochko wrote:
>>> On 4/1/25 6:04 PM, Jan Beulich wrote:
>>>> On 01.04.2025 17:58, Oleksii Kurochko wrote:
>>>>> On 3/31/25 6:14 PM, Jan Beulich wrote:
>>>>>> On 31.03.2025 17:20, Oleksii Kurochko wrote:
>>>>>>> +        _AC(XEN_VIRT_START, UL) >> vpn1_shift;
>>>>>>> +    const unsigned long xen_virt_end_vpn =
>>>>>>> +        xen_virt_starn_vpn + ((XEN_VIRT_SIZE >> vpn1_shift) - 1);
>>>>>>> +
>>>>>>>         if ((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)) ==
>>>>>>> -           (_AC(XEN_VIRT_START, UL) >> (PAGETABLE_ORDER + PAGE_SHIFT)));
>>>>>>> +    BUILD_BUG_ON(XEN_VIRT_SIZE != MB(8));
>>>>>> Is it necessary to be != ? Won't > suffice?
>>>>> It could be just > MB(2). Or perphaps >=.
>>>>> = would make the build fail, wouldn't it?
>>> I just realized that BUILD_BUG_ON() condition is compared to zero so actually everything what
>>> will make the condition true will cause a build fail as inside it used !(condition).
>> ???
> 
> |BUILD_BUG_ON()| forces a compilation error if the given condition is true. Therefore, if the condition
> |XEN_VIRT_SIZE != MB(2)| is changed to|XEN_VIRT_SIZE > MB(2)|, the condition will always evaluate to true
> (assuming|XEN_VIRT_SIZE| is greater than 2 MB), which will result in a compilation error.

Well, it was you who used MB(2) in a reply, when previously talk was of MB(8),
and that to grow to MB(16). The BUILD_BUG_ON() is - aiui - about you having set
aside enough page table space. Quite possibly the need for this BUILD_BUG_ON()
then disappears altogether when XEN_VIRT_SIZE is properly taken into account
for the number-of-page-tables calculation. In no event do I see why the MB(2)
boundary would be relevant for anything going forward.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Apr 04 08:07:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 04 Apr 2025 08:07:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.937928.1338778 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0c4x-0000zy-Br; Fri, 04 Apr 2025 08:07:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 937928.1338778; Fri, 04 Apr 2025 08:07:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0c4x-0000zp-86; Fri, 04 Apr 2025 08:07:07 +0000
Received: by outflank-mailman (input) for mailman id 937928;
 Fri, 04 Apr 2025 08:07:06 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=56zs=WW=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u0c4w-0000zh-Ij
 for xen-devel@lists.xenproject.org; Fri, 04 Apr 2025 08:07:06 +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 ca6189d2-112b-11f0-9ffb-bf95429c2676;
 Fri, 04 Apr 2025 10:07:02 +0200 (CEST)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-43690d4605dso11663125e9.0
 for <xen-devel@lists.xenproject.org>; Fri, 04 Apr 2025 01:07:02 -0700 (PDT)
Received: from [10.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-39c301a0a90sm3693968f8f.21.2025.04.04.01.07.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 04 Apr 2025 01:07:01 -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: ca6189d2-112b-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743754022; x=1744358822; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=V9cC4/6Nx56k5u/OU29yv3NZMWQZ7a/TTzf+o5t6MrU=;
        b=WcByEIPe+3QR8MWaCSbbbNBqBjenajAoqG7L7VohvGVXCKSKk9uCKS0ABWnudsPdCr
         Qx/Ro2tGEEFPt9WcinSg8CDTy7TOyMIEKLJs3kTPMMS1fGQdf79mzhOr6trjF1/ut7td
         qTXkbBYNf3aGpBl1v8N1/o7lgDMalp1iI8yQWDAi2U9iO8QS4EgpV5NF8hWhsrWiWlP3
         x9V9k5LgJY5DZs7XqCMADNycuKNw9+M5Y4RAVZnJKMtq8rPeS/lKxB7VylocqYOscOlP
         XPp1QSHdS52V/wgSWuD/HKZGv0Afc90c5+lrHy3LDRnj8KZHTTplRh4PERgmMeXq7m+j
         pqxw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743754022; x=1744358822;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=V9cC4/6Nx56k5u/OU29yv3NZMWQZ7a/TTzf+o5t6MrU=;
        b=Xlb9lOs1aQ4QlwYwnn91U10GpKLzYKSRPO5GhOqK/ewpuTmT52ya3xP8bbqXToIbSY
         6FZ9pnWtmCZcXbE2z5WptFB0jhsfV7aBYoMwq9PWNLCVymf7uFlJ8Cd+ebJGZmVFrB4e
         ycqt4xIfbDd+z/L5xJh5MpEs9PRZG+NMsY5i3pQYRpcFTlgEookrvHduVpNd/2dOysx/
         r0zwOuIVqbQ56DuilrIjrj8wiKgX24K8R9Yya1gh4Qy2vhTgkWtvUiwoKbrPU5wWYyQ9
         KvZv2cLzd8ht/56gzZgj6ZmSUAI1hGbGioTikbpe+/IeKJGOZGyy82kSJwHkFyRbVi9d
         P9pA==
X-Forwarded-Encrypted: i=1; AJvYcCW6cSbXD/03fSzpdxs1qhfYvgPGD2QzKDbGE9ysurGJFKnBg/3SEU1xdcFkDih/cOf+7K/To8IRgbI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwrUKbffNlSC4G7am0h4bJeQzSzxlgqaeUo+s2Je1PrFj4RUavA
	X2N9isHXrF8nsFIkZq25QRRfd33bhQt0wzAYT5OomHLb62OB4ee9y1skqTVyfw==
X-Gm-Gg: ASbGncs8yb0peDOqNtqB+wRdbEym84ZN430bz6vKnaRXxQ0FFEKUKRtb+//md3ToVI+
	Y2g70VoztmNcoVh1mhQN6OQLrKLF3dbEIIhkP+V0Z4IC/hewoRO6gvcDZ4O9XMRu7U6G8wZJHVi
	ktZBjdiUOiweEqTO37ZmDyCFDa/aUk4rl0L1Crbey0JLaZEt16PxXaLCqcNK06ID/j6nPf6IqqD
	Qxyy6Mt2vorf7WRSTdDO590zoxa8BSo/wTQbqiHoXnZ/7RRSsZln3bXGyJ2t4s80IbB/wUjrIMO
	6tjqhnhDvnPw6PWKqN4cWcdLWPDUzBJl/7k7Z9eRQs96wYH9R1c4KO0UdaYYF1cPN3UwrN9Ca/O
	YkYaQ9oJLiR75/CxOCn/tKS37KEYZEA==
X-Google-Smtp-Source: AGHT+IGUPQmpF7Fv+nXkAslbU/N0jhb+hDckkfHFeYRoE0VlqUL01brmVeHfvgaKwRWCtHib+N5gFw==
X-Received: by 2002:a5d:584c:0:b0:391:43cb:43fa with SMTP id ffacd0b85a97d-39cba93cf0emr1782833f8f.51.1743754022014;
        Fri, 04 Apr 2025 01:07:02 -0700 (PDT)
Message-ID: <e8ca1efb-384f-4c60-94b2-95528301a156@suse.com>
Date: Fri, 4 Apr 2025 10:07:00 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC] xen/x86: allow overlaps with non-RAM regions
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 jason.andryuk@amd.com, Xenia.Ragiadakou@amd.com,
 Alejandro.GarciaVallejo@amd.com, xen-devel@lists.xenproject.org
References: <alpine.DEB.2.22.394.2504031755440.3529306@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.2504031755440.3529306@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 04.04.2025 03:01, Stefano Stabellini wrote:
> On one Sapphire AMD x86 board, I see this:
> 
> 
> (XEN) [0000003943ca6ff2]  [00000000f0000000, 00000000f7ffffff] (reserved)
> (XEN) [00000039460886d9]  [00000000fd000000, 00000000ffffffff] (reserved)
> [...]
> (XEN) [    4.612235] 0000:02:00.0: not mapping BAR [fea00, fea03] invalid position

I, too, see something like this on an SPR system. That's a firmware issue,
which hence first of all should be dealt with at the firmware side.

> Linux boots fine on this platform but Linux as Dom0 on Xen does not.
> This is because the pci_check_bar->is_memory_hole check fails due to the
> MMIO region overlapping with the EFI reserved region.

And then what's the actual, observable problem? On my system I haven't
noticed anything going wrong yet, albeit the affected device is also left
without a driver.

Also aiui you strictly mean PVH Dom0 here?

> --- a/xen/arch/x86/mm.c
> +++ b/xen/arch/x86/mm.c
> @@ -797,6 +797,9 @@ bool is_memory_hole(mfn_t start, mfn_t end)
>          if ( !entry->size )
>              continue;
>  
> +        if ( entry->type > 1 )
> +            continue;

I'm sorry to ask, but what's a literal 1 here? I'm pretty convinced we
would want to still object to overlaps with unusable ranges, for example.
Yet by open-coding what E820_RAM expands to you completely hide what this
check is about. Yes, this is an RFC, but even there such context is
important.

Furthermore my general take here is: We shouldn't simply silence issues
arising from firmware doing odd things. My take here is still the same
as the position I took when I still was maintainer of the EFI code in
Xen: We shouldn't by default work around such issues, when doing so may
negatively affect systems not exposing such odd behavior.

Finally a Misra-related observation while looking at this: Isn't
is_memory_hole() unreachable code in a !HVM configuration?

Jan


From xen-devel-bounces@lists.xenproject.org Fri Apr 04 08:43:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 04 Apr 2025 08:43:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.937941.1338787 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0cdo-000426-TN; Fri, 04 Apr 2025 08:43:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 937941.1338787; Fri, 04 Apr 2025 08: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 1u0cdo-00041z-Qo; Fri, 04 Apr 2025 08:43:08 +0000
Received: by outflank-mailman (input) for mailman id 937941;
 Fri, 04 Apr 2025 08:43: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=iWoU=WW=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1u0cdn-00041t-3l
 for xen-devel@lists.xenproject.org; Fri, 04 Apr 2025 08:43: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 d3b67d83-1130-11f0-9eaa-5ba50f476ded;
 Fri, 04 Apr 2025 10:43:05 +0200 (CEST)
Received: by mail-ed1-x52e.google.com with SMTP id
 4fb4d7f45d1cf-5e6167d0536so3191620a12.1
 for <xen-devel@lists.xenproject.org>; Fri, 04 Apr 2025 01:43:05 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-64-225.play-internet.pl.
 [109.243.64.225]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5f0880a45bdsm1942187a12.71.2025.04.04.01.43.03
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 04 Apr 2025 01:43:04 -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: d3b67d83-1130-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1743756185; x=1744360985; darn=lists.xenproject.org;
        h=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=nMdlDnFeE/ugQuOKWKolBfE2c+xXSu7MDrl9WQXcshg=;
        b=H0R2BVeTL4Ep3WWQDlLm8RVPEKjK4PoMZgo8V6U+/VaBheHflCXGtWzH3T+NT5D4yx
         84QTen+300uaIpxtgJR6Cu1/954irJO5/bhmHmFm+KYvsf0kn9ooVp0DRdHFQUiJfYw9
         alyrrm/HHrhaw3zUbtB1HFD45z0nQSrFS2r4NKVqeiYI07WcZALA33Cj6LTNP0OQttqf
         EdPw/C3r2fpFRQbSYgxuMMwqNvwYJwJyG1gFWz/HtSosESsD788xi6P5i7Owzu4olB0L
         1hk4VYCy4B3Tf5gD/tRFDuh9V0sK69lj1MbGLGe2VrwYhE6izzDF2L0gTFNngD9Pf+mb
         VCxQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743756185; x=1744360985;
        h=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=nMdlDnFeE/ugQuOKWKolBfE2c+xXSu7MDrl9WQXcshg=;
        b=RrWJurI8lWYh1Kqg/8yL5EKGmpde7+g6YFhP0uAMyr1JRAUzBzK+B7xbsFu7q6B3xb
         SlV+Uz8K8vD4bhkAZF1DBI8JYh8aEcHG3mwFgWyWtinPNUs8aSu5JAfD3fmmJvAgI96i
         cO+T8PnnSZLWyMA4VbknTjGoR5R/wtcyFOZA9RnUkl7W9uuxf/dODaMLSPJkXDqXm4qc
         6H3m/sRGZF1VGPR3u4FGKJI2KPsmWYR0ljnNFo/66J7rc3c3i4YJanfjtHubbAGmNXl+
         YyZO6dR1ZitjzwI649e5rnWSS20MfZF2MJv5kObAPaC+JA4axKNH+wy3+khyBSNt94W2
         5t0A==
X-Forwarded-Encrypted: i=1; AJvYcCUahxY62Zk+q2Y/IVQ9mgFBboupYx67VIxjgIfYDWK88wk2n5MBxJRc0Ad1R5BKTEV/nzBh/dU/TVI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxUeg/dmMf5t2zmDaPrXIKzJkwSXOXiEfrUHGrurJKfndc7nPNE
	6PU7OHKfksRnJEM1am/TsjGLE3ds+lrji2XyaM9/LPcQgLKRbEal
X-Gm-Gg: ASbGncugY6+QVsCMjjETiCEvjySpTe3mX+ASGB4xzXXPOt6BfGGlfk8N+6b8nFmD4gO
	HTmA40HiKTm53Z9z18wmltorZBQBbQjRenQk1oEz2k5eoIEHuHlYMzAzbzQCL7SvvAk0CLp5ryo
	bdov4KGHyqCE7+csuZgNOG3WdiFWSwybWvtgl/PbxGq0eNR5x1YpR1FCd1tCfLORck6h/W6BntA
	hyPUndbalxAxuKD3rGdsUEozek3wXjwTeBTL7CNJm6kDkxxGp7/oPdf5jufTIF5a42Uqlr2cHrV
	XU0DoqXufyy1wy8xxtcciJoIhQDTDULV2TgIhOcLRdYisfZZUwQFZrWGLopPn5B+uW+J4PCuumX
	D0RNgIaqX1HcD1R5QuRVeCls5KwkuWZs=
X-Google-Smtp-Source: AGHT+IEHTyJ5tHtqj733uXfBNO2G4B2FU3pL1edfgEnysxMnpkFXh3GXyjk14+1hOV+RpizrQDrWKQ==
X-Received: by 2002:a05:6402:2708:b0:5f0:9eb3:8e71 with SMTP id 4fb4d7f45d1cf-5f0b3e34eafmr1943326a12.27.1743756184949;
        Fri, 04 Apr 2025 01:43:04 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------3yWG1vJgau96FWZoQYQnAYCa"
Message-ID: <d954c167-8243-43ab-9bfb-2e47c8ea171a@gmail.com>
Date: Fri, 4 Apr 2025 10:43:02 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1] xen/riscv: Increase XEN_VIRT_SIZE
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <e5fa4219ccf43125e2489cc8c49b4404e6ed22ce.1743434164.git.oleksii.kurochko@gmail.com>
 <54ebdcb7-071f-411f-803a-930dc330a497@suse.com>
 <32264ccb-e566-41e0-973f-5bc7d874f970@gmail.com>
 <9d7e1553-3af8-4fc3-a400-8714d9b68411@suse.com>
 <30d8e316-aff5-498a-b2bd-448e0b2518ae@gmail.com>
 <3c2127ec-63fb-457b-8229-fc8a2b9fbf00@suse.com>
 <a4eb8bcf-7043-4661-8879-cdb33d1ca252@gmail.com>
 <14ac3e72-d21d-4b45-a434-d123152c0113@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <14ac3e72-d21d-4b45-a434-d123152c0113@suse.com>

This is a multi-part message in MIME format.
--------------3yWG1vJgau96FWZoQYQnAYCa
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 4/4/25 9:52 AM, Jan Beulich wrote:
> On 04.04.2025 09:31, Oleksii Kurochko wrote:
>> On 4/4/25 8:56 AM, Jan Beulich wrote:
>>> On 03.04.2025 18:20, Oleksii Kurochko wrote:
>>>> On 4/1/25 6:04 PM, Jan Beulich wrote:
>>>>> On 01.04.2025 17:58, Oleksii Kurochko wrote:
>>>>>> On 3/31/25 6:14 PM, Jan Beulich wrote:
>>>>>>> On 31.03.2025 17:20, Oleksii Kurochko wrote:
>>>>>>>> +        _AC(XEN_VIRT_START, UL) >> vpn1_shift;
>>>>>>>> +    const unsigned long xen_virt_end_vpn =
>>>>>>>> +        xen_virt_starn_vpn + ((XEN_VIRT_SIZE >> vpn1_shift) - 1);
>>>>>>>> +
>>>>>>>>          if ((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)) ==
>>>>>>>> -           (_AC(XEN_VIRT_START, UL) >> (PAGETABLE_ORDER + PAGE_SHIFT)));
>>>>>>>> +    BUILD_BUG_ON(XEN_VIRT_SIZE != MB(8));
>>>>>>> Is it necessary to be != ? Won't > suffice?
>>>>>> It could be just > MB(2). Or perphaps >=.
>>>>>> = would make the build fail, wouldn't it?
>>>> I just realized that BUILD_BUG_ON() condition is compared to zero so actually everything what
>>>> will make the condition true will cause a build fail as inside it used !(condition).
>>> ???
>> |BUILD_BUG_ON()| forces a compilation error if the given condition is true. Therefore, if the condition
>> |XEN_VIRT_SIZE != MB(2)| is changed to|XEN_VIRT_SIZE > MB(2)|, the condition will always evaluate to true
>> (assuming|XEN_VIRT_SIZE| is greater than 2 MB), which will result in a compilation error.
> Well, it was you who used MB(2) in a reply, when previously talk was of MB(8),
> and that to grow to MB(16). The BUILD_BUG_ON() is - aiui - about you having set
> aside enough page table space. Quite possibly the need for this BUILD_BUG_ON()
> then disappears altogether when XEN_VIRT_SIZE is properly taken into account
> for the number-of-page-tables calculation. In no event do I see why the MB(2)
> boundary would be relevant for anything going forward.

Also, doesn’t|BUILD_BUG_ON()| affect how the|ASSERT()| that follows it is written?

The changes, at the moment, look like:
+    const unsigned int vpn1_shift = PAGETABLE_ORDER + PAGE_SHIFT;
+    const unsigned long va_vpn = va >> vpn1_shift;
+    const unsigned long xen_virt_start_vpn =
+        _AC(XEN_VIRT_START, UL) >> vpn1_shift;
+    const unsigned long xen_virt_end_vpn =
+        xen_virt_start_vpn + ((XEN_VIRT_SIZE >> vpn1_shift) - 1);
+
      if ((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)) ==
-           (_AC(XEN_VIRT_START, UL) >> (PAGETABLE_ORDER + PAGE_SHIFT)));
+    BUILD_BUG_ON(XEN_VIRT_SIZE != MB(16));
+    ASSERT((va_vpn >= xen_virt_start_vpn) && (va_vpn <= xen_virt_end_vpn));


If|XEN_VIRT_SIZE| is greater than|GB(1)|, then|xen_virt_end_vpn| may be calculated
incorrectly.

For example, if|XEN_VIRT_START| is|0xFFFFFFFF80000000| and|XEN_VIRT_SIZE| is|0x40200000|,
then|(XEN_VIRT_SIZE >> vpn1_shift)| equals 513, whereas|va_vpn| is always in the range [0, 511],
but xen_virt_end_vpn will be greater then 511.

So shouldn't it  be checked before ASSERT() that XEN_VIRT_SIZE is <= GB(1):
   BUILD_BUG_ON(XEN_VIRT_SIZE <= GB(1))?

~ Oleksii


--------------3yWG1vJgau96FWZoQYQnAYCa
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 4/4/25 9:52 AM, Jan Beulich wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:14ac3e72-d21d-4b45-a434-d123152c0113@suse.com">
      <pre wrap="" class="moz-quote-pre">On 04.04.2025 09:31, Oleksii Kurochko wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">
On 4/4/25 8:56 AM, Jan Beulich wrote:
</pre>
        <blockquote type="cite">
          <pre wrap="" class="moz-quote-pre">On 03.04.2025 18:20, Oleksii Kurochko wrote:
</pre>
          <blockquote type="cite">
            <pre wrap="" class="moz-quote-pre">On 4/1/25 6:04 PM, Jan Beulich wrote:
</pre>
            <blockquote type="cite">
              <pre wrap="" class="moz-quote-pre">On 01.04.2025 17:58, Oleksii Kurochko wrote:
</pre>
              <blockquote type="cite">
                <pre wrap="" class="moz-quote-pre">On 3/31/25 6:14 PM, Jan Beulich wrote:
</pre>
                <blockquote type="cite">
                  <pre wrap="" class="moz-quote-pre">On 31.03.2025 17:20, Oleksii Kurochko wrote:
</pre>
                  <blockquote type="cite">
                    <pre wrap="" class="moz-quote-pre">+        _AC(XEN_VIRT_START, UL) &gt;&gt; vpn1_shift;
+    const unsigned long xen_virt_end_vpn =
+        xen_virt_starn_vpn + ((XEN_VIRT_SIZE &gt;&gt; vpn1_shift) - 1);
+
        if ((va &gt;= DIRECTMAP_VIRT_START) &amp;&amp;
            (va &lt;= DIRECTMAP_VIRT_END))
            return directmapoff_to_maddr(va - directmap_virt_start);
    
-    BUILD_BUG_ON(XEN_VIRT_SIZE != MB(2));
-    ASSERT((va &gt;&gt; (PAGETABLE_ORDER + PAGE_SHIFT)) ==
-           (_AC(XEN_VIRT_START, UL) &gt;&gt; (PAGETABLE_ORDER + PAGE_SHIFT)));
+    BUILD_BUG_ON(XEN_VIRT_SIZE != MB(8));
</pre>
                  </blockquote>
                  <pre wrap="" class="moz-quote-pre">Is it necessary to be != ? Won't &gt; suffice?
</pre>
                </blockquote>
                <pre wrap="" class="moz-quote-pre">It could be just &gt; MB(2). Or perphaps &gt;=.
= would make the build fail, wouldn't it?
</pre>
              </blockquote>
            </blockquote>
            <pre wrap="" class="moz-quote-pre">I just realized that BUILD_BUG_ON() condition is compared to zero so actually everything what
will make the condition true will cause a build fail as inside it used !(condition).
</pre>
          </blockquote>
          <pre wrap="" class="moz-quote-pre">???
</pre>
        </blockquote>
        <pre wrap="" class="moz-quote-pre">
|BUILD_BUG_ON()| forces a compilation error if the given condition is true. Therefore, if the condition
|XEN_VIRT_SIZE != MB(2)| is changed to|XEN_VIRT_SIZE &gt; MB(2)|, the condition will always evaluate to true
(assuming|XEN_VIRT_SIZE| is greater than 2 MB), which will result in a compilation error.
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Well, it was you who used MB(2) in a reply, when previously talk was of MB(8),
and that to grow to MB(16). The BUILD_BUG_ON() is - aiui - about you having set
aside enough page table space. Quite possibly the need for this BUILD_BUG_ON()
then disappears altogether when XEN_VIRT_SIZE is properly taken into account
for the number-of-page-tables calculation. In no event do I see why the MB(2)
boundary would be relevant for anything going forward.</pre>
    </blockquote>
    <pre data-start="105" data-end="189" class="">Also, doesn’t <code
    data-start="119" data-end="135">BUILD_BUG_ON()</code> affect how the <code
    data-start="151" data-end="161">ASSERT()</code> that follows it is written?

The changes, at the moment, look like:
+    const unsigned int vpn1_shift = PAGETABLE_ORDER + PAGE_SHIFT;
+    const unsigned long va_vpn = va &gt;&gt; vpn1_shift;
+    const unsigned long xen_virt_start_vpn =
+        _AC(XEN_VIRT_START, UL) &gt;&gt; vpn1_shift;
+    const unsigned long xen_virt_end_vpn =
+        xen_virt_start_vpn + ((XEN_VIRT_SIZE &gt;&gt; vpn1_shift) - 1);
+
     if ((va &gt;= DIRECTMAP_VIRT_START) &amp;&amp;
         (va &lt;= DIRECTMAP_VIRT_END))
         return directmapoff_to_maddr(va - directmap_virt_start);
 
-    BUILD_BUG_ON(XEN_VIRT_SIZE != MB(2));
-    ASSERT((va &gt;&gt; (PAGETABLE_ORDER + PAGE_SHIFT)) ==
-           (_AC(XEN_VIRT_START, UL) &gt;&gt; (PAGETABLE_ORDER + PAGE_SHIFT)));
+    BUILD_BUG_ON(XEN_VIRT_SIZE != MB(16));
+    ASSERT((va_vpn &gt;= xen_virt_start_vpn) &amp;&amp; (va_vpn &lt;= xen_virt_end_vpn));


If <code data-start="754" data-end="769">XEN_VIRT_SIZE</code> is greater than <code
    data-start="786" data-end="793">GB(1)</code>, then <code
    data-start="800" data-end="818">xen_virt_end_vpn</code> may be calculated
incorrectly.

For example, if <code data-start="866" data-end="882">XEN_VIRT_START</code> is <code
    data-start="886" data-end="906">0xFFFFFFFF80000000</code> and <code
    data-start="911" data-end="926">XEN_VIRT_SIZE</code> is <code
    data-start="930" data-end="942">0x40200000</code>,
then <code data-start="949" data-end="980">(XEN_VIRT_SIZE &gt;&gt; vpn1_shift)</code> equals 513, whereas <code
    data-start="1001" data-end="1009">va_vpn</code> is always in the range [0, 511],
but xen_virt_end_vpn will be greater then 511.

So shouldn't it  be checked before ASSERT() that XEN_VIRT_SIZE is &lt;= GB(1):
  BUILD_BUG_ON(XEN_VIRT_SIZE &lt;= GB(1))?

~ Oleksii


</pre>
  </body>
</html>

--------------3yWG1vJgau96FWZoQYQnAYCa--


From xen-devel-bounces@lists.xenproject.org Fri Apr 04 08:48:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 04 Apr 2025 08:48:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.937956.1338798 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0cjD-0004hy-KX; Fri, 04 Apr 2025 08:48:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 937956.1338798; Fri, 04 Apr 2025 08:48: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 1u0cjD-0004hr-Hl; Fri, 04 Apr 2025 08:48:43 +0000
Received: by outflank-mailman (input) for mailman id 937956;
 Fri, 04 Apr 2025 08:48:41 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=YWcl=WW=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1u0cjB-0004hl-MU
 for xen-devel@lists.xenproject.org; Fri, 04 Apr 2025 08:48:41 +0000
Received: from PA4PR04CU001.outbound.protection.outlook.com
 (mail-francecentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20a::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9ab565a9-1131-11f0-9eaa-5ba50f476ded;
 Fri, 04 Apr 2025 10:48:39 +0200 (CEST)
Received: from DU2P250CA0015.EURP250.PROD.OUTLOOK.COM (2603:10a6:10:231::20)
 by DU0PR08MB8322.eurprd08.prod.outlook.com (2603:10a6:10:40d::5) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.44; Fri, 4 Apr
 2025 08:48:34 +0000
Received: from DB1PEPF000509EC.eurprd03.prod.outlook.com
 (2603:10a6:10:231:cafe::cf) by DU2P250CA0015.outlook.office365.com
 (2603:10a6:10:231::20) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8606.26 via Frontend Transport; Fri,
 4 Apr 2025 08:48:34 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DB1PEPF000509EC.mail.protection.outlook.com (10.167.242.70) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8606.22
 via Frontend Transport; Fri, 4 Apr 2025 08:48:33 +0000
Received: from DB7PR08MB2987.eurprd08.prod.outlook.com (2603:10a6:5:1c::25) by
 AS2PR08MB9101.eurprd08.prod.outlook.com (2603:10a6:20b:5fd::15) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.50; Fri, 4 Apr
 2025 08:47:58 +0000
Received: from DB7PR08MB2987.eurprd08.prod.outlook.com
 ([fe80::d53f:b16d:70a5:8668]) by DB7PR08MB2987.eurprd08.prod.outlook.com
 ([fe80::d53f:b16d:70a5:8668%4]) with mapi id 15.20.8583.041; Fri, 4 Apr 2025
 08:47:58 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9ab565a9-1131-11f0-9eaa-5ba50f476ded
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=jkkeV+2ibPp9TdCJOVrDgGFZysf1fW7M/QFM73tGaM529auMRL+YwI4Y2VUIAHoWnkfEw+xQco19dOi/mN+l3MAZ7tG/Bt6XwHGVRrtoLddJoVdsxgLTjZ8sJAZTO/KA7csgsU9jX4RVx2gCt9jVj1+tIde1dQWrwGSrzRtJSsuR3txncW9ogAU2Ew9ejzwAn0ki91eNwbUJLiqn7MrZqY7HNoAXG0VeMrUyCmkZ3wFNhx17Ge5RwuU4AeLiwKFgavYAFQrWbs20+70yfw2LHEyW9miVzAqWaolIrL3sTkTaunYLEAOE6ZJoCzKjrHlklIyzQQlbrvc+sQzTILa12g==
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=S9DgsYlvnjv/AwiHinyPUoFGfa2bfYT7PouZ1r+EIFs=;
 b=KLkvb+3yKtxIJceCUBcukydyfvHhAGoQSyly5M2taRMxVGr1cU3vDeb1BWajWuslAHBbw+DoghFEcffh7kIWVc8fikaYBXqXlV1MCeZYLt7wFfivLPTAlVfS7j04eFYYHiGywhA86wFVXO83u3v5jnazyyZSsj9EYzpMKEt6DbcGQKiYh0KU+5GmScBTOF3V9K6yz8dVPQ9V1SzVDbaZ/zOc4wSfaLAq7yTz62oDXMheBq2KCJlKFbI0j586flzG1fPdxKCvTAJVVLZC2CN98WXgtPVOYUuelRkDeafSwzbjmxGgSyZlb51NpTlCQjuCY0PcB3LZX5Gn/5QzbG6e0w==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=fail (sender ip is
 4.158.2.129) smtp.rcpttodomain=amd.com smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=S9DgsYlvnjv/AwiHinyPUoFGfa2bfYT7PouZ1r+EIFs=;
 b=LcGmbKbtWzOIv4WR+kaGYgX6XG7E8pxIenqxj1QdHExS1M+QpYBm1z6zFOyfqSjFLxMyTpezbj/WJGiQ2f91EsdPTZeD5yPzmBfFs2I4VeR+1szwcR080j7LOu8UXVx8uBvMezx3l8lLhEGHXrsa+9NYLPDA38S4z6ZGKyDiX3Q=
X-MS-Exchange-Authentication-Results: spf=fail (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Fail (protection.outlook.com: domain of arm.com does not
 designate 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com;
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=VYazvq73dnzhIGcK78jIN7O1pQECKGJc6mRQsoVAdRHB4uiTL8IufXFw9XgbZFvLpx45dGjD2Xi73iE0FSAklbqMWhHC0ntavybfxJUTqmNqJGrGjTVmmyoHh+ufCv2DsQwj3SLCzujGz7e+9KunQFWhZEoBwsxAZUsmclGp7xQWui1EPqlblke2r9d1xtVmmBLLUZA8eYAM40M6fu1r3f52mKzwE/6f10EuPicONf0ZGy6Rj/di20am9yY5CewBhURz03eF3APxn+Sw9oKxYUk/bR/+fuHps224/hAmSIkY5DcKGcgSt0WH2p1dRJVs0LwlFbDuulhxdDw2mCRuxQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=S9DgsYlvnjv/AwiHinyPUoFGfa2bfYT7PouZ1r+EIFs=;
 b=Ngob0RluAYbitTy/0uALMj5ghFgBAiDcAX6Jv3Ah84dp1ekV6+O4Hs5ysi2vKGa0V9E0ZxxxW7XEOk/U7hs6K67Y/RajxkZp+AjiGnpVyypyVaQ2tvSML1NVZlASEfcVwDIZZiM3VPr1fCfVQz59kOYvzep++htn0q1gcnuTL3SVYHAANd7Sa0aCETEAtanSr/j80f04vPRWT3C0e5BJ5lK2Yq0Vyftr07KrczWf4AXLRlu2R9Jim9pazkX2c2IqdAVSPk81c4sSt+DuQZjfMfwiI1Nh5JT+6AYheFAX7+m97J2MeKNfXwaUrC6q3/0z2kG1G4tb8f6p7K08OCUBrg==
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=S9DgsYlvnjv/AwiHinyPUoFGfa2bfYT7PouZ1r+EIFs=;
 b=LcGmbKbtWzOIv4WR+kaGYgX6XG7E8pxIenqxj1QdHExS1M+QpYBm1z6zFOyfqSjFLxMyTpezbj/WJGiQ2f91EsdPTZeD5yPzmBfFs2I4VeR+1szwcR080j7LOu8UXVx8uBvMezx3l8lLhEGHXrsa+9NYLPDA38S4z6ZGKyDiX3Q=
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 v4 0/3] Enable early bootup of Armv8-R AArch32 systems
Thread-Topic: [PATCH v4 0/3] Enable early bootup of Armv8-R AArch32 systems
Thread-Index: AQHbpLu5GfFGjlHeZU6shwRT92O93bOTMuuA
Date: Fri, 4 Apr 2025 08:47:58 +0000
Message-ID: <6E6B9795-B3AC-4BEA-88CA-091F4608652D@arm.com>
References: <20250403171241.975377-1-ayan.kumar.halder@amd.com>
In-Reply-To: <20250403171241.975377-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.400.131.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DB7PR08MB2987:EE_|AS2PR08MB9101:EE_|DB1PEPF000509EC:EE_|DU0PR08MB8322:EE_
X-MS-Office365-Filtering-Correlation-Id: 9f74e014-f321-4a02-8157-08dd73557b1e
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?MGdPVGx4RWRwRGhISkxOaGE0OXFiZW5UL0piVHZTYmtJU3BpZmlxSmpyZFAr?=
 =?utf-8?B?NCtyTllOaCtaME91blVjbkFiVmVzcnhpY2xrSzZMUEYyZjhoVE4zQkNrNTBN?=
 =?utf-8?B?NlZlUjdQMWJwSFR4c1NFazc2a0RGeEIwaTJjMUJVbDNBdFV5aHhXOVRXd2lX?=
 =?utf-8?B?RW1ZWEpqVWpPMCtxNEc0YlZWY0QrOFhTMG5tcEdEMmdvdmFGSGN0eGhJQzVL?=
 =?utf-8?B?OVpxUWhvSDNuK2wrYjZXNThQbDB3NnF0OFljS2xtT0hyMUtQeTluTkM5YStp?=
 =?utf-8?B?WWV1WDB1RC9YZzduZk1xekZUWW9DTjdqNkdFdFYveG5MZXNSQUpJQzNmRWtk?=
 =?utf-8?B?d1hnNjJHRlVmVzFsVnRNTVBNWEJGOHRtY1RBUWEvSHNkZlp4Zit1amJrRlRE?=
 =?utf-8?B?VCt1Y0dNRlRrTFNqSFl4YjBqbTVXMUJ2VEpvdW82T1liOXdGb3EvdE9Hb05P?=
 =?utf-8?B?U1hOb05KZmFzVzRDOE8wallaUHJhRjBSYnFEUEtJUUdLUEJxbExYYTEwNmJL?=
 =?utf-8?B?K0pSb2dESnVHYzVCa1plSFJtdG90eDFFc0RMSzN1c0tvWVdzWnlOS3Rqa1lC?=
 =?utf-8?B?MWcrbEY0MklmVEdJdE1ITWY2T29DK1YrSEUvZVZ5cDl5WjZnSzV4ODFmbFBD?=
 =?utf-8?B?WWNaTUdqbU5Sc3VPMk1lR3p1blBDc0g4eVV3Z1lIOHRIejZwSG9lVHJGdXFF?=
 =?utf-8?B?VWd0MmpERUlrWmFGRXBLRks4cllDN29NWm0xYUlVVEEyU3U2aTIxSU5ybUY1?=
 =?utf-8?B?aStxcG9OZ1VpdGdzRStwRUhHTjE1d2hMYXBXQTY5M1hTZHJZYVFHWVlXbDgr?=
 =?utf-8?B?WnM4R3dGVXUwZlo4VWRDajJSc3N3dDF2c2hvSkhIRU1iVFp6NnNnU3pUY2hp?=
 =?utf-8?B?bW1DUDBwZ0FWNzUzN1R6T01WWTRQR2dCdzJCeTRtazNxejA0dDQ2MWhMRHgz?=
 =?utf-8?B?aEU5NHBsVWl6Zmo4VnBXQzlzWnRQdnk2d0FVbm9CelVweHpyTEJNc29PcHFs?=
 =?utf-8?B?Q3BxNWhPSllrOE5veDlhV1N2VjVsNlZLVWdndjFmRlRFQktpRXdUMHlFUmdp?=
 =?utf-8?B?cFp1UFZPM25ra1duTW1hRDVwQzV1MVFDS0VjNDdLdjlzOEtGM2MrOFREOVlj?=
 =?utf-8?B?VzZvZmM1QUVsMHV6ZmpkeUpYMERub2NGallnWFE4Zks1QWZMcytTSmhSWDdh?=
 =?utf-8?B?ci9ob3IycyswT1RIRHAzcGRpSzY3alFLRXgzU0YyekpGZERCQ2FHOC94SU8x?=
 =?utf-8?B?Y0tDQnRhSGMzUjVEMXBMcCtVQ2ZDaHBkZjZVM3ZFL01ScWNLVlRVTnQxenJV?=
 =?utf-8?B?dkRsZUJFS3NnL2NlOUtzVXNYa3NDb2w2YmwyakRLRnRPMTdvZDI3aVZTOTZT?=
 =?utf-8?B?ak5UR3JFUkcvUXF0QmFnMHRObkIwZjUrdi9rU3E0SU5wUmEwd3F2TjQxaXFP?=
 =?utf-8?B?Y2hEYWdJQ3FuQXMreEI5WGF5YmJPZHhiK001YlkxckwyL2FqekVPRkpiQnRL?=
 =?utf-8?B?WlJ1RW41b1FNSStCQUVqaGM0elZuK1pTaWJZamFidDFoaEYvd01rbUFnOHZy?=
 =?utf-8?B?RXdmcDFxVU42bU9CVS82b1B2T1M5bmR1T1NpU255N0thMytkMXRZYUpSS2FY?=
 =?utf-8?B?Q21FcFdlZWxvTnNsRC8zV1BqTThCWDkzYXJRNUlUUWpXWFYxUmdUckp5WEFv?=
 =?utf-8?B?QzczTE84TWNiRHhQTGt0Ymh6MlZlL3dvZHFYVVd6WDRGMjBSOFAzUVdMVG9x?=
 =?utf-8?B?Q1NJQ3ExcjFqeTJrRjBvV3hlVHR6VDFsTmhYUEsraUczdUxUSnYxTUI4S1Zu?=
 =?utf-8?B?dEJWcnhrUlh1S2o3VXBTS3UvVEpyZGw1RE1rSkJURk82MVJQbkhCSjduelVh?=
 =?utf-8?B?MWdmTHJIWHlqcDZPZlJFKzR3K0F2eGlncE5nV3FvMnF5bkJQRDYyTXJ0QkxY?=
 =?utf-8?Q?36KL/NedE2fffzgz7NihYoU0eb5tO3lK?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB7PR08MB2987.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: <E5A6B9FB233C9A468371667113363511@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR08MB9101
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB1PEPF000509EC.eurprd03.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	62190c69-9136-478f-536b-08dd73556651
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|14060799003|82310400026|35042699022|36860700013|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?MnE0SkowT0NONHAvekRSekZHajV1em5FcjJFSVVJS1BUWnJaeU9xbUtEWTIr?=
 =?utf-8?B?OGdaREFnNlNIRkU5Y1lueVNvbkE2SnFUU2hWV2UzU3JNUnBZVE5aMGtuN2hG?=
 =?utf-8?B?OTg1TFRFUnQ2TVZ2dER1SEtvOHVBajhEOGlVVk55U0pQckRvYmpzaUV3Wm41?=
 =?utf-8?B?NTdrS3ZKOHkxTk82TWp3anRtVklRaEQyTFZFSlU5QVRiVi9KZ0haTmxXOGpN?=
 =?utf-8?B?TGFKa0twdTFNZDdrQnkwOHVvVzZQRittSjhRdXFXRTBkdElwK3ZrTFZiZnZu?=
 =?utf-8?B?cG5OYVVMWGdBSW52cHgyRFc0ZlVENG1MSzlxYTZ1QVlzT0pyZGNha2RycTFT?=
 =?utf-8?B?S2wycmZKVXlRcFdvRVVzY2dCTmxtK0lTSnBmUmdmUEdldi9MWnNMcmNzTGlz?=
 =?utf-8?B?SXFIV255RS95SXBOZ3VHWjdOSzBpeG1YN0E5MndyWUVGaGxCbjI2cDVIVFl0?=
 =?utf-8?B?TEZUVXoxTk9hdlNsdllaT3dvUEZkbzNoNzFnalo4RlhjRm9YTktneTRYa1dP?=
 =?utf-8?B?d09jMWdmTHI5RVI2L2RXUERHVlhVZS9ndEdBS21zQmN5Q2xXZzJNRVU3OWNs?=
 =?utf-8?B?VkRHSmVoZ3BxTzN2QW5wRUlEV0cwamJ1SzN3dURYc2R5SXlBWllpdFk0QUZR?=
 =?utf-8?B?OGg4NWk1MW9iT09IQUp2N052ZjNCTUhRdVhMSlZ0d0lyVHV3VWxxNHA2WnNs?=
 =?utf-8?B?NDR0NHVJY3ZYb2MwdnF1SHFkS2M5S1FyNUtrTFovUW1YcERoL0xiYVR6YzM2?=
 =?utf-8?B?VCs3UUprUnNMN0lkdWFoRExBMzFJUVZ2VU5RQnlYT3RhVGFad0s2V1RWbGxW?=
 =?utf-8?B?SjBQeVhsdWxOem42Q3I0VXAzekd4VWRibS93U0JickZ0bWx5TzFzbmxUa1ht?=
 =?utf-8?B?R05zVTJQNllka3J4K3l2NEFBQmRnN2Y2dU1kaEw3bGVrd0VVbW1ZMEFraEcx?=
 =?utf-8?B?cWtkV1B3RTRxOXlqZW5iSDM4ZFhydjRiZTkvdEtENVpOZEdxMzZnaWlPb2Q2?=
 =?utf-8?B?Wmh5UVdKelJ3L1dXSGtDNzJGQWprdUVVNGs2cFduQklTd3gyNHUzc1l0Z1pU?=
 =?utf-8?B?aTRVRjQva0E1U2prWUdqK3VrZ1dCbVdyUkRZM2JZUStwSlFJMlN2MWIyR1FR?=
 =?utf-8?B?dUd1OTNtVG5WSTI5aVpyUllXL09NMlkzRmVxS0lVWGdUTjZmcXBjbjlGTGZj?=
 =?utf-8?B?bVd6Zi9qNGlLbEU1bVplWFFYZlViNCtzQlpPZWVveE56dEorUU8zamZ2VSt6?=
 =?utf-8?B?dWM4b04xR0lNZFk4NkJVMDZiTlRRc0YzdnBMSnVnMkkrcmIzaCtUYWFDQ1Y2?=
 =?utf-8?B?RmU2N1BxMFFneDFXcEFRdmorMGx5eG5VTUFDNlQ0SXN5NmNxU1JjZkw5a0NU?=
 =?utf-8?B?WTlrbWxkQ1poUHdLeDlzL041NndKUnFGSlk1UTVnekt6WTh6NVFSc3dmbHZW?=
 =?utf-8?B?L0NXUEUrVDBRbVM1UkZkdFhwcThidXZmZlJLRFRlK21DeVFPT2QzQkpTdEJ5?=
 =?utf-8?B?ekFqNzQwc045SVRhL0ladHBQWE4wUWNWalM1OHg4b2RJR0duNU5uSGlRMml0?=
 =?utf-8?B?Mm14N1BnNW96ZlV5VEhpN1gxdXd1bFNQV0Y5cm1VbTh4czJZR2RaV01KNm4y?=
 =?utf-8?B?d0p2YzZVQnlkOEM4WC9aVkFZeXBYNXcrTmpnajZONzg4MXUvVWMra0pMMm83?=
 =?utf-8?B?WHMzb0ViR3YrOVpwOGpnM09ZUlZzTDI2R0ZpREZUdjkwbWc4cnhjb2lpQ3M5?=
 =?utf-8?B?dFlwN0ZDSVMrV3pRRGYwYlR6QUM0bjMreGZIZFU2MzVia255MDd6NTQveFBP?=
 =?utf-8?B?SURraFRhdTczRE1QTFIzQ2s4NjJSVTlFRVJ0Qks1YVVxM1FzKzE1TDhyUWE4?=
 =?utf-8?B?RmZxVUxwWnNSbEplNTEzRjByTjJzNWppNGQxSXpVWTJQMTAweHA4SGFqTTJW?=
 =?utf-8?B?SXRlZjJQZWhiNTBYM1FkcGNhZHJUTjNwRlUyRDV0cEZoeVgxRDBrZVRWMVdz?=
 =?utf-8?Q?qP6H/nSL9iw0speg1pwYIOlX9yBuyo=3D?=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(1800799024)(14060799003)(82310400026)(35042699022)(36860700013)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Apr 2025 08:48:33.0552
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 9f74e014-f321-4a02-8157-08dd73557b1e
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DB1PEPF000509EC.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB8322

SGkgQXlhbiwNCg0KPiBPbiAzIEFwciAyMDI1LCBhdCAxODoxMiwgQXlhbiBLdW1hciBIYWxkZXIg
PGF5YW4ua3VtYXIuaGFsZGVyQGFtZC5jb20+IHdyb3RlOg0KPiANCj4gRW5hYmxlIGVhcmx5IGJv
b3Rpbmcgb2YgQXJtdjgtUiBBQXJjaDMyIGJhc2VkIHN5c3RlbXMuDQo+IA0KPiBBeWFuIEt1bWFy
IEhhbGRlciAoMyk6DQo+ICB4ZW4vYXJtOiBNb3ZlIHNvbWUgb2YgdGhlIGZ1bmN0aW9ucyB0byBj
b21tb24gZmlsZQ0KPiAgeGVuL2FybTMyOiBDcmVhdGUgdGhlIHNhbWUgYm9vdC10aW1lIE1QVSBy
ZWdpb25zIGFzIGFybTY0DQo+ICB4ZW4vYXJtMzI6IG1wdTogU3R1YnMgdG8gYnVpbGQgTVBVIGZv
ciBhcm0zMg0KDQp0aGUgc2VyaWUgaXMgYnJlYWtpbmcgdGhlIGNvbXBpbGF0aW9uIG9mIEFybTY0
IE1QVToNCg0KW+KApl0NCnhlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9tcHUvY3ByZWdzLmg6Njog
ZXJyb3I6ICJSRUdJT05fVEVYVF9QUkJBUiIgcmVkZWZpbmVkIFstV2Vycm9yXQ0KICAgIDYgfCAj
ZGVmaW5lIFJFR0lPTl9URVhUX1BSQkFSICAgICAgIDB4MTggICAgLyogU0g9MTEgQVA9MTAgWE49
MCAqLw0KICAgICAgfCANClvigKZdDQoNCkNoZWVycywNCkx1Y2ENCg0KDQo=


From xen-devel-bounces@lists.xenproject.org Fri Apr 04 09:06:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 04 Apr 2025 09:06:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.937967.1338808 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0d0h-00021l-1q; Fri, 04 Apr 2025 09:06:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 937967.1338808; Fri, 04 Apr 2025 09:06: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 1u0d0g-00021e-VP; Fri, 04 Apr 2025 09:06:46 +0000
Received: by outflank-mailman (input) for mailman id 937967;
 Fri, 04 Apr 2025 09:06: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=YWcl=WW=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1u0d0f-00021Y-Je
 for xen-devel@lists.xenproject.org; Fri, 04 Apr 2025 09:06:45 +0000
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 (mail-db8eur05on20630.outbound.protection.outlook.com
 [2a01:111:f403:2614::630])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1ec731b6-1134-11f0-9ffb-bf95429c2676;
 Fri, 04 Apr 2025 11:06:40 +0200 (CEST)
Received: from AM8P190CA0020.EURP190.PROD.OUTLOOK.COM (2603:10a6:20b:219::25)
 by DB8PR08MB5371.eurprd08.prod.outlook.com (2603:10a6:10:114::7) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8583.45; Fri, 4 Apr
 2025 09:06:37 +0000
Received: from AMS0EPF0000019B.eurprd05.prod.outlook.com
 (2603:10a6:20b:219:cafe::a7) by AM8P190CA0020.outlook.office365.com
 (2603:10a6:20b:219::25) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8606.26 via Frontend Transport; Fri,
 4 Apr 2025 09:06:36 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) 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.8632.13
 via Frontend Transport; Fri, 4 Apr 2025 09:06:35 +0000
Received: from DB7PR08MB2987.eurprd08.prod.outlook.com (2603:10a6:5:1c::25) by
 DB9PR08MB6539.eurprd08.prod.outlook.com (2603:10a6:10:23f::17) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.8583.42; Fri, 4 Apr 2025 09:06:01 +0000
Received: from DB7PR08MB2987.eurprd08.prod.outlook.com
 ([fe80::d53f:b16d:70a5:8668]) by DB7PR08MB2987.eurprd08.prod.outlook.com
 ([fe80::d53f:b16d:70a5:8668%4]) with mapi id 15.20.8583.041; Fri, 4 Apr 2025
 09:06: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: 1ec731b6-1134-11f0-9ffb-bf95429c2676
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=aiVEdkTWp7tB/eTSMeNOyElyxAJmBNTBpwSL7sc9+YJIcgLqL2jLEetryubGTBu9R71QKwYE98TybsI75M3FndwlKEVQMYx+Le0dI4+ITqyUqfbYe33100wrVWV/xMjOpMDXrRchsiVjWbhBoCygBBngEeLNK999DMNccr2MiAjlLD5+QE028KxhnFeHLsN7/7YiWVnrdbVL3UiUqph9P8RXHgh11XwPHZElnZd9Avk/81BygnVUUKrDMc7+KHlz9/4n9YbfV+6do/hikLqUVYB3kT31Hq7HCeov3JeiGBvxLOIL/zn/2D0RQNk0+hzxW63dVkoq7FAntcv4JDUstg==
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=lgV7iPXptNhudm0tQwgC6iOh/l0dCTb0/mDc2I7DuwE=;
 b=AghH92fUuU317zz0CI0IqRzPmMJEQxhc3WKNcvtiHCuTm4/XzIZk51VmInl/G4No1k8zok48qQuCSErlcQQ3NcJ1AKDG1ZHntY/bX4L5FGrT+jawLgrTMiOu/9J4spc9BOI2iO6UZSuPDHPU1aX2/7IiGaxshMAYN5NvX0fJE7OH8tDI8sdWUHDDFXpk5hRa3fv/eAbyZrLG6w8NAH88WQENnTawhDgcz9MIR+Pgngt3sBUOy3pNRNGzgZQGOpzHh0qj+wKkX9A3BdaauujVehBxvbnEHHHwP4BOKt16GqOkcSOw/Q3t1RQSzLmPQiBIXgDnDnA59ivF/5RjwT98/A==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=fail (sender ip is
 4.158.2.129) smtp.rcpttodomain=amd.com smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=lgV7iPXptNhudm0tQwgC6iOh/l0dCTb0/mDc2I7DuwE=;
 b=WOPcGitB2lzlqTbztayLRnsHCTFW2ErrnP0uPKSLa9mgDGm8lyXnnUGX+fofrYRpDXrOuw2ozCTxw08DeTTQM4ym99aD00Zo+zd5Ze+oTDoi033jfQXKOvT4VRCtiR59OklyFHmu8noIkk/dKr//9CiKGo0NCsJJSm8nnXTRTgE=
X-MS-Exchange-Authentication-Results: spf=fail (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Fail (protection.outlook.com: domain of arm.com does not
 designate 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com;
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=m6gTRkhpuQtfwFL3pF5lV3RoDwmpxzHrdrScWyZ6jEtec2+nF+Gy7IuLDsKcau3F+KM2m1uE8uW7JMgphXBXvVzNa//b7cqtxA/D2GbwawAyTyBF3GX57OUERcr4feZSYKUQptkI1rhJa2j2H2ypWA+67QX5N/3RmxTQmQV+tbXWsqYEOg1mrrMMU5F/nqEYaKsTDLtPeT0NXKXSM+/XMXIZBNLZ9mHkWU0MpYZmmbm6pN15pNLcO287HH9hAxUSUsJ4voQWmNMgCAwdYOhZhtb47rftFlXtvW6B1qddcQafIDeiJHuIIV3esr6i5REs6r9CGE5L9nvkWBrNJ88bYA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=lgV7iPXptNhudm0tQwgC6iOh/l0dCTb0/mDc2I7DuwE=;
 b=wg8N4L0oSMXugKXx7h7HEKbDP6p02T0GE+RHnAPCrbrwwSNA3KmbEy5lEMfqyJ7MDJJtuyo3f4M63EIL+UWgtV7BLbdnkoLYIONTm+dDC7XMBoD023ImQendsjc5khDlhHAkT3Au+mSemClXRRi+Sixlj/xn6xxAjzj6+0jltPA3GP/8Y3Uqqx5gxk4w/u6C10PxfS2a5NG2jF1H3hmcem+u6fjTzHprbBeaJq9Ob6wENh2erRxqyu0+MImZ5NloX6/F8Ew2/cEbfAPcDrL3Em/LVewvNMuoX6hIJPricatCYEFTMa3toZREjjUWNY5EpKpNXac6Lo/0dOli2eqEig==
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=lgV7iPXptNhudm0tQwgC6iOh/l0dCTb0/mDc2I7DuwE=;
 b=WOPcGitB2lzlqTbztayLRnsHCTFW2ErrnP0uPKSLa9mgDGm8lyXnnUGX+fofrYRpDXrOuw2ozCTxw08DeTTQM4ym99aD00Zo+zd5Ze+oTDoi033jfQXKOvT4VRCtiR59OklyFHmu8noIkk/dKr//9CiKGo0NCsJJSm8nnXTRTgE=
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 v4 1/3] xen/arm: Move some of the functions to common file
Thread-Topic: [PATCH v4 1/3] xen/arm: Move some of the functions to common
 file
Thread-Index: AQHbpLu5pa88e8EeQkugLRqmrl+P07OTN/eA
Date: Fri, 4 Apr 2025 09:06:01 +0000
Message-ID: <C6C24096-2BCC-4D09-A20E-AAB1FA923A18@arm.com>
References: <20250403171241.975377-1-ayan.kumar.halder@amd.com>
 <20250403171241.975377-2-ayan.kumar.halder@amd.com>
In-Reply-To: <20250403171241.975377-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.400.131.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DB7PR08MB2987:EE_|DB9PR08MB6539:EE_|AMS0EPF0000019B:EE_|DB8PR08MB5371:EE_
X-MS-Office365-Filtering-Correlation-Id: 739a3e9b-5145-4c9c-ba4e-08dd7358003d
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?a1FpZWU0WlFMby9XRFFrSGc4ODNLRG9VS2IycFRRMjZEYzV3cDZOcGtRWVQ2?=
 =?utf-8?B?MlRlL2N0K0VacFp3aFA5czZQeGg1UnFXSWJyeWF3V010SmU3NXVDYlM3NFkx?=
 =?utf-8?B?MWVKQ3M0RkFKZjdJVEFBWmpWZ052SHoreURuV0NDR2R2ZkRsb3ZxUUtFaS9k?=
 =?utf-8?B?TFVyaXcxSWNidWo1bEVYQWhoT3JHUHA1ekJiZ0VHaWYydEprMFAxU00yTWtY?=
 =?utf-8?B?ZTk0MmFtUUp5T2xLVTdwdEhwL25QNHVWdnAxSjYyVllZSi81OVNabHVRaEly?=
 =?utf-8?B?OE9BQmRmVllnZUxVMUVVTFlJWU1TMS9XaGtDK0hpWWdhU2tSeVBKWWJYc3g5?=
 =?utf-8?B?N3NlWFRrUWhTVklPR3A1M3lPNFlwYzJJTm9ndDJ0Ym9SU0pJczArd1VsUG9s?=
 =?utf-8?B?L0JOR0RtTUJmYmppaE1LeHdjRHdBQlh4SU1PTlc2Z2k5K1JiVDFySzFRRTJC?=
 =?utf-8?B?VXMyR0dyTXJIcTNpSTJIQjZEcHFvbmlKVXp4ZnU2aWp3UnVQUkdxdzR0SEVE?=
 =?utf-8?B?UitIWTZxSkt6cHdJenBkNkRxdFNETWxtdlBMcnpXYWVqOVpyTms2VHRtOG5S?=
 =?utf-8?B?Umh4SnpiUjVJMjZKc0N1aXczSTVHMGtEWWMwcVZBbnRsK3V1QzBPSG05ZmNv?=
 =?utf-8?B?WUF2czdaU244MG94ZGI4SnQ5ZVdreVZTNzBqek4rOEM2b09aUXlBWHdsM2hC?=
 =?utf-8?B?eTVOdFUxeTJDZlZYemVlajl6OHZiZDE5NDNlaGhQdXVXcVhvOWZDZkZmSFZM?=
 =?utf-8?B?b255Q3BlcHFOTExISFFJc1FNaE43cDA2d2RuY2N3L2JIMStVVVpmRjlZRWlp?=
 =?utf-8?B?UDFVTWtQSGQ0bndDYktsa1lBWlFXb1RaeXR2OThBUXEvdkxDbTVTRG0xWFZE?=
 =?utf-8?B?RGpudjVsa3J2THdZYUw3OEVmNHUzRmZwbzJwaWFiUjdRT0R0MjFrN20yMzRJ?=
 =?utf-8?B?aVZZMlVaclZHNDdFZUxiRDJzSGxEc1lTTVhPWW9OTXRnWm5vMHFTRzM4cDNn?=
 =?utf-8?B?NlU4WWtxS3RiN0N6VWx0OWcxU2Rra3dESVFkY2xkWmc2TmRNdG9jTllHakhD?=
 =?utf-8?B?RHBWMHFvSExCN1BlOXgwTWl2TTNNM0p5RmVwc3VYZUc4Q0hkM210U1I2Mms0?=
 =?utf-8?B?Wjh2ZHhUWmcxcWVyU1RFWnlQMXhONWtwaTA1SFRTaDZoV0dVaVNQS2ZpQWYr?=
 =?utf-8?B?YVhQeDFiK2NING9DbTdRaGtGektQT25hY0lvalhrbDdsRTRycVR2TTArVEx4?=
 =?utf-8?B?djZnc2RMWHVFV1l4WHNkNkxuY0Q4aVoxV2lRYXJBUElmdER4eXZQSVVseWNk?=
 =?utf-8?B?cVM4cmdiRDlwRUd2MGJxNGxIcmNIYzhtWkwwdVBkNnM1MkkwWDRqc0lXbVh1?=
 =?utf-8?B?dFlGUHFmZ0treFUxWW9KQm1MNUViZmt2alhtYlAvc3lteHA2YzJHRmM4TUJy?=
 =?utf-8?B?Yy9vaW5lWXNBNWR1YmFkelF2bzVoeWxTMkVsQXFlSE1RYkt6RnlrcGtDOU9z?=
 =?utf-8?B?WmowNDhMdTlrdXYyYnNpRTNwRWdLeUdWTVRYNVAvNmM2UW9ralNhNW85T3N4?=
 =?utf-8?B?THdUM0pRaUIyK2F6SDFGeThmL0FWZEc3M0M5eVBqd1hsRTZHS1JWcnhxeFVa?=
 =?utf-8?B?dEJkcWV4c3ZLaWhWbjFrc0IxbWt1UTFqNHRLazFJTHpPNXgyRko1TUZyL25z?=
 =?utf-8?B?eDd0cmxKNkR5TGtmTWluS3grNWswSUpCR0hLU2plYWEvaGlraFFFYTZRREkz?=
 =?utf-8?B?Ny96SjlybmFSUWY0U25aM04yZ2NqaGdDUzg4eTFHdjluc0JHQlB2MkJ0SUJF?=
 =?utf-8?B?cHpxbURyTUd2WndubGo0YmpnZnJ0TDg0Q1JzenoydHlBR0E2bDRlbit2WjZ0?=
 =?utf-8?B?Y2Zzb1B1a1BHMkdOMmY1NWphNEtqY3FrUmhwRlRiYklCMXRhSXV5RTZZRDdn?=
 =?utf-8?Q?NuR06B6RNtBQJDmbbQgeVMwihQtzlnL1?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB7PR08MB2987.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: <FFF8BCE320A7254CA61DA64D99F4BDB4@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB6539
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AMS0EPF0000019B.eurprd05.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	dd2a46d9-713e-4252-892a-08dd7357ec09
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|36860700013|35042699022|82310400026|14060799003|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?UXRyck1GSmhCc0h0NWg1WU5HYzlkVmUvK0E3cEpDQjRmWmplWWpycStxSmpE?=
 =?utf-8?B?UjcxNEw4NmExM2FhSGdnUWEwWVBHMXUzdHI0dGdDWkVxbGpvcHArMXpjUUN5?=
 =?utf-8?B?a1A3bjl1cnRLVjRzRmVwYUlPbVlaWjZTUG5JZVlmU29oOEJ0T3hUdWNTZ1dH?=
 =?utf-8?B?L2ZZZVdwd0FvYUI0dnJacWdabVY2RjhhN2M4a21WRTk5cHpHN1RYTEJWNWNW?=
 =?utf-8?B?eDk4MDVRSFE5aUxNNkY2OU1RSWVISEl5MXFXcmp3NkkxeWxNZ2xNK0ZhWXdE?=
 =?utf-8?B?MnAyRFVJVnJmR2dyMHhvVDNDc2VKdzFaQ3BzaE1Fc29KQ1U5U3gxbzRpeldu?=
 =?utf-8?B?RDdTNGhhTkVrRWI5L1U0ZU9YVWtOZUJzaVFUaEdGT3BGejM4V09WZ2FVME9X?=
 =?utf-8?B?UFgzeHdrL1dTMWxVa2c3cjgzTHhoYU9aMGlSNVVROCtEU3ExNHcxRExraUxV?=
 =?utf-8?B?WVZpaXJ1NGgrWVZ6b0FaUmU4M0diZnA1d0tqMWVTQmV2N1ZMNER2aENKaDJi?=
 =?utf-8?B?Vk1HQ2I1VDZkQmRaTWdYcDdRbTFSRFJyaUUvQ2FobUpLU1FoZ1J3OGRPVWE2?=
 =?utf-8?B?b0lMaWJoUTFLYVdVUnhpemtnVWJmaFErZ01DMTZBOFZEWWd3K2c4OWVOZ1dQ?=
 =?utf-8?B?ZUNWcHRHUnpySytMdURIU3A1TUZ1MEdiV0dMNlFWMWplYjZKVWhNVDNlV0I5?=
 =?utf-8?B?T2lmVmdLNGVYaVg5T043K3NnUGVPSy9oMTA1ajk5bW9pK1RyamJzMVl0NkJY?=
 =?utf-8?B?YjFRSEFkL0hPT2xmbzd6d0g4N1RtY0hhSk1rTk94bGhUS0VKY1VPakltcW9l?=
 =?utf-8?B?QzBkVjVDQ3VWd3hTOHo0RVhmeGF1bHhYUzVNQktnWEhSYWtyYXIzQzJicURM?=
 =?utf-8?B?bkx4Vk1ndU11eFVUWE5EeHBqbXBFTndBaDRPVkpuNytwazQ4VGlQcW0yVDNB?=
 =?utf-8?B?Yi80cHJCU3AvUkxUNW1wTmFtSTRyTTJIWHZtRWJXamxIaFZSTkxrTDZQUUsw?=
 =?utf-8?B?eEFpa3kzYzVsL0t5Zk4vR0ZYSitnem5wYXdHdXprNG85WFR2YmZ6S0gwVk1n?=
 =?utf-8?B?MXY2cTV3N3BmcHBCa2FZV3ZZc0ZvL1hWN3I0S3g5aW56blR1YlBEYnU5T3hy?=
 =?utf-8?B?ckVyaS92MVNUM0N6end5ZWx4QXljaXdxUXo3Zmovd1hkekR4S2k2UWhhaUwz?=
 =?utf-8?B?YWRRNnlKZDBPRHNXOGp1QkZHTEN0SGw2SUo2eUlqVkJzSWlVbWRDRmtQUjRY?=
 =?utf-8?B?MkdlTlZSWm9TemRoV3pqMnFtRWhRK2hBRlhKYml3TExQSTBJMk11RmlQSVpl?=
 =?utf-8?B?ekU1Tmw0UEg5dVRnZHU5QldNOHZaRzQ4NGllZnUzYWxpOHNXcFA0WFRtamFM?=
 =?utf-8?B?b3g0ckhicnA4MFcwT1dHM1VYN3NCWGhqOVJaVFpYaEFObUtRMHhtSUttUVRy?=
 =?utf-8?B?YmtGQk5oaFR2b25YVG1QUGZaeWVCRDhKVURzUVFZKzdYN09IQnk2ODk2WlR3?=
 =?utf-8?B?ME9kVDlOZ3o5T3lrd2htTFNORG8rc0hRaWdRek1BOFEydi9RREtDbm9seTEy?=
 =?utf-8?B?Q2lTNWswYm92amZHRGFnRThTb2MxOVJSZkE2eGVOK0lqY1hzcGtzdmhCY1I0?=
 =?utf-8?B?MnFpYktzNWVRaXU0cTBPaE9CR0piVUd0WXhrcnIwWXhRbmxYWlN0REhzeTJr?=
 =?utf-8?B?aGg0T2xTa1NaL0xhaGJlaGZuSkRwNWx5eDdrckRMNnAxZlhiNHBGY2NtOUkr?=
 =?utf-8?B?cHVvV3R6V09ZS2dId2xvNlVUdStka25nYUJZQ2JRblRpcWtxSlZHT1ZjQ2N2?=
 =?utf-8?B?UWZsaWU1ekF6UUpNanFKTGVxU1h4Rm1OQVhQZnBzbU1NSW9pTXkyS0dNbmkv?=
 =?utf-8?B?eUJ5NW1idEdXZzFYckl0OU1YWXRjbTM4Z1I1MTVFTjZWZGtMVEFXSkNyOXFQ?=
 =?utf-8?B?ZHZuTG03VzVCR1F1TDczMWhHMW93RmxLbjhwbFdRcmZrV0YwTnhQK1JKK1NP?=
 =?utf-8?Q?XVkMKTL89U+iBXqKpEfe3wJ0fLJ6ss=3D?=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(1800799024)(36860700013)(35042699022)(82310400026)(14060799003)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Apr 2025 09:06:35.3902
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 739a3e9b-5145-4c9c-ba4e-08dd7358003d
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AMS0EPF0000019B.eurprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB8PR08MB5371

SGkgQXlhbiwNCg0KPiBPbiAzIEFwciAyMDI1LCBhdCAxODoxMiwgQXlhbiBLdW1hciBIYWxkZXIg
PGF5YW4ua3VtYXIuaGFsZGVyQGFtZC5jb20+IHdyb3RlOg0KPiANCj4gQWRkZWQgYSBuZXcgZmls
ZSBwcmVwYXJlX3hlbl9yZWdpb24uaW5jIHRvIGhvbGQgdGhlIGNvbW1vbiBlYXJseWJvb3QgTVBV
IHJlZ2lvbnMNCj4gY29uZmlndXJhdGlvbnMgYWNyb3NzIGFybTY0IGFuZCBhcm0zMi4NCj4gDQo+
IHByZXBhcmVfeGVuX3JlZ2lvbiwgZmFpbF9pbnN1ZmZpY2llbnRfcmVnaW9ucygpIHdpbGwgYmUg
dXNlZCBieSBib3RoIGFybTMyIGFuZA0KPiBhcm02NC4gVGh1cywgdGhleSBoYXZlIGJlZW4gbW92
ZWQgdG8gcHJlcGFyZV94ZW5fcmVnaW9uLmluYy4NCj4gDQo+IGVuYWJsZV9zZWNvbmRhcnlfY3B1
X21tKCkgaXMgYSBzdHViIHdoaWNoIGlzIG1vdmVkIHRvIHByZXBhcmVfeGVuX3JlZ2lvbi5pbmMg
YXMNCj4gU01QIGlzIGN1cnJlbnRseSBub3Qgc3VwcG9ydGVkIGZvciBNUFUuDQo+IA0KPiAqX1BS
QkFSIGFyZSBtb3ZlZCB0byBhcm02NC9zeXNyZWdzLmguDQo+ICpfUFJMQVIgYXJlIG1vdmVkIHRv
IHByZXBhcmVfeGVuX3JlZ2lvbi5pbmMgYXMgdGhleSBhcmUgY29tbW9uIGJldHdlZW4gYXJtMzIN
Cj4gYW5kIGFybTY0Lg0KPiANCj4gSW50cm9kdWNlIFdSSVRFX1NZU1JFR19BU00gdG8gd3JpdGUg
dG8gdGhlIHN5c3RlbSByZWdpc3RlcnMgZnJvbSB0aGUgY29tbW9uIGFzbQ0KPiBmaWxlLg0KPiAN
Cj4gU2lnbmVkLW9mZi1ieTogQXlhbiBLdW1hciBIYWxkZXIgPGF5YW4ua3VtYXIuaGFsZGVyQGFt
ZC5jb20+DQo+IC0tLQ0KDQpUaGUgc3BsaXQgZm9yIHRoZSBjb21tb24gY29kZSBzZWVtcyBvayB0
byBtZSwgYnV0IHRoaXMgcGF0Y2ggaXMgaW50cm9kdWNpbmcgYW4gaXNzdWUgZm9yIHRoZSBhcm02
NCBjb21waWxhdGlvbiwNCknigJl2ZSBkb25lIGFuIGV4cGVyaW1lbnQgYW5kIHdpdGggdGhlc2Ug
Y2hhbmdlcyBJ4oCZbSBhYmxlIHRvIGNvbXBpbGUgYm90aCwgYnV0IGZlZWwgZnJlZSB0byBpZ25v
cmUgaWYgaXTigJlzIG5vIHdoYXQgeW91DQpoYWQgaW4gbWluZC4NCg0KZGlmZiAtLWdpdCBhL3hl
bi9hcmNoL2FybS9pbmNsdWRlL2FzbS9hcm0zMi9zeXNyZWdzLmggYi94ZW4vYXJjaC9hcm0vaW5j
bHVkZS9hc20vYXJtMzIvc3lzcmVncy5oDQppbmRleCAyMjg3MTk5OWFmYjMuLmE5MGQxNjEwYTE1
NSAxMDA2NDQNCi0tLSBhL3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9hcm0zMi9zeXNyZWdzLmgN
CisrKyBiL3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9hcm0zMi9zeXNyZWdzLmgNCkBAIC0yMCw2
ICsyMCwxMyBAQA0KICAqIHVzZXMgcjAgYXMgYSBwbGFjZWhvbGRlciByZWdpc3Rlci4gKi8NCiAj
ZGVmaW5lIENNRF9DUDMyKG5hbWUuLi4pICAgICAgIm1jciAiIF9fc3RyaW5naWZ5KENQMzIocjAs
IG5hbWUpKSAiOyINCiANCisjZGVmaW5lIFJFR0lPTl9URVhUX1BSQkFSICAgICAgIDB4MTggICAg
LyogU0g9MTEgQVA9MTAgWE49MCAqLw0KKyNkZWZpbmUgUkVHSU9OX1JPX1BSQkFSICAgICAgICAg
MHgxRCAgICAvKiBTSD0xMSBBUD0xMCBYTj0xICovDQorI2RlZmluZSBSRUdJT05fREFUQV9QUkJB
UiAgICAgICAweDE5ICAgIC8qIFNIPTExIEFQPTAwIFhOPTEgKi8NCisjZGVmaW5lIFJFR0lPTl9E
RVZJQ0VfUFJCQVIgICAgIDB4MTEgICAgLyogU0g9MTAgQVA9MDAgWE49MSAqLw0KKw0KKyNkZWZp
bmUgV1JJVEVfU1lTUkVHX0FTTSh2LCBuYW1lKSBtY3IgQ1AzMih2LCBuYW1lKQ0KKw0KICNpZm5k
ZWYgX19BU1NFTUJMWV9fDQogDQogLyogQyB3cmFwcGVycyAqLw0KZGlmZiAtLWdpdCBhL3hlbi9h
cmNoL2FybS9pbmNsdWRlL2FzbS9jcHJlZ3MuaCBiL3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9j
cHJlZ3MuaA0KaW5kZXggNjAxOWEyY2JkZDg5Li5iOTA5YWRjMTAyYTUgMTAwNjQ0DQotLS0gYS94
ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vY3ByZWdzLmgNCisrKyBiL3hlbi9hcmNoL2FybS9pbmNs
dWRlL2FzbS9jcHJlZ3MuaA0KQEAgLTEsMTAgKzEsNiBAQA0KICNpZm5kZWYgX19BU01fQVJNX0NQ
UkVHU19IDQogI2RlZmluZSBfX0FTTV9BUk1fQ1BSRUdTX0gNCiANCi0jaWZkZWYgQ09ORklHX01Q
VQ0KLSNpbmNsdWRlIDxhc20vbXB1L2NwcmVncy5oPg0KLSNlbmRpZg0KLQ0KIC8qDQogICogQUFy
Y2gzMiBDby1wcm9jZXNzb3IgcmVnaXN0ZXJzLg0KICAqDQpAQCAtNTAyLDYgKzQ5OCwxMiBAQA0K
ICNkZWZpbmUgTVZGUjBfRUwxICAgICAgICAgICAgICAgTVZGUjANCiAjZGVmaW5lIE1WRlIxX0VM
MSAgICAgICAgICAgICAgIE1WRlIxDQogI2RlZmluZSBNVkZSMl9FTDEgICAgICAgICAgICAgICBN
VkZSMg0KKyNkZWZpbmUgSE1QVUlSICAgICAgICAgICAgICAgICAgcDE1LDQsYzAsYzAsNA0KKyNk
ZWZpbmUgSFBSU0VMUiAgICAgICAgICAgICAgICAgcDE1LDQsYzYsYzIsMQ0KKyNkZWZpbmUgUFJC
QVJfRUwyICAgICAgICAgICAgICAgcDE1LDQsYzYsYzMsMA0KKyNkZWZpbmUgUFJMQVJfRUwyICAg
ICAgICAgICAgICAgcDE1LDQsYzYsYzgsMQ0KKyNkZWZpbmUgTVBVSVJfRUwyICAgICAgICAgICAg
ICAgSE1QVUlSDQorI2RlZmluZSBQUlNFTFJfRUwyICAgICAgICAgICAgICBIUFJTRUxSDQogI2Vu
ZGlmDQogDQogI2VuZGlmDQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL21w
dS9jcHJlZ3MuaCBiL3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9tcHUvY3ByZWdzLmgNCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggNjY4NzEzNzlhNTNiLi4wMDAwMDAwMDAwMDANCi0t
LSBhL3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9tcHUvY3ByZWdzLmgNCisrKyAvZGV2L251bGwN
CkBAIC0xLDMwICswLDAgQEANCi0vKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1v
bmx5ICovDQotDQotI2lmbmRlZiBfX0FTTV9BUk1fTVBVX0NQUkVHU19IDQotI2RlZmluZSBfX0FT
TV9BUk1fTVBVX0NQUkVHU19IDQotDQotI2RlZmluZSBSRUdJT05fVEVYVF9QUkJBUiAgICAgICAw
eDE4ICAgIC8qIFNIPTExIEFQPTEwIFhOPTAgKi8NCi0jZGVmaW5lIFJFR0lPTl9ST19QUkJBUiAg
ICAgICAgIDB4MUQgICAgLyogU0g9MTEgQVA9MTAgWE49MSAqLw0KLSNkZWZpbmUgUkVHSU9OX0RB
VEFfUFJCQVIgICAgICAgMHgxOSAgICAvKiBTSD0xMSBBUD0wMCBYTj0xICovDQotI2RlZmluZSBS
RUdJT05fREVWSUNFX1BSQkFSICAgICAweDExICAgIC8qIFNIPTEwIEFQPTAwIFhOPTEgKi8NCi0N
Ci0jZGVmaW5lIEhNUFVJUiAgICAgICAgICBwMTUsNCxjMCxjMCw0DQotDQotLyogQ1AxNSBDUjY6
IE1QVSBQcm90ZWN0aW9uIFJlZ2lvbiBCYXNlL0xpbWl0L1NlbGVjdCBBZGRyZXNzIFJlZ2lzdGVy
ICovDQotI2RlZmluZSBIUFJTRUxSICAgICAgICAgcDE1LDQsYzYsYzIsMQ0KLSNkZWZpbmUgUFJC
QVJfRUwyICAgICAgIHAxNSw0LGM2LGMzLDANCi0jZGVmaW5lIFBSTEFSX0VMMiAgICAgICBwMTUs
NCxjNixjOCwxDQotDQotI2RlZmluZSBNUFVJUl9FTDIgICAgICAgSE1QVUlSDQotI2RlZmluZSBQ
UlNFTFJfRUwyICAgICAgSFBSU0VMUg0KLQ0KLSNkZWZpbmUgV1JJVEVfU1lTUkVHX0FTTSh2LCBu
YW1lKSBtY3IgQ1AzMih2LCBuYW1lKQ0KLQ0KLSNlbmRpZiAvKiBfX0FTTV9BUk1fTVBVX0NQUkVH
U19IICovDQotDQotLyoNCi0gKiBMb2NhbCB2YXJpYWJsZXM6DQotICogbW9kZTogQVNNDQotICog
aW5kZW50LXRhYnMtbW9kZTogbmlsDQotICogRW5kOg0KLSAqLw0KDQoNCg0K


From xen-devel-bounces@lists.xenproject.org Fri Apr 04 09:11:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 04 Apr 2025 09:11:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.937982.1338817 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0d5Y-00052j-MF; Fri, 04 Apr 2025 09:11:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 937982.1338817; Fri, 04 Apr 2025 09:11: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 1u0d5Y-00052c-JA; Fri, 04 Apr 2025 09:11:48 +0000
Received: by outflank-mailman (input) for mailman id 937982;
 Fri, 04 Apr 2025 09:11: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=YWcl=WW=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1u0d5X-00052S-EV
 for xen-devel@lists.xenproject.org; Fri, 04 Apr 2025 09:11:47 +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 d499d329-1134-11f0-9ffb-bf95429c2676;
 Fri, 04 Apr 2025 11:11:45 +0200 (CEST)
Received: from AS4P251CA0024.EURP251.PROD.OUTLOOK.COM (2603:10a6:20b:5d3::16)
 by PAXPR08MB7336.eurprd08.prod.outlook.com (2603:10a6:102:223::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8583.41; Fri, 4 Apr
 2025 09:11:38 +0000
Received: from AM3PEPF00009B9B.eurprd04.prod.outlook.com
 (2603:10a6:20b:5d3:cafe::5e) by AS4P251CA0024.outlook.office365.com
 (2603:10a6:20b:5d3::16) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8606.27 via Frontend Transport; Fri,
 4 Apr 2025 09:11:38 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AM3PEPF00009B9B.mail.protection.outlook.com (10.167.16.20) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8606.22
 via Frontend Transport; Fri, 4 Apr 2025 09:11:37 +0000
Received: from DB7PR08MB2987.eurprd08.prod.outlook.com (2603:10a6:5:1c::25) by
 AS2PR08MB8783.eurprd08.prod.outlook.com (2603:10a6:20b:5e7::16) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.44; Fri, 4 Apr
 2025 09:11:04 +0000
Received: from DB7PR08MB2987.eurprd08.prod.outlook.com
 ([fe80::d53f:b16d:70a5:8668]) by DB7PR08MB2987.eurprd08.prod.outlook.com
 ([fe80::d53f:b16d:70a5:8668%4]) with mapi id 15.20.8583.041; Fri, 4 Apr 2025
 09:11: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: d499d329-1134-11f0-9ffb-bf95429c2676
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=dg5XbvabApD1eFznJNBRAoDB7GYEo9KMGRm7Oj4jRVj6HsxEjn4V9rsYIqgUg9sm8AxtSkXC144vLkCBLfDaTu+P1EWUmUQB8u7CZz+PnfpL6YJqe5OnJgjppq8AegbhvW1KAdq2rbID4odkIoD+zXa2aQsrvAVFpNPeQfU6jXjijo1Koaoeb9HZ1gn2st5LcvdhpgiyvMAnSV84ekryAg/Y56G3vLW/eDsALuRC3EKWtBw393dDMrg76U7xXpTsERL0+AFStHjzaqkhcSpJqW9RqDLVJ79xXp1qWXf42MK9ec5EQkG3+LL6fhebKe5XnsIYrAd1/3qUq2bCBPy4bA==
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=Ye2CP5boQbxkr6JQv0lu9EtqLHajEC77tVRIcAQdqVI=;
 b=bxppekwZ2ejaDI1Yp1nivHt3RgFuuYTEXzPBPneyhyL0gGJwUnt+xWlJJGO5heYTmS1w+lRLrBewvRof8z2y96+L1XDEUpdzOXEwbMtQXUqri5SALt8B0xLoWFiCrWOy80kB+9FMn93zGCS8tbKz4qer5zKxVHjwfmsmlOYRREiWJUWU5PGbE7nZwL5cgQLfxW/L08yyD91AqD+dHGTnENMMCl79DkDnvXNzai/HhnG8PcLXcC9HXyZ8yCeWY+WhyuFljY4fw7G0BJNDVruTRPez7c/GRb0IgvRTq1d3u2TP2SOB1sW90PMEsiZUUqac2InJ1C/Cgc5Lmu8ZFfz/vw==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=fail (sender ip is
 4.158.2.129) smtp.rcpttodomain=amd.com smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Ye2CP5boQbxkr6JQv0lu9EtqLHajEC77tVRIcAQdqVI=;
 b=oSw0/AL05ijsZLm8O1KgzTgMagGrjK3bh+e3iELTP7mB8bP6TC0XADaRIBwe9Lv8ZKvJjtRKQJxBQh1Jh5WOhcdi2JdEsDBuEq0jxfW3TiY8alYe+mzsIAZZ9Qtd7noPb49Kl/+s/4O3UlcG9VxJCarj4dbIyBdeYTyNTF2mzas=
X-MS-Exchange-Authentication-Results: spf=fail (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Fail (protection.outlook.com: domain of arm.com does not
 designate 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com;
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Mx8eRZyROdFbotvO1t6obrHU+3vkKnK6LPFaTsqkxpls3G6R+ztwaSRAUV5LZwlMBAK5TkKWIcyR24D/KwZa/Ud10m3cGPdem+rATAQ8kJEHUkmelnai/M9OBOKtyvEcUxnO4vntndzuQTCdK2njNitw6uKyruDc7MJ62EXQ8rKFWHt7WpFmXG2pfvu1+Vio+JkcKnRd5GCzHjRkOk7j0cDAXAAgY2kIEaCp/h7nVcXoWS1V70ExqFgaEWuwEoJvb+CNm8DgHKx2rZ0Wl9LRyFJSUi0vNstYLE6xPS6zY4qxWAr+Fs01/KejWZj1vWggmceBG3bW31SDVeq2gg8rJg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Ye2CP5boQbxkr6JQv0lu9EtqLHajEC77tVRIcAQdqVI=;
 b=GbUgD/iNhFIM/JoqytLNTUTLyc0fjxwHUjyqaiw5BpZsMxh+vyhJ7jgYuDOtJjYgYKA1YuM+g6iGLfxjNTEQlfzWbtLSKknzEs2HQq6mKhRQx6AO0fL4oHcC04/4AwL3zBDY5TEwCJ4TV1DseyiRJ9yUEEHL1oDVW//WyALT44YDUxewdEeePVDtnrlTj9IOhoGATkOaDz/b382MjNHHu/jv0BcRP7L3YfNKVG58+wEfbylOK964a4RZVFNkJRKu5Can1rtcVzodXpQDvgKwj4EehC2SUZd5cOH2jP29QXdgEpQPRwcytJZgYzX/L9ktJ9KfPsJeSiHWD1AQH7rIaQ==
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=Ye2CP5boQbxkr6JQv0lu9EtqLHajEC77tVRIcAQdqVI=;
 b=oSw0/AL05ijsZLm8O1KgzTgMagGrjK3bh+e3iELTP7mB8bP6TC0XADaRIBwe9Lv8ZKvJjtRKQJxBQh1Jh5WOhcdi2JdEsDBuEq0jxfW3TiY8alYe+mzsIAZZ9Qtd7noPb49Kl/+s/4O3UlcG9VxJCarj4dbIyBdeYTyNTF2mzas=
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 v4 3/3] xen/arm32: mpu: Stubs to build MPU for arm32
Thread-Topic: [PATCH v4 3/3] xen/arm32: mpu: Stubs to build MPU for arm32
Thread-Index: AQHbpLu+qDQrebRIZEGOW3V0WpA7GrOTOWAA
Date: Fri, 4 Apr 2025 09:11:04 +0000
Message-ID: <A3945B22-D60E-4E66-B4FE-C0013A532E62@arm.com>
References: <20250403171241.975377-1-ayan.kumar.halder@amd.com>
 <20250403171241.975377-4-ayan.kumar.halder@amd.com>
In-Reply-To: <20250403171241.975377-4-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.400.131.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DB7PR08MB2987:EE_|AS2PR08MB8783:EE_|AM3PEPF00009B9B:EE_|PAXPR08MB7336:EE_
X-MS-Office365-Filtering-Correlation-Id: 562b7b36-ae72-4d8e-a375-08dd7358b40f
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?MkZudHVhUVhOSkxaOGVyVUEySnhrSjNjK3BadjVEdDZmTFdmSTNyaW04allm?=
 =?utf-8?B?UFNYNUVzeHlNWUpHODljTHcrZUczUkFkWlFWejBkaWc4QWdsY1JUZ3dZTjZ5?=
 =?utf-8?B?ZncxOUllL1lIN2txcnllNEdiMk4xeHNLWFh4R3czK21uQmNYRmlNT3dyck0v?=
 =?utf-8?B?U1QvOXJadWRSWTNPRVVtLzN4VGNQd2FIZ0tYTFpPaGROd3VyVUNyeGhKblNl?=
 =?utf-8?B?amlUZHUwL1ZsTnJXRXZSMmk3QjJ1RlpSRmFBSVpPcVp1VnF3dnlhM1RQYTVm?=
 =?utf-8?B?SU9EL1krc2t4SVEyLzEwSSt5bWRaLzJhWUQ5WnBHZUgxSU9DY1FBVXp0Tlhr?=
 =?utf-8?B?VEh5UnFRVE5iU05LaEg1T1lTc3dkdVBoRDU3Q2hTMTlsY0hVRzdMbEpqeUhH?=
 =?utf-8?B?Y2twZ3E1cE51UEhIQUx5L2xoWVR4bGpXVDVTZElrMG9hQVlXdEpjWnpPU3R5?=
 =?utf-8?B?UUthYm8wbTc5MFA1UzkyNlQ4WTJEQjhkT0lwZWtHSzdSaUZydk9XQ29sblRr?=
 =?utf-8?B?cWpSOUpVdE5aKzh3UzdwY2lDeGhaT0xEVTZnemZWUkx6bmM1RXZVRzBsYTg3?=
 =?utf-8?B?bCtEUk5jRnlzV0hiczVyWFRBbzhIMlY0OHVKUEJxVzZaN01taVZGWFRPdkpE?=
 =?utf-8?B?eXpFZ0pEYUFpRmdQa1NIZThqQ08rd3lBeWl5MFRPRmpTTkg3eEEvUWlCbzZH?=
 =?utf-8?B?OWptZ2cxczNWTm1SOFUxKzMvKzhHc0E4UlpMSDZFQ2dlakZrNU9XSXp0WXNB?=
 =?utf-8?B?cytmQzB4RkRiM25hWGdpZ1lnQ0hFOENmanN2d0NKdXJlUEZneFh2YUxaNjJV?=
 =?utf-8?B?WnJFcWhScnlvNTZrcWNlUDU4bVprem9HR29rallnZXVGTnd6UnBvZ1dqbjJa?=
 =?utf-8?B?ZVp6bk1GQkZqK2c1SkpyS0s1ZkExc2JlRWJEaE8zUmVJcGFSdjIrZHBKS0ZP?=
 =?utf-8?B?dzMrUFNONDI4NDlYdEtWYWtOZVBMSVk4Y0JydGNzYm1aKzdqellDS1dUWU5s?=
 =?utf-8?B?Tm80bUF2OUd3OUpUTEN6QytOQjI5WFl0d2ZNQmNPNDI2OWhVNldLRmhEQUtN?=
 =?utf-8?B?QjhNUlB3MjJhQXV4UmlDYkFta2JxL1RhU1hyRUxiQ2E0MjNwSnVyQnpMVlU5?=
 =?utf-8?B?MnBkK3hwMG4wSmU1eU9KTlpaZ1RaZEQ4T3hRa2hacHVjK2lCeGtObnNwMmZG?=
 =?utf-8?B?MVB1azFMQXBiZEVFcHppSTJEMWpNbmNTWW8vLy9CYytJRnFOQ3l6UkhDZEd4?=
 =?utf-8?B?Mmpwbm9BVzRZRVBHYVVNWTlmcHR3MDFTTjc4UVEydS91Z3lZbVpNRk9qVU5N?=
 =?utf-8?B?TE82WnRBV29raDZ1TVc3eFMvWCtyOTdJOHlFRTU4cVhSRWtqSkNUbkJ4SmRU?=
 =?utf-8?B?Mkc0dXdxc3ZBYXpCYlBseTNqWjlQL1JsV2RKSVJONUo4NEM5WE90YUpOS3Vm?=
 =?utf-8?B?OW4waXZXV3hRbkN3V0YyMXFNS3hDR0JjTlVlbEVaNER6c2dLMndUSzlucGda?=
 =?utf-8?B?VVVZWEFnR3ltMnRoRlRjYWlQR0hyMWVvakI3OFRQaXNxdXhnRG41bEFnc0Q4?=
 =?utf-8?B?U0RoZmk1OU9yL3ZJbXRtZHZoMzBhL3JYcmJGVStzYkZORUtuM3VGL0x3bUpL?=
 =?utf-8?B?a1JraDZQT3hwTkxlS1RnWVU0RlhoYlNOV1B0MTNrSnJVWTkydVphekE0YUsw?=
 =?utf-8?B?MGF5dWNTOVRBeC9SaWljL3UzNFl6OVdCemZ0dC9aRUFkaEM5UDV5OC9rQ2FP?=
 =?utf-8?B?ZDdXdTROWFplMlBUU0JXcDdVaVVHNVdKMDVKYi85RDhtRzQxU3FSUUNud2RC?=
 =?utf-8?B?dUhtalhSK203cTMzTTZweGQ1KzAyYlJiN21QZThiNXpFMG9jb21vdnVDa3hL?=
 =?utf-8?B?WlRiVVlzT2hGUEpHV0VvZ0RnY2xCMFBXVEJRT3JCMVdTT0ZzZzVkbkRlSlRY?=
 =?utf-8?B?VlVnRWZvUUJYYWw4NzBLRmxFdlR0aHE1cVpwKytkdFYza3Q1MlJvS3dzemtT?=
 =?utf-8?B?akdyc0xKRnVBPT0=?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB7PR08MB2987.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: <92F7262822C88D4EAAF69B4A71C26863@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR08MB8783
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AM3PEPF00009B9B.eurprd04.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	c4dfd546-b06e-4335-b9da-08dd7358a0bd
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|376014|14060799003|35042699022|1800799024|36860700013|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?QU9HT3J5cTdzYjJUTVErSE4rRkVLRDV4NWowSFF5ZEZLZm1aNm5nL29HSzhq?=
 =?utf-8?B?MEkwalRZT1dTT1FCZXBJeWlRWFk2S1VPWm1Jcjl3SXkwbVIySEg4cUZyc2Zq?=
 =?utf-8?B?eUkxd1VoWis3dDZKMUMrUi83Unh4UmJ0WFp2QlQwMTRzWEtha2Erd3czYVV2?=
 =?utf-8?B?NVpaalN5SHhoSGtkU3BxZkxTZ0QxNWtMOXBiT3BMVEdGSzF2WXZxZEo5L245?=
 =?utf-8?B?MmNNeElJeFZPdkFHb24zRTFkVmtZZTFNZnJiNnJ4c3FrSjFSM0VNVzArZm01?=
 =?utf-8?B?bHRZYWxpeGNFS0FpL1h5NFBNeG9GcGkxUkFtcktXYXpaNzNuQ3prMFUwOFZ5?=
 =?utf-8?B?ZXFOa0owTUhPdW00eDI1bTVaQytCODRFdStXRDN1OFl0algrYndzRmh5YmY2?=
 =?utf-8?B?cUhMNEluaW1OUGpMSDVLdnFRQnppNldCRXIrYzZQSENJekh6OTNMV3hEdmVE?=
 =?utf-8?B?N1Q1NU10citFZ3Y4NTA5YnV5V2daYmU1KzdvcmlrT1R4UElNOWJRTnN6M2pY?=
 =?utf-8?B?YlNnNld6SWtjbTVqRVNGb3VUZVpPWTl6cGJTdnZYdVF0ZkF3ODJLODN0MWV4?=
 =?utf-8?B?bkxzcmgwd2ZmdUtpeVdvTENqczlkZXB0dDdmOCtiQ3BQOVUwRmc4Z01tYWRt?=
 =?utf-8?B?UG1sNytOT0g3dkNnS0p6ZTFZTE5qVXY2US9GSnBxTnRTamFUb1JzQ1pXSnhQ?=
 =?utf-8?B?RlpaNldkZFpHRzNrQWw4MFNCcVBOeGorV0EwZER1N1FHL1g4Y1pxbll3ZndP?=
 =?utf-8?B?VjRKZ0htOWgrRUM5RU9lVmFPdGZNNUNZV1Q4aU4yY2VrNzJJVjdNbDFCbEU2?=
 =?utf-8?B?TmVoem13V2xpVWpINFpZbCs5WVNBQkgxS1RKdm9GQ0lXby9BbURkRGw5MzFT?=
 =?utf-8?B?WHFSY1MzSHZlR3ozUThjSjEvaGRyb2N0L2w3RWhlUkhORHA0NGJJdDJpSlVV?=
 =?utf-8?B?dWh2b3czNjVlbldtWWtnMU9wM2lBd3pjSm9XRkZ2Q2dOdFBYZ0tKZWwyWHow?=
 =?utf-8?B?WGVrdklMZTJUSUprTzd0QmxYRW1CMk5jUHhSZk5qdUR3cExRYTc3bSttdmlQ?=
 =?utf-8?B?WEtWUWhUVTNlSFhYSWN4RUxYMk1vTXdQdC9VYk00bU9saE5ncEpkM2pNczlz?=
 =?utf-8?B?c0FaUVo4dE1VM1F3SVF2bWgzNi9DK0swc1MyTE8zemJ3SVZXQWxDNXJlREJu?=
 =?utf-8?B?S2RXclhEdG1CcE12VDVZc1lnQlE5d1N4Wnc3WUo3ZWhlRDJhSDJJb2xucjVV?=
 =?utf-8?B?VWRhaEtzY0hKM1dkM2F2bFZPUVEydDhmSzVZQ3BGNmxBVXV5SE82Q1FaR0p3?=
 =?utf-8?B?UGpXM2owVmwrMk1IVXZ2bjNMdnR4ZitqT3VpZFhJYUhMSkcxMTZQL0x5OFhX?=
 =?utf-8?B?c0ltNUpZYXZkRTJOZFo2MURZM2ZFZ3NkMG9pODdpTzJ3dW11QzJvZndUNDFJ?=
 =?utf-8?B?ZE54RUlCc0hpc1d3OTRGZWY0WFkwNTErSDFBU1pCOGpqdlpEZW1xdU1idlFF?=
 =?utf-8?B?dURmU09sV0h5WEowVlZkZkJ6VkR0Tkp4b2d6UnBOZktVWVUrZDlmMnk2MFNr?=
 =?utf-8?B?NjUrOHM5bWJuV0FId21sUnpEd24zUDNXVVl2SlByd3RnVmhFRkViUzBxV0do?=
 =?utf-8?B?K1BpL3dOVnVtR1FMYVRCak05RnRsbzBac3dSd3lkcTZUbURWZ1lDOFRKYkYy?=
 =?utf-8?B?TG9aeHVFbU1kcW9Bdjl4RkRMVkRuczJETXJkK1JGZysrWHF0RHJCeGRZQndC?=
 =?utf-8?B?blhKOGgxektKZ25TbzQySWFtNkM3L1p0d1BiMG4raWlJTkZWei9uRC9naFEr?=
 =?utf-8?B?QnlqS0VjQ01Pdk1udGR4OGo5Yit0Tk5HSjR1TFJIaEwvWlF6WUxZWmhDcEZx?=
 =?utf-8?B?dUtVaE9mUWRCdDdVU2k3MUlsYUNBSUpJdEZDTFNtbU9QWmNHbmxXdmlEeGNi?=
 =?utf-8?B?WkcvZWo0eHd0cEVTT0hYSWpLOUZZSnBBUHBGMzE1WDlXU1FOUmwra3Y5ZUMx?=
 =?utf-8?Q?9QEJiDNNk8oYe/FMCZdC/hIfRbJBkc=3D?=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(376014)(14060799003)(35042699022)(1800799024)(36860700013)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Apr 2025 09:11:37.0781
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 562b7b36-ae72-4d8e-a375-08dd7358b40f
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AM3PEPF00009B9B.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR08MB7336

SGkgQXlhbiwNCg0KPiBPbiAzIEFwciAyMDI1LCBhdCAxODoxMiwgQXlhbiBLdW1hciBIYWxkZXIg
PGF5YW4ua3VtYXIuaGFsZGVyQGFtZC5jb20+IHdyb3RlOg0KPiANCj4gQWRkIHN0dWJzIHRvIGVu
YWJsZSBjb21waWxhdGlvbg0KPiANCj4gU2lnbmVkLW9mZi1ieTogQXlhbiBLdW1hciBIYWxkZXIg
PGF5YW4ua3VtYXIuaGFsZGVyQGFtZC5jb20+DQo+IC0tLQ0KPiANCj4gQ2hhbmdlcyBmcm9tIDot
DQo+IA0KPiB2MSwgdjIgLQ0KPiAxLiBOZXcgcGF0Y2ggaW50cm9kdWNlZCBpbiB2My4NCj4gMi4g
U2hvdWxkIGJlIGFwcGxpZWQgb24gdG9wIG9mDQo+IGh0dHBzOi8vcGF0Y2h3b3JrLmtlcm5lbC5v
cmcvcHJvamVjdC94ZW4tZGV2ZWwvY292ZXIvMjAyNTAzMTYxOTI0NDUuMjM3NjQ4NC0xLWx1Y2Eu
ZmFuY2VsbHVAYXJtLmNvbS8NCj4gDQo+IHYzIC0NCj4gMS4gQWRkIHN0dWJzIGZvciBtYXBfZG9t
YWluX3BhZ2UoKSBhbmQgc2ltaWxhciBmdW5jdGlvbnMuDQo+IA0KPiAyLiAnQlVHX09OKCJ1bmlt
cGxlbWVudGVkIiknIGlzIGtlcHQgaW4gYWxsIHRoZSBzdHVicy4NCj4gDQo+IHhlbi9hcmNoL2Fy
bS9hcm0zMi9tcHUvTWFrZWZpbGUgIHwgIDIgKysNCj4geGVuL2FyY2gvYXJtL2FybTMyL21wdS9w
Mm0uYyAgICAgfCAxOCArKysrKysrKysrKysrKw0KPiB4ZW4vYXJjaC9hcm0vYXJtMzIvbXB1L3Nt
cGJvb3QuYyB8IDIzICsrKysrKysrKysrKysrKysrKw0KPiB4ZW4vYXJjaC9hcm0vaW5jbHVkZS9h
c20vbW0uaCAgICB8ICA1ICsrKysNCj4geGVuL2FyY2gvYXJtL21wdS9NYWtlZmlsZSAgICAgICAg
fCAgMSArDQo+IHhlbi9hcmNoL2FybS9tcHUvZG9tYWluX3BhZ2UuYyAgIHwgNDAgKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysNCj4gNiBmaWxlcyBjaGFuZ2VkLCA4OSBpbnNlcnRpb25z
KCspDQo+IGNyZWF0ZSBtb2RlIDEwMDY0NCB4ZW4vYXJjaC9hcm0vYXJtMzIvbXB1L3AybS5jDQo+
IGNyZWF0ZSBtb2RlIDEwMDY0NCB4ZW4vYXJjaC9hcm0vYXJtMzIvbXB1L3NtcGJvb3QuYw0KPiBj
cmVhdGUgbW9kZSAxMDA2NDQgeGVuL2FyY2gvYXJtL21wdS9kb21haW5fcGFnZS5jDQo+IA0KPiAN
Cg0KPiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL21tLmggYi94ZW4vYXJj
aC9hcm0vaW5jbHVkZS9hc20vbW0uaA0KPiBpbmRleCBmYmZmYWNjZWY0Li4yYTUyY2Y1MzBmIDEw
MDY0NA0KPiAtLS0gYS94ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vbW0uaA0KPiArKysgYi94ZW4v
YXJjaC9hcm0vaW5jbHVkZS9hc20vbW0uaA0KPiBAQCAtMTcxLDEyICsxNzEsMTcgQEAgc3RydWN0
IHBhZ2VfaW5mbw0KPiAjZGVmaW5lIFBHQ19uZWVkX3NjcnViICAgIFBHQ19hbGxvY2F0ZWQNCj4g
DQo+ICNpZmRlZiBDT05GSUdfQVJNXzMyDQo+ICsjaWZkZWYgQ09ORklHX01QVQ0KPiArI2RlZmlu
ZSBpc194ZW5faGVhcF9wYWdlKHBhZ2UpICh7IEJVR19PTigidW5pbXBsZW1lbnRlZCIpOyBmYWxz
ZTsgfSkNCj4gKyNkZWZpbmUgaXNfeGVuX2hlYXBfbWZuKG1mbikgKHsgQlVHX09OKCJ1bmltcGxl
bWVudGVkIik7IGZhbHNlOyB9KQ0KPiArI2Vsc2UgLyogIUNPTkZJR19NUFUgKi8NCj4gI2RlZmlu
ZSBpc194ZW5faGVhcF9wYWdlKHBhZ2UpIGlzX3hlbl9oZWFwX21mbihwYWdlX3RvX21mbihwYWdl
KSkNCj4gI2RlZmluZSBpc194ZW5faGVhcF9tZm4obWZuKSAoeyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwNCj4gICAgIHVuc2lnbmVkIGxvbmcgbWZuXyA9IG1mbl94KG1mbik7ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gICAgIChtZm5fID49IG1mbl94KGRpcmVjdG1h
cF9tZm5fc3RhcnQpICYmICAgICAgICAgICAgICAgICAgICAgIFwNCj4gICAgICBtZm5fIDwgbWZu
X3goZGlyZWN0bWFwX21mbl9lbmQpKTsgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gfSkN
Cj4gKyNlbmRpZiAvKiAhQ09ORklHX01QVSAqLw0KPiAjZWxzZQ0KPiAjZGVmaW5lIGlzX3hlbl9o
ZWFwX3BhZ2UocGFnZSkgKChwYWdlKS0+Y291bnRfaW5mbyAmIFBHQ194ZW5faGVhcCkNCj4gI2Rl
ZmluZSBpc194ZW5faGVhcF9tZm4obWZuKSBcDQoNCknigJl2ZSBoYWQgYSBsb29rIG9uIHRoaXMs
IGlmIHdlIHdhbnQgdG8gZ2V0IHJpZCBvZiBzb21lICNpZmRlZiB3ZSBjb3VsZCBkbyB0aGlzOg0K
DQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL21tLmggYi94ZW4vYXJjaC9h
cm0vaW5jbHVkZS9hc20vbW0uaA0KaW5kZXggMmE1MmNmNTMwZjI1Li41YjY3YzBmOGJiMWMgMTAw
NjQ0DQotLS0gYS94ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vbW0uaA0KKysrIGIveGVuL2FyY2gv
YXJtL2luY2x1ZGUvYXNtL21tLmgNCkBAIC0xNzAsMTkgKzE3MCw3IEBAIHN0cnVjdCBwYWdlX2lu
Zm8NCiAjZGVmaW5lIF9QR0NfbmVlZF9zY3J1YiAgIF9QR0NfYWxsb2NhdGVkDQogI2RlZmluZSBQ
R0NfbmVlZF9zY3J1YiAgICBQR0NfYWxsb2NhdGVkDQogDQotI2lmZGVmIENPTkZJR19BUk1fMzIN
Ci0jaWZkZWYgQ09ORklHX01QVQ0KLSNkZWZpbmUgaXNfeGVuX2hlYXBfcGFnZShwYWdlKSAoeyBC
VUdfT04oInVuaW1wbGVtZW50ZWQiKTsgZmFsc2U7IH0pDQotI2RlZmluZSBpc194ZW5faGVhcF9t
Zm4obWZuKSAoeyBCVUdfT04oInVuaW1wbGVtZW50ZWQiKTsgZmFsc2U7IH0pDQotI2Vsc2UgLyog
IUNPTkZJR19NUFUgKi8NCi0jZGVmaW5lIGlzX3hlbl9oZWFwX3BhZ2UocGFnZSkgaXNfeGVuX2hl
YXBfbWZuKHBhZ2VfdG9fbWZuKHBhZ2UpKQ0KLSNkZWZpbmUgaXNfeGVuX2hlYXBfbWZuKG1mbikg
KHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQotICAgIHVuc2lnbmVkIGxvbmcg
bWZuXyA9IG1mbl94KG1mbik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCi0gICAgKG1m
bl8gPj0gbWZuX3goZGlyZWN0bWFwX21mbl9zdGFydCkgJiYgICAgICAgICAgICAgICAgICAgICAg
XA0KLSAgICAgbWZuXyA8IG1mbl94KGRpcmVjdG1hcF9tZm5fZW5kKSk7ICAgICAgICAgICAgICAg
ICAgICAgICAgICBcDQotfSkNCi0jZW5kaWYgLyogIUNPTkZJR19NUFUgKi8NCi0jZWxzZQ0KKyNp
ZmRlZiBDT05GSUdfQVJNXzY0DQogI2RlZmluZSBpc194ZW5faGVhcF9wYWdlKHBhZ2UpICgocGFn
ZSktPmNvdW50X2luZm8gJiBQR0NfeGVuX2hlYXApDQogI2RlZmluZSBpc194ZW5faGVhcF9tZm4o
bWZuKSBcDQogICAgIChtZm5fdmFsaWQobWZuKSAmJiBpc194ZW5faGVhcF9wYWdlKG1mbl90b19w
YWdlKG1mbikpKQ0KZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9tbXUvbW0u
aCBiL3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9tbXUvbW0uaA0KaW5kZXggY2FiYTk4N2VkYzg1
Li45Yjk4ZDEyYjA3NmIgMTAwNjQ0DQotLS0gYS94ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vbW11
L21tLmgNCisrKyBiL3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9tbXUvbW0uaA0KQEAgLTIxLDYg
KzIxLDE1IEBAIGV4dGVybiB1bnNpZ25lZCBsb25nIGRpcmVjdG1hcF9iYXNlX3BkeDsNCiANCiAj
ZGVmaW5lIGZyYW1lX3RhYmxlICgoc3RydWN0IHBhZ2VfaW5mbyAqKUZSQU1FVEFCTEVfVklSVF9T
VEFSVCkNCiANCisjaWZkZWYgQ09ORklHX0FSTV8zMg0KKyNkZWZpbmUgaXNfeGVuX2hlYXBfcGFn
ZShwYWdlKSBpc194ZW5faGVhcF9tZm4ocGFnZV90b19tZm4ocGFnZSkpDQorI2RlZmluZSBpc194
ZW5faGVhcF9tZm4obWZuKSAoeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisg
ICAgdW5zaWduZWQgbG9uZyBtZm5fID0gbWZuX3gobWZuKTsgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXA0KKyAgICAobWZuXyA+PSBtZm5feChkaXJlY3RtYXBfbWZuX3N0YXJ0KSAmJiAgICAg
ICAgICAgICAgICAgICAgICBcDQorICAgICBtZm5fIDwgbWZuX3goZGlyZWN0bWFwX21mbl9lbmQp
KTsgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCit9KQ0KKyNlbmRpZg0KKw0KICNkZWZpbmUg
dmlydF90b19tYWRkcih2YSkgKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcDQogICAgIHZhZGRyX3QgdmFfID0gKHZhZGRyX3QpKHZhKTsgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICAgKHBhZGRyX3Qp
KCh2YV90b19wYXIodmFfKSAmIFBBRERSX01BU0sgJiBQQUdFX01BU0spIHwgKHZhXyAmIH5QQUdF
X01BU0spKTsgXA0KZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9tcHUvbW0u
aCBiL3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9tcHUvbW0uaA0KaW5kZXggODZmMzNkOTgzNmI3
Li5iZmQ4NDBmYTVkMzEgMTAwNjQ0DQotLS0gYS94ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vbXB1
L21tLmgNCisrKyBiL3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9tcHUvbW0uaA0KQEAgLTEzLDYg
KzEzLDExIEBAIGV4dGVybiBzdHJ1Y3QgcGFnZV9pbmZvICpmcmFtZV90YWJsZTsNCiANCiAjZGVm
aW5lIHZpcnRfdG9fbWFkZHIodmEpICgocGFkZHJfdCkoKHZhZGRyX3QpKHZhKSAmIFBBRERSX01B
U0spKQ0KIA0KKyNpZmRlZiBDT05GSUdfQVJNXzMyDQorI2RlZmluZSBpc194ZW5faGVhcF9wYWdl
KHBhZ2UpICh7IEJVR19PTigidW5pbXBsZW1lbnRlZCIpOyBmYWxzZTsgfSkNCisjZGVmaW5lIGlz
X3hlbl9oZWFwX21mbihtZm4pICh7IEJVR19PTigidW5pbXBsZW1lbnRlZCIpOyBmYWxzZTsgfSkN
CisjZW5kaWYNCisNCiAvKiBPbiBNUFUgc3lzdGVtcyB0aGVyZSBpcyBubyB0cmFuc2xhdGlvbiwg
bWEgPT0gdmEuICovDQogc3RhdGljIGlubGluZSB2b2lkICptYWRkcl90b192aXJ0KHBhZGRyX3Qg
bWEpDQogew0KDQpCdXQgZmVlbCBmcmVlIHRvIGlnbm9yZSBpZiBpdOKAmXMgbm90IGRlc2lyYWJs
ZS4NCg0KDQo+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vbXB1L01ha2VmaWxlIGIveGVuL2Fy
Y2gvYXJtL21wdS9NYWtlZmlsZQ0KPiBpbmRleCAyMWJiYzUxN2I1Li5mZjIyMTAxMWQ1IDEwMDY0
NA0KPiAtLS0gYS94ZW4vYXJjaC9hcm0vbXB1L01ha2VmaWxlDQo+ICsrKyBiL3hlbi9hcmNoL2Fy
bS9tcHUvTWFrZWZpbGUNCj4gQEAgLTIsMyArMiw0IEBAIG9iai15ICs9IG1tLm8NCj4gb2JqLXkg
Kz0gcDJtLm8NCj4gb2JqLXkgKz0gc2V0dXAuaW5pdC5vDQo+IG9iai15ICs9IHZtYXAubw0KPiAr
b2JqLSQoQ09ORklHX0FSTV8zMikgKz0gZG9tYWluX3BhZ2Uubw0KPiBkaWZmIC0tZ2l0IGEveGVu
L2FyY2gvYXJtL21wdS9kb21haW5fcGFnZS5jIGIveGVuL2FyY2gvYXJtL21wdS9kb21haW5fcGFn
ZS5jDQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAwMDAuLmI5ZWJiMDNk
NjcNCj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi94ZW4vYXJjaC9hcm0vbXB1L2RvbWFpbl9wYWdl
LmMNCj4gQEAgLTAsMCArMSw0MCBAQA0KPiArLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQ
TC0yLjAtb3ItbGF0ZXIgKi8NCj4gKyNpbmNsdWRlIDx4ZW4vZG9tYWluX3BhZ2UuaD4NCj4gKw0K
PiArdm9pZCAqbWFwX2RvbWFpbl9wYWdlX2dsb2JhbChtZm5fdCBtZm4pDQo+ICt7DQo+ICsgICAg
QlVHX09OKCJ1bmltcGxlbWVudGVkIik7DQo+ICsgICAgcmV0dXJuICh2b2lkKikwOw0KDQpyZXR1
cm4gTlVMTD8gaGVyZSBhbmQgYmVsb3cNCg0KPiArfQ0KPiArDQo+ICsvKiBNYXAgYSBwYWdlIG9m
IGRvbWhlYXAgbWVtb3J5ICovDQo+ICt2b2lkICptYXBfZG9tYWluX3BhZ2UobWZuX3QgbWZuKQ0K
PiArew0KPiArICAgIEJVR19PTigidW5pbXBsZW1lbnRlZCIpOw0KPiArICAgIHJldHVybiAodm9p
ZCopMDsNCj4gK30NCj4gKw0KPiArLyogUmVsZWFzZSBhIG1hcHBpbmcgdGFrZW4gd2l0aCBtYXBf
ZG9tYWluX3BhZ2UoKSAqLw0KPiArdm9pZCB1bm1hcF9kb21haW5fcGFnZShjb25zdCB2b2lkICpw
dHIpDQo+ICt7DQo+ICsgICAgQlVHX09OKCJ1bmltcGxlbWVudGVkIik7DQo+ICt9DQo+ICsNCj4g
K21mbl90IGRvbWFpbl9wYWdlX21hcF90b19tZm4oY29uc3Qgdm9pZCAqcHRyKQ0KPiArew0KPiAr
ICAgIEJVR19PTigidW5pbXBsZW1lbnRlZCIpOw0KDQpOb3QgcmVhbGx5IG5lY2Vzc2FyeSwgYnV0
IGlmIHlvdSB3YW50OiByZXR1cm4gSU5WQUxJRF9NRk47DQoNCj4gK30NCj4gKw0KPiArdm9pZCB1
bm1hcF9kb21haW5fcGFnZV9nbG9iYWwoY29uc3Qgdm9pZCAqdmEpDQo+ICt7DQo+ICsgICAgQlVH
X09OKCJ1bmltcGxlbWVudGVkIik7DQo+ICt9DQo+ICsNCj4gKy8qDQo+ICsgKiBMb2NhbCB2YXJp
YWJsZXM6DQo+ICsgKiBtb2RlOiBDDQo+ICsgKiBjLWZpbGUtc3R5bGU6ICJCU0QiDQo+ICsgKiBj
LWJhc2ljLW9mZnNldDogNA0KPiArICogaW5kZW50LXRhYnMtbW9kZTogbmlsDQo+ICsgKiBFbmQ6
DQo+ICsgKi8NCj4gLS0gDQo+IDIuMjUuMQ0KPiANCj4gDQoNCg==


From xen-devel-bounces@lists.xenproject.org Fri Apr 04 09:49:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 04 Apr 2025 09:49:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.938000.1338838 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0dgF-00053Q-Lt; Fri, 04 Apr 2025 09:49:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 938000.1338838; Fri, 04 Apr 2025 09: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 1u0dgF-00053J-JN; Fri, 04 Apr 2025 09:49:43 +0000
Received: by outflank-mailman (input) for mailman id 938000;
 Fri, 04 Apr 2025 09:49:42 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=yoQk=WW=bounce.vates.tech=bounce-md_30504962.67efab2f.v1-c3e6aab71ed94423bea11c3c0a6a19ba@srs-se1.protection.inumbo.net>)
 id 1u0dgE-0004pH-1U
 for xen-devel@lists.xenproject.org; Fri, 04 Apr 2025 09:49:42 +0000
Received: from mail186-2.suw21.mandrillapp.com
 (mail186-2.suw21.mandrillapp.com [198.2.186.2])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1de0ab3a-113a-11f0-9eaa-5ba50f476ded;
 Fri, 04 Apr 2025 11:49:36 +0200 (CEST)
Received: from pmta10.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail186-2.suw21.mandrillapp.com (Mailchimp) with ESMTP id 4ZTYjW1nSvzS62PwT
 for <xen-devel@lists.xenproject.org>; Fri,  4 Apr 2025 09:49:35 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 c3e6aab71ed94423bea11c3c0a6a19ba; Fri, 04 Apr 2025 09:49: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: 1de0ab3a-113a-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1743760175; x=1744030175;
	bh=L6j027iimQgxGcnmldIIXGn1WhbaXyI2jdeQ52zotUM=;
	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=Ke4Q9YBpahNvj6SX0beD4t4f6eTW79lJByjoNk/qYYCcJRENMiyMVMMCm6j5sMWVp
	 CHlkdSFfhbxAqJ+O1p6uSSl8x204nOaoKhQmPLEskLsFOKYHosBfIaa1w8FQ4o7TEp
	 3XLp0sjMEMaON3Os034DJZFyw+cABLE8r26rWzwQoAxc6OXd2SJcCwqIT4TtB6zaSP
	 MnyO1+OHEjazvjVLp32maXXRntZ0njO6nXd0SWSiOE0/DxPEcVdcfW/fIJzSoGxjaa
	 VOkFJlXoiairinZQvOHCKWTtsNBhWtp1n48xcSPv2FZDFwGcKIV/dSo/SaiKgjn5m1
	 8WSFkSsBvSD/g==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1743760175; x=1744020675; i=teddy.astie@vates.tech;
	bh=L6j027iimQgxGcnmldIIXGn1WhbaXyI2jdeQ52zotUM=;
	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=M9TEAbZx34JpPJfz1gHk2GzHZmQxKFd2+n3ZWaOQ7bl7RzIteCwtz0o8fHBzOHo1L
	 HIb/xk0C7UUC8MrwBkU9vlz4GKdcJsdWSxvvtn+MCtGRXcPd0KKKfQf+/4mtD6nHvy
	 IWdfYZPBieChbYNu0uJivHvx/phLycPViSzatuJCDcG98Tx6bB1+A41WJLm5fOnyNB
	 RmXDN9d+PzQ+KrqrUvNGNtAkJYF7usgR13iAJnDK4KDexWlPq1OsmdtVTrySJEmzU8
	 rxeQ+yzCFFXXpCl/ItxgZ5Cncv8awSTnwhLd01V2LD5wNaEaZP7fTSYqOvrwTtH0Jb
	 Nf29GRb+rSelg==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[PATCH=20v2=201/2]=20x86/amd:=20Add=20guest=20support=20for=20AMD=20TCE?=
X-Mailer: git-send-email 2.47.2
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1743760173257
To: xen-devel@lists.xenproject.org
Cc: "Teddy Astie" <teddy.astie@vates.tech>, "Oleksii Kurochko" <oleksii.kurochko@gmail.com>, "Community Manager" <community.manager@xenproject.org>, "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: <885867a86eb41fd78df24b6599312b54be8e20ca.1743756934.git.teddy.astie@vates.tech>
In-Reply-To: <cover.1743756934.git.teddy.astie@vates.tech>
References: <cover.1743756934.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.c3e6aab71ed94423bea11c3c0a6a19ba?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250404:md
Date: Fri, 04 Apr 2025 09:49:35 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

AMD Translation Cache Extension is a flag that can be enabled in the EFER MSR to optimize
some TLB flushes. Expose this flag to guest if supported by hardware.

AMD Architecture Developer Manual describe this feature as follow
> Setting this bit to 1 changes how the INVLPG, INVLPGB, and INVPCID instructions operate
> on TLB entries. When this bit is 0, these instructions remove the target PTE from the
> TLB as well as all upper-level table entries that are cached in the TLB, whether or not
> they are associated with the target PTE. When this bit is set, these instructions will
> remove the target PTE and only those upper-level entries that lead to the target PTE in
> the page table hierarchy, leaving unrelated upper-level entries intact. This may provide
> a performance benefit.

Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
---
 CHANGELOG.md                                | 1 +
 xen/arch/x86/hvm/hvm.c                      | 3 +++
 xen/arch/x86/include/asm/msr-index.h        | 3 ++-
 xen/include/public/arch-x86/cpufeatureset.h | 1 +
 4 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 8f6afa5c85..dbfecefbd4 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -18,6 +18,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
    - Support PCI passthrough for HVM domUs when dom0 is PVH (note SR-IOV
      capability usage is not yet supported on PVH dom0).
    - Smoke tests for the FreeBSD Xen builds in Cirrus CI.
+   - Guest support for AMD Translation Cache Extension feature.
 
 ### Removed
 
diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index 5950f3160f..184357b042 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -959,6 +959,9 @@ const char *hvm_efer_valid(const struct vcpu *v, uint64_t value,
     if ( (value & EFER_FFXSE) && !p->extd.ffxsr )
         return "FFXSE without feature";
 
+    if ( (value & EFER_TCE) && !p->extd.tce )
+        return "TCE without feature";
+
     if ( (value & EFER_AIBRSE) && !p->extd.auto_ibrs )
         return "AutoIBRS without feature";
 
diff --git a/xen/arch/x86/include/asm/msr-index.h b/xen/arch/x86/include/asm/msr-index.h
index 22d9e76e55..d8576aec1c 100644
--- a/xen/arch/x86/include/asm/msr-index.h
+++ b/xen/arch/x86/include/asm/msr-index.h
@@ -200,11 +200,12 @@
 #define  EFER_NXE                           (_AC(1, ULL) << 11) /* No Execute Enable */
 #define  EFER_SVME                          (_AC(1, ULL) << 12) /* Secure Virtual Machine Enable */
 #define  EFER_FFXSE                         (_AC(1, ULL) << 14) /* Fast FXSAVE/FXRSTOR */
+#define  EFER_TCE                           (_AC(1, ULL) << 15) /* Translation Cache Extensions */
 #define  EFER_AIBRSE                        (_AC(1, ULL) << 21) /* Automatic IBRS Enable */
 
 #define EFER_KNOWN_MASK \
     (EFER_SCE | EFER_LME | EFER_LMA | EFER_NXE | EFER_SVME | EFER_FFXSE | \
-     EFER_AIBRSE)
+     EFER_TCE | EFER_AIBRSE)
 
 #define MSR_STAR                            _AC(0xc0000081, U) /* legacy mode SYSCALL target */
 #define MSR_LSTAR                           _AC(0xc0000082, U) /* long mode SYSCALL target */
diff --git a/xen/include/public/arch-x86/cpufeatureset.h b/xen/include/public/arch-x86/cpufeatureset.h
index cc6e984a88..8182d2dbed 100644
--- a/xen/include/public/arch-x86/cpufeatureset.h
+++ b/xen/include/public/arch-x86/cpufeatureset.h
@@ -170,6 +170,7 @@ XEN_CPUFEATURE(SKINIT,        3*32+12) /*   SKINIT/STGI instructions */
 XEN_CPUFEATURE(WDT,           3*32+13) /*   Watchdog timer */
 XEN_CPUFEATURE(LWP,           3*32+15) /*   Light Weight Profiling */
 XEN_CPUFEATURE(FMA4,          3*32+16) /*A  4 operands MAC instructions */
+XEN_CPUFEATURE(TCE,           3*32+17) /*H  Translation Cache Extension support */
 XEN_CPUFEATURE(NODEID_MSR,    3*32+19) /*   NodeId MSR */
 XEN_CPUFEATURE(TBM,           3*32+21) /*A  trailing bit manipulations */
 XEN_CPUFEATURE(TOPOEXT,       3*32+22) /*   topology extensions CPUID leafs */
-- 
2.47.2



 | Vates

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Fri Apr 04 09:49:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 04 Apr 2025 09:49:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.937999.1338827 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0dgD-0004pW-F1; Fri, 04 Apr 2025 09:49:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 937999.1338827; Fri, 04 Apr 2025 09: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 1u0dgD-0004pP-CV; Fri, 04 Apr 2025 09:49:41 +0000
Received: by outflank-mailman (input) for mailman id 937999;
 Fri, 04 Apr 2025 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=v+ht=WW=bounce.vates.tech=bounce-md_30504962.67efab2e.v1-f03623a9eced4d44ae0eb291817b55b0@srs-se1.protection.inumbo.net>)
 id 1u0dgB-0004pH-CZ
 for xen-devel@lists.xenproject.org; Fri, 04 Apr 2025 09:49:39 +0000
Received: from mail186-2.suw21.mandrillapp.com
 (mail186-2.suw21.mandrillapp.com [198.2.186.2])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1dbb78f5-113a-11f0-9eaa-5ba50f476ded;
 Fri, 04 Apr 2025 11:49:36 +0200 (CEST)
Received: from pmta10.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail186-2.suw21.mandrillapp.com (Mailchimp) with ESMTP id 4ZTYjV4bv4zS62NM1
 for <xen-devel@lists.xenproject.org>; Fri,  4 Apr 2025 09:49:34 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 f03623a9eced4d44ae0eb291817b55b0; Fri, 04 Apr 2025 09:49: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: 1dbb78f5-113a-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1743760174; x=1744030174;
	bh=Zgls6Ay5FbMmCHdU+8uvrNvgwqWBCQyFngTdRnG5GHY=;
	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=YQVMQWUwLvPQN2HBZ0434bwGajPluosCSXTILPhZMJPJEMNPphv5gpNBP4t75rWlV
	 UEPSWKd5WWF+HSLzLT0Wg98u1KUfkvgrYni9qBrPwvHZOKH2Gw4FClXRWM0CZPDr9+
	 guheX5oLqF3HXrVufElvKyHCVAS7Vv2p15ftigYaofHw/CpJYUQzEtuqR+SvPtUMeN
	 E3JRNXdHJg1nL5iUMd7xboeZXcVwMIl58mlqggKenDDZsnqvc5F44umXHRXZcK/kvb
	 eUl1DAUB3j20hWNKXXmcWducyZ/dOflFiDWEgwAQY7eXp9Lid3bdumk80/JRRDpYkH
	 nLQIKVIpa7G0Q==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1743760174; x=1744020674; i=teddy.astie@vates.tech;
	bh=Zgls6Ay5FbMmCHdU+8uvrNvgwqWBCQyFngTdRnG5GHY=;
	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=js6ay4DCZJsxIs51OKZgDpMpf6EtEvGbxwoPUfIOKbm7plNYE2KQQxQ0QxOfxzZsw
	 m1YqG0rCDj75zk3kUjNOSowg9tbmB1YJWZb6lAYLxAtciTzBWyNlxqF2JNv8REKFqU
	 iK8gghvqyzg1sma0CYGyflrEfria2VM4440JLLl92DHaCSkpWYC0tTHHls2xhO1i+6
	 fIGGLlBEwK3GcGx9y4vWUDEo99VOKWqXBgvgVWFamKAayM+furmYhlmnqZ3o5c6Cay
	 dEzsndhgeDLchiNhOU+vRsD8/Ru6TpfvgXETHF3mC6K4NUV/9kVrJ9tbSQWHTTMJno
	 Tu5J6as5MEjhw==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[PATCH=20v2=202/2]=20x86/amd:=20Enable=20TCE=20in=20Xen?=
X-Mailer: git-send-email 2.47.2
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1743760173717
To: xen-devel@lists.xenproject.org
Cc: "Teddy Astie" <teddy.astie@vates.tech>, "Oleksii Kurochko" <oleksii.kurochko@gmail.com>, "Community Manager" <community.manager@xenproject.org>, "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: <460c58c78e956ca62cc80356536dbdb45fa73779.1743756934.git.teddy.astie@vates.tech>
In-Reply-To: <cover.1743756934.git.teddy.astie@vates.tech>
References: <cover.1743756934.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.f03623a9eced4d44ae0eb291817b55b0?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250404:md
Date: Fri, 04 Apr 2025 09:49:34 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Aside exposing this flag to guests, Xen can also make use of it
to reduce the cost of some TLB flushes. Enable this flag if supported
by hardware.

Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
---
v2:
 - Add changelog entry
 - use trampoline_efer
 - use cpu_has_tce instead of opencoded boot_cpu_has(X86_FEATURE_TCE)
---
 CHANGELOG.md                          | 2 +-
 xen/arch/x86/include/asm/cpufeature.h | 1 +
 xen/arch/x86/setup.c                  | 8 ++++++++
 3 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index dbfecefbd4..375905e68a 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -18,7 +18,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
    - Support PCI passthrough for HVM domUs when dom0 is PVH (note SR-IOV
      capability usage is not yet supported on PVH dom0).
    - Smoke tests for the FreeBSD Xen builds in Cirrus CI.
-   - Guest support for AMD Translation Cache Extension feature.
+   - Guest and Xen support for AMD Translation Cache Extension feature.
 
 ### Removed
 
diff --git a/xen/arch/x86/include/asm/cpufeature.h b/xen/arch/x86/include/asm/cpufeature.h
index 05399fb9c9..ab6d07b767 100644
--- a/xen/arch/x86/include/asm/cpufeature.h
+++ b/xen/arch/x86/include/asm/cpufeature.h
@@ -114,6 +114,7 @@ static inline bool boot_cpu_has(unsigned int feat)
 #define cpu_has_xop             boot_cpu_has(X86_FEATURE_XOP)
 #define cpu_has_skinit          boot_cpu_has(X86_FEATURE_SKINIT)
 #define cpu_has_fma4            boot_cpu_has(X86_FEATURE_FMA4)
+#define cpu_has_tce             boot_cpu_has(X86_FEATURE_TCE)
 #define cpu_has_tbm             boot_cpu_has(X86_FEATURE_TBM)
 
 /* CPUID level 0x0000000D:1.eax */
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index d70abb7e0c..0e2e7d012f 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -2008,6 +2008,14 @@ void asmlinkage __init noreturn __start_xen(void)
     if ( cpu_has_pku )
         set_in_cr4(X86_CR4_PKE);
 
+    if ( cpu_has_tce )
+    {
+        printk("Enabling AMD TCE\n");
+
+        write_efer(read_efer() | EFER_TCE);
+        trampoline_efer |= EFER_TCE;
+    }
+
     if ( opt_invpcid && cpu_has_invpcid )
         use_invpcid = true;
 
-- 
2.47.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 Apr 04 10:01:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 04 Apr 2025 10:01:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.938026.1338848 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0drA-0001Yf-Om; Fri, 04 Apr 2025 10:01:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 938026.1338848; Fri, 04 Apr 2025 10:01: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 1u0drA-0001YY-La; Fri, 04 Apr 2025 10:01:00 +0000
Received: by outflank-mailman (input) for mailman id 938026;
 Fri, 04 Apr 2025 10:01: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=56zs=WW=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u0drA-0001YS-6m
 for xen-devel@lists.xenproject.org; Fri, 04 Apr 2025 10:01:00 +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 ac9a15af-113b-11f0-9ffb-bf95429c2676;
 Fri, 04 Apr 2025 12:00:44 +0200 (CEST)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-43ce71582e9so12418905e9.1
 for <xen-devel@lists.xenproject.org>; Fri, 04 Apr 2025 03:00:44 -0700 (PDT)
Received: from [10.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-39c30226bbfsm4028951f8f.90.2025.04.04.03.00.43
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 04 Apr 2025 03:00:43 -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: ac9a15af-113b-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743760844; x=1744365644; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Me87VXmAugcGrPspPCXCRCagC1gzwknzvFTp2wEZ5wo=;
        b=FmKK9xty0o8M0cBSDFnrHpumpeaMolZ4ttDHuEvh1D2SYHdt7u22PlRW0ktrF4id1J
         vQV8E7W/STpczAj8GzuhI+rwdPwzOG7khq3Cg5X7Apt0R+3Ve0Sx6ptmJz11mZ8nMLNB
         iRBDeJW38uIsteN1wyX0q5OboVqAqQk2EC8e0QYIdfWoGFdZRyawdPkjC+N94Ovg/dNK
         mejb5WzktLGVO0h0BlIYNDSGBNoT0fAeCyoDIGNSsez+skO5G9jsSugo5frG0b3An2mB
         PVJUzds/N4kJZkBaqRgvnRdb1ah9lg2wJyBTgdlsrpuLHkmALFwvuOVq3bf186Muvvvg
         4pXg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743760844; x=1744365644;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Me87VXmAugcGrPspPCXCRCagC1gzwknzvFTp2wEZ5wo=;
        b=RMogJE84Z5Yc7jc9D201yJ63oeuq2wLxYMsLnoJXKYE3rpv81vKwjXwXNbA+jBCCww
         RrNYAMqrfBaJRaha7738+7kiYCM53NqgLRIVBfci12FqZVQuTTuBp6lm6mziIweWSPDG
         fZPx6tC/Wlx0ejZ5C4nZKEfsCK0y4OniIRsaunT2teNE+b42CpyYzaGG4I0P0hOaQv1L
         cxEYlRn7wDt0s/9dp6OGQ7dkQPrNW9JPVrbb+rBR+kxfvneMEWbZsrw7US2FpAALZHEg
         aAGa9o5loF5Pyxb+NotIpmt61iQRiutxl862S3XjShxIRx2PqdTF+wkF2ehkpenTxbBO
         iVLg==
X-Forwarded-Encrypted: i=1; AJvYcCUH/u0UZVuaYuAqUN0uHJaAQeYgMUJ2n6UnNvDmISOBjC3N/p9Kjdy0cFbuirZWh6HxCpbOGZfZUrY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxHzz7jxm1AXLtYfrt/oy00rnQzSyha2sGW9Tw83yfsiIon2ELy
	qq6AEakJ8H7H4bryGqYzjZJO25oAhZM+2HbYXPQ8Ld5M75B1TYdbql86o3t3vQ==
X-Gm-Gg: ASbGncsOjayhlaYFHTpI1VlhnwBRJs/526z4hf4CxM+NLQD4XJhdwXnje6S07MXyD4f
	7mAlPBpyQI0tH1jZu+mIfNrcHKBzFl+/8i7H9BsswGIfgyUbnMzdTOW5yuTQnjaBkg0YDWKxbrl
	Ig7RgqVRRcnBgxc00jfsOPhlzLyWtb5tbwIpEsHpM9jcZVhOVVezTypxFfevzWxoB+wotOJCXL8
	Lng2D82j56m1JdbnJfj6Lz+Q1HscC4ilcSndxFl2JavoR3g30aSwbr1LixowSUU3vXyUUP/g1aT
	5InfFFs+ghyrRoKhHSGZFCz558PxyHmaRBJEP9MxJsh9+WA0Xl1XiRsvxDX4xFwlU83Sga0L9An
	S3abojOT47asCUZVUxyi/8ekqsBvH7Q==
X-Google-Smtp-Source: AGHT+IHTs98WHl+62U/uhRijRpW2h4WgPUu0QKRXESthvEe6HsHQCshJEtpr3lb+dmMHEPZl5szBDg==
X-Received: by 2002:a05:600c:a03:b0:43d:db5:7af8 with SMTP id 5b1f17b1804b1-43ed0d9ce99mr13167355e9.21.1743760844068;
        Fri, 04 Apr 2025 03:00:44 -0700 (PDT)
Message-ID: <93111e6d-976f-45b1-810c-c52c74efa215@suse.com>
Date: Fri, 4 Apr 2025 12:00:41 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1] xen/riscv: Increase XEN_VIRT_SIZE
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <e5fa4219ccf43125e2489cc8c49b4404e6ed22ce.1743434164.git.oleksii.kurochko@gmail.com>
 <54ebdcb7-071f-411f-803a-930dc330a497@suse.com>
 <32264ccb-e566-41e0-973f-5bc7d874f970@gmail.com>
 <9d7e1553-3af8-4fc3-a400-8714d9b68411@suse.com>
 <30d8e316-aff5-498a-b2bd-448e0b2518ae@gmail.com>
 <3c2127ec-63fb-457b-8229-fc8a2b9fbf00@suse.com>
 <a4eb8bcf-7043-4661-8879-cdb33d1ca252@gmail.com>
 <14ac3e72-d21d-4b45-a434-d123152c0113@suse.com>
 <d954c167-8243-43ab-9bfb-2e47c8ea171a@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: <d954c167-8243-43ab-9bfb-2e47c8ea171a@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 04.04.2025 10:43, Oleksii Kurochko wrote:
> 
> On 4/4/25 9:52 AM, Jan Beulich wrote:
>> On 04.04.2025 09:31, Oleksii Kurochko wrote:
>>> On 4/4/25 8:56 AM, Jan Beulich wrote:
>>>> On 03.04.2025 18:20, Oleksii Kurochko wrote:
>>>>> On 4/1/25 6:04 PM, Jan Beulich wrote:
>>>>>> On 01.04.2025 17:58, Oleksii Kurochko wrote:
>>>>>>> On 3/31/25 6:14 PM, Jan Beulich wrote:
>>>>>>>> On 31.03.2025 17:20, Oleksii Kurochko wrote:
>>>>>>>>> +        _AC(XEN_VIRT_START, UL) >> vpn1_shift;
>>>>>>>>> +    const unsigned long xen_virt_end_vpn =
>>>>>>>>> +        xen_virt_starn_vpn + ((XEN_VIRT_SIZE >> vpn1_shift) - 1);
>>>>>>>>> +
>>>>>>>>>          if ((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)) ==
>>>>>>>>> -           (_AC(XEN_VIRT_START, UL) >> (PAGETABLE_ORDER + PAGE_SHIFT)));
>>>>>>>>> +    BUILD_BUG_ON(XEN_VIRT_SIZE != MB(8));
>>>>>>>> Is it necessary to be != ? Won't > suffice?
>>>>>>> It could be just > MB(2). Or perphaps >=.
>>>>>>> = would make the build fail, wouldn't it?
>>>>> I just realized that BUILD_BUG_ON() condition is compared to zero so actually everything what
>>>>> will make the condition true will cause a build fail as inside it used !(condition).
>>>> ???
>>> |BUILD_BUG_ON()| forces a compilation error if the given condition is true. Therefore, if the condition
>>> |XEN_VIRT_SIZE != MB(2)| is changed to|XEN_VIRT_SIZE > MB(2)|, the condition will always evaluate to true
>>> (assuming|XEN_VIRT_SIZE| is greater than 2 MB), which will result in a compilation error.
>> Well, it was you who used MB(2) in a reply, when previously talk was of MB(8),
>> and that to grow to MB(16). The BUILD_BUG_ON() is - aiui - about you having set
>> aside enough page table space. Quite possibly the need for this BUILD_BUG_ON()
>> then disappears altogether when XEN_VIRT_SIZE is properly taken into account
>> for the number-of-page-tables calculation. In no event do I see why the MB(2)
>> boundary would be relevant for anything going forward.
> 
> Also, doesn’t|BUILD_BUG_ON()| affect how the|ASSERT()| that follows it is written?
> 
> The changes, at the moment, look like:
> +    const unsigned int vpn1_shift = PAGETABLE_ORDER + PAGE_SHIFT;
> +    const unsigned long va_vpn = va >> vpn1_shift;
> +    const unsigned long xen_virt_start_vpn =
> +        _AC(XEN_VIRT_START, UL) >> vpn1_shift;
> +    const unsigned long xen_virt_end_vpn =
> +        xen_virt_start_vpn + ((XEN_VIRT_SIZE >> vpn1_shift) - 1);
> +
>       if ((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)) ==
> -           (_AC(XEN_VIRT_START, UL) >> (PAGETABLE_ORDER + PAGE_SHIFT)));
> +    BUILD_BUG_ON(XEN_VIRT_SIZE != MB(16));
> +    ASSERT((va_vpn >= xen_virt_start_vpn) && (va_vpn <= xen_virt_end_vpn));
> 
> 
> If|XEN_VIRT_SIZE| is greater than|GB(1)|, then|xen_virt_end_vpn| may be calculated
> incorrectly.
> 
> For example, if|XEN_VIRT_START| is|0xFFFFFFFF80000000| and|XEN_VIRT_SIZE| is|0x40200000|,
> then|(XEN_VIRT_SIZE >> vpn1_shift)| equals 513, whereas|va_vpn| is always in the range [0, 511],
> but xen_virt_end_vpn will be greater then 511.
> 
> So shouldn't it  be checked before ASSERT() that XEN_VIRT_SIZE is <= GB(1):
>    BUILD_BUG_ON(XEN_VIRT_SIZE <= GB(1))?

Yes, that would make sense.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Apr 04 10:06:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 04 Apr 2025 10:06:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.938043.1338858 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0dwO-00034x-9n; Fri, 04 Apr 2025 10:06:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 938043.1338858; Fri, 04 Apr 2025 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 1u0dwO-00034q-77; Fri, 04 Apr 2025 10:06:24 +0000
Received: by outflank-mailman (input) for mailman id 938043;
 Fri, 04 Apr 2025 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=9O5F=WW=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u0dwN-00034k-22
 for xen-devel@lists.xenproject.org; Fri, 04 Apr 2025 10:06:23 +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 75244328-113c-11f0-9ffb-bf95429c2676;
 Fri, 04 Apr 2025 12:06:21 +0200 (CEST)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-43d0359b1fcso12719685e9.0
 for <xen-devel@lists.xenproject.org>; Fri, 04 Apr 2025 03:06:21 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39c301b7933sm4083495f8f.54.2025.04.04.03.06.19
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 04 Apr 2025 03:06:20 -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: 75244328-113c-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1743761180; x=1744365980; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=8RhPQpjYoGfPs+WAkhFQNvq8PQFMGXsAZW6uX9T6AzM=;
        b=LZa8VSr8uTogB0ENtGyPkIYlL07xnccTRZSfLlrcDh0LTtmmGURA/xLn35NB/U0xuk
         DGRxk2KV4j8DWunXKdOt4YciuP62qvJoYnAVXzg+SLL0qgG/g0I/nA/qS/SdtsEHq/MR
         3c9dTYqptaND1Kp6SCRy9RfLjXAj6MmeRgSS4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743761180; x=1744365980;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=8RhPQpjYoGfPs+WAkhFQNvq8PQFMGXsAZW6uX9T6AzM=;
        b=TNNdoXzc7cCkFZoBRsmE8fDBvoVYCD3VCzL3BVneRJMjUoziOwScg7gIwQsS5BPS+D
         dC3KFO3xE2xyeinf6D/pThAGP2K0KoQWjWIpHGZuKUaN4qk7/1fGlTgqsVTi8oS0ePhb
         hwMux9QR40YU7BDohRe0q5GaZW2VC7iQMniVIlbrbDNZ92MWC0YeEmpYtkEk5JRgLaGt
         o+W3zZRePL99cb0prctbiuX5Ti/D0QamBqnqrqSJszRpDQzEp8KpeEXXLAvaEwTdFGOg
         WgU0VR0WEKug1QzLDwZgMFS41vDcIuXH7O35MRPvREZ9qqJD2sNHqw+PP+8eNwQZgFGJ
         jgsA==
X-Forwarded-Encrypted: i=1; AJvYcCXUYpdbR9JKoFm8Cp8vimcGPFkLCripNGpHDhQ0cztEGW7UsGDnbVAyJO7VUUM2EXO25SM5geF96Ig=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzZVD37u2TZuW77Llfh4dyUJM1w9IrKmyosCS8F+8V6k7idmyPX
	/GkRZarBTGohMqF7mxVPwHP0/kLNcDvdoZwv0fDnxLUwesMHTBE66Q2ZS35rKt4=
X-Gm-Gg: ASbGncu84/RogyFyxYXcHno6/FUkLCo7ayDMeiSpvYkwESO6OZ16y8tGrV1jKZxlgz4
	24IY1z0Y1nvw9QxvPJiqUBHFQwqlyXhRi4OhmAsLbvQUHhZs7jo2C0WQsCCbhL+Vcj0iDVTGmwA
	n8WzzEHZNubJnoerdc9qN0EcuerOh1jUfposQqD9pCzd75FMUsyoH04rS+WsqiwfkT2zu0f410C
	JDYz8lwrIBFYuwkvKYN3rENNSM+RWaBgOGD70GU8RtTv7GPY6R4MBBSO4Ir0cekNza52GdvOcbv
	0icuslBID+MaL3c5gG6kkjKJirsHhrSOopjylig2RG+jmACkVTb0wWNczSIPK2+0qOpD4LNRrDd
	T1VPgpGco30SvNOZmS1p+
X-Google-Smtp-Source: AGHT+IEOrQJ20Leo4SS1v4ZJPu6c/xGW1K8/PijrsYo/y4geG035agBTAAFz8BCkszkrkk1u3T/PzQ==
X-Received: by 2002:a05:600c:1f17:b0:43d:1bf6:15e1 with SMTP id 5b1f17b1804b1-43eced66978mr25434275e9.1.1743761180566;
        Fri, 04 Apr 2025 03:06:20 -0700 (PDT)
Message-ID: <2bf7f3f0-52d8-4187-ad47-7b5bbad8d974@citrix.com>
Date: Fri, 4 Apr 2025 11:06:19 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 6/6] x86/vmx: rework VMX wrappers to use `asm goto()`
To: Jan Beulich <jbeulich@suse.com>, dmkhn@proton.me
Cc: anthony.perard@vates.tech, julien@xen.org, michal.orzel@amd.com,
 roger.pau@citrix.com, sstabellini@kernel.org, dmukhin@ford.com,
 xen-devel@lists.xenproject.org
References: <20250403182250.3329498-1-dmukhin@ford.com>
 <20250403182250.3329498-7-dmukhin@ford.com>
 <c452a1d7-4a57-4c5f-8a83-36a74ff228ec@citrix.com>
 <05063353-93c6-4ca6-8155-bf42bd23bacd@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: <05063353-93c6-4ca6-8155-bf42bd23bacd@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 04/04/2025 8:14 am, Jan Beulich wrote:
> On 03.04.2025 22:10, Andrew Cooper wrote:
>> On 03/04/2025 7:23 pm, dmkhn@proton.me wrote:
>>> --- a/xen/arch/x86/include/asm/hvm/vmx/vmx.h
>>> +++ b/xen/arch/x86/include/asm/hvm/vmx/vmx.h
>>> @@ -294,54 +294,57 @@ extern uint8_t posted_intr_vector;
>>>  
>>>  static always_inline void __vmptrld(u64 addr)
>>>  {
>>> -    asm volatile ( "vmptrld %0\n"
>>> -                   /* CF==1 or ZF==1 --> BUG() */
>>> -                   UNLIKELY_START(be, vmptrld)
>>> -                   _ASM_BUGFRAME_TEXT(0)
>>> -                   UNLIKELY_END_SECTION
>>> -                   :
>>> -                   : "m" (addr),
>>> -                     _ASM_BUGFRAME_INFO(BUGFRAME_bug, __LINE__, __FILE__, 0)
>>> -                   : "memory" );
>>> +    asm goto ( "vmptrld %[addr]\n"
>>> +               "jbe %l[vmfail]\n\t"
>> Also cosmetic, but the very final line in the asm block ideally doesn't
>> want the \n\t.
> And to clarify (Andrew gave a similar comment elsewhere) the \t instead
> wants to appear on the first of these two lines.

Indeed.  This particular example got adjusted in patch 1, where I made
said observation.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Apr 04 10:13:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 04 Apr 2025 10:13:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.938055.1338867 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0e3O-0006A5-W3; Fri, 04 Apr 2025 10:13:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 938055.1338867; Fri, 04 Apr 2025 10:13:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0e3O-00069y-TK; Fri, 04 Apr 2025 10:13:38 +0000
Received: by outflank-mailman (input) for mailman id 938055;
 Fri, 04 Apr 2025 10:13:37 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=9O5F=WW=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u0e3N-00069q-Kr
 for xen-devel@lists.xenproject.org; Fri, 04 Apr 2025 10:13:37 +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 754c1ef2-113d-11f0-9ffb-bf95429c2676;
 Fri, 04 Apr 2025 12:13:30 +0200 (CEST)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-39c13fa05ebso1131732f8f.0
 for <xen-devel@lists.xenproject.org>; Fri, 04 Apr 2025 03:13:30 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39c301b9d55sm3915740f8f.42.2025.04.04.03.13.29
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 04 Apr 2025 03:13:29 -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: 754c1ef2-113d-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1743761610; x=1744366410; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=yGUsM5+jPzlnfJ5bAbq9/oKLsYAhkdxGHQHjv8Nnp/k=;
        b=Jx0ReJ1cpl6SNUfpHIeLm9tiQqKs2lkRHn0HLsAsKyrcWqqtjcqMdMR4+BS1Ozr4CM
         0h/seKl+riVzvb2li9Yvn9hvoJ6M0q6GN/jCjJPUQWmK0Ka/x5L9Lfy0p/ly1XfRvRDM
         40RwioP4heH/4clknApo0OPaHY0R9V4AZryHE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743761610; x=1744366410;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=yGUsM5+jPzlnfJ5bAbq9/oKLsYAhkdxGHQHjv8Nnp/k=;
        b=XKFD7RY44X9wTF/I3RPRkXl5V4ArQoBoqozvFQfDRI999bhL+rgKFI8MQa2M6xTVFz
         S42QKANR59M7stBYi966NgAmBaD8HGzujLeWPAIMyk5FqY9WkZSnwpdYApRH3BNNjbkS
         Mqmh+kU1GkZpUK8mjTRr79qFTdWiJLks6TtD5lUzcjlZMzvm+7Le0OPljeOsGKGi/7/j
         WJC56PFyZr84YmG5j0EP3kQO7Vpi7J2hSwjX9eWCxIR03aLlk3HRwrbXEproum01uck+
         4kFVscarC4mgyetRsd93cxyVGS2CoyDFUEzpqapuhK3bKaQuPsDlvV0Uj4OwJvKPdcWK
         oWBg==
X-Forwarded-Encrypted: i=1; AJvYcCVwFmo8g+PLVKLPz+jv2uYSQZ52ZcK4PGxCcMHoM9L40oSyhT2RBEIzntv8/jFpfCi6gA8Jko7YPpw=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy/xSNbS3w+FoCWpUoNh/E203V13Uorg5fnupUy817J2fzIOVFs
	aDd21HijYy5gysMxsPJH/tlJDSg1X/rQnreK/OPdlNcJFPILVqwfe89mGX1Bsls=
X-Gm-Gg: ASbGncuZi6vtYaNMgv1pkArUhXSJHUjh6i+zlGuptqxktLZcebO+NTr6Dn4CKh9uwND
	fHfHj1X8LAzIcCla+m2hpUHraJELzfbQg0g9hodaYVeCfKDe7s2qgmX2qfJcaiWPDQcyUK+WLqk
	VxN3eYk6EinkSmuv+H1LNCVPFbRrBp+BY62MHT9YcWj7yH2qdxXAy97jZR3zUNrHtq481b/sKZJ
	eYslTboXdbXuGMBd1zNlMgYm5YB0jnQZrVLBJ4rVqfIPf1KJhs0IeXSUm+eMmIcJOR733mAwmt3
	Dh498KgC0Rf9IZ2MsDbMPQDbu32v1N6Ev8n930cHI7anIyUvNYok6IOiFzSo7Gmfo/VSuzVtsUE
	FtvFsSUysSg==
X-Google-Smtp-Source: AGHT+IHJJNPW2W105EM5DK6F+bhsO5kf+WWcf/t540sAKpSVBUDw7Klv3H30ZCpqHF31QfIH8y+w2w==
X-Received: by 2002:a05:6000:4283:b0:391:40bd:6222 with SMTP id ffacd0b85a97d-39cb35958femr2009722f8f.22.1743761610247;
        Fri, 04 Apr 2025 03:13:30 -0700 (PDT)
Message-ID: <16da47b7-f11c-4cc5-aa60-70aa32932910@citrix.com>
Date: Fri, 4 Apr 2025 11:13:29 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86: drop XSAVEOPT and CLWB build flags
To: Jan Beulich <jbeulich@suse.com>,
 "Alexander M. Merritt" <alexander@edera.dev>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <3de09e4e2a3320e0f314803e349fbe6520d04b12.1743719892.git.alexander@edera.dev>
 <046801a7-1990-4629-a8ec-395c7fb233af@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: <046801a7-1990-4629-a8ec-395c7fb233af@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 04/04/2025 8:21 am, Jan Beulich wrote:
> On 04.04.2025 01:22, Alexander M. Merritt wrote:
>> The new toolchain baseline knows both the XSAVEOPT and CLWB instructions.
>>
>> Resolves: https://gitlab.com/xen-project/xen/-/work_items/205
>> Signed-off-by: Alexander M. Merritt <alexander@edera.dev>
>> ---
>>  xen/arch/x86/arch.mk              |  2 --
>>  xen/arch/x86/flushtlb.c           | 28 +---------------------------
>>  xen/arch/x86/include/asm/system.h |  7 -------
>>  3 files changed, 1 insertion(+), 36 deletions(-)
> For XSAVEOPT there's more work to do, even if not connected via HAVE_AS_XSAVEOPT.
> Look for "xsaveopt" (case-insensitively) in xstate.c. Imo (just like was asked
> for for the RDRAND counterpart patch) this wants doing all in one go.

I've got a different task pending for xsave.  It's a bit more involved
than simply dropping the -D's.

We'll get to it.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Apr 04 10:16:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 04 Apr 2025 10:16:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.938066.1338878 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0e67-0006l4-Ct; Fri, 04 Apr 2025 10:16:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 938066.1338878; Fri, 04 Apr 2025 10:16: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 1u0e67-0006kx-9q; Fri, 04 Apr 2025 10:16:27 +0000
Received: by outflank-mailman (input) for mailman id 938066;
 Fri, 04 Apr 2025 10: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=9O5F=WW=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u0e65-0006kp-P9
 for xen-devel@lists.xenproject.org; Fri, 04 Apr 2025 10:16:25 +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 dc55da0f-113d-11f0-9ffb-bf95429c2676;
 Fri, 04 Apr 2025 12:16:23 +0200 (CEST)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-43cf848528aso14414675e9.2
 for <xen-devel@lists.xenproject.org>; Fri, 04 Apr 2025 03:16:23 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43ec163156asm45685745e9.7.2025.04.04.03.16.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 04 Apr 2025 03:16:22 -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: dc55da0f-113d-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1743761783; x=1744366583; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=5w+anvyU5uARgyeOesFvzYUy6gS0Y8DmfhEOLxh99N4=;
        b=pKWF17/XEuyOcVQ+BFp3FnaAwVZ80MGSw97xkijbsuICo14S8dD4mbfK/kOoYAyfHe
         zrIo3BQJdT9CXjJvNZ5hiUmfZxYewcBwClf6N6QKcGry5GamjKXYf2Jz0TyY6LqAkEZj
         Schdz90+WyXkFNa/w9erjuERkPNa1rkRHO130=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743761783; x=1744366583;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=5w+anvyU5uARgyeOesFvzYUy6gS0Y8DmfhEOLxh99N4=;
        b=PFqqutafoV3g2OlUmxjXTmRMv6GH2YrZft1ijTzo6Om7xvDnSpThTaYt1HVzOcdTNK
         zWZ4u9QnRi+vMUL3o5a1oE7bBvFTiGkjN67jczntUkaXJXifPo+MfTbNR1LW2RWVxR4f
         WJApD9On8Wmgwezjdjfr+DBYAs94x4fFF4djuETdsbK+bqxpcIHqtApoObGveCSJFuqV
         xxdpsVEwDv5dz7nLE1ulXsjO9P6bAH5ICQh61Kr1ZUWarAPuGbjCH1YQAjZFlDuf4doq
         zkrl5ma3Vpp8R9yYe+7Ot5eoxbmJFfSXYZrjpggdWnEbnqSWO++rL2yqf8e2exqBcsDt
         wVGg==
X-Forwarded-Encrypted: i=1; AJvYcCWDkMF5maJoMcMnVHjuK2m39ejRr9mpnkdqSwdE8AYeVobuZKQyWszXq2A6szb3Qzjo+nZtW/Frn+k=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy2TzRMQRF4FcehGEd8o0O5U/01mXi/4PPYn2vNVFLWwVvI+g+Y
	maolyoM4zrQk8qup2dW4EG3xicfA+Ic04CuroPz6XZC/HRlixxTIcDTkSOFG76E=
X-Gm-Gg: ASbGncsaNiXDrJD9pogPsyPdMszvUfv1ZfBZPg074NKctGGjRB3ngsbHllqfNZxIi+2
	2HH0OFJlq02A1SpTZjpbkTZlKhIi4TTmCry4xdMcP2rRVCrqZX9Rzg9FrRI9t3Ki/w0IfXRoOsZ
	0GS1i223NPa6MnruCIW3wHtiMxtOaaO8htYrtDx/Gz0idizEAq5s/0T86MBz7XQN6HxBXhHfuAN
	27KKqvtRnv4dpIAKrpXMgAbnMevCtQfMRq6T6gwPSynQb/facrbSUCxZrMBwXNLttyokDku9Buy
	ge/+pVcdtTLFdq6HJLIoui44EsDJg49oDSVORb2ehVHEHe6A+dvYL0TXWQn/pyrPsUM+ImvTLVa
	wIOQI6PQuOw==
X-Google-Smtp-Source: AGHT+IF6AScUI84ywdEk+EE8R4+vWdhKkCCO/4TJZm5yu4GdESpXPKgipwPsOa4hqx72+sWNI1yoJA==
X-Received: by 2002:a05:600c:4594:b0:43c:ec28:d310 with SMTP id 5b1f17b1804b1-43ecf8837d8mr26413965e9.10.1743761783200;
        Fri, 04 Apr 2025 03:16:23 -0700 (PDT)
Message-ID: <c37d84be-9679-4132-9a46-cd75344db941@citrix.com>
Date: Fri, 4 Apr 2025 11:16:22 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/amd: Convert wrmsr_amd_safe() to use asm goto()
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: <20250403175744.1538469-1-andrew.cooper3@citrix.com>
 <9b3b8397-943e-4171-9ec4-27fe45ba1a60@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: <9b3b8397-943e-4171-9ec4-27fe45ba1a60@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 04/04/2025 8:48 am, Jan Beulich wrote:
> On 03.04.2025 19:57, Andrew Cooper wrote:
>> Bloat-o-meter reports:
>>
>>   add/remove: 0/0 grow/shrink: 0/2 up/down: 0/-29 (-29)
>>   Function                                     old     new   delta
>>   _probe_mask_msr                               99      94      -5
>>   init_amd                                    2418    2394     -24
>>
>> but that's because .fixup doesn't contain sized/typed symbols.  This also
>> drops two "mov -EFAULT, %reg; jmp ...;" sequences too.  The net saving is -50.
>>
>> wrmsr_amd_safe()'s return value is only checked against 0 (if at all), and
>> because of this, the compiler can now avoid manifesting 0/-EFAULT entirely,
>> and the %[fault] label simply lands on the right basic block.
>>
>> Convert to Xen style while rewriting.
>>
>> 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.  We use -EIO elsewhere for this purpose, and nothing in this
>> logic cares.
> {rd,wr}msr_safe() both use -EFAULT. What's "elsewhere" here?

Oh, that would be Linux.  Sorry, too much time spent staring at the same
logic in different codebases.

>
>> I was pleasently surprised by the manifestation of -EFAULT going away
>> entirely.
> I fear I don't understand this, given the -EFAULT is still there in the
> new code.

I meant about what the optimiser can do.  It hadn't occurred to me that
that was a valid transformation.

>
> Irrespective of these remarks:
> Reviewed-by: Jan Beulich <jbeulich@suse.com>

Thanks.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Apr 04 10:28:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 04 Apr 2025 10:28:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.938082.1338889 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0eHz-0001eC-IK; Fri, 04 Apr 2025 10:28:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 938082.1338889; Fri, 04 Apr 2025 10:28: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 1u0eHz-0001e5-E4; Fri, 04 Apr 2025 10:28:43 +0000
Received: by outflank-mailman (input) for mailman id 938082;
 Fri, 04 Apr 2025 10: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=C8GG=WW=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u0eHx-0001dz-Is
 for xen-devel@lists.xenproject.org; Fri, 04 Apr 2025 10:28:41 +0000
Received: from mail-pf1-x42e.google.com (mail-pf1-x42e.google.com
 [2607:f8b0:4864:20::42e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 92ef6c75-113f-11f0-9eaa-5ba50f476ded;
 Fri, 04 Apr 2025 12:28:40 +0200 (CEST)
Received: by mail-pf1-x42e.google.com with SMTP id
 d2e1a72fcca58-736b98acaadso1835997b3a.1
 for <xen-devel@lists.xenproject.org>; Fri, 04 Apr 2025 03:28:40 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 d2e1a72fcca58-739d95e6e57sm3017389b3a.0.2025.04.04.03.28.37
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 04 Apr 2025 03:28:38 -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: 92ef6c75-113f-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1743762519; x=1744367319; 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=LuaxFPkOvn7Up6+/anoGz4CWtqvZAcmgaZBQEQ/Dowo=;
        b=Kql8Pwnf1QiyaEPBJG5Jd5QBF5rLpQ+i+GijQiy91vv3ZKcqtsQSOn7nodT8dlqAZm
         mqSWw/r/riveFD+HLarzlYh8vFda9dcQoOhXNb86zlrdHIkqjDdaOEC7YLcUUBA0xUmz
         L63xI2iBsHKbhTLDQh8+IODAziMf85ZwagQtU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743762519; x=1744367319;
        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=LuaxFPkOvn7Up6+/anoGz4CWtqvZAcmgaZBQEQ/Dowo=;
        b=SxjI6sIzilT8TT/i56HI3YQ5JU1w97BleawGKMaqUNHUvjpQAbpwAZb+pWsg0ybp75
         itzu6nrmhwu7Aw5Qs4ZUmGKgwh9G6sPa8rOaI7Cyg060gDZr7YpXxTtVf3ERET4Pzq3k
         V5KXxlfJAz3heaqFhpy08Al/79pbftSPxT6V0H05/yqCDto6qoifB6iQTVLw9BjEsX9/
         RmYcgTHsxzguolaLFsWtxYmsY1Jf+Bzm1CIXuJ1/esT54IiKuaWdR7zrRB4g5sTwr7lI
         PavjjHB14xOVTtpbXghvrGECdu7khIcFGV0BLsWIwTkPL07PkVi4uMKNrM54U8zwU0by
         S3EQ==
X-Gm-Message-State: AOJu0YzXeMpDb+JJJTsij/knoso1TQpsyBSxW+hmUAWeW2hLg1K5i/7b
	P81bbuRLPbPLKlKF7CnyXhUw3qW5iePDtIHd/p8o8RR6uBzG2/KPDy9vurKa8hw=
X-Gm-Gg: ASbGncsRyzhsuklKBrTqwlo6oDsu1cQUj8Ladx6i9AmuXF2O6SKAL4E+i2B0ankL9eR
	DIx2GNhvWdTesyZ4QE0xaNX2cM4oVIS+YZqvGFCOQIoHgO5l+eeSh4GCXPwWc7gMeTURjG3Uvbb
	draQHKTCD/Q+mWkL0ouu9vIzEsNsf4gMchnpcWJ3S3YuPUGWEMzlaZVtq16Q5aE+/dNdBrLs7ZN
	7TDpAxlg7NPh9dW0j2ZzWZL7uCYJVmsXsEsK7lI4lly87i9tieD6fwZ0L1DBxQmIv9KAbHSvQOw
	wDzevKXAC32uwJX4fzZxcZU+2QwRYf4bCp3I01mEEUNu3N3iEA==
X-Google-Smtp-Source: AGHT+IHZnPp32G5T6bHegMBNiPYFyHdxaI9TByzxWT8f6+g+LQkY9jz5YUYypkw3pOKbSbMLgRhFBA==
X-Received: by 2002:a05:6a20:918a:b0:1f5:5ca4:2744 with SMTP id adf61e73a8af0-201045a6303mr4699926637.17.1743762518857;
        Fri, 04 Apr 2025 03:28:38 -0700 (PDT)
Date: Fri, 4 Apr 2025 12:28:33 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: xen-devel@lists.xenproject.org,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>, jason.andryuk@amd.com,
	Xenia.Ragiadakou@amd.com, Alejandro.GarciaVallejo@amd.com
Subject: Re: [RFC] xen/x86: allow overlaps with non-RAM regions
Message-ID: <Z--0USril0UIhR4R@macbook.lan>
References: <alpine.DEB.2.22.394.2504031755440.3529306@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.2504031755440.3529306@ubuntu-linux-20-04-desktop>

On Thu, Apr 03, 2025 at 06:01:42PM -0700, Stefano Stabellini wrote:
> On one Sapphire AMD x86 board, I see this:
> 
> 
> (XEN) [0000003943ca6ff2]  [00000000f0000000, 00000000f7ffffff] (reserved)
> (XEN) [00000039460886d9]  [00000000fd000000, 00000000ffffffff] (reserved)
> [...]
> (XEN) [    4.612235] 0000:02:00.0: not mapping BAR [fea00, fea03] invalid position
> 
> 
> Linux boots fine on this platform but Linux as Dom0 on Xen does not.
> This is because the pci_check_bar->is_memory_hole check fails due to the
> MMIO region overlapping with the EFI reserved region.

That's weird.  (Partially) the reason to not attempt to map such BAR
is that it should already be mapped, because at dom0 creation time all
reserved regions are added to the p2m (see arch_iommu_hwdom_init()).
If that's not the case we should figure out why this reserved region
is not added to dom0 p2m as part of arch_iommu_hwdom_init().

Can you paste the dom0 build output when booted with `iommu=verbose
dom0=pvh,verbose`?  Does using `dom0=pvh,verbose,pf-fixup` solve the
boot issue? (and can you paste the output if it does)

The issue with allowing BARs to modify p2m reserved regions is that if
memory decoding is disabled for the PCI device, the BAR will be
unmapped from the p2m, thus creating a hole in the p2m for a reserved
region, which would be undesirable IMO.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri Apr 04 10:32:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 04 Apr 2025 10:32:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.938094.1338897 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0eLB-0004k5-Uc; Fri, 04 Apr 2025 10:32:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 938094.1338897; Fri, 04 Apr 2025 10:32: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 1u0eLB-0004jy-Rs; Fri, 04 Apr 2025 10:32:01 +0000
Received: by outflank-mailman (input) for mailman id 938094;
 Fri, 04 Apr 2025 10:32: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=9O5F=WW=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u0eLB-0004js-9I
 for xen-devel@lists.xenproject.org; Fri, 04 Apr 2025 10:32:01 +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 0a9d873e-1140-11f0-9eaa-5ba50f476ded;
 Fri, 04 Apr 2025 12:32:00 +0200 (CEST)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-43d0782d787so12632325e9.0
 for <xen-devel@lists.xenproject.org>; Fri, 04 Apr 2025 03:32:00 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39c301a6796sm4079859f8f.31.2025.04.04.03.31.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 04 Apr 2025 03:31: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: 0a9d873e-1140-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1743762720; x=1744367520; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=5TbxEItRPN++jDfqsq6UNaHPrqlCWgTQrcy3YyqfQac=;
        b=vwtJioy8iKrdykADhz7xpO/uDZq3fyXgvkgH+kMYecS0V8B4RAbyqLKyG4dPevQquJ
         sh+MjUXF6R/Yqu0ItTnXLJTLto8yiEW9iCNS/015s2QvGT6WgLeCDHZ6e3M3wynJDfD5
         rbu9tBMojUIcnS8cJJilHd7N9Bsy2go7MTFNE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743762720; x=1744367520;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=5TbxEItRPN++jDfqsq6UNaHPrqlCWgTQrcy3YyqfQac=;
        b=OzWUpOLb9xTbnYJ5kFNXpDYK0PESxSAMUl8ty23xc+F7xkn0x5J7I/LgVtuMlJrIsH
         LU98MvrGkCieYP7dXbWPwm2yIZEoEa+uD3s2/BJ9rSyy6WlYJlGPfpv7T82n9Hpvezlh
         wVeOfRjqJz1I0fkHx+KQOJk2ej+D2KIw5JqtdB97ezV1Tk4RoQJEbEFp/GA3Vj9kgUic
         LZ+yc3uyUURJR4bcOs/m+7StbU60oNgd5uHdZr7+50I0nsJmsNIUZL8UZflVxbR+CW6l
         iGE4Lgfjtsi+3brtTi5XMCUQg0Yw0cvjiKTXVrJFo9lvQGo/4wT8fWvixZDzNTVPXRiu
         zGXg==
X-Forwarded-Encrypted: i=1; AJvYcCWIeiUPJSTFHCaHk6hrC/BZwlo3E5K13AR1Fyu3xpY685wv7UMIYW0Ii5isUauDTUVT9HPA1SyEOdQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzj+7JikGgS+1MVtkNrzEeuQ1SaMRimcDvNXE1t+pSgkGEquelZ
	g8RdXS4Y8haBjk557EHSyeTCTpEyN4aH7ksreTJANykwZs+/wcccQz1dYLucY4c=
X-Gm-Gg: ASbGncupT6GsluFdz5fRaGwkhbo0KL81HygjJTale8IhknishxDGnjscrNECD7cv9HZ
	ylx/GrqKFEMHrzW7bIOwWbxGj9x4+xYKB6bpbJMEOP0aV7/ZwvcX7m6HpqIBbjbtKceNrjn6zb8
	8B1mJQAUiZ+0iYTE+b6wOGSDKO/XHDTq1Zf1Dz3Rq+cX4avEgi21o6WNHCUDGPG8qFaNMLO2tJj
	5Yin0hFHdWgoBEvI3yejYnKFS+Jz5CqqJ6DtF/jXRLPtqL4oYvM/Jf6hk2+evVBqB85UN9wjiaK
	Ku2z4Y7SnCHF7tPfQDNW/sALdUpirv4eHsmXP3t0vQHi3FYbt8efabnCDMBKP5OCLbvJpLAbuEe
	FJbGRYhEwIA==
X-Google-Smtp-Source: AGHT+IEVaG2GNm3TwomAmEioIJFOXPaDcaWH9p5jjBm3mDCfMQzg5x06A6jRRuMvCLDRKSnH1do8Dg==
X-Received: by 2002:a05:6000:4027:b0:38f:4acd:975c with SMTP id ffacd0b85a97d-39d0de28abfmr1924854f8f.27.1743762719745;
        Fri, 04 Apr 2025 03:31:59 -0700 (PDT)
Message-ID: <af55a92a-6120-4796-9d5d-c6dc0e7a57c5@citrix.com>
Date: Fri, 4 Apr 2025 11:31:58 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/2] x86/amd: Add guest support for AMD TCE
To: Teddy Astie <teddy.astie@vates.tech>, xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Community Manager <community.manager@xenproject.org>,
 Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <cover.1743756934.git.teddy.astie@vates.tech>
 <885867a86eb41fd78df24b6599312b54be8e20ca.1743756934.git.teddy.astie@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: <885867a86eb41fd78df24b6599312b54be8e20ca.1743756934.git.teddy.astie@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 04/04/2025 10:49 am, Teddy Astie wrote:
> AMD Translation Cache Extension is a flag that can be enabled in the EFER MSR to optimize
> some TLB flushes. Expose this flag to guest if supported by hardware.
>
> AMD Architecture Developer Manual describe this feature as follow
>> Setting this bit to 1 changes how the INVLPG, INVLPGB, and INVPCID instructions operate
>> on TLB entries. When this bit is 0, these instructions remove the target PTE from the
>> TLB as well as all upper-level table entries that are cached in the TLB, whether or not
>> they are associated with the target PTE. When this bit is set, these instructions will
>> remove the target PTE and only those upper-level entries that lead to the target PTE in
>> the page table hierarchy, leaving unrelated upper-level entries intact. This may provide
>> a performance benefit.
> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>

You probably want to note that Linux 6.14(?) now uses this feature.

You definitely need to discuss that it's only in HAP VMs.  i.e. no PV,
and no Shadow.

Personally, I'd drop the quote from the APM.  You've already said "to
optimise some TLB flushes".  Anyone wanting to know details about the
feature needs to read the APM anyway.


> ---
>  CHANGELOG.md                                | 1 +
>  xen/arch/x86/hvm/hvm.c                      | 3 +++
>  xen/arch/x86/include/asm/msr-index.h        | 3 ++-
>  xen/include/public/arch-x86/cpufeatureset.h | 1 +
>  4 files changed, 7 insertions(+), 1 deletion(-)
>
> diff --git a/CHANGELOG.md b/CHANGELOG.md
> index 8f6afa5c85..dbfecefbd4 100644
> --- a/CHANGELOG.md
> +++ b/CHANGELOG.md
> @@ -18,6 +18,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
>     - Support PCI passthrough for HVM domUs when dom0 is PVH (note SR-IOV
>       capability usage is not yet supported on PVH dom0).
>     - Smoke tests for the FreeBSD Xen builds in Cirrus CI.
> +   - Guest support for AMD Translation Cache Extension feature.
>  
>  ### Removed
>  
> diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
> index 5950f3160f..184357b042 100644
> --- a/xen/arch/x86/hvm/hvm.c
> +++ b/xen/arch/x86/hvm/hvm.c
> @@ -959,6 +959,9 @@ const char *hvm_efer_valid(const struct vcpu *v, uint64_t value,
>      if ( (value & EFER_FFXSE) && !p->extd.ffxsr )
>          return "FFXSE without feature";
>  
> +    if ( (value & EFER_TCE) && !p->extd.tce )
> +        return "TCE without feature";
> +
>      if ( (value & EFER_AIBRSE) && !p->extd.auto_ibrs )
>          return "AutoIBRS without feature";
>  

Not for this patch, but it's probably time we made hvm_efer_valid() work
more like hvm_cr4_guest_valid_bits().

The only interesting bit is the specific diagnostic for LMA/LME/CR0
mismatch, and I don't think the complexity is worth it for just that.

> diff --git a/xen/arch/x86/include/asm/msr-index.h b/xen/arch/x86/include/asm/msr-index.h
> index 22d9e76e55..d8576aec1c 100644
> --- a/xen/arch/x86/include/asm/msr-index.h
> +++ b/xen/arch/x86/include/asm/msr-index.h
> @@ -200,11 +200,12 @@
>  #define  EFER_NXE                           (_AC(1, ULL) << 11) /* No Execute Enable */
>  #define  EFER_SVME                          (_AC(1, ULL) << 12) /* Secure Virtual Machine Enable */
>  #define  EFER_FFXSE                         (_AC(1, ULL) << 14) /* Fast FXSAVE/FXRSTOR */
> +#define  EFER_TCE                           (_AC(1, ULL) << 15) /* Translation Cache Extensions */
>  #define  EFER_AIBRSE                        (_AC(1, ULL) << 21) /* Automatic IBRS Enable */
>  
>  #define EFER_KNOWN_MASK \
>      (EFER_SCE | EFER_LME | EFER_LMA | EFER_NXE | EFER_SVME | EFER_FFXSE | \
> -     EFER_AIBRSE)
> +     EFER_TCE | EFER_AIBRSE)

Sorry, missed one aspect.  You need to filter TSE out in guest_efer()
for PV guests.

>  
>  #define MSR_STAR                            _AC(0xc0000081, U) /* legacy mode SYSCALL target */
>  #define MSR_LSTAR                           _AC(0xc0000082, U) /* long mode SYSCALL target */
> diff --git a/xen/include/public/arch-x86/cpufeatureset.h b/xen/include/public/arch-x86/cpufeatureset.h
> index cc6e984a88..8182d2dbed 100644
> --- a/xen/include/public/arch-x86/cpufeatureset.h
> +++ b/xen/include/public/arch-x86/cpufeatureset.h
> @@ -170,6 +170,7 @@ XEN_CPUFEATURE(SKINIT,        3*32+12) /*   SKINIT/STGI instructions */
>  XEN_CPUFEATURE(WDT,           3*32+13) /*   Watchdog timer */
>  XEN_CPUFEATURE(LWP,           3*32+15) /*   Light Weight Profiling */
>  XEN_CPUFEATURE(FMA4,          3*32+16) /*A  4 operands MAC instructions */
> +XEN_CPUFEATURE(TCE,           3*32+17) /*H  Translation Cache Extension support */

I'd suggest dropping the "support".  It doesn't add anything here.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Apr 04 11:13:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 04 Apr 2025 11:13:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.938136.1339012 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0ezI-0008B7-Vk; Fri, 04 Apr 2025 11:13:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 938136.1339012; Fri, 04 Apr 2025 11:13:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0ezI-0008B0-T5; Fri, 04 Apr 2025 11:13:28 +0000
Received: by outflank-mailman (input) for mailman id 938136;
 Fri, 04 Apr 2025 11:13: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=n5Qt=WW=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1u0ezH-0008Au-OV
 for xen-devel@lists.xenproject.org; Fri, 04 Apr 2025 11:13:27 +0000
Received: from fhigh-b2-smtp.messagingengine.com
 (fhigh-b2-smtp.messagingengine.com [202.12.124.153])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d17b2ef8-1145-11f0-9ffb-bf95429c2676;
 Fri, 04 Apr 2025 13:13:22 +0200 (CEST)
Received: from phl-compute-08.internal (phl-compute-08.phl.internal
 [10.202.2.48])
 by mailfhigh.stl.internal (Postfix) with ESMTP id CA4F725400FF;
 Fri,  4 Apr 2025 07:13:20 -0400 (EDT)
Received: from phl-mailfrontend-01 ([10.202.2.162])
 by phl-compute-08.internal (MEProxy); Fri, 04 Apr 2025 07:13:20 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri,
 4 Apr 2025 07:13:19 -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: d17b2ef8-1145-11f0-9ffb-bf95429c2676
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=fm2; t=1743765200;
	 x=1743851600; bh=b+KmV9nn+/2Ctj4X77gsnK6ZHOSFMsFML2Y1h7LIlos=; b=
	Zyc49dr0Ejs+elgwq1l8/joykkNQMA4IUV0qJ6foxl8paPD0x7IoTk+W2owfDTWn
	WybajkSl40vUS5ZdjiVsPAuQEXSChcw6c5dkqIsXK+GQqi926JNr8Ellw1Xea9LM
	2nPQlNHNqLoxqeGtqTVwDe2n4Qq6A3SUjOi4fumAoq67ll7x78nGffYsRyltSkzH
	JiZ4ei9UAw5/WRjOyL/rwnclWGgE2E9nqGMfkQUTp5VLlMPjzQOi/HQh3GBrQEww
	yRM0lHvV82Mcxp6bmHBCRxETW93vGIOHWGkWCS47UxGAuSV398V9ueiFTW+UoPGY
	GIEGdQv2MDFRiNRYfFMxag==
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=fm2; t=
	1743765200; x=1743851600; bh=b+KmV9nn+/2Ctj4X77gsnK6ZHOSFMsFML2Y
	1h7LIlos=; b=PZeWC/4Otf6JzRGg0oYfqBBYt1bG+vXftcFg/AJweDZ2fkSShcL
	Cn8sF73Hf8JDdOPm8GmNiE1WGn5oUWoMlQhdAqNoJYm35nPmYtdy7yOM5aUcFc+u
	+pgapz3DrfpciJIT7UbW3Me4BaDC23ystzNYo/AphtBV2UN2MqCiYbVD/LY/BsFn
	NjPZggrSBsTN5mZdAhpw99RJTRfETqTaW6CrXYGinISguGoe50M5g/x0VlSv9kEc
	ZtvoMvihgvKuMKNq4Mja0Awf5Z+xffG4cc3phvqQginW4laKB4DHYaosn0WwI5jt
	gFAFkRPLPkjE+5hR31qI5a4Ju+X20pkdyZA==
X-ME-Sender: <xms:0L7vZ7z4iVGgGhsADlxl3aBxixvMvYlA3u_4UvUH8BszDwXAGE2oJA>
    <xme:0L7vZzTsfUo78l-9zh6UjswPuB_vLfO5n_8aRdNDGlnlzUKOZ5hQX8CQDLRkTkWS-
    GTmPM1oasVqUA>
X-ME-Received: <xmr:0L7vZ1WiJKkNMMO-lunVV07Hc-FZtQn4eK63srgObM-gU2KlzsmgwzsIwkAjC8CD3z-KqydqIzVcY5H08LeuwN_AOkR8XbGgaw>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgdduleduvdelucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
    pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
    gvnhhtshculddquddttddmnecujfgurhepfffhvfevuffkfhggtggujgesghdtreertddt
    jeenucfhrhhomhepofgrrhgvkhcuofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuc
    eomhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecu
    ggftrfgrthhtvghrnhepgfduleetfeevhfefheeiteeliefhjefhleduveetteekveettd
    dvgeeuteefjedunecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhf
    rhhomhepmhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomh
    dpnhgspghrtghpthhtohepgedpmhhouggvpehsmhhtphhouhhtpdhrtghpthhtohepshhs
    thgrsggvlhhlihhniheskhgvrhhnvghlrdhorhhgpdhrtghpthhtohepgigvnhdquggvvh
    gvlheslhhishhtshdrgigvnhhprhhojhgvtghtrdhorhhgpdhrtghpthhtoheprghnughr
    vgifrdgtohhophgvrhefsegtihhtrhhigidrtghomhdprhgtphhtthhopegtrghrughovg
    estggrrhguohgvrdgtohhm
X-ME-Proxy: <xmx:0L7vZ1josI9Ze6o1B49Ixys_8xD1eCMwn9JTGkY2bapFlCVHyDxjkg>
    <xmx:0L7vZ9DBddw61VwRCvlUCLWoBMUIQwiKysVo_uPUo6roKt64EdxFzw>
    <xmx:0L7vZ-IB6zb43-3H2JqJRdh8HZtP1txNiaW44lGnwqdnr31-RyoLcw>
    <xmx:0L7vZ8BqtrDoBL2nk7HcSQIczUyF-PiaGRKsUBHo-yceha_IlXIozA>
    <xmx:0L7vZ6wpBc4htirgYl7PVWFXYy5D0MkwQfjUrNCP0O5hU91CTQ1DX33R>
Feedback-ID: i1568416f:Fastmail
Date: Fri, 4 Apr 2025 13:13:16 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: xen-devel@lists.xenproject.org,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Doug Goldstein <cardoe@cardoe.com>
Subject: Re: [PATCH v1 08/11] ci: switch test kernel from 6.1.19 to 6.12.21
Message-ID: <Z---zcF0s29BEBxB@mail-itl>
References: <cover.59b4d1e66776c1e577aa5dd5460605dc6c240613.1743678257.git-series.marmarek@invisiblethingslab.com>
 <612750de76202364b749bda6cdd30c1daa81f79d.1743678257.git-series.marmarek@invisiblethingslab.com>
 <alpine.DEB.2.22.394.2504031737290.3529306@ubuntu-linux-20-04-desktop>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="gBQezFazTDWEzoUL"
Content-Disposition: inline
In-Reply-To: <alpine.DEB.2.22.394.2504031737290.3529306@ubuntu-linux-20-04-desktop>


--gBQezFazTDWEzoUL
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Fri, 4 Apr 2025 13:13:16 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: xen-devel@lists.xenproject.org,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Doug Goldstein <cardoe@cardoe.com>
Subject: Re: [PATCH v1 08/11] ci: switch test kernel from 6.1.19 to 6.12.21

On Thu, Apr 03, 2025 at 05:40:07PM -0700, Stefano Stabellini wrote:
> On Thu, 3 Apr 2025, Marek Marczykowski-G=C3=B3recki wrote:
> > The jump is pretty big, but should be enough for a longer time. The
> > change right now is motivated adding new runner with AMD Zen4.
> >=20
> > Signed-off-by: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblething=
slab.com>
>=20
> As long as all the tests (including QEMU and xilinx-x86) pass:

I tested all I can (and it works), but I don't have access to the xilinx ru=
nner.

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

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmfvvs0ACgkQ24/THMrX
1yyRbQf/Wz4Dj+RzD58d0wkR0/2lfDqsqKEthdV/viF5FcdFgvUpqRLDo+vefeZD
UsnGYLTKmjFeWHJZyHimHBb2AiPji4Y5YnMk1q0N8s7Kf+Xf7jHTWYzM91UXXnXh
7GIlP6zmH0HU05wuijO7ASSkTqGxeUVvTQ7EpWTe6cX/8oZn3FyvA5dl/WUvsIDC
MKi1a4bfSPFGeoiixOM5BGkMPg1GkosMibK4BswXb8frEmBMCeyz2gO+uZOWoM23
djlXEHQiekYYnas9M7K54jeAxaIFGkW7qDyAghqhXrS5N5thp0iD5m6lO7Mpxy/2
kgaogvvytEGxxPZiAvYNCNuXTPvEig==
=KNOv
-----END PGP SIGNATURE-----

--gBQezFazTDWEzoUL--


From xen-devel-bounces@lists.xenproject.org Fri Apr 04 11:22:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 04 Apr 2025 11:22:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.938150.1339022 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0f7f-0002iq-Rf; Fri, 04 Apr 2025 11:22:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 938150.1339022; Fri, 04 Apr 2025 11:22: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 1u0f7f-0002ij-NL; Fri, 04 Apr 2025 11:22:07 +0000
Received: by outflank-mailman (input) for mailman id 938150;
 Fri, 04 Apr 2025 11: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=9O5F=WW=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u0f7f-0002ia-1f
 for xen-devel@lists.xenproject.org; Fri, 04 Apr 2025 11:22:07 +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 0a089aa2-1147-11f0-9eaa-5ba50f476ded;
 Fri, 04 Apr 2025 13:22:05 +0200 (CEST)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-43d0359b1fcso13199335e9.0
 for <xen-devel@lists.xenproject.org>; Fri, 04 Apr 2025 04:22:05 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43ec366b571sm43611045e9.40.2025.04.04.04.22.04
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 04 Apr 2025 04:22:04 -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: 0a089aa2-1147-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1743765725; x=1744370525; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=8LesR/SGC8EeZNPqAcM23dHESKkyarxpefBGVTvvUoY=;
        b=jSBOJ8fBuXelAfX1WfhMyX/BbXcpTf/Ys3XeNSshyykns48wiAqYN1F5DXeFBH6TIU
         AKgDQuNCJKRkth1zwhvs5B/dt7pMyTS5JhiEaSVK5jKKrt0pbFqdJ1Hs6WUzExAaPhPA
         X0ErSu2hHPT0E2KJLD1RE3fJX/xZZyZG7diyo=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743765725; x=1744370525;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=8LesR/SGC8EeZNPqAcM23dHESKkyarxpefBGVTvvUoY=;
        b=TxARkN495PyS6DhZC/jtL0mysmOTXRTOzhzPddcIi3Yi01oMKzAZsNwy2kJSU5yzfj
         ZurLLMrPYVmpGM1BA7McTIq7H7dl28Dfom6PBBuRn9rAHqM6z+xAT26tVnCfN1o8Y/FG
         PmrfW6aexhvQuUJYSU28tvlqBTnmmu0RIhnQDECXvQRa1QOGoKrmmMr7xXNCi1vrX/It
         xFA1jnQ4G5Z8vK6Oll5C/0bgRwiHCDSDodtYmkfWoht/ABve58YX130rzwF4aC6fA1ou
         hN6sMC6NyV5FY6moSebR+yF3pkRYW2jkoC8WNYMgEPHpXyihABTLjzTrq7Cuh+iW3PtA
         R0iA==
X-Forwarded-Encrypted: i=1; AJvYcCXkVxr+eW/+rge0y3XuU4BpjvjhQinqk9G+nkl2xqjTb7eJDd81qNn7qIjrCqiPJHXDibRI4kw+iZI=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx1xtq8UHFPSyb64IeBPlnfyIMh3yXm7aHmfJOqegrKnteGGULu
	NfbnUKc7XbRd+ucmfCTw1pZ3Zt/L6HJ1WyN9JTShZE6K6+MiXGOIE7o8PjZa+U0=
X-Gm-Gg: ASbGncuQD2y/FQD22kQ6AIZwVnkCnWrZFqOuFwI4XmkZS5fNTBpFWD11FaCbnT6X5pO
	FNF1QDZr7Bv4EOyVmjnIOF2L2F7ooPY0NmDjv44n8cX42lO/zKRp2wuWd11wXM991s60xrNCa3X
	eyu2SkiHlYMDCZfwZpwAjdSbP5D2LFs8hsh5Cdjuf4kFZLtMhIIZn39AWrZO3ijADZiONlP/vq8
	AVc55XeNJCjjAKqJ6t4KgH6rCf2LhCd+TulKhX/s9Q07EBq6PxeopQPt7ZceEb3tjcoT7shygJI
	USlv/32+TXgbwJdHpMrQnsxEulY1gsyytlxYM9Z9N7MmwnRIEN4zSoNtteOlHWEKoU4mkwr5UpE
	ucLuYFJdcxg==
X-Google-Smtp-Source: AGHT+IGshNrsYh++Jd6BAG9tWRzyY47uKo+cB11OBjMRZyLvB8cOAr5HXZu1gTm3Ova/r1CcfGvtWA==
X-Received: by 2002:a05:600c:1e1b:b0:43d:16a0:d98d with SMTP id 5b1f17b1804b1-43eceee3375mr28424645e9.15.1743765725169;
        Fri, 04 Apr 2025 04:22:05 -0700 (PDT)
Message-ID: <4059e6bd-5538-4f6f-ba05-1d9e32ec04c0@citrix.com>
Date: Fri, 4 Apr 2025 12:22:04 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/2] x86/amd: Enable TCE in Xen
To: Teddy Astie <teddy.astie@vates.tech>, xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Community Manager <community.manager@xenproject.org>,
 Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <cover.1743756934.git.teddy.astie@vates.tech>
 <460c58c78e956ca62cc80356536dbdb45fa73779.1743756934.git.teddy.astie@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: <460c58c78e956ca62cc80356536dbdb45fa73779.1743756934.git.teddy.astie@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 04/04/2025 10:49 am, Teddy Astie wrote:
> diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
> index d70abb7e0c..0e2e7d012f 100644
> --- a/xen/arch/x86/setup.c
> +++ b/xen/arch/x86/setup.c
> @@ -2008,6 +2008,14 @@ void asmlinkage __init noreturn __start_xen(void)
>      if ( cpu_has_pku )
>          set_in_cr4(X86_CR4_PKE);
>  
> +    if ( cpu_has_tce )
> +    {
> +        printk("Enabling AMD TCE\n");
> +
> +        write_efer(read_efer() | EFER_TCE);
> +        trampoline_efer |= EFER_TCE;

This doesn't do what you think it does. (it writes into the copy of the
trampoline in .init, not the one placed in low memory).

You need to use bootsym() to get to the real trampoline.

I'm also not sure the prinkt() is useful.  It's about universal on AMD
systems.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Apr 04 13:36:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 04 Apr 2025 13:36:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.938207.1339135 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0hD9-00026c-6W; Fri, 04 Apr 2025 13:35:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 938207.1339135; Fri, 04 Apr 2025 13:35: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 1u0hD9-00026V-3s; Fri, 04 Apr 2025 13:35:55 +0000
Received: by outflank-mailman (input) for mailman id 938207;
 Fri, 04 Apr 2025 13:35: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=C8GG=WW=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u0hD7-00026N-Bn
 for xen-devel@lists.xenproject.org; Fri, 04 Apr 2025 13:35:53 +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 ba4409d6-1159-11f0-9eaa-5ba50f476ded;
 Fri, 04 Apr 2025 15:35:52 +0200 (CEST)
Received: by mail-ed1-x52d.google.com with SMTP id
 4fb4d7f45d1cf-5e677f59438so3237085a12.2
 for <xen-devel@lists.xenproject.org>; Fri, 04 Apr 2025 06:35:52 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 a640c23a62f3a-ac7c01c1085sm253747966b.183.2025.04.04.06.35.51
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 04 Apr 2025 06:35: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: ba4409d6-1159-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1743773752; x=1744378552; 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=7zMVCjKwCi74UMVT2Q8AVcMCSyrZzJQzum19Wgp9Wls=;
        b=G/8OAaRSf/EGEBA8ExySYSEhkCDck64ZXPHODmkaosH8bE7i50tSAaASe2BALh+y46
         03U5g37JNy1fA+jk/fWUOm2R8ZmfGloeaMwgI1Z6Ie1cp73M7WtYxFugYsnnWFW+aV/1
         3HhRqb0GRfC6N+v5mdCG3d0ZZC527FdEbwaZQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743773752; x=1744378552;
        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=7zMVCjKwCi74UMVT2Q8AVcMCSyrZzJQzum19Wgp9Wls=;
        b=Rnz7BcVJVWlN8sq5NvaU3QyPcqED9ntsMMcEOh0bqsRUSHvxZyAhQw970EX7HYV/yh
         As/IoI2K0cNnvndbr8f+WckuBpGHLx+8YF+u8ZQJOggQ6J782I0YgNY2/IsENZv3y3F0
         HgnqhL5QNds0+WMhQC4dwmtnJMdyufmHZ0VnKfnlkeLGBGKWhn6fVNK0nBh7B6LRKKcf
         x3VHFGZUa3v5KXsRDNfd7EVsGoqeO6Pq2jd5gRrOTQ0u49RAQ/NOOfsG3LMfKEz8EZhy
         Gqos0HypiJ3S7WwD+MOcAky4GiYAZ6iazKS11APLH8A6aDKH1nwhRnCt6Pd3gNMzg87g
         2nog==
X-Forwarded-Encrypted: i=1; AJvYcCW3FhgeRpVKbLHHgNCvpU5edlumhaEXKVRqHLOnb9uCqF7daY1Tsp3Jk7lrWsA+eD8X8Tauc2QMkMM=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yypm4NtL1s3GH0voChk2eYVNr6uEocFx2RF9h2J24Atoh9dnl2G
	C2FprmiCn8sG5pev2GfwHQ56tfpNPmbqrSe/FQcwnizhnb95qq7lyRlMOCh0EIw=
X-Gm-Gg: ASbGncuqLA1MOD5MrWHCtd+xCHiswGyHqy9oWUCD11040D0OatupUPNrX0XegpyMsUT
	2yfYpkjJMyW8NAQwP1mR/RxBxy6QFrUtDwiP7Nx7eWD1rZE2mdRawK8fe6diFd+rO5zkM+huTuG
	VMruZK7Aw/qE9jbhk9s2JxHApQYYotDA+YspNduEtVqOu0wm0iOVYa9Nh++Xc2EOAeLWozr8TiE
	eF/kox0xGBeCdCWNxUfMMU1WmCNx8Y2zSLIwu63bKwNeylYH2ecdXgwWIcZxtqTMx5wtmixplPl
	fhvaoFGqaQPhXmHBHKJ05VWQcmZMQRWfJufZF19dndcAWzFbyA==
X-Google-Smtp-Source: AGHT+IFSKCngGbRbwdtl+C7MsVBdbETjJAdfQeZKdojq/dV5G705u6R+N4qeFiZ9coPdcBWaR16zzw==
X-Received: by 2002:a17:907:3d8d:b0:ac7:391a:e2d4 with SMTP id a640c23a62f3a-ac7d6e9fe27mr218999966b.59.1743773751706;
        Fri, 04 Apr 2025 06:35:51 -0700 (PDT)
From: Roger Pau Monne <roger.pau@citrix.com>
To: Juergen Gross <jgross@suse.com>,
	Roger Pau Monne <roger.pau@citrix.com>,
	xen-devel@lists.xenproject.org,
	linux-kernel@vger.kernel.org
Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Subject: [PATCH v2] x86/xen: fix balloon target initialization for PVH dom0
Date: Fri,  4 Apr 2025 15:34:58 +0200
Message-ID: <20250404133459.16125-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.48.1
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

PVH dom0 re-uses logic from PV dom0, in which RAM ranges not assigned to
dom0 are re-used as scratch memory to map foreign and grant pages.  Such
logic relies on reporting those unpopulated ranges as RAM to Linux, and
mark them as reserved.  This way Linux creates the underlying page
structures required for metadata management.

Such approach works fine on PV because the initial balloon target is
calculated using specific Xen data, that doesn't take into account the
memory type changes described above.  However on HVM and PVH the initial
balloon target is calculated using get_num_physpages(), and that function
does take into account the unpopulated RAM regions used as scratch space
for remote domain mappings.

This leads to PVH dom0 having an incorrect initial balloon target, which
causes malfunction (excessive memory freeing) of the balloon driver if the
dom0 memory target is later adjusted from the toolstack.

Fix this by using xen_released_pages to account for any pages that are part
of the memory map, but are already unpopulated when the balloon driver is
initialized.  This accounts for any regions used for scratch remote
mappings.

Take the opportunity to unify PV with PVH/HVM guests regarding the usage of
get_num_physpages(), as that avoids having to add different logic for PV vs
PVH in both balloon_add_regions() and arch_xen_unpopulated_init().

Much like a6aa4eb994ee, the code in this changeset should have been part of
38620fc4e893.

Fixes: a6aa4eb994ee ('xen/x86: add extra pages to unpopulated-alloc if available')
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
Changes since v1:
 - Replace BUG_ON() with a WARN and failure to initialize the balloon
   driver.
---
 arch/x86/xen/enlighten.c |  7 +++++++
 drivers/xen/balloon.c    | 34 ++++++++++++++++++++++++----------
 2 files changed, 31 insertions(+), 10 deletions(-)

diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
index 43dcd8c7badc..651bb206434c 100644
--- a/arch/x86/xen/enlighten.c
+++ b/arch/x86/xen/enlighten.c
@@ -466,6 +466,13 @@ int __init arch_xen_unpopulated_init(struct resource **res)
 			xen_free_unpopulated_pages(1, &pg);
 		}
 
+		/*
+		 * Account for the region being in the physmap but unpopulated.
+		 * The value in xen_released_pages is used by the balloon
+		 * driver to know how much of the physmap is unpopulated and
+		 * set an accurate initial memory target.
+		 */
+		xen_released_pages += xen_extra_mem[i].n_pfns;
 		/* Zero so region is not also added to the balloon driver. */
 		xen_extra_mem[i].n_pfns = 0;
 	}
diff --git a/drivers/xen/balloon.c b/drivers/xen/balloon.c
index 163f7f1d70f1..ee165f4f7fe6 100644
--- a/drivers/xen/balloon.c
+++ b/drivers/xen/balloon.c
@@ -675,7 +675,7 @@ void xen_free_ballooned_pages(unsigned int nr_pages, struct page **pages)
 }
 EXPORT_SYMBOL(xen_free_ballooned_pages);
 
-static void __init balloon_add_regions(void)
+static int __init balloon_add_regions(void)
 {
 	unsigned long start_pfn, pages;
 	unsigned long pfn, extra_pfn_end;
@@ -698,26 +698,38 @@ static void __init balloon_add_regions(void)
 		for (pfn = start_pfn; pfn < extra_pfn_end; pfn++)
 			balloon_append(pfn_to_page(pfn));
 
-		balloon_stats.total_pages += extra_pfn_end - start_pfn;
+		/*
+		 * Extra regions are accounted for in the physmap, but need
+		 * decreasing from current_pages to balloon down the initial
+		 * allocation, because they are already accounted for in
+		 * total_pages.
+		 */
+		if (extra_pfn_end - start_pfn >= balloon_stats.current_pages) {
+			WARN(1, "Extra pages underflow current target");
+			return -ERANGE;
+		}
+		balloon_stats.current_pages -= extra_pfn_end - start_pfn;
 	}
+
+	return 0;
 }
 
 static int __init balloon_init(void)
 {
 	struct task_struct *task;
+	int rc;
 
 	if (!xen_domain())
 		return -ENODEV;
 
 	pr_info("Initialising balloon driver\n");
 
-#ifdef CONFIG_XEN_PV
-	balloon_stats.current_pages = xen_pv_domain()
-		? min(xen_start_info->nr_pages - xen_released_pages, max_pfn)
-		: get_num_physpages();
-#else
-	balloon_stats.current_pages = get_num_physpages();
-#endif
+	if (xen_released_pages >= get_num_physpages()) {
+		WARN(1, "Released pages underflow current target");
+		return -ERANGE;
+	}
+
+	balloon_stats.current_pages = get_num_physpages() - xen_released_pages;
 	balloon_stats.target_pages  = balloon_stats.current_pages;
 	balloon_stats.balloon_low   = 0;
 	balloon_stats.balloon_high  = 0;
@@ -734,7 +746,9 @@ static int __init balloon_init(void)
 	register_sysctl_init("xen/balloon", balloon_table);
 #endif
 
-	balloon_add_regions();
+	rc = balloon_add_regions();
+	if (rc)
+		return rc;
 
 	task = kthread_run(balloon_thread, NULL, "xen-balloon");
 	if (IS_ERR(task)) {
-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Fri Apr 04 13:39:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 04 Apr 2025 13:39:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.938218.1339145 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0hGl-0002g8-L2; Fri, 04 Apr 2025 13:39:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 938218.1339145; Fri, 04 Apr 2025 13:39: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 1u0hGl-0002g1-Hv; Fri, 04 Apr 2025 13:39:39 +0000
Received: by outflank-mailman (input) for mailman id 938218;
 Fri, 04 Apr 2025 13: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=Z71V=WW=edera.dev=alexander@srs-se1.protection.inumbo.net>)
 id 1u0hGk-0002fv-9g
 for xen-devel@lists.xenproject.org; Fri, 04 Apr 2025 13:39:38 +0000
Received: from mail-qt1-x82f.google.com (mail-qt1-x82f.google.com
 [2607:f8b0:4864:20::82f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3d9f7b16-115a-11f0-9ffb-bf95429c2676;
 Fri, 04 Apr 2025 15:39:33 +0200 (CEST)
Received: by mail-qt1-x82f.google.com with SMTP id
 d75a77b69052e-476b89782c3so21929301cf.1
 for <xen-devel@lists.xenproject.org>; Fri, 04 Apr 2025 06:39:33 -0700 (PDT)
Received: from localhost ([64.201.234.99]) by smtp.gmail.com with ESMTPSA id
 d75a77b69052e-4791aef3455sm22191591cf.0.2025.04.04.06.39.31
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 04 Apr 2025 06:39:31 -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: 3d9f7b16-115a-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=edera.dev; s=google; t=1743773972; x=1744378772; darn=lists.xenproject.org;
        h=content-transfer-encoding:organization:message-id:references
         :in-reply-to:subject:cc:to:from:date:mime-version:from:to:cc:subject
         :date:message-id:reply-to;
        bh=QUCJwb9m9tu/I12JKrhIwcxMqFCd6xmTpVJfD7tqRDY=;
        b=YCWVz7xNYeWZJTuYR7+m/MXT1971yRjgVdXe90QVfvOSmRIzVPnTEvwsGGDnRwl6pL
         0LOCnixBDgz3Kr9ved7YUifqOzFjL7GpraVqrxnXGvOJWRItbjyx61mrCm/HYvv4HCv4
         knEzzIOssEanVkRV9o6j2yfnSeV7JmsS0akbHOb3RfcNLHCtUNHhyQFPSt1IZkukXy9p
         Wci/zkKfaJcyGh75YASmteGKZlaLGeHjANQbRZRlqYOcgA7q2588NpPGILVzev4VG9xX
         mrGbmRSwTsYgo4a0J5nCLfJho1R+MBDCt6YOIG1vxRVrvRKPwmfOrM1wy4GCAX+QIGO1
         i5Dg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743773972; x=1744378772;
        h=content-transfer-encoding:organization:message-id:references
         :in-reply-to:subject:cc:to:from:date:mime-version:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=QUCJwb9m9tu/I12JKrhIwcxMqFCd6xmTpVJfD7tqRDY=;
        b=GRBrn7bgMniKD/qI9LubcjXQUud1U8NXR4DFngJgNMQ9g2AX60P7f6V9RhX2euvIDt
         qrejQxDwXlfPW/00DBJJSTRgbQyMLBXsKgGLJTaTTw06db86vbmPzkueWPmM76U8snrx
         W7oUhxSZKEcnq6LVX5KSFcLYjgWeSxZgV7YrI/4adilmV+5zABLB4fWZw74fZLY7iRR7
         mOwZZxcnS3bRaKwDaue7U8fALgwwSAzmTsi29NQ1B3Vd49ef5c2cl8DZsn32PRo2CRqr
         dIpfQ88r8Wt6NQEwozVzwa3RFy6xRdTO2jErKkq/jNThQ7UVuW61y9qHqAEitjwFKJ66
         RvjQ==
X-Gm-Message-State: AOJu0YxIGuEiTc2yIZEvvYjCPTKl+y0He7qH+uyAz3wDTzfi36W3b3Ix
	oorNMGiIFhmqTOgwxlyUOcDT3Ia3F/n2SKc0PWXsb08VpyTpaDxa5fOcANbkpZE=
X-Gm-Gg: ASbGnctKnWmbn48SvNGFsNqg1OqymbSnfYdn1TsXfLypzOpRXjCVN5XxTxjdaCyKbQO
	Vv2TDJChppfr2sdm8kmLxnFCainddy4RQN1SfxPclxekAEniLVMQqaF5uO+2UOYyGyyz416OWtI
	cbIu7hQ/ux+hyOVhzAuLm6viIijtDIwpOvz5KgBwqilRuP84+dFpyp0GDnG6XAUOkSYXq9Nyvr5
	9elowPPzyNr1+7r7AXD8cYodtbIH1T1gtlQt4RCADmVm13qLLRj9h7lh1xi2mnNSeXi+ZyRpydU
	9Ms+e5jMftS97IOzNI9fvJIlSWFBxd7M9017xuB00VylNDXKSuwBXRln7+t7YmS6WuY=
X-Google-Smtp-Source: AGHT+IGXs1kC6jEltSQfpuNBmoTism/EM7BjBD2UI0CDNkmWauZN8F6oZnv5rBq6z8rQ3ktmhfaNmQ==
X-Received: by 2002:ac8:7d11:0:b0:476:8ee8:d8a1 with SMTP id d75a77b69052e-479249d584fmr44886621cf.45.1743773972159;
        Fri, 04 Apr 2025 06:39:32 -0700 (PDT)
MIME-Version: 1.0
Date: Fri, 04 Apr 2025 09:39:30 -0400
From: Alexander Merritt <alexander@edera.dev>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Subject: Re: [PATCH] x86: drop XSAVEOPT and CLWB build flags
In-Reply-To: <9870999d-3a45-4c2b-a37b-2651e4d53c3b@citrix.com>
References: <3de09e4e2a3320e0f314803e349fbe6520d04b12.1743719892.git.alexander@edera.dev>
 <c07ec835-3c69-4cf9-ba6a-39d6152393bf@citrix.com>
 <9870999d-3a45-4c2b-a37b-2651e4d53c3b@citrix.com>
Message-ID: <b8f4e43e93bac45204ff5fb43af3b589@edera.dev>
X-Sender: alexander@edera.dev
Organization: Edera
Content-Type: text/plain; charset=UTF-8;
 format=flowed
Content-Transfer-Encoding: 8bit

On 2025-04-03 19:34, Andrew Cooper wrote:
> On 04/04/2025 12:28 am, Andrew Cooper wrote:
> Also, I forgot to write in the ticket, clflushopt wants similar
> treatment, even if there isn't an outward define for it.  I think the
> following two hunks should do:
> 
> ~Andrew
> 
> diff --git a/xen/arch/x86/flushtlb.c b/xen/arch/x86/flushtlb.c
> index 18748b2bc805..ef30ef546336 100644
> --- a/xen/arch/x86/flushtlb.c
> +++ b/xen/arch/x86/flushtlb.c
> @@ -287,7 +287,7 @@ void cache_flush(const void *addr, unsigned int 
> size)
>           * of letting the alternative framework fill the gap by
> appending nops.
>           */
>          alternative_io("ds; clflush %[p]",
> -                       "data16 clflush %[p]", /* clflushopt */
> +                       "clflushopt %[p]",

Agree on these changes. However, I see branch staging uses 
alternative_input and the below /* no outputs */ does not exist.

>                         X86_FEATURE_CLFLUSHOPT,
>                         /* no outputs */,
>                         [p] "m" (*(const char *)(addr)));
> diff --git a/xen/arch/x86/include/asm/system.h
> b/xen/arch/x86/include/asm/system.h
> index 73cb16ca68d6..6f5b6d502911 100644
> --- a/xen/arch/x86/include/asm/system.h
> +++ b/xen/arch/x86/include/asm/system.h
> @@ -23,7 +23,7 @@ static inline void clflush(const void *p)
>  
>  static inline void clflushopt(const void *p)
>  {
> -    asm volatile ( "data16 clflush %0" :: "m" (*(const char *)p) );
> +    asm volatile ( "clflushopt %0" :: "m" (*(const char *)p) );
>  }
>  
>  static inline void clwb(const void *p)


From xen-devel-bounces@lists.xenproject.org Fri Apr 04 13:43:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 04 Apr 2025 13:43:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.938235.1339155 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0hKU-0005aB-3n; Fri, 04 Apr 2025 13:43:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 938235.1339155; Fri, 04 Apr 2025 13:43: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 1u0hKU-0005a4-0a; Fri, 04 Apr 2025 13:43:30 +0000
Received: by outflank-mailman (input) for mailman id 938235;
 Fri, 04 Apr 2025 13:43: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=5J6g=WW=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1u0hKT-0005Zt-Aj
 for xen-devel@lists.xenproject.org; Fri, 04 Apr 2025 13:43:29 +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 c9757e8a-115a-11f0-9ffb-bf95429c2676;
 Fri, 04 Apr 2025 15:43:27 +0200 (CEST)
Received: by mail-ed1-x52b.google.com with SMTP id
 4fb4d7f45d1cf-5ec9d24acfbso5790406a12.0
 for <xen-devel@lists.xenproject.org>; Fri, 04 Apr 2025 06:43:27 -0700 (PDT)
Received: from ?IPV6:2003:e5:873d:1a00:8e99:ce06:aa4a:2e7b?
 (p200300e5873d1a008e99ce06aa4a2e7b.dip0.t-ipconnect.de.
 [2003:e5:873d:1a00:8e99:ce06:aa4a:2e7b])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5f087f0a9c9sm2491857a12.41.2025.04.04.06.43.26
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 04 Apr 2025 06:43:26 -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: c9757e8a-115a-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743774207; x=1744379007; 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=Q3taBEB4gF0NUKuRN7F/l06mDTLF21MiGHIg7Dd0nBw=;
        b=EaHaoAiNCqR+R08noZjYt+9F/VdZ5eLVmz0yl4wLAgvXCCRqIfWE34Wt6b3a9h2Va/
         bY3MkCcN/zF9FwD0h/YEbfwOEVhwpMClRJtet4vY2EsG/3rQJQc1fNwBaYbWeoilfqC9
         r2kuY/fgqzSSAIhFToazsPNITeZhRqDIJ6QrI/FE7SHoNdVOxTSICo8LvdhyMXYd9BkL
         XdVf39V+rmDFSJPsKJl1W5MtpGMh7ravaEuRi1Sgja3YK4mDT514SIKe94vvvfHL3vlv
         NE+LXpqD4dTYjHOZh/Qe/RxV22DxZFtrE7mjt3WrwAM0CvJwKzKbmIYOXBcD0wn+wLS3
         6vCg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743774207; x=1744379007;
        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=Q3taBEB4gF0NUKuRN7F/l06mDTLF21MiGHIg7Dd0nBw=;
        b=kSMokrXy+d6JwwS9dBIlEiCXUv+MN29ObrtO4WPMPPuiw89KjKEselM0ez1574k5V9
         aaNK1U0uVLT6XFtmpR9zLq0nddoyO+mZDCoS/dNBvLRJlHN8JQHbb0bIXJ3umrfSUOti
         d1kabhzxyPibWHlamuOqYmpleTZeQCTmiP7PczbQS/215l1hMR3AmZ5aiZLVKrEf/OC9
         Ddhz2WQ0xkQbK+HvTnLTRFurbjhR0y8BK6WUJKdBcnM5FYY2R6ESi3KRrXTJkQg9K/Rw
         dLwVAJQ4qqC7awnytAAEitMkyY1uiHSuHBznhI0WI92M+1hHccTZxmHrMCsqjemIg2kJ
         rLnQ==
X-Forwarded-Encrypted: i=1; AJvYcCXYG9Vdh38/wLl9xfz2G7AslXw2sQ6jwgIuCzrng7CQ1tw7enFhF/VdROGJsGa4skFJc63RTgTuZX0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzojhieGV142Qs4mkHctSKFH7yAe1R/Zj4p+bcCxf9VJHC22+HX
	jWKB46wPvOC/MMg9K2WZSXM53/162nLJqMLLI7oLzgGksukhEg+AjuGPs6CS6jY=
X-Gm-Gg: ASbGncuNzXON5t3dRsFUL7fc91dT5xqd+nJGTXewL17/k0bOlMcmH3bVa8wCIrUjFhp
	cBO12yJnyxtKs6KXrXGMu/5xAwIyIdLFHDoEKVLft6IjyhW4NYp8QYU65PE9pyTZ0zrF/cxLImI
	9lPoYX8pXU3NFkjXJvP/Bv+0hJXhEPMii1dSCNcGGHXzby+foBUABIQVBOnyWd5C4Cz+65ikLQ1
	mKlH4VpT2spsESZzh7jYgVCREpZ8OdEaY0FYcWqieaTb/YNDvMSsBYG97dPOwPiYQcO1FsgjuHV
	kMQUkV/ub+77g7Ym2vtb484LKfwgZYDDk4EqZDIrQU/y9TwMmOWFzViVD3PNixWBy/ArxTgAGNe
	xSCZIxJZcxBKrHhq/1ILp9LZrJGF4Pf13BBt8pPMzeKM5hBZVu6AymGJG7qDkWlyl1qbSTaNbLn
	M5BUCD
X-Google-Smtp-Source: AGHT+IGkt/iwIlZigqNIp4GoGftYoaLe427rUWKET4qJfryg54IAyRaRodaL370ygzl75u+br2Uocw==
X-Received: by 2002:a05:6402:4316:b0:5ec:cb95:c3ce with SMTP id 4fb4d7f45d1cf-5f0b284dc8fmr2774876a12.1.1743774206728;
        Fri, 04 Apr 2025 06:43:26 -0700 (PDT)
Message-ID: <64e63ce5-7af1-466e-aa62-7dba89519891@suse.com>
Date: Fri, 4 Apr 2025 15:43:25 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] x86/xen: fix balloon target initialization for PVH
 dom0
To: Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org,
 linux-kernel@vger.kernel.org
Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
References: <20250404133459.16125-1-roger.pau@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: <20250404133459.16125-1-roger.pau@citrix.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------7EK588fpB7FEU4LWKCZllG5q"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------7EK588fpB7FEU4LWKCZllG5q
Content-Type: multipart/mixed; boundary="------------3hp3B7PBSRztWCO0n6K4eZQI";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org,
 linux-kernel@vger.kernel.org
Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Message-ID: <64e63ce5-7af1-466e-aa62-7dba89519891@suse.com>
Subject: Re: [PATCH v2] x86/xen: fix balloon target initialization for PVH
 dom0
References: <20250404133459.16125-1-roger.pau@citrix.com>
In-Reply-To: <20250404133459.16125-1-roger.pau@citrix.com>

--------------3hp3B7PBSRztWCO0n6K4eZQI
Content-Type: multipart/mixed; boundary="------------DFwldr5icuCE5xC0vZVZc0lE"

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

T24gMDQuMDQuMjUgMTU6MzQsIFJvZ2VyIFBhdSBNb25uZSB3cm90ZToNCj4gUFZIIGRvbTAg
cmUtdXNlcyBsb2dpYyBmcm9tIFBWIGRvbTAsIGluIHdoaWNoIFJBTSByYW5nZXMgbm90IGFz
c2lnbmVkIHRvDQo+IGRvbTAgYXJlIHJlLXVzZWQgYXMgc2NyYXRjaCBtZW1vcnkgdG8gbWFw
IGZvcmVpZ24gYW5kIGdyYW50IHBhZ2VzLiAgU3VjaA0KPiBsb2dpYyByZWxpZXMgb24gcmVw
b3J0aW5nIHRob3NlIHVucG9wdWxhdGVkIHJhbmdlcyBhcyBSQU0gdG8gTGludXgsIGFuZA0K
PiBtYXJrIHRoZW0gYXMgcmVzZXJ2ZWQuICBUaGlzIHdheSBMaW51eCBjcmVhdGVzIHRoZSB1
bmRlcmx5aW5nIHBhZ2UNCj4gc3RydWN0dXJlcyByZXF1aXJlZCBmb3IgbWV0YWRhdGEgbWFu
YWdlbWVudC4NCj4gDQo+IFN1Y2ggYXBwcm9hY2ggd29ya3MgZmluZSBvbiBQViBiZWNhdXNl
IHRoZSBpbml0aWFsIGJhbGxvb24gdGFyZ2V0IGlzDQo+IGNhbGN1bGF0ZWQgdXNpbmcgc3Bl
Y2lmaWMgWGVuIGRhdGEsIHRoYXQgZG9lc24ndCB0YWtlIGludG8gYWNjb3VudCB0aGUNCj4g
bWVtb3J5IHR5cGUgY2hhbmdlcyBkZXNjcmliZWQgYWJvdmUuICBIb3dldmVyIG9uIEhWTSBh
bmQgUFZIIHRoZSBpbml0aWFsDQo+IGJhbGxvb24gdGFyZ2V0IGlzIGNhbGN1bGF0ZWQgdXNp
bmcgZ2V0X251bV9waHlzcGFnZXMoKSwgYW5kIHRoYXQgZnVuY3Rpb24NCj4gZG9lcyB0YWtl
IGludG8gYWNjb3VudCB0aGUgdW5wb3B1bGF0ZWQgUkFNIHJlZ2lvbnMgdXNlZCBhcyBzY3Jh
dGNoIHNwYWNlDQo+IGZvciByZW1vdGUgZG9tYWluIG1hcHBpbmdzLg0KPiANCj4gVGhpcyBs
ZWFkcyB0byBQVkggZG9tMCBoYXZpbmcgYW4gaW5jb3JyZWN0IGluaXRpYWwgYmFsbG9vbiB0
YXJnZXQsIHdoaWNoDQo+IGNhdXNlcyBtYWxmdW5jdGlvbiAoZXhjZXNzaXZlIG1lbW9yeSBm
cmVlaW5nKSBvZiB0aGUgYmFsbG9vbiBkcml2ZXIgaWYgdGhlDQo+IGRvbTAgbWVtb3J5IHRh
cmdldCBpcyBsYXRlciBhZGp1c3RlZCBmcm9tIHRoZSB0b29sc3RhY2suDQo+IA0KPiBGaXgg
dGhpcyBieSB1c2luZyB4ZW5fcmVsZWFzZWRfcGFnZXMgdG8gYWNjb3VudCBmb3IgYW55IHBh
Z2VzIHRoYXQgYXJlIHBhcnQNCj4gb2YgdGhlIG1lbW9yeSBtYXAsIGJ1dCBhcmUgYWxyZWFk
eSB1bnBvcHVsYXRlZCB3aGVuIHRoZSBiYWxsb29uIGRyaXZlciBpcw0KPiBpbml0aWFsaXpl
ZC4gIFRoaXMgYWNjb3VudHMgZm9yIGFueSByZWdpb25zIHVzZWQgZm9yIHNjcmF0Y2ggcmVt
b3RlDQo+IG1hcHBpbmdzLg0KPiANCj4gVGFrZSB0aGUgb3Bwb3J0dW5pdHkgdG8gdW5pZnkg
UFYgd2l0aCBQVkgvSFZNIGd1ZXN0cyByZWdhcmRpbmcgdGhlIHVzYWdlIG9mDQo+IGdldF9u
dW1fcGh5c3BhZ2VzKCksIGFzIHRoYXQgYXZvaWRzIGhhdmluZyB0byBhZGQgZGlmZmVyZW50
IGxvZ2ljIGZvciBQViB2cw0KPiBQVkggaW4gYm90aCBiYWxsb29uX2FkZF9yZWdpb25zKCkg
YW5kIGFyY2hfeGVuX3VucG9wdWxhdGVkX2luaXQoKS4NCj4gDQo+IE11Y2ggbGlrZSBhNmFh
NGViOTk0ZWUsIHRoZSBjb2RlIGluIHRoaXMgY2hhbmdlc2V0IHNob3VsZCBoYXZlIGJlZW4g
cGFydCBvZg0KPiAzODYyMGZjNGU4OTMuDQo+IA0KPiBGaXhlczogYTZhYTRlYjk5NGVlICgn
eGVuL3g4NjogYWRkIGV4dHJhIHBhZ2VzIHRvIHVucG9wdWxhdGVkLWFsbG9jIGlmIGF2YWls
YWJsZScpDQo+IFNpZ25lZC1vZmYtYnk6IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBj
aXRyaXguY29tPg0KDQpSZXZpZXdlZC1ieTogSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2Uu
Y29tPg0KDQoNCkp1ZXJnZW4NCg==
--------------DFwldr5icuCE5xC0vZVZc0lE
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-----

--------------DFwldr5icuCE5xC0vZVZc0lE--

--------------3hp3B7PBSRztWCO0n6K4eZQI--

--------------7EK588fpB7FEU4LWKCZllG5q
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/Ey8FAmfv4f0FAwAAAAAACgkQsN6d1ii/Ey9x
mAf/fcD0rEBbzoVnM7fYo6GTmWfGmmImgguikzh8EGpP0dYnHaa/rMKodf5Pblh9iNg9O+w/RHyi
8gi8gjM90gafJg84Sr77h2y0sAvvUrVMD/9h7p4UjmnmId39JkmAeuxRgBkIoqRDNX73ks1i17qx
VFJSddgloJS5FPUV9MoEDQ1veg+d+N15CTgxtM58ICRugnU8I/i4ZLChL2Z5ZjcB+HbWl6v/hSBU
T1b59MAEXhCxDYE0A0OWuZgqRk/UGT+2MV4N6LGYIu7vnUOu4LHnGUSY5fXvd7JCSmhdxml67hEV
tl3bZoQbCOC1IS7aWlLNWtHhnm/lYn+DZWG93hCdOw==
=wJb+
-----END PGP SIGNATURE-----

--------------7EK588fpB7FEU4LWKCZllG5q--


From xen-devel-bounces@lists.xenproject.org Fri Apr 04 13:52:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 04 Apr 2025 13:52:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.938252.1339167 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0hSm-0000E4-32; Fri, 04 Apr 2025 13:52:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 938252.1339167; Fri, 04 Apr 2025 13: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 1u0hSl-0000Dx-Uj; Fri, 04 Apr 2025 13:52:03 +0000
Received: by outflank-mailman (input) for mailman id 938252;
 Fri, 04 Apr 2025 13: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=JDNZ=WW=bounce.vates.tech=bounce-md_30504962.67efe3ff.v1-c4977fde58834b4ea8bf96ffc874577c@srs-se1.protection.inumbo.net>)
 id 1u0hSk-0000Dr-MW
 for xen-devel@lists.xenproject.org; Fri, 04 Apr 2025 13:52:02 +0000
Received: from mail180-44.suw31.mandrillapp.com
 (mail180-44.suw31.mandrillapp.com [198.2.180.44])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fb23e694-115b-11f0-9eaa-5ba50f476ded;
 Fri, 04 Apr 2025 15:52:01 +0200 (CEST)
Received: from pmta11.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail180-44.suw31.mandrillapp.com (Mailchimp) with ESMTP id
 4ZTg5C3W5Tz705lr0
 for <xen-devel@lists.xenproject.org>; Fri,  4 Apr 2025 13:51:59 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 c4977fde58834b4ea8bf96ffc874577c; Fri, 04 Apr 2025 13:51: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: fb23e694-115b-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1743774719; x=1744044719;
	bh=rJ3WicANQ0WPezWD+WXFF9t4wnT8sFZBUMBsnaJAbQE=;
	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=SnfxkGa2ApAzjcqu3InhGa57mO7SmUSwU+wSgnrnhv0peqTgM0201649q931XMC+l
	 I2sjNfAm+xrFIYOq19HEJe6BCWVb4xrE/bteIeybsxW6MFKWE06uut8jDXUOLVeISn
	 Ddfi4vrQANTFyejv2cxc7mK6m/bEkNIKPCc9S2O9wEvUnogQzA0NsnzCqrt6vi7gXD
	 ORfkTuRPmvnzWf8du6bpRcf0MshR7rwKZ0aXRwj65RO19JXcjIiFba4h9t2eRlObRw
	 bcec3SzxYV/tAKk3C20VuumruNkf/w1S++JhHwsFZVfxqnvMfAyiUu+6MTFX+/6hHI
	 1aYgunB+/BPWg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1743774719; x=1744035219; i=anthony.perard@vates.tech;
	bh=rJ3WicANQ0WPezWD+WXFF9t4wnT8sFZBUMBsnaJAbQE=;
	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=Ij97m7xbc4eCiaJK7Bn//eXsfnfIvDYwF792U/xMJo82D1P6062bwwhtK780zvdVt
	 eqCJVsVwY4Sity2EIbDyTPRirH7mC9Vw4q50rlqwR7vZG3JzHp7572yF1gkZcWCB5w
	 v5KEALJWoUaDykMwseyDdWZun5+tGJUd7Hkquw543CIoJ6xDf7Fv0bPLZDrHAMOp5S
	 GnlykJd0LmljNUby3qT6DKV/HpPRFzRB4ED7H2h0O1gvwUt/plRL/A9yNV6b3huYNU
	 G1ikuFcg0Y4JYZDpbOZCtguCsq+lYLrtCbqW/Swv2EW5gbgjBpfmUpakCFGxjbT0bJ
	 tB4Ib64uPHqFg==
From: "Anthony PERARD" <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[XEN=20PATCH=20v2=201/1]=20tools/libxl:=20search=20PATH=20for=20QEMU=20if=20`QEMU=5FXEN=5FPATH`=20is=20not=20absolute?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1743774718896
To: Hongbo <hehongbo@mail.com>
Cc: xen-devel@lists.xenproject.org, "Juergen Gross" <jgross@suse.com>
Message-Id: <Z-_j_vNCclvbvaFS@l14>
References: <20241223031753.13709-1-hehongbo@mail.com> <20250330160304.20899-1-hehongbo@mail.com>
In-Reply-To: <20250330160304.20899-1-hehongbo@mail.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.c4977fde58834b4ea8bf96ffc874577c?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250404:md
Date: Fri, 04 Apr 2025 13:51:59 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Mon, Mar 31, 2025 at 12:03:04AM +0800, Hongbo wrote:
> `QEMU_XEN_PATH` will be configured as `qemu-system-i386` with no clue where, if
> `--with-system-qemu` is set without giving a path (as matched in the case `yes`
> but not `*`). However, the existence of the executable is checked by `access()`,
> that will not look for anywhere in $PATH but the current directory. And since it
> is possible for `qemu-system-i386` (or any other configured values) to be
> executed from PATH later, we'd better find that in PATH and return the full path
> for the caller to check against.
> 
> Signed-off-by: Hongbo <hehongbo@mail.com>
> ---
> v2:
>  - Identify absolute/relative paths with their first char (being `/` or not).
>  - Put the case inside a block `{}` to address `clang` warnings about the new
>    variable.
>  - Avoid unnecessary string duplications.
>  - Parity of using `{}` block on both sides of `if` statements.
>  - Use `libxl__abs_path()` to get absolute paths.

Reviewed-by: Anthony PERARD <anthony.perard@vates.tech>

Thanks,

-- 

 | Vates

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Fri Apr 04 13:52:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 04 Apr 2025 13:52:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.938256.1339176 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0hT4-0000Zr-97; Fri, 04 Apr 2025 13:52:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 938256.1339176; Fri, 04 Apr 2025 13:52:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0hT4-0000Zk-5f; Fri, 04 Apr 2025 13:52:22 +0000
Received: by outflank-mailman (input) for mailman id 938256;
 Fri, 04 Apr 2025 13:52: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=d72r=WW=bounce.vates.tech=bounce-md_30504962.67efe412.v1-ec15a1c33c95496faa2cfe236b78d41d@srs-se1.protection.inumbo.net>)
 id 1u0hT2-0000Dr-Qz
 for xen-devel@lists.xenproject.org; Fri, 04 Apr 2025 13:52:20 +0000
Received: from mail186-2.suw21.mandrillapp.com
 (mail186-2.suw21.mandrillapp.com [198.2.186.2])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 066a37f8-115c-11f0-9eaa-5ba50f476ded;
 Fri, 04 Apr 2025 15:52:19 +0200 (CEST)
Received: from pmta10.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail186-2.suw21.mandrillapp.com (Mailchimp) with ESMTP id 4ZTg5Z4kj5zS62Gvy
 for <xen-devel@lists.xenproject.org>; Fri,  4 Apr 2025 13:52:18 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 ec15a1c33c95496faa2cfe236b78d41d; Fri, 04 Apr 2025 13:52: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: 066a37f8-115c-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1743774738; x=1744044738;
	bh=nbTN4p4U7Kn8AweJEt9smKXgKC3x3eyXeKtnPBjIBmg=;
	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=ITrh5UwQ4QSe1rIZXPVAU+xwWEWajklMzBnz+U7rdwuZ6WODcMpC39hal871UekPT
	 +XQYR+9d0MNVM40nInfOEesz9aFH5gkyxm0BCMmeNIaDlzQhH3jDarUE+3RXT7P1oF
	 GX199ZlImBvKWm9zQCKNi5ViH0GjAHlHkxoeZ8VYlPKIGD9EXRNRbl9r1a0pJs9lFl
	 ud8fgu8jG/eriFuthvsdbm63iUOdB+/rqEuga7El8uJz2M7jNbp4M9S5+xV+6reW19
	 yzzmikWLYiSnp6TgzU+tRt38qduUHPfQvklxxjfMMBDCAQSpeGeclN0Ao/JeuXBX0t
	 17cHbcvUFJweA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1743774738; x=1744035238; i=teddy.astie@vates.tech;
	bh=nbTN4p4U7Kn8AweJEt9smKXgKC3x3eyXeKtnPBjIBmg=;
	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=Qju2gM6i4JIZNVApyiSbF+v4B/KshlpMm+/9+Fqf+43GVhH7IlUIMxWxIsBQJGVbw
	 YUA6CerpqhFSNsZ2jeHn1aqJb9WASp4Y7+qBLguuAFG6n/3v32kt7x4b5PHZxv27ms
	 ONa6V9BhG21v2tJQwcoF/G76Ab+lrR4LCz04yR4B61Qv83kPyXtzgO0lsBepwfmGbN
	 VxXyp1efzx0O+AMjDhXfgefLSeZIBlVJ0O/a2KF/ihWvSdCmarVygtsLt75PFU02MY
	 +yy8zeNG2JfrH7I+LhHFChU2fhKwfU/PukQ+qajZ9sF0AfJHAkzcEKBLmvQ7B47tcg
	 0AtpsQvF980TA==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[PATCH=20v3=202/2]=20x86/amd:=20Enable=20TCE=20in=20Xen?=
X-Mailer: git-send-email 2.47.2
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1743774738180
To: xen-devel@lists.xenproject.org
Cc: "Teddy Astie" <teddy.astie@vates.tech>
Message-Id: <79b08632b74dc13b8c399003eb76d198cb73ac32.1743771654.git.teddy.astie@vates.tech>
In-Reply-To: <2bac0ded3456e04b49b48cf0808203e76fc6a622.1743771654.git.teddy.astie@vates.tech>
References: <2bac0ded3456e04b49b48cf0808203e76fc6a622.1743771654.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.ec15a1c33c95496faa2cfe236b78d41d?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250404:md
Date: Fri, 04 Apr 2025 13:52:18 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Aside exposing this flag to guests, Xen can also make use of it
to reduce the cost of some TLB flushes. Enable this flag if supported
by hardware.

Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
---
v2:
 - Add changelog entry
 - use trampoline_efer
 - use cpu_has_tce instead of opencoded boot_cpu_has(X86_FEATURE_TCE)
v3:
 - drop message
 - use bootsym for modifying trampoline_efer
---
 CHANGELOG.md                          | 2 +-
 xen/arch/x86/include/asm/cpufeature.h | 1 +
 xen/arch/x86/setup.c                  | 6 ++++++
 3 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index dbfecefbd4..375905e68a 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -18,7 +18,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
    - Support PCI passthrough for HVM domUs when dom0 is PVH (note SR-IOV
      capability usage is not yet supported on PVH dom0).
    - Smoke tests for the FreeBSD Xen builds in Cirrus CI.
-   - Guest support for AMD Translation Cache Extension feature.
+   - Guest and Xen support for AMD Translation Cache Extension feature.
 
 ### Removed
 
diff --git a/xen/arch/x86/include/asm/cpufeature.h b/xen/arch/x86/include/asm/cpufeature.h
index 05399fb9c9..ab6d07b767 100644
--- a/xen/arch/x86/include/asm/cpufeature.h
+++ b/xen/arch/x86/include/asm/cpufeature.h
@@ -114,6 +114,7 @@ static inline bool boot_cpu_has(unsigned int feat)
 #define cpu_has_xop             boot_cpu_has(X86_FEATURE_XOP)
 #define cpu_has_skinit          boot_cpu_has(X86_FEATURE_SKINIT)
 #define cpu_has_fma4            boot_cpu_has(X86_FEATURE_FMA4)
+#define cpu_has_tce             boot_cpu_has(X86_FEATURE_TCE)
 #define cpu_has_tbm             boot_cpu_has(X86_FEATURE_TBM)
 
 /* CPUID level 0x0000000D:1.eax */
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index d70abb7e0c..9b1924ad05 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -2008,6 +2008,12 @@ void asmlinkage __init noreturn __start_xen(void)
     if ( cpu_has_pku )
         set_in_cr4(X86_CR4_PKE);
 
+    if ( cpu_has_tce )
+    {
+        write_efer(read_efer() | EFER_TCE);
+        bootsym(trampoline_efer) |= EFER_TCE;
+    }
+
     if ( opt_invpcid && cpu_has_invpcid )
         use_invpcid = true;
 
-- 
2.47.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 Apr 04 13:52:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 04 Apr 2025 13:52:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.938259.1339186 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0hT8-0000re-Fo; Fri, 04 Apr 2025 13:52:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 938259.1339186; Fri, 04 Apr 2025 13: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 1u0hT8-0000rV-CI; Fri, 04 Apr 2025 13:52:26 +0000
Received: by outflank-mailman (input) for mailman id 938259;
 Fri, 04 Apr 2025 13: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=JJrA=WW=bounce.vates.tech=bounce-md_30504962.67efe412.v1-57e71f5af35149d8a34943717485ba4f@srs-se1.protection.inumbo.net>)
 id 1u0hT7-0000qo-4E
 for xen-devel@lists.xenproject.org; Fri, 04 Apr 2025 13:52:25 +0000
Received: from mail180-44.suw31.mandrillapp.com
 (mail180-44.suw31.mandrillapp.com [198.2.180.44])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0630c483-115c-11f0-9ffb-bf95429c2676;
 Fri, 04 Apr 2025 15:52:19 +0200 (CEST)
Received: from pmta11.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail180-44.suw31.mandrillapp.com (Mailchimp) with ESMTP id
 4ZTg5Z3Tbnz705mdc
 for <xen-devel@lists.xenproject.org>; Fri,  4 Apr 2025 13:52:18 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 57e71f5af35149d8a34943717485ba4f; Fri, 04 Apr 2025 13:52: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: 0630c483-115c-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1743774738; x=1744044738;
	bh=LN9JfEv4G0O3BbLHkaCk2NpM2eltoGV6GWKw+Cf44zs=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=a5ykMxaXpCa50WHQ4x280jHt4pItLfA86X+HDbUIdx4HLysFvFT6KPtUnflyUgLx3
	 uTzg0RihgL+sx+3X7VfKmJr5PbwHkfZ4ukULNvzficqAMKE9z27usEcDjsrrSaniRJ
	 CKTH7gs7pj47xTqOvOVmgjCNkzTWhrhe4TDRUITDJWileVQ/zzSpRXblgs5dhFOmwR
	 vq91sk4pP3wUmrRH6SywiUN9IRYYF15A+17EJufx5i3UfYxeyI2BmEEGWl2MROdRZ7
	 g7NECuQebq4VbBz2tivuyHP8PrxD/g9gWbjnHB/kfHdST1yndhN1T9oasr3/iuZKto
	 Ill9dOcpDqR/A==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1743774738; x=1744035238; i=teddy.astie@vates.tech;
	bh=LN9JfEv4G0O3BbLHkaCk2NpM2eltoGV6GWKw+Cf44zs=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=fwtG2qpa6yJq9o/L0+O2EpFr1URgCOGYsE563ESYYKLO5k3jzfNk85ZEVrGnPG0sl
	 AawkUKMA6yks+j9dyrfYecfR/IpQSJuYcvkGDOpwMBJDNWWsIInppoZmL05b6U/jRo
	 xXYMyIr3hoodXvqUH5bxAZvM3M8AqX0mlTx+zOtXRQrYMsrHWhdcjDJsqUT858fYFe
	 t6YIZJH/0plj1SIiv8eyb6RA81F3lZESCQgEsyAVURV+zxP4FiIO+PS5wtuFT/S+v3
	 MntarkMVoGONYCGQ23zxzsLJTI6U7FCUPi6adG75nui3zY6jZntrSCVDJBif0M2zyG
	 BL4FUyXXU2vPQ==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[PATCH=20v3=201/2]=20x86/amd:=20Add=20guest=20support=20for=20AMD=20TCE?=
X-Mailer: git-send-email 2.47.2
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1743774737788
To: xen-devel@lists.xenproject.org
Cc: "Teddy Astie" <teddy.astie@vates.tech>
Message-Id: <2bac0ded3456e04b49b48cf0808203e76fc6a622.1743771654.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.57e71f5af35149d8a34943717485ba4f?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250404:md
Date: Fri, 04 Apr 2025 13:52:18 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

AMD Translation Cache Extension is a flag that can be enabled in the EFER MSR to optimize
some TLB flushes. Expose this flag to guest if supported by hardware.

Only expose this feature to HAP-enabled guests. Guests with shadow paging guests have
their TLB flush operations intercepted and handled separately, without taking account
to this flag. PV guest follows Xen TLB flush behavior.

Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
---
v3:
 - hide from PV guests
 - review commit description
---
 CHANGELOG.md                                | 1 +
 xen/arch/x86/hvm/hvm.c                      | 3 +++
 xen/arch/x86/include/asm/msr-index.h        | 3 ++-
 xen/arch/x86/pv/emul-priv-op.c              | 4 ++--
 xen/include/public/arch-x86/cpufeatureset.h | 1 +
 5 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 8f6afa5c85..dbfecefbd4 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -18,6 +18,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
    - Support PCI passthrough for HVM domUs when dom0 is PVH (note SR-IOV
      capability usage is not yet supported on PVH dom0).
    - Smoke tests for the FreeBSD Xen builds in Cirrus CI.
+   - Guest support for AMD Translation Cache Extension feature.
 
 ### Removed
 
diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index 5950f3160f..184357b042 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -959,6 +959,9 @@ const char *hvm_efer_valid(const struct vcpu *v, uint64_t value,
     if ( (value & EFER_FFXSE) && !p->extd.ffxsr )
         return "FFXSE without feature";
 
+    if ( (value & EFER_TCE) && !p->extd.tce )
+        return "TCE without feature";
+
     if ( (value & EFER_AIBRSE) && !p->extd.auto_ibrs )
         return "AutoIBRS without feature";
 
diff --git a/xen/arch/x86/include/asm/msr-index.h b/xen/arch/x86/include/asm/msr-index.h
index 22d9e76e55..d8576aec1c 100644
--- a/xen/arch/x86/include/asm/msr-index.h
+++ b/xen/arch/x86/include/asm/msr-index.h
@@ -200,11 +200,12 @@
 #define  EFER_NXE                           (_AC(1, ULL) << 11) /* No Execute Enable */
 #define  EFER_SVME                          (_AC(1, ULL) << 12) /* Secure Virtual Machine Enable */
 #define  EFER_FFXSE                         (_AC(1, ULL) << 14) /* Fast FXSAVE/FXRSTOR */
+#define  EFER_TCE                           (_AC(1, ULL) << 15) /* Translation Cache Extensions */
 #define  EFER_AIBRSE                        (_AC(1, ULL) << 21) /* Automatic IBRS Enable */
 
 #define EFER_KNOWN_MASK \
     (EFER_SCE | EFER_LME | EFER_LMA | EFER_NXE | EFER_SVME | EFER_FFXSE | \
-     EFER_AIBRSE)
+     EFER_TCE | EFER_AIBRSE)
 
 #define MSR_STAR                            _AC(0xc0000081, U) /* legacy mode SYSCALL target */
 #define MSR_LSTAR                           _AC(0xc0000082, U) /* long mode SYSCALL target */
diff --git a/xen/arch/x86/pv/emul-priv-op.c b/xen/arch/x86/pv/emul-priv-op.c
index 70150c2722..531228b2da 100644
--- a/xen/arch/x86/pv/emul-priv-op.c
+++ b/xen/arch/x86/pv/emul-priv-op.c
@@ -857,8 +857,8 @@ static uint64_t guest_efer(const struct domain *d)
 {
     uint64_t val;
 
-    /* Hide unknown bits, and unconditionally hide SVME and AIBRSE from guests. */
-    val = read_efer() & EFER_KNOWN_MASK & ~(EFER_SVME | EFER_AIBRSE);
+    /* Hide unknown bits, and unconditionally hide SVME, TCE and AIBRSE from guests. */
+    val = read_efer() & EFER_KNOWN_MASK & ~(EFER_SVME | EFER_TCE | EFER_AIBRSE);
     /*
      * Hide the 64-bit features from 32-bit guests.  SCE has
      * vendor-dependent behaviour.
diff --git a/xen/include/public/arch-x86/cpufeatureset.h b/xen/include/public/arch-x86/cpufeatureset.h
index cc6e984a88..8182d2dbed 100644
--- a/xen/include/public/arch-x86/cpufeatureset.h
+++ b/xen/include/public/arch-x86/cpufeatureset.h
@@ -170,6 +170,7 @@ XEN_CPUFEATURE(SKINIT,        3*32+12) /*   SKINIT/STGI instructions */
 XEN_CPUFEATURE(WDT,           3*32+13) /*   Watchdog timer */
 XEN_CPUFEATURE(LWP,           3*32+15) /*   Light Weight Profiling */
 XEN_CPUFEATURE(FMA4,          3*32+16) /*A  4 operands MAC instructions */
+XEN_CPUFEATURE(TCE,           3*32+17) /*H  Translation Cache Extension support */
 XEN_CPUFEATURE(NODEID_MSR,    3*32+19) /*   NodeId MSR */
 XEN_CPUFEATURE(TBM,           3*32+21) /*A  trailing bit manipulations */
 XEN_CPUFEATURE(TOPOEXT,       3*32+22) /*   topology extensions CPUID leafs */
-- 
2.47.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 Apr 04 14:12:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 04 Apr 2025 14:12:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.938290.1339195 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0hly-000717-VB; Fri, 04 Apr 2025 14:11:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 938290.1339195; Fri, 04 Apr 2025 14: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 1u0hly-000710-SY; Fri, 04 Apr 2025 14:11:54 +0000
Received: by outflank-mailman (input) for mailman id 938290;
 Fri, 04 Apr 2025 14:11: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=8meU=WW=bounce.vates.tech=bounce-md_30504962.67efe8a4.v1-34a91a02e608459584e5ac23d20d43c5@srs-se1.protection.inumbo.net>)
 id 1u0hlw-00070u-Pb
 for xen-devel@lists.xenproject.org; Fri, 04 Apr 2025 14:11:52 +0000
Received: from mail180-44.suw31.mandrillapp.com
 (mail180-44.suw31.mandrillapp.com [198.2.180.44])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c027a8c9-115e-11f0-9eaa-5ba50f476ded;
 Fri, 04 Apr 2025 16:11:50 +0200 (CEST)
Received: from pmta11.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail180-44.suw31.mandrillapp.com (Mailchimp) with ESMTP id
 4ZTgX471g5z705lqq
 for <xen-devel@lists.xenproject.org>; Fri,  4 Apr 2025 14:11:48 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 34a91a02e608459584e5ac23d20d43c5; Fri, 04 Apr 2025 14:11: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: c027a8c9-115e-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1743775909; x=1744045909;
	bh=P1j4xBL224hXh5pontaZYz6uUzT7pbV2mzDH/T0v5mk=;
	h=From:Subject:Message-Id:To:References:Cc:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=yCuH2DsE/Fk9OWoTRARJ+ach/UX3wPMxsd1mKQPsL9thpPDyZ1AurOIBslnRXKpwb
	 49tFjRIsMaTViSZhZz6LxzhGQ+xkHx3AvWYFc0tpjo65tMuOYzES6iWe6Rt8VBrrtM
	 nFt5E/T6ZreGw+gtTN8F5UfGenkt7QLw0K10e56niepRYkl/JeeiH+GVvfVuGaLfbl
	 j95I3CaChKInuwvdLuJBAKclOXLIu4Ffq6mqvJwaPUcSr2ocFIFAVm3/2HPSxjwuip
	 TBhXdJJRWWv70NXCIOcgpBZyYvue7VoGEy3Qzp6yUvkt+3k7/E6FdqA/7FGBNAWBpK
	 Z2cWYtoXfBN/g==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1743775909; x=1744036409; i=teddy.astie@vates.tech;
	bh=P1j4xBL224hXh5pontaZYz6uUzT7pbV2mzDH/T0v5mk=;
	h=From:Subject:Message-Id:To:References:Cc:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=C4/IqyRq9F6dCmOCFK1OXq8ciA2lzxbS2OmYIH9A5G6c+nL3YI4kkc6bD/LipL67r
	 jbfRWzLaFAHDTYMwAR1MA3tsm5erp9Zz1gZ0isuPoaiJBVdtzgOEHQ/Zynpg3xMFV0
	 fNqQd9Cieq+aJbcXvx7jYphNkcFZCbO4Z4m41T+/hzIhEPdNEIDttwPrgdAZ9kzSuq
	 RikBWpuc1fu0Ag3KVSvdrNHKxJc7R1y4dr2NA5KmN/5uy8FLGSJtwZ68Z+AL8UXSAL
	 Ac1cgrNt1zxcf6R5k4m5w1eGVIL7J7MuTKDqxCQgWCZdKyPi0JpdO7ykUW/8nkyhx4
	 QJINponaPEQWg==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=20v3=201/2]=20x86/amd:=20Add=20guest=20support=20for=20AMD=20TCE?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1743775907693
Message-Id: <789f71af-11fb-4d02-9edc-8128569c5979@vates.tech>
To: xen-devel@lists.xenproject.org
References: <2bac0ded3456e04b49b48cf0808203e76fc6a622.1743771654.git.teddy.astie@vates.tech>
Cc: "Oleksii Kurochko" <oleksii.kurochko@gmail.com>, "Community Manager" <community.manager@xenproject.org>, "Jan Beulich" <jbeulich@suse.com>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>
In-Reply-To: <2bac0ded3456e04b49b48cf0808203e76fc6a622.1743771654.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.34a91a02e608459584e5ac23d20d43c5?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250404:md
Date: Fri, 04 Apr 2025 14:11:48 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Sorry I forgot to run add_maintainers on this patch series, so this 
serie got only sent to xen-devel@lists.xenproject.org without the proper CC.

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 Apr 04 14:18:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 04 Apr 2025 14:18:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.938301.1339206 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0hsD-0007cB-JR; Fri, 04 Apr 2025 14:18:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 938301.1339206; Fri, 04 Apr 2025 14: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 1u0hsD-0007c4-Gq; Fri, 04 Apr 2025 14:18:21 +0000
Received: by outflank-mailman (input) for mailman id 938301;
 Fri, 04 Apr 2025 14:18: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=6wpM=WW=bounce.vates.tech=bounce-md_30504962.67efea2a.v1-dc29fee23a8a4deea8cb57c07c22a9f1@srs-se1.protection.inumbo.net>)
 id 1u0hsC-0007by-Qd
 for xen-devel@lists.xenproject.org; Fri, 04 Apr 2025 14:18:20 +0000
Received: from mail186-2.suw21.mandrillapp.com
 (mail186-2.suw21.mandrillapp.com [198.2.186.2])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a8151cf7-115f-11f0-9eaa-5ba50f476ded;
 Fri, 04 Apr 2025 16:18:19 +0200 (CEST)
Received: from pmta10.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail186-2.suw21.mandrillapp.com (Mailchimp) with ESMTP id 4ZTggZ0xqQzS62H91
 for <xen-devel@lists.xenproject.org>; Fri,  4 Apr 2025 14:18:18 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 dc29fee23a8a4deea8cb57c07c22a9f1; Fri, 04 Apr 2025 14:18: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: a8151cf7-115f-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1743776298; x=1744046298;
	bh=Cn875ock7pUwwTBxNchYfc2TYuKpcgLI6hStnDIs6T8=;
	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=DvxmMN2eaH+IKnQUsypwqiZaQpte/riYgyTWOiTguHBa78bjit+caIW7LQHhzlg7H
	 bNMnkxvykjSzssnddM8SL6reYMmK7GPYd+w9L3FGTkRoHHBBRm1UIQBDBFRcBqtkSg
	 vg8PVgz16pfgmw8RdrZ27lf3pQWvknh43iuipS31NKpFso7hA9eZ7MQ+gLhtWpXqCy
	 hg0TcoCGklk/TJ2L6N6Yf4gMmr3F3gNQgcix3GAIKedLlVl+6+6tnPX+beGhswNH+g
	 0mn8Kv5GThD3963R4vOU/dnvlYCgLbOvk+E7QjiaIH8uFDCszchhfU3Q7xttoW2QaI
	 SPPGZcmU0KzkA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1743776298; x=1744036798; i=anthony.perard@vates.tech;
	bh=Cn875ock7pUwwTBxNchYfc2TYuKpcgLI6hStnDIs6T8=;
	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=dSqtietuI8cslY+FhMY8TAEAILlbkXJUFik8c00yEi3RvIrfYy3KXRrNHv9L61K9i
	 NaIK/cDPOBwoc0OperuhL1L+W/QVaLNYLUX7HO1TM4rFEYvMhouAqfLGTNdAxyLYMI
	 LoMnc2TpNbZeGrGk5jdw2VvsiNQpXTTjX4/VKfCZymOkx75jpuVDudeABmUlBZehzu
	 J2ti1z8GNx18o9Cjs1pc93eUNLN3DY+5rz1nxted6YLJCiedaJxpouWswEMXq3KCzb
	 hqN90h+yu37dp/SCivkQJCC0MWjabWnbXOMM4/hrxS9m+Orc9PwbykKCR7X2bfmsqd
	 GzJHUed7miv9g==
From: "Anthony PERARD" <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[XEN=20PATCH]=20automation:=20Avoid=20changing=20source=20files=20for=20randconfig=20tests?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1743776295428
To: "Stefano Stabellini" <sstabellini@kernel.org>
Cc: xen-devel@lists.xenproject.org, "Doug Goldstein" <cardoe@cardoe.com>
Message-Id: <Z-_qJ4eIDpGvfRFL@l14>
References: <20250326142754.5441-1-anthony.perard@vates.tech> <alpine.DEB.2.22.394.2503261910100.563920@ubuntu-linux-20-04-desktop> <Z-UvUUwUToTr5OgD@l14> <alpine.DEB.2.22.394.2503271554250.563920@ubuntu-linux-20-04-desktop>
In-Reply-To: <alpine.DEB.2.22.394.2503271554250.563920@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.dc29fee23a8a4deea8cb57c07c22a9f1?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250404:md
Date: Fri, 04 Apr 2025 14:18:18 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Thu, Mar 27, 2025 at 03:59:16PM -0700, Stefano Stabellini wrote:
> I was suggesting to create a file under /tmp instead to keep the source
> directory cleaner,

There's an easy way to keep the source directory *extra clean* when
doing hypervisor build, like we are doing here for randoconfig, that is:
out-of-tree build!

> and also because I don't think it is an issue to add
> files to /tmp and not clean them because they get removed when the
> container exits. Isn't it the case? Locally it looks like each
> containers gets its own /tmp that is cleaned after exit.

Sorry, I tend to think that those script could be use outside of the CI
or containers, and /tmp can have a lot of different configuration, so
it's better to clean after oneself when possible.

As for running containers locally, maybe it's faster to reuse a
container instead of creating a new one from an image, which mean /tmp
is probably not cleaned on exit. But I guess people usuasly do `docker
run --rm` or use `containerize` which does the same.

> So my preference is to use mktemp and *not* clean the tmp file on exit.
> 
> If you think we have to clean the tmp file on exit, then let's go with
> your xen/allrandom.config.tmp approach as I would prefer to avoid the
> "trap" command to keep the sources simpler.

So, is that an Ack on my original patch?

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 Apr 04 16:04:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 04 Apr 2025 16:04:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.938318.1339216 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0jWc-0001jJ-0K; Fri, 04 Apr 2025 16:04:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 938318.1339216; Fri, 04 Apr 2025 16:04:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0jWb-0001jC-TK; Fri, 04 Apr 2025 16:04:09 +0000
Received: by outflank-mailman (input) for mailman id 938318;
 Fri, 04 Apr 2025 16:04: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=iWoU=WW=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1u0jWb-0001j6-21
 for xen-devel@lists.xenproject.org; Fri, 04 Apr 2025 16:04:09 +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 6fbac8d5-116e-11f0-9eaa-5ba50f476ded;
 Fri, 04 Apr 2025 18:04:06 +0200 (CEST)
Received: by mail-ed1-x52d.google.com with SMTP id
 4fb4d7f45d1cf-5e5deb6482cso6092561a12.1
 for <xen-devel@lists.xenproject.org>; Fri, 04 Apr 2025 09:04:06 -0700 (PDT)
Received: from fedora.. (user-109-243-64-225.play-internet.pl.
 [109.243.64.225]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5f087eedf61sm2495979a12.32.2025.04.04.09.04.04
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 04 Apr 2025 09:04:04 -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: 6fbac8d5-116e-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1743782646; x=1744387446; 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=ClFWFnQbf7k3ml+usxyZfFeRgyo3/7bs/5QUmcCxSSA=;
        b=PLBAFR25GZPZ8cFs8R92K1S+Zi8IXQivghXsxsgZ9ncd320F7RBmmpWoe6VVFw1U5L
         9dYOkhOh9p0p9L6QLYA8oaqpatck6NkPYdpwMOMlyGPX7k5qjlh/VAv6Ay3myjZ7kypg
         YQnOyhT1FqBQETa5uIkt9k/2HbRLJfHJs89cHMRrzCgNLxFDqkyLRDS470lVn15ii7y4
         WHsop74OyfJAALEVCV/mvVKbRBfB6GB7i4yuAVfhjsEVnMgkDmBGvpNApCb0yZUkcWKr
         SVGNqLayLrZ1bkLvQhChp/7bqPuc+oKgWXi4UhT9ii8KKRoK0vum1fau/dcSGNfMfHIn
         lP9Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743782646; x=1744387446;
        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=ClFWFnQbf7k3ml+usxyZfFeRgyo3/7bs/5QUmcCxSSA=;
        b=xS7VWjsrzbYcHdHnKyHLPVrkFU/Si+3s9qFYdGIrRnZRBSBU/GZYZOuignRlH9dX8z
         l7RloMYEV1VVj66/5Fjra+pky88aecOzLqqsj+xE2XgqJYJ+FSvQkPQUhBCJHjQJiaVD
         FP5uzbiFUhvlx3r8KoufLvTEw/02qCG4nRSREjfVyX3Zo8/UW1SokvPfcPmb4bSEEp9x
         3SlpeXd8cvNx0XiVx8amiGQwN5hHUsipLICTO3RUVg/a20I3obFk1l5WA5pkCum2YT0K
         hnFQN38aG2IZVAFuwW5pIAKjmlgQVPNTm8OWAg+EdAWzBsv/6GpBr14LFw2v4aVT86EY
         1DCg==
X-Gm-Message-State: AOJu0YyY7MvgRyvEkhWzfrXyTmXSKvgljbpfTqOqgfqRsDko9m6tnw6o
	NuV3yhl930jnIB//0KrP26rmivCoXQSd9X/gdVB2MX/P7/9VKnBqc9QL7w==
X-Gm-Gg: ASbGnctiDEWLeSMOC60//kEBAUjRXVWz/ap4W4M1tlNZwYHAshUwlclcoTxtzHmkkpk
	PvSq5HtBwvClgu1k9AVvwQEXuErr86ZD4DILcKNheRMDJGD2C5Hnq5xeiJeyaHVGmILcq3dnDVu
	42dZuHRPIsynARZp1VWcvgWW/vOTizLW0MHXdV8MMUBCN2iT148MWPgsWIqBVE+Y3tWRCElWya8
	hjNHqop8Ioh0OJ2zn0ju/E4Q99k2qGpoRvzOrK4mt7j1dUS158MdF/qfD5KBKAB8VAite8kJbVk
	D0JjMll26AsnkAKIAgIwcslHyp/qaVTJ5p5JtN7Jb/v5XA08bRr7sNTwsscN/d1yx+fGZruQt7C
	GAe/yUURbltHnMQ==
X-Google-Smtp-Source: AGHT+IFxLDXdL0sfTf5zS72oFsBmq5GPi022WrWRgf0cidqTUq+vBOG3RFAPaAz90yq82QRx1uuLvA==
X-Received: by 2002:a17:907:7212:b0:ac3:ed82:77c2 with SMTP id a640c23a62f3a-ac7b6b2b00bmr656513366b.5.1743782645462;
        Fri, 04 Apr 2025 09:04:05 -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>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2] xen/riscv: Increase XEN_VIRT_SIZE
Date: Fri,  4 Apr 2025 18:04:00 +0200
Message-ID: <808d1b346bc90dde38fd19a6b92ab78d78e42936.1743766932.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.49.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

A randconfig job failed with the following issue:
  riscv64-linux-gnu-ld: Xen too large for early-boot assumptions

The reason is that enabling the UBSAN config increased the size of
the Xen binary.

Increase XEN_VIRT_SIZE to reserve enough space, allowing both UBSAN
and GCOV to be enabled together, with some slack for future growth.

Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in v2:
 - Incerease XEN_VIRT_SIZE to 16 Mb to cover also the case if 2M mappings will
   be used for .text (rx), .rodata(r), and .data (rw).
 - Update layout table in config.h.
 - s/xen_virt_starn_vpn/xen_virt_start_vpn
 - Update BUILD_BUG_ON(... != MB(8)) check to "... > GB(1)".
 - Update definition of PGTBL_INITIAL_COUNT and the comment above.
---
 xen/arch/riscv/include/asm/config.h |  8 ++++----
 xen/arch/riscv/include/asm/mm.h     | 12 +++++++++---
 xen/arch/riscv/mm.c                 | 25 ++++++++++++++++---------
 3 files changed, 29 insertions(+), 16 deletions(-)

diff --git a/xen/arch/riscv/include/asm/config.h b/xen/arch/riscv/include/asm/config.h
index 7141bd9e46..41b8410d10 100644
--- a/xen/arch/riscv/include/asm/config.h
+++ b/xen/arch/riscv/include/asm/config.h
@@ -41,11 +41,11 @@
  * Start addr          | End addr         | Slot       | area description
  * ============================================================================
  *                   .....                 L2 511          Unused
- *  0xffffffffc0a00000  0xffffffffc0bfffff L2 511          Fixmap
+ *  0xffffffffc1800000  0xffffffffc1afffff L2 511          Fixmap
  *                   ..... ( 2 MB gap )
- *  0xffffffffc0400000  0xffffffffc07fffff L2 511          FDT
+ *  0xffffffffc1200000  0xffffffffc15fffff L2 511          FDT
  *                   ..... ( 2 MB gap )
- *  0xffffffffc0000000  0xffffffffc01fffff L2 511          Xen
+ *  0xffffffffc0000000  0xffffffffc0ffffff L2 511          Xen
  *                   .....                 L2 510          Unused
  *  0x3200000000        0x7f7fffffff       L2 200-509      Direct map
  *                   .....                 L2 199          Unused
@@ -78,7 +78,7 @@
 
 #define GAP_SIZE                MB(2)
 
-#define XEN_VIRT_SIZE           MB(2)
+#define XEN_VIRT_SIZE           MB(16)
 
 #define BOOT_FDT_VIRT_START     (XEN_VIRT_START + XEN_VIRT_SIZE + GAP_SIZE)
 #define BOOT_FDT_VIRT_SIZE      MB(4)
diff --git a/xen/arch/riscv/include/asm/mm.h b/xen/arch/riscv/include/asm/mm.h
index 4035cd400a..511e75c6d4 100644
--- a/xen/arch/riscv/include/asm/mm.h
+++ b/xen/arch/riscv/include/asm/mm.h
@@ -43,13 +43,19 @@ static inline void *maddr_to_virt(paddr_t ma)
  */
 static inline unsigned long virt_to_maddr(unsigned long va)
 {
+    const unsigned int vpn1_shift = PAGETABLE_ORDER + PAGE_SHIFT;
+    const unsigned long va_vpn = va >> vpn1_shift;
+    const unsigned long xen_virt_start_vpn =
+        _AC(XEN_VIRT_START, UL) >> vpn1_shift;
+    const unsigned long xen_virt_end_vpn =
+        xen_virt_start_vpn + ((XEN_VIRT_SIZE >> vpn1_shift) - 1);
+
     if ((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)) ==
-           (_AC(XEN_VIRT_START, UL) >> (PAGETABLE_ORDER + PAGE_SHIFT)));
+    BUILD_BUG_ON(XEN_VIRT_SIZE > GB(1));
+    ASSERT((va_vpn >= xen_virt_start_vpn) && (va_vpn <= xen_virt_end_vpn));
 
     /* phys_offset = load_start - XEN_VIRT_START */
     return phys_offset + va;
diff --git a/xen/arch/riscv/mm.c b/xen/arch/riscv/mm.c
index f2bf279bac..256afdaaa3 100644
--- a/xen/arch/riscv/mm.c
+++ b/xen/arch/riscv/mm.c
@@ -31,20 +31,27 @@ unsigned long __ro_after_init phys_offset; /* = load_start - XEN_VIRT_START */
 #define LOAD_TO_LINK(addr) ((unsigned long)(addr) - phys_offset)
 
 /*
- * It is expected that Xen won't be more then 2 MB.
+ * It is expected that Xen won't be more then XEN_VIRT_SIZE MB.
  * The check in xen.lds.S guarantees that.
- * At least 3 page tables (in case of Sv39 ) are needed to cover 2 MB.
- * One for each page level table with PAGE_SIZE = 4 Kb.
  *
- * One L0 page table can cover 2 MB(512 entries of one page table * PAGE_SIZE).
+ * Root page table is shared with the initial mapping and is declared
+ * separetely. (look at stage1_pgtbl_root)
  *
- * It might be needed one more page table in case when Xen load address
- * isn't 2 MB aligned.
+ * An amount of page tables between root page table and L0 page table
+ * (in the case of Sv39 it covers L1 table):
+ *   (CONFIG_PAGING_LEVELS - 2) are needed for an identity mapping and
+ *   the same amount are needed for Xen.
  *
- * CONFIG_PAGING_LEVELS page tables are needed for the identity mapping,
- * except that the root page table is shared with the initial mapping
+ * An amount of L0 page tables:
+ *   (512 entries of one L0 page table covers 2MB == 1<<XEN_PT_LEVEL_SHIFT(1))
+ *   XEN_VIRT_SIZE >> XEN_PT_LEVEL_SHIFT(1) are needed for Xen and
+ *   one L0 is needed for indenity mapping.
+ *
+ *   It might be needed one more page table in case when Xen load
+ *   address isn't 2 MB aligned.
  */
-#define PGTBL_INITIAL_COUNT ((CONFIG_PAGING_LEVELS - 1) * 2 + 1)
+#define PGTBL_INITIAL_COUNT ((CONFIG_PAGING_LEVELS - 2) * 2 + \
+                             (XEN_VIRT_SIZE >> XEN_PT_LEVEL_SHIFT(1)) + 2)
 
 pte_t __section(".bss.page_aligned") __aligned(PAGE_SIZE)
 stage1_pgtbl_root[PAGETABLE_ENTRIES];
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Fri Apr 04 18:20:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 04 Apr 2025 18:20:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.938339.1339226 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0leT-0000hP-9p; Fri, 04 Apr 2025 18:20:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 938339.1339226; Fri, 04 Apr 2025 18:20: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 1u0leT-0000hI-6x; Fri, 04 Apr 2025 18:20:25 +0000
Received: by outflank-mailman (input) for mailman id 938339;
 Fri, 04 Apr 2025 18:20: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=AeSw=WW=intel.com=dave.hansen@srs-se1.protection.inumbo.net>)
 id 1u0leQ-0000hC-TR
 for xen-devel@lists.xenproject.org; Fri, 04 Apr 2025 18:20:23 +0000
Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.9])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 736af4ce-1181-11f0-9ffb-bf95429c2676;
 Fri, 04 Apr 2025 20:20:15 +0200 (CEST)
Received: from fmviesa010.fm.intel.com ([10.60.135.150])
 by fmvoesa103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 04 Apr 2025 11:20:13 -0700
Received: from daliomra-mobl3.amr.corp.intel.com (HELO [10.124.223.29])
 ([10.124.223.29])
 by fmviesa010-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 04 Apr 2025 11:20:11 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 736af4ce-1181-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1743790815; x=1775326815;
  h=message-id:date:mime-version:subject:to:cc:references:
   from:in-reply-to:content-transfer-encoding;
  bh=ELgTjsF9sNCsFhLEjCNGV9IJbqb8XICQISChbZPO81U=;
  b=DU8QHA1Im+zYfG5XYs5FDtvpKccOp9DvxDEGi2YoGJN4XG4smPmD9d3D
   SwbBZ3oigXsRU3LCreqHEWNhW0uBC/YvqcCnCo1h4hKtnem380QIGtS2m
   bypwyFWHJkByr2OIoU0wGhsiwXbuON2ko3VxkJgERE9hbAr+Uqr5whzH6
   t4QaOES6F8wsewIdv/sUSYEzdV82R07BKEuaMoVf/1Y1/AajIHBG6ztoA
   cA06DEygBRBjO6I1SHHC3yE3eVcXm2RD+Yv3wSwf+hWnTKK94P9n4ZbJ1
   c44+286r/tx0cRLYSfiTnWi+BxL9R/os/D7q4Smip+HuEZvrOpdY7QFuC
   Q==;
X-CSE-ConnectionGUID: UYv+WwYATLKipfdKbNMXGg==
X-CSE-MsgGUID: XFE1IeXbS9GOymvzZfE0Tg==
X-IronPort-AV: E=McAfee;i="6700,10204,11394"; a="55873266"
X-IronPort-AV: E=Sophos;i="6.15,189,1739865600"; 
   d="scan'208";a="55873266"
X-CSE-ConnectionGUID: YLPXpNZIRC6W91HXhVzEwA==
X-CSE-MsgGUID: 0kJYb0jhS2uusKSQfSWmwQ==
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="6.15,189,1739865600"; 
   d="scan'208";a="127863717"
Message-ID: <b0bb167b-fc48-4434-99a1-9b0d2f3e7d38@intel.com>
Date: Fri, 4 Apr 2025 11:20:10 -0700
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] x86/xen: fix balloon target initialization for PVH
 dom0
To: Roger Pau Monne <roger.pau@citrix.com>, Juergen Gross <jgross@suse.com>,
 xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org
Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
References: <20250404133459.16125-1-roger.pau@citrix.com>
From: Dave Hansen <dave.hansen@intel.com>
Content-Language: en-US
Autocrypt: addr=dave.hansen@intel.com; keydata=
 xsFNBE6HMP0BEADIMA3XYkQfF3dwHlj58Yjsc4E5y5G67cfbt8dvaUq2fx1lR0K9h1bOI6fC
 oAiUXvGAOxPDsB/P6UEOISPpLl5IuYsSwAeZGkdQ5g6m1xq7AlDJQZddhr/1DC/nMVa/2BoY
 2UnKuZuSBu7lgOE193+7Uks3416N2hTkyKUSNkduyoZ9F5twiBhxPJwPtn/wnch6n5RsoXsb
 ygOEDxLEsSk/7eyFycjE+btUtAWZtx+HseyaGfqkZK0Z9bT1lsaHecmB203xShwCPT49Blxz
 VOab8668QpaEOdLGhtvrVYVK7x4skyT3nGWcgDCl5/Vp3TWA4K+IofwvXzX2ON/Mj7aQwf5W
 iC+3nWC7q0uxKwwsddJ0Nu+dpA/UORQWa1NiAftEoSpk5+nUUi0WE+5DRm0H+TXKBWMGNCFn
 c6+EKg5zQaa8KqymHcOrSXNPmzJuXvDQ8uj2J8XuzCZfK4uy1+YdIr0yyEMI7mdh4KX50LO1
 pmowEqDh7dLShTOif/7UtQYrzYq9cPnjU2ZW4qd5Qz2joSGTG9eCXLz5PRe5SqHxv6ljk8mb
 ApNuY7bOXO/A7T2j5RwXIlcmssqIjBcxsRRoIbpCwWWGjkYjzYCjgsNFL6rt4OL11OUF37wL
 QcTl7fbCGv53KfKPdYD5hcbguLKi/aCccJK18ZwNjFhqr4MliQARAQABzUVEYXZpZCBDaHJp
 c3RvcGhlciBIYW5zZW4gKEludGVsIFdvcmsgQWRkcmVzcykgPGRhdmUuaGFuc2VuQGludGVs
 LmNvbT7CwXgEEwECACIFAlQ+9J0CGwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEGg1
 lTBwyZKwLZUP/0dnbhDc229u2u6WtK1s1cSd9WsflGXGagkR6liJ4um3XCfYWDHvIdkHYC1t
 MNcVHFBwmQkawxsYvgO8kXT3SaFZe4ISfB4K4CL2qp4JO+nJdlFUbZI7cz/Td9z8nHjMcWYF
 IQuTsWOLs/LBMTs+ANumibtw6UkiGVD3dfHJAOPNApjVr+M0P/lVmTeP8w0uVcd2syiaU5jB
 aht9CYATn+ytFGWZnBEEQFnqcibIaOrmoBLu2b3fKJEd8Jp7NHDSIdrvrMjYynmc6sZKUqH2
 I1qOevaa8jUg7wlLJAWGfIqnu85kkqrVOkbNbk4TPub7VOqA6qG5GCNEIv6ZY7HLYd/vAkVY
 E8Plzq/NwLAuOWxvGrOl7OPuwVeR4hBDfcrNb990MFPpjGgACzAZyjdmYoMu8j3/MAEW4P0z
 F5+EYJAOZ+z212y1pchNNauehORXgjrNKsZwxwKpPY9qb84E3O9KYpwfATsqOoQ6tTgr+1BR
 CCwP712H+E9U5HJ0iibN/CDZFVPL1bRerHziuwuQuvE0qWg0+0SChFe9oq0KAwEkVs6ZDMB2
 P16MieEEQ6StQRlvy2YBv80L1TMl3T90Bo1UUn6ARXEpcbFE0/aORH/jEXcRteb+vuik5UGY
 5TsyLYdPur3TXm7XDBdmmyQVJjnJKYK9AQxj95KlXLVO38lczsFNBFRjzmoBEACyAxbvUEhd
 GDGNg0JhDdezyTdN8C9BFsdxyTLnSH31NRiyp1QtuxvcqGZjb2trDVuCbIzRrgMZLVgo3upr
 MIOx1CXEgmn23Zhh0EpdVHM8IKx9Z7V0r+rrpRWFE8/wQZngKYVi49PGoZj50ZEifEJ5qn/H
 Nsp2+Y+bTUjDdgWMATg9DiFMyv8fvoqgNsNyrrZTnSgoLzdxr89FGHZCoSoAK8gfgFHuO54B
 lI8QOfPDG9WDPJ66HCodjTlBEr/Cwq6GruxS5i2Y33YVqxvFvDa1tUtl+iJ2SWKS9kCai2DR
 3BwVONJEYSDQaven/EHMlY1q8Vln3lGPsS11vSUK3QcNJjmrgYxH5KsVsf6PNRj9mp8Z1kIG
 qjRx08+nnyStWC0gZH6NrYyS9rpqH3j+hA2WcI7De51L4Rv9pFwzp161mvtc6eC/GxaiUGuH
 BNAVP0PY0fqvIC68p3rLIAW3f97uv4ce2RSQ7LbsPsimOeCo/5vgS6YQsj83E+AipPr09Caj
 0hloj+hFoqiticNpmsxdWKoOsV0PftcQvBCCYuhKbZV9s5hjt9qn8CE86A5g5KqDf83Fxqm/
 vXKgHNFHE5zgXGZnrmaf6resQzbvJHO0Fb0CcIohzrpPaL3YepcLDoCCgElGMGQjdCcSQ+Ci
 FCRl0Bvyj1YZUql+ZkptgGjikQARAQABwsFfBBgBAgAJBQJUY85qAhsMAAoJEGg1lTBwyZKw
 l4IQAIKHs/9po4spZDFyfDjunimEhVHqlUt7ggR1Hsl/tkvTSze8pI1P6dGp2XW6AnH1iayn
 yRcoyT0ZJ+Zmm4xAH1zqKjWplzqdb/dO28qk0bPso8+1oPO8oDhLm1+tY+cOvufXkBTm+whm
 +AyNTjaCRt6aSMnA/QHVGSJ8grrTJCoACVNhnXg/R0g90g8iV8Q+IBZyDkG0tBThaDdw1B2l
 asInUTeb9EiVfL/Zjdg5VWiF9LL7iS+9hTeVdR09vThQ/DhVbCNxVk+DtyBHsjOKifrVsYep
 WpRGBIAu3bK8eXtyvrw1igWTNs2wazJ71+0z2jMzbclKAyRHKU9JdN6Hkkgr2nPb561yjcB8
 sIq1pFXKyO+nKy6SZYxOvHxCcjk2fkw6UmPU6/j/nQlj2lfOAgNVKuDLothIxzi8pndB8Jju
 KktE5HJqUUMXePkAYIxEQ0mMc8Po7tuXdejgPMwgP7x65xtfEqI0RuzbUioFltsp1jUaRwQZ
 MTsCeQDdjpgHsj+P2ZDeEKCbma4m6Ez/YWs4+zDm1X8uZDkZcfQlD9NldbKDJEXLIjYWo1PH
 hYepSffIWPyvBMBTW2W5FRjJ4vLRrJSUoEfJuPQ3vW9Y73foyo/qFoURHO48AinGPZ7PC7TF
 vUaNOTjKedrqHkaOcqB185ahG2had0xnFsDPlx5y
In-Reply-To: <20250404133459.16125-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 4/4/25 06:34, Roger Pau Monne wrote:
> Much like a6aa4eb994ee, the code in this changeset should have been part of
> 38620fc4e893.
> 
> Fixes: a6aa4eb994ee ('xen/x86: add extra pages to unpopulated-alloc if available')
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>

I don't see a cc:stable@ on there. Was there a reason for that or did
you just leave it off by accident?


From xen-devel-bounces@lists.xenproject.org Fri Apr 04 18:26:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 04 Apr 2025 18:26:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.938350.1339236 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0lkY-0002bL-Ti; Fri, 04 Apr 2025 18:26:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 938350.1339236; Fri, 04 Apr 2025 18: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 1u0lkY-0002bE-RD; Fri, 04 Apr 2025 18:26:42 +0000
Received: by outflank-mailman (input) for mailman id 938350;
 Fri, 04 Apr 2025 18: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=5J6g=WW=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1u0lkX-0002b8-0I
 for xen-devel@lists.xenproject.org; Fri, 04 Apr 2025 18:26: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 5980ef7c-1182-11f0-9eaa-5ba50f476ded;
 Fri, 04 Apr 2025 20:26:39 +0200 (CEST)
Received: by mail-ej1-x62b.google.com with SMTP id
 a640c23a62f3a-ac25d2b2354so416883566b.1
 for <xen-devel@lists.xenproject.org>; Fri, 04 Apr 2025 11:26:39 -0700 (PDT)
Received: from ?IPV6:2003:e5:873d:1a00:8e99:ce06:aa4a:2e7b?
 (p200300e5873d1a008e99ce06aa4a2e7b.dip0.t-ipconnect.de.
 [2003:e5:873d:1a00:8e99:ce06:aa4a:2e7b])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-ac7c01c21d0sm300949066b.175.2025.04.04.11.26.38
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 04 Apr 2025 11:26:38 -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: 5980ef7c-1182-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1743791199; x=1744395999; 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=EYv98k/kVrWQigraqqHU5Ii71ogDM06xt3AD16sSeaA=;
        b=H9LWt+xG+djK7KTPskql0LVRO3xnd2ramSI1XJx2WxkYCccnNBMw7Zp61Iex6aYauu
         iPOStOTdPydjLiRwk+Bdm5jWzUGUfmXuGLBVUPdS7LIk+WVF2pwTkFk7C4xO3bqrP/rB
         KOE3YcpdLiVKMVjZWLt/ExUbh9VhK9JO3dig2PzXpeHKepKDUnfxXFIvTvY1UCgM1Cmi
         9hnG4Euuz5mILxpBm93YKhlgIRpo3fvfFvi2FRVREULE7n+SXJbVyATBHiHS+3vX71LG
         eZ5AS9J/nlfIib/FBw2NCiMeHbeWO4mrhT1r+rdxNJQch1oP66GXfK6I53jHWh3j0T4I
         tGTA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1743791199; x=1744395999;
        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=EYv98k/kVrWQigraqqHU5Ii71ogDM06xt3AD16sSeaA=;
        b=K0VNUBiaT9yLVR+C7aiZPW27HrDBmwe9sfMnaXjEgV4O9Vg+AO103/FPPNPUsM8kMr
         qnGsGghMaP7izlk9S8neO/cvLq4PNLa5EumcDmdDtgfVt1tdkk48/OpHotypX4VjKjAs
         U5AKY5E3tvg63VliPCXAhv4oedHaQEminHE0zG9rXyeJZPSz+Q0s0SiK3mqElFdLcPhx
         +9BSdzZpJI1JjrFFb/aHxkyOysqIIq0PMK9s3McieqaNQP1tB/JoMIWcct8jRx9bCjFV
         uU5CduJ5DMCz2a0/1HSqTrCEcpZ9XRUpwCHxdIk5HDYTGC5lhe/CoYIqYjYL0q6B1MBO
         zELw==
X-Forwarded-Encrypted: i=1; AJvYcCW2DsfEqIbDZeHXErv4/T4Ji8KaBt83clK/b+zya8DOEUVWeuAiZOkz8WxfrJ/1KSkP2AfYlESNC3I=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyWzO8JKW/Fz+mHi9X5fxPNS3maDA2f/UtSBQYvqbtpZtOZ4aYq
	CBCTo0erPGW3ZoVn8gOqUYl8z0g6Kr7Vv6wUacbchXLZlPCW9olcBFNUjXJClyU=
X-Gm-Gg: ASbGncu3dlbyPVUQ8kMq9HymwU3VE2cp3gMn3eeZ39CCubkfZvKPVKdaC5syomZx2IC
	8gMtOyj8Sr0cTQZERYWqRWAT/PhcI06oki6O8z5aIkhceDOn+dCFTTiVuzCh7XCWOVj+FX96KXn
	J/stXqawyS8sEgX+8RIxP9Er47WC4XyNmsH9bkk5soQ5b4dofwoNneaUlDU7wkOn1jHIVMPUJah
	rSqQyezyuleVVOWLAwW1Dto9qSVJ8+tgTwg50fgMF4JwKYYj4jOscSDubfOwH3s2jHvQHKyoVzw
	wzBeFnMcXd/muiMr0DXFf8M/ZEPGIVzjvSQQSqIR03ehK57e0niFFlXTOoF4jPxZIHQKylaPkFK
	rrMMyrLwnj7CBxWuiIEeBPnYXwvNzwfQ+cGGfkZWfroj1xHsczZgNnJPhW+u5/dK0L92Yyw==
X-Google-Smtp-Source: AGHT+IEtRyOMJ7rv9Yu9CmzIEdrjS+IkGOdcluo1mbQaap6BtyC/vpBedaMyW0qLTYyMqsUGAtHvSw==
X-Received: by 2002:a17:907:d8c:b0:ac7:b366:c331 with SMTP id a640c23a62f3a-ac7d6e951e8mr318304766b.53.1743791198824;
        Fri, 04 Apr 2025 11:26:38 -0700 (PDT)
Message-ID: <42a55a38-ad95-465b-b557-95c99e12377f@suse.com>
Date: Fri, 4 Apr 2025 20:26:37 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] x86/xen: fix balloon target initialization for PVH
 dom0
To: Dave Hansen <dave.hansen@intel.com>,
 Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org,
 linux-kernel@vger.kernel.org
Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
References: <20250404133459.16125-1-roger.pau@citrix.com>
 <b0bb167b-fc48-4434-99a1-9b0d2f3e7d38@intel.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: <b0bb167b-fc48-4434-99a1-9b0d2f3e7d38@intel.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------az9mjnjMNxtWEQ6g385kjHmp"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------az9mjnjMNxtWEQ6g385kjHmp
Content-Type: multipart/mixed; boundary="------------ovw2iLJ40lMBphh3VLp0WxkB";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Dave Hansen <dave.hansen@intel.com>,
 Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org,
 linux-kernel@vger.kernel.org
Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Message-ID: <42a55a38-ad95-465b-b557-95c99e12377f@suse.com>
Subject: Re: [PATCH v2] x86/xen: fix balloon target initialization for PVH
 dom0
References: <20250404133459.16125-1-roger.pau@citrix.com>
 <b0bb167b-fc48-4434-99a1-9b0d2f3e7d38@intel.com>
In-Reply-To: <b0bb167b-fc48-4434-99a1-9b0d2f3e7d38@intel.com>

--------------ovw2iLJ40lMBphh3VLp0WxkB
Content-Type: multipart/mixed; boundary="------------bvchYM7fVNyfKc4uShVBrciV"

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

T24gMDQuMDQuMjUgMjA6MjAsIERhdmUgSGFuc2VuIHdyb3RlOg0KPiBPbiA0LzQvMjUgMDY6
MzQsIFJvZ2VyIFBhdSBNb25uZSB3cm90ZToNCj4+IE11Y2ggbGlrZSBhNmFhNGViOTk0ZWUs
IHRoZSBjb2RlIGluIHRoaXMgY2hhbmdlc2V0IHNob3VsZCBoYXZlIGJlZW4gcGFydCBvZg0K
Pj4gMzg2MjBmYzRlODkzLg0KPj4NCj4+IEZpeGVzOiBhNmFhNGViOTk0ZWUgKCd4ZW4veDg2
OiBhZGQgZXh0cmEgcGFnZXMgdG8gdW5wb3B1bGF0ZWQtYWxsb2MgaWYgYXZhaWxhYmxlJykN
Cj4+IFNpZ25lZC1vZmYtYnk6IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXgu
Y29tPg0KPiANCj4gSSBkb24ndCBzZWUgYSBjYzpzdGFibGVAIG9uIHRoZXJlLiBXYXMgdGhl
cmUgYSByZWFzb24gZm9yIHRoYXQgb3IgZGlkDQo+IHlvdSBqdXN0IGxlYXZlIGl0IG9mZiBi
eSBhY2NpZGVudD8NCg0KVGhhbmtzIGZvciBub3RpY2luZy4gSSdsbCBhZGQgaXQgd2hlbiBj
b21taXR0aW5nLg0KDQoNCkp1ZXJnZW4NCg==
--------------bvchYM7fVNyfKc4uShVBrciV
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-----

--------------bvchYM7fVNyfKc4uShVBrciV--

--------------ovw2iLJ40lMBphh3VLp0WxkB--

--------------az9mjnjMNxtWEQ6g385kjHmp
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/Ey8FAmfwJF0FAwAAAAAACgkQsN6d1ii/Ey//
8wf+L4d6Phkv8b/AXT430FhKk7Ald+mvUh9mivKwcF9bE2VfUXf8iH1jgT0LMK+cZDcOlt/aPcl8
ZdccaAVpwsg6mr5hEPcuOM0QpPFaWKSGnsGaOgvLUVhTduSlM81EWvj2VeZ8662l2EHs+6704uAE
vtQRG6MsPpGrt8yTA9+HUuxD5w8Y4RVMmqJyIDH/Y9pPi/mUQt+EXUOQ3Rmo/AWbAKSg/GyFfiHa
ba8cb7spE3S2m48WkpW1VCDke44RuebRuajl+y5HxxsmI58UanLAd3xB4Q4TCwSq2bxR8RDCkHNg
RM59df0vzUN7HRH1zQvwnybdal1y3TNyIidjJyg16g==
=x/+V
-----END PGP SIGNATURE-----

--------------az9mjnjMNxtWEQ6g385kjHmp--


From xen-devel-bounces@lists.xenproject.org Fri Apr 04 23:22:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 04 Apr 2025 23:22:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.938394.1339246 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0qMW-0007HS-3s; Fri, 04 Apr 2025 23:22:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 938394.1339246; Fri, 04 Apr 2025 23:22:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0qMV-0007HE-V7; Fri, 04 Apr 2025 23:22:11 +0000
Received: by outflank-mailman (input) for mailman id 938394;
 Fri, 04 Apr 2025 23:22: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=Zs29=WW=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u0qMT-0007Gp-Q7
 for xen-devel@lists.xenproject.org; Fri, 04 Apr 2025 23:22:11 +0000
Received: from mail-24418.protonmail.ch (mail-24418.protonmail.ch
 [109.224.244.18]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9a9db45a-11ab-11f0-9ffb-bf95429c2676;
 Sat, 05 Apr 2025 01:21:58 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9a9db45a-11ab-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=ibpxuwtswncnlmh4zkhiwv5cie.protonmail; t=1743808916; x=1744068116;
	bh=49Ju++lLuXU44wcNF7eEoQx4Rfpq2a7Ix0334NpiMts=;
	h=Date:To:From:Cc:Subject:Message-ID:Feedback-ID:From:To:Cc:Date:
	 Subject:Reply-To:Feedback-ID:Message-ID:BIMI-Selector:
	 List-Unsubscribe:List-Unsubscribe-Post;
	b=N6varBW8+czG+Pf6ypEky0x4sVyrMy4pE+d4Nh5tsQMbgBEtsaVl2jMMNMZTSXcgc
	 gvq7wlurq/Xh4LBb2MoV9SxI5JYk4wfjBrvZnOweYKLc1pvJuiaWiH7bcrxNFcGxcd
	 lCSBJtokjzuRH8IoTBuV0cQjWGKlnoC+AmlPGIGSkXhOnLMsNGDko8mZN5CMkfhjJM
	 29xPiv/kmZ0paID3svwXQ6UOXmAZX2LNCsOOd3UWBIMEiGzWrhdKCyPd5N7QuCigf1
	 CTfH7nBEpcfPTFzbXkAZRvDwNioOdX+AdzVrDXKzNYBMUsFzMf3BpBsVQ2Q/unuIRr
	 EMzykx5l+tQiQ==
Date: Fri, 04 Apr 2025 23:21:51 +0000
To: xen-devel@lists.xenproject.org
From: dmkhn@proton.me
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org, dmukhin@ford.com
Subject: [PATCH v4] x86/domain: revisit logging in arch_domain_create()
Message-ID: <20250404232145.1252544-1-dmukhin@ford.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 9dc92184b58b03b843d7e9e2828c1d6cd23c2ca2
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

From: Denis Mukhin <dmukhin@ford.com>

Use %pd in all logs issued from arch_domain_create() and reword some of the
messages.

Also, expand error message in arch_domain_create() under !emulation_flags_o=
k()
case to help debugging.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
Changes since v3:
- re-formatted log messages
- shortened message text where possible
---
 xen/arch/x86/domain.c | 23 ++++++++++++++---------
 1 file changed, 14 insertions(+), 9 deletions(-)

diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index 4989600627..0db0567877 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -791,13 +791,14 @@ int arch_domain_create(struct domain *d,
     {
         if ( !opt_allow_unsafe )
         {
-            printk(XENLOG_G_ERR "Xen does not allow DomU creation on this =
CPU"
-                   " for security reasons.\n");
+            printk(XENLOG_G_ERR
+                   "%pd: cannot create domain on this CPU due to security =
reasons\n",
+                   d);
             return -EPERM;
         }
         printk(XENLOG_G_WARNING
-               "Dom%d may compromise security on this CPU.\n",
-               d->domain_id);
+               "%pd: may compromise security on this CPU\n",
+               d);
     }
=20
     emflags =3D config->arch.emulation_flags;
@@ -807,16 +808,20 @@ int arch_domain_create(struct domain *d,
=20
     if ( emflags & ~XEN_X86_EMU_ALL )
     {
-        printk(XENLOG_G_ERR "d%d: Invalid emulation bitmap: %#x\n",
-               d->domain_id, emflags);
+        printk(XENLOG_G_ERR
+               "%pd: invalid emulation bitmap: %#x\n",
+               d, emflags);
         return -EINVAL;
     }
=20
     if ( !emulation_flags_ok(d, emflags) )
     {
-        printk(XENLOG_G_ERR "d%d: Xen does not allow %s domain creation "
-               "with the current selection of emulators: %#x\n",
-               d->domain_id, is_hvm_domain(d) ? "HVM" : "PV", emflags);
+        printk(XENLOG_G_ERR
+               "%pd: cannot create %s %sdomain with emulators: %#x\n",
+               d,
+               is_hvm_domain(d) ? "HVM" : "PV",
+               is_hardware_domain(d) ? "hardware " : "",
+               emflags);
         return -EOPNOTSUPP;
     }
     d->arch.emulation_flags =3D emflags;
--=20
2.34.1




From xen-devel-bounces@lists.xenproject.org Sat Apr 05 00:04:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 05 Apr 2025 00:04:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.938623.1339256 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0r1Q-0002ha-Sv; Sat, 05 Apr 2025 00:04:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 938623.1339256; Sat, 05 Apr 2025 00:04:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0r1Q-0002hS-PB; Sat, 05 Apr 2025 00:04:28 +0000
Received: by outflank-mailman (input) for mailman id 938623;
 Sat, 05 Apr 2025 00:04: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=bjOG=WX=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1u0r1O-0002hC-RI
 for xen-devel@lists.xenproject.org; Sat, 05 Apr 2025 00:04:26 +0000
Received: from sender4-of-o50.zoho.com (sender4-of-o50.zoho.com
 [136.143.188.50]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8777c148-11b1-11f0-9eaa-5ba50f476ded;
 Sat, 05 Apr 2025 02:04:24 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 1743811453000532.8431359068024;
 Fri, 4 Apr 2025 17:04:13 -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: 8777c148-11b1-11f0-9eaa-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; t=1743811456; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=IdH6HNLTVA041BI1mapHx+T7Qsy2ijLfRU+vpzf4KV7AhRTtNWMAdQwvg9PZZ6VBASRXl9V6+ZRM1G49lj7fAnPD8mB5SpkQCcVec9MjpZaBBpcyBU+gDpUScRO/HTrj91HcfkNKMKRV0HGo4bzU5JiR9JEsL1h6kGdij3EIwZw=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1743811456; 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=8hKCOaWwdJHEsUQNGcdpFlZdOftpd09n3MbhbhX7oAM=; 
	b=hPeRF/V+2gYHjC8iJ1Wn2iwuiajV5LiltWhd2I3YJa0ZVUwlMr8caa1/I/k0AfJ2IE87/s8QFzcyZhJxn+OXmZrJNltIr2MT6pRldPre/4/PF8h7Ye3u3A+sGXj1afNsGz0BFDrszwxgXJyFUxLIfy7WvC4fDK5j8yjt++RXFtM=
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=1743811456;
	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=8hKCOaWwdJHEsUQNGcdpFlZdOftpd09n3MbhbhX7oAM=;
	b=lqRGgz3IZYBuNvK5UeegHPl64ID9bboxjERnYWKWS8IIy0pwkexANAC6rPLTAiAH
	88EBHO21biHmabsrrI1zUq9Wp0ERtn8QceR0y8mOfZF0uW12Vaw19FX54wr2DpDbuH2
	qvfNcVVUlFE2jHAZwLhETdWMOJOJWgWsA4HI1J5o=
Message-ID: <4aa999f4-48d3-400c-9dc4-21d3f31f3d78@apertussolutions.com>
Date: Fri, 4 Apr 2025 20:04:11 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 01/15] x86/boot: introduce boot domain
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: <20241226165740.29812-1-dpsmith@apertussolutions.com>
 <20241226165740.29812-2-dpsmith@apertussolutions.com>
 <2e02b7d6-fe71-4ed8-a09d-5bde7438718c@suse.com>
Content-Language: en-US
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
In-Reply-To: <2e02b7d6-fe71-4ed8-a09d-5bde7438718c@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ZohoMailClient: External

On 1/30/25 08:45, Jan Beulich wrote:
> On 26.12.2024 17:57, Daniel P. Smith wrote:
>> @@ -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)
> 
> Pointer-to-const? Domain construction should only be consuming data
> supplied, I expect.
> 
>> --- /dev/null
>> +++ b/xen/arch/x86/include/asm/bootdomain.h
> 
> Maybe boot-domain.h? Or was that suggested before and discarded for
> whatever reason?
> 
>> @@ -0,0 +1,28 @@
>> +/* 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_domain {
>> +    struct boot_module *kernel;
>> +    struct boot_module *ramdisk;
> 
> "ramdisk" is Linux-centric, I think. Can we name this more generically?
> "module" perhaps, despite it then being the same name as we use for the
> modules Xen is passed?

Ramdisk is not a linux-centric, take OpenBSD for example [1]. Calling 
the field "module" is a recipe for confusion. Especially considering 
that we are more or less providing a lightweight version of the 
toolstack interface which use the name ramdisk.

[1] https://openbsd.fandom.com/wiki/Creating_a_custom_OpenBSD_RAM_disk

> Also, are consumers of this struct supposed to be able to modify what
> the pointers point to? I'd expect they aren't, in which case const will
> want adding here, too.
> 
> Jan



From xen-devel-bounces@lists.xenproject.org Sat Apr 05 00:28:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 05 Apr 2025 00:28:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.938763.1339266 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0rOi-0001Pj-LQ; Sat, 05 Apr 2025 00:28:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 938763.1339266; Sat, 05 Apr 2025 00:28: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 1u0rOi-0001Pc-HV; Sat, 05 Apr 2025 00:28:32 +0000
Received: by outflank-mailman (input) for mailman id 938763;
 Sat, 05 Apr 2025 00:28: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=SPaY=WX=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1u0rOh-0001PO-9q
 for xen-devel@lists.xenproject.org; Sat, 05 Apr 2025 00:28:31 +0000
Received: from fhigh-b2-smtp.messagingengine.com
 (fhigh-b2-smtp.messagingengine.com [202.12.124.153])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e253ebc9-11b4-11f0-9ffb-bf95429c2676;
 Sat, 05 Apr 2025 02:28:25 +0200 (CEST)
Received: from phl-compute-04.internal (phl-compute-04.phl.internal
 [10.202.2.44])
 by mailfhigh.stl.internal (Postfix) with ESMTP id 1540725401F8;
 Fri,  4 Apr 2025 20:28:23 -0400 (EDT)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-04.internal (MEProxy); Fri, 04 Apr 2025 20:28:23 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri,
 4 Apr 2025 20:28:21 -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: e253ebc9-11b4-11f0-9ffb-bf95429c2676
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=fm2; t=1743812902;
	 x=1743899302; bh=zsaUbvW20l/czplj88g6L7K4iAZfyvXqaJTjw8kaLhg=; b=
	axM21uAZbB/vYpQTdDMexvN8p+hrMR0d5H+4MX6W2AqsByzm56oWZgwO/g7CbAIn
	WMDltSNpjnPBjXK2blcEc/klk1H0kI30MJmrqdPTTb8eW/sR71XSoaED8VXI82y3
	zU8uzwaL+uWENIB305u8B4aztwOHwASJbfHcsLmWzkIFfoWrX3+8Ur59BlryyU/j
	jp74VzR0S2wosl1zWA+imTNNdUgkdEX6WMquzJCGwMNAV67wNXDOnnV0Fs+XfGsq
	pLjO2KE8DNgkHOk3/QpDKb8Vn5Ye3vbFy70P+IsnGJctzIR1ZS+jYzIaDqwPr2qs
	18IXpsP8I9e0EBFNxGS7oQ==
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=fm2; t=
	1743812902; x=1743899302; bh=zsaUbvW20l/czplj88g6L7K4iAZfyvXqaJT
	jw8kaLhg=; b=NUUGoaPWr2mbflsJRrgEYWCO+Jk78DZTgmijB+fro3wmVESWi42
	dZsc4XuJ3vbv1be6diYdOwRQF9EQm/rD4z1+kgQjp/ewslHi0N/q77q8A/9HIF3W
	Wgisd0kdiZUrdupZOi3fSmmU/gtHtaOUMPB6I9wnjpO0UQdF2PB76k6DjhQCncr8
	9trip81SuWHXfrWwtcU2EZUwj+fDmBd/IK8Y6jdlhW5OdhsC2QX8XNuGjAlJsnxg
	8D0yrGr+j6zT0LMlmdwuZep6z87wdVEYX6dKTb3KswmLRdHO5QUVT9LG52TLC6p0
	8+11vlaEVC1GOQmo06SIeu8zqAsNdcETu+A==
X-ME-Sender: <xms:JnnwZ48WJ55saYv4Rmw3UMdsjNN-DkNWPNjqhP5tvnqP_qKvqf_Z2Q>
    <xme:JnnwZwsxs4rWDnDnizjPPN6XmR0lwbX6dFPsMB6LQqTWuGmctbmJm5L141rLqndV1
    2HwwcKnmKvXKg>
X-ME-Received: <xmr:JnnwZ-Ab4MOXHOtDa7vZ_8HFACDrBENs9oYdAmMCYHdjvouieF0e3QPG1rFMtxnJ4D3uVRP_SuMHn_xEYKMrNkH7MSqxYY6KUA>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgdduledvkeekucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
    pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
    gvnhhtshculddquddttddmnecujfgurhepfffhvfevuffkfhggtggujgesghdtreertddt
    jeenucfhrhhomhepofgrrhgvkhcuofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuc
    eomhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecu
    ggftrfgrthhtvghrnhepveeujeetgeelleetudeuvefhtefgffejvedtvdfgieevheethe
    elgeeuledvjeevnecuffhomhgrihhnpehgihhtlhgrsgdrtghomhenucevlhhushhtvghr
    ufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhnvh
    hishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhnsggprhgtphhtthhopeehpdhmohgu
    vgepshhmthhpohhuthdprhgtphhtthhopegrnhgurhgvfidrtghoohhpvghrfeestghith
    hrihigrdgtohhmpdhrtghpthhtohepjhgsvghulhhitghhsehsuhhsvgdrtghomhdprhgt
    phhtthhopegtrghrughovgestggrrhguohgvrdgtohhmpdhrtghpthhtohepshhsthgrsg
    gvlhhlihhniheskhgvrhhnvghlrdhorhhgpdhrtghpthhtohepgigvnhdquggvvhgvlhes
    lhhishhtshdrgigvnhhprhhojhgvtghtrdhorhhg
X-ME-Proxy: <xmx:JnnwZ4eK2vZ_TXpoPacsw1Xhu5I9Pt0qEwJQtpNx45WVXXt-tCWlyw>
    <xmx:JnnwZ9MJOnaZZ9F0lJI9s0ZoYKhmKJXqnLGknwAdbGHDlAj-zdKnrw>
    <xmx:JnnwZyld9AReYNl1s0AQ9j6Ht_IwHiwEa7vU0_KweAKdP7fFlqo1Tg>
    <xmx:JnnwZ_sRKIruXK5X2krkZKndjYEWPgnRLj-P3tixtEi-UhdyhEhf4Q>
    <xmx:JnnwZ0fkr6PnfyntLmx281JHplCxSL-wG_qOK2qK9lH1f9wG3mgcelw8>
Feedback-ID: i1568416f:Fastmail
Date: Sat, 5 Apr 2025 02:28:19 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Jan Beulich <jbeulich@suse.com>, Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v1 01/11] ci: prevent grub unpacking initramfs
Message-ID: <Z_B5I-cKaLU0xcxL@mail-itl>
References: <cover.59b4d1e66776c1e577aa5dd5460605dc6c240613.1743678257.git-series.marmarek@invisiblethingslab.com>
 <e1d07b26a92a45ed387594dd789453def1ef1eb2.1743678257.git-series.marmarek@invisiblethingslab.com>
 <a64136e8-c74e-4f47-b52f-cd5b25c57b2e@suse.com>
 <d832f7c5-5a59-46c5-b5c6-109dd13a77e3@citrix.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="Z9yLbrtw/D6qN8wq"
Content-Disposition: inline
In-Reply-To: <d832f7c5-5a59-46c5-b5c6-109dd13a77e3@citrix.com>


--Z9yLbrtw/D6qN8wq
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Sat, 5 Apr 2025 02:28:19 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Jan Beulich <jbeulich@suse.com>, Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v1 01/11] ci: prevent grub unpacking initramfs

On Thu, Apr 03, 2025 at 12:39:11PM +0100, Andrew Cooper wrote:
> On 03/04/2025 12:29 pm, Jan Beulich wrote:
> > On 03.04.2025 13:04, Marek Marczykowski-G=C3=B3recki wrote:
> >> It fails on larger initramfs (~250MB one) and sometimes even smaller
> >> depending on memory size/memory map, let Linux do it.
> > Iirc grub only unpacks gzip-ed modules, so wouldn't a yet better approa=
ch
> > be to use a better compressing algorithm, which simply as a side effect
> > would keep grub from decompressing it, while at the same time moving
> > farther away from any critical boundaries?
>=20
> Yes and no.
>=20
> This is going to change anyway when I (or a delgee) moves initrd
> generation from the test step itself into the test artefacts repo.

Out of curiosity, I tried this:
https://gitlab.com/xen-project/people/marmarek/xen/-/commit/51b5fde81680620=
6e6e0c72ec0146c5ab3da4351
pipeline:
https://gitlab.com/xen-project/people/marmarek/xen/-/pipelines/1753304751

It avoids repacking base alpine initrd, but it still needs to pack
per-job stuff (test script, but also toolstack). The gains are not
great, that step still takes over a minute. The overall job time went
down by just 40-50s (for example from 6m50s to 6m03s). This isn't very
surprising, because the base initrd.cpio.gz is 60MB and the final one is
over 200MB, so the part that was needlessly re-compressed is about 30%.
The numbers checks out, as the (debug) build artifacts zip is about
150MB.

One further idea would be to produce cpio.gz archive as part of the
build artifact, to avoid zip (used by gitlab for artifacts) -> cpio.gz
recompression. But that either makes build artifacts bigger for every
job, or need setting a variable for jobs that are used later for tests.
Unless we decide to store toolstack _only_ as cpio.gz in artifacts?

I tried the latter idea here:
https://gitlab.com/xen-project/people/marmarek/xen/-/commit/a4774213d83ca05=
c0b0b0fff80e49cf3aa32b67b
pipeline:
https://gitlab.com/xen-project/people/marmarek/xen/-/pipelines/1753312631

This helped quite a bit more. The 1m of compressing initrd is gone now.
Compressing remaining test-specific files and concatenating it all
together takes 2-3s. Now that 6m50s job is down to 3m40s. I'm not
exactly sure where that extra minute went (maybe related to number of
files in the build artifact? Fetching/extracting artifacts seems to be
faster a bit), but those times are not very consistent anyway, so it
could be also just random fluctuation.=20

Looking further at the test log, some time is used for fetching
artifacts. I've looked into gitlab docs if those can be cached on the
runner, but I haven't found a solution that would really help (you can
cache arbitrary paths, including artifacts, but it doesn't prevent
re-downloading them and unpacking over the cached version...).
So, I'll stop here, polish the above patches and submit them in v2 of
this series.

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

--Z9yLbrtw/D6qN8wq
Content-Type: application/pgp-signature; name=signature.asc

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmfweSMACgkQ24/THMrX
1yzu2QgAhhXLPl5Z2+W25OsSPCeqCzA7pmaEcKm4F1LtqHaNZDE7Q6hIWKk1D8zJ
AUXw+IfPzPdzRSZZwJJXpPFnBhYyMGJxRiTpfJSy6ANiwargyu7hPYD96bTiZa7P
cW8EFABxUKkjAf8d53b7xNsSWIxQPFdVQCoCWlsVxdKzNcYmyuVpyUhVLmDN2Nyh
j6caD5XgWbBTevv64+jKBa2ZI5JwfUgArVVkN0G11v5CBkJRzYcyg4PWP2hiDbjM
JwA+JqDzgi/Z6gy747xDmZW9EfGftMD1vlDnFGEEpMqrM0POaD49JB0DLafin6Xd
ew6DAcAJ1IpL2+KQTl8XG1J8XBMgRw==
=9JlT
-----END PGP SIGNATURE-----

--Z9yLbrtw/D6qN8wq--


From xen-devel-bounces@lists.xenproject.org Sat Apr 05 01:25:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 05 Apr 2025 01:25:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.938783.1339276 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0sHi-0007YD-Oy; Sat, 05 Apr 2025 01:25:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 938783.1339276; Sat, 05 Apr 2025 01:25:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0sHi-0007Y4-Ke; Sat, 05 Apr 2025 01:25:22 +0000
Received: by outflank-mailman (input) for mailman id 938783;
 Sat, 05 Apr 2025 01:25:21 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=9tDv=WX=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u0sHg-0007Xy-G4
 for xen-devel@lists.xenproject.org; Sat, 05 Apr 2025 01:25:21 +0000
Received: from mail-24416.protonmail.ch (mail-24416.protonmail.ch
 [109.224.244.16]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d364345d-11bc-11f0-9ffb-bf95429c2676;
 Sat, 05 Apr 2025 03:25:15 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d364345d-11bc-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1743816312; x=1744075512;
	bh=sBsbW4LWF4zCxNUXqQukytdeUPM5cHk88crdpbHj+Ls=;
	h=Date:To:From:Cc:Subject:Message-ID:Feedback-ID:From:To:Cc:Date:
	 Subject:Reply-To:Feedback-ID:Message-ID:BIMI-Selector:
	 List-Unsubscribe:List-Unsubscribe-Post;
	b=Jx3cKvChI0kTY2MIWjdo23RvCva8z8lzk8RpHsF1okJ8IM3tXXxrFkrFDmM30beLq
	 2/OUfhgO2gw/+ouBDvq7Kcg8t/id4ytIuvnzmK1Eu5UTlXjva6YDES8MBiw6nT+IMX
	 zmrFwi5O0qdfmgORQ5hAEBFJNRP4D40/l9Uq1cNrmP7HhkHdXygs9AT4a9rgGIUp5J
	 8WSiYxn+choD7AobLOzZwy5UqR7dRUYJ09DOWBFV6Wxiau5VJB+4EZTZY5O3YtynPG
	 VPhZlUTRbxnqWwyzfyX0/qanicRcJuoJzZOfSyKTxTzlrqXFppoUe4hXiKC3OOFzQ5
	 UxjIG+UOP9hxw==
Date: Sat, 05 Apr 2025 01:25:07 +0000
To: xen-devel@lists.xenproject.org
From: dmkhn@proton.me
Cc: andrew.cooper3@citrix.com, jbeulich@suse.com, roger.pau@citrix.com, dmukhin@ford.com
Subject: [PATCH v3] x86/emulate: Remove HAVE_AS_RDRAND and HAVE_AS_RDSEED
Message-ID: <20250405012417.3108759-1-dmukhin@ford.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 1029feedc10450cedfe9e1a58beb8eea82b1bca1
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

From: Denis Mukhin <dmukhin@ford.com>

The new toolchain baseline knows the rdrand/rdseed instructions,
no need to carry the workaround in the code.

Resolves: https://gitlab.com/xen-project/xen/-/work_items/208
Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
Changes since v2:
- updated arch_get_random()
- Link to v2: https://lore.kernel.org/xen-devel/20250403182250.3329498-6-dm=
ukhin@ford.com/
---
 xen/arch/x86/arch.mk              |  2 --
 xen/arch/x86/include/asm/random.h |  2 +-
 xen/arch/x86/x86_emulate/0fc7.c   | 15 +++++----------
 3 files changed, 6 insertions(+), 13 deletions(-)

diff --git a/xen/arch/x86/arch.mk b/xen/arch/x86/arch.mk
index 3bbaee2a44..5577bf6241 100644
--- a/xen/arch/x86/arch.mk
+++ b/xen/arch/x86/arch.mk
@@ -10,9 +10,7 @@ CFLAGS +=3D -msoft-float
=20
 $(call cc-options-add,CFLAGS,CC,$(EMBEDDED_EXTRA_CFLAGS))
 $(call cc-option-add,CFLAGS,CC,-Wnested-externs)
-$(call as-option-add,CFLAGS,CC,"rdrand %eax",-DHAVE_AS_RDRAND)
 $(call as-option-add,CFLAGS,CC,"xsaveopt (%rax)",-DHAVE_AS_XSAVEOPT)
-$(call as-option-add,CFLAGS,CC,"rdseed %eax",-DHAVE_AS_RDSEED)
 $(call as-option-add,CFLAGS,CC,"clwb (%rax)",-DHAVE_AS_CLWB)
 $(call as-option-add,CFLAGS,CC,".equ \"x\"$(comma)1",-DHAVE_AS_QUOTED_SYM)
 $(call as-option-add,CFLAGS,CC,"movdiri %rax$(comma)(%rax)",-DHAVE_AS_MOVD=
IR)
diff --git a/xen/arch/x86/include/asm/random.h b/xen/arch/x86/include/asm/r=
andom.h
index 9e1fe0bc1d..e1c1c765e1 100644
--- a/xen/arch/x86/include/asm/random.h
+++ b/xen/arch/x86/include/asm/random.h
@@ -8,7 +8,7 @@ static inline unsigned int arch_get_random(void)
     unsigned int val =3D 0;
=20
     if ( cpu_has(&current_cpu_data, X86_FEATURE_RDRAND) )
-        asm volatile ( ".byte 0x0f,0xc7,0xf0" : "+a" (val) );
+        asm volatile ( "rdrand %0" : "=3Da" (val) );
=20
     return val;
 }
diff --git a/xen/arch/x86/x86_emulate/0fc7.c b/xen/arch/x86/x86_emulate/0fc=
7.c
index 5268d5cafd..58c8f79501 100644
--- a/xen/arch/x86/x86_emulate/0fc7.c
+++ b/xen/arch/x86/x86_emulate/0fc7.c
@@ -32,7 +32,6 @@ int x86emul_0fc7(struct x86_emulate_state *s,
             return X86EMUL_UNRECOGNIZED;
=20
         case 6: /* rdrand */
-#ifdef HAVE_AS_RDRAND
             generate_exception_if(s->vex.pfx >=3D vex_f3, X86_EXC_UD);
             host_and_vcpu_must_have(rdrand);
             *dst =3D s->ea;
@@ -43,12 +42,12 @@ int x86emul_0fc7(struct x86_emulate_state *s,
                       : "=3Dr" (dst->val), ASM_FLAG_OUT("=3D@ccc", "=3Dqm"=
) (carry) );
                 break;
             default:
-# ifdef __x86_64__
+#ifdef __x86_64__
                 asm ( "rdrand %k0" ASM_FLAG_OUT(, "; setc %1")
                       : "=3Dr" (dst->val), ASM_FLAG_OUT("=3D@ccc", "=3Dqm"=
) (carry) );
                 break;
             case 8:
-# endif
+#endif
                 asm ( "rdrand %0" ASM_FLAG_OUT(, "; setc %1")
                       : "=3Dr" (dst->val), ASM_FLAG_OUT("=3D@ccc", "=3Dqm"=
) (carry) );
                 break;
@@ -57,9 +56,6 @@ int x86emul_0fc7(struct x86_emulate_state *s,
             if ( carry )
                 regs->eflags |=3D X86_EFLAGS_CF;
             break;
-#else
-            return X86EMUL_UNIMPLEMENTED;
-#endif
=20
         case 7: /* rdseed / rdpid */
             if ( s->vex.pfx =3D=3D vex_f3 ) /* rdpid */
@@ -77,7 +73,7 @@ int x86emul_0fc7(struct x86_emulate_state *s,
                 dst->bytes =3D 4;
                 break;
             }
-#ifdef HAVE_AS_RDSEED
+
             generate_exception_if(s->vex.pfx >=3D vex_f3, X86_EXC_UD);
             host_and_vcpu_must_have(rdseed);
             *dst =3D s->ea;
@@ -88,12 +84,12 @@ int x86emul_0fc7(struct x86_emulate_state *s,
                       : "=3Dr" (dst->val), ASM_FLAG_OUT("=3D@ccc", "=3Dqm"=
) (carry) );
                 break;
             default:
-# ifdef __x86_64__
+#ifdef __x86_64__
                 asm ( "rdseed %k0" ASM_FLAG_OUT(, "; setc %1")
                       : "=3Dr" (dst->val), ASM_FLAG_OUT("=3D@ccc", "=3Dqm"=
) (carry) );
                 break;
             case 8:
-# endif
+#endif
                 asm ( "rdseed %0" ASM_FLAG_OUT(, "; setc %1")
                       : "=3Dr" (dst->val), ASM_FLAG_OUT("=3D@ccc", "=3Dqm"=
) (carry) );
                 break;
@@ -102,7 +98,6 @@ int x86emul_0fc7(struct x86_emulate_state *s,
             if ( carry )
                 regs->eflags |=3D X86_EFLAGS_CF;
             break;
-#endif
         }
     }
     else
--=20
2.34.1




From xen-devel-bounces@lists.xenproject.org Sat Apr 05 01:28:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 05 Apr 2025 01:28:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.938795.1339287 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0sKN-000856-56; Sat, 05 Apr 2025 01:28:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 938795.1339287; Sat, 05 Apr 2025 01: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 1u0sKN-00084z-0c; Sat, 05 Apr 2025 01:28:07 +0000
Received: by outflank-mailman (input) for mailman id 938795;
 Sat, 05 Apr 2025 01:28: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=9tDv=WX=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u0sKL-00084o-O7
 for xen-devel@lists.xenproject.org; Sat, 05 Apr 2025 01:28:05 +0000
Received: from mail-10629.protonmail.ch (mail-10629.protonmail.ch
 [79.135.106.29]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 380c6830-11bd-11f0-9ffb-bf95429c2676;
 Sat, 05 Apr 2025 03:28:03 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 380c6830-11bd-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1743816482; x=1744075682;
	bh=1g4iGpKVOtwNddjsui1KqYG4vHHJD2Poi+3W1O7i/rM=;
	h=Date:To:From:Cc:Subject:Message-ID:Feedback-ID:From:To:Cc:Date:
	 Subject:Reply-To:Feedback-ID:Message-ID:BIMI-Selector:
	 List-Unsubscribe:List-Unsubscribe-Post;
	b=jNXXTBomCvQJPE3i/UWcZNfArnhTU6z97NBX6vYwB8TqPugBKq2NnCS3rML0Mou2B
	 GFBfQSO+m++1t0ei0bvr/fFnJZsgg3QjjhlrTkmgGb1p1e/F9R81ScfGC8nvY3Mgpn
	 q1/W+zhFK9fqZdRsPIT52MmvapLRWYkxxLJoER9aQib2qazVj5pTFb4Dmy8/JXPl4A
	 dExq+VgP7N5VUHeebnQmoRNDUs6AhfF1jOGWbYDV4xZpfjqyOzoLvsutPP/xtv0e9q
	 xm8AREBHXQkOWzS3TWoxonclIpDVrxomrj19S3cTHylw4BdIJrMPXiJFZ8CszPqNqv
	 nqu2P15Ozjwsw==
Date: Sat, 05 Apr 2025 01:27:57 +0000
To: xen-devel@lists.xenproject.org
From: dmkhn@proton.me
Cc: andrew.cooper3@citrix.com, jbeulich@suse.com, roger.pau@citrix.com, dmukhin@ford.com
Subject: [PATCH v3] x86/vmx: Rework VMX wrappers using `asm goto()`
Message-ID: <20250405012729.3109108-1-dmukhin@ford.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: dfb2a5c0312b2a1e73a0f7e33f29e7b98870ebec
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

From: Denis Mukhin <dmukhin@ford.com>

Improve error handling in VMX wrappers by switching to `asm goto()` where
possible.

Resolves: https://gitlab.com/xen-project/xen/-/work_items/210
Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
Changes since v2:
- dropped vmread changes
- checked \n\t formatting
- Link to v2: https://lore.kernel.org/xen-devel/20250403182250.3329498-7-dm=
ukhin@ford.com/
---
 xen/arch/x86/include/asm/hvm/vmx/vmx.h | 122 +++++++++++++------------
 1 file changed, 64 insertions(+), 58 deletions(-)

diff --git a/xen/arch/x86/include/asm/hvm/vmx/vmx.h b/xen/arch/x86/include/=
asm/hvm/vmx/vmx.h
index affb3a8bd6..6aa6e1f212 100644
--- a/xen/arch/x86/include/asm/hvm/vmx/vmx.h
+++ b/xen/arch/x86/include/asm/hvm/vmx/vmx.h
@@ -294,28 +294,30 @@ extern uint8_t posted_intr_vector;
=20
 static always_inline void __vmptrld(u64 addr)
 {
-    asm volatile ( "vmptrld %0\n\t"
-                   /* CF=3D=3D1 or ZF=3D=3D1 --> BUG() */
-                   UNLIKELY_START(be, vmptrld)
-                   _ASM_BUGFRAME_TEXT(0)
-                   UNLIKELY_END_SECTION
-                   :
-                   : "m" (addr),
-                     _ASM_BUGFRAME_INFO(BUGFRAME_bug, __LINE__, __FILE__, =
0)
-                   : "memory" );
+    asm goto ( "vmptrld %[addr]\n\t"
+               "jbe %l[vmfail]\n"
+               :
+               : [addr] "m" (addr)
+               : "memory"
+               : vmfail );
+    return;
+
+ vmfail:
+    BUG();
 }
=20
 static always_inline void __vmpclear(u64 addr)
 {
-    asm volatile ( "vmclear %0\n\t"
-                   /* CF=3D=3D1 or ZF=3D=3D1 --> BUG() */
-                   UNLIKELY_START(be, vmclear)
-                   _ASM_BUGFRAME_TEXT(0)
-                   UNLIKELY_END_SECTION
-                   :
-                   : "m" (addr),
-                     _ASM_BUGFRAME_INFO(BUGFRAME_bug, __LINE__, __FILE__, =
0)
-                   : "memory" );
+    asm goto ( "vmclear %[addr]\n\t"
+               "jbe %l[vmfail]\n"
+               :
+               : [addr] "m" (addr)
+               : "memory"
+               : vmfail );
+    return;
+
+ vmfail:
+    BUG();
 }
=20
 static always_inline void __vmread(unsigned long field, unsigned long *val=
ue)
@@ -332,14 +334,16 @@ static always_inline void __vmread(unsigned long fiel=
d, unsigned long *value)
=20
 static always_inline void __vmwrite(unsigned long field, unsigned long val=
ue)
 {
-    asm volatile ( "vmwrite %1, %0\n"
-                   /* CF=3D=3D1 or ZF=3D=3D1 --> BUG() */
-                   UNLIKELY_START(be, vmwrite)
-                   _ASM_BUGFRAME_TEXT(0)
-                   UNLIKELY_END_SECTION
-                   :
-                   : "r" (field) , "rm" (value),
-                     _ASM_BUGFRAME_INFO(BUGFRAME_bug, __LINE__, __FILE__, =
0) );
+    asm goto ( "vmwrite %[value], %[field]\n\t"
+               "jbe %l[vmfail]\n"
+               :
+               : [field] "r" (field), [value] "rm" (value)
+               :
+               : vmfail );
+    return;
+
+ vmfail:
+    BUG();
 }
=20
 static inline enum vmx_insn_errno vmread_safe(unsigned long field,
@@ -367,22 +371,22 @@ static inline enum vmx_insn_errno vmread_safe(unsigne=
d long field,
 static inline enum vmx_insn_errno vmwrite_safe(unsigned long field,
                                                unsigned long value)
 {
-    unsigned long ret =3D VMX_INSN_SUCCEED;
-    bool fail_invalid, fail_valid;
+    unsigned long ret;
=20
-    asm volatile ( "vmwrite %[value], %[field]\n\t"
-                   ASM_FLAG_OUT(, "setc %[invalid]\n\t")
-                   ASM_FLAG_OUT(, "setz %[valid]\n\t")
-                   : ASM_FLAG_OUT("=3D@ccc", [invalid] "=3Drm") (fail_inva=
lid),
-                     ASM_FLAG_OUT("=3D@ccz", [valid] "=3Drm") (fail_valid)
-                   : [field] "r" (field),
-                     [value] "rm" (value) );
+    asm goto ( "vmwrite %[value], %[field]\n\t"
+               "jc %l[vmfail_invalid]\n\t"
+               "jz %l[vmfail_error]\n"
+               :
+               : [field] "r" (field), [value] "rm" (value)
+               :
+               : vmfail_invalid, vmfail_error );
+    return VMX_INSN_SUCCEED;
=20
-    if ( unlikely(fail_invalid) )
-        ret =3D VMX_INSN_FAIL_INVALID;
-    else if ( unlikely(fail_valid) )
-        __vmread(VM_INSTRUCTION_ERROR, &ret);
+ vmfail_invalid:
+    return VMX_INSN_FAIL_INVALID;
=20
+ vmfail_error:
+    __vmread(VM_INSTRUCTION_ERROR, &ret);
     return ret;
 }
=20
@@ -400,15 +404,16 @@ static always_inline void __invept(unsigned long type=
, uint64_t eptp)
          !cpu_has_vmx_ept_invept_single_context )
         type =3D INVEPT_ALL_CONTEXT;
=20
-    asm volatile ( "invept %0, %1\n\t"
-                   /* CF=3D=3D1 or ZF=3D=3D1 --> BUG() */
-                   UNLIKELY_START(be, invept)
-                   _ASM_BUGFRAME_TEXT(0)
-                   UNLIKELY_END_SECTION
-                   :
-                   : "m" (operand), "r" (type),
-                     _ASM_BUGFRAME_INFO(BUGFRAME_bug, __LINE__, __FILE__, =
0)
-                   : "memory" );
+    asm goto ( "invept %[operand], %[type]\n\t"
+               "jbe %l[vmfail]\n"
+               :
+               : [operand] "m" (operand), [type] "r" (type)
+               : "memory"
+               : vmfail );
+    return;
+
+ vmfail:
+    BUG();
 }
=20
 static always_inline void __invvpid(unsigned long type, u16 vpid, u64 gva)
@@ -420,16 +425,17 @@ static always_inline void __invvpid(unsigned long typ=
e, u16 vpid, u64 gva)
     }  operand =3D {vpid, 0, gva};
=20
     /* Fix up #UD exceptions which occur when TLBs are flushed before VMXO=
N. */
-    asm volatile ( "1: invvpid %0, %1\n\t"
-                   /* CF=3D=3D1 or ZF=3D=3D1 --> BUG() */
-                   UNLIKELY_START(be, invvpid)
-                   _ASM_BUGFRAME_TEXT(0)
-                   UNLIKELY_END_SECTION "\n"
-                   "2:" _ASM_EXTABLE(1b, 2b)
-                   :
-                   : "m" (operand), "r" (type),
-                     _ASM_BUGFRAME_INFO(BUGFRAME_bug, __LINE__, __FILE__, =
0)
-                   : "memory" );
+    asm goto ( "1: invvpid %[operand], %[type]\n\t"
+               "   jbe %l[vmfail]\n"
+               "2:" _ASM_EXTABLE(1b, 2b)
+               :
+               : [operand] "m" (operand), [type] "r" (type)
+               : "memory"
+               : vmfail );
+    return;
+
+ vmfail:
+    BUG();
 }
=20
 static inline void ept_sync_all(void)
--=20
2.34.1




From xen-devel-bounces@lists.xenproject.org Sat Apr 05 03:31:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 05 Apr 2025 03:31:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.938824.1339295 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u0uFK-0002jc-GS; Sat, 05 Apr 2025 03:31:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 938824.1339295; Sat, 05 Apr 2025 03:31: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 1u0uFK-0002jV-Dp; Sat, 05 Apr 2025 03:31:02 +0000
Received: by outflank-mailman (input) for mailman id 938824;
 Sat, 05 Apr 2025 03:31: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=8XGR=WX=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1u0uFI-0002jP-US
 for xen-devel@lists.xenproject.org; Sat, 05 Apr 2025 03:31:01 +0000
Received: from EUR03-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur03on20601.outbound.protection.outlook.com
 [2a01:111:f403:260c::601])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 60c953ab-11ce-11f0-9ffb-bf95429c2676;
 Sat, 05 Apr 2025 05:30:53 +0200 (CEST)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by PA1PR03MB10842.eurprd03.prod.outlook.com
 (2603:10a6:102:484::10) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.28; Sat, 5 Apr
 2025 03:30: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%4]) with mapi id 15.20.8583.045; Sat, 5 Apr 2025
 03:30: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: 60c953ab-11ce-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=pICko0pwkef4S5haEYwX3zWMdRbE6tiv1V6V1IQr+EwKUiPGJWvYFYyOqVSAaGsiFxp2SN2WUvKv7GmXmweLJDAwPmalCxhqdhKL/2uPNqp5CgvtqrFFhjAOqohpcCbV9mKRbEfAw4LyKbvlCLoCZJaR8jxQG+GsB6ZB8x40TGu6xsw7mfn3dO5LGRMwyvzueQapSoU5UZrlydqgi5JSCVL4a73t5T7K846L+7dfonUbLdDGF5NA+Xe1J+97eeo7KqAb6uDh6t6Bwm6dd6aZzn2ApVSta9s5U65PzJ5xSLYqCpC9upTF83EnC6OxQMZyi8wJxMPc9iijtxoXHERxHA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=pe0axswOcNBDvQNWk9iFqLODNOeRV4wn+a/ajQqhuGU=;
 b=Kh3UP5B5rGUjXF10+U89c8CczzVZgTHQLcIOMdHOU73w6EiuId8zrjoWLkk3D5uhL7K/DiK2JaeAOte2GeuX0796meqLtA3ZLTQcIuvDwfMdTnAR1bq4PDjyodrB1ZHW4a5QAiyAGgN9Bl8a7Pgq6p0OoPumvOGQfVMM1ZaP3quSakjWwN/xaEsJXdrw4ia4m0Bkx0RPKnVk6TswonbA/bV5wx2wsE0APP/E2owHauM30w+AMMkWZweDyMGJdzWkhKILX8c5Hvt6nfM2tg3+VbwGFT5yFJ3ce/QGc8o1z+rInKvANmgIoT8IPwbFaqYnCRKJB3O8irg54Ic3fGQ/pA==
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=pe0axswOcNBDvQNWk9iFqLODNOeRV4wn+a/ajQqhuGU=;
 b=ETq0RdEqTPjso68iuJSpeJTW0p0M6fj58W+KQWM0ne8F2GXWq0RnMJNCSBNFuu9ENf7WNOf8CP6DTNAI7PpcggvpPyF3FsfhENGSQuPytL8NvccsDjp5SLKMgECBb1/GWM5L22G0I+rl2okAz5QgRPrFIfZ/z8kjUdfN/MJ0HYgKIFGaQBR6Au/cYE5elnl7Pr5GPdG/ZVFIYu+SHdN90uFOoffqWED4G5IpxN4ItS3Cr+Ryhg5tY+3RhgPiAbWeCQAzRhO1RY7nCqv/3yfJqWiI3Lw6ly2c6VEmAmvaigtHYvWavNaiWponJnwnPzlnsWYDMQjuCfG8o5OcZd3vrw==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Julien
 Grall <julien@xen.org>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v3 3/3] xen: debug: gcov: add condition coverage support
Thread-Topic: [PATCH v3 3/3] xen: debug: gcov: add condition coverage support
Thread-Index: AQHboqPjQYlXeZrAE0u+zEMqLR0ZhQ==
Date: Sat, 5 Apr 2025 03:30:49 +0000
Message-ID: <87mscvffo8.fsf@epam.com>
References: <20250401011744.2267367-1-volodymyr_babchuk@epam.com>
	<20250401011744.2267367-4-volodymyr_babchuk@epam.com>
	<7281b7d8-ba7b-4658-82f1-a63d66c1baff@suse.com>
In-Reply-To: <7281b7d8-ba7b-4658-82f1-a63d66c1baff@suse.com> (Jan Beulich's
	message of "Thu, 3 Apr 2025 09:30:21 +0200")
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_|PA1PR03MB10842:EE_
x-ms-office365-filtering-correlation-id: 3cfec733-4ec6-485e-8a6a-08dd73f242d0
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?nZtQDIPGCwxo+Ll6UR2kWRKgwFL1EMuhmPbYxdCCtxJPUuwIt4sc1EaAjG?=
 =?iso-8859-1?Q?LbQ8g/c3fndvu9iD59eqHapakOLby0z/CAH1879v8JgG6XAsAf9zkHIJq/?=
 =?iso-8859-1?Q?nfuYpowFy88v1otrKf2cIlzYRK5ZzHV29aKo0FK0+J3JcFNMAHmbKTtNum?=
 =?iso-8859-1?Q?XnGi+pDVO1ZiUhYI8UKgLLu6kACusUFqgD6aDpdl2CodJ0ZzoJkf3//NfZ?=
 =?iso-8859-1?Q?2Ty/7fEhchpJPvYFtfCa/W+qQgcJoAX4W5Rof5nkFrE7IU3RmWV1TK6UuW?=
 =?iso-8859-1?Q?L/Tq0uu4gcGxdg+sAWNlhy3eWEJydvMknMUZSmSazEFa7HUL1MkZq2tiJU?=
 =?iso-8859-1?Q?vWcSuZruGSWh52epsS1ss2Rs14OV62nLzOk6XVW5rMhq0d+A1ACmkte9QJ?=
 =?iso-8859-1?Q?fbPODA8A8Q1SA4E0kjXiTh0zkLxNDgla+ATtxzHw0wjGxT75pFKUoYtuOe?=
 =?iso-8859-1?Q?U3x5t65MkPMJtPlzktgc9XbwXJxW7puVxdRGu4FZ7NPzPTqYFdJEEfDfn5?=
 =?iso-8859-1?Q?4Jd7/XAsfChiSh/0+EXIk3cg44HyxKL8tG3bW5cGFrk8N0x7MzKdQthyXa?=
 =?iso-8859-1?Q?5XNKCOBw5BVHNk/RmpPygVacHm+18AkVnM7sU2rA9cl/myDMcomnKrgnfd?=
 =?iso-8859-1?Q?WYgjl7g0wiKCP/iJt4Ksh6ayGs54FapfTMe9Fz22N+rUy7dc/X3pp0CMKX?=
 =?iso-8859-1?Q?kEwHO4h/EEVdb2zJLKmRj2+b5tQw28XB/q7q7Hc4kjHOxSJsy8v3+riZwn?=
 =?iso-8859-1?Q?/kdxsklPraJH/KStaA3ax8H4CqBKocGno73MHywJ/eZcvEAq/ZwOj2WSHG?=
 =?iso-8859-1?Q?hwHWQ3e68J7XPQ0X6XRYPhqLFxfOwrcy+6k2ulI9wyeo2neuRcOAWryHN0?=
 =?iso-8859-1?Q?Xu88V6ORwqCfa2eRHVfbYPzHi6hgZtSlpTNfasr0GOtBDJ7vAidg+GKKLL?=
 =?iso-8859-1?Q?NMDOYT8YI6V2KNJXEYukC4jC3pOvqYrm4oekFOim3Jwjele8pBpd/dO9vl?=
 =?iso-8859-1?Q?9sgvxhHXPi1RD6r/Ey7qgLnjtjv+qL6sy64MiWDBVnHm94DHlz99CPj88w?=
 =?iso-8859-1?Q?omx6JdQcsyaOE59vzVQm+pQ3EuI7U4EUk/nM95efiD+gahVbhxi3TQCduF?=
 =?iso-8859-1?Q?9SY2X3muJTh0tt4nAqtdVs955Nm73a6FIyAoszaeMebsWWxeSvpbLmmhFc?=
 =?iso-8859-1?Q?nMcXPhI34BapL6jPby4nq73RzKFEqRrcR6kHk6AltX3c5sqypT4Hj2Kyfz?=
 =?iso-8859-1?Q?60NCPY9IwBU6K7R/B+LuEHbqQWwjehpwS5VCOS1fTg3SgfUUbCFZr1JXxP?=
 =?iso-8859-1?Q?N8j4H5j0l8bqlcSTOAN8fMcBk1qdhTXvirdcAghbvY9ei6h37WabQoKldC?=
 =?iso-8859-1?Q?YJBbNlq0VBA4AzBEOJeZBdQk0o8+3ckHxIhaLcuUrwBFTBNJr292pqXnKu?=
 =?iso-8859-1?Q?KBcjlulKsUywrHfc/HeZuxgzrwkJ4OnsQCA/kgL3yNj/AdneajZZ6iV6sZ?=
 =?iso-8859-1?Q?lPe/9FQKNimCaF3Rg7pqzW?=
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?LjBkcCCfvdXANytYVcLQ5YYWg6/fxmpiXV0HoRcamdQR6HXPO4LkiDiuR8?=
 =?iso-8859-1?Q?yFizj+SgHroQvKr8XCHxbSY3tZybGIUbE448iO+C8ViLTvr8WCJhkPPqdV?=
 =?iso-8859-1?Q?gO7TUwoQgRJddf679R6i0zBwYgAF8qzSvLj6xkXN1jydrZwc2bhzCx8JDm?=
 =?iso-8859-1?Q?zn9SEWITvpVWErvEwEWaz/cVwt1S3k+mYb1O5xjtKVj1AQC4hbKnBwxtlY?=
 =?iso-8859-1?Q?Ek3oN5PA0YOTPk2RAx0HZv1Ei9EwtcMbFV92Wqmpwj+upchZZ0t0NXOXrC?=
 =?iso-8859-1?Q?rgeiwDp8xxdENGf973cb9dYb0vVRKXDpbRk3qWyizFXV/QNuDgIdMTTnwb?=
 =?iso-8859-1?Q?MXlqeJND1smjR41jZDysFSIMrZ/0tJ0Z9fhfuGFu8HdslwY32p2IQViIm2?=
 =?iso-8859-1?Q?UpVLfaW+qmJyE/KCjJ6SKISPMPNl4pHiI7R8LvSKrJIAX3HQ65iX3rf3wd?=
 =?iso-8859-1?Q?9djOHJPK3MlPLuIT9wQ8yT93W+1WNsUiUHxrbYQgWdKP9es0TXKP/xxHWS?=
 =?iso-8859-1?Q?LUJLp1y2bSgTswIlesW9w97T3ti+tJmSOMdy7H94gSInv8wMWruNkvI13p?=
 =?iso-8859-1?Q?qUAMbKm13PGbzRQKAexTCGj8VTB/lylOpf3yl8SYg9T/6oSiFFBn0ryprx?=
 =?iso-8859-1?Q?fcrRpQkojsUXtsT6Jh3gzaIDrQLrB5t1rZ0qjC8y4UdpAERhRxBWQ4lfwS?=
 =?iso-8859-1?Q?TSbDh3HQ1yeqYiW2G9nZZCBcgrd8w07dY+ysWOdtQ7yLdMk0X1Ctslxp6g?=
 =?iso-8859-1?Q?nd9iU6SxAryFugD2CMJdC41mIYKHnJY7x/q0+hmZAZARGE7YMsoQybJ3h/?=
 =?iso-8859-1?Q?kYliOS5us7G7fUsslFY9RHwIsP6d7h77yWvMevJ7EAbeYkf37I66PIeWGV?=
 =?iso-8859-1?Q?+WRgnUo/1HrvssydBLeBGY25rZeDZY7fo8KIbMZaIKDYB3vo1N0/Oh3VwV?=
 =?iso-8859-1?Q?2cVF1PDXHlhlMdT5yrDaeNfdLFMpTwJFaAjOxzfsqR+IFp56wlTRg9ayNy?=
 =?iso-8859-1?Q?xS0buNA8v1wTttV8bNDZb3ij3YDvrjNzC8bn+g1aLE0kICfWO7alamyx9R?=
 =?iso-8859-1?Q?mzGA2EdHVhoKE2Y6kTvF4YsXPU3MTsP/FJjkaX8B09LxExd7LI1CLO8Ec1?=
 =?iso-8859-1?Q?zdA/ByfgG3tPTrUr6OJusD1xYKaySCwf1T7I2XAWk/odx/riGZOMtmv1O5?=
 =?iso-8859-1?Q?GycChCa2WGrEU0wa0iXBvRUlkhxV0wlbna0b9A/L7mdEK+N1Vs6YQqOATV?=
 =?iso-8859-1?Q?V/ePU4RZL0mjtguagemkspm68Q35bPIQf8NS+Leg74EzY4HP+LGcCM4/rq?=
 =?iso-8859-1?Q?IU4hBKyGHA6ahrFcHanL3gIVS6hsGjIQb3aYByvKuBhUR8XPgjn55o7fIO?=
 =?iso-8859-1?Q?583MXNeSjdtkE7pN5U517HyrX6+IzdwdDOy5tK8z2zAhucROHAM7NussUw?=
 =?iso-8859-1?Q?WLDuOicEcYED7XxlSH1RW57O4bDXQYJsGOAsCf7NH/YCC9YppUwCvdKn5x?=
 =?iso-8859-1?Q?eYm/qgOFmRyRBuiPTjvchKdQ6q29GlxTU6rKqDTN8cp2xKSKNvaZIVJbbi?=
 =?iso-8859-1?Q?IbjEqjSezC339UmciUqwy6BpB5esxUIrqke17nwDCPHMsG+VTC1+xhlVoO?=
 =?iso-8859-1?Q?e8x3RC9MJfcKbuSeTULRcdF03/E/9sE1OKdMmAK9Pe0BG6H5z+nCRD2Q?=
 =?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: 3cfec733-4ec6-485e-8a6a-08dd73f242d0
X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Apr 2025 03:30:49.6260
 (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: AWzBJ66kmuDoZ+xqvhOQjpFnaj10d5mfaUswTK+ckOoDfu1ROP7rkeSw7wlLV1y/wlOLyjQ7UQCQ5KG6VptLc1yjJjbCBxBVx9WJ+3MIg1k=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA1PR03MB10842


Hi Jan,

Jan Beulich <jbeulich@suse.com> writes:

> On 01.04.2025 03:17, Volodymyr Babchuk wrote:
>> --- a/xen/Kconfig
>> +++ b/xen/Kconfig
>> @@ -41,6 +41,11 @@ config CC_SPLIT_SECTIONS
>>  config CC_HAS_UBSAN
>>  	def_bool $(cc-option,-fsanitize=3Dundefined)
>> =20
>> +# Compiler supports -fcondition-coverage aka MC/DC
>> +config CC_HAS_MCDC
>> +	def_bool $(cc-option,-fcondition-coverage)
>> +
>> +
>
> Nit: No double blank lines please.
>
> Also, just to clarify - until the use of Kconfig (alone) for things like
> this is properly resolved one way or another, I'm not going to approve
> such changes (but I'm also not going to veto them). My proposal [1] is
> still pending with no resolution, nor any counter-proposals.

I checked your proposal, but I am not sure how it maps for this
particular use case. In your example

> config XEN_SHSTK
>        bool "Supervisor Shadow Stacks"
>        default HAS_AS_CET_SS

The default value will be "y" which is desired, but in case
of CONDITION_COVERAGE, the default value should be "n". Are you
suggesting to put

ifeq ($(CONFIG_CONDITION_COVERAGE)x$(CONFIG_CC_HAS_MCDC), yx)
   $(warning Your compiler does not support condition coverage)
endif

somewhere in Rules.mk ?


>> --- a/xen/Rules.mk
>> +++ b/xen/Rules.mk
>> @@ -138,6 +138,9 @@ ifeq ($(CONFIG_CC_IS_CLANG),y)
>>      COV_FLAGS :=3D -fprofile-instr-generate -fcoverage-mapping
>>  else
>>      COV_FLAGS :=3D -fprofile-arcs -ftest-coverage
>> +ifeq ($(CONFIG_CONDITION_COVERAGE),y)
>> +    COV_FLAGS +=3D -fcondition-coverage
>> +endif
>>  endif
>
> Personally I find ifeq() uses like this unhelpful, and would prefer
>
> COV_FLAGS-$(CONFIG_CONDITION_COVERAGE) +=3D -fcondition-coverage
> together with an eventual
>
> COV_FLAGS +=3D $(COV_FLAGS-y)
>
> (if we don't already have one).

I did in this way:

--- a/xen/Rules.mk
+++ b/xen/Rules.mk
@@ -133,18 +133,19 @@ $(filter %.init.o,$(obj-y) $(obj-bin-y) $(extra-y)): =
CFLAGS-y +=3D -DINIT_SECTIONS
=20
 non-init-objects =3D $(filter-out %.init.o, $(obj-y) $(obj-bin-y) $(extra-=
y))
=20
-ifeq ($(CONFIG_COVERAGE),y)
 ifeq ($(CONFIG_CC_IS_CLANG),y)
-    COV_FLAGS :=3D -fprofile-instr-generate -fcoverage-mapping
+    cov-flags-$(CONFIG_COVERAGE) :=3D -fprofile-instr-generate -fcoverage-=
mapping
 else
-    COV_FLAGS :=3D -fprofile-arcs -ftest-coverage
+    cov-flags-$(CONFIG_COVERAGE) :=3D -fprofile-arcs -ftest-coverage
+    cov-flags-$(CONFIG_CONDITION_COVERAGE) +=3D -fcondition-coverage
 endif
=20
-# Reset COV_FLAGS in cases where an objects has another one as prerequisit=
e
+# Reset cov-flags-y in cases where an objects has another one as prerequis=
ite
 $(nocov-y) $(filter %.init.o, $(obj-y) $(obj-bin-y) $(extra-y)): \
-    COV_FLAGS :=3D
+    cov-flags-y :=3D
=20
-$(non-init-objects): _c_flags +=3D $(COV_FLAGS)
+$(non-init-objects): _c_flags +=3D $(cov-flags-y)
 endif
=20

I hope you don't mind having both changes (COV_FLAGS -> cov_flags-y and
introduction of CONFIG_CONDITION_COVERAGE) in the same patch. With
correct commit message, of course.

--=20
WBR, Volodymyr=


From xen-devel-bounces@lists.xenproject.org Sat Apr 05 11:11:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 05 Apr 2025 11:11:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.938896.1339306 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u11Qs-0000cJ-KJ; Sat, 05 Apr 2025 11:11:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 938896.1339306; Sat, 05 Apr 2025 11:11: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 1u11Qs-0000c1-En; Sat, 05 Apr 2025 11:11:26 +0000
Received: by outflank-mailman (input) for mailman id 938896;
 Sat, 05 Apr 2025 11:11: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=JzGc=WX=mail.com=hehongbo@srs-se1.protection.inumbo.net>)
 id 1u11Qq-0000bv-PT
 for xen-devel@lists.xenproject.org; Sat, 05 Apr 2025 11:11:24 +0000
Received: from mout.mail.com (mout.mail.com [74.208.4.200])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b3ea3668-120e-11f0-9eaa-5ba50f476ded;
 Sat, 05 Apr 2025 13:11:21 +0200 (CEST)
Received: from localhost.localdomain ([60.26.200.33]) by smtp.mail.com
 (mrgmxus003 [74.208.5.15]) with ESMTPSA (Nemesis) id
 0MPn0e-1txBfl1p1G-00BMXF; Sat, 05 Apr 2025 13:11:15 +0200
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b3ea3668-120e-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mail.com;
	s=s1089575; t=1743851476; x=1744456276; i=hehongbo@mail.com;
	bh=35rpjIw3rvJ77kDrFNFnyrXV4+t5U6U23ZkCz5hAQ+g=;
	h=X-UI-Sender-Class:From:To:Cc:Subject:Date:Message-Id:In-Reply-To:
	 References:MIME-Version:Content-Transfer-Encoding:cc:
	 content-transfer-encoding:content-type:date:from:message-id:
	 mime-version:reply-to:subject:to;
	b=cHcGflogW+2WhvqK0p/NcF6PKtQcNeaGU0PTzrzLYMbOJY+acmsFngyXa0lEevB7
	 I4Vk5jsJ2gnl1IobdQg4BgDqyqBpfsiYXKPtzXMuLFrzz30a3jTUUbD1L+pPd1Cg4
	 T9HXIjO0iE8RYt23ieriIDpQZ530IaXXd9Zva0GykKU7dHZq4SHBDCDB5I5DViZoT
	 mLIn1X0MTYvCnvXo+NGebkrQWhxTf5wLYin90jixFfrptc8mF+MEfRASTnsTKtJRm
	 GXfWu0kAHkmzg52RXzU+g09N8Fkw3lD9XXUouh8YyuBpz/kOqeev/90iSX68FSHhE
	 STyy3urtAseXudihJA==
X-UI-Sender-Class: f2cb72be-343f-493d-8ec3-b1efb8d6185a
From: Hongbo <hehongbo@mail.com>
To: xen-devel@lists.xenproject.org
Cc: Hongbo <hehongbo@mail.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>
Subject: [XEN PATCH v2 RESEND 1/1] tools/libxl: search PATH for QEMU if `QEMU_XEN_PATH` is not absolute
Date: Sat,  5 Apr 2025 19:10:55 +0800
Message-Id: <20250405111055.98611-1-hehongbo@mail.com>
X-Mailer: git-send-email 2.39.5 (Apple Git-154)
In-Reply-To: <20241223031753.13709-1-hehongbo@mail.com>
References: <20241223031753.13709-1-hehongbo@mail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
X-Provags-ID: V03:K1:mxojhmVDNe9q8C+1EcHPd0Dx7a/PlGzdzMfpIlWOQEfjeZeuSwM
 Nj/8ianMFB0fMkiZbm+FKnxYgKecQbhAZJY5vNe1jnxdRJ+ptd98MEPxsmY4nZ9KFx5/x5n
 GZ8JDXusie93JbNswK/0q1944xymJWK4T490GOl4zo4Lp9NcXzrN4Q6m2dow6CdlI6PP57Q
 KJxiIDuuFGF7NDVoBHDLg==
X-Spam-Flag: NO
UI-OutboundReport: notjunk:1;M01:P0:sXq0PRCMVHw=;XodLUuNKekH1mSifk9Iw/Wq4cSV
 ekkC5IY8IXYFqcY2DdTBk4rCBYA5KDzKchjXVA3yFGRMQMz5kJALxneSpfAKCXe8zSCCAbXN2
 FbLy87chDaKDrhABgHsIgTon95CWZuHHV+jWbDgFImwZXZdIhekua/WEvq5SlPchPwIVVPHPn
 ihKd79r/Lx8ifVHa61iL2Mn2HmrWK8Jd1l1OCRx9aKk10iQRmxwvXvfxtP8LkyEztyHroKcXJ
 VIRkpzj0e5oaWWCnBdF4eVDtEc8AAwD5ypU8y4KegHtVfT4eVxXyMa8hZZQ6DznL7Ga+1wL+s
 9whZ5D2uRJ1jmY/qcbA/uDKq5m69u+/1HyLDTuROBfpO/AxGqEFKsEKO8rdhv+g5wuzI3DBUu
 XMdqbSrTCUMZJUwsV0KlvUZ1qjDvXEdB3HR5fpDJzN77hDaNCcvuj+RHT4ZG/u2GIVzsuu28M
 TbyLDlHyHxxWwOw54uBSPuwJK2Z0fMwUOShKbPsQX9uLJM64kl0S/IGH51Fqvzz1AJUv1B+sU
 4MVCiVCI/FLbFMbW5spZcRPQz6G//m1NHIXsdXmd+t5zk07tlN79NyeVawTCyLTuk0giN6Kzh
 HjP2/7BJRDq395YniXZIWVZp5Mpzfgg7Wp0ARxEX9ENN0mQ4VIHofIq2b0EDZ2a8HcHhMg8Vn
 TiHGRqzkxzzOaPhNLpizzVpeopnvLkoQWja+7e2fJC3UbWwNmIzRNXzCOF1Spk/KAupzg/e8B
 EIDkj0tOuajoI5j7KgoGKggOKjndqhHODram2KHL9vbJ1ii2IOYWF6cLWvEc9FDi1cadw67U+
 mtR7DQ/mbwECfOmFaZdklHI+2N3Ru7fkLl98z5is5IgsS40+C+EMBIVBVmMdyo1Fo0KpG0UAQ
 5np5FRA3q2gXzAWTarX+XM5zeNheqcfaVZdcVM0x67rmKxAkU7PPGAZKc/hUDIYRvwvT11Q9E
 GDb6TD7lbDHusSzaER5YGybvQrumlvrQToKoQJFVcLedvRZwIZ8jLsHPuyeTnyXP5oZT7Ku9R
 g1iscUEhedeSBQVXNp/mfg8wjUTDz+vh98wNb7FImwPQc2GG7PFIkeQvvz4rpoH2S2RizBEaU
 b9YHM7sLh5sKuFlqu61Hy0x4NvEs0V39uQFbs6ld4owI0wo6TaQPSNWZzhJnFi8EPZaTnyg93
 qfzot8AW1FxNH+UshlDBcAdyBTMvo/xOqd3YgkgGpAAXrAcMD+4ojrAGiZqU3MX5AgygmUjzP
 s3ZT6Tc5/dnLl3vgnsRcXdxowv30yeeWiD/9Rc2uH+c9aGnuJK11G3gbPpbQZ9qBo+OnB/ep3
 fUN20UIjuPy9QKk8RI7/JB8gf3FzCXoyIUFOUncv9PuTZGI0xBkbnSW1IGOEsdn7FkG/PJgWJ
 lhnWWEQ7l7sr1ZGbJ+hcYflwt7nqRP3HHyb0nTmnTlBBa+vF0x0hA4lWWPamTOhF3JbtR1gwD
 jmWO0ys47BJ/OQMfirr7QVmP2a60=

`QEMU_XEN_PATH` will be configured as `qemu-system-i386` with no clue wher=
e, if
`--with-system-qemu` is set without giving a path (as matched in the case =
`yes`
but not `*`). However, the existence of the executable is checked by `acce=
ss()`,
that will not look for anywhere in $PATH but the current directory. And si=
nce it
is possible for `qemu-system-i386` (or any other configured values) to be
executed from PATH later, we'd better find that in PATH and return the ful=
l path
for the caller to check against.

Signed-off-by: Hongbo <hehongbo@mail.com>
Reviewed-by: Anthony PERARD <anthony.perard@vates.tech>
=2D--
No changes since v2. Resending to add `Reviewed-by` from Anthony PERARD.

Best regards,
Hongbo
=2D--
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Juergen Gross <jgross@suse.com>
=2D--
 tools/libs/light/libxl_dm.c | 38 +++++++++++++++++++++++++++++++++++--
 1 file changed, 36 insertions(+), 2 deletions(-)

diff --git a/tools/libs/light/libxl_dm.c b/tools/libs/light/libxl_dm.c
index b193a5dc37..8f0bbd5d64 100644
=2D-- a/tools/libs/light/libxl_dm.c
+++ b/tools/libs/light/libxl_dm.c
@@ -331,9 +331,43 @@ const char *libxl__domain_device_model(libxl__gc *gc,
         case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL:
             dm =3D libxl__abs_path(gc, "qemu-dm", libxl__private_bindir_p=
ath());
             break;
-        case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN:
-            dm =3D qemu_xen_path(gc);
+        case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN: {
+            const char *configured_dm =3D qemu_xen_path(gc);
+            if (configured_dm[0] =3D=3D '/')
+            {
+                dm =3D configured_dm;
+            }
+            else
+            {
+                const char *path_env =3D getenv("PATH");
+                if (!path_env)
+                {
+                    dm =3D configured_dm;
+                }
+                else
+                {
+                    char *path_dup =3D libxl__strdup(gc, path_env);
+                    char *saveptr;
+
+                    char *path =3D strtok_r(path_dup, ":", &saveptr);
+                    dm =3D NULL;
+                    while (path)
+                    {
+                        char *candidate =3D libxl__abs_path(gc, configure=
d_dm, path);
+                        if (access(candidate, X_OK) =3D=3D 0)
+                        {
+                            dm =3D candidate;
+                            break;
+                        }
+                        path =3D strtok_r(NULL, ":", &saveptr);
+                    }
+
+                    if (!dm)
+                        dm =3D configured_dm;
+                }
+            }
             break;
+        }
         default:
             LOG(ERROR, "invalid device model version %d",
                 info->device_model_version);
=2D-
2.39.5 (Apple Git-154)



From xen-devel-bounces@lists.xenproject.org Sat Apr 05 12:48:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 05 Apr 2025 12:48:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.938932.1339316 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u12wz-0003dy-G8; Sat, 05 Apr 2025 12:48:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 938932.1339316; Sat, 05 Apr 2025 12:48:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u12wz-0003dr-DC; Sat, 05 Apr 2025 12:48:41 +0000
Received: by outflank-mailman (input) for mailman id 938932;
 Sat, 05 Apr 2025 12:48:40 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=f13i=WX=intel.com=lkp@srs-se1.protection.inumbo.net>)
 id 1u12wy-0003df-3J
 for xen-devel@lists.xenproject.org; Sat, 05 Apr 2025 12:48:40 +0000
Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.19])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4a3523c2-121c-11f0-9eaa-5ba50f476ded;
 Sat, 05 Apr 2025 14:48:38 +0200 (CEST)
Received: from orviesa003.jf.intel.com ([10.64.159.143])
 by fmvoesa113.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 05 Apr 2025 05:46:23 -0700
Received: from lkp-server01.sh.intel.com (HELO b207828170a5) ([10.239.97.150])
 by orviesa003.jf.intel.com with ESMTP; 05 Apr 2025 05:46:19 -0700
Received: from kbuild by b207828170a5 with local (Exim 4.96)
 (envelope-from <lkp@intel.com>) id 1u12uf-00021r-15;
 Sat, 05 Apr 2025 12:46: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: 4a3523c2-121c-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1743857318; x=1775393318;
  h=date:from:to:cc:subject:message-id:references:
   mime-version:in-reply-to;
  bh=rEKB5o3tXinJ0e4nM3y2sFbzk380OYk6wMscqAt4kac=;
  b=JFi2eBcfuNTyXjSXFQdwrvSP83sNTzBLUoB1IOqnqROQzxsAygqiiejl
   Wy3T+VzN4LUkWAmMMaCM9AL4vEJiA79hYBsCdE4fUaVZo8JQR3e1FeS7o
   cdzoCrjNueuYHn2Wp+QUH0sgnIQe0GEcCMqp0TidOtR7NxWYxKAf/BFQj
   8ADRqtBsDXhBgmmHNimL/phBugp0VRP8ARPG2EJiaKu4QJbaCKGVbPoet
   T+oFbuO2bIfBp+KIRXlR1oGTSy8hOgHe9Qsu4t7a9JhyD8TETBdxmFnXp
   qi3ukyWBk7tjrHAOvtYqKuKhwTK80IbnAGJWgbPCx8GHOnYMDQAJEl+i+
   w==;
X-CSE-ConnectionGUID: i6SMgtmVSjaKttf1GCS8zw==
X-CSE-MsgGUID: OqN2iih7RKC2bdaaTQEwlQ==
X-IronPort-AV: E=McAfee;i="6700,10204,11395"; a="44435479"
X-IronPort-AV: E=Sophos;i="6.15,191,1739865600"; 
   d="scan'208";a="44435479"
X-CSE-ConnectionGUID: FKz5BdQuSRG15LyZFBxneA==
X-CSE-MsgGUID: agc02w7UT6SGrQ+nBl7REw==
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="6.15,191,1739865600"; 
   d="scan'208";a="132389101"
Date: Sat, 5 Apr 2025 20:45:30 +0800
From: kernel test robot <lkp@intel.com>
To: Roger Pau Monne <roger.pau@citrix.com>, Juergen Gross <jgross@suse.com>,
	xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org
Cc: oe-kbuild-all@lists.linux.dev,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Subject: Re: [PATCH v2] x86/xen: fix balloon target initialization for PVH
 dom0
Message-ID: <202504052022.avvx45LI-lkp@intel.com>
References: <20250404133459.16125-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20250404133459.16125-1-roger.pau@citrix.com>

Hi Roger,

kernel test robot noticed the following build errors:

[auto build test ERROR on xen-tip/linux-next]
[also build test ERROR on tip/x86/core linus/master v6.14 next-20250404]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Roger-Pau-Monne/x86-xen-fix-balloon-target-initialization-for-PVH-dom0/20250404-214218
base:   https://git.kernel.org/pub/scm/linux/kernel/git/xen/tip.git linux-next
patch link:    https://lore.kernel.org/r/20250404133459.16125-1-roger.pau%40citrix.com
patch subject: [PATCH v2] x86/xen: fix balloon target initialization for PVH dom0
config: x86_64-buildonly-randconfig-001-20250405 (https://download.01.org/0day-ci/archive/20250405/202504052022.avvx45LI-lkp@intel.com/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250405/202504052022.avvx45LI-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202504052022.avvx45LI-lkp@intel.com/

All errors (new ones prefixed by >>):

   ld: drivers/xen/balloon.o: in function `balloon_init':
>> drivers/xen/balloon.c:727: undefined reference to `xen_released_pages'


vim +727 drivers/xen/balloon.c

   716	
   717	static int __init balloon_init(void)
   718	{
   719		struct task_struct *task;
   720		int rc;
   721	
   722		if (!xen_domain())
   723			return -ENODEV;
   724	
   725		pr_info("Initialising balloon driver\n");
   726	
 > 727		if (xen_released_pages >= get_num_physpages()) {
   728			WARN(1, "Released pages underflow current target");
   729			return -ERANGE;
   730		}
   731	
   732		balloon_stats.current_pages = get_num_physpages() - xen_released_pages;
   733		balloon_stats.target_pages  = balloon_stats.current_pages;
   734		balloon_stats.balloon_low   = 0;
   735		balloon_stats.balloon_high  = 0;
   736		balloon_stats.total_pages   = balloon_stats.current_pages;
   737	
   738		balloon_stats.schedule_delay = 1;
   739		balloon_stats.max_schedule_delay = 32;
   740		balloon_stats.retry_count = 1;
   741		balloon_stats.max_retry_count = 4;
   742	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki


From xen-devel-bounces@lists.xenproject.org Sat Apr 05 15:57:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 05 Apr 2025 15:57:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.938964.1339326 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u15t0-0002Yn-AK; Sat, 05 Apr 2025 15:56:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 938964.1339326; Sat, 05 Apr 2025 15: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 1u15t0-0002Yg-6d; Sat, 05 Apr 2025 15:56:46 +0000
Received: by outflank-mailman (input) for mailman id 938964;
 Sat, 05 Apr 2025 15:56: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=f13i=WX=intel.com=lkp@srs-se1.protection.inumbo.net>)
 id 1u15sy-0002Ya-3v
 for xen-devel@lists.xenproject.org; Sat, 05 Apr 2025 15:56:44 +0000
Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.10])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8eaafa9b-1236-11f0-9eaa-5ba50f476ded;
 Sat, 05 Apr 2025 17:56:40 +0200 (CEST)
Received: from fmviesa002.fm.intel.com ([10.60.135.142])
 by fmvoesa104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 05 Apr 2025 08:56:37 -0700
Received: from lkp-server01.sh.intel.com (HELO b207828170a5) ([10.239.97.150])
 by fmviesa002.fm.intel.com with ESMTP; 05 Apr 2025 08:56:34 -0700
Received: from kbuild by b207828170a5 with local (Exim 4.96)
 (envelope-from <lkp@intel.com>) id 1u15sl-00028B-2b;
 Sat, 05 Apr 2025 15:56: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: 8eaafa9b-1236-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1743868600; x=1775404600;
  h=date:from:to:cc:subject:message-id:references:
   mime-version:in-reply-to;
  bh=l2vXHFW49XxHHHkNIgLn8Ijs9q+hx64EoXxG3KaCq3g=;
  b=bTJwob7nfmcezGpI/XnfocvFA8s45pXU/9unHG//B902Vn69W79zhenO
   i+kSHvtIxHVLfLU2141NJlAFglMkH4U5oEQpwJsa/hjJ9lNRpKW2iicjq
   RdaO1DRAGGQXTujicjiulpInspi18x58yihbqONVel1KPflFUKBYVndCy
   kJuOO3Y/UTkrUCIRTfkughRSNxq3iyVRiuNEtkBXorxh52cX/GkpG6IpI
   7kiEdB9UtMgWLmzriUIrYdfW2YJHGChLLzO7FgsHVmmK6Wo0DLM1iwHPG
   s09YZDs1m4k/0ivxZIkwKy+lKOu7S7YyDm/XiTo/BrPqGHbU7tEXK+U+8
   g==;
X-CSE-ConnectionGUID: RE0ZIY/qTpmP43r5pKAY0A==
X-CSE-MsgGUID: 86FZwmt0Ro63kvNG25r5yw==
X-IronPort-AV: E=McAfee;i="6700,10204,11395"; a="56670394"
X-IronPort-AV: E=Sophos;i="6.15,191,1739865600"; 
   d="scan'208";a="56670394"
X-CSE-ConnectionGUID: Tx+rfS8cSc6qdurkrXso9w==
X-CSE-MsgGUID: /Bwu7ftWSsW9TUWtnRsVkw==
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="6.15,191,1739865600"; 
   d="scan'208";a="150766546"
Date: Sat, 5 Apr 2025 23:55:56 +0800
From: kernel test robot <lkp@intel.com>
To: Roger Pau Monne <roger.pau@citrix.com>, Juergen Gross <jgross@suse.com>,
	xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org
Cc: llvm@lists.linux.dev, oe-kbuild-all@lists.linux.dev,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Subject: Re: [PATCH v2] x86/xen: fix balloon target initialization for PVH
 dom0
Message-ID: <202504052301.dMtJILzp-lkp@intel.com>
References: <20250404133459.16125-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20250404133459.16125-1-roger.pau@citrix.com>

Hi Roger,

kernel test robot noticed the following build errors:

[auto build test ERROR on xen-tip/linux-next]
[also build test ERROR on tip/x86/core linus/master v6.14 next-20250404]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Roger-Pau-Monne/x86-xen-fix-balloon-target-initialization-for-PVH-dom0/20250404-214218
base:   https://git.kernel.org/pub/scm/linux/kernel/git/xen/tip.git linux-next
patch link:    https://lore.kernel.org/r/20250404133459.16125-1-roger.pau%40citrix.com
patch subject: [PATCH v2] x86/xen: fix balloon target initialization for PVH dom0
config: x86_64-buildonly-randconfig-003-20250405 (https://download.01.org/0day-ci/archive/20250405/202504052301.dMtJILzp-lkp@intel.com/config)
compiler: clang version 20.1.2 (https://github.com/llvm/llvm-project 58df0ef89dd64126512e4ee27b4ac3fd8ddf6247)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250405/202504052301.dMtJILzp-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202504052301.dMtJILzp-lkp@intel.com/

All errors (new ones prefixed by >>):

>> ld.lld: error: undefined symbol: xen_released_pages
   >>> referenced by balloon.c
   >>>               drivers/xen/balloon.o:(balloon_init) in archive vmlinux.a
   >>> referenced by balloon.c
   >>>               drivers/xen/balloon.o:(balloon_init) in archive vmlinux.a

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki


From xen-devel-bounces@lists.xenproject.org Sat Apr 05 18:34:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 05 Apr 2025 18:34:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.938998.1339341 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u18LE-0004SC-8H; Sat, 05 Apr 2025 18:34:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 938998.1339341; Sat, 05 Apr 2025 18:34:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u18LE-0004RG-2O; Sat, 05 Apr 2025 18:34:04 +0000
Received: by outflank-mailman (input) for mailman id 938998;
 Sat, 05 Apr 2025 18:17: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=SaW9=WX=atlas.cz=arkamar@srs-se1.protection.inumbo.net>)
 id 1u184w-0000Fo-To
 for xen-devel@lists.xenproject.org; Sat, 05 Apr 2025 18:17:14 +0000
Received: from gmmr-3.centrum.cz (gmmr-3.centrum.cz [46.255.225.205])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2eac0911-124a-11f0-9ffb-bf95429c2676;
 Sat, 05 Apr 2025 20:17:07 +0200 (CEST)
Received: from gmmr-1.centrum.cz (envoy-stl.cent [10.32.56.18])
 by gmmr-3.centrum.cz (Postfix) with ESMTP id 9ED62202136A
 for <xen-devel@lists.xenproject.org>; Sat,  5 Apr 2025 20:17:06 +0200 (CEST)
Received: from gmmr-1.centrum.cz (localhost [127.0.0.1])
 by gmmr-1.centrum.cz (Postfix) with ESMTP id 9BE90138
 for <xen-devel@lists.xenproject.org>; Sat,  5 Apr 2025 20:17:06 +0200 (CEST)
Received: from antispam35.centrum.cz (antispam35.cent [10.30.208.35])
 by gmmr-1.centrum.cz (Postfix) with ESMTP id 9A761EB
 for <xen-devel@lists.xenproject.org>; Sat,  5 Apr 2025 20:17:06 +0200 (CEST)
Received: from unknown (HELO gm-smtp10.centrum.cz) ([46.255.225.77])
 by antispam35.centrum.cz with ESMTP; 05 Apr 2025 20:17:06 +0200
Received: from localhost.localdomain (nat-86.starnet.cz [178.255.168.86])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256)
 (No client certificate requested)
 by gm-smtp10.centrum.cz (Postfix) with ESMTPSA id 310E3809119F;
 Sat,  5 Apr 2025 20:17:06 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2eac0911-124a-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=atlas.cz; s=mail;
	t=1743877026; bh=yXYouCERO6MiAmq3afNjHMwOXCEudhdkAGgF935HzVA=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=m7j3ccAWICyhF2V6BIxEhxdLHkMFmmKEDwEdUP17RP7ZKZyrC314v9WFf5a4BgxVj
	 1hIqsadQTDCegMvkDqU1Azibz3NeqfDotLujTAkg1+sLIWfvwB9gfHSsMkaVg57KNu
	 mB4pU1uRDBw/tWDS0XhEtPRX0mphO4x0B+6JzfxY=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=atlas.cz; s=mail;
	t=1743877026; bh=yXYouCERO6MiAmq3afNjHMwOXCEudhdkAGgF935HzVA=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=m7j3ccAWICyhF2V6BIxEhxdLHkMFmmKEDwEdUP17RP7ZKZyrC314v9WFf5a4BgxVj
	 1hIqsadQTDCegMvkDqU1Azibz3NeqfDotLujTAkg1+sLIWfvwB9gfHSsMkaVg57KNu
	 mB4pU1uRDBw/tWDS0XhEtPRX0mphO4x0B+6JzfxY=
X-CSE-ConnectionGUID: LpEm3r6RQEeORUl2pCsA1Q==
X-CSE-MsgGUID: V+tuc1VnQXy8xc/kD1A2Hg==
X-ThreatScanner-Verdict: Negative
X-IPAS-Result: =?us-ascii?q?A2FFAACUcvFn/03h/y5aGQEBAQEBAQEBAQEBAQEBAQEBA?=
 =?us-ascii?q?RIBAQEBAQEBAQEBAQFACYFKgzSBcYRVkXKLeYYzjVoODwEBAQEBAQEBAQkuF?=
 =?us-ascii?q?gQBAYR9CgKLKic4EwECBAEBAQEDAgMBAQEBAQEBAQENAQEGAQEBAQEBBgYBA?=
 =?us-ascii?q?oEdhTVTgluECAIBAwEiDwFGEBgNAiYCAicvGYMCgjABAzGtdYEyGgJl3HACS?=
 =?us-ascii?q?QVVZIEpgRouAYhPAYR8cIR3QoINgRWCeW+EG3WDDoJpBINIhA+CEB14hSQEE?=
 =?us-ascii?q?ldrhW+CRoogSIEFHANZLAFVEw0KCwcFgWwDNQwLLhUyRTgdgXyDeIU6ghGCB?=
 =?us-ascii?q?IkZhFotT4NzHUADCxgNSBEsNxQbBj0BbgeWaoQXAVgBNExbCsgOhCWETZUEh?=
 =?us-ascii?q?3caM5dSHgOSZJh+pEuEaIF+gX8zIjCDIlIZjjwWFst+djwCBwEKAQEDCYI7j?=
 =?us-ascii?q?S4zgUsBAQ?=
IronPort-PHdr: A9a23:S/RxYBzQ3qIVxP3XCzJ4zVBlVkEcU1XcAAcZ59Idhq5Udez7ptK+Z
 xaZva0m1Q6UBd6TwskHotSVmpioYXYH75eFvSJKW713fDhBpOMo2icNO4q7M3D9N+PgdCcgH
 c5PBxdP9nC/NlVJSo6lPwWB6nK94iQPFRrhKAF7Ovr6GpLIj8Swyuu+54Dfbx9HiTezf79+N
 gm6oRneusULhYZvKro9xxXUqXZUZupawn9lKl2Ukxvg/Mm74YRt8z5Xu/Iv9s5AVbv1cqElR
 rFGDzooLn446tTzuRfMVQWA6WIQX3sZnBRVGwTK4w30UZn3sivhq+pywzKaMtHsTbA1Qjut8
 aFmQwL1hSgdNj459GbXitFsjK9evRmsqQBzz5LSbYqIMvd1Y6HTcs4ARWdZXshfSTJMDJ6yY
 YUMCOQOP+hYoIbhqFUBtha+GQqhCfnzxjJSmnP736s32PkhHwHc2wwgGsoDvm7Ko9XpLqcZT
 O+6w7POzTDdbPNdxDDw55LSchAiu/6MWKh/cdDKxEY1CwPFik+fqZf/MzyJ1+UAqm6W5PdvW
 uyzkWAosR1xoiSxycc2jInEnp8ZxkzL+Ct53Yo4Id22RVNnbNCkH5VduCKXOop5T84tQ29lu
 zg3xLIFtJO5ciUHyZQqyhHCZ/GEcYWF4w/vWeWXLDxlh3xlYKqyihmz/ES61OHxVsm53ExUo
 iZbktTArHIA2h7L5sSaSPZw/V2t1SiP2g3T8O1IPEE5mKnBJ5Miw7M9kIcYv17ZES/sgkr2i
 bebdkAj+ue19evqeq7mppqAN49sjQH+L7gultS/AesmNggOWHCW+eu51LH65k35RalKjuUrn
 qXFqpzVOdoUpqilAw9Pz4Yj7gyzACun0dgAnHkHKkxKeA6fgoXmOlzCOu70APe/jli2jjtn2
 fDLMqfjD5jPNnTDla3ufbd5605S0gozytVf6opOBbEbI/L8QErxu8bCDhIiKQO03+LnB89m1
 o8ERW2OA7eVMLnOvl+Q+uIvP+6MaZcPtzbnKPgq/fvugmUjmVIGZ6apwZ8XZ2qjHvh8P0qYY
 GLggs0dHmcSogo+UOvqhUWNUDNQZnu/RKE86S8hCIKgE4jDQpqhgLub3Ce0BpFWfHxJCkiQE
 Xf0cIWJQ+sMaC2WIs5uiTEEUbmhS4k81RGyrg/6zLxnLuvb+yECqJ3sysB55/fPmhEq6Tx0E
 8Od3nmCTm5qmGMEXiI5075hoUNjzleOyqx4g/1DFdxP/PNFSAg7OoDaz+xiEdDyXQDBccmVR
 1a6WNmmBisxTt0pz98Uf0l9A8mijgzE3yeyB78VlrqLBIE7867F3Hj+Odx9y3DY26kllFQmX
 MRPOnO8hqJl9AjcGZTJk0OHmKaub6gc2zTN9GibwWqUoE5YSBJwUbnCXX0HfUvWsc726VjGT
 7CwErknLARBxtCYKqdQad3mk09GRPH9N9TaeW6xnH2wBRmQyrOKd4XlY38d0znFCEgYjwAT+
 m6LOAkmCii8oGLeDTluGEr3bU3j/+Zwtm+1Q1MywVLCU0o007uz5w5QhvGGTf4X9qwLtT1nq
 DhuGlu5mdXMBImuvQ1kKZ1Rfcl13l5BdmGR4wVnPZWlJrpKj0Iaeh8xtFG4hEY/MZlJjcV/9
 CBi9wF1M6/NiDt8
IronPort-Data: A9a23:AGCduqqg9G+79LRaHD6DMrB1sDVeBmItZBIvgKrLsJaIsI4StFCzt
 garIBmAaanZZGWhedoiPNyx/UNQuJeEyIIySAQ4+C03HysTo+PIVI+TRqvS04J+DSFhoGZPt
 Zh2hgzodZhsJpPkjk7wdOWn9D8kiPzgqoPUUIbsIjp2SRJvVBAvgBdin/9RqoNziLBVOSvU0
 T/Ji5OZYQLNNwJcaDpOtvrf8E435pwehRtB1rAATaEW1LPhvyZNZH4vDfnZB2f1RIBSAtm7S
 47rpJml/nnU9gsaEdislLD2aCUiGtY+6iDT4pb+c/HKbilq/kTe4I5iXBYvQRs/ZwGyojxE4
 I4lWaqYEl51Y/KWyIzxZDEDe812FfUuFLYquhFTu+TLp6HNWyOEL/mDkCjalGDXkwp6KTgmy
 BAWFNwCRjSbquft2uyBc8Rhof4eKJPzF5g240g1mFk1Dd5+KXzCa6rPoMRdwC9p3oZFEPDCf
 dccLzF9BPjCS0ERfA1KVdRkxrru2SaXnz5w8Tp5oYI++WvayQVr+LHxNNPOPNeYLSlQth/B/
 juZoTWpWHn2MvShiiaY+SuSgNb/jHPrU8UROOSRrN5l1Qj7Kms7TUd+uUGAifCjiUe7Ush3I
 lAQ8zFoprpa3Fz7EPH+Uge+rXrCuQQTM/JMHOkqwAWMzLfI+QGfB3hCQjMpQMwrsoo6SCIn0
 neNnsj1Hnp/vbuNU3Wf+7yI6zSoNkA9KW4EeD9BTgYf5dTniJ88gwiJTdt5FqOxyNrvFlnY2
 CyDpiwzr6scgNRN1Kih+13DxTW2qfD0ohUduluRBD/4qFkjOcj6OORE9GTm0BqJF67BJnHpg
 ZTOs5H2ADwmZX1VqBGwfQ==
IronPort-HdrOrdr: A9a23:8IBfqa2G0WoSlVYuorbpqwqjBL8kLtp133Aq2lEZdPWaSKClfq
 eV7ZMmPH7P+VIssR4b9+xoVJPrfZqYz+8X3WBzB8bGYOCFggqVxehZhOOI/9SjIVydygc378
 hdmsZFZeEYdWIbsfrH
X-Talos-CUID: 9a23:iuJwBW04JW5cSWvYzDqqX7xfPtgIdybHkk3pDkKfM1ttEqW+UnbJwfYx
X-Talos-MUID: 9a23:4BZRfQVd+lILu7jq/AGvmCxpbflu2pS/WFAG1pYq4uDeFSMlbg==
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-AV: E=Sophos;i="6.15,191,1739833200"; 
   d="scan'208";a="110176982"
From: =?UTF-8?q?Petr=20Van=C4=9Bk?= <arkamar@atlas.cz>
To: linux-kernel@vger.kernel.org
Cc: Thomas Gleixner <tglx@linutronix.de>,
	x86@kernel.org,
	xen-devel@lists.xenproject.org,
	=?UTF-8?q?Petr=20Van=C4=9Bk?= <arkamar@atlas.cz>,
	stable@vger.kernel.org
Subject: [PATCH 1/1] x86/cpu/topology: Don't limit CPUs to 1 for Xen PV guests due to disabled APIC
Date: Sat,  5 Apr 2025 20:16:50 +0200
Message-ID: <20250405181650.22827-2-arkamar@atlas.cz>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <20250405181650.22827-1-arkamar@atlas.cz>
References: <20250405181650.22827-1-arkamar@atlas.cz>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Xen PV guests in DomU have APIC disabled by design, which causes
topology_apply_cmdline_limits_early() to limit the number of possible
CPUs to 1, regardless of the configured number of vCPUs.

This is a regression introduced in version 6.9 in commit 7c0edad3643f
("x86/cpu/topology: Rework possible CPU management") which added an
early check that limits CPUs if apic_is_disabled, without accounting for
the fact that Xen PV guests always disable APIC even when SMP is
supported.

This patch fixes the issue by skipping the apic_is_disabled check for
Xen PV guests, allowing them to boot with the full set of configured vCPUs.

Fixes: 7c0edad3643f ("x86/cpu/topology: Rework possible CPU management")
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: x86@kernel.org
Cc: xen-devel@lists.xenproject.org
Cc: stable@vger.kernel.org # 6.9+
Signed-off-by: Petr Vaněk <arkamar@atlas.cz>
---
 arch/x86/kernel/cpu/topology.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/arch/x86/kernel/cpu/topology.c b/arch/x86/kernel/cpu/topology.c
index 01456236a6dd..10aa7f471ec9 100644
--- a/arch/x86/kernel/cpu/topology.c
+++ b/arch/x86/kernel/cpu/topology.c
@@ -428,8 +428,13 @@ void __init topology_apply_cmdline_limits_early(void)
 {
 	unsigned int possible = nr_cpu_ids;
 
-	/* 'maxcpus=0' 'nosmp' 'nolapic' */
-	if (!setup_max_cpus || apic_is_disabled)
+	/* 'maxcpus=0' 'nosmp' 'nolapic'
+	 *
+	 * The apic_is_disabled check is ignored for Xen PV domains because Xen
+	 * disables ACPI in unprivileged PV DomU guests, which would otherwise limit
+	 * CPUs to 1, even if multiple vCPUs were configured.
+	 */
+	if (!setup_max_cpus || (!xen_pv_domain() && apic_is_disabled))
 		possible = 1;
 
 	/* 'possible_cpus=N' */
-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Sat Apr 05 18:34:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 05 Apr 2025 18:34:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.938996.1339335 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u18LD-0004P9-Vm; Sat, 05 Apr 2025 18:34:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 938996.1339335; Sat, 05 Apr 2025 18: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 1u18LD-0004P1-RA; Sat, 05 Apr 2025 18:34:03 +0000
Received: by outflank-mailman (input) for mailman id 938996;
 Sat, 05 Apr 2025 18:17: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=SaW9=WX=atlas.cz=arkamar@srs-se1.protection.inumbo.net>)
 id 1u184i-0000FA-Li
 for xen-devel@lists.xenproject.org; Sat, 05 Apr 2025 18:17:01 +0000
Received: from gmmr-4.centrum.cz (gmmr-4.centrum.cz [46.255.227.205])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 291ed9e4-124a-11f0-9eaa-5ba50f476ded;
 Sat, 05 Apr 2025 20:16:57 +0200 (CEST)
Received: from gmmr-4.centrum.cz (localhost [127.0.0.1])
 by gmmr-4.centrum.cz (Postfix) with ESMTP id B002A29A2E
 for <xen-devel@lists.xenproject.org>; Sat,  5 Apr 2025 20:16:56 +0200 (CEST)
Received: from antispam21.centrum.cz (antispam21.cent [10.30.208.21])
 by gmmr-4.centrum.cz (Postfix) with ESMTP id AE70B2017B1A
 for <xen-devel@lists.xenproject.org>; Sat,  5 Apr 2025 20:16:56 +0200 (CEST)
Received: from unknown (HELO gm-smtp10.centrum.cz) ([46.255.225.77])
 by antispam21.centrum.cz with ESMTP; 05 Apr 2025 20:16:56 +0200
Received: from localhost.localdomain (nat-86.starnet.cz [178.255.168.86])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256)
 (No client certificate requested)
 by gm-smtp10.centrum.cz (Postfix) with ESMTPSA id 322A880911A1;
 Sat,  5 Apr 2025 20:16:56 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 291ed9e4-124a-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=atlas.cz; s=mail;
	t=1743877016; bh=Nz+rgJalcyd1QLCEW4Tgk7u9sM/NVQLSYYitljvPygg=;
	h=From:To:Cc:Subject:Date:From;
	b=XBf6MeJk4T84W6cODM1ggUP5xlK/GoWvCAnAlKOIWgdaKQ6HbfjLVCefjMadjpYBX
	 UhZmWwZekpY+7tpEFmIj5Fkgcm1BOvl3p4+HnEa1OfC57Whxv6qKeQc1ahivUzPXDv
	 7vWOBz1rPVX6M6nnYOFm517bw/2b62+mP9+p01gw=
X-CSE-ConnectionGUID: V11uSdsgS5KOg3LCn3KZNA==
X-CSE-MsgGUID: L1m0cJdhSKykgtDOQdW8Kg==
X-ThreatScanner-Verdict: Negative
X-IPAS-Result: =?us-ascii?q?A2FdAAARc/Fn/03h/y5aGgEBAQEBAQEBAQEDAQEBARIBA?=
 =?us-ascii?q?QEBAgIBAQEBQAmBSoM0DYFkhFWRcpIsgSCMSA8BAQEBAQEBAQEJOQsEAQEDB?=
 =?us-ascii?q?DcBBoQ4CossJzgTAQIEAQEBAQMCAwEBAQEBAQEBAQ0BAQYBAQEBAQEGBgECg?=
 =?us-ascii?q?R2FNUYNgluBLIEmAQEBAQEBAQEBAQEBHQINgScPAUYoDQImAnGDAgGCLwE0F?=
 =?us-ascii?q?AatXIEyGgJlg2xB2EMCgSNkgSMGgRouAYhPAYR8bwEbhR6CDYQOb4EFAYFbB?=
 =?us-ascii?q?IE1AXWDDoJpBIItRUAWlmWKIEiBBRwDWSwBVRMNCgsHBYFsAzUMCy4Vdzgdg?=
 =?us-ascii?q?XyDeIU6ghGCBIInhnKEWi1Pg3MdQAMLGA1IESw3FBsGPQFuB5ZqhBcBWAEHL?=
 =?us-ascii?q?SoCIC0CLApIx0aEJYRNh0uVMBozhAONCYZGHgORP4ElmH6MDIF5lV1phGiBf?=
 =?us-ascii?q?lGBLjMiMIMiEz8ZjkeIdsMqdgIBOQIHAQoBAQMJgjuNLQEzgUsBAQ?=
IronPort-PHdr: A9a23:bMDgVBdaJC1J3I1QQur8wbgtlGM+ENnLVj580XLHo4xHfqnrxZn+J
 kuXvawr0ASTG92DoKsV1rKN+4nbGkU+or+5+EgYd5JNUxJXwe43pCcHROOjNwjQAcWuURYHG
 t9fXkRu5XCxPBsdMs//Y1rPvi/6tmZKSV3wOgVvO+v6BJPZgdip2OCu4Z3TZBhDiCagbb9oI
 xi7oxvdutMKjYd+Jao91x/Er3tUd+lY2GhlOU+dkxHg68i/+5Ju7z5esO87+c5aVqX6caU4T
 bhGAzkjLms4+s7luwTdQAWW/ncSXX0YnRVRDwXb4x/0Q4/9vSTmuOVz3imaJtD2QqsvWTu+9
 adrSQTnhzkBOjUk7WzYkM1wjKZcoBK8uxxyxpPfbY+JOPZieK7WYNUXTndDUMlMTSxMGoOyY
 ZURAuQcM+hWrI7zqFQSohWxHgSsGODixyVUinLswaE30eIsGhzG0gw6GNIOtWzZos/rO6cOS
 +C+0abHwi/Fb/ZI2jf29Y/FfQo7ofGPR71wdNDeyVM0GgzfklWQrZbqPyiP2usRsmmW9uxtX
 v+ghGA7sQ9+uCSvxtsyhYnTgIIY0k7I+yV3zog6ONG0VFN2bN25HZVetCyWK4t4T8E8Tmxsu
 Cg317IItJG4cSUJ1Jkr2hrSZuCbfoWG/h7tW/ucLDZ+iXl4dry/gBOy/lKhyu36TsS000hFr
 jBDktbSsnABzRvT6tKISvZ740yv2i6P2hjc5+xFO0w4i6rWJp47zrIuiJYesV7PEy30lUnuk
 aObdEYp9vK25+nnYrjqvIKQOo53hw3kMakjm8qyCvkiPAcURWiU4+G82aXm/U3+XbpFkOU7k
 rLcsJDGPcQbobO5AxNN3oYj9Rm/CzCm3cwXnXkCNV5FYxeHj5TxO13TPPz0F+uwjEqqkDd33
 fDGI7jhDo/RIXnCiLvhfLB95FBAyAcrwt1S5ohYBq8BLf/zQEP9qsLUAx8jPwG2wevrENB92
 ZkfWWKLDK+ZKqTSsVqQ6+01OemMZ5UauDPnJPg//PPhl2M5mVsHcqmyx5cYdHG5Eux8I0qFe
 XrsnssBEWASswUkVuzqi0eNUTtJaHaoRK8z/C07CIa8AofYXIyinL2A0D+hHpJKfmBGFkyME
 XDweoSLWPoBaTmfIsx/nTweU7iuVYsh2QuptA/gxLprNvDU9TEAtZL/yNh14PXelQ099TxwA
 MWQyGWNT2BynmMVWz82xqd/oUp8ylaMy6R3nuJXGcRJ5/xVSgc6KYLcz+tiBtH9RA3BeM6FR
 0u4TdW4Hz4xSsk8w9sPY0ZmB9WilQrP3iW0DL8Tj7yLHps08qDC0HftO8Zx0XHG1LMuj1U+W
 MtAKXWmhrJj9wjUH4PJl0SZl6C3daUTxSLN93mMzXCIvE5GVA59SrvFXX8BaUvMt9j55V3NT
 6WoCbs5NgtN08mCKrFFatHxi1VJX+/sOM7CbGKph2ewGRGIy6uMYYbyZmod3yTdCE0cng4L8
 niJOxYwCDu9rmzYFDBhCFfvbFn28eZisH61VlY6wRmFYR4p673g/h8TmOzZSP4J2L8AkDkup
 i8yH1un2d/STd2aqFlPZqJZNOsw/E0P62vfFA81apW6LKlnj0Q2ehhztlio3AchWdYIqtQjs
 H5/lFk6Eqmfyl4UL1ul
IronPort-Data: A9a23:9kCrFa8/U5f8pSPwhWq7DrUDnX+TJUtcMsCJ2f8bNWPcYEJGY0x3n
 DccXjjQPfaMa2SnKYoiO4Syp04Cu8LVnINrTAc++y5EQiMRo6IpJzg4wmQcnc+2BpeeJK6yx
 5xGMrEsFOhtEzmB4E7rauW8xZVF/fngbqLmD+LZMTxGSwZhSSMw4TpugOdRbrRA2LBVOCvT/
 4qvyyHjEAX9gWMsbjpJs/jrRC5H5ZwehhtJ4zTSWtgU5Dcyp1FNZLoDKKe4KWfPQ4U8NoaSW
 +bZwbilyXjS9hErB8nNuu6TnpoiH9Y+lSDX4pZnc/DKbipq/0Te4Y5nXBYoUnq7vh3S9zxH4
 I4U6cHvE1dB0prkw4zxWzEAe8130DYvFLXveRBTuuTLp6HKnueFL1yDwyjaMKVBktubD12i+
 tQmcWkQVRyYiNnr45W0Ec1HgJ8AHu/CadZ3VnFIlVk1DN4pRNXYRrnSvIce1zo2mtpTGLDVd
 aL1axIzMlKaPkAJYA1KTs1h9AurriCXnzlwoUiWrK8++UDa0Ah4y/7mIrI5f/TRHJ0IzhjE/
 T+uE2LRJkgfbNe9xTq+0WOvifPjuhr3Z9IxG+jtnhJtqBjJroAJMzUfT1iypPCjokeiX9tEb
 UcGkgI+/fYa90GxSNT5GRqirxasohEYS/JUEusn9BuKzKvEpQqUbkAUQzgEZNE4ucseQT0xy
 kTPj97vHSZosrCeVTSa7Lj8hTezPzUFaGwPfykJSSMb7NT55oI+lBTCSpBkCqHdszHuMW2uh
 WrX8W5k3ehV0pFjO7iHwG0rSgmE/vDhJjPZLC2ONo55xmuVvLKYWrE=
IronPort-HdrOrdr: A9a23:9KNAzKPRZ/KWm8BcTtCjsMiBIKoaSvp037Dk7SxMoHtuA6mlfq
 GV7ZYmPHDP5gr5NEtLpTniAtjifZq/z/9ICOAqVN/IYOCMggSVxe9ZgLcKuweBJxHD
X-Talos-CUID: 9a23:Y0kcTG4Rt0n2ry+V1NssyhdNB/spaXLmkVT3LBScImAya4+zYArF
X-Talos-MUID: 9a23:QITpFQbMzA9sceBTk2bp3DpAOMdTwLWtB1whtqwKhJmnOnkl
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-AV: E=Sophos;i="6.15,191,1739833200"; 
   d="scan'208";a="310586435"
From: =?UTF-8?q?Petr=20Van=C4=9Bk?= <arkamar@atlas.cz>
To: linux-kernel@vger.kernel.org
Cc: Thomas Gleixner <tglx@linutronix.de>,
	x86@kernel.org,
	xen-devel@lists.xenproject.org,
	=?UTF-8?q?Petr=20Van=C4=9Bk?= <arkamar@atlas.cz>
Subject: [PATCH 0/1] x86/topology: Fix regression limiting Xen PV DomU CPUs to 1
Date: Sat,  5 Apr 2025 20:16:49 +0200
Message-ID: <20250405181650.22827-1-arkamar@atlas.cz>
X-Mailer: git-send-email 2.48.1
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Hi,

I have discovered a regression in recent kernels that causes Xen PV DomU
guests to be limited to a single vCPU, despite multiple vCPUs being
configured. This issue does no occur in version 6.6.

After bisecting, I identified the regression was introduce in kernel 6.9
in a commit that limits the number of possible CPUs to 1 when APIC is
disabled [1]. However, Xen PV guests always disable APIC, leading to
incorrect CPU limitation.

Following patch resolves this issue by skipping apic_is_disabled check
for Xen PV guests.

I believe it makes sense to backport this fix to stable versions, so I'm
Ccing stable@vger.kernel.org (as per [2]). Note that there is a minor
conflict in both applicable versions (6.12 and 6.13). Please, let me
know if a different approach would be preferred.

[1] https://lore.kernel.org/r/20240213210252.290098853@linutronix.de
[2] https://docs.kernel.org/process/stable-kernel-rules.html#option-1

Thanks,
Petr

Petr Vaněk (1):
  x86/cpu/topology: Don't limit CPUs to 1 for Xen PV guests due to
    disabled APIC

 arch/x86/kernel/cpu/topology.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Sun Apr 06 10:08:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 06 Apr 2025 10:08:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.939121.1339356 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1Mva-00034L-7t; Sun, 06 Apr 2025 10:08:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 939121.1339356; Sun, 06 Apr 2025 10: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 1u1Mva-000343-24; Sun, 06 Apr 2025 10:08:34 +0000
Received: by outflank-mailman (input) for mailman id 939121;
 Sun, 06 Apr 2025 10:08: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=/Phl=WY=linutronix.de=tglx@srs-se1.protection.inumbo.net>)
 id 1u1MvY-00033e-St
 for xen-devel@lists.xenproject.org; Sun, 06 Apr 2025 10:08:33 +0000
Received: from galois.linutronix.de (galois.linutronix.de [193.142.43.55])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1756d443-12cf-11f0-9eaa-5ba50f476ded;
 Sun, 06 Apr 2025 12:08:31 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1756d443-12cf-11f0-9eaa-5ba50f476ded
From: Thomas Gleixner <tglx@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020; t=1743934110;
	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=FQwCOy6q9LbJSv6h6iboKgyxHq/ApOr5eANcz1PszCU=;
	b=HZTI0L/3ifr8QVkdVDKgPuI906FSs7jsQXMp9Z8dqGyBz3NGgdsfamkpZMO1u5ptlkr+/9
	mPHGBMxNWmNRZ6zG977pJESL979B/9kkKcD05Kf65bnhVgCszr9L8uyVDIvZ9b/st1BAYR
	rEZhUXcB63UhO6MZsAIoZEG7Cd8jZclYPkcTHPobjoa3JBDD15k4h6TqaQbEcoMO27yrAf
	swMdEx++R9P3hTSu0BX2iwiCZgLcVlhos7Fs7QIduq143ICSwA5UUItneKm1nvLwaE/Cxv
	kwnNQ15PBEJZUQU/PZvP/xpzFuXyA6MNGG6B5VFiXEbEGvRG5IDr9kgljkz/BQ==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;
	s=2020e; t=1743934110;
	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=FQwCOy6q9LbJSv6h6iboKgyxHq/ApOr5eANcz1PszCU=;
	b=ouZORyKF32pmlPw1hKPc5hYgNHbzy8az9DUAOueIpumwnXA1yOx3iFZeAyElhtXDe5qEv+
	kn3D3zuGtTWVPTAQ==
To: Petr =?utf-8?Q?Van=C4=9Bk?= <arkamar@atlas.cz>,
 linux-kernel@vger.kernel.org
Cc: x86@kernel.org, xen-devel@lists.xenproject.org, Petr =?utf-8?Q?Van?=
 =?utf-8?Q?=C4=9Bk?=
 <arkamar@atlas.cz>, stable@vger.kernel.org, Juergen Gross
 <jgross@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: [PATCH 1/1] x86/cpu/topology: Don't limit CPUs to 1 for Xen PV
 guests due to disabled APIC
In-Reply-To: <20250405181650.22827-2-arkamar@atlas.cz>
References: <20250405181650.22827-1-arkamar@atlas.cz>
 <20250405181650.22827-2-arkamar@atlas.cz>
Date: Sun, 06 Apr 2025 12:08:29 +0200
Message-ID: <87ecy5wqjm.ffs@tglx>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Sat, Apr 05 2025 at 20:16, Petr Van=C4=9Bk wrote:

> Xen PV guests in DomU have APIC disabled by design, which causes
> topology_apply_cmdline_limits_early() to limit the number of possible
> CPUs to 1, regardless of the configured number of vCPUs.

PV guests have a APIC emulation and there is no code which actually
disables the APIC by design unconditionally. There is one way though,
which disables the APIC indirectly.

xen_arch_setup() disables ACPI, which in turn causes acpi_mps_check() to
return 1, which disables the APIC. This only happens when the kernel
configuration has:

     CONFIG_X86_MPPARSE=3Dn
     CONFIG_ACPI=3Dy

If you enable MPPARSE the problem goes away, no?

> +	/* 'maxcpus=3D0' 'nosmp' 'nolapic'
> +	 *
> +	 * The apic_is_disabled check is ignored for Xen PV domains because Xen
> +	 * disables ACPI in unprivileged PV DomU guests, which would otherwise =
limit
> +	 * CPUs to 1, even if multiple vCPUs were configured.

This is the wrong place as it invalidates the effect of 'nolapic' on the
kernel command line for XEN PV.

You actually explain in the comment that XEN disables ACPI, so why are
you slapping this xen check into this code instead of doing the obvious
and prevent acpi_mps_check() to cause havoc?

Thanks,

        tglx


From xen-devel-bounces@lists.xenproject.org Mon Apr 07 06:37:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 06:37:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.939168.1339366 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1g6o-0000Nh-Ia; Mon, 07 Apr 2025 06:37:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 939168.1339366; Mon, 07 Apr 2025 06:37: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 1u1g6o-0000NY-Cw; Mon, 07 Apr 2025 06:37:26 +0000
Received: by outflank-mailman (input) for mailman id 939168;
 Mon, 07 Apr 2025 06:37: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=OFM1=WZ=boeing.com=gihwan.kwon@srs-se1.protection.inumbo.net>)
 id 1u1g6n-0000NS-OY
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 06:37:26 +0000
Received: from ewa-mbsout-02.mbs.boeing.net (ewa-mbsout-02.mbs.boeing.net
 [130.76.20.195]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c12f12f3-137a-11f0-9eaa-5ba50f476ded;
 Mon, 07 Apr 2025 08:37:22 +0200 (CEST)
Received: from localhost (localhost [127.0.0.1])
 by ewa-mbsout-02.mbs.boeing.net (8.15.2/8.15.2/DOWNSTREAM_MBSOUT) with SMTP id
 5376bHgw039837; Sun, 6 Apr 2025 23:37:18 -0700
Received: from XCH16-04-05.nos.boeing.com (xch16-04-05.nos.boeing.com
 [137.137.111.20])
 by ewa-mbsout-02.mbs.boeing.net (8.15.2/8.15.2/8.15.2/UPSTREAM_MBSOUT) with
 ESMTPS id 5376bD25039813
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO);
 Sun, 6 Apr 2025 23:37:13 -0700
Received: from XCH16-04-02.nos.boeing.com (137.137.111.17) by
 XCH16-04-05.nos.boeing.com (137.137.111.20) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.1.2507.44; Sun, 6 Apr 2025 23:37:12 -0700
Received: from XCH19-EDGE-Q01.nos.boeing.com (130.76.23.13) by
 XCH16-04-02.nos.boeing.com (137.137.111.17) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.1.2507.44 via Frontend Transport; Sun, 6 Apr 2025 23:37:12 -0700
Received: from USG02-CY1-obe.outbound.protection.office365.us (23.103.199.180)
 by boeing.com (130.76.23.13) with Microsoft SMTP Server
 (version=TLS1_2, 
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.11; Sun, 6 Apr
 2025 23:37:11 -0700
Received: from SA1P110MB2252.NAMP110.PROD.OUTLOOK.COM (2001:489a:200:198::5)
 by PH3P110MB2072.NAMP110.PROD.OUTLOOK.COM (2001:489a:200:1b1::14) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8511.31; Mon, 7 Apr
 2025 06:37:09 +0000
Received: from SA1P110MB2252.NAMP110.PROD.OUTLOOK.COM
 ([fe80::e652:58c7:c916:3735]) by SA1P110MB2252.NAMP110.PROD.OUTLOOK.COM
 ([fe80::e652:58c7:c916:3735%5]) with mapi id 15.20.8583.043; Mon, 7 Apr 2025
 06:37: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: c12f12f3-137a-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=boeing.com;
	s=boeing-s1912; t=1744007838;
	bh=D0LxvK9aqZ+NAQzIQmU8t2yZ6PkChepAB6P4JhqjNwc=;
	h=From:To:CC:Subject:Date:References:In-Reply-To:From;
	b=PZ75FW5VnYa5IoKsIPkMQInu1kgKIRD9/134+q0vkWJAPieyssQjouL/0BPW62J0N
	 g71jnrFTsLlL9Z22Gyr1XqCZHQ3CCjWkXwHi0N2WkJsUDk5RVxIeqE02y/BFl8lbrT
	 vP5qCerf7fxfMgtl/rCtJcFdAmhsc8TWs470S9t2n+lPU6+CgNwCzNSqxR/00RE/fW
	 Avq+4hNQo28iOeGgJoGE5Rp7Od7f7MlOeGFHoF5cL1eo8QEBS9rt/0mhnlHeS6HZZs
	 pG9q8PLk+mrBADRbhKZh3qaUXnkvgUKnPeauk2biWcTKy81wUQ3Wh8ah+FzS5FWpRr
	 nvMaT01Bnd5Xw==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector5401; d=microsoft.com; cv=none;
 b=gg8JfXrgbLh7qgLWTdWE4j1gd17yLdZewg+sledJeVcR7wEvTNa4QziDlysVm3U/GvebEpBVwfMXaZ3mWS9dZpb6lQvubhBCcSz7p24mKzLSbihFg3DKXbX1g7Q4CIamr+Utv47nV4sRlw3Xk2LNUB6TstKTrflknqAoy6PCGkgD/AhfjmJaLeO/VGxSkJZP6W0O2axoqpRsgLko1Omq3p8qNzmiXH+l7TpS9ACVhrbRX+96wDCutg7In6vSHNZfHiuuDFfBjxfCpeBfTx7wkGPAim4oFMw5vb7TdUhOqbQa7E7Ik3LnznpkV1Vfo1Bo9BwKKtvUUyVja3B8iNSmDQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector5401;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=D0LxvK9aqZ+NAQzIQmU8t2yZ6PkChepAB6P4JhqjNwc=;
 b=1W3+wy+PMnAikBITZHGxXXHMrN5xOGhO2A6eClIADLkhGj/iYJAmeflrU4KheIgM2lC3tln0ztFs2FhxdTJ/FQKNOMVmR1xRYA1mXEWDmmr77+tLo+v/QXkfzWImS6Cz2DO40Ngg2Fqo+sAiFJUXqUx+lqM8SWgpWyCjaU+0SK1WV07gQKkbOkgSj/e+Cwmp845fw2tUBNfEyHmcwP7AbXFX0niGfbuS48+QlFh1p1FoA4Qjv5+g2vCkSlFtZiZ1c/7rvus0/uHn6urvgBtiwEi8rviGXbhWSY5HS6bIhQbOrVKltVBCgOwjeKX6OKnrUNVR2sDkp1zQkJZATVtdZg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=boeing.com; dmarc=pass action=none header.from=boeing.com;
 dkim=pass header.d=boeing.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=boeing.onmicrosoft.com; s=selector1-boeing-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=D0LxvK9aqZ+NAQzIQmU8t2yZ6PkChepAB6P4JhqjNwc=;
 b=Gy2DL3/QbrprfrLbRZiTumiQ9Uip7NNLF3Iht3xSTVRb8dqWumY1Dh5E/CC+ANqLpRENEmUr5Fdv8F2hQYC8wJO9rX5R7o3aK3nRH+43UrMMKDXO0OIKHwwy4YLowlTVzhxGsH5MCapZoUSTRySwF1ionJZ6VQu4conmieMGYW0=
From: "Kwon, Gihwan" <gihwan.kwon@boeing.com>
To: Stefano Stabellini <sstabellini@kernel.org>,
        Nicola Vetrini
	<nicola.vetrini@bugseng.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
        "stewart.hildebrand@amd.com" <stewart.hildebrand@amd.com>
Subject: Re: [QUESTION] Minimal Xen Configuration
Thread-Topic: [QUESTION] Minimal Xen Configuration
Thread-Index: AQHbp4d8CTfihWvrfUi9wdjpxoA8Ow==
Date: Mon, 7 Apr 2025 06:37:09 +0000
Message-ID: <SA1P110MB2252BBBB6801DBDB88B828BE90AAA@SA1P110MB2252.NAMP110.PROD.OUTLOOK.COM>
References: <PH3P110MB2246A9D7AFA0A73000781B0390A0A@PH3P110MB2246.NAMP110.PROD.OUTLOOK.COM>
 <f4803fc17047a9d74928c66d39bf9632@bugseng.com>
 <alpine.DEB.2.22.394.2504021409170.3098208@ubuntu-linux-20-04-desktop>
In-Reply-To: <alpine.DEB.2.22.394.2504021409170.3098208@ubuntu-linux-20-04-desktop>
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=boeing.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: SA1P110MB2252:EE_|PH3P110MB2072:EE_
x-ms-office365-filtering-correlation-id: e65aff37-8871-4193-b1a7-08dd759e9f7a
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|366016|38070700018;
x-microsoft-antispam-message-info: =?us-ascii?Q?lXgQ4iyP2+YI94LYK4OmGI+sB1R1kwZt97rwN+qThjI3SLd9EgzAUR64sGSO?=
 =?us-ascii?Q?xj2G4jjicHQ0IntjulM/hVyI2FBJBPaLCrLC853CBU+WryjtAPK4ZMN6YHOj?=
 =?us-ascii?Q?g2c4xxtyLt3qgCjGOGXa33sNfYDxR/LpgLXavVY0Fw6Qd9aKW0R0YEBYjz/e?=
 =?us-ascii?Q?ttGYrESCWyGFqvgO6tr9QcCwSX8jCrxPQmNlI722piqEmB9O2OGFEm7GxnKX?=
 =?us-ascii?Q?mGfLpghiszjHWk7vz92LjCyfX7VbZNvv3p3Y0mqaxDLxnMY9lmh6GBZAk4V6?=
 =?us-ascii?Q?/hSMgVq4ABcBuphNfeS4lQoW6OAEI17pgLia5DtuJjNe39ZctTAfnTS1aukL?=
 =?us-ascii?Q?90KmeLoUzIo2yAJea6sH/W3PGvNUMnrX1kMp88dqVGjcgcFpgx9rzAuLy2Qp?=
 =?us-ascii?Q?CGZAnKSPwNQ12ZBfFjEhz0Gqei2t1fCza+fyq8oRzWumXdbERUINl6cMGtwR?=
 =?us-ascii?Q?qXli+zmrNXH0n9v5tPbd/nbLysjcPH12OCyJnWG2H1K54lKCErHwEveus/6/?=
 =?us-ascii?Q?HLJ5XESXKsAp0iWaN8SquOoJPWNW4PighxhRZm3NzQq+mtNT+AlK+2nd4rJZ?=
 =?us-ascii?Q?JpPRf38by0BR/zMaCfVW19ogdm4TWaGGLYFR6oAd9Wl+MIKLQrSW8lDj52Mo?=
 =?us-ascii?Q?EDxcrYjMG9SAVOPqt4Dpz1aXsFqCHtlYOiph8V0OG6zrdGWk7LDms/djz+T4?=
 =?us-ascii?Q?PcIdO7EpMrx+EMqEieEF5KEVKp6BBQtcB/SycLaSB5x5IPmzZQjMV2krx+55?=
 =?us-ascii?Q?NTAandbIMwhYF512YkMGitytU+HTy73lMN5WYbl3SjRVwtXOGGBTHAnEn8gc?=
 =?us-ascii?Q?8HiYu8ZduBlSrKMdX08hVBpqX3K/J/rGJjAiRTWvZBq6Vz6kZBQ/mIs1NxQo?=
 =?us-ascii?Q?Jt8ePlqFT59eq/y6Jqv9fVez9/Ke1yjsQe9U028NuF6CPwLVpJMOXGGrE+IK?=
 =?us-ascii?Q?b8gzjLodt7WjZJdfjc2ttnxvC7Z/y6OC+5bUF2fozwoKHXdhcuwNw6B1irX3?=
 =?us-ascii?Q?LjtB6AN2DRh5034OCoUijIgu+WA3thBuFx1nX9WLzJl5NH++toHbSaOKZq5z?=
 =?us-ascii?Q?F/wKNw1QKgO3TzLVfOhu3TP9pX3t8ml8QG1U8BzQMEhHcVZeouIocubF0PJS?=
 =?us-ascii?Q?hJys3gMzjy8mmgNk8s+/dsuiU5tgrUu9Aq40cCoYPdZEBa6uCgEMVnnDwX+/?=
 =?us-ascii?Q?v+mhuD933cMZFm3z8oq7SZlS+vmS1zN6iggq8g/EcmsXeLlIUKPhDrUGmsGF?=
 =?us-ascii?Q?evY4hDUp0ZFUCae4VBg26i5mhWyT4Ydei6VznAnzh22oY/qFD37Zb//Brt4r?=
 =?us-ascii?Q?Z8Fv7PMnc3wSiQA9QAPIrkEdMwfR7dh58tgZF9eD6GbRIT9EVZ/TrKZXR2FF?=
 =?us-ascii?Q?6jK2oQgdiHGdX9Y9MMbUR/N3dAxCxCHqecUYFX90jm3JeFvbF2TCZgKT/SOo?=
 =?us-ascii?Q?nol9/qLdtr0=3D?=
x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SA1P110MB2252.NAMP110.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?cl2UcGA5tPlSb2EKdrwpXD3+W73HyoyWtRp5Xsrq2tquYv7+GTKoQFWycQn6?=
 =?us-ascii?Q?aBoevtDgMmsjRux4FqZiOPsv1q1fEP9slKdzW/V9IBtdpXvaNDhjThXYu0I8?=
 =?us-ascii?Q?+tCOXEVH2dgMpJ97bN1Edx1Q76us/kXzLw/5vqodjRx/0lKs88YEqKbV0lM2?=
 =?us-ascii?Q?8uk4+0hODWb0tbecFgSA9syoHQiIOh6I+UiRR9N3K4ijjrmV0CPvHfNjWKy4?=
 =?us-ascii?Q?lxEq/mb2bFq3SPVM+aAwGJri3kRfQY4mFWjq5oluJ7sIHH0E+Ku3OiGNNJ6y?=
 =?us-ascii?Q?14h1dULoryYht5EaMR/l6w9a0xJlDbSpBrNVKAR/98CDoND9Im77vjSv2YKQ?=
 =?us-ascii?Q?U5ay1PELdNFUtFzVCcWOhAapxWnWLOoOxdZWcc0/7PxXPy7WJS9C1F/Fw9iX?=
 =?us-ascii?Q?f+ReDaCYe1MsyAf85ba+LrGsM8DJMIuZ/uDFK/4R3+mHaI1wFeCrcI7/s+81?=
 =?us-ascii?Q?+Lkq/gVL+K3/dKUxO4ECDSNccngBj2wUItuxUB/9t/O7OJ5W3Ol//MzXlJzk?=
 =?us-ascii?Q?By7BOmgd8tq1gCfI4ZnE0ld6wGoU3hdcdnJjBHu42csG9mhxNnabP2VMQSyt?=
 =?us-ascii?Q?+v8qcSUuW8XUdcgguImTTXNy1TgVRl/Hd3FWMGhh0rY/FlBS2iCAeIpnAHep?=
 =?us-ascii?Q?MTTCpRLaYkfsTgvKBHWb07NKfjeCyJ/JhI3p6puWRXbskAbqwl6Cd1ODbm4B?=
 =?us-ascii?Q?CAO6GwI+6gA4JD/0kBcIoXDMn5Y70zjslWxl9bPX1o07zeFpx3IFm4ETuiWv?=
 =?us-ascii?Q?9JL4eFmOV4mY2zexaLsqODzX67Dp7rbh7995+kuRaqn/79nLX7fTj+Bd4VT0?=
 =?us-ascii?Q?NW6gvFwmD4ciPy5c+ZlEC85MIuHv0mO0dOejLgB5GwD3ctBfm8WCJg9b4u2K?=
 =?us-ascii?Q?RkOv6eetpZRVWQhjecGuGAcFZo7b7CDSAD2Gzh8K0XLa2kDyV3KHeFULkp2K?=
 =?us-ascii?Q?5ZMH6mm31Ek0jwZXxjjihnnCnqETXUODBAL2kol0FQHPkkvTeVE3fSygld38?=
 =?us-ascii?Q?Y78OTte6aaALuQz8kDzLhmoscGIcmvJ4gvVOMZZc5vtwWbUG817DQyX6wX1A?=
 =?us-ascii?Q?2WwLGNX4H3IxrWWU3QTWWuRUTpmgyR2FbgtX3m5nvat/nFRLhaKQaG47XE/b?=
 =?us-ascii?Q?uWNWVrIab12oMPiBfJQBnKosKsVfJkR+4bYzQOp8P/7BmW5aqivmarEBdwbQ?=
 =?us-ascii?Q?NSAeE2PxEPw6Hf7ulmk9jXcSHqYAyZuuPSdXVljC1GX4/AywzcrSqIK0gHZa?=
 =?us-ascii?Q?nis5gPyVKVoiToIlNmDNlTjDGwnbOZ64fH4QXQaJWcCWkrx55KWJw4v2PTpf?=
 =?us-ascii?Q?18pvAW/vsA+0tiygLWNAYTvGDJ6BarHkiR/hw9/QuQlvTLX6XCTAxkX+9byo?=
 =?us-ascii?Q?vCZEaM8DTS/F8tuAVCST8PQ5OncRLFKwM7rdLfcc21eygYBaMuJa/4ZyBCcV?=
 =?us-ascii?Q?DNZZM1P/7jG0+rDNUfVfMIXS6jyr1A+/R72LrAbfi0CDVmoZxOw/jvbtpnq2?=
 =?us-ascii?Q?C8L0FaXSMQuFu2o=3D?=
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: SA1P110MB2252.NAMP110.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-Network-Message-Id: e65aff37-8871-4193-b1a7-08dd759e9f7a
X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Apr 2025 06:37:09.7340
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: bcf48bba-4d6f-4dee-a0d2-7df59cc36629
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH3P110MB2072
X-OriginatorOrg: boeing.com
X-TM-AS-GCONF: 00

Stefano, Nicola

> On Wed, 2 Apr 2025, Nicola Vetrini wrote:
>> On 2025-03-28 07:43, Kwon, Gihwan wrote:
>>> Dear Xen Community,
>>>=20
>>> I hope this message finds you well.
>>>=20
>>> I have heard that there exists a minimal Xen configuration optimized
>>> for safety-critical products, particularly in automotive applications,
>>> with the code size reduced to approximately 50k SLOC.
>>>=20
>>> Could anyone provide guidance or point me to relevant resources
>>> regarding this minimal Xen configuration? Any insights or references
>>> would be greatly appreciated.
>>>=20
>>> Thank you in advance for your assistance.
>>>=20
>>> Best regards,
>>> Gihwan Kwon
>>=20
>> Hello,
>>=20
>> I am part of the team that provides static analysis for Xen, mainly
>> towards the objective to make Xen compliant with MISRA C guidelines. As
>> part of that effort, a minimal Xen configuration has been defined (for
>> Arm and x86_64) at [1], which is the one currently analyzed for static
>> analysis for each commit [2]. It starts from the default configuration
>> for the architecture (i.e., make defconfig) and then turns on or off
>> various Kconfig options, as specified by EXTRA_XEN_CONFIG.
>>=20
>> @Stefano Stabellini (Cc'ed) is the main driving force behind the Xen
>> certification effort for automotive, therefore he's probably the best
>> person to approach to get more information on this matter.
>=20
> Thanks Nicola. In addition to what Nicola wrote, there is an outstanding
> activity to further reduce the code size by adding more kconfig options.
> There are a couple of patch series on the list right now to that effect.
>=20
> https://marc.info/?l=3Dxen-devel&m=3D173745442831026
>=20
> Last year we ran some experiments and for ARM we should be able to go
> below 35K LOC. The tools measuring LOC are very imprecise as they do not
> account for #ifdefs and kconfig options. So we switched to text binary
> size for measurements as it is more accurate. do not account for kconfig
> options and #ifdefs. Hence, we switch to using text size as size
> measurement for Xen. One of the figure was XXX.

Thank you for sharing information regarding the current minimal config
and additional activities. I have reviewed the configuration applied to the
 CI and have a question.
=20
Currently, `CONFIG_SCHED_RTDS` is enabled instead of `CONFIG_SCHED_CREDIT2`
and `CONFIG_SCHED_CREDIT`. Is this because ARINC653 scheduler cannot be
used as default scheduler, as well as, rt scheduler is smaller than=20
credit2 or credit scheduler?

- Gihwan




From xen-devel-bounces@lists.xenproject.org Mon Apr 07 06:40:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 06:40:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.939180.1339376 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1gAC-0002uZ-VO; Mon, 07 Apr 2025 06:40:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 939180.1339376; Mon, 07 Apr 2025 06:40: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 1u1gAC-0002uS-Rb; Mon, 07 Apr 2025 06:40:56 +0000
Received: by outflank-mailman (input) for mailman id 939180;
 Mon, 07 Apr 2025 06:40: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=C/xl=WZ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u1gAB-0002uF-Hc
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 06:40:55 +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 40fcc4b8-137b-11f0-9eaa-5ba50f476ded;
 Mon, 07 Apr 2025 08:40:54 +0200 (CEST)
Received: by mail-wr1-x42d.google.com with SMTP id
 ffacd0b85a97d-39c1ef4ae3aso2163658f8f.1
 for <xen-devel@lists.xenproject.org>; Sun, 06 Apr 2025 23:40:54 -0700 (PDT)
Received: from [10.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-43ec1795243sm123903075e9.32.2025.04.06.23.40.52
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 06 Apr 2025 23:40:53 -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: 40fcc4b8-137b-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744008053; x=1744612853; 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=zragjoZ0urZdBmqIfZzXuZqqBe4r2jSo9CSVoS/Px4M=;
        b=XAAqgC/wTXHPD3abuZCqE8Hjuw/Z43j0s3INqIMHkn1t5eNvrGKLQiUsb3RiJmoa/S
         CEYvpU1Q8IsrtfWcNET0zmnrhI9N887t29Kmvwt56Is8zbVvKPWNtEck60InZbGUG40F
         aWzrBbdv1eoCWZziuYjBeUX4+e5kyhKhOMlQGzzUn22IM7v53as3kZC7zQGCia0InldX
         jM9mv6+8HTkk/ksOFco1HQwLd1wCEV4wb+kFcdjGp6ianK/UcFxcxk78VsXwBwIKUXqm
         hcyIrQDaQh2UGzYZIiFLzKzRGBf0sdxCygAVL/qx+PoQ3jngAxTEB6kcrDTd8osndyGC
         qbtg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744008053; x=1744612853;
        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=zragjoZ0urZdBmqIfZzXuZqqBe4r2jSo9CSVoS/Px4M=;
        b=btDXGmD0gih2kbmCBesQ5Fr/ykloqu4OBEsNSIxPDNREWIDzYVYoET1nOpa1grWBVe
         Xl+Fcnv8jHxvj6q1jXjlD0bDP/dD4UU+hHso1OCxTLC71vYQbgFxgQzUGJ4A+fCO88Br
         EEC8M1dasCMhgPIRn7PMRWSWHS+p2iHoWEVFTlZ0nFFCWhdzd7pn0U+lV7W+deDudwcd
         Aesy28wu2T5RVEvvWi3V8jvEtpPUFrzsyXLb5wdHFp7k2dPEwaiHW29Yj/Yc5FNbIVGp
         5oA1haL7cDmagIU5FxIl4mBAN05mLQjF4Y4KqxIJSTR9O8jJNLmhclhG6X8vUs/XAh8q
         blYA==
X-Gm-Message-State: AOJu0Yxow5pUerUkJMs0G3+rIktAATMSS9nC1nVk03AJ/PAUp3N6iV5D
	yysa1Sk+A1DQb5CMi5kbu/pspIU8q+SvI3mNYJUJgcaaWD1YL4HO8AjVSihtnw==
X-Gm-Gg: ASbGncuGI5aQHyMZQmY/xlyqdf0zO/UXd7yIC35tLfrSbqA2jwWyyishcDhGjx4DIK0
	RgfjMAckG6ZOiXtTMw5+WUXjAI2pBzvXtiBWbydUBrdVgblu/hEwAqTZJqx8WEJ2rVn9C5pGn/Y
	/lbrJY3+oLwOlvL/FJLZmYdh3w90ojHI7Nf3oUpXYYNDG09pCs6KBiTr1WDz0QOraLfTMyOYmZL
	HY5F7S9SzyVNZ6npsMweI4qVDeoc/8MI7Fkc+8C6gruglFeCqLrotYg1XaJztkLSw0LDvIxuPag
	J0rPOxbTIknmRDgkPoHBVPXJVo6qQBV7omxJqQa4f26QIFjoan86Dsru0rcwfRQ5RxyUZ6ZGzOq
	8m1PuoTsRZnk+h/14eZYPMEokJiGQSw==
X-Google-Smtp-Source: AGHT+IHsEhGx6092aGVdyQPpml5dOljoy/n3I4F5EpsUOlkvRsFhjFuAILNp+6f1zE9/iM8jBYz+qw==
X-Received: by 2002:a05:6000:4212:b0:390:ec6e:43ea with SMTP id ffacd0b85a97d-39c2e6219b2mr13511027f8f.15.1744008053666;
        Sun, 06 Apr 2025 23:40:53 -0700 (PDT)
Message-ID: <cc999f58-12a1-417c-83bb-9b35ab5546ae@suse.com>
Date: Mon, 7 Apr 2025 08:40:55 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Jan Beulich <jbeulich@suse.com>
Subject: Xen 4.19.2 released
To: xen-announce@lists.xenproject.org
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

All,

we're pleased to announce the release of another bug fixing Xen version.

Xen 4.19.2 is available from its git repository
http://xenbits.xen.org/gitweb/?p=xen.git;a=shortlog;h=refs/heads/stable-4.19
(tag RELEASE-4.19.2) or (eventually) from the XenProject download page
https://xenproject.org/resources/downloads/.

We recommend all users of the 4.19 stable series to update to this latest
point release.

Regards, Jan


From xen-devel-bounces@lists.xenproject.org Mon Apr 07 07:02:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 07:02:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.939196.1339395 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1gVO-0008D1-SK; Mon, 07 Apr 2025 07:02:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 939196.1339395; Mon, 07 Apr 2025 07:02: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 1u1gVO-0008Cu-PQ; Mon, 07 Apr 2025 07:02:50 +0000
Received: by outflank-mailman (input) for mailman id 939196;
 Mon, 07 Apr 2025 07:02: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=qNmM=WZ=oracle.com=harshvardhan.j.jha@srs-se1.protection.inumbo.net>)
 id 1u1gVN-0007yx-F6
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 07:02:49 +0000
Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com
 [205.220.165.32]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4d49a2e0-137e-11f0-9ffb-bf95429c2676;
 Mon, 07 Apr 2025 09:02:44 +0200 (CEST)
Received: from pps.filterd (m0246627.ppops.net [127.0.0.1])
 by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5376Y2we029135;
 Mon, 7 Apr 2025 07:02:37 GMT
Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com
 (phxpaimrmta01.appoci.oracle.com [138.1.114.2])
 by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 45tu419x6r-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Mon, 07 Apr 2025 07:02:37 +0000 (GMT)
Received: from pps.filterd
 (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1])
 by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.2/8.18.1.2)
 with ESMTP id 5376xIaw022221; Mon, 7 Apr 2025 07:02:36 GMT
Received: from pps.reinject (localhost [127.0.0.1])
 by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id
 45tty84vca-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Mon, 07 Apr 2025 07:02:36 +0000
Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com
 (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1])
 by pps.reinject (8.17.1.5/8.17.1.5) with ESMTP id 53772acD006938;
 Mon, 7 Apr 2025 07:02:36 GMT
Received: from ca-dev112.us.oracle.com (ca-dev112.us.oracle.com
 [10.129.136.47])
 by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTP id
 45tty84vc4-1; Mon, 07 Apr 2025 07:02: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: 4d49a2e0-137e-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc
	:content-transfer-encoding:date:from:message-id:mime-version
	:subject:to; s=corp-2023-11-20; bh=+adpAbdYLs38FhIOhHdHbujyLz8AT
	wIWgf4obfGpmRM=; b=jQoTMxYlqIcteVWGaWm1r26NeCS3RKwwnBNdRH+M46bBP
	1UBkf3dJpt8Mw9A6paGffkR77pU48DDM34rKXHWv5j4QH4AoaxuTZ9wyfB+GShzV
	axZLyW1LTBc2o8z9x5vId3NLACJHCngnpBSshSCOMf++JxvDuOVUmzwTM0EoxupG
	/QBBS9JvBUVL9KZ8cR+wwGxFpwdrOjhGLIdcnLESL5e5bUJkHbGPu71lJuMNe/37
	fFhZxHKCpNA6hh08VwSiieqIZuSmmLnEXl1iUKRWZW6pXqFYk/ydcCVL6sqXmpiX
	QH+6vrUL8q6ZAxRuqU/P989XIunIooVOwzTtdmeFw==
From: Harshvardhan Jha <harshvardhan.j.jha@oracle.com>
To: jgross@suse.com, sstabellini@kernel.org, boris.ostrovsky@oracle.com
Cc: harshvardhan.j.jha@oracle.com, xen-devel@lists.xenproject.org,
        iommu@lists.linux-foundation.org, iommu@lists.linux.dev,
        stable@vger.kernel.org
Subject: [PATCH 5.15.y 0/1] Manual Backport of 099606a7b2d5 to 5.15
Date: Mon,  7 Apr 2025 00:02:34 -0700
Message-ID: <20250407070235.121187-1-harshvardhan.j.jha@oracle.com>
X-Mailer: git-send-email 2.47.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1095,Hydra:6.0.680,FMLib:17.12.68.34
 definitions=2025-04-07_02,2025-04-03_03,2024-11-22_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 mlxscore=0 spamscore=0
 adultscore=0 phishscore=0 malwarescore=0 suspectscore=0 mlxlogscore=999
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2502280000
 definitions=main-2504070049
X-Proofpoint-ORIG-GUID: Q2Uymo_6DJ_OZukhNcrNtCGTNFIBlZA4
X-Proofpoint-GUID: Q2Uymo_6DJ_OZukhNcrNtCGTNFIBlZA4

The patch 099606a7b2d5 didn't cleanly apply to 5.15 due to the
significant difference in codebases.

I've tried to manually bring it back to 5.15 via some minor conflict
resolution but also invoking the newly introduced API using inverted
logic as the conditional statements present in 5.15 are the opposite of
those in 6.1 xen/swiotlib.

Harshvardhan Jha (1):
  xen/swiotlb: relax alignment requirements

 drivers/xen/swiotlb-xen.c | 18 +++++++++++-------
 1 file changed, 11 insertions(+), 7 deletions(-)

-- 
2.47.1



From xen-devel-bounces@lists.xenproject.org Mon Apr 07 07:02:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 07:02:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.939195.1339387 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1gVN-0007zG-Nk; Mon, 07 Apr 2025 07:02:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 939195.1339387; Mon, 07 Apr 2025 07:02: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 1u1gVN-0007z9-IT; Mon, 07 Apr 2025 07:02:49 +0000
Received: by outflank-mailman (input) for mailman id 939195;
 Mon, 07 Apr 2025 07:02: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=qNmM=WZ=oracle.com=harshvardhan.j.jha@srs-se1.protection.inumbo.net>)
 id 1u1gVM-0007yx-9k
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 07:02:48 +0000
Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com
 [205.220.165.32]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4e1a53cb-137e-11f0-9ffb-bf95429c2676;
 Mon, 07 Apr 2025 09:02:45 +0200 (CEST)
Received: from pps.filterd (m0246617.ppops.net [127.0.0.1])
 by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5376Y2Pl027334;
 Mon, 7 Apr 2025 07:02:38 GMT
Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com
 (phxpaimrmta01.appoci.oracle.com [138.1.114.2])
 by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 45tw2thvj8-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Mon, 07 Apr 2025 07:02:38 +0000 (GMT)
Received: from pps.filterd
 (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1])
 by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.2/8.18.1.2)
 with ESMTP id 5375YcZb022287; Mon, 7 Apr 2025 07:02:37 GMT
Received: from pps.reinject (localhost [127.0.0.1])
 by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id
 45tty84vch-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Mon, 07 Apr 2025 07:02:37 +0000
Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com
 (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1])
 by pps.reinject (8.17.1.5/8.17.1.5) with ESMTP id 53772acF006938;
 Mon, 7 Apr 2025 07:02:36 GMT
Received: from ca-dev112.us.oracle.com (ca-dev112.us.oracle.com
 [10.129.136.47])
 by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTP id
 45tty84vc4-2; Mon, 07 Apr 2025 07:02: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: 4e1a53cb-137e-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc
	:content-transfer-encoding:date:from:in-reply-to:message-id
	:mime-version:references:subject:to; s=corp-2023-11-20; bh=B+JaH
	VWnjDdducTQrYRm/aNg9/vuSfGL2FFXG2KEIMk=; b=irWGIVEHQjlR+9jX0wYnB
	L60SsMUm7H6BTQrKzdViJLJo3QHinSx8YbRkZzPq4uwnitzn5OZXsQLFpyfBWcDu
	Hu1ozMJkzYqWy7iPL25iIG/rKpzd1uE6+hdRpEbUssbfP260TMSxYEBzhGSTEhW/
	FzBqtWwYDhquGsKNJaosRlcyW8tfZ73XxV4gX1ddKKAi99k14q5D1qJb7rDHdamj
	Z5OvjvCvfQsiGHTHiDB71yxr+zKbWL87L6tyIln0rVUV65jf1Ud7KgdXUBin2mVa
	ThwduE8VWD91P6V2m3uSJD3UkIIFT5GTL5kVp1uSCikhJuR+sVl3FsxsfbHv6aph
	w==
From: Harshvardhan Jha <harshvardhan.j.jha@oracle.com>
To: jgross@suse.com, sstabellini@kernel.org, boris.ostrovsky@oracle.com
Cc: harshvardhan.j.jha@oracle.com, xen-devel@lists.xenproject.org,
        iommu@lists.linux-foundation.org, iommu@lists.linux.dev,
        stable@vger.kernel.org
Subject: [PATCH 5.15.y 1/1] xen/swiotlb: relax alignment requirements
Date: Mon,  7 Apr 2025 00:02:35 -0700
Message-ID: <20250407070235.121187-2-harshvardhan.j.jha@oracle.com>
X-Mailer: git-send-email 2.47.1
In-Reply-To: <20250407070235.121187-1-harshvardhan.j.jha@oracle.com>
References: <20250407070235.121187-1-harshvardhan.j.jha@oracle.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1095,Hydra:6.0.680,FMLib:17.12.68.34
 definitions=2025-04-07_02,2025-04-03_03,2024-11-22_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 mlxscore=0 spamscore=0
 adultscore=0 phishscore=0 malwarescore=0 suspectscore=0 mlxlogscore=999
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2502280000
 definitions=main-2504070049
X-Proofpoint-ORIG-GUID: tPfSqGRKVitYsjbB6pp3paBhevC9fYN7
X-Proofpoint-GUID: tPfSqGRKVitYsjbB6pp3paBhevC9fYN7

[ Upstream commit 099606a7b2d53e99ce31af42894c1fc9d77c6db9]

When mapping a buffer for DMA via .map_page or .map_sg DMA operations,
there is no need to check the machine frames to be aligned according
to the mapped areas size. All what is needed in these cases is that the
buffer is contiguous at machine level.

So carve out the alignment check from range_straddles_page_boundary()
and move it to a helper called by xen_swiotlb_alloc_coherent() and
xen_swiotlb_free_coherent() directly.

Fixes: 9f40ec84a797 ("xen/swiotlb: add alignment check for dma buffers")
Signed-off-by: Harshvardhan Jha <harshvardhan.j.jha@oracle.com>
---
 drivers/xen/swiotlb-xen.c | 18 +++++++++++-------
 1 file changed, 11 insertions(+), 7 deletions(-)

diff --git a/drivers/xen/swiotlb-xen.c b/drivers/xen/swiotlb-xen.c
index 0392841a822fa..65da97be06285 100644
--- a/drivers/xen/swiotlb-xen.c
+++ b/drivers/xen/swiotlb-xen.c
@@ -75,19 +75,21 @@ static inline phys_addr_t xen_dma_to_phys(struct device *dev,
 	return xen_bus_to_phys(dev, dma_to_phys(dev, dma_addr));
 }
 
+static inline bool range_requires_alignment(phys_addr_t p, size_t size)
+{
+	phys_addr_t algn = 1ULL << (get_order(size) + PAGE_SHIFT);
+	phys_addr_t bus_addr = pfn_to_bfn(XEN_PFN_DOWN(p)) << XEN_PAGE_SHIFT;
+
+	return IS_ALIGNED(p, algn) && !IS_ALIGNED(bus_addr, algn);
+}
+
 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((phys_addr_t)next_bfn << XEN_PAGE_SHIFT, algn))
-		return 1;
-
 	for (i = 1; i < nr_pages; i++)
 		if (pfn_to_bfn(++xen_pfn) != ++next_bfn)
 			return 1;
@@ -306,7 +308,8 @@ xen_swiotlb_alloc_coherent(struct device *hwdev, size_t size,
 	phys = dma_to_phys(hwdev, *dma_handle);
 	dev_addr = xen_phys_to_dma(hwdev, phys);
 	if (((dev_addr + size - 1 <= dma_mask)) &&
-	    !range_straddles_page_boundary(phys, size))
+	    !range_straddles_page_boundary(phys, size) &&
+	    !range_requires_alignment(phys, size))
 		*dma_handle = dev_addr;
 	else {
 		if (xen_create_contiguous_region(phys, order,
@@ -347,6 +350,7 @@ xen_swiotlb_free_coherent(struct device *hwdev, size_t size, void *vaddr,
 
 	if (!WARN_ON((dev_addr + size - 1 > dma_mask) ||
 		     range_straddles_page_boundary(phys, size)) &&
+	    !range_requires_alignment(phys, size) &&
 	    TestClearPageXenRemapped(page))
 		xen_destroy_contiguous_region(phys, order);
 
-- 
2.47.1



From xen-devel-bounces@lists.xenproject.org Mon Apr 07 07:11:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 07:11:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.939223.1339406 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1gdJ-0002eJ-QZ; Mon, 07 Apr 2025 07:11:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 939223.1339406; Mon, 07 Apr 2025 07:11: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 1u1gdJ-0002eC-O3; Mon, 07 Apr 2025 07:11:01 +0000
Received: by outflank-mailman (input) for mailman id 939223;
 Mon, 07 Apr 2025 07:11: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=C/xl=WZ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u1gdI-0002e4-Gb
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 07:11:00 +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 7289745d-137f-11f0-9ffb-bf95429c2676;
 Mon, 07 Apr 2025 09:10:55 +0200 (CEST)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-39c31e4c3e5so2399859f8f.0
 for <xen-devel@lists.xenproject.org>; Mon, 07 Apr 2025 00:10:55 -0700 (PDT)
Received: from [10.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-39c301b69fdsm11067085f8f.48.2025.04.07.00.10.53
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 07 Apr 2025 00:10: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: 7289745d-137f-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744009855; x=1744614655; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=y2tiYaQn5wC2xSUhm0UgcvZ/zfnOF3MHfRs4kCW/ekI=;
        b=JOHHNTmpsP4H11qpLwYVx1D6S9464IOexRkqbQYB5+nL/NiueZ12dMfmuFp2xpqAdr
         C6MIkkUTd0ZrBn5hywdmUpyN5Ak56a1OEho9C0AY25BbcRIErlZ4KA4VtcLDHvtfxcz4
         IsUzIBnz9ewWn6LOHJPV6bCnRsHBaFlvI3qKN0aRGYTLoAooyxze78REf+JbSKb/JaOo
         ScKemqyz7Y9+8nCqV66DXp8hMlE6/xXkfWueEEs9JdiNVFL4A93Xk8bjFMLLhhbdDjgE
         Ase2f4x1RbNI/nLP3w4OPMuAXkQbWnVFTX1O/qO4bBU/MIwkhtA7UY3Px+fv1a7Dh/jI
         kLSg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744009855; x=1744614655;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=y2tiYaQn5wC2xSUhm0UgcvZ/zfnOF3MHfRs4kCW/ekI=;
        b=G0+oJIeh8gIAjOUBsAQuuOYhoqXnKdDMPV/0ECuq8JnjQMFuObgH2Eu5rNPdQBeY9J
         nym1twp1TMndiHzi+nHoe7ylgAvgQE8b0TQ3PGgL12c60VnGzo6HaTgtgleRRUA2RXr9
         H+thakfd7TIuKbve/9rC3ePH+e8MupXIKJIMuiT8wC2XT5FPEM6LDOl1y6ugqKK7cDCA
         kLIokjBEOMCM31fxmdYozyeEVfq+NcXKH8SXpqMSmJBR6o87boIUhX2QJqp6OJD29N7l
         j+ClWrk8SkUe3cLjQs2r9WLStc/C6epj2Ib/vZRpTFhF6Zu7yfk/Xx969loW+d6sr9Fh
         dRSw==
X-Forwarded-Encrypted: i=1; AJvYcCV3yWihA6OZViZndiWkTYDDqCSs85a/PXiI6SvwBdkkgAFZfu8uDdRT2OJINLYvhHmSXKJ1neG9oDM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzJSzZZKV3IDRVsWuNz+a1+StDiENsThlBjkQpCI71KWmdOPXz/
	oYnzeKPJfqEjfgWrpw+Gfo7Ansxu90dQ8rUlaaxuzP2P3QBJTacyFk+ZiRQB/w==
X-Gm-Gg: ASbGncsh9XfW6e3RNt8U5UQHu68Upl2FRNS8hvQ7w1D1TEnXCduv9uyMgUAmpG4S3gm
	sCC2ql24S9lzv51QYCIGF/eWB1RKIeZf8EN3tb9n/MvammEY0Q+6DyuAfHjJocwMsKhBGfXBdx2
	i2VqOsa4gxLrxDWYN/5zGyeqAo/Xr1QrBAMYX3YnQUCmKniKeyn/gFrnJasqry7u6CvRW0jtv9m
	vibfNfInVrjKSKRPF/z0s+qlOSS5gd9wESqrS/nU3+1ptRhxymcDQgihFVxpvLtSGZir6H9NwzR
	9ErgnlzVbZZ8o+oGIy3zV1bTKEw0MnsTQ7gALV90KDc/L/CEjGkMDVAyaxcOPJpljuYqM8qzGe5
	7qMssdngfsmsYmZnETqTzx8ORGMc/qQ==
X-Google-Smtp-Source: AGHT+IGKsJc6ISgXDeWMa0K/nqEBFOz6BpibQ/t8srWDVAjArUn6tby22XDa2K5HC1DvHm4eGe5ppg==
X-Received: by 2002:a05:6000:1787:b0:391:1806:e23f with SMTP id ffacd0b85a97d-39cb3596ea9mr9765795f8f.17.1744009854720;
        Mon, 07 Apr 2025 00:10:54 -0700 (PDT)
Message-ID: <72d3e83d-cb99-41b7-bf0d-b98b3927076e@suse.com>
Date: Mon, 7 Apr 2025 09:10:56 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 01/15] 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: <20241226165740.29812-1-dpsmith@apertussolutions.com>
 <20241226165740.29812-2-dpsmith@apertussolutions.com>
 <2e02b7d6-fe71-4ed8-a09d-5bde7438718c@suse.com>
 <4aa999f4-48d3-400c-9dc4-21d3f31f3d78@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: <4aa999f4-48d3-400c-9dc4-21d3f31f3d78@apertussolutions.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 05.04.2025 02:04, Daniel P. Smith wrote:
> On 1/30/25 08:45, Jan Beulich wrote:
>> On 26.12.2024 17:57, Daniel P. Smith wrote:
>>> @@ -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)
>>
>> Pointer-to-const? Domain construction should only be consuming data
>> supplied, I expect.
>>
>>> --- /dev/null
>>> +++ b/xen/arch/x86/include/asm/bootdomain.h
>>
>> Maybe boot-domain.h? Or was that suggested before and discarded for
>> whatever reason?
>>
>>> @@ -0,0 +1,28 @@
>>> +/* 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_domain {
>>> +    struct boot_module *kernel;
>>> +    struct boot_module *ramdisk;
>>
>> "ramdisk" is Linux-centric, I think. Can we name this more generically?
>> "module" perhaps, despite it then being the same name as we use for the
>> modules Xen is passed?
> 
> Ramdisk is not a linux-centric, take OpenBSD for example [1]. Calling 
> the field "module" is a recipe for confusion. Especially considering 
> that we are more or less providing a lightweight version of the 
> toolstack interface which use the name ramdisk.
> 
> [1] https://openbsd.fandom.com/wiki/Creating_a_custom_OpenBSD_RAM_disk

Just one other OS also using such a concept doesn't mean much. In fact, "ramdisk"
isn't quite appropriate a term for Linux nowadays anymore anyway. An initrd can
consist of multiple pieces now, not all of which end up taken as "ramdisk". I
wouldn't insist on "module" as a name, but I continue to think "ramdisk" is
inappropriate. The fact that the toolstack uses the term has historical reasons;
it doesn't mean new code in Xen needs to continue to use that term.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Apr 07 07:16:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 07:16:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.939241.1339415 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1gif-0003az-C7; Mon, 07 Apr 2025 07:16:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 939241.1339415; Mon, 07 Apr 2025 07:16: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 1u1gif-0003as-9a; Mon, 07 Apr 2025 07:16:33 +0000
Received: by outflank-mailman (input) for mailman id 939241;
 Mon, 07 Apr 2025 07:16: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=4UKk=WZ=linuxfoundation.org=gregkh@srs-se1.protection.inumbo.net>)
 id 1u1gie-0003a3-Ay
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 07:16:32 +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 3a1596bd-1380-11f0-9eaa-5ba50f476ded;
 Mon, 07 Apr 2025 09:16:31 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by nyc.source.kernel.org (Postfix) with ESMTP id BBEB8A4854A;
 Mon,  7 Apr 2025 07:11:00 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id A4349C4CEDD;
 Mon,  7 Apr 2025 07:16: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: 3a1596bd-1380-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org;
	s=korg; t=1744010189;
	bh=io0E4moshV/LDfFXrbcr6nh9X9BHIltAUho6j+zSBD4=;
	h=Date:From:To:Cc:Subject:References:In-Reply-To:From;
	b=MF1uQcIdJFjJQ/F9wG+SFD47ag5KHaMgOjZ0HEXb9BrGkNCdpVilAqzWEV8ktw0sI
	 QFvf+XSxEEt/f888ALbkLwdHIgWCw2Lq6mv+rA2H97vR0yHhOAWDX11zsqOIEJRuWS
	 GvG70MHxKJDsBlm4NeV+7+BhpIj9UpNpbfL/t+7w=
Date: Mon, 7 Apr 2025 09:14:59 +0200
From: Greg KH <gregkh@linuxfoundation.org>
To: Harshvardhan Jha <harshvardhan.j.jha@oracle.com>
Cc: jgross@suse.com, sstabellini@kernel.org, boris.ostrovsky@oracle.com,
	xen-devel@lists.xenproject.org, iommu@lists.linux-foundation.org,
	iommu@lists.linux.dev, stable@vger.kernel.org
Subject: Re: [PATCH 5.15.y 1/1] xen/swiotlb: relax alignment requirements
Message-ID: <2025040751-oversleep-sevenfold-b429@gregkh>
References: <20250407070235.121187-1-harshvardhan.j.jha@oracle.com>
 <20250407070235.121187-2-harshvardhan.j.jha@oracle.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20250407070235.121187-2-harshvardhan.j.jha@oracle.com>

On Mon, Apr 07, 2025 at 12:02:35AM -0700, Harshvardhan Jha wrote:
> [ Upstream commit 099606a7b2d53e99ce31af42894c1fc9d77c6db9]

Wrong git id :(


From xen-devel-bounces@lists.xenproject.org Mon Apr 07 07:19:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 07:19:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.939253.1339427 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1glr-00049d-Sm; Mon, 07 Apr 2025 07:19:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 939253.1339427; Mon, 07 Apr 2025 07:19: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 1u1glr-00049W-OH; Mon, 07 Apr 2025 07:19:51 +0000
Received: by outflank-mailman (input) for mailman id 939253;
 Mon, 07 Apr 2025 07:19: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=C/xl=WZ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u1glq-00049Q-Qo
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 07:19:50 +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 b076c6aa-1380-11f0-9ffb-bf95429c2676;
 Mon, 07 Apr 2025 09:19:48 +0200 (CEST)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-43ce70f9afbso43387385e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 07 Apr 2025 00:19:48 -0700 (PDT)
Received: from [10.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-43ec34be2ffsm120213855e9.22.2025.04.07.00.19.47
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 07 Apr 2025 00:19: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: b076c6aa-1380-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744010388; x=1744615188; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=7eiM7SYmUchJxNaX7VHU6I0hy9HDCwzEhfwkJKwW7Lw=;
        b=EKAXozk+TPBWWoMtI7796pYihcwt2mENwUEdCzzK6xwBozsJbDjFRGqW7QJd/2HgP8
         DgP3skc6yXQSXLKzy0gPwJH8IkeQBCfgtO7rnxmncFXWTjIh9L4SrD1648IsM5fMrZSM
         w1i2xO6RVts7l2yOcK43wPSMrq9a9d4y4lAOzDaBIdPlpVYZBLsetlGltws0JnfkdfvE
         zS66u5RXsqZVrQtjaPHJmcfjcZbERNPz+YRZd091HFBBxJ9TT9u10SqR7Ndpu8qLqddl
         0HZMxDcGRslxdbeIhfMaTsCg9b+2qe4ptzVf0OLSfQSJOwNpgojCAiZ1su19n9HxvBDT
         1t9Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744010388; x=1744615188;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=7eiM7SYmUchJxNaX7VHU6I0hy9HDCwzEhfwkJKwW7Lw=;
        b=ej7EaZ0VwCsT2zvOHV2tvvZolRRYqJ5c5CAJp1jeZ3oGIPlnldz7W5D91iytNQM42N
         MdHfQdGWJQoE+YKBFMDdLewZ3w5EYGONNzy3wF8/AKbfK+N1+qMzlVlKoBJytsNAbLkX
         BLpRL9u0kv7SnFjbRc1Fkv7piwLNz2t3BUenATKdC+CMUL0K3cpRdVjPzHLWE20FN6Ps
         qF+h1/sGzKJOHezUovntcmatFXnqIK/Ii4hU2P7OyElm1ay9DZE0BaJqUReVwepOyBEh
         ChztAgv9jYdpkIl9yv6Xy8SFcaeod8Q4yi5FaGejFXdVOvKSNUVgBHxivAMylygF4rXu
         R5hw==
X-Forwarded-Encrypted: i=1; AJvYcCXWJ6m142SYvYHaoOn5CWw80EzGsz2lnNhWyYUC7t+SPkfAs/KxHAgXGHMjykyZFj4z4/G4DrLXQWQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzgttS5vD651t/ys1ry9wA55jKOsjd9SswT9BQpoYSYoeT/Q4Hp
	LXdSpWzx8natangog4nZ2YUKE1/5992HXr3e2gowN6UaPJOdrUKwgsZpmZRxbQ==
X-Gm-Gg: ASbGncu5duoLx6U6f3GumTniwrvD5hYn+Lou8AJztrq+WgfpeSci7/Pq1/bt8LLlluV
	XLSiR1yJIHgcdOHhhQTq55zuRyRbkCO+2+/Y+3hvpLH2oh8ijzIsYXnSLwFPTr5j4tIBzYJMJ0L
	Pmh8/NJy3ckuv0TtJv4uWvD6wdoXFEap/NGXKrGGtSXHLNPI4Xr+RrYnJjlvwyaUWqzbD5ojK86
	xCNUQ8PnsNMWyTtI4QdUiI1JSgoAX1PDVHRp6bNphtbKSGftsyZKwAwY3Muc2ZASVmFgh8IkvYw
	LCu/QBr2QrhlKBZpk5X+P5OTenx9Uqp45v+irAxq5/llBbGLLSYxrGWwzEMCHnqWUgCw93wky9X
	bUEYrrwFaqf5DzogpMUTvVJywMgyeKg==
X-Google-Smtp-Source: AGHT+IEWtd08Ose2uXR2GNb4gXa21xoXBArCfT0TEgYD/6egMbh9SgFRq6mUd10Z+Pevq2DEew1PIA==
X-Received: by 2002:a05:600c:8711:b0:43d:2230:300f with SMTP id 5b1f17b1804b1-43ed07ad502mr120443135e9.0.1744010388089;
        Mon, 07 Apr 2025 00:19:48 -0700 (PDT)
Message-ID: <6918af30-26de-420a-a19c-5687c16c8f29@suse.com>
Date: Mon, 7 Apr 2025 09:19:50 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 3/3] xen: debug: gcov: add condition coverage support
To: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20250401011744.2267367-1-volodymyr_babchuk@epam.com>
 <20250401011744.2267367-4-volodymyr_babchuk@epam.com>
 <7281b7d8-ba7b-4658-82f1-a63d66c1baff@suse.com> <87mscvffo8.fsf@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: <87mscvffo8.fsf@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 05.04.2025 05:30, Volodymyr Babchuk wrote:
> Jan Beulich <jbeulich@suse.com> writes:
> 
>> On 01.04.2025 03:17, Volodymyr Babchuk wrote:
>>> --- a/xen/Kconfig
>>> +++ b/xen/Kconfig
>>> @@ -41,6 +41,11 @@ config CC_SPLIT_SECTIONS
>>>  config CC_HAS_UBSAN
>>>  	def_bool $(cc-option,-fsanitize=undefined)
>>>  
>>> +# Compiler supports -fcondition-coverage aka MC/DC
>>> +config CC_HAS_MCDC
>>> +	def_bool $(cc-option,-fcondition-coverage)
>>> +
>>> +
>>
>> Nit: No double blank lines please.
>>
>> Also, just to clarify - until the use of Kconfig (alone) for things like
>> this is properly resolved one way or another, I'm not going to approve
>> such changes (but I'm also not going to veto them). My proposal [1] is
>> still pending with no resolution, nor any counter-proposals.
> 
> I checked your proposal, but I am not sure how it maps for this
> particular use case. In your example
> 
>> config XEN_SHSTK
>>        bool "Supervisor Shadow Stacks"
>>        default HAS_AS_CET_SS
> 
> The default value will be "y" which is desired, but in case
> of CONDITION_COVERAGE, the default value should be "n". Are you
> suggesting to put
> 
> ifeq ($(CONFIG_CONDITION_COVERAGE)x$(CONFIG_CC_HAS_MCDC), yx)
>    $(warning Your compiler does not support condition coverage)
> endif
> 
> somewhere in Rules.mk ?

Perhaps. Ideally abstracted by a suitable, easy to use construct.

FTAOD - if you meant to include something like this in the next version of
the patch, you'll probably face resistance by Andrew (and/or maybe others).
We really need to decide on what model to use. I simply got tired of
reminding people that this discussion needs to happen (without pre-
determined outcome), for the matter to then be settled, and for the mix of
approaches presently taken to then be straightened.

>>> --- a/xen/Rules.mk
>>> +++ b/xen/Rules.mk
>>> @@ -138,6 +138,9 @@ ifeq ($(CONFIG_CC_IS_CLANG),y)
>>>      COV_FLAGS := -fprofile-instr-generate -fcoverage-mapping
>>>  else
>>>      COV_FLAGS := -fprofile-arcs -ftest-coverage
>>> +ifeq ($(CONFIG_CONDITION_COVERAGE),y)
>>> +    COV_FLAGS += -fcondition-coverage
>>> +endif
>>>  endif
>>
>> Personally I find ifeq() uses like this unhelpful, and would prefer
>>
>> COV_FLAGS-$(CONFIG_CONDITION_COVERAGE) += -fcondition-coverage
>> together with an eventual
>>
>> COV_FLAGS += $(COV_FLAGS-y)
>>
>> (if we don't already have one).
> 
> I did in this way:
> 
> --- a/xen/Rules.mk
> +++ b/xen/Rules.mk
> @@ -133,18 +133,19 @@ $(filter %.init.o,$(obj-y) $(obj-bin-y) $(extra-y)): CFLAGS-y += -DINIT_SECTIONS
>  
>  non-init-objects = $(filter-out %.init.o, $(obj-y) $(obj-bin-y) $(extra-y))
>  
> -ifeq ($(CONFIG_COVERAGE),y)
>  ifeq ($(CONFIG_CC_IS_CLANG),y)
> -    COV_FLAGS := -fprofile-instr-generate -fcoverage-mapping
> +    cov-flags-$(CONFIG_COVERAGE) := -fprofile-instr-generate -fcoverage-mapping
>  else
> -    COV_FLAGS := -fprofile-arcs -ftest-coverage
> +    cov-flags-$(CONFIG_COVERAGE) := -fprofile-arcs -ftest-coverage
> +    cov-flags-$(CONFIG_CONDITION_COVERAGE) += -fcondition-coverage
>  endif
>  
> -# Reset COV_FLAGS in cases where an objects has another one as prerequisite
> +# Reset cov-flags-y in cases where an objects has another one as prerequisite
>  $(nocov-y) $(filter %.init.o, $(obj-y) $(obj-bin-y) $(extra-y)): \
> -    COV_FLAGS :=
> +    cov-flags-y :=
>  
> -$(non-init-objects): _c_flags += $(COV_FLAGS)
> +$(non-init-objects): _c_flags += $(cov-flags-y)
>  endif
>  
> 
> I hope you don't mind having both changes (COV_FLAGS -> cov_flags-y and
> introduction of CONFIG_CONDITION_COVERAGE) in the same patch. With
> correct commit message, of course.

If that doesn't entail too many changes elsewhere, it's probably going to be
okay.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Apr 07 07:26:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 07:26:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.939266.1339435 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1grr-00071j-Ej; Mon, 07 Apr 2025 07:26:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 939266.1339435; Mon, 07 Apr 2025 07:26: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 1u1grr-00071c-Bv; Mon, 07 Apr 2025 07:26:03 +0000
Received: by outflank-mailman (input) for mailman id 939266;
 Mon, 07 Apr 2025 07:26: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=C/xl=WZ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u1grq-00071P-5j
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 07:26:02 +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 8dce4561-1381-11f0-9ffb-bf95429c2676;
 Mon, 07 Apr 2025 09:26:00 +0200 (CEST)
Received: by mail-wr1-x429.google.com with SMTP id
 ffacd0b85a97d-3996af42857so3204792f8f.0
 for <xen-devel@lists.xenproject.org>; Mon, 07 Apr 2025 00:26:00 -0700 (PDT)
Received: from [10.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-39c301a6608sm11105228f8f.23.2025.04.07.00.25.59
 for <xen-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 07 Apr 2025 00: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: 8dce4561-1381-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744010759; x=1744615559; 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=9BxXJKK6p0Lu+dQH81lxBtaafHL8L1NP4hEUEvN6aG0=;
        b=Xrh8BvOkfNwCKV19aVbYbJrMEmrv/Q/EhK6G0fQ7Wv+GezEPSChzuBz0KZ8fFbGB4T
         whqp9PwTXZNQ0l6ixvkUdg5O0ILosuN3m2Bn0e0DSCymgexT4o6WmtAhufN8EtdOpkge
         l6SH5/E+X21LfLa3Yp5quSBZ6hnlblIIitOlnrzgnuHABRYQvnnZn1J/PB0a2QDEHqg1
         Ud7pkChWHTj7qgCOvkrbbDwsfDHLRB1Bi+IpOnjiaMzE6mwEEsypgKApjQHjt1Yy/l1M
         V6SphMcUZ8bw1QYHbUde2VkhydhHGa76Abf2ZJPrhhPscODZpADS01Z8K7LIiqfJxtNf
         rKDg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744010759; x=1744615559;
        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=9BxXJKK6p0Lu+dQH81lxBtaafHL8L1NP4hEUEvN6aG0=;
        b=VaR1TQrF28j+U9/+jc5+TSbpfS4eVLThUfhweGCYoyGVueA7JdvJ+Fa5tbwOnP9Tfk
         A2N7l6pa+G5/RT9NhtBE8gfOnQQ3ubQ1tD9VHLMZVWEHxyfaaTMscz8mpfi/eSWoyqMn
         2oT7VXK5mF9vHnQwpP41cv5zSF1qQejlMwQ9WzafzGgDhTAyTS20xBtQl1Oc04nAVIBE
         EM4PVkFWCrD6DLlSGrwaB4YIkFGy4qOrLK2j+5K/DIOwplbAXtUEzcZoQHE71md/LueZ
         OEk74DqeV/mcDpwGK6ylB5p+A7Y3uNSjyzoMi76OALl0/srUS3I4T8cMl+KeEBQcwmmw
         UVtQ==
X-Gm-Message-State: AOJu0YzVPw/TkkC4zwcQtNa91+99jsQr8i69NVQm9XBzam0Oj2s/WdpM
	XWM39ZvzwSRRseaETtcAO2qOKSmfXNCXnc9DwoQMSad5kehadVBxj/q8mekD4zXKVAW5HlilpXA
	=
X-Gm-Gg: ASbGnctRYUbV7iX+9wd/Z3pXCmBIFYKh/YMgYrG1+7C56gglDfYyV93KSTuXlWcMWlJ
	29RNU7+ZqtqQwAcLLJAcxi4gcQN84+rcbji4WrfHD0njCvIs/upcZ3KtNIFxY8ktKNKYWe9L4pG
	ykZv+NHb9J3RiUqVY5/EK4OLGRjeLiUqSjHBYJZSnUZMWt07Lx2ONLnPaeLSP6qOc9CvLl5iMcK
	EgRwdEmOzL97+AaC95kYy9DoDhw8K7s4/roHQKtXb/rvQbK6QEllzMgTXwRr8kdeHavmyEtXuST
	mSrNpumjzXJmh7XAih5nbADTAhJ7TAgBS2esJHeGb3OYxRtJr1Y+pu95Oj8HzjkRF1mq64Ku5Ar
	I6lmr3AkXldk/UCZQN2Il5EQYf4s6MQ==
X-Google-Smtp-Source: AGHT+IGLcVSIPEA/leRSOrj2tUdLK2DdQ/44jtENybsTNOSW1MYR+IkKAeJhTmKFAz0d8fuMDRWd9A==
X-Received: by 2002:a05:6000:22c5:b0:390:f0ff:2c10 with SMTP id ffacd0b85a97d-39c2e6518a9mr13793696f8f.19.1744010759526;
        Mon, 07 Apr 2025 00:25:59 -0700 (PDT)
Message-ID: <7e5fe92d-4f67-4413-aa72-5771f8d61570@suse.com>
Date: Mon, 7 Apr 2025 09:26:01 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: New Defects reported by Coverity Scan for XenProject
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <67f26722e020c_13a342abaf9ddd9a0513e7@prd-scan-dashboard-0.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: <67f26722e020c_13a342abaf9ddd9a0513e7@prd-scan-dashboard-0.mail>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 06.04.2025 13:36, scan-admin@coverity.com wrote:
> Hi,
> 
> Please find the latest report on new defect(s) introduced to XenProject found with Coverity Scan.
> 
> 1 new defect(s) introduced to XenProject found with Coverity Scan.
> 
> 
> New defect(s) Reported-by: Coverity Scan
> Showing 1 of 1 defect(s)
> 
> 
> ** CID 1645644:  Control flow issues  (UNREACHABLE)
> /xen/arch/x86/hvm/vmx/vmcs.c: 774 in _vmx_cpu_up()
> 
> 
> ________________________________________________________________________________________________________
> *** CID 1645644:  Control flow issues  (UNREACHABLE)
> /xen/arch/x86/hvm/vmx/vmcs.c: 774 in _vmx_cpu_up()
> 768             vpid_sync_all();
> 769     
> 770         vmx_pi_per_cpu_init(cpu);
> 771     
> 772         return 0;
> 773     
>>>>     CID 1645644:  Control flow issues  (UNREACHABLE)
>>>>     This code cannot be reached: "vmxon_fault:
> if (bios_locke...".
> 774      vmxon_fault:
> 775         if ( bios_locked &&
> 776              test_bit(X86_FEATURE_SMX, &boot_cpu_data.x86_capability) &&
> 777              (!(eax & IA32_FEATURE_CONTROL_ENABLE_VMXON_OUTSIDE_SMX) ||
> 778               !(eax & IA32_FEATURE_CONTROL_ENABLE_VMXON_INSIDE_SMX)) )
> 779         {

Is this perhaps an indication that Coverity doesn't understand asm goto()?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Apr 07 07:43:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 07:43:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.939292.1339458 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1h8R-0004je-Vo; Mon, 07 Apr 2025 07:43:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 939292.1339458; Mon, 07 Apr 2025 07: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 1u1h8R-0004jX-TA; Mon, 07 Apr 2025 07:43:11 +0000
Received: by outflank-mailman (input) for mailman id 939292;
 Mon, 07 Apr 2025 07:43: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=ZxXC=WZ=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u1h8Q-0004jQ-T1
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 07:43:10 +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 f3393b67-1383-11f0-9eaa-5ba50f476ded;
 Mon, 07 Apr 2025 09:43:09 +0200 (CEST)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-43cf848528aso33084715e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 07 Apr 2025 00:43:09 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39c30226959sm11017969f8f.82.2025.04.07.00.43.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 07 Apr 2025 00:43: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: f3393b67-1383-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744011788; x=1744616588; 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=vp+EyQO0bnLgQcexw23Vk/21s7yMa6oJPnt9uaxkPyQ=;
        b=pxzBIAkV+/PKUxxy5HTyFg7ijNpZTu1H1gZY/xfitEg6jsyb0rZP+LClJ4zH1PB7lT
         Vktxkk6EvUBuWm/f5DKv5bBvX7lr2HtlUwRkVkTGYi5gWuDgME4eWXH68RtiCgLibVT5
         HnXAR/pb31gsJP44HGGghA+UNFIDcYTMWHNT0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744011788; x=1744616588;
        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=vp+EyQO0bnLgQcexw23Vk/21s7yMa6oJPnt9uaxkPyQ=;
        b=vo5ciLXzYSGXcF6NeB68HdU2xHVZP3jvEwNE9cp7QjDEwkdzTY6Kuk4vhSHzmV5T/D
         zVpUIucJxQixoD8Nur4irUG8tvklT2nlLKvEceBhr84UixTMvsXW+ZoOhO/j2px/GObG
         pfEkuxFqtoeBjYW0vGfjy2UB2r5QW5MYI85HCpVnPszMlQpMgymDfwOJTi7dii5PD/qe
         D68H8bS+Mas0w0ziwr2HpRDJbl5AkNHe9mNcg9uFakWHJhDhKrb+EeftXTFDc4XPOMd5
         20wsoXCUGoWeEdCSesaQVq7nlMgHmu1j1btF5XmhBqhF6wmUXZGqXh2GV6h3PhmD6BiQ
         1SIw==
X-Forwarded-Encrypted: i=1; AJvYcCWhT1V0U3R4jTJCZLYvhA52tmTjtHTdBmKYNU7bemZEFGN55jRalmlecj9tGumQcjvF51z/Cl6bTDc=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywj1GtDG8Km617Xn8ZBhYafGhtgvjZNhwCCi2Lqjox7o+nPm2vy
	iuuIMDtr9bmEEZ+GlodXJh3aUoA6KBW/A3+JluWDN/9Fcn42Ji0ZYJp//iSQ3SHW7SyE0PRt5L2
	Q0tk=
X-Gm-Gg: ASbGncs+YVcSzMlsyrHemr3juo4+akDT5Wx/7QIxighJ0ru0/C0igUERi89NLYiHD28
	aYX05EeDqxxB2Mpoch0WGDz4l7nAAlf1LsZcVTU7iqLjDgPD7/O0uZVM6f2EHPb5R4ZJmDo58Ss
	Me53rTe7UQNeIRtFeziXytGdAVGF+xWfrhs5qWIv8XgezMy/fxYZTf+Rs3ZC7ry/AO/JclY36uF
	ssgX1LavTptCAapgNaeMhIRqi0jiF6v8JjmH2ljKBbsLFhzYKUgjFqFyEKIW/wzIhHOMfSbkIa3
	mhs+0sI51lz2fF6wEGPDA9W4890WLtVxHERvO1JbR9i42sQ521I5NZwLhsw9NDF5QBU7qQQw0kj
	wFj654lI/vQ==
X-Google-Smtp-Source: AGHT+IGF8h3Z0Bg3+HdPE2XXVb4othsH67D8OZ1KJFqSbIKUtkwJ13UpluQsahACO98wInzYQW5OfQ==
X-Received: by 2002:a05:6000:186c:b0:390:e62e:f31f with SMTP id ffacd0b85a97d-39d6fc0c42bmr5651875f8f.3.1744011788659;
        Mon, 07 Apr 2025 00:43:08 -0700 (PDT)
Message-ID: <641ff3bd-8fe9-4384-bd61-51fb51a3a778@citrix.com>
Date: Mon, 7 Apr 2025 08:43:07 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: New Defects reported by Coverity Scan for XenProject
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <67f26722e020c_13a342abaf9ddd9a0513e7@prd-scan-dashboard-0.mail>
 <7e5fe92d-4f67-4413-aa72-5771f8d61570@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: <7e5fe92d-4f67-4413-aa72-5771f8d61570@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 07/04/2025 8:26 am, Jan Beulich wrote:
> On 06.04.2025 13:36, scan-admin@coverity.com wrote:
>> Hi,
>>
>> Please find the latest report on new defect(s) introduced to XenProject found with Coverity Scan.
>>
>> 1 new defect(s) introduced to XenProject found with Coverity Scan.
>>
>>
>> New defect(s) Reported-by: Coverity Scan
>> Showing 1 of 1 defect(s)
>>
>>
>> ** CID 1645644:  Control flow issues  (UNREACHABLE)
>> /xen/arch/x86/hvm/vmx/vmcs.c: 774 in _vmx_cpu_up()
>>
>>
>> ________________________________________________________________________________________________________
>> *** CID 1645644:  Control flow issues  (UNREACHABLE)
>> /xen/arch/x86/hvm/vmx/vmcs.c: 774 in _vmx_cpu_up()
>> 768             vpid_sync_all();
>> 769     
>> 770         vmx_pi_per_cpu_init(cpu);
>> 771     
>> 772         return 0;
>> 773     
>>>>>     CID 1645644:  Control flow issues  (UNREACHABLE)
>>>>>     This code cannot be reached: "vmxon_fault:
>> if (bios_locke...".
>> 774      vmxon_fault:
>> 775         if ( bios_locked &&
>> 776              test_bit(X86_FEATURE_SMX, &boot_cpu_data.x86_capability) &&
>> 777              (!(eax & IA32_FEATURE_CONTROL_ENABLE_VMXON_OUTSIDE_SMX) ||
>> 778               !(eax & IA32_FEATURE_CONTROL_ENABLE_VMXON_INSIDE_SMX)) )
>> 779         {
> Is this perhaps an indication that Coverity doesn't understand asm goto()?

Yes.  That's a false positive.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Apr 07 08:29:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 08:29:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.939309.1339467 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1hrI-0007AT-Ey; Mon, 07 Apr 2025 08:29:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 939309.1339467; Mon, 07 Apr 2025 08:29: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 1u1hrI-0007AM-CC; Mon, 07 Apr 2025 08:29:32 +0000
Received: by outflank-mailman (input) for mailman id 939309;
 Mon, 07 Apr 2025 08:29: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=cV/f=WZ=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u1hrG-0007AD-SR
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 08:29:30 +0000
Received: from mail-pl1-x632.google.com (mail-pl1-x632.google.com
 [2607:f8b0:4864:20::632])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6c06d64c-138a-11f0-9eaa-5ba50f476ded;
 Mon, 07 Apr 2025 10:29:29 +0200 (CEST)
Received: by mail-pl1-x632.google.com with SMTP id
 d9443c01a7336-223f4c06e9fso35157215ad.1
 for <xen-devel@lists.xenproject.org>; Mon, 07 Apr 2025 01:29:29 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 d9443c01a7336-2297865e093sm75458025ad.132.2025.04.07.01.29.26
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 07 Apr 2025 01:29:27 -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: 6c06d64c-138a-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744014568; x=1744619368; 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=hSdAs2f+FX9mxAdk7Px3JSEdrERFGwDr3y7nuD5w7Os=;
        b=eSGG0HhvriD38bJyCLEeG0T8MPocUfE2jxJCwpsXEoQPi+8byX8B7cbmQchwMyiH2J
         rGKmbwjqyyQFxu+smk/w0jLZH0J7d9k8vjJ4vETLIKg99yw10iREiyv20kHd8uVGjSCl
         rHfKsgyyRhzZYouGPbLf7LqRsyeIvzTvEIzdI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744014568; x=1744619368;
        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=hSdAs2f+FX9mxAdk7Px3JSEdrERFGwDr3y7nuD5w7Os=;
        b=rSL4EqEfih+rhXyrx+sG+h0XqI0/wwh79eKSeM2ax/aluTkpFU9D7sVz9knLQiMFNA
         nt0ZT5nYOpHMs13iiWYJsvrA9s92s/bGB6wSmEfRFWbhkMWAqg5+d90TaWiR+sqNu6l2
         XZ6VUxx0GVYnB4NBV9I6ANAbzLe9Il1K/R/R74HoS+4Fznx6heKrLPqra12tO8McLaC1
         pjXGtoSqj7jAoVOH9MiotfXkpahWL/nF5xq++79W/ae5s14tEp2W1pkBPYcVzfsbr27w
         /4OIGFSxorC4DkRwvII8ScbGj0tpMOVYR3OgGtmE5IS/5FnPWhJ0UK1lITooB6ZJ8BFx
         3fig==
X-Forwarded-Encrypted: i=1; AJvYcCWmqXsOxsletlxXAw7Ueycr1xdlhBMq+vGc5w7wHWqiAf4J9r62kdDea8QFyoB0Xf4nfzuPeHclVG8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxTCapGjh+cCx9CZ35l4wUjT2LeO52WC5YEkNtNY8VnbNn/qcKR
	78lN57Kk4hOZfHl1aCWJ9CGqi3fB7ssk/gUNlRic4OLrb3O+wN5qnQ97NYxDPKw=
X-Gm-Gg: ASbGnct72ENq2WwIGEbkdnvtPZyjDV0uMP5sLEWJSk2CmKKFnNeAJmgMSOYTt/Mjcey
	KAWTXIdVqflzEpyu0k/Qag6sJB6ht+E5/omnAHw1MnXe3o1HHXmJdn9zICsnm4LnDLvBURC+Bqi
	U9/pZFMM4Toy+gm/63PKu+F831d5isGJIx0uiPv72F2IgJaICGePSvGDAxJLmkRUHaajOm2HaIS
	IrhpdiHfaxxPKgK3v6pLX6iSVjzA/yEzUXQJDQOSkFm9HWfiLpW3UXdkbdbVC9Wo0PBbFDSIFVj
	p/ZFYsPb2RwnY7jHQ6wPK9N8XXaiYQfU89SfgNflpocKj4a70A==
X-Google-Smtp-Source: AGHT+IF0CSzr5MZm3MP3ECWI39e3e76OnxJJystHy5NBHpjYzkDs4iGYAsXV3wu+sJhREp3R/IAdWg==
X-Received: by 2002:a17:902:d487:b0:224:3994:8a8c with SMTP id d9443c01a7336-229765bd473mr177056685ad.8.1744014567961;
        Mon, 07 Apr 2025 01:29:27 -0700 (PDT)
From: Roger Pau Monne <roger.pau@citrix.com>
To: Juergen Gross <jgross@suse.com>,
	Roger Pau Monne <roger.pau@citrix.com>,
	xen-devel@lists.xenproject.org,
	linux-kernel@vger.kernel.org
Cc: stable@vger.kernel.org,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Subject: [PATCH v3] x86/xen: fix balloon target initialization for PVH dom0
Date: Mon,  7 Apr 2025 10:28:37 +0200
Message-ID: <20250407082838.65495-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.48.1
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

PVH dom0 re-uses logic from PV dom0, in which RAM ranges not assigned to
dom0 are re-used as scratch memory to map foreign and grant pages.  Such
logic relies on reporting those unpopulated ranges as RAM to Linux, and
mark them as reserved.  This way Linux creates the underlying page
structures required for metadata management.

Such approach works fine on PV because the initial balloon target is
calculated using specific Xen data, that doesn't take into account the
memory type changes described above.  However on HVM and PVH the initial
balloon target is calculated using get_num_physpages(), and that function
does take into account the unpopulated RAM regions used as scratch space
for remote domain mappings.

This leads to PVH dom0 having an incorrect initial balloon target, which
causes malfunction (excessive memory freeing) of the balloon driver if the
dom0 memory target is later adjusted from the toolstack.

Fix this by using xen_released_pages to account for any pages that are part
of the memory map, but are already unpopulated when the balloon driver is
initialized.  This accounts for any regions used for scratch remote
mappings.  Note on x86 xen_released_pages definition is moved to
enlighten.c so it's uniformly available for all Xen-enabled builds.

Take the opportunity to unify PV with PVH/HVM guests regarding the usage of
get_num_physpages(), as that avoids having to add different logic for PV vs
PVH in both balloon_add_regions() and arch_xen_unpopulated_init().

Much like a6aa4eb994ee, the code in this changeset should have been part of
38620fc4e893.

Fixes: a6aa4eb994ee ('xen/x86: add extra pages to unpopulated-alloc if available')
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
Reviewed-by: Juergen Gross <jgross@suse.com>
Cc: stable@vger.kernel.org
---
Changes since v2:
 - For x86: Move xen_released_pages definition from setup.c (PV specific)
   to enlighten.c (shared between all guest modes).

Changes since v1:
 - Replace BUG_ON() with a WARN and failure to initialize the balloon
   driver.
---
 arch/x86/xen/enlighten.c | 10 ++++++++++
 arch/x86/xen/setup.c     |  3 ---
 drivers/xen/balloon.c    | 34 ++++++++++++++++++++++++----------
 3 files changed, 34 insertions(+), 13 deletions(-)

diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
index 43dcd8c7badc..1b7710bd0d05 100644
--- a/arch/x86/xen/enlighten.c
+++ b/arch/x86/xen/enlighten.c
@@ -70,6 +70,9 @@ EXPORT_SYMBOL(xen_start_flags);
  */
 struct shared_info *HYPERVISOR_shared_info = &xen_dummy_shared_info;
 
+/* Number of pages released from the initial allocation. */
+unsigned long xen_released_pages;
+
 static __ref void xen_get_vendor(void)
 {
 	init_cpu_devs();
@@ -466,6 +469,13 @@ int __init arch_xen_unpopulated_init(struct resource **res)
 			xen_free_unpopulated_pages(1, &pg);
 		}
 
+		/*
+		 * Account for the region being in the physmap but unpopulated.
+		 * The value in xen_released_pages is used by the balloon
+		 * driver to know how much of the physmap is unpopulated and
+		 * set an accurate initial memory target.
+		 */
+		xen_released_pages += xen_extra_mem[i].n_pfns;
 		/* Zero so region is not also added to the balloon driver. */
 		xen_extra_mem[i].n_pfns = 0;
 	}
diff --git a/arch/x86/xen/setup.c b/arch/x86/xen/setup.c
index c3db71d96c43..3823e52aef52 100644
--- a/arch/x86/xen/setup.c
+++ b/arch/x86/xen/setup.c
@@ -37,9 +37,6 @@
 
 #define GB(x) ((uint64_t)(x) * 1024 * 1024 * 1024)
 
-/* Number of pages released from the initial allocation. */
-unsigned long xen_released_pages;
-
 /* Memory map would allow PCI passthrough. */
 bool xen_pv_pci_possible;
 
diff --git a/drivers/xen/balloon.c b/drivers/xen/balloon.c
index 163f7f1d70f1..ee165f4f7fe6 100644
--- a/drivers/xen/balloon.c
+++ b/drivers/xen/balloon.c
@@ -675,7 +675,7 @@ void xen_free_ballooned_pages(unsigned int nr_pages, struct page **pages)
 }
 EXPORT_SYMBOL(xen_free_ballooned_pages);
 
-static void __init balloon_add_regions(void)
+static int __init balloon_add_regions(void)
 {
 	unsigned long start_pfn, pages;
 	unsigned long pfn, extra_pfn_end;
@@ -698,26 +698,38 @@ static void __init balloon_add_regions(void)
 		for (pfn = start_pfn; pfn < extra_pfn_end; pfn++)
 			balloon_append(pfn_to_page(pfn));
 
-		balloon_stats.total_pages += extra_pfn_end - start_pfn;
+		/*
+		 * Extra regions are accounted for in the physmap, but need
+		 * decreasing from current_pages to balloon down the initial
+		 * allocation, because they are already accounted for in
+		 * total_pages.
+		 */
+		if (extra_pfn_end - start_pfn >= balloon_stats.current_pages) {
+			WARN(1, "Extra pages underflow current target");
+			return -ERANGE;
+		}
+		balloon_stats.current_pages -= extra_pfn_end - start_pfn;
 	}
+
+	return 0;
 }
 
 static int __init balloon_init(void)
 {
 	struct task_struct *task;
+	int rc;
 
 	if (!xen_domain())
 		return -ENODEV;
 
 	pr_info("Initialising balloon driver\n");
 
-#ifdef CONFIG_XEN_PV
-	balloon_stats.current_pages = xen_pv_domain()
-		? min(xen_start_info->nr_pages - xen_released_pages, max_pfn)
-		: get_num_physpages();
-#else
-	balloon_stats.current_pages = get_num_physpages();
-#endif
+	if (xen_released_pages >= get_num_physpages()) {
+		WARN(1, "Released pages underflow current target");
+		return -ERANGE;
+	}
+
+	balloon_stats.current_pages = get_num_physpages() - xen_released_pages;
 	balloon_stats.target_pages  = balloon_stats.current_pages;
 	balloon_stats.balloon_low   = 0;
 	balloon_stats.balloon_high  = 0;
@@ -734,7 +746,9 @@ static int __init balloon_init(void)
 	register_sysctl_init("xen/balloon", balloon_table);
 #endif
 
-	balloon_add_regions();
+	rc = balloon_add_regions();
+	if (rc)
+		return rc;
 
 	task = kthread_run(balloon_thread, NULL, "xen-balloon");
 	if (IS_ERR(task)) {
-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Mon Apr 07 09:04:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 09:04:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.939341.1339478 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1iPJ-0008Kk-0T; Mon, 07 Apr 2025 09:04:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 939341.1339478; Mon, 07 Apr 2025 09:04: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 1u1iPI-0008Kd-Tm; Mon, 07 Apr 2025 09:04:40 +0000
Received: by outflank-mailman (input) for mailman id 939341;
 Mon, 07 Apr 2025 09:04: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=LsCM=WZ=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1u1iPH-0008KU-4o
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 09:04:39 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on2062d.outbound.protection.outlook.com
 [2a01:111:f403:2418::62d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4fea2733-138f-11f0-9ffb-bf95429c2676;
 Mon, 07 Apr 2025 11:04:30 +0200 (CEST)
Received: from BN9PR12MB5273.namprd12.prod.outlook.com (2603:10b6:408:11e::22)
 by PH0PR12MB7930.namprd12.prod.outlook.com (2603:10b6:510:283::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.31; Mon, 7 Apr
 2025 09:04:26 +0000
Received: from BN9PR12MB5273.namprd12.prod.outlook.com
 ([fe80::cf66:58ab:47be:4b13]) by BN9PR12MB5273.namprd12.prod.outlook.com
 ([fe80::cf66:58ab:47be:4b13%5]) with mapi id 15.20.8606.029; Mon, 7 Apr 2025
 09:04: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: 4fea2733-138f-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=mQ5xqhrXczcdHwTaEus0ZKftFW2MOilTFVvPkOBb2zUFj9naVbj37+XXO7Q5s5V/s2oL0XUXe7nY5eH0PQoz2DiX0EZ8NQmY/EB68yX2ps3w7Su5kR4/3u2I8aGiCgW6OLSmDeaYPqpasmV0e6vY+pI+psCK1PVQpjM8nODzTiVzs+I+ugrxS7gjHVNbEkcO9Sn/bGz/CuSwayPhzgiTeTuMb4ucqEeBZtxAXZbTFAlU/g9eHgaThNZ2YXXqsdaBfeEDCf0BthfSa/C9jXu+IyQfZaodstiuqB/anPxZLeC2eWo0LHHYsGp7Zbsw92xbXR1bGdfpndHZ21TlYF9kRg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=x/hXzcNFjPfGx2p5Fmcz3iqPzNX/iGxr6ouwRZfOXGg=;
 b=XoqdGH9hDA+9Eb6UY1ujrh21Y++xNXoE+STTc1KMmRFPLs8Akob+oaJ3p3yC0j5NSSnoc19LJfGWriEBg+NhUC0zcnf9r+lTpamsep1y3t8NNoJG6oFfEQlGu1tmJy/KIlJ6BdnqJmHh5LmFpeheoHLdQgwvXbZ7abHDf+c6OPL6x1kWW86t3jk2dLcNq9vczxhYiSl0DWrRbAjCAKmfR8dCv+7+rr6A7L1TbMHFkfo8rD4ULEswJTrj9ABvWtIlV440VVs4pyFg6Ajsa41vzI+G1mD4o+AFX9Eb+dr7JVO3v/ld10UcKGChRdAwOT7o7PGc1NZ6/XdGGf1uKu5vwQ==
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=x/hXzcNFjPfGx2p5Fmcz3iqPzNX/iGxr6ouwRZfOXGg=;
 b=k1p3dnTl0Klejc3KWhlfHMZsoaJmXK6AJSfT7Vmlj3acKS0mRxGNu4COcCmTJsEdpo3nhynS0snKrCL4VShdiW4FPHyE1Fb9lZcy6SFOcsm8prJUbFSDmIuD+/jEShFA6M104aJctbuz1K/vvM7X4tECIXh/CqKM9J6Yq2nnyUI=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <45d47205-409c-492a-9841-3b162c05ec09@amd.com>
Date: Mon, 7 Apr 2025 11:04:22 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 1/3] xen/arm: Move some of the functions to common file
To: Ayan Kumar Halder <ayan.kumar.halder@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>
References: <20250403171241.975377-1-ayan.kumar.halder@amd.com>
 <20250403171241.975377-2-ayan.kumar.halder@amd.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <20250403171241.975377-2-ayan.kumar.halder@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR4P281CA0316.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:eb::16) To BN9PR12MB5273.namprd12.prod.outlook.com
 (2603:10b6:408:11e::22)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN9PR12MB5273:EE_|PH0PR12MB7930:EE_
X-MS-Office365-Filtering-Correlation-Id: 17b78d90-f4f0-4d24-a973-08dd75b33226
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?UWp4eElMcnlldTBKeTBaR2c0KzRhekNsNnBVRS9tUXVoMFE4SFVCZzdoTUU2?=
 =?utf-8?B?MHNyZjV1QWJGVEFiUm5xT3hBblFlRjI4OHQyejRRT0YzUnBhVGRXY0ZwVnJl?=
 =?utf-8?B?WUZsNmwwMVN3d0ZDSnRrdGgvRnZRZ1c3MytCMEtUcTJQYjB5Rjd3MFhmRk42?=
 =?utf-8?B?eFpWemtTVWt0SW5FVkxOZ1dnamlpd2o0K1YzZzI1akRadVZ6aHZKTVZZU3hp?=
 =?utf-8?B?RXZabzliUmhLWUtTemtzN0RacjlVdXBGU1dyY3B4RlpOWXZvZEhSaEY1eWVO?=
 =?utf-8?B?dmc0eWVTY0tJdGY3VkphcWEyVWpKOHZtM2RrRTBJMzZQR2RiclQwUnhTQ2JK?=
 =?utf-8?B?UmpJb0doMThwTmxYZzRVdVZJTXZITlQyNEsrMzlZWU1Pejc5VjN4U1JOd285?=
 =?utf-8?B?RDl2ZzkwdUJwY2ZoODVULzd3RGlNYUxQVUl6akZVQjlQbU9Lc0dCSXhyNWpU?=
 =?utf-8?B?N3dmWWgwWFRqdjBQMExGUDIwOU92N01HQ3I4THZhY1hqVEkyeXM2NE9sTlhk?=
 =?utf-8?B?VWYzT1hRZHFkUTlaWERWZEozRnRXUWdEMDIrdjBlSnZ1NVk0cEZJazZnY1dT?=
 =?utf-8?B?Zk5Rd1p2b3VwcVhkVGtnRU5pUUJmaTZ3WE5ObldFTzBPQTQrcG9WM1RLRnFu?=
 =?utf-8?B?NjhoYmwyN1dlVkxWTjZIRzduMmZaclowTlltU1ZYUm5uOXJUemdya2Y4Q25l?=
 =?utf-8?B?WVR6WDlVMndSTTlkN2FDanFBb2w1OE1zYXVuTi9NTmR2amVHNXV4RlFRcjdu?=
 =?utf-8?B?TlJjcDJSbG5neEtUOXNUS1doQlBDV2hzeFdIK0VFWnNIZ2NGK3FuNURySHRS?=
 =?utf-8?B?TFRpWEpGMlpacG1XRExJcWJERjZWdXNHVU5CemtSbVVSZVpKQUNmdlYyRHNY?=
 =?utf-8?B?VEhzRTVJRVE5NjhkM0VkVGoveDBaZk01dnhtR1Qwd21VbmRXd3ZSNjhaci9B?=
 =?utf-8?B?UlR2VzkrcDdzQzdmcXhRcGpnNDVVT3hZblYzdDF5VGVZRFNmais1WS9nODUz?=
 =?utf-8?B?Y1djY01nekhXQ09HcHZoOFB0bnpJRVI3UXZ3cC9BWWJqMk1GTjBhald6WkI3?=
 =?utf-8?B?b3dSV3Z5UDlOcm9XTTF5NHliVFU2V1NrS3U1cWFYbzk2UGlSaThuSjFqRXJC?=
 =?utf-8?B?dUo4WVB0SGZRZ2xidU5lWGNTMGJMVzhsSzRxYXNXMTBUaXg3OThwRWlMNCtV?=
 =?utf-8?B?dFVUd0I5cm12K3l4OE5JWEM4NkZubGh2M1AyNU02ajFTUUJiczZiU2FvNEIx?=
 =?utf-8?B?d29aUEpWcnFFc0RVd1NSeWhkMk1IQTFYRmRITmhMbTQ2bzZheHlmYWdTSjhs?=
 =?utf-8?B?L0FlNmNGTXZZTCtSVHBqeFovUWkxWS9TTzZ6NXNrb1pFRXVsa3RFYU0vbCtJ?=
 =?utf-8?B?OTRaRHV1cmZPZXk4VXJ1Wkd2dEpnNFFDc3JuVjl2L082MjdPTGdFUWt4OWJU?=
 =?utf-8?B?aExiRzdjeHdNQ0lsL1l3NzZ6c0IzVHJPcjc1N3ZyY3lNUDV3ZUtrREJxQzll?=
 =?utf-8?B?OVQzTkV6Y2l6ZndnNE9rZHg2eldMVHptOTdQU3VLVm51ZmNvR0JrWTNMMHhP?=
 =?utf-8?B?c3RKc0YvY0VRdDNTZGJoL1dQWWJiK1JYMldERldZVENWKzNqV2ZzK2lTMGZt?=
 =?utf-8?B?U0w1TUhRZVVLejhSejJISjJWSC9BQ1pzMWRRZ2MxSVdVZnl1RXdlY2xVcnIx?=
 =?utf-8?B?M3I0UXV0cE1ndERiVjM1UlFtK1RIUUlyNTE3Z0xGY2UybzY0VVp0cVJzV2FG?=
 =?utf-8?B?aTI4MUtISlZhdE8zMjJRYm1jV2hPY3hkc29NWDVTYlNPQjFFcDVMQVVFZUw0?=
 =?utf-8?B?c0VMWEtZZkZmYmhNWDhWSVFYS0VZdWVDSk9mdTN3djBFK2hYN3FRVXBWY25p?=
 =?utf-8?Q?+G9sNMX0TTklx?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN9PR12MB5273.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?SjY4VGlaU2dpMmtWcGZXVWZwRFhUcThhWitaWlRqeHdqblphYTBxOU9hOVB0?=
 =?utf-8?B?QUs2ZkVQb1M3WEROaWsvRHFOR0NPZ1dFUzZkcEZJRU5XMUpYK3BrRVNveXdJ?=
 =?utf-8?B?WnIrYTVoZUo4bzBpSkw2TFd3QlJ4RDl6L2YxVm5kdjBIeHdZdnArQVk1RXY5?=
 =?utf-8?B?UE1EL1FXOEkzQjhvYkt3ZnJRZkhFdm9KN0kzUkZjelFtK3MzYUVOdXphQ3hX?=
 =?utf-8?B?SGpRRUhvdU9YWDg0eHZobWtjVVdZS2lCcDN4ZklIVzVRU3NtVkhHOUs3NmZN?=
 =?utf-8?B?aWdEcXppUDJLOUVqcXlReVY5dFFOcEptVlZRZDFEUXVCdXM1Qk5WRjZwSGRO?=
 =?utf-8?B?d09OaG90ckQ5U1VmOURjM3VYSmVOYUdnZTViT2ZnMlA2cjIyd09RbHVZSUtL?=
 =?utf-8?B?Z3pwNC9GME5XQm5EcElVeDhDTDRwRHovdGMwM0xXcmhYZ1JEWFFNS2J6SGtX?=
 =?utf-8?B?bWtVd3FGRWVkYnpkZGk0cm9tVU9XVUY1ajF2TjBHbGlvRkw5MGN0SEczS0N3?=
 =?utf-8?B?aGxkb0Z6WWxCZ09zSHNQUVA2Nk0xSEdiT281aWZub2tTd0VEcVZFS1hvTjlv?=
 =?utf-8?B?NllwVVlRSiswT3lvUWRNVUo4eS93MmNCdzhEeXV1Kzlyc0dFancvSGxhakM4?=
 =?utf-8?B?U1AxcUk5ZXNXejEyOERjeXRIb1c3S3d1RlE4QmhtUzVHUTVFYVoxcXptVjJW?=
 =?utf-8?B?N2VCdTJ2U3kzVXh6UnpjdUlhVWMzNHpPVkRHTHNHWUdoSU9rbitUZGllbUZr?=
 =?utf-8?B?eUpUc3hSV3QvaCtRanQyVHdCNHQyUTh4RFdHb3NZT09HdGRkTmRhbXlIcEF6?=
 =?utf-8?B?bEY0Z25ueVNqMWVlQ0k3dms3anVoU3JOKzk2WGZ5a3VTM2lGdVN2bHJpSFlZ?=
 =?utf-8?B?UTNpN2VuSkVEU1dGSXFWVWVPVHdaTjJWamQxZ2tWRnlORFRmS29kQnNhcUE2?=
 =?utf-8?B?OWNkZVQvMVNGS05ieU1MNkxBdGJXQjNEeHNsck5Md202eWFZNGdoRFgvWUhB?=
 =?utf-8?B?R1dLY1lPU2ZTdGVsV2hKa0lXV0hka3FYWWM5UERMSXlRM2ZJbXdYaWVvckNC?=
 =?utf-8?B?WkJjaXEvWTJLWFJ3bXlKek1NU3g2cXJyY0luZlB3M2RnZEc0WjhxUks3eGRy?=
 =?utf-8?B?K3htZWtsNHlucG9BSlBxYmxEWHdMb2l4bndIdEJTYm5RUUFvMlhaYTBpbTJ4?=
 =?utf-8?B?cWRsWERwSkRjTlpPWWVEb1J5TU9TbnBhQ2IvLzZ3OVZrTi9NUUtKQjd2K3lx?=
 =?utf-8?B?K1ZBaUtoejVuTUl6WTgxRGFETnUrYXhjWi9SNFBkYksycU1FaVpBWmJvaTJL?=
 =?utf-8?B?UGNjWlcwNmUvV3pyNmpVUHlMeER2eGJiTnAxbmtvUUpJR2FYZmVudFVaRHNI?=
 =?utf-8?B?MGtKVmR6RXlTUG9kS1VTV1AyTlhWVVI4Qk9lWnc5RTBpVDdHdUpYNEw0SWRY?=
 =?utf-8?B?ZklCT29KbFc0eGVVNENkbkI4TDg4MXR1NU5BWkNHUVhsT3VDbDhlbUR0eita?=
 =?utf-8?B?bmYxbmpCaFU0SFdiU0gzQUFoMmxqU2c5OCtCbmF2Z1ZJSm5waG1EdXRvbEVX?=
 =?utf-8?B?dDZISEtlK1YxQjZWcUVOdmd6VExaVVpLQ3RTTWhyUU85WExQRjZvcWtiTDNV?=
 =?utf-8?B?UGtRTDZ2enRYdk9sNDRyQTVaVTd3aFJhRzhiYkJpcVRkRzJ0Wkk0akFQQWJE?=
 =?utf-8?B?N2VWdUwrbmpwdTYzV2h0U0dPZTY1cFBGeEZLOWxPcDJEL3hnYW10WHJGa2VF?=
 =?utf-8?B?dS95and3S2RLQ1dVanFYei9rbk5TZ1JKc3Z5eUd0MXp2Qk1nZVloUEtMcWM0?=
 =?utf-8?B?RG1RODlTcFlFSFp1bFhHMlBNVkhoRTVxc29SU01xdXJRV2tuQW1IQkh2TkV2?=
 =?utf-8?B?WDNjSE8xN0dkbUR1WERIUWxnVHFJOFFhdmhURlFCSENaUVRGTTB2K3NUNEFM?=
 =?utf-8?B?VE9xbUt4RWJwc2tqa1RsdjFMajFpYVliRkxWa2hoaVh1R0EzZVRGc2NXVkY0?=
 =?utf-8?B?c0tLQVpSNjFaaFUvWWxNYnhad3BLSGhXK3VrSUM0ckFRUVhvMWlEVTc0UmlT?=
 =?utf-8?B?bmhHcnZ6R2lqK0lORXdwRk9IT3FhM3Uyd3lrNm9ka0pUSENpMU5KbGw3RUdk?=
 =?utf-8?Q?fMv7hL4NkOuNY6Co/IHEnIszI?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 17b78d90-f4f0-4d24-a973-08dd75b33226
X-MS-Exchange-CrossTenant-AuthSource: BN9PR12MB5273.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Apr 2025 09:04:25.9334
 (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: iyt/ut8DaHGsFR8u9V5ihA9aZQUI3yVa2Ru9/xAptGl/imyHkAbIxgLtuiHw9PUA
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR12MB7930



On 03/04/2025 19:12, Ayan Kumar Halder wrote:
> Added a new file prepare_xen_region.inc to hold the common earlyboot MPU regions
> configurations across arm64 and arm32.
> 
> prepare_xen_region, fail_insufficient_regions() will be used by both arm32 and
> arm64. Thus, they have been moved to prepare_xen_region.inc.
> 
> enable_secondary_cpu_mm() is a stub which is moved to prepare_xen_region.inc as
> SMP is currently not supported for MPU.
This does not sound right. If you want a place to keep some common MPU stuff
between Arm64 and Arm32, you need to come up with better name for a file. SMP
has nothing to do here with preparing regions so it feels odd to have
enable_secondary_cpu_mm stub there.

Also, new files should use dashes '-' and not underscores '_'.

~Michal



From xen-devel-bounces@lists.xenproject.org Mon Apr 07 09:10:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 09:10:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.939377.1339494 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1iUy-0001cx-Vd; Mon, 07 Apr 2025 09:10:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 939377.1339494; Mon, 07 Apr 2025 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 1u1iUy-0001c5-O4; Mon, 07 Apr 2025 09:10:32 +0000
Received: by outflank-mailman (input) for mailman id 939377;
 Mon, 07 Apr 2025 09:10: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=ce6F=WZ=bounce.vates.tech=bounce-md_30504962.67f3967b.v1-c5ef68a9a2074266bf125fcf11b16254@srs-se1.protection.inumbo.net>)
 id 1u1iUx-0001aP-FE
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 09:10:31 +0000
Received: from mail180-44.suw31.mandrillapp.com
 (mail180-44.suw31.mandrillapp.com [198.2.180.44])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 216e466d-1390-11f0-9ffb-bf95429c2676;
 Mon, 07 Apr 2025 11:10:21 +0200 (CEST)
Received: from pmta11.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail180-44.suw31.mandrillapp.com (Mailchimp) with ESMTP id
 4ZWNhq72ybz705bVv
 for <xen-devel@lists.xenproject.org>; Mon,  7 Apr 2025 09:10:19 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 c5ef68a9a2074266bf125fcf11b16254; Mon, 07 Apr 2025 09:10: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: 216e466d-1390-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1744017020; x=1744287020;
	bh=Ag0QvX9RrV+2ndlKT4tnfWKeibUNiDhExdNratcqL1I=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=gVnEV8CbUN4W1jqbxU9pEG7DzLYMqopXF0aEgwuR29FRdHCtcdsf0JOFKp6JhNKsN
	 ovd2iqGAoXfBLXdNpFyewknhP4bnV3FzIrcgidfS5oaLjWJU6ZiTQdRQC9GddtHkBx
	 fbQQ/9w82gd0YUrvBjdCndiwNcj0OWjDrpW+BmzYPa2UT0QZT8WqftikyRaBDbLgku
	 rekl8ylNP+5QS1B/4elIFEqeMrtFUdSTXxzBcPkOUcEubLf8zhKEEDWyG68zPVmYNa
	 a9LYUfs+hMjdJq+vq7AaYKDAHbGTxALueAKbLj1hxrBgWlfCw1+yiNpcxfPOrEtapL
	 q0rYk9BmjGl7A==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1744017020; x=1744277520; i=teddy.astie@vates.tech;
	bh=Ag0QvX9RrV+2ndlKT4tnfWKeibUNiDhExdNratcqL1I=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=Nnx8+Aaq75zE7tMcrcQ8iKxvAxFTNsMCzxFBbbBBGt+6RgNMGaX2mC0OvXNd8iBrn
	 g9fIlqovAEc+P4+dkTx902neDSZdHTpV56hn7jQqkahULRDIkWPYlrG8X+BDlwOpKk
	 wLu9GhgMskEvncqf/tbq5GNBnEpGnM3QQfYKLNWnzJg0k4g/vk9CN/sygDs/R8Uqqc
	 ScIFHybRFePbSf3+CCOv0NWq/4gixut2LkYOf1YY2/fu68KRvZUC02Vz0epORqkFvt
	 EfapjSkixzoy0fBLTS5xjharJgIwc+hgHRJ40PoN+iRfepOaEUtCC9PEUrelcLLMB9
	 tXpf2IXoJGZmg==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[PATCH=20v3.1=201/2]=20x86/amd:=20Add=20guest=20support=20for=20AMD=20TCE?=
X-Mailer: git-send-email 2.47.2
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1744017018571
To: xen-devel@lists.xenproject.org
Cc: "Teddy Astie" <teddy.astie@vates.tech>, "Oleksii Kurochko" <oleksii.kurochko@gmail.com>, "Community Manager" <community.manager@xenproject.org>, "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: <2bac0ded3456e04b49b48cf0808203e76fc6a622.1743771654.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.c5ef68a9a2074266bf125fcf11b16254?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250407:md
Date: Mon, 07 Apr 2025 09:10:19 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

AMD Translation Cache Extension is a flag that can be enabled in the EFER MSR to optimize
some TLB flushes. Expose this flag to guest if supported by hardware. This flag can be
used by Linux since version 6.14.

Only expose this feature to HAP-enabled guests. Guests with shadow paging guests have
their TLB flush operations intercepted and handled separately, without taking account
to this flag. PV guest follows Xen TLB flush behavior.

Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
---
v3:
 - hide from PV guests
 - review commit description
v3.1:
 - added Linux support note
---
 CHANGELOG.md                                | 1 +
 xen/arch/x86/hvm/hvm.c                      | 3 +++
 xen/arch/x86/include/asm/msr-index.h        | 3 ++-
 xen/arch/x86/pv/emul-priv-op.c              | 4 ++--
 xen/include/public/arch-x86/cpufeatureset.h | 1 +
 5 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 8f6afa5c85..dbfecefbd4 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -18,6 +18,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
    - Support PCI passthrough for HVM domUs when dom0 is PVH (note SR-IOV
      capability usage is not yet supported on PVH dom0).
    - Smoke tests for the FreeBSD Xen builds in Cirrus CI.
+   - Guest support for AMD Translation Cache Extension feature.
 
 ### Removed
 
diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index 5950f3160f..184357b042 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -959,6 +959,9 @@ const char *hvm_efer_valid(const struct vcpu *v, uint64_t value,
     if ( (value & EFER_FFXSE) && !p->extd.ffxsr )
         return "FFXSE without feature";
 
+    if ( (value & EFER_TCE) && !p->extd.tce )
+        return "TCE without feature";
+
     if ( (value & EFER_AIBRSE) && !p->extd.auto_ibrs )
         return "AutoIBRS without feature";
 
diff --git a/xen/arch/x86/include/asm/msr-index.h b/xen/arch/x86/include/asm/msr-index.h
index 22d9e76e55..d8576aec1c 100644
--- a/xen/arch/x86/include/asm/msr-index.h
+++ b/xen/arch/x86/include/asm/msr-index.h
@@ -200,11 +200,12 @@
 #define  EFER_NXE                           (_AC(1, ULL) << 11) /* No Execute Enable */
 #define  EFER_SVME                          (_AC(1, ULL) << 12) /* Secure Virtual Machine Enable */
 #define  EFER_FFXSE                         (_AC(1, ULL) << 14) /* Fast FXSAVE/FXRSTOR */
+#define  EFER_TCE                           (_AC(1, ULL) << 15) /* Translation Cache Extensions */
 #define  EFER_AIBRSE                        (_AC(1, ULL) << 21) /* Automatic IBRS Enable */
 
 #define EFER_KNOWN_MASK \
     (EFER_SCE | EFER_LME | EFER_LMA | EFER_NXE | EFER_SVME | EFER_FFXSE | \
-     EFER_AIBRSE)
+     EFER_TCE | EFER_AIBRSE)
 
 #define MSR_STAR                            _AC(0xc0000081, U) /* legacy mode SYSCALL target */
 #define MSR_LSTAR                           _AC(0xc0000082, U) /* long mode SYSCALL target */
diff --git a/xen/arch/x86/pv/emul-priv-op.c b/xen/arch/x86/pv/emul-priv-op.c
index 70150c2722..531228b2da 100644
--- a/xen/arch/x86/pv/emul-priv-op.c
+++ b/xen/arch/x86/pv/emul-priv-op.c
@@ -857,8 +857,8 @@ static uint64_t guest_efer(const struct domain *d)
 {
     uint64_t val;
 
-    /* Hide unknown bits, and unconditionally hide SVME and AIBRSE from guests. */
-    val = read_efer() & EFER_KNOWN_MASK & ~(EFER_SVME | EFER_AIBRSE);
+    /* Hide unknown bits, and unconditionally hide SVME, TCE and AIBRSE from guests. */
+    val = read_efer() & EFER_KNOWN_MASK & ~(EFER_SVME | EFER_TCE | EFER_AIBRSE);
     /*
      * Hide the 64-bit features from 32-bit guests.  SCE has
      * vendor-dependent behaviour.
diff --git a/xen/include/public/arch-x86/cpufeatureset.h b/xen/include/public/arch-x86/cpufeatureset.h
index cc6e984a88..8182d2dbed 100644
--- a/xen/include/public/arch-x86/cpufeatureset.h
+++ b/xen/include/public/arch-x86/cpufeatureset.h
@@ -170,6 +170,7 @@ XEN_CPUFEATURE(SKINIT,        3*32+12) /*   SKINIT/STGI instructions */
 XEN_CPUFEATURE(WDT,           3*32+13) /*   Watchdog timer */
 XEN_CPUFEATURE(LWP,           3*32+15) /*   Light Weight Profiling */
 XEN_CPUFEATURE(FMA4,          3*32+16) /*A  4 operands MAC instructions */
+XEN_CPUFEATURE(TCE,           3*32+17) /*H  Translation Cache Extension support */
 XEN_CPUFEATURE(NODEID_MSR,    3*32+19) /*   NodeId MSR */
 XEN_CPUFEATURE(TBM,           3*32+21) /*A  trailing bit manipulations */
 XEN_CPUFEATURE(TOPOEXT,       3*32+22) /*   topology extensions CPUID leafs */
-- 
2.47.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 Apr 07 09:10:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 09:10:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.939376.1339488 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1iUy-0001ai-Ki; Mon, 07 Apr 2025 09:10:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 939376.1339488; Mon, 07 Apr 2025 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 1u1iUy-0001ab-Ha; Mon, 07 Apr 2025 09:10:32 +0000
Received: by outflank-mailman (input) for mailman id 939376;
 Mon, 07 Apr 2025 09:10: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=QTTe=WZ=bounce.vates.tech=bounce-md_30504962.67f3967b.v1-195b7146c3954566ad5414a0ab3af972@srs-se1.protection.inumbo.net>)
 id 1u1iUw-0001aP-Qh
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 09:10:30 +0000
Received: from mail186-2.suw21.mandrillapp.com
 (mail186-2.suw21.mandrillapp.com [198.2.186.2])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 216d8640-1390-11f0-9ffb-bf95429c2676;
 Mon, 07 Apr 2025 11:10:21 +0200 (CEST)
Received: from pmta10.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail186-2.suw21.mandrillapp.com (Mailchimp) with ESMTP id 4ZWNhq6lyszS62H0K
 for <xen-devel@lists.xenproject.org>; Mon,  7 Apr 2025 09:10:19 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 195b7146c3954566ad5414a0ab3af972; Mon, 07 Apr 2025 09:10: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: 216d8640-1390-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1744017019; x=1744287019;
	bh=3mj+1l3uD/Tj6ZfpS4cBiMYot52BcXKtmM6A5duhFng=;
	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=wKTVV0KaFNAdyr5X5UAuTO5htsnb0JK/mO+1+bnCs75X78OBzh27aBSFe+5964YkF
	 oBaRdtvNjbAwZcxD1YGlfkK8O4kph8OchqKOHub9LWftN2Prbk7IJq3KXNJfST0qD1
	 qm5c7wJPsBzUOtGSTSBGQVmb6OL74bAtVxOVRLKuJn+pLsEpsNqm7P48VI9VHMajhK
	 eMjWdXh16gNLde3eZsIlZfzXLJZa+lR+TjVEb0r5ikngM6QtEZD9TcvOWyzzvXa0dO
	 F5k/eu1YOgpKdUwhxHwOSo0Ko3ggraWtL/7AX/Wcz7V/jclamapi09dS8sVDmz5YjZ
	 Cbu48nW0P8OEA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1744017019; x=1744277519; i=teddy.astie@vates.tech;
	bh=3mj+1l3uD/Tj6ZfpS4cBiMYot52BcXKtmM6A5duhFng=;
	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=jq7ZJMm9Yzq74QVbliGEldRiHzHVJWb6I9FV1Hc7prY4It8DqqdE/DQgEmd9xlYja
	 GfapP1Sd+EX5sgkYofPkfEJsEH9ik+6jB4mzuvP3OnkIpxryzEciAzoAsWhtzGVV4K
	 VbBWIpnqV/vi/gqx1Uu+gmmtl1nnOZvba859QkS7UJugYDKXFnvS/XcToRIZ9cquG6
	 QFnb3ATJcw678XWov5z//ddj1DX9uiALIYF5NYGXIOYTW46gUWiH4U3DKJjZenwg3R
	 QNq5gYeITujiJUexKwE6cfwudOpa6maiRJEFNQG0gftEEE+5lZ84x3GcCrnvCrTtV3
	 mv1lppYtdHasg==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[PATCH=20v3.1=202/2]=20x86/amd:=20Enable=20TCE=20in=20Xen?=
X-Mailer: git-send-email 2.47.2
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1744017019020
To: xen-devel@lists.xenproject.org
Cc: "Teddy Astie" <teddy.astie@vates.tech>, "Oleksii Kurochko" <oleksii.kurochko@gmail.com>, "Community Manager" <community.manager@xenproject.org>, "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: <79b08632b74dc13b8c399003eb76d198cb73ac32.1743771654.git.teddy.astie@vates.tech>
In-Reply-To: <2bac0ded3456e04b49b48cf0808203e76fc6a622.1743771654.git.teddy.astie@vates.tech>
References: <2bac0ded3456e04b49b48cf0808203e76fc6a622.1743771654.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.195b7146c3954566ad5414a0ab3af972?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250407:md
Date: Mon, 07 Apr 2025 09:10:19 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Aside exposing this flag to guests, Xen can also make use of it to reduce the cost of
some TLB flushes. Enable this flag if supported by hardware.

Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
---
v2:
 - Add changelog entry
 - use trampoline_efer
 - use cpu_has_tce instead of opencoded boot_cpu_has(X86_FEATURE_TCE)
v3:
 - drop message
 - use bootsym for modifying trampoline_efer
---
 CHANGELOG.md                          | 2 +-
 xen/arch/x86/include/asm/cpufeature.h | 1 +
 xen/arch/x86/setup.c                  | 6 ++++++
 3 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index dbfecefbd4..375905e68a 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -18,7 +18,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
    - Support PCI passthrough for HVM domUs when dom0 is PVH (note SR-IOV
      capability usage is not yet supported on PVH dom0).
    - Smoke tests for the FreeBSD Xen builds in Cirrus CI.
-   - Guest support for AMD Translation Cache Extension feature.
+   - Guest and Xen support for AMD Translation Cache Extension feature.
 
 ### Removed
 
diff --git a/xen/arch/x86/include/asm/cpufeature.h b/xen/arch/x86/include/asm/cpufeature.h
index 05399fb9c9..ab6d07b767 100644
--- a/xen/arch/x86/include/asm/cpufeature.h
+++ b/xen/arch/x86/include/asm/cpufeature.h
@@ -114,6 +114,7 @@ static inline bool boot_cpu_has(unsigned int feat)
 #define cpu_has_xop             boot_cpu_has(X86_FEATURE_XOP)
 #define cpu_has_skinit          boot_cpu_has(X86_FEATURE_SKINIT)
 #define cpu_has_fma4            boot_cpu_has(X86_FEATURE_FMA4)
+#define cpu_has_tce             boot_cpu_has(X86_FEATURE_TCE)
 #define cpu_has_tbm             boot_cpu_has(X86_FEATURE_TBM)
 
 /* CPUID level 0x0000000D:1.eax */
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index d70abb7e0c..9b1924ad05 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -2008,6 +2008,12 @@ void asmlinkage __init noreturn __start_xen(void)
     if ( cpu_has_pku )
         set_in_cr4(X86_CR4_PKE);
 
+    if ( cpu_has_tce )
+    {
+        write_efer(read_efer() | EFER_TCE);
+        bootsym(trampoline_efer) |= EFER_TCE;
+    }
+
     if ( opt_invpcid && cpu_has_invpcid )
         use_invpcid = true;
 
-- 
2.47.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 Apr 07 09:14:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 09:14:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.939426.1339508 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1iZ1-0003yM-GE; Mon, 07 Apr 2025 09:14:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 939426.1339508; Mon, 07 Apr 2025 09: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 1u1iZ1-0003yF-Cz; Mon, 07 Apr 2025 09:14:43 +0000
Received: by outflank-mailman (input) for mailman id 939426;
 Mon, 07 Apr 2025 09:14: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=U9Ey=WZ=arm.com=luca.fancellu@srs-se1.protection.inumbo.net>)
 id 1u1iYz-0003xw-TU
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 09:14:41 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id bb88d894-1390-11f0-9ffb-bf95429c2676;
 Mon, 07 Apr 2025 11:14:39 +0200 (CEST)
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 F2FEA106F;
 Mon,  7 Apr 2025 02:14:39 -0700 (PDT)
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 BECDB3F59E;
 Mon,  7 Apr 2025 02:14:37 -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: bb88d894-1390-11f0-9ffb-bf95429c2676
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 0/7] First chunk for Arm R82 and MPU support
Date: Mon,  7 Apr 2025 10:14:23 +0100
Message-Id: <20250407091430.2342709-1-luca.fancellu@arm.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Hi all,

This is the first chunk of work to support MPU and R82 on Xen, this serie
reaches the early boot stages until setup_pagetables() which is not used for MPU
but it is just to give an idea about which stage of the boot is reached.

v2 changes for this serie:
 - rebased serie on the MPU skeleton that allow compilation
 - removed some patches already merged in the MPU skeleton

Luca Fancellu (6):
  arm/mpu: Provide access to the MPU region from the C code
  arm/mpu: Introduce utility functions for the pr_t type
  arm/mpu: Provide a constructor for pr_t type
  arm/mpu: Introduce MPU memory mapping flags
  arm/mpu: Implement early_fdt_map support in MPU systems
  arm/mpu: Implement setup_mpu for MPU system

Penny Zheng (1):
  arm/mpu: Introduce MPU memory region map structure

 xen/arch/arm/include/asm/arm64/mpu.h |  57 ++++++
 xen/arch/arm/include/asm/mpu.h       |  50 ++++++
 xen/arch/arm/include/asm/mpu/mm.h    |  27 +++
 xen/arch/arm/include/asm/page.h      |  25 +++
 xen/arch/arm/mpu/mm.c                | 253 ++++++++++++++++++++++++++-
 xen/arch/arm/mpu/setup.c             |  54 +++++-
 6 files changed, 463 insertions(+), 3 deletions(-)
 create mode 100644 xen/arch/arm/include/asm/arm64/mpu.h

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Apr 07 09:14:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 09:14:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.939427.1339513 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1iZ1-00041a-PU; Mon, 07 Apr 2025 09:14:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 939427.1339513; Mon, 07 Apr 2025 09: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 1u1iZ1-0003zu-K3; Mon, 07 Apr 2025 09:14:43 +0000
Received: by outflank-mailman (input) for mailman id 939427;
 Mon, 07 Apr 2025 09: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=U9Ey=WZ=arm.com=luca.fancellu@srs-se1.protection.inumbo.net>)
 id 1u1iZ0-0003xy-5r
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 09:14:42 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id bc8a70e4-1390-11f0-9eaa-5ba50f476ded;
 Mon, 07 Apr 2025 11:14:41 +0200 (CEST)
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 9EF1C1424;
 Mon,  7 Apr 2025 02:14:41 -0700 (PDT)
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 0F64C3F59E;
 Mon,  7 Apr 2025 02:14:38 -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: bc8a70e4-1390-11f0-9eaa-5ba50f476ded
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>,
	Penny Zheng <penny.zheng@arm.com>,
	Wei Chen <wei.chen@arm.com>
Subject: [PATCH v2 1/7] arm/mpu: Introduce MPU memory region map structure
Date: Mon,  7 Apr 2025 10:14:24 +0100
Message-Id: <20250407091430.2342709-2-luca.fancellu@arm.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250407091430.2342709-1-luca.fancellu@arm.com>
References: <20250407091430.2342709-1-luca.fancellu@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Penny Zheng <Penny.Zheng@arm.com>

Introduce pr_t typedef which is a structure having the prbar
and prlar members, each being structured as the registers of
the aarch64 armv8-r architecture.

Introduce the array 'xen_mpumap' that will store a view of
the content of the MPU regions.

Introduce MAX_MPU_REGIONS macro that uses the value of
NUM_MPU_REGIONS_MASK just for clarity, because using the
latter as number of elements of the xen_mpumap array might
be misleading.

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>
---
 xen/arch/arm/include/asm/arm64/mpu.h | 44 ++++++++++++++++++++++++++++
 xen/arch/arm/include/asm/mpu.h       |  5 ++++
 xen/arch/arm/mpu/mm.c                |  4 +++
 3 files changed, 53 insertions(+)
 create mode 100644 xen/arch/arm/include/asm/arm64/mpu.h

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 000000000000..4d2bd7d7877f
--- /dev/null
+++ b/xen/arch/arm/include/asm/arm64/mpu.h
@@ -0,0 +1,44 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * mpu.h: Arm Memory Protection Unit definitions for aarch64.
+ */
+
+#ifndef __ARM_ARM64_MPU_H__
+#define __ARM_ARM64_MPU_H__
+
+#ifndef __ASSEMBLY__
+
+/* Protection Region Base Address Register */
+typedef union {
+    struct __packed {
+        unsigned long xn:2;       /* Execute-Never */
+        unsigned long ap:2;       /* Acess Permission */
+        unsigned long sh:2;       /* Sharebility */
+        unsigned long base:46;    /* Base Address */
+        unsigned long pad:12;
+    } reg;
+    uint64_t bits;
+} prbar_t;
+
+/* Protection Region Limit Address Register */
+typedef union {
+    struct __packed {
+        unsigned long en:1;     /* Region enable */
+        unsigned long ai:3;     /* Memory Attribute Index */
+        unsigned long ns:1;     /* Not-Secure */
+        unsigned long res:1;    /* Reserved 0 by hardware */
+        unsigned long limit:46; /* Limit Address */
+        unsigned long pad:12;
+    } reg;
+    uint64_t bits;
+} prlar_t;
+
+/* MPU Protection Region */
+typedef struct {
+    prbar_t prbar;
+    prlar_t prlar;
+} pr_t;
+
+#endif /* __ASSEMBLY__ */
+
+#endif /* __ARM_ARM64_MPU_H__ */
\ No newline at end of file
diff --git a/xen/arch/arm/include/asm/mpu.h b/xen/arch/arm/include/asm/mpu.h
index d4ec4248b62b..e148c705b82c 100644
--- a/xen/arch/arm/include/asm/mpu.h
+++ b/xen/arch/arm/include/asm/mpu.h
@@ -6,6 +6,10 @@
 #ifndef __ARM_MPU_H__
 #define __ARM_MPU_H__
 
+#if defined(CONFIG_ARM_64)
+# include <asm/arm64/mpu.h>
+#endif
+
 #define MPU_REGION_SHIFT  6
 #define MPU_REGION_ALIGN  (_AC(1, UL) << MPU_REGION_SHIFT)
 #define MPU_REGION_MASK   (~(MPU_REGION_ALIGN - 1))
@@ -13,6 +17,7 @@
 #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)
+#define MAX_MPU_REGIONS         NUM_MPU_REGIONS_MASK
 
 #endif /* __ARM_MPU_H__ */
 
diff --git a/xen/arch/arm/mpu/mm.c b/xen/arch/arm/mpu/mm.c
index 07c8959f4ee9..f83ce04fef8a 100644
--- a/xen/arch/arm/mpu/mm.c
+++ b/xen/arch/arm/mpu/mm.c
@@ -7,9 +7,13 @@
 #include <xen/mm.h>
 #include <xen/sizes.h>
 #include <xen/types.h>
+#include <asm/mpu.h>
 
 struct page_info *frame_table;
 
+/* EL2 Xen MPU memory region mapping table. */
+pr_t xen_mpumap[MAX_MPU_REGIONS];
+
 static void __init __maybe_unused build_assertions(void)
 {
     /*
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Apr 07 09:14:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 09:14:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.939428.1339528 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1iZ2-0004Qb-V0; Mon, 07 Apr 2025 09:14:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 939428.1339528; Mon, 07 Apr 2025 09: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 1u1iZ2-0004QU-Rp; Mon, 07 Apr 2025 09:14:44 +0000
Received: by outflank-mailman (input) for mailman id 939428;
 Mon, 07 Apr 2025 09:14: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=U9Ey=WZ=arm.com=luca.fancellu@srs-se1.protection.inumbo.net>)
 id 1u1iZ1-0003xy-5c
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 09:14:43 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id bd4621aa-1390-11f0-9eaa-5ba50f476ded;
 Mon, 07 Apr 2025 11:14:42 +0200 (CEST)
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 E217A1BF3;
 Mon,  7 Apr 2025 02:14:42 -0700 (PDT)
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 AFE5C3F59E;
 Mon,  7 Apr 2025 02:14: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: bd4621aa-1390-11f0-9eaa-5ba50f476ded
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/7] arm/mpu: Provide access to the MPU region from the C code
Date: Mon,  7 Apr 2025 10:14:25 +0100
Message-Id: <20250407091430.2342709-3-luca.fancellu@arm.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250407091430.2342709-1-luca.fancellu@arm.com>
References: <20250407091430.2342709-1-luca.fancellu@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Implement some utility function in order to access the MPU regions
from the C world.

Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
---
 xen/arch/arm/include/asm/mpu.h    |   1 +
 xen/arch/arm/include/asm/mpu/mm.h |  24 ++++++
 xen/arch/arm/mpu/mm.c             | 127 ++++++++++++++++++++++++++++++
 3 files changed, 152 insertions(+)

diff --git a/xen/arch/arm/include/asm/mpu.h b/xen/arch/arm/include/asm/mpu.h
index e148c705b82c..59ff22c804c1 100644
--- a/xen/arch/arm/include/asm/mpu.h
+++ b/xen/arch/arm/include/asm/mpu.h
@@ -13,6 +13,7 @@
 #define MPU_REGION_SHIFT  6
 #define MPU_REGION_ALIGN  (_AC(1, UL) << MPU_REGION_SHIFT)
 #define MPU_REGION_MASK   (~(MPU_REGION_ALIGN - 1))
+#define MPU_REGION_RES0   (0xFFFULL << 52)
 
 #define NUM_MPU_REGIONS_SHIFT   8
 #define NUM_MPU_REGIONS         (_AC(1, UL) << NUM_MPU_REGIONS_SHIFT)
diff --git a/xen/arch/arm/include/asm/mpu/mm.h b/xen/arch/arm/include/asm/mpu/mm.h
index 86f33d9836b7..5cabe9d111ce 100644
--- a/xen/arch/arm/include/asm/mpu/mm.h
+++ b/xen/arch/arm/include/asm/mpu/mm.h
@@ -8,6 +8,7 @@
 #include <xen/page-size.h>
 #include <xen/types.h>
 #include <asm/mm.h>
+#include <asm/mpu.h>
 
 extern struct page_info *frame_table;
 
@@ -29,6 +30,29 @@ static inline struct page_info *virt_to_page(const void *v)
     return mfn_to_page(mfn);
 }
 
+/* Utility function to be used whenever MPU regions are modified */
+static inline void context_sync_mpu(void)
+{
+    /*
+     * ARM DDI 0600B.a, C1.7.1
+     * Writes to MPU registers are only guaranteed to be visible following a
+     * Context synchronization event and DSB operation.
+     */
+    dsb(sy);
+    isb();
+}
+
+/*
+ * The following API require context_sync_mpu() after being used to modifiy MPU
+ * regions:
+ *  - write_protection_region
+ */
+
+/* Reads the MPU region with index 'sel' from the HW */
+extern void read_protection_region(pr_t *pr_read, uint8_t sel);
+/* Writes the MPU region with index 'sel' to the HW */
+extern void write_protection_region(const pr_t *pr_write, uint8_t sel);
+
 #endif /* __ARM_MPU_MM_H__ */
 
 /*
diff --git a/xen/arch/arm/mpu/mm.c b/xen/arch/arm/mpu/mm.c
index f83ce04fef8a..bf281f67fb6b 100644
--- a/xen/arch/arm/mpu/mm.c
+++ b/xen/arch/arm/mpu/mm.c
@@ -8,12 +8,34 @@
 #include <xen/sizes.h>
 #include <xen/types.h>
 #include <asm/mpu.h>
+#include <asm/mpu/mm.h>
+#include <asm/sysregs.h>
 
 struct page_info *frame_table;
 
 /* EL2 Xen MPU memory region mapping table. */
 pr_t xen_mpumap[MAX_MPU_REGIONS];
 
+/* The following are needed for the case generator with num==0 */
+#define PRBAR0_EL2 PRBAR_EL2
+#define PRLAR0_EL2 PRLAR_EL2
+
+#define GENERATE_WRITE_PR_REG_CASE(num, pr)                                 \
+    case num:                                                               \
+    {                                                                       \
+        WRITE_SYSREG(pr->prbar.bits & ~MPU_REGION_RES0, PRBAR##num##_EL2);  \
+        WRITE_SYSREG(pr->prlar.bits & ~MPU_REGION_RES0, PRLAR##num##_EL2);  \
+        break;                                                              \
+    }
+
+#define GENERATE_READ_PR_REG_CASE(num, pr)                      \
+    case num:                                                   \
+    {                                                           \
+        pr->prbar.bits = READ_SYSREG(PRBAR##num##_EL2);         \
+        pr->prlar.bits = READ_SYSREG(PRLAR##num##_EL2);         \
+        break;                                                  \
+    }
+
 static void __init __maybe_unused build_assertions(void)
 {
     /*
@@ -24,6 +46,111 @@ static void __init __maybe_unused build_assertions(void)
     BUILD_BUG_ON(PAGE_SIZE != SZ_4K);
 }
 
+static void prepare_selector(uint8_t sel)
+{
+    /*
+     * {read,write}_protection_region works using the direct access to the 0..15
+     * regions, so in order to save the isb() overhead, change the PRSELR_EL2
+     * only when needed, so when the upper 4 bits of the selector will change.
+     */
+    sel &= 0xF0U;
+    if ( READ_SYSREG(PRSELR_EL2) != sel )
+    {
+        WRITE_SYSREG(sel, PRSELR_EL2);
+        isb();
+    }
+}
+
+/*
+ * Armv8-R AArch64 at most supports 255 MPU protection regions.
+ * See section G1.3.18 of the reference manual for Armv8-R AArch64,
+ * PRBAR<n>_EL2 and PRLAR<n>_EL2 provide access to the EL2 MPU region
+ * determined by the value of 'n' and PRSELR_EL2.REGION as
+ * PRSELR_EL2.REGION<7:4>:n(n = 0, 1, 2, ... , 15)
+ * For example to access regions from 16 to 31 (0b10000 to 0b11111):
+ * - Set PRSELR_EL2 to 0b1xxxx
+ * - Region 16 configuration is accessible through PRBAR_EL2 and PRLAR_EL2
+ * - Region 17 configuration is accessible through PRBAR1_EL2 and PRLAR1_EL2
+ * - Region 18 configuration is accessible through PRBAR2_EL2 and PRLAR2_EL2
+ * - ...
+ * - Region 31 configuration is accessible through PRBAR15_EL2 and PRLAR15_EL2
+ */
+/*
+ * Read EL2 MPU Protection Region.
+ *
+ * @pr_read: mpu protection region returned by read op.
+ * @sel: mpu protection region selector
+ */
+void read_protection_region(pr_t *pr_read, uint8_t sel)
+{
+    /*
+     * Before accessing EL2 MPU region register PRBAR_EL2/PRLAR_EL2,
+     * make sure PRSELR_EL2 is set, as it determines which MPU region
+     * is selected.
+     */
+    prepare_selector(sel);
+
+    switch ( sel & 0xFU )
+    {
+        GENERATE_READ_PR_REG_CASE(0, pr_read);
+        GENERATE_READ_PR_REG_CASE(1, pr_read);
+        GENERATE_READ_PR_REG_CASE(2, pr_read);
+        GENERATE_READ_PR_REG_CASE(3, pr_read);
+        GENERATE_READ_PR_REG_CASE(4, pr_read);
+        GENERATE_READ_PR_REG_CASE(5, pr_read);
+        GENERATE_READ_PR_REG_CASE(6, pr_read);
+        GENERATE_READ_PR_REG_CASE(7, pr_read);
+        GENERATE_READ_PR_REG_CASE(8, pr_read);
+        GENERATE_READ_PR_REG_CASE(9, pr_read);
+        GENERATE_READ_PR_REG_CASE(10, pr_read);
+        GENERATE_READ_PR_REG_CASE(11, pr_read);
+        GENERATE_READ_PR_REG_CASE(12, pr_read);
+        GENERATE_READ_PR_REG_CASE(13, pr_read);
+        GENERATE_READ_PR_REG_CASE(14, pr_read);
+        GENERATE_READ_PR_REG_CASE(15, pr_read);
+    default:
+        BUG(); /* Can't happen */
+    }
+}
+
+/*
+ * Write EL2 MPU Protection Region.
+ *
+ * @pr_write: const mpu protection region passed through write op.
+ * @sel: mpu protection region selector
+ */
+void write_protection_region(const pr_t *pr_write, uint8_t sel)
+{
+    /*
+     * Before accessing EL2 MPU region register PRBAR_EL2/PRLAR_EL2,
+     * make sure PRSELR_EL2 is set, as it determines which MPU region
+     * is selected.
+     */
+    prepare_selector(sel);
+
+    switch ( sel & 0xFU )
+    {
+        GENERATE_WRITE_PR_REG_CASE(0, pr_write);
+        GENERATE_WRITE_PR_REG_CASE(1, pr_write);
+        GENERATE_WRITE_PR_REG_CASE(2, pr_write);
+        GENERATE_WRITE_PR_REG_CASE(3, pr_write);
+        GENERATE_WRITE_PR_REG_CASE(4, pr_write);
+        GENERATE_WRITE_PR_REG_CASE(5, pr_write);
+        GENERATE_WRITE_PR_REG_CASE(6, pr_write);
+        GENERATE_WRITE_PR_REG_CASE(7, pr_write);
+        GENERATE_WRITE_PR_REG_CASE(8, pr_write);
+        GENERATE_WRITE_PR_REG_CASE(9, pr_write);
+        GENERATE_WRITE_PR_REG_CASE(10, pr_write);
+        GENERATE_WRITE_PR_REG_CASE(11, pr_write);
+        GENERATE_WRITE_PR_REG_CASE(12, pr_write);
+        GENERATE_WRITE_PR_REG_CASE(13, pr_write);
+        GENERATE_WRITE_PR_REG_CASE(14, pr_write);
+        GENERATE_WRITE_PR_REG_CASE(15, pr_write);
+    default:
+        BUG(); /* Can't happen */
+    }
+}
+
 void __init setup_mm(void)
 {
     BUG_ON("unimplemented");
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Apr 07 09:14:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 09:14:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.939429.1339539 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1iZ5-0004gq-8E; Mon, 07 Apr 2025 09:14:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 939429.1339539; Mon, 07 Apr 2025 09:14: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 1u1iZ5-0004gj-2l; Mon, 07 Apr 2025 09:14:47 +0000
Received: by outflank-mailman (input) for mailman id 939429;
 Mon, 07 Apr 2025 09:14: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=U9Ey=WZ=arm.com=luca.fancellu@srs-se1.protection.inumbo.net>)
 id 1u1iZ3-0003xw-3I
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 09:14:45 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id be044adc-1390-11f0-9ffb-bf95429c2676;
 Mon, 07 Apr 2025 11:14:43 +0200 (CEST)
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 31103106F;
 Mon,  7 Apr 2025 02:14:44 -0700 (PDT)
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 F2EEC3F59E;
 Mon,  7 Apr 2025 02:14: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: be044adc-1390-11f0-9ffb-bf95429c2676
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 3/7] arm/mpu: Introduce utility functions for the pr_t type
Date: Mon,  7 Apr 2025 10:14:26 +0100
Message-Id: <20250407091430.2342709-4-luca.fancellu@arm.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250407091430.2342709-1-luca.fancellu@arm.com>
References: <20250407091430.2342709-1-luca.fancellu@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Introduce few utility function to manipulate and handle the
pr_t type.

Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
---
 xen/arch/arm/include/asm/mpu.h | 40 ++++++++++++++++++++++++++++++++++
 1 file changed, 40 insertions(+)

diff --git a/xen/arch/arm/include/asm/mpu.h b/xen/arch/arm/include/asm/mpu.h
index 59ff22c804c1..6971507457fb 100644
--- a/xen/arch/arm/include/asm/mpu.h
+++ b/xen/arch/arm/include/asm/mpu.h
@@ -20,6 +20,46 @@
 #define NUM_MPU_REGIONS_MASK    (NUM_MPU_REGIONS - 1)
 #define MAX_MPU_REGIONS         NUM_MPU_REGIONS_MASK
 
+#ifndef __ASSEMBLY__
+
+/* Set base address of MPU protection region(pr_t). */
+static inline void pr_set_base(pr_t *pr, paddr_t base)
+{
+    pr->prbar.reg.base = (base >> MPU_REGION_SHIFT);
+}
+
+/* Set limit address of MPU protection region(pr_t). */
+static inline void pr_set_limit(pr_t *pr, paddr_t limit)
+{
+    pr->prlar.reg.limit = ((limit - 1) >> MPU_REGION_SHIFT);
+}
+
+/*
+ * Access to get base address of MPU protection region(pr_t).
+ * The base address shall be zero extended.
+ */
+static inline paddr_t pr_get_base(pr_t *pr)
+{
+    return (paddr_t)(pr->prbar.reg.base << MPU_REGION_SHIFT);
+}
+
+/*
+ * Access to get limit address of MPU protection region(pr_t).
+ * The limit address shall be concatenated with 0x3f.
+ */
+static inline paddr_t pr_get_limit(pr_t *pr)
+{
+    return (paddr_t)((pr->prlar.reg.limit << MPU_REGION_SHIFT)
+                     | ~MPU_REGION_MASK);
+}
+
+static inline bool region_is_valid(pr_t *pr)
+{
+    return pr->prlar.reg.en;
+}
+
+#endif /* __ASSEMBLY__ */
+
 #endif /* __ARM_MPU_H__ */
 
 /*
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Apr 07 09:14:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 09:14:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.939430.1339544 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1iZ5-0004kI-IX; Mon, 07 Apr 2025 09:14:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 939430.1339544; Mon, 07 Apr 2025 09:14: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 1u1iZ5-0004iX-AO; Mon, 07 Apr 2025 09:14:47 +0000
Received: by outflank-mailman (input) for mailman id 939430;
 Mon, 07 Apr 2025 09:14: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=U9Ey=WZ=arm.com=luca.fancellu@srs-se1.protection.inumbo.net>)
 id 1u1iZ3-0003xy-Cu
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 09:14:45 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id beb9279c-1390-11f0-9eaa-5ba50f476ded;
 Mon, 07 Apr 2025 11:14:44 +0200 (CEST)
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 74C001424;
 Mon,  7 Apr 2025 02:14:45 -0700 (PDT)
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 420293F59E;
 Mon,  7 Apr 2025 02:14:43 -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: beb9279c-1390-11f0-9eaa-5ba50f476ded
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 4/7] arm/mpu: Provide a constructor for pr_t type
Date: Mon,  7 Apr 2025 10:14:27 +0100
Message-Id: <20250407091430.2342709-5-luca.fancellu@arm.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250407091430.2342709-1-luca.fancellu@arm.com>
References: <20250407091430.2342709-1-luca.fancellu@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Provide a function that creates a pr_t object from a memory
range and some attributes.

Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
---
 xen/arch/arm/include/asm/arm64/mpu.h | 11 +++++
 xen/arch/arm/include/asm/mpu.h       |  4 ++
 xen/arch/arm/include/asm/mpu/mm.h    |  3 ++
 xen/arch/arm/mpu/mm.c                | 73 ++++++++++++++++++++++++++++
 4 files changed, 91 insertions(+)

diff --git a/xen/arch/arm/include/asm/arm64/mpu.h b/xen/arch/arm/include/asm/arm64/mpu.h
index 4d2bd7d7877f..7cf8d355a1af 100644
--- a/xen/arch/arm/include/asm/arm64/mpu.h
+++ b/xen/arch/arm/include/asm/arm64/mpu.h
@@ -6,6 +6,17 @@
 #ifndef __ARM_ARM64_MPU_H__
 #define __ARM_ARM64_MPU_H__
 
+/*
+ * Excute never.
+ * Stage 1 EL2 translation regime.
+ * XN[1] determines whether execution of the instruction fetched from the MPU
+ * memory region is permitted.
+ * Stage 2 EL1/EL0 translation regime.
+ * XN[0] determines whether execution of the instruction fetched from the MPU
+ * memory region is permitted.
+ */
+#define XN_EL2_ENABLED  0x2
+
 #ifndef __ASSEMBLY__
 
 /* Protection Region Base Address Register */
diff --git a/xen/arch/arm/include/asm/mpu.h b/xen/arch/arm/include/asm/mpu.h
index 6971507457fb..eba5086cde97 100644
--- a/xen/arch/arm/include/asm/mpu.h
+++ b/xen/arch/arm/include/asm/mpu.h
@@ -20,6 +20,10 @@
 #define NUM_MPU_REGIONS_MASK    (NUM_MPU_REGIONS - 1)
 #define MAX_MPU_REGIONS         NUM_MPU_REGIONS_MASK
 
+/* Access permission attributes. */
+/* Read/Write at EL2, No Access at EL1/EL0. */
+#define AP_RW_EL2 0x0
+
 #ifndef __ASSEMBLY__
 
 /* Set base address of MPU protection region(pr_t). */
diff --git a/xen/arch/arm/include/asm/mpu/mm.h b/xen/arch/arm/include/asm/mpu/mm.h
index 5cabe9d111ce..9c7a01d6bd58 100644
--- a/xen/arch/arm/include/asm/mpu/mm.h
+++ b/xen/arch/arm/include/asm/mpu/mm.h
@@ -53,6 +53,9 @@ extern void read_protection_region(pr_t *pr_read, uint8_t sel);
 /* Writes the MPU region with index 'sel' to the HW */
 extern void write_protection_region(const pr_t *pr_write, uint8_t sel);
 
+/* Creates a pr_t entry for the MPU data structure */
+extern pr_t pr_of_xenaddr(paddr_t base, paddr_t limit, unsigned attr);
+
 #endif /* __ARM_MPU_MM_H__ */
 
 /*
diff --git a/xen/arch/arm/mpu/mm.c b/xen/arch/arm/mpu/mm.c
index bf281f67fb6b..2c5820a44f13 100644
--- a/xen/arch/arm/mpu/mm.c
+++ b/xen/arch/arm/mpu/mm.c
@@ -9,6 +9,7 @@
 #include <xen/types.h>
 #include <asm/mpu.h>
 #include <asm/mpu/mm.h>
+#include <asm/page.h>
 #include <asm/sysregs.h>
 
 struct page_info *frame_table;
@@ -151,6 +152,78 @@ void write_protection_region(const pr_t *pr_write, uint8_t sel)
     }
 }
 
+/*
+ * Standard entry for building up the structure of MPU memory region(pr_t).
+ * It is equivalent to mfn_to_xen_entry in MMU system.
+ * Base and limit refer to exclusive range [start, limit].
+ */
+pr_t pr_of_xenaddr(paddr_t base, paddr_t limit, unsigned attr)
+{
+    prbar_t prbar;
+    prlar_t prlar;
+    pr_t region;
+
+    /* Build up value for PRBAR_EL2. */
+    prbar = (prbar_t) {
+        .reg = {
+            .ap = AP_RW_EL2,      /* Read/Write at EL2, no access at EL1/EL0. */
+            .xn = XN_EL2_ENABLED, /* No need to execute outside .text */
+        }};
+
+    switch ( attr )
+    {
+    case MT_NORMAL_NC:
+        /*
+         * ARM ARM: Overlaying the shareability attribute (DDI
+         * 0406C.b B3-1376 to 1377)
+         *
+         * A memory region with a resultant memory type attribute of normal,
+         * and a resultant cacheability attribute of Inner non-cacheable,
+         * outer non-cacheable, must have a resultant shareability attribute
+         * of outer shareable, otherwise shareability is UNPREDICTABLE.
+         *
+         * On ARMv8 sharability is ignored and explicitly treated as outer
+         * shareable for normal inner non-cacheable, outer non-cacheable.
+         */
+        prbar.reg.sh = LPAE_SH_OUTER;
+        break;
+    case MT_DEVICE_nGnRnE:
+    case MT_DEVICE_nGnRE:
+        /*
+         * Shareability is ignored for non-normal memory, Outer is as
+         * good as anything.
+         *
+         * On ARMv8 sharability is ignored and explicitly treated as outer
+         * shareable for any device memory type.
+         */
+        prbar.reg.sh = LPAE_SH_OUTER;
+        break;
+    default:
+        /* Xen mappings are SMP coherent */
+        prbar.reg.sh = LPAE_SH_INNER;
+    }
+
+    /* Build up value for PRLAR_EL2. */
+    prlar = (prlar_t) {
+        .reg = {
+            .ns = 0,        /* Hyp mode is in secure world */
+            .ai = attr,
+            .en = 1,        /* Region enabled */
+        }};
+
+    /* Build up MPU memory region. */
+    region = (pr_t) {
+        .prbar = prbar,
+        .prlar = prlar,
+    };
+
+    /* Set base address and limit address. */
+    pr_set_base(&region, base);
+    pr_set_limit(&region, limit);
+
+    return region;
+}
+
 void __init setup_mm(void)
 {
     BUG_ON("unimplemented");
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Apr 07 09:14:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 09:14:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.939431.1339551 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1iZ6-0004tz-3I; Mon, 07 Apr 2025 09:14:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 939431.1339551; Mon, 07 Apr 2025 09:14: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 1u1iZ5-0004rl-RL; Mon, 07 Apr 2025 09:14:47 +0000
Received: by outflank-mailman (input) for mailman id 939431;
 Mon, 07 Apr 2025 09:14: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=U9Ey=WZ=arm.com=luca.fancellu@srs-se1.protection.inumbo.net>)
 id 1u1iZ4-0003xy-N7
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 09:14:46 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id bf90f20c-1390-11f0-9eaa-5ba50f476ded;
 Mon, 07 Apr 2025 11:14:46 +0200 (CEST)
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 B8B181BF3;
 Mon,  7 Apr 2025 02:14:46 -0700 (PDT)
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 85D1A3F59E;
 Mon,  7 Apr 2025 02:14:44 -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: bf90f20c-1390-11f0-9eaa-5ba50f476ded
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 5/7] arm/mpu: Introduce MPU memory mapping flags
Date: Mon,  7 Apr 2025 10:14:28 +0100
Message-Id: <20250407091430.2342709-6-luca.fancellu@arm.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250407091430.2342709-1-luca.fancellu@arm.com>
References: <20250407091430.2342709-1-luca.fancellu@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Introduce the MPU memory mapping flags in asm/page.h.

Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
---
 xen/arch/arm/include/asm/page.h | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/xen/arch/arm/include/asm/page.h b/xen/arch/arm/include/asm/page.h
index 69f817d1e68a..22f7d2c6cb30 100644
--- a/xen/arch/arm/include/asm/page.h
+++ b/xen/arch/arm/include/asm/page.h
@@ -62,6 +62,7 @@
 
 #define MAIRVAL (MAIR1VAL << 32 | MAIR0VAL)
 
+#ifdef CONFIG_MMU
 /*
  * Layout of the flags used for updating the hypervisor page tables
  *
@@ -90,6 +91,30 @@
 #define _PAGE_CONTIG_BIT    8
 #define _PAGE_CONTIG        (1U << _PAGE_CONTIG_BIT)
 
+#else /* !CONFIG_MMU */
+
+/*
+ * Layout of the flags used for updating MPU memory region attributes
+ * [0:2] Memory attribute Index
+ * [3:4] Execute Never
+ * [5:6] Access Permission
+ * [7]   Region Present
+ */
+#define _PAGE_AI_BIT            0
+#define _PAGE_XN_BIT            3
+#define _PAGE_AP_BIT            5
+#define _PAGE_PRESENT_BIT       7
+#define _PAGE_AI                (7U << _PAGE_AI_BIT)
+#define _PAGE_XN                (2U << _PAGE_XN_BIT)
+#define _PAGE_RO                (2U << _PAGE_AP_BIT)
+#define _PAGE_PRESENT           (1U << _PAGE_PRESENT_BIT)
+#define PAGE_AI_MASK(x)         (((x) >> _PAGE_AI_BIT) & 0x7U)
+#define PAGE_XN_MASK(x)         (((x) >> _PAGE_XN_BIT) & 0x3U)
+#define PAGE_AP_MASK(x)         (((x) >> _PAGE_AP_BIT) & 0x3U)
+#define PAGE_RO_MASK(x)         (((x) >> _PAGE_AP_BIT) & 0x2U)
+
+#endif /* CONFIG_MMU */
+
 /*
  * _PAGE_DEVICE and _PAGE_NORMAL are convenience defines. They are not
  * meant to be used outside of this header.
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Apr 07 09:14:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 09:14:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.939433.1339567 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1iZ9-0005Vl-78; Mon, 07 Apr 2025 09:14:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 939433.1339567; Mon, 07 Apr 2025 09:14: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 1u1iZ9-0005Vc-3V; Mon, 07 Apr 2025 09:14:51 +0000
Received: by outflank-mailman (input) for mailman id 939433;
 Mon, 07 Apr 2025 09:14: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=U9Ey=WZ=arm.com=luca.fancellu@srs-se1.protection.inumbo.net>)
 id 1u1iZ7-0003xw-4q
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 09:14:49 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id c04d5ca2-1390-11f0-9ffb-bf95429c2676;
 Mon, 07 Apr 2025 11:14:47 +0200 (CEST)
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 0770B106F;
 Mon,  7 Apr 2025 02:14:48 -0700 (PDT)
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 C9A833F59E;
 Mon,  7 Apr 2025 02:14: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: c04d5ca2-1390-11f0-9ffb-bf95429c2676
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 6/7] arm/mpu: Implement early_fdt_map support in MPU systems
Date: Mon,  7 Apr 2025 10:14:29 +0100
Message-Id: <20250407091430.2342709-7-luca.fancellu@arm.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250407091430.2342709-1-luca.fancellu@arm.com>
References: <20250407091430.2342709-1-luca.fancellu@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Implement early_fdt_map() function, that is responsible to map the
device tree blob in the early stages of the boot process, since at
this stage the MPU C data structure are not yet initialised, it is
using low level APIs to write into the MPU registers at a fixed
MPU region number.

The MPU memory management is designed to work on pages of PAGE_SIZE
in order to reuse helpers and macros already available on the Xen
memory management system.

Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
---
 xen/arch/arm/mpu/setup.c | 54 ++++++++++++++++++++++++++++++++++++++--
 1 file changed, 52 insertions(+), 2 deletions(-)

diff --git a/xen/arch/arm/mpu/setup.c b/xen/arch/arm/mpu/setup.c
index b4da77003f47..5969065250d4 100644
--- a/xen/arch/arm/mpu/setup.c
+++ b/xen/arch/arm/mpu/setup.c
@@ -1,17 +1,67 @@
 /* SPDX-License-Identifier: GPL-2.0-only */
 
+#include <xen/bootfdt.h>
 #include <xen/bug.h>
 #include <xen/init.h>
+#include <xen/libfdt/libfdt.h>
 #include <xen/mm.h>
+#include <xen/pfn.h>
 #include <xen/types.h>
+#include <asm/mpu.h>
+#include <asm/page.h>
 #include <asm/setup.h>
 
+/* Needs to be kept in sync with the regions programmed in arm64/mpu/head.S */
+#define EARLY_FDT_MAP_REGION_NUMBER 6
+
 void __init setup_pagetables(void) {}
 
 void * __init early_fdt_map(paddr_t fdt_paddr)
 {
-    BUG_ON("unimplemented");
-    return NULL;
+    /* Map at least a page containing the DTB address, exclusive range */
+    paddr_t base_paddr = round_pgdown(fdt_paddr);
+    paddr_t end_paddr = round_pgup(fdt_paddr + sizeof(struct fdt_header));
+    unsigned int flags = PAGE_HYPERVISOR_RO;
+    void *fdt_virt = (void *)fdt_paddr; /* virt == paddr for MPU */
+    pr_t fdt_region;
+
+    /*
+     * Check whether the physical FDT address is set and meets the minimum
+     * alignment requirement. Since we are relying on MIN_FDT_ALIGN to be at
+     * least 8 bytes so that we always access the magic and size fields
+     * of the FDT header after mapping the first chunk, double check if
+     * that is indeed the case.
+     */
+    BUILD_BUG_ON(MIN_FDT_ALIGN < 8);
+    if ( !fdt_paddr || fdt_paddr % MIN_FDT_ALIGN )
+        return NULL;
+
+    /* Map the device tree blob header  */
+    fdt_region = pr_of_xenaddr(base_paddr, end_paddr, PAGE_AI_MASK(flags));
+    fdt_region.prbar.reg.ap = PAGE_AP_MASK(flags);
+    fdt_region.prbar.reg.xn = PAGE_XN_MASK(flags);
+
+    write_protection_region(&fdt_region, EARLY_FDT_MAP_REGION_NUMBER);
+    context_sync_mpu();
+
+    if ( fdt_magic(fdt_virt) != FDT_MAGIC )
+        return NULL;
+
+    end_paddr = round_pgup(fdt_paddr + fdt_totalsize(fdt_virt));
+
+    /*
+     * If the mapped range is not enough, map the rest of the DTB, pr_get_limit
+     * returns an inclusive address of the range, hence the increment.
+     */
+    if ( end_paddr > (pr_get_limit(&fdt_region) + 1) )
+    {
+        pr_set_limit(&fdt_region, end_paddr);
+
+        write_protection_region(&fdt_region, EARLY_FDT_MAP_REGION_NUMBER);
+        context_sync_mpu();
+    }
+
+    return fdt_virt;
 }
 
 /*
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Apr 07 09:14:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 09:14:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.939434.1339572 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1iZ9-0005YC-KA; Mon, 07 Apr 2025 09:14:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 939434.1339572; Mon, 07 Apr 2025 09:14: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 1u1iZ9-0005Xg-Cd; Mon, 07 Apr 2025 09:14:51 +0000
Received: by outflank-mailman (input) for mailman id 939434;
 Mon, 07 Apr 2025 09:14: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=U9Ey=WZ=arm.com=luca.fancellu@srs-se1.protection.inumbo.net>)
 id 1u1iZ7-0003xy-Fd
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 09:14:49 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id c11750d6-1390-11f0-9eaa-5ba50f476ded;
 Mon, 07 Apr 2025 11:14:48 +0200 (CEST)
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 4A8181424;
 Mon,  7 Apr 2025 02:14:49 -0700 (PDT)
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 184E03F59E;
 Mon,  7 Apr 2025 02:14: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: c11750d6-1390-11f0-9eaa-5ba50f476ded
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 7/7] arm/mpu: Implement setup_mpu for MPU system
Date: Mon,  7 Apr 2025 10:14:30 +0100
Message-Id: <20250407091430.2342709-8-luca.fancellu@arm.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250407091430.2342709-1-luca.fancellu@arm.com>
References: <20250407091430.2342709-1-luca.fancellu@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Implement the function setup_mpu that will logically track the MPU
regions defined by hardware registers, start introducing data
structures and functions to track the status from the C world.

The xen_mpumap_mask bitmap is used to track which MPU region are
enabled at runtime.

This function is called from setup_mm() which full implementation
will be provided in a later stage.

Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
---
 xen/arch/arm/include/asm/arm64/mpu.h |  2 ++
 xen/arch/arm/mpu/mm.c                | 49 +++++++++++++++++++++++++++-
 2 files changed, 50 insertions(+), 1 deletion(-)

diff --git a/xen/arch/arm/include/asm/arm64/mpu.h b/xen/arch/arm/include/asm/arm64/mpu.h
index 7cf8d355a1af..ff5a957bf085 100644
--- a/xen/arch/arm/include/asm/arm64/mpu.h
+++ b/xen/arch/arm/include/asm/arm64/mpu.h
@@ -6,6 +6,8 @@
 #ifndef __ARM_ARM64_MPU_H__
 #define __ARM_ARM64_MPU_H__
 
+#define PRENR_MASK  GENMASK(31, 0)
+
 /*
  * Excute never.
  * Stage 1 EL2 translation regime.
diff --git a/xen/arch/arm/mpu/mm.c b/xen/arch/arm/mpu/mm.c
index 2c5820a44f13..fe05c8097155 100644
--- a/xen/arch/arm/mpu/mm.c
+++ b/xen/arch/arm/mpu/mm.c
@@ -14,6 +14,17 @@
 
 struct page_info *frame_table;
 
+/* Maximum number of supported MPU memory regions by the EL2 MPU. */
+uint8_t __ro_after_init max_xen_mpumap;
+
+/*
+ * Bitmap xen_mpumap_mask is to record the usage of EL2 MPU memory regions.
+ * Bit 0 represents MPU memory region 0, bit 1 represents MPU memory
+ * region 1, ..., and so on.
+ * If a MPU memory region gets enabled, set the according bit to 1.
+ */
+DECLARE_BITMAP(xen_mpumap_mask, MAX_MPU_REGIONS);
+
 /* EL2 Xen MPU memory region mapping table. */
 pr_t xen_mpumap[MAX_MPU_REGIONS];
 
@@ -224,9 +235,45 @@ pr_t pr_of_xenaddr(paddr_t base, paddr_t limit, unsigned attr)
     return region;
 }
 
+/*
+ * The code in this function needs to track the regions programmed in
+ * arm64/mpu/head.S
+ */
+static void __init setup_mpu(void)
+{
+    register_t prenr;
+    unsigned int i = 0;
+
+    /*
+     * MPUIR_EL2.Region[0:7] identifies the number of regions supported by
+     * the EL2 MPU.
+     */
+    max_xen_mpumap = (uint8_t)(READ_SYSREG(MPUIR_EL2) & NUM_MPU_REGIONS_MASK);
+
+    /* PRENR_EL2 has the N bit set if the N region is enabled, N < 32 */
+    prenr = (READ_SYSREG(PRENR_EL2) & PRENR_MASK);
+
+    /*
+     * Set the bitfield for regions enabled in assembly boot-time.
+     * This code works under the assumption that the code in head.S has
+     * allocated and enabled regions below 32 (N < 32).
+     */
+    while ( prenr > 0 )
+    {
+        if (prenr & 0x1)
+        {
+            set_bit(i, xen_mpumap_mask);
+            read_protection_region(&xen_mpumap[i], i);
+        }
+
+        prenr >>= 1;
+        i++;
+    }
+}
+
 void __init setup_mm(void)
 {
-    BUG_ON("unimplemented");
+    setup_mpu();
 }
 
 int modify_xen_mappings(unsigned long s, unsigned long e, unsigned int nf)
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Apr 07 09:17:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 09:17:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.939470.1339588 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1ibJ-00088d-1u; Mon, 07 Apr 2025 09:17:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 939470.1339588; Mon, 07 Apr 2025 09:17: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 1u1ibI-00088U-UQ; Mon, 07 Apr 2025 09:17:04 +0000
Received: by outflank-mailman (input) for mailman id 939470;
 Mon, 07 Apr 2025 09: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=ZxXC=WZ=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u1ibH-00087q-Jw
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 09:17:03 +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 10d9b3d7-1391-11f0-9eaa-5ba50f476ded;
 Mon, 07 Apr 2025 11:17:02 +0200 (CEST)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-43690d4605dso26782005e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 07 Apr 2025 02:17:02 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39c301b8161sm11632032f8f.50.2025.04.07.02.17.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 07 Apr 2025 02:17:01 -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: 10d9b3d7-1391-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744017422; x=1744622222; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=M0zgClBelkDo/CuOY6YuLrBLty0Oi7g35/gnvO7XDjE=;
        b=WCAjR+fTjI7MQA2qE5HpgfYjPIo8wITHVouYKkPwT4bZjQ8BVijeF2Ld6gQT4TlYLR
         NdX+oFZOcEQRV693LJ9Ypk9wjb1JwtErKuUmRrf2fYB/lP9Eg9yeJ7vkefVDH4lgZ8AF
         Fz+mmU/H3NEBf5ROtE/9bFLFtiziQEuzW3JPQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744017422; x=1744622222;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=M0zgClBelkDo/CuOY6YuLrBLty0Oi7g35/gnvO7XDjE=;
        b=NyMV5U21i+kBP7/aA/J8v4Z12KVa3rzNj5q3GpGyM5x2AZVRZlofux1LT8Nr+ywN0G
         nQE+apuQFvyw+OvO2F3NHsDyUhnhq+8Z4SvMkryg709ujVAVyn0glB1R0/6pSppxaarp
         AJfm8zBfsLehYwFEPJg6eXxwp0OQlR+m5Gmqv0tAIW8RLhJGpacMCbmLVh9iPYz9AqyG
         RArdzpN21lx9ftW48Ghz1PRZiEZdwWGXLgLZ226iSwOijnOyCR6Ue72FnEzeS4PLVdys
         +gDDY3XPTtDl+vjxh2EhRj9N848tNAIdme9IyAf8AcxGJwrSvoQaoD7DrmHr+g6HGvBh
         o6YQ==
X-Forwarded-Encrypted: i=1; AJvYcCW+253SCjn3twaA36tQpiScYR0S6rfc5uNLpJCcFOzS4vdi7zWcJ/RkkXTlYE/hU3emGomNLbwa/WU=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx064965IPLvsw7mN4rhPJAt02v5GHniHYEcWcXqAeLLCX5jeDC
	TB8kfsLF99U6WUIBenawAU2N91JTFBXdMmNpE46WR8VasbhX5iSaE9SwOCYUM6k=
X-Gm-Gg: ASbGncuYmWU7+10tgEHrc/iEqGcs6YrfOV4eBmKTmZl5RAFAtLcSSQywJ3cydI6BLmr
	wOr389izPtAgxnIanYlYtwDXq1/Fxc9eutgztwkqD4Co+gzIllLaE/Wj+gOPhRoF3KVuHS4Xq2F
	Y4z8lM0gVkzvZ8JMkoOGcmohI63LyfWYTbMSzpq7+u2SqYCo2P/PhtX+ELvr0dytm3K76/Abz1I
	FkTGC1fedUjaCXJTVvTzeWKREjPPf0fDZ1gbVEjiywYflcfVHsFyYfRoelF8qTFGbMx0NcpzfpX
	8golWKaJDnzhgzwxOJibCTBzaJoJyHZoWkvhhkm43qhloZtog3DM2ZlXv52sQ4ujwsy7pZiXVd4
	7AwZysejs2A==
X-Google-Smtp-Source: AGHT+IFwOy1g9yIfu6d/+L4ZGCIujP53oxxtFgNv+3d24UXIcQWlCBxY/SWfZjyQEU55hsY2D3muiA==
X-Received: by 2002:a5d:648a:0:b0:39c:1efc:b02 with SMTP id ffacd0b85a97d-39cb35a8952mr10263160f8f.28.1744017421653;
        Mon, 07 Apr 2025 02:17:01 -0700 (PDT)
Message-ID: <c34b4537-9563-452c-869f-a412749ebfad@citrix.com>
Date: Mon, 7 Apr 2025 10:17:00 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3] x86/emulate: Remove HAVE_AS_RDRAND and HAVE_AS_RDSEED
To: dmkhn@proton.me, xen-devel@lists.xenproject.org
Cc: jbeulich@suse.com, roger.pau@citrix.com, dmukhin@ford.com
References: <20250405012417.3108759-1-dmukhin@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: <20250405012417.3108759-1-dmukhin@ford.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 05/04/2025 2:25 am, dmkhn@proton.me wrote:
> From: Denis Mukhin <dmukhin@ford.com>
>
> The new toolchain baseline knows the rdrand/rdseed instructions,
> no need to carry the workaround in the code.

A few minor notes.  Instructions in CAPITALS please to make them easier
to parse in context.  The comma ought to be a semi-colon.

You should note that arch_get_random() is adjusted too.

Also, it's useful to state "No functional change." to help reviewers. 
(Or to help archaeologies figure out the intent of the patch if they
subsequently find a bug in it.)

> diff --git a/xen/arch/x86/include/asm/random.h b/xen/arch/x86/include/asm/random.h
> index 9e1fe0bc1d..e1c1c765e1 100644
> --- a/xen/arch/x86/include/asm/random.h
> +++ b/xen/arch/x86/include/asm/random.h
> @@ -8,7 +8,7 @@ static inline unsigned int arch_get_random(void)
>      unsigned int val = 0;
>  
>      if ( cpu_has(&current_cpu_data, X86_FEATURE_RDRAND) )
> -        asm volatile ( ".byte 0x0f,0xc7,0xf0" : "+a" (val) );
> +        asm volatile ( "rdrand %0" : "=a" (val) );

This was only tied to "a" because 0xf0 is the ModRM byte.  Now that we
can use the mnemonic, it can become "=r".

I've fixed all on commit.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Apr 07 09:38:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 09:38:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.939548.1339597 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1iwN-00051N-Mi; Mon, 07 Apr 2025 09:38:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 939548.1339597; Mon, 07 Apr 2025 09:38: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 1u1iwN-00051G-Jd; Mon, 07 Apr 2025 09:38:51 +0000
Received: by outflank-mailman (input) for mailman id 939548;
 Mon, 07 Apr 2025 09:38: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=qNmM=WZ=oracle.com=harshvardhan.j.jha@srs-se1.protection.inumbo.net>)
 id 1u1iwL-000519-Rx
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 09:38:50 +0000
Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com
 [205.220.165.32]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 19e55185-1394-11f0-9ffb-bf95429c2676;
 Mon, 07 Apr 2025 11:38:47 +0200 (CEST)
Received: from pps.filterd (m0246629.ppops.net [127.0.0.1])
 by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5376Y3rD016179;
 Mon, 7 Apr 2025 09:38:38 GMT
Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com
 (iadpaimrmta01.appoci.oracle.com [130.35.100.223])
 by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 45tvd9t4be-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Mon, 07 Apr 2025 09:38:37 +0000 (GMT)
Received: from pps.filterd
 (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1])
 by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2)
 with ESMTP id 5377gdsv023922; Mon, 7 Apr 2025 09:38:36 GMT
Received: from nam04-bn8-obe.outbound.protection.outlook.com
 (mail-bn8nam04lp2040.outbound.protection.outlook.com [104.47.74.40])
 by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id
 45ttydsqkk-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Mon, 07 Apr 2025 09:38:36 +0000
Received: from PH7PR10MB6505.namprd10.prod.outlook.com (2603:10b6:510:200::11)
 by MN0PR10MB5936.namprd10.prod.outlook.com (2603:10b6:208:3cc::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.34; Mon, 7 Apr
 2025 09:38:17 +0000
Received: from PH7PR10MB6505.namprd10.prod.outlook.com
 ([fe80::83d9:1bf1:52cf:df54]) by PH7PR10MB6505.namprd10.prod.outlook.com
 ([fe80::83d9:1bf1:52cf:df54%3]) with mapi id 15.20.8606.033; Mon, 7 Apr 2025
 09:38: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: 19e55185-1394-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc
	:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=
	corp-2023-11-20; bh=ROqJt25uy7G7u2NwS3K5Tkw7vBPeoAYcu0N3IcZpfGA=; b=
	BRtU8MvDOmx1MHYDD0I45dJZ+AMmng0cKZrfo++sz+6gGVgV8HoVUTkee/iBf1Mk
	zwzAyXXtOKPuIhpgPyKw705T5SA9HuUeYmWUCJePxBWJD1++mSyH8CY3sUZPN1Ao
	HvPG2emPCcKkQnoA99B5lQC/7e57dJTZs7w2oojREIijNwq+zKMioX2Ng2qS16VZ
	SM09bP3n3Dj70VWbysyRURgjVVCE66ktCQlnpIEQrPdbR8jfpG8lHvXF6+w2Vowh
	rmpvGX08d/1kZRovKcONR2Fi6l1TdmDkBUgwT3vnKKIN3hK/q+mxie+nKhPhxr2l
	1Qu9ez+J/bWeYDHXGW3iog==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=eBqlEWKAzuQtIGOjgslwv/U4dQmuOSlL2+eiN9XuHrw3XCKBJpkHZAdVcr5xwqyFWeCSp9daiumrnWgiu7L58bavGp8soN5OuB7QxnjtGI7fxOyHV+vsluEJz9Nrjwy4+RwPcN/O/my7Igo3qhF946J19HltxwYl6ohEa67GzXdxBNaNWOmVHBwT7s8VCoe1e60RCKHinmtnrcnGJ0Xk+Vj9B/D06U2WE8mHZtjH7+8ZphtkzgK+MRWW4FAoBDOPpGUARF4heCCjr+xCjNpe6pgvioGO2RCYx8eGQ0vAQHap6KPJx1vfTxtcDSlMQOBYQXo5J/eDv9Gv/mwXTZLBQg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ROqJt25uy7G7u2NwS3K5Tkw7vBPeoAYcu0N3IcZpfGA=;
 b=hrQlfn2Q8HU1uLmJseUM2yygtagUsPQfCzHBCzMsUq+E7IEnpyJ3TWAfyqFYVQQ+gJMiylYcosUgJ/txj8PxmjI3M9H97sMpsrraB7S5A/xosDr9VUn1CVkEoMSWny9BKEUxtdgYIL+/5ahwWVXfh8yJEDDjSAP+uuiXAVO8m0WLV+J2qE21y6Q1ZAbAguV3J0Zw8TE8+5kOUSuebxUsHt9Nw2Hf6B84baVPS7MkPUs6yf9Y6OnrlUnlFdkggxkCBkGPUGYYrPBgRpNxozzDcb1G14rI3zVb32QhCzlpVwWhHvrZIC6zOUuY6FopR8wfspLpxzwlkGg+S6uyt1S90A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com;
 dkim=pass header.d=oracle.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ROqJt25uy7G7u2NwS3K5Tkw7vBPeoAYcu0N3IcZpfGA=;
 b=LvRd3hyHjWXjSsXZ4EG2cvdbhJL3HfYhSSgIBRoOAva6bn4tSBo1ldIJAGJRcwj2wJv0jrbyEpO8h+ImIbYUPSdwuEWFfSv+s0UfhMLD6jQvPhh4+zJg1MrmSAJlb/dhX+vtRv0Cgmfbw555bkUph1wjYk/8gdOliTKNHcoI11w=
Message-ID: <8b5686d3-cba2-4f2b-897f-daa0ec68b69d@oracle.com>
Date: Mon, 7 Apr 2025 15:08:10 +0530
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 5.15.y 1/1] xen/swiotlb: relax alignment requirements
To: Greg KH <gregkh@linuxfoundation.org>
Cc: jgross@suse.com, sstabellini@kernel.org, boris.ostrovsky@oracle.com,
        xen-devel@lists.xenproject.org, iommu@lists.linux-foundation.org,
        iommu@lists.linux.dev, stable@vger.kernel.org
References: <20250407070235.121187-1-harshvardhan.j.jha@oracle.com>
 <20250407070235.121187-2-harshvardhan.j.jha@oracle.com>
 <2025040751-oversleep-sevenfold-b429@gregkh>
Content-Language: en-US
From: Harshvardhan Jha <harshvardhan.j.jha@oracle.com>
In-Reply-To: <2025040751-oversleep-sevenfold-b429@gregkh>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: SG2PR02CA0070.apcprd02.prod.outlook.com
 (2603:1096:4:54::34) To PH7PR10MB6505.namprd10.prod.outlook.com
 (2603:10b6:510:200::11)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: PH7PR10MB6505:EE_|MN0PR10MB5936:EE_
X-MS-Office365-Filtering-Correlation-Id: a80a4b30-31da-45f5-9156-08dd75b7ecc1
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?clVMNzBCUzV6TWJwOFdwYS9tb2VVTWplV3FvTnZ0dzhzcy84MmR3SnpaWFVo?=
 =?utf-8?B?MEMxNnJKT2JVN214ZUw1U1pwVmFXeXc1c2YweEJGVWg3bkt0MC9NMkZtZUJr?=
 =?utf-8?B?cHBTRStZYUtSRWVISG5ZR2dNNnF2UUswMGQ2eEVJdDdqZHdSeFVGRnVkSHhn?=
 =?utf-8?B?UXhTbGRLRzFPSWJOcDhHeGZjcHdKN203MFBqbUVva2h5ZVA0TFJiKy9FNkZC?=
 =?utf-8?B?N2xGbGlGT1dWM2pRdTlkbDgwSDdJYlNWcUU3NFRqTkxIbnhvWE45QUNDUjhn?=
 =?utf-8?B?ZW5ET2pEWElOSmsxTXh5WkxNSmlhTXE4bVVoOWlTb0JZdCtaTTNvcHBjTkp0?=
 =?utf-8?B?SUsvNmpvaTZYczM3bklqSC9BR3YyT1BhOGJXeW0xM3ZLTDk3M1FJSldkSUtq?=
 =?utf-8?B?ZXpBd3FTdmhub0dobGhzSW9IT3VVd3FVZjhtbE90WEVJQnlYV1RHbTdlTDNH?=
 =?utf-8?B?cFkyNkk0M2IzbjdlMUlvTTQxb3hTeG53MXQxbTVEU2lYZTdqVytWZUJhN084?=
 =?utf-8?B?TkVOSW5yTW1LRC8xMmhlUU9PbXo2Q0FhRXhMejl6cEQxWURLMGJDTm5mbTVF?=
 =?utf-8?B?dVFHMDNuVHQ1aEgyemhaOUx5L1M0VkR5YjJyV3RvNXoyamNBVDVDREhWa2Nq?=
 =?utf-8?B?S2s0QlVZSFd6cHVaeDl4WjhTN3gzVmJsWEg0SzBmamMwRHV3bE8zQzFaUDcx?=
 =?utf-8?B?WktDNDk0eE14amJIS284ZS9MM1pQMUppMkV4VEpVSW84L3VKL1VkT2luTko1?=
 =?utf-8?B?N084alpCdm1abWRKemc2T0VFbk9ocEhSS1JDSFBBUnZiamk2eEczVEx3RkRn?=
 =?utf-8?B?TDJ5eDFlL0xDNWwrbzhMaXRjQmVmRHVuaENIMW9TVjBaRjhWLzZrcFlxcW4w?=
 =?utf-8?B?ekVwUDR6b0RtT1poaURqcHh6UFc1THl5Rjdmb0haR3B1cDAxd2dHeWsra0U5?=
 =?utf-8?B?T2NWUFMrQ0FtakFnL2V4YkxVVjBEU1ZidzlWOG04NG5CblV2UzdlUEV6MkVZ?=
 =?utf-8?B?RFhCQWxUVlh4OWhBVEVtQlpSL1ViUHk1TWh6a0J5QjV0TVlBRG43ei9lVit0?=
 =?utf-8?B?Mmt3bDc4MGxCR0k5SDJuaFd3a2JjOTE4WU9aUkdRUkltWXZxT2VBTXdJU1FC?=
 =?utf-8?B?N3p3bzV3L3dBUFVhNUsvQU1PUXRVa1VPSTZ0VnNKQlNTY2o5SVM5MmZNVVZt?=
 =?utf-8?B?eFVDQWdidFJWUlRuTkV1b3REMGdLYUlTQnNRV21uRWVONWY0dE1sUmtVVjB1?=
 =?utf-8?B?dlZJUUY4bTZmWk1DWEN6NWxaSTBwU2FDZGJtUDV4N0g3ZGh0aVBKbkJBT3NS?=
 =?utf-8?B?cmZtSkhhWU5ra2YzVE9kRmFRUHZQd2hnNkYwVVdLTXBKMmMrM3NmeXdGRzFK?=
 =?utf-8?B?bnZ6S3ZXemkxdk85em5wZFZILzcyVUhBUE4vekFBTjUyOTR5eTM5Y3RlRldj?=
 =?utf-8?B?ZXNMZTlsR0s2RUtiMU5vKzdWL1MxMXZKM1YzTlJmOUtIb3pPSHhHL25vUTg4?=
 =?utf-8?B?TEhDSFVSR2VJb014eUZGZW5FK1RNRHY0dDdBTVA2Znk4SytjT01rUlVMbVc0?=
 =?utf-8?B?amZ1U1hiUElyVkcwaDF0MEhvWVBUbzF3eTZzNVZYZDBDQitoWWxqMXR5SlBD?=
 =?utf-8?B?TUNqUGl5Y2VGV0UwdVRPUkRWaEFZTGo2bklXVzUrODFrZk10SkxucURmRG52?=
 =?utf-8?B?b3lQcFRaS3N6NWluMnlhcGdKZkcxeFArRTMyeHBUYVVxbWdNWnkrVGtUY1Rp?=
 =?utf-8?B?cXNUZkdJcXpvd081SEYrellmeXJDRHkvTnk0azl3QmxHd0M4RWxhcGxuYXo2?=
 =?utf-8?B?RzRrOVl6Vmx4VGNyMVVaNjVWZFlldlllejVPcjMwNVVzeGJPNS9NZjlzWlFX?=
 =?utf-8?B?ZDZyMTk2Y0ZiL1JWNDBkOWRoMWZLQXF6dWt0ZkNWQ0JraXJhRENMVkVDdVZP?=
 =?utf-8?Q?WU2sc2TPapI=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH7PR10MB6505.namprd10.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?MWVDeFg0YlFPN2NQRVNZcVRoblhtTlhDTTdzZ0dMTEp6M1ROckxiZGhta21H?=
 =?utf-8?B?blBrT2c5REdxU015SUhaWUsyaXFYbnRrb3RDVHJzN0hMU3NxcjZVN3Eya0Er?=
 =?utf-8?B?S25YUVNSTDdPdk9Oc0VIMzFBVytPSWpGMHNVc1VZUmNUSXJKc1hZOG9zRTY3?=
 =?utf-8?B?OS9rVzNPQ2ErWGJvWmE3RmlIcVN3NzNvemVkVjdXNGZEOG5ON1JZaHhBc3Vi?=
 =?utf-8?B?NVlObUpvNUtOZWdOUnp2d2JrRTVvUkkxM3JiR3BvcnhaNzdnZWoxMVFJSUI2?=
 =?utf-8?B?cWdPRWlBbWJjK2RGTzczMlBGQ0ZCZWUzN2ZVajZxdzlsajI2RW9lUEZNL2ox?=
 =?utf-8?B?UC9pbnlXSmdjRGYvRzFuTWh4Mk50K1ByY1JvbGIyWWUzZ1lwVDBhYXE4T3dn?=
 =?utf-8?B?R2g4WTNuVGVVMGhvYmY1alowWWs3VnNtWWtVY1o2c1RTOVNZeEY3U0FLM0Qr?=
 =?utf-8?B?S2xyVEdjc1VISjVFbEovcTZFZ25XWkxjYStZZ2h0TmdTemIwZkJOUzYwenhP?=
 =?utf-8?B?OVQxeHRQaWIzRW0vM2cwS3FEQXJ2ZStLV21LSjFTVHI5aGJ4cGFYT1Q3YTBR?=
 =?utf-8?B?bWsvVnlhMlNWTzZPMFdGRWJHWXNtK3dNS3hOamhqb2F5WkFSMmhpNlFPVXRF?=
 =?utf-8?B?cXJRZFAvdHV1dTZYZzBxcnNZNjkzYTgrRFRHTW53WUNveHArRUtvQ3BoNFdm?=
 =?utf-8?B?Y2hGcE5jTXpocXE0UGl4d1NueXJZSkF3UGM3MWVVdHRHYUVVaHRGRGNoUjM4?=
 =?utf-8?B?LzJvK0NrZVFZYkpnczRJVTFIQmRZVlFWRDBrZ1EvM3pudVRkYzIxQVRrdDhj?=
 =?utf-8?B?bDMzUjdTcXZ2RWhZRWlBcDhTK2dmNjZOQ2RacTl6TXBUK0tNQ2lLUlFvWTRm?=
 =?utf-8?B?REhFeFo4REdLSHFUUmVadk5CelpnckY0eU5wWUVBMnJWOEFQS3hjYWZ3MDI3?=
 =?utf-8?B?L2VUWWpqTHVxMnpnY1hRbDR5bUhvRlZGTzdHdm5FODhEbHJvTkVPMUhLYlJ5?=
 =?utf-8?B?cURralJZZ1pSNFQvVmlpbzlsUWlweXgyWXEvYkl2MmpLVjJ5YnhsUGVTWTZY?=
 =?utf-8?B?b1FybVkvdDdJVmdMQ2t1bS9na0RMbURvL21paUZzQ1ZCdVdoL2tjYmJFVGVy?=
 =?utf-8?B?NFBJQ0ZjOERvLzZ4S25vZGM1a3VkN2JoMTFRODlGZTZ1ZkJCSUFQbE52K2U4?=
 =?utf-8?B?T1Z4YnQ2azFjWEY4Y3MwcmpPbnkvR1laK1MyVEkwUUdsQnd5NnJBd0lCejRM?=
 =?utf-8?B?enBhTkNseXI5MnFHOXhMMTZqdU1DdUR6MzNoL0JaZzY3Y0tJdWtpYVRjZ2JV?=
 =?utf-8?B?NGJ6bzhndWdwaGQ5NzZWV3IxWnZoV3R3TFFuTWlsQ0pkVFprWGl5UUpidm5J?=
 =?utf-8?B?QU9sdmRFckdkaUZoUmdPVlkveUVra0RRYk10bHZtNmw2K2hoaEdlVEppWi9G?=
 =?utf-8?B?dUdKcGl0NEFyK3Jxc0hUNEJldU1zaWJOZjl5TWxGOS9OQlZjdTAxZkZiYlR1?=
 =?utf-8?B?QUxrRGV3MldXcDIxV1M0WElEN0ZDT3VuQUc2M3hwcmd1ck5CSVk3SHZyZ3BV?=
 =?utf-8?B?cTRZSVh5NG9BM3p4M2drM1I0MlZoV0lvdW9aTTlRVXpUajdtU3VCSTFsMUg0?=
 =?utf-8?B?QVZ0WUQ2TE9Yb002QmxwVExnNWdLdEZKSnhoRngyTVlkSjJCdm1wNDlnTXd6?=
 =?utf-8?B?emo0bmk3Ri83T2o2dS9XQTZhSkVoc3IyZ0FSWUtPM2ZvYkFMQ284U1ZZRmkr?=
 =?utf-8?B?VHVIUUxlSDh1czZocXVIVnJLQ3piTEhSQWFUM2EwaHpsZnl2TVVFN2NIYldC?=
 =?utf-8?B?RkRCRjZsb0tQaVphUmN1eGc5c2EyaVlVY0Z2ejY4Z1VBRS9iZXF4Y0NRUkdq?=
 =?utf-8?B?ZnJWeXB3MVdTU3JsYlV0d1hRSi93aUNPVlptMnhkTDJnNzJ4YWlSdGM3Y1Ru?=
 =?utf-8?B?dFdkZHJ3Q0w2cE1zRmsxcnZzS2ttb0hUcGpjT2ZpNVlvODlpVEl3ZU1SRmly?=
 =?utf-8?B?UGhrUG1IOUprKzFFMTdkSWdyeTlzMlN3amFCWkUzTWFkbDJJbGJyT2xlYnli?=
 =?utf-8?B?dFlWUGFXOVpkTlV5QWlCaTZsYzRZOWNCMmxvM1c4UG9EZ0d1azY2VGtPL0hv?=
 =?utf-8?B?bnRZc2N1MEtTdEg2QndMbmkzRHdHR2phdnR2NlIrOGlYelRtcTBFdXVZU0tv?=
 =?utf-8?B?VHc9PQ==?=
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	uBRZpnfzBbiwGhcaCG8gYt3n1SkmEmjsfvWUD2bjrUplideW33KuIOOyPzz2ki0x+5i71HMCDpkwh5im1gJDpoAr7Nt8sXR+81l+lwSgxew6qZWqK8FPJzCtWl7quxfDzZQ+jVOEUxKyY/jNsfuXa0sXm3qqXAPMb/Dz/OcmFlxgMMMWkNjuZVBLu3zY+x4o0n451rzRw5DTVfGTd1ttnK0b8na7V+PnO25FOgH5pfHuBxQmNp93G+c9EMWM16/sKvhpQeOmIRLERvsflXMB32GpiUCnA7SJ7QFCBrD/X1nf4e5O0ZDtrWQ6gNTX7GOGPcKS8l2zDslhBMJzF6n+CvY1kdfgYoTqfnrqBxsFsLgPb8uJohAgmWU7yr2BZ6k61Tvwp8x5FHoMwdY7pzT/eZyIwSZyqakBJbv/Ixg/uPOaOc8pCczqBVqTIXsw+oDn6txueplt03A9aP4OcmWznBJezXfv35ZXvoTf2DVDetbt2MJnM4mz/W/4XYJnazeHLIf2693SKaZShfTYyNryQD1uUnOLc1XGvMIdOyGeTLZ044E66rswVAfk66x+N4xKjPP2pCytVlzwX4VbX84sDhBivk22AfQwQVeGERNtfyo=
X-OriginatorOrg: oracle.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a80a4b30-31da-45f5-9156-08dd75b7ecc1
X-MS-Exchange-CrossTenant-AuthSource: PH7PR10MB6505.namprd10.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Apr 2025 09:38:17.2703
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: stJV6/9n/mPw2VRgw6Cus5SBCl6DSNZBZJyhoG3Ankf5tWOudtx3XQyrHRL8X5tAK9Y0sGZLX6l1KtZGw+AEL/qoMZ5JxAGWsc7ZV5maMTY=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN0PR10MB5936
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1095,Hydra:6.0.680,FMLib:17.12.68.34
 definitions=2025-04-07_03,2025-04-03_03,2024-11-22_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 bulkscore=0 mlxscore=0
 mlxlogscore=999 suspectscore=0 adultscore=0 spamscore=0 phishscore=0
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2502280000
 definitions=main-2504070069
X-Proofpoint-ORIG-GUID: wMZemOE0Xy-BTeesgZ5fSknVNFxDov9b
X-Proofpoint-GUID: wMZemOE0Xy-BTeesgZ5fSknVNFxDov9b


On 07/04/25 12:44 PM, Greg KH wrote:
> On Mon, Apr 07, 2025 at 12:02:35AM -0700, Harshvardhan Jha wrote:
>> [ Upstream commit 099606a7b2d53e99ce31af42894c1fc9d77c6db9]
> Wrong git id :(

Ah my bad is it 85fcb57c983f423180ba6ec5d0034242da05cc54 instead?

Harshvardhan



From xen-devel-bounces@lists.xenproject.org Mon Apr 07 09:46:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 09:46:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.939563.1339607 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1j45-0007rj-Gt; Mon, 07 Apr 2025 09:46:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 939563.1339607; Mon, 07 Apr 2025 09:46: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 1u1j45-0007rY-EK; Mon, 07 Apr 2025 09:46:49 +0000
Received: by outflank-mailman (input) for mailman id 939563;
 Mon, 07 Apr 2025 09:46: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=ZxXC=WZ=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u1j44-0007rS-Bf
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 09:46:48 +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 38929def-1395-11f0-9eaa-5ba50f476ded;
 Mon, 07 Apr 2025 11:46:47 +0200 (CEST)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-43ce71582e9so26941955e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 07 Apr 2025 02:46:47 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39c301b6321sm11331147f8f.44.2025.04.07.02.46.45
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 07 Apr 2025 02:46: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: 38929def-1395-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744019206; x=1744624006; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Q9Rxj8na687ZMGEjQTgq/EUZvBfnVbV270+SZC0D7a8=;
        b=LxcbI1nV3MpMIRDGUoaBZhZV7PdwmU4DhlLwV8YqcOYMxiovksqc3mMGpPxW4dquGJ
         3YTXTkrLpgBezcS4tO9Usu0KNOJ/rEqKDzZhod0zl57lWvMKU0IzUaSAlr8HWxPtQqD6
         F8Ak8micPbk2Bc/Yy3wyOU1HGrZsbORnme11E=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744019206; x=1744624006;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Q9Rxj8na687ZMGEjQTgq/EUZvBfnVbV270+SZC0D7a8=;
        b=OZQi5O1Y6x6BN48m0fhZWbgqhndZJ2MYfylE52Wwhj/b3uojQo3AJYVrwwLRHZY1PT
         K6hon+4msFn3bI9iQ3sOm0XcUVE04LYv9nuSpghqnqZ2VnReyJm8wlv+fp+bmfAaNzj5
         W+mrs3k9DQBwvvzeKWx+oVYjIZK5lG1TtYpca8KHoPorSvr92HxeGYvBlEQf7cLfqJd8
         LYyzww3sj7cZj6jhcBpcKKXyXLPYeyu2Ba7kbSj4gE8WZFo+6W2plmYTazq1qJ4A5h/6
         nEPRzVMDqqb32cHALP5oz5CVe54na2kq1W97+eDfKxFPUESZ6gNPVMdchpVGiiIF1ELl
         FTyw==
X-Forwarded-Encrypted: i=1; AJvYcCUucx17THu9joVzaYch9L5kd2VawOQH8yE1CoXv7fWwjHi+sKTq8/F8hzzhhOCB0wsXp6IAP8SxsKA=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxd+sxDAIgyi3cL2Vgq5ViNr+gP47qSVj2qSWy1NUkYA6BBcal9
	9QGj61kLmL/Bm1N0kkdu1aSOsXo6UfoBAE1VeJeS/63L3JDsZOjGci4irYyDj+Q=
X-Gm-Gg: ASbGnctCrueyss4l8zhy4Ft95vG692ydwIoP+t0ZFMn+oPmNwc4sYch/QQEKOaK+X0j
	YuecWMzRve2bfGDR4c3jiLGQ26FSSr8/nsnJT7HZc/7Q+RPHfUKvlNP5iGw0Dqcrd/LwcJLVchG
	lcCAHM4dqFgduBREIfMgMu9EXhf671pbhiGm3rbSzeLIu6Hm4ocUJ2f+I901/rdeLJNIfeaSh6k
	qCHcqqwK888pQlVH74uNAAlhCM7fnFEbYfumet/PJ9fql7G+qa2lNhSVsZAcG1topQbaqXB6XXP
	B3qfS18DzYFaXK1J9UuBGrMUdjMQjRz9VJgEU3nSA2fwrXILOYKNLJRE1bfohCxe3Th+4J4tpeA
	Z+TtVNxf+cg==
X-Google-Smtp-Source: AGHT+IH6FI+ujPPGPgRhSMAYv1BnHRf7r4ncmYXBW16PC/OWv3ux2Q4dRRS8YuqnBcE4MHECztajcA==
X-Received: by 2002:a05:6000:4304:b0:39c:12ce:1052 with SMTP id ffacd0b85a97d-39d07bcd00dmr9287646f8f.7.1744019206403;
        Mon, 07 Apr 2025 02:46:46 -0700 (PDT)
Message-ID: <059fb994-e5e1-43e2-98ee-d7ae44137892@citrix.com>
Date: Mon, 7 Apr 2025 10:46:45 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3] x86/vmx: Rework VMX wrappers using `asm goto()`
To: dmkhn@proton.me, xen-devel@lists.xenproject.org
Cc: jbeulich@suse.com, roger.pau@citrix.com, dmukhin@ford.com
References: <20250405012729.3109108-1-dmukhin@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: <20250405012729.3109108-1-dmukhin@ford.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 05/04/2025 2:27 am, dmkhn@proton.me wrote:
> diff --git a/xen/arch/x86/include/asm/hvm/vmx/vmx.h b/xen/arch/x86/include/asm/hvm/vmx/vmx.h
> index affb3a8bd6..6aa6e1f212 100644
> --- a/xen/arch/x86/include/asm/hvm/vmx/vmx.h
> +++ b/xen/arch/x86/include/asm/hvm/vmx/vmx.h
> @@ -294,28 +294,30 @@ extern uint8_t posted_intr_vector;
>  
>  static always_inline void __vmptrld(u64 addr)
>  {
> -    asm volatile ( "vmptrld %0\n\t"
> -                   /* CF==1 or ZF==1 --> BUG() */
> -                   UNLIKELY_START(be, vmptrld)
> -                   _ASM_BUGFRAME_TEXT(0)
> -                   UNLIKELY_END_SECTION
> -                   :
> -                   : "m" (addr),
> -                     _ASM_BUGFRAME_INFO(BUGFRAME_bug, __LINE__, __FILE__, 0)
> -                   : "memory" );
> +    asm goto ( "vmptrld %[addr]\n\t"
> +               "jbe %l[vmfail]\n"

This should be without \n too, as it's the last line of assembly.

I've fixed on commit.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Apr 07 09:57:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 09:57:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.939576.1339617 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1jE1-0002Jl-CV; Mon, 07 Apr 2025 09:57:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 939576.1339617; Mon, 07 Apr 2025 09:57: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 1u1jE1-0002Je-9x; Mon, 07 Apr 2025 09:57:05 +0000
Received: by outflank-mailman (input) for mailman id 939576;
 Mon, 07 Apr 2025 09:57: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=oSN7=WZ=bounce.vates.tech=bounce-md_30504962.67f3a16d.v1-abb03f902c2a4b65aa50fc8992853cb0@srs-se1.protection.inumbo.net>)
 id 1u1jE0-0002JY-K9
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 09:57:04 +0000
Received: from mail186-2.suw21.mandrillapp.com
 (mail186-2.suw21.mandrillapp.com [198.2.186.2])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a71c02e5-1396-11f0-9eaa-5ba50f476ded;
 Mon, 07 Apr 2025 11:57:02 +0200 (CEST)
Received: from pmta10.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail186-2.suw21.mandrillapp.com (Mailchimp) with ESMTP id 4ZWPkj1k3WzS62H7s
 for <xen-devel@lists.xenproject.org>; Mon,  7 Apr 2025 09:57:01 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 abb03f902c2a4b65aa50fc8992853cb0; Mon, 07 Apr 2025 09:57: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: a71c02e5-1396-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1744019821; x=1744289821;
	bh=3cb8XmT2NOPq5MmcrYAt/T5aucZmNrYNwls+mNubRPs=;
	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=Hx1btvLKHtqhdEFxqTiueXB8IzcZx5L79Q8hkX2x88w+tSTt07uH7RDC35R2AOJu5
	 KLcgZBqhK/9O4HIe/UxPtDJV42n7pUHc5r3/PdGWIbElHuvxmvvpaV64KKWRwk4Um1
	 6+rIwzSrnisBsN0A7C34b8bWHUqUKmgMUvnplxOw4DYy71+prRvtgCV8ecu1jO7yUy
	 x+T7k1c+mIyDgQ6018mynGA1lsfRWJ3WYQLOZDGmLkzNGlaS2aJAk7z/warf9H/MFy
	 raqXMvqHdpbqgysO1AJL297DmBAIXgkXLuU+okiy4xtbiwygLki/UhQW2QUUv99fq1
	 gjdnEooXbuxLQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1744019821; x=1744280321; i=anthony.perard@vates.tech;
	bh=3cb8XmT2NOPq5MmcrYAt/T5aucZmNrYNwls+mNubRPs=;
	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=iT0qptwB1hTyiZyOnI0fMpahyq42rrOqTtWyjug/dE5cgd3aYT0jbBdzg6FMYm7Kh
	 D4Y9NIjExS7bK6sXQpFWDKgEbxosR5weoAxck7akqmAPdoi6IFFworzkeGgerZWCht
	 Y+ZGZfzCN/9g46VE6xS2vdUHQBZRh8d4+8H2/bqpwGygXUSPQTppMVFUvinOm6gaM4
	 V4X10bs2H9TPBUlcoxqFW8h16APzbXRUGxMEcwhuKK2ShJkbxZ2nChZLSLURobr7AY
	 17bHwnHIXMLPXiqnpkETVe4jhC7KPjfNdz7Bfr9eD9GeHcyc+DL2on5LUKbAigNUq+
	 6IOLcI835ZKxw==
From: "Anthony PERARD" <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=20v3=203/3]=20xen:=20debug:=20gcov:=20add=20condition=20coverage=20support?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1744019819947
To: "Volodymyr Babchuk" <Volodymyr_Babchuk@epam.com>
Cc: "Jan Beulich" <jbeulich@suse.com>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "Michal Orzel" <michal.orzel@amd.com>, "Julien Grall" <julien@xen.org>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Stefano Stabellini" <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
Message-Id: <Z_Oha7JXI2vf4uXo@l14>
References: <20250401011744.2267367-1-volodymyr_babchuk@epam.com> <20250401011744.2267367-4-volodymyr_babchuk@epam.com> <7281b7d8-ba7b-4658-82f1-a63d66c1baff@suse.com> <87mscvffo8.fsf@epam.com>
In-Reply-To: <87mscvffo8.fsf@epam.com>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.abb03f902c2a4b65aa50fc8992853cb0?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250407:md
Date: Mon, 07 Apr 2025 09:57:01 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Sat, Apr 05, 2025 at 03:30:49AM +0000, Volodymyr Babchuk wrote:
> --- a/xen/Rules.mk
> +++ b/xen/Rules.mk
> @@ -133,18 +133,19 @@ $(filter %.init.o,$(obj-y) $(obj-bin-y) $(extra-y)): CFLAGS-y += -DINIT_SECTIONS
>  
>  non-init-objects = $(filter-out %.init.o, $(obj-y) $(obj-bin-y) $(extra-y))
>  
> -ifeq ($(CONFIG_COVERAGE),y)

This removes an "ifeq ()", so you probably need to remove and "endif"
somewhere else, which doesn't appear in this snippet.

>  ifeq ($(CONFIG_CC_IS_CLANG),y)
> -    COV_FLAGS := -fprofile-instr-generate -fcoverage-mapping
> +    cov-flags-$(CONFIG_COVERAGE) := -fprofile-instr-generate -fcoverage-mapping

If you do this assignment like that, it would be better to make sure
$(cov-flags-y) is initialised properly, that is have a:

  cov-flags-y :=

before the first conditional assignment, then have all conditional
assignment be +=.

>  else
> -    COV_FLAGS := -fprofile-arcs -ftest-coverage
> +    cov-flags-$(CONFIG_COVERAGE) := -fprofile-arcs -ftest-coverage
> +    cov-flags-$(CONFIG_CONDITION_COVERAGE) += -fcondition-coverage

What happen if CONFIG_CONDITION_COVERAGE=y but CONFIG_COVERAGE=n ?

>  endif
>  
> -# Reset COV_FLAGS in cases where an objects has another one as prerequisite
> +# Reset cov-flags-y in cases where an objects has another one as prerequisite
>  $(nocov-y) $(filter %.init.o, $(obj-y) $(obj-bin-y) $(extra-y)): \
> -    COV_FLAGS :=
> +    cov-flags-y :=
>  
> -$(non-init-objects): _c_flags += $(COV_FLAGS)
> +$(non-init-objects): _c_flags += $(cov-flags-y)
>  endif

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 Apr 07 10:09:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 10:09:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.939589.1339628 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1jQI-0005Ga-Es; Mon, 07 Apr 2025 10:09:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 939589.1339628; Mon, 07 Apr 2025 10:09: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 1u1jQI-0005GT-BK; Mon, 07 Apr 2025 10:09:46 +0000
Received: by outflank-mailman (input) for mailman id 939589;
 Mon, 07 Apr 2025 10: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=C/xl=WZ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u1jQH-0005GL-GY
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 10:09:45 +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 6bb43417-1398-11f0-9ffb-bf95429c2676;
 Mon, 07 Apr 2025 12:09:41 +0200 (CEST)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-43cf628cb14so33839525e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 07 Apr 2025 03:09:41 -0700 (PDT)
Received: from [10.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-43ec342a1fesm126845145e9.3.2025.04.07.03.09.39
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 07 Apr 2025 03:09: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: 6bb43417-1398-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744020581; x=1744625381; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=AhP1AQBGNc83wnsfiwp7skWV7p2PKliYKPvBZlWWSro=;
        b=Yqp/6u0LeNb290nma1jnJQYr5Zf3RGfeKivkb8GSR5B1fXD7IjQk+Juxtc2Mrygl7U
         vnQBtSY71UjfFQhQtDc0QJQDYeqoNRwFQXUeu7xq5JqTayRLZ+hy7a8dUxgOdEChHbCX
         eepOX3ClhunybC+O2rT+vWG/cOVU0QYpxaCF8lodfN8w3Gt4B22o7gT4jEz9iRjn23fA
         kjZ/PJ6HfEy7HjDJJ/obXWY4H29busej5T1KMZ/PSktbs6q3RWRdpgtoGNYd8Ys95rs9
         rmQNn05l6xAFHUGI5Pl4gHn+Kr3miY4DJtfqWE77cXX5qAjjpURXVVV8ChPv96grW7i8
         z3uw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744020581; x=1744625381;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=AhP1AQBGNc83wnsfiwp7skWV7p2PKliYKPvBZlWWSro=;
        b=eda82Dy3Dn7x0hLjNs0TRKLK1nhhhH/2zdl+zBf/o74v+92xScbHw+gHuzvnBTew3r
         CO/s/KqPuX4V5zJB5q0U8ypa+H8uXGzfkbutaLDYkEWl6PTuGgR9s+2Uci7lEp9ZSMFn
         ao/tcX3XcVqGr5MtP+p9Xo9gO5xqJNws+TAEI+2oVAzlbTI5ef1ODjfTotf6MuCwTOVz
         LhTnEG0pxhXKitD3WT9XVuasf8EMZhPfJasiw45C6kDywuJLPL20uhrKWaYBH+tUUekK
         jBDdWYFsgoY7BBCLvd8RizacFg/jTMjI7+VnUF8CP9Ei6FJryAqlMUxHzgB2I4o5taEP
         n9aA==
X-Forwarded-Encrypted: i=1; AJvYcCVOyqBT4fo5xbNEFZ0eePEfHDCkl3lwcao/VoQub0SWcVnhPcmaCCW3OBouod/SQkQnVvDOgTtMF6E=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw1HZ95G7KV/HjtWH8w4jn/fNX1HUltqPu8BsVa+JoFZ2XRW7F6
	uviI3l9BB4yfRYt855hkn6T5hrxtZg4BdiY9AlVVY8do9cUaisluLIiuLEoTCg==
X-Gm-Gg: ASbGncvofMtZu3j/Y7r36q1k96lI/QqocjZNIS0BAObWCWSeDeZ2dhdCu7tYxJaY+Hw
	B6GouTNFslLzvmrp+xFKzAGYpjit8uxW94N2v4apDNTyifczdmjviuKVW2b8RQA2EEYGEg8uq53
	msfKAeYuknizRe9MwxU+rtk/BjvJhveBv21IhJpDm7cSj5Y/VsCJhSQvxcjEsGJNXpM5MINn7DP
	dR+ioDTb+pZSBsn+TGQ6wzZhCf1XiLLiYOMnqfzSiZh1FjBd6AMO+A/XEpYSPV7mMGzeAJDpaNd
	sj0Cm5r6yBFb9rwAj9MBiIfp6wzdLdMLidB+Gbu1dT3dq+AbnAna2Mki8BBXYyam6puL5Q+A5Jg
	LH+vA6lMbLjQBrlL5bgkVnPMxL8oQPQ==
X-Google-Smtp-Source: AGHT+IG+yy8Sx+s/6LIO6gEepdoVZ0wWGSvaPvdVxkDtcCTwOag8jc+POcxoXgNCcEs4v/3R0prsKA==
X-Received: by 2002:a05:600c:1d8e:b0:43d:fa5f:7d30 with SMTP id 5b1f17b1804b1-43ecef0230cmr106391095e9.16.1744020580728;
        Mon, 07 Apr 2025 03:09:40 -0700 (PDT)
Message-ID: <e5f6ccb3-498f-44cf-8c06-61fa502d93db@suse.com>
Date: Mon, 7 Apr 2025 12:09:42 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] xen/riscv: Increase XEN_VIRT_SIZE
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <808d1b346bc90dde38fd19a6b92ab78d78e42936.1743766932.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: <808d1b346bc90dde38fd19a6b92ab78d78e42936.1743766932.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 04.04.2025 18:04, Oleksii Kurochko wrote:
> --- a/xen/arch/riscv/include/asm/config.h
> +++ b/xen/arch/riscv/include/asm/config.h
> @@ -41,11 +41,11 @@
>   * Start addr          | End addr         | Slot       | area description
>   * ============================================================================
>   *                   .....                 L2 511          Unused
> - *  0xffffffffc0a00000  0xffffffffc0bfffff L2 511          Fixmap
> + *  0xffffffffc1800000  0xffffffffc1afffff L2 511          Fixmap

Isn't the upper bound 0xffffffffc19fffff now?

> --- a/xen/arch/riscv/include/asm/mm.h
> +++ b/xen/arch/riscv/include/asm/mm.h
> @@ -43,13 +43,19 @@ static inline void *maddr_to_virt(paddr_t ma)
>   */
>  static inline unsigned long virt_to_maddr(unsigned long va)
>  {
> +    const unsigned int vpn1_shift = PAGETABLE_ORDER + PAGE_SHIFT;
> +    const unsigned long va_vpn = va >> vpn1_shift;
> +    const unsigned long xen_virt_start_vpn =
> +        _AC(XEN_VIRT_START, UL) >> vpn1_shift;
> +    const unsigned long xen_virt_end_vpn =
> +        xen_virt_start_vpn + ((XEN_VIRT_SIZE >> vpn1_shift) - 1);
> +
>      if ((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)) ==
> -           (_AC(XEN_VIRT_START, UL) >> (PAGETABLE_ORDER + PAGE_SHIFT)));
> +    BUILD_BUG_ON(XEN_VIRT_SIZE > GB(1));
> +    ASSERT((va_vpn >= xen_virt_start_vpn) && (va_vpn <= xen_virt_end_vpn));

Not all of the range is backed by memory, and for the excess space the
translation is therefore (likely) wrong. Which better would be caught by
the assertion?

> --- a/xen/arch/riscv/mm.c
> +++ b/xen/arch/riscv/mm.c
> @@ -31,20 +31,27 @@ unsigned long __ro_after_init phys_offset; /* = load_start - XEN_VIRT_START */
>  #define LOAD_TO_LINK(addr) ((unsigned long)(addr) - phys_offset)
>  
>  /*
> - * It is expected that Xen won't be more then 2 MB.
> + * It is expected that Xen won't be more then XEN_VIRT_SIZE MB.
>   * The check in xen.lds.S guarantees that.
> - * At least 3 page tables (in case of Sv39 ) are needed to cover 2 MB.
> - * One for each page level table with PAGE_SIZE = 4 Kb.
>   *
> - * One L0 page table can cover 2 MB(512 entries of one page table * PAGE_SIZE).
> + * Root page table is shared with the initial mapping and is declared
> + * separetely. (look at stage1_pgtbl_root)
>   *
> - * It might be needed one more page table in case when Xen load address
> - * isn't 2 MB aligned.
> + * An amount of page tables between root page table and L0 page table
> + * (in the case of Sv39 it covers L1 table):
> + *   (CONFIG_PAGING_LEVELS - 2) are needed for an identity mapping and
> + *   the same amount are needed for Xen.
>   *
> - * CONFIG_PAGING_LEVELS page tables are needed for the identity mapping,
> - * except that the root page table is shared with the initial mapping
> + * An amount of L0 page tables:
> + *   (512 entries of one L0 page table covers 2MB == 1<<XEN_PT_LEVEL_SHIFT(1))
> + *   XEN_VIRT_SIZE >> XEN_PT_LEVEL_SHIFT(1) are needed for Xen and
> + *   one L0 is needed for indenity mapping.
> + *
> + *   It might be needed one more page table in case when Xen load
> + *   address isn't 2 MB aligned.

Shouldn't we guarantee that? What may require an extra page table is when Xen
crosses a 1Gb boundary (unless we also guaranteed that it won't).

Jan


From xen-devel-bounces@lists.xenproject.org Mon Apr 07 10:16:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 10:16:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.939602.1339638 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1jWW-00084N-2M; Mon, 07 Apr 2025 10:16:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 939602.1339638; Mon, 07 Apr 2025 10: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 1u1jWV-00084G-W3; Mon, 07 Apr 2025 10:16:11 +0000
Received: by outflank-mailman (input) for mailman id 939602;
 Mon, 07 Apr 2025 10:16: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=C/xl=WZ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u1jWV-000849-2h
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 10:16:11 +0000
Received: from mail-wm1-x336.google.com (mail-wm1-x336.google.com
 [2a00:1450:4864:20::336])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 532124a4-1399-11f0-9eaa-5ba50f476ded;
 Mon, 07 Apr 2025 12:16:10 +0200 (CEST)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-43d0c18e84eso21027005e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 07 Apr 2025 03:16:09 -0700 (PDT)
Received: from [10.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-39c301a7586sm11753830f8f.38.2025.04.07.03.16.08
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 07 Apr 2025 03:16: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: 532124a4-1399-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744020969; x=1744625769; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=bHToPq3hU6vHCAdEc+LzmHWzJ4zloRX0sKIBDn3PMg8=;
        b=PgGxH1HYUdBx4cczu8CPQEIrhBzz5eaXgClbW64LU01a9CBisyQcl7DxzLHlBqgHih
         fsPQ+ZrK0Di2jvQDf14Hzp6wtgs9FHdaC+KCBy4f1I5SK/4yOsHbZEzOOaN/TDgKhXu0
         LgyC8VI0r3EgmD4Lce6UX8rQAfxImtdQuybdYj8ItMQq8EHD+f3KIjiByIvkDekLAkaH
         ZyhfOVyLBpc8y/dNtN7lUGBrXPXeVvwkweyqd4u0gcnTFPM5G5APOuXPto1VEUiki4H9
         6MlOC48tQ1iT/+dd9QFufO8hyLL8MiVI1AJDZK/B9dSh3daxLGhtWX1BadA+9Si6u+SJ
         CxMw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744020969; x=1744625769;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=bHToPq3hU6vHCAdEc+LzmHWzJ4zloRX0sKIBDn3PMg8=;
        b=WahdncvQ5HU1zd+1v5W+wfCmDrSyQo9hqgk4ucSqc2DADoGSkzdqQlNE6vAjuByvUN
         jlF7Ou/VbWS/w1bJCjptdjN6IJEA/oPhQ2hRSPSSmSpiDxrf8suBAZa+715Rfdly2MXP
         9OSgdJWA9+27f8QM5MseqEX4pg6GG9NUE706ebrkvQUFQE/t5XlsGb2mVh6+JNi52wcN
         bnoP/nmqZtKJAWBxNL6lSgoFXULM+GxxFyPUb7m3qIikMadT0+tgXOPhLGHqNICMkXWe
         mx68ItJOr7cQwK+dhtW8j7C03JizCwadBm3Q26CLlkWjjFxeH+Tqlo90wpSnzjD+FiLj
         Q5AQ==
X-Forwarded-Encrypted: i=1; AJvYcCUKA6BFlw2eZP/BTB6jfAUbeaRmbw+QDdaX5QMRgN+plc6M0lZpi8W4lSaiCoOUrOwzYNJrBt7AGLk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxjnMyp/zEeZhusm53nTA8N5krH9CoQUN55m6MsqmR0mZxlB21U
	cURj6f2tOXCOCi6rGuMZlfxKUo6H07PMROXV6grHvMY/qa6jW0vx6zeIVOwmew==
X-Gm-Gg: ASbGncsnz9PVE2MxYNqAKDWZ3cwScvJeHx2FW4gh8Le/K5E0XaRYNlk/UpXZlrtjAc0
	4HaCztXFcrLWCmMJp3GY8i9zk/jgY7MKPg4wPXrW6yypRSbbE9+9xcPYRy3MVRCsOMDqIDQxo87
	qLOj+ntFbOM1sBuSTPm2asSfkl0g39zVIWbB4tePW/xr/efg1v5CpeI0PaaOSIbfhq8ZJQZ39y4
	uyj4loXzgn7wcLzUWwOuGj5uTGwa5q1pkNDfKowQSOXaIafQiMClG3jTivrrwaKanA8kECs97K7
	z9VYGo7nWVMYaBsej/q5V/O/9vyyBovPdwc4d2GLDO7mB8teQ5j2FkyUNWU2mYtgekHI/BgIkJx
	WEOp3vRXVF+Vsmqk1+rQTcoHo+YMChQ==
X-Google-Smtp-Source: AGHT+IFBH7sJckI7VvP/f+bEBgTMxQnkFKI0QZ2VJRr6xnEaJUQCc8IAMdu+1Fum05W1ULLp91igqA==
X-Received: by 2002:a05:600c:a51:b0:43c:fc04:6d48 with SMTP id 5b1f17b1804b1-43ee3e9c7d5mr78187975e9.0.1744020968919;
        Mon, 07 Apr 2025 03:16:08 -0700 (PDT)
Message-ID: <77a538db-5a63-4abb-ad6b-1ac1fc174029@suse.com>
Date: Mon, 7 Apr 2025 12:16:11 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] sched/null: avoid another crash after failed domU
 creation
To: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>,
 Stewart Hildebrand <stewart.hildebrand@amd.com>
Cc: Dario Faggioli <dfaggioli@suse.com>, George Dunlap <gwd@xenproject.org>,
 xen-devel@lists.xenproject.org
References: <20250403214829.128294-1-stewart.hildebrand@amd.com>
 <2b8e33f7-7e51-4ab5-ba1e-9d30d14be3bb@suse.com>
 <a03cd26b-c1b0-44d3-8bd8-f9c24d7ada5a@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: <a03cd26b-c1b0-44d3-8bd8-f9c24d7ada5a@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 04.04.2025 09:38, Jürgen Groß wrote:
> On 04.04.25 09:24, Jan Beulich wrote:
>> On 03.04.2025 23:48, Stewart Hildebrand wrote:
>>> The following sequence of events may lead a debug build of Xen to crash
>>> when using the null scheduler:
>>>
>>> 1. domain creation (e.g. d1) failed due to bad configuration
>>> 2. complete_domain_destroy() was deferred
>>> 3. domain creation (e.g. d2) succeeds
>>>
>>> At this point, d2 is running, while the zombie d1 is not fully cleaned
>>> up:
>>>
>>> (XEN) Online Cpus: 0-3
>>> (XEN) Cpupool 0:
>>> (XEN) Cpus: 0-3
>>> (XEN) Scheduling granularity: cpu, 1 CPU per sched-resource
>>> (XEN) Scheduler: null Scheduler (null)
>>> (XEN)   cpus_free = 3
>>> (XEN) Domain info:
>>> (XEN)   Domain: 0
>>> (XEN)     1: [0.0] pcpu=0
>>> (XEN)     2: [0.1] pcpu=1
>>> (XEN)   Domain: 1
>>> (XEN)     3: [1.0] pcpu=2
>>> (XEN)   Domain: 2
>>> (XEN)     4: [2.0] pcpu=2
>>>
>>> 4. complete_domain_destroy() gets called for d1 and triggers the
>>> following:
>>>
>>> (XEN) Xen call trace:
>>> (XEN)    [<00000a0000322ed4>] null.c#unit_deassign+0x2d8/0xb70 (PC)
>>> (XEN)    [<00000a000032457c>] null.c#null_unit_remove+0x670/0xba8 (LR)
>>> (XEN)    [<00000a000032457c>] null.c#null_unit_remove+0x670/0xba8
>>> (XEN)    [<00000a0000336404>] sched_destroy_vcpu+0x354/0x8fc
>>> (XEN)    [<00000a0000227324>] domain.c#complete_domain_destroy+0x11c/0x49c
>>> (XEN)    [<00000a000029fbd0>] rcupdate.c#rcu_do_batch+0x94/0x3d0
>>> (XEN)    [<00000a00002a10c0>] rcupdate.c#__rcu_process_callbacks+0x160/0x5f4
>>> (XEN)    [<00000a00002a1e60>] rcupdate.c#rcu_process_callbacks+0xcc/0x1b0
>>> (XEN)    [<00000a00002a3460>] softirq.c#__do_softirq+0x1f4/0x3d8
>>> (XEN)    [<00000a00002a37c4>] do_softirq+0x14/0x1c
>>> (XEN)    [<00000a0000465260>] traps.c#check_for_pcpu_work+0x30/0xb8
>>> (XEN)    [<00000a000046bb08>] leave_hypervisor_to_guest+0x28/0x198
>>> (XEN)    [<00000a0000409c84>] entry.o#guest_sync_slowpath+0xac/0xd8
>>> (XEN)
>>> (XEN) ****************************************
>>> (XEN) Panic on CPU 0:
>>> (XEN) Assertion 'npc->unit == unit' failed at common/sched/null.c:383
>>> (XEN) ****************************************
>>>
>>> Fix by skipping unit_deassign() when the unit to be removed does not
>>> match the pcpu's currently assigned unit.
>>>
>>> Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
>>
>> Just one remark here: This almost certainly wants a Fixes: tag.
> 
> This will probably be d671da3be3ca (the initial NULL scheduler commit).

The code in question was added by c2eae2614c8f ("sched/null: avoid crash
after failed domU creation").

Jan


From xen-devel-bounces@lists.xenproject.org Mon Apr 07 10:20:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 10:20:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.939618.1339649 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1jb7-0001r1-PW; Mon, 07 Apr 2025 10:20:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 939618.1339649; Mon, 07 Apr 2025 10:20:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1jb7-0001qu-Ks; Mon, 07 Apr 2025 10:20:57 +0000
Received: by outflank-mailman (input) for mailman id 939618;
 Mon, 07 Apr 2025 10:20: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=cV/f=WZ=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u1jb6-0001qo-KC
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 10:20:56 +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 fdaa4b97-1399-11f0-9eaa-5ba50f476ded;
 Mon, 07 Apr 2025 12:20:55 +0200 (CEST)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-ac2902f7c2aso736390566b.1
 for <xen-devel@lists.xenproject.org>; Mon, 07 Apr 2025 03:20:55 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 a640c23a62f3a-ac7bfe5c7f7sm712686266b.20.2025.04.07.03.20.54
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 07 Apr 2025 03:20: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: fdaa4b97-1399-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744021255; x=1744626055; 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=athitrIlFUHEiEDxf+01r51uYAvDaVmfFgQ/U9/E5OE=;
        b=n4Eu+ix2QgQh7Kf+yIWsoKN09aA7Twem6BtnZ/To5vTkYFda56H/inoh6+U35rwCpl
         WFuSI0aAWKswADYmm5Tw255xcbZx8J8JQNk4371gy2xjE85FpDtAKMDJnI6BLX0ETEEj
         LkeJYsCjrlxVDZT/+GL4+q22DROLxMXBwitpo=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744021255; x=1744626055;
        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=athitrIlFUHEiEDxf+01r51uYAvDaVmfFgQ/U9/E5OE=;
        b=iLo0ZqFgFSNGxI/GkxyCtWapGALBtOe5sHIRK074YDypq6/ObqPv0xzFnv2e2b+pG4
         jSeElYbMg3THLXlFepvracwFmXohyvOKZqruP1PZh6cq7Jsztn4ODScOZ1IID0kd5SwA
         0MLgofQd8CHZwg3YDhIxjzzNcv0kihrVbT7jh9BCJfc2PIQZ+JE7eH6NEh8cn8J2nnst
         fPTmuUiyYwbc5ku1kggNSCvRwVGaG1zvgj5/lkr1ogi77zoC4HeXp0QZO0PLadHr329v
         jtIVhnzTvQLs2YlhgnmKp8CPdxqXg7qzdfo44GRUqM5XHC4SJi4HYORgNpJvN6Spaj6p
         rIbw==
X-Gm-Message-State: AOJu0Yzel5KdUoQmR4nJjGSTSm13nBDy8aWD+O5hyWPHh0ICQ9EVoX42
	u+GPKVEjJlpWqovHaAgMIUDzTwMKGv2cXSwc1RXtWxFW1Tn6mlVC1v7URHbC3cjb1/wbqLFi3+S
	x
X-Gm-Gg: ASbGnctsac7DW+c9J1PWL8ZvSnTT6PfECaWgyopnqG0D1eSZn8olhqjIFh0HervJEij
	fKa22JyxX+tzskfVKxERKOaoTy48oYCvpusMQG+I3XLeY1gV1/gmHrFGKHzSfd4SgIzKQO3mdgv
	HIgtJJsEZ+hVKVrxahagkBRq7WNjOL5W7XM8uHhlllh2ullafL+FavAxYCeEWo1AfHqpXCV06C0
	8EvwD87EGnbdorNks9/LVjp4tLgCkzP6XTxnQeAmK6COLqizfitYArVVcjnz5r8nMTxlhaq06g4
	swanh1Ukxin3YPdDEolWS0+PmqvvfKtdJvbnsN/GdilnDBN6nQ==
X-Google-Smtp-Source: AGHT+IF18aluJtArY+4Lz8Yl8WYJsCo+sYSabuDUCe0n35NtXxKE47amets788BoPar+JoY3CYd37A==
X-Received: by 2002:a17:907:9728:b0:ac2:87b0:e4a5 with SMTP id a640c23a62f3a-ac7d6c9e900mr866928266b.2.1744021254787;
        Mon, 07 Apr 2025 03:20:54 -0700 (PDT)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org,
	linux-kernel@vger.kernel.org
Cc: Stefano Stabellini <sstabellini@kernel.org>,
	jason.andryuk@amd.com,
	Xenia.Ragiadakou@amd.com,
	Alejandro.GarciaVallejo@amd.com,
	Roger Pau Monne <roger.pau@citrix.com>,
	Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>
Subject: [PATCH] x86/xen: disable CPU idle and frequency drivers for PVH dom0
Date: Mon,  7 Apr 2025 12:18:41 +0200
Message-ID: <20250407101842.67228-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.48.1
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

When running as a PVH dom0 the ACPI tables exposed to Linux are (mostly)
the native ones, thus exposing the C and P states, that can lead to
attachment of CPU idle and frequency drivers.  However the entity in
control of the CPU C and P states is Xen, as dom0 doesn't have a full view
of the system load, neither has all CPUs assigned and identity pinned.

Like it's done for classic PV guests, prevent Linux from using idle or
frequency state drivers when running as a PVH dom0.

On an AMD EPYC 7543P system without this fix a Linux PVH dom0 will keep the
host CPUs spinning at 100% even when dom0 is completely idle, as it's
attempting to use the acpi_idle driver.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
 arch/x86/xen/enlighten_pvh.c | 19 ++++++++++++++++++-
 1 file changed, 18 insertions(+), 1 deletion(-)

diff --git a/arch/x86/xen/enlighten_pvh.c b/arch/x86/xen/enlighten_pvh.c
index 0e3d930bcb89..9d25d9373945 100644
--- a/arch/x86/xen/enlighten_pvh.c
+++ b/arch/x86/xen/enlighten_pvh.c
@@ -1,5 +1,7 @@
 // SPDX-License-Identifier: GPL-2.0
 #include <linux/acpi.h>
+#include <linux/cpufreq.h>
+#include <linux/cpuidle.h>
 #include <linux/export.h>
 #include <linux/mm.h>
 
@@ -123,8 +125,23 @@ static void __init pvh_arch_setup(void)
 {
 	pvh_reserve_extra_memory();
 
-	if (xen_initial_domain())
+	if (xen_initial_domain()) {
 		xen_add_preferred_consoles();
+
+		/*
+		 * Disable usage of CPU idle and frequency drivers: when
+		 * running as hardware domain the exposed native ACPI tables
+		 * causes idle and/or frequency drivers to attach and
+		 * malfunction.  It's Xen the entity that controls the idle and
+		 * frequency states.
+		 *
+		 * For unprivileged domains the exposed ACPI tables are
+		 * fabricated and don't contain such data.
+		 */
+		disable_cpuidle();
+		disable_cpufreq();
+		WARN_ON(xen_set_default_idle());
+	}
 }
 
 void __init xen_pvh_init(struct boot_params *boot_params)
-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Mon Apr 07 10:37:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 10:37:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.939637.1339669 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1jqr-0005pp-4d; Mon, 07 Apr 2025 10:37:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 939637.1339669; Mon, 07 Apr 2025 10:37:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1jqr-0005pi-1R; Mon, 07 Apr 2025 10:37:13 +0000
Received: by outflank-mailman (input) for mailman id 939637;
 Mon, 07 Apr 2025 10:37: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=taXB=WZ=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1u1jqo-0005pa-Vi
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 10:37:11 +0000
Received: from EUR03-DBA-obe.outbound.protection.outlook.com
 (mail-dbaeur03on2062d.outbound.protection.outlook.com
 [2a01:111:f403:260d::62d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3f50b321-139c-11f0-9eaa-5ba50f476ded;
 Mon, 07 Apr 2025 12:37:05 +0200 (CEST)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by AS8PR03MB6726.eurprd03.prod.outlook.com
 (2603:10a6:20b:29e::11) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.33; Mon, 7 Apr
 2025 10:37:02 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e%4]) with mapi id 15.20.8583.045; Mon, 7 Apr 2025
 10:37: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: 3f50b321-139c-11f0-9eaa-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=fwGgvcJbnGttTmrIzAcZIXholeFU0qylx89At3gA8HLmFlGBy6gkDSJwPTs9H9QHo93E9fNkNi+FOuNCKsdWD5OFgwaCtrZxWt9peyM1yZw+MhvgTxsvShHqrwdiXcV/l8i98mpFAV7twWdcKbno0Mwa6ijIIBabj4McDJ/u/3zo+Yiarp+BMPJa2ZllEtqvsaOMPV/bOwNDQ0wpHZl6/LRGmLvWuxA/gbc1HAkfe03HgIH7gCBUj4cNT8H81XSGHwnMV+7X4P5qI9s8tbC1kPMj5NzS64abdq7OBzohzYl2scIEopI9xU3MRi15drUMQroNYFPaMecquQM/nK5xOw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=rDdK1kuDQI+B9NOWUNt1I7PjSO8fjzmwaWzqKsDY3go=;
 b=c7weTQm+K8pd17+XPC8xrieyRRbIyR+mo8HWwsyR1cTetz18iPxEgJnV1wfD8aE2uwLhDe+dUfh5mnNB6Yp62KGyaSKehs8sjlg9Y54XwwdyMXchIjcbEpYhczxH9jg/uXRhQJEWFamYoMuuZNF1fQWURkMhorCleI8OK/pQpJ3f8jaoXYjAIxe7Rv2Qe5Uq/2ti2uzmBchLDZ2fRfDd26rqYDckao2pBWy/yYJw/vrasZe++nKgGrxXsxEbQ5qvV+yVJuff7h6K/YNB04W+pMj5f20XvkAEMpksuBFEzQpCaZES22OgP2cSlKykOB89eAu6b7eMw9WfJeE2xmW3+g==
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=rDdK1kuDQI+B9NOWUNt1I7PjSO8fjzmwaWzqKsDY3go=;
 b=TA024Sjg+LHNbyeoNrU/FF+M15MKvfIkgs3vwWJ6jcqSjC9n1YBetntH/rQXJrRKmY1zTrVT44HrIRIf9GxBoFHRRZHF/TT+ksYqHsvhxb0QviphscBKHw2hnFE8qtc6ZG9v8B/w/C4Smjtmrcrb8X/OcjapIuIPRPBiA7oh4Mr4YYqD5dUejL5p63cDdaQrcQQcnLgbCuabl7P6KCE/nVFIXJCNTo0JA3aMj9GkxqUV0NbCA7yWMzqKXA/ski6CTCDszyh2TpjnyWMn18q+srJUKuBnD36+29Ko+jRXmsaUwM8Ja45fMa9r+fljMeqVdesA3Tssa2QkRFXxomw8jQ==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: Anthony PERARD <anthony.perard@vates.tech>
CC: Jan Beulich <jbeulich@suse.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Michal Orzel <michal.orzel@amd.com>, Julien
 Grall <julien@xen.org>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v3 3/3] xen: debug: gcov: add condition coverage support
Thread-Topic: [PATCH v3 3/3] xen: debug: gcov: add condition coverage support
Thread-Index: AQHboqPjQYlXeZrAE0u+zEMqLR0ZhQ==
Date: Mon, 7 Apr 2025 10:37:02 +0000
Message-ID: <878qocfeb6.fsf@epam.com>
References: <20250401011744.2267367-1-volodymyr_babchuk@epam.com>
	<20250401011744.2267367-4-volodymyr_babchuk@epam.com>
	<7281b7d8-ba7b-4658-82f1-a63d66c1baff@suse.com>	<87mscvffo8.fsf@epam.com>
 <Z_Oha7JXI2vf4uXo@l14>
In-Reply-To: <Z_Oha7JXI2vf4uXo@l14> (Anthony PERARD's message of "Mon, 07 Apr
	2025 09:57:00 +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_|AS8PR03MB6726:EE_
x-ms-office365-filtering-correlation-id: 58f62565-742e-4487-ef0b-08dd75c02245
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?wWJ7eCl/1cnAamjSSbkH18wpyVwDle3usU5mS1DOIooEnrgdBGD1VBpGup?=
 =?iso-8859-1?Q?qEsUBdOC1T0MMsxr33sA4xNG6SJ4VH08ZS5UnExGXZlOPSimlJdkjSgXfp?=
 =?iso-8859-1?Q?5qwZbRmZksFoJaf35UuBkNOtK9dV5SYsZLB68FTLdczJTECWr+yUz3FYyQ?=
 =?iso-8859-1?Q?YYoEX7cX5rBOYjYXkv3RyFgHB2EFx3rhkzXMssqcqfCp6VMr46Da+Qw9r4?=
 =?iso-8859-1?Q?hSNvCCtw8iC/UIrKRsHi7/KRNktFDbwLk4lNRgiAhXZgXloUBl7qXO/bJx?=
 =?iso-8859-1?Q?2RWnQH2YodCQLBR2lx4cYEkWVI4n72Dg6qbO11O2BYBHWPcZwMAjYk3Y1W?=
 =?iso-8859-1?Q?YAmGXn/9UKLRCw4/oBDwgk8tmyZnDhYYt1llZbPpd7C+nejVy/o/kVKmGw?=
 =?iso-8859-1?Q?xlPI4wmMS9PjdFpQiPLIa+BpWPxR896v6ng8/dckmpeAHEqX4QHDDTsh7O?=
 =?iso-8859-1?Q?3IiqzWgUCb80eQnOEDShfv0PwU3PeHuLEVHBWlDy7fTBJNvJNAHfgq54pq?=
 =?iso-8859-1?Q?djtiZ46cDNwaMeRU0gUgAXgOpdtJuwwlP2bZyrzTLp3HIbV4IJMgktI6OE?=
 =?iso-8859-1?Q?GvGaSY6KARQ8u2YHmuIXgyYW5Iiu3f/ZgHCWP1ouFtZEHwCPIvvNIRSgiH?=
 =?iso-8859-1?Q?uca8wdM9TUdvgMalvoOI/TD2pDAF4PPW7qzMkyJHB1sObiCxY+NbCGcrAj?=
 =?iso-8859-1?Q?J/pWeW9d4ZGE0AMslD5yLWQP+Y32ypresLejpUlbaViu6birIPo9+AvTJF?=
 =?iso-8859-1?Q?NH/p6E4kml7g4z2kEvUPyKM5Y0EbFA3k2r1EuBzGtkYQBpQKJF/n5PvmJt?=
 =?iso-8859-1?Q?/X6nIguzojb5JRL0WeRozkfjdW3ysS/P1G4yL3gzlx3GWB3QH+2xm7zhSl?=
 =?iso-8859-1?Q?JA8tdMT7PlOWk51h+4fSXcG/Gqgg8sYwlhn5/6FM/qDB3T/P2Fv47ok91+?=
 =?iso-8859-1?Q?NtA05LapScvPdG8CC3hG9NM8g1oS4CcIvPULyie453hDj97HbAxq+fsbSK?=
 =?iso-8859-1?Q?9RoG97CUPUNM6t4lWiUjnOfIARvo8blEu6tnbIG5YwKtx9mHGdIwlcDQZ/?=
 =?iso-8859-1?Q?T1nJgidfcY2tHANbW24RGnYnJsl/ifzpUt9flRTLtUYvb1wlOmiOsEL0SJ?=
 =?iso-8859-1?Q?jcS1KU9RzYDjGXS2uUdzU504qFnBb/j5WWijvUiqzMAGsadSt7tPOejP08?=
 =?iso-8859-1?Q?1OdEKWbpnKNIAWVg4LFO7eakY1tZ88Q3laVbk5WHy0sfzk06CIjkMo2FTK?=
 =?iso-8859-1?Q?/E6fIIrfp0i7E0izGB0lwa1BEAnXcgppAz2EaTambgtuaVMGDdGIIHuNnM?=
 =?iso-8859-1?Q?0xCDMdNW0M4RTRx4HNpSoXWxqKaB9GUcTXFXTcL4jTUzqiVvfyxpCIbtt0?=
 =?iso-8859-1?Q?UlwkyMWao5dt+AHmPTuRe6RE2i2mF07BRLe4XrBljKVr7HEidNuHnQovpL?=
 =?iso-8859-1?Q?1ZM/hhmyjf6ypMiAo/6yUkSi9KISD3vphNcqnQ7OXuJUR8uj1twWvAnSWp?=
 =?iso-8859-1?Q?ZNxEvcz3LhKTzs6ogWNtP0?=
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?LUt6hALhU9SZA4S4HSbFRxXh6g9IxlQ5TxwWqNUOwc23p5cRGaRoD1Qt/i?=
 =?iso-8859-1?Q?uQkQ0VnogLbExEYEn5WxXmcFuAwntDq1FF9AlCbhiz6MOm6pxxUEWuBLtm?=
 =?iso-8859-1?Q?REP/YDewWcHnYQyn6OWhFOAcr+Q0gnjRcuH/FhXzoNWA26z23NfuIJlhCK?=
 =?iso-8859-1?Q?2u1dgGDAUbLYHnt0PgrGs10eKF3TrKqL6zGGBS8lYiIwt8jtW7xLQ/JNce?=
 =?iso-8859-1?Q?MkPPjoatgXj6UvXz4gSvtkDbdyd+8mQtsE9v0Vq/6a+Ta6Oj+ee99R26xS?=
 =?iso-8859-1?Q?szteiFwFWFqyLZ7I4OR+i+OzcutxzKVwXuoLsy40sc87OdRsDjuCzo+d0r?=
 =?iso-8859-1?Q?h1SSReh++J+OokQeJ4ZY3/oIh6iqARJjuccE0VwWB9CWKi56p91MeHWbyS?=
 =?iso-8859-1?Q?g7gM9NRhhWOZF9IV3qYRbN0Vv5cHI/JJIN2IMIuSKvcmCNL92D3tvAVeII?=
 =?iso-8859-1?Q?RDCw0WnN/OMlrGH/afpDKk8jd/0ZwqsGQU5qTRLoLa5MYmU1b7vQUUVBLr?=
 =?iso-8859-1?Q?gvJ1IvvxQarqfuy/8ycERITv3ZArSWv+9mtik4/BY7v2/So92CT2xFVn7o?=
 =?iso-8859-1?Q?oP+/FnqIhZ4mkHCKO8WkCfrWtFaNyruzVy73C/6kHhw3t9gPeWjLvaHVej?=
 =?iso-8859-1?Q?aMnTNVSMk5yZBI1HlOnmWI4IXb86bQKR1Xe6kGBAsj/QEZfWAplOUwMr/v?=
 =?iso-8859-1?Q?LbhtiEDZl36HhSdHfobszG5DToQbbPiisunBxYdnQLtis1TENjwEtLsjl6?=
 =?iso-8859-1?Q?sBSYzUumt8hZ/ZAr5SAgwQSuGkHTa3onToVmtMTM/0xcoREWplL/XA2uzQ?=
 =?iso-8859-1?Q?Zc9/cMfaa2wufdmVHYisRFz0BPN3YjnYkSsdO560thvyFvQ9Bi7YV83hIt?=
 =?iso-8859-1?Q?lfzQTHLxzE0hqgY9YKUawrimZYqst+SBd2HEVpGEgX0B+/ZrWI3qMsQ90Z?=
 =?iso-8859-1?Q?qBPZvdBFYzggAbOIgevL51bnx+fGlmUp+bGrUPnOl/BfnxFFrbFzl7ri01?=
 =?iso-8859-1?Q?Qk2xQRgZ+G0NbycVBd8RzSkIeaAYe7eM7rrhcldN1vJJqPNpJXTfJ/J4cl?=
 =?iso-8859-1?Q?6OqmsZqo07bdXw+1iik5Odgtf6UDliTOv7OrWiIolGhjfM82Q12OKZqc1q?=
 =?iso-8859-1?Q?t2UpAiO1dXiv1liZFf1wgEaJBDD+TONcwUZCucJsNrWgR4xzy5GKBL+17u?=
 =?iso-8859-1?Q?DN1blfLcLRIpK1xUCz2QUtnRvISBIXOd9QMwe5ULXk2flyRty0FJ//O9cP?=
 =?iso-8859-1?Q?UeLAPE55kF0N/Qm2AARNs3rO9H6n9D2J6LV3yzGmujbaA2d8VgeFZVrgZX?=
 =?iso-8859-1?Q?LnuD8fj3Co/EkpCE1dG5+UKONS78ebRuPIPjtygF0BV3jYMMTOgSejMtpU?=
 =?iso-8859-1?Q?U6kWe5jfTeWLuquPixrmnbiguXDexpQpmJnpx5DhtI0krrCxm2iiXTeTQj?=
 =?iso-8859-1?Q?N8AZ3FeeyrkR3ZE59WMZItrryYo9BXIVbWiePZJf2WWRcQXH+hiPLpZUoq?=
 =?iso-8859-1?Q?eTyqNDiQnTA/FNtAATdmoFnB6zHv300d4wto1G49G+pwT7XL+MSgtvwubW?=
 =?iso-8859-1?Q?pmyyX23BfkGfrjqMukOV4NDEmCaY9SQ7uI9YrOkBF0ALBUe62JYFjznq5Q?=
 =?iso-8859-1?Q?lvJbvM9CvLIAxs7ypezYQDzAUcgdq7sDTU9805YQoHThPYwgYYTUhaJg?=
 =?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: 58f62565-742e-4487-ef0b-08dd75c02245
X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Apr 2025 10:37:02.5433
 (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: IXtYP9qg0GEz5i+17uSWF3uvJzlhTnQ6QSJX07pEvLPsDAiw5sy+TOs0ZUo4pXfkHglmBdZwfNBj5sJdgO4/TWM9x5TOQYCnPGfZhVWcdYc=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB6726


Hi Anthony,

"Anthony PERARD" <anthony.perard@vates.tech> writes:

> On Sat, Apr 05, 2025 at 03:30:49AM +0000, Volodymyr Babchuk wrote:
>> --- a/xen/Rules.mk
>> +++ b/xen/Rules.mk
>> @@ -133,18 +133,19 @@ $(filter %.init.o,$(obj-y) $(obj-bin-y) $(extra-y)=
): CFLAGS-y +=3D -DINIT_SECTIONS
>> =20
>>  non-init-objects =3D $(filter-out %.init.o, $(obj-y) $(obj-bin-y) $(ext=
ra-y))
>> =20
>> -ifeq ($(CONFIG_COVERAGE),y)
>
> This removes an "ifeq ()", so you probably need to remove and "endif"
> somewhere else, which doesn't appear in this snippet.

Yes, I'm sorry, it just didn't got into the snippet. I wanted to discuss
approach only, so this is not the final version.

>>  ifeq ($(CONFIG_CC_IS_CLANG),y)
>> -    COV_FLAGS :=3D -fprofile-instr-generate -fcoverage-mapping
>> +    cov-flags-$(CONFIG_COVERAGE) :=3D -fprofile-instr-generate -fcovera=
ge-mapping
>
> If you do this assignment like that, it would be better to make sure
> $(cov-flags-y) is initialised properly, that is have a:
>
>   cov-flags-y :=3D
>
> before the first conditional assignment, then have all conditional
> assignment be +=3D.

Sure.

>
>>  else
>> -    COV_FLAGS :=3D -fprofile-arcs -ftest-coverage
>> +    cov-flags-$(CONFIG_COVERAGE) :=3D -fprofile-arcs -ftest-coverage
>> +    cov-flags-$(CONFIG_CONDITION_COVERAGE) +=3D -fcondition-coverage
>
> What happen if CONFIG_CONDITION_COVERAGE=3Dy but CONFIG_COVERAGE=3Dn ?

Kconfig ensures that this is impossible:

config CONDITION_COVERAGE
	bool "Condition coverage support"
	depends on COVERAGE && CC_HAS_MCDC

I believe, this is enough, and we don't need a separate check on
Makefile level.

--=20
WBR, Volodymyr=


From xen-devel-bounces@lists.xenproject.org Mon Apr 07 10:45:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 10:45:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.939650.1339680 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1jzB-0000NQ-TK; Mon, 07 Apr 2025 10:45:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 939650.1339680; Mon, 07 Apr 2025 10:45: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 1u1jzB-0000NJ-QT; Mon, 07 Apr 2025 10:45:49 +0000
Received: by outflank-mailman (input) for mailman id 939650;
 Mon, 07 Apr 2025 10:45: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=ZxXC=WZ=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u1jzA-0000NB-Sy
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 10:45:48 +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 767b9a9e-139d-11f0-9ffb-bf95429c2676;
 Mon, 07 Apr 2025 12:45:46 +0200 (CEST)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-39c1efbefc6so2326263f8f.1
 for <xen-devel@lists.xenproject.org>; Mon, 07 Apr 2025 03:45:46 -0700 (PDT)
Received: from localhost.localdomain (host-92-26-98-202.as13285.net.
 [92.26.98.202]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39c30226cf6sm11543213f8f.87.2025.04.07.03.45.45
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 07 Apr 2025 03:45: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: 767b9a9e-139d-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744022746; x=1744627546; 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=5MJBZtKinssoenxBVB/hvQhmPdAGPzTkuVnEecMVycM=;
        b=YSLFB0o2vQVd/s2B//NcgV9HluWHwLHcUWegMBtSSko46BKxMT0BAduIFy1YWEjvMc
         G5R8qH7Adw8qXEVl8CmuSKU3rrssWgvnVCagbe2CHzWxXB1wEuP8Fid+xMuv+Z5UyGed
         pOv0uUo7u2n81nxFw9GyjHwRL83/JOFR/mYWU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744022746; x=1744627546;
        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=5MJBZtKinssoenxBVB/hvQhmPdAGPzTkuVnEecMVycM=;
        b=NEzHFacGSqIdyuoHeHlZND3NV1Uq1Ka3zIW9UWut8csnvYT+w1PwL4SmzIPCK8qmt4
         lFCm7t313VAQoH0PDwmhc+RLOeJ/MOjzW5MZAOXnpoZv6VTKs2KYAtkxW6Nqw82MSBU2
         qKyCKYVxvHCN2KUGJnyAbc0YPr0cU021Z1QpOtWJR2nHegy+CBjtpdvTg8XtReQEeZJD
         slAUip8hWeyCy32s/bM/cG902mNnpSqIIrSY/8OJad/mQUyvqiqm5OQ/UzbncAQalp7M
         UkXIvUiQXYICXa6iEghqgw9FPMZ2UYYpPMHvI4Y/1KI0kl4J7QkA9m7Y2GwszQq9YIyZ
         G34g==
X-Gm-Message-State: AOJu0Yw96zIcfKsErwCeBhXzjFpH4v8FPnTft730Dj5Cy2so7ksFP0I1
	gBy/y2fusOtVrIra4SYZ49OIPVURldhW+45W6oHzvvwAFni47nRVvkJFjQb9U20pWrg2NN9Ke+b
	QXBY=
X-Gm-Gg: ASbGncuzlGrovXGybN/JowYCU4Q9qhz9thK5LsWiFfb0kNnlPQCdxy0a9V5dCKUGiFq
	F9viKcKkmCIffg+94qGZVL8pn+30Sq8NMnVAIwSIH+qISCwCr9qyzp7MIahwrlh+mmz5ZcaM9yf
	e7D18n0m59AmlwN2wFXpN9tzWyMGgY/o9t0ywiGbUOsNmZue7GyVE8IxAGbSTfQLAPjGCq3PjIk
	UR755LzXxGa/g3p7Xv3UVryVZCESgAsMU9XKZNgZf/sEzMCUBlpwEaEwrEwwlndVLq7xfv7aXvK
	vV/TJwOO0IHRj3j/1GwyF6vkF/VRN0Lz15/R0Dl92q+Pr5yFgNw9IsbLM4f+cVV703vhwV9eqgm
	MgoGau8ImamwS296j4Q==
X-Google-Smtp-Source: AGHT+IHrhRT3EprAH+2arwQn/ox/yV8fQcSf6hOCsufOC/aPij0Qj+1s4XUFS7fRrau5s3rmhILfLw==
X-Received: by 2002:a05:6000:144c:b0:39c:1258:2dc7 with SMTP id ffacd0b85a97d-39d6fd07696mr7267580f8f.56.1744022746023;
        Mon, 07 Apr 2025 03:45:46 -0700 (PDT)
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/vmx: Drop memory clobbers on VMX instruction wrappers
Date: Mon,  7 Apr 2025 11:45:44 +0100
Message-Id: <20250407104544.1823150-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 use, or not, of memory clobbers on the VMX instructions is complicated.

There are two separate aspects to consider:

1. Originally, the VMX instructions used hardcoded bytes, including memory
   encodings.  Therefore, the compiler couldn't see the correct relationship
   between parameters.  The memory clobber for this purpose should have been
   dropped when switching to mnemonics.

   This covers INVEPT and INVVPID, each of which has no change in memory, nor
   in fact the current address space in use.

2. Most of these instructions operate on a VMCS region.  This is a (mostly)
   opaque data structure, operated on by physical address.  Again, this hides
   the relationship between the instructions and the VMCS from the compiler.

   The processor might use internal state to cache the VMCS (writing it back
   to memory on VMCLEAR), or it might operate on memory directly.

   Because the VMCS is opaque (so the compiler has nothing interesting to know
   about it), and because VMREAD/VMWRITE have chosen not to use a memory
   clobber (to tell the compiler that something changed), none of the other
   VMX instructions should use a memory clobber either.

   This covers VMXON, VMXOFF, VMPTRLD and VMPTCLEAR.

Make the use of memory clobbers consistent for all VMX instructions.

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

Based on top of the posted cleanup.
---
 xen/arch/x86/hvm/vmx/vmcs.c            | 4 ++--
 xen/arch/x86/include/asm/hvm/vmx/vmx.h | 8 ++++----
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/xen/arch/x86/hvm/vmx/vmcs.c b/xen/arch/x86/hvm/vmx/vmcs.c
index a44475ae15bd..6daaeaa656a8 100644
--- a/xen/arch/x86/hvm/vmx/vmcs.c
+++ b/xen/arch/x86/hvm/vmx/vmcs.c
@@ -754,7 +754,7 @@ static int _vmx_cpu_up(bool bsp)
                _ASM_EXTABLE(1b, %l[vmxon_fault])
                :
                : [addr] "m" (this_cpu(vmxon_region))
-               : "memory"
+               :
                : vmxon_fail, vmxon_fault );
 
     this_cpu(vmxon) = 1;
@@ -811,7 +811,7 @@ void cf_check vmx_cpu_down(void)
 
     BUG_ON(!(read_cr4() & X86_CR4_VMXE));
     this_cpu(vmxon) = 0;
-    asm volatile ( "vmxoff" ::: "memory" );
+    asm volatile ( "vmxoff" );
 
     local_irq_restore(flags);
 }
diff --git a/xen/arch/x86/include/asm/hvm/vmx/vmx.h b/xen/arch/x86/include/asm/hvm/vmx/vmx.h
index 33d3d43a3851..86349d4a5431 100644
--- a/xen/arch/x86/include/asm/hvm/vmx/vmx.h
+++ b/xen/arch/x86/include/asm/hvm/vmx/vmx.h
@@ -298,7 +298,7 @@ static always_inline void __vmptrld(u64 addr)
                "jbe %l[vmfail]"
                :
                : [addr] "m" (addr)
-               : "memory"
+               :
                : vmfail );
     return;
 
@@ -312,7 +312,7 @@ static always_inline void __vmpclear(u64 addr)
                "jbe %l[vmfail]"
                :
                : [addr] "m" (addr)
-               : "memory"
+               :
                : vmfail );
     return;
 
@@ -408,7 +408,7 @@ static always_inline void __invept(unsigned long type, uint64_t eptp)
                "jbe %l[vmfail]"
                :
                : [operand] "m" (operand), [type] "r" (type)
-               : "memory"
+               :
                : vmfail );
     return;
 
@@ -430,7 +430,7 @@ static always_inline void __invvpid(unsigned long type, u16 vpid, u64 gva)
                "2:" _ASM_EXTABLE(1b, 2b)
                :
                : [operand] "m" (operand), [type] "r" (type)
-               : "memory"
+               :
                : vmfail );
     return;
 

base-commit: befc384d21784affa3daf2abc85b02500e4dc545
prerequisite-patch-id: 727f158a737c65bca1e4210a6bc132302037f55c
prerequisite-patch-id: 3f88b36cbba121e9893b4c8b52df9aea4f58e8ad
prerequisite-patch-id: c0b199b9ceb1ddd659e27ec8571741bd78ae6265
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Mon Apr 07 11:10:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 11:10:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.939694.1339690 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1kMf-0006s0-KT; Mon, 07 Apr 2025 11:10:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 939694.1339690; Mon, 07 Apr 2025 11:10: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 1u1kMf-0006rM-GL; Mon, 07 Apr 2025 11:10:05 +0000
Received: by outflank-mailman (input) for mailman id 939694;
 Mon, 07 Apr 2025 11:10: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=cV/f=WZ=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u1kMe-0006ZB-7q
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 11:10:04 +0000
Received: from mail-pf1-x42e.google.com (mail-pf1-x42e.google.com
 [2607:f8b0:4864:20::42e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id da35381f-13a0-11f0-9eaa-5ba50f476ded;
 Mon, 07 Apr 2025 13:10:03 +0200 (CEST)
Received: by mail-pf1-x42e.google.com with SMTP id
 d2e1a72fcca58-7399a2dc13fso5509147b3a.2
 for <xen-devel@lists.xenproject.org>; Mon, 07 Apr 2025 04:10:03 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 d2e1a72fcca58-739da0b3f5asm8450120b3a.131.2025.04.07.04.09.59
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 07 Apr 2025 04:10: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: da35381f-13a0-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744024201; x=1744629001; 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=xFrQY986NOsGU6YeNLwp/csZ1n0jIs/v/kQS5efBgTI=;
        b=buv0lwqGo12tHufDUhDKcsEMLQy+DqzM+1AgV1c7uvTZ7DpD/he90A/CLZN5OJUqWO
         NroU9yMUQZ8MrE5jBQ3eH0sXXYzDBAIx7Dl3PPOZsjh34BGEoc/9JT0oV09W73KAtMBb
         xGFRwYwQpFXJHXSiNIy4A9IsShC3g102/+IGg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744024201; x=1744629001;
        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=xFrQY986NOsGU6YeNLwp/csZ1n0jIs/v/kQS5efBgTI=;
        b=M+VS/F6W4PHOAephdeAlKoQGgX9GJI6c8VlRI2zFpRXQe77UY8ihtr8S2CRYcdBp9I
         GS24m/JO/G/N9vyBkPik83RJ7nTk9tWNL+0e1HNoG9mTBYhERh/PGFOewtz8bLyMJdKY
         tu2WM7sS1GGIZA/ZmnLLfuB02plrnTtQlVqK+PSrgAjVBCFuRcR6o0chPLOMA2Ytxy0D
         n7ni2yixufwXlF2yQ6NOC2YIZBWC6beCeRkPYGPdY2IhamYNrcXVymksVdxfpCCQ1EmC
         6RyvgDZBwtVTxmOlPLe1hP/JqaKOrtsBm3I8Ux371CkkeCKRjy0do+ic5Uw4WTG/KKyb
         pWOw==
X-Gm-Message-State: AOJu0YyRJWta+C8WHL05D9BhnWEb3hCPRdMAqRMsR/N0GAmYLMn2NlVA
	K0v+6XFWNRJrXRrIJ/OcOrVnn2mdTWG8Mfpxu3v37/6IQEfhOeKJYVD5oG+j08eDXHJOw9li+UQ
	V
X-Gm-Gg: ASbGncv1+OmRKLEyxPY4G3PZ5XO9t8awSQC81PUeM/t+zjg/27mWLxdOczJUp0+UqQJ
	XEYXJTz0/adG8D+ezOplb4yzOu1IemXwmcB2N7R2K4urBhIXWlHbgsEAmodvT+2ls03WcC5Es4b
	r0Yyrmz3zQSNRtENguKisK9Ax5fJ0U9S1cPLtdgt0KC9Cb7AULJBvFCdNhGRcqNJ8FGqbH7Nb4p
	UIXyeiYT9d9aokUvzmp4HEh30HPyz1jz3mpg94tckV8v1XWMo1ak0wjnc8gcWxL1JxgxOL4dKP0
	ZJo354hDZo1e/3K3mpOK7LgYHyRx0ZzWHNMB9fay6MHmTkDRiw==
X-Google-Smtp-Source: AGHT+IE87WhlO/UaXX98vtz5MsjJV4g6M2/37hoBw+nIi2msFbUU5v0Zqijcw4R9suFZgUuIKUAyYQ==
X-Received: by 2002:a05:6a00:a03:b0:736:34ff:be8 with SMTP id d2e1a72fcca58-739e4f393cfmr16102678b3a.19.1744024201318;
        Mon, 07 Apr 2025 04:10:01 -0700 (PDT)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: [PATCH] tools/libxl: do not use `-c -E` compiler options together
Date: Mon,  7 Apr 2025 13:09:38 +0200
Message-ID: <20250407110938.68174-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.48.1
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

It makes no sense to request for preprocessor only output and also request
object file generation.  Fix the _libxl.api-for-check target to only use
-E (preprocessor output).

Also Clang 20.0 reports an error if both options are used.

Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
Fixes: 2862bf5b6c81 ('libxl: enforce prohibitions of internal callers')
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
 tools/libs/light/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/libs/light/Makefile b/tools/libs/light/Makefile
index 37e4d1670986..b690d921593d 100644
--- a/tools/libs/light/Makefile
+++ b/tools/libs/light/Makefile
@@ -195,7 +195,7 @@ libxl.api-ok: check-libxl-api-rules _libxl.api-for-check
 	touch $@
 
 _libxl.api-for-check: $(XEN_INCLUDE)/libxl.h
-	$(CC) $(CPPFLAGS) $(CFLAGS) -c -E $< $(APPEND_CFLAGS) \
+	$(CC) $(CPPFLAGS) $(CFLAGS) -E $< $(APPEND_CFLAGS) \
 		-DLIBXL_EXTERNAL_CALLERS_ONLY=LIBXL_EXTERNAL_CALLERS_ONLY \
 		>$@.new
 	mv -f $@.new $@
-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Mon Apr 07 11:11:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 11:11:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.939709.1339699 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1kO8-0000NL-Vr; Mon, 07 Apr 2025 11:11:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 939709.1339699; Mon, 07 Apr 2025 11:11: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 1u1kO8-0000NE-T0; Mon, 07 Apr 2025 11:11:36 +0000
Received: by outflank-mailman (input) for mailman id 939709;
 Mon, 07 Apr 2025 11:11: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=ZxXC=WZ=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u1kO8-0000MG-2E
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 11:11:36 +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 10e9bef9-13a1-11f0-9ffb-bf95429c2676;
 Mon, 07 Apr 2025 13:11:34 +0200 (CEST)
Received: by mail-wr1-x436.google.com with SMTP id
 ffacd0b85a97d-39ac8e7688aso3129618f8f.2
 for <xen-devel@lists.xenproject.org>; Mon, 07 Apr 2025 04:11:34 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39c3020da22sm11979682f8f.68.2025.04.07.04.11.33
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 07 Apr 2025 04:11:33 -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: 10e9bef9-13a1-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744024294; x=1744629094; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=QsK/IA6gKu3oErTJ5LcnbxvjCNQKvD5QanOOkMufwis=;
        b=m9haI3RLpewr0gK5s/OgSm86bC5BpeIBqENOn8KhetLSeCpDfnnYJBUCnQjn93jQ1H
         qTovprox38uyB36CUz0o5ucxkRn5UOuidRqVl2GjfTf9c3hzlqQYWZMzrksnHYORofjG
         KRWpFRdhG8j6Vcvo0cI6KvEEQCHrXYiDtag7s=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744024294; x=1744629094;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=QsK/IA6gKu3oErTJ5LcnbxvjCNQKvD5QanOOkMufwis=;
        b=kY9hlPrvPZkJlLbHjTgUQzdG1AOcLYVVeOAl0XVvkZHZX7/DtKYW4yrPlAFDxZ9fqF
         H657M+c9dPTINdxuJHHLedCp4DRPvByVjTOzVfTMXoeZNnlkbjRXHtC6v/nPBAv27eIP
         jG/uFbfOB4hV4FO3c6f3qJ4Hl8vSvwGlMR9c3PUgW5n9ueXQldUWbEy39MdJ+D07EEFK
         9BszF9jSmpou4jDHqOEJAAChxhHo2leoPxKIzff6IL4bR8mzivTFEbPUPxoHxoXmWMzH
         cHfvS+PZgJA6eahZdpbzx2jn6pIA91aNBOBRglBVQhE53lb8SiyPJlNlvIYwZ05OaLMg
         p4Dw==
X-Forwarded-Encrypted: i=1; AJvYcCX5oALRrYM881IiY4MSWiY/zK2k9MSpXBeU8t7HPkkwuWpVjgjJc49mgHTiah2Dyw7HqKA7EkQHwhc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwPEGKHlpTQCaxHoDVR/qziWHXhya4dEg52/bL4y/Io7eGN+pJV
	6URbZe/OFx3I6n39pW3FAfP2IUOp9WiIquTjZj0nhOQb3ialJ4RcKFw2uMPM7A0=
X-Gm-Gg: ASbGnctP3a2+XxiNOUZiauJU6vTFup00ie0n/jcFy+Wj6WrKjiTCdgQzTXLWNJEvGQI
	mpVDXbMfoV8dJb79KXrAHlLM0NHroeBywFmDsjwdlzcU6Xc/LzI7bTei20Ydztx66j2O3XCQmN1
	XkK084ERVKNbAXTrFKJQVxl2mRG7RoHkl1bYDh3F8eUnB49jytuUpqolriw+uCkYUomrjOkGNrT
	9DZ2Z0ezTc7aBmAIKKcfjvlNZz8wgE4M2/cdr0lrIURs3NMxwf+XzlHtuIkrJe8MyyFUVt24mxh
	WobIt3wBOIEID04rmofrDkIonVcxR4WbSq9TwFC3mzUn2UpQROs3bX9umsB3sN6Z26vhtc/FpCT
	u4ApCCqaC7g==
X-Google-Smtp-Source: AGHT+IHAIYzfXbc4ATaFMbOee+opL3LPuHsEkFoyV8LoycoF1102OMaQzIUDPenTXCRFxGstUzzoIw==
X-Received: by 2002:a05:6000:4310:b0:391:3bba:7f18 with SMTP id ffacd0b85a97d-39d6fc01096mr6715031f8f.12.1744024293825;
        Mon, 07 Apr 2025 04:11:33 -0700 (PDT)
Message-ID: <8cf7cdea-3675-4e82-8972-223949c26b6f@citrix.com>
Date: Mon, 7 Apr 2025 12:11:32 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] tools/libxl: do not use `-c -E` compiler options together
To: Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Juergen Gross <jgross@suse.com>, Jan Beulich <jbeulich@suse.com>
References: <20250407110938.68174-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: <20250407110938.68174-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 07/04/2025 12:09 pm, Roger Pau Monne wrote:
> It makes no sense to request for preprocessor only output and also request
> object file generation.  Fix the _libxl.api-for-check target to only use
> -E (preprocessor output).
>
> Also Clang 20.0 reports an error if both options are used.
>
> Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Fixes: 2862bf5b6c81 ('libxl: enforce prohibitions of internal callers')
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>

Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>

As this is impacting GitlabCI, it wants backporting (ideally everywhere,
although I'm still accumulating other CI fixes on 4.18 and earlier).

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Apr 07 11:28:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 11:28:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.939722.1339710 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1keK-0003Xc-9y; Mon, 07 Apr 2025 11:28:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 939722.1339710; Mon, 07 Apr 2025 11: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 1u1keK-0003XV-72; Mon, 07 Apr 2025 11:28:20 +0000
Received: by outflank-mailman (input) for mailman id 939722;
 Mon, 07 Apr 2025 11:28: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=C/xl=WZ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u1keJ-0003XN-Am
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 11:28:19 +0000
Received: from mail-wm1-x331.google.com (mail-wm1-x331.google.com
 [2a00:1450:4864:20::331])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 667541ee-13a3-11f0-9ffb-bf95429c2676;
 Mon, 07 Apr 2025 13:28:17 +0200 (CEST)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-43d0782d787so29131175e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 07 Apr 2025 04:28:17 -0700 (PDT)
Received: from [10.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-39c30226ecdsm12274194f8f.99.2025.04.07.04.28.15
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 07 Apr 2025 04:28: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: 667541ee-13a3-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744025296; x=1744630096; 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=5zJMnaTe7KA8HRPsBczfCVAMH2wJrxOTuP8r+JNshAs=;
        b=X1uwf/46wPIeeHqQlTx08d7SLpWKiAN+TpnnQjxpxf4gh2YuRorJI+SSlQ+Itk3K/p
         5MIDbnnL/XkRDHegawvgTiw59tGDUXKDPabIYAUmcW48pTE4xNTRj4afaP4M5j3+AzOT
         yt5ipSHrwCg0mD5QxY/7DZ7lgg57D3rjwq9oAZEbqsVmK4MqkLQ/l+lzfHfD/0c7zuNe
         HWgCew0JrSJ0JNMT4s90NIW24fHJJzpC/n7XE1IuAZMjABBpLCRjYxsM6jCqukLjAKl/
         yQZ7bOugxuq2MrVBiDGux6gst46BwmxrCMpVDGbH2Z45mRnxezLmVXCZW/eJ8MWEXYzm
         77EQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744025296; x=1744630096;
        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=5zJMnaTe7KA8HRPsBczfCVAMH2wJrxOTuP8r+JNshAs=;
        b=VI/LxgGZYj0MI7oFbv73MRUvPP+xu6SE0SCZx+ZvQPaAmuQuFFXJByWEUtF+F0dC15
         YbawxNTQZlmBMWcQmTnoPB9YolAY73uhex4c6vEohX3QUc/BE/LlyLR+Ml0wAkbIL8Ik
         rVf2jzygMJ4sKSA3+LOBFNAFxV9c3DCuh8DQMkf15/g3aPnht7VgmCxS4QnlFlAcp2Zy
         EA6N25xM008fw8RDJNK/Ec2z5jX+mvVaHCUMpOVjk4u9rljnpbIuwqyAbDOOpHUcEpSU
         Nj4gFoDxjIQg2UmOrxGBH9WuyMnBhDxcnWWT/jZkGzwDqRyAlDTbKfNJMnMWY8JUgMp2
         +ynw==
X-Gm-Message-State: AOJu0YyeQ6Y+jIJJFpPfgJInyAyixNomobT2efD/SGU3XtUXML+Y3xke
	USV91Ut1Fdn3BbDjfvozjlG18qdgKArO8FBVqg8W+18NdWfg6eMVUDc8tEt4fDXi7jmCu+iC9yk
	=
X-Gm-Gg: ASbGncva86Xz8z43RhmBiLDR06Ui1UlR9tyyz59OP/uYu58zBbwOT8o3vZdCTuQbXIc
	yZyZz46n18HzdPbgMVDQUO+nliq07qP4/I4v5DOCnLUXtuzvEvmi+MckHUH0zNQQ0Wl5tXOm+ne
	EEg2kfBx8dQRpsiWGapJK8o2rB6vDP/RBtPoLtK5NY2g6/fuH80nRRtDjAhhd1Ph911tfczBBck
	Dj4BB54YCQgJnkK02oApRL6z69w4X7UAQmYq5oZqxPUjtC408Gdr7/Nw/L3SbjyTGhUPiZHU1gZ
	EHx8QYjsT24J+oKuPhKupUoD/OQWzYMoHguBVS50ZRdSVsDhtwkx8pq5bLyKzP2hqG52cNIN1XS
	g3yelhgs4Cjt3a9MAOxvla18zo8u4mCvM0Fr+niSB
X-Google-Smtp-Source: AGHT+IGaANFiZGM91BR7xvByJYm6s4E+ZdTKbSODbjHtv9l3bmDj0JthQfamXYuAy71s4EVqLH/Dcg==
X-Received: by 2002:a05:600c:3484:b0:43c:f44c:72a6 with SMTP id 5b1f17b1804b1-43ed0b80b30mr118536185e9.2.1744025296346;
        Mon, 07 Apr 2025 04:28:16 -0700 (PDT)
Message-ID: <55d1c198-79a8-4011-93b0-b36580e23c24@suse.com>
Date: Mon, 7 Apr 2025 13:28:18 +0200
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/MTRR: make hold_mtrr_updates_on_aps static and bool
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

It's not used outside of the CU defining it, and it is clearly of
boolean nature.

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

--- a/xen/arch/x86/cpu/mtrr/main.c
+++ b/xen/arch/x86/cpu/mtrr/main.c
@@ -118,7 +118,7 @@ struct set_mtrr_data {
  * After all the cpus have came up, then mtrr_aps_sync_end() synchronizes all 
  * the cpus and updates mtrrs on all of them. Then this flag is turned off.
  */
-int hold_mtrr_updates_on_aps;
+static bool hold_mtrr_updates_on_aps;
 
 static void cf_check ipi_handler(void *info)
 /*  [SUMMARY] Synchronisation handler. Executed by "other" CPUs.
@@ -600,14 +600,14 @@ void mtrr_save_state(void)
 
 void mtrr_aps_sync_begin(void)
 {
-	hold_mtrr_updates_on_aps = 1;
+	hold_mtrr_updates_on_aps = true;
 }
 
 void mtrr_aps_sync_end(void)
 {
 	if (mtrr_if)
 		set_mtrr(~0U, 0, 0, 0);
-	hold_mtrr_updates_on_aps = 0;
+	hold_mtrr_updates_on_aps = false;
 }
 
 void asmlinkage mtrr_bp_restore(void)
--- a/xen/arch/x86/include/asm/mtrr.h
+++ b/xen/arch/x86/include/asm/mtrr.h
@@ -63,7 +63,6 @@ extern uint32_t get_pat_flags(struct vcp
                               paddr_t gpaddr, paddr_t spaddr,
                               uint8_t gmtrr_mtype);
 extern uint8_t pat_type_2_pte_flags(uint8_t pat_type);
-extern int hold_mtrr_updates_on_aps;
 extern void mtrr_aps_sync_begin(void);
 extern void mtrr_aps_sync_end(void);
 


From xen-devel-bounces@lists.xenproject.org Mon Apr 07 11:29:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 11:29:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.939733.1339720 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1kfS-00044z-Jv; Mon, 07 Apr 2025 11:29:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 939733.1339720; Mon, 07 Apr 2025 11:29: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 1u1kfS-00044s-GE; Mon, 07 Apr 2025 11:29:30 +0000
Received: by outflank-mailman (input) for mailman id 939733;
 Mon, 07 Apr 2025 11:29: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=C/xl=WZ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u1kfQ-0003pB-Mm
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 11:29: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 908c1693-13a3-11f0-9eaa-5ba50f476ded;
 Mon, 07 Apr 2025 13:29:28 +0200 (CEST)
Received: by mail-wr1-x436.google.com with SMTP id
 ffacd0b85a97d-39129fc51f8so3372661f8f.0
 for <xen-devel@lists.xenproject.org>; Mon, 07 Apr 2025 04:29:28 -0700 (PDT)
Received: from [10.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-43ea97904b7sm125663975e9.1.2025.04.07.04.29.26
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 07 Apr 2025 04:29:26 -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: 908c1693-13a3-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744025367; x=1744630167; 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=W/6cLRblqhSUTeW8vQg0u+UKNboItlBAEZ9UsTsqQKU=;
        b=F/r/RbSn2Gihete5ChJRGokwJCmoM5Vgbr2hu/AugNun/rJ6HfNpT2iwCPjjv7BggM
         sk4TX6YYhapDDUAcyYAnAI7SDjXgqhw9rpo96V8jvIdfuNxqN67JY7JAhpsxqy6INOMi
         OpWc9rIOzyzB53eovgzSuPyarWPEZjJGtDeqNmWqQmscRb5x29EzcEpNCauFWeiC2Ck6
         OYTDhYGYRullt+gaG0zv+XnoLffmH/qXdlBvpLFLhwDf6ROvNWXdVgPl1SAPF4tkkd2x
         NqHgUz1Pu5ZFq3NdEOu+c5NilzwRCtn40XAG+RcRomIPvV+Zf+TREyTT4HnrP8HYDu5+
         pnQA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744025367; x=1744630167;
        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=W/6cLRblqhSUTeW8vQg0u+UKNboItlBAEZ9UsTsqQKU=;
        b=Zm7RnXJewZ38YvLaVfDXMYvScLOVeXosDiBlPQljtko9gfhoCbmtGJCFBeY4FAeX12
         eP1mZ7Fev4jmMNLROcs4WutFU/1T7Yn+ijMuv+P+8UZQfIoYinIr3HcnuVnfxrWC/VLD
         48EZ+g1pXdaSrsduPA0VeyQAPI10/J2q4fuCSwxePmiAO/UsDKKb50AFQesDEpH+62ns
         dDb9lE+cwV7+IsAS4W5Qu10lMKkAdrXEaDzTUaIfwzL7tX5a3Z6m8r1RFa1PBCdsUhE4
         +RTLTg88KXkp/wM4RsbascSFXmF6iF5jBrAnGnLQwPqaNoWDhKvct1A772VR6RHwNmmb
         v26g==
X-Gm-Message-State: AOJu0Ywbt9rzFiN6iDne458q9DEu+GLpWgnARTXDw22t17K3tthOqi/t
	vqGcCbqPExeuB3MrLQDNOmp58GQINh5YncaNxk+xmD3TA59yBva8bZ1p6HU7EC7GveSzFJgq408
	=
X-Gm-Gg: ASbGncufuSjWONskdbM/v96ErpApqrgn46IeLzEcNHFlBX8zQQUPVb2Ba4ptQ7SA1+R
	oOx4LUqwRo56qV9VEz7ImCHgj890MhbP1LkuB9K+Q2EDmwP0tmoo959AkOx/eKON/ReB/dYpayB
	KW53x5Hca88BJd1Ee0ZoW3Ccekz0TwJ67SVroaOSfcRRGLXWCrlEBcB+NUS07+GQ3XnJtQc2NFb
	fCc9bVp8HBV2n9GMn6UwPp9XmF+RpK/DkEN7y1gREDguP4Xem198gkaJ98y7Yaqbr6qnlv9GqlE
	aMRTuJm/70YgqWf9+tMiNgyHeHZieCXOhuM7/LOXUuGyVzeWitrT91wHRHk4yrNpqSYRe2tGOgw
	cQBEdJtAri8CH5F/RbtTi9wxqRE748A==
X-Google-Smtp-Source: AGHT+IFMkBYsiwuE15Hn1ImClCdy7ep6ZvPxYVVHN3z3WUb+vcRXpbPu4uvewvuUwZYPfjv8SaM5DQ==
X-Received: by 2002:a05:6000:1a8d:b0:39c:1f10:d294 with SMTP id ffacd0b85a97d-39d0de28a44mr9965525f8f.26.1744025366967;
        Mon, 07 Apr 2025 04:29:26 -0700 (PDT)
Message-ID: <8b16c210-4a2f-4d06-8fab-624394f06e5f@suse.com>
Date: Mon, 7 Apr 2025 13:29:29 +0200
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] libxl{,u}: replace TOSTRING()
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+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

Now that common-macros.h has STR() available, which is even slightly
more flexible, use that and drop the custom macros.

No difference in generated code (except for line numbers, of course,
where embedded in code/data).

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

--- a/tools/libs/light/libxl_disk.c
+++ b/tools/libs/light/libxl_disk.c
@@ -53,7 +53,7 @@ static void disk_eject_xswatch_callback(
     }
 
     sscanf(backend,
-            "/local/domain/%d/backend/%" TOSTRING(BACKEND_STRING_SIZE)
+           "/local/domain/%d/backend/%" STR(BACKEND_STRING_SIZE)
            "[a-z]/%*d/%*d",
            &disk->backend_domid, backend_type);
     if (!strcmp(backend_type, "tap") ||
--- a/tools/libs/light/libxl_internal.h
+++ b/tools/libs/light/libxl_internal.h
@@ -2093,9 +2093,6 @@ _hidden int libxl__init_recursive_mutex(
 
 _hidden int libxl__gettimeofday(libxl__gc *gc, struct timeval *now_r);
 
-#define STRINGIFY(x) #x
-#define TOSTRING(x) STRINGIFY(x)
-
 /* from libxl_qmp */
 typedef struct libxl__qmp_handler libxl__qmp_handler;
 
--- a/tools/libs/util/libxlu_disk_l.c
+++ b/tools/libs/util/libxlu_disk_l.c
@@ -1152,7 +1152,7 @@ void xlu__disk_yyset_column(int  column_
 #define DSET(dpc,member,enumname,str,valname) do{			\
 	if (dpc->disk->member != LIBXL_DISK_##enumname##_UNKNOWN &&	\
 	    dpc->disk->member != LIBXL_DISK_##enumname##_##valname) {	\
-	    xlu__disk_err(dpc, str, TOSTRING(member) " respecified");	\
+	    xlu__disk_err(dpc, str, STR(member) " respecified");	\
 	} else {							\
 	    dpc->disk->member = LIBXL_DISK_##enumname##_##valname;	\
 	}								\
--- a/tools/libs/util/libxlu_disk_l.l
+++ b/tools/libs/util/libxlu_disk_l.l
@@ -64,7 +64,7 @@ void xlu__disk_yyset_column(int  column_
 #define DSET(dpc,member,enumname,str,valname) do{			\
 	if (dpc->disk->member != LIBXL_DISK_##enumname##_UNKNOWN &&	\
 	    dpc->disk->member != LIBXL_DISK_##enumname##_##valname) {	\
-	    xlu__disk_err(dpc, str, TOSTRING(member) " respecified");	\
+	    xlu__disk_err(dpc, str, STR(member) " respecified");	\
 	} else {							\
 	    dpc->disk->member = LIBXL_DISK_##enumname##_##valname;	\
 	}								\
--- a/tools/libs/util/libxlu_internal.h
+++ b/tools/libs/util/libxlu_internal.h
@@ -25,6 +25,8 @@
 
 #include "libxlutil.h"
 
+#include <xen-tools/common-macros.h>
+
 struct XLU_ConfigList {
     int avalues; /* available slots */
     int nvalues; /* actual occupied slots */
@@ -69,10 +71,6 @@ typedef struct {
     void *scanner;
 } CfgParseContext;
 
-
-#define STRINGIFY(x) #x
-#define TOSTRING(x) STRINGIFY(x)
-
 #endif /*LIBXLU_INTERNAL_H*/
 
 /*


From xen-devel-bounces@lists.xenproject.org Mon Apr 07 11:38:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 11:38:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.939748.1339730 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1ko7-0006zv-Dv; Mon, 07 Apr 2025 11:38:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 939748.1339730; Mon, 07 Apr 2025 11:38: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 1u1ko7-0006zo-9o; Mon, 07 Apr 2025 11:38:27 +0000
Received: by outflank-mailman (input) for mailman id 939748;
 Mon, 07 Apr 2025 11:38: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=C/xl=WZ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u1ko5-0006zi-Fy
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 11:38:25 +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 cfc8793a-13a4-11f0-9ffb-bf95429c2676;
 Mon, 07 Apr 2025 13:38:23 +0200 (CEST)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-43cef035a3bso27941915e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 07 Apr 2025 04:38:23 -0700 (PDT)
Received: from [10.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-43ec16f1a73sm130663245e9.24.2025.04.07.04.38.21
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 07 Apr 2025 04:38:22 -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: cfc8793a-13a4-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744025902; x=1744630702; 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=L5sXjp2UQVYfKS9+UFeyghnxKulqxKnxroMYAmNfXZQ=;
        b=Vt/nrur8v0Ulm6whkvOO4t0VZHlHJXnnsPktwzgu/gl83NIkpBRI6qHjg74kJT+Jxo
         VNaRKjDo/HoJe/qUbNyou9f+5nadM2axuoken9awP9pVKJrmKnt/aEjpPaJCa8FmAtQG
         /5I4dwQrB0cgSkA2wQhG65PgVXWEy/d/2eRNDAyevy4rk5efeh9evz8RrOfKA6x8zqwv
         L0USwZn7nDO/6aHk+gT3rcdbGjN1Uwl7F3et90hATRMR02NU/JgCGhJYyc+AZQX1kGXs
         4n0Z/4TwrzwAjsYADCn+tiYKEyGOPZwxFUKvE3NT1BPZ5x7EPLBJKMfXawVTZfv1b0f8
         QMsQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744025902; x=1744630702;
        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=L5sXjp2UQVYfKS9+UFeyghnxKulqxKnxroMYAmNfXZQ=;
        b=YmiWPDG1bG5EuCxEtA1aA+GTgSRv734WR8gpsZF9P1ffoEl0zgUwzDYZNmBd28Ks7+
         uCv/uwEx9GfCtNA4NUogzJkLcDjMHrpd7hv3PsnxHwr2/OycHwfn4/XZRw26Ovnp0Co4
         4T4MskVydiHqqZJ+Sa8ljLm3ErQi75KE2W1HaT6LSFRdXlcJeTj1uBs7ZAX/c2zvcWdh
         xnhZQZugX6RnL1kEUEidZd9aiYV5idWydKQ6tZCPCKte/IvQ3Hwj61EecLVz/e754rmJ
         w8YwoKFaGZHj2d7/yWNkkXAoP7vPxOsx58dlWA/SuX69OyoJxMLO5+Yr1hWD2PkF0jOU
         MuFw==
X-Forwarded-Encrypted: i=1; AJvYcCXKsWVC1Js7ljI6aui8n74BKtCabB3dqIUJ4S6JyzXA/113Ngs2viw/e62H0Y8l4OOlOJMPeyROEtU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyS5BTdKmGjrcLRlqYhJnbgT+ieu3ELvDAXMBf9Mx06o80W/cOi
	znyV9xAX98Yg8pEjH6MpmK2flCIJ8QDAuOw5/dDnPuywTkVEzKIOFlTi85RnXg==
X-Gm-Gg: ASbGncsRAKlLD5OPpxDYDkX+Kig+OubIZj3i+X7OvwSgv5DitVPy7msQ0WMvuyR98C/
	VB6nSpajpZQYUgAUQ0PnAMKfjTz3Uihdnag5MTQH077JHC0L43GWhBWrGMvczYKKaOchILeTKOC
	vZIGHxaq2pwjeFtJGRmkUbrnZzyXYb5BZjXT3HR0M/2wYJGBVWcCRtSLkLOcyMvyf0yRukd7UaA
	4ebEmbH2H53VCOml3jB9RMdZgMuJfX+kbCJkucDGgXjVgele6JSuvajnvjzfRR3+rRzGeJ4Q+/8
	FIrdYDHh6RoFTCEA4FHEpcjLm35zQ+BCHb6LkBrm6ThAmAuxPW4CKKsEK2+avitQxTKMGobZA9o
	j276967p9dGUxqXgmySRzCMv11wTEMw==
X-Google-Smtp-Source: AGHT+IGtQhpbJf9EaOQQQYBQBMRKp54AGsEjfLoQZVPwYrtaLQuNb2v8OLA5fosSJDM/FX2xEEPvOQ==
X-Received: by 2002:a05:600c:1f16:b0:43a:b8eb:9e5f with SMTP id 5b1f17b1804b1-43ede41cc27mr98680205e9.3.1744025902549;
        Mon, 07 Apr 2025 04:38:22 -0700 (PDT)
Message-ID: <e0028d85-668a-464b-aac5-ac8a79ea9bf5@suse.com>
Date: Mon, 7 Apr 2025 13:38:24 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Ping: [PATCH] libxc/PM: correct (not just) error handling in
 xc_get_cpufreq_para()
From: Jan Beulich <jbeulich@suse.com>
To: Anthony Perard <anthony@xenproject.org>
Cc: Juergen Gross <jgross@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <df676738-19e7-47e6-977f-25d6d13ccc50@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: <df676738-19e7-47e6-977f-25d6d13ccc50@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 27.03.2025 14:32, Jan Beulich wrote:
> From their introduction all xc_hypercall_bounce_pre() uses, when they
> failed, would properly cause exit from the function including cleanup,
> yet without informing the caller of the failure. Purge the unlock_1
> label for being both pointless and mis-named.
> 
> An earlier attempt to switch to the usual split between return value and
> errno wasn't quite complete.
> 
> HWP work made the cleanup of the "available governors" array
> conditional, neglecting the fact that the condition used may not be the
> condition that was used to allocate the buffer (as the structure field
> is updated upon getting back EAGAIN). Throughout the function, use the
> local variable being introduced to address that.
> 
> Fixes: 4513025a8790 ("libxc: convert sysctl interfaces over to hypercall buffers")
> Amends: 73367cf3b4b4 ("libxc: Fix xc_pm API calls to return negative error and stash error in errno")
> Fixes: 31e264c672bc ("pmstat&xenpm: Re-arrage for cpufreq union")
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

May I ask for an ack or comments towards what needs changing?

Thanks, Jan

> --- a/tools/libs/ctrl/xc_pm.c
> +++ b/tools/libs/ctrl/xc_pm.c
> @@ -212,31 +212,32 @@ int xc_get_cpufreq_para(xc_interface *xc
>      DECLARE_NAMED_HYPERCALL_BOUNCE(scaling_available_governors,
>  			 user_para->scaling_available_governors,
>  			 user_para->gov_num * CPUFREQ_NAME_LEN * sizeof(char), XC_HYPERCALL_BUFFER_BOUNCE_BOTH);
> -
> -    bool has_num = user_para->cpu_num &&
> -                     user_para->freq_num &&
> -                     user_para->gov_num;
> +    unsigned int in_gov_num = user_para->gov_num;
> +    bool has_num = user_para->cpu_num && user_para->freq_num;
>  
>      if ( has_num )
>      {
>          if ( (!user_para->affected_cpus)                    ||
>               (!user_para->scaling_available_frequencies)    ||
> -             (user_para->gov_num && !user_para->scaling_available_governors) )
> +             (in_gov_num && !user_para->scaling_available_governors) )
>          {
>              errno = EINVAL;
>              return -1;
>          }
> -        if ( xc_hypercall_bounce_pre(xch, affected_cpus) )
> -            goto unlock_1;
> -        if ( xc_hypercall_bounce_pre(xch, scaling_available_frequencies) )
> +        ret = xc_hypercall_bounce_pre(xch, affected_cpus);
> +        if ( ret )
> +            return ret;
> +        ret = xc_hypercall_bounce_pre(xch, scaling_available_frequencies);
> +        if ( ret )
>              goto unlock_2;
> -        if ( user_para->gov_num &&
> -             xc_hypercall_bounce_pre(xch, scaling_available_governors) )
> +        if ( in_gov_num )
> +            ret = xc_hypercall_bounce_pre(xch, scaling_available_governors);
> +        if ( ret )
>              goto unlock_3;
>  
>          set_xen_guest_handle(sys_para->affected_cpus, affected_cpus);
>          set_xen_guest_handle(sys_para->scaling_available_frequencies, scaling_available_frequencies);
> -        if ( user_para->gov_num )
> +        if ( in_gov_num )
>              set_xen_guest_handle(sys_para->scaling_available_governors,
>                                   scaling_available_governors);
>      }
> @@ -246,7 +247,7 @@ int xc_get_cpufreq_para(xc_interface *xc
>      sysctl.u.pm_op.cpuid = cpuid;
>      sys_para->cpu_num  = user_para->cpu_num;
>      sys_para->freq_num = user_para->freq_num;
> -    sys_para->gov_num  = user_para->gov_num;
> +    sys_para->gov_num  = in_gov_num;
>  
>      ret = xc_sysctl(xch, &sysctl);
>      if ( ret )
> @@ -256,12 +257,11 @@ int xc_get_cpufreq_para(xc_interface *xc
>              user_para->cpu_num  = sys_para->cpu_num;
>              user_para->freq_num = sys_para->freq_num;
>              user_para->gov_num  = sys_para->gov_num;
> -            ret = -errno;
>          }
>  
>          if ( has_num )
>              goto unlock_4;
> -        goto unlock_1;
> +        return ret;
>      }
>      else
>      {
> @@ -298,13 +298,13 @@ int xc_get_cpufreq_para(xc_interface *xc
>      }
>  
>  unlock_4:
> -    if ( user_para->gov_num )
> +    if ( in_gov_num )
>          xc_hypercall_bounce_post(xch, scaling_available_governors);
>  unlock_3:
>      xc_hypercall_bounce_post(xch, scaling_available_frequencies);
>  unlock_2:
>      xc_hypercall_bounce_post(xch, affected_cpus);
> -unlock_1:
> +
>      return ret;
>  }
>  



From xen-devel-bounces@lists.xenproject.org Mon Apr 07 11:51:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 11:51:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.939764.1339739 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1l0u-0003Yi-KH; Mon, 07 Apr 2025 11:51:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 939764.1339739; Mon, 07 Apr 2025 11:51: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 1u1l0u-0003YK-HV; Mon, 07 Apr 2025 11:51:40 +0000
Received: by outflank-mailman (input) for mailman id 939764;
 Mon, 07 Apr 2025 11:51: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=UXMY=WZ=bounce.vates.tech=bounce-md_30504962.67f3bc44.v1-35d2ee55a2ce4d18ab7a95c563c93064@srs-se1.protection.inumbo.net>)
 id 1u1l0t-0003XD-Jc
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 11:51:39 +0000
Received: from mail186-2.suw21.mandrillapp.com
 (mail186-2.suw21.mandrillapp.com [198.2.186.2])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a6ff8976-13a6-11f0-9ffb-bf95429c2676;
 Mon, 07 Apr 2025 13:51:34 +0200 (CEST)
Received: from pmta10.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail186-2.suw21.mandrillapp.com (Mailchimp) with ESMTP id 4ZWSGr63MKzS62Gxg
 for <xen-devel@lists.xenproject.org>; Mon,  7 Apr 2025 11:51:32 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 35d2ee55a2ce4d18ab7a95c563c93064; Mon, 07 Apr 2025 11:51: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: a6ff8976-13a6-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1744026692; x=1744296692;
	bh=qtEn71v2OpHuKrtjo6onZ8xiQ5N+mWlANeV/iledBtE=;
	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=yemBJ3w4icVqpe4GCcSRRl/GAIYUOKDqTL21sVgt0GHIGpK9MhOoKIUkUmLnjMcFc
	 vF+XJC+tfXkiPsuCqb0Pzd5q6t5lPEHNAlRrFCmbvTOWOAeCHVoJiGmpoISaiq0Qwd
	 ueoSCv+GBuHmCtje6rLRPPi2CJU5C8A7GFUMYye040i+nZ6lt2wZt0IFRvWEqqGSja
	 Xas8JFZvU8QvdasMT6oeYvlfLlXa/rFYNLmLAyNx9Bx0RJjXTYUKrnRD6zjUtvYKAx
	 H+gtsYyU2kSmXo1RCldANyypPIU6sc5hK1B8KXSQsROsb4Jg04AfV7dZIgA25rvYqD
	 yJMASPeCID8Dg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1744026692; x=1744287192; i=anthony.perard@vates.tech;
	bh=qtEn71v2OpHuKrtjo6onZ8xiQ5N+mWlANeV/iledBtE=;
	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=BI88uEHCy1bJu77Y5yOzEssnKorjgwv9E0xMaz/sKjC6GOYReMeEoUBYaH1Xjs3Oj
	 r1rj25nxOjYQnavBW3971XgZN956GnR/a0oy7F8oaPAceG9nBStqcHwkOmTK7adbg9
	 pBNng/Uus3J1haJ8/iDo1BZD1NpoO+d0NvTAy1Vc/fRA24Eos301oCzp5tNde3+K+P
	 rU8MZTQa5D6IvpCyHv+8Xtu4U9HMvimDgBD2C/pSbCDSCXmC5oAUo3B0OxFCtjmxIk
	 kA0VtgtSI1/dWLkD4WMlWpU6H0FqfpFBeJkGZSXHeJ7iDt2dS7mkuwkwKO7IN6UUuf
	 7yANzzDnIAm8g==
From: "Anthony PERARD" <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH]=20tools/libxl:=20do=20not=20use=20`-c=20-E`=20compiler=20options=20together?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1744026691708
To: "Roger Pau Monne" <roger.pau@citrix.com>
Cc: xen-devel@lists.xenproject.org, "Juergen Gross" <jgross@suse.com>, "Andrew Cooper" <andrew.cooper3@citrix.com>
Message-Id: <Z_O8P-W56XQZnQd3@l14>
References: <20250407110938.68174-1-roger.pau@citrix.com>
In-Reply-To: <20250407110938.68174-1-roger.pau@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.35d2ee55a2ce4d18ab7a95c563c93064?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250407:md
Date: Mon, 07 Apr 2025 11:51:32 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Mon, Apr 07, 2025 at 01:09:38PM +0200, Roger Pau Monne wrote:
> It makes no sense to request for preprocessor only output and also reques=
t
> object file generation.  Fix the _libxl.api-for-check target to only use
> -E (preprocessor output).
> 
> Also Clang 20.0 reports an error if both options are used.
> 
> Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Fixes: 2862bf5b6c81 ('libxl: enforce prohibitions of internal callers')
> Signed-off-by: Roger Pau Monn=C3=A9 <roger.pau@citrix.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 Mon Apr 07 11:51:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 11:51:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.939765.1339750 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1l12-0003oF-RL; Mon, 07 Apr 2025 11:51:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 939765.1339750; Mon, 07 Apr 2025 11: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 1u1l12-0003o8-O3; Mon, 07 Apr 2025 11:51:48 +0000
Received: by outflank-mailman (input) for mailman id 939765;
 Mon, 07 Apr 2025 11:51: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=ZxXC=WZ=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u1l11-0003nd-Hm
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 11:51:47 +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 ae8a6aa4-13a6-11f0-9eaa-5ba50f476ded;
 Mon, 07 Apr 2025 13:51:46 +0200 (CEST)
Received: by mail-wr1-x42c.google.com with SMTP id
 ffacd0b85a97d-3912d2c89ecso3767096f8f.2
 for <xen-devel@lists.xenproject.org>; Mon, 07 Apr 2025 04:51:46 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39c30096889sm11731134f8f.2.2025.04.07.04.51.45
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 07 Apr 2025 04:51: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: ae8a6aa4-13a6-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744026706; x=1744631506; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ahkD8yK0tcJ0Bfkp0qSiHNm0biQmUBYr4AYDgWLpoRE=;
        b=FaJ5+qyz8hMlo2b4UxKKxTh7yc9tyJfWoBEwaeOGexeJKBUHlMYCHNVsghBs5IwPzC
         jnUksAz60BdVg88ctO70zLW5SkPZBUSwLV+bT6MgpQuMvXq6UY141NKv86X0h3VpdIIj
         4h0uZts/ZSr9BTwLgbfuXROh9X2f/YXVaDgOM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744026706; x=1744631506;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ahkD8yK0tcJ0Bfkp0qSiHNm0biQmUBYr4AYDgWLpoRE=;
        b=NPZcmZfsTOZ58MgDnNcjALb9bjAuTrNnY+DeABdVmUajjYBVsns4n0QIaTqerhKA+S
         Sh/GYwDzmvs/RmLqj5rf/RjFu3sVlWkR7O3HMIuVm1T7/GoRQOf24FcaP2mPzGOD/psj
         N0WOPC29W45t+SvSNqqIr56FbtM7D63xweQQQ0AAd0Fjy9R8nI4x++vpCLkwN0UE+IXR
         PTiiuAJKV/TQj5O2/ODlqfrkOZ7FJvtH2ofyZEwaCxSrl2Lps8RaprfiFeZZuGI7+hPb
         0Z7a24//6Qf54fec1dTl/w8toN312ddGAsetF/cVxUzNye5CjISE9BGtIdcyQhY0AMxt
         QJkA==
X-Forwarded-Encrypted: i=1; AJvYcCU67tU9zOP1+zgHll0oYiHldXClbo6w6lWXeXzX/9vKSo87arxpJEEak1qTU/nwzr8j+hhmiP5kcpg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyL70Ddbe++1zWQyOfzNX04PCUrmtSVwYCIFr+w78/n4hfwO55X
	IHPn08I8LYOsfMWWEZm1DfAwwkFSWcFpaU4VNH0iMk0pZPUw8Qxw2+ZqAeEm72E=
X-Gm-Gg: ASbGncukFKnBB1/DFje4eOE/jzBZr9U/WgKnoHzqT4Snb9JN6Sup3A+YIestXVZ2wnq
	xV9XRkVdadi1pU9IGnMyX4dc+7QByXeeZVnz/Mz6wjVmvr+BUrjzEyE2Muwe2jRVONO5zWBuikV
	/BWSQcD0mds87B693uPEzIPJD7xEfQT7ZoYMlDvKiys7wojXeJkJ7idP6QuNOl3LMeOv0VcChsr
	aK1+HCr8E54Fuu7OtuXZPWiAPLg4uqDlMRkUTgBtAsTCjQ3cqv1N6bmeatAGwmciOJifGuZ0LAg
	kzeScKdggm0rrA69paVtReGMSBsi0bWWgCzEujVEqB+sDCqtWuTq2dUtBi53kmMQMD51m/WKHvh
	1w2Pi5RqCNQ==
X-Google-Smtp-Source: AGHT+IGYi7r9Jadm+DiNI4FNOVg0LQ88bnh9AGpDvBYxAC78yJiaIz6Vec+q55it2JNhz5TzUX/ebg==
X-Received: by 2002:a05:6000:178c:b0:391:45e9:face with SMTP id ffacd0b85a97d-39d14662fc6mr10679380f8f.54.1744026705780;
        Mon, 07 Apr 2025 04:51:45 -0700 (PDT)
Message-ID: <8d4d7407-2d59-4b91-b320-de694ec71ad2@citrix.com>
Date: Mon, 7 Apr 2025 12:51:44 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/MTRR: make hold_mtrr_updates_on_aps static and bool
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: <55d1c198-79a8-4011-93b0-b36580e23c24@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: <55d1c198-79a8-4011-93b0-b36580e23c24@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 07/04/2025 12:28 pm, Jan Beulich wrote:
> It's not used outside of the CU defining it, and it is clearly of
> boolean nature.
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Mon Apr 07 12:00:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 12:00:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.939797.1339772 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1l9U-0005qQ-UO; Mon, 07 Apr 2025 12:00:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 939797.1339772; Mon, 07 Apr 2025 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 1u1l9U-0005qJ-Re; Mon, 07 Apr 2025 12:00:32 +0000
Received: by outflank-mailman (input) for mailman id 939797;
 Mon, 07 Apr 2025 12:00: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=C/xl=WZ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u1l9U-0005jy-Fx
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 12:00:32 +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 e70bd0d1-13a7-11f0-9ffb-bf95429c2676;
 Mon, 07 Apr 2025 14:00:30 +0200 (CEST)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-43cf58eea0fso21790575e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 07 Apr 2025 05:00:30 -0700 (PDT)
Received: from [10.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-39c3009680dsm11734751f8f.7.2025.04.07.05.00.29
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 07 Apr 2025 05:00:29 -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: e70bd0d1-13a7-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744027230; x=1744632030; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=aqfKJMvwGX4LpMTuXlSMbjl0TlfSILIguDWkPVcjdS0=;
        b=edWYBTxfv9LkH03BJvgNa/bt8dp+aRUkkfZfn+ZRVIvQwMutIJJ3au8kEoUWPn5bM4
         kvGc+PxeMQy+9MC1f/27Sh4w7icsNOaqPkhn1E200MlDLJGYIJlzjBdkcxHk4UYnG9/E
         /PlD9ZrA3Mrb6zhi8v7rbka16amuCnV9pt0DINH0ZqkvdoGTNCuBbphpoByDngbPk5tE
         QdZoNwiIXMF1B0rzhjrVhYb1X/QyRnOFDnp3du/0b+8VpitUJJ2keib5wi8SwO7Gce1b
         wROiPHo3VDZoyRH0fDhN0cIEFA7hCQmZyIogF5WnVS55mnC/x42PVhG/foE/Xa1R+DXE
         6sVw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744027230; x=1744632030;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=aqfKJMvwGX4LpMTuXlSMbjl0TlfSILIguDWkPVcjdS0=;
        b=lgR6Cva9ZsnMMOZYutVvDYRbe6mZmCCZHqdwZUqzRcVw/bM20T7QXahk1eYxxTu1ZN
         yjdFlyOWaGIOuYNI0owVKqiQvU0sHGfIS5WxjWVk+SSz0PHdy4avROL04dbd4QnzpPZg
         l64j+kuTWAzQDyu8MNtUYe8LxM1lk4nD04WT1+M5GdSahPS7ZfbzhvTXN5ymo7JJk2+6
         379cD4NqPCRu3xVXmKt944FFx2pz1b4H7KT4usbJmER5sLri6rvhLPD9K7Sjhq5ShYM3
         ahmClbiRw4eZYZvEVk+8iwyKnXerAhgMvCy8EMoOczthqm62rviuWdhRuj7euQzlWRGp
         VvmQ==
X-Forwarded-Encrypted: i=1; AJvYcCUnruxrMVmwwrvwvF5GiPMbJXfEAm4x72xaYagKjPE8zGY33bCTgil8BjDGNRfTXvKHDM5mZ3DUJ5M=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzdF2Ulvf7W7ekdmt9/BsB1z4apc47s4H6EwsB0ZW/ffxmrUHlZ
	wUcGT1F8ZDaB/NRCEsmg5tw4sykiE4pfw7gptcI1REb3hcVNDnLRvf2PAKJvpw==
X-Gm-Gg: ASbGncu/GpoX7J1ikK0xz8ism7J6s1yHcNvmECRyNFw6IqJKyOm+TjvlXGDwRcH7t0K
	PkMgPWtEf2ZfMewSLlERLTspeTF7v+A3gU5C4RZZZweqFDkAasUYAar+PSourgVwR7ywTim+Ri6
	/xfJQwPRshbgE0iYmmZUeomr7NQDnpENEtCxw6UYqoWnB2uEg0v4OPos0x+OQb6LtHKltidMRs/
	6XFceweo4qFxGQrgbxPHeSJMmOGhQ71aij6KbA3f4Ah2VEkr/WaOyxpJaV6n9lnfnDwKlCZ3vfi
	aOIxf02TuSQYFP84we8khv3exbuKtgAhBpGbwHhdfw+fPOCcW892RuO8kdG760IY9xBk9gYBtKl
	P1KnDuObMQT/E4IhUyzINU1l1F9rkDA==
X-Google-Smtp-Source: AGHT+IFKZTVY4txPuJi3hXyloAtONm8YueuCP+xVrtVl1zetYUSRJ1CFrJyR1kfvzz5uJkABw3SuGg==
X-Received: by 2002:a5d:584a:0:b0:399:737f:4de3 with SMTP id ffacd0b85a97d-39cba932615mr10964187f8f.29.1744027229947;
        Mon, 07 Apr 2025 05:00:29 -0700 (PDT)
Message-ID: <b400a011-e173-4d6f-b0b7-bcbe59e994cd@suse.com>
Date: Mon, 7 Apr 2025 14:00:32 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/vmx: Drop memory clobbers on VMX instruction wrappers
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: <20250407104544.1823150-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: <20250407104544.1823150-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 07.04.2025 12:45, Andrew Cooper wrote:
> The use, or not, of memory clobbers on the VMX instructions is complicated.
> 
> There are two separate aspects to consider:
> 
> 1. Originally, the VMX instructions used hardcoded bytes, including memory
>    encodings.  Therefore, the compiler couldn't see the correct relationship
>    between parameters.  The memory clobber for this purpose should have been
>    dropped when switching to mnemonics.
> 
>    This covers INVEPT and INVVPID, each of which has no change in memory, nor
>    in fact the current address space in use.

Yet then they need to come after respective table modifications.

> 2. Most of these instructions operate on a VMCS region.  This is a (mostly)
>    opaque data structure, operated on by physical address.  Again, this hides
>    the relationship between the instructions and the VMCS from the compiler.
> 
>    The processor might use internal state to cache the VMCS (writing it back
>    to memory on VMCLEAR), or it might operate on memory directly.
> 
>    Because the VMCS is opaque (so the compiler has nothing interesting to know
>    about it), and because VMREAD/VMWRITE have chosen not to use a memory
>    clobber (to tell the compiler that something changed), none of the other
>    VMX instructions should use a memory clobber either.

For this, there's actually a good example below, with everything needed in
context.

>    This covers VMXON, VMXOFF, VMPTRLD and VMPTCLEAR.

Nit: The last insn is VMCLEAR.

> --- a/xen/arch/x86/hvm/vmx/vmcs.c
> +++ b/xen/arch/x86/hvm/vmx/vmcs.c
> @@ -754,7 +754,7 @@ static int _vmx_cpu_up(bool bsp)
>                 _ASM_EXTABLE(1b, %l[vmxon_fault])
>                 :
>                 : [addr] "m" (this_cpu(vmxon_region))
> -               : "memory"
> +               :
>                 : vmxon_fail, vmxon_fault );
>  
>      this_cpu(vmxon) = 1;
> @@ -811,7 +811,7 @@ void cf_check vmx_cpu_down(void)
>  
>      BUG_ON(!(read_cr4() & X86_CR4_VMXE));
>      this_cpu(vmxon) = 0;
> -    asm volatile ( "vmxoff" ::: "memory" );
> +    asm volatile ( "vmxoff" );

With the clobber dropped, the compiler is free to re-order the prior store
with the asm(), despite the "volatile", isn't it? [1] This may then be
applicable elsewhere as well.

Jan

[1] Quote: "Note that the compiler can move even volatile asm instructions
            relative to other code, including across jump instructions."


From xen-devel-bounces@lists.xenproject.org Mon Apr 07 12:32:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 12:32:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.939822.1339786 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1leK-0005fd-Bo; Mon, 07 Apr 2025 12:32:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 939822.1339786; Mon, 07 Apr 2025 12: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 1u1leK-0005fW-8M; Mon, 07 Apr 2025 12:32:24 +0000
Received: by outflank-mailman (input) for mailman id 939822;
 Mon, 07 Apr 2025 12: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=Q09o=WZ=bounce.vates.tech=bounce-md_30504962.67f3c5d2.v1-b2322e5eb47c47b59d64832e3500a175@srs-se1.protection.inumbo.net>)
 id 1u1leI-0005fQ-RL
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 12:32:22 +0000
Received: from mail180-44.suw31.mandrillapp.com
 (mail180-44.suw31.mandrillapp.com [198.2.180.44])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 58f14cd8-13ac-11f0-9eaa-5ba50f476ded;
 Mon, 07 Apr 2025 14:32:20 +0200 (CEST)
Received: from pmta11.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail180-44.suw31.mandrillapp.com (Mailchimp) with ESMTP id
 4ZWT9t6t3Tz705bCL
 for <xen-devel@lists.xenproject.org>; Mon,  7 Apr 2025 12:32:18 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 b2322e5eb47c47b59d64832e3500a175; Mon, 07 Apr 2025 12:32:18 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 58f14cd8-13ac-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1744029139; x=1744299139;
	bh=O+9ndxKaq8ZvMLtReJ/Moc8XlsyvhrJhqOJbn+VuPGI=;
	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=utsYKeYkJRbTQMKXRrW3ub6CTpWzXho0MRzik7as09ALbyr1HlFqEJmPbvjpc/za+
	 Wtf7zQY814xyk4Thh6OXfZaqunZeWJWxQHZc0SiWF9HX4pu0pfv8ises+baIRzJ0JW
	 aBaPjcfSvCvnp3jD5Qd2ZKFPqmyEJRrv8sC9qSiHYzRXWsA1+lSNFjCFSyf82/kvXd
	 UO8s1n865chnypqjqfnl+IaGX8VJepcHZHub6sYoJOpa1WYNw19OwYyPwnQuZD4yps
	 +qCD6zErIbEFkAP9J8+pI9L1XUPlWeZllIe66yHC8R59WixepxH66ozRy+dZhw0e9d
	 1Xw5GUr7Y5n2Q==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1744029139; x=1744289639; i=anthony.perard@vates.tech;
	bh=O+9ndxKaq8ZvMLtReJ/Moc8XlsyvhrJhqOJbn+VuPGI=;
	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=FU6DMGYtAcr5C9CgUgsOHyE6JpjhHFT2eGIYaXvj1M191QtGheZxjhC2RiGsaIAYG
	 S++kah9AJZ4NhNbUfP3HXTcaKaXerUfzM68evN5yVncuAtPW70NiK/A4a7+bZR/soN
	 i7mkSNEUD2g70wWK8BVvZ9YjbBu3mtHTgvzm5RBmmIr903edRgk2LFQj1rPon4Z1Vg
	 k/MahTsOHzAy6RsHG2AYcFS5kuf3OY3fOA9HTY0+hLuZpP5GbGpBCsd26pArCYUphX
	 /2P6XEzoDQxtXDcx6wadezHBSD7NCeGtY68a6blx70TuDvmwoTA074XJ0v/kq1jJc/
	 q6qB0KdU3N3CQ==
From: "Anthony PERARD" <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH]=20libxl{,u}:=20replace=20TOSTRING()?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1744029137811
To: "Jan Beulich" <jbeulich@suse.com>
Cc: xen-devel@lists.xenproject.org, "Juergen Gross" <jgross@suse.com>
Message-Id: <Z_PF0LZpcqMwmmVn@l14>
References: <8b16c210-4a2f-4d06-8fab-624394f06e5f@suse.com>
In-Reply-To: <8b16c210-4a2f-4d06-8fab-624394f06e5f@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.b2322e5eb47c47b59d64832e3500a175?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250407:md
Date: Mon, 07 Apr 2025 12:32:18 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Mon, Apr 07, 2025 at 01:29:29PM +0200, Jan Beulich wrote:
> Now that common-macros.h has STR() available, which is even slightly
> more flexible, use that and drop the custom macros.
> 
> No difference in generated code (except for line numbers, of course,
> where embedded in code/data).
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.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 Mon Apr 07 12:34:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 12:34:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.939834.1339800 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1lgT-0006Dt-0e; Mon, 07 Apr 2025 12:34:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 939834.1339800; Mon, 07 Apr 2025 12: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 1u1lgS-0006DZ-RL; Mon, 07 Apr 2025 12:34:36 +0000
Received: by outflank-mailman (input) for mailman id 939834;
 Mon, 07 Apr 2025 12:34:35 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=uyK1=WZ=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1u1lgR-0006Bg-P0
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 12:34:35 +0000
Received: from fhigh-a4-smtp.messagingengine.com
 (fhigh-a4-smtp.messagingengine.com [103.168.172.155])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a901fac5-13ac-11f0-9eaa-5ba50f476ded;
 Mon, 07 Apr 2025 14:34:34 +0200 (CEST)
Received: from phl-compute-01.internal (phl-compute-01.phl.internal
 [10.202.2.41])
 by mailfhigh.phl.internal (Postfix) with ESMTP id BC3C8114021E;
 Mon,  7 Apr 2025 08:34:33 -0400 (EDT)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-01.internal (MEProxy); Mon, 07 Apr 2025 08:34:33 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon,
 7 Apr 2025 08:34:32 -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: a901fac5-13ac-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:subject
	:subject:to:to; s=fm2; t=1744029273; x=1744115673; bh=+wUYsjtUJc
	5L9TuaQNNpMAeWAX2i+xchkoztHrK6MYY=; b=lWRgvKlNUc5fC8p1j2EqJMioOq
	557asKPjMRf6woeRU5dYUzQXGhUJlgZHdFBwZaks1spVsQsSIO31qVuWwlSRft1N
	4fF5g0fCA5g2BH6gwmzvwUIN6H3af8TEYn/OsWKJgIZnfsDGQ0B7R5F+N4tNSL7R
	FCYfcz33fdUNL4EPuSzYDzbxDxcjzPuDObQWEazNe7Ysk0yWAxnE8FtDiMdmcjsd
	JCwcQgmJFpE05Sm+pLnHU7tJ/G6NWCg+o0m98sEGpyGIP1vpmWZ/zc02H7OGNilU
	ETd+HXTrIzPJa2oNdsslRmnkzVexsJMeM463M/H3JOaE9ftNgixY4GUsg82w==
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=fm2; t=1744029273; x=
	1744115673; bh=+wUYsjtUJc5L9TuaQNNpMAeWAX2i+xchkoztHrK6MYY=; b=d
	MZUZqIxH5rVFbors4D4p2cUljYYxfWMV/o1PnDinl0eszsg6Z7uhFoAS+x9Wa0fi
	UDIhpumbQBPBa/ix1CXLV63zm6hK4LYVBRYd9q6CWXGVtKIEZkXVEaI1Vyzt8KaN
	W2wboIY5oqvjeAGrXMgzXqntI2ecIo1SZlTQbsEwZhda5o5VwOtyvKcW++xw5EQ3
	T512dmLV5jqa69Ost32t+dym7vKkb+sxKtWxgvErTOtUlO6tJoV1UW4JE2pbjYKc
	hrajpNJ8K9M1Z1R0PhKTXE9rcmE9EKwj3DPSBBk5+tLfdQh83PND+GJFAnLm8evK
	1NU3cAwAvf3zAYNt+nGMg==
X-ME-Sender: <xms:WcbzZ0UiSmwvnMiDj0G4W9KNUv5E-wpT-Ky80JpPnIHeXnBcaOU4Fg>
    <xme:WcbzZ4mx7GuRGSpCIVQH3jdfSdP9NWaRGRAQ24BeOVtGKkK3gFuhH1DDgdlgBO81c
    zx9I_HCDq9dxQ>
X-ME-Received: <xmr:WcbzZ4YF9QphVa8JzwoJ6kGtc-ljTg6agzuiE6QtxMNo-fesvHgX2GPHQuK9VO3BQXdWfhSV8D4hKvCoQiDnhOZBcf298PrUbr6xhXQdEipECIITSQQ>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvtddtvddtucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
    pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
    gvnhhtshculddquddttddmnecujfgurhephffvvefufffkofgjfhggtgfgsehtkeertder
    tdejnecuhfhrohhmpeforghrvghkucforghrtgiihihkohifshhkihdqifpkrhgvtghkih
    cuoehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhmqeen
    ucggtffrrghtthgvrhhnpefgueduhefgvdefheehudejheefudevueeghfekhfehleegve
    duteeuiedugffgffenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhl
    fhhrohhmpehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtoh
    hmpdhnsggprhgtphhtthhopeegpdhmohguvgepshhmthhpohhuthdprhgtphhtthhopeig
    vghnqdguvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdprhgtphhtth
    hopehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhr
    tghpthhtohepshhsthgrsggvlhhlihhniheskhgvrhhnvghlrdhorhhgpdhrtghpthhtoh
    eptggrrhguohgvsegtrghrughovgdrtghomh
X-ME-Proxy: <xmx:WcbzZzUqtV36b9frU0yRqDwJtoNwNZdbDM8vQZ41bh7dpj7QWW24jA>
    <xmx:WcbzZ-laLsU_w8ASuPOU66Gk7zgiMoxQlZ2BODC2h7OOmSgEI6uQ4A>
    <xmx:WcbzZ4enHPiqvPBdAd5KDpAGh8OI3lRrjq05aoUoi5eHgXghV4xZlw>
    <xmx:WcbzZwEwyFdgWBW2OYQ4spUFuBbeI03SgwkRxMRUB3778V_gxf3o-A>
    <xmx:WcbzZ7vNw_ydtepHh4OQAL9_w4-1WqDB7331GZyhEbvR3NEqX2vQlMoc>
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>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Doug Goldstein <cardoe@cardoe.com>
Subject: [PATCH v2 01/12] CI: prevent grub unpacking initramfs
Date: Mon,  7 Apr 2025 14:31:01 +0200
Message-ID: <e401356ec4741ad3a818a84b0d132510eff0f84a.1744028549.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <cover.7da1777882774486a13e6f39ff4a2096f6b7901e.1744028549.git-series.marmarek@invisiblethingslab.com>
References: <cover.7da1777882774486a13e6f39ff4a2096f6b7901e.1744028549.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

It fails on larger initramfs (~250MB one) and sometimes even smaller
depending on memory size/memory map, let Linux do it.

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
---
 automation/scripts/qubes-x86-64.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/automation/scripts/qubes-x86-64.sh b/automation/scripts/qubes-x86-64.sh
index f27296445901..8e78b7984e98 100755
--- a/automation/scripts/qubes-x86-64.sh
+++ b/automation/scripts/qubes-x86-64.sh
@@ -248,7 +248,7 @@ CONTROLLER=control@thor.testnet
 echo "
 multiboot2 (http)/gitlab-ci/xen $CONSOLE_OPTS loglvl=all guest_loglvl=all dom0_mem=4G console_timestamps=boot $extra_xen_opts
 module2 (http)/gitlab-ci/vmlinuz console=hvc0 root=/dev/ram0 earlyprintk=xen
-module2 (http)/gitlab-ci/initrd-dom0
+module2 --nounzip (http)/gitlab-ci/initrd-dom0
 " > $TFTP/grub.cfg
 
 echo "#!ipxe
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Mon Apr 07 12:34:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 12:34:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.939833.1339796 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1lgS-0006C0-NG; Mon, 07 Apr 2025 12:34:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 939833.1339796; Mon, 07 Apr 2025 12: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 1u1lgS-0006Bt-KZ; Mon, 07 Apr 2025 12:34:36 +0000
Received: by outflank-mailman (input) for mailman id 939833;
 Mon, 07 Apr 2025 12:34:35 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=uyK1=WZ=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1u1lgR-0006Bg-3E
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 12:34:35 +0000
Received: from fout-a8-smtp.messagingengine.com
 (fout-a8-smtp.messagingengine.com [103.168.172.151])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a860adf4-13ac-11f0-9eaa-5ba50f476ded;
 Mon, 07 Apr 2025 14:34:33 +0200 (CEST)
Received: from phl-compute-01.internal (phl-compute-01.phl.internal
 [10.202.2.41])
 by mailfout.phl.internal (Postfix) with ESMTP id 74D351380335;
 Mon,  7 Apr 2025 08:34:32 -0400 (EDT)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-01.internal (MEProxy); Mon, 07 Apr 2025 08:34:32 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon,
 7 Apr 2025 08:34:31 -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: a860adf4-13ac-11f0-9eaa-5ba50f476ded
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=fm2;
	 t=1744029272; x=1744115672; bh=WFapRtox07cHAjVDnGsGUNV6flqZv6ts
	pF8FK/dHBoE=; b=QWKo95r37B+xZKPK93JR3htJMXogp6NQZTUuEK0PGogoWKSi
	JmTFlQubIDnLbPqNCWVWaQHV50s53wGlBKnlJ0/Jx2zWq8HB3fgkhTSdERAEx/P9
	Ah42w04FOltXfOZBwrEzZEwiOFqgTM5kES67JVTwuA+V+kYbwQHbGBHv1TzxwpqM
	ucr9ZerxqWhz5Dthlq2jMzy2lj+OqE9X7UnIhUuLyryBwpjqOcr4bUdSA5v0VbBp
	aihuFa3LlDg34Uro6XupLVkJocFbadn+Xhnzr7h4I+PGmvfaT2QkxmVPDpLNzMJ3
	HRZvxUiGsHFausCVMxpP1O+8f2IBhe15TO1Uew==
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=
	fm2; t=1744029272; x=1744115672; bh=WFapRtox07cHAjVDnGsGUNV6flqZ
	v6tspF8FK/dHBoE=; b=DI4W6Rm94tjv8rVv5X0Qst/UUU8QQXVPZfxXUpe+EyO0
	MZyNlLoPWqlia7K9KaCWtKS4kXyreBNa6Wt8l18V1NlelFA0LmeWsfyV2ZoqQs4G
	FuOWaro6MkUTmbPzQcAhswQ0bAmkYtfFOOqjscl0zKa76zefJvPdQFayHYXU54C3
	smxhaIU09kRCRuQC4yJqL4iwQfzjolUYKHdegEKTtwm1Ykwzf+/QreH7uIStO3X8
	Iwy6eE6Gt4370M6xJehEO4gfU8pcjUJD7l2i02rqcq1ZG2pX/A1k+3hY9AXIRy2C
	hlCYbyH3cWBnHRNZmlP1TIQCGCAR+/1Dv7Ai+lqdRg==
X-ME-Sender: <xms:WMbzZ_Jj84QDeNlEuMXC4-Zo-tDIdOr3j9eiQNvclQizjjrYjP5ykw>
    <xme:WMbzZzIWe45zHGllPo1ymNZ6JeIQGJlB0nxVX3wMQe6epQMerIctapC4dGMJIXEzi
    lrXgNq30Hro1w>
X-ME-Received: <xmr:WMbzZ3u30QlzKlt1WAKVHtmMgrhtkjMKY5BYOLM6l5Ptz4-1adKGEb5Lj2f9_ICZUon6LYcfrTcviaobOjm7m_i_QzapgT6zaytWu2HBY28Hg7RnBMI>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvtddtvddtucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
    pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
    gvnhhtshculddquddttddmnecujfgurhephffvvefufffkofggtgfgsehtkeertdertdej
    necuhfhrohhmpeforghrvghkucforghrtgiihihkohifshhkihdqifpkrhgvtghkihcuoe
    hmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhmqeenucgg
    tffrrghtthgvrhhnpeelkefhudelteelleelteetveeffeetffekteetjeehlefggeekle
    eghefhtdehvdenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhr
    ohhmpehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhmpd
    hnsggprhgtphhtthhopeegpdhmohguvgepshhmthhpohhuthdprhgtphhtthhopeigvghn
    qdguvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdprhgtphhtthhope
    hmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhrtghp
    thhtohepshhsthgrsggvlhhlihhniheskhgvrhhnvghlrdhorhhgpdhrtghpthhtoheprg
    hnughrvgifrdgtohhophgvrhefsegtihhtrhhigidrtghomh
X-ME-Proxy: <xmx:WMbzZ4YNa61Pe8gLjLKsTesNZOGeX4fySea5HkrxdQ-QDh8_S0o28g>
    <xmx:WMbzZ2bqhux6tivY7RKjrew6YpT_NMm9CI5FndalrmJ--zoyAfuU8Q>
    <xmx:WMbzZ8AN-PaGZu3eLjUeG-1bVodQPpoLnkZ_udEXblClVE2ng_ilPg>
    <xmx:WMbzZ0bslaPQnkqtu4inqU75KLY16dLrs-k23g3Krw38XMiFCTQU_Q>
    <xmx:WMbzZ_JmzrwJ3puCQMwtoNUy-crqstb6eW4QLfNUo2bmS9vZqlH5-4jG>
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>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: [PATCH v2 00/12] Several CI cleanups and improvements, plus yet another new runner
Date: Mon,  7 Apr 2025 14:31:00 +0200
Message-ID: <cover.7da1777882774486a13e6f39ff4a2096f6b7901e.1744028549.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.48.1
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Some of those patches are collected from my stubdomain test series, others are
made while getting the new runner working. All of the cleanups can be applied
independently, but most if not all are needed for the "CI: add AMD Zen 4 HW
runner" patch adding new runner.

Last two/four patches (including test-artifacts patches) are
optimizations that cut time of some jobs almost by half.

As usual, besides the patches, somebody need to click on "hal9012" runner in
the relevant projects.

Marek Marczykowski-Górecki (12):
  CI: prevent grub unpacking initramfs
  CI: switch qubes runners to use console.exp
  CI: enable XHCI console in Xen debug build on Alpine
  CI: include domU kernel messages in the console output log
  CI: increase verbosity of starting a domain
  CI: consistently use DOCKER_CMD in makefiles
  CI: wait for the network interface in PCI passthrough tests
  CI: switch test kernel from 6.1.19 to 6.12.21
  CI: adjust resolving network interface into PCI device
  CI: add AMD Zen 4 HW runner
  CI: avoid repacking initrd as part of the test job
  CI: save toolstack artifact as cpio.gz

 automation/build/Makefile                                 |  4 +-
 automation/build/alpine/3.18-arm64v8.dockerfile           |  1 +-
 automation/gitlab-ci/build.yaml                           | 10 +-
 automation/gitlab-ci/test.yaml                            | 58 ++++-
 automation/scripts/build                                  |  2 +-
 automation/scripts/console.exp                            | 23 +-
 automation/scripts/qemu-alpine-x86_64.sh                  | 15 +-
 automation/scripts/qemu-smoke-dom0-arm32.sh               |  2 +-
 automation/scripts/qemu-smoke-dom0-arm64.sh               | 15 +-
 automation/scripts/qemu-smoke-dom0less-arm64.sh           |  9 +-
 automation/scripts/qubes-x86-64.sh                        | 97 +++-----
 automation/scripts/xilinx-smoke-dom0-x86_64.sh            | 29 +-
 automation/scripts/xilinx-smoke-dom0less-arm64.sh         | 16 +-
 automation/tests-artifacts/Makefile                       |  4 +-
 automation/tests-artifacts/alpine/3.18-arm64v8.dockerfile |  5 +-
 automation/tests-artifacts/alpine/3.18.dockerfile         |  1 +-
 automation/tests-artifacts/kernel/6.1.19.dockerfile       | 41 +---
 automation/tests-artifacts/kernel/6.12.21.dockerfile      | 43 ++++-
 18 files changed, 216 insertions(+), 159 deletions(-)
 delete mode 100644 automation/tests-artifacts/kernel/6.1.19.dockerfile
 create mode 100644 automation/tests-artifacts/kernel/6.12.21.dockerfile

base-commit: a235f856e4bbd270b085590e1f5fc9599234dcdf
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Mon Apr 07 12:34:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 12:34:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.939835.1339816 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1lgU-0006eR-5M; Mon, 07 Apr 2025 12:34:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 939835.1339816; Mon, 07 Apr 2025 12: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 1u1lgU-0006dJ-1b; Mon, 07 Apr 2025 12:34:38 +0000
Received: by outflank-mailman (input) for mailman id 939835;
 Mon, 07 Apr 2025 12:34:36 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=uyK1=WZ=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1u1lgS-0006Bg-PH
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 12:34:36 +0000
Received: from fout-a8-smtp.messagingengine.com
 (fout-a8-smtp.messagingengine.com [103.168.172.151])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a9ca7a15-13ac-11f0-9eaa-5ba50f476ded;
 Mon, 07 Apr 2025 14:34:35 +0200 (CEST)
Received: from phl-compute-12.internal (phl-compute-12.phl.internal
 [10.202.2.52])
 by mailfout.phl.internal (Postfix) with ESMTP id 15A0E1380319;
 Mon,  7 Apr 2025 08:34:35 -0400 (EDT)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-12.internal (MEProxy); Mon, 07 Apr 2025 08:34:35 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon,
 7 Apr 2025 08:34:33 -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: a9ca7a15-13ac-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:subject
	:subject:to:to; s=fm2; t=1744029275; x=1744115675; bh=+20xCEO7XU
	Y0EaVPTnWYODVDi1jG/CkQA6sU2Q2/xLY=; b=FymF1YgbTKW61bNzVVxaQnYkEK
	n/fSN+4JUSe1VkjvITxqbLU7kHOTiYcYEYBWoj6+UrU14E04vPsd9A7vsqVopBbM
	bvclcFrtS+K5CgOeI2qgw2P5SbQ2izDjM9RX8u47W/4cY1XwCTENlZDn54MutXmW
	nOWPsxt1u37o+4qPuET6YQHEnQq9JF7RQ/nB1BOCwJactys48gnwdQ9vHM7BetKv
	H2LkKDLSITajTzbmDQDxwliVdiD/EjRtJJE/ruW+ddhXHL98thUnk0RVYAstjqao
	zrW4eWX2OihHgTeVY5zxL64chqkg1slZKcT+nGTkkVAZQkPt0yeioBdA3Z0Q==
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=fm2; t=1744029275; x=
	1744115675; bh=+20xCEO7XUY0EaVPTnWYODVDi1jG/CkQA6sU2Q2/xLY=; b=T
	KEtl3cmhp3xqKubJjsrt4rTApBH+VuZfMY7KH1wx4emi+G/Iejf+9emT1QB8ZupM
	TAl9lK7KlUXLMHfQtbVjtCKqy09uaMbC71VEtxry2U13mxM83utwbC119Cos0R07
	J3nS/AzfBVSUSnjtv/jc+CxeqHeoprg4SUde4Kvg+6U74ujueyVMqak+m6wSIhPb
	urygUaVDrlZHw/1Iet6k+VshYaeoG5wifjzeI+X3RANwwrh8llv+fi7RQaImivU5
	QDV+ueANpBIO4LRIpWW9hTFuVAt2aqorSPaDzgddBVGyRqM9hbrOL3iO/zytqHRS
	GBvrA3VXPMOVzNYTsApMQ==
X-ME-Sender: <xms:WsbzZ3IhkJx9boJlYADfEfbTclMKJ7S2BYTwvvVoaunWy1KSht9iQw>
    <xme:WsbzZ7LFeCBm82eZpqSs8QGqZL6HMNrTyIE8KB7UiQKarjVTV9mzfX70sev027Ngk
    txp-axeQRdccQ>
X-ME-Received: <xmr:WsbzZ_twguiajtYlIsnZ12N4-xZIiR_qU7fZLBFYRfxscp2NW0S40i0lpzHvZPn8DeYh8hhFoW0cDQmOr9lTvHD1Y0BHo3bAtdl7kZjlLjBIA11uVsg>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvtddtvddtucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
    pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
    gvnhhtshculddquddttddmnecujfgurhephffvvefufffkofgjfhggtgfgsehtkeertder
    tdejnecuhfhrohhmpeforghrvghkucforghrtgiihihkohifshhkihdqifpkrhgvtghkih
    cuoehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhmqeen
    ucggtffrrghtthgvrhhnpefgueduhefgvdefheehudejheefudevueeghfekhfehleegve
    duteeuiedugffgffenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhl
    fhhrohhmpehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtoh
    hmpdhnsggprhgtphhtthhopeegpdhmohguvgepshhmthhpohhuthdprhgtphhtthhopeig
    vghnqdguvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdprhgtphhtth
    hopehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhr
    tghpthhtoheptggrrhguohgvsegtrghrughovgdrtghomhdprhgtphhtthhopehsshhtrg
    gsvghllhhinhhisehkvghrnhgvlhdrohhrgh
X-ME-Proxy: <xmx:WsbzZwYJU0fzMOiaCbwTi_0Y19qAQ_3_tKiLUwWxOHvULcceA-y3Xw>
    <xmx:WsbzZ-b_QbqTsK98qeZVxQT1HwEMsJr254a4GVprRZYOHAkc2-irkA>
    <xmx:WsbzZ0A18XY42bdkPn1sbQtlTI42AuiRIVSDYHAB-5NatTBpfnQ46w>
    <xmx:WsbzZ8a9KGT7xW9XRy2G9xMgXUX_Zc76KioOe2AQ325s7-4EyQgDUQ>
    <xmx:W8bzZ4i6MGpUQur_7SG3Xhxh5CvR7BLenp70uv9W_hDbmmgZPFXwe86z>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 02/12] CI: switch qubes runners to use console.exp
Date: Mon,  7 Apr 2025 14:31:02 +0200
Message-ID: <33fe66669f6ca9fb7573d69d9f9fefeb653fe503.1744028549.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <cover.7da1777882774486a13e6f39ff4a2096f6b7901e.1744028549.git-series.marmarek@invisiblethingslab.com>
References: <cover.7da1777882774486a13e6f39ff4a2096f6b7901e.1744028549.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

It appears as sometimes it takes more time for Xen even start booting,
mostly due to firmware and fetching large boot files by grub. In some
jobs the current timeout is pretty close to the actual time needed, and
sometimes (rarely for now) test fails due to timeout expiring in the
middle of dom0 booting. This will be happening more often if the
initramfs will grow (and with more complex tests).
This has been observed on some dom0pvh-hvm jobs, at least on runners hw3
and hw11.

Switch to using expect (console.exp) for more robust test output
handling. This allows waiting separately for Xen starting to boot and
then for the test to complete. For now, set both of those to 120s, which
pessimistically bumps timeout for the whole test to 240s (from 120s).

Some messages use regex, use 'expect -re' for all of them for
consistency, even though not all strictly need that (yet).

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
---
Changes in v2:
- replace previous "ci: increase timeout for hw tests" with changing how
  console is interacted with

This needs a containers rebuild.
---
 automation/build/alpine/3.18-arm64v8.dockerfile |  1 +-
 automation/scripts/console.exp                  | 23 ++++++--
 automation/scripts/qubes-x86-64.sh              | 52 ++++--------------
 3 files changed, 32 insertions(+), 44 deletions(-)

diff --git a/automation/build/alpine/3.18-arm64v8.dockerfile b/automation/build/alpine/3.18-arm64v8.dockerfile
index 19fe46f8418f..b8482d5bf43f 100644
--- a/automation/build/alpine/3.18-arm64v8.dockerfile
+++ b/automation/build/alpine/3.18-arm64v8.dockerfile
@@ -48,3 +48,4 @@ RUN apk --no-cache add \
   # qubes test deps
   openssh-client \
   fakeroot \
+  expect \
diff --git a/automation/scripts/console.exp b/automation/scripts/console.exp
index 31ce97b91b63..d1689fa5bf7f 100755
--- a/automation/scripts/console.exp
+++ b/automation/scripts/console.exp
@@ -28,21 +28,34 @@ if {[info exists env(UBOOT_CMD)]} {
     send "$env(UBOOT_CMD)\r"
 }
 
+if {[info exists env(BOOT_MSG)]} {
+    expect -re "$env(BOOT_MSG)"
+}
+
+if {[info exists env(WAKEUP_CMD)]} {
+    expect -re "$env(SUSPEND_MSG)"
+
+    # keep it suspended a bit, then wakeup
+    sleep 30
+
+    system "$env(WAKEUP_CMD)"
+}
+
 if {[info exists env(LOG_MSG)]} {
     expect {
-        "$env(PASSED)" {
-            expect "$env(LOG_MSG)"
+        -re "$env(PASSED)" {
+            expect -re "$env(LOG_MSG)"
             exit 0
         }
-        "$env(LOG_MSG)" {
-            expect "$env(PASSED)"
+        -re "$env(LOG_MSG)" {
+            expect -re "$env(PASSED)"
             exit 0
         }
     }
 }
 
 expect {
-    "$env(PASSED)" {
+    -re "$env(PASSED)" {
         exit 0
     }
 }
diff --git a/automation/scripts/qubes-x86-64.sh b/automation/scripts/qubes-x86-64.sh
index 8e78b7984e98..0eac410f4168 100755
--- a/automation/scripts/qubes-x86-64.sh
+++ b/automation/scripts/qubes-x86-64.sh
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-set -ex
+set -ex -o pipefail
 
 # One of:
 #  - ""             PV dom0,  PVH domU
@@ -263,52 +263,26 @@ cp -f binaries/xen $TFTP/xen
 cp -f binaries/bzImage $TFTP/vmlinuz
 cp -f binaries/dom0-rootfs.cpio.gz $TFTP/initrd-dom0
 
-# start logging the serial; this gives interactive console, don't close its
-# stdin to not close it; the 'cat' is important, plain redirection would hang
-# until somebody opens the pipe; opening and closing the pipe is used to close
-# the console
-mkfifo /tmp/console-stdin
-cat /tmp/console-stdin |\
-ssh $CONTROLLER console | tee smoke.serial | sed 's/\r//' &
-
 # start the system pointing at gitlab-ci predefined config
 ssh $CONTROLLER gitlabci poweron
-trap "ssh $CONTROLLER poweroff; : > /tmp/console-stdin" EXIT
+trap "ssh $CONTROLLER poweroff" EXIT
 
 if [ -n "$wait_and_wakeup" ]; then
-    # wait for suspend or a timeout
-    until grep "$wait_and_wakeup" smoke.serial || [ $timeout -le 0 ]; do
-        sleep 1;
-        : $((--timeout))
-    done
-    if [ $timeout -le 0 ]; then
-        echo "ERROR: suspend timeout, aborting"
-        exit 1
-    fi
-    # keep it suspended a bit, then wakeup
-    sleep 30
-    ssh $CONTROLLER wake
+    export SUSPEND_MSG="$wait_and_wakeup"
+    export WAKEUP_CMD="ssh $CONTROLLER wake"
 fi
 
-set +x
-until grep "^Welcome to Alpine Linux" smoke.serial || [ $timeout -le 0 ]; do
-    sleep 1;
-    : $((--timeout))
-done
-set -x
-
-tail -n 100 smoke.serial
-
-if [ $timeout -le 0 ]; then
-    echo "ERROR: test timeout, aborting"
-    exit 1
-fi
+export PASSED="${passed}"
+export BOOT_MSG="Latest ChangeSet: "
+export LOG_MSG="\nWelcome to Alpine Linux"
+export TEST_CMD="ssh $CONTROLLER console"
+export TEST_LOG="smoke.serial"
+export TEST_TIMEOUT="$timeout"
+./automation/scripts/console.exp | sed 's/\r\+$//'
+TEST_RESULT=$?
 
 if [ -n "$retrieve_xml" ]; then
     nc -w 10 "$SUT_ADDR" 8080 > tests-junit.xml </dev/null
 fi
 
-sleep 1
-
-(grep -q "^Welcome to Alpine Linux" smoke.serial && grep -q "${passed}" smoke.serial) || exit 1
-exit 0
+exit "$TEST_RESULT"
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Mon Apr 07 12:34:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 12:34:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.939836.1339826 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1lgW-0006v0-Jt; Mon, 07 Apr 2025 12:34:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 939836.1339826; Mon, 07 Apr 2025 12: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 1u1lgW-0006ut-EU; Mon, 07 Apr 2025 12:34:40 +0000
Received: by outflank-mailman (input) for mailman id 939836;
 Mon, 07 Apr 2025 12: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=uyK1=WZ=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1u1lgV-0006Bg-2a
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 12:34:39 +0000
Received: from fhigh-a4-smtp.messagingengine.com
 (fhigh-a4-smtp.messagingengine.com [103.168.172.155])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ab61bf5f-13ac-11f0-9eaa-5ba50f476ded;
 Mon, 07 Apr 2025 14:34:38 +0200 (CEST)
Received: from phl-compute-12.internal (phl-compute-12.phl.internal
 [10.202.2.52])
 by mailfhigh.phl.internal (Postfix) with ESMTP id AEE6D114021B;
 Mon,  7 Apr 2025 08:34:37 -0400 (EDT)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-12.internal (MEProxy); Mon, 07 Apr 2025 08:34:37 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon,
 7 Apr 2025 08:34:36 -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: ab61bf5f-13ac-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:subject
	:subject:to:to; s=fm2; t=1744029277; x=1744115677; bh=OfkNWEVYOp
	WJZ9YipFU35kXAq9pfOLZms5AaVuP4WDg=; b=fXGiw2aF4T5C41zGLwCWJr9qfC
	ZBjZdKzFUWS7hzGtqAKGW3P5z5eyflQQ5/24OSbD0CNIB4Kf79K1LzbbNt8KlfKY
	4UT9X8MnJ76Yiq+ArnSQDTXnPgLuYzRwjwo9wnbzoXd7iDSgTIXs7P5V3IYcjUsO
	XoO4GRDOznkqgwshygjZtmavKNZIPUUZlVCb7T0V9lfa6APuYErC5s9+8BYS9eHZ
	Sc/EMh6LQntyDmmCrNU0HD8UItRaqTXliXIgggb94HbeE8iEuCg7UFazA8wi9Imo
	uxSFeoCw/6d6dXhkl8NR9DwgsUxFXQ6JuBqRSZxG6vORPqCkhRIdGEEchIAg==
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=fm2; t=1744029277; x=
	1744115677; bh=OfkNWEVYOpWJZ9YipFU35kXAq9pfOLZms5AaVuP4WDg=; b=J
	JOMH3zwX+M2BME00opla99KsXd5gwojM3gp2+nLX2QwyGWlIA1tm2KK6B3DRKgh9
	0nQyFo9GfTXl8ddJ8zXzN3SNC/a3RspeV6tQVSKqmj312zuNRCKPKn4RnXd0rL0X
	q4x7XD+b3W5r2QK1LRwTHayf6ZOdVn3+iDIA/oT64Fnh4cS3nEkQMLj9vDL+YF0m
	q6mFCzfYCg57IyYEnJYF3uzekz38eSRzz05wF7pqQPuwAPQM84g279m/YB66+/8g
	ShiJ7H1yXz8aGrAdTASdr7FYzBSq97gKYU4ehKvcqdofHymAkdyBdedeJa5CC4Kr
	A/Z/Hh77XzdNbArt6+z5A==
X-ME-Sender: <xms:XcbzZze5ZOwV4xYn5cNIo1hWMxcIUQ079pmIN9R02CpP3_26sTWcZQ>
    <xme:XcbzZ5Ni9N3PHf1HA0QI7ZtwcJ-XiI24oDnpC7_VS0PKGfnq2LqkuG0okvloFVv6R
    4MGItRhK64w7w>
X-ME-Received: <xmr:XcbzZ8higmLc-fYnkFGG9ehNjWhWMtXmzAcNUPODuhHlBi1O9hhVSVdVPggWhOV1xXa4mlpEviHS1UQJZSAzayyD5ClgOvwJ7IiNo6zAM1EtZUw_csk>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvtddtvddtucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
    pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
    gvnhhtshculddquddttddmnecujfgurhephffvvefufffkofgjfhggtgfgsehtkeertder
    tdejnecuhfhrohhmpeforghrvghkucforghrtgiihihkohifshhkihdqifpkrhgvtghkih
    cuoehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhmqeen
    ucggtffrrghtthgvrhhnpefgueduhefgvdefheehudejheefudevueeghfekhfehleegve
    duteeuiedugffgffenucevlhhushhtvghrufhiiigvpedunecurfgrrhgrmhepmhgrihhl
    fhhrohhmpehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtoh
    hmpdhnsggprhgtphhtthhopeegpdhmohguvgepshhmthhpohhuthdprhgtphhtthhopeig
    vghnqdguvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdprhgtphhtth
    hopehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhr
    tghpthhtohepshhsthgrsggvlhhlihhniheskhgvrhhnvghlrdhorhhgpdhrtghpthhtoh
    eptggrrhguohgvsegtrghrughovgdrtghomh
X-ME-Proxy: <xmx:XcbzZ08rh9srrpFp_EyeAegqRn8QvwOZw47BUvlTHjSd90rBECFn_A>
    <xmx:XcbzZ_sujpT-zFfqgDPZbYYyyaAACydF4pseTUVeMpErzFuj-5UWVA>
    <xmx:XcbzZzEfCnkY7Q4CohHCXnLiFPcjZ7im8pIFKmXVm24i8vfOvi0sZw>
    <xmx:XcbzZ2PfHlNVuAIw8VyoA_CfheQJsCf6aFQoPHHOKw3WUHiNHtFSfw>
    <xmx:XcbzZ-0Sl9yLgJ-sUkXosroIoxxDOuGvolT0RJy6RKfdYrFvKnpiZuF1>
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>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Doug Goldstein <cardoe@cardoe.com>
Subject: [PATCH v2 04/12] CI: include domU kernel messages in the console output log
Date: Mon,  7 Apr 2025 14:31:04 +0200
Message-ID: <256c0e93b0500454815f28a370dd208261fa17b6.1744028549.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <cover.7da1777882774486a13e6f39ff4a2096f6b7901e.1744028549.git-series.marmarek@invisiblethingslab.com>
References: <cover.7da1777882774486a13e6f39ff4a2096f6b7901e.1744028549.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Acked-by: Stefano Stabellini <sstabellini@kernel.org>
---
 automation/scripts/qubes-x86-64.sh | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/automation/scripts/qubes-x86-64.sh b/automation/scripts/qubes-x86-64.sh
index 0eac410f4168..7bf42d2e3d31 100755
--- a/automation/scripts/qubes-x86-64.sh
+++ b/automation/scripts/qubes-x86-64.sh
@@ -175,6 +175,8 @@ if [ -n "$domU_check" ]; then
     rm var/run
     echo "#!/bin/sh
 
+echo 8 > /proc/sys/kernel/printk
+
 ${domU_check}
 " > etc/local.d/xen.start
     chmod +x etc/local.d/xen.start
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Mon Apr 07 12:34:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 12:34:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.939837.1339832 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1lgX-0006xZ-2U; Mon, 07 Apr 2025 12:34:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 939837.1339832; Mon, 07 Apr 2025 12: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 1u1lgW-0006w0-NO; Mon, 07 Apr 2025 12:34:40 +0000
Received: by outflank-mailman (input) for mailman id 939837;
 Mon, 07 Apr 2025 12:34: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=uyK1=WZ=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1u1lgW-0006u9-03
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 12:34:40 +0000
Received: from fhigh-a4-smtp.messagingengine.com
 (fhigh-a4-smtp.messagingengine.com [103.168.172.155])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id aa96952e-13ac-11f0-9ffb-bf95429c2676;
 Mon, 07 Apr 2025 14:34:37 +0200 (CEST)
Received: from phl-compute-12.internal (phl-compute-12.phl.internal
 [10.202.2.52])
 by mailfhigh.phl.internal (Postfix) with ESMTP id 5F731114016D;
 Mon,  7 Apr 2025 08:34:36 -0400 (EDT)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-12.internal (MEProxy); Mon, 07 Apr 2025 08:34:36 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon,
 7 Apr 2025 08:34:35 -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: aa96952e-13ac-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:subject
	:subject:to:to; s=fm2; t=1744029276; x=1744115676; bh=oUzAo8IKhM
	cypBS9tzrQd/MdWccuAy4m3Q9jZgmqj4k=; b=Qj5q/13Fgj5Aono7HNX6PRJbEf
	hTweD2CbsxHB5a4t6RVDNrdnsnvL9qYQ0+HRtDBqUBP58tbFtk3k+y3V6La2FJic
	GdGoBsQT6RtRA0ZFt5WVI2xt8edBQHYYUByU+aPo14f8lWFaNg3ZY7RcE3iWFYtn
	U3l3qhLme0cKd5RbepbA0IPKLrX+bGZ8GSR+JPw0jN+w6XnSGGirRG4K5UWNZ7Gh
	cUXG8Rn3F7W8FEFFM0PpXvqaqg+ErDbVich3xWCAtkKQ2s20L4cZztmw9S6FTQ/b
	o3jg6pW8JU69+U6SKl3ewGXQ9LazYG5Q7/WMmxwS0aHI0C/Nb76rPUpVBo0Q==
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=fm2; t=1744029276; x=
	1744115676; bh=oUzAo8IKhMcypBS9tzrQd/MdWccuAy4m3Q9jZgmqj4k=; b=W
	dNFDrzT87NMqkaD6glQO9gujVR3+bAwtw9rXLW+MWJ+dwJtKDgjpj2UyYQtoPDLk
	FFGCHHcfX5u69IItIKMdglTIOphgN3L4d0nzTglWbZmXiuIUBb9zDu7r7QbusWl1
	OXhUHD67siwaWl40z02MkkhKAum8qHlRUXzzKwXe74dFnhr+v0mSJgZmaJRPqmKY
	1nTylKhaiUouN/SRlZL5FKRBECvj3UsXc/N+jqh75VZAgToUEOX8+Rdhl5pl+Ggj
	z4XamcNul09mAE0WPhJA66pIxrbHnapPlCcE3wPBkzfxIMCKIPw3z+IGY3f7RiGZ
	aCLulCYPOph4tLCVXfdmQ==
X-ME-Sender: <xms:XMbzZz7xzgwN6Hx1o9AzlphsbeK09guW7UAdH0EuIZ_hLXpucx4TIg>
    <xme:XMbzZ46H-NE4otK9Ug9zsQHhrMPqYy3IphuPlsOobmB-lVjPu1cKr7gAi-McWwRiw
    S4GIuzbEreK5A>
X-ME-Received: <xmr:XMbzZ6ej48LzaiCBSGb31GUyB5JyWcCxfB7Je00Xma1WdGiuOV8-F7QauR6AODCqRo0Lp3MiYp3jYnoip93gxpGSPBfLYlk0lm_Ufnahp6rsxmvq6n8>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvtddtvddtucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
    pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
    gvnhhtshculddquddttddmnecujfgurhephffvvefufffkofgjfhggtgfgsehtkeertder
    tdejnecuhfhrohhmpeforghrvghkucforghrtgiihihkohifshhkihdqifpkrhgvtghkih
    cuoehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhmqeen
    ucggtffrrghtthgvrhhnpefgueduhefgvdefheehudejheefudevueeghfekhfehleegve
    duteeuiedugffgffenucevlhhushhtvghrufhiiigvpedunecurfgrrhgrmhepmhgrihhl
    fhhrohhmpehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtoh
    hmpdhnsggprhgtphhtthhopeegpdhmohguvgepshhmthhpohhuthdprhgtphhtthhopeig
    vghnqdguvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdprhgtphhtth
    hopehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhr
    tghpthhtohepshhsthgrsggvlhhlihhniheskhgvrhhnvghlrdhorhhgpdhrtghpthhtoh
    eptggrrhguohgvsegtrghrughovgdrtghomh
X-ME-Proxy: <xmx:XMbzZ0IkzHStgvvqnqHtak-7tKS-B--S1hoxXmM2tAdtPub64vIyFA>
    <xmx:XMbzZ3KAmggM5VSVQr9_ZiN3Cpm9dNstgqFUMGJoRaCAXR5z45uNyQ>
    <xmx:XMbzZ9y4LT-Woh6xnv1JqwHUbSV4rYYtbH9x2OqO_naGb7bMieaW2Q>
    <xmx:XMbzZzLv-p8WAvt63q-d7cqZy2jqkmPvunCO3m6hZevbBFI3IqJIDQ>
    <xmx:XMbzZ9RjoVRvVKmQjgubiGSMRvDiVObKD6YPP4c30-fzwYg7ow2J1O7s>
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>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Doug Goldstein <cardoe@cardoe.com>
Subject: [PATCH v2 03/12] CI: enable XHCI console in Xen debug build on Alpine
Date: Mon,  7 Apr 2025 14:31:03 +0200
Message-ID: <318a25de10a4ec992d5e42b1f920354b720988ba.1744028549.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <cover.7da1777882774486a13e6f39ff4a2096f6b7901e.1744028549.git-series.marmarek@invisiblethingslab.com>
References: <cover.7da1777882774486a13e6f39ff4a2096f6b7901e.1744028549.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This build is used for hardware tests, and some runners use XHCI console

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Acked-by: Stefano Stabellini <sstabellini@kernel.org>
---
 automation/gitlab-ci/build.yaml | 1 +
 1 file changed, 1 insertion(+)

diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
index 2513908b059b..169bebe3c775 100644
--- a/automation/gitlab-ci/build.yaml
+++ b/automation/gitlab-ci/build.yaml
@@ -341,6 +341,7 @@ alpine-3.18-gcc-debug:
       CONFIG_ARGO=y
       CONFIG_UBSAN=y
       CONFIG_UBSAN_FATAL=y
+      CONFIG_XHCI=y
 
 debian-12-x86_64-gcc-debug:
   extends: .gcc-x86-64-build-debug
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Mon Apr 07 12:34:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 12:34:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.939839.1339846 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1lgY-0007Nj-A1; Mon, 07 Apr 2025 12:34:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 939839.1339846; Mon, 07 Apr 2025 12:34: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 1u1lgY-0007Lu-3p; Mon, 07 Apr 2025 12:34:42 +0000
Received: by outflank-mailman (input) for mailman id 939839;
 Mon, 07 Apr 2025 12:34:40 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=uyK1=WZ=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1u1lgW-0006Bg-J6
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 12:34:40 +0000
Received: from fout-a8-smtp.messagingengine.com
 (fout-a8-smtp.messagingengine.com [103.168.172.151])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ac2a63e2-13ac-11f0-9eaa-5ba50f476ded;
 Mon, 07 Apr 2025 14:34:39 +0200 (CEST)
Received: from phl-compute-05.internal (phl-compute-05.phl.internal
 [10.202.2.45])
 by mailfout.phl.internal (Postfix) with ESMTP id 11CAE138022F;
 Mon,  7 Apr 2025 08:34:39 -0400 (EDT)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-05.internal (MEProxy); Mon, 07 Apr 2025 08:34:39 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon,
 7 Apr 2025 08:34:37 -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: ac2a63e2-13ac-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:subject
	:subject:to:to; s=fm2; t=1744029279; x=1744115679; bh=c4BIOHpfm5
	N25C8N14eGKLLGzXXxmXcsg7/1yxitfro=; b=Z2jtKVmM9/pxC7PxIFKGQqHXPK
	deoMJIFSi3Nlshndr4guwwlDPu8I5AYWL8gMKJulK0A3B6/IwitSpbDjm8+RRTp8
	8S4V7CQ6fL4dppug1ICFNPMTHMqQqHWJD7dxFtqZVRvLSOe47OghBABcl/XStUhY
	XUtnY/O3OucrGKU7pumRLfoggbaYJbfKYp/LAMtcwxTN8EFucvRiISbyLtvWBown
	a6ILw6kvj0U8UzmLcZM5BkR4Sv3FBGpSGVheiTeCNhyrbtIUoNXRxy7uc303jAqk
	VE/Mkhx/8xTDVSjEE0LDBDPCbeafsH9tvp8jVwaA2+HRQRWAQpMfbfxsW4kQ==
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=fm2; t=1744029279; x=
	1744115679; bh=c4BIOHpfm5N25C8N14eGKLLGzXXxmXcsg7/1yxitfro=; b=F
	GUKvJUXJAnAShjgtxuNOPc2qfQGK672ruDdACyrsacAlj4Rl5fZpg11uVRR43LRc
	cfVXK8pcrqYkPz4lAsyuZKxxSNXQbDE/Q/BVkJteuDUTSkB5V5w8ouZCyULHj/5s
	cvjmp+345I2Hxs55vfD43dJh/htR7Z9RS3Jim//bocWUfY8GPSvJXg3sxuyQHjQe
	Bb8H6l8/N8oHoEeStWU4/toVrY07xs7yNJW5+SPZSklbHg5ihcpdqQ9JowVZ8DdU
	fuEvjqH8mPcrfEQmhKHP9vE+SSzSrWZurCTGpdkv/c8Qc7qi1PtYasJze26aVvkZ
	ay3bL+6SPhqIheAlNXovQ==
X-ME-Sender: <xms:XsbzZxBZE9t5DgnEpICCU51iMIQ4pWKbuKudyLq_5UWCOycE5Ob45Q>
    <xme:XsbzZ_hn9-v54JDAgE7Bjcoxkxh8Ow8f7ggzPcEWvPw88Q5AqnsoZLSHS4U38bAUM
    vxxBUMLRgR_Yg>
X-ME-Received: <xmr:XsbzZ8lswJ-lkdYIGkXL3XtbxyWkTwLu5OD8kg6fjqwt2d6g6EIhnrm1uyz5OJXSOKzCy7DVA-ZIrGSTSq7o9euN_n8bX-5rhcJ7GDENkOH-s0a-JP4>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvtddtvdduucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
    pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
    gvnhhtshculddquddttddmnecujfgurhephffvvefufffkofgjfhggtgfgsehtkeertder
    tdejnecuhfhrohhmpeforghrvghkucforghrtgiihihkohifshhkihdqifpkrhgvtghkih
    cuoehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhmqeen
    ucggtffrrghtthgvrhhnpefgueduhefgvdefheehudejheefudevueeghfekhfehleegve
    duteeuiedugffgffenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhl
    fhhrohhmpehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtoh
    hmpdhnsggprhgtphhtthhopeegpdhmohguvgepshhmthhpohhuthdprhgtphhtthhopeig
    vghnqdguvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdprhgtphhtth
    hopehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhr
    tghpthhtoheptggrrhguohgvsegtrghrughovgdrtghomhdprhgtphhtthhopehsshhtrg
    gsvghllhhinhhisehkvghrnhgvlhdrohhrgh
X-ME-Proxy: <xmx:XsbzZ7xT2sLeYs3rJ-xKcRn5edVBlkSbGLx1jrLI0peWNqkQntkfbA>
    <xmx:XsbzZ2RTxJOBfDAV3m6afvoLW1K1fNP_dSlwJHU9KMSR1ZBcTH8XHg>
    <xmx:XsbzZ-b1mWYI2XCq_6klGn3O_YhKbUeInF87LkmEg-ndZKaDBhjXQw>
    <xmx:XsbzZ3ToH5l1DsQQhfNyaw3EATvi8Xe_1Fh9KoxSSwONCHV7dTrILA>
    <xmx:X8bzZ-aVe4OkAw2eFRDuZRo2gxOyjdDQssmxkuoBo0cuYB-SfZyC5H-P>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 05/12] CI: increase verbosity of starting a domain
Date: Mon,  7 Apr 2025 14:31:05 +0200
Message-ID: <a5d32188862ff2c55a5f9ed4b134e655c3b1381d.1744028549.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <cover.7da1777882774486a13e6f39ff4a2096f6b7901e.1744028549.git-series.marmarek@invisiblethingslab.com>
References: <cover.7da1777882774486a13e6f39ff4a2096f6b7901e.1744028549.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

And start collecting qemu log earlier, so it isn't lost in case of a
timeout during domain startup.

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
---
Changes in v2:
- adjust xilinx-smoke-dom0-x86_64.sh too
---
 automation/scripts/qemu-alpine-x86_64.sh       | 2 +-
 automation/scripts/qemu-smoke-dom0-arm32.sh    | 2 +-
 automation/scripts/qemu-smoke-dom0-arm64.sh    | 2 +-
 automation/scripts/qubes-x86-64.sh             | 4 ++--
 automation/scripts/xilinx-smoke-dom0-x86_64.sh | 4 ++--
 5 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/automation/scripts/qemu-alpine-x86_64.sh b/automation/scripts/qemu-alpine-x86_64.sh
index 1ff689b577e3..17e2141d625e 100755
--- a/automation/scripts/qemu-alpine-x86_64.sh
+++ b/automation/scripts/qemu-alpine-x86_64.sh
@@ -56,7 +56,7 @@ bash /etc/init.d/xencommons start
 
 xl list
 
-xl create -c /root/test.cfg
+xl -vvv create -c /root/test.cfg
 
 " > etc/local.d/xen.start
 chmod +x etc/local.d/xen.start
diff --git a/automation/scripts/qemu-smoke-dom0-arm32.sh b/automation/scripts/qemu-smoke-dom0-arm32.sh
index e1cd83880928..0c60a66e25e3 100755
--- a/automation/scripts/qemu-smoke-dom0-arm32.sh
+++ b/automation/scripts/qemu-smoke-dom0-arm32.sh
@@ -21,7 +21,7 @@ echo "#!/bin/bash
 
 xl list
 
-xl create -c /root/test.cfg
+xl -vvv create -c /root/test.cfg
 
 " > ./root/xen.start
 echo "bash /root/xen.start" >> ./etc/init.d/xen-watchdog
diff --git a/automation/scripts/qemu-smoke-dom0-arm64.sh b/automation/scripts/qemu-smoke-dom0-arm64.sh
index 4d22a124df11..8774a8701232 100755
--- a/automation/scripts/qemu-smoke-dom0-arm64.sh
+++ b/automation/scripts/qemu-smoke-dom0-arm64.sh
@@ -52,7 +52,7 @@ bash /etc/init.d/xencommons start
 
 xl list
 
-xl create -c /root/test.cfg
+xl -vvv create -c /root/test.cfg
 
 " > etc/local.d/xen.start
 chmod +x etc/local.d/xen.start
diff --git a/automation/scripts/qubes-x86-64.sh b/automation/scripts/qubes-x86-64.sh
index 7bf42d2e3d31..17fcbd8fa7db 100755
--- a/automation/scripts/qubes-x86-64.sh
+++ b/automation/scripts/qubes-x86-64.sh
@@ -122,7 +122,6 @@ echo \"${passed}\"
 "
 
         dom0_check="
-tail -F /var/log/xen/qemu-dm-domU.log &
 until grep -q \"^domU Welcome to Alpine Linux\" /var/log/xen/console/guest-domU.log; do
     sleep 1
 done
@@ -222,7 +221,8 @@ if [ -n "$domU_check" ]; then
     echo "
 # get domU console content into test log
 tail -F /var/log/xen/console/guest-domU.log 2>/dev/null | sed -e \"s/^/(domU) /\" &
-xl create /etc/xen/domU.cfg
+tail -F /var/log/xen/qemu-dm-domU.log 2>/dev/null | sed -e \"s/^/(qemu-dm) /\" &
+xl -vvv create /etc/xen/domU.cfg
 ${dom0_check}
 " >> etc/local.d/xen.start
 else
diff --git a/automation/scripts/xilinx-smoke-dom0-x86_64.sh b/automation/scripts/xilinx-smoke-dom0-x86_64.sh
index f70cfdc1552a..7834ffbe0593 100755
--- a/automation/scripts/xilinx-smoke-dom0-x86_64.sh
+++ b/automation/scripts/xilinx-smoke-dom0-x86_64.sh
@@ -49,7 +49,7 @@ ifconfig xenbr0 up
 ifconfig xenbr0 192.168.0.1
 # get domU console content into test log
 tail -F /var/log/xen/console/guest-domU.log 2>/dev/null | sed -e \"s/^/(domU) /\" &
-xl create /etc/xen/domU.cfg
+xl -vvv create /etc/xen/domU.cfg
 set +x
 until grep -q \"${DOMU_MSG}\" /var/log/xen/console/guest-domU.log; do
     sleep 1
@@ -75,7 +75,7 @@ done | argo-exec -p 28333 -d 0 -- /bin/echo
 "
     DOM0_CMD="
 insmod /root/xen-argo.ko
-xl create /etc/xen/domU.cfg
+xl -vvv create /etc/xen/domU.cfg
 argo-exec -l -p 28333 -- /bin/echo
 "
 copy_dom0_files ()
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Mon Apr 07 12:34:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 12:34:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.939840.1339857 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1lga-0007i8-Hf; Mon, 07 Apr 2025 12:34:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 939840.1339857; Mon, 07 Apr 2025 12:34: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 1u1lga-0007hz-CV; Mon, 07 Apr 2025 12:34:44 +0000
Received: by outflank-mailman (input) for mailman id 939840;
 Mon, 07 Apr 2025 12:34: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=uyK1=WZ=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1u1lgY-0006u9-Ql
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 12:34:42 +0000
Received: from fhigh-a4-smtp.messagingengine.com
 (fhigh-a4-smtp.messagingengine.com [103.168.172.155])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ad007bc2-13ac-11f0-9ffb-bf95429c2676;
 Mon, 07 Apr 2025 14:34:41 +0200 (CEST)
Received: from phl-compute-10.internal (phl-compute-10.phl.internal
 [10.202.2.50])
 by mailfhigh.phl.internal (Postfix) with ESMTP id 75CD8114013D;
 Mon,  7 Apr 2025 08:34:40 -0400 (EDT)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-10.internal (MEProxy); Mon, 07 Apr 2025 08:34:40 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon,
 7 Apr 2025 08:34:39 -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: ad007bc2-13ac-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:subject
	:subject:to:to; s=fm2; t=1744029280; x=1744115680; bh=H8oe0eacfK
	xNq01LDLqm7MI0DtvxX6f0297Icu1U3B8=; b=C6VUBfMRLQiEiap58n4T6sRiEc
	4g0pix3/KoV2e4fZU+4BI2IGVoqa+KdhirXYzhtRPjSUrlVl58Lh50az/hqLVXL3
	UovN60897MyznrWb6THLBlKWZvDewZdato/R8MzvPzMXbvnV5Ncigb3B0j8b8MMz
	J6XLjTqt26jSG6wBMpoo/xxKD70hkP5lpYMKoUxjm1VcneKObujGFj+w1Ksrfpsx
	5T5vvELmDAAW0SklphHOy2WvDfTDlufuzpxIzjPUfyNGrkjRhuVQOdIoOjws4ZT+
	g93EfJCu7ZvA46KdkLxuouBlF0iM7OnZi25EFhlMtB7QOl6Rl+yvnijdP2+g==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:feedback-id:feedback-id
	:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to:x-me-proxy
	:x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1744029280; x=
	1744115680; bh=H8oe0eacfKxNq01LDLqm7MI0DtvxX6f0297Icu1U3B8=; b=G
	0RWU4Z2O4M6bGXGnM8I6fXt8DqRJCmtrYUjWcGTPWK19KefHhM3xvUgNkvzl2lEv
	xmXQclFZZB6Ik5yZQgI9wvUMPDYaWnJoCGkPpm/BSYtNhHq9KSvn2CYI3sYIL+wf
	ZKvdmQXZ7xN+84Vc4doHHHVp0bN6cDpVsXxd1IY9Y0RJFu1VtObxAJuyCcSUTG98
	uRighQYCH1Y2EAlYOSwUm417poPntTYD/8umaNR9uZTg03MaSefqjMEhI7P5Z5Oa
	LhuN+755xFHlKNZ+uGcgfzSVp9KuZnXDnVG403HmmH3Yj+GleKqMvBvhX6ojhW+3
	WaZwEMj/3jYFrdMK9+wTA==
X-ME-Sender: <xms:YMbzZ1NQZ---u82Ps8b6iF4zN--4xSH7lXNmeDF1viBQvKTz5e4zeA>
    <xme:YMbzZ3_hoQ8nOOL2UUVaVp7PevslI5gMqDGYBNmo60O8bBTWi_GNfpgqpkeuBJxV6
    aqIKUZoMuYysQ>
X-ME-Received: <xmr:YMbzZ0R1-RJH6Gz3Oo9aEJGXQAUQYlNmaXS1eL25rE_wYNZdoOtXxVZSWU3Nmv2dltbIQ7cllmG4G2MunlOswjVoDdBtXZVpdyMtWhffmG6iuErgtGI>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvtddtvddtucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
    pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
    gvnhhtshculddquddttddmnecujfgurhephffvvefufffkofgjfhggtgfgsehtkeertder
    tdejnecuhfhrohhmpeforghrvghkucforghrtgiihihkohifshhkihdqifpkrhgvtghkih
    cuoehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhmqeen
    ucggtffrrghtthgvrhhnpefgueduhefgvdefheehudejheefudevueeghfekhfehleegve
    duteeuiedugffgffenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhl
    fhhrohhmpehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtoh
    hmpdhnsggprhgtphhtthhopeegpdhmohguvgepshhmthhpohhuthdprhgtphhtthhopeig
    vghnqdguvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdprhgtphhtth
    hopehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhr
    tghpthhtohepshhsthgrsggvlhhlihhniheskhgvrhhnvghlrdhorhhgpdhrtghpthhtoh
    eptggrrhguohgvsegtrghrughovgdrtghomh
X-ME-Proxy: <xmx:YMbzZxtyJYsbtV1KdzN9Ocdm2GJNCrguD8H_63uU3N09i8868JqTag>
    <xmx:YMbzZ9ebnboAMgoCjtVd1sPc6LNuOq9AMzTJwy3BN1az5hTCSOF5DA>
    <xmx:YMbzZ90gOawql497sk7TNJM6Hw9CcabPoEvgz9rlVhTl3JOHvKQcXg>
    <xmx:YMbzZ58dMwwGn4rnjprlPZ0Y-FzCWsMVmTtY2KGa9HKxRevsGBOi8w>
    <xmx:YMbzZ4nt6IVstbsE_fP1kO11DAVIjOdVNX6UNmh5PvHFIl1vLZuAK0rD>
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>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Doug Goldstein <cardoe@cardoe.com>
Subject: [PATCH v2 06/12] CI: consistently use DOCKER_CMD in makefiles
Date: Mon,  7 Apr 2025 14:31:06 +0200
Message-ID: <3e28c1267125641ed3212c0366678474692913b2.1744028549.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <cover.7da1777882774486a13e6f39ff4a2096f6b7901e.1744028549.git-series.marmarek@invisiblethingslab.com>
References: <cover.7da1777882774486a13e6f39ff4a2096f6b7901e.1744028549.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This allows rebuilding containers using podman too.

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
---
 automation/build/Makefile           | 4 ++--
 automation/tests-artifacts/Makefile | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/automation/build/Makefile b/automation/build/Makefile
index 4df43b040777..fedf7524dacd 100644
--- a/automation/build/Makefile
+++ b/automation/build/Makefile
@@ -31,8 +31,8 @@ clean:
 define CLEAN_RULE
 .PHONY: clean-$(1)
 clean-$(1):
-	if [ -n "$$$$(docker image ls -q $(REGISTRY)/$(subst /,:,$(1)))" ]; then \
-		docker image rm $(REGISTRY)/$(subst /,:,$(1)); \
+	if [ -n "$$$$($(DOCKER_CMD) image ls -q $(REGISTRY)/$(subst /,:,$(1)))" ]; then \
+		$(DOCKER_CMD) image rm $(REGISTRY)/$(subst /,:,$(1)); \
 	fi
 
 endef
diff --git a/automation/tests-artifacts/Makefile b/automation/tests-artifacts/Makefile
index d055cd696bed..80a60a94f3f7 100644
--- a/automation/tests-artifacts/Makefile
+++ b/automation/tests-artifacts/Makefile
@@ -10,9 +10,9 @@ help:
 	@echo "To push container builds, set the env var PUSH"
 
 %: %.dockerfile ## Builds containers
-	docker build --pull -t $(REGISTRY)/$(@D):$(@F) -f $< $(<D)
+	$(DOCKER_CMD) build --pull -t $(REGISTRY)/$(@D):$(@F) -f $< $(<D)
 	@if [ ! -z $${PUSH+x} ]; then \
-		docker push $(REGISTRY)/$(@D):$(@F); \
+		$(DOCKER_CMD) push $(REGISTRY)/$(@D):$(@F); \
 	fi
 
 .PHONY: all
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Mon Apr 07 12:34:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 12:34:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.939841.1339862 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1lga-0007mG-V5; Mon, 07 Apr 2025 12:34:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 939841.1339862; Mon, 07 Apr 2025 12:34: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 1u1lga-0007lv-Nv; Mon, 07 Apr 2025 12:34:44 +0000
Received: by outflank-mailman (input) for mailman id 939841;
 Mon, 07 Apr 2025 12:34: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=uyK1=WZ=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1u1lgZ-0006Bg-6X
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 12:34:43 +0000
Received: from fhigh-a4-smtp.messagingengine.com
 (fhigh-a4-smtp.messagingengine.com [103.168.172.155])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id add3e471-13ac-11f0-9eaa-5ba50f476ded;
 Mon, 07 Apr 2025 14:34:42 +0200 (CEST)
Received: from phl-compute-11.internal (phl-compute-11.phl.internal
 [10.202.2.51])
 by mailfhigh.phl.internal (Postfix) with ESMTP id C72EE11401EF;
 Mon,  7 Apr 2025 08:34:41 -0400 (EDT)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-11.internal (MEProxy); Mon, 07 Apr 2025 08:34:41 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon,
 7 Apr 2025 08:34:40 -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: add3e471-13ac-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:subject
	:subject:to:to; s=fm2; t=1744029281; x=1744115681; bh=vn4e4W4xWz
	4ei2euUqprCz3nyrIw2LqvIbqSGRhnE5Y=; b=Ex7vC62DxJw1hPi3VF//AHZnd1
	BF192vzYV0nEz7gXW0kJICSmFbUd51EKsSbaDtJCieuJaVKTDAMbM4Pe/aWrfERi
	w1kjblOE4L1VlvNtnXcBTSB0y7hhObFU/0ISF1iYM1i577Hm7VThzDzOPlGsjRf1
	mPhtR2v5wB9QAAmJmeyn7D9X2SQgI0YIlyWUPijfN4WW0IoKcVH98/SSZYJoD3sS
	V0K3n1JCleW9ryiWSbmQ2brzsR8I3Kj/BoDtOO3KJuo12rhD2FRkvA5EtJG8QwP1
	qoG16rsmufzlvKP+97FUI+5YIiRnzasbqwaN5Uf/uTNgVkEGH/1296uYS5eA==
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=fm2; t=1744029281; x=
	1744115681; bh=vn4e4W4xWz4ei2euUqprCz3nyrIw2LqvIbqSGRhnE5Y=; b=k
	zsXtzO+RxOE+mYVPP6fHcYwudfFKIxtEfnLTh0xiSm/Hfv7SdB0mUgjnsrhaq4BI
	fTfz85wuswv1UWZqRrVGs7/8rSDLiHsXOigx9Ace9ktqDcxB1PS/WD1L2YMA9SU2
	A7d4sHEv+Zyr6W/ytgcGlhMAKqbmXNqaXUOzmOOr7tJ4Gvw4zyCPmclLetfm3Pbr
	RFZXs8guGyRo6XXfhNmZ0SsQ9AYG/Fq65DShYWi8NyPCWTe5hL3k3D6YJYMdHIkS
	14gL8FCASmZ8GmhXSCteuGAA9Ooy5jAcxP+2Bh/x8jS1Ix/fK67mz/v3Tj35t1g8
	a+hqc1cmJJugi+4bJH8aA==
X-ME-Sender: <xms:YcbzZ9ic7vkUkicFzuqnpZUaL509gf2SXRshPtPSKzealn9nbAMfLw>
    <xme:YcbzZyD0mPrBYUk14AsNxMYUNyfekAeN3glOs-E-jYaPSLtw5slk7tNFSaw_0JjNF
    2N1iQUglQMVAg>
X-ME-Received: <xmr:YcbzZ9EJVePpTVWzLiP7H2I9Utg_xNdrN6qDgz-hlsRJErVzvSxmvJ2skx8P43dHItT2bsUxd7W-U0hFY8-SSDjGSmHqXYCtV9d0QmRXJPY_tbmo-oc>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvtddtvddtucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
    pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
    gvnhhtshculddquddttddmnecujfgurhephffvvefufffkofgjfhggtgfgsehtkeertder
    tdejnecuhfhrohhmpeforghrvghkucforghrtgiihihkohifshhkihdqifpkrhgvtghkih
    cuoehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhmqeen
    ucggtffrrghtthgvrhhnpefgueduhefgvdefheehudejheefudevueeghfekhfehleegve
    duteeuiedugffgffenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhl
    fhhrohhmpehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtoh
    hmpdhnsggprhgtphhtthhopeegpdhmohguvgepshhmthhpohhuthdprhgtphhtthhopeig
    vghnqdguvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdprhgtphhtth
    hopehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhr
    tghpthhtohepshhsthgrsggvlhhlihhniheskhgvrhhnvghlrdhorhhgpdhrtghpthhtoh
    eptggrrhguohgvsegtrghrughovgdrtghomh
X-ME-Proxy: <xmx:YcbzZyRglsEmu1vs3FrATEZBwoYNiNURw64kJ6p7qTZY_TViYX3pGA>
    <xmx:YcbzZ6wL25ygjfY8A--ppb-OL8mzCM5YiJEdjPAdRUpQvwqsnl5Zgw>
    <xmx:YcbzZ44cNwH8I5qzgLqtuGK0U5eD0eIyibWT8IvcseKVEI4XGxNC4g>
    <xmx:YcbzZ_xNpPE7aDbI_Hesulcv1v_CDOuTbv0BPkELBNKFRfA_phCt7Q>
    <xmx:YcbzZ66SltPfQKiGm8BByq8LnxhopoKxhndexctEBIGrATYBxu2ENSNZ>
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>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Doug Goldstein <cardoe@cardoe.com>
Subject: [PATCH v2 07/12] CI: wait for the network interface in PCI passthrough tests
Date: Mon,  7 Apr 2025 14:31:07 +0200
Message-ID: <e6430d1b11257ee4f3c87c098e98b46ee26489c5.1744028549.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <cover.7da1777882774486a13e6f39ff4a2096f6b7901e.1744028549.git-series.marmarek@invisiblethingslab.com>
References: <cover.7da1777882774486a13e6f39ff4a2096f6b7901e.1744028549.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The network driver initializes asynchronously, and it may not be ready
yet by the time the startup script is called. This is especially the
case for USB network adapter (where the PCI device is the USB
controller) in the upcoming runner.

Don't bother about separate timeout - test timeout will cover this part
too.

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
---
 automation/scripts/qubes-x86-64.sh | 1 +
 1 file changed, 1 insertion(+)

diff --git a/automation/scripts/qubes-x86-64.sh b/automation/scripts/qubes-x86-64.sh
index 17fcbd8fa7db..9359e8914fb2 100755
--- a/automation/scripts/qubes-x86-64.sh
+++ b/automation/scripts/qubes-x86-64.sh
@@ -104,6 +104,7 @@ on_reboot = "destroy"
         domU_check="
 set -x -e
 interface=eth0
+while ! [ -e \"/sys/class/net/\$interface\" ]; do sleep 1; done
 ip link set \"\$interface\" up
 timeout 30s udhcpc -i \"\$interface\"
 pingip=\$(ip -o -4 r show default|cut -f 3 -d ' ')
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Mon Apr 07 12:34:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 12:34:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.939848.1339876 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1lge-0008Mn-DT; Mon, 07 Apr 2025 12:34:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 939848.1339876; Mon, 07 Apr 2025 12:34:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1lge-0008MW-7f; Mon, 07 Apr 2025 12:34:48 +0000
Received: by outflank-mailman (input) for mailman id 939848;
 Mon, 07 Apr 2025 12:34:47 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=uyK1=WZ=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1u1lgd-0006u9-4T
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 12:34:47 +0000
Received: from fhigh-a4-smtp.messagingengine.com
 (fhigh-a4-smtp.messagingengine.com [103.168.172.155])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id af574415-13ac-11f0-9ffb-bf95429c2676;
 Mon, 07 Apr 2025 14:34:45 +0200 (CEST)
Received: from phl-compute-12.internal (phl-compute-12.phl.internal
 [10.202.2.52])
 by mailfhigh.phl.internal (Postfix) with ESMTP id 63843114021F;
 Mon,  7 Apr 2025 08:34:44 -0400 (EDT)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-12.internal (MEProxy); Mon, 07 Apr 2025 08:34:44 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon,
 7 Apr 2025 08:34:43 -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: af574415-13ac-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:subject
	:subject:to:to; s=fm2; t=1744029284; x=1744115684; bh=JBSgp/43ku
	/IG4uH7Ko3Z77z4MQ5/Hj6l9vUJjfz2kg=; b=BAc4354YtgcI0neHhcavWgtaUF
	ynYy2UNeqj+vvMt7K1AebjZm+rJDf3t0fyEQZNeId2POvgU17Q8nmoj9GwZtjtku
	5mWBMsbfsMfh/v5CofaGvRNzmjkOu1cq6++TTL4hOgLMltxJDc57a9n3lj94VA0X
	ETOnowRi6n0LTPqoffwcHyg9tDGMo3DtmNiwBLFuR1uwT6nohusVvHDFgkngQzF5
	BxvAhHJWbwFKzAD4m4l3Feu2oeM5u4OcCGonRCj9i5AiYo5k0Cgv02NekUird0hh
	lbZ9Z+/Llw+ox9cOcL1B8he6A8dmEOrTCv/VIO1iGfHho2fXcxX0CWksRtXQ==
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=fm2; t=1744029284; x=
	1744115684; bh=JBSgp/43ku/IG4uH7Ko3Z77z4MQ5/Hj6l9vUJjfz2kg=; b=f
	X6h5KuNaa+xuT0oZuexUpmMEw+gt95Zpg6yfbtyVn7vV1Nrp1STDhmLbAuJTxP0W
	g3uZol9F60qlBFFdffQ2JteFp5BJY9uHoAo3W1EZg4VWFFHQ4UPmgf8XqJ+0ZZdU
	g5A8VE6Hz5x0YEc95SThXk7uXimm5vcA69qhx+t294MfXQEeXzU3PRHJgiefgIEO
	FNFFkbfIiOtji1G2I0L+LuinmKWDgCo6CJ0QxuCwKTfek0tevVJhvy7QDLlHns3Q
	SZBN8GLP7G8Ip/WP409ZpuN3oIkyrV8D7G8XBGdYRv3haUZEvwCxGAx2arJ0JyK6
	H1jMs0qcXUjEMNflOA/ag==
X-ME-Sender: <xms:ZMbzZ_5QbHEiXnY4cGrY6MNMXlYa1GBz1M4mt-vsIn_58wjf2-cplw>
    <xme:ZMbzZ07MANKgzQ3mFbw3PSoeUIxEujZSerK-rwgINQcIjJsPfzk8pypoJ8u10IEyk
    6o0E-omjvBr4A>
X-ME-Received: <xmr:ZMbzZ2dpLRXrrrURMnTny6C7c__Ob7_pBIWxNLmOqdO0DxMG5ftabaSf-mclaok9VMfMOyj4p909Cz6Gqw_3V8cd-hfS7ZBVqMCgeL8VaYWiLqjeVfM>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvtddtvddtucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
    pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
    gvnhhtshculddquddttddmnecujfgurhephffvvefufffkofgjfhggtgfgsehtkeertder
    tdejnecuhfhrohhmpeforghrvghkucforghrtgiihihkohifshhkihdqifpkrhgvtghkih
    cuoehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhmqeen
    ucggtffrrghtthgvrhhnpefgueduhefgvdefheehudejheefudevueeghfekhfehleegve
    duteeuiedugffgffenucevlhhushhtvghrufhiiigvpeefnecurfgrrhgrmhepmhgrihhl
    fhhrohhmpehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtoh
    hmpdhnsggprhgtphhtthhopeegpdhmohguvgepshhmthhpohhuthdprhgtphhtthhopeig
    vghnqdguvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdprhgtphhtth
    hopehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhr
    tghpthhtohepshhsthgrsggvlhhlihhniheskhgvrhhnvghlrdhorhhgpdhrtghpthhtoh
    eptggrrhguohgvsegtrghrughovgdrtghomh
X-ME-Proxy: <xmx:ZMbzZwLX35IO02Z1fxQn0fZMc-yzwMV7-_qpkcF_-wKZZh8HgBN6mQ>
    <xmx:ZMbzZzIcltLfn6SW58tgX7hk9YCTPdiFkBwnERP6f02LMVyuQrn3Nw>
    <xmx:ZMbzZ5yJPWLcGKrOsPMxfp4ZcoFK2X-FmdPRB_m5oIsGMBhPd0eXNw>
    <xmx:ZMbzZ_JQQ7S9nRU_dI7-eYzXBkmKbW0c14gXQAdQfl4BvMjqAOppNw>
    <xmx:ZMbzZ5S74PmWT44sOLeVdaGBKRHloxtGhwnZ1NIWiXBDPj7Z1DpB2hsX>
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>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Doug Goldstein <cardoe@cardoe.com>
Subject: [PATCH v2 09/12] CI: adjust resolving network interface into PCI device
Date: Mon,  7 Apr 2025 14:31:09 +0200
Message-ID: <691ab03ad2b1a327a8b2559facec668ab4ce6986.1744028549.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <cover.7da1777882774486a13e6f39ff4a2096f6b7901e.1744028549.git-series.marmarek@invisiblethingslab.com>
References: <cover.7da1777882774486a13e6f39ff4a2096f6b7901e.1744028549.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Change how PCI device lookup is done to handle also USB devices, in
which case get the USB controller. Instead of taking basename of the
'device' symlink, resolve the full path (example:
/sys/devices/pci0000:00/0000:00:09.0/usb4/4-7/4-7:1.0) and take the
first part after pci0000:00. Theoretically it could be a bridge, but VM
has flat PCI topology.

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
---
 automation/scripts/qubes-x86-64.sh | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/automation/scripts/qubes-x86-64.sh b/automation/scripts/qubes-x86-64.sh
index 9359e8914fb2..861e302d845b 100755
--- a/automation/scripts/qubes-x86-64.sh
+++ b/automation/scripts/qubes-x86-64.sh
@@ -110,7 +110,8 @@ timeout 30s udhcpc -i \"\$interface\"
 pingip=\$(ip -o -4 r show default|cut -f 3 -d ' ')
 ping -c 10 \"\$pingip\"
 echo domU started
-pcidevice=\$(basename \$(readlink /sys/class/net/\$interface/device))
+pcidevice=\$(realpath /sys/class/net/\$interface/device |
+             sed 's#.*pci0000:00/\\([^/]*\\).*#\\1#')
 lspci -vs \$pcidevice
 "
         if [ -n "$PCIDEV_INTR" ]; then
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Mon Apr 07 12:34:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 12:34:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.939853.1339885 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1lgj-0000Uw-N1; Mon, 07 Apr 2025 12:34:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 939853.1339885; Mon, 07 Apr 2025 12:34:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1lgj-0000UY-ID; Mon, 07 Apr 2025 12:34:53 +0000
Received: by outflank-mailman (input) for mailman id 939853;
 Mon, 07 Apr 2025 12:34: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=uyK1=WZ=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1u1lgh-0006u9-IM
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 12:34:51 +0000
Received: from fout-a8-smtp.messagingengine.com
 (fout-a8-smtp.messagingengine.com [103.168.172.151])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b1e75ccd-13ac-11f0-9ffb-bf95429c2676;
 Mon, 07 Apr 2025 14:34:49 +0200 (CEST)
Received: from phl-compute-02.internal (phl-compute-02.phl.internal
 [10.202.2.42])
 by mailfout.phl.internal (Postfix) with ESMTP id AC8171380334;
 Mon,  7 Apr 2025 08:34:48 -0400 (EDT)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-02.internal (MEProxy); Mon, 07 Apr 2025 08:34:48 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon,
 7 Apr 2025 08:34:47 -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: b1e75ccd-13ac-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:subject
	:subject:to:to; s=fm2; t=1744029288; x=1744115688; bh=RayiXMebKB
	VQZ9cR/fh1HsEVnIaXaoIq2vJJNpeCIXQ=; b=hI9fbPYGdd8sBUDcXodPNV+mMP
	Npw9lz4vw0/wBUzEBG4Jv+d1tGIWSoOYbcyFQ6xVuHAapxbMbuXkEEPeStFdVfkV
	WvGmQpquqEKp8vtwZv1801XhE+9gvWpQLV3gew97EzBGE574TDti0Xa/PEslNSHE
	OaLEbdspUfs6YKgxdlpGsQ0EPyUd2i0RwPyWvzCT6kdYmdJ6nR0mKXjv2oX1FESJ
	LHiUh579rXo+MRwJUaScN56CSNaW0KpaG4KrhOdSaOUl6ElM9HxZLNY02k5+r8pN
	VQaDhHIkvXeUP1EhRl4BQMtABROeHbPZdrcKFa3FGy7NCZOxxIXaDiLWmpzA==
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=fm2; t=1744029288; x=
	1744115688; bh=RayiXMebKBVQZ9cR/fh1HsEVnIaXaoIq2vJJNpeCIXQ=; b=g
	wO3332R7XyaioCHDeCbr9O9woMKViFedyqd69o5sJLFZuyszSL5zzg2tsLcAKY0D
	TW95S0BB6Ort8ap8LnYqtDXGk/szlN0GvvyGyhIuuidYblxMCnX2mp4X/pnMIMGV
	r26ebRjNA3pwaMd54xEByYkc/gSSTs/o4/7X0XM2BX+BgGoPwGM9rEkGi4jKgF9k
	LRu6xLmYtIltr1HtojXhaSQCf0WDuP6VBUjxpJPicY3xHUaCRorVeBIx8uKT6kwF
	penSKHF5eIS4uFWXd2W/eByJGYDhuwF/5naeLZqHk1EdFE1+uSQ0Nt5BjUW0XScE
	PM2nEpNJbCmmVzTGf/5jA==
X-ME-Sender: <xms:aMbzZ1dF3pVyWzlv-KKYm_Vl0SeI6aC_fgCzdlLnJC92cbEfh2eEPA>
    <xme:aMbzZzPMGSgdrMedIdlt78gGRDLtCCSAHXZNax4yG7sGZhdBp6zzvNCy2EOfKZ59L
    jlo40C1CfMroA>
X-ME-Received: <xmr:aMbzZ-gb1rApHOmpZoqcjFauNjX9ePZI1LP5SydFy0j_k7e9yimkUZ8TzHiLsSbRk93AhRHDZj6Pyn7IVgwsbPE8qidhHsC6e7Iv-EU2L8knWTbBfWU>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvtddtvddtucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
    pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
    gvnhhtshculddquddttddmnecujfgurhephffvvefufffkofgjfhggtgfgsehtkeertder
    tdejnecuhfhrohhmpeforghrvghkucforghrtgiihihkohifshhkihdqifpkrhgvtghkih
    cuoehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhmqeen
    ucggtffrrghtthgvrhhnpefgueduhefgvdefheehudejheefudevueeghfekhfehleegve
    duteeuiedugffgffenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhl
    fhhrohhmpehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtoh
    hmpdhnsggprhgtphhtthhopeegpdhmohguvgepshhmthhpohhuthdprhgtphhtthhopeig
    vghnqdguvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdprhgtphhtth
    hopehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhr
    tghpthhtoheptggrrhguohgvsegtrghrughovgdrtghomhdprhgtphhtthhopehsshhtrg
    gsvghllhhinhhisehkvghrnhgvlhdrohhrgh
X-ME-Proxy: <xmx:aMbzZ--9_9ZbRnPq6R076mRfCMBErcOReqhWbHP0k8KfbvxBE9Yvrg>
    <xmx:aMbzZxtdIOb3JTASiT0Rxm3bRoLjg_rygIyIKG1oE5pbbMqwHIQMCg>
    <xmx:aMbzZ9GCOM-97aGOaaZjBAeWxtYke11tN3gmyucdC-O3QuwjzVTrhA>
    <xmx:aMbzZ4MK4Ul6maBIQnUtLQtSFGxPRJlj-dP-saGC-KIYZHjUWyxwQA>
    <xmx:aMbzZw0jJwjM0KBao6qxTqzauAjJlD8vZwT04piMDP0eGbDsZpQFzQ51>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 12/12] CI: save toolstack artifact as cpio.gz
Date: Mon,  7 Apr 2025 14:31:12 +0200
Message-ID: <ded706422ea35898ac4f9c64cf41e11795347bb0.1744028549.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <cover.7da1777882774486a13e6f39ff4a2096f6b7901e.1744028549.git-series.marmarek@invisiblethingslab.com>
References: <cover.7da1777882774486a13e6f39ff4a2096f6b7901e.1744028549.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This avoids the need to re-compress it in every test job.

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
---
New in v2
---
 automation/scripts/build                          | 2 +-
 automation/scripts/qemu-alpine-x86_64.sh          | 2 +-
 automation/scripts/qemu-smoke-dom0-arm64.sh       | 2 +-
 automation/scripts/qemu-smoke-dom0less-arm64.sh   | 2 +-
 automation/scripts/qubes-x86-64.sh                | 4 +++-
 automation/scripts/xilinx-smoke-dom0-x86_64.sh    | 4 ++--
 automation/scripts/xilinx-smoke-dom0less-arm64.sh | 2 +-
 7 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/automation/scripts/build b/automation/scripts/build
index 522efe774ef3..365534895047 100755
--- a/automation/scripts/build
+++ b/automation/scripts/build
@@ -108,7 +108,7 @@ else
     # Note: Some smoke tests depending on finding binaries/xen on a full build
     # even though dist/ contains everything, while some containers don't even
     # build Xen
-    cp -r dist binaries/
+    (cd dist/install; find | cpio -o -H newc | gzip) > binaries/toolstack.cpio.gz
     cp -r tools/tests binaries/
     collect_xen_artefacts
 fi
diff --git a/automation/scripts/qemu-alpine-x86_64.sh b/automation/scripts/qemu-alpine-x86_64.sh
index 9b47b662c3f2..81e8ff24327a 100755
--- a/automation/scripts/qemu-alpine-x86_64.sh
+++ b/automation/scripts/qemu-alpine-x86_64.sh
@@ -35,7 +35,6 @@ mkdir proc
 mkdir run
 mkdir srv
 mkdir sys
-cp -ar ../dist/install/* .
 mkdir -p root etc/local.d
 mv ../initrd-domU.cpio.gz ./root/initrd.cpio.gz
 cp ../bzImage ./root
@@ -61,6 +60,7 @@ xl -vvv create -c /root/test.cfg
 chmod +x etc/local.d/xen.start
 # rebuild Dom0 rootfs
 cp ../initrd.cpio.gz ../xen-rootfs.cpio.gz
+cat ../toolstack.cpio.gz >> ../xen-rootfs.cpio.gz
 find . |cpio -H newc -o|gzip >> ../xen-rootfs.cpio.gz
 cd ../..
 
diff --git a/automation/scripts/qemu-smoke-dom0-arm64.sh b/automation/scripts/qemu-smoke-dom0-arm64.sh
index 533b286528f1..2e5246f2c9b6 100755
--- a/automation/scripts/qemu-smoke-dom0-arm64.sh
+++ b/automation/scripts/qemu-smoke-dom0-arm64.sh
@@ -33,7 +33,6 @@ mkdir proc
 mkdir run
 mkdir srv
 mkdir sys
-cp -ar ../dist/install/* .
 mkdir -p etc/local.d root
 mv ../initrd-domU.cpio.gz ./root/initrd.cpio.gz
 cp ../Image ./root
@@ -56,6 +55,7 @@ xl -vvv create -c /root/test.cfg
 " > etc/local.d/xen.start
 chmod +x etc/local.d/xen.start
 cp ../initrd.cpio.gz ../xen-rootfs.cpio.gz
+cat ../toolstack.cpio.gz >> ../xen-rootfs.cpio.gz
 find . |cpio -H newc -o|gzip >> ../xen-rootfs.cpio.gz
 cd ../..
 
diff --git a/automation/scripts/qemu-smoke-dom0less-arm64.sh b/automation/scripts/qemu-smoke-dom0less-arm64.sh
index 70085e26c139..93f4fb410690 100755
--- a/automation/scripts/qemu-smoke-dom0less-arm64.sh
+++ b/automation/scripts/qemu-smoke-dom0less-arm64.sh
@@ -121,7 +121,6 @@ mkdir proc
 mkdir run
 mkdir srv
 mkdir sys
-cp -ar ../binaries/dist/install/* .
 mkdir -p etc/local.d
 
 echo "#!/bin/bash
@@ -142,6 +141,7 @@ ${dom0_check}
 " > etc/local.d/xen.start
 chmod +x etc/local.d/xen.start
 cp ../binaries/initrd.cpio.gz ../binaries/dom0-rootfs.cpio.gz
+cat ../binaries/toolstack.cpio.gz >> ../binaries/dom0-rootfs.cpio.gz
 find . | cpio -H newc -o | gzip >> ../binaries/dom0-rootfs.cpio.gz
 cd ..
 
diff --git a/automation/scripts/qubes-x86-64.sh b/automation/scripts/qubes-x86-64.sh
index 399d72e0600d..4fe59fce8999 100755
--- a/automation/scripts/qubes-x86-64.sh
+++ b/automation/scripts/qubes-x86-64.sh
@@ -195,7 +195,6 @@ mkdir proc
 mkdir run
 mkdir sys
 mkdir -p etc/local.d
-cp -ar ../binaries/dist/install/* .
 cp -ar ../binaries/tests .
 cp -a ../automation/scripts/run-tools-tests tests/
 
@@ -231,8 +230,10 @@ else
 fi
 
 chmod +x etc/local.d/xen.start
+mkdir -p etc/xen
 echo "$domU_config" > etc/xen/domU.cfg
 
+mkdir -p etc/default
 echo "XENCONSOLED_TRACE=all" >> etc/default/xencommons
 echo "QEMU_XEN=/bin/false" >> etc/default/xencommons
 mkdir -p var/log/xen/console
@@ -242,6 +243,7 @@ if [ -n "$domU_check" ]; then
 fi
 # take base initrd and append test-specific files
 cp ../binaries/initrd.cpio.gz ../binaries/dom0-rootfs.cpio.gz
+cat ../binaries/toolstack.cpio.gz >> ../binaries/dom0-rootfs.cpio.gz
 find . | cpio -H newc -o | gzip >> ../binaries/dom0-rootfs.cpio.gz
 cd ..
 
diff --git a/automation/scripts/xilinx-smoke-dom0-x86_64.sh b/automation/scripts/xilinx-smoke-dom0-x86_64.sh
index 6b9f0e4a8dc7..ea0f952975c7 100755
--- a/automation/scripts/xilinx-smoke-dom0-x86_64.sh
+++ b/automation/scripts/xilinx-smoke-dom0-x86_64.sh
@@ -115,8 +115,7 @@ rm -rf rootfs
 mkdir -p rootfs
 cd rootfs
 mkdir boot proc run srv sys
-cp -ar ../binaries/dist/install/* .
-mkdir -p etc/local.d
+mkdir -p etc/local.d etc/xen etc/default
 echo "#!/bin/bash
 set -x
 export LD_LIBRARY_PATH=/usr/local/lib
@@ -134,6 +133,7 @@ cp ../binaries/bzImage boot/vmlinuz
 cp ../binaries/domU-rootfs-overlay.cpio.gz boot/initrd-domU-overlay
 copy_dom0_files
 cp ../binaries/initrd.cpio.gz ../binaries/dom0-rootfs.cpio.gz
+cat ../binaries/toolstack.cpio.gz >> ../binaries/dom0-rootfs.cpio.gz
 find . | cpio -H newc -o | gzip >> ../binaries/dom0-rootfs.cpio.gz
 cd ..
 
diff --git a/automation/scripts/xilinx-smoke-dom0less-arm64.sh b/automation/scripts/xilinx-smoke-dom0less-arm64.sh
index 81be60e2026e..dbb955df0478 100755
--- a/automation/scripts/xilinx-smoke-dom0less-arm64.sh
+++ b/automation/scripts/xilinx-smoke-dom0less-arm64.sh
@@ -63,7 +63,6 @@ mkdir proc
 mkdir run
 mkdir srv
 mkdir sys
-cp -ar ../binaries/dist/install/* .
 
 mkdir -p etc/local.d
 echo "#!/bin/bash
@@ -77,6 +76,7 @@ ${dom0_check}
 " > etc/local.d/xen.start
 chmod +x etc/local.d/xen.start
 cp ../binaries/initrd.cpio.gz ../binaries/dom0-rootfs.cpio.gz
+cat ../binaries/toolstack.cpio.gz >> ../binaries/dom0-rootfs.cpio.gz
 find . | cpio -H newc -o | gzip >> ../binaries/dom0-rootfs.cpio.gz
 cd ..
 
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Mon Apr 07 12:40:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 12:40:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.939901.1339896 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1lmI-0004H8-Af; Mon, 07 Apr 2025 12:40:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 939901.1339896; Mon, 07 Apr 2025 12:40: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 1u1lmI-0004H1-82; Mon, 07 Apr 2025 12:40:38 +0000
Received: by outflank-mailman (input) for mailman id 939901;
 Mon, 07 Apr 2025 12:40: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=uyK1=WZ=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1u1lge-0006Bg-LU
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 12:34:48 +0000
Received: from fhigh-a4-smtp.messagingengine.com
 (fhigh-a4-smtp.messagingengine.com [103.168.172.155])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b02659ec-13ac-11f0-9eaa-5ba50f476ded;
 Mon, 07 Apr 2025 14:34:46 +0200 (CEST)
Received: from phl-compute-08.internal (phl-compute-08.phl.internal
 [10.202.2.48])
 by mailfhigh.phl.internal (Postfix) with ESMTP id B8382114013D;
 Mon,  7 Apr 2025 08:34:45 -0400 (EDT)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-08.internal (MEProxy); Mon, 07 Apr 2025 08:34:45 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon,
 7 Apr 2025 08:34:44 -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: b02659ec-13ac-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:subject
	:subject:to:to; s=fm2; t=1744029285; x=1744115685; bh=bBr+eZXUOc
	ukuCDFZbX2ITRA0wCf4Pu2nOyRJufUmqM=; b=oLWxl48stmB4k9m+WEpoU33GhF
	w5K9tlQCQO4SwpqU7z8mSv8sWGk0dyVaRRbTR9n8J19ecBh9nkaLjAGumQaPIPOd
	4JhuzRxBzR196XBGlwSaWnPcpu55LAQID0230FMKw6z3MJs2+nw0TdzkkmTj52Al
	gLYGo9nxhNBvqqj/lU3E6zj5yHYltizGrDoyWP5TWkm7iksOIb+soPGUT8LvF2iF
	bJ+lnoqfa82joim6XPbAbHayCHDftxlJoChO3BRgWilf9Rp9jTAMmkT7Y8aF1aVn
	dA2rbIXowY8W952+Hu4yjvirqWRf/hnpX84H/aB6nT5lbxymDG6FNS05asPA==
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=fm2; t=1744029285; x=
	1744115685; bh=bBr+eZXUOcukuCDFZbX2ITRA0wCf4Pu2nOyRJufUmqM=; b=D
	0vKijYuWx66E1hKtUlss0mwfEJr6lbwgCYSHUWhmE8s2lJ1qzYGdpFWh0ziR4a1C
	pOUOpqMq7Jbv0NNqdqrWg3xcUpXNqoAF0VE3XtIeZviQkBr3HlSi9hXOneIq+irA
	pXk3eOyPdODzg5fGR/9puu9oacaeFswa2UMg10fNykpk40YObnYKyKgWK9+GDCNb
	wH9Ai8toEPSzFfUizuqJ0IY3hD1oq9/fBppuLZTLuY7UI7vK9b+kFXm1YnF/3Fy/
	G42bOUXVOC8U3d8DlePQf12HCZqzigkN3RpaE7FRCvC80VcIbWoKrGGdq615LBBm
	BpKP+yiDHe/eLHl+yImIw==
X-ME-Sender: <xms:ZcbzZ4FGtUqphP5AD0j0vpE6rdZRzRZo3PdnrRm2ocbGovnelAbN-w>
    <xme:ZcbzZxUHadEmNU03T6V854vqT6t9fNF8xhOTZbb5_bnz-UBWRfci9VzAtiFbkFcJs
    qRHotGfEcM2Gw>
X-ME-Received: <xmr:ZcbzZyI60TrZTcjx9WiwkG_JX3RzppDFo4h3OIOxw9v0PPDzC3RLCEuf13PJOy-0gu4wKF3DCvVkKVBbv_laofU2iZowcf8k8GifF3_w_mSCq4ci3-o>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvtddtvddtucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
    pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
    gvnhhtshculddquddttddmnecujfgurhephffvvefufffkofgjfhggtgfgsehtkeertder
    tdejnecuhfhrohhmpeforghrvghkucforghrtgiihihkohifshhkihdqifpkrhgvtghkih
    cuoehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhmqeen
    ucggtffrrghtthgvrhhnpeffiedtgeevffetledvgefhhfevgffhfeekleehueejjeegvd
    dvgfffjeeutddvleenucffohhmrghinhepkhgvrhhnvghlrdhorhhgnecuvehluhhsthgv
    rhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghksehinh
    hvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdpnhgspghrtghpthhtohepgedpmhho
    uggvpehsmhhtphhouhhtpdhrtghpthhtohepgigvnhdquggvvhgvlheslhhishhtshdrgi
    gvnhhprhhojhgvtghtrdhorhhgpdhrtghpthhtohepmhgrrhhmrghrvghksehinhhvihhs
    ihgslhgvthhhihhnghhslhgrsgdrtghomhdprhgtphhtthhopehsshhtrggsvghllhhinh
    hisehkvghrnhgvlhdrohhrghdprhgtphhtthhopegtrghrughovgestggrrhguohgvrdgt
    ohhm
X-ME-Proxy: <xmx:ZcbzZ6G4i11ORz5KBXPDZD6zqWyZ76reLrbToSyNItpuCrnMZM2h7g>
    <xmx:ZcbzZ-UGDmvR9qIgPr_Pwf3aDbhRbxAAX6e98bcDPIRjxPd0D2jfbg>
    <xmx:ZcbzZ9NJLaEif4eLIZ0iMERazV0sZczWB0Ddhs-z_08moO0AqIRGUA>
    <xmx:ZcbzZ12SvcvVrPyATOcPjoJRceDnge_wU86yqO3cfkNRiCuJB-QtPg>
    <xmx:ZcbzZ3fZnEF2zkIHwtGonrNd6rpqcm9LBKMBKf1IGSTDRFVBsrIgKYlp>
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>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Doug Goldstein <cardoe@cardoe.com>
Subject: [PATCH v2 10/12] CI: add AMD Zen 4 HW runner
Date: Mon,  7 Apr 2025 14:31:10 +0200
Message-ID: <3f825b4bc78916fc537d8bde4a5e49931106bffc.1744028549.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <cover.7da1777882774486a13e6f39ff4a2096f6b7901e.1744028549.git-series.marmarek@invisiblethingslab.com>
References: <cover.7da1777882774486a13e6f39ff4a2096f6b7901e.1744028549.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This is AMD Ryzen 5 7640U in Framework Laptop AMD.
It has several things different than the other runners.
First of all, the console is using XHCI debug capability.
And then, this system doesn't have normal wired ethernet. But is has one
on USB, and this one is used for booting. For this, enable
CONFIG_USB_RTL8152 in the Linux build.

Include some basic tests, plus PCI passthrough.

This machine doesn't support S3. S0ix pretends to be working with
Qubes's dom0 (kernel + userspace), but it hangs on suspend with Alpine
used in test. But even when it doesn't hang, it doesn't really reach
deep sleep, so skip this test for now here.

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
---
Requires containers rebuild, especially tests-artifacts/kernel/6.12.21.

Do not apply yet, until issues found by those tests are fixed. That
would be at least third issue found using this system, so lets have it
in CI.
---
 automation/gitlab-ci/test.yaml                       | 56 +++++++++++++-
 automation/tests-artifacts/kernel/6.12.21.dockerfile |  2 +-
 2 files changed, 58 insertions(+)

diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
index a13dd040bd26..feb2dd10ab30 100644
--- a/automation/gitlab-ci/test.yaml
+++ b/automation/gitlab-ci/test.yaml
@@ -188,6 +188,16 @@
   tags:
     - qubes-hw11
 
+.zen4-x86-64:
+  extends: .adl-x86-64
+  variables:
+    PCIDEV: "c3:00.4"
+    PCIDEV_INTR: "MSI-X"
+    CONSOLE_OPTS: "console=xhci dbgp=xhci@pcic1:00.3,share=yes"
+    SUT_ADDR: test-12.testnet
+  tags:
+    - qubes-hw12
+
 # Test jobs
 build-each-commit-gcc:
   extends: .test-jobs-common
@@ -479,6 +489,52 @@ zen3p-tools-tests-pvh-x86-64-gcc-debug:
     - *x86-64-test-needs
     - alpine-3.18-gcc-debug
 
+zen4-smoke-x86-64-gcc-debug:
+  extends: .zen4-x86-64
+  script:
+    - ./automation/scripts/qubes-x86-64.sh 2>&1 | tee ${LOGFILE}
+  needs:
+    - *x86-64-test-needs
+    - alpine-3.18-gcc-debug
+
+zen4-smoke-x86-64-dom0pvh gcc-debug:
+  extends: .zen4-x86-64
+  script:
+    - ./automation/scripts/qubes-x86-64.sh dom0pvh 2>&1 | tee ${LOGFILE}
+  needs:
+    - *x86-64-test-needs
+    - alpine-3.18-gcc-debug
+
+zen4-pci-hvm-x86-64-gcc-debug:
+  extends: .zen4-x86-64
+  script:
+    - ./automation/scripts/qubes-x86-64.sh pci-hvm 2>&1 | tee ${LOGFILE}
+  needs:
+    - *x86-64-test-needs
+    - alpine-3.18-gcc-debug
+
+zen4-tools-tests-pv-x86-64-gcc-debug:
+  extends: .zen4-x86-64
+  script:
+    - ./automation/scripts/qubes-x86-64.sh tools-tests-pv 2>&1 | tee ${LOGFILE}
+  artifacts:
+    reports:
+      junit: tests-junit.xml
+  needs:
+    - *x86-64-test-needs
+    - alpine-3.18-gcc-debug
+
+zen4-tools-tests-pvh-x86-64-gcc-debug:
+  extends: .zen4-x86-64
+  script:
+    - ./automation/scripts/qubes-x86-64.sh tools-tests-pvh 2>&1 | tee ${LOGFILE}
+  artifacts:
+    reports:
+      junit: tests-junit.xml
+  needs:
+    - *x86-64-test-needs
+    - alpine-3.18-gcc-debug
+
 qemu-smoke-dom0-arm64-gcc:
   extends: .qemu-arm64
   script:
diff --git a/automation/tests-artifacts/kernel/6.12.21.dockerfile b/automation/tests-artifacts/kernel/6.12.21.dockerfile
index d7d34031cab5..4e0a68ec61eb 100644
--- a/automation/tests-artifacts/kernel/6.12.21.dockerfile
+++ b/automation/tests-artifacts/kernel/6.12.21.dockerfile
@@ -19,6 +19,7 @@ RUN apt-get update && \
         flex \
         bison \
         libelf-dev \
+        libssl-dev \
         && \
     apt-get autoremove -y && \
     apt-get clean && \
@@ -33,6 +34,7 @@ RUN curl -fsSLO https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-"$LINUX_VERSI
     scripts/config --enable BRIDGE && \
     scripts/config --enable IGC && \
     scripts/config --enable TUN && \
+    scripts/config --enable USB_RTL8152 && \
     cp .config .config.orig && \
     cat .config.orig | grep XEN | grep =m |sed 's/=m/=y/g' >> .config && \
     make -j$(nproc) bzImage && \
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Mon Apr 07 12:41:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 12:41:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.939934.1339905 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1lmf-0005GH-Ki; Mon, 07 Apr 2025 12:41:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 939934.1339905; Mon, 07 Apr 2025 12:41: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 1u1lmf-0005Fo-Gb; Mon, 07 Apr 2025 12:41:01 +0000
Received: by outflank-mailman (input) for mailman id 939934;
 Mon, 07 Apr 2025 12:41: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=uyK1=WZ=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1u1lgh-0006Bg-ML
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 12:34:51 +0000
Received: from fout-a8-smtp.messagingengine.com
 (fout-a8-smtp.messagingengine.com [103.168.172.151])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b10c42b4-13ac-11f0-9eaa-5ba50f476ded;
 Mon, 07 Apr 2025 14:34:48 +0200 (CEST)
Received: from phl-compute-09.internal (phl-compute-09.phl.internal
 [10.202.2.49])
 by mailfout.phl.internal (Postfix) with ESMTP id 40B931380191;
 Mon,  7 Apr 2025 08:34:47 -0400 (EDT)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-09.internal (MEProxy); Mon, 07 Apr 2025 08:34:47 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon,
 7 Apr 2025 08:34:45 -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: b10c42b4-13ac-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:subject
	:subject:to:to; s=fm2; t=1744029287; x=1744115687; bh=0lH0mmLiee
	74SgDvco7HYwzx3T1Kyj8W/7DH9aYE+F8=; b=WCD3ukoAQ+QFlMR7aUFHcehRb/
	KTUMDZFfWKHggS/01GyH0ELWjyL/zBM59is2SNHAt3uQSEOV4+IyBwQ4YhmECoQ6
	Pl+N6l7BEvRZd5d9z626S84UzU7vTRYqbtSmNdT2wm1vnkIJ/SmeT/xFQ0kTLe4P
	3z8t76tG6YPossk8YsPy6ajDkyJZvvLtp4+goVeCBdNymhP2PK+DOgsdMHe4IKZr
	RuXw9cITZF4BjZIgkJK1jAWo6WpBNniAYrUKHIt8ZOxueqBS5rt6Pita48LyR2Ee
	w8aFtikbDrqKQlIKza2cUcdIamF3QXnfrLKIrkCbgeDcBNuv+SoaKmrUgRoA==
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=fm2; t=1744029287; x=
	1744115687; bh=0lH0mmLiee74SgDvco7HYwzx3T1Kyj8W/7DH9aYE+F8=; b=o
	gW/NnV1ayS2qtraAS0eNIBRNBURb+K/eg/D/RqjGFuhH/fvmLQ3SN9W+3udLqy4W
	R3UMTgv59L8iRihm3H1s6tXQoHm22zXVnWM7VFbuLbBqZEazqZx48OHZnvtGgsQD
	lz6sBE7QxSM+bbNkWsTfEsf8y/u04683ov22tShYFcPlvKNBF6nvuMBwInBQXw2H
	Dr/3OgM4KyWhnouZdsLSXlz05b52Wjf/R+ukR72rOnhIfNNYqqb4z4T5M+Ms/BVC
	7y+kxEEfTdf/WtZE4totQd7Xw3NX60niyYrbGDVU6Hi8O9zDciadK8XnrQOTSVsu
	TIUjg7RWEFJjJyqIMaNOQ==
X-ME-Sender: <xms:ZsbzZ88lBBbXA1v6iGB7_tiicjI4HvMiinzt3Xk8-HFEzpO2OzaHfQ>
    <xme:ZsbzZ0svhr6kWah99qCRfqJ9prABQMchBIVuMqQjQARL69N4l5TbOZ2SMeBSPDF4A
    yq9riMOKuRH9Q>
X-ME-Received: <xmr:ZsbzZyDdI0jJ3dwIMFzkrEUq2B0DRMxnlYUX_gBu8v4d6WIOUXG95XJmtedh_crDNTZqTULREtlUfF1XTPpJTlo9VK9Mkns6fbJxcTBjPYWQLmTKeEo>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvtddtvdduucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
    pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
    gvnhhtshculddquddttddmnecujfgurhephffvvefufffkofgjfhggtgfgsehtkeertder
    tdejnecuhfhrohhmpeforghrvghkucforghrtgiihihkohifshhkihdqifpkrhgvtghkih
    cuoehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhmqeen
    ucggtffrrghtthgvrhhnpeelfedtfefgfffghfevhfehvdeileehheffueekieetfeffhf
    etgefggfejudfggeenucffohhmrghinhepghhithhlrggsrdgtohhmnecuvehluhhsthgv
    rhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghksehinh
    hvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdpnhgspghrtghpthhtohepgedpmhho
    uggvpehsmhhtphhouhhtpdhrtghpthhtohepgigvnhdquggvvhgvlheslhhishhtshdrgi
    gvnhhprhhojhgvtghtrdhorhhgpdhrtghpthhtohepmhgrrhhmrghrvghksehinhhvihhs
    ihgslhgvthhhihhnghhslhgrsgdrtghomhdprhgtphhtthhopegtrghrughovgestggrrh
    guohgvrdgtohhmpdhrtghpthhtohepshhsthgrsggvlhhlihhniheskhgvrhhnvghlrdho
    rhhg
X-ME-Proxy: <xmx:ZsbzZ8dSU8550WLxRioLLXHQXk-f2M2hagGXHxBGLN3_X3d9W-sAxA>
    <xmx:Z8bzZxPNkNPfo29eXJkivWspMWWLg-hfHQ2DTbsY_-JcKGjfkhJpYA>
    <xmx:Z8bzZ2n_UDXj-IWB-UVFNBTGKvRtsL_LtCLyNojD0xt-2Sl6eUb-EQ>
    <xmx:Z8bzZzunXm73-SSklYBZmLmKqCPe2sTPb-8Ya2g_B44ceNSckqE1ng>
    <xmx:Z8bzZ4XS2-4jJSjOUzAiGmTf02vPJckjv8YBe1LLfT1b4dPExnZ1EWFj>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 11/12] CI: avoid repacking initrd as part of the test job
Date: Mon,  7 Apr 2025 14:31:11 +0200
Message-ID: <18391a01aef89e928d04fd746fb6e5e5943df439.1744028549.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <cover.7da1777882774486a13e6f39ff4a2096f6b7901e.1744028549.git-series.marmarek@invisiblethingslab.com>
References: <cover.7da1777882774486a13e6f39ff4a2096f6b7901e.1744028549.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The prerequisite for this is building initrd.cpio.gz, not only
initrd.tar.gz. That's a change in the test-artifacts repository.

Having that, do not repack the whole initrd, but only pack modified
files and rely on Linux handling of concatenated archives.
This allows packing just test-related files (which includes the whole
toolstack), instead of the whole initrd.

DomU initrd handling is a bit more complicated thing. It's sent to the
target host as part of the dom0 initrd. But to modify/extend it, the
"overlay" need to be applied already on the target system (otherwise
controller host would need to repack it anyway). So, make the
initrd.cpio.gz in test-artifacts include boot/initrd-domU already, and
add test-specific files as boot/initrd-domU-overlay that is concatenated
by dom0 boot script.

Since full initrd is not unpacked now when preparing domU (and dom0)
rootfs, a couple of minor changes are needed to how they are prepared.
This includes creating whole etc/issue file, instead of modifying
existing one, and a need to create a couple directories.

And since there is now initrd.cpio.gz artifact, rename temporary domU
initrd to initrd-domU.cpio.gz

Finally, move adding "rc_verbose=yes" to /etc/rc.conf to initrd
building.

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
---
New in v2

In fact, alpine/3.18.dockerfile in this repository is not what
is used to build initrd.cpio.gz for test here, but add it anyway in case
there are some other tests using it that I missed. If it's really
unused, it probably should be removed, but that's a separate patch.

Jobs xilinx-* are untested, as I don't have necessary access.
---
 automation/gitlab-ci/build.yaml                           |  5 +-
 automation/scripts/qemu-alpine-x86_64.sh                  | 11 +--
 automation/scripts/qemu-smoke-dom0-arm64.sh               | 11 +--
 automation/scripts/qemu-smoke-dom0less-arm64.sh           |  7 +--
 automation/scripts/qubes-x86-64.sh                        | 29 +++-----
 automation/scripts/xilinx-smoke-dom0-x86_64.sh            | 23 +++---
 automation/scripts/xilinx-smoke-dom0less-arm64.sh         | 14 +---
 automation/tests-artifacts/alpine/3.18-arm64v8.dockerfile |  5 +-
 automation/tests-artifacts/alpine/3.18.dockerfile         |  1 +-
 9 files changed, 55 insertions(+), 51 deletions(-)

diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
index d41f27fc94bf..8e1ff0178469 100644
--- a/automation/gitlab-ci/build.yaml
+++ b/automation/gitlab-ci/build.yaml
@@ -268,10 +268,13 @@ alpine-3.18-arm64-rootfs-export:
   extends: .test-jobs-artifact-common
   image: registry.gitlab.com/xen-project/xen/tests-artifacts/alpine:3.18-arm64v8
   script:
-    - mkdir binaries && cp /initrd.tar.gz binaries/initrd.tar.gz
+    - mkdir binaries
+    - cp /initrd.tar.gz binaries/initrd.tar.gz
+    - cp /initrd.cpio.gz binaries/initrd.cpio.gz
   artifacts:
     paths:
       - binaries/initrd.tar.gz
+      - binaries/initrd.cpio.gz
   tags:
     - arm64
 
diff --git a/automation/scripts/qemu-alpine-x86_64.sh b/automation/scripts/qemu-alpine-x86_64.sh
index 17e2141d625e..9b47b662c3f2 100755
--- a/automation/scripts/qemu-alpine-x86_64.sh
+++ b/automation/scripts/qemu-alpine-x86_64.sh
@@ -25,20 +25,19 @@ mount -t devtmpfs devtmpfs /dev
 chmod +x initrd/init
 # DomU rootfs
 cd initrd
-find . | cpio --create --format='newc' | gzip > ../initrd.cpio.gz
+find . | cpio --create --format='newc' | gzip > ../initrd-domU.cpio.gz
 cd ..
 
 # initrd.tar.gz is Dom0 rootfs
 mkdir -p rootfs
 cd rootfs
-tar xvzf ../initrd.tar.gz
 mkdir proc
 mkdir run
 mkdir srv
 mkdir sys
-rm var/run
 cp -ar ../dist/install/* .
-mv ../initrd.cpio.gz ./root
+mkdir -p root etc/local.d
+mv ../initrd-domU.cpio.gz ./root/initrd.cpio.gz
 cp ../bzImage ./root
 echo "name=\"test\"
 memory=512
@@ -60,9 +59,9 @@ xl -vvv create -c /root/test.cfg
 
 " > etc/local.d/xen.start
 chmod +x etc/local.d/xen.start
-echo "rc_verbose=yes" >> etc/rc.conf
 # rebuild Dom0 rootfs
-find . |cpio -H newc -o|gzip > ../xen-rootfs.cpio.gz
+cp ../initrd.cpio.gz ../xen-rootfs.cpio.gz
+find . |cpio -H newc -o|gzip >> ../xen-rootfs.cpio.gz
 cd ../..
 
 cat >> binaries/pxelinux.0 << EOF
diff --git a/automation/scripts/qemu-smoke-dom0-arm64.sh b/automation/scripts/qemu-smoke-dom0-arm64.sh
index 8774a8701232..533b286528f1 100755
--- a/automation/scripts/qemu-smoke-dom0-arm64.sh
+++ b/automation/scripts/qemu-smoke-dom0-arm64.sh
@@ -24,19 +24,18 @@ mount -t devtmpfs devtmpfs /dev
 /bin/sh" > initrd/init
 chmod +x initrd/init
 cd initrd
-find . | cpio --create --format='newc' | gzip > ../initrd.cpio.gz
+find . | cpio --create --format='newc' | gzip > ../initrd-domU.cpio.gz
 cd ..
 
 mkdir -p rootfs
 cd rootfs
-tar xvzf ../initrd.tar.gz
 mkdir proc
 mkdir run
 mkdir srv
 mkdir sys
-rm var/run
 cp -ar ../dist/install/* .
-mv ../initrd.cpio.gz ./root
+mkdir -p etc/local.d root
+mv ../initrd-domU.cpio.gz ./root/initrd.cpio.gz
 cp ../Image ./root
 echo "name=\"test\"
 memory=512
@@ -56,8 +55,8 @@ xl -vvv create -c /root/test.cfg
 
 " > etc/local.d/xen.start
 chmod +x etc/local.d/xen.start
-echo "rc_verbose=yes" >> etc/rc.conf
-find . |cpio -H newc -o|gzip > ../xen-rootfs.cpio.gz
+cp ../initrd.cpio.gz ../xen-rootfs.cpio.gz
+find . |cpio -H newc -o|gzip >> ../xen-rootfs.cpio.gz
 cd ../..
 
 # XXX QEMU looks for "efi-virtio.rom" even if it is unneeded
diff --git a/automation/scripts/qemu-smoke-dom0less-arm64.sh b/automation/scripts/qemu-smoke-dom0less-arm64.sh
index f72d20936181..70085e26c139 100755
--- a/automation/scripts/qemu-smoke-dom0less-arm64.sh
+++ b/automation/scripts/qemu-smoke-dom0less-arm64.sh
@@ -117,13 +117,12 @@ cd ..
 # DOM0 rootfs
 mkdir -p rootfs
 cd rootfs
-tar xzf ../binaries/initrd.tar.gz
 mkdir proc
 mkdir run
 mkdir srv
 mkdir sys
-rm var/run
 cp -ar ../binaries/dist/install/* .
+mkdir -p etc/local.d
 
 echo "#!/bin/bash
 
@@ -142,8 +141,8 @@ xl network-attach 1 type=vif
 ${dom0_check}
 " > etc/local.d/xen.start
 chmod +x etc/local.d/xen.start
-echo "rc_verbose=yes" >> etc/rc.conf
-find . | cpio -H newc -o | gzip > ../binaries/dom0-rootfs.cpio.gz
+cp ../binaries/initrd.cpio.gz ../binaries/dom0-rootfs.cpio.gz
+find . | cpio -H newc -o | gzip >> ../binaries/dom0-rootfs.cpio.gz
 cd ..
 
 # ImageBuilder
diff --git a/automation/scripts/qubes-x86-64.sh b/automation/scripts/qubes-x86-64.sh
index 861e302d845b..399d72e0600d 100755
--- a/automation/scripts/qubes-x86-64.sh
+++ b/automation/scripts/qubes-x86-64.sh
@@ -167,13 +167,10 @@ if [ -n "$domU_check" ]; then
     # DomU
     mkdir -p rootfs
     cd rootfs
-    # fakeroot is needed to preserve device nodes in rootless podman container
-    fakeroot -s ../fakeroot-save tar xzf ../binaries/initrd.tar.gz
     mkdir proc
     mkdir run
-    mkdir srv
     mkdir sys
-    rm var/run
+    mkdir -p etc/local.d
     echo "#!/bin/sh
 
 echo 8 > /proc/sys/kernel/printk
@@ -181,23 +178,23 @@ echo 8 > /proc/sys/kernel/printk
 ${domU_check}
 " > etc/local.d/xen.start
     chmod +x etc/local.d/xen.start
-    echo "rc_verbose=yes" >> etc/rc.conf
-    sed -i -e 's/^Welcome/domU \0/' etc/issue
-    find . | fakeroot -i ../fakeroot-save cpio -H newc -o | gzip > ../binaries/domU-rootfs.cpio.gz
+    echo "domU Welcome to Alpine Linux 3.18
+Kernel \r on an \m (\l)
+
+" > etc/issue
+    find . | cpio -H newc -o | gzip > ../binaries/domU-rootfs-overlay.cpio.gz
     cd ..
     rm -rf rootfs
 fi
 
-# DOM0 rootfs
+# DOM0 rootfs - this will be an overlay over alpine's initrd
 mkdir -p rootfs
 cd rootfs
-fakeroot -s ../fakeroot-save tar xzf ../binaries/initrd.tar.gz
 mkdir boot
 mkdir proc
 mkdir run
-mkdir srv
 mkdir sys
-rm var/run
+mkdir -p etc/local.d
 cp -ar ../binaries/dist/install/* .
 cp -ar ../binaries/tests .
 cp -a ../automation/scripts/run-tools-tests tests/
@@ -221,6 +218,8 @@ fi
 
 if [ -n "$domU_check" ]; then
     echo "
+# append test-specific files to domU initrd
+cat /boot/initrd-domU-overlay >> boot/initrd-domU
 # get domU console content into test log
 tail -F /var/log/xen/console/guest-domU.log 2>/dev/null | sed -e \"s/^/(domU) /\" &
 tail -F /var/log/xen/qemu-dm-domU.log 2>/dev/null | sed -e \"s/^/(qemu-dm) /\" &
@@ -234,18 +233,18 @@ fi
 chmod +x etc/local.d/xen.start
 echo "$domU_config" > etc/xen/domU.cfg
 
-echo "rc_verbose=yes" >> etc/rc.conf
 echo "XENCONSOLED_TRACE=all" >> etc/default/xencommons
 echo "QEMU_XEN=/bin/false" >> etc/default/xencommons
 mkdir -p var/log/xen/console
 cp ../binaries/bzImage boot/vmlinuz
 if [ -n "$domU_check" ]; then
-    cp ../binaries/domU-rootfs.cpio.gz boot/initrd-domU
+    cp ../binaries/domU-rootfs-overlay.cpio.gz boot/initrd-domU-overlay
 fi
-find . | fakeroot -i ../fakeroot-save cpio -H newc -o | gzip > ../binaries/dom0-rootfs.cpio.gz
+# take base initrd and append test-specific files
+cp ../binaries/initrd.cpio.gz ../binaries/dom0-rootfs.cpio.gz
+find . | cpio -H newc -o | gzip >> ../binaries/dom0-rootfs.cpio.gz
 cd ..
 
-
 TFTP=/scratch/gitlab-runner/tftp
 CONTROLLER=control@thor.testnet
 
diff --git a/automation/scripts/xilinx-smoke-dom0-x86_64.sh b/automation/scripts/xilinx-smoke-dom0-x86_64.sh
index 7834ffbe0593..6b9f0e4a8dc7 100755
--- a/automation/scripts/xilinx-smoke-dom0-x86_64.sh
+++ b/automation/scripts/xilinx-smoke-dom0-x86_64.sh
@@ -80,6 +80,7 @@ argo-exec -l -p 28333 -- /bin/echo
 "
 copy_dom0_files ()
 {
+    mkdir -p root usr/local/lib
     cp "${WORKDIR}/binaries/xen-argo.ko" "root/"
     cp -ar "${WORKDIR}/binaries/lib/"* "usr/local/lib/"
     cp "${WORKDIR}/binaries/argo-exec" "usr/local/bin/"
@@ -92,9 +93,8 @@ fi
 # Set up domU rootfs.
 mkdir -p rootfs
 cd rootfs
-tar xzf ../binaries/initrd.tar.gz
 mkdir proc run srv sys
-rm var/run
+mkdir -p etc/local.d
 echo "#!/bin/sh
 set -x
 export LD_LIBRARY_PATH=/usr/local/lib
@@ -102,36 +102,39 @@ PATH=/usr/local/bin:/usr/local/sbin:\$PATH
 ${DOMU_CMD}
 " > etc/local.d/xen.start
 chmod +x etc/local.d/xen.start
-echo "rc_verbose=yes" >> etc/rc.conf
-sed -i -e 's/^Welcome/domU \0/' etc/issue
+echo "domU Welcome to Alpine Linux 3.18
+Kernel \r on an \m (\l)
+
+" > etc/issue
 copy_domU_files
-find . | cpio -H newc -o | gzip > ../binaries/domU-rootfs.cpio.gz
+find . | cpio -H newc -o | gzip > ../binaries/domU-rootfs-overlay.cpio.gz
 cd ..
 rm -rf rootfs
 
 # Set up dom0 rootfs.
 mkdir -p rootfs
 cd rootfs
-tar xzf ../binaries/initrd.tar.gz
 mkdir boot proc run srv sys
-rm var/run
 cp -ar ../binaries/dist/install/* .
+mkdir -p etc/local.d
 echo "#!/bin/bash
 set -x
 export LD_LIBRARY_PATH=/usr/local/lib
 bash /etc/init.d/xencommons start
+# append test-specific files to domU initrd
+cat /boot/initrd-domU-overlay >> boot/initrd-domU
 ${DOM0_CMD}
 " > etc/local.d/xen.start
 chmod +x etc/local.d/xen.start
 echo "${DOMU_CFG}${DOMU_CFG_EXTRA}" > etc/xen/domU.cfg
-echo "rc_verbose=yes" >> etc/rc.conf
 echo "XENCONSOLED_TRACE=all" >> etc/default/xencommons
 echo "QEMU_XEN=/bin/false" >> etc/default/xencommons
 mkdir -p var/log/xen/console
 cp ../binaries/bzImage boot/vmlinuz
-cp ../binaries/domU-rootfs.cpio.gz boot/initrd-domU
+cp ../binaries/domU-rootfs-overlay.cpio.gz boot/initrd-domU-overlay
 copy_dom0_files
-find . | cpio -H newc -o | gzip > ../binaries/dom0-rootfs.cpio.gz
+cp ../binaries/initrd.cpio.gz ../binaries/dom0-rootfs.cpio.gz
+find . | cpio -H newc -o | gzip >> ../binaries/dom0-rootfs.cpio.gz
 cd ..
 
 # Load software into TFTP server directory.
diff --git a/automation/scripts/xilinx-smoke-dom0less-arm64.sh b/automation/scripts/xilinx-smoke-dom0less-arm64.sh
index b24ad11b8cac..81be60e2026e 100755
--- a/automation/scripts/xilinx-smoke-dom0less-arm64.sh
+++ b/automation/scripts/xilinx-smoke-dom0less-arm64.sh
@@ -41,33 +41,31 @@ fi
 # DomU
 mkdir -p rootfs
 cd rootfs
-tar xzf ../binaries/initrd.tar.gz
 mkdir proc
 mkdir run
 mkdir srv
 mkdir sys
-rm var/run
+mkdir -p etc/local.d
 echo "#!/bin/sh
 
 ${domU_check}
 /bin/sh" > etc/local.d/xen.start
 chmod +x etc/local.d/xen.start
-echo "rc_verbose=yes" >> etc/rc.conf
-find . | cpio -H newc -o | gzip > ../binaries/domU-rootfs.cpio.gz
+cp ../binaries/initrd.cpio.gz ../binaries/domU-rootfs.cpio.gz
+find . | cpio -H newc -o | gzip >> ../binaries/domU-rootfs.cpio.gz
 cd ..
 rm -rf rootfs
 
 # DOM0 rootfs
 mkdir -p rootfs
 cd rootfs
-tar xzf ../binaries/initrd.tar.gz
 mkdir proc
 mkdir run
 mkdir srv
 mkdir sys
-rm var/run
 cp -ar ../binaries/dist/install/* .
 
+mkdir -p etc/local.d
 echo "#!/bin/bash
 
 export LD_LIBRARY_PATH=/usr/local/lib
@@ -78,8 +76,8 @@ bash /etc/init.d/xencommons start
 ${dom0_check}
 " > etc/local.d/xen.start
 chmod +x etc/local.d/xen.start
-echo "rc_verbose=yes" >> etc/rc.conf
-find . | cpio -H newc -o | gzip > ../binaries/dom0-rootfs.cpio.gz
+cp ../binaries/initrd.cpio.gz ../binaries/dom0-rootfs.cpio.gz
+find . | cpio -H newc -o | gzip >> ../binaries/dom0-rootfs.cpio.gz
 cd ..
 
 
diff --git a/automation/tests-artifacts/alpine/3.18-arm64v8.dockerfile b/automation/tests-artifacts/alpine/3.18-arm64v8.dockerfile
index a4542f703997..78d465dc6a39 100644
--- a/automation/tests-artifacts/alpine/3.18-arm64v8.dockerfile
+++ b/automation/tests-artifacts/alpine/3.18-arm64v8.dockerfile
@@ -60,7 +60,10 @@ RUN \
   echo "ttyS0::respawn:/sbin/getty -L ttyS0 115200 vt100" >> /etc/inittab && \
   echo "hvc0::respawn:/sbin/getty -L hvc0 115200 vt100" >> /etc/inittab && \
   passwd -d "root" root && \
+  echo "rc_verbose=yes" >> /etc/rc.conf && \
   \
   # Create rootfs
   cd / && \
-  tar cvzf /initrd.tar.gz bin dev etc home init lib mnt opt root sbin usr var
+  tar cvzf /initrd.tar.gz bin dev etc home init lib mnt opt root sbin usr var && \
+  find bin dev etc home init lib mnt opt root sbin usr var |\
+    cpio -o -H newc | gzip > /initrd.cpio.gz
diff --git a/automation/tests-artifacts/alpine/3.18.dockerfile b/automation/tests-artifacts/alpine/3.18.dockerfile
index 311a92889b87..ff124fef49a8 100644
--- a/automation/tests-artifacts/alpine/3.18.dockerfile
+++ b/automation/tests-artifacts/alpine/3.18.dockerfile
@@ -61,6 +61,7 @@ RUN \
   echo "hvc0::respawn:/sbin/getty -L hvc0 115200 vt100" >> /etc/inittab && \
   echo > /etc/modules && \
   passwd -d "root" root && \
+  echo "rc_verbose=yes" >> /etc/rc.conf && \
   \
   # Create rootfs
   cd / && \
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Mon Apr 07 12:41:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 12:41:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.939957.1339916 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1lmr-0005q6-1B; Mon, 07 Apr 2025 12:41:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 939957.1339916; Mon, 07 Apr 2025 12:41: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 1u1lmq-0005py-Un; Mon, 07 Apr 2025 12:41:12 +0000
Received: by outflank-mailman (input) for mailman id 939957;
 Mon, 07 Apr 2025 12:41: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=uyK1=WZ=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1u1lgp-0006Bg-OG
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 12:34:59 +0000
Received: from fout-a8-smtp.messagingengine.com
 (fout-a8-smtp.messagingengine.com [103.168.172.151])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b4947446-13ac-11f0-9eaa-5ba50f476ded;
 Mon, 07 Apr 2025 14:34:54 +0200 (CEST)
Received: from phl-compute-11.internal (phl-compute-11.phl.internal
 [10.202.2.51])
 by mailfout.phl.internal (Postfix) with ESMTP id 2DE761380319;
 Mon,  7 Apr 2025 08:34:53 -0400 (EDT)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-11.internal (MEProxy); Mon, 07 Apr 2025 08:34:53 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon,
 7 Apr 2025 08:34:51 -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: b4947446-13ac-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:subject
	:subject:to:to; s=fm2; t=1744029293; x=1744115693; bh=va+AU7XSH2
	JkS6D22fCg+3+hIvHKU1o8Xr6qRtSJn7c=; b=R09hXLgAxPzDGlVzqYC/BPPTPv
	Wl4LfZ6146rX4XbczO1P7cKNJYbhOCCzGcGpUCu22SdxHHDoJyRz6VTLss8RjgDV
	uXFG2YSIQExJpkWbH/FDIRDrbXqGV6PON5xAaNFNSCv7/35fHrKysE5IZTrNkfmo
	7/mgK9AQxEVKJ9OMUe3EBcAEfnr3mjKBP84Bs7Mdb5Cw2THqBjyn02CSc48JAqYH
	imMz7z5fLODwI0Pi3SJFBUX35xYVnQZOIuR8RowM29CVXja5+HrSZJy//Kj3cTQi
	egS0oVRPiT2NYxQYb8eisjgPVzbhyFFAHF27e8fUzRg5u0iHuSB0fEYOAiKg==
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=fm2; t=1744029293; x=
	1744115693; bh=va+AU7XSH2JkS6D22fCg+3+hIvHKU1o8Xr6qRtSJn7c=; b=Z
	3z/i1anbVVS9SbprXuMHD4y/D5Y34SbaYFVB+YU9cHKy2wJohEEtRQ324UgZuJal
	lZP+lqG2AFVLpxyGfBkDcy8wbTV/IBNQJ9DPG6sKFwIiem/AzwMbv7zKZFefwZ5/
	a30JaPEGlS7n3OzKYkbPAh3hn0QKTEi7DzE0OK0K2xRffnHfIIq/2Go9ofj1xeqF
	uBovQoXplWubAPUFd7kKZ3x/xK0ownJ2912AuRxWujUqE1+nHbnCIl4cJEOJmmUn
	k+8kxE1P19Dg7prXEW6cDw6yKlJ9hYsScaTyr1GeAgiKbhKHX8/6kwdE0eO0ch46
	KYen0vbJ5k6x09kIfZ5Qg==
X-ME-Sender: <xms:bMbzZ0VEUMzATHViLa4crr8KdXVUHxqicCfACuChe52TWPucQc3-zw>
    <xme:bMbzZ4krFSlF6Z6ZX5BdVF9i6Y4D41RFceI2t2Vz4P3rBezoS1Uz-FlkcV7gbb9Ai
    fJoImXGX8uzVA>
X-ME-Received: <xmr:bMbzZ4b3zGpoKMmCstlEVPFZB-3r7VTDkdYId_U9bPC42GHMpQeTQ_xJc146OxdfB8Pywc4KxDprnWvjB-kiOwaZ8hoIT85rm1n5TELp5prUQE2aMoY>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvtddtvddtucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
    pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
    gvnhhtshculddquddttddmnecujfgurhephffvvefufffkofgjfhggtgfgsehtkeertder
    tdejnecuhfhrohhmpeforghrvghkucforghrtgiihihkohifshhkihdqifpkrhgvtghkih
    cuoehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhmqeen
    ucggtffrrghtthgvrhhnpefgueduhefgvdefheehudejheefudevueeghfekhfehleegve
    duteeuiedugffgffenucevlhhushhtvghrufhiiigvpedunecurfgrrhgrmhepmhgrihhl
    fhhrohhmpehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtoh
    hmpdhnsggprhgtphhtthhopeelpdhmohguvgepshhmthhpohhuthdprhgtphhtthhopeig
    vghnqdguvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdprhgtphhtth
    hopehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhr
    tghpthhtohepshhsthgrsggvlhhlihhniheskhgvrhhnvghlrdhorhhgpdhrtghpthhtoh
    eprghnughrvgifrdgtohhophgvrhefsegtihhtrhhigidrtghomhdprhgtphhtthhopegr
    nhhthhhonhihrdhpvghrrghrugesvhgrthgvshdrthgvtghhpdhrtghpthhtohepmhhitg
    hhrghlrdhorhiivghlsegrmhgurdgtohhmpdhrtghpthhtohepjhgsvghulhhitghhsehs
    uhhsvgdrtghomhdprhgtphhtthhopehjuhhlihgvnhesgigvnhdrohhrghdprhgtphhtth
    hopehrohhgvghrrdhprghusegtihhtrhhigidrtghomh
X-ME-Proxy: <xmx:bMbzZzU0E0hMQupzEDl12pHusv8IPwLpaqzUQYnWgl5y3NYGBJQ86A>
    <xmx:bMbzZ-mcNERAc7ILsfFqjnmW0aiCs_edQtTLTSmrloz2fy_QpIMJAg>
    <xmx:bMbzZ4fBEoXaXCSKbvz8XFcP9Y1RY3ZdjNCrc185DATvNjXm9CBlWw>
    <xmx:bMbzZwFC7W9ef89Dp91pteb_YIwmt79933DuuEvI7AM9rhTV9J7XKw>
    <xmx:bcbzZyxUrVaIipPYeoByBX8ih31QgBLy6w180fBE99Y6yX_JcFWCsjTc>
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>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH test-artifacts v2 14/12] scripts: build initrd cpio
Date: Mon,  7 Apr 2025 14:31:14 +0200
Message-ID: <20250407123448.1520451-2-marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <cover.7da1777882774486a13e6f39ff4a2096f6b7901e.1744028549.git-series.marmarek@invisiblethingslab.com>
References: <cover.7da1777882774486a13e6f39ff4a2096f6b7901e.1744028549.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Build initrd format directly digestable by the kernel. Additionally,
include it itself inside as boot/initrd-domU file, for domU booting in
tests.
This should avoid the need to repack tar -> cpio as part of the test
job.

Keep generating initrd.tar.gz as that's still used by older branches.

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
---
 scripts/x86_64-rootfs-alpine.sh | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/scripts/x86_64-rootfs-alpine.sh b/scripts/x86_64-rootfs-alpine.sh
index b70b3a5..13e85fa 100755
--- a/scripts/x86_64-rootfs-alpine.sh
+++ b/scripts/x86_64-rootfs-alpine.sh
@@ -58,3 +58,8 @@ passwd -d "root" root
 cd /
 tar cvzf "${WORKDIR}/binaries/initrd.tar.gz" \
     bin dev etc home init lib mnt opt root sbin usr var
+mkdir boot
+find bin dev etc home init lib mnt opt root sbin usr var |\
+    cpio -o -H newc | gzip > boot/initrd-domU
+find bin boot dev etc home init lib mnt opt root sbin usr var |\
+    cpio -o -H newc | gzip > "${WORKDIR}/binaries/initrd.cpio.gz" \
-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Mon Apr 07 12:41:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 12:41:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.939988.1339926 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1ln2-0006U7-9K; Mon, 07 Apr 2025 12:41:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 939988.1339926; Mon, 07 Apr 2025 12: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 1u1ln2-0006U0-6K; Mon, 07 Apr 2025 12:41:24 +0000
Received: by outflank-mailman (input) for mailman id 939988;
 Mon, 07 Apr 2025 12:41: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=uyK1=WZ=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1u1lgk-0006Bg-Mt
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 12:34:54 +0000
Received: from fout-a8-smtp.messagingengine.com
 (fout-a8-smtp.messagingengine.com [103.168.172.151])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b34af22e-13ac-11f0-9eaa-5ba50f476ded;
 Mon, 07 Apr 2025 14:34:51 +0200 (CEST)
Received: from phl-compute-05.internal (phl-compute-05.phl.internal
 [10.202.2.45])
 by mailfout.phl.internal (Postfix) with ESMTP id 068031380191;
 Mon,  7 Apr 2025 08:34:51 -0400 (EDT)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-05.internal (MEProxy); Mon, 07 Apr 2025 08:34:51 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon,
 7 Apr 2025 08:34:48 -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: b34af22e-13ac-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:subject
	:subject:to:to; s=fm2; t=1744029291; x=1744115691; bh=jMZW7cjlhb
	wKeY8FRDYgXIB8LyVP8OV7s9HHJqBF9Wg=; b=dL6SG/2YcZgs20yDd3hxbLWgQE
	Y4aXUSJi81P6jTXRint3WorBkzfT4p+D8sVz82EHnt+ueFGoHVj7tKFJGZWQSn84
	76K/Udk9yEgsDpIrOecxWk5EzlwnbSzf3M0HaH1TcYkcpjwWqTScjMl7si71Ofy6
	Pd45IwFfEYZKTTmw98ruUD3SeM7cFkqBxHzXyztD88h9zyLNNzHEzxqNxHQS3rYV
	iydriVIJ5yUzV9gJwqnDKrdvE/uJs+oY7dLu4pgNe4d45b7hml5pnoRXr0b9ZhDE
	krxuc23rgTlzhfhH1lWnp2CJRIfWteKJ478/36by7eQ/DP2GAfyLJltRTgKQ==
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=fm2; t=1744029291; x=
	1744115691; bh=jMZW7cjlhbwKeY8FRDYgXIB8LyVP8OV7s9HHJqBF9Wg=; b=E
	+tLdzZY9IyC8LYABSwPwc1XCsHNVi/Jn4ASt0wR5miNyC3PyXPL1ijnXfLhVQMTi
	sz2yDDZGyGEkhcpTvE9UWTiXTBMHmgwkmQVhDGzvr+PNPcz8hSDwO19zhNNWlKKl
	wwlovYkpN9OwbrgkuRE8LAreeliB03p0HoJ0r0gdz6JD79x4QE4QhBTrnlw+wdVs
	mLUMPwc6eOjVh+7hEPLCeHojMOsfONRdW7oC2YWS6I2Pbuy0ZTt5ptnuVRmiQe2l
	xboRJdbMKOegqG7891ke+et+ZgPi9UjgB4XavjdE9q7NrnIRmXq6hgMnboRzQsrw
	9O+WcLKV4Ourz8DFrWekw==
X-ME-Sender: <xms:asbzZ3Gr5z87wFwRaq_GsiD6rIg7geBVIH4FOQQG6scozGo3a46Y0Q>
    <xme:asbzZ0WhzavLKanw_Y4ZxWZWnQfmLAkCo2t5tIu7q0CB1d5tK7PDunxpEIYqso5fJ
    uF147Tv5lOeIQ>
X-ME-Received: <xmr:asbzZ5IAbl5pJwFTXOnOEkeUtoQJjji5JkD7_X1RnVPwZ94mFd21WFNuxPOSy0K6q7uNi5NZqDJF-2RxCABCWIZoS5ruCEf6M4Qe-N8sL91R28RAcoM>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvtddtvdduucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
    pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
    gvnhhtshculddquddttddmnecujfgurhephffvvefufffkofgjfhggtgfgsehtkeertder
    tdejnecuhfhrohhmpeforghrvghkucforghrtgiihihkohifshhkihdqifpkrhgvtghkih
    cuoehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhmqeen
    ucggtffrrghtthgvrhhnpefgueduhefgvdefheehudejheefudevueeghfekhfehleegve
    duteeuiedugffgffenucevlhhushhtvghrufhiiigvpedunecurfgrrhgrmhepmhgrihhl
    fhhrohhmpehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtoh
    hmpdhnsggprhgtphhtthhopeelpdhmohguvgepshhmthhpohhuthdprhgtphhtthhopeig
    vghnqdguvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdprhgtphhtth
    hopehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhr
    tghpthhtohepshhsthgrsggvlhhlihhniheskhgvrhhnvghlrdhorhhgpdhrtghpthhtoh
    eprghnughrvgifrdgtohhophgvrhefsegtihhtrhhigidrtghomhdprhgtphhtthhopegr
    nhhthhhonhihrdhpvghrrghrugesvhgrthgvshdrthgvtghhpdhrtghpthhtohepmhhitg
    hhrghlrdhorhiivghlsegrmhgurdgtohhmpdhrtghpthhtohepjhgsvghulhhitghhsehs
    uhhsvgdrtghomhdprhgtphhtthhopehjuhhlihgvnhesgigvnhdrohhrghdprhgtphhtth
    hopehrohhgvghrrdhprghusegtihhtrhhigidrtghomh
X-ME-Proxy: <xmx:asbzZ1HW1HCQLF_99ChT3tVQryx-tegyvgePHuR2tNxGKf_dUEevuw>
    <xmx:asbzZ9XKG1AJdT8sOyM7MKky-jpUy6gm9eV_BAXd0Vmz9y_n1G3TCA>
    <xmx:asbzZwNXU0fV4Z5YEj76Kc9LNjf6V94H71obs3ZgrexnFgD2lC9gRA>
    <xmx:asbzZ81PCoLXm2D5WNaFf7u7Hd5ABcnBuxxF9Gwr8bWSwRPspHjWRg>
    <xmx:a8bzZ-iPe607niAeds0FbxlCYb6FXafHgD-HAreAexpLthFAYeH7ylCb>
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>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH test-artifacts v2 13/12] scripts: add rc_verbose=yes to /etc/rc.conf
Date: Mon,  7 Apr 2025 14:31:13 +0200
Message-ID: <20250407123448.1520451-1-marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <cover.7da1777882774486a13e6f39ff4a2096f6b7901e.1744028549.git-series.marmarek@invisiblethingslab.com>
References: <cover.7da1777882774486a13e6f39ff4a2096f6b7901e.1744028549.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This is done in every single test job, so do it at the initrd build
time.

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
---
 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 f8b04c5..b70b3a5 100755
--- a/scripts/x86_64-rootfs-alpine.sh
+++ b/scripts/x86_64-rootfs-alpine.sh
@@ -50,6 +50,7 @@ echo "ttyS0" >> /etc/securetty
 echo "hvc0" >> /etc/securetty
 echo "ttyS0::respawn:/sbin/getty -L ttyS0 115200 vt100" >> /etc/inittab
 echo "hvc0::respawn:/sbin/getty -L hvc0 115200 vt100" >> /etc/inittab
+echo "rc_verbose=yes" >> /etc/rc.conf
 echo > /etc/modules
 passwd -d "root" root
 
-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Mon Apr 07 12:45:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 12:45:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.940053.1339936 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1lqp-0008AB-PR; Mon, 07 Apr 2025 12:45:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 940053.1339936; Mon, 07 Apr 2025 12: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 1u1lqp-0008A4-Mm; Mon, 07 Apr 2025 12:45:19 +0000
Received: by outflank-mailman (input) for mailman id 940053;
 Mon, 07 Apr 2025 12:45: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=D+me=WZ=bounce.vates.tech=bounce-md_30504962.67f3c8da.v1-bb4178fe5553441b82bd7ecf1dfbf6a3@srs-se1.protection.inumbo.net>)
 id 1u1lqo-00089y-Gn
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 12:45:18 +0000
Received: from mail186-2.suw21.mandrillapp.com
 (mail186-2.suw21.mandrillapp.com [198.2.186.2])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 276e9eec-13ae-11f0-9ffb-bf95429c2676;
 Mon, 07 Apr 2025 14:45:16 +0200 (CEST)
Received: from pmta10.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail186-2.suw21.mandrillapp.com (Mailchimp) with ESMTP id 4ZWTSq03z1zS62H97
 for <xen-devel@lists.xenproject.org>; Mon,  7 Apr 2025 12:45:15 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 bb4178fe5553441b82bd7ecf1dfbf6a3; Mon, 07 Apr 2025 12:45: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: 276e9eec-13ae-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1744029915; x=1744299915;
	bh=xl0p93gFDyv4jF0UdvNAEBv/3oOUUM+v4jusW7PLYlU=;
	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=jGOQCRTzc0EjOTZW00Lp/P2LURf9I9ra5HBQlNuFew/Rzs/y1iwjVgUMuvhk+nydq
	 PHCDM+lFs+YOcT7sm91myHWfHHLF7Oiu3pEpSYOR7G5nKBuuq4367GOPyZoVXwY/Bk
	 3OOU5TE/cCnbrLe/3349fqxj4W5tvxa8rxjwHe2bhKYTF80xV4qXPmUiY1o8YnjtN4
	 qIqzVqtwlDNZGM/BgQ1t+ge1K/0FULzlKYk9rJkiNGdTUvncZXb3HZLY6Ag5XneiLi
	 QaJxI6mjBLNfgXIsoaN9cY1DVkTk//y51JNBLF7rV9x439mtYpFpxnDmqDoYlHu4OJ
	 2P9yAKO+RI+3g==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1744029915; x=1744290415; i=anthony.perard@vates.tech;
	bh=xl0p93gFDyv4jF0UdvNAEBv/3oOUUM+v4jusW7PLYlU=;
	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=m5MO8W/mFHZ8Mn2iYSpNZtcXXgw6BRkgKxBhVfwHETGsq+aafyAizf0QTsCTM6mn9
	 FN7bqwUStbu4P6D3cqRO6Q/VTdSeh4foQmTuJ07KnJFepuD9jlFSdQF3VNruqU5ChF
	 gumlUn9aupSYcmCN1qQa+fp/ryfkWSJIyIWyBnkh2RzSqTM3dVKip4qfGVQV/ophgs
	 ct8lN7mRnuoW9Ry3bpwu5uV+r1QkKirTBkKbJ8DjyigjVEgkzahjpVJNMPabTtQrqF
	 NBJlISz2h8m7og0IhmaoX2wYAl7jic+IW/fNZm+7PQ1p6BtkgjXVJSl5k+O78a5mF9
	 hKpi1qjs/UlmQ==
From: "Anthony PERARD" <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20Ping:=20[PATCH]=20libxc/PM:=20correct=20(not=20just)=20error=20handling=20in=20xc=5Fget=5Fcpufreq=5Fpara()?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1744029913861
To: "Jan Beulich" <jbeulich@suse.com>
Cc: "Juergen Gross" <jgross@suse.com>, xen-devel@lists.xenproject.org
Message-Id: <Z_PI2UNn2C4GKqYw@l14>
References: <df676738-19e7-47e6-977f-25d6d13ccc50@suse.com> <e0028d85-668a-464b-aac5-ac8a79ea9bf5@suse.com>
In-Reply-To: <e0028d85-668a-464b-aac5-ac8a79ea9bf5@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.bb4178fe5553441b82bd7ecf1dfbf6a3?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250407:md
Date: Mon, 07 Apr 2025 12:45:14 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Mon, Apr 07, 2025 at 01:38:24PM +0200, Jan Beulich wrote:
> On 27.03.2025 14:32, Jan Beulich wrote:
> > From their introduction all xc_hypercall_bounce_pre() uses, when they
> > failed, would properly cause exit from the function including cleanup,
> > yet without informing the caller of the failure. Purge the unlock_1
> > label for being both pointless and mis-named.
> > 
> > An earlier attempt to switch to the usual split between return value and
> > errno wasn't quite complete.
> > 
> > HWP work made the cleanup of the "available governors" array
> > conditional, neglecting the fact that the condition used may not be the
> > condition that was used to allocate the buffer (as the structure field
> > is updated upon getting back EAGAIN). Throughout the function, use the
> > local variable being introduced to address that.
> > 
> > Fixes: 4513025a8790 ("libxc: convert sysctl interfaces over to hypercall buffers")
> > Amends: 73367cf3b4b4 ("libxc: Fix xc_pm API calls to return negative error and stash error in errno")
> > Fixes: 31e264c672bc ("pmstat&xenpm: Re-arrage for cpufreq union")
> > Signed-off-by: Jan Beulich <jbeulich@suse.com>
> 
> May I ask for an ack or comments towards what needs changing?

Calling xc_get_cpufreq_para with:

    user_para = {
        .cpu_num = 0,
        .freq_num = 0,
        .gov_num = 9,
    };

seems broken. It's looks like the `scaling_available_governors` bounce
buffer is going to be used without been allocated properly handled, with
this patch.

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 Apr 07 13:19:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 13:19:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.940095.1339974 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1mNe-0000lU-KU; Mon, 07 Apr 2025 13:19:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 940095.1339974; Mon, 07 Apr 2025 13:19:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1mNe-0000lN-Ha; Mon, 07 Apr 2025 13:19:14 +0000
Received: by outflank-mailman (input) for mailman id 940095;
 Mon, 07 Apr 2025 13:19: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=xyMQ=WZ=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1u1mNc-0000lH-Rz
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 13:19:13 +0000
Received: from NAM02-BN1-obe.outbound.protection.outlook.com
 (mail-bn1nam02on20602.outbound.protection.outlook.com
 [2a01:111:f403:2407::602])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id de415ac0-13b2-11f0-9ffb-bf95429c2676;
 Mon, 07 Apr 2025 15:19:01 +0200 (CEST)
Received: from PH8PR12MB7326.namprd12.prod.outlook.com (2603:10b6:510:216::7)
 by DS7PR12MB5765.namprd12.prod.outlook.com (2603:10b6:8:74::19) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.34; Mon, 7 Apr
 2025 13:18:57 +0000
Received: from PH8PR12MB7326.namprd12.prod.outlook.com
 ([fe80::6d76:9c33:d230:8264]) by PH8PR12MB7326.namprd12.prod.outlook.com
 ([fe80::6d76:9c33:d230:8264%5]) with mapi id 15.20.8534.045; Mon, 7 Apr 2025
 13:18:56 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: de415ac0-13b2-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=hoyZ1shOJyGXgDXqz0qh5L+BO5ABrbYmuKw4538558mcTnCAoYkS+R1XPGbr5uKna1ymcQvQJaNTSF/5xe0rPkjsrRssj140dlr2czlrfWHf7nbTGvPG9biMqtW1Pz+97KReaBLhPJazibMIPMrGCtkCKHwEoI/r0cCiQMd+m8psT04Jqo3FEgQIO5fWIaJIRd5QPDy/HrUo5RrJqoI+1UkYDaaEUdMeSgo4u06jZGGpb2N5DUVVvH05H1zmwRh0eGregUvVqeVbILDnVp77VcIRR1PB9q690vu9Y1UI6xenQQ8N+1+D6UcAFSlDnBp398+uiBP32pPCUAyC1y7HlA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=YZ6/LOFjefTGrm3j8n8RlL29yYD154ZWaaSVmydopgo=;
 b=WdqPDKEcN0QmC0ZkdRmCDNBj4wGlQFXv+EkRBf3UYwM22Q0d17gT13BN+Lx8E24w4rOIbV/t0IfnHyQ22U20Wkxgr03D4O8i7ptMYRv2KdF++kVDMfncy/7YOwseVqfEm45kYIuhRQG50W1f3vEUgkBeqZnU+0fP8AKhPRY50eYwrStBNEidpxm0VNPa+8iZ9Uhu06yZzuzPOvfHolaT+afKMOxXqT7ElqfrdHGThAKtEt4BhSFhRRMo9/3eyfE6RNxhrssOYVoQZYzPatNroJOSQqWP19BsLPmlyxVuDy5DjhYy4FEe6H5zESX1ieGy4gU7kDwUqAjrqb6hhOwk1w==
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=YZ6/LOFjefTGrm3j8n8RlL29yYD154ZWaaSVmydopgo=;
 b=at0v/qCNDseZkem+0fH8j+pTRzWlvYXIa4Dh0SYPO5YOHAf9OhusgQszH1YCl+amIrZ/wjGcIx+Z9lB5d+CzvRc7LYdzOs0q9v0BfFyw9F2s9wv5/UYDCkX8cVIDglcNbttZbmexLiEjEqI1typzMS5QilTVK+ZD8RJjE8SS2Wc=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <0ed34b41-0cf8-4bab-9304-d6c3f2ec276d@amd.com>
Date: Mon, 7 Apr 2025 14:18:52 +0100
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 1/3] xen/arm: Move some of the functions to common file
Content-Language: en-GB
To: "Orzel, Michal" <michal.orzel@amd.com>,
 Ayan Kumar Halder <ayan.kumar.halder@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>
References: <20250403171241.975377-1-ayan.kumar.halder@amd.com>
 <20250403171241.975377-2-ayan.kumar.halder@amd.com>
 <45d47205-409c-492a-9841-3b162c05ec09@amd.com>
From: Ayan Kumar Halder <ayankuma@amd.com>
In-Reply-To: <45d47205-409c-492a-9841-3b162c05ec09@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO4P265CA0036.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:2ae::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_|DS7PR12MB5765:EE_
X-MS-Office365-Filtering-Correlation-Id: 5e77c85d-a13f-40f7-f9fd-08dd75d6c028
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?MHJhdEFBUmRDWnNBdWg0dFZ6SXJsaXVMN3JJTU5iaHZad1IzbUgzVHdWWW1y?=
 =?utf-8?B?TkJjak9GK3RyZE1Ja0ZyUGN2U0dVSGhMQnRzemdmaHRWM2RUa0VvUjBrb3Jz?=
 =?utf-8?B?Q05WVmJ2bjVNSEUvWmNKTXhybHNxY0pLSUcrOTZkajhvYjVaZll1WUJGQ0pS?=
 =?utf-8?B?SnZkSkN4aWcwL253YStvQkorUXZxeGdLd0trYW1GYkdEdWNxT2RXWDdsaUdL?=
 =?utf-8?B?Rno5R00wRjYxQVgyelNUUldpZzVSZFJxdUZRUGlBTWZjNnVMK3BacS92V2Nv?=
 =?utf-8?B?ak9yNTRLalI3Skh5emFXZVMvSW5DTUpwTzdjVEV4MjhQR2Z1SU90RWhkcDFz?=
 =?utf-8?B?NU0rMjNpL2M1RXRma0Q5ajdTcEFyVGc5VlhzSjVMb1VsOEc5Ym5MQnVUU1dH?=
 =?utf-8?B?aG1oempkVGt0elF5Mzh0TzZkcXdYV1ZGL1Jwcmt1RWgyNkJjY1hVeVpBaWpV?=
 =?utf-8?B?U1FocytncDZPUGFzSEpmTjdwaHE0bHo3K2ZkaHUxNXlqUzlabXJJK3RlL2FY?=
 =?utf-8?B?WHV0ZUVIdUpqTUdjM0xBcFIyZWFMTXNoaUtoclNFdDd2U3RUQUQxdC8rUmFW?=
 =?utf-8?B?WjVmTytrOVA0czNVU3libi9VVVYza2Znck4vWllaMzF1WEpPTk9oLzhSTFBI?=
 =?utf-8?B?TWttcmlDQ01LcUJicDcvSXNpN3I5MEdKZngza1lncVhwaWJDZDJaVjNyU3Bo?=
 =?utf-8?B?bkRHRThKbmVNM2haKy9QL0tlL1EvUS9iVGVHaDNmU3QxUlF2UFA4ZXdQTURk?=
 =?utf-8?B?N3Q4OUFFOTFPU0hTV0NTN2kxdVJZdkhacGkzZVFqbWtqelBpMEg2R1NuV1Nh?=
 =?utf-8?B?RDFsSTN0eGJIbzkyUjNybnVhSGtOSkRKem0zWEJuRmpSWENvNnR4aitkSEhF?=
 =?utf-8?B?c2FoRDJoN0duUVFQemJXOE5lRTc0N041OTk3VitYTlFNY08wRm55eVdZdndD?=
 =?utf-8?B?c3prc1lqUTY2Zkpnbi9ibnRHL0kydDhIbXpweUFMbDBGWmZNY1g5M0t0VDAz?=
 =?utf-8?B?L3FEYTg0Yi90cGJrckhyckd2RzdVcnpjVjRCK1IvQ2dxY0M2MXlyTlV2OER2?=
 =?utf-8?B?N2R6eU8zYktrUUJIdEFWbkRNUXo4UTNtNFpsbldmOXVEcGNFbFBEYzhMNnQv?=
 =?utf-8?B?YWtkZU1ZWmx3M2FXZkRWRDQvZVhjc2dvZHA0ZGJVNmFodkJaQ2FhSnllc2pa?=
 =?utf-8?B?TitnYU1pajhSZnFpNnFZcnBSbE9JTGVUbmVkQW11OGhkNlVITnNadlVDQWp2?=
 =?utf-8?B?aTJGd3BKN2FPYnRtbEdMMDZoRHNhMTF2VnZYQ3cwdDdsUDJTbmxkS2hOdDNh?=
 =?utf-8?B?TUdiOG1OaDZiOFoxZ3VNYVpxTWtFNEJJcXdhSkMzNmp6RWY2SzRGOHhJN2Fz?=
 =?utf-8?B?eHVZNG5NaDNMY0N2amZHUmN6OC9qUURob3NDUzRKczMranNpSXhESW1saGRF?=
 =?utf-8?B?alZHS3JycWM4Smh1Sm8vNm5yZDE5bUFZNnpYRlJtS045YU5ORXFVWDhwZFdT?=
 =?utf-8?B?SzloY2E5VnJRTDVXdzNlSkcyb09wSTBvdDBFN0FncDlFcjhYTEJzTER6TVpB?=
 =?utf-8?B?SlN2USt4Q052djJ0NllZU2VnVnY0ZnZnZFhDUk1XZXpkZk1SYTExd1ZNbTBS?=
 =?utf-8?B?T0w2eXljVERabWUzWHR2NlZmRTVQcWpIRkVaSWlQaDBlSGhGUjBFL3BMR1lG?=
 =?utf-8?B?U1lhUEhGbG4xdGhIemNWQ1JGSmNMVG9ablhob3FRa2I5SFVteGxBdFNwRnZx?=
 =?utf-8?B?SHdkb2F0MGF5WXVBM0VqWk52b0g1VHdSTlZrVnRZT0Z2cUZuQVdPUjBoMmFk?=
 =?utf-8?B?Z2NUZjV0c0k2dFVtT3BoUE5NZzBzeEVEZVRkSCtGKzc4WWNVd0tkaFplM2ZS?=
 =?utf-8?Q?qSrWc5YMcb/gU?=
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?Vmc3dXZTQ1NDeVZlemovVmJ6b1VpWDRLS2Z1QkRRNTA4UWRrd2hVbXhWakFX?=
 =?utf-8?B?RU9kZnRTZnBJaXo3Q1JkZFkxRTZaYy9nenlQaGVJeFZlM3Y3ZHhUT0F3Q1ow?=
 =?utf-8?B?Mm1kTEh1T3FYb0lIVVN1NElCUG1xa3ZveVdZZDI1djdIczNRNWJoa1l4TnIw?=
 =?utf-8?B?MFZZbW55WGxNUXBCRnZVOVVoL215QjRETDlTT05uazlOQkRoWTBGWm9MbXBs?=
 =?utf-8?B?RmdIVTZYOHByQ2wzVjFRKzhZT0JYM0hOSXpuODVYRnVYSE1YK1B4V1RlU2tQ?=
 =?utf-8?B?V3Zpa3l6a2d2bjV4dFVhQlViMmxTTE9ZRWQxdFRZNTNsaEpUUno3RWYwVmFS?=
 =?utf-8?B?QXV4WmZ0emZEN0tiWTlxeDQ0S0FzekhWK1plVkF3RmRITFB4RXF4cmlidGY3?=
 =?utf-8?B?KzFMOHYwQ1c2b1R1OXAwMmhUM0dOWjhoR2ptTVJMQmlyWTJxWWxNUzV2Y2RI?=
 =?utf-8?B?YVhybWZUOE5rK0lKc0ZNTk9FVkhCUlhIODVSdW4yV0ppK1lUcHVMUmdEdnRF?=
 =?utf-8?B?SVhaeE16eG0xczRkVXlYbEZJZ3Rma2VYNnBtVUVlSGFiQTgyaGZ3bU5tSzFw?=
 =?utf-8?B?cHRVaWF4SngvMWRjYkhTSDl5WFpmSUJLSFR3UTRKbFZRMnhoeTdQSWN3b3FG?=
 =?utf-8?B?aUk2amRjdDE3cTk2Mk9wczNldjBCRWp6MHowM2xlOFAzb3ZNZkQ4TURhVzNW?=
 =?utf-8?B?SnBuQ1A1aDdwQ1BJcW10UnZxZjg2NXVaT0pqa1ltdnVaZlNBOFk4cmhEMWNN?=
 =?utf-8?B?ZGM0eGViWVk0VUQwZ0k0WGJYUmNsT3lJVWhhb1ZMYzNOTHlGZ3ljMVNGU1lD?=
 =?utf-8?B?L1hXWmZQNkdjdEJ3SXZDNVUvNTNLeHovWVFSWUNuS3VrWC82b2tDcFJDbEtp?=
 =?utf-8?B?V2hQRGJYTDZmaTFWaUcrYk5aUGFYK25ST2FpVEZudkhhWnh4UjJuT1dwcFQ0?=
 =?utf-8?B?YkUyaE5QVy9EVU5HUjZ3QmhFRUx2Ylh6Z0ZxVVN1VE1mYnBnRzBDV0M4MVRE?=
 =?utf-8?B?NTMrOUovWm5OQzRsVnZOa3VKTWpHdDhQSXV4RmhJQUFBT0JlblpzVk5XSTRU?=
 =?utf-8?B?UHlndnZnN29IbGliTENPRER0NVlvY3NreUxDTThWeFB0UUNjdWhUL08veVNo?=
 =?utf-8?B?aFUzOHFESDNIZ1N6S0VMckluTEwwT3BkcW8rSG1TUmthVUJHc2dabjkwY3Bn?=
 =?utf-8?B?WUYwazFsa0pWdlJkUnAyT05rb3AyTHE2Q2tvZU5aZnV3aXV0aXFrSndYdGpV?=
 =?utf-8?B?UEs0V1JWQkF4QWc1R2tEUWVQWFNqNWs1b2laSy8xNEw4MHM5WlJsejhPckNw?=
 =?utf-8?B?L0lGV2dHeFZlelI4dG1IdlhCU3R6MFAxOGdidTYzRzZvem5VbzhObkVLVWtr?=
 =?utf-8?B?TDZzRkVLSnZZdWhYUTJtZVMyUzViUVI5MmVHcmJBS2MzbkNGNUd5QTE3Unc3?=
 =?utf-8?B?Rk5KWGFCNGFTbldHT3BjQWhiQVY5OUV1elFiZnZHWnk2MFhoUUVnK0lHOVdw?=
 =?utf-8?B?NnF4TU5DR0xYcFlMQlRvckZYaXMwSnVlWXFqT3UxSkxPQ2NBUVNEN3VlMzhP?=
 =?utf-8?B?SUxSMDY3bFlxd2NZdjBKMTNlUFJlYkF3RWV6YVdhTkhSQU5wRzRaQ1ZQNk5M?=
 =?utf-8?B?QXNGVnpIYkNyVTBmMXdZbDJSWldpZ0ROa1VPTm9nTzFBTEdDMXREejZUeXNE?=
 =?utf-8?B?dlVDekFLb1RQZy9jM1h5cmZnd1dyQjZpRzNzSFNSMW9waVlGV2pLTnRGWUNY?=
 =?utf-8?B?TjZtdWJtOUhZWFh3bUtZWGZpOUJuKytLV0REaUhXbllvSXdIUC9uS09NWG5I?=
 =?utf-8?B?c0I5TjRpOEdmZVVUU0F4M1M5YlpnVkFLMFpvRWVDbVJ0U0lXZ1RmT3N6RkYw?=
 =?utf-8?B?Qmo1bFBNOHBFQ1MvQzNjdUdJcDdteVlUYTFLTTFzOERWQmZQVzdrVk1vd0x3?=
 =?utf-8?B?Z1RYbVBTazFRMmx6TUd1WDlkbmh5YVNEbEh1VmN5cVFiSFJTb0owcndSblFF?=
 =?utf-8?B?T2FMRms1Q0gyR2d6ejhiSHRTaDlzbE8xSVR1VVY3SnZKRjJ2N2kwSzhnNGE3?=
 =?utf-8?B?Q3ZwY1lBWHUyYzZBZGpJTUpSRjE0SlUxRFhCYk5tdmwvcEc2Q2dWU0lPNWpY?=
 =?utf-8?Q?BUHb4IkvsiVkBmu5GImqVFHfl?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 5e77c85d-a13f-40f7-f9fd-08dd75d6c028
X-MS-Exchange-CrossTenant-AuthSource: PH8PR12MB7326.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Apr 2025 13:18:56.6829
 (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: 5YnpouL7kiFqOuBYBIhLdrLA8NtMdYQJE8LPafOgEZHoRQffaD+K8vtJ+gckQgLSLiu906syCrYUXGX4QPxMRw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB5765

Hi Michal,

On 07/04/2025 10:04, Orzel, Michal wrote:
>
> On 03/04/2025 19:12, Ayan Kumar Halder wrote:
>> Added a new file prepare_xen_region.inc to hold the common earlyboot MPU regions
>> configurations across arm64 and arm32.
>>
>> prepare_xen_region, fail_insufficient_regions() will be used by both arm32 and
>> arm64. Thus, they have been moved to prepare_xen_region.inc.
>>
>> enable_secondary_cpu_mm() is a stub which is moved to prepare_xen_region.inc as
>> SMP is currently not supported for MPU.
> This does not sound right. If you want a place to keep some common MPU stuff
> between Arm64 and Arm32, you need to come up with better name for a file. SMP
> has nothing to do here with preparing regions so it feels odd to have
> enable_secondary_cpu_mm stub there.

Can I rename prepare-xen-region.inc to mpu.inc ?

Julien/Luca - any thoughts ?

>
> Also, new files should use dashes '-' and not underscores '_'.

Ack

- Ayan

>
> ~Michal
>


From xen-devel-bounces@lists.xenproject.org Mon Apr 07 13:23:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 13:23:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.940111.1339983 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1mS5-0003sw-92; Mon, 07 Apr 2025 13:23:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 940111.1339983; Mon, 07 Apr 2025 13: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 1u1mS5-0003sp-6B; Mon, 07 Apr 2025 13:23:49 +0000
Received: by outflank-mailman (input) for mailman id 940111;
 Mon, 07 Apr 2025 13:23: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=C/xl=WZ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u1mS4-0003sh-95
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 13:23:48 +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 890a0267-13b3-11f0-9eaa-5ba50f476ded;
 Mon, 07 Apr 2025 15:23:46 +0200 (CEST)
Received: by mail-wr1-x435.google.com with SMTP id
 ffacd0b85a97d-3912d2c89ecso3860663f8f.2
 for <xen-devel@lists.xenproject.org>; Mon, 07 Apr 2025 06:23:46 -0700 (PDT)
Received: from [10.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-39c3009644dsm11901825f8f.6.2025.04.07.06.23.45
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 07 Apr 2025 06:23: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: 890a0267-13b3-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744032226; x=1744637026; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=9USyALrpeP0OYfedjByv0DH4++pn62o9g8P7qYdlchU=;
        b=WANbhXCi3bBGaAsIsCrN+2ZxaJHip8PbRqvv+nyMdCVVKsPn/8mtTc71sShmvm6LU/
         2cc5KzGc/peaJBdfyh5ZT+YXjMZSUOnRJoWfpehxrY1DdGVRSB0Hpxj6mMxLF8tic4nh
         560MO7j8K4CaP0U27yHUEIP6cAa2Z/+MSSzMuHnNfpsiaoM3HOTypYu9AO9k8NHgBM+v
         NmMTrbDp7f4ubjX55snKE3BfvJYxqJlVZ60dkrc7/9BlAyiPYykuueSrd8dwE859vbVI
         NdGr8h0n3qh2lYs2e18XyizL1nOh/lSU2qPAqMLAqCviKVgmntx0MwtC7EJpiv3KNQN/
         yi8A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744032226; x=1744637026;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=9USyALrpeP0OYfedjByv0DH4++pn62o9g8P7qYdlchU=;
        b=iNKKVzxrFQh47dUABLzZQgqMW7Qi7SadG4Epk3M/YGAP36NLsATj6gRtow3mlvMgX2
         LpZZssLKLo++LJDgKA5rvDqiujGAcxmAVdJluCS1zSTfuqBVIlN3Hqa9cyHgY6xwDBXM
         y2JHzFodOtULApXH7+McuFjtLLuJoCjaTSRNOtlUR0JhglCIecklc0dDX0mphxDuD2qf
         GVbwdRoK97ZZiJ8H8tHtwHL3gPnrSv1t2sR+gHC48Io/mbbkIMrInP9sBHp/uDjsDUmV
         /WMthXM0KhiUynhkvaLtzFdbS87VHPK1V4f3bpaUXk6gQX7fgN6X90iKPoN1JcU++bXm
         LRsA==
X-Forwarded-Encrypted: i=1; AJvYcCWQBvCt6EjyHVsGSG6OIXx+FPzfsDKfrBE5GfJdpWF5ZlXs12c42pLUzgM1gh9RzNwTAaAqDyv3h84=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwTtbbzsxJE60dktO0OaqUDqtvzmhRqxB24Yoqyiq1Q6v9sxotQ
	d1Xqfysf0yAbJi2XhuL1V1ZymXblAyCCU+4mCaT4z7OPsiGpQSPV0Yx3CmeRww==
X-Gm-Gg: ASbGncuWtRxMTxuiAeMUYK/zc02/IbEe5Xm2ECy6N7hgw+QiS59l68lRfVkzmvwVk4j
	CoZLBSWUopxvAQK5apqkEYstWJROc+QvU5Bi0+rU3jCkzh6lrLt7jQPiJczeGKMdy5giUztG7sG
	hccCMHvGHPmLGCR95Mc3BOm0puCOAYiaENPkuiHspD88fNgvReOf5s21mbyW/ASbLEe0NqrJ9my
	qgAPtqDlq3d63jOF5OCf3K1ex0KDeg0Ptw819mr1YqdwRdUJ4ax9gsR9RFFk5l6pORpYWL3DaFW
	c+C4Fj6S5oTUWHfJJLrmaqfkVsDYO6GeNCLz+PIACIXsCOXD9znjBpZdiMKL/+h3dyDFS2pjb4n
	cBJwKC1x2worLcmPq8aqPl4YO2HmkJA==
X-Google-Smtp-Source: AGHT+IEniUsG8UFqru+L4SUu+0qnO6euSTiI2Rw0ZDcsY88hUgNy5uiLxHqF+9Q4kdrn0/5hUxZpxQ==
X-Received: by 2002:a5d:64a9:0:b0:391:4bcb:828f with SMTP id ffacd0b85a97d-39d0de1233emr10022140f8f.14.1744032226347;
        Mon, 07 Apr 2025 06:23:46 -0700 (PDT)
Message-ID: <75d288ba-1006-46f4-8f51-6d49c5e8449d@suse.com>
Date: Mon, 7 Apr 2025 15:23:48 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Ping: [PATCH] libxc/PM: correct (not just) error handling in
 xc_get_cpufreq_para()
To: Anthony PERARD <anthony.perard@vates.tech>
Cc: Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org
References: <df676738-19e7-47e6-977f-25d6d13ccc50@suse.com>
 <e0028d85-668a-464b-aac5-ac8a79ea9bf5@suse.com> <Z_PI2UNn2C4GKqYw@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: <Z_PI2UNn2C4GKqYw@l14>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 07.04.2025 14:45, Anthony PERARD wrote:
> On Mon, Apr 07, 2025 at 01:38:24PM +0200, Jan Beulich wrote:
>> On 27.03.2025 14:32, Jan Beulich wrote:
>>> From their introduction all xc_hypercall_bounce_pre() uses, when they
>>> failed, would properly cause exit from the function including cleanup,
>>> yet without informing the caller of the failure. Purge the unlock_1
>>> label for being both pointless and mis-named.
>>>
>>> An earlier attempt to switch to the usual split between return value and
>>> errno wasn't quite complete.
>>>
>>> HWP work made the cleanup of the "available governors" array
>>> conditional, neglecting the fact that the condition used may not be the
>>> condition that was used to allocate the buffer (as the structure field
>>> is updated upon getting back EAGAIN). Throughout the function, use the
>>> local variable being introduced to address that.
>>>
>>> Fixes: 4513025a8790 ("libxc: convert sysctl interfaces over to hypercall buffers")
>>> Amends: 73367cf3b4b4 ("libxc: Fix xc_pm API calls to return negative error and stash error in errno")
>>> Fixes: 31e264c672bc ("pmstat&xenpm: Re-arrage for cpufreq union")
>>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>>
>> May I ask for an ack or comments towards what needs changing?
> 
> Calling xc_get_cpufreq_para with:
> 
>     user_para = {
>         .cpu_num = 0,
>         .freq_num = 0,
>         .gov_num = 9,
>     };
> 
> seems broken. It's looks like the `scaling_available_governors` bounce
> buffer is going to be used without been allocated properly handled, with
> this patch.

The local variable "in_gov_num" controls its allocation and use, together with
has_num. "Use" as in passing to set_xen_guest_handle(). The only further use
of that bounce buffer is on the exit path, i.e. it being passed to
xc_hypercall_bounce_post(). The backing function xc__hypercall_bounce_post()
is dealing fine with the buffer being NULL. And that's what it would be left
at from DECLARE_NAMED_HYPERCALL_BOUNCE() if buffer allocation is skipped.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Apr 07 13:25:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 13:25:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.940124.1340004 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1mTO-0004dI-Qg; Mon, 07 Apr 2025 13:25:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 940124.1340004; Mon, 07 Apr 2025 13:25: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 1u1mTO-0004d9-Nh; Mon, 07 Apr 2025 13:25:10 +0000
Received: by outflank-mailman (input) for mailman id 940124;
 Mon, 07 Apr 2025 13:25: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=FUjn=WZ=atlas.cz=arkamar@srs-se1.protection.inumbo.net>)
 id 1u1mTN-0004Of-SL
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 13:25:09 +0000
Received: from gmmr-4.centrum.cz (gmmr-4.centrum.cz [46.255.227.205])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b984b4fb-13b3-11f0-9ffb-bf95429c2676;
 Mon, 07 Apr 2025 15:25:08 +0200 (CEST)
Received: from gmmr-4.centrum.cz (localhost [127.0.0.1])
 by gmmr-4.centrum.cz (Postfix) with ESMTP id E9EEF6C60
 for <xen-devel@lists.xenproject.org>; Mon,  7 Apr 2025 15:25:07 +0200 (CEST)
Received: from antispam30.centrum.cz (antispam30.cent [10.30.208.30])
 by gmmr-4.centrum.cz (Postfix) with ESMTP id E699F201A7B2
 for <xen-devel@lists.xenproject.org>; Mon,  7 Apr 2025 15:25:07 +0200 (CEST)
Received: from unknown (HELO gm-smtp11.centrum.cz) ([46.255.227.75])
 by antispam30.centrum.cz with ESMTP; 07 Apr 2025 15:25:07 +0200
Received: from localhost.localdomain (ip-213-220-240-96.bb.vodafone.cz
 [213.220.240.96])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256)
 (No client certificate requested)
 by gm-smtp11.centrum.cz (Postfix) with ESMTPSA id F2BC0100AE2A3;
 Mon,  7 Apr 2025 15:25:06 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b984b4fb-13b3-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=atlas.cz; s=mail;
	t=1744032307; bh=M/srLozqjowrKwxtWCSUenY0UgmwFAtRY3NtZmGhjoU=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=Y0tXSlgkErRtODYBiUMGYNczgBWjKYFksC5143OmPUFkyQ0py/iJvocinpd0MJ7DR
	 n0BuqzTbY/xeYcSWAURax2xclTD7SGgGJQLwWjG8Xc+nC3y7QqnxagS59kOe4GT+Hi
	 xKLbtottagnJ/BxrCuTMYiu/tBzEFZwaJmMnImIA=
X-CSE-ConnectionGUID: JocpOiqgRoW7s7bex2I8zA==
X-CSE-MsgGUID: pHnCKEnUQlCmrY9o+Cl+1Q==
X-ThreatScanner-Verdict: Negative
X-IPAS-Result: =?us-ascii?q?A2EDAADz0PNn/0vj/y5aGQEBAQEBAQEBAQEBAQEBAQEBA?=
 =?us-ascii?q?RIBAQEBAQEBAQEBAQFACYE3AwEBAQEBCwGDM4FxhFWRcmGLGIYzi2qBcwsPA?=
 =?us-ascii?q?QEBAQEBAQEBCS4WBAEBPwaEOAoCiyonNQgOAQIEAQEBAQMCAwEBAQEBAQEBA?=
 =?us-ascii?q?Q0BAQYBAQEBAQEGBgECgR2FNVOCYgGEAAIBAwEiDwFGEBgBDAImAgInLwYTg?=
 =?us-ascii?q?wKCMAEDMa0qgTIaAmXccAJJBVVkgSmBGi4BiE8BhHxwhHdCgg2BFYE7gT5vh?=
 =?us-ascii?q?BoBhAOCaQSDR4RTkgWKHUiBBRwDWSwBVRMNCgsHBYFsAzUMCy4VMkQ4HYF8g?=
 =?us-ascii?q?3KFOIIRggSJFYRaLU+Dbx1AAwsYDUgRLDcUGwY9AW4Hll+EDQcBWTR7dniQS?=
 =?us-ascii?q?7YLhCWETZUEh3caM5dSHgOSZJh+pEuEaIFoAYIUMyIwgyJSGY48FhbMAXY8A?=
 =?us-ascii?q?gcBCgEBAwmCO40tATOBSwEB?=
IronPort-PHdr: A9a23:BaswThdmsij45968CuU390jxlGM+7djLVj580XLHo4xHfqnrxZn+J
 kuXvawr0ASTG92DoKgc07CG+4nbGkU+or+5+EgYd5JNUxJXwe43pCcHROOjNwjQAcWuURYHG
 t9fXkRu5XCxPBsdMs//Y1rPvi/6tmZKSV3wOgVvO+v6BJPZgdip2OCu4Z3TZBhDiCagbb9oI
 xi7oxvdutMKjYd+Jao91AfFrmdWd+lV2GhlOU+dkxHg68i/+5Ju7z5esO87+c5aVqX6caU4T
 bhGAzkjLms4+s7luwTdQAWW/ncSXX0YnRVRDwXb4x/0Q4/9vSTmuOVz3imaJtD2QqsvWTu+9
 adrSQTnhzkBOjUk7WzYkM1wjKZcoBK8uxxyxpPfbY+JOPZieK7WYMgXTnRdUMlPSyNBA5u8b
 4oRAOoHIeZYtJT2q18XoRejGQWgGObjxzlVjXH0wKI6yfwsHwHY0gE+AtwAvnfaotL3O6ccX
 u+60KbGwC7fb/5Vwzrx9JLFfgwjrPyKQLl+cdDRyU4qFw7dlFuft5DlPymI3esCqWeb6fRlV
 eGygGMgsQ5xuDuvyd0piobTnIIY0UrL9Tl9wIkvPt20UlJ0YN+9HZZWqiqVOJd4TNk4TGF0p
 CY11KcGuZijcSQX1JgqyB7RZ+GDfoaI/x/uSOafLzh3iX9meb+yiBm//0ijx+DiWce501RHo
 yREn9TMuX0Byh/e58qGR/dg/Uqs3yuE2QPL6uxcLk05lLDXJ4Ahz7MwjJYfr1rPEy3slEj0j
 KKablso9vWm5uj9fLnquIOQO5VqhgzxLqgigMiyDOU+PwMTRWaU4/6826fm/UDhRbVKieA5n
 bfBvZDBIMQbura5AwhI0oY/8xq/Dymp0NAfnXQfI1JFfQuLj5PsO1HSOPD0EOqzj06wnzh1w
 fDGIqfhAojILnTZjLjgfK5x609ayAUt0dBS/51ZB7AbLP7tWkL8tMbUAgEnPwG22erqCtVw2
 psbWW2VA6+ZNK3SsUWP5uIqO+SDfpUVuDXnJPgg/fHul2Q0lkUBfamtx5QXc2q0EehnIkmBe
 3rjns8BEXsWvgo5VOHlkkeCUT1JaHa3Ra08/Co2B5i6DYfHXI+tm6aN0zu6H5FOfGBJFkiME
 Wv0d4WDQ/oDciSSLdJ7kjMaW7mtUZMu1RaptA/i1bVnNOTZ9zYEupLiyNh1/ezTlB4o+TNoC
 MSd1nmBT3tokWMQWz82wKd/rFRyy1qA0KV1mP9YGsJJ5/NPTAg6MYTQz+tgC9D9Qg7BZMuGS
 E66QtW6BjE8Vs4xw9AKY0dyANiiihHD3yy3A78JjbyLA5o08qPT3nTrOsly1W7K1LM9gFk+X
 stPKWqmi7Zw9gfNAY7FiliWmLi0dasC2C7A72ODzWuVvEFESw58S6rEUm4ZZkvOt9T54UHCQ
 KGyBrQ7KAdBztSCKqRSZt3zkVpGXOvjOMjZY2+pmWewCgyIxrSXbIrxYGgdxzjdCFManAwJ4
 XmGMg0+Cj+7o23CFDxuCU7vY0T0/Ol6qXO7SFI0zg6TY0J7y7W14h8ViOeCS/McwL0Eoj0tq
 zZqE1an2dLZFd6AqxBmfKVGbtMx+E1H2n7BtwxhIpygKLhvhlofcwRxokPv2Ax7CoZensgwq
 nMl0g5yJLmG0FNOaTyYx4r8Or7JJWno+hCgdarW1kvZ0NaM9adcoMg//mnjuwSgDQIN93hmw
 99YyTPI+prOHCIWUJTsTlww8Rlq4b3XNHoT/YTRgEVhLbP8jDbEeNFhUOI/yR+lds13Ob+AH
 RS0GN9MVJvmE/Ajh1X8NkFMB+tV7qNhepr+L5O7
IronPort-Data: A9a23:ws5s2qz7AqqBuXO7cth6t+fKxyrEfRIJ4+MujC+fZmUNrF6WrkVWz
 2YcUD+PPf2JZzTyKtF+aoywo0pVusOEyNRnSgNu+FhgHilAwSbn6XV1DatS0we6dJCroJdPt
 p1GAjX4BJlpCCKa/1H1b+WJQUBUjcmgXqD7BPPPJhd/TAplTDZJoR94kobVuKYx6TSCK13L4
 I6aT/H3Ygf/hmYoaj1Mt8pvlTs21BjMkGJF1rABTa8T1LPuvyF9JI4SI6i3M0z5TuF8dsamR
 /zOxa2O5WjQ+REgELuNyt4XpWVXKlJ6FVHmZkt+A8BOsDAbzsAB+vpT2M4nVKtio27hc+ZZk
 4wR6MPqGW/FCYWX8AgVe0Ew/yiTpsSq8pefSZS0mZT7I0Er7xIAahihZa07FdRwxwp5PY1B3
 d4fIygqbwmMveWJn6nkQOR83OVzPuC+aevzulk4pd3YJfkjBIvGX72TvJlT0TEsnN1LW/3MD
 yYbQWYxKk6dPlsVYAhRV89WcOSA3xETdxVRslGcoKMty2HPyAVqlrP/WDbQUofTH5QJwRbF+
 woq+UzhIhcxF/GZ9AOB2Xe2t77I3gj/G9srQejQGvlCxQf7KnYoIBQMVlK+qOORg1K6UskZI
 F580iMoobI/6wqgSd7lUgfjiHWFogQdS5xbFOhSwBHdlILX7hyfC2xCSSROAPQ6u8smbTgr0
 EKVhdTvBCwpvLD9YWKQ8PKYoC2/PQARLHQefmkUQA0d+d7hrYovyBXVQb5LEqGvicbuMSrt2
 D3Mpy87750XjMgWx+Cy9kjGqyyjq4KPTQMv4AjTGGW/4WtRYI+jepzt6lXB6/tEBJiWQ0PHv
 3UencWaqucUAvmljzCESuEANK+m6uzDMzDGh1NrWZ47+FyQF2WLId4WumwjYh0zbYBbJFcFf
 XPuhO+Y37cLVFPCUEO9S9/Z5xgCpUQ4KenYaw==
IronPort-HdrOrdr: A9a23:wZCehaMFyYxuqsBcTsyjsMiBIKoaSvp037Dk7SxMoHtuA6ulfq
 GV7ZAmPHDP5gr5NEtLpTnEAtjifZq+z+8R3WByB9aftWDd0QPCEGgh1/qB/9SKIULDH4BmuJ
 uIC5IfNOHN
X-Talos-CUID: 9a23:d87GiGz6gwMWXhBoyF7GBgU2Hcs9VXzEw03XHBCjVmxkWOe0GU25rfY=
X-Talos-MUID: 9a23:Vt6T6wajnKiKdeBTrx/qrxJPMvpR54+rEnFcltYtv4rdDHkl
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-AV: E=Sophos;i="6.15,194,1739833200"; 
   d="scan'208";a="312947855"
From: =?UTF-8?q?Petr=20Van=C4=9Bk?= <arkamar@atlas.cz>
To: Thomas Gleixner <tglx@linutronix.de>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	arkamar@atlas.cz,
	Juergen Gross <jgross@suse.com>,
	linux-kernel@vger.kernel.org,
	stable@vger.kernel.org,
	x86@kernel.org,
	xen-devel@lists.xenproject.org,
	linux-acpi@vger.kernel.org
Subject: [PATCH v2 1/1] x86/acpi: Don't limit CPUs to 1 for Xen PV guests due to disabled ACPI
Date: Mon,  7 Apr 2025 15:24:27 +0200
Message-ID: <20250407132445.6732-2-arkamar@atlas.cz>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <20250407132445.6732-1-arkamar@atlas.cz>
References: <87ecy5wqjm.ffs@tglx>
 <20250407132445.6732-1-arkamar@atlas.cz>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Xen disables ACPI for PV guests in DomU, which causes acpi_mps_check()
to return 1 when CONFIG_X86_MPPARSE is not set. As a result, APIC is
disabled and the guest is later limited to a single vCPU, despite being
configured with more.

This regression was introduced in version 6.9 in commit 7c0edad3643f
("x86/cpu/topology: Rework possible CPU management"), which added an
early check that limits CPUs to 1 if apic_is_disabled.

This patch updates acpi_mps_check() logic to return 0 early when running
as a Xen PV guest in DomU, preventing APIC from being disabled in this
specific case and restoring correct multi-vCPU behaviour.

Fixes: 7c0edad3643f ("x86/cpu/topology: Rework possible CPU management")
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: x86@kernel.org
Cc: xen-devel@lists.xenproject.org
Cc: stable@vger.kernel.org # 6.9+
Signed-off-by: Petr Vaněk <arkamar@atlas.cz>
---
 arch/x86/kernel/acpi/boot.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c
index dae6a73be40e..9fa321a95eb3 100644
--- a/arch/x86/kernel/acpi/boot.c
+++ b/arch/x86/kernel/acpi/boot.c
@@ -23,6 +23,8 @@
 #include <linux/serial_core.h>
 #include <linux/pgtable.h>
 
+#include <xen/xen.h>
+
 #include <asm/e820/api.h>
 #include <asm/irqdomain.h>
 #include <asm/pci_x86.h>
@@ -1729,6 +1731,15 @@ int __init acpi_mps_check(void)
 {
 #if defined(CONFIG_X86_LOCAL_APIC) && !defined(CONFIG_X86_MPPARSE)
 /* mptable code is not built-in*/
+
+	/*
+	 * Xen disables ACPI in PV DomU guests but it still emulates APIC and
+	 * supports SMP. Returning early here ensures that APIC is not disabled
+	 * unnecessarily and the guest is not limited to a single vCPU.
+	 */
+	if (xen_pv_domain() && !xen_initial_domain())
+		return 0;
+
 	if (acpi_disabled || acpi_noirq) {
 		pr_warn("MPS support code is not built-in, using acpi=off or acpi=noirq or pci=noacpi may have problem\n");
 		return 1;
-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Mon Apr 07 13:25:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 13:25:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.940123.1339993 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1mTM-0004Ou-Ih; Mon, 07 Apr 2025 13:25:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 940123.1339993; Mon, 07 Apr 2025 13:25: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 1u1mTM-0004On-G1; Mon, 07 Apr 2025 13:25:08 +0000
Received: by outflank-mailman (input) for mailman id 940123;
 Mon, 07 Apr 2025 13:25: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=FUjn=WZ=atlas.cz=arkamar@srs-se1.protection.inumbo.net>)
 id 1u1mTK-0004Of-Mi
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 13:25:07 +0000
Received: from gmmr-2.centrum.cz (gmmr-2.centrum.cz [46.255.227.203])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b73a7266-13b3-11f0-9ffb-bf95429c2676;
 Mon, 07 Apr 2025 15:25:04 +0200 (CEST)
Received: from gmmr-2.centrum.cz (localhost [127.0.0.1])
 by gmmr-2.centrum.cz (Postfix) with ESMTP id 48222204E52E
 for <xen-devel@lists.xenproject.org>; Mon,  7 Apr 2025 15:25:03 +0200 (CEST)
Received: from antispam31.centrum.cz (antispam31.cent [10.30.208.31])
 by gmmr-2.centrum.cz (Postfix) with ESMTP id 456C82042DF5
 for <xen-devel@lists.xenproject.org>; Mon,  7 Apr 2025 15:25:03 +0200 (CEST)
Received: from unknown (HELO gm-smtp11.centrum.cz) ([46.255.227.75])
 by antispam31.centrum.cz with ESMTP; 07 Apr 2025 15:25:02 +0200
Received: from localhost.localdomain (ip-213-220-240-96.bb.vodafone.cz
 [213.220.240.96])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256)
 (No client certificate requested)
 by gm-smtp11.centrum.cz (Postfix) with ESMTPSA id B408C100AE104;
 Mon,  7 Apr 2025 15:25:02 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b73a7266-13b3-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=atlas.cz; s=mail;
	t=1744032303; bh=kiYJQhPO9bK188tvzcgK+tflLcoJpt76+LU/uqMEgG0=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=kxxOzJQ0P6GLAuQTlOjnqZNKg/UGOpr+RUEKzDYxwBBcPfASASQ0pfF1lriUHs51g
	 gXZuldOPgZmnoDXdyZs0JQWUWQkbvnVN6cQpwlmG7LcmQPcmbqnzHZmnkNF/uiQ5Bt
	 FXyFjFa/8ScmHKobTu//880y/QwKnJgALZDVo88A=
X-CSE-ConnectionGUID: JISPTSTgQ0+NWz5v7Bd6/g==
X-CSE-MsgGUID: WG/Zq+uhSNeWMb8Z2bJYQQ==
X-ThreatScanner-Verdict: Negative
X-IPAS-Result: =?us-ascii?q?A2EHAADz0PNn/0vj/y5aGgEBAQEBAQEBAQEDAQEBARIBA?=
 =?us-ascii?q?QEBAgIBAQEBQAmBOAMBAQEBCwGDM4ZGkXIDi3aGM4tqgX4PAQEBAQEBAQEBC?=
 =?us-ascii?q?UQEAQGEfQoCiyonNgcOAQIEAQEBAQMCAwEBAQEBAQEBAQ0BAQYBAQEBAQEGB?=
 =?us-ascii?q?gECgR2FNVOCYgGDfwEBAQECASMPAUYFCwsNAQoCAiYCAlYGgxWCMAERI6wwe?=
 =?us-ascii?q?oEyGgJl3HACgSNkgSmBGi4BiE8BhHxwG4RcQoINgRWCeTE+hBuEA4JpBIItR?=
 =?us-ascii?q?VWUEoxjSAp7HANZLAFVEw0KCwcFgSlDAzUMCy4VIw9EBTMdgXyDcoU4ghGBX?=
 =?us-ascii?q?AMDIgGDFXUchG6EWi1PgzM8HUADCxgNSBEsNxQbBj0BbgeadFmBWwo+AsdOh?=
 =?us-ascii?q?CWETZx7GjOXUh4DkmSYfqRLhGiBbguCBDMiMIMjURmOaMwBgTICBwEKAQEDC?=
 =?us-ascii?q?YI7jS4zgUsBAQ?=
IronPort-PHdr: A9a23:/eJw7xHX04iMZwfbeyb7tJ1Gf35KhN3EVzX9CrIZgr5DOp6u447ld
 BSGo6k21hmRBc6Bs6oe26L/iOPJZy8p2d65qncMcZhBBVcuqP49uEgNJvDAImDAaMDQUiohA
 c5ZX0Vk9XzoeWJcGcL5ekGA6ibqtW1aFRrwLxd6KfroEYDOkcu3y/qy+5rOaAlUmTaxe7x/I
 RuooQnLqsUanYRuJrgtxhfVvHdFePldyH91K16Ugxvz6cC88YJ5/S9Nofwh7clAUav7f6Q8U
 7NVCSktPn426sP2qxTNVBOD6HQEXGoZixZFHQfL4gziUpj+riX1uOx92DKHPcLtVrA7RS6i7
 6ZwRxD2jioMKiM0/3vWisx0i6JbvQ6hqhliyIPafI2ZKPxzdb7GcNgEWWROQNpeVy1ZAoO9c
 YQPCfYBPf1FpIX5vlcCsAeyCRWpCO7p1zRGhGL53bci3uohDw/LwhEuEdwNvnrTrtr1OqgdX
 vy6wqTT0TXObOlb1Svn5YTUcB0sp+yHU7JqccrWzEkiDxnLgUuMqYz/Ijia2f4Cs26F6upjS
 OmijHQoqxtyoje1w8cjkJPJi5kPxVDY8SV22p01KcekR096eNOpFoZbuC6GOYVsWMwiX31ot
 zggyr0AoZO3YTQGxZsnyRLCb/GJc5WF7w7jWuieLjp1h3Nodb2wihiy8kWt1OLyW8q23VtEr
 ydIktbBum0O2hHR68WLV/hw80G80jiMzwDe8u5JLEEumabFK5MswqQ8moQNvUnBBCP7mkX7g
 LeIekk59OWk8frrbqv6qpOGKYN5hR3yPr4ql8G+B+kzLxIAUHKB+eum0b3u5Uj5QLJXgfIoi
 qTZq5XaJdgDpq6+Hg9Vzp4v6xahADei19QVhXYHLFdcdBKciojpJ0nOLO3lAfuln1ujjjFrx
 +zcPr38B5XBNGTMkbb5cbZ87U5T1hYzwMhQ6p9VEL0NPvL+V0/ruNDGEBM0MRa4zuTnBdll0
 4MRQ2OPAquXMKPItl+I4/oiLPOWZI8Wojn9LuIq5+T1gHAjhV8debOm3YANZH+kH/VqO1+Zb
 mb0gtcdDWcKuRIzQ/bwiF2BSzFTYmy9X7gn6z4hFIKmCZ3MRpu3jLOd3Sa3BodWaXxeClCQD
 XfocJ2JVO0KaC2POM9ujDIFWaK9RI8m0hGurBH1y6BpI+fP5iIYtI7j1MJ05+zcjx096Tt0D
 8GF32GXU250hn8IRyMx3K1nrk1wyVaO3LN7g/NGD9xT4e1GUgMgOZ7b1ex6BMj+WhjdcdeRV
 FamXtKmDCktTtI+x98PbF1wG9GjjhDFwiqqH6UVl7uNBJw1/aPQxWX+KNhlx3bcyKYhl0UmQ
 tdINWC+ia9w6Q7TC5fUnEqHiaala6Ac0TXJ9GeC1mqOoFpYXBR/UKrbW3AfflHWrdP75kzcU
 7CuFa4rMgxbyc6NMqdKcMHmjU1aRPf/P9TTe2Cxm2iqBRaP3bOMd5Hne34A3CXGFkcIiRwc/
 XGDNQQmHCeuv3reDCByFVLoe07s9eh+qHWmTk471g2FdVFu16K0+hMOm/ycRO0c3qgetCcit
 Tp0BlC90MzSC9aaoAphZqpcbcsn4FhbzWLZqxB9Ppu4IqBmh14edRl3vkz32xV0FIpAi84qo
 20uzAdpN6KY301OdymC0ZDzJLLXMG/y8w6ra6LM3VHeytmWqe8z76EEq1LmtRrhOU4v8mVh3
 sMdh2eT4oXiCAsUTI7rVUA25152queJTDM64tbs2GF2eZe9tJzBk4YgHugszx+6V95DNKqfU
 gTgRZ5JT/OyIfAnzgD6JikPO/pfoettZ5vOSg==
IronPort-Data: A9a23:qYR9uqv9Qc3XtNVlAKtlOG8abefnVKtfMUV32f8akzHdYApBsoF/q
 tZmKWqAaPmCMGv2L913YdjioUIOvsPWytIyHlM/+3szQi8WgMeUXt7xwmUcns+xwm8vaGo9s
 q3yv/GZdJhcokf0/0rrb/646yEhiMlkf5KkYMbcICd9WAR4fykojBNnioYRj5Vh6TSDK1rlV
 eja/YuGZTdJ5xYuajhJs/7b90sz1BjPkGpwUmIWNK0jUGD2yCF94KI3fcmZM3b+S49IKe+2L
 86r5K255G7Q4yA2AdqjlLvhGmVSKlIFFVXmZtJ+AsBOszAazsAA+v9T2Mk0NS+7vw60c+VZk
 72hg7TrEFt0Yfec8Agqe0Iw/ylWZcWq8VJcSJS1mZT7I0buKxMAzxjyZa2f0EJxFutfWAlzG
 fIkxD8lTDG4v96N/L2CEqpKudZ+MpbBMN1YtSQ1pd3ZJa5OrZHrTKCP/tpExG5pwMtDG+rEe
 s9fYigHgBboP0MJYApKTshkw6H32xETcBUBwL6RjaMt4GHWxRZZ2aTpOcGTcc7iqcB9xx7F9
 jqWoz6kav0cHOOwjgicsW+svcnCogbxCLBIHp+Jz8c/1TV/wURWUnX6T2CTqOO6g0u3QfpWN
 0gd4Wwlv8Aa/UqnVNTiGRa/p2aJpEU0UNtMCewqrgqKz8L881bHLmsJVDhMbJohrsBebSAl0
 k+hm9LvGCB1t7uUWTSR+9+8vT60fCQYM2IGTSsFVhcepcnuppkpiRDCRcolF7S65vX3Fiv32
 CuitzUlivMYistj/6G6+03XxjunvpnhUAE4/EPUU3ij4wc/Y5SqD6Ss6F7G/bNDIZyfQ12po
 ncJgY6d4foIAJXLkzaCKM0WALij4/utLjLRmxhsEoMn+jDr/GSsFb28+xkiegEzb5tCI2W2J
 hCO0e9M2KJu0LKRRfcfS+qM5w4CkMAMyfyNuijoU+dz
IronPort-HdrOrdr: A9a23:7g/t9KFVCio9xU1RpLqE5ceALOsnbusQ8zAXPo5KJSC9Ffbo8P
 xG/c5rsSMc5wx+ZJhNo7q90ey7MBDhHP1OkOws1NWZPTUO0VHAROpfBMnZsl/d8kbFmdK1u5
 0MT0EHMr3NMWQ=
X-Talos-CUID: 9a23:SieH+GBevB5e4mn6EwtGz3YoIfwqSyWe6kjCflHnI2o3D7LAHA==
X-Talos-MUID: 9a23:y4XipQiW3w/A4lkwXJIGTsMpC+gv0b3tFUA2t5g5nsPUB3Z6GQaktWHi
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-AV: E=Sophos;i="6.15,194,1739833200"; 
   d="scan'208";a="105808425"
From: =?UTF-8?q?Petr=20Van=C4=9Bk?= <arkamar@atlas.cz>
To: Thomas Gleixner <tglx@linutronix.de>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	arkamar@atlas.cz,
	Juergen Gross <jgross@suse.com>,
	linux-kernel@vger.kernel.org,
	stable@vger.kernel.org,
	x86@kernel.org,
	xen-devel@lists.xenproject.org,
	linux-acpi@vger.kernel.org
Subject: Re: [PATCH 1/1] x86/cpu/topology: Don't limit CPUs to 1 for Xen PV guests due to disabled APIC
Date: Mon,  7 Apr 2025 15:24:26 +0200
Message-ID: <20250407132445.6732-1-arkamar@atlas.cz>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <87ecy5wqjm.ffs@tglx>
References: <87ecy5wqjm.ffs@tglx>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On Sun, Apr 06, 2025 at 12:08:29PM +0200, Thomas Gleixner wrote:
> On Sat, Apr 05 2025 at 20:16, Petr Vaněk wrote:
> 
> > Xen PV guests in DomU have APIC disabled by design, which causes
> > topology_apply_cmdline_limits_early() to limit the number of possible
> > CPUs to 1, regardless of the configured number of vCPUs.
> 
> PV guests have a APIC emulation and there is no code which actually
> disables the APIC by design unconditionally. There is one way though,
> which disables the APIC indirectly.

It seems I have got a bit lost in APIC/ACPI abbreviations. Sorry.

> xen_arch_setup() disables ACPI, which in turn causes acpi_mps_check() to
> return 1, which disables the APIC. This only happens when the kernel
> configuration has:
> 
>      CONFIG_X86_MPPARSE=n
>      CONFIG_ACPI=y
> 
> If you enable MPPARSE the problem goes away, no?

Yes, it goes away.

> > +	/* 'maxcpus=0' 'nosmp' 'nolapic'
> > +	 *
> > +	 * The apic_is_disabled check is ignored for Xen PV domains because Xen
> > +	 * disables ACPI in unprivileged PV DomU guests, which would otherwise limit
> > +	 * CPUs to 1, even if multiple vCPUs were configured.
> 
> This is the wrong place as it invalidates the effect of 'nolapic' on the
> kernel command line for XEN PV.
> 
> You actually explain in the comment that XEN disables ACPI, so why are
> you slapping this xen check into this code instead of doing the obvious
> and prevent acpi_mps_check() to cause havoc?

Thank you for your explanation and suggestion. I will correct acpi_mps_check()
in following patch.

Thanks,
Petr


From xen-devel-bounces@lists.xenproject.org Mon Apr 07 13:29:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 13:29:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.940149.1340013 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1mXL-0005W4-A7; Mon, 07 Apr 2025 13:29:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 940149.1340013; Mon, 07 Apr 2025 13:29: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 1u1mXL-0005Vx-7F; Mon, 07 Apr 2025 13:29:15 +0000
Received: by outflank-mailman (input) for mailman id 940149;
 Mon, 07 Apr 2025 13: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=ZxXC=WZ=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u1mXJ-0005Vr-GG
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 13:29:13 +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 4aecdd2c-13b4-11f0-9eaa-5ba50f476ded;
 Mon, 07 Apr 2025 15:29:12 +0200 (CEST)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-43cebe06e9eso28494605e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 07 Apr 2025 06:29:12 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43ec1660bcesm132514105e9.10.2025.04.07.06.29.11
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 07 Apr 2025 06:29: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: 4aecdd2c-13b4-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744032551; x=1744637351; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=qaQHixNC8CKlwNwDP5YrDlwPW9p/Kd1pkYmE4vTsjl8=;
        b=NQDdKYqkrWvLM2luxi56aHWtZsi0Ntrc49Desz0zOS1RNXBaVMa/g+fpxv33G1weAO
         LLCLg5YEgO6BIIcH5zxhimako/uym0pHfKFKGAZG+hiHqLK6RD2VYEDfasZXvboHU6ny
         Q3qCtaatQUMv2+/THkyyF/8b5nDa5XAkKvKnA=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744032551; x=1744637351;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=qaQHixNC8CKlwNwDP5YrDlwPW9p/Kd1pkYmE4vTsjl8=;
        b=gKd9ims5137XC8bsBF1UFbaIAmMs/W5VaDmsG8ZAEq2idIYMs4tKHjil7aaqlQfpFd
         jWYI90rCakXgvP+9LniqEGafEygJjqepUKMRMObrirXiHOYl5zwEIbWPi2LtWFSdATwJ
         xe4ovkBhu4peOQfP5C1QG7bL4hkNRc02r9tePPowYZFtH6McEWntfzzJP30LsAxwPoxU
         EeyMiszgOmUx9yWqqtQOxVubQa+d5/Kk6D1YIuKOuMUL73rwYK7t86PfrT28HVGN9mTL
         /EEfwl66qYz+PJCPpNdmswLDZ/SMHlfrzEolGS7C+BSRXMlyrIaEnv3URieiX4NPuX55
         6Y5g==
X-Forwarded-Encrypted: i=1; AJvYcCXccEzQCRiBQG+J7YbNY0PosDryqnU0EhrOwNDQHzUK+2nulZgqb5EWgUzAIpY0aO2pokEhr3dfZSU=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx/pcOP+4HkRqe0YGCfajVMyOWfmcp5yzR2oCBpt7PhzaCIpvc8
	1RHC2/8rOGkzsLom0yosVEH2kn7X7zQt+nG1amHx4CS3IkK2+qTqILY/a0L63cU=
X-Gm-Gg: ASbGncsYVN4xfDpV55EEGddNZ6Bess/akytsClqYfaaETQqQky2lRw3o0EO4L7M8hQG
	mxFM3SG0ez0hW4JsMWXdqP+I2YI8L6M2QmAozSZvys8XSPWW3Bp2kgU4gBW91MRTMQ9rekb++FB
	3zJlz+wu7r3KuFZ/LtisCKvBgNa+J/gnABQw/I7olHGxqtQdLmyGvANoS4HHCioBX2sGHotMig5
	XUy47n52b6C+ocUyEUqMfWlt9G9NyQWis76KNl+V/kEEdAEH43LkDhpKOkN94C2Nn60TSivlIFy
	V75qjxSkJdmEkSnpCem7ApssjWFLMGvVt41Y1o+a17AHZCn4DCd8jfJNr3uzP9oKrsx5YNpmwsM
	QS31K9D49Wg==
X-Google-Smtp-Source: AGHT+IHMpy1XKIbNbdUoLoU/U6+HQky82jTKA10X140wr9uX2Q2DdeqpEhqD7LDRl3/ff24vCr/zEQ==
X-Received: by 2002:a05:600c:4705:b0:43d:53c:1ad6 with SMTP id 5b1f17b1804b1-43ecfa02754mr83517745e9.26.1744032551647;
        Mon, 07 Apr 2025 06:29:11 -0700 (PDT)
Message-ID: <45d415b1-2b7b-44ae-81d7-8047b2c9554a@citrix.com>
Date: Mon, 7 Apr 2025 14:29:10 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/cpu: Validate CPUID leaf 0x2 EDX output
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: <190ea0fe-887b-44dc-bf05-db154f26a03d@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: <190ea0fe-887b-44dc-bf05-db154f26a03d@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 19/03/2025 11:24 am, Jan Beulich wrote:
> From: Ahmed S. Darwish <darwi@linutronix.de>
>
> CPUID leaf 0x2 emits one-byte descriptors in its four output registers
> EAX, EBX, ECX, and EDX.  For these descriptors to be valid, the most
> significant bit (MSB) of each register must be clear.
>
> Leaf 0x2 parsing at intel.c only validated the MSBs of EAX, EBX, and
> ECX, but left EDX unchecked.
>
> Validate EDX's most-significant bit as well.
>
> Fixes: 1aa6feb63bfd ("Port CPU setup code from Linux 2.6")
> Signed-off-by: Ahmed S. Darwish <darwi@linutronix.de>
> Signed-off-by: Ingo Molnar <mingo@kernel.org>
> Link: https://lore.kernel.org/r/20250304085152.51092-3-darwi@linutronix.de
>
> Use ARRAY_SIZE() though.
>
> Origin: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 1881148215c6
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>

> ---
> I wasn't really convinced that we strictly need f6bdaab79ee4 ("x86/cpu:
> Properly parse CPUID leaf 0x2 TLB descriptor 0x63") as well. Thoughts?

I don't think we need it either.


From xen-devel-bounces@lists.xenproject.org Mon Apr 07 13:32:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 13:32:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.940164.1340023 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1mab-0008FQ-R7; Mon, 07 Apr 2025 13:32:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 940164.1340023; Mon, 07 Apr 2025 13:32: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 1u1mab-0008FJ-OW; Mon, 07 Apr 2025 13:32:37 +0000
Received: by outflank-mailman (input) for mailman id 940164;
 Mon, 07 Apr 2025 13:32: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=U9Ey=WZ=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1u1maZ-0008FD-GM
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 13:32:35 +0000
Received: from AS8PR04CU009.outbound.protection.outlook.com
 (mail-westeuropeazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c201::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c2cca268-13b4-11f0-9ffb-bf95429c2676;
 Mon, 07 Apr 2025 15:32:33 +0200 (CEST)
Received: from AM0PR02CA0133.eurprd02.prod.outlook.com (2603:10a6:20b:28c::30)
 by AS8PR08MB8684.eurprd08.prod.outlook.com (2603:10a6:20b:562::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.27; Mon, 7 Apr
 2025 13:32:30 +0000
Received: from AM2PEPF0001C710.eurprd05.prod.outlook.com
 (2603:10a6:20b:28c:cafe::5e) by AM0PR02CA0133.outlook.office365.com
 (2603:10a6:20b:28c::30) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8606.32 via Frontend Transport; Mon,
 7 Apr 2025 13:32:30 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AM2PEPF0001C710.mail.protection.outlook.com (10.167.16.180) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.13
 via Frontend Transport; Mon, 7 Apr 2025 13:32:30 +0000
Received: from DB7PR08MB2987.eurprd08.prod.outlook.com (2603:10a6:5:1c::25) by
 AS8PR08MB6136.eurprd08.prod.outlook.com (2603:10a6:20b:292::7) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.8606.31; Mon, 7 Apr 2025 13:31:58 +0000
Received: from DB7PR08MB2987.eurprd08.prod.outlook.com
 ([fe80::d53f:b16d:70a5:8668]) by DB7PR08MB2987.eurprd08.prod.outlook.com
 ([fe80::d53f:b16d:70a5:8668%4]) with mapi id 15.20.8606.029; Mon, 7 Apr 2025
 13:31: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: c2cca268-13b4-11f0-9ffb-bf95429c2676
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=BhDoiCvdCjIrzhc+0uimaHsZImrolXpmmwlgSjGuBzYrUHP4IkzX5bppKSx8WpD9A9Pj3YrBNiNriCiFpX9/2LA+YS9HWH0qG1M3oSQZ0OKTOMhXt7YxIb2oSM6oC2lV3xgFGEmlxzYC3GhpgrZw4/W3brzEXgNW8pNxVxg8nJpFYIfdfvrijYbAY02N6J4DXPZ98GapQPvE0l3vchYnKXTmkVyF3O+dKot92QX6NCv1bbpjtj7h53MsXJ7kr367/u7MAOXl2/AWuxwA4nVi+mMri6rGKNsHxpy3R6+KwZ5QJih2eRk5oqBcNVJuLm0gulFa5gKXvM0S81/fmhQXBg==
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=gyTmMYEFDSLSd0DE9QKYq5iwXqYxilAvM0FTMxOxZBA=;
 b=CXji1f6JuG46sQL9R3pW18gbHL5xvIrNql4EzX1d+Yf+Y+DC0czNIFCeh+SYTHRyhUxivFqBQOQhGa92glnOfjfg3y5C8p60ye4vZRyYseRCYIuMvx96E5Vt4T8Fr7mB9rAvqCgO6yxSUseGx06jhAEZqZlNyIOTe0lODM1RQgd+skJP04vtD2uh57fMMKoPGG+eULG0/fS/f3eETAOBE9SMReqcYkJSJp2Xq2TU5wnzyZp4BO3mlXgMzWp6ei2B+unXyt1vFqCSbPwCl71XjrKFvhs7iKbop1KQ7gMMP16InMMRlcX+YJjQ8dRthSTJaqvBZWkrJW69Aw3ozbBa2A==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=fail (sender ip is
 4.158.2.129) smtp.rcpttodomain=amd.com smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=gyTmMYEFDSLSd0DE9QKYq5iwXqYxilAvM0FTMxOxZBA=;
 b=FGyUSuYEF21jewTTAER+TsNLbjT6gfgwNBJqFH0c5yyvOvRdiDaTJB3ZvplZiOwIwH4X769+pks/hMaRGug5Nx/jo27l5e4ffvQwU3VeWdB6sRczwVoCa9tNRpi+fBPKsTCwdNAAxWi83fWfUQan31cyp+yGbKj2y9G7McCIMQg=
X-MS-Exchange-Authentication-Results: spf=fail (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Fail (protection.outlook.com: domain of arm.com does not
 designate 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com;
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=uYdOe4fHGg9x/6JBeH9ebik5pVQZf4OUS2bbJivLr8ZsUWASj1rrmku1t8CJUcGVaRCJvhshMUKqNdZkiSvYPaAjxDYIAFgojPlEHhewIE6ajgILSp913mKnXGDyhrq/bmagLNq6WH2DGkgGzqZyQGnEu/w+7u0PTCM44HB5KiruY6s6ewEnDN5IQJsP+wJ7XOeWnQLjRMKxlI9WRS9LRrwenk4bxFitqYCmpj1lMIp6XLAjyLUIBxE8H2Sw7YKH60TX+tgoKbzyo76qcxz1pD8cjAziGeBzB+EFKfl+Rt0FYhHSObqOiMseDtFA+Xr+DEkKPj2mU1ee8gOeWIu0Zw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=gyTmMYEFDSLSd0DE9QKYq5iwXqYxilAvM0FTMxOxZBA=;
 b=v1QZIVykr6X2hW9PyypPUs0DE/x7jAMW/0iAf0b2Fjp0KL3SbheW97gHFJlegxOabRXRTz2ohBKB7CU1Dp9TMwb383ta0/rxnCyiUd3E+Cp9wvhRgIQVkD5PF8tsB6dMAH9CLpRVFfLpKvSdYZoGYhSTcms0NJDKP4hYrzJWzVlGxL6LoaisFGd5Vhypki+p/gt/e4MLN4oi32RpeCwfKbgZpKz8r63/5b8mXZ7Gzgc2/dZlNmMy4QPaAyXxBufvIqx38TSGY32Q+6qRDqoSwR+MYSMx3GgQrjZkGXwmEDOjxAVQGl0o6om66dvcBDFvqlQuo/sAUl/iv2q0W7raRA==
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=gyTmMYEFDSLSd0DE9QKYq5iwXqYxilAvM0FTMxOxZBA=;
 b=FGyUSuYEF21jewTTAER+TsNLbjT6gfgwNBJqFH0c5yyvOvRdiDaTJB3ZvplZiOwIwH4X769+pks/hMaRGug5Nx/jo27l5e4ffvQwU3VeWdB6sRczwVoCa9tNRpi+fBPKsTCwdNAAxWi83fWfUQan31cyp+yGbKj2y9G7McCIMQg=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Ayan Kumar Halder <ayankuma@amd.com>
CC: "Orzel, Michal" <michal.orzel@amd.com>, Ayan Kumar Halder
	<ayan.kumar.halder@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>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH v4 1/3] xen/arm: Move some of the functions to common file
Thread-Topic: [PATCH v4 1/3] xen/arm: Move some of the functions to common
 file
Thread-Index: AQHbpLu5pa88e8EeQkugLRqmrl+P07OX7qMAgABHGwCAAAOFAA==
Date: Mon, 7 Apr 2025 13:31:58 +0000
Message-ID: <8C708752-ADB1-4904-ACCF-FDDAD965FAE3@arm.com>
References: <20250403171241.975377-1-ayan.kumar.halder@amd.com>
 <20250403171241.975377-2-ayan.kumar.halder@amd.com>
 <45d47205-409c-492a-9841-3b162c05ec09@amd.com>
 <0ed34b41-0cf8-4bab-9304-d6c3f2ec276d@amd.com>
In-Reply-To: <0ed34b41-0cf8-4bab-9304-d6c3f2ec276d@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.400.131.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DB7PR08MB2987:EE_|AS8PR08MB6136:EE_|AM2PEPF0001C710:EE_|AS8PR08MB8684:EE_
X-MS-Office365-Filtering-Correlation-Id: adb037b4-88ab-40c1-d77e-08dd75d8a566
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:
 =?us-ascii?Q?aOxL7jTFXMGvSsqyCRHFhE1cYauw6Q4BL3lBPRgPzNN5CV4JIzVJAIdNL35f?=
 =?us-ascii?Q?EPcYVZIht3T914uWiTGVGMvQq4ali7gf4keKZfOY+tgX+VSAb/C51EBpNaO+?=
 =?us-ascii?Q?HunBeAeJ5UIfHaKojsq1STRorIsdiCxd6U3qd/seYwtn5/Feq8z0gg/iHwll?=
 =?us-ascii?Q?0g1vH1t+AnsXv6wc69FT1BaipsPV39PoGyAZ+jLpe2KXMEarTWdpYmP1hb3Q?=
 =?us-ascii?Q?Q7H0nkwXpHPJc2/1XSIM2I4EPd0iasRelda+qzNlrq5LzqLiKbfgKUONLppS?=
 =?us-ascii?Q?y46GuazFwPD/C3hPobREU7rAlXitkGy5obQXkG6aDDvdL30DughlvM/6UmVO?=
 =?us-ascii?Q?D4bbIkC3wCuC8NmI4dfiyLhPrBPn60gOmF//fkbUCpZjxfCtcDDjXuznVz73?=
 =?us-ascii?Q?iK35NLO4c2L+UtOlsTQOViUOT04JULrfcd4Ddl6i0NaUU3N8yMmXMZtPMo5i?=
 =?us-ascii?Q?+QHRwbMWYgMITp0lJqTgiCTRAuvkxxE96pMpPp8NbBZl9LiVd5oYlXuKRYDd?=
 =?us-ascii?Q?fClA6MpcASMgDkaWrOet4zBYZ2R9dtM7wF5Sai7FWR7OvohEd8HJebn1M54T?=
 =?us-ascii?Q?mQZAgHkMPdaIc3ISXG4GHvcCzSclYmqfHosTdPzSrIX6zkcctz0MFIuHGqbC?=
 =?us-ascii?Q?V9gdwAHsQ/LiXoFhjIGu/U9ysGlwUO51PNyr2/b5sSY6vOnYiVAN2YdveKwW?=
 =?us-ascii?Q?P4Tp0QkEa7DohzSsgg3vZDHghnorsNnEs5QdP2zkKvw8OS237ggVHK7dFlKL?=
 =?us-ascii?Q?OuE0xpH1cZPn1xBiOgWtER6CTXriq77ixXwdZozBdzToXn0AuT2cmb4jcFSP?=
 =?us-ascii?Q?sQcoRtI8XC93Nb0X64IZaiAFSGABkgABfx4k7nZOJiTuATIl8n4ynOXIgqj9?=
 =?us-ascii?Q?lXJ/ixfkFD5E/YGId2YdTx1nIw9tigQBuIENah7gdeVs386TDGX3/0/n8zuA?=
 =?us-ascii?Q?QZ5E2G/82fYkuLMRoL6SGlOIR+uVQtlRLsp98TeWZiG7Mz1Y9J+uH34n3eJH?=
 =?us-ascii?Q?/im8V/zjVATul5D0l0D0CZTWp9yCjW/WtXULmJJIGvnUjJDW35fXyKh8O+EB?=
 =?us-ascii?Q?2U2twQLvoK7lTThqX/w1TgqommRtet2T7crBEVKocWh4NNlKlewx7X2OiG9l?=
 =?us-ascii?Q?A5yE63YIvr7sWwEGRUOxTKrk6gc72tYHIJRjkOELGWOnIGkMIaTbTeH57OCK?=
 =?us-ascii?Q?ZfFfwsDkJSTWS/6NSW5hjFFDnXAIRhBRbiSFvs7sOSGcSNr1qN+6rrjBcEjA?=
 =?us-ascii?Q?LWia2TiCpS906sS1Rvv8nohp1LCVwS3tVDt14lCqo3sTv66NAVjTGKhfVr13?=
 =?us-ascii?Q?r1neVd/FG0MvpW/g0erS2fPTPOPjXVIiAaYEN8gB+toEr7P09+tbCeyNpkml?=
 =?us-ascii?Q?toFrBjj7fUatQSH3x7SUCOL+wAMO0TqTxY8OlaJx61F1PBIDAVodTOm9CCWf?=
 =?us-ascii?Q?JLaf0OsKqUmb1p7WLzt3Cs4QQvPcRy+3jPvekPt83Y/LkDP0ddWSiw=3D=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB7PR08MB2987.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(38070700018);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-ID: <AA49F0A2C63F8C4D82429C4E6D792940@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB6136
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AM2PEPF0001C710.eurprd05.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	0aca40ef-fa38-4cdc-1d2d-08dd75d8924f
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|14060799003|82310400026|35042699022|36860700013|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?Vjc8vQyob29DA16+yO6rgXUiyYQTVD26ms7Qeu9O41XltQ6vF4j5CDa1U+RU?=
 =?us-ascii?Q?WkBCU3+Z+/U6x/LwV1uv6yOUt0MnwTu/gXusk4HldUXCEufh8IeOgqgtbDWY?=
 =?us-ascii?Q?8XCh+dWJjUtJPFesnEP0SNU4Wy/wreMKz20cOpcJU+6zujUOdn6SJexYgBr0?=
 =?us-ascii?Q?hSWGKEWTq+4p2v3vQzFyhIFsOuFi0q0jFrKBk/vGr01B/6u4f85eln4oiRIJ?=
 =?us-ascii?Q?2F4mbZFVSBWg2NzjvDDmyxxCXTzrOET0Y9pYoGNwsPmeH/ujFvgkZY4T4N8t?=
 =?us-ascii?Q?opGPhBr/U2bJAh0aj0D5pu7GIAwQ4/HTIWGEoYZwhONiArkcOhGbdbIDb3b7?=
 =?us-ascii?Q?RploEZQt48+XuPc0MRnjNJVDvs5RoskE/ijT2SX/259k41A7wg7WBxmGrUDG?=
 =?us-ascii?Q?iwAPPIAoFk3t8yh4Af+LI/eyaUaSxL+Ls5c/5k/jKDia6xmjNuWYvzfx+lmO?=
 =?us-ascii?Q?VFN7MOJLJUOtNRjaWL+jeI27iYPMQygiDkv7PJiz4F3g9lkpidgEtLR0POHz?=
 =?us-ascii?Q?vsh+TKoHmZREFB6+9imsTGK8G/DWaIUa5Bk3d6j8pecXItW8h/Sp8lAsWhmu?=
 =?us-ascii?Q?FIRKurTAh8sKqWWVxkMfDj2XTiB5Hk6YCrMkzlmTCwRRui2xMxopP1sAiMoO?=
 =?us-ascii?Q?ilvb1oQjGb9agBJHyr/rWC3a2X966r77FpTzVdmL6LJM4DjieWYewesCRG4Q?=
 =?us-ascii?Q?Fuev8cpuydM80DJDue5k0vf/oo8J+2xc9CAikw6tVQjN6HpKOKz7bYWORbWr?=
 =?us-ascii?Q?eUUM4v3vd16VBzUb5IVEttApHJo5/00KZdRogOhG7yOfXMCPYKMoVRVLbkeR?=
 =?us-ascii?Q?DVLPDYPtgBSnJ24mUh7FGYc8OvFFsV48b8PmrFlERvXX7AdfC0KE2xaKsoE0?=
 =?us-ascii?Q?hS90W1YVp+ZeFjhwVhKjMUUfWiDYLgM/mUbIbEFgqN9Lk4rKQ5RufUIev26h?=
 =?us-ascii?Q?T8EIQGFvcJ2S3eih30fSjVOl4h9aCZtwUvaSR+e/ojJbIpmTns1SBqzAK2i4?=
 =?us-ascii?Q?M+i5WofJ47p9q3MMehKm3yNrpR1ZRcCqLpKAG71sCn28bnsdsL0HxHP2Du5V?=
 =?us-ascii?Q?QxjABbwIVkbKRx7BfKDC0qhb0jpHWDNs06YbhGn/Xy34LUxzLvwLDdUeszUq?=
 =?us-ascii?Q?AdffXR07ASYDyH4JJmg92YUA8Ovdf5u7j0lkoreFlg190w/kqqrgQSgomUdR?=
 =?us-ascii?Q?+je6WxhT55X++miLDtqWx8q9R3FnMsAf4R6g5KVNPdnYbvpmXOaifOYX/p+9?=
 =?us-ascii?Q?lgAd2CQ2voI324uq3VR454ezEfa1SdVHSZ8CLsZCwSglXtK1IwLT/decfRdb?=
 =?us-ascii?Q?2tBJkKttLuRCZHln/JzxIuF6wjZ8uhvDzQ/bwB+n80ZVLYYkp4OBsOt9+8iK?=
 =?us-ascii?Q?1Yrr7K3g+A2mmWUe2+63H6p5tjVuxHStGwsRC0hahhF3XWgXU9gmVczWwcfb?=
 =?us-ascii?Q?ZOB2s0idPLxKiGYjMU1r2mVJASkxRRPaFw+o2Wt7jI6OFQdcUnntfXXSBp7P?=
 =?us-ascii?Q?xci2oT6AhPZ+IAg=3D?=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(14060799003)(82310400026)(35042699022)(36860700013)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Apr 2025 13:32:30.4063
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: adb037b4-88ab-40c1-d77e-08dd75d8a566
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AM2PEPF0001C710.eurprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB8684

Hi Ayan,

> On 7 Apr 2025, at 14:18, Ayan Kumar Halder <ayankuma@amd.com> wrote:
>=20
> Hi Michal,
>=20
> On 07/04/2025 10:04, Orzel, Michal wrote:
>>=20
>> On 03/04/2025 19:12, Ayan Kumar Halder wrote:
>>> Added a new file prepare_xen_region.inc to hold the common earlyboot MP=
U regions
>>> configurations across arm64 and arm32.
>>>=20
>>> prepare_xen_region, fail_insufficient_regions() will be used by both ar=
m32 and
>>> arm64. Thus, they have been moved to prepare_xen_region.inc.
>>>=20
>>> enable_secondary_cpu_mm() is a stub which is moved to prepare_xen_regio=
n.inc as
>>> SMP is currently not supported for MPU.
>> This does not sound right. If you want a place to keep some common MPU s=
tuff
>> between Arm64 and Arm32, you need to come up with better name for a file=
. SMP
>> has nothing to do here with preparing regions so it feels odd to have
>> enable_secondary_cpu_mm stub there.
>=20
> Can I rename prepare-xen-region.inc to mpu.inc ?
>=20
> Julien/Luca - any thoughts ?

I would say we leave the SMP stuff out from the common file, at some point =
we could start working on the
SMP support and maybe there would be difference between arm64 and arm32.

what about common-cpu.inc?

>=20
>>=20
>> Also, new files should use dashes '-' and not underscores '_'.
>=20
> Ack
>=20
> - Ayan
>=20
>>=20
>> ~Michal
>>=20
>=20

Cheers,
Luca



From xen-devel-bounces@lists.xenproject.org Mon Apr 07 14:04:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 14:04:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.940178.1340034 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1n5K-0007wv-48; Mon, 07 Apr 2025 14:04:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 940178.1340034; Mon, 07 Apr 2025 14:04: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 1u1n5J-0007wo-W9; Mon, 07 Apr 2025 14:04:21 +0000
Received: by outflank-mailman (input) for mailman id 940178;
 Mon, 07 Apr 2025 14:04: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=C/xl=WZ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u1n5J-0007wi-K5
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 14:04:21 +0000
Received: from mail-wm1-x329.google.com (mail-wm1-x329.google.com
 [2a00:1450:4864:20::329])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 323dd3c2-13b9-11f0-9ffb-bf95429c2676;
 Mon, 07 Apr 2025 16:04:18 +0200 (CEST)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-43d0359b1fcso27886205e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 07 Apr 2025 07:04:18 -0700 (PDT)
Received: from [10.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-43ec34bf193sm129955525e9.24.2025.04.07.07.04.16
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 07 Apr 2025 07:04: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: 323dd3c2-13b9-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744034658; x=1744639458; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=bwxcyzgPV8r2I866GPfT7ihqH67f1wcBr5QPG75gC7c=;
        b=H3J6GFsqDD42q+X4sna8VPpff1mRka7sdQkfWzw2wxe16YvePjukyqxYBxVOBZrlVh
         vdUPeT132KuV45G83Dir4A1BVCngl0g0vSXRIv/ZrmX4xuCsjnEsROQ+4r5IQC8RlrvX
         z97OpTbsU3yNsoQh3DUUoAX0U9xIZKrHZlXAXMTUGnxgkAF0M+qN9v03F8YzIgk5NJqs
         JiBxl2PZdd+mnwutens/qSrtYYWI9P69UzNyeSlDTS2dTRkBiAmXcB+KotWYs4Mza0O9
         S+B9ec0T9Pe+LrDwalQEyr1pImyT7YsaJH43g6H2UTSNetaH3LVeN8OScyDgCNQaeDNo
         19bA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744034658; x=1744639458;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=bwxcyzgPV8r2I866GPfT7ihqH67f1wcBr5QPG75gC7c=;
        b=Hn5BNKt2sS3SeNftwFth+4LcU3fRvZhYMBhCvROy7q07T6gTbwINWGiad8yTdehykq
         b8PPomy7W6L9UMj7wQW4BIkY79rvaQ64PbtjC/yxVX6oE1FwFqIDs45VOZv5eyYFOT7p
         ZdzIjS+TBExevHoHOaZFExmCYnr2Z8Qs6FX0FZNpNkb6YbWgiHTwgs+Jp+uwL+5kkY54
         y/yjrXao5JgYaBIo+YsbOexxv0cjJUL915wa530s4ZzadXxdo+uQxg5Q1cmHnuohHjGj
         jctQEnfP2VhE6e9iIAwHFdSjbHA8zaZYIwJPd7HJDColZM5WJ/qeH5XPGYwI1qDctXyC
         m/FQ==
X-Forwarded-Encrypted: i=1; AJvYcCUoodtyyu1fJoFkSXa9EH8CEmq01oaDfqpEZDMQnwusx2oKk3VEeww0DfgMO62G9s986aJlo481q7A=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyhpqPWrN1/BVaGGVL0U8d5AgHrFgGd9n/8PQFNn1YlxqawMyYQ
	XAv2zW9VVlh1bVcEDnOLespacqKlBmv9eWk5fMSDrdxbBPH3Fn0hktJDLho6WQ==
X-Gm-Gg: ASbGncvf2tqPNkAYwaD5inCxNxOyg5EOyNLBKLWG0iskx2jq3jW9jzlYlw4tfJR14sK
	mDaDYHYVNkrenjnsvpA5P7VSrs0UgkPX/4MhPsBqZAs8dqn2xBGb8O3S3mDotRB0OtBZk0nUf1y
	zclQPyNedGM/KPGFVsl4qAThw2g7O4OsUVgaL/2B4GG0srK5uV2/Fqopi79Ayp1NXid7+sXz3Ci
	o9nsoYoV1iV1CgRfCXLPDK2Utos9xgfe6CKSKBEQjCbJOmH76IzTPYRCDYQB7A+ONGo3Swn+uwZ
	sZ1XAjn2Hnigwg+O2A83Fm4Q0XeX/JaD7/ANNiugUDl69qSesrrlIpKk6k/dC99BqMNeoTTC5My
	n6B3E1iSBXHvrGKd8ZfTt342rOIm+Ig==
X-Google-Smtp-Source: AGHT+IGejb3NDzYhfLmqbRsgs8rjIDqsDTgARZfi0jcl4+uqIamSDm173cSLK7seZSE7+qHj0Nt8dg==
X-Received: by 2002:a05:600c:1f17:b0:43d:1bf6:15e1 with SMTP id 5b1f17b1804b1-43eced66978mr119755285e9.1.1744034657160;
        Mon, 07 Apr 2025 07:04:17 -0700 (PDT)
Message-ID: <f71c3298-24df-4d6f-b73c-382d4a112e01@suse.com>
Date: Mon, 7 Apr 2025 16:04:18 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 00/11] x86/EFI: prevent write-execute sections
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, 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>,
 Shawn Anastasio <sanastasio@raptorengineering.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 xen-devel@lists.xenproject.org
References: <20250401130840.72119-1-roger.pau@citrix.com>
 <c686844c-4cb8-43d0-a762-7f93a30f9388@suse.com>
 <Z-vpoh858ldjXok_@macbook.local>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <Z-vpoh858ldjXok_@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 01.04.2025 15:26, Roger Pau Monné wrote:
> nxcompat should be enabled by default I think?  I can of course make
> it explicit by adding to the PE link command line.

--nxcompat wasn't the default originally, then was made the default for MinGW
(and by mistake for everything else as well), then it being the default was
undone for Cygwin. I've meanwhile submitted a patch to undo it for everything
that isn't MinGW [1]. I simply don't think the linker is in the position to
declare that every binary is NX-compatible. It's the programmers who have to
determine that. With the flag not being honored everywhere one also can't
simply test an EFI binary on a couple of hosts, at least as long as the EFI
implementation there is a black box.

So yes, we will need to pass --nxcompat explicitly in any event.

Jan

[1] https://sourceware.org/pipermail/binutils/2025-April/140422.html


From xen-devel-bounces@lists.xenproject.org Mon Apr 07 14:08:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 14:08:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.940194.1340043 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1n8o-0000Ze-Gg; Mon, 07 Apr 2025 14:07:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 940194.1340043; Mon, 07 Apr 2025 14:07: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 1u1n8o-0000ZX-Dk; Mon, 07 Apr 2025 14:07:58 +0000
Received: by outflank-mailman (input) for mailman id 940194;
 Mon, 07 Apr 2025 14:07: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=xyMQ=WZ=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1u1n8n-0000ZQ-7E
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 14:07:57 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on20623.outbound.protection.outlook.com
 [2a01:111:f403:2418::623])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ae1c3b51-13b9-11f0-9ffb-bf95429c2676;
 Mon, 07 Apr 2025 16:07:47 +0200 (CEST)
Received: from PH8PR12MB7326.namprd12.prod.outlook.com (2603:10b6:510:216::7)
 by DS4PR12MB9658.namprd12.prod.outlook.com (2603:10b6:8:280::14) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.34; Mon, 7 Apr
 2025 14:07:43 +0000
Received: from PH8PR12MB7326.namprd12.prod.outlook.com
 ([fe80::6d76:9c33:d230:8264]) by PH8PR12MB7326.namprd12.prod.outlook.com
 ([fe80::6d76:9c33:d230:8264%5]) with mapi id 15.20.8534.045; Mon, 7 Apr 2025
 14: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: ae1c3b51-13b9-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ly9wwJBc0GmW1dR9ZbBVr0RooX9HYL2DhjWvs9MARYQV06NqkCZIiY1V6I5Op9Pjr5/P6Ef2dvcG4GEnwGGJU3/+Nt6hNnvTEDdIBsQfAZVAGfWQwzbFi7wodMCJ43/MzJss7lHXOv/jv6d+ihrtAA+e94YktYTaL1UvYqI7DHU9OvqV2oGel7/kJjCc7Eo5TPJ/+26oOJ0plD35pURR7SrwKX8x6AlhA6UEzKGnEZqHs9kVw0j0KJd3iqx98WA2tUzgjj7kpUKhlx+41sFTU+h2w8c8GpDro9HqCV4K9awF6/b3gjSJwhOPMSAcuKN4ua2h3Ydmh1CSNDQJlgwrZg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=pJtNDAXxMGk19V9Jad22uspR6AzaHK6S4wYHXiJ0EDk=;
 b=tNCEjf0sygohjBupV+dMl0Kk554L5USD9qOBgdOImSZp3JVg6f2C8GpVEciNcjoJPLF9SpW4HEuzxbi2V2+Bg2iosLilCuWpevv6xGXhaNxBBkt4PrY1X6jqfvxXp+liGMWbTDE5HVwrjhp3w/OQymz0jjSh2EYznSZqkQCPT6T10aDKrNU63T8L7CsdO15oy+ha21OWXiVLh4oZ5btU7e4Zo3zJEampl2x3qSKJmy4QTopLnbHiyMzCrdfEU5GiaThcJsVuKta2t6DlcW3djvJKaoqse1wL1dvv6rkKeZ7E69uz/3+AXuboU4X8rqGnk2qUMjmK52DCP6ysNbcu/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=pJtNDAXxMGk19V9Jad22uspR6AzaHK6S4wYHXiJ0EDk=;
 b=NGKhkx/E1kzEEHGUoxuRRmkemfAvpbubbTKJk5hga3OuQzSHAWFB7pL401D+UDyOiIptGkXiKdCZrWTeRzkBOrzrgozza5U9W5ptJaVPykPV2U0YBlON7T/bxPVX0/dRAcsvqJb9Li5UQZJrxnTOovxv2Q8EHxveB/iotPs6/sg=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <4a88cea0-83bc-40ab-bd95-4acd2ce4ede5@amd.com>
Date: Mon, 7 Apr 2025 15:07:39 +0100
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 1/3] xen/arm: Move some of the functions to common file
Content-Language: en-GB
To: Luca Fancellu <Luca.Fancellu@arm.com>
Cc: "Orzel, Michal" <michal.orzel@amd.com>,
 Ayan Kumar Halder <ayan.kumar.halder@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>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <20250403171241.975377-1-ayan.kumar.halder@amd.com>
 <20250403171241.975377-2-ayan.kumar.halder@amd.com>
 <45d47205-409c-492a-9841-3b162c05ec09@amd.com>
 <0ed34b41-0cf8-4bab-9304-d6c3f2ec276d@amd.com>
 <8C708752-ADB1-4904-ACCF-FDDAD965FAE3@arm.com>
From: Ayan Kumar Halder <ayankuma@amd.com>
In-Reply-To: <8C708752-ADB1-4904-ACCF-FDDAD965FAE3@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO6P265CA0010.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:339::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_|DS4PR12MB9658:EE_
X-MS-Office365-Filtering-Correlation-Id: c5a375e3-ca8d-4867-950f-08dd75dd9095
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?a3BITlFodldXUERGSmdkSFZqb1cxTFpxS3NxcnMvdGthcnZxcnp0WHJMM2VH?=
 =?utf-8?B?TjBZV0IrWGk5RTVwbXVZUjBUWFNRN21BanZJSkFmQ0hiNVdzekN3V01zT3Bt?=
 =?utf-8?B?aDdPcVE4cFBwbWhJdWljcVdLTDVzNE5oTUNUVG1UYXZMZDRaUFE3eHlaQ3Fu?=
 =?utf-8?B?d1lwK3NuL2h6T0RJczRHSUVZVTh4Ly90KzZRL1dVR094U2FaMXJoeHhTdHBa?=
 =?utf-8?B?Tk9MYU00TkJXT2xGUTlLWDFkZytiZzQwbEdGeTZwYUZvTWovdTBkNW1kdmE4?=
 =?utf-8?B?QlI5TEwxdFdHOTNiS0RGWEpUU0xUU0Jvbk03RHdHWlpLMWFhZFc0VlBCK2dN?=
 =?utf-8?B?bmtldHFuYjZXd2pIQS9OKzZkeW5GY1U1YjFzazdBbmhEYmdveGZBUUtxSi9F?=
 =?utf-8?B?NWpQOC9lM1BMVHhkZnk0WWMrZmEzUDVhQjVVblUxRWtjdnVZRkoyb1B0WHZu?=
 =?utf-8?B?YldRbDVRbzZwR0kyMU9rMkpiQ0VVZ1RKb1hvNHRPazVEeWZ5MTh4bEJjbjVo?=
 =?utf-8?B?OHh2U1I5bVV1ejluaHROMUxDcDdtSWtHQ3NxWE5FQ1lhd01ueTV6MWJFUmRP?=
 =?utf-8?B?VGhsbW4yakt6VGYwTlgzbjExOUwvMjZZSXR3NGh6QnYyUUF3T1FaeEZRM3Ir?=
 =?utf-8?B?elpVVFNhYkl2UGlWZE9RYU1tQUxuQW9HSWZORkZrQm9rWnFNWWFjVExZcnYx?=
 =?utf-8?B?UDVLTHNTRDg0OUhXMUV6QS9ySUhDSDFOZk0vNEl0YmpVOEZCM1lZcW1yOE1H?=
 =?utf-8?B?MXZEUFZ5dEJaS3RMaHc0TmNEeHQ2U3daVWVpdmNZcHNnYjFTVHVxZEZZSkxY?=
 =?utf-8?B?aWxCeTVoTUJmc2U1c3U2VnorZXZiZTNtdmZpR2RscUxZNFNYNjR2YnRWUjk3?=
 =?utf-8?B?am5QS29yZkJvRnBQU1N2R3I5U0xzOFZJL3FzdWJNOEN4MGNWYkJjU0YyUFVH?=
 =?utf-8?B?eGFpVGRIeVNkQXo2d3dNemZIVmpjQlZlKys5dE41MURFQmZMQ0NnaHgzdVd3?=
 =?utf-8?B?NGFrclRmdmlxbmVSQ3A2bTBXeEp6MXNVZGNoVmRicFB4cTVzeVp4RitETlNR?=
 =?utf-8?B?aytQMlgrN3pMQ1BNdnZweERGZ3hlVlBZaFBGTU5jZm9kLzFwYkNjbXFML29S?=
 =?utf-8?B?eGt2V0JNYUc0OVRZYjNJUHIzbG9ySjJsNFRsOUVyUjZibFdBSldsK1l2VDNO?=
 =?utf-8?B?QmhhY2wyckNjQlBMYjdJTEhxMkkydnBqU0R4aldKOHREWWNlNEFJWEdiT1pW?=
 =?utf-8?B?V0c3QTJpcFMycW5INEk0L0g5dVIrR0RxbTFnQlFZN1ZnN0JDYWErQUNsL1Iv?=
 =?utf-8?B?dlNDZFY0NEFoTzBBQklORWl0OTFicjlyTFVOY0svVFVKd0Y0bGF2a2M0b09R?=
 =?utf-8?B?RFZlN2FBbVNocUsxTkw1cEREbDVFRUJsb3NpT3BwVWlGaEx3bFpqMlNQanpF?=
 =?utf-8?B?bVdGbEZXQ3UyVGNVMVFqQ2h5SDlEZThXRFRkQW5Ua09hMVBzaENjaVhQcWVp?=
 =?utf-8?B?VFVMNUprbFZwbVRFb2xHUE5vd1J0OGM0Z0lIVkRjNjdBM0hnZXFjOFBiNE1F?=
 =?utf-8?B?aURLRWpTclBQdXRtQW94anJFdXRMQU9DNzBOSTFTdjFtd0V1WU16VjRicGR0?=
 =?utf-8?B?NFd3TmhkZzFEVk5idkRUak8xRG50SXg0bWRvOVpJNmF5d3FkV0gwNnpiMW9j?=
 =?utf-8?B?ZEQxaW9YNjY2TjJwUGVON2c3RFN0Uk16L2g2UENUMjBnUTg1TzQrVnBCVUpS?=
 =?utf-8?B?cnZHcGx4emQrNlZBaXdycFJ0U2crOS9pYjRtYjN2aEpveVlFZlljNEIreWZN?=
 =?utf-8?B?bkFXRElPZXk1R25KM1JjWFV0cDd2enVwTjl0VkwzM2k1SXI5bzFqc2EwNmRt?=
 =?utf-8?Q?U7ubnugCKhn0J?=
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?R1BydWhXcFZFd3V2RHlCdXJqb0lGT1pBcXdzVTZ1MnFPZXgydHBuK3JlcjZI?=
 =?utf-8?B?WFhDQ1Jkb0xaek80dGxVMnhUMUw1d0pTVmkwQlFVdjRhaFMrWTZwS3Y1QnRO?=
 =?utf-8?B?VUlpZHhrKytXb3ZVNVphemNYTHpZRDJGY1UwclpIWkNhanFzUTUyeFlQTnhl?=
 =?utf-8?B?S1h4R0didHRrd0xjdWdLQzRGdHhrc2xGNlZkRVhVUDFpWENlbVFIYUdZRDNt?=
 =?utf-8?B?SjJET2ZvRTNPTnVhUmpTTlphcEJLLzR0VnJLVmZibXBPRFNJempqR3pwTElh?=
 =?utf-8?B?dGQrQTMxSlU1Y1FFVkdUS0VKc0VJZTMrTWpTSk96UWRaR0Rob1RVUU1wRy90?=
 =?utf-8?B?WnI0Y28xYmF0S0JoU1h2dFZJcTJRTmdVQ0RtWFp2UFJBOWlIQ0xPSnNDbXdZ?=
 =?utf-8?B?R0NHMHJlSkFWNFgyMlc4VmFLM3VUYWRZemt2YUVBWUF1MVcrNmdyS2FKQjhX?=
 =?utf-8?B?SUtRWllvOUl2bGQwSGh4SHBzTSs4cnhCQVFLN0dqdE9iRnZBWXFXMHFWelVQ?=
 =?utf-8?B?djR1dXpEMEhubHIzbVl6VHlBZ1loc0NVZEN6eUE5MXpTRUoxZDlHWmF5d0Vl?=
 =?utf-8?B?ZHpMZ3JYMHZNdFNNQXR3NnV0dEpKUFg0UG5xS1FrYVY5ZDkxWVpXUDlWdmQ4?=
 =?utf-8?B?U29OSHhrdk1Vb2NERWNZbFc4ajJrb3Fkbkt4VmI3ZmZPNklLMWJteVZJZHRP?=
 =?utf-8?B?MjcrRXJ1bFRjeUNGUDdwZ2Rpd2VjWkxWRCswdFgwWVJHV2p2Nk1HOGZ4VUNJ?=
 =?utf-8?B?QmZVOVg1S05HaFRyNEJkYURKZXlaT3ZuaVR3dE42WEM2eUsxc2t0U082cjdS?=
 =?utf-8?B?cHBwa3o1ci82b3RZeWcrZVJUYlhnV0FSLzFGVzFySFBsdEw5Tk1PS2Qvb0xR?=
 =?utf-8?B?Vkl0c05mVzFCR3VacHptNk5VV1VoenBxWVVFbldXRENpTFZmS1Mvb3ZDMjdX?=
 =?utf-8?B?aCtUZzFzSUlwcXIrYm9sbHBVZS84dUwrTmRQUlVqSERBNW1nS1hFdUJWeEZy?=
 =?utf-8?B?cFhsUXVXK3lhWTNFVCtiNEkzRmlrMnZPOTRtR0I4RHBkaEFxMVluTmovNnhy?=
 =?utf-8?B?aW8vY3lveEhtWHAxbEFJY2ZoQjJqNHNIY3FaSVNYb1dxZW1MaFB1SzJXVkJ0?=
 =?utf-8?B?bkFZL2V2bE1DMHBieTFDREZ3aEs5aVF3RE1WZXNod3NocFpTS0Z6dGJTcGNZ?=
 =?utf-8?B?TEp6M1FtSG9xelYwWWVEckE3QTRjZmdkRXhQWWxmM2Z5NlN5T25iNWkwYVZT?=
 =?utf-8?B?QUFuSHdBZ05wUVFiT0sxWjFCWTN6ejJ4WXV3d3RhSFJzWnB2WWZkcnJNWUM2?=
 =?utf-8?B?ZkVhYVlVVzFiL0g1dlNBWnFDeCtwdktZb3JoNEVSWFF2anpWeVZMRjNCUlFx?=
 =?utf-8?B?K3NvbWRzdDJmL0N0blR1bHQzSkM2SHFTNXRETUYyeHIxcHZkUDlabWN4Q2pP?=
 =?utf-8?B?dEhBWFQ0Q25GRmlKMTRVQjVsdlkvbGc4Ky9GV3lHOXc5OFZwamw3cWRNV0NY?=
 =?utf-8?B?Vlo3MUFhZTEwNUNzeFY0SE4xMWN5akJrdkhqSHM4azdTYklQeS9acUhObEJM?=
 =?utf-8?B?WXE0TkFRS3l2aWZvNlhYckt1WHM2T0FWZUR1NEE5YlQrbENPdzF0TEh3V1BO?=
 =?utf-8?B?b0U5ZnZkcGZ6MjhQczNzaUdaSnk3UUtuOW1WV2h1MEdKZU13ejZWc0J2a3JN?=
 =?utf-8?B?NmxoN3Q4UFlpR3gvMFduQkRpZGx5Z0FMa0VWUXBEUS9Nd3Z5R1hKekRJWmx0?=
 =?utf-8?B?UFpoZzcrdlUrbmt2WjZSemdMVVV4N0JScDhQZ0crSWh6NGY0Yjd0MFdhODNl?=
 =?utf-8?B?SHZ0dHU0alZDRkNFTUhMV29RV3N0Y2dJS2NMQUt5YWl4OXRGYmdlanhqdGFR?=
 =?utf-8?B?M1dRdDJvWERuS3RoT25BbzBMSWxXVDBYSGNSNk9oWFV5Z0MvbytlTjhITDZv?=
 =?utf-8?B?NW5seklJLzVlZzNDOEtCOUttWWVZNDc0SzRKYnJlQ2ZGK3h0K3lRQU9FbzU0?=
 =?utf-8?B?VVFobUpHM0NQMjc0ejkzWGk0MzRNT1B4bUJKTURySTV2bkN0emgyd3BQd21Z?=
 =?utf-8?B?RkNZc2F3UVpGVHV3enBDMHJhZVFXbWV4UFlHMGVCcExCTHB0bXgxYS9EVG02?=
 =?utf-8?Q?r+CLZ4bw2znPWsLyobsNbyj9i?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c5a375e3-ca8d-4867-950f-08dd75dd9095
X-MS-Exchange-CrossTenant-AuthSource: PH8PR12MB7326.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Apr 2025 14:07:43.2765
 (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: 0bJRsUwPdOxYJgTmF6WJs8q6ktctusIAry0V4wzeVChrPm7Aa4pkzJHVlSj3Gij3Nx04HIQjb0x2keU1g08inQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS4PR12MB9658


On 07/04/2025 14:31, Luca Fancellu wrote:
> Hi Ayan,
Hi,
>
>> On 7 Apr 2025, at 14:18, Ayan Kumar Halder <ayankuma@amd.com> wrote:
>>
>> Hi Michal,
>>
>> On 07/04/2025 10:04, Orzel, Michal wrote:
>>> On 03/04/2025 19:12, Ayan Kumar Halder wrote:
>>>> Added a new file prepare_xen_region.inc to hold the common earlyboot MPU regions
>>>> configurations across arm64 and arm32.
>>>>
>>>> prepare_xen_region, fail_insufficient_regions() will be used by both arm32 and
>>>> arm64. Thus, they have been moved to prepare_xen_region.inc.
>>>>
>>>> enable_secondary_cpu_mm() is a stub which is moved to prepare_xen_region.inc as
>>>> SMP is currently not supported for MPU.
>>> This does not sound right. If you want a place to keep some common MPU stuff
>>> between Arm64 and Arm32, you need to come up with better name for a file. SMP
>>> has nothing to do here with preparing regions so it feels odd to have
>>> enable_secondary_cpu_mm stub there.
>> Can I rename prepare-xen-region.inc to mpu.inc ?
>>
>> Julien/Luca - any thoughts ?
> I would say we leave the SMP stuff out from the common file, at some point we could start working on the
> SMP support and maybe there would be difference between arm64 and arm32.
Do you want to duplicate enable_secondary_cpu_mm() in arm32 and arm64 ? 
I am fine with that.
>
> what about common-cpu.inc?

Sounds ok.

Michal or Julien should comment as well.

- Ayan

>
>>> Also, new files should use dashes '-' and not underscores '_'.
>> Ack
>>
>> - Ayan
>>
>>> ~Michal
>>>
> Cheers,
> Luca
>


From xen-devel-bounces@lists.xenproject.org Mon Apr 07 14:14:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 14:14:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.940210.1340054 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1nEg-0003Zx-7n; Mon, 07 Apr 2025 14:14:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 940210.1340054; Mon, 07 Apr 2025 14: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 1u1nEg-0003Zq-55; Mon, 07 Apr 2025 14:14:02 +0000
Received: by outflank-mailman (input) for mailman id 940210;
 Mon, 07 Apr 2025 14: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=tcrT=WZ=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1u1nEe-0003Zk-Vb
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 14:14:00 +0000
Received: from NAM04-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam04on2061d.outbound.protection.outlook.com
 [2a01:111:f403:2409::61d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8b756ac1-13ba-11f0-9ffb-bf95429c2676;
 Mon, 07 Apr 2025 16:13:58 +0200 (CEST)
Received: from SJ0PR03CA0108.namprd03.prod.outlook.com (2603:10b6:a03:333::23)
 by PH8PR12MB6843.namprd12.prod.outlook.com (2603:10b6:510:1ca::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.31; Mon, 7 Apr
 2025 14:13:54 +0000
Received: from MWH0EPF000989E6.namprd02.prod.outlook.com
 (2603:10b6:a03:333:cafe::bc) by SJ0PR03CA0108.outlook.office365.com
 (2603:10b6:a03:333::23) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8606.34 via Frontend Transport; Mon,
 7 Apr 2025 14:13:53 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 MWH0EPF000989E6.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.8606.22 via Frontend Transport; Mon, 7 Apr 2025 14:13:53 +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, 7 Apr
 2025 09:13:52 -0500
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, 7 Apr
 2025 09:13:52 -0500
Received: from [172.25.231.87] (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, 7 Apr 2025 09:13:51 -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: 8b756ac1-13ba-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=KJSfdH5InwuwAlcWOsmzlSrP+RfN8+jIDGRgG9cGg8TTq+zEkIfYTK859wyzlCYKqDzrMVIVP5F+2R6YuXhKX//5MpwJdhXbWsaZsnVsvaRundhnQbtD0SOnHwOoJNV3FfLZAxCsk2+vzF/xzarKbadpXZqxafUpTN93wq2tZ9xEhgaaU0Kr/jcdEbNeyPNLD/JWQEBCwVeXUR5HkTNeBu8shoROsTagIrlc+zpYlVB9os7WJpP3z1C98FQH+YfI+30tZ5MzFuL7z60OPF42wtvZoF9namFy75PH/Zn5wCpX0dLQfd9SkhGWB4OousQqzMWnGUEPjg2AE1XZbBYaZA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=CgxKzLmQhwTDPxkc6CIC8uyY+/HBU7pHXbI3dVF7efM=;
 b=YaqxT0uvAqR8OyVQkhGwCWCJCEfzWH0BYgIZpVsyoEp38zw0c4jEkwb5+/yZh+NJNMzq7EvFULi8PKqLuG40i/59Kr1m1qVFHXFC9IlRNmecfg4zVWyscqjwahBHSiv92QEdPOfxMpZYSfjCUTh2fZ1Yb4zGblQR5diVcifhqlp1e4fIA+hxmuUdbWSVkCd0MPnWK10eSkfVGOkhfeubsePkJfJ0AZdIoPs0clPC1PhdkqByBWi3uh4SlxbGR9nyKhw/BjrqOtNcd0moJqAGJ27jqV9HG4l3mM8YKg6eUtf6eIE1ADKIr6Dgy9JAcLQSwGrszHCINqS1SlE3GfpJ1g==
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=CgxKzLmQhwTDPxkc6CIC8uyY+/HBU7pHXbI3dVF7efM=;
 b=3j6t6cwzfMJPVgfed4XUNdlS6AQkPsCpkx3NnVSL4AWymTO+KyMlpUX0qGvQENRHsZGjCIoWCRevWv9sdV7q52uK73ZSOkCp3OL7xEPNhdO92RoeflDLPr6NrQcrJ1y6trTBeXE3vPid6NW88e9OII9vM/bSFFRg/ZCIYYjsdvI=
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: <99ad29b0-e57e-454e-b9b8-63b33f25ab45@amd.com>
Date: Mon, 7 Apr 2025 10:13:50 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/xen: disable CPU idle and frequency drivers for PVH
 dom0
To: Roger Pau Monne <roger.pau@citrix.com>, <xen-devel@lists.xenproject.org>,
	<linux-kernel@vger.kernel.org>
CC: Stefano Stabellini <sstabellini@kernel.org>, <Xenia.Ragiadakou@amd.com>,
	<Alejandro.GarciaVallejo@amd.com>, Juergen Gross <jgross@suse.com>, "Boris
 Ostrovsky" <boris.ostrovsky@oracle.com>, Thomas Gleixner
	<tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>, Borislav Petkov
	<bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, <x86@kernel.org>,
	"H. Peter Anvin" <hpa@zytor.com>
References: <20250407101842.67228-1-roger.pau@citrix.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <20250407101842.67228-1-roger.pau@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: MWH0EPF000989E6:EE_|PH8PR12MB6843:EE_
X-MS-Office365-Filtering-Correlation-Id: 9267ae73-b516-4847-9716-08dd75de6d9d
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|7416014|82310400026|36860700013|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?ODA2VlhoL1NiRFVoRnptWWc1aHNadkVTL29SdEVPd0RDOU5nM3NRNUpmeGlp?=
 =?utf-8?B?NWxwZXRzVlhHUFI1VnovMnRWY08zMTFlc1RYZ1J5ays5bTNrZE5IV1RSc0Mz?=
 =?utf-8?B?OVhSek14VktZa3hKM0RXaFhENjZLd09NbnV2dXBGdGRUc1FGK0tjOHZ1bHFq?=
 =?utf-8?B?dTBtMmk4bzkrMTdJSk1iS1dNOFBydXJqSWtneDJYRkRWUEtabHlpb2xmNjBG?=
 =?utf-8?B?QzkwWnY4cGRDQmFBTklmUElFdG5UUGNPN3phWTNwaWR1eWhBMlJ4OW9DcHFm?=
 =?utf-8?B?R29KejZFM3EwOWtwUG5KU2NrRlU2anpkSHJpb2w1bVV4MW1EUndIUlJacnUw?=
 =?utf-8?B?OURyN2g5RHIwTnRTTmc3ZXRQK0NOQ3RzaEtQckI2ejJqNUFuMnRlT0ZUZjhB?=
 =?utf-8?B?V0dVaU8vOTZxbVJOSlNScndGU0MzTVVSOCt3VUVhU2tDY1lPcHJWU3pCVHM3?=
 =?utf-8?B?c0Z4aUl2MVp3ZkplV0dWZWhIV3FuaWNnTDJEN01TRWtvUEM4ekhHTjdIekk2?=
 =?utf-8?B?REhaQXdteDkzL0VxOFg5NTVHWDNSN0l5Ykh3Ym1ucFhwSXNhTXRYdjlwWEZR?=
 =?utf-8?B?eFBQRnVpRFBjMzhXQ0pNOXVTQkVWMVcweTM1R1VYeXhKWkVZYTJIR2UyR3NO?=
 =?utf-8?B?NHljUjdqVWtxUUp3Y2RGYXJJN0c5UGI5cko2L2ZvdWd1RjFNa3BEekhxckd6?=
 =?utf-8?B?bWo0NWlTeUZFcjNITTdRT3ZWN2hjMXpITHNzTFh6RGtReDIveUdrQmV4UXNI?=
 =?utf-8?B?azlnaDg2U0Q0NzFjZDFxNUhxbEhGQjJmbkJIRDVBZThneGk1MlFFTmRDM3Vi?=
 =?utf-8?B?VWtMVGg0SkJYb0swcXprUTVhTEJFTUtuSGZwc0dCVkMva2NGMk54Nkgzdnlt?=
 =?utf-8?B?WE1INnZQYW96bUNFNGJVeGVJcFhIenBmR0lhbDJ0YUJ1ZWt3SmpMcytUN0pI?=
 =?utf-8?B?ZzFtSmZLTlZlL0hhNFZEWTBpV1BhUDkwVjM5OEtsRERYcVJXOXo3bitWTnNn?=
 =?utf-8?B?dkpLdCtpTTVpcHgyVld4b3FtbzRpNVdBV0ZQYllHY0RETDZFbjNCUURRRGVW?=
 =?utf-8?B?aUt4UEFia1h5SUZLcTZoN3hSMHRsR1RmaCtOcUVRc0NlMm5ZcmhqMUp5Tjhs?=
 =?utf-8?B?eEw0NTZUdUkxSzcrb1VjTmhtS285eE1wYUF5VGgzTGRzc2dOVkdPNUFLdEx4?=
 =?utf-8?B?L21ocUg3SVR0Z1RYYXZ0d0ZOcFJ0ZnhMOGdwYTRUbFBoOHJNUjJzTXNtVjV6?=
 =?utf-8?B?MTBRUHIwVkdlcXV3UWVrOWo3d0YxSDFGbGUzVmQ1YVBlSVYvbWc3RE5saFRl?=
 =?utf-8?B?ODM1Vk9vcUlHdDYxUW9RLzFKSzhrTDlsL1QyWmhaZTFON0NtYkNQczJCT2xZ?=
 =?utf-8?B?UEJCVHhMTzc2L3gyYTZMS24wSm5VL2F0enJ1NTVIL0MwYkZoT1RVNzhUdXJa?=
 =?utf-8?B?cXJpRS9ybWFTVkRYM2N6QlpzRDFsRC8wNXhlWFFtYnJzS1JPQTd2SHZGSXZ2?=
 =?utf-8?B?QmdhVlowSSs5RGlLQ2VkbGp4OWhnN05pVlZackdxcENOTUYrUDRyOExkdEJI?=
 =?utf-8?B?WjcxU1JWeDVGV1dIV1JBdUJ0OU03SDI0TU9reHRWemhlRlEzbWZPcUk5TVBV?=
 =?utf-8?B?RncweFRYeFp5c1pKQzJHbjVwQUNKTitwZEw5eEQzekxJb3dOYWU2MnpSb3Z0?=
 =?utf-8?B?NXllNWxiTWx6VGE5TjRrbWF5RHk3OXVTM3I3cjlRSUMxdldmNDBuOUQ4YTJs?=
 =?utf-8?B?aGJXNWloNFdLTEtaNmk4c3k4SGVKeXZtUkZwSjJJUmxEUTRRV2F0MGVHMmFm?=
 =?utf-8?B?ZmEwL09iajdQQW1ZQ1V0djM1N2NYaW5nM3lYeFRJSTZKVHIreUcvdWNhZ0pG?=
 =?utf-8?B?bmxIR091WkpnS2JhOG1rSTVTZUZjaVZZdWFpOW8rbVFwSG5aVVVuVmVPR3hm?=
 =?utf-8?B?Qk10UmltRDE5Y2JkV2V4YTZyT0kzbERISFlrRkdkek5RL2l0Q0x2YjQxUHFu?=
 =?utf-8?B?ZTBLeHhzekJBPT0=?=
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)(82310400026)(36860700013)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Apr 2025 14:13:53.7149
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 9267ae73-b516-4847-9716-08dd75de6d9d
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:
	MWH0EPF000989E6.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH8PR12MB6843

On 2025-04-07 06:18, Roger Pau Monne wrote:
> When running as a PVH dom0 the ACPI tables exposed to Linux are (mostly)
> the native ones, thus exposing the C and P states, that can lead to
> attachment of CPU idle and frequency drivers.  However the entity in
> control of the CPU C and P states is Xen, as dom0 doesn't have a full view
> of the system load, neither has all CPUs assigned and identity pinned.
> 
> Like it's done for classic PV guests, prevent Linux from using idle or
> frequency state drivers when running as a PVH dom0.
> 
> On an AMD EPYC 7543P system without this fix a Linux PVH dom0 will keep the
> host CPUs spinning at 100% even when dom0 is completely idle, as it's
> attempting to use the acpi_idle driver.
> 
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>

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

Thanks,
Jason


From xen-devel-bounces@lists.xenproject.org Mon Apr 07 14:21:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 14:21:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.940222.1340063 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1nLy-0006Xn-VF; Mon, 07 Apr 2025 14:21:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 940222.1340063; Mon, 07 Apr 2025 14:21: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 1u1nLy-0006Xg-Sl; Mon, 07 Apr 2025 14:21:34 +0000
Received: by outflank-mailman (input) for mailman id 940222;
 Mon, 07 Apr 2025 14:21: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=C/xl=WZ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u1nLx-0006Xa-Gu
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 14:21:33 +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 9a2ed13b-13bb-11f0-9eaa-5ba50f476ded;
 Mon, 07 Apr 2025 16:21:31 +0200 (CEST)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-43cfb6e9031so41316155e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 07 Apr 2025 07:21:31 -0700 (PDT)
Received: from [10.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-39c3020d980sm12409027f8f.61.2025.04.07.07.21.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 07 Apr 2025 07:21: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: 9a2ed13b-13bb-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744035691; x=1744640491; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=dYU1SZycQpQgTWFDk3NB6y+lOz/7ogFCvDsog6LLHUk=;
        b=D9LRlOjTZOUX0ynzbX6ExR9HokQnCwHL6qhu99tgoxy6mKi+oQPOTqGjsAZ1j4jsr2
         n4B+h6uORPVyvKMAofCwYDNvbKbDsCnU84lu+Hs4hGFZ/iJbhNO1eRcOkprNS8cypzEg
         7tliXMhqOQmEQvm1lVgg2yXQGWV/C41RxJhPw8xtjo7grSKESd++vlkYv6960hQ69Pm/
         luKLzmde//t1JBd4EaKZFe8Alp5wWIE4Y6yUQcMBhgVtBO3r83mc21DZxMLe1F0UulCb
         YsDv16pH4D4lHQdAWfx3jqYw4QNpibSs5TamC2uEqjZqiMbkSC2OpPIGQAeR+EQVklFK
         Xzfg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744035691; x=1744640491;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=dYU1SZycQpQgTWFDk3NB6y+lOz/7ogFCvDsog6LLHUk=;
        b=f68afGWDTsC0/6UYAtMCX1D+uZJlmqv/SHBfQQAGMnAbArqbAQFmYdpIvAuhWpT4a9
         0LuQ3IiSAJ1KHtgO+WvQhkESSfJmbJu8DkrumNp5rcXCCwGnijpuvwehwCbRfkyiGoUP
         5wQyHEHAFBGrd8qSBSPZ7ClB9Wf1plFVkR/j7hsrbNw4gHgGrt31fYqXIqJeKxidULU8
         iJmR2q8Ex8Z3CpJvI1ZQ6xHdl72kLzQGsHr934t1VYWXNwI8Cy4e9xcWuNF4nUUMm4KF
         s4GQYoyluUVARbaHJdHSSyNhJzNuAQJOLTeD4715hinWeGat5IxtIdNiIuiNB5AyOIYc
         555A==
X-Forwarded-Encrypted: i=1; AJvYcCXHX0mvr1qc9XwnO1GXReE29J+qZz/nuQAHEe9bJEoXT2xLA7sFdsho51lTbPciL0R+UzpbuTfA9W4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxKpLfg2Lmskd7Udr5hTMwojKOGcmtv2JyaGNXCDxbn5+DX5eYM
	wuv6dMCK/rFoo3HFtdVqxJCw4n/fedBqngbGfhwt8lEwxNXny+85Z9+GVqn6VQ==
X-Gm-Gg: ASbGncsIDKTFdp1zYh0EwFerWuCGsrFsQDykahlsbAuZvywp/TEAkxgZdyNTTABL2Jn
	CkgAFP5egocGfBTMLQZkwWN2HKDkyFKzGc7iUa7bgfhySRJCV3BbKtrYDYukI5+5dtzPgxPFlYz
	em6iBN8KaJNl68H7ZaPDJGGy2Xj9BPveKUKqsayKb6Etxh4FSXdPgTYhWnMie+dUCK8Bzs7C6fP
	f3NbElAIIzv/aD5GhBraoF9YFLnJvL1yamjL0tr+xnUpP3zjSaSFi712hVFfpsCDsEOArp0FXLS
	/BSJtH0xxDvofRnLHEBSoPITb1/p68ndlOu521SRpuMkw7KgKye4vexnF8pY2TUbsVT/5FjeqUb
	qMicVTCDMsC/4KIEXNrKoRLb9ecxxKQ==
X-Google-Smtp-Source: AGHT+IH63bjPYlRBO8KvpER9xz0GgMpc1DXF73G7Bg3fZDNw8E8QF8ODYpH3yV8LrI1VTbyxGUnCdA==
X-Received: by 2002:a05:600c:35c7:b0:43c:e7ae:4bc9 with SMTP id 5b1f17b1804b1-43ecf842969mr106511015e9.1.1744035691070;
        Mon, 07 Apr 2025 07:21:31 -0700 (PDT)
Message-ID: <667775a5-48ba-47ca-8c73-eb95c35de381@suse.com>
Date: Mon, 7 Apr 2025 16:21:29 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4] x86/domain: revisit logging in arch_domain_create()
To: dmkhn@proton.me
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, julien@xen.org,
 michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org,
 dmukhin@ford.com, xen-devel@lists.xenproject.org
References: <20250404232145.1252544-1-dmukhin@ford.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20250404232145.1252544-1-dmukhin@ford.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 05.04.2025 01:21, dmkhn@proton.me wrote:
> --- a/xen/arch/x86/domain.c
> +++ b/xen/arch/x86/domain.c
> @@ -791,13 +791,14 @@ int arch_domain_create(struct domain *d,
>      {
>          if ( !opt_allow_unsafe )
>          {
> -            printk(XENLOG_G_ERR "Xen does not allow DomU creation on this CPU"
> -                   " for security reasons.\n");
> +            printk(XENLOG_G_ERR
> +                   "%pd: cannot create domain on this CPU due to security reasons\n",
> +                   d);
>              return -EPERM;

I was about to give an ack, but here and ...

> @@ -807,16 +808,20 @@ int arch_domain_create(struct domain *d,
>  
>      if ( emflags & ~XEN_X86_EMU_ALL )
>      {
> -        printk(XENLOG_G_ERR "d%d: Invalid emulation bitmap: %#x\n",
> -               d->domain_id, emflags);
> +        printk(XENLOG_G_ERR
> +               "%pd: invalid emulation bitmap: %#x\n",
> +               d, emflags);
>          return -EINVAL;
>      }
>  
>      if ( !emulation_flags_ok(d, emflags) )
>      {
> -        printk(XENLOG_G_ERR "d%d: Xen does not allow %s domain creation "
> -               "with the current selection of emulators: %#x\n",
> -               d->domain_id, is_hvm_domain(d) ? "HVM" : "PV", emflags);
> +        printk(XENLOG_G_ERR
> +               "%pd: cannot create %s %sdomain with emulators: %#x\n",
> +               d,
> +               is_hvm_domain(d) ? "HVM" : "PV",
> +               is_hardware_domain(d) ? "hardware " : "",
> +               emflags);
>          return -EOPNOTSUPP;
>      }

... here I question the re-wording: Xen could very well create domains in
these cases. It merely refuses to for one reason or another. In the
latter case the re-wording may be kind of okay, because code elsewhere may
need updating. In the former case, however, the situation is a pretty
clear cut. It doesn't need to be the original wording, but minimally in
what you suggest it needs to be "s/cannot/will not/" or some such.

Plus a nit: In the revision log you say "shortened message text where
possible", yet then you swapped in "due to" for the prior "for" in the
former of the two cases discussed here. That's clearly longer, without
(imo) gaining us anything. Similarly it's unclear why you replaced "DomU".

Jan


From xen-devel-bounces@lists.xenproject.org Mon Apr 07 14:29:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 14:29:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.940237.1340074 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1nU0-0007BV-PI; Mon, 07 Apr 2025 14:29:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 940237.1340074; Mon, 07 Apr 2025 14:29: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 1u1nU0-0007BO-MB; Mon, 07 Apr 2025 14:29:52 +0000
Received: by outflank-mailman (input) for mailman id 940237;
 Mon, 07 Apr 2025 14:29: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=xyMQ=WZ=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1u1nTz-0007Aq-5U
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 14:29:51 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on20622.outbound.protection.outlook.com
 [2a01:111:f403:2418::622])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c2bb4e7a-13bc-11f0-9eaa-5ba50f476ded;
 Mon, 07 Apr 2025 16:29:50 +0200 (CEST)
Received: from PH8PR12MB7326.namprd12.prod.outlook.com (2603:10b6:510:216::7)
 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.8606.29; Mon, 7 Apr
 2025 14:29:46 +0000
Received: from PH8PR12MB7326.namprd12.prod.outlook.com
 ([fe80::6d76:9c33:d230:8264]) by PH8PR12MB7326.namprd12.prod.outlook.com
 ([fe80::6d76:9c33:d230:8264%5]) with mapi id 15.20.8534.045; Mon, 7 Apr 2025
 14:29: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: c2bb4e7a-13bc-11f0-9eaa-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=M1R2Tb3A0Pxft8rE4CS/r+9BhKyV4d93JcdLyGk1Xvd0tGIAETW3AvjbSfTRpCYlVM8TvHmv4clQO9jiKUfSlMRz0OoBOCGqKD8RynpSOdoP23jxn4HojFn35j1k3HArpeIfxC6yZ7LfxhTTO4gACiBr6zSqPnjr1H3j5bJeUClqL8CXtduXnd2QwCt++kphL3JyxS9jGUTmZkK+8zdqX/CUcrgfqEexBeiEKBMTy4eMoxr21GtuJ/5ywoC1hIAie519wfcKSczAkJ4mFZ/F/Y6arILAG8KHTiAbZX9dDdTfXj2WFbJ93pgig6GCaDWmSzE/19ewH6t4CejIyJhhtA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=/JTQ8GJiq3U7VNnOmcNZ7lsYzpzw9ATssqw3ax/jBbQ=;
 b=uYVYCiFAo8MYo5cUkpNHZzMevI5cjurJmNKIqjjL8noMSNb1kLCv+mqqp9ps/IsP97NIoHtUb3nnn+Bul3MdZEkA3weWZyZUxZlB22N5TWS1JCZaB0FSmKWQqn1gxQQRxlV+4dqGqXKSweDnXLUr7Bz8L+llzUit51gdxYe+Dg574io+ZlgwsEVISURQh7jBCyCJVBHTgdxX0fV3A9Eq+g33CdIHUWfKuqaQImkRWV87farwtYC5Jk3vwYvFYt8ddBU8FwbytX8sKEZMdOtGVVgcwBGBYn8PbA0ft5hIcfqB1WccTO+tjV8QYJoyXMpsr8eVC4tWK98hmo4DQfFGeA==
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=/JTQ8GJiq3U7VNnOmcNZ7lsYzpzw9ATssqw3ax/jBbQ=;
 b=G1cGpsJqf32xB6sHXtDwbHbuC4ZpwhirDg9gWqlBfCvYdrHMu12M8WVQjt9CgJiT9m+/gdvaOnP3pHmRMc56hI9JgF786boPdp7Z4NhJyNsHwN68MbaOdNXQ3D7ihhLRPJ747APlG8CowQuvu63x4jx0smCipdMNjPK0GQj2Fwo=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <a99913ea-b425-4c24-8d32-f4e2e3ab3edb@amd.com>
Date: Mon, 7 Apr 2025 15:29:42 +0100
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 1/3] xen/arm: Move some of the functions to common file
Content-Language: en-GB
To: Luca Fancellu <Luca.Fancellu@arm.com>,
 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>
References: <20250403171241.975377-1-ayan.kumar.halder@amd.com>
 <20250403171241.975377-2-ayan.kumar.halder@amd.com>
 <C6C24096-2BCC-4D09-A20E-AAB1FA923A18@arm.com>
From: Ayan Kumar Halder <ayankuma@amd.com>
In-Reply-To: <C6C24096-2BCC-4D09-A20E-AAB1FA923A18@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO6P123CA0038.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:2fe::15) To PH8PR12MB7326.namprd12.prod.outlook.com
 (2603:10b6:510:216::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: PH8PR12MB7326:EE_|SN7PR12MB7835:EE_
X-MS-Office365-Filtering-Correlation-Id: d4a61967-6baf-4366-7731-08dd75e0a56a
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?anBZRG5sbHJpZzRaRVIxSWIwNUROMlhFZjlkcEY1TXhpV2Q3MUZnTk5jb1Za?=
 =?utf-8?B?WVd0YTI5TlZxWCtSR0tiTU1mT1ZWcUxIbGpYcU9zSmp2Y2g0TVNtSEF1WWVr?=
 =?utf-8?B?MFBYaGxidEhZclZsS1ZLOUJLeFlWVlYvUXkwTW5LSTJBWWpqcnN4RU5TdFE2?=
 =?utf-8?B?TnZPNzhrLzNNMmNCaDV1cXJ6S29aa0hXVWE1S1BvakJYU0QxVWQ2bDdQS2lM?=
 =?utf-8?B?S1pIVjF2SjlKSnV5dzNyQ1A2OHYxQWdCVTd2ZkdIMk5sT0pmb1NWYnZjOU9h?=
 =?utf-8?B?MUl1ZG9BTGJGTCtxVVJFQ3pMUkZRTG1heFgwdkpPL3BmcE5NUXFTeFN0ZUNU?=
 =?utf-8?B?TUN4dTVxM2JqTzVjSngwT3k3QzFtM3ZFVlRTb1U2OENIQWZuNTJyaFprWDVl?=
 =?utf-8?B?dVZRa2ZRSzM1UEEzZ1hoRk5uTllkdlZjQUp1dnJDbnpUN0psbGdOYjlNR0tW?=
 =?utf-8?B?L0pVbjErY3lmZFJ2eGV2NFE5M0FXKzAxU0ZobDVrSWVYcC8rTHlrNm9hTmRZ?=
 =?utf-8?B?ZFgyKzFMbVg1RDJNRkhsTERaQkpwbXhUa0R5b0xpQ1ZydW9yMURzOGNZU0tl?=
 =?utf-8?B?Q1RVekNFcXpncVpKRFZlSUlVdGxvai8vWER6VFVjdDRNY2VNbDB2b3NFbEtM?=
 =?utf-8?B?cnNrV1BUUGlBczlKWm1SVDFkUFNETmJKU0l1Y2xVeXl5c095RjBsanBySkJy?=
 =?utf-8?B?VUl6YTBGd2cxdHlOM29JOVJyRkkxdGNTR2FHdi9pUWhHRG94bGt3L1Q1aWVM?=
 =?utf-8?B?L3BGWmNiUnI3VWRCMURnYTJTMHBWRHA1WDFvd0JLdWxuU08vMC9YMzBiMkJu?=
 =?utf-8?B?eHlUNnU1dVhjdTJPMHN3OEtEMEYrczBUS0pPMkYwSGFWQmJUOXNMWkdRL1hG?=
 =?utf-8?B?VTFCT0pUMlhoNXV5T2prOUVUZkxJRDBwYUUybHdLOVI0UlFGTDN6RUp5UnBI?=
 =?utf-8?B?eDhFNU0wZ1JDL0txRjM2YW9JcGhyc3VBMjllT3FQVGtpMVBXNXJJTXZ3cDNM?=
 =?utf-8?B?aG42MzhMZEM3RVNCdGQyWWR2MGRtWVA1UTZkaWZmVm9ZM1hTZnA1bERsUDM0?=
 =?utf-8?B?L21LWXpnaVpjTjNCbkpPaS9IMUtSQ3QvYXBxUTZsK2JSdUtESWVFcXdjTFBU?=
 =?utf-8?B?cFFyZFNtTy8zQjM4T2EybXc1N2NicFlYVzVWc1VlM3BoZStWdU1rVXd2bHFs?=
 =?utf-8?B?bTQwK2JQVFhMS1E5YnpzVUJCN0M3akxOZittL2I1dkV1allKK053ZXYvbUVv?=
 =?utf-8?B?V2JVTjVzSWR5RndHQ0RGNjhSMjkzZW9XNlh5T0ZsRit3VCtpamRMVkJPdEtG?=
 =?utf-8?B?NjJTQzFLemRPaFRlby9QRGZSZnpoTmI0U2JBVjhGWVpIVk5LQlZPZ2tWaUo0?=
 =?utf-8?B?ZGpjRzBCY3doUjFMNEM5WTIwUkpXOTRRb3Y4WWZpVnpuaTVSenVocFNOaWt3?=
 =?utf-8?B?MXdyREJRQjNvZUcwYkQ3N2xMeTNxYThzQTlHUEJzd2RGR1FFRzlSWG9EVWhJ?=
 =?utf-8?B?Q1JtYkVqcHpybHd0VXUzc0U0ZG04WFB2bG9zNXR5UVg2MjIrYTFHTC9pTkk4?=
 =?utf-8?B?dTVWaEJNc0ZPNmVCTVQwMmJBSXh1Z1BNSGRyRFJUZTVFTjYvMTFiemovMkZy?=
 =?utf-8?B?dEdYLzU2NjAwcVNKMHdUbGFDTmVCNGpMVlgzYzMwRjJyUHo2MG5yaitwSURh?=
 =?utf-8?B?MDFma0J2ZE80M3VDQWFORjdnRmdmSm1DMmlOcFNlcTFTd2o1MWNKMmRzN21B?=
 =?utf-8?B?ME5CMStiY0dGQVNFbmV2UittRmJsRHAvT0FneEtma2kxWG9UQ1FxTjRmUVFP?=
 =?utf-8?B?VGp6KzhlWmR0U3pZZmwzQzN0OXhDT1lUdWFDRTZ4ZE1ZdzUwUmtCaE5vN1lR?=
 =?utf-8?Q?zz9lHUWtJ7hJx?=
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?V1ZOeUZxQ3ZkVXA3NVEyNmdMTllRSlBqT3czL29Ka2Vhd3gzbkJYcEhuTDJr?=
 =?utf-8?B?bUYxb1E3Q21ZS2tkVzNrdXFDZU1CWkhyNUVocVk5ZTAwdkNiWXE2TTQycjRa?=
 =?utf-8?B?dk1Bbmh4QTN3WFJkZUd0aUZsNkIyWjZqNlVFU0ZrQmtwb1J1QXlJS2JJUmpa?=
 =?utf-8?B?VVRFZGkrWkxUT01qVXQ3clJDVkppOVF3RnVvV3VMZW9kN0k2eWNjYWxVRzFy?=
 =?utf-8?B?cU5qemE3Q2lQNEN3UWVqQVA2MkNhVVhxeEVYVTFRM1JMSG4wc1lETlNrWVFq?=
 =?utf-8?B?QzFEbHNtSVZqaTdhcEM1QzhDK3Q5a2l2dmxtYjhkbWRSS0Y1T29PN25lamRZ?=
 =?utf-8?B?ZjIvOUV2MG5jWjlCb0UweWw1Q3p4MDJ0VS9tL010MkpLSHdGWmdmakI1UXFq?=
 =?utf-8?B?STdtOEd3OHRhRjNudmhlZE9ycC9xd2RWb01weWx5N2hMSFJnSnJSblVOdVRq?=
 =?utf-8?B?NERqK0UxZ2svVkZmUEJSQlBaSUV2bklqNTFybFJoSDVYTTRjUzhyMlNTaVhi?=
 =?utf-8?B?NTh0VmtoUmNzbnI5VCttZHF0YWtIZ0h1WTV5OWJ6WWpxMFZQc2xpbmN5VXF5?=
 =?utf-8?B?SkRtdjR2K2k1cGtDenh0SXpzejUvZGpvd2xqTWt5R0NRWWFGK1p5N3VyRE9H?=
 =?utf-8?B?NTNNNStCdXlDNS9HaDVNNUZwdEhHUGoycDBRM0x2ZzRNT0Eyb2RiT3U0TDA1?=
 =?utf-8?B?Qi91ck55QXpIeStxMXFsd3Q3Q29ZQWUxT2I4aHZmNExCN1NJM0tXWlNXUkth?=
 =?utf-8?B?eVh2VWZacXkvQUY2ZlZncUpUR0tpby9kTks2RzFBNEFtaUJhaC9OY0txZ3hp?=
 =?utf-8?B?bGU1UmdkYkZuTTFiaUxzU0d4QXlOTXFiT0lRTFJnU0J3RnlFRWlnSUF4M0Nt?=
 =?utf-8?B?UTZUc1g4a0tLcERERXAvSDlkT2U2RXpyVVZ4Q01sTmhXZzhyTkJkcTJxeE1W?=
 =?utf-8?B?YkNScEU5TzdNcXhzWmc1cndid3FTY2dCTUZySlhlWXhaNncwM0RDa0x2MUpW?=
 =?utf-8?B?Y2F1akpKMjI3RVNGSjJMaVNRNFA2MUZPWGxmM2FYc1hMbnZYUTVGNTlRejdj?=
 =?utf-8?B?OGQvUDVnMWIrSFV6VUx4RkhWRkpUeUV4NHJZQTQ5Y3Jydk82RkhJSkFwbldt?=
 =?utf-8?B?bU5QZlE1eTA3VlNCdUEyYVBTbS8wOW1sM3NLbEFzUGh4L29tTUtyYjRpSnJF?=
 =?utf-8?B?UGI4K2xXY3JVSjZGVWhIeDVaQlFkT0xZSUJraVdScVd3K05VSFNBVnpFVHpS?=
 =?utf-8?B?UjU3TnhZYU1EazQrL1JDK2lPRWI4U0FjMUVTSU1tcDJscmh2UjVvS1NNTk1J?=
 =?utf-8?B?bXFjN3RIYWZUOWw0VFY3YjRTamtmK0hoa3c1RW8rVUJldFNqOGZjN3lvQVp5?=
 =?utf-8?B?ZElmT084NnorWDBFckNqMWZXaHFOUVZVQVVpR0g1N3NtakdQekhWNFk5b0Ew?=
 =?utf-8?B?c0QwbTFqUEFoVmlCSklmU0VuSEhodFhjQlZOQ3dBR1Vkb3FhdHhjYkFJK1V3?=
 =?utf-8?B?OUVwNklzcWFid0lwS2NRVXM5R2J2YnhYTmZFMEp5d21ybDdLN1o0REY4U05Z?=
 =?utf-8?B?dDMrYW5panVHRTJLQittVGdlTkRBbnRoeVZDM3ptNDJBaS9qdG5ybENCVTdk?=
 =?utf-8?B?b2FTeCs4NnpZMXdJVC95S1pFbXB1V3Fhb0J0d2RUV2dBeG5zQk43SnlCVDVu?=
 =?utf-8?B?WmZVak1IZDdpT2IyOExPcmhBZ1BmV0NoTGdIVnNtT0dxNHlhZ3FvQkdMbnRD?=
 =?utf-8?B?bThvS1p2OVVkMjY0OGJycXhuajIrUXI1aDF0eU90bkZiVlI0WXBFM2NtbnYy?=
 =?utf-8?B?U0pMZTVHaE80dVMzMGRSbjgvNEJIUTNJUGEzVzlJWFJsR2hPSURUZ01qVVVR?=
 =?utf-8?B?QUgzeWxQVnlZeVVmOVI3V1pTTTE2UWU2MklnRG01VkZwV0Y1N0ZXZE5nNWpZ?=
 =?utf-8?B?Q0hXM1lJVW4zUUpTVUNUQ0VUQVdhZW0vT2FNMEc0TkR1R1lWN1pIczhuWnBk?=
 =?utf-8?B?MFk0ZVppdnBaTmtTMEZxeXF3MS85QllKWG5ZQWE5QjlQS2V4Nmk1WCtxby9n?=
 =?utf-8?B?bmpxaUhmb1dUWGFPNllYOGpVUnMxOVFGRjNCcFF2aS9kRGVLdTNwbVl5VW12?=
 =?utf-8?Q?rqhZ75aOYbKJbgBy1oATGVk5H?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d4a61967-6baf-4366-7731-08dd75e0a56a
X-MS-Exchange-CrossTenant-AuthSource: PH8PR12MB7326.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Apr 2025 14:29:46.7494
 (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: DYReF0SJMILRRe6iHsEPjSOXUr56fKAaf16Y8brNFH0oS+kcoxfPSQdxZNVC5k2xQ6ZRdGUboCxrFNJdhHVwtQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR12MB7835

Hi Luca,

On 04/04/2025 10:06, Luca Fancellu wrote:
> Hi Ayan,
>
>> On 3 Apr 2025, at 18:12, Ayan Kumar Halder <ayan.kumar.halder@amd.com> wrote:
>>
>> Added a new file prepare_xen_region.inc to hold the common earlyboot MPU regions
>> configurations across arm64 and arm32.
>>
>> prepare_xen_region, fail_insufficient_regions() will be used by both arm32 and
>> arm64. Thus, they have been moved to prepare_xen_region.inc.
>>
>> enable_secondary_cpu_mm() is a stub which is moved to prepare_xen_region.inc as
>> SMP is currently not supported for MPU.
>>
>> *_PRBAR are moved to arm64/sysregs.h.
>> *_PRLAR are moved to prepare_xen_region.inc as they are common between arm32
>> and arm64.
>>
>> Introduce WRITE_SYSREG_ASM to write to the system registers from the common asm
>> file.
>>
>> Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
>> ---
> The split for the common code seems ok to me, but this patch is introducing an issue for the arm64 compilation,
Sorry, I moved something at the last moment without testing. :(
> I’ve done an experiment and with these changes I’m able to compile both, but feel free to ignore if it’s no what you
> had in mind.
The change looks good. However, ...
>
> diff --git a/xen/arch/arm/include/asm/arm32/sysregs.h b/xen/arch/arm/include/asm/arm32/sysregs.h
> index 22871999afb3..a90d1610a155 100644
> --- a/xen/arch/arm/include/asm/arm32/sysregs.h
> +++ b/xen/arch/arm/include/asm/arm32/sysregs.h
> @@ -20,6 +20,13 @@
>    * uses r0 as a placeholder register. */
>   #define CMD_CP32(name...)      "mcr " __stringify(CP32(r0, name)) ";"
>   
> +#define REGION_TEXT_PRBAR       0x18    /* SH=11 AP=10 XN=0 */
> +#define REGION_RO_PRBAR         0x1D    /* SH=11 AP=10 XN=1 */
> +#define REGION_DATA_PRBAR       0x19    /* SH=11 AP=00 XN=1 */
> +#define REGION_DEVICE_PRBAR     0x11    /* SH=10 AP=00 XN=1 */
> +
> +#define WRITE_SYSREG_ASM(v, name) mcr CP32(v, name)
> +
>   #ifndef __ASSEMBLY__
>   
>   /* C wrappers */
> diff --git a/xen/arch/arm/include/asm/cpregs.h b/xen/arch/arm/include/asm/cpregs.h
> index 6019a2cbdd89..b909adc102a5 100644
> --- a/xen/arch/arm/include/asm/cpregs.h
> +++ b/xen/arch/arm/include/asm/cpregs.h
> @@ -1,10 +1,6 @@
>   #ifndef __ASM_ARM_CPREGS_H
>   #define __ASM_ARM_CPREGS_H
>   
> -#ifdef CONFIG_MPU
> -#include <asm/mpu/cpregs.h>
> -#endif
> -
>   /*
>    * AArch32 Co-processor registers.
>    *
> @@ -502,6 +498,12 @@
>   #define MVFR0_EL1               MVFR0
>   #define MVFR1_EL1               MVFR1
>   #define MVFR2_EL1               MVFR2
> +#define HMPUIR                  p15,4,c0,c0,4
> +#define HPRSELR                 p15,4,c6,c2,1
> +#define PRBAR_EL2               p15,4,c6,c3,0
> +#define PRLAR_EL2               p15,4,c6,c8,1
> +#define MPUIR_EL2               HMPUIR
> +#define PRSELR_EL2              HPRSELR

Considering that there will be lots of arm32 MPU specific registers, do 
you want to move them to mpu/cpregs.h ?

That would be my style preference.

This issue does not occur with arm64 as compiler provides most of them.


Michal or Julien - thoughts ?

Rest look ok.

- Ayan

>   #endif
>   
>   #endif
> diff --git a/xen/arch/arm/include/asm/mpu/cpregs.h b/xen/arch/arm/include/asm/mpu/cpregs.h
> deleted file mode 100644
> index 66871379a53b..000000000000
> --- a/xen/arch/arm/include/asm/mpu/cpregs.h
> +++ /dev/null
> @@ -1,30 +0,0 @@
> -/* SPDX-License-Identifier: GPL-2.0-only */
> -
> -#ifndef __ASM_ARM_MPU_CPREGS_H
> -#define __ASM_ARM_MPU_CPREGS_H
> -
> -#define REGION_TEXT_PRBAR       0x18    /* SH=11 AP=10 XN=0 */
> -#define REGION_RO_PRBAR         0x1D    /* SH=11 AP=10 XN=1 */
> -#define REGION_DATA_PRBAR       0x19    /* SH=11 AP=00 XN=1 */
> -#define REGION_DEVICE_PRBAR     0x11    /* SH=10 AP=00 XN=1 */
> -
> -#define HMPUIR          p15,4,c0,c0,4
> -
> -/* CP15 CR6: MPU Protection Region Base/Limit/Select Address Register */
> -#define HPRSELR         p15,4,c6,c2,1
> -#define PRBAR_EL2       p15,4,c6,c3,0
> -#define PRLAR_EL2       p15,4,c6,c8,1
> -
> -#define MPUIR_EL2       HMPUIR
> -#define PRSELR_EL2      HPRSELR
> -
> -#define WRITE_SYSREG_ASM(v, name) mcr CP32(v, name)
> -
> -#endif /* __ASM_ARM_MPU_CPREGS_H */
> -
> -/*
> - * Local variables:
> - * mode: ASM
> - * indent-tabs-mode: nil
> - * End:
> - */
>
>
>


From xen-devel-bounces@lists.xenproject.org Mon Apr 07 14:35:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 14:35:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.940253.1340084 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1nZ0-0001kV-Dx; Mon, 07 Apr 2025 14:35:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 940253.1340084; Mon, 07 Apr 2025 14:35: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 1u1nZ0-0001kO-BE; Mon, 07 Apr 2025 14:35:02 +0000
Received: by outflank-mailman (input) for mailman id 940253;
 Mon, 07 Apr 2025 14:35: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=U9Ey=WZ=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1u1nYz-0001kI-5w
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 14:35:01 +0000
Received: from MRWPR03CU001.outbound.protection.outlook.com
 (mail-francesouthazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c207::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 747d56f6-13bd-11f0-9ffb-bf95429c2676;
 Mon, 07 Apr 2025 16:34:47 +0200 (CEST)
Received: from AM0PR02CA0184.eurprd02.prod.outlook.com (2603:10a6:20b:28e::21)
 by AM8PR08MB6548.eurprd08.prod.outlook.com (2603:10a6:20b:314::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.33; Mon, 7 Apr
 2025 14:34:45 +0000
Received: from AM4PEPF00027A69.eurprd04.prod.outlook.com
 (2603:10a6:20b:28e:cafe::17) by AM0PR02CA0184.outlook.office365.com
 (2603:10a6:20b:28e::21) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8606.33 via Frontend Transport; Mon,
 7 Apr 2025 14:34:45 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AM4PEPF00027A69.mail.protection.outlook.com (10.167.16.87) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8606.22
 via Frontend Transport; Mon, 7 Apr 2025 14:34:44 +0000
Received: from DB7PR08MB2987.eurprd08.prod.outlook.com (2603:10a6:5:1c::25) 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.8606.33; Mon, 7 Apr 2025 14:34:11 +0000
Received: from DB7PR08MB2987.eurprd08.prod.outlook.com
 ([fe80::d53f:b16d:70a5:8668]) by DB7PR08MB2987.eurprd08.prod.outlook.com
 ([fe80::d53f:b16d:70a5:8668%4]) with mapi id 15.20.8606.029; Mon, 7 Apr 2025
 14:34: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: 747d56f6-13bd-11f0-9ffb-bf95429c2676
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=b/yXmOpVw0qHiLgj/d+tqXVQ2pGOh+FniIg1rSGI4dpNh8vWRSCf8Z20XxU2lEOig9Y8QXRxudEWvdTvrowpcP74I/Q2G7v15xlQG//Zv9AbOSVpazLNHPMMfjtzjeP2/6RjYct0B64XY8WAT0WdPLqkg7hdHT9SHVBYzR3us7ZvNhCepW8s1KelOYe/NOWB4Ry5Z+CfPwgha3FYaFrCE2XXrtHZsAd/zY3jsPN+m6Oz7ciV5b86HJVvXcO7ZJ9zOqO57/ccn8IqajWEMsAC13Egd95nAKo1CA9JMnY07LCyrpKV+DBCY2sVBkMFJ7wkTuSBSQ9xmvoFON8fJ1tFxQ==
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=Vl6U9nejvTrnW9MbDHbtgqaWqhGxsOdtGYGJxwofSJ8=;
 b=txlsPjoLwmUD+nBbWOjolrGiFL3cdQd+asowkRT6ByIjqG5GeCjWFWh1BuBoEpEKrYbLaIMSHzsF3HN6y5K4GOurfTlsKU8iPlZjY/QQ+EvGYUwFvoCqU+ac6Z7lgHuGZ2+V58oGGHrAdJOpS/wwd0ID+AN3IaBWnAezwGHpRRaTQn7lzJISWcXBa1z0sQhBlolferFY752NjkDWmzxf+/VopVgpsUfxUAl1nat87UOvAS9AG8qKVmIT+LDM9bnEwvrlBJgkn1vrdbMn1KL9EtRAfotn4c5RILa555jT0W1U0RConPx8vu6H/WsJPnWTA8rZkHZf70qzKEcDn8yDPg==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=fail (sender ip is
 4.158.2.129) smtp.rcpttodomain=amd.com smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Vl6U9nejvTrnW9MbDHbtgqaWqhGxsOdtGYGJxwofSJ8=;
 b=rx8mHHILDXX5EBiG30oF06493YcNBfCOoA8sShn3KzDR9gJVh+jo0qd3HSuV9r826tee3uZDQSDP51bi+3Yv1HK6dfGPkdSOdo6gi26j6cUKimvaAg7hHH69p00rDCcDidBM38DWxoqQVFwgyXDlbYbF5a25UZLLNBdxULEjCN0=
X-MS-Exchange-Authentication-Results: spf=fail (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Fail (protection.outlook.com: domain of arm.com does not
 designate 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com;
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=NWGgiDYM+gAqIBp67RR57C9EkdPSa07JrzsgFFhL53CYPeJmVunshVcS+6MzELjWPgEEPOa98DFaNFixtqXpoB/++TBk4uMQh45sOKkPsehYIEPSaEBLQ97FB4R0llxIaPKnAnUjIsL25oV1FObPvIWL4DW/wUZTY6taZF+LQdgYs+Ye/Bju4UI0mSF48sZgoHzMVqL4PACA/b9/dKGQqZUpzc113TEkqpaC/vM0uNrFbILn3O+8f1Ezb8lREuKafakPVfo6GEoadNtSSy3RPTWIpdXCROKvnkOG327swVydgGkqdM/bMlST8G7JywuQWglicW1fyLmaHsKr89IOZQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Vl6U9nejvTrnW9MbDHbtgqaWqhGxsOdtGYGJxwofSJ8=;
 b=di8nk8+400a6iKbE8KuNCKlYRRp6JeZbKApyMWR2ivX3N5wXSHZ6jzv5Deo1vJ95b3TbMp8ExG6Ap3fJJ4cr7OMV1L8SlgpV0V98BAmtfTFve0F4LnWO6ID3olaEvXKTcQ17JQS21VQG1YAjrmH46pBT+e4oq3BUgKmvIv5Im+biCdOiQ2BNXzX3BwPhtj60tmwnRilCaewhoyF5lGyCNy41uqAyQ/5GhrIh21JdupGPX4RH5BgYxOflVFinKAVYvjvsex4N1xeeZG/rGCMVJsWkSWkSgOCynLXLo6HelTsTS9LAEZTtO7083XzFvFn+1rg8NHUdobnTGah5aE5JrA==
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=Vl6U9nejvTrnW9MbDHbtgqaWqhGxsOdtGYGJxwofSJ8=;
 b=rx8mHHILDXX5EBiG30oF06493YcNBfCOoA8sShn3KzDR9gJVh+jo0qd3HSuV9r826tee3uZDQSDP51bi+3Yv1HK6dfGPkdSOdo6gi26j6cUKimvaAg7hHH69p00rDCcDidBM38DWxoqQVFwgyXDlbYbF5a25UZLLNBdxULEjCN0=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Ayan Kumar Halder <ayankuma@amd.com>
CC: Ayan Kumar Halder <ayan.kumar.halder@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>, Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH v4 1/3] xen/arm: Move some of the functions to common file
Thread-Topic: [PATCH v4 1/3] xen/arm: Move some of the functions to common
 file
Thread-Index: AQHbpLu5pa88e8EeQkugLRqmrl+P07OTN/eAgAURkgCAAAEbAA==
Date: Mon, 7 Apr 2025 14:34:11 +0000
Message-ID: <E7EF892D-8212-485F-980A-F0D213456707@arm.com>
References: <20250403171241.975377-1-ayan.kumar.halder@amd.com>
 <20250403171241.975377-2-ayan.kumar.halder@amd.com>
 <C6C24096-2BCC-4D09-A20E-AAB1FA923A18@arm.com>
 <a99913ea-b425-4c24-8d32-f4e2e3ab3edb@amd.com>
In-Reply-To: <a99913ea-b425-4c24-8d32-f4e2e3ab3edb@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.400.131.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DB7PR08MB2987:EE_|AS4PR08MB7856:EE_|AM4PEPF00027A69:EE_|AM8PR08MB6548:EE_
X-MS-Office365-Filtering-Correlation-Id: 205e1790-0f27-41ec-f0a1-08dd75e1574a
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?NDdkbnM2UjRWaG9SU3MzVjhjQmttazZva1N6bEpQajNGMkNjZ2oxVFlGcFRQ?=
 =?utf-8?B?YklWaEZ3RE9ITFNBWlNGMkFNcDFzVFQrd2tpK2dodjVucW54MlJtK3pIOURH?=
 =?utf-8?B?b3NrWCtPMGZzampEM2h0TlR5ZzJHK3lOU1pCS3prNCs4S05sV2pidnFJSkpD?=
 =?utf-8?B?bTNUc2V5YnRoRWJFKzVZazB3K1VWS2MzZzREc1lNS21GTlM4R0tabVgwdzNX?=
 =?utf-8?B?TFNzdVBoWnlHT0R3TjU1am9mVXNkTHVNMEdCTlUxcnhtUmljL1VLOExRZExH?=
 =?utf-8?B?MTZFSi9sbFFkYTFiOC9uSE5JeDl5ZXlORXRGODBGbG84SzIzUFpIbEd2ZENZ?=
 =?utf-8?B?a2lOSVhIQXZpV09FRVVUd3VEeFVNMyt2Vm04blJjVjd0cVNSZHREMGNXNndT?=
 =?utf-8?B?MmlMN2Q1cjh1cEp6czlsRnU0MlFnQU1YMzF2Z1pueDJLZmdqYzJiczR1QW9L?=
 =?utf-8?B?SEVDQzBIa3JScXpSMXhzNk1vYnJDc2NIWWdMOWRyNXlXV3V2YTgxUDJzclUx?=
 =?utf-8?B?amRMdTBMQUhtbDB6UkJ5L3lVTTdlK1dIbEJHSTYvMU1rdzJnY3hZUVN2bmNu?=
 =?utf-8?B?NlRRV3E0Y3VyUDJQNTBnL0RxdHFtRGVuOHVETGJnT0dKdEhaSll5ZzRSQ3B3?=
 =?utf-8?B?Z1ZHaW5jZkp1bGhhenh1V05MYklQVGNhNEd3aGxCQW1Iei9YdmttdzZFVHMx?=
 =?utf-8?B?andRSGswRjgwNlY5cDlML1czVmpWRWQvQWtoWEgyZGpEMkIwRngybDNPOGMx?=
 =?utf-8?B?VFJmSkVGQXZyOVB2K0IvUkMva3UvNjJYbWw5blo1d0FvTjFyeFhKbmhjaWFJ?=
 =?utf-8?B?YzF5U3JsdjNWUTR4VUhkUGt5dUFhNHA1TC9qK0loaHZaZVk3dGlveTd5L0Rv?=
 =?utf-8?B?clFsQ25yV1M5VnlBTVRNaVlqYURvZHNmNm9ndGs0TTl5QTA2WVdqd2x5akpM?=
 =?utf-8?B?VHpTdng1eklNZkI3RWp6MlQ3K2o1TmZUWXJEUzRKSG5RMi91UGhRQXRMMHhm?=
 =?utf-8?B?MkV6NE9JaENZQk4rdkRtRVFOWDBmRWVKTTkwK2ljUzNMdnpsblRJbUcxZmFa?=
 =?utf-8?B?NjMreEYwRDUxMmVnWkdvZ2QwY2luR2FFbnpnbHRURWhQMXhzbStPaFJibGkr?=
 =?utf-8?B?MWk1RTMwUlBZN0YyRmxwNUhYbW55MkNrNXVJK29Jd0pFa2wzVGNxOUEyTWZU?=
 =?utf-8?B?elRLWENCdllFdDhUUUNZV0JSVGJ6WjE2S3g4L0NpV0YxVmNTTGpkZ2Vqd2d0?=
 =?utf-8?B?NFR3bnNGazFJZnl5Tk83Y29mclhCbi81QkRMUmF6M1Y2ZEs4VThaQytBWGY0?=
 =?utf-8?B?VzNhQzYwcGkrMTRSc1hRWXkvaUNPdTA4OTJrY3dIL3gySVBHS2wvZUhqUlh2?=
 =?utf-8?B?c3BjaERZem1EeVhkZEFhK25XZEdmQnR1SlUwSFdBeVgxbWROU0dKWFFTS2Jq?=
 =?utf-8?B?M1BSdnl2NklDSVR1Y1JaWTNCM1BIR2QyRy9sbEI1a2tGWVROTGd5NE1LTW1U?=
 =?utf-8?B?ekxCK0NTMFR1dVBidHVITGltbFArMEJqSWlDVlN6a3pKSmp5QnpXWTV0UFBI?=
 =?utf-8?B?ZlN3RDV1b2sxcGNqS3NEUHZCR3Era2N1Uk1XSjJaL3JaNHRvaHVzUVlGVTIr?=
 =?utf-8?B?RE1DWGw2Zmg0dXYwenBnNE1CRC8reWtzZHJWTkFNaGJ3cnliZ004TnJTNEhE?=
 =?utf-8?B?SGdHeERQTGp5R09GQjZPdDhjRUpEdmFINlpGcDNHYVVYYlR0bkx2eDk2ZzlO?=
 =?utf-8?B?Z1VGUjcyQzY1ZEpBenh2R2NJQXUvR3R2OVRpazZYV1FMbWQzaEd6bzFLNEQr?=
 =?utf-8?B?bzJjSkZRMkhwTk14SUhmVnBFUk5pYzcvSTliRCtveGxORUw3QWNCcDV4elNL?=
 =?utf-8?B?NmptQklzYkZwWE5aME5uVzRRM1M0T0kvSUlDaTVxR0pvUW9WdGZHNG44U0pZ?=
 =?utf-8?Q?5FBQtaMP8LHxVvsircQzmtxttRqxspr6?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB7PR08MB2987.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: <874B2B56FE988042BB3DD2E86F7A88E7@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS4PR08MB7856
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AM4PEPF00027A69.eurprd04.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	d23505d2-1e0d-4cbc-1227-08dd75e14337
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|36860700013|35042699022|1800799024|14060799003|82310400026|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?U3M1SjVMZlVYNTFaT0dYM0txbVMzektQa050VmZuSklSMDdadmhrYnlvSVFQ?=
 =?utf-8?B?Q0FuUWNMSUpzSDZ3aDFHRFVVUE10cHVOWGNBcytwZ3huNCtvTmFqbnZqYVhS?=
 =?utf-8?B?b0JHck9rSDlHalFaVDlDTDNZZjVqaUxkZm9kNGxnZlE4TVk5elpaNkQvUy9p?=
 =?utf-8?B?YWgyQ3pZdXlrVzViSGN5L21kQXc1cEZFR0thNml6dk9lU0VEQ2x6bkI1S0FZ?=
 =?utf-8?B?QTRYa3MxclhFbGphYU8rYnk1eE44QlRQNEoxOUw3VGtaUXhDRC9lTTJ5aG83?=
 =?utf-8?B?Q0tXTGVUUDV0Y0hKcUt2aDI1TEdnYy9PRlNFeDMramlLdHhmUjNNa3BRM2l6?=
 =?utf-8?B?S3JCNC9MM21ma1ducHlrdXoxWWFqZk13R1RFOWZndncyYmFRMzZidDdhazMy?=
 =?utf-8?B?Y3psWGFFSnlDaU1QR1loQm5JK1U1Zm9JUm9oTTg4U2ZvalVXRWdIdUhycE45?=
 =?utf-8?B?N2dqT1R5bDl3dzBPR2pYZDRmdmJSYW43OURCaFpoV3M0dVVuWk1RcVQ1TGs3?=
 =?utf-8?B?ZFRBOENlTDVmZ1NFNEdOU29kb2tUd1FKdnZyMUdQSUdTS25SaVBpQzJ1MjNr?=
 =?utf-8?B?dzE4anQ1bVJzZWcwNUtmWnI4SjlFbFV6T0RpNm0zK3F2emlPbDZSd0pDSUNw?=
 =?utf-8?B?cEpZVDM0VnFBRHcwN1FBODlQMmlQUU5pUlBUMnVNSXBzQWNRa1FtUjFzUDIx?=
 =?utf-8?B?M3RuUEUxdVFUbGlSQ201anQvWEd4QWI0angyRVRkREtIc2FqbFVTNFRDdTRV?=
 =?utf-8?B?c1NvNTM2ZVVXZ2FVT0k5eW1oT2Y0UklKdFVkS1BqSVJiNUlCNENNM2FpVVZr?=
 =?utf-8?B?ZWE4YmtxLzZXYzNJK3ZHSmJRZ3FwTUc1SHNpelVsSFVpKzFOSENhT3FVKzlF?=
 =?utf-8?B?R1FXTVh6dVR1QjQvQmxZTlBPUmtIRE81eXRMazFHWGhLS1U4dnkzSzlTNEoy?=
 =?utf-8?B?SkVOU3J2SHZDUER5aFhOUE53QTJvUkNiTmMvL2RBcTAwL1A3U0hiRDRjckdz?=
 =?utf-8?B?cERlbDNLeExyZUdQV2l5MERkRXozL2RwT2QzNXpvL0ZGbTdmaXRqNXBCb1Zi?=
 =?utf-8?B?Y25ERDVjZjExYVh4c3g0L1BXTVNMNDVJSUZYRFloUXhRcXpJSmNhRnlzWkpo?=
 =?utf-8?B?cmNRTGpRVjJ3eXlXaGczSUpKZDNNY3ZSYXlvZzNlOWV3UlpPRjBiYjh4YUM1?=
 =?utf-8?B?Y3JWKzArWWZ6U2V0dTlkalpHV3BydStEVXFUWGl1cmZJQzFqMFIxcEVldGZL?=
 =?utf-8?B?Q1FaT3F2M3E3ZVZjSFRKdUlvbk1Dc3FCdmFhZmJORTJaUlZiTHJxcFlsbk5F?=
 =?utf-8?B?RHJoTjJIWVRRdlNkT2wxdms0bkY1T3U3MWJCaTJsUEJiNjRJcElFNTcxZEpL?=
 =?utf-8?B?L05SSmphYkJjT1hjSGdRYXFDV2ovZzRHVUwvTU41OHBGODFJK3crVVY3bncy?=
 =?utf-8?B?amZNY3dpWWpYNnRndjRoSVlpZ0tSVU1BdTdtMDZCYzc2ZWM0Sjc4blA4cXhC?=
 =?utf-8?B?TEMzbE5sTDVyRUpCU05DSmgvbVdnRUo1NHltNzZWckk1WDZkenoxZjFHZnpj?=
 =?utf-8?B?cm5oSHRianZuRHJRcnN6RTh0L2lpY3V3UkFuYnQ0UTFCQmR4cnQ4alRGUW5D?=
 =?utf-8?B?ZVUrNEsyVnJuSXRhaHYzNkxtQjh4eG5NREdwS3ZIb1p0TTZ2WldqOWt4ZWJp?=
 =?utf-8?B?bUhTY2MyMElHYnBpR2tER21vVFljN1pNb2tRek5PUkRDTlpweFdNQ0V0RFRH?=
 =?utf-8?B?TmtzdWZJdmlnLzlyckFpcU1NeGF4eFlNZ2ZvLzlUZUt5TG1JR2MzZGlGNmtI?=
 =?utf-8?B?Mk1MM0tZTTVGaS9zMXhlNDVZSkdneWl1MzZqdTl6M2JTR0lUL0ZLRmpZdC9j?=
 =?utf-8?B?WHZqVU9YUkd4Smo0QjlTZDJVSDFHUUFORWt5MmJvdDh3NTBrME9OWitKMDQ3?=
 =?utf-8?B?cFVMTG5jU0xMa3pyVkV4UDFjM2Z1MjJEQ2JmbGpPaTBrMDZyTDIxcUdKOE5F?=
 =?utf-8?B?SDRaVTl3elhzdENUNE1XWG9wMWVwQXNXMHRhRGs5eDFYOHUwZk5vQzFOM0xs?=
 =?utf-8?Q?0uIYuW?=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(36860700013)(35042699022)(1800799024)(14060799003)(82310400026)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Apr 2025 14:34:44.8317
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 205e1790-0f27-41ec-f0a1-08dd75e1574a
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AM4PEPF00027A69.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM8PR08MB6548

SGkgQXlhbiwNCg0KDQo+IE9uIDcgQXByIDIwMjUsIGF0IDE1OjI5LCBBeWFuIEt1bWFyIEhhbGRl
ciA8YXlhbmt1bWFAYW1kLmNvbT4gd3JvdGU6DQo+IA0KPiBIaSBMdWNhLA0KPiANCj4gT24gMDQv
MDQvMjAyNSAxMDowNiwgTHVjYSBGYW5jZWxsdSB3cm90ZToNCj4+IEhpIEF5YW4sDQo+PiANCj4+
PiBPbiAzIEFwciAyMDI1LCBhdCAxODoxMiwgQXlhbiBLdW1hciBIYWxkZXIgPGF5YW4ua3VtYXIu
aGFsZGVyQGFtZC5jb20+IHdyb3RlOg0KPj4+IA0KPj4+IEFkZGVkIGEgbmV3IGZpbGUgcHJlcGFy
ZV94ZW5fcmVnaW9uLmluYyB0byBob2xkIHRoZSBjb21tb24gZWFybHlib290IE1QVSByZWdpb25z
DQo+Pj4gY29uZmlndXJhdGlvbnMgYWNyb3NzIGFybTY0IGFuZCBhcm0zMi4NCj4+PiANCj4+PiBw
cmVwYXJlX3hlbl9yZWdpb24sIGZhaWxfaW5zdWZmaWNpZW50X3JlZ2lvbnMoKSB3aWxsIGJlIHVz
ZWQgYnkgYm90aCBhcm0zMiBhbmQNCj4+PiBhcm02NC4gVGh1cywgdGhleSBoYXZlIGJlZW4gbW92
ZWQgdG8gcHJlcGFyZV94ZW5fcmVnaW9uLmluYy4NCj4+PiANCj4+PiBlbmFibGVfc2Vjb25kYXJ5
X2NwdV9tbSgpIGlzIGEgc3R1YiB3aGljaCBpcyBtb3ZlZCB0byBwcmVwYXJlX3hlbl9yZWdpb24u
aW5jIGFzDQo+Pj4gU01QIGlzIGN1cnJlbnRseSBub3Qgc3VwcG9ydGVkIGZvciBNUFUuDQo+Pj4g
DQo+Pj4gKl9QUkJBUiBhcmUgbW92ZWQgdG8gYXJtNjQvc3lzcmVncy5oLg0KPj4+ICpfUFJMQVIg
YXJlIG1vdmVkIHRvIHByZXBhcmVfeGVuX3JlZ2lvbi5pbmMgYXMgdGhleSBhcmUgY29tbW9uIGJl
dHdlZW4gYXJtMzINCj4+PiBhbmQgYXJtNjQuDQo+Pj4gDQo+Pj4gSW50cm9kdWNlIFdSSVRFX1NZ
U1JFR19BU00gdG8gd3JpdGUgdG8gdGhlIHN5c3RlbSByZWdpc3RlcnMgZnJvbSB0aGUgY29tbW9u
IGFzbQ0KPj4+IGZpbGUuDQo+Pj4gDQo+Pj4gU2lnbmVkLW9mZi1ieTogQXlhbiBLdW1hciBIYWxk
ZXIgPGF5YW4ua3VtYXIuaGFsZGVyQGFtZC5jb20+DQo+Pj4gLS0tDQo+PiBUaGUgc3BsaXQgZm9y
IHRoZSBjb21tb24gY29kZSBzZWVtcyBvayB0byBtZSwgYnV0IHRoaXMgcGF0Y2ggaXMgaW50cm9k
dWNpbmcgYW4gaXNzdWUgZm9yIHRoZSBhcm02NCBjb21waWxhdGlvbiwNCj4gU29ycnksIEkgbW92
ZWQgc29tZXRoaW5nIGF0IHRoZSBsYXN0IG1vbWVudCB3aXRob3V0IHRlc3RpbmcuIDooDQo+PiBJ
4oCZdmUgZG9uZSBhbiBleHBlcmltZW50IGFuZCB3aXRoIHRoZXNlIGNoYW5nZXMgSeKAmW0gYWJs
ZSB0byBjb21waWxlIGJvdGgsIGJ1dCBmZWVsIGZyZWUgdG8gaWdub3JlIGlmIGl04oCZcyBubyB3
aGF0IHlvdQ0KPj4gaGFkIGluIG1pbmQuDQo+IFRoZSBjaGFuZ2UgbG9va3MgZ29vZC4gSG93ZXZl
ciwgLi4uDQo+PiANCj4+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vYXJt
MzIvc3lzcmVncy5oIGIveGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL2FybTMyL3N5c3JlZ3MuaA0K
Pj4gaW5kZXggMjI4NzE5OTlhZmIzLi5hOTBkMTYxMGExNTUgMTAwNjQ0DQo+PiAtLS0gYS94ZW4v
YXJjaC9hcm0vaW5jbHVkZS9hc20vYXJtMzIvc3lzcmVncy5oDQo+PiArKysgYi94ZW4vYXJjaC9h
cm0vaW5jbHVkZS9hc20vYXJtMzIvc3lzcmVncy5oDQo+PiBAQCAtMjAsNiArMjAsMTMgQEANCj4+
ICAgKiB1c2VzIHIwIGFzIGEgcGxhY2Vob2xkZXIgcmVnaXN0ZXIuICovDQo+PiAgI2RlZmluZSBD
TURfQ1AzMihuYW1lLi4uKSAgICAgICJtY3IgIiBfX3N0cmluZ2lmeShDUDMyKHIwLCBuYW1lKSkg
IjsiDQo+PiAgKyNkZWZpbmUgUkVHSU9OX1RFWFRfUFJCQVIgICAgICAgMHgxOCAgICAvKiBTSD0x
MSBBUD0xMCBYTj0wICovDQo+PiArI2RlZmluZSBSRUdJT05fUk9fUFJCQVIgICAgICAgICAweDFE
ICAgIC8qIFNIPTExIEFQPTEwIFhOPTEgKi8NCj4+ICsjZGVmaW5lIFJFR0lPTl9EQVRBX1BSQkFS
ICAgICAgIDB4MTkgICAgLyogU0g9MTEgQVA9MDAgWE49MSAqLw0KPj4gKyNkZWZpbmUgUkVHSU9O
X0RFVklDRV9QUkJBUiAgICAgMHgxMSAgICAvKiBTSD0xMCBBUD0wMCBYTj0xICovDQo+PiArDQo+
PiArI2RlZmluZSBXUklURV9TWVNSRUdfQVNNKHYsIG5hbWUpIG1jciBDUDMyKHYsIG5hbWUpDQo+
PiArDQo+PiAgI2lmbmRlZiBfX0FTU0VNQkxZX18NCj4+ICAgIC8qIEMgd3JhcHBlcnMgKi8NCj4+
IGRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vY3ByZWdzLmggYi94ZW4vYXJj
aC9hcm0vaW5jbHVkZS9hc20vY3ByZWdzLmgNCj4+IGluZGV4IDYwMTlhMmNiZGQ4OS4uYjkwOWFk
YzEwMmE1IDEwMDY0NA0KPj4gLS0tIGEveGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL2NwcmVncy5o
DQo+PiArKysgYi94ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vY3ByZWdzLmgNCj4+IEBAIC0xLDEw
ICsxLDYgQEANCj4+ICAjaWZuZGVmIF9fQVNNX0FSTV9DUFJFR1NfSA0KPj4gICNkZWZpbmUgX19B
U01fQVJNX0NQUkVHU19IDQo+PiAgLSNpZmRlZiBDT05GSUdfTVBVDQo+PiAtI2luY2x1ZGUgPGFz
bS9tcHUvY3ByZWdzLmg+DQo+PiAtI2VuZGlmDQo+PiAtDQo+PiAgLyoNCj4+ICAgKiBBQXJjaDMy
IENvLXByb2Nlc3NvciByZWdpc3RlcnMuDQo+PiAgICoNCj4+IEBAIC01MDIsNiArNDk4LDEyIEBA
DQo+PiAgI2RlZmluZSBNVkZSMF9FTDEgICAgICAgICAgICAgICBNVkZSMA0KPj4gICNkZWZpbmUg
TVZGUjFfRUwxICAgICAgICAgICAgICAgTVZGUjENCj4+ICAjZGVmaW5lIE1WRlIyX0VMMSAgICAg
ICAgICAgICAgIE1WRlIyDQo+PiArI2RlZmluZSBITVBVSVIgICAgICAgICAgICAgICAgICBwMTUs
NCxjMCxjMCw0DQo+PiArI2RlZmluZSBIUFJTRUxSICAgICAgICAgICAgICAgICBwMTUsNCxjNixj
MiwxDQo+PiArI2RlZmluZSBQUkJBUl9FTDIgICAgICAgICAgICAgICBwMTUsNCxjNixjMywwDQo+
PiArI2RlZmluZSBQUkxBUl9FTDIgICAgICAgICAgICAgICBwMTUsNCxjNixjOCwxDQo+PiArI2Rl
ZmluZSBNUFVJUl9FTDIgICAgICAgICAgICAgICBITVBVSVINCj4+ICsjZGVmaW5lIFBSU0VMUl9F
TDIgICAgICAgICAgICAgIEhQUlNFTFINCj4gDQo+IENvbnNpZGVyaW5nIHRoYXQgdGhlcmUgd2ls
bCBiZSBsb3RzIG9mIGFybTMyIE1QVSBzcGVjaWZpYyByZWdpc3RlcnMsIGRvIHlvdSB3YW50IHRv
IG1vdmUgdGhlbSB0byBtcHUvY3ByZWdzLmggPw0KPiANCj4gVGhhdCB3b3VsZCBiZSBteSBzdHls
ZSBwcmVmZXJlbmNlLg0KDQpJIGRvbuKAmXQgaGF2ZSBhbnkgc3Ryb25nIG9waW5pb24gc28gaXTi
gJlzIGZpbmUgaWYgeW91IHdhbnQgdGhlbSBpbiBjcHJlZ3MuaC4NCg0KQ2hlZXJzLA0KTHVjYQ0K
DQo=


From xen-devel-bounces@lists.xenproject.org Mon Apr 07 14:50:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 14:50:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.940266.1340093 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1nnp-0005gW-J0; Mon, 07 Apr 2025 14:50:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 940266.1340093; Mon, 07 Apr 2025 14:50:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1nnp-0005gP-Fy; Mon, 07 Apr 2025 14:50:21 +0000
Received: by outflank-mailman (input) for mailman id 940266;
 Mon, 07 Apr 2025 14:50:20 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ZxXC=WZ=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u1nno-0005gJ-1j
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 14:50:20 +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 9e43ae38-13bf-11f0-9ffb-bf95429c2676;
 Mon, 07 Apr 2025 16:50:16 +0200 (CEST)
Received: by mail-wr1-x42a.google.com with SMTP id
 ffacd0b85a97d-399749152b4so2425678f8f.3
 for <xen-devel@lists.xenproject.org>; Mon, 07 Apr 2025 07:50:16 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39c301b6321sm12084818f8f.44.2025.04.07.07.50.15
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 07 Apr 2025 07:50: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: 9e43ae38-13bf-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744037416; x=1744642216; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=LQKnYNO9DqqwE3WE/HJDHtu5sw691PY9g7QSQR+6Ogs=;
        b=TbXM7uU1q8aZsx00USwjgCM/yI/L7FEFKhR5Mmi8QZPWL4LhRE1fe6idY9tImgfql1
         QfS49Lq4WgQNfzanB/ivGLgQu6WsSi/alwts9goT1QdcQgPXCVSMKhxa+ItEKPQYhlBu
         bJIj2FxsisvlKeFCBW5lq0roGLORC9z+mwaXI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744037416; x=1744642216;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=LQKnYNO9DqqwE3WE/HJDHtu5sw691PY9g7QSQR+6Ogs=;
        b=cSmQSZVrUmifFlyTRJEyh3lbkzWROmKupC8rFQW5M5bInV88wL5QWF2AXBR26p4pOp
         nDPNkjzB5MLeo5G7V0gB9v1+kFKRGeb29EDVFaMttkuuwCOVcwF+DoIU2sJwc1Ubmsm3
         W5UrGyc2wuBndD1Av3iDpgTRIpW+OTyRy3s3qzMgah2VygJo7ZpoTOzLnYr3+04y+oVo
         dFq011gmwXBCYtddrcv6IYc1FpvUyvL7rPKuN5TdierTKb8pjo+k5Bw32YYX1k8s2tYJ
         4KuIqbp3i/eI1+42dZqV/0btgiG0/tpyfTwJ2+/uzYzrN4Vxcg12s1MziNJOpyEPyMMk
         qtEQ==
X-Forwarded-Encrypted: i=1; AJvYcCXDvNSOmPDOhR09vmCRnnbl7JbMTXUWB/yco4yIq/z4xIxPOlhdZ79roXHZr5RTeIRe87m3V7AWRJk=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz9370mhKbFme/RgjEEv4K1FUIkHWik5MOAxCv9huBedai75cKD
	5NhDPjXPR/QJb1GWksOW3/uWKpXikyaL2E4cLTuy/3qRhnDnY/Dfn3PTML1lIUA=
X-Gm-Gg: ASbGnctLxTyvwsQqPtsc1DqVVfbzawsdfpZmJ9eOtgaw0FfGPwkHzXJhT2aSUHEA3Ir
	Co7ejLxpnCVcgVkr2IIWhxdHapUBV6H2H9Fj3JtQu1c6Q0slhbQy2HfWlCUJi9i+RW8gZ2EvQEf
	j+4HuBBWfxheobbxLcx7NakOk0Yq9qVYhfQU1038W/UCU8xezUKki8BuDV8P80ULsU0I/Wbii9m
	jEHUo2HTCMLkM8/wucWd7v6EYU1kneVkoV1MVXfj/SeoNnrwf/aY58BFamJJI4+tPM2uFw10XSa
	A7DVnshdI7Pmrb2gsrEWnXYhvRddyI0VpgHZrUuZ05FVtvqn74Bc+ydXwzK4Y4NfYMZxzZPbOtP
	HmKN22/DNGw==
X-Google-Smtp-Source: AGHT+IFKJENZ0ZFuShK4V0sEwMlIOR2q7w+55JFXsGQt3VV9UE3tzPLSyo4JMXOAqR19pri62vOOFA==
X-Received: by 2002:a05:6000:40d9:b0:39c:1257:feb9 with SMTP id ffacd0b85a97d-39cba980edamr10495566f8f.57.1744037415908;
        Mon, 07 Apr 2025 07:50:15 -0700 (PDT)
Message-ID: <00df5854-0ef6-459e-9cb7-978a9633fc7a@citrix.com>
Date: Mon, 7 Apr 2025 15:50:14 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/mem-sharing: short-circuit p2m_is_shared() when
 MEM_SHARING=n
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>,
 Tamas K Lengyel <tamas@tklengyel.com>
References: <5a261173-d225-44fc-9078-4030ba11cfd8@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: <5a261173-d225-44fc-9078-4030ba11cfd8@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 03/04/2025 9:41 am, Jan Beulich wrote:
> Some of the uses of dom_cow aren't easily DCE-able (without extra
> #ifdef-ary), and hence it being constantly NULL when MEM_SHARING=n
> misguides Coverity into thinking that there may be a NULL deref in
>
>         if ( p2m_is_shared(t) )
>             d = dom_cow;
>
>         if ( get_page(page, d) )
>             return page;
>
> (in get_page_from_mfn_and_type()). Help the situation by making
> p2m_is_shared() be compile-time false when MEM_SHARING=n, thus also
> permitting the compiler to DCE some other code.
>
> Note that p2m_is_sharable() isn't used outside of mem_sharing.c, and
> hence P2M_SHARABLE_TYPES can simply be left undefined when
> MEM_SHARING=n.
>
> Coverity ID: 1645573
> Fixes: 79d91e178a1a ("dom_cow is needed for mem-sharing only")
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

We'll be swapping this for a different issue, but least "logical and
with 0" is easier to filter.

> ---
> Might be nice to also eliminate p2m_ram_shared (and for MEM_PAGING=n
> also the three paging types) entirely from such builds, to eliminate the
> risk of accidental use. Yet that would apparently also come at the price
> of more #ifdef-ary. Opinions?

Hard to say without seeing how it looks.  I wouldn't worry for now.

>
> --- a/xen/arch/x86/include/asm/p2m.h
> +++ b/xen/arch/x86/include/asm/p2m.h
> @@ -136,11 +136,16 @@ typedef unsigned int p2m_query_t;
>  #endif
>  
>  /* Shared types */
> +#ifdef CONFIG_MEM_SHARING
>  /* XXX: Sharable types could include p2m_ram_ro too, but we would need to
>   * reinit the type correctly after fault */
>  #define P2M_SHARABLE_TYPES (p2m_to_mask(p2m_ram_rw) \
>                              | p2m_to_mask(p2m_ram_logdirty) )
>  #define P2M_SHARED_TYPES   (p2m_to_mask(p2m_ram_shared))
> +#else
> +/* P2M_SHARABLE_TYPES deliberately not provided. */
> +#define P2M_SHARED_TYPES 0

You need P2M_SHARABLE_TYPES too, or p2m_is_sharable() will start
becoming a syntax error.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Apr 07 14:55:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 14:55:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.940279.1340104 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1nsY-0007HN-2x; Mon, 07 Apr 2025 14:55:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 940279.1340104; Mon, 07 Apr 2025 14: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 1u1nsY-0007HG-0I; Mon, 07 Apr 2025 14:55:14 +0000
Received: by outflank-mailman (input) for mailman id 940279;
 Mon, 07 Apr 2025 14: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=LsCM=WZ=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1u1nsW-0007H9-Ho
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 14:55:12 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on20610.outbound.protection.outlook.com
 [2a01:111:f403:2418::610])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4c8c39bd-13c0-11f0-9eaa-5ba50f476ded;
 Mon, 07 Apr 2025 16:55:09 +0200 (CEST)
Received: from DM4PR12MB5277.namprd12.prod.outlook.com (2603:10b6:5:390::7) by
 SJ5PPFEB07C8E34.namprd12.prod.outlook.com (2603:10b6:a0f:fc02::9a8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.33; Mon, 7 Apr
 2025 14:55:06 +0000
Received: from DM4PR12MB5277.namprd12.prod.outlook.com
 ([fe80::9ab:5367:ba51:af6e]) by DM4PR12MB5277.namprd12.prod.outlook.com
 ([fe80::9ab:5367:ba51:af6e%5]) with mapi id 15.20.8606.033; Mon, 7 Apr 2025
 14:55: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: 4c8c39bd-13c0-11f0-9eaa-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ktTA9n74uMDs18plg4sd/ARFWJwYPOAHutjq0c9+H3oIjC32KnwYZ/LuJy9SelpEyOKyTv1pcqbRuPzzaJ/sk1/or5Y2PmJcoKWEW9Cp0ch/UoJ+rzNokgmHt48vtO9ElOwgqc92YT39C14H+9w5i7tj3+HU45Z3Tv6KJ7Th9oAuBbg8rmuJc32gDkEh6GpIfLayF2+Mj9BPKv9l2EUqS9xTo0RQ5B7ALFV64AxgddYXmgCxIi4RUf4OUKXBbhe1MP+ztw/1xZHsAZJJnJv+eOiYrZNlWOc1QQgshE+UkibY0K+JdfWPCEN1DwJASexO6RUDZ+lyjN74e0jA3nq5gQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=5rEJ+iPxXAe42dA7L7BcAV0Z4z1NmDsa561fHV6Pp0w=;
 b=NzgKmwY+vaq56tHC1qIT8f1bz0HCWUospGh0h3jIj5nVtjcQ/O+yb0UFI+aTutcb45n59oUiy/Sw9mzgfCSb42z7PzviqLDJoDmL6UpHNQKDP4Lr1iVesaqqIhVjZf0IA2EvJYqGM0JeqAk1loNHKkHzawDd7qaVUEybMn/yPoN0ZeW5G8HoEXSfOteaj2K1SVlKwFJ/pb8kIjhD2gNIMqOro8gFwN8Qf363dPKkiSRPpl+JUJSseEFKILWdulHDIbcLR6UGyLhwyDs4LLfAkuMYURDfu5UCcy6jkAyWsJV9Rv/M/PvzLK+X2iGsah2X70Vh75BuyaU2n71PwZ1YGA==
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=5rEJ+iPxXAe42dA7L7BcAV0Z4z1NmDsa561fHV6Pp0w=;
 b=IpcOW1pm0ubgVLHvZc+Lm4pjIMqp7OM/frb+cdrip6W61ustiEuekrfp0rh3PQ6oLenvnWDgw9ww0oNW3O9us/Rf7HGUjYaiVltncIbwlvEmGHm05ilZBIncJX8PIk7bJ61qez9ep3UKAcSJXebZZiZetgXPUvK4N19Rfqe0rXU=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <4ae55251-38ed-461b-ab7a-1d1bce1f01ab@amd.com>
Date: Mon, 7 Apr 2025 16:55:01 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 1/3] xen/arm: Move some of the functions to common file
To: Ayan Kumar Halder <ayankuma@amd.com>,
 Luca Fancellu <Luca.Fancellu@arm.com>
Cc: Ayan Kumar Halder <ayan.kumar.halder@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>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <20250403171241.975377-1-ayan.kumar.halder@amd.com>
 <20250403171241.975377-2-ayan.kumar.halder@amd.com>
 <45d47205-409c-492a-9841-3b162c05ec09@amd.com>
 <0ed34b41-0cf8-4bab-9304-d6c3f2ec276d@amd.com>
 <8C708752-ADB1-4904-ACCF-FDDAD965FAE3@arm.com>
 <4a88cea0-83bc-40ab-bd95-4acd2ce4ede5@amd.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <4a88cea0-83bc-40ab-bd95-4acd2ce4ede5@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR5P281CA0013.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:f2::6) To DM4PR12MB5277.namprd12.prod.outlook.com
 (2603:10b6:5:390::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DM4PR12MB5277:EE_|SJ5PPFEB07C8E34:EE_
X-MS-Office365-Filtering-Correlation-Id: 848b5035-3660-489a-e334-08dd75e42ec0
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?aUZ0aEttWTZDRDM4SWZQZkdGbDFqQ010SFlGYTgxNEp1SnBJY1MzQXN6Q0Zq?=
 =?utf-8?B?N2FxNFRleVpmY3o1U0M2OThQb2toc3hTT3UwQzBMWHFiZHBuMFljWklxQ0VD?=
 =?utf-8?B?d29EWW9ESnphMGlRZkdTN2FVZ0VTeUdLU1hwQ2dVV0ovcVY5K1IzRUxZZlhS?=
 =?utf-8?B?M1QzbTR0cDEvYjBJRmFoZXBtZUdPN1FlNFdySks1NysvQXM1dnNpaGdCQmFY?=
 =?utf-8?B?TDhHNS9ybUNOdFVRMUl5aW1yRGhLeE5vaXpOQlVBYk1qQks0VktLemtNVERF?=
 =?utf-8?B?ZE9IUmVaN1pqVHo5bDUrNnJEczdUUlZXL1VZbmRTc3orTk80M2xnSEVseFls?=
 =?utf-8?B?SHdRQndUNmJPZ3N6dzNWNlczcndYcTVXK1JQOGhOVSsxWStFWWxRUmg4K1V2?=
 =?utf-8?B?MGg1Y0UyTWtXRVhNODQ4UEJwYk9SeUhOb2FRUDU4N0NmOG5QdTBBT2xPbzhz?=
 =?utf-8?B?K1hvVDBaL2ZkeVppOG1hdEJCMGFkcm9uT3pKcVJFamhuR2Q0Rm5GOThVUnhM?=
 =?utf-8?B?a0N1M3libGxrN2RnRDFmWUJEQUIvdmNkWGRFeWdHdmVrZWNWenpTOGt4MGpL?=
 =?utf-8?B?VCt6ZFNrYTk3NERpY2Qvb1BjZ2tjYVR6aTdhYkRoNVNWYThqODNvR3dHWUV5?=
 =?utf-8?B?SU9XWEJjeFVmdXY0cWUyc2FOKzlCSUc4bXVOTXhhRnhrZXdnRkpzdVpQK1Zp?=
 =?utf-8?B?Q1puUWQ0eEt0M2xFbWNkZXd1MEZpTWZPT0pTMVkyQlJIK21ndW53TWFpcDho?=
 =?utf-8?B?MjllNHFBRE90SWxTdUJQVGNLNlZnZ2c2OGV6RWJLcUJZMDF3dHJHK2pKTzI0?=
 =?utf-8?B?TkdKVnFXeDdyS1RkMjJrSW4rQlA5cDl1ZlJvSDYxVm9uMW9LSjdicDVta2RP?=
 =?utf-8?B?Z1FSckdUNDg4U01oTzdrZ0dQTkdjRkhDNncwcnZiYVZ4S3kvakNkZzZXcGhQ?=
 =?utf-8?B?SmhjeitzVWNpQlA3OThpSENFclZZcWIxTUtTTTlzY1dERkJXQU9yVnVwS0U2?=
 =?utf-8?B?dnoweVd2K0JBbUgrbHZGN2IxWGMvWEd1WXlJR1lHTHZkTmU3b21KZWZrTnda?=
 =?utf-8?B?T2lPVXNxNzdkc2hESFdXR1JvM0txRE1VUzJPbGJoSHV6RE5Tc2NrTlB5MFQr?=
 =?utf-8?B?SWlXZStnMWZiNUpLL1JTYlNrMHEzanFrK1h3eUs1Nis5VC8xYU5jZW9GQmN3?=
 =?utf-8?B?U1M5SDZuYzIrcXRQcEhYZEFQMWhTVjNXLzg2eWhHOGxSTHpPdGhZbFA4MTRi?=
 =?utf-8?B?NkhGUUg1T1FpdCs4YnJ2MFd3SHVlRitPMHpQOGhPN2pFZjBweXFPZWxzNGxR?=
 =?utf-8?B?YUZtdTFpMFM1RE4zNUd6azYyZktYTGxwV0JrNjBxZkplSzVqNHhvWWhQNGRu?=
 =?utf-8?B?Ymg4OVhZZk9XOWQ5V3RBbSttUVFRWG9jOVdYN28wSVdnYkhvQzQrMUNLUW5B?=
 =?utf-8?B?Wm1zSlNmSWE5T2Z0Z2NkazhvYjJzQkFFS3RTckk1U1VjcU1KeWllc2ZPazNo?=
 =?utf-8?B?Z3hQM1BsWndIVVNlMTl0UkFtV1hxcmMwTllXdWhtMEx1TmNMenBFbmtkbzB2?=
 =?utf-8?B?Vm03dm1IRVo3cmprWlVDaXJKTEdnaGVza2dEM1dXSFk1T2FNdEk2bS9rNlh6?=
 =?utf-8?B?RkYyRzZXUUx3NmtFbVpLKzNYcU1mV0phVCs2VjIzTnZYaG05d25kRGFKaWla?=
 =?utf-8?B?c2s5UnhnbkJmeXFZQVNJOXNpRTZ0dnltRlp2SUpyTlV3UituejJCUjR4dUtv?=
 =?utf-8?B?ek9yZUtOY21zODA1bmZzTUhJU0Y2cGJYVmVETjhyTWJFdkZpUTJGZlZxTnVz?=
 =?utf-8?B?OXZ5aU14Q2cydXd2V0w4aEVYR3ZuT2d0eUlBZTlqNUs0VXVHekZhblF6U21w?=
 =?utf-8?Q?PgaqfBvLq3bvZ?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB5277.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?MnlpaUJHRndrbkQzVWwrTklHdGNEWk45ZTJXMGxtdHd4TGJQMUJjeGl0alpD?=
 =?utf-8?B?VjA1NHZ6L05ZSDIrQUt6bDZ0N29UcXRINzI4a014WkdGcmtEUU9zWFBLTUJi?=
 =?utf-8?B?SEpJWUZSRmxocHBEMWpJYWd5RjVqR0NOanpNR3Irbm83cG5YQVJhMmsrNHFv?=
 =?utf-8?B?ZXhsUnRxaTdLQjJZVEJPZlhKR01kTjRla2lheERMeVZRWC9ZSy9tMXI0RDYw?=
 =?utf-8?B?YmlaMlI3cWNmTFBCNnBQUzkrU2E1M2pYRVhNSzV4MHpxSkF6YWlnUVBOV29Y?=
 =?utf-8?B?Sm5FYVB3ZzVMcXl4Z3NWNHM5RE1rbzc0UmdOU0FsYWhiS08rNS90K0lvT2tU?=
 =?utf-8?B?MDNacmEydExXcldMUFdkMzNrbjZuR3U2dmhCNTN5UmhQZ1VmRWxGV1hOZkpt?=
 =?utf-8?B?T0gzVjQ2SFBlWHJxUzM2YzEza0VOd1k4aEJueEc2bUlSTit3MkZKVUVlbThL?=
 =?utf-8?B?S1R3TFJzODBRS0RvbTVnL1JPakxWMkc3ZGYwdU5qM0gwdXlFYm9yM3NZOTBO?=
 =?utf-8?B?eWN5QmsyS3lLZy9pNS9VMEdvZHhHOXM5MHd0KzhES0lFY2N5Qkczbnd5a003?=
 =?utf-8?B?ZE1VZWtoRmxBSVBNZDNUckpYZEIvalZjYlg0ajkzYkxIbVkvMGx1eXR1eldX?=
 =?utf-8?B?aFUrSWNRYkFnV0FYNllkTjhnTHQ5WHFuenNJRGhoQ1RPdllwSDR3TWE5K25V?=
 =?utf-8?B?bG43bHZNc2hPVSt2UDY5RFNLWndoOHF0R2Rod2pSTG13VENIYWl2R1lOQVNT?=
 =?utf-8?B?N0xUNHNUcWxVbjBsQWJvYWU5eFN6WWI4ckgvSHpEelhYcUpORGs5ZGxFMWo2?=
 =?utf-8?B?UHpEV2p5cEFQTmhKT0NuZk0vcXJiNnFvZjluSCswSXJPenUxSjQ3RmN5R2pJ?=
 =?utf-8?B?WjRCZXhiSW80dGVWYW9YWU5kQkdXZUprdmJZKzBGWWdlMnMwdE5lSzhVa0Ez?=
 =?utf-8?B?VTJZL0tQVGdqZ1k1OXFrZkV3RUk3MlBnSjBqR0pHNVM2eDcybTVOUGlNcGhs?=
 =?utf-8?B?Tmxtd1c1U1dUWlE1blZpNy9vVFViWU9ORFdDVmJ0TjJpZURuTFJyNjRMRWpY?=
 =?utf-8?B?WmJQNG5icTJ1cW9xQWJwRGZldysrcmhRYlBZWnNxMkJDMStoUVJueFZxbEo3?=
 =?utf-8?B?M1FaTytOZ0FtWkg4RHlFbXNYYnBhVHEzZ1dlVlhxOWUyQkVkMlhOQW4wQzEv?=
 =?utf-8?B?aWVEdm5pMmdaejhTTldXZHNzY3pjT1dOMzVZVTNyRkNwUzJJOUtCcUhiclNm?=
 =?utf-8?B?QWNibHBlRVlteGpNMHhaVmJwZ0NFQmNDZjVpazRqeURpM00xTGE1VTBnS1BQ?=
 =?utf-8?B?bGJ5VGtON0J6WDNUcW9BMmI5aGhXamxQeExOQnFwUUR4YWJ6VXlKU1FRSFM3?=
 =?utf-8?B?bnlmdjFTUGFheXAwQ1hhakR0dmVQR0wwS1U4M1dvNWY4R3RRbHdCWTF6NnQr?=
 =?utf-8?B?c1RuODNpMlZiUzlkWHFCbHcyZCtKcEhxYXZPU0NrQnkyQXh4Wmx0akg0NURR?=
 =?utf-8?B?N05JSEVjRHVaT0Vkc0dCNXZrK0dQc1RZUmNQWjZWOHkyY0hvVElaVU9GU0Y2?=
 =?utf-8?B?WmpMbUorR3ZRZk1qUGdYYlhpTjl1UlFZcGVRSjZaUWZFY0ZRdWtRVWI1ZTRJ?=
 =?utf-8?B?dU5GY1NBYzk2emFRcnhaTllycG5jRGQxTlp5TUZWY2oxTzJmb0pNa1pPd0tV?=
 =?utf-8?B?MWpnNDVZdlpqMkNWRFk1aXFxV2NaUjZOUHVjRVpiWlgrU1IvRndJS2dRSHZP?=
 =?utf-8?B?bHQ2MXpMVHBXSGpGSnk5RzdUUi9WRE1KNzlQcGlDL2pEWDQvZ0VmZHVnSmlC?=
 =?utf-8?B?ZGJpWkdRTysrN0ZHemtvVkgvb0w5NTN3c3hVY0JQMk5WZmhmTnM3aVdjZ0Qy?=
 =?utf-8?B?YkhMWUtJUlRzdDNFRGd5cXErYW5NOWRwODZUdUpyZVJlODhXeVNFalQ5Qjhn?=
 =?utf-8?B?K1UyUk9KTnVjQUtTbTlNdHZGNFA0TEpCQ3ZmSHpJQk00ZlBjb2M3UFloMVRy?=
 =?utf-8?B?L05sOXB4WGJIUXhqYStFZnlXa2Y0SExhOWVZN0hTSGMyZjJWU1UwelJhZlU4?=
 =?utf-8?B?cTJ0S1IyczQ4aTNPMUFzbTk3cVEvZ0VWRXNhOUZhVVBwUjJISm1mQmFSNG52?=
 =?utf-8?Q?DgFIAj1043w8ImqMe4CPRgg32?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 848b5035-3660-489a-e334-08dd75e42ec0
X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB5277.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Apr 2025 14:55:05.8744
 (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: 3/pSu/OiCapOJtX8IbHY9Y97AwTVvEPm0PW3BHVTbqpMK0xi/o4gBqbz5M50gx3t
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ5PPFEB07C8E34



On 07/04/2025 16:07, Ayan Kumar Halder wrote:
> 
> On 07/04/2025 14:31, Luca Fancellu wrote:
>> Hi Ayan,
> Hi,
>>
>>> On 7 Apr 2025, at 14:18, Ayan Kumar Halder <ayankuma@amd.com> wrote:
>>>
>>> Hi Michal,
>>>
>>> On 07/04/2025 10:04, Orzel, Michal wrote:
>>>> On 03/04/2025 19:12, Ayan Kumar Halder wrote:
>>>>> Added a new file prepare_xen_region.inc to hold the common earlyboot MPU regions
>>>>> configurations across arm64 and arm32.
>>>>>
>>>>> prepare_xen_region, fail_insufficient_regions() will be used by both arm32 and
>>>>> arm64. Thus, they have been moved to prepare_xen_region.inc.
>>>>>
>>>>> enable_secondary_cpu_mm() is a stub which is moved to prepare_xen_region.inc as
>>>>> SMP is currently not supported for MPU.
>>>> This does not sound right. If you want a place to keep some common MPU stuff
>>>> between Arm64 and Arm32, you need to come up with better name for a file. SMP
>>>> has nothing to do here with preparing regions so it feels odd to have
>>>> enable_secondary_cpu_mm stub there.
>>> Can I rename prepare-xen-region.inc to mpu.inc ?
>>>
>>> Julien/Luca - any thoughts ?
>> I would say we leave the SMP stuff out from the common file, at some point we could start working on the
>> SMP support and maybe there would be difference between arm64 and arm32.
> Do you want to duplicate enable_secondary_cpu_mm() in arm32 and arm64 ? 
> I am fine with that.
+1

>>
>> what about common-cpu.inc?
> 
> Sounds ok.
common.inc should suffice. Let's not split hairs.

~Michal



From xen-devel-bounces@lists.xenproject.org Mon Apr 07 14:57:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 14:57:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.940302.1340115 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1nuZ-00086X-Ij; Mon, 07 Apr 2025 14:57:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 940302.1340115; Mon, 07 Apr 2025 14:57:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1nuZ-00086Q-EA; Mon, 07 Apr 2025 14:57:19 +0000
Received: by outflank-mailman (input) for mailman id 940302;
 Mon, 07 Apr 2025 14:57: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=ZxXC=WZ=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u1nuY-00086I-1h
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 14:57:18 +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 9850a1d9-13c0-11f0-9ffb-bf95429c2676;
 Mon, 07 Apr 2025 16:57:16 +0200 (CEST)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-43cef035a3bso30112175e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 07 Apr 2025 07:57:16 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39c30226acfsm12104940f8f.88.2025.04.07.07.57.14
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 07 Apr 2025 07:57: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: 9850a1d9-13c0-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744037835; x=1744642635; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=QU8b84z/G2cMAzWzl2yvboV0TtpbhH4ahq/+4ph3FjU=;
        b=S0fWycpok9O/Vfo2Q4HDq65Z+IISFKPCbIRrDiohG+BvZiriKGc2/Dkgpqrb2KNzJL
         rInIf2DwXnFU2Y8yc2kUWkRbOgwM19waZWbM2hr5U7QsPdSHUXzlp0rX2g47ScW0Sc5g
         Oaun8V8mZkTovjXUlG6ipDD2CVVD+UuP6LvbI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744037835; x=1744642635;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=QU8b84z/G2cMAzWzl2yvboV0TtpbhH4ahq/+4ph3FjU=;
        b=K1eYCMu+t1YjhCHO7BA7ww4KefLeNRI5Zp7IkWS5U8AbBjurTOFLTLoyr83/I1ArUv
         OBHO98KroBRlOnaMjSM/v8/A12uDxlNIh9tX7B5bGji7xy/hhblwdPzP/blKRURRmbbi
         HMg+1sQ+yQ+Xmv5kZ2Hzj3Yl8uyScXUZ7uM2MeteShvLkMdNDWuKlrirzS7Qbfk8Bygz
         dr3IjsaDqMvIU9shqj/Nn7P/FsgLmtpjVPXcBnVOeC2Id9jkthyunhqIYB9KUxQO+ZpY
         sJ+5blrPt2ufg0sISxS5AcIgovhUIutypH+9lVPV9t+KgNn1VchOtdLLDmEAf62lXLqS
         slnA==
X-Forwarded-Encrypted: i=1; AJvYcCW9ClEFJtpylf2p19WuJPdIjl7uEAqYd4By7AzxSAq+JCJpXtm3/VGngZCbrdFudR8lNNjQgHz6BQs=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwwZIBFwkevxkmBwjbwAnWGTEYPX35i75od+SESyJT8vnDY43fE
	ThtJutAsjyZHhKVCWDRHiSW2OhLapYyZcXsTEdAg7aDAyz4Qk6aw8DQ9DaRV4AI=
X-Gm-Gg: ASbGncuqMYvNM/+ol7MBbCY0wFulEhtV19NYVLP7zIzp4/iYBXIghUvP//mfP57HF9Y
	cEhloA30abx7VMzbguN1DDHVxUzl5cYL2IJHciuY9feBCtl6Ti7iDxMI6DrJQJBFEgkiFGV8wGr
	nBLZxvjvyTmKNk4MyNx3Z16Eus21/DbWfJBWTWnc9JfvuBjD2F/dYvg8p4YAfLctfRuNEIyWSzB
	zZaEA/Js3OWkP3EZQy9XXvEW6106bLXloI2ZKVsqqzWjXkAiIHI45mBFoPtNhzCWqO+HYzgtBok
	IYHaUOsZDX3Ve7wf+0hSbpVbNz27OgKw5LfYLBVwvyPIPQ+GjBm2ZOSWn3B369nsn9Yg3Uv/aHT
	WLZcvi803T4mIEOPVAkKq
X-Google-Smtp-Source: AGHT+IGOsF7nkmH3dR1t2H/bG9Wtg2dzQMaqDBl+c0+sCSB1MzKTln4kaIwSb45vzvI0Bm+IEtHiDQ==
X-Received: by 2002:a05:600c:474e:b0:43d:fa5d:9315 with SMTP id 5b1f17b1804b1-43ecfa07060mr93759575e9.33.1744037835346;
        Mon, 07 Apr 2025 07:57:15 -0700 (PDT)
Message-ID: <20c0d40a-881b-489f-b4da-ed052ede29de@citrix.com>
Date: Mon, 7 Apr 2025 15:57:14 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/vmx: Drop memory clobbers on VMX instruction wrappers
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: <20250407104544.1823150-1-andrew.cooper3@citrix.com>
 <b400a011-e173-4d6f-b0b7-bcbe59e994cd@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: <b400a011-e173-4d6f-b0b7-bcbe59e994cd@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 07/04/2025 1:00 pm, Jan Beulich wrote:
> On 07.04.2025 12:45, Andrew Cooper wrote:
>> The use, or not, of memory clobbers on the VMX instructions is complicated.
>>
>> There are two separate aspects to consider:
>>
>> 1. Originally, the VMX instructions used hardcoded bytes, including memory
>>    encodings.  Therefore, the compiler couldn't see the correct relationship
>>    between parameters.  The memory clobber for this purpose should have been
>>    dropped when switching to mnemonics.
>>
>>    This covers INVEPT and INVVPID, each of which has no change in memory, nor
>>    in fact the current address space in use.
> Yet then they need to come after respective table modifications.

They don't AFAICT, but the reasoning is complicated.  I'll expand on it
in v2.

>
>> 2. Most of these instructions operate on a VMCS region.  This is a (mostly)
>>    opaque data structure, operated on by physical address.  Again, this hides
>>    the relationship between the instructions and the VMCS from the compiler.
>>
>>    The processor might use internal state to cache the VMCS (writing it back
>>    to memory on VMCLEAR), or it might operate on memory directly.
>>
>>    Because the VMCS is opaque (so the compiler has nothing interesting to know
>>    about it), and because VMREAD/VMWRITE have chosen not to use a memory
>>    clobber (to tell the compiler that something changed), none of the other
>>    VMX instructions should use a memory clobber either.
> For this, there's actually a good example below, with everything needed in
> context.
>
>>    This covers VMXON, VMXOFF, VMPTRLD and VMPTCLEAR.
> Nit: The last insn is VMCLEAR.

Oh, so it is, and we've got an incorrectly named wrapper.

>
>> --- a/xen/arch/x86/hvm/vmx/vmcs.c
>> +++ b/xen/arch/x86/hvm/vmx/vmcs.c
>> @@ -754,7 +754,7 @@ static int _vmx_cpu_up(bool bsp)
>>                 _ASM_EXTABLE(1b, %l[vmxon_fault])
>>                 :
>>                 : [addr] "m" (this_cpu(vmxon_region))
>> -               : "memory"
>> +               :
>>                 : vmxon_fail, vmxon_fault );
>>  
>>      this_cpu(vmxon) = 1;
>> @@ -811,7 +811,7 @@ void cf_check vmx_cpu_down(void)
>>  
>>      BUG_ON(!(read_cr4() & X86_CR4_VMXE));
>>      this_cpu(vmxon) = 0;
>> -    asm volatile ( "vmxoff" ::: "memory" );
>> +    asm volatile ( "vmxoff" );
> With the clobber dropped, the compiler is free to re-order the prior store
> with the asm(), despite the "volatile", isn't it? [1] This may then be
> applicable elsewhere as well.

Yeah, these might better stay as they are.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Apr 07 14:58:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 14:58:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.940313.1340124 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1nvL-0000Aj-RU; Mon, 07 Apr 2025 14:58:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 940313.1340124; Mon, 07 Apr 2025 14: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 1u1nvL-0000Ab-NJ; Mon, 07 Apr 2025 14:58:07 +0000
Received: by outflank-mailman (input) for mailman id 940313;
 Mon, 07 Apr 2025 14: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=LsCM=WZ=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1u1nvK-0008Ny-2H
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 14:58:06 +0000
Received: from NAM02-BN1-obe.outbound.protection.outlook.com
 (mail-bn1nam02on20628.outbound.protection.outlook.com
 [2a01:111:f403:2407::628])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b4ff64f0-13c0-11f0-9eaa-5ba50f476ded;
 Mon, 07 Apr 2025 16:58:04 +0200 (CEST)
Received: from DM4PR12MB5277.namprd12.prod.outlook.com (2603:10b6:5:390::7) by
 IA0PPF52B16157D.namprd12.prod.outlook.com (2603:10b6:20f:fc04::bce)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.34; Mon, 7 Apr
 2025 14:58:01 +0000
Received: from DM4PR12MB5277.namprd12.prod.outlook.com
 ([fe80::9ab:5367:ba51:af6e]) by DM4PR12MB5277.namprd12.prod.outlook.com
 ([fe80::9ab:5367:ba51:af6e%5]) with mapi id 15.20.8606.033; Mon, 7 Apr 2025
 14:58: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: b4ff64f0-13c0-11f0-9eaa-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Ya1OmtalvuIwf4c0owxMeGvyUCeBIlGC21dDcynNOd+yQzNd7inwXfDL5Xj+s0D/65XQ2sZywzeUCbX2sFbI976BdvlGSouOQlMMTNffZ3r7uNnzU2yc5LX1NG16CaPIyj/DDNkBXWnAdNtWBXIbck6Q+41AhkxuYaJi4LlqmL/zQoOlnrQ/84Mdc9LZopXzeUVm8gK74RhkJ7ZA/eZCeDViGes+8ZrcdtnSlLIkB17HD6LQ45Y+T2CUWnpEVmNX7yYWE7TqOIs8ToYgGRy10H0ywzmGhKk8hCwzkK7ydNlV4xIQJfYQQ7AFxn3jBXjRfDsrjUDTvQfovzlcanzRYg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=L4aXYCeeQknm9tA3vPcoBrrNJZdlm3b6pdKwtQvRgWE=;
 b=GaZBt0/nvuyTiNgfVR8CFrJrQYZcWrPvtrd238mbGMoU7ORgxO25fxtFC/kbOfyaT0sxS2aURQIYi4UxfqTnR6jsDOhnFZ99zsOIIuGvZ6JkW4QlBmueLVPawz9pEwdBaT4Fx6azGyL6h7p84uvGF+uaGPHd+6jnVBojV7yIEiIXnrqo7W/ea5vAadUkucOorcG942SOjx48l0zxJJGMgLNWkGB8MZC8aiSJs0YTAVBZxZfA5vyizND3w82uAXxwTgAKbWUc/wJZiv30gNf/+XzFCK9ozS1ViS1ykkfFCrwiGSpdV2kVURvubBicZ9KLKf2WrxVJSy8yKSPrBUOeAQ==
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=L4aXYCeeQknm9tA3vPcoBrrNJZdlm3b6pdKwtQvRgWE=;
 b=KuBahIRWhsJdj3zuT0M7LN1PPdkNj4JTGVW6QkqDf1329rKQHk18DGF5qgOAr/pFGLc6Nr5b2Mj6svNv6Pj2auYWdKzXfM9jHRlJYf6zdtsj8opj9hMWSMrRmjihyMHUkmAPhkmINJgrL/59qCrsKecj0aFUrTrbm6qht7MwWk0=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <ca831d83-2795-4cfc-a43f-9cf8533169c9@amd.com>
Date: Mon, 7 Apr 2025 16:57:57 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 1/3] xen/arm: Move some of the functions to common file
To: Luca Fancellu <Luca.Fancellu@arm.com>,
 Ayan Kumar Halder <ayankuma@amd.com>
Cc: Ayan Kumar Halder <ayan.kumar.halder@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>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <20250403171241.975377-1-ayan.kumar.halder@amd.com>
 <20250403171241.975377-2-ayan.kumar.halder@amd.com>
 <C6C24096-2BCC-4D09-A20E-AAB1FA923A18@arm.com>
 <a99913ea-b425-4c24-8d32-f4e2e3ab3edb@amd.com>
 <E7EF892D-8212-485F-980A-F0D213456707@arm.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <E7EF892D-8212-485F-980A-F0D213456707@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: FR0P281CA0260.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:b5::17) To DM4PR12MB5277.namprd12.prod.outlook.com
 (2603:10b6:5:390::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DM4PR12MB5277:EE_|IA0PPF52B16157D:EE_
X-MS-Office365-Filtering-Correlation-Id: ac69e90b-f89d-4dcf-eb80-08dd75e497b0
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?K09xK2d2S2E1blpHV1o3bDA3L1pMbXJFL3NraXdHYVN5cWlOckpZNWdnVElZ?=
 =?utf-8?B?Si92OStVdlFjYko2RTQ2Y3IyZmd3YmFOL3dyVEFDT29OUENkY3RHYVhJTVhK?=
 =?utf-8?B?T2Q0L0gwSTVWdnBONFI1aEorT25LbFMwa1NuRGRZOGQrY01qa1kzOXNYYWpW?=
 =?utf-8?B?b1JTUlBYL2l2QzhPK2RaSXJ6L1Z1YjhabmE0UG1YSGRTZG5PZzhmVUlVN1lE?=
 =?utf-8?B?cSt0OWJudHgyWHpwNmRaMFV4K2RLclBBUkJXaGJZZElqL28xVllWcjd0eEZ6?=
 =?utf-8?B?WGR5dllXTDR0dkp3Y0c5SElxZkJVRERvcnBDc0NWWVhKSi9MZEFDRWtCUzFQ?=
 =?utf-8?B?Si94d3ZZelFZV0tHQ3BqWWZicndrSjRoY3hOOTZicEZZSlNlSnVhRHlOaTJD?=
 =?utf-8?B?T2RSZmtUaUdpZ0Z2NUo2bVpvampSQmwxdzkrb0JVaHk1dnBnZ1JGZGFIYlh4?=
 =?utf-8?B?L244eGExTit5L0xSZVZ2VkNJSnNQUlJtUHBIblpwb2h6MGdxQm9BYzRHN2tp?=
 =?utf-8?B?QnFEdG1xS2RHbTNZU21jU3RHN1M1bXdzN2UwRnUreXBUSDhxWlNqVHdpN1BP?=
 =?utf-8?B?UnVLOFJCUW1rNVpRdk55NWViZ0h3WUFJWFZMTi9UbjAxOGtkY04wbW1ZaEti?=
 =?utf-8?B?Tk82K0JqcTJkRmg4RTFqNXZBYWZuWGNMWmtVaGpucmRCekhKTmcwOHR3R2I4?=
 =?utf-8?B?ckpsaXJQRWg1M2ZoSGdzNFdCOHM5V3JmMEc2ZTlmVE1IUlFrWG11QmVzMUxt?=
 =?utf-8?B?ckZMYXp0MWlFUFdzRWJqdit0MEJFcXRFUXduSGVhTXg0bzJzdUs5M010TU96?=
 =?utf-8?B?RlZMZHZiZGhkUE9JeldHZkU4Z2lJU2YrK2FJU2Z0Z3lMc3dGYXRTejBLdEh2?=
 =?utf-8?B?OHMzT09nT1ZQOEF0b1AzS2ptZ2tpTXRBQ3JpbTJpcnpqbDV3dlRGaldNQlBZ?=
 =?utf-8?B?cDl2OU01d09TQnp0YjRSNzlzK092UnRHdG9kWkw0Qi9VaGZSL2JKbXJsNmtX?=
 =?utf-8?B?RWRJTnJ3bTFQRDVxVzNQMzB3bVJ5N2NWSmpXckpmTExTTksyU3l6dnJGbFh3?=
 =?utf-8?B?QmxpejlLTE83VjB4TE1YZ1NXajZ4ZEZ6YUFIY2sxL3c5YjcwUk1qSUlFMVJh?=
 =?utf-8?B?WkxWcUo2Z0tlZ3FHamJheGp3QU1YZ2RCS01KclBEU1RjZCtHY09DRHFjQk9Z?=
 =?utf-8?B?N3AyQ2k2YTdOZlQzc3htL0xDdVErRy9ibDNKcG54aE94SUlLMHFyaDBwbGgv?=
 =?utf-8?B?bjdtV0xIS3pZWFhLUGFBcEpXRTA5cUJ0bW85bTZJS0lJT1lkc1NBSXlVU3FN?=
 =?utf-8?B?aldGQkZ6UjcwYWlXTTVqMkthNG9wMmtoWW51MVJNdThRa1RVRndSS1l2UDZm?=
 =?utf-8?B?WDV5M09CVTlNd3RBUDNIMEZzMUlWRkdqZUZpSWJ3eWFzK0piL1hwR0xTVFFr?=
 =?utf-8?B?cEdBUDVYSklxSXIwajRtbSthUCtxV1RoVGV0S0JyWjJEMEZnMm1Vdnhqd3VJ?=
 =?utf-8?B?WkgzbDAraU80a0ExWWVKSlV5RlQ2SlNkbmE4TzlyVTQyU2ltcUo2MjY4Tm5P?=
 =?utf-8?B?WVA2YUNMYis2bHVJOHlUdlRCWlR4VnM2T0RRTVhUcXNOU1FEeWR0YUNHSit4?=
 =?utf-8?B?NWJrZUxoVHdCQ1kxaHJURW53aTd2NVBlaXZETjRpRGxiU1NxSGcvaFBMTzhY?=
 =?utf-8?B?SDQ5WmdhZ24yRDg4K0Z3V0RJMk9BaFZrVW5nSXJONWQxSWpvTzFUaTJFTVN2?=
 =?utf-8?B?d3prSUI2eFNuemE1UEFIb3p3dTBzazZZZTEzK3RtQmE4Z2lkT1BOQnpVUExP?=
 =?utf-8?B?TTRCSmJHKzBqMm9kaDNDZk15NkhUS0VuTmNnOHVPazVnQkFQUUhTYUM2K1ZR?=
 =?utf-8?Q?upsJ217T84WAi?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB5277.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?VDR0SjdQUGRpL09FNHJSNHpWTG94aWRlcEs5elF2ekpkMkpuNWhSbm1CdU45?=
 =?utf-8?B?TmtMcDZjRGJHTUZmekMrR1lxd1N3WG50SWpjc3NpeXVtdWZHV0tWYkFGUC9U?=
 =?utf-8?B?LzlOTUYwMVp6eU9rTjFUcFhaNDJQaU5iZUUxK2NzN0RvNnFnQWN2aHEwclc0?=
 =?utf-8?B?ZEI2TXJONDVpa3Bva2dRY0JWNG5VMEhRZ3ZVSFFtZGVJLzdLWHVYNm8zdDdI?=
 =?utf-8?B?anFNZ05aQUNLV1B5dnRMRW91Yk9TTXhhT2ZxazByUnRYY3RaL1FQbkpaZ0JV?=
 =?utf-8?B?MGF5M0t0NVJUb2w4ZmlhNmRsZ05OSTE5MDNUSCs2MDRRZGQ0T0hmR0NnU2ly?=
 =?utf-8?B?UnlzMzRtN2J2clhyak5VdmhWM1EwWjZPYUhkZm5oL1FlYVAybW8vSHlBRWk4?=
 =?utf-8?B?M1RYaXhxZEVSZ2tIWVA1LzVwRXNSNTFmSU5NbmFheEgwczhmMjNFRWszZ01D?=
 =?utf-8?B?dXdocC9LRE4rSXJPTGxsN2RzdUVNVTE2SmZFQjc5QldKeDFjU055VkFpTThD?=
 =?utf-8?B?ci9XaWl2M1Zheno2UmRZSytCd09IRUs2c0dUVG45NG91ZHNqV2FQMkladDBL?=
 =?utf-8?B?amtnWVppcjlRRzJVaHBISCtSckxFRFNRZzdHVlYrVWU0a0ZXVDZab1BkaUtO?=
 =?utf-8?B?Ym1vVlJIbzVwM2NCYVU4Um1tQ0Vla2d3bUJpRXltaWNRRWlRckhvdEE5WUFm?=
 =?utf-8?B?a3RxUGhqcnd3N3RGSzlaeENaRDl0MSs1RHNiOGJmbUhMWVJrVC9CNk9aN2Y3?=
 =?utf-8?B?VXBpdE9MLzE1N2VBTW4rdlNkb0VKQzNLbTBmZUdoZDg2WWxDY2JCSjF1VnRT?=
 =?utf-8?B?UTNOU1NlRE9BKzJhNnd6d2pHSklPSlVvT0VDcWpRVlA1djRHdCthaHBlM2xY?=
 =?utf-8?B?QmsxYm5QQS8xbGlCditMUmJsWHJBdklaK1gyQTZWckhUaklIeE1lUnJEQXhE?=
 =?utf-8?B?dHdyZ3YxTEE2QlhCc0szMThJeDIybjRaYmt4cHIxY09ic2szU1FjQ3Fud2lY?=
 =?utf-8?B?d01KTmhNcVNOMlkrRjNQZmVGRmNXcnQ5UFBZVGloeTZnS1MzdzRXdmJ6RlFU?=
 =?utf-8?B?R3FIdUJuTjl1TmdXNWhSTitIRXZhdGdmU1FzSnk5aDBsZnRjaVlzWmV3VFJn?=
 =?utf-8?B?TnZMR1UwODhZenB3RTdGVVZxaVVxeEsvRjk4eXRjRVk2eUUyV0xwNXcxUVVB?=
 =?utf-8?B?ak9lV1NuVHMrUEFjMjdIQkl3ZjJ3aUZsUHNjeVRSVVBVVUxaUWdmOHZTT0Vp?=
 =?utf-8?B?eDBQaXM0WEd3emcxWW42WG04M1RkZkRxUERHRGZ5TXBhdDJXZ21ON2ZUYjRV?=
 =?utf-8?B?bFRUTWtuajNaV2Y4WUJ2Skc0T3BiUlV5VnpuVHlhajZSc01EOGY5Y09nVFF5?=
 =?utf-8?B?eE1COEVZWVdjdi9kemNyZGRQRUVYMjN3cE5LbytjMi8vZUFjUVBnWVJLMTRI?=
 =?utf-8?B?SHZMZTJ3T3RBeEEvQnJvc3NrUjZaS0tsTVFPYndBdHB5K1R0aC9DcmJaT09D?=
 =?utf-8?B?YnMwT0NPUUhSY3Jhd245OXhzM2dpMklHVVpHZUFmUkFTanA4MEkrbWZsRjlm?=
 =?utf-8?B?M2NFbjNNNGdBcFU4UDEydFE3MVUxc3NtMHhBdGpxYlcyM2M3Vm9Pc0doRURT?=
 =?utf-8?B?VVF2eE95WlllelMrTVIrMEZoOWE3OUI2Y2J4a3pRUUxRUGQ1SmZZQmE1N0JX?=
 =?utf-8?B?NDNLVHI2ZEdFK3hEeEpqUlJDVnp0M3dOczNjS012bzdHWE9Ka0h1TWJWcU82?=
 =?utf-8?B?d1dIZkJZOUxQdUw5SnhaRmxUQUczdFk1N1dVbkhZSndEU29ONm1ZdWxveDho?=
 =?utf-8?B?MHVkMEJSQnIzKzJNYVhrdkVCNjlWMEtQdkIraXhKU0RMd2MyTDVSTUdGcmhO?=
 =?utf-8?B?ZmVUS1B1VlA1eHJjZFBYUTJycHdSQ3Z4S3AreXVlaDRML3M3cVhYUjFhMkZr?=
 =?utf-8?B?c0ZzZ1U3N2ZpWUZjMkxaeWdmRzFibGRMR3M4T0tPUUYrZFc2NUZ5MS9CbUJJ?=
 =?utf-8?B?R0JSNUZEVmZWZFpZTUFsVXdHUm1xb1Awemx2UnpvdlNSWklRanhqNWVJYlhw?=
 =?utf-8?B?K3lkaG1CcytueHZaMmZvZ0gwWncvTGU5eEpadTc1TC9ETE5WaXNNaG5hbHNi?=
 =?utf-8?Q?IMykjCbuI4GbrKWOS9pjRDYHi?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ac69e90b-f89d-4dcf-eb80-08dd75e497b0
X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB5277.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Apr 2025 14:58:01.8243
 (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: Z+uexLYI3kCXX4mRiEQI+ybD3EesqzOSxOqttWDFQplgMtk63kPXHuJWhI7YwGfW
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PPF52B16157D



On 07/04/2025 16:34, Luca Fancellu wrote:
> 
> 
> Hi Ayan,
> 
> 
>> On 7 Apr 2025, at 15:29, Ayan Kumar Halder <ayankuma@amd.com> wrote:
>>
>> Hi Luca,
>>
>> On 04/04/2025 10:06, Luca Fancellu wrote:
>>> Hi Ayan,
>>>
>>>> On 3 Apr 2025, at 18:12, Ayan Kumar Halder <ayan.kumar.halder@amd.com> wrote:
>>>>
>>>> Added a new file prepare_xen_region.inc to hold the common earlyboot MPU regions
>>>> configurations across arm64 and arm32.
>>>>
>>>> prepare_xen_region, fail_insufficient_regions() will be used by both arm32 and
>>>> arm64. Thus, they have been moved to prepare_xen_region.inc.
>>>>
>>>> enable_secondary_cpu_mm() is a stub which is moved to prepare_xen_region.inc as
>>>> SMP is currently not supported for MPU.
>>>>
>>>> *_PRBAR are moved to arm64/sysregs.h.
>>>> *_PRLAR are moved to prepare_xen_region.inc as they are common between arm32
>>>> and arm64.
>>>>
>>>> Introduce WRITE_SYSREG_ASM to write to the system registers from the common asm
>>>> file.
>>>>
>>>> Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
>>>> ---
>>> The split for the common code seems ok to me, but this patch is introducing an issue for the arm64 compilation,
>> Sorry, I moved something at the last moment without testing. :(
>>> I’ve done an experiment and with these changes I’m able to compile both, but feel free to ignore if it’s no what you
>>> had in mind.
>> The change looks good. However, ...
>>>
>>> diff --git a/xen/arch/arm/include/asm/arm32/sysregs.h b/xen/arch/arm/include/asm/arm32/sysregs.h
>>> index 22871999afb3..a90d1610a155 100644
>>> --- a/xen/arch/arm/include/asm/arm32/sysregs.h
>>> +++ b/xen/arch/arm/include/asm/arm32/sysregs.h
>>> @@ -20,6 +20,13 @@
>>>   * uses r0 as a placeholder register. */
>>>  #define CMD_CP32(name...)      "mcr " __stringify(CP32(r0, name)) ";"
>>>  +#define REGION_TEXT_PRBAR       0x18    /* SH=11 AP=10 XN=0 */
>>> +#define REGION_RO_PRBAR         0x1D    /* SH=11 AP=10 XN=1 */
>>> +#define REGION_DATA_PRBAR       0x19    /* SH=11 AP=00 XN=1 */
>>> +#define REGION_DEVICE_PRBAR     0x11    /* SH=10 AP=00 XN=1 */
>>> +
>>> +#define WRITE_SYSREG_ASM(v, name) mcr CP32(v, name)
>>> +
>>>  #ifndef __ASSEMBLY__
>>>    /* C wrappers */
>>> diff --git a/xen/arch/arm/include/asm/cpregs.h b/xen/arch/arm/include/asm/cpregs.h
>>> index 6019a2cbdd89..b909adc102a5 100644
>>> --- a/xen/arch/arm/include/asm/cpregs.h
>>> +++ b/xen/arch/arm/include/asm/cpregs.h
>>> @@ -1,10 +1,6 @@
>>>  #ifndef __ASM_ARM_CPREGS_H
>>>  #define __ASM_ARM_CPREGS_H
>>>  -#ifdef CONFIG_MPU
>>> -#include <asm/mpu/cpregs.h>
>>> -#endif
>>> -
>>>  /*
>>>   * AArch32 Co-processor registers.
>>>   *
>>> @@ -502,6 +498,12 @@
>>>  #define MVFR0_EL1               MVFR0
>>>  #define MVFR1_EL1               MVFR1
>>>  #define MVFR2_EL1               MVFR2
>>> +#define HMPUIR                  p15,4,c0,c0,4
>>> +#define HPRSELR                 p15,4,c6,c2,1
>>> +#define PRBAR_EL2               p15,4,c6,c3,0
>>> +#define PRLAR_EL2               p15,4,c6,c8,1
>>> +#define MPUIR_EL2               HMPUIR
>>> +#define PRSELR_EL2              HPRSELR
>>
>> Considering that there will be lots of arm32 MPU specific registers, do you want to move them to mpu/cpregs.h ?
>>
>> That would be my style preference.
> 
> I don’t have any strong opinion so it’s fine if you want them in cpregs.h.
If there are really a lot of new additions and the movement improves
readability, I'm ok with them being stored in mpu/cpregs.h

~Michal



From xen-devel-bounces@lists.xenproject.org Mon Apr 07 15:11:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 15:11:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.940331.1340149 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1o8f-0005le-HD; Mon, 07 Apr 2025 15:11:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 940331.1340149; Mon, 07 Apr 2025 15:11: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 1u1o8f-0005lE-Bs; Mon, 07 Apr 2025 15:11:53 +0000
Received: by outflank-mailman (input) for mailman id 940331;
 Mon, 07 Apr 2025 15:11: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=XdEV=WZ=linux.ibm.com=agordeev@srs-se1.protection.inumbo.net>)
 id 1u1o8e-0005V9-9Y
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 15:11:52 +0000
Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com
 [148.163.156.1]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a01b51c7-13c2-11f0-9ffb-bf95429c2676;
 Mon, 07 Apr 2025 17:11:49 +0200 (CEST)
Received: from pps.filterd (m0356517.ppops.net [127.0.0.1])
 by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 537E3FIb025560;
 Mon, 7 Apr 2025 15:11:35 GMT
Received: from pps.reinject (localhost [127.0.0.1])
 by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 45vg4q8cmm-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Mon, 07 Apr 2025 15:11:34 +0000 (GMT)
Received: from m0356517.ppops.net (m0356517.ppops.net [127.0.0.1])
 by pps.reinject (8.18.0.8/8.18.0.8) with ESMTP id 537EoQ3W019216;
 Mon, 7 Apr 2025 15:11:34 GMT
Received: from ppma21.wdc07v.mail.ibm.com
 (5b.69.3da9.ip4.static.sl-reverse.com [169.61.105.91])
 by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 45vg4q8cmf-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Mon, 07 Apr 2025 15:11:34 +0000 (GMT)
Received: from pps.filterd (ppma21.wdc07v.mail.ibm.com [127.0.0.1])
 by ppma21.wdc07v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 537EKIMr013925;
 Mon, 7 Apr 2025 15:11:33 GMT
Received: from smtprelay04.fra02v.mail.ibm.com ([9.218.2.228])
 by ppma21.wdc07v.mail.ibm.com (PPS) with ESMTPS id 45ufunecfm-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Mon, 07 Apr 2025 15:11:32 +0000
Received: from smtpav04.fra02v.mail.ibm.com (smtpav04.fra02v.mail.ibm.com
 [10.20.54.103])
 by smtprelay04.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id
 537FBVTI19595766
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Mon, 7 Apr 2025 15:11:31 GMT
Received: from smtpav04.fra02v.mail.ibm.com (unknown [127.0.0.1])
 by IMSVA (Postfix) with ESMTP id 03DF82004D;
 Mon,  7 Apr 2025 15:11:31 +0000 (GMT)
Received: from smtpav04.fra02v.mail.ibm.com (unknown [127.0.0.1])
 by IMSVA (Postfix) with ESMTP id E2DFB20043;
 Mon,  7 Apr 2025 15:11:30 +0000 (GMT)
Received: from tuxmaker.boeblingen.de.ibm.com (unknown [9.152.85.9])
 by smtpav04.fra02v.mail.ibm.com (Postfix) with ESMTPS;
 Mon,  7 Apr 2025 15:11:30 +0000 (GMT)
Received: by tuxmaker.boeblingen.de.ibm.com (Postfix, from userid 55669)
 id 88272E175F; Mon, 07 Apr 2025 17:11:30 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a01b51c7-13c2-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc
	:content-transfer-encoding:date:from:in-reply-to:message-id
	:mime-version:references:subject:to; s=pp1; bh=pLqNtHwxdz+KjzF0o
	4al3IuUdgKeg437/opuwF8rOgY=; b=GG9/qRMTr3c234BdNbl8qcd6JICn1dr6T
	h+1CwgnJosxDoTGQHDJLnBC+r8sdfje311yGnSrC48KNz6kVG3ETEbXxkIldtS4P
	DeWcQ/wSyDFqcrEo/l5mNQ2K0Lp2iKaRYkSmtxXTFAGqSvnaN8aWIz5IKTOTOKFq
	+JDtlQ3sQxmiVDXWN/y5otPtf5J6aL25Ojv2dz/9vWnkrf3ALjS2QQAfJwUkVTgb
	dIt52+/rxwX4BWgeopjfh5rB3DIp5dxMR6YbMdiedI2eDNzrYRJVARzz4+Y3g9I/
	CxasV3YuMtzXVUxrwLXF7t0esmIiJJgRgZro+hqrnkdilacrPiCpg==
From: Alexander Gordeev <agordeev@linux.ibm.com>
To: Andrew Morton <akpm@linux-foundation.org>,
        Andrey Ryabinin <ryabinin.a.a@gmail.com>
Cc: Hugh Dickins <hughd@google.com>, Nicholas Piggin <npiggin@gmail.com>,
        Guenter Roeck <linux@roeck-us.net>, Juergen Gross <jgross@suse.com>,
        Jeremy Fitzhardinge <jeremy@goop.org>, linux-kernel@vger.kernel.org,
        linux-mm@kvack.org, kasan-dev@googlegroups.com,
        sparclinux@vger.kernel.org, xen-devel@lists.xenproject.org,
        linuxppc-dev@lists.ozlabs.org, linux-s390@vger.kernel.org
Subject: [PATCH v1 4/4] mm: Allow detection of wrong arch_enter_lazy_mmu_mode() context
Date: Mon,  7 Apr 2025 17:11:30 +0200
Message-ID: <5204eaec309f454efcb5a799c9e0ed9da1dff971.1744037648.git.agordeev@linux.ibm.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <cover.1744037648.git.agordeev@linux.ibm.com>
References: <cover.1744037648.git.agordeev@linux.ibm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-TM-AS-GCONF: 00
X-Proofpoint-ORIG-GUID: wG_AoPwbLBLy8-Y75yYVC-cpQvofPbGp
X-Proofpoint-GUID: Yijp_AWT6tzwOtSLybGJbVPGYVge3z23
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1095,Hydra:6.0.680,FMLib:17.12.68.34
 definitions=2025-04-07_04,2025-04-03_03,2024-11-22_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 impostorscore=0
 mlxscore=0 priorityscore=1501 phishscore=0 mlxlogscore=935 malwarescore=0
 clxscore=1015 suspectscore=0 spamscore=0 bulkscore=0 lowpriorityscore=0
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2502280000
 definitions=main-2504070104

The lazy MMU batching may be only be entered and left under the
protection of the page table locks for all page tables which may
be modified. Yet, there were cases arch_enter_lazy_mmu_mode()
was called without the locks taken, e.g. commit b9ef323ea168
("powerpc/64s: Disable preemption in hash lazy mmu mode").

Make default arch_enter|leave|flush_lazy_mmu_mode() callbacks
complain at least in case the preemption is enabled to detect
wrong contexts.

Most platforms do not implement the callbacks, so to aovid a
performance impact allow the complaint when CONFIG_DEBUG_VM
option is enabled only.

Signed-off-by: Alexander Gordeev <agordeev@linux.ibm.com>
---
 include/linux/pgtable.h | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)

diff --git a/include/linux/pgtable.h b/include/linux/pgtable.h
index e2b705c14945..959590bb66da 100644
--- a/include/linux/pgtable.h
+++ b/include/linux/pgtable.h
@@ -232,9 +232,18 @@ static inline int pmd_dirty(pmd_t pmd)
  * and the mode cannot be used in interrupt context.
  */
 #ifndef __HAVE_ARCH_ENTER_LAZY_MMU_MODE
-#define arch_enter_lazy_mmu_mode()	do {} while (0)
-#define arch_leave_lazy_mmu_mode()	do {} while (0)
-#define arch_flush_lazy_mmu_mode()	do {} while (0)
+static inline void arch_enter_lazy_mmu_mode(void)
+{
+	VM_WARN_ON(preemptible());
+}
+static inline void arch_leave_lazy_mmu_mode(void)
+{
+	VM_WARN_ON(preemptible());
+}
+static inline void arch_flush_lazy_mmu_mode(void)
+{
+	VM_WARN_ON(preemptible());
+}
 #endif
 
 #ifndef pte_batch_hint
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Mon Apr 07 15:11:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 15:11:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.940330.1340143 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1o8f-0005jn-88; Mon, 07 Apr 2025 15:11:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 940330.1340143; Mon, 07 Apr 2025 15:11: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 1u1o8f-0005jc-5M; Mon, 07 Apr 2025 15:11:53 +0000
Received: by outflank-mailman (input) for mailman id 940330;
 Mon, 07 Apr 2025 15:11: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=XdEV=WZ=linux.ibm.com=agordeev@srs-se1.protection.inumbo.net>)
 id 1u1o8e-0005V9-2g
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 15:11:52 +0000
Received: from mx0b-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com
 [148.163.158.5]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9fd8cb33-13c2-11f0-9ffb-bf95429c2676;
 Mon, 07 Apr 2025 17:11:48 +0200 (CEST)
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 5378eCst023081;
 Mon, 7 Apr 2025 15:11:36 GMT
Received: from pps.reinject (localhost [127.0.0.1])
 by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 45v0spm8qy-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Mon, 07 Apr 2025 15:11:36 +0000 (GMT)
Received: from m0356516.ppops.net (m0356516.ppops.net [127.0.0.1])
 by pps.reinject (8.18.0.8/8.18.0.8) with ESMTP id 537FBZII019687;
 Mon, 7 Apr 2025 15:11:35 GMT
Received: from ppma13.dal12v.mail.ibm.com
 (dd.9e.1632.ip4.static.sl-reverse.com [50.22.158.221])
 by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 45v0spm8qw-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Mon, 07 Apr 2025 15:11:35 +0000 (GMT)
Received: from pps.filterd (ppma13.dal12v.mail.ibm.com [127.0.0.1])
 by ppma13.dal12v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 537Ehxeh017825;
 Mon, 7 Apr 2025 15:11:34 GMT
Received: from smtprelay04.fra02v.mail.ibm.com ([9.218.2.228])
 by ppma13.dal12v.mail.ibm.com (PPS) with ESMTPS id 45uh2ke5uh-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Mon, 07 Apr 2025 15:11:32 +0000
Received: from smtpav06.fra02v.mail.ibm.com (smtpav06.fra02v.mail.ibm.com
 [10.20.54.105])
 by smtprelay04.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id
 537FBVTb14156090
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Mon, 7 Apr 2025 15:11:31 GMT
Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1])
 by IMSVA (Postfix) with ESMTP id 0B32320049;
 Mon,  7 Apr 2025 15:11:31 +0000 (GMT)
Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1])
 by IMSVA (Postfix) with ESMTP id E98012004D;
 Mon,  7 Apr 2025 15:11:30 +0000 (GMT)
Received: from tuxmaker.boeblingen.de.ibm.com (unknown [9.152.85.9])
 by smtpav06.fra02v.mail.ibm.com (Postfix) with ESMTPS;
 Mon,  7 Apr 2025 15:11:30 +0000 (GMT)
Received: by tuxmaker.boeblingen.de.ibm.com (Postfix, from userid 55669)
 id 85284E1613; Mon, 07 Apr 2025 17:11:30 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9fd8cb33-13c2-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc
	:content-transfer-encoding:date:from:in-reply-to:message-id
	:mime-version:references:subject:to; s=pp1; bh=ngcqzYVpe7xkxjw37
	TRZ0RrIQbWfDyVW1WAk2hgrGY8=; b=WCNS4jwcRyfhgA/oGV/C7ufKUl5usySJY
	JBkrPpB0Kj0xSv0oPCKUqsc+vBFB8dZYewnwf47Zz4FOayaQxY3jaFKQUDjdWPJt
	ugxuydo8+0yZUmA+ohR403/w5zwKv2CqsgJbjNB2KabEV+JDdelbBoH8nco6FKOT
	R5XE4tzipG+fY4VoyLYwQ+3uN9XzGnan0j6xdebHv5sDZ2LfDdbtnEUN2Il+RJjB
	cmqGM+BCXcv4bJsoArQ7K3cEPEa9kiS4jW2g+IRmJx8IwWMG+l59zFFBzIXRlwbd
	208F8LABLveUmxIFtMSBQJf8LY6ozCLBM9y7Hx9SlNJ6+MvGB6fBA==
From: Alexander Gordeev <agordeev@linux.ibm.com>
To: Andrew Morton <akpm@linux-foundation.org>,
        Andrey Ryabinin <ryabinin.a.a@gmail.com>
Cc: Hugh Dickins <hughd@google.com>, Nicholas Piggin <npiggin@gmail.com>,
        Guenter Roeck <linux@roeck-us.net>, Juergen Gross <jgross@suse.com>,
        Jeremy Fitzhardinge <jeremy@goop.org>, linux-kernel@vger.kernel.org,
        linux-mm@kvack.org, kasan-dev@googlegroups.com,
        sparclinux@vger.kernel.org, xen-devel@lists.xenproject.org,
        linuxppc-dev@lists.ozlabs.org, linux-s390@vger.kernel.org
Subject: [PATCH v1 3/4] mm: Protect kernel pgtables in apply_to_pte_range()
Date: Mon,  7 Apr 2025 17:11:29 +0200
Message-ID: <11dbe3ac88130dbd2b8554f9369cd93fe138c655.1744037648.git.agordeev@linux.ibm.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <cover.1744037648.git.agordeev@linux.ibm.com>
References: <cover.1744037648.git.agordeev@linux.ibm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-TM-AS-GCONF: 00
X-Proofpoint-GUID: Gsml-lqe4-oFygMCgc_o4kWGTfpeXFVg
X-Proofpoint-ORIG-GUID: 9HS87Mcesg4PbHflITRoaij8qwSTG9RL
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1095,Hydra:6.0.680,FMLib:17.12.68.34
 definitions=2025-04-07_04,2025-04-03_03,2024-11-22_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 clxscore=1011
 bulkscore=0 impostorscore=0 suspectscore=0 lowpriorityscore=0 mlxscore=0
 adultscore=0 phishscore=0 priorityscore=1501 spamscore=0 mlxlogscore=828
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2502280000
 definitions=main-2504070104

The lazy MMU mode can only be entered and left under the protection
of the page table locks for all page tables which may be modified.
Yet, when it comes to kernel mappings apply_to_pte_range() does not
take any locks. That does not conform arch_enter|leave_lazy_mmu_mode()
semantics and could potentially lead to re-schedulling a process while
in lazy MMU mode or racing on a kernel page table updates.

Signed-off-by: Alexander Gordeev <agordeev@linux.ibm.com>
---
 mm/kasan/shadow.c | 7 ++-----
 mm/memory.c       | 5 ++++-
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/mm/kasan/shadow.c b/mm/kasan/shadow.c
index edfa77959474..6531a7aa8562 100644
--- a/mm/kasan/shadow.c
+++ b/mm/kasan/shadow.c
@@ -308,14 +308,14 @@ static int kasan_populate_vmalloc_pte(pte_t *ptep, unsigned long addr,
 	__memset((void *)page, KASAN_VMALLOC_INVALID, PAGE_SIZE);
 	pte = pfn_pte(PFN_DOWN(__pa(page)), PAGE_KERNEL);
 
-	spin_lock(&init_mm.page_table_lock);
 	if (likely(pte_none(ptep_get(ptep)))) {
 		set_pte_at(&init_mm, addr, ptep, pte);
 		page = 0;
 	}
-	spin_unlock(&init_mm.page_table_lock);
+
 	if (page)
 		free_page(page);
+
 	return 0;
 }
 
@@ -401,13 +401,10 @@ static int kasan_depopulate_vmalloc_pte(pte_t *ptep, unsigned long addr,
 
 	page = (unsigned long)__va(pte_pfn(ptep_get(ptep)) << PAGE_SHIFT);
 
-	spin_lock(&init_mm.page_table_lock);
-
 	if (likely(!pte_none(ptep_get(ptep)))) {
 		pte_clear(&init_mm, addr, ptep);
 		free_page(page);
 	}
-	spin_unlock(&init_mm.page_table_lock);
 
 	return 0;
 }
diff --git a/mm/memory.c b/mm/memory.c
index f0201c8ec1ce..1f3727104e99 100644
--- a/mm/memory.c
+++ b/mm/memory.c
@@ -2926,6 +2926,7 @@ static int apply_to_pte_range(struct mm_struct *mm, pmd_t *pmd,
 			pte = pte_offset_kernel(pmd, addr);
 		if (!pte)
 			return err;
+		spin_lock(&init_mm.page_table_lock);
 	} else {
 		if (create)
 			pte = pte_alloc_map_lock(mm, pmd, addr, &ptl);
@@ -2951,7 +2952,9 @@ static int apply_to_pte_range(struct mm_struct *mm, pmd_t *pmd,
 
 	arch_leave_lazy_mmu_mode();
 
-	if (mm != &init_mm)
+	if (mm == &init_mm)
+		spin_unlock(&init_mm.page_table_lock);
+	else
 		pte_unmap_unlock(mapped_pte, ptl);
 
 	*mask |= PGTBL_PTE_MODIFIED;
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Mon Apr 07 15:11:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 15:11:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.940329.1340134 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1o8c-0005VH-Ur; Mon, 07 Apr 2025 15:11:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 940329.1340134; Mon, 07 Apr 2025 15:11: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 1u1o8c-0005VA-SA; Mon, 07 Apr 2025 15:11:50 +0000
Received: by outflank-mailman (input) for mailman id 940329;
 Mon, 07 Apr 2025 15:11: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=XdEV=WZ=linux.ibm.com=agordeev@srs-se1.protection.inumbo.net>)
 id 1u1o8c-0005V3-5e
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 15:11:50 +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 9eed0acb-13c2-11f0-9eaa-5ba50f476ded;
 Mon, 07 Apr 2025 17:11:47 +0200 (CEST)
Received: from pps.filterd (m0360072.ppops.net [127.0.0.1])
 by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 537En0ZD029644;
 Mon, 7 Apr 2025 15:11:34 GMT
Received: from pps.reinject (localhost [127.0.0.1])
 by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 45uwswvt33-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Mon, 07 Apr 2025 15:11:34 +0000 (GMT)
Received: from m0360072.ppops.net (m0360072.ppops.net [127.0.0.1])
 by pps.reinject (8.18.0.8/8.18.0.8) with ESMTP id 537FBXTb013844;
 Mon, 7 Apr 2025 15:11:33 GMT
Received: from ppma13.dal12v.mail.ibm.com
 (dd.9e.1632.ip4.static.sl-reverse.com [50.22.158.221])
 by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 45uwswvt2v-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Mon, 07 Apr 2025 15:11:33 +0000 (GMT)
Received: from pps.filterd (ppma13.dal12v.mail.ibm.com [127.0.0.1])
 by ppma13.dal12v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 537F2iM6018432;
 Mon, 7 Apr 2025 15:11:32 GMT
Received: from smtprelay04.fra02v.mail.ibm.com ([9.218.2.228])
 by ppma13.dal12v.mail.ibm.com (PPS) with ESMTPS id 45uh2ke5ug-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Mon, 07 Apr 2025 15:11:32 +0000
Received: from smtpav06.fra02v.mail.ibm.com (smtpav06.fra02v.mail.ibm.com
 [10.20.54.105])
 by smtprelay04.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id
 537FBVQW33751652
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Mon, 7 Apr 2025 15:11:31 GMT
Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1])
 by IMSVA (Postfix) with ESMTP id E82452004B;
 Mon,  7 Apr 2025 15:11:30 +0000 (GMT)
Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1])
 by IMSVA (Postfix) with ESMTP id D3F6E20049;
 Mon,  7 Apr 2025 15:11:30 +0000 (GMT)
Received: from tuxmaker.boeblingen.de.ibm.com (unknown [9.152.85.9])
 by smtpav06.fra02v.mail.ibm.com (Postfix) with ESMTPS;
 Mon,  7 Apr 2025 15:11:30 +0000 (GMT)
Received: by tuxmaker.boeblingen.de.ibm.com (Postfix, from userid 55669)
 id 7F795E10FC; Mon, 07 Apr 2025 17:11:30 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9eed0acb-13c2-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc
	:content-transfer-encoding:date:from:in-reply-to:message-id
	:mime-version:references:subject:to; s=pp1; bh=JAdRtQpYpJ83Wan/q
	ay54BErF461aFj9Lbn233V6/Vo=; b=IKe6NKPK0RQuaHMhk18ftPiOYYmCBCWNo
	B9AMFWR/OSyAEWP+S886dEpJeibdEmZl36pABv5K+wup8TiyL8NG8ViK9od6oBRM
	3hfWr3Nzyj+cpTRWraAtGGyrEizF/IwgeyvpxnuqLvo0iHgyxm7f3x2y4rrF4BuZ
	8DVbuOci3sgrMA9QHMuCtrLrrnIMC0eF9Lq4xmJACPC8mwWkrruApDLDO3y+TF6K
	EKoPhfmZsym89+7c65PcFL6w5iov3VKT/uGxaF9PJzGWmz4HwXohtM7m83O2AHTx
	G4AzXPBlc8+L56yqeI1A9XrdpDtpRX+WW/G2StWfINFf09T/NbHTA==
From: Alexander Gordeev <agordeev@linux.ibm.com>
To: Andrew Morton <akpm@linux-foundation.org>,
        Andrey Ryabinin <ryabinin.a.a@gmail.com>
Cc: Hugh Dickins <hughd@google.com>, Nicholas Piggin <npiggin@gmail.com>,
        Guenter Roeck <linux@roeck-us.net>, Juergen Gross <jgross@suse.com>,
        Jeremy Fitzhardinge <jeremy@goop.org>, linux-kernel@vger.kernel.org,
        linux-mm@kvack.org, kasan-dev@googlegroups.com,
        sparclinux@vger.kernel.org, xen-devel@lists.xenproject.org,
        linuxppc-dev@lists.ozlabs.org, linux-s390@vger.kernel.org
Subject: [PATCH v1 1/4] kasan: Avoid sleepable page allocation from atomic context
Date: Mon,  7 Apr 2025 17:11:27 +0200
Message-ID: <ad1b313b6e3e1a84d2df6f686680ad78ae99710c.1744037648.git.agordeev@linux.ibm.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <cover.1744037648.git.agordeev@linux.ibm.com>
References: <cover.1744037648.git.agordeev@linux.ibm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-TM-AS-GCONF: 00
X-Proofpoint-GUID: noh5DKX9Jwz7KQQbR0xgtrf0Cnrok7JA
X-Proofpoint-ORIG-GUID: B9e39pOuvk43sXxp1B5Vd8FFaIlzYizr
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1095,Hydra:6.0.680,FMLib:17.12.68.34
 definitions=2025-04-07_04,2025-04-03_03,2024-11-22_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 mlxscore=0
 bulkscore=0 mlxlogscore=999 spamscore=0 adultscore=0 clxscore=1011
 phishscore=0 lowpriorityscore=0 impostorscore=0 suspectscore=0
 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.19.0-2502280000 definitions=main-2504070104

apply_to_page_range() enters lazy MMU mode and then invokes
kasan_populate_vmalloc_pte() callback on each page table walk
iteration. The lazy MMU mode may only be entered only under
protection of the page table lock. However, the callback can
go into sleep when trying to allocate a single page.

Change __get_free_page() allocation mode from GFP_KERNEL to
GFP_ATOMIC to avoid scheduling out while in atomic context.

Signed-off-by: Alexander Gordeev <agordeev@linux.ibm.com>
---
 mm/kasan/shadow.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/mm/kasan/shadow.c b/mm/kasan/shadow.c
index 88d1c9dcb507..edfa77959474 100644
--- a/mm/kasan/shadow.c
+++ b/mm/kasan/shadow.c
@@ -301,7 +301,7 @@ static int kasan_populate_vmalloc_pte(pte_t *ptep, unsigned long addr,
 	if (likely(!pte_none(ptep_get(ptep))))
 		return 0;
 
-	page = __get_free_page(GFP_KERNEL);
+	page = __get_free_page(GFP_ATOMIC);
 	if (!page)
 		return -ENOMEM;
 
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Mon Apr 07 15:12:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 15:12:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.940335.1340164 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1o8n-0006JN-Lr; Mon, 07 Apr 2025 15:12:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 940335.1340164; Mon, 07 Apr 2025 15:12: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 1u1o8n-0006JA-Ij; Mon, 07 Apr 2025 15:12:01 +0000
Received: by outflank-mailman (input) for mailman id 940335;
 Mon, 07 Apr 2025 15:12: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=XdEV=WZ=linux.ibm.com=agordeev@srs-se1.protection.inumbo.net>)
 id 1u1o8m-0005V3-7K
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 15:12:00 +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 9f63baf5-13c2-11f0-9eaa-5ba50f476ded;
 Mon, 07 Apr 2025 17:11:47 +0200 (CEST)
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 537A4FUU022813;
 Mon, 7 Apr 2025 15:11:34 GMT
Received: from pps.reinject (localhost [127.0.0.1])
 by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 45v0spm8qr-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Mon, 07 Apr 2025 15:11:34 +0000 (GMT)
Received: from m0356516.ppops.net (m0356516.ppops.net [127.0.0.1])
 by pps.reinject (8.18.0.8/8.18.0.8) with ESMTP id 537EmSRd022056;
 Mon, 7 Apr 2025 15:11:33 GMT
Received: from ppma11.dal12v.mail.ibm.com
 (db.9e.1632.ip4.static.sl-reverse.com [50.22.158.219])
 by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 45v0spm8qm-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Mon, 07 Apr 2025 15:11:33 +0000 (GMT)
Received: from pps.filterd (ppma11.dal12v.mail.ibm.com [127.0.0.1])
 by ppma11.dal12v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 537BsEeX018863;
 Mon, 7 Apr 2025 15:11:32 GMT
Received: from smtprelay06.fra02v.mail.ibm.com ([9.218.2.230])
 by ppma11.dal12v.mail.ibm.com (PPS) with ESMTPS id 45uhj26182-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Mon, 07 Apr 2025 15:11:32 +0000
Received: from smtpav05.fra02v.mail.ibm.com (smtpav05.fra02v.mail.ibm.com
 [10.20.54.104])
 by smtprelay06.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id
 537FBVvI21823898
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Mon, 7 Apr 2025 15:11:31 GMT
Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1])
 by IMSVA (Postfix) with ESMTP id F08A920043;
 Mon,  7 Apr 2025 15:11:30 +0000 (GMT)
Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1])
 by IMSVA (Postfix) with ESMTP id DB1AD20040;
 Mon,  7 Apr 2025 15:11:30 +0000 (GMT)
Received: from tuxmaker.boeblingen.de.ibm.com (unknown [9.152.85.9])
 by smtpav05.fra02v.mail.ibm.com (Postfix) with ESMTPS;
 Mon,  7 Apr 2025 15:11:30 +0000 (GMT)
Received: by tuxmaker.boeblingen.de.ibm.com (Postfix, from userid 55669)
 id 7C925E0EFF; Mon, 07 Apr 2025 17:11:30 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9f63baf5-13c2-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc
	:content-transfer-encoding:date:from:message-id:mime-version
	:subject:to; s=pp1; bh=57tQfDvPr0M3Zui29k18xkGtBTpws7x4blA2kXuxz
	E8=; b=iGIlK/uiqdwuuf9zAUYWVbUStdknMBEmUkgThwL21bB/Sd94w2sdtqjJ6
	dJe+6DW30QoIDJsNbKc/dZcuKhjcDWF6ylYzDQJGNnUk0+Ygr+50BWT4LDTxGWqY
	8padbZLV871KozFzwN9bOqXMlqjJ7RbObNcLqR3NAQYePc0p6mCr5tM1Z5Odo619
	BGJg7HjYIXonr8831xQs777AncSUFfbhV2RPC8LzfnFZQoyNqzoMPy4Ja4Jd8NPr
	Rxf1l6vOppm1MTueitrL0VGC56TA8UD47RsK6/d0JYqhbNuE0NIwbVM5FbiEmYju
	AvVYm2qccIa5K0tX1PNa5CBQs1tFw==
From: Alexander Gordeev <agordeev@linux.ibm.com>
To: Andrew Morton <akpm@linux-foundation.org>,
        Andrey Ryabinin <ryabinin.a.a@gmail.com>
Cc: Hugh Dickins <hughd@google.com>, Nicholas Piggin <npiggin@gmail.com>,
        Guenter Roeck <linux@roeck-us.net>, Juergen Gross <jgross@suse.com>,
        Jeremy Fitzhardinge <jeremy@goop.org>, linux-kernel@vger.kernel.org,
        linux-mm@kvack.org, kasan-dev@googlegroups.com,
        sparclinux@vger.kernel.org, xen-devel@lists.xenproject.org,
        linuxppc-dev@lists.ozlabs.org, linux-s390@vger.kernel.org
Subject: [PATCH v1 0/4] mm: Fix apply_to_pte_range() vs lazy MMU mode
Date: Mon,  7 Apr 2025 17:11:26 +0200
Message-ID: <cover.1744037648.git.agordeev@linux.ibm.com>
X-Mailer: git-send-email 2.45.2
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-TM-AS-GCONF: 00
X-Proofpoint-GUID: K4njNltb3a39PrtZv2_ODEkMFtlx96GJ
X-Proofpoint-ORIG-GUID: HmhRseE7QFEwjmUit74LYcV6TtFzZkug
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1095,Hydra:6.0.680,FMLib:17.12.68.34
 definitions=2025-04-07_04,2025-04-03_03,2024-11-22_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 clxscore=1015
 bulkscore=0 impostorscore=0 suspectscore=0 lowpriorityscore=0 mlxscore=0
 adultscore=0 phishscore=0 priorityscore=1501 spamscore=0 mlxlogscore=625
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2502280000
 definitions=main-2504070104

Hi All,

This series is an attempt to fix the violation of lazy MMU mode context
requirement as described for arch_enter_lazy_mmu_mode():

    This mode can only be entered and left under the protection of
    the page table locks for all page tables which may be modified.

On s390 if I make arch_enter_lazy_mmu_mode() -> preempt_enable() and
arch_leave_lazy_mmu_mode() -> preempt_disable() I am getting this:

    [  553.332108] preempt_count: 1, expected: 0
    [  553.332117] no locks held by multipathd/2116.
    [  553.332128] CPU: 24 PID: 2116 Comm: multipathd Kdump: loaded Tainted:
    [  553.332139] Hardware name: IBM 3931 A01 701 (LPAR)
    [  553.332146] Call Trace:
    [  553.332152]  [<00000000158de23a>] dump_stack_lvl+0xfa/0x150
    [  553.332167]  [<0000000013e10d12>] __might_resched+0x57a/0x5e8
    [  553.332178]  [<00000000144eb6c2>] __alloc_pages+0x2ba/0x7c0
    [  553.332189]  [<00000000144d5cdc>] __get_free_pages+0x2c/0x88
    [  553.332198]  [<00000000145663f6>] kasan_populate_vmalloc_pte+0x4e/0x110
    [  553.332207]  [<000000001447625c>] apply_to_pte_range+0x164/0x3c8
    [  553.332218]  [<000000001448125a>] apply_to_pmd_range+0xda/0x318
    [  553.332226]  [<000000001448181c>] __apply_to_page_range+0x384/0x768
    [  553.332233]  [<0000000014481c28>] apply_to_page_range+0x28/0x38
    [  553.332241]  [<00000000145665da>] kasan_populate_vmalloc+0x82/0x98
    [  553.332249]  [<00000000144c88d0>] alloc_vmap_area+0x590/0x1c90
    [  553.332257]  [<00000000144ca108>] __get_vm_area_node.constprop.0+0x138/0x260
    [  553.332265]  [<00000000144d17fc>] __vmalloc_node_range+0x134/0x360
    [  553.332274]  [<0000000013d5dbf2>] alloc_thread_stack_node+0x112/0x378
    [  553.332284]  [<0000000013d62726>] dup_task_struct+0x66/0x430
    [  553.332293]  [<0000000013d63962>] copy_process+0x432/0x4b80
    [  553.332302]  [<0000000013d68300>] kernel_clone+0xf0/0x7d0
    [  553.332311]  [<0000000013d68bd6>] __do_sys_clone+0xae/0xc8
    [  553.332400]  [<0000000013d68dee>] __s390x_sys_clone+0xd6/0x118
    [  553.332410]  [<0000000013c9d34c>] do_syscall+0x22c/0x328
    [  553.332419]  [<00000000158e7366>] __do_syscall+0xce/0xf0
    [  553.332428]  [<0000000015913260>] system_call+0x70/0x98

This exposes a KASAN issue fixed with patch 1 and apply_to_pte_range()
issue fixed with patches 2-3. Patch 4 is a debug improvement on top,
that could have helped to notice the issue.

Commit b9ef323ea168 ("powerpc/64s: Disable preemption in hash lazy mmu
mode") looks like powerpc-only fix, yet not entirely conforming to the
above provided requirement (page tables itself are still not protected).
If I am not mistaken, xen and sparc are alike.

Thanks!

Alexander Gordeev (4):
  kasan: Avoid sleepable page allocation from atomic context
  mm: Cleanup apply_to_pte_range() routine
  mm: Protect kernel pgtables in apply_to_pte_range()
  mm: Allow detection of wrong arch_enter_lazy_mmu_mode() context

 include/linux/pgtable.h | 15 ++++++++++++---
 mm/kasan/shadow.c       |  9 +++------
 mm/memory.c             | 33 +++++++++++++++++++++------------
 3 files changed, 36 insertions(+), 21 deletions(-)

-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Mon Apr 07 15:12:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 15:12:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.940337.1340174 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1o8r-0006es-Va; Mon, 07 Apr 2025 15:12:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 940337.1340174; Mon, 07 Apr 2025 15: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 1u1o8r-0006ef-Qt; Mon, 07 Apr 2025 15:12:05 +0000
Received: by outflank-mailman (input) for mailman id 940337;
 Mon, 07 Apr 2025 15:12: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=XdEV=WZ=linux.ibm.com=agordeev@srs-se1.protection.inumbo.net>)
 id 1u1o8p-0005V9-VG
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 15:12:03 +0000
Received: from mx0b-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com
 [148.163.158.5]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9ff6c0a7-13c2-11f0-9ffb-bf95429c2676;
 Mon, 07 Apr 2025 17:11:48 +0200 (CEST)
Received: from pps.filterd (m0360072.ppops.net [127.0.0.1])
 by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5378IrTc029651;
 Mon, 7 Apr 2025 15:11:34 GMT
Received: from pps.reinject (localhost [127.0.0.1])
 by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 45uwswvt35-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Mon, 07 Apr 2025 15:11:34 +0000 (GMT)
Received: from m0360072.ppops.net (m0360072.ppops.net [127.0.0.1])
 by pps.reinject (8.18.0.8/8.18.0.8) with ESMTP id 537F41Wv022508;
 Mon, 7 Apr 2025 15:11:33 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 45uwswvt30-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Mon, 07 Apr 2025 15:11:33 +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 537DrCNJ011062;
 Mon, 7 Apr 2025 15:11:33 GMT
Received: from smtprelay04.fra02v.mail.ibm.com ([9.218.2.228])
 by ppma22.wdc07v.mail.ibm.com (PPS) with ESMTPS id 45uf7yege2-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Mon, 07 Apr 2025 15:11:33 +0000
Received: from smtpav04.fra02v.mail.ibm.com (smtpav04.fra02v.mail.ibm.com
 [10.20.54.103])
 by smtprelay04.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id
 537FBVtw16122324
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Mon, 7 Apr 2025 15:11:31 GMT
Received: from smtpav04.fra02v.mail.ibm.com (unknown [127.0.0.1])
 by IMSVA (Postfix) with ESMTP id 10E992004E;
 Mon,  7 Apr 2025 15:11:31 +0000 (GMT)
Received: from smtpav04.fra02v.mail.ibm.com (unknown [127.0.0.1])
 by IMSVA (Postfix) with ESMTP id EDA652004B;
 Mon,  7 Apr 2025 15:11:30 +0000 (GMT)
Received: from tuxmaker.boeblingen.de.ibm.com (unknown [9.152.85.9])
 by smtpav04.fra02v.mail.ibm.com (Postfix) with ESMTPS;
 Mon,  7 Apr 2025 15:11:30 +0000 (GMT)
Received: by tuxmaker.boeblingen.de.ibm.com (Postfix, from userid 55669)
 id 823D8E15AF; Mon, 07 Apr 2025 17:11:30 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9ff6c0a7-13c2-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc
	:content-transfer-encoding:date:from:in-reply-to:message-id
	:mime-version:references:subject:to; s=pp1; bh=OcNsdUXLajTS6Up4y
	b87KBBXCRng/iRPfXkDho493IU=; b=WOoAcnFvpuNxNEiTrGC3QZIq5o+jYBCOb
	LyLvBIz0pxghOpRjonhLcZeU5GpFEhaJUVrjW4lEjOfClydMsoxIlT1tdJfSYTrD
	w4ni3gxfKYkXD7bD8soBquTEt6UrKrs12uA2MgZo7ShPARvXziKp6H/vG/OR0j4l
	xZ01w6SQLYfrZApqIj7cCKLpACusgLuv8O/JsHOSLcLihXpk7kQfCZv5I8mWLAkI
	jB3Jm3YdqkahCDJoZ3Dg5tjezoL+c8gFXxALeoX8dMZALeFXSQU3kyz0vIaTpzdk
	0hozKrK7Ar8LywsJy5kov8c0Zzsq4KVBjV6jp2caOQi+tFMaWRfCQ==
From: Alexander Gordeev <agordeev@linux.ibm.com>
To: Andrew Morton <akpm@linux-foundation.org>,
        Andrey Ryabinin <ryabinin.a.a@gmail.com>
Cc: Hugh Dickins <hughd@google.com>, Nicholas Piggin <npiggin@gmail.com>,
        Guenter Roeck <linux@roeck-us.net>, Juergen Gross <jgross@suse.com>,
        Jeremy Fitzhardinge <jeremy@goop.org>, linux-kernel@vger.kernel.org,
        linux-mm@kvack.org, kasan-dev@googlegroups.com,
        sparclinux@vger.kernel.org, xen-devel@lists.xenproject.org,
        linuxppc-dev@lists.ozlabs.org, linux-s390@vger.kernel.org
Subject: [PATCH v1 2/4] mm: Cleanup apply_to_pte_range() routine
Date: Mon,  7 Apr 2025 17:11:28 +0200
Message-ID: <93102722541b1daf541fce9fb316a1a2614d8c86.1744037648.git.agordeev@linux.ibm.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <cover.1744037648.git.agordeev@linux.ibm.com>
References: <cover.1744037648.git.agordeev@linux.ibm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-TM-AS-GCONF: 00
X-Proofpoint-GUID: ZjXrqfzVuI4O6PuB71DztWSnTeaDAz2F
X-Proofpoint-ORIG-GUID: B8AxCnBSacob3HedwAwYgmrsIk7eP_GG
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1095,Hydra:6.0.680,FMLib:17.12.68.34
 definitions=2025-04-07_04,2025-04-03_03,2024-11-22_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 mlxscore=0
 bulkscore=0 mlxlogscore=912 spamscore=0 adultscore=0 clxscore=1011
 phishscore=0 lowpriorityscore=0 impostorscore=0 suspectscore=0
 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.19.0-2502280000 definitions=main-2504070104

Reverse 'create' vs 'mm == &init_mm' conditions and move
page table mask modification out of the atomic context.

Signed-off-by: Alexander Gordeev <agordeev@linux.ibm.com>
---
 mm/memory.c | 28 +++++++++++++++++-----------
 1 file changed, 17 insertions(+), 11 deletions(-)

diff --git a/mm/memory.c b/mm/memory.c
index 2d8c265fc7d6..f0201c8ec1ce 100644
--- a/mm/memory.c
+++ b/mm/memory.c
@@ -2915,24 +2915,28 @@ static int apply_to_pte_range(struct mm_struct *mm, pmd_t *pmd,
 				     pte_fn_t fn, void *data, bool create,
 				     pgtbl_mod_mask *mask)
 {
+	int err = create ? -ENOMEM : -EINVAL;
 	pte_t *pte, *mapped_pte;
-	int err = 0;
 	spinlock_t *ptl;
 
-	if (create) {
-		mapped_pte = pte = (mm == &init_mm) ?
-			pte_alloc_kernel_track(pmd, addr, mask) :
-			pte_alloc_map_lock(mm, pmd, addr, &ptl);
+	if (mm == &init_mm) {
+		if (create)
+			pte = pte_alloc_kernel_track(pmd, addr, mask);
+		else
+			pte = pte_offset_kernel(pmd, addr);
 		if (!pte)
-			return -ENOMEM;
+			return err;
 	} else {
-		mapped_pte = pte = (mm == &init_mm) ?
-			pte_offset_kernel(pmd, addr) :
-			pte_offset_map_lock(mm, pmd, addr, &ptl);
+		if (create)
+			pte = pte_alloc_map_lock(mm, pmd, addr, &ptl);
+		else
+			pte = pte_offset_map_lock(mm, pmd, addr, &ptl);
 		if (!pte)
-			return -EINVAL;
+			return err;
+		mapped_pte = pte;
 	}
 
+	err = 0;
 	arch_enter_lazy_mmu_mode();
 
 	if (fn) {
@@ -2944,12 +2948,14 @@ static int apply_to_pte_range(struct mm_struct *mm, pmd_t *pmd,
 			}
 		} while (addr += PAGE_SIZE, addr != end);
 	}
-	*mask |= PGTBL_PTE_MODIFIED;
 
 	arch_leave_lazy_mmu_mode();
 
 	if (mm != &init_mm)
 		pte_unmap_unlock(mapped_pte, ptl);
+
+	*mask |= PGTBL_PTE_MODIFIED;
+
 	return err;
 }
 
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Mon Apr 07 15:14:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 15:14:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.940367.1340185 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1oBY-0008Cf-HI; Mon, 07 Apr 2025 15:14:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 940367.1340185; Mon, 07 Apr 2025 15:14: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 1u1oBY-0008CY-DD; Mon, 07 Apr 2025 15:14:52 +0000
Received: by outflank-mailman (input) for mailman id 940367;
 Mon, 07 Apr 2025 15: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=LsCM=WZ=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1u1oBX-0008CJ-1o
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 15:14:51 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on20626.outbound.protection.outlook.com
 [2a01:111:f403:2415::626])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0a904402-13c3-11f0-9ffb-bf95429c2676;
 Mon, 07 Apr 2025 17:14:48 +0200 (CEST)
Received: from DM4PR12MB5277.namprd12.prod.outlook.com (2603:10b6:5:390::7) by
 MW4PR12MB7437.namprd12.prod.outlook.com (2603:10b6:303:21a::18) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.33; Mon, 7 Apr
 2025 15:14:43 +0000
Received: from DM4PR12MB5277.namprd12.prod.outlook.com
 ([fe80::9ab:5367:ba51:af6e]) by DM4PR12MB5277.namprd12.prod.outlook.com
 ([fe80::9ab:5367:ba51:af6e%5]) with mapi id 15.20.8606.033; Mon, 7 Apr 2025
 15:14: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: 0a904402-13c3-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=rtvI4ZxAOeupz9xzOuGFWa6OiPKKbp/d7QuzXpgc3j1ABjWJeSbQ0yksKtxCfmnEh24I7gboAGF+eXA/sejBfm+5XEZtG3BLGNF+l1Txv2uTuSbNPxn2NYd+ONbfHpxY7V1h1Ucml6LvBvf0aJ7smVnZL0nqAdeOoo4P5pHiX4ItKIW1s4OEP77as1U8wXBQ/KltwQS3T8gVNTaPuMvlJ1GODe4FGbVi5PGBDp+GC7Ju5fvEKE1iakQHCPwSB/dICbPzMxPs5dfsoNBOpwyyCRkvKcek4JK79nXPNpZG4uG+hgZF5/hFwvoeNK69Sxt78qRzArNR2SAAHE4grI9jNg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Nmy7bupmu8H7pQnshs28F/818m1j+3BhXE/REpSBdrM=;
 b=LtZ1/PCY19LK6AKgzmjKJCQC2Tc6N074NAqjbhkjrmQpwCcNZ8KkID5Jl1/XfUWZQoOjabi/lJhIY2wBUeOdwJqBitCjSQkbyF+q4ZHzaIFlJsfBChkDUrjvi8cABWQ+FHy6eQHVh7guXPUXX/DJlj6LEDxrgT7hGSZgLaQrReEATUS4HPkfuj7Lk2CO/3JZM6LOwWNkrN5cLFiyRsnP3VChM5Zqa+dA0sPo8QyGFH2ftbuUrRbk3RWbeytf7fxJ9FKg/km+2rySGhoJ9yB88c73h64rVXhQGFy6O98F86pHz9osoelTVuAxRTZ66m/ReXUUmET1y2OzD6aIw5e8+w==
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=Nmy7bupmu8H7pQnshs28F/818m1j+3BhXE/REpSBdrM=;
 b=GE2wfTnNSvehr2VhEej6AZ0gcnqqhptTfxcByUH1MSKFjV3tnYE/wGaFlDxDPMWTOoSHw2I622jDPepjmSrSBeYZD8IOXb15Gv5LhSuWv0w0n6V4N+buSbJvqCILbO9ua8kkOZn/6hghX/YimV52uyN5MZmDKT5cTFOqrJTcH7U=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <844fc54a-d7cb-423f-b3b7-203fcdac87b7@amd.com>
Date: Mon, 7 Apr 2025 17:14:37 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/link: Drop .fixup section from non-x86 architectures
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Shawn Anastasio <sanastasio@raptorengineering.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <20250403110003.1461522-1-andrew.cooper3@citrix.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <20250403110003.1461522-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR4P281CA0051.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:cc::19) To DM4PR12MB5277.namprd12.prod.outlook.com
 (2603:10b6:5:390::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DM4PR12MB5277:EE_|MW4PR12MB7437:EE_
X-MS-Office365-Filtering-Correlation-Id: 495f046c-7fc0-4419-47f2-08dd75e6ecd9
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|7416014|376014|366016|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?UUp5ajlMTW5JN2d1cjVoT0V0NUlNTWdVMG1GYzRKbVR2TDB1emxuTUlJWi9V?=
 =?utf-8?B?YUdNUW9Sdld0ejJFQ21NTmhmY2JoTWNDZkZHdERucnU0aVdRYzFqT0lNOXMr?=
 =?utf-8?B?czVNeFZsV2JLZ1NOQ1pwNzNVYzNrZmtIbDliWVhMd0FxSEVld0k2aklkM3B0?=
 =?utf-8?B?ZVhtYmE0WE40ZHJ6TzhPZFRLa0tjT25LNURmQ092b0hNRlNZanNaSTQ5WGxB?=
 =?utf-8?B?ci9VbWVpZ3lobjh2ZkNpbEE5aWh4MWRsL2U4dFlqTFB4Rjh5NXNmeDNTL0RL?=
 =?utf-8?B?TmxhUTlDZVgreHZ5N0xtaFRuYUszdW5WV1Y5Ny9EUE4rcXNvUnRaMTJsVHFk?=
 =?utf-8?B?YldydDFqdXlMQVhrTWU4bStlQnhOSTR2SnI2U1FFdlY5MHp2S2RSamg0Sllu?=
 =?utf-8?B?K0NWb0ZVaE5rS0t6SzVodGlUSml0TlgxTTBoblFxU3hVYWFrL1VJZHZJSVRX?=
 =?utf-8?B?eE5lS3lNUjVVempRSmdSVHpBNFRtR1lZOFlIWXpNd3ZyREtqL0J0QVF1U0gv?=
 =?utf-8?B?UE1IVUFXSGNieDJ5TmUycGN5dk1NZ1lGWFJLNmI2VVFnb1AvVWRIcHBsbHBR?=
 =?utf-8?B?cjY4VGMyK21kR3VGMFdtNGc3KyttbG1zSTMrb0pYSVVFdUdHR1BZcTZ3RW5k?=
 =?utf-8?B?U2NEWFV3aUgxSzkyVWlPb2RRS2hJUUluVEpOWFp3bHMvelUvNlRhYkh5V0pR?=
 =?utf-8?B?YitHcWFOczZpMFlaOEwwd0p4VGVUcCtyOHQ1TlUvN0JVMUk1VURrZURzNndj?=
 =?utf-8?B?b2dzcHdUT1lUanhHQUlkOG5YL1BVVlQzNkU3enhDTVNqZ0pEbkRLbk8wQmZ2?=
 =?utf-8?B?bVNKUEFpR0VyR1Y2aUZOOWllOGJnbGc2WTN5R2JXa2RkT2hCVG41R3FtY1NQ?=
 =?utf-8?B?R1l2YllMU0E1NGdZdENFM2U3UExJSU1PMVh3aGRHOGNIUFB0TElvRk9JM3Vi?=
 =?utf-8?B?djE5M2pZT0J4alVsb3hqZ0wxVjV1NmMxTndFek4rM2VDeEpQOGRtK2RiOUp2?=
 =?utf-8?B?b1Irc0ttNmNEWE1XcHBsOHhmOThmeXZ5RWQvaWdLNDVVbmFCN094STdwb2xw?=
 =?utf-8?B?T3dyYlY3Si9tcVBaelBrSStSYVgxRkROem91V0tOL1pmeXpuQTU3QXBHVmJm?=
 =?utf-8?B?cDVMV3R6TFBvbUVtYkNaZWJxbWI3Y3pwRklXQk5UMC92bGN4dUViUlA5U0ZZ?=
 =?utf-8?B?Zmd4ZlN2THM2b0RVYUEyUTA1MXVjakZSQTF2dHdvdzVCWWo1UGp2UG1oc1hT?=
 =?utf-8?B?bzRSYlJBYWsrRkp4TWVodFMxQmx4MU9vY3RJczVvVjZiOEMxOEFGd1EzZTJP?=
 =?utf-8?B?Wmt6Wmo3R3BrNUJ6SzdWeWxVWmd6NWhhaEtPQlRpTlI2NWZYcW9OZ1gyZ1d3?=
 =?utf-8?B?d0ZTUTY2SVdOZUxRdXVVOWtZL2VEQ2Q1M0RnUlFpWUQzK2JmNE53azh4L0JG?=
 =?utf-8?B?SmNLb0UxUDV3SjNscElsOE9NYy9lRVVEVEZzVlNLK2hCSDVRSXNJbUV1TWVp?=
 =?utf-8?B?aFdJdXh3b2xoMGlLWkptV1dGTmFOUEord3BZMUpqTS8xMUFyOVZyU2JLM1R3?=
 =?utf-8?B?ek1DRlhUS3l5a3dHV2I2cjk5Smd4NEJ0V2czT1N4VkRScEZaeUxPSFFpaWpU?=
 =?utf-8?B?c0tNK0pvb1JTVmJySGk1ZWpSbGxFUWM0a1dVYWR0RHRoalNUd3VHS2VPWnRh?=
 =?utf-8?B?YTBRR1FmQmhvd3NxajJHdzFiRWhzOHpOOTN3WVhyNC9wWUhFcUFockVVdU8y?=
 =?utf-8?B?aXhxelhRVDJEUStOOUpiNmNxZXZxUTBGbDB3L0R0VTVNNUdkOU5TZlNFRDd2?=
 =?utf-8?B?ditwY1ppdElGU0k3NnpxY2ZROTJXeEFJeU1mV2lBeXZ6L0wyWllZTkpQbU81?=
 =?utf-8?Q?YkNm8x7xNMQ7B?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB5277.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(376014)(366016)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?bVVQMnlCQzZFTitGbjJBY0xHZFUxUXdncXF6cFo3a0RVRTYrT25vRDc2RC9L?=
 =?utf-8?B?c2RzSHV5b1RpMlM3NkZzNzhvZXJwU0xkT2pXdHE1Tm50RFZ5OFVzZG5aQXZh?=
 =?utf-8?B?aElOTTZqYVYxNnNjNUJGNjNxN295VUZNa3UwWmFQUkRqeE5LNDV1czhHOUts?=
 =?utf-8?B?M2wrUmdsOTZUemJya2RXc3pOVnJMMEFWb0UvYmxqdldzN240UGQ0d3VoRWU5?=
 =?utf-8?B?REJwQjZBVTRieXVmUnc1OFZoQ3hwc3pLK0hldlZ6YVhyZS9xaGdhNStYL0Jn?=
 =?utf-8?B?WWVac0hxMnJzY3E3YndqdzZrakdXbXBMU2FjRldvZnVNWW9BQmwxaFRaVlRq?=
 =?utf-8?B?M1dNRWliay9QZEUxMlNUa1RoUVFLcmd5TzVOS1VnVlBGVlZyZTFLdTlaR2dP?=
 =?utf-8?B?R1RlTG0yRTN1RHhKOFUzNnR0WkhaWGw2bU5WYkxPTzhvQnNpN2ZqTmdzZkhy?=
 =?utf-8?B?VmVjTDF4Mzk2TGhMTTFEWVZHdWgxa1N1ZFdsZFoweHpYelVqUlNyekpQVitY?=
 =?utf-8?B?a2dNOGVxNEVPeXlQT0ozbUpyVHlYdGQzbmRHSm9qUVZQbjZhODRVRkdYWDF0?=
 =?utf-8?B?OUJYRldLVDZNcnpPOE9NUFhRZmdMdDZGcmRCUlA0TkRyTndSRlgrV21VdnE1?=
 =?utf-8?B?SVIyVjdhczhvVUdMOElGYTJjOVY1cDVSMHBwZmNUcTcyU2dQMnpPVkJhV1d2?=
 =?utf-8?B?TDVvQnNhQWxCT2ZWUjJxakF2SnJaWUo1cGo0WmR3QmlpMlo3UFVzZVlXVDM1?=
 =?utf-8?B?Um1FbnZEbnpzejlveHcvSmMvVlJwbUUvZE10S0FWSHV6SUpuLzdDaThMN09W?=
 =?utf-8?B?MEUwR0kxQVcrZXkxdHc3eFZuTkJKVGVtQytlS0U2WlpnTXI4akoxazJLTE9j?=
 =?utf-8?B?eHFrTHJNcDBVMjJaSUJzQ0FvV0J6a0lMSmxFSENzS0dTdkdmTEUvN3gvWWVw?=
 =?utf-8?B?RXc3VEhNbDR6WlFybWh3QVFkblRCVmxOcnl4RUpLeFVtUS9JaXd4VHRqZEdZ?=
 =?utf-8?B?WG16NDNrWGk5QUZGTlBnN3RURFBvMWFNUHpLZjl2VUlNVzJBclRCL0c0Vmpu?=
 =?utf-8?B?Y0dqc1BaRXB5NkJEbXRja2JNdjA4WmhvckpYem9EYjFXMC9xRDM5Yjh1ZCtO?=
 =?utf-8?B?TndaMmdidUJDb010blVoeWZWZzZsT2xPbVhxVFhwWHlWZDRBdU9WTjF3c0Y0?=
 =?utf-8?B?ODFQZk9lcW8wdi9PTEZ3aEdHSTh4S0tWS1cxcHhrdWJsSVc0NDdFQ3V3ejZU?=
 =?utf-8?B?MkxvZmJ5RW1DOGJHa29kWmFHNExyTnhOVFp1YS8rdVduM01tNVNHUklJM0F1?=
 =?utf-8?B?YTJGMmZ0VG5EZDEyc3VRWjBqakZxVTVFcFV6L2p5UlNna3lyaHNFb0I1ZVdh?=
 =?utf-8?B?b2Z1L1FuQ1Fpa2FJUEtkRlZuTDJMVkc1c1pnNE9Gb2QxNVNOUTJXb29obDNv?=
 =?utf-8?B?eUpqSTZQSjkyU0FoMzFwRE5TQlpFOTB6RmtVUVVQK1RuMTRaZ1dXUDZpNE9x?=
 =?utf-8?B?ZFI0NGtHbnAvaC80Lzh2ME0wNUVNOFJCMXJEQ2lYRHRnNTljSGlzSzQ2WmUz?=
 =?utf-8?B?OCtrU1haOU03NlhIMUtNTHJmSmt2R0J1NWhsbGNTREc4WVJqSzlCcHorQmNa?=
 =?utf-8?B?TGd1SDVoMGpPUW9rQlBuTVQwbDhTbUZPdlhKS0I4bk9BMElyZ1NrWkdVK2VW?=
 =?utf-8?B?T2Fvd1A3Zkp3bW1mOFlMM2NkTDFNOE5pTjMyNGhNNXNDelhUSTNsRGNPK3Fz?=
 =?utf-8?B?TVpFaHFPWVNqNnJWSnE3SGRGZVVISVQ1NFpWZlRPZkdOdk5tZXJjY2QvcGtr?=
 =?utf-8?B?ZmVENHdiR24vTEZmNk1pd2puZW82U28xNlhZK1hSTGJVR1l4MDRYR3RsT3RB?=
 =?utf-8?B?bTFRbHpjM0dqeTZiaXV5K2ZlS3h1UnJiQ1VPZk1ldFZZQzlsNVNRZ2dTRkYv?=
 =?utf-8?B?aGlSb3BQQ1JLTWVDaE9qSjJqZEdTb1lNZm1HM1VUSjhyaUE5MXZwTEJwQ2sx?=
 =?utf-8?B?ZmZKeTIrYndqUUNnVlQ5SG9rd1BleVpPcDhLRm5CNXVSeUYra1ViOXRReEh3?=
 =?utf-8?B?S0hSZXRhQUNYYlpMV0laUHFwcnFSbnpveGw4am84UWw5Z0E0RGhIQm9rZ0JN?=
 =?utf-8?Q?7lC+VyGrEQJCXtZQGkg3RfatF?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 495f046c-7fc0-4419-47f2-08dd75e6ecd9
X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB5277.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Apr 2025 15:14:43.5665
 (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: JOb5JT7CvrCi9cIIFK2HTgBqHzEwu6YHqH2aUaaJ6fSeqKNoztvxhk8zu6xnH59v
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR12MB7437



On 03/04/2025 13:00, Andrew Cooper wrote:
> 
> 
> The fixup section is only used by x86, and we're working to remove it there
> too.  Logic in the fixup section is unconnected to it's origin site, and
> interferes with backtraces/etc.
> 
> Remove the section from the architectures which don't use it.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Michal Orzel <michal.orzel@amd.com> #Arm

~Michal



From xen-devel-bounces@lists.xenproject.org Mon Apr 07 15:19:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 15:19:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.940381.1340195 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1oGG-0000Nj-2V; Mon, 07 Apr 2025 15:19:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 940381.1340195; Mon, 07 Apr 2025 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 1u1oGF-0000Nc-U4; Mon, 07 Apr 2025 15:19:43 +0000
Received: by outflank-mailman (input) for mailman id 940381;
 Mon, 07 Apr 2025 15:19: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=C/xl=WZ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u1oGF-0000NW-0q
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 15:19:43 +0000
Received: from mail-wm1-x332.google.com (mail-wm1-x332.google.com
 [2a00:1450:4864:20::332])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ba0d9bf4-13c3-11f0-9ffb-bf95429c2676;
 Mon, 07 Apr 2025 17:19:41 +0200 (CEST)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-43d2d952eb1so30839245e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 07 Apr 2025 08:19:41 -0700 (PDT)
Received: from [10.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-39c3020d9cfsm12348615f8f.78.2025.04.07.08.19.40
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 07 Apr 2025 08:19: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: ba0d9bf4-13c3-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744039180; x=1744643980; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=GbMYU1+GOcM2LB/9eTTQn6lzNTRKL1wgV9ssKAeDmL0=;
        b=Y5hGu0q8lGD9lQnO7v8iG70dRK2cdouzBcp4ZGwTD0p5QJmm0MbkB29Vfmrw/ECCIl
         JpmGU4vZVszO2XqtwsWtavulhRJj8TpZ1zTWJa0IShxpYt9mbTsPddBbIEkRnJtrYIrW
         nkphWkchVbDywgTR9EOLGmdNtABtWpVVs93vhWFyCTbfbFNMbbdhg+4BjmlHmUhTv4yJ
         XSbgP22NELPX9aD5LomMI4pgGNE+b2yjIz2LGza0dlvRg+YTrntX4N85XIDsKL5MqPpw
         lRABrZqSe5asTWZkjdIObDCvpaqNmrs9h43Cvg0wIW8F2VyfP9VRH2ONDuffbJjLVFNi
         VWVQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744039180; x=1744643980;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=GbMYU1+GOcM2LB/9eTTQn6lzNTRKL1wgV9ssKAeDmL0=;
        b=ccCs/9oGu0tHp+4/hSqu9vBxw0TDXfV21A99qOznoK6WTK7UlWs+sBKaa145g/cYM7
         PxMsgbVdRj4oela3OLeAbF5yoRVj8IjmGb/S30/AysoZ3UrL1k77u3WOIuifX/bmA4WR
         b+QpMkpwJg6/B2nWUCnBbCzor1IuE+TD3kbvtH51G01raEA6GyS4hRAt6/Mu4wjU6NBv
         AaowrUUF9GSWKctS1iuV9ZicuOoyFj9gtM0MtXOI1IUYb1DvCz8FSfliTQ50aLiMhTwq
         QChiGYvV6w/vpaPBxr5+1v5dvcFjzV2aUJ3v6YrlCz8Sl5gtYHuNFOILrE1yMOm9fAEw
         e47g==
X-Forwarded-Encrypted: i=1; AJvYcCU2OvtWi+s1ArjlxGg+muz6t0XxN/UD1gUs08z5A09kJMLCNjTS0MyAVnjCjZ3cONxusobTP0RjwHs=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwXzPDjAcqO7JzPFCEDCWZv4iLV3Ufumo5WakI1OTs7Q8Sy2en9
	Pl7N1UVRn47eQIcRSccvQpdmGiTxH1E7va/CS7VdzSpgf9LeyLz+A0h+Usl4MQ==
X-Gm-Gg: ASbGncthS8xzSPtBzQuh9a/eIJ1bMonDjDjhK1QUU3vdrtbNkbqWd6stNKpSG2ueLNt
	jjdnwi+iPTII+yz8PFAiZZ17fi5v5ktUqay2xVuiXdvzSINlnGZzczh0Dr6Z/giRhdC6rLxuElF
	fVEzO6BtNn6c3iLSw+e8q/6UDs/wCgrEgJJcHqCtJAKdQf+wE0ah+//Gep4KoK5cyzVo/x2bYdI
	nFd3Ex5mp4e2JjMwXjRfkbH/LTeohI0jA4vPM+p2UITA6LrHtx/6sDAupsdlvcKPcH2IN6pyrcU
	WEBGNzX/TJjiEch28GmpGK7WmHAn8LcyEv/dn4tfttJ+9+7a/WB2TpE4HKo4rRrtpIEau11eok4
	BiMKfUKZWHvUCi8xg6v7TasbrBRSOMg==
X-Google-Smtp-Source: AGHT+IFSVq0iemkCUUDotYc+Dz/ktdxBdgFniE+SXrAuqov0yYeFJmCMW9WTTKFXPR05PzliEeLdng==
X-Received: by 2002:a05:6000:4006:b0:39a:ca0c:fc90 with SMTP id ffacd0b85a97d-39d6fc28539mr7869960f8f.14.1744039180539;
        Mon, 07 Apr 2025 08:19:40 -0700 (PDT)
Message-ID: <292a7c46-dc2d-4047-9967-23c0dd6a375a@suse.com>
Date: Mon, 7 Apr 2025 17:19:39 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/mem-sharing: short-circuit p2m_is_shared() when
 MEM_SHARING=n
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Tamas K Lengyel <tamas@tklengyel.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <5a261173-d225-44fc-9078-4030ba11cfd8@suse.com>
 <00df5854-0ef6-459e-9cb7-978a9633fc7a@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: <00df5854-0ef6-459e-9cb7-978a9633fc7a@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 07.04.2025 16:50, Andrew Cooper wrote:
> On 03/04/2025 9:41 am, Jan Beulich wrote:
>> Some of the uses of dom_cow aren't easily DCE-able (without extra
>> #ifdef-ary), and hence it being constantly NULL when MEM_SHARING=n
>> misguides Coverity into thinking that there may be a NULL deref in
>>
>>         if ( p2m_is_shared(t) )
>>             d = dom_cow;
>>
>>         if ( get_page(page, d) )
>>             return page;
>>
>> (in get_page_from_mfn_and_type()). Help the situation by making
>> p2m_is_shared() be compile-time false when MEM_SHARING=n, thus also
>> permitting the compiler to DCE some other code.
>>
>> Note that p2m_is_sharable() isn't used outside of mem_sharing.c, and
>> hence P2M_SHARABLE_TYPES can simply be left undefined when
>> MEM_SHARING=n.

Note this for ...

>> --- a/xen/arch/x86/include/asm/p2m.h
>> +++ b/xen/arch/x86/include/asm/p2m.h
>> @@ -136,11 +136,16 @@ typedef unsigned int p2m_query_t;
>>  #endif
>>  
>>  /* Shared types */
>> +#ifdef CONFIG_MEM_SHARING
>>  /* XXX: Sharable types could include p2m_ram_ro too, but we would need to
>>   * reinit the type correctly after fault */
>>  #define P2M_SHARABLE_TYPES (p2m_to_mask(p2m_ram_rw) \
>>                              | p2m_to_mask(p2m_ram_logdirty) )
>>  #define P2M_SHARED_TYPES   (p2m_to_mask(p2m_ram_shared))
>> +#else
>> +/* P2M_SHARABLE_TYPES deliberately not provided. */
>> +#define P2M_SHARED_TYPES 0
> 
> You need P2M_SHARABLE_TYPES too, or p2m_is_sharable() will start
> becoming a syntax error.

... what you're saying here. If you did take that into consideration, then
please be more specific about the concern(s) you have.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Apr 07 15:23:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 15:23:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.940410.1340203 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1oJq-0002zA-FX; Mon, 07 Apr 2025 15:23:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 940410.1340203; Mon, 07 Apr 2025 15: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 1u1oJq-0002z3-Cg; Mon, 07 Apr 2025 15:23:26 +0000
Received: by outflank-mailman (input) for mailman id 940410;
 Mon, 07 Apr 2025 15:23: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=lW7C=WZ=bounce.vates.tech=bounce-md_30504962.67f3ede9.v1-58732c32288a433ebd907414df01abc5@srs-se1.protection.inumbo.net>)
 id 1u1oJo-0002yx-Em
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 15:23:24 +0000
Received: from mail180-44.suw31.mandrillapp.com
 (mail180-44.suw31.mandrillapp.com [198.2.180.44])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3db1879a-13c4-11f0-9eaa-5ba50f476ded;
 Mon, 07 Apr 2025 17:23:22 +0200 (CEST)
Received: from pmta11.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail180-44.suw31.mandrillapp.com (Mailchimp) with ESMTP id
 4ZWXzF23zpz705fLn
 for <xen-devel@lists.xenproject.org>; Mon,  7 Apr 2025 15:23:21 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 58732c32288a433ebd907414df01abc5; Mon, 07 Apr 2025 15:23: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: 3db1879a-13c4-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1744039401; x=1744309401;
	bh=dPlX+pXatbLy7fsNtby6lXZfl846Y44f7uBgpjEmKEo=;
	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=Zqb9M7SlgmcBpMhPtRy932lOU+bofQra1TvI4CR56VS2++D0OzC92YGUxkisZUBsr
	 rdRrKtS4jPSu8eKz+cUVwz6ZJl5+KUbpRa2uDVApTgGQ33pAKCgJss4lerYdUZJcvf
	 h9GHRqMDaQmSPXzgWd49qIY+XPqnyBzAOiEsy2DTS4f3XEurWQltfs/7bNjcwT+FDa
	 ezIq8kpPtbPeS7JnnC61Djwn7SERtZPckqnyEBQXMsJF3uDI7OW1zA8Y4aSnqc1GEe
	 f48T954ue0ZpSCllfbciFM+zzdKEL0jCGAOJa0Sceu2GHkTDsoL/T+7oqJgGNFuy+P
	 nqRACocgRiUxg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1744039401; x=1744299901; i=anthony.perard@vates.tech;
	bh=dPlX+pXatbLy7fsNtby6lXZfl846Y44f7uBgpjEmKEo=;
	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=sAk2ZZWhQR2JAVSm1zj5IfAu2k0AR/VWsD+t1kb+mxS6IFVY7JGsC51RS9Srx1gRR
	 QRcf0COtQAcnRSO4c6PBQw2IOVUnFgH4EsynBUox2F9cFVWYdRVEF5NXeP9tSPjax6
	 OLfq63BqtL0/Zf54dNhCw0V38P5HYi1aC2ALxV4XngeEUgXYgElNZswz6St8C30p6J
	 DEJrWScNn/xYtHiRZfemEyknuDhr6bmFFZB5qVxxpbaj/or5VuROTMWz3Dy3lIHuVG
	 uNFtxpoKCZGvd0Fq872rt01B4i1wTSMXZx3rsEtHLxooB67j0uiq4TUyfDM/IIhx7l
	 i+mkcB4NWmIbA==
From: "Anthony PERARD" <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20Ping:=20[PATCH]=20libxc/PM:=20correct=20(not=20just)=20error=20handling=20in=20xc=5Fget=5Fcpufreq=5Fpara()?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1744039400554
To: "Jan Beulich" <jbeulich@suse.com>
Cc: "Juergen Gross" <jgross@suse.com>, xen-devel@lists.xenproject.org
Message-Id: <Z_Pt6Pv8_RrV4J2U@l14>
References: <df676738-19e7-47e6-977f-25d6d13ccc50@suse.com> <e0028d85-668a-464b-aac5-ac8a79ea9bf5@suse.com> <Z_PI2UNn2C4GKqYw@l14> <75d288ba-1006-46f4-8f51-6d49c5e8449d@suse.com>
In-Reply-To: <75d288ba-1006-46f4-8f51-6d49c5e8449d@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.58732c32288a433ebd907414df01abc5?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250407:md
Date: Mon, 07 Apr 2025 15:23:21 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Mon, Apr 07, 2025 at 03:23:48PM +0200, Jan Beulich wrote:
> On 07.04.2025 14:45, Anthony PERARD wrote:
> > On Mon, Apr 07, 2025 at 01:38:24PM +0200, Jan Beulich wrote:
> >> On 27.03.2025 14:32, Jan Beulich wrote:
> >>> From their introduction all xc_hypercall_bounce_pre() uses, when they
> >>> failed, would properly cause exit from the function including cleanup,
> >>> yet without informing the caller of the failure. Purge the unlock_1
> >>> label for being both pointless and mis-named.
> >>>
> >>> An earlier attempt to switch to the usual split between return value and
> >>> errno wasn't quite complete.
> >>>
> >>> HWP work made the cleanup of the "available governors" array
> >>> conditional, neglecting the fact that the condition used may not be the
> >>> condition that was used to allocate the buffer (as the structure field
> >>> is updated upon getting back EAGAIN). Throughout the function, use the
> >>> local variable being introduced to address that.
> >>>
> >>> Fixes: 4513025a8790 ("libxc: convert sysctl interfaces over to hypercall buffers")
> >>> Amends: 73367cf3b4b4 ("libxc: Fix xc_pm API calls to return negative error and stash error in errno")
> >>> Fixes: 31e264c672bc ("pmstat&xenpm: Re-arrage for cpufreq union")
> >>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> >>
> >> May I ask for an ack or comments towards what needs changing?
> > 
> > Calling xc_get_cpufreq_para with:
> > 
> >     user_para = {
> >         .cpu_num = 0,
> >         .freq_num = 0,
> >         .gov_num = 9,
> >     };
> > 
> > seems broken. It's looks like the `scaling_available_governors` bounce
> > buffer is going to be used without been allocated properly handled, with
> > this patch.
> 
> The local variable "in_gov_num" controls its allocation and use, together with
> has_num. "Use" as in passing to set_xen_guest_handle(). The only further use

When has_num == 0, `in_gov_num` is only used to set `sys_para->gov_num`.
It also make a conditional call to xc_hypercall_bounce_post() but
there's nothing to do.

Why user_para.gov_num seems to control the size of a buffer, but then
that buffer is just discarded under some condition with this patch?

Is the proposed parameter (where only gov_num is set) a valid input? If
not, why is it not rejected before making the hypercall? (with this
patch)

> of that bounce buffer is on the exit path, i.e. it being passed to
> xc_hypercall_bounce_post(). The backing function xc__hypercall_bounce_post()
> is dealing fine with the buffer being NULL. And that's what it would be left
> at from DECLARE_NAMED_HYPERCALL_BOUNCE() if buffer allocation is skipped.

-- 

Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Mon Apr 07 15:24:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 15:24:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.940435.1340213 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1oL8-0004As-PQ; Mon, 07 Apr 2025 15:24:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 940435.1340213; Mon, 07 Apr 2025 15:24: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 1u1oL8-0004Al-MV; Mon, 07 Apr 2025 15:24:46 +0000
Received: by outflank-mailman (input) for mailman id 940435;
 Mon, 07 Apr 2025 15: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=LsCM=WZ=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1u1o9n-0005V3-A9
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 15:13:03 +0000
Received: from NAM12-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam12on20614.outbound.protection.outlook.com
 [2a01:111:f403:200a::614])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id cb3b1aaa-13c2-11f0-9eaa-5ba50f476ded;
 Mon, 07 Apr 2025 17:13:01 +0200 (CEST)
Received: from DM4PR12MB5277.namprd12.prod.outlook.com (2603:10b6:5:390::7) by
 SJ2PR12MB8111.namprd12.prod.outlook.com (2603:10b6:a03:4fe::17) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.33; Mon, 7 Apr
 2025 15:12:57 +0000
Received: from DM4PR12MB5277.namprd12.prod.outlook.com
 ([fe80::9ab:5367:ba51:af6e]) by DM4PR12MB5277.namprd12.prod.outlook.com
 ([fe80::9ab:5367:ba51:af6e%5]) with mapi id 15.20.8606.033; Mon, 7 Apr 2025
 15: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: cb3b1aaa-13c2-11f0-9eaa-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=MtrLfD/Yq8cFOJgQ6Pf1cyuoHHpeA8rwMhkZU58Kqso6+NpQDgaJPQzfDCy9Q8QHulPI0QijU08w3C4ZldsVNd7gx7J5fxym8Z7WwcuIX3YaLtOIohndwQlQqE88yqhRZbbDS+MdOxk/qjigTXAtgZpg41uNrJaZ5M+K08jwXRT+Uw9qhtXkneARcXSMPcrksBigEbkzbpCQh3dwZwrZjwyZaj5sGel4qDJjAzZN2seh/5G3HMeA2ppo3/wEj/+GK7t3nhMZuFIz6Lvm8pVYX8pm+AGZ1zvnuP+7vdD42sSS4g8INKy2eOPFsASZdOENwOH+fO0TPhk5CJNSPDdFTA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=yXxhfpBP5/w6R4H8kjYqrOY7hTQbBnkef6sJ9e0luL0=;
 b=WsOSkte0rnmHNwFUP/yZTSpY9vCyvaDIm3BF6jZQ7uZ2UFu/A4XuCddX6fo/BVmDevqWBbgL9ib7P68pX6zSqFllxDCiDc/w/g3fKTTt51fJ8ZSJg9AF1Zis5rCs4WvtZSB9ZRKJvCzP0h13/fj6lWsnWfSU85EUENCxcJ3EXAaI3LTX3WwOlUM2duTFIgcduEDR+K/zxpswQBQVZzkrmKK7agvuCKTKzzJyhmZy453lg3vDLE2EdUneU0KBm44E4hen/A3vq4pSjm1MZKBeppFQswtCSw9NwWRcwDR/inQgXanw61wHknNHPNI4qGWhMz6WYfl71PfT0HxU1vNbeg==
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=yXxhfpBP5/w6R4H8kjYqrOY7hTQbBnkef6sJ9e0luL0=;
 b=TwgCugKv+kEKo992q2mjdhCKoINui0eWOyRYcBodji3PJrYhKOb1I3QmaFycEKIPudx3mxnN9U2SPnASwO+Tqs+ltam6HIcWI1n4bdx4Dzw8FwDgHPbdJ0wkHVwFV0Xu4IZVhu2ZjlRGLs5ecIKD+5nZzx8l5l2xXLNz6bQySYk=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <dfbcfb4b-a045-4db5-b367-d1673d893c5c@amd.com>
Date: Mon, 7 Apr 2025 17:12:52 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] xen: Consistently use 'static' first
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>, Stefano Stabellini <sstabellini@kernel.org>,
 Julien Grall <julien@xen.org>, Volodymyr Babchuk
 <Volodymyr_Babchuk@epam.com>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Nicola Vetrini <nicola.vetrini@bugseng.com>, consulting@bugseng.com
References: <20250403204301.1658436-1-andrew.cooper3@citrix.com>
 <20250403214139.1671954-1-andrew.cooper3@citrix.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <20250403214139.1671954-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR5P281CA0006.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:f2::16) To DM4PR12MB5277.namprd12.prod.outlook.com
 (2603:10b6:5:390::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DM4PR12MB5277:EE_|SJ2PR12MB8111:EE_
X-MS-Office365-Filtering-Correlation-Id: 0691a64a-62a5-479d-3139-08dd75e6ad74
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|7416014|376014|366016|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?WVVqbkVRWnVoODlFM1I4MUFwUzJ1K0dKNU0yNVE3azdYUHlmOGxwT0lETGRZ?=
 =?utf-8?B?K0pHMzdpYUhMVStYY1ZYR1JiOEdmV1Q2WjQrUTJHZ1RTQWI4QjZBaWNWaUFT?=
 =?utf-8?B?aXExcHp6dGpTZno4Mkpyc1VYajBwVTlEZHZ3eERzN3pabGlsNDg2TU5wWGk4?=
 =?utf-8?B?d25YTkM5OHQ1bnhWZXdJK04rUWtBUERkNURWc28zZnVuOTNpaTI0Y08rRzdh?=
 =?utf-8?B?aWN3RmwwKzcwUWxwSllHTmZRUnh2WWxJVUFST0hQM0VWZHZZMnNIMjR2ZWE4?=
 =?utf-8?B?SjZaYTRnU21nNGpuQU14bFdnR283bk1vSmJ2Wm5qOTVLYmFVd3VycjZNbk9o?=
 =?utf-8?B?a3k3K1dhekVrSGtYcFpHN1JCRXBWNlIvQ1BGYXZWRzZsbk5OMkhicU85dExm?=
 =?utf-8?B?S2doVENURFhScEpJUjZWVXJBWHNHVmN3MjBiWkJSN1BtTFlMYjFJWGN0VDZZ?=
 =?utf-8?B?cTBYa0dwMFhIWXRUVDN5K3d1emdPczdIc1o1K0dIbytUNnFidjI4aDRvRG9B?=
 =?utf-8?B?S0RibGFSeTE5cHFaeXBZYXluc1JQOVFIRmVObEdjVHF6S25MQUt6UEJ4WmdJ?=
 =?utf-8?B?aUpMNFJ1VmZXdWw1STdEZkhvaU5ZTkNqRGtsQXI0elYxQkRhNjZCNmVkTHVi?=
 =?utf-8?B?UWdaNVFYdUFPWklSK3RkOFl6TFRSS0RqZEN5YitDUlM1aVNyMUtES2F4dTZQ?=
 =?utf-8?B?UEMzdkxYV2szeEY1MmZiRGdWUnRrbldEeEdLR3NFUVFuc1V4ZTBySjJsMmlI?=
 =?utf-8?B?dGwzYmFaYmJzKytTYWRvZVJEMCtqQVBJN3gzMCtDb3cxNkR2YjhBcDg2Wlhr?=
 =?utf-8?B?RVRZWmFxWkRTQWFPb0NOOGxrblQ4NkNTTGd0TlhhQVNLUngyRlZ1N1V0cTFh?=
 =?utf-8?B?K1VRRmswV3RTbGcyYUpCMU5MN3VHT0lzeEZ3djd6LzRVRy9DRVlXbjlSamdx?=
 =?utf-8?B?Z3VuU0pnWGt5ZXN6WlcxSTBaWmZiTi9kUjNNUXd0b2xzOWtMYXowVGpEVnVO?=
 =?utf-8?B?Z2cyeGlYRSt3QjBnRFBOTFgycUFLQnZQQlI1bzNlYS9sTXY4OXU5V0ZhaFpy?=
 =?utf-8?B?ZHVNSzZlakk2K0NpN205YXdsRzRoRS90VUJUbFY4WGpncUJ1dmloRFZwcGYx?=
 =?utf-8?B?bDJwQ1Z6K0Jna21ISGpaNS8ySlB5Q1NXS3JQd3ZkM1RvMnJIU1RzTThVYUpm?=
 =?utf-8?B?VnUyNm53Ti9vT2YrQUd1a2luSmoycVBra1BkRTZqNVQ1M2xXY0hyS3RNZjZQ?=
 =?utf-8?B?bnV4YTVTTU5HYWs3U1FFNnhvc3lFKy9PZEVEdjZhVFcrV2pzMVNXVXFBVkJI?=
 =?utf-8?B?RmJ5ZjY5bmRJVFJYYjl0a2pLbEhHWXk2d0J3TDdkT3YzZWlQdVg3anU0aDZ4?=
 =?utf-8?B?VEg5SUVtMWRWT3ZkeWZlNXArOWFJMUFDdW8rOGN4OTRiSkRuUEJrSHlKaWll?=
 =?utf-8?B?UnpMZzY2R1laQ3dJUjNqVklpeUJma0YzanpsUjV5MmlUakZUVkNBZmQ1Qzdk?=
 =?utf-8?B?VFF0K2dmSXJ6MzdvNHBaUjdOQzNIYTZkcmNleGs3ckprVjF1Vm40Nlp3UGdD?=
 =?utf-8?B?bkd4VDFwZlZUUlQ2Zk4xa2hpWXYxTy8yRWRrRU5EeEd2TVFISmtLZW04ZCti?=
 =?utf-8?B?N05ydW9aSEtFSmkxUkRRVGlJL0dDdlB4N1pHc0hyTk91UFdKQWlmZVlGRnkr?=
 =?utf-8?B?NUx1RGloa0tmMC9ZUW1adkJHVjJld1ZQMHNYV2txUzVVUURFTTUvaDZ4K3ls?=
 =?utf-8?B?WkNWWWhGSDc2b3ppaTd0cU5TVWRnZ2N5WlFJRnRrWnBpL0FJYWw5Ylk4a2RQ?=
 =?utf-8?B?U2FpcmRLblAyNWp1ZTBJOXg5UE1ydHZTTUdZVVI2Q3ZHRGljR2pHdGk1bVdo?=
 =?utf-8?Q?qQ6CZBWlXcgm7?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB5277.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(376014)(366016)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?MVlNZkZFN2srZENoQmJSSWw0c1R3VVpvckdlbmE3aWljUTZHSVdsY283QVZD?=
 =?utf-8?B?bVNuWllRNkZpM0ZVSlU4OUd0OWFEYkpBejFLcU9JeHNhUHdOWm9NV1o0YVFy?=
 =?utf-8?B?YTdBZGVrdm9DNnJZQ3FuTXVXaUc5Rm41eURRenB3WjFEdkZsMlloc0c2clR4?=
 =?utf-8?B?SHJWcElLQVlyMzMzRUVtN2ZOT2N6MFZJdS9HRHpyVnJmbUlPd1ZhczJQK3JJ?=
 =?utf-8?B?cmVmMVNSNUZQei9MT0xrZUJkbk01TTNNaWZBM2NiRTFKVmlMZ2MvZ1g0Ullm?=
 =?utf-8?B?c2I2TWFXMnIzOGRTM2hHMVFxZ2RkaHRKNGcvVGpZcnVYS0MzbUt4eE9XNS9S?=
 =?utf-8?B?MVh1dy9QdVgxbzdRcVBNcmF6WkZNYkR1NitXSWFKenVHR2laUWNSV1BBeWZJ?=
 =?utf-8?B?dlZRN0VhQjc3WlJaNXM2cWFlbXpRWkZyYi8vYzJLVE5Wbko3SjBNS091cE4z?=
 =?utf-8?B?RmdXZXhWbW5TSnNWMVJPVC84T3cwVGc4eFJCWko4d094LzFkVWMwQTRKZiti?=
 =?utf-8?B?S0hDcHNKWE1OaFNSOE4zdUtTYVZmaXcydjdtMmVPK3A5MkNvM0NjWi9rUUd2?=
 =?utf-8?B?STNFZVV5VXJQVHNhcUppckxQZDVXWlhxZTRPV09sL2xzNUJhSkh5V2ZoRi9K?=
 =?utf-8?B?eWJkWXZqdHRkOXhVSzdUaGo0aXIxK2lsRWJoa01acGNjdHJDalNUNUgzekJr?=
 =?utf-8?B?NlhQblpBQ0FQdXNDclBBYnExY2pMTUNHY1BHQjM4ekZEZmQwWEJrR09oa0dK?=
 =?utf-8?B?dHl6Vk9aWEl3YThPVHRqaGFlbnFuUEhLWlpSbzFXUFpIQVZHY1B3K3ZoVm1y?=
 =?utf-8?B?OFEvdk5IdFlweXpDd0ZueHVjdE9VYjdQUXU5clVMc2taUVc3N0VvcWZzQUpV?=
 =?utf-8?B?a0g5bW5PdmZMZGtwbG81MldGbE0zNHlMTUNmWTVwbThIOUNSNXBFd2JML2Ux?=
 =?utf-8?B?L3VpNXd0Y0wzOVNpSkZOUGF6UkhuVXBYZlNnNmR5a1dVWmNoTnYrU29hM1A1?=
 =?utf-8?B?NTVNUjF5WFlDeTh4a2djV3JyeUpDMDFyQkV1UHh0VHlTUkQ0aDc2aGI3dWY3?=
 =?utf-8?B?Q0hSOGpCbmFFWVJBUVh1ZkJRTVltS0FrZGI4a21nMnJVYnpOTEdKdFBFSmUy?=
 =?utf-8?B?eVkraGZuZUkxaDVNbDY2bGhHSkU5VUxKN25McTJaL3diTHB4d1BaM05QTXZ3?=
 =?utf-8?B?TnZWY2xLV0lvZm00MmtWaDltSFYwU2tIaUhFTm16UklQMWVuVC91TEI5ZDRq?=
 =?utf-8?B?bXhaVFVRSG9kVTRiNHB1RDRvK1c1eDgvV0JtWURjWStTVm9oTFAvRURjcnAy?=
 =?utf-8?B?UnFUVWlwR1M1cG82aEZOT0cyUmdnamc4L2ZBS3JWaVBvQ1lpcHpuSGYrMEEv?=
 =?utf-8?B?RU9Wa0lqK1AyTFB5N1NoZ01WcnZKUXFxYi9zU1hOcVdZYmZUdlJUZmlicnk2?=
 =?utf-8?B?a2h6L2kzL2lic1p0dGRSOWR0U1phTVVuVVBLc21saitqOFRJQktEV2loNThX?=
 =?utf-8?B?clRqb1FlQVBzd1FCQlhFM2h1eGdhMHdKOEtKTW5ZTGVPV051dXZPMHNXcUVL?=
 =?utf-8?B?b2wrWm00akJqSW91NkRwcFMxRVAvTVlodURBSTcyczFXQVJnL2lxa1JuZ3g5?=
 =?utf-8?B?MmhYRGNoMlpqMjdydXRNZWFmTDc1akI4Tk0vRFRoOVA1QXlFRTdNcFpCRCs5?=
 =?utf-8?B?Y1hxQjNPUjhqVTNtRngwSmdqUlpuTEFvNHdQTVlIZjVONDY3NTczdE54di83?=
 =?utf-8?B?ak9rTUJ5aFY3ODhqcUpRSzE1bXlmNG1vRTU3NnU2VkpheXNROURjQUhzUGZz?=
 =?utf-8?B?ZDc4ZytlSDNuR1BPN0ZsczJZYUR5Nis5QUl0OHlzVzdiVG1SZGtDc1drTVRI?=
 =?utf-8?B?b3NKdnVnVHlCSUZsbmtwTkhrR1lFeFlwZlhGbjRhUjcrM3dPUC80VkpSMDFF?=
 =?utf-8?B?MnM2VDYxdkQyNVUrNW1aNnNtUlgyWlZXRjVnNEkzam5UaG5BVmtuRGt2eTdJ?=
 =?utf-8?B?NlljZVJuWi9JWDBwcWx1SndVVVQvb3dlZEcwaDVZWFBCMWM3b1hQU0ErbEpu?=
 =?utf-8?B?eVZaNUhYa2pkTjFTK2JsQ0RPSENVYTRkWWtCMnFiNjE4VFVkZk1VUTREc2gr?=
 =?utf-8?Q?KTWZhmRh5cCwtLUjHV1z0cWD8?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0691a64a-62a5-479d-3139-08dd75e6ad74
X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB5277.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Apr 2025 15:12:57.3732
 (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: X/G9mRyvih2rthRAUqltqob17vZRX5+HDaQWPSzDt1cE6lDxJRTyN/o/bTHTe8ip
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR12MB8111



On 03/04/2025 23:41, Andrew Cooper wrote:
> 
> 
> MISRA C:2012 Amendment 3 (which is under consideration, but not used by Xen
> yet) is more particular about having the storage class specifier first.
> 
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Michal Orzel <michal.orzel@amd.com> #Arm

~Michal



From xen-devel-bounces@lists.xenproject.org Mon Apr 07 15:35:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 15:35:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.940461.1340224 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1oVG-0008C6-R5; Mon, 07 Apr 2025 15:35:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 940461.1340224; Mon, 07 Apr 2025 15:35:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1oVG-0008Bz-OO; Mon, 07 Apr 2025 15:35:14 +0000
Received: by outflank-mailman (input) for mailman id 940461;
 Mon, 07 Apr 2025 15:35: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=ZxXC=WZ=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u1oVF-0008Ad-OD
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 15:35:13 +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 e55db4de-13c5-11f0-9eaa-5ba50f476ded;
 Mon, 07 Apr 2025 17:35:12 +0200 (CEST)
Received: by mail-wr1-x435.google.com with SMTP id
 ffacd0b85a97d-3995ff6b066so2450586f8f.3
 for <xen-devel@lists.xenproject.org>; Mon, 07 Apr 2025 08:35:12 -0700 (PDT)
Received: from localhost.localdomain (host-92-26-98-202.as13285.net.
 [92.26.98.202]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39c301b760bsm12497082f8f.55.2025.04.07.08.35.11
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 07 Apr 2025 08:35: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: e55db4de-13c5-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744040112; x=1744644912; 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=lOSnfH6jnpRJxIMHKnMmnOK0Srqm7H7qqh801FjeR24=;
        b=uMvce9sGY7odMnt+YML5/MrAqFZI+HZjoh1RVyRxkGLXpNlSGNSLFCmgkLqVyg/Nrb
         3rUldlogdYLd3S5UDyxT9j+2r6+7s+9JUlFjIUgU1hf8YrOH7CNXcT+H9pkIXYJdZUis
         T9guNmNwxds3fKSl9dt/AAqVulQjNhdyCitVo=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744040112; x=1744644912;
        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=lOSnfH6jnpRJxIMHKnMmnOK0Srqm7H7qqh801FjeR24=;
        b=l8mntx5GV78dXug1WocM4/3RtQDIC95lQV+mLMqIpc9mYjdZa2huA8Hrg9e8dsfqK1
         76Q5gU2WNo58ObBK5I66Y/8ty3l8oFZNTD2NUWHSXntlsuMVMLWiykATanBH0J0zmDnL
         2S1fq1nybyRpg9gpW+MgTDsRpTcz/XNzxeLcqLKWje5dxTx4rHeJRZHOiuEkGaYx5h0U
         bRR+sAj6mpl+7moQnvGwBNwBAaKmxe2PqE3oelvd2gj9ivPKjPuyXA3342LWnpTWZ+1B
         xqoJ9DqUxvuV4Th1BaZzHVecdSLwuJPrqqFByOFhqFsyfIljT4CNVKCYp2lDafMFlCnu
         n04A==
X-Gm-Message-State: AOJu0YxVVB+qN/51+kdcKWcXm+4rERcdoN1u2It3+eAGBnnkt3pf8x2V
	9ubrU320hlv2FHeDJ9B5VZjqu4+eCTVcrBXOzmBkWvr/adGfirkxwmmB9ji/TU4ztwe2P6Wfyru
	Unh0=
X-Gm-Gg: ASbGncuHjh9qqa2ezQ2cPOYMTjjWgmki7sFZ2t87uTUDkM8WPdjHWXU5EU63vA6xTBx
	8cZHAgElZGF8/48DDmWAlO+vfJhSLBN3C3bb8osZU/ke64FMuZppMoh5mguJxA7ToMRWfp76d/z
	ghTYikwZ4f+pjTljBpPNjGhgy2CRLwaaSQWaJShY3yI+kxHY9zR6sa9ZQMi5HWsy8dCs03hJ+ZE
	FniRwmlqPqYZkO1WCT4mF/wwU/CD1I61IceJNUVf1247OCZHukr4+RKPhNS2yxnyq9bI5MnSXnk
	SS9OAIZ3o8ssqeimdM5wNq73XXA1GXcn5d8ypsFiNYxivg4keIp3N4Nhwhq+yBsM2fazgpAirGE
	kt6NE2H3qR1SQnOo3ncZzje+nlRW9
X-Google-Smtp-Source: AGHT+IHQtgBFapJRgLoE/iktSa6bJseOjVn8WzeXFufPfiHRT7Y4CXbB7uUNHy5nCwPrGOQhl+bfEg==
X-Received: by 2002:a05:6000:1acb:b0:391:3028:c779 with SMTP id ffacd0b85a97d-39cba933284mr11170879f8f.45.1744040111950;
        Mon, 07 Apr 2025 08:35:11 -0700 (PDT)
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/AMD: Convert rdmsr_amd_safe() to use asm goto()
Date: Mon,  7 Apr 2025 16:35:10 +0100
Message-Id: <20250407153510.1863243-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

Unlike the WRMSR side, we can't use asm goto() unconditionally, because our
toolchain baseline doesn't support asm goto with outputs.

Detect support, and use asm goto() when available.

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

Condensing these two to a single Kconfig symbol is prohibitively difficult.

Also, there's a different errata workaround we'll need if we want to use asm
goto() with "+" constraints:

config CC_HAS_ASM_GOTO_TIED_OUTPUT
	depends on CC_HAS_ASM_GOTO_OUTPUT
	# Detect buggy gcc and clang, fixed in gcc-11 clang-14.
	def_bool $(success,echo 'int foo(int *x) { asm goto (".long (%l[bar]) - .": "+m"(*x) ::: bar); return *x; bar: return 0; }' | $CC -x c - -c -o /dev/null)

I'm tempted to put it in straight away, lest we forget about it.
---
 xen/Kconfig            | 14 ++++++++++++++
 xen/arch/x86/cpu/amd.c | 13 +++++++++++++
 2 files changed, 27 insertions(+)

diff --git a/xen/Kconfig b/xen/Kconfig
index 2128f0ccfc0b..a367337cafa5 100644
--- a/xen/Kconfig
+++ b/xen/Kconfig
@@ -41,6 +41,20 @@ config CC_SPLIT_SECTIONS
 config CC_HAS_UBSAN
 	def_bool $(cc-option,-fsanitize=undefined)
 
+# Fixed in GCC 14, 13.3, 12.4 and 11.5
+# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113921
+config GCC_ASM_GOTO_OUTPUT_BROKEN
+	bool
+	depends on CC_IS_GCC
+	default y if GCC_VERSION < 110500
+	default y if GCC_VERSION >= 120000 && GCC_VERSION < 120400
+	default y if GCC_VERSION >= 130000 && GCC_VERSION < 130300
+
+config CC_HAS_ASM_GOTO_OUTPUT
+	def_bool y
+	depends on !GCC_ASM_GOTO_OUTPUT_BROKEN
+	depends on $(success,echo 'int foo(int x) { asm goto ("": "=r"(x) ::: bar); return x; bar: return 0; }' | $(CC) -x c - -c -o /dev/null)
+
 # Set code alignment.
 #
 # Allow setting on a boolean basis, and then convert such selection to an
diff --git a/xen/arch/x86/cpu/amd.c b/xen/arch/x86/cpu/amd.c
index ce4e1df71064..37d67dd15c89 100644
--- a/xen/arch/x86/cpu/amd.c
+++ b/xen/arch/x86/cpu/amd.c
@@ -59,6 +59,18 @@ static bool __read_mostly fam17_c6_disabled;
 static inline int rdmsr_amd_safe(unsigned int msr, unsigned int *lo,
 				 unsigned int *hi)
 {
+#ifdef CONFIG_CC_HAS_ASM_GOTO_OUTPUT
+    asm goto ( "1: rdmsr\n\t"
+               _ASM_EXTABLE(1b, %l[fault])
+               : "=a" (*lo), "=d" (*hi)
+               : "c" (msr), "D" (0x9c5a203a)
+               :
+               : fault );
+    return 0;
+
+ fault:
+    return -EFAULT;
+#else
 	int err;
 
 	asm volatile("1: rdmsr\n2:\n"
@@ -71,6 +83,7 @@ static inline int rdmsr_amd_safe(unsigned int msr, unsigned int *lo,
 		     : "c" (msr), "D" (0x9c5a203a), "2" (0), "i" (-EFAULT));
 
 	return err;
+#endif
 }
 
 static inline int wrmsr_amd_safe(unsigned int msr, unsigned int lo,

base-commit: a235f856e4bbd270b085590e1f5fc9599234dcdf
prerequisite-patch-id: 2874d23382cbbc2ec8eaad596b6f49f14b990b8a
prerequisite-patch-id: fdc7cdec843e4d24fc64006c977fa83a55d98910
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Mon Apr 07 15:39:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 15:39:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.940474.1340233 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1oYw-0000LL-8m; Mon, 07 Apr 2025 15:39:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 940474.1340233; Mon, 07 Apr 2025 15:39: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 1u1oYw-0000LE-63; Mon, 07 Apr 2025 15:39:02 +0000
Received: by outflank-mailman (input) for mailman id 940474;
 Mon, 07 Apr 2025 15: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=C/xl=WZ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u1oYv-0000L8-1Z
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 15:39:01 +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 6c77cd30-13c6-11f0-9eaa-5ba50f476ded;
 Mon, 07 Apr 2025 17:38:59 +0200 (CEST)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-3996af42857so3590024f8f.0
 for <xen-devel@lists.xenproject.org>; Mon, 07 Apr 2025 08:38:59 -0700 (PDT)
Received: from [10.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-39c301b69c4sm12305034f8f.43.2025.04.07.08.38.58
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 07 Apr 2025 08:38:58 -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: 6c77cd30-13c6-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744040339; x=1744645139; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=I0W8WWwrY+vf5tXMYR2a8Qt5eK1upIB761X3DJBBsGI=;
        b=LDsRX64dKolEwX3NPJPaVLbAV1NuIPe9HthecFS4WgAaV1wwMMwc7dLszM+wCjWU3F
         c4ypsRJ4VPqNBqvqq16CiwMbQGveCOXI2eTZVqHP1xOhZCZFAGA0KbV2VxEBF/cT1CUj
         FRx0hgX7rkng009YlQoCikb/w/P3rrm5ecF3lg9YLxSyqUH/oP0TRxk2JTmMM3We/7dd
         sfE9L0KFBaS/r4GOBFcCsvIf3JnCQWzuO05rNN1UV5CLps9L+h0nKXHmC9RCCtX0kRwy
         cieDdQ9W5bObNP8sDSmOO3aY4jRKUU7IFaYsZNjT+Ccj93wrxalFA8C22XTMy2jLZmdp
         jn7w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744040339; x=1744645139;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=I0W8WWwrY+vf5tXMYR2a8Qt5eK1upIB761X3DJBBsGI=;
        b=GwWLs5X2MoxFG43mW92r3TA9JwiMl0WL9aGVNUjo+Fv5lBmbNbSnVCKaawGg3EEnb6
         HeSChlZhGTBX0BQ7mTr3DwM1czJQVcBnVAenhpSKl5YrPck6f2TWesmV/rgBwrXXuj4a
         +Q67oX27fmmQKWJEpX+PrjpI8acY+o63mNHcCLusESGVWapAEJHSvXo3gvi053LcuNb/
         6WndJcnQTsjCQnfnq7TxPpFfzwfEAorD19nwPxDc14Kk569/m6+Md6gCBnytN7SS1MgY
         NvWWdnAzNwVNso2meuRQVJibAB6b8ff6GurZP1yilobLZX35CTv7eBCIernHAKTHksWr
         w7VA==
X-Forwarded-Encrypted: i=1; AJvYcCUieeLr2b8+OrCpde6cUucupbsPG7iSufpFlltIxhMfBaG4OmJrSi17kdtKNcSfmSY9h5HoKp8VnN4=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxaw7S8OndI2Beamq2aTRSjmbBTvrBTPwNlkK+MKC5mmsWNOZVS
	XGP6sgrbPfM9GyOIBeAEEK2YfSK95pYrkDgiF54VNC+z1Jc9DLG3MAxkkGRB7Q==
X-Gm-Gg: ASbGncsj43y6MpESwmhuDLCXCUHpcUdlvXscVW/0gy9dAZOfk32lxc2bwwSPLYGWxOA
	Bl2nRKocrmDfDe5MLtA1dcB0m52W2d3n9RNuy5PfKbgWahgyT6bvFKp/IsBGMez3LQZEf3ouSTh
	I2MbHyduSi7kkmnvimi3NPUm61EU3Oq/nFEPTOETjiIQ18iEofNRembUQtTbmJXMznYTFiWghTd
	C8LUdktSXm3KNGlyOYt9H7KG07ecs+lOobCShFg+5lMl80tui5uBDmSJ9UQ/MnFnVxEr4iM6DLT
	NaDr1gDcG9zi9PHtjfE2m4YeFssyHNGBC8Gep09AIA0Yf+1hV7nkt42AfEbBCpV7Vup/B3jKZ5Z
	jQtz60lQaAhpIPjegmTU70zGaBmRps1AovCq6V4Yj
X-Google-Smtp-Source: AGHT+IHf6dnjOA7EvNt3W/8Kpd7S2kFo8n2QgrF5TdOClHn6qGzpCU7sgTw6boUzfHGB+pQl5a9fMA==
X-Received: by 2002:a05:6000:18af:b0:38d:dc03:a3d6 with SMTP id ffacd0b85a97d-39c2e5f50a9mr15406046f8f.4.1744040338846;
        Mon, 07 Apr 2025 08:38:58 -0700 (PDT)
Message-ID: <8f29b0b3-dc57-417c-937a-50f5aac6f6f8@suse.com>
Date: Mon, 7 Apr 2025 17:38:57 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Ping: [PATCH] libxc/PM: correct (not just) error handling in
 xc_get_cpufreq_para()
To: Anthony PERARD <anthony.perard@vates.tech>
Cc: Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org
References: <df676738-19e7-47e6-977f-25d6d13ccc50@suse.com>
 <e0028d85-668a-464b-aac5-ac8a79ea9bf5@suse.com> <Z_PI2UNn2C4GKqYw@l14>
 <75d288ba-1006-46f4-8f51-6d49c5e8449d@suse.com> <Z_Pt6Pv8_RrV4J2U@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: <Z_Pt6Pv8_RrV4J2U@l14>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 07.04.2025 17:23, Anthony PERARD wrote:
> On Mon, Apr 07, 2025 at 03:23:48PM +0200, Jan Beulich wrote:
>> On 07.04.2025 14:45, Anthony PERARD wrote:
>>> On Mon, Apr 07, 2025 at 01:38:24PM +0200, Jan Beulich wrote:
>>>> On 27.03.2025 14:32, Jan Beulich wrote:
>>>>> From their introduction all xc_hypercall_bounce_pre() uses, when they
>>>>> failed, would properly cause exit from the function including cleanup,
>>>>> yet without informing the caller of the failure. Purge the unlock_1
>>>>> label for being both pointless and mis-named.
>>>>>
>>>>> An earlier attempt to switch to the usual split between return value and
>>>>> errno wasn't quite complete.
>>>>>
>>>>> HWP work made the cleanup of the "available governors" array
>>>>> conditional, neglecting the fact that the condition used may not be the
>>>>> condition that was used to allocate the buffer (as the structure field
>>>>> is updated upon getting back EAGAIN). Throughout the function, use the
>>>>> local variable being introduced to address that.
>>>>>
>>>>> Fixes: 4513025a8790 ("libxc: convert sysctl interfaces over to hypercall buffers")
>>>>> Amends: 73367cf3b4b4 ("libxc: Fix xc_pm API calls to return negative error and stash error in errno")
>>>>> Fixes: 31e264c672bc ("pmstat&xenpm: Re-arrage for cpufreq union")
>>>>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>>>>
>>>> May I ask for an ack or comments towards what needs changing?
>>>
>>> Calling xc_get_cpufreq_para with:
>>>
>>>     user_para = {
>>>         .cpu_num = 0,
>>>         .freq_num = 0,
>>>         .gov_num = 9,
>>>     };
>>>
>>> seems broken. It's looks like the `scaling_available_governors` bounce
>>> buffer is going to be used without been allocated properly handled, with
>>> this patch.
>>
>> The local variable "in_gov_num" controls its allocation and use, together with
>> has_num. "Use" as in passing to set_xen_guest_handle(). The only further use
> 
> When has_num == 0, `in_gov_num` is only used to set `sys_para->gov_num`.
> It also make a conditional call to xc_hypercall_bounce_post() but
> there's nothing to do.
> 
> Why user_para.gov_num seems to control the size of a buffer, but then
> that buffer is just discarded under some condition with this patch?

That's nothing this patch changes. Previously has_num would also have been
false in the example you give.

> Is the proposed parameter (where only gov_num is set) a valid input? If
> not, why is it not rejected before making the hypercall? (with this
> patch)

Prior to the change adding the user_para->gov_num conditionals the interface
was all or nothing: You got actual data back only if you asked for all three
pieces. Said change then made obtaining the governors optional, yet only
quite. Once obtaining frequencies also becomes optional, I think we will be
in a better position to sanitize this function. Right now I'm only trying to
get some of the basic flaws sorted. The three modes we want/need to support
right now are
- caller wants just counts, but not actual data (would pass in all three
  *_num as zero),
- caller wants all data (would pass in all three *_num as non-zero),
- the HWP special case of wanting CPU and frequency data, but not the
  (meaningless there) governors.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Apr 07 15:48:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 15:48:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.940487.1340243 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1oiI-0003ul-4l; Mon, 07 Apr 2025 15:48:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 940487.1340243; Mon, 07 Apr 2025 15:48:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1oiI-0003ue-25; Mon, 07 Apr 2025 15:48:42 +0000
Received: by outflank-mailman (input) for mailman id 940487;
 Mon, 07 Apr 2025 15:48: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=C/xl=WZ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u1oiG-0003uY-Ps
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 15:48:40 +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 c59d5ec8-13c7-11f0-9ffb-bf95429c2676;
 Mon, 07 Apr 2025 17:48:38 +0200 (CEST)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-39727fe912cso2001939f8f.3
 for <xen-devel@lists.xenproject.org>; Mon, 07 Apr 2025 08:48:38 -0700 (PDT)
Received: from [10.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-39c3020d661sm12761157f8f.66.2025.04.07.08.48.37
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 07 Apr 2025 08:48:37 -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: c59d5ec8-13c7-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744040918; x=1744645718; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=zsRr1iR4ytUVxJpuPVq0LR3WKz2iMqjK0nue+ka7+vw=;
        b=I9m9IGuei3BqnwdbFndp0gs0VWpi+cUP5XaCoD23EzLr/kl49tiYdHxuBDKK11tzAU
         rq8ci/Yw39u5S8v6H0RB5n5AIOxs+Z9iUbZSUdCq/yOMe+f9NcG13rHrluABfF/7/Qdi
         dj9lOBEc4fpjAB5K2V8eW6pSC5kvvLo+kxmY3PhOYeGQT68sLLbcLhxbQj4WzVVIck4K
         6Hl+kIWNvasbcCAh0jbgZs/5mN8uuLYMgRG1QhcQNctw8sHzBQXZewgcA4wfSXvfVO9D
         M+0bhb4uI7tY3Pf0Nyz1EGi4woSMaVXoi4fyPrVwJUyNI49nE3fQoJp7Tf78xiUIB3LF
         DpLw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744040918; x=1744645718;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=zsRr1iR4ytUVxJpuPVq0LR3WKz2iMqjK0nue+ka7+vw=;
        b=H5yG9JBZmbtwGgfmyBxsf1XAFzBS+TYedLH04h1que99rV/3Kx+2q4iIE6M53jEMoe
         0uB/uSzki43ViiKkiP+FJKFAvkOmKktFoWHTO7y6uqYIVkcG96tp3sgYm9WaqjvQNlUa
         u1mox3/1NpJ1MPgtLXxdH3+xsuHBIN1H5zMVl+MGF/8mXvO6gaoCQkxmPkygEgPFAndk
         wJXQuQ08t68wzP3ohs8bOPiq3jiOcJlAc9OvUx1VLmqdmpbk2lamWYIz60erFG3PXyb9
         v4WqoHTntv2Li/19lUlu2/WEBuoylRGh8AjdXo2mNzH3oLV7B6+bzAOQ+WZErhp1JOrB
         Kb8g==
X-Forwarded-Encrypted: i=1; AJvYcCUlNocF5VZTil5hN8yV8swQJcq7Ip877/jQzx6yHi1YKcrULfV/ik9uIKfOxIUCaTyyOPDjweM9K6I=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzA1evZa0Y+UOomJM4zsFoViLneY8DtpTEMvQrH2jYYXlPqx8S9
	QvAf4YBc+lyE6HF9fDCKM3t3y2HNVbr9SMPkc2BtTqkcn6bl+0QsdXQqel4UgA==
X-Gm-Gg: ASbGncth483sy0c51jqgJ2c1GSvApY8wqxvnX0kijb3SW72iESJ+msw9cpHmFxE8pQj
	JXwbhCB2+7b8Omf0uRVLQa5iBNShNzX1V8xOqMXn/ZWcjCuAm2/TdUJ+OC3fgbhThawYeckhSMj
	L40j2wvPZHZoO1nBEgEaVoUe7oFvOeAgV0tUFfnzmm/xhq//bD6vlP/U2eEAYCwJX6c5Fe3yihM
	WsDhZr53iVwRf7AAUwucdgKxFbVWd5APkgP5OGGN3dnuSO2w7jVbqNfaVT4MP4Q07jDaJPTYNXF
	U8NgAU0tgfcVOBnjj7TnjOWzZMjS9/F3HN4O1421/biwzlgf5wsAWGWW2lUB5S4uuzchoyxlvVk
	nFe6osOqbwsbVDjLVHua6uhCcegBzBA==
X-Google-Smtp-Source: AGHT+IEGtcTLWVP4Iao6YWKrnI76TY3HuMWTFh6dR0dPho52qqcsdckTeslmiiXXdfO5c7pLXsUpMA==
X-Received: by 2002:a5d:5f43:0:b0:391:22e2:cd21 with SMTP id ffacd0b85a97d-39d6fce11f5mr7584718f8f.36.1744040917870;
        Mon, 07 Apr 2025 08:48:37 -0700 (PDT)
Message-ID: <1df6b4c9-7309-49cd-8046-019d94139c57@suse.com>
Date: Mon, 7 Apr 2025 17:48:37 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/AMD: Convert rdmsr_amd_safe() to use asm goto()
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: <20250407153510.1863243-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: <20250407153510.1863243-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 07.04.2025 17:35, Andrew Cooper wrote:
> Unlike the WRMSR side, we can't use asm goto() unconditionally, because our
> toolchain baseline doesn't support asm goto with outputs.

Is there actually a benefit we gain from now needing to maintain two different
pieces of logic fulfilling the same purpose?

> Also, there's a different errata workaround we'll need if we want to use asm
> goto() with "+" constraints:
> 
> config CC_HAS_ASM_GOTO_TIED_OUTPUT
> 	depends on CC_HAS_ASM_GOTO_OUTPUT
> 	# Detect buggy gcc and clang, fixed in gcc-11 clang-14.
> 	def_bool $(success,echo 'int foo(int *x) { asm goto (".long (%l[bar]) - .": "+m"(*x) ::: bar); return *x; bar: return 0; }' | $CC -x c - -c -o /dev/null)
> 
> I'm tempted to put it in straight away, lest we forget about it.

Perhaps best if we really want to go this route. Yet then - why "TIED"? Isn't
"tied" the term they use when referring to an earlier operand by using a
digit (or the operand's name in square brackets)?

> --- a/xen/Kconfig
> +++ b/xen/Kconfig
> @@ -41,6 +41,20 @@ config CC_SPLIT_SECTIONS
>  config CC_HAS_UBSAN
>  	def_bool $(cc-option,-fsanitize=undefined)
>  
> +# Fixed in GCC 14, 13.3, 12.4 and 11.5
> +# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113921
> +config GCC_ASM_GOTO_OUTPUT_BROKEN
> +	bool
> +	depends on CC_IS_GCC
> +	default y if GCC_VERSION < 110500
> +	default y if GCC_VERSION >= 120000 && GCC_VERSION < 120400
> +	default y if GCC_VERSION >= 130000 && GCC_VERSION < 130300

Unlike for pre-release versions (x.0.y) I view this as problematic. Distros
are likely to have backported the fix before the minor releases took place.
Or they may have backported without ever meaning to follow later minor
releases. We'd needlessly exclude them here. Imo ...

> +config CC_HAS_ASM_GOTO_OUTPUT
> +	def_bool y
> +	depends on !GCC_ASM_GOTO_OUTPUT_BROKEN
> +	depends on $(success,echo 'int foo(int x) { asm goto ("": "=r"(x) ::: bar); return x; bar: return 0; }' | $(CC) -x c - -c -o /dev/null)

... the only option is to actually probe for support as well as the (non-)
buggy-ness.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Apr 07 15:56:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 15:56:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.940500.1340254 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1opK-0007QT-SB; Mon, 07 Apr 2025 15:55:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 940500.1340254; Mon, 07 Apr 2025 15:55: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 1u1opK-0007QM-OJ; Mon, 07 Apr 2025 15:55:58 +0000
Received: by outflank-mailman (input) for mailman id 940500;
 Mon, 07 Apr 2025 15:55: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=g5oi=WZ=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1u1opI-0007QG-T6
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 15:55:56 +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 c9b81bcf-13c8-11f0-9ffb-bf95429c2676;
 Mon, 07 Apr 2025 17:55:54 +0200 (CEST)
Received: by mail-ed1-x52d.google.com with SMTP id
 4fb4d7f45d1cf-5e6194e9d2cso8666944a12.2
 for <xen-devel@lists.xenproject.org>; Mon, 07 Apr 2025 08:55:54 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-64-225.play-internet.pl.
 [109.243.64.225]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-ac7c013f2b4sm759930766b.116.2025.04.07.08.55.53
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 07 Apr 2025 08:55:53 -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: c9b81bcf-13c8-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1744041354; x=1744646154; darn=lists.xenproject.org;
        h=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=gDJcoJzP2TRLEmt37u/biEtAENqcKhb6sfVOaTW7z1k=;
        b=bOvQnJh/wNoo5V72hNTO7IOsmqUonp6iSt4jEhs0vvbp6uLbvXctVN/d295dYWgYSB
         EaSY/BpQwvL/iE7KU3EGKZgpT/13a6PjiCEHn3hTNT4lD4ZskyA1nihAqlAvT6Sfsz0M
         Z/EzNRoVAGCV1cx6hV0/WN6wOkvrujcT46sSOTBVnb6hOiDIb60GVoMAnhiKd6J0ivrC
         8fEju0xigA5Vk3v6/gsGQ/Y9YaQisKpSHNbn8BP1ab+NH4R3Fuyzj8OqP7+SnHxUOv74
         GB6fktX52x/Z3aEvSzx9dokDVcv7WadMGw5fBPuLOgRZPVbudNxYEaiQknY0Ii2MJbMB
         eM1Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744041354; x=1744646154;
        h=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=gDJcoJzP2TRLEmt37u/biEtAENqcKhb6sfVOaTW7z1k=;
        b=c2FrYIXuS/BaiutXKz+NpcUM+GFvk/2tq952LxJ0i+zTPCIWIz0C2vK3trXcks+jo8
         WJ+yOT4YC8VfWXiUv2ToZ+LORo0xR8IkVZO4eQwYp2X+yiq+rGcRYY95pccaa2LNKAJh
         nRKahBp1kHClK+sL+mdcZAWEsxEHJe3GHeOC5+fx8pjm8U381yg3Q178BS7uOEKCdHVr
         V4AFBJXlKUM/TXLvS0m+awrtpT4TJ0ZvCRCaPCY9rH1Im58MRTEYuMgJeM6ZWgE3Pnyd
         uHFaIeAUXAzLx0a6D03pq8kTNSQNJHzmX+uii13IeDqsjs1JkkFGK+6h3l/rKlpPwQEj
         lcNw==
X-Forwarded-Encrypted: i=1; AJvYcCWYsG119TRLDKsvLjQt9eqykt/RbVJeVE9m+EMRAHT2GHKk08/WvMcnEbQTsg/C1r7RD/DCep1IZqM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyxOztxjq4sv1CqIxb5etVzaWoVoRJ6EcorH8/xl31ZO1k21536
	UDgZXwbusfGWn+zdr8YsklrV00zOGp4bTU5ZtCFvn40OLS0redsz
X-Gm-Gg: ASbGnctAhwau/aSBLGaaVW4tZs7bXQmtL6nZO8wcX6Qg32IZOP2I3EeOUoH2e9H7OWT
	PaOBSdPbyOkJoHlC7nP0ZmOH8w6IfYDgpX+qThgjoldbD0f5v2WGGXf4o6VHom4+JzMeUYgeBzy
	ac2bnp49CyIloRDiiFupJyXEWF0YxvebCoWhYpCl9lLlYuPzwcWx2p2tsDmvITprLWU1SfmbkQD
	ltYrMeX2pWK4tCgcT5x+rWdMuPJvBGW/otjlZ8O6uxefo9ByWZFwHyUnASnSNEj6jA4w5C9HRb3
	E2X+3I1kT+Pm/p6vO+SgAaev9j3ZPzPwNSp4X4l0QXOFOs351GYyakshMLkRaiwoEhvjg2ecsTx
	RBSDNUfc9netcpZ146p+Q
X-Google-Smtp-Source: AGHT+IEPhFdcNX0Y2gA2onhPC+J38SeoEgjyITbs5teVf5weyDYGV5hy7BiKgG6Rq/sN41A7lPqpgQ==
X-Received: by 2002:a17:906:d269:b0:ac7:971b:ffd with SMTP id a640c23a62f3a-ac7d185cf4cmr1273933066b.10.1744041354016;
        Mon, 07 Apr 2025 08:55:54 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------vBgtPMZpJw7ySNy8kWzRdND6"
Message-ID: <a0a76f43-7106-43c0-9a5f-24d335bbfbe8@gmail.com>
Date: Mon, 7 Apr 2025 17:55:52 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/link: Drop .fixup section from non-x86 architectures
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Shawn Anastasio <sanastasio@raptorengineering.com>
References: <20250403110003.1461522-1-andrew.cooper3@citrix.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <20250403110003.1461522-1-andrew.cooper3@citrix.com>

This is a multi-part message in MIME format.
--------------vBgtPMZpJw7ySNy8kWzRdND6
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 4/3/25 1:00 PM, Andrew Cooper wrote:
> The fixup section is only used by x86, and we're working to remove it there
> too.  Logic in the fixup section is unconnected to it's origin site, and
> interferes with backtraces/etc.
>
> Remove the section from the architectures which don't use it.
>
> Signed-off-by: Andrew Cooper<andrew.cooper3@citrix.com>
> ---
> CC: Anthony PERARD<anthony.perard@vates.tech>
> CC: Michal Orzel<michal.orzel@amd.com>
> CC: Jan Beulich<jbeulich@suse.com>
> CC: Julien Grall<julien@xen.org>
> CC: Roger Pau Monné<roger.pau@citrix.com>
> CC: Stefano Stabellini<sstabellini@kernel.org>
> CC: Volodymyr Babchuk<Volodymyr_Babchuk@epam.com>
> CC: Bertrand Marquis<bertrand.marquis@arm.com>
> CC: Shawn Anastasio<sanastasio@raptorengineering.com>
> CC: Oleksii Kurochko<oleksii.kurochko@gmail.com>
> ---
>   xen/arch/arm/xen.lds.S   | 1 -
>   xen/arch/ppc/xen.lds.S   | 1 -
>   xen/arch/riscv/xen.lds.S | 1 -
>   3 files changed, 3 deletions(-)
>
> diff --git a/xen/arch/arm/xen.lds.S b/xen/arch/arm/xen.lds.S
> index 86a6e311cfc5..ae1903246f69 100644
> --- a/xen/arch/arm/xen.lds.S
> +++ b/xen/arch/arm/xen.lds.S
> @@ -45,7 +45,6 @@ SECTIONS
>          *(.text.*)
>   #endif
>   
> -       *(.fixup)
>          *(.gnu.warning)
>          _etext = .;             /* End of text section */
>     } :text = 0x9090
> diff --git a/xen/arch/ppc/xen.lds.S b/xen/arch/ppc/xen.lds.S
> index 3f2a7676ec96..1366e2819eed 100644
> --- a/xen/arch/ppc/xen.lds.S
> +++ b/xen/arch/ppc/xen.lds.S
> @@ -38,7 +38,6 @@ SECTIONS
>           *(.text.*)
>   #endif
>   
> -        *(.fixup)
>           *(.gnu.warning)
>           . = ALIGN(POINTER_ALIGN);
>           _etext = .;             /* End of text section */
> diff --git a/xen/arch/riscv/xen.lds.S b/xen/arch/riscv/xen.lds.S
> index dffc6ae11913..818aa4366949 100644
> --- a/xen/arch/riscv/xen.lds.S
> +++ b/xen/arch/riscv/xen.lds.S
> @@ -33,7 +33,6 @@ SECTIONS
>           *(.text.ident)
>           _ident_end = .;
>   
> -        *(.fixup)
>           *(.gnu.warning)
>           . = ALIGN(POINTER_ALIGN);
>           _etext = .;             /* End of text section */

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

~ Oleksii

>
> base-commit: ae5fd39be98c6219a302045aec7c25bdafa81781
--------------vBgtPMZpJw7ySNy8kWzRdND6
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 4/3/25 1:00 PM, Andrew Cooper wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:20250403110003.1461522-1-andrew.cooper3@citrix.com">
      <pre wrap="" class="moz-quote-pre">The fixup section is only used by x86, and we're working to remove it there
too.  Logic in the fixup section is unconnected to it's origin site, and
interferes with backtraces/etc.

Remove the section from the architectures which don't use it.

Signed-off-by: Andrew Cooper <a class="moz-txt-link-rfc2396E" href="mailto:andrew.cooper3@citrix.com">&lt;andrew.cooper3@citrix.com&gt;</a>
---
CC: Anthony PERARD <a class="moz-txt-link-rfc2396E" href="mailto:anthony.perard@vates.tech">&lt;anthony.perard@vates.tech&gt;</a>
CC: Michal Orzel <a class="moz-txt-link-rfc2396E" href="mailto:michal.orzel@amd.com">&lt;michal.orzel@amd.com&gt;</a>
CC: Jan Beulich <a class="moz-txt-link-rfc2396E" href="mailto:jbeulich@suse.com">&lt;jbeulich@suse.com&gt;</a>
CC: Julien Grall <a class="moz-txt-link-rfc2396E" href="mailto:julien@xen.org">&lt;julien@xen.org&gt;</a>
CC: Roger Pau Monné <a class="moz-txt-link-rfc2396E" href="mailto:roger.pau@citrix.com">&lt;roger.pau@citrix.com&gt;</a>
CC: Stefano Stabellini <a class="moz-txt-link-rfc2396E" href="mailto:sstabellini@kernel.org">&lt;sstabellini@kernel.org&gt;</a>
CC: Volodymyr Babchuk <a class="moz-txt-link-rfc2396E" href="mailto:Volodymyr_Babchuk@epam.com">&lt;Volodymyr_Babchuk@epam.com&gt;</a>
CC: Bertrand Marquis <a class="moz-txt-link-rfc2396E" href="mailto:bertrand.marquis@arm.com">&lt;bertrand.marquis@arm.com&gt;</a>
CC: Shawn Anastasio <a class="moz-txt-link-rfc2396E" href="mailto:sanastasio@raptorengineering.com">&lt;sanastasio@raptorengineering.com&gt;</a>
CC: Oleksii Kurochko <a class="moz-txt-link-rfc2396E" href="mailto:oleksii.kurochko@gmail.com">&lt;oleksii.kurochko@gmail.com&gt;</a>
---
 xen/arch/arm/xen.lds.S   | 1 -
 xen/arch/ppc/xen.lds.S   | 1 -
 xen/arch/riscv/xen.lds.S | 1 -
 3 files changed, 3 deletions(-)

diff --git a/xen/arch/arm/xen.lds.S b/xen/arch/arm/xen.lds.S
index 86a6e311cfc5..ae1903246f69 100644
--- a/xen/arch/arm/xen.lds.S
+++ b/xen/arch/arm/xen.lds.S
@@ -45,7 +45,6 @@ SECTIONS
        *(.text.*)
 #endif
 
-       *(.fixup)
        *(.gnu.warning)
        _etext = .;             /* End of text section */
   } :text = 0x9090
diff --git a/xen/arch/ppc/xen.lds.S b/xen/arch/ppc/xen.lds.S
index 3f2a7676ec96..1366e2819eed 100644
--- a/xen/arch/ppc/xen.lds.S
+++ b/xen/arch/ppc/xen.lds.S
@@ -38,7 +38,6 @@ SECTIONS
         *(.text.*)
 #endif
 
-        *(.fixup)
         *(.gnu.warning)
         . = ALIGN(POINTER_ALIGN);
         _etext = .;             /* End of text section */
diff --git a/xen/arch/riscv/xen.lds.S b/xen/arch/riscv/xen.lds.S
index dffc6ae11913..818aa4366949 100644
--- a/xen/arch/riscv/xen.lds.S
+++ b/xen/arch/riscv/xen.lds.S
@@ -33,7 +33,6 @@ SECTIONS
         *(.text.ident)
         _ident_end = .;
 
-        *(.fixup)
         *(.gnu.warning)
         . = ALIGN(POINTER_ALIGN);
         _etext = .;             /* End of text section */</pre>
    </blockquote>
    <pre>Reviewed-by: Oleksii Kurochko <a class="moz-txt-link-rfc2396E" href="mailto:oleksii.kurochko@gmail.com">&lt;oleksii.kurochko@gmail.com&gt;</a>
 #riscv

~ Oleksii
</pre>
    <blockquote type="cite"
      cite="mid:20250403110003.1461522-1-andrew.cooper3@citrix.com">
      <pre wrap="" class="moz-quote-pre">

base-commit: ae5fd39be98c6219a302045aec7c25bdafa81781
</pre>
    </blockquote>
  </body>
</html>

--------------vBgtPMZpJw7ySNy8kWzRdND6--


From xen-devel-bounces@lists.xenproject.org Mon Apr 07 15:56:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 15:56:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.940504.1340264 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1opc-0007mS-6e; Mon, 07 Apr 2025 15:56:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 940504.1340264; Mon, 07 Apr 2025 15:56: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 1u1opc-0007mL-2g; Mon, 07 Apr 2025 15:56:16 +0000
Received: by outflank-mailman (input) for mailman id 940504;
 Mon, 07 Apr 2025 15:56: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=mo/T=WZ=bounce.vates.tech=bounce-md_30504962.67f3f59c.v1-fd9f5402892347e080e8a59181d55167@srs-se1.protection.inumbo.net>)
 id 1u1opb-0007QG-Nk
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 15:56:15 +0000
Received: from mail180-44.suw31.mandrillapp.com
 (mail180-44.suw31.mandrillapp.com [198.2.180.44])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d4b034cc-13c8-11f0-9ffb-bf95429c2676;
 Mon, 07 Apr 2025 17:56:13 +0200 (CEST)
Received: from pmta11.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail180-44.suw31.mandrillapp.com (Mailchimp) with ESMTP id
 4ZWYj83xkQz705bBT
 for <xen-devel@lists.xenproject.org>; Mon,  7 Apr 2025 15:56:12 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 fd9f5402892347e080e8a59181d55167; Mon, 07 Apr 2025 15:56: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: d4b034cc-13c8-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1744041372; x=1744311372;
	bh=AqHO8CubgcMI4+lkckINiadf7K6tDz1pcGskRQXLth0=;
	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=OBaWRAk8ChiTtnvR1PelUWdIhu5JpTv+XOQSp6BRiYZ7hRD3kBub00xaGFmaBzxMy
	 cWn0TXw2xiq1P1RBRTA+OPr4QREqqeYhq+5D/hH2alCLBSa4NbXW6LQA2T7eKlGm7x
	 QvrTdmfChzWqwEiWcbnT9Gl/8TBIehf6+JaExDgp39BWyT03jYpqof4lX/k9RFicXp
	 3btxtL5uQBDjtVgQMYc8jSeQCUuDxeXDZPz+yYZ4lGYM1+E/DBK4J1FlYXR9ZePSLX
	 WLvNY4+0+WemmkzzH8xnOi7hhq2idY2sI+VuaD35BepK7ByGpOqS1cJj605tmpLLn4
	 /QYV8JiWeZ2fg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1744041372; x=1744301872; i=anthony.perard@vates.tech;
	bh=AqHO8CubgcMI4+lkckINiadf7K6tDz1pcGskRQXLth0=;
	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=rxCmeFEFwlA6UzcRyTsCOuruRNRRv157hIftuH3cP85D6AK1qF0PcvBH6l5uxutEd
	 FdXh5P3nKgokm212aVl+QZEVeeYK2l4h30+g3Q7JB49MZV4h+cZsiOUZ5dopmdXR6i
	 oFaz4E8JxHrsukYNfl6ooH+iZC3k7sEjQ+tcQ5JT8wB2fDkiqskkuZwf3ZG8unbkuE
	 Hk9F6XbdYBY/hyKgi/VQj+Zrts9J0EXuFp9IpPhDxIhARwip7Gbiqqy3eRPcjGekzU
	 erG0/ypuLW0qTo4o6TqbdUEP2MXF9kH1aqdFtKPBsimXLiVNziGG58bZwp0IrCkLsb
	 rnVzdOAzcngLQ==
From: "Anthony PERARD" <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=20v9=201/3]=20docs:=20update=20xenstore=20migration=20stream=20definition?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1744041371245
To: "Juergen Gross" <jgross@suse.com>
Cc: xen-devel@lists.xenproject.org, "Julien Grall" <julien@xen.org>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "Michal Orzel" <michal.orzel@amd.com>, "Jan Beulich" <jbeulich@suse.com>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Stefano Stabellini" <sstabellini@kernel.org>
Message-Id: <Z_P1muoVrI8bveEz@l14>
References: <20250314121835.1879-1-jgross@suse.com> <20250314121835.1879-2-jgross@suse.com> <85aa1047-b045-4004-9306-b40e8c5fa6d9@suse.com> <fcfe6ea3-6951-4892-accb-13dac0268068@suse.com>
In-Reply-To: <fcfe6ea3-6951-4892-accb-13dac0268068@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.fd9f5402892347e080e8a59181d55167?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250407:md
Date: Mon, 07 Apr 2025 15:56:12 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Thu, Apr 03, 2025 at 01:45:32PM +0200, Juergen Gross wrote:
> On 25.03.25 10:17, Juergen Gross wrote:
> > On 14.03.25 13:18, Juergen Gross wrote:
> > > In order to close a race window for Xenstore live update when using
> > > the new unique_id of domains, the migration stream needs to contain
> > > this unique_id for each domain known by Xenstore.
> > > 
> > > Signed-off-by: Juergen Gross <jgross@suse.com>
> > 
> > This patch is still missing an Ack.
> 
> PING?

Julien's concern looked to be addressed. And the patch looks fine to me,
so:

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 Mon Apr 07 16:15:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 16:15:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.940540.1340274 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1p82-0006gt-Mm; Mon, 07 Apr 2025 16:15:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 940540.1340274; Mon, 07 Apr 2025 16: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 1u1p82-0006gm-Jk; Mon, 07 Apr 2025 16:15:18 +0000
Received: by outflank-mailman (input) for mailman id 940540;
 Mon, 07 Apr 2025 16:15: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=ZxXC=WZ=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u1p81-0006gg-HU
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 16:15:17 +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 7e04108e-13cb-11f0-9eaa-5ba50f476ded;
 Mon, 07 Apr 2025 18:15:16 +0200 (CEST)
Received: by mail-lf1-x12a.google.com with SMTP id
 2adb3069b0e04-54afb5fcebaso5090684e87.3
 for <xen-devel@lists.xenproject.org>; Mon, 07 Apr 2025 09:15:16 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-54c1e5ab360sm1332081e87.40.2025.04.07.09.15.14
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 07 Apr 2025 09:15: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: 7e04108e-13cb-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744042516; x=1744647316; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=DBwvB/wJwzPqpTwSCKZhraQNcOZt0Z22pPd/UBnkGww=;
        b=Nxacbi4RKm/Gm7/RzLDfc+lQYYStrIifE622IJmsCc5ldLsSz1it0FAX39ZEvJUFf2
         hF/VmqrJ2xaJA8a89yVwVhdgTNMdo1TEkJuGpX7Q4vLEokGlaqXxPN8AEQGACtV5/vFG
         YoMAADbdh5duLBE7NLkCXrgG1dovjl+MQu2Uo=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744042516; x=1744647316;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=DBwvB/wJwzPqpTwSCKZhraQNcOZt0Z22pPd/UBnkGww=;
        b=Ip68gAY74Kvj/yh8EPsaGo3mhJX/J9eZFRx4M2t2JI8EkGkvdnzjgKLeSl5oWZKo6V
         dyySQ3dK2rVQzS6yeScuZKSf77NjsSt9m5JW1C3zf/FH1T2nxy//lPD6rQX6dwMF5SVn
         OpEwPWHHjDqTB9Sxy3qwMCcR/buuZCoIp/4aPIRcIoHg3azVIXcxOU8/5uR1w7TBkfni
         cD1y81Fbuhit4V/HAndNi0rd5FPpxlWshS4U4S+TzDYQ9YhSRT2ZXSQ36VI3j9RR+hjZ
         vdvnv8tZ1sFLtVncNFBsb96bCjqlro6EXxAbO3o4trMztRrOp4NBqbIrCvwHahn6e/2b
         Qmog==
X-Forwarded-Encrypted: i=1; AJvYcCXTxn9hvYftDza6W6pnnasKCpZYynljSFG6WqXVmZ4vCLZitRPmMKA//C0lZzL5C3bKHHt6okjHypQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzCm2yYVHT0Ipabhcpf46dlRGoGgcB8F+ow+UqHq7hztSuRULbr
	0FPlhatM1m64dtrPLpqav/UGCsEvmunlI+r0eGhK5BxUZhk00wZdrd2vGFCmGqA=
X-Gm-Gg: ASbGncuewMmUvy2tRCny1RmCccFRi2jXSL0SqwQH7ODzeq0P9fommzrl7iMpNL/nvI6
	uvHTHA7zkAvTnc0wt8zlUTIO7oHywsfBC2DGkJD4qAdmcNn2Brq49UFinHznKVXNxmbTfsd9s7V
	DMAnneZ4j9VU1W65sQy3EQm41WTq/puV7WvPRNESjZoODDhYMcQzOeTR7V8zUzfUdPyVJR64RJF
	vecYiNuGQSy77x2qG8DS/FvPXC90YNob5NCXuLh6wmgGsbNatklRNHOkAuUBK63WHqvvUhDjsuL
	XcOZgxclQDJppWKZBcXh10qnP1ewOzWFe+juAiqLc0ZleTB9DUGOvVpGFmiaE8eNJWyalSGyn2L
	A/4n6rp7lxQ==
X-Google-Smtp-Source: AGHT+IFIjRyMJjeADWZ2nLR4neqwcmym2yxRg5rz+5LiysKmAG5AYHvKgziDbOXsPONa4Te1B/qSQg==
X-Received: by 2002:a05:6512:398c:b0:54b:117b:9530 with SMTP id 2adb3069b0e04-54c298483a4mr2284001e87.57.1744042515762;
        Mon, 07 Apr 2025 09:15:15 -0700 (PDT)
Message-ID: <af16d480-3fbd-4d39-a643-8db7abb81cd6@citrix.com>
Date: Mon, 7 Apr 2025 17:15:13 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH test-artifacts v2 13/12] scripts: add rc_verbose=yes to
 /etc/rc.conf
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, xen-devel@lists.xenproject.org
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <cover.7da1777882774486a13e6f39ff4a2096f6b7901e.1744028549.git-series.marmarek@invisiblethingslab.com>
 <20250407123448.1520451-1-marmarek@invisiblethingslab.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: <20250407123448.1520451-1-marmarek@invisiblethingslab.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 07/04/2025 1:31 pm, Marek Marczykowski-Górecki wrote:
> This is done in every single test job, so do it at the initrd build
> time.
>
> Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>

Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Mon Apr 07 16:17:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 16:17:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.940552.1340283 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1pA0-0007Ly-27; Mon, 07 Apr 2025 16:17:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 940552.1340283; Mon, 07 Apr 2025 16:17: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 1u1p9z-0007Lr-Vd; Mon, 07 Apr 2025 16:17:19 +0000
Received: by outflank-mailman (input) for mailman id 940552;
 Mon, 07 Apr 2025 16:17: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=ZxXC=WZ=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u1p9y-0007Ll-Q3
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 16:17:18 +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 c686749d-13cb-11f0-9eaa-5ba50f476ded;
 Mon, 07 Apr 2025 18:17:18 +0200 (CEST)
Received: by mail-wr1-x435.google.com with SMTP id
 ffacd0b85a97d-39727fe912cso2022567f8f.3
 for <xen-devel@lists.xenproject.org>; Mon, 07 Apr 2025 09:17:18 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39c301b760bsm12598130f8f.55.2025.04.07.09.17.16
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 07 Apr 2025 09:17: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: c686749d-13cb-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744042637; x=1744647437; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=UGizbuRXYzF7nTZrASmKVPyPZOmxaFSBHvFc7XsqrCU=;
        b=ifym7EN7NOtzFN44Zt6+Jr9kt2ZUpFTMz/BleLqQS2fR0QBRqboAefoQy1MjBWToPv
         NHgVKgIUBFYSQGG9lGtRdFXawln+/13v92Oix7jWmNEbcasI9ohCCgk72neeKWJ6hJE2
         zFfJhi9qnHjVZ18873qE4AHqM5/uCfKSr1ems=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744042637; x=1744647437;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=UGizbuRXYzF7nTZrASmKVPyPZOmxaFSBHvFc7XsqrCU=;
        b=mqDnOfwB9FH6k1Gr+KbisA9Ee//WmZB8wVr8UMykyRy176FWqgr4fMV6nQIS93MP/q
         24reDXp17xHFhTGDH6HTFiGshawFK++TMLfI9KgNsWQi4Ei+CeGGMKOO6xh6nXfQ+m73
         iaU+QXr0g0gWQfK8d3cfHNfwaA1D0IKFLp0elhqKnWa9VxvMyjyppj48Qw4q/3U3hq6I
         HUzMW6Uc8PfjuH26PX2+TIkaADqtZxxV2X3qV9yBJot32yB1890LdKtTxS0T47iwvYII
         D0qBFHUB8zjvxGceCePGGBWt0gij1AVreWrki/STFSZz3xRTI0xGTZzyBoppDp94/jvW
         aS8w==
X-Forwarded-Encrypted: i=1; AJvYcCVLPznif8u0w5uHXqlFtJQP1xfAUUT+FJEMiaOxxY4Ch91F1Tx9NADFfpO4RxpjuH82svEfG1gDJHE=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywkm4XC3fo8lBqiw6aEG6mk1TkZD2c4RBbKjftMpGjVTXBmTKvF
	L9VbY3mDthXx2MOLN3p8CFekx+bKvY1DM6vqB1CxK7cJblk2jwmFQB3GuSlujxM=
X-Gm-Gg: ASbGncsOxekSaFS76iTm5bMPulukWA3W1CC2c5KlMRQzndpiHWdIAoD6JSIzk4Xl2zr
	uXb8u6VED5YYEPURZUl+ASwd7sEv0HvbV/k4Y/RwQiCtX77rGSmqb9PuTbOevk3v/v/LPxmUAxd
	V/r/b9paTUO6yGy4s775xKFJVb2VpSjjWAulY7230Pp6dLbTF5ucC4VdFqlnP6OINlmnnHC3XtT
	QO+jCwUZDQkLUdSS1Qy8KfAqfZdb37elRUi2lwf8YPrWAK2GFWlLFXJdGR6QtQJZeruOxOSgQ+I
	O1G7kOQONsyCAdHzpVFb5K8xZ5GSDLvmGbHp3qWOLsL6i5anC1Ypd1Q4suDqkJNrsx+1B9f501v
	8GpvASxA8dw==
X-Google-Smtp-Source: AGHT+IGP2yvZrB5Gu+fPKU+xYt1BGz981SHSVsXQfV3kh/3j9fBxQUAn/t4ydiv7GHWejaR8KEf2mg==
X-Received: by 2002:a05:6000:440d:b0:399:7f44:5c74 with SMTP id ffacd0b85a97d-39d6fd06920mr5903580f8f.55.1744042637449;
        Mon, 07 Apr 2025 09:17:17 -0700 (PDT)
Message-ID: <a2b01279-4e67-4ce9-9752-21c16c33fe32@citrix.com>
Date: Mon, 7 Apr 2025 17:17:16 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH test-artifacts v2 14/12] scripts: build initrd cpio
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, xen-devel@lists.xenproject.org
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <cover.7da1777882774486a13e6f39ff4a2096f6b7901e.1744028549.git-series.marmarek@invisiblethingslab.com>
 <20250407123448.1520451-2-marmarek@invisiblethingslab.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: <20250407123448.1520451-2-marmarek@invisiblethingslab.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 07/04/2025 1:31 pm, Marek Marczykowski-Górecki wrote:
> Build initrd format directly digestable by the kernel. Additionally,
> include it itself inside as boot/initrd-domU file, for domU booting in
> tests.
> This should avoid the need to repack tar -> cpio as part of the test
> job.
>
> Keep generating initrd.tar.gz as that's still used by older branches.
>
> Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>

Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>

> ---
>  scripts/x86_64-rootfs-alpine.sh | 5 +++++
>  1 file changed, 5 insertions(+)
>
> diff --git a/scripts/x86_64-rootfs-alpine.sh b/scripts/x86_64-rootfs-alpine.sh
> index b70b3a5..13e85fa 100755
> --- a/scripts/x86_64-rootfs-alpine.sh
> +++ b/scripts/x86_64-rootfs-alpine.sh
> @@ -58,3 +58,8 @@ passwd -d "root" root
>  cd /
>  tar cvzf "${WORKDIR}/binaries/initrd.tar.gz" \
>      bin dev etc home init lib mnt opt root sbin usr var

What's required to drop the tar version?  Presumably merging the rest of
your series?

> +mkdir boot
> +find bin dev etc home init lib mnt opt root sbin usr var |\
> +    cpio -o -H newc | gzip > boot/initrd-domU
> +find bin boot dev etc home init lib mnt opt root sbin usr var |\
> +    cpio -o -H newc | gzip > "${WORKDIR}/binaries/initrd.cpio.gz" \



From xen-devel-bounces@lists.xenproject.org Mon Apr 07 16:22:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 16:22:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.940566.1340294 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1pEf-0001ZT-KN; Mon, 07 Apr 2025 16:22:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 940566.1340294; Mon, 07 Apr 2025 16:22:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1pEf-0001ZM-HC; Mon, 07 Apr 2025 16:22:09 +0000
Received: by outflank-mailman (input) for mailman id 940566;
 Mon, 07 Apr 2025 16: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=ZxXC=WZ=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u1pEe-0001ZG-Ay
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 16:22:08 +0000
Received: from mail-wr1-x42f.google.com (mail-wr1-x42f.google.com
 [2a00:1450:4864:20::42f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7309c43f-13cc-11f0-9eaa-5ba50f476ded;
 Mon, 07 Apr 2025 18:22:07 +0200 (CEST)
Received: by mail-wr1-x42f.google.com with SMTP id
 ffacd0b85a97d-39c266c2dd5so3983038f8f.3
 for <xen-devel@lists.xenproject.org>; Mon, 07 Apr 2025 09:22:07 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39c30096b9csm12592341f8f.13.2025.04.07.09.22.06
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 07 Apr 2025 09:22: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: 7309c43f-13cc-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744042927; x=1744647727; 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=y4DCdiXo5MWdVLP7PBUGlRhueoisa78PeAhavwphKo4=;
        b=dke7Je477E1rfkUoEuYEHG+DJ51DtsHtg1E5zJETLTsQH0IwTrjcg/7K/TRqBEISXy
         UEZXPYbCL3cMWS2lziUVhA5Ka/nBwlfyYXibsJGAPErEoJe0b9RUUQlynie1nt7MQwW+
         ZTUfG4Y8UgLlQ7qG5wSbonMQkHczWtY96v9QQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744042927; x=1744647727;
        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=y4DCdiXo5MWdVLP7PBUGlRhueoisa78PeAhavwphKo4=;
        b=Sfds1OsEezTs8Mf/cEuy6VRXDa9Ol1NTiwuaOcdNDJhv3+lZWo4IPZhrP4yuAi34M9
         d5k9ajpylA8zRJ4HYf2wo/fyFOTWdaWEBVZIhvpplLGoQ6/EFmuL6A6n8oKBSbZ1ampp
         6GyPYiznv5vT48YCCQHJWg8QKCCnUCcRkvx09AItdKve3dXfqU31EsiAWOwPmy+iatUW
         5Mn8ba+pC8FaZs8hrgYxCVEKMBmjKqLRMn771lR/xoXHp3EuCBJoKaAmtZYd/ImxpIux
         jC+DS8JNMMSYvlv3ILRrxgGdY737vDiHZ0+74CNtJXjaKU/B4SVOvz0bcaowJNC6tABS
         G1EA==
X-Forwarded-Encrypted: i=1; AJvYcCVJeFuh60kEsk45LY8apR9cVqPh79cdJzESLsbZYqHJPE7wnr+8K6kUx4bnXEEPTatmwouKuzDlC98=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzm+3KG0SUYzZ3kSG4shnssZ+bIPyCefgRn25edtqkOmOgbAn1R
	/0FZ3+z0IuJDvM1WX2lrpWF5brgA7QAo+/SdZPj7s59KTtKj4l2byxDBIucSLbc=
X-Gm-Gg: ASbGncvZKk3wK/524t/djMg4MyKNmc/ULrhGG/T+6HPfuiFUsEgAz0/YTIJluXOHcJr
	Pbw70ZitTDIERcjcjEAD+ShsN0WEQMXsnxTW5zHByNnmyCeP+TnVA0oB8lBk9IrSP2Qb1CbRm3q
	kLIA0XgrRQF8BeQOKaagEzgHbTycE+ubRolc3L8nKe9cUrTubbr4ID+FGGuwBpLSCnbnKDOu5GC
	NjaarhqdIVcecZlLyVan9l+ecl+u7N1XG/x1ahXwCMWMUcl8Z+c1DBBe9chTtNicmnAf2b6BC9U
	JsI2T6Vdj4HBfj5ja3ZA4XVrrbnml5GmAfVn65jFUsMxLp3SUQsmtJr7HN/ZFHo0BEW4BiWywMT
	CtF/4g1iDQQ==
X-Google-Smtp-Source: AGHT+IHzx4Sgx/5mUTUx4EiEFYDazU/aox8sDVSbKGgeFXBMl7FOxm8k7oX8+6kocozqYX3orVJ9ew==
X-Received: by 2002:a05:6000:4313:b0:38f:2413:2622 with SMTP id ffacd0b85a97d-39d0de679d1mr11660112f8f.47.1744042926868;
        Mon, 07 Apr 2025 09:22:06 -0700 (PDT)
Message-ID: <04ae4edc-8ea6-489d-8485-6e45aa750607@citrix.com>
Date: Mon, 7 Apr 2025 17:22:05 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH test-artifacts v2 14/12] scripts: build initrd cpio
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, xen-devel@lists.xenproject.org
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <cover.7da1777882774486a13e6f39ff4a2096f6b7901e.1744028549.git-series.marmarek@invisiblethingslab.com>
 <20250407123448.1520451-2-marmarek@invisiblethingslab.com>
 <a2b01279-4e67-4ce9-9752-21c16c33fe32@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: <a2b01279-4e67-4ce9-9752-21c16c33fe32@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 07/04/2025 5:17 pm, Andrew Cooper wrote:
> On 07/04/2025 1:31 pm, Marek Marczykowski-Górecki wrote:
>> Build initrd format directly digestable by the kernel. Additionally,
>> include it itself inside as boot/initrd-domU file, for domU booting in
>> tests.
>> This should avoid the need to repack tar -> cpio as part of the test
>> job.
>>
>> Keep generating initrd.tar.gz as that's still used by older branches.
>>
>> Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
> Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
>
>> ---
>>  scripts/x86_64-rootfs-alpine.sh | 5 +++++
>>  1 file changed, 5 insertions(+)
>>
>> diff --git a/scripts/x86_64-rootfs-alpine.sh b/scripts/x86_64-rootfs-alpine.sh
>> index b70b3a5..13e85fa 100755
>> --- a/scripts/x86_64-rootfs-alpine.sh
>> +++ b/scripts/x86_64-rootfs-alpine.sh
>> @@ -58,3 +58,8 @@ passwd -d "root" root
>>  cd /
>>  tar cvzf "${WORKDIR}/binaries/initrd.tar.gz" \
>>      bin dev etc home init lib mnt opt root sbin usr var
> What's required to drop the tar version?  Presumably merging the rest of
> your series?

NVM, I can't read.  I'm tempted to fold in:

#TODO, drop .tar.gz when Xen 4.20 drops out of testing

That said, I expect we'll be backporting these changes.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Apr 07 16:31:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 16:31:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.940583.1340304 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1pNU-0004AF-IY; Mon, 07 Apr 2025 16:31:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 940583.1340304; Mon, 07 Apr 2025 16: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 1u1pNU-0004A8-Fh; Mon, 07 Apr 2025 16:31:16 +0000
Received: by outflank-mailman (input) for mailman id 940583;
 Mon, 07 Apr 2025 16:31: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=uyK1=WZ=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1u1pNT-0004A0-0F
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 16:31:15 +0000
Received: from fout-a3-smtp.messagingengine.com
 (fout-a3-smtp.messagingengine.com [103.168.172.146])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b777c8a6-13cd-11f0-9ffb-bf95429c2676;
 Mon, 07 Apr 2025 18:31:12 +0200 (CEST)
Received: from phl-compute-08.internal (phl-compute-08.phl.internal
 [10.202.2.48])
 by mailfout.phl.internal (Postfix) with ESMTP id 048D8138004D;
 Mon,  7 Apr 2025 12:31:11 -0400 (EDT)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-08.internal (MEProxy); Mon, 07 Apr 2025 12:31:11 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon,
 7 Apr 2025 12:31:09 -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: b777c8a6-13cd-11f0-9ffb-bf95429c2676
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=fm2; t=1744043470;
	 x=1744129870; bh=xT4+rhkCW6C45J8Vy4pZUUTZ25K4Fxj6TRhI313bPVI=; b=
	Zv3IC9LfAah7QyJN2K/7EtMR2Loa+3w7YUHgG9Yz5sSKFIqljMcuOTMJZTMEZq+j
	hLKsa1Aasdi2cn0PihG4UC1JhODzGBP4jlixRs6jxsxsCfnNeeBz5zMa/k9+jeq6
	p8sqPtbd/NBlGBtINMRnydfZ60LwKMWqlFD1z0ATP3ulkZv3AwLm44KWxX7JPYTH
	XWjhVyT0nOc7NtvJOft8fTfmINAnIpNwywPlYOMECeCQVHLe4BqgbHld1gjvwmZO
	Wwvrl5Xg1lV9xzpfxrKYtJP4S0w8JmleavbSKWreFSLGcSnTWTN7cOSPaizOqZOs
	trbqlffVS0AV3xwl0vNqeQ==
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=fm2; t=
	1744043470; x=1744129870; bh=xT4+rhkCW6C45J8Vy4pZUUTZ25K4Fxj6TRh
	I313bPVI=; b=RPOnxul0iUO/R/ZddKcZnVMSwKu0XKMkRLRgfH3Fnz0O1Ycrkf/
	18GCIvK9qwhKXJ3zKiRwWfpbUol1ZdkXTkkGSrpnKb1RYNKOx+BHiarN/pQ/IZRi
	h7Fdw0+fbsrJA+4kjSMXDyp/ABpuVXpdI6SQPZxhdGZ7++9Wg0Be6EXUpjWbcbCy
	o8JU3LAQJdc2BepREhtC2rTFECFnG23NXLnVHy+LyS03DuVDdzio51Ovox2RCIQi
	gWitIC4ihURn4M2PfySdgV3rg/mbc0y44xF6TSBoCAiQVKJ5gcobt4neBPzfsB+Q
	st1oeUbrMWOecBaPoBIvCGnbAXbYwdYE1fg==
X-ME-Sender: <xms:zv3zZ85k9NPw8l25apD7Cqwk1cw-y0DvW7T0PsCfn0tu03YwtAFB4Q>
    <xme:zv3zZ94bfqsbSL2tuYE2b4miL8m_4j6XvVrKrLPRbio42R7NUr-w_VKERqBfTJz3P
    BFfqjDFw0CHTg>
X-ME-Received: <xmr:zv3zZ7epw30Aw1Ch-5X3aFbzSv3XikboRKmNxbJ0nMwtx7qCkygHZh7JEwz31wj-sN3uGZr4fI-DN3lHY73DORHegrXjsbGDNA>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvtddtieejucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
    pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
    gvnhhtshculddquddttddmnecujfgurhepfffhvfevuffkfhggtggujgesghdtreertddt
    jeenucfhrhhomhepofgrrhgvkhcuofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuc
    eomhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecu
    ggftrfgrthhtvghrnhepgfduleetfeevhfefheeiteeliefhjefhleduveetteekveettd
    dvgeeuteefjedunecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhf
    rhhomhepmhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomh
    dpnhgspghrtghpthhtohepkedpmhhouggvpehsmhhtphhouhhtpdhrtghpthhtoheprghn
    ughrvgifrdgtohhophgvrhefsegtihhtrhhigidrtghomhdprhgtphhtthhopeigvghnqd
    guvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdprhgtphhtthhopehs
    shhtrggsvghllhhinhhisehkvghrnhgvlhdrohhrghdprhgtphhtthhopegrnhhthhhonh
    ihrdhpvghrrghrugesvhgrthgvshdrthgvtghhpdhrtghpthhtohepmhhitghhrghlrdho
    rhiivghlsegrmhgurdgtohhmpdhrtghpthhtohepjhgsvghulhhitghhsehsuhhsvgdrtg
    homhdprhgtphhtthhopehjuhhlihgvnhesgigvnhdrohhrghdprhgtphhtthhopehrohhg
    vghrrdhprghusegtihhtrhhigidrtghomh
X-ME-Proxy: <xmx:zv3zZxIZYcJWeumHLHg-8xKCNrL-RoRUoFuad2MeUEt6-L7k08PMsw>
    <xmx:zv3zZwKdufSqyZ-tTVz5x-HmYzJ39pYZ0r3Dx8Vjj1gKkW4dJ2ZfVw>
    <xmx:zv3zZyxC1vAuen7Nz5Wi1RUnG2pjVd1c63jOFzyI_TH4XK07VCuCFQ>
    <xmx:zv3zZ0JG26WqB8orU9VffMAp_-xcN8mZhmYC90GF9fdZyiMYHHlNxg>
    <xmx:zv3zZ589FQae7a9Vwvb_pUze6RzvU5xPrU9B9Z4P0cVqQfFR1jo1o2Sf>
Feedback-ID: i1568416f:Fastmail
Date: Mon, 7 Apr 2025 18:31:06 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: xen-devel@lists.xenproject.org,
	Stefano Stabellini <sstabellini@kernel.org>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
Subject: Re: [PATCH test-artifacts v2 14/12] scripts: build initrd cpio
Message-ID: <Z_P9y8lxB_-kEcy6@mail-itl>
References: <cover.7da1777882774486a13e6f39ff4a2096f6b7901e.1744028549.git-series.marmarek@invisiblethingslab.com>
 <20250407123448.1520451-2-marmarek@invisiblethingslab.com>
 <a2b01279-4e67-4ce9-9752-21c16c33fe32@citrix.com>
 <04ae4edc-8ea6-489d-8485-6e45aa750607@citrix.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="Ld7lPVxnRA0CmEKW"
Content-Disposition: inline
In-Reply-To: <04ae4edc-8ea6-489d-8485-6e45aa750607@citrix.com>


--Ld7lPVxnRA0CmEKW
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Mon, 7 Apr 2025 18:31:06 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: xen-devel@lists.xenproject.org,
	Stefano Stabellini <sstabellini@kernel.org>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
Subject: Re: [PATCH test-artifacts v2 14/12] scripts: build initrd cpio

On Mon, Apr 07, 2025 at 05:22:05PM +0100, Andrew Cooper wrote:
> On 07/04/2025 5:17 pm, Andrew Cooper wrote:
> > On 07/04/2025 1:31 pm, Marek Marczykowski-G=C3=B3recki wrote:
> >> Build initrd format directly digestable by the kernel. Additionally,
> >> include it itself inside as boot/initrd-domU file, for domU booting in
> >> tests.
> >> This should avoid the need to repack tar -> cpio as part of the test
> >> job.
> >>
> >> Keep generating initrd.tar.gz as that's still used by older branches.
> >>
> >> Signed-off-by: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblethin=
gslab.com>
> > Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
> >
> >> ---
> >>  scripts/x86_64-rootfs-alpine.sh | 5 +++++
> >>  1 file changed, 5 insertions(+)
> >>
> >> diff --git a/scripts/x86_64-rootfs-alpine.sh b/scripts/x86_64-rootfs-a=
lpine.sh
> >> index b70b3a5..13e85fa 100755
> >> --- a/scripts/x86_64-rootfs-alpine.sh
> >> +++ b/scripts/x86_64-rootfs-alpine.sh
> >> @@ -58,3 +58,8 @@ passwd -d "root" root
> >>  cd /
> >>  tar cvzf "${WORKDIR}/binaries/initrd.tar.gz" \
> >>      bin dev etc home init lib mnt opt root sbin usr var
> > What's required to drop the tar version?=C2=A0 Presumably merging the r=
est of
> > your series?
>=20
> NVM, I can't read.=C2=A0 I'm tempted to fold in:
>=20
> #TODO, drop .tar.gz when Xen 4.20 drops out of testing
>=20
> That said, I expect we'll be backporting these changes.


There is one more difference: the cpio.gz contains the whole thing
twice. Once as rootfs for dom0 and then another as boot/initrd-domU.
Dropping .tar.gz is probably a good idea at some point, so I'm okay with
such comment added. But I imagine some future tests may benefit from
just one layer, which may want introducing another cpio.gz without
boot/initrd-domU included. In fact, even right now that might be useful
- for example dom0less arm64 test uses just busybox for domU rootfs, not
the whole archive (so with my changes dom0 rootfs has unused
boot/initrd-domU included).

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmfz/csACgkQ24/THMrX
1yxwsQf+JBzdK2q/eXEndctbt+sZXevmKq9O6C7aiZLMCk26ixyRY/BwNCuropjI
epNbAoylT3Iwc+quA3j5VUvZwkGO+G0QmQpBEGzluBTKyUBXMomK9mGnASKDqWkd
JVDh5aQ0+s/3IHtx1cg3tN11nGLq1SZhILDmWlKh/M4eh3YFwpAmRgP2O1nZAj/i
/saubMZo+oRNxFbj/yehbKolztEIgGzUT84HHUTJTATltklcQt/pmt3O153P51aj
NtaIFvKhB/P66sYStZ4S5zK4PrhEPOdWXcbxloXJQYZZKlWRz1QKEVDECjlgo8Ty
vrefkbKGErl3/qw4ZZ09Bmi+d2Ri9A==
=dx5b
-----END PGP SIGNATURE-----

--Ld7lPVxnRA0CmEKW--


From xen-devel-bounces@lists.xenproject.org Mon Apr 07 16:46:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 16:46:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.940615.1340331 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1pcK-0001CT-AZ; Mon, 07 Apr 2025 16:46:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 940615.1340331; Mon, 07 Apr 2025 16: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 1u1pcK-0001CG-3X; Mon, 07 Apr 2025 16:46:36 +0000
Received: by outflank-mailman (input) for mailman id 940615;
 Mon, 07 Apr 2025 16:46:35 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=taXB=WZ=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1u1pcJ-000129-25
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 16:46:35 +0000
Received: from MRWPR03CU001.outbound.protection.outlook.com
 (mail-francesouthazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c207::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id dd19affe-13cf-11f0-9eaa-5ba50f476ded;
 Mon, 07 Apr 2025 18:46:33 +0200 (CEST)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by DU0PR03MB9590.eurprd03.prod.outlook.com
 (2603:10a6:10:421::9) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.31; Mon, 7 Apr
 2025 16:46:20 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e%4]) with mapi id 15.20.8583.045; Mon, 7 Apr 2025
 16: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>
X-Inumbo-ID: dd19affe-13cf-11f0-9eaa-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=qbFIyi7aUOaMI5N9x9g8ef+aduIsnvjteoG2zUutoCv0KnP6cOghkml878iBs0Xfd3E2sR6Z+RYsJhOgYmkUxbrr8kvmDAgqSwWqfmITwu8BqzbrJ8ClPayD7RNFYgUIosVpPUuAesvcsg0JogyNCNXSaFo7RI009sDDcvxCOvqYaGQSN/VbgmIY8wrLivo+rQgzuJlNkelG6n39/LeQXFUd6x30lFtFp3Zqg5XvvqFfhG1gBi+qRJIeZtzHEn9L/y5mB4gu58JtbxqBrcAMRc7IfVaDeWsEJbVx9kPx3ZF3HOht/BkO7EPNrxPB+Ms2MbZSFdhKVD7tQ2PkdCknOw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=KivJ2k6BfE001jDKKqlP7G1zDyRivt2r7x3oxgOSz1w=;
 b=ctwHtFKbkWnZ56xLZGfEaVDGkOHf2ZwB0DpAASFMk8Hz4EZY52jWjl09ESg9J5Te01lezIwNrq41DXiAIPV2PRalI0iOD9YSZmU8jH09mnpkhLyigGr/Sf5KJRtYJYioD/QdqumgP3muAK58/e63uzMkNHDJfg/Z/heJ8Ygkhzc+1ntTdf1oiTtSZx7Ui5smlAMEQIz+TGXHgCcgOzS0hGYP94PIrU2lZq9YVRP39qPbIDLjxCOpwyIQCD8v430oeODE6lYaTd3zSdLbOW+AnK5ZXjYgogFcdFQBQu4dmAdmBz2H26vvZPCiUAxF1J+zG32SQ7OGUsUUUQjbsi3gXA==
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=KivJ2k6BfE001jDKKqlP7G1zDyRivt2r7x3oxgOSz1w=;
 b=MAfkanGFTqXd72ZqMa9k6LWUegkY7V5g5M/8KyLZjG7uCrtxjuRBCwe2yKNrxds1Gcqd2o6z2uTlAjr4+lC89/lL1rAShFCxXt+1w/SxJbkm1Q8AVMYVe2VJnM1jHhCEdtGZvnAOzfUL1d/M1/K9aci3oW5RjiMVAUPZuqXId3P7beQ5XJRD2Y5FlOQZGV97jtwJbe9U3gO9cbG0pYmiPYSIwGFPY6rorszxlYB4SDfCaJ8TFoWezEInw4M4kNK9GKv2dB8PAY3zoim0U9yPqT6ELvdpFzXq2t0DfNPPCmk/xdpqZt2DQthlQURV3xHO0CwD0RkEOU7FbeFWLMT5rA==
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>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>
Subject: [PATCH v4 1/2] xen: x86: irq: initialize irq desc in create_irq()
Thread-Topic: [PATCH v4 1/2] xen: x86: irq: initialize irq desc in
 create_irq()
Thread-Index: AQHbp9yWkav/sMjfLku8fUslcpXJUw==
Date: Mon, 7 Apr 2025 16:46:19 +0000
Message-ID: <20250407164608.2558071-2-volodymyr_babchuk@epam.com>
References: <20250407164608.2558071-1-volodymyr_babchuk@epam.com>
In-Reply-To: <20250407164608.2558071-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.48.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_|DU0PR03MB9590:EE_
x-ms-office365-filtering-correlation-id: 033114d3-0b84-463f-1882-08dd75f3b944
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?SGNZMGZZVzNoNDdZb2lXOThiTSt0WlF1K2pLdFNkWURSZUZISmduem1Ia2ZP?=
 =?utf-8?B?YVJ5UUMydlVCSVNha0N1TVQzanZlaCtaMk9xbllsVTg0TzM5R2pESFZmUmMx?=
 =?utf-8?B?T2JTY2NGZGVpa0F3YU5KMlpYZzdyQ0hqbmh6K2lwZmV6TEJlbERqdXp2UXc0?=
 =?utf-8?B?eXlJeWVkNlJtYnNMSW1pYTM0UzdwVDFnNEQyS0YyMHZBYzUvSFliZ2dna2RU?=
 =?utf-8?B?ZlY5TGlxaDZwcDdSZ3BhUkVFRTUzZ2ptME1tVzgvd1JSTDdkajU3d2I0LzFn?=
 =?utf-8?B?bXcyclZka3NTR0VTR1J5NFo4bkRUcDBsOFQvSVpEUWFwdjQ4T0haU1ZjTjdW?=
 =?utf-8?B?aXgwVDB4UEZMekpnandSWURCeE5PcGhpclZCQ1Y1bitYM1hVTktTUGY5S2FH?=
 =?utf-8?B?REwreGFVZzUwOEpkaHRydVRLUWdkclc0NU1rdkFaMTlTc1dWb1J1eWRQUGNB?=
 =?utf-8?B?VDhBQU44bzMySDFpbVhTOVBaN29GaENtNzVEVFlvM2E0MzJaaFpIYnJDNW1h?=
 =?utf-8?B?NXEzeFRFUURkOENrSUNqWjFnRGtQQmQrYkxwcGwreDZiQnorOUs1MHdKSlpp?=
 =?utf-8?B?NUFndWY3ZnFlMUJrWEZZYk42VG1FQzIzUmhXbmw1cGhXN3VZa2I1cktvWmVa?=
 =?utf-8?B?Snl5cnd6a2ExczBCTXFlQURRSUVXcUtVMzVTMmh2T256T2lDSGhsSDBYclN2?=
 =?utf-8?B?ZEFIOUxNZjJ3OVNrZWNrdm9wZ0V5KzdnTnFGeVZrdGJTVlBscjRDZGxLaGhW?=
 =?utf-8?B?a2FVOXRpK1dFbzdHUG80bmpBVTMvK2xGVUQxK3drbmozeENWakhoaXNGMnBl?=
 =?utf-8?B?bXlqcEkwK2hEOVZ6VFN1ZU1BbW9DM0NoSDdZd1JicmtXSGxQVi9VaDVlTUFG?=
 =?utf-8?B?V3hwNkFtTG1SN2c5ZjFVRG9NOGl1MXVLeWlKaDRGTTFmbHNBaGk4b0FJU0R4?=
 =?utf-8?B?cWFISXN6em1KVUJSaGh0dTYyY2VYc0tWbFdTKzljTm0rVDYyWVVjM25GSHZJ?=
 =?utf-8?B?QWdQb3hIcWh2ZU9NdTk0Sk90WWExY1FrUE1LYmxvcTB2ZUtHUjJIZnd6Q3E3?=
 =?utf-8?B?cUpFZzlPQWhRT2dnWHJScGpOeHFCUEJ0dEoyaThUdkRYQTBlK25mdUNlZGEz?=
 =?utf-8?B?TWZHQkNOdFdsSFZ5eHUrbWhTWmVIcVdlRU1lUklvWFErVktXRXd0cURuZFk1?=
 =?utf-8?B?Uit6UnFpZ3luaWxsdCtHQXlETnpLa2ZZSi84djk1a1hmSE9zKzNhalA4V3Fj?=
 =?utf-8?B?RHhEK0pCRlhRc2xLbnAvVEdSYytJTGlrdHlzZy9abDgwa3FKMU5PR3FuNTk3?=
 =?utf-8?B?MHRDbGNrNzJQYUdhT21ldnV6TGxGTHhmb2d2RXJMUXV1RTJqMWExb2pvVUVN?=
 =?utf-8?B?WGtuN0F2VTN5QkVrQTkvY1h0WmdBdElEc3ZMZlk1aUViU2xrdzVBRUNmajdI?=
 =?utf-8?B?c1ZDc1pCdkFkRy83cWRQQW96aTNzT2MzVTJ6TVRLZmlkekhlWUZnaEZCdVF3?=
 =?utf-8?B?c0VER09GUmEyWWY0dkhWa0pDNG1XbktnU2IyeEVOc3RlQmFRa0U4QStWcVRK?=
 =?utf-8?B?Q1Y1NGh5SkdVa0paL2lWcFUraEVPK29xMjhBbWxJWFowQTZ4Wm5zUkhXUm1h?=
 =?utf-8?B?UkVoNGdkaE5lT0JLY1NJZjYrUTJWRGFaRXozcllTVFBUNlgvaXNpdnY2TkVH?=
 =?utf-8?B?U0JCeENNb1l6SmdCbzlYTk9zUlBQZ3BDNzErOFNqbWNGeXhsTFlQWDZ6QndN?=
 =?utf-8?B?Z2c5UHNaZTN0eUdjbGlLMEtFOFd0N3daajQwaXpnSTNXWEFha3FpNXlMTlpt?=
 =?utf-8?B?YTk0K1N1aVdGR2FDYmF4OXdCNjVTMlh1Q2FHeXNOMEw3Y01BRWIza3NVU1ow?=
 =?utf-8?Q?qHOLaap0xr32W?=
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)(1800799024)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?QkhYQ1U2UUd2VDIxVWxDSjhwWThXV0pJMHl5Y29uQTNqRktQV1JWbCtOUnYx?=
 =?utf-8?B?ejUxQVdZcHhNQ1VTQktJUU11anJzOWVSa05YVHE0dnBGZWJTYStGSTBDckF2?=
 =?utf-8?B?Q084Q29JUlFyRUEyOE1CQUFIbXBWcUZ0L1VYOFpoVm1Cc082c0ppb25ESDNF?=
 =?utf-8?B?RDJkYXQ2U0RLMHhTZUc3anZaUXQzVDE5Z0hqQkFSNkIzbVNDS2FTc1RjUE84?=
 =?utf-8?B?YzUxanZTZDdBT09QZUQ3S29JK2IrQkkyYWxMdE1keEJyVVhEdCtXTFlRWlNq?=
 =?utf-8?B?WTR6SUJZNmxLSVRBNC9ZWER0cTE2cG1nSFNuWnhuNXU1NlcwdEhzajQ4MDB2?=
 =?utf-8?B?UTBlVW5LMXpWNTV0dUREbDhHQzlZVmRGU1VOemw2bU9HSkp2YzZaTFFGZFFK?=
 =?utf-8?B?VzAxWjhZdHcyMkhOcUMvRnpXTWNYbjZpV2NKVHJIcGJrbk5ucmFlMzd3SzM2?=
 =?utf-8?B?dklORGZCeUl2NUxxeW5SNHB4VFVvazVIOThXVS81bk1CWkhMMmJOQVoxelVO?=
 =?utf-8?B?RVdGelYyRkpYcGx5Njc2azUrY3g3aU84THJiREZsU3ZiUWQrSkJ0elkwSkp4?=
 =?utf-8?B?UlJKTW9mYW5BYlRqOFpva0RSR0pPcVRnL0VkMG9CNnBsSUJTcCsvWVFubW1a?=
 =?utf-8?B?T2NvS3RNMVd0ellEcHg5YjZOV3hpUHJuWms2dkU1c282R1c1QUJRMjFJZUMy?=
 =?utf-8?B?UUdBSzVxYjFDMmdDY2ZsMUJvYnFxY0hjVmFvMnZSeGR5azN6OENRUk1JTFZW?=
 =?utf-8?B?SnA3UVV1MWkvem1FNGtwSW4rblp1ZmtadVFNM0hFMnQ0NVV6S2crdEdtaTFj?=
 =?utf-8?B?R1dIeGV3Q2REMS9rdWhCZEluQmpwLzlKb2g3cW1JMjY2NGJQc2I5K0dyVFFq?=
 =?utf-8?B?OWNFTk9hMmtVVVJpSFNWM2loZmY0cG1xUDZPZFJUUjVzT1JiQ1Q2SXpNWHJt?=
 =?utf-8?B?Wnd3aHFWK0pkanZjQXc2Wkc1THhZN3BQaFcvSC9GZUZWQWdGOVZaMzNqSlBt?=
 =?utf-8?B?STVDMmoxR2xkTWROczJOMm0zK1pwQlE5SHhjTWdBcXhJbllwVExCMzdpckY4?=
 =?utf-8?B?amtTNVNhUWJxdk40UE44bE0rZEh1RmRoSDBBM0FGV1kyQ0JHblNZbXdMRTNG?=
 =?utf-8?B?RWVhYUlheWF3bEJKT1ZPaXZYVEU3dzI5dWJ6T3hBZWtIUnRJb2grN3hpN0JC?=
 =?utf-8?B?VmkyZTFuQ0xTSlpOc0wrcHhpNENic0JKbzhaek1GdnF1YnBqQ1cydEprYUZm?=
 =?utf-8?B?a2tLZGdVYWFXdmwrY09CMHdLMlJMSGZwWEY0bi9nNERoenNqcmVYQ3lvdWNy?=
 =?utf-8?B?V2lybmhIeEhHVUdBUnFwQlo0a1dpZWNJSDJoa1ZOZFE1NHpZQkhJQzl4MWM0?=
 =?utf-8?B?aFUzT3ptd0pKUnRwK3p3dmVnYzlLV0doQ2xqc29OY1hrSGRSRFAwRzdMZndJ?=
 =?utf-8?B?L0RYdFR0RGxXbG9JU3Nxa0tlVUErRndKVTZBRXN4WE9OZDhGS052cEY2L09M?=
 =?utf-8?B?dEFmRlFYdWRLZmhVa3lWYW1uamdJTHRNdVVRV0R6MEJjakZqbGFuZUFDOEJE?=
 =?utf-8?B?R1RnYUNQNm1kQlY5SXFVL1pQZDVxZXIvZmZzVXo2N0NyaDBSZXhIcHhscmlZ?=
 =?utf-8?B?MDJZbmprMXNYNG8yQklkN1lxbG1GV29kMUF2Y2RuWDhVUE1VWmU2UmhobnJY?=
 =?utf-8?B?ZTYyeHQyQW5rTUhkZitWZzVoemdSSzVJdmk5ZC95dVJhMlZkUDZ5RVpONUdv?=
 =?utf-8?B?SndpOUVEQmNYd1haTU4yaE1kMWZQRDVmcnZLREF4eTNNSks4TUhoMVhKcEdJ?=
 =?utf-8?B?RWZYWlBXTU1xSk1GOE9LU3FnZTJqZ3lTWTJ5dDVrWTI1ZlZZQlBHVG02NklC?=
 =?utf-8?B?ZkIvYWxhaSszZU9mbHl5R04xYzlUc3BEajU3RjRNalZQUFg3ekh3a1dvdC9G?=
 =?utf-8?B?ajBXU2F3NFMrekhjSUFRVm0welVOVDRZSWkrTmx4RnFOdXRlc1AyRk5PMS9k?=
 =?utf-8?B?OFY5MnpZZFM0SHV4ekg5QVVFMXIrUWxZRU9OMTAwbXpFTGMwdmVFNUpEZVA4?=
 =?utf-8?B?Ukg4c09wM01PZXVkSllDajVBSXJrWTBWNHlONkloSEM4R1dKVVp1MkZZM2Fj?=
 =?utf-8?B?THZjd1AwbmRESXZrNGhDM2pXZDl1R1BHbjZDTzVvSk8yZE9BWUd5YitJSm9V?=
 =?utf-8?B?YWc9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <AF21E639059AB945930AEF409545A0F7@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: GV1PR03MB10456.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 033114d3-0b84-463f-1882-08dd75f3b944
X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Apr 2025 16:46:19.6505
 (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: tp7w8/CLhJzhTxR2fWQi1L7CHThhhrH4EkchXxQgi7PXL2h+BWrXIPRA+t3rZochBqa7hWPFsIz6RHnyXqaa5oXSt3LZCaLpXa0vhl89l4M=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR03MB9590

V2hpbGUgYnVpbGRpbmcgeGVuIHdpdGggR0NDIDE0LjIuMSB3aXRoICItZmNvbmRpdGlvbi1jb3Zl
cmFnZSIgb3B0aW9uDQpvciB3aXRoICItT2ciLCB0aGUgY29tcGlsZXIgcHJvZHVjZXMgYSBmYWxz
ZSBwb3NpdGl2ZSB3YXJuaW5nOg0KDQogIGFyY2gveDg2L2lycS5jOiBJbiBmdW5jdGlvbiDigJhj
cmVhdGVfaXJx4oCZOg0KICBhcmNoL3g4Ni9pcnEuYzoyODE6MTE6IGVycm9yOiDigJhkZXNj4oCZ
IG1heSBiZSB1c2VkIHVuaW5pdGlhbGl6ZWQgWy1XZXJyb3I9bWF5YmUtdW5pbml0aWFsaXplZF0N
CiAgICAyODEgfCAgICAgcmV0ID0gaW5pdF9vbmVfaXJxX2Rlc2MoZGVzYyk7DQogICAgICAgIHwg
ICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+DQogIGFyY2gveDg2L2lycS5jOjI2OToy
Mjogbm90ZTog4oCYZGVzY+KAmSB3YXMgZGVjbGFyZWQgaGVyZQ0KICAgIDI2OSB8ICAgICBzdHJ1
Y3QgaXJxX2Rlc2MgKmRlc2M7DQogICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgXn5+fg0K
ICBjYzE6IGFsbCB3YXJuaW5ncyBiZWluZyB0cmVhdGVkIGFzIGVycm9ycw0KICBtYWtlWzJdOiAq
KiogW1J1bGVzLm1rOjI1MjogYXJjaC94ODYvaXJxLm9dIEVycm9yIDENCg0KV2hpbGUgd2UgaGF2
ZSBzaWduZWQvdW5zaWduZWQgY29tcGFyaXNvbiBib3RoIGluICJmb3IiIGxvb3AgYW5kIGluDQoi
aWYiIHN0YXRlbWVudCwgdGhpcyBzdGlsbCBjYW4ndCBsZWFkIHRvIHVzZSBvZiB1bmluaXRpYWxp
emVkICJkZXNjIiwNCmFzIGVpdGhlciBsb29wIHdpbGwgYmUgZXhlY3V0ZWQgYXQgbGVhc3Qgb25j
ZSwgb3IgdGhlIGZ1bmN0aW9uIHdpbGwNCnJldHVybiBlYXJseS4gU28gdGhpcyBpcyBhIGNsZWFy
bHkgZmFsc2UgcG9zaXRpdmUgd2FybmluZyBkdWUgdG8gYQ0KYnVnIFsxXSBpbiBHQ0MuDQoNCklu
aXRpYWxpemUgImRlc2MiIHdpdGggTlVMTCB0byBtYWtlIEdDQyBoYXBweS4NCg0KWzFdIGh0dHBz
Oi8vZ2NjLmdudS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTExOTY2NQ0KDQpTaWduZWQt
b2ZmLWJ5OiBWb2xvZHlteXIgQmFiY2h1ayA8dm9sb2R5bXlyX2JhYmNodWtAZXBhbS5jb20+DQoN
Ci0tLQ0KDQpDaGFuZ2VzIGluIHY0Og0KIC0gUmV2ZXJ0ZWQgYmFjayB0byBpbml0aWFsaW5nIGRl
c2MsIHBlciBKYW4ncyByZXF1ZXN0DQogLSBBZGRlZCBsaW5rIHRvIHRoZSBjb3JyZXNwb25kaW5n
IEdDQyBidWcNCg0KQ2hhbmdlcyBpbiB2MzoNCiAtIENvcnJlY3QgY29kZSBzdHlsZSAoImRvIHsi
KQ0KIC0gQWRkIGNvbW1lbnQgZGVzY3JpYmluZyB3aHkgd2UgbmVlZCBkbyB7IH0gd2hpbGUgbG9v
cC4NCiAgIEkgcHJlZmVyIHRvIGxlYXZlIGRvIHt9IHdoaWxlIGJlY2F1c2UgTmljb2xhIFZldHJp
bmkNCiAgIHNhaWQgdGhhdCB0aGlzIGFwcHJvYWNoIG1pZ2h0IGhlbHAgd2l0aCBNSVNSQSBSdWxl
IDkuMQ0KICAgd2l0aG91dCBuZWVkaW5nIGFuIGV4cGxpY2l0IGluaXRpYWxpemVyLg0KDQpDaGFu
Z2VzIGluIHYyOg0KDQogLSBVc2UgZG8geyB9IHdoaWxlIGxvb3AgaW5zdGVhZCBvZiBpbml0aWFs
aXppbmcgZGVzYyB3aXRoIE5VTEwNCi0tLQ0KIHhlbi9hcmNoL3g4Ni9pcnEuYyB8IDIgKy0NCiAx
IGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkNCg0KZGlmZiAtLWdp
dCBhL3hlbi9hcmNoL3g4Ni9pcnEuYyBiL3hlbi9hcmNoL3g4Ni9pcnEuYw0KaW5kZXggZGQ4ZDky
MWYxOC4uMzhhYzA4MjNkNyAxMDA2NDQNCi0tLSBhL3hlbi9hcmNoL3g4Ni9pcnEuYw0KKysrIGIv
eGVuL2FyY2gveDg2L2lycS5jDQpAQCAtMjY1LDcgKzI2NSw3IEBAIHZvaWQgX19pbml0IGNsZWFy
X2lycV92ZWN0b3IoaW50IGlycSkNCiBpbnQgY3JlYXRlX2lycShub2RlaWRfdCBub2RlLCBib29s
IGdyYW50X2FjY2VzcykNCiB7DQogICAgIGludCBpcnEsIHJldDsNCi0gICAgc3RydWN0IGlycV9k
ZXNjICpkZXNjOw0KKyAgICBzdHJ1Y3QgaXJxX2Rlc2MgKmRlc2MgPSBOVUxMIDsgLyogZ2NjMTQg
LU9nIG9yIC1mY29uZGl0aW9uLWNvdmVyYWdlICovDQogDQogICAgIGZvciAoaXJxID0gbnJfaXJx
c19nc2k7IGlycSA8IG5yX2lycXM7IGlycSsrKQ0KICAgICB7DQotLSANCjIuNDguMQ0K


From xen-devel-bounces@lists.xenproject.org Mon Apr 07 16:46:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 16:46:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.940614.1340324 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1pcJ-000198-Uz; Mon, 07 Apr 2025 16:46:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 940614.1340324; Mon, 07 Apr 2025 16:46:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1pcJ-000191-Rs; Mon, 07 Apr 2025 16:46:35 +0000
Received: by outflank-mailman (input) for mailman id 940614;
 Mon, 07 Apr 2025 16:46: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=taXB=WZ=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1u1pcI-000129-R7
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 16:46:34 +0000
Received: from MRWPR03CU001.outbound.protection.outlook.com
 (mail-francesouthazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c207::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id dc85e0a8-13cf-11f0-9eaa-5ba50f476ded;
 Mon, 07 Apr 2025 18:46:33 +0200 (CEST)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by DU0PR03MB9590.eurprd03.prod.outlook.com
 (2603:10a6:10:421::9) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.31; Mon, 7 Apr
 2025 16:46:20 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e%4]) with mapi id 15.20.8583.045; Mon, 7 Apr 2025
 16: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>
X-Inumbo-ID: dc85e0a8-13cf-11f0-9eaa-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Od9W51kk5joAIGQh0E7bJeWzbfCcllFm2s3ndjiWQoAJNPwJDhfXD36WPKKLLjIkqOj5jtUj/HUcZ6sXzJAoeI/A0Y5j+8eOd7xAQaNey4F9kvro+LlOzhnbGZaqSv4iJUTbFweC4lv5QGEalLuZg6Gc1nFakWpsrtrSZ+6m21jzXtIvMnLwWphKo5QlPDYqAQQgK2+eUhJKDJugmMKImeAia1B+t7uFYaMCfUJrmWmWehKw5/QtXNX5FGdmMvAP0vlKaCzHaPcUa/7Dx1Y5GZpiJR049byTmkC375+WblYgWSNwiwggQ1kTD9bAkPw1bxy1977793wdHQupD0jogg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=FZ4uLEX5JnhvBk61CPh0YO1Wh8KhNw7TarTuxdN50Gw=;
 b=bYUIITxBlJPqjSojgTH+rSFG62rmPeSEWAfcmJMlAaHwjCoDHVQcgIFAJWJ+9atCViD0KKu95ihzoRbq47Jy2AIDkSspjPrTXvsCVEVbN0U2yqD4eHsA3H5GVTZ6NjYRibhRdh16vn+uoILDqFjZ3F4jiACMhlbaixb6ddYwkDv9HMaVglofitFY1KXJbvhJUILU7PvzcKv+ZAMecEl9jjetB0uwoEyoNkQQuru6OR70OekfPRyUTLht1BpD7KGO9FVRnImcfI2BAp8B+Ixf+HCPPY2iQtAuQ/3dD4LHmqKLAiulEmpOlLOW35+Jh+At0GDIfDeb1hsTi8pI8bBO4w==
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=FZ4uLEX5JnhvBk61CPh0YO1Wh8KhNw7TarTuxdN50Gw=;
 b=BiPznjsViRgdQ519DLUE/9f6DmnAw94kpqGMgqFeGzYgd2gDCqaLZRDbg5K/OQTdIognuO6jO/d3/TxMyCfSEAWcZLh6AluPz5NdCOF8Z9JlNPIy8RyANR2LyKu9gemTKW6jJ7GUnxerzMimRW7RiSguO+hBZvKhRBY6bShdHpXrYF57hMChlaRm8ChpcyMah5ktAQx2QJbz3xoDMyMZStr4xsnyVnBU6KhJlnmFc+cqvSXLGW4fIZ+XrAeb1/KS5arh3hthKQzhM3AbQxZCKud+bOipjNRxawh9vrE2Jwki75Gd3DjRwE6ikPt03EG5EzRWxl+HY1EWPWcUzAuatw==
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>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, Julien
 Grall <julien@xen.org>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v4 2/2] xen: debug: gcov: add condition coverage support
Thread-Topic: [PATCH v4 2/2] xen: debug: gcov: add condition coverage support
Thread-Index: AQHbp9yW2b5GBLlgDka417bnQFIpfQ==
Date: Mon, 7 Apr 2025 16:46:19 +0000
Message-ID: <20250407164608.2558071-3-volodymyr_babchuk@epam.com>
References: <20250407164608.2558071-1-volodymyr_babchuk@epam.com>
In-Reply-To: <20250407164608.2558071-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.48.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_|DU0PR03MB9590:EE_
x-ms-office365-filtering-correlation-id: 44908335-511b-4171-8522-08dd75f3b971
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:
 =?iso-8859-1?Q?kFjOdsQwwquyIARtH6rCH31FBLUMC8CYiaS+lZ7rJf6YThgiNmVDGJHGN4?=
 =?iso-8859-1?Q?ILh/HsGlqXLjX/9nUDz6ojFcFYvgtQVTSqW9ylP5b+2w3Vbqsms3euA5Pl?=
 =?iso-8859-1?Q?RWi/Os/5zAK3KueFn3ZgXj+mAr8dJ4iX8GZ7sKbt3gspUj+ui47i8QRDjk?=
 =?iso-8859-1?Q?/2brSncJiW6RJFXULsKf03tAkdzTjwo9paY9u1JQkwkD2nrGvdBq5SsXVR?=
 =?iso-8859-1?Q?mMzTF5W3wmknCZoYnVTdi+YlYH+kqu1pABVmY2jU2BPd5Z30I194+f8bsj?=
 =?iso-8859-1?Q?tqbTazVYVhFCAs83jX6CN3x0K87XvWzU6JBn2fWuN/UEsaHljctRY0Y6S+?=
 =?iso-8859-1?Q?a1s/vbhfIkqOAHBMFAy9/KWN7s/oiLGm0YHJk8dxc6n7Kh3TOWlUyF2d8u?=
 =?iso-8859-1?Q?Zrl84R411NGre1tkIosmwNkPdp6oPBAjlhosJWCdnzderiCFG6u+SjIDNh?=
 =?iso-8859-1?Q?6SshYiyxYc7EPvzZ51vAzG7wnFKmUuyxPAOTa27lqvQvsbzQqVjknWjUPz?=
 =?iso-8859-1?Q?AfaTmC4GpvpGh1FwSzFyiik8FKpRhhSuY3l7FUpe2WSyvR0ftKy12nDCOr?=
 =?iso-8859-1?Q?w4WsJV5yx274JinL0BkFUsffFBp8VIWlxO/81xh4QlK3JJCj0wb1Tl6BNe?=
 =?iso-8859-1?Q?Y3eo3k4UNPyGorTlGi+WdlqtJe2m//aaZMsiR8Sl/1RtvXk0R11QJtDXMh?=
 =?iso-8859-1?Q?SDXxwuERu+3Ip0huBJRSL9RONeREYf/Ip5rutp7c61ayIUCRQuDMxiJP1l?=
 =?iso-8859-1?Q?WRR8tFnPMrW6AlAksBkO5Mh06wHr1YXAMVOXFdEBqhiDEhM1YaPwmafNRT?=
 =?iso-8859-1?Q?O99zI0i43+fsOAunm89azaZiuK7wALvLnkMYI32zulO6/xoyCiKVPHScCh?=
 =?iso-8859-1?Q?1I992g6/NdgKz3yjkvmcgCj1d0PaYFUNkuYmr4w604Z/lp1VEfLwaOBKa2?=
 =?iso-8859-1?Q?Yuy0CjswywkrOi6/HGr2AsaJZ32MLtVyNfF+dkcRWf6kQukPwZlqt2ejHY?=
 =?iso-8859-1?Q?3jEP1foVC/jqY0CTo9n+rTPpLBViXc3lH1fCj9aq5xOhT4t3J7DTR70+2L?=
 =?iso-8859-1?Q?sy2T+lwXQO+qdXA48tOXzkKYMqfo+LiCtWNlyEHYHtzBPtmgTZIL8gq12n?=
 =?iso-8859-1?Q?vD37Yi3uW5s0B7uyq0Uk/XtEE1PXK32kuEn5YpDnxpooFBlWn+ha9yPDtv?=
 =?iso-8859-1?Q?+qakHkdhWWVTVdzsYDuhm72s1g7UpwOzvEhnExp/GIuNO+jG8P/5NvM0ed?=
 =?iso-8859-1?Q?Atsrqb+oKCb1fEjb5cPCj8p2dtMnilfbmX8yaJDbcmun1wjOP2T1PVa4bJ?=
 =?iso-8859-1?Q?J1cUs+LDoXafKXYJ8L6UgI+D1z1RSuQ8Ycgc955QgTwqYK2jmcNl2oD8j9?=
 =?iso-8859-1?Q?VH3PgrTMhxTb8SkYWdQi4hhYcDFaqOVuzDWhXuMyWSanxoCWGtGlHP/gTy?=
 =?iso-8859-1?Q?cA48SCSYo7u3XNEbIZVT/GPq7yel+7U0PnaWlm1z1Ako2ItXPDihOE0uqi?=
 =?iso-8859-1?Q?BfH89kKOfox4fnb2WZgJlf?=
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)(1800799024)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?FGvxpfUITQjAIQsPotJlQJDe7ixwuryJX/1PQkoBsWFuyvL3uZdRRvHYh7?=
 =?iso-8859-1?Q?ldhf4xamd0DhjnirBDqV0Wzz5JuyA9pVSnficzQUhH4ULrZZby6MnheI7A?=
 =?iso-8859-1?Q?IwdzIUfM4VNmpyTyND0spgC+S8bj0yFb6Gtrfs+LRl3uGKjyq7NG8Xek8G?=
 =?iso-8859-1?Q?4KUGG6BxTXK+xw+Jtp/9YPUQQOs7CRGI27Ik+bgCYV+B4K2UcWpcqdrTwF?=
 =?iso-8859-1?Q?/iAWfJbUSKbpWfC3mDHOtpRv8VsuJg72FnzTHRqiSqIrpNUW8Hd6i7phqr?=
 =?iso-8859-1?Q?Ax2it+LJdmmlejfPXu4bb9VWb5v1GG3f4fpIaudvRFsy519LuNjB+nZU+X?=
 =?iso-8859-1?Q?MIbd29b1TSTqUS1rAjIrcW60S302G900r2tUtlRryRVX+3DnSN2I6uG3tj?=
 =?iso-8859-1?Q?0R7+KIRar0voz1FmphtayovcIM2BUZaKHWlS4nQNFXEm8tys+zJNWlP3I4?=
 =?iso-8859-1?Q?1aY1YVf4Bg7LPtlUKneWuCL0ErTwnNaRbRA0bVRR0jmS0+mPRwyNOKDllT?=
 =?iso-8859-1?Q?Pktw/Vq7G+LJgJszRHraErt3/HgDoZzRy6O4H57y9Wc9zE5thlgE1vYg+i?=
 =?iso-8859-1?Q?kYKg68lGpRExHNt7N1C4ZLs0b0iXhOhi6cMN7Hlds6ACLNNBkoL68wERva?=
 =?iso-8859-1?Q?lTr7zrnoqiIQHFQRylwhbJJXN5b/bdNQ9pVEZBNkcpw1rlqkNgeR9UNwyK?=
 =?iso-8859-1?Q?F2NQm/rF5WMDPL0FJblnXMXC30EtQn2UiguVBm8TNzHWSbYW3yhdcHQvJc?=
 =?iso-8859-1?Q?uQk1pFQYrXjcshQrecDQcxIBA1S52AW5kRRtq13VNbAp6nFNly/p8LbQw5?=
 =?iso-8859-1?Q?SPoYIcYGdabxgDk38r6Vl80gYrxo74k3J17zbLT1htTOWFMd3GRRRDblpt?=
 =?iso-8859-1?Q?JVxVQPQUn4MypHqt8Mt1XKkgdk5Ni3vySkJ8f+GwaVp0vs4EEgHc9m55n+?=
 =?iso-8859-1?Q?AsBbv/OQ7ElH504OAQuOlM+UFYmNRMI3BBcxj2oWjseS3kWRNh30NqEc6E?=
 =?iso-8859-1?Q?4lfqfNMeR5hiQH6W1512lZCHn5kABlipZ2H2eb900C2jQOHc/7N/XcmOba?=
 =?iso-8859-1?Q?5+XqiLlbyQz6jE9fIrF7PAU3xJvPT0K8OScZG2iEvecB7kwbAHdwtwagTb?=
 =?iso-8859-1?Q?5t4PSikcQSWesOwbYLgNf8AWufFel1RNTmccOwQIr1o7N9xBEyZ8XowD+d?=
 =?iso-8859-1?Q?CnM153gEgnEtvMR7GyDGOL1G6jCyeSud9mR3BWw7vT48slEclZTSwK75zC?=
 =?iso-8859-1?Q?M4j31WB9ZeBjYMzfDyuy5mQiHq4LExAtCAKMUrpuSXlQBjx1Jivn6XqLNd?=
 =?iso-8859-1?Q?uP/hVvMIhYlGANqm/oEZC9NhWlzl82uZ8wcYs8UMP/mOEo3/zamoNABxiF?=
 =?iso-8859-1?Q?WUFUODpy2ebK8uT0vFWDOKN+P2bPnOpPEf34GaXGscFyT+BrpevBqkYTP8?=
 =?iso-8859-1?Q?hxXSVdps2kqnNjxt5oml4QIo7NVsupnpCAl6lnrl3/w9TZzyZwU6g+taLB?=
 =?iso-8859-1?Q?W8SOeV3YBKEXJubQPtF6FFYj5bDLKjLWXa/ZFh70LDQk2eVe9i2VGQGAvT?=
 =?iso-8859-1?Q?oTsfBEpSC4LT8iEhwNcg7L26KAu0pviLvNvpdtYrZZA6kUEkWDXdIiEaUF?=
 =?iso-8859-1?Q?bP72YX92PqzOZAgocBSB9caCa/alDr1JsU14BUDUb2AHI635qeMCE/Uw?=
 =?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: 44908335-511b-4171-8522-08dd75f3b971
X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Apr 2025 16:46:19.9741
 (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: YLYjZPGS3isIz6umvGz6jBwXObgKjRJTDboND/9YJJBsWK1DJcp/74/Mcb07MLhsN0SmUVBvONEhV5Pl66FkisGi2+OhQzYPuFWIsXpBRWE=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR03MB9590

Condition coverage, also known as MC/DC (modified condition/decision
coverage) is a coverage metric that tracks separate outcomes in
boolean expressions.

This patch adds CONFIG_CONDITION_COVERAGE option to enable MC/DC for
GCC. Clang is not supported right now.

Also, use the opportunity to convert COV_FLAGS to cov_flags-y, which
reduces amount of ifeqs in Rules.mk. Otherwise this patch had to add
another nesting level with "ifeq ($(CONFIG_CONDITION_COVERAGE),y)".

Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>

---

Changes in v4:
 - Slight formatting fixes
 - COV_FLAGS  -> cov_flags-y

Changes in v3:
 - Introduced CC_HAS_MCDC that checks if compiler supports
   required feature

Changes in v2:
 - Move gcc version check from .c file to Rules.mk (I can't find
   an easy way to check GCC version at Kconfig level)
 - Check for gcc 14, not gcc 14.1
---
 xen/Kconfig       |  4 ++++
 xen/Kconfig.debug |  9 +++++++++
 xen/Rules.mk      | 14 +++++++-------
 3 files changed, 20 insertions(+), 7 deletions(-)

diff --git a/xen/Kconfig b/xen/Kconfig
index 2128f0ccfc..3a723db8ea 100644
--- a/xen/Kconfig
+++ b/xen/Kconfig
@@ -41,6 +41,10 @@ config CC_SPLIT_SECTIONS
 config CC_HAS_UBSAN
 	def_bool $(cc-option,-fsanitize=3Dundefined)
=20
+# Compiler supports -fcondition-coverage aka MC/DC
+config CC_HAS_MCDC
+	def_bool $(cc-option,-fcondition-coverage)
+
 # Set code alignment.
 #
 # Allow setting on a boolean basis, and then convert such selection to an
diff --git a/xen/Kconfig.debug b/xen/Kconfig.debug
index f7cc5ffaab..f89cbd823b 100644
--- a/xen/Kconfig.debug
+++ b/xen/Kconfig.debug
@@ -44,6 +44,15 @@ config COVERAGE
=20
 	  If unsure, say N here.
=20
+config CONDITION_COVERAGE
+	bool "Condition coverage support"
+	depends on COVERAGE && CC_HAS_MCDC
+	help
+	  Enable condition coverage support. Used for collecting MC/DC
+	  (Modified Condition/Decision Coverage) metrics.
+
+	  If unsure, say N here.
+
 config DEBUG_LOCK_PROFILE
 	bool "Lock Profiling"
 	select DEBUG_LOCKS
diff --git a/xen/Rules.mk b/xen/Rules.mk
index d759cccee3..e9e049368f 100644
--- a/xen/Rules.mk
+++ b/xen/Rules.mk
@@ -31,6 +31,7 @@ CFLAGS-y :=3D
 AFLAGS-y :=3D
 nocov-y :=3D
 noubsan-y :=3D
+cov-flags-y :=3D
=20
 SPECIAL_DATA_SECTIONS :=3D rodata $(foreach a,1 2 4 8 16, \
                                             $(foreach w,1 2 4, \
@@ -133,19 +134,18 @@ $(filter %.init.o,$(obj-y) $(obj-bin-y) $(extra-y)): =
CFLAGS-y +=3D -DINIT_SECTIONS
=20
 non-init-objects =3D $(filter-out %.init.o, $(obj-y) $(obj-bin-y) $(extra-=
y))
=20
-ifeq ($(CONFIG_COVERAGE),y)
 ifeq ($(CONFIG_CC_IS_CLANG),y)
-    COV_FLAGS :=3D -fprofile-instr-generate -fcoverage-mapping
+    cov-flags-$(CONFIG_COVERAGE) :=3D -fprofile-instr-generate -fcoverage-=
mapping
 else
-    COV_FLAGS :=3D -fprofile-arcs -ftest-coverage
+    cov-flags-$(CONFIG_COVERAGE) :=3D -fprofile-arcs -ftest-coverage
+    cov-flags-$(CONFIG_CONDITION_COVERAGE) +=3D -fcondition-coverage
 endif
=20
-# Reset COV_FLAGS in cases where an objects has another one as prerequisit=
e
+# Reset cov-flags-y in cases where an objects has another one as prerequis=
ite
 $(nocov-y) $(filter %.init.o, $(obj-y) $(obj-bin-y) $(extra-y)): \
-    COV_FLAGS :=3D
+    cov-flags-y :=3D
=20
-$(non-init-objects): _c_flags +=3D $(COV_FLAGS)
-endif
+$(non-init-objects): _c_flags +=3D $(cov-flags-y)
=20
 ifeq ($(CONFIG_UBSAN),y)
 # Any -fno-sanitize=3D options need to come after any -fsanitize=3D option=
s
--=20
2.48.1


From xen-devel-bounces@lists.xenproject.org Mon Apr 07 16:46:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 16:46:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.940613.1340314 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1pcH-0000vC-OO; Mon, 07 Apr 2025 16:46:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 940613.1340314; Mon, 07 Apr 2025 16:46: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 1u1pcH-0000v5-LD; Mon, 07 Apr 2025 16:46:33 +0000
Received: by outflank-mailman (input) for mailman id 940613;
 Mon, 07 Apr 2025 16: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=taXB=WZ=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1u1pcG-0000uz-ET
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 16:46:32 +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 d60bb973-13cf-11f0-9ffb-bf95429c2676;
 Mon, 07 Apr 2025 18:46:22 +0200 (CEST)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by DU0PR03MB9590.eurprd03.prod.outlook.com
 (2603:10a6:10:421::9) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.31; Mon, 7 Apr
 2025 16:46:19 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e%4]) with mapi id 15.20.8583.045; Mon, 7 Apr 2025
 16:46: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: d60bb973-13cf-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Ndx+LHm0/zghAaP3BcYVtZnY2U7c6U2rQyJWUQSFXUUpvNFaMYEGl+PPOF/3eYgetNf5POXw2IoHZvPCAtZoxmSRMU4LVaJ1ZdEQXRVoSH+oEgWhLm4/57hRQqrsAlvkS2mgskI4INq/jo94NT0qD3FPqGvV85cOvcuGMry+c5Nq3CnEphpZhOqDklhGbIXcH+JbbH6oR00VLqUw73C6Xtei9YFEcHF6AyE4DUcOOMtQ3R6ELUebAn9tIuPANiVFhaIrh1JUflVCGn0yda8GXNrDaYpq1tNsChFbmYSW/wlF63s4e+SiYxVjrpmKTkPKszG+dRU2aWF2ErrqayLrug==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=A+EJilJ78PZwuNmgGiAes0CZGmVXgRwE+jV/ppxayRQ=;
 b=lsR9KtPev2Dt69eT8AypGbJCJbgGdF+6u7jAHePZOmRgGV+inw3pQIkKXKc/I886mNo6JHVFIClxC0cELMJUqBZOejhRGnCl9XP7HvDhwRuwl5Tr13KeMWJagzU6K0Ay4oh5HYB5cMnqa4XTl/eTOnEGoCbNAh8KfwciDisHfKHdQ92JkaWZ4CLuJXsqTPEGgpSjUcTNsUUavfME8jRzGFwa6OpR7ATqjSxs9JRd+bArcApBNx8qg7HgaQY+MmLG4/x7aMdvCxT7qCuLnC6f2PuoKNyViCR1sqt21Z1mE4UYbMuZCPaO/22UNQvkfpayqzRgpGACoqikT6WJcbewdA==
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=A+EJilJ78PZwuNmgGiAes0CZGmVXgRwE+jV/ppxayRQ=;
 b=CUrMvxtwhVBcU+ukImcGflE1NoEr6GNIxqaXpfwTMtyFqPot0/1CdnrGwRUr3DfJ8CmJAzEFEGSMIXjIfAIaY864liopag+sYh2+sELXGvgqHF6ubYrkQUatPqEvM9O1md+f7uHAS1knuWJjlF4apRRSUK1M66oPuaHf09Emv8mDoLrVfivclsS9VKCNJAxTXJVUX2GZZxLAOzXdY8Y/OvBwTHDqdwYcYsmMUs5QTfPrEUvi7C4m05Aqz1NOh25/2BgsCb49sRKXQooCW2ucJfch4MyBVKfPUEoUoKe6DOMRceMDgiQIi1IplKaCoDM0TwFC/8EVQxJ+J2eMu+6daQ==
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>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Julien
 Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v4 0/2] Enable MC/DC support for GCC/GCOV
Thread-Topic: [PATCH v4 0/2] Enable MC/DC support for GCC/GCOV
Thread-Index: AQHbp9yWGdOlaD6DSkiV7Tp26KtCBA==
Date: Mon, 7 Apr 2025 16:46:19 +0000
Message-ID: <20250407164608.2558071-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.48.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_|DU0PR03MB9590:EE_
x-ms-office365-filtering-correlation-id: 14295405-d703-4284-3304-08dd75f3b8b8
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?RjZmeVpXTlpFbnRWUWxSMDlpTzZpOFZxRHl2d3JGOEFxVnZOY3ErZ092dnpO?=
 =?utf-8?B?UmRDdlNwVVRkWW1SenRselhzbWVieWFsVis1UjkwU25mMXZtdlFGTGxNaHcw?=
 =?utf-8?B?SmxXeGlGUkxuNnpDaExmc1ExQmF0UEp4STcvNXM5MHAxRmY5Nk54Si9WTzJ0?=
 =?utf-8?B?a3lyVEV6cWtPWHJHRFJ3dUQ0NVBMWThOL2dDbHQzSHB2cXJSZ29EcSt1SWpV?=
 =?utf-8?B?VzBJZjhCaytTVDJqYUQydzBuV1RrK2RuZ25lTVpnbzJPQi9MUUFLZm04d3pM?=
 =?utf-8?B?ZUtXTE9iM0RGMDkxZ0tuaHJlQ2RtbENzTFZjQkYvL0I2M2lXaGplQm1YUXlu?=
 =?utf-8?B?WHdjdFpLUXdqMU9wSVJaWVJJcEZuQzRGdFZ1dmtTVU1ORUQyWURUcFJLRkEz?=
 =?utf-8?B?OU5RWmZ3Nk5lMWhDSVQ1OFRpMFVUSURhY3VubitETWRaWW1HSno1RzVLbzYv?=
 =?utf-8?B?ckl2RE82cDJIVU9rWmRyeXdPTDlUT1ZEK2xVWFUzNVcyZk1wUlNPUDhvWVI0?=
 =?utf-8?B?bjk5blc1TGIxMkdBUGJYY0lXaFBnYndvOWxQb25VNnkzM3pGYlhjWWwxRE9B?=
 =?utf-8?B?SHAzZFlDN1FieVlGVEdBcEYrWmlXS3BQek5mN1NrSVRRcW9WamgyaXV3dEZB?=
 =?utf-8?B?TFdIaFRkbHlHRS8ya3I0RDZnaG44L2tRS3gvSEZPbEkxWWJVWTh4aWJSdDN1?=
 =?utf-8?B?VDdkMHVRRTRGMU9Ld1lFREVMWnFvcGo2MlpDRmRmVVk1Q1hNcU1vQXh0M2Z3?=
 =?utf-8?B?WUtVZlpzSlRJY0MzQU1vMGJKNFJZU0J5ZHFwQ2dEWlYrejdmOGlIZll0aUtq?=
 =?utf-8?B?RDBhRjZOZlVpRmdLZVJGSjQ3dWs1NzFUM2ZwKzYyWjNLditMTloxdERhZUwx?=
 =?utf-8?B?NDZDWUxQMXUyNENId1NyL1lWTWIrVFY5M3Iwd2xiY1JVU05na09ZV3RodWpY?=
 =?utf-8?B?Um1hYkgxTHhrTkRLQkVPM2JXZVVmWDZjMmc2WGd3aGNSRnRaL2pOQjhZbHJ0?=
 =?utf-8?B?ZEZVamw3QVVUb3MvT09QekpmaTdPTW5GYW5hejkxQXpDR0YvUHpJWDFVM2FC?=
 =?utf-8?B?RTFFbWd0M3BKSWF2N0RtR0t1UERZVmlCc1BwS0hXQWxnMHA4dUEwTGlGcVZS?=
 =?utf-8?B?ZExpUkJCT3d5RlRwSHc4ZVYrY3JTVDZKWFJLVlVwVWNRdEgwRXY1dW5WbTIr?=
 =?utf-8?B?RW5tenpBdmhsaDVuQ2lpZFMxbldMR2Z4OWo4Z1A0NHZMM0Z4ekViTFkvb0Nn?=
 =?utf-8?B?eklLcnkwS3lZeWdOLzArUnJGOU1QTnczVGtGNXN4aGcyd3Z5Yy9URjBLVWlj?=
 =?utf-8?B?TE9JdkU1UkxDa21pT1BEUXJlU3pqa2J2TC9UMFpydGVoWHJES0VQbW9ocjE0?=
 =?utf-8?B?TkUxRTlHY0ZmMytSZnlGb1RKby9Wa0tVQlBtNGMyYXJXZmxraDV0WDBoRXBP?=
 =?utf-8?B?R3NpdFlqK29YVGRYL0sxMDdZSjdlSXMrdjV3R3h4bUJ0SEZzbHZ6dDJaaUNi?=
 =?utf-8?B?UWwzZmJrRitZZDRLczlOSDFxVDVNMHNVL0x4QmpRYTgvTzBrWGE5K3g1Vmdt?=
 =?utf-8?B?Z0xKZ0xhMmVEQ0xMN2N0TmpBU1lxeDJNQjRwUlFBOEtYRkcrc2lDODhxRlJB?=
 =?utf-8?B?UVJaejhwTHBvZFh6bThpdFJGOTVyek56dHhRK2N1SWpPYVFoUHA2djNFNHNi?=
 =?utf-8?B?dEMyZllKTm14OWxCYWJpczU0S255RWQ1a3A4K2l1K0xoYldzeW9XZkhGdkpD?=
 =?utf-8?B?OGwzVSs4dzN6K3gwV0dzZkJqYXRPclYzemxyQ2JBWFJRWmVIYXp5UW0xWDdL?=
 =?utf-8?B?S1ZKMUZXd3dYa0RQUFg0UlZxeStFOGg2a0lvS1Zmd1ZsTzdtTUlTTXhLdVFt?=
 =?utf-8?B?T2dnRjQ5OFg0N2l4Y1F2NmVIeUMyYWpEZk13cndrbGxZUFE9PQ==?=
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)(1800799024)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?K0gxa0VmaFJBc0p2VFM1YUNEby9qNnoyWkVhQWlQdGhtaSswdWxtdjVicjVm?=
 =?utf-8?B?M3c0cFVWRjRQK09SZzFXaGJQZ0F0QTlaR2wxRjhWOVl1NWhTZFBKclZnWG1M?=
 =?utf-8?B?STVhNUhOUHgyWGR1U0hEYXV5ektOeWFZT0MzVW82SFVUVm5maC9QNVRHN2dO?=
 =?utf-8?B?dnc1YWxiUWFRZjZneEE4SlpRMGpFcmQwZm0xZU1FRTdxclJDM08vU3ZGdS8v?=
 =?utf-8?B?SVJ4QkFCdjRJc211ZDBIK0lEY09KR0Fza3FET3NUb1dKaG1LNkRQUUJUK05D?=
 =?utf-8?B?d2loVU9ZNUcwZVhaNG5KRmJPUk10a2VYeEd1T1JqZ0RPMFpaVXA1Ymo0MHhX?=
 =?utf-8?B?L0hzTmw4Z3ZGZDRPZWdaWVJMQmJlaFJuRGJKMm0rV1g1VWtJR1Z6YmZ1UTBW?=
 =?utf-8?B?T0RySzFKOE1wRUVsbnRlazRxc1lac0hUUHNsUVdlYXkvRndTcFp4M0RNZWtY?=
 =?utf-8?B?YlhOMmtOZlZMb29aMno2SlhiYlowOXROcTY5YTlrU3FrYURHb1lIajQzT2dV?=
 =?utf-8?B?djVtTkJFOEpYQit0ejVJdFYwaDBpZXc4Tk1GL1hrOVZwRzRqbFpjS28rVC81?=
 =?utf-8?B?cGEvendEQkp3d25aajJheTJKUHJweU81LzFZY2xDN2VPTU1ER3FIVzEyVmZW?=
 =?utf-8?B?a0dxcXJ1ckhLZzRnZ0U4cHVJU1A2L3BaK29hSlVvY3RadzdTa0k3MU53OFl5?=
 =?utf-8?B?Ymw1Ty9FSFZya0JyMVRYZmNzU2V3ZjcyTHFCTktxSE9mcVA0Z09PdzdLd00w?=
 =?utf-8?B?WTAyZTJET2Q2VmJCVTl4MTZ2R2w4M1FEMHlOK0E4OGdDYXgrVm5oUlJ0RVdh?=
 =?utf-8?B?TTNUZGtUY1dmalV1M1plenk1OEppY0hvZHdtUVc1UU5ha2ZzVzEwT0t3NVB3?=
 =?utf-8?B?Vy9zWTZpRTdSTVUzZHZ6YnYwc0xWVDdFcUpMNURuNWkvOVhMbWtPWW5EQTNa?=
 =?utf-8?B?RS9RYWdZODA2YnhVVXlNcGk1TTZ2ek83QkMyK0RYQ1Q5ZVg0KzJjcXZmNUlw?=
 =?utf-8?B?S1pFWWdHNFNJNm9LVTRhSEEvZDBoakFEMVByMVpJKzZZUzJ2YTJsenI2b21O?=
 =?utf-8?B?QkVwVnFObHlvVmlTTHhrSFR0SERIVUMrVncrZFNkMDgwcG9iNjNJZ1JIZmJw?=
 =?utf-8?B?blcwRHJaSzVaNGFSVlVBdVRUbjlIc2xOZk1ibWt2SVVQSTBkbkpiMWNqbjBG?=
 =?utf-8?B?SkxhVVNDa2pIUjVQZ2piVUU0OUIwa3dOY0hYOXhnYWpBb0Y4Ynp0T3M5ZEk5?=
 =?utf-8?B?R1FiWFhQVG9Yd0Y2Y1d1ZmJzOGZwTGE2LzJmN2xVQXlMWVVPQWE2MHA2bVZ3?=
 =?utf-8?B?YUVaaGcrVHBnM2FOZW5qa3hQd0dRRnZISW5yRlppTis2c29YVjVpZWN4T0Jp?=
 =?utf-8?B?clpzTk5KNlZJZ2tWT3Jack5kMmJjYnFNU2w3KzRFcWRzK2w4YWZYVEtoN1M0?=
 =?utf-8?B?dVhURkxnVGtOSFA4dUkwdU9ac1ZYZzQrdUZITkJsTlp4SFRxcTVQZUdWK2VD?=
 =?utf-8?B?UTQ0UTdhOC9JK1dNTHlvS0d4OHZyVlhzQ2xmUldLcEJQU2FXTElVTUQ4blVy?=
 =?utf-8?B?Y0wyZHNzcmVnNHFpYksyZ0NYdm1hY0o1UXVTTWNwNEtTQlMvMkw1aCtXMmd3?=
 =?utf-8?B?cXNPNmxsRGMyWmpYZFNCaW8zcllURE1kbnkzRXU5KzR1YVZYZ05UQ0w5SmhU?=
 =?utf-8?B?dWVjVWxpRUozZDN4RGJWenEydTZqcUl6M1I0V0NXSUtqamg1M1VqZFhqNHgx?=
 =?utf-8?B?TjhkNUtRa0VxaHQxSWNxM0ZXMkhRUDZad0ZydGtxTHRwTWd1NjZxZnBOa0s0?=
 =?utf-8?B?TSsyUnc0SHVNblEzVTJCQnRWZDFGWENoem5pZy9GeSsxaFdjVEF6TFBFZ3d2?=
 =?utf-8?B?eGNKNk1kVmovbXQxU2hNMGVFSTRGOTJIWVcwNnAzSTAzUmFZd1dFMVVLY3Zk?=
 =?utf-8?B?Qmg4VXJjSEY5QjNITkFPVEpCNVBYTDhNNDQ1cFM2Y0drVTFVY2w2cW1DWUJG?=
 =?utf-8?B?NXJ1cGh1QmQ1SHc2aG8wRXFuektiYlFTaXNYMGYzTEFhTlhsV21ES1FmMlV6?=
 =?utf-8?B?N2FiQ0xzSFd2TWE3QlJ3ODVmMG94Y1pEK0Zrekh0RG1mK0pESmlKSVJSL2FX?=
 =?utf-8?B?QUpnTnFFcm8wd1E1ZlZvdWUwc0xzUzFLbmVvM3RsVUFzOGpKVDFXUzViVDRx?=
 =?utf-8?B?SGc9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <41DED93F77E0C942A9444D73545042ED@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: GV1PR03MB10456.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 14295405-d703-4284-3304-08dd75f3b8b8
X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Apr 2025 16:46:19.2437
 (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: hkfoakBQYU8U3zzjxVBt96MIJX6/fpDGJUJE0d5jYL3pbY/eXzJPWJirPtHxwx4Fhf6uwuV5nCMEKDKt12v32iqVQGOpL1DzxLqsiSx+X84=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR03MB9590

VGhpcyBzZXJpZXMgZW5hYmxlcyBNQy9EQyBmb3IgWGVuIHdoZW4gYnVpbGRpbmcgd2l0aCBHQ0Mu
DQoNCkNvbmRpdGlvbiBjb3ZlcmFnZSwgYWxzbyBrbm93biBhcyBNQy9EQyAobW9kaWZpZWQgY29u
ZGl0aW9uL2RlY2lzaW9uDQpjb3ZlcmFnZSkgaXMgYSBjb3ZlcmFnZSBtZXRyaWMgdGhhdCB0cmFj
a3Mgc2VwYXJhdGUgb3V0Y29tZXMgaW4NCmJvb2xlYW4gZXhwcmVzc2lvbnMuIFRoaXMgbWV0cmlj
IGlzIHVzZWQgaW4gY3JpdGljYWwgc29mdHdhcmUNCmNvbXBvbmVudHMsIHNvIGl0IG5hdHVyYWwg
dG8gY29sbGVjdCBpdCBmb3IgWGVuLg0KDQpGaXJzdCBwYXRjaCBpbiB0aGUgc2VyaWVzICgieGVu
OiB4ODY6IGlycTogaW5pdGlhbGl6ZSBpcnEgZGVzYyBpbg0KY3JlYXRlX2lycSgpIikgZGVhbHMg
d2l0aCB1bmV4cGVjdGVkIEdDQyBpc3N1ZSwgd2hpY2ggaXMgbm90IGV4YWN0bHkNCnJlbGF0ZWQg
dG8gdGhlIGNvZGUgY292ZXJhZ2UsIGFzIGl0IGNhbiBiZSByZXByb2R1Y2VkIGp1c3Qgd2l0aCAt
T2cNCm9wdGltaXphdGlvbiBsZXZlbC4gSSBoYXZlIG9wZW5lZCB0aGUgYnVnIGhlcmU6DQoNCmh0
dHBzOi8vZ2NjLmdudS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTExOTY2NQ0KDQpUaGlz
IHNlcmllcyBzdXBwb3J0IG9ubHkgR0NDLCBhbHRob3VnaCBDbGFuZywgc3RhcnRpbmcgd2l0aCBj
bGFuZyAxOC4NCnN1cHBvcnRzIHNpbWlsYXIgZmVhdHVyZS4gQnV0IENsYW5nIDE4IHVzZXMgcmF3
IHByb2ZpbGluZyBmb3JtYXQNCnZlcnNpb24gMTAsIHdoaWxlIFhlbiBzdXBwb3J0cyBvbmx5IHZl
cnNpb24gNCwgYW5kIHRoZXJlIGFyZSBxdWl0ZQ0Kc3Vic3RhbnRpYWwgY2hhbmdlcyBpbiBoZWFk
ZXJzIGFuZCBzdHJ1Y3R1cmVzLCBzbyBhZGRpbmcgbmV3IHZlcnNpb24NCmZvcm1hdCBpcyBub24t
dHJpdmlhbC4gQWxzbywgWGVuIGJ1aWx0IGZvciBhYXJjaDY0IHdpdGggY2xhbmcgMTkuMS4xNw0K
YW5kIGNvZGUgY292ZXJhZ2UgZW5hYmxlZCwgY29tcGxldGVseSBoYW5ncyB1cCBkdXJpbmcgYm9v
dCwgc28gdGhlcmUNCmlzIGNsZWFybHkgbW9yZSB3b3JrIHJlcXVpcmVkLg0KDQpBbm90aGVyIHBy
b2JsZW0gd2l0aCBjbGFuZy1iYXNlZCBNQy9EQyBzdXBwb3J0IGlzIHRoYXQgaXQgaGFzIG11bHRp
cGxlDQppc3N1ZXMgd2hpY2ggd2lsbCBwcmV2ZW50IHVzZSBpdCBpbiBhIG1lYW5pbmdmdWxsIHdh
eToNCg0KaHR0cHM6Ly9naXRodWIuY29tL2xsdm0vbGx2bS1wcm9qZWN0L2lzc3Vlcz9xPWlzJTNB
aXNzdWUlMjBzdGF0ZSUzQW9wZW4lMjBNQyUyRkRDDQoNCkJ1dCBhdCBsZWFzdCB3ZSBjYW4gaGF2
ZSBNQy9EQyB3aXRoIEdDQy9HQ09WLg0KDQpDaGFuZ2VzIGluIHY0Og0KIC0gb25lIHBhdGNoIGxl
c3MsIGFzICJ4ZW46IGdjb3Y6IGFkZCBzdXBwb3J0IGZvciBnY2MgMTQiIGlzIG1lcmdlZCBhbHJl
YWR5DQogLSByZXdvcmtlZCBpcnEuYyBmaXggYmFjayB0byBvcmlnaW5hbCBzdGF0ZSAoYnV0IHdp
dGggYSBjb21tZW50IHRoaXMgdGltZSkNCiAtIG9wZW5lZCBhIEdDQyBidWcNCiAtIG1ha2UgQ09W
X0ZMQUdTIC0+IGNvdi1mbGFncy15IGNvbnZlcnRpb24gYXMgcGFydCBvZiB0aGUgc2Vjb25kIHBh
dGNoDQoNCkNoYW5nZXMgaW4gdjM6DQogLSBDaGVjayBpZiBnY2MgYWNjZXB0cyAtZmNvbmRpdGlv
bi1jb3ZlcmFnZQ0KIC0gQ2xhcmlmeSB3aHkgd2UgdXNlIGRvIHsgfSBsb29wDQogLSBBZGQgSmFu
J3MgUi1iIHRhZyBmb3IgUEFUQ0ggMS8zDQoNCkNoYW5nZXMgaW4gdjI6DQogLSBDaGVjayBmb3Ig
Z2NjIDE0LCBub3QgZ2NjIDE0LjENCiAtIFJld29ya2VkIGlycS5jIHBhdGNoDQoNCg0KDQpWb2xv
ZHlteXIgQmFiY2h1ayAoMik6DQogIHhlbjogeDg2OiBpcnE6IGluaXRpYWxpemUgaXJxIGRlc2Mg
aW4gY3JlYXRlX2lycSgpDQogIHhlbjogZGVidWc6IGdjb3Y6IGFkZCBjb25kaXRpb24gY292ZXJh
Z2Ugc3VwcG9ydA0KDQogeGVuL0tjb25maWcgICAgICAgIHwgIDQgKysrKw0KIHhlbi9LY29uZmln
LmRlYnVnICB8ICA5ICsrKysrKysrKw0KIHhlbi9SdWxlcy5tayAgICAgICB8IDE0ICsrKysrKyst
LS0tLS0tDQogeGVuL2FyY2gveDg2L2lycS5jIHwgIDIgKy0NCiA0IGZpbGVzIGNoYW5nZWQsIDIx
IGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pDQoNCi0tIA0KMi40OC4xDQo=


From xen-devel-bounces@lists.xenproject.org Mon Apr 07 16:50:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 16:50:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.940646.1340344 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1pfs-0003Uz-Sd; Mon, 07 Apr 2025 16:50:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 940646.1340344; Mon, 07 Apr 2025 16:50:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1pfs-0003Us-P3; Mon, 07 Apr 2025 16:50:16 +0000
Received: by outflank-mailman (input) for mailman id 940646;
 Mon, 07 Apr 2025 16:50: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=vEnO=WZ=raptorengineering.com=sanastasio@srs-se1.protection.inumbo.net>)
 id 1u1pfr-0003Um-GY
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 16:50:15 +0000
Received: from raptorengineering.com (mail.raptorengineering.com
 [23.155.224.40]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5ed50e5c-13d0-11f0-9ffb-bf95429c2676;
 Mon, 07 Apr 2025 18:50:12 +0200 (CEST)
Received: from localhost (localhost [127.0.0.1])
 by mail.rptsys.com (Postfix) with ESMTP id A84BB8287EB3;
 Mon,  7 Apr 2025 11:50:10 -0500 (CDT)
Received: from mail.rptsys.com ([127.0.0.1])
 by localhost (vali.starlink.edu [127.0.0.1]) (amavisd-new, port 10032)
 with ESMTP id 2oy5let_N4tN; Mon,  7 Apr 2025 11:50:09 -0500 (CDT)
Received: from localhost (localhost [127.0.0.1])
 by mail.rptsys.com (Postfix) with ESMTP id 4490782887A7;
 Mon,  7 Apr 2025 11:50:09 -0500 (CDT)
Received: from mail.rptsys.com ([127.0.0.1])
 by localhost (vali.starlink.edu [127.0.0.1]) (amavisd-new, port 10026)
 with ESMTP id LP8R2MEbONjM; Mon,  7 Apr 2025 11:50:09 -0500 (CDT)
Received: from [10.11.0.2] (5.edge.rptsys.com [23.155.224.38])
 by mail.rptsys.com (Postfix) with ESMTPSA id A20FA8288626;
 Mon,  7 Apr 2025 11:50:08 -0500 (CDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5ed50e5c-13d0-11f0-9ffb-bf95429c2676
DKIM-Filter: OpenDKIM Filter v2.10.3 mail.rptsys.com 4490782887A7
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=raptorengineering.com; s=B8E824E6-0BE2-11E6-931D-288C65937AAD;
	t=1744044609; bh=sWPZZ0ZeEYif/8bLlu46ZcL63k4Gx9DA0sYhhKt6TYw=;
	h=Message-ID:Date:MIME-Version:To:From;
	b=XtHatR+EX8/+/IwPWb0uK5PQ1N1E+anqRB1BGBJBv0mY32ZMclwwRLAN4CfoP37gP
	 gxpXlD6R9dHwoJX98jE8LsAqhYG4YJAUyEWjw8NBs4cdyjDbYyJ3SapjtztiSoHF3y
	 C/jVXF2AJw2R4DtcnRvMeQvR7VF/sqSmOzbyL94w=
X-Virus-Scanned: amavisd-new at rptsys.com
Message-ID: <44c3c6a8-12a6-4ad7-b6ef-dd8926606fb0@raptorengineering.com>
Date: Mon, 7 Apr 2025 11:50:08 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/link: Drop .fixup section from non-x86 architectures
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <20250403110003.1461522-1-andrew.cooper3@citrix.com>
Content-Language: en-US
From: Shawn Anastasio <sanastasio@raptorengineering.com>
In-Reply-To: <20250403110003.1461522-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

Hi Andrew,

On 4/3/25 6:00 AM, Andrew Cooper wrote:
> The fixup section is only used by x86, and we're working to remove it there
> too.  Logic in the fixup section is unconnected to it's origin site, and
> interferes with backtraces/etc.
> 
> Remove the section from the architectures which don't use it.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Acked-by: Shawn Anastasio <sanastasio@raptorengineering.com>

Thanks,
Shawn


From xen-devel-bounces@lists.xenproject.org Mon Apr 07 17:02:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 17:02:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.940667.1340353 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1ps4-0007wv-T7; Mon, 07 Apr 2025 17:02:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 940667.1340353; Mon, 07 Apr 2025 17:02: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 1u1ps4-0007wo-QJ; Mon, 07 Apr 2025 17:02:52 +0000
Received: by outflank-mailman (input) for mailman id 940667;
 Mon, 07 Apr 2025 17:02: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=JlD4=WZ=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1u1ps3-0007v1-4D
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 17:02:51 +0000
Received: from NAM10-BN7-obe.outbound.protection.outlook.com
 (mail-bn7nam10on2060b.outbound.protection.outlook.com
 [2a01:111:f403:2009::60b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 21438094-13d2-11f0-9ffb-bf95429c2676;
 Mon, 07 Apr 2025 19:02:48 +0200 (CEST)
Received: from MN0PR05CA0009.namprd05.prod.outlook.com (2603:10b6:208:52c::29)
 by PH7PR12MB7188.namprd12.prod.outlook.com (2603:10b6:510:204::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.29; Mon, 7 Apr
 2025 17:02:42 +0000
Received: from BL6PEPF00022572.namprd02.prod.outlook.com
 (2603:10b6:208:52c:cafe::98) by MN0PR05CA0009.outlook.office365.com
 (2603:10b6:208:52c::29) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.10 via Frontend Transport; Mon,
 7 Apr 2025 17:02:42 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 BL6PEPF00022572.mail.protection.outlook.com (10.167.249.40) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8606.22 via Frontend Transport; Mon, 7 Apr 2025 17:02: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, 7 Apr
 2025 12:02:40 -0500
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, 7 Apr
 2025 12:02:40 -0500
Received: from [172.23.214.75] (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, 7 Apr 2025 12:02:38 -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: 21438094-13d2-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=VQd30CzeX+zPQ+DmVwkkoi8Bcp5ZhSIqcPtZNEhZhKleyONF3OQnt9KgfTeygPauTkpOiIT8GdIhKOaiSSFyJCR4fluNb/RYB0JcGBj1dDLU/Kve/eNzrAJ03woJuJnNGa9XkdB40os/YqSutsLlWo5gk85P0tnszsembrQahJMhQgecg2Zh+1G+sBbu4E6aP0lKywWM69wnQ2HZQpSkS0bvLnk4zd1lDUygQOfm4LchGkz5U0gxs1RXmZQxr5ZS3SMg8Jd8iVZGzK7+N0WXCThD6NEagtf2p5/Ns/FMgnVPHwYpN5IDL2HWZUE7Sb8qZLJtAQpFRyKEvGNCS5nkAA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=LQohm3RX+7vq9bvnPLtAOfQkh47F+8kzBMlvvuTKuSM=;
 b=HEzeoiShqgn5YMOQA8c4DDNAhi5C7afiw5hSMHffnXy42ULKNy5TjtFoF4SAozbi3nWIJIFYHkcC7d7hrkGw5Bdcoa8WQlfeH1a09yoDPVQnhyduPCeUsC9GuSdwi9VX41J1iAPMycNtNDBzuo91aVkUtlOhpaTs4TvnaWwnAkwEfmtsFHDjA1Wkg9G4ZKdLD4az0nVGMbHUw1Trb1yF+hsHsZOYN0Wn0fSGjr3i/X6YfbpTVW6MpDx98sdgGPye1UanUs8NY2x3aq5Vf71f0w7lSrSA+LFfYATgVwd6k2nhgFD71dIL9b7T2L3Iby9nsCNKnG3Tg4CgaImV1taEOQ==
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=LQohm3RX+7vq9bvnPLtAOfQkh47F+8kzBMlvvuTKuSM=;
 b=UyUceKGZbQtSp/9NulZcCFDGe0c7c0LXvrZp04SUI2DERb8mCQCGKgW7jiMFIogaOr03qCN2XszwRxaprYUGlWKkidYsjTNwlQxCoJRtKk4qXAQrbQTFZl4O0odpTLbwezW1NrJiyxj5TtTt55TMBHWry6w6JTQDRfy6/7RNaaQ=
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: <0bceb177-dd1e-4907-a726-84230f34eb78@amd.com>
Date: Mon, 7 Apr 2025 13:02:38 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v18 1/2] xen/arm: translate virtual PCI bus topology for
 guests
To: Julien Grall <julien@xen.org>, <xen-devel@lists.xenproject.org>
CC: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>,
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Stefano Stabellini <sstabellini@kernel.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>, Michal Orzel
	<michal.orzel@amd.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Jiqian Chen <Jiqian.Chen@amd.com>, Mykyta Poturai <Mykyta_Poturai@epam.com>
References: <20250325172727.600716-1-stewart.hildebrand@amd.com>
 <20250325172727.600716-2-stewart.hildebrand@amd.com>
 <346fadbb-deff-4403-88d7-b77b7002f913@xen.org>
Content-Language: en-US
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
In-Reply-To: <346fadbb-deff-4403-88d7-b77b7002f913@xen.org>
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: BL6PEPF00022572:EE_|PH7PR12MB7188:EE_
X-MS-Office365-Filtering-Correlation-Id: 27179ce3-137a-46c4-d179-08dd75f6024e
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?NkVEMFJZNW5QakY1cS9nOGRLVEZacHAvK2lwVXkydGhOWWs1YzkraHBZc0px?=
 =?utf-8?B?MWdyT3J2eU9DVmt3OEZ1OHdGNCtibHNFY1o5bnc1R2VHS2ZUVEs5ZlFEV0ZI?=
 =?utf-8?B?bkpHdS9tdHpZL0h1a20ySFh1c0lkVUxzWlVMY3d1T0dGc28wU3R2bjZxTC9t?=
 =?utf-8?B?Z3lSMXRCQkFES3VQYXNna3B1ZWVsOW8wSkNrSFpZYWVJMmRGNW5oQmdJdlQ1?=
 =?utf-8?B?RlY2NnhkdWR4T1dvbXkrREErcGdMMlByWHEzdUNjWndaNjNnYU5LM1Nic0Jw?=
 =?utf-8?B?RzBUMWVmZ2Uyc1g1cExEMno5N01yMTkvMEFuRm5TUEdaWm5rYmIwWmw3d3Er?=
 =?utf-8?B?N0MyY2JEVDhBcTdyc2J4cTFlUUptMXM2VGl2MU9ZYVhEYm9iVEsrNGk5SVpH?=
 =?utf-8?B?cmVpVCtvYTl0K244MG9MNlo3Z3JkL2Q2cDhSSEJQc01FVUNZSDJOYTd6UVM3?=
 =?utf-8?B?T1hXOWllVE4yaVJNQkphNmVwb2F0UWdCbUNCdHNSTGplM0lVQ2dBNmE1ak5o?=
 =?utf-8?B?RVY1UkVVQjVBM2p4QjR3dW8wc2IraVFXNjFUdnhLSHY4Mm1XbDlGVldpYjRV?=
 =?utf-8?B?U3JJd0F5WXdpSTdEbGVKc3VidDRpV0IzUllLdG5rL2lLSUJMeFNUeXNPWHBr?=
 =?utf-8?B?OVA2eXo0cmhwU1lrTlhxb0xJM3M5VGFCMWVpZThPVkdRQlNpR2x4VUs1NHho?=
 =?utf-8?B?WlhKU0FHR3ZFdW1hZ2R0dFVNTURtaU1iV1JKODc5MEwrUEF0bmdFZzFxWk1k?=
 =?utf-8?B?T2Vsc0tjVXZXaUtUZWhCRU9mckt0WDAyQUxvcnZWU2Jhc0loZFJ4VXFjc3Vh?=
 =?utf-8?B?TDdscmQrV3NtMDhEaHViMW96OCtwTWRNOXJDQUhPbEdNTjVhV2p3TVNHaFJi?=
 =?utf-8?B?UW5iVmtCYkdqVzJ0clgzU1V3THBNVmtrZ3V3NTkxUnJxcFRQM0sza2FqWS94?=
 =?utf-8?B?MDBTNzF6MGdJM1l4Sm5MdHFmN29Sc3FFaUwxTFRjMllKWkdRRkFua1FKU1ZJ?=
 =?utf-8?B?VnB5VTVnYmQxVzg3ejFyVWdMR1lTbHdaRFNhUGtUQ3JEclhtR2xNNVpkY0px?=
 =?utf-8?B?ZmlKMWZvcjZGRkFvNnhoZXBIRERvVWVwVEFlaDhCYy90MTEzNnR5QXU1M1ZK?=
 =?utf-8?B?WWRBM3RVd2xqcVhjeEdjUndXeUdNK3dUaUdGTzNRbmZBdVRPZE4ybVhSWUNr?=
 =?utf-8?B?NXdsMndpbm1WRkF1eVBCTWdkaVdLdElRQ1VHamRTUU55alFHT2N0bXErYUky?=
 =?utf-8?B?R3RwcXhTTndhTVFyeUlZb1FsY3hueXU3UGNHc1ZXdDRGRHZ1dWNsL3NwM0pM?=
 =?utf-8?B?Q3FqZFE3VVA3SStMMDZSSTl1cGI3R21BL0FGa1J5S1Zra01lOXNWNGNBMkUv?=
 =?utf-8?B?SEtmYlF4M055U0ltYUVTMXNKYWVOdVpMTnZqbmVpcHlXWHdOWEJhZE9mMHZw?=
 =?utf-8?B?S1RtSkNwZndzME9Da2dqb3kydXlsWm1naWp6N2gzeGdwZk5qMWV3R1hhNGNu?=
 =?utf-8?B?N0cwZEtNRitPSVQvRnZTSzVmeDlWdVhHZlN2M3hoekU3NWJXczFORk9iWndI?=
 =?utf-8?B?aCtOT1hhY25DR0NJNjRzMDJLdUJpTDdHMTFteU4ydFIrWTRYZ1B4SG9ZMXlT?=
 =?utf-8?B?d1dpajQ4RTgyMUdBVTVEeWd6TU1GQ2cyYytlajhzV1RpMUg0WGs0RU8vbkVo?=
 =?utf-8?B?UDNueDJYalRsbm5uRjBVUC93aW5pbTk1UEtvRmFmTzdNQzBPM3dhcVNKSWp5?=
 =?utf-8?B?c1ZONGt0SGxRb2tGT1p4TUhWbitacUI3Y2s4TU41SGZJdGtGTDU2SmhRUFpO?=
 =?utf-8?B?bUd6R3cwWFV0WXN4dllFM0NmcE9XL0NiU0NVWHl1RGphbzF4cjNoUDhTdHlu?=
 =?utf-8?B?VEZ4Z2VSMGxnVzRTS00yTTJXR3hTbVc5RnVqbXR2aFdJQ2wvL1REa0lRcVhr?=
 =?utf-8?B?NGs4TWVYT2FMTVZ2UWJUMlA0emp1c2FjbnpVYzl3RjdrYTdlMTljUVlvb0xl?=
 =?utf-8?B?VU1YeldnOGVkanFxaW5YQ3E1Z01Bb0Jua3FSVy9ESjhST3dCbEpPYmdEQWJm?=
 =?utf-8?Q?SZJgSe?=
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: 07 Apr 2025 17:02:41.7290
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 27179ce3-137a-46c4-d179-08dd75f6024e
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:
	BL6PEPF00022572.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB7188

On 3/30/25 17:59, Julien Grall wrote:
> Hi Stewart,
> 
> I realize this series is at v18, but there are a few bits security-wise
> that concerns me. They don't have to be handled now because vPCI is
> still in tech preview. But we probably want to keep track of any issues
> if this hasn't yet been done in the code.

No worries, we want to get this right. Thank you for taking a look.

> On 25/03/2025 17:27, Stewart Hildebrand wrote:
>> diff --git a/xen/drivers/vpci/vpci.c b/xen/drivers/vpci/vpci.c
>> index 1e6aa5d799b9..49c9444195d7 100644
>> --- a/xen/drivers/vpci/vpci.c
>> +++ b/xen/drivers/vpci/vpci.c
>> @@ -81,6 +81,32 @@ static int assign_virtual_sbdf(struct pci_dev *pdev)
>>       return 0;
>>   }
>>   +/*
>> + * Find the physical device which is mapped to the virtual device
>> + * and translate virtual SBDF to the physical one.
>> + */
>> +bool vpci_translate_virtual_device(struct domain *d, pci_sbdf_t *sbdf)
>> +{
>> +    const struct pci_dev *pdev;
>> +
>> +    ASSERT(!is_hardware_domain(d));
>> +    read_lock(&d->pci_lock);
>> +
>> +    for_each_pdev ( d, pdev )
> 
> I can't remember whether this was discussed before (there is no
> indication in the commit message). What's the maximum number of PCI
> devices supported? Do we limit it?
> 
> Asking because iterating through the list could end up to be quite
> expensive.

32. See xen/include/xen/vpci.h:
#define VPCI_MAX_VIRT_DEV       (PCI_SLOT(~0) + 1)

> Also, not a change for this patch, but it seems vcpi_{read,write} will
> also do another lookup. This is quite innefficient. We should consider
> return a pdev and use it for vcpi_{read,write}.

Hm. Right. Indeed, a future consideration.

>> +    {
>> +        if ( pdev->vpci && (pdev->vpci->guest_sbdf.sbdf == sbdf->sbdf) )
>> +        {
>> +            /* Replace guest SBDF with the physical one. */
>> +            *sbdf = pdev->sbdf;
>> +            read_unlock(&d->pci_lock);
>> +            return true;
>> +        }
>> +    }
>> +
>> +    read_unlock(&d->pci_lock);
> 
> At the point this is unlocked, what prevent the sbdf to be detached from
> the domain?

Nothing.

> If nothing, would this mean the domain can access something it should
> not?

Yep. I have a patch in the works to acquire the lock in the I/O
handlers. I would prefer doing this in a pre-patch so that we don't
temporarily introduce the race condition.

>> +    return false;> +}
>> +
>>   #endif /* CONFIG_HAS_VPCI_GUEST_SUPPORT */
>>     void vpci_deassign_device(struct pci_dev *pdev)
>> diff --git a/xen/include/xen/vpci.h b/xen/include/xen/vpci.h
>> index 807401b2eaa2..e355329913ef 100644
>> --- a/xen/include/xen/vpci.h
>> +++ b/xen/include/xen/vpci.h
>> @@ -311,6 +311,18 @@ static inline int __must_check vpci_reset_device(struct pci_dev *pdev)
>>       return vpci_assign_device(pdev);
>>   }
>>   +#ifdef CONFIG_HAS_VPCI_GUEST_SUPPORT
>> +bool vpci_translate_virtual_device(struct domain *d, pci_sbdf_t *sbdf);
>> +#else
>> +static inline bool vpci_translate_virtual_device(struct domain *d,
>> +                                                 pci_sbdf_t *sbdf)
>> +{
>> +    ASSERT_UNREACHABLE();
>> +
>> +    return false;
>> +}
>> +#endif
>> +
>>   #endif
>>     /*



From xen-devel-bounces@lists.xenproject.org Mon Apr 07 17:11:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 17:11:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.940686.1340364 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1q0U-0002yp-R4; Mon, 07 Apr 2025 17:11:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 940686.1340364; Mon, 07 Apr 2025 17:11: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 1u1q0U-0002yi-OD; Mon, 07 Apr 2025 17:11:34 +0000
Received: by outflank-mailman (input) for mailman id 940686;
 Mon, 07 Apr 2025 17:11: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=ZxXC=WZ=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u1q0T-0002x6-Bv
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 17:11:33 +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 5a4d8142-13d3-11f0-9eaa-5ba50f476ded;
 Mon, 07 Apr 2025 19:11:32 +0200 (CEST)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-43edb40f357so22448225e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 07 Apr 2025 10:11:32 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43ec364d07csm135211525e9.28.2025.04.07.10.11.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 07 Apr 2025 10:11: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: 5a4d8142-13d3-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744045892; x=1744650692; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=2k2aiX7tjiPl0hytHV4sdlQjZsZUnzC7GfQg13IIkJM=;
        b=bZjNJT+iamJhZ6SMID2yE9Ve2Q8x6zZ5IpIWWxXcZOH7QdE6eDm4ztDdJcTSWb58eY
         xOWNchbhrHdhby7Df0Z7Q7HvU9jOcWnaXIyzmEPyuWlzZtzdfUQlBrX6WHDGZeee54XC
         +Fcb6W7lmZGrsibUbGdRYk/D5RYZ+2WbhX5Q4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744045892; x=1744650692;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=2k2aiX7tjiPl0hytHV4sdlQjZsZUnzC7GfQg13IIkJM=;
        b=Re2F9HJKPe45qkUTu75p9xOHElMfDfqGZmMhMe7TJ8amiR+iDU16NDFQsgM481kjmy
         DlGI3xHcT4bvIJVTX5Y/tlz28cLDFdGVyT99lCNfXKFAwY50OcDl8KV2FAAcPoh8Z+Gy
         YBeMcFFDJB+PjHg9yq62AZulmIT2GtDdOLP48U2RCZeJM0efsNxYmFjS1fpLvwkOKFrf
         GS655HdZTsUYE4PHErNz3ykm8kJ76JbXMe91FgfUDJheFlRAHhvpGcqGjGNtQcVwdznB
         KxUxIwwdTpEVzOYPJ6ymDSeblAef+562fiSIKG9MhYpDif+vuCfrAggt6KCXfEV6swPP
         SIJQ==
X-Forwarded-Encrypted: i=1; AJvYcCUzyEjjiP910VmPoZOLBzjg7w5/0goVQfF4nJkGpEbIoF7nutW/m2gBePifWoi2WHiCXBtN3u3JbxA=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw5Nn0578nBahHJeePf1Q3pfmq/MePVxGgAKm/iiN228IkL4QvC
	uo8I+RsZZL13RYDQL0w+ApJdu/fyVGBs/WwQ09aNtTsIbM2vOk2k2ZuakNhoDuQ=
X-Gm-Gg: ASbGncvAuSEpBp4vChkGUiZqheqBN6G5qGL8poKs59SQwMMrISjD7+LCSaeUpzQx13w
	4yL6nxNtCPoshLYLfd6FdOqMvvJ/+8qaOsUY04MBfZdgpcZ0Ouu3xPJku0dTAPdfQeT7B53AcHj
	polmOPnSurDb5+d87sUz3OEbGf5g/si/KdHRgSC+9HKEbdCHZuLYRK+TgLAReggSxSzXx5XtKie
	oJgztbDK97kgKIqY+IiOmCNYrQIDiKLCLWyuyC606ck5N+fv1L/Uc3Hey5qJPxWQgaz20KvHTsj
	ylivThFOV8krfFqhWF8hPAX2B2RsvfztuOtw/zacQajfMf6yMRCGdQEtakpOEAMgBUA/XbeFBm3
	5KUpkFJS/zw==
X-Google-Smtp-Source: AGHT+IEduSBEQuqAZcAZEAOBR9ozRRn3g459ip1DAVqj8fe+JFYum6/tY/561p0nxaUFe2zH+xqUEQ==
X-Received: by 2002:a05:600c:a013:b0:43c:f8fc:f686 with SMTP id 5b1f17b1804b1-43ee0616fedmr112686485e9.3.1744045891809;
        Mon, 07 Apr 2025 10:11:31 -0700 (PDT)
Message-ID: <16f91d01-ea1c-43ec-a5d8-a55bb84fe94b@citrix.com>
Date: Mon, 7 Apr 2025 18:11:29 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH test-artifacts v2 14/12] scripts: build initrd cpio
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, xen-devel@lists.xenproject.org
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <cover.7da1777882774486a13e6f39ff4a2096f6b7901e.1744028549.git-series.marmarek@invisiblethingslab.com>
 <20250407123448.1520451-2-marmarek@invisiblethingslab.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: <20250407123448.1520451-2-marmarek@invisiblethingslab.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 07/04/2025 1:31 pm, Marek Marczykowski-Górecki wrote:
> Build initrd format directly digestable by the kernel. Additionally,
> include it itself inside as boot/initrd-domU file, for domU booting in
> tests.
> This should avoid the need to repack tar -> cpio as part of the test
> job.
>
> Keep generating initrd.tar.gz as that's still used by older branches.
>
> Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
> ---
>  scripts/x86_64-rootfs-alpine.sh | 5 +++++
>  1 file changed, 5 insertions(+)
>
> diff --git a/scripts/x86_64-rootfs-alpine.sh b/scripts/x86_64-rootfs-alpine.sh
> index b70b3a5..13e85fa 100755
> --- a/scripts/x86_64-rootfs-alpine.sh
> +++ b/scripts/x86_64-rootfs-alpine.sh
> @@ -58,3 +58,8 @@ passwd -d "root" root
>  cd /
>  tar cvzf "${WORKDIR}/binaries/initrd.tar.gz" \
>      bin dev etc home init lib mnt opt root sbin usr var
> +mkdir boot
> +find bin dev etc home init lib mnt opt root sbin usr var |\
> +    cpio -o -H newc | gzip > boot/initrd-domU
> +find bin boot dev etc home init lib mnt opt root sbin usr var |\
> +    cpio -o -H newc | gzip > "${WORKDIR}/binaries/initrd.cpio.gz" \

So, after looking at this a bit more, a few notes.

Trailing \ needs dropping.

initrd-domU probably ought to be named initrd-domU-base.cpio.gz so it's
clear what it is.  These are easy to fix up.

Looking through the current initrd.tar.gz, we've got:

$ ls -lah ./var/cache/apk/
total 1.9M
drwxr-xr-x 2 andrew andrew 4.0K Nov  8 15:12 .
drwxr-xr-x 4 andrew andrew 4.0K Sep  6  2024 ..
-rw-r--r-- 1 andrew andrew 425K Nov  8 15:12 APKINDEX.73fc500b.tar.gz
-rw-r--r-- 1 andrew andrew 1.4M Nov  8 15:12 APKINDEX.eb46142e.tar.gz

which (alone) is 5% of the size of the initrd.  I'll submit a patch
separately to drop this.

But doesn't this result in initrd.tar.gz being included in initrd-domU,
and then (doubly) in initrd.cpio.gz ?

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Apr 07 17:15:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 17:15:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.940710.1340373 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1q3m-0004d0-8V; Mon, 07 Apr 2025 17:14:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 940710.1340373; Mon, 07 Apr 2025 17:14:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1q3m-0004ct-5a; Mon, 07 Apr 2025 17:14:58 +0000
Received: by outflank-mailman (input) for mailman id 940710;
 Mon, 07 Apr 2025 17:14:57 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ZxXC=WZ=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u1q3l-0004cn-Fg
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 17:14:57 +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 d3f0363d-13d3-11f0-9eaa-5ba50f476ded;
 Mon, 07 Apr 2025 19:14:56 +0200 (CEST)
Received: by mail-wr1-x42e.google.com with SMTP id
 ffacd0b85a97d-39c13fa05ebso2680627f8f.0
 for <xen-devel@lists.xenproject.org>; Mon, 07 Apr 2025 10:14:56 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39c301a6a60sm12394313f8f.29.2025.04.07.10.14.55
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 07 Apr 2025 10:14: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: d3f0363d-13d3-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744046096; x=1744650896; 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=63P1a7xFlz9Ke0yGoOyltps5da/mpQP2BUKQqRM9a7g=;
        b=D1T2NKReHa/+sC+joXwqs/pZ/uLtCuh5Bt5Wo9xErwzw0QHsgWm/epvAb0l+UgpAA6
         XDr2m0TLRm0sCnLOqKaIPTZ0Ki5NXFfwUKrccCF5eaW3jtr/iqRSwNExsMF9Zh3nv8H1
         vM6qeAnT58eCN0ntNJjnb86JJcB66E1DhH1HA=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744046096; x=1744650896;
        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=63P1a7xFlz9Ke0yGoOyltps5da/mpQP2BUKQqRM9a7g=;
        b=Ae8ECOatz9DCNCKPqRlKC4hshUnxERZuribb9o4eZ+TArnslp/0mY4oMbE0GcaiUPv
         K2TeeJ24mvHkeTGC16NKnnPHy6XPBsqtaDxA5cVKK4SruOoXO5in8ZbWrGWpA3gy26Pg
         xhZhIwKQWxovz4qD9v/UQkQD5lKiYdk3zB62Rn8o3kzn8rMjLv2CqrRFirodpu595TXP
         Vn/Dty1XLUVKchTcCG3jA9Bd4qDavbw3r6GbrWy1qk2DReQUnfy34hCkRs2ICOMrnfpc
         TY/issN2Claa7Irgj1GVtwQQSUT3pG0do72GgYpv7Oq545stQ0i78vAsnW+wNgJaLTBQ
         BEFA==
X-Forwarded-Encrypted: i=1; AJvYcCW2Jy7g1HgbG3kwU1w6MlxK6UiX/1Zf4FuHxNVI/sxJjeoWTwkYeYqr0igS2/R9rUbMEt4gd7bN2D4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyGmtmnh03KuRuH2Qweb9kur6FHMyb39GQnEbJI4Cfj3yJOSOWV
	1i72eRIAIjFfXxT3CfNJoVNVXIzigNz46cRWewUxEbXYAirgvE34Ho0lbbqR7Ro=
X-Gm-Gg: ASbGncswOVNYMMBSkvACFxirmYW68ysksRf0zhz4nYnHTQyii/QLbXu+nUfWRn5FjeW
	c8/fB4EJv5ED7G6T6+c7qmnc3kCZ9wWFVLtHnrlvpZabI2YgZ0OwtTL6SP3tQ5ZAHv10JdLsw6p
	MTtYg2RE7mKI3m3OYkPj6sq7QBbstPWkEPbMVnVcCGGTsEWnvHVyx75V/lWpC+1GUHL1ocnxJ77
	fatLddVqh5AWfstrUnHose9p0sUuLJcue+RX7ytoymk64DGx14Lpf1f1N2eeNvAzLHkr2nnoJIU
	iDKX/H7XBlCq/zumA9B/Xi9F5Srp3x9fakJMP4njsZRXdauTOM5dxJbNR4uiAMGiAOSW7JKGI5u
	rQqprOSkxdg==
X-Google-Smtp-Source: AGHT+IG/5nicpik17TIE0yhmABrzCdidSs/7DiuUUl+XnGDAhnUgwSpboqii/czoGzxgqYYI73jI/Q==
X-Received: by 2002:a5d:584c:0:b0:390:e853:85bd with SMTP id ffacd0b85a97d-39cba93ce16mr11487041f8f.48.1744046095872;
        Mon, 07 Apr 2025 10:14:55 -0700 (PDT)
Message-ID: <e93abe58-a9a8-412a-afce-fe76e54ab2fb@citrix.com>
Date: Mon, 7 Apr 2025 18:14:54 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH test-artifacts v2 14/12] scripts: build initrd cpio
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, xen-devel@lists.xenproject.org
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <cover.7da1777882774486a13e6f39ff4a2096f6b7901e.1744028549.git-series.marmarek@invisiblethingslab.com>
 <20250407123448.1520451-2-marmarek@invisiblethingslab.com>
 <16f91d01-ea1c-43ec-a5d8-a55bb84fe94b@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: <16f91d01-ea1c-43ec-a5d8-a55bb84fe94b@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 07/04/2025 6:11 pm, Andrew Cooper wrote:
> On 07/04/2025 1:31 pm, Marek Marczykowski-Górecki wrote:
>> Build initrd format directly digestable by the kernel. Additionally,
>> include it itself inside as boot/initrd-domU file, for domU booting in
>> tests.
>> This should avoid the need to repack tar -> cpio as part of the test
>> job.
>>
>> Keep generating initrd.tar.gz as that's still used by older branches.
>>
>> Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
>> ---
>>  scripts/x86_64-rootfs-alpine.sh | 5 +++++
>>  1 file changed, 5 insertions(+)
>>
>> diff --git a/scripts/x86_64-rootfs-alpine.sh b/scripts/x86_64-rootfs-alpine.sh
>> index b70b3a5..13e85fa 100755
>> --- a/scripts/x86_64-rootfs-alpine.sh
>> +++ b/scripts/x86_64-rootfs-alpine.sh
>> @@ -58,3 +58,8 @@ passwd -d "root" root
>>  cd /
>>  tar cvzf "${WORKDIR}/binaries/initrd.tar.gz" \
>>      bin dev etc home init lib mnt opt root sbin usr var
>> +mkdir boot
>> +find bin dev etc home init lib mnt opt root sbin usr var |\
>> +    cpio -o -H newc | gzip > boot/initrd-domU
>> +find bin boot dev etc home init lib mnt opt root sbin usr var |\
>> +    cpio -o -H newc | gzip > "${WORKDIR}/binaries/initrd.cpio.gz" \
> So, after looking at this a bit more, a few notes.
>
> Trailing \ needs dropping.
>
> initrd-domU probably ought to be named initrd-domU-base.cpio.gz so it's
> clear what it is.  These are easy to fix up.
>
> Looking through the current initrd.tar.gz, we've got:
>
> $ ls -lah ./var/cache/apk/
> total 1.9M
> drwxr-xr-x 2 andrew andrew 4.0K Nov  8 15:12 .
> drwxr-xr-x 4 andrew andrew 4.0K Sep  6  2024 ..
> -rw-r--r-- 1 andrew andrew 425K Nov  8 15:12 APKINDEX.73fc500b.tar.gz
> -rw-r--r-- 1 andrew andrew 1.4M Nov  8 15:12 APKINDEX.eb46142e.tar.gz
>
> which (alone) is 5% of the size of the initrd.  I'll submit a patch
> separately to drop this.
>
> But doesn't this result in initrd.tar.gz being included in initrd-domU,
> and then (doubly) in initrd.cpio.gz ?

No, because $WORKDIR is nothing, and we put it in /binaries at the top
level which is excluded.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Apr 07 17:15:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 17:15:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.940721.1340384 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1q4R-00055Z-Gg; Mon, 07 Apr 2025 17:15:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 940721.1340384; Mon, 07 Apr 2025 17:15: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 1u1q4R-00055S-DG; Mon, 07 Apr 2025 17:15:39 +0000
Received: by outflank-mailman (input) for mailman id 940721;
 Mon, 07 Apr 2025 17:15: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=uyK1=WZ=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1u1q4P-0004cn-RU
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 17:15:37 +0000
Received: from fout-a3-smtp.messagingengine.com
 (fout-a3-smtp.messagingengine.com [103.168.172.146])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id eb95c3e3-13d3-11f0-9eaa-5ba50f476ded;
 Mon, 07 Apr 2025 19:15:36 +0200 (CEST)
Received: from phl-compute-05.internal (phl-compute-05.phl.internal
 [10.202.2.45])
 by mailfout.phl.internal (Postfix) with ESMTP id 97D3B1380213;
 Mon,  7 Apr 2025 13:15:35 -0400 (EDT)
Received: from phl-mailfrontend-01 ([10.202.2.162])
 by phl-compute-05.internal (MEProxy); Mon, 07 Apr 2025 13:15:35 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon,
 7 Apr 2025 13:15:33 -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: eb95c3e3-13d3-11f0-9eaa-5ba50f476ded
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=fm2; t=1744046135;
	 x=1744132535; bh=qj8TCDCpmlYdT7b3QX/qcCPXxmCBlt/tr41GIjIAxv4=; b=
	b1mgqCGNWhkysWvvOkdoW/27KO2WLVSjCdsRo+duhN2kuZBh/ZQTc4Mige3HuP6B
	QAbmzTizBbhaoqC02NA4lKdJPS8LSaOz/4SkRxLYWvbUWchDHnM1KpjjU5V5itR/
	Fb7wmIJVISeT1N3dzi6FD8+JiVaQuQsQtszOYNhRVLi4ERSFFHWt4K8ioZrRzKaW
	BcFcRHOZfiHxv/gv+xpI6vlGik/YbpsjH04ULZeaSAOjOmyzLLkWotrPB9JREKes
	cedkxQOE9S68GN4tLloOEuzESLpQGjWg3/GH4V4Uxqq0WNFLhVWBcqkvmJNFptDx
	ylUlbsCCRoAuHpyhzvi6JA==
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=fm2; t=
	1744046135; x=1744132535; bh=qj8TCDCpmlYdT7b3QX/qcCPXxmCBlt/tr41
	GIjIAxv4=; b=HrEfC4pGwmGc5tQUv39mp0dKANDigaAn3vLO6MhgLC951M+P3Im
	41cejfUrQ1Je8iE4k/LRqvjDLCLngEOpYAFNLu5jGAOHBK/s7XmZ1QqU60K88OjG
	jnfn8TnK8r/dCbRaXs6TI1ewrwIzXCcvM/QbqMyCB95QlIqblgRWqbzpMB0zq4xl
	XOHtbAmQ2jN8FjgzcyxDAumcdUfqGeHLVXdmzxKCPiKuJgtP4PQy3i4a9R4Jio0/
	miAQaI/m8DsGO+P4QYqksvcnBoarpeoAwmRzBH2YlG0IEBHph/wFO3meHYQdjXSx
	9L0vY6W8eBxeV2EBcerX8MJAuC32N96sdtw==
X-ME-Sender: <xms:Nwj0Zxb4e8oXcf4uo8HuPpjznt3xyctA99qPXN7H8UXf8vhWgGm1CQ>
    <xme:Nwj0Z4aB6qf_d0MJF1zSuVtpdYyP2Lwj6_npOjSyw3QMKQvxTj9Ddk95A98OxRj94
    YX00HpmDM8c-Q>
X-ME-Received: <xmr:Nwj0Zz_iH8K4HsgnsMcGCEk2GVo-EXPHeNIPodsnUkUIGicilecnhyFBPhZbPT4jlpTpfgSb-JVG3Q36sg8NitIKGCzudtFuMw>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvtddtjeejucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
    pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
    gvnhhtshculddquddttddmnecujfgurhepfffhvfevuffkfhggtggujgesghdtreertddt
    jeenucfhrhhomhepofgrrhgvkhcuofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuc
    eomhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecu
    ggftrfgrthhtvghrnhepgfduleetfeevhfefheeiteeliefhjefhleduveetteekveettd
    dvgeeuteefjedunecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhf
    rhhomhepmhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomh
    dpnhgspghrtghpthhtohepkedpmhhouggvpehsmhhtphhouhhtpdhrtghpthhtoheprghn
    ughrvgifrdgtohhophgvrhefsegtihhtrhhigidrtghomhdprhgtphhtthhopeigvghnqd
    guvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdprhgtphhtthhopehs
    shhtrggsvghllhhinhhisehkvghrnhgvlhdrohhrghdprhgtphhtthhopegrnhhthhhonh
    ihrdhpvghrrghrugesvhgrthgvshdrthgvtghhpdhrtghpthhtohepmhhitghhrghlrdho
    rhiivghlsegrmhgurdgtohhmpdhrtghpthhtohepjhgsvghulhhitghhsehsuhhsvgdrtg
    homhdprhgtphhtthhopehjuhhlihgvnhesgigvnhdrohhrghdprhgtphhtthhopehrohhg
    vghrrdhprghusegtihhtrhhigidrtghomh
X-ME-Proxy: <xmx:Nwj0Z_paz8WnX2g6Z4QYe2cZiMMbfI_hXxqxfJwEZ_R9bL8Cb1GOUA>
    <xmx:Nwj0Z8ocwmtrMSo8jo9gWqMPejbdRlqQN279278BpoQ_00j1s5ofMQ>
    <xmx:Nwj0Z1Raon5UEBG_GKcF6KGV_eT5XPiskcxEc8CIMaW0xYCL3W7iFQ>
    <xmx:Nwj0Z0p_VVjHoBRMjYIefpDsip7wLyi456PSmQmoZpSclBMpu7urrg>
    <xmx:Nwj0Z69p900UoXIcIUcBiOZ5BF3ORqQ8aUzXCwZL3o2RtdhhxldIe9xr>
Feedback-ID: i1568416f:Fastmail
Date: Mon, 7 Apr 2025 19:15:31 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: xen-devel@lists.xenproject.org,
	Stefano Stabellini <sstabellini@kernel.org>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
Subject: Re: [PATCH test-artifacts v2 14/12] scripts: build initrd cpio
Message-ID: <Z_QIM8TBRXLeqACa@mail-itl>
References: <cover.7da1777882774486a13e6f39ff4a2096f6b7901e.1744028549.git-series.marmarek@invisiblethingslab.com>
 <20250407123448.1520451-2-marmarek@invisiblethingslab.com>
 <16f91d01-ea1c-43ec-a5d8-a55bb84fe94b@citrix.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="FSG6cy5SZ83uMMP7"
Content-Disposition: inline
In-Reply-To: <16f91d01-ea1c-43ec-a5d8-a55bb84fe94b@citrix.com>


--FSG6cy5SZ83uMMP7
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Mon, 7 Apr 2025 19:15:31 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: xen-devel@lists.xenproject.org,
	Stefano Stabellini <sstabellini@kernel.org>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
Subject: Re: [PATCH test-artifacts v2 14/12] scripts: build initrd cpio

On Mon, Apr 07, 2025 at 06:11:29PM +0100, Andrew Cooper wrote:
> On 07/04/2025 1:31 pm, Marek Marczykowski-G=C3=B3recki wrote:
> > Build initrd format directly digestable by the kernel. Additionally,
> > include it itself inside as boot/initrd-domU file, for domU booting in
> > tests.
> > This should avoid the need to repack tar -> cpio as part of the test
> > job.
> >
> > Keep generating initrd.tar.gz as that's still used by older branches.
> >
> > Signed-off-by: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblething=
slab.com>
> > ---
> >  scripts/x86_64-rootfs-alpine.sh | 5 +++++
> >  1 file changed, 5 insertions(+)
> >
> > diff --git a/scripts/x86_64-rootfs-alpine.sh b/scripts/x86_64-rootfs-al=
pine.sh
> > index b70b3a5..13e85fa 100755
> > --- a/scripts/x86_64-rootfs-alpine.sh
> > +++ b/scripts/x86_64-rootfs-alpine.sh
> > @@ -58,3 +58,8 @@ passwd -d "root" root
> >  cd /
> >  tar cvzf "${WORKDIR}/binaries/initrd.tar.gz" \
> >      bin dev etc home init lib mnt opt root sbin usr var
> > +mkdir boot
> > +find bin dev etc home init lib mnt opt root sbin usr var |\
> > +    cpio -o -H newc | gzip > boot/initrd-domU
> > +find bin boot dev etc home init lib mnt opt root sbin usr var |\
> > +    cpio -o -H newc | gzip > "${WORKDIR}/binaries/initrd.cpio.gz" \
>=20
> So, after looking at this a bit more, a few notes.
>=20
> Trailing \ needs dropping.
>=20
> initrd-domU probably ought to be named initrd-domU-base.cpio.gz so it's
> clear what it is.=C2=A0 These are easy to fix up.

Technically, it's useful as is already if you just want to check if domU
starts.

> Looking through the current initrd.tar.gz, we've got:
>=20
> $ ls -lah ./var/cache/apk/
> total 1.9M
> drwxr-xr-x 2 andrew andrew 4.0K Nov=C2=A0 8 15:12 .
> drwxr-xr-x 4 andrew andrew 4.0K Sep=C2=A0 6=C2=A0 2024 ..
> -rw-r--r-- 1 andrew andrew 425K Nov=C2=A0 8 15:12 APKINDEX.73fc500b.tar.gz
> -rw-r--r-- 1 andrew andrew 1.4M Nov=C2=A0 8 15:12 APKINDEX.eb46142e.tar.gz
>=20
> which (alone) is 5% of the size of the initrd.=C2=A0 I'll submit a patch
> separately to drop this.

Makes sense.

> But doesn't this result in initrd.tar.gz being included in initrd-domU,
> and then (doubly) in initrd.cpio.gz ?

No, find (same as tar earlier) has explicit list of dirs to look at,
which don't include initrd.* nor "binaries".

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmf0CDMACgkQ24/THMrX
1ywQvQf/Wtly33pfYqMHyWh0TH11N9OEKp3BjUf+95E8fuf2bJhk1j9KHQ3VQAsq
taWwWmH6WGaTH4xJrt+BPhoQMml7tOP630YR5k5I588HfJi8z6fAeG6xmoSxEile
Fo4fisF7Vh5uGuPoGnFjHhEyA064EaEBEV2xoDSyxMYVUc1H2rzDqbE6cDk9EgSU
xrnegIfiN8NUUmDYmfhbBSYL8v6KOM3TlykHHzCg4y7sW8OD/B3hPmufYFJ4uekl
+G5iPJDgNrvtMdAJVdOgO91PLXxCmbHvHFfbM7QLDn7broM/Vm5MwYybb3QzboB1
YO5SaUE6eHv+M1gDCQuTves++TF42A==
=W10d
-----END PGP SIGNATURE-----

--FSG6cy5SZ83uMMP7--


From xen-devel-bounces@lists.xenproject.org Mon Apr 07 17:20:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 17:20:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.940736.1340393 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1q8e-0005jF-Ve; Mon, 07 Apr 2025 17:20:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 940736.1340393; Mon, 07 Apr 2025 17:20: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 1u1q8e-0005j8-T6; Mon, 07 Apr 2025 17:20:00 +0000
Received: by outflank-mailman (input) for mailman id 940736;
 Mon, 07 Apr 2025 17:19: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=ZxXC=WZ=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u1q8d-0005j2-8d
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 17:19:59 +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 845795cb-13d4-11f0-9ffb-bf95429c2676;
 Mon, 07 Apr 2025 19:19:52 +0200 (CEST)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-43690d4605dso31534825e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 07 Apr 2025 10:19:52 -0700 (PDT)
Received: from localhost.localdomain (host-92-26-98-202.as13285.net.
 [92.26.98.202]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43ec3429f67sm141643715e9.7.2025.04.07.10.19.51
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 07 Apr 2025 10:19: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: 845795cb-13d4-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744046392; x=1744651192; 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=AOrt6gFXRKfZ9/vtnU1sIrxsNlxRCjPliy5l5ShI3rc=;
        b=PJ2VCkySuWlbFf4R0eyHQnG6gKFporMJ/MeykKNyETJ+1uyP1x7fjeuWlDj37NJm0L
         lxvTbG8nAmJ4dlMrtMbT38hNA731ZRyZL6h0yuCAukn1Wu57Kf4j+n+i9NZAVGpi1f8O
         0PzmS/KXd5ZXwuJnstBcYul1P5LxKnxAKkmVE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744046392; x=1744651192;
        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=AOrt6gFXRKfZ9/vtnU1sIrxsNlxRCjPliy5l5ShI3rc=;
        b=YuBFDRdHuuuJ6VJfBOuvYRnicGE0RaWPYXpu2AAUmM7qfKFOc657G0ydfnJjaowPUx
         Bfpytaf3G17vqZf1h6JALJ3rGWYmN3IPbpynszC9PLg36AyuG3pdheHfdXhPHU8U7ipa
         5jxzh+Dki49lNx/0b1MUWvN5P1lBHGjwoImg3aeOAeAzg7Mhx825PpZuKePBIO+JFKmN
         NyMguV8Y3NwsUnnzxkL4hiSel41a4P+W0uIYa5j7WVB1DVKRjYNiI+gb3DyRs5ALD6Ag
         Ym2nwUz3S9n3/G4/DFGM09LXWK9ny2qCNf0EKnN/Nm9B5PwlhJWaqD/kliaZEyN5UhCt
         KKIw==
X-Gm-Message-State: AOJu0YyKRzPmjnouPvrw2sfNcuaTwgYZeLcdHoYkVvS8OyhWzhcoMJHz
	wQBjmLrLSF9mnVsO2tur690fQgZHiWX8N4hF2nweWSVYcX4mQOKs/HTen9lY2ch2Yhx1TgfAngK
	kIXA=
X-Gm-Gg: ASbGncujbMYb/PuqOSwd7mB3Y6B7uvH9x+fMmukHYdLBPjjOTNd0EdCiFOQKunnaoNR
	uC3wiBZay45nn4rAQ3GvE4d4fzYk3kxLFslHonszwnnqPdRSd5yRWDS857lEuQnb8K7GmC3JI/5
	Ognjdqaeundr2/KeWV+twVHvyQo3qBCUV/8JfBMR6yZ680b6PDtwIsuVJkP4wUKUAjfKVbaxePB
	Vcxjw1zi6tK1LQEX73pEwwGnbAIWhUjDSt56VXjQGvWzjHniRkATTKPMxACkWRviZP+LFZM5nmD
	xTblAcYa6o7jSYkeU/cg+Xbgb6iR2T66qSEk3c0ElUhlIN8w3Bt2GC+WKiv20hWmY7rrzD0RRch
	yOWB3Z5XdR1FYLhOhwA==
X-Google-Smtp-Source: AGHT+IGNt8NYH/9TwN2yTSuVdKqvpl+p7ur5oVey4BqVwDf0herXXuqW31H27GwNvCXbMTI/URjSzQ==
X-Received: by 2002:a05:600c:c07:b0:43d:224:86b5 with SMTP id 5b1f17b1804b1-43ecf81c5a4mr136824705e9.4.1744046391623;
        Mon, 07 Apr 2025 10:19:51 -0700 (PDT)
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>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH] CI: Drop stale test-artifacts/alpine/3.18.dockerfile
Date: Mon,  7 Apr 2025 18:19:49 +0100
Message-Id: <20250407171949.1865294-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 should have been dropped too, as the authoritative copy lives in another
repo now.

Fixes: babe11b46c1a ("CI: Drop alpine-3.18-rootfs-export and use test-artefacts")
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Michal Orzel <michal.orzel@amd.com>
CC: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
---
 .../tests-artifacts/alpine/3.18.dockerfile    | 67 -------------------
 1 file changed, 67 deletions(-)
 delete mode 100644 automation/tests-artifacts/alpine/3.18.dockerfile

diff --git a/automation/tests-artifacts/alpine/3.18.dockerfile b/automation/tests-artifacts/alpine/3.18.dockerfile
deleted file mode 100644
index 311a92889b87..000000000000
--- a/automation/tests-artifacts/alpine/3.18.dockerfile
+++ /dev/null
@@ -1,67 +0,0 @@
-# syntax=docker/dockerfile:1
-FROM --platform=linux/amd64 alpine:3.18
-LABEL maintainer.name="The Xen Project" \
-      maintainer.email="xen-devel@lists.xenproject.org"
-
-ENV USER root
-
-RUN mkdir /build
-WORKDIR /build
-
-RUN \
-  # apk
-  apk update && \
-  \
-  # xen runtime deps
-  apk add musl && \
-  apk add libgcc && \
-  apk add openrc && \
-  apk add busybox && \
-  apk add sudo && \
-  apk add dbus && \
-  apk add bash && \
-  apk add python3 && \
-  apk add zlib && \
-  apk add ncurses && \
-  apk add yajl && \
-  apk add libaio && \
-  apk add xz && \
-  apk add util-linux && \
-  apk add argp-standalone && \
-  apk add libfdt && \
-  apk add glib && \
-  apk add pixman && \
-  apk add curl && \
-  apk add udev && \
-  apk add pciutils && \
-  apk add libelf && \
-  \
-  # Xen
-  cd / && \
-  # Minimal ramdisk environment in case of cpio output
-  rc-update add udev && \
-  rc-update add udev-trigger && \
-  rc-update add udev-settle && \
-  rc-update add loopback sysinit && \
-  rc-update add bootmisc boot && \
-  rc-update add devfs sysinit && \
-  rc-update add dmesg sysinit && \
-  rc-update add hostname boot && \
-  rc-update add hwclock boot && \
-  rc-update add hwdrivers sysinit && \
-  rc-update add modules boot && \
-  rc-update add killprocs shutdown && \
-  rc-update add mount-ro shutdown && \
-  rc-update add savecache shutdown && \
-  rc-update add local default && \
-  cp -a /sbin/init /init && \
-  echo "ttyS0" >> /etc/securetty && \
-  echo "hvc0" >> /etc/securetty && \
-  echo "ttyS0::respawn:/sbin/getty -L ttyS0 115200 vt100" >> /etc/inittab && \
-  echo "hvc0::respawn:/sbin/getty -L hvc0 115200 vt100" >> /etc/inittab && \
-  echo > /etc/modules && \
-  passwd -d "root" root && \
-  \
-  # Create rootfs
-  cd / && \
-  tar cvzf /initrd.tar.gz bin dev etc home init lib mnt opt root sbin usr var

base-commit: a235f856e4bbd270b085590e1f5fc9599234dcdf
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Mon Apr 07 17:45:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 17:45:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.940745.1340404 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1qWv-00064y-0k; Mon, 07 Apr 2025 17:45:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 940745.1340404; Mon, 07 Apr 2025 17:45: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 1u1qWu-00064r-U5; Mon, 07 Apr 2025 17:45:04 +0000
Received: by outflank-mailman (input) for mailman id 940745;
 Mon, 07 Apr 2025 17:45: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=ZxXC=WZ=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u1qWu-00064l-08
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 17:45:04 +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 085a848a-13d8-11f0-9eaa-5ba50f476ded;
 Mon, 07 Apr 2025 19:45:02 +0200 (CEST)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-43cfecdd8b2so37040105e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 07 Apr 2025 10:45:02 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43ec1f27a55sm139366985e9.2.2025.04.07.10.45.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 07 Apr 2025 10:45:01 -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: 085a848a-13d8-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744047902; x=1744652702; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=AVNc7OnAjoT3b/S1PH1VwrsvCJ+F9v01z0Slij1FWJQ=;
        b=eSmdAiBvTvcCuxiWmPDlQ9UxreKs7oiONJrr4IRWdCLs+zPkEdDYQO63EFdtkMI+Dr
         cKIiH+pLzHdWCPcuwZVqZnk21aIDZJTHvaRqgAzuU2CAltpQrYMXbi5rb6eYu9iQ3iIQ
         hM0YyHXCeSFghVQrkO5wvH/TV1ehkx7ueB3jE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744047902; x=1744652702;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=AVNc7OnAjoT3b/S1PH1VwrsvCJ+F9v01z0Slij1FWJQ=;
        b=YnTGu3cqZN9z5TNaSEmY1xGskZt2UM4nYsDlgztweKMSNnBf9Ig9cjLOkqk5gOcCQ/
         bnq82owavssn8inrEjthpvlbuYjZ2PZGJEyZqevuuIoIRFCuoSrFjw/eplh+0ksxouVY
         q1jIdOEBLtfu+PSaLqXkCjG4y6ZVOIxuM1scQb1yeLHNY0TwFlw3evD6auZDY6WlnQ0l
         7Zzx2cF6wGNhxm3n5XkCsXwgdmogkWk/VEyPJqeIkNnTPf5rtmMyzIjOlwPgrNFWmt/J
         nnSKPw2P+COKAKeEhWJKPLP2m74y3XBNpcdeNsVXvVCcLFEXvWclG9SXdbcrLgX7XIPs
         N5ww==
X-Forwarded-Encrypted: i=1; AJvYcCW5blTbvKuL1O4dumolZHR/Q/FU3hvHc74Hzalqw2SPw6R9FYuIC8AjRXQ4boMSGW4SgDI+OSrBIVQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy/jTpuoig99yYBhG1I6rwOh6iFJ+MtI4HQQQRVTuS4OoQwiLt8
	MhZZbmSLcPT1HHWMAHE6gSp5cMVi+t4dXknazi/yjzt3okcTAarmlcAQvWm4prQ=
X-Gm-Gg: ASbGnct8n4tGa2kZ9GAg0fdNA4/WE+D3sbk8IGJgLiug3ZJZAz/1y5q0nDMExUNt/dR
	VigM2U8GsDZWlXFNmJ8PD+HJreSGv3W0wNPuHk5bajbMxVYjL+wd2kbb3YYxYZd2hVSRWDjkmyr
	OBoaLYnTX5ugYahsQxNAgx0Qv/owLEYn5Snm6QD3pJJqrXMCLD/ay7gqdYfGWp41JxoGjpeOdbS
	wV8eornf3VRWToEWfDYDuuN29Uzq0r/IVsaG0IEXFKMhhi0VNTe7H3ujk/8hFr57J7EUfUANEES
	Du9IDHxdndISlrvlYg0+OV1eWIiFn5AQAa9rpSbPAEZhtYLoPAp/uZaN10iBLuS5c2oldfQdtrp
	WlZuBWf/NjA==
X-Google-Smtp-Source: AGHT+IHYvgMDDUb9UY8rJjruIbtNgNFl5/5i3l8vM1OwfFSyqu84dAN4TKt16ul+yi7Wg17MVcak1w==
X-Received: by 2002:a05:600c:1e13:b0:43c:fbbf:7bf1 with SMTP id 5b1f17b1804b1-43ed0da49e6mr158184175e9.30.1744047901807;
        Mon, 07 Apr 2025 10:45:01 -0700 (PDT)
Message-ID: <0da3e304-ceef-4a1d-9c65-b55a975559d4@citrix.com>
Date: Mon, 7 Apr 2025 18:45:00 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 06/12] CI: consistently use DOCKER_CMD in makefiles
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, xen-devel@lists.xenproject.org
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Doug Goldstein <cardoe@cardoe.com>
References: <cover.7da1777882774486a13e6f39ff4a2096f6b7901e.1744028549.git-series.marmarek@invisiblethingslab.com>
 <3e28c1267125641ed3212c0366678474692913b2.1744028549.git-series.marmarek@invisiblethingslab.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: <3e28c1267125641ed3212c0366678474692913b2.1744028549.git-series.marmarek@invisiblethingslab.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 07/04/2025 1:31 pm, Marek Marczykowski-Górecki wrote:
> This allows rebuilding containers using podman too.
>
> Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
> ---
>  automation/build/Makefile           | 4 ++--
>  automation/tests-artifacts/Makefile | 4 ++--
>  2 files changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/automation/build/Makefile b/automation/build/Makefile
> index 4df43b040777..fedf7524dacd 100644
> --- a/automation/build/Makefile
> +++ b/automation/build/Makefile
> @@ -31,8 +31,8 @@ clean:
>  define CLEAN_RULE
>  .PHONY: clean-$(1)
>  clean-$(1):
> -	if [ -n "$$$$(docker image ls -q $(REGISTRY)/$(subst /,:,$(1)))" ]; then \
> -		docker image rm $(REGISTRY)/$(subst /,:,$(1)); \
> +	if [ -n "$$$$($(DOCKER_CMD) image ls -q $(REGISTRY)/$(subst /,:,$(1)))" ]; then \
> +		$(DOCKER_CMD) image rm $(REGISTRY)/$(subst /,:,$(1)); \
>  	fi
>  
>  endef
> diff --git a/automation/tests-artifacts/Makefile b/automation/tests-artifacts/Makefile
> index d055cd696bed..80a60a94f3f7 100644
> --- a/automation/tests-artifacts/Makefile
> +++ b/automation/tests-artifacts/Makefile
> @@ -10,9 +10,9 @@ help:
>  	@echo "To push container builds, set the env var PUSH"
>  
>  %: %.dockerfile ## Builds containers
> -	docker build --pull -t $(REGISTRY)/$(@D):$(@F) -f $< $(<D)
> +	$(DOCKER_CMD) build --pull -t $(REGISTRY)/$(@D):$(@F) -f $< $(<D)
>  	@if [ ! -z $${PUSH+x} ]; then \
> -		docker push $(REGISTRY)/$(@D):$(@F); \
> +		$(DOCKER_CMD) push $(REGISTRY)/$(@D):$(@F); \
>  	fi
>  
>  .PHONY: all

I'm going to apply this commit to the test artefacts repo too, as it's
got a copy of this Makefile in need of the same change.


From xen-devel-bounces@lists.xenproject.org Mon Apr 07 17:56:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 17:56:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.940761.1340414 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1qhb-00011T-U1; Mon, 07 Apr 2025 17:56:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 940761.1340414; Mon, 07 Apr 2025 17:56: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 1u1qhb-00011M-RF; Mon, 07 Apr 2025 17:56:07 +0000
Received: by outflank-mailman (input) for mailman id 940761;
 Mon, 07 Apr 2025 17: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=ZxXC=WZ=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u1qhb-00011G-7K
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 17:56:07 +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 93475f01-13d9-11f0-9ffb-bf95429c2676;
 Mon, 07 Apr 2025 19:56:05 +0200 (CEST)
Received: by mail-wr1-x42a.google.com with SMTP id
 ffacd0b85a97d-3995ff6b066so2551991f8f.3
 for <xen-devel@lists.xenproject.org>; Mon, 07 Apr 2025 10:56:05 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43ec1660bcesm139223385e9.10.2025.04.07.10.56.03
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 07 Apr 2025 10:56: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: 93475f01-13d9-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744048564; x=1744653364; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=sccB/u/DRvlsrKjAXwvtw6qRfXGtz85CHFzhqnsOEAA=;
        b=TUxdF88rFZLEJ8AYvRASAxkTddqGJA7U4TNe28OtbcjQpaYY3FC1J7lkiAm++S5uQE
         ZWT0sF3QYM2fhVlz7D+zVSR41Q7cqW2jHdwo7JePJ62s9X/v8REPk0urtczotT2mtNvc
         E9hiOHA3NolDh/f9dd+51lvZTeuDr2UNa+8YQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744048564; x=1744653364;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=sccB/u/DRvlsrKjAXwvtw6qRfXGtz85CHFzhqnsOEAA=;
        b=mDvZb0D2WMG6Zs42EwFpAx/BRePY9gTw3OZTHwIEmXSxi2U6Dp1zHWTtkGJVAfGhAB
         G8VA1TMMsJvwmPoNKRKvLxBy5KfIrA26hEZ9TEOj25BXma1niBFA2RoSOFTXltbn4nM1
         HXxqZkUPRN4JPCVAONvPWGP9Jz7R+facdqnK9cQIhvTbwzHWFW4nH/IoEKOLeYqNVtAi
         80XYfgo62EPE/VWY7G9GSb2CdxS0A+u4WcmTOgQXr5VJGbqa0kbC94/vckIbHrxdm0KE
         iB7QBVDcwIND3U1g/+5L6c9S8cmrf6NV53JRhJJK/dWTsltrIho/B/2vNo0QqYuTC72n
         G+kg==
X-Forwarded-Encrypted: i=1; AJvYcCXAgASPJLMP5LmbEDPmM94SSS85VWlXxgHBX+rTAdDIDPevsKlSbgtYYyQlfHnu1G4cDYJ9PXlddfo=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywa6rKIneOTrJVClRkzXBua9uwDIYhl14eAacgw89BiVgxJo7ML
	dZfjK12IPBKBn3M5e7kc2AanYMTDKK0e78d/hHXd06HjmeIpkA+15k2y02ri8A4=
X-Gm-Gg: ASbGncvmgJNbedHcPD50by3Z7wuTm7joi36Q97KyMYwxDR6G5aM2loAErz5eKPH+1fi
	yzQ/f2UhVRkmNzWv+L2RbiYBPN0FdolTmp/Y44iDJYbeQX5Y3B34vkkmD9uQXWYEBardUKEjcJC
	70gd8v4lWDePxl5IKndc4NOeHtYkskuxttev4avHQu7aqjdO1OMQhdVCM0pCnRpoGqkFFkvU3gY
	goGkwajKY/vaLwCdqQLl/AgnbSTs/w15zFjZeC69irk8Jra4Dx9CjMOp+/6sY/J60dsIR1QDMjy
	+r+40nyj1TPye2btCRl6k0Pf51BMhYbASlsV19nqnQfumny4/BdxM/8/XUji4oUWwJ9RHYcY6E0
	4q6IJydUpiw==
X-Google-Smtp-Source: AGHT+IHF4aeeG/3FO4TS03v3o41m4GXhZP3Hmm4fw0jPsAWSldpRYhI2cRtTU1hNmMHXaPJdyQEa7w==
X-Received: by 2002:a05:6000:4284:b0:39c:1f11:ead with SMTP id ffacd0b85a97d-39cb35a8860mr12648944f8f.26.1744048564422;
        Mon, 07 Apr 2025 10:56:04 -0700 (PDT)
Message-ID: <a10a7c12-90de-4f1b-9ee0-d5b85055a368@citrix.com>
Date: Mon, 7 Apr 2025 18:56:02 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 08/12] CI: switch test kernel from 6.1.19 to 6.12.21
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, xen-devel@lists.xenproject.org
Cc: Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>
References: <cover.7da1777882774486a13e6f39ff4a2096f6b7901e.1744028549.git-series.marmarek@invisiblethingslab.com>
 <eda734d64c0b73e5de6ca0d70fe3de02d40cf00d.1744028549.git-series.marmarek@invisiblethingslab.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: <eda734d64c0b73e5de6ca0d70fe3de02d40cf00d.1744028549.git-series.marmarek@invisiblethingslab.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 07/04/2025 1:31 pm, Marek Marczykowski-Górecki wrote:
> The jump is pretty big, but should be enough for a longer time. The
> change right now is motivated adding new runner with AMD Zen4.
>
> Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
> ---
>  automation/gitlab-ci/build.yaml                      |  4 +-
>  automation/gitlab-ci/test.yaml                       |  2 +-
>  automation/tests-artifacts/kernel/6.1.19.dockerfile  | 41 +-------------
>  automation/tests-artifacts/kernel/6.12.21.dockerfile | 41 +++++++++++++-
>  4 files changed, 44 insertions(+), 44 deletions(-)
>  delete mode 100644 automation/tests-artifacts/kernel/6.1.19.dockerfile
>  create mode 100644 automation/tests-artifacts/kernel/6.12.21.dockerfile

I'd really prefer not to continue extending the *-export mess, but that
in turn needs fixes in the test-artefacts repo first.  It should
simplify later parts of this series.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Apr 07 18:03:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 18:03:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.940774.1340424 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1qor-0003Yo-LQ; Mon, 07 Apr 2025 18:03:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 940774.1340424; Mon, 07 Apr 2025 18:03: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 1u1qor-0003Yh-IV; Mon, 07 Apr 2025 18:03:37 +0000
Received: by outflank-mailman (input) for mailman id 940774;
 Mon, 07 Apr 2025 18:03: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=pNbr=WZ=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u1qop-0003WY-DB
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 18:03:36 +0000
Received: from mail-24417.protonmail.ch (mail-24417.protonmail.ch
 [109.224.244.17]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9e5c13fe-13da-11f0-9ffb-bf95429c2676;
 Mon, 07 Apr 2025 20:03:33 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9e5c13fe-13da-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1744049012; x=1744308212;
	bh=VQSjHyIMBY2yQgG6dCYksotb0DE3V4OgALr6R+duOZo=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=jvSZaxcuH9cDIz3QDziFD/KdFWfIm/C3Pahcat8EEeZIla0yFAmwxlxjPXWhetOhI
	 ifKIss7t4RjwoD45Hf8o0i6OdlHlLpxBi2TtvFoq5i1k8mxGXw6wQL9Qc1HSXCUV8k
	 g3byE0ut4iH7vMcIjQkBdoiK1a8nEAAhb+ru61h/1LYxJxSJrNHzf17pJkREhhfwXl
	 dGCp0QDui9pMthj20whQY+e2oI6J0upzkrQQTGYs/GZZCoiDaO6lyg35ljACkr0ahy
	 FeLxLXnO0gJtyt0XUexnBP2idsC1uY5HQuqzroa0sXMOInm80SqntFdS9qfAXqb6hJ
	 f+as++p7FdRPg==
Date: Mon, 07 Apr 2025 18:03:26 +0000
To: Andrew Cooper <andrew.cooper3@citrix.com>
From: Denis Mukhin <dmkhn@proton.me>
Cc: xen-devel@lists.xenproject.org, jbeulich@suse.com, roger.pau@citrix.com, dmukhin@ford.com
Subject: Re: [PATCH v3] x86/emulate: Remove HAVE_AS_RDRAND and HAVE_AS_RDSEED
Message-ID: <WvbDDLWG-dJvF50QECiFigf3QxsO7k9-59uVLPwxagm7NFE_ZRoJ8RZ9XjV4umDgxFboXuKVnorjaNiLH3rPy6NBqUYY9S_rTwpPyZG6x-c=@proton.me>
In-Reply-To: <c34b4537-9563-452c-869f-a412749ebfad@citrix.com>
References: <20250405012417.3108759-1-dmukhin@ford.com> <c34b4537-9563-452c-869f-a412749ebfad@citrix.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 60c2b2a5fb91a3e6a7b9959b78f08a2f635fa5ef
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Monday, April 7th, 2025 at 2:17 AM, Andrew Cooper <andrew.cooper3@citrix=
.com> wrote:

>=20
>=20
> On 05/04/2025 2:25 am, dmkhn@proton.me wrote:
>=20
> > From: Denis Mukhin dmukhin@ford.com
> >=20
> > The new toolchain baseline knows the rdrand/rdseed instructions,
> > no need to carry the workaround in the code.
>=20
>=20
> A few minor notes. Instructions in CAPITALS please to make them easier
> to parse in context. The comma ought to be a semi-colon.
>=20
> You should note that arch_get_random() is adjusted too.
>=20
> Also, it's useful to state "No functional change." to help reviewers.
> (Or to help archaeologies figure out the intent of the patch if they
> subsequently find a bug in it.)

Noted, thanks for the feedback

>=20
> > diff --git a/xen/arch/x86/include/asm/random.h b/xen/arch/x86/include/a=
sm/random.h
> > index 9e1fe0bc1d..e1c1c765e1 100644
> > --- a/xen/arch/x86/include/asm/random.h
> > +++ b/xen/arch/x86/include/asm/random.h
> > @@ -8,7 +8,7 @@ static inline unsigned int arch_get_random(void)
> > unsigned int val =3D 0;
> >=20
> > if ( cpu_has(&current_cpu_data, X86_FEATURE_RDRAND) )
> > - asm volatile ( ".byte 0x0f,0xc7,0xf0" : "+a" (val) );
> > + asm volatile ( "rdrand %0" : "=3Da" (val) );
>=20
>=20
> This was only tied to "a" because 0xf0 is the ModRM byte. Now that we
> can use the mnemonic, it can become "=3Dr".
>=20
> I've fixed all on commit.

Thank you!

>=20
> ~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Apr 07 18:04:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 18:04:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.940791.1340433 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1qpL-0004BD-So; Mon, 07 Apr 2025 18:04:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 940791.1340433; Mon, 07 Apr 2025 18: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 1u1qpL-0004B6-Q9; Mon, 07 Apr 2025 18:04:07 +0000
Received: by outflank-mailman (input) for mailman id 940791;
 Mon, 07 Apr 2025 18:04: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=pNbr=WZ=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u1qpK-0003ol-FZ
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 18:04:06 +0000
Received: from mail-4316.protonmail.ch (mail-4316.protonmail.ch [185.70.43.16])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b1704f0f-13da-11f0-9eaa-5ba50f476ded;
 Mon, 07 Apr 2025 20:04:05 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b1704f0f-13da-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1744049044; x=1744308244;
	bh=4pDQwjqkqIY+kyCeSIzcQU4HMllyi29QZKHatR12yZM=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=Ry+TVDpku/WEmyWfavzm04ipRVa37mDMcvUvz2nYZj73Ajlm68M56Zk/iYLWTh9++
	 B1aWJrznggqXYek29yga/HfvqbXlKnyJu+oygyhUIvlWr+HyATTZDyE5zoMjMYTLJ8
	 93lsC++SUtBizHcszT5HGwH5ZnPuFRWsUVHDnw3VCKtwHj7y4Qo2vkg7Nmd9bSiIKX
	 Wja49eh/3ObysY5mQTlA5LUCL0P0tYf0LUfwk9ST1FTtZCqtcjetGSrRqPp4w9rH6y
	 KV9jE7BJ6SooKOMIx8wp1RP9bqlLPVRzDUGhb3B1d1sI04j+Vb9xdCUF3RipiZz9fE
	 EWgMgupOF6aOA==
Date: Mon, 07 Apr 2025 18:03:58 +0000
To: Andrew Cooper <andrew.cooper3@citrix.com>
From: Denis Mukhin <dmkhn@proton.me>
Cc: xen-devel@lists.xenproject.org, jbeulich@suse.com, roger.pau@citrix.com, dmukhin@ford.com
Subject: Re: [PATCH v3] x86/vmx: Rework VMX wrappers using `asm goto()`
Message-ID: <7P_vEygPylSPMxeF5xJ_Hvqfh766s1bpMhzu_hXX3CP9qMloLPlw1Y4TkPEuM_bWH3-ewQ4ABwW-Cz_igwahGKHGkgz65LT_OfSUXpoaEts=@proton.me>
In-Reply-To: <059fb994-e5e1-43e2-98ee-d7ae44137892@citrix.com>
References: <20250405012729.3109108-1-dmukhin@ford.com> <059fb994-e5e1-43e2-98ee-d7ae44137892@citrix.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: ee9fdca067dfa0cca3b786e9481568ef378aaf6f
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Monday, April 7th, 2025 at 2:46 AM, Andrew Cooper <andrew.cooper3@citrix=
.com> wrote:

>=20
>=20
> On 05/04/2025 2:27 am, dmkhn@proton.me wrote:
>=20
> > diff --git a/xen/arch/x86/include/asm/hvm/vmx/vmx.h b/xen/arch/x86/incl=
ude/asm/hvm/vmx/vmx.h
> > index affb3a8bd6..6aa6e1f212 100644
> > --- a/xen/arch/x86/include/asm/hvm/vmx/vmx.h
> > +++ b/xen/arch/x86/include/asm/hvm/vmx/vmx.h
> > @@ -294,28 +294,30 @@ extern uint8_t posted_intr_vector;
> >=20
> > static always_inline void __vmptrld(u64 addr)
> > {
> > - asm volatile ( "vmptrld %0\n\t"
> > - /* CF=3D=3D1 or ZF=3D=3D1 --> BUG() */
> > - UNLIKELY_START(be, vmptrld)
> > - _ASM_BUGFRAME_TEXT(0)
> > - UNLIKELY_END_SECTION
> > - :
> > - : "m" (addr),
> > - _ASM_BUGFRAME_INFO(BUGFRAME_bug, LINE, FILE, 0)
> > - : "memory" );
> > + asm goto ( "vmptrld %[addr]\n\t"
> > + "jbe %l[vmfail]\n"
>=20
>=20
> This should be without \n too, as it's the last line of assembly.
>=20
> I've fixed on commit.

Thanks!

>=20
> ~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Apr 07 18:07:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 18:07:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.940808.1340444 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1qsp-0005KC-CF; Mon, 07 Apr 2025 18:07:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 940808.1340444; Mon, 07 Apr 2025 18: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 1u1qsp-0005K5-9Q; Mon, 07 Apr 2025 18:07:43 +0000
Received: by outflank-mailman (input) for mailman id 940808;
 Mon, 07 Apr 2025 18:07: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=ZxXC=WZ=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u1qsn-0005Jz-QU
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 18:07:41 +0000
Received: from mail-wm1-x32a.google.com (mail-wm1-x32a.google.com
 [2a00:1450:4864:20::32a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 322120b2-13db-11f0-9eaa-5ba50f476ded;
 Mon, 07 Apr 2025 20:07:41 +0200 (CEST)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-43ce70f9afbso51436445e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 07 Apr 2025 11:07:41 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43ec34bb7bfsm135231375e9.17.2025.04.07.11.07.39
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 07 Apr 2025 11:07: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: 322120b2-13db-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744049260; x=1744654060; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=zrHCSy21K0DGFkpeuH2hjMjz9IC9jhXg90W3UCgWexs=;
        b=vB8/QSj19SPFAh8kYcrKDjYzglTnZWQ/Yeq6snshxs8xRMjyScBN9Ni8wLS5lhi7tP
         a4qd0gG0EFbGHDWjZ1hS8JOxhYSJiTT0NDmF+3VIl6XauPzyEQfws6COhRd6Rk8Dt7fU
         oR9omYlmAjA2LTYAz33rBIDrsu9g7JXKLQWoE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744049260; x=1744654060;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=zrHCSy21K0DGFkpeuH2hjMjz9IC9jhXg90W3UCgWexs=;
        b=WKn1wFaC+watYCtOYNgDuJgLQtkcQ+H3hsdu5BmwrgYuI0KZoamwZeSpYcE6/za6Rm
         qkE+9sJjItXi5hDx/Lv1HEZ0avG0Ya/5InFL7TubgGvy1eWCzpbqUGg2cQvr2S7z8CK/
         ZurhlhyR47CkCoVcffkbWo+juBzDHvcSgylv4nNWpnDjU2Fwu3l7qUDalJ4aMrBzCuJx
         +VwcPJJUeLdEEwbtXC2pLZh0beSBklJT9FoAZ19lsnemvpkJVU1YsAQhB5/vrrLFu8UT
         BWpxtDZNk3rf9eJsS0nRb7pi8w1lpbfkPnwzbNq6gp/TonMnQUGmidCpvt6rlZYHRze4
         8fWA==
X-Forwarded-Encrypted: i=1; AJvYcCUlSRYsHnwT/4cfyI0/2xfycRZWbJ5kyRGrf6hK2I9xp4fwyi2K/WIDmSCOSrqCm5aERNpWCgusSPE=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yze2Jb4zZ1Ac5UCghNyURIwWi0NavIo6MMveihiAZgxOeJxBhup
	gkZTarsYmfldfykdcES2ASgAVo/RETH8rthc57Ac5JDHffQCNHrQ2cFHUOjYICk=
X-Gm-Gg: ASbGncv9tUHwz1kj3YwOzbBIIwL1i98uCkywplz0M6o7ST253ETw5vsy66Sb0wmuoce
	77kaA3LW/pXyG5RLWBa46H/UbYF+CP/NHR1qTzaGOtPNxuTdO2R+uXNVfkdeWR/lcmrn387JJrS
	wCkIBOD2wu2Go73JJ4ESiyN8A2xo0Z2eQ3p6Z4Mv+5JFOcwg6A2jQfuN5lfXY58hFXpMnagu0A4
	roI3HUxYSBETqgtvaY9dR8pzZ9+Fi8JE/+gJHGfdrb7vHq7cxgbD2upffY3K0ExeCPYcwGHcPRU
	D9zV8vHiSUxf+s8+zVWU6MQ3LEwbTIG0ToynD6KNMKqrAcQqGhx62B+4S3YnjFVljSp2wcPWCXK
	wWx1JjnwOf9UXKJX6UKvw
X-Google-Smtp-Source: AGHT+IGRVshS+dVuK839SPQCTqMdsIftQzAggIKRxeDcpDewtD9o9c6RSMgHnFTRAIctdC06E0yumA==
X-Received: by 2002:a5d:64ee:0:b0:390:f745:bbfb with SMTP id ffacd0b85a97d-39d0de25c1emr12719312f8f.26.1744049260394;
        Mon, 07 Apr 2025 11:07:40 -0700 (PDT)
Message-ID: <13532ce0-e066-491d-a913-b85268b9639f@citrix.com>
Date: Mon, 7 Apr 2025 19:07:39 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 02/12] CI: switch qubes runners to use console.exp
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, xen-devel@lists.xenproject.org
Cc: Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>
References: <cover.7da1777882774486a13e6f39ff4a2096f6b7901e.1744028549.git-series.marmarek@invisiblethingslab.com>
 <33fe66669f6ca9fb7573d69d9f9fefeb653fe503.1744028549.git-series.marmarek@invisiblethingslab.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: <33fe66669f6ca9fb7573d69d9f9fefeb653fe503.1744028549.git-series.marmarek@invisiblethingslab.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 07/04/2025 1:31 pm, Marek Marczykowski-Górecki wrote:
> diff --git a/automation/scripts/console.exp b/automation/scripts/console.exp
> index 31ce97b91b63..d1689fa5bf7f 100755
> --- a/automation/scripts/console.exp
> +++ b/automation/scripts/console.exp
> @@ -28,21 +28,34 @@ if {[info exists env(UBOOT_CMD)]} {
>      send "$env(UBOOT_CMD)\r"
>  }
>  
> +if {[info exists env(BOOT_MSG)]} {
> +    expect -re "$env(BOOT_MSG)"
> +}

We're gaining an increasingly complex set of environment variables to
control this script.  In particular, this is more a signs-of-life
message than a completion.

I think this patch wants splitting into two.  First doing the -re
changes, and adding BOOT_MSG, and some comments explaining how each part
is supposed to be used.  I expect the xilinx- jobs want to use BOOT_MSG
too, whereas I expect we don't want the qemu/cirrus smoke tests to use
it, seeing as they're all direct-boot in qemu.

The, the second patch is converting qubes-x86-64.sh to use it, adding
WAKEUP_CMD/SYSPEND_MSG as they're pretty specific.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Apr 07 18:17:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 18:17:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.940825.1340454 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1r1n-0008VJ-B8; Mon, 07 Apr 2025 18:16:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 940825.1340454; Mon, 07 Apr 2025 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 1u1r1n-0008VC-85; Mon, 07 Apr 2025 18:16:59 +0000
Received: by outflank-mailman (input) for mailman id 940825;
 Mon, 07 Apr 2025 18:16: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=tcrT=WZ=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1u1r1l-0008V6-UR
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 18:16:58 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on2062a.outbound.protection.outlook.com
 [2a01:111:f403:2415::62a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7c8d2ce9-13dc-11f0-9eaa-5ba50f476ded;
 Mon, 07 Apr 2025 20:16:56 +0200 (CEST)
Received: from CH0PR03CA0198.namprd03.prod.outlook.com (2603:10b6:610:e4::23)
 by DM4PR12MB6616.namprd12.prod.outlook.com (2603:10b6:8:8e::22) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8583.45; Mon, 7 Apr
 2025 18:16:48 +0000
Received: from CH1PEPF0000A345.namprd04.prod.outlook.com
 (2603:10b6:610:e4:cafe::5f) by CH0PR03CA0198.outlook.office365.com
 (2603:10b6:610:e4::23) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8606.35 via Frontend Transport; Mon,
 7 Apr 2025 18:16:47 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 CH1PEPF0000A345.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.8606.22 via Frontend Transport; Mon, 7 Apr 2025 18:16:47 +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, 7 Apr
 2025 13:16:45 -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; Mon, 7 Apr
 2025 13:16:45 -0500
Received: from [172.25.231.87] (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, 7 Apr 2025 13:16:44 -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: 7c8d2ce9-13dc-11f0-9eaa-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=eSL0AbEVj4izsGUPfV9ImjyUEQvqLk7HF+0b+nyPnEc/OAZm4bL+7qTw8nPUnJpgPZOP36I8AA4FU20J64FLWzTZwnSWSgGMafeoVgbuj2vNyEQAT6aOGAzsIJYxhp1LcUoZ5dxlG50vplV88pVOHZCx/E+JIRhgjLHtEp/YKyK84UfIsO8jK7FMjk6Ggphar/AI5UGFM5ESMP9q68xkouaRt7bxhgHpswNMjAVEqFAg5sNf506NQSkH1gDetjsHOoI02p7EO9pmzw2KEcplb+p9aYv0sjK3aP16kHOHYRXxMLIolILEhtAgeWE1CsJ9QNRkdyi6zVmY8nRud+YnQA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=zu5/r573VL/mCk3hgJ7R6knSDglwaXrKHfEamfgfekY=;
 b=ir2Ux6F8wW6XT9n5ANoPetqua+oPsOjGgCHIFbQL5BHO3bSLYEH+hq8NAz6vpb40Z1Nzy7KnOmSXTK+X+pcNnpufALn6IWNxVUfJRKpTSg/Zvuj+mmRClNa5AcQRlzSxDLI1oqYX2R8+pmq11RbGZHUFiGDMRlkWk5JkZ8WSNqnD/8wQ7IlSU08HBq5z2c6MG5JpadvUj6DmvEZlxvPnBan2ivDV0IIp+rE7PMA+Ej5vhi4y8tXmqerZgT5zOlup2LPkZLIyzbx1g20Aqn+Uqlrg9Be102bAhTKH8AuYsurDW2UCQq2dTb5aGfgBBGSiiripONXBDNH1zTmxKOwcZw==
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=zu5/r573VL/mCk3hgJ7R6knSDglwaXrKHfEamfgfekY=;
 b=TdXf6CyG67uRS8grrHDdAmKzuETSRFhpjG9lUWdU5aBam7u0WVBwmdl8WCvDPl3HTl/09TX2wnaF9Ei5EDjxuNz+9U36moVSizpyzbsWVWWUd4NZQ3pHKn5h7IZIoYZjJulhhcSzqg9AKgx194BWE0WWFmY1BaL0+zIyPdGYeTw=
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: <64f6bf18-d3e4-4392-b924-4b779dbe5d69@amd.com>
Date: Mon, 7 Apr 2025 14:16:44 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 1/7] xen: introduce hardware domain create flag
To: Jan Beulich <jbeulich@suse.com>
CC: "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>, "Volodymyr
 Babchuk" <Volodymyr_Babchuk@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
	<xen-devel@lists.xenproject.org>
References: <20250403214608.152954-1-jason.andryuk@amd.com>
 <20250403214608.152954-2-jason.andryuk@amd.com>
 <332e0afc-9c43-4602-9bc0-dfe4ddd1b107@suse.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <332e0afc-9c43-4602-9bc0-dfe4ddd1b107@suse.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: CH1PEPF0000A345:EE_|DM4PR12MB6616:EE_
X-MS-Office365-Filtering-Correlation-Id: 0f36fae1-03d4-404b-41fd-08dd76005c57
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|7416014|376014|36860700013|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?d0diUHZRY2daTzlZK3I5WGxzdGNQSWZscTVzV2pqRW1PQ2djZERZQ1h1NEFm?=
 =?utf-8?B?bVppdmtPYlRVdy9Nd1M4Y0ZGWlpBOFV2Qzd6T2pWWkJjUyt4aWlHRVhuK052?=
 =?utf-8?B?a2RnelY2RUVFNGptalFFOW9xOUEvL1ljKzNxcnY5UHI2VTl1KzRTTFdyUGEy?=
 =?utf-8?B?Z1RGSzJKYWZ1ZzNTVDN1b1RiQTRwLzgxZmh2dSttZjdFakhXMEFEWll0TnRh?=
 =?utf-8?B?ZllMSEdrS21ndGUyOFhPc3I1K1dYZHhzcUVzeXdvMWs1TFRjUUVwYXd0Mngz?=
 =?utf-8?B?Zy93ZWs5YnFqZHhCbFVhdm5kMzgwdjN6d3g2K3pWUWp4TUpzVEcwdFp2THhr?=
 =?utf-8?B?MDhjOW1TT0c3MXh2MlVzeTNLVlVLZHhNdDl6V1A0K0ZUemNmUHc1cWZEYXp6?=
 =?utf-8?B?V0o3V1lCTlpVZHpaRjNXRHVmbjBUNHlzMkpFZXRYQ2dqaTVsS3JwL2dSYStn?=
 =?utf-8?B?SEd4Y2tNdnBMeUJhK0F0elpsZmFlOGgzSi92WFpmZ3JGUmE2M2dEb1E2L3BY?=
 =?utf-8?B?OFJYc3NpQ3JIcDNpZmp3L0V3VkwyeHU2aWI0NGxPazhGRkpIWi95bXN0TkU0?=
 =?utf-8?B?UUI1Y1pmbWtad3lCQ0t2dHVrdkJneEExSmIzMUxEazdFYzB1MFFGWGJKOS9v?=
 =?utf-8?B?RkwrL2MxMS9IbUpqUXZoa012R1I1WXBzMVJQSCtKeG9wcnZTN0hSZnpweTc2?=
 =?utf-8?B?Z0V1V1VPci9hOUNZSWJlNWZOY3FMWW9lQnh5NUtDa1JMWXozaWh4bVE4VTlY?=
 =?utf-8?B?SW9zWk1YVExRVGpnUFVadkkzUUJLbnpLZ01GQTBhdDZpVkpYU0JoUGxBWlgz?=
 =?utf-8?B?ajNYL2RtdkJYVHNYNzVSQkdRM3djS3RvVlRzWTZSMXYydmM0d2czNkpZZlF2?=
 =?utf-8?B?b25qTEExZGh5TktPWnNPUUlRYThwcGI5emQ2Y0lSalcwbmxpbUdnUlVDMW5H?=
 =?utf-8?B?RW5Lc2RteEdwUGJwQ3FGM0lZdzU4MlFtczdZMjZpdzRiOXQ1eC84ZDM3eFlC?=
 =?utf-8?B?NXlSV3NrOUllQVBISml2cmVPc2VTQktQbW9BUmd5MlIrVDMzV2E0OWtHZStO?=
 =?utf-8?B?VU8va2NpYnJaZXQvZm01VSsxNVd5UTB0VUJpc0tXYStWdmlJRnNHNjZoOEtz?=
 =?utf-8?B?Ym02bjdkNXZMZlhVNEp1VVZXWHhLMFJ3YkdUdHJ5S1pidTYwbnAwVlRVRnRU?=
 =?utf-8?B?UFFvSGJDVVNZRHZTRmdCbE9qaUtCUXpqamxOTXpXU3RIUldlVzJqWUUrekNx?=
 =?utf-8?B?eVArZkZ0ZTFyWmtNY0VGbUIyd2R3a3A4SVp4amxGT241OE1qb3dtMkU0dCtJ?=
 =?utf-8?B?YXpYcjNVczRwUFhsdmZzaEhKT09jeTZxUXpZNWNHMytlWHNMTzNKSjIzd0RI?=
 =?utf-8?B?OUJIWlNzZ0pmN25iVUR0dTRQeFk1bGtwSGtkQmtuU0pPKzQ4Z1k5aXoyc0Fh?=
 =?utf-8?B?TlkveWxncmZZWThuMDhSVjh3SHpEQkNMZVpyMkhsRlNha0xnQXhLaHo5eUVL?=
 =?utf-8?B?bHYwSkNRZ3BjS2Y0dzN3YmJGWW41WWxZMkNMUjJuOFVHajc5Q0F0c2h5T2Mw?=
 =?utf-8?B?cTVZTmFzbWtEeXZlbWF5RHBPbEJtYW83UDJzZFFOb1B5d2gvalRBZmZEUDFI?=
 =?utf-8?B?TGlXOC9DQTh2NFA5eDhFQTJRZkNiWVREQWtYclFJeHpnak1reFZzWHREbDlu?=
 =?utf-8?B?aWdSRFc5Tm1oK2dGa1Qxa1hiMGtzYmU0SU4yTS9pM0w2UHdxL0p6VENGLzhm?=
 =?utf-8?B?Z3lVcmNTVXpvR0N3dVJKVTBWOGVXZEpPZldoNENGUUFpeXVPK0tvRHR3cWV5?=
 =?utf-8?B?UlFXcUFRM3VOd1NrN1FzUHY1R1RKNXY1eXFJMHNiN2hCNXJkajdUSVBsRjJr?=
 =?utf-8?B?anY3QkhtY1RMK3EwVUU3cUMzak4zUVZCSFVUamJyemJiUm0rdjBhaVpmL2M2?=
 =?utf-8?B?QXJoTGllTmRNM1Z1ZUw0ckZhaXk5ZUZPL1VYL1dWQkJucUsrcUcxeEhETVJp?=
 =?utf-8?Q?Idyc/+I+kP0qjO+c++VR3J4QfKfb70=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)(7416014)(376014)(36860700013)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Apr 2025 18:16:47.6997
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 0f36fae1-03d4-404b-41fd-08dd76005c57
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:
	CH1PEPF0000A345.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB6616

On 2025-04-04 03:38, Jan Beulich wrote:
> On 03.04.2025 23:46, Jason Andryuk wrote:
>> From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
>>
>> Add and use a new internal create domain flag to specify the hardware
>> domain.  This removes the hardcoding of domid 0 as the hardware domain.
>>
>> This allows more flexibility with domain creation.
>>
>> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
>> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
>> Reviewed-by: Jan Beulich <jbeulich@suse.com>
>> ---
>> v3:
>> Or-in CDF_hardware for late hwdom case
> 
> Except that ...
> 
>> --- a/xen/common/domain.c
>> +++ b/xen/common/domain.c
>> @@ -820,13 +820,18 @@ struct domain *domain_create(domid_t domid,
>>       d->is_privileged = flags & CDF_privileged;
>>   
>>       /* Sort out our idea of is_hardware_domain(). */
>> -    if ( domid == 0 || domid == hardware_domid )
>> +    if ( (flags & CDF_hardware) || domid == hardware_domid )
>>       {
>>           if ( hardware_domid < 0 || hardware_domid >= DOMID_FIRST_RESERVED )
>>               panic("The value of hardware_dom must be a valid domain ID\n");
>>   
>> +        /* late_hwdom is only allowed for dom0. */
>> +        if ( hardware_domain && hardware_domain->domain_id )
>> +            return ERR_PTR(-EINVAL);
>> +
>>           old_hwdom = hardware_domain;
>>           hardware_domain = d;
>> +        flags |= CDF_hardware;
>>       }
> 
> ... this isn't quite enough. You're only modifying what will go out of scope
> when returning from the function. What's at least equally important to OR into
> is d->cdf.

Yes, thanks for catching that.

I'll move d->cdf assignment to after here instead of or-ing in a second 
time.

With that, it seems like it should also be removed from old_hwdom?

old_hwdom->cdf &= ~CDF_hardware

Regards,
Jason


From xen-devel-bounces@lists.xenproject.org Mon Apr 07 18:17:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 18:17:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.940836.1340463 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1r2U-0000YL-Ix; Mon, 07 Apr 2025 18:17:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 940836.1340463; Mon, 07 Apr 2025 18:17: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 1u1r2U-0000YE-GG; Mon, 07 Apr 2025 18:17:42 +0000
Received: by outflank-mailman (input) for mailman id 940836;
 Mon, 07 Apr 2025 18:17: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=tcrT=WZ=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1u1r2T-0000Mn-H3
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 18:17:41 +0000
Received: from NAM04-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam04on2061f.outbound.protection.outlook.com
 [2a01:111:f403:2408::61f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 96803c20-13dc-11f0-9ffb-bf95429c2676;
 Mon, 07 Apr 2025 20:17:39 +0200 (CEST)
Received: from CH2PR05CA0041.namprd05.prod.outlook.com (2603:10b6:610:38::18)
 by CY3PR12MB9680.namprd12.prod.outlook.com (2603:10b6:930:100::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.33; Mon, 7 Apr
 2025 18:17:35 +0000
Received: from CH1PEPF0000A346.namprd04.prod.outlook.com
 (2603:10b6:610:38:cafe::d8) by CH2PR05CA0041.outlook.office365.com
 (2603:10b6:610:38::18) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.9 via Frontend Transport; Mon, 7
 Apr 2025 18:17:34 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 CH1PEPF0000A346.mail.protection.outlook.com (10.167.244.11) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8606.22 via Frontend Transport; Mon, 7 Apr 2025 18:17: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, 7 Apr
 2025 13:17:33 -0500
Received: from [172.25.231.87] (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, 7 Apr 2025 13:17:33 -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: 96803c20-13dc-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=W7nF42KNMap4pRXrfatG759+E5aki6l4CLLMgNlx+HOHtr+YhuZSFSIqfLovtI5E6gj7uO4yrbfc9PKxTIhGyvPqOrvX66hsS+scJ/NWOfFRSd+LH7hE7W0BLpFRlOcqsGVIp60Ur7giqXBwwssNTJh6/8gCN9zLu6GRw3RKFUrYeJRCHhyGeJGxg8j2pXahFh78mxq1Cy+Cz2Ve+Dkn7zO/LCe0QB5yHYcAzXMlLkNF/FmmQa69Z4bF+ZFh0n5Q+rbQZEixKVIWJOcgb1Pa5ktNAVxcZn9cAVGczhTu2DzelTVWT+bk7rFFw8b+v4d57vX0s8P67SIcpq0LldLpBA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=HobXPlNt+p2Bv4LM+pPpXt8v2ZDWVNzLqjENRlroOtg=;
 b=nUy7MgFhLrl0oxBS61G/Pvv9nYjaTBLYNP8cyWn/YsytTtT6wHNOZFNyH6KoSgnqjJqoDI8gK7hgK2QdtWrJWu/jgtfNvpaJEg6mMN9wzHez2zTAwRQYfg3NcIAbCEMVBo4QCBoX+kNI1ZOoAWWF96tVc35ObBSkMnxY1qrxZvWSPDELVU4nrjCypp8t9166S2AR5LgQwt7DLXrATR+GtLqkFT8otovIaqFRiSDwBg34DBF0ilvFoAxdzcXQZ9GxK5k5qWwODlcm72BPBm2roHG0ka3ftpFLd5CsfF6tzv/9bHfgzOQOtDcv7GraESG6xF4BwEHF44AKtPoTEcHDiw==
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=HobXPlNt+p2Bv4LM+pPpXt8v2ZDWVNzLqjENRlroOtg=;
 b=qnAYZmMJUOXSxF4PkMi5iIfH/FMqPAzGfle2jalaNyG+x88z8vld2CX/n8k3hx4B9ZpXLjtehrxNwg/WiUSagzh4vhwLbXlLNIPOGiEsk3R5/gQGVhrm0jOkxs+ow41UyM77LLlQ0jpBHMlgwC9c4zMzfp2pJQd7rclHgEstMr4=
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: <72e2e9e6-db33-4e65-ae11-142f436cb56f@amd.com>
Date: Mon, 7 Apr 2025 14:17:32 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 4/7] xen/arm: dom0less seed xenstore grant table entry
To: Jan Beulich <jbeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
	<julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, Michal Orzel
	<michal.orzel@amd.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>, <xen-devel@lists.xenproject.org>
References: <20250403214608.152954-1-jason.andryuk@amd.com>
 <20250403214608.152954-5-jason.andryuk@amd.com>
 <2d0259da-f617-4fda-bc23-840e54a16527@suse.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <2d0259da-f617-4fda-bc23-840e54a16527@suse.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: CH1PEPF0000A346:EE_|CY3PR12MB9680:EE_
X-MS-Office365-Filtering-Correlation-Id: 0e5bf0cc-76c2-482e-015e-08dd76007828
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|376014|36860700013|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?TDZZdERPVkZMcjdPSnROMUV1MFJMdFZOSHgvUTFjOUd1RVVYUUJwajFGNkZw?=
 =?utf-8?B?T3JFWEZYeXJ4cDNIb2xZZ1poNysxSFZHTTVOQU9QQm9ITTJscU5kd1pXU09T?=
 =?utf-8?B?Vk5CdWtMYjNWNTlCQ0dtNUc1c2Zad3JiWWo0VHlKcXJYT1htTENyUlpWeEJN?=
 =?utf-8?B?YThna2pId200M2N0a0RhaFhjRWg1U3paR1VwY0hOMnVFL2tsS050MGpjOFpx?=
 =?utf-8?B?d0ZIWnQ4N3J1S3RiQVpXd0RnQWxteTArckp0WElHQTZxakt4c0VjQTR3MUgw?=
 =?utf-8?B?NVlPOEtwZkcrMFFFaEdmOVllRmNvdU02cFRxZHJtWktYQUdiamRoRUFFMlIv?=
 =?utf-8?B?Vk9LaW01N3RLeHdPalRGSFd4TkFGU0tMRjdrZjNGL0plNGF5bjlPRGloQUV1?=
 =?utf-8?B?VFBscDFZOWx0UDA4RjU3MUdJVWZNOWx4ZXRDcVZKeWtuN2dVL3lmenJuK2dI?=
 =?utf-8?B?WDhuMktlUTlRM3Z3YTdzY04rVWhNQWhpWk9zODliMkxUNy9LZWt5VVlnck4y?=
 =?utf-8?B?bExyaGt0WXl2aVlER0VweXZhYTg5cVcyMk96M0pOWmowWUkzZDA0SE42TVVC?=
 =?utf-8?B?UGRNQklscXBxaDhLU3dNSC9WT3JDampNV1Yzd2hPQkd3alJqd2FmeEpFR3Bu?=
 =?utf-8?B?ZHFBU0t0U0d6RWJIMHBaUDhYaFZ6RnZNZG12REJyUytIWjZDQ1RlRldySk5u?=
 =?utf-8?B?RW5Yd1E3b1NBdUZHRkhWZVgwUW4zU1RSL0U1cERHaitGUndBSHg1TU02bjFK?=
 =?utf-8?B?cGxQS0NVcCtMc0xDRGVyR0JWUzY4OFpqMlJLTjQ1VE1Wd1A1U0dVdXA5UDY2?=
 =?utf-8?B?bVBLZHlDZlNlcUlqU1NyaGJ0aTdxR0VBUVc3SUlGZ3hYRkFFNEtDV3c2cnJa?=
 =?utf-8?B?VzgyaDF4UEVlYVpuT09lNEhXOTVzSjJqWEUxNWVWMFB3UlEyWTNMcFcva1hD?=
 =?utf-8?B?Zmh6WGFJLzgxdHZmMjN6M3pPdFY5Q3ZSOVpSRFJHZFJYdnYzaXMzV1gvOEk5?=
 =?utf-8?B?RE5wY0llZFJYb1dlL2RWOS9vcFRBREppTzNXSDFEZHRESHFtVDhXL3ZjamNT?=
 =?utf-8?B?UW84NW42Rkt6dGlYNzZ5VzJKQWZLYjVFcHAvcDNaRkI2MlRXck8xNWUrMEdw?=
 =?utf-8?B?eGhPZ2d0WXFqa3VjMlZJRUZCQVVxTXVwcjFIenB3d2h1MWIwcTJoV2prRUpV?=
 =?utf-8?B?bTNzQStlZnhtdEVZVUZDaDVrZ0Fieng4dFRVdHlZMHBvWHhpalF1MzdkMVpN?=
 =?utf-8?B?ZjdmZm1vSS8yTWF1emtYdE1LRy9lcXo2Y1o3ZlcySXF3YWxBQmhJV0haeDVG?=
 =?utf-8?B?cm1EVjllSXV4WGZ5N2JLN24xMTROTnRldWpOVGpLQVNYL3krbzNxdER5eDlp?=
 =?utf-8?B?eWh2VytRQUMveEp5NWZ3NXNyU25VUTNxSDdWbm1pUkZNLzhHTkE0YlFYVCsx?=
 =?utf-8?B?RkNVU25CK0NWdGVDekxyd2lHUnQ0R2FVYjVIZ3FobVRKVDlINTQvbnFLVG94?=
 =?utf-8?B?cWROVlV4aVFTQ0EwZnNRSDFhM0ZxZkQ4TFJFR2VrbERkMVlqT2szNTdTbGlj?=
 =?utf-8?B?NzNHWFBKVHZZZ3Y0MGZBd2xsVlF4N21wMjEzN2ROeTRtTDJqM2QzL3VEWG5E?=
 =?utf-8?B?Y0lBS0dKWDNMY25SQU5FN3ZBd0J3TllZMDJNMjQvblhqbkppWVRhN2U2dW5j?=
 =?utf-8?B?amVZc3ZQRHZ4MGZsZWU3UGI2NXdEQ2NTT0hMSVNFZXZGMkFETFI0S2ZCWjhE?=
 =?utf-8?B?c1ovSW8vaHgzb1pUeU9xRDNQWTYxakRNZlI2TW9IdUJyMU1EUXdyYUo0MEZ1?=
 =?utf-8?B?MUVuMkxwMGxYVzVST1dXRys5d3ozcmdMQUQwMzQwRmJlaDJkekRicnVoWEpw?=
 =?utf-8?B?Qk5UNFNJalBnVllQNkw1VXE4K1dIQVpISG1DSHRLaU9iOG91OUpBRERQdWhT?=
 =?utf-8?B?ckROUzdxSGhmZXFyRm9UV0dDVW16bXQ2MG1OSldnR1RqQStCdnVHTFk3VGNs?=
 =?utf-8?Q?uzsM6HCXimYY5KS7aoZkceg6O5bgeg=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)(376014)(36860700013)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Apr 2025 18:17:34.3662
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 0e5bf0cc-76c2-482e-015e-08dd76007828
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:
	CH1PEPF0000A346.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY3PR12MB9680

On 2025-04-04 03:34, Jan Beulich wrote:
> On 03.04.2025 23:46, Jason Andryuk wrote:
>> xenstored maps other domains' xenstore pages.  Currently this relies on
>> init-dom0less or xl to seed the grants from Dom0.  With split
>> hardware/control/xenstore domains, this is problematic since we don't
>> want the hardware domain to be able to map other domains' resources
>> without their permission.  Instead have the hypervisor seed the grant
>> table entry for every dom0less domain.  The grant is then accessible as
>> normal.
>>
>> C xenstored uses grants, so it can map the xenstore pages from a
>> non-dom0 xenstore domain.  OCaml xenstored uses foreign mappings, so it
>> can only run from a privileged domain (dom0).
>>
>> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
>> ---
>> v3:
>> Expand commit message about C vs. OCaml xenstored.
>> Remove __init and flags from gnttab_seed_entry()
>> Change frame to uint32_t
>> ASSERT gfn fits in a uint32_t
> 
> Ehem. For this you need to use ...
> 
>> --- a/xen/arch/arm/dom0less-build.c
>> +++ b/xen/arch/arm/dom0less-build.c
>> @@ -788,6 +788,12 @@ static void __init initialize_domU_xenstore(void)
>>           rc = alloc_xenstore_evtchn(d);
>>           if ( rc < 0 )
>>               panic("%pd: Failed to allocate xenstore_evtchn\n", d);
>> +
>> +        if ( gfn != ~0ULL )
>> +        {
>> +            ASSERT(gfn <= UINT_MAX);
> 
> ... UINT32_MAX here. Furthermore may I remind you that INVALID_GFN ==
> UINT32_MAX in 32-bit environments.

Yes, thanks.

> The ~0ULL may also better be UINT64_MAX.

I'll also add

#define XENSTORE_PFN_LATE_ALLOC UINT64_MAX

>> @@ -85,6 +89,9 @@ static inline void grant_table_destroy(struct domain *d) {}
>>   
>>   static inline void grant_table_init_vcpu(struct vcpu *v) {}
>>   
>> +static inline void gnttab_seed_entry(struct domain *d, int idx,
>> +                                     domid_t be_domid, uint32_t frame) {}
> 
> Hmm. While generally I prefer using such wrappers, I wonder if in this
> case it wouldn't end up more clear if a conditional was added in
> initialize_domU_xenstore(). Ideally using IS_ENABLED(), which - aiui -
> would require moving the declaration of the function.

Ok.

Thanks,
Jason


From xen-devel-bounces@lists.xenproject.org Mon Apr 07 18:30:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 18:30:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.940851.1340473 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1rEb-0004nM-K4; Mon, 07 Apr 2025 18:30:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 940851.1340473; Mon, 07 Apr 2025 18:30:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1rEb-0004nF-HJ; Mon, 07 Apr 2025 18:30:13 +0000
Received: by outflank-mailman (input) for mailman id 940851;
 Mon, 07 Apr 2025 18:30: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=xyMQ=WZ=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1u1rEa-0004n9-KX
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 18:30:12 +0000
Received: from NAM04-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam04on20624.outbound.protection.outlook.com
 [2a01:111:f403:2408::624])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 54b75a5c-13de-11f0-9ffb-bf95429c2676;
 Mon, 07 Apr 2025 20:30:08 +0200 (CEST)
Received: from PH8PR12MB7326.namprd12.prod.outlook.com (2603:10b6:510:216::7)
 by MN0PR12MB5932.namprd12.prod.outlook.com (2603:10b6:208:37f::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.32; Mon, 7 Apr
 2025 18:30:02 +0000
Received: from PH8PR12MB7326.namprd12.prod.outlook.com
 ([fe80::6d76:9c33:d230:8264]) by PH8PR12MB7326.namprd12.prod.outlook.com
 ([fe80::6d76:9c33:d230:8264%5]) with mapi id 15.20.8534.045; Mon, 7 Apr 2025
 18:30:02 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 54b75a5c-13de-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=sKYZTkiaCk1aOjX5u/8qpkIGRdIr+0btMWis88vwf9tMfs430/XrjBLu1evkHbffDkl8i8lXjgxZ+fScfwo2R0N9gdJamMMkHS9mKSnlSabYhdI68Qk9CRdFo3mbrSYufUqeXPz0Cx7KzF+C+y4kX1JFrc3A1Ru97pNqhWN+XyoSEYA5c5Zla8rLEpO6nWrDIUA9Wly7fjVt6MOYhKINm+qj9nynqTQgDzhzcc5SO+Fm2r2RACEoLr22FdXnHv6KxfIkI3DbA1eBN22XQ+nN/MhHm9xXFFmoEqTzcVsafFnfjqDbEqSRKZyIBeYkwQzdg+O1meBIupqzxbZtNVfcoQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=jALAJGIJb4PhDswvLljZ9wO+SoS9rpvDC7PTmfM2pBo=;
 b=ynVrOuoaHjzvPX5G5HiQSQgt4Vv4Z7+z1RwR1xHpElHcu6Epq+m1ab6AlmALkK5AT83EG7T2vmCi+9dSwxPh0Tailymyv1Y+iyzJ9v351w6Siv5a4Z2pm9SiwOJhAIanf+3V8AVbgl66UB9HgYe3gKd4p1dyUONbVRdofEGR3LbMBhnRiWzn10a9EkVQyFFc29tqUAgQBLnVEzt6goZhYKpRcwfxNK4zYtc7H5gkaI0sNmW1yQPRM+zZu+SONqmQ3/s/RLgCph9J0atKjCd2WVuDQOBYz/+z2oA16gS8yiCqijP5YWp18YRpR8gD5OcSg0FsRMkZvuwWDxpC8c768w==
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=jALAJGIJb4PhDswvLljZ9wO+SoS9rpvDC7PTmfM2pBo=;
 b=0r17TdqqsJmnZomVQ8T9CjkQFwbsaul21nCZmlnBTswoV+WhfCINvmhsZzESjBplXXG4Sf5MtvMCXpwDm0TmhN4GFNBWsMWcWWm4S5J9iKbJ66paSE57PrJAwdjEYtyTIqHVr95gnRgUh1Gj9MMNLV3U2C0GatRP6XHN65EEW70=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <a82bfb6b-970a-4b24-aaa5-190c2df14592@amd.com>
Date: Mon, 7 Apr 2025 19:29:57 +0100
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 3/3] xen/arm32: mpu: Stubs to build MPU for arm32
Content-Language: en-GB
To: Luca Fancellu <Luca.Fancellu@arm.com>,
 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>
References: <20250403171241.975377-1-ayan.kumar.halder@amd.com>
 <20250403171241.975377-4-ayan.kumar.halder@amd.com>
 <A3945B22-D60E-4E66-B4FE-C0013A532E62@arm.com>
From: Ayan Kumar Halder <ayankuma@amd.com>
In-Reply-To: <A3945B22-D60E-4E66-B4FE-C0013A532E62@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0034.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:151::21) To PH8PR12MB7326.namprd12.prod.outlook.com
 (2603:10b6:510:216::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: PH8PR12MB7326:EE_|MN0PR12MB5932:EE_
X-MS-Office365-Filtering-Correlation-Id: 0fd51004-0664-478d-1c26-08dd76023592
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?MU1mTmdiUkxGTVNIMjg0VmNyd0dGRWM2cVM1YndHUTY3Zy8yTW1oanNyNW9v?=
 =?utf-8?B?elA1bVlmYnk0bEFOQjFoa1BwWDRySkpiRnNHTStaaEFNODBrUEFOMzIrVWtj?=
 =?utf-8?B?N2poQ0w2VzRoWHpuRnkxVHN6UUlHc25zZGNZRFhLUjViM0dTV0tPQVh4eDFQ?=
 =?utf-8?B?R0ZwWnhINXpCb0haZ2REUU5sQ2JsNjFQV1NuUnFXNUNYWE8vWnprempONzVn?=
 =?utf-8?B?czVtRTNHT2pmcDZMYnhTaDFyTTNOY1h3SjI1cXJKb05tc3RCazlsbnZ2S3Rh?=
 =?utf-8?B?TVBqUDJMMkNFNGt4RU1ncjkvMytObWZoSzJzdkdrUEMvaE83Sm0yMU1BMHpy?=
 =?utf-8?B?N0s5ZERNTFZmRHUxSi96NnlQR1BaUnVwRXhleXlobmVuN3dySXA5bUZWWklq?=
 =?utf-8?B?Sk5uZHhKd1MxSDRGbHRzTng1b29YY1g4RlpFTEU5eEZnNUR4N3BuRk02M0xI?=
 =?utf-8?B?Qno3TyswazJOOWkyd3QxYkdUYnhHLys5MjhOaENHbVNzRFF3bGxsdFNQbGFk?=
 =?utf-8?B?Yzd4a01YZ2tJU24zU0pFVjI5YlFCeTUwV1JKUDZwdGl1bTE4bnJja0xsUGFC?=
 =?utf-8?B?VXRSNEF3MlV3ZjhDaURnWEJVZzFFMmJkTjdwekxSWE5JRXFvTTkvTHFqVytk?=
 =?utf-8?B?QVp2VWVMMGZDSW10K1FHam1HR2VaMmNmUzJhM2w3WVJHVEhIaVE5ZkZURFpB?=
 =?utf-8?B?czZlb0ZlOHZCbzFpU1VNckZWdzN5SEkrQmhOSW1QRVRReEYrU1YyTmFPeXFp?=
 =?utf-8?B?RWtWSHdmMHU4WUErTzUrWWRSbEZMY2FuZ3R5Q3drNnFFZ0prTEQ0NSt1cy9E?=
 =?utf-8?B?MWlSa2RHcGhPSXJ2UzZWdVBSbnp3OTVCWldHV2cwcWo1dEZDajJSWU5Gbjd1?=
 =?utf-8?B?ZGcrdkdCZ2o4ZzZPMUJoc3A2bHpvb2FFRG44eWdkenFsdzJQajhFdzBXQ2Ra?=
 =?utf-8?B?TDA4L1I5SEd4SUZUN2FodjFzWFVENTcyV3I0LzJncWxudC9EM3ZianphQ2Uz?=
 =?utf-8?B?MHFKQWpjem8vMS84bkZoWkQvcUtyL1hoYUxkV3dBc3o3cG43bmk1bEt3TlMy?=
 =?utf-8?B?VzgxdW5leGFyQWY4RUV4ZFBSQ2ZKK2ovVGFTTDMxZnZSL29aRUFuTURwSVls?=
 =?utf-8?B?VkgyUjJDYXhYTTIyQ1lVWDlIcTRlZkdzTTJVL04xYzhVRFhObDhSanRIMEFS?=
 =?utf-8?B?WUFmN3FJOFBvQ044R1dVeS9UU1U1aHZEdFRObzk0SE12cExpRU1LTDJoTGFX?=
 =?utf-8?B?a0tWbUhsMHlCdHphOUNudVpha0pkay9vR2tyZTFuVE9hekFJdGgzWE1Ddlhs?=
 =?utf-8?B?Y1RhR0tEdDBPeExjMG15VUFmSE5GUkthNVBQZk1DTlZrTTc4czJyanh4VWNM?=
 =?utf-8?B?QVZUV2lvWUZmeSt4RWFpcEY1cXJQd09WYnJHd3duczg5MEpLa0xFcHA3TFlo?=
 =?utf-8?B?MjJhTTUyUXpSeGRsY1d2VDQ1YWdxUXZsRGh2R2FmQnVUYmwyN09neW5IMEsx?=
 =?utf-8?B?TFpiMkluNUZrUnNRR3o4OXBzYVdmcERaaHc0MTczck85MTRhYjNPR0NDU25X?=
 =?utf-8?B?Yk5HdGhNMWRjWnZGamYyZUxRR28vbXUzUFFlTzRjb0pTQ295WmJzREJwTG9J?=
 =?utf-8?B?cDk3K1Q3dmt3ajdsUUI2RVoxKzNDeDFQbGIvaWN0NituRk94TE41MUt5MGsz?=
 =?utf-8?B?bzcwMEVTVVVXOGpya2ZJbStLMmFvcU5WNU5Qbk8vWlJ1ck5aWVI4SHh2Yjds?=
 =?utf-8?B?N1hLYmd5QTAwWU9Gekc0bDQzK2x4N3QrRlJaSzdCTlhZb3JrRGoxRXJvVk0y?=
 =?utf-8?B?ZUJMUm1iMWQ0ZG9IN2ZCd2I4VWpHMURxZFhqVHBYMlJ5dGtIOE16VGp1dU5h?=
 =?utf-8?B?dlRzWUNzUkhXK0RSYzMxNmtUUW1kRmJKRmRBWFVGeCtXcjVNTVd3VTBUVnpl?=
 =?utf-8?Q?PkRLCVpDAPs=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)(366016)(376014)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?WWtTSy85K0dna0t3ZmJYSWs0aG0vT2RqSlg3TjlOL05jNHdNcUx5Tjg5S3hn?=
 =?utf-8?B?c2Z1dmhnVng3dHF6N2xUOHVURlo0dSt0SjdDaDMwYm5IZ0VPT1EvTkErM3Zo?=
 =?utf-8?B?R0dWdy9mdVZWSkhScXE3SS9TWGpOSHR0YXVEWmt2ZjB6SkhsbGVSUDV4Uk9i?=
 =?utf-8?B?NlZKSmxUbjBEdGpFNEJad3pqWUpUbis2ZVJUTFFHeW43SGg2SVh4UEIzMlVW?=
 =?utf-8?B?ayt3SUppZWZDejlmNnQ4V0FZSzZ0OC9na0dqcE1wTUZiS0RXd3ZOcHg5Zk5M?=
 =?utf-8?B?ZUZNYk1qL0VpT01iZGpSUVdhaTJrcmliMWpsa0FSeDhlSHhqWEJxWUdTSlZV?=
 =?utf-8?B?Q1AyVitHeW5SdEFzWTUvQWlIVkFpQjdueWQ5VjFlUDQvRDd6enhaNmovTm8y?=
 =?utf-8?B?MzFrVFhHa3hxYlVqK0VISnpGNXZvTjZhMzdGS0xGb2FkeDlITSs2SndhRmhz?=
 =?utf-8?B?R01TWVpVYXBLek5SeVI0TmRQVUFUSFZGRjFtalhwRFNuaVh0d1NCZGRSRGt5?=
 =?utf-8?B?cVJSRitWbGRaV2xDUm1YNnI0V2wycURoa0FINlBHbTJYbUUvb1ZBWUJDTjBs?=
 =?utf-8?B?U3VLTmtkL012TlFGZXI0SHVRK2JZY3lEa1NQYVI0b0E3VGN6ajRsTDdNeUI2?=
 =?utf-8?B?Wk11REZyME1Hb2xFU2xScUpsT2tvWkJaTjQ3WHoxdWpzaTl0OEs3NndSYkZC?=
 =?utf-8?B?SHg0Smx6ZUJMUW9HQ2xYUmc0amxZTUxaWU1BZi9xajhNUlZLdkdDU2JFR2wr?=
 =?utf-8?B?aEZjUlRUL1QybzVTTC9LQ2Z5TkZHRVRKb3BVUllXTm04Y2tlUUtpRU5CUStM?=
 =?utf-8?B?Z2VnY3hYcnkwUk9pZ0VySERLcm5YZ0VVQTJWN0JkTVNKQVFpdDBDT25pcHBu?=
 =?utf-8?B?V29rMmZwQjhXWnJuN281OWhXRlo5WE1pS2Z3T3FObGVtMkdvdDRyWWNtL2VQ?=
 =?utf-8?B?MDVCc05ELzF3dzJmbmV4V09janV4a3czZ09mRlM0NFhoeXZjMXU1WkFWTVFF?=
 =?utf-8?B?bWtvRE5uSkw1bEFnOVhmbFpzYjUraGgvWmI0aVQwUVhpR0t0eVZxUTBWVW5V?=
 =?utf-8?B?SjlLVEd4VnNJZ1dwWGxlSWNGck9wbE5tSnQ3Q1pLTEZHb2ZlWWZTMWt6YzYy?=
 =?utf-8?B?UzhQaDFaeXdmK3V2OXJDS2p6N1BrOU9YZ2s2Y2pJempRclZENGc4eWZ1cDVk?=
 =?utf-8?B?ZEhzZnlkTkVBby8wdUFOUUptM0hZMy9ibzlsa1dvNEJUWjJuWFd4dWhySS80?=
 =?utf-8?B?R1dDdjFUT085LzVhcnAvblNNZ21CejlEQ09MNThqZGhJbkZzaVQ1Z1pBZCtv?=
 =?utf-8?B?dm01SjlPVHVwM29uV3NtU0s2eGFiNEQ5c1luVGZMWlFjNnp4SFBNWW8xNTV4?=
 =?utf-8?B?N3NTL3NtNWtaeEo1NUpCZnJoSWhSR0hwQ0hGYXR3aWlwRFZhdFpkQzEwK0JW?=
 =?utf-8?B?bjY1R0p5bE5HMldZdkZZeWRZOWh2QW9tcWVkVURYUng0Z2I5TW9tb2VWTVNl?=
 =?utf-8?B?QldiaUN4T0xSOWliZzRIazFuQjIyWW92ODJ2MlJVanllSFJJVzFtd0xuQkRy?=
 =?utf-8?B?aDB0ZDl4M04yMGlMTWVkbFkzRzJFaVB4SnNXc2t0MkpzTFJmK01pK3hSWEhB?=
 =?utf-8?B?TzBmanRPYUVnUkFxaklEWTFhWmRzclRDbHkzRU1sZUx4T3Vlc2xHcjJ0L1JP?=
 =?utf-8?B?eDREU29mRElCZzd3ZFZycEI3TCs5SHA3VTFrYlRyU29RQ1FQT3JURVVZU2tX?=
 =?utf-8?B?SUlvblhtb0puMHFvQzdpQW1SemJONW1UQ0RBaks4QVZjYk40WFRzZmRvZklu?=
 =?utf-8?B?eFdrNkJtMXh5blBKRjlKbVlMZVlEMHdrRlhyTXRNZXl1dFFPdm03SnJIRzl6?=
 =?utf-8?B?dGtCRzZqcUw0UkdwM0ZpWnhrNlI5OFQxSWc5ZzY1enBHQ3FNbXcwdXJxdFdw?=
 =?utf-8?B?dUh5Y0xtM0tnS0Vsb0hKRkxFTVUzaUZoeW1XajVsZlVYbHB2c1NzRzlva2Fa?=
 =?utf-8?B?YzBPWkJSQ2tJU0M3MVNOTEJPMXNuZSthS0NISlVMTHJ4ekFVNVpud1pnN2dw?=
 =?utf-8?B?bHlBRVIrQzdYQXQvNWRBVXhXMFBveWkxZEZ4bXdjMWZ2VGliRFlIa21BTDBL?=
 =?utf-8?Q?46+gTXz8JWXXsKMo/guLjIFH0?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0fd51004-0664-478d-1c26-08dd76023592
X-MS-Exchange-CrossTenant-AuthSource: PH8PR12MB7326.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Apr 2025 18:30:02.0227
 (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: HcSHy0g68IpTBKwC1H5zEv07wUgUoVoLOLXrbptg9i0gDH7vs7dfCuDdamguflP2tl76VrsbXAEHwwdK9wg4lg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN0PR12MB5932


On 04/04/2025 10:11, Luca Fancellu wrote:
> Hi Ayan,
Hi Luca,
>
>> On 3 Apr 2025, at 18:12, Ayan Kumar Halder <ayan.kumar.halder@amd.com> wrote:
>>
>> Add stubs to enable compilation
>>
>> Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
>> ---
>>
>> Changes from :-
>>
>> v1, v2 -
>> 1. New patch introduced in v3.
>> 2. Should be applied on top of
>> https://patchwork.kernel.org/project/xen-devel/cover/20250316192445.2376484-1-luca.fancellu@arm.com/
>>
>> v3 -
>> 1. Add stubs for map_domain_page() and similar functions.
>>
>> 2. 'BUG_ON("unimplemented")' is kept in all the stubs.
>>
>> xen/arch/arm/arm32/mpu/Makefile  |  2 ++
>> xen/arch/arm/arm32/mpu/p2m.c     | 18 ++++++++++++++
>> xen/arch/arm/arm32/mpu/smpboot.c | 23 ++++++++++++++++++
>> xen/arch/arm/include/asm/mm.h    |  5 ++++
>> xen/arch/arm/mpu/Makefile        |  1 +
>> xen/arch/arm/mpu/domain_page.c   | 40 ++++++++++++++++++++++++++++++++
>> 6 files changed, 89 insertions(+)
>> create mode 100644 xen/arch/arm/arm32/mpu/p2m.c
>> create mode 100644 xen/arch/arm/arm32/mpu/smpboot.c
>> create mode 100644 xen/arch/arm/mpu/domain_page.c
>>
>>
>> diff --git a/xen/arch/arm/include/asm/mm.h b/xen/arch/arm/include/asm/mm.h
>> index fbffaccef4..2a52cf530f 100644
>> --- a/xen/arch/arm/include/asm/mm.h
>> +++ b/xen/arch/arm/include/asm/mm.h
>> @@ -171,12 +171,17 @@ struct page_info
>> #define PGC_need_scrub    PGC_allocated
>>
>> #ifdef CONFIG_ARM_32
>> +#ifdef CONFIG_MPU
>> +#define is_xen_heap_page(page) ({ BUG_ON("unimplemented"); false; })
>> +#define is_xen_heap_mfn(mfn) ({ BUG_ON("unimplemented"); false; })
>> +#else /* !CONFIG_MPU */
>> #define is_xen_heap_page(page) is_xen_heap_mfn(page_to_mfn(page))
>> #define is_xen_heap_mfn(mfn) ({                                 \
>>      unsigned long mfn_ = mfn_x(mfn);                            \
>>      (mfn_ >= mfn_x(directmap_mfn_start) &&                      \
>>       mfn_ < mfn_x(directmap_mfn_end));                          \
>> })
>> +#endif /* !CONFIG_MPU */
>> #else
>> #define is_xen_heap_page(page) ((page)->count_info & PGC_xen_heap)
>> #define is_xen_heap_mfn(mfn) \
> I’ve had a look on this, if we want to get rid of some #ifdef we could do this:
>
> diff --git a/xen/arch/arm/include/asm/mm.h b/xen/arch/arm/include/asm/mm.h
> index 2a52cf530f25..5b67c0f8bb1c 100644
> --- a/xen/arch/arm/include/asm/mm.h
> +++ b/xen/arch/arm/include/asm/mm.h
> @@ -170,19 +170,7 @@ struct page_info
>   #define _PGC_need_scrub   _PGC_allocated
>   #define PGC_need_scrub    PGC_allocated
>   
> -#ifdef CONFIG_ARM_32
> -#ifdef CONFIG_MPU
> -#define is_xen_heap_page(page) ({ BUG_ON("unimplemented"); false; })
> -#define is_xen_heap_mfn(mfn) ({ BUG_ON("unimplemented"); false; })
> -#else /* !CONFIG_MPU */
> -#define is_xen_heap_page(page) is_xen_heap_mfn(page_to_mfn(page))
> -#define is_xen_heap_mfn(mfn) ({                                 \
> -    unsigned long mfn_ = mfn_x(mfn);                            \
> -    (mfn_ >= mfn_x(directmap_mfn_start) &&                      \
> -     mfn_ < mfn_x(directmap_mfn_end));                          \
> -})
> -#endif /* !CONFIG_MPU */
> -#else
> +#ifdef CONFIG_ARM_64
>   #define is_xen_heap_page(page) ((page)->count_info & PGC_xen_heap)
>   #define is_xen_heap_mfn(mfn) \
>       (mfn_valid(mfn) && is_xen_heap_page(mfn_to_page(mfn)))
> diff --git a/xen/arch/arm/include/asm/mmu/mm.h b/xen/arch/arm/include/asm/mmu/mm.h
> index caba987edc85..9b98d12b076b 100644
> --- a/xen/arch/arm/include/asm/mmu/mm.h
> +++ b/xen/arch/arm/include/asm/mmu/mm.h
> @@ -21,6 +21,15 @@ extern unsigned long directmap_base_pdx;
>   
>   #define frame_table ((struct page_info *)FRAMETABLE_VIRT_START)
>   
> +#ifdef CONFIG_ARM_32
> +#define is_xen_heap_page(page) is_xen_heap_mfn(page_to_mfn(page))
> +#define is_xen_heap_mfn(mfn) ({                                 \
> +    unsigned long mfn_ = mfn_x(mfn);                            \
> +    (mfn_ >= mfn_x(directmap_mfn_start) &&                      \
> +     mfn_ < mfn_x(directmap_mfn_end));                          \
> +})
> +#endif
> +
>   #define virt_to_maddr(va) ({                                                   \
>       vaddr_t va_ = (vaddr_t)(va);                                               \
>       (paddr_t)((va_to_par(va_) & PADDR_MASK & PAGE_MASK) | (va_ & ~PAGE_MASK)); \
> diff --git a/xen/arch/arm/include/asm/mpu/mm.h b/xen/arch/arm/include/asm/mpu/mm.h
> index 86f33d9836b7..bfd840fa5d31 100644
> --- a/xen/arch/arm/include/asm/mpu/mm.h
> +++ b/xen/arch/arm/include/asm/mpu/mm.h
> @@ -13,6 +13,11 @@ extern struct page_info *frame_table;
>   
>   #define virt_to_maddr(va) ((paddr_t)((vaddr_t)(va) & PADDR_MASK))
>   
> +#ifdef CONFIG_ARM_32
> +#define is_xen_heap_page(page) ({ BUG_ON("unimplemented"); false; })
> +#define is_xen_heap_mfn(mfn) ({ BUG_ON("unimplemented"); false; })
> +#endif
> +
>   /* On MPU systems there is no translation, ma == va. */
>   static inline void *maddr_to_virt(paddr_t ma)
>   {
>
> But feel free to ignore if it’s not desirable.
Actually, makes sense. I have included this in my v5.
>
>
>> diff --git a/xen/arch/arm/mpu/Makefile b/xen/arch/arm/mpu/Makefile
>> index 21bbc517b5..ff221011d5 100644
>> --- a/xen/arch/arm/mpu/Makefile
>> +++ b/xen/arch/arm/mpu/Makefile
>> @@ -2,3 +2,4 @@ obj-y += mm.o
>> obj-y += p2m.o
>> obj-y += setup.init.o
>> obj-y += vmap.o
>> +obj-$(CONFIG_ARM_32) += domain_page.o
>> diff --git a/xen/arch/arm/mpu/domain_page.c b/xen/arch/arm/mpu/domain_page.c
>> new file mode 100644
>> index 0000000000..b9ebb03d67
>> --- /dev/null
>> +++ b/xen/arch/arm/mpu/domain_page.c
>> @@ -0,0 +1,40 @@
>> +/* SPDX-License-Identifier: GPL-2.0-or-later */
>> +#include <xen/domain_page.h>
>> +
>> +void *map_domain_page_global(mfn_t mfn)
>> +{
>> +    BUG_ON("unimplemented");
>> +    return (void*)0;
> return NULL? here and below
>
>> +}
>> +
>> +/* Map a page of domheap memory */
>> +void *map_domain_page(mfn_t mfn)
>> +{
>> +    BUG_ON("unimplemented");
>> +    return (void*)0;
>> +}
>> +
>> +/* Release a mapping taken with map_domain_page() */
>> +void unmap_domain_page(const void *ptr)
>> +{
>> +    BUG_ON("unimplemented");
>> +}
>> +
>> +mfn_t domain_page_map_to_mfn(const void *ptr)
>> +{
>> +    BUG_ON("unimplemented");
> Not really necessary, but if you want: return INVALID_MFN;

The function is still technically unimplemented, so I will keep that and 
add return INVALID_MFN;

The rest of your suggestions are perfect. :)

I have incorporated them in v5.

- Ayan

>
>> +}
>> +
>> +void unmap_domain_page_global(const void *va)
>> +{
>> +    BUG_ON("unimplemented");
>> +}
>> +
>> +/*
>> + * Local variables:
>> + * mode: C
>> + * c-file-style: "BSD"
>> + * c-basic-offset: 4
>> + * indent-tabs-mode: nil
>> + * End:
>> + */
>> -- 
>> 2.25.1
>>
>>


From xen-devel-bounces@lists.xenproject.org Mon Apr 07 18:35:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 18:35:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.940867.1340484 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1rK3-00074M-AY; Mon, 07 Apr 2025 18:35:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 940867.1340484; Mon, 07 Apr 2025 18:35: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 1u1rK3-00074F-7v; Mon, 07 Apr 2025 18:35:51 +0000
Received: by outflank-mailman (input) for mailman id 940867;
 Mon, 07 Apr 2025 18:35: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=Rklv=WZ=linux-foundation.org=akpm@srs-se1.protection.inumbo.net>)
 id 1u1rK1-000749-C5
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 18:35:49 +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 1e58b10f-13df-11f0-9ffb-bf95429c2676;
 Mon, 07 Apr 2025 20:35:46 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id DF9495C276A;
 Mon,  7 Apr 2025 18:33:27 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3B551C4CEDD;
 Mon,  7 Apr 2025 18:35: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: 1e58b10f-13df-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linux-foundation.org;
	s=korg; t=1744050944;
	bh=QiTncCnd55Ia4eac1kyaB9blDFvntz5XPVt6W64q1n0=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=kwvaeD/akigjGI7ZXDY52hZRNE3FRFEN6Uc6iHtJlTKxoE0UMkjLxBOD/fgvDHGq1
	 W4Ni/q9ZjLctOHi6rmPtAnUuHHHe57o4rpfiv0IL8Pp6Z02ulY8lFGXBs6yBBc7eYu
	 XifDovhU5NidAqljsBlmq7svSzYrmQnQBYrtwkdo=
Date: Mon, 7 Apr 2025 11:35:43 -0700
From: Andrew Morton <akpm@linux-foundation.org>
To: Alexander Gordeev <agordeev@linux.ibm.com>
Cc: Andrey Ryabinin <ryabinin.a.a@gmail.com>, Hugh Dickins
 <hughd@google.com>, Nicholas Piggin <npiggin@gmail.com>, Guenter Roeck
 <linux@roeck-us.net>, Juergen Gross <jgross@suse.com>, Jeremy Fitzhardinge
 <jeremy@goop.org>, linux-kernel@vger.kernel.org, linux-mm@kvack.org,
 kasan-dev@googlegroups.com, sparclinux@vger.kernel.org,
 xen-devel@lists.xenproject.org, linuxppc-dev@lists.ozlabs.org,
 linux-s390@vger.kernel.org
Subject: Re: [PATCH v1 0/4] mm: Fix apply_to_pte_range() vs lazy MMU mode
Message-Id: <20250407113543.6a43461e397d58471e407323@linux-foundation.org>
In-Reply-To: <cover.1744037648.git.agordeev@linux.ibm.com>
References: <cover.1744037648.git.agordeev@linux.ibm.com>
X-Mailer: Sylpheed 3.8.0beta1 (GTK+ 2.24.33; x86_64-pc-linux-gnu)
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit

On Mon,  7 Apr 2025 17:11:26 +0200 Alexander Gordeev <agordeev@linux.ibm.com> wrote:

> This series is an attempt to fix the violation of lazy MMU mode context
> requirement as described for arch_enter_lazy_mmu_mode():
> 
>     This mode can only be entered and left under the protection of
>     the page table locks for all page tables which may be modified.
> 
> On s390 if I make arch_enter_lazy_mmu_mode() -> preempt_enable() and
> arch_leave_lazy_mmu_mode() -> preempt_disable() I am getting this:
>
> ...
>

Could you please reorganize this into two series?  One series which
should be fast-tracked into 6.15-rcX and one series for 6.16-rc1?

And in the first series, please suggest whether its patches should be
backported into -stable and see if we can come up with suitable Fixes:
targets?

Thanks.


From xen-devel-bounces@lists.xenproject.org Mon Apr 07 18:45:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 18:45:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.940880.1340493 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1rSs-0001sI-3t; Mon, 07 Apr 2025 18:44:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 940880.1340493; Mon, 07 Apr 2025 18:44: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 1u1rSs-0001sB-1H; Mon, 07 Apr 2025 18:44:58 +0000
Received: by outflank-mailman (input) for mailman id 940880;
 Mon, 07 Apr 2025 18:44:55 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=xyMQ=WZ=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1u1rSp-0001s5-Te
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 18:44:55 +0000
Received: from NAM04-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam04on20614.outbound.protection.outlook.com
 [2a01:111:f403:2409::614])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 640a18f8-13e0-11f0-9ffb-bf95429c2676;
 Mon, 07 Apr 2025 20:44:53 +0200 (CEST)
Received: from BLAPR05CA0047.namprd05.prod.outlook.com (2603:10b6:208:335::28)
 by CH3PR12MB8308.namprd12.prod.outlook.com (2603:10b6:610:131::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.29; Mon, 7 Apr
 2025 18:44:47 +0000
Received: from BL6PEPF0001AB59.namprd02.prod.outlook.com
 (2603:10b6:208:335:cafe::6a) by BLAPR05CA0047.outlook.office365.com
 (2603:10b6:208:335::28) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.11 via Frontend Transport; Mon,
 7 Apr 2025 18:44:47 +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.8606.22 via Frontend Transport; Mon, 7 Apr 2025 18:44:46 +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, 7 Apr
 2025 13:44:46 -0500
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; Mon, 7 Apr 2025 13:44:45 -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: 640a18f8-13e0-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=d6IBFSfv6v0mBbA5Sbf04YtbHd28hFElW6WjBujFukneRCzDrLQUjQp+DLScIs6wc4cCBOlmbT1Uz/JbzL7ryxBORUruEiocRt8C05DyFUYV6kusQgAubldYlyEGdlkWOjECZ8Wk3ZuOJIf+eTOwoch5MOMTiH16fSQ6dpGLvGH5HpK81U/cnI0l1ZyvWSMbX2XZlh7WRgkKazLwJNXTZYosmCArP5eDBQyjoYAZhamX4q3DDpx0D+o9+Nu+pwN72BPwnH9EbgdQYJbftOi0QNfI/is1bd6Kd4qHkACelxXS21B81hBjGIouEIY4hrP0OAk4Kt7RLYVVBxj5Neg/ww==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=O/Iqka0dcv9RhvfMjDP4w03bYWU+ZYL+FD1BKc/UdKc=;
 b=u0PWqBoZ2EqGRq56BB49eXrOeyh5MnhpLp7AWTR2mWqGpjk40FlaTHTWwxHUpSxhCm7ChfMNgXCMY0eOCjsVbWP4Vkkh6DdQNBf/0tGQANa3NhibTVzDZjfH4twVo2OkTnhxf5yFOZix5w5vsyXj2dTlVDbcmnMFLnU5iB2i+nnPYSoesBOhOnBmFGZ9XS6INIZQOOza4Ru3VDG7UhtdbhEfncnlCo/g4thd+ais/32eKYYiHNPgfWHpl7gFenFcOqxcs4uLZbl+QKRB+kPUcFexQdSXCLOa2A0A3I73nrtU+nvDNTzQlcPz8xa4BAp5xqqR8PbWGF/cqhi7ClBtuQ==
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=O/Iqka0dcv9RhvfMjDP4w03bYWU+ZYL+FD1BKc/UdKc=;
 b=gVRloLOYtEaSEKA/b1/AddoTFZ36mlGZcxqGJGqLfwO4TqJ4kcxCvVmAyDAXGsXQ1P01UtH/6qzOtsncvJyY2ls9wGSeqclyseluKXafXR3HVVx9tMEt4EDAEdGpu32bR4NmGnISZBXU49zztniCRuXLVayThYJRF+lH2tVRUIY=
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 0/3] Enable early bootup of Armv8-R AArch32 systems
Date: Mon, 7 Apr 2025 19:44:40 +0100
Message-ID: <20250407184443.1790995-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 (SATLEXMB04.amd.com: ayan.kumar.halder@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL6PEPF0001AB59:EE_|CH3PR12MB8308:EE_
X-MS-Office365-Filtering-Correlation-Id: cfedbdc7-5628-4f2f-83d4-08dd76044535
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|82310400026|1800799024|376014;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?Zt+psF446hRrffNDsVveVkD768Hk45mBWaIWp12zA/ys0h/rp/Z5jbg6GiPM?=
 =?us-ascii?Q?JnD5FJHWC/yMgctoMIg6w0fj7ipI+1lUnM5g3Ydc8DMUOESrS41RLsRnOo+f?=
 =?us-ascii?Q?xFcETo3Jye0z6Bk3baYHv3gxQoxuBj31DSxrWzTC86flCj272gwzU/w/t3zT?=
 =?us-ascii?Q?/xIFQTNyZYbeWvIdymgZsQg3Mg6WzkQGmU6IFXW1URT7Z+uRvSIKKoNyIPnm?=
 =?us-ascii?Q?bmqRg2rwFQEr1qF2odeUgFmJks1vzGUh4eS6p9qqbQJUdf35cCV1MTObYyrT?=
 =?us-ascii?Q?U8PFj3NFa+s09yQ7Ye7SiqAVVmTm+g4zf50b4pWVP3k95CL6pB5TdDHKCvOI?=
 =?us-ascii?Q?UmhTLVsTaB3q8dTgN6jr64YJUatIeqk+Xv7mRe3Nbv+oowMQ9UjfbQPkPH98?=
 =?us-ascii?Q?il0soxZmK1/fMG3iBRmseLZRx5MlV10j0dW1vfQrogIGT4gmn6Xx4rU3XpVK?=
 =?us-ascii?Q?3L1mVKd9wKeGQumLWOUo36L1nWn3HWrmlTbl3C1z50n9xV+WT+FR8gyfsI1a?=
 =?us-ascii?Q?bZFCdG/U1t/CkDaqS7JuzssZeQTrzIDIJdAlSmn+T/iLsl4ASCSmyMkzs4IF?=
 =?us-ascii?Q?YP84yqS0qaZ0AIcKk29m8zyqyxNacrf8nZJHFi9Qyf3oqylJun+IfUQmFaPw?=
 =?us-ascii?Q?bSJH/JizgSR/tHsM3AHG6vpFz4E5OT5uG3T2KMNBq8LWQDCDmsN5iJlLzHfw?=
 =?us-ascii?Q?7jn1NKc8SoXbz3kDiZuO9RUPtvfdon+tjBuO4SIkDrseN5OBkuvDxTAt0zGQ?=
 =?us-ascii?Q?4/8tFQly4tMGQSPKO5Pxa/PcROLmeetL80qc2SKmblGm3zKHY5QrEqE0Xm0o?=
 =?us-ascii?Q?+wkA1oS2sNK1NrHr1HHbezFgFFgSkl2xaq13387Gpv1J25iYgOartuc2RYKd?=
 =?us-ascii?Q?bT3oZY63cM8PiPCvJP8jnBVUBgEx7OUnoqUSn/qI537lqYQCYGZG1s7zg5+p?=
 =?us-ascii?Q?sb7kI2IA5DR+De7Ep50Aj6lhZV+U9CmbxCy+9/HpkLKeEIrOHcu8/bNhzay3?=
 =?us-ascii?Q?+mJcLsZbjAa66sXiFacZgpefQCGdUuO9j3TAWI7MmxEZxN7t/RI8IolrkIyM?=
 =?us-ascii?Q?kwqMKvC4AieuAptzCSCAo2T95mhoFl/NmrRIKIsgakUeIxq2pz68kkg4S0yv?=
 =?us-ascii?Q?w8tXpFAmBXZBrHuQZbU1BJn9Uo5OTmhwrO+WEnf8U4BucAnkWdSjdJJA9mEk?=
 =?us-ascii?Q?QYQmIH62SUvvcpB7WR1AW3YHaCl4nU8luzcDbXylgxYZ1uFJPr0EJyZk/pSg?=
 =?us-ascii?Q?ADGOYEztFUWB4zL00L5xufZS0RzDQaUTCrLENqe/03OVCuO+dBpLwAno73D+?=
 =?us-ascii?Q?AyDJ0iwSt0hgcQi8VSz+rCaXVAxaIx0y1wnR6rG1SnJcTL5LOyvEHjusfIyF?=
 =?us-ascii?Q?0uvuenehqSyx1GgMg1aCA4OCMHt4hUeGkSRQBfhUGrdHgyxGBQCyqAEANUbR?=
 =?us-ascii?Q?a4aD05N9CLOHUYPrzcxqAExqlgi9AVzyJN1BBbjzpuJM60P1I2S21r+G/0tb?=
 =?us-ascii?Q?QrtcobHUKnDqhUCYO8MEIKHLD0Kc7GywFyFQ?=
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: 07 Apr 2025 18:44:46.9247
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: cfedbdc7-5628-4f2f-83d4-08dd76044535
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: CH3PR12MB8308

Enable early booting of Armv8-R AArch32 based systems.

Ayan Kumar Halder (3):
  xen/arm: Move some of the functions to common file
  xen/arm32: Create the same boot-time MPU regions as arm64
  xen/arm32: mpu: Stubs to build MPU for arm32

 xen/arch/arm/arm32/Makefile              |   1 +
 xen/arch/arm/arm32/mpu/Makefile          |   3 +
 xen/arch/arm/arm32/mpu/head.S            | 101 +++++++++++++++++++++++
 xen/arch/arm/arm32/mpu/p2m.c             |  18 ++++
 xen/arch/arm/arm32/mpu/smpboot.c         |  23 ++++++
 xen/arch/arm/arm64/mpu/head.S            |  78 +----------------
 xen/arch/arm/include/asm/arm32/sysregs.h |   7 ++
 xen/arch/arm/include/asm/arm64/sysregs.h |  11 +++
 xen/arch/arm/include/asm/cpregs.h        |   4 +
 xen/arch/arm/include/asm/mm.h            |   9 +-
 xen/arch/arm/include/asm/mmu/mm.h        |   9 ++
 xen/arch/arm/include/asm/mpu/common.inc  |  79 ++++++++++++++++++
 xen/arch/arm/include/asm/mpu/cpregs.h    |  24 ++++++
 xen/arch/arm/include/asm/mpu/mm.h        |   5 ++
 xen/arch/arm/mpu/Makefile                |   1 +
 xen/arch/arm/mpu/domain_page.c           |  41 +++++++++
 16 files changed, 329 insertions(+), 85 deletions(-)
 create mode 100644 xen/arch/arm/arm32/mpu/Makefile
 create mode 100644 xen/arch/arm/arm32/mpu/head.S
 create mode 100644 xen/arch/arm/arm32/mpu/p2m.c
 create mode 100644 xen/arch/arm/arm32/mpu/smpboot.c
 create mode 100644 xen/arch/arm/include/asm/mpu/common.inc
 create mode 100644 xen/arch/arm/include/asm/mpu/cpregs.h
 create mode 100644 xen/arch/arm/mpu/domain_page.c

-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Mon Apr 07 18:45:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 18:45:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.940881.1340503 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1rSw-00027J-BU; Mon, 07 Apr 2025 18:45:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 940881.1340503; Mon, 07 Apr 2025 18:45: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 1u1rSw-00027C-8M; Mon, 07 Apr 2025 18:45:02 +0000
Received: by outflank-mailman (input) for mailman id 940881;
 Mon, 07 Apr 2025 18:45: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=xyMQ=WZ=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1u1rSv-00026s-HX
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 18:45:01 +0000
Received: from NAM12-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam12on20611.outbound.protection.outlook.com
 [2a01:111:f403:200a::611])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 67accbaa-13e0-11f0-9eaa-5ba50f476ded;
 Mon, 07 Apr 2025 20:45:00 +0200 (CEST)
Received: from MN2PR18CA0001.namprd18.prod.outlook.com (2603:10b6:208:23c::6)
 by CY8PR12MB7315.namprd12.prod.outlook.com (2603:10b6:930:51::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.33; Mon, 7 Apr
 2025 18:44:53 +0000
Received: from BN3PEPF0000B076.namprd04.prod.outlook.com
 (2603:10b6:208:23c:cafe::46) by MN2PR18CA0001.outlook.office365.com
 (2603:10b6:208:23c::6) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8606.34 via Frontend Transport; Mon,
 7 Apr 2025 18:44:52 +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.8606.22 via Frontend Transport; Mon, 7 Apr 2025 18:44:52 +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, 7 Apr
 2025 13:44:51 -0500
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; Mon, 7 Apr 2025 13:44:51 -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: 67accbaa-13e0-11f0-9eaa-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=yxiZWvyc/+mbKSjL2NkA8tfFNRVe2gNwvgeyCFIfxHX58kIQtGi96C/BZ3l88isvUPbVqVF7fwhXnOtbnw4S3XDT5mZCQkevNB1vhDExbjha/Z+0QYgL4oC3+AG2jjU5BFqbE0wl+xBP1kON2aDqJL1r+VBqkl1j9vZ+7FaY56Ch3HdX25ovTKxQcnn2BZLtarRHoQB+TPKuN3i7XA+xWs65Y9rXesS5sPvazgZ7b4zCna7CYQlRJ3OCw1Vs/Cq7mx2rHAEM/IHKUw5ASKPjWA9k43Sz2iR/830GeZdWTrmLkTW2bkMuZ3wDrdqTzNDTpdbfu5Hs+KG+B1nbTMIE3g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=uIKmsZbFhOImZaTMUt4D4KmTXjxM7kmTBV9rxoW2Dnk=;
 b=ngCgqafZ68vzw5QUiHCYCi+QLAOqz+p0r4T09gMxRokL7Kiaxv4cSuiY67GeAtjL4jB/hA1npxDyFPv2mJjp54OmbkEqdUl54X2Rsd5ix8QwFZlhJQSLc/3PorLeK/3izgm4lOP2i+25g7jXObUEBv7c7buXFLGWS9CFL23LH+jSpkOyy7zpiOJ2R6LOWJLTGbw2YqUtLI8aH+CREykYoQLEaPftz8ap1Uq20CxUblm2AjadQ/189llc9g5HRrDwOnMsxfm6Am4lgCReAgaUnx3YGNPxGlqYCWOg8ZXbZWQfKpFk1F0uoXAIIuEcczWhS6BvcnFhB5FZgjB5NlEH7g==
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=uIKmsZbFhOImZaTMUt4D4KmTXjxM7kmTBV9rxoW2Dnk=;
 b=TI14bYVVDKhaUGOzUA4USjlBdVqQb+VehopcN4/Kcpmt1aKQ5sSIFjCrKEDCHeGo5XuGZhAWYtlhMwWd5/8o3pJEZcxl6EgzWO50ULXoOnek6WZfmMucO+VoQfE0Ea3jxVOnJdbpiAhXLcA9d2nnnE5eS0Lb8qy+2zFYilStHnw=
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 v5 2/3] xen/arm32: Create the same boot-time MPU regions as arm64
Date: Mon, 7 Apr 2025 19:44:42 +0100
Message-ID: <20250407184443.1790995-3-ayan.kumar.halder@amd.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20250407184443.1790995-1-ayan.kumar.halder@amd.com>
References: <20250407184443.1790995-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: BN3PEPF0000B076:EE_|CY8PR12MB7315:EE_
X-MS-Office365-Filtering-Correlation-Id: ce74ec89-9b62-48eb-658d-08dd76044868
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|376014|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?wr64JjUUN4jmxqpVvLq6G8R0p+cFgyVn9ppz7HyR/lZcGv6lmG7CUQaZ3Eyt?=
 =?us-ascii?Q?ESnvhq9FlnBVaxQgMvaEFe/iN3N0AO68juJuAGB5O2So6b/7b0Vt4oJrsO22?=
 =?us-ascii?Q?z6IopH879MwxmMvBs0h5h+KNC42hPaG9E15opPaS6S5o359CNkkPY/5YHBpj?=
 =?us-ascii?Q?GS2oR3X8/fhGd441NSECU7LbOTeu+H0cfsdIpbwuhmoPvg2rcsHmXrfX5ZaJ?=
 =?us-ascii?Q?005/ZTyjFII9YJPCSCAOOnRUw7FBVphAhBLdd5A6D0STbscmtg/1jBsfTSEI?=
 =?us-ascii?Q?J9/GnX3RKWM0jAf19OLDkqpguwzLtujH3J1a+dVAiDnH0ZUAD9FHTJSzXQ56?=
 =?us-ascii?Q?CKiF2a3sIaof1Fg3S/o1OYvMVHQjgtPBVu+YGEADNX3oROjW+/F0MTMfzTXe?=
 =?us-ascii?Q?gep3JBJyxsm6zXGpLet2gG4ELb+YTCDr+YThBZHBF2H00yyVLKNXRR3/ecfU?=
 =?us-ascii?Q?KIsB51yxbnJuF4/lMA+Q+UTi3baC0swTh/2o8DWpfAh4LsbMB6KPdmhq+0W/?=
 =?us-ascii?Q?A1Y0ntjm4AWDb+alv0WcCuGLr/bPGVg8jEiemu2g3aMCrI3bAMU/V4sE898s?=
 =?us-ascii?Q?pi+Xoe32rbXWc3o6XPO+BT+1ThI2jeW+i2N3or0JtgEHoL64gNjY3NtDP2pn?=
 =?us-ascii?Q?C869C4GUOo2F159NNfeO5By0uRQ9axe6Et9U/ejBHbZL0z3T8T4Q73mYiPZt?=
 =?us-ascii?Q?RtreAN4nMkCjTOKE/K5l9vLabzBIZ0QGRxpsjAyAT5xl5A3EQGozPHBXgDBG?=
 =?us-ascii?Q?VRzJ7X/j8sagf3dTGe7p2ScQlp8ngq5bShKf4gQxlUk6z403jhaUgKeiijCv?=
 =?us-ascii?Q?DlMMlhlLMnh9rfwfn5DHx/fReLJtqJfY1VIarxqoTRfBaRTJzHjyRtA9LO4w?=
 =?us-ascii?Q?zcaDcAIrg5mrbll15BRxuxrjCoIoHqgszOvMug3Gr6nvC2QTQO2VkhZ78KTg?=
 =?us-ascii?Q?VrdvyyTCzbAUtwNEjWPJoq6c5PCTcrvJff3gF4om0hAbyFQAEdL3P1Hkep3e?=
 =?us-ascii?Q?r8hTmV6S+oFchNm7VS1iACjKetHLHhteq6WLDv71YRuFs79FmmQd/Rbc0q8K?=
 =?us-ascii?Q?1r33bPXpvUDqvmrrumU/TGsQaK3vsYoB+hQoqaOiFpnMWShh5BMOHA/dbvD7?=
 =?us-ascii?Q?oxxDPToz4sBjPTybRuUx5MOtVhcnvSUIr0Ppp1WnwBZUquwHD1blCicsupSH?=
 =?us-ascii?Q?6MOa/zr0AWrSbN7it5LO+5YMBI6gjpE7AKWM931VjK/bcYEo511zs0SiJtyA?=
 =?us-ascii?Q?pX1YSFZqvfVR9OmDeRFYmyrercUO0wFw+1lQTtj5ZBHjqYZvzuNdSWxCIW5l?=
 =?us-ascii?Q?HJIz/HVTB9qg7z/GiAlaJVTo9/tg6rDFKUC4vnUCVZ0L7eXOfmLX0oNQajJB?=
 =?us-ascii?Q?1Xc0sBCnPLbTr5xWegoFK2nvzyoElSK/XnVXq9xtIVtF+wUwJ5CQgpDOamcC?=
 =?us-ascii?Q?ri80KniA4dwPTbh+DMoHz3xK31ozXALLqUP9fsRJWTjpIjLcC8zuqA=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)(376014)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Apr 2025 18:44:52.2757
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: ce74ec89-9b62-48eb-658d-08dd76044868
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: CY8PR12MB7315

We have created the same boot-time MPU protection regions as Armv8-R AArch64.
Also, we have defined *_PRBAR macros for arm32. The only difference from
arm64 is that XN is 1-bit for arm32.
The macros have been defined in mpu/cpregs.h.

Also defined WRITE_SYSREG_ASM() to write to system registers in assembly.

Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
---
Changes from

v1 -

1. enable_mpu() now sets HMAIR{0,1} registers. This is similar to what is
being done in enable_mmu(). All the mm related configurations happen in this
function.

2. Fixed some typos. 

v2 -
1. Include the common prepare_xen_region.inc in head.S.

2. Define LOAD_SYSREG()/STORE_SYSREG() for arm32.

v3 -
1. Rename STORE_SYSREG() as WRITE_SYSREG_ASM()

2. enable_boot_cpu_mm() is defined in head.S

v4 -
1. *_PRBAR is moved to arm32/sysregs.h.

2. MPU specific CP15 system registers are defined in mpu/cpregs.h. 

 xen/arch/arm/arm32/Makefile              |   1 +
 xen/arch/arm/arm32/mpu/Makefile          |   1 +
 xen/arch/arm/arm32/mpu/head.S            | 101 +++++++++++++++++++++++
 xen/arch/arm/include/asm/arm32/sysregs.h |   7 ++
 xen/arch/arm/include/asm/cpregs.h        |   4 +
 xen/arch/arm/include/asm/mpu/cpregs.h    |  24 ++++++
 6 files changed, 138 insertions(+)
 create mode 100644 xen/arch/arm/arm32/mpu/Makefile
 create mode 100644 xen/arch/arm/arm32/mpu/head.S
 create mode 100644 xen/arch/arm/include/asm/mpu/cpregs.h

diff --git a/xen/arch/arm/arm32/Makefile b/xen/arch/arm/arm32/Makefile
index 40a2b4803f..537969d753 100644
--- a/xen/arch/arm/arm32/Makefile
+++ b/xen/arch/arm/arm32/Makefile
@@ -1,5 +1,6 @@
 obj-y += lib/
 obj-$(CONFIG_MMU) += mmu/
+obj-$(CONFIG_MPU) += mpu/
 
 obj-$(CONFIG_EARLY_PRINTK) += debug.o
 obj-y += domctl.o
diff --git a/xen/arch/arm/arm32/mpu/Makefile b/xen/arch/arm/arm32/mpu/Makefile
new file mode 100644
index 0000000000..3340058c08
--- /dev/null
+++ b/xen/arch/arm/arm32/mpu/Makefile
@@ -0,0 +1 @@
+obj-y += head.o
diff --git a/xen/arch/arm/arm32/mpu/head.S b/xen/arch/arm/arm32/mpu/head.S
new file mode 100644
index 0000000000..84e9f1f8ec
--- /dev/null
+++ b/xen/arch/arm/arm32/mpu/head.S
@@ -0,0 +1,101 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Start-of-day code for an Armv8-R MPU system.
+ */
+
+#include <asm/arm32/macros.h>
+#include <asm/mpu/common.inc>
+#include <asm/page.h>
+
+/*
+ * Set up the memory attribute type tables and 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 AArch32 architecture is
+ * IMPLEMENTATION DEFINED, we intend to turn off the Background region here.
+ *
+ * Clobbers r0 - r1
+ */
+FUNC_LOCAL(enable_mpu)
+    /* Set up memory attribute type tables */
+    mov_w r0, MAIR0VAL
+    mov_w r1, MAIR1VAL
+    mcr   CP32(r0, HMAIR0)
+    mcr   CP32(r1, HMAIR1)
+
+    mrc   CP32(r0, HSCTLR)
+    bic   r0, r0, #SCTLR_ELx_BR       /* Disable Background region */
+    orr   r0, r0, #SCTLR_Axx_ELx_M    /* Enable MPU */
+    orr   r0, r0, #SCTLR_Axx_ELx_C    /* Enable D-cache */
+    mcr   CP32(r0, HSCTLR)
+    isb
+
+    ret
+END(enable_mpu)
+
+/*
+ * Maps the various sections of Xen (described in xen.lds.S) as different MPU
+ * regions.
+ *
+ * Clobbers r0 - r5
+ *
+ */
+FUNC(enable_boot_cpu_mm)
+    /* Get the number of regions specified in MPUIR_EL2 */
+    mrc   CP32(r5, MPUIR_EL2)
+    and   r5, r5, #NUM_MPU_REGIONS_MASK
+
+    /* x0: region sel */
+    mov   r0, #0
+    /* Xen text section. */
+    mov_w   r1, _stext
+    mov_w   r2, _etext
+    prepare_xen_region r0, r1, r2, r3, r4, r5, attr_prbar=REGION_TEXT_PRBAR
+
+    /* Xen read-only data section. */
+    mov_w   r1, _srodata
+    mov_w   r2, _erodata
+    prepare_xen_region r0, r1, r2, r3, r4, r5, attr_prbar=REGION_RO_PRBAR
+
+    /* Xen read-only after init and data section. (RW data) */
+    mov_w   r1, __ro_after_init_start
+    mov_w   r2, __init_begin
+    prepare_xen_region r0, r1, r2, r3, r4, r5
+
+    /* Xen code section. */
+    mov_w   r1, __init_begin
+    mov_w   r2, __init_data_begin
+    prepare_xen_region r0, r1, r2, r3, r4, r5, attr_prbar=REGION_TEXT_PRBAR
+
+    /* Xen data and BSS section. */
+    mov_w   r1, __init_data_begin
+    mov_w   r2, __bss_end
+    prepare_xen_region r0, r1, r2, r3, r4, r5
+
+#ifdef CONFIG_EARLY_PRINTK
+    /* Xen early UART section. */
+    mov_w   r1, CONFIG_EARLY_UART_BASE_ADDRESS
+    mov_w   r2, (CONFIG_EARLY_UART_BASE_ADDRESS + CONFIG_EARLY_UART_SIZE)
+    prepare_xen_region r0, r1, r2, r3, r4, r5, attr_prbar=REGION_DEVICE_PRBAR, attr_prlar=REGION_DEVICE_PRLAR
+#endif
+
+    b    enable_mpu
+END(enable_boot_cpu_mm)
+
+/*
+ * We don't yet support secondary CPUs bring-up. Implement a dummy helper to
+ * please the common code.
+ */
+FUNC(enable_secondary_cpu_mm)
+    PRINT("- SMP not enabled yet -\r\n")
+1:  wfe
+    b 1b
+END(enable_secondary_cpu_mm)
+
+/*
+ * Local variables:
+ * mode: ASM
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/xen/arch/arm/include/asm/arm32/sysregs.h b/xen/arch/arm/include/asm/arm32/sysregs.h
index 22871999af..a90d1610a1 100644
--- a/xen/arch/arm/include/asm/arm32/sysregs.h
+++ b/xen/arch/arm/include/asm/arm32/sysregs.h
@@ -20,6 +20,13 @@
  * uses r0 as a placeholder register. */
 #define CMD_CP32(name...)      "mcr " __stringify(CP32(r0, name)) ";"
 
+#define REGION_TEXT_PRBAR       0x18    /* SH=11 AP=10 XN=0 */
+#define REGION_RO_PRBAR         0x1D    /* SH=11 AP=10 XN=1 */
+#define REGION_DATA_PRBAR       0x19    /* SH=11 AP=00 XN=1 */
+#define REGION_DEVICE_PRBAR     0x11    /* SH=10 AP=00 XN=1 */
+
+#define WRITE_SYSREG_ASM(v, name) mcr CP32(v, name)
+
 #ifndef __ASSEMBLY__
 
 /* C wrappers */
diff --git a/xen/arch/arm/include/asm/cpregs.h b/xen/arch/arm/include/asm/cpregs.h
index aec9e8f329..6019a2cbdd 100644
--- a/xen/arch/arm/include/asm/cpregs.h
+++ b/xen/arch/arm/include/asm/cpregs.h
@@ -1,6 +1,10 @@
 #ifndef __ASM_ARM_CPREGS_H
 #define __ASM_ARM_CPREGS_H
 
+#ifdef CONFIG_MPU
+#include <asm/mpu/cpregs.h>
+#endif
+
 /*
  * AArch32 Co-processor registers.
  *
diff --git a/xen/arch/arm/include/asm/mpu/cpregs.h b/xen/arch/arm/include/asm/mpu/cpregs.h
new file mode 100644
index 0000000000..6b20c7ceae
--- /dev/null
+++ b/xen/arch/arm/include/asm/mpu/cpregs.h
@@ -0,0 +1,24 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#ifndef __ASM_ARM_MPU_CPREGS_H
+#define __ASM_ARM_MPU_CPREGS_H
+
+/* CP15 CR0: MPU Type Register */
+#define HMPUIR          p15,4,c0,c0,4
+
+/* CP15 CR6: MPU Protection Region Base/Limit/Select Address Register */
+#define HPRSELR         p15,4,c6,c2,1
+#define PRBAR_EL2       p15,4,c6,c3,0
+#define PRLAR_EL2       p15,4,c6,c8,1
+
+#define MPUIR_EL2       HMPUIR
+#define PRSELR_EL2      HPRSELR
+
+#endif /* __ASM_ARM_MPU_CPREGS_H */
+
+/*
+ * Local variables:
+ * mode: ASM
+ * indent-tabs-mode: nil
+ * End:
+ */
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Mon Apr 07 18:45:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 18:45:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.940882.1340515 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1rSx-0002MJ-KU; Mon, 07 Apr 2025 18:45:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 940882.1340515; Mon, 07 Apr 2025 18:45: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 1u1rSx-0002M4-FB; Mon, 07 Apr 2025 18:45:03 +0000
Received: by outflank-mailman (input) for mailman id 940882;
 Mon, 07 Apr 2025 18:45: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=xyMQ=WZ=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1u1rSw-00026s-LT
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 18:45:02 +0000
Received: from NAM10-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam10on2060b.outbound.protection.outlook.com
 [2a01:111:f403:2413::60b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 69195c55-13e0-11f0-9eaa-5ba50f476ded;
 Mon, 07 Apr 2025 20:45:02 +0200 (CEST)
Received: from BN9PR03CA0456.namprd03.prod.outlook.com (2603:10b6:408:139::11)
 by CH2PR12MB9517.namprd12.prod.outlook.com (2603:10b6:610:27f::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.32; Mon, 7 Apr
 2025 18:44:54 +0000
Received: from BN1PEPF0000468D.namprd05.prod.outlook.com
 (2603:10b6:408:139:cafe::d6) by BN9PR03CA0456.outlook.office365.com
 (2603:10b6:408:139::11) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8606.27 via Frontend Transport; Mon,
 7 Apr 2025 18:44:53 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BN1PEPF0000468D.mail.protection.outlook.com (10.167.243.138) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8632.13 via Frontend Transport; Mon, 7 Apr 2025 18:44:52 +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, 7 Apr
 2025 13:44:50 -0500
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; Mon, 7 Apr 2025 13:44:49 -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: 69195c55-13e0-11f0-9eaa-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=RbLLmhMBNUzrW9/bceC1JlM2c3PP0iJzv52g3jR+FGp26gpPxsKleUneK8zalGBCuOXN+UBs3sr2axFNTojAN+5vTFnw3YLX0MLpcsF/s1exDv97Od9YOzxVrDMGlZoBSnZXwSScWIlYr2wBFkWJXcJcN2ByAD5Lej9l4iNf0hl94MHI7oS982657DqKH3G7l3wp7nS/F0Ont8LPBot+C5xsW6MjyxM5UvjH7+DKdKVCSJ1FigTCwa/nwKxjWWn4lSYk6waXNVvU0TXWobCxUQ8wKOTq5SquBtKPjve2UXzKm6DN9VI7/Jfo0PnKs9Pkrowy4vI03+eutkRnDm96xg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=BriW+JjBN77ChrCJa3L/4qjyHLVhb+tCnpsqG9iiQR8=;
 b=L0RBFSuvIw+VhPBm0Ybffu/fcOjhm3gJa3c38vYo1c/gAV7Cq2zEmoocG8YsyMoRw/8t1jSDlKruHx7hjf7WvRJYIfXfuut7lJbJJ5cU7QLqUPN7Qj/euKJktb5osM3NEbUrMXNrf8Px5+qtjQapbm1QagqyvOXnwNne4Xh3WPeKdCyHt5Vk8wfmmZQkSrS9ihUCwXnEomQR4zlvslIlFq8xfmq+r3LG/BDb1IjcKlAZ4aCmPxVOZ7nn8T0FvJP7HepziFa5/5jKpJvU70GQN8f1aH0+htsDc0L2qlIwNlgydTpIwIXs/795NrJW+iTz/KwBvw+ARgnKnNdVoXG3Og==
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=BriW+JjBN77ChrCJa3L/4qjyHLVhb+tCnpsqG9iiQR8=;
 b=R+QqXXV3B6YECKsJ6mAPfIHu0S7JR2y5hIqtfR+QMQMek9he7ew+LwhTIvowqU/mE4GnDRc92kIwG/kzbuLNyBApu1lmJf858oQif1C0B6U9cstfS3ZJZs3+n2KlBLSh3PBD9Q3EoQ+iWQFAOYSit4IX/uEbel7ZnExL8SChD/8=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=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: Move some of the functions to common file
Date: Mon, 7 Apr 2025 19:44:41 +0100
Message-ID: <20250407184443.1790995-2-ayan.kumar.halder@amd.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20250407184443.1790995-1-ayan.kumar.halder@amd.com>
References: <20250407184443.1790995-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: BN1PEPF0000468D:EE_|CH2PR12MB9517:EE_
X-MS-Office365-Filtering-Correlation-Id: 4ae83a01-6e8d-4689-554e-08dd760448af
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|36860700013|1800799024|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?YIupwtHFGsMiZTJEqUMc3STQd2TqKQPbs9zjQ9lfzai4NTW962yB3hnDcti0?=
 =?us-ascii?Q?GMPA9pgVjOarbY4ubZh+9veqDRm4u+A/6mKWkl482taWHhnxc3IOYr/9Ug3o?=
 =?us-ascii?Q?EZZWW99woCKDW50ceB2qdu/vOvKcmi5PAUXEYhx41uaPnX6Fpo0GXbjZymJf?=
 =?us-ascii?Q?l/brnQTSJccNfyXFTd/gF3EV0g7Z1OnheJQ1O1qtVmhPThs21Ff45OFDZV+M?=
 =?us-ascii?Q?0SfwTsxedt68mpcDUJSvTqpgcRxRR9qHEZpfjRCbgog7pk6sNba6U5RAasgl?=
 =?us-ascii?Q?zs985Qwfqrwx9m+j0ohkKrFkDx0ekYPtFzyeePJbQQYENK9dX/aUWFQ5X3Fu?=
 =?us-ascii?Q?5x/SVJtLNkPJB2+JQru4FbFcHR8mUUqE90TNwbMPpZwwizLbL67MBtMNBj+7?=
 =?us-ascii?Q?cGzIMo+SF7ovN6MJO2Cf/WQO3HPGO5S/IMh76GDuZHjiav/w+OC64t9s3DsV?=
 =?us-ascii?Q?9X7apE/4+WnqZlnvLWy6UVhXqfURBZ5nH79E/2tTb6ZHCDA67cLUVdrPiYre?=
 =?us-ascii?Q?DURRaidRn5TRPjf4INm1rkOlpbUO+glDOypV6iYuif+sAyw+NX9qve6hrb+u?=
 =?us-ascii?Q?WfkKALeiz3lyDeFasrZfi4W5TtG+HVHhdlzJG9nvZpnBz9BpQ020f8cSontn?=
 =?us-ascii?Q?1IZaGpWBNjiU0pyMvxAmOS84pePBEjp9oRLEYGY0i8dk3Cn1LbZilPRIO1kq?=
 =?us-ascii?Q?x0FHNhjjk/s6bFGN7KBRtaVQf8eQ01cr8LbHt3fmpB+9zXuJg2SrujDFP8LV?=
 =?us-ascii?Q?Q3oXbqGh8WjrEeGPEX/FrMDtcBzq3tPVuA0y7MhlwO9V60suGJot1Sh5tBgA?=
 =?us-ascii?Q?Sjvtmewo4IBPG2b0iq+26bVDgooPXXVFAYphLefs1Hv3Y6rmZo9mkFdMCL0Q?=
 =?us-ascii?Q?LVqQHp9xrtdQBy792Aw5LZBXg5SeimhbU1BVJac7pM9HvOSEH41N6GeSXXGF?=
 =?us-ascii?Q?xoADUh7sqRTQKYR/Na1QWIoTlcbyL/f55etS6+f0Ul2Uz6ePSFw7ibPOpfSN?=
 =?us-ascii?Q?pyfm7lRF6GB9VmdOts7ieZHLutnnbND3rFG4RCBAPBhREs88MTRiO6vBDljw?=
 =?us-ascii?Q?1TckLk5t9A3z8GBy/u29f0zQlQBCds1KJjIhlnCWrHMN11fzj2lO2OOzNc8r?=
 =?us-ascii?Q?eINMcVPPjJZ+qAGh1TNYYZHMeluAFu9lfSSNUXIFGoaYIKv9VyJZKe8sJLN9?=
 =?us-ascii?Q?tm3cW9okWXmgAsIoTQ2Zqo23VfPz+jqD8mQfiBPnMTvKIdU4ZVaPJAUCMcql?=
 =?us-ascii?Q?UtQSjg3xqqUYmZOEsti7oxL9RBFGXdWG8mE1lIL3UEQfrMYrgmU/RQ++1CXP?=
 =?us-ascii?Q?SpKoE8wAOqNluHzEbj9gjgIGtHDlkiYOa8g5ICRiYIcwHlRF4j5kQSevavt7?=
 =?us-ascii?Q?I2Ti02TcL/iNbi8BLL6PwC5gkfPU6x3a/VzdfjXB7pf5KJxMH+xOE3erQRQj?=
 =?us-ascii?Q?23v55FKLpGVLcVCE/7gpeEiJPZEC5m0HpA2PstjHV5iNb4xOIsrM1zPydeGQ?=
 =?us-ascii?Q?U+DXlhUuzPQk1Gw=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)(36860700013)(1800799024)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Apr 2025 18:44:52.7446
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 4ae83a01-6e8d-4689-554e-08dd760448af
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:
	BN1PEPF0000468D.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR12MB9517

Added a new file common.inc to hold the common earlyboot MPU regions
configurations across arm64 and arm32.

prepare_xen_region, fail_insufficient_regions() will be used by both arm32 and
arm64. Thus, they have been moved to common.inc.

*_PRBAR are moved to arm64/sysregs.h.
*_PRLAR are moved to common.inc as they are common between arm32 and arm64.

Introduce WRITE_SYSREG_ASM to write to the system registers from the common asm
file.

Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
---

Changes from

v1 -

1. enable_mpu() now sets HMAIR{0,1} registers. This is similar to what is
being done in enable_mmu(). All the mm related configurations happen in this
function.

2. Fixed some typos.

v2 -
1. Extracted the arm64 head.S functions/macros in a common file.

v3 -
1. Moved *_PRLAR are moved to prepare_xen_region.inc

2. enable_boot_cpu_mm() is preserved in mpu/head.S.

3. STORE_SYSREG is renamed as WRITE_SYSREG_ASM()

4. LOAD_SYSREG is removed.

5. No need to save/restore lr in enable_boot_cpu_mm(). IOW, keep it as it was
in the original code.

v4 - 
1. Rename prepare_xen_region.inc to common.inc

2. enable_secondary_cpu_mm() is moved back to mpu/head.S. 

 xen/arch/arm/arm64/mpu/head.S            | 78 +----------------------
 xen/arch/arm/include/asm/arm64/sysregs.h | 11 ++++
 xen/arch/arm/include/asm/mpu/common.inc  | 79 ++++++++++++++++++++++++
 3 files changed, 91 insertions(+), 77 deletions(-)
 create mode 100644 xen/arch/arm/include/asm/mpu/common.inc

diff --git a/xen/arch/arm/arm64/mpu/head.S b/xen/arch/arm/arm64/mpu/head.S
index ed01993d85..4d76a3166e 100644
--- a/xen/arch/arm/arm64/mpu/head.S
+++ b/xen/arch/arm/arm64/mpu/head.S
@@ -3,83 +3,7 @@
  * Start-of-day code for an Armv8-R MPU system.
  */
 
-#include <asm/early_printk.h>
-#include <asm/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 */
-#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.
- * 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
- * Output:
- *  \sel: Next available region selector index.
- * Clobbers \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)
+#include <asm/mpu/common.inc>
 
 /*
  * Enable EL2 MPU and data cache
diff --git a/xen/arch/arm/include/asm/arm64/sysregs.h b/xen/arch/arm/include/asm/arm64/sysregs.h
index b593e4028b..3ee3715430 100644
--- a/xen/arch/arm/include/asm/arm64/sysregs.h
+++ b/xen/arch/arm/include/asm/arm64/sysregs.h
@@ -462,6 +462,15 @@
 #define ZCR_ELx_LEN_SIZE             9
 #define ZCR_ELx_LEN_MASK             0x1ff
 
+#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 WRITE_SYSREG_ASM(v, name) "msr " __stringify(name,) #v;
+
+#ifndef __ASSEMBLY__
+
 /* Access to system registers */
 
 #define WRITE_SYSREG64(v, name) do {                    \
@@ -481,6 +490,8 @@
 #define WRITE_SYSREG_LR(v, index)  WRITE_SYSREG(v, ICH_LR_REG(index))
 #define READ_SYSREG_LR(index)      READ_SYSREG(ICH_LR_REG(index))
 
+#endif /* __ASSEMBLY__ */
+
 #endif /* _ASM_ARM_ARM64_SYSREGS_H */
 
 /*
diff --git a/xen/arch/arm/include/asm/mpu/common.inc b/xen/arch/arm/include/asm/mpu/common.inc
new file mode 100644
index 0000000000..47868a1526
--- /dev/null
+++ b/xen/arch/arm/include/asm/mpu/common.inc
@@ -0,0 +1,79 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <asm/mpu.h>
+#include <asm/sysregs.h>
+
+/* Backgroud region enable/disable */
+#define SCTLR_ELx_BR    BIT(17, UL)
+
+#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.
+ * 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
+ * Output:
+ *  sel: Next available region selector index.
+ * Clobbers 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
+
+    WRITE_SYSREG_ASM(\sel, PRSELR_EL2)
+    isb
+    WRITE_SYSREG_ASM(\prbar, PRBAR_EL2)
+    WRITE_SYSREG_ASM(\prlar, PRLAR_EL2)
+    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)
+
+/*
+ * Local variables:
+ * mode: ASM
+ * indent-tabs-mode: nil
+ * End:
+ */
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Mon Apr 07 18:45:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 18:45:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.940883.1340524 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1rSz-0002bu-09; Mon, 07 Apr 2025 18:45:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 940883.1340524; Mon, 07 Apr 2025 18:45: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 1u1rSy-0002bm-SS; Mon, 07 Apr 2025 18:45:04 +0000
Received: by outflank-mailman (input) for mailman id 940883;
 Mon, 07 Apr 2025 18:45: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=xyMQ=WZ=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1u1rSx-00026s-7G
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 18:45:03 +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 6986d5b0-13e0-11f0-9eaa-5ba50f476ded;
 Mon, 07 Apr 2025 20:45:02 +0200 (CEST)
Received: from BN9PR03CA0457.namprd03.prod.outlook.com (2603:10b6:408:139::12)
 by MW4PR12MB6849.namprd12.prod.outlook.com (2603:10b6:303:20d::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.31; Mon, 7 Apr
 2025 18:44:56 +0000
Received: from BN1PEPF0000468D.namprd05.prod.outlook.com
 (2603:10b6:408:139:cafe::92) by BN9PR03CA0457.outlook.office365.com
 (2603:10b6:408:139::12) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8606.27 via Frontend Transport; Mon,
 7 Apr 2025 18:44:55 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BN1PEPF0000468D.mail.protection.outlook.com (10.167.243.138) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8632.13 via Frontend Transport; Mon, 7 Apr 2025 18:44:55 +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, 7 Apr
 2025 13:44:53 -0500
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, 7 Apr
 2025 13:44:53 -0500
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; Mon, 7 Apr 2025 13:44:52 -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: 6986d5b0-13e0-11f0-9eaa-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=AHsEk+QfsftAH3O/CeldQK8+grDIr7Y4oCLjsXjjoazanTnrU4LJSORKNLufRGxtnZez3e258es6FN2hS2uWwOpNU5iN/VEP9pCmlFyKnPO4T8hxsElIVI+2rVzQa/NhG9HO8cKMIpDv3PPmW8LvpBX/vF1bBttFlvdYT0OSCxDd7ooKTtSXcVCBEyM2c3yLxStnIl0SxznutPaJ4Jzxs9xwCJCC/zp3N+Jg2md6UslCsgryYNzHsuOjnTuLmeu8W1Sq16VLQzBRV6QJ74246QfQrv+17dcq/XMh65b3cRkVbV7Cu/cTs3SiLzx7033jJOa6jdxKn3tTSNiyRIeqSQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=HrsIrtzqJo1yG0n5zEJrTCODyjEnqw4pvT+3HqNQDsM=;
 b=IwWPnuxsM5E+H7xd5WNiEbeG8Z/9qHzDFmtUXIkshacsYiCQJJ4Hj3CLXttGY6aeRzGHjF0t2eo7Ntxw0oW9cnvO3GkWkcGeTjBTw12cw1HTezGoWW4k7v0jgbvN9hACUyqyRYHR5jpDaTCkHLCjGyf6s+7jciMX+a9x5B+TQqHqTiNzJFQotdrapa4JHqfqwOpd/QbdCxFEhbwSAShDEYDHUcQwrEsBTh46BtWAv1N4szqMkrXaXX4DoEqUmFMaPqfsXg09/hmgb3KQisHT03C/kajsLyk/6iGktusuUxMAAd212h4QNa0PZDtKUyz3a/sggt+sSY029xMqLizc4g==
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=HrsIrtzqJo1yG0n5zEJrTCODyjEnqw4pvT+3HqNQDsM=;
 b=Kedj9tlKyPRx16FMLSoJkceYVnRhxF6WggJLJk7wG5JLTiq5OUJ7vcdPXEL7uRZ7A943/fcvYcU5Wpan1BcE+JKOlRND6LRSDXcYzaP+XC+OqlvQfHKEP5XE82R6FBI/YzMpO15AD/wvekszffNruJ1pVbLfNldEounk5+9taMw=
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 3/3] xen/arm32: mpu: Stubs to build MPU for arm32
Date: Mon, 7 Apr 2025 19:44:43 +0100
Message-ID: <20250407184443.1790995-4-ayan.kumar.halder@amd.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20250407184443.1790995-1-ayan.kumar.halder@amd.com>
References: <20250407184443.1790995-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: BN1PEPF0000468D:EE_|MW4PR12MB6849:EE_
X-MS-Office365-Filtering-Correlation-Id: c2d73e46-4fa3-49cb-3911-08dd76044a2f
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|376014|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?iDVF+btuffi2xe7KCw8hZTfKL21e4GVzLbtZ1oAqfaV4OrMEzie0J/xdySLW?=
 =?us-ascii?Q?XYnAK0pnrGC4rf7rtyVfRrc6+jjfUqapR33J7LsVPqJPImsTAQn4R/KI6JDv?=
 =?us-ascii?Q?Wn3sTR++z3gpTE0YMd2VFeAe9w9nwv6lQAieyAF+k24SU43TwLwKlxMH1IGP?=
 =?us-ascii?Q?Wnl2OwR4q/QSi/OgGS/sSnfuJcO2/xCNoTn9IOeksIcAbLGDWNNn+5NVjZvs?=
 =?us-ascii?Q?AKmbrMjnDFWJaFcYxEZVnmilC/8dYMx/4M1a0neTLut9uoOMpkkqqciWr64R?=
 =?us-ascii?Q?4MiYsGjBXITewf5Qh2yuzAFr10FtVVqPpI7GMNMgdlqXh/SO8NEC1GCNkE9i?=
 =?us-ascii?Q?CbwE/jQiOoaB+hbhvuwr+cgnS1adChbWtKOT33mnIt+akoq7dI7XElCD/kYf?=
 =?us-ascii?Q?HzahfNnQTmT1arDCTMA5paugril3tzn+GmbIbRbNOFREqKrfQdsYsG6T8bw5?=
 =?us-ascii?Q?3Do4efnAiid17poyFDJTGm0kFDj8hHAP6xKRu6mb5a9EY/SbEelKrodC08Eo?=
 =?us-ascii?Q?PuwnvopafgzQTihDdt9DRp2w1nbkivAgyw5PU/Bp1qlMnvlBm4HvCvA1boO2?=
 =?us-ascii?Q?TTysYBCemvgAcfq193oVfQtFLxfoawdU61bXC3NuvuL54G8yHTTHarIU8t7r?=
 =?us-ascii?Q?9nhw+odcGIku4t5y8yhrC71GSEk6qkCWn03/43XTVKTEH3nkMLgSY4267jFv?=
 =?us-ascii?Q?2sNIy1cJFf2RodKppsjg3NN1G6jB2wwajJLpdi4nQ9cBgafLkiYG8he7m5NQ?=
 =?us-ascii?Q?wW40OFV3ybvYeyf5rRct5AQbTGCnsi2tWkWp2I46JDD0J0Z0ZvD6B+cI3xps?=
 =?us-ascii?Q?R1cuPdKKK83gaL3876HUQ3cLeubpvfueJ27fi/veT9KDBzxs/odDy/dH6psN?=
 =?us-ascii?Q?squIzOFgZVJcfPHKmzm2cZHdPgFezflapxOo+ztWVd2e2qylzLxZ8dHcZIkI?=
 =?us-ascii?Q?bN4kiZKNNlH+PoC6NUctdV3lPLn0cV7zBpWaB+zorMV+hcWFm2O8th3LBabT?=
 =?us-ascii?Q?ESjnQGXms46i7vCMgvO6XTlcMaICfBWoVWQUPXNXStdmENnHxCIANh1dE+Fk?=
 =?us-ascii?Q?EZ6KQyFwLuA0sfhn/6Hu/hIU18+sQS1zlUrECf6RcwGN9nU639UWYW+W8NtX?=
 =?us-ascii?Q?th21FRaYmzNzHZXxgse1F2z/xzflBnz2F1dEOge7otgXSIMXRixHGixEQut0?=
 =?us-ascii?Q?5erIwpX8AuypP6awF1q8eWDHao5bQzvJ/7ONe7WWFbQ0XrrCNybi6AJopprX?=
 =?us-ascii?Q?BRjyLr34EQnLPq+t7hSC+s58C0FnTCYEHCZKGMf0nicLn9AT1iO3zqZ3528L?=
 =?us-ascii?Q?op76aLUiDnTSvLsJ2yayQ7qDBkwYA0DzHlbFgo9ZMVDuzYLuHXy1q82xPXtT?=
 =?us-ascii?Q?TDQL0vPqSK8LhreHBgW95SBpPjeSiNDgFGV51pHO2sItwVZ1jTO+ax/m3jUD?=
 =?us-ascii?Q?1DM5WNres7sTHEXJwgaNipSGiTaifPMsm4+RBAWC6RhcE8SLHotPMS2zcN2D?=
 =?us-ascii?Q?gPGvkCzTYrpY6pc=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)(376014)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Apr 2025 18:44:55.2612
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: c2d73e46-4fa3-49cb-3911-08dd76044a2f
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:
	BN1PEPF0000468D.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR12MB6849

Add stubs to enable compilation

Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
---
Changes from :-

v1, v2 -
1. New patch introduced in v3.
2. Should be applied on top of
https://patchwork.kernel.org/project/xen-devel/cover/20250316192445.2376484-1-luca.fancellu@arm.com/

v3 -
1. Add stubs for map_domain_page() and similar functions.

2. 'BUG_ON("unimplemented")' is kept in all the stubs.

v4 - 
1. is_xen_heap_mfn() macros are defined across mpu/mm.h (ARM32 specific)
, mmu/mm.h (ARM32 specific) and asm/mm.h (ARM64 specific)

2. s/(void*)0/NULL

 xen/arch/arm/arm32/mpu/Makefile   |  2 ++
 xen/arch/arm/arm32/mpu/p2m.c      | 18 ++++++++++++++
 xen/arch/arm/arm32/mpu/smpboot.c  | 23 +++++++++++++++++
 xen/arch/arm/include/asm/mm.h     |  9 +------
 xen/arch/arm/include/asm/mmu/mm.h |  9 +++++++
 xen/arch/arm/include/asm/mpu/mm.h |  5 ++++
 xen/arch/arm/mpu/Makefile         |  1 +
 xen/arch/arm/mpu/domain_page.c    | 41 +++++++++++++++++++++++++++++++
 8 files changed, 100 insertions(+), 8 deletions(-)
 create mode 100644 xen/arch/arm/arm32/mpu/p2m.c
 create mode 100644 xen/arch/arm/arm32/mpu/smpboot.c
 create mode 100644 xen/arch/arm/mpu/domain_page.c

diff --git a/xen/arch/arm/arm32/mpu/Makefile b/xen/arch/arm/arm32/mpu/Makefile
index 3340058c08..38797f28af 100644
--- a/xen/arch/arm/arm32/mpu/Makefile
+++ b/xen/arch/arm/arm32/mpu/Makefile
@@ -1 +1,3 @@
 obj-y += head.o
+obj-y += smpboot.o
+obj-y += p2m.o
diff --git a/xen/arch/arm/arm32/mpu/p2m.c b/xen/arch/arm/arm32/mpu/p2m.c
new file mode 100644
index 0000000000..df8de5c7d8
--- /dev/null
+++ b/xen/arch/arm/arm32/mpu/p2m.c
@@ -0,0 +1,18 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <xen/init.h>
+#include <asm/p2m.h>
+
+void __init setup_virt_paging(void)
+{
+    BUG_ON("unimplemented");
+}
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/xen/arch/arm/arm32/mpu/smpboot.c b/xen/arch/arm/arm32/mpu/smpboot.c
new file mode 100644
index 0000000000..3f3e54294e
--- /dev/null
+++ b/xen/arch/arm/arm32/mpu/smpboot.c
@@ -0,0 +1,23 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <xen/mm.h>
+
+int prepare_secondary_mm(int cpu)
+{
+    BUG_ON("unimplemented");
+    return -EINVAL;
+}
+
+void update_boot_mapping(bool enable)
+{
+    BUG_ON("unimplemented");
+}
+
+/*
+ * 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 fbffaccef4..5b67c0f8bb 100644
--- a/xen/arch/arm/include/asm/mm.h
+++ b/xen/arch/arm/include/asm/mm.h
@@ -170,14 +170,7 @@ struct page_info
 #define _PGC_need_scrub   _PGC_allocated
 #define PGC_need_scrub    PGC_allocated
 
-#ifdef CONFIG_ARM_32
-#define is_xen_heap_page(page) is_xen_heap_mfn(page_to_mfn(page))
-#define is_xen_heap_mfn(mfn) ({                                 \
-    unsigned long mfn_ = mfn_x(mfn);                            \
-    (mfn_ >= mfn_x(directmap_mfn_start) &&                      \
-     mfn_ < mfn_x(directmap_mfn_end));                          \
-})
-#else
+#ifdef CONFIG_ARM_64
 #define is_xen_heap_page(page) ((page)->count_info & PGC_xen_heap)
 #define is_xen_heap_mfn(mfn) \
     (mfn_valid(mfn) && is_xen_heap_page(mfn_to_page(mfn)))
diff --git a/xen/arch/arm/include/asm/mmu/mm.h b/xen/arch/arm/include/asm/mmu/mm.h
index caba987edc..9b98d12b07 100644
--- a/xen/arch/arm/include/asm/mmu/mm.h
+++ b/xen/arch/arm/include/asm/mmu/mm.h
@@ -21,6 +21,15 @@ extern unsigned long directmap_base_pdx;
 
 #define frame_table ((struct page_info *)FRAMETABLE_VIRT_START)
 
+#ifdef CONFIG_ARM_32
+#define is_xen_heap_page(page) is_xen_heap_mfn(page_to_mfn(page))
+#define is_xen_heap_mfn(mfn) ({                                 \
+    unsigned long mfn_ = mfn_x(mfn);                            \
+    (mfn_ >= mfn_x(directmap_mfn_start) &&                      \
+     mfn_ < mfn_x(directmap_mfn_end));                          \
+})
+#endif
+
 #define virt_to_maddr(va) ({                                                   \
     vaddr_t va_ = (vaddr_t)(va);                                               \
     (paddr_t)((va_to_par(va_) & PADDR_MASK & PAGE_MASK) | (va_ & ~PAGE_MASK)); \
diff --git a/xen/arch/arm/include/asm/mpu/mm.h b/xen/arch/arm/include/asm/mpu/mm.h
index 86f33d9836..bfd840fa5d 100644
--- a/xen/arch/arm/include/asm/mpu/mm.h
+++ b/xen/arch/arm/include/asm/mpu/mm.h
@@ -13,6 +13,11 @@ extern struct page_info *frame_table;
 
 #define virt_to_maddr(va) ((paddr_t)((vaddr_t)(va) & PADDR_MASK))
 
+#ifdef CONFIG_ARM_32
+#define is_xen_heap_page(page) ({ BUG_ON("unimplemented"); false; })
+#define is_xen_heap_mfn(mfn) ({ BUG_ON("unimplemented"); false; })
+#endif
+
 /* On MPU systems there is no translation, ma == va. */
 static inline void *maddr_to_virt(paddr_t ma)
 {
diff --git a/xen/arch/arm/mpu/Makefile b/xen/arch/arm/mpu/Makefile
index 21bbc517b5..ff221011d5 100644
--- a/xen/arch/arm/mpu/Makefile
+++ b/xen/arch/arm/mpu/Makefile
@@ -2,3 +2,4 @@ obj-y += mm.o
 obj-y += p2m.o
 obj-y += setup.init.o
 obj-y += vmap.o
+obj-$(CONFIG_ARM_32) += domain_page.o
diff --git a/xen/arch/arm/mpu/domain_page.c b/xen/arch/arm/mpu/domain_page.c
new file mode 100644
index 0000000000..8859b24e04
--- /dev/null
+++ b/xen/arch/arm/mpu/domain_page.c
@@ -0,0 +1,41 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+#include <xen/domain_page.h>
+
+void *map_domain_page_global(mfn_t mfn)
+{
+    BUG_ON("unimplemented");
+    return NULL;
+}
+
+/* Map a page of domheap memory */
+void *map_domain_page(mfn_t mfn)
+{
+    BUG_ON("unimplemented");
+    return NULL;
+}
+
+/* Release a mapping taken with map_domain_page() */
+void unmap_domain_page(const void *ptr)
+{
+    BUG_ON("unimplemented");
+}
+
+mfn_t domain_page_map_to_mfn(const void *ptr)
+{
+    BUG_ON("unimplemented");
+    return INVALID_MFN;
+}
+
+void unmap_domain_page_global(const void *va)
+{
+    BUG_ON("unimplemented");
+}
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Mon Apr 07 18:57:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 18:57:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.940941.1340583 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1rey-00084D-Dd; Mon, 07 Apr 2025 18:57:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 940941.1340583; Mon, 07 Apr 2025 18:57: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 1u1rey-000844-AL; Mon, 07 Apr 2025 18:57:28 +0000
Received: by outflank-mailman (input) for mailman id 940941;
 Mon, 07 Apr 2025 18:57: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=D4Wy=WZ=ti.com=afd@srs-se1.protection.inumbo.net>)
 id 1u1rex-0007kd-L7
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 18:57:27 +0000
Received: from lelvem-ot01.ext.ti.com (lelvem-ot01.ext.ti.com [198.47.23.234])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 22788e3a-13e2-11f0-9ffb-bf95429c2676;
 Mon, 07 Apr 2025 20:57:22 +0200 (CEST)
Received: from lelv0266.itg.ti.com ([10.180.67.225])
 by lelvem-ot01.ext.ti.com (8.15.2/8.15.2) with ESMTPS id 537Iuq0i454871
 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Mon, 7 Apr 2025 13:56:52 -0500
Received: from DFLE114.ent.ti.com (dfle114.ent.ti.com [10.64.6.35])
 by lelv0266.itg.ti.com (8.15.2/8.15.2) with ESMTPS id 537Iuq3q011999
 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=FAIL);
 Mon, 7 Apr 2025 13:56:52 -0500
Received: from DFLE111.ent.ti.com (10.64.6.32) by DFLE114.ent.ti.com
 (10.64.6.35) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.2507.23; Mon, 7
 Apr 2025 13:56:52 -0500
Received: from lelvsmtp5.itg.ti.com (10.180.75.250) by DFLE111.ent.ti.com
 (10.64.6.32) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.2507.23 via
 Frontend Transport; Mon, 7 Apr 2025 13:56:51 -0500
Received: from fllvsmtp8.itg.ti.com ([10.249.42.149])
 by lelvsmtp5.itg.ti.com (8.15.2/8.15.2) with ESMTP id 537Iup47094348;
 Mon, 7 Apr 2025 13:56:51 -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: 22788e3a-13e2-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ti.com;
	s=ti-com-17Q1; t=1744052212;
	bh=ayTupi2WPvTI3Popd5a6clT7WjyIKWAcMrNm4hWyGyk=;
	h=From:To:CC:Subject:Date;
	b=OX+PNp412lCc0vxhnOijlFpYYMx/tJ5YQmkV0cuMqpvpzNsm301qpxGYAg7ILwzps
	 C7Icr+4R8Ys0tWuKfbkxkqtxhSHVRKIYKSFkb3lQypD4CkIvmJkpTvE9FIDR2aukmL
	 r/TAGQJJ4Zj4Qr51qB+A5bOBnCMhBNSeZx1oMeZ0=
From: Andrew Davis <afd@ti.com>
To: Arnd Bergmann <arnd@arndb.de>, Andre Przywara <andre.przywara@arm.com>,
        Russell King <linux@armlinux.org.uk>, Daniel Mack <daniel@zonque.org>,
        Haojian Zhuang <haojian.zhuang@gmail.com>,
        Robert Jarzmik
	<robert.jarzmik@free.fr>,
        Alexey Charkov <alchark@gmail.com>,
        Krzysztof
 Kozlowski <krzk@kernel.org>,
        Stefano Stabellini <sstabellini@kernel.org>
CC: <linux-arm-kernel@lists.infradead.org>, <linux-kernel@vger.kernel.org>,
        <xen-devel@lists.xenproject.org>, Andrew Davis <afd@ti.com>
Subject: [PATCH v5 0/5] Switch more ARM plats to sys-off handler API
Date: Mon, 7 Apr 2025 13:56:45 -0500
Message-ID: <20250407185650.411887-1-afd@ti.com>
X-Mailer: git-send-email 2.39.2
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-C2ProcessedOrg: 333ef613-75bf-4e12-a4b1-8e3623f5dcea

Hello all,

Continuing the quest to remove the legacy pm_power_off() global
function handler. Remove uses from arch/arm/ using the helper
register_platform_power_off().

These have been sent for several cycles without feedback, not
sure if there are anymore active platform maintainers who
can take these individually, maybe these remaining could
go in directly though the arm-soc tree?

Thanks,
Andrew

Changes for v5:
 - Rebase on v6.15-rc1

Changes for v4:
 - Drop already taken patches
 - Rebase on latest master

Changes for v3:
 - Rebase on v6.12-rc1

Changes for v2:
 - Collect Reviewed/Acked-bys
 - Rebase on v6.11-rc1

Andrew Davis (5):
  ARM: highbank: Switch to new sys-off handler API
  ARM: pxa: Switch to new sys-off handler API
  ARM: sa1100: Switch to new sys-off handler API
  ARM: vt8500: Switch to new sys-off handler API
  arm/xen: Switch to new sys-off handler API

 arch/arm/mach-highbank/highbank.c | 2 +-
 arch/arm/mach-pxa/spitz.c         | 2 +-
 arch/arm/mach-sa1100/generic.c    | 2 +-
 arch/arm/mach-vt8500/vt8500.c     | 2 +-
 arch/arm/xen/enlighten.c          | 2 +-
 5 files changed, 5 insertions(+), 5 deletions(-)

-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Mon Apr 07 18:57:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 18:57:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.940939.1340574 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1rex-0007nw-3W; Mon, 07 Apr 2025 18:57:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 940939.1340574; Mon, 07 Apr 2025 18:57:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1rew-0007np-W1; Mon, 07 Apr 2025 18:57:26 +0000
Received: by outflank-mailman (input) for mailman id 940939;
 Mon, 07 Apr 2025 18:57:26 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=D4Wy=WZ=ti.com=afd@srs-se1.protection.inumbo.net>)
 id 1u1rev-0007kd-Uy
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 18:57:25 +0000
Received: from lelvem-ot02.ext.ti.com (lelvem-ot02.ext.ti.com [198.47.23.235])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 23527169-13e2-11f0-9ffb-bf95429c2676;
 Mon, 07 Apr 2025 20:57:23 +0200 (CEST)
Received: from lelv0265.itg.ti.com ([10.180.67.224])
 by lelvem-ot02.ext.ti.com (8.15.2/8.15.2) with ESMTPS id 537IuqCb956347
 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Mon, 7 Apr 2025 13:56:52 -0500
Received: from DFLE108.ent.ti.com (dfle108.ent.ti.com [10.64.6.29])
 by lelv0265.itg.ti.com (8.15.2/8.15.2) with ESMTPS id 537IuqTo025514
 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=FAIL);
 Mon, 7 Apr 2025 13:56:52 -0500
Received: from DFLE113.ent.ti.com (10.64.6.34) by DFLE108.ent.ti.com
 (10.64.6.29) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.2507.23; Mon, 7
 Apr 2025 13:56:52 -0500
Received: from lelvsmtp5.itg.ti.com (10.180.75.250) by DFLE113.ent.ti.com
 (10.64.6.34) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.2507.23 via
 Frontend Transport; Mon, 7 Apr 2025 13:56:52 -0500
Received: from fllvsmtp8.itg.ti.com ([10.249.42.149])
 by lelvsmtp5.itg.ti.com (8.15.2/8.15.2) with ESMTP id 537Iup48094348;
 Mon, 7 Apr 2025 13:56:52 -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: 23527169-13e2-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ti.com;
	s=ti-com-17Q1; t=1744052213;
	bh=P6d498xP36XXy4X2j2XNBIV3J80KTeTFWEpSStPLVgY=;
	h=From:To:CC:Subject:Date:In-Reply-To:References;
	b=cQd2JMUAKZXHGACU6Xp3DzfFHvnyebICZs9Nqfjuf6TIo6/KtACl9o6/OQESWTbw6
	 QTDHCqUMVwKLZaS9SXSGmNU0wkuUUk8mCB3+90f2fRTRv6+eTA687utiImEVPKn+/l
	 SowPHHM3E13P+OFcj1kb7H/vGdXdr2rDyEqiojxI=
From: Andrew Davis <afd@ti.com>
To: Arnd Bergmann <arnd@arndb.de>, Andre Przywara <andre.przywara@arm.com>,
        Russell King <linux@armlinux.org.uk>, Daniel Mack <daniel@zonque.org>,
        Haojian Zhuang <haojian.zhuang@gmail.com>,
        Robert Jarzmik
	<robert.jarzmik@free.fr>,
        Alexey Charkov <alchark@gmail.com>,
        Krzysztof
 Kozlowski <krzk@kernel.org>,
        Stefano Stabellini <sstabellini@kernel.org>
CC: <linux-arm-kernel@lists.infradead.org>, <linux-kernel@vger.kernel.org>,
        <xen-devel@lists.xenproject.org>, Andrew Davis <afd@ti.com>
Subject: [PATCH v5 1/5] ARM: highbank: Switch to new sys-off handler API
Date: Mon, 7 Apr 2025 13:56:46 -0500
Message-ID: <20250407185650.411887-2-afd@ti.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20250407185650.411887-1-afd@ti.com>
References: <20250407185650.411887-1-afd@ti.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-C2ProcessedOrg: 333ef613-75bf-4e12-a4b1-8e3623f5dcea

Kernel now supports chained power-off handlers. Use
register_platform_power_off() that registers a platform level power-off
handler. Legacy pm_power_off() will be removed once all drivers and archs
are converted to the new sys-off API.

Signed-off-by: Andrew Davis <afd@ti.com>
Reviewed-by: Andre Przywara <andre.przywara@arm.com>
---
 arch/arm/mach-highbank/highbank.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm/mach-highbank/highbank.c b/arch/arm/mach-highbank/highbank.c
index 5d4f977ac7d2a..47335c7dadf8d 100644
--- a/arch/arm/mach-highbank/highbank.c
+++ b/arch/arm/mach-highbank/highbank.c
@@ -143,7 +143,7 @@ static void __init highbank_init(void)
 	sregs_base = of_iomap(np, 0);
 	WARN_ON(!sregs_base);
 
-	pm_power_off = highbank_power_off;
+	register_platform_power_off(highbank_power_off);
 	highbank_pm_init();
 
 	bus_register_notifier(&platform_bus_type, &highbank_platform_nb);
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Mon Apr 07 18:57:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 18:57:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.940937.1340544 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1rer-00070X-Gl; Mon, 07 Apr 2025 18:57:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 940937.1340544; Mon, 07 Apr 2025 18:57:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1rer-0006yC-D2; Mon, 07 Apr 2025 18:57:21 +0000
Received: by outflank-mailman (input) for mailman id 940937;
 Mon, 07 Apr 2025 18:57: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=D4Wy=WZ=ti.com=afd@srs-se1.protection.inumbo.net>)
 id 1u1req-0006qC-5X
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 18:57:20 +0000
Received: from lelvem-ot01.ext.ti.com (lelvem-ot01.ext.ti.com [198.47.23.234])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1fa8f5a9-13e2-11f0-9eaa-5ba50f476ded;
 Mon, 07 Apr 2025 20:57:19 +0200 (CEST)
Received: from lelv0265.itg.ti.com ([10.180.67.224])
 by lelvem-ot01.ext.ti.com (8.15.2/8.15.2) with ESMTPS id 537Iurh2454879
 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Mon, 7 Apr 2025 13:56:53 -0500
Received: from DLEE109.ent.ti.com (dlee109.ent.ti.com [157.170.170.41])
 by lelv0265.itg.ti.com (8.15.2/8.15.2) with ESMTPS id 537Iurf7025521
 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=FAIL);
 Mon, 7 Apr 2025 13:56:53 -0500
Received: from DLEE111.ent.ti.com (157.170.170.22) by DLEE109.ent.ti.com
 (157.170.170.41) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.2507.23; Mon, 7
 Apr 2025 13:56:53 -0500
Received: from lelvsmtp5.itg.ti.com (10.180.75.250) by DLEE111.ent.ti.com
 (157.170.170.22) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.2507.23 via
 Frontend Transport; Mon, 7 Apr 2025 13:56:53 -0500
Received: from fllvsmtp8.itg.ti.com ([10.249.42.149])
 by lelvsmtp5.itg.ti.com (8.15.2/8.15.2) with ESMTP id 537Iup49094348;
 Mon, 7 Apr 2025 13:56:52 -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: 1fa8f5a9-13e2-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ti.com;
	s=ti-com-17Q1; t=1744052213;
	bh=1hB+Rsl8dEIP80gJg1dRpUGGywa9yjHgvJWWFP9MDZc=;
	h=From:To:CC:Subject:Date:In-Reply-To:References;
	b=ilAhbRuQvUr5o5N86CHRjPzz8/cXGDJJ0lrVBSpJVYkgfA8BdUNF1Pvu3skNKv/lc
	 ceS9y8Zl5/7f00qk9/NnQ6KSuo26ZtbCFqPmzdyYuYSmG30Kz7isxhXfgkty85nW5u
	 G7Xn0UGNuXQFxjnif9VQFoyOmRv8Bz1iQ5ApA06A=
From: Andrew Davis <afd@ti.com>
To: Arnd Bergmann <arnd@arndb.de>, Andre Przywara <andre.przywara@arm.com>,
        Russell King <linux@armlinux.org.uk>, Daniel Mack <daniel@zonque.org>,
        Haojian Zhuang <haojian.zhuang@gmail.com>,
        Robert Jarzmik
	<robert.jarzmik@free.fr>,
        Alexey Charkov <alchark@gmail.com>,
        Krzysztof
 Kozlowski <krzk@kernel.org>,
        Stefano Stabellini <sstabellini@kernel.org>
CC: <linux-arm-kernel@lists.infradead.org>, <linux-kernel@vger.kernel.org>,
        <xen-devel@lists.xenproject.org>, Andrew Davis <afd@ti.com>
Subject: [PATCH v5 2/5] ARM: pxa: Switch to new sys-off handler API
Date: Mon, 7 Apr 2025 13:56:47 -0500
Message-ID: <20250407185650.411887-3-afd@ti.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20250407185650.411887-1-afd@ti.com>
References: <20250407185650.411887-1-afd@ti.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-C2ProcessedOrg: 333ef613-75bf-4e12-a4b1-8e3623f5dcea

Kernel now supports chained power-off handlers. Use
register_platform_power_off() that registers a platform level power-off
handler. Legacy pm_power_off() will be removed once all drivers and archs
are converted to the new sys-off API.

Signed-off-by: Andrew Davis <afd@ti.com>
---
 arch/arm/mach-pxa/spitz.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm/mach-pxa/spitz.c b/arch/arm/mach-pxa/spitz.c
index 33533e35720f8..c0b1f7e6be874 100644
--- a/arch/arm/mach-pxa/spitz.c
+++ b/arch/arm/mach-pxa/spitz.c
@@ -1096,7 +1096,7 @@ static void __init spitz_init(void)
 		software_node_register(&spitz_scoop_2_gpiochip_node);
 
 	init_gpio_reset(SPITZ_GPIO_ON_RESET, 1, 0);
-	pm_power_off = spitz_poweroff;
+	register_platform_power_off(spitz_poweroff);
 
 	PMCR = 0x00;
 
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Mon Apr 07 18:57:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 18:57:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.940938.1340563 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1reu-0007X1-NH; Mon, 07 Apr 2025 18:57:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 940938.1340563; Mon, 07 Apr 2025 18:57: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 1u1reu-0007Wu-KQ; Mon, 07 Apr 2025 18:57:24 +0000
Received: by outflank-mailman (input) for mailman id 940938;
 Mon, 07 Apr 2025 18:57:23 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=D4Wy=WZ=ti.com=afd@srs-se1.protection.inumbo.net>)
 id 1u1ret-0006qC-4d
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 18:57:23 +0000
Received: from fllvem-ot04.ext.ti.com (fllvem-ot04.ext.ti.com [198.47.19.246])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 225cdefb-13e2-11f0-9eaa-5ba50f476ded;
 Mon, 07 Apr 2025 20:57:22 +0200 (CEST)
Received: from fllv0034.itg.ti.com ([10.64.40.246])
 by fllvem-ot04.ext.ti.com (8.15.2/8.15.2) with ESMTPS id 537IuslX1000126
 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Mon, 7 Apr 2025 13:56:54 -0500
Received: from DLEE113.ent.ti.com (dlee113.ent.ti.com [157.170.170.24])
 by fllv0034.itg.ti.com (8.15.2/8.15.2) with ESMTPS id 537IusvE093037
 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=FAIL);
 Mon, 7 Apr 2025 13:56:54 -0500
Received: from DLEE102.ent.ti.com (157.170.170.32) by DLEE113.ent.ti.com
 (157.170.170.24) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.2507.23; Mon, 7
 Apr 2025 13:56:53 -0500
Received: from lelvsmtp5.itg.ti.com (10.180.75.250) by DLEE102.ent.ti.com
 (157.170.170.32) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.2507.23 via
 Frontend Transport; Mon, 7 Apr 2025 13:56:53 -0500
Received: from fllvsmtp8.itg.ti.com ([10.249.42.149])
 by lelvsmtp5.itg.ti.com (8.15.2/8.15.2) with ESMTP id 537Iup4A094348;
 Mon, 7 Apr 2025 13:56:53 -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: 225cdefb-13e2-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ti.com;
	s=ti-com-17Q1; t=1744052214;
	bh=8gIz69rx+O7g3l2dUBVUwaQsvlZ4QBJNSMujzHzSCeo=;
	h=From:To:CC:Subject:Date:In-Reply-To:References;
	b=FxvkF8mUMVXmYrbzAHPSuAjub7UYI6hag4RR6eqGRQOhL5fFddGupBnv6dxHbPUMu
	 nCsj7MpOQofo/CBa7I9weXUVHxHCPw4hL8w7ZRal7/i3Jrxzm5TXGMF0BjycoN97i3
	 SYHRvYO/XtARRDp30MMmYP1aEYwfK2kHhh6QrAM4=
From: Andrew Davis <afd@ti.com>
To: Arnd Bergmann <arnd@arndb.de>, Andre Przywara <andre.przywara@arm.com>,
        Russell King <linux@armlinux.org.uk>, Daniel Mack <daniel@zonque.org>,
        Haojian Zhuang <haojian.zhuang@gmail.com>,
        Robert Jarzmik
	<robert.jarzmik@free.fr>,
        Alexey Charkov <alchark@gmail.com>,
        Krzysztof
 Kozlowski <krzk@kernel.org>,
        Stefano Stabellini <sstabellini@kernel.org>
CC: <linux-arm-kernel@lists.infradead.org>, <linux-kernel@vger.kernel.org>,
        <xen-devel@lists.xenproject.org>, Andrew Davis <afd@ti.com>
Subject: [PATCH v5 3/5] ARM: sa1100: Switch to new sys-off handler API
Date: Mon, 7 Apr 2025 13:56:48 -0500
Message-ID: <20250407185650.411887-4-afd@ti.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20250407185650.411887-1-afd@ti.com>
References: <20250407185650.411887-1-afd@ti.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-C2ProcessedOrg: 333ef613-75bf-4e12-a4b1-8e3623f5dcea

Kernel now supports chained power-off handlers. Use
register_platform_power_off() that registers a platform level power-off
handler. Legacy pm_power_off() will be removed once all drivers and archs
are converted to the new sys-off API.

Signed-off-by: Andrew Davis <afd@ti.com>
---
 arch/arm/mach-sa1100/generic.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm/mach-sa1100/generic.c b/arch/arm/mach-sa1100/generic.c
index 0c586047d130f..5383a26f51169 100644
--- a/arch/arm/mach-sa1100/generic.c
+++ b/arch/arm/mach-sa1100/generic.c
@@ -298,7 +298,7 @@ static struct platform_device *sa11x0_devices[] __initdata = {
 static int __init sa1100_init(void)
 {
 	struct resource wdt_res = DEFINE_RES_MEM(0x90000000, 0x20);
-	pm_power_off = sa1100_power_off;
+	register_platform_power_off(sa1100_power_off);
 
 	regulator_has_full_constraints();
 
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Mon Apr 07 18:57:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 18:57:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.940936.1340539 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1rer-0006tW-8m; Mon, 07 Apr 2025 18:57:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 940936.1340539; Mon, 07 Apr 2025 18:57:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1rer-0006t6-4s; Mon, 07 Apr 2025 18:57:21 +0000
Received: by outflank-mailman (input) for mailman id 940936;
 Mon, 07 Apr 2025 18: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=D4Wy=WZ=ti.com=afd@srs-se1.protection.inumbo.net>)
 id 1u1rep-0006qC-M3
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 18:57:19 +0000
Received: from fllvem-ot03.ext.ti.com (fllvem-ot03.ext.ti.com [198.47.19.245])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1ef1bb21-13e2-11f0-9eaa-5ba50f476ded;
 Mon, 07 Apr 2025 20:57:16 +0200 (CEST)
Received: from lelv0266.itg.ti.com ([10.180.67.225])
 by fllvem-ot03.ext.ti.com (8.15.2/8.15.2) with ESMTPS id 537Iusmv316741
 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Mon, 7 Apr 2025 13:56:54 -0500
Received: from DLEE113.ent.ti.com (dlee113.ent.ti.com [157.170.170.24])
 by lelv0266.itg.ti.com (8.15.2/8.15.2) with ESMTPS id 537Ius9Q012013
 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=FAIL);
 Mon, 7 Apr 2025 13:56:54 -0500
Received: from DLEE101.ent.ti.com (157.170.170.31) by DLEE113.ent.ti.com
 (157.170.170.24) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.2507.23; Mon, 7
 Apr 2025 13:56:54 -0500
Received: from lelvsmtp5.itg.ti.com (10.180.75.250) by DLEE101.ent.ti.com
 (157.170.170.31) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.2507.23 via
 Frontend Transport; Mon, 7 Apr 2025 13:56:54 -0500
Received: from fllvsmtp8.itg.ti.com ([10.249.42.149])
 by lelvsmtp5.itg.ti.com (8.15.2/8.15.2) with ESMTP id 537Iup4B094348;
 Mon, 7 Apr 2025 13:56:53 -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: 1ef1bb21-13e2-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ti.com;
	s=ti-com-17Q1; t=1744052214;
	bh=9DDSNdi1Vm7CF1r5MUhXK3gIEzhoSFzXZa431fz1lzU=;
	h=From:To:CC:Subject:Date:In-Reply-To:References;
	b=eHyiPm95etrO5lg6pieTn5132+O+HC9GgCbDlhR3kFsLpsjI9Ai6mxh87PuXxra4S
	 aZAJPOlN4/K2Y5WccNbVryrtax4FrtrnWFMkYFJQH9A+AQitjSq8CrUi+x7cZ2/KLA
	 C3tfBL+q28aZDmMfsLhajeVp6eRwWgx4Aw5y2V/4=
From: Andrew Davis <afd@ti.com>
To: Arnd Bergmann <arnd@arndb.de>, Andre Przywara <andre.przywara@arm.com>,
        Russell King <linux@armlinux.org.uk>, Daniel Mack <daniel@zonque.org>,
        Haojian Zhuang <haojian.zhuang@gmail.com>,
        Robert Jarzmik
	<robert.jarzmik@free.fr>,
        Alexey Charkov <alchark@gmail.com>,
        Krzysztof
 Kozlowski <krzk@kernel.org>,
        Stefano Stabellini <sstabellini@kernel.org>
CC: <linux-arm-kernel@lists.infradead.org>, <linux-kernel@vger.kernel.org>,
        <xen-devel@lists.xenproject.org>, Andrew Davis <afd@ti.com>
Subject: [PATCH v5 4/5] ARM: vt8500: Switch to new sys-off handler API
Date: Mon, 7 Apr 2025 13:56:49 -0500
Message-ID: <20250407185650.411887-5-afd@ti.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20250407185650.411887-1-afd@ti.com>
References: <20250407185650.411887-1-afd@ti.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-C2ProcessedOrg: 333ef613-75bf-4e12-a4b1-8e3623f5dcea

Kernel now supports chained power-off handlers. Use
register_platform_power_off() that registers a platform level power-off
handler. Legacy pm_power_off() will be removed once all drivers and archs
are converted to the new sys-off API.

Signed-off-by: Andrew Davis <afd@ti.com>
Acked-by: Alexey Charkov <alchark@gmail.com>
---
 arch/arm/mach-vt8500/vt8500.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm/mach-vt8500/vt8500.c b/arch/arm/mach-vt8500/vt8500.c
index 0ab40087ae1cc..1d294255d7083 100644
--- a/arch/arm/mach-vt8500/vt8500.c
+++ b/arch/arm/mach-vt8500/vt8500.c
@@ -141,7 +141,7 @@ static void __init vt8500_init(void)
 			pr_err("%s:ioremap(power_off) failed\n", __func__);
 	}
 	if (pmc_base)
-		pm_power_off = &vt8500_power_off;
+		register_platform_power_off(vt8500_power_off);
 	else
 		pr_err("%s: PMC Hibernation register could not be remapped, not enabling power off!\n", __func__);
 }
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Mon Apr 07 18:57:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 18:57:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.940935.1340533 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1rer-0006qZ-0c; Mon, 07 Apr 2025 18:57:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 940935.1340533; Mon, 07 Apr 2025 18: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 1u1req-0006qS-UG; Mon, 07 Apr 2025 18:57:20 +0000
Received: by outflank-mailman (input) for mailman id 940935;
 Mon, 07 Apr 2025 18: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=D4Wy=WZ=ti.com=afd@srs-se1.protection.inumbo.net>)
 id 1u1rep-0006qC-1j
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 18:57:19 +0000
Received: from fllvem-ot03.ext.ti.com (fllvem-ot03.ext.ti.com [198.47.19.245])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1ef1907a-13e2-11f0-9eaa-5ba50f476ded;
 Mon, 07 Apr 2025 20:57:16 +0200 (CEST)
Received: from lelv0266.itg.ti.com ([10.180.67.225])
 by fllvem-ot03.ext.ti.com (8.15.2/8.15.2) with ESMTPS id 537IutB9316745
 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Mon, 7 Apr 2025 13:56:55 -0500
Received: from DLEE110.ent.ti.com (dlee110.ent.ti.com [157.170.170.21])
 by lelv0266.itg.ti.com (8.15.2/8.15.2) with ESMTPS id 537IutdK012020
 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=FAIL);
 Mon, 7 Apr 2025 13:56:55 -0500
Received: from DLEE115.ent.ti.com (157.170.170.26) by DLEE110.ent.ti.com
 (157.170.170.21) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.2507.23; Mon, 7
 Apr 2025 13:56:54 -0500
Received: from lelvsmtp5.itg.ti.com (10.180.75.250) by DLEE115.ent.ti.com
 (157.170.170.26) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.2507.23 via
 Frontend Transport; Mon, 7 Apr 2025 13:56:54 -0500
Received: from fllvsmtp8.itg.ti.com ([10.249.42.149])
 by lelvsmtp5.itg.ti.com (8.15.2/8.15.2) with ESMTP id 537Iup4C094348;
 Mon, 7 Apr 2025 13:56:54 -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: 1ef1907a-13e2-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ti.com;
	s=ti-com-17Q1; t=1744052215;
	bh=wQeXaz16g8BvuxKa6rSagWr4SkeKW522Qc0ciOgW77o=;
	h=From:To:CC:Subject:Date:In-Reply-To:References;
	b=YyV0WH13acGXO2MqcdiuapW5EDbZoLetWPnzKFUUakaQRQ9MTI7eYhzu2w1sbN8ur
	 8s3jFQd/M99IPCvVtnTpxx0PihPvrXpSVIjru6/y+JaHyFqsUtrQOP9fcpICB3LXxR
	 kZVkq+97visn0kbCtgTtjyMrHIyB1rClBtgciiWQ=
From: Andrew Davis <afd@ti.com>
To: Arnd Bergmann <arnd@arndb.de>, Andre Przywara <andre.przywara@arm.com>,
        Russell King <linux@armlinux.org.uk>, Daniel Mack <daniel@zonque.org>,
        Haojian Zhuang <haojian.zhuang@gmail.com>,
        Robert Jarzmik
	<robert.jarzmik@free.fr>,
        Alexey Charkov <alchark@gmail.com>,
        Krzysztof
 Kozlowski <krzk@kernel.org>,
        Stefano Stabellini <sstabellini@kernel.org>
CC: <linux-arm-kernel@lists.infradead.org>, <linux-kernel@vger.kernel.org>,
        <xen-devel@lists.xenproject.org>, Andrew Davis <afd@ti.com>
Subject: [PATCH v5 5/5] arm/xen: Switch to new sys-off handler API
Date: Mon, 7 Apr 2025 13:56:50 -0500
Message-ID: <20250407185650.411887-6-afd@ti.com>
X-Mailer: git-send-email 2.39.2
In-Reply-To: <20250407185650.411887-1-afd@ti.com>
References: <20250407185650.411887-1-afd@ti.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-C2ProcessedOrg: 333ef613-75bf-4e12-a4b1-8e3623f5dcea

Kernel now supports chained power-off handlers. Use
register_platform_power_off() that registers a platform level power-off
handler. Legacy pm_power_off() will be removed once all drivers and archs
are converted to the new sys-off API.

Signed-off-by: Andrew Davis <afd@ti.com>
---
 arch/arm/xen/enlighten.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
index a395b6c0aae2a..8655bc3d36347 100644
--- a/arch/arm/xen/enlighten.c
+++ b/arch/arm/xen/enlighten.c
@@ -541,7 +541,7 @@ static int __init xen_late_init(void)
 	if (!xen_domain())
 		return -ENODEV;
 
-	pm_power_off = xen_power_off;
+	register_platform_power_off(xen_power_off);
 	register_restart_handler(&xen_restart_nb);
 	if (!xen_initial_domain()) {
 		struct timespec64 ts;
-- 
2.39.2



From xen-devel-bounces@lists.xenproject.org Mon Apr 07 19:02:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 19:02:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.941011.1340594 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1rk3-0004Br-1r; Mon, 07 Apr 2025 19:02:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 941011.1340594; Mon, 07 Apr 2025 19:02: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 1u1rk2-0004Bk-V3; Mon, 07 Apr 2025 19:02:42 +0000
Received: by outflank-mailman (input) for mailman id 941011;
 Mon, 07 Apr 2025 19:02: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=wFJZ=WZ=arndb.de=arnd@srs-se1.protection.inumbo.net>)
 id 1u1rk1-0004Be-L0
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 19:02:41 +0000
Received: from fout-a5-smtp.messagingengine.com
 (fout-a5-smtp.messagingengine.com [103.168.172.148])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id df93462c-13e2-11f0-9eaa-5ba50f476ded;
 Mon, 07 Apr 2025 21:02:39 +0200 (CEST)
Received: from phl-compute-12.internal (phl-compute-12.phl.internal
 [10.202.2.52])
 by mailfout.phl.internal (Postfix) with ESMTP id DB938138134B;
 Mon,  7 Apr 2025 15:02:37 -0400 (EDT)
Received: from phl-imap-11 ([10.202.2.101])
 by phl-compute-12.internal (MEProxy); Mon, 07 Apr 2025 15:02:37 -0400
Received: by mailuser.phl.internal (Postfix, from userid 501)
 id 2F08D2220073; Mon,  7 Apr 2025 15:02:37 -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: df93462c-13e2-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arndb.de; h=cc
	:cc:content-transfer-encoding:content-type:content-type:date
	:date:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to; s=fm1; t=1744052557;
	 x=1744138957; bh=bCo1qyJ6rZTiBfA+a51RdFo714rHFIPWspJfKngp7mU=; b=
	IpoS32TM2GnPNE8jNWp6Yxp5PoAZZ1OMYqFmOP/lmXEjsxbNamh0lZ6yrpD2dVKA
	WWCQweWeVuhzc2Pg+9QRByz5/uvT/HZFFnnbBmTXTbLIQICIPl1CSxG+3fkV4CKB
	8LRFcmpLsPg2E8Gpz24O/EEnrNGZMU2MAOsutpv+5xWiaDbNXmr62KdUIaQixDeQ
	tjuey6T7gZuL6Bo10i6c2EZyVYK1+2NKjiDOqEfrQRRg3wN61TeisjQ6oWMmkHey
	eN93pUPLtd0cDZUzYNzDSKXBIV16Oq/S1kZAR1NHg4bzgLTxdz3mi5p/l4vayKCF
	Urjo5NqY4U6twx007ihGuQ==
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=fm2; t=1744052557; x=
	1744138957; bh=bCo1qyJ6rZTiBfA+a51RdFo714rHFIPWspJfKngp7mU=; b=D
	Lkd2VJ7beZ5HHqDsQ69haYdUKdbhUW+vTzPtKMLui8vsiN6c4aYYQRsPeB8wTqVH
	la+9NpAwsbslNrHrISasLf4EfN2/VTZCQhMolxHV2e4gMQKdSgfI7bdryGkZLEUv
	kfRdnQ7rmk18ZCRjTPWOic/G71fPAEkHrJqzsiRtwfHudOcV9pqG1t209zuQmE2t
	ZJRJcdIF8huxbtRBGvh4KTY+YBqTwz7MSS3il8zgo0G55eXGe5YL5HOe9xvmJUpW
	YzUddTCmWDZCUP2S2+1Bm44irlAGBOBKuzdc3xhiNmlgwqJ6uzumj/4bv7TIlE71
	Oqs9ed3kNfsARPKR8F40g==
X-ME-Sender: <xms:TSH0Z3QKE0m2joPGDvtjPwxtKcFqHlhBx5FzewDaUBacNWue_5v7pA>
    <xme:TSH0Z4zHZbuNI-fk5frE4xc_deIbcX55RkINwLJnm1PCdJGFN9PXamLCgUY8hQJho
    64Lq_GHYAYdHo3WHz8>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvtddtleekucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
    pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
    gvnhhtshculddquddttddmnecujfgurhepofggfffhvfevkfgjfhfutgfgsehtjeertder
    tddtnecuhfhrohhmpedftehrnhguuceuvghrghhmrghnnhdfuceorghrnhgusegrrhhnug
    gsrdguvgeqnecuggftrfgrthhtvghrnhephfdthfdvtdefhedukeetgefggffhjeeggeet
    fefggfevudegudevledvkefhvdeinecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrg
    hmpehmrghilhhfrhhomheprghrnhgusegrrhhnuggsrdguvgdpnhgspghrtghpthhtohep
    uddvpdhmohguvgepshhmthhpohhuthdprhgtphhtthhopegrnhgurhgvrdhprhiihiifrg
    hrrgesrghrmhdrtghomhdprhgtphhtthhopehlihhnuhigsegrrhhmlhhinhhugidrohhr
    ghdruhhkpdhrtghpthhtoheprhhosggvrhhtrdhjrghriihmihhksehfrhgvvgdrfhhrpd
    hrtghpthhtoheprghltghhrghrkhesghhmrghilhdrtghomhdprhgtphhtthhopehhrgho
    jhhirghnrdiihhhurghnghesghhmrghilhdrtghomhdprhgtphhtthhopehkrhiikheskh
    gvrhhnvghlrdhorhhgpdhrtghpthhtohepshhsthgrsggvlhhlihhniheskhgvrhhnvghl
    rdhorhhgpdhrtghpthhtoheplhhinhhugidqrghrmhdqkhgvrhhnvghlsehlihhsthhsrd
    hinhhfrhgruggvrggurdhorhhgpdhrtghpthhtohepgigvnhdquggvvhgvlheslhhishht
    shdrgigvnhhprhhojhgvtghtrdhorhhg
X-ME-Proxy: <xmx:TSH0Z80WDpD9n7QYR6u06DYm7i-oCpVlSUDHOOTFSl2Doc_16VEgNw>
    <xmx:TSH0Z3BPWw4u6xEYbpDDusC3mTnWnkIL6Q2Ui596DKGEn1dWCpl7sQ>
    <xmx:TSH0Zwg3w70j6V51hHBnHO1aAGRspv6bll-Ld8ZdSy2exAP4xSLCIg>
    <xmx:TSH0Z7o61lvIp-0iMWrlAHHPrn-sjT0O_REA_Kzy-5lQGQOLO8DfFQ>
    <xmx:TSH0ZwtbPXSiP36-fUYJ42TP6UKSmhyfmOU7arb2HfwqrRW6bUUo3x5T>
Feedback-ID: i56a14606:Fastmail
X-Mailer: MessagingEngine.com Webmail Interface
MIME-Version: 1.0
X-ThreadId: T689809fba064b46a
Date: Mon, 07 Apr 2025 21:02:15 +0200
From: "Arnd Bergmann" <arnd@arndb.de>
To: "Andrew Davis" <afd@ti.com>, "Andre Przywara" <andre.przywara@arm.com>,
 "Russell King" <linux@armlinux.org.uk>, "Daniel Mack" <daniel@zonque.org>,
 "Haojian Zhuang" <haojian.zhuang@gmail.com>,
 "Robert Jarzmik" <robert.jarzmik@free.fr>,
 "Alexey Charkov" <alchark@gmail.com>,
 "Krzysztof Kozlowski" <krzk@kernel.org>,
 "Stefano Stabellini" <sstabellini@kernel.org>
Cc: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org,
 xen-devel@lists.xenproject.org
Message-Id: <d4a4f00f-ef52-4635-bd81-659e8dcf9fde@app.fastmail.com>
In-Reply-To: <20250407185650.411887-1-afd@ti.com>
References: <20250407185650.411887-1-afd@ti.com>
Subject: Re: [PATCH v5 0/5] Switch more ARM plats to sys-off handler API
Content-Type: text/plain
Content-Transfer-Encoding: 7bit

On Mon, Apr 7, 2025, at 20:56, Andrew Davis wrote:
> Hello all,
>
> Continuing the quest to remove the legacy pm_power_off() global
> function handler. Remove uses from arch/arm/ using the helper
> register_platform_power_off().
>
> These have been sent for several cycles without feedback, not
> sure if there are anymore active platform maintainers who
> can take these individually, maybe these remaining could
> go in directly though the arm-soc tree?

Sure, can you send them to soc@lists.linux.dev in a few
days, with any final Acks you may get? That way it ends up
in patchwork and I can trivially pick them up.

Since it's only a few one-line changes that all do the
same thing, you can also combine them into a single patch.

     Arnd


From xen-devel-bounces@lists.xenproject.org Mon Apr 07 19:26:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 19:26:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.941030.1340603 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1s7R-0003NM-Tp; Mon, 07 Apr 2025 19:26:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 941030.1340603; Mon, 07 Apr 2025 19: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 1u1s7R-0003NF-Py; Mon, 07 Apr 2025 19:26:53 +0000
Received: by outflank-mailman (input) for mailman id 941030;
 Mon, 07 Apr 2025 19: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=tcrT=WZ=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1u1s7Q-0003MO-Ie
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 19:26:52 +0000
Received: from NAM02-BN1-obe.outbound.protection.outlook.com
 (mail-bn1nam02on20603.outbound.protection.outlook.com
 [2a01:111:f403:2407::603])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 402594ce-13e6-11f0-9eaa-5ba50f476ded;
 Mon, 07 Apr 2025 21:26:49 +0200 (CEST)
Received: from BN9PR03CA0193.namprd03.prod.outlook.com (2603:10b6:408:f9::18)
 by SJ5PPF01781787B.namprd12.prod.outlook.com
 (2603:10b6:a0f:fc02::986) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.34; Mon, 7 Apr
 2025 19:26:46 +0000
Received: from BN2PEPF00004FC1.namprd04.prod.outlook.com
 (2603:10b6:408:f9:cafe::e) by BN9PR03CA0193.outlook.office365.com
 (2603:10b6:408:f9::18) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8606.33 via Frontend Transport; Mon,
 7 Apr 2025 19:26:45 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 BN2PEPF00004FC1.mail.protection.outlook.com (10.167.243.187) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8606.22 via Frontend Transport; Mon, 7 Apr 2025 19:26:44 +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, 7 Apr
 2025 14:26:44 -0500
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, 7 Apr
 2025 14:26:44 -0500
Received: from fedora.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; Mon, 7 Apr 2025 14:26:43 -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: 402594ce-13e6-11f0-9eaa-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Yd4JHOipIFqCUCJrpbacXwzc4Krg5a/mBJ+e4hYHWEaDzx12uw9PnwIpKNuY32C3Cv4N0XO/GTHs4MKZmI24POT7iF9cpl8y0Ir99ONOsBZ9d4lRRUWSRzkX9ms46aFkPI8TzoFU+5EcDdOxEWCdqxR0IJFaOLjCdmpBUKWDyg7/Cl9U17HUcIXbTzSyx/rNdnCgs0/n2r186ttMKrFtMnO29x3s+DN2ar+ITf4dr06dlAgu42O7YlA2lu2Xa67jRafVVJUVioj/s0BIbILTjz5lQtcUuemge3QUYEDedS+3AfiMMRfyLNFHwuRp0GzUXT5W8Zlo3xoWDUw2TGS/kw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=pCKz0lPWiKqv7wZcTdrkgrcxezT+4JYBMlY1rOyPxAQ=;
 b=tIAEdccxbtL0P8geGXPSR7QKk1DtAs6r+n5hfzgEsqar1Xu6KEmp91QGonwF6dw8eHgaCPpjwjotBvltZB0Oq2s4qTKmKpDenbwdnhhjWLQXcNWC2YRQYpt2vpSuMVwHY6+t2YAvEAL5gU11JcjnBFFj6yBu8220jUYJ/6sl4MgZO+JShKwAeXnKFy0piA56z74v98KuiicaN1vg1DzrW1zmlnb2OAOvuLHVEAD52fKZaR4fd3g2pUf5oQh6a2b8iPtHNiQkP1I2xi/jAzTuCdco5LTX92pIhG3Xkp4XWhQR/qFeCfIvcAd/IGrITXQgfUv0MBT2l7yYOQObgszIqw==
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=pCKz0lPWiKqv7wZcTdrkgrcxezT+4JYBMlY1rOyPxAQ=;
 b=ChWCduPq5+r/2qwv3OpZq7QN4NlyuFNG7aib2sQpuryqr/6oKdGDgTX12InXIpURilYlE79K5uZikwIAPn9i/5hNGA+CocIKiqaSnQBWwUotJJUfi4S4AELf1alxaDNyPHgWHTHpS//NTTXjYwPlZh79jTV4TI0SQB/zwdY3+XE=
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?Marek=20Marczykowski-G=C3=B3recki?=
	<marmarek@invisiblethingslab.com>, Jason Andryuk <jason.andryuk@amd.com>,
	Anthony PERARD <anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>
Subject: [PATCH] tools/libxl: Skip invalid IRQs
Date: Mon, 7 Apr 2025 15:26:41 -0400
Message-ID: <20250407192641.83554-1-jason.andryuk@amd.com>
X-Mailer: git-send-email 2.49.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
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: BN2PEPF00004FC1:EE_|SJ5PPF01781787B:EE_
X-MS-Office365-Filtering-Correlation-Id: eb895834-963d-470e-0843-08dd760a21fb
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|36860700013|1800799024|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?xzpwBrM4sCDc4CCHvE8JizXWy70JZVHXobFWrKK/9RpqGyxFWWi07py5zO/a?=
 =?us-ascii?Q?OWnikAFuqcvDyjteRp6BsDlr3IEiTdMjauiU536n9ITW9r9nJJWOcRwxIaOu?=
 =?us-ascii?Q?OVRJ0bLOGcZ8qV3Cn8zIXncvOirTZkQfduqK58gCQyeNOn8gKQT30O/ITKK2?=
 =?us-ascii?Q?JA6/hcO7u7daixRnTXe254XRi8ZKjrsSMPQrPgJxufIGfRsSa5biI01t6sYF?=
 =?us-ascii?Q?2hpgU8tm5UL+cvTtbIwp0ewuXL6sz2PVQ/PluS7hzxgNV8e+0OHF/OuoB9ui?=
 =?us-ascii?Q?Sg54uFFTA7pJHuFU97TzaxbeaynYTorBFCICE9p7YuTOpQ2UGgD6C+XrE8P0?=
 =?us-ascii?Q?imYrqkAtmZgKbHbq5LDTLay4YbPoha0vg9oDpSHF1dU1TiSfEEwi7VhGaQmo?=
 =?us-ascii?Q?2h6wh/tdi6no+Mli6ZeL0ClDFaSLc2YpFeq6mSPAGsYbOV2dBu2EppDqQW94?=
 =?us-ascii?Q?c2SE10a1/wFvvhXdFTc7FXwqJYwKDzQnPKu+emn+4maA3aXyaTTKxZdbbYCL?=
 =?us-ascii?Q?L1+Bnd99RFIihiW7HQjESqyDGIuW/Ng5VH7QRCI1e8TsBaFrFAkGaOfGADs2?=
 =?us-ascii?Q?JjHrGREa0uvqnZ8jHw5/O3vOWGSqVKRQQylJ9GRtQtafQbt+7+ioBdi/dVMb?=
 =?us-ascii?Q?SvCCAcGrVFcfRduIuvcYf29K2e94FgxYoJYOHzHNz6HMM2Av0EgcsBHpYJ2Y?=
 =?us-ascii?Q?xH4uzTioFT3x7Yl3ACVboKnY0ChmOKSc5TKXOTU7G7Fsmgru6JmyB0Unf1U1?=
 =?us-ascii?Q?XqrAeEm2uZKUA3cc4R98s9KaTezg/ctrt59pjPMnI2UFWmXrQaYJ9j0AD9wq?=
 =?us-ascii?Q?znWRP4WcdAp0JOPxKPFgbDWFTE7TV9RMd/kMQZnVYDxGwcGJf3M4w98diHuN?=
 =?us-ascii?Q?8+w0EtehWs6LTzrpVRWqyC8bY0VrfgZg9oh1ztoeM/qfl4kiHcG5L6s5z9hZ?=
 =?us-ascii?Q?j0SPQH6Qb78N36lebNISSpfZnndyWlzeG5XP7ET/yMkb88SXP52IVYygjGEo?=
 =?us-ascii?Q?jc/RJhfxuvQjfkTG5mefUJYm+Z4Bv1yPhEsHaKb9lEJWZEZ+3qG5R2VL6S5T?=
 =?us-ascii?Q?QDWeRXkhYlveBCd2dJ9j5aeS/RInwPY7AGpX1B6ur+Wu5AdjBr6Gd0BFqsHe?=
 =?us-ascii?Q?iGFdsul5mkZq+kutW3h+YfjhLCPr3Srw+bn/jnHZuzOMfYj1r6C5PjzsJPh5?=
 =?us-ascii?Q?QTJdueMq/7a3Zh6g11MOJD3tlb1JcvekVOBnxdua1U9aTU3cJeg1rkWQ2Sqz?=
 =?us-ascii?Q?CAlRfqNjr/OT/VnujbxGJvNQOmjLSolEeBhGALnJ1lE6s1CZPJyN51cdCsqB?=
 =?us-ascii?Q?ytzaFnlT+q1Y5fzogmB8WTimloKRB3t6QBnUfVtnnaE90OQLBCHnafpBg6aa?=
 =?us-ascii?Q?qxGMnnPXRAsRjkB2glrlVyxxpP2KrLYyeGpIYtiHPoe85br9YrE2COfTuY7T?=
 =?us-ascii?Q?EQKXPZ9sD1TeqTvUagjSq/KsADhecwPf4t2iJS0JJd7MZI4MM3VRfdn8WGTD?=
 =?us-ascii?Q?llSHjr3NcVg54ffEi9TISs40PXaTjc3FM1ik?=
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 Apr 2025 19:26:44.7860
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: eb895834-963d-470e-0843-08dd760a21fb
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:
	BN2PEPF00004FC1.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ5PPF01781787B

A PCI device's irq field is an 8-bit number.  A value of 0xff indicates
that the device is not connected.  Additionally, the Linux ACPI code can
convert these 0xff values to IRQ_NOTCONNECTED(0x80000000) because
"0x80000000 is guaranteed to be outside the available range of
interrupts and easy to distinguish from other possible incorrect
values."  When the hypercall to assign that IRQ fails, device
passthrough as a whole fails.

Add checking for a valid IRQ and skip the IRQ handling for PCI devices
outside that range.  This allows for passthrough of devices without
legacy IRQs.

Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
---
 tools/libs/light/libxl_pci.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/tools/libs/light/libxl_pci.c b/tools/libs/light/libxl_pci.c
index 1647fd6f47..e0c8866792 100644
--- a/tools/libs/light/libxl_pci.c
+++ b/tools/libs/light/libxl_pci.c
@@ -26,6 +26,9 @@
 #define PCI_BDF_XSPATH         "%04x-%02x-%02x-%01x"
 #define PCI_PT_QDEV_ID         "pci-pt-%02x_%02x.%01x"
 
+/* PCI Interrupt Line is an 8-bit value, 0xff means disconnected. */
+#define PCI_IRQ_LINE_LIMIT     0xff
+
 static unsigned int pci_encode_bdf(libxl_device_pci *pci)
 {
     unsigned int value;
@@ -1495,7 +1498,8 @@ static void pci_add_dm_done(libxl__egc *egc,
             LOGED(ERROR, domainid, "Couldn't open %s", sysfs_path);
             goto out_no_irq;
         }
-        if ((fscanf(f, "%u", &irq) == 1) && irq) {
+        if ((fscanf(f, "%u", &irq) == 1) &&
+            irq > 0 && irq < PCI_IRQ_LINE_LIMIT) {
             r = xc_physdev_map_pirq(ctx->xch, domid, irq, &irq);
             if (r < 0) {
                 LOGED(ERROR, domainid, "xc_physdev_map_pirq irq=%d (error=%d)",
@@ -2257,7 +2261,8 @@ skip_bar:
             goto skip_legacy_irq;
         }
 
-        if ((fscanf(f, "%u", &irq) == 1) && irq) {
+        if ((fscanf(f, "%u", &irq) == 1) &&
+            irq > 0 && irq < PCI_IRQ_LINE_LIMIT) {
             rc = xc_physdev_unmap_pirq(ctx->xch, domid, irq);
             if (rc < 0) {
                 /*
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Mon Apr 07 19:41:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 19:41:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.941047.1340623 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1sL6-0008Hb-Am; Mon, 07 Apr 2025 19:41:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 941047.1340623; Mon, 07 Apr 2025 19: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 1u1sL6-0008HT-7r; Mon, 07 Apr 2025 19:41:00 +0000
Received: by outflank-mailman (input) for mailman id 941047;
 Mon, 07 Apr 2025 19:40: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=tcrT=WZ=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1u1sL4-0008Ee-Sn
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 19:40:58 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on20602.outbound.protection.outlook.com
 [2a01:111:f403:2415::602])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3764ee1d-13e8-11f0-9ffb-bf95429c2676;
 Mon, 07 Apr 2025 21:40:54 +0200 (CEST)
Received: from CH0PR04CA0067.namprd04.prod.outlook.com (2603:10b6:610:74::12)
 by CY5PR12MB6178.namprd12.prod.outlook.com (2603:10b6:930:25::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.31; Mon, 7 Apr
 2025 19:40:51 +0000
Received: from DS3PEPF000099D4.namprd04.prod.outlook.com
 (2603:10b6:610:74:cafe::4c) by CH0PR04CA0067.outlook.office365.com
 (2603:10b6:610:74::12) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8606.34 via Frontend Transport; Mon,
 7 Apr 2025 19:40:50 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 DS3PEPF000099D4.mail.protection.outlook.com (10.167.17.5) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8606.22 via Frontend Transport; Mon, 7 Apr 2025 19:40:50 +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, 7 Apr
 2025 14:40:49 -0500
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, 7 Apr
 2025 14:40:49 -0500
Received: from fedora.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; Mon, 7 Apr 2025 14:40:48 -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: 3764ee1d-13e8-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=QWjLm9Hji0hFWF2rs0NuuT9mF7MsSNVY0CIbajs695r91tQMc5LlcamWjB9gCOY+FKAX32J2PIxxqfiydYWaOzc251Ay3NeXH5K7WJ0C3AlMSakVWNIpb37N7aOpQpdpVGcCzQGjCqIecYqCzEIUXP0MeWJFAAvdzTeI6er3Dmu6MTyUcKNq+QbR5h9N3zNkbNzj1xlZxS7Z3fZk6BKUjNAA/5zazAagCSQOdq/uVZNhDeS1P5hkIFGtiZStTzUyQ24jaKzaljjnsRN9LBxtFgl8hJuouLkUOS0zvu+Q91VsGRuHfHcP4vcOIGEJ3cb49dP9+nQgqNuXY2OrxnMu1w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=3p0FGui6Z5M9Ye7NZVim8VjmVP70aPbrgWc4AnqYQ4o=;
 b=LNhiVxYkQ8Wo9fC8BDPNqWGrRwE6qBP2U8E74hc9I16ctRyDdE92LjwNOdGzud+9MaI+cShZP9R8hK1BoyTJQO52oj5ouJom0YUknqJfVPfH/a0/x9y4vrnUwLE+CjDBV7N8yx05EiVrEXXtVUO3uSSxnEUezC+OJe8taC5L9MYz4smDyg3EkPoE66ZqhwqR2/YcQ345buZh5tMlZmPVxPHar40xpigDRWDoFhR74SSydVKMi7YG4qCH3dvk/IiFlCTcGXYASWxkgN1ZWqOAx3BfWR3pteRKYw3jtPfD/yZDpdNFP/r4YHVo+DcqcwWuIaaX6U1Sql/kB8GkHlf+Og==
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=3p0FGui6Z5M9Ye7NZVim8VjmVP70aPbrgWc4AnqYQ4o=;
 b=tRGCJW1iUyBIgazKvdEwoA2mlDXxuNysE1pimItVEarbek/4pc5hSAlETQuhMgkTFSGn2bpMZi/fA/+SszqIof4m4YGY/KC/VeNBfVtQIsJW7AyCq4VPewv5OlMtVdSNHioQlrlcPHe4xyby9KSQ+b+82vmvXw7LBpeVP6qIfl4=
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: "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>, "Volodymyr
 Babchuk" <Volodymyr_Babchuk@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, "Jan
 Beulich" <jbeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Jason Andryuk <jason.andryuk@amd.com>
Subject: [PATCH v4 1/7] xen: introduce hardware domain create flag
Date: Mon, 7 Apr 2025 15:40:32 -0400
Message-ID: <20250407194038.83860-2-jason.andryuk@amd.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250407194038.83860-1-jason.andryuk@amd.com>
References: <20250407194038.83860-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: DS3PEPF000099D4:EE_|CY5PR12MB6178:EE_
X-MS-Office365-Filtering-Correlation-Id: 4f7664cb-c172-47d7-6fdc-08dd760c19e4
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|82310400026|1800799024|7416014|376014;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?d8Knl9EmaK7+G0KCMu483uELKYP/ZRCHcRvmUxn8LxYOJRsqPFwoREhKaN/x?=
 =?us-ascii?Q?L/js0Kz5CtOQ2fBWTXmn701mB/KofuXZCCLCyvRFOz/cp/+2AvyN18pEFfXi?=
 =?us-ascii?Q?z3O6KbWK4mXPaPhINOWZkpFRUJdWSngrQdpZDlmOHZGrKwtzsyyIEvKTxsJg?=
 =?us-ascii?Q?Hwd7IsooxVE6AT3E13vprK6qERU37kLAPrxU8ktn6cjchYP5OefvZro7RJ9J?=
 =?us-ascii?Q?QJHUddy2/7y2OD9PrPlLvPmNKOg8wWQP6cwNjYWKXDpmjIv6LgtJ4RVXSLuD?=
 =?us-ascii?Q?6prlqJmD7/j3otB1HOV64DLKI9J/244y2dGD/9+hS8i3vLkcECFYfgEXjrzA?=
 =?us-ascii?Q?sEOzibwQWCBoc3KWK+FDkWWwOQldyf05ONvPRX+Z3R5BMhpHrPcHV0czBxE/?=
 =?us-ascii?Q?Y7FU6wFvQ5/99bY4cxfX1hKZ/l3R0rNV/NUJM62hVUtD5OADqLmWuiRRwOJ+?=
 =?us-ascii?Q?WYEiPiIc9cVCHvsgdI2oOZo0E2HrDRRYqEyOz8E9q1UawOyE0chrdwth/7Yl?=
 =?us-ascii?Q?p1fTpF4zqoCFhmMhLO7md76B9PcHxgHV23jxE0xm7sQcNI32AvEAmxZYCPUe?=
 =?us-ascii?Q?+BHAimrbih4fXVuR0lD+tgjUI2ScA2dOfwO2fW/JwQLfMEvaJPOlCL/xnKcH?=
 =?us-ascii?Q?RMHkoSdnBrUOd0kYv2Y8ktDncR80aIaUMfu81fSJwWGC4+3BmHUqj36q2Y0z?=
 =?us-ascii?Q?HLsx9Gd7X+hAa+1zdWOpgAkmO6trPbv29lARyRmdr1jNNkiFSUqYAyOCywwP?=
 =?us-ascii?Q?lnUi+NVpcDmRWghqwbcgI0zyFl4gXXVveA3jKXuKqd4Y60omTcLCCNYDaIUO?=
 =?us-ascii?Q?KsRBDKIPMu5Sq/6g9vWGQwDy/j04n7FF5paBSs3CBltB+oi7SVEKjvbJkBpv?=
 =?us-ascii?Q?dsRw5ZHtqqBI1CO1VYWfQu2zwC01xFQydvTaWUxrMKvYmEHef17Xfr7SZpYL?=
 =?us-ascii?Q?ISuq5E2nWn0Oe7l3BxYLz9qMgdhLWfs35qvEI0c5ivkoFNthEWrSmSDJ/tzt?=
 =?us-ascii?Q?vbBntC9hzUg8qRs1lhgQi7JnmAcz/j7T7eHHolJM4gyoiA5jHf8mu0cR+koB?=
 =?us-ascii?Q?+IOSv6O/zYI7GCNf1gkjZK95q7pZzeexKr67Bo1uP3R3olGjTIqAnCWjP6EV?=
 =?us-ascii?Q?YGt8FhohoxLG3bqwrO1Z6xvNwZPZ9ndSU6JRwdslArzR62IKFFvBkdPBNKkR?=
 =?us-ascii?Q?eo647WtfG3fAGlouTFkMmGKlsNNKsmuxHN+pMxFR+KBzKHbdr39PHj37iCxU?=
 =?us-ascii?Q?kGsj123GvmCD/KLp/jOAaD5FeReIcfT8NdZZVwnvFrsHjHkBA4RxxBHsrOfM?=
 =?us-ascii?Q?S+WigcxbPajOnwkp+X/+Sx084atucXcCCfJVVWS29mjFWGyUsZYtkNSmBUQO?=
 =?us-ascii?Q?GbiAIrWq9f7+wjJ8DIp/yeNG0AMcPC2GSFfmFASZ8B5BMP3SOFw8/i1M5hP2?=
 =?us-ascii?Q?xonzBLy7pI5pM62YxkneSCciKIz0Zt8ecwrtM2iXqs5jUASWpxVg2w+UrfJP?=
 =?us-ascii?Q?zHiKzWZn9xX9XXhIeGUY4RVjCYxUpzZup6YP?=
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)(7416014)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Apr 2025 19:40:50.1627
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 4f7664cb-c172-47d7-6fdc-08dd760c19e4
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:
	DS3PEPF000099D4.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR12MB6178

From: "Daniel P. Smith" <dpsmith@apertussolutions.com>

Add and use a new internal create domain flag to specify the hardware
domain.  This removes the hardcoding of domid 0 as the hardware domain.

This allows more flexibility with domain creation.

The assignment of d->cdf is moved later so CDF_hardware is added for the
late_hwdom case.  Also old_hwdom has the flag removed to reflect the
change.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
---
v4:
Move d->cdf assignment later
Remove Jan's R-b

v3:
Or-in CDF_hardware for late hwdom case
Add Jan's R-b

v2:
() around binary &
Only allow late_hwdom for dom0
---
 xen/arch/arm/domain_build.c |  2 +-
 xen/arch/x86/setup.c        |  3 ++-
 xen/common/domain.c         | 15 +++++++++++----
 xen/include/xen/domain.h    |  2 ++
 4 files changed, 16 insertions(+), 6 deletions(-)

diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index 634333cdde..b8f282ff10 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -2369,7 +2369,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;
+    unsigned int flags = CDF_privileged | CDF_hardware;
     int rc;
 
     /* The vGIC for DOM0 is exactly emulating the hardware GIC */
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index d70abb7e0c..67d399c469 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -1018,7 +1018,8 @@ static struct domain *__init create_dom0(struct boot_info *bi)
 
     /* Create initial domain.  Not d0 for pvshim. */
     domid = get_initial_domain_id();
-    d = domain_create(domid, &dom0_cfg, pv_shim ? 0 : CDF_privileged);
+    d = domain_create(domid, &dom0_cfg,
+                      pv_shim ? 0 : CDF_privileged | CDF_hardware);
     if ( IS_ERR(d) )
         panic("Error creating d%u: %ld\n", domid, PTR_ERR(d));
 
diff --git a/xen/common/domain.c b/xen/common/domain.c
index 585fd726a9..116ac183cd 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -804,9 +804,6 @@ struct domain *domain_create(domid_t domid,
     d->domain_id = domid;
     d->unique_id = get_unique_id();
 
-    /* Holding CDF_* internal flags. */
-    d->cdf = flags;
-
     /* Debug sanity. */
     ASSERT(is_system_domain(d) ? config == NULL : config != NULL);
 
@@ -820,15 +817,25 @@ struct domain *domain_create(domid_t domid,
     d->is_privileged = flags & CDF_privileged;
 
     /* Sort out our idea of is_hardware_domain(). */
-    if ( domid == 0 || domid == hardware_domid )
+    if ( (flags & CDF_hardware) || domid == hardware_domid )
     {
         if ( hardware_domid < 0 || hardware_domid >= DOMID_FIRST_RESERVED )
             panic("The value of hardware_dom must be a valid domain ID\n");
 
+        /* late_hwdom is only allowed for dom0. */
+        if ( hardware_domain && hardware_domain->domain_id )
+            return ERR_PTR(-EINVAL);
+
         old_hwdom = hardware_domain;
         hardware_domain = d;
+        flags |= CDF_hardware;
+        if ( old_hwdom )
+            old_hwdom->cdf &= ~CDF_hardware;
     }
 
+    /* Holding CDF_* internal flags. */
+    d->cdf = flags;
+
     TRACE_TIME(TRC_DOM0_DOM_ADD, d->domain_id);
 
     lock_profile_register_struct(LOCKPROF_TYPE_PERDOM, d, domid);
diff --git a/xen/include/xen/domain.h b/xen/include/xen/domain.h
index a34daa7d10..e10baf2615 100644
--- a/xen/include/xen/domain.h
+++ b/xen/include/xen/domain.h
@@ -53,6 +53,8 @@ domid_t get_initial_domain_id(void);
 #else
 #define CDF_staticmem            0
 #endif
+/* This is the hardware domain.  Only 1 allowed. */
+#define CDF_hardware             (1U << 3)
 
 #define is_domain_direct_mapped(d) ((d)->cdf & CDF_directmap)
 #define is_domain_using_staticmem(d) ((d)->cdf & CDF_staticmem)
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Mon Apr 07 19:41:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 19:41:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.941043.1340613 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1sL2-00080P-1r; Mon, 07 Apr 2025 19:40:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 941043.1340613; Mon, 07 Apr 2025 19:40: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 1u1sL1-00080I-Ub; Mon, 07 Apr 2025 19:40:55 +0000
Received: by outflank-mailman (input) for mailman id 941043;
 Mon, 07 Apr 2025 19:40: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=tcrT=WZ=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1u1sL0-0007y6-Kx
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 19:40:54 +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 36e00a8e-13e8-11f0-9eaa-5ba50f476ded;
 Mon, 07 Apr 2025 21:40:53 +0200 (CEST)
Received: from MW4PR03CA0067.namprd03.prod.outlook.com (2603:10b6:303:b6::12)
 by BL3PR12MB6522.namprd12.prod.outlook.com (2603:10b6:208:3be::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.34; Mon, 7 Apr
 2025 19:40:48 +0000
Received: from SJ1PEPF00001CEA.namprd03.prod.outlook.com
 (2603:10b6:303:b6:cafe::37) by MW4PR03CA0067.outlook.office365.com
 (2603:10b6:303:b6::12) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8606.34 via Frontend Transport; Mon,
 7 Apr 2025 19:40:48 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ1PEPF00001CEA.mail.protection.outlook.com (10.167.242.26) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8606.22 via Frontend Transport; Mon, 7 Apr 2025 19:40:47 +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, 7 Apr
 2025 14:40:46 -0500
Received: from fedora.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; Mon, 7 Apr 2025 14:40:45 -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: 36e00a8e-13e8-11f0-9eaa-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=uahmsSet7qDFQIsMADESFvIIKTBQNQyXV577ljuUzEJpjmQEfE9NYNy1M+/9XOcQpUYW++ftMYHqXFfncsORGM1opzQZnbBgs0rA7Y9E/0pt3kxDg9Bbx53xqc6hvHBtc0DQIcAjMP3GdX+JbBg6Cw15ahH8D1EPuPgYmuBzcQprazZQTEy9yUcrIM+RpbENwqDzsXJGn1hVvkBvPauOtjmU0aYBP5IVxeq7AKKheP3qwzOB3S+SyGCDK11wnYSu9ItF+GGO8zIVGFOK5QnIzYkfjXbnOYmi5/8+MMOcT5veQLFP01RfneY7Dod+bAk+ydxVWrss4NNneBU1rRe7qw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ejsmOXKBrbjqmaNCagfXX2dJXgSreeVEa39LmdbaGHI=;
 b=NZY9WYcgaoc6UyUnhoqo6vQdgIGtpSCDcj/ocBtpEzYxFsa426XAA0pOGvNbb3SAbKkVRh298TO9k5JbI7+iUFPAimWCtwEeRqPpcOdAN108ZtdIpcKO29QfBTWQbgpLSNSGnU7+n2XTgU0e1WvJhY5yLadmdPCaqlsiNGCPqxjamBpWCm3th4BAX5GRxiAoS/kyBOQz9csz+3sFJkjDiMBUpwqxhqDtp3qkHarAlfPS8xFZhHsJb1Tr7AxBMWLU9YkPcKkqtlWxtjS2925F3IFS0fB5TvycoetvngY0eqz8mFd3cSqcW/9UFdriqPjnpca0GuWMHRrU23UBIR1rMA==
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=ejsmOXKBrbjqmaNCagfXX2dJXgSreeVEa39LmdbaGHI=;
 b=htRGEjJERwcw7xZGTiDPryxo3leKtywou1sftMKMSarOffjX2H1HFptW6rH2782V8FcsF5peKWN3IQV/XLvglqP1ouK0LZAe5NjpReYcciGo0OPIox05aJnRkMTc/d/bTrRbKMXAtllfD3WS3bN0NgDfohrhPkponcMvbZdpK8E=
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>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, "Volodymyr
 Babchuk" <Volodymyr_Babchuk@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, "Jan
 Beulich" <jbeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>
Subject: [PATCH v4 0/7] ARM split hardware and control domains
Date: Mon, 7 Apr 2025 15:40:31 -0400
Message-ID: <20250407194038.83860-1-jason.andryuk@amd.com>
X-Mailer: git-send-email 2.49.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
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: SJ1PEPF00001CEA:EE_|BL3PR12MB6522:EE_
X-MS-Office365-Filtering-Correlation-Id: 05654780-817b-4a5c-ebf6-08dd760c1852
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|376014|36860700013|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?KgQzxbnIveMQYZZ0t4+7amrO0e0Pj5MUEurSKvZYHOirNTkPKW3MaGrUlFVn?=
 =?us-ascii?Q?o7RRtUEdv3RUEuHcT6DtF4WFFFN0DtQVVAs3nVBpijLAA5YqfDkblVP2ussS?=
 =?us-ascii?Q?Jul9zCD2JwCal/GW/avSNYmEKY78vkKlpPL794P007fDADfSdMFdpuqjZuwF?=
 =?us-ascii?Q?BD3pK+L4JzmBEXlxxn03mxrRBnv3Gx/T2FAGl3azP99VksWrSCOZ+ucLoyWW?=
 =?us-ascii?Q?vavmLQPy16nSu79RL38WxUTCoOdFwdIH/RTziLmALHu3Q6CBQHG8L/ZQkAvc?=
 =?us-ascii?Q?r//w47USuxOGPtfFJMx6tJq+ueUrWMgrzb8a03BIRfyurhlec+uYzBRl5SPh?=
 =?us-ascii?Q?OG0n6buZHnHXJF8WV3omCutApTa08lXKr6ZsghQZ8uulq4z/KKKz1tO/eZEf?=
 =?us-ascii?Q?cvQ2TPlTFmM/Fco5VLDEwti425J951WgL7mkmspDBVCME50XaoRfKk7HzPha?=
 =?us-ascii?Q?Bl3gieFPYm3x1RzdjVi90fI1Sk+86JoED0t2bVZOuIAwyY2vcSQcvfWTRwfA?=
 =?us-ascii?Q?vGyZnVYbFqSCkH4fV2hdUGY1ddSjRd160ymakdhgXzAyxsVzJJjV0+TnpxSi?=
 =?us-ascii?Q?SIvJAEQb3M0cdg4DqSR/+KADyglGp+Tw6IT5LqLOxGJQmYSP5qK14CFallWt?=
 =?us-ascii?Q?h2yLhJwa/O38QvqYJy4kJ3pbRu5X21RmaxYK4hypeNAtF7N5g8b/Vr/2+7Zo?=
 =?us-ascii?Q?q8KGz491VakTWUjvmlxg3Dy/6tBBNB0X8Vmo5NRZn2Vl5g2yfeHLhlsP8qHN?=
 =?us-ascii?Q?fckYvg8eOYSgeZnA2TShar7DfZzFKxm9gfEs2THydCETn3M5MKIx4VWEamv8?=
 =?us-ascii?Q?LfKiztEfoP//5a537AOvUkOb9X2uGuMOjcZKLpIO/aRzqxX4SYmNspQ3crFp?=
 =?us-ascii?Q?EoPsVupT0WAWUHdfNZiiNuq/87qmzgPUZ3tsI+2qIWn3Qm2zy0XWfQRuPd7y?=
 =?us-ascii?Q?SoWwYpk1rInTKIBdP+lx/Q1llFVFgUvomXw4wQ7IhdCgvpGOhbSkQIdSLfuh?=
 =?us-ascii?Q?nSCp8BXWF7b3pbaAqf+0+pomKtoaSCAOescw6aLD/H13LNzWcpOIkK4n/6L4?=
 =?us-ascii?Q?iJ8ufjebtG10FoAmcOTB30QgsPW4wTbTI14l7kNH4EerMRczWj3YF0xNmxO/?=
 =?us-ascii?Q?/S+K9nplDYAR1X4y5Kfl7FosIK8R9TIdc3uRkdoalaB/xlBv5AXZDktfysmR?=
 =?us-ascii?Q?rKPB83FOV4xR0xoXqfFaEPwitw68mhIZ/cSlUg/s4rPIVP9QRSt17fw5JIQO?=
 =?us-ascii?Q?h7FjYUL6PvYmheH1BMBbHQ7J8BNccN9hk4iKMTVg6FEcznFJZHo/tWuELBL+?=
 =?us-ascii?Q?uiyn4nXGCr+yBDPKOtpBMZ5nj6HYj8n2BoUAUDD/faC+BWa57DuBpAfOKqlx?=
 =?us-ascii?Q?+3Z1EW68r4xXiyfJykBVIG5ww6jCXdEHHewQdiHN3XeiAJppnCOTXTHZtVU3?=
 =?us-ascii?Q?QUn/7tYHmeUSLtEs1coOkxTgFJACY7IrAegpd1BgjAwL28jrtduySLlY3tLT?=
 =?us-ascii?Q?lZuQxpQaYCaVFad0iaMi8r/g31Gy7rjGHYoG?=
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)(376014)(36860700013)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Apr 2025 19:40:47.4688
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 05654780-817b-4a5c-ebf6-08dd760c1852
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:
	SJ1PEPF00001CEA.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL3PR12MB6522

This series implements separation of dom0 into separate hardware and
control domains.  It uses the capabilities idea from Hyperlaunch -
hardware, control, and xenstore.  It's been tested with dom1 as
control, dom2 as a domU, and dom3 as hardware and xenstore.

To keep things more managable, this v4 is only the ARM hypervisor changes,
and one associated init-dom0less change.  The series is slightly
re-ordered to move xenstore changes ahead of adding the capabilities.

"xen/arm: dom0less use has_dtb local variable" is a new patch to
slightly simplify "xen/arm: Add capabilities to dom0less".

Setting hardware domain as domid 0 is removed.

I've been unable to run a combined control/xenstore.  Linux console
output stops shortly after the domain determines it should be XS_LOCAL.
I have not investigated further.

Daniel P. Smith (1):
  xen: introduce hardware domain create flag

Jason Andryuk (6):
  xen/arm: dom0less hwdom construction
  xen/arm: dom0less delay xenstore initialization
  xen/arm: dom0less seed xenstore grant table entry
  tools/init-dom0less: Only seed legacy xenstore grants
  xen/arm: dom0less use has_dtb local variable
  xen/arm: Add capabilities to dom0less

 docs/misc/arm/device-tree/booting.txt     |  11 ++
 tools/helpers/init-dom0less.c             |  10 +-
 xen/arch/arm/dom0less-build.c             | 197 ++++++++++++++++------
 xen/arch/arm/domain.c                     |   3 +-
 xen/arch/arm/domain_build.c               |  11 +-
 xen/arch/arm/include/asm/dom0less-build.h |   2 +
 xen/arch/arm/include/asm/domain_build.h   |   3 +-
 xen/arch/x86/setup.c                      |   3 +-
 xen/common/domain.c                       |  15 +-
 xen/common/grant_table.c                  |  14 ++
 xen/include/public/bootfdt.h              |  31 ++++
 xen/include/xen/domain.h                  |   2 +
 xen/include/xen/grant_table.h             |   4 +
 xen/include/xen/types.h                   |   1 +
 14 files changed, 243 insertions(+), 64 deletions(-)
 create mode 100644 xen/include/public/bootfdt.h

-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Mon Apr 07 19:41:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 19:41:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.941048.1340628 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1sL6-0008K8-Jl; Mon, 07 Apr 2025 19:41:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 941048.1340628; Mon, 07 Apr 2025 19: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 1u1sL6-0008Jg-GM; Mon, 07 Apr 2025 19:41:00 +0000
Received: by outflank-mailman (input) for mailman id 941048;
 Mon, 07 Apr 2025 19:40:59 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=tcrT=WZ=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1u1sL5-0007y6-90
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 19:40:59 +0000
Received: from NAM12-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam12on2062a.outbound.protection.outlook.com
 [2a01:111:f403:200a::62a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3981e34e-13e8-11f0-9eaa-5ba50f476ded;
 Mon, 07 Apr 2025 21:40:58 +0200 (CEST)
Received: from MW4PR03CA0076.namprd03.prod.outlook.com (2603:10b6:303:b6::21)
 by PH0PR12MB8150.namprd12.prod.outlook.com (2603:10b6:510:293::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.27; Mon, 7 Apr
 2025 19:40:52 +0000
Received: from SJ1PEPF00001CEA.namprd03.prod.outlook.com
 (2603:10b6:303:b6:cafe::11) by MW4PR03CA0076.outlook.office365.com
 (2603:10b6:303:b6::21) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8606.27 via Frontend Transport; Mon,
 7 Apr 2025 19:40:52 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ1PEPF00001CEA.mail.protection.outlook.com (10.167.242.26) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8606.22 via Frontend Transport; Mon, 7 Apr 2025 19:40:52 +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, 7 Apr
 2025 14:40:51 -0500
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, 7 Apr
 2025 14:40:51 -0500
Received: from fedora.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; Mon, 7 Apr 2025 14:40:50 -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: 3981e34e-13e8-11f0-9eaa-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=V5yCebZSDd/RZRUWAF8UHdHucpsYmceXq4Ig8ZoxjxTY9SJ5iKxmtpVfDlMt/d5I/QTwhJu+g68hPRYQ3Uajmi59WtVu3dxejZU+qWORw7Ofi3AIPdXTEW+8dfTM7Dwe+kzfpP5RYwCnHZdDWGE3TserBbZycJ//oDQzJBJofgmQr5y5outqYZqF1Lh8z8HdQDdiI6q3Dg7uOArN0Jq63bDSEsKpdAiKEQR5/1Z/sa8r9aMl/u11TzEHjBiIPPPrtiYMchdZsKeIDsyFKdaQXT97BI6Y5ngs7YaFBs4SF4K/8T9epqZvquTmNqED66anHycGtq3/SpkVtM5zUoHiDA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=4qO9SiZnuBr9WdpBWU0DoSKy3ddphr2m8uxBGiGeFiI=;
 b=shhPJkfkMdWhC2HABy+08eTx1Lr6LFa5QrjOPZew/VRucmh058DNsF6e2ZoAPixivJNCvTrlPqOIFp+qEFV3iZJfJhNd4gmULvVw7w/EuhiAwNen5HBdlTp1Wfy1nTIPvDmMxmHpBbW4kaC2oshMCN58oGoe8QKZCRTszZGSApEzfINUpn5CDQy8gyl88GsRS6seP9NXvqU3IapEThzI9Jr0juFL7A+xW3OqjGksXjhDufcYjQgQYQyR+/raXBMw3edZJts+O4eTthAxF1i6OinF8eJb2lNg93/8gX53T2HGJ922rL/0ytdIfLBTOKFbqugapE0/mcviWzn3nRsxwA==
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=4qO9SiZnuBr9WdpBWU0DoSKy3ddphr2m8uxBGiGeFiI=;
 b=pg2hya5bjOCD4TISX3eKMBAxET6aBNcrecS5fNM0qdG8qijUKtTomeM4lcLYPtugksLLiP+9qbnM4brP5uBPXrn4pHpBeBXofGT/47CyBFLQgL5T1xg5sdjpM0i4fqfouXm9dKSUd2Uq2tlDE30zGZsd/A/JmYxOpS2Gw+TQWbM=
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>, 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 2/7] xen/arm: dom0less hwdom construction
Date: Mon, 7 Apr 2025 15:40:33 -0400
Message-ID: <20250407194038.83860-3-jason.andryuk@amd.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250407194038.83860-1-jason.andryuk@amd.com>
References: <20250407194038.83860-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: SJ1PEPF00001CEA:EE_|PH0PR12MB8150:EE_
X-MS-Office365-Filtering-Correlation-Id: 272e456b-4295-4a4c-2db0-08dd760c1b3d
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?UZ+5aFPXSvzdyjVGMBflOuXVZuzpFWWCYEt6ph+zPTo8J8vW4Wf89VLlGMZp?=
 =?us-ascii?Q?P09/HYPMKB79te6XtOAWa0XO6CpmrdPsjXlQJ4r/CHRsukDJljOAX99ePDas?=
 =?us-ascii?Q?4UK9ZHGq3wgAesUJ7in4IPApOdWBsz2Xzqdng9/rku7wQS7jRfXvW63AY793?=
 =?us-ascii?Q?GpYPewV34hB2N/eDjKwyPRzmfL2A8aMuEkwOYUBjFVO6RdYCkdBQK1SvQY2l?=
 =?us-ascii?Q?3I+nzYewSiIHPgM3mkfLnXxfnwm7nX6f/PMqvCCIxlbIypzVJGltXOms6uPU?=
 =?us-ascii?Q?HQVxasPb2ZUwIKoIqwEB1/2JuJFBTaEZqMJnq9gJdtFuwQ9/mvv4yzXtCR7X?=
 =?us-ascii?Q?vJnkK9qdaP2YZQ1JsCUDGGEBlS/TjZC3OmmP7znG4oK/DQOQliraIJ5h9GOc?=
 =?us-ascii?Q?JhVBUYv9kT4jyoEXqKAiJd0isZnnvYtWMjQo06QCrGEtcpVdQQyNzKqQYM77?=
 =?us-ascii?Q?ptdKod3BPZAtMKur5pUHGvGGVM1rYAKuDX9ryI264h3Ul0x0RfV15aKJ56K7?=
 =?us-ascii?Q?A+in82lOi7TCrykTuxU7Q+3BBsJYubZ26s+b4EVckxDtwhOm/XEMyOhHusSB?=
 =?us-ascii?Q?oMXAvKQzC9QrRNo5X3kjXwRvtiM8Js6SnNYT/w7hnsTm7ScEfZV9FEi3+7Sz?=
 =?us-ascii?Q?AZ8hJOF9BQK7O4BdRfGKSbsfnSKroSq4uOhXWxixs2gRG0WkE7OUCSznF6tD?=
 =?us-ascii?Q?JLzYTi3PkRNbXSy4ZjhAK7gmDyaruuDP4ygt2VpYJeIDX+SrmDj/YR31lTh+?=
 =?us-ascii?Q?e6Ijiyw68j0tcAoNoH39aakmSQ87zAMVjAJIPrb69bnwh3M6/XPQT1XZNSdA?=
 =?us-ascii?Q?n6ZBTJhUVGB8r1FVv4KLKR4MtvyDzGDdf+Q2Sfec1/T1zELTKYk792zNG6oR?=
 =?us-ascii?Q?OCkdkn/IZd0y/6Zhbtk/jnRY7yU3iIl1GbXfs+viSOpuj4GKst92lQ/0t7Xm?=
 =?us-ascii?Q?IuH5j5UJwyZ2E+9bKxmyTR9YlLQ06SuZ2P6kK5sBkhqi41+duObJHpB84Egi?=
 =?us-ascii?Q?FZRY9zAlB2zV9Q1s+Be1/xNumg51bWB6uaVT6zFdOeUsmocsfMyQknxzVxAV?=
 =?us-ascii?Q?Gpcrsa0j8pMWExUD9CCpVAc0xG53nenrmYyp+vnK3P2WhDmWvGCYZgIGQcY8?=
 =?us-ascii?Q?VA8HtS9pWZNo7fCGeeZUua7pAMPMYr0Y8h3tagFf2wbdNY/xHBE5DRvMgBEH?=
 =?us-ascii?Q?DESUpU0VKHHKmcTUZXvmMHxHmHm+3yRLyVksEVjG4wFAHM1H0XMjP3/iny2/?=
 =?us-ascii?Q?7of/5jb11RtlMDKMl13k1G/MVmf1E663gKSVU9n821sSppjKK1A7cij/NVD/?=
 =?us-ascii?Q?25UYABy8bqbFHwZFjbDZdxg3cx/AVyr/np4jP54i7ec216b786svQuIPPWqk?=
 =?us-ascii?Q?lHe6//KOaLjWOW2Uv8pQc+uBdFPIHVxL5/ubVal48ZiqLsSmtzF+Z1Pe1D5X?=
 =?us-ascii?Q?TSagiUiPPEgbHpSLDL/vb4TNDEd3SUJoLbdKKS7VEEi5Vrwl5V51RhfydPeq?=
 =?us-ascii?Q?Cw7G1RZgY8z0S4E=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)(36860700013)(376014)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Apr 2025 19:40:52.3751
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 272e456b-4295-4a4c-2db0-08dd760c1b3d
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:
	SJ1PEPF00001CEA.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR12MB8150

When creating a hardware domain, have the dom0less code call
construct_hwdom() which is shared with the dom0 code.  The hardware
domain requires building that best matches the dom0 build path.  Re-use
it to keep them in sync.

The device tree node of the dom0less config is now passed into
construct_hwdom().  dom0 uses /chosen for process_shm while a hwdom will
use the value from its dom0less device tree node.

Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
---
v3:
Rebase on process_shm_chosen() removal
---
 xen/arch/arm/dom0less-build.c           | 57 ++++++++++++++-----------
 xen/arch/arm/domain_build.c             |  7 +--
 xen/arch/arm/include/asm/domain_build.h |  3 +-
 3 files changed, 39 insertions(+), 28 deletions(-)

diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
index bd15563750..7bc6a6c4d7 100644
--- a/xen/arch/arm/dom0less-build.c
+++ b/xen/arch/arm/dom0less-build.c
@@ -929,36 +929,45 @@ static int __init construct_domU(struct domain *d,
     /* type must be set before allocate memory */
     d->arch.type = kinfo.type;
 #endif
-    if ( !dt_find_property(node, "xen,static-mem", NULL) )
-        allocate_memory(d, &kinfo);
-    else if ( !is_domain_direct_mapped(d) )
-        allocate_static_memory(d, &kinfo, node);
-    else
-        assign_static_memory_11(d, &kinfo, node);
-
-    rc = process_shm(d, &kinfo, node);
-    if ( rc < 0 )
-        return rc;
-
-    /*
-     * Base address and irq number are needed when creating vpl011 device
-     * tree node in prepare_dtb_domU, so initialization on related variables
-     * shall be done first.
-     */
-    if ( kinfo.vpl011 )
+    if ( is_hardware_domain(d) )
     {
-        rc = domain_vpl011_init(d, NULL);
+        rc = construct_hwdom(&kinfo, node);
         if ( rc < 0 )
             return rc;
     }
+    else
+    {
+        if ( !dt_find_property(node, "xen,static-mem", NULL) )
+            allocate_memory(d, &kinfo);
+        else if ( !is_domain_direct_mapped(d) )
+            allocate_static_memory(d, &kinfo, node);
+        else
+            assign_static_memory_11(d, &kinfo, node);
 
-    rc = prepare_dtb_domU(d, &kinfo);
-    if ( rc < 0 )
-        return rc;
+        rc = process_shm(d, &kinfo, node);
+        if ( rc < 0 )
+            return rc;
 
-    rc = construct_domain(d, &kinfo);
-    if ( rc < 0 )
-        return rc;
+        /*
+         * Base address and irq number are needed when creating vpl011 device
+         * tree node in prepare_dtb_domU, so initialization on related variables
+         * shall be done first.
+         */
+        if ( kinfo.vpl011 )
+        {
+            rc = domain_vpl011_init(d, NULL);
+            if ( rc < 0 )
+                return rc;
+        }
+
+        rc = prepare_dtb_domU(d, &kinfo);
+        if ( rc < 0 )
+            return rc;
+
+        rc = construct_domain(d, &kinfo);
+        if ( rc < 0 )
+            return rc;
+    }
 
     domain_vcpu_affinity(d, node);
 
diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index b8f282ff10..0a329f9f5e 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -2305,10 +2305,11 @@ static int __init construct_dom0(struct domain *d)
     if ( rc < 0 )
         return rc;
 
-    return construct_hwdom(&kinfo);
+    return construct_hwdom(&kinfo, NULL);
 }
 
-int __init construct_hwdom(struct kernel_info *kinfo)
+int __init construct_hwdom(struct kernel_info *kinfo,
+                           const struct dt_device_node *node)
 {
     struct domain *d = kinfo->d;
     int rc;
@@ -2327,7 +2328,7 @@ int __init construct_hwdom(struct kernel_info *kinfo)
 
     if ( acpi_disabled )
     {
-        rc = process_shm(d, kinfo, NULL);
+        rc = process_shm(d, kinfo, node);
         if ( rc < 0 )
             return rc;
     }
diff --git a/xen/arch/arm/include/asm/domain_build.h b/xen/arch/arm/include/asm/domain_build.h
index 134290853c..17619c875d 100644
--- a/xen/arch/arm/include/asm/domain_build.h
+++ b/xen/arch/arm/include/asm/domain_build.h
@@ -13,7 +13,8 @@ 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 construct_hwdom(struct kernel_info *kinfo);
+int construct_hwdom(struct kernel_info *kinfo,
+                    const struct dt_device_node *node);
 int domain_fdt_begin_node(void *fdt, const char *name, uint64_t unit);
 int make_chosen_node(const struct kernel_info *kinfo);
 int make_cpus_node(const struct domain *d, void *fdt);
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Mon Apr 07 19:41:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 19:41:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.941049.1340644 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1sL7-0000LQ-Qy; Mon, 07 Apr 2025 19:41:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 941049.1340644; Mon, 07 Apr 2025 19:41: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 1u1sL7-0000LH-Ni; Mon, 07 Apr 2025 19:41:01 +0000
Received: by outflank-mailman (input) for mailman id 941049;
 Mon, 07 Apr 2025 19:41: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=tcrT=WZ=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1u1sL6-0007y6-95
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 19:41:00 +0000
Received: from NAM02-SN1-obe.outbound.protection.outlook.com
 (mail-sn1nam02on20618.outbound.protection.outlook.com
 [2a01:111:f403:2406::618])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3a0f586b-13e8-11f0-9eaa-5ba50f476ded;
 Mon, 07 Apr 2025 21:40:58 +0200 (CEST)
Received: from SJ0PR03CA0128.namprd03.prod.outlook.com (2603:10b6:a03:33c::13)
 by PH7PR12MB6955.namprd12.prod.outlook.com (2603:10b6:510:1b8::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.35; Mon, 7 Apr
 2025 19:40:54 +0000
Received: from SJ1PEPF00001CE4.namprd03.prod.outlook.com
 (2603:10b6:a03:33c:cafe::f4) by SJ0PR03CA0128.outlook.office365.com
 (2603:10b6:a03:33c::13) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8606.32 via Frontend Transport; Mon,
 7 Apr 2025 19:40:54 +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.8606.22 via Frontend Transport; Mon, 7 Apr 2025 19:40:53 +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, 7 Apr
 2025 14:40:53 -0500
Received: from fedora.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; Mon, 7 Apr 2025 14:40:52 -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: 3a0f586b-13e8-11f0-9eaa-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ZTodGeRMmGQP7mY737UME6q3SqZS36jk9vy59VTOVHVrpx79BG2HjXE9nR5fmKxxOzFPJwNJN9xLR9wioe+ZqQcNDgh6pF+ytzxeBGJB3P3Ph0sLABH2d8tIUZ3+Q6PADe4d8VSfdM6LEh+JkJRUbC5nbn+79spaU8YWJHfCoaRX7wFFfLzdudwsH1nzR+kMZEVtAjFbOUf7jNFMPpUrmhJ/ta4JyNvvFFiOW2xuwbRRE35knlz1ox4l7SZtqwk7mZg+0Gv600F5E5REJlZUe1d4FudY1k4G2U6ZE/Y/bhSCiikeV1T3FOirLijlyT5X2pEnoV69uEUkEXdSl6si2g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=s4ZLYmJYoMz9PsaZc5hdgslXTqA0/x8ooP5Dp/sEeWc=;
 b=iqHlBiwfcLk7AfmwpjY1RCFIOjDAEuYJMC1AzwvpT63blBSBjohz3P0AG6ijkbNBZFDk3nRhgv/pZ442HkpCq22q1NQH7adZc1FCnbqG9vERB9YkGiWJIqbZSkxRT8R9/IwdWhnTlqtHTxVbR8Edj7oadcXi6YoneD3saADvMjPx7QaYaqW9oynUOGOtvGp6VYY9Osttd8pI5phaVjH4sIbvVMt/C29MHm1SeMKY5xCmlxA3mU14ZW/LVXI+Jjj1HABLgBcY4NLasE/+YF2z+D/oau9rNKFheygDNalthsBAuW7WqEh7pRH0eTNkvcJWwrzlpJ7o++Dz+yIJthEPQA==
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=s4ZLYmJYoMz9PsaZc5hdgslXTqA0/x8ooP5Dp/sEeWc=;
 b=hCN/tMjOVtbmB/Tb+IIDyYoZKLYoyLrFStZfFan2HThK0un9Vo+IF2nsXkD5+WdgffiKKxfVgphJCanHjllmnoIlzuG4/3qBdrKJIRjcDwLwH24IdMJHIDZ4lUZ1VRne3SyO8SjU9MHDrlZFm6P50nJphC4/1FdYxgXgKt0KjaM=
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>, 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 3/7] xen/arm: dom0less delay xenstore initialization
Date: Mon, 7 Apr 2025 15:40:34 -0400
Message-ID: <20250407194038.83860-4-jason.andryuk@amd.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250407194038.83860-1-jason.andryuk@amd.com>
References: <20250407194038.83860-1-jason.andryuk@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
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_|PH7PR12MB6955:EE_
X-MS-Office365-Filtering-Correlation-Id: 25e5c6ce-72b3-44c6-6c48-08dd760c1c1c
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|376014|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?AAgXYbp0GzNM/8kLFVIQTpF3UiH1JTIdPER/ygUxam+sp4J2ljHxrcV5nryy?=
 =?us-ascii?Q?Q2ZmN1841eBo61vDSIcZnw63zWax4TWI+ko0BelXShaWoiI/pNA/qSLHH0sI?=
 =?us-ascii?Q?qT0e9/023scokpLk1a1bfclrcAWFAUGoI+16T/DP49Xr8tNY8EODFFrkC8Zu?=
 =?us-ascii?Q?YKhYAvRH1hs2vjOt9ypd6B5ZCCYSyXh4r5MhQ+B6VT/1l145/g5yA7hyOxjQ?=
 =?us-ascii?Q?HskP9FSqOMz+EdmYin+TNjdEcpU8z1T6KOBfzY+LpCLikF0RXkAtlAjrpXJM?=
 =?us-ascii?Q?jy/VYYYjvY5Mq7nUZjqETOrRamGN0bWV8V3Jb+I6XlcyXiQM6E/FWBxX+i0Q?=
 =?us-ascii?Q?QMXLvWj8R/D+52lhsgwIY3M0gZYLgYcwq3pBoDiYdTomGEwFgYRGHubRyZ82?=
 =?us-ascii?Q?ia7E0hFet4VSW636GpHbFrqU7B7kVkHUtxs+IXkGJzMEHzLiLlh8O5Uvc1B1?=
 =?us-ascii?Q?rpDp6muMaEJOzOrXNKGP8JJqcUpPecp7r6WfV/McLSWvYZgpZg1p9UxbZi25?=
 =?us-ascii?Q?Br6Ek5LMAzDUdS/o1kDcangi+1BvnafgckSbVaWd9QylOD4wZ1PZHZ+KionL?=
 =?us-ascii?Q?XoxmcIngg9a5hgNnvT3MZeRYWfIto9fFQ/WgRX3XAA/3Xk3skPB49JJuvHv9?=
 =?us-ascii?Q?NHCRV5qWIE1KZaV+FpYpIOq9l19RgkibRe3YD7AHjOMFffiEkB2B2KjVORkK?=
 =?us-ascii?Q?YunnY4J2x6Fn/KQXu/M3WjeJKTAagRPBi2EGbrqRNMIdIKZgyMBbM0M060W4?=
 =?us-ascii?Q?y2tBIICqvtVrn4fytZXOdkDYMVZBLx0oM2GcNNIsXmUlsl71kEsgkGVdvubU?=
 =?us-ascii?Q?FEGEvrudTFjS/4BXfLOOnT1xP3zEYEme3Jg4f3qKspEa1lOQ+dJRT+fH1E4u?=
 =?us-ascii?Q?LR+2+ShQ5pk1C4Vz0nVI1U6k3OSnzPiC7ffb+AwnHqw0CkVMwEgu3CZdoz52?=
 =?us-ascii?Q?E6RNaK/tZbiKdxX1tx4y1xmJCEPhdLlzCBfjo5mj5JZBvlo3BGEe8JwgShni?=
 =?us-ascii?Q?9FUjjRb9IbF2GFh3t9vGCixDbC4DH2jHIK3ScUUj0rqetEuyPQkko2H8dVdZ?=
 =?us-ascii?Q?MXa+62j+Xjy58VPyDdlmdZpdEYYoxQjYVF1tyVesKWIIPps6mJuqzF2GN9LY?=
 =?us-ascii?Q?bGNoGBZK8Os213hin2IcPmeCs75OhLT020jNOMK6APgjWMlIHsFCawQW7enV?=
 =?us-ascii?Q?s05ZGVssBOIaRGqTlXnS2W8C5mXzGTsEHLqg/2VhtQn+3RFvoVeTHBiZe5wD?=
 =?us-ascii?Q?T2w/TgHN9QUxwXKja0YlZqB2pYlkxqCkIybz1LKnao/Mm5BbObLLVda56hbx?=
 =?us-ascii?Q?NJD86cnAMHXRUPgQH9zADHemumsE7NPP0VZsBS+X52UOTVIR2c4JsAz6HFwh?=
 =?us-ascii?Q?TvJHo94Q7UWy07tq6yp++ysxyxexNHAb4A8VtWbkkj9DFDlU7yOzkbF+F+Dx?=
 =?us-ascii?Q?OMg3Xxof3VarXDgVQA4gyANGUPKLCohkZdPHexj3JvJDS8UFWtja1/VyTncc?=
 =?us-ascii?Q?iVmYGTOAOgZZbnw=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)(376014)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Apr 2025 19:40:53.8382
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 25e5c6ce-72b3-44c6-6c48-08dd760c1c1c
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: PH7PR12MB6955

To allocate the xenstore event channel and initialize the grant table
entry, the xenstore domid is neeed.  A dom0 is created before the domUs,
so it is normally available through hardware_domain.  With capabilities
and dom0less, the xenstore domain may not be created first.

Keep the population of the page and HVM_PARAM_STORE_PFN in the normal
domain construction, but delay event channel creation and grant seeding
to after all domUs are created.  HVM_PARAM_STORE_PFN now serves as
indication to setup xenstore since the device tree is no longer
immediately available.  0 means no xenstore.  ~0ULL means legacy so only
the event channel needs setup, and any other value means to seed the
page.

dom0 needs to set xs_domid when it is serving as the xenstore domain.

The domain running xenstored needs to be the handler for VIRQ_DOM_EXC,
so set that as well - it otherwise defaults to hardware domain.

Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
---
v4:
Add Stefano R-b

v3:
Use uint64_t to check for xenstore pfn read from HVM_PARAM
Rebase after mem paging changes

v2:
Re-order ahead of seeding.
Fix created type in commit message
Change set_xs_domid to set_xs_domain
Set xenstore domain as VIRQ_DOM_EXC handler
---
 xen/arch/arm/dom0less-build.c             | 67 +++++++++++++++++------
 xen/arch/arm/domain_build.c               |  2 +
 xen/arch/arm/include/asm/dom0less-build.h |  2 +
 3 files changed, 53 insertions(+), 18 deletions(-)

diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
index 7bc6a6c4d7..bb8cc3be43 100644
--- a/xen/arch/arm/dom0less-build.c
+++ b/xen/arch/arm/dom0less-build.c
@@ -20,6 +20,15 @@
 #include <asm/static-memory.h>
 #include <asm/static-shmem.h>
 
+static domid_t __initdata xs_domid = DOMID_INVALID;
+static bool __initdata need_xenstore;
+
+void __init set_xs_domain(struct domain *d)
+{
+    xs_domid = d->domain_id;
+    set_global_virq_handler(d, VIRQ_DOM_EXC);
+}
+
 bool __init is_dom0less_mode(void)
 {
     struct bootmodules *mods = &bootinfo.modules;
@@ -679,7 +688,7 @@ static int __init alloc_xenstore_evtchn(struct domain *d)
     int rc;
 
     alloc.dom = d->domain_id;
-    alloc.remote_dom = hardware_domain->domain_id;
+    alloc.remote_dom = xs_domid;
     rc = evtchn_alloc_unbound(&alloc, 0);
     if ( rc )
     {
@@ -745,16 +754,10 @@ static int __init alloc_xenstore_params(struct kernel_info *kinfo)
     struct domain *d = kinfo->d;
     int rc = 0;
 
-    if ( kinfo->dom0less_feature & (DOM0LESS_XENSTORE | DOM0LESS_XS_LEGACY) )
-    {
-        ASSERT(hardware_domain);
-        rc = alloc_xenstore_evtchn(d);
-        if ( rc < 0 )
-            return rc;
+    if ( (kinfo->dom0less_feature & (DOM0LESS_XENSTORE | DOM0LESS_XS_LEGACY))
+                                 == (DOM0LESS_XENSTORE | DOM0LESS_XS_LEGACY) )
         d->arch.hvm.params[HVM_PARAM_STORE_PFN] = ~0ULL;
-    }
-
-    if ( kinfo->dom0less_feature & DOM0LESS_XENSTORE )
+    else if ( kinfo->dom0less_feature & DOM0LESS_XENSTORE )
     {
         rc = alloc_xenstore_page(d);
         if ( rc < 0 )
@@ -764,6 +767,30 @@ static int __init alloc_xenstore_params(struct kernel_info *kinfo)
     return rc;
 }
 
+static void __init initialize_domU_xenstore(void)
+{
+    struct domain *d;
+
+    if ( xs_domid == DOMID_INVALID )
+        return;
+
+    for_each_domain( d )
+    {
+        uint64_t gfn = d->arch.hvm.params[HVM_PARAM_STORE_PFN];
+        int rc;
+
+        if ( gfn == 0 )
+            continue;
+
+        if ( is_xenstore_domain(d) )
+            continue;
+
+        rc = alloc_xenstore_evtchn(d);
+        if ( rc < 0 )
+            panic("%pd: Failed to allocate xenstore_evtchn\n", d);
+    }
+}
+
 static void __init domain_vcpu_affinity(struct domain *d,
                                         const struct dt_device_node *node)
 {
@@ -899,17 +926,13 @@ static int __init construct_domU(struct domain *d,
          rc == -ENODATA ||
          (rc == 0 && !strcmp(dom0less_enhanced, "enabled")) )
     {
-        if ( hardware_domain )
-            kinfo.dom0less_feature = DOM0LESS_ENHANCED;
-        else
-            panic("At the moment, Xenstore support requires dom0 to be present\n");
+        need_xenstore = true;
+        kinfo.dom0less_feature = DOM0LESS_ENHANCED;
     }
     else if ( rc == 0 && !strcmp(dom0less_enhanced, "legacy") )
     {
-        if ( hardware_domain )
-            kinfo.dom0less_feature = DOM0LESS_ENHANCED_LEGACY;
-        else
-            panic("At the moment, Xenstore support requires dom0 to be present\n");
+        need_xenstore = true;
+        kinfo.dom0less_feature = DOM0LESS_ENHANCED_LEGACY;
     }
     else if ( rc == 0 && !strcmp(dom0less_enhanced, "no-xenstore") )
         kinfo.dom0less_feature = DOM0LESS_ENHANCED_NO_XS;
@@ -1156,7 +1179,15 @@ void __init create_domUs(void)
         if ( rc )
             panic("Could not set up domain %s (rc = %d)\n",
                   dt_node_name(node), rc);
+
+        if ( d_cfg.flags & XEN_DOMCTL_CDF_xs_domain )
+            set_xs_domain(d);
     }
+
+    if ( need_xenstore && xs_domid == DOMID_INVALID )
+        panic("xenstore requested, but xenstore domain not present\n");
+
+    initialize_domU_xenstore();
 }
 
 /*
diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index 0a329f9f5e..270a6b97e4 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -2408,6 +2408,8 @@ void __init create_dom0(void)
     rc = construct_dom0(dom0);
     if ( rc )
         panic("Could not set up DOM0 guest OS (rc = %d)\n", rc);
+
+    set_xs_domain(dom0);
 }
 
 /*
diff --git a/xen/arch/arm/include/asm/dom0less-build.h b/xen/arch/arm/include/asm/dom0less-build.h
index 5864944bda..b0e41a1954 100644
--- a/xen/arch/arm/include/asm/dom0less-build.h
+++ b/xen/arch/arm/include/asm/dom0less-build.h
@@ -9,6 +9,7 @@
 
 void create_domUs(void);
 bool is_dom0less_mode(void);
+void set_xs_domain(struct domain *d);
 
 #else /* !CONFIG_DOM0LESS_BOOT */
 
@@ -17,6 +18,7 @@ static inline bool is_dom0less_mode(void)
 {
     return false;
 }
+static inline void set_xs_domain(struct domain *d) {}
 
 #endif /* CONFIG_DOM0LESS_BOOT */
 
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Mon Apr 07 19:41:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 19:41:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.941050.1340654 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1sL9-0000dC-8y; Mon, 07 Apr 2025 19:41:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 941050.1340654; Mon, 07 Apr 2025 19:41:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1sL9-0000d1-3v; Mon, 07 Apr 2025 19:41:03 +0000
Received: by outflank-mailman (input) for mailman id 941050;
 Mon, 07 Apr 2025 19:41: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=tcrT=WZ=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1u1sL7-0007y6-9Z
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 19:41:01 +0000
Received: from NAM04-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam04on2060a.outbound.protection.outlook.com
 [2a01:111:f403:2408::60a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3b390045-13e8-11f0-9eaa-5ba50f476ded;
 Mon, 07 Apr 2025 21:41:00 +0200 (CEST)
Received: from SJ0PR03CA0147.namprd03.prod.outlook.com (2603:10b6:a03:33c::32)
 by BY5PR12MB4178.namprd12.prod.outlook.com (2603:10b6:a03:20e::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.27; Mon, 7 Apr
 2025 19:40:55 +0000
Received: from SJ1PEPF00001CE4.namprd03.prod.outlook.com
 (2603:10b6:a03:33c:cafe::da) by SJ0PR03CA0147.outlook.office365.com
 (2603:10b6:a03:33c::32) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8606.32 via Frontend Transport; Mon,
 7 Apr 2025 19:40:55 +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.8606.22 via Frontend Transport; Mon, 7 Apr 2025 19:40:55 +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, 7 Apr
 2025 14:40:54 -0500
Received: from fedora.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; Mon, 7 Apr 2025 14:40:54 -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: 3b390045-13e8-11f0-9eaa-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=mi3Z4/yV4G3RwHClcFIt5sqQiPIT4GrrxZ4rLcWjNVR3zUAfC4ca7he8hKkz4jpx0UMbyuUqTnQUcGLOClauVz4foeRmnBj8NWtxmspqIPYDqj8BhTODLAGvhFRJt65ErkmaCVpoYmFaWZgML/kEqtadMglRB0rNJ8CcKneW16QCukhuPn8HoMnIlRT/d0Z5xAMIa1uAfLLHAjXiBTUKyJcNwke1H1nhq9hDLopKE3DiUUBDD3y88orLDBZJ/MekSAzt2dM7Lw7VylFF5mlHLem3J0Os4On5gJmqW3gB0oahe1TICwpVKfm/dYfyIeMtaFctd0yzOY+RDUBZEE2UDQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=dburjj6Z0N+LRlXCAmlxzKLMTtkldtP4IFgNueyQtmk=;
 b=rmiJyjJSlbMxJiPIE+lZQzYlrZU4z5/MGTIFFD1GrN0MJxnB3tKB+TNbIOUMna3Gc3MOQelt0Q4/Hl032ER1ZUduwFihVFA7Dt/eaJubFdPgzxgDFaa34rv+2VFtFjwKqRFMlkgNOufiWdkRnwhw+DRinkZ9774ltgcm469/EOQqIWZojc2numC/QXoWl+3JxC4Hd6oxqV6B54GF0in4RqdoVlvTt+qS0pZJSj/yV052mbNd2WuDAdrLtQ+6QgRNjx4yHQurrbsJ8HuEMUtI+/Fr8DDVLDcKQZyPS3L63Q6jxXtfLcmB1YjKRwkTd+1AHg5yKryvLzKVoJJmaXPYkA==
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=dburjj6Z0N+LRlXCAmlxzKLMTtkldtP4IFgNueyQtmk=;
 b=0Q/Cp63m8tjussYSyT19bwjQ8NEXW37YU37OGMJWCyEAPUOumeZxN9PKnybXOuZaMGfXnge7CD6pA1HjCzuz2IaqlbehmqG6x7Pw86RtXz4+LnEyMrQWlyk51xzAg7HfveN/wr1gOcoSBv3+QWcaayoX8+HDHNwrL+n5UBnL2uU=
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>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, "Volodymyr
 Babchuk" <Volodymyr_Babchuk@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, "Jan
 Beulich" <jbeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>
Subject: [PATCH v4 4/7] xen/arm: dom0less seed xenstore grant table entry
Date: Mon, 7 Apr 2025 15:40:35 -0400
Message-ID: <20250407194038.83860-5-jason.andryuk@amd.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250407194038.83860-1-jason.andryuk@amd.com>
References: <20250407194038.83860-1-jason.andryuk@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
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_|BY5PR12MB4178:EE_
X-MS-Office365-Filtering-Correlation-Id: afc0b648-2e50-45fc-c55d-08dd760c1cf7
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|1800799024|376014|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?7hqgJwlnQP+sXRcxLQYZNnAKwkox7BDPPLGOT2m24ZL8AvVwLxT1Gsr0qZ+I?=
 =?us-ascii?Q?fIanj0YUpBpkRi6CTKy1XZyu2oscqOwc8MVaXNfT2cvR4dwV5N2I3tUbVc3A?=
 =?us-ascii?Q?VjrFMAfPSwFg1WzzORddtN3xtHgC8Poiz+a12T7wWps+bUiDm56csLL0YLNL?=
 =?us-ascii?Q?3eEAljH2wBIxua5G/uY628HOlPtX2reAV1y2s08BFxoJoLbM8I2zQiJIA9Lu?=
 =?us-ascii?Q?52+M7oIjmhQdGc/f2g+WfqsxXOMgttaEDg6z8YFp/emN2jXpbbXot/EJYPEh?=
 =?us-ascii?Q?iakn28Lq/oDQ1v25fk0RzjROi2fVljclxMwjsUkzBZAaFV9zJXtoCpzIsnHD?=
 =?us-ascii?Q?BnZzVFum0n662a3nREsBjJeAxhIxkwTffXOz0LJCrLETfiuC32pJATWlpa8O?=
 =?us-ascii?Q?RLuENKtgMZ7r8H/iNYgOCuNeUFHKwTAkdEV2T6LumV6KABbvM/3ipzg/YxUc?=
 =?us-ascii?Q?ogpY77g83R1Wfp7d4IoEcix0wQEZPP+Pv88sYq8lWckD+SP2CDkGCWrfdt8l?=
 =?us-ascii?Q?VnG1OVItI3kUQ5RH6Zrazy7ZLQDn2N5gPlKtWxUcyyFUAs2SyEV4rwCvkJxg?=
 =?us-ascii?Q?0D5VptfDkQWEM2ZU7MaUhI8dTwwINFkzSgBGwjyHZkcsljGBwIATa+X6OBiR?=
 =?us-ascii?Q?PgmHABAA8eO6QG+WRfwb4KwXhOyMY1a4b0NoOBz9GlC19qVnNYGO6tUAVTeC?=
 =?us-ascii?Q?BWe36SWHescXTfXChoSdkzwnloCNkoKh4HfTs7iSl87WVawp81xfcUsyZNgs?=
 =?us-ascii?Q?NJIpDcVMRhfU3vH9T8aTAuGnv7ns8Jn3MJ/EuEkY+z8f7VtzDBSUpFfk9nZ+?=
 =?us-ascii?Q?VNymTh+wqavNuX8/A0scKRVh2zIov8iOvrvPAaNuDhTckwlLCXvFozn6GRi0?=
 =?us-ascii?Q?I67t/GLhvYYRExm0CBYdl5nsJGCkgeYcGzxbIXC5NuCcLlaLRPpaBxh6ETi9?=
 =?us-ascii?Q?4f+lPzAbVo2tDn902LUANop1LCBHts9CorJMvCG6kCMZllIt6DddMjNxZ3rq?=
 =?us-ascii?Q?rVJg/pRFjDI0Ti2M7Qv3hFmNM4ZenKnr10lxnhcvs9GbhQdQORoWFoGDHGKx?=
 =?us-ascii?Q?Rb0M5Xb4EV8BpwSgy/tUcSBvcm8uIBw49toAn4tUHsFSr/bVYcVEeBOgXfFt?=
 =?us-ascii?Q?uBRkY77JuVlGzaDFBzveN7nepc/NY94L661txnYky5fXw3EvV7etixo2xYWH?=
 =?us-ascii?Q?qWZaCL+uploG5d0ei8iYRuK2oW2hiAWmHhPO8kEnYm2FjOv9h7+dhuhNd8Xt?=
 =?us-ascii?Q?hLuLULpkIjJd7wAcMFuZ0odCBDLB9H1LFDLjvwFJjzbwPcPXtqOUgijN5I7c?=
 =?us-ascii?Q?eeOuFcz0SXAk5KncBKp5YjdgBJf17G67T0qJWGQ62eHM29j7xjWvDMx/Vjp9?=
 =?us-ascii?Q?prK2wv4p9rE9RSwnF/icUhwWFMCSun0o0tD0U1vU1tl6EuRv+F6cLDrODqzc?=
 =?us-ascii?Q?Ph3cy+7L+DmVyD4UBYakskusNPWiT8b1KbTtf6vp88V6LVZcKuGuzu1GGw9U?=
 =?us-ascii?Q?5tmif1HZD+vL3bQ=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)(1800799024)(376014)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Apr 2025 19:40:55.2757
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: afc0b648-2e50-45fc-c55d-08dd760c1cf7
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: BY5PR12MB4178

xenstored maps other domains' xenstore pages.  Currently this relies on
init-dom0less or xl to seed the grants from Dom0.  With split
hardware/control/xenstore domains, this is problematic since we don't
want the hardware domain to be able to map other domains' resources
without their permission.  Instead have the hypervisor seed the grant
table entry for every dom0less domain.  The grant is then accessible as
normal.

C xenstored uses grants, so it can map the xenstore pages from a
non-dom0 xenstore domain.  OCaml xenstored uses foreign mappings, so it
can only run from a privileged domain (dom0).

Add a define to indicate the late alloc xsentore PFN, to better indicate
what is being checked.  Use UINT64_MAX instead of ~0ULL as the HVM_PARAM
field is a uint64_t.  UINT64_MAX is not defined, so add it.

Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
---
v4:
ASSERT gfn against UINT32_MAX and use < to avoid INVALID_GFN on 32bit
builds
Stefano gave R-b, but holding off addition because of changes
Use IS_ENABLED(CONFIG_GRANT_TABLE) instead of wrapper
Add XENSTORE_PFN_LATE_ALLOC
Add UINT64_MAX

v3:
Expand commit message about C vs. OCaml xenstored.
Remove __init and flags from gnttab_seed_entry()
Change frame to uint32_t
ASSERT gfn fits in a uint32_t
Rebase on mem paging changes

v2:
Tweak commit message
Mark gnttab_seed_entry() __init and put inside CONFIG_DOM0LESS_BOOT
Add ASSERT(!d->creation_finished) and ASSERT(gt->gt_version == 1);
const struct domain & struct grant_table
---
 xen/arch/arm/dom0less-build.c | 10 +++++++++-
 xen/common/grant_table.c      | 14 ++++++++++++++
 xen/include/xen/grant_table.h |  4 ++++
 xen/include/xen/types.h       |  1 +
 4 files changed, 28 insertions(+), 1 deletion(-)

diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
index bb8cc3be43..188ef40b52 100644
--- a/xen/arch/arm/dom0less-build.c
+++ b/xen/arch/arm/dom0less-build.c
@@ -20,6 +20,8 @@
 #include <asm/static-memory.h>
 #include <asm/static-shmem.h>
 
+#define XENSTORE_PFN_LATE_ALLOC UINT64_MAX
+
 static domid_t __initdata xs_domid = DOMID_INVALID;
 static bool __initdata need_xenstore;
 
@@ -756,7 +758,7 @@ static int __init alloc_xenstore_params(struct kernel_info *kinfo)
 
     if ( (kinfo->dom0less_feature & (DOM0LESS_XENSTORE | DOM0LESS_XS_LEGACY))
                                  == (DOM0LESS_XENSTORE | DOM0LESS_XS_LEGACY) )
-        d->arch.hvm.params[HVM_PARAM_STORE_PFN] = ~0ULL;
+        d->arch.hvm.params[HVM_PARAM_STORE_PFN] = XENSTORE_PFN_LATE_ALLOC;
     else if ( kinfo->dom0less_feature & DOM0LESS_XENSTORE )
     {
         rc = alloc_xenstore_page(d);
@@ -788,6 +790,12 @@ static void __init initialize_domU_xenstore(void)
         rc = alloc_xenstore_evtchn(d);
         if ( rc < 0 )
             panic("%pd: Failed to allocate xenstore_evtchn\n", d);
+
+        if ( gfn != XENSTORE_PFN_LATE_ALLOC && IS_ENABLED(CONFIG_GRANT_TABLE) )
+        {
+            ASSERT(gfn < UINT32_MAX);
+            gnttab_seed_entry(d, GNTTAB_RESERVED_XENSTORE, xs_domid, gfn);
+        }
     }
 }
 
diff --git a/xen/common/grant_table.c b/xen/common/grant_table.c
index 6c77867f8c..e75ff98aff 100644
--- a/xen/common/grant_table.c
+++ b/xen/common/grant_table.c
@@ -4346,6 +4346,20 @@ static void gnttab_usage_print(struct domain *rd)
         printk("no active grant table entries\n");
 }
 
+#ifdef CONFIG_DOM0LESS_BOOT
+void __init gnttab_seed_entry(const struct domain *d, unsigned int idx,
+                              domid_t be_domid, uint32_t frame)
+{
+    const struct grant_table *gt = d->grant_table;
+
+    ASSERT(!d->creation_finished);
+    ASSERT(gt->gt_version == 1);
+    shared_entry_v1(gt, idx).flags = GTF_permit_access;
+    shared_entry_v1(gt, idx).domid = be_domid;
+    shared_entry_v1(gt, idx).frame = frame;
+}
+#endif
+
 static void cf_check gnttab_usage_print_all(unsigned char key)
 {
     struct domain *d;
diff --git a/xen/include/xen/grant_table.h b/xen/include/xen/grant_table.h
index 50edfecfb6..297d7669e9 100644
--- a/xen/include/xen/grant_table.h
+++ b/xen/include/xen/grant_table.h
@@ -33,6 +33,10 @@
 
 struct grant_table;
 
+/* Seed a gnttab entry for Hyperlaunch/dom0less. */
+void gnttab_seed_entry(const struct domain *d, unsigned int idx,
+                       domid_t be_domid, uint32_t frame);
+
 #ifdef CONFIG_GRANT_TABLE
 
 extern unsigned int opt_gnttab_max_version;
diff --git a/xen/include/xen/types.h b/xen/include/xen/types.h
index e8d419b954..73ddccbbd5 100644
--- a/xen/include/xen/types.h
+++ b/xen/include/xen/types.h
@@ -44,6 +44,7 @@ typedef __UINTPTR_TYPE__ uintptr_t;
 #define UINT8_MAX       (255)
 #define UINT16_MAX      (65535)
 #define UINT32_MAX      (4294967295U)
+#define UINT64_MAX      (18446744073709551615ULL)
 
 #define INT_MAX         ((int)(~0U>>1))
 #define INT_MIN         (-INT_MAX - 1)
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Mon Apr 07 19:41:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 19:41:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.941057.1340664 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1sLB-0000x8-HK; Mon, 07 Apr 2025 19:41:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 941057.1340664; Mon, 07 Apr 2025 19:41:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1sLB-0000wr-Cf; Mon, 07 Apr 2025 19:41:05 +0000
Received: by outflank-mailman (input) for mailman id 941057;
 Mon, 07 Apr 2025 19:41: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=tcrT=WZ=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1u1sL9-0007y6-N1
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 19:41:03 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on20622.outbound.protection.outlook.com
 [2a01:111:f403:2418::622])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3cb8d1ff-13e8-11f0-9eaa-5ba50f476ded;
 Mon, 07 Apr 2025 21:41:03 +0200 (CEST)
Received: from CH0PR03CA0024.namprd03.prod.outlook.com (2603:10b6:610:b0::29)
 by PH7PR12MB6660.namprd12.prod.outlook.com (2603:10b6:510:212::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.34; Mon, 7 Apr
 2025 19:40:59 +0000
Received: from DS3PEPF000099D6.namprd04.prod.outlook.com
 (2603:10b6:610:b0:cafe::9e) by CH0PR03CA0024.outlook.office365.com
 (2603:10b6:610:b0::29) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8606.34 via Frontend Transport; Mon,
 7 Apr 2025 19:40:59 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 DS3PEPF000099D6.mail.protection.outlook.com (10.167.17.7) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8606.22 via Frontend Transport; Mon, 7 Apr 2025 19:40:58 +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, 7 Apr
 2025 14:40:56 -0500
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, 7 Apr
 2025 14:40:56 -0500
Received: from fedora.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; Mon, 7 Apr 2025 14:40:55 -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: 3cb8d1ff-13e8-11f0-9eaa-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=E3EXpgjQCOZX8w2FsUa28Be67Soix0WNzwbxJF5gaN7yl7A3d02N1eDo8YMl4rkLQqe2EhcBt8+jxuVrGaF7+ojTAUnhVWFdYrbeLYgvh4qBEsNIV6pkNBNCwtOGJaB9Y+Lteq0iCXgrRgg1jtelNHUT8R67O3zVlLdnfefTWXgH6039OmFX9/6B21U5rWluDVUY2jxKqf2XNxF9aFLQUSKYf9MXC4n+bAeWN6UYb5Q+YLJ0IHoz4J1CBCbxWKR2J/dcl8looH59Y1Kn+77F7E8M+7n34NYdv6DHHyrR7ohM1QGuowyoHeDRyEWgAe8bK7pWfBldEKe/uFmrMLKdJA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=1aQHZqiuRYN5jscb9zg/LYDaYmQF1YrRq995L6yh9YI=;
 b=JKKtIzhxEn8HgwnrX7apScmn+Cnw8Zn9rbMR+Jq/F4dG2PzPVT0ywi5c/QmWd07qISPmtlok+u/GorZDWbwpkY5zn40fNR4ECMM1+2vGudC5BLAzjfweT2MGpcynXoq38XiCWWyB0jXM6s/CNkjKXXEF1n2lvRMzi3387bo6SwuuMINAdTxZVewVNCLCS19FlViDUmnc6gj8Zsav7fQM9W7862lhWcsPVF4aWsmZV7IlpOT9ZPATjejwapcWnBd0QLjG04DYf1kKvjQVU1OASg8/6W4gFRqzf8nx72fzwfjfp9Io4uIhfv5/AA1E13KJ4QUsU2u+/fVU61Wli6G1rg==
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=1aQHZqiuRYN5jscb9zg/LYDaYmQF1YrRq995L6yh9YI=;
 b=zkBIfEsR2qeC02eAlEuGyMCxc1fPg8ptA+My/EHnNLvaOO0LfXDJrkPnzjHq+iJtWZE1cL9MePnprdIS3HaYEMkTCvOZ3eaiIFLdbUo5SBfzLia4AuTkt15rtT0MCqPwZsknicEid7hfoV13ne1QFoBZpitKvb2G/EGXrCxsnTg=
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>, Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v4 5/7] tools/init-dom0less: Only seed legacy xenstore grants
Date: Mon, 7 Apr 2025 15:40:36 -0400
Message-ID: <20250407194038.83860-6-jason.andryuk@amd.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250407194038.83860-1-jason.andryuk@amd.com>
References: <20250407194038.83860-1-jason.andryuk@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
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: DS3PEPF000099D6:EE_|PH7PR12MB6660:EE_
X-MS-Office365-Filtering-Correlation-Id: 0df8e2bd-f073-448a-8073-08dd760c1ed4
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?jBhs6vB5GL6SxA8+N6YSRU4CB/CtlSfxz2BtuXaTyoqi3EIKq5H/L9jkZgWH?=
 =?us-ascii?Q?dOWi68VG7pjSMj+hvuTOq5gEFYhHqbvSaIKiAMgDyjyB9rsMbYF2Hq2LXJeJ?=
 =?us-ascii?Q?pmDHA5pkQ5pbhTTslJuR4Umya/l7TQhXuN8KxfmHzGQiEqVjzR8vlsrauku6?=
 =?us-ascii?Q?sBkrL/RJft3oCXSwpbfD3ilGt6vt7fnSM1B8jkqRCC6TLnuP/oFn7msenoed?=
 =?us-ascii?Q?ZMYdAjolUGFBSdjKoZiT+PoUiZamgQbnXuRtbQnSaXcyrGBYJYIo3QT3B4bl?=
 =?us-ascii?Q?hY4rPm45AlbHJFCTQl7CcnqH7KclWMA+QexJvsqHoz+jU3BeFTlezFAizB7G?=
 =?us-ascii?Q?lHOupQa9UjzC2+A5d0WUwZgnc2lpFSiH89PFHcBRjMbCqXqX2TR9RPrulTQn?=
 =?us-ascii?Q?SLZO9O2y7ncekJ7x1X6BNUDhkv9fBCAIAd6eorn1Lib5ayXuCZCfUJ9ETUOp?=
 =?us-ascii?Q?930hYM7B/QiciNp22cejDluPjyy4cPwbJ4Rxt25+1QdlGlq6Q6Q2B4/3phOQ?=
 =?us-ascii?Q?XE2mgd75eihjxRd5mqyNqgjQRhsPWz/p4JtYEpzrIADl2a7b0OkjO+QB/+r9?=
 =?us-ascii?Q?4NepUPLztBVa/JocZCJLHXWjVtP/OSlQPWuRX7+WqRGGMWhNtjCxpclakosF?=
 =?us-ascii?Q?d+JqsyoR91gQtowfGx+U5jAai3bPgpTYd9y9cywPxeVfiBafNuSH0BV+B42G?=
 =?us-ascii?Q?ez58/FywYrxyyLnHvDE4jPgmVVgx3a1cTCUbdUI5mSUvpjimqRlFxJpDT/sz?=
 =?us-ascii?Q?/5hdXHgiXvBUXoRT0tSEPOftvWPANQXWv18iZzNVp5eeQGJeS/cpCgS9/OxK?=
 =?us-ascii?Q?EL1J+ooYC+7b1ocopqz8OK+slzL9CUyFsc0BIrNqC7z8qoKlDJKFmF3xDxFY?=
 =?us-ascii?Q?Tb98LmMK2izNhLJxRMG3Owk5jxVt4gXKpM7rc6DzMtWqMi85VHKeUXVv3ulB?=
 =?us-ascii?Q?tp2Yyar784N6sn21vU3z4X9EW0PxMRad8DPtMVrCq+//ijnn1wiZ10WRqq+a?=
 =?us-ascii?Q?cpxznIxonRNe5x+oQ39RvmzsWd1MrQPSkX+OZqQtwc73UcYIr0r6P7JfKY+X?=
 =?us-ascii?Q?iwF8qeQmkCIC5yFkWHosnpR0DI9z6jJmTMbdyFLJQd+0ho5Z5NYNlCMk0ojM?=
 =?us-ascii?Q?Vd7YTLSnOJ2rVndww+xv+T+3fFjtYXpWD++9Kfd+clj3b/jImzc9AR94vKQ4?=
 =?us-ascii?Q?qXCAIYliBpTA8ifjfKFi7yeV2Ji8bm2pynENRKauXzCIfKx4stI7FEXnbjOl?=
 =?us-ascii?Q?rrHZGQP1nl5Wqv1v4rYwWq9UnwpqOBbsz48j+73Oe/Jtn2lebsRit/D4JuS7?=
 =?us-ascii?Q?zqxAxRRcpD+SUO1CdkUBnezxZkutwK24AHo2lvXIa0/LQjuFA2k6jiQt+CdQ?=
 =?us-ascii?Q?NSSnvla1u4PEM1g6voLcwi4bawyU6qXgVSd3hL1aLQMK+0b9nhq7JFpgfOOj?=
 =?us-ascii?Q?bHXsW35t6YACC1bwbQ+7iBkNFsd93ILdnuY45DPcb4r3tlX4lM8/Gdx+777d?=
 =?us-ascii?Q?SG5q6U0A7vqQ+anyQ996gxyopGmE4piac80U?=
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: 07 Apr 2025 19:40:58.4469
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 0df8e2bd-f073-448a-8073-08dd760c1ed4
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:
	DS3PEPF000099D6.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB6660

The hardware domain is unable to seed a control domain, but we want the
control domain to use xenstore.  Rely on the hypervisor to seed dom0less
grant table entries for Xenstore, so this seeding is unnecessary.

However, that only works for the new xenstore late init.  The legacy
protocol which uses init-dom0less to populate the page still needs to
seed the grant.

Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
---
v4:
Add Stefano R-b
---
 tools/helpers/init-dom0less.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/tools/helpers/init-dom0less.c b/tools/helpers/init-dom0less.c
index 17579fe2e8..91edf17b6c 100644
--- a/tools/helpers/init-dom0less.c
+++ b/tools/helpers/init-dom0less.c
@@ -286,12 +286,12 @@ static int init_domain(struct xs_handle *xsh,
                 xenstore_pfn);
         if (rc < 0)
             return rc;
-    }
 
-    rc = xc_dom_gnttab_seed(xch, info->domid, true,
-                            (xen_pfn_t)-1, xenstore_pfn, 0, 0);
-    if (rc)
-        err(1, "xc_dom_gnttab_seed");
+        rc = xc_dom_gnttab_seed(xch, info->domid, true,
+                                (xen_pfn_t)-1, xenstore_pfn, 0, 0);
+        if (rc)
+               err(1, "xc_dom_gnttab_seed");
+    }
 
     libxl_uuid_generate(&uuid);
     xc_domain_sethandle(xch, info->domid, libxl_uuid_bytearray(&uuid));
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Mon Apr 07 19:41:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 19:41:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.941062.1340668 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1sLB-00010O-Rf; Mon, 07 Apr 2025 19:41:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 941062.1340668; Mon, 07 Apr 2025 19:41:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1sLB-0000zQ-L9; Mon, 07 Apr 2025 19:41:05 +0000
Received: by outflank-mailman (input) for mailman id 941062;
 Mon, 07 Apr 2025 19:41: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=tcrT=WZ=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1u1sLA-0008Ee-CP
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 19:41:04 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on2062f.outbound.protection.outlook.com
 [2a01:111:f403:2418::62f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3c66693e-13e8-11f0-9ffb-bf95429c2676;
 Mon, 07 Apr 2025 21:41:02 +0200 (CEST)
Received: from SJ0PR03CA0126.namprd03.prod.outlook.com (2603:10b6:a03:33c::11)
 by PH7PR12MB5856.namprd12.prod.outlook.com (2603:10b6:510:1d7::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.33; Mon, 7 Apr
 2025 19:40:59 +0000
Received: from SJ1PEPF00001CE4.namprd03.prod.outlook.com
 (2603:10b6:a03:33c:cafe::34) by SJ0PR03CA0126.outlook.office365.com
 (2603:10b6:a03:33c::11) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8606.33 via Frontend Transport; Mon,
 7 Apr 2025 19:40:58 +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.8606.22 via Frontend Transport; Mon, 7 Apr 2025 19:40:58 +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, 7 Apr
 2025 14:40:58 -0500
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, 7 Apr
 2025 14:40:57 -0500
Received: from fedora.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; Mon, 7 Apr 2025 14:40:57 -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: 3c66693e-13e8-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=wvAfA0T8yXAuv36Q5ngQ4HPhazAFVPtN/QxivXH21Ch8QVO5SsZjXq80MUxBg9hWmntjtR77LwoRJtwZCHGO2EpJFB1SZwOUlwP38dIxWMysvo87ZqAam3jWdpOzQ901SwYBpNq4Vo8X/Ipnu8YGudyNraEDsKU24HvBgs93OWyxlCvWy1PXDI/gRJT3mBtadgOWDd7tlYk1l7u5+zvqDAOXaDC21lnIvrTBxv0xfJsaQcT5FdIHUQ8EE63GGOR3k91d4fYroRWsgpnmD7r58IgM+/GucPBpmUNEI9e2QBcVXSPAGZWsrCTMcjNcQIsfoitsGocJvErjYqFXpzbRdw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=FZf2RBZvVgDYlcOT0NiNdgzzcNycZmzQZeGr4p0wqq8=;
 b=URPDGPF/g4oFu889g90gi+1ElHL7Dvm2QoKDmqmn3NsORf8deBsFemnyw9VWKqQ3pziay0xDWyTC0w9vwDls8HJXfIR5eMOnbHa+Dww46S7w0JOB1Wui4F1dREWHvC6bPM0A13sqLulfld52kx/PpsV0uHNia3YsaOwxHc27HZ8znOHXucYT36g9qGB8ad9n6NOwNS4/4zkqSjgmOAnB1BFG3JU2yqa61YT+DJ1zEqF/NYlGVOzJEGXfFS7y4scErx13L3+mNrnZR5znwgMInyf1Q2BYnq+s7BaLsSF1CMLXs7SZe5/SpGRVt4uPrQ9smF/YJksU22lwGJdWpzNoJA==
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=FZf2RBZvVgDYlcOT0NiNdgzzcNycZmzQZeGr4p0wqq8=;
 b=soyO7qY16INzs1o8pDMz8AY/R2BvfCyqsXYEQ8WaUq9mEuEJT4czexKqyqEdd7GNs71RI8mK/xSbQb6yGGk2jrMkCZIab5ml23tyBf8vC5/B8qkH3zpJKUYZRyxCQmPH3sxMVVAg0KiSNJQLAHX0MSnru18MPIzBJLwfQci3Kq4=
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>, 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 6/7] xen/arm: dom0less use has_dtb local variable
Date: Mon, 7 Apr 2025 15:40:37 -0400
Message-ID: <20250407194038.83860-7-jason.andryuk@amd.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250407194038.83860-1-jason.andryuk@amd.com>
References: <20250407194038.83860-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: SJ1PEPF00001CE4:EE_|PH7PR12MB5856:EE_
X-MS-Office365-Filtering-Correlation-Id: 71854cb5-51b6-42be-9ad3-08dd760c1f12
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|376014|36860700013|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?O9KVJfUck258C1eE9jnSbpuRH4KBDgSGdb+37CmPiT6FWyOEp+ZCZdpfUB3r?=
 =?us-ascii?Q?qT6tErBt4MZ37mPxrZrukLT2T0cpn02B6y7nDGVtccvq9llRE8cK73CvM1t5?=
 =?us-ascii?Q?MtUvIdJUwr0kKCKOAeQCP37B5D6zFtCCglCU2eiLQkWkZYsiniTWs0M44l1T?=
 =?us-ascii?Q?pjRpZh6FRbKOF6XWvNzs7v5O5i5neydC/gpCyIDTlgODMKHtRQzF3fbjguii?=
 =?us-ascii?Q?vaLtRZ9wzoBZeo4FkykGor1DNbK5f45prSIGh9r2YF43dYL8I53f6lIdQfjY?=
 =?us-ascii?Q?a5e4djxG0kigWmT9kt4mD611Qt2KIY8ehrbPqJA/Re5h+NXhcKYf2LFy9u5H?=
 =?us-ascii?Q?Vo7uqsisNyGxOxmSoQRHeO5oUvHjsNuh33G2qDkEC3FEh2A4ZPtuHFH4SdTU?=
 =?us-ascii?Q?GswOyvwy/M+C81XRC2kFaAA1HHHK3jmHejskGIP+YNKLB4dzQTJJN3CRnHGx?=
 =?us-ascii?Q?BLYl08+ck9ZWhTdxXKQVvzqxXEhwTLl4F9AovWDMQV0lgM6Wiw1Y295uhqYi?=
 =?us-ascii?Q?bak7I+cPdv44aBHepAxWAVquprwDkFCwLrDCvIA8Km525SGXJ6eSbIZPWDBL?=
 =?us-ascii?Q?HivEUCbEh1TvoybVzGaLkDOqgJEqMLetzTpwxJ3lXHqkfGt3qJeDvExrMEVh?=
 =?us-ascii?Q?M8vkpVEACin7Exz+vVJPp4yWHQ24HP/uNTOKo0Geu458A/dkcv449O6v5YmX?=
 =?us-ascii?Q?FX6buS1YMf2bm+2WpNnT39QXTADZfHnS0WI1O6cwqMywqD16gm5TXQr4CbFt?=
 =?us-ascii?Q?wcDS8It8IJ39BaoJyQxdWSrU/LhSEqbf7bvNmHPWWMGjYnDyvnyiso7zFyC0?=
 =?us-ascii?Q?Lj3Pzq+zovjZt3lECwYoVnXZKRKKtPaKHkExykF/fESGF7Z8sMeHHgtPj1zm?=
 =?us-ascii?Q?NFDiBW6DnIdWpkI55qCpXgpB1mYuqUD6UtC+9zEpfqjEapXSb5W0dqcMwCmj?=
 =?us-ascii?Q?wIOw3Kj7SWaIkdX/SwMuS0+gg4ACwWzBbn9MO5bpMSvXCv2KNDsaOprglTyY?=
 =?us-ascii?Q?m5tYAlNNSHKfpHFAQS23BlR9kdrIA+LBo+vXXWQfkarEji3CO8BLz7OUtgu+?=
 =?us-ascii?Q?jbh4CG88jhrQCA+NH9He8/0qrBX5DATK6R6loWsmhVvRk1Oi4Fn36weOHDpD?=
 =?us-ascii?Q?Uw4rT9R2cvxuZXyETx1vH1sNO5SLEBrdPtwhwt8nCT3XWTz8FAJWfQxGN0kE?=
 =?us-ascii?Q?yWMcyYhlQ+2O7QRgN1L9EgU6Z9x6NuhR01HEYvqxcDnLi2f0F+cy2k5t5vYK?=
 =?us-ascii?Q?rfz9ynNuUvz+sc2lXqSZUEZUa232Fj5hXPcN9xUkbLzsKKS7iNmioSDDDQIl?=
 =?us-ascii?Q?6/fixQoWXcIpO6OrX52dHI11GE19Wq8vxrIdN+uBAj7hzeNKZNNPlIxNMzt+?=
 =?us-ascii?Q?2R4cqUjExIzRdtIwcXKj4xZoUikv72oM7QGDaCMP1qCDqLHc8t7qnZXRBYlw?=
 =?us-ascii?Q?jBuSd4a2bo8n3bzj+VbQ1tlEhE7eGptDtGCxtQZ/b+rK+asKKrX/oyI41Lkj?=
 =?us-ascii?Q?wjGRoDiX9sR5pmo=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)(82310400026)(376014)(36860700013)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Apr 2025 19:40:58.7914
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 71854cb5-51b6-42be-9ad3-08dd760c1f12
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: PH7PR12MB5856

Store the result of finding a "multiboot,device-tree" node.  This will
simplity adding hardware domain checks.

Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
---
v4:
Add Stefano R-b

v3:
New

Could be squashed into the next patch, but this helps make the next one
cleaner.
---
 xen/arch/arm/dom0less-build.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
index 188ef40b52..50d2d3e4e4 100644
--- a/xen/arch/arm/dom0less-build.c
+++ b/xen/arch/arm/dom0less-build.c
@@ -1033,6 +1033,7 @@ void __init create_domUs(void)
             .grant_opts = XEN_DOMCTL_GRANT_version(opt_gnttab_max_version),
         };
         unsigned int flags = 0U;
+        bool has_dtb = false;
         uint32_t val;
         int rc;
 
@@ -1067,9 +1068,10 @@ void __init create_domUs(void)
              !strcmp(dom0less_iommu, "enabled") )
             iommu = true;
 
-        if ( iommu_enabled &&
-             (iommu || dt_find_compatible_node(node, NULL,
-                                               "multiboot,device-tree")) )
+        if ( dt_find_compatible_node(node, NULL, "multiboot,device-tree") )
+            has_dtb = true;
+
+        if ( iommu_enabled && (iommu || has_dtb) )
             d_cfg.flags |= XEN_DOMCTL_CDF_iommu;
 
         if ( !dt_property_read_u32(node, "nr_spis", &d_cfg.arch.nr_spis) )
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Mon Apr 07 19:53:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 19:53:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.941142.1340684 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1sWd-0006y0-5S; Mon, 07 Apr 2025 19:52:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 941142.1340684; Mon, 07 Apr 2025 19:52: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 1u1sWd-0006xt-2R; Mon, 07 Apr 2025 19:52:55 +0000
Received: by outflank-mailman (input) for mailman id 941142;
 Mon, 07 Apr 2025 19:52: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=tcrT=WZ=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1u1sLG-0007y6-2u
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 19:41:10 +0000
Received: from NAM11-CO1-obe.outbound.protection.outlook.com
 (mail-co1nam11on2062b.outbound.protection.outlook.com
 [2a01:111:f403:2416::62b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 40908d6a-13e8-11f0-9eaa-5ba50f476ded;
 Mon, 07 Apr 2025 21:41:08 +0200 (CEST)
Received: from DS7P220CA0007.NAMP220.PROD.OUTLOOK.COM (2603:10b6:8:1ca::14) by
 BL4PR12MB9481.namprd12.prod.outlook.com (2603:10b6:208:591::6) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.8583.42; Mon, 7 Apr 2025 19:41:01 +0000
Received: from DS3PEPF000099D3.namprd04.prod.outlook.com
 (2603:10b6:8:1ca:cafe::6e) by DS7P220CA0007.outlook.office365.com
 (2603:10b6:8:1ca::14) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8606.35 via Frontend Transport; Mon,
 7 Apr 2025 19:41:01 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 DS3PEPF000099D3.mail.protection.outlook.com (10.167.17.4) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8606.22 via Frontend Transport; Mon, 7 Apr 2025 19:41:01 +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, 7 Apr
 2025 14:41:00 -0500
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, 7 Apr
 2025 14:41:00 -0500
Received: from fedora.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; Mon, 7 Apr 2025 14:40:59 -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: 40908d6a-13e8-11f0-9eaa-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=gJIJH6HjofMzOvLAW7v8QTTwgLppWS+U06Hp48kX26HnZ+ybYa79YXmE8PzyjLFdPiyY6R/zND3te0W2sBg7EJXDX8vHzt896/Ll272Ctc7GJd+ETtn1xUff54fTVLprQkwbUdOnxbNEHLw8GFu6qSES069ZGb0gvu5un9tDOF6PiWg0+0TMn+IXJiqEfn1/giiA/3gIjOpDOZ469S2yDkwcPj70UdaWmuLbbTMWoZiWiiq2LZPPuvt7YnVdwU0r27rKCLZWU+hXbdB+czdx5mi6Ouxq7eiaMfp7UgB+6dqdqnUZ1F3a3MgYzbnD1qgAoip+TOW3hTFVRujcBjaboA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=NulqxlxTYJ2SYADeoU/nx0wxgrIotXpcN081uSysYhc=;
 b=i6BX1dJGs0bfyMlkj7y/9WcXRalLJcC64pNX7vL9WfebWenG6NkcOqtMgwRfT1Bi4LihtkxLDnHYmZRfUe00Lx/2L3A9zgHpYa6aeROkfvl8ic65F3MUMG7hQ7J0LugHuHlb3PKD0nmr1uPOMVJsp5egFHSb4zXNXw5vUpFGJwwHgD7XkbC4posVs4ml1tfMO3nF4Td7lHnet8q1vNYgKHWox9DUvI+qqZn3hzN4zv/Xn5m+KB7mDpHHZoT25yFK/y5+hB/L/ikd4wRRbO9annZm2AT9G9c9VDmjxG7EQ9OJdJA/3euI6B5U53RGJtsxIjnKiLgC9x5F2OReLJToeg==
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=NulqxlxTYJ2SYADeoU/nx0wxgrIotXpcN081uSysYhc=;
 b=SjrfdG+ehtYsEKPj93QtMSe+Ke4hyqLDNp1U2Lb+CYHFu3sPQ3eiezd+tOrUaTQuDE9Lc4Xr/luusDo5ifVIN/V09tFpGh0Uvb/L7SIxMzCnQbubwORtpb9bFN7tYvmZuT4I5xZCIePfEFjKL9qeDU4ioVN9J2YgXgEhNO9sjtM=
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>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, "Volodymyr
 Babchuk" <Volodymyr_Babchuk@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, "Jan
 Beulich" <jbeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>
Subject: [PATCH v4 7/7] xen/arm: Add capabilities to dom0less
Date: Mon, 7 Apr 2025 15:40:38 -0400
Message-ID: <20250407194038.83860-8-jason.andryuk@amd.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250407194038.83860-1-jason.andryuk@amd.com>
References: <20250407194038.83860-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: DS3PEPF000099D3:EE_|BL4PR12MB9481:EE_
X-MS-Office365-Filtering-Correlation-Id: f018133b-ff14-494f-d505-08dd760c2075
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|36860700013|1800799024|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?sZqIdXwziHVQcoIk/Ic1+EGkdkbOaw+wODIATDSJct2I0CzBeOQFl4vUKvWk?=
 =?us-ascii?Q?aArOjD6mtMJYg94VNnO4+FMC7MxTvWD0h9qL4VKf4NUuIIKl+JVeer4Bvw6T?=
 =?us-ascii?Q?Ubg4gC62aZE4jYWS3INPQVr6f6jjmRay1bC5O6Ua8WbwaH8qIaxMljWfYSfE?=
 =?us-ascii?Q?qR0celO4/EVJ/pdwCe6QxSjqWHLOqcQhSyM4vjFglcaR4oZYlfJUNahLJBv0?=
 =?us-ascii?Q?/gMWAtFxnYG8Ap6AV3sfHUB4ou4sn2MhWFWWgiGmOzYr9PFy16Ch5nFuSJ17?=
 =?us-ascii?Q?reHM2k6x6EPuEjIoJFSLcX1+agURPpESVT0Y4gvs/BioGjJo07yIIc98ck/U?=
 =?us-ascii?Q?BAOoydyJJjQfCFNWL5AORzmVjgtLiCSgs4JxK/mITXZ7TrEFbmGWo4Rf88ik?=
 =?us-ascii?Q?fDvwv0qhoC1PiHSj1VYTGM9q8YJjdQO9PoSo9PUV0c+zjEvHmI/SQxXS0adY?=
 =?us-ascii?Q?bCgLr/WTU288Xb4ByEA19maWKeS3Zh0aqjwgN4KX+bjgT998Trp50sQdMFM6?=
 =?us-ascii?Q?S6ggJhUE2n/gGnA4SVz5lIZWg2bhv/uk7lde7yqq8CQg6NPL5iMowuwWTo8u?=
 =?us-ascii?Q?U15u/RrV8McVZ9aSQt0NkCFcKXGM8k0BX7J9GnZiFf2n1JBdZl61ZBWYTQJl?=
 =?us-ascii?Q?h0pRz/VUV6bS9GU1SrqsXnLJ0JZSZchlx/bzuNw/OTF5LmZhVhGCrqPg5pzS?=
 =?us-ascii?Q?u53UoWL7hhGcY09lWJqdKOczo6Rt0jKXz+ka7Fh2sB4BenvKpiXREyHgbf+t?=
 =?us-ascii?Q?ERiFfgbmnAm2fV155AecVNL/ajf7o3mqEUEAQzRGHcyfcAlzvX5SUyfJoL8+?=
 =?us-ascii?Q?4XTnGvnwngVPoiXIsVyUccqvFIfoi+ToEodLzD7r5yhxc5GdD14OWrmP6Hpf?=
 =?us-ascii?Q?oLHBju3wjxZc55yvO/fvvn7ISaef9Ru67bwrC+/zU6uJF3ry90oyOjpxyyCW?=
 =?us-ascii?Q?FG13oc26g4hbZc05fxYlcUNph03UPKYOY6ms3PTFabvYRhpxL1zZh3/NxkCZ?=
 =?us-ascii?Q?OdWwT104BA39xEqj75d4X/QyoJZTE4CAcXMVRI47HtM/eROQ85dRVKWWFse6?=
 =?us-ascii?Q?RffCtblcpv/xDQoYVuOzcXGD5D0HYlAlqYsjwTEJQIgpDwgd60GdKu+aOL7x?=
 =?us-ascii?Q?oJtZnNomhxvVkl/2oCtOrlvzOMAsZ6yZVc/mh8h146TklW1k2eGDgsejIoq/?=
 =?us-ascii?Q?2xu8+pnQiCGhk46sBTzDLuAk1Aui+v5C9PXEzgcHCA4CuAWM7VmAK3AlXL8Q?=
 =?us-ascii?Q?IO8pbXeP8iOGcTQKRUt4WwR8P5FtZZEPhb7VN2aMcTcnkhSP3xhccBwkUvWF?=
 =?us-ascii?Q?ZfHu28OMe7sB3rK2FThb/M+5YpPmDVgxjV7ksFTND1ecsew5oCC7j4NKTCdG?=
 =?us-ascii?Q?pvOvb62CsLxd6Nk2NTlHe3DtI4D8TCv8qF9wb/RLR33j44PDmvJvLd9EMp1Q?=
 =?us-ascii?Q?mfAcm1sEYRfPt43j3Dy9Hv9B71TqwT+FQlTQ1PN6Nyqj+DS1JuRE0ZFfNCHo?=
 =?us-ascii?Q?Osppgqm+fdytyKI=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)(36860700013)(1800799024)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Apr 2025 19:41:01.1819
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: f018133b-ff14-494f-d505-08dd760c2075
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:
	DS3PEPF000099D3.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL4PR12MB9481

Add a capabilities property to dom0less to allow building a
disaggregated system.  Only a single hardware domain and single xenstore
domain can be specified.  Multiple control domains are possible.

Introduce bootfdt.h to contain these constants.

When using the hardware or xenstore capabilities, adjust the grant and
event channel limits similar to dom0.

For a hardware domain, disallow specifying "vpl011", "nr_spis",
"multiboot,device-tree" and "passthrough" nodes.  Also, require an IOMMU
when not direct-mapped,

Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
---
v4:
Add Stefano R-b

v3:
Specify 32bit integer in booting.txt & s/all all/all/
Panic on !direct-map && !iommu
Panic "multiboot,device-tree" or "passthrough" with hardware domain
Include asm/grant_table.h for CONFIG_GRANT_TABLE=n

v2:
Fix comment style
Make DOMAIN_CAPS_* unsigned
Remove forced directmap & iommu
Require iommu with use of hardware domain
Limit to a single xenstore domain

There is overlap with hyperlaunch.  The numeric values are the same.
Hyperlaunch doesn't expose the values in a public header as done here.
Is this to be expected for dom0less?  It seems most of dom0less isn't in
a header, but just in docs.

Hyperlaunch uses BUILD_CAPS_, but I chose DOMAIN_CAPS_ since there are
domain-level capabilities.

Only a single xenstore and hardware domain make sense.  Hardware domain
receiving all hardware can only have a single domain.

For Xenstore, the logic latches the single xs_domid and uses that for
all domains.  Also, only a single domain can register for VIRQ_DOM_EXC.
---
 docs/misc/arm/device-tree/booting.txt | 11 ++++++
 xen/arch/arm/dom0less-build.c         | 57 +++++++++++++++++++++++++--
 xen/arch/arm/domain.c                 |  3 +-
 xen/include/public/bootfdt.h          | 31 +++++++++++++++
 4 files changed, 98 insertions(+), 4 deletions(-)
 create mode 100644 xen/include/public/bootfdt.h

diff --git a/docs/misc/arm/device-tree/booting.txt b/docs/misc/arm/device-tree/booting.txt
index ac781c9cc8..59fa96a82e 100644
--- a/docs/misc/arm/device-tree/booting.txt
+++ b/docs/misc/arm/device-tree/booting.txt
@@ -167,6 +167,17 @@ with the following properties:
     Refer to docs/misc/cache_coloring.rst for syntax. This option is applicable
     only to Arm64 guests.
 
+- capabilities
+    Optional.  A 32-bit integer representing a bit field of domain capabilities
+    for a disaggregated system.  A traditional dom0 has all of these
+    capabilities, and a domU has none of them.
+
+    0x1 DOMAIN_CAPS_CONTROL  - A privileged, control domain
+    0x2 DOMAIN_CAPS_HARDWARE - The hardware domain - there can be only 1
+    0x4 DOMAIN_CAPS_XENSTORE - The xenstore domain - there can be only 1
+
+    The default is no capabilities.
+
 - vpl011
 
     An empty property to enable/disable a virtual pl011 for the guest to
diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
index 50d2d3e4e4..a356fc94fc 100644
--- a/xen/arch/arm/dom0less-build.c
+++ b/xen/arch/arm/dom0less-build.c
@@ -12,11 +12,13 @@
 #include <xen/sizes.h>
 #include <xen/vmap.h>
 
+#include <public/bootfdt.h>
 #include <public/io/xs_wire.h>
 
 #include <asm/arm64/sve.h>
 #include <asm/dom0less-build.h>
 #include <asm/domain_build.h>
+#include <asm/grant_table.h>
 #include <asm/static-memory.h>
 #include <asm/static-shmem.h>
 
@@ -928,6 +930,8 @@ static int __init construct_domU(struct domain *d,
            d->max_vcpus, mem);
 
     kinfo.vpl011 = dt_property_read_bool(node, "vpl011");
+    if ( kinfo.vpl011 && is_hardware_domain(d) )
+        panic("hardware domain cannot specify vpl011\n");
 
     rc = dt_property_read_string(node, "xen,enhanced", &dom0less_enhanced);
     if ( rc == -EILSEQ ||
@@ -1043,6 +1047,37 @@ void __init create_domUs(void)
         if ( (max_init_domid + 1) >= DOMID_FIRST_RESERVED )
             panic("No more domain IDs available\n");
 
+        if ( dt_property_read_u32(node, "capabilities", &val) )
+        {
+            if ( val & ~DOMAIN_CAPS_MASK )
+                panic("Invalid capabilities (%"PRIx32")\n", val);
+
+            if ( val & DOMAIN_CAPS_CONTROL )
+                flags |= CDF_privileged;
+
+            if ( val & DOMAIN_CAPS_HARDWARE )
+            {
+                if ( hardware_domain )
+                    panic("Only 1 hardware domain can be specified! (%pd)\n",
+                           hardware_domain);
+
+                d_cfg.max_grant_frames = gnttab_dom0_frames();
+                d_cfg.max_evtchn_port = -1;
+                flags |= CDF_hardware;
+                iommu = true;
+            }
+
+            if ( val & DOMAIN_CAPS_XENSTORE )
+            {
+                if ( xs_domid != DOMID_INVALID )
+                    panic("Only 1 xenstore domain can be specified! (%u)\n",
+                          xs_domid);
+
+                d_cfg.flags |= XEN_DOMCTL_CDF_xs_domain;
+                d_cfg.max_evtchn_port = -1;
+            }
+        }
+
         if ( dt_find_property(node, "xen,static-mem", NULL) )
         {
             if ( llc_coloring_enabled )
@@ -1064,12 +1099,26 @@ void __init create_domUs(void)
             panic("Missing property 'cpus' for domain %s\n",
                   dt_node_name(node));
 
-        if ( !dt_property_read_string(node, "passthrough", &dom0less_iommu) &&
-             !strcmp(dom0less_iommu, "enabled") )
-            iommu = true;
+        if ( !dt_property_read_string(node, "passthrough", &dom0less_iommu) )
+        {
+            if ( flags & CDF_hardware )
+                panic("Don't specify passthrough for hardware domain\n");
+
+            if ( !strcmp(dom0less_iommu, "enabled") )
+                iommu = true;
+        }
+
+        if ( (flags & CDF_hardware) && !(flags & CDF_directmap) &&
+             !iommu_enabled )
+            panic("non-direct mapped hardware domain requires iommu\n");
 
         if ( dt_find_compatible_node(node, NULL, "multiboot,device-tree") )
+        {
+            if ( flags & CDF_hardware )
+                panic("\"multiboot,device-tree\" incompatible with hardware domain\n");
+
             has_dtb = true;
+        }
 
         if ( iommu_enabled && (iommu || has_dtb) )
             d_cfg.flags |= XEN_DOMCTL_CDF_iommu;
@@ -1106,6 +1155,8 @@ void __init create_domUs(void)
                 d_cfg.arch.nr_spis = MAX(d_cfg.arch.nr_spis,
                                          vpl011_virq - 32 + 1);
         }
+        else if ( flags & CDF_hardware )
+            panic("nr_spis cannot be specified for hardware domain\n");
 
         /* Get the optional property domain-cpupool */
         cpupool_node = dt_parse_phandle(node, "domain-cpupool", 0);
diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
index 3ba959f866..dc4b4e84c1 100644
--- a/xen/arch/arm/domain.c
+++ b/xen/arch/arm/domain.c
@@ -608,7 +608,8 @@ 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_optional = (XEN_DOMCTL_CDF_iommu | XEN_DOMCTL_CDF_vpmu |
+                                   XEN_DOMCTL_CDF_xs_domain );
     unsigned int sve_vl_bits = sve_decode_vl(config->arch.sve_vl);
 
     if ( (config->flags & ~flags_optional) != flags_required )
diff --git a/xen/include/public/bootfdt.h b/xen/include/public/bootfdt.h
new file mode 100644
index 0000000000..86c46b42a9
--- /dev/null
+++ b/xen/include/public/bootfdt.h
@@ -0,0 +1,31 @@
+/* SPDX-License-Identifier: MIT */
+/*
+ * Xen Device Tree boot information
+ *
+ * Information for configuring Xen domains created at boot time.
+ */
+
+#ifndef __XEN_PUBLIC_BOOTFDT_H__
+#define __XEN_PUBLIC_BOOTFDT_H__
+
+/*
+ * Domain Capabilities specified in the "capabilities" property.  Use of
+ * this property allows splitting up the monolithic dom0 into separate,
+ * less privileged components.  A regular domU has no capabilities
+ * (which is the default if nothing is specified).  A traditional dom0
+ * has all three capabilities.
+ */
+
+/* Control/Privileged domain capable of affecting other domains. */
+#define DOMAIN_CAPS_CONTROL  (1U << 0)
+/*
+ * Hardware domain controlling physical hardware.  Typically providing
+ * backends to other domains.
+ */
+#define DOMAIN_CAPS_HARDWARE (1U << 1)
+/* Xenstore domain. */
+#define DOMAIN_CAPS_XENSTORE (1U << 2)
+#define DOMAIN_CAPS_MASK     (DOMAIN_CAPS_CONTROL | DOMAIN_CAPS_HARDWARE | \
+                              DOMAIN_CAPS_XENSTORE)
+
+#endif /* __XEN_PUBLIC_BOOTFDT_H__ */
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Mon Apr 07 20:36:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 20:36:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.941179.1340694 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1tCq-0002rr-BI; Mon, 07 Apr 2025 20:36:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 941179.1340694; Mon, 07 Apr 2025 20:36:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1tCq-0002rk-7Z; Mon, 07 Apr 2025 20:36:32 +0000
Received: by outflank-mailman (input) for mailman id 941179;
 Mon, 07 Apr 2025 20:36: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=tcrT=WZ=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1u1tCo-0002re-2K
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 20:36:30 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on2060d.outbound.protection.outlook.com
 [2a01:111:f403:2414::60d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fa11c1b4-13ef-11f0-9eaa-5ba50f476ded;
 Mon, 07 Apr 2025 22:36:27 +0200 (CEST)
Received: from CYZPR02CA0009.namprd02.prod.outlook.com (2603:10b6:930:a1::27)
 by MN0PR12MB6054.namprd12.prod.outlook.com (2603:10b6:208:3ce::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.34; Mon, 7 Apr
 2025 20:36:22 +0000
Received: from CY4PEPF0000E9DC.namprd05.prod.outlook.com
 (2603:10b6:930:a1:cafe::ae) by CYZPR02CA0009.outlook.office365.com
 (2603:10b6:930:a1::27) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8606.35 via Frontend Transport; Mon,
 7 Apr 2025 20:36:21 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CY4PEPF0000E9DC.mail.protection.outlook.com (10.167.241.75) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8632.13 via Frontend Transport; Mon, 7 Apr 2025 20:36:21 +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, 7 Apr
 2025 15:36:21 -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; Mon, 7 Apr
 2025 15:36:20 -0500
Received: from [172.25.231.87] (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, 7 Apr 2025 15:36:20 -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: fa11c1b4-13ef-11f0-9eaa-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ew9ddP/j/ixPD+qXe2/bI00pff6Sj1+I0akRor4ty1bO/2c09fOBoO1gGqwMHvhI4Na2uV86G8hwG5lAuNJbbtlDSertj+SYMNWvbU4Lx+0aYH3edtGwpgpsnGAVVK3agR5XDzRe4TSOxHQ79/sDqat3Ee7pZm3q3nW8cPydGlrsNHW+EB41rAZMDOXq7/B1NklvLH5PayY+GOec3cSRIfEnSkx7j4TAai+zB6loNE4ht8M2K0z1xEjNx/AhiJns6L4JvoOnj2PKw7awkzL11wzcnD1q+Be7UGjGVj4r6hNUnjgtn2fIVF91UW+5AeL8TcthukLekDIWIoCN51KYdQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=rWAC3/iDV14JOgClU2ZYFqE3Nz+XQbJNT637iEKRIO0=;
 b=QwWezsvnDE7wyTUONVHyL+LBU2ekiONEAgLi2rwdx1IptQu7bhob27J/OVSH/rQZjuhqyLMqF10m0NXVqZjZ8BhntIi8z/vTdv9m1hmYPlJDkl1BHEFFLtibunu0gHoEd/d+wPpHEqB5NP9UgwQD70Qwe+nKMLw6MYPssJ3Hw5df++lXUiZnGArhriYDQ18UOMJVLgoIcFst2cPkOHn8QfRNqBwuPoETz1iy+FZsBIIJBjqHKVOHpk6XTUP4rzMac7pZUwiVcgSGhsSqC1KeTtd5lDqhfRufa9ACWl235CUDDuKRABTlHMKQ65GaQPU3CzMuk4JBIHlQcAPLBv5JSQ==
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=rWAC3/iDV14JOgClU2ZYFqE3Nz+XQbJNT637iEKRIO0=;
 b=C59JZ0HX4CIihwqUrSCaG4HM5C9SH7ZtoBPhMCVFK5Y1yGR4lf9HWtQ5LC60Aqxsr/H1c99G9EiU8EnQE26LLZ+EIACNvir+zvba3zkS2OgNncAIo9OC2oFk/j7JHAkeGqnNcZvc/ZlRWGnqmjT5XHtWTk63N6tdti7NyLZCI2E=
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: <1771acb9-e28b-443e-b603-f0dedcdc3c54@amd.com>
Date: Mon, 7 Apr 2025 16:36:20 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] libxc/PM: correct (not just) error handling in
 xc_get_cpufreq_para()
To: Jan Beulich <jbeulich@suse.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
CC: Anthony Perard <anthony@xenproject.org>, Juergen Gross <jgross@suse.com>
References: <df676738-19e7-47e6-977f-25d6d13ccc50@suse.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <df676738-19e7-47e6-977f-25d6d13ccc50@suse.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: CY4PEPF0000E9DC:EE_|MN0PR12MB6054:EE_
X-MS-Office365-Filtering-Correlation-Id: fa33a8e5-29c5-4db1-919d-08dd7613dbb9
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|1800799024|82310400026|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?Qll5dCs1MkR5RTJYbzgzOUhORzhldDIxSTNGVXN0TlUxM0tPUTZ1Z2VQbnh5?=
 =?utf-8?B?azZkWlc2ZWFpaEJTbE5Wdk9KSmt6cVI1NkZKWUdmUzJDYzA0S2QyOGpLeXBj?=
 =?utf-8?B?aXpyODd3R1ZlUkQyQWo5bHZMWExocXcrUTg3NCtIREh2QjdXRVZPczdZY094?=
 =?utf-8?B?KzRTcmdVMDcraE9KUkFYZmFyVTFCYVpody9qb2gxcGN2Tk5QaGk1eHJNVTNj?=
 =?utf-8?B?MzNvZHptbU1CZDNBa3Z6SzBobmVYZ0Q5TWwyZlJUYTN4azBpYisxZCtzb1g3?=
 =?utf-8?B?Z2NucENUWlA0OEZqSW82K3F6c3lkNGFFUno1bGlQKzhJcG0vU3FzWFYrSElI?=
 =?utf-8?B?QVEvYzRiMjRFOUlLZ28zVlFHVjZqaUsxTlZaQ0QvN29mZkJhRDB4d2JycXRD?=
 =?utf-8?B?TDdGSWNUQVAzS2QzdURuclJEYXA2TFNoYjZCeEJwWGlDTzZGZ3Q5cmFVMVIr?=
 =?utf-8?B?d09RVjJOVUNkWCtsOHcva1RMamczYnovdFJwKysyaDEzYXJxSkY0NlVadWZT?=
 =?utf-8?B?ZXcvSkxnTU5KMUtsRjRqSTRjYUVoQXdWTStCVWc1YWg0L2w1VmUwSC9PNWEv?=
 =?utf-8?B?TzhiS3pWc1dMc0p2UHpWaDlsWUVIamNmOVNmWTBNdkNmUFdFSzBHTUxTOTN1?=
 =?utf-8?B?ZkxCWWdhL1JFOC9PVitOZmNWMnRFUEdaS0VCcFJmbVFjekpwZGhrSVBnOGNI?=
 =?utf-8?B?cVZIdnJaa2pubU4vNXdQdHdzM21LU3N4UThpZmpJRnJ4NmludGJIQjhjNS80?=
 =?utf-8?B?MGpvN3FHNjNoUzFsY1BrWHNLajRrMlF3eDl3UFRYS0Z2dnowUDhQdnNKelhj?=
 =?utf-8?B?RFFJQmZCbzRlWUhCaWtIQ2ttOE0yWndqVWhLV3hNZnhLWm4xMk1zNDQ3Mk1w?=
 =?utf-8?B?RldvOVh6N3BCYTdFOHZ4SmxiYkpLZEZlSXh3dlQ5YUxPQlBTUHloT0gzbUVB?=
 =?utf-8?B?N3pIZ1djMHNKTXh3YWQyMUpMMGduYTI2a015NE5NazJtZDYvSktVMys4U0FW?=
 =?utf-8?B?YzUvVkpZL24xa1JsTzFQTjFuSGUraktJZGk5NjUvd3k5OExKQnpYVHNZUFhn?=
 =?utf-8?B?ajdXdjk2K3l1OHNvR2R3d2dzeE9MQTNxQVUvTnVWWUJUSzA4anAwRmg1Zm1q?=
 =?utf-8?B?NGFidkt2M3NhNjExNGI5VFJlTm91S0FFRGdRYU9JeHB2Z0pkMnpYdUhiYzR0?=
 =?utf-8?B?R2FEODQyTitFcnpFcWtYT1lIQ283eHIzQnZlRzMzbXUvTFN0eXk1S3gvdzA4?=
 =?utf-8?B?d3FWVEo5RWNqTmhhZGxQV2M0Zlh5bXBnWWlJOUFCMitiQk5aNXpjd3ZoMHdk?=
 =?utf-8?B?c1pBQ05aQjQwNU9OMkFrdWpxMDZUWXV1V2xLS2tjN3NGZmsvMnhGVllTNGFB?=
 =?utf-8?B?ZWRKV2FndnExNmJqdDl3LzFjdVh2Y0t3VVN0MHUrYlNqK0JXNkJEbCttUHFH?=
 =?utf-8?B?c09IUXlmQ0RHVnFQejZFYVB6NXVFWWM5aWxVZ2tvN2lNd1pqY0YyT0FDa0Nj?=
 =?utf-8?B?Zm42VjVMNWxWWTBFZ084ZENmek1FTnk2NGJnSCtZbXdvbFczY2Zrc3NaZjRB?=
 =?utf-8?B?Q0l5b0lTSFpxVUpJd05JUjlaaXFUZjZ6L1JhSXJFQ0I2VittWk82R2lEbHFU?=
 =?utf-8?B?WEJBRG5XYnE4eVVzbHlLdWRDZHpHS29PbWtxV1ZzU1U2cXNoZTA2WGpZcFcy?=
 =?utf-8?B?TWl5aVdhS2FRYlBHamV3dkpWVnlKay8rc0M0ZkU1KzQ5V2Jja3JTcUx0aGpk?=
 =?utf-8?B?RlpCVGVXdGsyVnhpS1B5b1pNK2llcDRSRHg3YkN6bmdFTHhDVWZiUDJKdFcw?=
 =?utf-8?B?NjdRTjZkSXB3SVBrWTk3cTZDMHNRbHlKNHYwV2c4Mzl3QUZhRTM0Ym9vOTJ2?=
 =?utf-8?B?a05ta1JnMUhITk9lZXAyZGt4THdRTFUrOWNNSUN1eGsxYkpGNlpwRGNEbjVU?=
 =?utf-8?B?SkZ6Z2VkUjdmMGxNMzM4ekRkMmhCZW1kV2lxNTlZMzV3MlVTcnM0SkN3VTMx?=
 =?utf-8?Q?X7YmY5WOBHnrLs8RrtyPbVJL23/AH8=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)(1800799024)(82310400026)(376014)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Apr 2025 20:36:21.7743
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: fa33a8e5-29c5-4db1-919d-08dd7613dbb9
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:
	CY4PEPF0000E9DC.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN0PR12MB6054

On 2025-03-27 09:32, Jan Beulich wrote:
>  From their introduction all xc_hypercall_bounce_pre() uses, when they
> failed, would properly cause exit from the function including cleanup,
> yet without informing the caller of the failure. Purge the unlock_1
> label for being both pointless and mis-named.
> 
> An earlier attempt to switch to the usual split between return value and
> errno wasn't quite complete.
> 
> HWP work made the cleanup of the "available governors" array
> conditional, neglecting the fact that the condition used may not be the
> condition that was used to allocate the buffer (as the structure field
> is updated upon getting back EAGAIN). Throughout the function, use the
> local variable being introduced to address that.
> 
> Fixes: 4513025a8790 ("libxc: convert sysctl interfaces over to hypercall buffers")
> Amends: 73367cf3b4b4 ("libxc: Fix xc_pm API calls to return negative error and stash error in errno")
> Fixes: 31e264c672bc ("pmstat&xenpm: Re-arrage for cpufreq union")
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

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

This fixes the currently broken logic with has_num, so I think it's a 
good change.

I think the gov_num==0 no longer happens with HWP because it registers a 
governor:

     return cpufreq_register_governor(&cpufreq_gov_hwp);

Unfortunately, I no longer have an HWP-capable system to verify.

Regards,
Jason


From xen-devel-bounces@lists.xenproject.org Mon Apr 07 22:40:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 22:40:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.941214.1340746 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1v8u-00070v-8E; Mon, 07 Apr 2025 22:40:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 941214.1340746; Mon, 07 Apr 2025 22: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 1u1v8u-00070M-5a; Mon, 07 Apr 2025 22:40:36 +0000
Received: by outflank-mailman (input) for mailman id 941214;
 Mon, 07 Apr 2025 22:40: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=taXB=WZ=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1u1v8s-0006OT-NM
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 22:40:34 +0000
Received: from EUR02-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur02on20605.outbound.protection.outlook.com
 [2a01:111:f403:2607::605])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4faa0187-1401-11f0-9ffb-bf95429c2676;
 Tue, 08 Apr 2025 00:40:31 +0200 (CEST)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by PA1PR03MB10914.eurprd03.prod.outlook.com
 (2603:10a6:102:48a::14) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.31; Mon, 7 Apr
 2025 22:40: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%5]) with mapi id 15.20.8606.033; Mon, 7 Apr 2025
 22:40: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: 4faa0187-1401-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=jJUznvMJ1KTrn5Ou3q1ACETKC14quAKouBhkKhpzZw6SvQoZJs3mMlg4N1EjSkpWOWUzIe896Q5JbjQQs+xQqpQv3pH6ivy1JIjbSW3deTZ0sBOLOrOSYX7nGydUWADz/5UpMSoYRr6GSWqx6yUjf/vVg4zxoYIV+diCrB8y+TIuV5+wbkpplGWRrTUosZxacFKM3sLW7/cG0KDHsxL1kDz0MGVxQrBQPxuAHkVGjNbsT9OJTkRkn567FC26mZaLFGaR7q5V5zlVChIzUxXBDn7bs+dgidUGatST2Z7UXv/T4p40v5fIwFF0BUx+RRhMx8L6FHYddNexjy2blodG5Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=hJZ1VK1dH0aQT5LROQf9UQqgdUMpjf/S9LRF/mvQYd0=;
 b=JUbaPYZcMG1gLQCHt3uI20iNS12v1vt5uMxtVgEDpVPeEnK5YIrNP0MTR/vH9p3opIMnZcblvuZ0P14XKVX/qQvt7cogFMN12wPyG7J1FIXV5jq2x/TnzYQNQTk1tDfPHRa2qzNkF0mOZdl4jfhY6ZvBnXF4ZzB0SKlA4DqfQaN5e3V1Alp/qCn0EijR0H9er/MXUAC0vEzeIsKdehrb8h/2qtpGOPWj9bPlWJvNXAsZHwor0AidNUyrHyGYl+rodbXohN5k+YQmW8Vwd1j0Um6VIn7TTYn2xLIU1fD5WjSU4a07b7yEfQugeRF3uUFK31Soww44NCT1bbby+f7E6A==
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=hJZ1VK1dH0aQT5LROQf9UQqgdUMpjf/S9LRF/mvQYd0=;
 b=Av7K7tFZwEtrY+1Imx9eaofO/dVdsxOzocxhPsqvGettxE6/r6y+jb35uF47GZp2rb0FX5BQibLE3HqGOSg0XmjJVf0DUVVtqepM3fRKgwceNL5YKrsYhm/XjGxXyGGe2E8E1nLp+6+wTJX/Q2UT52sPtMdfm/VrVN96VqOBGKabYwuYta6HG4nXu6qbdJyi5XTDTQG0eIEMO9j1ABsYDpj00BaZMO+clq57Oreg3OgKOjvqgZHuRbDBN/Mja5vYme41WBcd5hY7/cY+nmlZwRP0gAcxX9CsQN2VL7H+pSuAkQXdYo6BusqRbfVuECNxUFCzTpKRwVnbkJkOPTxeXA==
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>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, Julien
 Grall <julien@xen.org>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>, Bertrand
 Marquis <bertrand.marquis@arm.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Community Manager <community.manager@xenproject.org>
Subject: [PATCH v8 0/3] Add/enable stack protector
Thread-Topic: [PATCH v8 0/3] Add/enable stack protector
Thread-Index: AQHbqA4O1S8K2RG8Nk6rnhLaMaN4aQ==
Date: Mon, 7 Apr 2025 22:40:25 +0000
Message-ID: <20250407224009.2577560-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.48.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_|PA1PR03MB10914:EE_
x-ms-office365-filtering-correlation-id: 19572e48-e3fb-4ce8-1f7b-08dd762530ed
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?rTO1Pvwte705+MilLk6RM5LMvnVShmAphxIkmmBj9F+C+V9mkzbu1fV2wL?=
 =?iso-8859-1?Q?GrAypcsv8JNd/TUhedorTO161gXhFn0/Y+QDLaaWaVbck1wBdRtomCWh4m?=
 =?iso-8859-1?Q?GTptqR3lruPNV0q2nIvtqBhtJEucujG72vHsco+dCTi4mn25c1tdo3m9CX?=
 =?iso-8859-1?Q?mJWLa41sKnx7XWxdU8z34llfN3ONgsoNwpFEZsYFM7Tv2Se0OPLwz2+JXD?=
 =?iso-8859-1?Q?Yvu80oT2Y8DpSZG5/IbfRRABYPOhSBW4lfu4ZlfLx+AymQuZIe6+g5NXXd?=
 =?iso-8859-1?Q?BvKwmNOvxQNhuQrMe4IZ7tVrmQ+HPkXRYLI8MLBWA1H2rYrlGjHmEI3bCo?=
 =?iso-8859-1?Q?7VffA/BhTJmW8WCKggpaJZ0BH6MbmxGw/DsS3r4tsN07pD5aq3x0SHh1qk?=
 =?iso-8859-1?Q?HuR96gSy9S+LX14M6mOFmfcgaxitaqnRUZ73MiqsSXhw5bMoHMi5GoucxB?=
 =?iso-8859-1?Q?TAKDi7B7TKGlJqSeQS6oV7Pv5/X73jlmHAJJmcROPefMuUe1b8KVTAlGCA?=
 =?iso-8859-1?Q?tPH7lAw1SlyAFWJS94oBnOUyXoZF8W88RZl70GzbBrrlvKNtdzGpIvHGMn?=
 =?iso-8859-1?Q?7JQWBWKp19h/Fz645KMzSJGQqi9bJCrtIRdDRTQf05c++g3lnj/UWZnaWt?=
 =?iso-8859-1?Q?hda/HKB6Qr4bPUl2ziUP4fJEZkQsEmRdLQMA7sUpKUBAin86tXRaSBjA07?=
 =?iso-8859-1?Q?FrjSM3oVgNYzlZNbsgf9Kn3T/cKSvMQTiWzvWymRe2MGEo9CnL8N6uN5xG?=
 =?iso-8859-1?Q?Y+uPKcwFTMxknp8YNR5dhzm9clcQcKOpMdFehyeFYbSqrVSaJGJiUbppuG?=
 =?iso-8859-1?Q?XNo1UnLxAUGabeBUwh1zekO1FOZPZb869vAVZSI/Ma4+0OPAv82PIOnbVc?=
 =?iso-8859-1?Q?dpA7iTGvq+4xEcz+FwgAQyvRu/nUB9GQw8BnA85AJ8EfVFWrOCLejgNQpt?=
 =?iso-8859-1?Q?ShDMH3H5kUZ41uCIYK5uOyKemQK1ksFhl3z9RHVDGkQEs2M8rc9XKtv85m?=
 =?iso-8859-1?Q?B18eOCXKwEyguLMFlYBKtCaHsD9Yetgys2y4ENb+OHdH6+upd3iik/wBai?=
 =?iso-8859-1?Q?SXXXoWsqIrJ7d49gDnS48UzgpPXsS/NurEmTz7owoDg7idDgKF+aZNVfYs?=
 =?iso-8859-1?Q?6izw547UNupER0nVniPFLvfGAqDHl9HwLOHvJ/UsLRWhHlPF5Lh9CRbrfX?=
 =?iso-8859-1?Q?VRfAn/6T6d5sbnHG0CxIpVP7fLfj0vn08DRlDZmg3p+ZGaRP70yAtpfIAP?=
 =?iso-8859-1?Q?wzH7GHttkuQT8b4L4ieOgQ22f+a8UWiqP4Fdm+NSdmtNA9lfQ8Aa2XS/9u?=
 =?iso-8859-1?Q?JoiBJcsiVs7+NsXRvdLkCnzJcb4a5nlzrWsxyxb0BBzsuF3ZzZgSoftR73?=
 =?iso-8859-1?Q?BpAkpMRJdaAFwk4JnTpM3Dw4mJ0CzIfk9VFnaHE6WDsOya3sYoS7CrR+1o?=
 =?iso-8859-1?Q?sNPkIzdo0NKF6c7taz8gyugAisBciQK3XHbfMGtRX1yZnd89zJ95kPngof?=
 =?iso-8859-1?Q?OFKut27MmBjigiTtiPxHSN?=
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?jhH4ASZCQvhDurQn83d+0Avg1/BtCQ4KciFTCU3WKqFzusOCyXqb7AgbDm?=
 =?iso-8859-1?Q?vZvRHh49By6AlIxgwZ2qaGQlO+pW0IOgRL1G15potTY7Fg2TFskXRZnWTC?=
 =?iso-8859-1?Q?Ct/jSZUlKsRQqTXKnzU8S/fpqZ56XqvFGXdeC6CZB0dURxVJJbBRWGnLjf?=
 =?iso-8859-1?Q?X/JGefyevtYjTEEizHaEWuNQQJmmK9aycmj6BuBOUuuxZ8qxmjFv5YUd09?=
 =?iso-8859-1?Q?P2yCc3CiBC0agrl8nIkoWSfwQ0feQZLAO5hmpLhJ8WYjtqk7gemxvN+QMa?=
 =?iso-8859-1?Q?IOv19blPz6XLh6JOtLLWJiDbKaelWMmjuvuDG74Qe0yQQoc4XtEQr0Nxbx?=
 =?iso-8859-1?Q?IPWcuGOOhr/ZUTb/9wxvXGJXdSsAcWP45TeUIOoibYgc6MtTnGhrYPzYWS?=
 =?iso-8859-1?Q?vyESZyE+Q+6PnOzSCac9i0hEY8weNbXb38NwMi6Mrrll3rdfkUOxk1jnUo?=
 =?iso-8859-1?Q?lJvcA83W59STGSO1akivEYgbMv0KgO/aHi5sr4m7GdOGswwr0WWPhCX2sv?=
 =?iso-8859-1?Q?bEodV6opyVwXpARv4WW9e8KJ6ma1qrfv09Xx+193uaiuSY34gInkfZkrFV?=
 =?iso-8859-1?Q?aXYGm0dmdKr8PvGrs0aaVACl8CIQNhHnytB403I4CciIajiNapkEjvCq/o?=
 =?iso-8859-1?Q?MPz/x2hJPmpXn+8eo4Ovk1YwAp4MNhvnOEsD7ppqsZjVTii6sL6pgBBWXO?=
 =?iso-8859-1?Q?fhL6vhszX8LjoiEXQ54HQs3BfwrO7P14stjNHT1O9eW/W85dppJHbuBOSS?=
 =?iso-8859-1?Q?y3DLP0V3i8CxEr95yQeht4XVdumnap/qFIUuN9stIMv5FbQ+rmaEpxRU/J?=
 =?iso-8859-1?Q?5C6LkORQfbHX3FgbBFeY7ZSSPgJTk+fpU9Me+kww6ERpxdOpxtB1k/s8ac?=
 =?iso-8859-1?Q?jpBJnDtV3J91Ej4aH3pPvXu26SAmgb6eveKmuOtJdZiQIzCa7twH0NKmaN?=
 =?iso-8859-1?Q?0QCXPYTZ4yCWZvdPM0thybd2V6Q1atjmIVauvcy3YqxzU66DZpcEXMW7Ft?=
 =?iso-8859-1?Q?5SUk5JO/ROaf6QPO2sksBH5lookfSukL6fyv0m2ggrz+mFVqu0ItN8gd3e?=
 =?iso-8859-1?Q?p98mbiVcYuUpU60Zz2Xys++6HAFFcyT9YggQuvCjdbKW8zlXN9vF3duYy2?=
 =?iso-8859-1?Q?YaMrZaq71ghFogMtRC6SSOjziQCoh2LP4Yod0CM2goj9W+spwOsZhMNzBr?=
 =?iso-8859-1?Q?Nf70o31AyZ84bSrtI3NOe+sLEnqCtp0I+QBdQ1p5x86GbV/N59FS2UGGAq?=
 =?iso-8859-1?Q?OK61fMNwwJ6kBOOk1vL2p3jfFJ3SHfCQpC1uJa+GWwEL47LNNV0KK26umO?=
 =?iso-8859-1?Q?cOkg2JipDeLmoekxAxfUn5Dl3N6+9tLrY71WxlANIwzGZS9qm64on3s5Pb?=
 =?iso-8859-1?Q?RCJjleBBkGCRok9YUsPPz8VRTNLoPDbPdkwI8SKby7+d3AAOYo24ZgD/kE?=
 =?iso-8859-1?Q?Q6uroUU+09A684bJOEePlByFjiitBomd2xHTnHwCUMIaRIODZbXDHbn+2Q?=
 =?iso-8859-1?Q?XsgCRAc7ua0YOiiGCpVjD/VVykyqUngZo3tlO0Iu+Z1kCdhJlLu8RJvkxW?=
 =?iso-8859-1?Q?LqhQNF0t0Q/7F2x8lIP55VK/PvhwapaHj3aLCnQdnLvcsSDGaPOFq1wwyz?=
 =?iso-8859-1?Q?jhO78zfm9Nk99D6MFbZCfojjU8FnGuMIJigudbrPa/FXuqgNhvDS9OdA?=
 =?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: 19572e48-e3fb-4ce8-1f7b-08dd762530ed
X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Apr 2025 22:40:26.3124
 (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: C51nFj6fcYTXepVkWVe5q35IswfItOLxhLGU9rHqShjE8gwDl5d3SFqngZmwqIRankisHXbMLvoHi5Yfw/VVEDqwbF5+UD7BMSoIyOOK8vg=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA1PR03MB10914


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. Also tested
with "-fstack-protector-all" compilation option to ensure that
initialization code works as expected.

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
attempt to do this uncovered a whole host problems with GNU ld.
So, this series focus mostly on ARM.

Changes in v8:
 - Added MISRA deviation for __stack_chk_fail()

Changes in v7:
 - Patch "common: remove -fno-stack-protector from EMBEDDED_EXTRA_CFLAGS"
   is taken into mainline
 - Updated CHANGELOG for v4.21
 - Updated stack-protector.h as per Jan's comments

Changes in v6:

 - Moved stack guard initialization code to the header file
 - Expanded commit message for "[PATCH v6 3/4] xen: arm:
   enable stack protector feature"
 - Dropped couple of R-b tags
 - Added comment to "PATCH v6 4/4] CHANGELOG.md: Mention
   stack-protector feature", mentioning that it should be reworked
   if (almost certainly) it will not get into 4.20.
 - Tested with "-fstack-protector-all"


Changes in v5:

 - ARM code calls boot_stack_chk_guard_setup() from early C code
 - Bringed back stack-protector.h because C code needs to call
   boot_stack_chk_guard_setup()
 - Fixed formatting
 - Added Andrew's R-b tag

Changes in v4:

 - Added patch to CHANGELOG.md
 - Removed stack-protector.h because we dropped support for
   Xen's built-in RNG code and rely only on own implementation
 - Changes in individual patches are covered in their respect commit
 messages

Changes in v3:

 - Removed patch for riscv
 - Changes in individual patches are covered in their respect commit
 messages

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 (3):
  xen: common: add ability to enable stack protector
  xen: arm: enable stack protector feature
  CHANGELOG.md: Mention stack-protector feature

 CHANGELOG.md                      |  3 +++
 docs/misra/safe.json              |  8 +++++++
 xen/Makefile                      |  4 ++++
 xen/arch/arm/Kconfig              |  1 +
 xen/arch/arm/setup.c              |  3 +++
 xen/common/Kconfig                | 15 ++++++++++++
 xen/common/Makefile               |  1 +
 xen/common/stack-protector.c      | 22 +++++++++++++++++
 xen/include/xen/stack-protector.h | 39 +++++++++++++++++++++++++++++++
 9 files changed, 96 insertions(+)
 create mode 100644 xen/common/stack-protector.c
 create mode 100644 xen/include/xen/stack-protector.h

--=20
2.48.1


From xen-devel-bounces@lists.xenproject.org Mon Apr 07 22:40:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 22:40:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.941215.1340757 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1v8v-0007Hn-Ix; Mon, 07 Apr 2025 22:40:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 941215.1340757; Mon, 07 Apr 2025 22:40: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 1u1v8v-0007Hg-FR; Mon, 07 Apr 2025 22:40:37 +0000
Received: by outflank-mailman (input) for mailman id 941215;
 Mon, 07 Apr 2025 22: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=taXB=WZ=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1u1v8t-0006OT-Bx
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 22:40:35 +0000
Received: from EUR02-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur02on20605.outbound.protection.outlook.com
 [2a01:111:f403:2607::605])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 510ec3c4-1401-11f0-9ffb-bf95429c2676;
 Tue, 08 Apr 2025 00:40:33 +0200 (CEST)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by PA1PR03MB10914.eurprd03.prod.outlook.com
 (2603:10a6:102:48a::14) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.31; Mon, 7 Apr
 2025 22:40: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%5]) with mapi id 15.20.8606.033; Mon, 7 Apr 2025
 22:40: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: 510ec3c4-1401-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=BJlQ2XSY6LOMj4nv54oj83O+xC/dsQxZH/XLl0zhnbfSKxzOIxtYBRBgavGd0XeykLjxKVvf2y+MrKYkjNq51i1/dKri2ZAFtUxliDcO1u9NXfuIYuIDM9oaNlftC8e5CzeMH0i//5DI7PgtjH58zeZ9XQKUU/9T5zk/0XcKkawgMR8q/2ou0vD9smWF0vHw5j87c/14C29QPwsIcChvWPyHz5coQa5G15OcZj+RTPXh9VuzEtBcy6p4hE8wvldpuucFoit+imqIBnKcnMdOjyXBlIeCvNPV83GVl9WsyYI1btToG7pL4wcKq5iLoMAv8ua6EHPpoo/AD9GaoDE7fg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=dpwTyKZDitgAE5NHFJnIxBl6LWPz6r0Idd0Cm8s4Sp4=;
 b=X1+ha5PKvzWU4wTPr6IjATduJ/Eo3/D3lMZwil5wVZeumhEOMQNaEQFob2DYZ94TEOREboVd++myal2gkrDY9PSEtO87AZyO6UiYuPr8thCXGJQUxLxISErjOTEX7nxTZUD75dlJYaWBbJ69nJzmAmRmm9UxNh9S6wa8kx9pi/l4SUP8MJWVk+GB59mgDmZKaFTo75a5IRkfoQa1vKZsB/HHF51lEd63qeH60/uxkZCb+91SlQr9e+qGK0Fd2sM4Mw0KMjvq4MQHc5JHsyFR0e/VIXOmb5/9WI5CRTbkJ3+Opg4h6Qu55p4qZplk2wt7N4bLFZs3Lr0SktZ4eoRSGw==
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=dpwTyKZDitgAE5NHFJnIxBl6LWPz6r0Idd0Cm8s4Sp4=;
 b=PL0+e+SE8mxQhWr4lwMrHmS/VfWIYqnc1u/wxFeCKM2RLylqg26bI3CrObvYfc6+if4+8Ph4R1hRlVg5UJ1BkStxLGkkZ5GAVrnyV/R3PdcC9QJgMmCvKKLZWU8sHyvRYL9RvfUHj/AhH5bRyh3J/eByyyyVNX3Zdn7Qy6ns8GAMgXB5smazxiGx8PfSwPy5tj+IIk7vhbWPIQ2+/mFyiJB7r21YhwssfbD+mazKieLFznAh/acBfYTkQwwLLzW07mCIffWx/Ze7HSV7BPTvbHBx6IQ+ieHfwL7mQAdbOxlCuo71A0eIcULY91Bhq7N6oK6gDt35fbkGRh+sEF0oVw==
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>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, Julien
 Grall <julien@xen.org>, =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>, Nicola
 Vetrini <nicola.vetrini@bugseng.com>
Subject: [PATCH v8 1/3] xen: common: add ability to enable stack protector
Thread-Topic: [PATCH v8 1/3] xen: common: add ability to enable stack
 protector
Thread-Index: AQHbqA4Pj76hGRdg9ESZqA2thQqQLA==
Date: Mon, 7 Apr 2025 22:40:27 +0000
Message-ID: <20250407224009.2577560-2-volodymyr_babchuk@epam.com>
References: <20250407224009.2577560-1-volodymyr_babchuk@epam.com>
In-Reply-To: <20250407224009.2577560-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.48.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_|PA1PR03MB10914:EE_
x-ms-office365-filtering-correlation-id: 79e97baf-960f-4ae9-7d9c-08dd762532c2
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?MFBLZ1ROS2x4dFEzd3V0QlZwSitVTHhKV3lRTVAvSytMVWRXcTk2RDhncW5W?=
 =?utf-8?B?Mk91bldkb3ord0E0OUlneFBudm1wSWNqRnpjZDM3SE4wMTR4SnBPRTFuVEhN?=
 =?utf-8?B?WTZKUmVaK3h6K2ZYaVFnZEdjTVR0MStWL3pEclRFUFJPYzRTejZOZGJOT3dm?=
 =?utf-8?B?VnhoQzNMTXZRTXNnWlZ2Q3JBMXYwMVZlZEtaTjFpandiQi8ydXUwRFROdDFF?=
 =?utf-8?B?NzFhUG5UYVluMTJNUWNPQSt3QTVwd1FieW9Jc0VkM2JYUklKRCtXS0JSRVVa?=
 =?utf-8?B?aTVvUXppeGQvb2tyRjZMRFltTFFBY2hRSUtLU0VkZDNtZVdWb251eVpIT1k2?=
 =?utf-8?B?ZTNLUmZNWGJPWlJqeTBVU09HT2xLcjc1MURjblNDU2FqMGtiYkJlaTRyQngy?=
 =?utf-8?B?dWszczFQQjIzU2psYzQrSzhKSS9iamRYbWg0UUR2Q2t6MEhTZDhmb2Zva1Vl?=
 =?utf-8?B?eHNwRTZnRGtNcHByUjV2VW9QZHRJT1NjYU1GOFgyVllmUTZvSFUyUlpiU2FX?=
 =?utf-8?B?eVRNT0F2eHJxVHVHSjF2WnFEcGloZkxreXZpWXRSSFJucWl3dFBNWjRmdlBM?=
 =?utf-8?B?TU9YMDZPbzd4bVV3djBJVldCZVZHSE1IeUJpUUREK0p4KzE0M2F1T0VUVjl4?=
 =?utf-8?B?eFBZcERreXJLMzZFS3dwMGpidVQxREhkcEJPZFRrTTRSbFdCWTdQa3JTNGs5?=
 =?utf-8?B?RHd4Q0l3dUZOMTVSekVNTHF3cktEd2IyN1Q3a1VHSlBUOGsyWlNuVDJ6bWtL?=
 =?utf-8?B?Tmg5OFNuUG83eUVVcFNtWXJyckZROFRkZGpFVk9WeHI2bHB1cGppNUlrK0d6?=
 =?utf-8?B?MTdrTTkzVzFTR1NzU2RlcDFFRWdZcHJHL2dCN0MwaUVZQ0ZLRGpzRTg5YUNZ?=
 =?utf-8?B?NlhEM3BEWlA5Tk4zKzFtRHJmalB1NVFWSjhkcHlOYTVPZ01kTXEwOUsvdVlw?=
 =?utf-8?B?eE9WZkJIbVFkUlQ2OW40REZzWTFoY3FjKzJrMk80VGxBNGlPN1c1SkgvOHUw?=
 =?utf-8?B?My82WW50Z3FIREVlZGZXZ0JtQWJReVJuOFFVbXdmb1dyQ2c5UGNOb3h3NzVq?=
 =?utf-8?B?WG13UFEweTMzOGx1alk3bEozdXNKZjRGYW9LclF0OWpZS2VrS2NmVkJxWUJk?=
 =?utf-8?B?WmNDS3dqd1doTDhIK1lmM1pkZU9lY2xqT29iajZIcHdBQ2NNQ3crM0JRVGY4?=
 =?utf-8?B?Q0EwRC9rSlR6WDNmU0V4K2FVdUpkWWxSOUZsM0Y3K0VUREd3czFPQXovK1JH?=
 =?utf-8?B?NUYvZndsaHlvazczR0xhZnVLdXdUdjdTRUZjazhTMzhtR0M4ZUVSYno3NVUr?=
 =?utf-8?B?SGNsQ1JFSCtCbm9sL0dQUHI5VlQwVDlSdHF6aGxOOHJKckxLNkxzRXRXMStJ?=
 =?utf-8?B?UnVpbGpqb3J0bEo0blV1UmRFWUtnTWZvVFp1eWN6elRhblBvT3RUTmhxcnNJ?=
 =?utf-8?B?SDhTUmRzTndSWHN1dEtpU2VBWDNkNDc2ZG9tRnQrdTd1bEhBS2ZFWVhHYlJn?=
 =?utf-8?B?d1NaaTNjR093MlZHcmhvU0pPMFdPemRYVDlhOHVtWVhKY0czNFBVTDF2NVhM?=
 =?utf-8?B?UnA4U0g5ZVRnaW9IWEhlRUJmV0dGYnRTL05xZmZMRVlRcjJUaUw1MmlSVU5T?=
 =?utf-8?B?b0VZdWlDdDFWMjZoRHVOai8zQXI1ZysrNm02YzhxeGxaUHZGdnVrQTNRRmhn?=
 =?utf-8?B?NGJ3REROTnlETVhzQjlmd0RFV05kaDQ2MlVZTE9BUzFuaWVxQUtYZkFKTDll?=
 =?utf-8?B?aEwwbjZ3eWI0Mmtqb1A4TVVlQmREZ2lESG9CdzdVa1hUaFdEcTN1dGJmSzY0?=
 =?utf-8?B?YmE4NVgwRzNjMzYyWTRqZkpyOTFUckVUbU1UWVBHdTF1YU9UODdJVDZ2T2lK?=
 =?utf-8?B?WXBPdWs3N2FNSGkxZFd0ZGdRd1lpUmhNY1BqeHgyQ0d0VmRrOW5GN25ZRXRK?=
 =?utf-8?Q?D4rdCsSmgJe5ebizrZ/AUu5bhPYOOutC?=
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:
 =?utf-8?B?NnFZMjhIM1N3WWNxTkhjU1R5YWtqTXBGYlFLYjZsbFpSOVA4S0tMQjEwWGRJ?=
 =?utf-8?B?bnBKMGpiVUo0LzNjSzhnakNaWjRCcTNlSlRrSWVOanRaWUlZcm9kZ3NYSXRI?=
 =?utf-8?B?a3UvQjVJSnEyc3ZaeHRVTndUMjFYMGpVUTRQSjdOU1FYUHN3bnhiR1JyakhI?=
 =?utf-8?B?alVsSmlOV0duRUdNNHUycnB4SUVlWnNTRjZzQnJOdlRzZ0JKeWZMSkl3Zmx6?=
 =?utf-8?B?R3dCZ01tQjVnREd5ZzRlL1dFbnhrdU9PbDFpeWNWWmNmVFRQYm5wY29XQ0dJ?=
 =?utf-8?B?RjNDWGZpb3JPdFBjcmlIQjlKOFp3YUNaUU5pNWRsQVNndGRpN1p5Vmtwdm9O?=
 =?utf-8?B?QTJQQkZhTGh6azk4QzRYaXpTZll3cUtDTVd6Ymd0NkwvQmRqUFNaRit3dlBZ?=
 =?utf-8?B?YlBlNVYzVlBWRlk0dXRMeHdtYUQ5eDdYZ2FQWDVpN3BhYWR6dW9EYWcvbDE4?=
 =?utf-8?B?ays0MmY3SElucG5YT28zbDJjRnkvbDI2dFJ5L2R5dVhjRjVlTk04ZHgySFp2?=
 =?utf-8?B?bzk1TkpqaVBqU0ZLbDdiSEI2ODhnZk85RDVKVXlualY2OVFDMWo3ZE82Ym9N?=
 =?utf-8?B?cGhTWStOZUtsdGxWbEtIMkpNSGVPOFlwaHFDQTRoTWFPcDV1R2F4bzZ5NS8w?=
 =?utf-8?B?dlNXenY3OFd2RFU0UzJEcHVudkJJU3hXSDdWSnVwWEpiU0w2ZHpnNEFFWGpO?=
 =?utf-8?B?aEdCV3QrRGZwaG5CSUJIWFlwQjhvbU5BSUtIUE5FWGNCZFRtNWdnczVHTTdK?=
 =?utf-8?B?Y3Q5bGlVNnZuOVV4Wm5wUUExcURSZU1uWEFtbytNMUcrMWg3YjY5T3czaDJR?=
 =?utf-8?B?SXZaS0ZBVFR0cnVaWGY3bTBUcGlpK1dHQ1pUdEFUSTFFZ0RaQVBVbEFhNVhI?=
 =?utf-8?B?aWZIbWI0UVBseUFQOXh6NnJHcVpEQ0pLSTV3NzhsTTN5dXBQeWppWVRIaFYv?=
 =?utf-8?B?WE4vOWVEcDZaZFZnSitHV0l4UkZCanlqL2tHLzVlRVE0TE1qMkJyNzNpTHFX?=
 =?utf-8?B?Z0RCTnlqTFVhUWFhVUtnN3FuSTd2SkRWb3AyUjFzZkVtQXlZUDZMd1QwT3E2?=
 =?utf-8?B?MVJDbjVkcSszSlVaYXRzb3hucFZWc2lTSVI0dmN2ckVGcC9adGIrZlBtakVh?=
 =?utf-8?B?L1ZHUmp4QVZLQVAzU3ZPQ2swSlg4WTViSEwwSkY1QTM5MHBwSU0yaks5YWxn?=
 =?utf-8?B?TXYyNkh4aGlSeXo3b0V4NnJ0V2ZTbnZBMEMvV0hvMHA3TGtWWUYrbURITlJQ?=
 =?utf-8?B?eVEyelVuZmRpZWpmOHFqSDUrVXVxNHJ2bGdpd1lUdmlIUmVNSHE5WUxhYlVR?=
 =?utf-8?B?WmxkcnM2Q1Z1U0VVTXJMblJ4ZUdJajhJTENnSVBYV1JUaFFkZ2xXTEpvWFNs?=
 =?utf-8?B?MEZqUUJuVTZpVFlpS05ZYW5MRHVlZnMrSGlISkNiSERaSm9aaHJVZUN2c1M0?=
 =?utf-8?B?T09VT2pLZ1c2Q2FkYWhnTDFKOUtudEx3bSswNnZtVEdXci9vMVNQbzFSNGJp?=
 =?utf-8?B?ODV2aE95WWxWMlRTamhSYlkrdE9EWVhlL1Y0cHU3NEd2Rml2YjJYY20zSCtO?=
 =?utf-8?B?VEVkWnpPS0gybVJnNnhJUEhjVlNhVG0vbmlWOVBMYXdxdnZYdHR6SUdidEtq?=
 =?utf-8?B?bnkvRHBsazdKYXNicTdMVDNGY2lyZFVPdFJyWGZnV096eVQwRXpSZDRzLzhi?=
 =?utf-8?B?bXBGS2pUYzZaMEhmam01N2xEdjl0WnVPdFNSRDBRaDBQRUZHS2QvTXYyaTVi?=
 =?utf-8?B?eThyWThCT1ByM1oydXp6QmhpNlFBSUJ3cENxQzRtWkdFUklsVFZZS3JFKzNq?=
 =?utf-8?B?T2ZWeFFEb2RJZnhxbzFzL3orWTFUaDNJQ1ZJNmJieVc0ckxhQ2h5Y1liWWRj?=
 =?utf-8?B?M1A2VXQ3cG5na0pVVHZtNS9jazlsOTR3azBuYktrWkRoV2VTaWFHbWR0N1p6?=
 =?utf-8?B?LzRuY3ZJeklmUGpXTENaU2V5bHNjTExZTzR1c2s5TUgzN3pPa2RadVBBV2RS?=
 =?utf-8?B?LzZ2K0wrejlPYjhLckpBMlRMZzhUQ0VOMXZzTkxvNHVLbzlhNHprdHltZjBi?=
 =?utf-8?B?VkJzRG1vLzltQUkvMEo5M29DVjdXWmhKQWhYQmhPTnpnb2dDY0xFKytEOWhJ?=
 =?utf-8?B?dzVIaGI3dkhQVVlJOE13dlhEc2MyL1NIWHFMUmV5cGluNVRhemE0VmptNmFm?=
 =?utf-8?B?TXc9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <26DE99963D618A438C85DFD6BB7A52BE@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: GV1PR03MB10456.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 79e97baf-960f-4ae9-7d9c-08dd762532c2
X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Apr 2025 22:40:27.6385
 (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: seKqDiBnHUHP8abQrzaHSLXDSdjQRFZhgyuoOpDji2DttpsVbfSnuhOhYtLiYeojxe7V42TJ3zgYieUADUqh+nldwiLRjHpzX/SevYWauYo=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA1PR03MB10914

Qm90aCBHQ0MgYW5kIENsYW5nIHN1cHBvcnQgLWZzdGFjay1wcm90ZWN0b3IgZmVhdHVyZSwgd2hp
Y2ggYWRkIHN0YWNrDQpjYW5hcmllcyB0byBmdW5jdGlvbnMgd2hlcmUgc3RhY2sgY29ycnVwdGlv
biBpcyBwb3NzaWJsZS4gVGhpcyBwYXRjaA0KbWFrZXMgZ2VuZXJhbCBwcmVwYXJhdGlvbnMgdG8g
ZW5hYmxlIHRoaXMgZmVhdHVyZSBvbiBkaWZmZXJlbnQNCnN1cHBvcnRlZCBhcmNoaXRlY3R1cmVz
Og0KDQogLSBBZGRlZCBDT05GSUdfSEFTX1NUQUNLX1BST1RFQ1RPUiBvcHRpb24gc28gZWFjaCBh
cmNoaXRlY3R1cmUNCiAgIGNhbiBlbmFibGUgdGhpcyBmZWF0dXJlIGluZGl2aWR1YWxseQ0KIC0g
QWRkZWQgdXNlci1zZWxlY3RhYmxlIENPTkZJR19TVEFDS19QUk9URUNUT1Igb3B0aW9uDQogLSBJ
bXBsZW1lbnRlZCBjb2RlIHRoYXQgc2V0cyB1cCByYW5kb20gc3RhY2sgY2FuYXJ5IGFuZCBhIGJh
c2ljDQogICBoYW5kbGVyIGZvciBzdGFjayBwcm90ZWN0b3IgZmFpbHVyZXMNCg0KU3RhY2sgZ3Vh
cmQgdmFsdWUgaXMgaW5pdGlhbGl6ZWQgaW4gdHdvIHBoYXNlczoNCg0KMS4gUHJlLWRlZmluZWQg
cmFuZG9tbHktc2VsZWN0ZWQgdmFsdWUuDQoNCjIuIE93biBpbXBsZW1lbnRhdGlvbiBvZiBsaW5l
YXIgY29uZ3J1ZW50IHJhbmRvbSBudW1iZXIgZ2VuZXJhdG9yLiBJdA0KcmVsaWVzIG9uIGdldF9j
eWNsZXMoKSBiZWluZyBhdmFpbGFibGUgdmVyeSBlYXJseS4gSWYgZ2V0X2N5Y2xlcygpDQpyZXR1
cm5zIHplcm8sIGl0IHdvdWxkIGxlYXZlIHByZS1kZWZpbmVkIHZhbHVlIGZyb20gdGhlIHByZXZp
b3VzIHN0ZXAuDQoNCmJvb3Rfc3RhY2tfY2hrX2d1YXJkX3NldHVwKCkgaXMgZGVjbGFyZWQgYXMg
YWx3YXlzX2lubGluZSB0byBlbnN1cmUNCnRoYXQgaXQgd2lsbCBub3QgdHJpZ2dlciBzdGFjayBw
cm90ZWN0b3IgYnkgaXRzZWxmLiBBbmQgb2YgY291cnNlLA0KY2FsbGVyIHNob3VsZCBlbnN1cmUg
dGhhdCBzdGFjayBwcm90ZWN0aW9uIGNvZGUgd2lsbCBub3QgYmUgcmVhY2hlZA0KbGF0ZXIuIEl0
IGlzIHBvc3NpYmxlIHRvIGNhbGwgdGhlIHNhbWUgZnVuY3Rpb24gZnJvbSBhbiBBU00gY29kZSBi
eQ0KaW50cm9kdWNpbmcgc2ltcGxlIHRyYW1wb2xpbmUgaW4gc3RhY2stcHJvdGVjdG9yLmMsIGJ1
dCByaWdodCBub3cNCnRoZXJlIGlzIG5vIHVzZSBjYXNlIGZvciBzdWNoIHRyYW1wb2xpbmUuDQoN
CkFzIF9fc3RhY2tfY2hrX2ZhaWwoKSBpcyBub3QgY2FsbGVkIGJ5IFhlbiBzb3VyY2UgY29kZSBk
aXJlY3RseSwgYW5kDQpvbmx5IGNhbGxlZCBieSBjb21waWxlci1nZW5lcmF0ZWQgY29kZSwgaXQg
ZG9lcyBub3QgbmVlZGVkIHRvIGJlDQpkZWNsYXJlZCBzZXBhcmF0ZWx5LiBTbyB3ZSBuZWVkIHNl
cGFyYXRlIE1JU1JBIGRldmlhdGlvbiBmb3IgaXQuDQoNClNpZ25lZC1vZmYtYnk6IFZvbG9keW15
ciBCYWJjaHVrIDx2b2xvZHlteXJfYmFiY2h1a0BlcGFtLmNvbT4NCg0KLS0tDQoNCkNoYW5nZXMg
aW4gdjg6DQogLSBDb2RlIGZvcm1hdHRpbmcgZml4ZXMNCiAtIEFkZGVkIGFuIGV4cGxpY2l0IE1J
U1JBIGRldmlhdGlvbiBmb3IgX19zdGFja19jaGtfZmFpbCgpDQogLSBNYXJrZWQgX19zdGFja19j
aGtfZmFpbCgpIGFzIG5vcmV0dXJuDQoNCkNoYW5nZXMgaW4gdjc6DQogLSBkZWNsYXJlZCBib290
X3N0YWNrX2Noa19ndWFyZF9zZXR1cCBhcyBhbHdheXNfaW5saW5lDQogLSBtb3ZlZCBgI2lmZGVm
IENPTkZJR19TVEFDS19QUk9URUNUT1JgIGluc2lkZSB0aGUgZnVuY3Rpb24NCg0KQ2hhbmdlcyBp
biB2NjoNCiAtIGJvb3Rfc3RhY2tfY2hrX2d1YXJkX3NldHVwKCkgbW92ZWQgdG8gc3RhY2stcHJv
dGVjdG9yLmgNCiAtIFJlbW92ZWQgQW5kcmV3J3Mgci1iIHRhZw0KDQpDaGFuZ2VzIGluIHY1Og0K
IC0gRml4ZWQgaW5kZW50YXRpb24NCiAtIEFkZGVkIHN0YWNrLXByb3RlY3Rvci5oDQotLS0NCiBk
b2NzL21pc3JhL3NhZmUuanNvbiAgICAgICAgICAgICAgfCAgOCArKysrKysrDQogeGVuL01ha2Vm
aWxlICAgICAgICAgICAgICAgICAgICAgIHwgIDQgKysrKw0KIHhlbi9jb21tb24vS2NvbmZpZyAg
ICAgICAgICAgICAgICB8IDE1ICsrKysrKysrKysrKw0KIHhlbi9jb21tb24vTWFrZWZpbGUgICAg
ICAgICAgICAgICB8ICAxICsNCiB4ZW4vY29tbW9uL3N0YWNrLXByb3RlY3Rvci5jICAgICAgfCAy
MiArKysrKysrKysrKysrKysrKw0KIHhlbi9pbmNsdWRlL3hlbi9zdGFjay1wcm90ZWN0b3IuaCB8
IDM5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysNCiA2IGZpbGVzIGNoYW5nZWQsIDg5
IGluc2VydGlvbnMoKykNCiBjcmVhdGUgbW9kZSAxMDA2NDQgeGVuL2NvbW1vbi9zdGFjay1wcm90
ZWN0b3IuYw0KIGNyZWF0ZSBtb2RlIDEwMDY0NCB4ZW4vaW5jbHVkZS94ZW4vc3RhY2stcHJvdGVj
dG9yLmgNCg0KZGlmZiAtLWdpdCBhL2RvY3MvbWlzcmEvc2FmZS5qc29uIGIvZG9jcy9taXNyYS9z
YWZlLmpzb24NCmluZGV4IDNkNjhiNTkxNjkuLmUyNDliY2JmODEgMTAwNjQ0DQotLS0gYS9kb2Nz
L21pc3JhL3NhZmUuanNvbg0KKysrIGIvZG9jcy9taXNyYS9zYWZlLmpzb24NCkBAIC0xMDgsNiAr
MTA4LDE0IEBADQogICAgICAgICB9LA0KICAgICAgICAgew0KICAgICAgICAgICAgICJpZCI6ICJT
QUYtMTMtc2FmZSIsDQorICAgICAgICAgICAgImFuYWx5c2VyIjogew0KKyAgICAgICAgICAgICAg
ICAiZWNsYWlyIjogIk1DM0EyLlI4LjQiDQorICAgICAgICAgICAgfSwNCisgICAgICAgICAgICAi
bmFtZSI6ICJSdWxlIDguNDogY29tcGlsZXItY2FsbGVkIGZ1bmN0aW9uIiwNCisgICAgICAgICAg
ICAidGV4dCI6ICJBIGZ1bmN0aW9uLCBmb3Igd2hpY2ggY29tcGlsZXIgZ2VuZXJhdGVzIGNhbGxz
IHRvIGRvIG5vdCBuZWVkIHRvIGhhdmUgYSB2aXNpYmxlIGRlY2xhcmF0aW9uIHByaW9yIHRvIGl0
cyBkZWZpbml0aW9uLiINCisgICAgICAgIH0sDQorICAgICAgICB7DQorICAgICAgICAgICAgImlk
IjogIlNBRi0xNC1zYWZlIiwNCiAgICAgICAgICAgICAiYW5hbHlzZXIiOiB7fSwNCiAgICAgICAg
ICAgICAibmFtZSI6ICJTZW50aW5lbCIsDQogICAgICAgICAgICAgInRleHQiOiAiTmV4dCBJRCB0
byBiZSB1c2VkIg0KZGlmZiAtLWdpdCBhL3hlbi9NYWtlZmlsZSBiL3hlbi9NYWtlZmlsZQ0KaW5k
ZXggNThmYWZhYjMzZC4uOGZjNGUwNDJmZiAxMDA2NDQNCi0tLSBhL3hlbi9NYWtlZmlsZQ0KKysr
IGIveGVuL01ha2VmaWxlDQpAQCAtNDM1LDcgKzQzNSwxMSBAQCBlbHNlDQogQ0ZMQUdTX1VCU0FO
IDo9DQogZW5kaWYNCiANCitpZmVxICgkKENPTkZJR19TVEFDS19QUk9URUNUT1IpLHkpDQorQ0ZM
QUdTICs9IC1mc3RhY2stcHJvdGVjdG9yDQorZWxzZQ0KIENGTEFHUyArPSAtZm5vLXN0YWNrLXBy
b3RlY3Rvcg0KK2VuZGlmDQogDQogaWZlcSAoJChDT05GSUdfTFRPKSx5KQ0KIENGTEFHUyArPSAt
Zmx0bw0KZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vS2NvbmZpZyBiL3hlbi9jb21tb24vS2NvbmZp
Zw0KaW5kZXggMDZhZTk3NTFhYS4uNDJhMmI2YTAzZiAxMDA2NDQNCi0tLSBhL3hlbi9jb21tb24v
S2NvbmZpZw0KKysrIGIveGVuL2NvbW1vbi9LY29uZmlnDQpAQCAtMTAwLDYgKzEwMCw5IEBAIGNv
bmZpZyBIQVNfUE1BUA0KIGNvbmZpZyBIQVNfU0NIRURfR1JBTlVMQVJJVFkNCiAJYm9vbA0KIA0K
K2NvbmZpZyBIQVNfU1RBQ0tfUFJPVEVDVE9SDQorCWJvb2wNCisNCiBjb25maWcgSEFTX1VCU0FO
DQogCWJvb2wNCiANCkBAIC0yMzMsNiArMjM2LDE4IEBAIGNvbmZpZyBTUEVDVUxBVElWRV9IQVJE
RU5fTE9DSw0KIA0KIGVuZG1lbnUNCiANCittZW51ICJPdGhlciBoYXJkZW5pbmciDQorDQorY29u
ZmlnIFNUQUNLX1BST1RFQ1RPUg0KKwlib29sICJTdGFjayBwcm90ZWN0b3IiDQorCWRlcGVuZHMg
b24gSEFTX1NUQUNLX1BST1RFQ1RPUg0KKwloZWxwDQorCSAgRW5hYmxlIHRoZSBTdGFjayBQcm90
ZWN0b3IgY29tcGlsZXIgaGFyZGVuaW5nIG9wdGlvbi4gVGhpcyBpbnNlcnRzIGENCisJICBjYW5h
cnkgdmFsdWUgaW4gdGhlIHN0YWNrIGZyYW1lIG9mIGZ1bmN0aW9ucywgYW5kIHBlcmZvcm1zIGFu
IGludGVncml0eQ0KKwkgIGNoZWNrIG9uIGZ1bmN0aW9uIGV4aXQuDQorDQorZW5kbWVudQ0KKw0K
IGNvbmZpZyBESVRfREVGQVVMVA0KIAlib29sICJEYXRhIEluZGVwZW5kZW50IFRpbWluZyBkZWZh
dWx0Ig0KIAlkZXBlbmRzIG9uIEhBU19ESVQNCmRpZmYgLS1naXQgYS94ZW4vY29tbW9uL01ha2Vm
aWxlIGIveGVuL2NvbW1vbi9NYWtlZmlsZQ0KaW5kZXggOWRhOGE3MjQ0ZC4uZjYyNTAzMWQxNiAx
MDA2NDQNCi0tLSBhL3hlbi9jb21tb24vTWFrZWZpbGUNCisrKyBiL3hlbi9jb21tb24vTWFrZWZp
bGUNCkBAIC00Niw2ICs0Niw3IEBAIG9iai15ICs9IHNodXRkb3duLm8NCiBvYmoteSArPSBzb2Z0
aXJxLm8NCiBvYmoteSArPSBzbXAubw0KIG9iai15ICs9IHNwaW5sb2NrLm8NCitvYmotJChDT05G
SUdfU1RBQ0tfUFJPVEVDVE9SKSArPSBzdGFjay1wcm90ZWN0b3Iubw0KIG9iai15ICs9IHN0b3Bf
bWFjaGluZS5vDQogb2JqLXkgKz0gc3ltYm9scy5vDQogb2JqLXkgKz0gdGFza2xldC5vDQpkaWZm
IC0tZ2l0IGEveGVuL2NvbW1vbi9zdGFjay1wcm90ZWN0b3IuYyBiL3hlbi9jb21tb24vc3RhY2st
cHJvdGVjdG9yLmMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwLi4yMTE1
OTEyYzNiDQotLS0gL2Rldi9udWxsDQorKysgYi94ZW4vY29tbW9uL3N0YWNrLXByb3RlY3Rvci5j
DQpAQCAtMCwwICsxLDIyIEBADQorLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAt
b25seSAqLw0KKyNpbmNsdWRlIDx4ZW4vaW5pdC5oPg0KKyNpbmNsdWRlIDx4ZW4vbGliLmg+DQor
I2luY2x1ZGUgPHhlbi9yYW5kb20uaD4NCisjaW5jbHVkZSA8eGVuL3RpbWUuaD4NCisNCisvKg0K
KyAqIEluaXRpYWwgdmFsdWUgaXMgY2hvc2VuIGJ5IGEgZmFpciBkaWNlIHJvbGwuDQorICogSXQg
d2lsbCBiZSB1cGRhdGVkIGR1cmluZyBib290IHByb2Nlc3MuDQorICovDQorI2lmIEJJVFNfUEVS
X0xPTkcgPT0gMzINCit1bnNpZ25lZCBsb25nIF9fcm9fYWZ0ZXJfaW5pdCBfX3N0YWNrX2Noa19n
dWFyZCA9IDB4ZGQyY2M5MjdVTDsNCisjZWxzZQ0KK3Vuc2lnbmVkIGxvbmcgX19yb19hZnRlcl9p
bml0IF9fc3RhY2tfY2hrX2d1YXJkID0gMHgyZDg1MzYwNWE0ZDlhMDljVUw7DQorI2VuZGlmDQor
DQorLyogU0FGLTEzLXNhZmUgY29tcGlsZXItY2FsbGVkIGZ1bmN0aW9uICovDQordm9pZCBub3Jl
dHVybiBfX3N0YWNrX2Noa19mYWlsKHZvaWQpDQorew0KKyAgICBkdW1wX2V4ZWN1dGlvbl9zdGF0
ZSgpOw0KKyAgICBwYW5pYygiU3RhY2sgUHJvdGVjdG9yIGludGVncml0eSB2aW9sYXRpb24gaWRl
bnRpZmllZFxuIik7DQorfQ0KZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hlbi9zdGFjay1wcm90
ZWN0b3IuaCBiL3hlbi9pbmNsdWRlL3hlbi9zdGFjay1wcm90ZWN0b3IuaA0KbmV3IGZpbGUgbW9k
ZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAuLjkzMWFmZmQ5MTkNCi0tLSAvZGV2L251bGwNCisr
KyBiL3hlbi9pbmNsdWRlL3hlbi9zdGFjay1wcm90ZWN0b3IuaA0KQEAgLTAsMCArMSwzOSBAQA0K
KyNpZm5kZWYgX19YRU5fU1RBQ0tfUFJPVEVDVE9SX0hfXw0KKyNkZWZpbmUgX19YRU5fU1RBQ0tf
UFJPVEVDVE9SX0hfXw0KKw0KK2V4dGVybiB1bnNpZ25lZCBsb25nIF9fc3RhY2tfY2hrX2d1YXJk
Ow0KKw0KKy8qDQorICogVGhpcyBmdW5jdGlvbiBzaG91bGQgYmUgY2FsbGVkIGZyb20gYSBDIGZ1
bmN0aW9uIHRoYXQgZXNjYXBlcyBzdGFjaw0KKyAqIGNhbmFyeSB0cmFja2luZyAoYnkgY2FsbGlu
ZyByZXNldF9zdGFja19hbmRfanVtcCgpIGZvciBleGFtcGxlKS4NCisgKi8NCitzdGF0aWMgYWx3
YXlzX2lubGluZSB2b2lkIGJvb3Rfc3RhY2tfY2hrX2d1YXJkX3NldHVwKHZvaWQpDQorew0KKyNp
ZmRlZiBDT05GSUdfU1RBQ0tfUFJPVEVDVE9SDQorDQorICAgIC8qDQorICAgICAqIExpbmVhciBj
b25ncnVlbnQgZ2VuZXJhdG9yIChYX24rMSA9IFhfbiAqIGEgKyBjKS4NCisgICAgICoNCisgICAg
ICogQ29uc3RhbnQgaXMgdGFrZW4gZnJvbSAiVGFibGVzIE9mIExpbmVhciBDb25ncnVlbnRpYWwN
CisgICAgICogR2VuZXJhdG9ycyBPZiBEaWZmZXJlbnQgU2l6ZXMgQW5kIEdvb2QgTGF0dGljZSBT
dHJ1Y3R1cmUiIGJ5DQorICAgICAqIFBpZXJyZSBM4oCZRWN1eWVyLg0KKyAgICAgKi8NCisjaWYg
QklUU19QRVJfTE9ORyA9PSAzMg0KKyAgICBjb25zdCB1bnNpZ25lZCBsb25nIGEgPSAyODkxMzM2
NDUzVUw7DQorI2Vsc2UNCisgICAgY29uc3QgdW5zaWduZWQgbG9uZyBhID0gMjg2MjkzMzU1NTc3
Nzk0MTc1N1VMOw0KKyNlbmRpZg0KKyAgICBjb25zdCB1bnNpZ25lZCBsb25nIGMgPSAxOw0KKw0K
KyAgICB1bnNpZ25lZCBsb25nIGN5Y2xlcyA9IGdldF9jeWNsZXMoKTsNCisNCisgICAgLyogVXNl
IHRoZSBpbml0aWFsIHZhbHVlIGlmIHdlIGNhbid0IGdlbmVyYXRlIHJhbmRvbSBvbmUgKi8NCisg
ICAgaWYgKCAhY3ljbGVzICkNCisgICAgICAgIHJldHVybjsNCisNCisgICAgX19zdGFja19jaGtf
Z3VhcmQgPSBjeWNsZXMgKiBhICsgYzsNCisNCisjZW5kaWYJLyogQ09ORklHX1NUQUNLX1BST1RF
Q1RPUiAqLw0KK30NCisNCisjZW5kaWYJLyogX19YRU5fU1RBQ0tfUFJPVEVDVE9SX0hfXyAqLw0K
LS0gDQoyLjQ4LjENCg==


From xen-devel-bounces@lists.xenproject.org Mon Apr 07 22:40:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 22:40:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.941216.1340763 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1v8v-0007Kz-TW; Mon, 07 Apr 2025 22:40:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 941216.1340763; Mon, 07 Apr 2025 22:40: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 1u1v8v-0007KD-Mo; Mon, 07 Apr 2025 22:40:37 +0000
Received: by outflank-mailman (input) for mailman id 941216;
 Mon, 07 Apr 2025 22:40: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=taXB=WZ=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1u1v8u-0006OT-Ux
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 22:40:36 +0000
Received: from EUR02-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur02on20605.outbound.protection.outlook.com
 [2a01:111:f403:2607::605])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 520ed6f4-1401-11f0-9ffb-bf95429c2676;
 Tue, 08 Apr 2025 00:40:35 +0200 (CEST)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by PA1PR03MB10914.eurprd03.prod.outlook.com
 (2603:10a6:102:48a::14) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.31; Mon, 7 Apr
 2025 22:40: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%5]) with mapi id 15.20.8606.033; Mon, 7 Apr 2025
 22:40: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: 520ed6f4-1401-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=OE7gybsGsogEl0uXSFDarZgloYGlBOdulJlo088AhOE0EIG+faPALcSzbidniWdpO+X46G8R29qtu3CvXh9f5SIqPMGRX3hjOTs7mjU684aeHBxpehx/m0nuSl0v2cIwt8PsEJ6/oTdxaC+nkJYIp2nVE4EFmZg+92v1l/pTskRwD03vwvo7LgZgth9esri2OTX9bHraXaiskwsPo9FetODuXvuLy6UFvxsWnGBQRdZz6WuAT3F0WSToZV2vgJQJtQghhvh+NR3fBJlqyfmZFjOsnk2jSyije5UJREdX1O/GKGF/b1VMDgEx/CeD5H9mfpn7M79oYWMypI//jyj/+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=LjV3Ix0lRqsYcfZ9MZ3oHVWnpUgcHjwvqWZ+xmEudlA=;
 b=bkIZ4z+u6qbkUz00VEngaWvew8I8uwGlI6MlKxY22vk/4icxIau7K+PBQGWk8oqyI/56fNC0wrMTuYEwlhknQoAV0H+dLldJwaz5ZHomwt0KE797RWgsAbr7dUjIoaS/W7JKbD3C6wARdZhWQsT35igDqrwAyZCN/hmUccUqQDLuMz3LxUZVCJdwLmP4yMniQa2o9pt7uR6M3TmoPBH25rvFW0w4KXHYn5uECiFpyUBg6wDjbyl0LJcz2Ev4rRwm2qsH3ysWHevSPIh0hIMvjDXS3oaK7YaWnRSI9MNSTFJQGO6kA808tMP+/yi+1zSzQ4qi7CgjAv1vtHUnM7ceTw==
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=LjV3Ix0lRqsYcfZ9MZ3oHVWnpUgcHjwvqWZ+xmEudlA=;
 b=UfTvoMRFLSs3H0jHYdMa2ansjgnE0U7hJn4SKbUOulMF/QUXoQuBMU7eeGMa/Kkv737yHfZPpjhHH4N3VhUauRVpPrcTCPgFdAwZVdRRrZMoHtbF+w9xH8kkFzi6Phm420De6LSjJJRPUUXikhXXL1sebl+dtkI/xyl9nEBY0Np2UY2pNLORbbJgG8le5WU+YpqpGN4n1bp9LcrK4AFGNa1hkpCHwehL3xUG+DoUoe+KfVMVI7S7oyS1Jycz/ghBnrfYF1xRwbYKC0sF+B5dY8EwaY9zSIzy9XYcFbqUlYcT7xMY9KZVNY7Injf83vDXB0bz2TBOd9i3f9sGMjWLTg==
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>, Julien Grall <jgrall@amazon.com>
Subject: [PATCH v8 2/3] xen: arm: enable stack protector feature
Thread-Topic: [PATCH v8 2/3] xen: arm: enable stack protector feature
Thread-Index: AQHbqA4PPDkWtASJxk+dJciG8QkunA==
Date: Mon, 7 Apr 2025 22:40:27 +0000
Message-ID: <20250407224009.2577560-3-volodymyr_babchuk@epam.com>
References: <20250407224009.2577560-1-volodymyr_babchuk@epam.com>
In-Reply-To: <20250407224009.2577560-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.48.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_|PA1PR03MB10914:EE_
x-ms-office365-filtering-correlation-id: 6893f7bb-b108-46c3-9480-08dd762532ef
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?K6UpvI6hRHc4TDBRIr51QBiAJa1HgmXP3//TpWzJi+YJxjTz9G41r6I9Xm?=
 =?iso-8859-1?Q?0J3biEaNRcjapGNeUT/o8driGpa2SPLM3ocWoaWmfqfJIjEXa6PBkDB/5R?=
 =?iso-8859-1?Q?fP6mqLDMaqYs3kGDb6mLzBUzPoHqI2cP7TAkobiGbxLQq0jMH/qD8PtrTG?=
 =?iso-8859-1?Q?ha5SLKKNYIxYbV6/1ygWHW3tRQIgi/p2S95ZsfHO7TlFtfgdLqOVlKIsri?=
 =?iso-8859-1?Q?5unz5+8q4ve2LYG5GgLEklK0XgOZZeDXTdznGUQHSrbwL1vknhLzQn47/n?=
 =?iso-8859-1?Q?kzVZDT1EGnTtLv3MEyDUwHQO/XOy5/yjE7Sa6gjCdekmZSh3zy/+48DZBB?=
 =?iso-8859-1?Q?ZGfy7IZV4HUHTtTy2fPpzN7VTMcDowfmqVd/g6l8Z25SVvjcDnZGVdLXvl?=
 =?iso-8859-1?Q?hQve5hQuDK8MwhwnXbq2bBCkRFQ/c7IlGjFgtXSNz4pXLeVRB8R5tBV2h+?=
 =?iso-8859-1?Q?tC7kbUEh2EOmPYu8eEbBkGIXHGSyaPR+9hK/hYhVShP6rFlZIbe1fKFZgq?=
 =?iso-8859-1?Q?8z/vZ05DRze7I5fXZmQEz7Gfow2z+D6pxlQsnorZr08fO4rGkb/aLVMbFF?=
 =?iso-8859-1?Q?I0FOFw49+0tRxh5hzfIvdGshO2MiTI9e11R/gNsNdFtaKKA8FdCZdz3SWW?=
 =?iso-8859-1?Q?2KFeAEG0ld58xh5IdQykwQxjV8wx3XjH04elbKgthOwY/vLh9mhHm1V6hm?=
 =?iso-8859-1?Q?e0atbEGtflvD9WqbOaYvc/Nwb5n8RldZ8nT/DCoJh/zlM06fa1NmXwiCpW?=
 =?iso-8859-1?Q?k3cR7P7W9K13J5F/gEFiCjWp927/E7mDQ6USTaWrvIzxNjI/pz/Mr14srC?=
 =?iso-8859-1?Q?bLK6lez5JFlKagKmvtlysKZQNtpMoFcTl6Yqq8d6j77jx0uPoU6UIJqzrd?=
 =?iso-8859-1?Q?D4FZANVHd71P9JkwPSxZ7+O4u07bDle09YYJsEqU44rPzbWRWv+LSijwik?=
 =?iso-8859-1?Q?zbDabQXGrEUGvjA7KD7xAKayOLC5kwXWYJTWklYZdhmzvE3+ILj4hqmkQZ?=
 =?iso-8859-1?Q?5SmWnLL+kR670MD3ZIR7oVDsVU3+1A3+dcWImyA/oEbemvKqNxGC43KQU8?=
 =?iso-8859-1?Q?VAuZaGVRprYvRC2iNQUaD+Z/YTDGyObEwN8wv7PH2lzmDYnsyRTQCVUhel?=
 =?iso-8859-1?Q?XPvGnkzCv1vMAdmZSwPLKi+/xf+oAsSC3k+XwBQKrLBZNmlOd/cewM4SSF?=
 =?iso-8859-1?Q?XqrTfbAB8ZJJLigu/ojcRMYpZUKanto65Cf9uZbwL8kYUygXuNqDgBAkoZ?=
 =?iso-8859-1?Q?CHL9BNFuBRSNdiMmIcO7OJLT/GQjL/Kmo3fPNU7u5o0Lp7yalTVg0pUj1H?=
 =?iso-8859-1?Q?CCPN29RZffXRzjZ6Aj0MH7pVQd7x9D9YvCyhlnwe1Dvf2AjtH/KO4NPIWk?=
 =?iso-8859-1?Q?uIqdb1o6QOxtYm12c9iK328jICA6Z/vmozFdIRuRsoSlXqAcejR8Egpi5e?=
 =?iso-8859-1?Q?98UJayR0cuOtFQtdn611WT588hPPbfZulD7u5NJOSzrxcCRWZaYF2PZLfj?=
 =?iso-8859-1?Q?7HKXa9CF83U1hn1z+n++ie?=
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?0f4GxzvFto9CI5lHs/1dFvhl3KDwkpQnIwZVRTAcXWEYwtx1DWDmM8ZkzX?=
 =?iso-8859-1?Q?o1WUYCTNEVyvS8/fUvFI7DkZA4nWt7tH8N8ih6NgVy0zLA5ve7Og16PglT?=
 =?iso-8859-1?Q?qn3SHHtgW/g/lUpYxEVlVSuD8MEI59dOWEjmbMrLXLe/HD/gwAyokaQ0HG?=
 =?iso-8859-1?Q?k7rx3ai7uYM2GFYXvHT1X8PovIHOWztYRtAe02Pk9vcr613wjASjRneaDf?=
 =?iso-8859-1?Q?hr4Knkuhn2VdIwrJj4kn8t+Bi/v5AHH8C4xriKXsW0mlcZwZ86EJa4gruV?=
 =?iso-8859-1?Q?6cTy4cnhMFV+UKnAVIgFT/i/VyajvYdQ5LIIz0tDRKp7hpQfbF1zvsiX5w?=
 =?iso-8859-1?Q?79sLhUiVjAIeFTnwz3vg3O2K7d8woZhvXMt6UmI3EU2WVAzjL8xm1IPuFp?=
 =?iso-8859-1?Q?zknsqn0vga50tcFXVK8JKLBMh5LbQpVuesZB97fc9U226ioU9fIKMZ5sFp?=
 =?iso-8859-1?Q?3lndG9K0qZLYuXlRJU1zK8gg4iY8eZjPv8AYEBazvdjUM5s85fuGUoT5ep?=
 =?iso-8859-1?Q?il/ckuaWiMUx/2B4GQ2x6ukOmEqr3qkAAJ4TiVg1qun1FTXKwyeEJ+pdEO?=
 =?iso-8859-1?Q?o5fT3TbPOu2qO3o9Al6rJokXXZXPiSpT5iDfQ4SZFMU/xjwBXM50OAEO9S?=
 =?iso-8859-1?Q?O6avRIKhdMlKkFiqXrJn+y0szbepHhQrc0h1GtoRequSX/1FB4nSj8gi75?=
 =?iso-8859-1?Q?qxkq9FQAzq3NtR99gmzlA+o69eFp4h1bREaFbLyFsOWpBWU6KGKIzoZkYp?=
 =?iso-8859-1?Q?/xVHSpbFoYoUIlDCHGnizHA5W5omKSDkPVmyhMF5z8qTprz2OkNoOZTdpz?=
 =?iso-8859-1?Q?LL+WbngDYoqtaV3KkMAJF76fi/CCbdf4n9YRI0df+NwIgORyzN5TZ6QDXx?=
 =?iso-8859-1?Q?J+deyNK6x3SIgpayOMgUw9BY4oe24PISPn7IXu6LviiQX4cFLK0xpvVK4C?=
 =?iso-8859-1?Q?UE2yfbAld4eu7xfMTCFlZ/ZwhJr1eW9CFAPZVk6xaohAQwYKG1KVKfjkZd?=
 =?iso-8859-1?Q?KRgjdedHDbOTdZz+tCRJBeHIuL+4lX5/+Xjj9xBZzU92t7Ix0w9yR+Psa8?=
 =?iso-8859-1?Q?Go1nuxZyRMbWMcsd5vhxqXxMaKemF33O5DxzIImrGtYL2v7M7EyzUgpHkk?=
 =?iso-8859-1?Q?GC/DCo8ecHfFdzNnKr/Tq/uaNn03dkSrGCkL9DM5/genA0SSgVnqRpYstT?=
 =?iso-8859-1?Q?wE6IIhJ4STgrXmZ9nq5TaG0VLKNJeWKgX1rNVdf65u64AbNfNF+6p4rEgn?=
 =?iso-8859-1?Q?9xI6zIDHqfiS7p964/0eHdNSCVX+AkO4Rfo2AIs7wvTs7ph2KHpe2h9Y35?=
 =?iso-8859-1?Q?6mgpEPZo/nGzJgKhQUdSYiaY3sv1QgOogPEdqDJV7lujmvFyDW6qLZ/x1A?=
 =?iso-8859-1?Q?8vGeYmalC27Mnd5NalaAiV37Kf83TasO5/FIIMJ7YmNq9pQeikPD82ocl/?=
 =?iso-8859-1?Q?xh77Dm9vUk4sWgI+0W0Bhr5hoqTSlebjTUWzp2sb8lrQrTCQ42LwY63RB3?=
 =?iso-8859-1?Q?mgCzlh6jkWADWzvuc2Af0couM15TiyLOyuQpHfyM0Hf4Ql5irc7BgYWHQe?=
 =?iso-8859-1?Q?wXLzhmsCKs+/WllwEak2lST8H23KTlldu6kjSStkVEYtEgRCA/B/KDj3UP?=
 =?iso-8859-1?Q?o9CYooUj6whP3fq8UJIObYhZ/Z0E4AD9uty5U9Ry4xWKZeedkSUkWr9w?=
 =?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: 6893f7bb-b108-46c3-9480-08dd762532ef
X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Apr 2025 22:40:28.0205
 (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+r4/tRAhvAUz0jyjKJ5GyK2iQTpSbjXl1Q70rI+G4s+pgF0jh/i3esBiFYd9HG+xznv1g+i8sXWf8M5yGJIF8B7CBVMA8AqJ7OabmvJsgs=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA1PR03MB10914

Enable previously added CONFIG_STACK_PROTECTOR feature for ARM
platform. Initialize stack protector magic value very early, at the
very beginning of start_xen() function.

We want to do this early because prior to that
boot_stack_chk_guard_setup() call, default stack protector guard value
is used. While it is fine for general development and testing, it does
not provide highest security level, because potential attacker will
know the default value and can alter a payload, so correct stack
guard value will be placed in the correct position.

Apart from that argument, boot_stack_chk_guard_setup() should be
called prior to enabling secondary CPUs to avoid race with them.

Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
Acked-by: Julien Grall <jgrall@amazon.com>

---

Changes in v6:

 - Expanded the commit message
 - Added Julien's A-b tag

Changes in v5:

 - Call boot_stack_chk_guard_setup() from start_xen()
   instead of early ASM
---
 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 565f288331..da8a406f5a 100644
--- a/xen/arch/arm/Kconfig
+++ b/xen/arch/arm/Kconfig
@@ -15,6 +15,7 @@ config ARM
 	select GENERIC_UART_INIT
 	select HAS_ALTERNATIVE if HAS_VMAP
 	select HAS_DEVICE_TREE
+	select HAS_STACK_PROTECTOR
 	select HAS_UBSAN
=20
 config ARCH_DEFCONFIG
diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
index bf39d41e9b..07703a15e1 100644
--- a/xen/arch/arm/setup.c
+++ b/xen/arch/arm/setup.c
@@ -30,6 +30,7 @@
 #include <xen/virtual_region.h>
 #include <xen/version.h>
 #include <xen/vmap.h>
+#include <xen/stack-protector.h>
 #include <xen/trace.h>
 #include <xen/libfdt/libfdt-xen.h>
 #include <xen/acpi.h>
@@ -306,6 +307,8 @@ void asmlinkage __init start_xen(unsigned long fdt_padd=
r)
     struct domain *d;
     int rc, i;
=20
+    boot_stack_chk_guard_setup();
+
     dcache_line_bytes =3D read_dcache_line_bytes();
=20
     percpu_init_areas();
--=20
2.48.1


From xen-devel-bounces@lists.xenproject.org Mon Apr 07 22:40:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 22:40:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.941217.1340777 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1v8y-0007kr-7u; Mon, 07 Apr 2025 22:40:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 941217.1340777; Mon, 07 Apr 2025 22:40: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 1u1v8y-0007kk-2x; Mon, 07 Apr 2025 22:40:40 +0000
Received: by outflank-mailman (input) for mailman id 941217;
 Mon, 07 Apr 2025 22:40: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=taXB=WZ=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1u1v8w-0006OT-EW
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 22:40:38 +0000
Received: from EUR02-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur02on20605.outbound.protection.outlook.com
 [2a01:111:f403:2607::605])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 530163fd-1401-11f0-9ffb-bf95429c2676;
 Tue, 08 Apr 2025 00:40:36 +0200 (CEST)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by PA1PR03MB10914.eurprd03.prod.outlook.com
 (2603:10a6:102:48a::14) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.31; Mon, 7 Apr
 2025 22:40:30 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e%5]) with mapi id 15.20.8606.033; Mon, 7 Apr 2025
 22:40: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: 530163fd-1401-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ts+7hrCwA5c8rg/Zgx9flDNHN3dzigNBYFsgy106xd5PBfF52l5gAeZdmv3HUgP6Gv0tf9i46RWLvAqT0e/dHM/cxRRU6Rahvz1aXqFOewn0AsE6DTkAdQjNV2pdK7hIv8mDaIB58zuAK6AdPiNaYfSW9FyGKX8ewz1jYyzD189VZyIFmSAS0VGQpqfyk03a5SdUBG/mMW1JiSl9rtq3rGG4vltUKqqLoQo6eMrgEsGd8TzYrj2UtSiAsw3ZCwgKpCpEQ0RHXmtaMzDfCVsq2FwYFqp3+8pbBwwLTOEyS5GqQlCakvZWp1DPCva4QdWn0ElkezrC008JoaemUq0n8g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=HTaXM1YcpRWAmexAanCUNtB3dc8utxSCTc4qJp2hJ04=;
 b=QN591Pt8xdCRab4iDb47/j/fHE8rxfFIbAks8pq1A1OfVWHl2+xL3uuqVs5U+aJAKBLHM0kKOhwtZw5w/oiicQ4khmczv5w+xFTy8ACnYlRmU5ILimWkhESKGYgJ+/PGTlSpMXZ1+vHdCjciqTYz8gsYIosh2g9fyM6M0JCnPLeUiHnvuaTCX741biUOwXuWSOgH2KVd5O0rMELmVv1x7hqAYWenzOY5LURmYqRCvv3FZkTVTQtLcK++Ipy8Cg9yu+Y42RQ2IMHETFlNZAawcMyQ+zTv+EKM04OjSx/hRqe/txq0ipYal6liRkput12qDdVIUyRvl0562rs0K5VasA==
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=HTaXM1YcpRWAmexAanCUNtB3dc8utxSCTc4qJp2hJ04=;
 b=YUZRxHE/OClcSNYW8Mh3U3gpW6HdVIG2SxotLj5lmsBTygJW14wx4c6ZrYJw2lrp9/KQ8vmdh7nOjY+0r3bpcdcQyUv0TzdWkCjFkHgFXyn5rkzWJ4isl7ioQhPNCtILVDqX9NT16ZCrS8Bcc6WlH9I667jLqYBeNFiCvorQHpCFRJqZAc7W4pyXKX3ogeZwvF75B9gtLg4ZazzAXzOg9g+NLKqU610Az29Z9dc2gCisOG0BTFNDbwSSD8KvmAZCNasYEwupmHbLLiqcejolrKQ0K9ykTX4L7J0bzlcWAN+oyQGnTpm4n8nmAs6j49K1Yl5d4enzeF8eSz3Of/I2TA==
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>, Oleksii Kurochko
	<oleksii.kurochko@gmail.com>, Community Manager
	<community.manager@xenproject.org>
Subject: [PATCH v8 3/3] CHANGELOG.md: Mention stack-protector feature
Thread-Topic: [PATCH v8 3/3] CHANGELOG.md: Mention stack-protector feature
Thread-Index: AQHbqA4P46MaoNq1rU+9TN2F/tJcNQ==
Date: Mon, 7 Apr 2025 22:40:28 +0000
Message-ID: <20250407224009.2577560-4-volodymyr_babchuk@epam.com>
References: <20250407224009.2577560-1-volodymyr_babchuk@epam.com>
In-Reply-To: <20250407224009.2577560-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.48.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_|PA1PR03MB10914:EE_
x-ms-office365-filtering-correlation-id: 2ef9572f-cc07-459a-e6d1-08dd76253326
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?VvoGeoeRJBMEeEGQOOib5dGlHdgMeDoPtIC9S216aAiOSXufZQey5OzBfQ?=
 =?iso-8859-1?Q?qfrMIsLePMI2XCLCsO17oo73877ADipJ+aN8COWKqf935SOO9/+jYB/5ZZ?=
 =?iso-8859-1?Q?sRbt/prs2B4aruqt0aVHRayKXhWy/e6+ywe3Z0rvwAcXXFrw2x03xAIuKg?=
 =?iso-8859-1?Q?NufxUNp9N8dWOAVSBRsRWT0OFCwfm8WnXYIoW+xniQiVTO0JhsRUXwk2Eo?=
 =?iso-8859-1?Q?iYxzkHDF1c5qOP4YsYPq0lPNqlRCtGgCtJm45/KNn71BDqYhxH9mU6rmPJ?=
 =?iso-8859-1?Q?HAkXfxh3ow00TOG74OFeCJzSp3SQ5GWJ3sm8nU3SH3N+aWFGfQCXPr7ruy?=
 =?iso-8859-1?Q?axIMjCYrgjHrHhtEQtNmRHiTRSuyfmC3fjAD5e5X/GKgRiTC7Jm27wk1Xw?=
 =?iso-8859-1?Q?WhaFFBQBqP8FBTdbbDexafkcE0004R7Ql21wTOBFS1yle01yJxRbSi9Kzf?=
 =?iso-8859-1?Q?TEzPItV+FEbNKDLj+rGMuKl2L8+WERHdBcIMOvvySzA+XSdd28hmpFnQO9?=
 =?iso-8859-1?Q?A69EuE3P9gkojkJqv26oYCvJTtvVT8VrQgIOBeuqHPAnOoab+KEYzLCoZT?=
 =?iso-8859-1?Q?obQqj0fKcGF0Suli5j96M4S/4rzNOgl2vcXPtHp1nxhoPl7Cohe7oyUH5W?=
 =?iso-8859-1?Q?Vc6CQxnbCVdteZbWTHIgWxDSHwkatHE63p7UxDSMgSBki3uHDO4gKmLHl0?=
 =?iso-8859-1?Q?7V4idvY9BFXpCyI/JQlpcMxyqEmL+K9SdWM67iG/rrrl9w3hfN+XtiAHKK?=
 =?iso-8859-1?Q?Oi+Bh0vRTUVBAYFm01u8JTbezHiXXOpv26VheDeEHtujlKsCsPFSn6tzwz?=
 =?iso-8859-1?Q?dE8CNxXkfcjhtplNOlThGjNB8oAg6eBkCX7AmiNjSrGqiCzOmue6v068UV?=
 =?iso-8859-1?Q?y/eHUEN4yniBN7IGviJu0IY9FWk/zQ5tVzkyci3c7VMtARidBtJge54550?=
 =?iso-8859-1?Q?JZaiFE77GipCyBpa7ub/wDUM+5lSMWM/0r3GPU0F9crVIAW+FwfWX+Oe4P?=
 =?iso-8859-1?Q?eO+y0wmGtXjdYLMc4K3l3uKSf2VD37BC+6o76gbk0dOS8CSx80d0nyYq1w?=
 =?iso-8859-1?Q?WkheOXFO7Ja62OWoCRlAzvq+pMi/f8xKPLCMCCVEZpPkfT8W25fc32ZFrF?=
 =?iso-8859-1?Q?PSwK5jG7CIMbQzBX9fWfbh07IWJtgFn+sYg37KzuBgeRzjW30BBX7KoJZ0?=
 =?iso-8859-1?Q?ZAT7MNK5nrx7XIv5GMupiSpky5M3twxENDlnxBP81sKF5tkVYsg2BnuR+9?=
 =?iso-8859-1?Q?9fRI2owgY3oXEp9VmYsIJW8vpuciaf50DYUDTGstnBwT+f1K5+B0IWyn2f?=
 =?iso-8859-1?Q?pHKxFjL3F3WFD0bX6yeqTdRdBEPkLLiJ6mQclNfsel5QEdCjryNchiWtJc?=
 =?iso-8859-1?Q?igBniEWhZFNHvu5WOZcaFhBVqVv0ba+YHox6RXIKdNyAixBecyn/avliF1?=
 =?iso-8859-1?Q?yCv2w43mM0A4Fgta?=
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?EtjadY2Q9Bo8v0yYewuWBB7ni1pBdgH4GQDiZX5V4zRa/2oEHXCsUdE1k4?=
 =?iso-8859-1?Q?5kCFb/Tnx4Wxffh/r6Qj+JJ+BQlAhRreEOgWAy+7/GYEYgizLDkCwu7gkS?=
 =?iso-8859-1?Q?SFoOgoNp2ID0/22iadmVd+1GzUNJcSnj7QdkAHwU3Ec4bvgSuv0vmpU9gS?=
 =?iso-8859-1?Q?bceWzwoY1T0USadooBl5zSot4ZIesYm9loycGcsKCyqNBdQEju3wb95v6C?=
 =?iso-8859-1?Q?XV2yydMi3NptW4CxqVJx7h0aLrhFR2rQLWeK9EGku0SvU7Dya4BPizkPo7?=
 =?iso-8859-1?Q?V9cWjMl/fKhTgXAGtHxFSrQ7qjd2Gu7wQyToso1IbIdM6HHHfc6pZ+WfM6?=
 =?iso-8859-1?Q?qOfcjlZCvHYqKPzp3cykNGKDAe+03WX5wRscv+ETQzL4rcSiJqEG+26OTK?=
 =?iso-8859-1?Q?YmmOIVT8pcC4yhrv6+5YPg5qfnOPkZxpHINelNGbWf0VYuRdhslp0Z6MaC?=
 =?iso-8859-1?Q?86MXucHVgIJTY+1O1fvgYFvVXhwbFZsN+0vGvB5ZpYaPYWADI4L530UnzJ?=
 =?iso-8859-1?Q?6GRYRwub4eIJyMKIxCnWjoX0fYXfant9XZpet1aPrlsQoW9yCWd9KhVOqy?=
 =?iso-8859-1?Q?r1eGAcqiOhRj0BRoygNvGNvhZJwctnQEWFzVFCbuxFIl1KA8VO6bQ9f3L4?=
 =?iso-8859-1?Q?7w1vUjk0dFJ0IRMmjf3VrmS8+Jqog0mOgohAQiHWXFlPQENEfOyVtf9cCx?=
 =?iso-8859-1?Q?d3pHtuq/RXQ0pE2vCwktsRVvDVGzkf4GjAIhQsWENdDciMD8nE6IWJ4OpW?=
 =?iso-8859-1?Q?3tqS7nTGPUmZe/ERHiyIYLeGZfLx76GwMPTyf3clRpdqVpJ4PSdJedzUDp?=
 =?iso-8859-1?Q?ew0TYxguZQC617ywp/5tSd+aoe9JcK9rqcIiJbAhChxy1trsnc4Cm0sSuJ?=
 =?iso-8859-1?Q?YFcRDaUSSIfHP9Wai2MNycmCj/08LH1wOls/+4XGNruJgUUQKfgXACv5pB?=
 =?iso-8859-1?Q?wzO8LHk9lux4PJeYoge/ILL5AyEae1t9AhehYbyKTmhCedOn0WIf+Lt0Sk?=
 =?iso-8859-1?Q?TfiaQVLx7Nhzxy7SkRHdqPNW8R56eTyqHpC0OZWghDcFUqyz2hgSHX/t5E?=
 =?iso-8859-1?Q?lFN8hOWXngGPXPVy/W6Rx+g+txsbuMKKCFfJTzK993vZqbFW/vgazxpPDr?=
 =?iso-8859-1?Q?Q97PniaPCG7E9lYwahrW7eH0cUrzhVZDuIsGjmKjJbSJTY9Yydj4cO1YYf?=
 =?iso-8859-1?Q?+OMsDKH97ZQiEllIp9Fxc3tiNNdfu6HSIg6F7sHG91ca8vdOSN2tzfxntm?=
 =?iso-8859-1?Q?l8+AyFdLV3em+cq7qFa2W7eV/+D5f3e7EKiRUNdV6nz5wgv82zD/ur+JVz?=
 =?iso-8859-1?Q?36xoyXKnQMalJbw49vEQcDJI5v2UlzWScvftZO+kTUowG9Rwz0aBPYwDW7?=
 =?iso-8859-1?Q?wjGnLly7pz1YMt5mzi4DmQj2IEQ0EvWAMsmVMcgQ8qO/CFRNi6rdlrp9ET?=
 =?iso-8859-1?Q?qFgfpNdJ8gvZ7e5nzEibhWTeXgTddBZXdURXWgiejcywkiXTGUoUtde5RB?=
 =?iso-8859-1?Q?xj4jBtEon3xR48QTF+Z0/X/bdkGVUDgbX6W5vLNZINudHX+N1oPbI9KdpQ?=
 =?iso-8859-1?Q?TfCxMUmW0GBqeIrtKLgK4UMdPXFOQDIJGK939zOdDRWx8mYf6ccEfM74Cp?=
 =?iso-8859-1?Q?JQMLnK0rGXrqWPA6+2rTOrZFn8a028S5Ccr403lSh6nM4YhO6yb6FSuA?=
 =?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: 2ef9572f-cc07-459a-e6d1-08dd76253326
X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Apr 2025 22:40:28.6795
 (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: 82YAi6SThVJw8Z/trU7zin760OMLMTMLnr9SuXwAFjAPBWJ1WMzQ0lReCuD/1x2w1RtFqoP6h9en4cMcnhe5BDqitcFmJGAKAgZz7ms8IY8=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA1PR03MB10914

Stack protector is meant to be enabled on all architectures, but
currently it is tested (and enabled) only on ARM, so mention it in ARM
section.

Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
Acked-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

---

Changes in v7:
 - Moved the change to v4.21
 - Added Oleksii's acked-by tag

Changes in v6:
 - Dropped Andrew's R-b tag because there is little chance that this
 series will be included in 4.20, so this patch should be reworked for
 4.21
---
 CHANGELOG.md | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 8f6afa5c85..d3dd31dea2 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -19,6 +19,9 @@ The format is based on [Keep a Changelog](https://keepach=
angelog.com/en/1.0.0/)
      capability usage is not yet supported on PVH dom0).
    - Smoke tests for the FreeBSD Xen builds in Cirrus CI.
=20
+ - On Arm:
+    - Ability to enable stack protector
+
 ### Removed
=20
 ## [4.20.0](https://xenbits.xenproject.org/gitweb/?p=3Dxen.git;a=3Dshortlo=
g;h=3DRELEASE-4.20.0) - 2025-03-05
--=20
2.48.1


From xen-devel-bounces@lists.xenproject.org Mon Apr 07 22:56:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 07 Apr 2025 22:56:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.941280.1340786 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1vOU-0003d6-Cf; Mon, 07 Apr 2025 22:56:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 941280.1340786; Mon, 07 Apr 2025 22: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 1u1vOU-0003cy-A9; Mon, 07 Apr 2025 22:56:42 +0000
Received: by outflank-mailman (input) for mailman id 941280;
 Mon, 07 Apr 2025 22:56: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=DycC=WZ=tklengyel.com=tamas@srs-se1.protection.inumbo.net>)
 id 1u1vOT-0003cs-7l
 for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 22:56:41 +0000
Received: from sender4-pp-f112.zoho.com (sender4-pp-f112.zoho.com
 [136.143.188.112]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8f3b0fce-1403-11f0-9ffb-bf95429c2676;
 Tue, 08 Apr 2025 00:56:38 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 1744066592989295.7658012033638;
 Mon, 7 Apr 2025 15:56:32 -0700 (PDT)
Received: by mail-oi1-f171.google.com with SMTP id
 5614622812f47-3feaedb531dso1227520b6e.3
 for <xen-devel@lists.xenproject.org>; Mon, 07 Apr 2025 15:56:32 -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: 8f3b0fce-1403-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; t=1744066593; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=NQ5f2xe2yiSVnkfLP7zppWcXCbL9CsIydp6LqPhWQFolLqp29iORl+SnaiUMDjGew5p3d03UssDRNc/7EG1oZKka8BguT97DMRA9EQ+kpTjpoC8wKhYwTEtmVwMENZSXRDEu+6pJBkbrrJe4eT4JpmjydYHjB29rZ2mo79gY5pk=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1744066593; 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=9ij7JR4xtTJGt1m1JkbpWNxgtvYtQWdmN19gSKc272w=; 
	b=WtrNV3D3n/DF4F9ll9qXPTHlXWY7LMhxNKvuf0tdcOO4zoR5cWa8CFNHTpTV+5b05AaMI0TgroI3efAZviG/3OEwkc8VauRoZ196xMWNd0jHJl7EXD3n6X2YagmlNdaO3afPQ5Y373p8B7FTeJWOIgHy88UFXDVOW0JCmhITGhM=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass  header.i=tklengyel.com;
	spf=pass  smtp.mailfrom=tamas@tklengyel.com;
	dmarc=pass header.from=<tamas@tklengyel.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1744066593;
	s=zmail; d=tklengyel.com; i=tamas@tklengyel.com;
	h=MIME-Version:References:In-Reply-To:From:From:Date:Date:Message-ID:Subject:Subject:To:To:Cc:Cc:Content-Type:Content-Transfer-Encoding:Message-Id:Reply-To;
	bh=9ij7JR4xtTJGt1m1JkbpWNxgtvYtQWdmN19gSKc272w=;
	b=UuQreXdQUBc3az/olBM3hc+OB38aI18PC0Gyrf3LptoW8vcOmMwXA79w0h+addJq
	FJqz2xJG6uCeK3FetQ4M5DHeY9eIX97T5YvDK20PedcwKVCnsaL0lreJ/hihlhBfJNj
	r/PeImu65dcxesvoecChMK8oRkTYitIpW6WDDSNI=
X-Gm-Message-State: AOJu0YwMZ8PcZ4XwQsljl7I0oxenjzNJWNP7y6+WEk97UMlciksFRagP
	NCj1ph1NCqLgaAe2gOCgNvwhGloT0uAtmng43mZEVgqVAoQWKJZUqWFk1O5egraAS0JVljBDcE3
	QvYsOOTtrPQQ2Vq7ix/30DgGPhIE=
X-Google-Smtp-Source: AGHT+IF/BcxL3gFvXAMR0+csW5IQhGm+PVKVHagBVpOq6b4NFGdfUkosmD0xOOIC36g6v9jlz//kMRv7o4TtEK5bFqY=
X-Received: by 2002:a05:6808:1b12:b0:3f8:5160:befb with SMTP id
 5614622812f47-4004563c8b9mr8787011b6e.35.1744066592147; Mon, 07 Apr 2025
 15:56:32 -0700 (PDT)
MIME-Version: 1.0
References: <20250318003943.1191439-1-volodymyr_babchuk@epam.com>
In-Reply-To: <20250318003943.1191439-1-volodymyr_babchuk@epam.com>
From: Tamas K Lengyel <tamas@tklengyel.com>
Date: Mon, 7 Apr 2025 18:55:56 -0400
X-Gmail-Original-Message-ID: <CABfawhkGp6eXu7k3EyGf0QksvQftOJw7LkKq5NZ9voMU9x3=bw@mail.gmail.com>
X-Gm-Features: ATxdqUFinyPGK6X7vECJC4_spFb_P96rFYoeCX0c-07jvGUSH2QRT76p8y_Rn7w
Message-ID: <CABfawhkGp6eXu7k3EyGf0QksvQftOJw7LkKq5NZ9voMU9x3=bw@mail.gmail.com>
Subject: Re: [PATCH v2] xen: vm_event: do not do vm_event_op for an invalid domain
To: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
	Alexandru Isaila <aisaila@bitdefender.com>, Petre Pircalabu <ppircalabu@bitdefender.com>, 
	Andrew Cooper <andrew.cooper3@citrix.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Mon, Mar 17, 2025 at 8:40=E2=80=AFPM Volodymyr Babchuk
<Volodymyr_Babchuk@epam.com> wrote:
>
> A privileged domain can issue XEN_DOMCTL_vm_event_op with
> op->domain =3D=3D DOMID_INVALID. In this case vm_event_domctl()
> function will get NULL as the first parameter and this will
> cause hypervisor panic, as it tries to derefer this pointer.
>
> Fix the issue by checking if valid domain is passed in.
>
> Fixes: 48b84249459f ("xen/vm-event: Drop unused u_domctl parameter from v=
m_event_domctl()")
> Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>

Acked-by: Tamas K Lengyel <tamas@tklengyel.com>


From xen-devel-bounces@lists.xenproject.org Tue Apr 08 01:15:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 01:15:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.941313.1340838 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1xYc-0000yn-4q; Tue, 08 Apr 2025 01:15:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 941313.1340838; Tue, 08 Apr 2025 01: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 1u1xYc-0000yg-01; Tue, 08 Apr 2025 01:15:18 +0000
Received: by outflank-mailman (input) for mailman id 941313;
 Tue, 08 Apr 2025 01: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=xbCh=W2=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u1xYY-0000yY-SK
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 01:15:16 +0000
Received: from mail-10629.protonmail.ch (mail-10629.protonmail.ch
 [79.135.106.29]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id eac6f16b-1416-11f0-9eaa-5ba50f476ded;
 Tue, 08 Apr 2025 03:15:11 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: eac6f16b-1416-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1744074908; x=1744334108;
	bh=4sf6deqyTIYHkGHA6/D9MBzvDe/y2EA9gmHClhfWUfw=;
	h=Date:To:From:Cc:Subject:Message-ID:Feedback-ID:From:To:Cc:Date:
	 Subject:Reply-To:Feedback-ID:Message-ID:BIMI-Selector:
	 List-Unsubscribe:List-Unsubscribe-Post;
	b=UxU1h106WLWiCPWC9Z6e6RUiwNC2eAI05M52OV/SncsOESyotRGnZumolMuAEcS3Y
	 AaHjUZa/D9MrWJHTP+gq8pCy0lO19gF6IvSYrfQ9ogfFR+yexADNXW0iUstKpa9kTG
	 88p2GKePyW3OGTtGsGmbqLhKivfkKINAgmlJnekeHAGkVpTSEv0y5B+DiVsQp1UfjR
	 5Q3LOWdTgB+HKNIcctJAAbrwyw7/4Q0+tb0kIOdJG5BapqcvgS6RLV09/fAKZ8aW6K
	 spGlQFPPB2w3dqVUAJ7vCgiZY0xm2mRcK/55eVplWLkH0zmH/ynpkQioW5NXVATBmb
	 xLJFTaBBev+/g==
Date: Tue, 08 Apr 2025 01:15:02 +0000
To: xen-devel@lists.xenproject.org
From: dmkhn@proton.me
Cc: andrew.cooper3@citrix.com, jbeulich@suse.com, roger.pau@citrix.com, dmukhin@ford.com
Subject: [PATCH v1] x86/vmx: Rework __vmread()/vmread_safe()/vmr()
Message-ID: <20250408011454.2274613-1-dmukhin@ford.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 10313dc0faf6145243e2c5bf49e6b0708f41d3ce
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

From: Denis Mukhin <dmukhin@ford.com>

Use `asm goto()` in vmread_safe() to simplify the error handling logic.

Update __vmread() to return `unsigned long` as per suggestion in [1].
Rename __vmread() to vmread_unsafe() to match the behavior.
Update all call sites everywhere. Drop `UNLIKELY_*()`.

Group all vmread*() calls close to each other in vmx.h

Rename internal vmr*() to vmread*().

[1] https://lore.kernel.org/xen-devel/c452a1d7-4a57-4c5f-8a83-36a74ff228ec@=
citrix.com/

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
Link to CI: https://gitlab.com/xen-project/people/dmukhin/xen/-/pipelines/1=
756781092
---
 xen/arch/x86/cpu/vpmu_intel.c          |   3 +-
 xen/arch/x86/hvm/vmx/intr.c            |  26 +--
 xen/arch/x86/hvm/vmx/realmode.c        |   2 +-
 xen/arch/x86/hvm/vmx/vmcs.c            | 160 ++++++++++---------
 xen/arch/x86/hvm/vmx/vmx.c             | 209 +++++++++++--------------
 xen/arch/x86/hvm/vmx/vvmx.c            |  43 +++--
 xen/arch/x86/include/asm/domain.h      |   2 +-
 xen/arch/x86/include/asm/hvm/vmx/vmx.h |  69 ++++----
 8 files changed, 235 insertions(+), 279 deletions(-)

diff --git a/xen/arch/x86/cpu/vpmu_intel.c b/xen/arch/x86/cpu/vpmu_intel.c
index 7ce98ee42e..9c93d1f28c 100644
--- a/xen/arch/x86/cpu/vpmu_intel.c
+++ b/xen/arch/x86/cpu/vpmu_intel.c
@@ -796,8 +796,7 @@ static int cf_check core2_vpmu_do_interrupt(void)
     else
     {
         /* No PMC overflow but perhaps a Trace Message interrupt. */
-        __vmread(GUEST_IA32_DEBUGCTL, &msr_content);
-        if ( !(msr_content & IA32_DEBUGCTLMSR_TR) )
+        if ( !(vmread_unsafe(GUEST_IA32_DEBUGCTL) & IA32_DEBUGCTLMSR_TR) )
             return 0;
     }
=20
diff --git a/xen/arch/x86/hvm/vmx/intr.c b/xen/arch/x86/hvm/vmx/intr.c
index 91b407e6bc..63330615cd 100644
--- a/xen/arch/x86/hvm/vmx/intr.c
+++ b/xen/arch/x86/hvm/vmx/intr.c
@@ -63,9 +63,8 @@ static void vmx_enable_intr_window(struct vcpu *v, struct=
 hvm_intack intack)
=20
     if ( unlikely(tb_init_done) )
     {
-        unsigned long intr;
+        unsigned long intr =3D vmread_unsafe(VM_ENTRY_INTR_INFO);
=20
-        __vmread(VM_ENTRY_INTR_INFO, &intr);
         TRACE(TRC_HVM_INTR_WINDOW, intack.vector, intack.source,
               (intr & INTR_INFO_VALID_MASK) ? intr & 0xff : -1);
     }
@@ -81,9 +80,8 @@ static void vmx_enable_intr_window(struct vcpu *v, struct=
 hvm_intack intack)
          * we may immediately vmexit and hance make no progress!
          * (see SDM 3B 21.3, "Other Causes of VM Exits").
          */
-        unsigned long intr_shadow;
+        unsigned long intr_shadow =3D vmread_unsafe(GUEST_INTERRUPTIBILITY=
_INFO);
=20
-        __vmread(GUEST_INTERRUPTIBILITY_INFO, &intr_shadow);
         if ( intr_shadow & VMX_INTR_SHADOW_STI )
         {
             /* Having both STI-blocking and MOV-SS-blocking fails vmentry.=
 */
@@ -144,14 +142,8 @@ enum hvm_intblk cf_check nvmx_intr_blocked(struct vcpu=
 *v)
         if ( nvcpu->nv_vmexit_pending ||
              nvcpu->nv_vmswitch_in_progress )
             r =3D hvm_intblk_rflags_ie;
-        else
-        {
-            unsigned long intr_info;
-
-            __vmread(VM_ENTRY_INTR_INFO, &intr_info);
-            if ( intr_info & INTR_INFO_VALID_MASK )
-                r =3D hvm_intblk_rflags_ie;
-        }
+        else if ( vmread_unsafe(VM_ENTRY_INTR_INFO) & INTR_INFO_VALID_MASK=
 )
+            r =3D hvm_intblk_rflags_ie;
     }
     else if ( nvcpu->nv_vmentry_pending )
         r =3D hvm_intblk_rflags_ie;
@@ -253,8 +245,6 @@ void asmlinkage vmx_intr_assist(void)
     pt_vector =3D pt_update_irq(v);
=20
     do {
-        unsigned long intr_info;
-
         intack =3D hvm_vcpu_has_pending_irq(v);
         if ( likely(intack.source =3D=3D hvm_intsrc_none) )
             goto out;
@@ -275,8 +265,7 @@ void asmlinkage vmx_intr_assist(void)
                 goto out;
             }
=20
-            __vmread(VM_ENTRY_INTR_INFO, &intr_info);
-            if ( intr_info & INTR_INFO_VALID_MASK )
+            if ( vmread_unsafe(VM_ENTRY_INTR_INFO) & INTR_INFO_VALID_MASK =
)
             {
                 if ( (intack.source =3D=3D hvm_intsrc_pic) ||
                      (intack.source =3D=3D hvm_intsrc_nmi) ||
@@ -299,8 +288,7 @@ void asmlinkage vmx_intr_assist(void)
         }
         else
         {
-            __vmread(VM_ENTRY_INTR_INFO, &intr_info);
-            if ( intr_info & INTR_INFO_VALID_MASK )
+            if ( vmread_unsafe(VM_ENTRY_INTR_INFO) & INTR_INFO_VALID_MASK =
)
             {
                 vmx_enable_intr_window(v, intack);
                 goto out;
@@ -377,7 +365,7 @@ void asmlinkage vmx_intr_assist(void)
         }
=20
         /* we need update the RVI field */
-        __vmread(GUEST_INTR_STATUS, &status);
+        status =3D vmread_unsafe(GUEST_INTR_STATUS);
         status &=3D ~VMX_GUEST_INTR_STATUS_SUBFIELD_BITMASK;
         status |=3D VMX_GUEST_INTR_STATUS_SUBFIELD_BITMASK &
                     intack.vector;
diff --git a/xen/arch/x86/hvm/vmx/realmode.c b/xen/arch/x86/hvm/vmx/realmod=
e.c
index ff44ddcfa6..e8eb9773ee 100644
--- a/xen/arch/x86/hvm/vmx/realmode.c
+++ b/xen/arch/x86/hvm/vmx/realmode.c
@@ -159,7 +159,7 @@ void vmx_realmode(struct cpu_user_regs *regs)
     unsigned int emulations =3D 0;
=20
     /* Get-and-clear VM_ENTRY_INTR_INFO. */
-    __vmread(VM_ENTRY_INTR_INFO, &intr_info);
+    intr_info =3D vmread_unsafe(VM_ENTRY_INTR_INFO);
     if ( intr_info & INTR_INFO_VALID_MASK )
         __vmwrite(VM_ENTRY_INTR_INFO, 0);
=20
diff --git a/xen/arch/x86/hvm/vmx/vmcs.c b/xen/arch/x86/hvm/vmx/vmcs.c
index a44475ae15..3bfe48ff96 100644
--- a/xen/arch/x86/hvm/vmx/vmcs.c
+++ b/xen/arch/x86/hvm/vmx/vmcs.c
@@ -1031,7 +1031,7 @@ u64 virtual_vmcs_vmread(const struct vcpu *v, u32 vmc=
s_encoding)
     u64 res;
=20
     virtual_vmcs_enter(v);
-    __vmread(vmcs_encoding, &res);
+    res =3D vmread_unsafe(vmcs_encoding);
     virtual_vmcs_exit(v);
=20
     return res;
@@ -1691,7 +1691,7 @@ void vmx_vcpu_flush_pml_buffer(struct vcpu *v)
=20
     vmx_vmcs_enter(v);
=20
-    __vmread(GUEST_PML_INDEX, &pml_idx);
+    pml_idx =3D vmread_unsafe(GUEST_PML_INDEX);
=20
     /* Do nothing if PML buffer is empty. */
     if ( pml_idx =3D=3D (NR_PML_ENTRIES - 1) )
@@ -1874,9 +1874,8 @@ void vmx_destroy_vmcs(struct vcpu *v)
 void vmx_vmentry_failure(void)
 {
     struct vcpu *curr =3D current;
-    unsigned long error;
+    unsigned long error =3D vmread_unsafe(VM_INSTRUCTION_ERROR);
=20
-    __vmread(VM_INSTRUCTION_ERROR, &error);
     gprintk(XENLOG_ERR, "VM%s error: %#lx\n",
             curr->arch.hvm.vmx.launched ? "RESUME" : "LAUNCH", error);
=20
@@ -1905,7 +1904,6 @@ void cf_check vmx_do_resume(void)
 {
     struct vcpu *v =3D current;
     bool debug_state;
-    unsigned long host_cr4;
=20
     if ( v->arch.hvm.vmx.active_cpu =3D=3D smp_processor_id() )
         vmx_vmcs_reload(v);
@@ -1957,38 +1955,44 @@ void cf_check vmx_do_resume(void)
     hvm_do_resume(v);
=20
     /* Sync host CR4 in case its value has changed. */
-    __vmread(HOST_CR4, &host_cr4);
-    if ( host_cr4 !=3D read_cr4() )
+    if ( vmread_unsafe(HOST_CR4) !=3D read_cr4() )
         __vmwrite(HOST_CR4, read_cr4());
=20
     reset_stack_and_jump(vmx_asm_do_vmentry);
 }
=20
-static inline unsigned long vmr(unsigned long field)
+static inline unsigned long vmread(unsigned long field)
 {
-    unsigned long val;
+    unsigned long value =3D 0;
=20
-    return vmread_safe(field, &val) ? 0 : val;
+    asm goto ( "vmread %[field], %[value]\n\t"
+               "jmp %l[out]"
+               :
+               : [field] "r" (field), [value] "m" (value)
+               :
+               : out );
+out:
+    return value;
 }
=20
-#define vmr16(fld) ({             \
+#define vmread16(fld) ({          \
     BUILD_BUG_ON((fld) & 0x6001); \
-    (uint16_t)vmr(fld);           \
+    (uint16_t)vmread(fld);        \
 })
=20
-#define vmr32(fld) ({                         \
+#define vmread32(fld) ({                      \
     BUILD_BUG_ON(((fld) & 0x6001) !=3D 0x4000); \
-    (uint32_t)vmr(fld);                       \
+    (uint32_t)vmread(fld);                    \
 })
=20
 static void vmx_dump_sel(const char *name, uint32_t selector)
 {
     uint32_t sel, attr, limit;
     uint64_t base;
-    sel =3D vmr(selector);
-    attr =3D vmr(selector + (GUEST_ES_AR_BYTES - GUEST_ES_SELECTOR));
-    limit =3D vmr(selector + (GUEST_ES_LIMIT - GUEST_ES_SELECTOR));
-    base =3D vmr(selector + (GUEST_ES_BASE - GUEST_ES_SELECTOR));
+    sel =3D vmread(selector);
+    attr =3D vmread(selector + (GUEST_ES_AR_BYTES - GUEST_ES_SELECTOR));
+    limit =3D vmread(selector + (GUEST_ES_LIMIT - GUEST_ES_SELECTOR));
+    base =3D vmread(selector + (GUEST_ES_BASE - GUEST_ES_SELECTOR));
     printk("%s: %04x %05x %08x %016"PRIx64"\n", name, sel, attr, limit, ba=
se);
 }
=20
@@ -1996,8 +2000,8 @@ static void vmx_dump_sel2(const char *name, uint32_t =
lim)
 {
     uint32_t limit;
     uint64_t base;
-    limit =3D vmr(lim);
-    base =3D vmr(lim + (GUEST_GDTR_BASE - GUEST_GDTR_LIMIT));
+    limit =3D vmread(lim);
+    base =3D vmread(lim + (GUEST_GDTR_BASE - GUEST_GDTR_LIMIT));
     printk("%s:            %08x %016"PRIx64"\n", name, limit, base);
 }
=20
@@ -2014,9 +2018,9 @@ void vmcs_dump_vcpu(struct vcpu *v)
=20
     vmx_vmcs_enter(v);
=20
-    vmentry_ctl =3D vmr32(VM_ENTRY_CONTROLS),
-    vmexit_ctl =3D vmr32(VM_EXIT_CONTROLS);
-    cr4 =3D vmr(GUEST_CR4);
+    vmentry_ctl =3D vmread32(VM_ENTRY_CONTROLS),
+    vmexit_ctl =3D vmread32(VM_EXIT_CONTROLS);
+    cr4 =3D vmread(GUEST_CR4);
=20
     /*
      * The guests EFER setting comes from the GUEST_EFER VMCS field whenev=
er
@@ -2025,34 +2029,34 @@ void vmcs_dump_vcpu(struct vcpu *v)
      * setting.
      */
     if ( cpu_has_vmx_efer )
-        efer =3D vmr(GUEST_EFER);
+        efer =3D vmread(GUEST_EFER);
     else if ( vmx_read_guest_loadonly_msr(v, MSR_EFER, &efer) )
         efer =3D read_efer();
=20
     printk("*** Guest State ***\n");
     printk("CR0: actual=3D0x%016lx, shadow=3D0x%016lx, gh_mask=3D%016lx\n"=
,
-           vmr(GUEST_CR0), vmr(CR0_READ_SHADOW), vmr(CR0_GUEST_HOST_MASK))=
;
+           vmread(GUEST_CR0), vmread(CR0_READ_SHADOW), vmread(CR0_GUEST_HO=
ST_MASK));
     printk("CR4: actual=3D0x%016lx, shadow=3D0x%016lx, gh_mask=3D%016lx\n"=
,
-           cr4, vmr(CR4_READ_SHADOW), vmr(CR4_GUEST_HOST_MASK));
-    printk("CR3 =3D 0x%016lx\n", vmr(GUEST_CR3));
+           cr4, vmread(CR4_READ_SHADOW), vmread(CR4_GUEST_HOST_MASK));
+    printk("CR3 =3D 0x%016lx\n", vmread(GUEST_CR3));
     if ( (v->arch.hvm.vmx.secondary_exec_control &
           SECONDARY_EXEC_ENABLE_EPT) &&
          (cr4 & X86_CR4_PAE) && !(vmentry_ctl & VM_ENTRY_IA32E_MODE) )
     {
         printk("PDPTE0 =3D 0x%016lx  PDPTE1 =3D 0x%016lx\n",
-               vmr(GUEST_PDPTE(0)), vmr(GUEST_PDPTE(1)));
+               vmread(GUEST_PDPTE(0)), vmread(GUEST_PDPTE(1)));
         printk("PDPTE2 =3D 0x%016lx  PDPTE3 =3D 0x%016lx\n",
-               vmr(GUEST_PDPTE(2)), vmr(GUEST_PDPTE(3)));
+               vmread(GUEST_PDPTE(2)), vmread(GUEST_PDPTE(3)));
     }
     printk("RSP =3D 0x%016lx (0x%016lx)  RIP =3D 0x%016lx (0x%016lx)\n",
-           vmr(GUEST_RSP), regs->rsp,
-           vmr(GUEST_RIP), regs->rip);
+           vmread(GUEST_RSP), regs->rsp,
+           vmread(GUEST_RIP), regs->rip);
     printk("RFLAGS=3D0x%08lx (0x%08lx)  DR7 =3D 0x%016lx\n",
-           vmr(GUEST_RFLAGS), regs->rflags,
-           vmr(GUEST_DR7));
+           vmread(GUEST_RFLAGS), regs->rflags,
+           vmread(GUEST_DR7));
     printk("Sysenter RSP=3D%016lx CS:RIP=3D%04x:%016lx\n",
-           vmr(GUEST_SYSENTER_ESP),
-           vmr32(GUEST_SYSENTER_CS), vmr(GUEST_SYSENTER_EIP));
+           vmread(GUEST_SYSENTER_ESP),
+           vmread32(GUEST_SYSENTER_CS), vmread(GUEST_SYSENTER_EIP));
     printk("       sel  attr  limit   base\n");
     vmx_dump_sel("  CS", GUEST_CS_SELECTOR);
     vmx_dump_sel("  DS", GUEST_DS_SELECTOR);
@@ -2065,95 +2069,95 @@ void vmcs_dump_vcpu(struct vcpu *v)
     vmx_dump_sel2("IDTR", GUEST_IDTR_LIMIT);
     vmx_dump_sel("  TR", GUEST_TR_SELECTOR);
     printk("EFER(%s) =3D 0x%016lx  PAT =3D 0x%016lx\n",
-           cpu_has_vmx_efer ? "VMCS" : "MSR LL", efer, vmr(GUEST_PAT));
+           cpu_has_vmx_efer ? "VMCS" : "MSR LL", efer, vmread(GUEST_PAT));
     printk("PreemptionTimer =3D 0x%08x  SM Base =3D 0x%08x\n",
-           vmr32(GUEST_PREEMPTION_TIMER), vmr32(GUEST_SMBASE));
+           vmread32(GUEST_PREEMPTION_TIMER), vmread32(GUEST_SMBASE));
     printk("DebugCtl =3D 0x%016lx  DebugExceptions =3D 0x%016lx\n",
-           vmr(GUEST_IA32_DEBUGCTL), vmr(GUEST_PENDING_DBG_EXCEPTIONS));
+           vmread(GUEST_IA32_DEBUGCTL), vmread(GUEST_PENDING_DBG_EXCEPTION=
S));
     if ( vmentry_ctl & (VM_ENTRY_LOAD_PERF_GLOBAL_CTRL | VM_ENTRY_LOAD_BND=
CFGS) )
         printk("PerfGlobCtl =3D 0x%016lx  BndCfgS =3D 0x%016lx\n",
-               vmr(GUEST_PERF_GLOBAL_CTRL), vmr(GUEST_BNDCFGS));
+               vmread(GUEST_PERF_GLOBAL_CTRL), vmread(GUEST_BNDCFGS));
     printk("Interruptibility =3D %08x  ActivityState =3D %08x\n",
-           vmr32(GUEST_INTERRUPTIBILITY_INFO), vmr32(GUEST_ACTIVITY_STATE)=
);
+           vmread32(GUEST_INTERRUPTIBILITY_INFO), vmread32(GUEST_ACTIVITY_=
STATE));
     if ( v->arch.hvm.vmx.secondary_exec_control &
          SECONDARY_EXEC_VIRTUAL_INTR_DELIVERY )
-        printk("InterruptStatus =3D %04x\n", vmr16(GUEST_INTR_STATUS));
+        printk("InterruptStatus =3D %04x\n", vmread16(GUEST_INTR_STATUS));
     if ( cpu_has_vmx_virt_spec_ctrl )
         printk("SPEC_CTRL mask =3D 0x%016lx  shadow =3D 0x%016lx\n",
-               vmr(SPEC_CTRL_MASK), vmr(SPEC_CTRL_SHADOW));
+               vmread(SPEC_CTRL_MASK), vmread(SPEC_CTRL_SHADOW));
=20
     printk("*** Host State ***\n");
     printk("RIP =3D 0x%016lx (%ps)  RSP =3D 0x%016lx\n",
-           vmr(HOST_RIP), (void *)vmr(HOST_RIP), vmr(HOST_RSP));
+           vmread(HOST_RIP), (void *)vmread(HOST_RIP), vmread(HOST_RSP));
     printk("CS=3D%04x SS=3D%04x DS=3D%04x ES=3D%04x FS=3D%04x GS=3D%04x TR=
=3D%04x\n",
-           vmr16(HOST_CS_SELECTOR), vmr16(HOST_SS_SELECTOR),
-           vmr16(HOST_DS_SELECTOR), vmr16(HOST_ES_SELECTOR),
-           vmr16(HOST_FS_SELECTOR), vmr16(HOST_GS_SELECTOR),
-           vmr16(HOST_TR_SELECTOR));
+           vmread16(HOST_CS_SELECTOR), vmread16(HOST_SS_SELECTOR),
+           vmread16(HOST_DS_SELECTOR), vmread16(HOST_ES_SELECTOR),
+           vmread16(HOST_FS_SELECTOR), vmread16(HOST_GS_SELECTOR),
+           vmread16(HOST_TR_SELECTOR));
     printk("FSBase=3D%016lx GSBase=3D%016lx TRBase=3D%016lx\n",
-           vmr(HOST_FS_BASE), vmr(HOST_GS_BASE), vmr(HOST_TR_BASE));
+           vmread(HOST_FS_BASE), vmread(HOST_GS_BASE), vmread(HOST_TR_BASE=
));
     printk("GDTBase=3D%016lx IDTBase=3D%016lx\n",
-           vmr(HOST_GDTR_BASE), vmr(HOST_IDTR_BASE));
+           vmread(HOST_GDTR_BASE), vmread(HOST_IDTR_BASE));
     printk("CR0=3D%016lx CR3=3D%016lx CR4=3D%016lx\n",
-           vmr(HOST_CR0), vmr(HOST_CR3), vmr(HOST_CR4));
+           vmread(HOST_CR0), vmread(HOST_CR3), vmread(HOST_CR4));
     printk("Sysenter RSP=3D%016lx CS:RIP=3D%04x:%016lx\n",
-           vmr(HOST_SYSENTER_ESP),
-           vmr32(HOST_SYSENTER_CS), vmr(HOST_SYSENTER_EIP));
+           vmread(HOST_SYSENTER_ESP),
+           vmread32(HOST_SYSENTER_CS), vmread(HOST_SYSENTER_EIP));
     if ( vmexit_ctl & (VM_EXIT_LOAD_HOST_PAT | VM_EXIT_LOAD_HOST_EFER) )
-        printk("EFER =3D 0x%016lx  PAT =3D 0x%016lx\n", vmr(HOST_EFER), vm=
r(HOST_PAT));
+        printk("EFER =3D 0x%016lx  PAT =3D 0x%016lx\n", vmread(HOST_EFER),=
 vmread(HOST_PAT));
     if ( vmexit_ctl & VM_EXIT_LOAD_PERF_GLOBAL_CTRL )
         printk("PerfGlobCtl =3D 0x%016lx\n",
-               vmr(HOST_PERF_GLOBAL_CTRL));
+               vmread(HOST_PERF_GLOBAL_CTRL));
=20
     printk("*** Control State ***\n");
     printk("PinBased=3D%08x CPUBased=3D%08x\n",
-           vmr32(PIN_BASED_VM_EXEC_CONTROL),
-           vmr32(CPU_BASED_VM_EXEC_CONTROL));
+           vmread32(PIN_BASED_VM_EXEC_CONTROL),
+           vmread32(CPU_BASED_VM_EXEC_CONTROL));
     printk("SecondaryExec=3D%08x TertiaryExec=3D%016lx\n",
-           vmr32(SECONDARY_VM_EXEC_CONTROL),
-           vmr(TERTIARY_VM_EXEC_CONTROL));
+           vmread32(SECONDARY_VM_EXEC_CONTROL),
+           vmread(TERTIARY_VM_EXEC_CONTROL));
     printk("EntryControls=3D%08x ExitControls=3D%08x\n", vmentry_ctl, vmex=
it_ctl);
     printk("ExceptionBitmap=3D%08x PFECmask=3D%08x PFECmatch=3D%08x\n",
-           vmr32(EXCEPTION_BITMAP),
-           vmr32(PAGE_FAULT_ERROR_CODE_MASK),
-           vmr32(PAGE_FAULT_ERROR_CODE_MATCH));
+           vmread32(EXCEPTION_BITMAP),
+           vmread32(PAGE_FAULT_ERROR_CODE_MASK),
+           vmread32(PAGE_FAULT_ERROR_CODE_MATCH));
     printk("VMEntry: intr_info=3D%08x errcode=3D%08x ilen=3D%08x\n",
-           vmr32(VM_ENTRY_INTR_INFO),
-           vmr32(VM_ENTRY_EXCEPTION_ERROR_CODE),
-           vmr32(VM_ENTRY_INSTRUCTION_LEN));
+           vmread32(VM_ENTRY_INTR_INFO),
+           vmread32(VM_ENTRY_EXCEPTION_ERROR_CODE),
+           vmread32(VM_ENTRY_INSTRUCTION_LEN));
     printk("VMExit: intr_info=3D%08x errcode=3D%08x ilen=3D%08x\n",
-           vmr32(VM_EXIT_INTR_INFO),
-           vmr32(VM_EXIT_INTR_ERROR_CODE),
-           vmr32(VM_EXIT_INSTRUCTION_LEN));
+           vmread32(VM_EXIT_INTR_INFO),
+           vmread32(VM_EXIT_INTR_ERROR_CODE),
+           vmread32(VM_EXIT_INSTRUCTION_LEN));
     printk("        reason=3D%08x qualification=3D%016lx\n",
-           vmr32(VM_EXIT_REASON), vmr(EXIT_QUALIFICATION));
+           vmread32(VM_EXIT_REASON), vmread(EXIT_QUALIFICATION));
     printk("IDTVectoring: info=3D%08x errcode=3D%08x\n",
-           vmr32(IDT_VECTORING_INFO), vmr32(IDT_VECTORING_ERROR_CODE));
+           vmread32(IDT_VECTORING_INFO), vmread32(IDT_VECTORING_ERROR_CODE=
));
     printk("TSC Offset =3D 0x%016lx  TSC Multiplier =3D 0x%016lx\n",
-           vmr(TSC_OFFSET), vmr(TSC_MULTIPLIER));
+           vmread(TSC_OFFSET), vmread(TSC_MULTIPLIER));
     if ( (v->arch.hvm.vmx.exec_control & CPU_BASED_TPR_SHADOW) ||
          (vmx_caps.pin_based_exec_control & PIN_BASED_POSTED_INTERRUPT) )
         printk("TPR Threshold =3D 0x%02x  PostedIntrVec =3D 0x%02x\n",
-               vmr32(TPR_THRESHOLD), vmr16(POSTED_INTR_NOTIFICATION_VECTOR=
));
+               vmread32(TPR_THRESHOLD), vmread16(POSTED_INTR_NOTIFICATION_=
VECTOR));
     if ( (v->arch.hvm.vmx.secondary_exec_control &
           SECONDARY_EXEC_ENABLE_EPT) )
         printk("EPT pointer =3D 0x%016lx  EPTP index =3D 0x%04x\n",
-               vmr(EPT_POINTER), vmr16(EPTP_INDEX));
-    n =3D vmr32(CR3_TARGET_COUNT);
+               vmread(EPT_POINTER), vmread16(EPTP_INDEX));
+    n =3D vmread32(CR3_TARGET_COUNT);
     for ( i =3D 0; i + 1 < n; i +=3D 2 )
         printk("CR3 target%u=3D%016lx target%u=3D%016lx\n",
-               i, vmr(CR3_TARGET_VALUE(i)),
-               i + 1, vmr(CR3_TARGET_VALUE(i + 1)));
+               i, vmread(CR3_TARGET_VALUE(i)),
+               i + 1, vmread(CR3_TARGET_VALUE(i + 1)));
     if ( i < n )
-        printk("CR3 target%u=3D%016lx\n", i, vmr(CR3_TARGET_VALUE(i)));
+        printk("CR3 target%u=3D%016lx\n", i, vmread(CR3_TARGET_VALUE(i)));
     if ( v->arch.hvm.vmx.secondary_exec_control &
          SECONDARY_EXEC_PAUSE_LOOP_EXITING )
         printk("PLE Gap=3D%08x Window=3D%08x\n",
-               vmr32(PLE_GAP), vmr32(PLE_WINDOW));
+               vmread32(PLE_GAP), vmread32(PLE_WINDOW));
     if ( v->arch.hvm.vmx.secondary_exec_control &
          (SECONDARY_EXEC_ENABLE_VPID | SECONDARY_EXEC_ENABLE_VM_FUNCTIONS)=
 )
         printk("Virtual processor ID =3D 0x%04x VMfunc controls =3D %016lx=
\n",
-               vmr16(VIRTUAL_PROCESSOR_ID), vmr(VM_FUNCTION_CONTROL));
+               vmread16(VIRTUAL_PROCESSOR_ID), vmread(VM_FUNCTION_CONTROL)=
);
=20
     vmx_vmcs_exit(v);
 }
diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c
index 4883bd823d..8a3f5a28ad 100644
--- a/xen/arch/x86/hvm/vmx/vmx.c
+++ b/xen/arch/x86/hvm/vmx/vmx.c
@@ -902,7 +902,7 @@ int cf_check vmx_guest_x86_mode(struct vcpu *v)
         return X86_MODE_REAL;
     if ( unlikely(guest_cpu_user_regs()->eflags & X86_EFLAGS_VM) )
         return X86_MODE_VM86;
-    __vmread(GUEST_CS_AR_BYTES, &cs_ar_bytes);
+    cs_ar_bytes =3D vmread_unsafe(GUEST_CS_AR_BYTES);
     if ( hvm_long_mode_active(v) &&
          likely(cs_ar_bytes & X86_SEG_AR_CS_LM_ACTIVE) )
         return X86_MODE_64BIT;
@@ -926,7 +926,7 @@ static void vmx_save_dr(struct vcpu *v)
     v->arch.dr[3] =3D read_debugreg(3);
     v->arch.dr6   =3D read_debugreg(6);
     /* DR7 must be saved as it is used by vmx_restore_dr(). */
-    __vmread(GUEST_DR7, &v->arch.dr7);
+    v->arch.dr7 =3D vmread_unsafe(GUEST_DR7);
 }
=20
 static void __restore_debug_registers(struct vcpu *v)
@@ -952,7 +952,7 @@ static void __restore_debug_registers(struct vcpu *v)
  */
 static void vmx_restore_dr(struct vcpu *v)
 {
-    /* NB. __vmread() is not usable here, so we cannot read from the VMCS.=
 */
+    /* NB. vmread_unsafe() is not usable here, so we cannot read from the =
VMCS. */
     if ( unlikely(v->arch.dr7 & DR7_ACTIVE_MASK) )
         __restore_debug_registers(v);
 }
@@ -963,17 +963,17 @@ static void vmx_vmcs_save(struct vcpu *v, struct hvm_=
hw_cpu *c)
=20
     vmx_vmcs_enter(v);
=20
-    __vmread(GUEST_SYSENTER_CS, &c->sysenter_cs);
-    __vmread(GUEST_SYSENTER_ESP, &c->sysenter_esp);
-    __vmread(GUEST_SYSENTER_EIP, &c->sysenter_eip);
+    c->sysenter_cs =3D vmread_unsafe(GUEST_SYSENTER_CS);
+    c->sysenter_esp =3D vmread_unsafe(GUEST_SYSENTER_ESP);
+    c->sysenter_eip =3D vmread_unsafe(GUEST_SYSENTER_EIP);
=20
-    __vmread(VM_ENTRY_INTR_INFO, &ev);
+    ev =3D vmread_unsafe(VM_ENTRY_INTR_INFO);
     if ( (ev & INTR_INFO_VALID_MASK) &&
          hvm_event_needs_reinjection(MASK_EXTR(ev, INTR_INFO_INTR_TYPE_MAS=
K),
                                      ev & INTR_INFO_VECTOR_MASK) )
     {
         c->pending_event =3D ev;
-        __vmread(VM_ENTRY_EXCEPTION_ERROR_CODE, &ev);
+        ev =3D vmread_unsafe(VM_ENTRY_EXCEPTION_ERROR_CODE);
         c->error_code =3D ev;
     }
=20
@@ -1197,11 +1197,7 @@ static void cf_check vmx_ctxt_switch_to(struct vcpu =
*v)
=20
 unsigned int vmx_get_cpl(void)
 {
-    unsigned long attr;
-
-    __vmread(GUEST_SS_AR_BYTES, &attr);
-
-    return MASK_EXTR(attr, X86_SEG_AR_DPL);
+    return MASK_EXTR(vmread_unsafe(GUEST_SS_AR_BYTES), X86_SEG_AR_DPL);
 }
=20
 static unsigned int cf_check _vmx_get_cpl(struct vcpu *v)
@@ -1271,14 +1267,14 @@ static void cf_check vmx_get_segment_register(
         fallthrough;
=20
     case x86_seg_es ... x86_seg_gs:
-        __vmread(GUEST_SEG_SELECTOR(tmp_seg), &sel);
-        __vmread(GUEST_SEG_AR_BYTES(tmp_seg), &attr);
+        sel =3D vmread_unsafe(GUEST_SEG_SELECTOR(tmp_seg));
+        attr =3D vmread_unsafe(GUEST_SEG_AR_BYTES(tmp_seg));
         fallthrough;
=20
     case x86_seg_gdtr:
     case x86_seg_idtr:
-        __vmread(GUEST_SEG_LIMIT(tmp_seg),    &limit);
-        __vmread(GUEST_SEG_BASE(tmp_seg),     &reg->base);
+        limit =3D vmread_unsafe(GUEST_SEG_LIMIT(tmp_seg));
+        reg->base =3D vmread_unsafe(GUEST_SEG_BASE(tmp_seg));
         break;
=20
     default:
@@ -1436,7 +1432,7 @@ static int cf_check vmx_get_guest_pat(struct vcpu *v,=
 u64 *gpat)
         return 0;
=20
     vmx_vmcs_enter(v);
-    __vmread(GUEST_PAT, gpat);
+    *gpat =3D vmread_unsafe(GUEST_PAT);
     vmx_vmcs_exit(v);
     return 1;
 }
@@ -1555,11 +1551,7 @@ static void cf_check vmx_init_hypercall_page(void *p=
)
=20
 static unsigned int cf_check vmx_get_interrupt_shadow(struct vcpu *v)
 {
-    unsigned long intr_shadow;
-
-    __vmread(GUEST_INTERRUPTIBILITY_INFO, &intr_shadow);
-
-    return intr_shadow;
+    return vmread_unsafe(GUEST_INTERRUPTIBILITY_INFO);
 }
=20
 static void cf_check vmx_set_interrupt_shadow(
@@ -1573,12 +1565,12 @@ static void cf_check vmx_get_nonreg_state(struct vc=
pu *v,
 {
     vmx_vmcs_enter(v);
=20
-    __vmread(GUEST_ACTIVITY_STATE, &nrs->vmx.activity_state);
-    __vmread(GUEST_INTERRUPTIBILITY_INFO, &nrs->vmx.interruptibility_info)=
;
-    __vmread(GUEST_PENDING_DBG_EXCEPTIONS, &nrs->vmx.pending_dbg);
+    nrs->vmx.activity_state =3D vmread_unsafe(GUEST_ACTIVITY_STATE);
+    nrs->vmx.interruptibility_info =3D vmread_unsafe(GUEST_INTERRUPTIBILIT=
Y_INFO);
+    nrs->vmx.pending_dbg =3D vmread_unsafe(GUEST_PENDING_DBG_EXCEPTIONS);
=20
     if ( cpu_has_vmx_virtual_intr_delivery )
-        __vmread(GUEST_INTR_STATUS, &nrs->vmx.interrupt_status);
+        nrs->vmx.interrupt_status =3D vmread_unsafe(GUEST_INTR_STATUS);
=20
     vmx_vmcs_exit(v);
 }
@@ -1896,7 +1888,7 @@ static void cf_check vmx_update_guest_efer(struct vcp=
u *v)
      * The intended guest running mode is derived from VM_ENTRY_IA32E_MODE=
,
      * which (architecturally) is the guest's LMA setting.
      */
-    __vmread(VM_ENTRY_CONTROLS, &entry_ctls);
+    entry_ctls =3D vmread_unsafe(VM_ENTRY_CONTROLS);
=20
     entry_ctls &=3D ~VM_ENTRY_IA32E_MODE;
     if ( guest_efer & EFER_LMA )
@@ -2063,9 +2055,10 @@ static void cf_check vmx_inject_event(const struct x=
86_event *event)
         {
             unsigned long val;
=20
-            __vmread(GUEST_DR7, &val);
+            val =3D vmread_unsafe(GUEST_DR7);
             __vmwrite(GUEST_DR7, val & ~DR_GENERAL_DETECT);
-            __vmread(GUEST_IA32_DEBUGCTL, &val);
+
+            val =3D vmread_unsafe(GUEST_IA32_DEBUGCTL);
             __vmwrite(GUEST_IA32_DEBUGCTL, val & ~IA32_DEBUGCTLMSR_LBR);
         }
         if ( cpu_has_monitor_trap_flag )
@@ -2089,7 +2082,7 @@ static void cf_check vmx_inject_event(const struct x8=
6_event *event)
     if ( nestedhvm_vcpu_in_guestmode(curr) )
         intr_info =3D vcpu_2_nvmx(curr).intr.intr_info;
     else
-        __vmread(VM_ENTRY_INTR_INFO, &intr_info);
+        intr_info =3D vmread_unsafe(VM_ENTRY_INTR_INFO);
=20
     if ( unlikely(intr_info & INTR_INFO_VALID_MASK) &&
          (MASK_EXTR(intr_info, INTR_INFO_INTR_TYPE_MASK) =3D=3D X86_ET_HW_=
EXC) )
@@ -2125,12 +2118,9 @@ static void cf_check vmx_inject_event(const struct x=
86_event *event)
=20
 static bool cf_check vmx_event_pending(const struct vcpu *v)
 {
-    unsigned long intr_info;
-
     ASSERT(v =3D=3D current);
-    __vmread(VM_ENTRY_INTR_INFO, &intr_info);
=20
-    return intr_info & INTR_INFO_VALID_MASK;
+    return vmread_unsafe(VM_ENTRY_INTR_INFO) & INTR_INFO_VALID_MASK;
 }
=20
 static void cf_check vmx_set_info_guest(struct vcpu *v)
@@ -2149,7 +2139,7 @@ static void cf_check vmx_set_info_guest(struct vcpu *=
v)
      * to set the GUEST_PENDING_DBG_EXCEPTIONS.BS here incurs
      * immediately vmexit and hence make no progress.
      */
-    __vmread(GUEST_INTERRUPTIBILITY_INFO, &intr_shadow);
+    intr_shadow =3D vmread_unsafe(GUEST_INTERRUPTIBILITY_INFO);
     if ( v->domain->debugger_attached &&
          (v->arch.user_regs.eflags & X86_EFLAGS_TF) &&
          (intr_shadow & VMX_INTR_SHADOW_STI) )
@@ -2178,7 +2168,7 @@ static u8 set_svi(int isr)
     if ( isr < 0 )
         isr =3D 0;
=20
-    __vmread(GUEST_INTR_STATUS, &status);
+    status =3D vmread_unsafe(GUEST_INTR_STATUS);
     old =3D status >> VMX_GUEST_INTR_STATUS_SVI_OFFSET;
     if ( isr !=3D old )
     {
@@ -2518,9 +2508,9 @@ static bool cf_check vmx_vcpu_emulate_ve(struct vcpu =
*v)
     veinfo->eptp_index =3D vcpu_altp2m(v).p2midx;
=20
     vmx_vmcs_enter(v);
-    __vmread(EXIT_QUALIFICATION, &veinfo->exit_qualification);
-    __vmread(GUEST_LINEAR_ADDRESS, &veinfo->gla);
-    __vmread(GUEST_PHYSICAL_ADDRESS, &veinfo->gpa);
+    veinfo->exit_qualification =3D vmread_unsafe(EXIT_QUALIFICATION);
+    veinfo->gla =3D vmread_unsafe(GUEST_LINEAR_ADDRESS);
+    veinfo->gpa =3D vmread_unsafe(GUEST_PHYSICAL_ADDRESS);
     vmx_vmcs_exit(v);
=20
     hvm_inject_hw_exception(X86_EXC_VE,
@@ -2541,8 +2531,8 @@ static bool cf_check vmx_get_pending_event(
     unsigned long intr_info, error_code;
=20
     vmx_vmcs_enter(v);
-    __vmread(VM_ENTRY_INTR_INFO, &intr_info);
-    __vmread(VM_ENTRY_EXCEPTION_ERROR_CODE, &error_code);
+    intr_info =3D vmread_unsafe(VM_ENTRY_INTR_INFO);
+    error_code =3D vmread_unsafe(VM_ENTRY_EXCEPTION_ERROR_CODE);
     vmx_vmcs_exit(v);
=20
     if ( !(intr_info & INTR_INFO_VALID_MASK) )
@@ -2739,11 +2729,11 @@ static uint64_t cf_check vmx_get_reg(struct vcpu *v=
, unsigned int reg)
     {
     case MSR_SPEC_CTRL:
         ASSERT(cpu_has_vmx_virt_spec_ctrl);
-        __vmread(SPEC_CTRL_SHADOW, &val);
+        val =3D vmread_unsafe(SPEC_CTRL_SHADOW);
         break;
=20
     case MSR_IA32_BNDCFGS:
-        __vmread(GUEST_BNDCFGS, &val);
+        val =3D vmread_unsafe(GUEST_BNDCFGS);
         break;
=20
     default:
@@ -3161,9 +3151,8 @@ void __init vmx_fill_funcs(void)
  */
 static int get_instruction_length(void)
 {
-    unsigned long len;
+    unsigned long len =3D vmread_unsafe(VM_EXIT_INSTRUCTION_LEN); /* Safe:=
 callers audited */
=20
-    __vmread(VM_EXIT_INSTRUCTION_LEN, &len); /* Safe: callers audited */
     BUG_ON((len < 1) || (len > MAX_INST_LEN));
     return len;
 }
@@ -3176,7 +3165,7 @@ void update_guest_eip(void)
     regs->rip +=3D get_instruction_length(); /* Safe: callers audited */
     regs->eflags &=3D ~X86_EFLAGS_RF;
=20
-    __vmread(GUEST_INTERRUPTIBILITY_INFO, &x);
+    x =3D vmread_unsafe(GUEST_INTERRUPTIBILITY_INFO);
     if ( x & (VMX_INTR_SHADOW_STI | VMX_INTR_SHADOW_MOV_SS) )
     {
         x &=3D ~(VMX_INTR_SHADOW_STI | VMX_INTR_SHADOW_MOV_SS);
@@ -3424,21 +3413,21 @@ static int cf_check vmx_msr_read_intercept(
     switch ( msr )
     {
     case MSR_IA32_SYSENTER_CS:
-        __vmread(GUEST_SYSENTER_CS, msr_content);
+        *msr_content =3D vmread_unsafe(GUEST_SYSENTER_CS);
         break;
     case MSR_IA32_SYSENTER_ESP:
-        __vmread(GUEST_SYSENTER_ESP, msr_content);
+        *msr_content =3D vmread_unsafe(GUEST_SYSENTER_ESP);
         break;
     case MSR_IA32_SYSENTER_EIP:
-        __vmread(GUEST_SYSENTER_EIP, msr_content);
+        *msr_content =3D vmread_unsafe(GUEST_SYSENTER_EIP);
         break;
=20
     case MSR_FS_BASE:
-        __vmread(GUEST_FS_BASE, msr_content);
+        *msr_content =3D vmread_unsafe(GUEST_FS_BASE);
         break;
=20
     case MSR_GS_BASE:
-        __vmread(GUEST_GS_BASE, msr_content);
+        *msr_content =3D vmread_unsafe(GUEST_GS_BASE);
         break;
=20
     case MSR_SHADOW_GS_BASE:
@@ -3462,7 +3451,7 @@ static int cf_check vmx_msr_read_intercept(
         break;
=20
     case MSR_IA32_DEBUGCTLMSR:
-        __vmread(GUEST_IA32_DEBUGCTL, msr_content);
+        *msr_content =3D vmread_unsafe(GUEST_IA32_DEBUGCTL);
         break;
=20
     case MSR_IA32_VMX_BASIC...MSR_IA32_VMX_VMFUNC:
@@ -3828,7 +3817,7 @@ static void vmx_do_extint(struct cpu_user_regs *regs)
 {
     unsigned long vector;
=20
-    __vmread(VM_EXIT_INTR_INFO, &vector);
+    vector =3D vmread_unsafe(VM_EXIT_INTR_INFO);
     BUG_ON(!(vector & INTR_INFO_VALID_MASK));
=20
     vector &=3D INTR_INFO_VECTOR_MASK;
@@ -3893,7 +3882,7 @@ static void ept_handle_violation(ept_qual_t q, paddr_=
t gpa)
=20
     if ( q.gla_valid )
     {
-        __vmread(GUEST_LINEAR_ADDRESS, &gla);
+        gla =3D vmread_unsafe(GUEST_LINEAR_ADDRESS);
         npfec.gla_valid =3D 1;
         if( q.gla_fault )
             npfec.kind =3D npfec_kind_with_gla;
@@ -3944,7 +3933,7 @@ static void vmx_failed_vmentry(unsigned int exit_reas=
on,
     struct vcpu *curr =3D current;
=20
     printk("%pv vmentry failure (reason %#x): ", curr, exit_reason);
-    __vmread(EXIT_QUALIFICATION, &exit_qualification);
+    exit_qualification =3D vmread_unsafe(EXIT_QUALIFICATION);
     switch ( failed_vmentry_reason )
     {
     case EXIT_REASON_INVALID_GUEST_STATE:
@@ -4001,13 +3990,12 @@ void vmx_enter_realmode(struct cpu_user_regs *regs)
=20
 static int vmx_handle_eoi_write(void)
 {
-    unsigned long exit_qualification;
+    unsigned long exit_qualification =3D vmread_unsafe(EXIT_QUALIFICATION)=
;
=20
     /*
      * 1. Must be a linear access data write.
      * 2. Data write must be to the EOI register.
      */
-    __vmread(EXIT_QUALIFICATION, &exit_qualification);
     if ( (((exit_qualification >> 12) & 0xf) =3D=3D 1) &&
          ((exit_qualification & 0xfff) =3D=3D APIC_EOI) )
     {
@@ -4033,21 +4021,14 @@ static void vmx_propagate_intr(unsigned long intr)
         .vector =3D MASK_EXTR(intr, INTR_INFO_VECTOR_MASK),
         .type =3D MASK_EXTR(intr, INTR_INFO_INTR_TYPE_MASK),
     };
-    unsigned long tmp;
=20
     if ( intr & INTR_INFO_DELIVER_CODE_MASK )
-    {
-        __vmread(VM_EXIT_INTR_ERROR_CODE, &tmp);
-        event.error_code =3D tmp;
-    }
+        event.error_code =3D vmread_unsafe(VM_EXIT_INTR_ERROR_CODE);
     else
         event.error_code =3D X86_EVENT_NO_EC;
=20
     if ( event.type >=3D X86_ET_SW_INT )
-    {
-        __vmread(VM_EXIT_INSTRUCTION_LEN, &tmp);
-        event.insn_len =3D tmp;
-    }
+        event.insn_len =3D vmread_unsafe(VM_EXIT_INSTRUCTION_LEN);
     else
         event.insn_len =3D 0;
=20
@@ -4071,7 +4052,7 @@ static void vmx_idtv_reinject(unsigned long idtv_info=
)
             {
                 unsigned long ec;
=20
-                __vmread(IDT_VECTORING_ERROR_CODE, &ec);
+                ec =3D vmread_unsafe(IDT_VECTORING_ERROR_CODE);
                 __vmwrite(VM_ENTRY_EXCEPTION_ERROR_CODE, ec);
             }
         }
@@ -4086,7 +4067,7 @@ static void vmx_idtv_reinject(unsigned long idtv_info=
)
         {
             unsigned long intr_info;
=20
-            __vmread(GUEST_INTERRUPTIBILITY_INFO, &intr_info);
+            intr_info =3D vmread_unsafe(GUEST_INTERRUPTIBILITY_INFO);
             __vmwrite(GUEST_INTERRUPTIBILITY_INFO,
                       intr_info & ~VMX_INTR_SHADOW_NMI);
         }
@@ -4111,8 +4092,8 @@ static void vmx_handle_descriptor_access(uint32_t exi=
t_reason)
     uint64_t exit_qualification;
     unsigned int desc;
=20
-    __vmread(EXIT_QUALIFICATION, &exit_qualification);
-    __vmread(VMX_INSTRUCTION_INFO, &instr_info);
+    exit_qualification =3D vmread_unsafe(EXIT_QUALIFICATION);
+    instr_info =3D vmread_unsafe(VMX_INSTRUCTION_INFO);
=20
     if ( exit_reason =3D=3D EXIT_REASON_ACCESS_GDTR_OR_IDTR )
     {
@@ -4137,7 +4118,7 @@ static int vmx_handle_apic_write(void)
     unsigned long exit_qualification;
=20
     ASSERT(cpu_has_vmx_apic_reg_virt);
-    __vmread(EXIT_QUALIFICATION, &exit_qualification);
+    exit_qualification =3D vmread_unsafe(EXIT_QUALIFICATION);
=20
     return vlapic_apicv_write(current, exit_qualification & 0xfff);
 }
@@ -4146,7 +4127,7 @@ static void undo_nmis_unblocked_by_iret(void)
 {
     unsigned long guest_info;
=20
-    __vmread(GUEST_INTERRUPTIBILITY_INFO, &guest_info);
+    guest_info =3D vmread_unsafe(GUEST_INTERRUPTIBILITY_INFO);
     __vmwrite(GUEST_INTERRUPTIBILITY_INFO,
               guest_info | VMX_INTR_SHADOW_NMI);
 }
@@ -4159,12 +4140,12 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_=
regs *regs)
     struct vcpu *v =3D current;
     struct domain *currd =3D v->domain;
=20
-    __vmread(GUEST_RIP,    &regs->rip);
-    __vmread(GUEST_RSP,    &regs->rsp);
-    __vmread(GUEST_RFLAGS, &regs->rflags);
+    regs->rip =3D vmread_unsafe(GUEST_RIP);
+    regs->rsp =3D vmread_unsafe(GUEST_RSP);
+    regs->rflags =3D vmread_unsafe(GUEST_RFLAGS);
=20
     if ( hvm_long_mode_active(v) )
-        __vmread(GUEST_CS_AR_BYTES, &cs_ar_bytes);
+        cs_ar_bytes =3D vmread_unsafe(GUEST_CS_AR_BYTES);
=20
     hvm_sanitize_regs_fields(regs, !(cs_ar_bytes & X86_SEG_AR_CS_LM_ACTIVE=
));
=20
@@ -4174,17 +4155,17 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_=
regs *regs)
          * Xen allows the guest to modify some CR4 bits directly, update c=
ached
          * values to match.
          */
-        __vmread(GUEST_CR4, &v->arch.hvm.hw_cr[4]);
+        v->arch.hvm.hw_cr[4] =3D vmread_unsafe(GUEST_CR4);
         v->arch.hvm.guest_cr[4] &=3D v->arch.hvm.vmx.cr4_host_mask;
         v->arch.hvm.guest_cr[4] |=3D (v->arch.hvm.hw_cr[4] &
                                     ~v->arch.hvm.vmx.cr4_host_mask);
=20
-        __vmread(GUEST_CR3, &v->arch.hvm.hw_cr[3]);
+        v->arch.hvm.hw_cr[3] =3D vmread_unsafe(GUEST_CR3);
         if ( vmx_unrestricted_guest(v) || hvm_paging_enabled(v) )
             v->arch.hvm.guest_cr[3] =3D v->arch.hvm.hw_cr[3];
     }
=20
-    __vmread(VM_EXIT_REASON, &exit_reason);
+    exit_reason =3D vmread_unsafe(VM_EXIT_REASON);
=20
     if ( hvm_long_mode_active(v) )
         TRACE_TIME(TRC_HVM_VMX_EXIT64, exit_reason, regs->rip, regs->rip >=
> 32);
@@ -4200,7 +4181,7 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_re=
gs *regs)
         vmx_do_extint(regs);
         break;
     case EXIT_REASON_EXCEPTION_NMI:
-        __vmread(VM_EXIT_INTR_INFO, &intr_info);
+        intr_info =3D vmread_unsafe(VM_EXIT_INTR_INFO);
         BUG_ON(!(intr_info & INTR_INFO_VALID_MASK));
         vector =3D intr_info & INTR_INFO_VECTOR_MASK;
         if ( vector =3D=3D X86_EXC_MC )
@@ -4237,12 +4218,12 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_=
regs *regs)
=20
         if ( v->arch.hvm.vmx.secondary_exec_control &
             SECONDARY_EXEC_ENABLE_VIRT_EXCEPTIONS )
-            __vmread(EPTP_INDEX, &idx);
+        {
+            idx =3D vmread_unsafe(EPTP_INDEX);
+        }
         else
         {
-            unsigned long eptp;
-
-            __vmread(EPT_POINTER, &eptp);
+            unsigned long eptp =3D vmread_unsafe(EPT_POINTER);
=20
             if ( (idx =3D p2m_find_altp2m_by_eptp(v->domain, eptp)) =3D=3D
                  INVALID_ALTP2M )
@@ -4259,10 +4240,7 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_r=
egs *regs)
=20
     if ( unlikely(currd->arch.monitor.vmexit_enabled) )
     {
-        int rc;
-
-        __vmread(EXIT_QUALIFICATION, &exit_qualification);
-        rc =3D hvm_monitor_vmexit(exit_reason, exit_qualification);
+        int rc =3D hvm_monitor_vmexit(exit_reason, vmread_unsafe(EXIT_QUAL=
IFICATION));
         if ( rc < 0 )
             goto exit_and_crash;
         if ( rc )
@@ -4327,7 +4305,7 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_re=
gs *regs)
=20
     hvm_maybe_deassert_evtchn_irq();
=20
-    __vmread(IDT_VECTORING_INFO, &idtv_info);
+    idtv_info =3D vmread_unsafe(IDT_VECTORING_INFO);
     if ( exit_reason !=3D EXIT_REASON_TASK_SWITCH )
         vmx_idtv_reinject(idtv_info);
=20
@@ -4362,7 +4340,7 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_re=
gs *regs)
              * Updates DR6 where debugger can peek (See 3B 23.2.1,
              * Table 23-1, "Exit Qualification for Debug Exceptions").
              */
-            __vmread(EXIT_QUALIFICATION, &exit_qualification);
+            exit_qualification =3D vmread_unsafe(EXIT_QUALIFICATION);
             TRACE(TRC_HVM_TRAP_DEBUG, exit_qualification);
             __restore_debug_registers(v);
             write_debugreg(6, exit_qualification | DR_STATUS_RESERVED_ONE)=
;
@@ -4388,29 +4366,25 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_=
regs *regs)
              */
             if ( unlikely(regs->eflags & X86_EFLAGS_TF) )
             {
-                unsigned long int_info;
-
-                __vmread(GUEST_INTERRUPTIBILITY_INFO, &int_info);
+                unsigned long int_info =3D vmread_unsafe(GUEST_INTERRUPTIB=
ILITY_INFO);
=20
                 if ( int_info & (VMX_INTR_SHADOW_STI | VMX_INTR_SHADOW_MOV=
_SS) )
                 {
-                    unsigned long pending_dbg;
+                    unsigned long exc =3D vmread_unsafe(GUEST_PENDING_DBG_=
EXCEPTIONS);
=20
-                    __vmread(GUEST_PENDING_DBG_EXCEPTIONS, &pending_dbg);
-                    __vmwrite(GUEST_PENDING_DBG_EXCEPTIONS,
-                              pending_dbg | DR_STEP);
+                    __vmwrite(GUEST_PENDING_DBG_EXCEPTIONS, exc | DR_STEP)=
;
                 }
             }
=20
             if ( !v->domain->debugger_attached )
             {
                 unsigned long insn_len =3D 0;
-                int rc;
                 unsigned long trap_type =3D MASK_EXTR(intr_info,
                                                     INTR_INFO_INTR_TYPE_MA=
SK);
+                int rc;
=20
                 if ( trap_type >=3D X86_ET_SW_INT )
-                    __vmread(VM_EXIT_INSTRUCTION_LEN, &insn_len);
+                    insn_len =3D vmread_unsafe(VM_EXIT_INSTRUCTION_LEN);
=20
                 rc =3D hvm_monitor_debug(regs->rip,
                                        HVM_MONITOR_DEBUG_EXCEPTION,
@@ -4428,10 +4402,9 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_r=
egs *regs)
             TRACE(TRC_HVM_TRAP, vector);
             if ( !v->domain->debugger_attached )
             {
-                unsigned long insn_len;
+                unsigned long insn_len =3D vmread_unsafe(VM_EXIT_INSTRUCTI=
ON_LEN);
                 int rc;
=20
-                __vmread(VM_EXIT_INSTRUCTION_LEN, &insn_len);
                 rc =3D hvm_monitor_debug(regs->rip,
                                        HVM_MONITOR_SOFTWARE_BREAKPOINT,
                                        X86_ET_SW_EXC,
@@ -4454,8 +4427,8 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_re=
gs *regs)
             vmx_fpu_dirty_intercept();
             break;
         case X86_EXC_PF:
-            __vmread(EXIT_QUALIFICATION, &exit_qualification);
-            __vmread(VM_EXIT_INTR_ERROR_CODE, &ecode);
+            exit_qualification =3D vmread_unsafe(EXIT_QUALIFICATION);
+            ecode =3D vmread_unsafe(VM_EXIT_INTR_ERROR_CODE);
             regs->error_code =3D ecode;
=20
             HVM_DBG_LOG(DBG_LEVEL_VMMU,
@@ -4522,7 +4495,7 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_re=
gs *regs)
         };
         unsigned int inst_len, source;
=20
-        __vmread(EXIT_QUALIFICATION, &exit_qualification);
+        exit_qualification =3D vmread_unsafe(EXIT_QUALIFICATION);
         source =3D (exit_qualification >> 30) & 3;
         /* Vectored event should fill in interrupt information. */
         WARN_ON((source =3D=3D 3) && !(idtv_info & INTR_INFO_VALID_MASK));
@@ -4536,9 +4509,9 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_re=
gs *regs)
                      > 3)) /* IntrType > 3? */
             ? get_instruction_length() /* Safe: SDM 3B 23.2.4 */ : 0;
         if ( (source =3D=3D 3) && (idtv_info & INTR_INFO_DELIVER_CODE_MASK=
) )
-            __vmread(IDT_VECTORING_ERROR_CODE, &ecode);
+            ecode =3D vmread_unsafe(IDT_VECTORING_ERROR_CODE);
         else
-             ecode =3D -1;
+            ecode =3D -1;
=20
         hvm_task_switch(exit_qualification, reasons[source], ecode, inst_l=
en,
                         0 /* EFLAGS.RF already updated. */);
@@ -4565,7 +4538,7 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_re=
gs *regs)
         break;
     case EXIT_REASON_INVLPG:
         update_guest_eip(); /* Safe: INVLPG */
-        __vmread(EXIT_QUALIFICATION, &exit_qualification);
+        exit_qualification =3D vmread_unsafe(EXIT_QUALIFICATION);
         vmx_invlpg_intercept(exit_qualification);
         break;
     case EXIT_REASON_RDTSCP:
@@ -4591,13 +4564,13 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_=
regs *regs)
=20
     case EXIT_REASON_CR_ACCESS:
     {
-        __vmread(EXIT_QUALIFICATION, &exit_qualification);
+        exit_qualification =3D vmread_unsafe(EXIT_QUALIFICATION);
         if ( vmx_cr_access(exit_qualification) =3D=3D X86EMUL_OKAY )
             update_guest_eip(); /* Safe: MOV Cn, LMSW, CLTS */
         break;
     }
     case EXIT_REASON_DR_ACCESS:
-        __vmread(EXIT_QUALIFICATION, &exit_qualification);
+        exit_qualification =3D vmread_unsafe(EXIT_QUALIFICATION);
         vmx_dr_access(exit_qualification, regs);
         break;
     case EXIT_REASON_MSR_READ:
@@ -4671,7 +4644,7 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_re=
gs *regs)
         break;
=20
     case EXIT_REASON_EOI_INDUCED:
-        __vmread(EXIT_QUALIFICATION, &exit_qualification);
+        exit_qualification =3D vmread_unsafe(EXIT_QUALIFICATION);
=20
         ASSERT(cpu_has_vmx_virtual_intr_delivery);
=20
@@ -4695,7 +4668,7 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_re=
gs *regs)
         unsigned int bytes;
         int rc;
=20
-        __vmread(EXIT_QUALIFICATION, &io_qual.raw);
+        io_qual.raw =3D vmread_unsafe(EXIT_QUALIFICATION);
         bytes =3D io_qual.size + 1;
=20
         rc =3D hvm_monitor_io(io_qual.port, bytes, io_qual.in, io_qual.str=
);
@@ -4728,10 +4701,9 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_r=
egs *regs)
=20
     case EXIT_REASON_EPT_VIOLATION:
     {
-        paddr_t gpa;
+        paddr_t gpa =3D vmread_unsafe(GUEST_PHYSICAL_ADDRESS);
=20
-        __vmread(GUEST_PHYSICAL_ADDRESS, &gpa);
-        __vmread(EXIT_QUALIFICATION, &exit_qualification);
+        exit_qualification =3D vmread_unsafe(EXIT_QUALIFICATION);
=20
         if ( unlikely(exit_qualification & INTR_INFO_NMI_UNBLOCKED_BY_IRET=
) &&
              !(idtv_info & INTR_INFO_VALID_MASK) )
@@ -4743,9 +4715,8 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_re=
gs *regs)
=20
     case EXIT_REASON_EPT_MISCONFIG:
     {
-        paddr_t gpa;
+        paddr_t gpa =3D vmread_unsafe(GUEST_PHYSICAL_ADDRESS);
=20
-        __vmread(GUEST_PHYSICAL_ADDRESS, &gpa);
         if ( !ept_handle_misconfig(gpa) )
             goto exit_and_crash;
         break;
@@ -4781,7 +4752,7 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_re=
gs *regs)
         break;
=20
     case EXIT_REASON_PML_FULL:
-        __vmread(EXIT_QUALIFICATION, &exit_qualification);
+        exit_qualification =3D vmread_unsafe(EXIT_QUALIFICATION);
=20
         if ( unlikely(exit_qualification & INTR_INFO_NMI_UNBLOCKED_BY_IRET=
) &&
              !(idtv_info & INTR_INFO_VALID_MASK) )
@@ -4804,7 +4775,7 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_re=
gs *regs)
         break;
=20
     case EXIT_REASON_NOTIFY:
-        __vmread(EXIT_QUALIFICATION, &exit_qualification);
+        exit_qualification =3D vmread_unsafe(EXIT_QUALIFICATION);
=20
         if ( unlikely(exit_qualification & NOTIFY_VM_CONTEXT_INVALID) )
         {
diff --git a/xen/arch/x86/hvm/vmx/vvmx.c b/xen/arch/x86/hvm/vmx/vvmx.c
index ceb5e5a322..3ae65683ee 100644
--- a/xen/arch/x86/hvm/vmx/vvmx.c
+++ b/xen/arch/x86/hvm/vmx/vvmx.c
@@ -400,8 +400,7 @@ static int decode_vmx_inst(struct cpu_user_regs *regs,
     unsigned long base, index, seg_base, disp, offset;
     int scale, size;
=20
-    __vmread(VMX_INSTRUCTION_INFO, &offset);
-    info.word =3D offset;
+    info.word =3D vmread_unsafe(VMX_INSTRUCTION_INFO);
=20
     if ( info.fields.memreg ) {
         decode->type =3D VMX_INST_MEMREG_TYPE_REG;
@@ -428,7 +427,7 @@ static int decode_vmx_inst(struct cpu_user_regs *regs,
=20
         scale =3D 1 << info.fields.scaling;
=20
-        __vmread(EXIT_QUALIFICATION, &disp);
+        disp =3D vmread_unsafe(EXIT_QUALIFICATION);
=20
         size =3D 1 << (info.fields.addr_size + 1);
=20
@@ -997,7 +996,7 @@ static void vvmcs_to_shadow_bulk(struct vcpu *v, unsign=
ed int n,
=20
     virtual_vmcs_enter(v);
     for ( i =3D 0; i < n; i++ )
-        __vmread(field[i], &value[i]);
+        value[i] =3D vmread_unsafe(field[i]);
     virtual_vmcs_exit(v);
=20
     for ( i =3D 0; i < n; i++ )
@@ -1012,7 +1011,7 @@ fallback:
=20
 static inline void shadow_to_vvmcs(const struct vcpu *v, unsigned int fiel=
d)
 {
-    unsigned long value;
+    unsigned long value =3D 0;
=20
     if ( vmread_safe(field, &value) =3D=3D 0 )
         set_vvmcs(v, field, value);
@@ -1036,7 +1035,7 @@ static void shadow_to_vvmcs_bulk(struct vcpu *v, unsi=
gned int n,
     }
=20
     for ( i =3D 0; i < n; i++ )
-        __vmread(field[i], &value[i]);
+        value[i] =3D vmread_unsafe(field[i]);
=20
     virtual_vmcs_enter(v);
     for ( i =3D 0; i < n; i++ )
@@ -1405,7 +1404,7 @@ static void nvmx_update_apicv(struct vcpu *v)
     }
     else
        /* Keep previous SVI if there's any. */
-       __vmread(GUEST_INTR_STATUS, &status);
+       status =3D vmread_unsafe(GUEST_INTR_STATUS);
=20
     rvi =3D vlapic_has_pending_irq(v);
     if ( rvi !=3D -1 )
@@ -1687,7 +1686,6 @@ static int nvmx_handle_vmresume(struct cpu_user_regs =
*regs)
     bool launched;
     struct vcpu *v =3D current;
     struct nestedvmx *nvmx =3D &vcpu_2_nvmx(v);
-    unsigned long intr_shadow;
     int rc;
=20
     if ( !vvmcx_valid(v) )
@@ -1696,8 +1694,7 @@ static int nvmx_handle_vmresume(struct cpu_user_regs =
*regs)
         return X86EMUL_OKAY;       =20
     }
=20
-    __vmread(GUEST_INTERRUPTIBILITY_INFO, &intr_shadow);
-    if ( intr_shadow & VMX_INTR_SHADOW_MOV_SS )
+    if ( vmread_unsafe(GUEST_INTERRUPTIBILITY_INFO) & VMX_INTR_SHADOW_MOV_=
SS )
     {
         vmfail_valid(regs, VMX_INSN_VMENTRY_BLOCKED_BY_MOV_SS);
         return X86EMUL_OKAY;
@@ -1723,7 +1720,6 @@ static int nvmx_handle_vmlaunch(struct cpu_user_regs =
*regs)
     bool launched;
     struct vcpu *v =3D current;
     struct nestedvmx *nvmx =3D &vcpu_2_nvmx(v);
-    unsigned long intr_shadow;
     int rc;
=20
     if ( !vvmcx_valid(v) )
@@ -1732,8 +1728,7 @@ static int nvmx_handle_vmlaunch(struct cpu_user_regs =
*regs)
         return X86EMUL_OKAY;
     }
=20
-    __vmread(GUEST_INTERRUPTIBILITY_INFO, &intr_shadow);
-    if ( intr_shadow & VMX_INTR_SHADOW_MOV_SS )
+    if ( vmread_unsafe(GUEST_INTERRUPTIBILITY_INFO) & VMX_INTR_SHADOW_MOV_=
SS )
     {
         vmfail_valid(regs, VMX_INSN_VMENTRY_BLOCKED_BY_MOV_SS);
         return X86EMUL_OKAY;
@@ -2355,7 +2350,7 @@ int cf_check nvmx_hap_walk_L1_p2m(
=20
     vmx_vmcs_enter(v);
=20
-    __vmread(EXIT_QUALIFICATION, &exit_qual);
+    exit_qual =3D vmread_unsafe(EXIT_QUALIFICATION);
     rc =3D nept_translate_l2ga(v, L2_gpa, page_order, rwx_rights, &gfn, p2=
m_acc,
                              &exit_qual, &exit_reason);
     switch ( rc )
@@ -2391,7 +2386,7 @@ void nvmx_idtv_handling(void)
     struct nestedvcpu *nvcpu =3D &vcpu_nestedhvm(v);
     unsigned long idtv_info, reason;
=20
-    __vmread(IDT_VECTORING_INFO, &idtv_info);
+    idtv_info =3D vmread_unsafe(IDT_VECTORING_INFO);
     if ( likely(!(idtv_info & INTR_INFO_VALID_MASK)) )
         return;
=20
@@ -2399,7 +2394,7 @@ void nvmx_idtv_handling(void)
      * If L0 can solve the fault that causes idt vectoring, it should
      * be reinjected, otherwise, pass to L1.
      */
-    __vmread(VM_EXIT_REASON, &reason);
+    reason =3D vmread_unsafe(VM_EXIT_REASON);
     if ( (uint16_t)reason !=3D EXIT_REASON_EPT_VIOLATION ?
          !(nvmx->intr.intr_info & INTR_INFO_VALID_MASK) :
          !nvcpu->nv_vmexit_pending )
@@ -2407,7 +2402,7 @@ void nvmx_idtv_handling(void)
         __vmwrite(VM_ENTRY_INTR_INFO, idtv_info & ~INTR_INFO_RESVD_BITS_MA=
SK);
         if ( idtv_info & INTR_INFO_DELIVER_CODE_MASK )
         {
-            __vmread(IDT_VECTORING_ERROR_CODE, &reason);
+            reason =3D vmread_unsafe(IDT_VECTORING_ERROR_CODE);
             __vmwrite(VM_ENTRY_EXCEPTION_ERROR_CODE, reason);
         }
         /*
@@ -2418,7 +2413,7 @@ void nvmx_idtv_handling(void)
          * This means EXIT_INSTRUCTION_LEN is always valid here, for
          * software interrupts both injected by L1, and generated in L2.
          */
-        __vmread(VM_EXIT_INSTRUCTION_LEN, &reason);
+        reason =3D vmread_unsafe(VM_EXIT_INSTRUCTION_LEN);
         __vmwrite(VM_ENTRY_INSTRUCTION_LEN, reason);
    }
 }
@@ -2452,7 +2447,7 @@ int nvmx_n2_vmexit_handler(struct cpu_user_regs *regs=
,
         u64 exec_bitmap;
         int vector;
=20
-        __vmread(VM_EXIT_INTR_INFO, &intr_info);
+        intr_info =3D vmread_unsafe(VM_EXIT_INTR_INFO);
         vector =3D intr_info & INTR_INFO_VECTOR_MASK;
         /*
          * decided by L0 and L1 exception bitmap, if the vetor is set by
@@ -2531,7 +2526,7 @@ int nvmx_n2_vmexit_handler(struct cpu_user_regs *regs=
,
             unsigned long qual;
             u16 port, size;
=20
-            __vmread(EXIT_QUALIFICATION, &qual);
+            qual =3D vmread_unsafe(EXIT_QUALIFICATION);
             port =3D qual >> 16;
             size =3D (qual & 7) + 1;
             do {
@@ -2638,7 +2633,7 @@ int nvmx_n2_vmexit_handler(struct cpu_user_regs *regs=
,
         cr_access_qual_t qual;
         u32 mask =3D 0;
=20
-        __vmread(EXIT_QUALIFICATION, &qual.raw);
+        qual.raw =3D vmread_unsafe(EXIT_QUALIFICATION);
         /* also according to guest exec_control */
         ctrl =3D __n2_exec_control(v);
=20
@@ -2680,7 +2675,7 @@ int nvmx_n2_vmexit_handler(struct cpu_user_regs *regs=
,
                 {
                     u64 cr0_gh_mask =3D get_vvmcs(v, CR0_GUEST_HOST_MASK);
=20
-                    __vmread(CR0_READ_SHADOW, &old_val);
+                    old_val =3D vmread_unsafe(CR0_READ_SHADOW);
                     changed_bits =3D old_val ^ val;
                     if ( changed_bits & cr0_gh_mask )
                         nvcpu->nv_vmexit_pending =3D 1;
@@ -2696,7 +2691,7 @@ int nvmx_n2_vmexit_handler(struct cpu_user_regs *regs=
,
                 {
                     u64 cr4_gh_mask =3D get_vvmcs(v, CR4_GUEST_HOST_MASK);
=20
-                    __vmread(CR4_READ_SHADOW, &old_val);
+                    old_val =3D vmread_unsafe(CR4_READ_SHADOW);
                     changed_bits =3D old_val ^ val;
                     if ( changed_bits & cr4_gh_mask )
                         nvcpu->nv_vmexit_pending =3D 1;
@@ -2732,7 +2727,7 @@ int nvmx_n2_vmexit_handler(struct cpu_user_regs *regs=
,
             {
                 u64 cr0_gh_mask =3D get_vvmcs(v, CR0_GUEST_HOST_MASK);
=20
-                __vmread(CR0_READ_SHADOW, &old_val);
+                old_val =3D vmread_unsafe(CR0_READ_SHADOW);
                 old_val &=3D X86_CR0_PE|X86_CR0_MP|X86_CR0_EM|X86_CR0_TS;
                 val =3D qual.lmsw_data &
                       (X86_CR0_PE|X86_CR0_MP|X86_CR0_EM|X86_CR0_TS);
diff --git a/xen/arch/x86/include/asm/domain.h b/xen/arch/x86/include/asm/d=
omain.h
index 6b877e33a1..ffe9acd75d 100644
--- a/xen/arch/x86/include/asm/domain.h
+++ b/xen/arch/x86/include/asm/domain.h
@@ -595,7 +595,7 @@ struct arch_vcpu
=20
     /* Debug registers. */
     unsigned long dr[4];
-    unsigned long dr7; /* Ideally int, but __vmread() needs long. */
+    unsigned long dr7; /* Ideally int, but vmread_unsafe() needs unsigned =
long. */
     unsigned int dr6;
=20
     /* other state */
diff --git a/xen/arch/x86/include/asm/hvm/vmx/vmx.h b/xen/arch/x86/include/=
asm/hvm/vmx/vmx.h
index 33d3d43a38..c96e9f4711 100644
--- a/xen/arch/x86/include/asm/hvm/vmx/vmx.h
+++ b/xen/arch/x86/include/asm/hvm/vmx/vmx.h
@@ -320,16 +320,40 @@ static always_inline void __vmpclear(u64 addr)
     BUG();
 }
=20
-static always_inline void __vmread(unsigned long field, unsigned long *val=
ue)
+static always_inline unsigned long vmread_unsafe(unsigned long field)
 {
-    asm volatile ( "vmread %1, %0\n\t"
-                   /* CF=3D=3D1 or ZF=3D=3D1 --> BUG() */
-                   UNLIKELY_START(be, vmread)
-                   _ASM_BUGFRAME_TEXT(0)
-                   UNLIKELY_END_SECTION
-                   : "=3Drm" (*value)
-                   : "r" (field),
-                     _ASM_BUGFRAME_INFO(BUGFRAME_bug, __LINE__, __FILE__, =
0) );
+    unsigned long value;
+
+    asm volatile ( "vmread %[field], %[value]\n\t"
+                   "jc 1f\n\t"
+                   "jz 1f\n\t"
+                   "jmp 2f\n\t"
+                   "1:\n\t"
+                   "    ud2\n\t"
+                   "2:"
+                   : [value] "=3Drm" (value)
+                   : [field] "r" (field) );
+
+    return value;
+}
+
+static inline enum vmx_insn_errno vmread_safe(unsigned long field,
+                                              unsigned long *value)
+{
+    asm goto ( "vmread %[field], %[value]\n\t"
+               "jc %l[vmfail_invalid]\n\t"
+               "jz %l[vmfail_error]"
+               :
+               : [field] "r" (field), [value] "m" (*value)
+               :
+               : vmfail_invalid, vmfail_error );
+    return VMX_INSN_SUCCEED;
+
+ vmfail_invalid:
+    return VMX_INSN_FAIL_INVALID;
+
+ vmfail_error:
+    return vmread_unsafe(VM_INSTRUCTION_ERROR);
 }
=20
 static always_inline void __vmwrite(unsigned long field, unsigned long val=
ue)
@@ -346,33 +370,9 @@ static always_inline void __vmwrite(unsigned long fiel=
d, unsigned long value)
     BUG();
 }
=20
-static inline enum vmx_insn_errno vmread_safe(unsigned long field,
-                                              unsigned long *value)
-{
-    unsigned long ret =3D VMX_INSN_SUCCEED;
-    bool fail_invalid, fail_valid;
-
-    asm volatile ( "vmread %[field], %[value]\n\t"
-                   ASM_FLAG_OUT(, "setc %[invalid]\n\t")
-                   ASM_FLAG_OUT(, "setz %[valid]\n\t")
-                   : ASM_FLAG_OUT("=3D@ccc", [invalid] "=3Drm") (fail_inva=
lid),
-                     ASM_FLAG_OUT("=3D@ccz", [valid] "=3Drm") (fail_valid)=
,
-                     [value] "=3Drm" (*value)
-                   : [field] "r" (field) );
-
-    if ( unlikely(fail_invalid) )
-        ret =3D VMX_INSN_FAIL_INVALID;
-    else if ( unlikely(fail_valid) )
-        __vmread(VM_INSTRUCTION_ERROR, &ret);
-
-    return ret;
-}
-
 static inline enum vmx_insn_errno vmwrite_safe(unsigned long field,
                                                unsigned long value)
 {
-    unsigned long ret;
-
     asm goto ( "vmwrite %[value], %[field]\n\t"
                "jc %l[vmfail_invalid]\n\t"
                "jz %l[vmfail_error]"
@@ -386,8 +386,7 @@ static inline enum vmx_insn_errno vmwrite_safe(unsigned=
 long field,
     return VMX_INSN_FAIL_INVALID;
=20
  vmfail_error:
-    __vmread(VM_INSTRUCTION_ERROR, &ret);
-    return ret;
+    return vmread_unsafe(VM_INSTRUCTION_ERROR);
 }
=20
 static always_inline void __invept(unsigned long type, uint64_t eptp)
--=20
2.34.1




From xen-devel-bounces@lists.xenproject.org Tue Apr 08 01:58:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 01:58:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.941339.1340848 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1yEL-0001bU-B3; Tue, 08 Apr 2025 01:58:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 941339.1340848; Tue, 08 Apr 2025 01:58: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 1u1yEL-0001bN-6J; Tue, 08 Apr 2025 01:58:25 +0000
Received: by outflank-mailman (input) for mailman id 941339;
 Tue, 08 Apr 2025 01:58: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=P4ml=W2=canb.auug.org.au=sfr@srs-se1.protection.inumbo.net>)
 id 1u1yEI-0001bH-Tq
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 01:58:24 +0000
Received: from mail.ozlabs.org (gandalf.ozlabs.org [150.107.74.76])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id efb76569-141c-11f0-9eaa-5ba50f476ded;
 Tue, 08 Apr 2025 03:58:18 +0200 (CEST)
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 X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (Client did not present a certificate)
 by mail.ozlabs.org (Postfix) with ESMTPSA id 4ZWq3n6VGBz4xD3;
 Tue,  8 Apr 2025 11:58:13 +1000 (AEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: efb76569-141c-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=canb.auug.org.au;
	s=202503; t=1744077494;
	bh=qnLYYmYvnpLXTLKkHmioRRUvl7SLbInyp4kptnR45Yw=;
	h=Date:From:To:Cc:Subject:From;
	b=tBL8B2tgStLHvHWmwqXWGaSc+oIewgPKObOeyBmIT5wMeIh3ZZY4pOvzeli0IjiIT
	 NzP5XtCAjoUtAXvWEiBOhJCwlrYnLoeMii941WBPE1S3X0yg6K7d4ctTDF8I3Bz6h/
	 4me65N+gmEFubDjqxAIalTE3laGjCpVq9uhkDY4no5iQG/ozCYQ3JDztgJ5myG+Qn4
	 ayJ97AlCeuXSTDq3P90ANOmRqwlKl2KkwkI+75YeGMCvtFi2tTrNqbdtibVREN8n4L
	 c0/uyACpyD5qx34kLGEQEk3hZyZC+7T++shwss5y8SlJfb8+tYb3/oZL9x6mSgjVcn
	 cT58gq+HsAFow==
Date: Tue, 8 Apr 2025 11:58:13 +1000
From: Stephen Rothwell <sfr@canb.auug.org.au>
To: Juergen Gross <jgross@suse.com>, Konrad Rzeszutek Wilk
 <konrad.wilk@oracle.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Andrew Morton
 <akpm@linux-foundation.org>
Cc: Arnd Bergmann <arnd@arndb.de>, Xen Devel
 <xen-devel@lists.xenproject.org>, Linux Kernel Mailing List
 <linux-kernel@vger.kernel.org>, Linux Next Mailing List
 <linux-next@vger.kernel.org>
Subject: linux-next: manual merge of the xen-tip tree with the mm-hotfixes
 tree
Message-ID: <20250408115813.0a5365ef@canb.auug.org.au>
MIME-Version: 1.0
Content-Type: multipart/signed; boundary="Sig_/1wsli=Gj.rBDPyMX/OFziTq";
 protocol="application/pgp-signature"; micalg=pgp-sha256

--Sig_/1wsli=Gj.rBDPyMX/OFziTq
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: quoted-printable

Hi all,

Today's linux-next merge of the xen-tip tree got a conflict in:

  drivers/xen/xenbus/xenbus_probe_frontend.c

between commit:

  5be5772b1f96 ("xenbus: add module description")

from the mm-hotfixes tree and commit:

  b40c54648158 ("xenbus: add module description")

from the xen-tip tree.

I fixed it up (I just used the latter version) and can carry the fix as
necessary. This is now fixed as far as linux-next is concerned, but any
non trivial conflicts should be mentioned to your upstream maintainer
when your tree is submitted for merging.  You may also want to consider
cooperating with the maintainer of the conflicting tree to minimise any
particularly complex conflicts.

--=20
Cheers,
Stephen Rothwell

--Sig_/1wsli=Gj.rBDPyMX/OFziTq
Content-Type: application/pgp-signature
Content-Description: OpenPGP digital signature

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

iQEzBAEBCAAdFiEENIC96giZ81tWdLgKAVBC80lX0GwFAmf0grUACgkQAVBC80lX
0GyZmgf+KunX/Z/1JkX41sS/t6EuxwP5hAu4bZm1qBZSLS56Hjd2GFLUMfvzz0Yd
TXxXxEqtmPwVdAR3VppX9R85PsQS4xJszzjf+PfYnq1My7Kk0qT1vQ6IDESkdPJ4
//SzYnNbjIpE/gC0fDDM1fEfJ+E9qx8nXUR9pl/CzanjBsdgWApS/0auRAzdDcL/
C9yMUg8SaR8HNYHrl/8dtsTL5TgKf6sh+Y0DLk6iKdFW/GNjBmosNB9RQnP92o6B
9mVVGbw3cZBggk5H1qdOmeevvH+kdGTcfXsD/ra2ulM9eyUDHr9IBlMYQkAv/wh4
oZlGaRaDmq+e9e2NgzJxDwB7OP9s1g==
=/eeY
-----END PGP SIGNATURE-----

--Sig_/1wsli=Gj.rBDPyMX/OFziTq--


From xen-devel-bounces@lists.xenproject.org Tue Apr 08 03:42:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 03:42:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.941351.1340858 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u1zrA-0000cK-9h; Tue, 08 Apr 2025 03:42:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 941351.1340858; Tue, 08 Apr 2025 03: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 1u1zrA-0000cD-4M; Tue, 08 Apr 2025 03:42:36 +0000
Received: by outflank-mailman (input) for mailman id 941351;
 Tue, 08 Apr 2025 03:42: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=w6y1=W2=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1u1zr9-0000c7-5n
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 03:42: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 817dd42e-142b-11f0-9eaa-5ba50f476ded;
 Tue, 08 Apr 2025 05:42:33 +0200 (CEST)
Received: by mail-ej1-x632.google.com with SMTP id
 a640c23a62f3a-ac2dfdf3c38so188146766b.3
 for <xen-devel@lists.xenproject.org>; Mon, 07 Apr 2025 20:42:33 -0700 (PDT)
Received: from yp-VivoBook-ASUSLaptop-M1503QA-M1503QA.. ([95.67.15.120])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5f088085e3esm7333800a12.58.2025.04.07.20.42.31
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 07 Apr 2025 20:42:31 -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: 817dd42e-142b-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1744083752; x=1744688552; 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=TZvEWhHuJSEbLztqXreeKR9oWiRimT/W3RHZpT0C4Lg=;
        b=huNRr39noUIoDXddUHOjMsALtw8Yi3j+1oPTJKsgz6+YxnV5vgMebKPXQ2OAE/GF3S
         gFFQKpq3Aj1vQiirjvcYd8QpSMdGFDw4VSijezUJ6sotmDM0OlAZDRZcFZg3A/dw37pw
         4PpLVkJIvNHX9yi/tIU5MgzuQlcGpwDLpIpRBDRJ0ppJvXZWL9hC9vGFt3wK9dMMd/ta
         r46qtgxPe2afnD4+Kd/YLvGJR8wWPoe0854B36NlGMl6rAw4jwalOTpwtJHfPohnEyrm
         MYT9DXIgb7V09qCU4L9wk9I43sx9xJD0swDFZmcuPWy2JAqOpGlaXw9y2q6QltcXHjrb
         LXqw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744083752; x=1744688552;
        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=TZvEWhHuJSEbLztqXreeKR9oWiRimT/W3RHZpT0C4Lg=;
        b=tAjxCp/VvZBXCNEjLGMla1gXJM3tsfzgZ5ktEhUpYoe5s7LbsPs7e6cEYfdCzQMgJ9
         FvEADp/Q4sKuP86fzw9by/eOhy4rT2RsgijkVFPenUvRElO3vVuayYXXddS+eDd1CUdl
         9AOvh+bYtObyuUad3TGzRIjN7lM14KcvwJYdPViajoHWrVPFXcF7i+VH5Qm1r0XF3Fu4
         QH01pmB8wkedeQXkl6c9u44G2ZPC0g2Svmw/bf7y7sqaD2PpE7kmU77RjnIZciwDPkgW
         3j5DxBmLdm15bF5ThwAXezuGPFIFqlej/ZGkVTGpwoNa3u+ZOFH+d9T00rQFD6qUz2Is
         dhAw==
X-Gm-Message-State: AOJu0YxlRb+uWBpQkiWpz5juG3up+mdfAUP3gIa+J5MMpQvdej8xq7GM
	sFSbaSWumETLf/hxVZTbpFZ135KyogXMLeHvJNgqpKE8iE8Cw7xUHOpDHg==
X-Gm-Gg: ASbGncu3v1xv9EEe2XiKeqllR4KdA5+rhRrkVcW61CAQuViSBAJLVboTtg5rKI+XgWq
	iAfYwdOXNwltgtYKvT7BY8cL4GRliio44Cbg3vtkckf1+YleKzuDuvtqCKnF6aahzmizFGq5y7e
	M+Xm5TmDc8/tsXanVzwP8UNZDfAF+A40LOo8tGw0l/HiA3DXQhM4cuLkWqzo+gNubTnNdCY0sf+
	htyNZ5l9hHdDoSRzAA9iLfV1nHUx63W/MQbQP0d8KfQnZquV5RLIJ1SrB2i9nwbniMZmMDOCCDZ
	impk/B6s90AqmuUINT9ZQuciqaH1Ko3PXg/ag/6ozdI27XNWKwZTiX77UYFjFCDWHgIXOLQTyrS
	uUJ2a4h2c
X-Google-Smtp-Source: AGHT+IF2fOvz80fE9n/Yh80u3wzai1N4km1pccrYaqNrXzgd79H8lSYcisPpz7zdtXsPwaBkkri2Cg==
X-Received: by 2002:a17:906:c145:b0:ac6:b243:e480 with SMTP id a640c23a62f3a-ac7d1bcf86emr1097527966b.42.1744083752414;
        Mon, 07 Apr 2025 20:42:32 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH] arm/irq: Reduce size of irq_desc array to exclude local IRQs
Date: Tue,  8 Apr 2025 06:42:19 +0300
Message-ID: <eafaff031771902c44c101736de7e1b690cc8303.1744083392.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Mykola Kvach <mykola_kvach@epam.com>

SGI and PPI descriptors are banked and stored in the per-CPU local_irq_desc
array, so not all elements of the global irq_desc array are used. This is
already accounted for in the descriptor lookup logic inside __irq_to_desc:
    return &irq_desc[irq - NR_LOCAL_IRQS];

Therefore, the size of the irq_desc array can be reduced by NR_LOCAL_IRQS,
saving (NR_LOCAL_IRQS * L1_CACHE_BYTES) bytes of memory.

Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
---
 xen/arch/arm/irq.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/arch/arm/irq.c b/xen/arch/arm/irq.c
index b9757d7ad3..03fbb90c6c 100644
--- a/xen/arch/arm/irq.c
+++ b/xen/arch/arm/irq.c
@@ -45,7 +45,7 @@ void irq_end_none(struct irq_desc *irq)
     gic_hw_ops->gic_host_irq_type->end(irq);
 }
 
-static irq_desc_t irq_desc[NR_IRQS];
+static irq_desc_t irq_desc[NR_IRQS - NR_LOCAL_IRQS];
 static DEFINE_PER_CPU(irq_desc_t[NR_LOCAL_IRQS], local_irq_desc);
 
 struct irq_desc *__irq_to_desc(unsigned int irq)
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 08 05:50:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 05:50:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.941365.1340866 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u21qd-0002XZ-LC; Tue, 08 Apr 2025 05:50:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 941365.1340866; Tue, 08 Apr 2025 05: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 1u21qd-0002XS-If; Tue, 08 Apr 2025 05:50:11 +0000
Received: by outflank-mailman (input) for mailman id 941365;
 Tue, 08 Apr 2025 05:50: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=FLbP=W2=kernel.org=krzk@srs-se1.protection.inumbo.net>)
 id 1u21qb-0002XM-Vl
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 05:50: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 509df81b-143d-11f0-9ffb-bf95429c2676;
 Tue, 08 Apr 2025 07:50:03 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id BA0405C32CA;
 Tue,  8 Apr 2025 05:47:44 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 86131C4CEE5;
 Tue,  8 Apr 2025 05:49: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: 509df81b-143d-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1744091401;
	bh=kkVwSVwfXJVe//HELD1zlesIU2ILjMowvyomBKYmVqM=;
	h=Date:Subject:To:Cc:References:From:In-Reply-To:From;
	b=P6MfPwSoNIvENOsUtisX73ekz/4Xq33D0uGN/KkPhRyN/JMR2vLQJutb4vvIVIb4m
	 gyW7y0CQV7Dc2C23Lj9bUEUJIkffi4xp7s3IwIBEOLSGwKcxwg5qIFtgcTdOJv0Rwl
	 Tw2pQEitY3h8yEhQOYNxJ3GrCfYiCQPTME1BjulEf7Ka4HHs3VJoag1Hk0wKn005+5
	 Jd1ZZxbCZGEVPsYFE5X39RLky3d9MXCfck0bk+o5KyB+oA0QkHA1YYo5Jn4LRMl0vp
	 1yO/3/ExJaQtg4VamwCPykG6dLQnxZJ8PGn+tcu6D6I3Fux66r9djCvFIIwtIFfEhO
	 diZ261yeOjisw==
Message-ID: <b3bf70f9-0b8e-4499-974f-52f65c296873@kernel.org>
Date: Tue, 8 Apr 2025 07:49:56 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 0/5] Switch more ARM plats to sys-off handler API
To: Andrew Davis <afd@ti.com>, Arnd Bergmann <arnd@arndb.de>,
 Andre Przywara <andre.przywara@arm.com>, Russell King
 <linux@armlinux.org.uk>, Daniel Mack <daniel@zonque.org>,
 Haojian Zhuang <haojian.zhuang@gmail.com>,
 Robert Jarzmik <robert.jarzmik@free.fr>, Alexey Charkov <alchark@gmail.com>,
 Stefano Stabellini <sstabellini@kernel.org>
Cc: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org,
 xen-devel@lists.xenproject.org
References: <20250407185650.411887-1-afd@ti.com>
From: Krzysztof Kozlowski <krzk@kernel.org>
Content-Language: en-US
Autocrypt: addr=krzk@kernel.org; keydata=
 xsFNBFVDQq4BEAC6KeLOfFsAvFMBsrCrJ2bCalhPv5+KQF2PS2+iwZI8BpRZoV+Bd5kWvN79
 cFgcqTTuNHjAvxtUG8pQgGTHAObYs6xeYJtjUH0ZX6ndJ33FJYf5V3yXqqjcZ30FgHzJCFUu
 JMp7PSyMPzpUXfU12yfcRYVEMQrmplNZssmYhiTeVicuOOypWugZKVLGNm0IweVCaZ/DJDIH
 gNbpvVwjcKYrx85m9cBVEBUGaQP6AT7qlVCkrf50v8bofSIyVa2xmubbAwwFA1oxoOusjPIE
 J3iadrwpFvsZjF5uHAKS+7wHLoW9hVzOnLbX6ajk5Hf8Pb1m+VH/E8bPBNNYKkfTtypTDUCj
 NYcd27tjnXfG+SDs/EXNUAIRefCyvaRG7oRYF3Ec+2RgQDRnmmjCjoQNbFrJvJkFHlPeHaeS
 BosGY+XWKydnmsfY7SSnjAzLUGAFhLd/XDVpb1Een2XucPpKvt9ORF+48gy12FA5GduRLhQU
 vK4tU7ojoem/G23PcowM1CwPurC8sAVsQb9KmwTGh7rVz3ks3w/zfGBy3+WmLg++C2Wct6nM
 Pd8/6CBVjEWqD06/RjI2AnjIq5fSEH/BIfXXfC68nMp9BZoy3So4ZsbOlBmtAPvMYX6U8VwD
 TNeBxJu5Ex0Izf1NV9CzC3nNaFUYOY8KfN01X5SExAoVTr09ewARAQABzSVLcnp5c3p0b2Yg
 S296bG93c2tpIDxrcnprQGtlcm5lbC5vcmc+wsGVBBMBCgA/AhsDBgsJCAcDAgYVCAIJCgsE
 FgIDAQIeAQIXgBYhBJvQfg4MUfjVlne3VBuTQ307QWKbBQJgPO8PBQkUX63hAAoJEBuTQ307
 QWKbBn8P+QFxwl7pDsAKR1InemMAmuykCHl+XgC0LDqrsWhAH5TYeTVXGSyDsuZjHvj+FRP+
 gZaEIYSw2Yf0e91U9HXo3RYhEwSmxUQ4Fjhc9qAwGKVPQf6YuQ5yy6pzI8brcKmHHOGrB3tP
 /MODPt81M1zpograAC2WTDzkICfHKj8LpXp45PylD99J9q0Y+gb04CG5/wXs+1hJy/dz0tYy
 iua4nCuSRbxnSHKBS5vvjosWWjWQXsRKd+zzXp6kfRHHpzJkhRwF6ArXi4XnQ+REnoTfM5Fk
 VmVmSQ3yFKKePEzoIriT1b2sXO0g5QXOAvFqB65LZjXG9jGJoVG6ZJrUV1MVK8vamKoVbUEe
 0NlLl/tX96HLowHHoKhxEsbFzGzKiFLh7hyboTpy2whdonkDxpnv/H8wE9M3VW/fPgnL2nPe
 xaBLqyHxy9hA9JrZvxg3IQ61x7rtBWBUQPmEaK0azW+l3ysiNpBhISkZrsW3ZUdknWu87nh6
 eTB7mR7xBcVxnomxWwJI4B0wuMwCPdgbV6YDUKCuSgRMUEiVry10xd9KLypR9Vfyn1AhROrq
 AubRPVeJBf9zR5UW1trJNfwVt3XmbHX50HCcHdEdCKiT9O+FiEcahIaWh9lihvO0ci0TtVGZ
 MCEtaCE80Q3Ma9RdHYB3uVF930jwquplFLNF+IBCn5JRzsFNBFVDXDQBEADNkrQYSREUL4D3
 Gws46JEoZ9HEQOKtkrwjrzlw/tCmqVzERRPvz2Xg8n7+HRCrgqnodIYoUh5WsU84N03KlLue
 MNsWLJBvBaubYN4JuJIdRr4dS4oyF1/fQAQPHh8Thpiz0SAZFx6iWKB7Qrz3OrGCjTPcW6ei
 OMheesVS5hxietSmlin+SilmIAPZHx7n242u6kdHOh+/SyLImKn/dh9RzatVpUKbv34eP1wA
 GldWsRxbf3WP9pFNObSzI/Bo3kA89Xx2rO2roC+Gq4LeHvo7ptzcLcrqaHUAcZ3CgFG88CnA
 6z6lBZn0WyewEcPOPdcUB2Q7D/NiUY+HDiV99rAYPJztjeTrBSTnHeSBPb+qn5ZZGQwIdUW9
 YegxWKvXXHTwB5eMzo/RB6vffwqcnHDoe0q7VgzRRZJwpi6aMIXLfeWZ5Wrwaw2zldFuO4Dt
 91pFzBSOIpeMtfgb/Pfe/a1WJ/GgaIRIBE+NUqckM+3zJHGmVPqJP/h2Iwv6nw8U+7Yyl6gU
 BLHFTg2hYnLFJI4Xjg+AX1hHFVKmvl3VBHIsBv0oDcsQWXqY+NaFahT0lRPjYtrTa1v3tem/
 JoFzZ4B0p27K+qQCF2R96hVvuEyjzBmdq2esyE6zIqftdo4MOJho8uctOiWbwNNq2U9pPWmu
 4vXVFBYIGmpyNPYzRm0QPwARAQABwsF8BBgBCgAmAhsMFiEEm9B+DgxR+NWWd7dUG5NDfTtB
 YpsFAmA872oFCRRflLYACgkQG5NDfTtBYpvScw/9GrqBrVLuJoJ52qBBKUBDo4E+5fU1bjt0
 Gv0nh/hNJuecuRY6aemU6HOPNc2t8QHMSvwbSF+Vp9ZkOvrM36yUOufctoqON+wXrliEY0J4
 ksR89ZILRRAold9Mh0YDqEJc1HmuxYLJ7lnbLYH1oui8bLbMBM8S2Uo9RKqV2GROLi44enVt
 vdrDvo+CxKj2K+d4cleCNiz5qbTxPUW/cgkwG0lJc4I4sso7l4XMDKn95c7JtNsuzqKvhEVS
 oic5by3fbUnuI0cemeizF4QdtX2uQxrP7RwHFBd+YUia7zCcz0//rv6FZmAxWZGy5arNl6Vm
 lQqNo7/Poh8WWfRS+xegBxc6hBXahpyUKphAKYkah+m+I0QToCfnGKnPqyYIMDEHCS/RfqA5
 t8F+O56+oyLBAeWX7XcmyM6TGeVfb+OZVMJnZzK0s2VYAuI0Rl87FBFYgULdgqKV7R7WHzwD
 uZwJCLykjad45hsWcOGk3OcaAGQS6NDlfhM6O9aYNwGL6tGt/6BkRikNOs7VDEa4/HlbaSJo
 7FgndGw1kWmkeL6oQh7wBvYll2buKod4qYntmNKEicoHGU+x91Gcan8mCoqhJkbqrL7+nXG2
 5Q/GS5M9RFWS+nYyJh+c3OcfKqVcZQNANItt7+ULzdNJuhvTRRdC3g9hmCEuNSr+CLMdnRBY fv0=
In-Reply-To: <20250407185650.411887-1-afd@ti.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 07/04/2025 20:56, Andrew Davis wrote:
> Hello all,
> 
> Continuing the quest to remove the legacy pm_power_off() global
> function handler. Remove uses from arch/arm/ using the helper
> register_platform_power_off().
> 
> These have been sent for several cycles without feedback, not
> sure if there are anymore active platform maintainers who
> can take these individually, maybe these remaining could
> go in directly though the arm-soc tree?
I was waiting for explaining the dependencies, to know if I can or
cannot pick up. I don't see much changed here.

Best regards,
Krzysztof


From xen-devel-bounces@lists.xenproject.org Tue Apr 08 05:53:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 05:53:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.941376.1340876 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u21tY-0004B0-1o; Tue, 08 Apr 2025 05:53:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 941376.1340876; Tue, 08 Apr 2025 05: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 1u21tX-0004At-VP; Tue, 08 Apr 2025 05:53:11 +0000
Received: by outflank-mailman (input) for mailman id 941376;
 Tue, 08 Apr 2025 05:53: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=xdvb=W2=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u21tV-0004Aj-SD
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 05:53:09 +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 b7d57523-143d-11f0-9ffb-bf95429c2676;
 Tue, 08 Apr 2025 07:52:56 +0200 (CEST)
Received: by mail-wr1-x436.google.com with SMTP id
 ffacd0b85a97d-39c31e4c3e5so3134642f8f.0
 for <xen-devel@lists.xenproject.org>; Mon, 07 Apr 2025 22:52:56 -0700 (PDT)
Received: from [10.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-39c300968c4sm13960675f8f.9.2025.04.07.22.52.54
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 07 Apr 2025 22:52: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: b7d57523-143d-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744091575; x=1744696375; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=qTsJDkuDhWPBVq6ZjquOkDnlJYaELR6SwOAyima/J7A=;
        b=WrIT0Tg0+1DHKOaqaizjQdc2mBXXDZyMxsJnjfMtSut+o2W4OMOOgUP6efAD1TAekQ
         SaSb6xHDwit6z3moLTF95UiKOMZrLBycY790scexzoGQcFlcCxEhpLA1voyx1eJBVzgv
         Iye0O4PybrW+lCqQa9rw7EK3xMvXB5n4waUxr6gCE/Vto9YpJ7ePd3ru0Hy7CtMjdjYg
         M8U4Ndu0gm+3P9zmpws7VI4K1uXFAY7ajXxcKSwEhLKM1h7zo2e8cp9BQwSidsAT/OTG
         LlzdU8gWABzf0BbII0cWCYuvWUIQevaMeltDqx9getdrbeJLkSxVllsOdfZWeZFpXV14
         ZhLA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744091575; x=1744696375;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=qTsJDkuDhWPBVq6ZjquOkDnlJYaELR6SwOAyima/J7A=;
        b=iyRwbR5253vKya2XmI3eOxmiiXshl53edApFkukrX5mWnltWHBouXb9WVveiHetUmU
         MVVs2oAfHgvFU+Tw9iQOz5c9yRPmRuqCXOX7NEWzBxj5hp6fJxybsXPPJif7wBaOEqFi
         H4mwA4unYPuh3zWlvMNGQ7wQi/PcYU75LgdmoA25c4E37WU3V7Xf8czUX96tCuDBdOXs
         xIQotvVESQaRoKZah2ojWFWoBLe+6mP8w9EHHxe/iCWSNNVM2pVncWPxG9nT49FZFBKm
         aschtm9Oa4PLbBUK3mQbDSrOK1+OMl4RQBcB9sB7kADLpUdbFkqEp1Ipq2veKSWOs95j
         PCnw==
X-Forwarded-Encrypted: i=1; AJvYcCUQzw+hncsC9IWBHkZ6nh3pW7npoW4Iosmq4pecsZer2jCDz/COoNeHHHRnIRxm5cbDSIdanwrsypU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxOUc0sAB7QwEnWzUlWI5x4yWzqPvauErVEJiwDXFDnCqunXc2A
	peKjHFsLFtPK94FF2mB70bsQxUYsgHd8R2Yy8P2GVN6Mw2wG5XYsNvUTwnT/Ng==
X-Gm-Gg: ASbGncu+TIY2bxO8Zs4odp5zOzbNUU1HGqWuVfpfxauLBFBVv6LG4oPaSniTqm7AwIh
	VMcGLZsxv6tTLTqn6BVFAVldQOZuYesJXeIe3jHAmp7vQrDXMjyqIXDUDjzy+mnZiOWdFPeFBzJ
	TUhwXMBvCCrvLTD9AGyf2lRyaBnnXsuR2gMImDf1OedUAvlwzb+KlL6DmqCamRsTns8PGVkkd5r
	ubcimkr6R3Uu9a/f/ghVXjHCkkv0yJQwXX8N6HoWcbcB7RtnbO8fEBcju6g6KnI6PP/tbtpjWpr
	xRVodOk6QjpNTwFrV+4u1ar39WUlcONbC70TVXkLpvbdy9TnHgNlzk5RLLzQZrtIsB85c7wnx7S
	ix55l3rb9KW5q4zpUwds8Sq815V0YXA==
X-Google-Smtp-Source: AGHT+IHoj10Jr7/EKr+Bq3mIqvGzHse6olJQ58nRof+sd2bJBYvGiYgy3KbzaYbLsOx2cQAMUTsYPg==
X-Received: by 2002:a5d:64aa:0:b0:391:2f71:bbb3 with SMTP id ffacd0b85a97d-39cba9332f2mr13272847f8f.46.1744091575338;
        Mon, 07 Apr 2025 22:52:55 -0700 (PDT)
Message-ID: <8c5ab3fc-1e29-48f9-a7c6-bfda789e36f7@suse.com>
Date: Tue, 8 Apr 2025 07:52:53 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 1/7] xen: introduce hardware domain create flag
To: Jason Andryuk <jason.andryuk@amd.com>
Cc: "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>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <20250403214608.152954-1-jason.andryuk@amd.com>
 <20250403214608.152954-2-jason.andryuk@amd.com>
 <332e0afc-9c43-4602-9bc0-dfe4ddd1b107@suse.com>
 <64f6bf18-d3e4-4392-b924-4b779dbe5d69@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: <64f6bf18-d3e4-4392-b924-4b779dbe5d69@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 07.04.2025 20:16, Jason Andryuk wrote:
> On 2025-04-04 03:38, Jan Beulich wrote:
>> On 03.04.2025 23:46, Jason Andryuk wrote:
>>> From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
>>>
>>> Add and use a new internal create domain flag to specify the hardware
>>> domain.  This removes the hardcoding of domid 0 as the hardware domain.
>>>
>>> This allows more flexibility with domain creation.
>>>
>>> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
>>> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
>>> Reviewed-by: Jan Beulich <jbeulich@suse.com>
>>> ---
>>> v3:
>>> Or-in CDF_hardware for late hwdom case
>>
>> Except that ...
>>
>>> --- a/xen/common/domain.c
>>> +++ b/xen/common/domain.c
>>> @@ -820,13 +820,18 @@ struct domain *domain_create(domid_t domid,
>>>       d->is_privileged = flags & CDF_privileged;
>>>   
>>>       /* Sort out our idea of is_hardware_domain(). */
>>> -    if ( domid == 0 || domid == hardware_domid )
>>> +    if ( (flags & CDF_hardware) || domid == hardware_domid )
>>>       {
>>>           if ( hardware_domid < 0 || hardware_domid >= DOMID_FIRST_RESERVED )
>>>               panic("The value of hardware_dom must be a valid domain ID\n");
>>>   
>>> +        /* late_hwdom is only allowed for dom0. */
>>> +        if ( hardware_domain && hardware_domain->domain_id )
>>> +            return ERR_PTR(-EINVAL);
>>> +
>>>           old_hwdom = hardware_domain;
>>>           hardware_domain = d;
>>> +        flags |= CDF_hardware;
>>>       }
>>
>> ... this isn't quite enough. You're only modifying what will go out of scope
>> when returning from the function. What's at least equally important to OR into
>> is d->cdf.
> 
> Yes, thanks for catching that.
> 
> I'll move d->cdf assignment to after here instead of or-ing in a second 
> time.

Not sure that'll be good to do - intermediate code (in particular passing
d to other functions) may need to have that set already. And even if not
now, then maybe going forward.

> With that, it seems like it should also be removed from old_hwdom?
> 
> old_hwdom->cdf &= ~CDF_hardware

Oh, indeed. Thanks in turn for catching this further aspect.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 08 06:24:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 06:24:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.941390.1340887 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u22Nz-0002lu-E7; Tue, 08 Apr 2025 06:24:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 941390.1340887; Tue, 08 Apr 2025 06:24: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 1u22Nz-0002ln-BA; Tue, 08 Apr 2025 06:24:39 +0000
Received: by outflank-mailman (input) for mailman id 941390;
 Tue, 08 Apr 2025 06:24: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=xdvb=W2=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u22Nx-0002lh-OE
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 06:24:37 +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 23e59561-1442-11f0-9ffb-bf95429c2676;
 Tue, 08 Apr 2025 08:24:35 +0200 (CEST)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-43ed8d32a95so28921435e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 07 Apr 2025 23:24:35 -0700 (PDT)
Received: from [10.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-39c3020d62fsm14143832f8f.79.2025.04.07.23.24.34
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 07 Apr 2025 23:24: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: 23e59561-1442-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744093475; x=1744698275; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=pA/+y89GygcF27xI/j0rBkt6oEtfvfg6wfVfnDG5Zfc=;
        b=MZSFZyTzCkWlfYJcWKdvpdq29dD7TaGMbWq5yQyn6WKsIzalDQxKCqmaz5NfvuX6/N
         l+ti/FguRdjEn3jkImtRwIqioH+To0lvOSqFvIMFjgjO/NdV8k3mmPYmps/qMk7CE4bz
         tor/pg+uqPJrFDDLKASjzyAXXr+UNgHKAST8fVFqy/2YILECUVb+5m8E6DbB4O2dtb0P
         2tH3C4uih20oGZT/bE61wz4c9e1VshRmzc1Z00cbQD2eCf0yHI74SJXLsmW3f/XK58WJ
         vcbHpinKGOAMSqHbRG45Q22PvZ5l6ZA9p9nTIgiild7lkYHgNQ0p+ks3INktpBMXe95m
         bDkQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744093475; x=1744698275;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=pA/+y89GygcF27xI/j0rBkt6oEtfvfg6wfVfnDG5Zfc=;
        b=ecGfQjejC3TpKR7o7Wc+hItyxOLVetXliMFIT9RlJYguqTaS1yeWjj3MFblK5cCTQO
         OWwCgYGjWzdeOjxqqZBOn19d/dWLm2FwGZ5bavLfso6PAvC3e0tN3AG5FwO9u92ONItc
         O9S0xP0QhPSGpOI5kcc5cTtto/1VMQhJC3p3t2Izir4hSrc0l2ZcExq3h3mAS62KO8xy
         Jj20VjRAp4X+OMzNT/e09lc0k5LCtll0CfK9HhsL8Pomy0Wagm694XDGjR4khhADp3DH
         OQL+iRTxQaCmW0ixXXNgxfGZ9MQdYmhhtX76DC0oDobOHd4lgzig3xJY2n8AcgWD6F8x
         caVA==
X-Forwarded-Encrypted: i=1; AJvYcCXQtrRPTFudqM5c4ggfSOwoZJ3PclPhrvr8sEhq3uUC/ePe+uTpgxh4TC8jhBiQ4BYeJia/v36O0B8=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxy+yZkw24ncP0/W4oyyUwkL1SdizsTkNs5Q3PurfBi9ByGf54g
	l8kmsGdG7Y1pbw3GhQG+odXutbcgOrqK3aQPB8zWZvxgn8yL7A790YXoGTCwfw==
X-Gm-Gg: ASbGncscpoKse179T/bYfufQmgdkQnd3ImIreCbIwExKznU/lTLkOIkJzNCUxXXyQ/X
	CkiX6ncc0tR1nkGtXvxNJEf8Ij1IDEuh4pfedy8oDsSWdbDAEX6KhHWEJPXsDvSRoHVKGvLIjbB
	fMp8YowUHYUjgqWt4MQu/ApyaQq275J0OigNg7r4w1UAETmUDYeRefQoCH+BSQ/DhuV/0TXIsTq
	g9nGQYA9HqTMYh1xLvC9cIyfeB5WQsKKSUHWo8J7aAaosR6DR9S5yb8xpOolKcQrVybq2lu7GoK
	Zh9PtvLMs73whrjg/9IxAl2a+hcwiPtXOt94SiLQNWS0XZgMpRP6JfdtWZGgM5BSn1nadXh3t+5
	8psDX698NJJtLBW8IMJ82v5eiQvur8w==
X-Google-Smtp-Source: AGHT+IFfThN7YJ6vZ1/32KfNbGWCqB+PDQooJ/9koYkX9YkPBkrgy7uWY/AQpVX39pXfBWxWoYbc0A==
X-Received: by 2002:a05:600c:1c03:b0:43c:e6d1:efe7 with SMTP id 5b1f17b1804b1-43f114ef8d8mr8061295e9.26.1744093474635;
        Mon, 07 Apr 2025 23:24:34 -0700 (PDT)
Message-ID: <3ddc038e-9792-4eb7-a1bc-3ce0cf3fe33f@suse.com>
Date: Tue, 8 Apr 2025 08:24:33 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] tools/libxl: Skip invalid IRQs
To: Jason Andryuk <jason.andryuk@amd.com>
Cc: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, Anthony PERARD
 <anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>,
 xen-devel@lists.xenproject.org
References: <20250407192641.83554-1-jason.andryuk@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20250407192641.83554-1-jason.andryuk@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 07.04.2025 21:26, Jason Andryuk wrote:
> A PCI device's irq field is an 8-bit number.  A value of 0xff indicates
> that the device is not connected.

Nit: "... that the device IRQ is not ..."

>  Additionally, the Linux ACPI code can
> convert these 0xff values to IRQ_NOTCONNECTED(0x80000000) because
> "0x80000000 is guaranteed to be outside the available range of
> interrupts and easy to distinguish from other possible incorrect
> values."  When the hypercall to assign that IRQ fails, device
> passthrough as a whole fails.
> 
> Add checking for a valid IRQ and skip the IRQ handling for PCI devices
> outside that range.  This allows for passthrough of devices without
> legacy IRQs.

Which makes the code here even more Linux-centric, I guess.

A couple of related notes, yet most not directly affecting this patch:

> --- a/tools/libs/light/libxl_pci.c
> +++ b/tools/libs/light/libxl_pci.c
> @@ -26,6 +26,9 @@
>  #define PCI_BDF_XSPATH         "%04x-%02x-%02x-%01x"
>  #define PCI_PT_QDEV_ID         "pci-pt-%02x_%02x.%01x"
>  
> +/* PCI Interrupt Line is an 8-bit value, 0xff means disconnected. */
> +#define PCI_IRQ_LINE_LIMIT     0xff
> +
>  static unsigned int pci_encode_bdf(libxl_device_pci *pci)
>  {
>      unsigned int value;
> @@ -1495,7 +1498,8 @@ static void pci_add_dm_done(libxl__egc *egc,
>              LOGED(ERROR, domainid, "Couldn't open %s", sysfs_path);
>              goto out_no_irq;
>          }
> -        if ((fscanf(f, "%u", &irq) == 1) && irq) {
> +        if ((fscanf(f, "%u", &irq) == 1) &&

For this, "irq" ought to be unsigned int. Same below.

> +            irq > 0 && irq < PCI_IRQ_LINE_LIMIT) {

Not sure about this in libxl's style, but it feels inconsistent to have
parentheses around one relational expression but then not around the
others. Personally I'd drop them all, but the alternative clearly is to
add missing ones.

>              r = xc_physdev_map_pirq(ctx->xch, domid, irq, &irq);
>              if (r < 0) {
>                  LOGED(ERROR, domainid, "xc_physdev_map_pirq irq=%d (error=%d)",
> @@ -2257,7 +2261,8 @@ skip_bar:
>              goto skip_legacy_irq;
>          }
>  
> -        if ((fscanf(f, "%u", &irq) == 1) && irq) {
> +        if ((fscanf(f, "%u", &irq) == 1) &&
> +            irq > 0 && irq < PCI_IRQ_LINE_LIMIT) {
>              rc = xc_physdev_unmap_pirq(ctx->xch, domid, irq);
>              if (rc < 0) {
>                  /*

This is doing things in sensible order: unmap, then remove permissions.
The map side though adds permissions only after mapping. That's kind of
necessary because the value to pass into xc_domain_irq_permission() is
an output of xc_physdev_map_pirq(). Yet then the latter should have
failed for lack of permissions, unless permissions were granted another
way? In which case what's the point of granting permissions here?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 08 06:25:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 06:25:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.941404.1340896 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u22Oy-0003Jb-Pv; Tue, 08 Apr 2025 06:25:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 941404.1340896; Tue, 08 Apr 2025 06:25: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 1u22Oy-0003JS-NK; Tue, 08 Apr 2025 06:25:40 +0000
Received: by outflank-mailman (input) for mailman id 941404;
 Tue, 08 Apr 2025 06:25: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=JFBl=W2=boeing.com=gihwan.kwon@srs-se1.protection.inumbo.net>)
 id 1u22Ox-000319-D5
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 06:25:39 +0000
Received: from clt-mbsout-01.mbs.boeing.net (clt-mbsout-01.mbs.boeing.net
 [130.76.144.162]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 47d8c043-1442-11f0-9eaa-5ba50f476ded;
 Tue, 08 Apr 2025 08:25:37 +0200 (CEST)
Received: from localhost (localhost [127.0.0.1])
 by clt-mbsout-01.mbs.boeing.net (8.15.2/8.15.2/DOWNSTREAM_MBSOUT) with SMTP id
 5386PVnD012424; Tue, 8 Apr 2025 02:25:34 -0400
Received: from XCH16-06-12.nos.boeing.com (xch16-06-12.nos.boeing.com
 [144.115.66.108])
 by clt-mbsout-01.mbs.boeing.net (8.15.2/8.15.2/8.15.2/UPSTREAM_MBSOUT) with
 ESMTPS id 5386PM1t012356
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO);
 Tue, 8 Apr 2025 02:25:22 -0400
Received: from XCH16-06-12.nos.boeing.com (144.115.66.108) by
 XCH16-06-12.nos.boeing.com (144.115.66.108) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.1.2507.44; Mon, 7 Apr 2025 23:25:21 -0700
Received: from XCH19-EDGE-C02.nos.boeing.com (130.76.144.198) by
 XCH16-06-12.nos.boeing.com (144.115.66.108) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.1.2507.44 via Frontend Transport; Mon, 7 Apr 2025 23:25:21 -0700
Received: from USG02-BN3-obe.outbound.protection.office365.us (23.103.199.145)
 by boeing.com (130.76.144.198) with Microsoft SMTP Server
 (version=TLS1_2, 
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.11; Mon, 7 Apr
 2025 23:25:20 -0700
Received: from SA1P110MB2252.NAMP110.PROD.OUTLOOK.COM (2001:489a:200:198::5)
 by PH1P110MB1699.NAMP110.PROD.OUTLOOK.COM (2001:489a:200:18b::18) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8511.31; Tue, 8 Apr
 2025 06:25:20 +0000
Received: from SA1P110MB2252.NAMP110.PROD.OUTLOOK.COM
 ([fe80::e652:58c7:c916:3735]) by SA1P110MB2252.NAMP110.PROD.OUTLOOK.COM
 ([fe80::e652:58c7:c916:3735%5]) with mapi id 15.20.8583.043; Tue, 8 Apr 2025
 06:25:20 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 47d8c043-1442-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=boeing.com;
	s=boeing-s1912; t=1744093534;
	bh=WoDTeEyU7d7mtmlWrzsmr8QzD3GpVbhHENRMwROJlQA=;
	h=From:To:CC:Subject:Date:References:In-Reply-To:From;
	b=rj2KuDXdKJZUPhz2poxqiXbXkz38DAroJsgayYTnVIPp4aPIWqWSGi/RTajjsX11S
	 LR/9w4V8KYxSZXjNxf2WkV9UseEgAyVVwSDcOXzcaaX8dw+aKbGot4Y7yRYjRYsrvv
	 Om4mb6W0oq/KeL1jRTNmOLT/K7/ezQYVcCxG5QBMZYizgkZzWdR2y7b6hcE7sJu+IJ
	 ktXNt7yODNHXFagc3g3Gz8LKl8SPxmm/pjBbWHtLktzZkGsVwF6xgMk7p0AahQrRlE
	 /+kpi5oaKnDE+aUuu8gUiHi865Mcesj5Hj/pGod7tbLuAq1Cc8uWp+1JNCLoTsfMxb
	 bnnLxSQjMex4w==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector5401; d=microsoft.com; cv=none;
 b=WaMw1La/kfA2VL2bWXzuPrdv3xSkeqvmFEdY61S4mZ8fI8SvGBv1GaOyBIep78YXKKAWWLG6QyY6Lkn2UP7qgcZXWH8x7h9H6IOtZIumCjjKI2oeyyE2ng24QRFSIkjvRj6Ag1CW1ONvOowubp6e/pKlSscjcx9f6AowNY3lwn41Db/DTFBh71T6r4qcYraq4oNBWmpg4BLHBQlEQGTlOzLI88dDA6GzAxnMne2YNvTrpOsgU5vybqdyQiv49ipdY0WCgdxzuU0A9axTr40jtHBfi7cyQimMCoHfnl/wPESJKzfDF/VRW8lVpwWrPLO+UuA/craEMqINbwu+hCx6jw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector5401;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=WoDTeEyU7d7mtmlWrzsmr8QzD3GpVbhHENRMwROJlQA=;
 b=RKbsMOwJy6e+WWMbK8DwWKOtYOOoWfOxY0WUvYvfDgtVKTjgHWgpB+VHHiKzGXC7GeLQHE9m5FLURHfO1oYrDNLPcMqie59pfzACI2vZXM/egfNHPEIcUui5X/6aCa4NYUaZjlgFM1FXkGQQVIfKtG18OCHIviSF50HX/PdOXK/G1ml/V9ZH3mbN3IZdpO+Ag90shsw3AdYBGd02b1JSCg/gYic39Muah3gEEjCUEGRamPHWWO7ONa0ylMWJF5JwN/eK8PhclGc2X4dCdaeiYMGj84lzaTOS+c4P5II1Y9A6s0C9hx6GpiXZKaU7diMZRXC7MC6jesx7MHf9/4eoqg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=boeing.com; dmarc=pass action=none header.from=boeing.com;
 dkim=pass header.d=boeing.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=boeing.onmicrosoft.com; s=selector1-boeing-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=WoDTeEyU7d7mtmlWrzsmr8QzD3GpVbhHENRMwROJlQA=;
 b=KrGY1ciGfFBnd0emcU6FCp2nmKzIncH02NPwuG1Bd5sQojR/vGcwhbVUmRdtm5IBUxWWBl3PnhIKxfWLTfhhIsGylgDbfDN2F0aSzc5a/rAfhHNJ2swL5MQS576vjU34lV0FWQBw38Nn7/5yJSuYYewGp8OCp8CNtzgtfuP/ep0=
From: "Kwon, Gihwan" <gihwan.kwon@boeing.com>
To: Stefano Stabellini <sstabellini@kernel.org>,
        Nicola Vetrini
	<nicola.vetrini@bugseng.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
        "stewart.hildebrand@amd.com" <stewart.hildebrand@amd.com>
Subject: RE: [QUESTION] Minimal Xen Configuration
Thread-Topic: [QUESTION] Minimal Xen Configuration
Thread-Index: AQHbp4d8CTfihWvrfUi9wdjpxoA8O7OZTdEw
Date: Tue, 8 Apr 2025 06:25:20 +0000
Message-ID: <SA1P110MB2252D220AD05DCCB7E9B79BF90B5A@SA1P110MB2252.NAMP110.PROD.OUTLOOK.COM>
References: <PH3P110MB2246A9D7AFA0A73000781B0390A0A@PH3P110MB2246.NAMP110.PROD.OUTLOOK.COM>
 <f4803fc17047a9d74928c66d39bf9632@bugseng.com>
 <alpine.DEB.2.22.394.2504021409170.3098208@ubuntu-linux-20-04-desktop>
 <SA1P110MB2252BBBB6801DBDB88B828BE90AAA@SA1P110MB2252.NAMP110.PROD.OUTLOOK.COM>
In-Reply-To: <SA1P110MB2252BBBB6801DBDB88B828BE90AAA@SA1P110MB2252.NAMP110.PROD.OUTLOOK.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=boeing.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: SA1P110MB2252:EE_|PH1P110MB1699:EE_
x-ms-office365-filtering-correlation-id: 46186b03-d0fc-403a-e879-08dd7666231e
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|366016|38070700018;
x-microsoft-antispam-message-info: =?us-ascii?Q?EUIdVixRixpB8MCw6wXPHqsowmBz4+GXMuSoGfDXPT8tJVdU1vTUiKcrQsqw?=
 =?us-ascii?Q?n/JO3DkgLOh+2xISAIzXawaQTKapaIRQxFJipmXFESimr3Wm2FzwkPjh9efZ?=
 =?us-ascii?Q?SmyYAV1vpjARVYM9F6o2MySH14MxFCUAFTLdaUtFqQthDC3DmZUCyA3OzaoA?=
 =?us-ascii?Q?gPjdNMIva1KnZ+dLh2PsgebtFPuyscmbd8oW37xLoPjtXnO8Y1R5rBvymAsB?=
 =?us-ascii?Q?K9gpDB95jFlZM02L6XLaDyrp6y5avNICjgaZW+QTO7JUZ2GWHiJ8+SVyubu5?=
 =?us-ascii?Q?aPnhO0P7UTVU/VO6v1r9AH2YrbH9W06yj3AvLc7Oz001+XiLmLCx2EAaq5Ff?=
 =?us-ascii?Q?ynf3Z4t3QbkRGCoOgiqD5a4eyNJMc9DpMEknihWlJdx7svaLe04cNUfdDDwl?=
 =?us-ascii?Q?CUeubKxBlBI7cD68IjKZ1ifKcXtk0/axYd1Bj8pkeSueSus5pmxfwM3CZLcN?=
 =?us-ascii?Q?leoJXRfXNiKK7wnhefXE4MJFKSMXfS4pIY/ixnopop0mmdzL+xi/QtFCfo6i?=
 =?us-ascii?Q?zgPK0TrsZdIBeuW6PdeXwOMPZja1GAk917qZ+U5AQpVcwM1yQ6Ba8NvLtXW7?=
 =?us-ascii?Q?mCdH4i3m7EFGVRVpI1PFL1SEX925lYvt6r2DBAaatlALu8IkOfkc+2dBM699?=
 =?us-ascii?Q?3akBl54NeFdX8YCnWZRzvXFWzcCxQkramLsDyQ2EVTOWgAShCW+H9jwxr3Q3?=
 =?us-ascii?Q?xu7hKZhH9iux5uaaLOzyTqMCYfTftmmeSsqg7XGDMeJ/SyP8EzBY+m0maRGU?=
 =?us-ascii?Q?Dh25AqsBaqO4d2rUnlB/MsWpAB3t27UE2jLLk8dzIXFpdUPov0jTLPzWVh5G?=
 =?us-ascii?Q?haVonPRd7ZoFk9XmPfJoXTfJlLwBhTEapanssgKDIrbLTM2/9udEZ1hc0aIa?=
 =?us-ascii?Q?Xnq+rYwxJxNKZPVp6HRdTO11aEC8d3cS+HmCfrJWQE5J82UkoK6Q+QQEW89P?=
 =?us-ascii?Q?4TrPJ9rjS1pLLivHElmCsZ1gqCKDzBMzoSSJwVMxFuurPBqmjmJKaJZikC9r?=
 =?us-ascii?Q?s9qaHaQ1SN9++N5h+ATvTdc1NkQY57GFLgv7Dckven8Fez83VzWbmlf1uCej?=
 =?us-ascii?Q?VE5sKWIt+OdTLUUEY0bPdNMXP1Dl0VQ94lLQQp3xdwABPzJKEb0FPliI6kV5?=
 =?us-ascii?Q?ipB9+OxG/R5FsnBT+pmYGGB112jY5bEr2AP8+cw6lKUKMonq/LBpmdy0Jfbo?=
 =?us-ascii?Q?YNG3AlJfFd9em15dxXgeAsjKh2ia256ACZqHV4/jshebMMzVv6ttHkz2I1D0?=
 =?us-ascii?Q?yDB4lKKXs+JKhWfwFdp2BmwCnJxdu6zppzB8mY8rOcsuWJDWvPLT2Vuuq4oG?=
 =?us-ascii?Q?FtT9jfwQJCKtbG6UlmFiqRi4xxTo0ONNK2889su8ctB9Olvk8lVRcFmVSxEw?=
 =?us-ascii?Q?oGOcZ14+fmGSfqS0FS3sk0bBJsk9?=
x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SA1P110MB2252.NAMP110.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?zQ3IaCoDg9NG7EKFNsCk090JeusduKVi+WlUdRQ/UfHh9NdyOcJp94aJlvOC?=
 =?us-ascii?Q?U/G9ytStmp1ovqdg404suKYYChfSihKjGBy8y9DX+x3yoG1opiEMShGhObz8?=
 =?us-ascii?Q?MwQM/J5gHN9sIvBAXHu1Req3lFf+rhLD1U3YmvaQlmaf+/J4cOBdxPRsDBXv?=
 =?us-ascii?Q?+SOJeCc+ErRe3zfSkHiKEleBuNrN0qmtRlhp96UYFL5T21+UKfGFUjA95B42?=
 =?us-ascii?Q?1/+2s2bWdD0PRlE093uDKhmDPgYhGpgfwreLK8ZY2PHegvvPcpDWe+xQLkaV?=
 =?us-ascii?Q?CC3Z2q5MXPHVR13Z4kDqk5hJbEg4pWIlkcdMQepaLxrfEpCj3z2hwuvQ761I?=
 =?us-ascii?Q?PIN+xpaDmkf2oqhcH4ZlemhmFpV+67BZEItZyf2C27Y7TDZyEK8NaySqgbVr?=
 =?us-ascii?Q?hCBQC6S2jEFBe58HgAw0SzJGKHJaKoO1t0ZrrbUQP6NI0x42rgqJ0urJMdg3?=
 =?us-ascii?Q?h+3aru1anGg6noF8JJKL0R583BUysS+/djhmp+3OorAm6v6MfpL5i4hZB/bs?=
 =?us-ascii?Q?8nEB/NGwUbGk+WKkqTx8hgTMypUMs5JKEW4B0/88K6raeWT/95gTnpnlz9TX?=
 =?us-ascii?Q?La2SLVDUeUo7dZQvlE2WklsB1F3XmwZfTDm0voqHovHGkcU1dvZLjt8v6O4X?=
 =?us-ascii?Q?aDYoqCd+1kbJEA5LsUM2cMxY+lQf9BTTGA+5GT4m1ViBksmcVKIbH0c6MUZS?=
 =?us-ascii?Q?goVVa1VOntlnk5xKxweARSzKgK/Mu9ZJHX18ijw58u22Q3NhpxRB8jmpIAai?=
 =?us-ascii?Q?UUWHJc8wvWmltlGiHFXu67odcj1p4CpVqa9yET6LXBAHWupqbl/rdXibAZ+h?=
 =?us-ascii?Q?RD3OAvi0frUfCsjBt7U71tydC+jGn3kRB28D6r8ZSdi0U4q7MD0ek0mysnbz?=
 =?us-ascii?Q?tz7LSjlObPN9ZZdV9csTsoE5KNoOH89E/JYP4KLLL95s6yz0dSmOpm4zL3y4?=
 =?us-ascii?Q?knHXN3hrdm/31bLFx0TAZeeYRgkOp2fk/eV2GrJ4TIUCcJ4+N2cxg2ilI/4r?=
 =?us-ascii?Q?y8RnJQvbkDEMrN7cmxUUzJO7eiFCXe1RgFhkSk4Davf2Zqbp9l0enNePe9X7?=
 =?us-ascii?Q?N8wH2d72NJkf+MiRBDm5WU8A5jGfcQ2gFK9Rxa1hSBJggza8L/s5XtCrZMsA?=
 =?us-ascii?Q?txF/8s87/snhv2BLvxb7xLxVNiym9G7UmP8dKcJAeuvTpTBBWJh7BMjlZC0w?=
 =?us-ascii?Q?DKoJTiSzNYa2juvmplMt3uYNbevIWOvUI+cyvmLkUHsnnJbj1WaV7FcHXzD6?=
 =?us-ascii?Q?GaZtOhgUn1+pZyBSOiV0I4nvohR/zcYNxgencfFCZwy0paKOHK6rn3mp63XM?=
 =?us-ascii?Q?FMPrICzW/Ts+0RZc3vkXBHjoPno8n2xnbN+LRLqs7mO3md2Y0LrxrwhHrBT4?=
 =?us-ascii?Q?ZFEPcJO2t03ZrhjIzE89rWrknNlbv4EZPDSIomJynxVF1AuEJsZjrvu74zP0?=
 =?us-ascii?Q?CeZWp+KXOTxh7E22wR7t0kQRAUFiLqbMCXbI/YVMIRTah8VB+eoONXXLWad/?=
 =?us-ascii?Q?fvxEdsELsMm6hX4=3D?=
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: SA1P110MB2252.NAMP110.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-Network-Message-Id: 46186b03-d0fc-403a-e879-08dd7666231e
X-MS-Exchange-CrossTenant-originalarrivaltime: 08 Apr 2025 06:25:20.4159
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: bcf48bba-4d6f-4dee-a0d2-7df59cc36629
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH1P110MB1699
X-OriginatorOrg: boeing.com
X-TM-AS-GCONF: 00

Stefano and Nicola,

> Stefano, Nicola
>=20
>> On Wed, 2 Apr 2025, Nicola Vetrini wrote:
>>> On 2025-03-28 07:43, Kwon, Gihwan wrote:
>>>> Dear Xen Community,
>>>>=20
>>>> I hope this message finds you well.
>>>>=20
>>>> I have heard that there exists a minimal Xen configuration optimized
>>>> for safety-critical products, particularly in automotive applications,
>>>> with the code size reduced to approximately 50k SLOC.
>>>>=20
>>>> Could anyone provide guidance or point me to relevant resources
>>>> regarding this minimal Xen configuration? Any insights or references
>>>> would be greatly appreciated.
>>>>=20
>>>> Thank you in advance for your assistance.
>>>>=20
>>>> Best regards,
>>>> Gihwan Kwon
>>>=20
>>> Hello,
>>>=20
>>> I am part of the team that provides static analysis for Xen, mainly
>>> towards the objective to make Xen compliant with MISRA C guidelines.
>>> As part of that effort, a minimal Xen configuration has been defined
>>> (for Arm and x86_64) at [1], which is the one currently analyzed for
>>> static analysis for each commit [2]. It starts from the default
>>> configuration for the architecture (i.e., make defconfig) and then
>>> turns on or off various Kconfig options, as specified by
>>> EXTRA_XEN_CONFIG.
>>>=20
>>> @Stefano Stabellini (Cc'ed) is the main driving force behind the Xen
>>> certification effort for automotive, therefore he's probably the best
>>> person to approach to get more information on this matter.
>>=20
>> Thanks Nicola. In addition to what Nicola wrote, there is an outstanding
>> activity to further reduce the code size by adding more kconfig options.
>> There are a couple of patch series on the list right now to that effect.
>>=20
>> https://marc.info/?l=3Dxen-devel&m=3D173745442831026
>>=20
>> Last year we ran some experiments and for ARM we should be able to go
>> below 35K LOC. The tools measuring LOC are very imprecise as they do
>> not account for #ifdefs and kconfig options. So we switched to text
>> binary size for measurements as it is more accurate. do not account for
>> kconfig options and #ifdefs. Hence, we switch to using text size as
>> size measurement for Xen. One of the figure was XXX.
>=20
> Thank you for sharing information regarding the current minimal config
> and additional activities. I have reviewed the configuration applied to t=
he
>  CI and have a question.
> Currently, `CONFIG_SCHED_RTDS` is enabled instead of
> `CONFIG_SCHED_CREDIT2` and `CONFIG_SCHED_CREDIT`. Is this because
> ARINC653 scheduler cannot be used as default scheduler, as well as, rt
> scheduler is smaller than credit2 or credit scheduler?

Please disregard my previous message. I have double checked that=20
mentioned configurations are set 'n'. Therefore,  `CONFIG_SCHED_NULL`=20
and  `CONFIG_SCHED_CREDIT2` is being set and used in the minimal xen=20
configuration.

>=20
> - Gihwan
>=20
>

- Gihwan




From xen-devel-bounces@lists.xenproject.org Tue Apr 08 06:29:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 06:29:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.941416.1340908 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u22T1-0003w3-Am; Tue, 08 Apr 2025 06:29:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 941416.1340908; Tue, 08 Apr 2025 06: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 1u22T1-0003vw-6a; Tue, 08 Apr 2025 06:29:51 +0000
Received: by outflank-mailman (input) for mailman id 941416;
 Tue, 08 Apr 2025 06: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=xdvb=W2=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u22Sz-0003vq-WF
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 06:29:50 +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 decab5ce-1442-11f0-9eaa-5ba50f476ded;
 Tue, 08 Apr 2025 08:29:48 +0200 (CEST)
Received: by mail-wr1-x42d.google.com with SMTP id
 ffacd0b85a97d-3965c995151so2548270f8f.1
 for <xen-devel@lists.xenproject.org>; Mon, 07 Apr 2025 23:29:48 -0700 (PDT)
Received: from [10.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-43ec1794efesm154766305e9.28.2025.04.07.23.29.47
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 07 Apr 2025 23:29: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: decab5ce-1442-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744093788; x=1744698588; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=n2Z6TsW7RSlBi/iT9pdafV8aPy2oE4gH2NEySS6TtrY=;
        b=Ng8opHza8JvAFihKYAg8m7FIXSGmw5QEUIcefxK4wMD5bXDfVSWXuS8v3FIOXDMxyX
         zWBJdIhfN0jTHyI3qJx6dfmh0YupNlhxR2RxLimsiRwQyyZu9p/9bczOdfakE1GexiLD
         vJW6y7Uk+7mGrlvf/TDqXlIxxGgda+fBpBjMDoHTebCY70Qi/M218aC7SrRUZumWpqVJ
         Uj1PQiR9gyZf9iYoyRknurS9OyqZJsJgq7qist4eN+6uv4oh6RTBTFExPEwLeqGSBs/m
         qRS15HjHZAe9RLgl8q1i7C0nMZExCv7dO4qOMKTB7D/ZhoB4M5j+jvrp6cIUpq1IqlDa
         UBkA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744093788; x=1744698588;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=n2Z6TsW7RSlBi/iT9pdafV8aPy2oE4gH2NEySS6TtrY=;
        b=MXdjdTuuLy900umTnuTGYoV/kKRWd4i6yACngVdfYklZFSJ74kmu+kFLUJwqxzT5v4
         Z9Si4K4AjfVf3j6JoYuOPkRknqxkHsQGSDX7j+N5iTiITCmpP1SYTDr+RzG409ay1cIZ
         dQ7tmlmeAogE5YLrGzC+3fZaRGVnWCrWieJ3qMgXZbVUN9jOe1vfgpo6hbn1s53QqE6x
         /WcmkUyTQ2Dayx5paRaVKxqwzMbBkzURpVyoRD7kDmQLJnhzaHUPgcSn4a4eXcmQ4Eke
         ObiAfk/1bQZk9tsU8UIXV7ynfLeTt30hTc8N89yRRellMBKPLRtqcvWVYPeFsRtT+4Cx
         EB/Q==
X-Forwarded-Encrypted: i=1; AJvYcCWTSlrRM1/C6bXYm8vJmXYKlYR1Hm0ieew3+7xEB/03LxbAlkENXz5NHm/XvaB/j7B++RpD4B5JaX4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyuOqZFv2Rd/fOmu2C8nUZTcwgdjzBnH/ryeSuyUScZskkExkt0
	S3TKw9ak+wxP0C0On1qUStNYejtRWR/G+doRegZ/AAQoCLKlki5rz3IspalXlg==
X-Gm-Gg: ASbGncuHJ2AJv31dVYmK8Hs9JgBidaEWiip09kkTvah7UYJrvBM3jxxajNvPUkIYrLs
	7eThyFlDVpvuIf93VAjdaKG+9G9CDMqJTCv+DnHWfEvFHGf+Yq133ARHmPiD2UpphaCewZLGRAO
	S8k39mkeme7139eNdYh1hYQuTty7Mc0oxk3lO/bgzeL3mN0/p5b1tAGKunI0kwwb23dPsdd6T5w
	fArz7AT727YEzj8kZmiS8kd7iTx4+UTgOU+hPObInZQ1yYyjSdchAZeXUTjA34424Lb4o2Cghmx
	wEZXeepuG1cjtuUajKyg9Tg8vxdW1JmEr0mJrb2VMsF6edR+o2tGIXw56HkO/4cQVl4KA3NuXXy
	Am3PmtOIdfDStZf6XIfzWZO+NUEzjVwfx4EifkiPL
X-Google-Smtp-Source: AGHT+IFSqE9JuvncBlGpgX0ccCHHIji67T7VLtU4CKCLhpJvEgvNi6vU3qvDfNna0PiCe016kq6DSQ==
X-Received: by 2002:a5d:64ee:0:b0:391:487f:2828 with SMTP id ffacd0b85a97d-39d6fc0c2e6mr9552706f8f.10.1744093788201;
        Mon, 07 Apr 2025 23:29:48 -0700 (PDT)
Message-ID: <d8e0a956-3591-4398-ac58-d99e3d9cb415@suse.com>
Date: Tue, 8 Apr 2025 08:29:47 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 1/2] xen: x86: irq: initialize irq desc in create_irq()
To: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20250407164608.2558071-1-volodymyr_babchuk@epam.com>
 <20250407164608.2558071-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: <20250407164608.2558071-2-volodymyr_babchuk@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 07.04.2025 18:46, Volodymyr Babchuk wrote:
> While building xen with GCC 14.2.1 with "-fcondition-coverage" option
> or with "-Og", the compiler produces a false positive warning:
> 
>   arch/x86/irq.c: In function ‘create_irq’:
>   arch/x86/irq.c:281:11: error: ‘desc’ may be used uninitialized [-Werror=maybe-uninitialized]
>     281 |     ret = init_one_irq_desc(desc);
>         |           ^~~~~~~~~~~~~~~~~~~~~~~
>   arch/x86/irq.c:269:22: note: ‘desc’ was declared here
>     269 |     struct irq_desc *desc;
>         |                      ^~~~
>   cc1: all warnings being treated as errors
>   make[2]: *** [Rules.mk:252: arch/x86/irq.o] Error 1
> 
> While we have signed/unsigned comparison both in "for" loop and in
> "if" statement, this still can't lead to use of uninitialized "desc",
> as either loop will be executed at least once, or the function will
> return early. So this is a clearly false positive warning due to a
> bug [1] in GCC.
> 
> Initialize "desc" with NULL to make GCC happy.
> 
> [1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119665
> 
> Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>

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




From xen-devel-bounces@lists.xenproject.org Tue Apr 08 06:34:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 06:34:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.941432.1340917 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u22Xo-0006ib-Qk; Tue, 08 Apr 2025 06:34:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 941432.1340917; Tue, 08 Apr 2025 06:34:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u22Xo-0006iU-O4; Tue, 08 Apr 2025 06:34:48 +0000
Received: by outflank-mailman (input) for mailman id 941432;
 Tue, 08 Apr 2025 06:34: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=xdvb=W2=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u22Xo-0006iO-B5
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 06:34:48 +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 9001a545-1443-11f0-9ffb-bf95429c2676;
 Tue, 08 Apr 2025 08:34:46 +0200 (CEST)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-43cf0d787eeso56249725e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 07 Apr 2025 23:34:46 -0700 (PDT)
Received: from [10.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-43ec364cb9asm150060515e9.31.2025.04.07.23.34.45
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 07 Apr 2025 23:34: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: 9001a545-1443-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744094085; x=1744698885; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=5suODX7RlXxL1uSO92FQFSVYUA5Y5L4ZI857o/bKh3g=;
        b=XodaYE2YL4xNmFwQvm52ZQTo+rUlvkTv5HZBPsth38kscQ34auEnioL5NHQ3cKXBJj
         nvoEkLUu9h4Uwa19YwZdGSx83ypepf3uWCKi+M4LCisXQmFynfQ9MHnCbgxQMmqMQ6Nv
         mmEtw+qUzJutP+yJfX8QwvZ44eL6HdJQjRg5c4UTVRIW/pK5HzHvV71HFaSi1dM3I511
         JtqXZszxDKYYtKrq62Zp/fxHOW+p6RCpiE6p6ENSkTlYfH7hMUoptxF8jBg/SuKjm1L2
         bKmjyoSILsHle2u4Ouptg0iewE718drhVEDWCMNtNesgvvvk+1DMBU4p9Jzx/KBYeYZA
         /Ykg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744094085; x=1744698885;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=5suODX7RlXxL1uSO92FQFSVYUA5Y5L4ZI857o/bKh3g=;
        b=PrdBKA53OzR3yYv4tGenyVyddFF681BGnt1ezOD4cBC6oFnmw7vFTlsMppzQOj2sMu
         GEu2A6JdtQCsfdUtMH28JkucEbUIIHqD4INnccKhtsnHcqGs9HGx3shvXrdTD1RNm1Ne
         9SlAhfRFL5aj605BsZBdd57fiVnnL2Avgo5dli1K9UMvbSRUydVkn5Li9BgVwZSY4P0d
         AEjMQMVvBln+G2STCOo5kH7yNrCr3fx2mUIuYM5cyzq8TBspxMm3c69/vSqcgcB0zlQf
         BqnpLzZX7omy+FmJoc8nzYFIrfF4JxfI5a2Uz57VNWPu+OwMQDVzpvWuy38EH8l0K1oH
         koAw==
X-Forwarded-Encrypted: i=1; AJvYcCV4Zi5YJwoDNQv3NAPbMnZYrdGTWmqFSDrUPMHNu3GAGyxW8NqiyBZwlkN/5vsNfBmKbRn6Wqh/8j0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwVzcYQhweKA4cEHyEWG+VVuxqiR/mxuuLQLPET4mA7yozGVyyV
	xb4tqxdUsB++6wOpF9jxka+MFlsafug6/UmHn0ubQqU5J3MCEV2ow3OASneUCw==
X-Gm-Gg: ASbGncv8u6zJHGR1yrYNfkAKXOXnz0Q/vtHNVixCPtFISlEhx5i3iQDEgYcHdsMhdRb
	6G7qy1bTCOZr2MoeMwE8jm8JW2JJ7V3Q5J0WGTVTS1aY6I5ePPJmYzLvpBP8bb8bd83gB+nEeyQ
	DYgUN8YB5c0fZ2hLpd4O0rrizyIdRQfjV6jidDEdGC/ACNbLixNkSaOiKWAvbKQarSrqehr9oK2
	nFxBRPVIL0lWul8hNuBkV59isdIyo2paxr+yYpUovepmRkXYSmZ4jmEA4qhujJmYOoNlHYylEsO
	iH7ZTP64pUnbRwdzHu53qzDdqVYu+Jj47gpusZFrmCRU8y7HiR90I/Oy+RSfAwaMOcZ3qyO0kXe
	wAFLW8ikCD+TTxDBYWUvL9U2QgxP98w==
X-Google-Smtp-Source: AGHT+IEyRL7sLG+jvJpNUCP50AZlfcrJP22EvnuWGX8n+FShen3EZOw+XNUOPmXRx2/yW1jTAtyTOA==
X-Received: by 2002:a05:600c:34ca:b0:43d:738:4a9 with SMTP id 5b1f17b1804b1-43edaef7167mr107095415e9.27.1744094085620;
        Mon, 07 Apr 2025 23:34:45 -0700 (PDT)
Message-ID: <abf11b31-0bf0-4add-a49a-17d7723c74f2@suse.com>
Date: Tue, 8 Apr 2025 08:34:44 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 2/2] xen: debug: gcov: add condition coverage support
To: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20250407164608.2558071-1-volodymyr_babchuk@epam.com>
 <20250407164608.2558071-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: <20250407164608.2558071-3-volodymyr_babchuk@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 07.04.2025 18:46, Volodymyr Babchuk wrote:
> --- a/xen/Rules.mk
> +++ b/xen/Rules.mk
> @@ -31,6 +31,7 @@ CFLAGS-y :=
>  AFLAGS-y :=
>  nocov-y :=
>  noubsan-y :=
> +cov-flags-y :=

Personally I would have put this slightly higher up, at least ahead of the two
no*-y. Thinking of it only now (sorry), also maybe cov-cflags-y might be
slightly better a name?

> @@ -133,19 +134,18 @@ $(filter %.init.o,$(obj-y) $(obj-bin-y) $(extra-y)): CFLAGS-y += -DINIT_SECTIONS
>  
>  non-init-objects = $(filter-out %.init.o, $(obj-y) $(obj-bin-y) $(extra-y))
>  
> -ifeq ($(CONFIG_COVERAGE),y)
>  ifeq ($(CONFIG_CC_IS_CLANG),y)
> -    COV_FLAGS := -fprofile-instr-generate -fcoverage-mapping
> +    cov-flags-$(CONFIG_COVERAGE) := -fprofile-instr-generate -fcoverage-mapping
>  else
> -    COV_FLAGS := -fprofile-arcs -ftest-coverage
> +    cov-flags-$(CONFIG_COVERAGE) := -fprofile-arcs -ftest-coverage
> +    cov-flags-$(CONFIG_CONDITION_COVERAGE) += -fcondition-coverage

Why's this inside the remaining ifeq(,)? Surely there's at least a chance for
Clang to also support the option at some point?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 08 06:38:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 06:38:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.941445.1340927 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u22at-0007I4-8t; Tue, 08 Apr 2025 06:37:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 941445.1340927; Tue, 08 Apr 2025 06:37: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 1u22at-0007Hx-5Z; Tue, 08 Apr 2025 06:37:59 +0000
Received: by outflank-mailman (input) for mailman id 941445;
 Tue, 08 Apr 2025 06:37: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=xdvb=W2=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u22as-0007Hq-7t
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 06:37:58 +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 00edf685-1444-11f0-9eaa-5ba50f476ded;
 Tue, 08 Apr 2025 08:37:55 +0200 (CEST)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-39727fe912cso2202598f8f.3
 for <xen-devel@lists.xenproject.org>; Mon, 07 Apr 2025 23:37:55 -0700 (PDT)
Received: from [10.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-39c30226acfsm13708470f8f.88.2025.04.07.23.37.54
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 07 Apr 2025 23:37: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: 00edf685-1444-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744094275; x=1744699075; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=nL4Fa4P0oibNm+iaL9u3gz0ABY3w+PD5Vis4yz/rmmc=;
        b=J8d2NRbCB+LSRhO9BppvLNh0xXZQ5t4Xzdf/rMSTb2pZHeUtYAglxpfneK8drp8Dga
         yBywdMO2amaxzIpUeWiqnc27R31E6LI2e6+vEuGjAe9IYAd+xoBJdrhpYopZX/ZZcuIx
         +rZ0uLvFwP5DDSM+9m0SmluYu7yxzIoZb3AKz5Cq4PYpwWFyOT0TxIMZo+eFE+18tIuG
         nLw/qSKMM2+crLLBhivgSLy9m2M9I9g11PFnsFa6PgChsIXfN+TmqEiuy8BLCXh4OMma
         emiVy6b/3SD35Rgbwutgj5Nl9iJeQ+zYUG7ML2d81Pktc/kChnroqqyo+YiPd3gkfaUw
         jfrw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744094275; x=1744699075;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=nL4Fa4P0oibNm+iaL9u3gz0ABY3w+PD5Vis4yz/rmmc=;
        b=l04tXSVlnfx7Z/V3apmJZGkChaFMbnNDSf/v+C52WdrYZWn12VUd41LlLTvwexTxeZ
         e/qq5CQP/O4a35bLiRLNmu4gmknDa2sa9xZwwH6T1nUo1WoIooKhy2jPq0CfB/u4bwdC
         1zma/FBJlX46lYoTnoe78IDchUvsYxWAguFce5iMsxPRO1Sc2xGROp28FZiXMBbikl1x
         Yx1VfyFyu8h4ps8MZ8jDX9qr7Auw8x7T+4iekokvvdpGt+tjvXlWlLKbw0Zut8fX13fo
         Wlib8Cxnwp9xcpXrjBGiDBgfCQu7B2NxTlR6YUfGE8JwQ7XglJ+aGgg2fmsiVgz50BYa
         xo7w==
X-Forwarded-Encrypted: i=1; AJvYcCVCAUdxJOwFypBRXKJof1h2ocNWEqpydf5//RWSCRcE/Qv0MErwBzMakl6endfYQ12/BEuGwcdDTi0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwZs9oMqs+0VGm7hYs4NgIhaYxEgdjYJrA/gegwt2wIGcCk+g75
	9RpnmuPKL2vGxl1UpMlFvCTxJDPcJOayVpXuyr4b2S8x6cxmONtWrd8CjbhXfQ==
X-Gm-Gg: ASbGncuTGfQwajcZWAKuTF/BGTtX07Pb6s2AWwpM3vpEV2tycxWIUY/Tn3GQHgWT4DJ
	FVSz5LQld9U7lF5Ei6dA27QWWg8XKbKCeWiqXEUS11sJ394Cnvovo+TnL73BJBrL5Bb3rVnNE9T
	BjyuT8Wy6JvopJ6Wc0KknkYhWCsg4P2A9mnxbsZ2pkwrLPrDEb+2t/PbXOnPlujH7cT/RpzR/Ie
	ELK9KciAjZ5+ykI5mN598KHhmL/dwTMy+JyTDGuSiqeWfQZTvIGCux5hJLbLHDKre7KScbG1CsO
	FsJm+ZspVM9tV4tLUiwzuW4vW7FosdJAAWEIiNOml2yxKl6p4crEEIhqqAi8SuKZ7QEmewHG/l4
	AH80U3bKJqK2aIzbNixc4mD2iAJGwsQ==
X-Google-Smtp-Source: AGHT+IHukJAQ1bq0zKGZ1df/H597yz3DfO2sluZPPdBT6tvNUCPNhycLqHIJKmgjqCBYOx4UHqC6Ww==
X-Received: by 2002:a05:6000:2506:b0:38f:3073:708 with SMTP id ffacd0b85a97d-39d6fc00b6dmr10278100f8f.3.1744094275043;
        Mon, 07 Apr 2025 23:37:55 -0700 (PDT)
Message-ID: <b032e7bc-61a4-4dac-97c1-171771869156@suse.com>
Date: Tue, 8 Apr 2025 08:37:53 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 1/7] xen: introduce hardware domain create flag
To: Jason Andryuk <jason.andryuk@amd.com>
Cc: "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>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <20250407194038.83860-1-jason.andryuk@amd.com>
 <20250407194038.83860-2-jason.andryuk@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20250407194038.83860-2-jason.andryuk@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 07.04.2025 21:40, Jason Andryuk wrote:
> From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
> 
> Add and use a new internal create domain flag to specify the hardware
> domain.  This removes the hardcoding of domid 0 as the hardware domain.
> 
> This allows more flexibility with domain creation.
> 
> The assignment of d->cdf is moved later so CDF_hardware is added for the
> late_hwdom case.  Also old_hwdom has the flag removed to reflect the
> change.
> 
> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>

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


> ---
> v4:
> Move d->cdf assignment later

... despite my earlier concern this movement looks fine to me.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 08 06:51:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 06:51:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.941463.1340938 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u22nN-00037X-GS; Tue, 08 Apr 2025 06:50:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 941463.1340938; Tue, 08 Apr 2025 06: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 1u22nN-00036t-Bl; Tue, 08 Apr 2025 06:50:53 +0000
Received: by outflank-mailman (input) for mailman id 941463;
 Tue, 08 Apr 2025 06:50: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=xdvb=W2=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u22nM-0002yu-2p
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 06:50:52 +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 cd81cf08-1445-11f0-9ffb-bf95429c2676;
 Tue, 08 Apr 2025 08:50:48 +0200 (CEST)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-43ce71582e9so35281735e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 07 Apr 2025 23:50:48 -0700 (PDT)
Received: from [10.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-39c300968a1sm14217908f8f.11.2025.04.07.23.50.46
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 07 Apr 2025 23:50: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: cd81cf08-1445-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744095048; x=1744699848; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=YfrqCOY2pWP4kifq5dH2ChpWjHzTgqUtvgIWp/8bsQk=;
        b=WP052pL8C7e6OJhrCd7ElDejL/Trz5vUlTdaH+921p53G1IIty/7hqghwORWlh2Pe7
         YDFTL7nH6F5/Py3CGqfHN0J8R3fVgOQshTLzlS+l1ui9+PaUmmbgv6HPsu5ru33WIJCU
         JwSAr9Zx0832zdt/RQAtkbYzXSdE+iPXkQeFGA6Zxeu46SZn9l7qxqsz1is3R11tJ7qe
         VOhPOeF8DsKGVWcGPBnOcnIyaIk8is4zCsuxsDvnsqBUWat924eHUzrHjdRSQ1FPkHV9
         +rADJfJfypz1BM5MG3TrUVG1qyxGAOpkpkf0wMhObTK/7QYuBf64aGzq9jeAAgGuPBsN
         7MOA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744095048; x=1744699848;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=YfrqCOY2pWP4kifq5dH2ChpWjHzTgqUtvgIWp/8bsQk=;
        b=T7cSK3ebVgDmwO/aBfd67Rbjj9FYODF7d3ESRKx94CF6wXAmSNs/YL8bsqfl19pcpN
         00/ABysBv9PkJS0sYoROWbswShfxzOqasI4VfBbSIxFk8va44XPzXEHUcbGQRgdJ/6vD
         tjYIiNW77HGIMpfEzGqgG9l+93ACq/tXLvyZzdoC58981tpKTj+Lj2NN33wiPqp+jc+B
         LWyls6DmFlUuvR443lE0RcPP9/AiqbC9e4+nXY/qupNM/V+RVmf/eNsu09tcj30ehmVA
         k6FxEAdFAOPG8WJ5zDxgldHKy66rlIbD1VKHyriNsunigviSds5pxuvsCrjdPsVFM2tr
         ylBA==
X-Forwarded-Encrypted: i=1; AJvYcCXXuU9KFR4cB2uM7EE9NYmCFxnyV2OgZJNjKmuNhj7Kny6mv+Q7/o90pYh3K2HTw1BphwWoU4QwScw=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yyrr/c/9Plpcyk4mRZLMfdXXdE0DeA3NeZE2b04Tt/N6YYsxDGQ
	74BSQ9RLHb21ykHR9Lj2VtK9O7sDzgCabT2/2/hss8oJ97ONjL6mAMpNNyZ0tA==
X-Gm-Gg: ASbGncvxWc1e30OdQlRJE95bsSqUO9jrKoZo3M9Xj+ukzSBBSGQEnIq4L8Y2HchGG5B
	s7vibWyKyAldFqknadQ9bap2TUIHMhgX/CTXeX9tj6jVKsC25exWT+dqFBHOSCDJ0z/ocscgNDQ
	AsYFxluad3S/JtfgxChMk3LjrQ/ZZKfpYIHTGaQ8TKISTSJNa15n2V4UyV3cP0i9mLrQsEtUZJA
	CAmltQK3Ytio+23gcOg+orhhXnLXUUsFj8tlLHt7qyVYPaledVxrjRjexb+TajS0ooNMQ2b0Q0m
	4wq1CApE3kk4f6gtd2yWYpXGIzjzJF/xrM0NXiPlR4B1WuF2ZkMTX0RWuMqpfhFRcyeDfrbqyLg
	sign/zxddK4lxhECrhUcm63VXDaCxPg==
X-Google-Smtp-Source: AGHT+IFdt7fghVsyDdhzubgAiGkXME76nSDlqUSoqO9/643pK5mMbVIaRVbqVRdQlGI7SwgbjuUu1w==
X-Received: by 2002:a05:6000:18af:b0:391:2ab1:d4c2 with SMTP id ffacd0b85a97d-39d0de62221mr10667891f8f.37.1744095047660;
        Mon, 07 Apr 2025 23:50:47 -0700 (PDT)
Message-ID: <5c770c10-8c0c-4f13-bae7-386820279484@suse.com>
Date: Tue, 8 Apr 2025 08:50:46 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v8 1/3] xen: common: add ability to enable stack protector
To: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Nicola Vetrini <nicola.vetrini@bugseng.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20250407224009.2577560-1-volodymyr_babchuk@epam.com>
 <20250407224009.2577560-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: <20250407224009.2577560-2-volodymyr_babchuk@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.04.2025 00:40, Volodymyr Babchuk wrote:
> 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
> 
> Stack guard value is initialized in two phases:
> 
> 1. Pre-defined randomly-selected value.
> 
> 2. Own implementation of linear congruent random number generator. It
> relies on get_cycles() being available very early. If get_cycles()
> returns zero, it would leave pre-defined value from the previous step.
> 
> boot_stack_chk_guard_setup() is declared as always_inline to ensure
> that it will not trigger stack protector by itself. And of course,
> caller should ensure that stack protection code will not be reached
> later. It is possible to call the same function from an ASM code by
> introducing simple trampoline in stack-protector.c, but right now
> there is no use case for such trampoline.
> 
> As __stack_chk_fail() is not called by Xen source code directly, and
> only called by compiler-generated code, it does not needed to be
> declared separately. So we need separate MISRA deviation for it.
> 
> Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
> 
> ---
> 
> Changes in v8:
>  - Code formatting fixes
>  - Added an explicit MISRA deviation for __stack_chk_fail()
>  - Marked __stack_chk_fail() as noreturn
> 
> Changes in v7:
>  - declared boot_stack_chk_guard_setup as always_inline
>  - moved `#ifdef CONFIG_STACK_PROTECTOR` inside the function
> 
> Changes in v6:
>  - boot_stack_chk_guard_setup() moved to stack-protector.h
>  - Removed Andrew's r-b tag
> 
> Changes in v5:
>  - Fixed indentation
>  - Added stack-protector.h
> ---
>  docs/misra/safe.json              |  8 +++++++
>  xen/Makefile                      |  4 ++++
>  xen/common/Kconfig                | 15 ++++++++++++
>  xen/common/Makefile               |  1 +
>  xen/common/stack-protector.c      | 22 +++++++++++++++++
>  xen/include/xen/stack-protector.h | 39 +++++++++++++++++++++++++++++++
>  6 files changed, 89 insertions(+)
>  create mode 100644 xen/common/stack-protector.c
>  create mode 100644 xen/include/xen/stack-protector.h
> 
> diff --git a/docs/misra/safe.json b/docs/misra/safe.json
> index 3d68b59169..e249bcbf81 100644
> --- a/docs/misra/safe.json
> +++ b/docs/misra/safe.json
> @@ -108,6 +108,14 @@
>          },
>          {
>              "id": "SAF-13-safe",
> +            "analyser": {
> +                "eclair": "MC3A2.R8.4"
> +            },
> +            "name": "Rule 8.4: compiler-called function",
> +            "text": "A function, for which compiler generates calls to do not need to have a visible declaration prior to its definition."

Nit: s/ do / does /. Not being a native speaker, I'm still uncertain of the need for
the comma in the place you put it - it reads odd this way to me (at least without a
2nd comma). I'm anyway inclined to word this differently, to be more precise
(otherwise the deviation here would equally apply to the data item
"__stack_chk_guard"):

"A function, all invocations of which are compiler generated, does not need ..."

With this suitably sorted (can be adjusted on commit to whatever the final outcome
is going to be):
Reviewed-by: Jan Beulich <jbeulich@suse.com>

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 08 07:12:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 07:12:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.941483.1340946 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u237z-0000Wn-2p; Tue, 08 Apr 2025 07:12:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 941483.1340946; Tue, 08 Apr 2025 07:12: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 1u237z-0000Wg-0G; Tue, 08 Apr 2025 07:12:11 +0000
Received: by outflank-mailman (input) for mailman id 941483;
 Tue, 08 Apr 2025 07: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=xdvb=W2=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u237x-0000Wa-Bt
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 07:12:09 +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 c849a350-1448-11f0-9eaa-5ba50f476ded;
 Tue, 08 Apr 2025 09:12:08 +0200 (CEST)
Received: by mail-wr1-x42e.google.com with SMTP id
 ffacd0b85a97d-39c13fa05ebso2962624f8f.0
 for <xen-devel@lists.xenproject.org>; Tue, 08 Apr 2025 00:12:08 -0700 (PDT)
Received: from [10.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-43f11eb708fsm7312485e9.1.2025.04.08.00.12.06
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 08 Apr 2025 00:12: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: c849a350-1448-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744096327; x=1744701127; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=QUObOkx8rvFp79ELXW671pjeJwSoCSeHjS0UtDC6N8w=;
        b=gX65NG8OU4McaSZmFVzp3UD0E5lYP93ofoa0jukHndmXXJf9YWmN1JC6K9CiF64Ixc
         wdAK31VWa3/uqv8GkxDuVtgSfPfcDr5OUegNY8AZzwrpCf01K/+cI6od53agT2IJ5JYy
         I8lRKdCUZjayOVTg8pYueOj7r/qRH38PKrViMbn2oKHxajs6AwWETu25zMis8WpILQ3K
         colY511N48K5ye1KWp2SFIFAlqWiKpQ9dTvtJ9+L2eONnj4vL7x31VPmS0WJ+zXM1fAQ
         CS/MJr7fvUxZT7vghQ2e+xyFdPRGiGXOweJzZ/oNz4qxh8fcTwDitPOPf2GHZB5coqEc
         nnhg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744096327; x=1744701127;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=QUObOkx8rvFp79ELXW671pjeJwSoCSeHjS0UtDC6N8w=;
        b=BloIW242KTXV5C531V3yROOCXPMchJPvxvVs7kh3eL1p+yQXiy1uG1IRzXEmj53hD9
         CoQ81VZ2Igbt0F1QflIw7GB6nC6rHgWtCHDEBdIJB4D3ggKcuAp+iWAr//QGlunbTrF4
         CsFROdMoajZu2OQKe1S+Yd6evSqnonJwbNIHWHqizF9XY/77RF0PTzpI9i/vWYSNvJ+f
         Zo2womE8SAplU6inmRxw70lqaK+LOM2YbPYrXypumJZwcK/5mdcBUQiHAmelSbYEFBfz
         StnjfPEnEbAef/5F/8qk/1SgZZTKnoGdRrHtD+8279hpTRPExVffpRHYPr2MhBBw+gRU
         9rtA==
X-Forwarded-Encrypted: i=1; AJvYcCVi4EuzZn27byLgtzcqjtCn3pYIPTig8MYK3WTK4s5qI/o6EbeVitAzEDJ4oM/rCUMU8bNZsQP8zS0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzIpC2+E8Leoh6uiuKlRcZu+t1O9ZvrZK/26f0hVfrfhJ9k1fJb
	G3qzjVRB2nNs9lkwTdIHGHVKe3Da3+7YkQCA/vKBAS2aOCf0mFFGjscrF+Ub5qWPmMyrQCrIlKQ
	=
X-Gm-Gg: ASbGncs/a8guzlX7RA18SRvtgX0kegN598pkfPdUZ9QM5eZo1IE9I3jDozUJdvy2cMn
	FLrwy3HM75RQYNaVTNqfNDk53zI8ZFY1zpVJZptzttW5Y5TW9ZkPsn73QlxhdOPnnjOIGrplb8K
	n8QZo5GfzY7XgcbEqiIO3c6NJa9mbm/ORV82KDchW0gB0aHfNL80PFpV8vvLipyxx83eJUboHhV
	CChdnQyRV8TBF7U5XAenYqal512CPUrY9NhkYP5jfTz6+6jXcDENisIJHRN9alAZGSleVsAQk17
	UoqTmtgBMhlOUNGRLg9pRzj7gaTKRdqbXirYmQ3X/7gnvnxswKshOrQw4NNFbBSubO1Ca+9w1XC
	xN4TeRnkeAoC7IBVSqWIceUN9GWMFklDqYYG2IdzB
X-Google-Smtp-Source: AGHT+IGTz0jyl6RnH4mLNAZ1D3WSdUx45SXfk0hNe40adJtF7GPpmEaRtYSS6k958U2bbikQLBsn0Q==
X-Received: by 2002:a5d:648b:0:b0:39a:d336:16 with SMTP id ffacd0b85a97d-39cb35aa6ffmr13095348f8f.34.1744096327434;
        Tue, 08 Apr 2025 00:12:07 -0700 (PDT)
Message-ID: <e6e43d87-4e6d-498f-b234-a2b577fce7b6@suse.com>
Date: Tue, 8 Apr 2025 09:12:06 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1] x86/vmx: Rework __vmread()/vmread_safe()/vmr()
To: dmkhn@proton.me
Cc: andrew.cooper3@citrix.com, roger.pau@citrix.com, dmukhin@ford.com,
 xen-devel@lists.xenproject.org
References: <20250408011454.2274613-1-dmukhin@ford.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20250408011454.2274613-1-dmukhin@ford.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.04.2025 03:15, dmkhn@proton.me wrote:
> From: Denis Mukhin <dmukhin@ford.com>
> 
> Use `asm goto()` in vmread_safe() to simplify the error handling logic.

This can't be quite right, considering we need to avoid outputs there.

> Update __vmread() to return `unsigned long` as per suggestion in [1].
> Rename __vmread() to vmread_unsafe() to match the behavior.

I disagree with this renaming: See e.g. rdmsr() and rdmsr_safe() that we have.
The common case function wants to not have unnecessary verbosity in its name.
And there's nothing unsafe about it in the general case. Plus if there was
anything unsafe, many of the call sites would require some form of error
handling.

> @@ -1957,38 +1955,44 @@ void cf_check vmx_do_resume(void)
>      hvm_do_resume(v);
>  
>      /* Sync host CR4 in case its value has changed. */
> -    __vmread(HOST_CR4, &host_cr4);
> -    if ( host_cr4 != read_cr4() )
> +    if ( vmread_unsafe(HOST_CR4) != read_cr4() )
>          __vmwrite(HOST_CR4, read_cr4());
>  
>      reset_stack_and_jump(vmx_asm_do_vmentry);
>  }
>  
> -static inline unsigned long vmr(unsigned long field)
> +static inline unsigned long vmread(unsigned long field)
>  {
> -    unsigned long val;
> +    unsigned long value = 0;
>  
> -    return vmread_safe(field, &val) ? 0 : val;
> +    asm goto ( "vmread %[field], %[value]\n\t"
> +               "jmp %l[out]"

Why's the JMP needed here? With it dropped, why's open-coding of vmread_unsafe()
necessary here? And why's the "safe" variant being replaced by the "unsafe" one?

> +               :
> +               : [field] "r" (field), [value] "m" (value)

"value" is an output and hence cannot be just "m" (and hence be an input").
The only option to make such work correctly would be to ...

> +               :

... add a "memory" clobber here. Which may have other unwanted side effects.

> +               : out );
> +out:

Nit (here and elsewhere): Labels indented by at least one blank please. See
./CODING_STYLE.

> +    return value;
>  }
>  
> -#define vmr16(fld) ({             \
> +#define vmread16(fld) ({          \
>      BUILD_BUG_ON((fld) & 0x6001); \
> -    (uint16_t)vmr(fld);           \
> +    (uint16_t)vmread(fld);        \
>  })
>  
> -#define vmr32(fld) ({                         \
> +#define vmread32(fld) ({                      \
>      BUILD_BUG_ON(((fld) & 0x6001) != 0x4000); \
> -    (uint32_t)vmr(fld);                       \
> +    (uint32_t)vmread(fld);                    \
>  })
>  
>  static void vmx_dump_sel(const char *name, uint32_t selector)
>  {
>      uint32_t sel, attr, limit;
>      uint64_t base;
> -    sel = vmr(selector);
> -    attr = vmr(selector + (GUEST_ES_AR_BYTES - GUEST_ES_SELECTOR));
> -    limit = vmr(selector + (GUEST_ES_LIMIT - GUEST_ES_SELECTOR));
> -    base = vmr(selector + (GUEST_ES_BASE - GUEST_ES_SELECTOR));
> +    sel = vmread(selector);
> +    attr = vmread(selector + (GUEST_ES_AR_BYTES - GUEST_ES_SELECTOR));
> +    limit = vmread(selector + (GUEST_ES_LIMIT - GUEST_ES_SELECTOR));
> +    base = vmread(selector + (GUEST_ES_BASE - GUEST_ES_SELECTOR));

The renaming causes entirely unnecessary extra churn here (and of course
elsewhere). The patch is already big enough without this.

> --- a/xen/arch/x86/include/asm/domain.h
> +++ b/xen/arch/x86/include/asm/domain.h
> @@ -595,7 +595,7 @@ struct arch_vcpu
>  
>      /* Debug registers. */
>      unsigned long dr[4];
> -    unsigned long dr7; /* Ideally int, but __vmread() needs long. */
> +    unsigned long dr7; /* Ideally int, but vmread_unsafe() needs unsigned long. */
>      unsigned int dr6;

If you left this comment alone, all would be (largely) fine - this particular
aspect could then be tidied in a follow-on path. But vmread_unsafe() specifically
does not need "unsigned long" anymore. The issue was with __vmread() taking a
pointer argument.

> --- a/xen/arch/x86/include/asm/hvm/vmx/vmx.h
> +++ b/xen/arch/x86/include/asm/hvm/vmx/vmx.h
> @@ -320,16 +320,40 @@ static always_inline void __vmpclear(u64 addr)
>      BUG();
>  }
>  
> -static always_inline void __vmread(unsigned long field, unsigned long *value)
> +static always_inline unsigned long vmread_unsafe(unsigned long field)
>  {
> -    asm volatile ( "vmread %1, %0\n\t"
> -                   /* CF==1 or ZF==1 --> BUG() */
> -                   UNLIKELY_START(be, vmread)
> -                   _ASM_BUGFRAME_TEXT(0)
> -                   UNLIKELY_END_SECTION
> -                   : "=rm" (*value)
> -                   : "r" (field),
> -                     _ASM_BUGFRAME_INFO(BUGFRAME_bug, __LINE__, __FILE__, 0) );
> +    unsigned long value;
> +
> +    asm volatile ( "vmread %[field], %[value]\n\t"
> +                   "jc 1f\n\t"
> +                   "jz 1f\n\t"

Why not JBE as it was before?

> +                   "jmp 2f\n\t"
> +                   "1:\n\t"
> +                   "    ud2\n\t"
> +                   "2:"

This is specifically why we used UNLIKELY_*() before. There's no justification
whatsoever in the description for the dropping of its use here.

Plus - where did _ASM_BUGFRAME_TEXT(0) go? A bare UD2 isn't acceptable, as it
won't be possible to associate it back with the respective source line.

> +                   : [value] "=rm" (value)
> +                   : [field] "r" (field) );
> +
> +    return value;
> +}
> +
> +static inline enum vmx_insn_errno vmread_safe(unsigned long field,
> +                                              unsigned long *value)
> +{
> +    asm goto ( "vmread %[field], %[value]\n\t"
> +               "jc %l[vmfail_invalid]\n\t"
> +               "jz %l[vmfail_error]"
> +               :
> +               : [field] "r" (field), [value] "m" (*value)

See comments on the vmr() adjustments you're making.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 08 07:22:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 07:22:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.941497.1340957 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u23I4-0003HK-0V; Tue, 08 Apr 2025 07:22:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 941497.1340957; Tue, 08 Apr 2025 07: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 1u23I3-0003HD-Tl; Tue, 08 Apr 2025 07:22:35 +0000
Received: by outflank-mailman (input) for mailman id 941497;
 Tue, 08 Apr 2025 07:22: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=xdvb=W2=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u23I2-0003H7-Kt
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 07:22:34 +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 3cc2a884-144a-11f0-9eaa-5ba50f476ded;
 Tue, 08 Apr 2025 09:22:33 +0200 (CEST)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-3913958ebf2so4607510f8f.3
 for <xen-devel@lists.xenproject.org>; Tue, 08 Apr 2025 00:22:33 -0700 (PDT)
Received: from [10.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-39c301b72d5sm13882720f8f.47.2025.04.08.00.22.31
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 08 Apr 2025 00:22:32 -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: 3cc2a884-144a-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744096952; x=1744701752; 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=PBJ1/01DLy56cXg76sfjWaapcTytbNbg4uSVjJPNke8=;
        b=bngiWC3SiOt2NmhXaDfhvcTlSgAgPfkvWvfVVebVXteIrY/WNCRFHZ71a2d9YOA+nL
         RIWwhS4mNy4MyY6KUadZaT5t7BiguHVvh369fYiw5oOl8u86Zvo0R3K9HfLPDeglACtL
         ulBUEQmb4jqjqMu8nMgHFef156KQ+MgrsOiZM5l/u8OfZF2Q2HcaA6sbSRj7D/2g7caG
         dCmwzfFtneh3Hmo16YnjAJt6nGVLhj8A8o/Ek2+eRJY9afyy5j4yE9SK+q0cNe8sZQaA
         IBiAQZlTLrctVgEbHCmMkRGxvLmwibJrdIHL4Kg4QgEGlpWO3HYojM1y6BmGpSMNVo5F
         7kVQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744096952; x=1744701752;
        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=PBJ1/01DLy56cXg76sfjWaapcTytbNbg4uSVjJPNke8=;
        b=D9n57JaJD7B7bHQG88pZORdi1kVsMtSvD9VSgyn7sKYx/tWnNyaAZbqL85AELd9wJm
         HFZvwbg+tEJRLeTb2DDUM7fUHbwxGmTsXsNlKMTBkPhbwUVT5rZ2ZgdKE73qGOtE+HBT
         Vp2RPGy3BJFi610zyF6oVoxqHpXL8dUccV92LN0Hf1KTCi6Olt8lEf7vMdmMjGafMRw0
         XpyqlN0SfLgl5KIWvLwD3asDz/sD3uO5e7ociS+0NML8LWcNNRROsE/qoJipYXmh1KDu
         KKuws3+8nCJajsErZIZ1HHeUcMSkWZLwDlHKSLidcoqHwU/jN10QUeJpUu8Xk+YxIPhN
         YVJQ==
X-Forwarded-Encrypted: i=1; AJvYcCVp2hRHjIqB8Vo2IB2tWzFJ/Ax3iqFymGZx5ShkYV6pr2/GaGvJJFHmFhxYDeqI8v7f0jhqefHmmEE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwaIJJFMDgADrEFQYdLlnGbPqaFUyS/dHW7uJ2gPOr0pr0v9XxK
	mQcl+zPKqBraTmM254L8jBPlBkTYLBtNAR2p9aSEySu3+fitEpWkYxhVPNh97g==
X-Gm-Gg: ASbGnctf+p8OJapPCGSKdhWxbjWCB45PRCfKVCn+jIdLZ/PXSODrXIfziuRKsq7rcJA
	3q1J4JL2O1m7PiA4CRZw/zmJoyhhlxyq2mx9wpDralFsx/SxJEOvionNk7pjtvknL+QeM4F87tf
	xTOAo5A1ZxvGJbuhft5QdU14goedeEIzfIIAB8fkkY2Mtge30cmeUoTCFySVNqwM0TPB8UOESvZ
	iwfCiO93CyFqcpIfW4QF1xa3a6I59xdOjd8GUmRxmRTlvAIr7Vq2p49f8YYvjKse5VQU06S3ANP
	bwO7t2W6kFUbx8YfLLhzrJOR3THlT9Vc4I6ekcQWOFch2tX3cqyw8kaUkilWVuVNw6GjfZD0uFX
	RLacBjTvbCr7IoyKBTV2UPAEli1ARMg==
X-Google-Smtp-Source: AGHT+IFNLk+NG3lepXxkK26KmqCiTe8sd0qK6nwP/ufLeFE8bESZVz7+0vnn7je/mIf/USzxjQQYsg==
X-Received: by 2002:a05:6000:2909:b0:39a:c80b:8283 with SMTP id ffacd0b85a97d-39d6fc7c97emr8286894f8f.31.1744096952409;
        Tue, 08 Apr 2025 00:22:32 -0700 (PDT)
Message-ID: <5eb838a3-b18b-4d7d-8f09-93d92c2e2728@suse.com>
Date: Tue, 8 Apr 2025 09:22:31 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1] x86/vmx: Rework __vmread()/vmread_safe()/vmr()
From: Jan Beulich <jbeulich@suse.com>
To: dmkhn@proton.me
Cc: andrew.cooper3@citrix.com, roger.pau@citrix.com, dmukhin@ford.com,
 xen-devel@lists.xenproject.org
References: <20250408011454.2274613-1-dmukhin@ford.com>
 <e6e43d87-4e6d-498f-b234-a2b577fce7b6@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: <e6e43d87-4e6d-498f-b234-a2b577fce7b6@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.04.2025 09:12, Jan Beulich wrote:
> On 08.04.2025 03:15, dmkhn@proton.me wrote:
>> +static inline enum vmx_insn_errno vmread_safe(unsigned long field,
>> +                                              unsigned long *value)
>> +{
>> +    asm goto ( "vmread %[field], %[value]\n\t"
>> +               "jc %l[vmfail_invalid]\n\t"
>> +               "jz %l[vmfail_error]"
>> +               :
>> +               : [field] "r" (field), [value] "m" (*value)
> 
> See comments on the vmr() adjustments you're making.

Oh, and - why is "+rm" lost here and there? We shouldn't be taking away from
the compiler the option of not going through memory here. Aiui that's solely
because you figured that you can't use "rm" (i.e. an input). But then you
drew the wrong conclusion.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 08 07:33:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 07:33:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.941510.1340968 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u23Sk-00065j-W6; Tue, 08 Apr 2025 07:33:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 941510.1340968; Tue, 08 Apr 2025 07:33: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 1u23Sk-00065c-RY; Tue, 08 Apr 2025 07:33:38 +0000
Received: by outflank-mailman (input) for mailman id 941510;
 Tue, 08 Apr 2025 07: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=h40A=W2=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1u23Sj-00065W-Tu
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 07:33:38 +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 c5033d99-144b-11f0-9ffb-bf95429c2676;
 Tue, 08 Apr 2025 09:33:32 +0200 (CEST)
Received: from BN9PR12MB5273.namprd12.prod.outlook.com (2603:10b6:408:11e::22)
 by SJ0PR12MB7474.namprd12.prod.outlook.com (2603:10b6:a03:48d::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.33; Tue, 8 Apr
 2025 07:33:28 +0000
Received: from BN9PR12MB5273.namprd12.prod.outlook.com
 ([fe80::cf66:58ab:47be:4b13]) by BN9PR12MB5273.namprd12.prod.outlook.com
 ([fe80::cf66:58ab:47be:4b13%5]) with mapi id 15.20.8606.029; Tue, 8 Apr 2025
 07:33: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: c5033d99-144b-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=g4PiV91pxcCzD1IXc/wqAUcFimrA7jtvb/i7P1+LJBO4AR804Fz9qUY1NNR5u9AFMfXWNk7SfVQxUBJY4OlCvIvViODXDJJw7Tnsz3SPoynR2JqHqHWWxSqLWeW9TirzaLOb7J/jRlaBp1SzfpSCIvuonELXjU8z+F371BkMyzY0OrET23/h4uACIDBkRHPrWL7fyzLL6gq3c8sviBc/QreeqCVotA6EClJdOQl7/LIUPjL5npuvw3lASq9/3YJuyLSvNYhxCJUL5kNLSC2/h39jAUAKY1SJOP1RyOUOKzWT1mlvLj26X9B8gHI2ILVus6ZKkpOhm3UbCokaNDy1Cw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=f1ZrjxlzfKLAEId4yFO3QJ+CrKM7htkiP8IFzVGtPPQ=;
 b=mvLapJGTMj1imzgEr1vxaYmyPDVT70ZK5t7hB2rvcm0ZoS0drOyn9uzYl13cU2IR1ILKuBiD3AtUqzQtX8TETQtgmhavbB/34NCJn6SsPQb33KffqQ9cqWwL6skIEtn0SWROK1YfYhO4WciXTxCtWkTNnt0DsS/TK9LFayI8tgmmTBGkk5rkx7CkiLhRXvTywfcOnqy4Neyk86YOgYUi92P1mgtcSZ7M5gHzbyfFsG1imYWIIbt5k8boKY1Se40CSFebUuIySJf2RzBbZ8Z0f22GrQw81LbtHYAsOK5NOOkSPzqfDd1K0UhBrn+Q2+EedAZRq8Idoe0knz/A0GXfBw==
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=f1ZrjxlzfKLAEId4yFO3QJ+CrKM7htkiP8IFzVGtPPQ=;
 b=wHfSbudlZOeSvy6RGaSvPyeG/bizZZ74etVOMRVYAJY7OtgfI9Mo8TefJhsI4FY4ermkCMcqc8gIA+iTByzNt9VaYEbH2kc1x1MECq8eVJiH83/1nGF21b4ASfTprks/6Xy0Sm5usgYehUlcnGRK7/Zmupxph31fSfIE+iIUBJM=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <d03fcf63-d946-48d6-b96a-a6b54d3dd840@amd.com>
Date: Tue, 8 Apr 2025 09:33:24 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 1/3] xen/arm: Move some of the functions to common file
To: Ayan Kumar Halder <ayan.kumar.halder@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>
References: <20250407184443.1790995-1-ayan.kumar.halder@amd.com>
 <20250407184443.1790995-2-ayan.kumar.halder@amd.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <20250407184443.1790995-2-ayan.kumar.halder@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR4P281CA0334.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:ea::10) To BN9PR12MB5273.namprd12.prod.outlook.com
 (2603:10b6:408:11e::22)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN9PR12MB5273:EE_|SJ0PR12MB7474:EE_
X-MS-Office365-Filtering-Correlation-Id: 6e616e65-def5-48e9-763c-08dd766fa6e0
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?T0hFV04zSm5EVzVPU2RXRU9NT05JMEh4V3k3U3h3bDhFN3BTSnRvK3loR3B4?=
 =?utf-8?B?aUZUVnNwZktaakRvc1RHc1kyampUTlVlKytVSGpOVW4wYmdUUUx2TVlXWXk5?=
 =?utf-8?B?QkNKNXBJM2xWaFFJeHJXRzhNUlhMcld5by9EaFFPTDFneVZXTkozMEpoZFEy?=
 =?utf-8?B?blRSNnVnUTdTVlJVWU5kVHpHcUJ2bmw1Uzc0aFFuQThZdjc4RE5sYnp3bGx4?=
 =?utf-8?B?SnJWMGVZZkxoWnhESm01dFlXdDZhYnk4OGxTbGNGUWFOaE5wS0E4bWhNSXd2?=
 =?utf-8?B?L2Q5TEY2OGhDUEw4dlV4WmlUeEVjM1ZqNjJxRnZHRGd6N0ZJQ254cnYxVzhJ?=
 =?utf-8?B?ZXE4eThKQmJDemwreEFxeXRHYVpTM1BqUThaQnNkTWZWUmQ0R2hUYUxwSFhx?=
 =?utf-8?B?U0MyZCtGZC9WMXdiRTI1YU9pZFVKWVQyOWI0Q0g1MFlZOGNjSUIvYnFxSkpu?=
 =?utf-8?B?QUhmS1JlNFZHUVZDb1JhdmJUaEljYUVaMFF3QjBBODhJWjZMWDA3bmpGYjht?=
 =?utf-8?B?NUhIVnY5UXZzTUxYc1diY0xwbjdhUGwvVGtwTDE0OEJxU0xzenU5S25SaG1D?=
 =?utf-8?B?UkNBVkxLV1hjdzBRVjQvL0t6VzBCTUkxSlE3a1ZUREdWaW53ZlhBTFdTbHRs?=
 =?utf-8?B?Q3lOM2YvOXpOWkxKUDVGS2laYnpodFBtblJCbXA5TDdrSVBHN2g0L0ljcFdG?=
 =?utf-8?B?VTAxeURZN3lPTHRwNmhudDg0bFhXWVNybmt5RmtZYkQ4bzZiTEltQ3lsNUE2?=
 =?utf-8?B?eTRnd2ZHV0twZVFueVhEY2RsOGU1bnFEZ1UxZy9mQWxTcXk3THZkTUxHME03?=
 =?utf-8?B?MDJzSENkRmxlenFsYTV1T0M3TXpqWThSU2RseUpGVWJpUnQvR3d3cTYzcmdN?=
 =?utf-8?B?UEZlTlBxdE5EZ2VObU13YUlRNHJBVDFVaFhUNDRScnh4UWk3WlNja0JRc1M3?=
 =?utf-8?B?cFlOWXVHZnhudFNkNExLUWdmdHlHemxJUGk2S3c0OWNXYktBNHN6dHI5STUy?=
 =?utf-8?B?bmplNU0rQjdwcXVMZmdvSEQ2d040cGdLWkJ4dzVoTi9uS2ZKNkY0TTNzdVJw?=
 =?utf-8?B?RGNVYk9HcGZIM2pDamViMlM5NmFUb2hRLzJWZ0h6U2d4eWdmZkRsNmgveEw0?=
 =?utf-8?B?U2pZSjBxQUpiWFJGdnFnRjI5SHlaYU9renlIdXlnTFdqOGxaRjlKZEpPZXdT?=
 =?utf-8?B?RlptUTNlWFVJdnc2NXU2K3lRMzdBUHhSRTE0Q0NSemhmbkZlL2ZGcWMzMlM4?=
 =?utf-8?B?QkhLWVRYaGE3clNpY0FHVjRqbDB5NFVObXRnVy9RcDY4TG1OTkM5Ny92RXFE?=
 =?utf-8?B?eFVtcldYc3oweGdZYVFuU3BVSS9oMVZkeXFPZHRhclowUkR0YThnMjhmU3B5?=
 =?utf-8?B?VHZGVUVrSk1ldklKa2QybGtnU1dtUGZyOXp0bUgyYStXakJNNnFTWFhXMjF2?=
 =?utf-8?B?bnBnZi95eUQrVkFSNElSQVh3SFJra3RrcElhZEhYY1NsdUJmN3VOMCs4SFBB?=
 =?utf-8?B?UUNSbGJJM2ppUC8zQXdiOUIzMGJYQTdHcXJ2d2NOeUdpMVhDYzR5eFBYK3Bi?=
 =?utf-8?B?SmI0TnMweTJ0dml6VHhsYzl2OHNXMStoVFJJT2p0dURJSGFRdEJGaWF1VVls?=
 =?utf-8?B?eWlycmdSU1VuZzV5M1FNQjR0ajI3YVFqNkJUY3EySStXOUJBS3FZZ2s4MjhL?=
 =?utf-8?B?MTRhM21KK3pNSGs2WWJkK2xFTWF5bHlUUWFQVkpJeGxjZUltQlZBT3lhald3?=
 =?utf-8?B?bmhiOHYvOVJtd29ycGJ5cHh4aC9obDR3NEJZWlZwZWxLblMxdEtYT3pBcFE1?=
 =?utf-8?B?dXEvMlloQjRCdm1yWWgrQ2hSTnhMaGloWVk1Y0t3YVluQXBCbnovVDJxOVN0?=
 =?utf-8?Q?bZr7tkMMQ3icq?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN9PR12MB5273.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?cjROMFhDOXNkNXRidE05OGw2NWVLTXk3ckt2L1ZxMU4raGRtQ1lGUUVQUExa?=
 =?utf-8?B?Ukw5Q09ZcHY3QkRPZ254c1NvcDMxN1FDS3hWSjBQOVVwLzNnMTl2MUUwL1pL?=
 =?utf-8?B?NzY4WVUwMGsrZDFWbENwL0Fxb2luTzdwdi85eVJ0RUxaSWQwMy84eWtvRmRr?=
 =?utf-8?B?R3I1TXlQS2tiUXdhVVJSRkM1bDNtbGxmSDljV3k2K0pXZXNhWjJhZkhJcklT?=
 =?utf-8?B?ZnpZWEJzK2psb3JweTBaOVhHQThRNlFlbVM1eXNNbm5tT20rRzhLWjh5eXVW?=
 =?utf-8?B?dEx5S3NxRjJuY0tMbjR4TWQ0Z3pweE5TbkJ6bkM4dUpxUndmQS9JaGRaYTZO?=
 =?utf-8?B?U3JCb0U4MnA5bXhST3gyYS9KNnJjdG5seWlRNDJlTE56a1lHeWMwNXhZODdS?=
 =?utf-8?B?ZEdtV2tZZWdwMVRDMkxYZ0xvblVrTXZ5UndzaFhqUmhvRmN1UG5HRmpCVzlB?=
 =?utf-8?B?bnRqbVVLSWRwektLMktPank4cVROTTl0S2Y1UDVmaFZaRGpkbTZoZ2R1YWtn?=
 =?utf-8?B?TkZwbzhRVjZYRW1XZjlmc1Q5VXBPQndXQTBBSEZMb28yeC9QNFg3L0tPdlJ1?=
 =?utf-8?B?TlQ4RE4xeEg1MjdUM3hVWmtaeEtmV0FIMXVVbkdnSlBCYnJMV0w5WkliNy80?=
 =?utf-8?B?aU85U3JsQkQzRHExYk1Mak9zNmZ6N1pvRlhkaVA0TUxZcXUzREFkcXZPYkpj?=
 =?utf-8?B?c3RwdjNxS2ZobUlCeG02RUZjRDJnbHJLVzZ1dlFNSEpxWDRmN2pEUldCQmdt?=
 =?utf-8?B?ZUdKVXlBRG0wR21OY0dUQjJkUmhwSXRHUWZpbVRrNkp1Njg5QkVqazZlaEhB?=
 =?utf-8?B?RUdDUGFhTFovUTg3N3dILzAyWjFsTVpEcjJ2TTEwTlRienZtdW5xUTgxRTlU?=
 =?utf-8?B?L0Y5M00wQXUxb1F1WkJoQlErQ1M4dHBEU0UrK1F3Z0FTMElnV3FzUHlFMFp6?=
 =?utf-8?B?TUFnc2RzbVVPaWJKZXNDdHJGbW0rajBGU25qNDduMGovZ3VkS1d3c213TGpp?=
 =?utf-8?B?RjVrY3crVytlU2Y0YzJJRWNxVk5ML3ZQR3VneCtkS090aE5QbUpmZEFMZjBp?=
 =?utf-8?B?RjZDRHN5c2RoTlNTcFNycUo1TWp6MC9MdmtIVjVhRTRaSVBXSCtUWWF3bGJ1?=
 =?utf-8?B?ck1YU0VNNVJMRDN2RkxFc2hpMFV1bXA4NGs0eUlzY3pDb1lwWEgzaGkyUDJv?=
 =?utf-8?B?UlhWcUlkaEpQam1vcVhvRHFJQ3JGL0xCZHhVV0hkZ0YvNDNNVUU3OWU5WmR1?=
 =?utf-8?B?Um5zY3UvMXhmRTlwQ0wvQ3RsRjhkdVc1VW9Cb2xickQ1K3JjOFI5MGUrTTlw?=
 =?utf-8?B?YzFPcHVIYjloYXpqVWVLbzRJRmZUMkJLN3NBNnZEODArUnhVVmhpZVIxWjlr?=
 =?utf-8?B?QUZuZDFSaFA2UWR0UWt0SHRjeU1iRXZBcjByK2tVU0w4RE5QaFhXUGtvejFw?=
 =?utf-8?B?WXUvUGVKR1RwUW81RFhyODZVcjFCMWJONVVwelJMdTZDQkNMTGFOdGVpQVUx?=
 =?utf-8?B?NmxBOGROZWxnN21mS2tJRFV2M0RyVTAvSnpHemdENUo2RDZSSk9OVXJucXRy?=
 =?utf-8?B?NUM0OVdmcGtrVHk4QU83Und5Rk4vMENkR3VMTGFqZWlDUWJCdmo3MENOazBC?=
 =?utf-8?B?Sm5qRHl4a1NuNytndG5zR1piWURuY0ZlMkxVK1VWdjEyckc2bUdaZlRSZGox?=
 =?utf-8?B?dUVXL2dONWFjMGp1RkpOR05JczlrY3ZBR2N4dWxZNWhnQmFhYkttc2NoZ1pr?=
 =?utf-8?B?STFsL3RrSnJQVlBxRWpiM2dtTWFGcUdnNzZwdHVUUnZlM2Y1UUZJYWd3OEdr?=
 =?utf-8?B?TWliTHU2clJmQzlrZnZaMkNLWmE1d001eVJCMm4waWoxaDJmTWdrSUhtTWx6?=
 =?utf-8?B?aHpDa1NnWVJhMWQ5Mk1BdWpsTGE4dTNFYjdPNnRJeU5CUDBhUHZ6RjkxaTRp?=
 =?utf-8?B?TjVPdnV4S25KZ0JrTDN3dnJaSWM0a1BueWhqZXV3Z05vclZ5ZFQvWGY1T3dm?=
 =?utf-8?B?aTgzcC9RWHBJS1hZVDg4NXcxUllWb3lFTUE4ODFwR0F3Z3FUa3YwODV3L2Z5?=
 =?utf-8?B?MmNzUUw3S1VOcUVoNldtVEZpSG5VQWZKVUdHem5aT0lwekdaclNtOTVGcnFl?=
 =?utf-8?Q?niObjO+biCj0imgKGHyBKQZfL?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 6e616e65-def5-48e9-763c-08dd766fa6e0
X-MS-Exchange-CrossTenant-AuthSource: BN9PR12MB5273.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Apr 2025 07:33:27.2020
 (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: K+vIDYJaKR9Eh/CsgISWmbB47N9M8K+WHlBY6q3uqgMVPFv40Jrp7WFlQ0bJGabe
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR12MB7474



On 07/04/2025 20:44, Ayan Kumar Halder wrote:
> Added a new file common.inc to hold the common earlyboot MPU regions
NIT: Describe your changes in imperative mood

Also, my understanding was that this file will contain common constructs not
only regions related. If this is just for regions, then it's better to name it
regions.inc.

> configurations across arm64 and arm32.
> 
> prepare_xen_region, fail_insufficient_regions() will be used by both arm32 and
> arm64. Thus, they have been moved to common.inc.
> 
> *_PRBAR are moved to arm64/sysregs.h.
> *_PRLAR are moved to common.inc as they are common between arm32 and arm64.
> 
> Introduce WRITE_SYSREG_ASM to write to the system registers from the common asm
> file.
> 
> Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
> ---
> 
> Changes from
> 
> v1 -
> 
> 1. enable_mpu() now sets HMAIR{0,1} registers. This is similar to what is
> being done in enable_mmu(). All the mm related configurations happen in this
> function.
> 
> 2. Fixed some typos.
> 
> v2 -
> 1. Extracted the arm64 head.S functions/macros in a common file.
> 
> v3 -
> 1. Moved *_PRLAR are moved to prepare_xen_region.inc
> 
> 2. enable_boot_cpu_mm() is preserved in mpu/head.S.
> 
> 3. STORE_SYSREG is renamed as WRITE_SYSREG_ASM()
> 
> 4. LOAD_SYSREG is removed.
> 
> 5. No need to save/restore lr in enable_boot_cpu_mm(). IOW, keep it as it was
> in the original code.
> 
> v4 - 
> 1. Rename prepare_xen_region.inc to common.inc
> 
> 2. enable_secondary_cpu_mm() is moved back to mpu/head.S. 
> 
>  xen/arch/arm/arm64/mpu/head.S            | 78 +----------------------
>  xen/arch/arm/include/asm/arm64/sysregs.h | 11 ++++
>  xen/arch/arm/include/asm/mpu/common.inc  | 79 ++++++++++++++++++++++++
>  3 files changed, 91 insertions(+), 77 deletions(-)
>  create mode 100644 xen/arch/arm/include/asm/mpu/common.inc
> 
> diff --git a/xen/arch/arm/arm64/mpu/head.S b/xen/arch/arm/arm64/mpu/head.S
> index ed01993d85..4d76a3166e 100644
> --- a/xen/arch/arm/arm64/mpu/head.S
> +++ b/xen/arch/arm/arm64/mpu/head.S
> @@ -3,83 +3,7 @@
>   * Start-of-day code for an Armv8-R MPU system.
>   */
>  
> -#include <asm/early_printk.h>
> -#include <asm/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 */
> -#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.
> - * 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
> - * Output:
> - *  \sel: Next available region selector index.
> - * Clobbers \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)
> +#include <asm/mpu/common.inc>
>  
>  /*
>   * Enable EL2 MPU and data cache
> diff --git a/xen/arch/arm/include/asm/arm64/sysregs.h b/xen/arch/arm/include/asm/arm64/sysregs.h
> index b593e4028b..3ee3715430 100644
> --- a/xen/arch/arm/include/asm/arm64/sysregs.h
> +++ b/xen/arch/arm/include/asm/arm64/sysregs.h
> @@ -462,6 +462,15 @@
>  #define ZCR_ELx_LEN_SIZE             9
>  #define ZCR_ELx_LEN_MASK             0x1ff
>  
> +#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 WRITE_SYSREG_ASM(v, name) "msr " __stringify(name,) #v;
1) This macro is ASM only and you don't protect it like the C macros below. Why?
2) Semicolon not needed at the end

~Michal



From xen-devel-bounces@lists.xenproject.org Tue Apr 08 07:56:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 07:56:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.941543.1341008 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u23oh-00031m-32; Tue, 08 Apr 2025 07:56:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 941543.1341008; Tue, 08 Apr 2025 07:56: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 1u23oh-00031f-0H; Tue, 08 Apr 2025 07:56:19 +0000
Received: by outflank-mailman (input) for mailman id 941543;
 Tue, 08 Apr 2025 07:56: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=7fLb=W2=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u23of-00030n-6X
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 07:56: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 f0e1463a-144e-11f0-9ffb-bf95429c2676;
 Tue, 08 Apr 2025 09:56:13 +0200 (CEST)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-ac6e8cf9132so650929666b.2
 for <xen-devel@lists.xenproject.org>; Tue, 08 Apr 2025 00:56:13 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 4fb4d7f45d1cf-5f088084f17sm7846004a12.61.2025.04.08.00.56.11
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 08 Apr 2025 00:56: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: f0e1463a-144e-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744098972; x=1744703772; 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=1j44ElKcVDSRUPPLnlZEk7WntRHqwG4uBiG9hD82OVA=;
        b=lKbyWGWvtPpdrhsuxJ0Jvf6zUmcNBze4PPO3sHOO4ujaxJPq8aSd8liJkIau2mgZUk
         OAZXMmBP7Vb7NR+ulo4szj1AxgzLsihMh2j7P90FcPI7rzCiC/CM3E3AsY6tFzRczcF0
         UE0J7eQ1Q2apsrwUCxjLhbXNaqANmwyWYDWBc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744098972; x=1744703772;
        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=1j44ElKcVDSRUPPLnlZEk7WntRHqwG4uBiG9hD82OVA=;
        b=TscgOKLON45DHfUBxcZvO1oZSkXruxC5U8B9zZxuvJSF5I0AMU91AaGZlwnep98BtD
         zBR+kbH4xEfJF60AYcF3N3Y+Qu8FmzDXZ32q3J9y5AkcVoWlm5cmxOoOp070Ls6GGLMQ
         3Ss7lD0lohA++AiO7i0+gjluHMNVPiDcxEkcK1ql2JvGrI7DsGDoLfS+r93ip+AUHkh1
         g/r2k+Kaw2unR9l/NErbTk33bWGBDsS6iJfENlHWA8IH8yn4ETIliBlJhNI5AXkCbWJQ
         wSomxGnqd8r+UYkapKlLbbQlKL0lfaWeErR8aqeUs5pvcK0H037xd9b/+kM/qjgxgWo+
         vyXA==
X-Forwarded-Encrypted: i=1; AJvYcCUU8YZWP1z70cLSuK5ahbx4LA5KsS1P15W2QB2gQ9N2ZO0co+QbVECd2QgcmqzTB3JmeJyIPNnZuSA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxJ6k5Ddf24HvQXqAcNXSaOUUvovvs0d5Hrg2x+hvhSI0tFQFcA
	u9EdgQUH46cWkwNl7etVj7hzXJFposwv2G9BTkzmUUZHahtDd6+2gaAgWtvTg1A=
X-Gm-Gg: ASbGncspPqO4A7yw+rV7EPnt5d4iyE9x/OezwnDTmCyjo6NMRgi4ZVFAj0eB9L5+Tw/
	qH7Ugwmf2WJ6L7UITXYoqow7FL5DaGXavB1jFEf2L0EDNJg65p0rjbXTcMMKWSPY+2FooA1E5Gt
	i/ddNdBFT52lMePVIlEXK3vbEQs/tu/qtbbpWV91rcj5bEddNpHejjdBdEzyrKgO78sehn/rdSg
	jQx0tfm8XDIAGMyYfz7iTBhHiHvaY6Ll+vuNi+yv6I+I7pp4LXTXC13Hi3M2I1EgUrHAlRWVAGE
	2ZDFZJXjWAG+bRoqnADqJhdCp5OAbpeeE7DNbhD9mtqJ8Fz/jRuKEJgBaEh6
X-Google-Smtp-Source: AGHT+IFrdLzI7Obo3lMHc3o+Bts9IFD9nysuRzY32z6WzIUjIwJ9/ZjASpMly4exe9Ad018boUFWWQ==
X-Received: by 2002:a17:906:6a11:b0:ac2:dc00:b34d with SMTP id a640c23a62f3a-ac7d1cca522mr1154877566b.53.1744098972517;
        Tue, 08 Apr 2025 00:56:12 -0700 (PDT)
Date: Tue, 8 Apr 2025 09:56:11 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	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>,
	Shawn Anastasio <sanastasio@raptorengineering.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v2 00/11] x86/EFI: prevent write-execute sections
Message-ID: <Z_TWm1rll_0PyzNQ@macbook.lan>
References: <20250401130840.72119-1-roger.pau@citrix.com>
 <c686844c-4cb8-43d0-a762-7f93a30f9388@suse.com>
 <Z-vpoh858ldjXok_@macbook.local>
 <f71c3298-24df-4d6f-b73c-382d4a112e01@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <f71c3298-24df-4d6f-b73c-382d4a112e01@suse.com>

On Mon, Apr 07, 2025 at 04:04:18PM +0200, Jan Beulich wrote:
> On 01.04.2025 15:26, Roger Pau Monné wrote:
> > nxcompat should be enabled by default I think?  I can of course make
> > it explicit by adding to the PE link command line.
> 
> --nxcompat wasn't the default originally, then was made the default for MinGW
> (and by mistake for everything else as well), then it being the default was
> undone for Cygwin. I've meanwhile submitted a patch to undo it for everything
> that isn't MinGW [1]. I simply don't think the linker is in the position to
> declare that every binary is NX-compatible. It's the programmers who have to
> determine that. With the flag not being honored everywhere one also can't
> simply test an EFI binary on a couple of hosts, at least as long as the EFI
> implementation there is a black box.

I think I looked at this reference:

https://sourceware.org/binutils/docs/ld/Options.html

When saying that nxcompat was enabled by default:

--nxcompat
--disable-nxcompat The image is compatible with the Data Execution
Prevention. This feature was introduced with MS Windows XP SP2 for
i386 PE targets. The option is enabled by default.

I guess the intent was to only enable it by default for Windows PE
images?  Anyway, as said earlier, I don't mind adding it.  FWIW, (I
think I commented with Andrew) I did saw this flag was already present
in our PE builds, even in it's current form, so that explains it.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Apr 08 07:56:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 07:56:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.941546.1341019 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u23ox-0003LK-B8; Tue, 08 Apr 2025 07:56:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 941546.1341019; Tue, 08 Apr 2025 07:56: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 1u23ox-0003LC-6y; Tue, 08 Apr 2025 07:56:35 +0000
Received: by outflank-mailman (input) for mailman id 941546;
 Tue, 08 Apr 2025 07:56:33 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xdvb=W2=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u23ov-00030n-Kb
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 07:56:33 +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 fc0de5c0-144e-11f0-9ffb-bf95429c2676;
 Tue, 08 Apr 2025 09:56:31 +0200 (CEST)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-43cfb6e9031so47576455e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 08 Apr 2025 00:56:31 -0700 (PDT)
Received: from [10.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-39c300968cfsm14334914f8f.16.2025.04.08.00.56.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 08 Apr 2025 00:56:31 -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: fc0de5c0-144e-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744098991; x=1744703791; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=wH+DNb7xG/dYEb1AC7qIscZbABMw2gGqyyblCrsHwCs=;
        b=SysU3U88SsqEq+eGZlk7E4rNBU11laTdDqYipJRwjOdLhEXYmXIkan24y2DT70KcOJ
         LlJSS6pyvkscqCeqM67+LXKA6eglzsBlG/ukLIeRFLh/mR2XH54UkU+GK/GuZ9RqEF08
         rZ8EwI5ThfLRw9UTHv204PVtv2KKfUS0+WDD+sEUAoUqfzbKkEON/an1/bjKTQP5GptY
         C9P4VnJLcINhudf/p5SwqO+dWZA2AZhLkh53M19jT3Q3c2a6AbziJN4hkRXFN6Blqipt
         +BYOY01Du7KqSxTWczEM763wUXYBGCWk1LncGYpQRXgJbhQimqi0T+5wGBPQQ6sPw/wB
         32zw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744098991; x=1744703791;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=wH+DNb7xG/dYEb1AC7qIscZbABMw2gGqyyblCrsHwCs=;
        b=DAsRxswUgRCvAv41XPzP+enmIwdnaW1s++LNUisVomadn8sRLx4UssStrWHAdVdn0D
         sIVqVTA6RV0elDrN4PGHnlD+aHWkoBSvj7teNkvhQHLSfVBduwmm7Bpa86aD+v8LCrkz
         vik+Tcm0hTwL5x5q7YxgjlVpE2yXgQ4lTd5ySE54NBwDavLPd+Sb0o4B4SU0gpZKqBWC
         SqjZqsnp+c6+0n0UrAPf+g+9Hx37ipB4ffAPTGg4uI1yy/rjlek2X88O0ywfKRXtu9ph
         mjwd364wozcKcJRIzw4Lr4x+KTadk34AqmUAvrAAxMTWgaDhrm8iRwLaHRo6yRhpSecg
         jgbg==
X-Forwarded-Encrypted: i=1; AJvYcCWektlU86XLYfC8knV10OjLnahpU+AJBKln4vpP2RPXwY30m093kgUFxorIXgYwwBLvnFuGBSMvfTQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwldplXcPOvYX9Fusz4sZFa+bnAa9YIKDFnSbq3HfcFCrnICpdz
	96uMEMh+LDw4HtGNLa3HtOLjDWm2QvuKntna9tKh1ubj3rroBS80icmNPmmVhA==
X-Gm-Gg: ASbGncvZ3XbWQ8rssyFLGQ4RB+Td4uPWN2FCZrV3bnyPYa57/NQ5xyB69TVa+Xz+vEj
	petA/kOl5hDGllolzWmy+hjAXm1UtRRdK1EFL5eKsGk8gqT/YdjQfjrElO+rbu2CX4KAzUqoqDj
	WYAsnQo/rxck52olfbVPTTcfGxIWiQ6oT6uU6SqeUHVKLiF+WLAC4LfKlJdx8NRTIj5oad5ic1U
	bCatKcS8c8VYYcgwbEylv+Xlu/c41Chld2020obp+4eBLN7awkhgJZGqTRi4MsI0h0GtyuXe7FF
	o3pcyMg4Xkfs/7TePt+gpPQz0f6eVkUZLxm1JFh5Uz1gjZZkM9keEhuG7VqVf8HNlcQo2uU/lif
	DKsyMFD5atHtwSG/ipXzqq8RHknGIyA==
X-Google-Smtp-Source: AGHT+IH82w03gA2heZiLFVa9qchWrk3kH2ybNU03Fl5c4c9NBp6lCSbvGDFAXZqpnXU+6TPVt5Z8DA==
X-Received: by 2002:a05:600c:1e03:b0:43d:683:8cb2 with SMTP id 5b1f17b1804b1-43ecf8ceb2dmr142615685e9.14.1744098991318;
        Tue, 08 Apr 2025 00:56:31 -0700 (PDT)
Message-ID: <ddd716cd-88c9-4146-ae4d-405d66cf08ab@suse.com>
Date: Tue, 8 Apr 2025 09:56:30 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 1/2] xen: x86: irq: initialize irq desc in create_irq()
To: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20250407164608.2558071-1-volodymyr_babchuk@epam.com>
 <20250407164608.2558071-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: <20250407164608.2558071-2-volodymyr_babchuk@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 07.04.2025 18:46, Volodymyr Babchuk wrote:
> While building xen with GCC 14.2.1 with "-fcondition-coverage" option
> or with "-Og", the compiler produces a false positive warning:
> 
>   arch/x86/irq.c: In function ‘create_irq’:
>   arch/x86/irq.c:281:11: error: ‘desc’ may be used uninitialized [-Werror=maybe-uninitialized]
>     281 |     ret = init_one_irq_desc(desc);
>         |           ^~~~~~~~~~~~~~~~~~~~~~~
>   arch/x86/irq.c:269:22: note: ‘desc’ was declared here
>     269 |     struct irq_desc *desc;
>         |                      ^~~~
>   cc1: all warnings being treated as errors
>   make[2]: *** [Rules.mk:252: arch/x86/irq.o] Error 1
> 
> While we have signed/unsigned comparison both in "for" loop and in
> "if" statement, this still can't lead to use of uninitialized "desc",
> as either loop will be executed at least once, or the function will
> return early. So this is a clearly false positive warning due to a
> bug [1] in GCC.
> 
> Initialize "desc" with NULL to make GCC happy.
> 
> [1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119665
> 
> Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>

Just one other remark here: Personally I dislike the use of multiple or otherwise
excessive patch subject prefixes. xen/x86/irq: or even x86/irq: would have been
better here, imo.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 08 08:19:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 08:19:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.941571.1341029 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u24An-0000pn-52; Tue, 08 Apr 2025 08:19:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 941571.1341029; Tue, 08 Apr 2025 08:19: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 1u24An-0000pg-1r; Tue, 08 Apr 2025 08:19:09 +0000
Received: by outflank-mailman (input) for mailman id 941571;
 Tue, 08 Apr 2025 08:19: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=xdvb=W2=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u24Al-0000pa-Rg
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 08:19:07 +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 20f91b99-1452-11f0-9ffb-bf95429c2676;
 Tue, 08 Apr 2025 10:19:02 +0200 (CEST)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-43cfa7e7f54so33274215e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 08 Apr 2025 01:19:02 -0700 (PDT)
Received: from [10.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-43ec1795243sm158691225e9.32.2025.04.08.01.19.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 08 Apr 2025 01:19:01 -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: 20f91b99-1452-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744100342; x=1744705142; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=/BOlXnJqy6WPPz8PyZ03GnhoMg9nLwJQOZ9ItVxfCS4=;
        b=GoF41IXO3Lek5khwflVgXqoz2AMFpaqpngF9XsNpUOLXGWnCDXQz+Sl4DnweUi+LXD
         GcIkYcILiJjfJBQKsrw09lajMrndSWHY2BBctcfkqgH1r+rdYKQ2mFK8bAXtAImhiHj6
         HcTAepZoUeZZPkHd2IqbAN+lAQdLO6xuRwsK6P9JZrorcrvUjwj1uqVJdBGMYemNuZNh
         XuLDlSFzJvXgX61t5A0UTaKBLCdSsqiHyWjfWePKEfrjBrCswLKRXW5eC+pVt0IRutgF
         cMk8hHok+XgTRBfK/CqBa5aLstorjKJwxoi5kL75WmSy8TWaIXtpFrcKwBMDc9SL8wzm
         PeoA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744100342; x=1744705142;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=/BOlXnJqy6WPPz8PyZ03GnhoMg9nLwJQOZ9ItVxfCS4=;
        b=FTzty2Ypv+kRvzu8mwhYcLu1KJf0SeF8WGM7M3V/A0vajqAFynIiDD3pZv3lzKDtg0
         1YR35JBw7nIeW1BJpHBTL9if1JqRWyyKH27VT4qdl0Vg/+XflJaRoN6ubDIxpyZbjF1W
         kydC5I6+F212p5VhZ4/fprW0krnpPAuSXnzd79XX6VRDRkjGm2D7m70krY+D3miTfhhH
         OfRw5BMM1ci4cwMtSEacHY4y45c5f4j+RdtHwAIII7X+gCN+/uQb1eQs+sxiypp4Q0yQ
         bKhES8h9Mi2cimaQx6MYiIHro4PZuuNSOF3bu5wQfnkCxmvArG4VeB/8zvBGURUlcrEa
         sewg==
X-Forwarded-Encrypted: i=1; AJvYcCViV+909A8IgvNmRW7BqhtSooDRoZmuXXYgznA6qbl+88d8x7maxm9/ca71urUstiJH8GwPb6jSjMg=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy9zOK0ouR5Tg7pxTtJ/oaaNFgOn2EtzUD8y2Hs7/7qiNdYZ/Oy
	csMrQTS5Gdke5CTgEpCduJWJEk0RzVFkCW1wi026dbld7jKhOvM5k+VIudsvIg==
X-Gm-Gg: ASbGncsXRIeGnorv5IQq+0UlFEPXknU+N3DdGne2OlRL+XTV+2Wacf6Ar3ueN42bzSP
	FQxV33zq5wqr4S6RlML7THV56Ecys9sN4W0kMCwyFKSYGbR/D5qfDp8rFDKOE1TWF8Bim6kfPDB
	ySVoKcjROmRI0i5jHU+VTQ5Mjmtkb/U7tYWMW2j4F9vvgopjbNxw5gnWCPYFXioFOWW5cR4H8gW
	36pl5AZFEyJdRaIipDTyk3VFi1GIOda8Fa94zWLVub3rI5eoMSTIjwy4E6bNvdO3N8ZByRZSnUQ
	WtJw+s4JpXXY3XMuYx8vk+y33d7yQ4e2b5GLbPFIcD1c3ki3ld5u/notIDE7JIpvWPl/R1YkEUV
	ZR3FhnZqE5xJg5iYq4qAConKslEpO+Q==
X-Google-Smtp-Source: AGHT+IFpNS9t7CEGtvmvNlNQyAxkYYfjyp80ls4XP3DYQtvnBiDocE/F+Ftdnz95Vkkxq0Vsd6JBXA==
X-Received: by 2002:a05:600c:83ca:b0:43d:186d:a4bf with SMTP id 5b1f17b1804b1-43f0e442cf4mr20255865e9.0.1744100341713;
        Tue, 08 Apr 2025 01:19:01 -0700 (PDT)
Message-ID: <694d554e-0919-425b-9e62-b7ecf7fce421@suse.com>
Date: Tue, 8 Apr 2025 10:18:59 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 00/11] x86/EFI: prevent write-execute sections
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, 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>,
 Shawn Anastasio <sanastasio@raptorengineering.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 xen-devel@lists.xenproject.org
References: <20250401130840.72119-1-roger.pau@citrix.com>
 <c686844c-4cb8-43d0-a762-7f93a30f9388@suse.com>
 <Z-vpoh858ldjXok_@macbook.local>
 <f71c3298-24df-4d6f-b73c-382d4a112e01@suse.com>
 <Z_TWm1rll_0PyzNQ@macbook.lan>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <Z_TWm1rll_0PyzNQ@macbook.lan>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 08.04.2025 09:56, Roger Pau Monné wrote:
> On Mon, Apr 07, 2025 at 04:04:18PM +0200, Jan Beulich wrote:
>> On 01.04.2025 15:26, Roger Pau Monné wrote:
>>> nxcompat should be enabled by default I think?  I can of course make
>>> it explicit by adding to the PE link command line.
>>
>> --nxcompat wasn't the default originally, then was made the default for MinGW
>> (and by mistake for everything else as well), then it being the default was
>> undone for Cygwin. I've meanwhile submitted a patch to undo it for everything
>> that isn't MinGW [1]. I simply don't think the linker is in the position to
>> declare that every binary is NX-compatible. It's the programmers who have to
>> determine that. With the flag not being honored everywhere one also can't
>> simply test an EFI binary on a couple of hosts, at least as long as the EFI
>> implementation there is a black box.
> 
> I think I looked at this reference:
> 
> https://sourceware.org/binutils/docs/ld/Options.html
> 
> When saying that nxcompat was enabled by default:
> 
> --nxcompat
> --disable-nxcompat The image is compatible with the Data Execution
> Prevention. This feature was introduced with MS Windows XP SP2 for
> i386 PE targets. The option is enabled by default.

Oh, I shall correct that, too, then. Thanks for pointing out.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 08 08:48:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 08:48:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.941586.1341039 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u24dV-0007y7-Cc; Tue, 08 Apr 2025 08:48:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 941586.1341039; Tue, 08 Apr 2025 08:48: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 1u24dV-0007y0-9T; Tue, 08 Apr 2025 08:48:49 +0000
Received: by outflank-mailman (input) for mailman id 941586;
 Tue, 08 Apr 2025 08:48: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=wetR=W2=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1u24dT-0007xu-A5
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 08:48:47 +0000
Received: from AS8PR03CU001.outbound.protection.outlook.com
 (mail-westeuropeazlp170120005.outbound.protection.outlook.com
 [2a01:111:f403:c201::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 47665839-1456-11f0-9ffb-bf95429c2676;
 Tue, 08 Apr 2025 10:48:44 +0200 (CEST)
Received: from PR0P264CA0082.FRAP264.PROD.OUTLOOK.COM (2603:10a6:100:18::22)
 by DBBPR08MB10747.eurprd08.prod.outlook.com (2603:10a6:10:536::9) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.21; Tue, 8 Apr
 2025 08:48:41 +0000
Received: from AM4PEPF00025F98.EURPRD83.prod.outlook.com
 (2603:10a6:100:18:cafe::cc) by PR0P264CA0082.outlook.office365.com
 (2603:10a6:100:18::22) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.19 via Frontend Transport; Tue,
 8 Apr 2025 08:48:41 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AM4PEPF00025F98.mail.protection.outlook.com (10.167.16.7) with Microsoft SMTP
 Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.0 via
 Frontend Transport; Tue, 8 Apr 2025 08:48:40 +0000
Received: from DB7PR08MB2987.eurprd08.prod.outlook.com (2603:10a6:5:1c::25) by
 DBBPR08MB6028.eurprd08.prod.outlook.com (2603:10a6:10:208::6) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.8632.20; Tue, 8 Apr 2025 08:48:07 +0000
Received: from DB7PR08MB2987.eurprd08.prod.outlook.com
 ([fe80::d53f:b16d:70a5:8668]) by DB7PR08MB2987.eurprd08.prod.outlook.com
 ([fe80::d53f:b16d:70a5:8668%4]) with mapi id 15.20.8606.029; Tue, 8 Apr 2025
 08:48:07 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 47665839-1456-11f0-9ffb-bf95429c2676
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=Feodd4phq5pNA6X4Ksm8OsvUzkZSCz/hV5yYl3QuglXA3zVUYPQH+Shv064cKL4DXePGwjEAJGngwcWLCwwWMF5cIIpoM5X5GSEmZOStkqVZDqgOneqaPZL3qnqef0CIkWtgleXC+AkGXNlivKkOj3W3JTNaAGkGcziHWw++bWL29wCIj5PUdlCCAHvaLcMvLdNCrstlKf4RhJEjaTqA6UbJa8JgEm73s0Ymzaq5XawQ1p0Zxehc88ioeuyDrmtKv/rbR/MVMzvRWnM7mv67I5JlVOPMB/0XsM5RgnzidHIkDRmVoHSADT2VPm5ThpNcyHcGVOLJxF16eKuLIeorKQ==
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=4Iu9WyAfujjXUe0oydplzBXeTotu+Yxz+H+GFmIP2QU=;
 b=lUAvLkN7AeFiQrpZt+fDrP2jneMObA8aJYyb1TznwqZOEP1JDpfkD/IVpE5XmS79dN7EByO3Vfgy2gBam99TdWA6FKmDxkYl3+FlsxuFcZnxzJwbC3d8RIWNE/ib+/8/OpCMr0xhPxHveUY9+UXf4+DqOkmSSPkkSsndz1IvojGLT++ElHlUnbFYxdLXukUb5+e2yL1/vogLlr0YTP514XTO8BEBvEtSFbKA8j2XPLeE2WhDJcS8lqeFjskXmec64LZDwNKOQvmPv+3wzwVd11mPWy5f+AhzIQNslHVObJvlye5BzS/8miQdZs5F1XAUeZq9JVTmsbk1n/lknAAFZA==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=fail (sender ip is
 4.158.2.129) smtp.rcpttodomain=amd.com smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=4Iu9WyAfujjXUe0oydplzBXeTotu+Yxz+H+GFmIP2QU=;
 b=rPr87IPyTwxWuE7VXoKG0JVvzPR2eVfwgFt0ExBvf2v9dG7SJEV2hnckH/XZOSUUQaqBUaVErbzDUU41cDmLJYiOWC0waYWv28Q9/kVm0IDljMs03V1W3d8bw4q4INyUtbREJe+kMfepWfygKeUR+etJkEc+mvKC+m2FIwm+770=
X-MS-Exchange-Authentication-Results: spf=fail (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Fail (protection.outlook.com: domain of arm.com does not
 designate 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com;
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=bSHCHuu5XEQL3JOb2Lph9sfsQguTXozSTs62UUdAw4ViU7DsC4gMy5H0iDmY4GJcPgWZpOysHhTyJv3AIkEBB4VOO1zxLj2QnXQMCH9N8v1vZmxeFNMC/2h8xS/+kS9dF/dt8xiQBT7pAVSoxIjpXbVgiH7doJyqz/4liKf1zRFBkEVSYWNbjbnkXU21Kwkg4MtvmIrgOyYuZ3UT9wMbTWuCli0WYRRtNuwUBOxGo08XPsLSPG1YLl71pkd+uhgGGEeo7qGhrCXZanAPcJzYTly1bV2inG2l49y0Ann7uQ15zHVzfuq50siZOKVrbHv67RLD3LEoUsHEDZInbOdDdA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=4Iu9WyAfujjXUe0oydplzBXeTotu+Yxz+H+GFmIP2QU=;
 b=XevPJ5w7cKJqQ7UqLL78gEc4plNKwr7IJ823s6OX8fdC94/nMjmAgo8hCEYia6HQt0G55B54ZEPpu/9RPso4Dj1PDUfPTXw8D77zi/5rDW4hTeMuzjApe3gAkHffF/hLc2Aufid+xIfGI5VS8NSpQt7PSZXVqRa1BQ60yV8eI28mKRTXw1xs4rZz69p4BlMw/XCqlGRmxI5aJ+NazvmzuyiqsN7vU0PNbd00wqBvnUWQTAI8qVQYh6gWBK8HiOOVoY4d9Q0TC+RWSpXrnG5fJ6z4aiTnm6LzT7LvoYYZZ6cEwyAfRuvLKrlvYsv1qCTLbtCYIthgkvyegB2x+tWYig==
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=4Iu9WyAfujjXUe0oydplzBXeTotu+Yxz+H+GFmIP2QU=;
 b=rPr87IPyTwxWuE7VXoKG0JVvzPR2eVfwgFt0ExBvf2v9dG7SJEV2hnckH/XZOSUUQaqBUaVErbzDUU41cDmLJYiOWC0waYWv28Q9/kVm0IDljMs03V1W3d8bw4q4INyUtbREJe+kMfepWfygKeUR+etJkEc+mvKC+m2FIwm+770=
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 0/3] Enable early bootup of Armv8-R AArch32 systems
Thread-Topic: [PATCH v5 0/3] Enable early bootup of Armv8-R AArch32 systems
Thread-Index: AQHbp+05ANvpnp6IH0WRbtuqNwkbyrOZdeYA
Date: Tue, 8 Apr 2025 08:48:07 +0000
Message-ID: <C45D2686-67F1-4CE9-8CDF-F35AE7959DE0@arm.com>
References: <20250407184443.1790995-1-ayan.kumar.halder@amd.com>
In-Reply-To: <20250407184443.1790995-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.400.131.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DB7PR08MB2987:EE_|DBBPR08MB6028:EE_|AM4PEPF00025F98:EE_|DBBPR08MB10747:EE_
X-MS-Office365-Filtering-Correlation-Id: 7ae25d7b-dba4-4a26-5687-08dd767a28e8
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?aTRkU24yeHFWK0M4ekoraVpMSFNXd0xJYStlY1lpTkZZbUxIT1g5K1d5SnZ0?=
 =?utf-8?B?UjRzSEFNMGR3N0dIbWVCVjRRMFRoYWQ1RHRscjRhQ1Y1K2I0ZFIyd25qNDkr?=
 =?utf-8?B?RFpIOE1ic3JadUhsZmc3eVFYZGc1VTlUcFdyeCtpU1VoRkxpdm40RDNubTFK?=
 =?utf-8?B?M0Z4NWJYT3ZzUFFGZ1lsTkVHSVlXZmJmQmlYL2swbTRvd3BMRWJaMDVTRXF4?=
 =?utf-8?B?dXRraDJKZEF6WTV5dUZGNjQ4TmRrKzNhTHhGeDQvaGZOQjBpUXZvNkZFOEJo?=
 =?utf-8?B?WnpzSVhsQ25pVlVXcGllSUhlRFJUaE5EMmF0UVhNOVVoOFpaK3ZiSGpYZ216?=
 =?utf-8?B?aVlRZXpYQU5HS0dJZ2wxOVdBUTA3cy9FQXRVSDBQN1dnQ0lOTDVFakEwMlBk?=
 =?utf-8?B?QXRTV052YXlwY3FML2NiamUyWnFlbndyOW9tRUtjYmJJNFVxTmZxRUpWVGZy?=
 =?utf-8?B?TDM1amp3VVVFNlI4OHc4RWFjVTBaaTVML0NhRUVqd25tWEhPL0xnVHMwaWhD?=
 =?utf-8?B?UHBXcysrZDZ2T3haSW9uQlQxUjc2b00yMUVxdmFWVmtZWnJqSnQ2YWtsemJs?=
 =?utf-8?B?a3JFdE9NZjUwQkJwbUMzSEI5N3FVZEFMQzRKdW1TT3FDMTU3OFpMSzZYSzVx?=
 =?utf-8?B?Q1NHSDVSeUMwY3dsak1yT3Z6K3QrNU5hSlV2aVpHdHNYQjdCMUlGVXUxV1lp?=
 =?utf-8?B?RmRuVWRhMURlT2lDVnp0bXJSQ1FaRFN6aFN4Y3lsWjE2a24wcjVpVWVHUkFM?=
 =?utf-8?B?S1VrN3htV0ZDYmVBdFpkcnU5UmRYejlrQUZDNTBIOVI0Y0t1WU16aU5uU2xz?=
 =?utf-8?B?ZlFVbjl3YjFBcjFoTEVLamZYTDZ0djNwTloyamdzNkdFT3pyMmtXbTFLa204?=
 =?utf-8?B?YkVnYzVDbk5SY0lsdHFuK25QUjd3WTRKU3JWNVc1ajRINW14c1VCS0tCQlFQ?=
 =?utf-8?B?R0R4dFoyckpKRkdCcnE1WFl0Ym1TZWtxMGdlSUh2ZUkzQ3p4MmQxTVBCenh0?=
 =?utf-8?B?S1N1VVV4OStLZTZ0Z3UzT3dVVFNjVURPSmo5SlIrKzVGZEcrVjdmdy9xTUI1?=
 =?utf-8?B?UUhNLzM2NzVnWGtaU2MxK1FoY1J2OTlhTk5KQ1Q1M21qcWJuclhLbVdhM2oy?=
 =?utf-8?B?Z2Y0cVAyd1JuRVFQWTNNUW1wbTdPUWVJT0M1WnBYSmZJTFRRVjhGb1VwNWZX?=
 =?utf-8?B?bWpPOTVCMWNYRGFqVWdZTUJpTjRwUTN4Z3UrV1YvMGw5OWZiMHRCejg3blY2?=
 =?utf-8?B?N0ZWL2VBSzJpSnV4L01SVmxPU3NxU2Z6ZkpkTmd6b2djYkdBZXM0WFp6ZWdl?=
 =?utf-8?B?VWF0cWQ3OFFHWitNcFZtQmo3UjNBT0NTM003MFBHSFRnTHZFZ1hhRUpaYVFN?=
 =?utf-8?B?TVdrVERINkN0V1gzSGZ5K29MNGdSZlcwcjZhYlZPeE1scEYwLzFONTJGako4?=
 =?utf-8?B?d3puL1VtUEpxeE03LyswYmNpV1pFRk5ZWmdaaW5NQ3ZUNlJlbGVVZkpxWC9V?=
 =?utf-8?B?bHZWZEpWcXVMWUFkN0RQZldVbmZvcTBtOXY1M1FtdHNXbGtrWi9QdUFiWkN2?=
 =?utf-8?B?V1RJM1plQXJMSUVLZ3Q0RHk5VEJ3K09sUUNUbm1mRUR0b05YTVZCblY2MW94?=
 =?utf-8?B?alNrT3NnbDNEN1MrYzE3dW5YcXdhbTRWeWxIVTNFVERDMWdRYW5GaTJnNXZ1?=
 =?utf-8?B?dEQ0N2lqVEdLRk9Yam5pNVVmamNoNmI3M0cycUh1M293enBiZnZqeUtwQWdl?=
 =?utf-8?B?Nm51TzdwbnYwNmhWWWMwVlBSTGtKT2U0RnMxWGxwMng4dkN1Wmc1aDU4Um9s?=
 =?utf-8?B?S3UydjcvK1gxTVR4V2k0MGVTUUhnUVRtYXN1OGEwbjVuTVJWWDlITlNqRVZq?=
 =?utf-8?B?V1l4NmxIN3lDWjllcG82S0pYRDRodFp0ZSttNC94RGg1UU8zUlBPam8wUFRX?=
 =?utf-8?Q?0Jd07TgtrzXrteXXdt+rLn7bQgypvUVB?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB7PR08MB2987.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: <024A2D6F1EB31C45920304784F7DD7E2@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR08MB6028
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AM4PEPF00025F98.EURPRD83.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	0606bb48-71f9-4a66-569d-08dd767a1551
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|36860700013|35042699022|1800799024|14060799003|82310400026|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?eEVwaStCbDRaaEhjWkg0Q0NDY1BRcU00VjUrRlkwaDhvNDNORzU2UEV2US9E?=
 =?utf-8?B?emZ5YWVGUkV4K0Y0UE0xNTVyRURQSnNYOGhVc0pjR08rSnpsQXVVYTQyakFo?=
 =?utf-8?B?d3ovSWNNZHZVdUpSSWdjSWRSQWRGWUpYL0hrbkg0eVV5c09qUDJvNk1FS3hY?=
 =?utf-8?B?aXhuZnBnUE1pa0lRZThVSmpZcnI2aW5wL3RTVHFzWUhIL2ZlNmxmYi9LNW5m?=
 =?utf-8?B?VGJuZmVKTStVZ3N4WUN3SkNtTkN1TDlGb3FidGt4ck1vbElBdlh0cjQ5NWZm?=
 =?utf-8?B?eElYM2tibW5iMkltOW8yd1NOc3lKZmp4c01aVHBLSmN6TllES2J3d1lTZ0FU?=
 =?utf-8?B?S0ZIcWNEZEM4TTh6ZDdSK2RIenlVNnp0WGFKNUxnblI3Qms5L3k5aEp6ODB4?=
 =?utf-8?B?eEhRVlBsZWlvWWhmc1ZMTW0xOWp3d241eHNaM0NybUdURUVqTnJEbC9DaEtt?=
 =?utf-8?B?TEFERmd1NUZZTkVPaGJ6NTloWlBFVU5FSkZrdkRFbEkvMmFuYk84SHFJdzQr?=
 =?utf-8?B?M1krUi9WeGFVd2RXZVN4cm52U3BjV0ptWFNCTVpYM0plczFYSDljcUtWbUV0?=
 =?utf-8?B?dGlUNEtaVUJmRGNBa3VRUmpZNDNIZlYwRCtXRHdLS2VsMzRYVENONHdtM01a?=
 =?utf-8?B?dWVCcTArL2w4UWVHZUJYRDlmcUcvN3A4U3d5SjRMemd5ZTBqakdMSXA3RDNE?=
 =?utf-8?B?cENMZ0hwWUpRZGk3M0xoZ3dPQUZEeUZKcTdDS3pXamdsbSt0UDl0UWhwazQx?=
 =?utf-8?B?Z3RLSG16UFllUGZocVlFNkV6SThZN3c1WS9IK0RmQU1pa1E2bEJOYzNtV2I5?=
 =?utf-8?B?OGYrWGhyNzJJSXgyamJvdWx4YW00akNadkJPZW91MHhubUVRYk1rUFNkWUl3?=
 =?utf-8?B?aHRBYWRMb0t5Z09DNk9EZU8yVUhwdjZpQ1QzK0ZTVTB4YmpHMGpSV252eURM?=
 =?utf-8?B?OWp2WW9lV3VXdGlMSlU4Rnhham1mZ2Vmdm5kM1JjYkpRekZTdUE0cjVvc3da?=
 =?utf-8?B?c0YxV0Npclg4T2pURVpmRGFGeGlmVFBrNmxTR2wwR3I2VE1sU2o1UW5EV0RO?=
 =?utf-8?B?V0NxQmMyVU1ZR2E0dFZVSEprN1lXUzlzVkJvbjVoMXNyeUVvcmpYb1FVcGV5?=
 =?utf-8?B?ZnNocndDWGRONGtJRmVpM2JFYVZGSGFmejJrWTVQWHZLbDRTelFsVy9NaVZF?=
 =?utf-8?B?bFlwYVRoVXp5bk1ucmdjSzRrVkFtMEdVb3E4M2VqakxESVN3SW8yR3YwN2Js?=
 =?utf-8?B?L2N6ZytHeGVkUFJOZjF1aDFLRVpnT3pIQkdmUUxxbUlXV0VxK2pFMW5aQlhv?=
 =?utf-8?B?RndTRTJhTGlBN0k4U1JjVFBjYW9VSjdWTzlLS0c5Y3ZYUU4waG5rbVJiWEZq?=
 =?utf-8?B?aHBIeEdPUi94cGdxNFV4T2Q5SHlKNlM4VUFoZlJLNGZrWitHZ01kVUJiN1N4?=
 =?utf-8?B?bWRZTkYrWmhTaDlyamlUd0dYempoejZGcmZuOWZEQ01sN0pHSk55eVRhUjdZ?=
 =?utf-8?B?cTNoSHhrQjUyYXdaV1k4K3JuTHZGdGRHRnBrU3dKNTQvY0tSMCtDSGdEWWhR?=
 =?utf-8?B?VkhBSnhua3Q0bXI3SjFWVlk1dDhnV2k2RnI4ZnZMYXcvYXFCKzRTQi9mcE9u?=
 =?utf-8?B?MjRvWjZPc2hrbWxzMU9oaFpDM01FM0dPcThld0RMcnQ4YU9idnlkMExKUnVt?=
 =?utf-8?B?blVvRFhQQTVxUHdzWTBnTERvb1NzenlQY0ZsVXlBL2kzMldvc0pMaVIxRjl0?=
 =?utf-8?B?MEFiNXZwNFpLRkxHRjRvSFhSOElTOWI1ek4vcDh1RnJ4UDZXNS9VSHU5RHNV?=
 =?utf-8?B?dFRhQ200REpYaTF6UzNkdTRyZEVsRHIzRGx3SXhTZTFNN01YN29yOHhlK0RO?=
 =?utf-8?B?WEUrV2pLTVJqM1ZMTDVKQ05xeGVuSW9WT1E5SDNXaEdhV1BIN0pYOVJvOFgz?=
 =?utf-8?B?ZW5NZUNITmg5MkhyamVEYTQ4bnczRDZVNnluM242b2tzQ3dnSWFjM1JmVkU0?=
 =?utf-8?Q?sWSlv1AtLoT6GhCLQqV22pRot7DYiw=3D?=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(36860700013)(35042699022)(1800799024)(14060799003)(82310400026)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Apr 2025 08:48:40.0060
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 7ae25d7b-dba4-4a26-5687-08dd767a28e8
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AM4PEPF00025F98.EURPRD83.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR08MB10747

SGkgQXlhbiwNCg0KPiBPbiA3IEFwciAyMDI1LCBhdCAxOTo0NCwgQXlhbiBLdW1hciBIYWxkZXIg
PGF5YW4ua3VtYXIuaGFsZGVyQGFtZC5jb20+IHdyb3RlOg0KPiANCj4gRW5hYmxlIGVhcmx5IGJv
b3Rpbmcgb2YgQXJtdjgtUiBBQXJjaDMyIGJhc2VkIHN5c3RlbXMuDQo+IA0KPiBBeWFuIEt1bWFy
IEhhbGRlciAoMyk6DQo+ICB4ZW4vYXJtOiBNb3ZlIHNvbWUgb2YgdGhlIGZ1bmN0aW9ucyB0byBj
b21tb24gZmlsZQ0KPiAgeGVuL2FybTMyOiBDcmVhdGUgdGhlIHNhbWUgYm9vdC10aW1lIE1QVSBy
ZWdpb25zIGFzIGFybTY0DQo+ICB4ZW4vYXJtMzI6IG1wdTogU3R1YnMgdG8gYnVpbGQgTVBVIGZv
ciBhcm0zMg0KPiANCg0KSeKAmXZlIHRlc3RlZCB0aGlzIHNlcmllIGJ1aWxkaW5nIGFybTY0ICYg
YXJtMzIgTVBVICYgTU1VIGFyY2hpdGVjdHVyZToNCg0KVGVzdGVkLWJ5OiBMdWNhIEZhbmNlbGx1
IDxsdWNhLmZhbmNlbGx1QGFybS5jb20+DQoNCkNoZWVycywNCkx1Y2ENCg0K


From xen-devel-bounces@lists.xenproject.org Tue Apr 08 08:52:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 08:52:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.941601.1341049 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u24h9-0002D9-Ux; Tue, 08 Apr 2025 08:52:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 941601.1341049; Tue, 08 Apr 2025 08: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 1u24h9-0002D2-SJ; Tue, 08 Apr 2025 08:52:35 +0000
Received: by outflank-mailman (input) for mailman id 941601;
 Tue, 08 Apr 2025 08:52:34 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=wetR=W2=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1u24h7-0002Cw-Rr
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 08:52:33 +0000
Received: from DB3PR0202CU003.outbound.protection.outlook.com
 (mail-northeuropeazlp170110001.outbound.protection.outlook.com
 [2a01:111:f403:c200::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ce0d8d08-1456-11f0-9eaa-5ba50f476ded;
 Tue, 08 Apr 2025 10:52:30 +0200 (CEST)
Received: from DU7PR01CA0008.eurprd01.prod.exchangelabs.com
 (2603:10a6:10:50f::29) by AS2PR08MB8363.eurprd08.prod.outlook.com
 (2603:10a6:20b:546::15) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.32; Tue, 8 Apr
 2025 08:52:28 +0000
Received: from DB5PEPF00014B91.eurprd02.prod.outlook.com
 (2603:10a6:10:50f:cafe::3) by DU7PR01CA0008.outlook.office365.com
 (2603:10a6:10:50f::29) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8606.35 via Frontend Transport; Tue,
 8 Apr 2025 08:52:28 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DB5PEPF00014B91.mail.protection.outlook.com (10.167.8.229) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.13
 via Frontend Transport; Tue, 8 Apr 2025 08:52:26 +0000
Received: from DB7PR08MB2987.eurprd08.prod.outlook.com (2603:10a6:5:1c::25) by
 DBBPR08MB6298.eurprd08.prod.outlook.com (2603:10a6:10:1f7::10) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.8606.35; Tue, 8 Apr 2025 08:51:54 +0000
Received: from DB7PR08MB2987.eurprd08.prod.outlook.com
 ([fe80::d53f:b16d:70a5:8668]) by DB7PR08MB2987.eurprd08.prod.outlook.com
 ([fe80::d53f:b16d:70a5:8668%4]) with mapi id 15.20.8606.029; Tue, 8 Apr 2025
 08:51: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: ce0d8d08-1456-11f0-9eaa-5ba50f476ded
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=GYoW/adiGzIpYkdWexESXNhXWAfPsfy+XUiTh7eQel3Oc3Tln3mNVFx7iGfDCsfubRWbpE5wIefIUFuD15b11AR2lmSlVV96/bwrI9vABtvfe5T5bgO8Alz+/OVU5E5Mr7UX9iCQYUUeXUwMcZIl1RbQQuYjrygIt2B5m/oswksubdnRmQZeFReGD27quBZqfBHUZ3FeD6/bQZ65H+0UX4ZA6ioyOevqNrSfYqewM2EHfdA8Dybz6VNn57nxF5RrFQD6SxMfRygCHBHyTBwgF5PtlgqXSPMYvYKP90hvhbLcgUHpGUm1l3XqzG2L3hsJwy0I07y1HY9uAHi6Asm/rw==
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=rX5SMfnGQQRj7Sok1mXkBaN9VVB+e2HR+LHp6LNcOXU=;
 b=aU+1ksvt9GyumJWc6zwqELs8HXk0Qdz6SYZaYpVTsVb/t8Pp2dHBRjCW8P3URPy7MGDtnyX5awUmnN164eHlpAJom53zxplX5aAJxkrb1vNTkuadgkcl1STFr0Wf9bSnEG+S/yaxfsWROCpQ8++xSPJ6xK08dLL9OOc1Tkz4/qwAIR/TUPc4Rw3RwwOE4oQPaH2gjDGCb9mj6zcGpWI7jWR3pUDJyKuTU7+CrRfmFJjX/tMPMQsWlAJKtbmkV66yw+2LstNtcPgbcXZ5KKD56ruxAu7katR4SBoW/Zq/2+dLsPCmB0Z9I7Kks5GiGU3GxY6aOaepvT9YGesLhC43tw==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=fail (sender ip is
 4.158.2.129) smtp.rcpttodomain=amd.com smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=rX5SMfnGQQRj7Sok1mXkBaN9VVB+e2HR+LHp6LNcOXU=;
 b=JmKA5zI8+2mI6F7GbgEnWlLVIu4BF4PbuUf4ER7JkLvaVFizf907zQhJ1u2I5uLc40SUEOtsQEC6AFtZ5oXg4wEVAZ86iwJrP2rr/FfnyT/Po9gwuUjkGOP+wHcpZMJb0Ce7op3GfdHXVeEDaSQ1Vc1K2BRRb+in3uFa0fwwE8U=
X-MS-Exchange-Authentication-Results: spf=fail (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Fail (protection.outlook.com: domain of arm.com does not
 designate 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com;
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=vUIWSQlrzCtR+QHat0nITifJK6RnIln+OD7Vym64BiJCwsFfUNUEl4MAN6oPna4tsh/Pdc0mPHCbzfGyKLa6+iwzTuTp0Z0G8UFYagTWAp2o2n51P3i3sE+bMvWhFJ672hCbIFTQuMjxFlUsi1CGEb3tDoBh5wZ3QrxEmdkra0M9lZb5++vFNIdeYzMWjoELSLMkHJR5e2IGKfzwoff3BnzHR8vWtQq46ao1UkI113IKgKy2HkobVmS1UIzj33sKpiOUub0t2kmth/blvyelh2GVzET6E8K1gS7y764TILHvBHMjRhgUf94HyJJ+iADWJEa53nNZ93ID7AUSgDA+dg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=rX5SMfnGQQRj7Sok1mXkBaN9VVB+e2HR+LHp6LNcOXU=;
 b=InYsRLeu+uMWd09LSOXblAC9uFpoIpj0sd11oajzEVd9GBIELbCTPOB0X7mF1+NHexd9MXujceIe4NbKs2JE5zKzfiOBpSdZq2C/4uPebCtPxIHKekihlCcA7EoVCnAZvZqRJWzyDCSNqPLiauqgVqZENZ+rfFZm+xsy73+WeeMgx1fNKqRqD3U/BLiURSkSK/tRaaTFJUbs4owWfuwqpF/bYBKXUXy0OTJ2LbNmde3ptXaU0Si15OuuGXCmtrZj7Giy1/5fDsym3XWRKnUdU7NygfAYdDlLN7RxVvyuGK+cSHemCDoajuCFlSYHb5Og01mfLYDl0Q2/GF/6Bw7F6g==
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=rX5SMfnGQQRj7Sok1mXkBaN9VVB+e2HR+LHp6LNcOXU=;
 b=JmKA5zI8+2mI6F7GbgEnWlLVIu4BF4PbuUf4ER7JkLvaVFizf907zQhJ1u2I5uLc40SUEOtsQEC6AFtZ5oXg4wEVAZ86iwJrP2rr/FfnyT/Po9gwuUjkGOP+wHcpZMJb0Ce7op3GfdHXVeEDaSQ1Vc1K2BRRb+in3uFa0fwwE8U=
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: Move some of the functions to common file
Thread-Topic: [PATCH v5 1/3] xen/arm: Move some of the functions to common
 file
Thread-Index: AQHbp+1Intz3ipmah0uCxwQ9Q6LVGbOZdvUA
Date: Tue, 8 Apr 2025 08:51:54 +0000
Message-ID: <F4C240B0-E1BA-462F-B348-EEFD2AAA736D@arm.com>
References: <20250407184443.1790995-1-ayan.kumar.halder@amd.com>
 <20250407184443.1790995-2-ayan.kumar.halder@amd.com>
In-Reply-To: <20250407184443.1790995-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.400.131.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DB7PR08MB2987:EE_|DBBPR08MB6298:EE_|DB5PEPF00014B91:EE_|AS2PR08MB8363:EE_
X-MS-Office365-Filtering-Correlation-Id: 145778e8-22cc-415f-6782-08dd767aafe8
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?dlI2TkRLcjRjVzZPdDh6V1hYYUxrSHFZY0lPMkpvWWNZQUtKYThIUkIrODZv?=
 =?utf-8?B?anJoSjE5MlNOQ1pYQ2x4NWpyWStRdGR2c3RZY1RUdHM1SnljQ09FZ3RQQS90?=
 =?utf-8?B?eWhRT3JjYTJrVUpDaFVwbmVKdkYyc2pQbEFZMU0xSW1nVkh4c21aV1FXUjZO?=
 =?utf-8?B?Y3FYUEphRWJPRlNPaFZTelFFMDA4aU9iQ3VReUlCOGVMVVpVa3dVbHQvRGQy?=
 =?utf-8?B?MTNJS05POEJPeEFrWTFVNktuWmZ1UDJZWVd3dHBUYXY1QVJoL29EZUQzN2xX?=
 =?utf-8?B?MFJIWll3QktuRWlJTTZid09ON1BxNXIwUzFlUEt0ekEvdmxaMnBySnhqR2xt?=
 =?utf-8?B?WTlkUkV2Zmh2WE9JTFFTWE5Vdy9Db1lXREpYUkRpRlFxaGh3UTQwb0ZCRVNR?=
 =?utf-8?B?RUh2anpoYnI4UU9KY3QyZGs1Nk85LzFiamdKMVZOOXBtU1BwMURmSE1HVXNU?=
 =?utf-8?B?WDFQNnVmUzB2WXNMUWdLZmpBRDhTdm1VaDZBVkhhb1RoTThrSWFZZW1lc0hC?=
 =?utf-8?B?Q1NFaWtPZTZzc1JaTHBtYnZhWEZFUk1VWmpoN3pGM09uZnJJcmR5bHBIY1di?=
 =?utf-8?B?WDZaZC9jMkxqSG04cDdSQWI2WGFzcVNLNHp5NWVIRUtKSWY5b1VSV3ltRUpk?=
 =?utf-8?B?cDZjSkdncTVxZzluUm1lcTh6ZndKRlFlcVRYbWM1WmsvaFZETWhBeEVibG1P?=
 =?utf-8?B?VEs3TkhLbmpvM1JYSnZVdDNVUC9jQmk1b2Zqb0VXOEJDdnFiT1g4eFBYL1B1?=
 =?utf-8?B?ZVNFV1BvQmJqbDlOMUlWUXptZlFVWnNoQ3puck9RR3BjeFZtN2FzT050V3Iv?=
 =?utf-8?B?eTBKMVdsaFZPRWNJQnJWRUVxWUd0Rks1amc1N0dVcVB2cVRiQVNYMk43S1Uz?=
 =?utf-8?B?dnFOU2N4RnlxYjNxRHlwaExhU2dXSG51SmxNVG04dW5aenJ0SlNHMXBRRkg4?=
 =?utf-8?B?S2FlUTVYT0JNMERvOXVLZjZoL1NVelpRem5DMWJvcm1LaEJIc2xtcVdQRE8v?=
 =?utf-8?B?OXZ4dkxoRFZHcXY2bzArdWZFOWgrR0p1eEI4dXV5YlZpUnZFeHcvZVhGQlR1?=
 =?utf-8?B?bFlVWW5teVJrd3BOT2V2VVRZVDVFem82T3ArRDU4Q1EyRVZnOVB1YmI0VXRE?=
 =?utf-8?B?TUFCRkhHZFh0dTYzTUV0alQ4NmNtTUhtbHFIOVV1WUxZQTVKY0NQWUU2RlYx?=
 =?utf-8?B?YjBpZGluQ3lITEtFUDdRalhRUytkbjF2bDRGOHdpaXlmNzlCb0grNUFORUIz?=
 =?utf-8?B?SzRxVHA2cTdnWVkxMVF1blZITTVvWGJEclZPRmRXVDZhYU5vdDltVit5S1Mx?=
 =?utf-8?B?Y3MwN01iMk5zKy8zTU5uQk1adFJyM0lNWlVLQmhiL3lvVVIxa3FnZjdtb0Jk?=
 =?utf-8?B?Um94MVpETThBUWxrRFZwZGtsdlR0NHNVeU5Fb1I3KzY0YzhYUGVFYXlhVzZv?=
 =?utf-8?B?OTZCaXl0UFdPRW5yNkJkVzV2eHRhR2JZQURlRHZjT2ZUMFMvRXA5TnMxTFJD?=
 =?utf-8?B?ODArU0xrVG1iSEpjUFhmMVZ5Vi9mMFFERDdJSkRWcFBiMWZXYVRkTGZPbExT?=
 =?utf-8?B?ckJOay9vT21BajhTRC81QjdyckhKbEttdndkekt0TWJ1Y2N3cVg0dTFkZFBO?=
 =?utf-8?B?WHRwcjY2dXZvU1FSNXlROWlVanJsWTFPcHkyNldHeXVxYWl1NmFzTHJJTEFP?=
 =?utf-8?B?WVZ0WXJPOHpCa2E4enlVQTBHOWE3U0RhVzk0QWpCQytHVDZhUjhiaHk0Zks5?=
 =?utf-8?B?SC9xRHpWSnllL215MWhWMXZsWVpKTFRQb3lUaTBqcUdMN0JHQnRuR0FHbW5U?=
 =?utf-8?B?RkpHNDJ0MC9tK21kbXlIR2ViTzlGSEF5OUlBMERvUzlRclJ0bWRWZ0FXT1ZU?=
 =?utf-8?B?bk1iVG9GUnFFeTk4aWVNSEZyMHhEeFljazJMTTdkemhzSEFDVVRoL0s5bTRv?=
 =?utf-8?B?bk1WQ0M0SmNYb0ZQQk5ndUJqRjZtTDNZM09neFRUdXQ3ZERCMTg2SzVUQlgy?=
 =?utf-8?B?aDJxeEc4V0V3PT0=?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB7PR08MB2987.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: <73872FC4D3D2F74292E438E82D827029@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR08MB6298
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB5PEPF00014B91.eurprd02.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	330952ac-bc72-4afb-b87c-08dd767a9ce3
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|14060799003|376014|36860700013|35042699022|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?OGw0cXFPc2xPTzNUd0dzNkowRTBxQTRKQklqMmlyOGdqMlhQVFVHYzAvUFB4?=
 =?utf-8?B?VTNEN2xSdTg4SmpkNUQyTUM0cFd2RThwUnpUYWZBT2RBeHlJSS8yTFdXWGxj?=
 =?utf-8?B?Y1dUTmN0RTZxZmJLN2ZRMnh2NllHbERtSEtSUXFLcGxaMFovRVlmK29ESG5O?=
 =?utf-8?B?V3ozQzIzUy9rSTdiUFBrb0l2Yy90anU4aE5MRmxxYjNvS2pzZGRseTZQME9V?=
 =?utf-8?B?emtTSlYrWHJtR0g2Q3YraHpYK2tsMHhmM29oWHgvNTZROEw4OEU5am1HRG9s?=
 =?utf-8?B?Z215cU5FQkVyM2g2S3BGSytHUjNaNkYrdndyZHR6QVBLanlwMm5Rd1B6WTB3?=
 =?utf-8?B?bzdncUZHd0ZWcFM1UExWcGtHZE9Wd25QYW9RQm1iOWJ3WHdXVnN4T2JsSXNC?=
 =?utf-8?B?N0RkRnlOUHVwYUZkeWFJazV6YXNyd1MrYi9iSEk0bUVvYVdJWGZxVDJOUmVm?=
 =?utf-8?B?UER6VjllNi9NRkVld2JWVVREdkNlUFF1OGpNV1FiOHF4MENqL3JpMHA0RFow?=
 =?utf-8?B?aHpGNFpKZkI0MVp6VUd4TmxGd1VhdDNma1llY1Z6OENGVURqN0daakVpaHB0?=
 =?utf-8?B?VnFGWHBKemZaWHU5UUgwVU1wME12QjVyUUR2UHE4cTQ4aDZqVmp1Yno4TzRr?=
 =?utf-8?B?VU91cmNMRFBRWFRpU2hvclJ1WGRKbGJyWjg0dTNiNGFrckRIWnlZbzdOVXc3?=
 =?utf-8?B?MHJTOVVpbWxyVE9XUFRjRFltOVZ6ZGtFdW9GVFFhUEtlMnh3emRuQkNVdzI1?=
 =?utf-8?B?c0Y2NTNobC92Y3E3MVROaE1WenplaXNBOUZFN0NYeDNNNWhVbWpaYnJWaStM?=
 =?utf-8?B?Sk9BcVByN0NSR1l4RFBGM1JJWVBOeTdaN2UzSThnWXZEZE9lUnBkT2FUSDFp?=
 =?utf-8?B?S0kyM3NtVVZtajVjaXQ5d1E3cDRRbnFuTTNjSm1uRmVtelFmQmMybHh5aVJ2?=
 =?utf-8?B?WGVDR1NGTGthNHZSbFBDd0tWQ25maDQ0WW84UUpuVk1FUm9sTnVvZWExVDlT?=
 =?utf-8?B?SWZManFzcG03amxaMzIwU09UREVEakhjUEI3Y09pM1hHdmVsL28rWlVGaytI?=
 =?utf-8?B?U2V5cjl1bFJxMDNiV0p0NkU5SjlkY1lWMWFacGZMS1VVTUdsRnduWnpDRFlX?=
 =?utf-8?B?MFhVVmlRS0tFVE5NT1diSGk4T083QkpjVWhvS09QaHBsTUE0UkVSTWRhNWpi?=
 =?utf-8?B?WXNBckVzRm5ESjI3eXBudDUrTkU3KytDOFJKYXg2SW9hQ2dnN1B1dWxKUmE3?=
 =?utf-8?B?dCtXdDRlZ0tpRVlHSjhmNnBOQ1YwRGphd1BKcGhzeHVuMzZnSHpDQ1RSZDl4?=
 =?utf-8?B?MzdWcWRydEx2L1RTazdaK252cSt2YlFMSm1mUUJlWjB4V2xqRThwUUpyazFC?=
 =?utf-8?B?clU5WlBhR2pZMGtMeEZOeGdlWkhxaVRDMzhkZUJuZG90TlZmeEY0K081WnYv?=
 =?utf-8?B?N3I3MlRoOWo4T3huOUhTdkF3TkhkL3pOM0YxSnkraDd3d2U2Wkg5Znp5UFNZ?=
 =?utf-8?B?ZDRtT3JIUnN3dFlMRmVtWlB4eVByRjNoRDVsL1JUSHI4SXJPeVJuZTU0QU5L?=
 =?utf-8?B?QWhodFNYdGdidU1SNWUvMFlLdS9YNHRXZkNyYWhWRmVJTXZBQ3FkSngyY0Rt?=
 =?utf-8?B?cG1IWHJkbHllV0FoTDN3V0FKU25LajVDQUJRelJQWnhBMWxNT0loWUNMVng2?=
 =?utf-8?B?YXdPZzJHTGw1aU81ZmMxR2pzWjlHMUlxeHhhMkp2VElRZUtIVXFjVWtRbnRF?=
 =?utf-8?B?MEd0U09DZWxlUGJLbVA5SGdzYldYTFNxdHZOSkZvRWNldVlDQUo1c254Szkr?=
 =?utf-8?B?c2NvVmVYOC9kdE1Ya1VEa3hvUjE5ZUNyNEhWUkJTdHFxdUdldi9kNkdNRXZD?=
 =?utf-8?B?NWpPaUZrSTZZV2crTFJ5eEU5dHRCMmcyNi9SeWR6aDV4RHFxM3VHb1ZSQlUz?=
 =?utf-8?B?Y3NkZjB6MjhpMjZkTEFLdm9oQ3FDc3YxVlBLem1IdThsWVpGdGJEYXJ5bnV2?=
 =?utf-8?Q?42jPA+Gj59ljGCEa8ZxrPJOAtulJA0=3D?=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(14060799003)(376014)(36860700013)(35042699022)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Apr 2025 08:52:26.4872
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 145778e8-22cc-415f-6782-08dd767aafe8
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DB5PEPF00014B91.eurprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR08MB8363

SGkgQXlhbiwNCg0KPiBPbiA3IEFwciAyMDI1LCBhdCAxOTo0NCwgQXlhbiBLdW1hciBIYWxkZXIg
PGF5YW4ua3VtYXIuaGFsZGVyQGFtZC5jb20+IHdyb3RlOg0KPiANCj4gQWRkZWQgYSBuZXcgZmls
ZSBjb21tb24uaW5jIHRvIGhvbGQgdGhlIGNvbW1vbiBlYXJseWJvb3QgTVBVIHJlZ2lvbnMNCj4g
Y29uZmlndXJhdGlvbnMgYWNyb3NzIGFybTY0IGFuZCBhcm0zMi4NCj4gDQo+IHByZXBhcmVfeGVu
X3JlZ2lvbiwgZmFpbF9pbnN1ZmZpY2llbnRfcmVnaW9ucygpIHdpbGwgYmUgdXNlZCBieSBib3Ro
IGFybTMyIGFuZA0KPiBhcm02NC4gVGh1cywgdGhleSBoYXZlIGJlZW4gbW92ZWQgdG8gY29tbW9u
LmluYy4NCj4gDQo+ICpfUFJCQVIgYXJlIG1vdmVkIHRvIGFybTY0L3N5c3JlZ3MuaC4NCj4gKl9Q
UkxBUiBhcmUgbW92ZWQgdG8gY29tbW9uLmluYyBhcyB0aGV5IGFyZSBjb21tb24gYmV0d2VlbiBh
cm0zMiBhbmQgYXJtNjQuDQo+IA0KPiBJbnRyb2R1Y2UgV1JJVEVfU1lTUkVHX0FTTSB0byB3cml0
ZSB0byB0aGUgc3lzdGVtIHJlZ2lzdGVycyBmcm9tIHRoZSBjb21tb24gYXNtDQo+IGZpbGUuDQo+
IA0KPiBTaWduZWQtb2ZmLWJ5OiBBeWFuIEt1bWFyIEhhbGRlciA8YXlhbi5rdW1hci5oYWxkZXJA
YW1kLmNvbT4NCj4g4oCUDQo+IA0KDQpQcm92aWRlZCB0aGF0IHlvdSBmaXggTWljaGFs4oCZcyBj
b21tZW50IGFib3V0IGZpbGUgbmFtZSAoZXZlbiBpZiB7bXB1LX1jb21tb24uaW5jIGlzIG1vcmUg
ZmxleGlibGUgYW5kDQp3b3VsZCBub3QgbmVlZCBhbnkgcmVuYW1pbmcgaW4gY2FzZSBhZGRpdGlv
bmFsIGNvZGUgaXMgYWRkZWQgdGhhdCBkb2VzbuKAmXQgaW52b2x2ZSByZWdpb24gbWFuaXB1bGF0
aW9uLA0KYnV0IGF0IHRoaXMgc3RhZ2UgSSBjYW7igJl0IGZvcmVzZWUgYW55KSBhbmQgcHJvdGVj
dCB0aGUgYXNtIG1hY3JvOg0KDQpSZXZpZXdlZC1ieTogTHVjYSBGYW5jZWxsdSA8bHVjYS5mYW5j
ZWxsdUBhcm0uY29tPg0KDQpQbGVhc2Uga2VlcCBpdCBpZiB5b3UgY2hhbmdlIHRoZSBjb2RlIGZv
ciB0aGUgYWJvdmUgY29tbWVudC4NCg0KQ2hlZXJzLA0KTHVjYQ0KDQoNCg0K


From xen-devel-bounces@lists.xenproject.org Tue Apr 08 09:07:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 09:07:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.941615.1341059 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u24vc-00053a-6O; Tue, 08 Apr 2025 09:07:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 941615.1341059; Tue, 08 Apr 2025 09:07: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 1u24vc-00053T-2w; Tue, 08 Apr 2025 09:07:32 +0000
Received: by outflank-mailman (input) for mailman id 941615;
 Tue, 08 Apr 2025 09:07: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=wetR=W2=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1u24va-00053N-P3
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 09:07:30 +0000
Received: from AS8PR04CU009.outbound.protection.outlook.com
 (mail-westeuropeazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c201::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e48fc622-1458-11f0-9ffb-bf95429c2676;
 Tue, 08 Apr 2025 11:07:27 +0200 (CEST)
Received: from DB8P191CA0017.EURP191.PROD.OUTLOOK.COM (2603:10a6:10:130::27)
 by AS4PR08MB7631.eurprd08.prod.outlook.com (2603:10a6:20b:4ce::11) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8583.43; Tue, 8 Apr
 2025 09:07:22 +0000
Received: from DB5PEPF00014B98.eurprd02.prod.outlook.com
 (2603:10a6:10:130:cafe::a9) by DB8P191CA0017.outlook.office365.com
 (2603:10a6:10:130::27) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8606.34 via Frontend Transport; Tue,
 8 Apr 2025 09:07:22 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DB5PEPF00014B98.mail.protection.outlook.com (10.167.8.165) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.13
 via Frontend Transport; Tue, 8 Apr 2025 09:07:22 +0000
Received: from DB7PR08MB2987.eurprd08.prod.outlook.com (2603:10a6:5:1c::25) by
 AM8PR08MB6563.eurprd08.prod.outlook.com (2603:10a6:20b:315::23) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.20; Tue, 8 Apr
 2025 09:06:50 +0000
Received: from DB7PR08MB2987.eurprd08.prod.outlook.com
 ([fe80::d53f:b16d:70a5:8668]) by DB7PR08MB2987.eurprd08.prod.outlook.com
 ([fe80::d53f:b16d:70a5:8668%4]) with mapi id 15.20.8606.029; Tue, 8 Apr 2025
 09:06: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: e48fc622-1458-11f0-9ffb-bf95429c2676
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=R071GjeugQwYV4zpMtmvSYN/g02J/y3rHg37etvMACmTivs7Bg9XypgJFWEXKfss1DQG01VDcsq4I2tcjtHucT1IYdCS8UDsP1ZhiqA0K7XWvF51GmsOzCylCgdz0vVTkGrLWck++p7mUWGza1xpIfpC3k33TNvJ7498liWGHAlFpay8nnPF28njMJLytTjtiuSNXN7d7OR68E0t+nbOsEGr+jAtyB94kxH9D1B2BSoaSjR5UhgUTtg6/bsvpBMlZmuo98YDDPgi8axjg6upOeZ2ja6fCh0wMdqfNAC2+7iT9dfp39qJFhC7S4Ube2vYz2T+437c4gfq9JlALYh0Hw==
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=ZjfKsFNQY8GAg6w7ApVnQel3l2kAt7UeaB4GFYaYTm4=;
 b=bv1fKZn3b51JRIoFv3GBEyirpHP41i7QGZ/8L8Z/ve/e9dR49/TLuDRXySZfmfasIxFJFQs6VMIL2TDat3PpPRyScAbLav2PkZ8MRw4VdX4oflQ2Sdbh0zqEhlh+BCWcYXr3cTynwLS0ivuCpWHea19yp/c2YjvS6g+DLvQU9+4LN6s4BDP96fW6HNC7j3yDiwRWVCX8q0sa+9nLeQZ9ZEkSs44Ul16cy9EsWz2+VNZj93SyYFSYZpxdPqXicpOYE8QkX8HHo2+8u6iUmxmHYnJhWgBWei/yueoc6b/9ellPzuGWz6HLy2iYA3AoJK1QPKUD+uCkiIOLHJtVP6z9Tg==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=fail (sender ip is
 4.158.2.129) smtp.rcpttodomain=amd.com smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ZjfKsFNQY8GAg6w7ApVnQel3l2kAt7UeaB4GFYaYTm4=;
 b=Y66kyAZgK6Y2ud+/2wxCcbxWg3Yj0MpK9Y3+9jzncYE+fWhLE+EWavZAXVLsfFfCzGienrQWTxzSlWu/t8kZBwdMzxjehcijE4hZ+QHUXJFXS2PR9LOCqQqZhCWK5zDn9E7BukE1HDHL/W7QicvNmu2HKSQiCPXM5Yk9niYyWUk=
X-MS-Exchange-Authentication-Results: spf=fail (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Fail (protection.outlook.com: domain of arm.com does not
 designate 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com;
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=cGnBN9XMIzYBtWgx5usN0BmaJFunFUyw5UrzKMx06f5Bk1gm1Ew7qjrMhi1BjAk+iudaIiI5AZ9zYrbPolwHzv6g/KSCbKGooGrbSyScI7Br6aDb+ff8QLwa2/aaeQ4hG5Ct6zffPfnzB2FR8+xupYvQZr4Uf+OuJ3N0Powht2cNCpZCulSEv1fHYNT4ek2EP+OuQw/tiOHivRRCTNumNvL2AGbrvM86bOfpzIgtYN13kxtWTLqlGkhz8LoSKWrfxNVXdTkkCDLmy5fRETvAtsvTk+zi/tMR38QMgdYYAnSMuiK7oEXOAeu0EQbgcC72j7MKWYcMof6Iq8nQHRS1GA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ZjfKsFNQY8GAg6w7ApVnQel3l2kAt7UeaB4GFYaYTm4=;
 b=btVyXR6hVVEYaKMT0FSayF9U2cI3eabbHiRXfcccnyLyMHeXCrPWcg8TW/khMzvdPQkq6aaGs1wL4xA0YHo7YVBheRvXh5LWw4iRDBp9Y9S74qz8dBMb8Mdo7GEGb5Wh5BTRHpIqxqsaNDK9aBGrz7Y2t/pZfNJqbZj6waCpGkACRtjMBy01rH5Hy8XNBH4dnzwTde7Kmo/YYHG3LEYtuEJraq6MP0KoNWEDBsCx3eVk+U8MRKTAIouEB67Lip4n+jt6aGzgS48SBx2qGBSfnoqsGJrZeTy+XLsSut8sHRIJWJ1tjRVlUgbZ2FAp19jthKIhMTLhyah7QKLBdelWUg==
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=ZjfKsFNQY8GAg6w7ApVnQel3l2kAt7UeaB4GFYaYTm4=;
 b=Y66kyAZgK6Y2ud+/2wxCcbxWg3Yj0MpK9Y3+9jzncYE+fWhLE+EWavZAXVLsfFfCzGienrQWTxzSlWu/t8kZBwdMzxjehcijE4hZ+QHUXJFXS2PR9LOCqQqZhCWK5zDn9E7BukE1HDHL/W7QicvNmu2HKSQiCPXM5Yk9niYyWUk=
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 2/3] xen/arm32: Create the same boot-time MPU regions
 as arm64
Thread-Topic: [PATCH v5 2/3] xen/arm32: Create the same boot-time MPU regions
 as arm64
Thread-Index: AQHbp+1A9+alQyM7NUm0i9guCUDbS7OZeyCA
Date: Tue, 8 Apr 2025 09:06:50 +0000
Message-ID: <8E041BA0-2C36-4185-A2A3-B92CFDAE11FE@arm.com>
References: <20250407184443.1790995-1-ayan.kumar.halder@amd.com>
 <20250407184443.1790995-3-ayan.kumar.halder@amd.com>
In-Reply-To: <20250407184443.1790995-3-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.400.131.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DB7PR08MB2987:EE_|AM8PR08MB6563:EE_|DB5PEPF00014B98:EE_|AS4PR08MB7631:EE_
X-MS-Office365-Filtering-Correlation-Id: 99ff29c6-453d-4538-a09b-08dd767cc5ce
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?dE5MRUowaUVaamZsZTdVYlN1S3ovNVhWY0xMcnlVK1I5MW4rVFNGTzV0c2JY?=
 =?utf-8?B?UkU3QnhIMDlMajY3NWQwZ0RUc3dyTGtnM09VRVhUVU5iRFNHZDhkUTdHNGpN?=
 =?utf-8?B?dkt1YnlNUjc1ck5Jb3RzRHZIaEgvaytCdUVtVW9TcXBuY0R3MFFhNnA1dFlF?=
 =?utf-8?B?ZjA3YTVOTkQ5S05zRDZNV3p6dnNwTHRlVndSeHlrNjRldVJvVGtHU2xJNkRz?=
 =?utf-8?B?YlJ6UVpONFExYkZLanFtQ09BR09HTkJ5MXN6UGN6SXNVbml6eGJRM1QwdWZk?=
 =?utf-8?B?MXhZM2pZd2tPS1gyNFI4N1hDK1BUWTNXc3d0ditYeUQ0WGNWbW9QUnNDM1pX?=
 =?utf-8?B?cVpxQzdCR29OdXJGRFdpUVpwL0dJNG5wem81MkRtNEV6VnVLN0U1UWQ5TFV3?=
 =?utf-8?B?M2tLams0Q21OYW9QUmZGQWRzTHZkTFF0dmp0VkxDYjludS9hcDlOVDJkcXJt?=
 =?utf-8?B?L0Q1Lyt0Z1BoWkMvaTdFSDBtc3R4NjVIL1R0K05ySHQxUWY5cDRNaDBtdUJq?=
 =?utf-8?B?ZGU2YUxnT0ozR09KZkpyL004akJXdVN4cVZBVS8zbVQzZ0ZOSXRzZU1qNmh5?=
 =?utf-8?B?ZktTVno1ajd2VGh5MVBtRTZpN1lLMGFGdXR3SnNhRjJhQVcvckcrZGR5cTRx?=
 =?utf-8?B?Z2M5M2U4TkFuN2JTODBHYk5aQ3g4SnNUQmlEU0ozWE5XbVNUQndSa3JZZ3Np?=
 =?utf-8?B?OXNrTDFkdU9jdDlNY21GMHplemYxZmhjSzBWZk5vemtRYlZTU3RPSWpPSk4z?=
 =?utf-8?B?TEtSQ2xQT1c5SEJyYzY2dHJxSVcvOXVBWDIvYWl0cDlwWmNUaEJsejIrckN4?=
 =?utf-8?B?YzhSY1lhSmdoZnFMc2J4MU5jU2s1YURWRUVmU0dvQVh1YVVHc0RWL1E2bGZI?=
 =?utf-8?B?bVBHSGhJcjY0M0J1U3hyQmRDTjhXWDRicUFSc1RtQXZoTmVqbCswTEpmb3ZY?=
 =?utf-8?B?Lzdac0tRcmV3d3UrNEYvWGxRMFd2QU9rNXU1SVV3c1YwUUpKY1RjdG9VWTBh?=
 =?utf-8?B?OGJiSFVwUWtFdndzck1Ibk92cDExQVYxdVlYV2J0RWYvd1ErNEorZEtMOFBz?=
 =?utf-8?B?dXY3bjlMQ2gxNjlHTEFrK1RRaFhxUE52ZVVWT1k2a1J1R2E4TjZTNlArNWRv?=
 =?utf-8?B?UWw1SVVOL0xVM0FiYUlyNmdPWk5aSWN4MkpqSHNlR2o1Mmh0MXF4dVk3L0xr?=
 =?utf-8?B?Y0xjRDg5S3AzL1BsUklKbUdxWXJ6VXpiWS9lVlYwN1c5NlVFRXZjMVd6ckFk?=
 =?utf-8?B?RTVjbmZDdWpCcDY2M2Y0ZjB2dkluVXNJbHkvNnUzNG9zcEw2cTlOY0gzWU1K?=
 =?utf-8?B?aDVhK1lHZkF5V24raVNtTHVWdFpoQmxqeFpXaDA5QjdrN0dnNzU2ZnltamRt?=
 =?utf-8?B?cldaZVJ0SXRrY1pUU3ozL1B5bnM5SjZnWGgzWUE4Y2ZYTHpZSDlnOWZOaVZp?=
 =?utf-8?B?UmhFOGRESWo5R2MyZWNZL05pZlA5UVNLTXBUTTVuencvZzJobytBUE1GTVd6?=
 =?utf-8?B?Q2pBbGw3RDZGSWEvTkFYQ2xmNFpjd2xkeERkRzRCMGZaT3JGRXN6NXJzNXpJ?=
 =?utf-8?B?K0tkZ29GQVlYenBlU3E1dkdySXJMSGlZR0h6L0hIQTc0WEpJRXY2ODlqZTNB?=
 =?utf-8?B?ZzBSelNob28xd29YdTBUeVpLMnF3eTZoaVNabThEVzBTWWVaUW9VVnZseGFP?=
 =?utf-8?B?eHZxNHp6MEJtNHY5QTdvYnNtN1VtdzhPb3ZLRXNuTmFYOHRrdGdOVEozakdm?=
 =?utf-8?B?SXRPaVNNR3pGZkZzOElFOWdrYmNjcm9RcVg4QmVid1h4WnEwYzhyTkx4Yncv?=
 =?utf-8?B?aHNuc0pYbDRKbGRxR1Q5cmc4eXpWclZxOXdHOWE0cWNQOWJBVXZjUnBLK1U1?=
 =?utf-8?B?WGJkaXZkQWh4eGhHYk9WZHpLRHFXcXRBOGZkYWNZM2ZiUE1rWWpGTlpUY2Iw?=
 =?utf-8?Q?V6knLrAMILm3Sz9edwjsZZclN/aJt+/K?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB7PR08MB2987.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: <C09DE8265E245645892C6684CC140AEA@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM8PR08MB6563
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB5PEPF00014B98.eurprd02.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	1573adf5-93f6-4617-7ab7-08dd767cb2a5
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|14060799003|82310400026|376014|36860700013|35042699022|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?QWtGQUovd3hrS3VOYTZCeHBTWGhuNHhPZWVvVnQyRkNRYW9BSVZBR2YvMkxq?=
 =?utf-8?B?MUtHbGZGZWVVMzZ2ODZWSE1sOW1pTzVPQ0RCODJmWGdyZzlJTVRQVXhNVEht?=
 =?utf-8?B?NGNlSklmZVRxSXR0MUhQeWZUNHVBZXdtNjVQYjc1eTlJUkR1R3k1dGtoY3ps?=
 =?utf-8?B?bWRydlVWVC9hbTZWMmptNWx4VW43T2pKSkY2Ry9yVTRuUFduK0R5TFdWMDB4?=
 =?utf-8?B?V1V2SlhkTmlxN2FmVWtCbUpKaGlDMENZNmIyTUswcGtzcXA0WFdyZ3FodVdk?=
 =?utf-8?B?LzI2RUV2bDU1WWdhVkFud2w2U3lCa0w4MGNWMTgxdnpKRlVHWEpkY2Z4cnVZ?=
 =?utf-8?B?elFyV05kRUpHNG40dy9yd1dPM01UR3B2RWtYQW5KTUJxRnVFVXlVVmUrRmFu?=
 =?utf-8?B?L3Q5YmlwMjVyQytpN3RXQitJcVNod2FCZXVCdEdSbEFBblhkTXgrUCtGb29z?=
 =?utf-8?B?YUEzUlk1UUUvWE12bkVqaE1PUW5WbWlRWnBEekNhNEYySEJYWFZsNDBRc2NV?=
 =?utf-8?B?eFNnb3pSMU0vVmU1UUdYUFU2RlBhbVNZVEk5RFBoTmliV3g2aXk5bDdhUi8w?=
 =?utf-8?B?UHVMME5WNDRyWEwrNG1XMHk0YzlXVVVoL1dYSDY5cUU5L1VMZ2RJVjZrNFcy?=
 =?utf-8?B?ZWhpUGNWMDlpa0UzYU1Ib0o3WmVrTmphc3YvTHp6WkZETzZNWmd5VEdjaUZT?=
 =?utf-8?B?VlNjdGVaczR5ZVNCZjBxQ1FIenU1M3Z4VlJ4WVI3YnVQZEoxMG13dW5mOFI5?=
 =?utf-8?B?TzNnTmI4cDV2WXNvWWZGNXExVks0eXNHRmQza3ZEeklFeTQ0c0lNcGd5TkYr?=
 =?utf-8?B?cFo4TVNhZzBmaVd3Y28ySzR1eE9hZytKNmxFR0F6MEkyTXdXYkZTWFBNclZ6?=
 =?utf-8?B?Ni9iU2ZSR3BkYUg3UmVYYnQyR1JBUWFMWWxXelZWZVFDWU8zcXN6aUh2aHc0?=
 =?utf-8?B?cUJzeVBYVGdxK2E5aTlSNVFjM3FUUVRZYnF4RnBoOXZ5TEM1enR3K2ZMREdx?=
 =?utf-8?B?TG1pcXZrZUlHQ0NxNU1IWHRJWGZHNTQ4WE5DaE9ORnpWUmErY1R1empMUHpR?=
 =?utf-8?B?QzFldytMdHJkMEFIVkhGLzFXc3R0eWl3eDkxZjM1ZVZPRkoxNnE5M2VtdHBZ?=
 =?utf-8?B?M2I0SVo1VTRpY0xsR2o4T3Z2RHkyTG15Tjc0ek9XM2xHeGZaQUlxMmJ4cTZ6?=
 =?utf-8?B?b3VuNkgwY25QZUMvUEhacHQwbXc2NzhWbDFoaFBQcVZZUE10NjlSZG5PSUww?=
 =?utf-8?B?REowbmRydHJCbHdlb1RZZGQ1S3pHdUQyZUFKcUp4bWVXajc4bGlJWmkzbXI1?=
 =?utf-8?B?ZGpaeEJZMFBsbUdNRzc3TnhZY05Kcys1VlFoUmc5U2NZaXd2VGo5bnBSbkY2?=
 =?utf-8?B?OUU1cUtCN29hQ2dDNTltdjlEMFdveGFrQTdtT2t2R0tHVU5mUHp4TFlhK00z?=
 =?utf-8?B?MTBNTEVJVWlHSkVKM1ZxZFdwYWE5OE1JWTBsMTFVd2E3MDFldlJJcE5ZbWNI?=
 =?utf-8?B?YlhkUndhK21nOUd3dzZpUDhsUzA0Uzl1NTMyZkJRM2Z4TmZsVkZYQjlSVVAv?=
 =?utf-8?B?TkJNSnJZdThsREt3bmFEdWt4b0FnRVlDSzZBbThXeFY2RURzT0JQMzRwWHZ4?=
 =?utf-8?B?M21LdFlIRkdHMWpuTzdTdHRaOUM1djU5WmErMUNiaFJDVmJNRmFQQldWakpn?=
 =?utf-8?B?Yks5Z2VNNVdqMnBmTDhNYW5FbU9XcTB6YjNabmZ1TVlXMEdZR1VoZkEvM1M0?=
 =?utf-8?B?aFB3VU9sSHRiRElDMlc2aTYvdVdwRU50KzBDUWxpd3pRVUZpeTBIM0VpeVQx?=
 =?utf-8?B?S2MzMkZobFNwRDRzT1ZscTZRdzBmc1lrMUh6ZUtycGE3bVM3czZFeFdWTjJl?=
 =?utf-8?B?dktQV1BTeVkrcEtiWWtFaUhLdW5iWU85alg0QUd6YlFGZ1hLcjk5eEovVU55?=
 =?utf-8?B?UFQ2UHJrcWxJbUwvY0Z3c0E1N2dqYnZJcTNWeW5yQXBla0RWNlVsWW0xQ0Vp?=
 =?utf-8?B?QlBKQVc3SG5ZSitTQVFaenpaTGo5ZDFtamJ4ZldzSkdJdE9kSG9KakxiRHJm?=
 =?utf-8?Q?goa8NM?=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(14060799003)(82310400026)(376014)(36860700013)(35042699022)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Apr 2025 09:07:22.1278
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 99ff29c6-453d-4538-a09b-08dd767cc5ce
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DB5PEPF00014B98.eurprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS4PR08MB7631

SGkgQXlhbiwNCg0KPiBPbiA3IEFwciAyMDI1LCBhdCAxOTo0NCwgQXlhbiBLdW1hciBIYWxkZXIg
PGF5YW4ua3VtYXIuaGFsZGVyQGFtZC5jb20+IHdyb3RlOg0KPiANCj4gV2UgaGF2ZSBjcmVhdGVk
IHRoZSBzYW1lIGJvb3QtdGltZSBNUFUgcHJvdGVjdGlvbiByZWdpb25zIGFzIEFybXY4LVIgQUFy
Y2g2NC4NCj4gQWxzbywgd2UgaGF2ZSBkZWZpbmVkICpfUFJCQVIgbWFjcm9zIGZvciBhcm0zMi4g
VGhlIG9ubHkgZGlmZmVyZW5jZSBmcm9tDQo+IGFybTY0IGlzIHRoYXQgWE4gaXMgMS1iaXQgZm9y
IGFybTMyLg0KPiBUaGUgbWFjcm9zIGhhdmUgYmVlbiBkZWZpbmVkIGluIG1wdS9jcHJlZ3MuaC4N
Cj4gDQo+IEFsc28gZGVmaW5lZCBXUklURV9TWVNSRUdfQVNNKCkgdG8gd3JpdGUgdG8gc3lzdGVt
IHJlZ2lzdGVycyBpbiBhc3NlbWJseS4NCj4gDQo+IFNpZ25lZC1vZmYtYnk6IEF5YW4gS3VtYXIg
SGFsZGVyIDxheWFuLmt1bWFyLmhhbGRlckBhbWQuY29tPg0KPiAtLS0NCj4gDQoNClvigKZdDQoN
Cj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9hcm0zMi9zeXNyZWdzLmgg
Yi94ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vYXJtMzIvc3lzcmVncy5oDQo+IGluZGV4IDIyODcx
OTk5YWYuLmE5MGQxNjEwYTEgMTAwNjQ0DQo+IC0tLSBhL3hlbi9hcmNoL2FybS9pbmNsdWRlL2Fz
bS9hcm0zMi9zeXNyZWdzLmgNCj4gKysrIGIveGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL2FybTMy
L3N5c3JlZ3MuaA0KPiBAQCAtMjAsNiArMjAsMTMgQEANCj4gICogdXNlcyByMCBhcyBhIHBsYWNl
aG9sZGVyIHJlZ2lzdGVyLiAqLw0KPiAjZGVmaW5lIENNRF9DUDMyKG5hbWUuLi4pICAgICAgIm1j
ciAiIF9fc3RyaW5naWZ5KENQMzIocjAsIG5hbWUpKSAiOyINCj4gDQo+ICsjZGVmaW5lIFJFR0lP
Tl9URVhUX1BSQkFSICAgICAgIDB4MTggICAgLyogU0g9MTEgQVA9MTAgWE49MCAqLw0KPiArI2Rl
ZmluZSBSRUdJT05fUk9fUFJCQVIgICAgICAgICAweDFEICAgIC8qIFNIPTExIEFQPTEwIFhOPTEg
Ki8NCj4gKyNkZWZpbmUgUkVHSU9OX0RBVEFfUFJCQVIgICAgICAgMHgxOSAgICAvKiBTSD0xMSBB
UD0wMCBYTj0xICovDQo+ICsjZGVmaW5lIFJFR0lPTl9ERVZJQ0VfUFJCQVIgICAgIDB4MTEgICAg
LyogU0g9MTAgQVA9MDAgWE49MSAqLw0KPiArDQo+ICsjZGVmaW5lIFdSSVRFX1NZU1JFR19BU00o
diwgbmFtZSkgbWNyIENQMzIodiwgbmFtZSkNCg0KcHJvYmFibHkgdGhlIHNhbWUgYXBwbGllcyB0
byB0aGlzIHBhdGNoLCB0aGlzIG9uZSBuZWVkcyB0byBzdGF5IHdoZXJlIF9fQVNTRU1CTFlfXyBp
cyBkZWZpbmVkPw0KDQpUaGUgcmVzdCBsb29rcyBnb29kIHRvIG1lIQ0KDQpSZXZpZXdlZC1ieTog
THVjYSBGYW5jZWxsdSA8bHVjYS5mYW5jZWxsdUBhcm0uY29tPg0KDQpDaGVlcnMsDQpMdWNhDQoN
Cg==


From xen-devel-bounces@lists.xenproject.org Tue Apr 08 09:14:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 09:14:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.941631.1341068 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u251o-0007rv-Um; Tue, 08 Apr 2025 09:13:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 941631.1341068; Tue, 08 Apr 2025 09:13: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 1u251o-0007ro-Rz; Tue, 08 Apr 2025 09:13:56 +0000
Received: by outflank-mailman (input) for mailman id 941631;
 Tue, 08 Apr 2025 09:13: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=h40A=W2=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1u251n-0007ri-CI
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 09:13:55 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on20618.outbound.protection.outlook.com
 [2a01:111:f403:2418::618])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ca0ba72c-1459-11f0-9eaa-5ba50f476ded;
 Tue, 08 Apr 2025 11:13:53 +0200 (CEST)
Received: from BN9PR12MB5273.namprd12.prod.outlook.com (2603:10b6:408:11e::22)
 by BY5PR12MB4066.namprd12.prod.outlook.com (2603:10b6:a03:207::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8583.43; Tue, 8 Apr
 2025 09:13:49 +0000
Received: from BN9PR12MB5273.namprd12.prod.outlook.com
 ([fe80::cf66:58ab:47be:4b13]) by BN9PR12MB5273.namprd12.prod.outlook.com
 ([fe80::cf66:58ab:47be:4b13%5]) with mapi id 15.20.8606.029; Tue, 8 Apr 2025
 09:13:49 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ca0ba72c-1459-11f0-9eaa-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=IA1Hvo9WknF5zAsCHqlZIyb5SybETGmPTItm/nkshxKZexrltgmGsKRDzLZpFfF4W1qUM0jXgclbZfbGDEYzaAkTTclq5FL9MYJCN/kK/bo0dctx1lKij0OKJgwyw5+R/yYAx9RHvoS2SvUY8FWmR72nHZ1S0NWP+XMiGPGhoCljiQnFNtCVdXITOiz9Shyr/1UtTdd9whFAaLuh6G5Q/yAjol6SskZTQ9Y2VcpTmwvb0iITbiFfSNlPEiksI5QvYWF5WeATs4X0pXS8aV5GhLpJbYV/FlUqmXQKlo8Ew4/6qvZm+8pu6OtyE1p95Mp0EnoYzpM+K2Wy3y7vpL7Y+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=YjJwMog5CwgG2/J0SzMadEKkgifi7kE1D/72iZ6uRkE=;
 b=VazbgEtZ4t2ldH9//vV3F5xzl/0LRL3Q5VxHZcWNkRRXr1L7nDOnoW1acvIdAL0w3As1DoW9HijDIb11RYUbz4twcKM4QVf7bbu/SH5NIWn61NOiujBJ3GyakuzZbngTzyZKhLMm96d9EweE1ByZHIgcNhxrFqNGtwTsJKYssIJk5nuOt48A7p/0TJard/lY193g/E/PfXyoE1FhG9StiDsiarbiv//bfULlJv/eyLXVszGg01MKvhpkr6rmhlz0XurgBDLdFZHS2OAVav1/NpNx7GwspST49GEiTqbFBKnLlv//HvVh/ZCyJ0WAFowlYZ4yigzNhx90VvCDfLNplQ==
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=YjJwMog5CwgG2/J0SzMadEKkgifi7kE1D/72iZ6uRkE=;
 b=fikLFR7a2fLr2U5YsMrcEb7Hd/ois1SLQE571Et9pp8DbPObI0ph/PG0cHSbO0SOUmK86MQ2+/1KjTg8OSups6TTB9LVCm9oq6vnNCQJw2BG4QLaqsYJ0onHjXd221NF/G1HlF5EacD+srPZjEZHlw+j/kiryQQIegKzS3dhPAQ=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <1a58517e-e882-4ca6-898a-923d8a8fa8cd@amd.com>
Date: Tue, 8 Apr 2025 11:13:45 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 2/3] xen/arm32: Create the same boot-time MPU regions
 as arm64
To: Ayan Kumar Halder <ayan.kumar.halder@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>
References: <20250407184443.1790995-1-ayan.kumar.halder@amd.com>
 <20250407184443.1790995-3-ayan.kumar.halder@amd.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <20250407184443.1790995-3-ayan.kumar.halder@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR3P281CA0131.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:94::14) To BN9PR12MB5273.namprd12.prod.outlook.com
 (2603:10b6:408:11e::22)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN9PR12MB5273:EE_|BY5PR12MB4066:EE_
X-MS-Office365-Filtering-Correlation-Id: dd5ef580-62d2-438a-2f00-08dd767dac37
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?MU9pNms1SkhYaktyUkpLdVFscE9CRjN3bW5mUzV3RmYvSmJRRmtKQWtkRTRF?=
 =?utf-8?B?M2FXR29raWRmY0N4TGZJZi8yc1RPb1p2RWd5aFZzYkoxUzdkTVVXUXp1bXJR?=
 =?utf-8?B?MnZBMWJ3ekUxNVNUK2RJanlKazExdDRVeE1OdHFXSG5SeXUxV2kza3JPTTND?=
 =?utf-8?B?bmhQVDQrTzMzeXFjREhtQVR5ejdhSWtBdDdvOTNVY2dPdG5SZ0VrUFkxVi9Y?=
 =?utf-8?B?NUtPbktVOUFtekdjUzhxYzUvREF6ZzBjMmpTUXJKNy9XTVNnOHZEaUpMbm5r?=
 =?utf-8?B?VThOdmw1OENwMkVmSC9RaWNpbUZFZU5xb2EzYWJHTGdBbnI1aFFldDdFQmRt?=
 =?utf-8?B?T2ZLb2YxM1NqS25vRjVucDRvbjF4RUllT1lUclZDOGg1ZC9IcGQ5YXEwWTRn?=
 =?utf-8?B?Vjhhb3Z6cXJueU92R2M4TWVYRFJOc3M0Tnl3RVM4SGh5NjJpdmZpTlN3ZXRG?=
 =?utf-8?B?SS9jMkhzTjRkMWREZ3Y0RkxldUxkcW05NTdpeDlIOFhPamQ4SUxKVXNmWGtU?=
 =?utf-8?B?ZGJxMzVGbFNONE5wemdJcFFaVlRMYzRZNldCOTlKdnNEd2pLMGFIZ2ZpVC9O?=
 =?utf-8?B?UlB3MWtsRGJadG4rUGtjd2xGblVZbGc1YkErOXZBRy9EcUdBRkhIZm5pcnBX?=
 =?utf-8?B?VGUzVFpjWWhhZUozMWFpMmZNRHVEdklWSmtadGtaYUNUbmFBdnJTYndEZjdP?=
 =?utf-8?B?RTJSV3g4MkcwYWJuTGJyZWdRYmdvSFc2TDl3MUdOVVpGSEdqTlRKZ0QwSDN6?=
 =?utf-8?B?NVFTcDlSVVM3dzBWclkyVFlUejcwRTI5OFVQLzNoeHo0T0p6UnI3VGNuWXNC?=
 =?utf-8?B?SkxsaWxta2dtZWJDVXhNWWZLZTVHSlF3NE9SdHlIRUZKb01IOXVrd29nb0Ni?=
 =?utf-8?B?WnBadXZReVJEeDkwbHFrK2Z3bXV1MkhrdllyaFU0WDZidXlDV3FrWWhpc0lJ?=
 =?utf-8?B?TFQyK1VhZWNRY2hhajZvSktiMzMwRy9JT1FLYzhYWHczelllQnQ1ZVRqZU1S?=
 =?utf-8?B?dTN3cG1VOHNkcnlBRW1jSHpheXBHdFBkN3dIVWxHS0ExSXdNWUh5aFhvQy83?=
 =?utf-8?B?dUUxVWcrSXR3bStuTFFJY0dqTDdDY0tTakJmaENWK3J5UHZsNkhuRVN4c1pq?=
 =?utf-8?B?Yk9YME16UC9TVWF0U3BiajhUVTZTYWlvOGJNamhsTVJKMUFLZStwMTJrOXNC?=
 =?utf-8?B?VVJQTG9KV29wa2xFVTVGZVdadFpVOVF4czZ4RVpXMTF6RGpXZUp1Wmhqa2FO?=
 =?utf-8?B?Rk5lYktleHljd2xGS1RqSlNJdmEvRm9TOGNuOUl0T1k4OThGRlBLUU5KU1Jq?=
 =?utf-8?B?RXhOSHU0WXJiK3FVL0dkTGJka05Ock9QTmhILzk0cGRHKzhRbXhSd3RITmxm?=
 =?utf-8?B?RjE4OTZOeDF2ZFFHUC92TzZTdGF3YWJFN3lrcDdQYWtsdlRpWDJZRUZNMHFK?=
 =?utf-8?B?aUgrdjB0SDhMWDF1djBhV1VIVFhtTzR0Q2NDN0tpSWhVaVNtOVlobjJ5ZDFR?=
 =?utf-8?B?VDdhcUhKZHNYQXU2bVpLKzY2ZGZRc3ZaM1dpejRPd2ZzaWl4T215VXkxTGd1?=
 =?utf-8?B?SEdrVXNCZXhSeEFWNDBIQlF0Wnk3NGdaZzY0dkM2SEtvajhnVDExL0hjR0gx?=
 =?utf-8?B?dWhpOUpYWTQ5a2JZK2szWkJ3RzFuQjhjNDlqNmdPSGJUR01ZVW0zQUE3dnoz?=
 =?utf-8?B?UFQ1eGtCMXExZURzS0VqSmU0eXhodjZrR0FzdnhyVktFOExqeGMzYW9WQkYx?=
 =?utf-8?B?TDF3NHAraGNQZVhMNGY5UDlnQzc3dTk1QkVDbE1zQ2ZUQ1FzaHQ1WWxjQm41?=
 =?utf-8?B?bk1zd0kvUnU2aTlwSDU5b3pQM1AvMms3dkZGUjVOVFNJS29jZ3dQTnNWWW53?=
 =?utf-8?Q?NuvFxkiKuLdct?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN9PR12MB5273.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?Z3pwV3ZHMWZwZVZxSGNJL0JMTk1uZTFkOUx2MFdzdXN2SHBkTndoR3JCQ2pS?=
 =?utf-8?B?OHJqNllGNWxtYlRwNnFzTHBDbUxiRXlFZUR2M0ovT2ZWUlA3cnVKZzQ2K215?=
 =?utf-8?B?c1pseThKWUd5RjcrdktFQkVac2Y3S3lxV21GOFlHNXhpcForRUFxZlRQcWpL?=
 =?utf-8?B?cDVYNlNHN3RJZVluenZ3UWYxbkdQaVRGU1pNN2xaYzBkUTREREkvbWE1d0Vx?=
 =?utf-8?B?YUQ1eDZYRHZTeEttRzJDcEtKaTRuZXBzdVoreGY2cS85cGJjbVNGV2wvRkxz?=
 =?utf-8?B?WE5IcTR5NE5nZnhGbldVdWxSNjdYbnZXNU5KNnhKckhJYzBHczJNUnY1QUpk?=
 =?utf-8?B?NlpiT0UrVGxrL1ZFYmluM3NUd01MZU9KcnVaQnFoQ1YxUTRiWitrUW15T0dQ?=
 =?utf-8?B?TEM3cFJIdzg2M3RxRTVaYkx4RXE5Umh6ak9jZXJhR0dKdm1XZCtzWXRHWmZQ?=
 =?utf-8?B?aUg5b0IvTGZxYWd1UGc3dkl3L29SbEh3bFRLZGM2K1BMR29QM2gzc1AzT1px?=
 =?utf-8?B?dEVzTGFTWTZpazltdkVTYXcxZEoxbGQ1dFVvMTQ3K055dUhuWCtUMXlHZVk2?=
 =?utf-8?B?cTUxMCtabTVVcnREbHBGc0gwbTBzYTNvUndXbnhvR0ZkR1Q5Q28zZnVrdTls?=
 =?utf-8?B?elgyUGJvTmF5Q2FhajBKZWFvakEybm43VHZpUk1SUy9CYXliSVh5U2VqSEd5?=
 =?utf-8?B?SmMrdEZkUFF6V3NBS2xaTG16d2tIK0ovaUpBSUhIR1ZwMHIzRXhtR2hHVWp3?=
 =?utf-8?B?MzZZTzUrS0FiS3lDN2U0aGdvZ0NwWjhUUVIvcjBLamYrcGI2MTA0NlVTUFVI?=
 =?utf-8?B?U3lCWlRaekw2b0RhNCtxci8zQmJXbzNBaUR4LzdjUnRKYWdIclVNZldGM0N6?=
 =?utf-8?B?cXJ1QUpmdG5UQmxXdW9ZalovemtFcFNGaEd2V3B6a3VXMGJSSlZLNHB0dVFi?=
 =?utf-8?B?ZDVCd3VnaXlOQUNvZzdBRG5WRHkzV0lVbzgyVjF5ZnYrSE9NRTNFWlJFemlY?=
 =?utf-8?B?Rm4ySGtDNUtpYUFuWmhnOERmdUFaSnIweERYNDdESUdkNithZkFjN3JNODRN?=
 =?utf-8?B?c3ltdDFSa1BkckdXVWgycWNWQktCU0lrYTdBb1JPYkZhRGNwcW9wUnJSeVZ3?=
 =?utf-8?B?bHR3TTMzVTQ0WGZyV1NZRDVTc3R5dFpFWlpzRVBTdStGN2p2UTBxTkh0YUtn?=
 =?utf-8?B?bEVmdXB2RHplNGs2enN2VGdyTlcvZnhpdkdMZHAwU1JjS0dWNDlBVXg5dXY3?=
 =?utf-8?B?RTFCVG1LSmQwSnVUcHUzTkI2U3JIcDVXRlNWaUlzOWMxcXdHMjJ2R0wvYm9y?=
 =?utf-8?B?V0hDRDkzS1MyYysxWEYyMlMzNkdVVDRmaStKMjFOSEtpeTh5Z3ByU2EyamhO?=
 =?utf-8?B?WTNETHJnby85c2dvNzljSFVDOWxQMkpzcS9tdk1iU2R5UGNSeWVoM3hheEda?=
 =?utf-8?B?eHVpNG9lMURXSkJzUnN3R00zdXBKMkZiaDdnY0s4R3dISlFnUEk0cENpc2xh?=
 =?utf-8?B?RlQvSDVVb2dLRE5DaE80M1k5WmM5SXUwNktOdlViZ2Nkb3dqek9tQ2FTS3pS?=
 =?utf-8?B?dU1KakxNd2NEckhKaFF0NE5ZTFUzMVVnbEYvRHJFSmpIbTVVRjBiOVhaWHR4?=
 =?utf-8?B?c0hrTlNHdmx5NjcwZGRpQWc4Nm9zRDRSNVpLUkpVK3UwOHlpNFI4TndjZzA4?=
 =?utf-8?B?U2E1TFJtTE5WMmZvTWVpWGxaMU5EQ2ZSYXhwWnRPemoyeGVCQ1pLSjJBNzdu?=
 =?utf-8?B?WEh1a2VKVldodVBaQi9SenJHNGhpMVlVWTFaTnNWMmRuVkMwcEUwRTJ0OE1R?=
 =?utf-8?B?VVFScHRtSTlGTXM4ZThUWG94VWxGUlY3a0FQQTltdm1STkJEZE15WDQ4VHBX?=
 =?utf-8?B?bGhoeFpCWmFFRnFWN0ZtV2JmNFVNbXlFek9ldXo2M3VzRHgwbUhjcGFCWGt0?=
 =?utf-8?B?ZkZJVUpxZUNlVFk4bTBvZ1VkajR6ME5tcVRRdXZWZllPUFFDNldyWDlMV1ZS?=
 =?utf-8?B?eEVVM3pWclFzdFp3K0pNeWpXZXlxSE1pWEU4NGxRMllodnJQTXFCWHRvTTdm?=
 =?utf-8?B?dkxBS2lBY0hJRmFEVThESFhKQUkrTlFnTFNiZ2lPNWVlUDc4a2F6Q2REK204?=
 =?utf-8?Q?Ctt5QsHZKArSOI1+yKjDyDmcA?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: dd5ef580-62d2-438a-2f00-08dd767dac37
X-MS-Exchange-CrossTenant-AuthSource: BN9PR12MB5273.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Apr 2025 09:13:49.0488
 (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: kt9/ChMIbD3tM6588nUMDUdpH38RoXXGPbe8TcI9AWmudOy/Xe3Mb88jSre8EoiH
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR12MB4066



On 07/04/2025 20:44, Ayan Kumar Halder wrote:
> We have created the same boot-time MPU protection regions as Armv8-R AArch64.
> Also, we have defined *_PRBAR macros for arm32. The only difference from
> arm64 is that XN is 1-bit for arm32.
> The macros have been defined in mpu/cpregs.h.
NIT: Describe your changes in imperative mood

> 
> Also defined WRITE_SYSREG_ASM() to write to system registers in assembly.
> 
> Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
> ---
> Changes from
> 
> v1 -
> 
> 1. enable_mpu() now sets HMAIR{0,1} registers. This is similar to what is
> being done in enable_mmu(). All the mm related configurations happen in this
> function.
> 
> 2. Fixed some typos. 
> 
> v2 -
> 1. Include the common prepare_xen_region.inc in head.S.
> 
> 2. Define LOAD_SYSREG()/STORE_SYSREG() for arm32.
> 
> v3 -
> 1. Rename STORE_SYSREG() as WRITE_SYSREG_ASM()
> 
> 2. enable_boot_cpu_mm() is defined in head.S
> 
> v4 -
> 1. *_PRBAR is moved to arm32/sysregs.h.
> 
> 2. MPU specific CP15 system registers are defined in mpu/cpregs.h. 
> 
>  xen/arch/arm/arm32/Makefile              |   1 +
>  xen/arch/arm/arm32/mpu/Makefile          |   1 +
>  xen/arch/arm/arm32/mpu/head.S            | 101 +++++++++++++++++++++++
>  xen/arch/arm/include/asm/arm32/sysregs.h |   7 ++
>  xen/arch/arm/include/asm/cpregs.h        |   4 +
>  xen/arch/arm/include/asm/mpu/cpregs.h    |  24 ++++++
>  6 files changed, 138 insertions(+)
>  create mode 100644 xen/arch/arm/arm32/mpu/Makefile
>  create mode 100644 xen/arch/arm/arm32/mpu/head.S
>  create mode 100644 xen/arch/arm/include/asm/mpu/cpregs.h
> 
> diff --git a/xen/arch/arm/arm32/Makefile b/xen/arch/arm/arm32/Makefile
> index 40a2b4803f..537969d753 100644
> --- a/xen/arch/arm/arm32/Makefile
> +++ b/xen/arch/arm/arm32/Makefile
> @@ -1,5 +1,6 @@
>  obj-y += lib/
>  obj-$(CONFIG_MMU) += mmu/
> +obj-$(CONFIG_MPU) += mpu/
>  
>  obj-$(CONFIG_EARLY_PRINTK) += debug.o
>  obj-y += domctl.o
> diff --git a/xen/arch/arm/arm32/mpu/Makefile b/xen/arch/arm/arm32/mpu/Makefile
> new file mode 100644
> index 0000000000..3340058c08
> --- /dev/null
> +++ b/xen/arch/arm/arm32/mpu/Makefile
> @@ -0,0 +1 @@
> +obj-y += head.o
> diff --git a/xen/arch/arm/arm32/mpu/head.S b/xen/arch/arm/arm32/mpu/head.S
> new file mode 100644
> index 0000000000..84e9f1f8ec
> --- /dev/null
> +++ b/xen/arch/arm/arm32/mpu/head.S
> @@ -0,0 +1,101 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +/*
> + * Start-of-day code for an Armv8-R MPU system.
That's exactly the same text as for Aarch64. At least write Armv8A-R-AArch32.

> + */
> +
> +#include <asm/arm32/macros.h>
> +#include <asm/mpu/common.inc>
> +#include <asm/page.h>
> +
> +/*
> + * Set up the memory attribute type tables and 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 AArch32 architecture is
> + * IMPLEMENTATION DEFINED, we intend to turn off the Background region here.
> + *
> + * Clobbers r0 - r1
> + */
> +FUNC_LOCAL(enable_mpu)
> +    /* Set up memory attribute type tables */
> +    mov_w r0, MAIR0VAL
> +    mov_w r1, MAIR1VAL
> +    mcr   CP32(r0, HMAIR0)
> +    mcr   CP32(r1, HMAIR1)
Is there really a need to do these 2 writes one after another?
Why can't we use only r0 and save one clobbered reg?
mov_w r0, MAIR0VAL
mcr   CP32(r0, HMAIR0)
mov_w r0, MAIR1VAL
mcr   CP32(r0, HMAIR1)

> +
> +    mrc   CP32(r0, HSCTLR)
> +    bic   r0, r0, #SCTLR_ELx_BR       /* Disable Background region */
> +    orr   r0, r0, #SCTLR_Axx_ELx_M    /* Enable MPU */
> +    orr   r0, r0, #SCTLR_Axx_ELx_C    /* Enable D-cache */
> +    mcr   CP32(r0, HSCTLR)
> +    isb
> +
> +    ret
> +END(enable_mpu)
> +
> +/*
> + * Maps the various sections of Xen (described in xen.lds.S) as different MPU
> + * regions.
> + *
> + * Clobbers r0 - r5
> + *
> + */
> +FUNC(enable_boot_cpu_mm)
> +    /* Get the number of regions specified in MPUIR_EL2 */
> +    mrc   CP32(r5, MPUIR_EL2)
> +    and   r5, r5, #NUM_MPU_REGIONS_MASK
> +
> +    /* x0: region sel */
> +    mov   r0, #0
> +    /* Xen text section. */
> +    mov_w   r1, _stext
> +    mov_w   r2, _etext
> +    prepare_xen_region r0, r1, r2, r3, r4, r5, attr_prbar=REGION_TEXT_PRBAR
> +
> +    /* Xen read-only data section. */
> +    mov_w   r1, _srodata
> +    mov_w   r2, _erodata
> +    prepare_xen_region r0, r1, r2, r3, r4, r5, attr_prbar=REGION_RO_PRBAR
> +
> +    /* Xen read-only after init and data section. (RW data) */
> +    mov_w   r1, __ro_after_init_start
> +    mov_w   r2, __init_begin
> +    prepare_xen_region r0, r1, r2, r3, r4, r5
> +
> +    /* Xen code section. */
> +    mov_w   r1, __init_begin
> +    mov_w   r2, __init_data_begin
> +    prepare_xen_region r0, r1, r2, r3, r4, r5, attr_prbar=REGION_TEXT_PRBAR
> +
> +    /* Xen data and BSS section. */
> +    mov_w   r1, __init_data_begin
> +    mov_w   r2, __bss_end
> +    prepare_xen_region r0, r1, r2, r3, r4, r5
> +
> +#ifdef CONFIG_EARLY_PRINTK
> +    /* Xen early UART section. */
> +    mov_w   r1, CONFIG_EARLY_UART_BASE_ADDRESS
> +    mov_w   r2, (CONFIG_EARLY_UART_BASE_ADDRESS + CONFIG_EARLY_UART_SIZE)
> +    prepare_xen_region r0, r1, r2, r3, r4, r5, attr_prbar=REGION_DEVICE_PRBAR, attr_prlar=REGION_DEVICE_PRLAR
> +#endif
> +
> +    b    enable_mpu
> +END(enable_boot_cpu_mm)
> +
> +/*
> + * We don't yet support secondary CPUs bring-up. Implement a dummy helper to
> + * please the common code.
> + */
> +FUNC(enable_secondary_cpu_mm)
> +    PRINT("- SMP not enabled yet -\r\n")
> +1:  wfe
> +    b 1b
> +END(enable_secondary_cpu_mm)
> +
> +/*
> + * Local variables:
> + * mode: ASM
> + * indent-tabs-mode: nil
> + * End:
> + */
> diff --git a/xen/arch/arm/include/asm/arm32/sysregs.h b/xen/arch/arm/include/asm/arm32/sysregs.h
> index 22871999af..a90d1610a1 100644
> --- a/xen/arch/arm/include/asm/arm32/sysregs.h
> +++ b/xen/arch/arm/include/asm/arm32/sysregs.h
> @@ -20,6 +20,13 @@
>   * uses r0 as a placeholder register. */
>  #define CMD_CP32(name...)      "mcr " __stringify(CP32(r0, name)) ";"
>  
> +#define REGION_TEXT_PRBAR       0x18    /* SH=11 AP=10 XN=0 */
> +#define REGION_RO_PRBAR         0x1D    /* SH=11 AP=10 XN=1 */
> +#define REGION_DATA_PRBAR       0x19    /* SH=11 AP=00 XN=1 */
> +#define REGION_DEVICE_PRBAR     0x11    /* SH=10 AP=00 XN=1 */
> +
> +#define WRITE_SYSREG_ASM(v, name) mcr CP32(v, name)
Same comment as for previous patch.

> +
>  #ifndef __ASSEMBLY__
>  
>  /* C wrappers */
> diff --git a/xen/arch/arm/include/asm/cpregs.h b/xen/arch/arm/include/asm/cpregs.h
> index aec9e8f329..6019a2cbdd 100644
> --- a/xen/arch/arm/include/asm/cpregs.h
> +++ b/xen/arch/arm/include/asm/cpregs.h
> @@ -1,6 +1,10 @@
>  #ifndef __ASM_ARM_CPREGS_H
>  #define __ASM_ARM_CPREGS_H
>  
> +#ifdef CONFIG_MPU
NIT: Do we really need to protect this include? I thought we do the ifdefery if
we need to include either mmu or mpu. Here we don't have a choice and afaict
there's nothing problematic in mpu/cpregs.h

> +#include <asm/mpu/cpregs.h>
> +#endif
> +
>  /*
>   * AArch32 Co-processor registers.
>   *
> diff --git a/xen/arch/arm/include/asm/mpu/cpregs.h b/xen/arch/arm/include/asm/mpu/cpregs.h
> new file mode 100644
> index 0000000000..6b20c7ceae
> --- /dev/null
> +++ b/xen/arch/arm/include/asm/mpu/cpregs.h
> @@ -0,0 +1,24 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +
> +#ifndef __ASM_ARM_MPU_CPREGS_H
> +#define __ASM_ARM_MPU_CPREGS_H
> +
> +/* CP15 CR0: MPU Type Register */
> +#define HMPUIR          p15,4,c0,c0,4
> +
> +/* CP15 CR6: MPU Protection Region Base/Limit/Select Address Register */
> +#define HPRSELR         p15,4,c6,c2,1
> +#define PRBAR_EL2       p15,4,c6,c3,0
> +#define PRLAR_EL2       p15,4,c6,c8,1
> +
> +#define MPUIR_EL2       HMPUIR
> +#define PRSELR_EL2      HPRSELR
AFAIK, these macros are there to use AArch64 sysreg names in common code when
compiling Arm32. This would mean they should be protected with #ifdef CONFIG_ARM_32.

~Michal



From xen-devel-bounces@lists.xenproject.org Tue Apr 08 09:24:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 09:24:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.941646.1341080 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u25Bj-0002Fl-UD; Tue, 08 Apr 2025 09:24:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 941646.1341080; Tue, 08 Apr 2025 09: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 1u25Bj-0002Fe-Ps; Tue, 08 Apr 2025 09:24:11 +0000
Received: by outflank-mailman (input) for mailman id 941646;
 Tue, 08 Apr 2025 09:24: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=wetR=W2=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1u25Bi-0002FY-80
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 09:24:10 +0000
Received: from EUR03-DBA-obe.outbound.protection.outlook.com
 (mail-dbaeur03on2061c.outbound.protection.outlook.com
 [2a01:111:f403:260d::61c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 38b28820-145b-11f0-9ffb-bf95429c2676;
 Tue, 08 Apr 2025 11:24:07 +0200 (CEST)
Received: from AS4P251CA0013.EURP251.PROD.OUTLOOK.COM (2603:10a6:20b:5d2::18)
 by PAWPR08MB9518.eurprd08.prod.outlook.com (2603:10a6:102:2ed::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.34; Tue, 8 Apr
 2025 09:23:59 +0000
Received: from AMS1EPF00000042.eurprd04.prod.outlook.com
 (2603:10a6:20b:5d2:cafe::f9) by AS4P251CA0013.outlook.office365.com
 (2603:10a6:20b:5d2::18) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8606.33 via Frontend Transport; Tue,
 8 Apr 2025 09:23:59 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AMS1EPF00000042.mail.protection.outlook.com (10.167.16.39) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8606.22
 via Frontend Transport; Tue, 8 Apr 2025 09:23:58 +0000
Received: from DB7PR08MB2987.eurprd08.prod.outlook.com (2603:10a6:5:1c::25) by
 GV1PR08MB8402.eurprd08.prod.outlook.com (2603:10a6:150:a7::17) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.8606.32; Tue, 8 Apr 2025 09:23:23 +0000
Received: from DB7PR08MB2987.eurprd08.prod.outlook.com
 ([fe80::d53f:b16d:70a5:8668]) by DB7PR08MB2987.eurprd08.prod.outlook.com
 ([fe80::d53f:b16d:70a5:8668%4]) with mapi id 15.20.8606.029; Tue, 8 Apr 2025
 09:23:23 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 38b28820-145b-11f0-9ffb-bf95429c2676
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=wot8TnMIWltg933+eJEQWH05aQ7tqBgYgMeBTox//scUoeOP1UY/lnvKznVNNfJx/9gtN0RgKmohof+nNrAdCA+yhcvIoNMcWwZaSHz/nPZhVyDhPfrm4ybZu8VAh/gxyGCt3FWRb+blNEgt3rIU6UBu4clEfbNniL9/C0o4Ym4qn2172zXHjBwYbwPVZXcljhYJY39wEHKINH21ZynZdhIrcxJgpUuN4VgxOJVeAEwvbgXE2H7tSUC91yzQP6fE/Hjl+DON3xk1hT9BPpXY707IR2zFQgE3WDSaiq4/31xc3cA8BDcoUKMSbVZypV0ocPzJcGvMTyXAhUm0kP8SjA==
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=uqbh3V8DkGrmBjH/qQTtr5Z/jekRlOHlsfY5WUZHlGY=;
 b=XxJmysfHYcOwP+bjxTjLC7u+cXaNEB0dQrfGJpYJf/rrO0NlRt1oLVF7BuLrkM4HKAFh3iPNCz8MvLLQcJyjZ6rLdU+V469NksmDbPgiGQAEl0+kedsvsATkS7g3OU2NuxzV3HH3F492/dJ4R6gn+feOu2c7e0xQXg6Mu1Y+Kcoebl6TdyOxV9/MQYIP3wBR4Q9vymsfO+N220SwJV1V75QaN0H/Gc4kZEBKhEnb6QTT0BLwbXzMXxnDBwBMKkf/d3cC4aTTD7caBLaz99hVMyIDf1dFME1RtjwKCDD1De2VLJj9jxW5K4B82rKk/jc6BZLeOhXNj1Ei3emBxzSDWQ==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=fail (sender ip is
 4.158.2.129) smtp.rcpttodomain=amd.com smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=uqbh3V8DkGrmBjH/qQTtr5Z/jekRlOHlsfY5WUZHlGY=;
 b=oyXtUAU+HsUi0LeyzOCw+lbcwNjImwkrO+kf7zCui6YVoc6DMobkmNgnPBKmu8m3nyYVRO0dCAoEEHA1/R/1m66rhd9TW3I+hWgfx8WgjKgIWaY4/FYlwbDLg/2NWzixUpiDVIwHO05WYjljuQIvqgNEzGFw8HrBmIJ/IvXya2w=
X-MS-Exchange-Authentication-Results: spf=fail (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Fail (protection.outlook.com: domain of arm.com does not
 designate 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com;
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=xuchFA3Q41eoByYY4PskiDQaH2TaD2sdYGR/5qRbpsXFZ6vjnQkl8PMyFqYJGFlBeZ+CVgiY6RlEWOwdiiFrJTJ1m8fr+KZcAIyd5cMKyCCCZ3N+Fghz8aDWWLoaCeofHvdq73C9y6uTmuVyv4pOkn0U1y+9jFOPBVwxRWhwVbbWOXLdnV/lM3Sw8dPO82zs+17DGwLLwZTKF1u0rrVVCcyjMGUYlGTU/dxkEU+UZbdzBXyVY8IDC26Kmpt5wlPOst3r7+Xr0GZX+RQXTDAa0uD1j1kgr2vWmZZPPMkvrO3QhB/rPCO0v8O3/+5wmr6rrTxqKlwO3wzE3BLKZVkRBw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=uqbh3V8DkGrmBjH/qQTtr5Z/jekRlOHlsfY5WUZHlGY=;
 b=VIS7kf8iGH0Kel1SIrzzjpQEFbi5Q4I0xtqI/22uJWNiEOeeCvpxo7zwJEYjYZN2ANoQ7kRV6OpwTXJAeWHChvefZtgdigLQDZC+le46/SYPn7R7kkFJR/LJV6TlZ1RLRrSSM6AlUYp0jV35Js8ck8N4R/PKF6o0DxSIDsz5QpdD7DORJxjblbVbxjonEV+VdEdjPjn97dRwRfx73Ktp8iYAR51toQSOzQmIZlk0DOnTewemfChEbFZ21jpdp0iFxFAjfinLbEmv0lUKmp+7EUk4pM7vblMyGzOjFRU5v5Zv9uFV3rPR0NCvEQsCIYZ/OVf9ACUyU8tBzQW+ozXwgg==
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=uqbh3V8DkGrmBjH/qQTtr5Z/jekRlOHlsfY5WUZHlGY=;
 b=oyXtUAU+HsUi0LeyzOCw+lbcwNjImwkrO+kf7zCui6YVoc6DMobkmNgnPBKmu8m3nyYVRO0dCAoEEHA1/R/1m66rhd9TW3I+hWgfx8WgjKgIWaY4/FYlwbDLg/2NWzixUpiDVIwHO05WYjljuQIvqgNEzGFw8HrBmIJ/IvXya2w=
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 3/3] xen/arm32: mpu: Stubs to build MPU for arm32
Thread-Topic: [PATCH v5 3/3] xen/arm32: mpu: Stubs to build MPU for arm32
Thread-Index: AQHbp+07/vC6GU4Tpk2NnzEwwALGgrOZf8AA
Date: Tue, 8 Apr 2025 09:23:22 +0000
Message-ID: <5CFB5A0F-E3A1-4F06-B89A-EDB5574F4910@arm.com>
References: <20250407184443.1790995-1-ayan.kumar.halder@amd.com>
 <20250407184443.1790995-4-ayan.kumar.halder@amd.com>
In-Reply-To: <20250407184443.1790995-4-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.400.131.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DB7PR08MB2987:EE_|GV1PR08MB8402:EE_|AMS1EPF00000042:EE_|PAWPR08MB9518:EE_
X-MS-Office365-Filtering-Correlation-Id: 5b7ed85c-ba3e-43e5-f664-08dd767f1776
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:
 =?us-ascii?Q?mv2dBT+MxQkNTLDa+Gvy/p5HEeLuxD6JcKpT2Gq7uNrE2huTlhOV9v9oDFVX?=
 =?us-ascii?Q?qkgKGAmCxShE/CP8fuAMe7oIe9G6bpKmObALfbjSgDaEVyjJC5EQJbB4Jxsw?=
 =?us-ascii?Q?0NcKkxUMazkI+Xg3y6u4Mz9k8I8yFelne/nbCLTBKf6bF0/QIVQLPSkuQgrG?=
 =?us-ascii?Q?96IdhV9znv8OGuUvX0UCuiwPwM1BqvEHW7AOLe8u9i/zSCjJZTbL6OJV+Vc+?=
 =?us-ascii?Q?Jg8gcN32gOiC9JlxkA7RIKA/jDOqwbBBKFMVw1L2RSgNbZqq8uqid4vTMeYs?=
 =?us-ascii?Q?e9IXje+W6/3QW2KS5J3FgAogEHgvzFrFyEaPMK50cj8y0D2KezZ5l+m+kP9y?=
 =?us-ascii?Q?RMWYUsya0CHJMUXVTCGi9MbbTInhA309/HXJN3ChoGh3K5z9ImzgBOo1XmAE?=
 =?us-ascii?Q?59jHwufQpTnAp+NAZa7QRpCOcoEg966GVhPw+YuTcSL/iHkJgj7bLoHcrUn5?=
 =?us-ascii?Q?Y7hSIv0URgJ9S+bQ7rFAagA3cphZvGfMn3KIBfwu0rpWtiGsGTPRGCHjg+qr?=
 =?us-ascii?Q?Y7CMPU3O8whWmrWvdr1K2ldIAHR7jd0GV3LJgygYDNKcdOkfYr7xGW4r7meA?=
 =?us-ascii?Q?3O2kBFuTudCiSMrb6PDCnfZZKLYczFt9fnvaAtJPi+bWt1LvIl/Q33kPe7v4?=
 =?us-ascii?Q?mhgXUYU0dQuXswGp4MLh+psV2kD+4EQcC+6u6R5WuBJOtaBcbc8w+/BDhKEN?=
 =?us-ascii?Q?HXIPkrz9qCd868gAvuVLHyI9tqBgRDQ7ehn4E1YklpQSNi5byiUO4WE7I66z?=
 =?us-ascii?Q?9GL1VG7fJBbzRuqValj+lShqrIh9tzIMcZOLIE9f4dOcC78eicYsIpBFOYzN?=
 =?us-ascii?Q?I8xvzKZFrXrG3ZAOoyLd45juyokYllclkZNhnQfi44UuX3AGXpVkX3vJczKy?=
 =?us-ascii?Q?Np5HPC4FHKeXJd2F7ThYry0wFOXdtN9KB9mXS1QGcjM/YtV0XH+9lab2vdBc?=
 =?us-ascii?Q?Vy+4EKHnYYrd93DziFWtggHVsmlB/p47j/PqhlUgTD8KqdVQMTDTC+fkhSED?=
 =?us-ascii?Q?VuA+ktHSdCTeI/joa7wbJJrtMSl3MxZgIoAoa8VKcWnhB7RhvHbhOchkpvjL?=
 =?us-ascii?Q?ovM4QK71GqD7gIPkX7R+F/nCZBwdvNjn4h4xFDKe7o57ANBgcV8pOgsD5giC?=
 =?us-ascii?Q?Ik8SxVFrFO8HiybUUjtlsyaxgTohlbOjbQctPyWnY1tIRkztIajhppPhI+HG?=
 =?us-ascii?Q?P//zZSD5K/Dy7aLR2x8jqukjSRh29PjSa8hYh6zgwW3+riKEIugd2Do9mr4j?=
 =?us-ascii?Q?TKOjtwy9HMSbTiu2fux/QuyGh9cTuFDn7wFaUpP8BRjvN6mETzRnWK12G5+U?=
 =?us-ascii?Q?hcIimLXjkigz2zS+eRWZ8l9+jnhCWpCRGh0kabVrvonw7qU0e0TUFOKN+9nX?=
 =?us-ascii?Q?yO1IEtbdmfbifYEEvmgj0HDy9DshiT2hDUIS6QqAAFmZCViHYouTECfbLFrz?=
 =?us-ascii?Q?FAjJdV4ni7ld9KOb03/e4RENCcoL/u2RhJ1uUciQXGV5DEBzxagKCw=3D=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB7PR08MB2987.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(38070700018);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-ID: <7D6AA61CF7307046BB7C7127B0AA4B4F@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR08MB8402
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AMS1EPF00000042.eurprd04.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	2d266475-c34d-4428-4e79-08dd767f0265
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|14060799003|82310400026|376014|36860700013|35042699022|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?BbzrLjftB4x99diE9nLmK/LzJNnYsmLonzXoRozTqumsCJYhoL16pPyF/qeG?=
 =?us-ascii?Q?+djgRvdZ70Pl1aswEZRyEvvSmKr+A0rEbaqY6tCfmVp/ezte+lO7eP/+8w9w?=
 =?us-ascii?Q?XQdncZ+iyntZ1TGbgCxfisGicsBq4vdMByQuwPvSX/j7tRmmQvstaHiJixV+?=
 =?us-ascii?Q?8UJSAk+HBCybFwMpv/qO/AfG9FO0gn+1iQdDopu5KcsfEI7MICuQBDO/sleN?=
 =?us-ascii?Q?+8G80oC6VerESJrb/XJHxvYsshPUgMU9fpZuVHJtG39acgXJ80V9eHETvj7C?=
 =?us-ascii?Q?kF2VTGL0VgBclS9lC8dGkmJYFIEpNR4iraOt08X/6kQc3U3dGxqzm09HL7ZU?=
 =?us-ascii?Q?P02jf/BkLICK0Gpm+00zPUPARgkeAcKiM6Rwjef9iEgjVbAIX4J723rUDkSd?=
 =?us-ascii?Q?yT2W3hOf97jZjc2LXaYf37xMdFLP7za1YtUk2kgQFGbEuKpPFDFa1CMCFJWF?=
 =?us-ascii?Q?NeGM0KKct6RIPOFBFTrdYIVsuabFyuLlrOE695WGOHvNHcz2vAhBCI8NriRD?=
 =?us-ascii?Q?3Or5Lwxjq+Zzpgjziqu0GWwUynr9qiDY1vseeRXeSNY1Sqf1twZSlXyuJ3Au?=
 =?us-ascii?Q?BgPLNeI9N/ylM1WBVzBIxrkIbHmItjprXOTmmrD4TYmu1V+zwpYBzuK9fMC+?=
 =?us-ascii?Q?Ap6uK9A9pHADAme9GG65gpMEpmeYXI/3u1BBM5OewKiKEOnUN3hizHxSxf/A?=
 =?us-ascii?Q?dedxHS3vM4cBrNSpJApcOcX0cicDyyPYbfLK4fPs1/vORWPSDU4f1vtsvkhi?=
 =?us-ascii?Q?V8iA3l2S9NKOTfsACaPzPRWMaEqWL/0vS4CrSFWD1DT5OQ42Ky0BuzCFsvXo?=
 =?us-ascii?Q?h48kduuCdVX/UZhlwt80EHWAoGJmOdIJIYqe+aZJx0eoSuxZxZpXJbL+Bzk3?=
 =?us-ascii?Q?XZiQ6u9reS+mqR4CK/Yxa5iQnxK4ghHSbJC+jTH5ubtev2Xlqt/lO70fNrT4?=
 =?us-ascii?Q?uYsfSacGQu+cOPdrci4MuTLCWta47Lvzd9Ll+SYOQFn6YAAky0bByxcmLmjc?=
 =?us-ascii?Q?5/fUXHZNkiB+MC6epHLz3iafjJ5II3UUjtHjHaMpBDvJi792zj3M0edpt359?=
 =?us-ascii?Q?p6TVVP6nDjTZGVJKylUUdOPM3rIhTQtkFEHQlBywgB+aswGf/LtPGlywW772?=
 =?us-ascii?Q?El3p4s+NXj5UtlZTrn4keyQi+auL5WKD9KLl/fUcz0ni3GNgT5yaL9PqtSWr?=
 =?us-ascii?Q?33pXVzAdqUG98WIS2Gt+/dFTNGy2E/ij7Nrf0LHUVysMTLS//bRlophcSUEI?=
 =?us-ascii?Q?4+DUGvzb9XvKsbwa9K0T0d1xQXePC4e/FizI3aXF/CNgtbTlSP1VO4WKHuD2?=
 =?us-ascii?Q?N5XTj0+yugAGoOay3RPqZ3oPPQ0evp7dTKQosYbVtLHGBDTngVJrT3UjuOqe?=
 =?us-ascii?Q?2TnwNaN82me8iYk9pYx9Dj7NysMEOrRHgiPyjzqqHEhy2WsBDHCRZRraFwr5?=
 =?us-ascii?Q?Rroh8J1RpXkVxJBYrLu7a9dO49ChzMZRNYc2arQz9AYKZspfylBP4ER+vDcv?=
 =?us-ascii?Q?capPxGWJ4nwV1Tc=3D?=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(14060799003)(82310400026)(376014)(36860700013)(35042699022)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Apr 2025 09:23:58.2137
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 5b7ed85c-ba3e-43e5-f664-08dd767f1776
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AMS1EPF00000042.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR08MB9518

Hi Ayan,

> On 7 Apr 2025, at 19:44, Ayan Kumar Halder <ayan.kumar.halder@amd.com> wr=
ote:
>=20
> Add stubs to enable compilation
>=20
> Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
> ---
> Changes from :-
>=20
> v1, v2 -
> 1. New patch introduced in v3.
> 2. Should be applied on top of
> https://patchwork.kernel.org/project/xen-devel/cover/20250316192445.23764=
84-1-luca.fancellu@arm.com/
>=20
> v3 -
> 1. Add stubs for map_domain_page() and similar functions.
>=20
> 2. 'BUG_ON("unimplemented")' is kept in all the stubs.
>=20
> v4 -=20
> 1. is_xen_heap_mfn() macros are defined across mpu/mm.h (ARM32 specific)
> , mmu/mm.h (ARM32 specific) and asm/mm.h (ARM64 specific)
>=20
> 2. s/(void*)0/NULL
>=20
> xen/arch/arm/arm32/mpu/Makefile   |  2 ++
> xen/arch/arm/arm32/mpu/p2m.c      | 18 ++++++++++++++
> xen/arch/arm/arm32/mpu/smpboot.c  | 23 +++++++++++++++++
> xen/arch/arm/include/asm/mm.h     |  9 +------
> xen/arch/arm/include/asm/mmu/mm.h |  9 +++++++
> xen/arch/arm/include/asm/mpu/mm.h |  5 ++++
> xen/arch/arm/mpu/Makefile         |  1 +
> xen/arch/arm/mpu/domain_page.c    | 41 +++++++++++++++++++++++++++++++
> 8 files changed, 100 insertions(+), 8 deletions(-)
> create mode 100644 xen/arch/arm/arm32/mpu/p2m.c
> create mode 100644 xen/arch/arm/arm32/mpu/smpboot.c
> create mode 100644 xen/arch/arm/mpu/domain_page.c
>=20
> diff --git a/xen/arch/arm/arm32/mpu/Makefile b/xen/arch/arm/arm32/mpu/Mak=
efile
> index 3340058c08..38797f28af 100644
> --- a/xen/arch/arm/arm32/mpu/Makefile
> +++ b/xen/arch/arm/arm32/mpu/Makefile
> @@ -1 +1,3 @@
> obj-y +=3D head.o
> +obj-y +=3D smpboot.o
> +obj-y +=3D p2m.o
> diff --git a/xen/arch/arm/arm32/mpu/p2m.c b/xen/arch/arm/arm32/mpu/p2m.c
> new file mode 100644
> index 0000000000..df8de5c7d8
> --- /dev/null
> +++ b/xen/arch/arm/arm32/mpu/p2m.c
> @@ -0,0 +1,18 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +

I would add:
#include <xen/bug.h>
for BUG()

> +#include <xen/init.h>
> +#include <asm/p2m.h>
> +
> +void __init setup_virt_paging(void)
> +{
> +    BUG_ON("unimplemented");
> +}
> +
> +/*
> + * Local variables:
> + * mode: C
> + * c-file-style: "BSD"
> + * c-basic-offset: 4
> + * indent-tabs-mode: nil
> + * End:
> + */
> diff --git a/xen/arch/arm/arm32/mpu/smpboot.c b/xen/arch/arm/arm32/mpu/sm=
pboot.c
> new file mode 100644
> index 0000000000..3f3e54294e
> --- /dev/null
> +++ b/xen/arch/arm/arm32/mpu/smpboot.c
> @@ -0,0 +1,23 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +

I would add:
#include <xen/bug.h>
for BUG()

#include <xen/errno.h>
for EINVAL

#include <xen/stdbool.h>
for bool

> +#include <xen/mm.h>
> +
> +int prepare_secondary_mm(int cpu)
> +{
> +    BUG_ON("unimplemented");
> +    return -EINVAL;
> +}
> +
> +void update_boot_mapping(bool enable)
> +{
> +    BUG_ON("unimplemented");
> +}
> +
> +/*
> + * 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 fbffaccef4..5b67c0f8bb 100644
> --- a/xen/arch/arm/include/asm/mm.h
> +++ b/xen/arch/arm/include/asm/mm.h
> @@ -170,14 +170,7 @@ struct page_info
> #define _PGC_need_scrub   _PGC_allocated
> #define PGC_need_scrub    PGC_allocated
>=20
> -#ifdef CONFIG_ARM_32
> -#define is_xen_heap_page(page) is_xen_heap_mfn(page_to_mfn(page))
> -#define is_xen_heap_mfn(mfn) ({                                 \
> -    unsigned long mfn_ =3D mfn_x(mfn);                            \
> -    (mfn_ >=3D mfn_x(directmap_mfn_start) &&                      \
> -     mfn_ < mfn_x(directmap_mfn_end));                          \
> -})
> -#else
> +#ifdef CONFIG_ARM_64
> #define is_xen_heap_page(page) ((page)->count_info & PGC_xen_heap)
> #define is_xen_heap_mfn(mfn) \
>     (mfn_valid(mfn) && is_xen_heap_page(mfn_to_page(mfn)))
> diff --git a/xen/arch/arm/include/asm/mmu/mm.h b/xen/arch/arm/include/asm=
/mmu/mm.h
> index caba987edc..9b98d12b07 100644
> --- a/xen/arch/arm/include/asm/mmu/mm.h
> +++ b/xen/arch/arm/include/asm/mmu/mm.h
> @@ -21,6 +21,15 @@ extern unsigned long directmap_base_pdx;
>=20
> #define frame_table ((struct page_info *)FRAMETABLE_VIRT_START)
>=20
> +#ifdef CONFIG_ARM_32
> +#define is_xen_heap_page(page) is_xen_heap_mfn(page_to_mfn(page))
> +#define is_xen_heap_mfn(mfn) ({                                 \
> +    unsigned long mfn_ =3D mfn_x(mfn);                            \
> +    (mfn_ >=3D mfn_x(directmap_mfn_start) &&                      \
> +     mfn_ < mfn_x(directmap_mfn_end));                          \
> +})
> +#endif
> +
> #define virt_to_maddr(va) ({                                             =
      \
>     vaddr_t va_ =3D (vaddr_t)(va);                                       =
        \
>     (paddr_t)((va_to_par(va_) & PADDR_MASK & PAGE_MASK) | (va_ & ~PAGE_MA=
SK)); \
> diff --git a/xen/arch/arm/include/asm/mpu/mm.h b/xen/arch/arm/include/asm=
/mpu/mm.h
> index 86f33d9836..bfd840fa5d 100644
> --- a/xen/arch/arm/include/asm/mpu/mm.h
> +++ b/xen/arch/arm/include/asm/mpu/mm.h
> @@ -13,6 +13,11 @@ extern struct page_info *frame_table;
>=20
> #define virt_to_maddr(va) ((paddr_t)((vaddr_t)(va) & PADDR_MASK))
>=20
> +#ifdef CONFIG_ARM_32
> +#define is_xen_heap_page(page) ({ BUG_ON("unimplemented"); false; })
> +#define is_xen_heap_mfn(mfn) ({ BUG_ON("unimplemented"); false; })
> +#endif
> +
> /* On MPU systems there is no translation, ma =3D=3D va. */
> static inline void *maddr_to_virt(paddr_t ma)
> {
> diff --git a/xen/arch/arm/mpu/Makefile b/xen/arch/arm/mpu/Makefile
> index 21bbc517b5..ff221011d5 100644
> --- a/xen/arch/arm/mpu/Makefile
> +++ b/xen/arch/arm/mpu/Makefile
> @@ -2,3 +2,4 @@ obj-y +=3D mm.o
> obj-y +=3D p2m.o
> obj-y +=3D setup.init.o
> obj-y +=3D vmap.o
> +obj-$(CONFIG_ARM_32) +=3D domain_page.o
> diff --git a/xen/arch/arm/mpu/domain_page.c b/xen/arch/arm/mpu/domain_pag=
e.c
> new file mode 100644
> index 0000000000..8859b24e04
> --- /dev/null
> +++ b/xen/arch/arm/mpu/domain_page.c
> @@ -0,0 +1,41 @@
> +/* SPDX-License-Identifier: GPL-2.0-or-later */
> +#include <xen/domain_page.h>

I would add:

#include <xen/bug.h>
for BUG()

#include <xen/mm-frame.h>
for mfn_t and INVALID_MFN

#include <xen/types.h>
for NULL


> +
> +void *map_domain_page_global(mfn_t mfn)
> +{
> +    BUG_ON("unimplemented");
> +    return NULL;
> +}
> +
> +/* Map a page of domheap memory */
> +void *map_domain_page(mfn_t mfn)
> +{
> +    BUG_ON("unimplemented");
> +    return NULL;
> +}
> +
> +/* Release a mapping taken with map_domain_page() */
> +void unmap_domain_page(const void *ptr)
> +{
> +    BUG_ON("unimplemented");
> +}
> +
> +mfn_t domain_page_map_to_mfn(const void *ptr)
> +{
> +    BUG_ON("unimplemented");
> +    return INVALID_MFN;
> +}
> +
> +void unmap_domain_page_global(const void *va)
> +{
> +    BUG_ON("unimplemented");
> +}
> +
> +/*
> + * Local variables:
> + * mode: C
> + * c-file-style: "BSD"
> + * c-basic-offset: 4
> + * indent-tabs-mode: nil
> + * End:
> + */
> --=20
> 2.25.1

with the above addressed, at least for me it looks good!

Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>

Cheers,
Luca



From xen-devel-bounces@lists.xenproject.org Tue Apr 08 09:32:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 09:32:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.941662.1341088 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u25Jq-000568-PB; Tue, 08 Apr 2025 09:32:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 941662.1341088; Tue, 08 Apr 2025 09:32: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 1u25Jq-000561-MZ; Tue, 08 Apr 2025 09:32:34 +0000
Received: by outflank-mailman (input) for mailman id 941662;
 Tue, 08 Apr 2025 09:32: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=7fLb=W2=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u25Jp-00055v-I7
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 09:32: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 65af060b-145c-11f0-9eaa-5ba50f476ded;
 Tue, 08 Apr 2025 11:32:32 +0200 (CEST)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-ac25520a289so933303566b.3
 for <xen-devel@lists.xenproject.org>; Tue, 08 Apr 2025 02:32:32 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 a640c23a62f3a-ac7bfeed008sm877791966b.85.2025.04.08.02.32.30
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 08 Apr 2025 02:32: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: 65af060b-145c-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744104751; x=1744709551; 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=yXJZv282eMm2CNHhd19p7+TXeVAIxeHRkWcQd14B3uE=;
        b=eGzligRchHGhcPNJ3sXPVRMoDwz3/eBG6/0SOSvh1lf0nEgipVtp4FnNqPh0nAjFBa
         13CF/8rWiY5IPGNwZABGt2gBWl01FjqGLGYNOIIRSj05REjMqBPN9WGdXbilOPLSODug
         6z97uRMFn7WrZRMsKUirJFY00J60FneQXZEyE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744104751; x=1744709551;
        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=yXJZv282eMm2CNHhd19p7+TXeVAIxeHRkWcQd14B3uE=;
        b=bXd+7JXfY4RCyYIJGpNZKyDp55N7sml+s2tN0I7UfB6l5qHv6N1ZG0udePZVh1Eyoe
         XzxgnRKUrXWDoqFUYCuObfDq2aNmpSL73hJ/zC82QyBHCTmYTHt6xEtiJwuSroODG3zT
         TDa0in4j9mIb3sO8l/y5mgvvW8z3T1mPtM5faPFTRHR8ZXHF6/DxGVLhC9qtfxt2xzI0
         fduM9ojGuwfQ95jpHuAi82lEapxqfm0BDuQuvIvqYGi6P+A4gvhGpOxTKgKSXXZS77VZ
         TYZw775RnQLbPYgKSpA8tnFzYVdpX5AL5ZYccl3FJb9RtX1eeH7v8a7aRnCHtxuGQ8SW
         K8aA==
X-Gm-Message-State: AOJu0YxIAmZ+YHXnuz46spYNJWedFA/FN+c8cbjfBh8WHi8rIMidJ7ZO
	QNnpOcDDva9UUDGbemdqQO1OunrQ3G+YliETuxs8xoO8mXNS5slAKLxMhBtCp4IBG7LBwVgZ8jY
	e
X-Gm-Gg: ASbGncuKE9NulqsBt6nkoW4hO/ddp+2mgQjpPsvXtTZqLHMLH8yJS/getL3W8SC+CFK
	xfATvXSC6c5PSM/0LrXsegin83lBEoXPQRTY6DZ9eSPMU4ycSCss1jC/k1WwWFLgE8cxvmoLpSI
	k5J9WcGcDwu0Fq0Eqn/lFbdQjPENzStUAiLgF0CHJrMaE2yQbqAyV0vSpT+hTwPBOmkzfOqNaKZ
	Q2VSu3u8x59N08muSR8GhTB1QKNSOTFJoF0UV6jCoMM2eleHz9XCTLHVtIHhX1wICNAAjF7XQfq
	UElZOQMF5zHxfpIJo8AMLXg1mfxVG3WKen+2GoTqklLeqDfAyw==
X-Google-Smtp-Source: AGHT+IHlFLTzJisMVV9/r18vcwbEkQbRk6D6mYf7q2U5y7ov+wCH5JbyIvP7WkTX5QIzwObM6GkO7w==
X-Received: by 2002:a17:907:2cc5:b0:ac7:391a:e2d5 with SMTP id a640c23a62f3a-ac7d6e9fedfmr1387212366b.60.1744104751102;
        Tue, 08 Apr 2025 02:32:31 -0700 (PDT)
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/hvm: fixes for RO MMIO emulation
Date: Tue,  8 Apr 2025 11:31:54 +0200
Message-ID: <20250408093156.83277-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.48.1
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Hello,

Two small fixes for RO MMIO emulation for HVM guests. First one removes
unreachable code from the HVM path, second fixes an issue in the
mmio_ro_emulated_write() handler when used in HVM guests context.

Thanks, Roger.

Roger Pau Monne (2):
  x86/hvm: remove unreachable MMCFG write emulation
  x86/hvm: fix write emulation of RO ranges

 xen/arch/x86/hvm/emulate.c      | 22 +++++++------------
 xen/arch/x86/include/asm/mm.h   |  3 ---
 xen/arch/x86/mm.c               | 38 ++++++---------------------------
 xen/arch/x86/pv/ro-page-fault.c | 31 +++++++++++++++++++++++++++
 4 files changed, 45 insertions(+), 49 deletions(-)

-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Tue Apr 08 09:32:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 09:32:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.941663.1341099 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u25Js-0005KN-VM; Tue, 08 Apr 2025 09:32:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 941663.1341099; Tue, 08 Apr 2025 09:32:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u25Js-0005KG-Sq; Tue, 08 Apr 2025 09:32:36 +0000
Received: by outflank-mailman (input) for mailman id 941663;
 Tue, 08 Apr 2025 09:32:35 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=7fLb=W2=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u25Jr-00055v-BR
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 09:32:35 +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 67068b4e-145c-11f0-9eaa-5ba50f476ded;
 Tue, 08 Apr 2025 11:32:35 +0200 (CEST)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-abbd96bef64so1041933866b.3
 for <xen-devel@lists.xenproject.org>; Tue, 08 Apr 2025 02:32:35 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 a640c23a62f3a-ac7c01bdf2bsm869852166b.162.2025.04.08.02.32.33
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 08 Apr 2025 02:32:33 -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: 67068b4e-145c-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744104754; x=1744709554; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=OBoZj2TWpf5qRwQbJR04rLsEsqxEil79wFCoZ826MAc=;
        b=Kai+NV/ZaGOTHkZVzsbqGfNsFCgWC9E3P8iwiouABfih30iuth7SEsU7357M+sNrLI
         A5oTDuI9bOtpvW5L1bSCId+1GI595nwtaR9J5uUWlTJTuPFfwdEWhKL8V/uvIrpdx2VR
         VOGppy76RE+iBQI4Cx0+21XOPrGsal1Jl4++g=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744104754; x=1744709554;
        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=OBoZj2TWpf5qRwQbJR04rLsEsqxEil79wFCoZ826MAc=;
        b=HsF6sEyJGzw9dj1LAcTWY461IyM4/JiR9/qOjOuBlWQ0BIX4SwUPwaxHMtB1F7pezD
         ewSF91zyNJMGz8F6aruSbWT9KgUZHAhHdkvZCzj0Tm65UEfAZWmeRUJdG2n+YgnTZhQl
         3BW7tKzy09pUuKxa8Nyrl5PxSxWrt0Pi+OkpDE7CAGIVvdYoO4AvbiWBZ8H9dK0r4OEV
         a3ASXd9HQcUXs1iwFwgHIgGDuxjY5/m0g+g9t+tur7wj0cuysak2UG6V7rYXsiwERvKS
         iAg7CM5zqpc9BWApH6V7msdhMGyl4M8FCo/D4+1HgheJ1as0559gqqi5JQE8zoJWfI9R
         dyJQ==
X-Gm-Message-State: AOJu0Yx8DhIKfQzvUk0lhZbh6TCgQLBpT3ELlsaCd3ZeDLSh/YWQsMtJ
	lBuWItc/EcZGQfKrciPLGynS5asE2/zqs3N6HrnQbcuD7iyK1SHk7ahTHsfGd4zxz5LTRrGs9md
	k
X-Gm-Gg: ASbGncsykbciogxyq4FHPI9PehDwXTIWDn7zOQzRxsMtCjT3EAy7nXDq+qJSHuaY4EJ
	bELYw7jUy6DjD3xhchXOv8cta0LIsZvLOw4ujafIfvgT6hkX8u7chIas9hmFh+PTTosvfmUn2PP
	mTMLl3Z0omtJEeTceFthFzPrsh0Cpy43WlWddIXKpXeFD3oczVza5PcETdQhQ0ejGJ3sypRYysF
	CvhyEflF+LM5lkuV9cccNpOIQGx0tPn85bao9CDLkyOO3+hX7M/cE59pf4/YaLSOkC4negRDKAS
	iN4ZMhHy9OrVndn2o6WL88E5sQfeGUvHZzVpSfnPJOa0Koh4Lw==
X-Google-Smtp-Source: AGHT+IFTDe6RBfWR1rCUViDb6pc9+YiSt/BHR4/prJizk1Vvq9x5HnZQ/8BYvMcZ4VbWM3YmGCoDVA==
X-Received: by 2002:a17:906:c156:b0:ac7:1ec1:d8bd with SMTP id a640c23a62f3a-ac7d190dcd8mr1529149266b.29.1744104753959;
        Tue, 08 Apr 2025 02:32:33 -0700 (PDT)
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/hvm: fix write emulation of RO ranges
Date: Tue,  8 Apr 2025 11:31:56 +0200
Message-ID: <20250408093156.83277-3-roger.pau@citrix.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <20250408093156.83277-1-roger.pau@citrix.com>
References: <20250408093156.83277-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

When running on AMD hardware in HVM mode the guest linear address (GLA)
will not be provided to hvm_emulate_one_mmio(), and instead is
unconditionally set of ~0.  As a consequence mmio_ro_emulated_write() will
always report an error, as the fault GLA generated by the emulation of the
access won't be ~0.

Fix this by only checking for the fault GLA in mmio_ro_emulated_write()
when the guest is PV.

Fixes: 33c19df9a5a0 ('x86/PCI: intercept accesses to RO MMIO from dom0s in HVM containers')
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/arch/x86/mm.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
index 4fecd37aeca0..79836705c51e 100644
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -5187,7 +5187,12 @@ int cf_check mmio_ro_emulated_write(
 
     /* Only allow naturally-aligned stores at the original %cr2 address. */
     if ( ((bytes | offset) & (bytes - 1)) || !bytes ||
-         offset != mmio_ro_ctxt->cr2 )
+         /*
+          * HVM domains might not have a valid fault GLA in the context, as AMD
+          * NPT faults don't report the faulting GLA.  It's also possible for
+          * the fault to happen in non-paging modes.
+          */
+         (is_pv_domain(current->domain) && offset != mmio_ro_ctxt->cr2) )
     {
         gdprintk(XENLOG_WARNING, "bad access (cr2=%lx, addr=%lx, bytes=%u)\n",
                 mmio_ro_ctxt->cr2, offset, bytes);
-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Tue Apr 08 09:32:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 09:32:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.941664.1341110 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u25Jw-0005at-7U; Tue, 08 Apr 2025 09:32:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 941664.1341110; Tue, 08 Apr 2025 09: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 1u25Jw-0005ak-3K; Tue, 08 Apr 2025 09:32:40 +0000
Received: by outflank-mailman (input) for mailman id 941664;
 Tue, 08 Apr 2025 09:32: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=7fLb=W2=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u25Jv-0005Zm-7Q
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 09:32:39 +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 66478ff6-145c-11f0-9ffb-bf95429c2676;
 Tue, 08 Apr 2025 11:32:33 +0200 (CEST)
Received: by mail-ed1-x52a.google.com with SMTP id
 4fb4d7f45d1cf-5e8be1c6ff8so9906599a12.1
 for <xen-devel@lists.xenproject.org>; Tue, 08 Apr 2025 02:32:33 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 a640c23a62f3a-ac7c018aeadsm881991066b.153.2025.04.08.02.32.31
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 08 Apr 2025 02:32:32 -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: 66478ff6-145c-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744104753; x=1744709553; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=nyw9Nf0g4BpASb+X5soz8kWjRwQ5IxJQjggUog1T6tA=;
        b=GVURoQ0HCozcTx+gYEW8uzZs+3YPBe7atrRz67XQoc7ryIJDclPve/BjxnSG2tzQjR
         B0CZcFjLzqnRvyEwq0PqdmNKmJdbIVZEXs7dUuAnsqEpSjr6wSyb92gDhi7U2GjbZmxC
         mtOlGtfvrViMh0Ex355S5BqD3ofNcdN9FJYls=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744104753; x=1744709553;
        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=nyw9Nf0g4BpASb+X5soz8kWjRwQ5IxJQjggUog1T6tA=;
        b=rm1QuJSdXxV29GbaD0Fbi46pQNCP9K15UaPoRlfBO3kpa8NLp8k4FLt8TfsaMnnvKv
         A+Di+Xv89Hn0NL/ODr8T4R+n+0m0OvzPjU2ZogkkfyufOZHkDEu4JLBLwIqy+DM0/too
         tRqpF80R2aqmHUfVHgGulYdrTg7svB+KNoCcLZSMnf6VvHX61CQBedF2peFjfR5i06cz
         Slcxp70YYlCN0Ss8NgJJOkh/H2rHZemNPqGiix0sy0JN3AzozTYs3WWB+GNUQA1XeETW
         aZvovwgfVvXWwkBkIy30w0ZmGDnj399HGnm11g+8VqZK0CYzuw2oSLEm3WPF905mokCf
         wKpw==
X-Gm-Message-State: AOJu0Yzu5yBFI/9VhdsF8yNSLq/7iiPOa9Ctik6fDUjynRxqF6eQ0DGT
	Q1zNXasl14GIbad7XUYN7jR4xcRfRbNHv3jWYXDIvtubqwuANmE9GhYouex6a15zqgDSAgKjNgv
	8
X-Gm-Gg: ASbGncscnpL/jHQ0x5CZ6P3vTREd/4H3gKzu8bMVwzYsb6ZaivrRQHUyUBrpGsN11AM
	u+7ZVxdzhdWHkRKUQxfR9rfF0suxmXMWrfS2+ZwNCOsvO7Simo28t4ArF4n/qsXIQKFAHpMzx2U
	28Zf4slaG1mI0HjelJYEfWfopbCxpyVZPZPzRRLLq0IKJ18dr/xcC1G0UH7cHk4Hu0Yna/5xQJ4
	n/xjJlXc7aH0fsk0ThMBNUcDDcitVBnVC0NSn/KW42WrB9xEmgBfe8MwSsl03jbDojoZDoDOg0R
	d91dXtoWAS2JHpdT3JdcO9sXiONL01Y0e8Pw7kTttwc+fwWuFg==
X-Google-Smtp-Source: AGHT+IGFmrHCO5oD+w5yQFH9Vxn6LSV0X3XCIJCeR3wHJjkDrs3HWnGkiFYxTFzX5WwGV0xaPaMwPw==
X-Received: by 2002:a17:907:d91:b0:ac1:e2be:bab8 with SMTP id a640c23a62f3a-ac7d6d52781mr1072651866b.26.1744104752634;
        Tue, 08 Apr 2025 02:32:32 -0700 (PDT)
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/hvm: remove unreachable MMCFG write emulation
Date: Tue,  8 Apr 2025 11:31:55 +0200
Message-ID: <20250408093156.83277-2-roger.pau@citrix.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <20250408093156.83277-1-roger.pau@citrix.com>
References: <20250408093156.83277-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The current implementation of PVH dom0 relies on vPCI to trap and handle
accesses to the MMCFG area.  Previous implementation of PVH dom0 (v1)
didn't have vPCI, and as a classic PV dom0, relied on the MMCFG range being
RO.  As such hvm_emulate_one_mmio() had to special case write accesses to
the MMCFG area.

With PVH dom0 using vPCI, and the MMCFG accesses being fully handled there,
hvm_emulate_one_mmio() should never handle accesses to MMCFG, making the
code effectively unreachable.

Remove it and leave an ASSERT to make sure MMCFG accesses never get into
hvm_emulate_one_mmio().  As a result of the removal of one of the users of
mmcfg_intercept_write(), the function can now be moved into the same
translation unit where it's solely used, allowing it to be made static and
effectively built only when PV support is enabled.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/arch/x86/hvm/emulate.c      | 22 ++++++++--------------
 xen/arch/x86/include/asm/mm.h   |  3 ---
 xen/arch/x86/mm.c               | 31 -------------------------------
 xen/arch/x86/pv/ro-page-fault.c | 31 +++++++++++++++++++++++++++++++
 4 files changed, 39 insertions(+), 48 deletions(-)

diff --git a/xen/arch/x86/hvm/emulate.c b/xen/arch/x86/hvm/emulate.c
index 04d07ccaf6a4..2c9fbacce7fb 100644
--- a/xen/arch/x86/hvm/emulate.c
+++ b/xen/arch/x86/hvm/emulate.c
@@ -2858,12 +2858,6 @@ int hvm_emulate_one(
 
 int hvm_emulate_one_mmio(unsigned long mfn, unsigned long gla)
 {
-    static const struct x86_emulate_ops hvm_intercept_ops_mmcfg = {
-        .read       = x86emul_unhandleable_rw,
-        .insn_fetch = hvmemul_insn_fetch,
-        .write      = mmcfg_intercept_write,
-        .validate   = hvmemul_validate,
-    };
     static const struct x86_emulate_ops hvm_ro_emulate_ops_mmio = {
         .read       = x86emul_unhandleable_rw,
         .insn_fetch = hvmemul_insn_fetch,
@@ -2872,28 +2866,28 @@ int hvm_emulate_one_mmio(unsigned long mfn, unsigned long gla)
     };
     struct mmio_ro_emulate_ctxt mmio_ro_ctxt = { .cr2 = gla, .mfn = _mfn(mfn) };
     struct hvm_emulate_ctxt ctxt;
-    const struct x86_emulate_ops *ops;
     unsigned int seg, bdf;
     int rc;
 
     if ( pci_ro_mmcfg_decode(mfn, &seg, &bdf) )
     {
-        mmio_ro_ctxt.seg = seg;
-        mmio_ro_ctxt.bdf = bdf;
-        ops = &hvm_intercept_ops_mmcfg;
+        /* Should be always handled by vPCI for PVH dom0. */
+        gdprintk(XENLOG_ERR, "unhandled MMCFG access for %pp\n",
+                 &PCI_SBDF(seg, bdf));
+        ASSERT_UNREACHABLE();
+        return X86EMUL_UNHANDLEABLE;
     }
-    else
-        ops = &hvm_ro_emulate_ops_mmio;
 
     hvm_emulate_init_once(&ctxt, x86_insn_is_mem_write,
                           guest_cpu_user_regs());
     ctxt.ctxt.data = &mmio_ro_ctxt;
 
-    switch ( rc = _hvm_emulate_one(&ctxt, ops, VIO_no_completion) )
+    switch ( rc = _hvm_emulate_one(&ctxt, &hvm_ro_emulate_ops_mmio,
+                                   VIO_no_completion) )
     {
     case X86EMUL_UNHANDLEABLE:
     case X86EMUL_UNIMPLEMENTED:
-        hvm_dump_emulation_state(XENLOG_G_WARNING, "MMCFG", &ctxt, rc);
+        hvm_dump_emulation_state(XENLOG_G_WARNING, "RO MMIO", &ctxt, rc);
         break;
     case X86EMUL_EXCEPTION:
         hvm_inject_event(&ctxt.ctxt.event);
diff --git a/xen/arch/x86/include/asm/mm.h b/xen/arch/x86/include/asm/mm.h
index 6c7e66ee21ab..a1bc8cc27451 100644
--- a/xen/arch/x86/include/asm/mm.h
+++ b/xen/arch/x86/include/asm/mm.h
@@ -553,9 +553,6 @@ struct mmio_ro_emulate_ctxt {
 int cf_check mmio_ro_emulated_write(
     enum x86_segment seg, unsigned long offset, void *p_data,
     unsigned int bytes, struct x86_emulate_ctxt *ctxt);
-int cf_check mmcfg_intercept_write(
-    enum x86_segment seg, unsigned long offset, void *p_data,
-    unsigned int bytes, struct x86_emulate_ctxt *ctxt);
 
 int audit_adjust_pgtables(struct domain *d, int dir, int noisy);
 
diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
index b294497a140d..4fecd37aeca0 100644
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -5200,37 +5200,6 @@ int cf_check mmio_ro_emulated_write(
     return X86EMUL_OKAY;
 }
 
-int cf_check mmcfg_intercept_write(
-    enum x86_segment seg,
-    unsigned long offset,
-    void *p_data,
-    unsigned int bytes,
-    struct x86_emulate_ctxt *ctxt)
-{
-    struct mmio_ro_emulate_ctxt *mmio_ctxt = ctxt->data;
-
-    /*
-     * Only allow naturally-aligned stores no wider than 4 bytes to the
-     * original %cr2 address.
-     */
-    if ( ((bytes | offset) & (bytes - 1)) || bytes > 4 || !bytes ||
-         offset != mmio_ctxt->cr2 )
-    {
-        gdprintk(XENLOG_WARNING, "bad write (cr2=%lx, addr=%lx, bytes=%u)\n",
-                mmio_ctxt->cr2, offset, bytes);
-        return X86EMUL_UNHANDLEABLE;
-    }
-
-    offset &= 0xfff;
-    if ( pci_conf_write_intercept(mmio_ctxt->seg, mmio_ctxt->bdf,
-                                  offset, bytes, p_data) >= 0 )
-        pci_mmcfg_write(mmio_ctxt->seg, PCI_BUS(mmio_ctxt->bdf),
-                        PCI_DEVFN(mmio_ctxt->bdf), offset, bytes,
-                        *(uint32_t *)p_data);
-
-    return X86EMUL_OKAY;
-}
-
 /*
  * For these PTE APIs, the caller must follow the alloc-map-unmap-free
  * lifecycle, which means explicitly mapping the PTE pages before accessing
diff --git a/xen/arch/x86/pv/ro-page-fault.c b/xen/arch/x86/pv/ro-page-fault.c
index 372187e9a096..11b01c479e43 100644
--- a/xen/arch/x86/pv/ro-page-fault.c
+++ b/xen/arch/x86/pv/ro-page-fault.c
@@ -298,6 +298,37 @@ static int ptwr_do_page_fault(struct x86_emulate_ctxt *ctxt,
  * fault handling for read-only MMIO pages
  */
 
+static int cf_check mmcfg_intercept_write(
+    enum x86_segment seg,
+    unsigned long offset,
+    void *p_data,
+    unsigned int bytes,
+    struct x86_emulate_ctxt *ctxt)
+{
+    struct mmio_ro_emulate_ctxt *mmio_ctxt = ctxt->data;
+
+    /*
+     * Only allow naturally-aligned stores no wider than 4 bytes to the
+     * original %cr2 address.
+     */
+    if ( ((bytes | offset) & (bytes - 1)) || bytes > 4 || !bytes ||
+         offset != mmio_ctxt->cr2 )
+    {
+        gdprintk(XENLOG_WARNING, "bad write (cr2=%lx, addr=%lx, bytes=%u)\n",
+                mmio_ctxt->cr2, offset, bytes);
+        return X86EMUL_UNHANDLEABLE;
+    }
+
+    offset &= 0xfff;
+    if ( pci_conf_write_intercept(mmio_ctxt->seg, mmio_ctxt->bdf,
+                                  offset, bytes, p_data) >= 0 )
+        pci_mmcfg_write(mmio_ctxt->seg, PCI_BUS(mmio_ctxt->bdf),
+                        PCI_DEVFN(mmio_ctxt->bdf), offset, bytes,
+                        *(uint32_t *)p_data);
+
+    return X86EMUL_OKAY;
+}
+
 static const struct x86_emulate_ops mmio_ro_emulate_ops = {
     .read       = x86emul_unhandleable_rw,
     .insn_fetch = ptwr_emulated_insn_fetch,
-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Tue Apr 08 09:54:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 09:54:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.941704.1341119 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u25f3-0002vy-PY; Tue, 08 Apr 2025 09:54:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 941704.1341119; Tue, 08 Apr 2025 09:54:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u25f3-0002vr-MN; Tue, 08 Apr 2025 09:54:29 +0000
Received: by outflank-mailman (input) for mailman id 941704;
 Tue, 08 Apr 2025 09:54:28 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=h40A=W2=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1u25f2-0002vl-4v
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 09:54:28 +0000
Received: from NAM10-BN7-obe.outbound.protection.outlook.com
 (mail-bn7nam10on20610.outbound.protection.outlook.com
 [2a01:111:f403:2009::610])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 740ecb3d-145f-11f0-9eaa-5ba50f476ded;
 Tue, 08 Apr 2025 11:54:26 +0200 (CEST)
Received: from BN9PR12MB5273.namprd12.prod.outlook.com (2603:10b6:408:11e::22)
 by DM4PR12MB8559.namprd12.prod.outlook.com (2603:10b6:8:17d::8) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.34; Tue, 8 Apr
 2025 09:54:22 +0000
Received: from BN9PR12MB5273.namprd12.prod.outlook.com
 ([fe80::cf66:58ab:47be:4b13]) by BN9PR12MB5273.namprd12.prod.outlook.com
 ([fe80::cf66:58ab:47be:4b13%5]) with mapi id 15.20.8606.029; Tue, 8 Apr 2025
 09:54: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: 740ecb3d-145f-11f0-9eaa-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=pDdba88WnAX6FIUSpYxWJN/rxhnnTmM+ljLyTgapXw6vlT/g/ihf3g9aQOd9RxMNI94qeGzt+/++V1DNq3iLdd3eVWwGKCs8FoG1tWRQpkIwKmE5V+PIbwwX5u7lJSjVmObHljbd1yP9891GieXeakipQmua4mR+VIlntA9vGKnZpvelh67CaLyWxJXr0EUSMmcyOjys5ALQVqAoza+RhYD3yO6dqHqHo6XjEJeJRMt8c+Vr9H437L1hDVypCvd46m2ZTJ6twkpiEP/6lUO1MK7eGlLGKUca+1pACkoLssT1b8ZBhGP2vuYiVlI/BDB/o8QClzOZIujoEPYzKag4Cw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=JHXAem81hDao2oN467oEsDp8rqTm7P8isDB6H2TtoeE=;
 b=YWcUPQlB5Wz8qErCGSG8lliL3RYbJHd2vKzrbnGlwbGQlU4IHE/drRN80+5jEkiZdscpXV61C02pvNhwsrIg2OyrHPI2AzKBzZBaFonBh0r4nsn+Zhwm+NjSM3hw7wSk27pqvlkuK0M4oQAdwtgRw1EDPVwwZc+3HSAb54boVc69zLhq7+NWoeDEbSgP4BU92IHklsFDEc1aeW+/wIb5pxldfjti/j68o/mMsz7dEKQbSxIq8xqus7U7VBcmcc8kUTZBvUQlV1NIGv+JN6RC27VzMvGIDT/4o9xOfKRinKmwdJ0g1CtWx36PCKTMdxinPEELI1Rh8Eycv+UmHnYWRQ==
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=JHXAem81hDao2oN467oEsDp8rqTm7P8isDB6H2TtoeE=;
 b=XTI9fkK8VdPB3tMjJAGjZhpjky0sRRLuPSOUyq87zbXR40QnhEXP0440tvpXG8uph3eA6gTeMNDPWyJJkmr6jtQ0AbuPQAU1G93zJFH+JDAemgokjgoRwfk5+FYfvCdxe+eVCdG0oNettTezt0PRxFb/7/If5Lhw+YCkVzoNlD4=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <e574f645-0c8d-440d-9f8f-7193d27a9d00@amd.com>
Date: Tue, 8 Apr 2025 11:54:19 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 3/3] xen/arm32: mpu: Stubs to build MPU for arm32
To: Ayan Kumar Halder <ayan.kumar.halder@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>
References: <20250407184443.1790995-1-ayan.kumar.halder@amd.com>
 <20250407184443.1790995-4-ayan.kumar.halder@amd.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <20250407184443.1790995-4-ayan.kumar.halder@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR4P281CA0209.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:e5::8) To BN9PR12MB5273.namprd12.prod.outlook.com
 (2603:10b6:408:11e::22)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN9PR12MB5273:EE_|DM4PR12MB8559:EE_
X-MS-Office365-Filtering-Correlation-Id: 5487eb4e-15e1-4231-65e9-08dd7683565f
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?OGxpb3U1MzByOE9FUktFZ3huUFBEWndzMXJlNEdPODZMcWYvQXljZWZreVhF?=
 =?utf-8?B?ZGtiMGdwWnUxMnJFQ05jTkJMakNnSEVxWUkzNWd3Mko0R05SSDR4OHAycy9a?=
 =?utf-8?B?OVVxZXkwaXBNdUFrSUpJdUZHQlg3SVl6emFYY094Y0VydVJ3bjNxT0U0RVlU?=
 =?utf-8?B?ZHFXdDNNOUtBeTdBNDlrSUNqNzZYRTVOTi8zRm5RcHY5bzlZN1VSMHY4c2ZH?=
 =?utf-8?B?SHVFMjE5YjNzM2QwUHJuQjlodG5FK3JMT1ZxaGkwUEt5UGh2Vk1tcG02cDlN?=
 =?utf-8?B?REN0RlJoSUdwV3RCWU4xQnRpRnl6SlhDeFBHbUpkVVBkandRRXBzOFd5OEJn?=
 =?utf-8?B?Yk1iWnJBTTFyMXd0OFkvZnNWdlFkTzA1bnBCbW82YmpESDNEd2JZL2I3bmNG?=
 =?utf-8?B?Vk5maDNrYkR4cmNlYXU3c0hkQnVvT1RNdkI4MmFIZWExTTA1R0pRUS9FMXF4?=
 =?utf-8?B?cFBzTlBOYit6d1oxSlhZbHF1TG1nZFROQkxDaHR2SWNuVjk1S2tIaTN2WGh3?=
 =?utf-8?B?OW9jaWs5Z0Z1bTk5M1RNYkVmRWhVVVQ2RU1pMlFqRElwRTYzeGlIYUlpZUts?=
 =?utf-8?B?NE5KY0FhdkRrN3FLdDI4WVNlNStiRktySHhmT1Nod2RmaHZsc1VKc1lJQXNw?=
 =?utf-8?B?M0FXeUVQcjNEUG0rV0tyTVQ4UWFueDNkemd4VmE5a09XKy8wMEhnSVVtZmdj?=
 =?utf-8?B?a2I2dFJaNGdkTWFZVzRmSjVlbVJTdzkybGxqRytraXVldjZ1aVhJUDloUEMz?=
 =?utf-8?B?UVRCeXUvTnRaNmNwc2Q3OGc2aUlyZlRaWmdxdzVEczFUUDJnWUFEUEZ1TXBv?=
 =?utf-8?B?S0lPUUhjT3J0alVxME80TUZjMFMwcDJ6ZUVLTUxIZHZrV3RQNWQwbTJxR3ow?=
 =?utf-8?B?NnpSQi9BeXdSY3Q4Yyt1amVQb28wL3UvOHp1VmdlSzNVWUI4RUtNWmNXSHBH?=
 =?utf-8?B?Y01WbUZPNURVdGhYb3VUR3psUjQ0d3d6TDk4SDVKZE01ZmF2aVgzbG0rTk9n?=
 =?utf-8?B?K01zT3pRU3h4R21FT0FranRpT0RzL3M2SnhndThwUWVkMVJJYk1tMk55czBE?=
 =?utf-8?B?UlIvdXpYTURzNVRpQXVtTmM3dUtZUkFGVmowRzRnbzdXeGszZkFGU2pqWVJE?=
 =?utf-8?B?c1VZbWpVNlM2eDJqY0kzSk9QS1Y3UlY5MHM0endmR1pzSWJBUWZpT0dScDJJ?=
 =?utf-8?B?MWZoRWxpeUwvdmIzWEJHc1MvK1VwV0J0aDVIK1prdVBoQlFtb1BYWmY5VVpP?=
 =?utf-8?B?aUpkYnBacFlCenNZem9Fa2I0blJQdTBvS1hYVEQ2NFVKd2ZtSTlUOWhxbFkz?=
 =?utf-8?B?VEdHZnBWR1ZVbHNVWFpRMDdjOFUyVWhyZVdDTzc2WklsY3dBaW9QS2NVc05v?=
 =?utf-8?B?cGNhUkNuOVV2dGRhZ0N5dkZkNVJFWnhRL05JOHRIWlM5cXBQaWROdklqZzNX?=
 =?utf-8?B?K0dMcE9oOFdhZXpsQUZFTTBxaUM4Q0U0MW1pa0ZnK0xvQmhCS1R4QVBpd0NK?=
 =?utf-8?B?UlV3d1F2MCtPd3ZxYmRzL3JOMHBDVTNtTmJQZldERmtpcTN2TjF5anB1V25K?=
 =?utf-8?B?WXBDVWh2a1pBRzE4MVVlZ2FPeHEwbXg5aWNTNGNpNzM2a3Q0Q21lRjk1RmNB?=
 =?utf-8?B?blY1cWo0SUNjME81cGtjb3RXd3djT1pWVktjKzYrME9DUmY1bnRHdGxJekxl?=
 =?utf-8?B?WE9EUUVIRjZwV2w0ZWc4cDgwL3FaUXFIdi9GcERISVZHRkFTZWtZZnVtVkIy?=
 =?utf-8?B?ZUN1cDJmTDh5LzFmcVpHeFRNbjloRDZTalI5ckR3bjROWmhweDR4bVpkSUFC?=
 =?utf-8?B?WE9FVkFwdTl1U3VaNWhXcG1SbXNzb1dMN3VoOGVUVDhKTnBVaTl2emNZRHBm?=
 =?utf-8?Q?wd+t+ZSmCgign?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN9PR12MB5273.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?UXlWTFFzc2FLRER4Umh3TkdDQ0N3TjZZSGd0V2Jkc0Zsam5sRTU5aUNCajJ4?=
 =?utf-8?B?THF2cmtoYkI4Smx0RVdwQkZZcGtpbmVmVFIzcjA5enpVZ3RXZzVnN2g4U2g5?=
 =?utf-8?B?NVlVZEhCQTJBZEdxK2oxRUQ0UEhFd0RKT29tUUdaMlJDZnp2ZU9qbVVMYjB6?=
 =?utf-8?B?WFpxNGtoY09jTzVSaVc1RVRlWU5jREkzd3E0enVjSUtYTmZnVTJLWC9RaExt?=
 =?utf-8?B?YWlOUmV2WmFCN3FGR0pVejBFZ0I3T0JrU0JZRUlsSThMazQyQmVNQWhBeElm?=
 =?utf-8?B?RU5jaDRzejdXb29uK24wemtCckIxNHRjTWpPWUljY0Z0a2R0bUNiN2dJRy9D?=
 =?utf-8?B?M0MyUjV6SDZybnlTeWlIVHoyZFQ3a2l4b3EyNnNMSDhxb2R4b2EzRWlqNjZ4?=
 =?utf-8?B?MGk5cGJHQnZaS3ByeGQzTVZqRVhyL2IrOTN5Zm5uT21NeFRaWWtuWkVHWFp5?=
 =?utf-8?B?dlNtYlB1RSt5czE4ZTVCTEw2bFVTOTlsSEo3Tk1yNFg1N1U5aUt6eEJ5TENy?=
 =?utf-8?B?ZnBWckQ1Q3ordUpjbC84VkcxWVBJZkZ3bTFuVkNoUEZDWm5oVzJrVGk5NUFk?=
 =?utf-8?B?L0Z0V25oYkM1RE9RQi9aOTZ0NHdZL2ovellqdEpoeWtlR1RNRmdJL1Q5M2c2?=
 =?utf-8?B?clVTVDYyU2ZqNUNqcmVYNE0zZXIxRHdXcTlKaFlKYzd3VU96WVN5VlVlQ2pm?=
 =?utf-8?B?QUxLengxVjdOaUd5c0x4aVVucXBDL0hRbUJoZFBKcW9tR0RVMnB0S2pySmZr?=
 =?utf-8?B?RnNDTG1pQ3JxTTYxU1o1Tk9jNjlUSXVkOE9GZ0xsUXhBY01pZmR2Y0lTL0Nj?=
 =?utf-8?B?ZlRRK0RkL2ZaaCtmVW5BUFFBd0d6d0ExeElyY3M0K28zWWlQSGFNeEl6WEU4?=
 =?utf-8?B?SnNWY05KN1IrVU1Jam9ZTlZIVkd6cHJJZTZBcXZrTDF2VDVSdk5Qa3dMVGFZ?=
 =?utf-8?B?RWNtTzVpZzlYUVdMWUNBcFhscjBPMGVvRXd2eUVRUkZucDZKVlk2OW1iNjdo?=
 =?utf-8?B?VThMVDBFQUdZTDZHQ3RUT0dvcW5DRlFXbldxK1NyTTM0THA0Wmg0SHpxckdL?=
 =?utf-8?B?R2hKemNOR2RVVnQzWFl4Z0Vtei9ObHdkN2lXQytZU2FNTVVwdm4wL3BWRTZL?=
 =?utf-8?B?bll5aWhVa0pObWFTbWxGNEtYdGMyOGZ0MXk4R2MzVVRNLzRoRmpHVGJYZmNo?=
 =?utf-8?B?UWZpV0hSelI2S2dwVy9jQ3dMOGhIMTVVZm1HS0xWWS9Id2J4K0N6WS93S2xZ?=
 =?utf-8?B?UVFvK2ZMakNkczAyMVMrdVdFZTh6QTArL0wwMTZNa21DQXdSUFhXTm9NN3JR?=
 =?utf-8?B?ZjJvY0JHb3AyR1hZS3l6R0xWSWgwUU5MTXRXUENBc3V5bDM1MXNUaWc1SnpC?=
 =?utf-8?B?bXhYN0FaZnFNajVZWHN4R29jZU5xZjhOaERRTDN6VHh0NEdnNzNsTmUvai8v?=
 =?utf-8?B?VnNWamdWN280OXkyVnNCWWpIcDJuekk4VHpXbTRLdHpkbXVQQ0s5QytDdVQ1?=
 =?utf-8?B?UVI4NVBTbnduck04K3htZHd2UGxjZDYwZ2ZPZnVmV3hEb0E0ODhnbTN4blF2?=
 =?utf-8?B?bjhPVU5mZi90R0dQc1hmdDJXbkVLcEU5QlhnL3AvK0srOUZBbnowSWlYZGtz?=
 =?utf-8?B?M2dZUnBDT05MVnVPQzZEdUZtWmVubUV6dGU0TTdYcFJOTWM3TVhhendpc3Iy?=
 =?utf-8?B?SXMvdmtSUlN0VStBM1JTV0FvSDRiOXdua241QmwvaW1SamhmRlczM3pTOEl1?=
 =?utf-8?B?MFdiMERyL0srWUcwUWZjaDhWUnhXT1hYOTJXNzRUTy90dzQ4MTgxeHBkdlBP?=
 =?utf-8?B?eGxxN0dqUHpaYmhOSEt6emhKS0pUTkwzUUdBaERGZElFeVZ6L3pRS1B0dm9z?=
 =?utf-8?B?V0xHV1hmTGxpWXNDY1VsclNPd0JLNDlNUkRtMFBSM09WUVpTT2pRQlBHTCtx?=
 =?utf-8?B?Q2VKNE1paHhkWFRNREJiRDMzRXZXZjNpR21QcjFNMkkvWE5GOWRsSk4rK0Vh?=
 =?utf-8?B?V1Vrb0EwMFNRMHFvWlU4dEVVVmc1V3R2LzR4RjdZcFZ1aXI1RFF6cDVhWXZn?=
 =?utf-8?B?Q2M5OWtLTXNJK21TeXZ4c0UrQTdxUnlTQ3FTbS8vTDg1ellqOWdlOThINUV6?=
 =?utf-8?Q?oCuZQC6nsfQ/tin/detfM6qHd?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 5487eb4e-15e1-4231-65e9-08dd7683565f
X-MS-Exchange-CrossTenant-AuthSource: BN9PR12MB5273.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Apr 2025 09:54:22.0244
 (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: 4Y7RLoN2xOu6k2DhFOTwy3t+DUsCJF2gbhYZJriz0eko0EnHHZHWjvp9Lezj8/Rl
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB8559



On 07/04/2025 20:44, Ayan Kumar Halder wrote:
> Add stubs to enable compilation
NIT: missing dot at the end of sentence.

> 
> Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
> ---
> Changes from :-
> 
> v1, v2 -
> 1. New patch introduced in v3.
> 2. Should be applied on top of
> https://patchwork.kernel.org/project/xen-devel/cover/20250316192445.2376484-1-luca.fancellu@arm.com/
> 
> v3 -
> 1. Add stubs for map_domain_page() and similar functions.
> 
> 2. 'BUG_ON("unimplemented")' is kept in all the stubs.
> 
> v4 - 
> 1. is_xen_heap_mfn() macros are defined across mpu/mm.h (ARM32 specific)
> , mmu/mm.h (ARM32 specific) and asm/mm.h (ARM64 specific)
> 
> 2. s/(void*)0/NULL
> 
>  xen/arch/arm/arm32/mpu/Makefile   |  2 ++
>  xen/arch/arm/arm32/mpu/p2m.c      | 18 ++++++++++++++
>  xen/arch/arm/arm32/mpu/smpboot.c  | 23 +++++++++++++++++
>  xen/arch/arm/include/asm/mm.h     |  9 +------
>  xen/arch/arm/include/asm/mmu/mm.h |  9 +++++++
>  xen/arch/arm/include/asm/mpu/mm.h |  5 ++++
>  xen/arch/arm/mpu/Makefile         |  1 +
>  xen/arch/arm/mpu/domain_page.c    | 41 +++++++++++++++++++++++++++++++
>  8 files changed, 100 insertions(+), 8 deletions(-)
>  create mode 100644 xen/arch/arm/arm32/mpu/p2m.c
>  create mode 100644 xen/arch/arm/arm32/mpu/smpboot.c
>  create mode 100644 xen/arch/arm/mpu/domain_page.c
> 
> diff --git a/xen/arch/arm/arm32/mpu/Makefile b/xen/arch/arm/arm32/mpu/Makefile
> index 3340058c08..38797f28af 100644
> --- a/xen/arch/arm/arm32/mpu/Makefile
> +++ b/xen/arch/arm/arm32/mpu/Makefile
> @@ -1 +1,3 @@
>  obj-y += head.o
> +obj-y += smpboot.o
> +obj-y += p2m.o
Sort alphabetically. Always.

> diff --git a/xen/arch/arm/arm32/mpu/p2m.c b/xen/arch/arm/arm32/mpu/p2m.c
> new file mode 100644
> index 0000000000..df8de5c7d8
> --- /dev/null
> +++ b/xen/arch/arm/arm32/mpu/p2m.c
> @@ -0,0 +1,18 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +
> +#include <xen/init.h>
> +#include <asm/p2m.h>
> +
> +void __init setup_virt_paging(void)
> +{
> +    BUG_ON("unimplemented");
> +}
> +
> +/*
> + * Local variables:
> + * mode: C
> + * c-file-style: "BSD"
> + * c-basic-offset: 4
> + * indent-tabs-mode: nil
> + * End:
> + */
> diff --git a/xen/arch/arm/arm32/mpu/smpboot.c b/xen/arch/arm/arm32/mpu/smpboot.c
> new file mode 100644
> index 0000000000..3f3e54294e
> --- /dev/null
> +++ b/xen/arch/arm/arm32/mpu/smpboot.c
> @@ -0,0 +1,23 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +
> +#include <xen/mm.h>
> +
> +int prepare_secondary_mm(int cpu)
> +{
> +    BUG_ON("unimplemented");
> +    return -EINVAL;
> +}
> +
> +void update_boot_mapping(bool enable)
> +{
> +    BUG_ON("unimplemented");
> +}
> +
> +/*
> + * 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 fbffaccef4..5b67c0f8bb 100644
> --- a/xen/arch/arm/include/asm/mm.h
> +++ b/xen/arch/arm/include/asm/mm.h
> @@ -170,14 +170,7 @@ struct page_info
>  #define _PGC_need_scrub   _PGC_allocated
>  #define PGC_need_scrub    PGC_allocated
>  
> -#ifdef CONFIG_ARM_32
> -#define is_xen_heap_page(page) is_xen_heap_mfn(page_to_mfn(page))
> -#define is_xen_heap_mfn(mfn) ({                                 \
> -    unsigned long mfn_ = mfn_x(mfn);                            \
> -    (mfn_ >= mfn_x(directmap_mfn_start) &&                      \
> -     mfn_ < mfn_x(directmap_mfn_end));                          \
> -})
> -#else
At first sight, it's not clear why we diverge here and move Arm32 but not Arm64.
At least I'd expect some reasoning for this change in commit msg.

> +#ifdef CONFIG_ARM_64
>  #define is_xen_heap_page(page) ((page)->count_info & PGC_xen_heap)
>  #define is_xen_heap_mfn(mfn) \
>      (mfn_valid(mfn) && is_xen_heap_page(mfn_to_page(mfn)))
> diff --git a/xen/arch/arm/include/asm/mmu/mm.h b/xen/arch/arm/include/asm/mmu/mm.h
> index caba987edc..9b98d12b07 100644
> --- a/xen/arch/arm/include/asm/mmu/mm.h
> +++ b/xen/arch/arm/include/asm/mmu/mm.h
> @@ -21,6 +21,15 @@ extern unsigned long directmap_base_pdx;
>  
>  #define frame_table ((struct page_info *)FRAMETABLE_VIRT_START)
>  
> +#ifdef CONFIG_ARM_32
Why another #ifdef if there is one a few lines below in this file (below
virt_to_maddr)?

> +#define is_xen_heap_page(page) is_xen_heap_mfn(page_to_mfn(page))
> +#define is_xen_heap_mfn(mfn) ({                                 \
> +    unsigned long mfn_ = mfn_x(mfn);                            \
> +    (mfn_ >= mfn_x(directmap_mfn_start) &&                      \
> +     mfn_ < mfn_x(directmap_mfn_end));                          \
> +})
> +#endif
> +
>  #define virt_to_maddr(va) ({                                                   \
>      vaddr_t va_ = (vaddr_t)(va);                                               \
>      (paddr_t)((va_to_par(va_) & PADDR_MASK & PAGE_MASK) | (va_ & ~PAGE_MASK)); \
> diff --git a/xen/arch/arm/include/asm/mpu/mm.h b/xen/arch/arm/include/asm/mpu/mm.h
> index 86f33d9836..bfd840fa5d 100644
> --- a/xen/arch/arm/include/asm/mpu/mm.h
> +++ b/xen/arch/arm/include/asm/mpu/mm.h
> @@ -13,6 +13,11 @@ extern struct page_info *frame_table;
>  
>  #define virt_to_maddr(va) ((paddr_t)((vaddr_t)(va) & PADDR_MASK))
>  
> +#ifdef CONFIG_ARM_32
> +#define is_xen_heap_page(page) ({ BUG_ON("unimplemented"); false; })
> +#define is_xen_heap_mfn(mfn) ({ BUG_ON("unimplemented"); false; })
> +#endif
> +
>  /* On MPU systems there is no translation, ma == va. */
>  static inline void *maddr_to_virt(paddr_t ma)
>  {
> diff --git a/xen/arch/arm/mpu/Makefile b/xen/arch/arm/mpu/Makefile
> index 21bbc517b5..ff221011d5 100644
> --- a/xen/arch/arm/mpu/Makefile
> +++ b/xen/arch/arm/mpu/Makefile
> @@ -2,3 +2,4 @@ obj-y += mm.o
>  obj-y += p2m.o
>  obj-y += setup.init.o
>  obj-y += vmap.o
> +obj-$(CONFIG_ARM_32) += domain_page.o
Again, sort alphabetically.

> diff --git a/xen/arch/arm/mpu/domain_page.c b/xen/arch/arm/mpu/domain_page.c
> new file mode 100644
> index 0000000000..8859b24e04
> --- /dev/null
> +++ b/xen/arch/arm/mpu/domain_page.c
> @@ -0,0 +1,41 @@
> +/* SPDX-License-Identifier: GPL-2.0-or-later */
empty line here

> +#include <xen/domain_page.h>
> +
> +void *map_domain_page_global(mfn_t mfn)
> +{
> +    BUG_ON("unimplemented");
> +    return NULL;
> +}
> +
> +/* Map a page of domheap memory */
> +void *map_domain_page(mfn_t mfn)
> +{
> +    BUG_ON("unimplemented");
> +    return NULL;
> +}
> +
> +/* Release a mapping taken with map_domain_page() */
> +void unmap_domain_page(const void *ptr)
> +{
> +    BUG_ON("unimplemented");
> +}
> +
> +mfn_t domain_page_map_to_mfn(const void *ptr)
> +{
> +    BUG_ON("unimplemented");
> +    return INVALID_MFN;
> +}
> +
> +void unmap_domain_page_global(const void *va)
> +{
> +    BUG_ON("unimplemented");
> +}
> +
> +/*
> + * Local variables:
> + * mode: C
> + * c-file-style: "BSD"
> + * c-basic-offset: 4
> + * indent-tabs-mode: nil
> + * End:
> + */

Additionally, take into account Luca remarks regarding headers.

~Michal




From xen-devel-bounces@lists.xenproject.org Tue Apr 08 09:59:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 09:59:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.941720.1341130 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u25jt-0003aD-GW; Tue, 08 Apr 2025 09:59:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 941720.1341130; Tue, 08 Apr 2025 09:59: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 1u25jt-0003a6-BG; Tue, 08 Apr 2025 09:59:29 +0000
Received: by outflank-mailman (input) for mailman id 941720;
 Tue, 08 Apr 2025 09:59: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=odLW=W2=bounce.vates.tech=bounce-md_30504962.67f4f37c.v1-2ca678eeaa2d4da3894aa5bc9a831ee4@srs-se1.protection.inumbo.net>)
 id 1u25js-0003a0-10
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 09:59:28 +0000
Received: from mail186-2.suw21.mandrillapp.com
 (mail186-2.suw21.mandrillapp.com [198.2.186.2])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 26ef9515-1460-11f0-9eaa-5ba50f476ded;
 Tue, 08 Apr 2025 11:59:25 +0200 (CEST)
Received: from pmta10.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail186-2.suw21.mandrillapp.com (Mailchimp) with ESMTP id 4ZX1l03tMJzS62H9P
 for <xen-devel@lists.xenproject.org>; Tue,  8 Apr 2025 09:59:24 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 2ca678eeaa2d4da3894aa5bc9a831ee4; Tue, 08 Apr 2025 09:59: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: 26ef9515-1460-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1744106364; x=1744376364;
	bh=yUBUC6eOcXEnZae2QLjdkhL3Fa7cAE9ycBJ3eRdw94Y=;
	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=mw8Qjq4CXrsCUEkDfKC6B0T36BM7CnLH/tPfsx5cO4lF4tfgLAIITwYR1C7oN5YX/
	 JVteQJ+A0NlfjlirM10BOLfMqnYRFon7Zsi+zQA5ZHGb20cKCcFT4d9tSkpLHizmXn
	 ciwNYIAqyFzFizSQEYS/dxyCUVVvvEoeAKKlMUnp0b69E/KT7GFMKOzDPKw1T492ow
	 GVG8Z4kUMsWpEy5csKPpY6A35QbuDLYs2FS0RiiXjiolRmShJxhts/q05sDPMS7Ghw
	 xHzQVV8a6ag1i64Ee9xPbJWNTs3GwNUdgiE0gUGQTu641H9cCzuH3bVAVhchUdYBwo
	 FyUdBKyIEidyQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1744106364; x=1744366864; i=anthony.perard@vates.tech;
	bh=yUBUC6eOcXEnZae2QLjdkhL3Fa7cAE9ycBJ3eRdw94Y=;
	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=tMCd3AO8mk08aP7qWMqBM1R/CPn+xuz0jGSG9g32bFo787727SiNobyXkwZ0+OnDH
	 QuZNLMEf9gW+Qd0fLWOMdvu+Fq+h9Ah+trtuUuP0XvPt3TinZZ4SBgIKcLUQngXWnJ
	 qoqHQtpXcHPwsdau0K6aefDgp2w47OEPeXC+l1VD0cNrQmZcjOIc/2/bnoFiVkU8cs
	 rai9YmM51s6AqUUZdG6zkOldc5Cy++2R7ZYeKT6T6MHjdUaINLfoj0SxeTRjME86ee
	 edUJLej4nLu1BSpzg+xwxoCwQ2ATKLD/JTkEw1iKZiGe0JFQkQwZON7gzMWqeOMAi6
	 Z9+RD5FSsfWJQ==
From: "Anthony PERARD" <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20Ping:=20[PATCH]=20libxc/PM:=20correct=20(not=20just)=20error=20handling=20in=20xc=5Fget=5Fcpufreq=5Fpara()?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1744106363855
To: "Jan Beulich" <jbeulich@suse.com>
Cc: "Juergen Gross" <jgross@suse.com>, xen-devel@lists.xenproject.org
Message-Id: <Z_Tze0pQFrU-9pNq@l14>
References: <df676738-19e7-47e6-977f-25d6d13ccc50@suse.com> <e0028d85-668a-464b-aac5-ac8a79ea9bf5@suse.com> <Z_PI2UNn2C4GKqYw@l14> <75d288ba-1006-46f4-8f51-6d49c5e8449d@suse.com> <Z_Pt6Pv8_RrV4J2U@l14> <8f29b0b3-dc57-417c-937a-50f5aac6f6f8@suse.com>
In-Reply-To: <8f29b0b3-dc57-417c-937a-50f5aac6f6f8@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.2ca678eeaa2d4da3894aa5bc9a831ee4?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250408:md
Date: Tue, 08 Apr 2025 09:59:24 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Mon, Apr 07, 2025 at 05:38:57PM +0200, Jan Beulich wrote:
> On 07.04.2025 17:23, Anthony PERARD wrote:
> > On Mon, Apr 07, 2025 at 03:23:48PM +0200, Jan Beulich wrote:
> >> On 07.04.2025 14:45, Anthony PERARD wrote:
> >>> Calling xc_get_cpufreq_para with:
> >>>
> >>>     user_para = {
> >>>         .cpu_num = 0,
> >>>         .freq_num = 0,
> >>>         .gov_num = 9,
> >>>     };
> >>>
> >>> seems broken. It's looks like the `scaling_available_governors` bounce
> >>> buffer is going to be used without been allocated properly handled, with
> >>> this patch.
> >>
> >> The local variable "in_gov_num" controls its allocation and use, together with
> >> has_num. "Use" as in passing to set_xen_guest_handle(). The only further use
> > 
> > When has_num == 0, `in_gov_num` is only used to set `sys_para->gov_num`.
> > It also make a conditional call to xc_hypercall_bounce_post() but
> > there's nothing to do.
> > 
> > Why user_para.gov_num seems to control the size of a buffer, but then
> > that buffer is just discarded under some condition with this patch?
> 
> That's nothing this patch changes. Previously has_num would also have been
> false in the example you give.

Right, sorry. I was persuaded that `has_num` meant "any" of the buffers
are allocated, instead of the written "all" of them are allocated in C.
The logic in this function is really hard to follow because it doesn't
make sense, especially the conditional on `has_num`.

Your patch does make requesting governors actually optional now (and now
that I realise the calculation of `has_num` doesn't really reflect the
name). The introduced `in_gov_num` local variable isn't very useful as
the only real need is in the cleaning path (and we discussed earlier
that cleaning can be done unconditionally). So the patch is fine:

Reviewed-by: Anthony PERARD <anthony.perard@vates.tech>


Oh, one more thing, it's funny that a lot of faff is done toward making
the cleaning optional, with all the "unlock_*" label, but then cleaning
code path can be executed when e.g. cpu_num=0,freq_num=4 (unless the
hypercall return an error in such case, but the code shouldn't rely on
that...).

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 Apr 08 10:32:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 10:32:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.941735.1341138 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u26Fx-0004hG-Ss; Tue, 08 Apr 2025 10:32:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 941735.1341138; Tue, 08 Apr 2025 10:32: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 1u26Fx-0004h9-Q3; Tue, 08 Apr 2025 10:32:37 +0000
Received: by outflank-mailman (input) for mailman id 941735;
 Tue, 08 Apr 2025 10:32: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=QzSt=W2=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1u26Fw-0004h3-8F
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 10:32:36 +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 c67b253d-1464-11f0-9eaa-5ba50f476ded;
 Tue, 08 Apr 2025 12:32:33 +0200 (CEST)
Received: from DM4PR12MB8451.namprd12.prod.outlook.com (2603:10b6:8:182::7) by
 IA1PR12MB9063.namprd12.prod.outlook.com (2603:10b6:208:3a9::14) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.34; Tue, 8 Apr
 2025 10:32:28 +0000
Received: from DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::b04e:2da5:7189:4c4d]) by DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::b04e:2da5:7189:4c4d%6]) with mapi id 15.20.8606.028; Tue, 8 Apr 2025
 10:32: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: c67b253d-1464-11f0-9eaa-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=KJhXm1+rAkaudxiU+s7TrZjTcsXwqA2JClZN+su25637WUiHwca+rYSDeZR0ITKNfs211jOrAd1VJ4EVijp2K2qE3BKGTDqdDbDYgnUmHzponjiP5p1OKK3QbUJKz566UmrnPZsNKhouDDY6NMQA/F9wJYfc2tvdSyYtXyyfAG752ljNtoxk0l3/lIXTq6XpnzJ4t/6Rj+rzOQjn+80fuq13Iub0ko9IxaNQ8aLmNZK2QaEr8lUvzhq3+1Cy5EkhuSmpiOUYs1e5uux/31xUlRXf/5haNrZomiXgEHum03yAUi76jqqVqZckA9o5lNwke3KrU3JZ5Jg4uIByub7sJw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ev7nvsJKZBmuBBVLRoLK7K9PkOBUVIAuA45RqMOyAgw=;
 b=gcqPoiMs60qyNT8IDC8RnE0MWmvOb80Pmne2I5vg1Ai0dM5ren3JS/ucK1Um+sxcH8w/ESkGMSqoncaIlO6BsbgLn4kJi1D7kTSrGW/8o09TSgg0MC+9Oaf/attZUeNxGJ5erhb6ECywLTrDIrpFQ4fbejONU7pi+nIuXd5Ad3UXrrHjV6o9o/GqoCzWs02DFlywEZ5DLnTjNKNZLngAQudtdpykJAHxt3qVwuKP+HHvIqSlAEYWmR6+bcNVMGWRxsbOae8XFe/1oklNxkHEKwryEe15qAIXNgv7ygtbGRh8Z3K6wpWk+fMl7+AldM83zR/QYkhQgIBQc3FAlVyu5Q==
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=ev7nvsJKZBmuBBVLRoLK7K9PkOBUVIAuA45RqMOyAgw=;
 b=p+/+LYSk1lEoPxs5NqpKRYzbjPN0DjgphxYZGFSAEG5i4Yft84q8wplmI6kkEi9RaZbaKP/ndzK6pD1dbIMM5r2Fc0XJ5nms/V89Nnu6jiLNvep14Pil7YB8ZKdAnSiyXDf2JohwjwyLZsWKiJDv4nsp+f2MiSBx/X26UcOgJKI=
From: "Penny, Zheng" <penny.zheng@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "Huang, Ray" <Ray.Huang@amd.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	"Orzel, Michal" <Michal.Orzel@amd.com>, Julien Grall <julien@xen.org>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Stefano
 Stabellini <sstabellini@kernel.org>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: RE: [PATCH v3 12/15] xen/x86: implement EPP support for the amd-cppc
 driver in active mode
Thread-Topic: [PATCH v3 12/15] xen/x86: implement EPP support for the amd-cppc
 driver in active mode
Thread-Index: AQHbjnN37UHiYLzXuU6NGNUDEkiF17ODyhuAgAMeFYCAAV4OAIARekvw
Date: Tue, 8 Apr 2025 10:32:27 +0000
Message-ID:
 <DM4PR12MB845181D707515CB4D077480FE1B52@DM4PR12MB8451.namprd12.prod.outlook.com>
References: <20250306083949.1503385-1-Penny.Zheng@amd.com>
 <20250306083949.1503385-13-Penny.Zheng@amd.com>
 <6bcd0903-7406-4105-b471-85b5eb0bccc0@suse.com>
 <DM4PR12MB8451472692B00DAE0A909954E1A02@DM4PR12MB8451.namprd12.prod.outlook.com>
 <56243215-797b-4a1d-915e-7fabd6271388@suse.com>
In-Reply-To: <56243215-797b-4a1d-915e-7fabd6271388@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
 MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_ActionId=3a8dd3f6-df18-4998-a1ff-938efd1d046f;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_ContentBits=0;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Enabled=true;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Method=Privileged;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Name=Open
 Source;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SetDate=2025-04-08T10:31:43Z;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Tag=10,
 0, 1, 1;
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DM4PR12MB8451:EE_|IA1PR12MB9063:EE_
x-ms-office365-filtering-correlation-id: 3e8139f2-0936-4880-2a60-08dd7688a8d8
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?ZkxMYngzYWtoS3RiVU1oMEV3eWF1SEVGdUtUS1U1MUJydDhVeWpWcTBPY0Fu?=
 =?utf-8?B?V1BZMlhTVXV2TW5MTlZ2THdBcCsyYzR1YmdnbVRQVWhlR08vWVhkcFhKbXds?=
 =?utf-8?B?Q251YWtPQzlpUVpGY2VwSjl0V2IwNE5DcERLR3Q1Q3RHdk5iN0x0NEMzeFpD?=
 =?utf-8?B?a2RhY2F2NWdnY3ZlaU5YaWY5WUhEWmNKWDh1RlJJQ0ppNE9lRENtd2lKcFY0?=
 =?utf-8?B?a0Z3WWVqMXcxVGNPaWRzaXpwV3M0TTl0TTl4V215S3B6MmlXWUdkdFVjSllN?=
 =?utf-8?B?M3dGVjdDRkRVYURXRHNPMlFXVXk4dzBldDF0Vy9PdG91dFQvR2RkQnhwVDdk?=
 =?utf-8?B?K3FmejFWcWQzRnpIR3FPdmoxdXVuY0VwNmE0cHdkSTlaS1JvTEZsbTJheWxk?=
 =?utf-8?B?dU4wcFEzb2szSnhwV1JBQ0NEczJQRXVBRCtqNWo1aW11NmY0WENrdjdKZlM0?=
 =?utf-8?B?RFN3OTZwL0U0aDJuMXJaMjRkNXdPMkJoMEVSM202d1diUnBOK3B1RGJmV2RB?=
 =?utf-8?B?eGUwVHlzS3F3TlFsQlV0d1RVM29sTm5rL0dBanludW9xK0Rxd1BsOUJueE4x?=
 =?utf-8?B?TVBONnRkVldsL28rcjZkeURuZ2UyNWg4cDlUaXJTbEJ1MDdQOGFNY2toQ052?=
 =?utf-8?B?OXFrZDZ6UWtaR3BQU1lVODkvS2tIVklHNnJveW9UWXpkUUtWWVYxNHVxZ2kv?=
 =?utf-8?B?N040cERGWGhlTnhnbFJqWXZqRGJwU2RVTlhkUVlWOHBKNzNORG0yUlgwdGZj?=
 =?utf-8?B?NTZpNlJ2MThIaG9GMmRZTXlYdC9oRTZpNFR0OGNWbU8remo3NTN0N2g5TzZ4?=
 =?utf-8?B?QzN0dzh3OVJhOXk3QnZxQ3Ria01sa3A1bEY0YWNsUVdKcVNncVNqRHVqcHZE?=
 =?utf-8?B?cjNpQVZwcmJkYVduNWR2aUYxczhNVHdmUVZkU0s4cFJlWHlENlNOOVE2amdz?=
 =?utf-8?B?V0tvaEFUNFlUUFFYRlVkUUszb1RjdTExYkxwOUZvc3ZRc0tXN3RLeExpS0NP?=
 =?utf-8?B?YUxYYVMrSGtUdk55MndudU5YelFwcDdmMW5UKzlMNDBhUndVTWpXaXdwU1g0?=
 =?utf-8?B?SmtUOVc2eVZOMDZ4SlJOaXpiVFVFSVBRcy9QcmN3TStEd0ovQVR1bHpObFNh?=
 =?utf-8?B?aGdsblZvU3piWnJxbmVMK1ArUWFtalZTbUNJTmtxb3YwTllHWUVjczFLdDRB?=
 =?utf-8?B?TW1Td1dpWmpyMG1WK0RyR3Zoc3FQRWpQMDRyZTdiK3Q3NGxwMzVHZmtXMXNK?=
 =?utf-8?B?YmhtQm9OY3JyTE9Ba2FEMXk3dzJ5eUpIZVo1b09nVkVQS1dBQ1ROK2xGeDVM?=
 =?utf-8?B?M05tTHFyV05rRWZJUi9WUnllN3ZEdnoyWTJDa0Y3b0pUVHNMdnJxMWlBQkRF?=
 =?utf-8?B?VFhTZVYvQm92emRKdGhVSWM0SXduejROdWdpY0Zsazh1aXJFOEZUVkNjRzQx?=
 =?utf-8?B?Vi84bDBja2pQdGRyRXpobWllZUgrRVlvQ0ZIMUszYm1lSHRYbG1CU21sdkRv?=
 =?utf-8?B?TkhEODVxeDFZWUNna3lvTG96ejJ6dldhVlZCeDNrV3FzYWk1WTVvUlZCSHJ2?=
 =?utf-8?B?ZmlKbElSbnArZzhYT09QOXRNMXQ4OVV0NlR2ZWxiQzV1TStZZ204Tm5SSHIv?=
 =?utf-8?B?eHNCVGc0dmF2TW9TT1RDcUxCQS90K3BZYm5VV3lpbHU2K29SYndZTytwcUNY?=
 =?utf-8?B?RWZWcHIrRXlmY21Od0w0WFRjcCtnSk9WZWZNcDFMbGRNZVNsQnA4OGxROWQz?=
 =?utf-8?B?aDkrWkZkYWF2d1N2dktNKzc5UjNDdTY2a1hLSmJRMHlMV04wN2dKa0NIOFo0?=
 =?utf-8?B?MGdWMWhOV2llNkFmK2pyQWZKR3QweU5KWlFiQ0VkMEFEWnFDNmVwVWJTcnAw?=
 =?utf-8?B?VEk0SVROaGMySDlSMU02RTQ3dmJPeVlZaUMrbWJaOEJhb01oRFphM25ISDFU?=
 =?utf-8?Q?2K84Yc3se8v4Ad8NzxRfSrQrQCpNC2pb?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB8451.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?Skpta3JJRkpMV2Y4UWNZc3JmMkU0OUgvQlBpd1pCZmZHdzdpdHkra3J3a0FY?=
 =?utf-8?B?MzdQZVRtSGpUZGtBYVI5WEVUbDdaT25temNwRk5yd3EwMTRZRlBUbVZQTUNz?=
 =?utf-8?B?NnBXRlE4eGVkb1QxNkovUG9jV2JJYWRHVGNiTzlraEVvZnF3MU9IenJ5Z0R1?=
 =?utf-8?B?dytrZXpGRC9SL1VCRjNaSGZpQnBzRkcvdU92ajc5akZxemR5SWgwYVdDUHlJ?=
 =?utf-8?B?NzFtRlNmbWlMbzVIUEJxQ3hndVFXSU43Y2o4cnYzYkRBQnQraXBEU1cxcGpi?=
 =?utf-8?B?TGNONEVnRGdFYmI4L0ExcmlzNUNCNGdPSytOUVhzZGxKU3l4Sk5ielN2ZU8v?=
 =?utf-8?B?b3RNYVBYVUlmK09YUytmNGJMdER1L1k4MXdGcHBaTCsvVERMNmJDSmpSTVhU?=
 =?utf-8?B?QlV2WFZJamc0eUV6VXZZa3JoU01XM0FEeFJpRlMxb3ZsYlptZFhXdDlvUHdz?=
 =?utf-8?B?bDYyQlcyUVNVMjFUdzJMZ2VZQW9pMkFxc2VTWHhjLzNlekRISXBadzJKNTZL?=
 =?utf-8?B?SlMrUTg0am9vM0VjUG9GK1ZYNGRFRVFWOGRzS3hBTU5PR1V3Ym4vVXQvdVly?=
 =?utf-8?B?bmJzZlVOQk1BTkgyU1BiMFRURW1JVE9jVjE1bWN2RGw2eUtIVDAvaHk0b2g5?=
 =?utf-8?B?WXZSWkh2SHFuY0kxTEZ0QnRDWW1oQW90M3pTeHE0L1U0RlFXSGZXazhra3Bs?=
 =?utf-8?B?WVEvd3AwaXlMWllIWFNnS3FBWFdhMGhGQTJkMFc5aVYwbzBYa0lIaWllbWdP?=
 =?utf-8?B?VDNWRUdNT2hJNk1MQXdabllDM09FeGYzcDl0bWF0ZjRxWUpablRWdDBPSWsw?=
 =?utf-8?B?RExwazhSNW4rclFPbHVSa3lqeFVGRy9lQWtaVEVLbVhzN0xQWlZqb1l2bDI1?=
 =?utf-8?B?STFYbUNxcndiUGxIbjF6eVI1dGtnRW5GdmEvVXM3bkdEZ200WE9aVmNmbUZ5?=
 =?utf-8?B?Yk1KNmRhWENwN3lJZjVNZU1DcVFvbWlGSlVJaXlPRU5WZzQ2dzk4dFRTemdu?=
 =?utf-8?B?V3BSVVNKcGYxS0RsUmF3ajBQSmpMQVd3Vk9OR3lJQ1RqeGZodnl6MUwxV3la?=
 =?utf-8?B?NmJZZ21YYjZsekZ2alQ3aG1mbXdXSkk2VzRaWHgwTDFGdDliMlNtcXdlQ3dS?=
 =?utf-8?B?TGxSWmNEaFVCeHlNV1Y3L2t2R2lnZHgxWlhDY25NVDBkbmZNcTNta3ZldzVS?=
 =?utf-8?B?cnlmdjNPdGJrb05wL1o3ZnUwRWhYVUlFUFlaajB1VXMxVkFIZTRxeXNhVFIx?=
 =?utf-8?B?emsvRTFDMk1tck10T09WdEFSNDJHbmpHVTZNWmZnT3p4aGhEWkVxVmlzam5k?=
 =?utf-8?B?MHp0Zkg0RTN2OXJQQk5yMVJtSUFCUUFTTktHdGFnRDRwVVFwZldLQ09rQXN1?=
 =?utf-8?B?RzQ1cHRqSlB4RVVpWElhNDVHUVVscXRPQUNjNW1GYWtUZC95UDBsK2lMa2l2?=
 =?utf-8?B?alhEVDFYYmRTdE5rMkVNRWU1czFWbXVDd0kwRzhEVmYzTFBJaFlhTXdwU2My?=
 =?utf-8?B?dXhuM2t2VDFjWmU1NElPK2djNG9wcTZJTC81SWo4YUlhMkpWS1B6REZOVWts?=
 =?utf-8?B?T1R1bUZjUlV1a2FibVJFK2lEVHUrUUlZV2pwaThMVi83T3hrYWtvbnpaRnZ1?=
 =?utf-8?B?Q3FHY2xvdlNMYk80bkYyM3RXSjBWd21BVFgrWnU1NWZGTDZtRDBZaTVOWm1o?=
 =?utf-8?B?dHRKS3dvaWZOQkhLNVlHa1FlMmV2V0VrSXhqd2kxNHE1RGR1RjRhaHdUSWZo?=
 =?utf-8?B?c3Z1OTlTMndLZy91NHUvTEllc2JwckRxUWRkcGUwN1VydVlhUkRPS0c1NElv?=
 =?utf-8?B?L3k3VXpIdDhGaHJLWnNUODlTWSt5Ync2clhIS0QwaEJEbEh1R3JjR0MzajBJ?=
 =?utf-8?B?QnhsdjN4RVdCNHpYd3M4YWNEZHB5QkxEWnpVUCtKU3hBcmZzUmMranFLQjNu?=
 =?utf-8?B?RTRwb1NXcVk2ekc3NkF4SFArRmFBWkZ3Mmp5Z3lNMnVWMzBBNmlpa1lCV0w1?=
 =?utf-8?B?V24zVzh5Q2VOa2dJN1J3bWxlNjZOclNxMDNvTXNSMUxOTEVUUWdsSWRkVzRZ?=
 =?utf-8?B?UjQzckl6cVBJbFV2V3o4WTVNRjkwRUwweEgyU0hpNllzYzRuL0ZOVFdOalhO?=
 =?utf-8?Q?cAMo=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB8451.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 3e8139f2-0936-4880-2a60-08dd7688a8d8
X-MS-Exchange-CrossTenant-originalarrivaltime: 08 Apr 2025 10:32:27.6317
 (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: 4T2754G9wSjQ1eCk1UOKRC5h8El/XQwfyhlDYnqdwE3r9P2PJqezdBz5Zsn2Ji/mtbh8m3uY66oTx+D/RdR0+g==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB9063

W1B1YmxpY10NCg0KSGksDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTog
SmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPg0KPiBTZW50OiBGcmlkYXksIE1hcmNoIDI4
LCAyMDI1IDM6MTggUE0NCj4gVG86IFBlbm55LCBaaGVuZyA8cGVubnkuemhlbmdAYW1kLmNvbT4N
Cj4gQ2M6IEh1YW5nLCBSYXkgPFJheS5IdWFuZ0BhbWQuY29tPjsgQW5kcmV3IENvb3Blcg0KPiA8
YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT47IEFudGhvbnkgUEVSQVJEIDxhbnRob255LnBlcmFy
ZEB2YXRlcy50ZWNoPjsNCj4gT3J6ZWwsIE1pY2hhbCA8TWljaGFsLk9yemVsQGFtZC5jb20+OyBK
dWxpZW4gR3JhbGwgPGp1bGllbkB4ZW4ub3JnPjsgUm9nZXINCj4gUGF1IE1vbm7DqSA8cm9nZXIu
cGF1QGNpdHJpeC5jb20+OyBTdGVmYW5vIFN0YWJlbGxpbmkgPHNzdGFiZWxsaW5pQGtlcm5lbC5v
cmc+Ow0KPiB4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcNCj4gU3ViamVjdDogUmU6IFtQ
QVRDSCB2MyAxMi8xNV0geGVuL3g4NjogaW1wbGVtZW50IEVQUCBzdXBwb3J0IGZvciB0aGUgYW1k
LWNwcGMNCj4gZHJpdmVyIGluIGFjdGl2ZSBtb2RlDQo+DQo+IE9uIDI4LjAzLjIwMjUgMDU6MDcs
IFBlbm55LCBaaGVuZyB3cm90ZToNCj4gPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4g
Pj4gRnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPg0KPiA+PiBTZW50OiBUdWVz
ZGF5LCBNYXJjaCAyNSwgMjAyNSA2OjQ5IFBNDQo+ID4+DQo+ID4+IE9uIDA2LjAzLjIwMjUgMDk6
MzksIFBlbm55IFpoZW5nIHdyb3RlOg0KPg0KPiA+Pj4gKyAgICB7DQo+ID4+PiArICAgICAgICAv
KiBGb3JjZSB0aGUgZXBwIHZhbHVlIHRvIGJlIHplcm8gZm9yIHBlcmZvcm1hbmNlIHBvbGljeSAq
Lw0KPiA+Pj4gKyAgICAgICAgZXBwID0gQ1BQQ19FTkVSR1lfUEVSRl9NQVhfUEVSRk9STUFOQ0U7
DQo+ID4+PiArICAgICAgICBtaW5fcGVyZiA9IG1heF9wZXJmOw0KPiA+Pj4gKyAgICB9DQo+ID4+
PiArICAgIGVsc2UgaWYgKCBwb2xpY3ktPnBvbGljeSA9PSBDUFVGUkVRX1BPTElDWV9QT1dFUlNB
VkUgKQ0KPiA+Pj4gKyAgICAgICAgLyogRm9yY2UgdGhlIGVwcCB2YWx1ZSB0byBiZSAweGZmIGZv
ciBwb3dlcnNhdmUgcG9saWN5ICovDQo+ID4+PiArICAgICAgICAvKg0KPiA+Pj4gKyAgICAgICAg
ICogSWYgc2V0IG1heF9wZXJmID0gbWluX3BlcmYgPSBsb3dlc3RfcGVyZiwgd2UgYXJlIHB1dHRp
bmcNCj4gPj4+ICsgICAgICAgICAqIGNwdSBjb3JlcyBpbiBpZGxlLg0KPiA+Pj4gKyAgICAgICAg
ICovDQo+ID4+DQo+ID4+IE5pdDogU3VjaCB0d28gc3VjY2Vzc2l2ZSBjb21tZW50cyB3YW50IGNv
bWJpbmluZy4gKFNhbWUgbmVhciB0aGUgdG9wDQo+ID4+IG9mIHRoZSBmdW5jdGlvbiwgYXMgSSBu
b3RpY2Ugb25seSBub3cuKQ0KPiA+Pg0KPiA+PiBGdXJ0aGVybW9yZSBJJ20gaW4gdHJvdWJsZSB3
aXRoIGludGVycHJldGluZyB0aGlzIGNvbW1lbnQ6IFRvIG1lICJsb3dlc3QiDQo+ID4+IGRvZXNu
J3QgbWVhbiAiZG9pbmcgbm90aGluZyIgYnV0ICJkb2luZyB0aGluZ3MgYXMgZWZmaWNpZW50bHkg
aW4NCj4gPj4gdGVybXMgb2YgcG93ZXIgdXNlIGFzIHBvc3NpYmxlIi4gSU9XIHRoYXQncyBub3Qg
aWRsZS4gWWV0IHRoZSBjb21tZW50DQo+ID4+IHJlYWRzIGFzIGlmIGl0IHdhcyBtZWFudCB0byBi
ZSBhbiBleHBsYW5hdGlvbiBvZiB3aHkgd2UgY2FuJ3Qgc2V0DQo+ID4+IG1heF9wZXJmIGZyb20g
bWluX3BlcmYgaGVyZS4gVGhhdCBpcywgbm90IG1hdHRlciB3aGF0J3MgbWVhbnQgdG8gYmUNCj4g
Pj4gc2FpZCwgSSB0aGluayB0aGlzIG5lZWRzIHJlLSB3b3JkaW5nIChhbmQgcG9zc2libHkgdXNp
bmcgc3VianVuY3RpdmUgbW9vZCkuDQo+ID4NCj4gPiBIb3cgYWJvdXQ6DQo+ID4gVGhlIGxvd2Vz
dCBub24tbGluZWFyIHBlcmYgaXMgZXF1aXZhbGVudCBhcyBQMiBmcmVxdWVuY3kuIFJlZHVjaW5n
DQo+ID4gcGVyZm9ybWFuY2UgYmVsb3cgdGhpcyBwb2ludCBkb2VzIG5vdCBsZWFkIHRvIHRvdGFs
IGVuZXJneSBzYXZpbmdzIGZvciBhIGdpdmVuDQo+IGNvbXB1dGF0aW9uIChhbHRob3VnaCBpdCBy
ZWR1Y2VzIG1vbWVudGFyeSBwb3dlcikuDQo+ID4gU28gd2UgYXJlIG5vdCBzdWdnZXN0aW5nIHRv
IHNldCBtYXhfcGVyZiBzbWFsbGVyIHRoYW4gbG93ZXN0IG5vbi1saW5lYXIgcGVyZiwgb3INCj4g
ZXZlbiB0aGUgbG93ZXN0IHBlcmYuDQo+DQo+IEluIGFuIGFic3RyYWN0IHdheSBJIHRoaW5rIEkg
Y2FuIGZvbGxvdyB0aGlzLiBJbiB0aGUgY29udGV4dCBvZiB0aGUgY29kZSBiZWluZw0KPiBjb21t
ZW50ZWQsIGhvd2V2ZXIsIEknbSBhZnJhaWQgSSBzdGlsbCBjYW4ndCBtYWtlIHNlbnNlIG9mIGl0
LiBNYWluIHBvaW50IGJlaW5nIHRoYXQNCj4gdGhlIGNvZGUgY29tbWVudGVkIGRvZXNuJ3QgdXNl
IGFueSBvZiB0aGUgKl9wZXJmIHZhbHVlcy4gSXQgb25seSBzZXRzIHRoZSAiZXBwIg0KPiBsb2Nh
bCB2YXJpYWJsZS4gTWF5YmUgdGhlIHBvaW50IG9mIHRoZSBjb21tZW50IGlzIHRvIGV4cGxhaW4g
d2h5IG5vbiBvZiB0aGUgKl9wZXJmDQo+IGFyZSB1c2VkIGhlcmUsIGJ1dCBJIGNhbid0IHJlYWQg
dGhpcyBvdXQgb2YgZWl0aGVyIG9mIHRoZSBwcm9wb3NlZCB0ZXh0cy4NCj4NCg0KSSd2ZSBjaGVj
a2VkIHNvbWUgaW50ZXJuYWwgdGVzdCBzdWl0ZXMgZm9yIENQUEMgaW4gd2luZG93cy4gTWF5YmUg
c2V0dGluZyBtYXhfcGVyZiA9IG5vbWluYWxfcGVyZg0KaXMgYSBmYWlyIG9wdGlvbiBmb3IgcG93
ZXJzYXZlIG1vZGUNCg0KPiBKYW4NCg==


From xen-devel-bounces@lists.xenproject.org Tue Apr 08 10:38:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 10:38:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.941748.1341148 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u26LW-0005Io-Et; Tue, 08 Apr 2025 10:38:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 941748.1341148; Tue, 08 Apr 2025 10:38:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u26LW-0005Ih-C4; Tue, 08 Apr 2025 10:38:22 +0000
Received: by outflank-mailman (input) for mailman id 941748;
 Tue, 08 Apr 2025 10:38: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=xdvb=W2=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u26LU-0005Ib-RG
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 10:38:20 +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 9579f813-1465-11f0-9eaa-5ba50f476ded;
 Tue, 08 Apr 2025 12:38:18 +0200 (CEST)
Received: by mail-wr1-x42f.google.com with SMTP id
 ffacd0b85a97d-39c266c1389so3814807f8f.1
 for <xen-devel@lists.xenproject.org>; Tue, 08 Apr 2025 03:38:18 -0700 (PDT)
Received: from [10.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-43ec366a88csm153944205e9.37.2025.04.08.03.38.16
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 08 Apr 2025 03:38: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: 9579f813-1465-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744108697; x=1744713497; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=QOGifN2tndL32LM4nhwItph+Hiq9R/seqpxXl8WVC5c=;
        b=g/IiSiEHKpw4dE4LHI/F4MiKE07FJnoHNYi63QP5VA8Tp74XAL8dO7cqANZ7PoRfDe
         8kEPa6yNTFsVNrEwEboHvbAjpGpshStnBQRUqG7HsjNI+pwI4HGG0HYAqSu9JKQK0oKa
         LE7GOFuVEO/p5AFBWhiCKP2jtsubeUipZTguQBQZvMO5kZxxlfxZe22VTiRhiY0ig7w3
         6ClcemfXvVzMECMIGWUk+H6ObN0AMeRxpngqb0JGgBI4zMV/WTp2mVoBDYfM4Ksd8mFp
         itfDuERbiIqiQVbQuzzasX8lx0cg144F/mHnHgvIlmHYR5kC2aoTwXZHKYOQmm96+Qfz
         fRbg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744108697; x=1744713497;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=QOGifN2tndL32LM4nhwItph+Hiq9R/seqpxXl8WVC5c=;
        b=MKwnXIVk58x0Hal/ha0gB2cI1X/gqUMW9g5u19OZr0BMSjfpgOLF16aig1/XmE70ye
         GWwb5Fe3HXd4pnxsv3E7xHZX2+fbT3TE4YICJG2aS1LR3kTU+3YDU6Jim/EtZ+4sxiKk
         HqSWuebKO0pT/EAXWygkIUKmDoCZ97QCjLGn9nn/rK4Kzj2RkZVM4om2uyte4Wc+g/rB
         pLqoBl1nd4jv6UeC0GQRVomzEBG/j50khvADDsXxAry/ybGE7wx11tmotWOVDFLj/Cq+
         SkYZPPAFveOEMJvlaTZv76cte01NELlWdVJJIeNV22agZYDzOOJFiWRyb1fmeXsXSoup
         aBTg==
X-Forwarded-Encrypted: i=1; AJvYcCVWkt0AxKb01e828hFdxPrujqJUc3/GDs9GJCINIR7+mYFxsTuQgEPZG64kgUwBFJCXLfYYO2ucFgs=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwkbLaHFl7VTeASICoFLqMvidjX60As5iME5jT4cj5bawhUylSe
	Nf6vOiNmHG3k56Sixix3SXjZB821240GQCA/MtUtTjk+ZLym0ujFa7D/vqNxJw==
X-Gm-Gg: ASbGnctQFjT6tfDuYXI1ylYz1K8koQy9XMAwSUyP+EQtoG2mbmBDBhF+9ONReta5ZJi
	+DlKKh/u8Jgz2QGsza83WgSPptHC0Gbk4Btni5Oqpcxs/ZdWzjpsUHtWTUYo48fsTTzM2bUAQ9Z
	t4iGNQd1zc0S/ilCyVfayYQrsWMg9i/sFFvDud8M4XLQwcWWb9f9ZQkJ5ih4p8/i1mjqpgIfuIY
	PFEZ0ZkUSpfOBz72o0P0WvXSNIegFHlOr07G9PtE5Zjbm7UePzSXI5nAYoh0JKpilklXzn3Na8W
	yN5fnP2kdmTAMNcs8Nd2IFRSOYenIjjQL2kIQ/9POhsR3K8W9ljk0JqeOcZar+wVCJmjFaUNCv1
	B/vW+s64WPuaVARoREfGUVcczkdjsdw==
X-Google-Smtp-Source: AGHT+IFMf70AmrZeLVqTZi1h4vApcbbDcFyY1dde2gQca55QZMuz2kTS8AV1N+9a31RVBV1B/RLQdg==
X-Received: by 2002:a05:6000:40ce:b0:391:2db0:2961 with SMTP id ffacd0b85a97d-39d0de6291cmr12484355f8f.38.1744108697634;
        Tue, 08 Apr 2025 03:38:17 -0700 (PDT)
Message-ID: <54d1d04a-e2b5-449e-97d9-8888e5b0f5eb@suse.com>
Date: Tue, 8 Apr 2025 12:38:16 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v2 1/1] tools/libxl: search PATH for QEMU if
 `QEMU_XEN_PATH` is not absolute
To: Hongbo <hehongbo@mail.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org
References: <20241223031753.13709-1-hehongbo@mail.com>
 <20250330160304.20899-1-hehongbo@mail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20250330160304.20899-1-hehongbo@mail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 30.03.2025 18:03, Hongbo wrote:
> --- a/tools/libs/light/libxl_dm.c
> +++ b/tools/libs/light/libxl_dm.c
> @@ -331,9 +331,43 @@ const char *libxl__domain_device_model(libxl__gc *gc,
>          case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL:
>              dm = libxl__abs_path(gc, "qemu-dm", libxl__private_bindir_path());
>              break;
> -        case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN:
> -            dm = qemu_xen_path(gc);
> +        case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN: {
> +            const char *configured_dm = qemu_xen_path(gc);

What about this returning a filename with a path, just not an absolute one? $PATH
shouldn't be searched in such a case, should it?

> +            if (configured_dm[0] == '/')
> +            {
> +                dm = configured_dm;
> +            }

Why is this and ...

> +            else
> +            {
> +                const char *path_env = getenv("PATH");
> +                if (!path_env)
> +                {
> +                    dm = configured_dm;
> +                }

... this needed, when at the bottom dm is defaulted to dm_configured anyway?
You could set dm to dm_configured uniformly up front. Furthermore there's
then no real need for dm_configured then.

> +                else
> +                {
> +                    char *path_dup = libxl__strdup(gc, path_env);
> +                    char *saveptr;
> +
> +                    char *path = strtok_r(path_dup, ":", &saveptr);

Main reason I'm replying here is this one though, where CI found gcc to
object:

libxl_dm.c: In function 'libxl__domain_device_model':
libxl_dm.c:356:31: error: 'saveptr' may be used uninitialized in this function [-Werror=maybe-uninitialized]
                         char *candidate = libxl__abs_path(gc, configured_dm, path);
                               ^
cc1: all warnings being treated as errors

The compiler can't know that path_dup is guaranteed non-NULL. Hence, if it
can see (part of) the implementation of strtok_r(), it would observe that
it's possible that the continuation-invocation path is taken, where
saveptr necessarily is consumed.

Taking together all the issues I think I'll revert this, for you to make
another attempt. It may have been a mistake to commit such a change anyway;
I might better have left that to Anthony.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 08 10:48:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 10:48:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.941767.1341163 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u26Uw-0008Eq-FA; Tue, 08 Apr 2025 10:48:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 941767.1341163; Tue, 08 Apr 2025 10:48: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 1u26Uw-0008Ej-CN; Tue, 08 Apr 2025 10:48:06 +0000
Received: by outflank-mailman (input) for mailman id 941767;
 Tue, 08 Apr 2025 10:48: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=xdvb=W2=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u26Uv-0008EN-Bf
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 10:48:05 +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 f05e2fdc-1466-11f0-9ffb-bf95429c2676;
 Tue, 08 Apr 2025 12:48:00 +0200 (CEST)
Received: by mail-wr1-x429.google.com with SMTP id
 ffacd0b85a97d-3995ff6b066so2936983f8f.3
 for <xen-devel@lists.xenproject.org>; Tue, 08 Apr 2025 03:48:00 -0700 (PDT)
Received: from [10.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-39c30226f1fsm14680130f8f.95.2025.04.08.03.47.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 08 Apr 2025 03:47: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: f05e2fdc-1466-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744109279; x=1744714079; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=H8PVEzrUxyyaf2R0K3QeJCTF+MMIlSk2eOQJc+CkwUQ=;
        b=AtHb9xyawPTrxHVcKNwAGL+c5g2gtXU+F2vxz5gsdTY7rqzH6aPMNLX6rspUetKoeh
         h0xniWhs/AplLR2SQ8eyH/n3sx+zmgpE5gP0xnFzk6k5DXT8+9NbqLNThuZzmS3wB13p
         oE12rKtUUo+BChOgoyiwtGusL1wH5mz/jRp8gRukIvPpn+aFMIPHS1WkmqJvW0rz2bhW
         I7ex3fYLn6eJuo0oLTCBOpnHlIjBlI5jejoaf2qgPU9u3bFWvb+nPRvjjjJbfnXvbzi0
         i3dfXSScSyBih9CQJeQ6MdS/YUbdmyxBL4Qke4XC5yeB7tFDDlALQf2f/qVSOhuogscd
         LE7Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744109279; x=1744714079;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=H8PVEzrUxyyaf2R0K3QeJCTF+MMIlSk2eOQJc+CkwUQ=;
        b=bBsVlS43QZUx2G1KMJQNKlVqBSSvgojT0sjLQGLQt1n7zDYVYSpnKz0B8UTc+zdqUK
         Zb0ok4Ls6b+MSjcOOQ6QMfjdxbZMtFHHzJSa+N8fLj75A38EOxgOeEWR9hAsRuUOMhi/
         /VTCx+epkO2cEwJSUBhJSIz4p7gG27ufLnGyNjZ8Ib3RQX40GBT7MY0NLi6NTA3V4Ye3
         S7dHX9oHO/SAgJEQ55xlvKqHyKdJObRC3P6b+B/BeTYRK+2XCEPl6OSK0ANZb8v04tJs
         My/Qx8lx0XHkvFIU5IewyxgitmGNZW5n6jleQi/L/URFCB86xCITvY80LqFHYqPueW9t
         BLwQ==
X-Forwarded-Encrypted: i=1; AJvYcCVpTjRvhFs4XLWu3/0imWuD1zonfnolsYs4vTHjOuKNU73nBlpt4D+9ZUMBB2I5kqt1rzVNpnaV8gE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyYy9gnP9LTm7dGiI/I8A+kYL6FcswGZjVeuabI1meM9EAeHL63
	mEydxEhrd6X/XB8r5ugHnD7na3aNj4dvHo6qnCFWI0oDXhR4GPRkD2vTkpxnAg==
X-Gm-Gg: ASbGncv5FjvwH++tL4wNWIOI1ccdu4Pf99N6uAO1/92h/N0CN124bTSfmnD/s6IqEb3
	CiegXa5sMp4AirBZY+2F55MUwvkhFg/kxXQDHDqVuPlCBFj3UyfE4A/hQgTMGvkxpR/lHB9o/eu
	7bO6/ReyXzjCo+xY5T0R++X0xJhIUtEToX19kF+I/FR1BfawcHqWb9VtIYQp4RbJcnbpNJE985l
	z9PVFzj2e0PM5x4M+JHCGEJgc5fQiivIIFeFqdF/R1aQO+QQVUORMbMpc/RmYNwyYSaEjc4waYj
	K5XRKC2YZDDAtdcThNTkz6eouOrB2Hdlh9B/tEfM+5rpsJor8Hu7HK6KLN+2SDvvPDWXp1cH/kq
	IJyE3K/8GdCw/OF92l0qiyTPKEnrIcg==
X-Google-Smtp-Source: AGHT+IECGZab2Gdag8Qthtaf8huF9s/jXVKjiG+3e3FspWCNfvxSOsboGyQrfQXZoYbzr2TJKVMg+w==
X-Received: by 2002:a05:6000:4021:b0:391:2df9:772d with SMTP id ffacd0b85a97d-39cb3596914mr13348284f8f.13.1744109279561;
        Tue, 08 Apr 2025 03:47:59 -0700 (PDT)
Message-ID: <38df7f46-4468-4d0a-92a7-92f0fad13ede@suse.com>
Date: Tue, 8 Apr 2025 12:47:58 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Ping: [PATCH] libxc/PM: correct (not just) error handling in
 xc_get_cpufreq_para()
To: Anthony PERARD <anthony.perard@vates.tech>
Cc: Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org
References: <df676738-19e7-47e6-977f-25d6d13ccc50@suse.com>
 <e0028d85-668a-464b-aac5-ac8a79ea9bf5@suse.com> <Z_PI2UNn2C4GKqYw@l14>
 <75d288ba-1006-46f4-8f51-6d49c5e8449d@suse.com> <Z_Pt6Pv8_RrV4J2U@l14>
 <8f29b0b3-dc57-417c-937a-50f5aac6f6f8@suse.com> <Z_Tze0pQFrU-9pNq@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: <Z_Tze0pQFrU-9pNq@l14>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.04.2025 11:59, Anthony PERARD wrote:
> On Mon, Apr 07, 2025 at 05:38:57PM +0200, Jan Beulich wrote:
>> On 07.04.2025 17:23, Anthony PERARD wrote:
>>> On Mon, Apr 07, 2025 at 03:23:48PM +0200, Jan Beulich wrote:
>>>> On 07.04.2025 14:45, Anthony PERARD wrote:
>>>>> Calling xc_get_cpufreq_para with:
>>>>>
>>>>>     user_para = {
>>>>>         .cpu_num = 0,
>>>>>         .freq_num = 0,
>>>>>         .gov_num = 9,
>>>>>     };
>>>>>
>>>>> seems broken. It's looks like the `scaling_available_governors` bounce
>>>>> buffer is going to be used without been allocated properly handled, with
>>>>> this patch.
>>>>
>>>> The local variable "in_gov_num" controls its allocation and use, together with
>>>> has_num. "Use" as in passing to set_xen_guest_handle(). The only further use
>>>
>>> When has_num == 0, `in_gov_num` is only used to set `sys_para->gov_num`.
>>> It also make a conditional call to xc_hypercall_bounce_post() but
>>> there's nothing to do.
>>>
>>> Why user_para.gov_num seems to control the size of a buffer, but then
>>> that buffer is just discarded under some condition with this patch?
>>
>> That's nothing this patch changes. Previously has_num would also have been
>> false in the example you give.
> 
> Right, sorry. I was persuaded that `has_num` meant "any" of the buffers
> are allocated, instead of the written "all" of them are allocated in C.
> The logic in this function is really hard to follow because it doesn't
> make sense, especially the conditional on `has_num`.
> 
> Your patch does make requesting governors actually optional now (and now
> that I realise the calculation of `has_num` doesn't really reflect the
> name). The introduced `in_gov_num` local variable isn't very useful as
> the only real need is in the cleaning path (and we discussed earlier
> that cleaning can be done unconditionally).

Hmm, yes. See below.

> So the patch is fine:
> 
> Reviewed-by: Anthony PERARD <anthony.perard@vates.tech>

Thanks.

> Oh, one more thing, it's funny that a lot of faff is done toward making
> the cleaning optional, with all the "unlock_*" label, but then cleaning
> code path can be executed when e.g. cpu_num=0,freq_num=4 (unless the
> hypercall return an error in such case, but the code shouldn't rely on
> that...).

Yeah, perhaps I could have dropped the conditional there, rather than updating
it. Are you happy for me to do so, dropping in_gov_num again (adjusting the
description some, of course)?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 08 11:21:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 11:21:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.941780.1341173 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u271F-0000k3-Rw; Tue, 08 Apr 2025 11:21:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 941780.1341173; Tue, 08 Apr 2025 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 1u271F-0000jw-P5; Tue, 08 Apr 2025 11:21:29 +0000
Received: by outflank-mailman (input) for mailman id 941780;
 Tue, 08 Apr 2025 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=7fLb=W2=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u271E-0000jq-Ps
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 11:21:28 +0000
Received: from mail-pf1-x429.google.com (mail-pf1-x429.google.com
 [2607:f8b0:4864:20::429])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9bab774d-146b-11f0-9eaa-5ba50f476ded;
 Tue, 08 Apr 2025 13:21:26 +0200 (CEST)
Received: by mail-pf1-x429.google.com with SMTP id
 d2e1a72fcca58-736aa9d0f2aso6436162b3a.0
 for <xen-devel@lists.xenproject.org>; Tue, 08 Apr 2025 04:21:26 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 d2e1a72fcca58-739da0b2db4sm10244774b3a.126.2025.04.08.04.21.23
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 08 Apr 2025 04:21: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: 9bab774d-146b-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744111285; x=1744716085; 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=Qf0wy7L4O942D22Kbiabal5KHmDdSB8OgsY2GBka7Ko=;
        b=QFSsy2JaNwopNUW5ot4YUahjbPiVOlm7MxVZNGvvEJZbH1jh+Dk97ltZlKQZR2WYWh
         vEAG4QS6B3W/h8xFNkf8IMt8W+/ZkEFwo4WQDMfHF/c6esCHIFeRJJAqQzKzW5O2Pk0Q
         O25OpDXZKhDyleW1jLxL/O0pJp8oSVm0NU1y0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744111285; x=1744716085;
        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=Qf0wy7L4O942D22Kbiabal5KHmDdSB8OgsY2GBka7Ko=;
        b=NJ3T8E9dFQs03Zl7udDq6NPZc2zFZqBjEUt4q8/qfNdQEfjLtdOMnjb/6xRSMI0nYA
         Wbn/E7r3zE02K6n2xQF8slitR/A5R9tU4aTv2tkvIePU0A6pKQI0yYNCrrZz03AzcQ4w
         f8iDBc+7elvgT5IEpVR0lepTYCJtZ9YeW049Hhd8fCy9VE9QESWMiPMh+E+SP87PY9mp
         lpQPrOx9coItZMswuRdpsaYXDk8+utHrdtfvRAiC1zLj0TgcIeV6J4rwhNVA7+jKhBgh
         0EI8xbQg45O5VpTSAPO41s5+W4WDwAwst2BRZw7ycvxlYSkO6tgaiULbFUq/esIWYW5I
         hDkw==
X-Forwarded-Encrypted: i=1; AJvYcCX54qfDVArnUtYo++toAyDIt5yCSzY5ju6nAkw0mfcQJ+8Cdq63DFaZGHijmywBdUKQnuHJLlrK8LU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YywBtbNThCuJzNnSY6lN4ypfhE1iXjdzTvUhZAJJgE8HGWHsPNp
	d9vuVp0H8GMdAH/g2F9+0VS4K8A6XGohjF9i/3jbhnF0GBDwwwyrQUnel9QTUd8=
X-Gm-Gg: ASbGncvUvoXtNeVs4aW56EMiZ/Xi5z4oKV/UXXJQjOuBTXG/qHjuSaW8G9shDqSWxho
	0E/w1hDQOKyIRaFO/KF7+aung995tvIRoml0XIUJiozm8oHN3XhdCfZtt/tuCE32KbBMpkHIKQa
	hOznOcBUFaZQ2ZwRm6C/T9C2uY+zfuIfP5KVWYkxk48o4HW6oxynihJQa55J8trK2xbx6Q5bfIL
	gUvAA/UhJdV9Rcr0AiRyi9n4bH9aRybHFHyUjNj41dVqRtpQaYlQXpv1CXJSOHKB7asKAUC01C9
	ggyrhcagb7b3xxB4jFR1Dnh/0VLmDpSF3wy76EPGcvrt3d2z3A==
X-Google-Smtp-Source: AGHT+IEjJJ4rOEF1asoT/6cfO01WLwUJrm2urETYpYKdML3wTFO1CX2lak3BUUxMnl1XefFjdc6jfA==
X-Received: by 2002:a05:6a21:8cc9:b0:1f8:d245:616d with SMTP id adf61e73a8af0-20113c71a02mr17951874637.21.1744111284790;
        Tue, 08 Apr 2025 04:21:24 -0700 (PDT)
Date: Tue, 8 Apr 2025 13:21:19 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v2 02/11] x86/mkreloc: fix obtaining PE image base address
Message-ID: <Z_UGr0A8LetHDJvB@macbook.lan>
References: <20250401130840.72119-1-roger.pau@citrix.com>
 <20250401130840.72119-3-roger.pau@citrix.com>
 <6c37ad18-a830-453e-a7ff-fb4978e3f0df@suse.com>
 <a14a7a42-cf7e-463b-a87d-e302ce32371b@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <a14a7a42-cf7e-463b-a87d-e302ce32371b@suse.com>

On Wed, Apr 02, 2025 at 09:46:53AM +0200, Jan Beulich wrote:
> On 01.04.2025 16:17, Jan Beulich wrote:
> > On 01.04.2025 15:08, Roger Pau Monne wrote:
> >> The base address is in the pe32_opt_hdr, not after it.
> 
> Which is a result of pe.h munging both the optional and the NT header into
> a single structure.
> 
> >> Previous to commit f7f42accbbbb the base was read standalone (as the first
> >> field of pe32_opt_hdr).  However with the addition of reading the full
> >> contents of pe32_opt_hdr, such read will also fetch the base.  The current
> >> attempt to read the base after pe32_opt_hdr is bogus, and could only work
> >> if the file cursor is repositioned using lseek(), but there's no need for
> >> that as the data is already fetched in pe32_opt_hdr.
> > 
> > Yes, but: How did things work at all then with this bug?
> 
> It simply didn't. We got away only because apparently no-one tried a build
> with a linker old enough for this tool to come into play.
> 
> I'd like to suggest the replacement patch below, though.
> 
> Jan
> 
> x86/EFI: correct mkreloc header (field) reading
> 
> With us now reading the full combined optional and NT headers, the
> subsequent reading of (and seeking to) NT header fields is wrong. Since
> PE32 and PE32+ NT headers are different anyway (beyond the image base
> oddity extending across both headers), switch to using a union. This
> allows to fetch the image base more directly then.
> 
> Additionally add checking to map_section(), which would have caught at
> least the wrong (zero) image size that we previously used.
> 
> Fixes: f7f42accbbbb ("x86/efi: Use generic PE/COFF structures")
> Reported-by: Roger Pau Monné <roger.pau@citrix.com>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> Of the two checks added to map_section(), the 1st ends up being largely
> redundant with the 2nd one. Should we use just the latter?
> 
> Also sanity checking the image base would be possible, but more
> cumbersome if we wanted to check moret than just "is in high half of
> address space). Therefore I've left out doing so.

We could likely check that image_base >= XEN_VIRT_START?  However I'm
not sure how easy it is to make XEN_VIRT_START available to mkreloc.

> --- a/xen/arch/x86/efi/mkreloc.c
> +++ b/xen/arch/x86/efi/mkreloc.c
> @@ -28,14 +28,16 @@ static void usage(const char *cmd, int r
>  static unsigned int load(const char *name, int *handle,
>                           struct section_header **sections,
>                           uint_fast64_t *image_base,
> -                         uint32_t *image_size,
> +                         uint_fast32_t *image_size,
>                           unsigned int *width)
>  {
>      int in = open(name, O_RDONLY);
>      struct mz_hdr mz_hdr;
>      struct pe_hdr pe_hdr;
> -    struct pe32_opt_hdr pe32_opt_hdr;
> -    uint32_t base;
> +    union {
> +        struct pe32_opt_hdr pe;
> +        struct pe32plus_opt_hdr pep;
> +    } pe32_opt_hdr;
>  
>      if ( in < 0 ||
>           read(in, &mz_hdr, sizeof(mz_hdr)) != sizeof(mz_hdr) )
> @@ -54,31 +56,40 @@ static unsigned int load(const char *nam
>  
>      if ( lseek(in, mz_hdr.peaddr, SEEK_SET) < 0 ||
>           read(in, &pe_hdr, sizeof(pe_hdr)) != sizeof(pe_hdr) ||
> -         read(in, &pe32_opt_hdr, sizeof(pe32_opt_hdr)) != sizeof(pe32_opt_hdr) ||
> -         read(in, &base, sizeof(base)) != sizeof(base) ||
> -         /*
> -          * Luckily the image size field lives at the
> -          * same offset for both formats.
> -          */
> -         lseek(in, 24, SEEK_CUR) < 0 ||
> -         read(in, image_size, sizeof(*image_size)) != sizeof(*image_size) )
> +         (read(in, &pe32_opt_hdr.pe, sizeof(pe32_opt_hdr.pe)) !=
> +          sizeof(pe32_opt_hdr.pe)) )
>      {
>          perror(name);
>          exit(3);
>      }
>  
>      switch ( (pe_hdr.magic == PE_MAGIC &&
> -              pe_hdr.opt_hdr_size > sizeof(pe32_opt_hdr)) *
> -              pe32_opt_hdr.magic )
> +              pe_hdr.opt_hdr_size > sizeof(pe32_opt_hdr.pe)) *
> +              pe32_opt_hdr.pe.magic )
>      {
>      case PE_OPT_MAGIC_PE32:
>          *width = 32;
> -        *image_base = base;
> +        *image_base = pe32_opt_hdr.pe.image_base;
> +        *image_size = pe32_opt_hdr.pe.image_size;
>          break;
>      case PE_OPT_MAGIC_PE32PLUS:
> -        *width = 64;
> -        *image_base = ((uint64_t)base << 32) | pe32_opt_hdr.data_base;
> -        break;
> +        if ( pe_hdr.opt_hdr_size > sizeof(pe32_opt_hdr.pep) )
> +        {
> +            if ( read(in,
> +                      &pe32_opt_hdr.pe + 1,
> +                      sizeof(pe32_opt_hdr.pep) - sizeof(pe32_opt_hdr.pe)) !=
> +                 sizeof(pe32_opt_hdr.pep) - sizeof(pe32_opt_hdr.pe) )
> +            {
> +                perror(name);
> +                exit(3);
> +            }
> +
> +            *width = 64;
> +            *image_base = pe32_opt_hdr.pep.image_base;
> +            *image_size = pe32_opt_hdr.pep.image_size;
> +            break;
> +        }

Since you are already refactoring much of this code, won't it be
clearer to fetch the header inside of the switch cases.  So that
there's a single read call for each header type?

> +        /* Fall through. */
>      default:
>          fprintf(stderr, "%s: Wrong PE file format\n", name);
>          exit(3);
> @@ -108,11 +119,28 @@ static unsigned int load(const char *nam
>  static long page_size;
>  
>  static const void *map_section(const struct section_header *sec, int in,
> -                               const char *name)
> +                               const char *name, uint_fast32_t image_size)
>  {
>      const char *ptr;
>      unsigned long offs;
>  
> +    if ( sec->rva > image_size )

Strictly, should this be >=, as rva is a position, and image_size is a
size, so the last allowed bit would be image_size - 1?

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Apr 08 11:47:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 11:47:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.941796.1341182 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u27QY-0005d5-Pf; Tue, 08 Apr 2025 11:47:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 941796.1341182; Tue, 08 Apr 2025 11: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 1u27QY-0005cy-My; Tue, 08 Apr 2025 11:47:38 +0000
Received: by outflank-mailman (input) for mailman id 941796;
 Tue, 08 Apr 2025 11: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=lbxa=W2=bounce.vates.tech=bounce-md_30504962.67f50cd6.v1-6add6fcaea3f497a8fe23b192498d509@srs-se1.protection.inumbo.net>)
 id 1u27QX-0005cs-IV
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 11:47:37 +0000
Received: from mail186-2.suw21.mandrillapp.com
 (mail186-2.suw21.mandrillapp.com [198.2.186.2])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 43408b0b-146f-11f0-9eaa-5ba50f476ded;
 Tue, 08 Apr 2025 13:47:35 +0200 (CEST)
Received: from pmta10.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail186-2.suw21.mandrillapp.com (Mailchimp) with ESMTP id 4ZX47p23Y6zS62GxB
 for <xen-devel@lists.xenproject.org>; Tue,  8 Apr 2025 11:47:34 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 6add6fcaea3f497a8fe23b192498d509; Tue, 08 Apr 2025 11:47: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: 43408b0b-146f-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1744112854; x=1744382854;
	bh=YfNQ6hRfzm8uz2wsvkuZLO3cvqePYwKdvDhIOCJV7ZY=;
	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=jQ/Kv+raJRbuq6l7++0SFHZuTnB6BD0lxTWie7VnsJbAoqM0IDWLbGZ+8wrWAuM4e
	 cEkbKDgZlJbSR1mF796oe0emD3lwJXPn96wk+o2fe2U5CUAC5YFEeAyZJOurh/hP2I
	 WlleZHsUVdmxazvMqLSvK6swFhIfHn6B5ILADAhHTNRhCbKLbZWlziKqKvwWrLvWhz
	 Gmz2viqwBhF7Yi9jOXmVDhP18mggIaF2I72CZwAXmfJuZdZTi2Cx2mrc7Zl/21NgKg
	 ZKP1rt2IsVd7Z+nNjEbG/+T13DaowE72/AHsoU8LbcP1luyd932iG00YYpatgAjICU
	 hmDrEk9OdfTBA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1744112854; x=1744373354; i=anthony.perard@vates.tech;
	bh=YfNQ6hRfzm8uz2wsvkuZLO3cvqePYwKdvDhIOCJV7ZY=;
	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=HEtJ3/O37//1s0YmB6yP7yuMucLorJ7L4NnZHde3b4Wqag46k5WnE20bxjxh45vck
	 rIJ21z7k9vJDkgjE6fNj9ghk4KMg8FEzJ0tGrKSg4HAmONEP1/IyJCJuGe/nlUYlsf
	 2+509S3c8kgpp1jEazRVRRkmRNSpiaDEDA14gqWne3XLHVRSYK2vYSvA7qcsQ4mE/8
	 XT+zOi3u9d9bJ4HVMewd++1yHkxaaDrTncrui7icipsI/cxxcY3SmxktDDzfEuWnOa
	 K2cYmyxijm0kMytifU39RTpFEd+O/oXiWUCDZAPXQOGHQN05dHTELEXFB1aGbO6vCU
	 EyR9MmJAxIaQw==
From: "Anthony PERARD" <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20Ping:=20[PATCH]=20libxc/PM:=20correct=20(not=20just)=20error=20handling=20in=20xc=5Fget=5Fcpufreq=5Fpara()?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1744112853666
To: "Jan Beulich" <jbeulich@suse.com>
Cc: "Juergen Gross" <jgross@suse.com>, xen-devel@lists.xenproject.org
Message-Id: <Z_UM1KaELOPAtQ7l@l14>
References: <df676738-19e7-47e6-977f-25d6d13ccc50@suse.com> <e0028d85-668a-464b-aac5-ac8a79ea9bf5@suse.com> <Z_PI2UNn2C4GKqYw@l14> <75d288ba-1006-46f4-8f51-6d49c5e8449d@suse.com> <Z_Pt6Pv8_RrV4J2U@l14> <8f29b0b3-dc57-417c-937a-50f5aac6f6f8@suse.com> <Z_Tze0pQFrU-9pNq@l14> <38df7f46-4468-4d0a-92a7-92f0fad13ede@suse.com>
In-Reply-To: <38df7f46-4468-4d0a-92a7-92f0fad13ede@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.6add6fcaea3f497a8fe23b192498d509?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250408:md
Date: Tue, 08 Apr 2025 11:47:34 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Tue, Apr 08, 2025 at 12:47:58PM +0200, Jan Beulich wrote:
> On 08.04.2025 11:59, Anthony PERARD wrote:
> > On Mon, Apr 07, 2025 at 05:38:57PM +0200, Jan Beulich wrote:
> >> On 07.04.2025 17:23, Anthony PERARD wrote:
> >>> On Mon, Apr 07, 2025 at 03:23:48PM +0200, Jan Beulich wrote:
> >>>> On 07.04.2025 14:45, Anthony PERARD wrote:
> >>>>> Calling xc_get_cpufreq_para with:
> >>>>>
> >>>>>     user_para = {
> >>>>>         .cpu_num = 0,
> >>>>>         .freq_num = 0,
> >>>>>         .gov_num = 9,
> >>>>>     };
> >>>>>
> >>>>> seems broken. It's looks like the `scaling_available_governors` bounce
> >>>>> buffer is going to be used without been allocated properly handled, with
> >>>>> this patch.
> >>>>
> >>>> The local variable "in_gov_num" controls its allocation and use, together with
> >>>> has_num. "Use" as in passing to set_xen_guest_handle(). The only further use
> >>>
> >>> When has_num == 0, `in_gov_num` is only used to set `sys_para->gov_num`.
> >>> It also make a conditional call to xc_hypercall_bounce_post() but
> >>> there's nothing to do.
> >>>
> >>> Why user_para.gov_num seems to control the size of a buffer, but then
> >>> that buffer is just discarded under some condition with this patch?
> >>
> >> That's nothing this patch changes. Previously has_num would also have been
> >> false in the example you give.
> > 
> > Right, sorry. I was persuaded that `has_num` meant "any" of the buffers
> > are allocated, instead of the written "all" of them are allocated in C.
> > The logic in this function is really hard to follow because it doesn't
> > make sense, especially the conditional on `has_num`.
> > 
> > Your patch does make requesting governors actually optional now (and now
> > that I realise the calculation of `has_num` doesn't really reflect the
> > name). The introduced `in_gov_num` local variable isn't very useful as
> > the only real need is in the cleaning path (and we discussed earlier
> > that cleaning can be done unconditionally).
> 
> Hmm, yes. See below.
> 
> > So the patch is fine:
> > 
> > Reviewed-by: Anthony PERARD <anthony.perard@vates.tech>
> 
> Thanks.
> 
> > Oh, one more thing, it's funny that a lot of faff is done toward making
> > the cleaning optional, with all the "unlock_*" label, but then cleaning
> > code path can be executed when e.g. cpu_num=0,freq_num=4 (unless the
> > hypercall return an error in such case, but the code shouldn't rely on
> > that...).
> 
> Yeah, perhaps I could have dropped the conditional there, rather than updating
> it. Are you happy for me to do so, dropping in_gov_num again (adjusting the
> description some, of course)?

Yes, sounds good, 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 Apr 08 11:52:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 11:52:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.941809.1341192 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u27Ur-0008Cv-9h; Tue, 08 Apr 2025 11:52:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 941809.1341192; Tue, 08 Apr 2025 11:52: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 1u27Ur-0008Co-7B; Tue, 08 Apr 2025 11:52:05 +0000
Received: by outflank-mailman (input) for mailman id 941809;
 Tue, 08 Apr 2025 11:52: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=f4Vq=W2=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1u27Up-0008Ci-Gs
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 11:52:03 +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 e1dc7095-146f-11f0-9ffb-bf95429c2676;
 Tue, 08 Apr 2025 13:52:01 +0200 (CEST)
Received: by mail-ed1-x52a.google.com with SMTP id
 4fb4d7f45d1cf-5e5dce099f4so7010635a12.1
 for <xen-devel@lists.xenproject.org>; Tue, 08 Apr 2025 04:52:01 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-64-225.play-internet.pl.
 [109.243.64.225]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5f088084e61sm7825401a12.63.2025.04.08.04.51.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 08 Apr 2025 04:51: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: e1dc7095-146f-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1744113121; x=1744717921; darn=lists.xenproject.org;
        h=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=0TKV7MD+x6OvmFKHdUyku1PXQCyW6OuqKXs1hOLzwBo=;
        b=AQST+xzGkXyuEe3EmaYQPj08pgQbvktDEVIjWdaK2+RoIRJe0VKFWubba28tciejUG
         VV5lDiGf3ap0j1jJjcCSvmklCH466ijY/gcBWBrI6wyOiaUFNReGX+y2QNpBrJwQ8Xhx
         egju0UNHjAU3fEYGz+VBOTTn4Hmr69lMPue9RiiBIwHN5o4ZxU2t/A8WTcyhF2Wy8B2l
         gRztB25ZT4oRtMmYeWkBIcGT6u4sHxPT1jejEpoQGPn/YJMTDpGQ7swWftpD4qfpueAT
         ll/xIhVXALr32jdXG4LWitA1ncbERMXbdOKsYCHgS3YSkhOvV7T404Dv+tBiT5K5vVaU
         HrLQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744113121; x=1744717921;
        h=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=0TKV7MD+x6OvmFKHdUyku1PXQCyW6OuqKXs1hOLzwBo=;
        b=Sq/ev9xSwEs41s1PeaNJc2dBYnvpXdWEp7SXujUtonOTpfTPQGPIX3227TNDu/yEng
         kwBOmvu/T+JTiU5tw485obvwViPuOIHfHALXiNUn1fvbbyOifdLJdNLnyJumv9uKhrRl
         sET2bGX8wTuKJFfJWgduF0AmA0EEChefWNgR5D2acYWueXFsbKnmT7yDnw8GlA5Nyr+n
         jfis0sTdxwca2gqgm2I6i+CYfdm3YopVNhjLIukE68AJLKi2xfVnz+MvkCHPQV+uWWgg
         WhsPNm+XbSdeuOyxh4iUMg52UbyZ8gOs3dhj6twB7jS3ZhRB/vzWB64OR6jzgJWfAjY+
         8THQ==
X-Forwarded-Encrypted: i=1; AJvYcCU5/tuoX5orAHA03LGSk4w2NRT9knGEvTr6atnylezI6pXCYCT4umd+Zgr9r8AUQj02nSuE5/m9VGw=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw6SEWfIKE23vX2A0fCve0MUPT5W6fyV9sX0WFMy84MW5oyxWM8
	4MQbHRZoxIoxrYQLdlhHcBSzKfzjbz3n50gHP9ZgHeRAVoHUyKLY
X-Gm-Gg: ASbGnctmPgiz1WwyMvXptgqX3vxnrGsQ/c/Lh1U4twawShWr/ZhYfhjyJxEa0HveJ72
	kJSoD1VBoVG04uXbQZ+/Ed5xAKXKTbDrBxsPj5oe164mXw94sEvviyh7AhjSCv+7xQNSqK5Ggdp
	cXACll1Q1eqL9goR17FRlzOmHtr+j7QLzOUPOuYi3DbRg7EOeJ+VQbpCGAsuCfLDqUIBsQljKSO
	/INiiRDx7kpwQ5s0O6lCjs3ya+eLnQjDAbzp8/WowuFISUUyUMRoaVWhvSgGOq5deLRS46G6pQt
	EQCFvHCdIglkDXdv9lxb7185KlgI8yY6l8NUbycpQ0lqKhyMXqIQx0JCZb9/0szyaH9o3q445KI
	EUzSv+FMsIRhd2IEBRrDEftKPmAytI+c=
X-Google-Smtp-Source: AGHT+IFbyYjYEFpDW783FFnkiEIDNUGCo0ZKTn/qyv9tMVYlnHVrqWsYPR8PiaOq61SlAUBX3WvtAQ==
X-Received: by 2002:a05:6402:5cb:b0:5ee:497:67d6 with SMTP id 4fb4d7f45d1cf-5f0b66417f0mr13405047a12.33.1744113120349;
        Tue, 08 Apr 2025 04:52:00 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------bAMtNFY87y0kSSAMPceiNG8a"
Message-ID: <f35a9969-6154-4e9a-b997-16ca135e85ee@gmail.com>
Date: Tue, 8 Apr 2025 13:51:58 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] xen/riscv: Increase XEN_VIRT_SIZE
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <808d1b346bc90dde38fd19a6b92ab78d78e42936.1743766932.git.oleksii.kurochko@gmail.com>
 <e5f6ccb3-498f-44cf-8c06-61fa502d93db@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <e5f6ccb3-498f-44cf-8c06-61fa502d93db@suse.com>

This is a multi-part message in MIME format.
--------------bAMtNFY87y0kSSAMPceiNG8a
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 4/7/25 12:09 PM, Jan Beulich wrote:
> On 04.04.2025 18:04, Oleksii Kurochko wrote:
>> --- a/xen/arch/riscv/include/asm/config.h
>> +++ b/xen/arch/riscv/include/asm/config.h
>> @@ -41,11 +41,11 @@
>>    * Start addr          | End addr         | Slot       | area description
>>    * ============================================================================
>>    *                   .....                 L2 511          Unused
>> - *  0xffffffffc0a00000  0xffffffffc0bfffff L2 511          Fixmap
>> + *  0xffffffffc1800000  0xffffffffc1afffff L2 511          Fixmap
> Isn't the upper bound 0xffffffffc19fffff now?

Yes, it should be updated to 0xffffffffc19fffff.

>
>> --- a/xen/arch/riscv/include/asm/mm.h
>> +++ b/xen/arch/riscv/include/asm/mm.h
>> @@ -43,13 +43,19 @@ static inline void *maddr_to_virt(paddr_t ma)
>>    */
>>   static inline unsigned long virt_to_maddr(unsigned long va)
>>   {
>> +    const unsigned int vpn1_shift = PAGETABLE_ORDER + PAGE_SHIFT;
>> +    const unsigned long va_vpn = va >> vpn1_shift;
>> +    const unsigned long xen_virt_start_vpn =
>> +        _AC(XEN_VIRT_START, UL) >> vpn1_shift;
>> +    const unsigned long xen_virt_end_vpn =
>> +        xen_virt_start_vpn + ((XEN_VIRT_SIZE >> vpn1_shift) - 1);
>> +
>>       if ((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)) ==
>> -           (_AC(XEN_VIRT_START, UL) >> (PAGETABLE_ORDER + PAGE_SHIFT)));
>> +    BUILD_BUG_ON(XEN_VIRT_SIZE > GB(1));
>> +    ASSERT((va_vpn >= xen_virt_start_vpn) && (va_vpn <= xen_virt_end_vpn));
> Not all of the range is backed by memory, and for the excess space the
> translation is therefore (likely) wrong. Which better would be caught by
> the assertion?

Backed here means that the memory is actually mapped?

IIUC it is needed to check only for the range [XEN_VIRT_START, XEN_VIRT_START+xen_phys_size]
where xen_phys_size=(unsigned long)_end - (unsigned long)_start.

Did I understand you correctly?

>
>> --- a/xen/arch/riscv/mm.c
>> +++ b/xen/arch/riscv/mm.c
>> @@ -31,20 +31,27 @@ unsigned long __ro_after_init phys_offset; /* = load_start - XEN_VIRT_START */
>>   #define LOAD_TO_LINK(addr) ((unsigned long)(addr) - phys_offset)
>>   
>>   /*
>> - * It is expected that Xen won't be more then 2 MB.
>> + * It is expected that Xen won't be more then XEN_VIRT_SIZE MB.
>>    * The check in xen.lds.S guarantees that.
>> - * At least 3 page tables (in case of Sv39 ) are needed to cover 2 MB.
>> - * One for each page level table with PAGE_SIZE = 4 Kb.
>>    *
>> - * One L0 page table can cover 2 MB(512 entries of one page table * PAGE_SIZE).
>> + * Root page table is shared with the initial mapping and is declared
>> + * separetely. (look at stage1_pgtbl_root)
>>    *
>> - * It might be needed one more page table in case when Xen load address
>> - * isn't 2 MB aligned.
>> + * An amount of page tables between root page table and L0 page table
>> + * (in the case of Sv39 it covers L1 table):
>> + *   (CONFIG_PAGING_LEVELS - 2) are needed for an identity mapping and
>> + *   the same amount are needed for Xen.
>>    *
>> - * CONFIG_PAGING_LEVELS page tables are needed for the identity mapping,
>> - * except that the root page table is shared with the initial mapping
>> + * An amount of L0 page tables:
>> + *   (512 entries of one L0 page table covers 2MB == 1<<XEN_PT_LEVEL_SHIFT(1))
>> + *   XEN_VIRT_SIZE >> XEN_PT_LEVEL_SHIFT(1) are needed for Xen and
>> + *   one L0 is needed for indenity mapping.
>> + *
>> + *   It might be needed one more page table in case when Xen load
>> + *   address isn't 2 MB aligned.
> Shouldn't we guarantee that?

I think it's sufficient to guarantee 4KB alignment.

The only real benefit I see in enforcing larger alignment is that it likely enables
the use of superpages for mapping, which would reduce TLB pressure.
But perhaps I'm missing something?

Or did you mean that if 2MB alignment isn't guaranteed, then we might need two extra
page tables—one if the start address isn't 2MB aligned, and the Xen size is larger than 2MB?
Then yes one more page table should be added to PGTBL_INITIAL_COUNT.

> What may require an extra page table is when Xen
> crosses a 1Gb boundary (unless we also guaranteed that it won't).

You're right—I also need to add an extra page table if Xen crosses a 1GB boundary.

Thanks!

~ Oleksii

--------------bAMtNFY87y0kSSAMPceiNG8a
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 4/7/25 12:09 PM, Jan Beulich wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:e5f6ccb3-498f-44cf-8c06-61fa502d93db@suse.com">
      <pre wrap="" class="moz-quote-pre">On 04.04.2025 18:04, Oleksii Kurochko wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">--- a/xen/arch/riscv/include/asm/config.h
+++ b/xen/arch/riscv/include/asm/config.h
@@ -41,11 +41,11 @@
  * Start addr          | End addr         | Slot       | area description
  * ============================================================================
  *                   .....                 L2 511          Unused
- *  0xffffffffc0a00000  0xffffffffc0bfffff L2 511          Fixmap
+ *  0xffffffffc1800000  0xffffffffc1afffff L2 511          Fixmap
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Isn't the upper bound 0xffffffffc19fffff now?</pre>
    </blockquote>
    <pre>Yes, it should be updated to 0xffffffffc19fffff.
</pre>
    <blockquote type="cite"
      cite="mid:e5f6ccb3-498f-44cf-8c06-61fa502d93db@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">--- a/xen/arch/riscv/include/asm/mm.h
+++ b/xen/arch/riscv/include/asm/mm.h
@@ -43,13 +43,19 @@ static inline void *maddr_to_virt(paddr_t ma)
  */
 static inline unsigned long virt_to_maddr(unsigned long va)
 {
+    const unsigned int vpn1_shift = PAGETABLE_ORDER + PAGE_SHIFT;
+    const unsigned long va_vpn = va &gt;&gt; vpn1_shift;
+    const unsigned long xen_virt_start_vpn =
+        _AC(XEN_VIRT_START, UL) &gt;&gt; vpn1_shift;
+    const unsigned long xen_virt_end_vpn =
+        xen_virt_start_vpn + ((XEN_VIRT_SIZE &gt;&gt; vpn1_shift) - 1);
+
     if ((va &gt;= DIRECTMAP_VIRT_START) &amp;&amp;
         (va &lt;= DIRECTMAP_VIRT_END))
         return directmapoff_to_maddr(va - directmap_virt_start);
 
-    BUILD_BUG_ON(XEN_VIRT_SIZE != MB(2));
-    ASSERT((va &gt;&gt; (PAGETABLE_ORDER + PAGE_SHIFT)) ==
-           (_AC(XEN_VIRT_START, UL) &gt;&gt; (PAGETABLE_ORDER + PAGE_SHIFT)));
+    BUILD_BUG_ON(XEN_VIRT_SIZE &gt; GB(1));
+    ASSERT((va_vpn &gt;= xen_virt_start_vpn) &amp;&amp; (va_vpn &lt;= xen_virt_end_vpn));
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Not all of the range is backed by memory, and for the excess space the
translation is therefore (likely) wrong. Which better would be caught by
the assertion?</pre>
    </blockquote>
    <pre>Backed here means that the memory is actually mapped?

IIUC it is needed to check only for the range [XEN_VIRT_START, XEN_VIRT_START+xen_phys_size]
where xen_phys_size=(unsigned long)_end - (unsigned long)_start.

Did I understand you correctly?</pre>
    <blockquote type="cite"
      cite="mid:e5f6ccb3-498f-44cf-8c06-61fa502d93db@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">--- a/xen/arch/riscv/mm.c
+++ b/xen/arch/riscv/mm.c
@@ -31,20 +31,27 @@ unsigned long __ro_after_init phys_offset; /* = load_start - XEN_VIRT_START */
 #define LOAD_TO_LINK(addr) ((unsigned long)(addr) - phys_offset)
 
 /*
- * It is expected that Xen won't be more then 2 MB.
+ * It is expected that Xen won't be more then XEN_VIRT_SIZE MB.
  * The check in xen.lds.S guarantees that.
- * At least 3 page tables (in case of Sv39 ) are needed to cover 2 MB.
- * One for each page level table with PAGE_SIZE = 4 Kb.
  *
- * One L0 page table can cover 2 MB(512 entries of one page table * PAGE_SIZE).
+ * Root page table is shared with the initial mapping and is declared
+ * separetely. (look at stage1_pgtbl_root)
  *
- * It might be needed one more page table in case when Xen load address
- * isn't 2 MB aligned.
+ * An amount of page tables between root page table and L0 page table
+ * (in the case of Sv39 it covers L1 table):
+ *   (CONFIG_PAGING_LEVELS - 2) are needed for an identity mapping and
+ *   the same amount are needed for Xen.
  *
- * CONFIG_PAGING_LEVELS page tables are needed for the identity mapping,
- * except that the root page table is shared with the initial mapping
+ * An amount of L0 page tables:
+ *   (512 entries of one L0 page table covers 2MB == 1&lt;&lt;XEN_PT_LEVEL_SHIFT(1))
+ *   XEN_VIRT_SIZE &gt;&gt; XEN_PT_LEVEL_SHIFT(1) are needed for Xen and
+ *   one L0 is needed for indenity mapping.
+ *
+ *   It might be needed one more page table in case when Xen load
+ *   address isn't 2 MB aligned.
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Shouldn't we guarantee that? 
</pre>
    </blockquote>
    <pre data-start="126" data-end="177" class="">I think it's sufficient to guarantee 4KB alignment.</pre>
    <pre data-start="179" data-end="365" class="">The only real benefit I see in enforcing larger alignment is that it likely enables
the use of superpages for mapping, which would reduce TLB pressure.
But perhaps I'm missing something?</pre>
    <pre data-start="367" data-end="595" class="">Or did you mean that if 2MB alignment isn't guaranteed, then we might need two extra
page tables—one if the start address isn't 2MB aligned, and the Xen size is larger than 2MB?
Then yes one more page table should be added to PGTBL_INITIAL_COUNT.</pre>
    <pre></pre>
    <p></p>
    <blockquote type="cite"
      cite="mid:e5f6ccb3-498f-44cf-8c06-61fa502d93db@suse.com">
      <pre wrap="" class="moz-quote-pre">What may require an extra page table is when Xen
crosses a 1Gb boundary (unless we also guaranteed that it won't).
</pre>
    </blockquote>
    <pre>You're right—I also need to add an extra page table if Xen crosses a 1GB boundary.

Thanks!

~ Oleksii
</pre>
  </body>
</html>

--------------bAMtNFY87y0kSSAMPceiNG8a--


From xen-devel-bounces@lists.xenproject.org Tue Apr 08 12:02:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 12:02:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.941844.1341239 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u27eg-00033i-OY; Tue, 08 Apr 2025 12:02:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 941844.1341239; Tue, 08 Apr 2025 12:02: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 1u27eg-00033b-Lt; Tue, 08 Apr 2025 12:02:14 +0000
Received: by outflank-mailman (input) for mailman id 941844;
 Tue, 08 Apr 2025 12:02: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=xdvb=W2=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u27ef-00033V-41
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 12:02:13 +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 4b779d77-1471-11f0-9ffb-bf95429c2676;
 Tue, 08 Apr 2025 14:02:08 +0200 (CEST)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-43cf848528aso43828265e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 08 Apr 2025 05:02:08 -0700 (PDT)
Received: from [10.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-39c301a79aasm15017931f8f.35.2025.04.08.05.02.05
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 08 Apr 2025 05:02: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: 4b779d77-1471-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744113727; x=1744718527; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=OVIW1TfF/xhcfVYcDEdeQi7PBjrEJXnVMuTqWX2dAIo=;
        b=PrwfOWB+P1ftw22FUMPUz8HW0G421XCRqs6ZVH25Ll8NDggbaPzBuia+fUMA9Yp6wQ
         EgMWMXvIWd+w2xf+58sTUnUtCAfxWu1+SGuPO42VngoUxZBiLMxTvmsR908pYOIfWIiN
         FZvxoz/VLDOxXtgW2ulr8ayd56ygti+/5qdGWHlpDZ89H0sjQenUu+ixza2gfo9bFK5X
         iKp2DagWb7NsLT+u7+wVPgQukUcicL4fKVgIJolNaCMPb2t20w0lBnp94XWzchDWOuti
         qZkaPU+Jh7boxVez1imp7V4PoBfGVppnP5hoWWujQcqNK/g9kNfQpwGN8eZ6En+g+M7I
         Tjfw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744113727; x=1744718527;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=OVIW1TfF/xhcfVYcDEdeQi7PBjrEJXnVMuTqWX2dAIo=;
        b=jigyHVWl7r3eQY34WvNipJpg7/HlUoTvDnyvVl9q7PfQlp+OR9BdIuBl4AyOkgqzZd
         ebm4hdbJdLC6aL15UpvTqaU3eFffx3PgUb+dnu3VdFa4ne+D9qSin+YmxVqA49TDSab5
         KAh2GJQJu77d+3Q2aT9ZUitjCu/7739BK687bwiwcf1MRtXturUupTsoywUYtEkHo4Bk
         eqFUHXGoLC3DDbLiPiZCDyFIuG35t5N9hsEm8s6u/ra8RlbLYl+6+u1m4gTKGGaJg6UH
         +Kxo1L1nGgvYjBoopJ7AMTAvR9kKYOrW2wFEvVnGFXIaDwx52xJEL2LeaeqgTLILdZGJ
         0cWw==
X-Forwarded-Encrypted: i=1; AJvYcCXsIS8T1Ly8xMau+RYbwx+rdul05PVraXQ51FtNGUQuB0kyqiTfJP5iezSl0v9AXcoXI59LNSnUmlo=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw1tXICKhAWHcxwTEqu2VgxuDzeGRo/gZtXwCmpCvxQVoFyz6Mz
	OygFnszcOVGtqex4Bp0BkRHLc54xEtHPi+XxtxmOi9654B2k3s9qWi+dUQX3IA==
X-Gm-Gg: ASbGnctXbfQvccJwQfLfc+OfvVAbtXucQYLHS4P0g49ZdtYXg1p5qE0SRFUPkFRhuRa
	g1UnjadVjr5SK8V8iPnUlGRGufd4qduhj2eMKJztjrB2/DTfrMen3+se9gztxgCZjCaPggB7Var
	+SNFo37rO/+0ahv+V2g+3api93s5pL+cXFiEl1Gl0jyzsAHJ+vAMadJlyAgJt2JD/ExSJByADgh
	97YWkOqBDe/Czh4/VCJgXc4LSkxHRGOy7h75F/Vgv7FT8neeDGHnGiUYzsUKHZfjrFQvDjZNZdz
	G1PvrOrL9sRJg5nQrluJZ5h93stqQsb/EWuJdLX83cpYd51MrltldF0OeuzVnwns6RTiEQcZEQc
	KcEpUZsoHUhYf2uBLry+jrcUtMVy6eQ==
X-Google-Smtp-Source: AGHT+IGjZwTJ4070ZOqIi0mSKsv6qPa5G2CWVqOv9vlX78GcvTyQkykOmckh7ARPavW+j6QhK/MDew==
X-Received: by 2002:a05:600c:3d17:b0:43d:7bfa:2739 with SMTP id 5b1f17b1804b1-43ee0768c11mr110515435e9.23.1744113726903;
        Tue, 08 Apr 2025 05:02:06 -0700 (PDT)
Message-ID: <8b2e50f2-1f89-41df-be88-afc9ef24b51a@suse.com>
Date: Tue, 8 Apr 2025 14:02:05 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] xen/riscv: Increase XEN_VIRT_SIZE
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <808d1b346bc90dde38fd19a6b92ab78d78e42936.1743766932.git.oleksii.kurochko@gmail.com>
 <e5f6ccb3-498f-44cf-8c06-61fa502d93db@suse.com>
 <f35a9969-6154-4e9a-b997-16ca135e85ee@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: <f35a9969-6154-4e9a-b997-16ca135e85ee@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 08.04.2025 13:51, Oleksii Kurochko wrote:
> On 4/7/25 12:09 PM, Jan Beulich wrote:
>> On 04.04.2025 18:04, Oleksii Kurochko wrote:
>>> --- a/xen/arch/riscv/include/asm/mm.h
>>> +++ b/xen/arch/riscv/include/asm/mm.h
>>> @@ -43,13 +43,19 @@ static inline void *maddr_to_virt(paddr_t ma)
>>>    */
>>>   static inline unsigned long virt_to_maddr(unsigned long va)
>>>   {
>>> +    const unsigned int vpn1_shift = PAGETABLE_ORDER + PAGE_SHIFT;
>>> +    const unsigned long va_vpn = va >> vpn1_shift;
>>> +    const unsigned long xen_virt_start_vpn =
>>> +        _AC(XEN_VIRT_START, UL) >> vpn1_shift;
>>> +    const unsigned long xen_virt_end_vpn =
>>> +        xen_virt_start_vpn + ((XEN_VIRT_SIZE >> vpn1_shift) - 1);
>>> +
>>>       if ((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)) ==
>>> -           (_AC(XEN_VIRT_START, UL) >> (PAGETABLE_ORDER + PAGE_SHIFT)));
>>> +    BUILD_BUG_ON(XEN_VIRT_SIZE > GB(1));
>>> +    ASSERT((va_vpn >= xen_virt_start_vpn) && (va_vpn <= xen_virt_end_vpn));
>> Not all of the range is backed by memory, and for the excess space the
>> translation is therefore (likely) wrong. Which better would be caught by
>> the assertion?
> 
> Backed here means that the memory is actually mapped?
> 
> IIUC it is needed to check only for the range [XEN_VIRT_START, XEN_VIRT_START+xen_phys_size]
> where xen_phys_size=(unsigned long)_end - (unsigned long)_start.
> 
> Did I understand you correctly?

I think so, yes. Depending on what you (intend to) do to .init.* at the
end of boot, that range may later also want excluding.

>>> --- a/xen/arch/riscv/mm.c
>>> +++ b/xen/arch/riscv/mm.c
>>> @@ -31,20 +31,27 @@ unsigned long __ro_after_init phys_offset; /* = load_start - XEN_VIRT_START */
>>>   #define LOAD_TO_LINK(addr) ((unsigned long)(addr) - phys_offset)
>>>   
>>>   /*
>>> - * It is expected that Xen won't be more then 2 MB.
>>> + * It is expected that Xen won't be more then XEN_VIRT_SIZE MB.
>>>    * The check in xen.lds.S guarantees that.
>>> - * At least 3 page tables (in case of Sv39 ) are needed to cover 2 MB.
>>> - * One for each page level table with PAGE_SIZE = 4 Kb.
>>>    *
>>> - * One L0 page table can cover 2 MB(512 entries of one page table * PAGE_SIZE).
>>> + * Root page table is shared with the initial mapping and is declared
>>> + * separetely. (look at stage1_pgtbl_root)
>>>    *
>>> - * It might be needed one more page table in case when Xen load address
>>> - * isn't 2 MB aligned.
>>> + * An amount of page tables between root page table and L0 page table
>>> + * (in the case of Sv39 it covers L1 table):
>>> + *   (CONFIG_PAGING_LEVELS - 2) are needed for an identity mapping and
>>> + *   the same amount are needed for Xen.
>>>    *
>>> - * CONFIG_PAGING_LEVELS page tables are needed for the identity mapping,
>>> - * except that the root page table is shared with the initial mapping
>>> + * An amount of L0 page tables:
>>> + *   (512 entries of one L0 page table covers 2MB == 1<<XEN_PT_LEVEL_SHIFT(1))
>>> + *   XEN_VIRT_SIZE >> XEN_PT_LEVEL_SHIFT(1) are needed for Xen and
>>> + *   one L0 is needed for indenity mapping.
>>> + *
>>> + *   It might be needed one more page table in case when Xen load
>>> + *   address isn't 2 MB aligned.
>> Shouldn't we guarantee that?
> 
> I think it's sufficient to guarantee 4KB alignment.
> 
> The only real benefit I see in enforcing larger alignment is that it likely enables
> the use of superpages for mapping, which would reduce TLB pressure.
> But perhaps I'm missing something?

No, it's indeed mainly that.

> Or did you mean that if 2MB alignment isn't guaranteed, then we might need two extra
> page tables—one if the start address isn't 2MB aligned, and the Xen size is larger than 2MB?
> Then yes one more page table should be added to PGTBL_INITIAL_COUNT.

Well, of course - if alignment isn't guaranteed, crossing whatever boundaries
of course needs accounting for.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 08 12:06:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 12:06:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.941858.1341248 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u27jE-0003e1-5V; Tue, 08 Apr 2025 12:06:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 941858.1341248; Tue, 08 Apr 2025 12:06:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u27jE-0003du-2y; Tue, 08 Apr 2025 12:06:56 +0000
Received: by outflank-mailman (input) for mailman id 941858;
 Tue, 08 Apr 2025 12: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=J/2l=W2=bounce.vates.tech=bounce-md_30504962.67f5115c.v1-9e156be3e942462eb675b2c796853bac@srs-se1.protection.inumbo.net>)
 id 1u27jC-0003do-SE
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 12:06:54 +0000
Received: from mail180-44.suw31.mandrillapp.com
 (mail180-44.suw31.mandrillapp.com [198.2.180.44])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f54e8212-1471-11f0-9eaa-5ba50f476ded;
 Tue, 08 Apr 2025 14:06:53 +0200 (CEST)
Received: from pmta11.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail180-44.suw31.mandrillapp.com (Mailchimp) with ESMTP id
 4ZX4Z40cBwz705lrF
 for <xen-devel@lists.xenproject.org>; Tue,  8 Apr 2025 12:06:52 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 9e156be3e942462eb675b2c796853bac; Tue, 08 Apr 2025 12:06: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: f54e8212-1471-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1744114012; x=1744384012;
	bh=ESwd8atQcD4QmdOgj9K3ZWUEz57v6wFrLEwdeBKqSr4=;
	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=ondSlxtCSsMSTWLyFkp7t8DtB2a5dQSkIFkugLL9GdFyMpBG4o4B/txjgVCwosFNu
	 hANjJtM55bJBXa3VbbSaPX75IQJAZtvFAIvSMFiuNLY9bSyPRXqFcHRTRbXzcoeT64
	 tSXvObdjqM71zytPpR6Bzrur+PylHTUYe/JXKSfwkoHKXy2xfydQSzpIa72hX9hJrt
	 8dfiPohCZRTEm8c4jSSzWykXqEstEaSWab1KPXg62dNoBdE9TeXFaiPyfY17aQCjkN
	 cyKQjNVAsl9L/2nnmM9h/joFZQAYRnMsbwiPIvaR1I84c63ExfHB3PH+/PNELgqbsz
	 F9hbrlbtPgNIw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1744114012; x=1744374512; i=anthony.perard@vates.tech;
	bh=ESwd8atQcD4QmdOgj9K3ZWUEz57v6wFrLEwdeBKqSr4=;
	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=T6e3gB96X0GxS8qhnlp/dhxrHtWgjPaIJP8RJ140tZkWlygopTDfrkAvDRxBVwKzi
	 B8b+iw/cOqAIQznvxnGA0k7aFmYRSji5MjMHba8ugb3m6qBBMyaLe/U0/zsE3GqTnE
	 2i43iID7je8alrE3WYftVCkE1kf8EvfF4v1IFiOum8Z6kgdkn72HL6na5YW0kpaj25
	 fJG/nFDOpN+1RrIqnBxWv6QgoC7Z4+6etaoaPr2XNtF/MKXv3iNz1H0/wjuW2wSadX
	 OfxRepKY/Q0dLh2S4y2PPlWXGMl8IOOvhcPNbl7fY8k+tQKU3hsCryTOzZ5W3qrVcg
	 dwbVqLaQaUT6Q==
From: "Anthony PERARD" <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=20test-artifacts=20v2=2014/12]=20scripts:=20build=20initrd=20cpio?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1744114010729
To: "=?utf-8?Q?Marek=20Marczykowski-G=C3=B3recki?=" <marmarek@invisiblethingslab.com>
Cc: "Andrew Cooper" <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org, "Stefano Stabellini" <sstabellini@kernel.org>, "Michal Orzel" <michal.orzel@amd.com>, "Jan Beulich" <jbeulich@suse.com>, "Julien Grall" <julien@xen.org>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>
Message-Id: <Z_URWuh2hrIWGBGV@l14>
References: <cover.7da1777882774486a13e6f39ff4a2096f6b7901e.1744028549.git-series.marmarek@invisiblethingslab.com> <20250407123448.1520451-2-marmarek@invisiblethingslab.com> <a2b01279-4e67-4ce9-9752-21c16c33fe32@citrix.com> <04ae4edc-8ea6-489d-8485-6e45aa750607@citrix.com> <Z_P9y8lxB_-kEcy6@mail-itl>
In-Reply-To: <Z_P9y8lxB_-kEcy6@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.9e156be3e942462eb675b2c796853bac?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250408:md
Date: Tue, 08 Apr 2025 12:06:52 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Mon, Apr 07, 2025 at 06:31:06PM +0200, Marek Marczykowski-G=C3=B3recki w=
rote:
> There is one more difference: the cpio.gz contains the whole thing
> twice. Once as rootfs for dom0 and then another as boot/initrd-domU.
> Dropping .tar.gz is probably a good idea at some point, so I'm okay with
> such comment added. But I imagine some future tests may benefit from
> just one layer, which may want introducing another cpio.gz without
> boot/initrd-domU included. In fact, even right now that might be useful
> - for example dom0less arm64 test uses just busybox for domU rootfs, not
> the whole archive (so with my changes dom0 rootfs has unused
> boot/initrd-domU included).

In such case, would it make sense to prepare several initrd.cpio.gz? A
common one, then having overlays of files we want to add or replace to
the initrd of spefic test. I think osstest used to do something like
that, with command that would be:
    cat common.cpio.gz overlay.cpio.gz > initrd.cpio.gz

If it matter, is seem that the "file.cpio" used to be made with
`cpio -Hnewc -o`

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 Apr 08 12:28:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 12:28:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.941872.1341264 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u284Q-0000NV-2m; Tue, 08 Apr 2025 12:28:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 941872.1341264; Tue, 08 Apr 2025 12: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 1u284P-0000M8-VT; Tue, 08 Apr 2025 12:28:49 +0000
Received: by outflank-mailman (input) for mailman id 941872;
 Tue, 08 Apr 2025 12:28:48 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xdvb=W2=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u284O-0000KM-HY
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 12:28:48 +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 02cc1824-1475-11f0-9ffb-bf95429c2676;
 Tue, 08 Apr 2025 14:28:44 +0200 (CEST)
Received: by mail-wr1-x435.google.com with SMTP id
 ffacd0b85a97d-391342fc1f6so4836226f8f.1
 for <xen-devel@lists.xenproject.org>; Tue, 08 Apr 2025 05:28:44 -0700 (PDT)
Received: from [10.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-39c301b42besm14584816f8f.41.2025.04.08.05.28.43
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 08 Apr 2025 05:28:43 -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: 02cc1824-1475-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744115323; x=1744720123; 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=4dCDQhQWDptOSQpAbCQON+swqOWudMZFiH3TjbxrPU0=;
        b=PbsNeB66nwt5Z1oBA7OT5cj+hsWJJFEU2iV4nwRG49K/EEbeJpaCqS/yzqBt0PnNYr
         aa3IvZoD5J1BBPXeFisRA/S3LIzhlFiZex6j3et85V8lLbaemdj6FUKSxiBCMbqlCRHE
         gmp9wYnRnx8UgbqGWIi9Nkrw2LRa29Rt01zH1jCbBmSqv565HG/DB9c+UeaMx8fVU1Yw
         EYBTtAapbb3cNBHi8Za4AwUvbNaiJTmyoEOvF9hOwQYRsk1MHgPAyq4DkwVvWe15dgr9
         8TQUmNkTLMpZgWRtgAmWKD3Rhe4f52kBf1pF8jtg4HRDZoeYQwwRmQXVto/6/Kb5cGMa
         QIUw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744115323; x=1744720123;
        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=4dCDQhQWDptOSQpAbCQON+swqOWudMZFiH3TjbxrPU0=;
        b=mpWt1Q/WQLu8Yb5cojltkfqRdIRvlBgkS8/Fq8QmNSrrcHV3wXLTd8uKPd2iXVPSn3
         BWrfvqOoNZx1VSTx38v5BJz+za/dyLjxvcn8HrLcxrzcS4Eq/zSVXU+n9Zkn+l0PPcRc
         skIkdL8obyDAcuu6Nue01+mnBigUhyNll3rvbbZrkZa+1+s1yH2Y9auhDlT8iGKKyfiw
         nfp7MCRZSTqmR1noj6Fnt34L6JlmCbFFxOOoHBQfD50ZyU+sPvFJF6Pmh0sKLvI6/MRX
         usWHOE7W9v839U+91bIdnGUURLEoLgsafIzDrgZHbl0DtqzMTgX/WLilWX9422AfaKk5
         4Obw==
X-Gm-Message-State: AOJu0YyUOYciy2diYiyTJpa+CGEscQevI7KLxlwqPZIBvPFogKAj5H0N
	IAUHMZZm0MvAdqmQEvgWWquRQ0UZdGGF7jr5gREfWpWYYUL22PHQ0DWkeZ94Zon7m4yaSjyHE7g
	=
X-Gm-Gg: ASbGncsbyaOuJcio5L4IGHQ/Z5tY10TwYxSZ1u1eyo/DVm18Y8fMlrFAouW0VOYyuUN
	GWQYcPLdlOvICke0+dVZTwiq0phhP6ay5vPBoSahWYM8pPPTEwlxFFZ2q54qPpajAtY/AOYGU/L
	8Z1cyh6ol535Dc0A8btqFWtp6eR4LOMep/e6HfhRq18hQSoF6UoQA20yLcvfYPB02bsedHkWe6A
	zPDNUzWcSXCU7M0qkXTFb4sys4mbyDTuqxLCTaGM3doP6AQ4zAgjrfXN82N4QDvygDyJVM7aMUu
	oSU4RaNos/ugbF5zmc3aWNH6GYS4h9MkQREMwvAU/ezGN5dv2/0bmg/v5L6lfxd1QWQJU/wLqaa
	8bdMe2WUWN0DeZ8SCFlg405QBmpcghQ==
X-Google-Smtp-Source: AGHT+IGc8wmmahf526OeOYgrBUQ2FhK07qOOMSd+0TvmGLrGPOi5CE55xp6Ksw8GxeXPf0YjT0cgfQ==
X-Received: by 2002:a05:6000:228a:b0:39c:30d9:3b5c with SMTP id ffacd0b85a97d-39d0de67b78mr14094928f8f.39.1744115323517;
        Tue, 08 Apr 2025 05:28:43 -0700 (PDT)
Message-ID: <779957ca-3250-4b33-ac1d-ace1dcdaafc0@suse.com>
Date: Tue, 8 Apr 2025 14:28:42 +0200
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 check for AVX512-4FMAPS
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+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

Use of Xeon Phi features was dropped earlier on; this one was overlooked.

Fixes: 85191cf32180 ("x86: drop Xeon Phi support")
Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
In principle it looks as if we could now drop all of this checking, as
gcc5 supports all of the features we check for. AVX512-4FMAPS is an
example though where checking helps, as this and other Xeon Phi features
were supported by an intermediate range of gcc versions.

--- a/tools/tests/x86_emulator/Makefile
+++ b/tools/tests/x86_emulator/Makefile
@@ -105,7 +105,7 @@ TARGET-$(shell echo 'int i;' | $(CC) -x
 endef
 
 ISA := bmi bmi2 tbm sse4.1 sse4.2 sse4a avx avx2 f16c
-ISA += $(addprefix avx512,f bw dq 4fmaps)
+ISA += $(addprefix avx512,f bw dq)
 $(foreach isa,$(ISA),$(eval $(call isa-check-cc,$(isa))))
 
 # Also explicitly check for {evex} pseudo-prefix support, which got introduced


From xen-devel-bounces@lists.xenproject.org Tue Apr 08 12:28:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 12:28:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.941871.1341259 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u284P-0000Kf-R5; Tue, 08 Apr 2025 12:28:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 941871.1341259; Tue, 08 Apr 2025 12:28: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 1u284P-0000KY-NG; Tue, 08 Apr 2025 12:28:49 +0000
Received: by outflank-mailman (input) for mailman id 941871;
 Tue, 08 Apr 2025 12:28: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=83+A=W2=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1u284N-0000KN-MS
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 12:28:47 +0000
Received: from fout-b5-smtp.messagingengine.com
 (fout-b5-smtp.messagingengine.com [202.12.124.148])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 03546e33-1475-11f0-9eaa-5ba50f476ded;
 Tue, 08 Apr 2025 14:28:45 +0200 (CEST)
Received: from phl-compute-03.internal (phl-compute-03.phl.internal
 [10.202.2.43])
 by mailfout.stl.internal (Postfix) with ESMTP id 1B1741140174;
 Tue,  8 Apr 2025 08:28:44 -0400 (EDT)
Received: from phl-mailfrontend-01 ([10.202.2.162])
 by phl-compute-03.internal (MEProxy); Tue, 08 Apr 2025 08:28:44 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue,
 8 Apr 2025 08:28: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: 03546e33-1475-11f0-9eaa-5ba50f476ded
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=fm2; t=1744115323;
	 x=1744201723; bh=A59KF7piw/VwMYMnYrIG0UZhvm3iMNK9GHVvAL+gTXc=; b=
	oktU+xWniTHyiv7xjEKZL29ngPXJ5m5iXqP3CvHbkFgsRk834y62vpoU06NkEREN
	pOovBG0WnLJVxiw57rixJEcwOl3/xzVP2aaZ1f5ow5/8wQI3M0mGxDABiYaX1Gp7
	9aQMZf1hiirhKKS1MLP1Fayh1k6+Wt7myh9aNz5oCjg/GeWx5UNKmD/hUo2UCDE2
	LiiMdH4UIdd0rqiRfOO8pCULByBJtdglm/5oj7JUYKe75HDBshvDCXRDh2ObSGeL
	YjpD6xWdigqMCwXnvIDuKlzNXBbhotrZsp87em1FoSz+D/bdQpyVfptDyyVqLvzY
	m/3C6QNpF7jA2prKcN+h5A==
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=fm2; t=
	1744115323; x=1744201723; bh=A59KF7piw/VwMYMnYrIG0UZhvm3iMNK9GHV
	vAL+gTXc=; b=HRnGjs+S0ZBe3rA+8Ml79NYMJHUSFDoVNC2IW4Q30oDyNLAPRYO
	tYmSNSlfzeuYZSF2aZfg2POISwFQrmDBPXxeHo5inOW1xG0c5YjEiUZuQicT+hhp
	YJSOBUelKv5AbrP01HIrmitbWBxIR9FH8sgy/khKR8zFp7jE4akfGssgEjDGUw28
	cg2TD6SeNo/wI/yBJrY3xtUArheRJlrfQ5dVC6TtVswJI80v/FOhXinpH/JzyI+w
	TKEy9+gNfRtDDZkQriudbeHXG6N3hW4QP0gjjf2wUMCKc4bnlgVka3Qk2HtrOEZK
	z8SAVQOQqSh1Qq89DRWXvdEJ4H6Vr9BxLjQ==
X-ME-Sender: <xms:exb1Z_HBKcAjzNC1bbVqalOOQ35IsLayRB5EgvSyn-oHvPQ6BI5tNA>
    <xme:exb1Z8U1KGaLcwknVXNnWvH-_ap0P78WE28BW3AqmoslzM33CEB9PEEz75NDTV5PG
    mr9_bNlamEXgw>
X-ME-Received: <xmr:exb1ZxI7av6d8apJqsdZumnEBRbEsDFb2jdatL7bjAhYsq72_GtnNMkMxkLf_nB9i2nZr5OsGsYTZBU2iHRV-AJOjFte0uTHjg>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvtdeftdekucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
    pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
    gvnhhtshculddquddttddmnecujfgurhepfffhvfevuffkfhggtggujgesghdtreertddt
    jeenucfhrhhomhepofgrrhgvkhcuofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuc
    eomhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecu
    ggftrfgrthhtvghrnhepgfduleetfeevhfefheeiteeliefhjefhleduveetteekveettd
    dvgeeuteefjedunecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhf
    rhhomhepmhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomh
    dpnhgspghrtghpthhtohepkedpmhhouggvpehsmhhtphhouhhtpdhrtghpthhtoheprghn
    thhhohhnhidrphgvrhgrrhgusehvrghtvghsrdhtvggthhdprhgtphhtthhopegrnhgurh
    gvfidrtghoohhpvghrfeestghithhrihigrdgtohhmpdhrtghpthhtohepgigvnhdquggv
    vhgvlheslhhishhtshdrgigvnhhprhhojhgvtghtrdhorhhgpdhrtghpthhtohepshhsth
    grsggvlhhlihhniheskhgvrhhnvghlrdhorhhgpdhrtghpthhtohepmhhitghhrghlrdho
    rhiivghlsegrmhgurdgtohhmpdhrtghpthhtohepjhgsvghulhhitghhsehsuhhsvgdrtg
    homhdprhgtphhtthhopehjuhhlihgvnhesgigvnhdrohhrghdprhgtphhtthhopehrohhg
    vghrrdhprghusegtihhtrhhigidrtghomh
X-ME-Proxy: <xmx:exb1Z9G-yBkhSrcXWDLkOkYFuLSp2K-9KKpLkn18hA5cZiC5jfFvCw>
    <xmx:exb1Z1XJ2LhXLxtWwxuxqz7_9dDpyC54hjTmA6A4qHx0prp5lO9eKw>
    <xmx:exb1Z4OzckpIwusshfcPdvd912P4oXo1675WzTbZFRTAXDNZGuEPRQ>
    <xmx:exb1Z02yf0mRc9ZAbE2waUS7My--gPVvO0th8dB7XTi6C1VhIHdW7Q>
    <xmx:exb1Z7K6eLsYAw5bK4wVZmonT9Op3cu0qMDzqSWyHZL0mU3bc61ifqof>
Feedback-ID: i1568416f:Fastmail
Date: Tue, 8 Apr 2025 14:28:39 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Anthony PERARD <anthony.perard@vates.tech>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	xen-devel@lists.xenproject.org,
	Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
Subject: Re: [PATCH test-artifacts v2 14/12] scripts: build initrd cpio
Message-ID: <Z_UWeDXoj3Z2c1Db@mail-itl>
References: <cover.7da1777882774486a13e6f39ff4a2096f6b7901e.1744028549.git-series.marmarek@invisiblethingslab.com>
 <20250407123448.1520451-2-marmarek@invisiblethingslab.com>
 <a2b01279-4e67-4ce9-9752-21c16c33fe32@citrix.com>
 <04ae4edc-8ea6-489d-8485-6e45aa750607@citrix.com>
 <Z_P9y8lxB_-kEcy6@mail-itl>
 <Z_URWuh2hrIWGBGV@l14>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="zEU1nonQ0q9tffLo"
Content-Disposition: inline
In-Reply-To: <Z_URWuh2hrIWGBGV@l14>


--zEU1nonQ0q9tffLo
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Tue, 8 Apr 2025 14:28:39 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Anthony PERARD <anthony.perard@vates.tech>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	xen-devel@lists.xenproject.org,
	Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
Subject: Re: [PATCH test-artifacts v2 14/12] scripts: build initrd cpio

On Tue, Apr 08, 2025 at 12:06:51PM +0000, Anthony PERARD wrote:
> On Mon, Apr 07, 2025 at 06:31:06PM +0200, Marek Marczykowski-G=C3=B3recki=
 wrote:
> > There is one more difference: the cpio.gz contains the whole thing
> > twice. Once as rootfs for dom0 and then another as boot/initrd-domU.
> > Dropping .tar.gz is probably a good idea at some point, so I'm okay with
> > such comment added. But I imagine some future tests may benefit from
> > just one layer, which may want introducing another cpio.gz without
> > boot/initrd-domU included. In fact, even right now that might be useful
> > - for example dom0less arm64 test uses just busybox for domU rootfs, not
> > the whole archive (so with my changes dom0 rootfs has unused
> > boot/initrd-domU included).
>=20
> In such case, would it make sense to prepare several initrd.cpio.gz? A
> common one, then having overlays of files we want to add or replace to
> the initrd of spefic test. I think osstest used to do something like
> that, with command that would be:
>     cat common.cpio.gz overlay.cpio.gz > initrd.cpio.gz
>=20
> If it matter, is seem that the "file.cpio" used to be made with
> `cpio -Hnewc -o`

This is already how final initrd is constructed with my changes.
Having said that, maybe test-artifacts should not include
boot/initrd-domU in initrd.cpio.gz initially, but have a separate cpio
that has just boot/initrd-domU there. Most tests do use this domU
initrd, but since they need to concatenate something anyway, maybe
starting with two files instead of one doesn't make much difference?

So, it would be:
- initrd.cpio.gz - plain rootfs, for dom0 (or domU in dom0less tests)
- initrd-in-boot.cpio.gz - the above initrd.cpio.gz packed again as
  boot/initrd-domU

What do you think?

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmf1FngACgkQ24/THMrX
1yxZKQf/d/Rq6DXP3PX4/Z0jB84sHjT3az49EhftqOx438Ijj5IWkZn+/sHXvvwO
tTXAQ00UEb/95PXP5nBUiFTOxlIRm62WUWG6QHH50NV0+AePmvY2CsupJ1m3YT7H
O9Q/5TdalMVYu6FgWuvGiOd+89fSsRdy9lB2vPqy2YqoafaEovQXVYhmOl9BYAHj
KhE2hE0MB33GAkYQ1/XvLi1j+Dlxy1JTEQLaJiTRpHqH3rKR5xyV8y3fV0MNExH+
A0usg8HLhmm3z7bgx1+VCuhIEdMPrJpwjX8IMuCwQ+JqUo1PVARTJUsJ0UEHtWw0
rJcU7UBXjF5iB/hhJrBxKYNH/28Ndg==
=X3/i
-----END PGP SIGNATURE-----

--zEU1nonQ0q9tffLo--


From xen-devel-bounces@lists.xenproject.org Tue Apr 08 12:34:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 12:34:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.941900.1341278 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u28AG-0003hq-T6; Tue, 08 Apr 2025 12:34:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 941900.1341278; Tue, 08 Apr 2025 12:34: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 1u28AG-0003hj-Qa; Tue, 08 Apr 2025 12:34:52 +0000
Received: by outflank-mailman (input) for mailman id 941900;
 Tue, 08 Apr 2025 12:34: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=xdvb=W2=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u28AG-0003hd-50
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 12:34:52 +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 dcf23cba-1475-11f0-9ffb-bf95429c2676;
 Tue, 08 Apr 2025 14:34:50 +0200 (CEST)
Received: by mail-wr1-x433.google.com with SMTP id
 ffacd0b85a97d-39c1efbefc6so3208077f8f.1
 for <xen-devel@lists.xenproject.org>; Tue, 08 Apr 2025 05:34:50 -0700 (PDT)
Received: from [10.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-39c301b69fdsm14637771f8f.48.2025.04.08.05.34.48
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 08 Apr 2025 05:34:49 -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: dcf23cba-1475-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744115689; x=1744720489; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ermBY3TVvJy03erDuqqORv1m+3hsWOgq7sPw4FotG/Y=;
        b=HVO/ITUgR/l5bXiRpIyPB1zqsFqsid3voKccxpd2LToWgoTt8daJ21IDoXOKUDptkY
         Tb0JuWwre6Zmi+2RLRNZoUcAiiAmssPbuUaxjnlg8yWy+pOYBtTvcV8qIcDKYfEeXCYq
         mU6P8YqKvRazOE3CUQ68PIvYPj6XVbUEGUjhfjP461B4vfaXZ/ViceQHSPuw/sXqqO8y
         kgCq0T86QdXiGU6snLU1SH8oW45wu4A6pLxrln09xXEYi6x7J4Twp8g77rzPEj7Xr6Ke
         JzZ+lO0grrwEv8OrHkHk/bb0jgcUR/4SkAecLENz10KSsmIi4rNnhtEh72eKD7/8bfyE
         I/8g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744115689; x=1744720489;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ermBY3TVvJy03erDuqqORv1m+3hsWOgq7sPw4FotG/Y=;
        b=fK2Qb81aXS2YADrMYZ14auXqMQaWhAiraf1DkRcAi7q9QMlYYqAW3EMA7myDkAbGyA
         dWp8JLqn6Fdbz58i2Ei3UDx/y4hrWtd7FVSkibfsMnLbrC02CcTA2tH5tmTNk9Ukvh+A
         f+/KCIBw35oql12S4Oj2VRjhfyKOxg/Txci82bj4E+gbETnBZtlbNDbUMvT68eyFDkKz
         8J+leDehh5jWdjaDpwYplgSAHufN1xQqWyYbfDRAKLswvLQwKA+DDAlgZxoAW6pojwvY
         hOGI9ThVA3jxCFdczcXj7XydmfHzXzl/tm8f0NInNhhaB9yb8yiLTUKPCr+afIwRIkut
         rACQ==
X-Forwarded-Encrypted: i=1; AJvYcCV+BgsEVtgLg3eNo4Z3aZ+GGTiNqtIsDd3ejy+Pnd6p/aHCGZkuEn/h5vmhhp8oyNYlyJYgilWEr7g=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzQlARKlbrJR9O8m7huUKtSxLQe9Pyvgt2242bE7LsV9ZNu5KPY
	RBPnzLSM2hyrpFTWne5HBc9UwPrk9BgV4khtwJoTVITLh1J2qofurfWFx/ujQA==
X-Gm-Gg: ASbGncuduhNU4AY6NyuHX7CUAJpJ1jmL2tyzsTYG1vloeXi0X+utGwFUlHXY8HXZdck
	DM6KLZoP9cbz0l+PfRn46Ed6d7NYqXZAMWEW+whdmp4yz/p9cRGWg49vgvA1FzntK2b2BZLERWH
	OwLQbBWM2vPVJTDazWuQTep44oVTOc/5CWK8JKilYANDZVJJbAUDBngb8nLJkP267hlxkLLXp6R
	9cK3XnqZqTV4kXvOfeiLtNry0JFj1m5KGUQmVIgWHTu4at56rorEN626QEDC/0bsAB3iRzrZxpm
	3ICAiPml/M3S/K9/TWCQERrR5AI5VsoOMok2w1nl3Xgai8r+NOIIdeo90LFRmW1ytCwYiYpELkc
	t7aKtnHy8TPn9TnLLlzY/bHNoF4tAyA==
X-Google-Smtp-Source: AGHT+IEeCXVdEWheqdxXqqME0AZH0c1zgZ7oaW8crR0spp0xTFbjbmNovOUo0ZDsOFTQSA1BsRG+Vw==
X-Received: by 2002:a5d:59ad:0:b0:391:1139:2653 with SMTP id ffacd0b85a97d-39d6fd06913mr8733424f8f.52.1744115689381;
        Tue, 08 Apr 2025 05:34:49 -0700 (PDT)
Message-ID: <3364268c-41c9-47ed-a6d1-b8ee04118a46@suse.com>
Date: Tue, 8 Apr 2025 14:34:48 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 02/11] x86/mkreloc: fix obtaining PE image base address
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, Andrew Cooper
 <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20250401130840.72119-1-roger.pau@citrix.com>
 <20250401130840.72119-3-roger.pau@citrix.com>
 <6c37ad18-a830-453e-a7ff-fb4978e3f0df@suse.com>
 <a14a7a42-cf7e-463b-a87d-e302ce32371b@suse.com>
 <Z_UGr0A8LetHDJvB@macbook.lan>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <Z_UGr0A8LetHDJvB@macbook.lan>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 08.04.2025 13:21, Roger Pau Monné wrote:
> On Wed, Apr 02, 2025 at 09:46:53AM +0200, Jan Beulich wrote:
>> x86/EFI: correct mkreloc header (field) reading
>>
>> With us now reading the full combined optional and NT headers, the
>> subsequent reading of (and seeking to) NT header fields is wrong. Since
>> PE32 and PE32+ NT headers are different anyway (beyond the image base
>> oddity extending across both headers), switch to using a union. This
>> allows to fetch the image base more directly then.
>>
>> Additionally add checking to map_section(), which would have caught at
>> least the wrong (zero) image size that we previously used.
>>
>> Fixes: f7f42accbbbb ("x86/efi: Use generic PE/COFF structures")
>> Reported-by: Roger Pau Monné <roger.pau@citrix.com>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>> ---
>> Of the two checks added to map_section(), the 1st ends up being largely
>> redundant with the 2nd one. Should we use just the latter?
>>
>> Also sanity checking the image base would be possible, but more
>> cumbersome if we wanted to check moret than just "is in high half of
>> address space). Therefore I've left out doing so.
> 
> We could likely check that image_base >= XEN_VIRT_START?  However I'm
> not sure how easy it is to make XEN_VIRT_START available to mkreloc.

This is precisely why I said "more cumbersome".

>> @@ -54,31 +56,40 @@ static unsigned int load(const char *nam
>>  
>>      if ( lseek(in, mz_hdr.peaddr, SEEK_SET) < 0 ||
>>           read(in, &pe_hdr, sizeof(pe_hdr)) != sizeof(pe_hdr) ||
>> -         read(in, &pe32_opt_hdr, sizeof(pe32_opt_hdr)) != sizeof(pe32_opt_hdr) ||
>> -         read(in, &base, sizeof(base)) != sizeof(base) ||
>> -         /*
>> -          * Luckily the image size field lives at the
>> -          * same offset for both formats.
>> -          */
>> -         lseek(in, 24, SEEK_CUR) < 0 ||
>> -         read(in, image_size, sizeof(*image_size)) != sizeof(*image_size) )
>> +         (read(in, &pe32_opt_hdr.pe, sizeof(pe32_opt_hdr.pe)) !=
>> +          sizeof(pe32_opt_hdr.pe)) )
>>      {
>>          perror(name);
>>          exit(3);
>>      }
>>  
>>      switch ( (pe_hdr.magic == PE_MAGIC &&
>> -              pe_hdr.opt_hdr_size > sizeof(pe32_opt_hdr)) *
>> -              pe32_opt_hdr.magic )
>> +              pe_hdr.opt_hdr_size > sizeof(pe32_opt_hdr.pe)) *
>> +              pe32_opt_hdr.pe.magic )
>>      {
>>      case PE_OPT_MAGIC_PE32:
>>          *width = 32;
>> -        *image_base = base;
>> +        *image_base = pe32_opt_hdr.pe.image_base;
>> +        *image_size = pe32_opt_hdr.pe.image_size;
>>          break;
>>      case PE_OPT_MAGIC_PE32PLUS:
>> -        *width = 64;
>> -        *image_base = ((uint64_t)base << 32) | pe32_opt_hdr.data_base;
>> -        break;
>> +        if ( pe_hdr.opt_hdr_size > sizeof(pe32_opt_hdr.pep) )
>> +        {
>> +            if ( read(in,
>> +                      &pe32_opt_hdr.pe + 1,
>> +                      sizeof(pe32_opt_hdr.pep) - sizeof(pe32_opt_hdr.pe)) !=
>> +                 sizeof(pe32_opt_hdr.pep) - sizeof(pe32_opt_hdr.pe) )
>> +            {
>> +                perror(name);
>> +                exit(3);
>> +            }
>> +
>> +            *width = 64;
>> +            *image_base = pe32_opt_hdr.pep.image_base;
>> +            *image_size = pe32_opt_hdr.pep.image_size;
>> +            break;
>> +        }
> 
> Since you are already refactoring much of this code, won't it be
> clearer to fetch the header inside of the switch cases.  So that
> there's a single read call for each header type?

Except that the switch() itself uses not only pe_hdr, but also
pe32_opt_hdr. That could be re-arranged, but I'm a little reluctant to
do so.

>> @@ -108,11 +119,28 @@ static unsigned int load(const char *nam
>>  static long page_size;
>>  
>>  static const void *map_section(const struct section_header *sec, int in,
>> -                               const char *name)
>> +                               const char *name, uint_fast32_t image_size)
>>  {
>>      const char *ptr;
>>      unsigned long offs;
>>  
>> +    if ( sec->rva > image_size )
> 
> Strictly, should this be >=, as rva is a position, and image_size is a
> size, so the last allowed bit would be image_size - 1?

Yes and no. No in so far as this would be wrong for zero-size sections.
Yet see also the first of the two post-commit-message remarks.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 08 12:35:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 12:35:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.941911.1341289 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u28Au-0004Bk-5s; Tue, 08 Apr 2025 12:35:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 941911.1341289; Tue, 08 Apr 2025 12:35: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 1u28Au-0004Bd-2B; Tue, 08 Apr 2025 12:35:32 +0000
Received: by outflank-mailman (input) for mailman id 941911;
 Tue, 08 Apr 2025 12:35: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=Ii8P=W2=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1u28As-0003x9-Hu
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 12:35:30 +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 f4a65b05-1475-11f0-9eaa-5ba50f476ded;
 Tue, 08 Apr 2025 14:35:29 +0200 (CEST)
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 91E3121187;
 Tue,  8 Apr 2025 12:35:28 +0000 (UTC)
Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 1D50213691;
 Tue,  8 Apr 2025 12:35:28 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap1.dmz-prg2.suse.org with ESMTPSA id YnGoBRAY9Wf2IQAAD6G6ig
 (envelope-from <jgross@suse.com>); Tue, 08 Apr 2025 12:35: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: f4a65b05-1475-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1744115728; 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=t3O/Nr7rI8B8JB64yGo0yQESPbYj98bgGdYU6htvRo8=;
	b=FenUcLSuIeeo1O5yIfI9b3F7tcyR9bAyAa15Vk9lIzwgE6V+y9SjtAowcheuPfPKcOs5So
	qc/BzV30Gjacsl1hxKkUvSpvYZLjPqSbbey6/p7DdY1GG6UdzznIBLFEi0QX+zfUO2WUlI
	+iB77sW4QIXih99koBrrIrhdUSF1Mlg=
Authentication-Results: smtp-out1.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1744115728; 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=t3O/Nr7rI8B8JB64yGo0yQESPbYj98bgGdYU6htvRo8=;
	b=FenUcLSuIeeo1O5yIfI9b3F7tcyR9bAyAa15Vk9lIzwgE6V+y9SjtAowcheuPfPKcOs5So
	qc/BzV30Gjacsl1hxKkUvSpvYZLjPqSbbey6/p7DdY1GG6UdzznIBLFEi0QX+zfUO2WUlI
	+iB77sW4QIXih99koBrrIrhdUSF1Mlg=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Community Manager <community.manager@xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Nick Rosbrook <rosbrookn@gmail.com>,
	George Dunlap <gwd@xenproject.org>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Samuel Thibault <samuel.thibault@ens-lyon.org>
Subject: [PATCH v2 0/6] remove qemu-traditional
Date: Tue,  8 Apr 2025 14:35:18 +0200
Message-ID: <20250408123526.14613-1-jgross@suse.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -1.30
X-Spamd-Result: default: False [-1.30 / 50.00];
	BAYES_HAM(-3.00)[99.99%];
	SUSPICIOUS_RECIPS(1.50)[];
	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];
	DBL_BLOCKED_OPENRESOLVER(0.00)[imap1.dmz-prg2.suse.org:helo,suse.com:mid];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	TAGGED_RCPT(0.00)[];
	ARC_NA(0.00)[];
	RCPT_COUNT_TWELVE(0.00)[15];
	MIME_TRACE(0.00)[0:+];
	FREEMAIL_CC(0.00)[suse.com,gmail.com,xenproject.org,citrix.com,vates.tech,amd.com,xen.org,kernel.org,invisiblethingslab.com,ens-lyon.org];
	RCVD_TLS_ALL(0.00)[];
	FROM_HAS_DN(0.00)[];
	RCVD_COUNT_TWO(0.00)[2];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	FROM_EQ_ENVFROM(0.00)[];
	FUZZY_BLOCKED(0.00)[rspamd.com];
	TO_DN_SOME(0.00)[];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	FREEMAIL_ENVRCPT(0.00)[gmail.com]
X-Spam-Flag: NO
X-Spam-Level: 

Remove the qemu-traditional support. This includes the Mini-OS
based ioemu-stubdom.

Don't remove ROMBIOS for now, as it can be used with qemu (XenServer
is doing that).

After adding the series a run of autoconf should be done.

Changes in V2:
- addressed comments

Juergen Gross (6):
  SUPPORT.md: make Linux based stubdom fully supported
  docs: remove qemu-traditional support from documentation
  tools: remove support for running a guest with qemu-traditional
  tools: remove qemu-traditional
  stubdom: remove ancient stubdom-dm script
  build: don't require full tools build for building stubdoms

 .gitignore                                    |   3 -
 CHANGELOG.md                                  |   2 +
 Config.mk                                     |  24 --
 INSTALL                                       |  12 -
 MAINTAINERS                                   |   4 -
 Makefile                                      |   2 +-
 README                                        |   2 +-
 SUPPORT.md                                    |  21 +-
 config/Tools.mk.in                            |   1 -
 docs/man/xl-pci-configuration.5.pod           |   4 +-
 docs/man/xl.cfg.5.pod.in                      |  46 +--
 docs/misc/stubdom.txt                         |  52 ---
 docs/misc/xenstore-paths.pandoc               |   3 +-
 docs/process/branching-checklist.txt          |   4 -
 docs/process/release-technician-checklist.txt |   3 -
 docs/process/xen-release-management.pandoc    |   2 +-
 stubdom/Makefile                              |  84 +----
 stubdom/configure                             |  89 -----
 stubdom/configure.ac                          |  15 -
 stubdom/ioemu-minios.cfg                      |   6 -
 stubdom/stubdom-dm                            | 182 ----------
 tools/Makefile                                |  58 ----
 tools/Rules.mk                                |   3 -
 tools/config.h.in                             |   3 -
 tools/configure                               |  42 +--
 tools/configure.ac                            |  21 +-
 tools/firmware/hvmloader/pci.c                |  19 +-
 tools/firmware/hvmloader/util.c               |   9 +-
 tools/golang/xenlight/types.gen.go            |   1 -
 tools/libacpi/mk_dsdt.c                       | 177 ++--------
 tools/libs/light/libxl_create.c               |  60 +---
 tools/libs/light/libxl_disk.c                 |   7 -
 tools/libs/light/libxl_dm.c                   | 320 +-----------------
 tools/libs/light/libxl_dom.c                  |  10 -
 tools/libs/light/libxl_dom_save.c             | 140 --------
 tools/libs/light/libxl_dom_suspend.c          |  65 ----
 tools/libs/light/libxl_domain.c               |  15 -
 tools/libs/light/libxl_internal.c             |   6 +-
 tools/libs/light/libxl_internal.h             |   5 +-
 tools/libs/light/libxl_pci.c                  | 183 ----------
 tools/libs/light/libxl_stream_write.c         |   4 -
 tools/libs/light/libxl_types.idl              |   1 -
 tools/python/xen/migration/libxl.py           |   2 -
 tools/xl/xl_parse.c                           |   5 +-
 44 files changed, 81 insertions(+), 1636 deletions(-)
 delete mode 100644 stubdom/ioemu-minios.cfg
 delete mode 100644 stubdom/stubdom-dm

-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 08 12:35:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 12:35:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.941912.1341299 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u28B0-0004SR-Bd; Tue, 08 Apr 2025 12:35:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 941912.1341299; Tue, 08 Apr 2025 12:35:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u28B0-0004SJ-8R; Tue, 08 Apr 2025 12:35:38 +0000
Received: by outflank-mailman (input) for mailman id 941912;
 Tue, 08 Apr 2025 12:35: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=Ii8P=W2=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1u28Ay-0003hd-Ds
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 12:35:36 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f7a6772c-1475-11f0-9ffb-bf95429c2676;
 Tue, 08 Apr 2025 14:35:34 +0200 (CEST)
Received: from imap1.dmz-prg2.suse.org (unknown [10.150.64.97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id 6F6EB1F452;
 Tue,  8 Apr 2025 12:35:34 +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 064B013A84;
 Tue,  8 Apr 2025 12:35:34 +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 h6EbABYY9WcEIgAAD6G6ig
 (envelope-from <jgross@suse.com>); Tue, 08 Apr 2025 12:35: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: f7a6772c-1475-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1744115734; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=NwwBq4WbUldlcLFAl4DtSUZ57BV3JO4VtgUASkd/5Hg=;
	b=eIW5nNCEWDvggtvyO3h8Doij3riwIWTMF4iNvrzwG6Yyyorc8iMvgl5TqtthjwJZYkd6z9
	40jIzUe1gd8+MS5G/Ap8+nU+runKsCG/p3ENbhwzdZIP3eIC5f82KA0Hz2QYEvtPzOcw8D
	bWOc8naJ6Oic4xO0SBbNvvj0h9UfZxU=
Authentication-Results: smtp-out2.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1744115734; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=NwwBq4WbUldlcLFAl4DtSUZ57BV3JO4VtgUASkd/5Hg=;
	b=eIW5nNCEWDvggtvyO3h8Doij3riwIWTMF4iNvrzwG6Yyyorc8iMvgl5TqtthjwJZYkd6z9
	40jIzUe1gd8+MS5G/Ap8+nU+runKsCG/p3ENbhwzdZIP3eIC5f82KA0Hz2QYEvtPzOcw8D
	bWOc8naJ6Oic4xO0SBbNvvj0h9UfZxU=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Community Manager <community.manager@xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 1/6] SUPPORT.md: make Linux based stubdom fully supported
Date: Tue,  8 Apr 2025 14:35:19 +0200
Message-ID: <20250408123526.14613-2-jgross@suse.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20250408123526.14613-1-jgross@suse.com>
References: <20250408123526.14613-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -5.30
X-Spamd-Result: default: False [-5.30 / 50.00];
	REPLY(-4.00)[];
	BAYES_HAM(-3.00)[99.99%];
	SUSPICIOUS_RECIPS(1.50)[];
	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];
	RCVD_TLS_ALL(0.00)[];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	ARC_NA(0.00)[];
	TAGGED_RCPT(0.00)[];
	MIME_TRACE(0.00)[0:+];
	RCPT_COUNT_SEVEN(0.00)[11];
	FUZZY_BLOCKED(0.00)[rspamd.com];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	FROM_HAS_DN(0.00)[];
	FREEMAIL_CC(0.00)[suse.com,gmail.com,xenproject.org,citrix.com,vates.tech,amd.com,xen.org,kernel.org];
	TO_DN_SOME(0.00)[];
	FROM_EQ_ENVFROM(0.00)[];
	RCVD_COUNT_TWO(0.00)[2];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:mid,suse.com:email,imap1.dmz-prg2.suse.org:helo];
	FREEMAIL_ENVRCPT(0.00)[gmail.com]
X-Spam-Flag: NO
X-Spam-Level: 

All patches needed for running with a Linux stubdom device model are
in the tree and QubesOS is using and testing Linux stubdoms nowadays.

Switch support from "Tech Preview" to "Supported, with caveats".

Signed-off-by: Juergen Gross <jgross@suse.com>
---
V2:
- switch to "Supported, with caveats" (security team)
---
 CHANGELOG.md | 1 +
 SUPPORT.md   | 5 ++++-
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 8f6afa5c85..ce4fcf2feb 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -10,6 +10,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
  - The minimum toolchain requirements have increased for some architectures:
    - For x86, GCC 5.1 and Binutils 2.25, or Clang/LLVM 11
    - For ARM32 and ARM64, GCC 5.1 and Binutils 2.25
+ - Linux based device model stubdomains are now fully supported.
 
 ### Added
  - On x86:
diff --git a/SUPPORT.md b/SUPPORT.md
index 91cb6f8ed2..e8fd0c251e 100644
--- a/SUPPORT.md
+++ b/SUPPORT.md
@@ -260,7 +260,10 @@ Go (golang) bindings for libxl
 
 Support for running qemu-xen device model in a linux stubdomain.
 
-    Status: Tech Preview
+    Status: Supported, with caveats
+
+Any issue in the stubdomain affecting only the guest it is servicing
+or itself will not be regarded a security issue.
 
 ## Xenstore
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 08 12:35:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 12:35:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.941914.1341309 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u28B5-0004m0-K2; Tue, 08 Apr 2025 12:35:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 941914.1341309; Tue, 08 Apr 2025 12: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 1u28B5-0004lo-Fg; Tue, 08 Apr 2025 12:35:43 +0000
Received: by outflank-mailman (input) for mailman id 941914;
 Tue, 08 Apr 2025 12: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=Ii8P=W2=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1u28B3-0003x9-MG
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 12:35:41 +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 fb1acac5-1475-11f0-9eaa-5ba50f476ded;
 Tue, 08 Apr 2025 14:35:40 +0200 (CEST)
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 3B83F21185;
 Tue,  8 Apr 2025 12:35:40 +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 CD70313691;
 Tue,  8 Apr 2025 12:35:39 +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 CMuDMBsY9WcZIgAAD6G6ig
 (envelope-from <jgross@suse.com>); Tue, 08 Apr 2025 12:35: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: fb1acac5-1475-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1744115740; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=IlGbR3+ybOA2wVWobb/A8JFqNw2HepqsyFvXgIFAVL4=;
	b=WSGI5uK/lPm2pOlSiOgKEk2k7RthnmERq4+pb5fZHaNV2EUUsKu8vuRyOP/3HOumcPwOfT
	0UjD/LYe/dVXhmv9pGXh9czh7jYrsVTDZ7G4dQGfWdGYLdTWqumUuSX6DnP4HWR6ajbF8r
	2PG8xghAJHJbK4Zkkpwm/j35pTNEXf8=
Authentication-Results: smtp-out1.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1744115740; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=IlGbR3+ybOA2wVWobb/A8JFqNw2HepqsyFvXgIFAVL4=;
	b=WSGI5uK/lPm2pOlSiOgKEk2k7RthnmERq4+pb5fZHaNV2EUUsKu8vuRyOP/3HOumcPwOfT
	0UjD/LYe/dVXhmv9pGXh9czh7jYrsVTDZ7G4dQGfWdGYLdTWqumUuSX6DnP4HWR6ajbF8r
	2PG8xghAJHJbK4Zkkpwm/j35pTNEXf8=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 2/6] docs: remove qemu-traditional support from documentation
Date: Tue,  8 Apr 2025 14:35:20 +0200
Message-ID: <20250408123526.14613-3-jgross@suse.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20250408123526.14613-1-jgross@suse.com>
References: <20250408123526.14613-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -6.80
X-Spamd-Result: default: False [-6.80 / 50.00];
	REPLY(-4.00)[];
	BAYES_HAM(-3.00)[100.00%];
	MID_CONTAINS_FROM(1.00)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	R_MISSING_CHARSET(0.50)[];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	MIME_GOOD(-0.10)[text/plain];
	RCVD_COUNT_TWO(0.00)[2];
	ARC_NA(0.00)[];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	FROM_HAS_DN(0.00)[];
	TO_DN_SOME(0.00)[];
	MIME_TRACE(0.00)[0:+];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	FROM_EQ_ENVFROM(0.00)[];
	RCPT_COUNT_SEVEN(0.00)[9];
	FUZZY_BLOCKED(0.00)[rspamd.com];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:mid,suse.com:email,imap1.dmz-prg2.suse.org:helo];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	R_RATELIMIT(0.00)[to_ip_from(RLme6mccyyenyxxgt1bwti8hnf)];
	RCVD_TLS_ALL(0.00)[]
X-Spam-Flag: NO
X-Spam-Level: 

In preparation to no longer support qemu-traditional (including
qemu-stubdom), remove it from documentation.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
V2:
- mention "qemu_xen_traditional" in xenstore-paths.pandoc as a removed
  device model variant (Andrew Cooper)
- don't drop Config.mk related documentation for QEMU_TRADITIONAL_REVISION
  (Jan Beulich)
---
 docs/man/xl-pci-configuration.5.pod           |  4 +-
 docs/man/xl.cfg.5.pod.in                      | 46 +++-------------
 docs/misc/stubdom.txt                         | 52 -------------------
 docs/misc/xenstore-paths.pandoc               |  3 +-
 docs/process/branching-checklist.txt          |  3 --
 docs/process/release-technician-checklist.txt |  2 -
 docs/process/xen-release-management.pandoc    |  2 +-
 7 files changed, 13 insertions(+), 99 deletions(-)

diff --git a/docs/man/xl-pci-configuration.5.pod b/docs/man/xl-pci-configuration.5.pod
index ec76f590b7..0691f06ad3 100644
--- a/docs/man/xl-pci-configuration.5.pod
+++ b/docs/man/xl-pci-configuration.5.pod
@@ -111,8 +111,8 @@ if this parameter is not specified.
 =item Description
 
 By default pciback only allows PV guests to write "known safe" values
-into PCI configuration space, likewise QEMU (both qemu-xen and
-qemu-xen-traditional) imposes the same constraint on HVM guests.
+into PCI configuration space, likewise QEMU imposes the same constraint
+on HVM guests.
 However, many devices require writes to other areas of the configuration space
 in order to operate properly.  This option tells the backend (pciback or QEMU)
 to allow all writes to the PCI configuration space of this device by this
diff --git a/docs/man/xl.cfg.5.pod.in b/docs/man/xl.cfg.5.pod.in
index 7339c44efd..ccf0c58895 100644
--- a/docs/man/xl.cfg.5.pod.in
+++ b/docs/man/xl.cfg.5.pod.in
@@ -895,12 +895,6 @@ is used.
 Specifies the path to the X authority file that should be used to
 connect to the X server when the B<sdl> option is used.
 
-=item B<opengl=BOOLEAN>
-
-Enable OpenGL acceleration of the SDL display. Only effects machines
-using B<device_model_version="qemu-xen-traditional"> and only if the
-device-model was compiled with OpenGL support. The default is 0 (disabled).
-
 =item B<keymap=LANG>
 
 Configure the keymap to use for the keyboard associated with this
@@ -1215,17 +1209,14 @@ working graphics passthrough. See the XenVGAPassthroughTestedAdapters
 L<https://wiki.xenproject.org/wiki/XenVGAPassthroughTestedAdapters> wiki page
 for graphics cards currently supported by B<gfx_passthru>.
 
-B<gfx_passthru> is currently supported both with the qemu-xen-traditional
-device-model and upstream qemu-xen device-model.
+B<gfx_passthru> is currently supported with the upstream qemu-xen device-model.
 
 When given as a boolean the B<gfx_passthru> option either disables graphics
 card passthrough or enables autodetection.
 
 When given as a string the B<gfx_passthru> option describes the type
 of device to enable. Note that this behavior is only supported with the
-upstream qemu-xen device-model. With qemu-xen-traditional IGD (Intel Graphics
-Device) is always assumed and options other than autodetect or explicit IGD
-will result in an error.
+upstream qemu-xen device-model.
 
 Currently, valid values for the option are:
 
@@ -1903,10 +1894,7 @@ it may be useful to request a different one, like UEFI.
 
 =item B<rombios>
 
-Loads ROMBIOS, a 16-bit x86 compatible BIOS. This is used by default
-when B<device_model_version=qemu-xen-traditional>. This is the only BIOS
-option supported when B<device_model_version=qemu-xen-traditional>. This is
-the BIOS used by all previous Xen versions.
+Loads ROMBIOS, a 16-bit x86 compatible BIOS.
 
 =item B<seabios>
 
@@ -1926,8 +1914,7 @@ Override the path to the blob to be used as BIOS. The blob provided here MUST
 be consistent with the B<bios=> which you have specified. You should not
 normally need to specify this option.
 
-This option does not have any effect if using B<bios="rombios"> or
-B<device_model_version="qemu-xen-traditional">.
+This option does not have any effect if using B<bios="rombios">.
 
 =item B<pae=BOOLEAN>
 
@@ -2516,15 +2503,10 @@ Sets the amount of RAM which the emulated video card will contain,
 which in turn limits the resolutions and bit depths which will be
 available.
 
-When using the qemu-xen-traditional device-model, the default as well as
-minimum amount of video RAM for stdvga is 8 MB, which is sufficient for e.g.
-1600x1200 at 32bpp. For the upstream qemu-xen device-model, the default and
-minimum is 16 MB.
+When using stdvga, the default and minimum is 16 MB.
 
-When using the emulated Cirrus graphics card (B<vga="cirrus">) and the
-qemu-xen-traditional device-model, the amount of video RAM is fixed at 4 MB,
-which is sufficient for 1024x768 at 32 bpp. For the upstream qemu-xen
-device-model, the default and minimum is 8 MB.
+When using the emulated Cirrus graphics card (B<vga="cirrus">), the
+default and minimum is 8 MB.
 
 For QXL vga, both the default and minimal are 128MB.
 If B<videoram> is set less than 128MB, an error will be triggered.
@@ -2590,12 +2572,6 @@ B<qemu(1)> manpage. The default is B<en-us>.
 Specifies that the display should be presented via an X window (using
 Simple DirectMedia Layer). The default is (0) not enabled.
 
-=item B<opengl=BOOLEAN>
-
-Enable OpenGL acceleration of the SDL display. Only effects machines
-using B<device_model_version="qemu-xen-traditional"> and only if the
-device-model was compiled with OpenGL support. Default is (0) false.
-
 =item B<nographic=BOOLEAN>
 
 Enable or disable the virtual graphics device.  The default is to
@@ -2925,11 +2901,6 @@ Valid values are:
 Use the device-model merged into the upstream QEMU project.
 This device-model is the default for Linux dom0.
 
-=item B<qemu-xen-traditional>
-
-Use the device-model based upon the historical Xen fork of QEMU.
-This device-model is still the default for NetBSD dom0.
-
 =back
 
 It is recommended to accept the default value for new guests.  If
@@ -2949,8 +2920,7 @@ to specify this option.
 Override the path to the kernel image used as device-model stubdomain.
 The binary provided here MUST be consistent with the
 B<device_model_version> which you have specified.
-In case of B<qemu-xen-traditional> it is expected to be MiniOS-based stubdomain
-image, in case of B<qemu-xen> it is expected to be Linux-based stubdomain
+In case of B<qemu-xen> it is expected to be Linux-based stubdomain
 kernel.
 
 =item B<stubdomain_cmdline="STRING">
diff --git a/docs/misc/stubdom.txt b/docs/misc/stubdom.txt
index 64c220db20..cfcba4ba96 100644
--- a/docs/misc/stubdom.txt
+++ b/docs/misc/stubdom.txt
@@ -23,58 +23,6 @@ and https://wiki.xen.org/wiki/Device_Model_Stub_Domains for more
 information on device model stub domains
 
 
-Toolstack to MiniOS ioemu stubdomain protocol
----------------------------------------------
-
-This section describe communication protocol between toolstack and
-qemu-traditional running in MiniOS stubdomain. The protocol include
-expectations of both qemu and stubdomain itself.
-
-Setup (done by toolstack, expected by stubdomain):
- - Block devices for target domain are connected as PV disks to stubdomain,
-   according to configuration order, starting with xvda
- - Network devices for target domain are connected as PV nics to stubdomain,
-   according to configuration order, starting with 0
- - if graphics output is expected, VFB and VKB devices are set for stubdomain
-   (its backend is responsible for exposing them using appropriate protocol
-   like VNC or Spice)
- - other target domain's devices are not connected at this point to stubdomain
-   (may be hot-plugged later)
- - QEMU command line (space separated arguments) is stored in
-   /vm/<target-uuid>/image/dmargs xenstore path
- - target domain id is stored in /local/domain/<stubdom-id>/target xenstore path
-?? - bios type is stored in /local/domain/<target-id>/hvmloader/bios
- - stubdomain's console 0 is connected to qemu log file
- - stubdomain's console 1 is connected to qemu save file (for saving state)
- - stubdomain's console 2 is connected to qemu save file (for restoring state)
- - next consoles are connected according to target guest's serial console configuration
-
-Startup:
-1. PV stubdomain is started with ioemu-stubdom.gz kernel and no initrd
-2. stubdomain initialize relevant devices
-3. stubdomain signal readiness by writing "running" to /local/domain/<stubdom-id>/device-model/<target-id>/state xenstore path
-4. now stubdomain is considered running
-
-Runtime control (hotplug etc):
-Toolstack can issue command through xenstore. The sequence is (from toolstack POV):
-1. Write parameter to /local/domain/<stubdom-id>/device-model/<target-id>/parameter.
-2. Write command to /local/domain/<stubdom-id>/device-model/<target-id>/command.
-3. Wait for command result in /local/domain/<stubdom-id>/device-model/<target-id>/state (command specific value).
-4. Write "running" back to /local/domain/<stubdom-id>/device-model/<target-id>/state.
-
-Defined commands:
- - "pci-ins" - PCI hot plug, results:
-   - "pci-inserted" - success
-   - "pci-insert-failed" - failure
- - "pci-rem" - PCI hot remove, results:
-   - "pci-removed" - success
-   - ??
- - "save" - save domain state to console 1, results:
-   - "paused" - success
- - "continue" - resume domain execution, after loading state from console 2 (require -loadvm command argument), results:
-   - "running" - success
-
-
 Toolstack to Linux ioemu stubdomain protocol
 --------------------------------------------
 
diff --git a/docs/misc/xenstore-paths.pandoc b/docs/misc/xenstore-paths.pandoc
index a604f6b1c6..01a340fafc 100644
--- a/docs/misc/xenstore-paths.pandoc
+++ b/docs/misc/xenstore-paths.pandoc
@@ -636,7 +636,8 @@ Trustworthy copy of /local/domain/$DOMID/backend/$KIND/$DEVID/$NODE.
 
 #### /libxl/$DOMID/dm-version ("qemu_xen"|"qemu_xen_traditional") = [n,INTERNAL]
 
-The device model version for a domain.
+The device model version for a domain. Note that "qemu_xen_traditional" is
+a device model variant which has been removed from Xen.
 
 #### /libxl/$DOMID/remus/netbuf/$DEVID/ifb = STRING [n,INTERNAL]
 
diff --git a/docs/process/branching-checklist.txt b/docs/process/branching-checklist.txt
index 3dfa8ec257..aa7a27eed5 100644
--- a/docs/process/branching-checklist.txt
+++ b/docs/process/branching-checklist.txt
@@ -14,8 +14,6 @@ ov=4.0
     cd ~/git/qemu-xen.git
     git branch staging-$v staging
     git branch stable-$v master
-    cd ~/git/qemu-xen-traditional.git
-    git branch stable-$v master
 
 # make branch in libvirt
     ssh xen@xenbits.xen.org
@@ -63,7 +61,6 @@ ov=4.0
     cp xen--staging.patchbot-reported-heads xen--staging-$v.patchbot-reported-heads
     cp qemu-xen--master.patchbot-reported-heads  qemu-xen--stable-$v.patchbot-reported-heads
     cp qemu-xen--staging.patchbot-reported-heads  qemu-xen--staging-$v.patchbot-reported-heads
-    cp qemu-xen-traditional--master.patchbot-reported-heads qemu-xen-traditional--stable-$v.patchbot-reported-heads
 
     #emacs versions
     perl -i~ -pe 'next unless m/\b\Q'$ov'\E\b/; $x=$_; $x=~ s/\b\Q'$ov'\E\b/'$v'/g; print $x;' versions
diff --git a/docs/process/release-technician-checklist.txt b/docs/process/release-technician-checklist.txt
index 7bbe7c1489..829e8ec47b 100644
--- a/docs/process/release-technician-checklist.txt
+++ b/docs/process/release-technician-checklist.txt
@@ -32,8 +32,6 @@ t=RELEASE-$r
   git show # should show appropriate intended commit
   git-tag -u 'Xen.org Xen tree code signing' -m "Xen $v" xen-$v
 
-  git-push xenbits.xen.org:/home/xen/git/qemu-xen-traditional.git $s:stable-$x xen-$v
-
 # consider making tag in minios, and updating xen.git Config.mk
   git checkout SOMETHING
   git show # should show appropriate intended commit
diff --git a/docs/process/xen-release-management.pandoc b/docs/process/xen-release-management.pandoc
index 7826419dad..5da18f6da1 100644
--- a/docs/process/xen-release-management.pandoc
+++ b/docs/process/xen-release-management.pandoc
@@ -193,7 +193,7 @@ from the last RC:
 
 1. Send out commit moratorium emails to committers@.
 
-2. Check all the trees (mini-os, qemu-trad, qemu-xen, seabios, ovmf etc).
+2. Check all the trees (mini-os, qemu-xen, seabios, ovmf etc).
 They have the correct commits and all security patches applied. There will be
 tools provided.
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 08 12:41:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 12:41:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.941942.1341319 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u28GV-0007X5-AS; Tue, 08 Apr 2025 12:41:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 941942.1341319; Tue, 08 Apr 2025 12: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 1u28GV-0007Wy-72; Tue, 08 Apr 2025 12:41:19 +0000
Received: by outflank-mailman (input) for mailman id 941942;
 Tue, 08 Apr 2025 12: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=Ii8P=W2=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1u28BA-0003x9-2R
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 12:35:48 +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 fe70ddc4-1475-11f0-9eaa-5ba50f476ded;
 Tue, 08 Apr 2025 14:35:46 +0200 (CEST)
Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org
 [IPv6:2a07:de40:b281:104:10:150:64:97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out1.suse.de (Postfix) with ESMTPS id 027D321187;
 Tue,  8 Apr 2025 12:35:46 +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 9852313691;
 Tue,  8 Apr 2025 12:35:45 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap1.dmz-prg2.suse.org with ESMTPSA id 7ArTIyEY9WcgIgAAD6G6ig
 (envelope-from <jgross@suse.com>); Tue, 08 Apr 2025 12:35: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: fe70ddc4-1475-11f0-9eaa-5ba50f476ded
Authentication-Results: smtp-out1.suse.de;
	none
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.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>,
	Nick Rosbrook <rosbrookn@gmail.com>,
	George Dunlap <gwd@xenproject.org>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH v2 3/6] tools: remove support for running a guest with qemu-traditional
Date: Tue,  8 Apr 2025 14:35:21 +0200
Message-ID: <20250408123526.14613-4-jgross@suse.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20250408123526.14613-1-jgross@suse.com>
References: <20250408123526.14613-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Rspamd-Pre-Result: action=no action;
	module=replies;
	Message is reply to one we originated
X-Spam-Level: 
X-Spamd-Result: default: False [-4.00 / 50.00];
	REPLY(-4.00)[];
	ASN(0.00)[asn:25478, ipnet:::/0, country:RU]
X-Spam-Score: -4.00
X-Spam-Flag: NO
X-Rspamd-Queue-Id: 027D321187
X-Rspamd-Pre-Result: action=no action;
	module=replies;
	Message is reply to one we originated
X-Rspamd-Action: no action
X-Rspamd-Server: rspamd2.dmz-prg2.suse.org

Remove the code in tools for running a guest with qemu-traditional.
This covers xl, libxl, libacpi, hvmloader and the related python and
go bindings.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
V2:
- Keep most of the removed comment in hvmloader, while removing parts
  of another one (Jan Beulich)
---
 tools/firmware/hvmloader/pci.c        |  19 +-
 tools/firmware/hvmloader/util.c       |   9 +-
 tools/golang/xenlight/types.gen.go    |   1 -
 tools/libacpi/mk_dsdt.c               | 177 +++-----------
 tools/libs/light/libxl_create.c       |  60 +----
 tools/libs/light/libxl_disk.c         |   7 -
 tools/libs/light/libxl_dm.c           | 320 +-------------------------
 tools/libs/light/libxl_dom.c          |  10 -
 tools/libs/light/libxl_dom_save.c     | 140 -----------
 tools/libs/light/libxl_dom_suspend.c  |  65 ------
 tools/libs/light/libxl_domain.c       |  15 --
 tools/libs/light/libxl_internal.c     |   6 +-
 tools/libs/light/libxl_internal.h     |   5 +-
 tools/libs/light/libxl_pci.c          | 183 ---------------
 tools/libs/light/libxl_stream_write.c |   4 -
 tools/libs/light/libxl_types.idl      |   1 -
 tools/python/xen/migration/libxl.py   |   2 -
 tools/xl/xl_parse.c                   |   5 +-
 18 files changed, 52 insertions(+), 977 deletions(-)

diff --git a/tools/firmware/hvmloader/pci.c b/tools/firmware/hvmloader/pci.c
index c3c61ca060..a00acdd45b 100644
--- a/tools/firmware/hvmloader/pci.c
+++ b/tools/firmware/hvmloader/pci.c
@@ -113,19 +113,9 @@ void pci_setup(void)
      * increase the size of the lowmem MMIO hole?  Defaulting to 1
      * here will mean that non-libxl toolstacks (including xend and
      * home-grown ones) means that those using qemu-xen will still
-     * experience the memory relocation bug described below; but it
-     * also means that those using qemu-traditional will *not*
-     * experience any change; and it also means that there is a
-     * work-around for those using qemu-xen, namely switching to
-     * qemu-traditional.
-     *
-     * If we defaulted to 0, and failing to resize the hole caused any
-     * problems with qemu-traditional, then there is no work-around.
-     *
-     * Since xend can only use qemu-traditional, I think this is the
-     * option that will have the least impact.
+     * experience the memory relocation bug described below.
      */
-    bool allow_memory_relocate = 1;
+    bool allow_memory_relocate = 0;
 
     BUILD_BUG_ON((typeof(*pci_devfn_decode_type))PCI_COMMAND_IO !=
                  PCI_COMMAND_IO);
@@ -347,10 +337,7 @@ void pci_setup(void)
     {
         /*
          * At the moment qemu-xen can't deal with relocated memory regions.
-         * It's too close to the release to make a proper fix; for now,
-         * only allow the MMIO hole to grow large enough to move guest memory
-         * if we're running qemu-traditional.  Items that don't fit will be
-         * relocated into the 64-bit address space.
+         * It's too close to the release to make a proper fix.
          *
          * This loop now does the following:
          * - If allow_memory_relocate, increase the MMIO hole until it's
diff --git a/tools/firmware/hvmloader/util.c b/tools/firmware/hvmloader/util.c
index 2d07ce1290..79c0e6bd4a 100644
--- a/tools/firmware/hvmloader/util.c
+++ b/tools/firmware/hvmloader/util.c
@@ -843,14 +843,7 @@ void hvmloader_acpi_build_tables(struct acpi_config *config,
 
     /* If the device model is specified switch to the corresponding tables */
     s = xenstore_read("platform/device-model", "");
-    if ( !strncmp(s, "qemu_xen_traditional", 21) )
-    {
-        config->dsdt_anycpu = dsdt_anycpu;
-        config->dsdt_anycpu_len = dsdt_anycpu_len;
-        config->dsdt_15cpu = dsdt_15cpu;
-        config->dsdt_15cpu_len = dsdt_15cpu_len;
-    }
-    else if ( !strncmp(s, "qemu_xen", 9) )
+    if ( !strncmp(s, "qemu_xen", 9) )
     {
         config->dsdt_anycpu = dsdt_anycpu_qemu_xen;
         config->dsdt_anycpu_len = dsdt_anycpu_qemu_xen_len;
diff --git a/tools/golang/xenlight/types.gen.go b/tools/golang/xenlight/types.gen.go
index e7667f1ce3..02c4d8d123 100644
--- a/tools/golang/xenlight/types.gen.go
+++ b/tools/golang/xenlight/types.gen.go
@@ -70,7 +70,6 @@ ChannelConnectionSocket ChannelConnection = 2
 type DeviceModelVersion int
 const(
 DeviceModelVersionUnknown DeviceModelVersion = 0
-DeviceModelVersionQemuXenTraditional DeviceModelVersion = 1
 DeviceModelVersionQemuXen DeviceModelVersion = 2
 )
 
diff --git a/tools/libacpi/mk_dsdt.c b/tools/libacpi/mk_dsdt.c
index 34f6753f61..396e3e01e2 100644
--- a/tools/libacpi/mk_dsdt.c
+++ b/tools/libacpi/mk_dsdt.c
@@ -19,7 +19,6 @@ static bool debug = false;
 
 typedef enum dm_version {
     QEMU_NONE,
-    QEMU_XEN_TRADITIONAL,
     QEMU_XEN,
 } dm_version;
 
@@ -68,30 +67,6 @@ static void pop_block(void)
     printf("}\n");
 }
 
-#ifdef CONFIG_X86
-static void pci_hotplug_notify(unsigned int slt)
-{
-    stmt("Notify", "\\_SB.PCI0.S%02X, EVT", slt);
-}
-
-static void decision_tree(
-    unsigned int s, unsigned int e, char *var, void (*leaf)(unsigned int))
-{
-    if ( s == (e-1) )
-    {
-        (*leaf)(s);
-        return;
-    }
-
-    push_block("If", "And(%s, 0x%02x)", var, (e-s)/2);
-    decision_tree((s+e)/2, e, var, leaf);
-    pop_block();
-    push_block("Else", NULL);
-    decision_tree(s, (s+e)/2, var, leaf);
-    pop_block();
-}
-#endif
-
 static struct option options[] = {
     { "maxcpu", 1, 0, 'c' },
 #ifdef CONFIG_X86
@@ -105,7 +80,7 @@ int main(int argc, char **argv)
 {
     unsigned int cpu, max_cpus;
 #if defined(CONFIG_X86)
-    dm_version dm_version = QEMU_XEN_TRADITIONAL;
+    dm_version dm_version = QEMU_XEN;
     unsigned int slot, dev, intx, link;
 
     max_cpus = HVM_MAX_VCPUS;
@@ -141,8 +116,6 @@ int main(int argc, char **argv)
         case 'q':
             if (strcmp(optarg, "qemu-xen") == 0) {
                 dm_version = QEMU_XEN;
-            } else if (strcmp(optarg, "qemu-xen-traditional") == 0) {
-                dm_version = QEMU_XEN_TRADITIONAL;
             } else if (strcmp(optarg, "none") == 0) {
                 dm_version = QEMU_NONE;
             } else {
@@ -278,9 +251,7 @@ int main(int argc, char **argv)
 
     /* Define GPE control method. */
     push_block("Scope", "\\_GPE");
-    push_block("Method",
-               dm_version == QEMU_XEN_TRADITIONAL ? "_L%02d" : "_E%02d",
-               XEN_ACPI_GPE0_CPUHP_BIT);
+    push_block("Method", "_E%02d", XEN_ACPI_GPE0_CPUHP_BIT);
     stmt("\\_SB.PRSC ()", NULL);
     pop_block();
     pop_block();
@@ -302,17 +273,10 @@ int main(int argc, char **argv)
      */
     push_block("Device", "HP0"); {
         stmt("Name", "_HID, EISAID(\"PNP0C02\")");
-        if (dm_version == QEMU_XEN_TRADITIONAL) {
-            stmt("Name", "_CRS, ResourceTemplate() {"
-                 "  IO (Decode16, 0x10c0, 0x10c0, 0x00, 0x82)"
-                 "  IO (Decode16, 0xb044, 0xb044, 0x00, 0x04)"
-                 "}");
-        } else {
-            stmt("Name", "_CRS, ResourceTemplate() {"
-                 "  IO (Decode16, 0xae00, 0xae00, 0x00, 0x10)"
-                 "  IO (Decode16, 0xb044, 0xb044, 0x00, 0x04)"
-                 "}");
-        }
+        stmt("Name", "_CRS, ResourceTemplate() {"
+             "  IO (Decode16, 0xae00, 0xae00, 0x00, 0x10)"
+             "  IO (Decode16, 0xb044, 0xb044, 0x00, 0x04)"
+             "}");
     } pop_block();
 
     /*** PCI-ISA link definitions ***/
@@ -397,60 +361,27 @@ int main(int argc, char **argv)
      * QEMU provides a simple hotplug controller with some I/O to handle
      * the hotplug action and status, which is beyond the ACPI scope.
      */
-    if (dm_version == QEMU_XEN_TRADITIONAL) {
-        for ( slot = 0; slot < 0x100; slot++ )
-        {
-            push_block("Device", "S%02X", slot);
-            /* _ADR == dev:fn (16:16) */
-            stmt("Name", "_ADR, 0x%08x", ((slot & ~7) << 13) | (slot & 7));
-            /* _SUN == dev */
-            stmt("Name", "_SUN, 0x%08x", slot >> 3);
-            push_block("Method", "_EJ0, 1");
-            if (debug)
-            {
-                stmt("Store", "0x%02x, \\_GPE.DPT1", slot);
-                stmt("Store", "0x88, \\_GPE.DPT2");
-            }
-            stmt("Store", "0x%02x, \\_GPE.PH%02X", /* eject */
-                 (slot & 1) ? 0x10 : 0x01, slot & ~1);
-            pop_block();
-            push_block("Method", "_STA, 0");
-            if (debug)
-            {
-                stmt("Store", "0x%02x, \\_GPE.DPT1", slot);
-                stmt("Store", "0x89, \\_GPE.DPT2");
-            }
-            if ( slot & 1 )
-                stmt("ShiftRight", "\\_GPE.PH%02X, 0x04, Local1", slot & ~1);
-            else
-                stmt("And", "\\_GPE.PH%02X, 0x0f, Local1", slot & ~1);
-            stmt("Return", "Local1"); /* IN status as the _STA */
-            pop_block();
-            pop_block();
-        }
-    } else {
-        stmt("OperationRegion", "SEJ, SystemIO, 0xae08, 0x08");
-        push_block("Field", "SEJ, DWordAcc, NoLock, WriteAsZeros");
-        indent(); printf("B0EJ, 32,\n");
-        indent(); printf("B0RM, 32,\n");
-        pop_block();
+    stmt("OperationRegion", "SEJ, SystemIO, 0xae08, 0x08");
+    push_block("Field", "SEJ, DWordAcc, NoLock, WriteAsZeros");
+    indent(); printf("B0EJ, 32,\n");
+    indent(); printf("B0RM, 32,\n");
+    pop_block();
 
-        /* hotplug_slot */
-        for (slot = 1; slot <= 31; slot++) {
-            push_block("Device", "S%i", slot); {
-                stmt("Name", "_ADR, %#06x0000", slot);
-                push_block("Method", "_EJ0,1"); {
-                    stmt("Store", "%#010x, B0EJ", 1 << slot);
-                } pop_block();
-                stmt("Name", "_SUN, %i", slot);
-                push_block("Method", "_STA, 0"); {
-                    push_block("If", "And(B0RM, ShiftLeft(1, %i))", slot);
-                    stmt("Return", "0xF");
-                    pop_block();
-                    stmt("Return", "0x0");
-                } pop_block();
+    /* hotplug_slot */
+    for (slot = 1; slot <= 31; slot++) {
+        push_block("Device", "S%i", slot); {
+            stmt("Name", "_ADR, %#06x0000", slot);
+            push_block("Method", "_EJ0,1"); {
+                stmt("Store", "%#010x, B0EJ", 1 << slot);
             } pop_block();
-        }
+            stmt("Name", "_SUN, %i", slot);
+            push_block("Method", "_STA, 0"); {
+                push_block("If", "And(B0RM, ShiftLeft(1, %i))", slot);
+                stmt("Return", "0xF");
+                pop_block();
+                stmt("Return", "0x0");
+            } pop_block();
+        } pop_block();
     }
 
     pop_block();
@@ -460,26 +391,11 @@ int main(int argc, char **argv)
     /**** GPE start ****/
     push_block("Scope", "\\_GPE");
 
-    if (dm_version == QEMU_XEN_TRADITIONAL) {
-        stmt("OperationRegion", "PHP, SystemIO, 0x10c0, 0x82");
-
-        push_block("Field", "PHP, ByteAcc, NoLock, Preserve");
-        indent(); printf("PSTA, 8,\n"); /* hotplug controller event reg */
-        indent(); printf("PSTB, 8,\n"); /* hotplug controller slot reg */
-        for ( slot = 0; slot < 0x100; slot += 2 )
-        {
-            indent();
-            /* Each hotplug control register manages a pair of pci functions. */
-            printf("PH%02X, 8,\n", slot);
-        }
-        pop_block();
-    } else {
-        stmt("OperationRegion", "PCST, SystemIO, 0xae00, 0x08");
-        push_block("Field", "PCST, DWordAcc, NoLock, WriteAsZeros");
-        indent(); printf("PCIU, 32,\n");
-        indent(); printf("PCID, 32,\n");
-        pop_block();
-    }
+    stmt("OperationRegion", "PCST, SystemIO, 0xae00, 0x08");
+    push_block("Field", "PCST, DWordAcc, NoLock, WriteAsZeros");
+    indent(); printf("PCIU, 32,\n");
+    indent(); printf("PCID, 32,\n");
+    pop_block();
 
     stmt("OperationRegion", "DG1, SystemIO, 0xb044, 0x04");
 
@@ -487,35 +403,16 @@ int main(int argc, char **argv)
     indent(); printf("DPT1, 8, DPT2, 8\n");
     pop_block();
 
-    if (dm_version == QEMU_XEN_TRADITIONAL) {
-        push_block("Method", "_L03, 0, Serialized");
-        /* Detect slot and event (remove/add). */
-        stmt("Name", "SLT, 0x0");
-        stmt("Name", "EVT, 0x0");
-        stmt("Store", "PSTA, Local1");
-        stmt("And", "Local1, 0xf, EVT");
-        stmt("Store", "PSTB, Local1"); /* XXX: Store (PSTB, SLT) ? */
-        stmt("And", "Local1, 0xff, SLT");
-        if (debug)
-        {
-            stmt("Store", "SLT, DPT1");
-            stmt("Store", "EVT, DPT2");
-        }
-        /* Decision tree */
-        decision_tree(0x00, 0x100, "SLT", pci_hotplug_notify);
+    push_block("Method", "_E01");
+    for (slot = 1; slot <= 31; slot++) {
+        push_block("If", "And(PCIU, ShiftLeft(1, %i))", slot);
+        stmt("Notify", "\\_SB.PCI0.S%i, 1", slot);
         pop_block();
-    } else {
-        push_block("Method", "_E01");
-        for (slot = 1; slot <= 31; slot++) {
-            push_block("If", "And(PCIU, ShiftLeft(1, %i))", slot);
-            stmt("Notify", "\\_SB.PCI0.S%i, 1", slot);
-            pop_block();
-            push_block("If", "And(PCID, ShiftLeft(1, %i))", slot);
-            stmt("Notify", "\\_SB.PCI0.S%i, 3", slot);
-            pop_block();
-        }
+        push_block("If", "And(PCID, ShiftLeft(1, %i))", slot);
+        stmt("Notify", "\\_SB.PCI0.S%i, 3", slot);
         pop_block();
     }
+    pop_block();
 
     pop_block();
     /**** GPE end ****/
diff --git a/tools/libs/light/libxl_create.c b/tools/libs/light/libxl_create.c
index e03599ea99..9c56c4c9e5 100644
--- a/tools/libs/light/libxl_create.c
+++ b/tools/libs/light/libxl_create.c
@@ -100,12 +100,7 @@ int libxl__domain_build_info_setdefault(libxl__gc *gc,
 
     if (!b_info->device_model_version) {
         if (b_info->type == LIBXL_DOMAIN_TYPE_HVM) {
-            if (libxl_defbool_val(b_info->device_model_stubdomain)) {
-                b_info->device_model_version =
-                    LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL;
-            } else {
-                b_info->device_model_version = LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN;
-            }
+            b_info->device_model_version = LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN;
         } else {
             b_info->device_model_version =
                 LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN;
@@ -117,16 +112,8 @@ int libxl__domain_build_info_setdefault(libxl__gc *gc,
             dm = libxl__domain_device_model(gc, b_info);
             rc = access(dm, X_OK);
             if (rc < 0) {
-                /* qemu-xen unavailable, use qemu-xen-traditional */
-                if (errno == ENOENT) {
-                    LOGE(INFO, "qemu-xen is unavailable"
-                         ", using qemu-xen-traditional instead");
-                    b_info->device_model_version =
-                        LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL;
-                } else {
-                    LOGE(ERROR, "qemu-xen access error");
-                    return ERROR_FAIL;
-                }
+                LOGE(ERROR, "qemu-xen access error");
+                return ERROR_FAIL;
             }
         }
     }
@@ -137,8 +124,6 @@ int libxl__domain_build_info_setdefault(libxl__gc *gc,
     if (b_info->type == LIBXL_DOMAIN_TYPE_HVM) {
         if (!b_info->u.hvm.bios)
             switch (b_info->device_model_version) {
-            case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL:
-                b_info->u.hvm.bios = LIBXL_BIOS_TYPE_ROMBIOS; break;
             case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN:
                 b_info->u.hvm.bios = LIBXL_BIOS_TYPE_SEABIOS; break;
             default:
@@ -148,12 +133,6 @@ int libxl__domain_build_info_setdefault(libxl__gc *gc,
 
         /* Enforce BIOS<->Device Model version relationship */
         switch (b_info->device_model_version) {
-        case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL:
-            if (b_info->u.hvm.bios != LIBXL_BIOS_TYPE_ROMBIOS) {
-                LOG(ERROR, "qemu-xen-traditional requires bios=rombios.");
-                return ERROR_INVAL;
-            }
-            break;
         case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN:
             if (b_info->u.hvm.bios == LIBXL_BIOS_TYPE_ROMBIOS) {
                 LOG(ERROR, "qemu-xen does not support bios=rombios.");
@@ -176,10 +155,6 @@ int libxl__domain_build_info_setdefault(libxl__gc *gc,
         libxl_defbool_val(b_info->device_model_stubdomain)) {
         if (!b_info->stubdomain_kernel) {
             switch (b_info->device_model_version) {
-                case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL:
-                    b_info->stubdomain_kernel =
-                        libxl__abs_path(NOGC, "ioemu-stubdom.gz", libxl__xenfirmwaredir_path());
-                    break;
                 case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN:
                     b_info->stubdomain_kernel =
                         libxl__abs_path(NOGC,
@@ -192,8 +167,6 @@ int libxl__domain_build_info_setdefault(libxl__gc *gc,
         }
         if (!b_info->stubdomain_ramdisk) {
             switch (b_info->device_model_version) {
-                case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL:
-                    break;
                 case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN:
                     b_info->stubdomain_ramdisk =
                         libxl__abs_path(NOGC,
@@ -299,33 +272,6 @@ int libxl__domain_build_info_setdefault(libxl__gc *gc,
             b_info->u.hvm.hdtype = LIBXL_HDTYPE_IDE;
 
         switch (b_info->device_model_version) {
-        case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL:
-            switch (b_info->u.hvm.vga.kind) {
-            case LIBXL_VGA_INTERFACE_TYPE_NONE:
-                if (b_info->video_memkb == LIBXL_MEMKB_DEFAULT)
-                    b_info->video_memkb = 0;
-                break;
-            case LIBXL_VGA_INTERFACE_TYPE_QXL:
-                LOG(ERROR,"qemu upstream required for qxl vga");
-                return ERROR_INVAL;
-                break;
-            case LIBXL_VGA_INTERFACE_TYPE_STD:
-                if (b_info->video_memkb == LIBXL_MEMKB_DEFAULT)
-                    b_info->video_memkb = 8 * 1024;
-                if (b_info->video_memkb < 8 * 1024) {
-                    LOG(ERROR, "videoram must be at least 8 MB for STDVGA on QEMU_XEN_TRADITIONAL");
-                    return ERROR_INVAL;
-                }
-                break;
-            case LIBXL_VGA_INTERFACE_TYPE_CIRRUS:
-            default:
-                if (b_info->video_memkb == LIBXL_MEMKB_DEFAULT)
-                    b_info->video_memkb = 4 * 1024;
-                if (b_info->video_memkb != 4 * 1024)
-                    LOG(WARN, "ignoring videoram other than 4 MB for CIRRUS on QEMU_XEN_TRADITIONAL");
-                break;
-            }
-            break;
         case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN:
         default:
             switch (b_info->u.hvm.vga.kind) {
diff --git a/tools/libs/light/libxl_disk.c b/tools/libs/light/libxl_disk.c
index 6a0b6e06fe..456b5450ca 100644
--- a/tools/libs/light/libxl_disk.c
+++ b/tools/libs/light/libxl_disk.c
@@ -1007,13 +1007,6 @@ int libxl_cdrom_insert(libxl_ctx *ctx, uint32_t domid, libxl_device_disk *disk,
         disk->backend = LIBXL_DISK_BACKEND_PHY;
     }
 
-    if (cis->dm_ver == LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL &&
-        stubdomid) {
-        LOGD(ERROR, domid, "cdrom-insert doesn't work for Mini-OS stubdoms");
-        rc = ERROR_INVAL;
-        goto out;
-    }
-
     disks = libxl__device_list(gc, &libxl__disk_devtype, cis->disk_domid, &num);
     for (i = 0; i < num; i++) {
         if (disks[i].is_cdrom && !strcmp(disk->vdev, disks[i].vdev))
diff --git a/tools/libs/light/libxl_dm.c b/tools/libs/light/libxl_dm.c
index b193a5dc37..4146ee0ea1 100644
--- a/tools/libs/light/libxl_dm.c
+++ b/tools/libs/light/libxl_dm.c
@@ -328,9 +328,6 @@ const char *libxl__domain_device_model(libxl__gc *gc,
         dm = libxl__strdup(gc, info->device_model);
     } else {
         switch (info->device_model_version) {
-        case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL:
-            dm = libxl__abs_path(gc, "qemu-dm", libxl__private_bindir_path());
-            break;
         case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN:
             dm = qemu_xen_path(gc);
             break;
@@ -670,272 +667,6 @@ static const char *dm_keymap(const libxl_domain_config *guest_config)
         return NULL;
 }
 
-static int libxl__build_device_model_args_old(libxl__gc *gc,
-                                        const char *dm, int domid,
-                                        const libxl_domain_config *guest_config,
-                                        char ***args, char ***envs,
-                                        const libxl__domain_build_state *state)
-{
-    const libxl_domain_create_info *c_info = &guest_config->c_info;
-    const libxl_domain_build_info *b_info = &guest_config->b_info;
-    const libxl_device_nic *nics = guest_config->nics;
-    const libxl_vnc_info *vnc = libxl__dm_vnc(guest_config);
-    const libxl_sdl_info *sdl = dm_sdl(guest_config);
-    const int num_nics = guest_config->num_nics;
-    const char *keymap = dm_keymap(guest_config);
-    int i;
-    flexarray_t *dm_args, *dm_envs;
-    dm_args = flexarray_make(gc, 16, 1);
-    dm_envs = flexarray_make(gc, 16, 1);
-
-    assert(state->dm_monitor_fd == -1);
-
-    flexarray_vappend(dm_args, dm,
-                      "-d", GCSPRINTF("%d", domid), NULL);
-
-    if (c_info->name)
-        flexarray_vappend(dm_args, "-domain-name", c_info->name, NULL);
-
-    if (vnc) {
-        char *vncarg = NULL;
-
-        flexarray_append(dm_args, "-vnc");
-
-        /*
-         * If vnc->listen is present and contains a :, and
-         *  - vnc->display is 0, use vnc->listen
-         *  - vnc->display is non-zero, be confused
-         * If vnc->listen is present but doesn't, use vnc->listen:vnc->display.
-         * If vnc->listen is not present, use 127.0.0.1:vnc->display
-         * (Remembering that vnc->display already defaults to 0.)
-         */
-        if (vnc->listen) {
-            if (strchr(vnc->listen, ':') != NULL) {
-                if (vnc->display) {
-                    LOGD(ERROR, domid, "vncdisplay set, vnclisten contains display");
-                    return ERROR_INVAL;
-                }
-                vncarg = vnc->listen;
-            } else {
-                vncarg = GCSPRINTF("%s:%d", vnc->listen, vnc->display);
-            }
-        } else
-            vncarg = GCSPRINTF("127.0.0.1:%d", vnc->display);
-
-        if (vnc->passwd && vnc->passwd[0]) {
-            vncarg = GCSPRINTF("%s,password", vncarg);
-        }
-
-        flexarray_append(dm_args, vncarg);
-
-        if (libxl_defbool_val(vnc->findunused)) {
-            flexarray_append(dm_args, "-vncunused");
-        }
-    } else if (!sdl) {
-        /*
-         * VNC is not enabled by default by qemu-xen-traditional,
-         * however skipping -vnc causes SDL to be
-         * (unexpectedly) enabled by default. If undesired, disable graphics at
-         * all.
-         */
-        flexarray_append(dm_args, "-nographic");
-    }
-
-    if (sdl) {
-        flexarray_append(dm_args, "-sdl");
-        if (!libxl_defbool_val(sdl->opengl)) {
-            flexarray_append(dm_args, "-disable-opengl");
-        }
-        if (sdl->display)
-            flexarray_append_pair(dm_envs, "DISPLAY", sdl->display);
-        if (sdl->xauthority)
-            flexarray_append_pair(dm_envs, "XAUTHORITY", sdl->xauthority);
-    }
-    if (keymap) {
-        flexarray_vappend(dm_args, "-k", keymap, NULL);
-    }
-    if (b_info->type == LIBXL_DOMAIN_TYPE_HVM) {
-        int ioemu_nics = 0;
-        int nr_set_cpus = 0;
-        char *s;
-
-        flexarray_append_pair(dm_envs, "XEN_DOMAIN_ID", GCSPRINTF("%d", domid));
-
-        if (b_info->kernel) {
-            LOGD(ERROR, domid, "HVM direct kernel boot is not supported by "
-                 "qemu-xen-traditional");
-            return ERROR_INVAL;
-        }
-
-        if (b_info->u.hvm.serial || b_info->u.hvm.serial_list) {
-            if ( b_info->u.hvm.serial && b_info->u.hvm.serial_list )
-            {
-                LOGD(ERROR, domid, "Both serial and serial_list set");
-                return ERROR_INVAL;
-            }
-            if (b_info->u.hvm.serial) {
-                flexarray_vappend(dm_args,
-                                  "-serial", b_info->u.hvm.serial, NULL);
-            } else if (b_info->u.hvm.serial_list) {
-                char **p;
-                for (p = b_info->u.hvm.serial_list;
-                     *p;
-                     p++) {
-                    flexarray_vappend(dm_args,
-                                      "-serial",
-                                      *p, NULL);
-                }
-            }
-        }
-
-        if (libxl_defbool_val(b_info->u.hvm.nographic) && (!sdl && !vnc)) {
-            flexarray_append(dm_args, "-nographic");
-        }
-
-        if (b_info->video_memkb) {
-            flexarray_vappend(dm_args, "-videoram",
-                    GCSPRINTF("%d", libxl__sizekb_to_mb(b_info->video_memkb)),
-                    NULL);
-        }
-
-        switch (b_info->u.hvm.vga.kind) {
-        case LIBXL_VGA_INTERFACE_TYPE_STD:
-            flexarray_append(dm_args, "-std-vga");
-            break;
-        case LIBXL_VGA_INTERFACE_TYPE_CIRRUS:
-            break;
-        case LIBXL_VGA_INTERFACE_TYPE_NONE:
-            flexarray_append_pair(dm_args, "-vga", "none");
-            break;
-        case LIBXL_VGA_INTERFACE_TYPE_QXL:
-            break;
-        default:
-            LOGD(ERROR, domid, "Invalid emulated video card specified");
-            return ERROR_INVAL;
-        }
-
-        if (b_info->u.hvm.boot) {
-            flexarray_vappend(dm_args, "-boot", b_info->u.hvm.boot, NULL);
-        }
-        if (libxl_defbool_val(b_info->u.hvm.usb)
-            || b_info->u.hvm.usbdevice
-            || libxl_string_list_length(&b_info->u.hvm.usbdevice_list)) {
-            if (b_info->u.hvm.usbdevice
-                && libxl_string_list_length(&b_info->u.hvm.usbdevice_list)) {
-                LOGD(ERROR, domid, "Both usbdevice and usbdevice_list set");
-                return ERROR_INVAL;
-            }
-            flexarray_append(dm_args, "-usb");
-            if (b_info->u.hvm.usbdevice) {
-                flexarray_vappend(dm_args,
-                                  "-usbdevice", b_info->u.hvm.usbdevice, NULL);
-            } else if (b_info->u.hvm.usbdevice_list) {
-                char **p;
-                for (p = b_info->u.hvm.usbdevice_list;
-                     *p;
-                     p++) {
-                    flexarray_vappend(dm_args,
-                                      "-usbdevice",
-                                      *p, NULL);
-                }
-            }
-        }
-        if (b_info->u.hvm.soundhw) {
-            flexarray_vappend(dm_args, "-soundhw", b_info->u.hvm.soundhw, NULL);
-        }
-        if (libxl__acpi_defbool_val(b_info)) {
-            flexarray_append(dm_args, "-acpi");
-        }
-        if (b_info->max_vcpus > 1) {
-            flexarray_vappend(dm_args, "-vcpus",
-                              GCSPRINTF("%d", b_info->max_vcpus),
-                              NULL);
-        }
-
-        nr_set_cpus = libxl_bitmap_count_set(&b_info->avail_vcpus);
-        s = libxl_bitmap_to_hex_string(CTX, &b_info->avail_vcpus);
-        flexarray_vappend(dm_args, "-vcpu_avail",
-                              GCSPRINTF("%s", s), NULL);
-        free(s);
-
-        for (i = 0; i < num_nics; i++) {
-            if (nics[i].nictype == LIBXL_NIC_TYPE_VIF_IOEMU) {
-                char *smac = GCSPRINTF(
-                                   LIBXL_MAC_FMT, LIBXL_MAC_BYTES(nics[i].mac));
-                const char *ifname = libxl__device_nic_devname(gc,
-                                                domid, nics[i].devid,
-                                                LIBXL_NIC_TYPE_VIF_IOEMU);
-                flexarray_vappend(dm_args,
-                                  "-net",
-                                  GCSPRINTF(
-                                      "nic,vlan=%d,macaddr=%s,model=%s",
-                                      nics[i].devid, smac, nics[i].model),
-                                  "-net",
-                                  GCSPRINTF(
-                                      "tap,vlan=%d,ifname=%s,bridge=%s,"
-                                      "script=%s,downscript=%s",
-                                      nics[i].devid, ifname, nics[i].bridge,
-                                      libxl_tapif_script(gc),
-                                      libxl_tapif_script(gc)),
-                                  NULL);
-                ioemu_nics++;
-            }
-        }
-        /* If we have no emulated nics, tell qemu not to create any */
-        if ( ioemu_nics == 0 ) {
-            flexarray_vappend(dm_args, "-net", "none", NULL);
-        }
-        if (libxl_defbool_val(b_info->u.hvm.gfx_passthru)) {
-            switch (b_info->u.hvm.gfx_passthru_kind) {
-            case LIBXL_GFX_PASSTHRU_KIND_DEFAULT:
-            case LIBXL_GFX_PASSTHRU_KIND_IGD:
-                flexarray_append(dm_args, "-gfx_passthru");
-                break;
-            default:
-                LOGD(ERROR, domid, "unsupported gfx_passthru_kind.");
-                return ERROR_INVAL;
-            }
-        }
-    } else {
-        if (!sdl && !vnc)
-            flexarray_append(dm_args, "-nographic");
-    }
-
-    if (libxl_defbool_val(b_info->dm_restrict)) {
-        LOGD(ERROR, domid,
-             "dm_restrict not supported by qemu-xen-traditional");
-        return ERROR_INVAL;
-    }
-
-    if (state->saved_state) {
-        flexarray_vappend(dm_args, "-loadvm", state->saved_state, NULL);
-    }
-    for (i = 0; b_info->extra && b_info->extra[i] != NULL; i++)
-        flexarray_append(dm_args, b_info->extra[i]);
-    flexarray_append(dm_args, "-M");
-    switch (b_info->type) {
-    case LIBXL_DOMAIN_TYPE_PVH:
-    case LIBXL_DOMAIN_TYPE_PV:
-        flexarray_append(dm_args, "xenpv");
-        for (i = 0; b_info->extra_pv && b_info->extra_pv[i] != NULL; i++)
-            flexarray_append(dm_args, b_info->extra_pv[i]);
-        break;
-    case LIBXL_DOMAIN_TYPE_HVM:
-        flexarray_append(dm_args, "xenfv");
-        for (i = 0; b_info->extra_hvm && b_info->extra_hvm[i] != NULL; i++)
-            flexarray_append(dm_args, b_info->extra_hvm[i]);
-        break;
-    default:
-        abort();
-    }
-    flexarray_append(dm_args, NULL);
-    *args = (char **) flexarray_contents(dm_args);
-    flexarray_append(dm_envs, NULL);
-    if (envs)
-        *envs = (char **) flexarray_contents(dm_envs);
-    return 0;
-}
-
 static char *dm_spice_options(libxl__gc *gc,
                                     const libxl_spice_info *spice)
 {
@@ -2062,11 +1793,6 @@ static int libxl__build_device_model_args(libxl__gc *gc,
  * and therefore will be passing a filename rather than a fd. */
 {
     switch (guest_config->b_info.device_model_version) {
-    case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL:
-        return libxl__build_device_model_args_old(gc, dm,
-                                                  guest_domid, guest_config,
-                                                  args, envs,
-                                                  state);
     case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN:
         if (!libxl_defbool_val(guest_config->b_info.device_model_stubdomain)) {
             assert(dm_state_fd != NULL);
@@ -2429,16 +2155,11 @@ void libxl__spawn_stub_dm(libxl__egc *egc, libxl__stub_dm_spawn_state *sdss)
                         "%s",
                         libxl_bios_type_to_string(guest_config->b_info.u.hvm.bios));
     }
-    /* Disable relocating memory to make the MMIO hole larger
-     * unless we're running qemu-traditional and vNUMA is not
-     * configured. */
+    /* Disable relocating memory to make the MMIO hole larger. */
     libxl__xs_printf(gc, XBT_NULL,
                      libxl__sprintf(gc, "%s/hvmloader/allow-memory-relocate",
                                     libxl__xs_get_dompath(gc, guest_domid)),
-                     "%d",
-                     guest_config->b_info.device_model_version
-                        == LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL &&
-                     !libxl__vnuma_configured(&guest_config->b_info));
+                     "0");
     ret = xc_domain_set_target(ctx->xch, dm_domid, guest_domid);
     if (ret<0) {
         LOGED(ERROR, guest_domid, "setting target domain %d -> %d",
@@ -3122,13 +2843,9 @@ static void device_model_launch(libxl__egc *egc,
     libxl_domain_config *guest_config = dmss->guest_config;
     const libxl_domain_create_info *c_info = &guest_config->c_info;
     const libxl_domain_build_info *b_info = &guest_config->b_info;
-    const libxl_vnc_info *vnc = libxl__dm_vnc(guest_config);
     char *path;
     int logfile_w, null;
     char **args, **arg, **envs;
-    xs_transaction_t t;
-    char *vm_path;
-    char **pass_stuff;
     int dm_state_fd = -1;
 
     /* convenience aliases */
@@ -3162,26 +2879,16 @@ static void device_model_launch(libxl__egc *egc,
         libxl__xs_printf(gc, XBT_NULL,
                          GCSPRINTF("%s/hvmloader/bios", path),
                          "%s", libxl_bios_type_to_string(b_info->u.hvm.bios));
-        /* Disable relocating memory to make the MMIO hole larger
-         * unless we're running qemu-traditional and vNUMA is not
-         * configured. */
+        /* Disable relocating memory to make the MMIO hole larger. */
         libxl__xs_printf(gc, XBT_NULL,
                          GCSPRINTF("%s/hvmloader/allow-memory-relocate", path),
-                         "%d",
-                         b_info->device_model_version==LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL &&
-                         !libxl__vnuma_configured(b_info));
+                         "0");
         free(path);
     }
 
     path = DEVICE_MODEL_XS_PATH(gc, LIBXL_TOOLSTACK_DOMID, domid, "");
     xs_mkdir(ctx->xsh, XBT_NULL, path);
 
-    if (b_info->type == LIBXL_DOMAIN_TYPE_HVM &&
-        b_info->device_model_version
-        == LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL)
-        libxl__xs_printf(gc, XBT_NULL, GCSPRINTF("%s/disable_pf", path),
-                         "%d", !libxl_defbool_val(b_info->u.hvm.xen_platform_pci));
-
     logfile_w = libxl__create_qemu_logfile(gc, GCSPRINTF("qemu-dm-%s",
                                                          c_info->name));
     if (logfile_w < 0) {
@@ -3206,25 +2913,6 @@ static void device_model_launch(libxl__egc *egc,
                          GCSPRINTF("%s/image/device-model-kill-uid", dom_path),
                          "%s", state->dm_kill_uid);
 
-    if (vnc && vnc->passwd) {
-        /* This xenstore key will only be used by qemu-xen-traditionnal.
-         * The code to supply vncpasswd to qemu-xen is later. */
-retry_transaction:
-        /* Find uuid and the write the vnc password to xenstore for qemu. */
-        t = xs_transaction_start(ctx->xsh);
-        vm_path = libxl__xs_read(gc,t,GCSPRINTF("%s/vm", dom_path));
-        if (vm_path) {
-            /* Now write the vncpassword into it. */
-            pass_stuff = libxl__calloc(gc, 3, sizeof(char *));
-            pass_stuff[0] = "vncpasswd";
-            pass_stuff[1] = vnc->passwd;
-            libxl__xs_writev(gc,t,vm_path,pass_stuff);
-            if (!xs_transaction_end(ctx->xsh, t, 0))
-                if (errno == EAGAIN)
-                    goto retry_transaction;
-        }
-    }
-
     LOGD(DEBUG, domid, "Spawning device-model %s with arguments:", dm);
     for (arg = args; *arg; arg++)
         LOGD(DEBUG, domid, "  %s", *arg);
diff --git a/tools/libs/light/libxl_dom.c b/tools/libs/light/libxl_dom.c
index 94fef37401..4d67b0d282 100644
--- a/tools/libs/light/libxl_dom.c
+++ b/tools/libs/light/libxl_dom.c
@@ -881,7 +881,6 @@ static int libxl__domain_firmware(libxl__gc *gc,
             switch (info->device_model_version)
             {
             case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN:
-            case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL:
                 firmware = "hvmloader";
                 break;
             default:
@@ -1212,15 +1211,6 @@ out:
     return rc;
 }
 
-int libxl__qemu_traditional_cmd(libxl__gc *gc, uint32_t domid,
-                                const char *cmd)
-{
-    char *path = NULL;
-    uint32_t dm_domid = libxl_get_stubdom_id(CTX, domid);
-    path = DEVICE_MODEL_XS_PATH(gc, dm_domid, domid, "/command");
-    return libxl__xs_printf(gc, XBT_NULL, path, "%s", cmd);
-}
-
 /*==================== Miscellaneous ====================*/
 
 char *libxl__uuid2string(libxl__gc *gc, const libxl_uuid uuid)
diff --git a/tools/libs/light/libxl_dom_save.c b/tools/libs/light/libxl_dom_save.c
index 32e3cb5a13..d64fd64f2e 100644
--- a/tools/libs/light/libxl_dom_save.c
+++ b/tools/libs/light/libxl_dom_save.c
@@ -28,19 +28,6 @@ static void domain_save_done(libxl__egc *egc,
 
 /*----- complicated callback, called by xc_domain_save -----*/
 
-/*
- * We implement the other end of protocol for controlling qemu-dm's
- * logdirty.  There is no documentation for this protocol, but our
- * counterparty's implementation is in
- * qemu-xen-traditional.git:xenstore.c in the function
- * xenstore_process_logdirty_event
- */
-
-static void domain_suspend_switch_qemu_xen_traditional_logdirty
-                               (libxl__egc *egc, int domid, unsigned enable,
-                                libxl__logdirty_switch *lds);
-static void switch_logdirty_xswatch(libxl__egc *egc, libxl__ev_xswatch*,
-                            const char *watch_path, const char *event_path);
 static void domain_suspend_switch_qemu_xen_logdirty
                                (libxl__egc *egc, int domid, unsigned enable,
                                 libxl__logdirty_switch *lds);
@@ -69,10 +56,6 @@ void libxl__domain_common_switch_qemu_logdirty(libxl__egc *egc,
     STATE_AO_GC(lds->ao);
 
     switch (libxl__device_model_version_running(gc, domid)) {
-    case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL:
-        domain_suspend_switch_qemu_xen_traditional_logdirty(egc, domid, enable,
-                                                            lds);
-        break;
     case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN:
         domain_suspend_switch_qemu_xen_logdirty(egc, domid, enable, lds);
         break;
@@ -83,129 +66,6 @@ void libxl__domain_common_switch_qemu_logdirty(libxl__egc *egc,
     }
 }
 
-static void domain_suspend_switch_qemu_xen_traditional_logdirty
-                               (libxl__egc *egc, int domid, unsigned enable,
-                                libxl__logdirty_switch *lds)
-{
-    STATE_AO_GC(lds->ao);
-    int rc;
-    xs_transaction_t t = 0;
-    const char *got;
-
-    if (!lds->cmd_path) {
-        uint32_t dm_domid = libxl_get_stubdom_id(CTX, domid);
-        lds->cmd_path = DEVICE_MODEL_XS_PATH(gc, dm_domid, domid,
-                                             "/logdirty/cmd");
-        lds->ret_path = DEVICE_MODEL_XS_PATH(gc, dm_domid, domid,
-                                             "/logdirty/ret");
-    }
-    lds->cmd = enable ? "enable" : "disable";
-
-    rc = libxl__ev_xswatch_register(gc, &lds->watch,
-                                switch_logdirty_xswatch, lds->ret_path);
-    if (rc) goto out;
-
-    rc = libxl__ev_time_register_rel(ao, &lds->timeout,
-                                switch_logdirty_timeout, 10*1000);
-    if (rc) goto out;
-
-    for (;;) {
-        rc = libxl__xs_transaction_start(gc, &t);
-        if (rc) goto out;
-
-        rc = libxl__xs_read_checked(gc, t, lds->cmd_path, &got);
-        if (rc) goto out;
-
-        if (got) {
-            const char *got_ret;
-            rc = libxl__xs_read_checked(gc, t, lds->ret_path, &got_ret);
-            if (rc) goto out;
-
-            if (!got_ret || strcmp(got, got_ret)) {
-                LOGD(ERROR, domid, "controlling logdirty: qemu was already sent"
-                     " command `%s' (xenstore path `%s') but result is `%s'",
-                     got, lds->cmd_path, got_ret ? got_ret : "<none>");
-                rc = ERROR_FAIL;
-                goto out;
-            }
-            rc = libxl__xs_rm_checked(gc, t, lds->cmd_path);
-            if (rc) goto out;
-        }
-
-        rc = libxl__xs_rm_checked(gc, t, lds->ret_path);
-        if (rc) goto out;
-
-        rc = libxl__xs_write_checked(gc, t, lds->cmd_path, lds->cmd);
-        if (rc) goto out;
-
-        rc = libxl__xs_transaction_commit(gc, &t);
-        if (!rc) break;
-        if (rc<0) goto out;
-    }
-
-    /* OK, wait for some callback */
-    return;
-
- out:
-    LOGD(ERROR, domid, "logdirty switch failed (rc=%d), abandoning suspend",rc);
-    libxl__xs_transaction_abort(gc, &t);
-    switch_logdirty_done(egc,lds,rc);
-}
-
-static void switch_logdirty_xswatch(libxl__egc *egc, libxl__ev_xswatch *watch,
-                            const char *watch_path, const char *event_path)
-{
-    libxl__logdirty_switch *lds = CONTAINER_OF(watch, *lds, watch);
-    STATE_AO_GC(lds->ao);
-    const char *got;
-    xs_transaction_t t = 0;
-    int rc;
-
-    for (;;) {
-        rc = libxl__xs_transaction_start(gc, &t);
-        if (rc) goto out;
-
-        rc = libxl__xs_read_checked(gc, t, lds->ret_path, &got);
-        if (rc) goto out;
-
-        if (!got) {
-            rc = +1;
-            goto out;
-        }
-
-        if (strcmp(got, lds->cmd)) {
-            LOG(ERROR,"logdirty switch: sent command `%s' but got reply `%s'"
-                " (xenstore paths `%s' / `%s')", lds->cmd, got,
-                lds->cmd_path, lds->ret_path);
-            rc = ERROR_FAIL;
-            goto out;
-        }
-
-        rc = libxl__xs_rm_checked(gc, t, lds->cmd_path);
-        if (rc) goto out;
-
-        rc = libxl__xs_rm_checked(gc, t, lds->ret_path);
-        if (rc) goto out;
-
-        rc = libxl__xs_transaction_commit(gc, &t);
-        if (!rc) break;
-        if (rc<0) goto out;
-    }
-
- out:
-    /* rc < 0: error
-     * rc == 0: ok, we are done
-     * rc == +1: need to keep waiting
-     */
-    libxl__xs_transaction_abort(gc, &t);
-
-    if (rc <= 0) {
-        if (rc < 0)
-            LOG(ERROR,"logdirty switch: failed (rc=%d)",rc);
-        switch_logdirty_done(egc,lds,rc);
-    }
-}
-
 static void domain_suspend_switch_qemu_xen_logdirty
                                (libxl__egc *egc, int domid, unsigned enable,
                                 libxl__logdirty_switch *lds)
diff --git a/tools/libs/light/libxl_dom_suspend.c b/tools/libs/light/libxl_dom_suspend.c
index 6091a5f3f6..f0a74fc82c 100644
--- a/tools/libs/light/libxl_dom_suspend.c
+++ b/tools/libs/light/libxl_dom_suspend.c
@@ -85,15 +85,8 @@ void libxl__domain_suspend_device_model(libxl__egc *egc,
     STATE_AO_GC(dsps->ao);
     int rc = 0;
     uint32_t const domid = dsps->domid;
-    const char *const filename = dsps->dm_savefile;
 
     switch (libxl__device_model_version_running(gc, domid)) {
-    case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL: {
-        LOGD(DEBUG, domid, "Saving device model state to %s", filename);
-        libxl__qemu_traditional_cmd(gc, domid, "save");
-        libxl__wait_for_device_model_deprecated(gc, domid, "paused", NULL, NULL, NULL);
-        break;
-    }
     case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN:
         /* calls dsps->callback_device_model_done when done */
         libxl__qmp_suspend_save(egc, dsps); /* must be last */
@@ -420,21 +413,7 @@ static void domain_suspend_callback_common_done(libxl__egc *egc,
 
 int libxl__domain_resume_device_model_deprecated(libxl__gc *gc, uint32_t domid)
 {
-    const char *path, *state;
-
     switch (libxl__device_model_version_running(gc, domid)) {
-    case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL: {
-        uint32_t dm_domid = libxl_get_stubdom_id(CTX, domid);
-
-        path = DEVICE_MODEL_XS_PATH(gc, dm_domid, domid, "/state");
-        state = libxl__xs_read(gc, XBT_NULL, path);
-        if (state != NULL && !strcmp(state, "paused")) {
-            libxl__qemu_traditional_cmd(gc, domid, "continue");
-            libxl__wait_for_device_model_deprecated(gc, domid, "running",
-                                                    NULL, NULL, NULL);
-        }
-        break;
-    }
     case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN:
         if (libxl__qmp_resume(gc, domid))
             return ERROR_FAIL;
@@ -493,8 +472,6 @@ static void dm_resume_dispose(libxl__gc *gc,
     libxl__ev_xswatch_deregister(gc, &dmrs->watch);
 }
 
-static void dm_resume_xswatch_cb(libxl__egc *egc,
-    libxl__ev_xswatch *, const char *watch_path, const char *);
 static void dm_resume_qmp_done(libxl__egc *egc,
     libxl__ev_qmp *qmp, const libxl__json_object *, int rc);
 static void dm_resume_timeout(libxl__egc *egc,
@@ -521,27 +498,6 @@ void libxl__dm_resume(libxl__egc *egc,
     if (rc) goto out;
 
     switch (libxl__device_model_version_running(gc, domid)) {
-    case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL: {
-        uint32_t dm_domid = libxl_get_stubdom_id(CTX, domid);
-        const char *path, *state;
-
-        path = DEVICE_MODEL_XS_PATH(gc, dm_domid, domid, "/state");
-        rc = libxl__xs_read_checked(gc, XBT_NULL, path, &state);
-        if (rc) goto out;
-        if (!state || strcmp(state, "paused")) {
-            /* already running */
-            rc = 0;
-            goto out;
-        }
-
-        rc = libxl__qemu_traditional_cmd(gc, domid, "continue");
-        if (rc) goto out;
-        rc = libxl__ev_xswatch_register(gc, &dmrs->watch,
-                                        dm_resume_xswatch_cb,
-                                        path);
-        if (rc) goto out;
-        break;
-    }
     case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN:
         qmp->ao = dmrs->ao;
         qmp->domid = domid;
@@ -561,27 +517,6 @@ out:
     dm_resume_done(egc, dmrs, rc);
 }
 
-static void dm_resume_xswatch_cb(libxl__egc *egc,
-                                 libxl__ev_xswatch *xsw,
-                                 const char *watch_path,
-                                 const char *event_path)
-{
-    EGC_GC;
-    libxl__dm_resume_state *dmrs = CONTAINER_OF(xsw, *dmrs, watch);
-    int rc;
-    const char *value;
-
-    rc = libxl__xs_read_checked(gc, XBT_NULL, watch_path, &value);
-    if (rc) goto out;
-
-    if (!value || strcmp(value, "running"))
-        return;
-
-    rc = 0;
-out:
-    dm_resume_done(egc, dmrs, rc);
-}
-
 static void dm_resume_qmp_done(libxl__egc *egc,
                                libxl__ev_qmp *qmp,
                                const libxl__json_object *response,
diff --git a/tools/libs/light/libxl_domain.c b/tools/libs/light/libxl_domain.c
index 6751fc785f..dd2e5e9a19 100644
--- a/tools/libs/light/libxl_domain.c
+++ b/tools/libs/light/libxl_domain.c
@@ -1877,8 +1877,6 @@ int libxl_set_vcpuonline(libxl_ctx *ctx, uint32_t domid,
     switch (libxl__domain_type(gc, domid)) {
     case LIBXL_DOMAIN_TYPE_HVM:
         switch (libxl__device_model_version_running(gc, domid)) {
-        case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL:
-            break;
         case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN:
             rc = libxl__ev_time_register_rel(ao, &svos->timeout,
                                              set_vcpuonline_timeout,
@@ -2116,7 +2114,6 @@ static void domain_s3_resume(libxl__ao *ao, libxl__egc *egc, int domid)
     AO_GC;
     libxl__ev_qmp *qmp;
     int rc = 0;
-    int r;
 
     GCNEW(qmp);
     libxl__ev_qmp_init(qmp);
@@ -2128,14 +2125,6 @@ static void domain_s3_resume(libxl__ao *ao, libxl__egc *egc, int domid)
     switch (libxl__domain_type(gc, domid)) {
     case LIBXL_DOMAIN_TYPE_HVM:
         switch (libxl__device_model_version_running(gc, domid)) {
-        case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL:
-            r = xc_hvm_param_set(CTX->xch, domid, HVM_PARAM_ACPI_S_STATE, 0);
-            if (r) {
-                LOGED(ERROR, domid, "Send trigger '%s' failed",
-                      libxl_trigger_to_string(LIBXL_TRIGGER_S3RESUME));
-                rc = ERROR_FAIL;
-            }
-            break;
         case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN:
             rc = libxl__ev_qmp_send(egc, qmp, "system_wakeup", NULL);
             if (rc) goto out;
@@ -2481,10 +2470,6 @@ static void retrieve_domain_configuration_end(libxl__egc *egc,
             case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN:
                 libxl_bitmap_copy(CTX, map, &rdcs->qemuu_cpus);
                 break;
-            case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL:
-                rc = libxl__update_avail_vcpus_xenstore(gc, domid,
-                                                        max_vcpus, map);
-                break;
             default:
                 abort();
             }
diff --git a/tools/libs/light/libxl_internal.c b/tools/libs/light/libxl_internal.c
index c95624933f..2941ca0bbd 100644
--- a/tools/libs/light/libxl_internal.c
+++ b/tools/libs/light/libxl_internal.c
@@ -387,11 +387,9 @@ int libxl__device_model_version_running(libxl__gc *gc, uint32_t domid)
     path = libxl__xs_libxl_path(gc, domid);
     path = GCSPRINTF("%s/dm-version", path);
     dm_version = libxl__xs_read(gc, XBT_NULL, path);
-    if (!dm_version) {
-        return LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL;
-    }
 
-    if (libxl_device_model_version_from_string(dm_version, &value) < 0) {
+    if (!dm_version ||
+        libxl_device_model_version_from_string(dm_version, &value) < 0) {
         LOGD(ERROR, domid, "fatal: %s contain a wrong value (%s)", path, dm_version);
         return -1;
     }
diff --git a/tools/libs/light/libxl_internal.h b/tools/libs/light/libxl_internal.h
index 408a771310..bcd97693d9 100644
--- a/tools/libs/light/libxl_internal.h
+++ b/tools/libs/light/libxl_internal.h
@@ -1423,8 +1423,6 @@ _hidden int libxl__build_hvm(libxl__gc *gc, uint32_t domid,
               libxl_domain_config *d_config,
               libxl__domain_build_state *state);
 
-_hidden int libxl__qemu_traditional_cmd(libxl__gc *gc, uint32_t domid,
-                                        const char *cmd);
 _hidden int libxl__domain_rename(libxl__gc *gc, uint32_t domid,
                                  const char *old_name, const char *new_name,
                                  xs_transaction_t trans);
@@ -2315,8 +2313,7 @@ _hidden char *libxl__json_object_to_json(libxl__gc *gc,
 #define JSON(o) \
     (libxl__json_object_to_json(gc, (o)) ? : "<invalid-json-object>")
 
-  /* Based on /local/domain/$domid/dm-version xenstore key
-   * default is qemu xen traditional */
+  /* Based on /local/domain/$domid/dm-version xenstore key */
 _hidden int libxl__device_model_version_running(libxl__gc *gc, uint32_t domid);
 
 static inline
diff --git a/tools/libs/light/libxl_pci.c b/tools/libs/light/libxl_pci.c
index 1647fd6f47..8c5f914435 100644
--- a/tools/libs/light/libxl_pci.c
+++ b/tools/libs/light/libxl_pci.c
@@ -1020,82 +1020,6 @@ static int pci_multifunction_check(libxl__gc *gc, libxl_device_pci *pci, unsigne
     return 0;
 }
 
-static int pci_ins_check(libxl__gc *gc, uint32_t domid, const char *state, void *priv)
-{
-    char *orig_state = priv;
-
-    if ( !strcmp(state, "pci-insert-failed") )
-        return -1;
-    if ( !strcmp(state, "pci-inserted") )
-        return 0;
-    if ( !strcmp(state, orig_state) )
-        return 1;
-
-    return 1;
-}
-
-static int qemu_pci_add_xenstore(libxl__gc *gc, uint32_t domid,
-                                 libxl_device_pci *pci)
-{
-    libxl_ctx *ctx = libxl__gc_owner(gc);
-    int rc = 0;
-    char *path;
-    char *state, *vdevfn;
-    uint32_t dm_domid;
-
-    dm_domid = libxl_get_stubdom_id(CTX, domid);
-    path = DEVICE_MODEL_XS_PATH(gc, dm_domid, domid, "/state");
-    state = libxl__xs_read(gc, XBT_NULL, path);
-    path = DEVICE_MODEL_XS_PATH(gc, dm_domid, domid, "/parameter");
-    if (pci->vdevfn) {
-        libxl__xs_printf(gc, XBT_NULL, path, PCI_BDF_VDEVFN","PCI_OPTIONS,
-                         pci->domain, pci->bus, pci->dev,
-                         pci->func, pci->vdevfn, pci->msitranslate,
-                         pci->power_mgmt);
-    } else {
-        libxl__xs_printf(gc, XBT_NULL, path, PCI_BDF","PCI_OPTIONS,
-                         pci->domain,  pci->bus, pci->dev,
-                         pci->func, pci->msitranslate, pci->power_mgmt);
-    }
-
-    libxl__qemu_traditional_cmd(gc, domid, "pci-ins");
-    rc = libxl__wait_for_device_model_deprecated(gc, domid, NULL, NULL,
-                                      pci_ins_check, state);
-    path = DEVICE_MODEL_XS_PATH(gc, dm_domid, domid, "/parameter");
-    vdevfn = libxl__xs_read(gc, XBT_NULL, path);
-    path = DEVICE_MODEL_XS_PATH(gc, dm_domid, domid, "/state");
-    if ( rc < 0 )
-        LOGD(ERROR, domid, "qemu refused to add device: %s", vdevfn);
-    else if ( sscanf(vdevfn, "0x%x", &pci->vdevfn) != 1 ) {
-        LOGD(ERROR, domid, "wrong format for the vdevfn: '%s'", vdevfn);
-        rc = -1;
-    }
-    xs_write(ctx->xsh, XBT_NULL, path, state, strlen(state));
-
-    return rc;
-}
-
-static int check_qemu_running(libxl__gc *gc,
-                              libxl_domid domid,
-                              libxl__xswait_state *xswa,
-                              int rc,
-                              const char *state)
-{
-    if (rc) {
-        if (rc == ERROR_TIMEDOUT) {
-            LOGD(ERROR, domid, "%s not ready", xswa->what);
-        }
-        goto out;
-    }
-
-    if (!state || strcmp(state, "running"))
-        return ERROR_NOT_READY;
-
-out:
-    libxl__xswait_stop(gc, xswa);
-    return rc;
-}
-
 typedef struct pci_add_state {
     /* filled by user of do_pci_add */
     libxl__ao_device *aodev;
@@ -1116,8 +1040,6 @@ typedef struct pci_add_state {
     int retries;
 } pci_add_state;
 
-static void pci_add_qemu_trad_watch_state_cb(libxl__egc *egc,
-    libxl__xswait_state *xswa, int rc, const char *state);
 static void pci_add_qmp_device_add(libxl__egc *, pci_add_state *);
 static void pci_add_qmp_device_add_cb(libxl__egc *,
     libxl__ev_qmp *, const libxl__json_object *, int rc);
@@ -1153,16 +1075,6 @@ static void do_pci_add(libxl__egc *egc,
 
     if (type == LIBXL_DOMAIN_TYPE_HVM) {
         switch (libxl__device_model_version_running(gc, domid)) {
-            case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL:
-                pas->xswait.ao = ao;
-                pas->xswait.what = "Device Model";
-                pas->xswait.path = DEVICE_MODEL_XS_PATH(gc,
-                    libxl_get_stubdom_id(CTX, domid), domid, "/state");
-                pas->xswait.timeout_ms = LIBXL_DEVICE_MODEL_START_TIMEOUT * 1000;
-                pas->xswait.callback = pci_add_qemu_trad_watch_state_cb;
-                rc = libxl__xswait_start(gc, &pas->xswait);
-                if (rc) goto out;
-                return;
             case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN:
                 rc = libxl__ev_time_register_rel(ao, &pas->timeout,
                                                  pci_add_timeout,
@@ -1183,29 +1095,6 @@ out:
     pci_add_dm_done(egc, pas, rc); /* must be last */
 }
 
-static void pci_add_qemu_trad_watch_state_cb(libxl__egc *egc,
-                                             libxl__xswait_state *xswa,
-                                             int rc,
-                                             const char *state)
-{
-    pci_add_state *pas = CONTAINER_OF(xswa, *pas, xswait);
-    STATE_AO_GC(pas->aodev->ao);
-
-    /* Convenience aliases */
-    libxl_domid domid = pas->domid;
-    libxl_device_pci *pci = &pas->pci;
-
-    rc = check_qemu_running(gc, domid, xswa, rc, state);
-    if (rc == ERROR_NOT_READY)
-        return;
-    if (rc)
-        goto out;
-
-    rc = qemu_pci_add_xenstore(gc, domid, pci);
-out:
-    pci_add_dm_done(egc, pas, rc); /* must be last */
-}
-
 static void pci_add_qmp_device_add(libxl__egc *egc, pci_add_state *pas)
 {
     STATE_AO_GC(pas->aodev->ao);
@@ -1877,42 +1766,6 @@ static void add_pcis_done(libxl__egc *egc, libxl__multidev *multidev,
     aodev->callback(egc, aodev);
 }
 
-static int qemu_pci_remove_xenstore(libxl__gc *gc, uint32_t domid,
-                                    libxl_device_pci *pci, int force)
-{
-    libxl_ctx *ctx = libxl__gc_owner(gc);
-    char *state;
-    char *path;
-    uint32_t dm_domid;
-
-    dm_domid = libxl_get_stubdom_id(CTX, domid);
-
-    path = DEVICE_MODEL_XS_PATH(gc, dm_domid, domid, "/state");
-    state = libxl__xs_read(gc, XBT_NULL, path);
-    path = DEVICE_MODEL_XS_PATH(gc, dm_domid, domid, "/parameter");
-    libxl__xs_printf(gc, XBT_NULL, path, PCI_BDF, pci->domain,
-                     pci->bus, pci->dev, pci->func);
-
-    /* Remove all functions at once atomically by only signalling
-     * device-model for function 0 */
-    if ( !force && (pci->vdevfn & 0x7) == 0 ) {
-        libxl__qemu_traditional_cmd(gc, domid, "pci-rem");
-        if (libxl__wait_for_device_model_deprecated(gc, domid, "pci-removed",
-                                         NULL, NULL, NULL) < 0) {
-            LOGD(ERROR, domid, "Device Model didn't respond in time");
-            /* This depends on guest operating system acknowledging the
-             * SCI, if it doesn't respond in time then we may wish to
-             * force the removal.
-             */
-            return ERROR_FAIL;
-        }
-    }
-    path = DEVICE_MODEL_XS_PATH(gc, dm_domid, domid, "/state");
-    xs_write(ctx->xsh, XBT_NULL, path, state, strlen(state));
-
-    return 0;
-}
-
 typedef struct pci_remove_state {
     libxl__ao_device *aodev;
     libxl_domid domid;
@@ -1935,8 +1788,6 @@ static void libxl__device_pci_remove_common(libxl__egc *egc,
 static void device_pci_remove_common_next(libxl__egc *egc,
     pci_remove_state *prs, int rc);
 
-static void pci_remove_qemu_trad_watch_state_cb(libxl__egc *egc,
-    libxl__xswait_state *xswa, int rc, const char *state);
 static void pci_remove_qmp_device_del(libxl__egc *egc,
     pci_remove_state *prs);
 static void pci_remove_qmp_device_del_cb(libxl__egc *egc,
@@ -1982,16 +1833,6 @@ static void do_pci_remove(libxl__egc *egc, pci_remove_state *prs)
     if (type == LIBXL_DOMAIN_TYPE_HVM) {
         prs->hvm = true;
         switch (libxl__device_model_version_running(gc, domid)) {
-        case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL:
-            prs->xswait.ao = ao;
-            prs->xswait.what = "Device Model";
-            prs->xswait.path = DEVICE_MODEL_XS_PATH(gc,
-                libxl_get_stubdom_id(CTX, domid), domid, "/state");
-            prs->xswait.timeout_ms = LIBXL_DEVICE_MODEL_START_TIMEOUT * 1000;
-            prs->xswait.callback = pci_remove_qemu_trad_watch_state_cb;
-            rc = libxl__xswait_start(gc, &prs->xswait);
-            if (rc) goto out_fail;
-            return;
         case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN:
             pci_remove_qmp_device_del(egc, prs); /* must be last */
             return;
@@ -2005,30 +1846,6 @@ out_fail:
     pci_remove_detached(egc, prs, rc); /* must be last */
 }
 
-static void pci_remove_qemu_trad_watch_state_cb(libxl__egc *egc,
-                                                libxl__xswait_state *xswa,
-                                                int rc,
-                                                const char *state)
-{
-    pci_remove_state *prs = CONTAINER_OF(xswa, *prs, xswait);
-    STATE_AO_GC(prs->aodev->ao);
-
-    /* Convenience aliases */
-    libxl_domid domid = prs->domid;
-    libxl_device_pci *const pci = &prs->pci;
-
-    rc = check_qemu_running(gc, domid, xswa, rc, state);
-    if (rc == ERROR_NOT_READY)
-        return;
-    if (rc)
-        goto out;
-
-    rc = qemu_pci_remove_xenstore(gc, domid, pci, prs->force);
-
-out:
-    pci_remove_detached(egc, prs, rc);
-}
-
 static void pci_remove_qmp_device_del(libxl__egc *egc,
                                       pci_remove_state *prs)
 {
diff --git a/tools/libs/light/libxl_stream_write.c b/tools/libs/light/libxl_stream_write.c
index 634f3240d1..98d44597a7 100644
--- a/tools/libs/light/libxl_stream_write.c
+++ b/tools/libs/light/libxl_stream_write.c
@@ -252,10 +252,6 @@ void libxl__stream_write_start(libxl__egc *egc,
         stream->device_model_version =
             libxl__device_model_version_running(gc, dss->domid);
         switch (stream->device_model_version) {
-        case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL:
-            stream->emu_sub_hdr.id = EMULATOR_QEMU_TRADITIONAL;
-            break;
-
         case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN:
             stream->emu_sub_hdr.id = EMULATOR_QEMU_UPSTREAM;
             break;
diff --git a/tools/libs/light/libxl_types.idl b/tools/libs/light/libxl_types.idl
index 9bb2969931..246bb3ddd2 100644
--- a/tools/libs/light/libxl_types.idl
+++ b/tools/libs/light/libxl_types.idl
@@ -104,7 +104,6 @@ libxl_channel_connection = Enumeration("channel_connection", [
 
 libxl_device_model_version = Enumeration("device_model_version", [
     (0, "UNKNOWN"),
-    (1, "QEMU_XEN_TRADITIONAL"), # Historical qemu-xen device model (qemu-dm)
     (2, "QEMU_XEN"),             # Upstream based qemu-xen device model
     ])
 
diff --git a/tools/python/xen/migration/libxl.py b/tools/python/xen/migration/libxl.py
index 5dcb50fe02..dc5c7ac355 100644
--- a/tools/python/xen/migration/libxl.py
+++ b/tools/python/xen/migration/libxl.py
@@ -51,12 +51,10 @@ rec_type_to_str = {
 EMULATOR_HEADER_FORMAT = "II"
 
 EMULATOR_ID_unknown       = 0x00000000
-EMULATOR_ID_qemu_trad     = 0x00000001
 EMULATOR_ID_qemu_upstream = 0x00000002
 
 emulator_id_to_str = {
     EMULATOR_ID_unknown       : "Unknown",
-    EMULATOR_ID_qemu_trad     : "Qemu Traditional",
     EMULATOR_ID_qemu_upstream : "Qemu Upstream",
 }
 
diff --git a/tools/xl/xl_parse.c b/tools/xl/xl_parse.c
index 089a88935a..219e924779 100644
--- a/tools/xl/xl_parse.c
+++ b/tools/xl/xl_parse.c
@@ -2733,10 +2733,7 @@ skip_usbdev:
     xlu_cfg_replace_string (config, "device_model_override",
                             &b_info->device_model, 0);
     if (!xlu_cfg_get_string (config, "device_model_version", &buf, 0)) {
-        if (!strcmp(buf, "qemu-xen-traditional")) {
-            b_info->device_model_version
-                = LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL;
-        } else if (!strcmp(buf, "qemu-xen")) {
+        if (!strcmp(buf, "qemu-xen")) {
             b_info->device_model_version
                 = LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN;
         } else {
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 08 12:41:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 12:41:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.941968.1341329 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u28H1-0008QN-M5; Tue, 08 Apr 2025 12:41:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 941968.1341329; Tue, 08 Apr 2025 12:41: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 1u28H1-0008QG-J5; Tue, 08 Apr 2025 12:41:51 +0000
Received: by outflank-mailman (input) for mailman id 941968;
 Tue, 08 Apr 2025 12:41: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=Ii8P=W2=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1u28BP-0003x9-Sa
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 12:36:03 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 08a8e265-1476-11f0-9eaa-5ba50f476ded;
 Tue, 08 Apr 2025 14:36:03 +0200 (CEST)
Received: from imap1.dmz-prg2.suse.org (unknown [10.150.64.97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id 0F8A71F388;
 Tue,  8 Apr 2025 12:36:03 +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 B0D4713691;
 Tue,  8 Apr 2025 12:36: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 Evq+KTIY9WdJIgAAD6G6ig
 (envelope-from <jgross@suse.com>); Tue, 08 Apr 2025 12:36: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: 08a8e265-1476-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1744115763; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=Z9A+fu0CkA24A42L4jKEcCYh+ApxXI6+jMZ38aW5FWI=;
	b=vR5LiNRu4Rzv2zX1WFu1cihY+gbDn7/3B3vt1TbAZ8ju3jfWc/h95N0zraMXhjH577Wpwx
	QYu20l6YbsnByHB318VWn45l2i3XrbF1jvJnoGCnNRoChhYq5xRsumxekKEvGIcgxGIgXu
	Cn+qxFGQHkQKS24drLAaiCzBAAi7TOs=
Authentication-Results: smtp-out2.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1744115763; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=Z9A+fu0CkA24A42L4jKEcCYh+ApxXI6+jMZ38aW5FWI=;
	b=vR5LiNRu4Rzv2zX1WFu1cihY+gbDn7/3B3vt1TbAZ8ju3jfWc/h95N0zraMXhjH577Wpwx
	QYu20l6YbsnByHB318VWn45l2i3XrbF1jvJnoGCnNRoChhYq5xRsumxekKEvGIcgxGIgXu
	Cn+qxFGQHkQKS24drLAaiCzBAAi7TOs=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 6/6] build: don't require full tools build for building stubdoms
Date: Tue,  8 Apr 2025 14:35:24 +0200
Message-ID: <20250408123526.14613-7-jgross@suse.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20250408123526.14613-1-jgross@suse.com>
References: <20250408123526.14613-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -6.80
X-Spamd-Result: default: False [-6.80 / 50.00];
	REPLY(-4.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)[];
	FUZZY_BLOCKED(0.00)[rspamd.com];
	MIME_TRACE(0.00)[0:+];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	ARC_NA(0.00)[];
	RCVD_TLS_ALL(0.00)[];
	R_RATELIMIT(0.00)[to_ip_from(RLme6mccyyenyxxgt1bwti8hnf)];
	FROM_EQ_ENVFROM(0.00)[];
	FROM_HAS_DN(0.00)[];
	TO_DN_SOME(0.00)[];
	RCVD_COUNT_TWO(0.00)[2];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	RCPT_COUNT_SEVEN(0.00)[9];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:mid,suse.com:email,imap1.dmz-prg2.suse.org:helo]
X-Spam-Flag: NO
X-Spam-Level: 

With the drop of qemu-traditional "make stubdom" no longer requires
"make tools" to have finished.

It is enough to add "install-tools-public-headers" as a prereq of
"install-stubdom".

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Makefile b/Makefile
index c9d80a6dc6..67b71ac3d4 100644
--- a/Makefile
+++ b/Makefile
@@ -147,7 +147,7 @@ install-tools: install-tools-public-headers
 	$(MAKE) -C tools install
 
 .PHONY: install-stubdom
-install-stubdom: mini-os-dir install-tools
+install-stubdom: mini-os-dir install-tools-public-headers
 	$(MAKE) -C stubdom install
 ifeq (x86_64,$(XEN_TARGET_ARCH))
 	XEN_TARGET_ARCH=x86_32 $(MAKE) -C stubdom install-grub-if-enabled
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 08 12:41:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 12:41:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.941969.1341336 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u28H2-0008Ta-2v; Tue, 08 Apr 2025 12:41:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 941969.1341336; Tue, 08 Apr 2025 12:41: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 1u28H1-0008Sv-QA; Tue, 08 Apr 2025 12:41:51 +0000
Received: by outflank-mailman (input) for mailman id 941969;
 Tue, 08 Apr 2025 12:41: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=Ii8P=W2=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1u28BF-0003x9-Lc
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 12:35:53 +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 01f69963-1476-11f0-9eaa-5ba50f476ded;
 Tue, 08 Apr 2025 14:35:52 +0200 (CEST)
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 C1B411F388;
 Tue,  8 Apr 2025 12:35:51 +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 5E16713691;
 Tue,  8 Apr 2025 12:35:51 +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 y6V4FScY9WctIgAAD6G6ig
 (envelope-from <jgross@suse.com>); Tue, 08 Apr 2025 12:35: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: 01f69963-1476-11f0-9eaa-5ba50f476ded
Authentication-Results: smtp-out2.suse.de;
	none
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Community Manager <community.manager@xenproject.org>,
	Samuel Thibault <samuel.thibault@ens-lyon.org>
Subject: [PATCH v2 4/6] tools: remove qemu-traditional
Date: Tue,  8 Apr 2025 14:35:22 +0200
Message-ID: <20250408123526.14613-5-jgross@suse.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20250408123526.14613-1-jgross@suse.com>
References: <20250408123526.14613-1-jgross@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Rspamd-Pre-Result: action=no action;
	module=replies;
	Message is reply to one we originated
X-Spam-Level: 
X-Spamd-Result: default: False [-4.00 / 50.00];
	REPLY(-4.00)[];
	TAGGED_RCPT(0.00)[];
	ASN(0.00)[asn:25478, ipnet:::/0, country:RU]
X-Spam-Score: -4.00
X-Spam-Flag: NO
X-Rspamd-Queue-Id: C1B411F388
X-Rspamd-Pre-Result: action=no action;
	module=replies;
	Message is reply to one we originated
X-Rspamd-Action: no action
X-Rspamd-Server: rspamd2.dmz-prg2.suse.org

Remove qemu traditional from the tree.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 .gitignore                                    |  3 -
 CHANGELOG.md                                  |  1 +
 Config.mk                                     | 24 -----
 INSTALL                                       | 12 ---
 MAINTAINERS                                   |  4 -
 README                                        |  2 +-
 SUPPORT.md                                    | 16 ----
 config/Tools.mk.in                            |  1 -
 docs/process/branching-checklist.txt          |  1 -
 docs/process/release-technician-checklist.txt |  1 -
 stubdom/Makefile                              | 84 +----------------
 stubdom/configure                             | 89 -------------------
 stubdom/configure.ac                          | 15 ----
 stubdom/ioemu-minios.cfg                      |  6 --
 tools/Makefile                                | 58 ------------
 tools/Rules.mk                                |  3 -
 tools/config.h.in                             |  3 -
 tools/configure                               | 42 +--------
 tools/configure.ac                            | 21 +----
 19 files changed, 10 insertions(+), 376 deletions(-)
 delete mode 100644 stubdom/ioemu-minios.cfg

diff --git a/.gitignore b/.gitignore
index 53f5df0003..ccc0bebee6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -255,9 +255,6 @@ LibVNCServer*
 tools/qemu-xen-dir-remote
 tools/qemu-xen-dir
 
-tools/qemu-xen-traditional-dir-remote
-tools/qemu-xen-traditional-dir
-
 tools/firmware/seabios-dir-remote
 tools/firmware/seabios-dir
 
diff --git a/CHANGELOG.md b/CHANGELOG.md
index ce4fcf2feb..d150b9fa1b 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -21,6 +21,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
    - Smoke tests for the FreeBSD Xen builds in Cirrus CI.
 
 ### Removed
+ - Support of qemu-traditional has been removed.
 
 ## [4.20.0](https://xenbits.xenproject.org/gitweb/?p=xen.git;a=shortlog;h=RELEASE-4.20.0) - 2025-03-05
 
diff --git a/Config.mk b/Config.mk
index 8be7733d9e..d61257a286 100644
--- a/Config.mk
+++ b/Config.mk
@@ -208,22 +208,12 @@ XEN_EXTFILES_URL ?= https://xenbits.xen.org/xen-extfiles
 
 # Where to look for inlined subtrees (for example, from a tarball)
 QEMU_UPSTREAM_INTREE ?= $(XEN_ROOT)/tools/qemu-xen
-QEMU_TRADITIONAL_INTREE ?= $(XEN_ROOT)/tools/qemu-xen-traditional
 
 
 # Handle legacy options
 ifneq (,$(SEABIOS_UPSTREAM_TAG))
 SEABIOS_UPSTREAM_REVISION ?= $(SEABIOS_UPSTREAM_TAG)
 endif
-ifneq (,$(QEMU_REMOTE))
-QEMU_TRADITIONAL_URL ?= $(QEMU_REMOTE)
-endif
-ifneq (,$(CONFIG_QEMU))
-QEMU_TRADITIONAL_LOC ?= $(CONFIG_QEMU)
-endif
-ifneq (,$(QEMU_TAG))
-QEMU_TRADITIONAL_REVISION ?= $(QEMU_TAG)
-endif
 
 OVMF_UPSTREAM_URL ?= https://xenbits.xen.org/git-http/ovmf.git
 OVMF_UPSTREAM_REVISION ?= ba91d0292e593df8528b66f99c1b0b14fadc8e16
@@ -239,20 +229,6 @@ SEABIOS_UPSTREAM_REVISION ?= rel-1.16.3
 
 ETHERBOOT_NICS ?= rtl8139 8086100e
 
-
-QEMU_TRADITIONAL_URL ?= https://xenbits.xen.org/git-http/qemu-xen-traditional.git
-QEMU_TRADITIONAL_REVISION ?= 3d273dd05e51e5a1ffba3d98c7437ee84e8f8764
-# Wed Jul 15 10:01:40 2020 +0100
-# qemu-trad: remove Xen path dependencies
-
-# Specify which qemu-dm to use. This may be `ioemu' to use the old
-# Mercurial in-tree version, or a local directory, or a git URL.
-# QEMU_UPSTREAM_LOC ?= `pwd`/$(XEN_ROOT)/../qemu-xen.git
-
-# Defaults for subtree locations
-QEMU_TRADITIONAL_LOC ?= $(call or,$(wildcard $(QEMU_TRADITIONAL_INTREE)),\
-                                  $(QEMU_TRADITIONAL_URL))
-
 QEMU_UPSTREAM_LOC ?= $(call or,$(wildcard $(QEMU_UPSTREAM_INTREE)),\
                                $(QEMU_UPSTREAM_URL))
 
diff --git a/INSTALL b/INSTALL
index 88c1464816..786e3da996 100644
--- a/INSTALL
+++ b/INSTALL
@@ -113,15 +113,6 @@ Build a private copy of SeaBIOS.
 Use the given SeaBIOS binary instead of compiling a private copy.
   --with-system-seabios=PATH
 
-Build the old qemu used by xm/xend. This is required if existing domUs
-should be migrated to this host, or if existing domU snapshots should be
-started with this version of the tools. Only if all domUs used the new
-upstream qemu during initial start it is safe to disable this option.
-The old qemu requires rombios, which can be disable along with
-qemu-traditional.
-  --enable-qemu-traditional
-  --enable-rombios
-
 The libxl toolstack uses the upstream qemu per default. A private copy
 will be built. If desired this private copy can be configured with
 additional options passed to its configure script.
@@ -245,7 +236,6 @@ locations.
 XEN_EXTFILES_URL=
 OVMF_UPSTREAM_URL=
 QEMU_UPSTREAM_URL=
-QEMU_TRADITIONAL_URL=
 SEABIOS_UPSTREAM_URL=
 MINIOS_UPSTREAM_URL=
 
@@ -253,7 +243,6 @@ Using additional CFLAGS to build tools which will run in dom0 is
 required when building distro packages. These variables can be used to
 pass RPM_OPT_FLAGS.
 EXTRA_CFLAGS_XEN_TOOLS=
-EXTRA_CFLAGS_QEMU_TRADITIONAL=
 EXTRA_CFLAGS_QEMU_XEN=
 
 Additional CFLAGS may be supplied to the build of the hypervisor by
@@ -340,7 +329,6 @@ sudo make install BOOT_DIR=/ood/path/boot EFI_DIR=/odd/path/efi
 export WGET=$(type -P false)
 export GIT=$(type -P false)
 export EXTRA_CFLAGS_XEN_TOOLS="$RPM_OPT_FLAGS"
-export EXTRA_CFLAGS_QEMU_TRADITIONAL="$RPM_OPT_FLAGS"
 export EXTRA_CFLAGS_QEMU_XEN="$RPM_OPT_FLAGS"
 %configure \
         --with-initddir=%{_initddir}
diff --git a/MAINTAINERS b/MAINTAINERS
index c11b82eca9..7d1b3b8641 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -466,10 +466,6 @@ M:	Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
 S:	Supported
 F:	tools/python
 
-QEMU-DM
-S:	Supported
-T:	git https://xenbits.xenproject.org/git-http/qemu-xen-traditional.git
-
 QEMU UPSTREAM
 M:	Stefano Stabellini <sstabellini@kernel.org>
 M:	Anthony Perard <anthony.perard@vates.tech>
diff --git a/README b/README
index be90be3910..6ee58f7b35 100644
--- a/README
+++ b/README
@@ -80,7 +80,7 @@ disabled at compile time:
       libnl-3-dev, etc).  Required if network buffering is desired
       when using Remus with libxl.  See docs/README.remus for detailed
       information.
-    * 16-bit x86 assembler, loader and compiler for qemu-traditional / rombios
+    * 16-bit x86 assembler, loader and compiler for rombios
       (dev86 rpm or bin86 & bcc debs)
     * Development install of liblzma for rombios
     * Development install of libbz2, liblzma, liblzo2, and libzstd for DomU
diff --git a/SUPPORT.md b/SUPPORT.md
index e8fd0c251e..5eecf1dcbc 100644
--- a/SUPPORT.md
+++ b/SUPPORT.md
@@ -998,21 +998,6 @@ See the section **Blkback** for image formats supported by QEMU.
 
     Status: Supported, not security supported
 
-### qemu-xen-traditional ###
-
-The Xen Project provides an old version of qemu with modifications
-which enable use as a device model stub domain.  The old version is
-normally selected by default only in a stub dm configuration, but it
-can be requested explicitly in other configurations, for example in
-`xl` with `device_model_version="QEMU_XEN_TRADITIONAL"`.
-
-    Status, Device Model Stub Domains: Supported, with caveats
-    Status, as host process device model: No security support, not recommended
-
-qemu-xen-traditional is security supported only for those available
-devices which are supported for mainstream QEMU (see above), with
-trusted driver domains (see Device Model Stub Domains).
-
 ## Virtual Firmware
 
 ### x86/HVM iPXE
@@ -1031,7 +1016,6 @@ as the guest itself.
 Booting a guest via guest BIOS firmware
 
     Status, SeaBIOS (qemu-xen): Supported
-    Status, ROMBIOS (qemu-xen-traditional): Supported
 
 ### x86/HVM OVMF
 
diff --git a/config/Tools.mk.in b/config/Tools.mk.in
index 37c071961e..463ab75965 100644
--- a/config/Tools.mk.in
+++ b/config/Tools.mk.in
@@ -43,7 +43,6 @@ CONFIG_OVMF         := @ovmf@
 CONFIG_ROMBIOS      := @rombios@
 CONFIG_SEABIOS      := @seabios@
 CONFIG_IPXE         := @ipxe@
-CONFIG_QEMU_TRAD    := @qemu_traditional@
 CONFIG_QEMU_XEN     := @qemu_xen@
 CONFIG_QEMUU_EXTRA_ARGS:= @EXTRA_QEMUU_CONFIGURE_ARGS@
 CONFIG_LIBNL        := @libnl@
diff --git a/docs/process/branching-checklist.txt b/docs/process/branching-checklist.txt
index aa7a27eed5..9632888a56 100644
--- a/docs/process/branching-checklist.txt
+++ b/docs/process/branching-checklist.txt
@@ -71,7 +71,6 @@ ov=4.0
 Ensure references to qemu trees and Mini-OS in xen.git's Config.mk are updated.
 The variables and there content should be:
   * QEMU_UPSTREAM_REVISION: qemu-xen-X.Y.0
-  * QEMU_TRADITIONAL_REVISION: xen-X.Y.0
   * MINIOS_UPSTREAM_REVISION: xen-RELEASE-X.Y.0
 Where X.Y is the release version (e.g. 4.17).
 
diff --git a/docs/process/release-technician-checklist.txt b/docs/process/release-technician-checklist.txt
index 829e8ec47b..64ed9fd5b2 100644
--- a/docs/process/release-technician-checklist.txt
+++ b/docs/process/release-technician-checklist.txt
@@ -56,7 +56,6 @@ t=RELEASE-$r
 
 * change xen-unstable Config.mk
 #   QEMU_UPSTREAM_REVISION,
-#   QEMU_TRADITIONAL_REVISION
 #   MINIOS_UPSTREAM_REVISION
 #     (drop any references to the specific commits, e.g. date or title)
 * change SUPPORT.md heading version number; -unstable or -rc tag
diff --git a/stubdom/Makefile b/stubdom/Makefile
index 724ce40365..82fc1e90f8 100644
--- a/stubdom/Makefile
+++ b/stubdom/Makefile
@@ -7,7 +7,6 @@ export PKG_CONFIG_DIR = $(CURDIR)/pkg-config
 
 # Remove flags which are meant for tools, e.g. "-m64"
 export EXTRA_CFLAGS_XEN_TOOLS=
-export EXTRA_CFLAGS_QEMU_TRADITIONAL=
 
 export stubdom=y
 export debug=y
@@ -267,43 +266,6 @@ cross-tpmemu: $(TPMEMU_STAMPFILE)
 .PHONY: $(CROSS_ROOT)
 $(CROSS_ROOT): cross-newlib cross-zlib cross-libpci
 
-QEMU_ROOT := $(shell if [ -d "$(QEMU_TRADITIONAL_LOC)" ]; then echo "$(QEMU_TRADITIONAL_LOC)"; else echo .; fi)
-
-ifneq ($(filter ioemu,$(STUBDOM_TARGETS)),)
-IOEMU_LINKFARM_TARGET := ioemu/linkfarm.stamp
-endif
-
-ifeq ($(QEMU_ROOT),.)
-$(XEN_ROOT)/tools/qemu-xen-traditional-dir:
-	$(MAKE) DESTDIR= -C $(XEN_ROOT)/tools qemu-xen-traditional-dir-find
-
-ioemu/linkfarm.stamp: $(XEN_ROOT)/tools/qemu-xen-traditional-dir
-	mkdir -p ioemu
-	set -e;									\
-	$(buildmakevars2shellvars);						\
-	cd ioemu;								\
-	src="$$XEN_ROOT/tools/qemu-xen-traditional-dir"; export src;		\
-	(cd $$src && find * -type d						\
-		$(addprefix ! -path , '*-softmmu*' '*-linux-user*') -print)	\
-		| xargs mkdir -p;						\
-	(cd $$src && find *	! -type l  -type f  $(addprefix ! -path ,	\
-			'*.[oda1]' 'config-*' config.mak qemu-dm qemu-img-xen	\
-			'*.html' '*.pod' '*-softmmu*' '*-linux-user*'		\
-			)) >linkfarm.stamp.tmp;				\
-	cmp -s linkfarm.stamp.tmp linkfarm.stamp &&			\
-		rm linkfarm.stamp.tmp || {				\
-		mv linkfarm.stamp.tmp linkfarm.stamp;			\
-		cat linkfarm.stamp | while read f;			\
-			do rm -f "$$f"; ln -s "$$src/$$f" "$$f"; done;	\
-	}
-else
-export QEMU_ROOT
-
-ioemu/linkfarm.stamp:
-	mkdir -p ioemu
-	touch ioemu/linkfarm.stamp
-endif
-
 #######
 # libraries under tools/libs
 #######
@@ -380,29 +342,6 @@ $(TARGETS_MINIOS): mini-os-%:
                 mkdir -p $@/$$i ; \
 	done
 
-#######
-# ioemu
-#######
-
-ioemu-minios.gen.cfg: APP_LIBS = evtchn gnttab ctrl guest
-ioemu-minios.gen.cfg: ioemu-minios.cfg Makefile
-	$(GEN_config) >$@
-
-ioemu-minios-config.mk: ioemu-minios.gen.cfg
-	MINIOS_CONFIG="$(CURDIR)/$<" CONFIG_FILE="$(CURDIR)/$@" $(MAKE) DESTDIR= -C $(MINI_OS) config
-
-.PHONY: ioemu
-ioemu: cross-zlib cross-libpci libxenguest ioemu-minios-config.mk
-	[ -f ioemu/config-host.mak ] || \
-	  ( $(buildmakevars2shellvars); \
-	    cd ioemu ; \
-	    LWIPDIR=$(CURDIR)/lwip-$(XEN_TARGET_ARCH) \
-	    TARGET_CPPFLAGS="$(TARGET_CPPFLAGS) $(shell cat ioemu-minios-config.mk)" \
-	    TARGET_CFLAGS="$(TARGET_CFLAGS)" \
-	    TARGET_LDFLAGS="$(TARGET_LDFLAGS)" \
-	    $(QEMU_ROOT)/xen-setup-stubdom )
-	$(MAKE) DESTDIR= -C ioemu -f $(QEMU_ROOT)/Makefile
-
 ###
 # C
 ###
@@ -496,11 +435,6 @@ xenstorepvh: $(CROSS_ROOT) xenstorepvh-minios-config.mk
 # minios
 ########
 
-.PHONY: ioemu-stubdom
-ioemu-stubdom: APP_OBJS=$(CURDIR)/ioemu/i386-stubdom/qemu.a $(CURDIR)/ioemu/i386-stubdom/libqemu.a $(CURDIR)/ioemu/libqemu_common.a
-ioemu-stubdom: mini-os-$(XEN_TARGET_ARCH)-ioemu lwip-$(XEN_TARGET_ARCH) libxenguest ioemu
-	DEF_CPPFLAGS="$(TARGET_CPPFLAGS)" DEF_CFLAGS="$(TARGET_CFLAGS)" DEF_LDFLAGS="$(TARGET_LDFLAGS)" MINIOS_CONFIG="$(CURDIR)/ioemu-minios.gen.cfg" $(MAKE) DESTDIR= -C $(MINI_OS) OBJ_DIR=$(CURDIR)/$< LWIPDIR=$(CURDIR)/lwip-$(XEN_TARGET_ARCH) APP_OBJS="$(APP_OBJS)"
-
 .PHONY: c-stubdom
 c-stubdom: mini-os-$(XEN_TARGET_ARCH)-c lwip-$(XEN_TARGET_ARCH) libxenguest c
 	DEF_CPPFLAGS="$(TARGET_CPPFLAGS)" DEF_CFLAGS="$(TARGET_CFLAGS)" DEF_LDFLAGS="$(TARGET_LDFLAGS)" MINIOS_CONFIG="$(CURDIR)/c/minios.cfg" $(MAKE) DESTDIR= -C $(MINI_OS) OBJ_DIR=$(CURDIR)/$< LWIPDIR=$(CURDIR)/lwip-$(XEN_TARGET_ARCH) APP_OBJS=$(CURDIR)/c/main.a
@@ -544,13 +478,6 @@ else
 install: $(STUBDOMPATH)
 endif
 
-install-ioemu: ioemu-stubdom
-	$(INSTALL_DIR) "$(DESTDIR)$(LIBEXEC_BIN)"
-	$(INSTALL_PROG) stubdom-dm "$(DESTDIR)$(LIBEXEC_BIN)"
-	$(INSTALL_DATA) stubdompath.sh "$(DESTDIR)$(LIBEXEC_BIN)"
-	$(INSTALL_DIR) "$(DESTDIR)$(XENFIRMWAREDIR)"
-	$(INSTALL_DATA) mini-os-$(XEN_TARGET_ARCH)-ioemu/mini-os.gz "$(DESTDIR)$(XENFIRMWAREDIR)/ioemu-stubdom.gz"
-
 install-grub: pv-grub
 	$(INSTALL_DIR) "$(DESTDIR)$(XENFIRMWAREDIR)"
 	$(INSTALL_DATA) mini-os-$(XEN_TARGET_ARCH)-grub/mini-os.gz "$(DESTDIR)$(XENFIRMWAREDIR)/pv-grub-$(XEN_TARGET_ARCH).gz"
@@ -593,11 +520,6 @@ else
 uninstall:
 endif
 
-uninstall-ioemu:
-	rm -f $(DESTDIR)$(LIBEXEC_BIN)/stubdom-dm
-	rm -f $(DESTDIR)$(LIBEXEC_BIN)/stubdompath.sh
-	rm -f $(DESTDIR)$(XENFIRMWAREDIR)/ioemu-stubdom.gz
-
 uninstall-grub:
 	rm -f $(DESTDIR)$(XENFIRMWAREDIR)/pv-grub-$(XEN_TARGET_ARCH).gz
 
@@ -617,11 +539,10 @@ uninstall-vtpmmgr:
 # clean
 #######
 
-# Only clean the libxc/ioemu/mini-os part
+# Only clean the libxc/mini-os part
 .PHONY: clean
 clean: $(foreach lib,$(STUB_LIBS),clean-libxen$(lib))
 clean:
-	rm -fr mini-os-$(XEN_TARGET_ARCH)-ioemu
 	rm -fr mini-os-$(XEN_TARGET_ARCH)-c
 	rm -fr mini-os-$(XEN_TARGET_ARCH)-grub
 	rm -fr mini-os-$(XEN_TARGET_ARCH)-xenstore
@@ -636,7 +557,6 @@ clean:
 	rm -f *-minios-config.mk
 	rm -f *.gen.cfg
 	rm -fr pkg-config
-	-[ ! -d ioemu ] || $(MAKE) DESTDIR= -C ioemu clean
 	-[ ! -d xenstore ] || $(MAKE) -f $(CURDIR)/xenlibs.mk -C xenstore clean
 	-[ ! -d xenstorepvh ] || $(MAKE) -f $(CURDIR)/xenlibs.mk -C xenstorepvh clean
 
@@ -647,7 +567,7 @@ crossclean: clean
 	rm -fr newlib-$(XEN_TARGET_ARCH)
 	rm -fr zlib-$(XEN_TARGET_ARCH) pciutils-$(XEN_TARGET_ARCH)
 	rm -fr libs-$(XEN_TARGET_ARCH)
-	rm -fr ioemu xenstore xenstorepvh
+	rm -fr xenstore xenstorepvh
 	rm -fr gmp-$(XEN_TARGET_ARCH)
 	rm -fr polarssl-$(XEN_TARGET_ARCH)
 	rm -fr tpm_emulator-$(XEN_TARGET_ARCH)
diff --git a/stubdom/configure b/stubdom/configure
index 08cacf764c..9dd0e7c796 100755
--- a/stubdom/configure
+++ b/stubdom/configure
@@ -622,7 +622,6 @@ STUBDOM_UNINSTALL
 STUBDOM_INSTALL
 STUBDOM_BUILD
 STUBDOM_TARGETS
-ioemu
 vtpmmgr
 vtpm
 TPMEMU_VERSION
@@ -713,14 +712,12 @@ SHELL'
 ac_subst_files=''
 ac_user_opts='
 enable_option_checking
-enable_ioemu_stubdom
 enable_c_stubdom
 enable_pv_grub
 enable_xenstore_stubdom
 enable_xenstorepvh_stubdom
 enable_vtpm_stubdom
 enable_vtpmmgr_stubdom
-enable_qemu_traditional
 enable_debug
 enable_extfiles
 '
@@ -1363,7 +1360,6 @@ Optional Features:
   --disable-option-checking  ignore unrecognized --enable/--with options
   --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
   --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
-  --enable-ioemu-stubdom  Build and install ioemu-stubdom
   --enable-c-stubdom      Build and install c-stubdom (default is DISABLED)
   --enable-pv-grub        Build and install pv-grub (default is DISABLED)
   --disable-xenstore-stubdom
@@ -1375,7 +1371,6 @@ Optional Features:
   --enable-vtpm-stubdom   Build and install vtpm-stubdom
   --enable-vtpmmgr-stubdom
                           Build and install vtpmmgr-stubdom
-
   --disable-debug         Disable debug build of stubdom (default is ENABLED)
   --disable-extfiles      Use xen extfiles repository for libraries (default
                           is ENABLED)
@@ -2411,40 +2406,6 @@ case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
 
 # Enable/disable stub domains
 
-# Check whether --enable-ioemu-stubdom was given.
-if test ${enable_ioemu_stubdom+y}
-then :
-  enableval=$enable_ioemu_stubdom;
-
-if test "x$enableval" = "xyes"
-then :
-
-
-ioemu=y
-STUBDOM_TARGETS="$STUBDOM_TARGETS ioemu"
-STUBDOM_BUILD="$STUBDOM_BUILD ioemu-stubdom"
-STUBDOM_INSTALL="$STUBDOM_INSTALL install-ioemu"
-STUBDOM_UNINSTALL="$STUBDOM_UNINSTALL install-ioemu"
-
-
-else $as_nop
-
-if test "x$enableval" = "xno"
-then :
-
-
-ioemu=n
-
-
-fi
-
-fi
-
-
-fi
-
-
-
 # Check whether --enable-c-stubdom was given.
 if test ${enable_c_stubdom+y}
 then :
@@ -2685,35 +2646,6 @@ fi
 
 
 
-# Check whether --enable-qemu-traditional was given.
-if test ${enable_qemu_traditional+y}
-then :
-  enableval=$enable_qemu_traditional;
-fi
-
-if test "x$enable_qemu_traditional" = "xyes"
-then :
-
-    qemu_traditional=y
-else $as_nop
-
-    qemu_traditional=n
-
-fi
-if test "x$ioemu" = "x"
-then :
-
-    ioemu=$qemu_traditional
-
-fi
-echo "x$ioemu$qemu_traditional"
-if test "x$ioemu$qemu_traditional" = "xyn"
-then :
-
-    as_fn_error $? "IOEMU stubdomain requires qemu-traditional" "$LINENO" 5
-
-fi
-
 
 # Check whether --enable-debug was given.
 if test ${enable_debug+y}
@@ -4358,27 +4290,6 @@ fi
 
 
 
-if test "x$ioemu" = "xy" || test "x$ioemu" = "x"
-then :
-
-
-ioemu=y
-STUBDOM_TARGETS="$STUBDOM_TARGETS ioemu"
-STUBDOM_BUILD="$STUBDOM_BUILD ioemu-stubdom"
-STUBDOM_INSTALL="$STUBDOM_INSTALL install-ioemu"
-STUBDOM_UNINSTALL="$STUBDOM_UNINSTALL install-ioemu"
-
-
-else $as_nop
-
-
-ioemu=n
-
-
-fi
-
-
-
 
 
 
diff --git a/stubdom/configure.ac b/stubdom/configure.ac
index fc736c0387..f07b08c5b3 100644
--- a/stubdom/configure.ac
+++ b/stubdom/configure.ac
@@ -18,7 +18,6 @@ m4_include([../m4/depends.m4])
 m4_include([../m4/fetcher.m4])
 
 # Enable/disable stub domains
-AX_STUBDOM_CONDITIONAL([ioemu-stubdom], [ioemu])
 AX_STUBDOM_DEFAULT_DISABLE([c-stubdom], [c])
 AX_STUBDOM_DEFAULT_DISABLE([pv-grub], [grub])
 AX_STUBDOM_DEFAULT_ENABLE([xenstore-stubdom], [xenstore])
@@ -26,19 +25,6 @@ AX_STUBDOM_DEFAULT_ENABLE([xenstorepvh-stubdom], [xenstorepvh])
 AX_STUBDOM_CONDITIONAL([vtpm-stubdom], [vtpm])
 AX_STUBDOM_CONDITIONAL([vtpmmgr-stubdom], [vtpmmgr])
 
-AC_ARG_ENABLE([qemu-traditional])
-AS_IF([test "x$enable_qemu_traditional" = "xyes"], [
-    qemu_traditional=y],[
-    qemu_traditional=n
-])
-AS_IF([test "x$ioemu" = "x"], [
-    ioemu=$qemu_traditional
-])
-echo "x$ioemu$qemu_traditional"
-AS_IF([test "x$ioemu$qemu_traditional" = "xyn"], [
-    AC_MSG_ERROR(IOEMU stubdomain requires qemu-traditional)
-])
-
 AX_ARG_DEFAULT_ENABLE([debug], [Disable debug build of stubdom])
 AX_ARG_DEFAULT_ENABLE([extfiles], [Use xen extfiles repository for libraries])
 
@@ -69,7 +55,6 @@ AX_STUBDOM_AUTO_DEPENDS([vtpmmgr], [vtpm])
 #Conditionally enable these stubdoms based on the presense of dependencies
 AX_STUBDOM_CONDITIONAL_FINISH([vtpm-stubdom], [vtpm])
 AX_STUBDOM_CONDITIONAL_FINISH([vtpmmgr-stubdom], [vtpmmgr])
-AX_STUBDOM_CONDITIONAL_FINISH([ioemu-stubdom], [ioemu])
 
 AX_STUBDOM_FINISH
 AC_OUTPUT()
diff --git a/stubdom/ioemu-minios.cfg b/stubdom/ioemu-minios.cfg
deleted file mode 100644
index 6153ae05f8..0000000000
--- a/stubdom/ioemu-minios.cfg
+++ /dev/null
@@ -1,6 +0,0 @@
-CONFIG_LIBC=y
-CONFIG_LWIP=y
-CONFIG_START_NETWORK=n
-CONFIG_QEMU_XS_ARGS=y
-CONFIG_PCIFRONT=y
-XEN_INTERFACE_VERSION=__XEN_LATEST_INTERFACE_VERSION__
diff --git a/tools/Makefile b/tools/Makefile
index e9e1cda305..6ecf7c0da8 100644
--- a/tools/Makefile
+++ b/tools/Makefile
@@ -24,7 +24,6 @@ SUBDIRS-$(CONFIG_Linux) += vchan
 
 # do not recurse in to a dir we are about to delete
 ifneq "$(MAKECMDGOALS)" "distclean"
-SUBDIRS-$(CONFIG_QEMU_TRAD) += qemu-xen-traditional-dir
 SUBDIRS-$(CONFIG_QEMU_XEN) += qemu-xen-dir
 endif
 
@@ -79,7 +78,6 @@ clean: subdirs-clean
 
 .PHONY: distclean
 distclean: subdirs-distclean clean
-	rm -rf qemu-xen-traditional-dir qemu-xen-traditional-dir-remote
 	rm -rf qemu-xen-dir qemu-xen-dir-remote qemu-xen-build
 	rm -rf ../config/Tools.mk config.h config.log config.status \
 		config.cache autom4te.cache
@@ -97,11 +95,6 @@ QEMU_UPSTREAM_RPATH := -Wl,-rpath,$(LIBEXEC_LIB)
 IOEMU_EXTRA_LDFLAGS :=
 endif
 
-QEMU_ROOT := $(shell if [ -d "$(QEMU_TRADITIONAL_LOC)" ]; then echo "$(QEMU_TRADITIONAL_LOC)"; else echo .; fi)
-ifneq ($(QEMU_ROOT),.)
-export QEMU_ROOT
-endif
-
 # Targets for external trees:
 #  ${target}-dir-find
 #    See if the directory exists and check it out if not.
@@ -136,54 +129,6 @@ endif
 #   ${TARGET}_LOC
 #     The ultimate location of the source (either a local dir or remote URL)
 
-# External target: qemu-xen-traditional
-qemu-xen-traditional-dir-find:
-	set -ex; \
-	if test -d $(QEMU_TRADITIONAL_LOC); then \
-		mkdir -p qemu-xen-traditional-dir; \
-	else \
-		export GIT=$(GIT); \
-		$(XEN_ROOT)/scripts/git-checkout.sh $(QEMU_TRADITIONAL_LOC) $(QEMU_TRADITIONAL_REVISION) qemu-xen-traditional-dir; \
-	fi
-
-.PHONY: qemu-xen-traditional-dir-force-update
-qemu-xen-traditional-dir-force-update: qemu-xen-traditional-dir-find
-	set -ex; \
-	if [ "$(QEMU_TRADITIONAL_REVISION)" ]; then \
-		cd qemu-xen-traditional-dir-remote; \
-		$(GIT) fetch origin; \
-		$(GIT) reset --hard $(QEMU_TRADITIONAL_REVISION); \
-	fi
-
-qemu-traditional-recurse = \
-	set -e; \
-		$(buildmakevars2shellvars); \
-		export CONFIG_BLKTAP1=n; \
-		export BUILDING_QEMU_TRAD=y; \
-		cd qemu-xen-traditional-dir; \
-		$(1)
-
-subdir-all-qemu-xen-traditional-dir: qemu-xen-traditional-dir-find
-	$(call qemu-traditional-recurse,\
-		$(QEMU_ROOT)/xen-setup \
-		--extra-cflags="-D__XEN_TOOLS__ $(EXTRA_CFLAGS_QEMU_TRADITIONAL)" \
-		$(IOEMU_EXTRA_LDFLAGS) \
-		--cpu=$(IOEMU_CPU_ARCH) \
-		$(IOEMU_CONFIGURE_CROSS); \
-		$(MAKE) all \
-	)
-
-subdir-install-qemu-xen-traditional-dir: subdir-all-qemu-xen-traditional-dir
-	$(call qemu-traditional-recurse,$(MAKE) install)
-
-subdir-clean-qemu-xen-traditional-dir:
-	set -e; if test -d qemu-xen-traditional-dir/.; then \
-		$(MAKE) -C qemu-xen-traditional-dir clean; \
-	fi
-subdir-uninstall-qemu-xen-traditional-dir:
-	rm -f $(D)$(bindir)/qemu-nbd*
-	rm -f $(D)$(bindir)/qemu-img*
-
 # External target: qemu-xen
 qemu-xen-dir-find:
 	if test -d $(QEMU_UPSTREAM_LOC) ; then \
@@ -276,9 +221,6 @@ subtree-force-update:
 ifeq ($(CONFIG_QEMU_XEN),y)
 	$(MAKE) qemu-xen-dir-force-update
 endif
-ifeq ($(CONFIG_QEMU_TRAD),y)
-	$(MAKE) qemu-xen-traditional-dir-force-update
-endif
 ifeq ($(CONFIG_X86),y)
 	$(MAKE) -C firmware subtree-force-update
 endif
diff --git a/tools/Rules.mk b/tools/Rules.mk
index 6bd636709f..725c3c32e9 100644
--- a/tools/Rules.mk
+++ b/tools/Rules.mk
@@ -134,12 +134,9 @@ endif
 
 CFLAGS_libxenlight += $(CFLAGS_libxenctrl)
 
-# Don't add -Werror if we are used by qemu-trad build system.
-ifndef BUILDING_QEMU_TRAD
 ifeq ($(CONFIG_WERROR),y)
 CFLAGS += -Werror
 endif
-endif
 
 ifeq ($(debug),y)
 # Use -Og if available, -O0 otherwise
diff --git a/tools/config.h.in b/tools/config.h.in
index 0bab3cb136..fe2a94cfc4 100644
--- a/tools/config.h.in
+++ b/tools/config.h.in
@@ -42,9 +42,6 @@
 /* pygrub enabled */
 #undef HAVE_PYGRUB
 
-/* Qemu traditional enabled */
-#undef HAVE_QEMU_TRADITIONAL
-
 /* ROMBIOS enabled */
 #undef HAVE_ROMBIOS
 
diff --git a/tools/configure b/tools/configure
index e1f6ea6bf5..27ae7c52fb 100755
--- a/tools/configure
+++ b/tools/configure
@@ -726,7 +726,6 @@ BCC
 LD86
 AS86
 ipxe
-qemu_traditional
 LINUX_BACKEND_MODULES
 pygrub
 golang
@@ -835,7 +834,6 @@ enable_seabios
 enable_golang
 enable_pygrub
 with_linux_backend_modules
-enable_qemu_traditional
 enable_ipxe
 with_system_ipxe
 enable_rombios
@@ -1518,13 +1516,10 @@ Optional Features:
   --disable-seabios       Disable SeaBIOS (default is ENABLED)
   --disable-golang        Disable Go tools (default is ENABLED)
   --disable-pygrub        Disable pygrub (default is ENABLED)
-  --enable-qemu-traditional
-                          Enable qemu traditional device model, (DEFAULT is
-                          off)
   --enable-ipxe           Enable in-tree IPXE, (DEFAULT is off, see also
                           --with-system-ipxe)
-  --enable-rombios        Enable ROMBIOS, (DEFAULT is on if qemu-traditional
-                          or ipxe is enabled, otherwise off)
+  --enable-rombios        Enable ROMBIOS, (DEFAULT is on if ipxe is enabled,
+                          otherwise off)
   --enable-libfsimage     Enable libfsimage, (DEFAULT is on if pygrub is
                           enabled, otherwise off)
   --enable-systemd        Enable systemd support (default is DISABLED)
@@ -4838,45 +4833,16 @@ fi
 LINUX_BACKEND_MODULES="`eval echo $LINUX_BACKEND_MODULES`"
 
 
-# Check whether --enable-qemu-traditional was given.
-if test ${enable_qemu_traditional+y}
-then :
-  enableval=$enable_qemu_traditional;
-fi
-
-if test "x$enable_qemu_traditional" = "xyes"
-then :
-
-
-printf "%s\n" "#define HAVE_QEMU_TRADITIONAL 1" >>confdefs.h
-
-    qemu_traditional=y
-else $as_nop
-
-    qemu_traditional=n
-
-fi
-
-
 # Check whether --enable-ipxe was given.
 if test ${enable_ipxe+y}
 then :
   enableval=$enable_ipxe;
-else $as_nop
-
-    if test "x$enable_qemu_traditional" = "xyes"
-then :
-
-        enable_ipxe="yes"
-
 else $as_nop
 
         enable_ipxe="no"
 
 fi
 
-fi
-
 if test "x$enable_ipxe" = "xno"
 then :
   ipxe=n
@@ -4912,7 +4878,7 @@ then :
   enableval=$enable_rombios;
 else $as_nop
 
-    if test "x$enable_qemu_traditional" = "xyes" -o "x$enable_ipxe" = "xyes"
+    if test "x$enable_ipxe" = "xyes"
 then :
 
         enable_rombios="yes"
@@ -4928,7 +4894,7 @@ fi
 if test "x$enable_rombios" = "xyes"
 then :
 
-                # Extract the first word of "as86", so it can be a program name with args.
+    # Extract the first word of "as86", so it can be a program name with args.
 set dummy as86; ac_word=$2
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 printf %s "checking for $ac_word... " >&6; }
diff --git a/tools/configure.ac b/tools/configure.ac
index 0dd6d747ab..dada1c3b15 100644
--- a/tools/configure.ac
+++ b/tools/configure.ac
@@ -121,25 +121,11 @@ esac])
 LINUX_BACKEND_MODULES="`eval echo $LINUX_BACKEND_MODULES`"
 AC_SUBST(LINUX_BACKEND_MODULES)
 
-AC_ARG_ENABLE([qemu-traditional],
-    AS_HELP_STRING([--enable-qemu-traditional],
-                   [Enable qemu traditional device model, (DEFAULT is off)]))
-AS_IF([test "x$enable_qemu_traditional" = "xyes"], [
-AC_DEFINE([HAVE_QEMU_TRADITIONAL], [1], [Qemu traditional enabled])
-    qemu_traditional=y],[
-    qemu_traditional=n
-])
-AC_SUBST(qemu_traditional)
-
 AC_ARG_ENABLE([ipxe],
     AS_HELP_STRING([--enable-ipxe],
                    [Enable in-tree IPXE,
                     (DEFAULT is off, see also --with-system-ipxe)]),,[
-    AS_IF([test "x$enable_qemu_traditional" = "xyes"], [
-        enable_ipxe="yes"
-    ], [
         enable_ipxe="no"
-    ])
 ])
 AS_IF([test "x$enable_ipxe" = "xno"], [ipxe=n], [ipxe=y])
 AC_ARG_WITH([system-ipxe],
@@ -162,18 +148,15 @@ AC_SUBST(ipxe)
 
 AC_ARG_ENABLE([rombios],
     AS_HELP_STRING([--enable-rombios],
-                   [Enable ROMBIOS, (DEFAULT is on if qemu-traditional or ipxe is enabled,
+                   [Enable ROMBIOS, (DEFAULT is on if ipxe is enabled,
                     otherwise off)]),,[
-    AS_IF([test "x$enable_qemu_traditional" = "xyes" -o "x$enable_ipxe" = "xyes"], [
+    AS_IF([test "x$enable_ipxe" = "xyes"], [
         enable_rombios="yes"
     ], [
         enable_rombios="no"
     ])
 ])
 AS_IF([test "x$enable_rombios" = "xyes"], [
-    dnl as86, ld86, and bcc are only required when building rombios. They
-    dnl are only needed when the host system is x86 but that check is done
-    dnl for us above when checking if we should build with qemu-traditional.
     AX_PATH_PROG_OR_FAIL([AS86], [as86])
     AX_PATH_PROG_OR_FAIL([LD86], [ld86])
     AX_PATH_PROG_OR_FAIL([BCC], [bcc])
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 08 12:42:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 12:42:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.942008.1341349 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u28HI-0000vN-9p; Tue, 08 Apr 2025 12:42:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 942008.1341349; Tue, 08 Apr 2025 12:42:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u28HI-0000vG-6f; Tue, 08 Apr 2025 12:42:08 +0000
Received: by outflank-mailman (input) for mailman id 942008;
 Tue, 08 Apr 2025 12:42: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=Ii8P=W2=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1u28BK-0003x9-Gh
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 12:35: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 052cb0cf-1476-11f0-9eaa-5ba50f476ded;
 Tue, 08 Apr 2025 14:35:57 +0200 (CEST)
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 5028B1F38E;
 Tue,  8 Apr 2025 12:35:57 +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 2D51413691;
 Tue,  8 Apr 2025 12:35:57 +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 4bypCS0Y9Wc9IgAAD6G6ig
 (envelope-from <jgross@suse.com>); Tue, 08 Apr 2025 12:35:57 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 052cb0cf-1476-11f0-9eaa-5ba50f476ded
Authentication-Results: smtp-out2.suse.de;
	none
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Samuel Thibault <samuel.thibault@ens-lyon.org>
Subject: [PATCH v2 5/6] stubdom: remove ancient stubdom-dm script
Date: Tue,  8 Apr 2025 14:35:23 +0200
Message-ID: <20250408123526.14613-6-jgross@suse.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20250408123526.14613-1-jgross@suse.com>
References: <20250408123526.14613-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Rspamd-Pre-Result: action=no action;
	module=replies;
	Message is reply to one we originated
X-Spam-Level: 
X-Spamd-Result: default: False [-4.00 / 50.00];
	REPLY(-4.00)[];
	ASN(0.00)[asn:25478, ipnet:::/0, country:RU]
X-Spam-Score: -4.00
X-Spam-Flag: NO
X-Rspamd-Queue-Id: 5028B1F38E
X-Rspamd-Pre-Result: action=no action;
	module=replies;
	Message is reply to one we originated
X-Rspamd-Action: no action
X-Rspamd-Server: rspamd2.dmz-prg2.suse.org

The stubdom-dm script is still using "xm" instead of "xl", so it is
probably unused since more than 10 years now.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 stubdom/stubdom-dm | 182 ---------------------------------------------
 1 file changed, 182 deletions(-)
 delete mode 100644 stubdom/stubdom-dm

diff --git a/stubdom/stubdom-dm b/stubdom/stubdom-dm
deleted file mode 100644
index 05d07ac0d1..0000000000
--- a/stubdom/stubdom-dm
+++ /dev/null
@@ -1,182 +0,0 @@
-#!/bin/bash
-#
-# Copyright 2007-2008 Samuel Thibault <samuel.thibault@eu.citrix.net>
-#
-# dm script around stubdomains.
-#
-
-DIR=`dirname $0`
-. "${DIR}/stubdompath.sh"
-stubdom_configdir="${XEN_CONFIG_DIR}/stubdoms"
-
-# To fit xterms nicely
-height=339
-
-# Parse arguments
-
-domid=
-domname=
-vncviewer=0
-vncpid=
-extra=
-sdl=0
-opengl=1
-vnc=0
-vncunused=0
-while [ "$#" -gt 0 ];
-do
-    if [ "$#" -ge 2 ];
-    then
-	case "$1" in
-	    -d)
-                domid=$2;
-                extra="$extra -d $domid";
-                shift
-                ;;
-	    -domain-name)
-                domname=$2;
-                shift
-                ;;
-	    -vnc)
-                vnc=1
-                op=${2%,*}
-		ip=${op%:*};
-		vnc_port=${op#*:};
-		shift
-		;;
-            -vncunused)
-                vncunused=1
-                shift
-                ;;
-            -loadvm)
-                extra="$extra -loadvm $2";
-                shift
-                ;;
-            -k)
-                keymap=$2
-                shift
-                ;;
-	    -serial)
-		serial="$2"
-		shift
-		;;
-            -monitor)
-		monitor="$2"
-		shift
-		;;
-	esac
-    fi
-    case "$1" in
-	-vncviewer) vncviewer=1 ;;
-        -sdl) sdl=1 ;;
-        -disable-opengl) opengl=0 ;;
-    esac
-    shift
-done
-
-[ -z "$domid"   ] && { echo "couldn't find domain ID" ; exit 1; }
-[ -z "$domname" ] && { echo "couldn't find domain name" ; exit 1; }
-
-# Termination handler
-
-term() {
-    [ -n "$vncpid" ] && kill -9 $vncpid
-    rm -f /tmp/domname-dm
-    rm ${stubdom_configdir}/$domname-dm
-    exit 0
-}
-
-trap term SIGHUP
-
-############
-# stubdomain
-# Wait for any previous stubdom to terminate
-while xm list | grep -w $domname-dm
-do
-	sleep 1
-done
-
-# Generate stubdom config file
-mkdir -p ${stubdom_configdir} &>/dev/null
-echo "#This file is autogenerated, edit $domname instead!" > ${stubdom_configdir}/$domname-dm
-echo "kernel = '${XENFIRMWAREDIR}/ioemu-stubdom.gz'" >> ${stubdom_configdir}/$domname-dm
-
-vfb="sdl=$sdl, opengl=$opengl"
-test "$DISPLAY" && vfb="$vfb, display=$DISPLAY"
-test "$XAUTHORITY" && vfb="$vfb, xauthority=$XAUTHORITY"
-test $vnc != 0 && vfb="$vfb, vnc=$vnc, vncdisplay=$vnc_port, vnclisten=$ip, vncunused=$vncunused"
-vncpasswd=`xenstore-read /local/domain/0/backend/vfb/$domid/0/vncpasswd 2>/dev/null`
-test "$vncpasswd" && vfb="$vfb, vncpasswd=$vncpasswd"
-test "$keymap" && vfb="$vfb, keymap=$keymap"
-test "$monitor" && vfb="$vfb, monitor=$monitor"
-test "$serial" && vfb="$vfb, serial=$serial"
-echo "vfb = ['$vfb']" >> ${stubdom_configdir}/$domname-dm
-
-echo -n "disk = [ " >> ${stubdom_configdir}/$domname-dm
-j=0
-for i in `xenstore-ls /local/domain/$domid/device/vbd | grep 'backend =' | awk '{print $3}'`
-do
-    i=${i%\"}
-    i=${i#\"}
-    vbd_mode=`xenstore-read $i/mode`
-    vbd_disk=`xenstore-read $i/params`
-    vbd_type=`xenstore-read $i/type`
-    vbd_dev=`xenstore-read $i/dev`
-    vbd_front=`xenstore-read $i/frontend`
-    vbd_devtype=`xenstore-read $vbd_front/device-type`
-    if [ $j -ne 0 ]
-    then
-        echo -n "," >> ${stubdom_configdir}/$domname-dm
-    fi
-    echo -n "'$vbd_type:$vbd_disk,$vbd_dev:$vbd_devtype,$vbd_mode'" >> ${stubdom_configdir}/$domname-dm
-    j=$(( $j + 1 ))
-done
-echo " ] " >> ${stubdom_configdir}/$domname-dm
-echo -n "vif = [ " >> ${stubdom_configdir}/$domname-dm
-j=0
-for i in `xenstore-ls /local/domain/$domid/device/vif | grep 'backend =' | awk '{print $3}'`
-do
-    i=${i%\"}
-    i=${i#\"}
-    vif_mac=`xenstore-read $i/mac`
-    vif_bridge=`xenstore-read $i/bridge`
-    if [ $j -ne 0 ]
-    then
-        echo -n "," >> ${stubdom_configdir}/$domname-dm
-    fi
-    echo -n "'mac=$vif_mac" >> ${stubdom_configdir}/$domname-dm
-    if [ "$vif_bridge" ]
-    then
-        echo -n ",bridge=$vif_bridge'" >> ${stubdom_configdir}/$domname-dm
-    else
-        echo -n "'" >> ${stubdom_configdir}/$domname-dm
-    fi
-    j=$(( $j + 1 ))
-done
-echo " ] " >> ${stubdom_configdir}/$domname-dm
-
-mkfifo /tmp/$domname-dm
-xm create -c ${stubdom_configdir}/$domname-dm target=$domid memory=32 extra="$extra" < /tmp/$domname-dm &
-exec 4>/tmp/$domname-dm
-
-
-###########
-# vncviewer
-if [ "$vncviewer" = 1 ]
-then
-    # Wait for vnc server to appear
-    while ! vnc_port=`xenstore-read /local/domain/$domid/console/vnc-port`
-    do
-        # Check that the stubdom job is still alive
-        kill -0 $consolepid || term
-	sleep 1
-    done
-
-    vncviewer $ip:$vnc_port &
-    vncpid=$!
-fi
-
-# wait for SIGHUP or stubdom termination
-wait
-
-term
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 08 12:51:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 12:51:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.942041.1341359 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u28Q5-0003wh-4U; Tue, 08 Apr 2025 12:51:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 942041.1341359; Tue, 08 Apr 2025 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 1u28Q5-0003wa-0F; Tue, 08 Apr 2025 12:51:13 +0000
Received: by outflank-mailman (input) for mailman id 942041;
 Tue, 08 Apr 2025 12:51: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=6Iqs=W2=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u28HP-0007mm-8F
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 12:42:15 +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 e5e479e5-1476-11f0-9eaa-5ba50f476ded;
 Tue, 08 Apr 2025 14:42:14 +0200 (CEST)
Received: by mail-wr1-x42e.google.com with SMTP id
 ffacd0b85a97d-39141ffa9fcso5993718f8f.0
 for <xen-devel@lists.xenproject.org>; Tue, 08 Apr 2025 05:42:14 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43ec163107csm166477405e9.3.2025.04.08.05.42.13
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 08 Apr 2025 05:42:13 -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: e5e479e5-1476-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744116134; x=1744720934; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=MPTldhIQfRLwcVLvaiBL4d+c/HRQggoyWNJhb5PJcJs=;
        b=FyqHi/5OjFB+U9uNOlQ9xKSlJQH4Gtzru2GgH9R8bUkQCMWjIDDtR5AQ+NpUXt8lim
         059ymxZwRdtRH1oIIa6TdZxolbGTPHIufQWaG2V078NQO9z2dknj4VTtt+UDt/1QiD8o
         M+k+94a4+AIXAgdhU01u072Ea3EjXUJ/5aBXk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744116134; x=1744720934;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=MPTldhIQfRLwcVLvaiBL4d+c/HRQggoyWNJhb5PJcJs=;
        b=G9+WDfIlrXgz1vKTdwQECmAV85C0eOh9Xg4Ak7lDHst9eUnakHFRUFtFBfJk7PsBLF
         FVNeNbeBaU2XzwhBKvufu0//pSHU0e+H4QsR9i7DETZSpIitd10OHkqDScji/SGktj2n
         blq115VwuJNSf1W36Q47xfYIBizDmAIgGigpIvJbuhXdqixIVUuehhWSto1Ql0mBGQ0N
         OcmLGorXPOnEeq2ns9IjW/i378WOHyxt4dM56f+EgvM5ViV1ZZS7w0SQJYiZlT27LXKR
         B42GjTezEz4tY0DnXaQjwi0tMc0/Bz7rsKy171ztIn1HIiz1PBKVjH/U+lfr6qMrfQ4l
         jtPg==
X-Forwarded-Encrypted: i=1; AJvYcCWwGskxSkh8QpZrMe9nBPlEbZcvX9KZ58iIBzyyqV7jQyPD35Ryldz5mMvlm3IYGlQNDPWp4UmrCjo=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx87TYQOI3VzdHuEh+kB+9nilExwze1o6dEsvVV2Jer8RT3oQFh
	4Ok4lnUZ63W1Hk0qNChqsa9GpaodjPEi5f+7/0mQazoW1ke2xj1TqcUUC2/+nJM=
X-Gm-Gg: ASbGncvKq25UaerT21/IZLqosWTywkLujoBOXGeUXqs//TTkcGic2CDxh7yflsQdGov
	2tuyfiCJW1zIu7FKksmy8HwbIhqVB0E0Nv4DhbmeAtKD3dNjrA0xcdbBDF4ky8+KT3jthcx5RgG
	ti5hT5mxvk4zISh3APW9r74VWQ1+q3AYKGZbK+4f4nHo7NXUAXU/ex+SJVLSPW/29yWzFwRrrDn
	5CRjDFv28dTDufKspZQT3YDxYuDU7ZcqSStRw87wFT3G3vIKovDVKADj5S/o4T44NozvBIJOqOh
	+uoCLu2EWrwMfxhhNRS+7o5bSVsIhKrC2PspAlsrrMkm8eSC76gsKW8OCxSAASNOPmykEtkAmIG
	dnvBxGhw5Kg==
X-Google-Smtp-Source: AGHT+IGinObwr50GT0K/SutzBZDR1ogRRfWK0xEtIad4bXZgSFnIp82yowWE0wsDyc4xG13I6j0luQ==
X-Received: by 2002:a05:6000:381:b0:39c:1258:7e1a with SMTP id ffacd0b85a97d-39d6fd54a93mr8726137f8f.59.1744116133941;
        Tue, 08 Apr 2025 05:42:13 -0700 (PDT)
Message-ID: <e3c49856-5c98-4a89-a0ff-10a4ed13038d@citrix.com>
Date: Tue, 8 Apr 2025 13:42:13 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86emul/test: drop check for AVX512-4FMAPS
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: <779957ca-3250-4b33-ac1d-ace1dcdaafc0@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: <779957ca-3250-4b33-ac1d-ace1dcdaafc0@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 08/04/2025 1:28 pm, Jan Beulich wrote:
> Use of Xeon Phi features was dropped earlier on; this one was overlooked.
>
> Fixes: 85191cf32180 ("x86: drop Xeon Phi support")
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>

> ---
> In principle it looks as if we could now drop all of this checking, as
> gcc5 supports all of the features we check for. AVX512-4FMAPS is an
> example though where checking helps, as this and other Xeon Phi features
> were supported by an intermediate range of gcc versions.

Whatever's easiest.  This is just a test harness.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Apr 08 13:24:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 13:24:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.942081.1341370 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u28vz-00040e-H4; Tue, 08 Apr 2025 13:24:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 942081.1341370; Tue, 08 Apr 2025 13: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 1u28vz-00040X-DH; Tue, 08 Apr 2025 13:24:11 +0000
Received: by outflank-mailman (input) for mailman id 942081;
 Tue, 08 Apr 2025 13: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=83+A=W2=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1u28vy-00040R-Du
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 13:24:10 +0000
Received: from fhigh-b6-smtp.messagingengine.com
 (fhigh-b6-smtp.messagingengine.com [202.12.124.157])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c01c9e35-147c-11f0-9eaa-5ba50f476ded;
 Tue, 08 Apr 2025 15:24:09 +0200 (CEST)
Received: from phl-compute-04.internal (phl-compute-04.phl.internal
 [10.202.2.44])
 by mailfhigh.stl.internal (Postfix) with ESMTP id 45DD32540205;
 Tue,  8 Apr 2025 09:24:07 -0400 (EDT)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-04.internal (MEProxy); Tue, 08 Apr 2025 09:24:07 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue,
 8 Apr 2025 09:24:05 -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: c01c9e35-147c-11f0-9eaa-5ba50f476ded
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=fm2;
	 t=1744118647; x=1744205047; bh=1Gm1V5+ESJ8LChIdnWyjzdypv8I33gJq
	x0kUCrT9giA=; b=OdLUESplPALffqra/cFX7fWUVqwdXajHYIdD4sfJEw+hpnwC
	orqgpztatHvdXnqMyGJADYhECJpg5htH9TKBEMn1L34xGylKoj7naKWaQuwHr424
	B/U7snuScG79jU2fd0XQUvnSsV+Gtq2/+wsdkqAooTHpY1FUbUsnaHyznb1iPMJ3
	5K3p9ISm25wCEyM5q0o/OhqB8GJs7MPhe36mvdYP4XV+9Xa1j3WlYI9QPV8PHLpp
	oNT3vAtjEG63r0y+g3u/KF7SGiYw/Fd0CYl4g/UZto2IU0IKKWTfe45Vd9L3gn+A
	1K93jJM/jiAJTz2xAVpuddY124rxfLIOle7ndQ==
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=
	fm2; t=1744118647; x=1744205047; bh=1Gm1V5+ESJ8LChIdnWyjzdypv8I3
	3gJqx0kUCrT9giA=; b=gyskmmqAbhiRCLw46y1SGf9M56VQcfQEP87UnXQF1Ged
	FoetK10FaEwOX8Cc+v9L+i0/GDUp6FXyPsFGsGruF8D/DfxLjy6ZsCJNxK41RxHQ
	UHjv3oWnrSyET7zV9Ro8NdwM0Vxa6imMptTPIWdouew1B6ueJ/9z9OY57nHP1mhl
	g+1tSG2WOCp+KeWpL/3jEj1bK4FuYVKjnkdgpYk8DhhHLfBW6u9DM3Cq9p1hyKKb
	j7YeMMv7f0cW2zZy/yoFbL8r7DevOgCf+27195iQbJh/78rp6SKhErGnuRCDbt3x
	VOR5sMsCUIDMjQRLrr77VAvsFMDXniUd+kXzTNrOww==
X-ME-Sender: <xms:diP1ZzM7Mf--uW3zZjGAtZUpjK9ve6IKIASs9S_lsipy14wDxHpuCA>
    <xme:diP1Z98iIPjmiSgBLTIrsIUsa2wAWKOtqOxS5EmvCE6NncO2Okf7JHuVo8vsgfo6T
    irOmxJFJ5nl8w>
X-ME-Received: <xmr:diP1ZySL9wM7TmxkBlf9nFCWA22OA3FiV7tZYPya-L1cFaxh9nMYZjuwPWWLN0Q192s8rh0jYjrjPSFiaxriLJqFL_zCrkt1XhAs72XmbpXFwX9iUk4>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvtdefvddtucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
    pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
    gvnhhtshculddquddttddmnecujfgurhephffvvefufffkofggtgfgsehtkeertdertdej
    necuhfhrohhmpeforghrvghkucforghrtgiihihkohifshhkihdqifpkrhgvtghkihcuoe
    hmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhmqeenucgg
    tffrrghtthgvrhhnpeelkefhudelteelleelteetveeffeetffekteetjeehlefggeekle
    eghefhtdehvdenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhr
    ohhmpehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhmpd
    hnsggprhgtphhtthhopeejpdhmohguvgepshhmthhpohhuthdprhgtphhtthhopeigvghn
    qdguvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdprhgtphhtthhope
    hmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhrtghp
    thhtohepjhgsvghulhhitghhsehsuhhsvgdrtghomhdprhgtphhtthhopegrnhgurhgvfi
    drtghoohhpvghrfeestghithhrihigrdgtohhmpdhrtghpthhtoheprhhoghgvrhdrphgr
    uhestghithhrihigrdgtohhmpdhrtghpthhtoheprghnthhhohhnhidrphgvrhgrrhguse
    hvrghtvghsrdhtvggthhdprhgtphhtthhopehjghhrohhsshesshhushgvrdgtohhm
X-ME-Proxy: <xmx:diP1Z3sCfNnFIuC2hAF0R7rmYQrbKG3fCHIFW2xLssImvhfQlPXPyw>
    <xmx:diP1Z7dUrzM9C0EwQpQSOQLrCbxTMnDSFpK3qL4XtZCGIgqkUjuQ-g>
    <xmx:diP1Zz0YXtMf5alJePJRbKZSsxgoRbq1AbRTYqzSV-bM5jycTfzQcg>
    <xmx:diP1Z3-xsDlOcDdfJWAiUvyrc0m5ldOOpQtUTxs3Z3fJIUc0XWk8jw>
    <xmx:dyP1Z5hzWIZ-1d-1C3b_naiPi8yYTwtTf_FLTRoF8CqHsV3pIU60reSh>
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>,
	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>,
	Juergen Gross <jgross@suse.com>
Subject: [PATCH] libxl+hvmloader: extend IGD check part 2
Date: Tue,  8 Apr 2025 15:23:13 +0200
Message-ID: <20250408132333.1524246-2-marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.48.1
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" in few more places.

Fixes: 4191619e0893 ("libxl: extend IGD check")
Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
---
Do you prefer this to be split into two patches (libxl, hvmloader)?

 tools/firmware/hvmloader/pci.c | 1 +
 tools/libs/light/libxl_pci.c   | 3 ++-
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/tools/firmware/hvmloader/pci.c b/tools/firmware/hvmloader/pci.c
index c3c61ca060a6..1ee97a5b4b20 100644
--- a/tools/firmware/hvmloader/pci.c
+++ b/tools/firmware/hvmloader/pci.c
@@ -173,6 +173,7 @@ void pci_setup(void)
         switch ( class )
         {
         case 0x0300:
+        case 0x0380:
             /* If emulated VGA is found, preserve it as primary VGA. */
             if ( (vendor_id == 0x1234) && (device_id == 0x1111) )
             {
diff --git a/tools/libs/light/libxl_pci.c b/tools/libs/light/libxl_pci.c
index 1647fd6f4756..db1299832cce 100644
--- a/tools/libs/light/libxl_pci.c
+++ b/tools/libs/light/libxl_pci.c
@@ -2575,7 +2575,8 @@ int libxl__grant_vga_iomem_permission(libxl__gc *gc, const uint32_t domid,
 
         if (sysfs_dev_get_class(gc, pci, &pci_device_class))
             continue;
-        if (pci_device_class != 0x030000) /* VGA class */
+        if (pci_device_class != 0x030000 && /* VGA class */
+                pci_device_class != 0x038000) /* Display class */
             continue;
 
         stubdom_domid = libxl_get_stubdom_id(CTX, domid);
-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Tue Apr 08 13:31:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 13:31:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.942096.1341378 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u292p-0006TT-56; Tue, 08 Apr 2025 13:31:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 942096.1341378; Tue, 08 Apr 2025 13: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 1u292p-0006Sx-2V; Tue, 08 Apr 2025 13:31:15 +0000
Received: by outflank-mailman (input) for mailman id 942096;
 Tue, 08 Apr 2025 13: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=6Iqs=W2=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u292n-0005ys-GO
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 13:31:13 +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 bcc8d6b8-147d-11f0-9eaa-5ba50f476ded;
 Tue, 08 Apr 2025 15:31:12 +0200 (CEST)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-43690d4605dso37924595e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 08 Apr 2025 06:31:12 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39c301b7dedsm15102527f8f.52.2025.04.08.06.31.10
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 08 Apr 2025 06:31: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: bcc8d6b8-147d-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744119071; x=1744723871; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=NOkSNpbX1JVcGPrFeghfe1pQ7Op1ydlEj+13XSifgEU=;
        b=If1SeuchthB1QDJ/otTVLtSMgtg2I3mDpqeZhsG6wyNKSzX9ionMKbkt/2b7aFgZyb
         lNXSOIMn7/L93+AWvFQovCUit7O0GDZExYuFjbkLqJg1WEaUPe8tPYKykDilz0jF30EB
         IV9RQUSiP8Tc3N1gFuVVWss/Oksh7wjYY5Fls=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744119071; x=1744723871;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=NOkSNpbX1JVcGPrFeghfe1pQ7Op1ydlEj+13XSifgEU=;
        b=W4XxYQMRYPTPIpuVMFvWnoDXWU4KK90PjwwADINCZnswonw9n8kikEYPEmrjmgLOFt
         GcWfysEmmqKNZ/vrJEurEhdcs886+l2Xm+ukoeMPDD99twfXwfyOQaYJEaP+ppm5v0ce
         wAgXh8OvJ/Ds3r+QQm1fgDqSzMUInkT9wDEJtO6CtP1v6zOKuzy2yrtslS9kSwpDym3f
         /bZNXh6OajaRpAXpuvNox7S42xKv7bhIjEexhySq4piiPTuQxot51Uo/2u1IxHnWrrVN
         17koE1KiKePGb83vZiGgeTYwjKPYYcNtYqK2J3JEapicNRXteg5DBbAnNcAId56BAWEU
         sJJQ==
X-Forwarded-Encrypted: i=1; AJvYcCVswffDTL048szTfeCnINdXv9xpPrtzqB/08YwQcyeMrBQjIpZO8gLM4Ran8fP5WEdcHskz38mNyJg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzP3V+XWts+dJCm74S4nSXf67t1+gh0Jddbgse2Z7ZAYQivsskt
	s93MQxFdmosGiQPgPsuMG1LQEJV3WbLuMo1DTu2FnfCyQmV1eT9o8og26VgvHto=
X-Gm-Gg: ASbGncsEEXGVFuGm7+5X58ErfFSOEhKNx6KvXM6dO7YK0ePQkY6f+CyjevV7vsfuBL3
	/pccTa2qd4f8TOen46FX2CtDOnsJChbbssWext07+6Vg+9cVepEngo6R9JaHwFZ4TrJntEoduO1
	YY7/7RhopQnjfK3maAwR39RFCWletJdnnRvs5rjp6lJ5mXeYAK2P0NVI2QGxLG+G763iQ+C6kfw
	7T9KCWzuZlVBCRwyLPE2WJIYVILj4xNnjaMynTxrrMHP9mHabp9Xm51AJzCwdp0HwGBOk/lQgqr
	UqN/ia3X4wQM28ZWciZsBv1hDHfZVw1F+dBmhErShSp4K3De2eVyBSo9gNcReNwe0ZRpYJ78hiz
	gGYl+M4V1lM9Ekc7JKjfm
X-Google-Smtp-Source: AGHT+IFIraB3gnQYI6p1gpf9L697VGJnkGCEeP279m9Xszn7etiRuxm/r2LPINsfGkKnm3WKYn/+TQ==
X-Received: by 2002:a05:600c:1e23:b0:43d:8ea:8d80 with SMTP id 5b1f17b1804b1-43ecf81b197mr151184485e9.5.1744119071464;
        Tue, 08 Apr 2025 06:31:11 -0700 (PDT)
Message-ID: <a16618c7-94ac-48e3-817d-80c88c18c95f@citrix.com>
Date: Tue, 8 Apr 2025 14:31:10 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] libxl+hvmloader: extend IGD check part 2
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
 Juergen Gross <jgross@suse.com>
References: <20250408132333.1524246-2-marmarek@invisiblethingslab.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: <20250408132333.1524246-2-marmarek@invisiblethingslab.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 08/04/2025 2:23 pm, Marek Marczykowski-Górecki wrote:
> Consider also "Display controller" an IGD, not only "VGA compatible
> controller" in few more places.
>
> Fixes: 4191619e0893 ("libxl: extend IGD check")
> Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
> ---
> Do you prefer this to be split into two patches (libxl, hvmloader)?

Probably not for something this trivial.

>
>  tools/firmware/hvmloader/pci.c | 1 +
>  tools/libs/light/libxl_pci.c   | 3 ++-
>  2 files changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/tools/firmware/hvmloader/pci.c b/tools/firmware/hvmloader/pci.c
> index c3c61ca060a6..1ee97a5b4b20 100644
> --- a/tools/firmware/hvmloader/pci.c
> +++ b/tools/firmware/hvmloader/pci.c
> @@ -173,6 +173,7 @@ void pci_setup(void)
>          switch ( class )
>          {
>          case 0x0300:
> +        case 0x0380:

Now we've got multiple, we should have /* VGA */ and /* Display */
comments like libxl has.

Can fix on commit.

Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Tue Apr 08 13:32:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 13:32:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.942112.1341389 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u294Q-0007Md-KM; Tue, 08 Apr 2025 13:32:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 942112.1341389; Tue, 08 Apr 2025 13: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 1u294Q-0007MW-H4; Tue, 08 Apr 2025 13:32:54 +0000
Received: by outflank-mailman (input) for mailman id 942112;
 Tue, 08 Apr 2025 13:32: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=23Rw=W2=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1u294O-0007MQ-KF
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 13:32:52 +0000
Received: from NAM10-BN7-obe.outbound.protection.outlook.com
 (mail-bn7nam10on20631.outbound.protection.outlook.com
 [2a01:111:f403:2009::631])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f50cc7b7-147d-11f0-9ffb-bf95429c2676;
 Tue, 08 Apr 2025 15:32:47 +0200 (CEST)
Received: from MW4PR12MB7334.namprd12.prod.outlook.com (2603:10b6:303:219::21)
 by IA1PR12MB9465.namprd12.prod.outlook.com (2603:10b6:208:593::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.32; Tue, 8 Apr
 2025 13:32:43 +0000
Received: from MW4PR12MB7334.namprd12.prod.outlook.com
 ([fe80::2e77:557:17d5:86f8]) by MW4PR12MB7334.namprd12.prod.outlook.com
 ([fe80::2e77:557:17d5:86f8%3]) with mapi id 15.20.8606.028; Tue, 8 Apr 2025
 13:32: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: f50cc7b7-147d-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=TImPp3t8GTzsmLF8vvGHziD2ZMdOlKeLcneRs2cyfjt99Zvbp/5dLes66pLfNmfaeFct5znaTxRYnSrl2FmeNzppkodSGBHqw+SGwWECLvH7YfX643oA76g7nlKLgmBsxrNkm6IkiHVdCQ2E+61jIxxj9RU8PhFBUPabbr+YBpC5VuHAGMTG3+X6xnJB+OwrMcSvOS5NHyNkMrVk1mOjbDP0lVaJM8V4av9pROrHtQjJSwSLOgMoQYp6criOiMR8ywvaDP5MdtLPM/2M6SOs2CKb3+HfCFNbKKlNuTBKqM0Iv4ncUelQ5R9NnI1F7donynDMnY13kPPS+ICDnNvEiA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Ovz1kL9uMFYdJIeklY8U5I6Lw46F+90lnw4iMlcW7JY=;
 b=LTWGTPbvIxrvoXYuoYL1+67Mi+lMeMKbBQA0bmKjky1P+wGshJqW/JWIiNch6y1vnwTWp8WC4aFgf/L654+/3ZYNdOQFTV3M0MAP3IUxq8yWSOr35xPRvFvRONaTs0XDyI08oQb7T5jw8m6aigAp5XCQL+whUpVK9DdUdXFKQyJQavCzUwiH0gMueG1DQiulm1j2YSSMQ/yI+HOps+sa3kAi1wX8AcQ+tIJ0Ad/22anrCgMzHA2s3Eliw/higCTL2CauBRWfOfY0+hlKCPxAWtoTjSbyyMW4OkTM0TS9TdDFyIdXkXJydvcd5P4Z9XfRtDE0I4VAcS/YAgbZSQDiQg==
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=Ovz1kL9uMFYdJIeklY8U5I6Lw46F+90lnw4iMlcW7JY=;
 b=FtaWzGWxFMnZrfnqeQaH1p21Wm9XsgXulyDn2z2UWvT/FIzhw6c05oavK4UpmQT0SnzoIRwFbhWxBrYtEakOZPX4ovvqlc3xWPPmsoivxuBTv5bAgNvmXeX/arscUEbEng5v5Y2Fclf9NEzOlwZr8wXOl8itEoEj360PU4Gtpb4=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <d6c12013-235a-405f-a87f-529648d6f340@amd.com>
Date: Tue, 8 Apr 2025 14:32:32 +0100
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 7/7] arm/mpu: Implement setup_mpu for MPU system
Content-Language: en-GB
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>
References: <20250407091430.2342709-1-luca.fancellu@arm.com>
 <20250407091430.2342709-8-luca.fancellu@arm.com>
From: Ayan Kumar Halder <ayankuma@amd.com>
In-Reply-To: <20250407091430.2342709-8-luca.fancellu@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: PR0P264CA0085.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:100:18::25) To SN7PR12MB7322.namprd12.prod.outlook.com
 (2603:10b6:806:299::6)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MW4PR12MB7334:EE_|IA1PR12MB9465:EE_
X-MS-Office365-Filtering-Correlation-Id: 58afeee5-b982-45a7-08f3-08dd76a1d6cd
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?RThiL1Nmc3BhQzdGQWRBYlBmbXZYSDdOOWE4dGpZVEN3VUhZemF4SSttSzF3?=
 =?utf-8?B?ZXMvKzQvdFdpVkZ0Y1BqVWpQZDRUNzFtV29xZGVOQVFsRXNoOTZHV2dJTDNn?=
 =?utf-8?B?NTQ3SVVjb1BzbkZKWDFnc3J5YjhhQzNMK3Nvb2ltMjhzTzZ1RG0xY053cysr?=
 =?utf-8?B?dUpPMU44eE5NMkpBTHd0RFE3dVFTMW1ycHpPL090d1VKMEUwT2o1eXAvQzJz?=
 =?utf-8?B?aU1wdFJDWTdMYWNOTG5vMDhqZFRQcE5Sem5SdjBuZVRySEwxaXF2S1hJUmlL?=
 =?utf-8?B?K0RYWW9KRkZVSUJPZHJhL01pNU5vbjFXMkhnRDV6V0twcXQraUZlRGQ3Wnpp?=
 =?utf-8?B?ZTVUVnlFTHpmUVhjQlROSng1THd3N1VXSjBrbVJYNXNEVjhJaHRabFNhbnky?=
 =?utf-8?B?bGJiODJqaHVZYmNGazQ0bTN6VjVWQ0JEZVZkMDloVjk5b3RleGNSbHpiN2Vn?=
 =?utf-8?B?NkdkWXpmbnNLSkhxbDNzRGZqZDY4M0xQOEUzQjJQSXk0cUVTNks5UnFJSDZt?=
 =?utf-8?B?WlJjMjlleEhRNjdXclJwdXIvZzg3aVVmVHpvYWJUbXVmK2RMSktwc2FxSWhX?=
 =?utf-8?B?cDJjbUtzbDFZTUJXL1ozWU5xS2RDeEdSZGNqZjhiWFpyWDZ0UEtNL2djeWdK?=
 =?utf-8?B?NHhleCtSV3JCZlhqemxPMk5IMG83a1RkU0VrMlhDMGhQQXRUY1dWMzEwektz?=
 =?utf-8?B?Y3ZnbjFvanBJLzlBUFdSaEl3SVNKVmNzRmRCbVFwVmIxN3l2NWlVb1ArbU1Q?=
 =?utf-8?B?Q2MyUzV2UWhma3NTMHkzMzhpVXVTelZmQVlXWElJVjB6YmlBaDhQeUVXTXpF?=
 =?utf-8?B?dlBPU1BvckExbjF5Qm5pTW9iSXArUzIwSzEvSjBPdS8rdG0vc3dTZTZYTnBW?=
 =?utf-8?B?QXVUTC94R3BOb0pnaDJrcWNCckdIYWkyNTA1NU5xWGlpcmtZT1ZBSStZZnN1?=
 =?utf-8?B?c0RZekhGakU2UWZoeWJiME0wUE53NVFUaTVQMDFPSlZEU0xmam9vR29nbUNH?=
 =?utf-8?B?cm14Mk02cHNUTWZMRTBZNG91N0ZKSTR2dDFQOStYRzcza2VOYlVlZ2c1c0pr?=
 =?utf-8?B?bk1ONW1CQkxPUDJOSG9wU1lhWk1leDRxVEx0dWtBN2VKVDZTck93Y2hORm1P?=
 =?utf-8?B?Y2Roajl0Q1lQNjlncW1KaU1tYTF3WUlKT3h0UVg2OHIrazVJZWRsa0pPR2kr?=
 =?utf-8?B?UzdVY1VBdVZVL0xtY3ZuaGZUYjJiWS9PQzRSSzRUa3RNQzZIT0E1ZnBQUy9X?=
 =?utf-8?B?UldaQ01Ndjk4alk2dWRLZU9Hbm94NTZERmdIaFRady8zMU51c0EzVjNYakJR?=
 =?utf-8?B?SEZQZHU2UWVZdEhWR1FoWHo5SWJST1NQNkNJOFlFUzk5UVF4Ymp0SWVmUHFC?=
 =?utf-8?B?VkY5cVBWN2RiMXBvOTd6SjJOUmJNdGhOa2cxK0xWMnBSNVZIT281dUIzWHFu?=
 =?utf-8?B?UlZleFV0WWxxT2JsWmMzaEVNRHNJd0dzOWFpTTVLTURhZUJRRDJWeUFUYXQ4?=
 =?utf-8?B?VTFwa1NuZ3lZRlpJRlV1OEhSV00yUmkxTVRFV3dSaVJhWStYZzJSTUNWVUlI?=
 =?utf-8?B?c3ExckdkaUpBUXVGeWh1ekk5dEhQa2E4aHcvZ1QvYzROTFB1Ykt1cERqb0dF?=
 =?utf-8?B?OFFWeERBVjlLLzY1L2pEd0Rtdjg5VWE1enVzSzlIK2RCV242MEdFaytvcDlZ?=
 =?utf-8?B?TU1sWFk2Q0Z6UGpzOFpOSzZ6QVVsNlZueXdIdjkyMVVOODI2anRwSEFpYThB?=
 =?utf-8?B?MTk1dE1Mb25EdlVmeXNnaEFtaC91SjQ4c3o1TXdCWU56Q3A1ZGczRUpkOVNi?=
 =?utf-8?B?VjhhWU1mU2lWejhxN1l4OWNkOFdkRXhMck5hVmZKSndVVVJFT3BaVERZRHVu?=
 =?utf-8?Q?JiraGHL97epKc?=
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)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?eStWSkM1WTNpdzhKSmw0OFpoalBFeWhKKzRxRTMwelNSUUpzbWxsb0x0WW5y?=
 =?utf-8?B?b3NldWgwMjZ3ZXJUbFlraitVais4dVBSWmRDQWFydFYza3FoUk9kaEU0Ui9j?=
 =?utf-8?B?Qzl1TkwrSTdPaTFNNXpzanljbjNwazBsOVdHbXN3bjVDV0tBaHRhVlBnazRN?=
 =?utf-8?B?UFNUMXRVcjBLNkkvTVozSkt1U2h0NlZMTzdDbldhWXRBZjRSUWVNTGhrMlBi?=
 =?utf-8?B?NUM0OWZtS3RFSGUvZVdIeUEvOSszSnduclpjSzZtcE9TTmIzclFna1J3eHJk?=
 =?utf-8?B?dndma05TMSt3VDFWRmJYS09WYXBkT1RBbjE1R0VYdDNSUDZKTmRLY3hNRWts?=
 =?utf-8?B?Yzd1a1lTWXFjK29DbzdpTm4zancwcmlheXlOdnBMNk1wQndGUnpXTmRNWGpX?=
 =?utf-8?B?UkEyeUc0aGpaM043aDcvd3FlWDFHeFh1RFluMDE5bXhCNkgrRlNsanR1QjdW?=
 =?utf-8?B?ZmtMZjhiSTlWbndDNDhUMFN6cU1lcEdVSE1iQkhlTUlnWTZHUHlieVJuc3NJ?=
 =?utf-8?B?QndmNFNpMkhBdHN1YmxMVXhTbWdiQnN5bjZuN01XZW1iVy8vNGlEb0FYTkhL?=
 =?utf-8?B?djl6NlFFakE5cVV3YXl6Z2U0TlU3bklTWXpCK3U5eTNta3ZhSmVrdTVVVGpy?=
 =?utf-8?B?d01yK01iTzMzTFRVU1dTTjVLT3FmeXlNL2xKeDg3d3JTVEhOdjVyOGlOYSt4?=
 =?utf-8?B?aStUMVpTS1MrbGF3TG41VUdjY1JCWU1SSmg3Q0t4Tyt5Wk5XU1FoM1BzWnJT?=
 =?utf-8?B?dDBPK09TSmtTTE9IbUhUTlZLZXNQQW9pT0pUdHNWangvM3JtY29MYzJFTm83?=
 =?utf-8?B?cDJtZ2dZOHdMbEo2eFQ0VGRLdk43TEtLNDJvTVhDajZ3dFpaYjZOVDlLZHRP?=
 =?utf-8?B?UXhsU2dmdDk1MUIxenAxS1RVL2Z4bFUvNlN1OG1aNFMxK25qc2JPMVZLaCtO?=
 =?utf-8?B?WS9OVzM1RDU1NkR0UTZQU2M0Q1pJNGUzekF4ajdoSkg2SEFRZXQxckw2QzZa?=
 =?utf-8?B?Y2hvMVBTVXlzZEVvZkRXYXpFQnIyUWhpaEdIZEpBU25MN0xmN29ZTkFpelFD?=
 =?utf-8?B?dXZsRGV1WVFpdzhhV0ZCQ01rSVlYSFVLNUdqM3FvSTVaUG0yaHA1WDRUakhU?=
 =?utf-8?B?bUI1b21QcDZmQy9rRDNNbjN6VEJpa3BFMTM4cFV0b2g3MlBnZk9wOXowMlZY?=
 =?utf-8?B?eUNOTGw5bXdWL0xsSGJ2cWFvNmNoNmgyQzFOd20wUWVGSXQwSzhOdVA0T25K?=
 =?utf-8?B?aDBKM1BIYld0Z0pEemd2SDEzaUVySzlRbGwwMUFpUjRwTWtST3lkMUJPb1RR?=
 =?utf-8?B?WlVMcWpOZnY1YitrdUh6N1BxNnZwL3EwZ2VoZnJjQ3FCTktmclk4cEhteGpI?=
 =?utf-8?B?L3NhZ3hHYUFWWDhXdDFwNEpYVmlWVWVaaDFZcnVRcEk5NFFCdVA5cVFuT2R5?=
 =?utf-8?B?YVFwalBVQXBkS1NoZG01NVpSKzgzVUFiMmlXSG5aSXVSNVVDdEo1VkZXeS91?=
 =?utf-8?B?OWk4V1B0RFhKK3FwK1ZEWWFlcjdJUWZqUVFrdmhQUlk1Um1yc2xzTk5LZWRJ?=
 =?utf-8?B?WE0raGZOaW5iSlJyeXpVcnZLWEZlazF4Wk1IK0xBUkpZWlEyTEFvdDNHcVVt?=
 =?utf-8?B?SG40cXY1WkJHZ29LWlFmVVNKQ1ZZTnVKNC9EcSs3UVdYZlFOcUxSNndTOU82?=
 =?utf-8?B?bW5Ba3A2UWUxZUI4K2NMenR2YnhZN2xFekgxYkRkZnI0ZE5yOHRlNk53VDRL?=
 =?utf-8?B?OHRzTEVMckFEaFNIMnJBb1JzRXZISmNNdDNEcHNlVUNnRS9OWjVDRWlDcWxG?=
 =?utf-8?B?cE4vRGZTNnlqMmNWejUrY1k2aE9vc3JOUEl4TGtwUDNPSWdnNGE2YlJtSTN6?=
 =?utf-8?B?Y1lObjNDZjhiYXNPRU1aNk8zcExKbzVUUnBWTkVhU0tEOTg5TGYzZGdjM1F2?=
 =?utf-8?B?WEFYK3h6dXhZZktNQWRmeWFoaW55QTdiK2NaVHlYN1VDaGg2YVNjOGRScVYx?=
 =?utf-8?B?OHhGVUhpUnBrc0k0NlJQU2dOYUt3OFIxeXB3Ull5N2VOdy9obUx2UU05RW1o?=
 =?utf-8?B?N2h2c25ERnZZVCtWTXJubW9NS2htVEJ3ejZEd3Z1Tjd6K3FqSGptejJPL0JI?=
 =?utf-8?Q?T3GLAl1tEhAaA/EQLpN2d8+5r?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 58afeee5-b982-45a7-08f3-08dd76a1d6cd
X-MS-Exchange-CrossTenant-AuthSource: SN7PR12MB7322.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Apr 2025 13:32:43.5116
 (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: byPaWa5rQL+cTjEhf4GsjP2YTo8B9iFwJvefAtclb9FXHvMhFnzsA/AWSiJfea5pRoQB5Bmm1KrlfZXncYbGmQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB9465

Hi Luca,

On 07/04/2025 10:14, Luca Fancellu 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.
>
>
> Implement the function setup_mpu that will logically track the MPU
> regions defined by hardware registers, start introducing data
> structures and functions to track the status from the C world.
>
> The xen_mpumap_mask bitmap is used to track which MPU region are
> enabled at runtime.
>
> This function is called from setup_mm() which full implementation
> will be provided in a later stage.
>
> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
> ---
>   xen/arch/arm/include/asm/arm64/mpu.h |  2 ++
>   xen/arch/arm/mpu/mm.c                | 49 +++++++++++++++++++++++++++-
>   2 files changed, 50 insertions(+), 1 deletion(-)
>
> diff --git a/xen/arch/arm/include/asm/arm64/mpu.h b/xen/arch/arm/include/asm/arm64/mpu.h
> index 7cf8d355a1af..ff5a957bf085 100644
> --- a/xen/arch/arm/include/asm/arm64/mpu.h
> +++ b/xen/arch/arm/include/asm/arm64/mpu.h
> @@ -6,6 +6,8 @@
>   #ifndef __ARM_ARM64_MPU_H__
>   #define __ARM_ARM64_MPU_H__
>
> +#define PRENR_MASK  GENMASK(31, 0)
This can be moved to xen/arch/arm/include/asm/mpu.h
> +
>   /*
>    * Excute never.
>    * Stage 1 EL2 translation regime.
> diff --git a/xen/arch/arm/mpu/mm.c b/xen/arch/arm/mpu/mm.c
> index 2c5820a44f13..fe05c8097155 100644
> --- a/xen/arch/arm/mpu/mm.c
> +++ b/xen/arch/arm/mpu/mm.c
> @@ -14,6 +14,17 @@
>
>   struct page_info *frame_table;
>
> +/* Maximum number of supported MPU memory regions by the EL2 MPU. */
> +uint8_t __ro_after_init max_xen_mpumap;
> +
> +/*
> + * Bitmap xen_mpumap_mask is to record the usage of EL2 MPU memory regions.
> + * Bit 0 represents MPU memory region 0, bit 1 represents MPU memory
> + * region 1, ..., and so on.
> + * If a MPU memory region gets enabled, set the according bit to 1.
> + */
> +DECLARE_BITMAP(xen_mpumap_mask, MAX_MPU_REGIONS);
> +
>   /* EL2 Xen MPU memory region mapping table. */
>   pr_t xen_mpumap[MAX_MPU_REGIONS];
>
> @@ -224,9 +235,45 @@ pr_t pr_of_xenaddr(paddr_t base, paddr_t limit, unsigned attr)
>       return region;
>   }
>
> +/*
> + * The code in this function needs to track the regions programmed in
> + * arm64/mpu/head.S
> + */
> +static void __init setup_mpu(void)
> +{
> +    register_t prenr;
> +    unsigned int i = 0;
> +
> +    /*
> +     * MPUIR_EL2.Region[0:7] identifies the number of regions supported by
> +     * the EL2 MPU.
> +     */
> +    max_xen_mpumap = (uint8_t)(READ_SYSREG(MPUIR_EL2) & NUM_MPU_REGIONS_MASK);
> +
> +    /* PRENR_EL2 has the N bit set if the N region is enabled, N < 32 */
> +    prenr = (READ_SYSREG(PRENR_EL2) & PRENR_MASK);
> +
> +    /*
> +     * Set the bitfield for regions enabled in assembly boot-time.
> +     * This code works under the assumption that the code in head.S has
> +     * allocated and enabled regions below 32 (N < 32).
> +     */
> +    while ( prenr > 0 )
> +    {
> +        if (prenr & 0x1)
> +        {
> +            set_bit(i, xen_mpumap_mask);
> +            read_protection_region(&xen_mpumap[i], i);
> +        }
> +
> +        prenr >>= 1;
> +        i++;
> +    }
> +}
> +
>   void __init setup_mm(void)
>   {
> -    BUG_ON("unimplemented");
> +    setup_mpu();
>   }
>
>   int modify_xen_mappings(unsigned long s, unsigned long e, unsigned int nf)
> --
> 2.34.1
- Ayan
>


From xen-devel-bounces@lists.xenproject.org Tue Apr 08 13:35:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 13:35:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.942126.1341399 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u296V-0007vB-VJ; Tue, 08 Apr 2025 13:35:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 942126.1341399; Tue, 08 Apr 2025 13:35: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 1u296V-0007v4-RW; Tue, 08 Apr 2025 13:35:03 +0000
Received: by outflank-mailman (input) for mailman id 942126;
 Tue, 08 Apr 2025 13:35: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=83+A=W2=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1u296U-0007ux-EK
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 13:35:02 +0000
Received: from fout-b6-smtp.messagingengine.com
 (fout-b6-smtp.messagingengine.com [202.12.124.149])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 422c24c0-147e-11f0-9ffb-bf95429c2676;
 Tue, 08 Apr 2025 15:34:56 +0200 (CEST)
Received: from phl-compute-12.internal (phl-compute-12.phl.internal
 [10.202.2.52])
 by mailfout.stl.internal (Postfix) with ESMTP id 2E8501140112;
 Tue,  8 Apr 2025 09:34:55 -0400 (EDT)
Received: from phl-mailfrontend-01 ([10.202.2.162])
 by phl-compute-12.internal (MEProxy); Tue, 08 Apr 2025 09:34:55 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue,
 8 Apr 2025 09:34:53 -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: 422c24c0-147e-11f0-9ffb-bf95429c2676
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=fm2; t=1744119295;
	 x=1744205695; bh=eyfGY7oKJHjRwk2ec3sLoUu2LyhDyICaz7YqnLFlRQU=; b=
	krkKuN9fYT99C8HlqFTfgyFEcqIMB5iYA2rk/5c9Nl8Hbq+WSoufx5OqGWj27MGo
	ShJM9QPM581MAIMYZ1JjaenRwecF0GohmJ878LXB7et1UDeK4YW3Xguic+CNfYBm
	1NdRJiZ+JQ8RTggOAASmArxixul/fbyRO6nKZ6mHUSqOnSh1vgqQHPp+aL/W/kbp
	M5JmKEVI44xi68y12RuD0yLkU3hjFzqyJJhJufzqceSBDVUmiRbZLF7wwOR6i86u
	0IPIXMf6A+c7CGISCx7aCLwuT9lz8lzL86aCkgAVNnLP1oOAtDRK3VEgrRIqWXTT
	PA3n15IcCsP95IAwRFKlnw==
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=fm2; t=
	1744119295; x=1744205695; bh=eyfGY7oKJHjRwk2ec3sLoUu2LyhDyICaz7Y
	qnLFlRQU=; b=QcQRmtdzkQ1SIHmSVqc0W63j3hWnrlCyWzyiV43lyFPk2QqtMre
	doZeRD17B/3oJzCO4c6lRCpittm8ECECZsf4ac6DIg8WIznvIFZjNSE5+pRM2jZq
	KwitaZ0/p7kH69stFTPLGE8Lv4/IOF7rSYEPwPlldLsswzY4Tk3Z141tiSg73dds
	1R1wZ3/02YAhbyZ3SFi18sABjjhf22k9vmw17DYf7MST6/H2kWYHsj+zq/HbGRWL
	z/EgW0DizZKlg5/A5jxLXG40bM60EH25YM80arv90mfZsE5YzERgOuuj+5iB68g7
	VBwUj2HYFaRXUI2viWl9L9VKXFjOPO6926Q==
X-ME-Sender: <xms:_iX1Z4iPAl5syMzjVk3uJ4-4lv0EmB--Tf3X_vU3_oubnLG0zCn7kg>
    <xme:_iX1ZxBpYd3Xnm5CRG86wIX96pW3rTQ-rcxDeKn6Z95w3Hk6dmqOqUfNAPSZJt2ZK
    CDDXgoM9wnf9Q>
X-ME-Received: <xmr:_iX1ZwF0_njAxTeN7X6ynl5scVy81tMw-Ez-0b5aQxEw5D5T5-NefdXNsjPGQBeMNxDj3Yq6k7P0bh6iwUyKE3w6eY2W3tuYlg>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvtdefvddvucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
    pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
    gvnhhtshculddquddttddmnecujfgurhepfffhvfevuffkfhggtggujgesghdtreertddt
    jeenucfhrhhomhepofgrrhgvkhcuofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuc
    eomhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecu
    ggftrfgrthhtvghrnhepieehieegtdetfedtgfffgefgtdegledugeevgffhjeekvdeihe
    dvjeegfeekgeffnecuffhomhgrihhnpehtrhhivhhirghlrdhtohholhhsnecuvehluhhs
    thgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghkse
    hinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdpnhgspghrtghpthhtohepiedp
    mhhouggvpehsmhhtphhouhhtpdhrtghpthhtoheprghnughrvgifrdgtohhophgvrhefse
    gtihhtrhhigidrtghomhdprhgtphhtthhopeigvghnqdguvghvvghlsehlihhsthhsrdig
    vghnphhrohhjvggtthdrohhrghdprhgtphhtthhopehjsggvuhhlihgthhesshhushgvrd
    gtohhmpdhrtghpthhtoheprhhoghgvrhdrphgruhestghithhrihigrdgtohhmpdhrtghp
    thhtoheprghnthhhohhnhidrphgvrhgrrhgusehvrghtvghsrdhtvggthhdprhgtphhtth
    hopehjghhrohhsshesshhushgvrdgtohhm
X-ME-Proxy: <xmx:_iX1Z5S2XzQ2AXGZRnvoQkm4GHOgw8aWAB8NfHCQegmbDky7xNV8NA>
    <xmx:_iX1Z1x5fS8nxT5tnCKP_qfs6lT2-0HtyW55W64OwE1TcJntoOwF-A>
    <xmx:_iX1Z37wKx11REmVVnjouxCnOLDqT8sx_QN5pGgIzvshTEd7Pk_PEQ>
    <xmx:_iX1ZywrjFD2LLoI4-21FMkXMI016AU3gD8mQK3m-LDPguUtFiInnw>
    <xmx:_yX1Zz3MR5Fau0QrK_tLoYjYIVrHFeh1dA9ad9X5TGEouc13cWFRYhQw>
Feedback-ID: i1568416f:Fastmail
Date: Tue, 8 Apr 2025 15:34:50 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>
Subject: Re: [PATCH] libxl+hvmloader: extend IGD check part 2
Message-ID: <Z_Ul-wjePbu2PLg9@mail-itl>
References: <20250408132333.1524246-2-marmarek@invisiblethingslab.com>
 <a16618c7-94ac-48e3-817d-80c88c18c95f@citrix.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="qlTuTevkzzzKlRNm"
Content-Disposition: inline
In-Reply-To: <a16618c7-94ac-48e3-817d-80c88c18c95f@citrix.com>


--qlTuTevkzzzKlRNm
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Tue, 8 Apr 2025 15:34:50 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>
Subject: Re: [PATCH] libxl+hvmloader: extend IGD check part 2

On Tue, Apr 08, 2025 at 02:31:10PM +0100, Andrew Cooper wrote:
> On 08/04/2025 2:23 pm, Marek Marczykowski-G=C3=B3recki wrote:
> > Consider also "Display controller" an IGD, not only "VGA compatible
> > controller" in few more places.
> >
> > Fixes: 4191619e0893 ("libxl: extend IGD check")
> > Signed-off-by: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblething=
slab.com>
> > ---
> > Do you prefer this to be split into two patches (libxl, hvmloader)?
>=20
> Probably not for something this trivial.
>=20
> >
> >  tools/firmware/hvmloader/pci.c | 1 +
> >  tools/libs/light/libxl_pci.c   | 3 ++-
> >  2 files changed, 3 insertions(+), 1 deletion(-)
> >
> > diff --git a/tools/firmware/hvmloader/pci.c b/tools/firmware/hvmloader/=
pci.c
> > index c3c61ca060a6..1ee97a5b4b20 100644
> > --- a/tools/firmware/hvmloader/pci.c
> > +++ b/tools/firmware/hvmloader/pci.c
> > @@ -173,6 +173,7 @@ void pci_setup(void)
> >          switch ( class )
> >          {
> >          case 0x0300:
> > +        case 0x0380:
>=20
> Now we've got multiple, we should have /* VGA */ and /* Display */
> comments like libxl has.
>=20
> Can fix on commit.

Fine with me, thanks!

> Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmf1JfsACgkQ24/THMrX
1yz9Dwf/buUpTFeuFeoFRmTUPjDiwtFPHDzVgUgzIbuPGKljkhuoEz23VYh53bLv
w5Y12R1hN6H37SgsMd3Bb+KVMSWblLDhFITbDpgTtv5Unr+RHl9BFFqy7IDfEq7s
0hWIyZrp4wjU0jnjPjUiQ88GKBtBZB7oXzlfaqwpdw0PgyxSOYC/YZ86V3CH+Dsa
1RKRQVfeaCnHOjxYhTDouLFU73NcuwdW3gLR6BZ/4NJy/80vlyAgO0IEmY3xoXiK
6Tg5mX+Xtu0sJPUc+C19eqoDHMya+j3IuH7c3BelqBTxMpZO5pcvDHjZn8kaJFRy
e5yuLzGaQwfG0ZWGhUkIVqE7dGrS2g==
=YCHt
-----END PGP SIGNATURE-----

--qlTuTevkzzzKlRNm--


From xen-devel-bounces@lists.xenproject.org Tue Apr 08 13:42:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 13:42:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.942143.1341410 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u29Dd-0002N6-OK; Tue, 08 Apr 2025 13:42:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 942143.1341410; Tue, 08 Apr 2025 13: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 1u29Dd-0002Mz-IW; Tue, 08 Apr 2025 13:42:25 +0000
Received: by outflank-mailman (input) for mailman id 942143;
 Tue, 08 Apr 2025 13: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=xdvb=W2=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u29Dc-0002M8-BQ
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 13:42:24 +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 4c371a26-147f-11f0-9ffb-bf95429c2676;
 Tue, 08 Apr 2025 15:42:22 +0200 (CEST)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-43ede096d73so23876905e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 08 Apr 2025 06:42:22 -0700 (PDT)
Received: from [10.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-43ec17b3572sm165566935e9.39.2025.04.08.06.42.21
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 08 Apr 2025 06:42:21 -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: 4c371a26-147f-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744119741; x=1744724541; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=R0F+97vDHSfn7Dtg+WrWKXqktzoIh+d1ZOvOEQ4/CRw=;
        b=NzzOHgrBwHr42KCqVFOQ+XL8Fu3OMCWoqX4k/jGHnystjFXDOKOr8BlSRmKNPA+ASl
         52GfKBFIK9UQ0N4YclTJHGRipTZA9tnalYbY6tejhhSYVhU6Tbxsj22bWsQha5Wjk1jX
         VXcxa+FwuU7J90t1jFdVH09FHZCZU4trtXChCoQt/h8+MJyvV9Ycpzy7Jqc0JshA7o5k
         A4uadks5q4jh9LOsGq862oiF5hWNnBSSbeQRCWtHpnNukBFrRJvtna2mA0HtOn636E+Y
         RE80LuOiVswHwYuL5tq7v56v5WwR0q3EOR55yN7XbFzJaoerEtsvXhz+WOaXu+Ioyu6R
         PPCg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744119741; x=1744724541;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=R0F+97vDHSfn7Dtg+WrWKXqktzoIh+d1ZOvOEQ4/CRw=;
        b=Dbx0E0Fn1s24Ah3SkD1GvUJn8Tbxei0F6rASrAV35d58OH0RXWXiGImSHkDHCoI6b1
         V+/ZU/dLcBxiqBwy5F1yqY2qAt6V9lxMv+DH4yysOxsJ/1fgoyfbPdxy3kV+HvbwFcZG
         sMAJ3zUrlY/LrWv3UDeW3fjlVb5CITdXK+fQClUYojj4GcCBfy7m26nVHTfsAqqSdsWJ
         8Xb2m3En3yjhRh3/q+QdDd+q4qOZRgYt9LtDlLxm9ZULsU4L7bPWppApLGBBeXiQrdLG
         zqP23Lnp7QxqZ6pVGphe229awpjSjj8SbiL/4vs0zYr7AjjqpjGpx9+8RzXDsPP1Kq4T
         hcTw==
X-Forwarded-Encrypted: i=1; AJvYcCXDNUYTnx16Of0GUhswCUIBXo1O0PEoFh2NsddYTQHJ/PndNNmf3f/x2OpaMEQ7NshgLkk0z+80i3U=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx3swkLMa0xejCKXOGAM5jRvT0MejjAGNfzOA2Lh9ascvnIXJ2i
	q/0437VbuIxEIlZzqRhmPGihYgtKLZ5C46uErKGbXY7lwOn4drBaY+VOB8QZ2Q==
X-Gm-Gg: ASbGncvOMkncRmoHXgv+LRJb+HdfLXor2cObKuDr8E4imWpxsylz8eVfSDbtJuC/NvQ
	4l3gflg7R0o6ali34X3TEM3570zP9kIpP0Yp5BpN7b2AdwyMqTUStRZkGKjfo6IsOJ4pRq2F3+q
	YeWsiz1lfM3+nk44++V7uv9eE/YlbiiMFV/Qas1VpiNS905nDwx4TWNd4ZeQ/gR3PRkuFuPOa8X
	sFbMFwOZc88T4fgM+tumdGh6BUG+nci0iIG8p8tbZny5IXPlEhlZd5k0Os8qsmmjWy2WBtnpjxb
	COP9v/o/3O8iCFVqeYHqIULkKPr+YAuniCtL+7e8fweCicUxcLbn+CrBmIx9+SE5LXfgYRzByec
	Fw6AhytcHYNYE6jI4kTR57uKDWHbznQ==
X-Google-Smtp-Source: AGHT+IFMsaQg1mVrzS7+aUtz6Q4q2QuNMpPwYoloHBtjiTRKlKia+q5bhYQNA4SF/YcKiWwV4mML8g==
X-Received: by 2002:a05:600c:1d12:b0:43c:fd72:f028 with SMTP id 5b1f17b1804b1-43ed0db3ba4mr155568555e9.29.1744119741634;
        Tue, 08 Apr 2025 06:42:21 -0700 (PDT)
Message-ID: <4e047ee6-8f13-4d18-a62c-b7cd36b3fd4e@suse.com>
Date: Tue, 8 Apr 2025 15:42:20 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/2] x86/hvm: remove unreachable MMCFG write emulation
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20250408093156.83277-1-roger.pau@citrix.com>
 <20250408093156.83277-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: <20250408093156.83277-2-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 08.04.2025 11:31, Roger Pau Monne wrote:
> The current implementation of PVH dom0 relies on vPCI to trap and handle
> accesses to the MMCFG area.  Previous implementation of PVH dom0 (v1)
> didn't have vPCI, and as a classic PV dom0, relied on the MMCFG range being
> RO.  As such hvm_emulate_one_mmio() had to special case write accesses to
> the MMCFG area.
> 
> With PVH dom0 using vPCI, and the MMCFG accesses being fully handled there,
> hvm_emulate_one_mmio() should never handle accesses to MMCFG, making the
> code effectively unreachable.
> 
> Remove it and leave an ASSERT to make sure MMCFG accesses never get into
> hvm_emulate_one_mmio().  As a result of the removal of one of the users of
> mmcfg_intercept_write(), the function can now be moved into the same
> translation unit where it's solely used, allowing it to be made static and
> effectively built only when PV support is enabled.
> 
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>

Reviewed-by: Jan Beulich <jbeulich@suse.com>
with one cosmetic suggestion:

> --- a/xen/arch/x86/hvm/emulate.c
> +++ b/xen/arch/x86/hvm/emulate.c
> @@ -2858,12 +2858,6 @@ int hvm_emulate_one(
>  
>  int hvm_emulate_one_mmio(unsigned long mfn, unsigned long gla)
>  {
> -    static const struct x86_emulate_ops hvm_intercept_ops_mmcfg = {
> -        .read       = x86emul_unhandleable_rw,
> -        .insn_fetch = hvmemul_insn_fetch,
> -        .write      = mmcfg_intercept_write,
> -        .validate   = hvmemul_validate,
> -    };
>      static const struct x86_emulate_ops hvm_ro_emulate_ops_mmio = {
>          .read       = x86emul_unhandleable_rw,
>          .insn_fetch = hvmemul_insn_fetch,
> @@ -2872,28 +2866,28 @@ int hvm_emulate_one_mmio(unsigned long mfn, unsigned long gla)
>      };
>      struct mmio_ro_emulate_ctxt mmio_ro_ctxt = { .cr2 = gla, .mfn = _mfn(mfn) };
>      struct hvm_emulate_ctxt ctxt;
> -    const struct x86_emulate_ops *ops;
>      unsigned int seg, bdf;
>      int rc;
>  
>      if ( pci_ro_mmcfg_decode(mfn, &seg, &bdf) )
>      {
> -        mmio_ro_ctxt.seg = seg;
> -        mmio_ro_ctxt.bdf = bdf;
> -        ops = &hvm_intercept_ops_mmcfg;
> +        /* Should be always handled by vPCI for PVH dom0. */
> +        gdprintk(XENLOG_ERR, "unhandled MMCFG access for %pp\n",
> +                 &PCI_SBDF(seg, bdf));
> +        ASSERT_UNREACHABLE();
> +        return X86EMUL_UNHANDLEABLE;
>      }
> -    else
> -        ops = &hvm_ro_emulate_ops_mmio;
>  
>      hvm_emulate_init_once(&ctxt, x86_insn_is_mem_write,
>                            guest_cpu_user_regs());
>      ctxt.ctxt.data = &mmio_ro_ctxt;
>  
> -    switch ( rc = _hvm_emulate_one(&ctxt, ops, VIO_no_completion) )
> +    switch ( rc = _hvm_emulate_one(&ctxt, &hvm_ro_emulate_ops_mmio,
> +                                   VIO_no_completion) )
>      {
>      case X86EMUL_UNHANDLEABLE:
>      case X86EMUL_UNIMPLEMENTED:
> -        hvm_dump_emulation_state(XENLOG_G_WARNING, "MMCFG", &ctxt, rc);
> +        hvm_dump_emulation_state(XENLOG_G_WARNING, "RO MMIO", &ctxt, rc);

The string doesn't need to be all capitals (see other uses of the function).
How about "r/o MMIO"?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 08 13:46:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 13:46:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.942160.1341419 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u29HC-000307-6g; Tue, 08 Apr 2025 13:46:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 942160.1341419; Tue, 08 Apr 2025 13:46: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 1u29HC-000300-42; Tue, 08 Apr 2025 13:46:06 +0000
Received: by outflank-mailman (input) for mailman id 942160;
 Tue, 08 Apr 2025 13:46:05 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=f4Vq=W2=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1u29HB-0002zu-1U
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 13:46:05 +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 cf9eb2d6-147f-11f0-9ffb-bf95429c2676;
 Tue, 08 Apr 2025 15:46:02 +0200 (CEST)
Received: by mail-ed1-x530.google.com with SMTP id
 4fb4d7f45d1cf-5ed43460d6bso8656957a12.0
 for <xen-devel@lists.xenproject.org>; Tue, 08 Apr 2025 06:46:02 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-64-225.play-internet.pl.
 [109.243.64.225]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-ac7c0185726sm908930666b.137.2025.04.08.06.46.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 08 Apr 2025 06:46:01 -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: cf9eb2d6-147f-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1744119962; x=1744724762; darn=lists.xenproject.org;
        h=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=atE7JgGo/K0tbOC7QuthhawOjaJgontp98STjwk8QFc=;
        b=eqlqnu0QSFErWJRE5z7v84eUPJighnQmzb3hrP+PQg5FHsRJF0I2ZXw0MfL1r6Y//o
         yROWH3FoMMn0rD2UAXk8SluF/7grSTofAme/L3Vc++tOnTvdjRCqfOpmgRSSFevJcbi5
         VUtD/KMExVFGMXVP7Z3CMh1zDJDZ65fdxHUN8QNqhVrbhocm7KP0PNOiUQC/cdn4blI5
         jV2Oq0BMUiFDszQ+9qJpum7Rd2Zo1xPB/P/AOAiHm1yzMJLt+hF94RQ0WY1dqxX04cbm
         Zg0LkuUcMYL2xJOkjdvlF2Xxv2ptdC2aPQ8xaK8/HBqcGzFP++coJgJs78kwVT9iuLoM
         OIEw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744119962; x=1744724762;
        h=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=atE7JgGo/K0tbOC7QuthhawOjaJgontp98STjwk8QFc=;
        b=IwyQtSH0b5Sd3x3AWBJmbCVJHLvO5s9WJgK5SxHZBjuo7FIyHRtEvdJiKjTfrVq78w
         iqt165n9KxL/7lRqYYD4T1UNYFRosMzpbKmNUInFqLCsSl6TwDHV0E7WUCuP7QfM4aze
         wrkuJVMxYwihSTZ3qJ4LsDe86XUbmF32PY6LfIAtjCC5LPh2QmB6VkUYa6LSg+edNAno
         CKagTQxpUdYPJBAWl9Tfp605RBCqrVdvq1yqU9bQj7z0uFj4OJeKwCmHoBE5spdWIpgM
         91TD4hNVvABB3D64NXY8TJzXtbLb59xthrCAI3F2DWQDZ+goGFawiIVrUmxzHhhkTMR9
         FPzg==
X-Forwarded-Encrypted: i=1; AJvYcCWjlk7qQuzwZ8Qb7LwJ3LXI01k7MaHIuJWcaEJw9vItrfaZYbRBSnA8dBOcky/OITNVFfl+oKqX+H0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyG66IZk3FmWbpYeQ+3MPOIavOPvFU2+QkWdg07PigmxJVtvFa+
	ojlaN1PXzzScEfD2Ww3mN02U5WbaU19HJaz7nfBIdV6/76VvgwYI
X-Gm-Gg: ASbGnctmbU1/EPvjMPzT3/i+ntnlY+n40Y/GS/Z3cMpYkAv7ko2kArt7TukRTlhr447
	HhikJS8Au/6qNYv8NUn/jpr9Lq3etEGc4ZHEPFrZECP2jkkBF6TXqoOzGw3OIymS3aYhCBFAVlS
	ohZmEZkDjYRYfsDJlP9nLbAiC8oq7P9OIOTxCgg5yudZzbvF0j41R/FcIWQTd/StA6wTtR7Kx9i
	mfLBJdNGVI845Ct1GnU2U37ZcCRWVcVRzOg5DtI11l+uH8NeDUFMKt4n+iR/2RJhuVumSsMZ+T5
	vID/o0pf0kQgrMiQgjGLQAPeqsTNMmhCMtnrnqvXgvUHEslTwBsBJ8w1WL5Y/+eS+csGKC0NI2r
	e2LZv8g1eCFCx3RP8w7Be
X-Google-Smtp-Source: AGHT+IHgamdUI5YlQzGy+tywp2WFIt6eICFuddEACvBztvsWio9ZOGbAiBOCCMJpfYlREEW3FdCiog==
X-Received: by 2002:a17:907:9813:b0:ac3:3e40:e182 with SMTP id a640c23a62f3a-ac7d6d05fcfmr1419204366b.19.1744119961574;
        Tue, 08 Apr 2025 06:46:01 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------XvnKCZqwJdqMgXTIWtLshsvG"
Message-ID: <c3b1be9a-d5f5-4cac-a675-7485a99bf51c@gmail.com>
Date: Tue, 8 Apr 2025 15:46:00 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] xen/riscv: Increase XEN_VIRT_SIZE
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <808d1b346bc90dde38fd19a6b92ab78d78e42936.1743766932.git.oleksii.kurochko@gmail.com>
 <e5f6ccb3-498f-44cf-8c06-61fa502d93db@suse.com>
 <f35a9969-6154-4e9a-b997-16ca135e85ee@gmail.com>
 <8b2e50f2-1f89-41df-be88-afc9ef24b51a@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <8b2e50f2-1f89-41df-be88-afc9ef24b51a@suse.com>

This is a multi-part message in MIME format.
--------------XvnKCZqwJdqMgXTIWtLshsvG
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 4/8/25 2:02 PM, Jan Beulich wrote:
> On 08.04.2025 13:51, Oleksii Kurochko wrote:
>> On 4/7/25 12:09 PM, Jan Beulich wrote:
>>> On 04.04.2025 18:04, Oleksii Kurochko wrote:
>>>> --- a/xen/arch/riscv/include/asm/mm.h
>>>> +++ b/xen/arch/riscv/include/asm/mm.h
>>>> @@ -43,13 +43,19 @@ static inline void *maddr_to_virt(paddr_t ma)
>>>>     */
>>>>    static inline unsigned long virt_to_maddr(unsigned long va)
>>>>    {
>>>> +    const unsigned int vpn1_shift = PAGETABLE_ORDER + PAGE_SHIFT;
>>>> +    const unsigned long va_vpn = va >> vpn1_shift;
>>>> +    const unsigned long xen_virt_start_vpn =
>>>> +        _AC(XEN_VIRT_START, UL) >> vpn1_shift;
>>>> +    const unsigned long xen_virt_end_vpn =
>>>> +        xen_virt_start_vpn + ((XEN_VIRT_SIZE >> vpn1_shift) - 1);
>>>> +
>>>>        if ((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)) ==
>>>> -           (_AC(XEN_VIRT_START, UL) >> (PAGETABLE_ORDER + PAGE_SHIFT)));
>>>> +    BUILD_BUG_ON(XEN_VIRT_SIZE > GB(1));
>>>> +    ASSERT((va_vpn >= xen_virt_start_vpn) && (va_vpn <= xen_virt_end_vpn));
>>> Not all of the range is backed by memory, and for the excess space the
>>> translation is therefore (likely) wrong. Which better would be caught by
>>> the assertion?
>> Backed here means that the memory is actually mapped?
>>
>> IIUC it is needed to check only for the range [XEN_VIRT_START, XEN_VIRT_START+xen_phys_size]
>> where xen_phys_size=(unsigned long)_end - (unsigned long)_start.
>>
>> Did I understand you correctly?
> I think so, yes. Depending on what you (intend to) do to .init.* at the
> end of boot, that range may later also want excluding.

I planned to release everything between __init_begin and __init_end in the following way:
   destroy_xen_mappings((unsigned long)__init_begin, (unsigned long)__init_end);

So yes, then I think I have to come up with new ASSERT, add is_init_memory_freed variable and
if is_init_memory_freed=true then also check that `va` isn't from .init.* range.

But I'm not quire sure that mapping for .got* should be destroyed after the end of boot. (now it is
part of [__init_begin,__init_end] range.

>>>> --- a/xen/arch/riscv/mm.c
>>>> +++ b/xen/arch/riscv/mm.c
>>>> @@ -31,20 +31,27 @@ unsigned long __ro_after_init phys_offset; /* = load_start - XEN_VIRT_START */
>>>>    #define LOAD_TO_LINK(addr) ((unsigned long)(addr) - phys_offset)
>>>>    
>>>>    /*
>>>> - * It is expected that Xen won't be more then 2 MB.
>>>> + * It is expected that Xen won't be more then XEN_VIRT_SIZE MB.
>>>>     * The check in xen.lds.S guarantees that.
>>>> - * At least 3 page tables (in case of Sv39 ) are needed to cover 2 MB.
>>>> - * One for each page level table with PAGE_SIZE = 4 Kb.
>>>>     *
>>>> - * One L0 page table can cover 2 MB(512 entries of one page table * PAGE_SIZE).
>>>> + * Root page table is shared with the initial mapping and is declared
>>>> + * separetely. (look at stage1_pgtbl_root)
>>>>     *
>>>> - * It might be needed one more page table in case when Xen load address
>>>> - * isn't 2 MB aligned.
>>>> + * An amount of page tables between root page table and L0 page table
>>>> + * (in the case of Sv39 it covers L1 table):
>>>> + *   (CONFIG_PAGING_LEVELS - 2) are needed for an identity mapping and
>>>> + *   the same amount are needed for Xen.
>>>>     *
>>>> - * CONFIG_PAGING_LEVELS page tables are needed for the identity mapping,
>>>> - * except that the root page table is shared with the initial mapping
>>>> + * An amount of L0 page tables:
>>>> + *   (512 entries of one L0 page table covers 2MB == 1<<XEN_PT_LEVEL_SHIFT(1))
>>>> + *   XEN_VIRT_SIZE >> XEN_PT_LEVEL_SHIFT(1) are needed for Xen and
>>>> + *   one L0 is needed for indenity mapping.
>>>> + *
>>>> + *   It might be needed one more page table in case when Xen load
>>>> + *   address isn't 2 MB aligned.
>>> Shouldn't we guarantee that?
>> I think it's sufficient to guarantee 4KB alignment.
>>
>> The only real benefit I see in enforcing larger alignment is that it likely enables
>> the use of superpages for mapping, which would reduce TLB pressure.
>> But perhaps I'm missing something?
> No, it's indeed mainly that.

But then the linker address and the load address should both be aligned to a 2MB or 1GB boundary.
This likely isn't an issue at all, but could it be a problem if we require 1GB alignment for the
load address? In that case, might it be difficult for the platform to find a suitable place in
memory to load Xen for some reason? (I don't think so but maybe I'm missing something)

These changes should probably be part of a separate patch, as currently,|setup_initial_mapping() |only works with 4KB mapping.
Perhaps it would make sense to add a comment around|setup_initial_mapping()| indicating that if
this function is modified, it may require updating|PGTBL_INITIAL_COUNT|.

~ Oleksii

>
>> Or did you mean that if 2MB alignment isn't guaranteed, then we might need two extra
>> page tables—one if the start address isn't 2MB aligned, and the Xen size is larger than 2MB?
>> Then yes one more page table should be added to PGTBL_INITIAL_COUNT.
> Well, of course - if alignment isn't guaranteed, crossing whatever boundaries
> of course needs accounting for.
>
> Jan
--------------XvnKCZqwJdqMgXTIWtLshsvG
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 4/8/25 2:02 PM, Jan Beulich wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:8b2e50f2-1f89-41df-be88-afc9ef24b51a@suse.com">
      <pre wrap="" class="moz-quote-pre">On 08.04.2025 13:51, Oleksii Kurochko wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">On 4/7/25 12:09 PM, Jan Beulich wrote:
</pre>
        <blockquote type="cite">
          <pre wrap="" class="moz-quote-pre">On 04.04.2025 18:04, Oleksii Kurochko wrote:
</pre>
          <blockquote type="cite">
            <pre wrap="" class="moz-quote-pre">--- a/xen/arch/riscv/include/asm/mm.h
+++ b/xen/arch/riscv/include/asm/mm.h
@@ -43,13 +43,19 @@ static inline void *maddr_to_virt(paddr_t ma)
   */
  static inline unsigned long virt_to_maddr(unsigned long va)
  {
+    const unsigned int vpn1_shift = PAGETABLE_ORDER + PAGE_SHIFT;
+    const unsigned long va_vpn = va &gt;&gt; vpn1_shift;
+    const unsigned long xen_virt_start_vpn =
+        _AC(XEN_VIRT_START, UL) &gt;&gt; vpn1_shift;
+    const unsigned long xen_virt_end_vpn =
+        xen_virt_start_vpn + ((XEN_VIRT_SIZE &gt;&gt; vpn1_shift) - 1);
+
      if ((va &gt;= DIRECTMAP_VIRT_START) &amp;&amp;
          (va &lt;= DIRECTMAP_VIRT_END))
          return directmapoff_to_maddr(va - directmap_virt_start);
  
-    BUILD_BUG_ON(XEN_VIRT_SIZE != MB(2));
-    ASSERT((va &gt;&gt; (PAGETABLE_ORDER + PAGE_SHIFT)) ==
-           (_AC(XEN_VIRT_START, UL) &gt;&gt; (PAGETABLE_ORDER + PAGE_SHIFT)));
+    BUILD_BUG_ON(XEN_VIRT_SIZE &gt; GB(1));
+    ASSERT((va_vpn &gt;= xen_virt_start_vpn) &amp;&amp; (va_vpn &lt;= xen_virt_end_vpn));
</pre>
          </blockquote>
          <pre wrap="" class="moz-quote-pre">Not all of the range is backed by memory, and for the excess space the
translation is therefore (likely) wrong. Which better would be caught by
the assertion?
</pre>
        </blockquote>
        <pre wrap="" class="moz-quote-pre">
Backed here means that the memory is actually mapped?

IIUC it is needed to check only for the range [XEN_VIRT_START, XEN_VIRT_START+xen_phys_size]
where xen_phys_size=(unsigned long)_end - (unsigned long)_start.

Did I understand you correctly?
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
I think so, yes. Depending on what you (intend to) do to .init.* at the
end of boot, that range may later also want excluding.</pre>
    </blockquote>
    <pre>I planned to release everything between __init_begin and __init_end in the following way:
  destroy_xen_mappings((unsigned long)__init_begin, (unsigned long)__init_end);

So yes, then I think I have to come up with new ASSERT, add is_init_memory_freed variable and
if is_init_memory_freed=true then also check that `va` isn't from .init.* range.

But I'm not quire sure that mapping for .got* should be destroyed after the end of boot. (now it is
part of [__init_begin,__init_end] range.

</pre>
    <blockquote type="cite"
      cite="mid:8b2e50f2-1f89-41df-be88-afc9ef24b51a@suse.com">
      <pre wrap="" class="moz-quote-pre">
</pre>
      <blockquote type="cite">
        <blockquote type="cite">
          <blockquote type="cite">
            <pre wrap="" class="moz-quote-pre">--- a/xen/arch/riscv/mm.c
+++ b/xen/arch/riscv/mm.c
@@ -31,20 +31,27 @@ unsigned long __ro_after_init phys_offset; /* = load_start - XEN_VIRT_START */
  #define LOAD_TO_LINK(addr) ((unsigned long)(addr) - phys_offset)
  
  /*
- * It is expected that Xen won't be more then 2 MB.
+ * It is expected that Xen won't be more then XEN_VIRT_SIZE MB.
   * The check in xen.lds.S guarantees that.
- * At least 3 page tables (in case of Sv39 ) are needed to cover 2 MB.
- * One for each page level table with PAGE_SIZE = 4 Kb.
   *
- * One L0 page table can cover 2 MB(512 entries of one page table * PAGE_SIZE).
+ * Root page table is shared with the initial mapping and is declared
+ * separetely. (look at stage1_pgtbl_root)
   *
- * It might be needed one more page table in case when Xen load address
- * isn't 2 MB aligned.
+ * An amount of page tables between root page table and L0 page table
+ * (in the case of Sv39 it covers L1 table):
+ *   (CONFIG_PAGING_LEVELS - 2) are needed for an identity mapping and
+ *   the same amount are needed for Xen.
   *
- * CONFIG_PAGING_LEVELS page tables are needed for the identity mapping,
- * except that the root page table is shared with the initial mapping
+ * An amount of L0 page tables:
+ *   (512 entries of one L0 page table covers 2MB == 1&lt;&lt;XEN_PT_LEVEL_SHIFT(1))
+ *   XEN_VIRT_SIZE &gt;&gt; XEN_PT_LEVEL_SHIFT(1) are needed for Xen and
+ *   one L0 is needed for indenity mapping.
+ *
+ *   It might be needed one more page table in case when Xen load
+ *   address isn't 2 MB aligned.
</pre>
          </blockquote>
          <pre wrap="" class="moz-quote-pre">Shouldn't we guarantee that?
</pre>
        </blockquote>
        <pre wrap="" class="moz-quote-pre">
I think it's sufficient to guarantee 4KB alignment.

The only real benefit I see in enforcing larger alignment is that it likely enables
the use of superpages for mapping, which would reduce TLB pressure.
But perhaps I'm missing something?
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
No, it's indeed mainly that.</pre>
    </blockquote>
    <pre>But then the linker address and the load address should both be aligned to a 2MB or 1GB boundary.
This likely isn't an issue at all, but could it be a problem if we require 1GB alignment for the
load address? In that case, might it be difficult for the platform to find a suitable place in
memory to load Xen for some reason? (I don't think so but maybe I'm missing something)

These changes should probably be part of a separate patch, as currently, <code
    data-start="120" data-end="145">setup_initial_mapping()
</code>only works with 4KB mapping.
Perhaps it would make sense to add a comment around <code
    data-start="227" data-end="252">setup_initial_mapping()</code> indicating that if
this function is modified, it may require updating <code
    data-start="323" data-end="344">PGTBL_INITIAL_COUNT</code>.</pre>
    <pre>~ Oleksii
</pre>
    <blockquote type="cite"
      cite="mid:8b2e50f2-1f89-41df-be88-afc9ef24b51a@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">Or did you mean that if 2MB alignment isn't guaranteed, then we might need two extra
page tables—one if the start address isn't 2MB aligned, and the Xen size is larger than 2MB?
Then yes one more page table should be added to PGTBL_INITIAL_COUNT.
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Well, of course - if alignment isn't guaranteed, crossing whatever boundaries
of course needs accounting for.

Jan
</pre>
    </blockquote>
  </body>
</html>

--------------XvnKCZqwJdqMgXTIWtLshsvG--


From xen-devel-bounces@lists.xenproject.org Tue Apr 08 13:52:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 13:52:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.942173.1341428 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u29Mv-0005uQ-Qb; Tue, 08 Apr 2025 13:52:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 942173.1341428; Tue, 08 Apr 2025 13:52: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 1u29Mv-0005uJ-Nd; Tue, 08 Apr 2025 13:52:01 +0000
Received: by outflank-mailman (input) for mailman id 942173;
 Tue, 08 Apr 2025 13:52: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=wetR=W2=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1u29Mu-0005uD-9s
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 13:52:00 +0000
Received: from EUR03-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur03on2060c.outbound.protection.outlook.com
 [2a01:111:f403:260c::60c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a17f6265-1480-11f0-9ffb-bf95429c2676;
 Tue, 08 Apr 2025 15:51:55 +0200 (CEST)
Received: from DB8PR09CA0007.eurprd09.prod.outlook.com (2603:10a6:10:a0::20)
 by AS2PR08MB8623.eurprd08.prod.outlook.com (2603:10a6:20b:55e::7) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.33; Tue, 8 Apr
 2025 13:51:52 +0000
Received: from DB1PEPF00050A00.eurprd03.prod.outlook.com
 (2603:10a6:10:a0:cafe::d) by DB8PR09CA0007.outlook.office365.com
 (2603:10a6:10:a0::20) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8606.34 via Frontend Transport; Tue,
 8 Apr 2025 13:51:52 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DB1PEPF00050A00.mail.protection.outlook.com (10.167.242.42) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8606.22
 via Frontend Transport; Tue, 8 Apr 2025 13:51:51 +0000
Received: from DB7PR08MB2987.eurprd08.prod.outlook.com (2603:10a6:5:1c::25) by
 AM8PR08MB5649.eurprd08.prod.outlook.com (2603:10a6:20b:1dd::21) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.32; Tue, 8 Apr
 2025 13:51:16 +0000
Received: from DB7PR08MB2987.eurprd08.prod.outlook.com
 ([fe80::d53f:b16d:70a5:8668]) by DB7PR08MB2987.eurprd08.prod.outlook.com
 ([fe80::d53f:b16d:70a5:8668%4]) with mapi id 15.20.8606.029; Tue, 8 Apr 2025
 13:51: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: a17f6265-1480-11f0-9ffb-bf95429c2676
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=pelgwOq0hkBQ2jc5lg5ROGXduz5tcigKhz0LcEbPm8vWhmebdUhrrmDT+6WHQfZ5MjJf9gBdf36UL97bh48byCNH3HBLM58SDgdWIs57CJ/PZEyBifX400FLspTcM689ZqaU8d75+nmWqW5dNfUd7sWKVZffF43BOZNyHUZeMqaudLfT3vH8QVElcD6fPSszV2hu1ZGnjpsHwAoN1csYkfZqHZ7TWTuBgReWmdwQliKM/GJnc8biWEGZgIId0WDb4fSRxvb8lOXUre5MFbtASOVsOTQglfX0rmIF9YojtrGGUhGQzVzn2iEa+H0P2pZba7SXGJL57RWFUjyFoW4UNA==
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=WkAhJGFZ8z9K8xfbv6VdMslWE50kNgMXq4B/WMozGCc=;
 b=JZzjyg4xUA2SmL3MYlX8n0lX28zvgKLycLqRDL+ZZL4szZlXeSHyRYCRH2PVP5hBAeelAbomPiBEZDpfXPaBgIqMu+M9Qp1nyu6R61WtKj7IWjKBLVX2uh4+oC2ywhzeS6E25CkFzQkHJZ8QfXbGwd+aEKs7LNK3JeDMsDvUSdL881BYVYkvLGKNxbTCPntiULwyTWMypews4UtqY8CYmIEHDvqOshf+aqQ3SyyNWG2WBnz2VZyBZEEDv5n31FXU9IibIpPXanGBEuWn7fx4IMzi6E2Yq/MzvWuF0Ipt4e5ky8sHsO7FEghkFzxAyHiduueGIAgFwhd/X9UUWiH5pw==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=fail (sender ip is
 4.158.2.129) smtp.rcpttodomain=amd.com smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=WkAhJGFZ8z9K8xfbv6VdMslWE50kNgMXq4B/WMozGCc=;
 b=iUr4Z0cKdkiYoz+4aZOH1pEnIi6eq2h2Z1wNy4f/mkZGkAjPr3fML9vlS8fw2r2lRvUma78QqofCUoJV2hG8SPlvQNDkt4NmijbeU8Rw7Fpe+lzuxEgcT9rVmecjvKcFkdJVzh+DUWUQwPMkh+s9Z2JfNfW/RoL5ZSk+ACeZezs=
X-MS-Exchange-Authentication-Results: spf=fail (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Fail (protection.outlook.com: domain of arm.com does not
 designate 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com;
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=fzOv7Y0lRSB9lPobNqLV7XH+rebaS62irV5jPW49o1jAqJJ0UuPIi7FkL4W5bYIj3TyXBd8cemG7KEx3yOHas8nzgAPdAWhnSHuWQpyNJlGEpabEifs3FZgvnc9DROOgpOA9hdRzpeSxHMr+HdPAlCUTROqNoQtPpFFnHSRZWLwLIk1m30eI3gbGz7R87PxiL0WvRdbDQfW/HZFVVntDGjlD4LWizJKQAWTLcoLgiMpDE+SsWueI//VWHSPQ8/uHFrNlo4YVU/htidA/m+Q8AZOtUYlsDTvQnKj54JmUUgMeNJQwHwXDkqzCn1wpsiKRlUlKl27HaGwhULp+QLRsZA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=WkAhJGFZ8z9K8xfbv6VdMslWE50kNgMXq4B/WMozGCc=;
 b=aPMFLgYmXsFYpfIK2rfkoD2yG6BgCfLq5hn0+nHVLrHARSTnxT4fNlhDVxO7jfiCba4KoRzWnFJ3AmhmUd7vUSvzGtjSEK2RcfxW+c2GmenEcUfxrTxC786NVRFEmiDzYvEopYwaoPv04PIXcxGas/TJLakkUlE9FOKEH+WhcqbXY3fu2P9u8eU4VmxI5x1qQjROeAnSxlxbhuRxixfmJA6/IxUuQW1ECECYUeHtXA6aoBh+io8RYlBb70FcRV/EdxTRSQlmtuzAZr698USvPl0FRQkVaSAK9da6K8I3teGXDQ/v2EWuxCHYPIhTGMF+wAqmd/e8xn9SVj8Vg6bqbQ==
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=WkAhJGFZ8z9K8xfbv6VdMslWE50kNgMXq4B/WMozGCc=;
 b=iUr4Z0cKdkiYoz+4aZOH1pEnIi6eq2h2Z1wNy4f/mkZGkAjPr3fML9vlS8fw2r2lRvUma78QqofCUoJV2hG8SPlvQNDkt4NmijbeU8Rw7Fpe+lzuxEgcT9rVmecjvKcFkdJVzh+DUWUQwPMkh+s9Z2JfNfW/RoL5ZSk+ACeZezs=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Ayan Kumar Halder <ayankuma@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 v2 7/7] arm/mpu: Implement setup_mpu for MPU system
Thread-Topic: [PATCH v2 7/7] arm/mpu: Implement setup_mpu for MPU system
Thread-Index: AQHbp52TIeRvK12Zd0u5W6JGpYxUxbOZxiEAgAAFGAA=
Date: Tue, 8 Apr 2025 13:51:16 +0000
Message-ID: <7591A04F-8BEF-4FE7-A895-90E5DA0D9936@arm.com>
References: <20250407091430.2342709-1-luca.fancellu@arm.com>
 <20250407091430.2342709-8-luca.fancellu@arm.com>
 <d6c12013-235a-405f-a87f-529648d6f340@amd.com>
In-Reply-To: <d6c12013-235a-405f-a87f-529648d6f340@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.400.131.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DB7PR08MB2987:EE_|AM8PR08MB5649:EE_|DB1PEPF00050A00:EE_|AS2PR08MB8623:EE_
X-MS-Office365-Filtering-Correlation-Id: 8048fd2f-1c3e-40ec-f9ab-08dd76a483f5
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?MGJxMW5TM0JRTkRBWDBwa2pOMytpR2FIa0l2V05DTEIyejFZT2xGMnNIRStW?=
 =?utf-8?B?cTZ4THRRUFpybisrOGFjNkJaaG1TcjhKN2lObWdFZDRva3BjWVErYTRwTmlt?=
 =?utf-8?B?NkRkeEloekdqQktkWW5sdWIzdWZpeGdjemRBN1NTZ2o5NFpuS0tSVmxsL2dw?=
 =?utf-8?B?cVZJTUVEbVZJOEpJc0Exa2kzY2hUcGpheXNLVzlBRkM1SFpmcnA5eVV5NGRj?=
 =?utf-8?B?VHBwTzkvWCsyTE1OWEI1OFpVek9QVmRHSmRzM0FIWUMvU0VwTjVhcVZRMjlP?=
 =?utf-8?B?T3VzZUlWbDJPOVNjS2prOUF0aEhnZ2N6MUFCcjhzUjhhRkRiL3Rpb2tSWkU1?=
 =?utf-8?B?K1JyRGRLenNBblZKSDdzSGtROGhseUtGeEVES1VIR0dZL2xNbkFnUjZTNFds?=
 =?utf-8?B?L0tYRUdsaEw0R0RhdWl2MUxibExzV212aFg0bGRkYndaUXJ1MHFPT1pHNnYy?=
 =?utf-8?B?dVVkNlduMDYyTzlobVRMOGx5ZHdjUjNFa2dYNFB0dm5EOFI3eHdBMDVKQVIv?=
 =?utf-8?B?WVdTeE9lRlMwY2NMVWVVZ2w5M0FXTk9aUTBETVNqK3JTM2QyMU5oVTZzRUxI?=
 =?utf-8?B?U0syRDZ5dzluVEFCVis0Rk9FZGN2VjFzOFgvL0hDOGlGM0xLN1QwQUxkRkg1?=
 =?utf-8?B?Zjg5ZU1EandPSGlmMnJIbjVwYVhqYmhCdEo5eDJTNFFCbk4rQlBESFFlRms5?=
 =?utf-8?B?disvOFBmbzYwZEVrN09xNkYwbDF5cmpUVkloUXZUeWg5bmgvYUJHTEZKbjN5?=
 =?utf-8?B?T3hNaFZyMTBsVlpNR3N4YzhVcDM1TTIvV3o3elYrNlNzQnFuaDNrWE8yY0tS?=
 =?utf-8?B?MW81SUI2eHR0N2I5b2Rxa0ZIa3ByNWRLQTdwRXRKend0ZlYreXhObXpTVXFN?=
 =?utf-8?B?K1h0eWlseFgyMEVaTmRwY1dTRGVTQk1XQzl0NWpUU0x5Q0QzbWx5dGNud2tt?=
 =?utf-8?B?UVppaUlLMk5rZXQ2bmx4UU5OLy9YNWlBVmR4blVuZlVOdEE3anVBbktkY2Qz?=
 =?utf-8?B?eStMVHhJR1NSdFd2Rm9NazFwdmd2UlpscHk5Z2Vra25UMlgzOElLUnVPTVNX?=
 =?utf-8?B?Zjlsb2NFSHhPWXA5UzFLZnU5WUVMVS94eEx2STdqZTlqNTR5TkZkQVFkc0lZ?=
 =?utf-8?B?bnhOY3huTGhqNlRWRTZ0RjFGc2NaTTAvd1h2K2FZMEJ2bXE2aTBSRnhhLzFj?=
 =?utf-8?B?djBIbWs4NDVkVUFkd1Q0ci9lbWxCeE1yVGI3SGhMNEpOU01neExTMFlHR1I2?=
 =?utf-8?B?b255OEVQcDV4WjRzbkJzeklheHZZaUhBWWpXVDNqSy9sWTJ4OTBDV09sd29W?=
 =?utf-8?B?MG9ENzEyUDhqQ25zR25uRGJJc2hLcW9Xa3N1aS9NYUZwUnl3S2NBTUYvbUFn?=
 =?utf-8?B?TmdYOEt2cjFJSzM3UHhMa3p3SGRlRmNNYVBwVGM0ZHgrc2hkRGYwTElMcFlD?=
 =?utf-8?B?RTlvQUU5bTQyeUZPUjI5MjFuMUQ2UWdDQ20vcnkveXpHbXZodExzT1VPNmlY?=
 =?utf-8?B?S1h5TjNNS2ZvaWs4VlRMVWhUN1Q1SGU2eDRzaFYxK0gzbWtUMytHY1liV21J?=
 =?utf-8?B?WUowTUhzanVTaGZKK1dDLy9UTy82MlI4UE9HZTRYczVaY0lYSUQ5Q1ovUmNm?=
 =?utf-8?B?Vk1HUG5JTmhvOXV0RXFBNmJ5RzFSVTlaaWZyTndNUm5iNEltN3NHTWhmZGU2?=
 =?utf-8?B?SmV5eDRQdS9rTTdiaFZEaXJZMkVKdmtIWi8vMnJDbHZsNmpja0s3OVVUYVQy?=
 =?utf-8?B?ZWxjeWVSU2tOQmhoM2RrUFY4ZXVuVHdXdGJ3MDQ4N1lMZTJLS2p1UGM2c2tx?=
 =?utf-8?B?Nk5JUzEyaks1VFhVZHhXTW9XOXVUQkE4TUlPb3BVSlBEc1RDRWxwdUl5UWpz?=
 =?utf-8?B?aVc0Tno3RExnUHpRRzBhM2FMbHZUTVdpaXZNNTArTjlVdUE5SFhIdE45UG9D?=
 =?utf-8?Q?TiRuilvVWOFtQrHLuOzvoVA1bgL9BHEu?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB7PR08MB2987.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: <10EA152A5EC984439750A27FBC5130A3@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM8PR08MB5649
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB1PEPF00050A00.eurprd03.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	11f920f1-fb46-4f32-cf19-08dd76a46f05
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|36860700013|35042699022|1800799024|14060799003|82310400026|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?Q2JFQWNMS3N5ZXJyclhxR2NjV2pXNFgweE1qdG54QnRaV09EMkNxTEh6dTU5?=
 =?utf-8?B?bzJXMlJTWXd1SUt2MWduMWZPV05aT2ZyRUVkR3k4UWVqVTNIMVZka24zYkl6?=
 =?utf-8?B?a2VrK3pEelQ1QzVFT0Y4cnJ2Y2Nla2djUkRURWk0ekh2UFBWNG9oOUxaZnc0?=
 =?utf-8?B?SGw0VVNsdmlPZFRQMkU0SjdtTmlERnYvVEVNb1pzWkNnODYwQ2dDYmdzaFZ1?=
 =?utf-8?B?eDgyOE0vbnVZam5QNjlTaVdWVFl0M2xsZ1B6U3FMUnNyalV4dE1JMVhncXB5?=
 =?utf-8?B?Uzc2aHZ0WUo5UzVxWTZiM0dVdXBpUmVEQUNOUVJCbURBMWpmRHp1UnUrdUh1?=
 =?utf-8?B?VVdJZmNxYktueDhhcjkwcXVGSjNVdmR1cEYwOC96QXRyNkZ3emdPeENtTTVs?=
 =?utf-8?B?WkhLRHdNVGR0b01OdWltYWJjeW96TmRsb0JENWF6UGhSQ2R5NWh0cVlRVk4r?=
 =?utf-8?B?K0RLbFVvVTllRkVrZTdjTnU5ZkMybE5aclNPODFlZ3JHR2dQbE55S0RLSGpC?=
 =?utf-8?B?V1RpWXNuRVFqRFd1L1h2bzRaZHlmdGlPMW9xR1VMRTRNRCsyU2wyelJZYjcx?=
 =?utf-8?B?N1FXWFhsUEZGemJBY2tKTkthNUlCT0RPK1Z6T1pWdFl2dmlOUWg1NXE2U0RI?=
 =?utf-8?B?ZWJEbGJUeVpXODgxbnlTNU1pYk5aeFZrVWdpYWd1Q2FQeUNBYUdMY2w3MUpn?=
 =?utf-8?B?c01Fbk9wbmdYVEMraFFaY3J0UTQ4L2lMZjR1bHRJRnRWKzhaZ0VSY2t0bUh3?=
 =?utf-8?B?RlRiVTJLK2QyRmFtMlRUS3BmbzNoWHZvTENDcXlCem1CMlI1TmZjUTV5SGVy?=
 =?utf-8?B?NTI3S1JrMDNYYlVPdlVFaHdaYWZtSzFzL0svUkVLTnZwNi9DSDZKdm9iWXZi?=
 =?utf-8?B?eFlRblF2T3hoeEpZQ3JVNlBIYUZ3bGdNR3hXMC96ZW5uRWYwR1c0MEY1QlBX?=
 =?utf-8?B?Wkp5NVFxektqR0JnRUFHM2lCeURPRzlndWk4L0JSMVBLdTRTY0loQ0VSZllX?=
 =?utf-8?B?bml3eXJxSnVWcVdNUm5ydGxrMkduaEx1bWJtbU9ZWG9zdnlLUlV0aW9uK2E4?=
 =?utf-8?B?TFI3Mm1qa3paY0haWFprTldrWDhaSm5uRWhrYUgwdHpieGZITDc3QXdhZ25J?=
 =?utf-8?B?K1FKclZvTnB0U0MrUzFDaXg3SkhkVUtUaVJYaXZaaklFeUdnZmdqTm1IUk0w?=
 =?utf-8?B?bllCOHVURnFEK1Z0ajhqWHRqMnEwcW04SGg1WE96RzdiS2JGZTZycW0xOEda?=
 =?utf-8?B?THZaS3lOeXpzN2pWL2VWMUorUUYxRno2RE52M080Ylg5MGZIaTJoWStQZWdq?=
 =?utf-8?B?a2Y3OXFrUWlEN0UwWkQxaDdVUmd6YlN0RFhGdHlNd2dPMWgrSjdqZjhxQWVy?=
 =?utf-8?B?a2FJem82Y0pFN2M1N2gweGIvWmJraXZiTkRXekUxZ05qbzM2clVud2VaRmtP?=
 =?utf-8?B?U0xkYkE5b0w4MkJMdU96NFNqYU8xZTVRM2o4L3ZmdEw3L2pLWHZFOXNOVFpN?=
 =?utf-8?B?MEpOTDdXUmIvZ0dpakhrVHN4TEFiYVgzbStPcUZjV2IrRVF1SFdNWUVBMm92?=
 =?utf-8?B?eG5mTHRLSnJyR25ObkVEQzdzK2tQSWFnWVpXaEtPUzlITng1emtpdGduaTl6?=
 =?utf-8?B?YUdIazM1bzBZZ2YyM09teHE4RENQZTlmZ2p3UWtPRm1ZMlBEeUdPalFyOWYz?=
 =?utf-8?B?bGY3NkxQazhpZ2poM3JJeUJtNU5QNVc2bUFoSE1IVlVhQUpzUmZVZlBGd1Vm?=
 =?utf-8?B?VkxlUlVCajRVU3dBZDdmc3loc3FSdDN6UkRLZGErVUsrRHNkUHRPd3JGWkZJ?=
 =?utf-8?B?NHpRTzJHYW50OE00RXoyUFcyV2w4a0pCUmYxWlNuWUk2TXBkNHdscHE4QXRZ?=
 =?utf-8?B?bzFvRFNyOUlpT1A4TGxPdGxjNmQ4ZFRxc2RPQlJJTWl6R3lpTmt4SWdqbFhZ?=
 =?utf-8?B?Z0hyU0xOVENHZHVIU05kSDIrYnVPRE1tdFZwU21GdGtPTzNiblY3U1Y3WkNM?=
 =?utf-8?Q?ECO66ZV6C9bMPqpwJzo92Bcyp+vVW4=3D?=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(36860700013)(35042699022)(1800799024)(14060799003)(82310400026)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Apr 2025 13:51:51.6190
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 8048fd2f-1c3e-40ec-f9ab-08dd76a483f5
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DB1PEPF00050A00.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR08MB8623

SGkgQXlhbiwNCg0KPiBPbiA4IEFwciAyMDI1LCBhdCAxNDozMiwgQXlhbiBLdW1hciBIYWxkZXIg
PGF5YW5rdW1hQGFtZC5jb20+IHdyb3RlOg0KPiANCj4gSGkgTHVjYSwNCj4gDQo+IE9uIDA3LzA0
LzIwMjUgMTA6MTQsIEx1Y2EgRmFuY2VsbHUgd3JvdGU6DQo+PiBDQVVUSU9OOiBUaGlzIG1lc3Nh
Z2UgaGFzIG9yaWdpbmF0ZWQgZnJvbSBhbiBFeHRlcm5hbCBTb3VyY2UuIFBsZWFzZSB1c2UgcHJv
cGVyIGp1ZGdtZW50IGFuZCBjYXV0aW9uIHdoZW4gb3BlbmluZyBhdHRhY2htZW50cywgY2xpY2tp
bmcgbGlua3MsIG9yIHJlc3BvbmRpbmcgdG8gdGhpcyBlbWFpbC4NCj4+IA0KPj4gDQo+PiBJbXBs
ZW1lbnQgdGhlIGZ1bmN0aW9uIHNldHVwX21wdSB0aGF0IHdpbGwgbG9naWNhbGx5IHRyYWNrIHRo
ZSBNUFUNCj4+IHJlZ2lvbnMgZGVmaW5lZCBieSBoYXJkd2FyZSByZWdpc3RlcnMsIHN0YXJ0IGlu
dHJvZHVjaW5nIGRhdGENCj4+IHN0cnVjdHVyZXMgYW5kIGZ1bmN0aW9ucyB0byB0cmFjayB0aGUg
c3RhdHVzIGZyb20gdGhlIEMgd29ybGQuDQo+PiANCj4+IFRoZSB4ZW5fbXB1bWFwX21hc2sgYml0
bWFwIGlzIHVzZWQgdG8gdHJhY2sgd2hpY2ggTVBVIHJlZ2lvbiBhcmUNCj4+IGVuYWJsZWQgYXQg
cnVudGltZS4NCj4+IA0KPj4gVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgZnJvbSBzZXR1cF9tbSgp
IHdoaWNoIGZ1bGwgaW1wbGVtZW50YXRpb24NCj4+IHdpbGwgYmUgcHJvdmlkZWQgaW4gYSBsYXRl
ciBzdGFnZS4NCj4+IA0KPj4gU2lnbmVkLW9mZi1ieTogTHVjYSBGYW5jZWxsdSA8bHVjYS5mYW5j
ZWxsdUBhcm0uY29tPg0KPj4gLS0tDQo+PiAgeGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL2FybTY0
L21wdS5oIHwgIDIgKysNCj4+ICB4ZW4vYXJjaC9hcm0vbXB1L21tLmMgICAgICAgICAgICAgICAg
fCA0OSArKysrKysrKysrKysrKysrKysrKysrKysrKystDQo+PiAgMiBmaWxlcyBjaGFuZ2VkLCA1
MCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pDQo+PiANCj4+IGRpZmYgLS1naXQgYS94ZW4v
YXJjaC9hcm0vaW5jbHVkZS9hc20vYXJtNjQvbXB1LmggYi94ZW4vYXJjaC9hcm0vaW5jbHVkZS9h
c20vYXJtNjQvbXB1LmgNCj4+IGluZGV4IDdjZjhkMzU1YTFhZi4uZmY1YTk1N2JmMDg1IDEwMDY0
NA0KPj4gLS0tIGEveGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL2FybTY0L21wdS5oDQo+PiArKysg
Yi94ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vYXJtNjQvbXB1LmgNCj4+IEBAIC02LDYgKzYsOCBA
QA0KPj4gICNpZm5kZWYgX19BUk1fQVJNNjRfTVBVX0hfXw0KPj4gICNkZWZpbmUgX19BUk1fQVJN
NjRfTVBVX0hfXw0KPj4gDQo+PiArI2RlZmluZSBQUkVOUl9NQVNLICBHRU5NQVNLKDMxLCAwKQ0K
PiBUaGlzIGNhbiBiZSBtb3ZlZCB0byB4ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vbXB1LmgNCg0K
SSBjYW4gc2VlIGZyb20gdGhlIEFybcKuIENvcnRleMKuLVI1MiBQcm9jZXNzb3IgVFJNLCByMXAx
LCAzLjMuNDYgSHlwIE1QVSBSZWdpb24gRW5hYmxlIFJlZ2lzdGVyLA0KdGhhdCBIUFJFTlIgY2Fu
IGhhdmUgMTYvMjAvMjQgZW5hYmxlZCBiaXRzLCB0aGUgcmVzdCBpcyBSQVouDQoNCkJlY2F1c2Ug
b2YgdGhhdCBJ4oCZdmUgcHV0IHRoYXQgaGVyZSwgbWF5YmUgeW91IHNob3VsZCBpbXBsZW1lbnQg
aXQgaW4gdGhlIGFybTMyIHBhcnQgc2luY2UgeW91IGhhdmUgdGhpcw0KZGlmZmVyZW5jZSBmcm9t
IEFybTY0Lg0KDQpDaGVlcnMsDQpMdWNhDQoNCg==


From xen-devel-bounces@lists.xenproject.org Tue Apr 08 13:54:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 13:54:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.942187.1341438 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u29Pf-0006X4-Bx; Tue, 08 Apr 2025 13:54:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 942187.1341438; Tue, 08 Apr 2025 13: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 1u29Pf-0006Wx-9L; Tue, 08 Apr 2025 13:54:51 +0000
Received: by outflank-mailman (input) for mailman id 942187;
 Tue, 08 Apr 2025 13:54: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=wQ/n=W2=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1u29Pd-0006Wr-DS
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 13:54:49 +0000
Received: from NAM12-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam12on2061c.outbound.protection.outlook.com
 [2a01:111:f403:2417::61c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 07c75e9f-1481-11f0-9eaa-5ba50f476ded;
 Tue, 08 Apr 2025 15:54:47 +0200 (CEST)
Received: from CH2PR11CA0002.namprd11.prod.outlook.com (2603:10b6:610:54::12)
 by MW4PR12MB5602.namprd12.prod.outlook.com (2603:10b6:303:169::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.31; Tue, 8 Apr
 2025 13:54:43 +0000
Received: from CH3PEPF0000000E.namprd04.prod.outlook.com
 (2603:10b6:610:54:cafe::57) by CH2PR11CA0002.outlook.office365.com
 (2603:10b6:610:54::12) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.22 via Frontend Transport; Tue,
 8 Apr 2025 13:54:43 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CH3PEPF0000000E.mail.protection.outlook.com (10.167.244.42) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8606.22 via Frontend Transport; Tue, 8 Apr 2025 13:54:43 +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, 8 Apr
 2025 08:54:43 -0500
Received: from [172.25.231.87] (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, 8 Apr 2025 08:54:42 -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: 07c75e9f-1481-11f0-9eaa-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=U1ovcY/lpWIf06zV8wmvi1SxK5ScJURHXb7HSqoF7vmP9syDsazRaeyIMZ4PO0OGcE2+V0/rrLjocW8lCXPgx5J9FITf0l/98F3aSn3QInkxtdOXcYlLJvyhEhkFpTfF7+8aJpZwIHWXT4G81QKbV4i916iDPFOUwIe575OFR7d8eDb64IDeCTLIaeJ3wA8QDD/29g/cwZcGHOvJEbSCUmPk89bAMyDSZ5FDCxPHyds9IPeAMX9D/Zuh3Gg7YK8kn9JssXxDhf/j5/S1e0tAM3C0C1deUH9lxG+U/N8Fk5/Ssx7M5OD+Hv/zXfEkehAHboWYgNz4q4XsZgiUgYrq4A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=RA1/TCjzeqqYD02HZ5fD+5JeIdV1o87pIQuKSETAJT8=;
 b=L/BjgSd21tcHM0pakzvzJOpcfmEdyzAaeVT1tyIm1gb31eaDNK2m9rSlMqLjl5aWbO8x9IZ8YMeUeazbT6d+rbb0O4k69VRRUaNnrg/mZasqk2JdjUD6ZXFFIRssXimXv7Ym4QDmk92+dAqnNIO2+PQ0Xz0qaB4//FmEYuUxmDkClNx2+GYs/lQfZ36DJFvghR7w0qfpTPsMBoBMUwkehfqhNZwM30ZLELacfun+D+zCccY1QgX43zM8/S8A55uenEzfT8kW/b1IR9BF9YPI3fXNrASrKEXW24PB8jLdVylNJ8XonydpszkHhTXd7bDwI3GQFBCbGbcN42/5po4z+A==
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=RA1/TCjzeqqYD02HZ5fD+5JeIdV1o87pIQuKSETAJT8=;
 b=QvRTLqTm7vmSSERPN7XQ45TjaMkJuNS3dhFRx7eBSIhxeNiJ17qpX7jiCZXWhpz3sR2Vywghuuj+LNdkPgEPk+nTNoPfiRd1w9Vep2in/VD0jYTnGFmPl71pc9pgJ4GxXT96ADhwMJWqLo4eBsMkxj4SwDYZZtIYwEDcXrxnyIQ=
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: <2843a46d-0b30-4fa1-b8de-b0030a98e636@amd.com>
Date: Tue, 8 Apr 2025 09:54:39 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 1/7] xen: introduce hardware domain create flag
To: Jan Beulich <jbeulich@suse.com>
CC: "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>, "Volodymyr
 Babchuk" <Volodymyr_Babchuk@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
	<xen-devel@lists.xenproject.org>
References: <20250407194038.83860-1-jason.andryuk@amd.com>
 <20250407194038.83860-2-jason.andryuk@amd.com>
 <b032e7bc-61a4-4dac-97c1-171771869156@suse.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <b032e7bc-61a4-4dac-97c1-171771869156@suse.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB04.amd.com: jason.andryuk@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH3PEPF0000000E:EE_|MW4PR12MB5602:EE_
X-MS-Office365-Filtering-Correlation-Id: 37327ee3-1d93-4ce8-890e-08dd76a4ea65
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|7416014|376014|36860700013|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?c2xxWXFEMXYwTmNiL0VZVXNRT2lENmd5MUxMQ1liMEZaWW8yUzJjSmhHYXFU?=
 =?utf-8?B?bzliL2hITUdKREJ5anJ3YW9EVkNTb1NVc3EzU2lZS3hRRm9UR0lUTy9TOU1v?=
 =?utf-8?B?MHpTZWhmd0NKWExvbnhZaTdGWko4cFdCZXdVajhST2k2cjRqdENJTFBtdDJr?=
 =?utf-8?B?RnNMUlZ3NnNML2hvNmR4UzJ1UTY4M2srTkJFcjNwMUFETW9GOG5YL3IvT3gz?=
 =?utf-8?B?TjUzTkNKM1NNR1YxMXFtRk5WajRMS1dFOFFlMW5CNkJFd3NGVE1FeFNTcUZy?=
 =?utf-8?B?d0MwQkxIaEtSdnlhOU95dFpGbDkyWVBiWjdreGlKQ3RLb2wyU1NzRysvSlZK?=
 =?utf-8?B?VFFyMGRKS0dtK0NhMEQzeUwwMmJDL2t0RWtocjZFMXNJb2V3OUJRend3dzhv?=
 =?utf-8?B?Z3ZrQlZKT3BlV2R2TCt6KzBiMnFGa0QxcVdHYVpMZE9pNzFoaXdvVVJKZUFq?=
 =?utf-8?B?UnVDWjhyMDZnYzI3aEI0dlF6M3l1WHEzd0wzcnp5Q0Q4QTNha3k3enZjMnFk?=
 =?utf-8?B?UXhvM1F4SUx6YXNwOFRHUk5GZkVoRjRuTzY4RXhmUWR4L0FoUlFHQzBFaEZ0?=
 =?utf-8?B?azkzUHNsNmdZWjZTRDdqb3RUaEhieVBuQ0tGTkxuNlhmaFV1NWd3YlJnM2dy?=
 =?utf-8?B?OGVtUSs3QlkzajJHMk5TK3lxWVhYTUlVYnF1WDZGdzlsUEc5OFVhcEI0VGFi?=
 =?utf-8?B?NWY5RER4Y04weFNGd2ZndUlMNzRLMkRKOVAya20yYWJxWXo3eXAxRkxZYXds?=
 =?utf-8?B?VTJ2VEhQaklSUWhSMW1oYnhFdTB4OU8rc2Z0V0NuKzliTElxNkJBUUU0M3VH?=
 =?utf-8?B?cldpTlVkTUVWK0c2bEJqL2o2OWoxRUoxTVpUa3habkpaQU96NUhXNWFrK29Z?=
 =?utf-8?B?MWVCWmdua3Fxd0ZxUWhHR0JTa2JtL2o4WVJFZlp6YWd5RFppbkZaTGxLTVM5?=
 =?utf-8?B?cEI1U2hhbmVtYUpWWHA5K0prQndTOWFyQVdEY1c1MDVzaTV4QUFkTVJkSmw5?=
 =?utf-8?B?K2hXcW5OUmdmWVNVckRBZmpVcklPaWVOMWtIOWZ6WHVWcmNKMHhzTjZFZ2tx?=
 =?utf-8?B?SnhjbzIrTXVSK2FHbVVzYW1ZS3hHQW9lM0lCbU1xQ0k2bUR3bVNLRUZFbGw2?=
 =?utf-8?B?YVh5ZFhrbmJaTCtncDdtLzNGSXBFMUc2U3dvNG5teVB3aXVZTjNJcXFYS0Fx?=
 =?utf-8?B?SjRNWE9qSW50UlRYcnhIL1dFaDhSY3FaVG91OUpvOUZwVmVoTEdaV1dZTmhS?=
 =?utf-8?B?czBrVFNFMUxUWmVZMU1CQ3h6UklQeHlyM1dMVmY0MUhKVFV1U0twTXp1MStF?=
 =?utf-8?B?VDdPOGViaWcydklPTkJvZ0hDWExSYkY0N3dUYllncThtSFZONWd3eUlHazA0?=
 =?utf-8?B?ZWtqVXFydks4R1JadVFCRTRBMVdOdjNQd2s5U2I3bE5xOGtKZTN4UUl2V1VH?=
 =?utf-8?B?S0ZucC9tdldzdExxUWpOY0pPL281RlM1bGhoRS92TUhoeHRHaXh0VGRaNCt5?=
 =?utf-8?B?blZiUUV6SWNJcm9uY1R0N0ZXWW50RGMwUi9rSHdYWVBxTUJiK1RnMDRnRS8x?=
 =?utf-8?B?RTFGME42d1RvSE1rR05ZL2RNS1ozMXgvMHViQm9RU1hKSVUxakVOV1ExKzdS?=
 =?utf-8?B?Ri9mVnVVY1ZteExVYm0vaFBFOFkzcEFJeGV4Ulo4UndUaFNrNHVvaEZ1VDhY?=
 =?utf-8?B?Z0ZKaDRWUExzaUJLWHV1N24zVXlBNmlweURzOEJVRlNzNXRQVEZNYkpkOXZ4?=
 =?utf-8?B?NDgwUGFGOFdjSUNnMnRsVUN1em1ES3hIVERST2duOUs1Z1lYUERqdHRkUVBx?=
 =?utf-8?B?NlNuY0gxeFZLNFRwSTNQY1lMRTVoSnpPNUVGYmpwNnp3UjJid1pPQjlkNUxL?=
 =?utf-8?B?NU4vUlZlcUFWb0pyZEIyZWI3Y214OHFyNjJQVVNDbGMyYUQvTkJoS2tPVnQ3?=
 =?utf-8?B?ME5PeHEwblVKcndVMGJQbFZqWDUyOEhBeGh4aWQvVld3V1hZMVhZdFB6V21k?=
 =?utf-8?B?ZzZzM0hXS3dCNEFWVXM1ZUd1N3M4K1ZMTFQ0azM1OW5jK1Q5TkwydjFpbE5y?=
 =?utf-8?Q?UjNF/d?=
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)(7416014)(376014)(36860700013)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Apr 2025 13:54:43.5090
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 37327ee3-1d93-4ce8-890e-08dd76a4ea65
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:
	CH3PEPF0000000E.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR12MB5602

On 2025-04-08 02:37, Jan Beulich wrote:
> On 07.04.2025 21:40, Jason Andryuk wrote:
>> From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
>>
>> Add and use a new internal create domain flag to specify the hardware
>> domain.  This removes the hardcoding of domid 0 as the hardware domain.
>>
>> This allows more flexibility with domain creation.
>>
>> The assignment of d->cdf is moved later so CDF_hardware is added for the
>> late_hwdom case.  Also old_hwdom has the flag removed to reflect the
>> change.
>>
>> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
>> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
> 
> Reviewed-by: Jan Beulich <jbeulich@suse.com>
> i.e. ...

Thanks.

>> ---
>> v4:
>> Move d->cdf assignment later
> 
> ... despite my earlier concern this movement looks fine to me.

Double checking today, I see that in the failure case, hardware_domain 
is restored from old_hwdom.  So in that case, CDF_hardware should be 
restored:

@@ -986,7 +987,11 @@ struct domain *domain_create(domid_t domid,

      d->is_dying = DOMDYING_dead;
      if ( hardware_domain == d )
+    {
+        if ( old_hwdom )
+            old_hwdom->cdf |= CDF_hardware;
          hardware_domain = old_hwdom;
+    }
      atomic_set(&d->refcnt, DOMAIN_DESTROYED);

      sched_destroy_domain(d);

I'll see what comments I get on the rest of the series before respinning.

Regards,
Jason


From xen-devel-bounces@lists.xenproject.org Tue Apr 08 13:57:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 13:57:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.942201.1341449 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u29S4-000750-Ox; Tue, 08 Apr 2025 13:57:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 942201.1341449; Tue, 08 Apr 2025 13: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 1u29S4-00074t-Lw; Tue, 08 Apr 2025 13:57:20 +0000
Received: by outflank-mailman (input) for mailman id 942201;
 Tue, 08 Apr 2025 13:57: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=xdvb=W2=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u29S4-00074n-2x
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 13:57:20 +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 62991418-1481-11f0-9eaa-5ba50f476ded;
 Tue, 08 Apr 2025 15:57:18 +0200 (CEST)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-399749152b4so2984272f8f.3
 for <xen-devel@lists.xenproject.org>; Tue, 08 Apr 2025 06:57:18 -0700 (PDT)
Received: from [10.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-39c3020da49sm14748417f8f.80.2025.04.08.06.57.17
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 08 Apr 2025 06:57: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: 62991418-1481-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744120638; x=1744725438; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=UppzuXNwnuqs9mK395VeYclTyPX/U0dRoUiq/ZYVsSw=;
        b=Jyykgjb9Gg8O3DnC1MS8H3A+QZfnS1nr8YK+4LjnUIkDycIUsJprCzsOyk+CJusWpp
         Wpb8h5qLDRaAilIaF/5uDiMVOInTmcwjw0buTwYN5ntHa0HNuJOr3/+DCH9vkd9lc6j4
         yS05Q7tPRUuOurN8wUAinjwt9ANzYLjMDdS/GdKxnB56XKiZlf7sJKazSTKHIRikzGK7
         UpADJ0BTXfKwsXlrWxqtpOH1dcXAw+/XVPn7JlnEMdNHxJHn/kvv+6/d2WXcWfQ81q1X
         Bp3kDlhZBUWSwF1eDZ4kR4on4mdCip5Wf0GV8h5ScqFz+8RdYpr8YJtlA51t9CJq3J/F
         ujSg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744120638; x=1744725438;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=UppzuXNwnuqs9mK395VeYclTyPX/U0dRoUiq/ZYVsSw=;
        b=Kjinmht6nt9RGb4S0KAWDhqybMWPsM1Xad5IkPyi5J8vxGoOKZWJfFYBsr8PKBSuvN
         +B4ZoxoB5tjFAMJGaEo0ylB19XjJHx9rLc6CGpCOTtdyjgS3GNPUKk2caFVnQEo0af6H
         WF6jEsf9JXgRiA4nUU0A+qXoA6REu4C2sg8hHp8BA/kkWqPsnr6HwZX37I3tzZOea1Kj
         qwCy7GgwGGX5gLIWMB63miOnrhUX7lKsQPJOnMlsl4rcUjrWxIQklqnYvhYI307EGaRh
         LqPxEW8HLeCkVNVp655d+wdxHKbbzjVgJ5VGOpOiyY46OC3UxVrsE4oSZw3HNOK7YrDQ
         C+1w==
X-Forwarded-Encrypted: i=1; AJvYcCVzjF5WLHQAH/FZcO1lQl9ktYEAL1YSEaa83Ymr+KgoJQrQgITSSxtwnjLqUqoCK2G/urJnxOOrLcw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxI1zO3VdIldOeXyiKy6iFVepEpM+bVJ6ZBjudW4fk4c7bUKh9l
	lah9uLX3AnV7igMC2avLmU6lnLmrw/xHb42LzhsEHTC6FtjNJ9qhZP+OYEwbhg==
X-Gm-Gg: ASbGncstAgDbE7QUFCLxjwkQg8GQRnAfF6UpnWUFVIsLLquVdhK9ch/1pdPNTpm2rtf
	kvW0ssbhIx5JS9QRFH3b927d76EmK9jX5mbcWqJks6/hgkHyw3Xx1XIi5Qun4ETHYVMO8uhJ2a0
	nxy0hmoKvrG3hxm3CU74ryxS8+yfvr9xOw8ht1YbOnjRub9GeTcB1hcYnSgkdUNyyEBsYxnXb46
	SBUzdi4aDKa6+1zuVY0aoorlOGZFqByYyW4WrueuwrTMfBpNYziZ6a+kK5c+0svBGGCO6ucXXaK
	Ifj28tjIWJelFP6KCiSSqvWqSDaR8tOTvgjkPQRX6zC2rj/rZgH1r8QN4k2FDHSkFucRoP0bU+n
	VvVx9ortGfzO+c0RZGNsaL1W+GmnG3nWyx04qdPbE
X-Google-Smtp-Source: AGHT+IGW5Lui4oZhYcdGewEqmZbwPC/QJl2L/GgM8P6IWw161HFxhaUwGfYh/CRlZgfB1MozWFN1/A==
X-Received: by 2002:a05:6000:1a88:b0:391:47d8:de3a with SMTP id ffacd0b85a97d-39cba97f7d5mr12786626f8f.53.1744120638180;
        Tue, 08 Apr 2025 06:57:18 -0700 (PDT)
Message-ID: <16c73cae-2ac0-4811-97d3-b25c95ed5abc@suse.com>
Date: Tue, 8 Apr 2025 15:57:17 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] x86/hvm: fix write emulation of RO ranges
To: Roger Pau Monne <roger.pau@citrix.com>,
 Marek Marczykowski <marmarek@invisiblethingslab.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20250408093156.83277-1-roger.pau@citrix.com>
 <20250408093156.83277-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: <20250408093156.83277-3-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.04.2025 11:31, Roger Pau Monne wrote:
> When running on AMD hardware in HVM mode the guest linear address (GLA)
> will not be provided to hvm_emulate_one_mmio(), and instead is
> unconditionally set of ~0.  As a consequence mmio_ro_emulated_write() will
> always report an error, as the fault GLA generated by the emulation of the
> access won't be ~0.

Which means subpage_mmio_write_accept() is flawed, too, on AMD (or more
generally whenever .gla_valid isn't set).

> Fix this by only checking for the fault GLA in mmio_ro_emulated_write()
> when the guest is PV.

This narrows checking too much, imo. For VT-x we could continue to do so,
provided we pass e.g. npfec down into hvm_emulate_one_mmio(), i.e. make
the gla_valid flag visible there.

> --- a/xen/arch/x86/mm.c
> +++ b/xen/arch/x86/mm.c
> @@ -5187,7 +5187,12 @@ int cf_check mmio_ro_emulated_write(
>  
>      /* Only allow naturally-aligned stores at the original %cr2 address. */
>      if ( ((bytes | offset) & (bytes - 1)) || !bytes ||
> -         offset != mmio_ro_ctxt->cr2 )
> +         /*
> +          * HVM domains might not have a valid fault GLA in the context, as AMD
> +          * NPT faults don't report the faulting GLA.  It's also possible for
> +          * the fault to happen in non-paging modes.
> +          */
> +         (is_pv_domain(current->domain) && offset != mmio_ro_ctxt->cr2) )
>      {
>          gdprintk(XENLOG_WARNING, "bad access (cr2=%lx, addr=%lx, bytes=%u)\n",
>                  mmio_ro_ctxt->cr2, offset, bytes);

Is logging the supposed CR2 value useful then for cases where the GLA
isn't valid? I fear it might be more confusing than helpful.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 08 14:00:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 14:00:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.942215.1341460 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u29V6-0000DC-6o; Tue, 08 Apr 2025 14:00:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 942215.1341460; Tue, 08 Apr 2025 14:00:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u29V6-0000D5-2y; Tue, 08 Apr 2025 14:00:28 +0000
Received: by outflank-mailman (input) for mailman id 942215;
 Tue, 08 Apr 2025 14:00:27 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xdvb=W2=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u29V5-0000Cz-6O
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 14:00:27 +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 d270161a-1481-11f0-9eaa-5ba50f476ded;
 Tue, 08 Apr 2025 16:00:26 +0200 (CEST)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-3914bc3e01aso3345933f8f.2
 for <xen-devel@lists.xenproject.org>; Tue, 08 Apr 2025 07:00:26 -0700 (PDT)
Received: from [10.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-43f11eb0511sm16461605e9.1.2025.04.08.07.00.25
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 08 Apr 2025 07:00: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: d270161a-1481-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744120826; x=1744725626; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Xj23WDm9CsdK9bxr0xNjZLGeA3vVy1BDgAe+9GNRJJY=;
        b=IyMX38OaptOoNlcMygvQQi82gmCj4E8sZXT2Nc0cqNAeGMpTp46KJvP5SkVtEZVeLz
         ijSRglBlArx/aCywN9pxz5F9UzPGyKeB77Qus1LUxBvBYPw+NlGVlbIOu6cMyRj5aTjY
         orWv4Y2/EkLMCAQhzsyY2+3mpd0JayiSGREIjxZUpeu2zJ5bSjxSPX2jEw9lfhSNeLSN
         Cv7fT8Io6KP1Fca13GiDp2HIH8PeX5tAJGcwt2WN4eJtv2QtmzwUTeX8q8Kqt8XieegA
         jWKHRyeGF5vr19l7loviWUBRa9yoV4LP+ivL2qJvgNy3Lbel7aUqZ9XxRmmShnSSjvXG
         ofBg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744120826; x=1744725626;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Xj23WDm9CsdK9bxr0xNjZLGeA3vVy1BDgAe+9GNRJJY=;
        b=cMgpFQYvzuANl5YylxrkXj0YMmp0jJDPfd54nVrGT5A9H7sAZ8E8ruq1V1E5TH8BpV
         jf83vzpJCMEFRLfHezEnZV4ltTXgiryEerp5+8AYMEsm7DvyYabmAVbQVv53t5WSvzsQ
         5akbmmfp2UoziQtWWghfKmeVHfGT5JQ8WIzxXa/9rMCQLhKrg+A2o0AJLYOm1NRmRd4l
         C9k/4TlqVE0bF8UeqN1c+bNzEfTQD3ZeXbrPJEbxo9e8KcyIgDVwTSiCAGspNUx25/hr
         noO+5+0x4DPwdhqovaEdieCwlI3kPkrgsRXdTTkMk/3c6CecANCNaDx3ergo+rOKEdae
         crAA==
X-Forwarded-Encrypted: i=1; AJvYcCVcrW0+vv4a8OUKRU3sMTV5UZFbn8UStYPi2s2dm+GgW7w1tG87k9jcG2smzQc2XjzVPIv9K2jEHqQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwL42CSSCuMT3OEl8cuqRNDYyliqZ10bgp2sn9Np3fJgDiEwypR
	srj9zNwPdeYr2eNH/ziGrMPcd7BOhTdOy4g6jtbY9EcI1J+yLwOesqOcj7HOkg==
X-Gm-Gg: ASbGncsMi0YlqvDoQaH4b7sGLoI0u0baVd5Gjf8/WyECs9Cr60bL1YdoXGGqN+ifUx4
	tIgrXP5Mz9rylsW+MPEbmP4FPcRBHneClJfX1NyTcI8PYKk3TR4ycOD//+MCgrqdg1XIIOuiYOE
	EfJOLTK4kZQ4Ixwz7T2V9pMVjBPpU8BsN3umLXRnzB6M/v5T+VLOv4CbAADBZ484/OOODbM6mxS
	zMt8xUbziErHZjwlYd3mdRdaEYiom4wb0wqS563KOJwapZc26QRpQsnuELrZM+GncZMI/yjFjfA
	9IFErvuxnoC7tJodkgWt8phZf4f3CNtP1FQYyBD+3jFtKrfQKNfgJ+DL58jNDkc0hB6HZwkZa1s
	VRXSGAMzu4rvcEVO0MiqsVTNDJW26jw==
X-Google-Smtp-Source: AGHT+IFwtYKCP5H2PQnrhPnNxwj7f8FOrMCdWsrwL2NifX555uh4QOscmVRUPeUsRSvk7ZQVEm2EhA==
X-Received: by 2002:a05:6000:2512:b0:391:253b:405d with SMTP id ffacd0b85a97d-39d0de62927mr13320013f8f.41.1744120825830;
        Tue, 08 Apr 2025 07:00:25 -0700 (PDT)
Message-ID: <b8771688-bd89-4a38-a03d-1ee1cb3d8799@suse.com>
Date: Tue, 8 Apr 2025 16:00:24 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 1/7] xen: introduce hardware domain create flag
To: Jason Andryuk <jason.andryuk@amd.com>
Cc: "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>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <20250407194038.83860-1-jason.andryuk@amd.com>
 <20250407194038.83860-2-jason.andryuk@amd.com>
 <b032e7bc-61a4-4dac-97c1-171771869156@suse.com>
 <2843a46d-0b30-4fa1-b8de-b0030a98e636@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: <2843a46d-0b30-4fa1-b8de-b0030a98e636@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.04.2025 15:54, Jason Andryuk wrote:
> On 2025-04-08 02:37, Jan Beulich wrote:
>> On 07.04.2025 21:40, Jason Andryuk wrote:
>>> From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
>>>
>>> Add and use a new internal create domain flag to specify the hardware
>>> domain.  This removes the hardcoding of domid 0 as the hardware domain.
>>>
>>> This allows more flexibility with domain creation.
>>>
>>> The assignment of d->cdf is moved later so CDF_hardware is added for the
>>> late_hwdom case.  Also old_hwdom has the flag removed to reflect the
>>> change.
>>>
>>> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
>>> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
>>
>> Reviewed-by: Jan Beulich <jbeulich@suse.com>
>> i.e. ...
> 
> Thanks.
> 
>>> ---
>>> v4:
>>> Move d->cdf assignment later
>>
>> ... despite my earlier concern this movement looks fine to me.
> 
> Double checking today, I see that in the failure case, hardware_domain 
> is restored from old_hwdom.  So in that case, CDF_hardware should be 
> restored:
> 
> @@ -986,7 +987,11 @@ struct domain *domain_create(domid_t domid,
> 
>       d->is_dying = DOMDYING_dead;
>       if ( hardware_domain == d )
> +    {
> +        if ( old_hwdom )
> +            old_hwdom->cdf |= CDF_hardware;
>           hardware_domain = old_hwdom;
> +    }
>       atomic_set(&d->refcnt, DOMAIN_DESTROYED);
> 
>       sched_destroy_domain(d);

Oh, right. Please retain my R-b with this added.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 08 14:00:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 14:00:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.942216.1341469 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u29VB-0000St-CF; Tue, 08 Apr 2025 14:00:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 942216.1341469; Tue, 08 Apr 2025 14:00:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u29VB-0000Sh-9J; Tue, 08 Apr 2025 14:00:33 +0000
Received: by outflank-mailman (input) for mailman id 942216;
 Tue, 08 Apr 2025 14:00: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=6Iqs=W2=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u29VA-0000Cz-KU
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 14:00:32 +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 d5d23d72-1481-11f0-9eaa-5ba50f476ded;
 Tue, 08 Apr 2025 16:00:32 +0200 (CEST)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-43cf05f0c3eso36414375e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 08 Apr 2025 07:00:32 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43ec1795782sm165572205e9.26.2025.04.08.07.00.29
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 08 Apr 2025 07:00:29 -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: d5d23d72-1481-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744120831; x=1744725631; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=YAOIzRWwLxvqNlDKa5BpgqiF6ziLZrF9ZJOL7ZbPezo=;
        b=nhMkPxGAFsiRbcNefnGGVaL+0FNDhy83dWgPUlnG8tULP0oft6a4aV9IP00+WM2bN9
         ucenXUOJFT3YeVurLw1/777zPKAmsHs3EFR4XaydxARrX8j7ElYvgQ4t07g0oWEmnpvw
         kgsjx+NWotN65KDDH0y94vN1ViYo7FKA8Q02U=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744120831; x=1744725631;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=YAOIzRWwLxvqNlDKa5BpgqiF6ziLZrF9ZJOL7ZbPezo=;
        b=Z4moksrsTPuivXjwzNKP0gpQuAEDB2iYlB2DPaKOck+MJmDkwBydB/PoNtLWwY15Gz
         2Wf4o6SDiMXC2JKvjOuIE6K59IiVSxJ7RwAFVbDN9SJhn3OCDykG9+ouXNT25mysVmw3
         XWymyUu066QiSe4K9fPjJyFWDWisEUKDQ2M/bXKtY9B+ROPJN8jYw8SfGn873J+aX0+U
         Df0kOfjDxPvViv3aAHkqmP7f8bAcN0YuEL/wAH2yqpgbbnKKeAEqXKsFmGin/F2j80ME
         AIGjtpzuTd0WuhKzXa+QVQs0Mb1h7pMa51UsEYtmPsoOqtYYo6mTBwQZEWNxkYuUR59u
         j3pA==
X-Forwarded-Encrypted: i=1; AJvYcCVvHGCBvt8hi83hWHW7H0h8C7r772FAjDO0j5Oxj/dGx3RMVS8DFuroydmq3XCiuel2pFlxYStZo+Y=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxT8HYGP2eLCPjCm3bMcdROQVYh016z/l/THPhGDkeedNH9puun
	ify85hINYDaGdEBVlCIB+H3EHVg6pWHAr6bnO2n6aOGNaMHZLYU3G6q3Ydn+XOQ=
X-Gm-Gg: ASbGnctv3jrFWs+KBV40lvnFmPEHoZthTOrrZl09HdGk/7BkJAN67WeNzsJ+fykRHFf
	3vnbe+QId4H3LPqS2Ww7GDF15IxyET6t2e7yV4f5/y5CRjKjr11WCKxULPK4hHPeR/z39wODpOS
	nT2gLsXf62Q2LCkOO6hZXTNOm/SW/LFAD5WosMWXeFxlFzom2uoRzXOZpGDV/LHZXwhfui7kyBw
	b41Wi2MGO9fddVg1M3PCNBzPJ8FVWuW9SPLsikkZJtArzs83QBhikRe+HDsMEAsz8D8ox8YXCee
	vZI9ceFRdm05AztIcydDtZl5F1waLgVo2N+GDzD+WFZgOmc1J4R1feIOngoF3TQxBB1IbEkz4R/
	g7AvcXweAcA==
X-Google-Smtp-Source: AGHT+IHPg5hlqfghRtfiHNeoaQjs0a11wEh14Py8zQx95ZQx+g7ONR6y632jPXwQCKfLyg8kV41yqQ==
X-Received: by 2002:a05:600c:1d28:b0:43d:7de:16e3 with SMTP id 5b1f17b1804b1-43ed0d9d18emr137494485e9.24.1744120829908;
        Tue, 08 Apr 2025 07:00:29 -0700 (PDT)
Message-ID: <13127adf-4feb-4039-b859-27d68bef751d@citrix.com>
Date: Tue, 8 Apr 2025 15:00:28 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] x86/hvm: fix write emulation of RO ranges
To: Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>
References: <20250408093156.83277-1-roger.pau@citrix.com>
 <20250408093156.83277-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: <20250408093156.83277-3-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 08/04/2025 10:31 am, Roger Pau Monne wrote:
> When running on AMD hardware in HVM mode the guest linear address (GLA)
> will not be provided to hvm_emulate_one_mmio(), and instead is
> unconditionally set of ~0.  As a consequence mmio_ro_emulated_write() will
> always report an error, as the fault GLA generated by the emulation of the
> access won't be ~0.
>
> Fix this by only checking for the fault GLA in mmio_ro_emulated_write()
> when the guest is PV.
>
> Fixes: 33c19df9a5a0 ('x86/PCI: intercept accesses to RO MMIO from dom0s in HVM containers')
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>

I think there are several bugs here.

We do get %cr2 reliably for PV and Shadow guests.

Intel EPT may or may not give us GLA.  e.g. writes for pagetable A/D
updates don't get GLA.

Defaulting to ~0 isn't ok.  We need some kind of GLA-valid signal,
except for HAP guests, it isn't even the GLA we care about, it's the GPA
which identifies the MMIO region.

We shouldn't terminate the emulation if there's no GLA to check.  In the
case that we don't have a GLA, we should translate the memory operand
and cross-check the GPA.  We'll definitely have one of the two to hand.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Apr 08 14:02:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 14:02:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.942241.1341479 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u29Wo-0001kf-Pa; Tue, 08 Apr 2025 14:02:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 942241.1341479; Tue, 08 Apr 2025 14:02: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 1u29Wo-0001kY-MR; Tue, 08 Apr 2025 14:02:14 +0000
Received: by outflank-mailman (input) for mailman id 942241;
 Tue, 08 Apr 2025 14:02: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=23Rw=W2=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1u29Wn-0001kS-9i
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 14:02:13 +0000
Received: from NAM12-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam12on2061b.outbound.protection.outlook.com
 [2a01:111:f403:2417::61b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 109259f9-1482-11f0-9eaa-5ba50f476ded;
 Tue, 08 Apr 2025 16:02:11 +0200 (CEST)
Received: from MW4PR12MB7334.namprd12.prod.outlook.com (2603:10b6:303:219::21)
 by DS7PR12MB5934.namprd12.prod.outlook.com (2603:10b6:8:7d::16) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.35; Tue, 8 Apr
 2025 14:02:06 +0000
Received: from MW4PR12MB7334.namprd12.prod.outlook.com
 ([fe80::2e77:557:17d5:86f8]) by MW4PR12MB7334.namprd12.prod.outlook.com
 ([fe80::2e77:557:17d5:86f8%3]) with mapi id 15.20.8606.028; Tue, 8 Apr 2025
 14:02: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: 109259f9-1482-11f0-9eaa-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=d22ICyGbmwObLsB4SFQwSxrPI2Lmg+diCbxsRspbtvupsh44RJ3wNZtV3r2LXZYckXGuwnUHi4hs0ua1dQrPT74P9sDxmoIWs2XKUeecoPt9Z8IQvcPa2LFTk8bX3DCVtI9uCzufayu3rDGZUibryMbusBqf6xAAuSkAE4xSuLky4+Vc2zWpadShxFH96cA6eLaw9eA9D5LMeZzPiNPADM6TCVGGzNpBLDQA0cuDHGcvXzNzahvuSO3+S9hdWSQxn4Yg//Vcc/NJVU3jWuCmZ75ll3LDsvKg44TMSy96/mMXAOGBTWuj3ledIicxSMjklppk0f4bDt0sR3oEIxIgng==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=vsGpqAUdE+qVRS3vgIY0oo92pll/4k2La8QfbSwDGV0=;
 b=Jce7oWuyXRRg5zYqmP6RoMXK7XdovpU05lwbS6oRdi6fSBepsJ9v8PVC6YXN+VMlDCJL6+O39G0ROP6+dpsZQynEWC8zuJFQ9WygNOyNYyalirwjQXo4STU3jlHBQmSpOUh9n+CX7jgVG9c8aD9jTcdBHfJ5WlhCzN7uWmJLNNqXGSiIk8fn6eSmZpwkA2LWlgynScUl8tKoYMOklqEdJ3wT06DBC3uniziGSpTr+x0Sdve9n9wuZaoz8C/HjMg6iFf4ZFFzoxtTFp8I9Ad2PsUOD1yJchoYz8RaQeRm4iSjDqmV8v1zKmreyNHzKAjU8hVkmMftsKPFqPZ+TenKqA==
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=vsGpqAUdE+qVRS3vgIY0oo92pll/4k2La8QfbSwDGV0=;
 b=VX85Vf74etoxPWWcDQFCkwiL+2C9o4NumnD7OAK3oOd8EnvZ+icgy9mAC+AdN7AuA9/fIoKkN+JPnfOU6axFzPf4RSBOf0hw1d6GTxYwZ1y/5QLAQAE20C2YflD/Fif62J+Uv0z34BBpPSmp+hZBKiRgBZ7V+8b2LQZdU6fAiho=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <0acf63c0-267e-44c0-b629-fa576307497c@amd.com>
Date: Tue, 8 Apr 2025 15:02:02 +0100
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/7] arm/mpu: Provide access to the MPU region from the
 C code
Content-Language: en-GB
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>
References: <20250407091430.2342709-1-luca.fancellu@arm.com>
 <20250407091430.2342709-3-luca.fancellu@arm.com>
From: Ayan Kumar Halder <ayankuma@amd.com>
In-Reply-To: <20250407091430.2342709-3-luca.fancellu@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: DB9PR02CA0005.eurprd02.prod.outlook.com
 (2603:10a6:10:1d9::10) To MW4PR12MB7334.namprd12.prod.outlook.com
 (2603:10b6:303:219::21)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MW4PR12MB7334:EE_|DS7PR12MB5934:EE_
X-MS-Office365-Filtering-Correlation-Id: 5ee73c0a-0f36-41df-7584-08dd76a5f237
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?ams1L3Fod2pSVmZiM3FVbEtHaGR5NE9Uc1E2T0NodTA5MEhseFp0WC9KcU5k?=
 =?utf-8?B?SzIzSFp2SFQ3L0VCV2lRU3ltZllsM0x6RS84aHpFL21GSllpZXg3dkxlTlVv?=
 =?utf-8?B?YU5YaWtjWjFZMWxaaFVQZ21pL2hiQ08wMjhYamhvNHB3NGdTVFNlRGRJUEt4?=
 =?utf-8?B?elNPRENBT1FVMVdJSGo5ZUJNbU54cWdFNXNKNVlXaE9HV0Ercml1UWpGbWdy?=
 =?utf-8?B?c3M0T0ROSVYzOFRCUjF2YzFmUnF1UnNaanRJcmtVa3gxYTFqak9wdTJNaFVm?=
 =?utf-8?B?ZlI1UXY1M1dsc0QwT0RCSUxwZjlwb0xmR2M5YkZiemczcDBPR29JaitXN1JQ?=
 =?utf-8?B?QVhYbURmQURiZG0wNEdCei90TlFoREgyTHNKc3ROWE1rSU9neFVnNzQreThv?=
 =?utf-8?B?ZnRKSVhnVGVIWldVbmRxdmhDK200NDdnOVoxcit6UXBlZ0taQjRFeEtzUFhj?=
 =?utf-8?B?T3BnSEQ1dnNrdTIwWE15b3R2aFBOYVZHamVoYTJ3Q0JNTVo3OEZsWmhJelM4?=
 =?utf-8?B?aWtNZW1IUUhFK3lMMFdHSTRJSkJjb1huVU9ENGMyU0FzL0ZReUtvRTdwWEcv?=
 =?utf-8?B?cWs2aGEyYUtTMTlkR0xmOEV2T3hwd0lBNTBGNGtpK2FsMEUwRDd5N0V5WmZm?=
 =?utf-8?B?Uk1QeW9lcDdZS3Y0amFmeGpBSzMzTlRvVmRSeGYxWk1Yd0JJMU1vRTVHYlQr?=
 =?utf-8?B?QlQ4Ym13dk5ERURzdXRVcWtSd2RzZDZ3V3JmN2FDQTRlOFF1NnluZXRCa21p?=
 =?utf-8?B?UzA4eCtIT3J6L3JUdEZuYWh1b3N5ZUtManFSYjdlMnV0S2JyZUF6bEhkVExY?=
 =?utf-8?B?VVdXUGhaNWo2S09sSXZRSmExbUJEcnZXSHVSR2V6MnA5cmUzMzVpMmVHS2xO?=
 =?utf-8?B?cHREbTQrd1NINmVqODE1STgzZGdMeXZCZU1uc3dpTG1Oa2ZoS2wrWEg0OGRN?=
 =?utf-8?B?Y3JZcUVZc3RVNWJxWnQyZE5wYTdqdHBLVkNCcjFsVm5DMFZXQWJTYTlLdkZT?=
 =?utf-8?B?M0lSVDV6ZWFqTDdvRW5rZXJXdjJ4OFdkM0s2dHowcFdnc1dNZFZjenVFWTVx?=
 =?utf-8?B?T2lzZEhSTllWN1ZkdU9TZk9OejBYU2ZxWVQyUXRrQTlLQzNsWjBLdHNrK0Qx?=
 =?utf-8?B?VzFjUGJ1Rkp5NWZnSHZRRitpeC9tQTJLUjY3TGRxNmpuNmpyL1d2dWM4eHNU?=
 =?utf-8?B?RVBGK05zS3JFYkFsTXVYOWdoMkVuMVBmS3FickFnRGlzUGR3TjVNRnltcWtm?=
 =?utf-8?B?SC82SWNRZkpVQjBRdjlCNEhwdUltQ0h0QmtTYlJ0ckUydy9EQTUvSVFHQ2Fs?=
 =?utf-8?B?cDVXQy9ZLzNFMnAzbFVxaU1TaTExTWtNQ1FvbldnMC9RWjJmRTVpZW1qNndG?=
 =?utf-8?B?Z3ZWWTdYZjJJbWhJWENZd3JFQUFodlIwZ3Y2SVk5a0xEa0txSitTWUMwaE8w?=
 =?utf-8?B?WkRZaUNtNDZJUklnR1NNRzJpUDMvVWwxdTIyNSt1VHRJZCtLelI3QzZUWGdB?=
 =?utf-8?B?cmk1QXBDS2Y0NWFmdlErS1BxcDV0OENTamQvRmNQK2RWVnhVUnV5NFhQaFMr?=
 =?utf-8?B?L2tSNDV2bGVNeXU3dWJoTGhDZ1NwcnRmb2s1NFpSMDB2eTFoZHczUk1UMEMr?=
 =?utf-8?B?akorSGNGNjNjd2ZjbUFJUHRDWFZpNFZhODNqT3kvMXB4TW44V3dibW5kUGNO?=
 =?utf-8?B?M1pKTEZYM1RuUmVQNjduL3NvclRpU00rS1dWQkN1S1ljZXQ1R3BmWEJnUG5U?=
 =?utf-8?B?U3ZyQlY2cFNwR3BmWDZmaGloNmRoVlhGWWRjRmlCZU1mdVo4UGZoaFpRT3pk?=
 =?utf-8?B?ZlQ0Q1FVWm5ZcDdGbmczdWJKTVVoNFI2VHdsSDZVcTlBZDk0Vjg5UVRHcFBD?=
 =?utf-8?B?ZElxSUZPOGVZR1J2SlJxRi9HU2xaa2Z4VEZCLzJpSzh3dG9FbzdCemVPZTVh?=
 =?utf-8?Q?ndC15Qy9C0k=3D?=
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)(376014)(366016)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?OURUc0RuTnB1Mm0rRmt5WXZacG5XMDRrTkpkaVFidzU1MHZ1YmlDb1dvMm5o?=
 =?utf-8?B?V0JhVFVLZGlzeWMycEZCQ0p6QlkyZ1RYOVBMMFBGZGo4azg1ajVKRk1wNUND?=
 =?utf-8?B?SlRtdXl6d3d1eWxCNzJtdG5mdzZOZ1lmNStPS09aNS9kQk83YklWbkdvNGdE?=
 =?utf-8?B?OXp2bjFSckZJVy9wL1AzV3ZxVmhpNElMWElTNi9tYXlPSWNLZ0xxM3BQTTJB?=
 =?utf-8?B?WlBiVDU3SkJmbGhtOVRwNUhKb3FiWlFVTm5YbVRNSXdhZXlPV2p6b3E2YTJV?=
 =?utf-8?B?OFpEM1plL1lZcmw1ZlBDMzRwM2xlOTdyV2o3YmliN1JKZkk4N21JNWNtZTRB?=
 =?utf-8?B?cnZXVUhvREdrRll2b3NRMTBjRkkwZGEwUzY4akpwbWUxTHIwNytSalg1ZXpa?=
 =?utf-8?B?U2FKUnhicnkrSFJzeEl0am0yWnFQaVU5VjVaNzhDSHRDS2Q0ZVVXT1hwOXlx?=
 =?utf-8?B?M2VlaUJ1QXh0YWFlaGJmd1hpcU9laEppV2VoRmhiMFZ3dTZIQlp3M2JJOG1a?=
 =?utf-8?B?SktHa0Y0bm00a3FaVUdwcXA3UlhXS2x5NDQzUWcwaWg4TS9jVlR2TVBPOHYz?=
 =?utf-8?B?MTlGeGl0VGtlTVNYVzNqbWp2ZFovUEhTdVhwWDRFc0xtc0ZRQktDVkpmdWcy?=
 =?utf-8?B?SEdCVTZTQThabVhkd1dEYmJXdXF1RzJ2M0NZTGV0R2ZLMUg2SjlzUWhFQ1RE?=
 =?utf-8?B?YUI2MXkvdU1MWVpkNUFTWWRIdWh3M2duaFF3UlEvMktJK1RuQ1duZDMrN2tE?=
 =?utf-8?B?MEVqSzZ0SkVMUGZna0RnRkRNalo3dFNCVFRkZTR3eit0bm9heUZoTWQyUmc0?=
 =?utf-8?B?M0ZTL3ZXNW9wdVM0TkF1Z3I4aTUyVytwN0hjeWZIZmRxaFlBVU51UkcrU2tF?=
 =?utf-8?B?am5raGtscFhHZ0p1V1hEaUg4eDBqdy9ZeWtzMUczaUw1ZXgwQWxxUjVKRHdE?=
 =?utf-8?B?ZjYyNnQrcldaVThTTVlpZDNaTkFOYTdZU0paRXlsOTNFNzhNSHhDdSs2aUts?=
 =?utf-8?B?T3k3OGI0NVRpbjdWRlBhaFhMU3VVVEl1eVhpdk53dVh2NGgyWWZ2aGFjbnly?=
 =?utf-8?B?eFYyYnc0QkNsOHBMWkFLZ2s4YTZVcTdQdEMxQWVWWXUxbWxDMktwRW1ZNzdm?=
 =?utf-8?B?TW1ZK2pnemlxekdORGs2WFBlNk43ZFdiVEM0NDJGS3pnRUo4Q1NibXJBLzZP?=
 =?utf-8?B?eWlXZGhPS1Yvdmw4bmVmSXdmcDRXdXkrbVVaelFtSThQdXRIVVNydjRaNTcw?=
 =?utf-8?B?REhIQXp4N3NWSFRCVE8rNmhsVGJ5b3pFNWNxamVoMVlYKzl6QlBoZjBxaHpa?=
 =?utf-8?B?YXdGSVFiR3VaL3JRS043WnNkUzMyMlBiczQ5R3Z0aEx5cTVNaVF2ZGRYQ0pP?=
 =?utf-8?B?VWpSa1NiR1g0TFJjTVJqa1BTMGVqSnM4RUFNb0dpZUwwak5valU0Tlcvb043?=
 =?utf-8?B?anE2eXZsV094eUZSQmYvMWRaNWpwaE9zVUUvRXpwaDhlTDN4cDkzcExkQklo?=
 =?utf-8?B?NEpuV1JZTXpsYkhsVmRjQmZ4QTNjcWx2SUtaYjNFbWlXSDd6RllYeXBPai9G?=
 =?utf-8?B?RVF4TTNqemJKUm5Xam1kdFJ0cjZxUTJDc09CUTlDcHhKb1hibmRadWtySWk5?=
 =?utf-8?B?bVZjb1ZvOGprV1B6OXVwRDBodU1GQmFQeWdLeC9oNzVNRTkvQmdqMzVkSnZ4?=
 =?utf-8?B?c3lVS2x2Z3VIRm9oNUV3MDVmTGVVdkMza3NvUFdnQS9tY29EaEcraVVGZk5Z?=
 =?utf-8?B?S1JtbjVsYzduNTY2empOaUFWUlBmN2RPdU14ZFUreXhYMk11SnQzL25udXFZ?=
 =?utf-8?B?Nm83QWN2TzlRY2llaTlUUmVMWlpSQjRRb3ArRUZtK1BiWGhPdit0bEZRbFdS?=
 =?utf-8?B?K2VnVCt4TlNQZnRmdHpvU2FpVTlFVmdhTEt5NzNWT0NSSVRDYUdnejQ0Qklj?=
 =?utf-8?B?Ums5YXRyU1JDdHE3WjJVZEUzTEtRTHNXMi9jK1dDUkRTYjM4R2tMcGRmdEtL?=
 =?utf-8?B?WERxMzZWdzh4YWt2cWdrR2djVHJ3dGRQNjJNMUVmQnU1dXJvN28rTWdKQzQ5?=
 =?utf-8?B?ZWd3YitQUHUxTzlVKzRGcWovWEFON2xkNHNLQVp4ZjN4RjMvSUFTZ25mWkRH?=
 =?utf-8?Q?mkqgI5ID6ndsct4cpI/XoBCQh?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 5ee73c0a-0f36-41df-7584-08dd76a5f237
X-MS-Exchange-CrossTenant-AuthSource: MW4PR12MB7334.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Apr 2025 14:02:06.5014
 (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: OHUJeZs4bkH+Hfg0XEiN23xm1FKIhjE1KFQDOrxq6snE0ge+sPl9DBTf4m/0Ikzk6S06ok6NHlZOIIl0mrED2g==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB5934

Hi Luca,

On 07/04/2025 10:14, Luca Fancellu 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.
>
>
> Implement some utility function in order to access the MPU regions
> from the C world.
>
> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
> ---
>   xen/arch/arm/include/asm/mpu.h    |   1 +
>   xen/arch/arm/include/asm/mpu/mm.h |  24 ++++++
>   xen/arch/arm/mpu/mm.c             | 127 ++++++++++++++++++++++++++++++
>   3 files changed, 152 insertions(+)
>
> diff --git a/xen/arch/arm/include/asm/mpu.h b/xen/arch/arm/include/asm/mpu.h
> index e148c705b82c..59ff22c804c1 100644
> --- a/xen/arch/arm/include/asm/mpu.h
> +++ b/xen/arch/arm/include/asm/mpu.h
> @@ -13,6 +13,7 @@
>   #define MPU_REGION_SHIFT  6
>   #define MPU_REGION_ALIGN  (_AC(1, UL) << MPU_REGION_SHIFT)
>   #define MPU_REGION_MASK   (~(MPU_REGION_ALIGN - 1))
> +#define MPU_REGION_RES0   (0xFFFULL << 52)
>
>   #define NUM_MPU_REGIONS_SHIFT   8
>   #define NUM_MPU_REGIONS         (_AC(1, UL) << NUM_MPU_REGIONS_SHIFT)
> diff --git a/xen/arch/arm/include/asm/mpu/mm.h b/xen/arch/arm/include/asm/mpu/mm.h
> index 86f33d9836b7..5cabe9d111ce 100644
> --- a/xen/arch/arm/include/asm/mpu/mm.h
> +++ b/xen/arch/arm/include/asm/mpu/mm.h
> @@ -8,6 +8,7 @@
>   #include <xen/page-size.h>
>   #include <xen/types.h>
>   #include <asm/mm.h>
> +#include <asm/mpu.h>
>
>   extern struct page_info *frame_table;
>
> @@ -29,6 +30,29 @@ static inline struct page_info *virt_to_page(const void *v)
>       return mfn_to_page(mfn);
>   }
>
> +/* Utility function to be used whenever MPU regions are modified */
> +static inline void context_sync_mpu(void)
> +{
> +    /*
> +     * ARM DDI 0600B.a, C1.7.1
> +     * Writes to MPU registers are only guaranteed to be visible following a
> +     * Context synchronization event and DSB operation.
> +     */
> +    dsb(sy);
> +    isb();
> +}
> +
> +/*
> + * The following API require context_sync_mpu() after being used to modifiy MPU
> + * regions:
> + *  - write_protection_region
> + */
> +
> +/* Reads the MPU region with index 'sel' from the HW */
> +extern void read_protection_region(pr_t *pr_read, uint8_t sel);
> +/* Writes the MPU region with index 'sel' to the HW */
> +extern void write_protection_region(const pr_t *pr_write, uint8_t sel);
> +
>   #endif /* __ARM_MPU_MM_H__ */
>
>   /*
> diff --git a/xen/arch/arm/mpu/mm.c b/xen/arch/arm/mpu/mm.c
> index f83ce04fef8a..bf281f67fb6b 100644
> --- a/xen/arch/arm/mpu/mm.c
> +++ b/xen/arch/arm/mpu/mm.c
> @@ -8,12 +8,34 @@
>   #include <xen/sizes.h>
>   #include <xen/types.h>
>   #include <asm/mpu.h>
> +#include <asm/mpu/mm.h>
> +#include <asm/sysregs.h>
>
>   struct page_info *frame_table;
>
>   /* EL2 Xen MPU memory region mapping table. */
>   pr_t xen_mpumap[MAX_MPU_REGIONS];
>
> +/* The following are needed for the case generator with num==0 */
> +#define PRBAR0_EL2 PRBAR_EL2
> +#define PRLAR0_EL2 PRLAR_EL2
> +
> +#define GENERATE_WRITE_PR_REG_CASE(num, pr)                                 \
> +    case num:                                                               \
> +    {                                                                       \
> +        WRITE_SYSREG(pr->prbar.bits & ~MPU_REGION_RES0, PRBAR##num##_EL2);  \
> +        WRITE_SYSREG(pr->prlar.bits & ~MPU_REGION_RES0, PRLAR##num##_EL2);  \
> +        break;                                                              \
> +    }
> +
> +#define GENERATE_READ_PR_REG_CASE(num, pr)                      \
> +    case num:                                                   \
> +    {                                                           \
> +        pr->prbar.bits = READ_SYSREG(PRBAR##num##_EL2);         \
> +        pr->prlar.bits = READ_SYSREG(PRLAR##num##_EL2);         \
> +        break;                                                  \
> +    }
> +
>   static void __init __maybe_unused build_assertions(void)
>   {
>       /*
> @@ -24,6 +46,111 @@ static void __init __maybe_unused build_assertions(void)
>       BUILD_BUG_ON(PAGE_SIZE != SZ_4K);
>   }
>
> +static void prepare_selector(uint8_t sel)
> +{
> +    /*
> +     * {read,write}_protection_region works using the direct access to the 0..15
> +     * regions, so in order to save the isb() overhead, change the PRSELR_EL2
> +     * only when needed, so when the upper 4 bits of the selector will change.
> +     */
> +    sel &= 0xF0U;
> +    if ( READ_SYSREG(PRSELR_EL2) != sel )
> +    {
> +        WRITE_SYSREG(sel, PRSELR_EL2);
> +        isb();
> +    }

This needs to be arm64 specific. Refer ARM DDI 0600A.d ID120821

G1.3.19  PRBAR<n>_EL2, /* I guess this is what you are following */

Provides access to the base address for the MPU region determined by the 
value of 'n' and
PRSELR_EL2.REGION as PRSELR_EL2.REGION<7:4>:n.


Whereas for arm32 . Refer ARM DDI 0568A.c ID110520

E2.2.3 HPRBAR<n>,

Provides access to the base addresses for the first 32 defined EL2 MPU 
regions.

/* Here we do not need to use HPRSELR for region selection */


If you want to make the code similar between arm32 and arm64, then I can 
suggest you can use these registers.

G1.3.17 PRBAR_EL2

Provides access to the base addresses for the EL2 MPU region. 
PRSELR_EL2.REGION determines
which MPU region is selected.

E2.2.2 HPRBAR

Provides indirect access to the base address of the EL2 MPU region 
currently defined by
HPRSELR.

Let me know if it makes sense.

- Ayan

> +}
> +
> +/*
> + * Armv8-R AArch64 at most supports 255 MPU protection regions.
> + * See section G1.3.18 of the reference manual for Armv8-R AArch64,
> + * PRBAR<n>_EL2 and PRLAR<n>_EL2 provide access to the EL2 MPU region
> + * determined by the value of 'n' and PRSELR_EL2.REGION as
> + * PRSELR_EL2.REGION<7:4>:n(n = 0, 1, 2, ... , 15)
> + * For example to access regions from 16 to 31 (0b10000 to 0b11111):
> + * - Set PRSELR_EL2 to 0b1xxxx
> + * - Region 16 configuration is accessible through PRBAR_EL2 and PRLAR_EL2
> + * - Region 17 configuration is accessible through PRBAR1_EL2 and PRLAR1_EL2
> + * - Region 18 configuration is accessible through PRBAR2_EL2 and PRLAR2_EL2
> + * - ...
> + * - Region 31 configuration is accessible through PRBAR15_EL2 and PRLAR15_EL2
> + */
> +/*
> + * Read EL2 MPU Protection Region.
> + *
> + * @pr_read: mpu protection region returned by read op.
> + * @sel: mpu protection region selector
> + */
> +void read_protection_region(pr_t *pr_read, uint8_t sel)
> +{
> +    /*
> +     * Before accessing EL2 MPU region register PRBAR_EL2/PRLAR_EL2,
> +     * make sure PRSELR_EL2 is set, as it determines which MPU region
> +     * is selected.
> +     */
> +    prepare_selector(sel);
> +
> +    switch ( sel & 0xFU )
> +    {
> +        GENERATE_READ_PR_REG_CASE(0, pr_read);
> +        GENERATE_READ_PR_REG_CASE(1, pr_read);
> +        GENERATE_READ_PR_REG_CASE(2, pr_read);
> +        GENERATE_READ_PR_REG_CASE(3, pr_read);
> +        GENERATE_READ_PR_REG_CASE(4, pr_read);
> +        GENERATE_READ_PR_REG_CASE(5, pr_read);
> +        GENERATE_READ_PR_REG_CASE(6, pr_read);
> +        GENERATE_READ_PR_REG_CASE(7, pr_read);
> +        GENERATE_READ_PR_REG_CASE(8, pr_read);
> +        GENERATE_READ_PR_REG_CASE(9, pr_read);
> +        GENERATE_READ_PR_REG_CASE(10, pr_read);
> +        GENERATE_READ_PR_REG_CASE(11, pr_read);
> +        GENERATE_READ_PR_REG_CASE(12, pr_read);
> +        GENERATE_READ_PR_REG_CASE(13, pr_read);
> +        GENERATE_READ_PR_REG_CASE(14, pr_read);
> +        GENERATE_READ_PR_REG_CASE(15, pr_read);
> +    default:
> +        BUG(); /* Can't happen */
> +    }
> +}
> +
> +/*
> + * Write EL2 MPU Protection Region.
> + *
> + * @pr_write: const mpu protection region passed through write op.
> + * @sel: mpu protection region selector
> + */
> +void write_protection_region(const pr_t *pr_write, uint8_t sel)
> +{
> +    /*
> +     * Before accessing EL2 MPU region register PRBAR_EL2/PRLAR_EL2,
> +     * make sure PRSELR_EL2 is set, as it determines which MPU region
> +     * is selected.
> +     */
> +    prepare_selector(sel);
> +
> +    switch ( sel & 0xFU )
> +    {
> +        GENERATE_WRITE_PR_REG_CASE(0, pr_write);
> +        GENERATE_WRITE_PR_REG_CASE(1, pr_write);
> +        GENERATE_WRITE_PR_REG_CASE(2, pr_write);
> +        GENERATE_WRITE_PR_REG_CASE(3, pr_write);
> +        GENERATE_WRITE_PR_REG_CASE(4, pr_write);
> +        GENERATE_WRITE_PR_REG_CASE(5, pr_write);
> +        GENERATE_WRITE_PR_REG_CASE(6, pr_write);
> +        GENERATE_WRITE_PR_REG_CASE(7, pr_write);
> +        GENERATE_WRITE_PR_REG_CASE(8, pr_write);
> +        GENERATE_WRITE_PR_REG_CASE(9, pr_write);
> +        GENERATE_WRITE_PR_REG_CASE(10, pr_write);
> +        GENERATE_WRITE_PR_REG_CASE(11, pr_write);
> +        GENERATE_WRITE_PR_REG_CASE(12, pr_write);
> +        GENERATE_WRITE_PR_REG_CASE(13, pr_write);
> +        GENERATE_WRITE_PR_REG_CASE(14, pr_write);
> +        GENERATE_WRITE_PR_REG_CASE(15, pr_write);
> +    default:
> +        BUG(); /* Can't happen */
> +    }
> +}
> +
>   void __init setup_mm(void)
>   {
>       BUG_ON("unimplemented");
> --
> 2.34.1
>
>


From xen-devel-bounces@lists.xenproject.org Tue Apr 08 14:04:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 14:04:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.942274.1341490 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u29ZO-0003WM-6K; Tue, 08 Apr 2025 14:04:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 942274.1341490; Tue, 08 Apr 2025 14: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 1u29ZO-0003WF-2M; Tue, 08 Apr 2025 14:04:54 +0000
Received: by outflank-mailman (input) for mailman id 942274;
 Tue, 08 Apr 2025 14: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=xdvb=W2=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u29ZM-0003W9-LR
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 14:04:52 +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 6fde63b0-1482-11f0-9ffb-bf95429c2676;
 Tue, 08 Apr 2025 16:04:50 +0200 (CEST)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-43cfe63c592so53556665e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 08 Apr 2025 07:04:50 -0700 (PDT)
Received: from [10.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-43ec342a3dfsm164721805e9.4.2025.04.08.07.04.48
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 08 Apr 2025 07:04:49 -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: 6fde63b0-1482-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744121090; x=1744725890; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=YHGQOmFDFfD9bvJf1QLqQD9QpITXgHkXWRCqhBE3LzY=;
        b=W2V6topDtl76kJKJB262nIZxj6gOnc9DJm1DYlQ/m4R1WULBI3I7iGqT+8kYce9muc
         7Za6Jsu8JgJGUiLeNTJBncKpWoNXpnbndheCiVeyUaI3FVRzPoij481wUDNVscI8EADC
         L7qOnx5efP8Q6fHQuTUcekf7rltpvJae0UQHAwR/EcBoilEDGFupxGynuUlVVCLvY1zm
         8ChFfGiiMqlmVZSSZMGGkKwAHTbCO9B1YvrYFl7eZal69Xb/tRLT+1wmh3KRs5NEfna7
         mS9LPmmzy+9bTe9ub9s7YqDD29RjTdCr8cGSO2ZLixA1YnVFzn70gh65VcTnfl7hHyVc
         QXCg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744121090; x=1744725890;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=YHGQOmFDFfD9bvJf1QLqQD9QpITXgHkXWRCqhBE3LzY=;
        b=Sjt8BSEWqkGjFnKiE5wV5nJj25eLmOAOPhBlrHFLX6PRJgKS6l5kHDL+hSxncr2QJv
         zZjzZcbYBaPYtR1Zxya51LEl4t7rAK0KxnqMqlQZr4FYNnyhg/ksjTJG12OGvbb9eb52
         u61i1c+8SX1/RBA27c2hO6+JQbg9Ly2NpjZVFG4mSCrzUfq2patuhQ8NchiZxFEvBJbu
         V6goP5TUG5VE/pWo2ZPcKVvYSR3oa08y8T0qYkECQ8TST5xgOl2FmodPwT50rAwak5AT
         esVmya7o8f38wfuQqn88FLXnCtG0qtNn6dnjxKj0Al/IBY2YUwPhPjN8o3ETx9Rnd49o
         igbw==
X-Forwarded-Encrypted: i=1; AJvYcCVMWQ8DBol8ob2LI+Q+BtNDcqnXptzvpklaeqOQ6n+6KeaAA4KC0gAJKZhagvC8vhDS/dnc/w1WhGg=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx5Wp453S0KrK7t0Noi8Dyr2HHnGld8hGY8ux0kDUp8Er85ipBN
	mdE/7NsdKfdSHoqEHpHnwFGSv50s10FXw0caJrOyUm8CrKMXODUcnVGQvscf0Q==
X-Gm-Gg: ASbGncsZ0si1FmAEZpp4V90jq+vampcA9FmEIhSQ5Dro1CpEioPDgw1JIENm2yY+w1l
	Z10Ixbn1F2X4Ru3rMF0hr/jADsjl57Xi7eQkNd5/dqkrhg4bFwN1h7+ttQuJ5GA7rStimsim8I8
	1XhA0r5WotemFyxSU8wujoM+EgNHx8G2WWXzKV8mKVgd6Y6YdoNjgjJwBkIeVVdYuxtBiRVUGp2
	QnpIkMJg5iWj+aEK2YLVGhnZiWHtTJjxBMfGKosgIlZQameiS40x16Xsy2d7NbwLgbxK9M5womX
	KeX/oK7+gGXX+YcWmBY+1vswv7/s80o682xMs4m+UlJwtJykLLlzKkcduLRxotkBuIaHt5/MomQ
	dRRQ/0LhUKau7lG1Q19Yx+j/ScJe0wg==
X-Google-Smtp-Source: AGHT+IFjDoQ3JCftmlS2+nC+axE4A108ry24SslLLsEWGd3BkMm9vU/obtCPhSGkDWe6FWIRlK4tlw==
X-Received: by 2002:a05:600c:83c4:b0:43a:b0ac:b10c with SMTP id 5b1f17b1804b1-43ed0d98fe5mr138874095e9.26.1744121089345;
        Tue, 08 Apr 2025 07:04:49 -0700 (PDT)
Message-ID: <fde6c1c2-c439-4020-9301-025b7e8af804@suse.com>
Date: Tue, 8 Apr 2025 16:04:47 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] xen/riscv: Increase XEN_VIRT_SIZE
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <808d1b346bc90dde38fd19a6b92ab78d78e42936.1743766932.git.oleksii.kurochko@gmail.com>
 <e5f6ccb3-498f-44cf-8c06-61fa502d93db@suse.com>
 <f35a9969-6154-4e9a-b997-16ca135e85ee@gmail.com>
 <8b2e50f2-1f89-41df-be88-afc9ef24b51a@suse.com>
 <c3b1be9a-d5f5-4cac-a675-7485a99bf51c@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: <c3b1be9a-d5f5-4cac-a675-7485a99bf51c@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.04.2025 15:46, Oleksii Kurochko wrote:
> On 4/8/25 2:02 PM, Jan Beulich wrote:
>> On 08.04.2025 13:51, Oleksii Kurochko wrote:
>>> On 4/7/25 12:09 PM, Jan Beulich wrote:
>>>> On 04.04.2025 18:04, Oleksii Kurochko wrote:
>>>>> --- a/xen/arch/riscv/include/asm/mm.h
>>>>> +++ b/xen/arch/riscv/include/asm/mm.h
>>>>> @@ -43,13 +43,19 @@ static inline void *maddr_to_virt(paddr_t ma)
>>>>>     */
>>>>>    static inline unsigned long virt_to_maddr(unsigned long va)
>>>>>    {
>>>>> +    const unsigned int vpn1_shift = PAGETABLE_ORDER + PAGE_SHIFT;
>>>>> +    const unsigned long va_vpn = va >> vpn1_shift;
>>>>> +    const unsigned long xen_virt_start_vpn =
>>>>> +        _AC(XEN_VIRT_START, UL) >> vpn1_shift;
>>>>> +    const unsigned long xen_virt_end_vpn =
>>>>> +        xen_virt_start_vpn + ((XEN_VIRT_SIZE >> vpn1_shift) - 1);
>>>>> +
>>>>>        if ((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)) ==
>>>>> -           (_AC(XEN_VIRT_START, UL) >> (PAGETABLE_ORDER + PAGE_SHIFT)));
>>>>> +    BUILD_BUG_ON(XEN_VIRT_SIZE > GB(1));
>>>>> +    ASSERT((va_vpn >= xen_virt_start_vpn) && (va_vpn <= xen_virt_end_vpn));
>>>> Not all of the range is backed by memory, and for the excess space the
>>>> translation is therefore (likely) wrong. Which better would be caught by
>>>> the assertion?
>>> Backed here means that the memory is actually mapped?
>>>
>>> IIUC it is needed to check only for the range [XEN_VIRT_START, XEN_VIRT_START+xen_phys_size]
>>> where xen_phys_size=(unsigned long)_end - (unsigned long)_start.
>>>
>>> Did I understand you correctly?
>> I think so, yes. Depending on what you (intend to) do to .init.* at the
>> end of boot, that range may later also want excluding.
> 
> I planned to release everything between __init_begin and __init_end in the following way:
>    destroy_xen_mappings((unsigned long)__init_begin, (unsigned long)__init_end);
> 
> So yes, then I think I have to come up with new ASSERT, add is_init_memory_freed variable and
> if is_init_memory_freed=true then also check that `va` isn't from .init.* range.
> 
> But I'm not quire sure that mapping for .got* should be destroyed after the end of boot. (now it is
> part of [__init_begin,__init_end] range.

Isn't this a non-issue considering

ASSERT(!SIZEOF(.got),      ".got non-empty")
ASSERT(!SIZEOF(.got.plt),  ".got.plt non-empty")

near the bottom of xen.lds.S?

>>>>> --- a/xen/arch/riscv/mm.c
>>>>> +++ b/xen/arch/riscv/mm.c
>>>>> @@ -31,20 +31,27 @@ unsigned long __ro_after_init phys_offset; /* = load_start - XEN_VIRT_START */
>>>>>    #define LOAD_TO_LINK(addr) ((unsigned long)(addr) - phys_offset)
>>>>>    
>>>>>    /*
>>>>> - * It is expected that Xen won't be more then 2 MB.
>>>>> + * It is expected that Xen won't be more then XEN_VIRT_SIZE MB.
>>>>>     * The check in xen.lds.S guarantees that.
>>>>> - * At least 3 page tables (in case of Sv39 ) are needed to cover 2 MB.
>>>>> - * One for each page level table with PAGE_SIZE = 4 Kb.
>>>>>     *
>>>>> - * One L0 page table can cover 2 MB(512 entries of one page table * PAGE_SIZE).
>>>>> + * Root page table is shared with the initial mapping and is declared
>>>>> + * separetely. (look at stage1_pgtbl_root)
>>>>>     *
>>>>> - * It might be needed one more page table in case when Xen load address
>>>>> - * isn't 2 MB aligned.
>>>>> + * An amount of page tables between root page table and L0 page table
>>>>> + * (in the case of Sv39 it covers L1 table):
>>>>> + *   (CONFIG_PAGING_LEVELS - 2) are needed for an identity mapping and
>>>>> + *   the same amount are needed for Xen.
>>>>>     *
>>>>> - * CONFIG_PAGING_LEVELS page tables are needed for the identity mapping,
>>>>> - * except that the root page table is shared with the initial mapping
>>>>> + * An amount of L0 page tables:
>>>>> + *   (512 entries of one L0 page table covers 2MB == 1<<XEN_PT_LEVEL_SHIFT(1))
>>>>> + *   XEN_VIRT_SIZE >> XEN_PT_LEVEL_SHIFT(1) are needed for Xen and
>>>>> + *   one L0 is needed for indenity mapping.
>>>>> + *
>>>>> + *   It might be needed one more page table in case when Xen load
>>>>> + *   address isn't 2 MB aligned.
>>>> Shouldn't we guarantee that?
>>> I think it's sufficient to guarantee 4KB alignment.
>>>
>>> The only real benefit I see in enforcing larger alignment is that it likely enables
>>> the use of superpages for mapping, which would reduce TLB pressure.
>>> But perhaps I'm missing something?
>> No, it's indeed mainly that.
> 
> But then the linker address and the load address should both be aligned to a 2MB or 1GB boundary.
> This likely isn't an issue at all, but could it be a problem if we require 1GB alignment for the
> load address? In that case, might it be difficult for the platform to find a suitable place in
> memory to load Xen for some reason? (I don't think so but maybe I'm missing something)

Why would load address need to be 1Gb aligned? That (as well as 2Mb-)alignment
matters only once you set up paging?

> These changes should probably be part of a separate patch, as currently,|setup_initial_mapping() |only works with 4KB mapping.

That's fine; it's just that - as said - the calculation of how many page tables
you may need has to cover for the worst case.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 08 14:07:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 14:07:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.942293.1341498 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u29bx-00049d-KQ; Tue, 08 Apr 2025 14:07:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 942293.1341498; Tue, 08 Apr 2025 14:07: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 1u29bx-00049W-Hn; Tue, 08 Apr 2025 14:07:33 +0000
Received: by outflank-mailman (input) for mailman id 942293;
 Tue, 08 Apr 2025 14: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=xdvb=W2=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u29bx-00049Q-2Z
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 14:07:33 +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 cf63610c-1482-11f0-9ffb-bf95429c2676;
 Tue, 08 Apr 2025 16:07:31 +0200 (CEST)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-39c1ee0fd43so4702719f8f.0
 for <xen-devel@lists.xenproject.org>; Tue, 08 Apr 2025 07:07:31 -0700 (PDT)
Received: from [10.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-39c300968c4sm15127175f8f.9.2025.04.08.07.07.29
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 08 Apr 2025 07:07:29 -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: cf63610c-1482-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744121250; x=1744726050; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=qb48JZToc2QvsLJWoQSETQwZjXT8vZIo//0Qo2SJaaw=;
        b=YGKy/JhIx9WqtIvhXgPgsW2g0ErayQGqXp+4S+qHno0m3i2NNAMb+oqL2Tl/ts+ESC
         dO8M8i0ikMOaWxWxyYbvBIVdSgEBcyfMMJ+0YT8yhIajVikZvFx/i95sn50eO/OTRrv7
         lZDO33ha0v7JZYc4wkA49QjFD/BSWYAoPMLUS3uuQvZUB+qdppYUu8vf6z+rpL+T/oV4
         u2vDQsbhxgLrnwm8mYrt18FYIOVNQ7IpUH273g2KMiNSL6xacksOuBLXU2UBFfb6Za5C
         4Pvgmgg75PJWhi4ABRF7qwfvfHr2SY6kKeLyeX5u7xlyXQ8AzrJwn2s2pmskNifRWeMO
         2y4A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744121250; x=1744726050;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=qb48JZToc2QvsLJWoQSETQwZjXT8vZIo//0Qo2SJaaw=;
        b=OPOriLyEhpfQ2+JRfUkRyZ3u+hrFjHtkZxyUq2lQ6r/tixsLIfZ2MfVND8Xl6p73Sl
         njg0g0eIsIOWy3zLf++PTp9Oatf6bz6DPc7Kntp/mkx6bC+kf408rGx0Oz/VNjs+0bh5
         wCUb3DDkX0LRICUtGwEyhtzjMHpjlLK1x31NCjjp1Tb+ejRR/xF9ES8MkoHMHUqiGOXx
         n0CRIxQ1glZV5fvdVFJSjUNzBk1XtWmKm4cH4R6rN+RWDSeyxYpzvs/XPDLMc3tPf98L
         Snug6ijpFa+r4oRM5iL3hxDx9jeMBUUCWetc6rdaMIWtd6PUh3oNwzmalxaOnifFj3dJ
         Qong==
X-Forwarded-Encrypted: i=1; AJvYcCURfvsYLoOgjqcngyqXA0qfDO9ja80mqtgeX2bfe2iykRN+wCjwl120+V+6/J3VdcTAXNDA+ZHP/BU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzDrkul6i8gj5yk14Ju1RSKDPkj44YD5BK6WQSGIJV0JPuYHOci
	jwtU6x/pYrLM0GFzwovD+JYGtzGX/kw2yil8MbqLZ6QHM8L9FVt9AJTiyMzLuA==
X-Gm-Gg: ASbGncszsdagM1+asahUs0m7Wx54uN54fpgXCzBfk6Sj0l2ovHdnb9kgv4pmLbQ1Ehq
	Ok3AqiV4j4EjNBfB3viJWdQz69S67ZUozYMXc+gVwE7izxwNJz1roKa7ks2UhiRYhUuyEZz/Owr
	O1ZhREV27FTBGJEe9F+jFrhUk+GcBA8nD3VmDqwbyQ7egae6BjJ3TAmRNw+PvlKyxrfZoqnUxzq
	CaQUle/UEX7LhMtNVUx4xKUzwa+kKP5M+Kwu8m0DOcIYITkpDmHkGygXV1h5u/B7+1Ujd3ffJ0e
	qxeI5NaChB8IWPa4FfWawsF6EFVmNiD9zF+KK7776TyonMxEp9wE2Tmpi0rZq7HP54VOeHewqDA
	H9FT+kMioLpPkT2gSJuV6DCTNZE59NA==
X-Google-Smtp-Source: AGHT+IEgo9LeNvI3kkQGR6wu31JTrWRdLGRHNNOyl7vOe5vQqEQEzZkJlmrXL2F+hozKGUVwiBe60Q==
X-Received: by 2002:a5d:64e6:0:b0:39c:1efb:ec93 with SMTP id ffacd0b85a97d-39cba98b7edmr15086266f8f.48.1744121250227;
        Tue, 08 Apr 2025 07:07:30 -0700 (PDT)
Message-ID: <6a0c4357-627c-4cce-98ac-4e8c91f40429@suse.com>
Date: Tue, 8 Apr 2025 16:07:29 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] libxl+hvmloader: extend IGD check part 2
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>,
 xen-devel@lists.xenproject.org
References: <20250408132333.1524246-2-marmarek@invisiblethingslab.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20250408132333.1524246-2-marmarek@invisiblethingslab.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 08.04.2025 15:23, Marek Marczykowski-Górecki wrote:
> --- a/tools/libs/light/libxl_pci.c
> +++ b/tools/libs/light/libxl_pci.c
> @@ -2575,7 +2575,8 @@ int libxl__grant_vga_iomem_permission(libxl__gc *gc, const uint32_t domid,
>  
>          if (sysfs_dev_get_class(gc, pci, &pci_device_class))
>              continue;
> -        if (pci_device_class != 0x030000) /* VGA class */
> +        if (pci_device_class != 0x030000 && /* VGA class */
> +                pci_device_class != 0x038000) /* Display class */

Nit: Indentation looks suspicious here (can likely also be adjusted
while committing).

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 08 14:11:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 14:11:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.942306.1341509 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u29fy-0006Ef-2S; Tue, 08 Apr 2025 14:11:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 942306.1341509; Tue, 08 Apr 2025 14:11: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 1u29fx-0006EY-Vb; Tue, 08 Apr 2025 14:11:41 +0000
Received: by outflank-mailman (input) for mailman id 942306;
 Tue, 08 Apr 2025 14:11: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=xdvb=W2=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u29fw-0006EQ-Ut
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 14:11:40 +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 632c39a4-1483-11f0-9ffb-bf95429c2676;
 Tue, 08 Apr 2025 16:11:38 +0200 (CEST)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-43d04dc73b7so61006415e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 08 Apr 2025 07:11:38 -0700 (PDT)
Received: from [10.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-39c300969e1sm15197980f8f.10.2025.04.08.07.11.37
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 08 Apr 2025 07:11:37 -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: 632c39a4-1483-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744121498; x=1744726298; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=TFR7bLJQK+StzK2Zx9tv64FoY/SSEv2ju1LT2QLlUQc=;
        b=Knwm1WYrKCOqhQyZYo5V3TmhkyFYwotB0lo/bpTkU1u8npsHDJ1aqIKyukDiPMQkoF
         JHffl2foifFi61HTiyM8aZiGNQLgbjL0mw8OHdsk0Jb9Ft7rHyXYzxN/O4OmiSa/YEaV
         6j4eDed2AYJ6y8Aii2R1igHhYGy0sfKwJo3/rF/0Y7Nr2dHHcBRbOh9u/kQ4eDlm8T7m
         ZL/KDjreztBgvGZSdCuS4E9W1ISsVfjFPachkzxgD8iCxXTG/FoHe5/sEn644d8ipJr3
         T3U0AnSu2W5Ah7Xq+yd0qNsYpmvgYTj1AjJbXLgJo04t/sn0T1v4UIzW6lc9+Zy8V0XS
         RcfQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744121498; x=1744726298;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=TFR7bLJQK+StzK2Zx9tv64FoY/SSEv2ju1LT2QLlUQc=;
        b=mqAZLSvR8h8nzcTnBOtp7EurvygMda6/oZsQExx5G3G625eBRLmZYOIi+p7NPS2AWp
         VDs5E5YDrlqSDGkcaFg0QXLfHb13iHBLrudwysUpCyOToQdghyuSZ6EXHtqNG6/1duV4
         rCv15CUi1P0N5AyAjCG+ORsEeExD6SAwX5LGk+KLSZJZfJzESELLztUvUNZa3CISpraF
         IoLd8y2O8LMrDiLII1/OIAIrXUyw1ri3Sisc6f2diMcNMyrVqLTREjJKDOPj80MBjaKh
         KYERJLL9KBQvb3RSC6Wf67QbMOjrVl+qoOnT5ToIN06AYPW4XGo6ZaCiOlBulVlA0WhD
         Vdhw==
X-Forwarded-Encrypted: i=1; AJvYcCWXMwUVJ5u7/j27tM/fIaIWD8VYCS4HYV1fbz4zGu6rMVxU6I0ZBNkdHO/cUeE6sZB2ErFfz5Rh1Jw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwWYHMCqDQe7nCNO5/v7O3ZMwpwahf+Ao9V4Kw2/u5uiiSnJOG2
	20RZdLwcMZT4hHL2F3Vf5bxuluztIW8lK8661NochYEbJ74i2gP4CcDNtP3mwQ==
X-Gm-Gg: ASbGncsib4QM//md8Mw+L9tzPWvN+M4SzcuKlavsX9Rerq56GCdtcwItM7tR1I3IZL9
	kehYcP6hlnE3nYtAczdmabhEr13UjFVHV/9pPN57LR71JPXp1ttkX/GrhfzFFTld0XGK4gD4W5a
	FPYlHlmVY0ZMjxrDOf3ADdsaOSid4tZy/yRyDfiBbxSg1hUUpSLqIhQBVaseePELmuS02DM41qX
	DDxO72qxJACjifKaZHQqSHOe8wMTsWSY8y7stuCfyoXGtEARa5qVBbGwUQw2ARb51brc4T0CYdQ
	up8g+PwWLBl+HwkL8H4Mukj/X4ZJkiKMjLNvGHIl93bBUmS2OIXfn+TZgOJH4PbNoZqx5XwjXCB
	cleZvjgyK1H1iG51tVfsDETdg0FLI8Q==
X-Google-Smtp-Source: AGHT+IFb8h8dEXofnHgnO7bJA8h7GXQunqad9s1qyIs1fbBhQzCjWEY/uSRdeVQLKd0IINm7a0sAUQ==
X-Received: by 2002:a05:600c:a4d:b0:43c:ebc4:36a5 with SMTP id 5b1f17b1804b1-43ee3e9d55dmr106113795e9.7.1744121498144;
        Tue, 08 Apr 2025 07:11:38 -0700 (PDT)
Message-ID: <7c8cfe6d-6d61-44e5-b1ba-8a7795424977@suse.com>
Date: Tue, 8 Apr 2025 16:11:36 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] libxl+hvmloader: extend IGD check part 2
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>,
 xen-devel@lists.xenproject.org
References: <20250408132333.1524246-2-marmarek@invisiblethingslab.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20250408132333.1524246-2-marmarek@invisiblethingslab.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 08.04.2025 15:23, Marek Marczykowski-Górecki wrote:
> --- a/tools/firmware/hvmloader/pci.c
> +++ b/tools/firmware/hvmloader/pci.c
> @@ -173,6 +173,7 @@ void pci_setup(void)
>          switch ( class )
>          {
>          case 0x0300:
> +        case 0x0380:
>              /* If emulated VGA is found, preserve it as primary VGA. */
>              if ( (vendor_id == 0x1234) && (device_id == 0x1111) )
>              {

Unlike here, where vendor IDs are subsequently checked (and the sole question
that arises is whether any of the combinations can actually come as Display
rather than VGA), ...

> --- a/tools/libs/light/libxl_pci.c
> +++ b/tools/libs/light/libxl_pci.c
> @@ -2575,7 +2575,8 @@ int libxl__grant_vga_iomem_permission(libxl__gc *gc, const uint32_t domid,
>  
>          if (sysfs_dev_get_class(gc, pci, &pci_device_class))
>              continue;
> -        if (pci_device_class != 0x030000) /* VGA class */
> +        if (pci_device_class != 0x030000 && /* VGA class */
> +                pci_device_class != 0x038000) /* Display class */
>              continue;

... there's no such checking here, and instead very much VGA-specific things
are being done then. Is that really in line with permitting Display class
devices here as well?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 08 14:26:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 14:26:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.942331.1341520 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u29ud-0001z4-9q; Tue, 08 Apr 2025 14:26:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 942331.1341520; Tue, 08 Apr 2025 14: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 1u29ud-0001yx-5g; Tue, 08 Apr 2025 14:26:51 +0000
Received: by outflank-mailman (input) for mailman id 942331;
 Tue, 08 Apr 2025 14:26: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=xdvb=W2=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u29uc-0001yr-2J
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 14:26:50 +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 818ce164-1485-11f0-9eaa-5ba50f476ded;
 Tue, 08 Apr 2025 16:26:48 +0200 (CEST)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-43d2d952eb1so38265085e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 08 Apr 2025 07:26:48 -0700 (PDT)
Received: from [10.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-39d75335591sm8810644f8f.1.2025.04.08.07.26.47
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 08 Apr 2025 07:26: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: 818ce164-1485-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744122408; x=1744727208; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=rnBKD8RK7eu/Yn8RWFHukx3u9fbeKjcdKGfkXlI1r0s=;
        b=EAVHGYNodS/Jz/brz9bMDAeBSugW9iuHW7LlDBqifYy63tm/8R8SeLPCiU4TzjYP5+
         Q8kKNpSSSvslPmWJR7yjmy5mOTlaHbUBHXZmQIua53sSTfMWzK7yzANGm0bHFxik1dgv
         9oxW1IzOUywwXTmBsOLgI5Wj2TuQ/rIb8Wm3ty6vatzh7voDhB3+Rojc34tAl3q2kvXx
         jz6jq65XHhwBBTN867lzCkPmUxohsCw9efHuQeFkwd9OUU3Hx/+pvDCzOKZkhCGviSCs
         TObJPAwh5gg/rajwyJuQmeg7Btp+ic5vNvGI2Tto5h9RTvBtejFpGIG0X9h22G4f1rlD
         ZuKw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744122408; x=1744727208;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=rnBKD8RK7eu/Yn8RWFHukx3u9fbeKjcdKGfkXlI1r0s=;
        b=p9QZMfoDP3L0S0GL/BJdTDICnBaJbxedhFybW8MvJ3vbN9Ivtn1I64XqXt2eIhLLH4
         3TjnhDwmQI28vvfeLomRcSFnAnM2b7gOX9oNfpDSElJsKur+d6BqQn5A7+4XFIZAck09
         9lWEury+lm4tkuoaaBEFYd4VAWIPdVEJLoEORC5hiHA2yiHHl9y5jFMBf2caeZmbtzrY
         jDeROIjW/O9ie/A9FhxqtYWPMwE5K7kBmk+2WLnAzm1npv66D93Ji/XTn8G3IxtUspU3
         qzfq2OguWMczrwIT2TD8GJLVqwg4mqesxzz3p+dl+A8OYs4QOZoSKaM8bvKkaXCxXvVY
         Xt5w==
X-Forwarded-Encrypted: i=1; AJvYcCURLHDesRbt+WakobrETC60P+6clsHu1gpb00XZnoyFjvjI+CTi+qiOcbX2Au6vivolyt0hEt7DyWw=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxsz9y5gHzZGubRWyPLrMk05NohpMb2OaJVlmpWxSh+g4XcV8+R
	BN9jcAEISPzMB3nmZtubWdzwu1wTi2L+AF3fskrg3O3XK3OgquWsbA8/Pov9Rw==
X-Gm-Gg: ASbGncvX9fWukcMtu7SZwBaGx7KA3OgdIyCgFRWtvAbXucy6RjF9pB0HBamgcf8GNmb
	QA3SNycNE36rgbUDoXPUaFzfpHecudnQYpQ2a+ZoTAihW5Ss1oHs+pYG1of5R/STXHF8zUrRvN7
	FZCeFyTdaRVx4p3VKeuxUj5KwiJy2mexF353KP7frZeZ+RdKwkrWzPesiW/jUogOdgGS3c95IlG
	neUBXM3dy8V7kMjA61RdQM4E/1duW6nDO+8aixzNje1bTOaMusfFg15PWVRyozIHQr+zjo/407o
	K9+xB6AZHN6fF4d/n0ZmS/MZGV4f8md0NTSXcJY5pwdkNzLiriwIs9AS9O+XpRnk6EXBV3MwRL7
	nECuruDtMfzszVnLtGPZzWHlu6U9fow==
X-Google-Smtp-Source: AGHT+IHHPL7MWmlSAyWpBy6kN0IOi9g1Wfflj88417GEPGcJ5wvnzIv0Nj2jnXJPZrlVtrid8gXnAA==
X-Received: by 2002:a05:600c:5814:b0:43d:cc9:b09d with SMTP id 5b1f17b1804b1-43ee0b1a288mr75175955e9.20.1744122408053;
        Tue, 08 Apr 2025 07:26:48 -0700 (PDT)
Message-ID: <32a01662-3f34-4670-b38f-7d660acd3d2c@suse.com>
Date: Tue, 8 Apr 2025 16:26:46 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/7] xen/domain: introduce domid_alloc()
To: dmkhn@proton.me
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, julien@xen.org,
 michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org,
 dmukhin@ford.com, xen-devel@lists.xenproject.org
References: <20250331230508.440198-1-dmukhin@ford.com>
 <20250331230508.440198-3-dmukhin@ford.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20250331230508.440198-3-dmukhin@ford.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 01.04.2025 01:05, dmkhn@proton.me wrote:
> From: Denis Mukhin <dmukhin@ford.com>
> 
> Move domain ID allocation during domain creation to a dedicated
> function domid_alloc().
> 
> Allocation algorithm:
> - If an explicit domain ID is provided, verify its availability and
>   use it if ID is unused;
> - Otherwise, perform an exhaustive search for the first available ID
>   within the [0..DOMID_FIRST_RESERVED) range, excluding hardware_domid.
> 
> This minimizes the use of max_init_domid in the code and, thus, is a
> prerequisite change for enabling console input rotation across domains
> with console input permission on x86 platforms (which currently is
> limited to dom0, PV shim and Xen).

By removing the updating of max_init_domid you do - afaict - break the
remaining use site(s) of the variable.

> @@ -1003,6 +1004,12 @@ static struct domain *__init create_dom0(struct boot_info *bi)
>  
>      image = &bi->mods[idx];
>  
> +    rc = domid_alloc(get_initial_domain_id());
> +    if ( rc < 0 )
> +        panic("Cannot use domain ID %d (rc = %d)\n",
> +              get_initial_domain_id(), rc);
> +    domid = rc;
> +
>      if ( opt_dom0_pvh )
>      {
>          dom0_cfg.flags |= (XEN_DOMCTL_CDF_hvm |

Why does this need to move up, ...

> @@ -1017,7 +1024,6 @@ 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();

... disconnecting the logic from the comment that is relevant there, ...

>      d = domain_create(domid, &dom0_cfg, pv_shim ? 0 : CDF_privileged);

... and not so much here?

> --- a/xen/include/xen/domain.h
> +++ b/xen/include/xen/domain.h
> @@ -37,6 +37,9 @@ void arch_get_domain_info(const struct domain *d,
>  
>  domid_t get_initial_domain_id(void);
>  
> +#define DOMID_AUTO               (-1)
> +int domid_alloc(int hint);

Imo it would be better to use e.g. DOMID_INVALID as the "give me whatever
is available" indicator, allowing the function parameter to properly be
domid_t.

But first of all - can we please take a step back and re-evaluate whether
all of this re-arrangement that you're doing (not just in the patch here)
is really needed? It seems to me that it must be possible to do whatever
you ultimately want to do without re-writing quite a few pretty central
pieces that have been serving us fine for a long time. That is, rather
than make our code fit your desires, make your plans fit within the code
base we have.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 08 14:30:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 14:30:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.942344.1341528 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u29xk-0003Gh-NP; Tue, 08 Apr 2025 14:30:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 942344.1341528; Tue, 08 Apr 2025 14:30:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u29xk-0003G5-JL; Tue, 08 Apr 2025 14:30:04 +0000
Received: by outflank-mailman (input) for mailman id 942344;
 Tue, 08 Apr 2025 14:30: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=wetR=W2=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1u29xj-00030U-MI
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 14:30:03 +0000
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 (mail-db8eur05on2060e.outbound.protection.outlook.com
 [2a01:111:f403:2614::60e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f440b9fc-1485-11f0-9ffb-bf95429c2676;
 Tue, 08 Apr 2025 16:30:01 +0200 (CEST)
Received: from DUZPR01CA0053.eurprd01.prod.exchangelabs.com
 (2603:10a6:10:469::11) by VI1PR08MB5438.eurprd08.prod.outlook.com
 (2603:10a6:803:12e::11) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.34; Tue, 8 Apr
 2025 14:29:59 +0000
Received: from DU2PEPF00028D0C.eurprd03.prod.outlook.com
 (2603:10a6:10:469:cafe::17) by DUZPR01CA0053.outlook.office365.com
 (2603:10a6:10:469::11) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8606.35 via Frontend Transport; Tue,
 8 Apr 2025 14:29:59 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DU2PEPF00028D0C.mail.protection.outlook.com (10.167.242.20) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8606.22
 via Frontend Transport; Tue, 8 Apr 2025 14:29:58 +0000
Received: from DB7PR08MB2987.eurprd08.prod.outlook.com (2603:10a6:5:1c::25) by
 VE1PR08MB5647.eurprd08.prod.outlook.com (2603:10a6:800:1b2::9) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.8606.34; Tue, 8 Apr 2025 14:29:21 +0000
Received: from DB7PR08MB2987.eurprd08.prod.outlook.com
 ([fe80::d53f:b16d:70a5:8668]) by DB7PR08MB2987.eurprd08.prod.outlook.com
 ([fe80::d53f:b16d:70a5:8668%4]) with mapi id 15.20.8606.029; Tue, 8 Apr 2025
 14:29:21 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f440b9fc-1485-11f0-9ffb-bf95429c2676
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=q6C/ZJAJLaAZeaRgJY9jpTNyi1rS7J3PTfMd8ziYjdLG2Wxr4KkrNjH13IFWF8x+oqs/PTA4CTFyojrdY19tBXcZ34rmFY9HvIDrmzTGCH3JV1I8mgkRoccsNvAg2j4Lm4PbYgdv0s2W733wLdfrfkb5HSiEdBIb6Vsix8qB81KZxx7J9ttPXosbcfXSDzGKu5frhWSWLXGnyAr5WKStxQf3OeWuxtqGAzVbjlmrwpGUHn97LllIZeLBzC+556wcpmPidtA/2bt7qbGggqGd0eEHipr1VV6Mt2AfJJq5UatMCHyKnCu+NiGtvKURv8+c78CsmDCUJp9J7L5dfhhf4g==
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=id+0WXbyElh6DKsfM1Fx31khUsFWufY4SlXqN8P3bqI=;
 b=O4pu5p0j1Zi9fqIeFDKNJf4BSyPZAYd3xcbgARQA3CoJnIRO/HzjklC1gME7BAU0ckWXQf3huGcVYhEHssFXH5ZWKfxQ2BnzksToH+iVABYyEMPCizzvTW/dFivhORa1Qk23MofDUwNCwxfpv0E92td9jYWgFsfSZPq5+qEqeM2WykhOprtVsCHAXNpFKLsLTean/EqjzB4oQw8NH2k5Cf0UIaFqYK6WV58CpMrFX3Vyg2dfJgxoc/SJrzB0ipE+o7gal78gKxx7W6k6tNS6WPLnsI9e+2qoY/9ivGssGWxY2w2pDxoxGvw0SZ+0fubw9Zb0ezOMy8pdJ6t+6/KlLA==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=fail (sender ip is
 4.158.2.129) smtp.rcpttodomain=amd.com smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=id+0WXbyElh6DKsfM1Fx31khUsFWufY4SlXqN8P3bqI=;
 b=l1KWz+s/ONR+Tw2KByHq+YVqZAZ3XFZQPYbyv4VamkpjpExW7q7zlvaTpAYWsH4uuk83lkJKVH6eftZ+s8SGTR6sj0hJNoxmWDJcTnahXWaw8SAtkT09D3uzlgIIo0GVUDkGWvzngOskrrSNi4XZc64sIpmBmZEARhf4LJtQ55s=
X-MS-Exchange-Authentication-Results: spf=fail (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Fail (protection.outlook.com: domain of arm.com does not
 designate 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com;
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=yMgHD7n5nkjSS1kY0Ipiy7EC1R2jRqGJ18946TShceAxFbjgPefTU7bQMOmYsXWTftGhHx2NBvbowTUL8W3viVjXUHTGHbv7ICtsUjX0/DOj0EW4+J9EnzRTVUfr868iBkfWQlCiIDlle8YazkEx3NvQ2WqKMqEvI5Dk52enoRYiOFmB2ZjRbGA922P6HLhPVkyd3/3VypksLp2t4L9Fd4MvUSTzSlHncO2UVllAi12A/xwtAeEpocKzuPMRCZkBk5Zb2XdZUHjj5990P4ovdHNzokIVmnXSj3LZbO+qU5RqFty9kgmmHthGg5yOcLf6kd9NdkHjSXoEo+0WrzXOQw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=id+0WXbyElh6DKsfM1Fx31khUsFWufY4SlXqN8P3bqI=;
 b=QMIFKHzYNJxyZMjdU6xBVuadHXk9TGe2M3xjkdPtmCCCLADDBhBz76js5FbDsLu9MIEnclxaKo8Dz+pNtFuA6otzGDwLpae4pCABKayGWCSJhF/+Megijad032WeVEFdUCySZ1K72b33Q/U6I/3tLaMZ3ePEZiwf6OAhI/bRN8iGPZjuiFhKnj3gQem/jreFm69Ia0SLOuLQ84rbyBLHlyf6KrZo8iTQouZDfyQ+vdqqa8RSvaoKtxgb9u4d8tvOoZ2ms7cbG4rRyfz241pzXsCgRIN+lShs/EFhWZY4AVj31UAJigDqw8g85MeSJdb6ZGE0HoHcedjvmvtzgkDe9w==
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=id+0WXbyElh6DKsfM1Fx31khUsFWufY4SlXqN8P3bqI=;
 b=l1KWz+s/ONR+Tw2KByHq+YVqZAZ3XFZQPYbyv4VamkpjpExW7q7zlvaTpAYWsH4uuk83lkJKVH6eftZ+s8SGTR6sj0hJNoxmWDJcTnahXWaw8SAtkT09D3uzlgIIo0GVUDkGWvzngOskrrSNi4XZc64sIpmBmZEARhf4LJtQ55s=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Ayan Kumar Halder <ayankuma@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 v2 2/7] arm/mpu: Provide access to the MPU region from the
 C code
Thread-Topic: [PATCH v2 2/7] arm/mpu: Provide access to the MPU region from
 the C code
Thread-Index: AQHbp52Ro+Yg+pQClU+WnJSxei+hH7OZzl8AgAAHm4A=
Date: Tue, 8 Apr 2025 14:29:21 +0000
Message-ID: <1AC85CBD-02B1-4AA4-B9A3-68DFC06137AA@arm.com>
References: <20250407091430.2342709-1-luca.fancellu@arm.com>
 <20250407091430.2342709-3-luca.fancellu@arm.com>
 <0acf63c0-267e-44c0-b629-fa576307497c@amd.com>
In-Reply-To: <0acf63c0-267e-44c0-b629-fa576307497c@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.400.131.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DB7PR08MB2987:EE_|VE1PR08MB5647:EE_|DU2PEPF00028D0C:EE_|VI1PR08MB5438:EE_
X-MS-Office365-Filtering-Correlation-Id: 7025dd72-48c5-4146-a485-08dd76a9d733
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?ai8rc1FENndHa29XaWd1TDVOZkRNbmR2WmIrSWs0c2h2eUh4WXQwV2JwOVZZ?=
 =?utf-8?B?SkRraExXTmJWS2J0TUpnQ2dIYW1uak9BaE9rdXNLY09UanllZUpORDFscVpC?=
 =?utf-8?B?STJKaUxUMXZuQ2ZHbG5MUERpT3ZvZmxLTEdleGthL3Rzall2UUtkcHEzMHN0?=
 =?utf-8?B?eEVPeGQ1MnErV09TekJsZHc4VFRzbi8zVFlPUXpZWDBmRWE2Q2Rwem9pT3k3?=
 =?utf-8?B?Tm9HSnNCYTNUbGZRcjBmcC8wWmMyRU5VWFlXSWEyaEVrclBHb0tSeFFuYy9J?=
 =?utf-8?B?dXdiZEFhRGhEN01XazFDRFo4WENYeFZPTlFJSVBqSG5ESG5IMFZ5b3JiNGE3?=
 =?utf-8?B?NWphZWpJS29pUlNZMmU1Z2YwMERNb0c0dE5XRVpObW1IQVYvMUVkV1FqaGhN?=
 =?utf-8?B?M0xTSU9oOWM4YW1xR0tFeUJOSG9rTDlUdHZzdDZUVUFxZWk1V3R1VmlOVkFG?=
 =?utf-8?B?emVvTk1BWndzenJFMUpoVW9lWjVOaHFaSURUMGM2cDlycHU3bzZHR1NmakRI?=
 =?utf-8?B?dU5zRTdLdUtPQ0lZOHhFR1VHckJiclhEeDVPOW8wMnF3cGdIMy8yaW1wUmVX?=
 =?utf-8?B?b3lSdzdDZnp1SE5qK3hqSk9vdGpncU9oSTdQSU1Kb042SEtZam1VVGRibXZS?=
 =?utf-8?B?WWpNeTVvVXlqdW1wOFpnRVJySk0zRjZRU2xHcXFmUGVqZExKWmUyV3lnM0VD?=
 =?utf-8?B?K0Q0UC9DQytRWHZOOFA1Rk5XZE1jTys1a3Q3TWlPQk9HbzloQ0d4WUZCUk5l?=
 =?utf-8?B?bW9UeEtQWXptQVk5TW03dEdmRnRvZ2hvcVRMcFZ3dnpJQ0kzUkVpTTZHRDVl?=
 =?utf-8?B?eVRKT3MyMXhKU3ZjS0V1M29GVmF4bTlnMjZUT1FDUDd5cFB0S09ES1RyYTZH?=
 =?utf-8?B?UGdXS2x2WjJtbklyTE5RRGZKVFNYMlh3OE1PVVRlb0FRREFuMDhFYk96NnVS?=
 =?utf-8?B?VnFnQndEQ1NCVGJqMWh0QVJvbFdNMWtnTHVoTFpCSWQrbktOSHRCTVkwZE9T?=
 =?utf-8?B?SmRZV28zb29Fa0hTQUkxaXR0ZEVqV0RhWU5oUE9KZnZUamJaNDBNUHRPc0Jv?=
 =?utf-8?B?Y01qNFc5cG81bnFnZlFRZldxRVhUQ3Fna3JLd0x6bitmU3VYSDNhbElIL3ZS?=
 =?utf-8?B?WVR6eHJDRXNoc3YvZmxCTm0vWGxHellrZXYyWEZRRFBieGZ3V3JaTDU0Unk4?=
 =?utf-8?B?NEVjVU9MaGNTcllvTVRiRW1FK0p0UEhwZUZidTU3Ti9TaEZ2Y040TmxpeDNE?=
 =?utf-8?B?Yy85dlhHVC9pU1FRVmdwM0lVZEpKUHEwYWtUNDh1anFQTDRZaU9PT1dPUmNE?=
 =?utf-8?B?d1l1Q2wwRCtZbldNNFFsOFlhekg1QTQzd2xTQS9ad2tTSXE0eTVqT093WlNo?=
 =?utf-8?B?Vm5GQyt1UVptM2FTT1paTmd1WlQyMUF0UTNjcFFyczNVNG9ERlhoNFd3UFZs?=
 =?utf-8?B?cjczUy9meElvLzB4cStQcEJFNk9LRkcyQlNGMG5PbU1iWU44QlRYSFVhck1N?=
 =?utf-8?B?cDM4SytNOWpUSGhreE90ZnNzdlA5SUl5NDhNSTRpd2UxaVZPNnlsK1oyakZN?=
 =?utf-8?B?NWF1K250WmdhQ2RLbzkxQTJMWHVTMmRBTXVUUFdtc3RmVkdrQkNzZkliZDFQ?=
 =?utf-8?B?R0grTjdPM1E3U3JZT0pKZkozV2JDNGJ4ZXh6cWZnZHkwZ1lhYkM0ZW1rbVM4?=
 =?utf-8?B?bTNsbFg1a0p4c3JIQWRxN1k3T2EwQ3ozOVROK2FoN2YxbyticDQvd1psNEZ2?=
 =?utf-8?B?MlRvc3hRT2JGWDdMb1U2TmZFS1djd2Z4aTJ3QUVXZVg5bzJ6MmVQenEyS1Qx?=
 =?utf-8?B?ZWorRUpnNWJ5cTFnV1crYjMwaE5Wb2k4cmpiMjBLREZxYTNuL1hPNTQ1UHF2?=
 =?utf-8?B?aXhuRTNUWlNUUDJ2K05CMTBqVks0emNZdTByUUsrZlc1cktBTnpRb0U4Mmkr?=
 =?utf-8?Q?pb8O1ODI2WZ3sU6FaMyib1RmAWQiH4nT?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB7PR08MB2987.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: <0DAD99C34FBAE345B1C1A58C5D087CC5@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR08MB5647
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DU2PEPF00028D0C.eurprd03.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	f967debd-4cac-4996-0978-08dd76a9c113
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|14060799003|36860700013|82310400026|35042699022|1800799024|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?QnU3RjM0TjIwc3VHWUlyK1ljdmlYVytneU9wdlFROHR2a2RUeXVQd2ZROURG?=
 =?utf-8?B?U3EwaVZjME8yeDR3S2RMUDNxQVVza2ZsRWVCaVIxTUxpZmdJSUVtM2RFbStR?=
 =?utf-8?B?YzYwcjhGMW1SdUdCUjRDYW5GeXRVenAxcVlmcklNUlgxM21zRUFQQ1I4aGpY?=
 =?utf-8?B?RHpwblZQMG4zSTRCVzBxK0JBUXlYWDRYbXlDT3NCblBvbE5jUXZLUFdUUVZl?=
 =?utf-8?B?ZEp0Y0dRcTcvOEJmNm5uQm9wRVRDTlM0bERYY3NLRDRFNUJNb2RYV3NOMXFt?=
 =?utf-8?B?d2YzaEFad1h3c2htZnIwK2c3YUdvS3hKaWdTZzF0R0x2Sk1NWHR0NnBiWlcr?=
 =?utf-8?B?YnNtL0wxU1hLZDVSNzBUS3JlWnkxNjNjSHF1eVU5SkZPVkNSdUQzOFZEUjAr?=
 =?utf-8?B?WGpiTkhaQTJjcmdQaC9rTXp2ZmxVY3JpbFRNTlhxOU9jWXo5VDJFVWR3ZmlU?=
 =?utf-8?B?d3NuMmVad2JYVXJ6MzllSDA0Sk9rQ3lpaklQbDMvR0ZWcDVWeTd2RC9ZK2xr?=
 =?utf-8?B?RTRoT1A3MjVBVzNKblQwR29vZHFkaXhXbm9ZWDhaUitiYTA4YkVkQTAyTTla?=
 =?utf-8?B?dXQ4Y3J0Vk5EdlFXanhKc2p0ZlFDNlVKT0traXhlWUozN0tBT0JOaTBpbm8r?=
 =?utf-8?B?S0sxaFdaVVkwNVJtcWNXOWV5cU91elErUFpucGV4Y2k1SEg3Q2dKRG1UdFJR?=
 =?utf-8?B?Y2c3M004VE4wSmhicWdIcytoSksyeExEakMxVmo3c0Vqc3RiMlBxUVlHTDZF?=
 =?utf-8?B?T094YVVjMVo1THhWL2dwdTIyMjMyT0pCYUtZWnVVVHA1OS8yMnZZaVlMY3JF?=
 =?utf-8?B?aGsvQjVKWlZTTURrSGIxellwT2VpWURLSG1zdTVMMDdGa2hZUjdKenhHTG9Y?=
 =?utf-8?B?SlNKanV1Q0tndE1nUzMwb0NhQklBM2ZYY2ZyOTBTdTRoazVZMVZ6UFFmdVNY?=
 =?utf-8?B?N3ZSOUtZQWxzUDVBYXMxc0FkenVrdm5uZWdxWUEycFZnbHVWZjkvTEg1WVk0?=
 =?utf-8?B?bVB3akwyRDRMSXprRFpGdkFPUEIvSjRWVjYzTnlJa2hoS1dncnpNem5tT29j?=
 =?utf-8?B?RVhZSXM1UmVYMVNFTnlvcDJIdFRkOWRKc2pKUk9MSXlqVEswenBiUHJnT1lU?=
 =?utf-8?B?M0pSbm9qT3VxZ1pib1MvL0orVENmV1pidXBTVkJORGlkR25HNWo0MnBlbm0v?=
 =?utf-8?B?MWlPYTJsNEJHMFBGVXUyT1lQKzVXWFp0cmV6N2FnY09wbit3bzE0dHUyeWlN?=
 =?utf-8?B?K2g2bTF3R3lUOEFmd05RWUpSVDI5NVZvWlBIQ1Q4aGxmQmg0QmZTem5zdU1N?=
 =?utf-8?B?MWgvTjM4YkUyTEdmUmR3RUxINjM5TG9lYU5iOUp5a1djQ09DV1orRktTYnJF?=
 =?utf-8?B?TXNqTk1Fdlo4T1ZlejAzNEFVYkxYd2NmYUhtejlFU3ZwSUtjVmRDaytseDhp?=
 =?utf-8?B?RmE3STFLNjgvZkdGNnNxTXdRNExGdThOTzY3NjdZMHlCbkc0dXZsaWlxSmc1?=
 =?utf-8?B?QXdxUXlpWTdzSXU1bGc5Q0pOWWV5dThtNjhtbFRoK3E3RXpNS1pxM2pLNHgr?=
 =?utf-8?B?YzlIVldkNnVoc2JuTUFpMStXZ1l5Q1BubXk1bjNSMG9Ia3FaeXRNbWxlOGF0?=
 =?utf-8?B?d2g1VjhFc0lGd3hUOExSVkF4VUxFQ0YzR0JETFAwRVJ0QnYveEljNGdBNkNR?=
 =?utf-8?B?TXdoWHRzOEZXd0VTMWRmS3hoVWVXOHdBNUJmVm91M3FnU2NnM1FxNnlVV2x0?=
 =?utf-8?B?aHgyaE5jbXFmd0FoRkVVSzdvSk5rRFpoN1NyWmhDSzFQUHl6V0JCYVRiNzFx?=
 =?utf-8?B?aVhWMjU3R2I0SHk3ZVlneDU2NGo1ZjI2WDFqRGlkdG5DbkNFWGpSZ1BWWnh6?=
 =?utf-8?B?UjZNVFE0cFhwVmpWSjByd2RIdUx4WFQ0bmkxMDYwejVvNWdoM2pDRXBENFB1?=
 =?utf-8?B?d0huOCtZVTlmRnRUSGFaVW45MTI1ckxhT3dKRVhNQTQzaDVTVG52MFJvSEpC?=
 =?utf-8?B?RmhtbVNPZlBRPT0=?=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(14060799003)(36860700013)(82310400026)(35042699022)(1800799024)(376014)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Apr 2025 14:29:58.7421
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 7025dd72-48c5-4146-a485-08dd76a9d733
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DU2PEPF00028D0C.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR08MB5438

SGkgQXlhbiwNCg0KPiBPbiA4IEFwciAyMDI1LCBhdCAxNTowMiwgQXlhbiBLdW1hciBIYWxkZXIg
PGF5YW5rdW1hQGFtZC5jb20+IHdyb3RlOg0KPiANCj4gSGkgTHVjYSwNCj4gDQo+PiANCj4+ICtz
dGF0aWMgdm9pZCBwcmVwYXJlX3NlbGVjdG9yKHVpbnQ4X3Qgc2VsKQ0KPj4gK3sNCj4+ICsgICAg
LyoNCj4+ICsgICAgICoge3JlYWQsd3JpdGV9X3Byb3RlY3Rpb25fcmVnaW9uIHdvcmtzIHVzaW5n
IHRoZSBkaXJlY3QgYWNjZXNzIHRvIHRoZSAwLi4xNQ0KPj4gKyAgICAgKiByZWdpb25zLCBzbyBp
biBvcmRlciB0byBzYXZlIHRoZSBpc2IoKSBvdmVyaGVhZCwgY2hhbmdlIHRoZSBQUlNFTFJfRUwy
DQo+PiArICAgICAqIG9ubHkgd2hlbiBuZWVkZWQsIHNvIHdoZW4gdGhlIHVwcGVyIDQgYml0cyBv
ZiB0aGUgc2VsZWN0b3Igd2lsbCBjaGFuZ2UuDQo+PiArICAgICAqLw0KPj4gKyAgICBzZWwgJj0g
MHhGMFU7DQo+PiArICAgIGlmICggUkVBRF9TWVNSRUcoUFJTRUxSX0VMMikgIT0gc2VsICkNCj4+
ICsgICAgew0KPj4gKyAgICAgICAgV1JJVEVfU1lTUkVHKHNlbCwgUFJTRUxSX0VMMik7DQo+PiAr
ICAgICAgICBpc2IoKTsNCj4+ICsgICAgfQ0KPiANCj4gVGhpcyBuZWVkcyB0byBiZSBhcm02NCBz
cGVjaWZpYy4gUmVmZXIgQVJNIERESSAwNjAwQS5kIElEMTIwODIxDQo+IA0KPiBHMS4zLjE5ICBQ
UkJBUjxuPl9FTDIsIC8qIEkgZ3Vlc3MgdGhpcyBpcyB3aGF0IHlvdSBhcmUgZm9sbG93aW5nICov
DQo+IA0KPiBQcm92aWRlcyBhY2Nlc3MgdG8gdGhlIGJhc2UgYWRkcmVzcyBmb3IgdGhlIE1QVSBy
ZWdpb24gZGV0ZXJtaW5lZCBieSB0aGUgdmFsdWUgb2YgJ24nIGFuZA0KPiBQUlNFTFJfRUwyLlJF
R0lPTiBhcyBQUlNFTFJfRUwyLlJFR0lPTjw3OjQ+Om4uDQo+IA0KPiANCj4gV2hlcmVhcyBmb3Ig
YXJtMzIgLiBSZWZlciBBUk0gRERJIDA1NjhBLmMgSUQxMTA1MjANCj4gDQo+IEUyLjIuMyBIUFJC
QVI8bj4sDQo+IA0KPiBQcm92aWRlcyBhY2Nlc3MgdG8gdGhlIGJhc2UgYWRkcmVzc2VzIGZvciB0
aGUgZmlyc3QgMzIgZGVmaW5lZCBFTDIgTVBVIHJlZ2lvbnMuDQo+IA0KPiAvKiBIZXJlIHdlIGRv
IG5vdCBuZWVkIHRvIHVzZSBIUFJTRUxSIGZvciByZWdpb24gc2VsZWN0aW9uICovDQo+IA0KPiAN
Cj4gSWYgeW91IHdhbnQgdG8gbWFrZSB0aGUgY29kZSBzaW1pbGFyIGJldHdlZW4gYXJtMzIgYW5k
IGFybTY0LCB0aGVuIEkgY2FuIHN1Z2dlc3QgeW91IGNhbiB1c2UgdGhlc2UgcmVnaXN0ZXJzLg0K
PiANCj4gRzEuMy4xNyBQUkJBUl9FTDINCj4gDQo+IFByb3ZpZGVzIGFjY2VzcyB0byB0aGUgYmFz
ZSBhZGRyZXNzZXMgZm9yIHRoZSBFTDIgTVBVIHJlZ2lvbi4gUFJTRUxSX0VMMi5SRUdJT04gZGV0
ZXJtaW5lcw0KPiB3aGljaCBNUFUgcmVnaW9uIGlzIHNlbGVjdGVkLg0KPiANCj4gRTIuMi4yIEhQ
UkJBUg0KPiANCj4gUHJvdmlkZXMgaW5kaXJlY3QgYWNjZXNzIHRvIHRoZSBiYXNlIGFkZHJlc3Mg
b2YgdGhlIEVMMiBNUFUgcmVnaW9uIGN1cnJlbnRseSBkZWZpbmVkIGJ5DQo+IEhQUlNFTFIuDQo+
IA0KPiBMZXQgbWUga25vdyBpZiBpdCBtYWtlcyBzZW5zZS4NCj4gDQo+IC0gQXlhbg0KDQpPayBJ
IGRpZGlu4oCZdCBnZXQgdGhhdCBiZWZvcmUsIHdoYXQgZG8geW91IHRoaW5rIGlmIEkgbW9kaWZ5
IHRoZSBjb2RlIGFzIGluIHRoaXMgZGlmZiAobm90IHRlc3RlZCk6DQoNCmRpZmYgLS1naXQgYS94
ZW4vYXJjaC9hcm0vbXB1L21tLmMgYi94ZW4vYXJjaC9hcm0vbXB1L21tLmMNCmluZGV4IGZlMDVj
ODA5NzE1NS4uMWJjNmQ3YTc3Mjk2IDEwMDY0NA0KLS0tIGEveGVuL2FyY2gvYXJtL21wdS9tbS5j
DQorKysgYi94ZW4vYXJjaC9hcm0vbXB1L21tLmMNCkBAIC01OCwxOSArNTgsMjEgQEAgc3RhdGlj
IHZvaWQgX19pbml0IF9fbWF5YmVfdW51c2VkIGJ1aWxkX2Fzc2VydGlvbnModm9pZCkNCiAgICAg
QlVJTERfQlVHX09OKFBBR0VfU0laRSAhPSBTWl80Syk7DQogfQ0KIA0KLXN0YXRpYyB2b2lkIHBy
ZXBhcmVfc2VsZWN0b3IodWludDhfdCBzZWwpDQorc3RhdGljIHZvaWQgcHJlcGFyZV9zZWxlY3Rv
cih1aW50OF90ICpzZWwpDQogew0KKyAgICB1aW50OF90IGN1cl9zZWwgPSAqc2VsOw0KICAgICAv
Kg0KICAgICAgKiB7cmVhZCx3cml0ZX1fcHJvdGVjdGlvbl9yZWdpb24gd29ya3MgdXNpbmcgdGhl
IGRpcmVjdCBhY2Nlc3MgdG8gdGhlIDAuLjE1DQogICAgICAqIHJlZ2lvbnMsIHNvIGluIG9yZGVy
IHRvIHNhdmUgdGhlIGlzYigpIG92ZXJoZWFkLCBjaGFuZ2UgdGhlIFBSU0VMUl9FTDINCiAgICAg
ICogb25seSB3aGVuIG5lZWRlZCwgc28gd2hlbiB0aGUgdXBwZXIgNCBiaXRzIG9mIHRoZSBzZWxl
Y3RvciB3aWxsIGNoYW5nZS4NCiAgICAgICovDQotICAgIHNlbCAmPSAweEYwVTsNCi0gICAgaWYg
KCBSRUFEX1NZU1JFRyhQUlNFTFJfRUwyKSAhPSBzZWwgKQ0KKyAgICBjdXJfc2VsICY9IDB4RjBV
Ow0KKyAgICBpZiAoIFJFQURfU1lTUkVHKFBSU0VMUl9FTDIpICE9IGN1cl9zZWwgKQ0KICAgICB7
DQotICAgICAgICBXUklURV9TWVNSRUcoc2VsLCBQUlNFTFJfRUwyKTsNCisgICAgICAgIFdSSVRF
X1NZU1JFRyhjdXJfc2VsLCBQUlNFTFJfRUwyKTsNCiAgICAgICAgIGlzYigpOw0KICAgICB9DQor
ICAgICpzZWwgPSAqc2VsICYgMHhGVTsNCiB9DQogDQogLyoNCkBAIC0xMDIsNyArMTA0LDcgQEAg
dm9pZCByZWFkX3Byb3RlY3Rpb25fcmVnaW9uKHByX3QgKnByX3JlYWQsIHVpbnQ4X3Qgc2VsKQ0K
ICAgICAgKi8NCiAgICAgcHJlcGFyZV9zZWxlY3RvcihzZWwpOw0KIA0KLSAgICBzd2l0Y2ggKCBz
ZWwgJiAweEZVICkNCisgICAgc3dpdGNoICggc2VsICkNCiAgICAgew0KICAgICAgICAgR0VORVJB
VEVfUkVBRF9QUl9SRUdfQ0FTRSgwLCBwcl9yZWFkKTsNCiAgICAgICAgIEdFTkVSQVRFX1JFQURf
UFJfUkVHX0NBU0UoMSwgcHJfcmVhZCk7DQpAQCAtMTQwLDcgKzE0Miw3IEBAIHZvaWQgd3JpdGVf
cHJvdGVjdGlvbl9yZWdpb24oY29uc3QgcHJfdCAqcHJfd3JpdGUsIHVpbnQ4X3Qgc2VsKQ0KICAg
ICAgKi8NCiAgICAgcHJlcGFyZV9zZWxlY3RvcihzZWwpOw0KIA0KLSAgICBzd2l0Y2ggKCBzZWwg
JiAweEZVICkNCisgICAgc3dpdGNoICggc2VsICkNCiAgICAgew0KICAgICAgICAgR0VORVJBVEVf
V1JJVEVfUFJfUkVHX0NBU0UoMCwgcHJfd3JpdGUpOw0KICAgICAgICAgR0VORVJBVEVfV1JJVEVf
UFJfUkVHX0NBU0UoMSwgcHJfd3JpdGUpOw0KDQpBbmQgbGF0ZXIgeW91IHdpbGwgdXNlIHNvbWUg
I2lmZGVmIENPTkZJR19BUk1fMzIgaW5zaWRlIHByZXBhcmVfc2VsZWN0b3IoKSB0byBjaGVjaw0K
dGhhdCB0aGUgY29kZSBpcyBwYXNzaW5nIHVwIHRvIHRoZSBtYXggc3VwcG9ydGVkIHJlZ2lvbiBv
ciBwYW5pYy4NCkFuZCBpbiB7cmVhZCx3cml0ZX1fcHJvdGVjdGlvbl9yZWdpb24oKSB5b3UgY291
bGQgYWRkIHNvbWUgI2lmZGVmIENPTkZJR19BUk1fMzIgdG8gYWRkDQp0aGUgY2FzZSBnZW5lcmF0
b3JzIGZvciByZWdpb25zIGZyb20gMTYgdG8gMjMgc2luY2UgUjUyIGNhbiBhZGRyZXNzIHRoZW0g
ZGlyZWN0bHkuDQoNCldoYXQgZG8geW91IHRoaW5rPw0KDQpDaGVlcnMsDQpMdWNhDQoNCg0KDQoN
Cg==


From xen-devel-bounces@lists.xenproject.org Tue Apr 08 14:33:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 14:33:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.942362.1341539 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2A16-0005js-AT; Tue, 08 Apr 2025 14:33:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 942362.1341539; Tue, 08 Apr 2025 14:33: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 1u2A16-0005jl-72; Tue, 08 Apr 2025 14:33:32 +0000
Received: by outflank-mailman (input) for mailman id 942362;
 Tue, 08 Apr 2025 14:33: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=xdvb=W2=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u2A14-0005jf-7r
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 14:33: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 703d33c6-1486-11f0-9eaa-5ba50f476ded;
 Tue, 08 Apr 2025 16:33:29 +0200 (CEST)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-43cf257158fso40137715e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 08 Apr 2025 07:33:29 -0700 (PDT)
Received: from [10.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-43ec1663060sm168036085e9.14.2025.04.08.07.33.27
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 08 Apr 2025 07:33:28 -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: 703d33c6-1486-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744122808; x=1744727608; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=zVuCHdWp908W17xrpkZHFaKTFLK1VswuZsht9fQt+8Q=;
        b=NsTHnXrJkGoUU5lw3NHJNdJLob4xtoqawWUgXF9Nt1uAKCF+waYcdFwmiojnQgPcfI
         udFNqmevN0RMfdeXWdpAKRn6lQSQsFg8ZYPFRqps6zo3jDqHAm8CFnLCdNxK0B1BdPm2
         jVFLhJeaF4r4+v7qSSd9iM4TBE8NmJ0XpX02pxMbWlSIV8N8PASY4nzLCIem1O0ckdZr
         re1mF/JYWipn224To0XWViHuxqIoJqOHRpPoqEJL4behYatUan1pK23fv8L2PI2v1uOU
         z3cXQMZ3x9fqqpComexCY3WlatI45ypWEM3ATbU/Dz8BBl+pqLR/dj2UCoR9UwO/QQKL
         QnvA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744122808; x=1744727608;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=zVuCHdWp908W17xrpkZHFaKTFLK1VswuZsht9fQt+8Q=;
        b=YVMAVrlv74dwCbREzVmqk7fL8+S0rAF6FkaWDok+J5vzdTNkw92wGE0sSeUZ8RTbQx
         TXu++OVCgn5+qwKhujHH7EVyZ1fiHAjRa7/Ws3SnCNVrfdO4iRcQs5JhcF9ChMeyd5u1
         0OA104jvzJnnSI0zf+v+l0SXTNpkGBazC3fB0SxxmdI/pZG7N3nXjNyXE9HSm0koGFkk
         qyqOBbGp649PrimQrCQslUob1VCwWOLqgCDNLVClcmADwPNndcXh0K7FGFAJ6mgqG9pU
         h8IaWUjR5lZFFRVndL2T/prbFqGIEQrkq/HYYDI4p9HAUqxMn/MA9UVkddFd0JE+ck2O
         RPyA==
X-Forwarded-Encrypted: i=1; AJvYcCVD5oaxpEYE4cSw9NVcG/TRkkW5W6SPekJWEtBANXNhSoXevTN4n1GJFNaYXB2qmVFR5xhNpWRcIok=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxfW2WbAcDp3D7S8PT4WJlUYpHs/q5N4iegeXlVlr4xQN533lUA
	Sl2MRE9zpcy+rI6TQ78V30RaFJ7oNpZH1pP0ZadZHd4jgvATUXyk4lvqf0/O+A==
X-Gm-Gg: ASbGncsFik8CQbNP/8Ilb/7EMv2T4v9eu3aSFjRFzAkM59moQNSp3NS8bQO3e7PcL8C
	KDMpmMa3V4GVuqnE993T1BtYaS5khKDQqCiqn8MUnJcX4yd3mOlw6+12NLPrOroJMXIrYBKcx5u
	JW4Hng3FH+awFpOnsHT7A0RMVwz9sU5JDu4+IbtJ+n5rlZLfuhZCIE6+fyrIWJr4eceqk/NYB05
	5zRuQOqLAG5cKp2UOBrFIVfoK+vdmNFgFlkh1X0tOc/jssvA/UyuXLzwyDtG4pZo69099YYEuVG
	YdFBMeadTTVBmDbADkSeOxBr4OWOkugUfBV9JSpWSoR980Ib+LrZLJL9LN1wz918KOF5I7c+lLG
	ZqH8uhOyOI8V4ZoL36ltkIRumgULVBA==
X-Google-Smtp-Source: AGHT+IEJXL3mtBHlK4tj/OB5Rad64yf4mmAh1tIcCVru2mCP5/AP2uPlR6Y+uxL6SkifQLn4WnbBiA==
X-Received: by 2002:a05:600c:45ca:b0:43c:f332:703a with SMTP id 5b1f17b1804b1-43ecfa3726dmr160933345e9.31.1744122808508;
        Tue, 08 Apr 2025 07:33:28 -0700 (PDT)
Message-ID: <27191054-ce86-47c4-bde4-24f008ad0a09@suse.com>
Date: Tue, 8 Apr 2025 16:33:27 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 3/7] xen/domain: introduce domid_top()
To: dmkhn@proton.me
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, julien@xen.org,
 michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org,
 dmukhin@ford.com, xen-devel@lists.xenproject.org
References: <20250331230508.440198-1-dmukhin@ford.com>
 <20250331230508.440198-4-dmukhin@ford.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20250331230508.440198-4-dmukhin@ford.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 01.04.2025 01:05, dmkhn@proton.me wrote:
> From: Denis Mukhin <dmukhin@ford.com>
> 
> Introduce domid_top() in architecture-independent location to retrieve
> the highest non-system domain ID for use in console input switch logic.
> 
> Replace max_init_domid with domid_top(), which obsoletes max_init_domid
> in the code base.
> 
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> ---
> Changes since v1:
> - promote domid_top to a function which walks through the list of domains
>   to identify the highest non-system domain ID which should be considered
>   for console input rotation
> - elimitate use of max_init_domid

I still don't get how this is functionally identical to what we had so far.
In principle imo this change should come with a "No functional change"
statement. Provided of course that's true in the first place.

> --- a/xen/common/domain.c
> +++ b/xen/common/domain.c
> @@ -111,6 +111,29 @@ int domid_alloc(int hint)
>      return domid;
>  }
>  
> +/*
> + * Retrieve the highest known non-system domain ID.
> + */
> +domid_t domid_top(void)
> +{
> +    struct domain *d;

const?

> +    domid_t i = 0;

i is a pretty generic name for something of type domid_t.

> +
> +    spin_lock(&domlist_update_lock);
> +
> +    for ( d = domain_list;
> +          d && (d->domain_id < DOMID_FIRST_RESERVED);

May I ask which domains with ID >= DOMID_FIRST_RESERVED end up in this
list?

> +          d = d->next_in_list )
> +    {
> +        if ( i < d->domain_id )
> +            i = d->domain_id;

See the comment in domlist_insert() as to sorting of that list.

> --- a/xen/drivers/char/console.c
> +++ b/xen/drivers/char/console.c
> @@ -472,7 +472,7 @@ static void cf_check dump_console_ring_key(unsigned char key)
>   */
>  static unsigned int __read_mostly console_rx = 0;
>  
> -#define max_console_rx (max_init_domid + 1)
> +#define max_console_rx (domid_top() + 1)

This is becoming quite a bit more expensive now, without it becoming clear
whether it's really worth paying that price.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 08 15:11:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 15:11:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.942381.1341552 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2AbQ-0006fm-3p; Tue, 08 Apr 2025 15:11:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 942381.1341552; Tue, 08 Apr 2025 15: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 1u2AbQ-0006ff-0g; Tue, 08 Apr 2025 15:11:04 +0000
Received: by outflank-mailman (input) for mailman id 942381;
 Tue, 08 Apr 2025 15:11: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=xdvb=W2=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u2AbP-0006cw-NK
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 15:11:03 +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 ad0c0c75-148b-11f0-9ffb-bf95429c2676;
 Tue, 08 Apr 2025 17:10:58 +0200 (CEST)
Received: by mail-wr1-x42c.google.com with SMTP id
 ffacd0b85a97d-3914a5def6bso3415524f8f.1
 for <xen-devel@lists.xenproject.org>; Tue, 08 Apr 2025 08:10:58 -0700 (PDT)
Received: from [10.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-43ec364d07csm162796335e9.28.2025.04.08.08.10.57
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 08 Apr 2025 08:10:57 -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: ad0c0c75-148b-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744125058; x=1744729858; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=hxYlY0fEp1rSgsoP3SUpC3jRSp2CVc0LVS6pPfeXnsU=;
        b=GQjQPBeDWLZ5W/z5M8B4sUITEEWgt5w+9VL7ChPeMVhlVzY2IV2TKlvqtSt9pNxwKW
         ZgZSAGPjWf4Fc4AVsk5KazY5KjB8CWBpJi0Y0/BMoFdsrTfg+18LYaFiZnUJD7AHd6I4
         YRzEDe1D7SyVr8nRqSUe0rUx4ok2EOnwtP9h0IUYFsZQRF/8pqIY9fbs1t514PnLxLKE
         c10MZpXvr/B5Oy9t9wms9DL/O/ZLRbC9Mbppp1qbSKxLFZd4Wjpo8JeaKTM5xyV1iLEU
         kDqIJejsGmMXdFrbhsAwQSYiRGEYjPNDb8atHFkZVSV/ned4dZBMrE1dFkYbF7Tpe2Pr
         487g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744125058; x=1744729858;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=hxYlY0fEp1rSgsoP3SUpC3jRSp2CVc0LVS6pPfeXnsU=;
        b=MdqrpBNe38mIrZXlDr8DVPYasLq7cfn1fHiDmQcKVQhpLxD4kaIU/7k5ruTbPPDluP
         KTi9FkMFLda53mquwW9lSqr/wSQlBEQeTS8AEU1bHi03sRUCl0+FCNvjjTavW6tz0Kct
         vXAFxgAKbw04qTb9Ked51UYPJEJ6KkHDDlW26NQOxai2/GHVusR03hyEwumwob+wl+u+
         Y53AWflovKNB9/p5ZrcXjMn9X4s88fJQBcmp8+DKHzIryISHnQkg7MPKPRAhZGPagNdw
         O92pk7Ui6UbJiAYSIHPy6lT1iQoJ3UsJR3qr6mbL6mbFRbaJWxdS85Bcl2laGOoVXbSq
         0ixg==
X-Forwarded-Encrypted: i=1; AJvYcCUVP6JHrhFUhbMtjys2F1yYAcCRLmaNfkU0Pf+sju75cI7Pn5I2xN2H+wwsiAjzKajQ3YKdKcfwklk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzPvv22dyND7Yg/ovd9B+9zOaQolEEdKJDPDIRBZOyE2cZ4Metf
	Py/VoakJnrDLRC2n/HQS2Gf/PAlfSgy/cF+ve5m5N2VV/ow7hcoYWMpUGbQ0+A==
X-Gm-Gg: ASbGnctbjdO7A1/FIeifLhqN4Xr2kml890YJL2ijYKwepvJ8fUm3Qz6tw2i0TYSMrbL
	UMgpucdLXl86UxR8IgWvaOPVrGWmK33oIvupB8eH0uG+UrhYkIc20z/n8MMmRr+ckW4lO07Dx7r
	enBazaSYFY5aq+PbN8wPcIdX+VsMdEL+CBAUe7aj5yjJYrm+wxFCrKlvHKW4AfWR4S1Ea261ifk
	hhL1cfpwkNghZj+4aNuDI7KbePCEBo8eR6ztxoa7yaW7fkkDwTg42Kj11+XV1dsIP9+TYNGN6kS
	OEjv6MSOQRYDPUUSR21d6oVLeDc5Ekk5ZwI7R2e4nUb1LsGe0EG54qMPTPOxJyQVxpI4WQo6e2n
	hMrzLXKRZ+e4aGrUorZzYmY1sHne7dQ==
X-Google-Smtp-Source: AGHT+IE+Z9jELoiN5pfluRM8pMctbx2JjYolW2vKI4gEVI9svsGnN+MSslWdbGhsSEI0kJwzTCDUVQ==
X-Received: by 2002:a05:6000:1a8d:b0:397:8f09:5f6 with SMTP id ffacd0b85a97d-39cba93cd39mr16475899f8f.47.1744125058078;
        Tue, 08 Apr 2025 08:10:58 -0700 (PDT)
Message-ID: <bff7ddac-9072-4cfc-a4ef-b73c87b98d18@suse.com>
Date: Tue, 8 Apr 2025 17:10:56 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 1/3] xen/console: cleanup conring management
To: dmkhn@proton.me
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, julien@xen.org,
 michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org,
 dmukhin@ford.com, xen-devel@lists.xenproject.org
References: <20250403000604.169619-1-dmukhin@ford.com>
 <20250403000604.169619-2-dmukhin@ford.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20250403000604.169619-2-dmukhin@ford.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 03.04.2025 02:06, dmkhn@proton.me wrote:
> From: Denis Mukhin <dmukhin@ford.com>
> 
> Move console_locks_busted handling inside conring_puts() to remove
> tasklet code duplication.

I for one wouldn't expect tasklet scheduling to happen in a function of
this name. IOW I think the little bit of duplication is warranted here.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 08 15:23:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 15:23:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.942399.1341563 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2AnL-00024F-6P; Tue, 08 Apr 2025 15:23:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 942399.1341563; Tue, 08 Apr 2025 15: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 1u2AnL-000248-1t; Tue, 08 Apr 2025 15:23:23 +0000
Received: by outflank-mailman (input) for mailman id 942399;
 Tue, 08 Apr 2025 15:23: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=xdvb=W2=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u2AnK-000242-64
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 15:23:22 +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 66689d09-148d-11f0-9eaa-5ba50f476ded;
 Tue, 08 Apr 2025 17:23:19 +0200 (CEST)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-39c0e0bc733so4909615f8f.1
 for <xen-devel@lists.xenproject.org>; Tue, 08 Apr 2025 08:23:19 -0700 (PDT)
Received: from [10.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-43ec366aa29sm164467735e9.39.2025.04.08.08.23.17
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 08 Apr 2025 08:23:18 -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: 66689d09-148d-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744125798; x=1744730598; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=wQPlAX26Y7O2tbi8H6ikaM70bivHOn0DWJIMudseTOc=;
        b=G7316Citsuo861ikz4BhD9O/oLViIJYCXqDPgUuBjEG/okns9V0+3+bbhqYkV+iFr8
         ULITV3hWPqXyWkoHczOP0zKDqvG44T3bepNXGn8ulau79n5jErmj0U0tLOcnxRQXokcD
         fjevsi5umCjrsZScC/RivWhw5h1zCOfyoFpxfbdp/i8TmFoKPpGITPot+wI73wFoX4LQ
         KLlg31db0JJMLUd4fX8e2PiWarIBpxinjkJOxp3y1ybTtqgGyczIM644sSrBN5rd2ETA
         +bC0PrRQShLgBvEMAjnuy9pl6iIc9wnMHUFkF42vYplUYsFhHoUL1GqPW5iquHVu8Yso
         zWNA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744125798; x=1744730598;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=wQPlAX26Y7O2tbi8H6ikaM70bivHOn0DWJIMudseTOc=;
        b=G1t2dUUlUT2FMrJ8Se5BgUkgg60vBypvHBKxU3tJoUVJs/CMnD0SP/52pTgicyZQGC
         q0A2p+M0I3s+G8hd+dgzBhjluzTfh/ZIbsVI+edK0y5WuoyHl037eao8EZTSHI1p8HJa
         VBrs3eu4nkXXSTS9HvZsOy93zir9tR/WG5axXbT+BzjAWnvUtfGGjFH01m7mmGXlEs6W
         9whcfITJYapJueCvVttshcpDe+lolMgcBMVm1dA0D1N0Do0SbMa69BrDsqEya6jr9rzA
         47KkMPMvmcU5U8CEi5hbkq9Y7uwbJS7jVdsIV5JQ1OGNPqAAVoVhALfi6jVZyKDdxTM8
         xKLg==
X-Forwarded-Encrypted: i=1; AJvYcCWvZm3nUj5QqVsqGOSo+8S7cd+F6mkmp9AWKBwO4ov/u2iJHwSGQgEgG2czl+W9gU1ogGuJZUq2ByY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwFg1vF9+62sH9F/ria6rPXx0V2V9ik9V0NzlW9ISzAJatp+m31
	kl3zwA7lzEb4Dl5Rc3VbB2+I16pckSqtRUkM9Ggwv6HAHwPpLIGLPlq3rqn3lA==
X-Gm-Gg: ASbGnctHdde3HHSTuBaWeJHdCCdfRoBKWMVOT+CxJBMEAG0NVol6f4qZuoGy09fv05N
	pM35qCUpI+FLl009e7X0rAo5ue1fybyAV0KsTvd//0Od9lhfB4F7fkyoR7xuii/1NWtTOSSg3VY
	jv2BPgGuBHW/FvyK91LwkMqQlV2ikjfdzSgHtH0VuVoOVJLQuK9GXRzrY96pnUHUhCzQJUmaBOH
	ttuyi1DAGbn8CdPBqh05bBCr9mlPToeyE9mKUgaod8Tw8hkRm7GuuZFxL+9iw4LqElgPcWarQTD
	mK0jWHNF0IRPR2Vg+bzxfOCqKZFAsi4sZnGAqG/T9GWPnIsmRfiugB4CUCNXkzWBFxL2U9vZxHt
	4reF9JRyIrcqGIGqoO9HHhLHx7FYoGg==
X-Google-Smtp-Source: AGHT+IHL8Y/Afmg8BMaIABW2OsP120706ECYQ2ae8h0bzHWzIooaa/9fHqpG0LMryLm30Zwc9j3mOA==
X-Received: by 2002:a05:6000:40c7:b0:391:2c67:798f with SMTP id ffacd0b85a97d-39cba982830mr12892926f8f.41.1744125798534;
        Tue, 08 Apr 2025 08:23:18 -0700 (PDT)
Message-ID: <d21969b3-a48c-4d80-a8a9-5d04b67ed90f@suse.com>
Date: Tue, 8 Apr 2025 17:23:17 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 2/3] x86/domain: add helpers to simplify emulation
 flags management
To: dmkhn@proton.me, xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, julien@xen.org,
 michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org,
 dmukhin@ford.com
References: <20250401005224.461325-1-dmukhin@ford.com>
 <20250401005224.461325-3-dmukhin@ford.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20250401005224.461325-3-dmukhin@ford.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 01.04.2025 02:52, dmkhn@proton.me wrote:
> From: Denis Mukhin <dmukhin@ford.com>
> 
> Introduce XEN_X86_EMU_BASELINE and XEN_X86_EMU_OPTIONAL to simplify
> d->arch.emulation_flags management in the code.

If the simplification is limited to ...

> --- 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_BASELINE;
>  #elif defined (__arm__) || defined(__aarch64__)
>      config.arch.gic_version = XEN_DOMCTL_CONFIG_GIC_NATIVE;
>  #else

... just this, I'm not convinced that's worth introducing yet two more items
into the namespace.

> --- a/xen/include/public/arch-x86/xen.h
> +++ b/xen/include/public/arch-x86/xen.h
> @@ -290,6 +290,13 @@ struct xen_arch_domainconfig {
>                                       XEN_X86_EMU_VGA | XEN_X86_EMU_IOMMU |   \
>                                       XEN_X86_EMU_PIT | XEN_X86_EMU_USE_PIRQ |\
>                                       XEN_X86_EMU_VPCI)
> +
> +#define XEN_X86_EMU_OPTIONAL        (XEN_X86_EMU_VPCI | \
> +                                     XEN_X86_EMU_USE_PIRQ)
> +
> +#define XEN_X86_EMU_BASELINE        (XEN_X86_EMU_ALL & ~XEN_X86_EMU_OPTIONAL)
> +
> +    /* Hardware emulation flags. */
>      uint32_t emulation_flags;

The comment isn't quite accurate here (and hence perhaps also not in the
earlier patch): XEN_X86_EMU_USE_PIRQ isn't exactly about emulation of anything
hardware-ish.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 08 15:29:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 15:29:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.942412.1341571 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2AtG-0002fG-OK; Tue, 08 Apr 2025 15:29:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 942412.1341571; Tue, 08 Apr 2025 15:29: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 1u2AtG-0002f9-Lb; Tue, 08 Apr 2025 15:29:30 +0000
Received: by outflank-mailman (input) for mailman id 942412;
 Tue, 08 Apr 2025 15:29: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=23Rw=W2=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1u2AtF-0002f3-QE
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 15:29:30 +0000
Received: from NAM02-BN1-obe.outbound.protection.outlook.com
 (mail-bn1nam02on20604.outbound.protection.outlook.com
 [2a01:111:f403:2407::604])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3f9111ba-148e-11f0-9ffb-bf95429c2676;
 Tue, 08 Apr 2025 17:29:24 +0200 (CEST)
Received: from MW4PR12MB7334.namprd12.prod.outlook.com (2603:10b6:303:219::21)
 by CY8PR12MB7414.namprd12.prod.outlook.com (2603:10b6:930:5e::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.29; Tue, 8 Apr
 2025 15:29:20 +0000
Received: from MW4PR12MB7334.namprd12.prod.outlook.com
 ([fe80::2e77:557:17d5:86f8]) by MW4PR12MB7334.namprd12.prod.outlook.com
 ([fe80::2e77:557:17d5:86f8%3]) with mapi id 15.20.8606.028; Tue, 8 Apr 2025
 15:29:20 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3f9111ba-148e-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=CSU7sAyOfXTfX7gzTfn/1JO6EptI8KNpeNSLrI8xgUhHyUmxhxxUAnh3oTU4PJLZFlAnJpQl+la6rZpGqdw1Ls/M1FerOeYagDtgrWW3D6wPANTsH4OFXRNymF7uCt0n35Dlw4fuHsIpAQBsfyYn1BdfR1XpDjyEQRZUVIFUp7b7l9/GFYrGF4dDoL5Md4tCuEogctfN68vYLLxJfbJh0XJEeqif6vA7/5/OGPHYOiGqyTAMssyRBjVkULg8tNdePuw0g5p/kMxCVlWW6ysDRFnHJQteUGe8gaPV+O8yEaJhDyfln69gyhxAGeb3sb39k5jfTmkBh7EtKHHK/ikX7Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Mz1x03g7J3AAtX3SVyV3AwR03UOOS9GXgPQq7Yazlq8=;
 b=ZvzsK2NU+moukN5vGXY41nkhCXgSt/SCG4xS2jy4nHosOSA+NiZpgK39YZBOywoqVGXYYkfK1eIsIs2qRt3IDe0FfzkbiU7kj5hA/a4NwIFFzMqlZ1pnk9rwkBBpWcI3xXhnv/OX1ma0gLF+7yzqpvLXULRZjV3Ed5Ps/7WA/ayMy5WP2SMWB2x/g/svAMRGsUsEVlVWgNEY8lLVIZb3K2r5HWKNXLeOYXZdl4JxxgCTg9hNKcPsvgbVJPEsnZMm2M1shl2HZKRVSyv/dUTmMUSbyG/Frf9RMFvMxt/xx/jqWDNXpaIA1Aev/eGckkaU3DLLzIaNgUTH4oyrtYH0xw==
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=Mz1x03g7J3AAtX3SVyV3AwR03UOOS9GXgPQq7Yazlq8=;
 b=HBm+BN/maBlA54cqnD7GGvbrhZPNKZeUNXBXjLkTjjK3fdzWH0Ow1T4MotB6G+5/YV5H8ZA225tiZtO9ZRqXM4J3gIbmmPw4gOZoZA3922cm5ha33RxxclBMuAXPyG8tw4JC/O8W7ytGI9/A6v4548I1r+r4TcFpJxbnWMO0K9I=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <3deb75be-3f7e-436b-835f-3efd3fd2a391@amd.com>
Date: Tue, 8 Apr 2025 16:29:15 +0100
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 7/7] arm/mpu: Implement setup_mpu for MPU system
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>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <Bertrand.Marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <20250407091430.2342709-1-luca.fancellu@arm.com>
 <20250407091430.2342709-8-luca.fancellu@arm.com>
 <d6c12013-235a-405f-a87f-529648d6f340@amd.com>
 <7591A04F-8BEF-4FE7-A895-90E5DA0D9936@arm.com>
From: Ayan Kumar Halder <ayankuma@amd.com>
In-Reply-To: <7591A04F-8BEF-4FE7-A895-90E5DA0D9936@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0317.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:197::16) To MW4PR12MB7334.namprd12.prod.outlook.com
 (2603:10b6:303:219::21)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MW4PR12MB7334:EE_|CY8PR12MB7414:EE_
X-MS-Office365-Filtering-Correlation-Id: 5f05db94-16d6-4dc7-bd0e-08dd76b221d5
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?L0pZWFVRUDBlbHRzVWd0Mlc5cktoYUo5U3BCUVJDbFpvMzVtY2hLcElNVGFM?=
 =?utf-8?B?SHFUaFFGbmh6YWxWN2lubEgwKzB1KzZpQnV6NndwdWFuRWI5UTF5a2pDMnU5?=
 =?utf-8?B?a3FMdFpkczdpMVprN1llNnRjZDlPeURXTHdSQVpORUY5ZlJJY212bmgzd2ta?=
 =?utf-8?B?aGF0K0xaR1JSeGJyMktoSUJzaTVOUDBoSGJGWDJHZTlIUloyZjNSVmptY3ow?=
 =?utf-8?B?QVN2QnRqOHJySnRuaUFjMlZPRTlSdDJlbFJqMGdTbFVUN0gyOElrWVhpcHVy?=
 =?utf-8?B?eUEySXM4VWlXQkZpd09CWU9EemNteG1BNEM0amxST2I0ODRLUVNXUnROTExr?=
 =?utf-8?B?RjJwYW5PTXBrb0dJRHhTRURQYUNxazhRUjEvN3NMTTlmRU1XRUxlY3ozT0VB?=
 =?utf-8?B?YUxvYjBTc3FDMWMvMEFpVXlsMDB3Kyt5NzduWkJOelpBdG4vRVB2R2Vmb25R?=
 =?utf-8?B?TE9hc0dFeVRDRWo3UGY0UXhJaXljVmE2M1UxRDgvWEFJSE5OelFFRDRicjJD?=
 =?utf-8?B?OGRhRlBDMTY0KytsajJaT3A2dXFXdU9qZURzTC93alZQV0ZrbUpWMXdGcGp2?=
 =?utf-8?B?RUQ4UUljcVRuUno3RWErYWUrV3BIT0p5Qno3d05PQzVPY0FWS1h1Z3dtN3Vj?=
 =?utf-8?B?ejhacVNaQ3BIRHZNSi9nbi9wSWEveU1ua1UveU8reGhFaXBIblFnajd4MVNH?=
 =?utf-8?B?RVlSR0xRaHBHTCs2TzVHMkw3R01VUHhaVmpZYWxiUUI5RHV6OVhKK09sSk1Y?=
 =?utf-8?B?eDNqNWQyS1Y5cm11VmplV25VOWxtYWYxR0w1ajYzT3E3bElTZUJxMnFhcmZx?=
 =?utf-8?B?Ris4anRiMXRnUzdnVWhXb2tMdjRWMVNmVjdDZ1BBelFtN1ROYlZmRlY5dUtI?=
 =?utf-8?B?U08zVjd2M3FpczhVNHdtcDF5SUdFYzlvb08xNEFYb3VNbm13RG90MnRPSlVt?=
 =?utf-8?B?MkYrU2RMYmtnWGt4K2loUnhjOVNtWFRsQVNQWUZpT1UvNVRyVHloZnFsRDMv?=
 =?utf-8?B?WGVmQUd6cjNIVG5pK2NpNEllVndTSHZIK1EybmNlY3Zkbld1dWRUZ0M2c2w4?=
 =?utf-8?B?Z3BrZDZuTHR5WHpVaEp5ZDZ1MElMODR2RU5hcmpKdC9ZVWUrVHNzNmp1OFRC?=
 =?utf-8?B?S2dCL3BLUllkZ2NnbDZteDZOUHJYYk1YSDZTYy9DREk3cDNSRGR5NWNXdk90?=
 =?utf-8?B?VDJvT2ZBZGU5THJSM3VrZmlZVE0rRVdEdmdTQ2pleGxJUEI3ZW8va0JkVUdQ?=
 =?utf-8?B?ci85Z1VibnU5OU5rYk9EOXRiNUIzblZmT1RCVVZzZ0h4MlRFZkgvL1BhTzBZ?=
 =?utf-8?B?enlINjRRY3EwRlh1YTVVbVMyQTZaMHh2aDIwRUF3cVAzUTNCcmhaZ0tTeXoz?=
 =?utf-8?B?RU5tUjRycHdaTEZBa1hvQWVUQldQbEZHcGdDV1RuOFVjTEtkMjFqNHVOcUlq?=
 =?utf-8?B?ejZDcTNFZFNZUUVZSi9yQ2ZWbXZzMWhBQkdWNXZUc1cxY2NFTWxtc1ljSjN0?=
 =?utf-8?B?NW4wRkVXcE9tcms2OHdFS1lWRzFRWFJNM1FtaEF1MDZuMXVqNnJtUHF2SW52?=
 =?utf-8?B?dFBoVk1WK3hTY3k2b241endqTFJMWVhGQk85d0J4OTBKODcwcEhOTkFiMERp?=
 =?utf-8?B?R2Nqb0pnTTNSRng4czRhTE5GYkJIZ1JQSGFiU0x6Tk1zUUc0cm5mblp0dlBx?=
 =?utf-8?B?cmh4M0dKTUp6aFpZcmREay84Nzdza2JqRW5Wdi94NGQ4RHhDSThyaVZMaXlj?=
 =?utf-8?B?V0JXbTg1RW9IVUhkNTlvOEx3TkdYbFQ0UksydEM0MGRySzIrNVV4SjNFSkVu?=
 =?utf-8?B?RTJ1dk1jWkIrYUNjWUZoMWFWRDJWbXZJNnJ2RnFra2FlbHVmMk5mRklPOXpz?=
 =?utf-8?Q?97VKsbIkUdZzJ?=
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)(376014)(366016)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?OTE3RUoyN3UrMFpscHBNbzZJQjVpejluRnM1SWhXYUJSRzIrdThJYXVSZlQw?=
 =?utf-8?B?MDVMQkFZRThTTG8vSEpBZEVDdGM1WG9JK2YvRVhpeXNya1BydCsvOC9wMm13?=
 =?utf-8?B?QTVFdEw2Q2VaZ015eXR6NThRcXgxRnlqNFBxZFR2TndEUS81blVlU0l4UW1t?=
 =?utf-8?B?WktxdTl6Z3hWcjIxbXlRYmVRQzdveWVGK1l4UFlsUTNsSnNrQVFCajY2eUpC?=
 =?utf-8?B?ZGRkdzZnbE42bTdndExvVkJFTG9wc01ySlRZNXk4a2xoVDFkT0c5d0NrZkJo?=
 =?utf-8?B?U1VCa0F1Z2R2YjRCVWlrbDY3Y3VGZUF2Y3I1Vk9BRHdhOFlsRlgxUThKbnIy?=
 =?utf-8?B?cmJQZzRIZDNPR3QrNUd6SEtMQnNyZnUrK0U2Uzlybnp3M2tlWFl0RFIrNllo?=
 =?utf-8?B?dzVadElhREswdVF6Sml6dDVNK1lNbG1ZbFh2SzNHbUhOYmpCZXgwWFQ3dDlZ?=
 =?utf-8?B?a1VYVVZnZnpDUU9nQnlOTm5iVmhZSEdFd1lsMm10VndNSE53YzFobFVXenFW?=
 =?utf-8?B?VnZPNmxBemFUalRSdFpFRXJlVjVtaGdsSzNNTDR1WFdubzlPNkJXT1hZb21H?=
 =?utf-8?B?YzlYUzFpR0RsVzlzTUtRdlQyanhOMTI1ejZ2Z2NLOGpzU1pFdEtUM3UvRGpq?=
 =?utf-8?B?N1dZRUpkTVd3NEZtZGJiMnVNLzkrcGQxV0lZUktrTU96czg1L05yUkgrMDVK?=
 =?utf-8?B?TThXV0RSVGlFM00xWEpMd1BRQlA1UGMvaVl3WFBobVZBdTcxMGUzSGJrbzV5?=
 =?utf-8?B?cFNIQm9Ed281Q1o3THdiR2FLMjcweEJCRnJaOHhvaC9rWGtHbXZhWGdnaDZL?=
 =?utf-8?B?cTVjNkg0ZkluSWRObGtLZHF5ZUZlenlZN0N5eVR2SkVTcmlFVXJ2b2JrbUNM?=
 =?utf-8?B?YUorOGR5MDl0RWJwNGlIa0ZoazVwZ3pXT05wd3ZabWpOOHY5cXVNMHFIQ2ZI?=
 =?utf-8?B?NGh2T0xNOXdqWlFKeDQvUjhYZGxnR0Q5WlRPblJFS3UxWjkzMm1WSUN5bGtk?=
 =?utf-8?B?WVJoWXNKdXpzL2h0Q3hSTjhUWm9LVUhreFUrdHEreUZRaE9FU0pNbUtVN3Nv?=
 =?utf-8?B?bUtReDdFYXdtdHRyRlIxSlIwT29GbDB2VlVxamxpRjcrSVpqSUtudjlOY081?=
 =?utf-8?B?SDRKbnQ0RU4rK1BZL0E3YjdqQW5BbzlPL1FCVDNkNFN2YitKYmE1WnFYb3hS?=
 =?utf-8?B?V1RWYXExb040SDNsalY5dGpXbENSMkx1QlE4ME5SQ2V5UjVpbDZNWXE5WE9o?=
 =?utf-8?B?WHRVVmdGQkJEYlJFYzdrNi9UTW12SmRjd21ycE9renJ3NlNtWG1yamxsVTAz?=
 =?utf-8?B?YnZpWWNlUllib3lWTThJRS8zVWtmSkEwZkxRUUFocG9PazhzanBCaWVsa01n?=
 =?utf-8?B?THA4UkZjc2czR1g5QzA0UUxhTGJ6eS9zZmtYL2trVjBxbitneUU1aE9kVktW?=
 =?utf-8?B?U0ExemVXaXRUR2FYRTFXZ25PdUFDa1Nsa0lIN1NjbUtiUEhuV0ZCdDhiUisy?=
 =?utf-8?B?SXZuUXlLVXZTVTJKNGVXYUVDZUZYMWtjR0hUMGtCRGNPVUUzRmhucXhPTnFB?=
 =?utf-8?B?NklsTlhQUjBud01tRGtYRU56WTJkRVVFZjc2akJPc2U1dndybG8rYm1HNUtC?=
 =?utf-8?B?Y2RZcVNKeFhCdFRmWEVDUVRBdFY1N2diMVhzbWRJL3FtUFJGcjVpQ1pBR2hQ?=
 =?utf-8?B?RlpXbTc3aTdSa3ZqTWYveTZ6alNCTEVTUWpTa2lYR2IvWm1pZzVoc0dxMlVy?=
 =?utf-8?B?cEpuWWpqUUZlVGhFY1BsSU9Ed1lSSStzRW0xaml5MGVndjVDSW1YRlM1aVJJ?=
 =?utf-8?B?eWY2cjk0WklyTitibGlCYXhvL2FVdC9KQXdxYTQyS1VUL0M4QjRQWEQxSVRT?=
 =?utf-8?B?QllZOWJvTmRBaEF3dXVraHp5c0hvUERyR2FRZmJWZDcvM1gyQjVHck9BNkpN?=
 =?utf-8?B?Mzd0dSt6WFF2T3l3MlhUR3p4cG1JTjlOQW15dE5ocGxUS09UNVhnSW5jbHda?=
 =?utf-8?B?cE0xR3BLS0F4QThGVlJEczJsdGwyak5pdkVXRENtNFBPaEFtNlg3SlhyVXM2?=
 =?utf-8?B?SGZrNi82UUdURFVkSWdzenFFMTRQTDF2NHBzWjVrbkd1QkM5T0l0S1NjUHZU?=
 =?utf-8?Q?7yi2AKjMqNbyBnyBhmID2/ed/?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 5f05db94-16d6-4dc7-bd0e-08dd76b221d5
X-MS-Exchange-CrossTenant-AuthSource: MW4PR12MB7334.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Apr 2025 15:29:20.3507
 (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: QoyCrWl497IVomO/1y8ijnoFCCmQJh7N9yKeMCzBKmZmMbbIU5wMRsoNllyJJ44c5/2rurYKRuebF/KD1WlIbQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR12MB7414


On 08/04/2025 14:51, Luca Fancellu wrote:
> Hi Ayan,
Hi Luca,
>
>> On 8 Apr 2025, at 14:32, Ayan Kumar Halder <ayankuma@amd.com> wrote:
>>
>> Hi Luca,
>>
>> On 07/04/2025 10:14, Luca Fancellu 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.
>>>
>>>
>>> Implement the function setup_mpu that will logically track the MPU
>>> regions defined by hardware registers, start introducing data
>>> structures and functions to track the status from the C world.
>>>
>>> The xen_mpumap_mask bitmap is used to track which MPU region are
>>> enabled at runtime.
>>>
>>> This function is called from setup_mm() which full implementation
>>> will be provided in a later stage.
>>>
>>> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
>>> ---
>>>   xen/arch/arm/include/asm/arm64/mpu.h |  2 ++
>>>   xen/arch/arm/mpu/mm.c                | 49 +++++++++++++++++++++++++++-
>>>   2 files changed, 50 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/xen/arch/arm/include/asm/arm64/mpu.h b/xen/arch/arm/include/asm/arm64/mpu.h
>>> index 7cf8d355a1af..ff5a957bf085 100644
>>> --- a/xen/arch/arm/include/asm/arm64/mpu.h
>>> +++ b/xen/arch/arm/include/asm/arm64/mpu.h
>>> @@ -6,6 +6,8 @@
>>>   #ifndef __ARM_ARM64_MPU_H__
>>>   #define __ARM_ARM64_MPU_H__
>>>
>>> +#define PRENR_MASK  GENMASK(31, 0)
>> This can be moved to xen/arch/arm/include/asm/mpu.h
> I can see from the Arm® Cortex®-R52 Processor TRM, r1p1, 3.3.46 Hyp MPU Region Enable Register,
> that HPRENR can have 16/20/24 enabled bits, the rest is RAZ.

Yes, I see that. However, if you see ARM DDI 0568A.c ID110520 ArmV8-R32 
supplement

E2.2.4 HPRENR

Provides direct access to the HPRLAR.EN bits for EL2 MPU regions 0 to 31.

AFAIU, the maximum number of EL2 MPU regions will always be 32. This 
doesnot seem to be configurable.

The R52 TRM isn't clear when it says "{no,16,20,24} EL2-controlled MPU 
regions implemented" as there is no register to set/check how many EL2 
MPU regions are implemented.

So, I suggest we can keep this in the common file for now.

- Ayan

>
> Because of that I’ve put that here, maybe you should implement it in the arm32 part since you have this
> difference from Arm64.
>
> Cheers,
> Luca
>


From xen-devel-bounces@lists.xenproject.org Tue Apr 08 15:34:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 15:34:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.942428.1341582 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2Ay9-0005W3-Bs; Tue, 08 Apr 2025 15:34:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 942428.1341582; Tue, 08 Apr 2025 15:34: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 1u2Ay9-0005Vw-8J; Tue, 08 Apr 2025 15:34:33 +0000
Received: by outflank-mailman (input) for mailman id 942428;
 Tue, 08 Apr 2025 15:34: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=xdvb=W2=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u2Ay7-0005Vq-JH
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 15:34:31 +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 f653d47d-148e-11f0-9eaa-5ba50f476ded;
 Tue, 08 Apr 2025 17:34:30 +0200 (CEST)
Received: by mail-wr1-x432.google.com with SMTP id
 ffacd0b85a97d-3912d2c89ecso5056044f8f.2
 for <xen-devel@lists.xenproject.org>; Tue, 08 Apr 2025 08:34:30 -0700 (PDT)
Received: from [10.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-39c30096b9csm15313643f8f.13.2025.04.08.08.34.28
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 08 Apr 2025 08:34:28 -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: f653d47d-148e-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744126469; x=1744731269; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Uz/rCBnwXJYbr2MvKvt2kktYZIy2sqCVQ2YeGXdS1AE=;
        b=AmWLBMnhTC96O9TocNF0aJzi9ZInejlzPypCu0Fm22u2UMQ1v4sx7P5rmFvJdZRS7H
         Ca8zL05FYP3hd5rW0/myo6+x9tGGBPohJO+5ju03C9aGfhQcvHDF0Jlh433sLTDSNyil
         nEJh2sSOYndGl3LG8O0tVea9IuNcm6qBPBqXRSRjBlhFKCC7Gr73lzcn+2/ypPJN8WMT
         NM2gHMXVjnW19qJKh64ZwsSFUVXc9Uc5BGqCgS59VaGlgZ5YwaqWsJtID09De54dtiV4
         CCd0x5WG0I38gULnU2MV2/aiYPcvbAzj5gck6I4/dUOG4e0OmmFi0eSLh/QBIMJR7/aX
         kf/w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744126469; x=1744731269;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Uz/rCBnwXJYbr2MvKvt2kktYZIy2sqCVQ2YeGXdS1AE=;
        b=tXKb6iDlVfaWzGR0Q7wo971qy2G/V9XLC0tbVn32AMbuDx8K3vOLH7xMI+MyvdKAEK
         Umk/dEimAJ4VB5Lid9iygPJ3IimQTzQeEXZxgdG1WnDxHvpVoQMpteK3JKmLHpad9f52
         WLLth/7FcWlJC5Z3asR92YchLfTKmiWiEVUO8ihTStZMBlkGHRZu9hui/UJLuyBo//DL
         ndzDFJQZGgwKn7cV/YJL56r8z+7oqDUuL+U2iHQKSaB6YAjZ+pNAldFMvs5GplPMfXVA
         XrTUg9bdroMUnS0hQIU6V/0baisDCYmaXBwfKNszbW8NKoy32i3nV/xHuz6AgLs9xv9A
         3q/g==
X-Forwarded-Encrypted: i=1; AJvYcCUxHXDGfC9g3CvPBRFgXRtsYZZrYddMWtT30FPfcOuEpKlb4tVg3AbCKJxo8bq37DUxUiUlD6g6/VE=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz8kyOdHgHdRFTznCrURSXDhZ28T7PX5fY3iC6zBXVHOvFCHhF7
	Sf35le2L8OFSgPGG5lneEtarJjTwqGknfDg5jdrIZJPajANwlkKibmKmXBCsHA==
X-Gm-Gg: ASbGncsTT+87tp2hWdT8kCqgTGE3I8BSQ1rd+C4LRYMcr3Y+r4A69gGQEP8ALocBgSa
	p45vBrQeBRvDLWVTmPLjMvOUHj4RUO426Qc726zuUkx0R78GZmxBCCtWvDoxkY+qTSUZoVBxuAP
	+ocFYnSmK+roQcG2ONjpt8QZVYHaY1KaVyno+wWdal/W500luSRQDBnTLdI5ndkEOICjJAnf0kO
	7FRuZOiMFPFGcWv9IwPblBjsrdbqDSBX8OkVyGBqwx7y8DX5IFsEocTtNA2JKR+87/gao1GfKlO
	Mgn9tuU/JuHy6pvhxR9DowVpUYYo6IScxc6aCqY8XS1Qc9wrRCgiYTGG5n8hrPB6lABkNqKYVHz
	X6cL79s/+/vrPeiSxTlqK9mHEVnGDXg==
X-Google-Smtp-Source: AGHT+IFW4D+PRg06ucIfKfTQVYuqU3MI4mQp0SCm2PeFU3Enh/M9Cn1eqWR0VUb1Wr6JHIOyrC1/ng==
X-Received: by 2002:a05:6000:1844:b0:391:12a5:3c95 with SMTP id ffacd0b85a97d-39d0de255d4mr14022516f8f.22.1744126469355;
        Tue, 08 Apr 2025 08:34:29 -0700 (PDT)
Message-ID: <c14efb79-54c1-438d-813e-15f635813ccc@suse.com>
Date: Tue, 8 Apr 2025 17:34:27 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 3/3] xen/domain: rewrite emulation_flags_ok()
To: dmkhn@proton.me
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, julien@xen.org,
 michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org,
 dmukhin@ford.com, xen-devel@lists.xenproject.org
References: <20250401005224.461325-1-dmukhin@ford.com>
 <20250401005224.461325-4-dmukhin@ford.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20250401005224.461325-4-dmukhin@ford.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 01.04.2025 02:52, dmkhn@proton.me wrote:
> From: Denis Mukhin <dmukhin@ford.com>
> 
> Rewrite emulation_flags_ok() using XEN_X86_EMU_{OPTIONAL,BASELINE}
> to simplify future modifications.
> 
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> ---
> Came in the context of NS16550 emulator v3 series:
>   https://lore.kernel.org/xen-devel/20250103-vuart-ns8250-v3-v1-0-c5d36b31d66c@ford.com/
> 
> After modifying emulation_flags_ok() with a new NS16550 vUART
> configuration switch passed from the toolstack for the HVM
> case, I decided to look into how to improve emulation_flags_ok().
> ---
>  xen/arch/x86/domain.c | 29 +++++++++++------------------
>  1 file changed, 11 insertions(+), 18 deletions(-)

There is a readability win, yes.

> --- a/xen/arch/x86/domain.c
> +++ b/xen/arch/x86/domain.c
> @@ -750,25 +750,18 @@ static bool emulation_flags_ok(const struct domain *d, uint32_t emflags)
>      BUILD_BUG_ON(X86_EMU_ALL != XEN_X86_EMU_ALL);
>  #endif
>  
> -    if ( is_hvm_domain(d) )
> -    {
> -        if ( is_hardware_domain(d) &&
> -             emflags != (X86_EMU_VPCI | X86_EMU_LAPIC | X86_EMU_IOAPIC) )
> -            return false;
> -        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)) &&
> -             emflags != X86_EMU_LAPIC )
> -            return false;
> -    }
> -    else if ( emflags != 0 && emflags != X86_EMU_PIT )
> -    {
> -        /* PV or classic PVH. */
> -        return false;
> -    }
> +    /* PV or classic PVH */
> +    if ( !is_hvm_domain(d) )
> +        return emflags == 0 || emflags == XEN_X86_EMU_PIT;

What's "classic PVH" here? This got to be PVHv1, which is dead. As you touch /
move such a comment, you want to adjust it so it's at least no longer stale.

> -    return true;
> +    /* HVM */
> +    if ( is_hardware_domain(d) )
> +        return emflags == (XEN_X86_EMU_LAPIC |
> +                           XEN_X86_EMU_IOAPIC |
> +                           XEN_X86_EMU_VPCI);
> +
> +    return (emflags & ~XEN_X86_EMU_OPTIONAL) == XEN_X86_EMU_BASELINE ||
> +            emflags == XEN_X86_EMU_LAPIC;

There was a comment about X86_EMU_USE_PIRQ being optional, which you've lost
together with (only) that (i.e. not at the same time including vPCI) optionality.

Furthermore you move from X86_EMU_* namespace to XEN_X86_EMU_* one without even
mentioning that (and the reason to do so) in the description. Aiui the function
deliberately uses the internal names, not the public interface ones.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 08 15:38:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 15:38:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.942441.1341592 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2B21-000663-QS; Tue, 08 Apr 2025 15:38:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 942441.1341592; Tue, 08 Apr 2025 15:38: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 1u2B21-00065w-NZ; Tue, 08 Apr 2025 15:38:33 +0000
Received: by outflank-mailman (input) for mailman id 942441;
 Tue, 08 Apr 2025 15:38: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=jpS5=W2=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1u2B20-00065p-Ef
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 15:38:32 +0000
Received: from PA4PR04CU001.outbound.protection.outlook.com
 (mail-francecentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20a::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8584dd4e-148f-11f0-9ffb-bf95429c2676;
 Tue, 08 Apr 2025 17:38:30 +0200 (CEST)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by PA4PR03MB7469.eurprd03.prod.outlook.com
 (2603:10a6:102:105::12) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.35; Tue, 8 Apr
 2025 15:38:25 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e%5]) with mapi id 15.20.8606.033; Tue, 8 Apr 2025
 15:38: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: 8584dd4e-148f-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=IR8wM8Wa87nrD8Ek0gEU8yq3habFvj8rOzQm2Xhv4ht2wH3gBlkF85NNxZuo5Y4+mQfFR8EEebCZyqRsYmBOAQ7ah6UJ4lXp5vkTLkG4tzPk+eNoD9lAEZKjj0yTf4xkeD+uV2atscny8Zh3u8ax+tJl4PGIYHyHr4Ocnjjx43jrLuciSQIzggUfQNsN2dIgDgebpmT/UYrw/Dhv98zykUOmlxxU3Q7gcN9xJKWXhLdcMZacSn0ubVK8JlrLhtQ73yJ+7e0hzjX1tkQv2op7py5z7/EIWJ31kyLLL87WekEWUCytKxsGtCP16CfKFbKCjn6pouqBFagrISfqhKpz/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=7urgFuUcv9ekelw8kTvRAD/6Qy+f/RzS8svHaMji6CM=;
 b=lU34akrX/jE4CmSz+uSz6p/F3T/+yw9w4oE0QUwm/DEgtih9qDDrcnDrXsdpA/W5OD7UView80LSXfWtm04Av6dfFgoYYqy2Eh/2H1aEhGlZjSp2QDUzaL6fhP0sAzJ/jdJfpFsUBjsn7J3/iSZpsG/mbZqK5U2tAFWivDnTiWV6YlT8kqjiBDnpW8r6BvIDus3H0NEqcY2vf2B9qkqQUvUqLYssW3A668zZjbbkCCu9Cw2qFwlle3fdxHlHKUD8R9pdCzIGiEsKb5rPEpM5q2Fxxul0Tl/nZ6zu9YBcSmLTaViMne8Ex3P3OVSDQwPqFSDA7c4s0fBBLTFU+5ea8w==
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=7urgFuUcv9ekelw8kTvRAD/6Qy+f/RzS8svHaMji6CM=;
 b=Z1hNR7CXou49EIZPDAoq0biTPnYR/OrL09CCFejACvRgWPT9uEIajxIlxUUVh2QFB3gqBAe69D8oAk+hKOeElplWGvnJOC+HERmSrlro9VM4JMfifVA0Lx5TmTQDxSzsVi7yzan/+eZhvqOOmfIDJr2Ucjq6seBHfHC37xtk82v9i2cUwwNifM7cwdBuYaJvbtXY5kq3+NW0yZKxT75E158JHk7Tobvr0B2cYYbasZHsUUJB/K7+vfoobt+kAO6+pLWJ/liHDbb34Z8BPC8crhRwPG66112BdLzMBtg38XTJ/XWGKRh0C7xLFWn4A5g/7kh1gUCFutnP1cQngsOeYw==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Julien
 Grall <julien@xen.org>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v4 2/2] xen: debug: gcov: add condition coverage support
Thread-Topic: [PATCH v4 2/2] xen: debug: gcov: add condition coverage support
Thread-Index: AQHbp9yW2b5GBLlgDka417bnQFIpfQ==
Date: Tue, 8 Apr 2025 15:38:24 +0000
Message-ID: <8734eifyts.fsf@epam.com>
References: <20250407164608.2558071-1-volodymyr_babchuk@epam.com>
	<20250407164608.2558071-3-volodymyr_babchuk@epam.com>
	<abf11b31-0bf0-4add-a49a-17d7723c74f2@suse.com>
In-Reply-To: <abf11b31-0bf0-4add-a49a-17d7723c74f2@suse.com> (Jan Beulich's
	message of "Tue, 8 Apr 2025 08:34:44 +0200")
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_|PA4PR03MB7469:EE_
x-ms-office365-filtering-correlation-id: 4579a674-47c4-40c6-d919-08dd76b36677
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?0KimHD/adE5LpCIzxKfdO+bny5IB8q/Iqf8wbOaj/KtwwyVIjWL7SlFCY6?=
 =?iso-8859-1?Q?MCaJecEmMCHry4QXLwepEOJLLjzbbzaDT8lSG2mbyHJyV8jQq5e3Xo4x8O?=
 =?iso-8859-1?Q?wSH3NUKxxbS55LyQlQkh6ACDuKRFxtED9KVaj6LrGiaFVti0+9iRk63yfW?=
 =?iso-8859-1?Q?vTW5Sw23TDY6arzjdz2R6fhQRVBRW3WRkN9AcVdgFHRjjnhtG2+yD7z69v?=
 =?iso-8859-1?Q?ZQxFsu2Vl8dQlgZDehqS700qaCgk2SQsGL84gs8fEivLMljzmpmR2JjrJL?=
 =?iso-8859-1?Q?AdgKn15bTpI2BEY5W/HiKZa23vlZP6n8wMmU9k6EN5sK9SRDEsy2nAbevG?=
 =?iso-8859-1?Q?g3oVibnR96zUNRslyskyqcNzHGPhqrGzkRAMouHL4aMJq52m0AuPPyTnQr?=
 =?iso-8859-1?Q?F39CHNQWJK3fHKHbBl1wG2hXLaPnDbBag7V1FjkKjkc1GxtMgvGxetDs66?=
 =?iso-8859-1?Q?dFAGYlzRmS9fNzTYaW0DoGiNdQ2Rvr5hirt30SOvV6WjuZfq1kgBO/d/9Y?=
 =?iso-8859-1?Q?m4mZvEtgOfjF7IBUTjqWD6V92QnCaVDQCtTHNY481hobuzttwTCrx4pCwy?=
 =?iso-8859-1?Q?k5jb14JNzUpCi6TMT4wMTSfsEycv/YAu8YXRRYvVJ/LvscWcdc2VW52txC?=
 =?iso-8859-1?Q?Wowh+LRmnu1dJ67BgT+kd+R4U7k/t7JLt5RrRKmN1I0ScQxCOJuY3CKXih?=
 =?iso-8859-1?Q?ATb+3M/O2Z682v4pyZhg5MvtTFNK4aGuEc46kuJnSsDuM20lRVQpGqU9lr?=
 =?iso-8859-1?Q?88ervNYudnKNblwWm3Yec4wwEUuioyl0b0eSDCSORsmgGZcn3/9x8NkzJ5?=
 =?iso-8859-1?Q?jfc7eJnY7ECveIV9kH0txT+lBKn1kokSYGMFusjb+/4CqbCJzUY8hCiw5W?=
 =?iso-8859-1?Q?Rk0hfL4YJo5K539LbXUZIVEQ7z7PtA/dhJaM7YtyDnIAQGzq7cwpFw+q16?=
 =?iso-8859-1?Q?GrtQJR60+IxHGCm8mEZyDKdzDfg2lbCqIav1RY1JW07kWofMjVhUOrBrTN?=
 =?iso-8859-1?Q?b+ZJvPCIfEaCgF+Wqa++0Fq7dzoPMCHgNxaFr1D7vqxd66bPENWTJuefqW?=
 =?iso-8859-1?Q?sHdR24FNfwvc7MvAqRBQOX6Z1lMWC8Xmq6VBmfU1Bp4GBLp8sVeTs1cxyf?=
 =?iso-8859-1?Q?98L/bYuIPtq2WuluTkBUe9hFQtFQbNz98Di9tGHeYVo4q1d+MRT0pHHcbX?=
 =?iso-8859-1?Q?m/Vg0ZlLVFtBn2TzfEBoJBrVHKn36Dsct3upcGXen5/BL17/8OilOx5D37?=
 =?iso-8859-1?Q?73copU9TXwz8PqvoApKaWERI+DumW3rAkPTEgpX8GOGuR5dZ19rklGyC4B?=
 =?iso-8859-1?Q?Bc+oEB4zmEJrnfS41kfKPbH8UJFq1VyDQRbjMQkzj7+fNEve3POXAoRWqi?=
 =?iso-8859-1?Q?G5KJHrh2TAN8xarCICH3UFqRgX4hBDr383PYGlCr87eqKKNJ7c1KKOcl6D?=
 =?iso-8859-1?Q?d/zbR9A8SVoGmTlGDNlmRHrBtXYIX52AduURgkHs2EtE+IRk/IFlRW+48Z?=
 =?iso-8859-1?Q?oKRALYubBp8h0JlLinqJsT/+f6wZY68YFN9/1v6nFZ+Q=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)(376014)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?leoacIC/bOEQjL/h7LjGUtIqFwIMRiMmhJNCDa9pdYpFhSKPMMqbcGEu+w?=
 =?iso-8859-1?Q?+su+naDXRSZdq7m2J3gAe0kkwPZmIfGFOsTpiwO1jbQqDwi8UGBucQsGju?=
 =?iso-8859-1?Q?GG55ICA4+Ceunz4aGtjasO0KUNVoDUR+08Va/ay0Og8bN7eFLX4nsj/Feg?=
 =?iso-8859-1?Q?LZH5yeTpurfR1GZUQvdrIGN1e0gvV00WX/Xf7XtnfLHGXvZ8mGJu8NoONM?=
 =?iso-8859-1?Q?gVPvydu3GwmJti9qZgYRH3IcFFVgYC2CuTDwjhKxT/kM8BL364FAhjcbcp?=
 =?iso-8859-1?Q?7pDi68p3eWBzGddhw+cMTzsS07QHfUlTTg+sYd5Eo/xneMowTFts+ImqjL?=
 =?iso-8859-1?Q?I0RkWAOO4aK5IksKzWCN1Y69QNqecF4YZ3XfBsW0Kh0aUj4U19CxzVMjGP?=
 =?iso-8859-1?Q?uGtHInUop3R7SaEtD7C50Pun033T8/mpU0G/oTTXFtb4Nz3y6YByBNPQYE?=
 =?iso-8859-1?Q?wO1zlpv7nt5RAer9FxXodwWBaV0A47cKEr2UuLe1E7VOo7m3aZm3QXvpLk?=
 =?iso-8859-1?Q?v1KYDhQPHojB6y0Gl5MCg1weCAEzk5KGheVuWOlLA8E6yUp4W6bDIXlBJc?=
 =?iso-8859-1?Q?sBLUw6o4ubQKwNXYDPKyddo/l01MyAskGveWJE+N5wRtdIyS+hlN8bi7zZ?=
 =?iso-8859-1?Q?KeNh273eRTqid1Z3mQn0XpPfl5i6dMzD91gwOSO3SUcSpFFOw27f5r63YV?=
 =?iso-8859-1?Q?xV29FDEkUgNR0cEFvRADdFn//d61ov0EvpWta5g10Exf3ht/0abpYOPdKr?=
 =?iso-8859-1?Q?Dq3sDbPDBk33xzw8FEmFTOHUFsWsRVABLk0CAL+sHIJJFM255AnuSQ1OpN?=
 =?iso-8859-1?Q?UifwNwfwbT4OHrhBPrMQtGEH0Lf9lrNYT9olTkhQ51dWbMT6g+JheG7pqi?=
 =?iso-8859-1?Q?bPAsF7QfYu2cGYS3YAztbzLlLgta035aF0f3JrKiCgATVwpd4543OJ/bQO?=
 =?iso-8859-1?Q?dal9fYCO59J9IEEZboeYbgm2NHR37LEvWdkbdXmosHOh6JU1mjIC9HrXri?=
 =?iso-8859-1?Q?r4hsz0casV9MIMV7BTVzO50nIkXnLMcZTgJb9vkGvw1CEtkvSwxH4EpLof?=
 =?iso-8859-1?Q?48vK4K7f7yEltFRv89movypfFJNrohGtbrdQRrZFCns8sYCGuAZsHP7v+H?=
 =?iso-8859-1?Q?XN/slVOSQ2zZTAJN4c7HWGER8FNhI6lBVhtqpa6Bb11/GfF4P6018zqN+j?=
 =?iso-8859-1?Q?62n101NH6Ok0qzF2NoKlaVHiJ0x/WF1y/ngxUJcGFufdEFfZQVWqIbensc?=
 =?iso-8859-1?Q?6PwcrEGgiTOff5ui40DiqFHeP1YffF+WnWZxRjQyl0EP0Fta0iNNw5z/ae?=
 =?iso-8859-1?Q?60v00RcAEWkeip7VCtmoz1Mq1LW+N2bLeFpKPeJd8Fwjhbfu2m7+xPv+zt?=
 =?iso-8859-1?Q?wezfZ/gVk90Ww5j1z/G8uAkUNS8lQVLiib7P6BZsMYFJbKWRiLSzQUENry?=
 =?iso-8859-1?Q?/Qa7um3T093IW/T95CJ7OiYi91tvxIbSoXXv1vLKeJUha471rdivUxZkMK?=
 =?iso-8859-1?Q?/ck5DJdEiK0NrRDq9BtTXdu/NDu7rtUvexDpW5jN46xvHEWiTof//sDnBQ?=
 =?iso-8859-1?Q?VP12syS8Okv2tvTvQpTTbfxpVMjZTcNAPBKNX/5RsjQryGCl8jM29YT8hx?=
 =?iso-8859-1?Q?xN7U6qvKTjf8GVV+UHHIBGOtOicH+n8lwT5GN9pxttV41PNJmB+gsFfA?=
 =?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: 4579a674-47c4-40c6-d919-08dd76b36677
X-MS-Exchange-CrossTenant-originalarrivaltime: 08 Apr 2025 15:38:24.6705
 (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: X6lcYCI4NtByTrdROdvxTklO6stQFr56b+3VNpRylLP0VcZqcn/1cef5rlFKxIWe4P5THYYYPvGoO2R5KQeM/eN4x736HyUs124PViDU49A=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR03MB7469


Hi Jan,

Jan Beulich <jbeulich@suse.com> writes:

> On 07.04.2025 18:46, Volodymyr Babchuk wrote:
>> --- a/xen/Rules.mk
>> +++ b/xen/Rules.mk
>> @@ -31,6 +31,7 @@ CFLAGS-y :=3D
>>  AFLAGS-y :=3D
>>  nocov-y :=3D
>>  noubsan-y :=3D
>> +cov-flags-y :=3D
>
> Personally I would have put this slightly higher up, at least ahead of th=
e two
> no*-y. Thinking of it only now (sorry), also maybe cov-cflags-y might be
> slightly better a name?

Okay, I'll do this in the next version.

>
>> @@ -133,19 +134,18 @@ $(filter %.init.o,$(obj-y) $(obj-bin-y) $(extra-y)=
): CFLAGS-y +=3D -DINIT_SECTIONS
>> =20
>>  non-init-objects =3D $(filter-out %.init.o, $(obj-y) $(obj-bin-y) $(ext=
ra-y))
>> =20
>> -ifeq ($(CONFIG_COVERAGE),y)
>>  ifeq ($(CONFIG_CC_IS_CLANG),y)
>> -    COV_FLAGS :=3D -fprofile-instr-generate -fcoverage-mapping
>> +    cov-flags-$(CONFIG_COVERAGE) :=3D -fprofile-instr-generate -fcovera=
ge-mapping
>>  else
>> -    COV_FLAGS :=3D -fprofile-arcs -ftest-coverage
>> +    cov-flags-$(CONFIG_COVERAGE) :=3D -fprofile-arcs -ftest-coverage
>> +    cov-flags-$(CONFIG_CONDITION_COVERAGE) +=3D -fcondition-coverage
>
> Why's this inside the remaining ifeq(,)? Surely there's at least a chance=
 for
> Clang to also support the option at some point?

Yes, but Clang uses different option: -fcoverage-mcdc. I see no sense in
adding it right now, as Xen does not support version 10 of llvm
profiling format, in which they added MC/DC support.

--=20
WBR, Volodymyr=


From xen-devel-bounces@lists.xenproject.org Tue Apr 08 15:40:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 15:40:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.942453.1341603 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2B4F-0007mL-7e; Tue, 08 Apr 2025 15:40:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 942453.1341603; Tue, 08 Apr 2025 15:40:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2B4F-0007mE-3j; Tue, 08 Apr 2025 15:40:51 +0000
Received: by outflank-mailman (input) for mailman id 942453;
 Tue, 08 Apr 2025 15:40: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=xdvb=W2=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u2B4D-0007m3-RP
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 15:40:49 +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 d58ecbb6-148f-11f0-9ffb-bf95429c2676;
 Tue, 08 Apr 2025 17:40:44 +0200 (CEST)
Received: by mail-wr1-x435.google.com with SMTP id
 ffacd0b85a97d-39c1efc4577so3159833f8f.0
 for <xen-devel@lists.xenproject.org>; Tue, 08 Apr 2025 08:40:44 -0700 (PDT)
Received: from [10.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-39c301b72d5sm15064301f8f.47.2025.04.08.08.40.43
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 08 Apr 2025 08:40:43 -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: d58ecbb6-148f-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744126844; x=1744731644; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=lktp0SVhv6T4bZkfaCjU+MiKyH31xZ7UmCeKpYNo/84=;
        b=Oglkjw1Y3Fmwpyz4SjX/PH0+JN9eWlZdfle7He4lg5sYTvHWQBD/c7nrH1Ld+bI2a/
         nl++riOGdyNjeoqdZ6tCp6UnRTehrn/2DYTiysmcmf1zR4eJ0Ro/Sa8N6csQU/hAEWv3
         IdVwSUtestAFIwqvYsomfCvK2qJX7ZerjivWVNWiFmnXZimbYfkjj0MLZ0p+pq0A8EWj
         1x/yM5XO2nIjCsJmbfjsou5myFJJ2Nfj+k/i8Gij0j7LNl7z7vTFaxYyHNdxz7zZ/szb
         NydrvV4mmGLNw6JZ1j+4WZRuxeUeJGP4ex/72NNc9OwRMTaztDSDLVcs3nwOsln2JG6l
         6b/A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744126844; x=1744731644;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=lktp0SVhv6T4bZkfaCjU+MiKyH31xZ7UmCeKpYNo/84=;
        b=kFey8UKdHyW7A+BKoNQMj/XAicWbbshgcRUI2BsfNHsBdyAzELm0aU+tKfOWmk3Hzo
         s0g/uQSXfwlOEP3WlvrArY5rajY8acroT1+7/4u5VONCKf4YkvVT5hwzyBFYQCiybfEo
         y20PuzAGx4GcYjUdkCWOkGRvTMSbE76wC5TKpeMhUmBwXFBZ1fDCSOTgmK+FFh+Klge2
         +N1LeOV1xjS7yXNuTSvR+L86uxoU7huhrBMqGUdyhWG4OwPrMwfJ3qcDxbZeEDD79ay8
         BfaBo4DXOfpc5XpyYzgZyMN4LouwhFZfozK1993aR0kH38dpEEHxahOeM7jOmIzXX2Er
         DALQ==
X-Forwarded-Encrypted: i=1; AJvYcCUgFyH40t+gCDAXF5qgC2imwtkt4Q1ATBY38YansI/wMp5VLBwwlrbeRMRVCNsGvpqKjqwLAUcRftM=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw2F1bATG9iwse9AqOuNaiKR+3N2bDupkDzMOsesV+fOHdjBOVi
	hgi75O0Q5X1hRszgVTBNCvqalM5x+4fOPcPKTm5VnZMwwgyvwXWjJ4aPrzuwQw==
X-Gm-Gg: ASbGncusQS9HCxq+ihhLU8iPQuLqu+xBwhoM3EEnzsmO2TEh5omvd0rxwqEiiO58+9g
	XJr1P+yQ+mbtqcHnI9+QatCu4jBLMHHurPP34tUFmB4vt3bpK0f2i4l+EbQaoWrR4pbmXEQkRa3
	x6ArzMqcxFW5KGGPuorvmmpUkMHV0VVWLpjkKKYIhAa5D7xYREMhhcE7RxljIfJglnrM2cijTZ6
	Jl+gUpYaUo4FJwdRGauH9aKgLTEFkKqZ4vMVvEK7+hllXFJODnRaj+1ifxO8D4Tu92/IXOH17/O
	87RuCvt5LRIq8BpvJIrINS2OLhwWhOgPyCW0T0r37SJT7Y7h6Y6fnmC7MTLoP8fxyldoVGOaXZa
	YxG53msi/PYtNzrfNQAK9RZP9GIICSw==
X-Google-Smtp-Source: AGHT+IF39j5Q4NtjQ8M47ptLlKOyOsP4Vq2B054nqi5SiZF2GeVyma2DUp6GrV09iOizMaVj2SzdYg==
X-Received: by 2002:a05:6000:2509:b0:39c:30d8:3290 with SMTP id ffacd0b85a97d-39cb35b196bmr12784115f8f.7.1744126843910;
        Tue, 08 Apr 2025 08:40:43 -0700 (PDT)
Message-ID: <550f2eab-cf33-4e80-8991-b913afa81e69@suse.com>
Date: Tue, 8 Apr 2025 17:40:42 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH v2] xen: add libafl-qemu fuzzer support
To: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Dario Faggioli <dfaggioli@suse.com>, Juergen Gross <jgross@suse.com>,
 George Dunlap <gwd@xenproject.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20250315003544.1101488-1-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: <20250315003544.1101488-1-volodymyr_babchuk@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 15.03.2025 01:36, 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 XTF-based test-case(s). 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.
> 
> In v2:
> 
>  - Moved to XTF-based test harness
>  - Severely reworked the fuzzer itself. Now it has user-friendly
>    command-line interface and is capable of running in CI, as it now
>    returns an appropriate error code if any faults were found
>  - Also I found, debugged and fixed a nasty bug in LibAFL-QEMU fork,
>    which crashed the whole fuzzer.
> 
> Right now the fuzzer is lockated at Xen Troops repo:
> 
> https://github.com/xen-troops/xen-fuzzer-rs
> 
> But I believe that it is ready to be included into
> gitlab.com/xen-project/
> 
> XTF-based harness is at
> 
> https://gitlab.com/vlad.babchuk/xtf/-/tree/mr_libafl
> 
> and there is corresponding MR for including it into
> 
> https://gitlab.com/xen-project/fusa/xtf/-/tree/xtf-arm
> 
> So, to sum up. All components are basically ready for initial
> inclusion. There will be smaller, integration-related changes
> later. For example - we will need to update URLs for various
> components after they are moved to correct places.
> ---
>  docs/hypervisor-guide/fuzzing.rst           |  90 ++++++++++++
>  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, 405 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

This looks to be about Arm only, which would be nice if that was visible
right from the subject.

Also, nit: New files' names are to use dashes in favor of underscores.

> --- 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
> +
>      set_bit(_VPF_blocked, &v->pause_flags);
>      v->poll_evtchn = -1;
>      set_bit(v->vcpu_id, d->poll_mask);
> @@ -1904,12 +1912,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;
>      }
> @@ -1924,6 +1938,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;

If I was a scheduler maintainer, I'd likely object to this kind of #ifdef-ary.

> --- 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:

It's not as bad here and ...

> --- a/xen/drivers/char/console.c
> +++ b/xen/drivers/char/console.c
> @@ -40,6 +40,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;
> @@ -1289,6 +1292,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

... here, but still.

Also, pre-processor directives want their # to live at the beginning of the
line.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 08 15:43:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 15:43:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.942472.1341612 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2B6N-000163-N4; Tue, 08 Apr 2025 15:43:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 942472.1341612; Tue, 08 Apr 2025 15: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 1u2B6N-00015w-JS; Tue, 08 Apr 2025 15:43:03 +0000
Received: by outflank-mailman (input) for mailman id 942472;
 Tue, 08 Apr 2025 15: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=xdvb=W2=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u2B6M-00015q-SN
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 15:43:02 +0000
Received: from mail-wm1-x32a.google.com (mail-wm1-x32a.google.com
 [2a00:1450:4864:20::32a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 27651bb6-1490-11f0-9eaa-5ba50f476ded;
 Tue, 08 Apr 2025 17:43:01 +0200 (CEST)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-43cfdc2c8c9so33635475e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 08 Apr 2025 08:43:01 -0700 (PDT)
Received: from [10.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-39c30096964sm15346356f8f.15.2025.04.08.08.43.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 08 Apr 2025 08:43: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: 27651bb6-1490-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744126981; x=1744731781; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=QwuDHEKmIPuqjzKqtJCqsylf3l0M1F2UZNCBafrouec=;
        b=KHQSZoFyJ0CBTIvo8boERcdolMWm5HjVdO2wCSxg7CsM1UO8bjNWTFGS4rmsUCy39U
         9ahcMbLqoZBwVCW/P+aGEomvC8lD96uRtqnTat30l+shUXcD0MyFkDBe3mkyMBSTsrJc
         GoctXaYR6FmX7FtGGTLywnniSogSZ/6pTHq65+ivaBkwgtuAKtdlW3Y2QLVsgSTkuVY4
         VgySq7Pn+D7QaQN2R1BwGOUwKfGfTSajqKkPcb3k3A6SDleXuTgq9bUbnlBNcpV5ovyH
         XyzMHZMG0KoFBAknU1/K+2NfWo5smMggfLzvyBM9yvIP4nzm6zNYHl8xZj/uOsgPq4An
         TeGQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744126981; x=1744731781;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=QwuDHEKmIPuqjzKqtJCqsylf3l0M1F2UZNCBafrouec=;
        b=MkO1vY2UOgRYJrmL1Uc7GnJ3RpSWApZekblDCDcZkn+OMvWGljLQeOum++TZRDUwde
         3G4c4ewHUSo1GvrhFJa96eoz4gDvYCZ6cDVR3e2NXEpu34tIpqCJdlvbOwU6ySGdE1t/
         1/Iwlr7Nnjmc/+xyliic2xpTs+75oYl9RI6IVb1+l+5duWqay8CujA2h6cmCFBkPNsPR
         P7yIuoFm9PpCS3oiI46QzeK+9V3gy1XhvQENkqYs6bO8/NdypM+GN7sUBdj224+r9qdH
         J+cNNyAvlLZoZCV/jFE6mZY+wsRfl8rL9bhoBnNFPi8/JIQ8rQFKxytgeG72ojqRczS6
         LFJA==
X-Forwarded-Encrypted: i=1; AJvYcCV++BVYkWKcCpCiiLnms167MRYd8gfs+bjegv1Nsokkn2Rzn+HouuElLv5etpH9lHf/4Ej+FGUEWRg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzUQUR6yHN/CEupSV56be16mRDeBxqvgfYmlEAYZkmMR5S1ywG5
	U3rPsWAYpXqUdR6tWFAZcDy7t3iqYszLRJzaZJdNa+RCxg1YjWm+0JMumMFGOw==
X-Gm-Gg: ASbGncv8jxL0H8YQD4KW5K3s6eEniY8raTW1lINkH/3c9Oiz3And8zUuXAYA5q1Eb50
	CUtvejoFBqLdngjxQ27VyiPOk4kqcuomTaWju9eH+A2CqUP77XEP5ml7dMpCVzOz5FPLSnLr7Xl
	AMlv8GLZuB6qBNdO627H1TvX4+1X2ThUP5hkf0drpnTADVB0brCKIqlsh0qFTVlj5dizO5GgJLA
	74E2MrITyaPQsJD59kDoZ1UshTNAK8tkH9StZZUaWTjH2c+cE8mxRG8n6q5ZXII/y9AxStBN8Of
	Wh5F3gSYRLyUo817qxZb3OJ0CtvAmEOe7C3J638PwEV6JPyy4WxFsvZ1TNpnve55h5uES9dtEc9
	Zt2WnmDbEAq1aBT/cQGjqak2YP0nD+A==
X-Google-Smtp-Source: AGHT+IFmhkCS0cXbG2o7KRjaWZwL754XSVlcXujbAhcS/LKLlfQB4PT5caYGiVdD4hCFhAdix+7kJA==
X-Received: by 2002:a05:600c:5814:b0:43d:cc9:b09d with SMTP id 5b1f17b1804b1-43ee0b1a288mr77080205e9.20.1744126981255;
        Tue, 08 Apr 2025 08:43:01 -0700 (PDT)
Message-ID: <5617f7da-e7ed-46a0-b77c-f8372833be4a@suse.com>
Date: Tue, 8 Apr 2025 17:43:00 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 2/2] xen: debug: gcov: add condition coverage support
To: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20250407164608.2558071-1-volodymyr_babchuk@epam.com>
 <20250407164608.2558071-3-volodymyr_babchuk@epam.com>
 <abf11b31-0bf0-4add-a49a-17d7723c74f2@suse.com> <8734eifyts.fsf@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: <8734eifyts.fsf@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.04.2025 17:38, Volodymyr Babchuk wrote:
> Jan Beulich <jbeulich@suse.com> writes:
>> On 07.04.2025 18:46, Volodymyr Babchuk wrote:
>>> @@ -133,19 +134,18 @@ $(filter %.init.o,$(obj-y) $(obj-bin-y) $(extra-y)): CFLAGS-y += -DINIT_SECTIONS
>>>  
>>>  non-init-objects = $(filter-out %.init.o, $(obj-y) $(obj-bin-y) $(extra-y))
>>>  
>>> -ifeq ($(CONFIG_COVERAGE),y)
>>>  ifeq ($(CONFIG_CC_IS_CLANG),y)
>>> -    COV_FLAGS := -fprofile-instr-generate -fcoverage-mapping
>>> +    cov-flags-$(CONFIG_COVERAGE) := -fprofile-instr-generate -fcoverage-mapping
>>>  else
>>> -    COV_FLAGS := -fprofile-arcs -ftest-coverage
>>> +    cov-flags-$(CONFIG_COVERAGE) := -fprofile-arcs -ftest-coverage
>>> +    cov-flags-$(CONFIG_CONDITION_COVERAGE) += -fcondition-coverage
>>
>> Why's this inside the remaining ifeq(,)? Surely there's at least a chance for
>> Clang to also support the option at some point?
> 
> Yes, but Clang uses different option: -fcoverage-mcdc. I see no sense in
> adding it right now, as Xen does not support version 10 of llvm
> profiling format, in which they added MC/DC support.

Okay, but then can you amend "Clang is not supported right now" in the description
by another half sentence clarifying why that is?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 08 15:54:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 15:54:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.942488.1341622 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2BHH-00042j-La; Tue, 08 Apr 2025 15:54:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 942488.1341622; Tue, 08 Apr 2025 15:54:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2BHH-00042c-Ik; Tue, 08 Apr 2025 15:54:19 +0000
Received: by outflank-mailman (input) for mailman id 942488;
 Tue, 08 Apr 2025 15:54: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=wQ/n=W2=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1u2BHG-00042W-Df
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 15:54:18 +0000
Received: from NAM12-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam12on2062d.outbound.protection.outlook.com
 [2a01:111:f403:200a::62d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b8e9196e-1491-11f0-9eaa-5ba50f476ded;
 Tue, 08 Apr 2025 17:54:17 +0200 (CEST)
Received: from PH0P220CA0004.NAMP220.PROD.OUTLOOK.COM (2603:10b6:510:d3::22)
 by IA0PR12MB7578.namprd12.prod.outlook.com (2603:10b6:208:43d::16) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.44; Tue, 8 Apr
 2025 15:54:09 +0000
Received: from CY4PEPF0000E9D9.namprd05.prod.outlook.com
 (2603:10b6:510:d3:cafe::6b) by PH0P220CA0004.outlook.office365.com
 (2603:10b6:510:d3::22) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.19 via Frontend Transport; Tue,
 8 Apr 2025 15:54:09 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 CY4PEPF0000E9D9.mail.protection.outlook.com (10.167.241.72) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8632.13 via Frontend Transport; Tue, 8 Apr 2025 15:54:09 +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, 8 Apr
 2025 10:54:08 -0500
Received: from [172.25.231.87] (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, 8 Apr 2025 10:54:07 -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: b8e9196e-1491-11f0-9eaa-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=EALQOqQAfkg8HltfE43i4aQLDwxF6FQGI/9HSoDqwrjAaAno5Bslu2haNNg/OO9MqQMz7N1Rqkz9/cNgJ2CKpFFSRometW7/71P5PUHXDyS6/RK46yBhpGUaWj7SrrIzDydDoB5n2Mf6G54mAAatEJxyk/CI5B4nndzY+UQ6WVWtaH7ezb+6cxn82PbZmA4saqNmh+ys8On/0N/Jbr/EC3YrAqpNfnVRBogaqlzerCrN5V1iIIcHn6djWv7K+5cueGYGMUhTCvRzZ7p2qZaHTuy/juR0YuqpJ+B+a0ZAJ76/ePzwT1GGJly0yQHc+YrhGb3Kdmyd4Ynw90uo/T8LMA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=oimtqNgEpt+EfMUq0op+T3qOiCU7mQDxhP5+FthfH7k=;
 b=StA2farIfsSLrzV5LLLT0rkp2sjaxmW/8Sfg+21LzBlPPGIfV9ZkzZXTYcNEpCeI/wqqXB7KCK0oYMcKFe2sQswIbrLRnDUG9hyWNapYJqsfPddOq6pbAL5dXu4lUgidXm4QUphxbZND8N+h0zHfDn1qEmRsXTBASQdQghvU5aT4wsZskIhI8XAYIPE4SAhDqYKwJ9j8kdT0jWDV17wxKujWdQlDFVQCwWLOQseaCcNGd173If5lRnbG60uOvJ9sBTj7c7S23CwuI4+CtK4zIaKLgYNuLnKqBNesTLH+NyU8v6CRPDk5VohsMd0ZwtPlWo0v2FZXMM3C0hfSBowl0A==
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=oimtqNgEpt+EfMUq0op+T3qOiCU7mQDxhP5+FthfH7k=;
 b=dJ6pMfRSZgNc00HKPOqUEj/g6Arl719YW5pl89dTtx005LZlgURt6VgsnJdmvpAtUU/HltLzOkGIO1uJmVrsQGBjQas94wDKOJr6/Yr0bU3VYAXqd1bKB8xe+FFqPuZo8/3riij3NokSYrx2SNKRUd2Bo3swA0mGGPckDSDas2Y=
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: <4c06dd95-a4f9-47bd-8249-de7ad5e81a52@amd.com>
Date: Tue, 8 Apr 2025 11:54:04 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] tools/libxl: Skip invalid IRQs
To: Jan Beulich <jbeulich@suse.com>
CC: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
	<marmarek@invisiblethingslab.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>,
	<xen-devel@lists.xenproject.org>
References: <20250407192641.83554-1-jason.andryuk@amd.com>
 <3ddc038e-9792-4eb7-a1bc-3ce0cf3fe33f@suse.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <3ddc038e-9792-4eb7-a1bc-3ce0cf3fe33f@suse.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: CY4PEPF0000E9D9:EE_|IA0PR12MB7578:EE_
X-MS-Office365-Filtering-Correlation-Id: 5c299b66-fe6c-4d0f-56ed-08dd76b59975
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?LzVBeVlyWXlsWWlyRmMrcmxHYkdPRi9EMTJzcGFxMFN1ODAxdnhuZkhBeXBZ?=
 =?utf-8?B?ak0rS3A0b2JqRlFhZTNLTDd6MkV5ekVWcmVEeVo5c3N3N2psSkFyMlhBM0lm?=
 =?utf-8?B?UldzcTJBSkczN05hb3Z5VVA3c0toM0RnQ3RaY2tNNnJ2RGE2Y1Z4QWhWQlox?=
 =?utf-8?B?bGdZakw0YTlBb09scE9vSHN6NTh1bnp0SUFabysyMk8vTFR2clRHaStHQUJ4?=
 =?utf-8?B?a0sxN3Z6QmRSZmFkdlhWU3JlbzlQR2s3WnZvczBGTzB5OXRBN0lTb0VVRith?=
 =?utf-8?B?RFE3UDFYQ3UwNVdlcmlPVUhRTWNxTFdHbE92cjN6T0VST01zUnc1cUNrRzRm?=
 =?utf-8?B?VzNXYWtISk1YL1doTkxCcWhKN3RFYlpJY3FtMFdwdDdrRzZFazBZQkdzUXVH?=
 =?utf-8?B?eEZOQzZWZ1J2N0ZpVXNrY011NHE4NHA2NlhTcWxueEVtQlhoY3VhdzFIdjFv?=
 =?utf-8?B?ekpiKy9BejBEcitrUG10eUgvcnUzNmlsR3ZLeHVLOEErZGtUMys2ZTlEUHhS?=
 =?utf-8?B?Mi85TlZwaThXSHlENmR3TWtZeEgyUUk2TytRdnIvRnFLUTFMZXd4TW1Sd0VQ?=
 =?utf-8?B?SEJ6bzFWS29MZ2xyOFZOVnlTT3grNlpZMlh3emQxWTQ3R2twOVhkUENGVDE1?=
 =?utf-8?B?RnV6NENQdDZ2RFBFUTRYQXVMdXdGQWN0NDBUTUVBb3hlVThxSm9WcytQWndQ?=
 =?utf-8?B?Tkt2Mmo3ZVo5WVRsLzh0Q2xleFFTUFVLR1lKVCs3TnR3cVFvb2ZDMVpjY0Zi?=
 =?utf-8?B?c0xud1hRbGJKaDdCeXVVVGpkM0UrSTMyNi9HckdGZ2piUXR3MGs5dTFXemZL?=
 =?utf-8?B?WmRJcGQ2eHRTRTByMUkxWkJDdXQxK0JLbHRNMW90a0xPdnBkczNqSWp2ZlNp?=
 =?utf-8?B?MWxtRnpWZC9RU1RJQjl1ZExXcEUxUHVERDBEL2ErU1pyWGo0NEJEcEdsaG5Z?=
 =?utf-8?B?NVp3UGdKa2Z6R0ZMT2VLcVpmVWpoL1ZCbFBucGJqRmJTRGUvZTZKMnEweG4v?=
 =?utf-8?B?SW1Gb2MvS2VUc0NwS0FydUhNak03U0MwSm9ZUktoYzQzWWx4ZkVsUU8yS0JZ?=
 =?utf-8?B?UzV2VkUwWnBIOEtVbUJNSC9VQW90NjNZN0dGOHB2RXozNEdzb3E4OGVoN3ZV?=
 =?utf-8?B?alplZGlMeWNHYXhTYi9kL2l6azdSZTVINkY2OFJCUUZpZytmcSs3eDEzSWFI?=
 =?utf-8?B?Njdpdkgrc1gyd0JOa3VDZnFWUktXQXVjYkhjVTIrWEovWWNCRk53NEdydFlu?=
 =?utf-8?B?Nlc2b0hpZ1pCUjhkV1YwNjdFekdiREhMeVlyaFJGTll2elNROEQ5OUhudkNW?=
 =?utf-8?B?RGlURGRoRDM5aEtubW9vbzdoR2hyRHFJcDhOZDdMZVJxNENibllpckxnK2pB?=
 =?utf-8?B?bTRkUFNEaXhoOEs1Q2orYk9pbkdkVTdmUUpkV0FDZ0VCUWd6TmtlVzcvaEJw?=
 =?utf-8?B?dUVkemJJUFllNVg5c3VVK004eWhHYklXUFVyZ0dZNE1DaUtuR3VWeHpsREI2?=
 =?utf-8?B?ajNBWjRKb0tkeTRSdTRENi9VdXRnZUNzUy9sWEd4ejlheCtEc01FL1VXS1ZT?=
 =?utf-8?B?eHJSTUJvWjNtbXhOZ0ZaQ3VYZTdLMVVXVm4ydWxxVGpmN2JnRlMvZGVFYkZ0?=
 =?utf-8?B?OXp3U05JdTN4aTJLdjR6R09VektVdDZwYTZQVGJ0N2ZieUVhcHZyVm4za2hO?=
 =?utf-8?B?S0FSN1hKd3UyYkhsVXFSaFZ6bVhJVU5nOXBRamNnRnhXMEE2NFUrUlZFQ1dk?=
 =?utf-8?B?SWZBbzFOS1lPQnI3QXdQeDdlYzB0QVZWZXVsVk9nN0hVdC9VclR0dnB6VXN0?=
 =?utf-8?B?bGxZZE9GZlkvcHBNTFNCVzNWeU9ZN1FEZkpYeUtzb3h5N2NLN3NXMG5iNUpz?=
 =?utf-8?B?Qm9IOFBPNU1zb0RzRFY3b0hrUmlMZDB2MnQrYy82RnY0SlExSnpZRklIWGY0?=
 =?utf-8?B?Zlh1RldkMXhrYytWamFPZGMzMzJ4Q0N2Wk1hUzluTEtncS9FVGJWNnRtWXJK?=
 =?utf-8?B?ZzJqcWRYa1d6TDBRMUJGTEN0YjVZSWhOQjVMSklqdmkvZlVnUGI4eUFHMFRB?=
 =?utf-8?Q?rRtf8j?=
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)(82310400026)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Apr 2025 15:54:09.0678
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 5c299b66-fe6c-4d0f-56ed-08dd76b59975
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:
	CY4PEPF0000E9D9.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PR12MB7578

On 2025-04-08 02:24, Jan Beulich wrote:
> On 07.04.2025 21:26, Jason Andryuk wrote:
>> A PCI device's irq field is an 8-bit number.  A value of 0xff indicates
>> that the device is not connected.
> 
> Nit: "... that the device IRQ is not ..."
> 
>>   Additionally, the Linux ACPI code can
>> convert these 0xff values to IRQ_NOTCONNECTED(0x80000000) because
>> "0x80000000 is guaranteed to be outside the available range of
>> interrupts and easy to distinguish from other possible incorrect
>> values."  When the hypercall to assign that IRQ fails, device
>> passthrough as a whole fails.
>>
>> Add checking for a valid IRQ and skip the IRQ handling for PCI devices
>> outside that range.  This allows for passthrough of devices without
>> legacy IRQs.
> 
> Which makes the code here even more Linux-centric, I guess.

The actual check is limited to the 8-bit value which is not Linux-specific.

> A couple of related notes, yet most not directly affecting this patch:
> 
>> --- a/tools/libs/light/libxl_pci.c
>> +++ b/tools/libs/light/libxl_pci.c
>> @@ -26,6 +26,9 @@
>>   #define PCI_BDF_XSPATH         "%04x-%02x-%02x-%01x"
>>   #define PCI_PT_QDEV_ID         "pci-pt-%02x_%02x.%01x"
>>   
>> +/* PCI Interrupt Line is an 8-bit value, 0xff means disconnected. */
>> +#define PCI_IRQ_LINE_LIMIT     0xff
>> +
>>   static unsigned int pci_encode_bdf(libxl_device_pci *pci)
>>   {
>>       unsigned int value;
>> @@ -1495,7 +1498,8 @@ static void pci_add_dm_done(libxl__egc *egc,
>>               LOGED(ERROR, domainid, "Couldn't open %s", sysfs_path);
>>               goto out_no_irq;
>>           }
>> -        if ((fscanf(f, "%u", &irq) == 1) && irq) {
>> +        if ((fscanf(f, "%u", &irq) == 1) &&
> 
> For this, "irq" ought to be unsigned int. Same below.
> 
>> +            irq > 0 && irq < PCI_IRQ_LINE_LIMIT) {
> 
> Not sure about this in libxl's style, but it feels inconsistent to have
> parentheses around one relational expression but then not around the
> others. Personally I'd drop them all, but the alternative clearly is to
> add missing ones.

I'll drop them, and then it all fits on one line.

>>               r = xc_physdev_map_pirq(ctx->xch, domid, irq, &irq);
>>               if (r < 0) {
>>                   LOGED(ERROR, domainid, "xc_physdev_map_pirq irq=%d (error=%d)",
>> @@ -2257,7 +2261,8 @@ skip_bar:
>>               goto skip_legacy_irq;
>>           }
>>   
>> -        if ((fscanf(f, "%u", &irq) == 1) && irq) {
>> +        if ((fscanf(f, "%u", &irq) == 1) &&
>> +            irq > 0 && irq < PCI_IRQ_LINE_LIMIT) {
>>               rc = xc_physdev_unmap_pirq(ctx->xch, domid, irq);
>>               if (rc < 0) {
>>                   /*
> 
> This is doing things in sensible order: unmap, then remove permissions.
> The map side though adds permissions only after mapping. That's kind of
> necessary because the value to pass into xc_domain_irq_permission() is
> an output of xc_physdev_map_pirq(). Yet then the latter should have
> failed for lack of permissions, unless permissions were granted another
> way? In which case what's the point of granting permissions here?

Permissions are checked later when binding - XEN_DOMCTL_bind_pt_irq or 
EVTCHNOP_bind_pirq.  But I agree the ordering is a unusual.

Regards,
Jason


From xen-devel-bounces@lists.xenproject.org Tue Apr 08 15:57:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 15:57:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.942501.1341652 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2BKK-00052S-LZ; Tue, 08 Apr 2025 15:57:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 942501.1341652; Tue, 08 Apr 2025 15:57: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 1u2BKK-00052G-Hu; Tue, 08 Apr 2025 15:57:28 +0000
Received: by outflank-mailman (input) for mailman id 942501;
 Tue, 08 Apr 2025 15:57: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=f4Vq=W2=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1u2BKK-0004Yr-2j
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 15:57:28 +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 2b5b3c4e-1492-11f0-9eaa-5ba50f476ded;
 Tue, 08 Apr 2025 17:57:27 +0200 (CEST)
Received: by mail-ed1-x52d.google.com with SMTP id
 4fb4d7f45d1cf-5e61da95244so9512345a12.2
 for <xen-devel@lists.xenproject.org>; Tue, 08 Apr 2025 08:57:27 -0700 (PDT)
Received: from fedora.. (user-109-243-64-225.play-internet.pl.
 [109.243.64.225]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-ac7c018556bsm929934566b.156.2025.04.08.08.57.25
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 08 Apr 2025 08:57:26 -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: 2b5b3c4e-1492-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1744127847; x=1744732647; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=kU7wsZPZG6Jt+l3y2KLJ3T9BEs2rZOcJCuT+jz/Pauw=;
        b=ZVDls60PEf4GVo5x4srEf145NjbuN9QKyztGQ+LY2HZ3Zt0SE70Yhwf7E6WuwL12QP
         UugRYQNwBaek2d2F+6l5fAB3iac7d2IxxeH6at8zt+wa8ia+9EuHo5zo0zG57TyVN70l
         4KywEZYJ0GwGvfUYqFaK9cKJb8Yb+FEX6TKeT1Y7fN9me1xC78H6961OvBmKUHGOA3SK
         m42yuw9iHV4frwLR0fRqhN3eLmiCRuWZ3thra3IgKoQW56c6RhwMX+AU/D6EYeI2UWli
         0XbXXCbvDQCfK/wIYBRVlxhQnC0Emf8EsD5bmODnR+B3aeHxjZ36JPL6R3u8vMgXdAuY
         bXUg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744127847; x=1744732647;
        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=kU7wsZPZG6Jt+l3y2KLJ3T9BEs2rZOcJCuT+jz/Pauw=;
        b=bVgqyH894xaOI6V+pRONqx7wWJhG/r6Cv+3LQ/nWIpzqq0k57rFITz7MuQSQWnewbr
         bcziUHW2d9idAofv0GJPmoi7Zymesy6FsApUlYJfD+wW6/yWflAViIOEp2PhOnIwR06g
         wUrKqCt33n1g9SouQneVkTtlHgRYe7K4Eg5a+aA08k5UopK1BTtNT557vX/CLeZzp91q
         bavUOdkKaQBYr7Waau9z+f2ttYrH5zrebMPg4SH0RVz2Lf8kJCwrDT0ZcHmuxivMzQH1
         cFrFnBFkLoXRU8PleFhd+saJ24cxOl55vU+dSFqsqGCa72rOWGvLAsX2c1GUSArbMoZk
         sn+w==
X-Gm-Message-State: AOJu0YyMn+AsJXQwnEGfnC0Mr67A2GQzVotYyTYqA61sZJSrYRyyYCUk
	UN9TR9Ogvf2VwDy2cBvTZG7NCj+OEuSCWZsfz8WPolw6iDsTK2qR4oVd5w==
X-Gm-Gg: ASbGncs154T7lWE7CICHpx1otucimFSbyUFSthVd7hDeuTx+C5nJoAke/Sq2QKlX6RF
	zecDkHhl4i8iOwiDfAVp/0mupWyY3Lzawl1RBJP08vTTLSTI3N1dDLxHrEWypaocTz3J1lfqYxm
	hezNo/UDVMh5Sc+NgoMYZRhl6strIMx6SPbIUWOsrQ8KJgapLHMr67wtLGCqj/LQF5hzgp7irLM
	2o066xtP8OEnrpBjrhUpFgkahHjUleUqgjg7HRk1jrannJ0Fn/jM5uBkzwnO5qkLkMPLxah+MfP
	tYVls6A2Ta+xFbHKbUk6hBg86voKKzIXDPnoylv+mzXO5zdFioSh8QkAHF82JPwP5TRjpF5kfFT
	FxWxnqW5Eyw9R8w==
X-Google-Smtp-Source: AGHT+IE4/qpCIySBMg3ov9R9hgBZJWxsHPDuOZW48C5VOl0DA8+oya1HsNnoBAh7Uk/lve1nLXUgRw==
X-Received: by 2002:a17:906:c153:b0:ac3:ec70:18ae with SMTP id a640c23a62f3a-ac7d184ec8dmr1533408566b.3.1744127846506;
        Tue, 08 Apr 2025 08:57:26 -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>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 03/14] xen/riscv: introduce ioremap()
Date: Tue,  8 Apr 2025 17:57:07 +0200
Message-ID: <6d91eeabe2735de93bfcf2a2420e2059a8f35e52.1744126720.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <cover.1744126720.git.oleksii.kurochko@gmail.com>
References: <cover.1744126720.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Based on RISC-V unpriviliged spec ( Version 20240411 ):
```
For implementations that conform to the RISC-V Unix Platform Specification,
I/O devices and DMA operations are required to access memory coherently and
via strongly ordered I/O channels. Therefore, accesses to regular main memory
regions that are concurrently accessed by external devices can also use the
standard synchronization mechanisms. Implementations that do not conform
to the Unix Platform Specification and/or in which devices do not access
memory coherently will need to use mechanisms
(which are currently platform-specific or device-specific) to enforce
coherency.

I/O regions in the address space should be considered non-cacheable
regions in the PMAs for those regions. Such regions can be considered coherent
by the PMA if they are not cached by any agent.
```
and [1]:
```
The current riscv linux implementation requires SOC system to support
memory coherence between all I/O devices and CPUs. But some SOC systems
cannot maintain the coherence and they need support cache clean/invalid
operations to synchronize data.

Current implementation is no problem with SiFive FU540, because FU540
keeps all IO devices and DMA master devices coherence with CPU. But to a
traditional SOC vendor, it may already have a stable non-coherency SOC
system, the need is simply to replace the CPU with RV CPU and rebuild
the whole system with IO-coherency is very expensive.
```

and the fact that all known ( to me ) CPUs that support the H-extension
and that ones is going to be supported by Xen have memory coherency
between all I/O devices and CPUs, so it is currently safe to use the
PAGE_HYPERVISOR attribute.
However, in cases where a platform does not support memory coherency, it
should support CMO extensions and Svpbmt. In this scenario, updates to
ioremap will be necessary.
For now, a compilation error will be generated to ensure that the need to
update ioremap() is not overlooked.

[1] https://patchwork.kernel.org/project/linux-riscv/patch/1555947870-23014-1-git-send-email-guoren@kernel.org/

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/arch/riscv/Kconfig | 12 ++++++++++++
 xen/arch/riscv/pt.c    | 19 +++++++++++++++++++
 2 files changed, 31 insertions(+)

diff --git a/xen/arch/riscv/Kconfig b/xen/arch/riscv/Kconfig
index d882e0a059..27086cca9c 100644
--- a/xen/arch/riscv/Kconfig
+++ b/xen/arch/riscv/Kconfig
@@ -15,6 +15,18 @@ config ARCH_DEFCONFIG
 	string
 	default "arch/riscv/configs/tiny64_defconfig"
 
+config HAS_SVPBMT
+	bool
+	help
+	  This config enables usage of Svpbmt ISA-extension ( Supervisor-mode:
+	  page-based memory types).
+
+	  The memory type for a page contains a combination of attributes
+	  that indicate the cacheability, idempotency, and ordering
+	  properties for access to that page.
+
+	  The Svpbmt extension is only available on 64-bit cpus.
+
 menu "Architecture Features"
 
 source "arch/Kconfig"
diff --git a/xen/arch/riscv/pt.c b/xen/arch/riscv/pt.c
index 857619d48d..e2f49e2f97 100644
--- a/xen/arch/riscv/pt.c
+++ b/xen/arch/riscv/pt.c
@@ -7,6 +7,7 @@
 #include <xen/pfn.h>
 #include <xen/pmap.h>
 #include <xen/spinlock.h>
+#include <xen/vmap.h>
 
 #include <asm/fixmap.h>
 #include <asm/flushtlb.h>
@@ -548,3 +549,21 @@ void clear_fixmap(unsigned int map)
                               FIXMAP_ADDR(map) + PAGE_SIZE) != 0 )
         BUG();
 }
+
+void *ioremap(paddr_t pa, size_t len)
+{
+    mfn_t mfn = _mfn(PFN_DOWN(pa));
+    unsigned int offs = pa & (PAGE_SIZE - 1);
+    unsigned int nr = PFN_UP(offs + len);
+
+#ifdef CONFIG_HAS_SVPBMT
+    #error "an introduction of PAGE_HYPERVISOR_IOREMAP is needed for __vmap()"
+#endif
+
+    void *ptr = __vmap(&mfn, nr, 1, 1, PAGE_HYPERVISOR, VMAP_DEFAULT);
+
+    if ( !ptr )
+        return NULL;
+
+    return ptr + offs;
+}
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 08 15:57:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 15:57:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.942500.1341638 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2BKJ-0004bc-Bm; Tue, 08 Apr 2025 15:57:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 942500.1341638; Tue, 08 Apr 2025 15:57:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2BKJ-0004aL-5z; Tue, 08 Apr 2025 15:57:27 +0000
Received: by outflank-mailman (input) for mailman id 942500;
 Tue, 08 Apr 2025 15:57:26 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=f4Vq=W2=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1u2BKI-0004Yr-10
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 15:57:26 +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 29f74199-1492-11f0-9eaa-5ba50f476ded;
 Tue, 08 Apr 2025 17:57:25 +0200 (CEST)
Received: by mail-ej1-x62c.google.com with SMTP id
 a640c23a62f3a-abec8b750ebso965133466b.0
 for <xen-devel@lists.xenproject.org>; Tue, 08 Apr 2025 08:57:25 -0700 (PDT)
Received: from fedora.. (user-109-243-64-225.play-internet.pl.
 [109.243.64.225]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-ac7c018556bsm929934566b.156.2025.04.08.08.57.23
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 08 Apr 2025 08:57: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: 29f74199-1492-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1744127844; x=1744732644; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=xwxQGWHEM+QfdsaiRIn7A5cNuL3TVRKaUV1dE+oe0W8=;
        b=hLyNXFHAYk2NRfs7U4v169PJ8uQNK6E2DqKcphkiI/dKvPDdtIq0gY4XXFXJeHPve1
         eUJKFOrY/w6hpne25c/SLfnqOzM+dFXhrLDs8QrQYGxV68a0VONqc4upofHg+36t0EGX
         +n6TENJEWsoMSECcNhdilCjHmdjAQbCZEUXyqbNOYT+Ibrf643LLlRREW24B9My2QjEd
         0aolf2G3aRT6iU8Zp51DnAfQU7NZ2/nGiUA/2/vBf+RpfEIpcLbMfvsavCmvnYKgeKDq
         IozUfFk4BxSbPyooixk7EJENncetyXCxqBSPAXFO0N4kogxiK3P0iZixlOxLNyQGtRKT
         W7jg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744127844; x=1744732644;
        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=xwxQGWHEM+QfdsaiRIn7A5cNuL3TVRKaUV1dE+oe0W8=;
        b=bula6kch2l9Z8ZTUno0z3VejFtJ7XEFq6Nd75eg6ylAlq84Z0ndCPeAkDmaE5xucUT
         wETPODxBaLQu764Dxz0ICz8PfMbt9kjmVpjPQmmrI4gQnrce6pU5Fw0vAOoRVfYf/LF2
         k2PukfuWS5484AXajYELTRBsRZKjr87wqcZxI1YjVX30OWQaKo9WdokhhJEwkiaHNYEv
         uHQNJ70hSL/byda02j/URSNkX+JUmv5tKVXTuwKnUyWoX563DKCOVRoRvATH12EQaG4E
         fFOIkkk163g/w5lNnnBiPznJE/VuYHtcmMGpdthwo8WyQUlCe2Oxkvy3dWbdFEJPGAEx
         6Wsg==
X-Gm-Message-State: AOJu0Yz6y7CvOtnqOKrFyUESFAfFlGkg8Lc875TdrI8vMQXH8qELQwBU
	btAZ0yvqGDIi5172F3OUrSqqUPDLVh12z5H9BYu9vTpgBYJ9NSgLt8M4ZA==
X-Gm-Gg: ASbGncuo/x/5bXpGuZbNL7DTeqRPw96isxVgeodSXc93sYRnbm2IivkW5190gLqtd4x
	6X6a4dhVUtutaJj5wBNOcVkG+S+/+BRIXKQLQdPwYS+zT9fJSKt8t+MF0PbR/F1FQ72+ZnYs4bd
	4o2cRSwzpCJfcyIhymInGfb/6kWlUyMKVfpzZhJRmi8X60C7feFEBMPzdO8tb7TuFkOpdZUQhbd
	xHQj3cS59bRYZ1wfXgGhliG3cD+il8i4NW5Yp19Aa3B1R2FmoWq9cND13zsEiMxga3PLiZXBCrR
	IN7suZoWYKZyhQl0du7M7OXYruBSzlMpM9H9blRJMC0Urxp6kXfhsN6cFT9guEf0O2uXMexKWxJ
	KYmGaev6HIFByaQ==
X-Google-Smtp-Source: AGHT+IEEQAhjs0pOCo5cH3hLmcyKGWubIIOEQAGdOwENOq4dkreblFI+yNvCn6/KETHcnWiQ0AZMzw==
X-Received: by 2002:a17:907:7251:b0:ac7:3918:50f4 with SMTP id a640c23a62f3a-ac7e77c7a5emr1091619766b.59.1744127844088;
        Tue, 08 Apr 2025 08:57:24 -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>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 01/14] xen/riscv: implement get_s_time()
Date: Tue,  8 Apr 2025 17:57:05 +0200
Message-ID: <e503aee3ef743210a8188a7da9e70a169dec1287.1744126720.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <cover.1744126720.git.oleksii.kurochko@gmail.com>
References: <cover.1744126720.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Also tick_to_ns() is implemeted as it is used in get_s_time().

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/arch/riscv/include/asm/time.h | 6 ++++++
 xen/arch/riscv/stubs.c            | 5 -----
 xen/arch/riscv/time.c             | 7 +++++++
 3 files changed, 13 insertions(+), 5 deletions(-)

diff --git a/xen/arch/riscv/include/asm/time.h b/xen/arch/riscv/include/asm/time.h
index e8d9ffec57..0f6aa99ab1 100644
--- a/xen/arch/riscv/include/asm/time.h
+++ b/xen/arch/riscv/include/asm/time.h
@@ -3,6 +3,7 @@
 #define ASM__RISCV__TIME_H
 
 #include <xen/bug.h>
+#include <xen/lib.h>
 #include <xen/types.h>
 #include <asm/csr.h>
 
@@ -23,6 +24,11 @@ static inline cycles_t get_cycles(void)
     return csr_read(CSR_TIME);
 }
 
+static inline s_time_t ticks_to_ns(uint64_t ticks)
+{
+    return muldiv64(ticks, SECONDS(1), 1000 * cpu_khz);
+}
+
 void preinit_xen_time(void);
 
 #endif /* ASM__RISCV__TIME_H */
diff --git a/xen/arch/riscv/stubs.c b/xen/arch/riscv/stubs.c
index a1d64534cd..83416d3350 100644
--- a/xen/arch/riscv/stubs.c
+++ b/xen/arch/riscv/stubs.c
@@ -27,11 +27,6 @@ nodemask_t __read_mostly node_online_map = { { [0] = 1UL } };
 
 /* time.c */
 
-s_time_t get_s_time(void)
-{
-    BUG_ON("unimplemented");
-}
-
 int reprogram_timer(s_time_t timeout)
 {
     BUG_ON("unimplemented");
diff --git a/xen/arch/riscv/time.c b/xen/arch/riscv/time.c
index 905bb13eb4..81e06781f8 100644
--- a/xen/arch/riscv/time.c
+++ b/xen/arch/riscv/time.c
@@ -4,10 +4,17 @@
 #include <xen/init.h>
 #include <xen/lib.h>
 #include <xen/sections.h>
+#include <xen/types.h>
 
 unsigned long __ro_after_init cpu_khz; /* CPU clock frequency in kHz. */
 uint64_t __ro_after_init boot_clock_cycles;
 
+s_time_t get_s_time(void)
+{
+    uint64_t ticks = get_cycles() - boot_clock_cycles;
+    return ticks_to_ns(ticks);
+}
+
 /* Set up the timer on the boot CPU (early init function) */
 static void __init preinit_dt_xen_time(void)
 {
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 08 15:57:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 15:57:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.942502.1341658 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2BKL-00054s-05; Tue, 08 Apr 2025 15:57:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 942502.1341658; Tue, 08 Apr 2025 15:57: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 1u2BKK-00054C-Oe; Tue, 08 Apr 2025 15:57:28 +0000
Received: by outflank-mailman (input) for mailman id 942502;
 Tue, 08 Apr 2025 15:57: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=f4Vq=W2=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1u2BKK-0004Yq-2s
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 15:57:28 +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 2abb371a-1492-11f0-9ffb-bf95429c2676;
 Tue, 08 Apr 2025 17:57:26 +0200 (CEST)
Received: by mail-ej1-x633.google.com with SMTP id
 a640c23a62f3a-abbd96bef64so1115126066b.3
 for <xen-devel@lists.xenproject.org>; Tue, 08 Apr 2025 08:57:26 -0700 (PDT)
Received: from fedora.. (user-109-243-64-225.play-internet.pl.
 [109.243.64.225]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-ac7c018556bsm929934566b.156.2025.04.08.08.57.24
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 08 Apr 2025 08:57: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: 2abb371a-1492-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1744127846; x=1744732646; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=4hi1xjODCV/sXPERE+O05f5Q95fvnC5BVyDMZVpi670=;
        b=X/Pk5RkKEXtsxMOxRQrqB/hhe2XGq7K5S6nOokSU4rNfzYgH3lNUvC7uZbsFQ8MniX
         H8Gd9gjKhPWhCZDydOV5tfT7AYmsMiCCXwcRByo4uexz7I7W6ntqIKilbUQ1DcS6OTXy
         xX3bBxYm4eJf2I3Hw1B1zEb0w0Mm8sB/WJ7rxrHja5Sa3q55UIr0CzHhtmOo46M8Q3D5
         pGj8zEaUvea5MUPoVLRns3Mu5jHVjKcJxZAo4sPoep5aPSKPq59BcFYa9eMNZ6EisnZK
         zjHQnptWgbPHcxSROGP9AZZRQMi7PwhzkezCPBwHZ6BmLxqxBpzKG/FVJLbeaoF9A1pc
         nuIQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744127846; x=1744732646;
        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=4hi1xjODCV/sXPERE+O05f5Q95fvnC5BVyDMZVpi670=;
        b=K5Dq8RpMjdHSkrwPWsCFt9OB+mWgwlB3G8GETyacMqCdorlHnrDtD3RSCkIyhzWy0w
         9+ZBH3MhNj+iFEheDxfdBJoxVp1gp6+pVnB/LCQEPltfthAMnTMODFwQCscxMHPqCCFJ
         r2ZjDgMNST4S0OcWCpplKRl+sg5V+BgMPCSWrmGn25YYNcDghJGAQQxM8KBOVyC0sJn0
         ww+UiLLHUuebzWyV8iyp/tNgMk2WonLtze/VMbj4r2SaPliIV1cQDNGXWWCnLG2v0nqB
         I4+vXzNTYryfT8fefVoVJJLt/7BTSNDczrpEegPN6WjBxXZHmZFfRUF8C/EtFLdBbO1L
         G5KQ==
X-Gm-Message-State: AOJu0Yyhe1U2+gbxjZI85+pKZf7d5hndaqKcpz4GKWziMz+QDP04J1KE
	ncLqzS6+CNcwoImBVFEuBKsfMkWT9Ng5JMnaatU+B4yDXmSJ8AILU+fgJA==
X-Gm-Gg: ASbGncvx1+FvwLShhn6V1J97guv8p4IPgRbp7h2PPXQj4KbN259JBF9mxl9E+1FYVKZ
	nInMPEp4/C2hVYHU022rVwa8FXu9oNPvwV+YYcGc3KQtQEf4MiUJDnODFfP+0ap5cRP5PmXtt3x
	uQftVtf08Hj8k7gtWnICN83QapJoGDOEhRg/C77EGn2+wQszZECorVEZ1O82g2DrMoiRCBckHbX
	bvWn6/yI6og6r9PkDq6bOAhwnQP3iryrWQuFbn3TlcsMVokJVRbKOfMv+s7HwgewgvZ/aQcPKSx
	mtl3vnBm7PfQ6L1dFfREF5VwZQTzMznxMMfvWZCXQwSWuqqFDptgiXBoAx0usoL7cafd05PZINi
	QGKmMnHXZKIzJTg==
X-Google-Smtp-Source: AGHT+IGPZLQUmzRVvlQPHpMLUPk5BR/JAj1Ppc1lOSe7dGvIQ+x4G3kqQ5tkLmaV6Dmf0Dg7h9DOjQ==
X-Received: by 2002:a17:907:7e88:b0:ac6:bf3d:bf45 with SMTP id a640c23a62f3a-ac7d19671efmr1737640366b.36.1744127845398;
        Tue, 08 Apr 2025 08:57:25 -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>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 02/14] xen/riscv: introduce smp_clear_cpu_maps()
Date: Tue,  8 Apr 2025 17:57:06 +0200
Message-ID: <ce3460b3857cca9e6f3072a8ddd50b31cb46b855.1744126720.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <cover.1744126720.git.oleksii.kurochko@gmail.com>
References: <cover.1744126720.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Initialize cpu_{possible, online, present}_map by using smp_clear_cpu_maps().

Drop DEFINE_PER_CPU(unsigned int, cpu_id) from stubs.c as this variable isn't
expected to be used in RISC-V at all.

Move declaration of cpu_{possible,online,present}_map from stubs.c to smpboot.c
as now smpboot.c is now introduced.
Other defintions keep in stubs.c as they are not initialized and not needed, at
the moment.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/arch/riscv/Makefile          |  1 +
 xen/arch/riscv/include/asm/smp.h |  2 ++
 xen/arch/riscv/setup.c           |  2 ++
 xen/arch/riscv/smpboot.c         | 15 +++++++++++++++
 xen/arch/riscv/stubs.c           |  6 ------
 5 files changed, 20 insertions(+), 6 deletions(-)
 create mode 100644 xen/arch/riscv/smpboot.c

diff --git a/xen/arch/riscv/Makefile b/xen/arch/riscv/Makefile
index 0c6c4a38a3..f551bf32a2 100644
--- a/xen/arch/riscv/Makefile
+++ b/xen/arch/riscv/Makefile
@@ -10,6 +10,7 @@ obj-y += sbi.o
 obj-y += setup.o
 obj-y += shutdown.o
 obj-y += smp.o
+obj-y += smpboot.o
 obj-y += stubs.o
 obj-y += time.o
 obj-y += traps.o
diff --git a/xen/arch/riscv/include/asm/smp.h b/xen/arch/riscv/include/asm/smp.h
index 5e170b57b3..188c033718 100644
--- a/xen/arch/riscv/include/asm/smp.h
+++ b/xen/arch/riscv/include/asm/smp.h
@@ -26,6 +26,8 @@ static inline void set_cpuid_to_hartid(unsigned long cpuid,
 
 void setup_tp(unsigned int cpuid);
 
+void smp_clear_cpu_maps(void);
+
 #endif
 
 /*
diff --git a/xen/arch/riscv/setup.c b/xen/arch/riscv/setup.c
index 4e416f6e44..7f68f3f5b7 100644
--- a/xen/arch/riscv/setup.c
+++ b/xen/arch/riscv/setup.c
@@ -72,6 +72,8 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
 
     remove_identity_mapping();
 
+    smp_clear_cpu_maps();
+
     set_processor_id(0);
 
     set_cpuid_to_hartid(0, bootcpu_id);
diff --git a/xen/arch/riscv/smpboot.c b/xen/arch/riscv/smpboot.c
new file mode 100644
index 0000000000..0f4dcc28e1
--- /dev/null
+++ b/xen/arch/riscv/smpboot.c
@@ -0,0 +1,15 @@
+#include <xen/cpumask.h>
+#include <xen/init.h>
+
+cpumask_t cpu_online_map;
+cpumask_t cpu_present_map;
+cpumask_t cpu_possible_map;
+
+void __init smp_clear_cpu_maps(void)
+{
+    cpumask_clear(&cpu_possible_map);
+    cpumask_clear(&cpu_online_map);
+    cpumask_set_cpu(0, &cpu_possible_map);
+    cpumask_set_cpu(0, &cpu_online_map);
+    cpumask_copy(&cpu_present_map, &cpu_possible_map);
+}
diff --git a/xen/arch/riscv/stubs.c b/xen/arch/riscv/stubs.c
index 83416d3350..fdcf91054e 100644
--- a/xen/arch/riscv/stubs.c
+++ b/xen/arch/riscv/stubs.c
@@ -11,12 +11,6 @@
 
 /* smpboot.c */
 
-cpumask_t cpu_online_map;
-cpumask_t cpu_present_map;
-cpumask_t cpu_possible_map;
-
-/* ID of the PCPU we're running on */
-DEFINE_PER_CPU(unsigned int, cpu_id);
 /* XXX these seem awfully x86ish... */
 /* representing HT siblings of each logical CPU */
 DEFINE_PER_CPU_READ_MOSTLY(cpumask_var_t, cpu_sibling_mask);
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 08 15:57:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 15:57:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.942499.1341633 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2BKJ-0004Z9-45; Tue, 08 Apr 2025 15:57:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 942499.1341633; Tue, 08 Apr 2025 15:57:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2BKI-0004Z2-Vo; Tue, 08 Apr 2025 15:57:26 +0000
Received: by outflank-mailman (input) for mailman id 942499;
 Tue, 08 Apr 2025 15:57:26 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=f4Vq=W2=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1u2BKH-0004Yq-Vv
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 15:57:26 +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 2938fcf9-1492-11f0-9ffb-bf95429c2676;
 Tue, 08 Apr 2025 17:57:23 +0200 (CEST)
Received: by mail-ed1-x530.google.com with SMTP id
 4fb4d7f45d1cf-5efe8d9ebdfso246226a12.3
 for <xen-devel@lists.xenproject.org>; Tue, 08 Apr 2025 08:57:23 -0700 (PDT)
Received: from fedora.. (user-109-243-64-225.play-internet.pl.
 [109.243.64.225]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-ac7c018556bsm929934566b.156.2025.04.08.08.57.21
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 08 Apr 2025 08:57:22 -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: 2938fcf9-1492-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1744127843; x=1744732643; 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=hGK/pd0Edv8PV4fHOKEHNDaRM88s+8JEHBygT/2/ZnI=;
        b=G6W8fXy3jJXcxMHLw7PicMLqzSpxQ9QPBiSXn0svqqniHX+M5bTJxvVQYjCo3uLGlj
         OoxhrHdEJT3k4JoqlfL9nAgWLupNZ/KeTKzAc4zmeFjOGBe040KP9yWwcSaEystjAQ8X
         6dACL3Ij1sFVIJuLYvR5tTgrZOwVJw6MCNJxzyI7zBiam7d3Yz9B2FdOrPZHJkUkUkuZ
         bagTgO2W7JwqH4rp7/C+mUu632scQO2vW51TIOJkyXWKC1n1BnG/1xPMpEYGT3RmxAj/
         3vxIEZfJobo/LfQT++bT+jDAfcxNHjoCjZ44CgsLxT3qbzAzJbbJzZIjCdh4X1caD/io
         CW7Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744127843; x=1744732643;
        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=hGK/pd0Edv8PV4fHOKEHNDaRM88s+8JEHBygT/2/ZnI=;
        b=IZR2Ye88UqV2quZFhT/LQyEUbWoodCDM2lbSPMMzYNpIh09ICijQfpq/6tCeupu8f0
         jlotWqZjF8GMeJE29+Juhbhwfhdk+I5RiDUN4blogBc++SDl09qGiMCddZoBWVHkF0lo
         CCWrQQOkU5Il+Wa0KAH1x0caJ1cgNRgADtaHuApvn9O7OIWR2BR5yku9LPYXxh6HVrIg
         2cfHyLVUsx5p2ZtXJ1QhtJI+dtAfAMIb5d5RRXPV8mgkk4Y9gPyarl3ZFX22RCSlPuW9
         EMFSUxcnPou+FfsWMW8KHjwYQf/CqS3dEN+EpwAtXbJoRm9vyTSIqL1jBzs1XQTNc2NG
         StUg==
X-Gm-Message-State: AOJu0YwWUHAdbcz79H56wskVZMu+2arUe9fARfzfP9+cWLOISRExFZXh
	dqawjuj1W9BCJB8kUOk5iZ+35JDSN6dngGnlaI5Is+pYTmleNjs57LCLYQ==
X-Gm-Gg: ASbGncu1A2ad7+zAM19hM8aQhJ7y9HNM9aZOf76o50E2YcrETAdyJ7RvHn0a9u5mJiE
	IG2t60vZxLTLgVT4v5Ee+jXyzX2QuZqmiKhjEMQlf6jK5q2C6Op2xwuUzOxJw8+wR9BB4J9hHKz
	89OPRj0y7TlmwMozY08CElhPQfj8LZa71mSUNEi7Mm3mayHCkayUXfz5Sq4u5UHpwH7ehs0bmrx
	hpJs0/5FcDT0B2uWQBfQEVinvXIgbOAmb49Mhi3y/Qxdgz6fmemxObCSldRIVUgCW1qivfbKvrt
	aS+AOifPHXOjlyC/WAvx0vtVVj9icgkRHmNN5JLwb0JUiGpsSwgggLyJmEFJ5i3gIcOl50gOKDI
	fu1LS57wPjxN8nA==
X-Google-Smtp-Source: AGHT+IG2gp7gehYxCTfOrG7Vsn7O44crfVb0NR9e3btxUtDnUUSFZMbkCnvSa0VwOaGdRlNdPY6MxQ==
X-Received: by 2002:a17:906:6945:b0:ac7:e366:1eab with SMTP id a640c23a62f3a-ac7e36621dfmr1163933266b.48.1744127842847;
        Tue, 08 Apr 2025 08:57:22 -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>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 00/14] riscv: introduce basic UART support and interrupts for hypervisor mode
Date: Tue,  8 Apr 2025 17:57:04 +0200
Message-ID: <cover.1744126720.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.49.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The patch series introduces basic UART support (in interrupt mode) and support of
interrupts for hypervisor mode.

To implement this the following has been added:
- APLIC and IMISC initialization.
- Introduce of intc_hw_operations abstraction.
- Introduce some APLIC and IMSIC operations.
- Introduce init_IRQ(), platform_get_irq() and setup_irq() functions.
- Update do_trap() handler to handle IRQ_S_EXT.
- Introduce some other functions such as: get_s_time(), smp_clear_cpu_maps(),
  ioremap().
- Enable UART. 

Oleksii Kurochko (14):
  xen/riscv: implement get_s_time()
  xen/riscv: introduce smp_clear_cpu_maps()
  xen/riscv: introduce ioremap()
  xen/riscv: introduce init_IRQ()
  xen/riscv: introduce platform_get_irq()
  xen/riscv: riscv_of_processor_hartid() implementation
  xen/riscv: Introduce intc_hw_operations abstraction
  xen/riscv: imsic_init() implementation
  xen/riscv: aplic_init() implementation
  xen/riscv: implementation of aplic and imsic operations
  xen/riscv: add external interrupt handling for hypervisor mode
  xen/riscv: implement setup_irq()
  xen/riscv: initialize interrupt controller
  xen/riscv: add basic UART support

 xen/arch/riscv/Kconfig             |  13 +
 xen/arch/riscv/Makefile            |   3 +
 xen/arch/riscv/aplic.c             | 302 +++++++++++++++++++++++
 xen/arch/riscv/imsic.c             | 374 +++++++++++++++++++++++++++++
 xen/arch/riscv/include/asm/aplic.h |  89 +++++++
 xen/arch/riscv/include/asm/imsic.h |  88 +++++++
 xen/arch/riscv/include/asm/intc.h  |  31 +++
 xen/arch/riscv/include/asm/irq.h   |  37 ++-
 xen/arch/riscv/include/asm/smp.h   |   5 +
 xen/arch/riscv/include/asm/time.h  |   6 +
 xen/arch/riscv/intc.c              |  58 +++++
 xen/arch/riscv/irq.c               | 223 +++++++++++++++++
 xen/arch/riscv/pt.c                |  19 ++
 xen/arch/riscv/setup.c             |  23 ++
 xen/arch/riscv/smpboot.c           |  83 +++++++
 xen/arch/riscv/stubs.c             |  16 --
 xen/arch/riscv/time.c              |   7 +
 xen/arch/riscv/traps.c             |  18 ++
 xen/drivers/char/Kconfig           |   1 -
 19 files changed, 1378 insertions(+), 18 deletions(-)
 create mode 100644 xen/arch/riscv/imsic.c
 create mode 100644 xen/arch/riscv/include/asm/aplic.h
 create mode 100644 xen/arch/riscv/include/asm/imsic.h
 create mode 100644 xen/arch/riscv/irq.c
 create mode 100644 xen/arch/riscv/smpboot.c

-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 08 15:57:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 15:57:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.942503.1341672 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2BKN-0005Zh-64; Tue, 08 Apr 2025 15:57:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 942503.1341672; Tue, 08 Apr 2025 15:57: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 1u2BKN-0005ZV-1Y; Tue, 08 Apr 2025 15:57:31 +0000
Received: by outflank-mailman (input) for mailman id 942503;
 Tue, 08 Apr 2025 15:57:29 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=f4Vq=W2=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1u2BKL-0004Yr-4O
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 15:57:29 +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 2bf79871-1492-11f0-9eaa-5ba50f476ded;
 Tue, 08 Apr 2025 17:57:28 +0200 (CEST)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-ac29fd22163so995725366b.3
 for <xen-devel@lists.xenproject.org>; Tue, 08 Apr 2025 08:57:28 -0700 (PDT)
Received: from fedora.. (user-109-243-64-225.play-internet.pl.
 [109.243.64.225]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-ac7c018556bsm929934566b.156.2025.04.08.08.57.26
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 08 Apr 2025 08:57:27 -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: 2bf79871-1492-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1744127848; x=1744732648; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ZT8rKSfyX7xZtUnDKHJfH2FXwyt339CMWYXyLpe8kCY=;
        b=cTgnzBWIMzLA2uur8rlx6Wo6LNzZq9gXz3fG/9N3U696e0Y1qJHJWgWJ9ahPJ1RrcP
         DGSrotC8uHZth+7jXFDSNK9XDIk6aAIJsep5CMfWSgiMfLLsbiz5iHmbBDPbYCpPz946
         lYlCVIoIoMnwTaxTEzaMlhIDobfz/uAXZg8Fs0bZlvYIGgJ1c8dKVJI3sCCXqCt5fQvh
         kz5VNyJE90P7HAfuLl2jQo3c/k+xorpJKivY9wE6ZfO4bd7li9ZHaQdb4/m9y4iyR0ty
         Q1gGzcxaCroSkAe2cqziNfkfPH+vPZDs5kOgecANztJIPIGypsgD568Dzgmdmc5Da9Bt
         RPUA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744127848; x=1744732648;
        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=ZT8rKSfyX7xZtUnDKHJfH2FXwyt339CMWYXyLpe8kCY=;
        b=Rvfn8oa6Gns3WdQv8RkQbroftWDp84F/EgEPCyTgMhxCKS3Fc7gOHMx7SqfA6ErQWY
         DUNZbCRk1lJHJKDbea8n8ysT5lNhFui854PkrcN6R9kerjoKa4ngy/jq6O8g4hjh7PBY
         pNEzypb09EDQRH8VygkhLSs1IMKbDV1CoNIG1bQFcekuQj2AKaXs8GrivRrYEg0g96Hh
         JS3CHdzMd6z/qthqVB9ShOUyIMdHQQR++/A+wH5BnqLYynW6KTAMIc/abvh0vQg6eB4i
         DWicXmhDUppjiB3jvsqFlD7oFelhlSsvCgrekJbox24ieRP3vnPEAhl42LLpT0yf8bLP
         GKzg==
X-Gm-Message-State: AOJu0Yx2JeiEcl7nzaXPbf3XKw2qTR+6PehSwzYWusqGxSn7f0veri6p
	3my89b36cD5jppAQvG50nsz0m1nk0a2oRL/GG6otI2Mpxh6Ngjk4CHFjAw==
X-Gm-Gg: ASbGncvlUs9mZhgPWbgRIEMvW+d34uynGrborgN2b9wCnsWM+eSELhknOK0GU25TUmX
	b/BUffUppyuAyf1xYqH1KATwAVWRho67nc9doOEqDruTPE6Na9ck9+OntjxXSrnEH2UV6WZ/x7j
	Ik7u8o0TeHKmXZSZEfBNSzGUBv30kEQI4osJ0IFrq3O7/iwPbSm4ObraWlxX1kIcdNB23iCG45o
	WjcRxjw9pOrqbWD0HPApup2xBLYyrmpu0re9/F9P2xg6Zz8ntIqq3sGTDdwk9fB2gHGtkYSVGA4
	O4mVOOuf8sIr4LSeGtlgPnkjBJk8OjT2NvFgNtEJIKsqWMAET1PLK2/PWjdvsgr265CE2ttFK5r
	qHWsGKaaEXsl0uA==
X-Google-Smtp-Source: AGHT+IEBhPbeHE6U5+TNIa3utiAycGcioh0lgV4ejRRW9dYFHNRnq6I7mJsucHWf/Rq1QAHevan8Mg==
X-Received: by 2002:a17:907:c26:b0:ac3:bf36:80e2 with SMTP id a640c23a62f3a-ac7d6d29f49mr1725840666b.20.1744127847578;
        Tue, 08 Apr 2025 08:57:27 -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>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 04/14] xen/riscv: introduce init_IRQ()
Date: Tue,  8 Apr 2025 17:57:08 +0200
Message-ID: <dff8b0a4a83fbd2b84c3427093a63fcee8a7122f.1744126720.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <cover.1744126720.git.oleksii.kurochko@gmail.com>
References: <cover.1744126720.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Implement init_IRQ() to initalize various IRQs.

Currently, this function initializes the irq_desc[] array,
which stores IRQ descriptors containing various information
about each IRQ, such as the type of hardware handling, whether
the IRQ is disabled, etc.
The initialization is basic at this point and includes setting
IRQ_TYPE_INVALID as the IRQ type, assigning the IRQ number ( which
is just a consequent index of irq_desc[] array ) to
desc->irq, and setting desc->action to NULL.

Additionally, the function init_irq_data() is introduced to
initialize the IRQ descriptors for all IRQs in the system.

Also, define IRQ_TYPE_* which are the same as the existing device
tree definitions for convenience.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/arch/riscv/Makefile          |  1 +
 xen/arch/riscv/include/asm/irq.h | 24 +++++++++++++++++
 xen/arch/riscv/irq.c             | 44 ++++++++++++++++++++++++++++++++
 xen/arch/riscv/setup.c           |  3 +++
 xen/arch/riscv/stubs.c           |  5 ----
 5 files changed, 72 insertions(+), 5 deletions(-)
 create mode 100644 xen/arch/riscv/irq.c

diff --git a/xen/arch/riscv/Makefile b/xen/arch/riscv/Makefile
index f551bf32a2..457e8e88a4 100644
--- a/xen/arch/riscv/Makefile
+++ b/xen/arch/riscv/Makefile
@@ -3,6 +3,7 @@ obj-y += cpufeature.o
 obj-$(CONFIG_EARLY_PRINTK) += early_printk.o
 obj-y += entry.o
 obj-y += intc.o
+obj-y += irq.o
 obj-y += mm.o
 obj-y += pt.o
 obj-$(CONFIG_RISCV_64) += riscv64/
diff --git a/xen/arch/riscv/include/asm/irq.h b/xen/arch/riscv/include/asm/irq.h
index 2a48da2651..8f936b7d01 100644
--- a/xen/arch/riscv/include/asm/irq.h
+++ b/xen/arch/riscv/include/asm/irq.h
@@ -3,6 +3,28 @@
 #define ASM__RISCV__IRQ_H
 
 #include <xen/bug.h>
+#include <xen/device_tree.h>
+
+#define NR_IRQS 1024
+
+/*
+ * TODO: Should IRQ_TYPE_* be moved to xen/irq.h and wrapped into
+ * #ifdef CONFIG_HAS_DEVICE_TREE?
+ */
+/*
+ * These defines correspond to the Xen internal representation of the
+ * IRQ types. We choose to make them the same as the existing device
+ * tree definitions for convenience.
+ */
+#define IRQ_TYPE_NONE           DT_IRQ_TYPE_NONE
+#define IRQ_TYPE_EDGE_RISING    DT_IRQ_TYPE_EDGE_RISING
+#define IRQ_TYPE_EDGE_FALLING   DT_IRQ_TYPE_EDGE_FALLING
+#define IRQ_TYPE_EDGE_BOTH      DT_IRQ_TYPE_EDGE_BOTH
+#define IRQ_TYPE_LEVEL_HIGH     DT_IRQ_TYPE_LEVEL_HIGH
+#define IRQ_TYPE_LEVEL_LOW      DT_IRQ_TYPE_LEVEL_LOW
+#define IRQ_TYPE_LEVEL_MASK     DT_IRQ_TYPE_LEVEL_MASK
+#define IRQ_TYPE_SENSE_MASK     DT_IRQ_TYPE_SENSE_MASK
+#define IRQ_TYPE_INVALID        DT_IRQ_TYPE_INVALID
 
 /* TODO */
 #define nr_irqs 0U
@@ -25,6 +47,8 @@ static inline void arch_move_irqs(struct vcpu *v)
     BUG_ON("unimplemented");
 }
 
+void init_IRQ(void);
+
 #endif /* ASM__RISCV__IRQ_H */
 
 /*
diff --git a/xen/arch/riscv/irq.c b/xen/arch/riscv/irq.c
new file mode 100644
index 0000000000..99b8f2095e
--- /dev/null
+++ b/xen/arch/riscv/irq.c
@@ -0,0 +1,44 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+
+/*
+ * RISC-V Trap handlers
+ *
+ * Copyright (c) 2024 Vates
+ */
+
+#include <xen/bug.h>
+#include <xen/init.h>
+#include <xen/irq.h>
+
+static irq_desc_t irq_desc[NR_IRQS];
+
+int arch_init_one_irq_desc(struct irq_desc *desc)
+{
+    desc->arch.type = IRQ_TYPE_INVALID;
+    return 0;
+}
+
+static int __init init_irq_data(void)
+{
+    int irq;
+
+    for ( irq = 0; irq < NR_IRQS; irq++ )
+    {
+        struct irq_desc *desc = irq_to_desc(irq);
+        int rc = init_one_irq_desc(desc);
+
+        if ( rc )
+            return rc;
+
+        desc->irq = irq;
+        desc->action  = NULL;
+    }
+
+    return 0;
+}
+
+void __init init_IRQ(void)
+{
+    if ( init_irq_data() < 0 )
+        panic("initialization of IRQ data failed\n");
+}
diff --git a/xen/arch/riscv/setup.c b/xen/arch/riscv/setup.c
index 7f68f3f5b7..a3189697da 100644
--- a/xen/arch/riscv/setup.c
+++ b/xen/arch/riscv/setup.c
@@ -6,6 +6,7 @@
 #include <xen/compile.h>
 #include <xen/device_tree.h>
 #include <xen/init.h>
+#include <xen/irq.h>
 #include <xen/mm.h>
 #include <xen/shutdown.h>
 #include <xen/vmap.h>
@@ -127,6 +128,8 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
         panic("Booting using ACPI isn't supported\n");
     }
 
+    init_IRQ();
+
     riscv_fill_hwcap();
 
     preinit_xen_time();
diff --git a/xen/arch/riscv/stubs.c b/xen/arch/riscv/stubs.c
index fdcf91054e..e396b67cd3 100644
--- a/xen/arch/riscv/stubs.c
+++ b/xen/arch/riscv/stubs.c
@@ -107,11 +107,6 @@ void irq_ack_none(struct irq_desc *desc)
     BUG_ON("unimplemented");
 }
 
-int arch_init_one_irq_desc(struct irq_desc *desc)
-{
-    BUG_ON("unimplemented");
-}
-
 void smp_send_state_dump(unsigned int cpu)
 {
     BUG_ON("unimplemented");
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 08 15:57:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 15:57:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.942505.1341682 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2BKP-0005rm-Di; Tue, 08 Apr 2025 15:57:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 942505.1341682; Tue, 08 Apr 2025 15:57:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2BKP-0005rf-Ab; Tue, 08 Apr 2025 15:57:33 +0000
Received: by outflank-mailman (input) for mailman id 942505;
 Tue, 08 Apr 2025 15:57:31 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=f4Vq=W2=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1u2BKN-0004Yq-IU
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 15:57:31 +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 2ccb0e72-1492-11f0-9ffb-bf95429c2676;
 Tue, 08 Apr 2025 17:57:29 +0200 (CEST)
Received: by mail-ej1-x634.google.com with SMTP id
 a640c23a62f3a-ac25520a289so1006060566b.3
 for <xen-devel@lists.xenproject.org>; Tue, 08 Apr 2025 08:57:29 -0700 (PDT)
Received: from fedora.. (user-109-243-64-225.play-internet.pl.
 [109.243.64.225]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-ac7c018556bsm929934566b.156.2025.04.08.08.57.27
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 08 Apr 2025 08:57:28 -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: 2ccb0e72-1492-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1744127849; x=1744732649; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=uCtnXnepMjQJ6WdYnFvlLVv3tm/yir71NGvOBIDdkhw=;
        b=J8kt5T71PBmUAbha+/X33kUE2vjPDncWuh6r1TwYCbFLfOyAaPMICVQ7lvljkP5XcC
         zRpFniX3N/KzVDG2TzpWKFJbvnNI2g36HNJX4esqQ4Bg6lvuB5pgmFCsX9bVUBgN6y5A
         ZLxlfZsb+H3+JO5UeoqS9rkcJ4qlDW0YBQPtKoGMSxuUt1bDM3FxFKbk0eX0D9NIGkis
         B8M3wUjZkiwkXTjpzKXw3+2oCoMtTlye7e7h/o+b4D8A3uKzmBDVUPK02lpdyAMQTIBq
         qMFf5UHWv4NtCb4YwZg4Q29AsfdKi9XF2RTDLjx/+bAlZDnDKR9mAR+LETReouSHsz8T
         m9Dw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744127849; x=1744732649;
        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=uCtnXnepMjQJ6WdYnFvlLVv3tm/yir71NGvOBIDdkhw=;
        b=ojYnHaGd8IzXXci8xNMLT4+DzqA5OlRh7Y8aFEZKI5IfS3IaL36mFzIbIAve2dooRe
         HjlJcrtcIlr/kDC1pzWd1NybvEL/NraW+7+dUpTU93fvuMPfFb0Cc1sUKZGkDecpf8XL
         W2WcdGMbfmhHkw48mNZsLFc0HAn61nQOPg3JijRzRLjtyV+ZYrCIcrJhvykH/0NtZJDX
         m2vdwQ98DebkC/Lq2ytaDE74k+3PUNwnv+DbV1LxY7KORUoG2nYkxc3g4znsEGAfeNO3
         tKeZ4YgFBq0NmOdculg9IyKKvb3v3rmelD5InMJHXFTSdDAms6cTkPAJIGHB4gWir4Ku
         +UsQ==
X-Gm-Message-State: AOJu0YxBllLTTko1DidtLWy1cy3qDqiULD4pgvN7gU6XzKKSAQsx8Zkp
	EyFl+msz5WrXqSP5a7xKhIgdZET0AA4kdffFYFvYl77eqmHrFFlQPWwq9Q==
X-Gm-Gg: ASbGncvnxQvgQ9JPA6TYL1dzCZIEGHfreCDC0B5vJJkkxiRMmUlZm4XRjKSHA/aiNTU
	hqwiu1HqWZDYXTagEJpSLIWHdqsaWuwp/eybW7rq9fNIAu00vKfWYnvkaakmIgNBidakWDMS+Cy
	pI5o5XwDIb6FuPyvy/w1ZwlBEj1UReHtOJvsFHa9kcuzLdtOVMCIYNUj2Ozi/W5jeVp7+Q3TbgT
	Hsqhk8un7bGWXlszgK6Ffdjsoz6XdoPo3daaBzvolZM8m5EzsxbBUigxx452etpCB9R/jhsj4TR
	MRX5+y1Uk4W1jcpgVuaeIuRyiZMmf8CbmgVmvEVziUVJFFJj8+DWtoXgXnMcnwvAdOGX+HpGKHF
	/gaYKUOi5CstEtA==
X-Google-Smtp-Source: AGHT+IFJ1QvQ6CEjloJ0R8mMyvtVVCL9ldhwXDZiW0oswAHpDPPPugf5ISduozzVoTqxseYyEoUJXQ==
X-Received: by 2002:a17:907:724a:b0:ac1:ddaa:2c03 with SMTP id a640c23a62f3a-ac7d690b353mr1371954466b.0.1744127848820;
        Tue, 08 Apr 2025 08:57:28 -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>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Romain Caritey <Romain.Caritey@microchip.com>
Subject: [PATCH v1 05/14] xen/riscv: introduce platform_get_irq()
Date: Tue,  8 Apr 2025 17:57:09 +0200
Message-ID: <6c6e7482cc3b0332f5724c80bf16931fe2d793ae.1744126720.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <cover.1744126720.git.oleksii.kurochko@gmail.com>
References: <cover.1744126720.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

platform_get_irq() recieves information about device's irq ( type
and irq number ) from device tree node and using this information
update irq descriptor in irq_desc[] array.

Introduce dt_irq_xlate and initialize with aplic_irq_xlate() as
it is used by dt_device_get_irq() which is called by
platform_get_irq().

Co-developed-by: Romain Caritey <Romain.Caritey@microchip.com>
Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/arch/riscv/aplic.c           | 19 +++++++++++++++
 xen/arch/riscv/include/asm/irq.h |  3 +++
 xen/arch/riscv/irq.c             | 41 ++++++++++++++++++++++++++++++++
 3 files changed, 63 insertions(+)

diff --git a/xen/arch/riscv/aplic.c b/xen/arch/riscv/aplic.c
index caba8f8993..6dc040af6f 100644
--- a/xen/arch/riscv/aplic.c
+++ b/xen/arch/riscv/aplic.c
@@ -11,6 +11,7 @@
 
 #include <xen/errno.h>
 #include <xen/init.h>
+#include <xen/irq.h>
 #include <xen/sections.h>
 #include <xen/types.h>
 
@@ -21,6 +22,22 @@ static struct intc_info __ro_after_init aplic_info = {
     .hw_version = INTC_APLIC,
 };
 
+static int aplic_irq_xlate(const uint32_t *intspec, unsigned int intsize,
+                           unsigned int *out_hwirq,
+                           unsigned int *out_type)
+{
+    if ( intsize < 2 )
+        return -EINVAL;
+
+    /* Mapping 1:1 */
+    *out_hwirq = intspec[0];
+
+    if ( out_type )
+        *out_type = intspec[1] & IRQ_TYPE_SENSE_MASK;
+
+    return 0;
+}
+
 static int __init aplic_preinit(struct dt_device_node *node, const void *dat)
 {
     if ( aplic_info.node )
@@ -35,6 +52,8 @@ static int __init aplic_preinit(struct dt_device_node *node, const void *dat)
 
     aplic_info.node = node;
 
+    dt_irq_xlate = aplic_irq_xlate;
+
     return 0;
 }
 
diff --git a/xen/arch/riscv/include/asm/irq.h b/xen/arch/riscv/include/asm/irq.h
index 8f936b7d01..ff1c95e0be 100644
--- a/xen/arch/riscv/include/asm/irq.h
+++ b/xen/arch/riscv/include/asm/irq.h
@@ -47,6 +47,9 @@ static inline void arch_move_irqs(struct vcpu *v)
     BUG_ON("unimplemented");
 }
 
+struct dt_device_node;
+int platform_get_irq(const struct dt_device_node *device, int index);
+
 void init_IRQ(void);
 
 #endif /* ASM__RISCV__IRQ_H */
diff --git a/xen/arch/riscv/irq.c b/xen/arch/riscv/irq.c
index 99b8f2095e..c332e000c4 100644
--- a/xen/arch/riscv/irq.c
+++ b/xen/arch/riscv/irq.c
@@ -7,11 +7,52 @@
  */
 
 #include <xen/bug.h>
+#include <xen/device_tree.h>
+#include <xen/errno.h>
 #include <xen/init.h>
 #include <xen/irq.h>
 
 static irq_desc_t irq_desc[NR_IRQS];
 
+static bool irq_validate_new_type(unsigned int curr, unsigned int new)
+{
+    return (curr == IRQ_TYPE_INVALID || curr == new );
+}
+
+static int irq_set_type(unsigned int irq, unsigned int type)
+{
+    unsigned long flags;
+    struct irq_desc *desc = irq_to_desc(irq);
+    int ret = -EBUSY;
+
+    spin_lock_irqsave(&desc->lock, flags);
+
+    if ( !irq_validate_new_type(desc->arch.type, type) )
+        goto err;
+
+    desc->arch.type = type;
+
+    ret = 0;
+
+err:
+    spin_unlock_irqrestore(&desc->lock, flags);
+
+    return ret;
+}
+
+int platform_get_irq(const struct dt_device_node *device, int index)
+{
+    struct dt_irq dt_irq;
+
+    if ( dt_device_get_irq(device, index, &dt_irq) )
+        return -1;
+
+    if ( irq_set_type(dt_irq.irq, dt_irq.type) )
+        return -1;
+
+    return dt_irq.irq;
+}
+
 int arch_init_one_irq_desc(struct irq_desc *desc)
 {
     desc->arch.type = IRQ_TYPE_INVALID;
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 08 15:57:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 15:57:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.942506.1341688 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2BKQ-0005wI-2v; Tue, 08 Apr 2025 15:57:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 942506.1341688; Tue, 08 Apr 2025 15:57: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 1u2BKP-0005vT-Qu; Tue, 08 Apr 2025 15:57:33 +0000
Received: by outflank-mailman (input) for mailman id 942506;
 Tue, 08 Apr 2025 15:57:32 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=f4Vq=W2=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1u2BKO-0004Yq-Ih
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 15:57:32 +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 2d6a55dd-1492-11f0-9ffb-bf95429c2676;
 Tue, 08 Apr 2025 17:57:30 +0200 (CEST)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-abf3d64849dso966383466b.3
 for <xen-devel@lists.xenproject.org>; Tue, 08 Apr 2025 08:57:30 -0700 (PDT)
Received: from fedora.. (user-109-243-64-225.play-internet.pl.
 [109.243.64.225]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-ac7c018556bsm929934566b.156.2025.04.08.08.57.28
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 08 Apr 2025 08:57:29 -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: 2d6a55dd-1492-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1744127850; x=1744732650; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=xpeQYUWMQ0EnXPhGUr9CwT2CGE1bPu9ktFLlbeAAZLE=;
        b=EnztfdtDE76uFITi52RB2yffM3YmtgRORIfEZMJPVShuAj9PM5kqiqCdiBcFbzWyeD
         2xZef6gnRIeaY8XsIEch64pBCAjxAxRyxO9/ts6N3FgvtWmirU/2txCagM5UgbamOWRc
         KrGCFBd2sFdaeNpSTtcCKNCc7Yd+C8oVzioYCvoezAQt4gHH3DOvAE2FzBXfblW1MMlY
         3EUPkSURAS478wqIlF7dRNp9ofNxGvjDRbJxDBCg1XxjoM+kvoaPqP1H6FujMJ/vFvPB
         tI+pYfqY6okGCNmxZEY+Qq0xaBgQDtvf0JU/QhAxGDq0UFG7S+yvoXOt0Xyo6EPP0qwL
         /yRg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744127850; x=1744732650;
        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=xpeQYUWMQ0EnXPhGUr9CwT2CGE1bPu9ktFLlbeAAZLE=;
        b=sF7rMK0iRkOk0ePdto/DMFPe2l5vIqZfChIMLW8xOkxbx3IPslhXoy0oQT5g8kwNor
         7ssZ49atMxwBkyNFSkDUOPFhtZWQSz+Ut4zVriVhB0tO2dnPH4soRNCrIYtNBx4Yf/+A
         v6OL75wF+DFVWViXWOWo58QTrRHTZvYNg9C/eXgmDAKXpnbma92pewMjxsMKHB3qkIfk
         GT+ZaqxlhFM9ZJ87nVDTmgQX1sYJ+aV7lEh+lilRsF6AEgPg0NyqimknnUYb040jfG6T
         aj0HcTss/Cy01TwxCt4U2mg/RoI+c6mxWzSqVUDWiF7nFhdQwN5ketGVpBYdqSXbp/k1
         rCWg==
X-Gm-Message-State: AOJu0YwZomf5I32b+fBpUBwOBnWUgNY/wCIkw+CD0uGU5vb522/x+4Az
	Rj4eZuPBIqwDLNBUlAjj9RFmmFlazGauxVQOzpNzmouMaMsTshOr4n1uMw==
X-Gm-Gg: ASbGncsVIWn9x5SPi3bxUBftXXgIiGE1uPj2hFAdqrtGJpl3246RIfNCEBGAZOvwJKi
	pffPaQLFNzh5uya/FUi1ACmx082mm3x13nlGu11bc7lZjpTYsOntFqdMGZ3QKSMm0sfMb1HPzOE
	PoalE/9ozZg514FXAyhFq1WCfGJDh2SwD0nLzEkNgUIlDeWsv6+udk8Cpb4fZTpU92JxJyUu7pl
	C76Mn3M2AShWe6zjQhKfvfVoMVXjjelmF9zmhLFyBZTwA3Nd1EAaP6kbUwMh8XpGM4EAtRuvRI7
	B+BmcSxB1qxVj/IuoX4hSfWn7MM+BzyGDXLb9gwnoWOk9t5bcqKcbQ3n0z45b8eSpovXSxzVrT8
	68HU94Mi/xyMzzBJKypZD923t
X-Google-Smtp-Source: AGHT+IEn04y7KC86eE2BNh70/HPXwqPH/Y/Yt0uP5OBEdcsZQ7+/Gzni+H8MI0kgZ0n6U3pjDLL+rQ==
X-Received: by 2002:a17:907:1ca7:b0:ac4:85b:f973 with SMTP id a640c23a62f3a-ac7d1819306mr1292149166b.34.1744127849988;
        Tue, 08 Apr 2025 08:57:29 -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>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 06/14] xen/riscv: riscv_of_processor_hartid() implementation
Date: Tue,  8 Apr 2025 17:57:10 +0200
Message-ID: <ab592d50ad161ffed3950bdf58ade49ae90a3c0e.1744126720.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <cover.1744126720.git.oleksii.kurochko@gmail.com>
References: <cover.1744126720.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Implements riscv_of_processor_hartid() to get the hart ID of the given
device tree node and do some checks if CPU is available and given device
tree node has proper riscv,isa property.

As a helper function of_get_cpu_hwid() is introduced to deal specifically
with reg propery of a CPU device node.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/arch/riscv/include/asm/smp.h |  3 ++
 xen/arch/riscv/smpboot.c         | 68 ++++++++++++++++++++++++++++++++
 2 files changed, 71 insertions(+)

diff --git a/xen/arch/riscv/include/asm/smp.h b/xen/arch/riscv/include/asm/smp.h
index 188c033718..9b68f1e27a 100644
--- a/xen/arch/riscv/include/asm/smp.h
+++ b/xen/arch/riscv/include/asm/smp.h
@@ -26,6 +26,9 @@ static inline void set_cpuid_to_hartid(unsigned long cpuid,
 
 void setup_tp(unsigned int cpuid);
 
+struct dt_device_node;
+int riscv_of_processor_hartid(struct dt_device_node *node, unsigned long *hart);
+
 void smp_clear_cpu_maps(void);
 
 #endif
diff --git a/xen/arch/riscv/smpboot.c b/xen/arch/riscv/smpboot.c
index 0f4dcc28e1..3193639f00 100644
--- a/xen/arch/riscv/smpboot.c
+++ b/xen/arch/riscv/smpboot.c
@@ -1,5 +1,8 @@
 #include <xen/cpumask.h>
+#include <xen/device_tree.h>
+#include <xen/errno.h>
 #include <xen/init.h>
+#include <xen/types.h>
 
 cpumask_t cpu_online_map;
 cpumask_t cpu_present_map;
@@ -13,3 +16,68 @@ void __init smp_clear_cpu_maps(void)
     cpumask_set_cpu(0, &cpu_online_map);
     cpumask_copy(&cpu_present_map, &cpu_possible_map);
 }
+
+/**
+ * of_get_cpu_hwid - Get the hardware ID from a CPU device node
+ *
+ * @cpun: CPU number(logical index) for which device node is required
+ * @thread: The local thread number to get the hardware ID for.
+ *
+ * Return: The hardware ID for the CPU node or ~0ULL if not found.
+ */
+static uint64_t of_get_cpu_hwid(struct dt_device_node *cpun, unsigned int thread)
+{
+    const __be32 *cell;
+    int ac;
+    uint32_t len;
+
+    ac = dt_n_addr_cells(cpun);
+    cell = dt_get_property(cpun, "reg", &len);
+    if ( !cell || !ac || ((sizeof(*cell) * ac * (thread + 1)) > len) )
+        return ~0ULL;
+
+    cell += ac * thread;
+    return dt_read_number(cell, ac);
+}
+
+/*
+ * Returns the hart ID of the given device tree node, or -ENODEV if the node
+ * isn't an enabled and valid RISC-V hart node.
+ */
+int riscv_of_processor_hartid(struct dt_device_node *node, unsigned long *hart)
+{
+    const char *isa;
+
+    if ( !dt_device_is_compatible(node, "riscv") )
+    {
+        printk("Found incompatible CPU\n");
+        return -ENODEV;
+    }
+
+    *hart = (unsigned long) of_get_cpu_hwid(node, 0);
+    if ( *hart == ~0UL )
+    {
+        printk("Found CPU without hart ID\n");
+        return -ENODEV;
+    }
+
+    if ( !dt_device_is_available(node))
+    {
+        printk("CPU with hartid=%lu is not available\n", *hart);
+        return -ENODEV;
+    }
+
+    if ( dt_property_read_string(node, "riscv,isa", &isa) )
+    {
+        printk("CPU with hartid=%lu has no \"riscv,isa\" property\n", *hart);
+        return -ENODEV;
+    }
+
+    if ( isa[0] != 'r' || isa[1] != 'v' )
+    {
+        printk("CPU with hartid=%lu has an invalid ISA of \"%s\"\n", *hart, isa);
+        return -ENODEV;
+    }
+
+    return 0;
+}
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 08 15:57:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 15:57:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.942508.1341698 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2BKR-0006IR-AC; Tue, 08 Apr 2025 15:57:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 942508.1341698; Tue, 08 Apr 2025 15:57:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2BKR-0006He-5j; Tue, 08 Apr 2025 15:57:35 +0000
Received: by outflank-mailman (input) for mailman id 942508;
 Tue, 08 Apr 2025 15:57: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=f4Vq=W2=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1u2BKP-0004Yq-Ii
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 15:57:33 +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 2dee1f74-1492-11f0-9ffb-bf95429c2676;
 Tue, 08 Apr 2025 17:57:31 +0200 (CEST)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-ac2af2f15d1so776002666b.1
 for <xen-devel@lists.xenproject.org>; Tue, 08 Apr 2025 08:57:31 -0700 (PDT)
Received: from fedora.. (user-109-243-64-225.play-internet.pl.
 [109.243.64.225]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-ac7c018556bsm929934566b.156.2025.04.08.08.57.30
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 08 Apr 2025 08:57: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: 2dee1f74-1492-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1744127851; x=1744732651; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=IiCk6l0j5WiAsBCvt03FXOQepiOD85wA7EDe/CpLmKg=;
        b=jhEXWqruMyRd6bqsiZMLZ9Sr2SpaWC4DVVxerLond0rk1Hi0eTLLFw3go7X12c3X7r
         CN7lxruNGVFMLbt7CryhjEliPqVwoDSdjnLOeXSz3aqUoFaovgX9KyXUfUWPWWX7Y8u0
         Az0sjZ1MaD+Vc2mCAFiesgoizH/SK5DaWxIfeoDMm5f4exzDN+gHQxfEXP0iXPEOSm/W
         flf59RwZZx/24pbik/KSa/nZQYFP9aokkGWyUFb2PRl3CofOtgti0z39VQV1Ygie0go7
         igfFulqO77BbdN9tw5/3+OiPLgBiV9QwDETet/2B9kcZ1mL26yqEPj9iuLkFjuA90uSc
         L1uA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744127851; x=1744732651;
        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=IiCk6l0j5WiAsBCvt03FXOQepiOD85wA7EDe/CpLmKg=;
        b=tUk0GjcMHru9zVkVhcfxMu+Ayo8FZPRNNYySlnfDpoFw7kWlS6pNomzWO9eIoOmSyc
         AXf+mlyyv8E8LhmjrLOWru1bncjrpt9Oe/DlBIQv5xze28C3YBwpEzX2vcTZZdlK3PG3
         H1bFXUWMIt7PqXVSO/PcjHW0rRSHUl1bdkmvg9OEEza/Mwj3AKICwoCgjyHO9Zhzdtx9
         Td/aDqGoy3kZjUjRrHaimHSjECnlCi7qNNoyJTVhc8+D2qaV3gs7xoo8zRMcRBGLKgz7
         lSRxzzs9uLpjj3NEmbnhVj+zb+K0hGTIG/86hqAUVbDRQgZmAbKiTCRGygW1JVG0nNtY
         GObQ==
X-Gm-Message-State: AOJu0YwGk18ahEm4vrxn5berhDXecJN70iGDSf2mHN9qyP7/o+lrmXmc
	GajcJdLn/BZueT06SaCITr1ZbFaY4jYyntLhh89fONWt/TUfO42eGrLi4g==
X-Gm-Gg: ASbGnctszoaB9IbjJjRnMfGtjKmEpgXXHKELVFtVWLxbMtXVBS/jZrxmAQCqqkeOCSI
	rsphoC7jza2eh62XtQ24U+fwfLcQmpjOaROEflGZmQES9Rl69eNhPl2ZoglspUBsRs7TOWmiujy
	xjC2ikYGQhJqx12RUYnY1slLUwhJ1ljGcapRkZ7cC+1ARIRWvbb2V5z4Oh0ZTsb4cQOElqdi0sG
	89h1De2dEbLePoHRSjjMc4+ZRFl7zJhyFpI0LJMVW7oDLjol01EL0V8wkt5MrxiNdaWi/y1i7MV
	57EKTPb8lEc6u9Wj5g7uyVqb5cvmyj7Mtyabw+0rsSNE3MvkDB8HwvunKSOUuTLSfYYkLGIwb2U
	nBAHkIRvmjWdFZQ==
X-Google-Smtp-Source: AGHT+IFgwfOxXVHfVYqu1wdOQ9GYxprRsQ4/F7xJSCdqFJTVN4OXyfi5h1a5KmgqZzyh/NYVvTBqEA==
X-Received: by 2002:a17:907:9488:b0:ac3:4139:9346 with SMTP id a640c23a62f3a-ac7e717034fmr947478766b.9.1744127850991;
        Tue, 08 Apr 2025 08:57:30 -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>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Romain Caritey <Romain.Caritey@microchip.com>
Subject: [PATCH v1 07/14] wqriscv/intc: Introduce intc_hw_operations abstraction
Date: Tue,  8 Apr 2025 17:57:11 +0200
Message-ID: <7c1e0a9c36e92e993ae10d74b3cf816669282d6f.1744126665.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <cover.1744126665.git.oleksii.kurochko@gmail.com>
References: <cover.1744126665.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Introduce the `intc_hw_operations` structure to encapsulate interrupt
controller-specific data and operations. This structure includes:
- A pointer to interrupt controller information (`intc_info`)
- Callbacks to initialize the controller and set IRQ type/priority
- A reference to an interupt controller descriptor (`host_irq_type`)

Also introduce generic helper functions:
- `intc_init()`: Initializes the interrupt controller
- `register_intc_ops()`: Registers the `intc_hw_operations` implementation
- `intc_route_irq_to_xen()`: Configures IRQ routing to Xen, setting handler,
  type, and priority

Most of these functions act as thin wrappers around the corresponding
callbacks in `intc_hw_operations`.

This abstraction lays the groundwork for supporting multiple interrupt
controller types (e.g., PLIC, APLIC) in extensible way.

This patch is based on the changes from [1].

[1] https://gitlab.com/xen-project/people/olkur/xen/-/commit/7cfb4bd4748ca268142497ac5c327d2766fb342d

Co-developed-by: Romain Caritey <Romain.Caritey@microchip.com>
Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/arch/riscv/include/asm/intc.h | 23 ++++++++++++++
 xen/arch/riscv/intc.c             | 51 +++++++++++++++++++++++++++++++
 2 files changed, 74 insertions(+)

diff --git a/xen/arch/riscv/include/asm/intc.h b/xen/arch/riscv/include/asm/intc.h
index 52ba196d87..0d498b10f4 100644
--- a/xen/arch/riscv/include/asm/intc.h
+++ b/xen/arch/riscv/include/asm/intc.h
@@ -17,6 +17,29 @@ struct intc_info {
     const struct dt_device_node *node;
 };
 
+struct intc_hw_operations {
+    /* Hold intc hw information */
+    const struct intc_info *info;
+    /* Initialize the intc and the boot CPU */
+    int (*init)(void);
+
+    /* hw_irq_controller to enable/disable/eoi host irq */
+    hw_irq_controller *host_irq_type;
+
+    /* Set IRQ type */
+    void (*set_irq_type)(struct irq_desc *desc, unsigned int type);
+    /* Set IRQ priority */
+    void (*set_irq_priority)(struct irq_desc *desc, unsigned int priority);
+
+};
+
 void intc_preinit(void);
 
+void intc_init(void);
+
+void register_intc_ops(const struct intc_hw_operations *ops);
+
+struct irq_desc;
+void intc_route_irq_to_xen(struct irq_desc *desc, unsigned int priority);
+
 #endif /* ASM__RISCV__INTERRUPT_CONTOLLER_H */
diff --git a/xen/arch/riscv/intc.c b/xen/arch/riscv/intc.c
index 4061a3c457..8274897d8c 100644
--- a/xen/arch/riscv/intc.c
+++ b/xen/arch/riscv/intc.c
@@ -1,9 +1,21 @@
 /* SPDX-License-Identifier: GPL-2.0-only */
 
 #include <xen/acpi.h>
+#include <xen/bug.h>
 #include <xen/device_tree.h>
 #include <xen/init.h>
+#include <xen/irq.h>
 #include <xen/lib.h>
+#include <xen/spinlock.h>
+
+#include <asm/intc.h>
+
+static const struct intc_hw_operations *intc_hw_ops;
+
+void register_intc_ops(const struct intc_hw_operations *ops)
+{
+    intc_hw_ops = ops;
+}
 
 void __init intc_preinit(void)
 {
@@ -12,3 +24,42 @@ void __init intc_preinit(void)
     else
         panic("ACPI interrupt controller preinit() isn't implemented\n");
 }
+
+void __init intc_init(void)
+{
+    ASSERT(intc_hw_ops);
+
+    if ( intc_hw_ops->init() )
+        panic("Failed to initialize the interrupt controller drivers\n");
+}
+
+/* desc->irq needs to be disabled before calling this function */
+static void intc_set_irq_type(struct irq_desc *desc, unsigned int type)
+{
+    ASSERT(test_bit(_IRQ_DISABLED, &desc->status));
+    ASSERT(spin_is_locked(&desc->lock));
+    ASSERT(type != IRQ_TYPE_INVALID);
+    ASSERT(intc_hw_ops && intc_hw_ops->set_irq_type);
+
+    intc_hw_ops->set_irq_type(desc, type);
+}
+
+static void intc_set_irq_priority(struct irq_desc *desc, unsigned int priority)
+{
+    ASSERT(intc_hw_ops && intc_hw_ops->set_irq_priority);
+
+    intc_hw_ops->set_irq_priority(desc, priority);
+}
+
+void intc_route_irq_to_xen(struct irq_desc *desc, unsigned int priority)
+{
+    ASSERT(test_bit(_IRQ_DISABLED, &desc->status));
+    ASSERT(spin_is_locked(&desc->lock));
+    /* Can't route interrupts that don't exist */
+    ASSERT(intc_hw_ops && desc->irq < intc_hw_ops->info->nr_irqs);
+
+    desc->handler = intc_hw_ops->host_irq_type;
+
+    intc_set_irq_type(desc, desc->arch.type);
+    intc_set_irq_priority(desc, priority);
+}
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 08 15:57:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 15:57:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.942507.1341706 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2BKS-0006OT-2p; Tue, 08 Apr 2025 15:57:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 942507.1341706; Tue, 08 Apr 2025 15:57:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2BKR-0006LT-I1; Tue, 08 Apr 2025 15:57:35 +0000
Received: by outflank-mailman (input) for mailman id 942507;
 Tue, 08 Apr 2025 15:57:33 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=f4Vq=W2=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1u2BKP-0004Yr-HI
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 15:57:33 +0000
Received: from mail-ej1-x62b.google.com (mail-ej1-x62b.google.com
 [2a00:1450:4864:20::62b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2e9ceea1-1492-11f0-9eaa-5ba50f476ded;
 Tue, 08 Apr 2025 17:57:32 +0200 (CEST)
Received: by mail-ej1-x62b.google.com with SMTP id
 a640c23a62f3a-ac298c8fa50so959171766b.1
 for <xen-devel@lists.xenproject.org>; Tue, 08 Apr 2025 08:57:32 -0700 (PDT)
Received: from fedora.. (user-109-243-64-225.play-internet.pl.
 [109.243.64.225]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-ac7c018556bsm929934566b.156.2025.04.08.08.57.31
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 08 Apr 2025 08:57:31 -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: 2e9ceea1-1492-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1744127852; x=1744732652; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=IiCk6l0j5WiAsBCvt03FXOQepiOD85wA7EDe/CpLmKg=;
        b=gQU13qDOttBKEnlHvx+1Mfx58cnepl9OuiFpJiNcmb6bGTh3Hdm3G/LRP0XeelWG6o
         zAUfkSa6kLyRR4bMtU1znQHijvLxOFpWt6RMLXCMtF5uqLw5cvuu3GVkrmmDAmUN2+Tc
         +9zcdcOuR0RW/Z5S1uedvSnpfI/QnfcFqmQaVywVYXwT6Qs6IgryZpShD/JRbwsyJY0R
         Zmxc5vvymMrX8+jAmhWkw1uQGlmt8rNNdCCW2E9fhYwo+Ybp8iPx0uvFeZqJI0+7aHi9
         4nCFhm4kkYitu2gKFeRciwxOhXIB71/THbZBF+X0yX81zJ3RD3gRoNMn7EJuvzFO90Xv
         I06Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744127852; x=1744732652;
        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=IiCk6l0j5WiAsBCvt03FXOQepiOD85wA7EDe/CpLmKg=;
        b=RpHm+z6N9zjnUHV0rIRmABQsv+4BH/RLjdqI9v7IvWb3qbVu5T7miPVmxe3NRK/eYR
         kTYQPiES8hwVC9deJq9IMvz2CQ3N2XihtpGRXQ31BdeUeFKM1rwdqvxTWsMRbuJH6wqs
         jgt2vIFHXd6W6klF9NFVre+p3xTtIGjcTkuztJ8ndC2/v30z5u4SdQnkxN/vnh8t4IRw
         Qz8rbJ5iNs5nwDHtKDnvAKhYCCUICfZJFwpaBi73+rdeW3Xzem8TPU9v8j1Togm4scp0
         weonPHtWG3xBxBeDDsjsTzYUtDxNWHqwoirn1sG1kn18OQvIMzOvfQDZdFl8kIP7S9Oz
         YLEw==
X-Gm-Message-State: AOJu0YysUJQMXUWec/RCJ3neOleig4983uHKyy0ilu0Wml7MX3NznQHj
	91FPzutkKDPsZVwJsWtnlMcIm2fp92+AgiasRFKNvFpV0N/+zTv5LN0E0g==
X-Gm-Gg: ASbGncsXavRx6U6zS8W0MvIXPSQ0BG9n+e6FI8dKkzE9uYkQUbaaRfjR/u05694ayBm
	5o3Hwr/rj9AFUltwRfDRhaWk5wDFnTMHP6kSq/vLyBNbIQsQ/m4DsyN+IX2hS8EuaDjG1RDlDnh
	DDKEk1YjsotMHNUlMJoE8NL/VWSsZUzmceHoQvXPfYfnMaGkLXBMdAu+QUYQYOvw9/RszATkHS7
	p84bntBV0JAqAhamAdQCdS0TToPY62Y0TTn56nnzEx/zRmgA4gQGxIuvbE/2baU9NDT4ZMKhr6+
	fLhA7EfMgenI47b4GttQEUM3i2Pxw0BWRQHI3i178ZfrKDY60MmOTOIV9P8A8Ynr5jAoceG3uNh
	jzWFWVsiMv6SCzQ==
X-Google-Smtp-Source: AGHT+IGgpSlMZNNIp0rd6Ulo0pZO/vslcVWFFOm8JSDbN+R8a0ns3rXs1/gaM3I5T7VDk++uygeImQ==
X-Received: by 2002:a17:907:6d29:b0:ac1:f19a:c0a0 with SMTP id a640c23a62f3a-ac7d177475emr1383649066b.20.1744127851981;
        Tue, 08 Apr 2025 08:57:31 -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>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Romain Caritey <Romain.Caritey@microchip.com>
Subject: [PATCH v1 07/14] xen/riscv: Introduce intc_hw_operations abstraction
Date: Tue,  8 Apr 2025 17:57:12 +0200
Message-ID: <139b37478b4ca7e2ec3a04b73f462197227f57fa.1744126720.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <cover.1744126720.git.oleksii.kurochko@gmail.com>
References: <cover.1744126720.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Introduce the `intc_hw_operations` structure to encapsulate interrupt
controller-specific data and operations. This structure includes:
- A pointer to interrupt controller information (`intc_info`)
- Callbacks to initialize the controller and set IRQ type/priority
- A reference to an interupt controller descriptor (`host_irq_type`)

Also introduce generic helper functions:
- `intc_init()`: Initializes the interrupt controller
- `register_intc_ops()`: Registers the `intc_hw_operations` implementation
- `intc_route_irq_to_xen()`: Configures IRQ routing to Xen, setting handler,
  type, and priority

Most of these functions act as thin wrappers around the corresponding
callbacks in `intc_hw_operations`.

This abstraction lays the groundwork for supporting multiple interrupt
controller types (e.g., PLIC, APLIC) in extensible way.

This patch is based on the changes from [1].

[1] https://gitlab.com/xen-project/people/olkur/xen/-/commit/7cfb4bd4748ca268142497ac5c327d2766fb342d

Co-developed-by: Romain Caritey <Romain.Caritey@microchip.com>
Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/arch/riscv/include/asm/intc.h | 23 ++++++++++++++
 xen/arch/riscv/intc.c             | 51 +++++++++++++++++++++++++++++++
 2 files changed, 74 insertions(+)

diff --git a/xen/arch/riscv/include/asm/intc.h b/xen/arch/riscv/include/asm/intc.h
index 52ba196d87..0d498b10f4 100644
--- a/xen/arch/riscv/include/asm/intc.h
+++ b/xen/arch/riscv/include/asm/intc.h
@@ -17,6 +17,29 @@ struct intc_info {
     const struct dt_device_node *node;
 };
 
+struct intc_hw_operations {
+    /* Hold intc hw information */
+    const struct intc_info *info;
+    /* Initialize the intc and the boot CPU */
+    int (*init)(void);
+
+    /* hw_irq_controller to enable/disable/eoi host irq */
+    hw_irq_controller *host_irq_type;
+
+    /* Set IRQ type */
+    void (*set_irq_type)(struct irq_desc *desc, unsigned int type);
+    /* Set IRQ priority */
+    void (*set_irq_priority)(struct irq_desc *desc, unsigned int priority);
+
+};
+
 void intc_preinit(void);
 
+void intc_init(void);
+
+void register_intc_ops(const struct intc_hw_operations *ops);
+
+struct irq_desc;
+void intc_route_irq_to_xen(struct irq_desc *desc, unsigned int priority);
+
 #endif /* ASM__RISCV__INTERRUPT_CONTOLLER_H */
diff --git a/xen/arch/riscv/intc.c b/xen/arch/riscv/intc.c
index 4061a3c457..8274897d8c 100644
--- a/xen/arch/riscv/intc.c
+++ b/xen/arch/riscv/intc.c
@@ -1,9 +1,21 @@
 /* SPDX-License-Identifier: GPL-2.0-only */
 
 #include <xen/acpi.h>
+#include <xen/bug.h>
 #include <xen/device_tree.h>
 #include <xen/init.h>
+#include <xen/irq.h>
 #include <xen/lib.h>
+#include <xen/spinlock.h>
+
+#include <asm/intc.h>
+
+static const struct intc_hw_operations *intc_hw_ops;
+
+void register_intc_ops(const struct intc_hw_operations *ops)
+{
+    intc_hw_ops = ops;
+}
 
 void __init intc_preinit(void)
 {
@@ -12,3 +24,42 @@ void __init intc_preinit(void)
     else
         panic("ACPI interrupt controller preinit() isn't implemented\n");
 }
+
+void __init intc_init(void)
+{
+    ASSERT(intc_hw_ops);
+
+    if ( intc_hw_ops->init() )
+        panic("Failed to initialize the interrupt controller drivers\n");
+}
+
+/* desc->irq needs to be disabled before calling this function */
+static void intc_set_irq_type(struct irq_desc *desc, unsigned int type)
+{
+    ASSERT(test_bit(_IRQ_DISABLED, &desc->status));
+    ASSERT(spin_is_locked(&desc->lock));
+    ASSERT(type != IRQ_TYPE_INVALID);
+    ASSERT(intc_hw_ops && intc_hw_ops->set_irq_type);
+
+    intc_hw_ops->set_irq_type(desc, type);
+}
+
+static void intc_set_irq_priority(struct irq_desc *desc, unsigned int priority)
+{
+    ASSERT(intc_hw_ops && intc_hw_ops->set_irq_priority);
+
+    intc_hw_ops->set_irq_priority(desc, priority);
+}
+
+void intc_route_irq_to_xen(struct irq_desc *desc, unsigned int priority)
+{
+    ASSERT(test_bit(_IRQ_DISABLED, &desc->status));
+    ASSERT(spin_is_locked(&desc->lock));
+    /* Can't route interrupts that don't exist */
+    ASSERT(intc_hw_ops && desc->irq < intc_hw_ops->info->nr_irqs);
+
+    desc->handler = intc_hw_ops->host_irq_type;
+
+    intc_set_irq_type(desc, desc->arch.type);
+    intc_set_irq_priority(desc, priority);
+}
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 08 15:57:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 15:57:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.942511.1341709 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2BKS-0006ag-RZ; Tue, 08 Apr 2025 15:57:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 942511.1341709; Tue, 08 Apr 2025 15:57:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2BKS-0006XF-DK; Tue, 08 Apr 2025 15:57:36 +0000
Received: by outflank-mailman (input) for mailman id 942511;
 Tue, 08 Apr 2025 15:57:35 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=f4Vq=W2=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1u2BKQ-0004Yr-Sf
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 15:57:35 +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 2f53f27d-1492-11f0-9eaa-5ba50f476ded;
 Tue, 08 Apr 2025 17:57:34 +0200 (CEST)
Received: by mail-ej1-x62a.google.com with SMTP id
 a640c23a62f3a-ac28e66c0e1so874035966b.0
 for <xen-devel@lists.xenproject.org>; Tue, 08 Apr 2025 08:57:34 -0700 (PDT)
Received: from fedora.. (user-109-243-64-225.play-internet.pl.
 [109.243.64.225]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-ac7c018556bsm929934566b.156.2025.04.08.08.57.32
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 08 Apr 2025 08:57:32 -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: 2f53f27d-1492-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1744127853; x=1744732653; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=d/3dao7nIwQTt2SEejDxKzt5Yw5IJNGsAcfMnIvzhVs=;
        b=kSWvFXs3y6DjB4CFA/rpOIdh9YOUQtRPc6SoXoJk6Ze81yT5TTKUh81DzhFHevI795
         0btX8pLXam9GXuYvYn8l8wOywHlqTLjsSznCcWH9pv8HuIVmzNtQYSHsmvJoNprKn1mS
         4i4MrI/9m7I6e+dkd6p3jD8uaJrN1nzkr+GFRTORwjX8QN1/2Kit6irt1rXwDd+AOVeL
         wRKYeE2ROql8CeGwBe867w3RPNwjBUotWkuVi97obdT0+G6agUFb7TsOlIt5+I4aA4fQ
         EO0Bud7GdWwADHpXSxrfz7bzz8mgrie6t7fc/lETcUiZHxptk8lzzBlNSehtAW5I47Co
         MzAQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744127853; x=1744732653;
        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=d/3dao7nIwQTt2SEejDxKzt5Yw5IJNGsAcfMnIvzhVs=;
        b=DlzWVD2sBJnaAfWlaPxNuyS0ZOVnwmYA8+x/FBE1YjOOGROraYJRIaIBQXqSJRnkxc
         pk4YkssaHL0sI7X7TMAuZQXG3icX0hjtEQViWyhjoA9q34nbCvH2kcx9U25UZx0lrLjP
         Os/YyYDWLOGL95eph7j5YwCq1fq4kzTbKT2M4ichEAPqGSke464bSiqe17waRJGwxZQG
         Zg9S2v/VBboDeet+0zxaBx9vdNq+9li+wVdRBqQ3C44+x4zNBLJa4H5hHaWpzWYSfOR3
         lewlVATJiXTDaldlTtUUYT+LZnVZFhR+VTf7AvmmxBCgRQ8N9TasE3H4lvUGLB2UnOfJ
         dt3A==
X-Gm-Message-State: AOJu0YyUK2ow666GIsiXas9yySnjJocnXJNbvDuB4QtEo9/PBPM4DinL
	eLCYFfyUqYESJylD50P0WustRO95W1Vflonqh5FZG6sb44H0sVLglA5MHA==
X-Gm-Gg: ASbGnctCGMuCzqMlGPx2Zr5t2BZ2/gfMiq+jO3fLQdvXJRePIt6RLgDvQlayhzLnhYC
	c2yTZyyUjzy1UVxs4/rml2xpVGSh17wTXQEF8B5yR/jwxtnhaXpTLXSgyScZ0NCwPJ8DKQ4LggK
	nF0jbKMjXvMoWonujzHRhiCYCkfiNp+ND97GbGnmjYQ+XJ5gEvB5SNPuJXw37WLGCyCtTJcee2z
	CJelfpuwAfhlYvIjeXHfvhCeYfFv2uwkxzmcMdi1WSBXhjT6gZDGslwOE3Ms4hH1YIdPSS8LCPZ
	jSgfZTdadbTqedXrao5UZgwMXd8dqewIl1MNH8tFJQ9NmRixZ5odbMbVdim+T9PwMSKiYiXOGbb
	KOUMq2oBqvLZTruURNBpMgshw
X-Google-Smtp-Source: AGHT+IFwUUIkpfovoMDrPcqwhafTmBhx2g+D+hqeENK4vIZ7x9JFl5bRBtLOBsCJtqT3stqYNhsraA==
X-Received: by 2002:a17:907:2d2b:b0:ac2:fd70:dda3 with SMTP id a640c23a62f3a-ac7d6d73905mr1303765366b.35.1744127853058;
        Tue, 08 Apr 2025 08:57:33 -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>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Romain Caritey <Romain.Caritey@microchip.com>
Subject: [PATCH v1 08/14] xen/riscv: imsic_init() implementation
Date: Tue,  8 Apr 2025 17:57:13 +0200
Message-ID: <09e0fcd64f97062441a68102ead520b818150fe9.1744126720.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <cover.1744126720.git.oleksii.kurochko@gmail.com>
References: <cover.1744126720.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

imsic_init() is introduced to parse device tree node, which has the following
bindings [2], and based on the parsed information update IMSIC configuration
which is stored in imsic_cfg.

The following helpers are introduces for imsic_init() usage:
  - imsic_parse_node() parses IMSIC node from DTS
  - imsic_get_parent_hartid() returns the hart ( CPU ) ID of the given device
    tree node.

This patch is based on the code from [1].

Since Microchip originally developed imsic.{c,h}, an internal discussion with
them led to the decision to use the MIT license.

[1] https://gitlab.com/xen-project/people/olkur/xen/-/commit/0b1a94f2bc3bb1a81cd26bb75f0bf578f84cb4d4
[2] https://elixir.bootlin.com/linux/v6.12/source/Documentation/devicetree/bindings/interrupt-controller/riscv,imsics.yaml

Co-developed-by: Romain Caritey <Romain.Caritey@microchip.com>
Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/arch/riscv/Makefile            |   1 +
 xen/arch/riscv/imsic.c             | 286 +++++++++++++++++++++++++++++
 xen/arch/riscv/include/asm/imsic.h |  66 +++++++
 3 files changed, 353 insertions(+)
 create mode 100644 xen/arch/riscv/imsic.c
 create mode 100644 xen/arch/riscv/include/asm/imsic.h

diff --git a/xen/arch/riscv/Makefile b/xen/arch/riscv/Makefile
index 457e8e88a4..baa499a72d 100644
--- a/xen/arch/riscv/Makefile
+++ b/xen/arch/riscv/Makefile
@@ -2,6 +2,7 @@ obj-y += aplic.o
 obj-y += cpufeature.o
 obj-$(CONFIG_EARLY_PRINTK) += early_printk.o
 obj-y += entry.o
+obj-y += imsic.o
 obj-y += intc.o
 obj-y += irq.o
 obj-y += mm.o
diff --git a/xen/arch/riscv/imsic.c b/xen/arch/riscv/imsic.c
new file mode 100644
index 0000000000..99def9af2d
--- /dev/null
+++ b/xen/arch/riscv/imsic.c
@@ -0,0 +1,286 @@
+/* SPDX-License-Identifier: MIT */
+
+/*
+ * xen/arch/riscv/imsic.c
+ *
+ * RISC-V Incoming MSI Controller support
+ *
+ * (c) 2023 Microchip Technology Inc.
+ * (c) 2024 Vates
+ */
+
+#include <xen/const.h>
+#include <xen/device_tree.h>
+#include <xen/errno.h>
+#include <xen/init.h>
+#include <xen/macros.h>
+#include <xen/xmalloc.h>
+
+#include <asm/imsic.h>
+
+static struct imsic_config imsic_cfg;
+
+const struct imsic_config *imsic_get_config(void)
+{
+    return &imsic_cfg;
+}
+
+static int __init imsic_get_parent_hartid(struct dt_device_node *node,
+                                          unsigned int index,
+                                          unsigned long *hartid)
+{
+    int res;
+    unsigned long hart;
+    struct dt_phandle_args args;
+
+    /* Try the new-style interrupts-extended first */
+    res = dt_parse_phandle_with_args(node, "interrupts-extended",
+                                     "#interrupt-cells", index, &args);
+    if ( !res )
+    {
+        res = riscv_of_processor_hartid(args.np->parent, &hart);
+        if ( res < 0 )
+            return -EINVAL;
+
+        *hartid = hart;
+    }
+    return res;
+}
+
+
+static int imsic_parse_node(struct dt_device_node *node,
+                     unsigned int *nr_parent_irqs)
+{
+    int rc;
+    unsigned int tmp;
+    paddr_t base_addr;
+
+    /* Find number of parent interrupts */
+    *nr_parent_irqs = dt_number_of_irq(node);
+    if ( !*nr_parent_irqs )
+    {
+        printk(XENLOG_ERR "%s: no parent irqs available\n", node->name);
+        return -ENOENT;
+    }
+
+    /* Find number of guest index bits in MSI address */
+    rc = dt_property_read_u32(node, "riscv,guest-index-bits",
+                              &imsic_cfg.guest_index_bits);
+    if ( !rc )
+        imsic_cfg.guest_index_bits = 0;
+    tmp = BITS_PER_LONG - IMSIC_MMIO_PAGE_SHIFT;
+    if ( tmp < imsic_cfg.guest_index_bits )
+    {
+        printk(XENLOG_ERR "%s: guest index bits too big\n", node->name);
+        return -ENOENT;
+    }
+
+    /* Find number of HART index bits */
+    rc = dt_property_read_u32(node, "riscv,hart-index-bits",
+                              &imsic_cfg.hart_index_bits);
+    if ( !rc )
+    {
+        /* Assume default value */
+        imsic_cfg.hart_index_bits = fls(*nr_parent_irqs);
+        if ( BIT(imsic_cfg.hart_index_bits, UL) < *nr_parent_irqs )
+            imsic_cfg.hart_index_bits++;
+    }
+    tmp = BITS_PER_LONG - IMSIC_MMIO_PAGE_SHIFT -
+          imsic_cfg.guest_index_bits;
+    if ( tmp < imsic_cfg.hart_index_bits )
+    {
+        printk(XENLOG_ERR "%s: HART index bits too big\n", node->name);
+        return -ENOENT;
+    }
+
+    /* Find number of group index bits */
+    rc = dt_property_read_u32(node, "riscv,group-index-bits",
+                              &imsic_cfg.group_index_bits);
+    if ( !rc )
+        imsic_cfg.group_index_bits = 0;
+    tmp = BITS_PER_LONG - IMSIC_MMIO_PAGE_SHIFT -
+          imsic_cfg.guest_index_bits - imsic_cfg.hart_index_bits;
+    if ( tmp < imsic_cfg.group_index_bits )
+    {
+        printk(XENLOG_ERR "%s: group index bits too big\n", node->name);
+        return -ENOENT;
+    }
+
+    /* Find first bit position of group index */
+    tmp = IMSIC_MMIO_PAGE_SHIFT * 2;
+    rc = dt_property_read_u32(node, "riscv,group-index-shift",
+                              &imsic_cfg.group_index_shift);
+    if ( !rc )
+        imsic_cfg.group_index_shift = tmp;
+    if ( imsic_cfg.group_index_shift < tmp )
+    {
+        printk(XENLOG_ERR "%s: group index shift too small\n", node->name);
+        return -ENOENT;
+    }
+    tmp = imsic_cfg.group_index_bits + imsic_cfg.group_index_shift - 1;
+    if ( tmp >= BITS_PER_LONG )
+    {
+        printk(XENLOG_ERR "%s: group index shift too big\n", node->name);
+        return -EINVAL;
+    }
+
+    /* Find number of interrupt identities */
+    rc = dt_property_read_u32(node, "riscv,num-ids", &imsic_cfg.nr_ids);
+    if ( !rc )
+    {
+        printk(XENLOG_ERR "%s: number of interrupt identities not found\n",
+               node->name);
+        return -ENOENT;
+    }
+
+    if ( (imsic_cfg.nr_ids < IMSIC_MIN_ID) ||
+         (imsic_cfg.nr_ids >= IMSIC_MAX_ID) ||
+         ((imsic_cfg.nr_ids & IMSIC_MIN_ID) != IMSIC_MIN_ID) )
+    {
+        printk(XENLOG_ERR "%s: invalid number of interrupt identities\n",
+               node->name);
+        return -EINVAL;
+    }
+
+    /* Compute base address */
+    imsic_cfg.nr_mmios = 0;
+    rc = dt_device_get_address(node, imsic_cfg.nr_mmios, &base_addr, NULL);
+    if (rc)
+    {
+        printk(XENLOG_ERR "%s: first MMIO resource not found\n", node->name);
+        return -EINVAL;
+    }
+
+    imsic_cfg.base_addr = base_addr;
+    imsic_cfg.base_addr &= ~(BIT(imsic_cfg.guest_index_bits +
+                   imsic_cfg.hart_index_bits +
+                   IMSIC_MMIO_PAGE_SHIFT, UL) - 1);
+    imsic_cfg.base_addr &= ~((BIT(imsic_cfg.group_index_bits, UL) - 1) <<
+                   imsic_cfg.group_index_shift);
+
+    /* Find number of MMIO register sets */
+    imsic_cfg.nr_mmios++;
+    while ( !dt_device_get_address(node, imsic_cfg.nr_mmios, &base_addr, NULL) )
+        imsic_cfg.nr_mmios++;
+
+    return 0;
+}
+
+int __init imsic_init(struct dt_device_node *node)
+{
+    int rc;
+    unsigned long reloff, hartid;
+    uint32_t nr_parent_irqs, index, nr_handlers = 0;
+    paddr_t base_addr;
+
+    /* Parse IMSIC node */
+    rc = imsic_parse_node(node, &nr_parent_irqs);
+    if ( rc )
+        return rc;
+
+    /* Allocate MMIO resource array */
+    imsic_cfg.mmios = xzalloc_array(struct imsic_mmios, imsic_cfg.nr_mmios);
+    if ( !imsic_cfg.mmios )
+        return -ENOMEM;
+
+    /* check MMIO register sets */
+    for ( int i = 0; i < imsic_cfg.nr_mmios; i++ )
+    {
+        rc = dt_device_get_address(node, i, &imsic_cfg.mmios[i].base_addr,
+                                   &imsic_cfg.mmios[i].size);
+        if ( rc )
+        {
+            printk(XENLOG_ERR "%s:  unable to parse MMIO regset %d\n",
+                   node->name, i);
+            goto imsic_init_err;
+        }
+
+        base_addr = imsic_cfg.mmios[i].base_addr;
+        base_addr &= ~(BIT(imsic_cfg.guest_index_bits +
+                   imsic_cfg.hart_index_bits +
+                   IMSIC_MMIO_PAGE_SHIFT, UL) - 1);
+        base_addr &= ~((BIT(imsic_cfg.group_index_bits, UL) - 1) <<
+                   imsic_cfg.group_index_shift);
+        if ( base_addr != imsic_cfg.base_addr )
+        {
+            rc = -EINVAL;
+            printk(XENLOG_ERR "%s: address mismatch for regset %d\n",
+                   node->name, i);
+            goto imsic_init_err;
+        }
+    }
+
+    /* Configure handlers for target CPUs */
+    for ( int i = 0; i < nr_parent_irqs; i++ )
+    {
+        rc = imsic_get_parent_hartid(node, i, &hartid);
+        if ( rc )
+        {
+            printk(XENLOG_WARNING "%s: hart ID for parent irq%d not found\n",
+                   node->name, i);
+            continue;
+        }
+
+        if ( hartid > NR_CPUS )
+        {
+            printk(XENLOG_WARNING "%s: unsupported hart ID=%lu for parent irq%d\n",
+                   node->name, hartid, i);
+            continue;
+        }
+
+        /* Find MMIO location of MSI page */
+        index = imsic_cfg.nr_mmios;
+        reloff = i * BIT(imsic_cfg.guest_index_bits, UL) * IMSIC_MMIO_PAGE_SZ;
+        for ( int j = 0; imsic_cfg.nr_mmios; j++ )
+        {
+            if ( reloff < imsic_cfg.mmios[j].size )
+            {
+                index = j;
+                break;
+            }
+
+            /*
+             * MMIO region size may not be aligned to
+             * BIT(global->guest_index_bits) * IMSIC_MMIO_PAGE_SZ
+             * if holes are present.
+             */
+            reloff -= ROUNDUP(imsic_cfg.mmios[j].size,
+                BIT(imsic_cfg.guest_index_bits, UL) * IMSIC_MMIO_PAGE_SZ);
+        }
+
+        if ( index >= imsic_cfg.nr_mmios )
+        {
+            printk(XENLOG_WARNING "%s: MMIO not found for parent irq%d\n",
+                   node->name, i);
+            continue;
+        }
+
+        if ( !IS_ALIGNED(imsic_cfg.msi[hartid].base_addr + reloff, PAGE_SIZE) )
+        {
+            printk(XENLOG_WARNING "%s: MMIO address 0x%lx is not aligned on a page\n",
+                   node->name, imsic_cfg.msi[hartid].base_addr + reloff);
+            imsic_cfg.msi[hartid].offset = 0;
+            imsic_cfg.msi[hartid].base_addr = 0;
+            continue;
+        }
+
+        imsic_cfg.mmios[index].harts[hartid] = true;
+        imsic_cfg.msi[hartid].base_addr = imsic_cfg.mmios[index].base_addr;
+        imsic_cfg.msi[hartid].offset = reloff;
+        nr_handlers++;
+    }
+
+    if ( !nr_handlers )
+    {
+        printk(XENLOG_ERR "%s: No CPU handlers found\n", node->name);
+        rc = -ENODEV;
+        goto imsic_init_err;
+    }
+
+    return 0;
+
+imsic_init_err:
+    xfree(imsic_cfg.mmios);
+
+    return rc;
+}
diff --git a/xen/arch/riscv/include/asm/imsic.h b/xen/arch/riscv/include/asm/imsic.h
new file mode 100644
index 0000000000..126e651863
--- /dev/null
+++ b/xen/arch/riscv/include/asm/imsic.h
@@ -0,0 +1,66 @@
+/* SPDX-License-Identifier: MIT */
+
+/*
+ * xen/arch/riscv/imsic.h
+ *
+ * RISC-V Incoming MSI Controller support
+ *
+ * (c) 2023 Microchip Technology Inc.
+ */
+
+#ifndef ASM__RISCV__IMSIC_H
+#define ASM__RISCV__IMSIC_H
+
+#include <xen/types.h>
+
+#define IMSIC_MMIO_PAGE_SHIFT   12
+#define IMSIC_MMIO_PAGE_SZ      (1UL << IMSIC_MMIO_PAGE_SHIFT)
+
+#define IMSIC_MIN_ID            63
+#define IMSIC_MAX_ID            2048
+
+struct imsic_msi {
+    paddr_t base_addr;
+    unsigned long offset;
+};
+
+struct imsic_mmios {
+    paddr_t base_addr;
+    unsigned long size;
+    bool harts[NR_CPUS];
+};
+
+struct imsic_config {
+    /* base address */
+    paddr_t base_addr;
+
+    /* Bits representing Guest index, HART index, and Group index */
+    unsigned int guest_index_bits;
+    unsigned int hart_index_bits;
+    unsigned int group_index_bits;
+    unsigned int group_index_shift;
+
+    /* imsic phandle */
+    unsigned int phandle;
+
+    /* number of parent irq */
+    unsigned int nr_parent_irqs;
+
+    /* number off interrupt identities */
+    unsigned int nr_ids;
+
+    /* mmios */
+    unsigned int nr_mmios;
+    struct imsic_mmios *mmios;
+
+    /* MSI */
+    struct imsic_msi msi[NR_CPUS];
+};
+
+struct dt_device_node;
+int imsic_init(struct dt_device_node *n);
+
+struct imsic_config;
+const struct imsic_config *imsic_get_config(void);
+
+#endif /* ASM__RISCV__IMSIC_H */
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 08 15:57:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 15:57:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.942513.1341722 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2BKU-0006tE-0H; Tue, 08 Apr 2025 15:57:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 942513.1341722; Tue, 08 Apr 2025 15:57: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 1u2BKT-0006pW-J2; Tue, 08 Apr 2025 15:57:37 +0000
Received: by outflank-mailman (input) for mailman id 942513;
 Tue, 08 Apr 2025 15:57: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=f4Vq=W2=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1u2BKR-0004Yr-PD
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 15:57:35 +0000
Received: from mail-ed1-x52c.google.com (mail-ed1-x52c.google.com
 [2a00:1450:4864:20::52c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2fe81a6b-1492-11f0-9eaa-5ba50f476ded;
 Tue, 08 Apr 2025 17:57:35 +0200 (CEST)
Received: by mail-ed1-x52c.google.com with SMTP id
 4fb4d7f45d1cf-5e5cded3e2eso8998947a12.0
 for <xen-devel@lists.xenproject.org>; Tue, 08 Apr 2025 08:57:35 -0700 (PDT)
Received: from fedora.. (user-109-243-64-225.play-internet.pl.
 [109.243.64.225]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-ac7c018556bsm929934566b.156.2025.04.08.08.57.33
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 08 Apr 2025 08:57:33 -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: 2fe81a6b-1492-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1744127854; x=1744732654; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Qs/V9bH5HfCVD/a2CF4cR56cAvFz6TnsciyGeIqgJxk=;
        b=RdC84H7L9m2g99RTxVjKF/mbFE+KpDYvXwX2eSqmawPsDqIfKXk3uA3CjYXdV49eYg
         8FFFpZxuo4aJ69novGTx5ZvPGjHqgIslYBHI4qeUNqZBC1KezQOj68791urR/40cN/xg
         x6ZJRdWMK4E6TSD+qe3btCeHXVcD/NXXdn980RevAiu9vXAvI0nDMYK5IRzG77T4K170
         ZlKCvj9oGxS6GXWgLfuvKKiCocUUIqP6rDDMfOMnF/rm/QkjBUDJGUsxJVGnZIVAMv14
         X44tjKAsRyJV7r7Zl6NgS+gcCbaMYBDLrIrP+n1NExOBCb/SNSf0c+Nz3ruEtPVOcGd8
         jKAA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744127854; x=1744732654;
        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=Qs/V9bH5HfCVD/a2CF4cR56cAvFz6TnsciyGeIqgJxk=;
        b=uEiLROtcbRbQ2n4OoqSIbPnu4rim0ZpTFRdgkVhwITQ7jIM1lZIMBFhGctgBmmHQQ8
         rZFYUJtVMEORwd9VE8Uz0JgrRJpDrg/MGlBGhQDye4P732BqVTUM8tkmtteyNcCbWxdl
         TKn2ko4I4Tn5k/koOux/yFRga3Aq7JpMcRGGt0DwAa8ayvWDBkYfFDH4YtN175iIy3uK
         uOTV2adLMnyCLbACWCcbuwQ9Ssn/OHJYs9yQy8sYc8ccaRran4lyIXnY2swI+H7qyARZ
         HG2W78RWUwxAxoX8VwOolgzR39qCyCHQrwyz8ZL5s1P0HAG/j3HwHudBBYIDoCj51+Rt
         /Wbg==
X-Gm-Message-State: AOJu0YzLKnNtAqjgZQXsEnAMN3lWuZ3SPVziUs9cr/Mn5b7okL7U8WXE
	SQuXLCdneUBeEFrffX9ql9ShpwmokeXrLnjBvM+aNqXZar9z9rnQXrxxHw==
X-Gm-Gg: ASbGncuxnYKLHhshopm1Dp1Q3Agkkl1RFdLsWddlvRbP1Mj4HvIBujz669AiKUAWAQN
	pS+3sDR0CFUr6bnXMDjnf3qoFLd3seDUsk9noia2GnFCnmMNXBQtY9jc1g9qYqZ6xwRczbrQoGZ
	5Va8XwbyFiP8EgUfnW2nKBZMneSwKMXqNJRsvHS7A1Hug/tm7VZiuVP0WogCFSjL/eMO62ght7c
	vQTdwisfjrhQE/r+nVXoofZx40a8eO//MhQNqs4zipQ0bfdPKPwnsCcH4ovTN/V2khK4CBM5LPm
	jHuzCThA+PaYojr+xiwM6H3PnE87744YrzypuF2ahTZMChj6aMRddDXL/a8Z7R5szU1dRbNFV4X
	+UhF2NrOlGDJefGuLBJ41a+gW
X-Google-Smtp-Source: AGHT+IH+3EweEJgBkf1lttSk7L5OsPOi7EG3brnsFTKjOXpiyfN2/5t9qu/jwSxpPD5AeEF7mZxXDA==
X-Received: by 2002:a17:907:1b03:b0:abf:6ec7:65e9 with SMTP id a640c23a62f3a-ac7e761e34amr1185527266b.43.1744127854164;
        Tue, 08 Apr 2025 08:57:34 -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>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Romain Caritey <Romain.Caritey@microchip.com>
Subject: [PATCH v1 09/14] xen/riscv: aplic_init() implementation
Date: Tue,  8 Apr 2025 17:57:14 +0200
Message-ID: <1d023045be49ae93d41d552f9c9a79972fa4e84b.1744126720.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <cover.1744126720.git.oleksii.kurochko@gmail.com>
References: <cover.1744126720.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

aplic_init() function does the following few things:
 - checks that IMSIC in device tree node  ( by checking msi-parent property
   in APLIC node ) is present as current one implmenetaion of AIA is
   supported only MSI method.
 - initialize IMSIC based on IMSIC device tree node
 - Read value of APLIC's paddr start/end and size.
 - Map aplic.regs
 - Setup APLIC initial state interrupts (disable all interrupts, set
   interrupt type and default priority, confgifure APLIC domaincfg) by
   calling aplic_init_hw_interrutps().

aplic_init() is based on the code from [1] and [2].

Since Microchip originally developed aplic.c, an internal discussion with
them led to the decision to use the MIT license.

[1] https://gitlab.com/xen-project/people/olkur/xen/-/commit/7cfb4bd4748ca268142497ac5c327d2766fb342d
[2] https://gitlab.com/xen-project/people/olkur/xen/-/commit/392a531bfad39bf4656ce8128e004b241b8b3f3e

Co-developed-by: Romain Caritey <Romain.Caritey@microchip.com>
Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/arch/riscv/aplic.c             | 97 ++++++++++++++++++++++++++++++
 xen/arch/riscv/include/asm/aplic.h | 77 ++++++++++++++++++++++++
 xen/arch/riscv/include/asm/intc.h  |  3 +
 xen/arch/riscv/include/asm/irq.h   |  1 -
 4 files changed, 177 insertions(+), 1 deletion(-)
 create mode 100644 xen/arch/riscv/include/asm/aplic.h

diff --git a/xen/arch/riscv/aplic.c b/xen/arch/riscv/aplic.c
index 6dc040af6f..d1aa835c3e 100644
--- a/xen/arch/riscv/aplic.c
+++ b/xen/arch/riscv/aplic.c
@@ -9,19 +9,112 @@
  * Copyright (c) 2024-2025 Vates
  */
 
+#include <xen/device_tree.h>
 #include <xen/errno.h>
 #include <xen/init.h>
 #include <xen/irq.h>
+#include <xen/mm.h>
 #include <xen/sections.h>
 #include <xen/types.h>
+#include <xen/vmap.h>
 
+#include <asm/aplic.h>
 #include <asm/device.h>
+#include <asm/imsic.h>
 #include <asm/intc.h>
+#include <asm/riscv_encoding.h>
+
+#define APLIC_DEFAULT_PRIORITY  1
+
+static struct aplic_priv aplic;
 
 static struct intc_info __ro_after_init aplic_info = {
     .hw_version = INTC_APLIC,
 };
 
+static void __init aplic_init_hw_interrupts(void)
+{
+    int i;
+
+    /* Disable all interrupts */
+    for ( i = 0; i <= aplic_info.nr_irqs; i += 32 )
+        aplic.regs->clrie[i] = -1U;
+
+    /* Set interrupt type and default priority for all interrupts */
+    for ( i = 1; i <= aplic_info.nr_irqs; i++ )
+    {
+        aplic.regs->sourcecfg[i - 1] = 0;
+        aplic.regs->target[i - 1] = APLIC_DEFAULT_PRIORITY;
+    }
+
+    /* Clear APLIC domaincfg */
+    aplic.regs->domaincfg = APLIC_DOMAINCFG_IE | APLIC_DOMAINCFG_DM;
+}
+
+static int __init aplic_init(void)
+{
+    int rc;
+    dt_phandle imsic_phandle;
+    uint32_t irq_range[2];
+    const __be32 *prop;
+    uint64_t size, paddr;
+    struct dt_device_node *imsic_node;
+    const struct dt_device_node *node = aplic_info.node;
+
+    /* check for associated imsic node */
+    rc = dt_property_read_u32(node, "msi-parent", &imsic_phandle);
+    if ( !rc )
+        panic("%s: IDC mode not supported\n", node->full_name);
+
+    imsic_node = dt_find_node_by_phandle(imsic_phandle);
+    if ( !imsic_node )
+        panic("%s: unable to find IMSIC node\n", node->full_name);
+
+    /* check imsic mode */
+    rc = dt_property_read_u32_array(imsic_node, "interrupts-extended",
+                                    irq_range, ARRAY_SIZE(irq_range));
+    if ( rc && (rc != -EOVERFLOW) )
+        panic("%s: unable to find interrupt-extended in %s node\n",
+               node->full_name, imsic_node->full_name);
+
+    if ( irq_range[1] == IRQ_M_EXT )
+        /* machine mode imsic node, ignore this aplic node */
+        return 0;
+
+    rc = imsic_init(imsic_node);
+    if ( rc )
+        panic("%s: Failded to initialize IMSIC\n", node->full_name);
+
+    /* Find out number of interrupt sources */
+    rc = dt_property_read_u32(node, "riscv,num-sources", &aplic_info.nr_irqs);
+    if ( !rc )
+        panic("%s: failed to get number of interrupt sources\n",
+              node->full_name);
+
+    prop = dt_get_property(node, "reg", NULL);
+    dt_get_range(&prop, node, &paddr, &size);
+    if ( !paddr )
+        panic("%s: first MMIO resource not found\n", node->full_name);
+
+    aplic.paddr_start = paddr;
+    aplic.paddr_end = paddr + size;
+    aplic.size = size;
+
+    aplic.regs = ioremap(paddr, size);
+    if ( !aplic.regs )
+        panic("%s: unable to map\n", node->full_name);
+
+    /* Setup initial state APLIC interrupts */
+    aplic_init_hw_interrupts();
+
+    return 0;
+}
+
+static const struct intc_hw_operations __ro_after_init aplic_ops = {
+    .info                = &aplic_info,
+    .init                = aplic_init,
+};
+
 static int aplic_irq_xlate(const uint32_t *intspec, unsigned int intsize,
                            unsigned int *out_hwirq,
                            unsigned int *out_type)
@@ -52,8 +145,12 @@ static int __init aplic_preinit(struct dt_device_node *node, const void *dat)
 
     aplic_info.node = node;
 
+    aplic.imsic_cfg = imsic_get_config();
+
     dt_irq_xlate = aplic_irq_xlate;
 
+    register_intc_ops(&aplic_ops);
+
     return 0;
 }
 
diff --git a/xen/arch/riscv/include/asm/aplic.h b/xen/arch/riscv/include/asm/aplic.h
new file mode 100644
index 0000000000..94b3d0b616
--- /dev/null
+++ b/xen/arch/riscv/include/asm/aplic.h
@@ -0,0 +1,77 @@
+/* SPDX-License-Identifier: MIT */
+
+/*
+ * xen/arch/riscv/aplic.h
+ *
+ * RISC-V Advanced Platform-Level Interrupt Controller support
+ *
+ * Copyright (c) 2023 Microchip.
+ */
+
+#ifndef ASM__RISCV__APLIC_H
+#define ASM__RISCV__APLIC_H
+
+#include <xen/types.h>
+
+#include <asm/imsic.h>
+
+#define APLIC_DOMAINCFG_IE      BIT(8, UL)
+#define APLIC_DOMAINCFG_DM      BIT(2, UL)
+
+struct aplic_regs {
+    uint32_t domaincfg;
+    uint32_t sourcecfg[1023];
+    uint8_t _reserved1[0xBC0];
+
+    uint32_t mmsiaddrcfg;
+    uint32_t mmsiaddrcfgh;
+    uint32_t smsiaddrcfg;
+    uint32_t smsiaddrcfgh;
+    uint8_t _reserved2[0x30];
+
+    uint32_t setip[32];
+    uint8_t _reserved3[92];
+
+    uint32_t setipnum;
+    uint8_t _reserved4[0x20];
+
+    uint32_t in_clrip[32];
+    uint8_t _reserved5[92];
+
+    uint32_t clripnum;
+    uint8_t _reserved6[32];
+
+    uint32_t setie[32];
+    uint8_t _reserved7[92];
+
+    uint32_t setienum;
+    uint8_t _reserved8[32];
+
+    uint32_t clrie[32];
+    uint8_t _reserved9[92];
+
+    uint32_t clrienum;
+    uint8_t _reserved10[32];
+
+    uint32_t setipnum_le;
+    uint32_t setipnum_be;
+    uint8_t _reserved11[4088];
+
+    uint32_t genmsi;
+    uint32_t target[1023];
+};
+
+struct aplic_priv {
+    /* base physical address and size */
+    paddr_t paddr_start;
+    paddr_t paddr_end;
+    size_t  size;
+
+    /* registers */
+    volatile struct aplic_regs *regs;
+
+    /* imsic configuration */
+    const struct imsic_config *imsic_cfg;
+};
+
+#endif /* ASM__RISCV__APLIC_H */
diff --git a/xen/arch/riscv/include/asm/intc.h b/xen/arch/riscv/include/asm/intc.h
index 0d498b10f4..db53caa07b 100644
--- a/xen/arch/riscv/include/asm/intc.h
+++ b/xen/arch/riscv/include/asm/intc.h
@@ -15,6 +15,9 @@ enum intc_version {
 struct intc_info {
     enum intc_version hw_version;
     const struct dt_device_node *node;
+
+    /* number of irqs */
+    unsigned int nr_irqs;
 };
 
 struct intc_hw_operations {
diff --git a/xen/arch/riscv/include/asm/irq.h b/xen/arch/riscv/include/asm/irq.h
index ff1c95e0be..163a478d78 100644
--- a/xen/arch/riscv/include/asm/irq.h
+++ b/xen/arch/riscv/include/asm/irq.h
@@ -27,7 +27,6 @@
 #define IRQ_TYPE_INVALID        DT_IRQ_TYPE_INVALID
 
 /* TODO */
-#define nr_irqs 0U
 #define nr_static_irqs 0
 #define arch_hwdom_irqs(domid) 0U
 
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 08 15:57:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 15:57:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.942518.1341742 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2BKX-0007mX-LM; Tue, 08 Apr 2025 15:57:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 942518.1341742; Tue, 08 Apr 2025 15:57: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 1u2BKX-0007m9-Da; Tue, 08 Apr 2025 15:57:41 +0000
Received: by outflank-mailman (input) for mailman id 942518;
 Tue, 08 Apr 2025 15:57: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=f4Vq=W2=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1u2BKW-0004Yr-Bg
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 15:57:40 +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 32c6d9b1-1492-11f0-9eaa-5ba50f476ded;
 Tue, 08 Apr 2025 17:57:39 +0200 (CEST)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-abf3d64849dso966404066b.3
 for <xen-devel@lists.xenproject.org>; Tue, 08 Apr 2025 08:57:39 -0700 (PDT)
Received: from fedora.. (user-109-243-64-225.play-internet.pl.
 [109.243.64.225]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-ac7c018556bsm929934566b.156.2025.04.08.08.57.38
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 08 Apr 2025 08:57:38 -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: 32c6d9b1-1492-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1744127859; x=1744732659; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=djYLrDbV3Sis/iPRVwSs6nFPPnaLACZd6b32FO8Ddv4=;
        b=e99EAUQMB96qMZM4OshldwerdebfSRtZuNXVInGTT8Q2YOmbrOocbYVqox6r+pVdYo
         qg9EZCbcc7B0ylqB11dkWVmLh6DlTr/omenlE5VCT7glJ3vLhLbkKC4i+7IADRPGAozf
         mMDc//PDwGacYR6UfnmnoPdxolhcM8P59FDNTq2POmvcbpfIrK8TEfNLsk4aweRekL5x
         jl4KTAOKQfQMCAnwijh521cm+8VI09BzNLGbUKSV7koE0Ezhe0mPabrcJxcJ1XdGVDTm
         4knAep1LYEcgCZ+WvU+/UMJT+LClDne1zaaPxspzDwA66MR2Q7GVAygX+yBToes95LyJ
         sjcQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744127859; x=1744732659;
        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=djYLrDbV3Sis/iPRVwSs6nFPPnaLACZd6b32FO8Ddv4=;
        b=cNcI7vrVYrIECvjHpV1ZywFhDBdmF0w+58TmJcX+6fmpMZTwW3gJtZfGL40t6Ltz0T
         dUA0T97saKcbNVpQXbSpKT4vVFJbkfjIQeHsaAsn7Cqh7xpJ0z4F8gdOyam2u/BQ1hqG
         l3PPbo0xZsvQ+m1iDh33zMOisQ4PZ5aoOHiN5jgbNwyVVn8vsPmmYINzUsrKK/v3eU3z
         +yUI1JC7hULjFQD88MB9sIQZ0EFvt93tLWGZil8nE5oXEKHJ00FbwZyyUobns0adrxJG
         6fkeEu52A5t7KCf3PdaSt2B4YpMbbIZaUkr5iMZdCyDjDQ0L/N8psN11BMYKMVo8MrFJ
         AMPw==
X-Gm-Message-State: AOJu0YyZBY6A0EUqeSCR4JbGdEMq6J0OwTiUnF/eihlCsuf+yPjUWE60
	wnAI1N3lkx4VmOD667wcnCkzg+899EAttce5VnBXdhbh+0kYWLM0iBO54Q==
X-Gm-Gg: ASbGncthMVKPFQdhna3/Qq0GoKHr89PSstl7rRKHcFnUzEn9RnIr35fL7mihIlEUGEs
	JUFjTLK+xWfv8Nws5kV+MDJMAJbv3vobrd6ec32s5xYE0CZw/HMFtkLhOP3F+nNBp/bRuTLtRk9
	KUUG73MO1S/5x726dxxWusetIJgGicRp3eiaXmUnSAJa/FRpdOmdYrQEFwyHy47/u3Px/5z4OjB
	WatTmy1qZoPJy3DhbK9jtO+QiF7D3lw/XQ6TeulOz/kgWSBta5CLy+1cDV6Q61OiFxFqcDon9wl
	gdChUjpqNLP4a9MG9eG7d7Tj0S4rG+geZC9BJ9YrWVLMdh7iclyPhgX8ky94I98CuZxIgiPSI1G
	tg/GOAkZxfKJpag==
X-Google-Smtp-Source: AGHT+IGlCWgNLUjvfhdxskHtyKm9S34QszbzTs9mkA7u0dJWC4KssD3nKAgYHWVPpw3zEEsUdSybIw==
X-Received: by 2002:a17:907:1b08:b0:ac7:7e3e:6d3c with SMTP id a640c23a62f3a-ac7d19f50a0mr1887575666b.55.1744127859045;
        Tue, 08 Apr 2025 08:57:39 -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>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 13/14] xen/riscv: initialize interrupt controller
Date: Tue,  8 Apr 2025 17:57:18 +0200
Message-ID: <cb730a1293f14dd7fd58f98f5ecda4e2523b2d90.1744126720.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <cover.1744126720.git.oleksii.kurochko@gmail.com>
References: <cover.1744126720.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Call intc_init() to do basic initialization steps for APLIC and IMISC.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/arch/riscv/setup.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/xen/arch/riscv/setup.c b/xen/arch/riscv/setup.c
index a3189697da..9765bcbb08 100644
--- a/xen/arch/riscv/setup.c
+++ b/xen/arch/riscv/setup.c
@@ -136,6 +136,8 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
 
     intc_preinit();
 
+    intc_init();
+
     printk("All set up\n");
 
     machine_halt();
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 08 16:01:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 16:01:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.942606.1341752 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2BOF-0004gv-5E; Tue, 08 Apr 2025 16:01:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 942606.1341752; Tue, 08 Apr 2025 16:01: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 1u2BOF-0004ga-1p; Tue, 08 Apr 2025 16:01:31 +0000
Received: by outflank-mailman (input) for mailman id 942606;
 Tue, 08 Apr 2025 16:01: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=f4Vq=W2=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1u2BKW-0004Yq-Jf
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 15:57:40 +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 30a2b2f0-1492-11f0-9ffb-bf95429c2676;
 Tue, 08 Apr 2025 17:57:36 +0200 (CEST)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-ac29af3382dso936870166b.2
 for <xen-devel@lists.xenproject.org>; Tue, 08 Apr 2025 08:57:36 -0700 (PDT)
Received: from fedora.. (user-109-243-64-225.play-internet.pl.
 [109.243.64.225]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-ac7c018556bsm929934566b.156.2025.04.08.08.57.34
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 08 Apr 2025 08:57: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: 30a2b2f0-1492-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1744127855; x=1744732655; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=obosTziijTFYXfPLbOAwqyMHx7uiRBVtztO5FdIKDt0=;
        b=WTecgZ75a8WNbXJ4hgvY9ID1Hs5jEjE/lJzgKv7ikrrSjl1SeDFDG14YKzlAISkhCX
         P26IEAlpsPnuow0Oui6GPe6qHtFpRx6B75FaKkmSyWMoF1LJka7lFUxASvPWmR3yD/Cx
         vFyI2BsXXJNXoQQJvrtxwrVubJITjmBd1lp4Xe61SQe4tKvPsg0604Vq5vpr35IV7QLD
         5WBRDL5mQMoPMk1pDqpWiztjBRJShbHDfG1fZl7T8XqJ2yOZ2UbKrVR1FIwZiAVI9F/w
         f8LTr1QV0rB45O+O5qZUFgK7Qb2rnJiUIvGfaD8UyMnhgHUqSSfpWYUelCB1dLh+nS5w
         gRtw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744127855; x=1744732655;
        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=obosTziijTFYXfPLbOAwqyMHx7uiRBVtztO5FdIKDt0=;
        b=KEiTAQpmWcSpcQoVoi3lJ0rgSpypYJc6/YBRqnDC47iCNjUBmiPfHXIsaSzNwn22uS
         fzHsSIsT4koco61/AhzlVo+0SOd9RQizmOfcCPr3Ie9Vt1VOcQ+SkMGninV0i+FuHZJR
         nrTUi2GkiOEvxuQ4v4BJSZ6234XYtZhAcjgS9p9XBvpW6Ib4FjaaeEhRnzTDwNVFs7+m
         pWcbV6SSppn0h3dshmlMR97CfYrpQiofMHO2pMTM4PpedznVtoQitAH/nXoLLP2lxrxL
         bv9QYuYXAjezfLtt8kiSwntvMs1EQvq7eL2uq77v7lftA4aT9PuGiylICeISdttkSbFb
         lWQw==
X-Gm-Message-State: AOJu0Yx4Laz8P1v5nka0ZCPzvWePg1Z5HFtDJDiEvcJk7fx1WQUOX4Pc
	pSIcGHjc4/lt+mO6VchYDcUweyL0XBQ3Cv4h25NtYVLwij8RqnyEkJCTvA==
X-Gm-Gg: ASbGnctUFOMTA+PikQd6582BsnDomEfClj3ljVDWbJSI8Xp/VZ0fIUlP9jiBuWsd+0v
	YekJu7Jrcsn/KHJrSidFD0IT1FTMH5UyNowZuYG1Y80sEyjQO4qD4SxvEyt62T/xqWpHjReofp0
	uXqIw62kpLoeSmULzh6n3TxhWQjixXFuGHD62ldBlh2rd+K/z9+TCwDKyYrp+pWXwnp5XhYaudY
	y3wp9vv9kUgTrQ6V9UQfvJJdGjyaHnH+xHiKOo0VyjQn/HeNw76tgH559yHGuuyv54fJuefAMKP
	ZqMM/AzhN9GAc9JMBeiHQsP8bwuUMVj6eS5DvkyIj8NJFryzoNanCpekG6TEKCzubqwHNx1xmlU
	Ihe02CkwAEQkIYw==
X-Google-Smtp-Source: AGHT+IEGspGPs+MME//LE3RWoyJqDPz+WYmt7DGj67vMc+ReaBhJ3Bcm6MIfxc1z+iw9GyXf45JObA==
X-Received: by 2002:a17:907:724f:b0:ac2:cdcb:6a85 with SMTP id a640c23a62f3a-ac7d6d2b3f4mr1436812166b.22.1744127855300;
        Tue, 08 Apr 2025 08:57:35 -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>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Romain Caritey <Romain.Caritey@microchip.com>
Subject: [PATCH v1 10/14] xen/riscv: implementation of aplic and imsic operations
Date: Tue,  8 Apr 2025 17:57:15 +0200
Message-ID: <74a07ed7c596bbcf581010685e01bfdfa19164f5.1744126720.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <cover.1744126720.git.oleksii.kurochko@gmail.com>
References: <cover.1744126720.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Introduce interrupt controller descriptor for host APLIC to describe
the low-lovel hardare. It includes implementation of the following functions:
 - aplic_irq_startup()
 - aplic_irq_shutdown()
 - aplic_irq_enable()
 - aplic_irq_disable()
 - aplic_irq_ack()
 - aplic_host_irq_end()
 - aplic_set_irq_affinity()

As APLIC is used in MSI mode it requires to enable/disable interrupts not
only for APLIC but also for IMSIC. Thereby for the purpose of
aplic_irq_{enable,disable}() it is introduced imsic_irq_{enable,disable)().

For the purpose of aplic_set_irq_affinity() aplic_get_cpu_from_mask() is
introduced to get hart id.

Also, introduce additional interrupt controller h/w operations and
host_irq_type for APLIC:
 - aplic_host_irq_type
 - aplic_set_irq_priority()
 - aplic_set_irq_type()

Patch is based on the code from [1].

[1] https://gitlab.com/xen-project/people/olkur/xen/-/commit/7390e2365828b83e27ead56b03114a56e3699dd5

Co-developed-by: Romain Caritey <Romain.Caritey@microchip.com>
Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/arch/riscv/aplic.c             | 169 ++++++++++++++++++++++++++++-
 xen/arch/riscv/imsic.c             |  63 +++++++++++
 xen/arch/riscv/include/asm/aplic.h |  12 ++
 xen/arch/riscv/include/asm/imsic.h |  15 +++
 4 files changed, 258 insertions(+), 1 deletion(-)

diff --git a/xen/arch/riscv/aplic.c b/xen/arch/riscv/aplic.c
index d1aa835c3e..4b60cb9a77 100644
--- a/xen/arch/riscv/aplic.c
+++ b/xen/arch/riscv/aplic.c
@@ -15,6 +15,7 @@
 #include <xen/irq.h>
 #include <xen/mm.h>
 #include <xen/sections.h>
+#include <xen/spinlock.h>
 #include <xen/types.h>
 #include <xen/vmap.h>
 
@@ -110,9 +111,173 @@ static int __init aplic_init(void)
     return 0;
 }
 
-static const struct intc_hw_operations __ro_after_init aplic_ops = {
+static void aplic_set_irq_type(struct irq_desc *desc, unsigned int type)
+{
+    unsigned int irq = desc->irq - 1;
+
+    spin_lock(&aplic.lock);
+    switch(type) {
+        case IRQ_TYPE_EDGE_RISING:
+            aplic.regs->sourcecfg[irq] = APLIC_SOURCECFG_SM_EDGE_RISE;
+            break;
+        case IRQ_TYPE_EDGE_FALLING:
+            aplic.regs->sourcecfg[irq] = APLIC_SOURCECFG_SM_EDGE_FALL;
+            break;
+        case IRQ_TYPE_LEVEL_HIGH:
+            aplic.regs->sourcecfg[irq] = APLIC_SOURCECFG_SM_LEVEL_HIGH;
+            break;
+        case IRQ_TYPE_LEVEL_LOW:
+            aplic.regs->sourcecfg[irq] = APLIC_SOURCECFG_SM_LEVEL_LOW;
+            break;
+        default:
+            aplic.regs->sourcecfg[irq] = APLIC_SOURCECFG_SM_INACTIVE;
+            break;
+    }
+    spin_unlock(&aplic.lock);
+}
+
+static void aplic_set_irq_priority(struct irq_desc *desc,
+                                   unsigned int priority)
+{
+    /* No priority, do nothing */
+}
+
+static void aplic_irq_enable(struct irq_desc *desc)
+{
+    unsigned long flags;
+
+    /*
+     * TODO: Currently, APLIC is supported only with MSI interrupts.
+     *       If APLIC without MSI interrupts is required in the future,
+     *       this function will need to be updated accordingly.
+     */
+    ASSERT(aplic.imsic_cfg->is_used);
+
+    ASSERT(spin_is_locked(&desc->lock));
+
+    spin_lock_irqsave(&aplic.lock, flags);
+
+    clear_bit(_IRQ_DISABLED, &desc->status);
+
+    /* enable interrupt in IMSIC */
+    imsic_irq_enable(desc->irq);
+
+    /* enable interrupt in APLIC */
+    aplic.regs->setienum = desc->irq;
+
+    spin_unlock_irqrestore(&aplic.lock, flags);
+}
+
+static void aplic_irq_disable(struct irq_desc *desc)
+{
+    unsigned long flags;
+
+    /*
+     * TODO: Currently, APLIC is supported only with MSI interrupts.
+     *       If APLIC without MSI interrupts is required in the future,
+     *       this function will need to be updated accordingly.
+     */
+    ASSERT(aplic.imsic_cfg->is_used);
+
+    ASSERT(spin_is_locked(&desc->lock));
+
+    spin_lock_irqsave(&aplic.lock, flags);
+
+    set_bit(_IRQ_DISABLED, &desc->status);
+
+    /* disable interrupt in APLIC */
+    aplic.regs->clrienum = desc->irq;
+
+    /* disable interrupt in IMSIC */
+    imsic_irq_disable(desc->irq);
+
+    spin_unlock_irqrestore(&aplic.lock, flags);
+}
+
+static unsigned int aplic_irq_startup(struct irq_desc *desc)
+{
+    aplic_irq_enable(desc);
+
+    return 0;
+}
+
+static void aplic_irq_shutdown(struct irq_desc *desc)
+{
+    aplic_irq_disable(desc);
+}
+
+static void aplic_irq_ack(struct irq_desc *desc)
+{
+    /* nothing to do */
+}
+
+static void aplic_host_irq_end(struct irq_desc *desc)
+{
+    /* nothing to do */
+}
+
+static unsigned int aplic_get_cpu_from_mask(const cpumask_t *cpumask)
+{
+    unsigned int cpu;
+    cpumask_t possible_mask;
+
+    cpumask_and(&possible_mask, cpumask, &cpu_possible_map);
+    cpu = cpumask_any(&possible_mask);
+
+    return cpu;
+}
+
+static void aplic_set_irq_affinity(struct irq_desc *desc, const cpumask_t *mask)
+{
+    unsigned int cpu;
+    uint64_t group_index, base_ppn;
+    uint32_t hhxw, lhxw ,hhxs, value;
+    const struct imsic_config *imsic = aplic.imsic_cfg;
+
+    /*
+     * TODO: Currently, APLIC is supported only with MSI interrupts.
+     *       If APLIC without MSI interrupts is required in the future,
+     *       this function will need to be updated accordingly.
+     */
+    ASSERT(aplic.imsic_cfg->is_used);
+
+    ASSERT(!cpumask_empty(mask));
+
+    spin_lock(&aplic.lock);
+
+    cpu = cpuid_to_hartid(aplic_get_cpu_from_mask(mask));
+    hhxw = imsic->group_index_bits;
+    lhxw = imsic->hart_index_bits;
+    hhxs = imsic->group_index_shift - IMSIC_MMIO_PAGE_SHIFT * 2;
+    base_ppn = imsic->msi[cpu].base_addr >> IMSIC_MMIO_PAGE_SHIFT;
+
+    /* update hart and EEID in the target register */
+    group_index = (base_ppn >> (hhxs + 12)) & (BIT(hhxw, UL) - 1);
+    value = desc->irq;
+    value |= cpu << APLIC_TARGET_HART_IDX_SHIFT;
+    value |= group_index << (lhxw + APLIC_TARGET_HART_IDX_SHIFT) ;
+    aplic.regs->target[desc->irq - 1] = value;
+
+    spin_unlock(&aplic.lock);
+}
+
+static hw_irq_controller aplic_host_irq_type = {
+    .typename     = "aplic",
+    .startup      = aplic_irq_startup,
+    .shutdown     = aplic_irq_shutdown,
+    .enable       = aplic_irq_enable,
+    .disable      = aplic_irq_disable,
+    .ack          = aplic_irq_ack,
+    .end          = aplic_host_irq_end,
+    .set_affinity = aplic_set_irq_affinity,
+};
+
+static const struct intc_hw_operations aplic_ops = {
     .info                = &aplic_info,
     .init                = aplic_init,
+    .host_irq_type       = &aplic_host_irq_type,
+    .set_irq_priority    = aplic_set_irq_priority,
+    .set_irq_type        = aplic_set_irq_type,
 };
 
 static int aplic_irq_xlate(const uint32_t *intspec, unsigned int intsize,
@@ -149,6 +314,8 @@ static int __init aplic_preinit(struct dt_device_node *node, const void *dat)
 
     dt_irq_xlate = aplic_irq_xlate;
 
+    spin_lock_init(&aplic.lock);
+
     register_intc_ops(&aplic_ops);
 
     return 0;
diff --git a/xen/arch/riscv/imsic.c b/xen/arch/riscv/imsic.c
index 99def9af2d..8198d008ef 100644
--- a/xen/arch/riscv/imsic.c
+++ b/xen/arch/riscv/imsic.c
@@ -14,12 +14,68 @@
 #include <xen/errno.h>
 #include <xen/init.h>
 #include <xen/macros.h>
+#include <xen/spinlock.h>
 #include <xen/xmalloc.h>
 
 #include <asm/imsic.h>
 
 static struct imsic_config imsic_cfg;
 
+#define imsic_csr_set(c, v)     \
+do {                            \
+    csr_write(CSR_SISELECT, c); \
+    csr_set(CSR_SIREG, v);      \
+} while (0)
+
+#define imsic_csr_clear(c, v)   \
+do {                            \
+    csr_write(CSR_SISELECT, c); \
+    csr_clear(CSR_SIREG, v);    \
+} while (0)
+
+static void imsic_local_eix_update(unsigned long base_id, unsigned long num_id,
+                                   bool pend, bool val)
+{
+    unsigned long i, isel, ireg;
+    unsigned long id = base_id, last_id = base_id + num_id;
+
+    while ( id < last_id )
+    {
+        isel = id / __riscv_xlen;
+        isel *= __riscv_xlen / IMSIC_EIPx_BITS;
+        isel += (pend) ? IMSIC_EIP0 : IMSIC_EIE0;
+
+        ireg = 0;
+        for ( i = id & (__riscv_xlen - 1);
+              (id < last_id) && (i < __riscv_xlen);
+              i++, id++ )
+            ireg |= (1 << i);
+
+        if ( val )
+            imsic_csr_set(isel, ireg);
+        else
+            imsic_csr_clear(isel, ireg);
+    }
+}
+
+void imsic_irq_enable(unsigned int hwirq)
+{
+    unsigned long flags;
+
+    spin_lock_irqsave(&imsic_cfg.lock, flags);
+    imsic_local_eix_update(hwirq, 1, false, true);
+    spin_unlock_irqrestore(&imsic_cfg.lock, flags);
+}
+
+void imsic_irq_disable(unsigned int hwirq)
+{
+    unsigned long flags;
+
+    spin_lock_irqsave(&imsic_cfg.lock, flags);
+    imsic_local_eix_update(hwirq, 1, false, false);
+    spin_unlock_irqrestore(&imsic_cfg.lock, flags);
+}
+
 const struct imsic_config *imsic_get_config(void)
 {
     return &imsic_cfg;
@@ -277,6 +333,13 @@ int __init imsic_init(struct dt_device_node *node)
         goto imsic_init_err;
     }
 
+    spin_lock_init(&imsic_cfg.lock);
+
+    /* Enable local interrupt delivery */
+    imsic_ids_local_delivery(true);
+
+    imsic_cfg.is_used = true;
+
     return 0;
 
 imsic_init_err:
diff --git a/xen/arch/riscv/include/asm/aplic.h b/xen/arch/riscv/include/asm/aplic.h
index 94b3d0b616..ce858663a9 100644
--- a/xen/arch/riscv/include/asm/aplic.h
+++ b/xen/arch/riscv/include/asm/aplic.h
@@ -18,6 +18,15 @@
 #define APLIC_DOMAINCFG_IE      BIT(8, UL)
 #define APLIC_DOMAINCFG_DM      BIT(2, UL)
 
+#define APLIC_SOURCECFG_SM_INACTIVE     0x0
+#define APLIC_SOURCECFG_SM_DETACH       0x1
+#define APLIC_SOURCECFG_SM_EDGE_RISE    0x4
+#define APLIC_SOURCECFG_SM_EDGE_FALL    0x5
+#define APLIC_SOURCECFG_SM_LEVEL_HIGH   0x6
+#define APLIC_SOURCECFG_SM_LEVEL_LOW    0x7
+
+#define APLIC_TARGET_HART_IDX_SHIFT 18
+
 struct aplic_regs {
     uint32_t domaincfg;
     uint32_t sourcecfg[1023];
@@ -70,6 +79,9 @@ struct aplic_priv {
     /* registers */
     volatile struct aplic_regs *regs;
 
+    /* lock */
+    spinlock_t lock;
+
     /* imsic configuration */
     const struct imsic_config *imsic_cfg;
 };
diff --git a/xen/arch/riscv/include/asm/imsic.h b/xen/arch/riscv/include/asm/imsic.h
index 126e651863..d2c0178529 100644
--- a/xen/arch/riscv/include/asm/imsic.h
+++ b/xen/arch/riscv/include/asm/imsic.h
@@ -11,6 +11,7 @@
 #ifndef ASM__RISCV__IMSIC_H
 #define ASM__RISCV__IMSIC_H
 
+#include <xen/spinlock.h>
 #include <xen/types.h>
 
 #define IMSIC_MMIO_PAGE_SHIFT   12
@@ -19,6 +20,11 @@
 #define IMSIC_MIN_ID            63
 #define IMSIC_MAX_ID            2048
 
+#define IMSIC_EIP0              0x80
+#define IMSIC_EIPx_BITS         32
+
+#define IMSIC_EIE0              0xC0
+
 struct imsic_msi {
     paddr_t base_addr;
     unsigned long offset;
@@ -55,6 +61,12 @@ struct imsic_config {
 
     /* MSI */
     struct imsic_msi msi[NR_CPUS];
+
+    /* a check that IMSIC is used */
+    bool is_used;
+
+    /* lock */
+    spinlock_t lock;
 };
 
 struct dt_device_node;
@@ -63,4 +75,7 @@ int imsic_init(struct dt_device_node *n);
 struct imsic_config;
 const struct imsic_config *imsic_get_config(void);
 
+void imsic_irq_enable(unsigned int hwirq);
+void imsic_irq_disable(unsigned int hwirq);
+
 #endif /* ASM__RISCV__IMSIC_H */
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 08 16:02:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 16:02:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.942636.1341762 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2BOn-0005pi-GG; Tue, 08 Apr 2025 16:02:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 942636.1341762; Tue, 08 Apr 2025 16:02: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 1u2BOn-0005pb-D5; Tue, 08 Apr 2025 16:02:05 +0000
Received: by outflank-mailman (input) for mailman id 942636;
 Tue, 08 Apr 2025 16:02: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=f4Vq=W2=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1u2BKi-0004Yq-Lx
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 15:57:52 +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 33750f18-1492-11f0-9ffb-bf95429c2676;
 Tue, 08 Apr 2025 17:57:41 +0200 (CEST)
Received: by mail-ed1-x530.google.com with SMTP id
 4fb4d7f45d1cf-5e5cd420781so10291663a12.2
 for <xen-devel@lists.xenproject.org>; Tue, 08 Apr 2025 08:57:41 -0700 (PDT)
Received: from fedora.. (user-109-243-64-225.play-internet.pl.
 [109.243.64.225]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-ac7c018556bsm929934566b.156.2025.04.08.08.57.39
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 08 Apr 2025 08:57:39 -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: 33750f18-1492-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1744127860; x=1744732660; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=LZAsqksh1fodEX+Vcn8RPi+5F0QUQHpwEMKTK4l1sxc=;
        b=Tls7KmjwAQ7huME5XNnPO1lMLGvFr0ICWe2M7P8DDhFpeVdZLvyTV/9MFTnzAetvnq
         nrjdSPCm+MpoZOn6yROgfy7jptHcNWAIRqgYI/RfzmHz+fGVNqf3yQ4Ac5FeK3rQO0zX
         6RDpwOAa4RLEY2cfG0/V6irUvmWKrbw6uDiWaTZe0jkQM3pA07ZKYgquMcsPX5aWpXvH
         6SOaEdqpJU4KWbXCDbHhI+jZScPxrg6GQttcUFdJsKRa91O0k3jDqgq1qPMuEV75U9Jn
         kVb6PdPnwQ6lLEL9J5XIO2/6VxU/M0C40780yoIpuVS4RuSYRl2wghqSRZouNeWty5sZ
         nH7A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744127860; x=1744732660;
        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=LZAsqksh1fodEX+Vcn8RPi+5F0QUQHpwEMKTK4l1sxc=;
        b=ZRkcYHClcd2/nDkm8i5lkgIOfxU30iMcgBw4QuGju2I9Yz4Whi/gu+gfSzeAZLoVd5
         NHVv4fxhku9cmV6ZBgy3sdvvrZXH77oKfiqa95bxDFES2GsLTchGTt8N8/r2q8QfaNdn
         +vJWNNJb32++zTOjUJsbo8RXIhgfrq3q1my1Rg0+daLoObzvcrP+Mx+CIoMiChNth2uh
         9XPjg3yTu1+mHEntHw0lVtI499n1d3op9UAh+flvayO3fE0sb6qGfVnnyGl5d7EIS8rY
         si+kKaWjFeoYJ4SAdZg7eBKr8GwhsvT1/2JPe6WWV6eH4KXTBtkdonbRTwJIABb8/9mG
         UTLw==
X-Gm-Message-State: AOJu0YwTc7d4sLyFogK9F9g4KzLLhs9QWpkE5YHHs/dOMmuY9z9PwMKw
	W+1Rs8DGX1YqN1FNVo4ZFz32rGIA5tuVkdnnHmrI3BlUCp7h1qx9jNQ7kw==
X-Gm-Gg: ASbGncs5dgw8MdD0JiQaDbBRrR57f6SecRv85itatsV9Y8iZmg4a0tkEayoPAZQCAes
	1WpV6VPJhMlpu6bvOH13AQUQ+5HYvrc1uZtL3s38gGD+k9iJW6NLkZAmCaTc6JEJp8N2SdAyFkJ
	MBNQKUXjCLCpCF3Qo0RQC6SQ4QTh/8g/K/8VficXCz/FrHZShaZI75QZmikWbxmU29XzLVY9C2d
	X4hzSV8QBPn5vUeOvr9rObAeJaH7gqmd4jkAGNQ7niCkByPPWJ0pym3auD3g74IvE8KS9ZMPM0s
	7ksS25f1mtxZasUKKlSAmJw6MjEUzwDtLyIicMuJzAV3yCrFmmqO5eLEuQ30JMZc1W+fHBs7HVU
	IZE18SN6tFVOE4Q==
X-Google-Smtp-Source: AGHT+IHb1nTpvqPPU3/cvk9fqYkrcWTiqLMA7eNx8KkR6zXwmdGxaSLHyc6G+tah5/nGnbkW6oRGfw==
X-Received: by 2002:a17:907:3ea2:b0:ac6:e327:8de7 with SMTP id a640c23a62f3a-ac7e762349amr1044801466b.42.1744127860194;
        Tue, 08 Apr 2025 08:57:40 -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>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 14/14] xen/riscv: add basic UART support
Date: Tue,  8 Apr 2025 17:57:19 +0200
Message-ID: <3e96851da8751ac17cbf0cb5a649c0d86259460a.1744126720.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <cover.1744126720.git.oleksii.kurochko@gmail.com>
References: <cover.1744126720.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Update Kconfig to select GENERIC_UART_INIT for basic UART init ( find a dt node
and call device specific device_init() ).

Drop `default n if RISCV` statement for config HAS_NS16550 as now ns16550 is
ready to be compiled and used by RISC-V.

Initialize a minimal amount of stuff to have UART and Xen console:
 - Initialize uart by calling uart_init().
 - Initialize Xen console by calling console_init_{pre,post}irq().
 - Initialize timer and its internal lists which are used by
   init_timer() which is called by ns16550_init_postirq(); otherwise
   "Unhandled exception: Store/AMO Page Fault" occurs.
 - Enable local interrupt to recieve an input from UART

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/arch/riscv/Kconfig   |  1 +
 xen/arch/riscv/setup.c   | 16 ++++++++++++++++
 xen/drivers/char/Kconfig |  1 -
 3 files changed, 17 insertions(+), 1 deletion(-)

diff --git a/xen/arch/riscv/Kconfig b/xen/arch/riscv/Kconfig
index 27086cca9c..f5ba7a5a78 100644
--- a/xen/arch/riscv/Kconfig
+++ b/xen/arch/riscv/Kconfig
@@ -2,6 +2,7 @@ config RISCV
 	def_bool y
 	select FUNCTION_ALIGNMENT_16B
 	select GENERIC_BUG_FRAME
+	select GENERIC_UART_INIT
 	select HAS_DEVICE_TREE
 	select HAS_PMAP
 	select HAS_UBSAN
diff --git a/xen/arch/riscv/setup.c b/xen/arch/riscv/setup.c
index 9765bcbb08..b5fd660a4b 100644
--- a/xen/arch/riscv/setup.c
+++ b/xen/arch/riscv/setup.c
@@ -4,11 +4,16 @@
 #include <xen/bug.h>
 #include <xen/bootfdt.h>
 #include <xen/compile.h>
+#include <xen/console.h>
 #include <xen/device_tree.h>
 #include <xen/init.h>
 #include <xen/irq.h>
+#include <xen/keyhandler.h>
 #include <xen/mm.h>
+#include <xen/percpu.h>
+#include <xen/serial.h>
 #include <xen/shutdown.h>
+#include <xen/timer.h>
 #include <xen/vmap.h>
 #include <xen/xvmalloc.h>
 
@@ -73,6 +78,8 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
 
     remove_identity_mapping();
 
+    percpu_init_areas();
+
     smp_clear_cpu_maps();
 
     set_processor_id(0);
@@ -136,8 +143,17 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
 
     intc_preinit();
 
+    uart_init();
+    console_init_preirq();
+
     intc_init();
 
+    timer_init();
+
+    local_irq_enable();
+
+    console_init_postirq();
+
     printk("All set up\n");
 
     machine_halt();
diff --git a/xen/drivers/char/Kconfig b/xen/drivers/char/Kconfig
index e6e12bb413..01fa31fb2b 100644
--- a/xen/drivers/char/Kconfig
+++ b/xen/drivers/char/Kconfig
@@ -3,7 +3,6 @@ config GENERIC_UART_INIT
 
 config HAS_NS16550
 	bool "NS16550 UART driver" if ARM
-	default n if RISCV
 	default y
 	help
 	  This selects the 16550-series UART support. For most systems, say Y.
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 08 16:02:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 16:02:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.942664.1341777 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2BPX-0006pK-0R; Tue, 08 Apr 2025 16:02:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 942664.1341777; Tue, 08 Apr 2025 16:02: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 1u2BPW-0006oo-S8; Tue, 08 Apr 2025 16:02:50 +0000
Received: by outflank-mailman (input) for mailman id 942664;
 Tue, 08 Apr 2025 16:02: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=f4Vq=W2=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1u2BKc-0004Yq-KZ
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 15:57:46 +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 3168b3ad-1492-11f0-9ffb-bf95429c2676;
 Tue, 08 Apr 2025 17:57:37 +0200 (CEST)
Received: by mail-ed1-x536.google.com with SMTP id
 4fb4d7f45d1cf-5e61da95244so9512658a12.2
 for <xen-devel@lists.xenproject.org>; Tue, 08 Apr 2025 08:57:37 -0700 (PDT)
Received: from fedora.. (user-109-243-64-225.play-internet.pl.
 [109.243.64.225]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-ac7c018556bsm929934566b.156.2025.04.08.08.57.35
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 08 Apr 2025 08:57:36 -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: 3168b3ad-1492-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1744127857; x=1744732657; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=sc7wfWEtEETos3Xy4ASDsRUDXv0bfhmJEvEO/7TawQo=;
        b=D61MvuwlhhT/iHjVl6KJsI8boKoCmvfGA8ZBmL52WQt30wmheVc8wPZtdIbPUW2Aa0
         TAc4ZBm13fVg/R1b48S8DyT95OJTxlaSDzUeBJrM/IaJcjxYRiLziYkuPyieotta6Wd6
         g5HdJS0LRcmGXvQFa0IR97w4yOn+dJ74FcKRH+g+9tapkCugDrXLwE0lfudbHMXCj4ec
         diTvT84ZzH4xlPVP1L7o2NCp+T5M2yvk/9aniLpVAjskrcfpoVMhUhXBlk1/r4+kV9NL
         2Ust8vMSuCCHPziUnhoxHx8TlzreByuz6sqLwPvWXMne7VsThNRcpH3yLerLLnLMIrZ7
         HOVA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744127857; x=1744732657;
        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=sc7wfWEtEETos3Xy4ASDsRUDXv0bfhmJEvEO/7TawQo=;
        b=H6vr8TuqfbwdJkT4KP75hvJYQ7gc8XfgdeKXkRVRmqeAVm49iS//IUwIU+qsBQjjva
         IeO8qzFjJXolpDY5U29LwDXLhNXmGh6K9wgmJWsWvc3pE7Ok+3GyIu6OAosCWt5mCKAo
         hERpLXyvl5ECNdKBGhE/gXCHa7aJM60F8EEdO0kkX0WvmJvR//au1W4nasct5RLuXKj/
         dDZsQQMTdE+4aq9WSggkfSGT2QFdROPCtxKnhSDugC+ldbMhEFOzRsExvxmZmIQN/InE
         vR4WvK/e8Q2K7xonMTSwIKTq4mpPRVEjA0yaXx5d/NO4EBaIWd43M3jP4TKJTuIPUqTO
         4QmA==
X-Gm-Message-State: AOJu0Yw2MOmEhOqhkBgPi/yHx6gKvAE6hF3Bm4YR27GAQmzZnQThQsTz
	9ce8ICRQSrbZgJ28dcZSwwe53mtCd23tMceYe1Qq+Wnpjhqpf84IqfGopA==
X-Gm-Gg: ASbGnctq48V1gmSzFSqFg7k5rnH8U18aA3NryJkijw98rObfjuekTWFlgL+9SeZRPuY
	j6dMV4UyqLTttwukM7Qf2GjQ1nGWQcRJyxA8JgjKXkyrb3f3WOimotccVQNvEDGTUryOBfwSB1V
	XR3O6F1USGLQ3rST8Tbsbx3zWEUdczI4PFEIjKdkraTCsF9YwjsL7PLqy0sj77WATLT3Y9bV1KZ
	iiA8JYZ/deQUekXEWp48jXaiWThkoN3jPlxBL7obBzDyCNsoF8Q/5+Z/5zG6lb7fcf/ZDyWe6/n
	rRrZx9uqXALgybDsa6brvGY728QuYBBGDU5G/l+0qOLyWmGutPR1xlCFNiLcmj/4YGUqkvgPJQ+
	o/IfzPOnuGDNWkg==
X-Google-Smtp-Source: AGHT+IFL3WNhj77fFPxV0cWMP8yo+oe1QoIkzk3e18tqqolBdgOLMj6ctPGIvdYduEJRVIBY++KgZA==
X-Received: by 2002:a17:907:97d6:b0:ac7:391b:e68a with SMTP id a640c23a62f3a-ac7d1c14826mr1306772666b.60.1744127856612;
        Tue, 08 Apr 2025 08:57:36 -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>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Romain Caritey <Romain.Caritey@microchip.com>
Subject: [PATCH v1 11/14] xen/riscv: add external interrupt handling for hypervisor mode
Date: Tue,  8 Apr 2025 17:57:16 +0200
Message-ID: <1685488b8c1b48149e94bd3625c7b46b78c72e8e.1744126720.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <cover.1744126720.git.oleksii.kurochko@gmail.com>
References: <cover.1744126720.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Implement functions necessarry to have working external interrupts in
hypervisor mode. The following changes are done:
 - Add a common function intc_handle_external_irq() to call APLIC specific
   function to handle an interrupt.
 - Update do_trap() function to handle IRQ_S_EXT case; add the check to catch
   case when cause of trap is an interrupt.
 - Add handle_interrrupt() member to intc_hw_operations structure.
 - Enable local interrupt delivery for IMSIC by implementation and calling of
   imsic_ids_local_delivery() in imsic_init(); additionally introduce helper
   imsic_csr_write() to update IMSIC_EITHRESHOLD and IMSIC_EITHRESHOLD.
 - Enable hypervisor external interrupts.
 - Implement aplic_handler_interrupt() and use it to init ->handle_interrupt
   member of intc_hw_operations for APLIC.
 - Add implementation of do_IRQ() to dispatch the interrupt.

The current patch is based on the code from [1].

[1] https://gitlab.com/xen-project/people/olkur/xen/-/commit/7390e2365828b83e27ead56b03114a56e3699dd5

Co-developed-by: Romain Caritey <Romain.Caritey@microchip.com>
Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/arch/riscv/aplic.c             | 19 +++++++++++++
 xen/arch/riscv/imsic.c             | 25 +++++++++++++++++
 xen/arch/riscv/include/asm/imsic.h |  7 +++++
 xen/arch/riscv/include/asm/intc.h  |  5 ++++
 xen/arch/riscv/include/asm/irq.h   |  3 +++
 xen/arch/riscv/intc.c              |  7 +++++
 xen/arch/riscv/irq.c               | 43 ++++++++++++++++++++++++++++++
 xen/arch/riscv/traps.c             | 18 +++++++++++++
 8 files changed, 127 insertions(+)

diff --git a/xen/arch/riscv/aplic.c b/xen/arch/riscv/aplic.c
index 4b60cb9a77..38b57ed1ac 100644
--- a/xen/arch/riscv/aplic.c
+++ b/xen/arch/riscv/aplic.c
@@ -261,6 +261,21 @@ static void aplic_set_irq_affinity(struct irq_desc *desc, const cpumask_t *mask)
     spin_unlock(&aplic.lock);
 }
 
+static void aplic_handle_interrupt(unsigned long cause, struct cpu_user_regs *regs)
+{
+    /* disable to avoid more external interrupts */
+    csr_clear(CSR_SIE, 1UL << IRQ_S_EXT);
+
+    /* clear the pending bit */
+    csr_clear(CSR_SIP, 1UL << IRQ_S_EXT);
+
+    /* dispatch the interrupt */
+    do_IRQ(regs, csr_swap(CSR_STOPEI, 0) >> TOPI_IID_SHIFT);
+
+    /* enable external interrupts */
+    csr_set(CSR_SIE, 1UL << IRQ_S_EXT);
+}
+
 static hw_irq_controller aplic_host_irq_type = {
     .typename     = "aplic",
     .startup      = aplic_irq_startup,
@@ -278,6 +293,7 @@ static const struct intc_hw_operations aplic_ops = {
     .host_irq_type       = &aplic_host_irq_type,
     .set_irq_priority    = aplic_set_irq_priority,
     .set_irq_type        = aplic_set_irq_type,
+    .handle_interrupt    = aplic_handle_interrupt,
 };
 
 static int aplic_irq_xlate(const uint32_t *intspec, unsigned int intsize,
@@ -318,6 +334,9 @@ static int __init aplic_preinit(struct dt_device_node *node, const void *dat)
 
     register_intc_ops(&aplic_ops);
 
+    /* Enable supervisor external interrupt */
+    csr_set(CSR_SIE, 1UL << IRQ_S_EXT);
+
     return 0;
 }
 
diff --git a/xen/arch/riscv/imsic.c b/xen/arch/riscv/imsic.c
index 8198d008ef..e00f2d69df 100644
--- a/xen/arch/riscv/imsic.c
+++ b/xen/arch/riscv/imsic.c
@@ -19,8 +19,19 @@
 
 #include <asm/imsic.h>
 
+#define IMSIC_DISABLE_EIDELIVERY    0
+#define IMSIC_ENABLE_EIDELIVERY     1
+#define IMSIC_DISABLE_EITHRESHOLD   1
+#define IMSIC_ENABLE_EITHRESHOLD    0
+
 static struct imsic_config imsic_cfg;
 
+#define imsic_csr_write(c, v)   \
+do {                            \
+    csr_write(CSR_SISELECT, c); \
+    csr_write(CSR_SIREG, v);    \
+} while (0)
+
 #define imsic_csr_set(c, v)     \
 do {                            \
     csr_write(CSR_SISELECT, c); \
@@ -33,6 +44,20 @@ do {                            \
     csr_clear(CSR_SIREG, v);    \
 } while (0)
 
+void imsic_ids_local_delivery(bool enable)
+{
+    if ( enable )
+    {
+        imsic_csr_write(IMSIC_EITHRESHOLD, IMSIC_ENABLE_EITHRESHOLD);
+        imsic_csr_write(IMSIC_EIDELIVERY, IMSIC_ENABLE_EIDELIVERY);
+    }
+    else
+    {
+        imsic_csr_write(IMSIC_EITHRESHOLD, IMSIC_DISABLE_EITHRESHOLD);
+        imsic_csr_write(IMSIC_EIDELIVERY, IMSIC_DISABLE_EIDELIVERY);
+    }
+}
+
 static void imsic_local_eix_update(unsigned long base_id, unsigned long num_id,
                                    bool pend, bool val)
 {
diff --git a/xen/arch/riscv/include/asm/imsic.h b/xen/arch/riscv/include/asm/imsic.h
index d2c0178529..b2c674f271 100644
--- a/xen/arch/riscv/include/asm/imsic.h
+++ b/xen/arch/riscv/include/asm/imsic.h
@@ -12,6 +12,7 @@
 #define ASM__RISCV__IMSIC_H
 
 #include <xen/spinlock.h>
+#include <xen/stdbool.h>
 #include <xen/types.h>
 
 #define IMSIC_MMIO_PAGE_SHIFT   12
@@ -20,6 +21,10 @@
 #define IMSIC_MIN_ID            63
 #define IMSIC_MAX_ID            2048
 
+#define IMSIC_EIDELIVERY        0x70
+
+#define IMSIC_EITHRESHOLD       0x72
+
 #define IMSIC_EIP0              0x80
 #define IMSIC_EIPx_BITS         32
 
@@ -78,4 +83,6 @@ const struct imsic_config *imsic_get_config(void);
 void imsic_irq_enable(unsigned int hwirq);
 void imsic_irq_disable(unsigned int hwirq);
 
+void imsic_ids_local_delivery(bool enable);
+
 #endif /* ASM__RISCV__IMSIC_H */
diff --git a/xen/arch/riscv/include/asm/intc.h b/xen/arch/riscv/include/asm/intc.h
index db53caa07b..e4363af87d 100644
--- a/xen/arch/riscv/include/asm/intc.h
+++ b/xen/arch/riscv/include/asm/intc.h
@@ -34,6 +34,8 @@ struct intc_hw_operations {
     /* Set IRQ priority */
     void (*set_irq_priority)(struct irq_desc *desc, unsigned int priority);
 
+    /* handle external interrupt */
+    void (*handle_interrupt)(unsigned long cause, struct cpu_user_regs *regs);
 };
 
 void intc_preinit(void);
@@ -45,4 +47,7 @@ void register_intc_ops(const struct intc_hw_operations *ops);
 struct irq_desc;
 void intc_route_irq_to_xen(struct irq_desc *desc, unsigned int priority);
 
+struct cpu_user_regs;
+void intc_handle_external_irqs(unsigned long cause, struct cpu_user_regs *regs);
+
 #endif /* ASM__RISCV__INTERRUPT_CONTOLLER_H */
diff --git a/xen/arch/riscv/include/asm/irq.h b/xen/arch/riscv/include/asm/irq.h
index 163a478d78..9558d3fa61 100644
--- a/xen/arch/riscv/include/asm/irq.h
+++ b/xen/arch/riscv/include/asm/irq.h
@@ -51,6 +51,9 @@ int platform_get_irq(const struct dt_device_node *device, int index);
 
 void init_IRQ(void);
 
+struct cpu_user_regs;
+void do_IRQ(struct cpu_user_regs *regs, unsigned int irq);
+
 #endif /* ASM__RISCV__IRQ_H */
 
 /*
diff --git a/xen/arch/riscv/intc.c b/xen/arch/riscv/intc.c
index 8274897d8c..41a4310ead 100644
--- a/xen/arch/riscv/intc.c
+++ b/xen/arch/riscv/intc.c
@@ -51,6 +51,13 @@ static void intc_set_irq_priority(struct irq_desc *desc, unsigned int priority)
     intc_hw_ops->set_irq_priority(desc, priority);
 }
 
+void intc_handle_external_irqs(unsigned long cause, struct cpu_user_regs *regs)
+{
+    ASSERT(intc_hw_ops && intc_hw_ops->handle_interrupt);
+
+    intc_hw_ops->handle_interrupt(cause, regs);
+}
+
 void intc_route_irq_to_xen(struct irq_desc *desc, unsigned int priority)
 {
     ASSERT(test_bit(_IRQ_DISABLED, &desc->status));
diff --git a/xen/arch/riscv/irq.c b/xen/arch/riscv/irq.c
index c332e000c4..3c0b95220a 100644
--- a/xen/arch/riscv/irq.c
+++ b/xen/arch/riscv/irq.c
@@ -11,6 +11,10 @@
 #include <xen/errno.h>
 #include <xen/init.h>
 #include <xen/irq.h>
+#include <xen/spinlock.h>
+
+#include <asm/hardirq.h>
+#include <asm/intc.h>
 
 static irq_desc_t irq_desc[NR_IRQS];
 
@@ -83,3 +87,42 @@ void __init init_IRQ(void)
     if ( init_irq_data() < 0 )
         panic("initialization of IRQ data failed\n");
 }
+
+/* Dispatch an interrupt */
+void do_IRQ(struct cpu_user_regs *regs, unsigned int irq)
+{
+    struct irq_desc *desc = irq_to_desc(irq);
+    struct irqaction *action;
+
+    irq_enter();
+
+    spin_lock(&desc->lock);
+    desc->handler->ack(desc);
+
+    if ( test_bit(_IRQ_DISABLED, &desc->status) )
+        goto out;
+
+    set_bit(_IRQ_INPROGRESS, &desc->status);
+
+    action = desc->action;
+
+    spin_unlock_irq(&desc->lock);
+
+#ifndef CONFIG_IRQ_HAS_MULTIPLE_ACTION
+    action->handler(irq, action->dev_id);
+#else
+    do {
+        action->handler(irq, action->dev_id);
+        action = action->next;
+    } while ( action );
+#endif /* CONFIG_IRQ_HAS_MULTIPLE_ACTION */
+
+    spin_lock_irq(&desc->lock);
+
+    clear_bit(_IRQ_INPROGRESS, &desc->status);
+
+out:
+    desc->handler->end(desc);
+    spin_unlock(&desc->lock);
+    irq_exit();
+}
diff --git a/xen/arch/riscv/traps.c b/xen/arch/riscv/traps.c
index ea3638a54f..da5813e34a 100644
--- a/xen/arch/riscv/traps.c
+++ b/xen/arch/riscv/traps.c
@@ -11,6 +11,7 @@
 #include <xen/nospec.h>
 #include <xen/sched.h>
 
+#include <asm/intc.h>
 #include <asm/processor.h>
 #include <asm/riscv_encoding.h>
 #include <asm/traps.h>
@@ -128,6 +129,23 @@ void do_trap(struct cpu_user_regs *cpu_regs)
         }
         fallthrough;
     default:
+        if ( cause & CAUSE_IRQ_FLAG )
+        {
+            /* Handle interrupt */
+            unsigned long icause = cause & ~CAUSE_IRQ_FLAG;
+
+            switch ( icause )
+            {
+            case IRQ_S_EXT:
+                intc_handle_external_irqs(cause, cpu_regs);
+                break;
+            default:
+                break;
+            }
+
+            break;
+        }
+
         do_unexpected_trap(cpu_regs);
         break;
     }
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 08 16:02:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 16:02:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.942660.1341771 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2BPW-0006mi-Or; Tue, 08 Apr 2025 16:02:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 942660.1341771; Tue, 08 Apr 2025 16:02: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 1u2BPW-0006mb-Lx; Tue, 08 Apr 2025 16:02:50 +0000
Received: by outflank-mailman (input) for mailman id 942660;
 Tue, 08 Apr 2025 16:02: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=f4Vq=W2=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1u2BKd-0004Yq-Ke
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 15:57: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 321cb1c9-1492-11f0-9ffb-bf95429c2676;
 Tue, 08 Apr 2025 17:57:38 +0200 (CEST)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-ac34257295dso1159022166b.2
 for <xen-devel@lists.xenproject.org>; Tue, 08 Apr 2025 08:57:38 -0700 (PDT)
Received: from fedora.. (user-109-243-64-225.play-internet.pl.
 [109.243.64.225]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-ac7c018556bsm929934566b.156.2025.04.08.08.57.36
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 08 Apr 2025 08:57:37 -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: 321cb1c9-1492-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1744127858; x=1744732658; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=v5MfS/RCT0nwsF9Q5OHJGcjmsqWxZxRjAc5GG+C/zxw=;
        b=mEZ/dfqV0MZsQCNw+vM09W4DV1GUmlgZY6TUjvqIHrhuO0WzAbZ+YlhoIBOgvzICcF
         S5pXgHRyLsl7x1xV0v1xfNGusWT/2mA0ll8ud006V7rBPqCxpZxDCbBn+/ZNSdN39jRb
         Nso74lsimKmiFdJXcEq3VWjHz6evS6Q7Q3R6Xbz6EFQbuOjyPwDMQzZbkOz91vmURMxp
         Z7VNYSUqS6V4lj3zHxtImim88m/RcTG2n6NwXlvFCawBzK7qeSzl/Q7CTE3Xts4uMM+N
         w6y0y8rIXk+Vamioi9ImTo0atxzao3RoBi0VGvLTHA9vapYBmQfRXRDJcxGrLKNZaTZC
         zABA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744127858; x=1744732658;
        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=v5MfS/RCT0nwsF9Q5OHJGcjmsqWxZxRjAc5GG+C/zxw=;
        b=evPP9hFIarw5G6dcxdvJNDZtB/OrN51+/Cl9bcBvL7AgJ8vhFEqMsuDWd/43JqAwMG
         p5MpJ7kUjtka6hZE65J5MRSiN6JXxT7c0z9QPsasegf8q0Oqf20sPQ9ppPVABsAXdlQf
         jouDQv/++/bDhionwOzctg3PTa3gXkou5IE7Yc1jvwz19u+wRItTv3Lt685UUh4V6gOc
         +zbGzvd90GJpAi0vpiW97pRfwcSPdSxUgh+7OQhdexVFNftrR5vIrfhVVsP9xImWs9vN
         fB9SRgXzr34W9jUHrsKHGOpXiDarRIiI8BiecPR2Z/XsbGsLzFbMRN/vFIeQferF2yNy
         dpDA==
X-Gm-Message-State: AOJu0Yz/Xwteo3iPeT0RJYCNymWtZ+mk57ET2ic9HP+gbsTAURokUPYm
	zFAkKP6azK1UclgSbEiD+6lRBGqOtZaEpSwgcP70XNmp3+NyiJKFv4ivmw==
X-Gm-Gg: ASbGncsHX2qL5fw+v+3ZiofDjEOlZJExJPS9c7M2Tb95G/BMVLYdL4waCoxMeQbfdSe
	6nuzJAN4fi6O/NLyivGwuIsd7clvcdUj/eS0HXilKZ9yD2pCWdyrTULFwkcGOpU3wZNruF8A3pM
	ZGjYGcY8z+FVrD54GueUICe2OsIz6nu3D1CgUsJFmp00Wm7123RGTracYTRsds1ki0u9AbnFXMa
	k9zD/kLHt2TZruw10o/cOKj/3MlCFh77ZOY7fvUkS7+kyypxB6gOHAOa8keB0NnWA4pZ8gLNJ1L
	vPzGGf9631sa81jNRMDp+WWzGBk/4y6CREb6pCGWMGEqk7hG8nNPeCu7AoNoUVShn4oQ5BGkvWE
	VzcZpLQfyG7Yl0Q==
X-Google-Smtp-Source: AGHT+IE/2DZRCwTazvLgcDQywNiSAH0C+uTl83jSwdGu1ZFmHLbA0vroaE/EPAgT3N5sYUM2ad0JHA==
X-Received: by 2002:a17:907:86a1:b0:ac7:d10c:1f39 with SMTP id a640c23a62f3a-ac7d6d04c9fmr1393082266b.20.1744127857948;
        Tue, 08 Apr 2025 08:57:37 -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>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Romain Caritey <Romain.Caritey@microchip.com>
Subject: [PATCH v1 12/14] xen/riscv: implement setup_irq()
Date: Tue,  8 Apr 2025 17:57:17 +0200
Message-ID: <2bc37c3996978129a5b2c888917307ea32448651.1744126720.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <cover.1744126720.git.oleksii.kurochko@gmail.com>
References: <cover.1744126720.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Introduce support for IRQ setup on RISC-V by implementing `setup_irq()` and
`__setup_irq()`, adapted and extended from an initial implementation by [1].

__setup_irq() does the following:
  - Sets up an IRQ action.
  - Validates that shared IRQs have non-NULL `dev_id` and are only used when
    existing handlers allow sharing.
  - Uses `smp_mb()` to enforce memory ordering after assigning `desc->action`
    to ensure visibility before enabling the IRQ.
  - Supports multi-action setups via `CONFIG_IRQ_HAS_MULTIPLE_ACTION`.

setup_irq() does the following:
  - Converts IRQ number to descriptor and acquires its lock.
  - Rejects registration if the IRQ is already assigned to a guest domain,
    printing an error.
  - Delegates the core setup to `__setup_irq()`.
  - On first-time setup, disables the IRQ, routes it to Xen using
    `intc_route_irq_to_xen()`, sets default CPU affinity (current CPU),
    calls the handler’s startup routine, and finally enables the IRQ.

irq_set_affinity() invokes `set_affinity` callback from the IRQ handler
if present.

Defined `IRQ_NO_PRIORITY` as default priority used when routing IRQs to Xen.

[1] https://gitlab.com/xen-project/people/olkur/xen/-/commit/7390e2365828b83e27ead56b03114a56e3699dd5

Co-developed-by: Romain Caritey <Romain.Caritey@microchip.com>
Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/arch/riscv/include/asm/irq.h |  6 ++
 xen/arch/riscv/irq.c             | 95 ++++++++++++++++++++++++++++++++
 2 files changed, 101 insertions(+)

diff --git a/xen/arch/riscv/include/asm/irq.h b/xen/arch/riscv/include/asm/irq.h
index 9558d3fa61..bba3a97e3e 100644
--- a/xen/arch/riscv/include/asm/irq.h
+++ b/xen/arch/riscv/include/asm/irq.h
@@ -26,6 +26,8 @@
 #define IRQ_TYPE_SENSE_MASK     DT_IRQ_TYPE_SENSE_MASK
 #define IRQ_TYPE_INVALID        DT_IRQ_TYPE_INVALID
 
+#define IRQ_NO_PRIORITY 0
+
 /* TODO */
 #define nr_static_irqs 0
 #define arch_hwdom_irqs(domid) 0U
@@ -54,6 +56,10 @@ void init_IRQ(void);
 struct cpu_user_regs;
 void do_IRQ(struct cpu_user_regs *regs, unsigned int irq);
 
+struct irq_desc;
+struct cpumask_t;
+void irq_set_affinity(struct irq_desc *desc, const cpumask_t *cpu_mask);
+
 #endif /* ASM__RISCV__IRQ_H */
 
 /*
diff --git a/xen/arch/riscv/irq.c b/xen/arch/riscv/irq.c
index 3c0b95220a..1e937d4306 100644
--- a/xen/arch/riscv/irq.c
+++ b/xen/arch/riscv/irq.c
@@ -6,7 +6,9 @@
  * Copyright (c) 2024 Vates
  */
 
+#include <xen/bitops.h>
 #include <xen/bug.h>
+#include <xen/cpumask.h>
 #include <xen/device_tree.h>
 #include <xen/errno.h>
 #include <xen/init.h>
@@ -57,6 +59,99 @@ int platform_get_irq(const struct dt_device_node *device, int index)
     return dt_irq.irq;
 }
 
+static int __setup_irq(struct irq_desc *desc, unsigned int irqflags,
+                       struct irqaction *new)
+{
+    bool shared = irqflags & IRQF_SHARED;
+
+    ASSERT(new != NULL);
+
+    /* Sanity checks:
+     *  - if the IRQ is marked as shared
+     *  - dev_id is not NULL when IRQF_SHARED is set
+     */
+    if ( desc->action != NULL && (!test_bit(_IRQF_SHARED, &desc->status)
+         || !shared) )
+        return -EINVAL;
+    if ( shared && new->dev_id == NULL )
+        return -EINVAL;
+
+    if ( shared )
+        set_bit(_IRQF_SHARED, &desc->status);
+
+#ifdef CONFIG_IRQ_HAS_MULTIPLE_ACTION
+    new->next = desc->action;
+    smp_mb();
+#endif
+
+    desc->action = new;
+    smp_mb();
+
+    return 0;
+}
+
+void irq_set_affinity(struct irq_desc *desc, const cpumask_t *cpu_mask)
+{
+    if ( desc != NULL )
+        desc->handler->set_affinity(desc, cpu_mask);
+}
+
+int setup_irq(unsigned int irq, unsigned int irqflags, struct irqaction *new)
+{
+    int rc;
+    unsigned long flags;
+    struct irq_desc *desc;
+    bool disabled;
+
+    desc = irq_to_desc(irq);
+
+    spin_lock_irqsave(&desc->lock, flags);
+
+    disabled = (desc->action == NULL);
+
+    if ( test_bit(_IRQ_GUEST, &desc->status) )
+    {
+        spin_unlock_irqrestore(&desc->lock, flags);
+        /*
+         * TODO: would be nice to have functionality to print which domain owns
+         *       an IRQ.
+         */
+        printk(XENLOG_ERR "ERROR: IRQ %u is already in use by a domain\n", irq);
+        return -EBUSY;
+    }
+
+    rc = __setup_irq(desc, irqflags, new);
+    if ( rc )
+        goto err;
+
+    /* First time the IRQ is setup */
+    if ( disabled )
+    {
+        /* disable irq by default */
+        set_bit(_IRQ_DISABLED, &desc->status);
+
+        /* route interrupt to xen */
+        intc_route_irq_to_xen(desc, IRQ_NO_PRIORITY);
+
+        /*
+         * we don't care for now which CPU will receive the
+         * interrupt
+         *
+         * TODO: Handle case where IRQ is setup on different CPU than
+         * the targeted CPU and the priority.
+         */
+        irq_set_affinity(desc, cpumask_of(smp_processor_id()));
+        desc->handler->startup(desc);
+        /* enable irq */
+        clear_bit(_IRQ_DISABLED, &desc->status);
+    }
+
+err:
+    spin_unlock_irqrestore(&desc->lock, flags);
+
+    return rc;
+}
+
 int arch_init_one_irq_desc(struct irq_desc *desc)
 {
     desc->arch.type = IRQ_TYPE_INVALID;
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 08 16:04:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 16:04:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.942706.1341792 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2BRM-0008Pz-Do; Tue, 08 Apr 2025 16:04:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 942706.1341792; Tue, 08 Apr 2025 16:04:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2BRM-0008Ps-A8; Tue, 08 Apr 2025 16:04:44 +0000
Received: by outflank-mailman (input) for mailman id 942706;
 Tue, 08 Apr 2025 16:04: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=83+A=W2=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1u2BRL-0008Pf-Go
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 16:04:43 +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 2b403b58-1493-11f0-9ffb-bf95429c2676;
 Tue, 08 Apr 2025 18:04:37 +0200 (CEST)
Received: from phl-compute-05.internal (phl-compute-05.phl.internal
 [10.202.2.45])
 by mailfout.stl.internal (Postfix) with ESMTP id 099621140157;
 Tue,  8 Apr 2025 12:04:36 -0400 (EDT)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-05.internal (MEProxy); Tue, 08 Apr 2025 12:04:36 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue,
 8 Apr 2025 12:04:34 -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: 2b403b58-1493-11f0-9ffb-bf95429c2676
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=fm2; t=1744128275;
	 x=1744214675; bh=R4L8EzoFCm0xNbStA2PIJxzS/K2nJQ66lVrRqUi1F5c=; b=
	RhqlTWGI+qMmOedVugIX/GeuhhSOl8c+vYZ94bmBtMbWedcx0MDB68zDT+V4L6aZ
	Bv2pni6nkDX7H10cM4w2ATDmssjda/BwAmFm+Elr8yWdQjFEbQMo5mpcHnLVspiW
	vdVhppa7jgXl5xZigtCzI80kQY+mtNzl24JvNcCs5RX27xGQqXKL6M1LU5J+cvqq
	aGGNTEfu11J27A2JSYuaMw1mjLk9oDBc3QmxmNsCnugfaMwLdpTAuSwLBYZSKFgH
	cAkpS4si+JYL5QlgJOs9ubqXQkpx7KSL3+k7qs0ew/KorwZoaFCb4LYD3iJCJ80z
	lCg6lHOvrXYq6BHO7F5J2A==
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=fm2; t=
	1744128275; x=1744214675; bh=R4L8EzoFCm0xNbStA2PIJxzS/K2nJQ66lVr
	RqUi1F5c=; b=t0HoWI3df8loc0WD5+zgqMbBuAjl4dBKEM1wGfMo40QrBEGIoyg
	W6FHgu2vNiTM+xS7hObwxL37QzJkwy5NEgDabJCUk8QYWNeghOZQwKv62LJioABk
	+yoRu9W3cFIYFhsmQbwb3Iuh2GYETDWtb76enfuaA+/gGhq5s21h9A5nnChgJST6
	LPfcorpDsmCv7dXUFRBdT+YNEUxN3+01adBUXjShkPQYeMW9Cb4jxh6kgwSP3JhG
	MO4SuHgEWbjxcKChIqIA9zBhLxAwCsSttnURvuWgsQQGiGlm6fitan/yU5sl8zM4
	pDumKPilcpm+Da4symipGhBR9Ik3sPOjZWA==
X-ME-Sender: <xms:E0n1Z2temu0sOCqAACKlmJZXyt2OezrEN5biOdaGZJ_Yc6p4q6Q_xw>
    <xme:E0n1Z7dxKPh79Z6cyGboeBv-x-i-o5RHHMTioWeEmnu-DECdoDrCaSDfAnYfg-4Si
    epYKbX_LGmp6g>
X-ME-Received: <xmr:E0n1Zxwtd33xcOdQZdNhBVp5tRx_7K9tvxLjKoTFbDwx8JAN1uICLNp58gvou4Qk0q18ZGpdh1712aIBNVfmK6TAoNd3lAvQdw>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvtdefheefucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
    pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
    gvnhhtshculddquddttddmnecujfgurhepfffhvfevuffkfhggtggujgesghdtreertddt
    jeenucfhrhhomhepofgrrhgvkhcuofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuc
    eomhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecu
    ggftrfgrthhtvghrnhepieeluddvkeejueekhfffteegfeeiffefjeejvdeijedvgfejhe
    etuddvkeffudeinecuffhomhgrihhnpehkvghrnhgvlhdrohhrghenucevlhhushhtvghr
    ufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhnvh
    hishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhnsggprhgtphhtthhopeeipdhmohgu
    vgepshhmthhpohhuthdprhgtphhtthhopehjsggvuhhlihgthhesshhushgvrdgtohhmpd
    hrtghpthhtoheprghnughrvgifrdgtohhophgvrhefsegtihhtrhhigidrtghomhdprhgt
    phhtthhopehrohhgvghrrdhprghusegtihhtrhhigidrtghomhdprhgtphhtthhopegrnh
    hthhhonhihrdhpvghrrghrugesvhgrthgvshdrthgvtghhpdhrtghpthhtohepjhhgrhho
    shhssehsuhhsvgdrtghomhdprhgtphhtthhopeigvghnqdguvghvvghlsehlihhsthhsrd
    igvghnphhrohhjvggtthdrohhrgh
X-ME-Proxy: <xmx:E0n1ZxPJ-KARzX3kAkhdvnAJ87l0gKN68pGTaO5VZoYXe_PyYFh18g>
    <xmx:E0n1Z29zXCKxWBw9AhKkeB8ZUsABcJgT06t2GcBmAmc6tG-pS9XftA>
    <xmx:E0n1Z5V8Td7p-cbZ5Mr0L7xNLjyySqGaDWH3ZOnsC5qJ8GDpjsLCzQ>
    <xmx:E0n1Z_d65cbUILQKAPlOott_5L0v3qiXI2SkoqFlivDonBF4u4PnRw>
    <xmx:E0n1ZyhuuRcAfNkEIfI3rRf7NW4sAEQ159PIUL6utIDRHb-DuT2_1SDT>
Feedback-ID: i1568416f:Fastmail
Date: Tue, 8 Apr 2025 17:28:53 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org
Subject: Re: [PATCH] libxl+hvmloader: extend IGD check part 2
Message-ID: <Z_VJEPQaFuebdH3V@mail-itl>
References: <20250408132333.1524246-2-marmarek@invisiblethingslab.com>
 <7c8cfe6d-6d61-44e5-b1ba-8a7795424977@suse.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="3jsD0fORVQM/ufCO"
Content-Disposition: inline
In-Reply-To: <7c8cfe6d-6d61-44e5-b1ba-8a7795424977@suse.com>


--3jsD0fORVQM/ufCO
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Tue, 8 Apr 2025 17:28:53 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org
Subject: Re: [PATCH] libxl+hvmloader: extend IGD check part 2

On Tue, Apr 08, 2025 at 04:11:36PM +0200, Jan Beulich wrote:
> On 08.04.2025 15:23, Marek Marczykowski-G=C3=B3recki wrote:
> > --- a/tools/firmware/hvmloader/pci.c
> > +++ b/tools/firmware/hvmloader/pci.c
> > @@ -173,6 +173,7 @@ void pci_setup(void)
> >          switch ( class )
> >          {
> >          case 0x0300:
> > +        case 0x0380:
> >              /* If emulated VGA is found, preserve it as primary VGA. */
> >              if ( (vendor_id =3D=3D 0x1234) && (device_id =3D=3D 0x1111=
) )
> >              {
>=20
> Unlike here, where vendor IDs are subsequently checked (and the sole ques=
tion
> that arises is whether any of the combinations can actually come as Displ=
ay
> rather than VGA), ...
>=20
> > --- a/tools/libs/light/libxl_pci.c
> > +++ b/tools/libs/light/libxl_pci.c
> > @@ -2575,7 +2575,8 @@ int libxl__grant_vga_iomem_permission(libxl__gc *=
gc, const uint32_t domid,
> > =20
> >          if (sysfs_dev_get_class(gc, pci, &pci_device_class))
> >              continue;
> > -        if (pci_device_class !=3D 0x030000) /* VGA class */
> > +        if (pci_device_class !=3D 0x030000 && /* VGA class */
> > +                pci_device_class !=3D 0x038000) /* Display class */
> >              continue;
>=20
> ... there's no such checking here, and instead very much VGA-specific thi=
ngs
> are being done then. Is that really in line with permitting Display class
> devices here as well?

Well, it was necessary to get IGD passthrough working. But I think
upstream Xen still doesn't have all the pieces here. Specifically,
Qubes's version includes (a variant of)
https://lore.kernel.org/xen-devel/87d74a21bde95cfc7c53fad56bf8f0e47724953e.=
1592171394.git.gorbak25@gmail.com/T/#m8644141760ee36d691434dfaf550311104929=
29b
and that adds here access not only to the video memory, but also vbios,
which was needed to get it working.

Anyway, this code is reachable only if gfx_passthrou is enabled and
currently this option is specific to IGD.

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

--3jsD0fORVQM/ufCO
Content-Type: application/pgp-signature; name=signature.asc

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmf1SRAACgkQ24/THMrX
1yxGkQf/QuecTfYIWj/xJgaJrChpKnUcd07c0yPSjGGqVIqm7mWEC1IsAbzF1ZDC
YjHkaDu32Ti1irhpsgdMl1bn3Z5yL3rJ/yXE+3YD5172zwPnOtAHCjEBuGeiJRpN
Wc6UsFJV2FdUTD3CC2Oy7RKwMhJUVBazZcDPj/ZM/3RqkrztI0SF1eWKkZQ49QdK
LZPEZ+nzfm0uO1vM6vWSkXYtgaCiJNpGM7fQdJdMnGuZtEyj+3doYLzOVKuSbTXq
a8E717PFb+L23fICM1wEvvvulLmjipWB0oHdRBri0tk6TWdJWqu+kjuVbdPdiNGt
Zmltn0/+RnucwXc2cwhdovuaTvtUDA==
=jwPs
-----END PGP SIGNATURE-----

--3jsD0fORVQM/ufCO--


From xen-devel-bounces@lists.xenproject.org Tue Apr 08 16:07:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 16:07:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.942726.1341802 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2BUN-0000aJ-Rp; Tue, 08 Apr 2025 16:07:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 942726.1341802; Tue, 08 Apr 2025 16: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 1u2BUN-0000aC-OF; Tue, 08 Apr 2025 16:07:51 +0000
Received: by outflank-mailman (input) for mailman id 942726;
 Tue, 08 Apr 2025 16: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=Wtyq=W2=linux.ibm.com=agordeev@srs-se1.protection.inumbo.net>)
 id 1u2BUM-0000a6-GE
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 16:07:50 +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 9d8d1929-1493-11f0-9eaa-5ba50f476ded;
 Tue, 08 Apr 2025 18:07:49 +0200 (CEST)
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 5388e1Pf025362;
 Tue, 8 Apr 2025 16:07:36 GMT
Received: from pps.reinject (localhost [127.0.0.1])
 by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 45vnvq4kme-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Tue, 08 Apr 2025 16:07:36 +0000 (GMT)
Received: from m0356516.ppops.net (m0356516.ppops.net [127.0.0.1])
 by pps.reinject (8.18.0.8/8.18.0.8) with ESMTP id 538G192m023979;
 Tue, 8 Apr 2025 16:07:35 GMT
Received: from ppma21.wdc07v.mail.ibm.com
 (5b.69.3da9.ip4.static.sl-reverse.com [169.61.105.91])
 by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 45vnvq4kmc-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Tue, 08 Apr 2025 16:07:35 +0000 (GMT)
Received: from pps.filterd (ppma21.wdc07v.mail.ibm.com [127.0.0.1])
 by ppma21.wdc07v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 538CaKov013932;
 Tue, 8 Apr 2025 16:07:34 GMT
Received: from smtprelay02.fra02v.mail.ibm.com ([9.218.2.226])
 by ppma21.wdc07v.mail.ibm.com (PPS) with ESMTPS id 45ufunkd24-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Tue, 08 Apr 2025 16:07:34 +0000
Received: from smtpav01.fra02v.mail.ibm.com (smtpav01.fra02v.mail.ibm.com
 [10.20.54.100])
 by smtprelay02.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id
 538G7WPl33554826
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Tue, 8 Apr 2025 16:07:32 GMT
Received: from smtpav01.fra02v.mail.ibm.com (unknown [127.0.0.1])
 by IMSVA (Postfix) with ESMTP id BBF2220043;
 Tue,  8 Apr 2025 16:07:32 +0000 (GMT)
Received: from smtpav01.fra02v.mail.ibm.com (unknown [127.0.0.1])
 by IMSVA (Postfix) with ESMTP id A5C8320040;
 Tue,  8 Apr 2025 16:07:32 +0000 (GMT)
Received: from tuxmaker.boeblingen.de.ibm.com (unknown [9.152.85.9])
 by smtpav01.fra02v.mail.ibm.com (Postfix) with ESMTPS;
 Tue,  8 Apr 2025 16:07:32 +0000 (GMT)
Received: by tuxmaker.boeblingen.de.ibm.com (Postfix, from userid 55669)
 id 4BAA7E15A1; Tue, 08 Apr 2025 18:07:32 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9d8d1929-1493-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc
	:content-transfer-encoding:date:from:in-reply-to:message-id
	:mime-version:references:subject:to; s=pp1; bh=CGQhd4fZt/lPh+ygm
	PdHCsaE3Xf5iXCG6Bx4it5RIf0=; b=YCQQ+9vPjGdrkuyMR0sX9ZdoBzz5OGLWG
	Q10fUuKgJYsSC2+P1N/Wwgsp1VEqrCXtjLkOYClRURt5V9mdFdmv7IXxtkxq3MDs
	j8UsptDFv8dpLYZdz+WDeMOkLTB4xU/6RTuNq+RE2kahacHg8Qh3ovTdBJ86geYt
	ENGIxAALZVml2Dasm66zoaezHpG4uE5uJaxrIqy2HlOlFLYTumETwzPShL2sbo20
	i7LcQ4svL/x5R3ptcW5VrnBMR3xWrActkYzv7FtLij4tzggT5jv8eCjnzzKbtbUl
	7UeyVUxkgPI3r+IbiiyDVlXcoEfZqjTNOi5kvTU431AfYvkpz7a2A==
From: Alexander Gordeev <agordeev@linux.ibm.com>
To: Andrew Morton <akpm@linux-foundation.org>,
        Andrey Ryabinin <ryabinin.a.a@gmail.com>
Cc: Hugh Dickins <hughd@google.com>, Nicholas Piggin <npiggin@gmail.com>,
        Guenter Roeck <linux@roeck-us.net>, Juergen Gross <jgross@suse.com>,
        Jeremy Fitzhardinge <jeremy@goop.org>, linux-kernel@vger.kernel.org,
        linux-mm@kvack.org, kasan-dev@googlegroups.com,
        sparclinux@vger.kernel.org, xen-devel@lists.xenproject.org,
        linuxppc-dev@lists.ozlabs.org, linux-s390@vger.kernel.org,
        stable@vger.kernel.org
Subject: [PATCH v2 1/3] kasan: Avoid sleepable page allocation from atomic context
Date: Tue,  8 Apr 2025 18:07:30 +0200
Message-ID: <2d9f4ac4528701b59d511a379a60107fa608ad30.1744128123.git.agordeev@linux.ibm.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <cover.1744128123.git.agordeev@linux.ibm.com>
References: <cover.1744128123.git.agordeev@linux.ibm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-TM-AS-GCONF: 00
X-Proofpoint-GUID: LtzH8ivnniEqxi-8CvOTdzmx58H27VfG
X-Proofpoint-ORIG-GUID: DdE36rmI5XQZ4C_Epq-fHX139ivWx26P
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1095,Hydra:6.0.680,FMLib:17.12.68.34
 definitions=2025-04-08_06,2025-04-08_03,2024-11-22_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 spamscore=0
 mlxscore=0 lowpriorityscore=0 adultscore=0 suspectscore=0 mlxlogscore=866
 malwarescore=0 priorityscore=1501 clxscore=1015 bulkscore=0
 impostorscore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.19.0-2502280000 definitions=main-2504080110

apply_to_page_range() enters lazy MMU mode and then invokes
kasan_populate_vmalloc_pte() callback on each page table walk
iteration. The lazy MMU mode may only be entered only under
protection of the page table lock. However, the callback can
go into sleep when trying to allocate a single page.

Change __get_free_page() allocation mode from GFP_KERNEL to
GFP_ATOMIC to avoid scheduling out while in atomic context.

Cc: stable@vger.kernel.org
Fixes: 3c5c3cfb9ef4 ("kasan: support backing vmalloc space with real shadow memory")
Signed-off-by: Alexander Gordeev <agordeev@linux.ibm.com>
---
 mm/kasan/shadow.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/mm/kasan/shadow.c b/mm/kasan/shadow.c
index 88d1c9dcb507..edfa77959474 100644
--- a/mm/kasan/shadow.c
+++ b/mm/kasan/shadow.c
@@ -301,7 +301,7 @@ static int kasan_populate_vmalloc_pte(pte_t *ptep, unsigned long addr,
 	if (likely(!pte_none(ptep_get(ptep))))
 		return 0;
 
-	page = __get_free_page(GFP_KERNEL);
+	page = __get_free_page(GFP_ATOMIC);
 	if (!page)
 		return -ENOMEM;
 
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Tue Apr 08 16:07:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 16:07:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.942727.1341812 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2BUU-0000qJ-1z; Tue, 08 Apr 2025 16:07:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 942727.1341812; Tue, 08 Apr 2025 16:07: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 1u2BUT-0000qA-UX; Tue, 08 Apr 2025 16:07:57 +0000
Received: by outflank-mailman (input) for mailman id 942727;
 Tue, 08 Apr 2025 16:07: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=Wtyq=W2=linux.ibm.com=agordeev@srs-se1.protection.inumbo.net>)
 id 1u2BUS-0000p0-85
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 16:07:56 +0000
Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com
 [148.163.156.1]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9c82ee46-1493-11f0-9ffb-bf95429c2676;
 Tue, 08 Apr 2025 18:07:47 +0200 (CEST)
Received: from pps.filterd (m0360083.ppops.net [127.0.0.1])
 by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 538DNidV028259;
 Tue, 8 Apr 2025 16:07:36 GMT
Received: from pps.reinject (localhost [127.0.0.1])
 by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 45vv6a3cmj-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Tue, 08 Apr 2025 16:07:36 +0000 (GMT)
Received: from m0360083.ppops.net (m0360083.ppops.net [127.0.0.1])
 by pps.reinject (8.18.0.8/8.18.0.8) with ESMTP id 538G3Tpb014440;
 Tue, 8 Apr 2025 16:07:36 GMT
Received: from ppma21.wdc07v.mail.ibm.com
 (5b.69.3da9.ip4.static.sl-reverse.com [169.61.105.91])
 by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 45vv6a3cme-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Tue, 08 Apr 2025 16:07:35 +0000 (GMT)
Received: from pps.filterd (ppma21.wdc07v.mail.ibm.com [127.0.0.1])
 by ppma21.wdc07v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 538CRs5W013915;
 Tue, 8 Apr 2025 16:07:34 GMT
Received: from smtprelay04.fra02v.mail.ibm.com ([9.218.2.228])
 by ppma21.wdc07v.mail.ibm.com (PPS) with ESMTPS id 45ufunkd23-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Tue, 08 Apr 2025 16:07:34 +0000
Received: from smtpav03.fra02v.mail.ibm.com (smtpav03.fra02v.mail.ibm.com
 [10.20.54.102])
 by smtprelay04.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id
 538G7WVI31982208
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Tue, 8 Apr 2025 16:07:32 GMT
Received: from smtpav03.fra02v.mail.ibm.com (unknown [127.0.0.1])
 by IMSVA (Postfix) with ESMTP id AA33A2004B;
 Tue,  8 Apr 2025 16:07:32 +0000 (GMT)
Received: from smtpav03.fra02v.mail.ibm.com (unknown [127.0.0.1])
 by IMSVA (Postfix) with ESMTP id 94D4920040;
 Tue,  8 Apr 2025 16:07:32 +0000 (GMT)
Received: from tuxmaker.boeblingen.de.ibm.com (unknown [9.152.85.9])
 by smtpav03.fra02v.mail.ibm.com (Postfix) with ESMTPS;
 Tue,  8 Apr 2025 16:07:32 +0000 (GMT)
Received: by tuxmaker.boeblingen.de.ibm.com (Postfix, from userid 55669)
 id 4E5B9E171E; Tue, 08 Apr 2025 18:07:32 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9c82ee46-1493-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc
	:content-transfer-encoding:date:from:in-reply-to:message-id
	:mime-version:references:subject:to; s=pp1; bh=xkRr3rYpnf+evzsRv
	KXtHeEA6KSnGBV46B7GpE1ybMc=; b=tObfqwbcUm2umQrlxe8oOYdzi1e0gQjiF
	aDe8g32J/reQTv52CrrHU7DoSqRqoHC/eOV5SgZSlBgUlqAYnSdM++/IgMp7n/cV
	bgkWR0rPlz0F8WdJoj4DFM38xD6xJmeWCRhyQ98SrUrzzh9YLCkd39fEWuX0PcMy
	euyfOwsFuQ6rqCSXBYaURGqJr8xKeZnkAiUlC4l236cVZhx+PvSC90bg4v0JQExD
	5820Q7tR+S4eqPWfx18MOwO0o43pRNif9AsWMNrBMMcuEWT7+ylcsRTY4gA8LTe6
	XO217yw0TDcXUi3Z3pEgb5YAA8sa7reYU2vZHGl6X3/hJDJ89Grbg==
From: Alexander Gordeev <agordeev@linux.ibm.com>
To: Andrew Morton <akpm@linux-foundation.org>,
        Andrey Ryabinin <ryabinin.a.a@gmail.com>
Cc: Hugh Dickins <hughd@google.com>, Nicholas Piggin <npiggin@gmail.com>,
        Guenter Roeck <linux@roeck-us.net>, Juergen Gross <jgross@suse.com>,
        Jeremy Fitzhardinge <jeremy@goop.org>, linux-kernel@vger.kernel.org,
        linux-mm@kvack.org, kasan-dev@googlegroups.com,
        sparclinux@vger.kernel.org, xen-devel@lists.xenproject.org,
        linuxppc-dev@lists.ozlabs.org, linux-s390@vger.kernel.org,
        stable@vger.kernel.org
Subject: [PATCH v2 2/3] mm: Cleanup apply_to_pte_range() routine
Date: Tue,  8 Apr 2025 18:07:31 +0200
Message-ID: <0c65bc334f17ff1d7d92d31c69d7065769bbce4e.1744128123.git.agordeev@linux.ibm.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <cover.1744128123.git.agordeev@linux.ibm.com>
References: <cover.1744128123.git.agordeev@linux.ibm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-TM-AS-GCONF: 00
X-Proofpoint-ORIG-GUID: T7M0AXWlw4FgItjk33f-GC1E93-9rXMH
X-Proofpoint-GUID: 9N-c1pIo8G5i8QLTXcZGYOAiygpOCwa1
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1095,Hydra:6.0.680,FMLib:17.12.68.34
 definitions=2025-04-08_06,2025-04-08_03,2024-11-22_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 phishscore=0
 lowpriorityscore=0 spamscore=0 priorityscore=1501 adultscore=0
 clxscore=1015 suspectscore=0 bulkscore=0 mlxlogscore=909 mlxscore=0
 impostorscore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.19.0-2502280000 definitions=main-2504080110

Reverse 'create' vs 'mm == &init_mm' conditions and move
page table mask modification out of the atomic context.
This is a prerequisite for fixing missing kernel page
tables lock.

Cc: stable@vger.kernel.org
Fixes: 38e0edb15bd0 ("mm/apply_to_range: call pte function with lazy updates")
Signed-off-by: Alexander Gordeev <agordeev@linux.ibm.com>
---
 mm/memory.c | 28 +++++++++++++++++-----------
 1 file changed, 17 insertions(+), 11 deletions(-)

diff --git a/mm/memory.c b/mm/memory.c
index 2d8c265fc7d6..f0201c8ec1ce 100644
--- a/mm/memory.c
+++ b/mm/memory.c
@@ -2915,24 +2915,28 @@ static int apply_to_pte_range(struct mm_struct *mm, pmd_t *pmd,
 				     pte_fn_t fn, void *data, bool create,
 				     pgtbl_mod_mask *mask)
 {
+	int err = create ? -ENOMEM : -EINVAL;
 	pte_t *pte, *mapped_pte;
-	int err = 0;
 	spinlock_t *ptl;
 
-	if (create) {
-		mapped_pte = pte = (mm == &init_mm) ?
-			pte_alloc_kernel_track(pmd, addr, mask) :
-			pte_alloc_map_lock(mm, pmd, addr, &ptl);
+	if (mm == &init_mm) {
+		if (create)
+			pte = pte_alloc_kernel_track(pmd, addr, mask);
+		else
+			pte = pte_offset_kernel(pmd, addr);
 		if (!pte)
-			return -ENOMEM;
+			return err;
 	} else {
-		mapped_pte = pte = (mm == &init_mm) ?
-			pte_offset_kernel(pmd, addr) :
-			pte_offset_map_lock(mm, pmd, addr, &ptl);
+		if (create)
+			pte = pte_alloc_map_lock(mm, pmd, addr, &ptl);
+		else
+			pte = pte_offset_map_lock(mm, pmd, addr, &ptl);
 		if (!pte)
-			return -EINVAL;
+			return err;
+		mapped_pte = pte;
 	}
 
+	err = 0;
 	arch_enter_lazy_mmu_mode();
 
 	if (fn) {
@@ -2944,12 +2948,14 @@ static int apply_to_pte_range(struct mm_struct *mm, pmd_t *pmd,
 			}
 		} while (addr += PAGE_SIZE, addr != end);
 	}
-	*mask |= PGTBL_PTE_MODIFIED;
 
 	arch_leave_lazy_mmu_mode();
 
 	if (mm != &init_mm)
 		pte_unmap_unlock(mapped_pte, ptl);
+
+	*mask |= PGTBL_PTE_MODIFIED;
+
 	return err;
 }
 
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Tue Apr 08 16:07:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 16:07:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.942728.1341818 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2BUU-0000ti-CQ; Tue, 08 Apr 2025 16:07:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 942728.1341818; Tue, 08 Apr 2025 16:07: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 1u2BUU-0000se-5I; Tue, 08 Apr 2025 16:07:58 +0000
Received: by outflank-mailman (input) for mailman id 942728;
 Tue, 08 Apr 2025 16:07: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=Wtyq=W2=linux.ibm.com=agordeev@srs-se1.protection.inumbo.net>)
 id 1u2BUS-0000p0-UN
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 16:07:56 +0000
Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com
 [148.163.156.1]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9d5b60b0-1493-11f0-9ffb-bf95429c2676;
 Tue, 08 Apr 2025 18:07:49 +0200 (CEST)
Received: from pps.filterd (m0353729.ppops.net [127.0.0.1])
 by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 538CSaU4018465;
 Tue, 8 Apr 2025 16:07:36 GMT
Received: from pps.reinject (localhost [127.0.0.1])
 by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 45w3u313v9-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Tue, 08 Apr 2025 16:07:36 +0000 (GMT)
Received: from m0353729.ppops.net (m0353729.ppops.net [127.0.0.1])
 by pps.reinject (8.18.0.8/8.18.0.8) with ESMTP id 538G39G0000730;
 Tue, 8 Apr 2025 16:07:36 GMT
Received: from ppma21.wdc07v.mail.ibm.com
 (5b.69.3da9.ip4.static.sl-reverse.com [169.61.105.91])
 by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 45w3u313v7-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Tue, 08 Apr 2025 16:07:36 +0000 (GMT)
Received: from pps.filterd (ppma21.wdc07v.mail.ibm.com [127.0.0.1])
 by ppma21.wdc07v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 538C4qov014404;
 Tue, 8 Apr 2025 16:07:34 GMT
Received: from smtprelay05.fra02v.mail.ibm.com ([9.218.2.225])
 by ppma21.wdc07v.mail.ibm.com (PPS) with ESMTPS id 45ufunkd22-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Tue, 08 Apr 2025 16:07:34 +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
 538G7Wah49873200
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Tue, 8 Apr 2025 16:07:32 GMT
Received: from smtpav07.fra02v.mail.ibm.com (unknown [127.0.0.1])
 by IMSVA (Postfix) with ESMTP id AD6F220043;
 Tue,  8 Apr 2025 16:07:32 +0000 (GMT)
Received: from smtpav07.fra02v.mail.ibm.com (unknown [127.0.0.1])
 by IMSVA (Postfix) with ESMTP id 987D020040;
 Tue,  8 Apr 2025 16:07:32 +0000 (GMT)
Received: from tuxmaker.boeblingen.de.ibm.com (unknown [9.152.85.9])
 by smtpav07.fra02v.mail.ibm.com (Postfix) with ESMTPS;
 Tue,  8 Apr 2025 16:07:32 +0000 (GMT)
Received: by tuxmaker.boeblingen.de.ibm.com (Postfix, from userid 55669)
 id 49B74E0628; Tue, 08 Apr 2025 18:07:32 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9d5b60b0-1493-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc
	:content-transfer-encoding:date:from:message-id:mime-version
	:subject:to; s=pp1; bh=Hyqi0uOKVD2qmF0HO2gDnCnMoE/ESURqT+ROeR8re
	IU=; b=KuN6IiHDb6O+3M2qjviXeFee8lBozmtNdEx1CjI6uW0ohXIYYZAPumrD7
	wu4/+aq3OfN3pZkcbDZAbc1cRH+ZXwHqhsU50OV00UClUPe+SpUCVLvMa7fb+Ldh
	HHRCTuguhLRjuy8I2VLdRhEc5TS8LFBQb9aqoRjdCFsdiTTMumDO06NrLoqVTEYG
	7DN+T/7x07zw2Lsb0x3AJqCUqXr8E3Sew+9sZRO0HjsWC1pOaQOh8ivdAtjKcney
	icxlVcBlkT4s+DK1PZYOsUH7Bc1Mp2n+z7qFGgMNWLBQ0thbHI8Znnckvyndwcvn
	DMHXvhSkSXCBhKQF5c74h+lBwBfaw==
From: Alexander Gordeev <agordeev@linux.ibm.com>
To: Andrew Morton <akpm@linux-foundation.org>,
        Andrey Ryabinin <ryabinin.a.a@gmail.com>
Cc: Hugh Dickins <hughd@google.com>, Nicholas Piggin <npiggin@gmail.com>,
        Guenter Roeck <linux@roeck-us.net>, Juergen Gross <jgross@suse.com>,
        Jeremy Fitzhardinge <jeremy@goop.org>, linux-kernel@vger.kernel.org,
        linux-mm@kvack.org, kasan-dev@googlegroups.com,
        sparclinux@vger.kernel.org, xen-devel@lists.xenproject.org,
        linuxppc-dev@lists.ozlabs.org, linux-s390@vger.kernel.org,
        stable@vger.kernel.org
Subject: [PATCH v2 0/3] mm: Fix apply_to_pte_range() vs lazy MMU mode
Date: Tue,  8 Apr 2025 18:07:29 +0200
Message-ID: <cover.1744128123.git.agordeev@linux.ibm.com>
X-Mailer: git-send-email 2.45.2
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-TM-AS-GCONF: 00
X-Proofpoint-GUID: zTdW0kqTRTiT22s8uhfmBPaUntY3pzCH
X-Proofpoint-ORIG-GUID: rmIK76a9Z49Qa5aFKSDqoZ2VuPaoExus
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1095,Hydra:6.0.680,FMLib:17.12.68.34
 definitions=2025-04-08_06,2025-04-08_03,2024-11-22_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0
 spamscore=0 adultscore=0 suspectscore=0 mlxlogscore=635 bulkscore=0
 clxscore=1015 malwarescore=0 mlxscore=0 priorityscore=1501 phishscore=0
 impostorscore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.19.0-2502280000 definitions=main-2504080110

Hi All,

Chages since v1:
- left fixes only, improvements will be posted separately;
- Fixes: and -stable tags added to patch descriptions;

This series is an attempt to fix the violation of lazy MMU mode context
requirement as described for arch_enter_lazy_mmu_mode():

    This mode can only be entered and left under the protection of
    the page table locks for all page tables which may be modified.

On s390 if I make arch_enter_lazy_mmu_mode() -> preempt_enable() and
arch_leave_lazy_mmu_mode() -> preempt_disable() I am getting this:

    [  553.332108] preempt_count: 1, expected: 0
    [  553.332117] no locks held by multipathd/2116.
    [  553.332128] CPU: 24 PID: 2116 Comm: multipathd Kdump: loaded Tainted:
    [  553.332139] Hardware name: IBM 3931 A01 701 (LPAR)
    [  553.332146] Call Trace:
    [  553.332152]  [<00000000158de23a>] dump_stack_lvl+0xfa/0x150
    [  553.332167]  [<0000000013e10d12>] __might_resched+0x57a/0x5e8
    [  553.332178]  [<00000000144eb6c2>] __alloc_pages+0x2ba/0x7c0
    [  553.332189]  [<00000000144d5cdc>] __get_free_pages+0x2c/0x88
    [  553.332198]  [<00000000145663f6>] kasan_populate_vmalloc_pte+0x4e/0x110
    [  553.332207]  [<000000001447625c>] apply_to_pte_range+0x164/0x3c8
    [  553.332218]  [<000000001448125a>] apply_to_pmd_range+0xda/0x318
    [  553.332226]  [<000000001448181c>] __apply_to_page_range+0x384/0x768
    [  553.332233]  [<0000000014481c28>] apply_to_page_range+0x28/0x38
    [  553.332241]  [<00000000145665da>] kasan_populate_vmalloc+0x82/0x98
    [  553.332249]  [<00000000144c88d0>] alloc_vmap_area+0x590/0x1c90
    [  553.332257]  [<00000000144ca108>] __get_vm_area_node.constprop.0+0x138/0x260
    [  553.332265]  [<00000000144d17fc>] __vmalloc_node_range+0x134/0x360
    [  553.332274]  [<0000000013d5dbf2>] alloc_thread_stack_node+0x112/0x378
    [  553.332284]  [<0000000013d62726>] dup_task_struct+0x66/0x430
    [  553.332293]  [<0000000013d63962>] copy_process+0x432/0x4b80
    [  553.332302]  [<0000000013d68300>] kernel_clone+0xf0/0x7d0
    [  553.332311]  [<0000000013d68bd6>] __do_sys_clone+0xae/0xc8
    [  553.332400]  [<0000000013d68dee>] __s390x_sys_clone+0xd6/0x118
    [  553.332410]  [<0000000013c9d34c>] do_syscall+0x22c/0x328
    [  553.332419]  [<00000000158e7366>] __do_syscall+0xce/0xf0
    [  553.332428]  [<0000000015913260>] system_call+0x70/0x98

This exposes a KASAN issue fixed with patch 1 and apply_to_pte_range()
issue fixed with patch 3, while patch 2 is a prerequisite.

Commit b9ef323ea168 ("powerpc/64s: Disable preemption in hash lazy mmu
mode") looks like powerpc-only fix, yet not entirely conforming to the
above provided requirement (page tables itself are still not protected).
If I am not mistaken, xen and sparc are alike.

Thanks!

Alexander Gordeev (3):
  kasan: Avoid sleepable page allocation from atomic context
  mm: Cleanup apply_to_pte_range() routine
  mm: Protect kernel pgtables in apply_to_pte_range()

 mm/kasan/shadow.c |  9 +++------
 mm/memory.c       | 33 +++++++++++++++++++++------------
 2 files changed, 24 insertions(+), 18 deletions(-)

-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Tue Apr 08 16:08:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 16:08:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.942730.1341832 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2BUY-0001OQ-Lh; Tue, 08 Apr 2025 16:08:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 942730.1341832; Tue, 08 Apr 2025 16:08: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 1u2BUY-0001OJ-Ii; Tue, 08 Apr 2025 16:08:02 +0000
Received: by outflank-mailman (input) for mailman id 942730;
 Tue, 08 Apr 2025 16:08: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=Wtyq=W2=linux.ibm.com=agordeev@srs-se1.protection.inumbo.net>)
 id 1u2BUX-0000p0-LV
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 16:08:01 +0000
Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com
 [148.163.156.1]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9c7cafa6-1493-11f0-9ffb-bf95429c2676;
 Tue, 08 Apr 2025 18:07:47 +0200 (CEST)
Received: from pps.filterd (m0360083.ppops.net [127.0.0.1])
 by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 538E3xau029563;
 Tue, 8 Apr 2025 16:07:36 GMT
Received: from pps.reinject (localhost [127.0.0.1])
 by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 45vv6a3cmf-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Tue, 08 Apr 2025 16:07:35 +0000 (GMT)
Received: from m0360083.ppops.net (m0360083.ppops.net [127.0.0.1])
 by pps.reinject (8.18.0.8/8.18.0.8) with ESMTP id 538FxwH6004506;
 Tue, 8 Apr 2025 16:07:35 GMT
Received: from ppma11.dal12v.mail.ibm.com
 (db.9e.1632.ip4.static.sl-reverse.com [50.22.158.219])
 by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 45vv6a3cmc-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Tue, 08 Apr 2025 16:07:35 +0000 (GMT)
Received: from pps.filterd (ppma11.dal12v.mail.ibm.com [127.0.0.1])
 by ppma11.dal12v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 538E2Kef018870;
 Tue, 8 Apr 2025 16:07:34 GMT
Received: from smtprelay04.fra02v.mail.ibm.com ([9.218.2.228])
 by ppma11.dal12v.mail.ibm.com (PPS) with ESMTPS id 45uhj2b31s-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Tue, 08 Apr 2025 16:07:34 +0000
Received: from smtpav03.fra02v.mail.ibm.com (smtpav03.fra02v.mail.ibm.com
 [10.20.54.102])
 by smtprelay04.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id
 538G7WkZ17170806
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Tue, 8 Apr 2025 16:07:32 GMT
Received: from smtpav03.fra02v.mail.ibm.com (unknown [127.0.0.1])
 by IMSVA (Postfix) with ESMTP id B38A12004D;
 Tue,  8 Apr 2025 16:07:32 +0000 (GMT)
Received: from smtpav03.fra02v.mail.ibm.com (unknown [127.0.0.1])
 by IMSVA (Postfix) with ESMTP id 9DDE720043;
 Tue,  8 Apr 2025 16:07:32 +0000 (GMT)
Received: from tuxmaker.boeblingen.de.ibm.com (unknown [9.152.85.9])
 by smtpav03.fra02v.mail.ibm.com (Postfix) with ESMTPS;
 Tue,  8 Apr 2025 16:07:32 +0000 (GMT)
Received: by tuxmaker.boeblingen.de.ibm.com (Postfix, from userid 55669)
 id 50F3DE171F; Tue, 08 Apr 2025 18:07:32 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9c7cafa6-1493-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc
	:content-transfer-encoding:date:from:in-reply-to:message-id
	:mime-version:references:subject:to; s=pp1; bh=ow6t3aZjTh8zUSYva
	0I+1eccwoSgmKvfkvuHek+W7BI=; b=rNlkWZXjqNmrVA9DfqJ9qTqgEL8tDwB8v
	uW+rRoK5iANBpubG1GKB6moL8Y4rxf1/ciAdNCg7DM56snFXeq6UI27BGzCdiXoL
	Hr2JPBnmHtPqLjuZGH88qIcxX6n6fTG8p4+QuOCg9WyUsQapClXHAaBAz4VCbhjJ
	ChFNmfH4CzkNCe02vZlhygEXR9J7hifdORr/28Gcllu/FuSoK+QDhFbPQ7HoT2l3
	g8Y/Cdw/tx32Fgkpts/Q5SasZwSNURS/WI0A4R0LnPV7CD9LTIe6eJvqHGND+b6c
	aEm6js3u/gkF2v4JxOC8NjZ+BFWMYfs0Eu9JU8hP/snzGwujEHEow==
From: Alexander Gordeev <agordeev@linux.ibm.com>
To: Andrew Morton <akpm@linux-foundation.org>,
        Andrey Ryabinin <ryabinin.a.a@gmail.com>
Cc: Hugh Dickins <hughd@google.com>, Nicholas Piggin <npiggin@gmail.com>,
        Guenter Roeck <linux@roeck-us.net>, Juergen Gross <jgross@suse.com>,
        Jeremy Fitzhardinge <jeremy@goop.org>, linux-kernel@vger.kernel.org,
        linux-mm@kvack.org, kasan-dev@googlegroups.com,
        sparclinux@vger.kernel.org, xen-devel@lists.xenproject.org,
        linuxppc-dev@lists.ozlabs.org, linux-s390@vger.kernel.org,
        stable@vger.kernel.org
Subject: [PATCH v2 3/3] mm: Protect kernel pgtables in apply_to_pte_range()
Date: Tue,  8 Apr 2025 18:07:32 +0200
Message-ID: <ef8f6538b83b7fc3372602f90375348f9b4f3596.1744128123.git.agordeev@linux.ibm.com>
X-Mailer: git-send-email 2.45.2
In-Reply-To: <cover.1744128123.git.agordeev@linux.ibm.com>
References: <cover.1744128123.git.agordeev@linux.ibm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-TM-AS-GCONF: 00
X-Proofpoint-ORIG-GUID: 6gWNv_Bw0XevSqtBIthyoWHVrcn2MvLC
X-Proofpoint-GUID: -fZrXKHJloGCIvDX7whqAyynxCC3jswc
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1095,Hydra:6.0.680,FMLib:17.12.68.34
 definitions=2025-04-08_06,2025-04-08_03,2024-11-22_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 phishscore=0
 lowpriorityscore=0 spamscore=0 priorityscore=1501 adultscore=0
 clxscore=1015 suspectscore=0 bulkscore=0 mlxlogscore=779 mlxscore=0
 impostorscore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.19.0-2502280000 definitions=main-2504080110

The lazy MMU mode can only be entered and left under the protection
of the page table locks for all page tables which may be modified.
Yet, when it comes to kernel mappings apply_to_pte_range() does not
take any locks. That does not conform arch_enter|leave_lazy_mmu_mode()
semantics and could potentially lead to re-schedulling a process while
in lazy MMU mode or racing on a kernel page table updates.

Cc: stable@vger.kernel.org
Fixes: 38e0edb15bd0 ("mm/apply_to_range: call pte function with lazy updates")
Signed-off-by: Alexander Gordeev <agordeev@linux.ibm.com>
---
 mm/kasan/shadow.c | 7 ++-----
 mm/memory.c       | 5 ++++-
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/mm/kasan/shadow.c b/mm/kasan/shadow.c
index edfa77959474..6531a7aa8562 100644
--- a/mm/kasan/shadow.c
+++ b/mm/kasan/shadow.c
@@ -308,14 +308,14 @@ static int kasan_populate_vmalloc_pte(pte_t *ptep, unsigned long addr,
 	__memset((void *)page, KASAN_VMALLOC_INVALID, PAGE_SIZE);
 	pte = pfn_pte(PFN_DOWN(__pa(page)), PAGE_KERNEL);
 
-	spin_lock(&init_mm.page_table_lock);
 	if (likely(pte_none(ptep_get(ptep)))) {
 		set_pte_at(&init_mm, addr, ptep, pte);
 		page = 0;
 	}
-	spin_unlock(&init_mm.page_table_lock);
+
 	if (page)
 		free_page(page);
+
 	return 0;
 }
 
@@ -401,13 +401,10 @@ static int kasan_depopulate_vmalloc_pte(pte_t *ptep, unsigned long addr,
 
 	page = (unsigned long)__va(pte_pfn(ptep_get(ptep)) << PAGE_SHIFT);
 
-	spin_lock(&init_mm.page_table_lock);
-
 	if (likely(!pte_none(ptep_get(ptep)))) {
 		pte_clear(&init_mm, addr, ptep);
 		free_page(page);
 	}
-	spin_unlock(&init_mm.page_table_lock);
 
 	return 0;
 }
diff --git a/mm/memory.c b/mm/memory.c
index f0201c8ec1ce..1f3727104e99 100644
--- a/mm/memory.c
+++ b/mm/memory.c
@@ -2926,6 +2926,7 @@ static int apply_to_pte_range(struct mm_struct *mm, pmd_t *pmd,
 			pte = pte_offset_kernel(pmd, addr);
 		if (!pte)
 			return err;
+		spin_lock(&init_mm.page_table_lock);
 	} else {
 		if (create)
 			pte = pte_alloc_map_lock(mm, pmd, addr, &ptl);
@@ -2951,7 +2952,9 @@ static int apply_to_pte_range(struct mm_struct *mm, pmd_t *pmd,
 
 	arch_leave_lazy_mmu_mode();
 
-	if (mm != &init_mm)
+	if (mm == &init_mm)
+		spin_unlock(&init_mm.page_table_lock);
+	else
 		pte_unmap_unlock(mapped_pte, ptl);
 
 	*mask |= PGTBL_PTE_MODIFIED;
-- 
2.45.2



From xen-devel-bounces@lists.xenproject.org Tue Apr 08 16:09:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 16:09:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.942756.1341842 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2BVb-0002eQ-Tt; Tue, 08 Apr 2025 16:09:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 942756.1341842; Tue, 08 Apr 2025 16:09: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 1u2BVb-0002eJ-Qu; Tue, 08 Apr 2025 16:09:07 +0000
Received: by outflank-mailman (input) for mailman id 942756;
 Tue, 08 Apr 2025 16:09: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=2sbj=W2=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u2BVb-0002e3-3u
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 16:09:07 +0000
Received: from NAM02-SN1-obe.outbound.protection.outlook.com
 (mail-sn1nam02on20602.outbound.protection.outlook.com
 [2a01:111:f403:2406::602])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c8b9de03-1493-11f0-9ffb-bf95429c2676;
 Tue, 08 Apr 2025 18:09:02 +0200 (CEST)
Received: from BL1P222CA0008.NAMP222.PROD.OUTLOOK.COM (2603:10b6:208:2c7::13)
 by SJ2PR12MB7824.namprd12.prod.outlook.com (2603:10b6:a03:4c4::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.21; Tue, 8 Apr
 2025 16:08:58 +0000
Received: from BL6PEPF00020E5F.namprd04.prod.outlook.com
 (2603:10b6:208:2c7:cafe::aa) by BL1P222CA0008.outlook.office365.com
 (2603:10b6:208:2c7::13) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8606.34 via Frontend Transport; Tue,
 8 Apr 2025 16:08:58 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BL6PEPF00020E5F.mail.protection.outlook.com (10.167.249.20) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8606.22 via Frontend Transport; Tue, 8 Apr 2025 16:08:57 +0000
Received: from xcbagarciav01.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; Tue, 8 Apr
 2025 11:08:55 -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: c8b9de03-1493-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=a9XZcq/Q79Ubr7O0b5oZZx7UpWMJZsSyNV6l0QlnO8/2xfWcO/VOZ1aDEeLDXTMHltxunXyxVguXbR3O4tLjGMiEPG4JB1L501v4byIhtZaC7S5oigHu7n1j1cMGkQe0ih/ONomlCqVUKM44cEJFhVEgWaMU1VkP+N3i8asJO+x92JhWUNouziF0YiskcPUDv1xPUtsKLFrtAqndIAyukY9DQOivWTowZPc6DIf4kHXBFuwMcPhvoueeB/BDcDHBCTM3enxBS0rAvVZ8ZhTZVWErMxUrTBA00u98KyFaqK6CQjlWdwTzW0cZAttAaqzbz0THWFiFPkSzpzfmvLeeQg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-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+WxjyPErQNqLpzjNrTAdlgV9RYX8wNYR7R3wZaMkSM=;
 b=sBprAgtLJLIkDhsyev57BuLKYb6uKtDSk7gSeUuc7P+bTKV6nPZ47DpTIeEuBg+KZ2cPb0lFBzs9jUGILCcbqv6k5zG6mx0JUrja4thSRnSAYbIgO8bE/N/J1Zsyzov+VDXYtnkE6q81jqS8tqI53d9L1f1+oQMIX2dYmGc3GHBo67aWvjMd2a8IDifCRsfyRIk5Rr8Vz6KnOhwUQZESj+LRKPF3n4myyM5oOX+0PfJhhjRHC2ID06GOsoSnLCTQlClZfw4mx+iBvoYG+3PjASFec+GW2T+yGufINbXFBxJiqUo6NjcsE/QUrCwL7UWpHVUYr2WuSfWlungzntTpLg==
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=E+WxjyPErQNqLpzjNrTAdlgV9RYX8wNYR7R3wZaMkSM=;
 b=tEqfXrotlwNDLq3a/VVHfVstp42cn4dQn8skN0MM5YgVYq1ZAvA7vcEqEs33vLiqeKP0yRkyyIKIeybrxNzo8SKV2NaQXKn1PTwY8YxMduJUwxw403TkhM9zzFlpf5vH4c3VORvAewEHiyiTMo8S9gnOGjq2BqeuxItruwxGTyk=
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: Alejandro Vallejo <agarciav@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Alejandro Vallejo <agarciav@amd.com>, Jason Andryuk
	<jason.andryuk@amd.com>, Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	"Stefano Stabellini" <sstabellini@kernel.org>, Michal Orzel
	<michal.orzel@amd.com>, "Jan Beulich" <jbeulich@suse.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, Julien
 Grall <julien@xen.org>, "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>
Subject: [PATCH v3 00/16] Hyperlaunch device tree for dom0
Date: Tue, 8 Apr 2025 17:07:22 +0100
Message-ID: <20250408160802.49870-1-agarciav@amd.com>
X-Mailer: git-send-email 2.43.0
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: BL6PEPF00020E5F:EE_|SJ2PR12MB7824:EE_
X-MS-Office365-Filtering-Correlation-Id: efab43ed-b28b-46bf-2e73-08dd76b7ab1e
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|36860700013|1800799024|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?e0944mDO4mHg6aV6YTncnwTZGGTCD439F3tlTHY/VSsij8U1ftqj/Rzd2yk/?=
 =?us-ascii?Q?8J4Fgf/E5uLArpl/RVukIKWLJGBlNETm7bFu2OUpP10xqFC1ze61V5cAmv/K?=
 =?us-ascii?Q?kCNn6JRk4W84wYmxQmsrgR7r9jvugoPcrFtmXv2ubGPkVmw/PZdaT6Fy+atM?=
 =?us-ascii?Q?gLhNZcwmGjb5Q0hgNgSh5g+YVJDoa+2Z9CFdkyb++UZPRqrF1sVvwjs9Dt18?=
 =?us-ascii?Q?domIbb0QmQXAfy5uFSsr6QXBqvhF5qRyeDOMgsJnKTxg62i7ei/ixWjfbD0D?=
 =?us-ascii?Q?jV6x2a5Wl03qzH/a8xEa3SGLTMCZXDg0LGj1yjPB2X9rMB+gbQLr/fOKz8nm?=
 =?us-ascii?Q?QwhOozuz/K82HLzWiqfOedyChKWZFaJ3Jad/BbWGm2TootmL4NQjvKWwqnAo?=
 =?us-ascii?Q?uG5cQ7+CHwiL6SA4DPBlRsv2bQtSVFt8KT9zOqB9o1hVbO2WSd/g1VVgabtC?=
 =?us-ascii?Q?d6qBFV6xdQukU8WNvF4r48+A4Xdz57RNvhN44JgRQK+PllutTb8uKAIxguet?=
 =?us-ascii?Q?zrvW0xefGXyl6SH7OOEQmZCcEzvSEIGNfiXMLH5X2lsjnCm3BqvNK8Ch5Att?=
 =?us-ascii?Q?WTgj7McwylA41l20gP+ryUz0wr6fEvg/hDvdBUuYDjO0ZfM1/xFi9OzuqTt3?=
 =?us-ascii?Q?M1ib4R9xIlWEeTiff0t6mlSGm4KJflt/E45EJ4f7ySqEbcZOs+qt0P3VOf3K?=
 =?us-ascii?Q?Ziz3Ffc9DRup055pW5WnjV2dDr0x89uEMFy8TQoju7KOU374QbPUR1gMgmyM?=
 =?us-ascii?Q?/gelNvCakrvUdgGvQPw8Cm0+ZicXswGGKyOeonLYZoO3AIpDsXc96ZhTxpp0?=
 =?us-ascii?Q?hB0wTSGAjA94m2YkKTxRhtzRX+s02hVp2aYpMlC6lAeO99b895EeOyeq2pdm?=
 =?us-ascii?Q?zPEB1V1MYXQ3E4dtoFNo01Dvh6GlLnMk/HQRansdlUGV5CgvPbSxDg03hSEy?=
 =?us-ascii?Q?NvGUhXY9KUREROYnEvwWhEcGtkK3D71+8P5vbglX5nUKfWJunnMojlQGQyyv?=
 =?us-ascii?Q?X8TjSUr+zgXfCD6DONe7YRZPXsapA7aDT8EoNflWe28MmfnY9k55afvS7JoE?=
 =?us-ascii?Q?oR9NFXKxkjDQNEIrSANGpdbJsz0ORR4rbBR9ONeQZXik7moHP6zTFxZk++HN?=
 =?us-ascii?Q?zTE4JmiYFyfy4KxFq7CRzFwFU0oY0kPWKH9GD0IxOFqUHnH+bKfk3l/Owg+/?=
 =?us-ascii?Q?qEOkyCm8kt2pMKRaKLcjKqFxQA6ajHFtsy432OMpq1XwNBiGnbsCDVfXERlf?=
 =?us-ascii?Q?OwPDRoEqeuiBrqDwNpYZ2KvDvtWinF+oYCyzIobHp41eSPrXPpk/pLrTRIsc?=
 =?us-ascii?Q?GArq64ULVaF5XEh+qY6l3OhCbXFDTRkOT661QMoBRYoHCRstbB3kqGOUKfoU?=
 =?us-ascii?Q?S4599fQ8jYMJ/ggwWgo8WYBNygOFcJ9u9OO0ZAjgX6vgKBfEGrHPiGb/vlCN?=
 =?us-ascii?Q?PAJwvLMQkowy2d5yrMFflEmckJ/Jjf+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)(376014)(36860700013)(1800799024)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Apr 2025 16:08:57.8140
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: efab43ed-b28b-46bf-2e73-08dd76b7ab1e
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:
	BL6PEPF00020E5F.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR12MB7824

Hi,

This is an updated version of the hyperlaunch DTB series, with pending
feedback addressed. Some parts (notably the way modules are located) has
changed a little and is more generic with less duplication.

I've purposefully not added my S-by on anything I haven't touched
(besides rebasing) as most of the feedback had already been addressed by
Jason by the time I looked at it and it would be utterly nonsensical to
give myself authorship over it.

I'll be looking after the series moving forward.

v3 pipeline: https://gitlab.com/xen-project/people/agvallejo/xen/-/pipelines/1758167851

v2: https://lore.kernel.org/xen-devel/20241226165740.29812-1-dpsmith@apertussolutions.com/
v1: https://lore.kernel.org/xen-devel/20241123182044.30687-1-dpsmith@apertussolutions.com/

Cheers,
Alejandro

========= Original cover letter:

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.

=========

Alejandro Vallejo (1):
  x86/hyperlaunch: Add helpers to locate multiboot modules

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                     |   1 +
 xen/arch/x86/dom0_build.c                 |  19 +-
 xen/arch/x86/domain-builder/Kconfig       |  15 +
 xen/arch/x86/domain-builder/Makefile      |   2 +
 xen/arch/x86/domain-builder/core.c        | 112 ++++++
 xen/arch/x86/domain-builder/fdt.c         | 448 ++++++++++++++++++++++
 xen/arch/x86/domain-builder/fdt.h         |  53 +++
 xen/arch/x86/hvm/dom0_build.c             |  35 +-
 xen/arch/x86/include/asm/boot-domain.h    |  48 +++
 xen/arch/x86/include/asm/bootinfo.h       |  15 +-
 xen/arch/x86/include/asm/dom0_build.h     |   6 +-
 xen/arch/x86/include/asm/domain-builder.h |  12 +
 xen/arch/x86/include/asm/setup.h          |   4 +-
 xen/arch/x86/pv/dom0_build.c              |  28 +-
 xen/arch/x86/setup.c                      | 106 +++--
 xen/common/Kconfig                        |   4 +
 xen/common/Makefile                       |   2 +-
 xen/include/xen/libfdt/libfdt-xen.h       | 101 +++++
 19 files changed, 927 insertions(+), 86 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/boot-domain.h
 create mode 100644 xen/arch/x86/include/asm/domain-builder.h

-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 08 16:09:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 16:09:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.942757.1341851 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2BVe-0002td-5l; Tue, 08 Apr 2025 16:09:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 942757.1341851; Tue, 08 Apr 2025 16:09: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 1u2BVe-0002tW-2r; Tue, 08 Apr 2025 16:09:10 +0000
Received: by outflank-mailman (input) for mailman id 942757;
 Tue, 08 Apr 2025 16:09: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=2sbj=W2=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u2BVc-0002e3-E0
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 16:09:08 +0000
Received: from NAM12-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam12on20611.outbound.protection.outlook.com
 [2a01:111:f403:2417::611])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id cb4e7e22-1493-11f0-9ffb-bf95429c2676;
 Tue, 08 Apr 2025 18:09:06 +0200 (CEST)
Received: from MN2PR01CA0046.prod.exchangelabs.com (2603:10b6:208:23f::15) by
 DM6PR12MB4435.namprd12.prod.outlook.com (2603:10b6:5:2a6::23) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.8606.35; Tue, 8 Apr 2025 16:09:02 +0000
Received: from BL6PEPF00020E64.namprd04.prod.outlook.com
 (2603:10b6:208:23f:cafe::e3) by MN2PR01CA0046.outlook.office365.com
 (2603:10b6:208:23f::15) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8606.36 via Frontend Transport; Tue,
 8 Apr 2025 16:08:48 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BL6PEPF00020E64.mail.protection.outlook.com (10.167.249.25) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8606.22 via Frontend Transport; Tue, 8 Apr 2025 16:09:02 +0000
Received: from xcbagarciav01.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; Tue, 8 Apr
 2025 11:09:00 -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: cb4e7e22-1493-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=zTFE9824XvjfiH9b3+ZuyHYaPZ9x+mdyDjtaNaXJyzFz45xfCg3mKadTGtLtz6Ean3dI35GVZN8unTiTwMtv2WGkcN1VBFeMAYK5wpIAuNHuWn5BXvQ/+fu2Jt87RJm+VKlXUJjbOx0WUjiEfH7bXE7HmZPNYwhgwG7ZyKjlfKdVBiQfoxY5c3U+5G2YbTcfpfajge1OengPM1cx7QJCiOySfaoCJvxlsu6+VHZMdmLZu5OQmf2qeSf18CY/cFKFOIaxY5hrZ6aNee7bFJGiLcpN5FScT7Mo8S1sNGS+YFZ/z3+SR1Fe5qeoPe/7jnwrPVU7Ua8d6RfMF0tal1Fflg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=acKtpqdz5rKNc8zWQXTuBR08dJPveEi+YEopFwkWo8w=;
 b=cYxBvsoiFYFvShJOAx8rx1mebMqsaMRyVFt/upYe4UmEz9OvsOJqYU5E6yjhfDb78OjTzI3c/S1BtKhvyZhoXNZDPkWCYb/7wSfyn/fgiPpVemsghKmkTvQpkE/aEb7y+lJzLdGUQf0CUoWEFLDq7TvTLljOO5y8k+t+49PLFDSpzEIsXAjqr1ipOVByXXR+BFN57UstEkuXlUWbr1o/rCEGIXoA5zT+ZFqwliE2EeKP4KqU2SwHpRvm1ODmuOYQjgddzaIA62vxzhl63Z3evyGf5JaaHqBDL4b+k4K3D91+J7Hfv6G+7L4NroNp4hD7Wzx1Y7EzjahRFtlvs8qOhQ==
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=acKtpqdz5rKNc8zWQXTuBR08dJPveEi+YEopFwkWo8w=;
 b=bi0exNWpXUr5omJEPM2wf6OflVwNrnUga3X7wCXenMJb84FP/hG0q1no+xB5oVLmyxcEyqbpo+3FdTi+tEUW7Bcnatep/ukd32SkYVL2reoO2cScfVdqKp+mEQ+NjomKgzWAvOejs+9gU5jzP0p5L86jPjjZVXn8owlsbWBh+NE=
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: Alejandro Vallejo <agarciav@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: "Daniel P. Smith" <dpsmith@apertussolutions.com>, Jason Andryuk
	<jason.andryuk@amd.com>, Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	"Stefano Stabellini" <sstabellini@kernel.org>, Michal Orzel
	<michal.orzel@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>, "Alejandro Vallejo" <agarciav@amd.com>
Subject: [PATCH v3 03/16] x86/boot: add cmdline to struct boot_domain
Date: Tue, 8 Apr 2025 17:07:25 +0100
Message-ID: <20250408160802.49870-4-agarciav@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20250408160802.49870-1-agarciav@amd.com>
References: <20250408160802.49870-1-agarciav@amd.com>
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: BL6PEPF00020E64:EE_|DM6PR12MB4435:EE_
X-MS-Office365-Filtering-Correlation-Id: 9435efbe-6024-4f3b-8173-08dd76b7adac
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?f63r3c4TkUhcP5Z+KKCL7F1L9SWwsmAWYFqyKhZvVqXX7AeCDYgFHKSap1ai?=
 =?us-ascii?Q?QWX55EHZ3TybxLZnS6HRptJ9Z+23Sry7Wg49QHP39vE6diMb3TgpKKnTmpOk?=
 =?us-ascii?Q?yGErlL/EuJD47+waHttjTSwWnsGdHON4vQ9dNCtYt1/ukA4lQHAhF25yb9a+?=
 =?us-ascii?Q?Ukp9+HeEKI84Wk6M+QpSfD9nKjOdcvHogXoUAiuSQGZm6diNhBh07pyaaDA6?=
 =?us-ascii?Q?qvIgJHC4dRqHX9GWDyLLdH8+ecC0ppLW9BzFx8rpzOZ0dvKaevSX/8SQwAy3?=
 =?us-ascii?Q?HAqCA2e4U5Ay84FQMeTh6RvSEuo7M9IGsm9IKpQjR81n9mP3k/bAFQKqcQKd?=
 =?us-ascii?Q?F7L8Cx9i0EPHH3QbfLh3wofZSJ7XOaPuUENx01wZjAa8tv+FeOd9sJueDfDt?=
 =?us-ascii?Q?XDsonNksm5WD0nUMf1g4aUv5ZmHj79fJQ/pEdJs8AdlMlgvTkLaukOGHfTpV?=
 =?us-ascii?Q?wNJ5UHpFS0cipSOqWeOfzCrNjIWnKZDdH7jhuOVF2OwLdI94GtCHoc5rWes1?=
 =?us-ascii?Q?9LL0RDvmYSBp08mzD4E1YUxdRAtkAA4d+vDs55CIA5cHvM7mSgjkNHhZZULt?=
 =?us-ascii?Q?lM1ck+fATvaXCwAl9UGz17OQKFx9Y9+pi66Iatzl12/oFNoFWwEQD9qZXFPB?=
 =?us-ascii?Q?i2AVamcItWQY/lHOHh4oyU4F7fkQz9tQrBtt4x17JjA7TztJjpxF+54vZe/m?=
 =?us-ascii?Q?KBmpKiCaTM8JY0T64NZtygThlngfm0hBVdEO1dQnF9bNfnUvL+VFoyQOdp+G?=
 =?us-ascii?Q?W8KtuADQvB2YPF+kybEJQnnahEsnO7FJHG52Fxy2Q0d2gGwqLIjxOWNfbxxj?=
 =?us-ascii?Q?pz/PCzadx1s/eQ3wlveDCaYZbLg35k2QMCOWGeKtIAfv1/xoQQ5xLV6cfG/1?=
 =?us-ascii?Q?gD1w73Cp1wpxCmNlAynZ2s3tc+M2x5qfmPfFDz9F5HSYXwwvHMDq3jxRW5sA?=
 =?us-ascii?Q?1VkZZvY2eXNIqOug/blnGo0CNTGWFKnGA8EszQm+5O7orYqdEnhTexM2BKhp?=
 =?us-ascii?Q?whAJ5oT2fkkbgQLjeRus4upkaW5CfxcaNsE0O9tmQj3ew9ibIO1XSVdAaRAo?=
 =?us-ascii?Q?q8Krn8hsCKFZ0Z1IWSkY6++lZqORtYnUi1EZ4IGz5lCpcVkIzvc0hwG3TC3N?=
 =?us-ascii?Q?LNUnZcb2UsLpzcLGEWyJMXM80lQw6TOSVgPr1Gfw+2z8qwvgUjTqD1sod6Jz?=
 =?us-ascii?Q?k/rM4rwrpJZPs0tUYnERJJx7ncBshtxwxFQaELsLDERQIAVSRfg3KVfH7Wej?=
 =?us-ascii?Q?0CNBAMdWyi2LzUnufoo3lZItALnmYuGAwbKSgZ2a/UXh8ArgcGC67cWoawDR?=
 =?us-ascii?Q?laJ+lUECDbCRkn4JwOnLXApD3XICVOjyANQOlr1CV/Z7Xai3w0jTULPRWhNb?=
 =?us-ascii?Q?1nI5H6nxI+mWv1pVLJtFexpLifjJ1ipmUs702foAXSW/er+2InKBVfeejzbb?=
 =?us-ascii?Q?bZP/6FSRea1mP/PRGVWH8oL5YVXjw7wJAF6zprGbi75+Pw+zFt75ZuNU8nqY?=
 =?us-ascii?Q?auojYAQSuvJ8Ou8=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)(1800799024)(82310400026)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Apr 2025 16:09:02.1022
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 9435efbe-6024-4f3b-8173-08dd76b7adac
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:
	BL6PEPF00020E64.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4435

From: "Daniel P. Smith" <dpsmith@apertussolutions.com>

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>
Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
Signed-off-by: Alejandro Vallejo <agarciav@amd.com>
---
No changes on ACPI cmdline handling on PVH, as it's orthogonal to the
purpose of this patch.

v3:
  * s/xfree/XFREE/ on failed construct_dom0() to avoid a dangling
cmdline ptr.
  * Re-flow hvm_copy_to_guest_phys() into a multi-line call.
  * s/bd->cmdline != NULL/b->cmdline/ (to homogenise with the previous
    cmdline pointer check)
---
 xen/arch/x86/hvm/dom0_build.c          | 12 +++----
 xen/arch/x86/include/asm/boot-domain.h |  1 +
 xen/arch/x86/pv/dom0_build.c           |  4 +--
 xen/arch/x86/setup.c                   | 50 +++++++++++++++++++-------
 4 files changed, 47 insertions(+), 20 deletions(-)

diff --git a/xen/arch/x86/hvm/dom0_build.c b/xen/arch/x86/hvm/dom0_build.c
index 2a094b3145..ebad5a49b8 100644
--- a/xen/arch/x86/hvm/dom0_build.c
+++ b/xen/arch/x86/hvm/dom0_build.c
@@ -653,7 +653,6 @@ static int __init pvh_load_kernel(
     void *image_start = image_base + image->headroom;
     unsigned long image_len = image->size;
     unsigned long initrd_len = initrd ? initrd->size : 0;
-    const char *cmdline = image->cmdline_pa ? __va(image->cmdline_pa) : NULL;
     const char *initrd_cmdline = NULL;
     struct elf_binary elf;
     struct elf_dom_parms parms;
@@ -736,8 +735,8 @@ static int __init pvh_load_kernel(
             initrd = NULL;
     }
 
-    if ( cmdline )
-        extra_space += elf_round_up(&elf, strlen(cmdline) + 1);
+    if ( bd->cmdline )
+        extra_space += elf_round_up(&elf, strlen(bd->cmdline) + 1);
 
     last_addr = find_memory(d, &elf, extra_space);
     if ( last_addr == INVALID_PADDR )
@@ -778,9 +777,10 @@ static int __init pvh_load_kernel(
     /* Free temporary buffers. */
     free_boot_modules();
 
-    if ( cmdline != NULL )
+    if ( bd->cmdline )
     {
-        rc = hvm_copy_to_guest_phys(last_addr, cmdline, strlen(cmdline) + 1, v);
+        rc = hvm_copy_to_guest_phys(last_addr, bd->cmdline,
+                                    strlen(bd->cmdline) + 1, v);
         if ( rc )
         {
             printk("Unable to copy guest command line\n");
@@ -791,7 +791,7 @@ static int __init pvh_load_kernel(
          * Round up to 32/64 bits (depending on the guest kernel bitness) so
          * the modlist/start_info is aligned.
          */
-        last_addr += elf_round_up(&elf, strlen(cmdline) + 1);
+        last_addr += elf_round_up(&elf, strlen(bd->cmdline) + 1);
     }
     if ( initrd != NULL )
     {
diff --git a/xen/arch/x86/include/asm/boot-domain.h b/xen/arch/x86/include/asm/boot-domain.h
index fcbedda0f0..d7c6042e25 100644
--- a/xen/arch/x86/include/asm/boot-domain.h
+++ b/xen/arch/x86/include/asm/boot-domain.h
@@ -15,6 +15,7 @@ struct boot_domain {
 
     struct boot_module *kernel;
     struct boot_module *module;
+    const char *cmdline;
 
     struct domain *d;
 };
diff --git a/xen/arch/x86/pv/dom0_build.c b/xen/arch/x86/pv/dom0_build.c
index b485eea05f..e1b78d47c2 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(const 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 585316f1ca..83cb66e309 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -978,10 +978,30 @@ 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;
+    size_t cmdline_size;
     struct xen_domctl_createdomain dom0_cfg = {
         .flags = IS_ENABLED(CONFIG_TBOOT) ? XEN_DOMCTL_CDF_s3_integrity : 0,
         .max_evtchn_port = -1,
@@ -1020,20 +1040,24 @@ static struct domain *__init create_dom0(struct boot_info *bi)
     if ( alloc_dom0_vcpu0(d) == NULL )
         panic("Error creating %pd vcpu 0\n", d);
 
-    /* Grab the DOM0 command line. */
-    if ( bd->kernel->cmdline_pa || bi->kextra )
+    cmdline_size = domain_cmdline_size(bi, bd);
+    if ( cmdline_size )
     {
+        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 )
         {
@@ -1043,17 +1067,19 @@ 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->kernel->cmdline_pa = 0;
+        bd->cmdline = cmdline;
     }
 
     bd->d = d;
     if ( construct_dom0(bd) != 0 )
         panic("Could not construct domain 0\n");
 
+    XFREE(cmdline);
+
     return d;
 }
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 08 16:09:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 16:09:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.942759.1341863 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2BVf-000396-HO; Tue, 08 Apr 2025 16:09:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 942759.1341863; Tue, 08 Apr 2025 16: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 1u2BVf-00038x-Cn; Tue, 08 Apr 2025 16:09:11 +0000
Received: by outflank-mailman (input) for mailman id 942759;
 Tue, 08 Apr 2025 16:09:10 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=2sbj=W2=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u2BVe-0002e3-4R
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 16:09:10 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on20617.outbound.protection.outlook.com
 [2a01:111:f403:2415::617])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id cc8054cc-1493-11f0-9ffb-bf95429c2676;
 Tue, 08 Apr 2025 18:09:08 +0200 (CEST)
Received: from MN2PR22CA0003.namprd22.prod.outlook.com (2603:10b6:208:238::8)
 by SA1PR12MB8841.namprd12.prod.outlook.com (2603:10b6:806:376::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.33; Tue, 8 Apr
 2025 16:09:04 +0000
Received: from BL6PEPF00020E61.namprd04.prod.outlook.com
 (2603:10b6:208:238:cafe::78) by MN2PR22CA0003.outlook.office365.com
 (2603:10b6:208:238::8) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.19 via Frontend Transport; Tue,
 8 Apr 2025 16:09:03 +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.8606.22 via Frontend Transport; Tue, 8 Apr 2025 16:09:03 +0000
Received: from xcbagarciav01.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; Tue, 8 Apr
 2025 11:09:02 -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: cc8054cc-1493-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=iku/gousZ21/CoWtL7lDRJ2yxYjsJmDEo6Nji6wFn4aNP/7BW4pts9DoxmVkjaMw7EawiRofc3Chkt8owRbWqhiPe5jZ3QRjiYFCZWxWXPM5xjqK3BnTQd+uMth9Mk/A0QnsG1zjTsB/oM2gNOdMac8H7f67uKiBUL24enDT+mG+yKK2i874owUwQwmZUE35uUb3q54qbU4r+7OHNcoIAdZNK3zF2p7j9vWF/nJSGgXPWe4jXfWAanOHxLJ0WfHeFEHCBPmVzLLo2Bth+4EQpX6OzuTJLYectXad0OkfvoEBHnXU/on8Rd93H2CqXh+ka+kcM5lZQYv9wO1fYKU/tQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=OCvGl5qSWPYcGWEgjrtQ/PCpkzIvwhogP31QetCQZRo=;
 b=AAz08EdfsOsDqAM5n9sr1f7qlqM1XjUcZVrqqCv1Nj6XpXH9ue9mWvSsHwYW0qlycTf75JCJv+Z6kXLFSm3cYZ4aFB68PFFM16+4tPO410g69Uj8vuNKcU/jFqdwfYcFmDztWfhD06ROalbdUB5OfLddPCrKLZ5PkxRPQkuMzWomaSbPFzySULMs4rxtU1MnG+Wd0j5yv+L77DWjXywNYaAZdVoYzBgbsYy2EhZcXThyP7Xzqztd40plxpV0E8Js1gvpjWeUYqjebrQyfnoG7N4F2iy5YnNhSFnb6HkzvXzSTubaC/guAR+Wc34wJbIw9dZeHuC+//pgroc8LJVLUg==
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=OCvGl5qSWPYcGWEgjrtQ/PCpkzIvwhogP31QetCQZRo=;
 b=lGbrErOSaF+06/NWLGw6hf27+tbSIKW/vhkjPRLkfXDoqqjGOEKnP1zV26RDQsYZKHSmUcxVUiNpKt3uA49Q+6EnneSptOoxnDNDv/qDouOFES3ltLbx0ssPflYVnVzFK1p4z325RYqxfXmURT4BZPx3qRG4HVDnqDmAgRBKEL0=
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: Alejandro Vallejo <agarciav@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: "Daniel P. Smith" <dpsmith@apertussolutions.com>, Jason Andryuk
	<jason.andryuk@amd.com>, Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	"Stefano Stabellini" <sstabellini@kernel.org>, Michal Orzel
	<michal.orzel@amd.com>, Andrew Cooper <andrew.cooper3@citrix.com>, Anthony
 PERARD <anthony.perard@vates.tech>, Jan Beulich <jbeulich@suse.com>, Julien
 Grall <julien@xen.org>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>
Subject: [PATCH v3 04/16] kconfig: introduce option to independently enable libfdt
Date: Tue, 8 Apr 2025 17:07:26 +0100
Message-ID: <20250408160802.49870-5-agarciav@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20250408160802.49870-1-agarciav@amd.com>
References: <20250408160802.49870-1-agarciav@amd.com>
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: BL6PEPF00020E61:EE_|SA1PR12MB8841:EE_
X-MS-Office365-Filtering-Correlation-Id: eb043a52-d5fc-42c7-9be7-08dd76b7aea2
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|376014|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?dVjgg1Wek5nh/RpX9n3dW4BeXfcxPzsrooILqrwAZp2qRIVVwZ11ghX4Pfqv?=
 =?us-ascii?Q?5c14qo4i96f+GmbUShJEqkJHndJqzlGvFDMMd+3bHDIET8fURTfigTmIx+3Q?=
 =?us-ascii?Q?DrnmQP2o1rfXHa5/6qZ4NHW6HINFVz496skXY62+5yUzL/9c8J6eNGFcqeR5?=
 =?us-ascii?Q?hrvSj0p0s+G6xsABWB1UKQdy8mlAyOepBaViK3oIyDlBC45tmOMlOxkjxyTO?=
 =?us-ascii?Q?uu9gQVBCceNBerPiigGSc/1sRHSitLqvnjBVkqltr1u4Ht4bUodBc0dEf5jU?=
 =?us-ascii?Q?4LAOVoLakCLZ7JcDtZyWA0p9ptfrypONBdML1aCsYK7Ui/yyVkA4dcD7HHDP?=
 =?us-ascii?Q?VKsb3XGzCCV68Ba72fNlPUR9dqvn9vUrjE83CFtAYhwGfjBlBd9MjfRJcvjs?=
 =?us-ascii?Q?kIzPrYZny6Qcgo35ZjYDrNBOsTSetrj5iag92DiYnNbEATEemZ35B9dEsi2z?=
 =?us-ascii?Q?Vk1YAu1AENhT6uPzw4LZMgh80kKe0eAl8ptXEFnlkiqUbFDxdmg6Z/rrnqFu?=
 =?us-ascii?Q?AtdkpU+61fkCteOOZOkRtacbz+otEz4njdkzhcMRBBUa1CmWumD3GSZasEbb?=
 =?us-ascii?Q?zXHMqu2s6oqIqVf6m/5szApzKC4RPS9wzfj9aXDnk0fGdwwmmwPblx39WnZN?=
 =?us-ascii?Q?9XqqDEXDla9Red6VRAwAMcEBDlmBX8GIBJfWp0PEDWhxhKnWQ+mSN5BVkYeV?=
 =?us-ascii?Q?v8iY8TV++NzexciDMIDjI/YKOSe+rPOLVxYkld78tDoKwBmmJGpfcOSwLvNk?=
 =?us-ascii?Q?8NddMSWtCcZDcdf/H/0GzAyj85tMEwENlo0dZBOnvDQJBWE6D3O2+MRQVn1I?=
 =?us-ascii?Q?8Zs6vRcSw7kJKDm0Jv2W5ky09QuUNWaarGVx05rg+yHI0yNvLX4SG5IMo0RM?=
 =?us-ascii?Q?/jXAML06n0z8d8c3F+LPH9D/ECrCBMWJZZyUj7LqVNgZ9F1Jv44MQPqyUsN/?=
 =?us-ascii?Q?GDMIXFy2emuZxBA0tByf5LYHtV1ObIgvxXlz1U08vfya1ELQLplvqSTQVoZA?=
 =?us-ascii?Q?+i4WTW+3oXucBsJkhq2z1xK/WnE5DAFfdVy/VqoVVsOPG02NC7btmKuU0bcY?=
 =?us-ascii?Q?dDhHpIjvs6FINhh0XPWCsPT+j6Zue2Jef/JcS5WtVuowjyMdfHQEIy6z+ZqW?=
 =?us-ascii?Q?ZV1B8wNp9dFdlERA7AGEqOmdDJwJODXVlJhfllNsga/DWs+/Kz1f3XE5RE3g?=
 =?us-ascii?Q?aBc9qZN6q0Hx2N4FdPBvCU3EGsQKLWe4WaCTXD2DeqqZfJ9mbuLHxLO3yzLv?=
 =?us-ascii?Q?mBwZiYGYpX0zcYEgNnpICUT0RLy+lzTXSHtupF/XfIm14T5r/y6kltOKnM30?=
 =?us-ascii?Q?xWhPAN1z2ODmjYgXvFcu51Yj1/akOWyTxvKyh7Q7UPoYIl9Uy3kuKJvYGQHZ?=
 =?us-ascii?Q?Zx8LQ7gd64s3UQOsi5nS/eseUiiX6+5FPrOJgJpThGtrD+teJxKajI4fS9j9?=
 =?us-ascii?Q?jPYbOF4XAzk3IcgKyb0XXS4TwlRm6O08kPeew6R2wZhda5l+QuJZPw=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)(376014)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Apr 2025 16:09:03.6994
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: eb043a52-d5fc-42c7-9be7-08dd76b7aea2
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: SA1PR12MB8841

From: "Daniel P. Smith" <dpsmith@apertussolutions.com>

Currently, the inclusion of libfdt is controlled by the CONFIG_HAS_DEVICE_TREE
kconfig flag. This flag also changes behavior in a few places, such as boot
module processing for XSM. To support the ability to include libfdt without
changing these behaviors, introduce CONFIG_LIBFDT. The inclusion of
libfdt is then moved under CONFIG_LIBFDT.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
---
v3:
    * Use CONFIG_LIBFDT instead of CONFIG_HAS_DEVICET_TREE
---
 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 06ae9751aa..00f74b1e32 100644
--- a/xen/common/Kconfig
+++ b/xen/common/Kconfig
@@ -72,6 +72,7 @@ config HAS_COMPAT
 
 config HAS_DEVICE_TREE
 	bool
+	select LIBFDT
 
 config HAS_DIT # Data Independent Timing
 	bool
@@ -106,6 +107,9 @@ config HAS_UBSAN
 config HAS_VMAP
 	bool
 
+config LIBFDT
+	bool
+
 config MEM_ACCESS_ALWAYS_ON
 	bool
 
diff --git a/xen/common/Makefile b/xen/common/Makefile
index 9da8a7244d..5a9041b0ee 100644
--- a/xen/common/Makefile
+++ b/xen/common/Makefile
@@ -79,7 +79,7 @@ obj-y += sched/
 obj-$(CONFIG_UBSAN) += ubsan/
 
 obj-$(CONFIG_NEEDS_LIBELF) += libelf/
-obj-$(CONFIG_HAS_DEVICE_TREE) += libfdt/
+obj-$(CONFIG_LIBFDT) += libfdt/
 
 CONF_FILE := $(if $(patsubst /%,,$(KCONFIG_CONFIG)),$(objtree)/)$(KCONFIG_CONFIG)
 $(obj)/config.gz: $(CONF_FILE)
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 08 16:09:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 16:09:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.942761.1341872 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2BVi-0003RO-OV; Tue, 08 Apr 2025 16:09:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 942761.1341872; Tue, 08 Apr 2025 16: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 1u2BVi-0003R6-L1; Tue, 08 Apr 2025 16:09:14 +0000
Received: by outflank-mailman (input) for mailman id 942761;
 Tue, 08 Apr 2025 16:09: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=2sbj=W2=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u2BVh-0002e3-UH
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 16:09:14 +0000
Received: from NAM02-BN1-obe.outbound.protection.outlook.com
 (mail-bn1nam02on20621.outbound.protection.outlook.com
 [2a01:111:f403:2407::621])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ceba2474-1493-11f0-9ffb-bf95429c2676;
 Tue, 08 Apr 2025 18:09:12 +0200 (CEST)
Received: from BN8PR03CA0020.namprd03.prod.outlook.com (2603:10b6:408:94::33)
 by BL4PR12MB9507.namprd12.prod.outlook.com (2603:10b6:208:58d::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.34; Tue, 8 Apr
 2025 16:09:07 +0000
Received: from BL6PEPF00020E60.namprd04.prod.outlook.com
 (2603:10b6:408:94:cafe::e1) by BN8PR03CA0020.outlook.office365.com
 (2603:10b6:408:94::33) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8606.35 via Frontend Transport; Tue,
 8 Apr 2025 16:09:06 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BL6PEPF00020E60.mail.protection.outlook.com (10.167.249.21) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8606.22 via Frontend Transport; Tue, 8 Apr 2025 16:09:06 +0000
Received: from xcbagarciav01.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; Tue, 8 Apr
 2025 11:09:04 -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: ceba2474-1493-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=j2EnC5HEsJVdsX3IcTEtl3bxSwm0uFg/8pTfgTPHFG9Is3+o/nOUIymDU7baeCnwKs4v/OkLIrNEO3JHFGb3sNRtPlHe5y+3BcsoqEQVOjOQizGBWfcjocJCf1j59abuC5R0MPkJkCsr6bjyuNm/9R7Bl7CDpOlmyt6Vftif1hzDVshyJwbM0kYzRRCd9RK1LhLDlFMNto1DsoPs8ZEQgOQ5uyONqvjOKPo4+EebPo734IpjelzYyzvvBRJLb6HW7XM9X+5ibMVgfXRCL/NysYLxxcxH3CYtOy4LMg+8p/trzEe4OmUPuvN37CD2WrN+Q4RvWrnmx2+0BkkUvUUCpA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=FHwz8UwybMYOVzVonk4njjqdjxliscrCFkwYeqNUQrU=;
 b=wVIfwK1fJsAkZ6/6UEAvdUw15CsMQ7FzlJqmcF6T7MfBv3PErptXfk7umncnHst+vSHe9sP1DoeKT+aeG/CFSHytvVFJIlSOH2oYcTfRONbDI2ceNe+q4YVrE0sZQ67TH/WKEM2uI7FG7sBl2hjiIItBhQCbUfmznTqG151dvOZfoy/53/QORnthN79cxnMygX4qtU4j7n78LwdK4cxF8/BK+JB7zDH3Ucwu/yofDEFkrAvGZIiGxLxe5yfEpVy7bEfLEPCAxZhHlrVOfQaRO6LJFbrexdgjY8DKvs7gtYITMwXtWhb/NQ06wpm/6bR3NgkSCzYm6GTYOUxhEHS9ow==
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=FHwz8UwybMYOVzVonk4njjqdjxliscrCFkwYeqNUQrU=;
 b=wbPF9eyDV3510sWrB8+OuTfgInoUEEmjhu2hTSTJqtREgSGhzvPSh5dYU5AbiasHmlY/Xw46ETWUV2Ya8xJ26rF+5nzaavEfUWYDkenXwTPmhyULsymvbr+HMmVimCXTp+lCcOv9RxI7bh5a1GCTipMMu6XhfZBNymGord7O5Yw=
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: Alejandro Vallejo <agarciav@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: "Daniel P. Smith" <dpsmith@apertussolutions.com>, Jason Andryuk
	<jason.andryuk@amd.com>, Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	"Stefano Stabellini" <sstabellini@kernel.org>, Michal Orzel
	<michal.orzel@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 v3 06/16] x86/hyperlaunch: introduce the domain builder
Date: Tue, 8 Apr 2025 17:07:28 +0100
Message-ID: <20250408160802.49870-7-agarciav@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20250408160802.49870-1-agarciav@amd.com>
References: <20250408160802.49870-1-agarciav@amd.com>
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: BL6PEPF00020E60:EE_|BL4PR12MB9507:EE_
X-MS-Office365-Filtering-Correlation-Id: 3ba40aab-c975-4942-bceb-08dd76b7b05f
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|36860700013|1800799024|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?pRIQx3L6Zr5vtukdo/I3MD1QPHS2VVLzdwaHysj76rw0bnZMA0ZsLhT5nvED?=
 =?us-ascii?Q?DX0G02QG3Hs1va215dOLU1VUaWHIEXHkC5/TwgT4gnvPchbYJ3Nzw33w7f3w?=
 =?us-ascii?Q?7+aZXBcbBlKXfcoDDBCi9c+mHIXo/41KhMe80nuXZ8LgP7H9RhXXJHX0Gpjv?=
 =?us-ascii?Q?gvRgGApzR/nC+AZ0NYk7EG1gknAVtLbEG9wQH1Ks0ASC8fZydFyS9KD+smQG?=
 =?us-ascii?Q?k+SDkn2DRJceKQZs6ik9sRVfacSiYKOl20phoD9ZzcGFsh26zBYq1AJ80uCd?=
 =?us-ascii?Q?HybhmnAv13FgExpsyn5qP2fYpZMcX0dPQ1+i2bgiRc3E4YE5kltAP48XrHOK?=
 =?us-ascii?Q?Kja9eSc1bFTcGmiIneFP7zTtNDb1bGpxAncvM9ERkFkaAlJfaSDsNlqdwZxX?=
 =?us-ascii?Q?vJP9PsPtj+egDYoCZb/penLslDxFC4pFedYuOb0YGs842H4T1IO2dFCQ9Y2j?=
 =?us-ascii?Q?JZKsUudDaC+wOKdSO90+2ihX2sPbQVgqgzN8mKejWCksAVbEI2JxELp9pGPX?=
 =?us-ascii?Q?yVzmrR/fsYKcGdrIgvfIgmB4HTmjN7Yrlo87idGcG7OZkaTPW0A3EIWUOsCF?=
 =?us-ascii?Q?WDjV6sf6+CYbq5sP3dSMXLLTfWLNwcqYn2l5niAzt9jfPu5rEZKeHpw0IzSR?=
 =?us-ascii?Q?t04kdZRMTSgZMOXNkknZTwbB1lvu52CwTn5mUBNDN9SR6hcqAqtWvw+flTPD?=
 =?us-ascii?Q?BXUGXjZ0uldnv/RpL6Khhrtv/vWu9M8yJZb23kEVEfhGUyJxdFu4jIA2RI1t?=
 =?us-ascii?Q?NcSUr3GJesyFYZph24GoUg0AVNCTI5DXuiqo7YG9O+dRQaJD1uAU45lqR+hn?=
 =?us-ascii?Q?wMiXuyIHMCD+n8ZJFb15nKyZCPOvAvuL7NehUW/Fltuf2I/2/gvPJ9CTzydr?=
 =?us-ascii?Q?Yi+dNGt45SJVXpbhFlEBe88sOAYuNZNxTjcDtHQ026/Dsnm5/XuHMOI/xn16?=
 =?us-ascii?Q?NxEVZL/NX9/0ccyiQhfW+NjL9LyUbdaczqoDTqd81zy76UVpu/WC0zeaeH/e?=
 =?us-ascii?Q?oj2Z0q1bO8YsJ7T5EvzqFeDS3qaMZ3xrEXnBMbc/T9SPKE8EFPp66deC7qfk?=
 =?us-ascii?Q?/EwduHsEU61U2vdqD8HTwfM9Rm0SMZD4SqM9Dat7KAUFeW06PAi72SPnG/yI?=
 =?us-ascii?Q?tQRiCExxgRERJMv/LCqZ1E4KxxTG1wok3Y8d5JDPvG8cXc8VYFZzNfHwuLkE?=
 =?us-ascii?Q?8ZbudQ2Trg/8uCr56lpRkpReCEOlQTife2I2E9rjMQwEqZMOwr9lCN7aul2N?=
 =?us-ascii?Q?C/93Q0ta7HewhlGNEEF/ZmkCfDF0fweri2lemnRY4PqnSZzzpAOMlbcr3Vdd?=
 =?us-ascii?Q?mr9I/4cIwbJFkZ5l/eOUnNtAHaxloBGuOe2Bt1enqggAcJnY2tm6tUw6M150?=
 =?us-ascii?Q?PyoC/MNtAQAN5fcRj0KDv00Icnatm946RN/OQwKeKeIf8wvb1oYbTNHTQsTv?=
 =?us-ascii?Q?80uZ2NOl+0Sn8BnIWViIkCDCMDYrzd0K8ssPJ0W+PIHjxCHuUMTQIw=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)(36860700013)(1800799024)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Apr 2025 16:09:06.6166
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 3ba40aab-c975-4942-bceb-08dd76b7b05f
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:
	BL6PEPF00020E60.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL4PR12MB9507

From: "Daniel P. Smith" <dpsmith@apertussolutions.com>

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>
Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
---
v3:
    * Move obj-y += domain-builder/
    * Remove blank line in Makefile
    * const in has_hyperlaunch_fdt()
    * CONFIG_LIBFDT rename
    * Use boot_info forward declaration
    * Rename domainbuilder.h to domain-builder.h
    * Add fdt NULL check
---
 xen/arch/x86/Makefile                     |  1 +
 xen/arch/x86/domain-builder/Kconfig       |  2 +-
 xen/arch/x86/domain-builder/Makefile      |  2 +
 xen/arch/x86/domain-builder/core.c        | 57 +++++++++++++++++++++++
 xen/arch/x86/domain-builder/fdt.c         | 37 +++++++++++++++
 xen/arch/x86/domain-builder/fdt.h         | 21 +++++++++
 xen/arch/x86/include/asm/bootinfo.h       |  3 ++
 xen/arch/x86/include/asm/domain-builder.h |  8 ++++
 xen/arch/x86/setup.c                      | 17 ++++---
 9 files changed, 141 insertions(+), 7 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/domain-builder.h

diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
index f59c9665fd..deae31d627 100644
--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -1,6 +1,7 @@
 obj-y += acpi/
 obj-y += boot/
 obj-y += cpu/
+obj-y += domain-builder/
 obj-y += efi/
 obj-y += genapic/
 obj-$(CONFIG_GUEST) += guest/
diff --git a/xen/arch/x86/domain-builder/Kconfig b/xen/arch/x86/domain-builder/Kconfig
index 8ed493c3b5..51d549c20d 100644
--- a/xen/arch/x86/domain-builder/Kconfig
+++ b/xen/arch/x86/domain-builder/Kconfig
@@ -3,7 +3,7 @@ menu "Domain Builder Features"
 
 config DOMAIN_BUILDER
 	bool "Domain builder (UNSUPPORTED)" if UNSUPPORTED
-	select LIB_DEVICE_TREE
+	select LIBFDT
 	help
 	  Enables the domain builder capability to configure boot domain
 	  construction using a flattened device tree.
diff --git a/xen/arch/x86/domain-builder/Makefile b/xen/arch/x86/domain-builder/Makefile
new file mode 100644
index 0000000000..b10cd56b28
--- /dev/null
+++ b/xen/arch/x86/domain-builder/Makefile
@@ -0,0 +1,2 @@
+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 0000000000..d6ae94f45c
--- /dev/null
+++ b/xen/arch/x86/domain-builder/core.c
@@ -0,0 +1,57 @@
+/* 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:
+        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;
+            break;
+        }
+    }
+}
+
+/*
+ * 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 0000000000..aaf8c1cc16
--- /dev/null
+++ b/xen/arch/x86/domain-builder/fdt.c
@@ -0,0 +1,37 @@
+/* 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 <asm/bootinfo.h>
+#include <asm/page.h>
+#include <asm/setup.h>
+
+#include "fdt.h"
+
+int __init has_hyperlaunch_fdt(const struct boot_info *bi)
+{
+    int ret = 0;
+    const void *fdt = bootstrap_map_bm(&bi->mods[HYPERLAUNCH_MODULE_IDX]);
+
+    if ( !fdt || 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 0000000000..8e62cd843e
--- /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>
+
+struct boot_info;
+
+/* hyperlaunch fdt is required to be module 0 */
+#define HYPERLAUNCH_MODULE_IDX 0
+
+#ifdef CONFIG_DOMAIN_BUILDER
+int has_hyperlaunch_fdt(const struct boot_info *bi);
+#else
+static inline int __init has_hyperlaunch_fdt(const 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 3afc214c17..82c2650fcf 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/domain-builder.h b/xen/arch/x86/include/asm/domain-builder.h
new file mode 100644
index 0000000000..b6d9ba94de
--- /dev/null
+++ b/xen/arch/x86/include/asm/domain-builder.h
@@ -0,0 +1,8 @@
+#ifndef __XEN_X86_DOMBUILDER_H__
+#define __XEN_X86_DOMBUILDER_H__
+
+struct boot_info;
+
+void builder_init(struct boot_info *bi);
+
+#endif
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 83cb66e309..e5d78bcb48 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -36,6 +36,7 @@
 #include <asm/bzimage.h>
 #include <asm/cpu-policy.h>
 #include <asm/desc.h>
+#include <asm/domain-builder.h>
 #include <asm/e820.h>
 #include <asm/edd.h>
 #include <asm/genapic.h>
@@ -1281,9 +1282,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);
+    bi->domains[0].kernel->headroom =
+        bzimage_headroom(bootstrap_map_bm(bi->domains[0].kernel),
+                         bi->domains[0].kernel->size);
     bootstrap_unmap();
 
 #ifndef highmem_start
@@ -1591,7 +1596,7 @@ void asmlinkage __init noreturn __start_xen(void)
 #endif
     }
 
-    if ( bi->mods[0].headroom && !bi->mods[0].relocated )
+    if ( bi->domains[0].kernel->headroom && !bi->domains[0].kernel->relocated )
         panic("Not enough memory to relocate the dom0 kernel image\n");
     for ( i = 0; i < bi->nr_modules; ++i )
     {
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 08 16:09:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 16:09:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.942764.1341882 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2BVp-0003ts-VC; Tue, 08 Apr 2025 16:09:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 942764.1341882; Tue, 08 Apr 2025 16:09: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 1u2BVp-0003ta-Rh; Tue, 08 Apr 2025 16:09:21 +0000
Received: by outflank-mailman (input) for mailman id 942764;
 Tue, 08 Apr 2025 16:09: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=2sbj=W2=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u2BVp-0002e3-2K
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 16:09:21 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on2061f.outbound.protection.outlook.com
 [2a01:111:f403:2414::61f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d27b591a-1493-11f0-9ffb-bf95429c2676;
 Tue, 08 Apr 2025 18:09:18 +0200 (CEST)
Received: from BN9PR03CA0485.namprd03.prod.outlook.com (2603:10b6:408:130::10)
 by MW4PR12MB7029.namprd12.prod.outlook.com (2603:10b6:303:1eb::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.29; Tue, 8 Apr
 2025 16:09:13 +0000
Received: from BL6PEPF00020E65.namprd04.prod.outlook.com
 (2603:10b6:408:130:cafe::a7) by BN9PR03CA0485.outlook.office365.com
 (2603:10b6:408:130::10) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8606.28 via Frontend Transport; Tue,
 8 Apr 2025 16:09:12 +0000
Received: from SATLEXMB04.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.8606.22 via Frontend Transport; Tue, 8 Apr 2025 16:09:12 +0000
Received: from xcbagarciav01.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; Tue, 8 Apr
 2025 11:09:10 -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: d27b591a-1493-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=u97Z9tswxDynWTJ0P2xJi4olEUT79AMaBaeIAt8fO0AVaVnX9MScET3eAY6NQ29h07pcwk8Z349m+jRAs2zfVvc8I4po19UsZVWdOyy9IvRT3NTmYuaUDJldgV/WosRU5UnVVFhJzB0Yvd8pjsjWRfJTMkfx5yOhj9Yl+3TDf5c1Um4QjCwG2oWy4QLR6dgqlSwPOueJeUFARPcpHFzKnO5q3xWiAUjKY6YE4GmrO0oSv8XHxQwmIEhW+S0eYjVE9J6jZRbokhG52j3FEzu4nQwithT8IVvTJ8YtmEigz0TYA7O4c281s82aUwCxwZGrg11TvXmr9gLNUHOT1c7rHA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=5IZT8fNpajJpPrD7JBt6IyOdueLZGX88E8xJcZfVlwc=;
 b=GFkEAeB3TN9g9Pb/JPrI11vFKvWFPHIuTrvIakqXcd8wW6YZScxsu8IrH4ctvB7OWAkTVX22KcL1r9RJ6zbAssKBe7bZp4IS0uczRpRhDfEiHbRNHNmnteHOhRfUsnKL0eT808r90R1kMf+ZiQ26852e6LRuSXyU7Dj3NbLGKese7MfHQ2IPDLaebe3x75by1mPeo0IjOoTCwAwleqy0FR+osmtYQOdkF0K4xKsv28XNr+hvRSynZYYU+Yi6kQq0UB9Sw0qn+SOmLr+S/Y15ErP5UjvEI/PjEt+f50+ST5eaZZIgU9w1HOmR1Vivn787sUpwlFQ4dESBItVSq+ZDzg==
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=5IZT8fNpajJpPrD7JBt6IyOdueLZGX88E8xJcZfVlwc=;
 b=m+mJlxQsMuipny/vZ8/aMYk4QoesBp9bHpJI5r6ToSsIMQpzgxxxEUy/uqwhUXG1lzS0ILXY/34CGeKHn36hXg/wvZFy65xz10NlH5vUHD3e9ROJ1xAUK9VKP0NCaQxnLr0/ApW6xNsVEK6xXGxHSiAsAaRPuIbvrp2iNlEswz4=
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: Alejandro Vallejo <agarciav@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: "Daniel P. Smith" <dpsmith@apertussolutions.com>, Jason Andryuk
	<jason.andryuk@amd.com>, Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	"Stefano Stabellini" <sstabellini@kernel.org>, Michal Orzel
	<michal.orzel@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>, Bertrand Marquis
	<bertrand.marquis@arm.com>
Subject: [PATCH v3 10/16] x86/hyperlaunch: obtain cmdline from device tree
Date: Tue, 8 Apr 2025 17:07:32 +0100
Message-ID: <20250408160802.49870-11-agarciav@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20250408160802.49870-1-agarciav@amd.com>
References: <20250408160802.49870-1-agarciav@amd.com>
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: BL6PEPF00020E65:EE_|MW4PR12MB7029:EE_
X-MS-Office365-Filtering-Correlation-Id: 2bb02b01-e390-40e9-8096-08dd76b7b3e1
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|36860700013|1800799024|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?99+rsnMGmGWMdeTo798rlZdfyoQ4p9YvaeFf6W0jy7OV96r32yKeRwIUm90o?=
 =?us-ascii?Q?9fqDs72/3F7hGOukME7ghpJFBJFOAY1bW6YaAhvjEfLC2FjlshJdW0F+oyMs?=
 =?us-ascii?Q?YFpYMLNp87hR5wcKRgoNTUEn+Oh8qASK88r47m21y2B+8O0drks+SYU+jcq0?=
 =?us-ascii?Q?dymY5wOJOydZO9I31n6WtFNNT07JSoxr2g0k7BOsuKoVtKb6X7lC+Ga4t21q?=
 =?us-ascii?Q?mN0DF+VgVLj8pq71Y89adc63wzKNImaxvFOGaBcOP+62H9XwMBAzh5KE/74f?=
 =?us-ascii?Q?GruuDMKdIGrozyZcYX9iu+nQc6lUBBu+LvqeR4lOzgF2bfoEmi/IyA/np+Bf?=
 =?us-ascii?Q?SkgS0FT0MDSs/2pfqrAzrISVl8kLB7oZX17WPCpEyZp3/z9OIeaxA1eW2WWp?=
 =?us-ascii?Q?Bxn5GS5xFKr+LPIcxkF+Z7LzjbnCB/kNf9maQHjiRs86rGNIu5SOY87vz1Wh?=
 =?us-ascii?Q?fHnUXXksHZi2dRmtFSWPwE6w9xl+I6b99f3vFSdKpHgz82ZuaBRMyzTkufwh?=
 =?us-ascii?Q?3lc9rwwzdyxes6FptoPdUUJwzI2EA6w42KX3+rtr/XcIuSkbx2LwYgUERWJN?=
 =?us-ascii?Q?D8u9Dq12c7/aRFW6vXxfpNVkw6lyVKasfPlHmzsPyaf4zZa7zxWNgu5Fc/OW?=
 =?us-ascii?Q?jmht+amYVaZ2nESSBI/0uXjG+0CN9FV0ipBDC3cw2LD9+aTMUb/2Nru7X72P?=
 =?us-ascii?Q?/OK2B5BIX4TtfYpx2biC8NhCTBBomj5JC/TLWTELHKZA3bApPydBlmAgDk5E?=
 =?us-ascii?Q?oo7S438nROrO8cO1fnMQP7iSDA7PVEc8hsY5BNqjSMKHYQYvvrp419J5ArMg?=
 =?us-ascii?Q?c/Bf1dcsH3V97tCi5IhapTGjGl9s3799CE+BRypbSCLLxvWMQm0ouXGonq1Z?=
 =?us-ascii?Q?m/b/vwDZHNtDVGpypyIiBPYyTTvZLA3mYUutxe1v5uVNEXQmXRNmGPDHouhE?=
 =?us-ascii?Q?uVwIMMY1yQVQSG0rgx+uWqj5LGdCQb/8vbYLjEOC0qdpYbAEUyKdmnM+G4Py?=
 =?us-ascii?Q?1z1t4D7a2U19P8u4luGSkVdSX6thbNGJBXVBxarRBYflIaBOF8pnC31tzHQS?=
 =?us-ascii?Q?DMAyzvqLp6DtVqCdegr+oXnMm9lHoqzC9RCrDO/uuKGPtRhlNqoyRGRoQ3hz?=
 =?us-ascii?Q?ocpqX/cLtAZLoYYla87GwZQgdMLnbfrLbWMdoeA0YUjUUm88s3lLCKAYJ2DA?=
 =?us-ascii?Q?OaO7zoqOTb6gqSFz5MdgtthdGgN+qrJGfiqDSCbQddNRvTSS4C7WnSS72ptr?=
 =?us-ascii?Q?g007Xe1xDHJ8/J8hcdT54fSwEfERTjTo3e9jplFGn88RNIlmAKhFQEZvpuEC?=
 =?us-ascii?Q?qFUeNgzq+fHXvfa/JyXjbHATxYyXXOLJwmOCWq2MoZuJAxbBFcridmy9gZO6?=
 =?us-ascii?Q?nnMhNAezzsP/FdXrnVCNRIjPNdlFwj+mVxnpHQ388HOSwzkrLTTvNJmBARdg?=
 =?us-ascii?Q?CIEiZYDb2UiE0jzwDZY6Yk/WzV4KtSAksMXE30jYiBWfrk+nMosvbMiP4+KP?=
 =?us-ascii?Q?1Lu15lxMEFPmQ50=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)(36860700013)(1800799024)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Apr 2025 16:09:12.5002
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 2bb02b01-e390-40e9-8096-08dd76b7b3e1
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:
	BL6PEPF00020E65.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR12MB7029

From: "Daniel P. Smith" <dpsmith@apertussolutions.com>

Add support to read the command line from the hyperlauunch device tree.
The device tree command line is located in the "bootargs" property of the
"multiboot,kernel" node.

A boot loader command line, e.g. a grub module string field, takes
precendence ove the device tree one since it is easier to modify.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
---
v3:
    * Rename to fdt_get_prop_offset()
    * Remove size_t cast from builder_get_cmdline_size()
    * fdt_get_prop_offset() use strcmp()
    * fdt_get_prop_offset() return bool
---
 xen/arch/x86/domain-builder/core.c        | 28 +++++++++++++++++++++++
 xen/arch/x86/domain-builder/fdt.c         |  6 +++++
 xen/arch/x86/domain-builder/fdt.h         | 25 ++++++++++++++++++++
 xen/arch/x86/include/asm/bootinfo.h       |  6 +++--
 xen/arch/x86/include/asm/domain-builder.h |  4 ++++
 xen/arch/x86/setup.c                      | 12 +++++++---
 xen/include/xen/libfdt/libfdt-xen.h       | 23 +++++++++++++++++++
 7 files changed, 99 insertions(+), 5 deletions(-)

diff --git a/xen/arch/x86/domain-builder/core.c b/xen/arch/x86/domain-builder/core.c
index eda7fa7a8f..510a74a675 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;
+#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 a037c8b6cb..bc9903a9de 100644
--- a/xen/arch/x86/domain-builder/fdt.c
+++ b/xen/arch/x86/domain-builder/fdt.c
@@ -189,6 +189,12 @@ 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] )
+                bd->kernel->fdt_cmdline = fdt_get_prop_offset(
+                    fdt, node, "bootargs", &bd->kernel->cmdline_pa);
         }
     }
 
diff --git a/xen/arch/x86/domain-builder/fdt.h b/xen/arch/x86/domain-builder/fdt.h
index e8769dc51c..91f665c8fd 100644
--- a/xen/arch/x86/domain-builder/fdt.h
+++ b/xen/arch/x86/domain-builder/fdt.h
@@ -12,6 +12,31 @@ struct boot_info;
 #define HYPERLAUNCH_MODULE_IDX 0
 
 #ifdef CONFIG_DOMAIN_BUILDER
+
+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(const 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 1e3d582e45..5b2c93b1ef 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/domain-builder.h b/xen/arch/x86/include/asm/domain-builder.h
index b6d9ba94de..7518b6ddf3 100644
--- a/xen/arch/x86/include/asm/domain-builder.h
+++ b/xen/arch/x86/include/asm/domain-builder.h
@@ -3,6 +3,10 @@
 
 struct boot_info;
 
+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 00e8c8a2a3..ca4415d020 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -984,7 +984,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;
@@ -1047,9 +1050,12 @@ 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_cook(__va(bd->kernel->cmdline_pa),bi->loader),
                     cmdline_size);
 
         if ( bi->kextra )
diff --git a/xen/include/xen/libfdt/libfdt-xen.h b/xen/include/xen/libfdt/libfdt-xen.h
index 2259c09a6a..e473fbaf0c 100644
--- a/xen/include/xen/libfdt/libfdt-xen.h
+++ b/xen/include/xen/libfdt/libfdt-xen.h
@@ -23,6 +23,29 @@ static inline uint64_t  __init fdt_cell_as_u64(const fdt32_t *cell)
     return ((uint64_t)fdt32_to_cpu(cell[0]) << 32) | fdt32_to_cpu(cell[1]);
 }
 
+static inline bool __init fdt_get_prop_offset(
+    const void *fdt, int node, const char *name, unsigned long *offset)
+{
+    int ret, poffset;
+    const char *pname;
+
+    fdt_for_each_property_offset(poffset, fdt, node)
+    {
+        fdt_getprop_by_offset(fdt, poffset, &pname, &ret);
+
+        if ( ret < 0 )
+            continue;
+
+        if ( strcmp(pname, name) == 0 )
+        {
+            *offset = poffset;
+            return true;
+        }
+    }
+
+    return false;
+}
+
 /*
  * Property: reg
  *
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 08 16:10:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 16:10:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.942784.1341891 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2BX2-0006W4-FP; Tue, 08 Apr 2025 16:10:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 942784.1341891; Tue, 08 Apr 2025 16:10: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 1u2BX2-0006Vx-Cg; Tue, 08 Apr 2025 16:10:36 +0000
Received: by outflank-mailman (input) for mailman id 942784;
 Tue, 08 Apr 2025 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=2sbj=W2=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u2BVe-0000a6-UD
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 16:09:10 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on2060a.outbound.protection.outlook.com
 [2a01:111:f403:2418::60a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id cdc17917-1493-11f0-9eaa-5ba50f476ded;
 Tue, 08 Apr 2025 18:09:10 +0200 (CEST)
Received: from BL1P222CA0030.NAMP222.PROD.OUTLOOK.COM (2603:10b6:208:2c7::35)
 by DM4PR12MB6589.namprd12.prod.outlook.com (2603:10b6:8:b4::22) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.35; Tue, 8 Apr
 2025 16:09:05 +0000
Received: from BL6PEPF00020E5F.namprd04.prod.outlook.com
 (2603:10b6:208:2c7:cafe::46) by BL1P222CA0030.outlook.office365.com
 (2603:10b6:208:2c7::35) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8606.35 via Frontend Transport; Tue,
 8 Apr 2025 16:09:05 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BL6PEPF00020E5F.mail.protection.outlook.com (10.167.249.20) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8606.22 via Frontend Transport; Tue, 8 Apr 2025 16:09:05 +0000
Received: from xcbagarciav01.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; Tue, 8 Apr
 2025 11: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: cdc17917-1493-11f0-9eaa-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=T/tnOfkI3kiJBebYNjMhCJbJJPaGPYM5ntz3/E6ssWTNw0KXV3LKOX8TgXlS1DKn0cH8Nrl8yNoQVlipE7NIRw1cCQP1K0PKhiAcddVyixcSn0ppVc5Baj8PIzJIA+ShcJ3XbJ1SMOdTPKzWDAc/chbfk++mE7N4oXU0eDRjxKcJ+qOPDnL5knlzgRJ318/mRCjGtWAHj1J6V7vA/lTMaW8a44fAQaXx9gK0ZCVEhkvTepfixxpm99NyvH6cWUUF5kKOjAIsIoSFEBPMczPA+6ESOYJsFylYkow1h3T4TSbjtM9lgyr5ytSNyBjFUtQTBGXLp4sfPpixmwpKgq5lwA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=WEwRiBF5EEuyNhZaJK9NgqTmDdKtu/qhdxHFkSWjIjY=;
 b=cAaJe5t2v5Njo/uJthgv5iMkfNomo8KJDEzDInTPHtVigGZSKuPugaTzFwhANXLush4rVP9CqfAqSaZwGEpRQxz1aBD+Gc5aipbuj6+Kw7ZCe3jUkmrpLC5ibbuJH7dd4OI4pguj2+NUVZQMdCQFV/r1s9Ba+vlrXF8LAHPAs8bqe37nz5laHeEFLt06WNPVi5Ko43lgy9Gx5H0TOJeyEkcxk9sc0XJ8ioOINbiz20TzLrMUp5AZGnwbyDQ2fzqAZy2b4ZYKanlCKVrDoI+1INxUXLZEe8rdUUZObaxriRBv0PQm0sQGZdvA2Y2RqnCebX74QigwWb3vtCJwVcscPg==
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=WEwRiBF5EEuyNhZaJK9NgqTmDdKtu/qhdxHFkSWjIjY=;
 b=Hx+r1VO4O6tAMBFBf5xeYKB//Ymk5D4cV4lBsqQr5CjR2j2f7eD1RqlLBZVNJHiBkzvILLzNd3vzQkfU0tVdr5jiznEEz5F2JZUMBlZ0+rv7hwlmhbC0hEDg4jMzmaF3xg0xYe0jJpw2VT4Ogzr50fFHeqQrfo/BrgtiwaY4K54=
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: Alejandro Vallejo <agarciav@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: "Daniel P. Smith" <dpsmith@apertussolutions.com>, Jason Andryuk
	<jason.andryuk@amd.com>, Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	"Stefano Stabellini" <sstabellini@kernel.org>, Michal Orzel
	<michal.orzel@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 v3 05/16] kconfig: introduce domain builder config option
Date: Tue, 8 Apr 2025 17:07:27 +0100
Message-ID: <20250408160802.49870-6-agarciav@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20250408160802.49870-1-agarciav@amd.com>
References: <20250408160802.49870-1-agarciav@amd.com>
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: BL6PEPF00020E5F:EE_|DM4PR12MB6589:EE_
X-MS-Office365-Filtering-Correlation-Id: 5c88989f-380f-4e36-965c-08dd76b7af77
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|376014|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?Ax3ue7Ha9sftU37v/Of1ciIA2S0GfnxJsxv8z3DvkX5KIh+LdDhWusVa+kOJ?=
 =?us-ascii?Q?/gSTcTj7Rie+34pYi0MoZjGIbzk8k0kgg5ZRlGOhRa5zhszP+1qUj3x/fCIP?=
 =?us-ascii?Q?CD5kgQjb4UhVe0fb/nKCQ2XbW2J8i448S8VaTlefWskwAE32K4BNbLP0c9it?=
 =?us-ascii?Q?JNotMTgieavd/naTcjr4XmRbPmYuJ7SVRz65YFFbt8USpqsw/qlf724N9YLm?=
 =?us-ascii?Q?vuoWTCGePUcX1k422PJPWlQHWuQNrSgX1oqdWBqGfSow/N6QuqDGtr9NZ/FG?=
 =?us-ascii?Q?d3vbTdpyDrSJrtGJXvBnyW6vHpuA45wn8g5b9pilNMgV/8Efh86Ps8Dhl0vq?=
 =?us-ascii?Q?TYT6eevcP/f21yCb992QErh+WjLv9Jke3sszp8eZOYhVMUzYI3i7YVG1qcX9?=
 =?us-ascii?Q?AKADfKwQb1/D88LKrfxWuQGLO42XfKlABA1AOeWkQCchPui8dhT5xjDy3ZkV?=
 =?us-ascii?Q?mVgR6aMr2lomIXtLVhlG3Gp6wF9F6LsxHsBMPv68RG19vMyTbHcQ1KObcMy+?=
 =?us-ascii?Q?YkMqiA9buCn3ehmQrwmaTc+hlKBxXHoVsvnCgQtqIj/xLb2wGBI+GF6Wqf+q?=
 =?us-ascii?Q?K8nq8pzsuASVP8eHykpEPNSi7wThHjBSy2oJfclu9HfQe8vqceRZb87Bti2I?=
 =?us-ascii?Q?4epDtlUV0PiP4BHFWduB4hTI0VKh6j6WlwJUu4WGuQ29tpyDeTuISFw26EdD?=
 =?us-ascii?Q?C+UVnyefcwo3EeNj8FGb5JkKlMQxiWHeBU62GkCT7ascgyOUhQaNcJjXdNeG?=
 =?us-ascii?Q?h96N2adwgEFu7q8RF7pSgYrCwOlOWwcWAGc5ep/CJcDi3tHBjkmQXIOMGY7D?=
 =?us-ascii?Q?I11+woSBugTXZrk+T6d/c05YunqqrfaLIxEvaFdOMlSIoGhaf4r5h4Ht+eWH?=
 =?us-ascii?Q?QKYW/gIdxmzWgYfo+sHZ1xnPXqktBovgpQFmDw+EDLUPioMokkt0t7KZ+XHR?=
 =?us-ascii?Q?/d6vscka2IpxIJz7eJc8JdkSTX4hB1jI3tWMWhxempdV9HYPDWBRUxUnRCAn?=
 =?us-ascii?Q?ZGMSj55lQrxvu7/0MU91weJEXdbojAuDItZMXdu80cyQLeklnyvRFrlcTXrO?=
 =?us-ascii?Q?yk75we6hRNrQbMDpgWdYbOUvTdjRzHsyRlWcWDtFxCxnUwYD/vRCFZJ/APGl?=
 =?us-ascii?Q?JX8/F5NWXzmXNiKCN+Z6sv+s2Gz/MBEDnd+idBISplFErENpykaIv+nVRXVN?=
 =?us-ascii?Q?30SjGho2OcSCbzj+o5jz3XowBS2+X6SHih9TAaqLZl80YwMlHxA1e2lvVE2A?=
 =?us-ascii?Q?WoB07ZwkId7VBd4meb/HRFUqZVvPBRVvpuOqvw0daYUM8l+v/KvCE94elwdI?=
 =?us-ascii?Q?E+kWSrIsJbxJsHDgnOAG/cIOtwogTo7+gA6FUUBbqpC6SLltV0NXc9AKFm7v?=
 =?us-ascii?Q?+Ii9nVEHjRhZ2ldWQeICukaA0c3WKszk0xUZVUJIOEkIMthCN7iFdXAeWX2Q?=
 =?us-ascii?Q?l/pCWwGfX/TuOFHdzaIsWHKUgIM6tcO+JSDC39qJEb4sM/ECRsOBpQ=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)(376014)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Apr 2025 16:09:05.1108
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 5c88989f-380f-4e36-965c-08dd76b7af77
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:
	BL6PEPF00020E5F.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB6589

From: "Daniel P. Smith" <dpsmith@apertussolutions.com>

Hyperlaunch domain builder will be the consolidated boot time domain
building logic framework. Introduces the config option to enable this
domain builder to eventually turn on the ability to load the domain
configuration via a flattened device tree.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>
---
v3:
    * Minor s/_/-/ in the "source" line
---
 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 de2fa37f08..a31002324e 100644
--- a/xen/arch/x86/Kconfig
+++ b/xen/arch/x86/Kconfig
@@ -321,6 +321,8 @@ config UCODE_SCAN_DEFAULT
 	  Enable if you have a Linux-based dom0 with microcode attached to the
 	  initramfs.
 
+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 0000000000..8ed493c3b5
--- /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.43.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 08 16:10:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 16:10:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.942786.1341896 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2BX2-0006aJ-NM; Tue, 08 Apr 2025 16:10:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 942786.1341896; Tue, 08 Apr 2025 16:10: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 1u2BX2-0006ZA-JO; Tue, 08 Apr 2025 16:10:36 +0000
Received: by outflank-mailman (input) for mailman id 942786;
 Tue, 08 Apr 2025 16:10: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=2sbj=W2=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u2BVu-0000a6-Oh
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 16:09:26 +0000
Received: from NAM02-DM3-obe.outbound.protection.outlook.com
 (mail-dm3nam02on20626.outbound.protection.outlook.com
 [2a01:111:f403:2405::626])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d6e62563-1493-11f0-9eaa-5ba50f476ded;
 Tue, 08 Apr 2025 18:09:25 +0200 (CEST)
Received: from BN9PR03CA0510.namprd03.prod.outlook.com (2603:10b6:408:130::35)
 by DS0PR12MB7581.namprd12.prod.outlook.com (2603:10b6:8:13d::21) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.46; Tue, 8 Apr
 2025 16:09:20 +0000
Received: from BL6PEPF00020E65.namprd04.prod.outlook.com
 (2603:10b6:408:130:cafe::48) by BN9PR03CA0510.outlook.office365.com
 (2603:10b6:408:130::35) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8606.33 via Frontend Transport; Tue,
 8 Apr 2025 16:09:19 +0000
Received: from SATLEXMB04.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.8606.22 via Frontend Transport; Tue, 8 Apr 2025 16:09:19 +0000
Received: from xcbagarciav01.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; Tue, 8 Apr
 2025 11:09:18 -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: d6e62563-1493-11f0-9eaa-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=D6Rzp27zm8TH/hdxXoB5AbyMZLsU/atAprbomog0ckPL72ogew3cbqwFcsVnwPw9yKLD0LDPFhmzhfuTj+zNqSRlYG/GFQpEcgpNOXXPZ77IDK8TXN6Ez4YmLXquBafN6XHzb9SRubI9eAhaxt/GBHtik6rPhXMSQbYzLd4E0Dn28yk8vmfLRkvN6c8nWMq0YSKq7mysz//inMHrJOC8OamAC1eQRP6X2TVpb1J+USs8xaL4TRAC7wus4PczWgsv9qEjXsSk4iF1exsNTsby8wcMVzMqvs9rkntRrgARteppkEpw/z4RB/0VsjZCJFuQzmYcMdPGAXYV8Fc+Lrqy/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=/2WAAf2kiNnaQf/e9i4d409O0E4TYYx6jvhe7n69gtg=;
 b=dZPb+H09vWs1AAhAECvBM9lO+ciAv/gHbtsgnjgEXuTsUnQseJGgsf2M9C1a/dq/RABnbpCP9L/+c2b+zIs0S9kXB7tsU4hXoAxx8TjCwedOqfwB/UIO/nU+LE7dMWsYcK+hRQvV0dFqab3AUzsZbGQeixGwQpk8zMmc3yn3A3OAtqBJRsgUkU70xpKN9ournZCHkGspiCo174hICwAOhAgj1I/QW3/KLmlMr5Yqk6TqnvDqRBOeFLbP6wUEEUDiBdr0befGZYSmnfaj8F/PrrRWAdYYtvSht6jyn6RH3l60bQkUhaP1246M68bzmbh1kaFUEqvCk3i2kA08hKtgUw==
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=/2WAAf2kiNnaQf/e9i4d409O0E4TYYx6jvhe7n69gtg=;
 b=i2hbGrF1CDOPX+36KE8VUAQ8/GG2ZJ8TaiwrnkhCOXPzCwHz3nKiBBShDnD09EI3DbxhGSEaCKsSUUm6mICqT4MRflne17smdUSqlYsEXFlSqXr0BLKLE156qAsVGNcsAUYUFKCWUO88uaeyjLmKUztVhF8dkPkznK5B4/jtlg4=
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: Alejandro Vallejo <agarciav@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: "Daniel P. Smith" <dpsmith@apertussolutions.com>, Jason Andryuk
	<jason.andryuk@amd.com>, Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	"Stefano Stabellini" <sstabellini@kernel.org>, Michal Orzel
	<michal.orzel@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 v3 15/16] x86/hyperlaunch: add max vcpu parsing of hyperlaunch device tree
Date: Tue, 8 Apr 2025 17:07:37 +0100
Message-ID: <20250408160802.49870-16-agarciav@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20250408160802.49870-1-agarciav@amd.com>
References: <20250408160802.49870-1-agarciav@amd.com>
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: BL6PEPF00020E65:EE_|DS0PR12MB7581:EE_
X-MS-Office365-Filtering-Correlation-Id: 2e75752e-cb38-46f7-4ba6-08dd76b7b83d
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|36860700013|82310400026|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?eSmrjKGXkNeppS5kka0jrKiBJyN4m8LUkjDHu0wWV4831Rq2R2SHSi5M8Eo0?=
 =?us-ascii?Q?5M5TIvdOu82M0ww6F3uBY7d5Mnr71Krsx8J+OZ5/UwzpYQ3X5fpLBN+7fT9P?=
 =?us-ascii?Q?Kgja/ksGdMhQy6tzp5ghrSbkzoVfVUctmHV3Mbi0g3kCWiPxF6oeUI/T5Npq?=
 =?us-ascii?Q?OxwySPKTIbylitGg1Ylr2mYVMk3+ODAWUslsE0xgzHqWxzMQjuLqxfDUA/uR?=
 =?us-ascii?Q?6vXwa6zNE8EBpOdpYfbHcKEpOmKSsNAoVziM3HuvfnyQh9nq8WGxYCYLW5gY?=
 =?us-ascii?Q?5Z+ROXwjuhpxrSZIKnU0bp1cRpTmqx7acmH+8c/5WAkeUk2L7PMLH/hcmrfM?=
 =?us-ascii?Q?Gr/l184DcXYyPT31KgsB8cLRBePLeVaQ3OsKsKpHsw2AQDW289ObnnaUiCOV?=
 =?us-ascii?Q?yZQqk5DyiYqkJTCCcVk/IQJjxFcz9ARKHR0RmSiM9MIs13KtqpC0LWfZdkOP?=
 =?us-ascii?Q?mjriSWAP0eQWvX16VjpaOZSZ/OKRzG65PVO9uH40t7ZgNQZtde5lLAjtIOnk?=
 =?us-ascii?Q?CL6Q+2OlOMhlCYY2o4dv85o/OXdb7NXz1B0hpllhPVN+vhQlITdUwMqRPrDp?=
 =?us-ascii?Q?pthqhODrRyk8c5KCl74PcNRruvhchwqUf/B0TiELgDczgWic5Su9JEJFwoM3?=
 =?us-ascii?Q?ej+HbuUytvR74/akr60EqVqyx8HkRX8EgieVPVv5O3M4GniQdM9ZWEWxeV3H?=
 =?us-ascii?Q?kaWYLKIeTQVh6HCnxIvLzPFkY2W9seabsN2jXIEpE1XzVGQO3z3jT+4dUHGt?=
 =?us-ascii?Q?rXArNvDSzRtsasub9Aax3dTO3hbiTd2zOFrrrkYFpFlAI2hmHETmExuG45mN?=
 =?us-ascii?Q?D2I82PgY5Uwgani4Tq6CkktGH4PB/x7AdsoizAD6ijmEEhwolv8dlEghl8nn?=
 =?us-ascii?Q?0fM1f5lCVzq+S4UgGulucezozSCCSQ3592/s4EQOjY/h2mXi3OkIwZDrbkYt?=
 =?us-ascii?Q?4AHdm5HUQhyJ019ZVOZ2pKh5vEDNlNRcsNz+UPLwofmRu8F1CCPfopamLQKY?=
 =?us-ascii?Q?7Xy9YgocbkeiEey20PFxqkiapIiRScYVZE49LeFQLORrtpWby/YSEIyaY5Di?=
 =?us-ascii?Q?bi3kvNFDrABh/v29Wpb9Q6wY0Tr81aI9l3T3vUub00TKPGGX8o14a/RQUO7I?=
 =?us-ascii?Q?EGK+WRuPTl/kscCsNZG/SRkJwMNEqRmyzDOTZDIvNfQpsyaDmvMCevVdQGjr?=
 =?us-ascii?Q?oQcqeOweZfxwMM/CD8dg3LvhU7cwpCJDb9igc3/B24o6SSMGQmhnbeCkH3DH?=
 =?us-ascii?Q?XHX70kGD0OrySxKdw8J5efToI8N/JArgcPhSAOpi2zPlwyH68/oZtWaDmm2O?=
 =?us-ascii?Q?wH9GrgI6WBW8v/lsD4lG6w5wc5ADJOn2aTXpgTeYy7D5C/lIVXTntimTdODg?=
 =?us-ascii?Q?530bycEnjt0/xn25WdZUcMZHLkQ0seediM7nIiTwyaI7uNPeUN8Fmmg7zbjL?=
 =?us-ascii?Q?+krnCHMhs6hoCyqdVN2hofI2QU2SoukR5OkiVEgGopeZdb85e0mxuwyvcRAL?=
 =?us-ascii?Q?OQXpt1KTPRqJd9NzNogRVyYXVDSBC72QIwEH?=
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: 08 Apr 2025 16:09:19.8127
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 2e75752e-cb38-46f7-4ba6-08dd76b7b83d
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:
	BL6PEPF00020E65.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB7581

From: "Daniel P. Smith" <dpsmith@apertussolutions.com>

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>
Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>
---
 xen/arch/x86/dom0_build.c              |  3 +++
 xen/arch/x86/domain-builder/fdt.c      | 11 +++++++++++
 xen/arch/x86/include/asm/boot-domain.h |  2 ++
 3 files changed, 16 insertions(+)

diff --git a/xen/arch/x86/dom0_build.c b/xen/arch/x86/dom0_build.c
index 36fb090643..7b3e31a08f 100644
--- a/xen/arch/x86/dom0_build.c
+++ b/xen/arch/x86/dom0_build.c
@@ -635,6 +635,9 @@ int __init construct_dom0(const 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 338b4838c2..5fcb767bdd 100644
--- a/xen/arch/x86/domain-builder/fdt.c
+++ b/xen/arch/x86/domain-builder/fdt.c
@@ -246,6 +246,17 @@ static int __init process_domain_node(
             bd->max_pages = PFN_DOWN(kb * SZ_1K);
             printk("  max memory: %ld kb\n", kb);
         }
+        else if ( strncmp(prop_name, "cpus", name_len) == 0 )
+        {
+            uint32_t val = UINT_MAX;
+            if ( fdt_prop_as_u32(prop, &val) != 0 )
+            {
+                printk("  failed processing max_vcpus for domain %s\n", 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/boot-domain.h b/xen/arch/x86/include/asm/boot-domain.h
index fa8ea1cc66..969c02a6ea 100644
--- a/xen/arch/x86/include/asm/boot-domain.h
+++ b/xen/arch/x86/include/asm/boot-domain.h
@@ -22,6 +22,8 @@ struct boot_domain {
     unsigned long min_pages;
     unsigned long max_pages;
 
+    unsigned int max_vcpus;
+
     struct boot_module *kernel;
     struct boot_module *module;
     const char *cmdline;
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 08 16:10:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 16:10:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.942790.1341913 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2BX4-00072U-0L; Tue, 08 Apr 2025 16:10:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 942790.1341913; Tue, 08 Apr 2025 16:10: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 1u2BX3-00072D-Rc; Tue, 08 Apr 2025 16:10:37 +0000
Received: by outflank-mailman (input) for mailman id 942790;
 Tue, 08 Apr 2025 16: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=2sbj=W2=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u2BVv-0002e3-35
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 16:09:27 +0000
Received: from NAM04-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam04on2060f.outbound.protection.outlook.com
 [2a01:111:f403:240a::60f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d3aba9fb-1493-11f0-9ffb-bf95429c2676;
 Tue, 08 Apr 2025 18:09:20 +0200 (CEST)
Received: from BN9PR03CA0530.namprd03.prod.outlook.com (2603:10b6:408:131::25)
 by DS0PR12MB7803.namprd12.prod.outlook.com (2603:10b6:8:144::18) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.32; Tue, 8 Apr
 2025 16:09:17 +0000
Received: from BL6PEPF00020E66.namprd04.prod.outlook.com
 (2603:10b6:408:131:cafe::3a) by BN9PR03CA0530.outlook.office365.com
 (2603:10b6:408:131::25) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8606.35 via Frontend Transport; Tue,
 8 Apr 2025 16:09:16 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BL6PEPF00020E66.mail.protection.outlook.com (10.167.249.27) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8606.22 via Frontend Transport; Tue, 8 Apr 2025 16:09:16 +0000
Received: from xcbagarciav01.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; Tue, 8 Apr
 2025 11:09:15 -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: d3aba9fb-1493-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=UdCaeadaga/CoZqVYEn2x44Nm2wo/heEarKxYfLnGBTe4PrBB6wh81fP9+N44+AIWW9Q3cvAwugTA+lQ3c69js0Rfy6QdnNj5baQY984UzZE9kl4lb0i5e7X8kdo8G5j1MTnNEoMAAFOYnSFRITXVc2FroA4Hk24jnzga685MmjXFX61q9EWOhiTAaz3yrqZRiG4k8BqAhasrehjyiwO/Er/grvy97ypeP0sOerVqnj8h2w567l26Yj/M9dJeLkmJx97evtn1CYSEXWO3iL8ryKB7utk8hWiUXTuwmLiS5Ywv+yHE4U6TyeeZJzvg8QDPppFL5XirnkDPJnZgTJ1ew==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=YUHvqkyFXiMT58qSmIkpj+5p58vEJmweFPsH29sLZII=;
 b=kvewH/UVjnHvrIc3xwGpQSYltAWVIASMD0gSutvusu/PygvN41zAmnQ4mVbVYLN4L6AK2Wnfef6jU7YUlv4NzBX6zEGo14RC41jZdInSl1VacdAlEpBPzyRR5ONMArQpDcZ8mCIjko3eQy3qVG8bVbkR+lHEVs7z0Qtqzru9QdXfgLAcb3pWJkJfnzkQm3b+JZMz/Il0o20/8URWP7qSkymEEKnf51cFGwgTiQsQDcJIV1I52yrZEtF6dhLB/uJib87XKpLW6xsCKB+gJ5HqYmWI7SJF5k1kRJ5hPItvfJX3xTh8+VDFZpYtRw8Neu+TvFZrgInshTXQ1SUp3sqvCA==
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=YUHvqkyFXiMT58qSmIkpj+5p58vEJmweFPsH29sLZII=;
 b=CJFCpZEe3tpyhi8zcIzC/HIal2qpTN7srcYFkxcHAlJqQ3rn48oxZFjrYyHPxPBpLT9v7iW4Sofbfkng3ZzS4R/w4mbMEy8ftqQZ/AGRpPsthAURmJ0+22vws7GyC8EdAJFGn4ZB/4C3HBJXCCyIqIvgsFyuUr5YV4lo5aYc/VI=
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: Alejandro Vallejo <agarciav@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: "Daniel P. Smith" <dpsmith@apertussolutions.com>, Jason Andryuk
	<jason.andryuk@amd.com>, Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	"Stefano Stabellini" <sstabellini@kernel.org>, Michal Orzel
	<michal.orzel@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 v3 13/16] x86/hyperlaunch: specify dom0 mode with device tree
Date: Tue, 8 Apr 2025 17:07:35 +0100
Message-ID: <20250408160802.49870-14-agarciav@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20250408160802.49870-1-agarciav@amd.com>
References: <20250408160802.49870-1-agarciav@amd.com>
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: BL6PEPF00020E66:EE_|DS0PR12MB7803:EE_
X-MS-Office365-Filtering-Correlation-Id: 6ad9f13a-63f9-4287-67a9-08dd76b7b677
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|376014|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?7VAA3jQoTbS6bbrurXBzprDBoFkXAxuDClcJM95BAJUpp9g3goJ2YIbZzptt?=
 =?us-ascii?Q?Ofqdz69gUoejsyDZtTXVemgNDrR1zbTvK0xFHDBkO5dkWs0DcoUVueojFyBo?=
 =?us-ascii?Q?bYRmc021SRZYDgMYMHx+xEqKWY4Eb9vyUvMeGWU+WluP2uRVH+fjv+PMlFOF?=
 =?us-ascii?Q?UpOphzTZ6Qj6paAnRO96KMtvii1IfKe534IB+agZPY6Qx9AN5YHqw7LcEc/5?=
 =?us-ascii?Q?gpnAi428H6XkUnPUJkDb1bgUBsdo1w3jOCGLXyCTiPKkwxQwwtEF77EW5XKk?=
 =?us-ascii?Q?5Kdilue5YXApL1TTeOlHCvpTfp2SAPHRSPO7cOHTLEI9O4xPXKmIC2RcyrWA?=
 =?us-ascii?Q?nwA8u2E8q8FPKI599BlTQGE37lBa4Z8FIRzedzvt1XNYbUGyEQfwBGYXYpOU?=
 =?us-ascii?Q?7t6J3+FEGGinKIzuIIK+B9lTUs0pXNDsYsMZpvgvgg/pFo/tSXigt5GUzT6J?=
 =?us-ascii?Q?V9+M1Aq8qFXgJkJjdxrW4+HnMnVPo7Fxnhx0ZsN+ZJq9HsjRt110IVuGN0Xw?=
 =?us-ascii?Q?DahuFe/vHA/nvDN1P63nkjXBv1yluDJWMi40yWwgKb30AL0NTyVsO8GdBSn6?=
 =?us-ascii?Q?upVHb1Fo0Y7jnBw3pamYhBKp8VhaJ46rt0etntpEis8C9/ey7NR1Ve8Fwuaf?=
 =?us-ascii?Q?MjqaznTByLJdL8ks1yK37/lDxiWK/GRkU4sVaUinXqE4GEFd2L/31GvEqc9V?=
 =?us-ascii?Q?gqCuLBR1n9pd2eNoJITeqQJhb5ZQ4TyAaYLoqbgVRWY011F5fhxRFM7HoA1W?=
 =?us-ascii?Q?WRDZjAyd++jr1E/MLfFkwIs3zTxG9yR4pLbzxsn4pl93XqIy2MTbgabb2rgE?=
 =?us-ascii?Q?soh9TPjoA/Fe/yA0l6JCWek0NQLW6fAiph7XAOqluBLfrcsNEOI8gEeclG7e?=
 =?us-ascii?Q?78T8sH+gLZMUmXgKP+/21H9W37JWviir89mgj5AYT+6rNeJ2MtNmZdMjoLeD?=
 =?us-ascii?Q?OC868sUODXcRl9wp5sIIwGbI5fXNKFjaBXg2M2cwxHB3Qte/ZfR+qcFIVIAh?=
 =?us-ascii?Q?uI/n4qTaxQ5FMTdiBrs+HQZyQgwMbgNi/cNEwJ7yUWTcyWvOdnrx1RtP8jjc?=
 =?us-ascii?Q?MzKp3/HL3ybcqrMTN+wOzf9zD/nL34xTGHafWpnojweDq4Ml2Ngyinv1sKZD?=
 =?us-ascii?Q?1auZIV4xpz8CMJYf6zYUQgQopBk2mkfmT59iGXzjO2pIPjn2Kg+oZ86z80Uf?=
 =?us-ascii?Q?wwGxA2FRm/0QJoknQPVwTNg8mneFw0OWOCxiW1n/ia99mvuc1I406HZKsphT?=
 =?us-ascii?Q?j7VhdwV2iwVuvTsMMQS8YRWLmc4jAtXfT5zrHLAVE2DcULAG7Klq5NbWcmS9?=
 =?us-ascii?Q?waKNhWJCeHQ/trv9v4k5FNYQpy9y/TpgpRN4l6Oyc2ERV+89LyKjKOB9oKaB?=
 =?us-ascii?Q?WbfK1/vkg0rnHLv9YhSrXar2r4uqd9FkTztXPiXG0b2uCwhFOtktGR+e+l+2?=
 =?us-ascii?Q?5UuERzFjI1ER9G3U34GP8s3dZ438JNjRgCKEQi1IOonI+m2HPSrRK66LA5ov?=
 =?us-ascii?Q?H757wISI2+6ALTw=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)(376014)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Apr 2025 16:09:16.8537
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 6ad9f13a-63f9-4287-67a9-08dd76b7b677
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:
	BL6PEPF00020E66.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB7803

From: "Daniel P. Smith" <dpsmith@apertussolutions.com>

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>
---
 xen/arch/x86/domain-builder/fdt.c      | 19 +++++++++++++++++++
 xen/arch/x86/include/asm/boot-domain.h |  5 +++++
 xen/arch/x86/setup.c                   |  3 ++-
 3 files changed, 26 insertions(+), 1 deletion(-)

diff --git a/xen/arch/x86/domain-builder/fdt.c b/xen/arch/x86/domain-builder/fdt.c
index 4c6aafe195..da65f6a5a0 100644
--- a/xen/arch/x86/domain-builder/fdt.c
+++ b/xen/arch/x86/domain-builder/fdt.c
@@ -193,6 +193,25 @@ static int __init process_domain_node(
             bd->domid = (domid_t)val;
             printk("  domid: %d\n", bd->domid);
         }
+        else if ( strncmp(prop_name, "mode", name_len) == 0 )
+        {
+            if ( fdt_prop_as_u32(prop, &bd->mode) != 0 )
+            {
+                printk("  failed processing mode for domain %s\n", 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/boot-domain.h b/xen/arch/x86/include/asm/boot-domain.h
index d7c6042e25..e316d4bcde 100644
--- a/xen/arch/x86/include/asm/boot-domain.h
+++ b/xen/arch/x86/include/asm/boot-domain.h
@@ -13,6 +13,11 @@
 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     */
+    uint32_t mode;
+
     struct boot_module *kernel;
     struct boot_module *module;
     const char *cmdline;
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index db7280225e..4127a0105d 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)
     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.43.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 08 16:10:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 16:10:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.942801.1341922 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2BXC-0007hm-D9; Tue, 08 Apr 2025 16:10:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 942801.1341922; Tue, 08 Apr 2025 16: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 1u2BXC-0007hb-8N; Tue, 08 Apr 2025 16:10:46 +0000
Received: by outflank-mailman (input) for mailman id 942801;
 Tue, 08 Apr 2025 16:10: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=2sbj=W2=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u2BVu-0002e3-31
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 16:09:26 +0000
Received: from NAM10-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam10on20610.outbound.protection.outlook.com
 [2a01:111:f403:2413::610])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d38f3911-1493-11f0-9ffb-bf95429c2676;
 Tue, 08 Apr 2025 18:09:20 +0200 (CEST)
Received: from BN9PR03CA0492.namprd03.prod.outlook.com (2603:10b6:408:130::17)
 by PH7PR12MB9076.namprd12.prod.outlook.com (2603:10b6:510:2f6::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.34; Tue, 8 Apr
 2025 16:09:14 +0000
Received: from BL6PEPF00020E65.namprd04.prod.outlook.com
 (2603:10b6:408:130:cafe::95) by BN9PR03CA0492.outlook.office365.com
 (2603:10b6:408:130::17) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8606.34 via Frontend Transport; Tue,
 8 Apr 2025 16:09:14 +0000
Received: from SATLEXMB04.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.8606.22 via Frontend Transport; Tue, 8 Apr 2025 16:09:14 +0000
Received: from xcbagarciav01.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; Tue, 8 Apr
 2025 11:09:12 -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: d38f3911-1493-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ezPBTCeETVSnIvFFWmbV+rrkrnLkUpUGc1tfd+KO3Hgs1ki/ts+7PvjPrVzjAujvzf0+kffdYXaTirI2w+tUIGhH8QFNGiZiT42gvPePlG0anYpHmXQfQvV/vu7cUN0axgMcALr7PwfNAxQlQk/WasIxAsPGz8wDIGyotjhibBinOCRDipM1myCgYxegqEoGTtV6sjbf4F09Nkfh380WJr078n0YzjsrZYF9Z8tPeFrDJ07KRjNIHYc0KBHsT/KLFIXru2sDcBAjDVimHTG6Zcyf67UrhPj5NwK0UIy1iMz4Wjn/vgLu98lJyvb77fz0waaKcGqSZH2mel7FFY3LLQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=7NFIwj6TuPe9D1STJbnh5mSq1JDjK37GAwCKyt0ngHY=;
 b=pYyXtixKPr6xiXzkMSOiinUixmtjTLeV3Jxk1U+xL57OzmkK75+1Lyyy9BXj20JekEAqn4SZZqaQnl1r7XW7cr6Oyl5Cc8JpaVT73AH+JnVbNI2oa3OWs40YI3gafxMK4IyHPYOdQxogHtJNxkG5qxK4Hwio1/YvuI/4eiaRYZ0rUw8YAPm0D5PfnBeKpH+mVtAu4FhJlIfdJUUfOQO8r80RL27UbZK7FJIT+fAnV5/wJwGfzhM1mhOTqRYUyLZ1IPJ9oT9dI9Aa/Ae2ZmjiS+9RgcaHVWv+yfx5RGIVaB3O2RVIIBjWfmiKQFqEXoY4OkDHWkiqhePa3SkMgMWXaw==
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=7NFIwj6TuPe9D1STJbnh5mSq1JDjK37GAwCKyt0ngHY=;
 b=VtYlkubDmEV9MszuyKXjx0S9VM2V+4Xfp/h69OEfXJlpmsTMW5hGggKOYdKa8XoLQwLfCXXmIjxeCrOPgFoBhbWihYS5vKLg7LR950xXPjdo0JhvgYUBXGdKKSTlixbya36qFA5GXzEs4rdxcyGOJxLiH/OmXWxiTdeYT7R3Oc8=
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: Alejandro Vallejo <agarciav@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: "Daniel P. Smith" <dpsmith@apertussolutions.com>, Jason Andryuk
	<jason.andryuk@amd.com>, Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	"Stefano Stabellini" <sstabellini@kernel.org>, Michal Orzel
	<michal.orzel@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>, "Alejandro Vallejo" <agarciav@amd.com>
Subject: [PATCH v3 11/16] x86/hyperlaunch: locate dom0 initrd with hyperlaunch
Date: Tue, 8 Apr 2025 17:07:33 +0100
Message-ID: <20250408160802.49870-12-agarciav@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20250408160802.49870-1-agarciav@amd.com>
References: <20250408160802.49870-1-agarciav@amd.com>
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: BL6PEPF00020E65:EE_|PH7PR12MB9076:EE_
X-MS-Office365-Filtering-Correlation-Id: 4dfb7b7f-e2c6-4e57-74b9-08dd76b7b4d9
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|36860700013|1800799024|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?/Ny7UKNNSHGJ6VDYCJEO8tFlSeQFczLDNw9HyEjKB2jzNYCuRuzaT0whr/ne?=
 =?us-ascii?Q?1LnCpRAc+8BCqu7ZIQ0fYLCEUP2u4il42jqevvqUAEXbHZFl+MTRY/qvP+XF?=
 =?us-ascii?Q?E68tXhJGNoCkkwlybedymmTVE50jn6PI6ivc3GBR7Tt8PbgprLtZFYu5NbC4?=
 =?us-ascii?Q?+mtByLqBa4pcQ2veN8RTOJ7aKM926mtt0uQCZZCJI/gZV83cHY9yWz6vAWVQ?=
 =?us-ascii?Q?Q7xn+yXgCn+amh9rrebj9Q6zk0/gFNSTB6qNfaHLc118+KOF8xZHguhJY3kb?=
 =?us-ascii?Q?i+yrWgOAGAosSjIDLJ2Ojzv6En6TyLepxOrXZtoytWvQKPliyJmIz2SVJVB6?=
 =?us-ascii?Q?TuHBXwv+9m4ncVZgCiQY/aEdHANr8LtrFyyKanCmrqeDej5MbdUWJfSsfT8g?=
 =?us-ascii?Q?Q+9W/EWpjBzCrcPrqexXpmvhE9YH4c+lJtK8OatZ5IT6kWzASqGSsOJrnY6A?=
 =?us-ascii?Q?zOzJ7eWxS8yUBBxtxEXh9eE99JJQVlD1xNC1/ta6xtJmCs2o7nMS+0z3PKA0?=
 =?us-ascii?Q?qH7IoaFyzDa8R3m+nm2LBmQfAJeVG/IaVXujW4VLlGrHgPul1HiegNw+dL2q?=
 =?us-ascii?Q?0Cn/45ijm1I5MqNqtCBf5LCr3rIVhpQfDVgVgOZzfr3VEhg5p9+3FCH/dHuN?=
 =?us-ascii?Q?7cxVeVsCToYls6OYVv2qshxywKlh8K4JHFHHBfOFmT9uBRiI/6qewtvts9TR?=
 =?us-ascii?Q?xBx2oodrIPIQV1UCFiYlyCaG0JvSoj72AkFCh4zXXKA175MpvqiEAmWNM5nz?=
 =?us-ascii?Q?maS0JF5r574MyjTpeQTMDbcpVd0YXsAgxHxgG6HoMFfgittlJQe13mhD0CO/?=
 =?us-ascii?Q?GtdFK2aGV17cLW+DgNXTMzIkVIIYXTvQdjrgWXwLAbiOFJExSGfs6dNCHcIY?=
 =?us-ascii?Q?QdkfRKOD8MYc6fNO2caB2yr+X5EBvhwZWM3RA0P5ImZBJnZVYX+nOTq1cfZc?=
 =?us-ascii?Q?uqJis2wdViuCEe6m1gtVbzZWAdHi07+ISzBW8+kC+SjGnd/NlbmbfuZuu+/z?=
 =?us-ascii?Q?lNctWCLTT2RJrI3TS6D1WTjiCO6mvkYcN2ppdphdRUowIfWDyA4BgdWeE2Jn?=
 =?us-ascii?Q?bTuDXqV6Ty8kjILr52jAfXqtzNWBdZZmjmc5NG7lBsUArbk6JJWaSudpmotw?=
 =?us-ascii?Q?K3z4Rer4W/WFvGfXAnbywCQhMnI/Vu7Qek6Z5K6R0wlz7P01U2aWEIWWnJOv?=
 =?us-ascii?Q?n00JE3YVdw1JcPXIBijUH0xhEOqXGAg2e4+a0M6F9S1Xg6WQ43d5lsV3BUK7?=
 =?us-ascii?Q?1Ic4RnQ5MjvLpViTltAp/jTDvVqVjH/YlRBZ73tfpsnGeZm2vpReFFKBj5vp?=
 =?us-ascii?Q?M1tMaFOysto1RZJPLWT4wcWk0o+Xg05ccFyT1vtKQ9n+JKtaHpg0R/LGpP0p?=
 =?us-ascii?Q?qo6W318JMFvGZUtrTt4++oz/HPvfT7aJhXfE8eshs/TE37DeV6J30+KD+5Pf?=
 =?us-ascii?Q?b+o+SlvkQI8qPtTbEy4r9RvxO4MuygI35mpzeNXBXLLNBZhTOf0TB95sKQLf?=
 =?us-ascii?Q?ZdS8JkruOMaKn2Mjh3rXz69G0TlqqTV4ixXc?=
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)(1800799024)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Apr 2025 16:09:14.1408
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 4dfb7b7f-e2c6-4e57-74b9-08dd76b7b4d9
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:
	BL6PEPF00020E65.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB9076

From: "Daniel P. Smith" <dpsmith@apertussolutions.com>

Look for a subnode of type `multiboot,ramdisk` within a domain node and
parse via the fdt_read_multiboot_module() helper. After a successful
helper call, the module index is returned and the module is guaranteed
to be in the module list.

Fix unused typo in adjacent comment.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
Signed-off-by: Alejandro Vallejo <agarciav@amd.com>
---
v3:
    * Reworded commit message to state the helper postconditions.
    * Wrapped long line
    * Fix ramdisk -> module rename
    * Move ramdisk parsing from later patch
    * Remove initrdidx indent
---
 xen/arch/x86/domain-builder/fdt.c | 29 +++++++++++++++++++++++++++++
 xen/arch/x86/setup.c              |  4 ++--
 2 files changed, 31 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/domain-builder/fdt.c b/xen/arch/x86/domain-builder/fdt.c
index bc9903a9de..0f5fd01557 100644
--- a/xen/arch/x86/domain-builder/fdt.c
+++ b/xen/arch/x86/domain-builder/fdt.c
@@ -195,6 +195,35 @@ static int __init process_domain_node(
                  !((char *)__va(bd->kernel->cmdline_pa))[0] )
                 bd->kernel->fdt_cmdline = fdt_get_prop_offset(
                     fdt, node, "bootargs", &bd->kernel->cmdline_pa);
+
+            continue;
+        }
+        else if ( fdt_node_check_compatible(fdt, node,
+                                            "multiboot,ramdisk") == 0 )
+        {
+            int idx;
+
+            if ( bd->module )
+            {
+                printk(XENLOG_ERR "Duplicate ramdisk module for domain %s)\n",
+                       name);
+                continue;
+            }
+
+            idx = fdt_read_multiboot_module(fdt, node, address_cells,
+                                            size_cells,bi);
+            if ( idx < 0 )
+            {
+                printk("  failed processing ramdisk module for domain %s\n",
+                       name);
+                return -EINVAL;
+            }
+
+            printk("  ramdisk: boot module %d\n", idx);
+            bi->mods[idx].type = BOOTMOD_RAMDISK;
+            bd->module = &bi->mods[idx];
+
+            continue;
         }
     }
 
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index ca4415d020..3dfa81b48c 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -2149,11 +2149,11 @@ void asmlinkage __init noreturn __start_xen(void)
      * 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
+     * any remaining unclaimed boot modules, and report them as unused initrd
      * candidates.
      */
     initrdidx = first_boot_module_index(bi, BOOTMOD_UNKNOWN);
-    if ( initrdidx < MAX_NR_BOOTMODS )
+    if ( !bi->hyperlaunch_enabled && initrdidx < MAX_NR_BOOTMODS )
     {
         bi->mods[initrdidx].type = BOOTMOD_RAMDISK;
         bi->domains[0].module = &bi->mods[initrdidx];
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 08 16:10:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 16:10:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.942803.1341926 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2BXC-0007lv-P9; Tue, 08 Apr 2025 16:10:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 942803.1341926; Tue, 08 Apr 2025 16: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 1u2BXC-0007kx-Hg; Tue, 08 Apr 2025 16:10:46 +0000
Received: by outflank-mailman (input) for mailman id 942803;
 Tue, 08 Apr 2025 16:10:45 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=2sbj=W2=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u2BVl-0000a6-NA
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 16:09:17 +0000
Received: from NAM10-BN7-obe.outbound.protection.outlook.com
 (mail-bn7nam10on20619.outbound.protection.outlook.com
 [2a01:111:f403:2009::619])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d18f198b-1493-11f0-9eaa-5ba50f476ded;
 Tue, 08 Apr 2025 18:09:15 +0200 (CEST)
Received: from MN2PR19CA0071.namprd19.prod.outlook.com (2603:10b6:208:19b::48)
 by IA1PR12MB7519.namprd12.prod.outlook.com (2603:10b6:208:418::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.21; Tue, 8 Apr
 2025 16:09:10 +0000
Received: from BL6PEPF00020E62.namprd04.prod.outlook.com
 (2603:10b6:208:19b:cafe::b5) by MN2PR19CA0071.outlook.office365.com
 (2603:10b6:208:19b::48) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8606.31 via Frontend Transport; Tue,
 8 Apr 2025 16:09:10 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BL6PEPF00020E62.mail.protection.outlook.com (10.167.249.23) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8606.22 via Frontend Transport; Tue, 8 Apr 2025 16:09:10 +0000
Received: from xcbagarciav01.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; Tue, 8 Apr
 2025 11:09:07 -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: d18f198b-1493-11f0-9eaa-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=YTTlj3+45Pb8UqfujkGECq3peB1bsGS7aVzM+kJaDweVl5iqinCPtwILl6zj7VhGYYsUFBdzZNH9oF5ImnfMUfQhFLiLTElk8cuvIRC+0HKkejuNAfIr01SY1hzneC1qDfgXQcmNMr8AgxsHCZRIvDsHDU+YEMwK08EgbhANCIKDFp+kbNKeiGkURis04FuqUny5MDPCMIi6mQMGnv1oAAUMbrgB1oEcfUTMw780bi8v0MMufTzmrrcbPmKRpPYBEg4BUvioq+GApL8dhIPC89O3jMYouijcix9/qfhmplm731KuDbmI4+XYD6bbSJtXIghr4OxZzPbqtnjFMjt8jA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=wb1RbJ/A2HZQ4CDL4kSnK/cd53lOCjG7RRR6aRmIDv8=;
 b=g+ZEibhEY85r/1ZFS0Lrngy3JXrM1sNBwdVL33tVpnANTbeeaNCJ6uOvYdwQ9pNX+ymvxKZEoeFw2BOlDsirxLSjwbcU6l4KZhD0UMQFf1vNyalBGWlsGR9QB6sAue049ogPPN0vfm8Udb1lyLoTjfmqlaqIG/8kwYI6k/lx9OEWXIalboebn/TbBJQ1/5wcu8YRgOr8JDLafayOB46x7Sy6AhSCv3CnmcXwwewEdzMtS+lyY668VzNACxMRxbUsphjrBUhSbWooYYq3j2w1jroTOCUv2P2+KXkbWXvTyUXGItOGoIL7Zf+CloWNdCqtxilTBjvQMZ03YupQ78W1pA==
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=wb1RbJ/A2HZQ4CDL4kSnK/cd53lOCjG7RRR6aRmIDv8=;
 b=clOW0deNOJXpVcoG8LROfwvL7j89FUIhN5jHLGRAmMUz6QMYHc0CeBNwTbefsCUNyhGYyZs+M8JGaikEBBxKoOAH6scps0VNsOHUv0odWmtzqRDSQr0xrq7wE8Sat2ecPRtcHn6HtLdFi8uqc8dgFuEJMX0Qqt40SIIvvvZIOuo=
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: Alejandro Vallejo <agarciav@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Alejandro Vallejo <agarciav@amd.com>, Jason Andryuk
	<jason.andryuk@amd.com>, Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	"Stefano Stabellini" <sstabellini@kernel.org>, Michal Orzel
	<michal.orzel@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>, Bertrand Marquis
	<bertrand.marquis@arm.com>
Subject: [PATCH v3 08/16] x86/hyperlaunch: Add helpers to locate multiboot modules
Date: Tue, 8 Apr 2025 17:07:30 +0100
Message-ID: <20250408160802.49870-9-agarciav@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20250408160802.49870-1-agarciav@amd.com>
References: <20250408160802.49870-1-agarciav@amd.com>
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: BL6PEPF00020E62:EE_|IA1PR12MB7519:EE_
X-MS-Office365-Filtering-Correlation-Id: 7710856c-f113-438c-15c5-08dd76b7b26d
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|376014|36860700013|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?lRS/MJfbxThgBCfrh9sB6htGmo+nylnZs0PHtP98YJ2DnDuqPqca8vd9gkl3?=
 =?us-ascii?Q?rnmMFsbLd0Y1ZcLBiVeZ3Su4QCtZ4iuZw3hAfPJ92tPZLxmTecblm7AuN71E?=
 =?us-ascii?Q?jEV6ZH7HruxjtmmUT2SsX0XnOopVnwOdj1KXvHJJUYVHQ/Pzo6Vw0FunKz9y?=
 =?us-ascii?Q?T6Zqt8Mege/ZjkjN507h16+ApNH5iqIAK6W91Nz7I481PykxE7IrSdFCtJtV?=
 =?us-ascii?Q?w1hfPOTfn3Ls78242z/4I2TnaL1z+p5rnc+w4/vM2nmJf38Oa51aimSliFNH?=
 =?us-ascii?Q?HV99+cntY83i9LKUbIl4Nn8iOBhgXr+V09WICIQnmWjIOzuZsjQbJ16ak+Pv?=
 =?us-ascii?Q?cm1EveiG3TcuCot0jKPM7ngy2hcMwAE6/J0EMZWMCfqn5oQ7LUM7Wgcd4//Q?=
 =?us-ascii?Q?J3wMAMmNCiE/jrlAb54NFsu4w9G26iG+ZV0P5z1kyaR7gZfKU6zXiecALfyO?=
 =?us-ascii?Q?B9Njn9xHwKwTQPZsqL6VoDR2g97bmD4MfZpE39gOqfhTWJ9/wMxuQe2ihVyi?=
 =?us-ascii?Q?+GjUtIt5fgqtp94rJjGUbFamrmQlyEimOUy1W0mNEqP4005VfVNkrFQdOZre?=
 =?us-ascii?Q?feKmblI13FBfEEbIXGc3udr3u+Sjn1fHMS1YBl7CFm0UQTt4nd/6bdplfA8y?=
 =?us-ascii?Q?E6gHC9cI+B5COTQLitbgmkkU0Z2gqczOQ3ULWT8kguEq45wLSYaVYZM6Ozep?=
 =?us-ascii?Q?ixepmPG+5q+uezKKVXoO1Uiah1mYxAGTXkCW5guqLolsNGqFLi0xCiOaQxon?=
 =?us-ascii?Q?kUlRPS8fStvPaHaTD5PeEOSEtEPJzGXah8MPDxSdSGuC41vUU2aAWeyLCVJ5?=
 =?us-ascii?Q?XxAiDqmxvciIhInzO3PcvfchWj6YJzwfk6xv2KwH77QH+x6kWDboFbRNOlzR?=
 =?us-ascii?Q?f2M8HubsXNtYaK+CERL1nwx0VQAhfP+4lZcTMl7Irl9LqLLBhTLDGO+gFvnv?=
 =?us-ascii?Q?0SmPu7rAHuPm9Qy1A/UjD07qS8M9XUK6T7KtgZFYNbGz1fE2/ZBZATnHYZJa?=
 =?us-ascii?Q?MkEp1ubfQVsE0DtnRIHLypaC6LfLdrdLUU1nK9TXFWPF/hLhWtFEaoKFRCT9?=
 =?us-ascii?Q?4Ip5YFMx6dGmyuzDiV8z+HA998/hUaYNVMLGNnQNc2NEEStDu//7gXxRLj0i?=
 =?us-ascii?Q?lq4RaV7cEGW/KDlyk9ZctsxLCGCo1nroOxTz2ycchxzgxj2lCsMWWy/RRAiH?=
 =?us-ascii?Q?C6rEWOKneP1HA0bhPCUdkTTv/yl4MmdP6Me+a1/67RiNTdsnEh9ndZmd1Htd?=
 =?us-ascii?Q?bp5+LaI+gNp+N8OD5etocURkz5+jxES+d6hR15GP5QzNX64J+8puXR71wlCu?=
 =?us-ascii?Q?gRwP6118+VSi3gtQWUI1IMLaxdLZYlPb/9Tn9Tutx2l2BrUluUiFaj+QwrXM?=
 =?us-ascii?Q?5tJG1RlQNm9ENIX+tS75hhdrZKNDapkmOjya38N6/++fBgBa21Xuoy6Bm621?=
 =?us-ascii?Q?6m0UcKXBCqtU54YLJ1DEZnUhgpH+b4zDdCVwqQtrYILhtW+8a2RI2Q=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)(82310400026)(376014)(36860700013)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Apr 2025 16:09:10.0597
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 7710856c-f113-438c-15c5-08dd76b7b26d
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:
	BL6PEPF00020E62.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB7519

Hyperlaunch mandates either a reg or module-index DT prop on nodes that
contain `multiboot,module" under their "compatible" prop. This patch
introduces a helper to generically find such index, appending the module
to the list of modules if it wasn't already (i.e: because it's given via
the "reg" prop).

Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
Signed-off-by: Alejandro Vallejo <agarciav@amd.com>
---
v3:
    * New on v3.
    * Subsumes much of the dup code between kernel/initrd patches.
    * Changes previous behaviour in v2 to look into "reg" and
      "module-index" props, rather than just index.
    * Use addr_cells/size_cells rather than size_size
---
 xen/arch/x86/domain-builder/fdt.c   | 142 ++++++++++++++++++++++++++++
 xen/arch/x86/domain-builder/fdt.h   |   2 +
 xen/include/xen/libfdt/libfdt-xen.h |  57 +++++++++++
 3 files changed, 201 insertions(+)

diff --git a/xen/arch/x86/domain-builder/fdt.c b/xen/arch/x86/domain-builder/fdt.c
index 4c5b7747f5..9ebc8fd0e4 100644
--- a/xen/arch/x86/domain-builder/fdt.c
+++ b/xen/arch/x86/domain-builder/fdt.c
@@ -13,6 +13,148 @@
 
 #include "fdt.h"
 
+/*
+ * Unpacks a "reg" property into its address and size constituents.
+ *
+ * @param prop          Pointer to an FDT "reg" property.
+ * @param address_cells Number of 4-octet cells that make up an "address".
+ * @param size_cells    Number of 4-octet cells that make up a "size".
+ * @param p_addr[out]   Address encoded in the property.
+ * @param p_size[out]   Size encoded in the property.
+ * @returns             -EINVAL on malformed property, 0 otherwise.
+ */
+static int __init read_fdt_prop_as_reg(const struct fdt_property *prop,
+                                       int address_cells, int size_cells,
+                                       uint64_t *p_addr, uint64_t *p_size)
+{
+    const fdt32_t *cell = (const fdt32_t *)prop->data;
+    uint64_t addr, size;
+
+    if ( fdt32_to_cpu(prop->len) !=
+         (address_cells + size_cells) * sizeof(*cell) )
+    {
+        printk("  Cannot read reg %lu+%lu from prop len %u\n",
+            address_cells * sizeof(*cell), size_cells * sizeof(*cell),
+            fdt32_to_cpu(prop->len));
+        return -EINVAL;
+    }
+
+    switch ( address_cells ) {
+    case 1:
+        addr = fdt32_to_cpu(*cell);
+        break;
+    case 2:
+        addr = fdt64_to_cpu(*(const fdt64_t *)cell);
+        break;
+    default:
+        printk("  unsupported sized address_cells\n");
+        return -EINVAL;
+    }
+
+    cell += address_cells;
+    switch ( size_cells ) {
+    case 1:
+        size = fdt32_to_cpu(*cell);
+        break;
+    case 2:
+        size = fdt64_to_cpu(*(const fdt64_t *)cell);
+        break;
+    default:
+        printk("  unsupported sized size_cells\n");
+        return -EINVAL;
+    }
+
+    *p_addr = addr;
+    *p_size = size;
+
+    return 0;
+}
+
+/*
+ * Locate a multiboot module given its node offset in the FDT.
+ *
+ * The module location may be given via either FDT property:
+ *     * reg = <address, size>
+ *         * Mutates `bi` to append the module.
+ *     * module-index = <idx>
+ *         * Leaves `bi` unchanged.
+ *
+ * @param fdt           Pointer to the full FDT.
+ * @param node          Offset for the module node.
+ * @param address_cells Number of 4-octet cells that make up an "address".
+ * @param size_cells    Number of 4-octet cells that make up a "size".
+ * @param bi[inout]     Xen's representation of the boot parameters.
+ * @return              -EINVAL on malformed nodes, otherwise
+ *                      index inside `bi->mods`
+ */
+int __init fdt_read_multiboot_module(const void *fdt, int node,
+                                     int address_cells, int size_cells,
+                                     struct boot_info *bi)
+{
+    const struct fdt_property *prop;
+    uint64_t addr, size;
+    int ret;
+    int idx;
+
+    ASSERT(!fdt_node_check_compatible(fdt, node, "multiboot,module"));
+
+    /* Location given as a `module-index` property. */
+    prop = fdt_get_property(fdt, node, "module-index", NULL);
+
+    if ( prop )
+    {
+        if ( fdt_get_property(fdt, node, "reg", NULL) )
+        {
+            printk("  Location of multiboot,module defined multiple times\n");
+            return -EINVAL;
+        }
+        return fdt_cell_as_u32((const fdt32_t *)prop->data);
+    }
+
+    /* Otherwise location given as a `reg` property. */
+    prop = fdt_get_property(fdt, node, "reg", NULL);
+
+    if ( !prop )
+    {
+        printk("  No location for multiboot,module\n");
+        return -EINVAL;
+    }
+    if ( fdt_get_property(fdt, node, "module-index", NULL) )
+    {
+        printk("  Location of multiboot,module defined multiple times\n");
+        return -EINVAL;
+    }
+
+    ret = read_fdt_prop_as_reg(prop, address_cells, size_cells, &addr, &size);
+
+    if ( ret < 0 )
+    {
+        printk("  Failed reading reg for multiboot,module\n");
+        return -EINVAL;
+    }
+
+    idx = bi->nr_modules + 1;
+    if ( idx > MAX_NR_BOOTMODS )
+    {
+        /*
+         * MAX_NR_BOOTMODS cannot exceed the max for MB1, represented by 32bits,
+         * thus the cast down to a u32 will be safe due to the prior check.
+         */
+        BUILD_BUG_ON(MAX_NR_BOOTMODS >= (uint64_t)UINT32_MAX);
+        printk("  idx %d exceeds maximum boot modules\n", idx);
+        return -EINVAL;
+    }
+
+    /* Append new module to the existing list */
+
+    bi->nr_modules = idx;
+    bi->mods[idx].start = addr;
+    bi->mods[idx].size = size;
+    printk("  module[%d]: addr %lx size %lx\n", idx, addr, size);
+
+    return idx;
+}
+
 static int __init find_hyperlaunch_node(const void *fdt)
 {
     int hv_node = fdt_path_offset(fdt, "/chosen/hypervisor");
diff --git a/xen/arch/x86/domain-builder/fdt.h b/xen/arch/x86/domain-builder/fdt.h
index 1849656571..e8769dc51c 100644
--- a/xen/arch/x86/domain-builder/fdt.h
+++ b/xen/arch/x86/domain-builder/fdt.h
@@ -3,6 +3,8 @@
 #define __XEN_X86_FDT_H__
 
 #include <xen/init.h>
+#include <xen/libfdt/libfdt.h>
+#include <xen/libfdt/libfdt-xen.h>
 
 struct boot_info;
 
diff --git a/xen/include/xen/libfdt/libfdt-xen.h b/xen/include/xen/libfdt/libfdt-xen.h
index a5340bc9f4..2259c09a6a 100644
--- a/xen/include/xen/libfdt/libfdt-xen.h
+++ b/xen/include/xen/libfdt/libfdt-xen.h
@@ -13,6 +13,63 @@
 
 #include <xen/libfdt/libfdt.h>
 
+static inline int __init fdt_cell_as_u32(const fdt32_t *cell)
+{
+    return fdt32_to_cpu(*cell);
+}
+
+static inline uint64_t  __init fdt_cell_as_u64(const fdt32_t *cell)
+{
+    return ((uint64_t)fdt32_to_cpu(cell[0]) << 32) | fdt32_to_cpu(cell[1]);
+}
+
+/*
+ * Property: reg
+ *
+ * Defined in Section 2.3.6 of the Device Tree Specification is the "reg"
+ * standard property. The property is a prop-encoded-array that is encoded as
+ * an arbitrary number of (address, size) pairs.  We only extract a single
+ * pair since that is what is used in practice.
+ */
+static inline int __init fdt_get_reg_prop(
+    const void *fdt, int node, unsigned int addr_cells, unsigned int size_cells,
+    uint64_t *addr, uint64_t *size)
+{
+    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 ( size_cells > 2 || addr_cells > 2 )
+        return -EINVAL;
+
+    prop = fdt_get_property(fdt, node, "reg", &ret);
+    if ( !prop || ret < sizeof(u32) )
+        return ret < 0 ? ret : -EINVAL;
+
+    if ( fdt32_to_cpu(prop->len) !=
+	 ((size_cells + addr_cells) * sizeof(*cell)) )
+        return -EINVAL;
+
+    cell = (fdt32_t *)prop->data;
+
+    /* read address field */
+    if ( addr_cells == 1 )
+        *addr = fdt_cell_as_u32(cell);
+    else
+        *addr = fdt_cell_as_u64(cell);
+
+    cell += addr_cells;
+
+    /* read size field */
+    if ( size_cells == 1 )
+        *size = fdt_cell_as_u32(cell);
+    else
+        *size = fdt_cell_as_u64(cell);
+
+    return 0;
+}
+
 static inline int fdt_get_mem_rsv_paddr(const void *fdt, int n,
                                         paddr_t *address,
                                         paddr_t *size)
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 08 16:10:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 16:10:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.942826.1341941 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2BXK-0000KV-1P; Tue, 08 Apr 2025 16:10:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 942826.1341941; Tue, 08 Apr 2025 16:10: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 1u2BXJ-0000KA-Tk; Tue, 08 Apr 2025 16:10:53 +0000
Received: by outflank-mailman (input) for mailman id 942826;
 Tue, 08 Apr 2025 16:10: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=2sbj=W2=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u2BW1-0002e3-3e
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 16:09:33 +0000
Received: from NAM04-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam04on20602.outbound.protection.outlook.com
 [2a01:111:f403:2408::602])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d74ffb5b-1493-11f0-9ffb-bf95429c2676;
 Tue, 08 Apr 2025 18:09:26 +0200 (CEST)
Received: from BN9PR03CA0485.namprd03.prod.outlook.com (2603:10b6:408:130::10)
 by PH8PR12MB6673.namprd12.prod.outlook.com (2603:10b6:510:1c0::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.21; Tue, 8 Apr
 2025 16:09:21 +0000
Received: from BL6PEPF00020E65.namprd04.prod.outlook.com
 (2603:10b6:408:130:cafe::69) by BN9PR03CA0485.outlook.office365.com
 (2603:10b6:408:130::10) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8606.28 via Frontend Transport; Tue,
 8 Apr 2025 16:09:21 +0000
Received: from SATLEXMB04.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.8606.22 via Frontend Transport; Tue, 8 Apr 2025 16:09:21 +0000
Received: from xcbagarciav01.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; Tue, 8 Apr
 2025 11:09:19 -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: d74ffb5b-1493-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=KhKWTPh5+j5ubY28Lc8y3jGM9Q0MXXLh54mpD5gHAMO0+i6MleGisXfDKlGgCf6AftSm9n1D4PCnTSAORjWATgLT1YV4XRTrNMYJ9ZjJPyaouGb1/xcx8PqIoGywNa2J4CKPk/mY5HFwaomZmqPZ+ofcmqTYrNhi3OtLZK1ek3XEwkSKOUbeOg5GyMzYfrVrtj0IP1hPvJ/A+iJs07VvXVChBJzDHjbQvjuduCY1dWLs3AY11GJJFM/afPON/oPPgt6j6SY12m4uoYWk3bRHeidmYeKYIgVq4irgsfrJdvfxsM0CVVqMoDG86fyoSmUUUS8FRdmAhnyGrifo52JDVQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=CdZjJno4ZP28T5tdzAN4JY6E44clyK3Mj7hHKvRrs5s=;
 b=lB7ZIj1ZIiXVAmchV7DjXZCmzB1VDTbIJhDqluy9kMKiRTdzvx5a/5KgQdE5XcYCskbzmADEP/+a8flGm6ArLBgOj6dPzyNwL6dDlO/co20ktRxkErKAeY0j6/PJrN0SOv+4QvfPl4xSzvKkYpR9iSd75eqCudLtHjMueX0UI7cFuTEWsuuXLGbtWKZK73u4ojRaDK4vI5w5TxloQhRdefhaGWACiHj0V8uRTcRHbO6p4GLCHMfbcnRY1a+bxpkb4JZDcsJ4qrOgLTdyTroFe99HxzKydwXnMBOUxzbKjBKuz8v6lsiWNkXhBztVw/q7Ze5lskQlse+zshZ4LiW1pQ==
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=CdZjJno4ZP28T5tdzAN4JY6E44clyK3Mj7hHKvRrs5s=;
 b=dfwvcWzQDr/phsYUaUxulKPOYesaO0TXOMIIgcrA1B2aa952Ug7Dgjrvas5kVHoFEQ0qTVGlgwZi7IqmQMu0FAv6Odrjt7mXf3OeeU/8vgIoEK29M48iHn4DWQ/tztgoJSJUWZJ9Rot8lMv0INr5WoS5sfsEsiFUqV+eHS8nLuA=
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: Alejandro Vallejo <agarciav@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: "Daniel P. Smith" <dpsmith@apertussolutions.com>, Jason Andryuk
	<jason.andryuk@amd.com>, Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	"Stefano Stabellini" <sstabellini@kernel.org>, Michal Orzel
	<michal.orzel@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 v3 16/16] x86/hyperlaunch: add capabilities to boot domain
Date: Tue, 8 Apr 2025 17:07:38 +0100
Message-ID: <20250408160802.49870-17-agarciav@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20250408160802.49870-1-agarciav@amd.com>
References: <20250408160802.49870-1-agarciav@amd.com>
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: BL6PEPF00020E65:EE_|PH8PR12MB6673:EE_
X-MS-Office365-Filtering-Correlation-Id: 5767b228-3ba6-4589-58cb-08dd76b7b929
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?rSS4UDZQQUy8bV8VFukunITNWbb0gAtrNnAustEYq+J9v26STnFrAGFdEgd0?=
 =?us-ascii?Q?zbIfM9PmKWjmaYbkm9PNTMWQ+PxDAwY2QPtxOM/JaGWtM+bIKAJaIDJkMjsf?=
 =?us-ascii?Q?RoBj6bDC/jHksj2wqNoU0XavYUNZDCRrAxG/gr2GML2n4+lZd0cC+O4b9tlv?=
 =?us-ascii?Q?Z4XXckAkuq+vfF8mj0Jizwzz4sqiiH3E61YZm7QQcpvMd5uiY7VmRohC6vq1?=
 =?us-ascii?Q?mzfN1Ghk1pqhlYK2T7LPY2fs+T1+i67Zg5CwOfPGHCUkaaEbEx7Nm/gdXAIT?=
 =?us-ascii?Q?t+NhR2D02T5GHdvs8QP3wdJPQmPwQs0ZMGQ1MMbI9T6AwX28XEeUoNTiPCKd?=
 =?us-ascii?Q?+yJW1ziZa9whe6zdK3l5gHlG33VU7EjPJ25DgcUQyMGNRoBmEYGHCJWcjOHo?=
 =?us-ascii?Q?txqFbJx6GTqjJuKfMC9Gqnx0CHR4rn+nQwWq0qf7e86WDia9fr/FLrjvgX5k?=
 =?us-ascii?Q?Fw9vhOTUFSgCw4bN0J+s0luY5GalJS+Ya9h2/8Bw3O53Oaylnb01V6pULQLS?=
 =?us-ascii?Q?KH9ilVoHbwE1OYP/n0N94Wdmasi3gP9H7MZzd4VQaisoABqr/d2LcQ5p8/b8?=
 =?us-ascii?Q?Qgyyvp6Q5jUCQm3g+7UICjLJgRo3a+/PYsQvmso9XXGtIV5LTy6vD1QblXZA?=
 =?us-ascii?Q?2mbjcRycpYPG/XLbdFkYxp26n5jhyHeLRTiMaYyt2aQyyE7SwHSe3CSAk0hA?=
 =?us-ascii?Q?Hlh8Jm3Ycnu9NahYn+ScFctD+eav+6m3g/BuG+3CyPxAA8LHXyIcP6Xp5YZc?=
 =?us-ascii?Q?1tpmqdVhSfmyWW4GtU+LcgjlbsOMA2Y9dmqrgLtb4NUCOeHxjnfp+19FGP3T?=
 =?us-ascii?Q?nAhD8LxmaYivOtknmTCup8YtI5f1Keo59y+xAHDSUFt4A9X+ZSA+gqLgedsc?=
 =?us-ascii?Q?dgw3G8TZeC0O5kGA3wXajM42O5JdF2pkmVICI9KTcRTrhkEsbGNQpO0PAX67?=
 =?us-ascii?Q?ssh8fqs4ZlhMxBqx4VeXAzOzxxh/PbN5K2Ed3hd/GXaNoAITghoszhXt4dg6?=
 =?us-ascii?Q?L9bHRpOGTjm7Ecuy6pqen7ulwNm1+oPkRb8pDuHMCGY0qT5XDn8ciuilIZYg?=
 =?us-ascii?Q?hOvop/vLh4h36Xl4N+8aA2RFRcmcu/UT8gnv0ynj77BATEpXIWD0VIE9HLSV?=
 =?us-ascii?Q?ObhYRY7J9N+O2ibPynW1LHxjrD0lKelm1LadlwuWEe6/zdQh804/w4KwZ5rA?=
 =?us-ascii?Q?MKK7TUlYtRGBYHca6u3anbo+fMQfgiC92sVvxxEqpAmCZYfj9gdNnjZRm78I?=
 =?us-ascii?Q?OcMqQ64cbNV+YqRjBoO653bBCP6thWo8vOuysPFsEcg5ij8scofpmJN3HQVM?=
 =?us-ascii?Q?T8aDh7gpoMAF9WjRw8yY8qbexUxJRZipOC/VHdjj26kl2g/lokiWwADE5rMu?=
 =?us-ascii?Q?1prTCAjWkDvpOcxyPrpsBm2L5J14Um7zKYebIbn+m1p5fLgY+O5Rm7jw9iMO?=
 =?us-ascii?Q?ZtyO+SvRIREneOv26hRiD9KP9U1DJ4NoA8CxaCeqfhCuoXfXrTgGYA7rUXlF?=
 =?us-ascii?Q?awQsa+KU/YKzoSZd7Px+MRM1WEqoeamdAKxY?=
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: 08 Apr 2025 16:09:21.3752
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 5767b228-3ba6-4589-58cb-08dd76b7b929
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:
	BL6PEPF00020E65.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH8PR12MB6673

From: "Daniel P. Smith" <dpsmith@apertussolutions.com>

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>
Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>
Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
---
 xen/arch/x86/domain-builder/core.c     |  1 +
 xen/arch/x86/domain-builder/fdt.c      | 12 ++++++++++++
 xen/arch/x86/include/asm/boot-domain.h |  4 ++++
 xen/arch/x86/setup.c                   |  6 +++++-
 4 files changed, 22 insertions(+), 1 deletion(-)

diff --git a/xen/arch/x86/domain-builder/core.c b/xen/arch/x86/domain-builder/core.c
index 510a74a675..6ab4e6fe53 100644
--- a/xen/arch/x86/domain-builder/core.c
+++ b/xen/arch/x86/domain-builder/core.c
@@ -96,6 +96,7 @@ 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 5fcb767bdd..dbfbcffb0a 100644
--- a/xen/arch/x86/domain-builder/fdt.c
+++ b/xen/arch/x86/domain-builder/fdt.c
@@ -257,6 +257,18 @@ static int __init process_domain_node(
             bd->max_vcpus = val;
             printk("  max vcpus: %d\n", bd->max_vcpus);
         }
+        else if ( strncmp(prop_name, "capabilities", name_len) == 0 )
+        {
+            if ( fdt_prop_as_u32(prop, &bd->capabilities) != 0 )
+            {
+                printk("  failed processing domain id for domain %s\n", 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/boot-domain.h b/xen/arch/x86/include/asm/boot-domain.h
index 969c02a6ea..29a7d806de 100644
--- a/xen/arch/x86/include/asm/boot-domain.h
+++ b/xen/arch/x86/include/asm/boot-domain.h
@@ -13,6 +13,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 4127a0105d..7e1a26b4d2 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -1006,6 +1006,7 @@ static struct domain *__init create_dom0(struct boot_info *bi)
 {
     char *cmdline = NULL;
     size_t cmdline_size;
+    unsigned 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,
@@ -1037,7 +1038,10 @@ static struct domain *__init create_dom0(struct boot_info *bi)
     if ( bd->domid == DOMID_INVALID )
         /* Create initial domain.  Not d0 for pvshim. */
         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.43.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 08 16:11:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 16:11:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.942853.1341952 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2BXT-0001Q2-GF; Tue, 08 Apr 2025 16:11:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 942853.1341952; Tue, 08 Apr 2025 16: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 1u2BXT-0001Pq-CN; Tue, 08 Apr 2025 16:11:03 +0000
Received: by outflank-mailman (input) for mailman id 942853;
 Tue, 08 Apr 2025 16:11: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=2sbj=W2=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u2BVb-0000a6-RH
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 16:09:07 +0000
Received: from NAM10-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam10on20616.outbound.protection.outlook.com
 [2a01:111:f403:2413::616])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id cb399aa2-1493-11f0-9eaa-5ba50f476ded;
 Tue, 08 Apr 2025 18:09:06 +0200 (CEST)
Received: from BL1P222CA0013.NAMP222.PROD.OUTLOOK.COM (2603:10b6:208:2c7::18)
 by MN2PR12MB4078.namprd12.prod.outlook.com (2603:10b6:208:1de::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.21; Tue, 8 Apr
 2025 16:09:00 +0000
Received: from BL6PEPF00020E5F.namprd04.prod.outlook.com
 (2603:10b6:208:2c7:cafe::2b) by BL1P222CA0013.outlook.office365.com
 (2603:10b6:208:2c7::18) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.19 via Frontend Transport; Tue,
 8 Apr 2025 16:09:00 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BL6PEPF00020E5F.mail.protection.outlook.com (10.167.249.20) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8606.22 via Frontend Transport; Tue, 8 Apr 2025 16:09:00 +0000
Received: from xcbagarciav01.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; Tue, 8 Apr
 2025 11:08:57 -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: cb399aa2-1493-11f0-9eaa-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=WB1dLP+M9CyLN0EchSSgcFU1bt7bKHNX0+gReExpwYuDHQdQcmwAjUCaqa0TuFmYy9XAQ70IliNTQ5X8iE9dV4O82NTmjCGax3I+V/1/Bj15mZlVmwxPU8ZpPMD/SETYvpxPu2C/FJbcdrL0V7wxqAvAyEuvVsDElB8ZgywT/JR7CfwcOaFGJ9w/I3Vt09x5SN879SWpQ4179uuszZMJ7Hngh+zFAqoz6dX3BUDt6c37kHvZI6LblyKHY+3HvME6xVqAgDNtZcLqFKdywafVR5SrAMoCDp4Vl5ZSB8wdohRprRCKlm8WIX3Z8/aIFPcJOgZ/0irzyxgwYKF6qupE+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=TxHxjqnfxZWF/z08CaV5pCzCkt38zC1qSAYIboC5Tdo=;
 b=G8qz/fJhEaaDDPbarP/Y9SkctfwkHSZMsocc0dy3FFKbb2rJLQpxeiUaUc1TEWtzV+//azW/6IplV6gj//sci9WudN3qbxDXv/xIrwmIQpEf0RPthuJOLzeQEWfhQoTDO9K2GN4S+lJLjiz9kgwB18EWWGMVtcJxTjpQ5PFHRGiRPThwHazcbiEoPm/+NDihASHg5GGDfQt0sAoYVX8O2Ujh+syY3V5X1C9MzOK171EhiPsCGrZf8RDKVtoL1eac7z3ao5dG8367iNJxQIPsI6thc8EAmeDQPkkbfPoeJXGDqooup52hBDgGuhZk8iApK5RX+E/qzWn0SEhsRNapgQ==
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=TxHxjqnfxZWF/z08CaV5pCzCkt38zC1qSAYIboC5Tdo=;
 b=T9nMagcUB5sKvZKTwKJALLHrxBY/uaK69pnAncPPAKuZb+GV5nYQNN90+GW1XaP0Yu+0G0QcIiXGijyo3IRgLJ5CK/dFF00w0Rk7BH4/XPGxKuCrBcYvuydbCsrydEEEeMdPzGglHGQFpD1fiGMeIr4IGvBd4i+FPHOZqX2xZJg=
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: Alejandro Vallejo <agarciav@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: "Daniel P. Smith" <dpsmith@apertussolutions.com>, Jason Andryuk
	<jason.andryuk@amd.com>, Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	"Stefano Stabellini" <sstabellini@kernel.org>, Michal Orzel
	<michal.orzel@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 v3 01/16] x86/boot: introduce boot domain
Date: Tue, 8 Apr 2025 17:07:23 +0100
Message-ID: <20250408160802.49870-2-agarciav@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20250408160802.49870-1-agarciav@amd.com>
References: <20250408160802.49870-1-agarciav@amd.com>
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: BL6PEPF00020E5F:EE_|MN2PR12MB4078:EE_
X-MS-Office365-Filtering-Correlation-Id: 30f7d27d-86f7-452c-5934-08dd76b7ac6e
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|376014|36860700013|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?aHCZo9h1YIlltGgdRECrmi9LmUTe6tG2gdZpYzIdPlmHTH3CFkLTAQgpw5RZ?=
 =?us-ascii?Q?Q5NkMbpwBqLb05JjlD1vYuKTANMzezSJr8QmYxkw5uYY07eB565ABODnfu96?=
 =?us-ascii?Q?sk2xmxQNNuMSKPgRB77SI7+RjX6LFWP9GWeJ1NuM4aeU8fCoH9rlY1OvHyUq?=
 =?us-ascii?Q?3Iu0nauvjgz8bl69RbRdmVduvt3XviMDwn5Jm0BDgBrQS6UMfaeMR9sZllce?=
 =?us-ascii?Q?xs4La1slTnVx7Ew51rZ923Af25wShk1vaEi0qEON8C9qc2TCzr2PlCXxmuyg?=
 =?us-ascii?Q?n1852VEMWZQ1LOQACF5FDyIEUMAx1Sli4qgAPwZRqeMg3oqmA8QxFEU6nWjV?=
 =?us-ascii?Q?kctNGU54KF3tOezBHvgxxeYsXmpO0s3suimm0KpPJRbvky4t832AJaNOIkea?=
 =?us-ascii?Q?bjWWfuiIrSauDUQ+0/jFe1lgwx0YDPlWEKKb5tcg/Y2LgaMDLqfPKNfAU7MQ?=
 =?us-ascii?Q?eoOhTm0zUrURzbBIwPS1n2nipMcQod1npH9DsBBhTedGI2emNISlybUihOS1?=
 =?us-ascii?Q?EkGQreAXtX5FbbKOq1UwcE2NaqSMX7cLE55m+b2V6LPjvOC+8fACLq1jSEoQ?=
 =?us-ascii?Q?X9FtJeiDVNqBRnDQns+IYqzi/trZnuZFlfyg9DuW0kkeSoTEQjNOneSwAEXs?=
 =?us-ascii?Q?kGSvA3fsFveL6S/XNs3Hq+X+5la85dAIoY1kF3+u/NzkujTJLf+n1RF9CH9a?=
 =?us-ascii?Q?z8RYV/p91X66XN4YjK3InYXIjdnED/r5D9LA/tq5DsVrCRFmru0cxADovI/Y?=
 =?us-ascii?Q?IkSsCeym+/0C/XiX4ZrndVybzJ3Vxq2/8zrvPy0zzPucQysG3joBqtLiz2NR?=
 =?us-ascii?Q?0LSsx5vqz1bZar2ha4pgao8igYTF49DWs9Ctbh90E4sVKy0ILzz4wZDA3GZ0?=
 =?us-ascii?Q?6tQ/QYe9bK/agcuor0aJa7z7P20ox8JqZAAHUGPTpEUZP2EROtIdCPHDUEX9?=
 =?us-ascii?Q?0eGVRFn6dZw4IjcrTHS+MKx1Yg2vDUAEd8ZmeuwUx2Mh9ZFCyOyFUHx7f2n8?=
 =?us-ascii?Q?7M7kJQHWaKShkMJe1ov4CTOtOGef1K9fStOvN3r5o+i3gm9STmfktCG1mYbQ?=
 =?us-ascii?Q?tmO4IISt+Ad8KaGSuo8SRks8XpvUxKkSIbE76tN29fppLQUpZeCgeUjWdfCD?=
 =?us-ascii?Q?2D4f3+NcpWZTC9RpDUBlz+y8AgALheEO/wMWKm2Mbhx2TvAmMAMR6Gsvbuuc?=
 =?us-ascii?Q?JA+U6DaVw5RBt1wtSckcX44DGrKcVa4twOiLCZW2dh1qPW2yhiI6zAW+JzQ5?=
 =?us-ascii?Q?/kFa+61YKTXpbKfJM2lC7SNS9wjxxItmN2UhYXv3klzNU33TD2ID7lgLEuGg?=
 =?us-ascii?Q?7Dj1nc0+VYZH5NT/zwpIApa0a79Nu7M6t6mgYdlLMASVDHrgt50wpym0opjn?=
 =?us-ascii?Q?Uy3Bm4w4ru0gOy6GhqJzJG2udN6zIdVvxR9ij4LGUCwi1xyYeHZ3E6EN07c9?=
 =?us-ascii?Q?l7OkMfUGWrMp/p2LHhrX2VQsirSXrdWI6zZZHvmwFsuZ+AJteESBkfAgjhM1?=
 =?us-ascii?Q?ydxqCxNkbsgLi3+wqHZbihMoGcfdcXC5Ij/b?=
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)(376014)(36860700013)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Apr 2025 16:09:00.0171
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 30f7d27d-86f7-452c-5934-08dd76b7ac6e
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:
	BL6PEPF00020E5F.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4078

From: "Daniel P. Smith" <dpsmith@apertussolutions.com>

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>
---
v3:
  * Rename bootdomain.h -> boot-domain.h
  * const-ify boot_domain parameter passed to construct_dom0()
  * Rename boot_domain.ramdisk to boot_domain.module
---
 xen/arch/x86/dom0_build.c              |  8 +++++---
 xen/arch/x86/hvm/dom0_build.c          | 23 ++++++++-------------
 xen/arch/x86/include/asm/boot-domain.h | 28 ++++++++++++++++++++++++++
 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(+), 53 deletions(-)
 create mode 100644 xen/arch/x86/include/asm/boot-domain.h

diff --git a/xen/arch/x86/dom0_build.c b/xen/arch/x86/dom0_build.c
index 8191d90a22..0b467fd4a4 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>
@@ -614,9 +615,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(const struct boot_domain *bd)
 {
     int rc;
+    const struct domain *d = bd->d;
 
     /* Sanity! */
     BUG_ON(!pv_shim && d->domain_id != 0);
@@ -626,9 +628,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 9fd68df7b9..2a094b3145 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)
+    const 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->module;
     void *image_base = bootstrap_map_bm(image);
     void *image_start = image_base + image->headroom;
     unsigned long image_len = image->size;
@@ -1328,26 +1330,17 @@ 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(const struct boot_domain *bd)
 {
     paddr_t entry, start_info;
-    struct boot_module *image;
-    struct boot_module *initrd = NULL;
-    unsigned int idx;
+    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 ( bd->kernel == 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) )
     {
         /*
@@ -1385,7 +1378,7 @@ int __init dom0_construct_pvh(struct boot_info *bi, struct domain *d)
         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/boot-domain.h b/xen/arch/x86/include/asm/boot-domain.h
new file mode 100644
index 0000000000..5e1e1a0b61
--- /dev/null
+++ b/xen/arch/x86/include/asm/boot-domain.h
@@ -0,0 +1,28 @@
+/* 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_domain {
+    struct boot_module *kernel;
+    struct boot_module *module;
+
+    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 f8b4229130..3afc214c17 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/boot-domain.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 2d67b17213..ff021c24af 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(const struct boot_domain *bd);
+int dom0_construct_pvh(const 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 5c2391a868..ac34c69855 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(const 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 96e28c7b6a..b485eea05f 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(const 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->module;
     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(const 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 d70abb7e0c..ddb10ea03d 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -992,16 +992,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 )
     {
@@ -1028,11 +1021,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. */
@@ -1054,10 +1047,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;
@@ -1263,6 +1257,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 )
     {
@@ -2129,6 +2124,7 @@ void asmlinkage __init noreturn __start_xen(void)
     if ( initrdidx < MAX_NR_BOOTMODS )
     {
         bi->mods[initrdidx].type = BOOTMOD_RAMDISK;
+        bi->domains[0].module = &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.43.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 08 16:11:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 16:11:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.942872.1341962 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2BXe-0002LM-O2; Tue, 08 Apr 2025 16:11:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 942872.1341962; Tue, 08 Apr 2025 16:11:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2BXe-0002LB-Ky; Tue, 08 Apr 2025 16:11:14 +0000
Received: by outflank-mailman (input) for mailman id 942872;
 Tue, 08 Apr 2025 16:11: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=2sbj=W2=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u2BVc-0000a6-RN
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 16:09:08 +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 cbb9afe1-1493-11f0-9eaa-5ba50f476ded;
 Tue, 08 Apr 2025 18:09:07 +0200 (CEST)
Received: from BN9PR03CA0526.namprd03.prod.outlook.com (2603:10b6:408:131::21)
 by MW4PR12MB7013.namprd12.prod.outlook.com (2603:10b6:303:218::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.27; Tue, 8 Apr
 2025 16:09:01 +0000
Received: from BL6PEPF00020E66.namprd04.prod.outlook.com
 (2603:10b6:408:131:cafe::45) by BN9PR03CA0526.outlook.office365.com
 (2603:10b6:408:131::21) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8606.35 via Frontend Transport; Tue,
 8 Apr 2025 16:09:00 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BL6PEPF00020E66.mail.protection.outlook.com (10.167.249.27) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8606.22 via Frontend Transport; Tue, 8 Apr 2025 16:09:00 +0000
Received: from xcbagarciav01.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; Tue, 8 Apr
 2025 11:08:59 -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: cbb9afe1-1493-11f0-9eaa-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=NvA8xnCHX6oY1DnXtoLNZ2GSqM4yuSunyTC/d6mpn9FgCib5yAEhYl0AV8cxfvZHxrnkWEPu6KavvHe57Q4D77dMH7K9FmalIZ6gghWHxw2b/6zEdOcxq7uAvwXjTjuSxQFZ/0GTh35l5IOfNBHFYhRoESKQHhOlnswi7ZocEeG8Yhm93dxpqpKVUtNDpgpWsTLb5QBBxYNf9R3JlMad7VcQoBU4zLqPF2eu381kK2gwR7o+FCnf9PQ4HWzKJjRo8hyKGXw+NMq7uzOhlw6OjkfHg8WmbP+eBdPV/e6GFHmbJu35anxYRsk8MAs7d4UjCblAe6Oh1mvNAz1X4tGsQQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Q4NLg8ZGB5ywF9hUuTTn4esEKLdJ7mThXS52DT8LHzo=;
 b=WkzqqgHWk6YmuRxoOp0UxkmpDuRlt0Vap64OKyH3EIc4J2nAeJY4xTzNVBZGiDNX7nAYxLnWaBBOMUxM/97da/xi+Z+yWM4beNiGzyJRNxQJrjatZ43+CaPlmM+CNP4JfzFQz6hJab+QP0p5u8A3DjtJcDxT+lHYp3pQwufAJyu3pFy69N1R0w9ocHzbq2ESMg3MemguNNbbO38gd0urhCMtG2P0xabOWAyEiaitvrI0IIKFt1dtEq2zRYB1ORgDbsxUU+t4Teq57DIxGg/FfKFGEbrQFettdwlzXbC9aMWt49pasoZIytIxbEytIrI/7sx0B+khpPtlFpr+5PVJ9Q==
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=Q4NLg8ZGB5ywF9hUuTTn4esEKLdJ7mThXS52DT8LHzo=;
 b=eD+Rn8EI6hfo6VaJwgIiXes92jo1SbP07RXGSEpUvBWxYWdJlUWDf0kzqAE/2ejpDUhl8Yk6qTNdmt8lF4L15ZjVo3QFSBd/zDbDLd8POLLNYIVcyvp7wGhepa+lT1xi2sq7U88giMdDrOES/ibHteBfWtoTcOpXn1RqmKXvpdc=
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: Alejandro Vallejo <agarciav@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: "Daniel P. Smith" <dpsmith@apertussolutions.com>, Jason Andryuk
	<jason.andryuk@amd.com>, Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	"Stefano Stabellini" <sstabellini@kernel.org>, Michal Orzel
	<michal.orzel@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>, "Alejandro Vallejo" <agarciav@amd.com>
Subject: [PATCH v3 02/16] x86/boot: introduce domid field to struct boot_domain
Date: Tue, 8 Apr 2025 17:07:24 +0100
Message-ID: <20250408160802.49870-3-agarciav@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20250408160802.49870-1-agarciav@amd.com>
References: <20250408160802.49870-1-agarciav@amd.com>
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: BL6PEPF00020E66:EE_|MW4PR12MB7013:EE_
X-MS-Office365-Filtering-Correlation-Id: 96384393-4263-4c29-aeea-08dd76b7acdf
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|82310400026|1800799024|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?pab5bAnRK4kM2gptm1hiuNSEuHsWHTujALoHLnBWLH5OgU3NoH6K5l0a4zFx?=
 =?us-ascii?Q?JyAXhYLy+CUeVTlh6s+Takd7BMlty328WmcQ1F8DP2SGtdG+w9l12jY1Yto6?=
 =?us-ascii?Q?pWQbI/mSUbcM5okBrqqSCIBm+IlRAUiejxv8VDuExkzBDxv9d5QptTKRKZ8P?=
 =?us-ascii?Q?+hQvqb+S4QNRA4CvBiDFOaRFi7ujjwR/Zssx4E6wuHL+e5qd88WtULWGc2EM?=
 =?us-ascii?Q?yqFV7ychm0I6KGv4BYtNJdeLlw7WcpCRkz2PuOyEcesE3fJiMRHaFlgAgiSU?=
 =?us-ascii?Q?3FEzV+cb+dyX7AeeI6gizgE/QiC++zHHEiQcgF3TbTTvaWe/pNeH+tidUJWt?=
 =?us-ascii?Q?ttFsG1HPbzj7KsWIqWboZLqC/l4hWUVmvbZJlH1fgykHwr7wbzJH2/Hzmenh?=
 =?us-ascii?Q?YivpYsYZmP+wNmsydRZlKPBGHOashTCekXhMyD6mrqrrKnqx27x1hW1wbsuI?=
 =?us-ascii?Q?IzTRQN6rREgh99cpfPdptL3Y0OI8BS/GowR47GZczoOFV1d0TJo2R1Arb0ta?=
 =?us-ascii?Q?pjeIDdGITtvbKuf0mis2he8HIlM/+4uCKFbcQxPb2H5zbrmkDazUUzCEAsYg?=
 =?us-ascii?Q?dCOHKbaBzoJnr3tdSxM0coy27c7pwZda6Dk2wQ7RMjWN9pYYGYOmapbULZag?=
 =?us-ascii?Q?qkIzEo9PvulTOnWZT4E/OJrH3TQf9jmg22ZoyASpDo1/DW/KHGvuENIZMZin?=
 =?us-ascii?Q?ZUnGLkOywPBVSK4nalrxODNhzgCESXXxtYBTs37IMyTRJD1CAC9CB/e8vFsh?=
 =?us-ascii?Q?SNNDW+uJvvWW5HyqZSa6VtulC4X7QYScZsTH5RFVeK79pl0ouu7eKLm/B2RO?=
 =?us-ascii?Q?56teuURI9NbWSx8nYkqYZQaJec/oFwdT8wM+ET1tP9sZKst4plK5sMKbOXem?=
 =?us-ascii?Q?OufAoDHGgeOdXtV130kueEJvLTrH9yyofI8OKF61lozKBaQhEZ3LTj7Row5e?=
 =?us-ascii?Q?gpLghazbYE7BUSErfYGR2fJj23Egn5C7abi4ni45xGBCvbtCqltvoI5wCkdu?=
 =?us-ascii?Q?FjUZoN9w+omyNBYCHgugw8Kwf3QRgA5X2m5yx3j8WTTGrEWVSFePXCuCcDxi?=
 =?us-ascii?Q?L3FlENjL9UHKJB/j6Wa5fQaAixl0Hg+jAvvumL/R2d5it3CcDVYB/NQuScSo?=
 =?us-ascii?Q?VQXY2XrSC4aOBtl/lrK4+r8RiLuldZhbY2sbXykpnUgLavFECi6DrOWKn2PI?=
 =?us-ascii?Q?aPteYLMLAgQPBzOS4du102/WpZnq/LfeF1MfuHljr4KB6y4CYGn/tyBeh8ZS?=
 =?us-ascii?Q?wqe+WE0K0Uq4xNtzK94cdVQbZ2Y73r7G1YcAdcV4FUNy7ub58p/ZsNaohpoK?=
 =?us-ascii?Q?yZ5lolVGNZhKAwjaBtvgd/8ZR1zd/76LSVDtB28IpDg6/EjlT6OcHy3L0+MZ?=
 =?us-ascii?Q?Cg03AWlQW2V1No5zREc2WyoLcXswok4jSxmxiXeMpAkSxu5uFFrq2Otmc7xT?=
 =?us-ascii?Q?GLxhmLXlA1mo5kRlYw7SCrMXnDbxLhACyxXKoG5GHsTV6kCue/Wp+w=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)(1800799024)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Apr 2025 16:09:00.7442
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 96384393-4263-4c29-aeea-08dd76b7acdf
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:
	BL6PEPF00020E66.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR12MB7013

From: "Daniel P. Smith" <dpsmith@apertussolutions.com>

boot_domain stores the domid until it is used to create (and allocate)
struct domain. d->domain_id is not available early enough.

boot_domain domids are initialized to DOMID_INVALID. If not overridden
by device tree, domids of DOMID_INVALID are assigned a valid value. The
domid will be optionally parsed from the device tree configuration.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>
Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
Signed-off-by: Alejandro Vallejo <agarciav@amd.com>
---
v3:
  * Initialize all boot_info.domains domid fields
  * Re-write commit message to justify the new domid field.
  * Use "%pd vcpu 0" in error message
  * Move xen.h include (introduced in v1) inside ifdef guards
---
 xen/arch/x86/include/asm/boot-domain.h |  4 ++++
 xen/arch/x86/setup.c                   | 10 +++++-----
 2 files changed, 9 insertions(+), 5 deletions(-)

diff --git a/xen/arch/x86/include/asm/boot-domain.h b/xen/arch/x86/include/asm/boot-domain.h
index 5e1e1a0b61..fcbedda0f0 100644
--- a/xen/arch/x86/include/asm/boot-domain.h
+++ b/xen/arch/x86/include/asm/boot-domain.h
@@ -8,7 +8,11 @@
 #ifndef __XEN_X86_BOOTDOMAIN_H__
 #define __XEN_X86_BOOTDOMAIN_H__
 
+#include <public/xen.h>
+
 struct boot_domain {
+    domid_t domid;
+
     struct boot_module *kernel;
     struct boot_module *module;
 
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index ddb10ea03d..585316f1ca 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -295,6 +295,7 @@ static const char *cmdline_cook(const char *p, const char *loader_name);
 struct boot_info __initdata xen_boot_info = {
     .loader = "unknown",
     .cmdline = "",
+    .domains = { [0 ... MAX_NR_BOOTDOMS - 1] = { .domid = DOMID_INVALID } },
 };
 
 static struct boot_info *__init multiboot_fill_boot_info(
@@ -994,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 )
     {
@@ -1010,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 %pd vcpu 0\n", d);
 
     /* Grab the DOM0 command line. */
     if ( bd->kernel->cmdline_pa || bi->kextra )
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 08 16:11:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 16:11:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.942916.1341971 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2BYA-0004Ii-4a; Tue, 08 Apr 2025 16:11:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 942916.1341971; Tue, 08 Apr 2025 16:11: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 1u2BYA-0004Ib-1f; Tue, 08 Apr 2025 16:11:46 +0000
Received: by outflank-mailman (input) for mailman id 942916;
 Tue, 08 Apr 2025 16:11:44 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=2sbj=W2=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u2BVt-0002e3-2y
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 16:09:25 +0000
Received: from NAM11-CO1-obe.outbound.protection.outlook.com
 (mail-co1nam11on20604.outbound.protection.outlook.com
 [2a01:111:f403:2416::604])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d33a58f2-1493-11f0-9ffb-bf95429c2676;
 Tue, 08 Apr 2025 18:09:20 +0200 (CEST)
Received: from MN2PR01CA0065.prod.exchangelabs.com (2603:10b6:208:23f::34) by
 PH0PR12MB7930.namprd12.prod.outlook.com (2603:10b6:510:283::7) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.8606.31; Tue, 8 Apr 2025 16:09:15 +0000
Received: from BL6PEPF00020E64.namprd04.prod.outlook.com
 (2603:10b6:208:23f:cafe::a4) by MN2PR01CA0065.outlook.office365.com
 (2603:10b6:208:23f::34) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8606.35 via Frontend Transport; Tue,
 8 Apr 2025 16:09:14 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BL6PEPF00020E64.mail.protection.outlook.com (10.167.249.25) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8606.22 via Frontend Transport; Tue, 8 Apr 2025 16:09:15 +0000
Received: from xcbagarciav01.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; Tue, 8 Apr
 2025 11:09:13 -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: d33a58f2-1493-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=KiL40FDYM+sAb2Gj7EPkLHEeAlLCoSSgPLEoAggtvHDcsAJqQtXj2x4Hey20hGFy4H8suVzfjdltgCpWc+VO9CGuLpuldk8OlKjAStSB41HHxb4Af9x300zna8sSgxrhN2xTseffbFZZ/S3+F0aKNsNNfFyZTv0WFqtw8jghIU6sqhfnU/3I3Ev2YtUz6ZGMrZT2sX07etRriTTWeMuMqH9VuPMiTu9XdQOJ68MAx9k5kJptEj6hdqWyx+Z5ZnDuOYtWtvr0LJNTTfO4GmVXFnTujXEEAP+l/5gR4X41hKYytDNtq0MGKVnULonNM8m1tI226dJJe1MVq11ur8x+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=7R69kvWM740SS/m0F4d2VLUkfGCEI/pSnhi9Oh+3y0I=;
 b=woaG0MEXOW8J/HuZc9dETNUWPaF+RJAnTwYKkAGzRPWKCOLSUky87R6UHQfMy1pjnidzn/N4WKSrder9Svi02+fi1ISWe69pbnm+gQhCz7Je+mI4ItXfDL8uzLQnqRNuaWfYgBYHlYKC2E1x5vz68gJ2GPXiMDLIhFCgUsr2dM5bMg163fLw1Uh9ClBDIEj98T+eP2vtzLmCsGtY3UU8HAtL9w7UpW1WppcPv6+KsKjExb4sGiANkZxKL7gtv5IVuSqA/tDr4eL1C3dUXaPXagjl21sLLCXTZZnfdVrp7tHf03hyClqyt6ZAxdlz5uW40wSJkyuL9gYHgqprbj0v7A==
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=7R69kvWM740SS/m0F4d2VLUkfGCEI/pSnhi9Oh+3y0I=;
 b=LFjbPpV0rKY5Om0YSskgXjTX83gfXV5Hi8+yPb+ZZiwg4mS4u4colR8ziE1jCYHIjJkONz7XghZ8MGaKJOlcdRHiH5ZBGOGoeNBRFFPbuDTzCEzDLYAkpaXY8xlObX/fItshAKWpFU9bd/ViRIypgSayo6RsO7NKXqO/hdMXHB0=
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: Alejandro Vallejo <agarciav@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: "Daniel P. Smith" <dpsmith@apertussolutions.com>, Jason Andryuk
	<jason.andryuk@amd.com>, Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	"Stefano Stabellini" <sstabellini@kernel.org>, Michal Orzel
	<michal.orzel@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>, Bertrand Marquis
	<bertrand.marquis@arm.com>
Subject: [PATCH v3 12/16] x86/hyperlaunch: add domain id parsing to domain config
Date: Tue, 8 Apr 2025 17:07:34 +0100
Message-ID: <20250408160802.49870-13-agarciav@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20250408160802.49870-1-agarciav@amd.com>
References: <20250408160802.49870-1-agarciav@amd.com>
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: BL6PEPF00020E64:EE_|PH0PR12MB7930:EE_
X-MS-Office365-Filtering-Correlation-Id: 5aff5e69-8e2e-46b5-a062-08dd76b7b5a0
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?rKkTUdZdIJJrdZL68IABjrqa+X/hqkAXN8RbzdR3mYPJU94dddoDX9uK9fyh?=
 =?us-ascii?Q?cmROn2sDf3fZ8CWFz/Gv5s+xvdvxXp1d/peYK52EmB2engyZ8s2e+0oO+SQx?=
 =?us-ascii?Q?aD8IX8f3eP9jTFm50+uCjKMsRDwZudjjsqw6F4uE2QIp5JS0ipyAKDT6VXJr?=
 =?us-ascii?Q?7B7zcMIi1XaJzMDJjD1Tmt0DqTWalPklpw3Kwi7q2fpPS4Ikce45Dl+6mfQP?=
 =?us-ascii?Q?LH0mJtNriHKXbzd/CoLnIH3yMot7+QPiw6qAKpkfamdST6RvZFiVfxaZKwVO?=
 =?us-ascii?Q?222hHOcDhGYoBtLzKg64JCVmVcLmyJ57XvmJDVMsKIEEvY53OAdXdtE7rkgM?=
 =?us-ascii?Q?p/7g8IXmvhHOVQKQ1h+v+pbmcLx9RlqGZq7E9f9bEduIzb/bl+R6bg6nklZM?=
 =?us-ascii?Q?4tJKOn9Drp5QStXPL0P8J2sTfmMBt6RO1GhzMoJ/n8ZlfoM5O9wseMOd9sxx?=
 =?us-ascii?Q?4Gy8Vlsp6n6YUF6BeKBl9iFY4CHrwxDMX02uxW7QgBdziZMyrJKZlmL77Fg2?=
 =?us-ascii?Q?Vaw73iRH4hA/Zx6tdPlMH5JQxfWBVgVJYBhyVrOkfqSrkA4Ecak8BqnABy33?=
 =?us-ascii?Q?2RzPZk4nAnLj9O+Ev8PAtHaEfGRND1/VnV+K9NTMm9y+G1I6EMeoU5sJjk4J?=
 =?us-ascii?Q?u9gO10pmJwek3YYDK3exJ/bhbAjrvLf/nhqB9EydcqHOh5kOcRhlGPWf5IQO?=
 =?us-ascii?Q?maNnEybdlVIcGIK2u6sdIcAwqKJrqfWGw09UiYi9JTQQS3lwfCETvj5O9nKc?=
 =?us-ascii?Q?1qMH8qsSAAWCrwUyOaOGG/Y2678dw60r6vOfhek8F/zEIuynr+pSKYG2c2uG?=
 =?us-ascii?Q?nO7/sSS+yDtv7AjC9S7YXDqOeQMCMf1lz6AfA1+LscwZ6z3WBuT5zN6ZCR2T?=
 =?us-ascii?Q?X76ra4ZDq5uSwFDT89YAGECI4s38UqnOc04j429+0HVWOxN0uNjQ2r7mHry/?=
 =?us-ascii?Q?OQxQ0gTDEkV9KRpkBHJvk0IYF4wknmvcCPsihT8KBu1uM4mCjyyst5EEryt1?=
 =?us-ascii?Q?VhJbGKbsBjdFLtFTLwXFukSMhX+qsT3T6YQ0ua8e/xGyKUsqyEDaRlSWpD3q?=
 =?us-ascii?Q?32HxFGPeQOXAvzLng2fF82vm1NhhQRlto8N1wWO9cROX3Y6/h05YHdSXID9e?=
 =?us-ascii?Q?wGiYO3lWeCxA1juFP56fU7rEInd6PKFUAweIplLE4mjZ1Kkn3UBgvwzQ0R5Q?=
 =?us-ascii?Q?JMDpssnX614q8hsVcwhOB7Qqac0d+azKT48TghyiZhbRbFIWOM1rZmWjmX4h?=
 =?us-ascii?Q?RmJETp+ScMZT90tT4rNnWJsxIEuzrFbByDPc0yhYJ5h09e57dVwDdZQQc+kZ?=
 =?us-ascii?Q?jmaEflZB6XtMUc2PaGTJHqK5W+kDiwCpDJy1WepXmTCTUFzVNdW/JJSEQqMA?=
 =?us-ascii?Q?vNXefymrRmz0iIvJzwthZHyJQPiRLD9pJJw1jyCgeeO1M73ReYRiQUAXM3r1?=
 =?us-ascii?Q?rDUieffeeW75xhgUdleQ7o7czJKLcTV4VwuypKTTiJCHhWThkGhTDg=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: 08 Apr 2025 16:09:15.4461
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 5aff5e69-8e2e-46b5-a062-08dd76b7b5a0
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:
	BL6PEPF00020E64.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR12MB7930

From: "Daniel P. Smith" <dpsmith@apertussolutions.com>

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>
---
v3:
    * Remove ramdisk parsing
    * Add missing xen/errno.h include
---
 xen/arch/x86/domain-builder/fdt.c   | 39 ++++++++++++++++++++++++++++-
 xen/arch/x86/setup.c                |  5 ++--
 xen/include/xen/libfdt/libfdt-xen.h | 11 ++++++++
 3 files changed, 52 insertions(+), 3 deletions(-)

diff --git a/xen/arch/x86/domain-builder/fdt.c b/xen/arch/x86/domain-builder/fdt.c
index 0f5fd01557..4c6aafe195 100644
--- a/xen/arch/x86/domain-builder/fdt.c
+++ b/xen/arch/x86/domain-builder/fdt.c
@@ -8,6 +8,7 @@
 #include <xen/libfdt/libfdt.h>
 
 #include <asm/bootinfo.h>
+#include <asm/guest.h>
 #include <asm/page.h>
 #include <asm/setup.h>
 
@@ -158,12 +159,42 @@ int __init fdt_read_multiboot_module(const void *fdt, int node,
 static int __init process_domain_node(
     struct boot_info *bi, const 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) ?: "unknown";
     int address_cells = fdt_address_cells(fdt, dom_node);
     int size_cells = fdt_size_cells(fdt, dom_node);
 
+    fdt_for_each_property_offset(property, fdt, dom_node)
+    {
+        const struct fdt_property *prop;
+        const char *prop_name;
+        int name_len;
+
+        prop = fdt_get_property_by_offset(fdt, property, NULL);
+        if ( !prop )
+            continue; /* silently skip */
+
+        prop_name = fdt_get_string(fdt, fdt32_to_cpu(prop->nameoff), &name_len);
+
+        if ( strncmp(prop_name, "domid", name_len) == 0 )
+        {
+            uint32_t val = DOMID_INVALID;
+            if ( fdt_prop_as_u32(prop, &val) != 0 )
+            {
+                printk("  failed processing domain id for domain %s\n", name);
+                return -EINVAL;
+            }
+            if ( val >= DOMID_FIRST_RESERVED )
+            {
+                printk("  invalid domain id for domain %s\n", 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 )
@@ -233,6 +264,12 @@ static int __init process_domain_node(
         return -ENODATA;
     }
 
+    if ( bd->domid == DOMID_INVALID )
+        bd->domid = get_initial_domain_id();
+    else if ( bd->domid != get_initial_domain_id() )
+        printk(XENLOG_WARNING
+               "WARN: Booting without initial domid not supported.\n");
+
     return 0;
 }
 
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 3dfa81b48c..db7280225e 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -1033,8 +1033,9 @@ static struct domain *__init create_dom0(struct boot_info *bi)
     if ( iommu_enabled )
         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 )
+        /* Create initial domain.  Not d0 for pvshim. */
+        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));
diff --git a/xen/include/xen/libfdt/libfdt-xen.h b/xen/include/xen/libfdt/libfdt-xen.h
index e473fbaf0c..3031bec90e 100644
--- a/xen/include/xen/libfdt/libfdt-xen.h
+++ b/xen/include/xen/libfdt/libfdt-xen.h
@@ -12,6 +12,7 @@
 #define LIBFDT_XEN_H
 
 #include <xen/libfdt/libfdt.h>
+#include <xen/errno.h>
 
 static inline int __init fdt_cell_as_u32(const fdt32_t *cell)
 {
@@ -23,6 +24,16 @@ static inline uint64_t  __init fdt_cell_as_u64(const fdt32_t *cell)
     return ((uint64_t)fdt32_to_cpu(cell[0]) << 32) | fdt32_to_cpu(cell[1]);
 }
 
+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;
+
+    *val = fdt_cell_as_u32((fdt32_t *)prop->data);
+    return 0;
+}
+
 static inline bool __init fdt_get_prop_offset(
     const void *fdt, int node, const char *name, unsigned long *offset)
 {
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 08 16:11:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 16:11:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.942919.1341982 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2BYB-0004aV-DX; Tue, 08 Apr 2025 16:11:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 942919.1341982; Tue, 08 Apr 2025 16:11: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 1u2BYB-0004aO-AB; Tue, 08 Apr 2025 16:11:47 +0000
Received: by outflank-mailman (input) for mailman id 942919;
 Tue, 08 Apr 2025 16:11:46 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=2sbj=W2=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u2BVk-0000a6-Mx
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 16:09:16 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on20617.outbound.protection.outlook.com
 [2a01:111:f403:2414::617])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d110691c-1493-11f0-9eaa-5ba50f476ded;
 Tue, 08 Apr 2025 18:09:16 +0200 (CEST)
Received: from MN2PR19CA0045.namprd19.prod.outlook.com (2603:10b6:208:19b::22)
 by BY5PR12MB4083.namprd12.prod.outlook.com (2603:10b6:a03:20d::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.21; Tue, 8 Apr
 2025 16:09:11 +0000
Received: from BL6PEPF00020E62.namprd04.prod.outlook.com
 (2603:10b6:208:19b:cafe::b7) by MN2PR19CA0045.outlook.office365.com
 (2603:10b6:208:19b::22) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8606.36 via Frontend Transport; Tue,
 8 Apr 2025 16:09:11 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BL6PEPF00020E62.mail.protection.outlook.com (10.167.249.23) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8606.22 via Frontend Transport; Tue, 8 Apr 2025 16:09:11 +0000
Received: from xcbagarciav01.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; Tue, 8 Apr
 2025 11:09:09 -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: d110691c-1493-11f0-9eaa-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=hzm/TIM1ny5JgA7mzykF9Vyeavjk9uTGOAmJc8QZ1cQkLOnwKqJYEHOgL5brX21equcvMMycejEnVNJJ6sqDgG1QkRq5jg5EunMgAVg2/98X2jwc23SuQLf4Ev8j42xhPfblnecvtp4Ixc4M/2MdKfSV8AH+Et/XCtu6+cz0OcuKezwpvCeQMgSfUO/nIT8OlmeJgLXVeu1BCu8iieBBrrGtkQTwQSsZnc3iUxzaN23zWE7wW+zhrIav10DdsRM6hyzk0FJGOsZ+VVp04zOs03RfxO9jc3oBwJByUFALU+wlz9/wa65+NhjwchvDTGVd/XbJAD6BWNafzzIcIfG4Wg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=YluEnmN5WD5jS/lkB8HBr2wUzOPxNHNZCrXAZnkx2Wg=;
 b=Xuc7uRtvpgRIGGP2DcqcE2drWDL+0DBfQDPU5eQ3WVUOdj1sKCYYIUv/ru+hyWMzb2822t5KxPTUrzWfmSMpwDQ4Yq1vZkgkwdvb/L4GwSTiMYd1DOslJvRBulpibPCyfIeCyfaVaQ/c5BaayVJG8B+lYP+MbU4vu3CkF7Qf+0eO0JErufRK8xCKCDx/i7M4erAqzi74zWkoFqru81hC8EY1Zvxji+iyUATz44eQ3WhYo3N1Zf4wq1z0R1vtTJPbTKLXY78q6t3judwQNM2dRh3Y6ixqepEE+iG5SKD5eRCXIprX0DtUhM+2p/5p8rjJxZYa8/oK8f7lDL/JvQaSlg==
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=YluEnmN5WD5jS/lkB8HBr2wUzOPxNHNZCrXAZnkx2Wg=;
 b=nx84FO/8Ix2pseCt7b6yqX+aKzS8mLqBW4RyDEpKJEycqtqvnc5P2bdcyETBB+pKkWdwzZFG5HJJa6NITD6SWHdxZcyTj8UUDuvQD2kIKHoQlRWkWE+qHrd0Kd11QXey7jK32CPXKzUw7kxc8iaOwHSAjE9T7uGtWkCcdKbQTJI=
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: Alejandro Vallejo <agarciav@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: "Daniel P. Smith" <dpsmith@apertussolutions.com>, Jason Andryuk
	<jason.andryuk@amd.com>, Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	"Stefano Stabellini" <sstabellini@kernel.org>, Michal Orzel
	<michal.orzel@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>, "Alejandro Vallejo" <agarciav@amd.com>
Subject: [PATCH v3 09/16] x86/hyperlaunch: locate dom0 kernel with hyperlaunch
Date: Tue, 8 Apr 2025 17:07:31 +0100
Message-ID: <20250408160802.49870-10-agarciav@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20250408160802.49870-1-agarciav@amd.com>
References: <20250408160802.49870-1-agarciav@amd.com>
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: BL6PEPF00020E62:EE_|BY5PR12MB4083:EE_
X-MS-Office365-Filtering-Correlation-Id: b0545932-d22c-4e9e-fa44-08dd76b7b313
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?+2Ml4vNicD7HtgRvk5bbZzEPQyWKatkoFyXXhKYJpJzbhGYiM/NCeLjNRitW?=
 =?us-ascii?Q?mS1EKQTGfAptR7Sy+ZsvG6ykHdsLW+jJZC+QM2ym2ZNMW1JZQfk3jma888B6?=
 =?us-ascii?Q?QIkwyp7hs8inA599uUVcroW6LSCEy9b9ylc8HbxX+px9nirJ1e66lAaj4dmg?=
 =?us-ascii?Q?Z+rkFhkTN623hRFvLsU20Jdu3AWHtuGn3V+/8H6mm5TfYPi1dmffzomclxEY?=
 =?us-ascii?Q?hvzzN7oEPmhREx3rAPQ+zN4YbzUluNCCNGRN4T3o5DBtFSNIzelhRTePigWF?=
 =?us-ascii?Q?iBmn9rWKGzWnD8Dcz3wZVNp7eDf92Rz7wc/tfW4HDO+X80bSEc+O50gFYsfq?=
 =?us-ascii?Q?5CK4p/ip2jaSL1Dm8Dntxt2Dz4B8hAUp2MDn0/wHHcpSLCf/e2x9XkwvFdjk?=
 =?us-ascii?Q?AnjGVze9DSt3i/yCLTJpakBBViJ13ufTfVwQ8o2h0kcFhfvlTEmtLz4Mzl4n?=
 =?us-ascii?Q?rTSCGlly82bsda2RxNZ4QOplIAIiaJmO0zFeTUCsZCvpOqZAsrp4mo/gKvBx?=
 =?us-ascii?Q?9lXYykArP6Pwvjxho6+E+5rZwBVk81jQTl8/ReyrfsZnDqtkIZIHgA4MHelg?=
 =?us-ascii?Q?gRKgaxpXop72Rf9q3Xgag7PrZ2hd/b7f65SiiLlylYkbAE9pe/gGkJG2WmTO?=
 =?us-ascii?Q?H/g9U52yX+6gK1VKPdU+3FS+SoFG8ywZeLt6UrQ2EFM5x2NKVizW2i6ySnB8?=
 =?us-ascii?Q?AsbsTu7b+FRJC2uMTVQZABso1uDyCwuT8c68uxyVfTQfM1NsZLTiwAvZBBSM?=
 =?us-ascii?Q?nYnLq5zXi/FcG4G+SRsMVDJtFl1D63rJg9M0e9wfJtQ0A/8H7dtPH/tqIqqf?=
 =?us-ascii?Q?ECZwlcSxATVpfBvp//3/kRCj3eB/wjIqQWAKsMqPUzIQIaRLRsnFt21Xd+rF?=
 =?us-ascii?Q?ZtNNhZlv5UAwpMOGoz4qo7Bvujd+Hg+60qRlIoyZ4sdc4N3VD8L2QtzWDqTd?=
 =?us-ascii?Q?ZQybBE54NP1338Oh9Woh1Q+QSEZSMf8naUZDJLthHrdvA7MmN8tmeHWDB0SJ?=
 =?us-ascii?Q?es+/NMcpYo04lrWXtMPZhjxxP5WNS3a23dQ7Ku+gBFp6BOaVfdrjRm0mdiSf?=
 =?us-ascii?Q?YMC1ryhlROwG5GdIuylUtVeGA/4iyLwHQp/hrJkao3w/F00vdYK5HqnL8Mp9?=
 =?us-ascii?Q?WiEZvj3fpXqyfa4j0++WB/dvZCqcYiO5DQzD0L0we+xjL7Nq02cGxWnUr8tm?=
 =?us-ascii?Q?Ieqta0mIgh2KYNLteo6E1FMnmEWNlEU8ek+CfV0WGA1C0Prs27uxyPuosGpM?=
 =?us-ascii?Q?3o3ZsbtfoZg3ZuXbp5E9WmeGUlWYuyEvJgCyT2unk5s5svQRbPA3M5JuXxFG?=
 =?us-ascii?Q?5+RbvXf0KxLMgXxJEW1qaBFs4gZ28n0UF1/R2VT8rpobygqOa+IzHe8zJ/hf?=
 =?us-ascii?Q?RxcmeHrDIDFev7U4krmReDu+ooEOVfdGxuZ4aUwJ7FfSY0Y21bp1jAu/HqaD?=
 =?us-ascii?Q?ZOi5Qb9yqyFObANsXFrJr/2oyW9KjPcI2/TRchuE6CY5akkKoKFltJ3IbjMf?=
 =?us-ascii?Q?LWLfuDj/mHzG7TgDhnr/eqhQezCZhM4da0ua?=
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)(82310400026)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Apr 2025 16:09:11.1533
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: b0545932-d22c-4e9e-fa44-08dd76b7b313
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:
	BL6PEPF00020E62.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR12MB4083

From: "Daniel P. Smith" <dpsmith@apertussolutions.com>

Look for a subnode of type `multiboot,kernel` within a domain node. If
found, locate it using the multiboot module helper to generically ensure
it lives in the module list. 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>
Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
Signed-off-by: Alejandro Vallejo <agarciav@amd.com>
---
v3:
    * Add const to fdt
    * Remove idx == NULL checks
    * Add BUILD_BUG_ON for MAX_NR_BOOTMODS fitting in a uint32_t
    * Remove trailing ) from printks
    * Return ENODATA for missing kernel
    * Re-work "max domains" warning and print limit
    * fdt_cell_as_u32/directly return values
    * Remove "pairs" looping from fdt_get_reg_prop() and only grab 1.
    * Use addr_cells and size_cells
---
 xen/arch/x86/domain-builder/core.c | 11 ++++++
 xen/arch/x86/domain-builder/fdt.c  | 57 ++++++++++++++++++++++++++++++
 xen/arch/x86/setup.c               |  5 ---
 3 files changed, 68 insertions(+), 5 deletions(-)

diff --git a/xen/arch/x86/domain-builder/core.c b/xen/arch/x86/domain-builder/core.c
index c50eff34fb..eda7fa7a8f 100644
--- a/xen/arch/x86/domain-builder/core.c
+++ b/xen/arch/x86/domain-builder/core.c
@@ -59,6 +59,17 @@ void __init builder_init(struct boot_info *bi)
 
         printk(XENLOG_INFO "  Number of domains: %d\n", bi->nr_domains);
     }
+    else
+    {
+        unsigned 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 9ebc8fd0e4..a037c8b6cb 100644
--- a/xen/arch/x86/domain-builder/fdt.c
+++ b/xen/arch/x86/domain-builder/fdt.c
@@ -155,6 +155,52 @@ int __init fdt_read_multiboot_module(const void *fdt, int node,
     return idx;
 }
 
+static int __init process_domain_node(
+    struct boot_info *bi, const 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) ?: "unknown";
+    int address_cells = fdt_address_cells(fdt, dom_node);
+    int size_cells = fdt_size_cells(fdt, dom_node);
+
+    fdt_for_each_subnode(node, fdt, dom_node)
+    {
+        if ( fdt_node_check_compatible(fdt, node, "multiboot,kernel") == 0 )
+        {
+            int idx;
+
+            if ( bd->kernel )
+            {
+                printk(XENLOG_ERR "Duplicate kernel module for domain %s\n",
+                       name);
+                continue;
+            }
+
+            idx = fdt_read_multiboot_module(fdt, node, address_cells,
+                                            size_cells, bi);
+            if ( idx < 0 )
+            {
+                printk("  failed processing kernel module for domain %s\n",
+                       name);
+                return idx;
+            }
+
+            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 -ENODATA;
+    }
+
+    return 0;
+}
+
 static int __init find_hyperlaunch_node(const void *fdt)
 {
     int hv_node = fdt_path_offset(fdt, "/chosen/hypervisor");
@@ -217,9 +263,20 @@ 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: only creating first %u domains\n", MAX_NR_BOOTDOMS);
+            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/setup.c b/xen/arch/x86/setup.c
index e5d78bcb48..00e8c8a2a3 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -1284,11 +1284,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.43.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 08 16:11:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 16:11:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.942939.1341992 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2BYH-00056U-KH; Tue, 08 Apr 2025 16:11:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 942939.1341992; Tue, 08 Apr 2025 16:11: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 1u2BYH-00055q-HJ; Tue, 08 Apr 2025 16:11:53 +0000
Received: by outflank-mailman (input) for mailman id 942939;
 Tue, 08 Apr 2025 16:11: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=2sbj=W2=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u2BVm-0000a6-NQ
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 16:09:18 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on2061e.outbound.protection.outlook.com
 [2a01:111:f403:2415::61e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d1025b54-1493-11f0-9eaa-5ba50f476ded;
 Tue, 08 Apr 2025 18:09:16 +0200 (CEST)
Received: from MN2PR19CA0049.namprd19.prod.outlook.com (2603:10b6:208:19b::26)
 by PH8PR12MB7136.namprd12.prod.outlook.com (2603:10b6:510:22b::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.27; Tue, 8 Apr
 2025 16:09:08 +0000
Received: from BL6PEPF00020E62.namprd04.prod.outlook.com
 (2603:10b6:208:19b:cafe::bd) by MN2PR19CA0049.outlook.office365.com
 (2603:10b6:208:19b::26) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8606.34 via Frontend Transport; Tue,
 8 Apr 2025 16:09:08 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BL6PEPF00020E62.mail.protection.outlook.com (10.167.249.23) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8606.22 via Frontend Transport; Tue, 8 Apr 2025 16:09:07 +0000
Received: from xcbagarciav01.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; Tue, 8 Apr
 2025 11:09: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: d1025b54-1493-11f0-9eaa-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ZYv05iQfg6WNmc1bIHo5vDF2Q0LmqRD+mWgqb1Whyd0mS/iNzBR4vFhC5HX17l/X5z0pZe7fv3K079K860uDphwX5ajzQJH9xHZ5+Mx5aJ1uo72JgWWI84MgUQ1FJezEpcE2dJb8YRQpnAMCqxg4T3FvjK+pGYOApjyCiNsppt4MrGrAcQXFqg5Chz5qxHcBvhpcLSkYMVb7iiId3RnatG4dxbJN14HKiri1Baw70F3bqznIbu6tRnivVnbV3gq4O0OzgsIAhHDZIOjOgvl2P2hQAGSScBtzHmtQ2xVJ9hxlTQPDoYd8xXh3YXyNmvDgybsYJ+UJNfvCq1SOLIEKNg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=q6cqyaPQF4iDLIVBSm6nomktyAk6q6RkbIKN0PzBBQA=;
 b=w3PHCRiooqcq4Xy7BJZ0SNEe5wyJi/dzX3LZHlyMY/1ZN+aKAvt9vWEwtAXVt43m+UeuU6gRCUNlWNqLp0TKcMX3xUp+kGoY6SKvhdsIcLO4IUcUU5BJKSssPSuD0n0ZlHsvYoZ1ShKKKY/1yJGmLPpW1CzNcrtx0AsZ8+3pVcParcaqE1/7sK/VU4fpxUK7X/QOrGu81fC5ehnFxd5Amt896jRJ3Oihtd4r2Qe+e/8h1bnvf5vzOcmesG5nQYbDq7ytKrMHfyVHzZ85YU0t+qz8jKvFMWI3WoBn6BO/NJzKlWB0BMXc6EN55djL+8YyeIuHyvmUMgDHReOJ3i7RHQ==
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=q6cqyaPQF4iDLIVBSm6nomktyAk6q6RkbIKN0PzBBQA=;
 b=VT/nT6ftY3IbZ1thVqecK0sGHaO91L8a3VlAjzkQJc56hrdQ+roHLq1PF+0xjKjP5uK/kXRdq6QG43qHW+LF6cY4K96ZYV61CdxCW5bXRQ9mciPRjkRWuI5PQgguteyCyS/Y7q896UKNhUtaVkd7TWyJDeeFQ+iCWU97eJOzje4=
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: Alejandro Vallejo <agarciav@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: "Daniel P. Smith" <dpsmith@apertussolutions.com>, Jason Andryuk
	<jason.andryuk@amd.com>, Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	"Stefano Stabellini" <sstabellini@kernel.org>, Michal Orzel
	<michal.orzel@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 v3 07/16] x86/hyperlaunch: initial support for hyperlaunch device tree
Date: Tue, 8 Apr 2025 17:07:29 +0100
Message-ID: <20250408160802.49870-8-agarciav@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20250408160802.49870-1-agarciav@amd.com>
References: <20250408160802.49870-1-agarciav@amd.com>
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: BL6PEPF00020E62:EE_|PH8PR12MB7136:EE_
X-MS-Office365-Filtering-Correlation-Id: 149656ee-e74d-4016-ea66-08dd76b7b11c
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?ntUiWpIzt6KRziyhPOKTQ8SpYjcidUG5MPmV7il90PZRrzOG9HRPxbeQaR19?=
 =?us-ascii?Q?wBukGlAvynOyhpny0lvC68whUvXx1jeu0YSxKUXJomYAaGTBKMHA5vUQNB3w?=
 =?us-ascii?Q?pEee3z+9spmB7Q1QLG70GwYO1Q0zTi11QaBpv50j1Bphu9H8lXYljvzI0l9D?=
 =?us-ascii?Q?X2jcRh5EP2wHgIPAV/E2YSb9o7D1kd7EgHpqe+6wOwiROIULtOjDEjV+mRM/?=
 =?us-ascii?Q?I8r5kLjbCUZWGpBGVqpKzMPCFy1ajVtf0Cz0DN3HshS69e4UAc6JyqpPBHxN?=
 =?us-ascii?Q?NKxc9Q6LWx6InypxjTgP1wJagGn24bankEa+kWYIX69soLXm0+R1XdEyKtOb?=
 =?us-ascii?Q?2jw7+P6YzeftOaniFH1pcQsojJ1vdXH9hJZZ4DxY9KFccQfQHPFYyDRInc8N?=
 =?us-ascii?Q?BFBHYe1G09+h7YfKySCWPwZ3myqNWC+ApfiPFTHuUO3+ZjZc4BGLu54ixMwL?=
 =?us-ascii?Q?zqePIBirVIltZQ/gOCqvg6QHAUizVqMQzfjFhkY1cJ5YcSD8HO6NBIQG9bXY?=
 =?us-ascii?Q?NEE5p/IXOAm2KEwZzUOUeAEJDdENjAaKJpjyr1x5ZdrttW8HjmRmivZYaEfj?=
 =?us-ascii?Q?iLCHfot428w5TIFEqn56E9mfCRWm7q5y8rAujnSXQLDXJdk8Ryrgr/Hixt23?=
 =?us-ascii?Q?COUkrd1YhH7deFYqIdiqbUwXTanDCC2u7aPNbIt6RPrxW/cNKGFC17sfmcl8?=
 =?us-ascii?Q?mG4acL+tnANvW+zw0kjIH5sdLCdSdRA+IGHz0Sk098j6o6uZ0oxnrsGzo8rf?=
 =?us-ascii?Q?BlPHE+6vVl27+OlBkvPSQlnSOcMKOwcfLXV8RJMpBb+dc8sRX06ki7kmU28M?=
 =?us-ascii?Q?bipso82sDKersQVN3ZD7tPf2ylcJ9YVWsvhGeyNOWiOqIjPlODdJCaPtWMry?=
 =?us-ascii?Q?2adKRzHth1LXA0uDHAyXEBd/N7Sg6/afl6+oTNpQOOxQfPhYgF2zA/3pJlWy?=
 =?us-ascii?Q?vwesIneFZGgq8olz+Hf4RoiNgmuFPvgyq0tOJrXnYXLOEWTEFLnY5sTfs9IF?=
 =?us-ascii?Q?Ek5V4xhKJX1zRxB/pXwAb2hxmEFNCu11dxPYcK05qIkWuknlAdgB+MUQ7LiF?=
 =?us-ascii?Q?QkWObrq9U9wjErTz9SX12n68/bT4Nf174x7f0TeOI5lMUvi/Q6hzbuhmbfBF?=
 =?us-ascii?Q?ipjAwWSduoSa9qB7qmSbCOlEEakE4qhWe5WNZQq1qLahgbAW1tPcnJiTPYyE?=
 =?us-ascii?Q?wpIOXrRdAs3PfcapUQenqJuTq1rulOVEh8rNsvyRVZUXIp5AP5oi/Lj29uz0?=
 =?us-ascii?Q?7jwYtBsYejTRgTGxEX0OQJFAX4/+eavH78XfpoKM0nODjgmsQha5sKyJcyN9?=
 =?us-ascii?Q?nw43uIT9P+CpSJpa0eSRcxZMmn/QLH5y+Kvi6il2sKh1XzkMUtMB2vnvqgnI?=
 =?us-ascii?Q?ok6MZZ1hRH6XkdeG44NpIZH9kvE9l0/R7u9TIAqdy3Znp2EVeGOz2LpETZNB?=
 =?us-ascii?Q?C7mT3A/L7yX6EN6dO/+O7m5HNXHGG1W3ozitqrA+nap0tOxkNywjf8CZ4MWo?=
 =?us-ascii?Q?RBWZWVPxUtzRgdI=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: 08 Apr 2025 16:09:07.8564
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 149656ee-e74d-4016-ea66-08dd76b7b11c
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:
	BL6PEPF00020E62.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH8PR12MB7136

From: "Daniel P. Smith" <dpsmith@apertussolutions.com>

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 an error if more than one is found.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
---
const not added to walk_hyperlaunch_fdt bi since it is updated while
walking the device tree.

v3:
    * Add a blank between declaration and statement
    * Add const to void *fdt
---
 xen/arch/x86/domain-builder/core.c  | 15 +++++++
 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, 85 insertions(+)

diff --git a/xen/arch/x86/domain-builder/core.c b/xen/arch/x86/domain-builder/core.c
index d6ae94f45c..c50eff34fb 100644
--- a/xen/arch/x86/domain-builder/core.c
+++ b/xen/arch/x86/domain-builder/core.c
@@ -44,6 +44,21 @@ void __init builder_init(struct boot_info *bi)
             break;
         }
     }
+
+    if ( bi->hyperlaunch_enabled )
+    {
+        int ret;
+
+        printk(XENLOG_INFO "Hyperlaunch 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 aaf8c1cc16..4c5b7747f5 100644
--- a/xen/arch/x86/domain-builder/fdt.c
+++ b/xen/arch/x86/domain-builder/fdt.c
@@ -13,6 +13,36 @@
 
 #include "fdt.h"
 
+static int __init find_hyperlaunch_node(const 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
+    {
+        /* Look 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(const struct boot_info *bi)
 {
     int ret = 0;
@@ -20,7 +50,41 @@ int __init has_hyperlaunch_fdt(const struct boot_info *bi)
 
     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;
+    const 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 8e62cd843e..1849656571 100644
--- a/xen/arch/x86/domain-builder/fdt.h
+++ b/xen/arch/x86/domain-builder/fdt.h
@@ -11,11 +11,16 @@ struct boot_info;
 
 #ifdef CONFIG_DOMAIN_BUILDER
 int has_hyperlaunch_fdt(const struct boot_info *bi);
+int walk_hyperlaunch_fdt(struct boot_info *bi);
 #else
 static inline int __init has_hyperlaunch_fdt(const struct boot_info *bi)
 {
     return -EINVAL;
 }
+static inline 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 82c2650fcf..1e3d582e45 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.43.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 08 16:12:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 16:12:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.942942.1342002 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2BYO-0005hE-3b; Tue, 08 Apr 2025 16:12:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 942942.1342002; Tue, 08 Apr 2025 16:12: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 1u2BYN-0005gq-Us; Tue, 08 Apr 2025 16:11:59 +0000
Received: by outflank-mailman (input) for mailman id 942942;
 Tue, 08 Apr 2025 16:11: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=2sbj=W2=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u2BVs-0000a6-Oa
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 16:09:24 +0000
Received: from NAM10-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam10on20601.outbound.protection.outlook.com
 [2a01:111:f403:2413::601])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d5d57d58-1493-11f0-9eaa-5ba50f476ded;
 Tue, 08 Apr 2025 18:09:24 +0200 (CEST)
Received: from MN2PR01CA0040.prod.exchangelabs.com (2603:10b6:208:23f::9) by
 CH2PR12MB4232.namprd12.prod.outlook.com (2603:10b6:610:a4::21) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.8606.33; Tue, 8 Apr 2025 16:09:18 +0000
Received: from BL6PEPF00020E64.namprd04.prod.outlook.com
 (2603:10b6:208:23f:cafe::7) by MN2PR01CA0040.outlook.office365.com
 (2603:10b6:208:23f::9) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8606.36 via Frontend Transport; Tue,
 8 Apr 2025 16:09:16 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BL6PEPF00020E64.mail.protection.outlook.com (10.167.249.25) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8606.22 via Frontend Transport; Tue, 8 Apr 2025 16:09:18 +0000
Received: from xcbagarciav01.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; Tue, 8 Apr
 2025 11:09:16 -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: d5d57d58-1493-11f0-9eaa-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ITcIlD5CBdN5LFC5ku2hqX5axGvK0f6Dy0Cxfpc9pydjdeA8JSyK1fVHR69dEMa66cu3h++bL8Lc/AikrLjOx14igsXuhYzLack4EVOo1oVhrvcXz1OPuiVZ/JzAPBzEhydTsdiOaVkRfOuQywB2KdIRbTIbM+rq9UWGNmoBPzVBakUR8ESVuaQcettm3/Ya7Qkm6TmlnWpcwEYqik34OxPaFtJpBYHOQ9EqjKQqXczxeuPvV2ILnn/H9u1b8zfOryb1pfrKLfhFwcmnxFI3OvHf+80fczU2LK9O0TXEY5MiBwjvtHzcw5S5Zljj+o5rpknt2gTK5MYhuRgyGBPQog==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Q9NqCvhzPSD0hg2V+P7263fYM6c1xFTV40UkgAV5Gpg=;
 b=on6XfXXK3xXIFo8BQ5QdX3ej0EA7fQNuW68gyHFlTX5jaM1FegepuwPWzk8tOg9Un7h6sKEEpbKUNiYIl96IhL52TMxjl2M+55c/6tGoXrKHkIWhATIZCpv7HbrDRgKJEYdMAyvUfcdKFku5oYQYcDLIJH+5giFn03CnmbKwFzhxnXkLlVYTL9t3kKRjf/D1940PxeiQ1IzvzigO4sJM0FrzwL6m4WanDmAQIAnKou9tIuYOYbgUfsZis0azLb7ekMOtzEMhXSFk8nCKUxSHhpSe9nA7GHm6k4wMF53U0E//Lrs6xaq7OxPnr23Zjnyol/9d6QBPjxU3lcO/iOpxZA==
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=Q9NqCvhzPSD0hg2V+P7263fYM6c1xFTV40UkgAV5Gpg=;
 b=mDsCbLNR5hS98/Ljo0KT+91xSsHi08fRKsiR31hstL/fN9S/XhdTLr0NS1YJBqBr6M+5KTbVXy0tH8k+BpFqEa8gA0oMeMN2onlOV8zXq3zb143sZ64KczMo61kMQZJaHqXyHpFixs0iJRO6kR0ILRt8/Lr/K0tUkFDT16yLa2Y=
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: Alejandro Vallejo <agarciav@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: "Daniel P. Smith" <dpsmith@apertussolutions.com>, Jason Andryuk
	<jason.andryuk@amd.com>, Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	"Stefano Stabellini" <sstabellini@kernel.org>, Michal Orzel
	<michal.orzel@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>, Bertrand Marquis
	<bertrand.marquis@arm.com>
Subject: [PATCH v3 14/16] x86/hyperlaunch: add memory parsing to domain config
Date: Tue, 8 Apr 2025 17:07:36 +0100
Message-ID: <20250408160802.49870-15-agarciav@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20250408160802.49870-1-agarciav@amd.com>
References: <20250408160802.49870-1-agarciav@amd.com>
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: BL6PEPF00020E64:EE_|CH2PR12MB4232:EE_
X-MS-Office365-Filtering-Correlation-Id: 376e6127-eb51-4e3e-79a6-08dd76b7b75e
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?Bla8YJp2JkIBzboNjM2FCCWfyHpRLA6GbDW29tiT20MsFRp5FEiHTy8u8Fjl?=
 =?us-ascii?Q?pSPcbg3lAabHvlMsdrXRsm03stZk1Rg8bLUwVgiLH/yYJQ0o2eY7Ocyt0HHz?=
 =?us-ascii?Q?AqynNL74115GkxrSxmKkwYqyfHnIIKhlgXA0lGJJ7qSLPktZL0AgE8dUS1hz?=
 =?us-ascii?Q?xIhfIiEAL/PGFa+ain+foWAo/j4vV1If2wmwSjzVkuycI2oynrDANbS3wvwo?=
 =?us-ascii?Q?3tWdcLQVMWzBcess0OCyrwH2A6yJWohlIIeyqMyfRDp+rSpk9PgZUz8V9Fl6?=
 =?us-ascii?Q?PCRz0o3xJE7fbCfiZtIpNbH8TulPFEO7S9euO+Q/16hTVIvdEcIhZgyvIZ6+?=
 =?us-ascii?Q?NdNgtpbiFFID75Nmq2a+CLi5mq7TdIGjB3/fpXvFS/6DN8mfMoijcz/krH0L?=
 =?us-ascii?Q?QQtVg/oUgqChz/ZsM3ilI7E0kyjnw4a6Enl+vARkV5mz0vynamFK/srObrKG?=
 =?us-ascii?Q?y2k2AqB6ggLdLvkx5s//JZKFlKAquMg4knycz6VDBsospRZIQHRpTXFNl4u1?=
 =?us-ascii?Q?WCs/1OjhRZogo27Zs54oqOZGlHI51vMjhnZid1B3vq0ys0oOT+DAE1LdrocC?=
 =?us-ascii?Q?BAhtzu7hayyt+wa3wQLzIsckA2irl5PDM1xeZIs3xI21UsreYbdC+xJU5+rt?=
 =?us-ascii?Q?7Y67pvxGD1df7mdPxMonxdQZEfedk9rywAic5qJvk3vR0e4vnraxKMuJpydb?=
 =?us-ascii?Q?40SdJZTG2IBXhejciUepWy5seTpvjO38DKsboWQw7r/cqmSXtjGz02ysr5ti?=
 =?us-ascii?Q?9k9Lo488rQDUTNBKQyKc3+Si1WWdNHyDHfRVpvVulHw2GHkuBpHbZwu5ftRU?=
 =?us-ascii?Q?gzPI3LJsIHKIMl1XV2qOK30IZ9CX4FdBXKPji82db0a/74MD5dUVSWb1Mbtg?=
 =?us-ascii?Q?pKnRPyVPsNTCCk/Y8lL1M8CFFFmaHoXakh1alibmfqUqonncO9CSB5ueTA9K?=
 =?us-ascii?Q?JbvwQcW27ycPyCpYhP5ErKjyJMxc2OZaij58N7nM65Vzn8dBCIuufWEO2k6u?=
 =?us-ascii?Q?9/v/ti/YEq+ygjHLdueavPeeprxsVxbVGr/3sIRSYl7eN6U2vwH7uqU8YHQe?=
 =?us-ascii?Q?gFlPEyUsvrfis9cfH6o5Ms7C9RG72hOkT43FIzX7LcRux64W6nSER/CrXBpx?=
 =?us-ascii?Q?vq1HzyLpCH2s1gQWryodzK9sm660AGDVSNzehlU3zluE6SZqTHCvpIr4T4CS?=
 =?us-ascii?Q?TT8RD8FyX+Mbk/P/ErVgXPS+5523+3HJaijqex72uFDIqYRhGx5cMvHhV1UK?=
 =?us-ascii?Q?1d7lFiUlrMZ+1wPxHyKG/3/0gCdVoja0rZBsBJwG5l+0BE3VYgsFXVrcgTky?=
 =?us-ascii?Q?6RDy05UvMxwNS2rZ63A9TKIbKD4z4xOTKb+mKWG29uRe5CPUjSjqN5Fu4jvQ?=
 =?us-ascii?Q?MOOH6QXIrdkafPIWtAcwC7oM0Z92DbATIFNDx/fuKlB8YQixqAwIMGahWsh/?=
 =?us-ascii?Q?tXP+eyEB6Bu38EEQRjvBPoD/p2cQKtR4g8x1pxWfYZEScac9qai5TLFY8taJ?=
 =?us-ascii?Q?DgLmURwPFcZmARw=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: 08 Apr 2025 16:09:18.3524
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 376e6127-eb51-4e3e-79a6-08dd76b7b75e
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:
	BL6PEPF00020E64.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR12MB4232

From: "Daniel P. Smith" <dpsmith@apertussolutions.com>

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>
Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>
---
 xen/arch/x86/dom0_build.c              |  8 ++++++
 xen/arch/x86/domain-builder/fdt.c      | 34 ++++++++++++++++++++++++++
 xen/arch/x86/include/asm/boot-domain.h |  4 +++
 xen/include/xen/libfdt/libfdt-xen.h    | 10 ++++++++
 4 files changed, 56 insertions(+)

diff --git a/xen/arch/x86/dom0_build.c b/xen/arch/x86/dom0_build.c
index 0b467fd4a4..36fb090643 100644
--- a/xen/arch/x86/dom0_build.c
+++ b/xen/arch/x86/dom0_build.c
@@ -627,6 +627,14 @@ int __init construct_dom0(const 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 da65f6a5a0..338b4838c2 100644
--- a/xen/arch/x86/domain-builder/fdt.c
+++ b/xen/arch/x86/domain-builder/fdt.c
@@ -6,6 +6,7 @@
 #include <xen/init.h>
 #include <xen/lib.h>
 #include <xen/libfdt/libfdt.h>
+#include <xen/sizes.h>
 
 #include <asm/bootinfo.h>
 #include <asm/guest.h>
@@ -212,6 +213,39 @@ static int __init process_domain_node(
             else
                 printk("PV\n");
         }
+        else if ( strncmp(prop_name, "memory", name_len) == 0 )
+        {
+            uint64_t kb;
+            if ( fdt_prop_as_u64(prop, &kb) != 0 )
+            {
+                printk("  failed processing memory for domain %s\n", name);
+                return -EINVAL;
+            }
+            bd->mem_pages = PFN_DOWN(kb * SZ_1K);
+            printk("  memory: %ld kb\n", kb);
+        }
+        else if ( strncmp(prop_name, "mem-min", name_len) == 0 )
+        {
+            uint64_t kb;
+            if ( fdt_prop_as_u64(prop, &kb) != 0 )
+            {
+                printk("  failed processing memory for domain %s\n", name);
+                return -EINVAL;
+            }
+            bd->min_pages = PFN_DOWN(kb * SZ_1K);
+            printk("  min memory: %ld kb\n", kb);
+        }
+        else if ( strncmp(prop_name, "mem-max", name_len) == 0 )
+        {
+            uint64_t kb;
+            if ( fdt_prop_as_u64(prop, &kb) != 0 )
+            {
+                printk("  failed processing memory for domain %s\n", name);
+                return -EINVAL;
+            }
+            bd->max_pages = PFN_DOWN(kb * SZ_1K);
+            printk("  max memory: %ld kb\n", kb);
+        }
     }
 
     fdt_for_each_subnode(node, fdt, dom_node)
diff --git a/xen/arch/x86/include/asm/boot-domain.h b/xen/arch/x86/include/asm/boot-domain.h
index e316d4bcde..fa8ea1cc66 100644
--- a/xen/arch/x86/include/asm/boot-domain.h
+++ b/xen/arch/x86/include/asm/boot-domain.h
@@ -18,6 +18,10 @@ struct boot_domain {
 #define BUILD_MODE_ENABLE_DM     (1 << 1) /* HVM    | PVH     */
     uint32_t mode;
 
+    unsigned long mem_pages;
+    unsigned long min_pages;
+    unsigned long max_pages;
+
     struct boot_module *kernel;
     struct boot_module *module;
     const char *cmdline;
diff --git a/xen/include/xen/libfdt/libfdt-xen.h b/xen/include/xen/libfdt/libfdt-xen.h
index 3031bec90e..da43e12e38 100644
--- a/xen/include/xen/libfdt/libfdt-xen.h
+++ b/xen/include/xen/libfdt/libfdt-xen.h
@@ -34,6 +34,16 @@ static inline int __init fdt_prop_as_u32(
     return 0;
 }
 
+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;
+
+    *val = fdt_cell_as_u64((fdt32_t *)prop->data);
+    return 0;
+}
+
 static inline bool __init fdt_get_prop_offset(
     const void *fdt, int node, const char *name, unsigned long *offset)
 {
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 08 16:33:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 16:33:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.943109.1342013 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2Bsx-0005Lb-Lq; Tue, 08 Apr 2025 16:33:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 943109.1342013; Tue, 08 Apr 2025 16:33: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 1u2Bsx-0005LU-Gf; Tue, 08 Apr 2025 16:33:15 +0000
Received: by outflank-mailman (input) for mailman id 943109;
 Tue, 08 Apr 2025 16:33: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=23Rw=W2=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1u2Bsw-0005KN-64
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 16:33:14 +0000
Received: from NAM10-BN7-obe.outbound.protection.outlook.com
 (mail-bn7nam10on2060b.outbound.protection.outlook.com
 [2a01:111:f403:2009::60b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 284c5345-1497-11f0-9eaa-5ba50f476ded;
 Tue, 08 Apr 2025 18:33:12 +0200 (CEST)
Received: from MW4PR12MB7334.namprd12.prod.outlook.com (2603:10b6:303:219::21)
 by SA1PR12MB5615.namprd12.prod.outlook.com (2603:10b6:806:229::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.31; Tue, 8 Apr
 2025 16:33:06 +0000
Received: from MW4PR12MB7334.namprd12.prod.outlook.com
 ([fe80::2e77:557:17d5:86f8]) by MW4PR12MB7334.namprd12.prod.outlook.com
 ([fe80::2e77:557:17d5:86f8%3]) with mapi id 15.20.8606.028; Tue, 8 Apr 2025
 16:33: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: 284c5345-1497-11f0-9eaa-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=oz1MRE7guYFK5uBy8lGphrYnDJMd24EPlByX0jgF4ZYD46TonWVJnhWSLcFhLjIYAZ/bo5PgdxdKYyMGj+P4YGpXsHSDydggjyJ+USVh7Ym2p8zC3xlgLQea3qvwdTVvwsiSemz2xNXPtEr2tRMkGUcGE10GlPGdBhgP458r4gYy3E3NlV0ZZXZYZt27RgBkwq8O4teJDI7zBjdl0zBhoprNe/vE7+Wdnkzo5ACoQXIM9e+Os9mDI0bkhzoncsvHMopAbDUwBgSvIJKNwR6CZyQuKkJm58sQu5r7044EkGGFJ9dCIXG4yKi3hYDnosBDxYRfvqKTtToPDap775VT6A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=U5HMYBzBPyw+/+xhanZrfwRNnOpeY1ZmNP1ij1VuV9c=;
 b=cooyP71+DUhvBw5xMJEQSEUWTi4yKTG/Fdvv5EPxLNIiw+WKgI9dVYmEJio1a9E0zenEyo89TM/K3DfP9QdXg6zfpgA+QL8X034gcQPA9oYIOyonerK6DqvzMzQR0Si2gklmt2kN/JMgWNXLc2jS4KscH5W15rVSXMGhC3L32E/Y9Y0HyiUBmkOr10peZsmvFr2ZdI5/aD0ivzzR4/7HVoCE80AV004UMTD12K5mfwNxUFny0ftRvFKBQd6D3TlxjbQJyy6vKG2luLd7x5S1POauZNsFvRQ2FEmXYAqpTnW/AT/dzFHz8ldnMsaa2JgNvcu68EJnViZvTOACTJ/s5w==
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=U5HMYBzBPyw+/+xhanZrfwRNnOpeY1ZmNP1ij1VuV9c=;
 b=ch9spC8gRNec+iVN2dyPJaWVyzTCg9CRybgjRS60eAaUnMcKJXPHLFs39BD8dskMJ6i+XhewStOAW4KaS6DILIBnVmQQmaYLAOWitfHNZLo6HAS8WuzDM99c1sjyf8l2S0VRpBNFxPWLIROPwGkbSfKzE22B1ieoWQ/j53JuxG0=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <4f860a56-5536-455b-9490-196bfc220556@amd.com>
Date: Tue, 8 Apr 2025 17:33:02 +0100
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/7] arm/mpu: Provide access to the MPU region from the
 C code
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>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <Bertrand.Marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <20250407091430.2342709-1-luca.fancellu@arm.com>
 <20250407091430.2342709-3-luca.fancellu@arm.com>
 <0acf63c0-267e-44c0-b629-fa576307497c@amd.com>
 <1AC85CBD-02B1-4AA4-B9A3-68DFC06137AA@arm.com>
From: Ayan Kumar Halder <ayankuma@amd.com>
In-Reply-To: <1AC85CBD-02B1-4AA4-B9A3-68DFC06137AA@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO2P265CA0390.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:f::18) To MW4PR12MB7334.namprd12.prod.outlook.com
 (2603:10b6:303:219::21)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MW4PR12MB7334:EE_|SA1PR12MB5615:EE_
X-MS-Office365-Filtering-Correlation-Id: c4ed8412-b847-4135-5b2d-08dd76bb0a63
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?bVBKa1lacE16MUliMWRkWnNqdG1UM1IvbC9rR1AvMDc0TmJvdWhvUWMvSDNP?=
 =?utf-8?B?MHY4cjIrZGhMQ2VIdFpCRHFZU2hXOVRoQWwyZ1NjSXRQaTJLTjVLd3pnVkJN?=
 =?utf-8?B?M2QrYWE4Vzg3c3JzdktEbTFlS09mbXNoWmNkaGpnTlhodjM1ZW9MalFuY1ZX?=
 =?utf-8?B?NDBHaDdMWVBNWUNlUGROdE5TNUhQQkFlZFVrZWl3T05SbCtKb1p5N1ppWVhv?=
 =?utf-8?B?TjJPTXpNNzk2dUFLNkJTaEtmSXh0ZFRxMWo1Ri9CMGlxTm9XVXdNSTRCMnl5?=
 =?utf-8?B?ZjBDM0N6YjI1MHNTVU03alltUERUNDlaZWg4R3hwM096OFpUODNtMDBBWVJT?=
 =?utf-8?B?NXNnUWxXK2d0WkxtNTdKRC9UY3UwZEl2ckpPNzlDeVcxSCtyTmxlM1JJaFdJ?=
 =?utf-8?B?dGVuUjlGMkZYVTNDbE5OZ05hd0ZMYXppMHB3OTBSNXp3djkwVE9lYnQrMThY?=
 =?utf-8?B?NlgyMisveHZ1U05nY2VsVUpFRUw5OWNlUlY1UjNwaHJVVVFISW1aS3cxc3Ex?=
 =?utf-8?B?aEhmSVdsd2pRaUdDaDJYdHoxZ29tZVczYUhvMUhjaTI0NjFlSFRYbmRtdlZt?=
 =?utf-8?B?S1AxT2NxRnFwNThBN2d5M2Q3U1FjaHQyVTJwNnIvemJCSVlCNHhtVjNYcmgv?=
 =?utf-8?B?cVlWU3k3Q283VG44SlQrYk55TWRGOTVURkYvaGxwQUFLMkFKUXZRMEF3b0dC?=
 =?utf-8?B?VDVjMmRJYkZpc3NWMkNZRVBFS0xSYnlHR20vNlpWTTlyVTdaWk9TNW82S2Rn?=
 =?utf-8?B?ckNDcUpDcWd2WHVXeStTLzlnaktXNmRPNjFtdzVIWGpSNlJ2aVNVaG5rUGE4?=
 =?utf-8?B?RjRiNXRqa1BzaEtMVVZNYm5kOUpEZnJGaXFrTEdYcWMwZ3k1Y2pFTm00UDlI?=
 =?utf-8?B?c3dUQ21IYU1wZHBta2ZwWnVrUnJQWGkwaldOcXU5d0VoSGEzTEJhOVdSaWlG?=
 =?utf-8?B?YXJDRFVISmZYOXVRN2lpVE1FWDFKQ2hhSFpra3pTZDd4a3U4Y1NmNTY4bmNO?=
 =?utf-8?B?aWlVSDhRQWJUdDBubjZ2dkxjd1A2UGVrNEFNcW4yL1U1cXB5UytOajhqNlRz?=
 =?utf-8?B?Z3JOVVh0L0J2c0FzNlFtbFFCRno4YW0xMUxSNXhyV3dzVDdDVFN0US9tZmdU?=
 =?utf-8?B?eHJRR3h1WTArU3FnN1h0WWhoZVVIR3RpUFdOZjJKK0dDTytjcWR6aldnSEF2?=
 =?utf-8?B?THJoYnErdnJQZlZGNGhCZHBGa2NFNlhEcFEyWEtWSEo4Q1kzZzZBOTFDbkxG?=
 =?utf-8?B?WGxqTnQ3aEkxRkpYVFZjQzY5TlNOKzJXNldBSEdJWnlLTi90Z3RnSURTbXlP?=
 =?utf-8?B?dzlscHMwREVFekl5TDFJdVFoTzRmeS9vY0JRMDI4MGY0bFlSY2hXVEJYTnR4?=
 =?utf-8?B?dk1rVC81MmVzQ2dYbGhUZW9zWEFCNzhXVW9VU0FycHgvRnRMMzFBVE9sRzB1?=
 =?utf-8?B?M2RyUzNFMU16WlpMWGJOTUNNUlFLcW5EcXBLSVB3WFY2QlRSZlJyUUlNRHor?=
 =?utf-8?B?NjhzSU9GQXNwRmhIY1hlbWNodUthOVROTHpWbDR5MmNDQXlNR25yRjJKM0dD?=
 =?utf-8?B?VU9LQ0d2aUpBTjhwci9ieXlIOE12ejA4MmNNY3BMa1hLUDZHQTJ0NGhMNVQ2?=
 =?utf-8?B?ZWN6dWtkNjVnTXJPeFdrbWZGOFhSZFM5M1hjenBiaEFVWWZaM2tEUjBUeFAz?=
 =?utf-8?B?a1BmdFF6bUhlbDdGbTBWMUZoRGs3eGdZd3dGeXEyWUlEdEo2TmR0T25PN2Rr?=
 =?utf-8?B?Z1cyTTUrUjNxMko2T0pOREZkeGdXTFJpaDJ3V0hZZjcxSUdWN1R3eHpMTnY5?=
 =?utf-8?B?M3ZqeEhuWFpIOWhLcTdFcStGaW1WcUJzZS9yQUgvRDJHd28yQ3RTWXRxaUhw?=
 =?utf-8?Q?3gvka7qmW9LAs?=
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)(1800799024)(376014)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?WmhoSjFoQWtOQU8wak5ndnhkTWpJRkxOYmoya1ZoWEJoTWtzcXNOUlVRTXJC?=
 =?utf-8?B?L3BUMlJCV0xUeFFMN0N4RTVsQzJwSitZdXUxcmpObFllandrcmxpbm02eXFi?=
 =?utf-8?B?SzF1bEhhbjQwZEtTSStKc0JhNEVDVkRrUlB2VXIrUThRdE1RY0tGNmM3dVRk?=
 =?utf-8?B?R29rSExaaG9FZ3pjOVZCTW1aS1g4ZWVTNk8xdUY4akxENG1jTkFrcFlIYW1M?=
 =?utf-8?B?UG1wSEFjNUthaEJBMm9QQTB1eTUySjJDOXRsUTlOYTk1MkhDOFE5aU4wcTJm?=
 =?utf-8?B?bHAweENvVWVBMDZLTi9nR3FWb2hNNi9JakRORVhFL1NpQkNvdXJHWkZoZjJp?=
 =?utf-8?B?R2dIbUVhRUd6RFN3STg1cHNqaFI2aUZLM0ZHblhmQVdORGJ6VDhrZnk1cVVE?=
 =?utf-8?B?L2dMcDJ1MUhOZ01NZ0FwQ05XdG5yc0lmS3k2UjNmOFJXb2tUYkd6cE5OUTFN?=
 =?utf-8?B?ZGpKQkhkdHA2WHN2TXhvdnc3WjNBVFRJSERMTmx3c29NNmNBTk04WmhRUzRU?=
 =?utf-8?B?aFdzQ2hibVpVYVpVWE55VXZtalhaeUpsaDhKZFQ5TFV5SzRmZUYvanJsZTU0?=
 =?utf-8?B?WkxpMzNHVEhxb3hnUm01WGNWZGIwbnF5RGl4aGIvNjRkRTFJMmlxdFVVK00z?=
 =?utf-8?B?a3ZXRUZROXVudnZpR2s5Uzg5eEE4VlE0aVVDQU5pamVjZXlSK1k4VmhqVHk2?=
 =?utf-8?B?a1RQaUliOExvNVU5eVA5WldabzZjK21sa3lQdldZWnBTR1BpdUYweXFxam5L?=
 =?utf-8?B?QVlyWXNONDdBTzduVWw0VWZpVW5aOTRDQ2pTSjBzQW1yNlBDV2dFRjhWSzRD?=
 =?utf-8?B?aU5QdGlaTGhuclIvYzkzaUV0QTBFTmluQWZtdityYWFEa2VJbFBlNStjWEtK?=
 =?utf-8?B?MHo5cll1V0RDY3F3S1Zvckxzd3BpU3Q4bGlhNVlYcXVVRkQrWW1SVXZXZ0s2?=
 =?utf-8?B?N3RkdG1pNEQ0Y0MrUkhVVWFHUklqYm1oOGp2bWUydnkxR1A5cnY5QmlOR3Zz?=
 =?utf-8?B?YUd6ZG1mcnNpY09kVUpIbUZqdXNTeTdyRlBnSGRRQThiK1FFVklFam12cXNt?=
 =?utf-8?B?SzYzcWRJVmEvZTBTUHhhUVY1aDBZdTJISlk0NlBrVXRSWkJvbGhQMUk3MU02?=
 =?utf-8?B?Y1ppN2wwUmRxcTVveUJyMDlOQnhjNnloMnBIcEl0TFYxZGZOY0Z4bXBRSzhZ?=
 =?utf-8?B?SVJZd3NjT2Q4akYwZTA4SDE3QlJ4b05DemNWSEhldDZzRC9ZaGRodGRJS2pK?=
 =?utf-8?B?bVRxRUlMSU9Ic0VBL1JZSkF0R1BjcnlLV0theTJ0MWxPczBGZUl6Y1JlRnFG?=
 =?utf-8?B?WkFzaHc5VTJlenpMOFhlUlBYbmFOcTk3Y09mRkRubnlST2lRdHU0ZnRJMUlG?=
 =?utf-8?B?Z2lsV0JTVFFENTJ1Si90Uk85bzJsQ0JnSEtIazF1T08yY1VYMTJXS21LQk1X?=
 =?utf-8?B?QVBrcmVkQmlLeXV3c2p5aENRUHFWRTVnTHo3Nkt0NUdNdlplNk04TGFHcjdI?=
 =?utf-8?B?YWYrYmRpT3NoU2M2YzJic1N1eHo5a3lUNkNtenhoWUYvWXZER3M2aG9oMS9Q?=
 =?utf-8?B?YTE0cFZmSUJsTklSQW45K3dKYkpGV2dpaUlkK21jWm9ibDNEZExCNE13KzIw?=
 =?utf-8?B?LzJyd2RJY1IvSmdKQTQxWmZ2SzJvcThabm1HRHRhaXltRjdjTHRoNkFsa1BZ?=
 =?utf-8?B?UTZ6MHczcVpNL2loL2E3aXlrLzNCVGxsMHVWWk5MS1B0VU9PeGFJeXV0YklH?=
 =?utf-8?B?ZUFKTk8vZlljMjRKb1VrS3RJTzkxS3NxeEp4aWZTbUJScERXN2k1U0RSTEtV?=
 =?utf-8?B?aHpVb2M0R3VVRUNvQnd6MHZNbXZZY3ZEWm94SkhMbHFzaW1ncnpHN1Z0TFQw?=
 =?utf-8?B?OVpIdUpyN0JLN3gwZkF0WmxYcVhENUJYdU9RVHA5U081ejFhUkRRZG9uaXB4?=
 =?utf-8?B?M1pRWWNFYzRhMERUQWxPWnI3K1o3cHorQ2Y2UnVTWkp1eWZuZDhGWDlTUElo?=
 =?utf-8?B?Kzg1YS8wc2RtbWxqMHRwamlMQm1hTWk5MjhVTEJhUnhUSUFwSkhuaTBjRmlx?=
 =?utf-8?B?WnJFNFRsM25DRFI2cFEzd3ExOEMydjl5MjJDN1FZM1gvWWxwajdVK1NGbnhM?=
 =?utf-8?Q?EEKh+lmtJEaADs5uBDnG2uLor?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c4ed8412-b847-4135-5b2d-08dd76bb0a63
X-MS-Exchange-CrossTenant-AuthSource: MW4PR12MB7334.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Apr 2025 16:33:06.4971
 (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: MnU9HjIdxntzPEe4o/YojYcp64y9x+ZAoXV+bDC8rEiy79KBUREKJLh1/WA5VS6rAojiADO3myMmnHZ6zc2RSQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB5615


On 08/04/2025 15:29, Luca Fancellu wrote:
> Hi Ayan,
Hi Luca,
>
>> On 8 Apr 2025, at 15:02, Ayan Kumar Halder <ayankuma@amd.com> wrote:
>>
>> Hi Luca,
>>
>>> +static void prepare_selector(uint8_t sel)
>>> +{
>>> +    /*
>>> +     * {read,write}_protection_region works using the direct access to the 0..15
>>> +     * regions, so in order to save the isb() overhead, change the PRSELR_EL2
>>> +     * only when needed, so when the upper 4 bits of the selector will change.
>>> +     */
>>> +    sel &= 0xF0U;
>>> +    if ( READ_SYSREG(PRSELR_EL2) != sel )
>>> +    {
>>> +        WRITE_SYSREG(sel, PRSELR_EL2);
>>> +        isb();
>>> +    }
>> This needs to be arm64 specific. Refer ARM DDI 0600A.d ID120821
>>
>> G1.3.19  PRBAR<n>_EL2, /* I guess this is what you are following */
>>
>> Provides access to the base address for the MPU region determined by the value of 'n' and
>> PRSELR_EL2.REGION as PRSELR_EL2.REGION<7:4>:n.
>>
>>
>> Whereas for arm32 . Refer ARM DDI 0568A.c ID110520
>>
>> E2.2.3 HPRBAR<n>,
>>
>> Provides access to the base addresses for the first 32 defined EL2 MPU regions.
>>
>> /* Here we do not need to use HPRSELR for region selection */
>>
>>
>> If you want to make the code similar between arm32 and arm64, then I can suggest you can use these registers.
>>
>> G1.3.17 PRBAR_EL2
>>
>> Provides access to the base addresses for the EL2 MPU region. PRSELR_EL2.REGION determines
>> which MPU region is selected.
>>
>> E2.2.2 HPRBAR
>>
>> Provides indirect access to the base address of the EL2 MPU region currently defined by
>> HPRSELR.
>>
>> Let me know if it makes sense.
>>
>> - Ayan
> Ok I didin’t get that before, what do you think if I modify the code as in this diff (not tested):
>
> diff --git a/xen/arch/arm/mpu/mm.c b/xen/arch/arm/mpu/mm.c
> index fe05c8097155..1bc6d7a77296 100644
> --- a/xen/arch/arm/mpu/mm.c
> +++ b/xen/arch/arm/mpu/mm.c
> @@ -58,19 +58,21 @@ static void __init __maybe_unused build_assertions(void)
>       BUILD_BUG_ON(PAGE_SIZE != SZ_4K);
>   }
>   
> -static void prepare_selector(uint8_t sel)
> +static void prepare_selector(uint8_t *sel)
>   {
> +    uint8_t cur_sel = *sel;
>       /*
>        * {read,write}_protection_region works using the direct access to the 0..15
>        * regions, so in order to save the isb() overhead, change the PRSELR_EL2
>        * only when needed, so when the upper 4 bits of the selector will change.
>        */
> -    sel &= 0xF0U;
> -    if ( READ_SYSREG(PRSELR_EL2) != sel )
> +    cur_sel &= 0xF0U;
> +    if ( READ_SYSREG(PRSELR_EL2) != cur_sel )
>       {
> -        WRITE_SYSREG(sel, PRSELR_EL2);
> +        WRITE_SYSREG(cur_sel, PRSELR_EL2);
>           isb();
>       }
> +    *sel = *sel & 0xFU;
>   }
>   
>   /*
> @@ -102,7 +104,7 @@ void read_protection_region(pr_t *pr_read, uint8_t sel)
>        */
>       prepare_selector(sel);
>   
> -    switch ( sel & 0xFU )
> +    switch ( sel )
>       {
>           GENERATE_READ_PR_REG_CASE(0, pr_read);
>           GENERATE_READ_PR_REG_CASE(1, pr_read);
> @@ -140,7 +142,7 @@ void write_protection_region(const pr_t *pr_write, uint8_t sel)
>        */
>       prepare_selector(sel);
>   
> -    switch ( sel & 0xFU )
> +    switch ( sel )
>       {
>           GENERATE_WRITE_PR_REG_CASE(0, pr_write);
>           GENERATE_WRITE_PR_REG_CASE(1, pr_write);
>
> And later you will use some #ifdef CONFIG_ARM_32 inside prepare_selector() to check
> that the code is passing up to the max supported region or panic.
> And in {read,write}_protection_region() you could add some #ifdef CONFIG_ARM_32 to add
> the case generators for regions from 16 to 23 since R52 can address them directly.
>
> What do you think?

I got this diff working as it is for R82. This looks much lesser code

diff --git a/xen/arch/arm/mpu/mm.c b/xen/arch/arm/mpu/mm.c
index fe05c80971..63627c85dc 100644
--- a/xen/arch/arm/mpu/mm.c
+++ b/xen/arch/arm/mpu/mm.c
@@ -28,23 +28,19 @@ DECLARE_BITMAP(xen_mpumap_mask, MAX_MPU_REGIONS);
  /* EL2 Xen MPU memory region mapping table. */
  pr_t xen_mpumap[MAX_MPU_REGIONS];

-/* The following are needed for the case generator with num==0 */
-#define PRBAR0_EL2 PRBAR_EL2
-#define PRLAR0_EL2 PRLAR_EL2
-
  #define GENERATE_WRITE_PR_REG_CASE(num, 
pr)                                 \
      case num: \
{ \
-        WRITE_SYSREG(pr->prbar.bits & ~MPU_REGION_RES0, 
PRBAR##num##_EL2);  \
-        WRITE_SYSREG(pr->prlar.bits & ~MPU_REGION_RES0, 
PRLAR##num##_EL2);  \
+        WRITE_SYSREG(pr->prbar.bits & ~MPU_REGION_RES0, PRBAR_EL2);  \
+        WRITE_SYSREG(pr->prlar.bits & ~MPU_REGION_RES0, PRLAR_EL2);  \
break; \
      }

  #define GENERATE_READ_PR_REG_CASE(num, pr)                      \
      case num:                                                   \
      {                                                           \
-        pr->prbar.bits = READ_SYSREG(PRBAR##num##_EL2);         \
-        pr->prlar.bits = READ_SYSREG(PRLAR##num##_EL2);         \
+        pr->prbar.bits = READ_SYSREG(PRBAR_EL2);         \
+        pr->prlar.bits = READ_SYSREG(PRLAR_EL2);         \
          break;                                                  \
      }

@@ -65,7 +61,6 @@ static void prepare_selector(uint8_t sel)
       * regions, so in order to save the isb() overhead, change the 
PRSELR_EL2
       * only when needed, so when the upper 4 bits of the selector will 
change.
       */
-    sel &= 0xF0U;
      if ( READ_SYSREG(PRSELR_EL2) != sel )
      {
          WRITE_SYSREG(sel, PRSELR_EL2);

Please give it a try to see if it works at your end.


And then, the code can be reduced further as

void read_protection_region(pr_t *pr_read, uint8_t sel)
{
     /*
      * Before accessing EL2 MPU region register PRBAR_EL2/PRLAR_EL2,
      * make sure PRSELR_EL2 is set, as it determines which MPU region
      * is selected.
      */
     prepare_selector(sel);

     pr_read->prbar.bits = READ_SYSREG(PRBAR_EL2);

     pr_read->prlar.bits = READ_SYSREG(PRLAR_EL2);

}

The same can be done for write_protection_region(...)

- Ayan

>
> Cheers,
> Luca
>
>
>
>


From xen-devel-bounces@lists.xenproject.org Tue Apr 08 16:49:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 16:49:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.943135.1342022 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2C87-0004Oc-0K; Tue, 08 Apr 2025 16:48:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 943135.1342022; Tue, 08 Apr 2025 16:48: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 1u2C86-0004OV-T8; Tue, 08 Apr 2025 16:48:54 +0000
Received: by outflank-mailman (input) for mailman id 943135;
 Tue, 08 Apr 2025 16:48: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=wetR=W2=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1u2C85-0004OP-EK
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 16:48:53 +0000
Received: from EUR05-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur05on2060f.outbound.protection.outlook.com
 [2a01:111:f403:2613::60f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 57645cce-1499-11f0-9eaa-5ba50f476ded;
 Tue, 08 Apr 2025 18:48:47 +0200 (CEST)
Received: from CWLP265CA0309.GBRP265.PROD.OUTLOOK.COM (2603:10a6:401:5d::33)
 by AM8PR08MB5764.eurprd08.prod.outlook.com (2603:10a6:20b:1d2::22) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.28; Tue, 8 Apr
 2025 16:48:44 +0000
Received: from AM3PEPF00009BA1.eurprd04.prod.outlook.com
 (2603:10a6:401:5d:cafe::f1) by CWLP265CA0309.outlook.office365.com
 (2603:10a6:401:5d::33) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8606.35 via Frontend Transport; Tue,
 8 Apr 2025 16:48:44 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AM3PEPF00009BA1.mail.protection.outlook.com (10.167.16.26) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8606.22
 via Frontend Transport; Tue, 8 Apr 2025 16:48:44 +0000
Received: from DB7PR08MB2987.eurprd08.prod.outlook.com (2603:10a6:5:1c::25) by
 VE1PR08MB5712.eurprd08.prod.outlook.com (2603:10a6:800:1a8::5) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.8606.35; Tue, 8 Apr 2025 16:48:10 +0000
Received: from DB7PR08MB2987.eurprd08.prod.outlook.com
 ([fe80::d53f:b16d:70a5:8668]) by DB7PR08MB2987.eurprd08.prod.outlook.com
 ([fe80::d53f:b16d:70a5:8668%4]) with mapi id 15.20.8606.029; Tue, 8 Apr 2025
 16:48: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: 57645cce-1499-11f0-9eaa-5ba50f476ded
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=lbHyqgdaOq3M1EvhvlAyfcEYs3TCaB7idoYtIOxyBPYSdTxGa0+Yc/tqTpNQNmsj86mFjLvXsMtY4MHtTw0IwmoevmCfR788R8VkNlhQ+DUSivQZeZzWT357+0leS7y0iDngj5FHBlPM3ZfKbWodPk3EZ0Prr4Yq1tD2afH5RwjU/5dCRKrwlWUVNRVRzG4Iajg6OYNPSZB9iaS0ypwqK7pQwGSq/sSGcITf0xdoaevgAaUyQsvLn0OJWvlHSXVcqaG4ra4ek3JoCjmMrwAMdOM4XIaXBv1vC5B0jOpFcyK7AlExr1e+IHOWzF5bExf5VRLtACDafwCJ9do1o2xohA==
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=C6Pp9KzJTE8dExpoLZhAL/6alg3HrjlasVcZjOahRYo=;
 b=nlWYC9mci2B4HNVamVvL6ch/m9BwkO3Kx4ZYs4xpuOv/cINpb/Ebb9Svm4RMSUPEw3FCkzjV/RGJ0U6ThWRgF9ircoOMWOjCkVVvJF6ZVZj6gtcxin4rnypX15/EYRA0djhVqMXOkEsiVRCAAzKu4U3G5E5+PFqOCz+qXJRR5WlQc40JwDqzbRaKttCUoRRWH0BDK7c3Wju93grSAiLxiJEpjOfWM6avcgg4Bpg/l4oOcezUYJEBwOrkRQ3XM+xYadgv+UCMp0bW1oC10xBAFZJ4B5go70v287zkmYEvk3kMU6DXyOcvQo0yX2yjvEe7mEqQX27fW5d0wRMFGVrusg==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=permerror (sender ip
 is 4.158.2.129) smtp.rcpttodomain=amd.com smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=C6Pp9KzJTE8dExpoLZhAL/6alg3HrjlasVcZjOahRYo=;
 b=o78Hww303udD50InP9mAYGkXxx0Fr1YuqU51M3ShX4g4qcVIYNHrTEASVPpebsuMSbs8U8l+fVU1ciDydRfZ/wpnZnX9OznKuEYXPqOtH/PHe9wTHdfEytvvfXiPq+uJpOKBtLpBN0Yj1wofh477ch/CURMzlkewDBKI0LvmmC4=
X-MS-Exchange-Authentication-Results: spf=permerror (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: PermError (protection.outlook.com: domain of arm.com used an
 invalid SPF mechanism)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=wNJQDNTkVy+GOwPWnQE4w0npWoMsSxpzLfB9CURKW279YJdXMpysI53rxSmJVhh7p06ZNv0fEUfVmCjqPfCwO512Ipn8b5YHse+PmoI6/zeIopI0ioZ1ym4NX0ldIozqKdP/O2JoVHjUKY1ZFT3CY5Lmw5oHGeIKnUso/N8hfUVX1LAPkIGbirUvvetAlTtayYYld63zM3CIvShDN5t+b9FVrK8cBUTlPPLwqrgXpxt3PD9++TNQ2Y3FY0HFCOMf4q+XH0uPu/GtAGc5qkXLG3I3nNTdd0kywIMLWatuEVkD3sxsocRHzOjP7VcE/vwdL2Gj0N0gTT2Lcf4Jhom5og==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=C6Pp9KzJTE8dExpoLZhAL/6alg3HrjlasVcZjOahRYo=;
 b=RKIG4+9amHcByq9DUl18iZu6PrIhdr4qZu217U5cwjg2Zb3Rk/F0GGa69RU04jZvxbMtEnpaJoEWfCMqAn7d7PvMdweciAyb1uBi4Rx+YE7s6TW7fg/MrPJKZUOxmDx0y/v/Ur+NBBQis2D8iPc23Ght4RnwG/ZrOV0V97VbfYe4+xpdKsqhG8ig1PSMdFqmHoCORAaxAGlIZAuLzD3Vl8HHuYDQzVptzD03x6krXtkQ9fB/FWVWdYsrWJJiW0cP51vZHm3OxQH0NwQmL7mzLU33Bh08XXjq2mzn0HCaKujfW/8LWYWfDEZAWY+hKy5nwXViKs4BroUrK5RyXfGDUg==
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=C6Pp9KzJTE8dExpoLZhAL/6alg3HrjlasVcZjOahRYo=;
 b=o78Hww303udD50InP9mAYGkXxx0Fr1YuqU51M3ShX4g4qcVIYNHrTEASVPpebsuMSbs8U8l+fVU1ciDydRfZ/wpnZnX9OznKuEYXPqOtH/PHe9wTHdfEytvvfXiPq+uJpOKBtLpBN0Yj1wofh477ch/CURMzlkewDBKI0LvmmC4=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Ayan Kumar Halder <ayankuma@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 v2 2/7] arm/mpu: Provide access to the MPU region from the
 C code
Thread-Topic: [PATCH v2 2/7] arm/mpu: Provide access to the MPU region from
 the C code
Thread-Index: AQHbp52Ro+Yg+pQClU+WnJSxei+hH7OZzl8AgAAHm4CAACKVAIAABC6A
Date: Tue, 8 Apr 2025 16:48:10 +0000
Message-ID: <40C7A4DC-0216-4981-A501-AFDA0E8671DD@arm.com>
References: <20250407091430.2342709-1-luca.fancellu@arm.com>
 <20250407091430.2342709-3-luca.fancellu@arm.com>
 <0acf63c0-267e-44c0-b629-fa576307497c@amd.com>
 <1AC85CBD-02B1-4AA4-B9A3-68DFC06137AA@arm.com>
 <4f860a56-5536-455b-9490-196bfc220556@amd.com>
In-Reply-To: <4f860a56-5536-455b-9490-196bfc220556@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.400.131.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DB7PR08MB2987:EE_|VE1PR08MB5712:EE_|AM3PEPF00009BA1:EE_|AM8PR08MB5764:EE_
X-MS-Office365-Filtering-Correlation-Id: 50406d55-a971-41fa-3ee5-08dd76bd396d
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?K044S2RVWGl5blNzL1l6MUtRMzhLSHRHZHpRMFo4RGxiNFBkMWpjMGVMMHYv?=
 =?utf-8?B?L3lkcWNFUWRMMHBwL01reWdtV0pGS2ZRUEdVaUE1VnM3SjhENE1xN1JhWnJB?=
 =?utf-8?B?dUlNeCt2aW1qOVp0RDRwbThOU0NFWDNzT3kvYzhNWWJtV29XcEFaMHFsVFVh?=
 =?utf-8?B?dFl6Y2VJRnAyOU9MZ1ZPMlM5Z1JWa2loWjFjeFVDTTFaM2djeHhTVUg2Y0NP?=
 =?utf-8?B?b2xxamNMdXdVRVhTa0hZdEZmSHBJdVVvTXBra1Z4MXNzRE9SNFVwL243QitZ?=
 =?utf-8?B?WUlxN2Joa3lyUS9WT3E1aG5TRHdBU2dYajc1TWF3MzBtdEIyaDkvamxkWVAr?=
 =?utf-8?B?dTE3T0ppQXh4dTgrK05jbGdaZmI4RTU2blFQM01DSEkyeDhwM0VoUUJtcGI1?=
 =?utf-8?B?TzVwZU1hVUs3VXFjZnJ2U0N4Y2VsWlc5YW1nRWtzYUxOWFF4eTVFYVp6eW1B?=
 =?utf-8?B?Q2svY0JPZldPdzVvYytJK3kzeEQyMUpRU0lxRFJQK3Yrc0lEamw5YklUKzRQ?=
 =?utf-8?B?Z2tTaENOQWtHMzV2RHFBQXVoVk9BUHhhK1VsQVhwdkNYb0UrSGtPRVBqUjFE?=
 =?utf-8?B?K2l3b0VnaU02LzJaVFk1WHB4M0FITkpGRGxVcTQvV1ZVTUJzS0VJenNXM1Z0?=
 =?utf-8?B?WnZIejdBeTdYeEpXQk5DUCt0MFVCV01lTWNIQUhSZ1R4eUEwTVJ5WEwwQXIr?=
 =?utf-8?B?THJtbkorR0tIclZmMjhaQnluaVkyQnNGeDdPNjhCOWJZTERZc0xiUU16VW5Y?=
 =?utf-8?B?ZVFQMGNUdGU5L1A1WDhGNG00YzFPa3hLVXRGdUxoVTE5cmRRY3p3UlUvY3Z3?=
 =?utf-8?B?WVBLblZ2eFhDbU02eG1FMmZVK1dJRW0rY3FmNlcwOXdMRVlaaHFGRnNzY3ZY?=
 =?utf-8?B?czdzUGZMd0JPd3Roc01qWm02dmJKYklpem5hZ0lLSk5tTXFhS1A5UERQdFBy?=
 =?utf-8?B?YTZCcHRXcDNSSGhocjZyQnUwTXA3L2lKdkdlcit2b05SNTZrWEwyNWl2bk5Y?=
 =?utf-8?B?N1pZUDBBdVJhMlRmczR4aWM3UFpWT3pHcWdCdDUrRjdzd21mWlVyUi9rSVov?=
 =?utf-8?B?VEtINGtzV1RBSjE2TW1sVS9IL1lnUWVMVjI5eXdTdW5hZHgxVVVlRDh5MGpl?=
 =?utf-8?B?YjMwaFFIemlpMjA2WnNXUmVKVS81b0kvOGZmR3hSNjdsY0p1RzZZR2liU3k5?=
 =?utf-8?B?SzBHMGljQVNwZ3N3OWxPSm1saHp1K1M1c0NwUVhHMTFIZUJ2VHhwbTYrZGVi?=
 =?utf-8?B?ZzJPb2ZGb2xJNURuWVZCeHBFako2dEZBNVl2WDF1aTdzaEFUeFNVU3pxT042?=
 =?utf-8?B?N250M3RXbit5MW9rMnlZSjRnbDd2cUV6TUV1aWFTMS8xQXk5UkpnRG1oZWQv?=
 =?utf-8?B?YmVXMU1ueGNzR01rRFBBMFd2dU5KQ0dRb1R4Sm45bk5mSzRha0J4MTBuaWps?=
 =?utf-8?B?cXJGcVpVdzgxV3V4OGFudldPcUxBOXRGeHROWnFkaER0VUIvVXNRQ2M3UzVZ?=
 =?utf-8?B?TzhHSlZkVi93OTRmdGpxLzRXZ1pHUnhXMnYxUjRRL1NpV1lreVlTb0Vld09w?=
 =?utf-8?B?QWlCNG1aUy9Xc3NjUEV5aGNibWJidEhnQjl5akFKb0lHQ3Jtb25mNkdsYTNz?=
 =?utf-8?B?a0svMGZ6ZzdWYlZpZ2k4RzY2Z1VMR3RpTURMbmFxSVdza3pMbGIxbVY2VlEw?=
 =?utf-8?B?VHEzb0FVNnpjTDduemRJZDlwSGVqUTk2bWd4OXp4R3pYaVdwbHdPUFVwQ2k2?=
 =?utf-8?B?S0gvM2NIVmQyNWpPaStnMHRlSFczbk8vbkdHZWJldFZtSmxXT1plS0VnYkNw?=
 =?utf-8?B?UzRlYTFQRDZRcFkwQkhhL0tOQ3IxeFRkczhJZEtmTHhaTHFLd2lRaHJqVTlK?=
 =?utf-8?B?dTJEYjZ5NklKQldMUDBNanZiOWNPUlhFcm8yRXU1aFNXTDdZa0o0bjJsNWRq?=
 =?utf-8?B?dSt2ZzRQdldOZlo0dmFhbDRRaWY1NmVlT2o1aFRTK3czSnJCNmhZSWhhVk81?=
 =?utf-8?B?SkN5c3M2K2RnPT0=?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB7PR08MB2987.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: <6F695A5AB295DC4893A68664ED88111E@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR08MB5712
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AM3PEPF00009BA1.eurprd04.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	0582f394-833a-4582-ca65-08dd76bd2543
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|82310400026|35042699022|14060799003|36860700013|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?TnRhWmF6RkhzdXowa1ZvVmVaZjhkWEFhRmtTVWYrN2VPTHZWSTRMZ090Z2ow?=
 =?utf-8?B?L0ZNUmZhcTNheW90ZysrdlRjYWZVVEEweFlEY2kwZXlVd0ZPZzJDTktpbjkx?=
 =?utf-8?B?N0VIQkNXeERJZnNiVmFGMXlCcFVBOHJ1djFqZ3RGU2M5L2lFYXMwNTZ6NWlO?=
 =?utf-8?B?ZFRNenpGSVl0UTROUHNQSHdGSXpLTjJXZVkxMGpUQWZoUkQveGRlMmczeWs3?=
 =?utf-8?B?cDV6MEpPVTlXbmxYRHcrWDlpYTNMaUs5amo2VlNXaUR2c0tnMGpaOHFZQ3pT?=
 =?utf-8?B?d2tiK21KUDIvRUZUaW1zVVo0V0Y1OExJV213R2RpUjZHK2hBRTZqSjZHcHNj?=
 =?utf-8?B?NG94UEpXYTFSS1V0TjVZd2xyQyszTGRaeEg5TTJWeFc2TXhaMUpTdFBHM25r?=
 =?utf-8?B?eEdkVmpranU4YlUxOVl1aDc0aGQ5ellMa2JGRXdlRzZYYXdVU0dDMGRVUmhr?=
 =?utf-8?B?akM2ekpPQjhvUmFYWjV0UDhubDhKUGwvNExFcXROd0VPRVdHUHVid1pMcGYy?=
 =?utf-8?B?Zk83U0pGT214ZDZjQzJla1FPM0pkZU13VjBHQXc3WXo4Q2g2TGI0S3lqRzVr?=
 =?utf-8?B?c0U2ZFBsZFV3WHd6eUVlZkxGOHZOTm9CclBKdEFwamlBL2VibHFydXAwUUZT?=
 =?utf-8?B?SC9nSVRBZG9VZENHRy93ZkJ4THZPOXcvMWtTZU5rWlpFVEJVd0dZYW5BNDF4?=
 =?utf-8?B?aVpMQTZpT2dJWGl3OEJTL3N3NUIwc2ZNNC9pTVhLMGE4cytVL3ZjVEMvUG4y?=
 =?utf-8?B?Vm1NbGwwb2RTMjE0Q0p1Y3VJMU1CTUlaTk5hVncrazJQYXl1ang2QktkbTh1?=
 =?utf-8?B?dEVSbFJ5WEVZdUJhMzhXZXNHTWQ5bkJCTXA2NFJ6dVczZmc5djZyT2libVlP?=
 =?utf-8?B?Slc0aG5rL0tnZVdZblBweVJ1Tkl1dlUrYkpwd3NPdGd6Vmp6UU5KZVRwMTh2?=
 =?utf-8?B?YmVRM1FCSWE1QTVPSlN5Wm53VUpXMXZkWURIY1hxcG1KQ25xOUQrazExVXlG?=
 =?utf-8?B?Mms1QUh3NkJvanN6Mk9iRHRFMWpiNFVqRStkRFAzL2RZMU5pWjQwdHF3d0Na?=
 =?utf-8?B?UmVTU2pVQ0JoNDBjS0pvSjhxam1BK0VlVnVnbXlVTWJlU05jcUhhM3JIUnFo?=
 =?utf-8?B?S2NPdlBTcjdtckZFcm8zdUE5VEJwRjR2dlBBc21kaDZxZkRhcW5JVXg2bjlr?=
 =?utf-8?B?U1pQbU9BMnJQelNpcExLbEZKR0JYbkNIMVJPbE1iUWU3K2RwUUZ1bzNFa09z?=
 =?utf-8?B?TkNMV2x0ZEphQnZvUDRha2M3TnRINU50cUI1WVl3Wm9uNW1sb2x0aTRNUzQr?=
 =?utf-8?B?QS9UNGRlZklka0xZd1ZheVZnRXRaaGdKT05UT1RmbzhCampXK1VVUDhwSmNB?=
 =?utf-8?B?ZmxqaXJWMDl2RVRmWDRBNENGS1gzQ2lPTG5mOEZLb3dobEZIUndpMmh1Tmpp?=
 =?utf-8?B?ZExOYUZWOUVIb3lxdDVtUm01OUMwWXpMT2hKcGZhd05XSVp3V1BJeWptcnlY?=
 =?utf-8?B?MWV0N1FTcWw2MnBhVXcvN3haZ1Zzekczd1R1dlpWbGdzZ0JoNmNTb3ZpQXdQ?=
 =?utf-8?B?L0tycFNBbVR3ZVowSFYvMDV2WWtZMytQTmpiN0lDSEhpYld4ajFiaExrMjVH?=
 =?utf-8?B?L1ZScmMzV1RqYW5rcFZJVmJNY1J1L21oNzc2elBnNmZGclVHenN6SnB4NUJP?=
 =?utf-8?B?eDZybG1QZk1oOHVJSXdrRUVCRi9UTGNVWkVuTFhkR1ZIOTRNWUxCNG1uYmZv?=
 =?utf-8?B?ckVBZkdySlBqOVJCV0RKTWhHRXdiamFBeWkvb2cyb3N6TnBZUXQ4ZnN4RnI0?=
 =?utf-8?B?NVowYnZXaUkzaVIweUJBeEdqczg1WWlybEQva25OdFNRdWxMNTFFbklhVEZ2?=
 =?utf-8?B?c3JON3ZuWVBNa0xOMCtZZjQ1NTR2bFZDZzBxYXVaZ0lkc2hFNVBUbTNwaTZm?=
 =?utf-8?B?bmFQUUg0QjV5Q0c0clBnR2FlbUVqNU83QklMZ2VXNHpHTXU0Nm1WS00xQ1Ry?=
 =?utf-8?B?SGtxa0gvVTJ3PT0=?=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(82310400026)(35042699022)(14060799003)(36860700013)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Apr 2025 16:48:44.0054
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 50406d55-a971-41fa-3ee5-08dd76bd396d
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AM3PEPF00009BA1.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM8PR08MB5764

DQoNCj4gT24gOCBBcHIgMjAyNSwgYXQgMTc6MzMsIEF5YW4gS3VtYXIgSGFsZGVyIDxheWFua3Vt
YUBhbWQuY29tPiB3cm90ZToNCj4gDQo+IA0KPiBPbiAwOC8wNC8yMDI1IDE1OjI5LCBMdWNhIEZh
bmNlbGx1IHdyb3RlOg0KPj4gSGkgQXlhbiwNCj4gSGkgTHVjYSwNCj4+IA0KPj4+IE9uIDggQXBy
IDIwMjUsIGF0IDE1OjAyLCBBeWFuIEt1bWFyIEhhbGRlciA8YXlhbmt1bWFAYW1kLmNvbT4gd3Jv
dGU6DQo+Pj4gDQo+Pj4gSGkgTHVjYSwNCj4+PiANCj4+Pj4gK3N0YXRpYyB2b2lkIHByZXBhcmVf
c2VsZWN0b3IodWludDhfdCBzZWwpDQo+Pj4+ICt7DQo+Pj4+ICsgICAgLyoNCj4+Pj4gKyAgICAg
KiB7cmVhZCx3cml0ZX1fcHJvdGVjdGlvbl9yZWdpb24gd29ya3MgdXNpbmcgdGhlIGRpcmVjdCBh
Y2Nlc3MgdG8gdGhlIDAuLjE1DQo+Pj4+ICsgICAgICogcmVnaW9ucywgc28gaW4gb3JkZXIgdG8g
c2F2ZSB0aGUgaXNiKCkgb3ZlcmhlYWQsIGNoYW5nZSB0aGUgUFJTRUxSX0VMMg0KPj4+PiArICAg
ICAqIG9ubHkgd2hlbiBuZWVkZWQsIHNvIHdoZW4gdGhlIHVwcGVyIDQgYml0cyBvZiB0aGUgc2Vs
ZWN0b3Igd2lsbCBjaGFuZ2UuDQo+Pj4+ICsgICAgICovDQo+Pj4+ICsgICAgc2VsICY9IDB4RjBV
Ow0KPj4+PiArICAgIGlmICggUkVBRF9TWVNSRUcoUFJTRUxSX0VMMikgIT0gc2VsICkNCj4+Pj4g
KyAgICB7DQo+Pj4+ICsgICAgICAgIFdSSVRFX1NZU1JFRyhzZWwsIFBSU0VMUl9FTDIpOw0KPj4+
PiArICAgICAgICBpc2IoKTsNCj4+Pj4gKyAgICB9DQo+Pj4gVGhpcyBuZWVkcyB0byBiZSBhcm02
NCBzcGVjaWZpYy4gUmVmZXIgQVJNIERESSAwNjAwQS5kIElEMTIwODIxDQo+Pj4gDQo+Pj4gRzEu
My4xOSAgUFJCQVI8bj5fRUwyLCAvKiBJIGd1ZXNzIHRoaXMgaXMgd2hhdCB5b3UgYXJlIGZvbGxv
d2luZyAqLw0KPj4+IA0KPj4+IFByb3ZpZGVzIGFjY2VzcyB0byB0aGUgYmFzZSBhZGRyZXNzIGZv
ciB0aGUgTVBVIHJlZ2lvbiBkZXRlcm1pbmVkIGJ5IHRoZSB2YWx1ZSBvZiAnbicgYW5kDQo+Pj4g
UFJTRUxSX0VMMi5SRUdJT04gYXMgUFJTRUxSX0VMMi5SRUdJT048Nzo0PjpuLg0KPj4+IA0KPj4+
IA0KPj4+IFdoZXJlYXMgZm9yIGFybTMyIC4gUmVmZXIgQVJNIERESSAwNTY4QS5jIElEMTEwNTIw
DQo+Pj4gDQo+Pj4gRTIuMi4zIEhQUkJBUjxuPiwNCj4+PiANCj4+PiBQcm92aWRlcyBhY2Nlc3Mg
dG8gdGhlIGJhc2UgYWRkcmVzc2VzIGZvciB0aGUgZmlyc3QgMzIgZGVmaW5lZCBFTDIgTVBVIHJl
Z2lvbnMuDQo+Pj4gDQo+Pj4gLyogSGVyZSB3ZSBkbyBub3QgbmVlZCB0byB1c2UgSFBSU0VMUiBm
b3IgcmVnaW9uIHNlbGVjdGlvbiAqLw0KPj4+IA0KPj4+IA0KPj4+IElmIHlvdSB3YW50IHRvIG1h
a2UgdGhlIGNvZGUgc2ltaWxhciBiZXR3ZWVuIGFybTMyIGFuZCBhcm02NCwgdGhlbiBJIGNhbiBz
dWdnZXN0IHlvdSBjYW4gdXNlIHRoZXNlIHJlZ2lzdGVycy4NCj4+PiANCj4+PiBHMS4zLjE3IFBS
QkFSX0VMMg0KPj4+IA0KPj4+IFByb3ZpZGVzIGFjY2VzcyB0byB0aGUgYmFzZSBhZGRyZXNzZXMg
Zm9yIHRoZSBFTDIgTVBVIHJlZ2lvbi4gUFJTRUxSX0VMMi5SRUdJT04gZGV0ZXJtaW5lcw0KPj4+
IHdoaWNoIE1QVSByZWdpb24gaXMgc2VsZWN0ZWQuDQo+Pj4gDQo+Pj4gRTIuMi4yIEhQUkJBUg0K
Pj4+IA0KPj4+IFByb3ZpZGVzIGluZGlyZWN0IGFjY2VzcyB0byB0aGUgYmFzZSBhZGRyZXNzIG9m
IHRoZSBFTDIgTVBVIHJlZ2lvbiBjdXJyZW50bHkgZGVmaW5lZCBieQ0KPj4+IEhQUlNFTFIuDQo+
Pj4gDQo+Pj4gTGV0IG1lIGtub3cgaWYgaXQgbWFrZXMgc2Vuc2UuDQo+Pj4gDQo+Pj4gLSBBeWFu
DQo+PiBPayBJIGRpZGlu4oCZdCBnZXQgdGhhdCBiZWZvcmUsIHdoYXQgZG8geW91IHRoaW5rIGlm
IEkgbW9kaWZ5IHRoZSBjb2RlIGFzIGluIHRoaXMgZGlmZiAobm90IHRlc3RlZCk6DQo+PiANCj4+
IGRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vbXB1L21tLmMgYi94ZW4vYXJjaC9hcm0vbXB1L21t
LmMNCj4+IGluZGV4IGZlMDVjODA5NzE1NS4uMWJjNmQ3YTc3Mjk2IDEwMDY0NA0KPj4gLS0tIGEv
eGVuL2FyY2gvYXJtL21wdS9tbS5jDQo+PiArKysgYi94ZW4vYXJjaC9hcm0vbXB1L21tLmMNCj4+
IEBAIC01OCwxOSArNTgsMjEgQEAgc3RhdGljIHZvaWQgX19pbml0IF9fbWF5YmVfdW51c2VkIGJ1
aWxkX2Fzc2VydGlvbnModm9pZCkNCj4+ICAgICAgQlVJTERfQlVHX09OKFBBR0VfU0laRSAhPSBT
Wl80Syk7DQo+PiAgfQ0KPj4gIC1zdGF0aWMgdm9pZCBwcmVwYXJlX3NlbGVjdG9yKHVpbnQ4X3Qg
c2VsKQ0KPj4gK3N0YXRpYyB2b2lkIHByZXBhcmVfc2VsZWN0b3IodWludDhfdCAqc2VsKQ0KPj4g
IHsNCj4+ICsgICAgdWludDhfdCBjdXJfc2VsID0gKnNlbDsNCj4+ICAgICAgLyoNCj4+ICAgICAg
ICoge3JlYWQsd3JpdGV9X3Byb3RlY3Rpb25fcmVnaW9uIHdvcmtzIHVzaW5nIHRoZSBkaXJlY3Qg
YWNjZXNzIHRvIHRoZSAwLi4xNQ0KPj4gICAgICAgKiByZWdpb25zLCBzbyBpbiBvcmRlciB0byBz
YXZlIHRoZSBpc2IoKSBvdmVyaGVhZCwgY2hhbmdlIHRoZSBQUlNFTFJfRUwyDQo+PiAgICAgICAq
IG9ubHkgd2hlbiBuZWVkZWQsIHNvIHdoZW4gdGhlIHVwcGVyIDQgYml0cyBvZiB0aGUgc2VsZWN0
b3Igd2lsbCBjaGFuZ2UuDQo+PiAgICAgICAqLw0KPj4gLSAgICBzZWwgJj0gMHhGMFU7DQo+PiAt
ICAgIGlmICggUkVBRF9TWVNSRUcoUFJTRUxSX0VMMikgIT0gc2VsICkNCj4+ICsgICAgY3VyX3Nl
bCAmPSAweEYwVTsNCj4+ICsgICAgaWYgKCBSRUFEX1NZU1JFRyhQUlNFTFJfRUwyKSAhPSBjdXJf
c2VsICkNCj4+ICAgICAgew0KPj4gLSAgICAgICAgV1JJVEVfU1lTUkVHKHNlbCwgUFJTRUxSX0VM
Mik7DQo+PiArICAgICAgICBXUklURV9TWVNSRUcoY3VyX3NlbCwgUFJTRUxSX0VMMik7DQo+PiAg
ICAgICAgICBpc2IoKTsNCj4+ICAgICAgfQ0KPj4gKyAgICAqc2VsID0gKnNlbCAmIDB4RlU7DQo+
PiAgfQ0KPj4gICAgLyoNCj4+IEBAIC0xMDIsNyArMTA0LDcgQEAgdm9pZCByZWFkX3Byb3RlY3Rp
b25fcmVnaW9uKHByX3QgKnByX3JlYWQsIHVpbnQ4X3Qgc2VsKQ0KPj4gICAgICAgKi8NCj4+ICAg
ICAgcHJlcGFyZV9zZWxlY3RvcihzZWwpOw0KPj4gIC0gICAgc3dpdGNoICggc2VsICYgMHhGVSAp
DQo+PiArICAgIHN3aXRjaCAoIHNlbCApDQo+PiAgICAgIHsNCj4+ICAgICAgICAgIEdFTkVSQVRF
X1JFQURfUFJfUkVHX0NBU0UoMCwgcHJfcmVhZCk7DQo+PiAgICAgICAgICBHRU5FUkFURV9SRUFE
X1BSX1JFR19DQVNFKDEsIHByX3JlYWQpOw0KPj4gQEAgLTE0MCw3ICsxNDIsNyBAQCB2b2lkIHdy
aXRlX3Byb3RlY3Rpb25fcmVnaW9uKGNvbnN0IHByX3QgKnByX3dyaXRlLCB1aW50OF90IHNlbCkN
Cj4+ICAgICAgICovDQo+PiAgICAgIHByZXBhcmVfc2VsZWN0b3Ioc2VsKTsNCj4+ICAtICAgIHN3
aXRjaCAoIHNlbCAmIDB4RlUgKQ0KPj4gKyAgICBzd2l0Y2ggKCBzZWwgKQ0KPj4gICAgICB7DQo+
PiAgICAgICAgICBHRU5FUkFURV9XUklURV9QUl9SRUdfQ0FTRSgwLCBwcl93cml0ZSk7DQo+PiAg
ICAgICAgICBHRU5FUkFURV9XUklURV9QUl9SRUdfQ0FTRSgxLCBwcl93cml0ZSk7DQo+PiANCj4+
IEFuZCBsYXRlciB5b3Ugd2lsbCB1c2Ugc29tZSAjaWZkZWYgQ09ORklHX0FSTV8zMiBpbnNpZGUg
cHJlcGFyZV9zZWxlY3RvcigpIHRvIGNoZWNrDQo+PiB0aGF0IHRoZSBjb2RlIGlzIHBhc3Npbmcg
dXAgdG8gdGhlIG1heCBzdXBwb3J0ZWQgcmVnaW9uIG9yIHBhbmljLg0KPj4gQW5kIGluIHtyZWFk
LHdyaXRlfV9wcm90ZWN0aW9uX3JlZ2lvbigpIHlvdSBjb3VsZCBhZGQgc29tZSAjaWZkZWYgQ09O
RklHX0FSTV8zMiB0byBhZGQNCj4+IHRoZSBjYXNlIGdlbmVyYXRvcnMgZm9yIHJlZ2lvbnMgZnJv
bSAxNiB0byAyMyBzaW5jZSBSNTIgY2FuIGFkZHJlc3MgdGhlbSBkaXJlY3RseS4NCj4+IA0KPj4g
V2hhdCBkbyB5b3UgdGhpbms/DQo+IA0KPiBJIGdvdCB0aGlzIGRpZmYgd29ya2luZyBhcyBpdCBp
cyBmb3IgUjgyLiBUaGlzIGxvb2tzIG11Y2ggbGVzc2VyIGNvZGUNCj4gDQo+IGRpZmYgLS1naXQg
YS94ZW4vYXJjaC9hcm0vbXB1L21tLmMgYi94ZW4vYXJjaC9hcm0vbXB1L21tLmMNCj4gaW5kZXgg
ZmUwNWM4MDk3MS4uNjM2MjdjODVkYyAxMDA2NDQNCj4gLS0tIGEveGVuL2FyY2gvYXJtL21wdS9t
bS5jDQo+ICsrKyBiL3hlbi9hcmNoL2FybS9tcHUvbW0uYw0KPiBAQCAtMjgsMjMgKzI4LDE5IEBA
IERFQ0xBUkVfQklUTUFQKHhlbl9tcHVtYXBfbWFzaywgTUFYX01QVV9SRUdJT05TKTsNCj4gIC8q
IEVMMiBYZW4gTVBVIG1lbW9yeSByZWdpb24gbWFwcGluZyB0YWJsZS4gKi8NCj4gIHByX3QgeGVu
X21wdW1hcFtNQVhfTVBVX1JFR0lPTlNdOw0KPiANCj4gLS8qIFRoZSBmb2xsb3dpbmcgYXJlIG5l
ZWRlZCBmb3IgdGhlIGNhc2UgZ2VuZXJhdG9yIHdpdGggbnVtPT0wICovDQo+IC0jZGVmaW5lIFBS
QkFSMF9FTDIgUFJCQVJfRUwyDQo+IC0jZGVmaW5lIFBSTEFSMF9FTDIgUFJMQVJfRUwyDQo+IC0N
Cj4gICNkZWZpbmUgR0VORVJBVEVfV1JJVEVfUFJfUkVHX0NBU0UobnVtLCBwcikgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcDQo+ICAgICAgY2FzZSBudW06IFwNCj4geyBcDQo+IC0g
ICAgICAgIFdSSVRFX1NZU1JFRyhwci0+cHJiYXIuYml0cyAmIH5NUFVfUkVHSU9OX1JFUzAsIFBS
QkFSIyNudW0jI19FTDIpOyAgXA0KPiAtICAgICAgICBXUklURV9TWVNSRUcocHItPnBybGFyLmJp
dHMgJiB+TVBVX1JFR0lPTl9SRVMwLCBQUkxBUiMjbnVtIyNfRUwyKTsgIFwNCj4gKyAgICAgICAg
V1JJVEVfU1lTUkVHKHByLT5wcmJhci5iaXRzICYgfk1QVV9SRUdJT05fUkVTMCwgUFJCQVJfRUwy
KTsgIFwNCj4gKyAgICAgICAgV1JJVEVfU1lTUkVHKHByLT5wcmxhci5iaXRzICYgfk1QVV9SRUdJ
T05fUkVTMCwgUFJMQVJfRUwyKTsgIFwNCj4gYnJlYWs7IFwNCj4gICAgICB9DQo+IA0KPiAgI2Rl
ZmluZSBHRU5FUkFURV9SRUFEX1BSX1JFR19DQVNFKG51bSwgcHIpICAgICAgICAgICAgICAgICAg
ICAgIFwNCj4gICAgICBjYXNlIG51bTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcDQo+ICAgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiAtICAgICAgICBwci0+cHJiYXIuYml0
cyA9IFJFQURfU1lTUkVHKFBSQkFSIyNudW0jI19FTDIpOyAgICAgICAgIFwNCj4gLSAgICAgICAg
cHItPnBybGFyLmJpdHMgPSBSRUFEX1NZU1JFRyhQUkxBUiMjbnVtIyNfRUwyKTsgICAgICAgICBc
DQo+ICsgICAgICAgIHByLT5wcmJhci5iaXRzID0gUkVBRF9TWVNSRUcoUFJCQVJfRUwyKTsgICAg
ICAgICBcDQo+ICsgICAgICAgIHByLT5wcmxhci5iaXRzID0gUkVBRF9TWVNSRUcoUFJMQVJfRUwy
KTsgICAgICAgICBcDQo+ICAgICAgICAgIGJyZWFrOyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiAgICAgIH0NCj4gDQo+IEBAIC02NSw3ICs2MSw2
IEBAIHN0YXRpYyB2b2lkIHByZXBhcmVfc2VsZWN0b3IodWludDhfdCBzZWwpDQo+ICAgICAgICog
cmVnaW9ucywgc28gaW4gb3JkZXIgdG8gc2F2ZSB0aGUgaXNiKCkgb3ZlcmhlYWQsIGNoYW5nZSB0
aGUgUFJTRUxSX0VMMg0KPiAgICAgICAqIG9ubHkgd2hlbiBuZWVkZWQsIHNvIHdoZW4gdGhlIHVw
cGVyIDQgYml0cyBvZiB0aGUgc2VsZWN0b3Igd2lsbCBjaGFuZ2UuDQo+ICAgICAgICovDQo+IC0g
ICAgc2VsICY9IDB4RjBVOw0KPiAgICAgIGlmICggUkVBRF9TWVNSRUcoUFJTRUxSX0VMMikgIT0g
c2VsICkNCj4gICAgICB7DQo+ICAgICAgICAgIFdSSVRFX1NZU1JFRyhzZWwsIFBSU0VMUl9FTDIp
Ow0KPiANCj4gUGxlYXNlIGdpdmUgaXQgYSB0cnkgdG8gc2VlIGlmIGl0IHdvcmtzIGF0IHlvdXIg
ZW5kLg0KPiANCj4gDQo+IEFuZCB0aGVuLCB0aGUgY29kZSBjYW4gYmUgcmVkdWNlZCBmdXJ0aGVy
IGFzDQo+IA0KPiB2b2lkIHJlYWRfcHJvdGVjdGlvbl9yZWdpb24ocHJfdCAqcHJfcmVhZCwgdWlu
dDhfdCBzZWwpDQo+IHsNCj4gICAgIC8qDQo+ICAgICAgKiBCZWZvcmUgYWNjZXNzaW5nIEVMMiBN
UFUgcmVnaW9uIHJlZ2lzdGVyIFBSQkFSX0VMMi9QUkxBUl9FTDIsDQo+ICAgICAgKiBtYWtlIHN1
cmUgUFJTRUxSX0VMMiBpcyBzZXQsIGFzIGl0IGRldGVybWluZXMgd2hpY2ggTVBVIHJlZ2lvbg0K
PiAgICAgICogaXMgc2VsZWN0ZWQuDQo+ICAgICAgKi8NCj4gICAgIHByZXBhcmVfc2VsZWN0b3Io
c2VsKTsNCj4gDQo+ICAgICBwcl9yZWFkLT5wcmJhci5iaXRzID0gUkVBRF9TWVNSRUcoUFJCQVJf
RUwyKTsNCj4gDQo+ICAgICBwcl9yZWFkLT5wcmxhci5iaXRzID0gUkVBRF9TWVNSRUcoUFJMQVJf
RUwyKTsNCj4gDQo+IH0NCj4gDQo+IFRoZSBzYW1lIGNhbiBiZSBkb25lIGZvciB3cml0ZV9wcm90
ZWN0aW9uX3JlZ2lvbiguLi4pDQo+IA0KPiAtIEF5YW4NCg0KVGhlIHBvaW50IG9mIHRoZSBjb2Rl
IHdhcyB0byBkb27igJl0IGlzc3VlIGFuIGlzYigpIGV2ZXJ5IHRpbWUgd2UgY2hhbmdlIHRoZSBz
ZWxlY3RvciwNCm9mIGNvdXJzZSB0aGUgY29kZSB3b3VsZCBiZSBlYXNpZXIgb3RoZXJ3aXNlLCBi
dXQgZG8gd2Ugd2FudCB0byBkbyB0aGF0Pw0KDQoNCj4gDQo+PiANCj4+IENoZWVycywNCj4+IEx1
Y2ENCj4+IA0KPj4gDQo+PiANCj4+IA0KDQo=


From xen-devel-bounces@lists.xenproject.org Tue Apr 08 17:02:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 17:02:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.943149.1342032 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2CLW-0001p2-3t; Tue, 08 Apr 2025 17:02:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 943149.1342032; Tue, 08 Apr 2025 17:02:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2CLW-0001ov-17; Tue, 08 Apr 2025 17:02:46 +0000
Received: by outflank-mailman (input) for mailman id 943149;
 Tue, 08 Apr 2025 17:02:45 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=23Rw=W2=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1u2CLV-0001op-BR
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 17:02:45 +0000
Received: from NAM02-BN1-obe.outbound.protection.outlook.com
 (mail-bn1nam02on20612.outbound.protection.outlook.com
 [2a01:111:f403:2407::612])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 48eac431-149b-11f0-9eaa-5ba50f476ded;
 Tue, 08 Apr 2025 19:02:43 +0200 (CEST)
Received: from MW4PR12MB7334.namprd12.prod.outlook.com (2603:10b6:303:219::21)
 by MN0PR12MB6295.namprd12.prod.outlook.com (2603:10b6:208:3c0::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.31; Tue, 8 Apr
 2025 17:02:39 +0000
Received: from MW4PR12MB7334.namprd12.prod.outlook.com
 ([fe80::2e77:557:17d5:86f8]) by MW4PR12MB7334.namprd12.prod.outlook.com
 ([fe80::2e77:557:17d5:86f8%3]) with mapi id 15.20.8606.028; Tue, 8 Apr 2025
 17:02: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: 48eac431-149b-11f0-9eaa-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=KFu1JiI9uK9ljKZ5dZ9dl3p7iu7IKw0zelhT1NfCfUDFmi/vslChW1oZ+VKXrFCrSDWwzC6zSi+XNNpLL9Vaa9gCNNaMXAM+XpoaToP7fltrJsMR5rMHugWw1/3L9mToPjOz0wUUSjcZTQbMcBrTCgoTG244ET3bJnDUHvdy6RbSldGJUiBx5UrrqV36msGAyWUNhLVbWsoDhtqaiwwhh/ge3cXBnxN5VbLjrqfPBOdOb1NpnS3pojZ1dwF1ErQmVCV6whuZw6rs8LGrEHuQfxhTHsF7JiqV2QuXRrfG54KZ5zc3qMK+Ui/Et7L6rVUS9BmNdF2VT1m9Nc+9T+4Skw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=HnS1IJovQYGyEjnnsH9DW6R/xXtZ4IoPKRjgU3AgBUU=;
 b=J1vDCkWdJezGbRWjag9XVT4fmqMmQjZyasnrl3PyFY+X6ZJmdTVegN25sB1idVwl7sw0xV4jdPnNyYat8eQ94kaxMe0tjBhEmjt0rPpKMcQhR7inseODzKRu55MYOITap/BUeDYHgTDuL9/xpMxPHe2NbzEvbQxhfXtX/nbFow+u7eCU6vFzgsQWsVw3hn1Mc9y/d1lTYse7DsEo8F4DeKK+snhNhJGB0XQWO3hKT0YqXokdZRoDEhRmynjJC3+lZ+jWqNQcueIZwO2o2wp5OAtvHem8CM79U750KDl49mO15j+tAW+ngE4C3yWD/jB4TDPnMjCXbtcwtM+1upYWWw==
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=HnS1IJovQYGyEjnnsH9DW6R/xXtZ4IoPKRjgU3AgBUU=;
 b=Hi8QR2QXeLW7lNB/K9WlikqgcwIVyWImAEUGQOFv2h4tnRsGt3U/K0e2rd4bPwZ8maf3zOfJUiYi2fT+mmdeWsmBIOofZwG2bztKaz5CB9HBbzHATiLdxTTffmQRo5OOLHp0L0HiPVpW2re0aDXD+S7S+rmIcdvRWeuOvcyFeTc=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <9f637d98-c8f8-49e0-9f0a-002cdfefc296@amd.com>
Date: Tue, 8 Apr 2025 18:02:34 +0100
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/7] arm/mpu: Provide access to the MPU region from the
 C code
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>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <Bertrand.Marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <20250407091430.2342709-1-luca.fancellu@arm.com>
 <20250407091430.2342709-3-luca.fancellu@arm.com>
 <0acf63c0-267e-44c0-b629-fa576307497c@amd.com>
 <1AC85CBD-02B1-4AA4-B9A3-68DFC06137AA@arm.com>
 <4f860a56-5536-455b-9490-196bfc220556@amd.com>
 <40C7A4DC-0216-4981-A501-AFDA0E8671DD@arm.com>
From: Ayan Kumar Halder <ayankuma@amd.com>
In-Reply-To: <40C7A4DC-0216-4981-A501-AFDA0E8671DD@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0647.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:296::22) To MW4PR12MB7334.namprd12.prod.outlook.com
 (2603:10b6:303:219::21)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MW4PR12MB7334:EE_|MN0PR12MB6295:EE_
X-MS-Office365-Filtering-Correlation-Id: e22588b7-2e12-4741-8ab1-08dd76bf2af6
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?Tnd1SmxhS0IyZ3RBajluc3hZcG5MeE9LemRwTng1aGpaR0VHS21uS04wRTBt?=
 =?utf-8?B?S2wyQjdHZGRZRGwxMDNoMFVFdWJIYW9ZcWM5NERJNGY2cGJFRUpiRm8xZnhk?=
 =?utf-8?B?TmhJb0hJeTc4Ykh4VUtVZWtDemJ1YWM1UUt5b1dLc1hueVp6WnFvdk9GK2Zn?=
 =?utf-8?B?NkJyTkN0Rkh3U3B4ZG83V1JFSVUzTkNrQVNCSFFENk83dGhjNmVxbndNR0Iy?=
 =?utf-8?B?QXUrazJvZDE3OU5WR2lsbTYrZHRDMlhHRDhEejFhS3RUZURRWTAzcmJreEtu?=
 =?utf-8?B?Z21VaTVuNitPS1QzOVJQMXNGeTZ5c1BlQWFzbEMrT3lMQ3hWZHAzUHg2Ky80?=
 =?utf-8?B?WW0yc3dHN1l4YVFmTWYwd05seTE5Zy9BR2FqcU55UDZ5dXZyM08vQjhTL1Y5?=
 =?utf-8?B?TEFlQ3lXUG1OV1dPY2w1SWlNVjR1YjNQZWFUeFdOczR1ZkdENk1BNHZvbUUw?=
 =?utf-8?B?WXVrQ1RkWHFSbHlRMW53RkFvL0FVckVSSWFUZ2gyVllNem9KZ0VORDZxWkp0?=
 =?utf-8?B?c1ZnUjdBcUFHdFMrRW9JbENCcUd3cFJ2bGtuYTB3cUNrdE51Y0FGMFN3UHp4?=
 =?utf-8?B?a3NMWUxISDdHMnZoV1hTSHVTZ1Q0dkFXVlVZU2xMcVpyK1ZRMmtEZURWUzZ3?=
 =?utf-8?B?WU9iQWFGSDRId01reEtPT1k2dDQ4WnRxaHlPTzZJVFVwK2YrR0ZtYjJKUG5u?=
 =?utf-8?B?L0FINUJyNW56Sldyd1VMWHhJbVZVUUF4Z2tyTEFOMUt3MVVFM0srdnFORGE4?=
 =?utf-8?B?THRRVjNLTzBHVFlyV0R4UjRid2JkcVhjdk5vQVlJUnRWa3pLeEE1S3IrZEN0?=
 =?utf-8?B?UjhrcElLUlFSOUhlL1lJUWhaTFdDWHhGZk1ZTm4xSEYzdU1mV0Q0QTdHOW4y?=
 =?utf-8?B?cEhGK2I4cWdyYnZ5QzlqQTJvdWphdG5SNmx6d1RINEdOOHQ4RjNQZFpIRFMy?=
 =?utf-8?B?NCtXRjNYakFoUUdORmFZZXRjUXBxREZGSjhxdThFcS9kQmlQNGFrUzh5MnN0?=
 =?utf-8?B?RVRlUXhzZ3dFR2MwZGxZMnA5SkFTMGpYcUhEanhWekd5VSs4ejc2YTNSQVh1?=
 =?utf-8?B?RnBuQUFNeU84dU84dHM1UHpwdGJaY2RNLzd2VXNlaGsyQXBBVnNlbzB5eUp6?=
 =?utf-8?B?ZXR1QVZvUjRUU2hNa3JhZE1zSUtiYk5yRUd1WkNYemNkcjhiRWpnWU9vaWUw?=
 =?utf-8?B?S1hCMlBQOFZ1OCt6ak5lY2c3ZUpuVDV0QkJNN2xBcjVSWHBSa2V1emlvQTkr?=
 =?utf-8?B?a1dMVHk0ZU50K0xSckVHTXlaenp5bkZJMkVDNks4MWNZSU5GTGEwTWJ1TFpz?=
 =?utf-8?B?MkNjR2JMVE5aVHJ3bm5udzdxMXAwQXNWejg0MGZWUWdWMzltVkNYcVNrQTcz?=
 =?utf-8?B?YnRBRnVpVUpXQTM5aEEzcUlDRDkwWThtN2ZTVUMxM2Y4V3VaQ0dLOExWNWpR?=
 =?utf-8?B?K05HRWlWWXQzVEdMQWc3Yk5yZHE5VlA4cDNrRUlEaWo5bVhoOFdNRUkxZm9C?=
 =?utf-8?B?WFZxczZ5WjVDSU5zS0RlbVhualNOLythM0lOblNVQkJPOGpBTnJ1bFVlYk4w?=
 =?utf-8?B?R29vQitHU2Iwa3c0K1pJWTlrVDFWQkF5QkZ3bEpLYzN3MFBxeGJtdzYvVm9T?=
 =?utf-8?B?Rm9XY0tRSkRnTTFibjFiZ2lxWFBhSkQ1UDRlSElZcGcvZ29SUG9wcTBaQnVn?=
 =?utf-8?B?ZTV0M2d1OTVWRHFIcEFOTGIwK3VhMFk2UHJFN0RpcTJQNEY1N1gzeDFPNDQ4?=
 =?utf-8?B?MEw0bHVHNWpSNU8xYWVIamp6dG5rSlZEUG1Jb1dnMHo1aXBpRUlYcHVRbmc4?=
 =?utf-8?B?QndaQTBWS1NwKzhUVkphb3RiNUpybXpWakpWSVI3aFZ1UTVXMkpEZGlEMEJT?=
 =?utf-8?B?RFRUaWk3a1BwN29YbGNHWGl1RVVrSlBPVFNBZDNBMTJjZ2c9PQ==?=
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)(1800799024)(376014)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?UVlld1FsNkVDL0c2dGdSY01SYyswaHl0VDJxejJxOUNzblBlaWZLbW5pM3pT?=
 =?utf-8?B?MnovZW5YSnN5UmkxVit5SzFQa08yLzN1K2N4NnNzWHVKNEJzN1JENWJPK0ts?=
 =?utf-8?B?QUdadHZCNHFBK3Q3YVBKVGpaUFlWdGpTc2plZGlVTDhjWjVabG40REJ5S2hT?=
 =?utf-8?B?bGlxTWRlVzJmaElWUUtrbzNOZjg1NjJwUVpFVFZrQ3Z5MzYzMkZ5bWhsM3lB?=
 =?utf-8?B?UmwrMGhKUzlKQnc5RS9sbjA2NndXYUxtWXNqYmpFYUhSSit1T1lIdmNzanFY?=
 =?utf-8?B?ZUpnWEJzTjRsMFZJbVZtc3Bmemk3b3lpeXhHSWpLZ29JRTNjVk5BdnFjbU00?=
 =?utf-8?B?bHBZeUVId1Q5eWxRUS90dTRUOGZpTDB6VDg1bmFkZ0lBQ3BNSkRVT1pOUVJY?=
 =?utf-8?B?TzBRdGNGbjhoMmxhaVQ0K3V4eG81empSMUFrWWRWL085MFFpbVp0YUMwR21i?=
 =?utf-8?B?YytxeVQxTWxvcEJBazIySTVZV2pOaHhDc2RrTEd3eXphYXZwT0tyMFlrYm9S?=
 =?utf-8?B?d1JLVkdTSitLRXBGVVhMbVp3NmNRN05mL25mdldnbzVrUTdPcEhiNDlldFJT?=
 =?utf-8?B?cmRKQVY4VGlxMXpSNTFYanI1VnlaSE1OR2dTTUtvQjN5MGRhcUZlN0x2VlhK?=
 =?utf-8?B?bEIrQ2ZXUUdOVkNQZkluWUZIbndOYldSemlZVVZvS1F6M0VWM3VpR29NNEFl?=
 =?utf-8?B?OW9vWnFobmJYd0ZkOURmTkxEakVDM2NKNGJKRkwrR05Zdm04di9oSlBMK3Fw?=
 =?utf-8?B?TFNBY3BHWjQyekwydk9GL3E1SVY5L2ZmM2MyRTNESDZ0RnRjcDJ6SDFuTHR4?=
 =?utf-8?B?TG9nRFRCTmJ3cnpSckFISW4rOXhGc2l2TjVVei91N3IzZFhqZnovY3M1QkNi?=
 =?utf-8?B?dFh2RDNSWjVsQ21PaldmK3FjVDVSdXVMRUN3Z0FWK1JFeFRsZlBpalREbDdZ?=
 =?utf-8?B?TGVNdWxzdVdtUXlqcmMzalpheER6d0hra1IvWmtMNldRVU1BQVB2NXhNMGEw?=
 =?utf-8?B?NVIxNm91em1iSFdqU0hXcmoxa01mN2J3SXhJUWJoVHNLcmdlZkNITEFhSDFE?=
 =?utf-8?B?RFRGOTVxajN3Z1VLSFdoQUlnb1grQ1laYjJDMEJLRmp2RXRjSXdhWjRIMXV6?=
 =?utf-8?B?MmRvNDZrSEFzVU5sTGNPNUxudUVyTUUxaTV3RUlrdCtlejluT214M2FhMis4?=
 =?utf-8?B?M2NKWWNXVUdjVytyeGRlK3IzVk9IL3hQaE1iUS9zaDVOcFRJYW1yN3VQVFJH?=
 =?utf-8?B?c0V1d2J4WWliaE4wVzgxaytmeEpTTUZPb3R4Y0F3MWkyZDAxb2ZaOWcyMXBs?=
 =?utf-8?B?Q2h4Vy9Ob3p0VHhIdzNSZm9mODlVSEFvYnZvU0lnQ2ZUTFd4NFJOMnNrOUxN?=
 =?utf-8?B?bnJhUnBVSk9vd2h0aUFYek01MHVYRGpTWkFhVW9qT2hKU24zQ3I1RjZEN3dr?=
 =?utf-8?B?RXNwQ29DWVp4UklzS1lUdXdobkxwdDRXb3E4UXBqMkJmWEpmbWo1aHRsQWFL?=
 =?utf-8?B?NXlHc25LcW5MOWc2T3NpdnlwNkU5dllXVStvTStoVGVmZE1aUTBHTWVVdFBP?=
 =?utf-8?B?V2xnQjBRekI1bWxsS0M5ajB2RmVua3RPSVlPVytqdUxyczFHRDFsMVcvWTBJ?=
 =?utf-8?B?eUxtRUhxdFFiUTFBU3cwcmdYMVNhZ0F3RUNQN2N6UWl0SHBOWWg0TGhwQnBr?=
 =?utf-8?B?Mzl3MC9HdWlNSW4va24vN0VxVE1XMmY2L1VtOG0yRWZYek9QalVSRVlyVTBw?=
 =?utf-8?B?c3FjK0xubUsyT09BUGdmUnAyL3FDMXRVc1o5OGxGM2EwNzFtZ2p0MzdSZFNO?=
 =?utf-8?B?MDFZcXlzaThzN0FGdzFUa3NQSGptMWZpbU9QZEtoUVVCNDRkemx6REU4ZG5Z?=
 =?utf-8?B?MnV4cURyWnZVYmsyYzR4dzViK0ZINkZmRkhzY1JUckxKeDlDL0RQZDl6cFpE?=
 =?utf-8?B?T0Yyb1JBV3BFcEM3WXhrMnJiRFRCY2V3NHQ2QmlWZWZmWTk2WEw0ZHEwNC9j?=
 =?utf-8?B?akhpRkQ4RjU4SitJc2xyMWR6OXhGWlR0UVlaSGVkUlNGL3VEZmdJb05rbFB4?=
 =?utf-8?B?WFQ1cFhjWk45NGp2K21HYTNxNytMLzQ5SEp4MmIzalJBWXBWN2xGMThRcTRM?=
 =?utf-8?Q?4YtG5G5bFmpSWcufD/wnq4g5L?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e22588b7-2e12-4741-8ab1-08dd76bf2af6
X-MS-Exchange-CrossTenant-AuthSource: MW4PR12MB7334.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Apr 2025 17:02:39.1397
 (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: p6YhQwS1bBgGir21hxIdF5dWbF/asRo3oVN90lFiLlwGVBwHJ5ee3f9eTefsXrzcpR3jQgj3iRFGd4hbKX5cFQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN0PR12MB6295

Hi,

On 08/04/2025 17:48, Luca Fancellu wrote:
>
>> On 8 Apr 2025, at 17:33, Ayan Kumar Halder <ayankuma@amd.com> wrote:
>>
>>
>> On 08/04/2025 15:29, Luca Fancellu wrote:
>>> Hi Ayan,
>> Hi Luca,
>>>> On 8 Apr 2025, at 15:02, Ayan Kumar Halder <ayankuma@amd.com> wrote:
>>>>
>>>> Hi Luca,
>>>>
>>>>> +static void prepare_selector(uint8_t sel)
>>>>> +{
>>>>> +    /*
>>>>> +     * {read,write}_protection_region works using the direct access to the 0..15
>>>>> +     * regions, so in order to save the isb() overhead, change the PRSELR_EL2
>>>>> +     * only when needed, so when the upper 4 bits of the selector will change.
>>>>> +     */
>>>>> +    sel &= 0xF0U;
>>>>> +    if ( READ_SYSREG(PRSELR_EL2) != sel )
>>>>> +    {
>>>>> +        WRITE_SYSREG(sel, PRSELR_EL2);
>>>>> +        isb();
>>>>> +    }
>>>> This needs to be arm64 specific. Refer ARM DDI 0600A.d ID120821
>>>>
>>>> G1.3.19  PRBAR<n>_EL2, /* I guess this is what you are following */
>>>>
>>>> Provides access to the base address for the MPU region determined by the value of 'n' and
>>>> PRSELR_EL2.REGION as PRSELR_EL2.REGION<7:4>:n.
>>>>
>>>>
>>>> Whereas for arm32 . Refer ARM DDI 0568A.c ID110520
>>>>
>>>> E2.2.3 HPRBAR<n>,
>>>>
>>>> Provides access to the base addresses for the first 32 defined EL2 MPU regions.
>>>>
>>>> /* Here we do not need to use HPRSELR for region selection */
>>>>
>>>>
>>>> If you want to make the code similar between arm32 and arm64, then I can suggest you can use these registers.
>>>>
>>>> G1.3.17 PRBAR_EL2
>>>>
>>>> Provides access to the base addresses for the EL2 MPU region. PRSELR_EL2.REGION determines
>>>> which MPU region is selected.
>>>>
>>>> E2.2.2 HPRBAR
>>>>
>>>> Provides indirect access to the base address of the EL2 MPU region currently defined by
>>>> HPRSELR.
>>>>
>>>> Let me know if it makes sense.
>>>>
>>>> - Ayan
>>> Ok I didin’t get that before, what do you think if I modify the code as in this diff (not tested):
>>>
>>> diff --git a/xen/arch/arm/mpu/mm.c b/xen/arch/arm/mpu/mm.c
>>> index fe05c8097155..1bc6d7a77296 100644
>>> --- a/xen/arch/arm/mpu/mm.c
>>> +++ b/xen/arch/arm/mpu/mm.c
>>> @@ -58,19 +58,21 @@ static void __init __maybe_unused build_assertions(void)
>>>       BUILD_BUG_ON(PAGE_SIZE != SZ_4K);
>>>   }
>>>   -static void prepare_selector(uint8_t sel)
>>> +static void prepare_selector(uint8_t *sel)
>>>   {
>>> +    uint8_t cur_sel = *sel;
>>>       /*
>>>        * {read,write}_protection_region works using the direct access to the 0..15
>>>        * regions, so in order to save the isb() overhead, change the PRSELR_EL2
>>>        * only when needed, so when the upper 4 bits of the selector will change.
>>>        */
>>> -    sel &= 0xF0U;
>>> -    if ( READ_SYSREG(PRSELR_EL2) != sel )
>>> +    cur_sel &= 0xF0U;
>>> +    if ( READ_SYSREG(PRSELR_EL2) != cur_sel )
>>>       {
>>> -        WRITE_SYSREG(sel, PRSELR_EL2);
>>> +        WRITE_SYSREG(cur_sel, PRSELR_EL2);
>>>           isb();
>>>       }
>>> +    *sel = *sel & 0xFU;
>>>   }
>>>     /*
>>> @@ -102,7 +104,7 @@ void read_protection_region(pr_t *pr_read, uint8_t sel)
>>>        */
>>>       prepare_selector(sel);
>>>   -    switch ( sel & 0xFU )
>>> +    switch ( sel )
>>>       {
>>>           GENERATE_READ_PR_REG_CASE(0, pr_read);
>>>           GENERATE_READ_PR_REG_CASE(1, pr_read);
>>> @@ -140,7 +142,7 @@ void write_protection_region(const pr_t *pr_write, uint8_t sel)
>>>        */
>>>       prepare_selector(sel);
>>>   -    switch ( sel & 0xFU )
>>> +    switch ( sel )
>>>       {
>>>           GENERATE_WRITE_PR_REG_CASE(0, pr_write);
>>>           GENERATE_WRITE_PR_REG_CASE(1, pr_write);
>>>
>>> And later you will use some #ifdef CONFIG_ARM_32 inside prepare_selector() to check
>>> that the code is passing up to the max supported region or panic.
>>> And in {read,write}_protection_region() you could add some #ifdef CONFIG_ARM_32 to add
>>> the case generators for regions from 16 to 23 since R52 can address them directly.
>>>
>>> What do you think?
>> I got this diff working as it is for R82. This looks much lesser code
>>
>> diff --git a/xen/arch/arm/mpu/mm.c b/xen/arch/arm/mpu/mm.c
>> index fe05c80971..63627c85dc 100644
>> --- a/xen/arch/arm/mpu/mm.c
>> +++ b/xen/arch/arm/mpu/mm.c
>> @@ -28,23 +28,19 @@ DECLARE_BITMAP(xen_mpumap_mask, MAX_MPU_REGIONS);
>>   /* EL2 Xen MPU memory region mapping table. */
>>   pr_t xen_mpumap[MAX_MPU_REGIONS];
>>
>> -/* The following are needed for the case generator with num==0 */
>> -#define PRBAR0_EL2 PRBAR_EL2
>> -#define PRLAR0_EL2 PRLAR_EL2
>> -
>>   #define GENERATE_WRITE_PR_REG_CASE(num, pr)                                 \
>>       case num: \
>> { \
>> -        WRITE_SYSREG(pr->prbar.bits & ~MPU_REGION_RES0, PRBAR##num##_EL2);  \
>> -        WRITE_SYSREG(pr->prlar.bits & ~MPU_REGION_RES0, PRLAR##num##_EL2);  \
>> +        WRITE_SYSREG(pr->prbar.bits & ~MPU_REGION_RES0, PRBAR_EL2);  \
>> +        WRITE_SYSREG(pr->prlar.bits & ~MPU_REGION_RES0, PRLAR_EL2);  \
>> break; \
>>       }
>>
>>   #define GENERATE_READ_PR_REG_CASE(num, pr)                      \
>>       case num:                                                   \
>>       {                                                           \
>> -        pr->prbar.bits = READ_SYSREG(PRBAR##num##_EL2);         \
>> -        pr->prlar.bits = READ_SYSREG(PRLAR##num##_EL2);         \
>> +        pr->prbar.bits = READ_SYSREG(PRBAR_EL2);         \
>> +        pr->prlar.bits = READ_SYSREG(PRLAR_EL2);         \
>>           break;                                                  \
>>       }
>>
>> @@ -65,7 +61,6 @@ static void prepare_selector(uint8_t sel)
>>        * regions, so in order to save the isb() overhead, change the PRSELR_EL2
>>        * only when needed, so when the upper 4 bits of the selector will change.
>>        */
>> -    sel &= 0xF0U;
>>       if ( READ_SYSREG(PRSELR_EL2) != sel )
>>       {
>>           WRITE_SYSREG(sel, PRSELR_EL2);
>>
>> Please give it a try to see if it works at your end.
>>
>>
>> And then, the code can be reduced further as
>>
>> void read_protection_region(pr_t *pr_read, uint8_t sel)
>> {
>>      /*
>>       * Before accessing EL2 MPU region register PRBAR_EL2/PRLAR_EL2,
>>       * make sure PRSELR_EL2 is set, as it determines which MPU region
>>       * is selected.
>>       */
>>      prepare_selector(sel);
>>
>>      pr_read->prbar.bits = READ_SYSREG(PRBAR_EL2);
>>
>>      pr_read->prlar.bits = READ_SYSREG(PRLAR_EL2);
>>
>> }
>>
>> The same can be done for write_protection_region(...)
>>
>> - Ayan
> The point of the code was to don’t issue an isb() every time we change the selector,
> of course the code would be easier otherwise, but do we want to do that?

Not sure if it is beneficial as you would need to use isb() from 
region16 onwards.

If you are going to keep the code as it is, then the following needs to 
be moved to arm64 specific header as well

#define PRBAR0_EL2 PRBAR_EL2
#define PRLAR0_EL2 PRLAR_EL2

In arm32 , they have different definitions.

I could not follow your earlier snippet, can you test it and send it as 
a patch ?

- Ayan

>
>
>>> Cheers,
>>> Luca
>>>
>>>
>>>
>>>


From xen-devel-bounces@lists.xenproject.org Tue Apr 08 17:35:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 17:35:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.943174.1342046 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2Cr5-0004a1-LG; Tue, 08 Apr 2025 17:35:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 943174.1342046; Tue, 08 Apr 2025 17:35: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 1u2Cr5-0004Zu-Id; Tue, 08 Apr 2025 17:35:23 +0000
Received: by outflank-mailman (input) for mailman id 943174;
 Tue, 08 Apr 2025 17:35: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=ZXql=W2=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u2Cr4-0004Zo-FJ
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 17:35:22 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d63d180d-149f-11f0-9eaa-5ba50f476ded;
 Tue, 08 Apr 2025 19:35:20 +0200 (CEST)
Received: from [192.168.7.202] ([71.202.166.45]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 538HYKRg3088620
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NO);
 Tue, 8 Apr 2025 10:34:21 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d63d180d-149f-11f0-9eaa-5ba50f476ded
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 538HYKRg3088620
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025032001; t=1744133664;
	bh=WkvwYM1YWnU4TAJ+J/9Vt8/Lh0xsIqteV787gUNx/Oo=;
	h=Date:Subject:To:Cc:References:From:In-Reply-To:From;
	b=DGIa7MQrPXWSVvRWGj8J9I9uLnNFKLmCzMcxqp9sA7nAoJC1WJHTTBphRx8Kv8ojG
	 TFKk4S0MJqG1qE6jdToL7U6LViQMYDTnT6XmG6GZ/+eQjdbb1OSynNFMrpEtzEVoKZ
	 g0KcbVkw9oMHB5iu0Rp5BEfOt7OQlb08CtRaOpdIjsTXVHGAxBTuXCRraYO5P9wS94
	 8v73kdOA2NdbUZ2X6Zw6P5nUDUF44s5P31zcgszZbitLnPnn1PucZbcA7gNJNvVE5d
	 daoTYgTnVa8ixFIdolcOCNPBmW+yivuG8gYwjhDdkQiDgWmAvrkZdHD6C59UDRz+ez
	 9U2wrN1TZ2BKQ==
Message-ID: <3b91a47c-e453-406a-815d-67c438d73a4d@zytor.com>
Date: Tue, 8 Apr 2025 10:34:20 -0700
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH v1 01/15] x86/msr: Replace __wrmsr() with
 native_wrmsrl()
To: Ingo Molnar <mingo@kernel.org>
Cc: "H. Peter Anvin" <hpa@zytor.com>, linux-kernel@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-edac@vger.kernel.org,
        kvm@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-ide@vger.kernel.org, linux-pm@vger.kernel.org,
        bpf@vger.kernel.org, llvm@lists.linux.dev, tglx@linutronix.de,
        mingo@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com,
        x86@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com,
        peterz@infradead.org, acme@kernel.org, namhyung@kernel.org,
        mark.rutland@arm.com, alexander.shishkin@linux.intel.com,
        jolsa@kernel.org, irogers@google.com, adrian.hunter@intel.com,
        kan.liang@linux.intel.com, wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com,
        Linus Torvalds <torvalds@linux-foundation.org>
References: <20250331082251.3171276-1-xin@zytor.com>
 <20250331082251.3171276-2-xin@zytor.com> <Z-pruogreCuU66wm@gmail.com>
 <9D15DE81-2E68-4FCD-A133-4963602E18C9@zytor.com> <Z-ubVFyoOzwKhI53@gmail.com>
 <7a503d55-db41-42da-8133-4a3dbbd36c7e@zytor.com> <Z-y4pGxgiP55lpOj@gmail.com>
Content-Language: en-US
From: Xin Li <xin@zytor.com>
Autocrypt: addr=xin@zytor.com; keydata=
 xsDNBGUPz1cBDACS/9yOJGojBFPxFt0OfTWuMl0uSgpwk37uRrFPTTLw4BaxhlFL0bjs6q+0
 2OfG34R+a0ZCuj5c9vggUMoOLdDyA7yPVAJU0OX6lqpg6z/kyQg3t4jvajG6aCgwSDx5Kzg5
 Rj3AXl8k2wb0jdqRB4RvaOPFiHNGgXCs5Pkux/qr0laeFIpzMKMootGa4kfURgPhRzUaM1vy
 bsMsL8vpJtGUmitrSqe5dVNBH00whLtPFM7IbzKURPUOkRRiusFAsw0a1ztCgoFczq6VfAVu
 raTye0L/VXwZd+aGi401V2tLsAHxxckRi9p3mc0jExPc60joK+aZPy6amwSCy5kAJ/AboYtY
 VmKIGKx1yx8POy6m+1lZ8C0q9b8eJ8kWPAR78PgT37FQWKYS1uAroG2wLdK7FiIEpPhCD+zH
 wlslo2ETbdKjrLIPNehQCOWrT32k8vFNEMLP5G/mmjfNj5sEf3IOKgMTMVl9AFjsINLHcxEQ
 6T8nGbX/n3msP6A36FDfdSEAEQEAAc0WWGluIExpIDx4aW5Aenl0b3IuY29tPsLBDQQTAQgA
 NxYhBIUq/WFSDTiOvUIqv2u9DlcdrjdRBQJlD89XBQkFo5qAAhsDBAsJCAcFFQgJCgsFFgID
 AQAACgkQa70OVx2uN1HUpgv/cM2fsFCQodLArMTX5nt9yqAWgA5t1srri6EgS8W3F+3Kitge
 tYTBKu6j5BXuXaX3vyfCm+zajDJN77JHuYnpcKKr13VcZi1Swv6Jx1u0II8DOmoDYLb1Q2ZW
 v83W55fOWJ2g72x/UjVJBQ0sVjAngazU3ckc0TeNQlkcpSVGa/qBIHLfZraWtdrNAQT4A1fa
 sWGuJrChBFhtKbYXbUCu9AoYmmbQnsx2EWoJy3h7OjtfFapJbPZql+no5AJ3Mk9eE5oWyLH+
 QWqtOeJM7kKvn/dBudokFSNhDUw06e7EoVPSJyUIMbYtUO7g2+Atu44G/EPP0yV0J4lRO6EA
 wYRXff7+I1jIWEHpj5EFVYO6SmBg7zF2illHEW31JAPtdDLDHYcZDfS41caEKOQIPsdzQkaQ
 oW2hchcjcMPAfyhhRzUpVHLPxLCetP8vrVhTvnaZUo0xaVYb3+wjP+D5j/3+hwblu2agPsaE
 vgVbZ8Fx3TUxUPCAdr/p73DGg57oHjgezsDNBGUPz1gBDAD4Mg7hMFRQqlzotcNSxatlAQNL
 MadLfUTFz8wUUa21LPLrHBkUwm8RujehJrzcVbPYwPXIO0uyL/F///CogMNx7Iwo6by43KOy
 g89wVFhyy237EY76j1lVfLzcMYmjBoTH95fJC/lVb5Whxil6KjSN/R/y3jfG1dPXfwAuZ/4N
 cMoOslWkfZKJeEut5aZTRepKKF54T5r49H9F7OFLyxrC/uI9UDttWqMxcWyCkHh0v1Di8176
 jjYRNTrGEfYfGxSp+3jYL3PoNceIMkqM9haXjjGl0W1B4BidK1LVYBNov0rTEzyr0a1riUrp
 Qk+6z/LHxCM9lFFXnqH7KWeToTOPQebD2B/Ah5CZlft41i8L6LOF/LCuDBuYlu/fI2nuCc8d
 m4wwtkou1Y/kIwbEsE/6RQwRXUZhzO6llfoN96Fczr/RwvPIK5SVMixqWq4QGFAyK0m/1ap4
 bhIRrdCLVQcgU4glo17vqfEaRcTW5SgX+pGs4KIPPBE5J/ABD6pBnUUAEQEAAcLA/AQYAQgA
 JhYhBIUq/WFSDTiOvUIqv2u9DlcdrjdRBQJlD89ZBQkFo5qAAhsMAAoJEGu9DlcdrjdR4C0L
 /RcjolEjoZW8VsyxWtXazQPnaRvzZ4vhmGOsCPr2BPtMlSwDzTlri8BBG1/3t/DNK4JLuwEj
 OAIE3fkkm+UG4Kjud6aNeraDI52DRVCSx6xff3bjmJsJJMb12mWglN6LjdF6K+PE+OTJUh2F
 dOhslN5C2kgl0dvUuevwMgQF3IljLmi/6APKYJHjkJpu1E6luZec/lRbetHuNFtbh3xgFIJx
 2RpgVDP4xB3f8r0I+y6ua+p7fgOjDLyoFjubRGed0Be45JJQEn7A3CSb6Xu7NYobnxfkwAGZ
 Q81a2XtvNS7Aj6NWVoOQB5KbM4yosO5+Me1V1SkX2jlnn26JPEvbV3KRFcwV5RnDxm4OQTSk
 PYbAkjBbm+tuJ/Sm+5Yp5T/BnKz21FoCS8uvTiziHj2H7Cuekn6F8EYhegONm+RVg3vikOpn
 gao85i4HwQTK9/D1wgJIQkdwWXVMZ6q/OALaBp82vQ2U9sjTyFXgDjglgh00VRAHP7u1Rcu4
 l75w1xInsg==
In-Reply-To: <Z-y4pGxgiP55lpOj@gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 4/1/2025 9:10 PM, Ingo Molnar wrote:
> Yeah, I moved it over to:
> 
>    git://git.kernel.org/pub/scm/linux/kernel/git/mingo/tip.git WIP.x86/msr
> 

Hi Ingo,

Are you going to merge it into tip in this development cycle for the
v6.16 merge window?

Thanks!
     Xin


From xen-devel-bounces@lists.xenproject.org Tue Apr 08 22:40:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 22:40:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.943235.1342060 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2HcS-000612-HP; Tue, 08 Apr 2025 22:40:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 943235.1342060; Tue, 08 Apr 2025 22: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 1u2HcS-00060V-EZ; Tue, 08 Apr 2025 22:40:36 +0000
Received: by outflank-mailman (input) for mailman id 943235;
 Tue, 08 Apr 2025 22:40: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=xbCh=W2=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u2HcQ-0005LN-4N
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 22:40:35 +0000
Received: from mail-4322.protonmail.ch (mail-4322.protonmail.ch [185.70.43.22])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7a51e2f4-14ca-11f0-9eaa-5ba50f476ded;
 Wed, 09 Apr 2025 00:40:32 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7a51e2f4-14ca-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1744152030; x=1744411230;
	bh=UjDXMl9+ugJIQktlxZ67eNKFMfXzRfDw1JSboiq8CLw=;
	h=Date:To:From:Cc:Subject:Message-ID:Feedback-ID:From:To:Cc:Date:
	 Subject:Reply-To:Feedback-ID:Message-ID:BIMI-Selector:
	 List-Unsubscribe:List-Unsubscribe-Post;
	b=DJ6LYHNiQ9a1hBOQd9Fhd4dUJS2m7MgwNrbKvVUQ733ekyP5dOPCHWu/ATBVk6Uf2
	 hauTnYDENkAOaGBOGeDmq1Hm1WGFt58uXNijYcmHMx26/REirNlSm4idEhAtwMcpxw
	 Ng5XVtjFbKtSWlmmiiwSq5wrwubL68kaN1wmakBbof/dqokSMdSxyO/NlL3R4/xT9l
	 rxFlyL/TecsZgBwJEFbZiRKpyqEMIKjG9JPRalyd0NcHasTxZwZ1J+V6csJ3tDLI1g
	 O+A9EAUyxPQDPTH4WcWxilkwwWSJuh6PlBEA05jAkHNT/An9zRY2R3SeNC2rmcuszZ
	 MpRso2lwWZ8+Q==
Date: Tue, 08 Apr 2025 22:40:24 +0000
To: xen-devel@lists.xenproject.org
From: dmkhn@proton.me
Cc: andrew.cooper3@citrix.com, jbeulich@suse.com, roger.pau@citrix.com, dmukhin@ford.com
Subject: [PATCH v5] x86/domain: revisit logging in arch_domain_create()
Message-ID: <20250408224021.1579818-1-dmukhin@ford.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 11dc7081b338859f57d9690f370bdae43bd65f37
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

From: Denis Mukhin <dmukhin@ford.com>

Use %pd in all logs issued from arch_domain_create() and reword some of the
messages.

Also, expand error message in arch_domain_create() under !emulation_flags_o=
k()
case to help debugging.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
Changes since v4:
- updated wording in the messages as per v4 review
---
 xen/arch/x86/domain.c | 23 ++++++++++++++---------
 1 file changed, 14 insertions(+), 9 deletions(-)

diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index 4989600627..60d85a9b3e 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -791,13 +791,14 @@ int arch_domain_create(struct domain *d,
     {
         if ( !opt_allow_unsafe )
         {
-            printk(XENLOG_G_ERR "Xen does not allow DomU creation on this =
CPU"
-                   " for security reasons.\n");
+            printk(XENLOG_G_ERR
+                   "%pd: will not create domU on this CPU for security rea=
sons\n",
+                   d);
             return -EPERM;
         }
         printk(XENLOG_G_WARNING
-               "Dom%d may compromise security on this CPU.\n",
-               d->domain_id);
+               "%pd: may compromise security on this CPU\n",
+               d);
     }
=20
     emflags =3D config->arch.emulation_flags;
@@ -807,16 +808,20 @@ int arch_domain_create(struct domain *d,
=20
     if ( emflags & ~XEN_X86_EMU_ALL )
     {
-        printk(XENLOG_G_ERR "d%d: Invalid emulation bitmap: %#x\n",
-               d->domain_id, emflags);
+        printk(XENLOG_G_ERR
+               "%pd: invalid emulation bitmap: %#x\n",
+               d, emflags);
         return -EINVAL;
     }
=20
     if ( !emulation_flags_ok(d, emflags) )
     {
-        printk(XENLOG_G_ERR "d%d: Xen does not allow %s domain creation "
-               "with the current selection of emulators: %#x\n",
-               d->domain_id, is_hvm_domain(d) ? "HVM" : "PV", emflags);
+        printk(XENLOG_G_ERR
+               "%pd: will not create %s %sdomain with emulators: %#x\n",
+               d,
+               is_hvm_domain(d) ? "HVM" : "PV",
+               is_hardware_domain(d) ? "hardware " : "",
+               emflags);
         return -EOPNOTSUPP;
     }
     d->arch.emulation_flags =3D emflags;
--=20
2.34.1




From xen-devel-bounces@lists.xenproject.org Tue Apr 08 22:41:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 08 Apr 2025 22:41:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.943254.1342069 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2HdU-0006uj-QT; Tue, 08 Apr 2025 22:41:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 943254.1342069; Tue, 08 Apr 2025 22: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 1u2HdU-0006uc-NE; Tue, 08 Apr 2025 22:41:40 +0000
Received: by outflank-mailman (input) for mailman id 943254;
 Tue, 08 Apr 2025 22: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=xbCh=W2=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u2HdT-0005LN-A8
 for xen-devel@lists.xenproject.org; Tue, 08 Apr 2025 22:41:39 +0000
Received: from mail-24416.protonmail.ch (mail-24416.protonmail.ch
 [109.224.244.16]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a2296687-14ca-11f0-9eaa-5ba50f476ded;
 Wed, 09 Apr 2025 00:41:38 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a2296687-14ca-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1744152097; x=1744411297;
	bh=dOBBKa2L9t432R5U1Yz3Ss1+Xk9FJFVPhxFW/eIjIrE=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=dUZVlolEG081GrTKc+0I2sTSRpk8aNfjIZsNmen1w6eWIoWWI27Q7q6rahyUVO+/R
	 PYHjdMeTqecESfhR9hNuHlL/1kWPy7Uq4Ex7BFihyezgTv2T7Kx8749384qAyJm1/Z
	 tk2wjx63njGmQMEPDVUCnrBui9FmEP4Y4KdCfClrjKkVyGXFHfkKcCgBx6cHe4f9D3
	 mMRHPOUeNrzuWFU1XpZcpfSK1/JyblWJhCKT02H9IWZFugvRXUhE4eXmk3GsuQ4hSD
	 nETIVfSo9LWPmC+GdadJKDv7R5/2BlcKBwCnt9q/9jhF2mPvVwcsAzVTM33rJbpk/h
	 H27szQ6ORUrew==
Date: Tue, 08 Apr 2025 22:41:31 +0000
To: Jan Beulich <jbeulich@suse.com>
From: Denis Mukhin <dmkhn@proton.me>
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org, dmukhin@ford.com, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v4] x86/domain: revisit logging in arch_domain_create()
Message-ID: <2DS8HQG9miOxRrT8-LZJM00_UwGcB9LmB_M5OOgbqtThRhz-fqCA0oaSyUvNYIqMcIDh8gkW3n5ExQlX_D0t_dBbogGrcSDyjVADXu4s080=@proton.me>
In-Reply-To: <667775a5-48ba-47ca-8c73-eb95c35de381@suse.com>
References: <20250404232145.1252544-1-dmukhin@ford.com> <667775a5-48ba-47ca-8c73-eb95c35de381@suse.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 7d4cae77307fa6ec53f9e088711591fd90326c99
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Monday, April 7th, 2025 at 7:21 AM, Jan Beulich <jbeulich@suse.com> wrot=
e:

>
>
> On 05.04.2025 01:21, dmkhn@proton.me wrote:
>
> > --- a/xen/arch/x86/domain.c
> > +++ b/xen/arch/x86/domain.c
> > @@ -791,13 +791,14 @@ int arch_domain_create(struct domain *d,
> > {
> > if ( !opt_allow_unsafe )
> > {
> > - printk(XENLOG_G_ERR "Xen does not allow DomU creation on this CPU"
> > - " for security reasons.\n");
> > + printk(XENLOG_G_ERR
> > + "%pd: cannot create domain on this CPU due to security reasons\n",
> > + d);
> > return -EPERM;
>
>
> I was about to give an ack, but here and ...
>
> > @@ -807,16 +808,20 @@ int arch_domain_create(struct domain *d,
> >
> > if ( emflags & ~XEN_X86_EMU_ALL )
> > {
> > - printk(XENLOG_G_ERR "d%d: Invalid emulation bitmap: %#x\n",
> > - d->domain_id, emflags);
> > + printk(XENLOG_G_ERR
> > + "%pd: invalid emulation bitmap: %#x\n",
> > + d, emflags);
> > return -EINVAL;
> > }
> >
> > if ( !emulation_flags_ok(d, emflags) )
> > {
> > - printk(XENLOG_G_ERR "d%d: Xen does not allow %s domain creation "
> > - "with the current selection of emulators: %#x\n",
> > - d->domain_id, is_hvm_domain(d) ? "HVM" : "PV", emflags);
> > + printk(XENLOG_G_ERR
> > + "%pd: cannot create %s %sdomain with emulators: %#x\n",
> > + d,
> > + is_hvm_domain(d) ? "HVM" : "PV",
> > + is_hardware_domain(d) ? "hardware " : "",
> > + emflags);
> > return -EOPNOTSUPP;
> > }
>
>
> ... here I question the re-wording: Xen could very well create domains in
> these cases. It merely refuses to for one reason or another. In the
> latter case the re-wording may be kind of okay, because code elsewhere ma=
y
> need updating. In the former case, however, the situation is a pretty
> clear cut. It doesn't need to be the original wording, but minimally in
> what you suggest it needs to be "s/cannot/will not/" or some such.

I see, that makes sense. Fixed.

>
> Plus a nit: In the revision log you say "shortened message text where
> possible", yet then you swapped in "due to" for the prior "for" in the
> former of the two cases discussed here. That's clearly longer, without
> (imo) gaining us anything. Similarly it's unclear why you replaced "DomU"=
.

re: message rewording: kept "for".

re: domU: I removed it because my understanding is that w/ eventual
introduction of a split between control domain and hardware domain
there might be another change here.

Kept "domU".

>
> Jan


From xen-devel-bounces@lists.xenproject.org Wed Apr 09 01:44:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 01:44:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.943284.1342079 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2KUa-0003GT-K7; Wed, 09 Apr 2025 01:44:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 943284.1342079; Wed, 09 Apr 2025 01:44: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 1u2KUa-0003GM-Gx; Wed, 09 Apr 2025 01:44:40 +0000
Received: by outflank-mailman (input) for mailman id 943284;
 Wed, 09 Apr 2025 01:44: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=Ywx6=W3=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u2KUY-0003GG-1F
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 01:44:39 +0000
Received: from mail-4316.protonmail.ch (mail-4316.protonmail.ch [185.70.43.16])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 30779c2f-14e4-11f0-9eaa-5ba50f476ded;
 Wed, 09 Apr 2025 03:44:35 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 30779c2f-14e4-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1744163073; x=1744422273;
	bh=io2VXQI5T9Mt2gr1Vhw8LRnxkxkaGSQljWXaswdn3X8=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=EJMJN0fWZatwDZ6ufdi4DAqpzL8igp1QaKwMGqJurV1V98GE55OeajLqu0qF8Wnod
	 /Oz66pBVMSskd2eQ2KqpdAgB1h9FFaiHjgVMgqCNnOOCar2+QOdJL6YSsAYlFi2DHs
	 owfLzO1YD/W1vjwC1hTgDiv3TEevNcKjeFQgPeISvA4ZAw73NcXOvzkhSQPdYJqLC5
	 g+QtEeUN755rRteyVsK5Ig8B7zZ58kHfRuDIvtEeyZ6UUy2yzaXJFPB02voaQMQXGn
	 mur+KzVFTupVHeUczxUXGWwmYhy2j8UYpdaBefPugt9UIVuriYHWzsLP91YvmbgXou
	 MKqOdnZ7gryMQ==
Date: Wed, 09 Apr 2025 01:44:23 +0000
To: Jan Beulich <jbeulich@suse.com>
From: Denis Mukhin <dmkhn@proton.me>
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org, dmukhin@ford.com, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v2 2/7] xen/domain: introduce domid_alloc()
Message-ID: <Y8GhEKf3_4HeHTMCpwHkIF1k7ESinA0tL_jlCQsxKamzi8wEc7vSK3DtzXb22qF6xzFbS2yDtP0EGUqvCBVcHn9ggIxwKcES4sdyOpVAoos=@proton.me>
In-Reply-To: <32a01662-3f34-4670-b38f-7d660acd3d2c@suse.com>
References: <20250331230508.440198-1-dmukhin@ford.com> <20250331230508.440198-3-dmukhin@ford.com> <32a01662-3f34-4670-b38f-7d660acd3d2c@suse.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 64c60b09260bfc3fbe04515760d415fe73a9458c
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Tuesday, April 8th, 2025 at 7:26 AM, Jan Beulich <jbeulich@suse.com> wro=
te:

>=20
>=20
> On 01.04.2025 01:05, dmkhn@proton.me wrote:
>=20
> > From: Denis Mukhin dmukhin@ford.com
> >=20
> > Move domain ID allocation during domain creation to a dedicated
> > function domid_alloc().
> >=20
> > Allocation algorithm:
> > - If an explicit domain ID is provided, verify its availability and
> > use it if ID is unused;
> > - Otherwise, perform an exhaustive search for the first available ID
> > within the [0..DOMID_FIRST_RESERVED) range, excluding hardware_domid.
> >=20
> > This minimizes the use of max_init_domid in the code and, thus, is a
> > prerequisite change for enabling console input rotation across domains
> > with console input permission on x86 platforms (which currently is
> > limited to dom0, PV shim and Xen).
>=20
>=20
> By removing the updating of max_init_domid you do - afaict - break the
> remaining use site(s) of the variable.

Unfortunately, this patch should go together with the next patch in
this series:
  xen/domain: introduce domid_top()

I mentioned dependency in the cover letter.

>=20
> > @@ -1003,6 +1004,12 @@ static struct domain *__init create_dom0(struct =
boot_info *bi)
> >=20
> > image =3D &bi->mods[idx];
> >=20
> > + rc =3D domid_alloc(get_initial_domain_id());
> > + if ( rc < 0 )
> > + panic("Cannot use domain ID %d (rc =3D %d)\n",
> > + get_initial_domain_id(), rc);
> > + domid =3D rc;
> > +
> > if ( opt_dom0_pvh )
> > {
> > dom0_cfg.flags |=3D (XEN_DOMCTL_CDF_hvm |
>=20
>=20
> Why does this need to move up, ...
>=20
> > @@ -1017,7 +1024,6 @@ static struct domain *__init create_dom0(struct b=
oot_info *bi)
> > dom0_cfg.flags |=3D XEN_DOMCTL_CDF_iommu;
> >=20
> > /* Create initial domain. Not d0 for pvshim. */
> > - domid =3D get_initial_domain_id();
>=20
>=20
> ... disconnecting the logic from the comment that is relevant there, ...
>=20
> > d =3D domain_create(domid, &dom0_cfg, pv_shim ? 0 : CDF_privileged);
>=20
>=20
> ... and not so much here?

So that in case domid_alloc() fails, create_dom0() will reach error state
quickly. I will re-group it as suggested.

>=20
> > --- a/xen/include/xen/domain.h
> > +++ b/xen/include/xen/domain.h
> > @@ -37,6 +37,9 @@ void arch_get_domain_info(const struct domain *d,
> >=20
> > domid_t get_initial_domain_id(void);
> >=20
> > +#define DOMID_AUTO (-1)
> > +int domid_alloc(int hint);
>=20
>=20
> Imo it would be better to use e.g. DOMID_INVALID as the "give me whatever
> is available" indicator, allowing the function parameter to properly be
> domid_t.

Ack.

>=20
> But first of all - can we please take a step back and re-evaluate whether
> all of this re-arrangement that you're doing (not just in the patch here)
> is really needed? It seems to me that it must be possible to do whatever
> you ultimately want to do without re-writing quite a few pretty central
> pieces that have been serving us fine for a long time. That is, rather
> than make our code fit your desires, make your plans fit within the code
> base we have.

Thanks for the review and feedback!

My plan is to deliver the NS16550 emulator for x86 because that saves some
time during bring up of an embedded system.

Current xen console driver allows physical input pass-through to the domain=
.

This is implemented differently between arm and x86. Currently, the logic
of switching input depends on the global variable `max_init_domid`, which i=
s
advanced on arm only (and never decreased, which makes sense for embedded
designs).

One of the planned emulator features is allowing guest OS to accept
physical input over the emulated UART. On x86, that includes dom0,
PV shim and, with emulator in place, also includes all domains with
NS16550 emulator enabled.

So I need to solve the problem of switching console input to another domain
on x86.

I see there are two ways to solve it:

  (a) iterate through the list of known domains and check "UART emulator
      present" property. AFAIU, that will require maintaining "current cons=
ole
      domain" pointer for a domain list walk.

  (b) calculate the max known domain ID and then check whether domain ID
      corresponds to a domain with "UART emulator present" property by iter=
ating
      through the range of domain IDs. This is current approach in the code=
.

So, this patch series solves problem of switching console input to another =
domain
on x86 using (b); as looked as less changes to me comparing to maintaining =
a
domain pointer.

re: code re-arrangements: while working on the emulator, getting more feedb=
ack,
this and other console-related cleanup series appeared and I think the code=
 which
served fine for a long time, got a bit cleaner, easier to follow and, I hop=
e,
a bit easier to maintain.

>=20
> Jan

Thanks,
Denis


From xen-devel-bounces@lists.xenproject.org Wed Apr 09 02:38:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 02:38:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.943302.1342089 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2LKT-0006NZ-F7; Wed, 09 Apr 2025 02:38:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 943302.1342089; Wed, 09 Apr 2025 02:38:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2LKT-0006NS-C8; Wed, 09 Apr 2025 02:38:17 +0000
Received: by outflank-mailman (input) for mailman id 943302;
 Wed, 09 Apr 2025 02:38:16 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Ywx6=W3=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u2LKR-0006Mi-ED
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 02:38:16 +0000
Received: from mail-24418.protonmail.ch (mail-24418.protonmail.ch
 [109.224.244.18]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id af0698ee-14eb-11f0-9eaa-5ba50f476ded;
 Wed, 09 Apr 2025 04:38:13 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: af0698ee-14eb-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1744166292; x=1744425492;
	bh=hF/s67m1NX8D5P1+RQ2tKNt9XTLR3T/FyJ7wDCg1+/c=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=TCbkHwadgmNMIkPbS5m3HadDyUl3p5bk4YDtST0bESYMIYdjizjuMiCt+pSSXrRmJ
	 +hskziToooQIx9RZSR5zO5xy0y5hxN33cm8teTip9eZT9imzGP/U/1cVE6u8hcbdXm
	 6cA5xw7Lrm4dnNUeElImDlc/WyjP/6l6SeLnuIuyQy6W9FN4+VvykU2PjRBMU79X9R
	 i4KD6Fqd9dm3X3huNYdV2/e4TvjCB0REA72nXYQozfABrUkFdB6Gsxxn+4Xjh2T66a
	 rXCXHYV8KWOrmIhc3yIYSAQ5tocWLhGQu6HZ9/bV0alzufj4uAaDedGz2rdarOU2Tq
	 /W0oe/PXrpZ3Q==
Date: Wed, 09 Apr 2025 02:38:05 +0000
To: Jan Beulich <jbeulich@suse.com>
From: Denis Mukhin <dmkhn@proton.me>
Cc: andrew.cooper3@citrix.com, roger.pau@citrix.com, dmukhin@ford.com, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v1] x86/vmx: Rework __vmread()/vmread_safe()/vmr()
Message-ID: <CxIVyaUYkldYcboibmxY8S49_ZUNdqZ30uvybH_l0KRndpL-w6vhpKuCCSJ2yllHI_7hRDuXDbAGp68BVc047GLDKqBfVoJbviwOzQgFF_s=@proton.me>
In-Reply-To: <e6e43d87-4e6d-498f-b234-a2b577fce7b6@suse.com>
References: <20250408011454.2274613-1-dmukhin@ford.com> <e6e43d87-4e6d-498f-b234-a2b577fce7b6@suse.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: dec20f86d87849abc4fab27d9bee39e97ad2f821
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Tuesday, April 8th, 2025 at 12:12 AM, Jan Beulich <jbeulich@suse.com> wr=
ote:

>
>
> On 08.04.2025 03:15, dmkhn@proton.me wrote:
>
> > From: Denis Mukhin dmukhin@ford.com
> >
> > Use `asm goto()` in vmread_safe() to simplify the error handling logic.
>
>
> This can't be quite right, considering we need to avoid outputs there.

I should have experiment a bit more :-/

Thanks for reviewing this.

>
> > Update __vmread() to return `unsigned long` as per suggestion in [1].
> > Rename __vmread() to vmread_unsafe() to match the behavior.
>
>
> I disagree with this renaming: See e.g. rdmsr() and rdmsr_safe() that we =
have.
> The common case function wants to not have unnecessary verbosity in its n=
ame.
> And there's nothing unsafe about it in the general case. Plus if there wa=
s
> anything unsafe, many of the call sites would require some form of error
> handling.

I will revert all the naming changes and limit the scope only to __vmread()
signature change.

>
> > @@ -1957,38 +1955,44 @@ void cf_check vmx_do_resume(void)
> > hvm_do_resume(v);
> >
> > /* Sync host CR4 in case its value has changed. */
> > - __vmread(HOST_CR4, &host_cr4);
> > - if ( host_cr4 !=3D read_cr4() )
> > + if ( vmread_unsafe(HOST_CR4) !=3D read_cr4() )
> > __vmwrite(HOST_CR4, read_cr4());
> >
> > reset_stack_and_jump(vmx_asm_do_vmentry);
> > }
> >
> > -static inline unsigned long vmr(unsigned long field)
> > +static inline unsigned long vmread(unsigned long field)
> > {
> > - unsigned long val;
> > + unsigned long value =3D 0;
> >
> > - return vmread_safe(field, &val) ? 0 : val;
> > + asm goto ( "vmread %[field], %[value]\n\t"
> > + "jmp %l[out]"
>
>
> Why's the JMP needed here? With it dropped, why's open-coding of vmread_u=
nsafe()
> necessary here? And why's the "safe" variant being replaced by the "unsaf=
e" one?
>
> > + :
> > + : [field] "r" (field), [value] "m" (value)
>
>
> "value" is an output and hence cannot be just "m" (and hence be an input"=
).
> The only option to make such work correctly would be to ...
>
> > + :
>
>
> ... add a "memory" clobber here. Which may have other unwanted side effec=
ts.
>
> > + : out );
> > +out:
>
>
> Nit (here and elsewhere): Labels indented by at least one blank please. S=
ee
> ./CODING_STYLE.

Overlooked formatting change.

>
> > + return value;
> > }
> >
> > -#define vmr16(fld) ({ \
> > +#define vmread16(fld) ({ \
> > BUILD_BUG_ON((fld) & 0x6001); \
> > - (uint16_t)vmr(fld); \
> > + (uint16_t)vmread(fld); \
> > })
> >
> > -#define vmr32(fld) ({ \
> > +#define vmread32(fld) ({ \
> > BUILD_BUG_ON(((fld) & 0x6001) !=3D 0x4000); \
> > - (uint32_t)vmr(fld); \
> > + (uint32_t)vmread(fld); \
> > })
> >
> > static void vmx_dump_sel(const char *name, uint32_t selector)
> > {
> > uint32_t sel, attr, limit;
> > uint64_t base;
> > - sel =3D vmr(selector);
> > - attr =3D vmr(selector + (GUEST_ES_AR_BYTES - GUEST_ES_SELECTOR));
> > - limit =3D vmr(selector + (GUEST_ES_LIMIT - GUEST_ES_SELECTOR));
> > - base =3D vmr(selector + (GUEST_ES_BASE - GUEST_ES_SELECTOR));
> > + sel =3D vmread(selector);
> > + attr =3D vmread(selector + (GUEST_ES_AR_BYTES - GUEST_ES_SELECTOR));
> > + limit =3D vmread(selector + (GUEST_ES_LIMIT - GUEST_ES_SELECTOR));
> > + base =3D vmread(selector + (GUEST_ES_BASE - GUEST_ES_SELECTOR));
>
>
> The renaming causes entirely unnecessary extra churn here (and of course
> elsewhere). The patch is already big enough without this.
>
> > --- a/xen/arch/x86/include/asm/domain.h
> > +++ b/xen/arch/x86/include/asm/domain.h
> > @@ -595,7 +595,7 @@ struct arch_vcpu
> >
> > /* Debug registers. /
> > unsigned long dr[4];
> > - unsigned long dr7; / Ideally int, but __vmread() needs long. /
> > + unsigned long dr7; / Ideally int, but vmread_unsafe() needs unsigned =
long. */
> > unsigned int dr6;
>
>
> If you left this comment alone, all would be (largely) fine - this partic=
ular
> aspect could then be tidied in a follow-on path. But vmread_unsafe() spec=
ifically
> does not need "unsigned long" anymore. The issue was with __vmread() taki=
ng a
> pointer argument.
>
> > --- a/xen/arch/x86/include/asm/hvm/vmx/vmx.h
> > +++ b/xen/arch/x86/include/asm/hvm/vmx/vmx.h
> > @@ -320,16 +320,40 @@ static always_inline void __vmpclear(u64 addr)
> > BUG();
> > }
> >
> > -static always_inline void __vmread(unsigned long field, unsigned long =
value)
> > +static always_inline unsigned long vmread_unsafe(unsigned long field)
> > {
> > - asm volatile ( "vmread %1, %0\n\t"
> > - / CF=3D=3D1 or ZF=3D=3D1 --> BUG() */
> > - UNLIKELY_START(be, vmread)
> > - _ASM_BUGFRAME_TEXT(0)
> > - UNLIKELY_END_SECTION
> > - : "=3Drm" (*value)
> > - : "r" (field),
> > - _ASM_BUGFRAME_INFO(BUGFRAME_bug, LINE, FILE, 0) );
> > + unsigned long value;
> > +
> > + asm volatile ( "vmread %[field], %[value]\n\t"
> > + "jc 1f\n\t"
> > + "jz 1f\n\t"
>
>
> Why not JBE as it was before?
>
> > + "jmp 2f\n\t"
> > + "1:\n\t"
> > + " ud2\n\t"
> > + "2:"
>
>
> This is specifically why we used UNLIKELY_*() before. There's no justific=
ation
> whatsoever in the description for the dropping of its use here.
>
> Plus - where did _ASM_BUGFRAME_TEXT(0) go? A bare UD2 isn't acceptable, a=
s it
> won't be possible to associate it back with the respective source line.
>
> > + : [value] "=3Drm" (value)
> > + : [field] "r" (field) );
> > +
> > + return value;
> > +}
> > +
> > +static inline enum vmx_insn_errno vmread_safe(unsigned long field,
> > + unsigned long *value)
> > +{
> > + asm goto ( "vmread %[field], %[value]\n\t"
> > + "jc %l[vmfail_invalid]\n\t"
> > + "jz %l[vmfail_error]"
> > + :
> > + : [field] "r" (field), [value] "m" (*value)
>
>
> See comments on the vmr() adjustments you're making.
>
> Jan


From xen-devel-bounces@lists.xenproject.org Wed Apr 09 06:19:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 06:19:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.943325.1342100 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2Omh-0003ag-Co; Wed, 09 Apr 2025 06:19:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 943325.1342100; Wed, 09 Apr 2025 06: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 1u2Omh-0003aZ-AC; Wed, 09 Apr 2025 06:19:39 +0000
Received: by outflank-mailman (input) for mailman id 943325;
 Wed, 09 Apr 2025 06: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=5vFf=W3=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u2Omg-0003aT-1t
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 06:19:38 +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 9c076fb6-150a-11f0-9eaa-5ba50f476ded;
 Wed, 09 Apr 2025 08:19:36 +0200 (CEST)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-39149bccb69so5944364f8f.2
 for <xen-devel@lists.xenproject.org>; Tue, 08 Apr 2025 23:19:36 -0700 (PDT)
Received: from [10.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-39d89378d9fsm654806f8f.37.2025.04.08.23.19.35
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 08 Apr 2025 23:19:35 -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: 9c076fb6-150a-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744179575; x=1744784375; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=kvChhXFFObwaDqJNpHyassdUQ17IcemJDie/kT2nJro=;
        b=A58/cYjJh5OHtsLboSEzx31tJHMTBYMDAQJyA99WKHcZ4iYh/FpGOGvtLuUqR8XGLV
         USjkN7YBdJMxyK0ZW7DY/JVtbZmWI/K+AXd/EGmUVX9Tx7iXH8tw2lThyO3CXxB+WqQT
         mQNk0wgYs76l9DrpGqr8f7gjGKyRzFXhBK1fPTJFOQpTvlSPDvW3tLHgARMH40gXkDWF
         fMw7565XlWeL4ZTDUJM48Cx+yuaXC6zZQdjXKfI9NaqdwAqXdpICl4bITXWU14OBOCRE
         fj2Jzvc+CL935+1j8UFIwXVFa4AjQjK4o7R6pB4Gp2T8pZeAz/V+V0tKJQSwAadCXJEm
         q2lg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744179575; x=1744784375;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=kvChhXFFObwaDqJNpHyassdUQ17IcemJDie/kT2nJro=;
        b=v0MacEVovtwrj3YltuXc4k8j43UYza9bS1W0rid/wnsX9pwjuvw1OcZysTjTYsduJd
         vLoxax16i8pv/uhJO4Ma0FAWCk6UGhw30rtHPkA519l3gh8KUCu2yWJHQW6vG9BRJu3S
         OirTkaWkODW7DRGJNxCcXBPocBI4GeO5RW+IFxy/YmcPCNDT5PkX+OJmEMrUa+mTBCn7
         1nFzDmYCFKYTHykrxrOEAzI0a0qKnZcWkBIfR8TXE12ubi0PHOviAfHVeMKX7edbUGIL
         b0L2l8FbIbb/lAg0hCdlfZX40OE47InKz2u4Wlo8rrdb2ksZLAgRd4WGK617VpVcCRfA
         svMQ==
X-Forwarded-Encrypted: i=1; AJvYcCWw8mnHdilRsnoto2+zgWlSWDo78MvvaTrXW6peRmkD8WFUhfUxIYav+nIOnzjTkYulmxHVpKYGqoA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzyGeELSt0phNgf+ewwlzxNc2vF75GNCU8Lpdr5kHD9+9VoH9SM
	WFGDC2aeeIGFKq+yp3j08I7Otr+iL+7GgO4miwJhFZIfabyhIVivPUMRAqLWvw==
X-Gm-Gg: ASbGnctEuZN+dqP73S/EjUZWlsOp9+cWzJKxlc4oMWBb9DQEFtytJHW+LxeXFbfehnZ
	akBMJ5Y1R5a6fh8vePNWCE/s9YZZ+ZBu/OzSutgqzmA7n+Saxvz0EYytM+2pnaRSU5NzfZ+ocfP
	+b4PP6wy85OTR3ALK7GV5GyBwIeVTyfuljw/l08xHQyz89CYsb+FZCmFadXlK205vEBJIY+wjtL
	yqInJV1JLJrA4oO/UwxzWCyHQZjf5g5rxHiCTq/kVtn+eiSLzO9Ylu8A0u82cx4V3CxDUbR9XaA
	sjayTWdILcxlpRIH/NlXQy0Y0FwEwt6uM19ZBcnRAhjl8dd/OwV5YYEt4kT4x0EWzXo8JseaZn5
	MrprVpdxivv2w1OL2C8jF403JZg==
X-Google-Smtp-Source: AGHT+IFd/vxazouITRzIMMpg3MsMXFLVOjB++pcHb9gK6u5arW6th/gqDGrdkBJrSihVfYwJnfmpFA==
X-Received: by 2002:a05:6000:220b:b0:39d:724f:a8f0 with SMTP id ffacd0b85a97d-39d87cd3528mr1219697f8f.42.1744179575641;
        Tue, 08 Apr 2025 23:19:35 -0700 (PDT)
Message-ID: <e79b74cf-af59-4db4-b8c6-ecad289d5b06@suse.com>
Date: Wed, 9 Apr 2025 08:19:34 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5] x86/domain: revisit logging in arch_domain_create()
To: dmkhn@proton.me
Cc: andrew.cooper3@citrix.com, roger.pau@citrix.com, dmukhin@ford.com,
 xen-devel@lists.xenproject.org
References: <20250408224021.1579818-1-dmukhin@ford.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20250408224021.1579818-1-dmukhin@ford.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 09.04.2025 00:40, dmkhn@proton.me wrote:
> From: Denis Mukhin <dmukhin@ford.com>
> 
> Use %pd in all logs issued from arch_domain_create() and reword some of the
> messages.
> 
> Also, expand error message in arch_domain_create() under !emulation_flags_ok()
> case to help debugging.
> 
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>

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

It still remains unclear to me why you think you need to change aspects of
prior wording for no apparent reason. For example, ...

> --- a/xen/arch/x86/domain.c
> +++ b/xen/arch/x86/domain.c
> @@ -791,13 +791,14 @@ int arch_domain_create(struct domain *d,
>      {
>          if ( !opt_allow_unsafe )
>          {
> -            printk(XENLOG_G_ERR "Xen does not allow DomU creation on this CPU"
> -                   " for security reasons.\n");
> +            printk(XENLOG_G_ERR
> +                   "%pd: will not create domU on this CPU for security reasons\n",
> +                   d);

... why would "DomU" need to change to "domU"? Yes, we're inconsistent about
the case of the first letter. Yet the change here doesn't help the
inconsistency in any way. My more general request remains, going forward:
Please no changes, big or small, that don't have at least a tiny bit of a
reason.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Apr 09 06:24:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 06:24:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.943338.1342110 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2Orl-0006FJ-VB; Wed, 09 Apr 2025 06:24:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 943338.1342110; Wed, 09 Apr 2025 06: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 1u2Orl-0006FC-SM; Wed, 09 Apr 2025 06:24:53 +0000
Received: by outflank-mailman (input) for mailman id 943338;
 Wed, 09 Apr 2025 06:24: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=5vFf=W3=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u2Ork-0006F6-Ig
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 06:24:52 +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 5813bc8e-150b-11f0-9eaa-5ba50f476ded;
 Wed, 09 Apr 2025 08:24:51 +0200 (CEST)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-43cfba466b2so62505105e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 08 Apr 2025 23:24:51 -0700 (PDT)
Received: from [10.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-43f233a2f08sm5551805e9.12.2025.04.08.23.24.50
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 08 Apr 2025 23:24: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: 5813bc8e-150b-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744179891; x=1744784691; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=u3b6pw/VBcCbVgoI4N6yH6vHCYrc1+ixpm/H/ou6EoQ=;
        b=DIvO02DKvnw7bdMdvUCq09Dtn2PUt5cDZQMgfr8JNUf9HbpZPamkOvYK9QcyWKV8er
         5Mckj93Ifx2+7hlgPrH4j5m3oXKl4dT0TXdOwvNPRMZDLJpEx9jkuWq2yt56MF7kHAQm
         rPJPAbnX9qNl1VZUYWsIRhxzuu8gb+XsPo2xETrpNBQYz7elVWKWWT6d1Np225YrPkqO
         FJeR0kPMEsalVJWbVrS5fJUi93kGH6XfJF+aPaBs6+AqTG/dGhROXVrKXbSkocvkQRfq
         yITxamOjrLWxDHuTiVdRBT3y3IoXpju65TVWMA9Qw2NrvTQ2DSBnv0Fc2cYYh8jPm6f3
         bIXw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744179891; x=1744784691;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=u3b6pw/VBcCbVgoI4N6yH6vHCYrc1+ixpm/H/ou6EoQ=;
        b=bVaBphofdg5y7Aytz5X5V9U7si7RXuZ4FhmUvzIb6JxArfaw1YE5HQbOvFcwy8I6mm
         f/xeB5exIXXo4xMv9oU9kTYe1HDegf9xcIscOHrmuZrE+hxmc+migvL5RFzVeuSYKMyR
         5XW3IKsI44DDb/RUeYgatS2ZIVWOqwvIpwJNCS9vhwoYEA8BFGAYW8xU7NJl9CY+S/6o
         9hrHYiwefeU7Gyq1rO/0Q0PO9kJjrk1PyJs6xLlKLLIaIqKl7jK41GHlTypcJys4e0qn
         oXg5JWKf76ZccG+pPWikdzFUAh6j60mxkYlcRR0v/y2xVRHsxPhd3LBB6PxCGudWDomw
         SdQw==
X-Forwarded-Encrypted: i=1; AJvYcCUAYi4Za8dgJNODcRry6DU7SgID4sNwaENuISZ/xN+UuQTY256kGgZArjIczQNoEmUUDzZdLbAnYhM=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxc01L0x/q1ClX/RYJqztRre7/sUkdR6ACIw7Ie3K3l4NaYSUzT
	lDjDim4z0xiVgIgaZWymcwAgSOCfGGAH6S0ihAXVIAcREzpGfFFerDjVoxS9bQ==
X-Gm-Gg: ASbGncu7e3vQ2FgfHrfATU2+A4L2GAznCUF5EAHK6gQoArWjqhix6lZsVtOQ+kWu4xC
	ifV2UyEvsawqkkdjgD0blfmMGMA+78ST+wXvUabD7NoKp2QiFrOfgZOy93yWVbeVeI9thWcEcBq
	MfEUAaDHRMfEoQS1zmGIdXH1c45E0Rz6PnRvyhVf65KjwRRG0gORpWU84OkC9mV1V5gnCfep7m+
	HFdEQYNqBsdbrvGD7XP2TkbNS/iyDmvNlDZ1JeaS+Ck/CQ2UnzFdpZUz/fs7bmxSiSp+5LQkJHN
	DMmSKJHCTZRhu+UT92j1OknR4jdX8gZRJ6kuQ2xAuWohZwxvQbQLWOzE/8N7Fupuo1lAu9OeEGB
	Emj2EAWP/qGOfeeHtqMibXKzmyw==
X-Google-Smtp-Source: AGHT+IGuD6vgVpseclADyY31fliCvb70brmZO11SDwWjsQmtNdG10RlHiyrg4I5xrbCvczrvTxMKfA==
X-Received: by 2002:a5d:5987:0:b0:391:2c67:798f with SMTP id ffacd0b85a97d-39d8856159amr867346f8f.41.1744179891091;
        Tue, 08 Apr 2025 23:24:51 -0700 (PDT)
Message-ID: <141229a0-2cd2-4886-b5e5-02c85b0ca5ab@suse.com>
Date: Wed, 9 Apr 2025 08:24:49 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 01/16] x86/boot: introduce boot domain
To: Alejandro Vallejo <agarciav@amd.com>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>
Cc: Jason Andryuk <jason.andryuk@amd.com>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Michal Orzel <michal.orzel@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: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-2-agarciav@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: <20250408160802.49870-2-agarciav@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.04.2025 18:07, Alejandro Vallejo wrote:
> From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
> 
> 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>

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

> --- /dev/null
> +++ b/xen/arch/x86/include/asm/boot-domain.h
> @@ -0,0 +1,28 @@
> +/* 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>
> + */

I wonder if the 2024-s here shouldn't have been amended by 2025 now. (I'm
also, more generally, unclear about the purpose of such, especially when
the file is really small and simple. It's only going to go stale, as we
can see from various other files having such copyright lines.)

Jan


From xen-devel-bounces@lists.xenproject.org Wed Apr 09 06:29:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 06:29:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.943351.1342120 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2OwQ-0006pb-Em; Wed, 09 Apr 2025 06:29:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 943351.1342120; Wed, 09 Apr 2025 06: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 1u2OwQ-0006pU-BV; Wed, 09 Apr 2025 06:29:42 +0000
Received: by outflank-mailman (input) for mailman id 943351;
 Wed, 09 Apr 2025 06:29: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=5vFf=W3=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u2OwP-0006pO-5X
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 06:29:41 +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 01a694e8-150c-11f0-9ffb-bf95429c2676;
 Wed, 09 Apr 2025 08:29:36 +0200 (CEST)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-43d07ca6a80so32427095e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 08 Apr 2025 23:29:36 -0700 (PDT)
Received: from [10.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-43f2066d14fsm9521995e9.21.2025.04.08.23.29.34
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 08 Apr 2025 23:29:35 -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: 01a694e8-150c-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744180175; x=1744784975; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=6HsLzUwvbMsXzzw4Gct2bbVOcBIFF3CMMNBSqFOlzgE=;
        b=CbSCrsiAOOV5Ce4+OmzWkT0D8bDKyKNTgp5FpsUiIkF4umD7MFsD806kU27OXasnOG
         W/znpAPaQwsg4Tmnq/GZDH/UoxFGhdxMZNwjlOxSlrVTI6RFY487Nuhi9hgssKI8gnDK
         zFVUQN+rZ6YlXz9WkofyuE1TkcSfhA5I97CkIPl7b7FxDp1UKMcrFR9niInetCzQg9kU
         rjLRjRGKG0Zd7ySs05n20Lca7sCzmbPgs4glXunARaNNcKxN8GQyICY/YnFM/l1AAUDl
         rQQvwni/x6nUQVov7N6kM7XX1/obyDEd+Vp1lU4ONGmliSzq2awvct/HOOXKj9gd0mF6
         Vf1w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744180175; x=1744784975;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=6HsLzUwvbMsXzzw4Gct2bbVOcBIFF3CMMNBSqFOlzgE=;
        b=fPdwiqBDYolAecnu/pC+yR5Szrw+qgnHVQ2/tB1j+Zo72o89E9LeWQzZWyeMUBGB84
         jvdNYOGWgLq9GngfmQWjZoZIXRz/lNlICdCXkT+2JQciSC8ychvTyZK09cliUsPX16mS
         n6a7lfW7JKYwJhxw0/SdPkWOWGP6vwejuNL2kvB+w8qwA8m1YqcjDxJM/45wTJZuwV/J
         XOJ3cQd2ARqVo7bt/hLgfmFEDpxHhyBBGeb1FxHCBJWLqN52B95u+lwMX9HusNLGBg1s
         rTt7bfkonrca8xwiy/G0wFiG5rFSJ1HL6TLQmGiKZ+/p1uQ8EYZIAmx3MjNR+c+LOc2F
         EdGg==
X-Forwarded-Encrypted: i=1; AJvYcCUgSFJoh24VMqBW6AOXtQdzfMfNIaMG1QhYOdr1sK30JywU3gBmZ5suoMtLqlbF4uZ/BZtqUdav23c=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzK76u/QggwDDt0PRqATcP6KhxjA2Yt8+KudURKvtudvzD6KoLy
	YQuJ3C1sMgy3mvbaPsKY9k+6fEmvq1Ze4Klqlvb0WYQnyz6CCUSiUDH11YK+zkRNxd4m6lkdwDM
	=
X-Gm-Gg: ASbGnct8lgpdZFHVqw+++ssmvXSZRWDxjOclHZww4J3pb9JKRSiec4RijMPnRVbEkoC
	znnxXibiGPB+zEep3mrI7yi2077xhAgk9qaXSf7n3rUbFmOmBLULNT8ipVAvGoaewNcnNGI5Bgl
	lzaM0puF3AB9LNlrhb5Jhoiz9VTR/yWlhI25+p278Gmo8ay7/N0z3slbeRDCvX7QGyOtJAvqr1G
	6ZARYO76ZvvDFy7Am7KOeRu0ZDsqVaJL2QJcLvmFf+VsIJ4awVv1P4c+9C3hEslhzFqkb+59A2U
	0+yqManUlMRXlQELTQMYpaPHdJ9WUbq5T3xr+GrvNKUbdNlH6QHd1DowZeSfr6FlSVeb/9tOzuG
	9GlzLcuMfNTaPIihHUGdSlUyKGOm2swtm+3lX
X-Google-Smtp-Source: AGHT+IEpMhDLPia/XlPLrR341T5kUpybPCfatFlMOuIdQ5FheAD7pUQE3/demwMG5j8RJItEEUsMJA==
X-Received: by 2002:a05:600c:5025:b0:43c:e8ca:5140 with SMTP id 5b1f17b1804b1-43f1ff39c0cmr9200685e9.23.1744180175547;
        Tue, 08 Apr 2025 23:29:35 -0700 (PDT)
Message-ID: <1d809170-bef0-482e-bf6f-6da84204bfad@suse.com>
Date: Wed, 9 Apr 2025 08:29:34 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 00/16] Hyperlaunch device tree for dom0
To: Alejandro Vallejo <agarciav@amd.com>
Cc: Jason Andryuk <jason.andryuk@amd.com>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Michal Orzel <michal.orzel@amd.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>, Julien Grall <julien@xen.org>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>, xen-devel@lists.xenproject.org
References: <20250408160802.49870-1-agarciav@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: <20250408160802.49870-1-agarciav@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.04.2025 18:07, Alejandro Vallejo wrote:
> I've purposefully not added my S-by on anything I haven't touched
> (besides rebasing) as most of the feedback had already been addressed by
> Jason by the time I looked at it and it would be utterly nonsensical to
> give myself authorship over it.

My understanding of it is that S-o-b doesn't indicate (only) authorship.
See docs/process/sending-patches.pandoc "Developer's Certificate of Origin
1.1" point (c). And what you would want to demonstrate with adding your
own one is agreement with (d) there. With this I'm not even sure I could
commit patches becoming ready in their present form.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Apr 09 06:34:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 06:34:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.943364.1342130 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2P10-0001At-W8; Wed, 09 Apr 2025 06:34:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 943364.1342130; Wed, 09 Apr 2025 06:34: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 1u2P10-0001Am-Sn; Wed, 09 Apr 2025 06:34:26 +0000
Received: by outflank-mailman (input) for mailman id 943364;
 Wed, 09 Apr 2025 06:34: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=5vFf=W3=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u2P0z-0001Ae-9Y
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 06:34:25 +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 acd8696a-150c-11f0-9ffb-bf95429c2676;
 Wed, 09 Apr 2025 08:34:23 +0200 (CEST)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-38f2f391864so3495615f8f.3
 for <xen-devel@lists.xenproject.org>; Tue, 08 Apr 2025 23:34:23 -0700 (PDT)
Received: from [10.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-39d893f0a11sm661965f8f.73.2025.04.08.23.34.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 08 Apr 2025 23:34:22 -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: acd8696a-150c-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744180463; x=1744785263; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=fub2I+MB9rjQEklAxX3M3dotSRNT6oFTUvZX+JJ++lo=;
        b=JifMBAKCAaiq2jOA0WxcQYCR3lRfrtD6R7KIitKNaT+UK4yVXgLDE4xUXrHjnjzyro
         yj6fKrF0/a7OuKmp8nH/UN/VElj2kjcY9QAVlWvzhirKayJR2dchXy5HFtCjmtFv383j
         3vqIBeZjVlOde4rPAe3w+M3vEoi/nGm3DHCC6QD4NcMVXO0mb0HHGpdkFmLqSCnmOT5L
         l/ewIvs0jajcHbH6k3f900/62/nLjCmW0epDcsHzxLjBcOX22rEUXIklgGVPSIUKxT6Z
         WfOZ/zAZPScI5B5dq70gARFf3L9s60toTfEEaLd/3BMYBBoQ7l5uacVvM2nJg9S3Uabm
         tx4g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744180463; x=1744785263;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=fub2I+MB9rjQEklAxX3M3dotSRNT6oFTUvZX+JJ++lo=;
        b=UgiUXJiru31joO6DKco852685ETYtv0rTA4g7Bk4M8CKJnFjINpVxRIfp6eqDBY0YO
         U9zjL2chJP1qgHIF3vJFe9lGIoK5gXphUp1ZDDzb29tC4Nvf5hM3P6hxtCtW4ZspiBQP
         Inb25Ft69VPf1XWUrcKozz5yQHMwzQ0s3n5tuTGj/CIjOB1vmPddR6t4jgstlTRYagW0
         I6HJI3OX4WFy8GeA+bkoRUynaS0FSgkH4ewLpoavchm4KCjSnDbBY4TaKJfXa8naG3hl
         4wkAGV/0tCmmWXsGE1i0MpysG54nNxvBK6z9TrxVL+WW9pzDGyrOwh6xVJTv+DysZj4n
         hNvQ==
X-Forwarded-Encrypted: i=1; AJvYcCUCWxMOW1jcmqMEqRWeHRO7o2ROQbqSLk5vmYQd3fzXiIbR55f9JjcVD4u3K5cpLR7EPbtIRgg6xrY=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz7zNI/8iu5khPtES0KIKushnbWiGiq5v9y/ZCY9TAx5ysC49GH
	O0lgW/FAEhu+iqgX357VAeaubs6eH00hbfGNmbhN7DOz6nCahJDCgoDkpwHGyQ==
X-Gm-Gg: ASbGncvjdR6eFOHNRIp2Vzia8xcqxx+eSoYtdav1BPBjgH+/dv/jgrmRVSxQr3rkIf2
	RsQNbFQmqRLVdjTs/0sDREtMTBgUlDZ6L8gOG/9FULA49NXOLM5/nA12MENSRXiySFjwM6YFnS8
	ovyBmtfW82VNVWF2PBVJZy35GYnOzL2vHNhNMqP6q+jwQYItzUSXY+EYbC7Ivep6rOY1J/MqgSS
	Q8070QU8k+Jrt5ZGMF0oEFJlEyT6WOrL/rKAbYQdtu6AalooS2zi0gEE6OghcoqjmZaY0Zo2ul6
	984Vh2782o40Rx9OOHyK4JYUlXaDBqCllE0SuRWwjkVa2cbgSvrKB1Jb9pl1OlXWs+bpxlL0+sR
	Ztjmoavr3AP9F+irfa9DWalmSug==
X-Google-Smtp-Source: AGHT+IELu10ufk/rhmFmS+gUlu1Q85URWDpbnHmksPLRb6U0HupailBwoS7tISTluv/aDt7KHxgUPA==
X-Received: by 2002:a5d:5f52:0:b0:391:29f:4f87 with SMTP id ffacd0b85a97d-39d87cdbd26mr1425418f8f.49.1744180462783;
        Tue, 08 Apr 2025 23:34:22 -0700 (PDT)
Message-ID: <8089dab8-d94d-4eca-ad75-fec972386c80@suse.com>
Date: Wed, 9 Apr 2025 08:34:21 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 02/16] x86/boot: introduce domid field to struct
 boot_domain
To: Alejandro Vallejo <agarciav@amd.com>
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Jason Andryuk <jason.andryuk@amd.com>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Michal Orzel <michal.orzel@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: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-3-agarciav@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: <20250408160802.49870-3-agarciav@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.04.2025 18:07, Alejandro Vallejo wrote:
> @@ -1010,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 %pd vcpu 0\n", d);

And why exactly is this not %pdv0? That's what would be possible to catch by
grep-ing for what vsnprintf() would emit for %pv. Preferably with that adjusted
(which can be done while committing):
Acked-by: Jan Beulich <jbeulich@suse.com>

Jan


From xen-devel-bounces@lists.xenproject.org Wed Apr 09 06:46:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 06:46:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.943383.1342160 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2PCV-0004YN-F4; Wed, 09 Apr 2025 06:46:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 943383.1342160; Wed, 09 Apr 2025 06: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 1u2PCV-0004YG-Bm; Wed, 09 Apr 2025 06:46:19 +0000
Received: by outflank-mailman (input) for mailman id 943383;
 Wed, 09 Apr 2025 06: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=3VhX=W3=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1u2PCU-000466-Iz
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 06:46:18 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on2060c.outbound.protection.outlook.com
 [2a01:111:f403:2414::60c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 562dd81b-150e-11f0-9ffb-bf95429c2676;
 Wed, 09 Apr 2025 08:46:17 +0200 (CEST)
Received: from BN9P220CA0019.NAMP220.PROD.OUTLOOK.COM (2603:10b6:408:13e::24)
 by SA1PR12MB8723.namprd12.prod.outlook.com (2603:10b6:806:385::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.34; Wed, 9 Apr
 2025 06:46:11 +0000
Received: from BN2PEPF00004FBA.namprd04.prod.outlook.com
 (2603:10b6:408:13e:cafe::a6) by BN9P220CA0019.outlook.office365.com
 (2603:10b6:408:13e::24) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.22 via Frontend Transport; Wed,
 9 Apr 2025 06:46:11 +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.8606.22 via Frontend Transport; Wed, 9 Apr 2025 06:46:11 +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, 9 Apr
 2025 01:46:09 -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: 562dd81b-150e-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=FzdD2qq+eW0lorjy44w3cQjJ9EzJuau4S4t4ixNWx5RZZS0N5/2J0VWujCSnArDDYY0RX1KCnwQkKScxxI2cW+PTJVSVNrrMFnXyysPFmfMtb5zjnZDUduSQovEIAeOjrVjx6uGj9pfGIAhQre8tMU44zgZOhZkVCBq104/8WwKuNhC+l33hVAQ+y8tA3wN7ffnyVT8Hx+NL3f+kO+1dGJ5bipkzMKjkaFgn6PSvnVA1gUx8d3kiL98hkBRqSebPppOFiDPa6d/1BtZ5PHpLCmuxhrG+IF4mbT1t5Sb3UYcVj4veLylTGm0LZTwfrVNSGxmhCxgLf8sXs8ON8D81ww==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=HPNNAqo4F56g6l3e7GOZK8AQMZSOjN7zWq22SiiIG1U=;
 b=kNI0QXmFwmJYxnlzXjw4rtxPa1Cm0lsDEHDAuhU4YbUeTebfASPb7YjvbkcYzf9GW2OyFuRyRfs1Blm/uhei2cr3YihE5kkGcknXdzhvzpHVFNp2Puo/wKeb3ucQhiY6UKQ9E+azR97ejl6s8jjp2/L/QY0E2j1N4Csd3x7bbezXXj894BQJEdwwzzqXG7NFPdXcgAYUVlzZuAeP32JEiM8jPS0n3tMjRgARnNQ6KUeqTfSw90ULx18H/EbjzXBLsmjRGDso3c8zQ9x1rMjlSCdP2mdZSlwUuV6s5wQfuOrNWPfmlRd6JA3LaMzKc0Hv3CNNQo8oCj4fDalcax4m4Q==
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=HPNNAqo4F56g6l3e7GOZK8AQMZSOjN7zWq22SiiIG1U=;
 b=wfaFtSvwMlUOPTUA8NBcTQOafnZW9GHM77wPtffWhEJBS1IrwUUHmkTaUxdCd3u598BmmCGXDIru4Rdw+3mTs70YzlL1h9xh4hLzdM7ZeL/o/8Sl2lRFLT45CSL44+sW4oXNetUil2s1hBMaExgSR4dWDFPMhGWt9tVdG6DPCBY=
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: Huang Rui <ray.huang@amd.com>, Jiqian Chen <Jiqian.Chen@amd.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v2 3/8] vpci/header: Emulate extended capability list for host
Date: Wed, 9 Apr 2025 14:45:23 +0800
Message-ID: <20250409064528.405573-4-Jiqian.Chen@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250409064528.405573-1-Jiqian.Chen@amd.com>
References: <20250409064528.405573-1-Jiqian.Chen@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: BN2PEPF00004FBA:EE_|SA1PR12MB8723:EE_
X-MS-Office365-Filtering-Correlation-Id: 7457f07f-e833-4c2d-82de-08dd7732372d
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?K2IxbUVuR1cwbmY2YzdEcFA3elhSZDdwbUN3dVExWGtqWEM2MWt1QWl1WFFQ?=
 =?utf-8?B?aDloWFdDZEtWd01yd04rb0JVeDlwQWNhNzkxZmZadWtWVVE3UWJEVUVGTWky?=
 =?utf-8?B?VldZQ1ZybFlVUnBPZWxsb2FZNEhpRzN2ZnREYU5yWXIrRW0yM3IremhCeVhu?=
 =?utf-8?B?alRlZ2xNSEpmSVNMMzh5UERJVkZRKzgvM25rL3RhdDRUc1p1R3BXZkIyRnBW?=
 =?utf-8?B?eG9EUitySDZVNHVIL3ErWFk1SDE2VjgvTlZGWnhLL21xNFBaam82TXdla0Ni?=
 =?utf-8?B?VFRvazJGclYzY3VKT2dRR2VVOExYOGM5amNSZE5ub0RGeGtmVHc0dlNuQUhw?=
 =?utf-8?B?WWNMczZqZmpqNXgwVGtiY3FnV3IyVmZjQjUycjRwdEs3aHpldmNKK3dOQWZY?=
 =?utf-8?B?VEx2c3QxWFU4WHE4c1RVOXN3cndRNlArbUk4Y0ppNHl1MUN0TE91aG55UzlZ?=
 =?utf-8?B?OExRcjZJUGVndW5NdzIyQWtjM3dPNDd6V2NPTnZwdEk1QWtOREJKODZlODVl?=
 =?utf-8?B?V3d5MWlZUFMwNXoxZTI0V2x5c2tRU0F6SkpVQ1NTT0l0V04vYlNhbkFFVDhV?=
 =?utf-8?B?Z1cwY3lFQWlzc01SV1Q1eGE5S1VmKzkwUUh6M2JIUFlXUjRITzRodm9rU2FF?=
 =?utf-8?B?UzlxVkp0ZWV2cUNxVFdqeUdUVnNteU9mK1lWU3lzc0tkVzI5Q1dKbHh4NWhG?=
 =?utf-8?B?bDVIV0lkYWFQQjJKMTNMRWkxUWgydE5Md2VEK01EK0dpcnFyL1JheHNEYlJY?=
 =?utf-8?B?bUJ5T2twRXNneVhpQnBOaDk3VjdDK2gvanlCanRGOUFWSVpEWFJZZGFST3h3?=
 =?utf-8?B?dWl0T3NFTmY4Rmk5NTQ2MjBITktQMEp6eW8yWW83a3FZd2pkUGt4cGEvZUJy?=
 =?utf-8?B?YU5ET2VCa08wUXJZMUxJdEYzeW9nV2NoQnRneVdSVktoR01ZVTdtM2RJOVpM?=
 =?utf-8?B?RXh4RHBXU0J3TXFLdUVIb2NOdXlDblBPTW1GQUtVZllPMWhjVHU4aVhMSW01?=
 =?utf-8?B?cTgyd1lOQitvdlJzNDBHanRSZ2xHOFE3M1grS1NaeE9sTkVOVlRxUEJ4Mkp2?=
 =?utf-8?B?aFk3aXFERjFDMDRsU3F4bHpmRUVJZ0UwbXh5cVA2SkhEUE1VSHMvUkhFZ0Rh?=
 =?utf-8?B?U1NCUUxmV3NyenhENHJoeG1wYmtpSDBCSTBRQVgyWUt2eEw3RzdWUENqRE1N?=
 =?utf-8?B?YzdKSlM4ZW41Z3pzNG5Rai9mdVB1M1pCSHl4enUzZUdTeTZnSTFLNHdYM3lI?=
 =?utf-8?B?akFFaGhqeWRabHNSKzZlMXpaMnFmTnJZaXVHQUVXdjk4TERsdkZoK0owWlhB?=
 =?utf-8?B?c0FpSFcxM1F2N2h2dlo5YXY4NGJWSDVxU3pabjgrbTlnaHpycU1sckV3dWFV?=
 =?utf-8?B?Nmt2cEhmaVYvcENLekxpdEMzY3FWUnZJajFCVVNNSm5CZ1oxcEtSKzBDdWxG?=
 =?utf-8?B?MGlXVlROeUtpTnc5bTZ0Q0pRZW40c3B6Z01takNDODdFM2FlOHMxK1VCYnBJ?=
 =?utf-8?B?YnpTYUYvQmgzTE1zNW9pY2FqMExDNU9EREJLdnZmQnVaK3E0VW11V0R2Titr?=
 =?utf-8?B?QlV3M1B0V0ZCdWxYYURQVDZHSXdtdnBVWE1BWUV3VnpDOTNQWjJNY2kxV29C?=
 =?utf-8?B?S0Y3ZDQwWkZYK0ZGQUFkQ1hGbC9aUWRDK0NnVEhleUJRUU1RTytUYXpuZWxm?=
 =?utf-8?B?VUpaYUsxY1FUU0RwVTRka2U4YzUyMjhGOS93c1hObkY2Y25GSVc2S21KSklz?=
 =?utf-8?B?TkFhYzhCdDhXM0l0SHVaN3gwOFFnL0c5b25SNFpIMVBRTU4xaTYyekZuK0xY?=
 =?utf-8?B?enNEN3cweGUwanlxTUhDTWZPOFFUSWtiTGZibHA0clpmVTVqUWVHdDJmWjZv?=
 =?utf-8?B?dzhGNTN4TzRqYVFpUVdicVJ5NGcySGR2M1BXQkNIcWtDcXF2VVFVQXNuSENZ?=
 =?utf-8?B?VEpwWVpSeWlZWjBvenNKNFZPRmxjNGVRV1ZoNDJZZjNtZnh6cjBLK1gwaVRC?=
 =?utf-8?B?Y05OOHJhbmpzVU1HWlZ3aGo4QlU5YTkvNEdPVHhxbDZFbkZjQnN3bThEa2pC?=
 =?utf-8?Q?4kxZ2Z?=
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: 09 Apr 2025 06:46:11.3965
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 7457f07f-e833-4c2d-82de-08dd7732372d
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: SA1PR12MB8723

Add a new function to emulate extended capability list for host,
and call it in init_header(). So that, it will be easy to hide
a capability whose initialization fails.

As for the extended capability list of guest, keep hiding it.

Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
---
cc: "Roger Pau Monné" <roger.pau@citrix.com>
---
v1->v2 changes:
new patch

Best regards,
Jiqian Chen.
---
 xen/drivers/vpci/header.c | 44 ++++++++++++++++++++++++++++++++-------
 1 file changed, 36 insertions(+), 8 deletions(-)

diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c
index 0910eb940e23..6833d456566b 100644
--- a/xen/drivers/vpci/header.c
+++ b/xen/drivers/vpci/header.c
@@ -815,6 +815,39 @@ static int vpci_init_capability_list(struct pci_dev *pdev)
     return rc;
 }
 
+static int vpci_init_ext_capability_list(struct pci_dev *pdev)
+{
+    int rc;
+    u32 header;
+    unsigned int pos = 0x100U, ttl = 480;
+
+    if ( !is_hardware_domain(pdev->domain) )
+    {
+        /* Extended capabilities read as zero, write ignore */
+        rc = vpci_add_register(pdev->vpci, vpci_read_val, NULL,
+                               pos, 4, (void *)0);
+        if ( rc )
+            return rc;
+    }
+
+    while ( pos && ttl-- )
+    {
+        header = pci_conf_read32(pdev->sbdf, pos);
+
+        rc = vpci_add_register(pdev->vpci, vpci_read_val, NULL,
+                               pos, 4, (void *)(uintptr_t)header);
+        if ( rc )
+            return rc;
+
+        if ( (header == 0) || (header == -1) )
+            return 0;
+
+        pos = PCI_EXT_CAP_NEXT(header);
+    }
+
+    return 0;
+}
+
 static int cf_check init_header(struct pci_dev *pdev)
 {
     uint16_t cmd;
@@ -867,14 +900,9 @@ static int cf_check init_header(struct pci_dev *pdev)
     if ( rc )
         return rc;
 
-    if ( !is_hwdom )
-    {
-        /* Extended capabilities read as zero, write ignore */
-        rc = vpci_add_register(pdev->vpci, vpci_read_val, NULL, 0x100, 4,
-                               (void *)0);
-        if ( rc )
-            return rc;
-    }
+    rc = vpci_init_ext_capability_list(pdev);
+    if ( rc )
+        return rc;
 
     if ( pdev->ignore_bars )
         return 0;
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Wed Apr 09 06:46:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 06:46:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.943382.1342146 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2PCU-00049Y-9b; Wed, 09 Apr 2025 06:46:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 943382.1342146; Wed, 09 Apr 2025 06: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 1u2PCU-00048n-3a; Wed, 09 Apr 2025 06:46:18 +0000
Received: by outflank-mailman (input) for mailman id 943382;
 Wed, 09 Apr 2025 06:46: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=3VhX=W3=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1u2PCS-000466-SN
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 06:46:16 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on2060c.outbound.protection.outlook.com
 [2a01:111:f403:2412::60c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 54164855-150e-11f0-9ffb-bf95429c2676;
 Wed, 09 Apr 2025 08:46:15 +0200 (CEST)
Received: from MN2PR17CA0003.namprd17.prod.outlook.com (2603:10b6:208:15e::16)
 by SJ0PR12MB6855.namprd12.prod.outlook.com (2603:10b6:a03:47e::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.34; Wed, 9 Apr
 2025 06:46:08 +0000
Received: from BN2PEPF00004FBB.namprd04.prod.outlook.com
 (2603:10b6:208:15e:cafe::f4) by MN2PR17CA0003.outlook.office365.com
 (2603:10b6:208:15e::16) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8606.35 via Frontend Transport; Wed,
 9 Apr 2025 06:46:08 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BN2PEPF00004FBB.mail.protection.outlook.com (10.167.243.181) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8606.22 via Frontend Transport; Wed, 9 Apr 2025 06:46:07 +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, 9 Apr
 2025 01:46:04 -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: 54164855-150e-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=sroPZVeBh84H84JcDGAdlfv6R9TDhayl9n3PPnQz42euOx7LFBxBac4aVL3jWHlffvahXxOfxj4k56SNgUA+1DHtlnQuGAuwUaXREtpiOPfrj8QF3MWJm1n6DYgaq4kFy96hANoyWAspCf8a0Jn5XqF1ZejaD/Q/5Rt/0+pyUbYBqVoSaUwIlbA6025ut+ZmDW203sqOs7g5cgqkdIVFIbASF1f4C6KjpIXhVs14q6ZwHMJ/PuvGpXKXPjzVOPbICDfs/P6FNWICM1yHcOwRMdhKQ3Ag5M/hxzXMExMVfl0mOEPkXPwPZRC2Z37aIc0HyBKU9F2a5wR+2gQtBl5amw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=/h+KmEfjEwaWP7PdqWTKb6YIL4NuLpnIAIStX4bOq1M=;
 b=bvrM9A5Une3nPG2cDVpm/GJ9LV45qh6Ll8p3dk4KWg5IjYqbTVBPdsmYhAQoJbcNGhorChI+nLyfHmX+k1Z/L9Zt/Kz99jNJFrZBJ/+pOi72EeaP36/OKDzhlVFbkqYihZErBqfg4G6Zb68VbMx7sZeAJ4wbCt6pFxDkioaT/SuhYouzjpbgt9gGJTF45QYLjAjFcXd+2HJTsjdEEx4yX5CCcNVZeb/2ZekeKt8RkA83ywS2Ui4nUy6zLPUrQm5zeS0QN0iWGqTfCL0SOHp3hoTdxAcRA+jHrIY12zJ4Nzkq6B9yhxtzJGHComtThS+Nsn9N/BiIFu4gALk6jkQzew==
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=/h+KmEfjEwaWP7PdqWTKb6YIL4NuLpnIAIStX4bOq1M=;
 b=aQ4VFtn305A4gxRBRFKiM7RCl3P4EZdxWZmnwiZzVm2oPtVF6UpE6FZOXhzu0U7oq/F/ypfbzsoLXt5CdR74IOT6eIepx3XRBvhI7xU0e+W0rB8TMRCYIstWXsczDxvULTyJJ7Zc7IDeWab5jIjpU6wtRh5xwA8Dlew+wB5FgGw=
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: Huang Rui <ray.huang@amd.com>, Jiqian Chen <Jiqian.Chen@amd.com>, "Andrew
 Cooper" <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, "Stefano
 Stabellini" <sstabellini@kernel.org>
Subject: [PATCH v2 1/8] driver/pci: Get next capability without passing caps
Date: Wed, 9 Apr 2025 14:45:21 +0800
Message-ID: <20250409064528.405573-2-Jiqian.Chen@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250409064528.405573-1-Jiqian.Chen@amd.com>
References: <20250409064528.405573-1-Jiqian.Chen@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: BN2PEPF00004FBB:EE_|SJ0PR12MB6855:EE_
X-MS-Office365-Filtering-Correlation-Id: a92275bd-1b4f-4140-4aee-08dd773234ff
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|376014|36860700013|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?MG1qUlp1dXhOYUgwSDd2S3pZbVJoYkpLQnltWS80dExVRE5kaFNNVWp6SDlF?=
 =?utf-8?B?bkYrUU0rbVVadU9oU2R6MVRSZWVLKzZtcmZ6VlJ2R3dRN29rU1c5Mm95MFFK?=
 =?utf-8?B?VDVram5zUXVSa1NjeTdqN3BVdzRmbll0bnV3SWRWb3EvTHBrek42TEFNZGVC?=
 =?utf-8?B?ZERkWGIxbERqWFdxWWZ1WjZZdU4vTmxMam5IMFN1MG83dUozRGdJd3FPUGhQ?=
 =?utf-8?B?b0NUazM1UFRzcnlLazg1U3lSVW9HTTB1M01Mc2duczhlZXlLa214eE9tUFVo?=
 =?utf-8?B?dG9nNVM0SDhOaUs0dk5qdzUyWDVRMmtEbU0vRytkZ3A2d0w0RlNJNWdyQkMr?=
 =?utf-8?B?VklEWWI1cDlDSjQwNThoR3JvZk9uOFhkWmhpRGdPMFduWng2dlRYbisrOWk2?=
 =?utf-8?B?dUZYRTk4a0srVFBvOUdWaHZhYzhhdnlRVnU1aUZLUlYyOW5menEyOUs0SFBk?=
 =?utf-8?B?aWRYZS9aRFZpdTA3MHJxMzhVWVVsODB5dnE4c0pseHo5RWp2MXpDcDU1MFE0?=
 =?utf-8?B?MkJISVVyWXFvdjY0amdDa2l4bXNxL3pxUDZjL3dQVFNwd204YzJkT2dpemVM?=
 =?utf-8?B?azdnQWtkVTh1UjJQSnk4V0dMMzFEREFJemdMMW12N2ZMdnR4cGZvUW41LzNF?=
 =?utf-8?B?YitibllDSmdEdEoyVTZ2bEdBY3l0OXJPc25zdWJVUEcyTDlsZWpEdjZ3Smdk?=
 =?utf-8?B?WVlJTC9Wc0N5bSt5c0o1WVRlTDNCbUkyZWZpODFYYU5HTDVNelM3Tk1MK0FS?=
 =?utf-8?B?ZkNwNzV0ckJSRmdxQXlrbzZ4bTVyNitsK1RhVlZzK3pSVDcvdXdMRldwK0FO?=
 =?utf-8?B?dnB2UXVTTXEyQ0RmdCt5SmtGMXZrdjlpUzZ0UTJrUStJck0xSVA1QXlwMU9a?=
 =?utf-8?B?WWR1VHdXdTBCSGs1L0NQeGhIeTZsOU5PN3ZOdnlaUmtCQ1V4eDdyeEx5TEV5?=
 =?utf-8?B?NlRtZ0ZIWFEySWlhZFZRQkRWcThtcCtkQm9rVzFCVXZUZFNKR1k2clFhMVUr?=
 =?utf-8?B?UGdyU1hBZWs0aHVkWERFajd0WW5Ua2NONGw1Vm9zaVBYK0tlSDI5Z0RHUktk?=
 =?utf-8?B?aFcwZk9FcDFBYWlzbkV4MU9POWVIZ1owVVNOanBjZGd1RzdDTVFkdEM5SjJC?=
 =?utf-8?B?Ukl6VWF5aEVZaWlkM21OQlhFcFZNSDZjNEpPRG9EbnA5TVQ5WTQvYTNWVjJt?=
 =?utf-8?B?YmZGc3JpcVplMmw4RUdyLzlZaUgvQitvTm1namtub3B1Wnhoc2ZJemJkQW5K?=
 =?utf-8?B?MCtXWnlhZUVmVWFTeHorbmdUSTVZNXdORG44NjREQnlYNjh4TW1IcHpsS3hu?=
 =?utf-8?B?QVVwdjh1Nk9DSnoyRUFDN0ZJRjd1RU5hZEE5M3VKZjhoM2RBcHJMd25hUm9l?=
 =?utf-8?B?QnBTeFQycy9HL1dKcFYwZmljVy9LdWVZVGR1dWhvNlViQ3g0OW9QYXN3YUlk?=
 =?utf-8?B?Ump5a2hsN1VBR2NjUmNlR0RNaUN1SXVjZGl6NVA1SzNWY1Y2bHVGd2s2alpG?=
 =?utf-8?B?WWJSUEhKQnlYZFQyWWlDSzVhZTRlY0c2TS9icVl3aDluTitRMytMdGJTRnFL?=
 =?utf-8?B?NlQ3WXZPUHIrYXMwSDY4cmZEMGJjQWNFWnRINFpubW1YYW94eEZ5TFlJRVlt?=
 =?utf-8?B?Q2VBMXgzc2VuTHpOZExpNmlKc0dhR1k1Z3JLRS9TRkl6aktMSmlmMzdpUFRn?=
 =?utf-8?B?aFZYSVc4Rk8vWDNsbHJ3YmV2TllTRGFPWWZBOW1UbkVpazdSaXl0MnlzRWpr?=
 =?utf-8?B?anM5cHNHSWNhb2dYblhXbmJLMnJ0TGwwbjFIWWo4dWk0SlFWUVlhR1hrT2hL?=
 =?utf-8?B?c3pKN2t5NlVEUFhuZnE4U2t0bFFZaWlYU2FWMGI1aWhGRHBoSnRUZjZGclNJ?=
 =?utf-8?B?OXVreENFMWVlT29WVlZYd1ptTkVKN1E0SEdEZVRlSHVxY2dIdzZBd3YzYmUz?=
 =?utf-8?B?cVJLcmRxU0QvWTVaSzVHaVFsNDlkQWFlQVNCOEVBUDBGNXdDRlhUdjEzK0R2?=
 =?utf-8?B?WGkzWlptVEE4UWJNaERjcUNZZ1pIMTRBYWJKWDM2OTVsSzVxSEdQWUNwREdR?=
 =?utf-8?Q?0RpNJm?=
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)(376014)(36860700013)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Apr 2025 06:46:07.7225
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: a92275bd-1b4f-4140-4aee-08dd773234ff
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:
	BN2PEPF00004FBB.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR12MB6855

Modify function pci_find_next_cap_ttl to support returning position
of next capability when array "caps" is empty or size "n" is zero.

That can help caller to get next capability offset if caller just
has a information of current capability offset.

That will be used in a follow-on change.

Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
---
cc: Andrew Cooper <andrew.cooper3@citrix.com>
cc: Anthony PERARD <anthony.perard@vates.tech>
cc: Michal Orzel <michal.orzel@amd.com>
cc: Jan Beulich <jbeulich@suse.com>
cc: Julien Grall <julien@xen.org>
cc: "Roger Pau Monné" <roger.pau@citrix.com>
cc: Stefano Stabellini <sstabellini@kernel.org>
---
v1->v2 changes:
new patch

Best regards,
Jiqian Chen.
---
 xen/drivers/pci/pci.c | 6 +++++-
 xen/include/xen/pci.h | 2 +-
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/xen/drivers/pci/pci.c b/xen/drivers/pci/pci.c
index edf5b9f7ae9f..ec81d0db6133 100644
--- a/xen/drivers/pci/pci.c
+++ b/xen/drivers/pci/pci.c
@@ -40,7 +40,7 @@ unsigned int pci_find_cap_offset(pci_sbdf_t sbdf, unsigned int cap)
 }
 
 unsigned int pci_find_next_cap_ttl(pci_sbdf_t sbdf, unsigned int pos,
-                                   const unsigned int caps[], unsigned int n,
+                                   const unsigned int *caps, unsigned int n,
                                    unsigned int *ttl)
 {
     while ( (*ttl)-- )
@@ -55,6 +55,10 @@ unsigned int pci_find_next_cap_ttl(pci_sbdf_t sbdf, unsigned int pos,
 
         if ( id == 0xff )
             break;
+
+        if ( !caps || n == 0 )
+            return pos;
+
         for ( i = 0; i < n; i++ )
         {
             if ( id == caps[i] )
diff --git a/xen/include/xen/pci.h b/xen/include/xen/pci.h
index ef601966533e..cc84f2cbebfc 100644
--- a/xen/include/xen/pci.h
+++ b/xen/include/xen/pci.h
@@ -251,7 +251,7 @@ int pci_mmcfg_write(unsigned int seg, unsigned int bus,
                     unsigned int devfn, int reg, int len, u32 value);
 unsigned int pci_find_cap_offset(pci_sbdf_t sbdf, unsigned int cap);
 unsigned int pci_find_next_cap_ttl(pci_sbdf_t sbdf, unsigned int pos,
-                                   const unsigned int caps[], unsigned int n,
+                                   const unsigned int *caps, unsigned int n,
                                    unsigned int *ttl);
 unsigned int pci_find_next_cap(pci_sbdf_t sbdf, unsigned int pos,
                                unsigned int cap);
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Wed Apr 09 06:46:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 06:46:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.943384.1342170 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2PCX-0004oO-Qa; Wed, 09 Apr 2025 06:46:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 943384.1342170; Wed, 09 Apr 2025 06: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 1u2PCX-0004oH-NW; Wed, 09 Apr 2025 06:46:21 +0000
Received: by outflank-mailman (input) for mailman id 943384;
 Wed, 09 Apr 2025 06:46: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=3VhX=W3=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1u2PCW-0004jx-L7
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 06:46:20 +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 577e340c-150e-11f0-9eaa-5ba50f476ded;
 Wed, 09 Apr 2025 08:46:19 +0200 (CEST)
Received: from BN9P220CA0024.NAMP220.PROD.OUTLOOK.COM (2603:10b6:408:13e::29)
 by DM6PR12MB4434.namprd12.prod.outlook.com (2603:10b6:5:2ad::12) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.21; Wed, 9 Apr
 2025 06:46:15 +0000
Received: from BN2PEPF00004FBA.namprd04.prod.outlook.com
 (2603:10b6:408:13e:cafe::a6) by BN9P220CA0024.outlook.office365.com
 (2603:10b6:408:13e::29) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.19 via Frontend Transport; Wed,
 9 Apr 2025 06:46:15 +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.8606.22 via Frontend Transport; Wed, 9 Apr 2025 06:46:15 +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, 9 Apr
 2025 01:46:10 -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: 577e340c-150e-11f0-9eaa-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=txhPBfNYIBbe13GDpw7zgBwecUN8YKIrCbv0ewT1GJ74d8xnWnnJDWeg1ABO+AjIl4Kw4kBs+nePcnoFuhJYUxF+jarHAgQ+QC+jvCTzLY9WP8jtL9yz3GNEeng07ngEGTgl8/AHzEkez/rqJ4cj9T97b66DphY1rjzaPNnt738TPVAn7amcvYvL276+RE/eclcc+1L7LBfos9cILGT9YInpZ0m1goJGpvB0QEOb6bkgluc46ENsw0GWoF9LvS5vhLklGMHFXhGYNcoSdkxF7OYzYJR8Uy8SsO2HzjaoxHxBDfBBerENKf+ZxVIcvBI3JGGkJCAuw4W4R7a8QEL+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=3K+lOO8/HCLmhhfH2l4Onp6abTn+2M6qeZACn+U2biw=;
 b=NRjohrHf6r3+WROaYI/sLlYekaDd2+KRbCsZctWATkTjUOz8uwv/28AK3kMiye0g85YcmLu7c4944mErf2q5vZAnYkvgDG3Xfkmyv3gp+l7CC1kDGxpktlbMICzOkhTbTEKzCfTJI7o6UrJ3jNAcmf3tvrEJOYcXJWNoFvBiXCDG9kWBvP+ipaFFvzUeTyUa70MtRZfSwOOupO0dacaoorWh6DA4b4EPPqdRH81l+gfWeMdZFePPtLDGWYijcMmL1WyIBmabL0PUHLaptse/RUGhgqWe7qU5etK5/uYtvPhKpfoe9k53J4OGklp3/RKx6OAtMGcsaDs3Mn/A319exg==
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=3K+lOO8/HCLmhhfH2l4Onp6abTn+2M6qeZACn+U2biw=;
 b=m67U1eWhgB/+mrxKLLHxOCR9i808TUBlbLHbH02vnY4mHnEUw2n/flBlbx+qeI16BYBGNcJAt1NzTuHBynIpXcno6u+yCSXp24FaIZPBN1uaEL87QG+ZflCgjyBdcvDcs/4T0AswMK7Fs0lAjTsybq0ip2KaL7x+RtLHLg6N2js=
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: Huang Rui <ray.huang@amd.com>, Jiqian Chen <Jiqian.Chen@amd.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, "Julien
 Grall" <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 4/8] vpci: Hide capability when it fails to initialize
Date: Wed, 9 Apr 2025 14:45:24 +0800
Message-ID: <20250409064528.405573-5-Jiqian.Chen@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250409064528.405573-1-Jiqian.Chen@amd.com>
References: <20250409064528.405573-1-Jiqian.Chen@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: BN2PEPF00004FBA:EE_|DM6PR12MB4434:EE_
X-MS-Office365-Filtering-Correlation-Id: 9e69c30c-7b73-42ca-8d8a-08dd773239a0
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|376014|36860700013|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?YjlGdVlGMjlpR3BGcmZDbXRsUUoxRjdXV2hYZ0FZQUZOSEhvSlp1WTNmZzdt?=
 =?utf-8?B?cUJZRXNWMG4rdzRqNUlNaURVbWlXeXVOZldRR0tLUy83UzB5SHRuT1FPc2pL?=
 =?utf-8?B?WnJRcjhBT2hrYnFqWVBYb0pMZ28zQVZyTm1vdzV2RjhTQzhGSWtxQmJGQjZK?=
 =?utf-8?B?NXY0Z3F6Q3hJTmZVWlFiT09xVWZHbDRyL0tBT3d1UnUvU2NpT2MvOWVad3gv?=
 =?utf-8?B?Q2V3OGJNNGkxeGVkMlR1a2ZRK2N4ZHBIYzUwOVJ0S29ldXAyOVVlaFRtcjk5?=
 =?utf-8?B?MWhHUUxaa2lhTXdnV3V4cUZVejFMNHB4Uk9EUHdtd2pYSXNXcVoxNTZBS29h?=
 =?utf-8?B?d0lPUnBuczRkYk9WMXhvNVJtR3YzUjdMU3hvZERKeFAzajRwT1VLcnhKbm9z?=
 =?utf-8?B?cWJEZHVhMEU5dUJnb0x6cm9TSnlnU0lDYlJ1Q0ZjaFBWK3VNSFUwVFFtbDBF?=
 =?utf-8?B?T3MvSVZIK3o5b1kwMnA3dzlOQzFqeDFjVVo4NlVsRDhOYWxGQU8wcDBZRkJv?=
 =?utf-8?B?eGNxOG1DMlZBRHh4cExFK1lTbzFhZW4rNTI1VmZXd3FDU3lSN1BFZjFveE8x?=
 =?utf-8?B?Nm1WZmE0MFdlZWpodkd1TlBFZmNSOGxReHFTcW1xbWY0L0lXRlRkbjk3R01a?=
 =?utf-8?B?M05RZ0xzWFhjT1R1TnNyRlBPN3JXMkViM1QxZEdQckpRYXhyQ1VmRjBvR2hC?=
 =?utf-8?B?bFVBR2NKaktQYTFhejJVUENCTlU0OVFIOFptMFlLT1JXU1BPSWtRbU1BZnJw?=
 =?utf-8?B?K0k0NVVacDdFN3NuMVl4aDdIWjBOdWJOWXBTcE1KQnlHdUNmYWhCenpMNHhS?=
 =?utf-8?B?V2U5TFdUcU42bVJ6TWxCV1V0OTE3bmplbFVrQWxiVHJUb3F3ZCtjVE9rajJQ?=
 =?utf-8?B?MTNENkFzZFJnZzN3Zkllbmt1cUZrSFREOUtQbHZsUDhGaEpFeHJPOVpOKzZG?=
 =?utf-8?B?U0ZIZVBTUnpka2k2WUNJYks3SHNsTURWUjM4blBncUEwemE0MnlLN1FILzZK?=
 =?utf-8?B?ZzM5QVZkUjdpamhDR2h3elJXTDR5WTFteVNMcHJUWmV1dDRjL1FYcFJDRCtu?=
 =?utf-8?B?cmc1RzlMa3FkVEJuVUVNc1BXbGdwQ2xFK0g5ZG9ZMWRlT3RiaWkwWmdDdXBr?=
 =?utf-8?B?V042RkVaOUxLdEU0YytHbC9UZGkxd3I2ZUI1UUl5WTA2SUNjVjRkcnNjMmJ0?=
 =?utf-8?B?MkpjQ0ZGSEx4MkdPc0piS2xaOVoxMXN5M2Q5Rk1NQXpDODNRb0xacDdZdXpS?=
 =?utf-8?B?N2xIT3plZFkyNUYvSitvdWxJTHpIVmxiQlU2RkRoVFlPMmNLOUpBUkVzQjhJ?=
 =?utf-8?B?dFJqR3F6US9sZzg4M1N1S1VJVmc0YmhWelltR2pHZTYxMDJWc1Byb20vbnV6?=
 =?utf-8?B?Z3o3bnVtUGFQYzJXSmVHVlpEeEhoV0xLYXluUEErcUZrY0I2Tit6NUxMSHdi?=
 =?utf-8?B?bTNXQUxiQVhURVdwdWw3ZGRLZk14T1hkZG1aWHF1aVdKOGRPZzJsWE40cEYv?=
 =?utf-8?B?eXlWS095Z0JueFdGK2QvNmZCZEk2UHVrYzhLWklaMTI2enVwNmJxeldLTnZz?=
 =?utf-8?B?VXZMZVRHU25adGRGSTU1aUhhcnk0elBIWjJoTXh1bXNhRitOZWZ2dEl4MFBW?=
 =?utf-8?B?aEprVWFBRk5SdSs4ZDJFbUNvdFBUaUNEaEVmbmVIY3FpZTZRM00xcjhNSzFZ?=
 =?utf-8?B?NXdieGZWRHVwbXptZi9UUFpJQnNwMWRoV0VFQm90ZXhDeUhSY29YNG0zczBW?=
 =?utf-8?B?Z0FCZUlRK1dsQlJwVGVkbTBMK25GZS94bkhzbU41QmdreDlkQjRJWTVCZTBN?=
 =?utf-8?B?all4L3lFYkZSU3pwRVlJL2lwaHROL2NvTGNFR3d4K2IreS9FWTRneEYvMmNV?=
 =?utf-8?B?RDhMblV3a05veGJqcHBkSlE5QXJaaG1KUHFidGozWmk1N3c5S3NyaWJQYUVM?=
 =?utf-8?B?a2FuWXZwbWlFclk1bkZGUHBJZWpnczUzNVpGVjdiNzdwQUl0R1R1REVvS2hQ?=
 =?utf-8?Q?ajXinbHdx2xMQNCoIwcShULTWASljM=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)(82310400026)(376014)(36860700013)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Apr 2025 06:46:15.4903
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 9e69c30c-7b73-42ca-8d8a-08dd773239a0
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: DM6PR12MB4434

When vpci fails to initialize a capability of a device, it just
return error instead of catching and processing exception. That
makes the entire device unusable.

So, refactor REGISTER_VPCI_INIT to contain more capability specific
information, and use new functions to hide capability when
initialization fails in vpci_assign_device().

Those new functions remove the failed legacy/extended capability
from the emulated legacy/extended capability list.

What's more, change the definition of init_header() since it is
not a capability and it is needed for all devices' PCI config space.

Note: call vpci_make_msix_hole() in the end of init_msix() since the
change of sequence of init_header() and init_msix().

Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
---
cc: "Roger Pau Monné" <roger.pau@citrix.com>
cc: Andrew Cooper <andrew.cooper3@citrix.com>
cc: Anthony PERARD <anthony.perard@vates.tech>
cc: Michal Orzel <michal.orzel@amd.com>
cc: Jan Beulich <jbeulich@suse.com>
cc: Julien Grall <julien@xen.org>
cc: Stefano Stabellini <sstabellini@kernel.org>
---
v1->v2 changes:
* Removed the "priorities" of initializing capabilities since it isn't used anymore.
* Added new function vpci_capability_mask() and vpci_ext_capability_mask() to remove failed capability from list.
* Called vpci_make_msix_hole() in the end of init_msix().

Best regards,
Jiqian Chen.
---
 xen/drivers/vpci/header.c  |   3 +-
 xen/drivers/vpci/msi.c     |   2 +-
 xen/drivers/vpci/msix.c    |   8 +-
 xen/drivers/vpci/rebar.c   |   2 +-
 xen/drivers/vpci/vpci.c    | 175 +++++++++++++++++++++++++++++++------
 xen/include/xen/pci_regs.h |   1 +
 xen/include/xen/vpci.h     |  26 ++++--
 xen/include/xen/xen.lds.h  |   2 +-
 8 files changed, 179 insertions(+), 40 deletions(-)

diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c
index 6833d456566b..51a67d76ad8a 100644
--- a/xen/drivers/vpci/header.c
+++ b/xen/drivers/vpci/header.c
@@ -848,7 +848,7 @@ static int vpci_init_ext_capability_list(struct pci_dev *pdev)
     return 0;
 }
 
-static int cf_check init_header(struct pci_dev *pdev)
+int vpci_init_header(struct pci_dev *pdev)
 {
     uint16_t cmd;
     uint64_t addr, size;
@@ -1044,7 +1044,6 @@ static int cf_check init_header(struct pci_dev *pdev)
     pci_conf_write16(pdev->sbdf, PCI_COMMAND, cmd);
     return rc;
 }
-REGISTER_VPCI_INIT(init_header, VPCI_PRIORITY_MIDDLE);
 
 /*
  * Local variables:
diff --git a/xen/drivers/vpci/msi.c b/xen/drivers/vpci/msi.c
index 66e5a8a116be..ca89ae9b9c22 100644
--- a/xen/drivers/vpci/msi.c
+++ b/xen/drivers/vpci/msi.c
@@ -270,7 +270,7 @@ static int cf_check init_msi(struct pci_dev *pdev)
 
     return 0;
 }
-REGISTER_VPCI_INIT(init_msi, VPCI_PRIORITY_LOW);
+REGISTER_VPCI_LEGACY_CAP(PCI_CAP_ID_MSI, init_msi);
 
 void vpci_dump_msi(void)
 {
diff --git a/xen/drivers/vpci/msix.c b/xen/drivers/vpci/msix.c
index 6bd8c55bb48e..6537374c79a0 100644
--- a/xen/drivers/vpci/msix.c
+++ b/xen/drivers/vpci/msix.c
@@ -751,9 +751,13 @@ static int cf_check init_msix(struct pci_dev *pdev)
     pdev->vpci->msix = msix;
     list_add(&msix->next, &d->arch.hvm.msix_tables);
 
-    return 0;
+    spin_lock(&pdev->vpci->lock);
+    rc = vpci_make_msix_hole(pdev);
+    spin_unlock(&pdev->vpci->lock);
+
+    return rc
 }
-REGISTER_VPCI_INIT(init_msix, VPCI_PRIORITY_HIGH);
+REGISTER_VPCI_LEGACY_CAP(PCI_CAP_ID_MSIX, init_msix);
 
 /*
  * Local variables:
diff --git a/xen/drivers/vpci/rebar.c b/xen/drivers/vpci/rebar.c
index 793937449af7..79858e5dc92f 100644
--- a/xen/drivers/vpci/rebar.c
+++ b/xen/drivers/vpci/rebar.c
@@ -118,7 +118,7 @@ static int cf_check init_rebar(struct pci_dev *pdev)
 
     return 0;
 }
-REGISTER_VPCI_INIT(init_rebar, VPCI_PRIORITY_LOW);
+REGISTER_VPCI_EXTEND_CAP(PCI_EXT_CAP_ID_REBAR, init_rebar);
 
 /*
  * Local variables:
diff --git a/xen/drivers/vpci/vpci.c b/xen/drivers/vpci/vpci.c
index 1e6aa5d799b9..f1f125bfdab1 100644
--- a/xen/drivers/vpci/vpci.c
+++ b/xen/drivers/vpci/vpci.c
@@ -35,9 +35,25 @@ struct vpci_register {
     uint32_t rsvdz_mask;
 };
 
+static int vpci_register_cmp(const struct vpci_register *r1,
+                             const struct vpci_register *r2)
+{
+    /* Return 0 if registers overlap. */
+    if ( r1->offset < r2->offset + r2->size &&
+         r2->offset < r1->offset + r1->size )
+        return 0;
+    if ( r1->offset < r2->offset )
+        return -1;
+    if ( r1->offset > r2->offset )
+        return 1;
+
+    ASSERT_UNREACHABLE();
+    return 0;
+}
+
 #ifdef __XEN__
-extern vpci_register_init_t *const __start_vpci_array[];
-extern vpci_register_init_t *const __end_vpci_array[];
+extern vpci_capability_t *const __start_vpci_array[];
+extern vpci_capability_t *const __end_vpci_array[];
 #define NUM_VPCI_INIT (__end_vpci_array - __start_vpci_array)
 
 #ifdef CONFIG_HAS_VPCI_GUEST_SUPPORT
@@ -83,6 +99,133 @@ static int assign_virtual_sbdf(struct pci_dev *pdev)
 
 #endif /* CONFIG_HAS_VPCI_GUEST_SUPPORT */
 
+static void vpci_capability_mask(struct pci_dev *pdev,
+                                 const unsigned int cap)
+{
+    const unsigned int size = 1;
+    const unsigned int offset = pci_find_cap_offset(pdev->sbdf, cap);
+    const struct vpci_register r = { .offset = offset, .size = size };
+    struct vpci_register *rm;
+    struct vpci *vpci = pdev->vpci;
+
+    spin_lock(&vpci->lock);
+    list_for_each_entry ( rm, &vpci->handlers, node )
+    {
+        int cmp = vpci_register_cmp(&r, rm);
+
+        if ( !cmp && rm->offset == offset && rm->size == size )
+        {
+            struct vpci_register *pre = list_entry(rm->node.prev,
+                                                   struct vpci_register,
+                                                   node);
+            struct vpci_register *next = list_entry(rm->node.next,
+                                                    struct vpci_register,
+                                                    node);
+
+            pre->private = next->private;
+
+            /* PCI_CAP_LIST_ID register of current capability */
+            list_del(&rm->node);
+            /* PCI_CAP_LIST_NEXT register of current capability */
+            list_del(&next->node);
+            spin_unlock(&vpci->lock);
+
+            xfree(rm);
+            xfree(next);
+            return;
+        }
+        if ( cmp <= 0 )
+            break;
+    }
+    spin_unlock(&vpci->lock);
+}
+
+static void vpci_ext_capability_mask(struct pci_dev *pdev,
+                                     const unsigned int cap)
+{
+    const unsigned int size = 4;
+    const unsigned int offset = pci_find_ext_capability(pdev->sbdf, cap);
+    const struct vpci_register r = { .offset = offset, .size = size };
+    struct vpci_register *rm;
+    struct vpci *vpci = pdev->vpci;
+
+    spin_lock(&vpci->lock);
+    list_for_each_entry ( rm, &vpci->handlers, node )
+    {
+        int cmp = vpci_register_cmp(&r, rm);
+
+        if ( !cmp && rm->offset == offset && rm->size == size )
+        {
+            struct vpci_register *pre;
+            u32 pre_header, header = (u32)(uintptr_t)rm->private;
+
+            if ( offset == 0x100U && PCI_EXT_CAP_NEXT(header) == 0 )
+            {
+                rm->private = (void *)(uintptr_t)0;
+                spin_unlock(&vpci->lock);
+                return;
+            }
+            else if ( offset == 0x100U )
+            {
+                pre = rm;
+                rm = list_entry(rm->node.next, struct vpci_register, node);
+                pre->private = rm->private;
+            }
+            else
+            {
+                pre = list_entry(rm->node.prev, struct vpci_register, node);
+                pre_header = (u32)(uintptr_t)pre->private;
+                pre->private =
+                    (void *)(uintptr_t)((pre_header & !PCI_EXT_CAP_NEXT_MASK) |
+                                        (header & PCI_EXT_CAP_NEXT_MASK));
+            }
+            list_del(&rm->node);
+            spin_unlock(&vpci->lock);
+            xfree(rm);
+            return;
+        }
+        if ( cmp <= 0 )
+            break;
+    }
+    spin_unlock(&vpci->lock);
+}
+
+static void vpci_init_capabilities(struct pci_dev *pdev)
+{
+    for ( unsigned int i = 0; i < NUM_VPCI_INIT; i++ )
+    {
+        const vpci_capability_t *capability = __start_vpci_array[i];
+        const unsigned int cap = capability->id;
+        const bool is_ext = capability->is_ext;
+        unsigned int pos;
+        int rc;
+
+        if ( !is_hardware_domain(pdev->domain) && is_ext )
+            continue;
+
+        if ( is_ext )
+            pos = pci_find_ext_capability(pdev->sbdf, cap);
+        else
+            pos = pci_find_cap_offset(pdev->sbdf, cap);
+
+        if ( !pos )
+            continue;
+
+        rc = capability->init(pdev);
+
+        if ( rc )
+        {
+            printk(XENLOG_WARNING "%pd %pp: %s cap %u init fail rc=%d, mask it\n",
+                   pdev->domain, &pdev->sbdf,
+                   is_ext ? "extended" : "legacy", cap, rc);
+            if ( is_ext )
+                vpci_ext_capability_mask(pdev, cap);
+            else
+                vpci_capability_mask(pdev, cap);
+        }
+    }
+}
+
 void vpci_deassign_device(struct pci_dev *pdev)
 {
     unsigned int i;
@@ -128,7 +271,6 @@ void vpci_deassign_device(struct pci_dev *pdev)
 
 int vpci_assign_device(struct pci_dev *pdev)
 {
-    unsigned int i;
     const unsigned long *ro_map;
     int rc = 0;
 
@@ -159,12 +301,11 @@ int vpci_assign_device(struct pci_dev *pdev)
         goto out;
 #endif
 
-    for ( i = 0; i < NUM_VPCI_INIT; i++ )
-    {
-        rc = __start_vpci_array[i](pdev);
-        if ( rc )
-            break;
-    }
+    rc = vpci_init_header(pdev);
+    if ( rc )
+        goto out;
+
+    vpci_init_capabilities(pdev);
 
  out: __maybe_unused;
     if ( rc )
@@ -174,22 +315,6 @@ int vpci_assign_device(struct pci_dev *pdev)
 }
 #endif /* __XEN__ */
 
-static int vpci_register_cmp(const struct vpci_register *r1,
-                             const struct vpci_register *r2)
-{
-    /* Return 0 if registers overlap. */
-    if ( r1->offset < r2->offset + r2->size &&
-         r2->offset < r1->offset + r1->size )
-        return 0;
-    if ( r1->offset < r2->offset )
-        return -1;
-    if ( r1->offset > r2->offset )
-        return 1;
-
-    ASSERT_UNREACHABLE();
-    return 0;
-}
-
 /* Dummy hooks, writes are ignored, reads return 1's */
 static uint32_t cf_check vpci_ignored_read(
     const struct pci_dev *pdev, unsigned int reg, void *data)
diff --git a/xen/include/xen/pci_regs.h b/xen/include/xen/pci_regs.h
index 27b4f44eedf3..5fe6653fded4 100644
--- a/xen/include/xen/pci_regs.h
+++ b/xen/include/xen/pci_regs.h
@@ -449,6 +449,7 @@
 #define PCI_EXT_CAP_ID(header)		((header) & 0x0000ffff)
 #define PCI_EXT_CAP_VER(header)		(((header) >> 16) & 0xf)
 #define PCI_EXT_CAP_NEXT(header)	(((header) >> 20) & 0xffc)
+#define PCI_EXT_CAP_NEXT_MASK		0xFFC00000U
 
 #define PCI_EXT_CAP_ID_ERR	1
 #define PCI_EXT_CAP_ID_VC	2
diff --git a/xen/include/xen/vpci.h b/xen/include/xen/vpci.h
index 807401b2eaa2..5016ded64d89 100644
--- a/xen/include/xen/vpci.h
+++ b/xen/include/xen/vpci.h
@@ -13,11 +13,11 @@ typedef uint32_t vpci_read_t(const struct pci_dev *pdev, unsigned int reg,
 typedef void vpci_write_t(const struct pci_dev *pdev, unsigned int reg,
                           uint32_t val, void *data);
 
-typedef int vpci_register_init_t(struct pci_dev *dev);
-
-#define VPCI_PRIORITY_HIGH      "1"
-#define VPCI_PRIORITY_MIDDLE    "5"
-#define VPCI_PRIORITY_LOW       "9"
+typedef struct {
+    unsigned int id;
+    bool is_ext;
+    int (*init)(struct pci_dev *pdev);
+} vpci_capability_t;
 
 #define VPCI_ECAM_BDF(addr)     (((addr) & 0x0ffff000) >> 12)
 
@@ -29,9 +29,19 @@ typedef int vpci_register_init_t(struct pci_dev *dev);
  */
 #define VPCI_MAX_VIRT_DEV       (PCI_SLOT(~0) + 1)
 
-#define REGISTER_VPCI_INIT(x, p)                \
-  static vpci_register_init_t *const x##_entry  \
-               __used_section(".data.vpci." p) = (x)
+#define REGISTER_VPCI_CAP(cap, x, ext) \
+  static vpci_capability_t x##_t = { \
+        .id = (cap), \
+        .init = (x), \
+        .is_ext = (ext), \
+  }; \
+  static vpci_capability_t *const x##_entry  \
+               __used_section(".data.vpci.") = &(x##_t)
+
+#define REGISTER_VPCI_LEGACY_CAP(cap, x) REGISTER_VPCI_CAP(cap, x, false)
+#define REGISTER_VPCI_EXTEND_CAP(cap, x) REGISTER_VPCI_CAP(cap, x, true)
+
+int __must_check vpci_init_header(struct pci_dev *pdev);
 
 /* Assign vPCI to device by adding handlers. */
 int __must_check vpci_assign_device(struct pci_dev *pdev);
diff --git a/xen/include/xen/xen.lds.h b/xen/include/xen/xen.lds.h
index 16a9b1ba03db..c73222112dd3 100644
--- a/xen/include/xen/xen.lds.h
+++ b/xen/include/xen/xen.lds.h
@@ -187,7 +187,7 @@
 #define VPCI_ARRAY               \
        . = ALIGN(POINTER_ALIGN); \
        __start_vpci_array = .;   \
-       *(SORT(.data.vpci.*))     \
+       *(.data.vpci.*)     \
        __end_vpci_array = .;
 #else
 #define VPCI_ARRAY
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Wed Apr 09 06:46:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 06:46:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.943387.1342190 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2PCd-0005PX-Gk; Wed, 09 Apr 2025 06:46:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 943387.1342190; Wed, 09 Apr 2025 06:46: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 1u2PCd-0005PG-B2; Wed, 09 Apr 2025 06:46:27 +0000
Received: by outflank-mailman (input) for mailman id 943387;
 Wed, 09 Apr 2025 06:46: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=3VhX=W3=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1u2PCb-0004jx-DY
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 06:46:25 +0000
Received: from NAM11-CO1-obe.outbound.protection.outlook.com
 (mail-co1nam11on20620.outbound.protection.outlook.com
 [2a01:111:f403:2416::620])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5a0bd2f3-150e-11f0-9eaa-5ba50f476ded;
 Wed, 09 Apr 2025 08:46:24 +0200 (CEST)
Received: from BN9P220CA0030.NAMP220.PROD.OUTLOOK.COM (2603:10b6:408:13e::35)
 by CY3PR12MB9554.namprd12.prod.outlook.com (2603:10b6:930:109::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.21; Wed, 9 Apr
 2025 06:46:21 +0000
Received: from BN2PEPF00004FBA.namprd04.prod.outlook.com
 (2603:10b6:408:13e:cafe::f) by BN9P220CA0030.outlook.office365.com
 (2603:10b6:408:13e::35) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.22 via Frontend Transport; Wed,
 9 Apr 2025 06:46:21 +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.8606.22 via Frontend Transport; Wed, 9 Apr 2025 06:46:21 +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, 9 Apr
 2025 01:46:18 -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: 5a0bd2f3-150e-11f0-9eaa-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ksd9NBKnC2DpIdQt7wmhlmectJGksMJIPnIXO+HSBBsQhuFDZ8Us+SD+Wa7LV7evidrgndjDqy8GfR8l62+P2r0USMgP+3VedRAun2WIon/HV960vyhRuzEnYjPINjnwwXTPSFApkLGfEw+R5S6R5m+de9uFzGGYEE3sidlD0scr92RyQJmXxDNtczyEF5L3Hz7UJ3uHjJEqfLOcXzszlRCJsGvKwb319DLnqxr2p1tXsNWD4MKBge167GBgXEuGkLqvRxGqgVtPkuhGqvmtOO9T3MmOEcxjtrbT8zktBCSQUf+YuOW+Jh9YtkPMW3AdwFgNMqRHQRUj8cuqw+nf+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=F4Ti2Z/GvBJAwx+bvK2L7kcEL+RfV9q/pK8cHYDjclg=;
 b=IW5Ln5v8KnXrTBy7hUsXpy2FY8o+O2YxvTEBZq7K7waIRBKH1lvUWxgMRu55OKvzdAqNDjUP8ojVteulIl2j7KPNg3KD18yWctfn6j+GKb/Qv7Osf6pipwhHSo4ukAb/dRI+bn2OJMGQlSSEStjdrSUTP3RIjTK4Z5xN3GgEmgr5n2ilN3JJRK2jHnUTSaD5XznzUunO+U3Hbsv5GJVhB/N9vI/UmrJ1fQnZn1t2BooDbKPLZhmL/dYFkBGADJOClX3q2Vw1hImwvO1q4VMxxTKs0Bsj+ON9mD0C5q3Bk8yKF3GIgSm2vEpft4ivode8hDYHFaSmuqBrLhWW1BP5Hw==
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=F4Ti2Z/GvBJAwx+bvK2L7kcEL+RfV9q/pK8cHYDjclg=;
 b=nO5BAZIRSBytL9k9lf8NbJyxsB1d6anIHDE+gYclVEuAHehfmoOu4WXTreyWinskL6R9mavxUPCDx5UXFHNCXL7N83R9PkPRJWCwzbGCNAhZrBvowhrO3m6JjTSgUs01DYQeJdUqafTtrV7Q/IwoLitmVWS75p5wDbldQDb3e2U=
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: Huang Rui <ray.huang@amd.com>, Jiqian Chen <Jiqian.Chen@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 v2 8/8] vpci/msix: Add function to clean MSIX resources
Date: Wed, 9 Apr 2025 14:45:28 +0800
Message-ID: <20250409064528.405573-9-Jiqian.Chen@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250409064528.405573-1-Jiqian.Chen@amd.com>
References: <20250409064528.405573-1-Jiqian.Chen@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: BN2PEPF00004FBA:EE_|CY3PR12MB9554:EE_
X-MS-Office365-Filtering-Correlation-Id: 7ae12941-be2c-4c6e-b3f1-08dd77323d12
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?TlVqZklKSzVGTmkrcXN2M3gyeDhzOHRQRElKRzRBN1NhR05FZnp2c3BvYUJo?=
 =?utf-8?B?UUZQZFNybHdxRC9JTXBlMGIxanhac05keXJoY2dmcFVOK0VEdnZWTWRXbkRk?=
 =?utf-8?B?ZkdmRExxSEtzQis5OW5LcmpQSHo0WjJhRXpUbXJiUHFwdjBPQlFJcVU3UnRF?=
 =?utf-8?B?aVNCM0poZ2drREdOY2t0WW1DSUVoWTQrMzVFQVUwdFpEVDZpUGpjWERXaTRw?=
 =?utf-8?B?KzBZM1d1SkhVcXl3anljOGdadUJyYStoNVgyUWFhcTNHL0UwcEw0UjNUeUJq?=
 =?utf-8?B?ZGxtVmZqbXNKYUNwVVljcGFJclVrcmtWb0JTV3IxTmwxNUtyVFZseGM3YXp6?=
 =?utf-8?B?UlcreUdVU1dlU3RuUlJBQnF2V0E1QUNlemE1eVhPQ1BVYTVvSFlIbHFXa3NB?=
 =?utf-8?B?eUQxdGg5NmxpMWIwMXc2MlZhZ1pFK3JzRit4WE5NTmcxaWw3QTBoeTJGTXN5?=
 =?utf-8?B?S0VFOG9ua1g1S1MzRlplVEd4UHBjd0E5aUttbGZqUHp5ZU13TG1DcUhJdm9V?=
 =?utf-8?B?ay9RVnU2VHNZOWNUN3FKb3FSVEwrRXZsT01Zdzc1N0dKSW9QajJjNHVsejFV?=
 =?utf-8?B?b2ZKVjE3a2g3S1JiSHV1UHF4dUNmSXZiR3UrNGM0a2lQb3ovN1R3cHl2YjNt?=
 =?utf-8?B?OXlwOW9CdGFzWXYzSVZIcWtxcGw0TWE2WU9sczh2eVJCbENST05iWlJReU9B?=
 =?utf-8?B?cVNkV0diNVk3cXZGZEdreFV4Z21nV21oQnptaVp1REtZdzdPQ1B6N2FoQk5j?=
 =?utf-8?B?dXdDU2h1bUlxT1BVWVZEL3FIbjNDK1pwaWVsVG1jU0RiNEZMS0hhQkI0T3Vm?=
 =?utf-8?B?UHRPN0dlYzNGQmc1VTRDd2lBckt0dzA1aHVXYmRod3FMbTZySnE0SzIxY2ZX?=
 =?utf-8?B?SElCRVdoNFI5TzNQOHJyQVVLRkNzWFpzd3RESjN5SzFaQ2psd3k0RmxYTDVS?=
 =?utf-8?B?QUJsY3FZcG1qVzdYaGtDRENIQ3RiR2N3UVFHdk5HMU9Pam9wZUM4a1dLcHZp?=
 =?utf-8?B?NEVybTYvV3UwTnA4RVFWRzRpZlBYaFFMaFZhRjNvaU82ZUpiQlFVbVlkRGpa?=
 =?utf-8?B?THRCTXNNMmVFWVhOMitZdDVOMklHMXI3cG4zbUdvang3dGhsNGRjeXVMazdH?=
 =?utf-8?B?aG56QjJ1amFpamN5U2ppTUU4OC9QcGt0RVhhUUsvOTliS2pLUk1zOEJmY1Yx?=
 =?utf-8?B?bzdSWUt0MnRFL1NvMk5aWGlRd2JkZDJwOXh4YVJoT0VRenB4b2IyZ0l2cUVU?=
 =?utf-8?B?aFZEbmw2SldzVlYzNjJhVmRwWHdDaUYvYiswRmVnenRZaHdTZUJZQklVeW1n?=
 =?utf-8?B?UDJuN0xxVW5OM0YvNGNqZ1BOOE93S3IrUlZEVGI2cUhNVnM1RUJOYzRoay83?=
 =?utf-8?B?MExxT1VMeTQrZmF2UGZYNmppNWZhWFVabVVNRmhBenFhcm5VY3c0cmVPRjFG?=
 =?utf-8?B?ZkRzakVHU044dE5TdVg3VFFsdU5kUlFoQkx4Y1lYRDBOOUJmSDN0QXg4K3JB?=
 =?utf-8?B?NlZBWFRVSEkxMlI2TU8zSytpSmxhU21RRXc0cVR2U3R6YXpERjIycTdZcXpv?=
 =?utf-8?B?aWN2REcyTEFqQUlyLzdtTDk3bEl6LytzNGhhak92NjZKcTZBQUM1SmZlblUr?=
 =?utf-8?B?WW1STUlydDZZNUhRQlJ6T1FRd3AxTlB4UU83cjVwSmRXNXVWaUxhekx3cVlQ?=
 =?utf-8?B?TkgvL0tFajJLYWFVTEo1TW9qSmROa0xRbk5rQlVZMDl6dlExR1NOMHBsV2FK?=
 =?utf-8?B?bkRBRTAxZzZEZkVxZWNEUTVZb0Zpa3Z3djhWOW5LYUZ2T0FWc0N0L0NhTjc2?=
 =?utf-8?B?S0ZxeE40Qi9nVVJNcnFYVzBQZWkxN1Ria1lJNkkweERzMEVLbWFoVW4vMlA2?=
 =?utf-8?B?aTBvRmNLaGdDNnFTQ2lLUm0rUFNGLzY3cFNFa3RGbHpQcmlZaFcwd2Q3L1NP?=
 =?utf-8?B?K09yd3p1Q2x0LzA1WGxZRUpuYVhtYVF3cVNaeHUxVTl6THF0bzYwUlcyN1hl?=
 =?utf-8?Q?1KHR9aglyJKcWy+dZLok0IzNSIup3A=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)(36860700013)(1800799024)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Apr 2025 06:46:21.2715
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 7ae12941-be2c-4c6e-b3f1-08dd77323d12
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: CY3PR12MB9554

When init_msix() fails, it needs to clean all MSIX resources.
So, add a new function fini_msix() to do that.

And to unregister the mmio handler of vpci_msix_table_ops, add
a new function.

Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
---
cc: Jan Beulich <jbeulich@suse.com>
cc: Andrew Cooper <andrew.cooper3@citrix.com>
cc: "Roger Pau Monné" <roger.pau@citrix.com>
---
v1->v2 changes:
new patch.

Best regards,
Jiqian Chen.
---
 xen/arch/x86/hvm/intercept.c      | 44 ++++++++++++++++++++++
 xen/arch/x86/include/asm/hvm/io.h |  3 ++
 xen/drivers/vpci/msix.c           | 61 ++++++++++++++++++++++++++++---
 3 files changed, 103 insertions(+), 5 deletions(-)

diff --git a/xen/arch/x86/hvm/intercept.c b/xen/arch/x86/hvm/intercept.c
index da22c386763e..5eacf51d4d2c 100644
--- a/xen/arch/x86/hvm/intercept.c
+++ b/xen/arch/x86/hvm/intercept.c
@@ -276,6 +276,50 @@ void register_mmio_handler(struct domain *d,
     handler->mmio.ops = ops;
 }
 
+void unregister_mmio_handler(struct domain *d,
+                             const struct hvm_mmio_ops *ops)
+{
+    unsigned int i, count = d->arch.hvm.io_handler_count;
+
+    ASSERT(d->arch.hvm.io_handler);
+
+    if ( !count )
+        return;
+
+    for ( i = 0; i < count; i++ )
+        if ( d->arch.hvm.io_handler[i].type == IOREQ_TYPE_COPY &&
+             d->arch.hvm.io_handler[i].mmio.ops == ops )
+            break;
+
+    if ( i == count )
+        return;
+
+    for ( ; i < count - 1; i++ )
+    {
+        struct hvm_io_handler *curr = &d->arch.hvm.io_handler[i];
+        struct hvm_io_handler *next = &d->arch.hvm.io_handler[i + 1];
+
+        curr->type = next->type;
+        curr->ops = next->ops;
+        if ( next->type == IOREQ_TYPE_COPY )
+        {
+            curr->portio.port = 0;
+            curr->portio.size = 0;
+            curr->portio.action = 0;
+            curr->mmio.ops = next->mmio.ops;
+        }
+        else
+        {
+            curr->mmio.ops = 0;
+            curr->portio.port = next->portio.port;
+            curr->portio.size = next->portio.size;
+            curr->portio.action = next->portio.action;
+        }
+    }
+
+    d->arch.hvm.io_handler_count--;
+}
+
 void register_portio_handler(struct domain *d, unsigned int port,
                              unsigned int size, portio_action_t action)
 {
diff --git a/xen/arch/x86/include/asm/hvm/io.h b/xen/arch/x86/include/asm/hvm/io.h
index 565bad300d20..018d2745fd99 100644
--- a/xen/arch/x86/include/asm/hvm/io.h
+++ b/xen/arch/x86/include/asm/hvm/io.h
@@ -75,6 +75,9 @@ bool hvm_mmio_internal(paddr_t gpa);
 void register_mmio_handler(struct domain *d,
                            const struct hvm_mmio_ops *ops);
 
+void unregister_mmio_handler(struct domain *d,
+                             const struct hvm_mmio_ops *ops);
+
 void register_portio_handler(
     struct domain *d, unsigned int port, unsigned int size,
     portio_action_t action);
diff --git a/xen/drivers/vpci/msix.c b/xen/drivers/vpci/msix.c
index 6537374c79a0..60654d4f6d0b 100644
--- a/xen/drivers/vpci/msix.c
+++ b/xen/drivers/vpci/msix.c
@@ -703,6 +703,54 @@ int vpci_make_msix_hole(const struct pci_dev *pdev)
     return 0;
 }
 
+static void fini_msix(struct pci_dev *pdev)
+{
+    struct vpci *vpci = pdev->vpci;
+
+    if ( !vpci->msix )
+        return;
+
+    list_del(&vpci->msix->next);
+    if ( list_empty(&pdev->domain->arch.hvm.msix_tables) )
+        unregister_mmio_handler(pdev->domain, &vpci_msix_table_ops);
+
+    /* Remove any MSIX regions if present. */
+    for ( unsigned int i = 0;
+          vpci->msix && i < ARRAY_SIZE(vpci->msix->tables);
+          i++ )
+    {
+        unsigned long start = PFN_DOWN(vmsix_table_addr(pdev->vpci, i));
+        unsigned long end = PFN_DOWN(vmsix_table_addr(pdev->vpci, i) +
+                                     vmsix_table_size(pdev->vpci, i) - 1);
+
+        for ( unsigned int j = 0; j < ARRAY_SIZE(vpci->header.bars); j++ )
+        {
+            int rc;
+            const struct vpci_bar *bar = &vpci->header.bars[j];
+
+            if ( rangeset_is_empty(bar->mem) )
+                continue;
+
+            rc = rangeset_remove_range(bar->mem, start, end);
+            if ( rc )
+            {
+                gprintk(XENLOG_WARNING,
+                       "%pp: failed to remove MSIX table [%lx, %lx]: %d\n",
+                        &pdev->sbdf, start, end, rc);
+                return;
+            }
+        }
+    }
+
+    for ( unsigned int i = 0; i < ARRAY_SIZE(vpci->msix->table); i++ )
+        if ( vpci->msix->table[i] )
+            iounmap(vpci->msix->table[i]);
+
+    vpci_remove_registers(vpci, msix_control_reg(pdev->msix_pos), 2);
+    xfree(vpci->msix);
+    vpci->msix = NULL;
+}
+
 static int cf_check init_msix(struct pci_dev *pdev)
 {
     struct domain *d = pdev->domain;
@@ -726,10 +774,7 @@ static int cf_check init_msix(struct pci_dev *pdev)
     rc = vpci_add_register(pdev->vpci, control_read, control_write,
                            msix_control_reg(msix_offset), 2, msix);
     if ( rc )
-    {
-        xfree(msix);
-        return rc;
-    }
+        goto fail;
 
     msix->max_entries = max_entries;
     msix->pdev = pdev;
@@ -755,7 +800,13 @@ static int cf_check init_msix(struct pci_dev *pdev)
     rc = vpci_make_msix_hole(pdev);
     spin_unlock(&pdev->vpci->lock);
 
-    return rc
+    if ( !rc )
+        return 0;
+
+ fail:
+    fini_msix(pdev);
+
+    return rc;
 }
 REGISTER_VPCI_LEGACY_CAP(PCI_CAP_ID_MSIX, init_msix);
 
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Wed Apr 09 06:46:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 06:46:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.943385.1342180 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2PCa-00054h-2C; Wed, 09 Apr 2025 06:46:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 943385.1342180; Wed, 09 Apr 2025 06: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 1u2PCZ-00054S-V7; Wed, 09 Apr 2025 06:46:23 +0000
Received: by outflank-mailman (input) for mailman id 943385;
 Wed, 09 Apr 2025 06:46: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=3VhX=W3=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1u2PCY-000466-CA
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 06:46:22 +0000
Received: from NAM12-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam12on2061a.outbound.protection.outlook.com
 [2a01:111:f403:200a::61a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5394f18a-150e-11f0-9ffb-bf95429c2676;
 Wed, 09 Apr 2025 08:46:12 +0200 (CEST)
Received: from BN9P220CA0016.NAMP220.PROD.OUTLOOK.COM (2603:10b6:408:13e::21)
 by PH7PR12MB9152.namprd12.prod.outlook.com (2603:10b6:510:2ec::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.32; Wed, 9 Apr
 2025 06:46:05 +0000
Received: from BN2PEPF00004FBA.namprd04.prod.outlook.com
 (2603:10b6:408:13e:cafe::c1) by BN9P220CA0016.outlook.office365.com
 (2603:10b6:408:13e::21) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.20 via Frontend Transport; Wed,
 9 Apr 2025 06:46:05 +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.8606.22 via Frontend Transport; Wed, 9 Apr 2025 06:46:04 +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, 9 Apr
 2025 01:46:02 -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: 5394f18a-150e-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=nJa1cV9WkhAqsWt4EzY5pSQsbL5h8ofIZnz1l/sXA89zkycC8BxdImebzmW28t6mOSSHow5C/KbNw0v3NQDYGlCbCnMhfIQlAKbtt6s66/85Sy4GYcwCshQFuUqdsaUvc3CfbNhBWj1pMfYsmHh7VYz1cciuSeUhw0d8rDYDQGKNbBRoD1890L2hs22tTBnQrJpaS3sqAn/E/pcWORYoAH2JoZk3BuJaKzm5RetaCCMwr13laMTEJQermUiRxdhkfk8aLcnUKpyBqoLUXBHmpbXnVh8Tdpz3gzgIZ/u8e8UttKhEGAYk43e7N82Itb70hcjC3NXXbUpvMBTX9FevMQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=IMgY1Y5/5gM2dTkAPzGu49VcWk2pghTKDCEmBMNm3MM=;
 b=j8ODDE2vfR2iHznqAeR6DmQ4ZP3n2FG07AdPkSVhuxOrL5nW1dkETWGXijys5RfbH2EPdknl3I6EQ4d1KOq3wdiLNuHihgyWYipXz/nJYVGP+ZkZlaSx7S042YHHDueyKDTi4esQlq1KeG0Llbm/ewx+XFyJVELMkkULn2CWsVic7bQrGr1/k/pjMKrebq+Cmb8MRD8q3QE0Ka8kJVypYb4wom9wmvw5lDVyaGmW+dY7PYKnGqXToaJPuYxTFU+EH/WKweRL68FzmUilvV3cNA4tRi5IkrEDRG9qcIV0nie9v5croMnwObH45dfScCvcWZPpQrQ68N7s3xWPo6Cuwg==
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=IMgY1Y5/5gM2dTkAPzGu49VcWk2pghTKDCEmBMNm3MM=;
 b=X5yNrbmsZdbLFJTZzmkUtUQtJqkWCx1wM33LbZ3VC4zmXvdx4L0rxDsKeA5XyYokRcy5pMqq3wjQK2PhApfntVP2F8SYknASitAkhmNT7HegvSEaCx5WuaNNixz5FKXuXRrshIYZ5vdFuXFR580RooaoB8jiZWaOkvaOFoSulwQ=
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: Huang Rui <ray.huang@amd.com>, Jiqian Chen <Jiqian.Chen@amd.com>, "Andrew
 Cooper" <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, "Stefano
 Stabellini" <sstabellini@kernel.org>
Subject: [PATCH v2 0/8] Support hiding capability when its initialization fails
Date: Wed, 9 Apr 2025 14:45:20 +0800
Message-ID: <20250409064528.405573-1-Jiqian.Chen@amd.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: BN2PEPF00004FBA:EE_|PH7PR12MB9152:EE_
X-MS-Office365-Filtering-Correlation-Id: c4171035-3662-47f6-fe51-08dd7732335b
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|376014|36860700013|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?MG5yZmI5Z3I0Y0lJcjFoSVViMkM5S0VsWnJCWHN5VjJLTmMvTjVROFgzeGh0?=
 =?utf-8?B?RmwxQ0lnVDF6TkFBaVpzN1ljcGk0Ym5iUFExaGhkdVlTNEg2cGlPYlNwVk9k?=
 =?utf-8?B?eGlrMC9iaXFSSTFSTXh3ckFiaTZBTGJJM1orSHhVNFRhQmhqR0h2OTFBYTJ6?=
 =?utf-8?B?YkY0ZUFFSmlPVDR3TDlwR1V0UnQvM0NxVnRlMjdEWjNIeHFGUlJMVkRmcS93?=
 =?utf-8?B?WldqcmdzTkVsRytBSTc2dGx4RzhkL2RTT3NqZmdqTktLVmJkbHI3b3pVcUpF?=
 =?utf-8?B?YXNJOGR4bG1zdENQZHpFWk5XR1RCRkhTRFZ2WFZXYllaN0h5em9UZzkwUFZ4?=
 =?utf-8?B?dFRodE41bVFBcVlxZzl4TzIzemFUOEN5YTJFbWloblpyRVI3MFYxUnUydndz?=
 =?utf-8?B?eWgzM0pHNXBna0R2WTlLYmVzSVBPK3htTDRaT0dFM0NZQW1IZ01LaS9wV2NQ?=
 =?utf-8?B?b2xJVTNFZm9obS9HdkgrNktoRklVZzJCOVluWWR5VHFLOW5NMnM5WlpyZFpN?=
 =?utf-8?B?eVJRb0kvbkpraGx1cGtaNzROcjFJZGRBeDNoTmtwS1ZGQ2R5UUtnalROSW55?=
 =?utf-8?B?VFNOY1JaM3NaNFJ4VlBBQ2hJdmJ4SE5XcGNnTU9pQUNCbHUzbnZaRzJYZlJE?=
 =?utf-8?B?TUh1RUt2anZzUU90OHp5Y0U0MTVIa1IzUFJsZUk3QXY0RGx0OXZ2WiszaUl4?=
 =?utf-8?B?YzV5VzZ1ZW9lNEpWZFNRZHVraWNoK0RSVHh5MUJTbHBmTjhtK1hqNkpBN2sr?=
 =?utf-8?B?ZGxQc0Z3dUNHTnFJVDdFditYcXNrUTZ3aDZZd1dWR1d1dFNhZ0RUQzJLWmdi?=
 =?utf-8?B?dzVIcklmaysyVTRTYjJzNi82dmZOWUJHci9nL0hCQmJpZmRBTzF1cm5HOWdl?=
 =?utf-8?B?MmJEN2V3WTVuUTFLQ0RBVEQycTgzT2VxdjNwU0grdDVGTXFkREpETk5YdnNq?=
 =?utf-8?B?SXAwd0s3eXY1cXA1TDFaa1pmQXhINUM5TE13NERremYzSjBGMHFpS3V6S3pn?=
 =?utf-8?B?NXptOE1IQzg5OWgxV2dqblY2UjdGYVNHUFdQTVJuWlVBYjZRaEJmdFMrcG1G?=
 =?utf-8?B?K0RFaXdCeitwMVVYaTFwNjVOTE9CNWNRcFZyb2N5VDZuczJTcDd5OWN5SzFr?=
 =?utf-8?B?NlBVSEJGUUdlbnhJemZpdU9JTmhtcnQwam1NVlFFRzNSalhXajBPZ0JSTUxl?=
 =?utf-8?B?NWJBdGV3V0xhbGIzYUFlS1ZVS3ZUNjA1L0h3c25VMmZSVW5uaWdKWDIzcXBP?=
 =?utf-8?B?dFdDVWRZQUFBZnRTVHZrS1hMQ0lid2RidWVNTFp5UTVCanlZY2tUdjlJRHV3?=
 =?utf-8?B?d3ljSFhXblA4bjlOZkVqZVY1bEFWVkwvckFjOUxXL0ltMVZITnhaSzNZWFlw?=
 =?utf-8?B?dGtTVDFCWWtBdWtUdmhxYmVQQU1qTGZlcm1hQjVZV3oyTVdtb0xLak1tZldh?=
 =?utf-8?B?WjBXWVk3OXdsZ2ZpNExXc25DQVJoM1hxS3FIM2U5SjFoTVZqT3hWRllicnpz?=
 =?utf-8?B?OThMVVY0WGp2ajViZEZwNHQzVHZwMkt1VkZ1TWJOa0pzMnJrREs0bWJmWFZu?=
 =?utf-8?B?R2FqUUlUSkxBS1EydkFxTGZzakVaSXNSUGs1Ly9mTFlPL015anlmekxDNTBS?=
 =?utf-8?B?NDdZVU5BQklrRVdDVW5rTVBDanlDVTlYUktWbTBJTC9lUGM4bVZpUkIxdW54?=
 =?utf-8?B?M0dmcytmM3lsWG4zdmV3OEtjdTBKZFlWNCtMT1VOcUFwa0ZVRjUxbk1sVUFz?=
 =?utf-8?B?TjJYU0hlZU5DVXZEU3lyazBGRzhjVjdqU3c3VE91MWlVN3JJb0VlUExEdnlN?=
 =?utf-8?B?Z29QTU0vem8rZzRNTGppR0FGRjkzZjk1bzZOMS8xN3ZJL1lrZU54TzFZSEI3?=
 =?utf-8?B?SlhGS2Jvd0QzUjlIS3R0bkptU0ozWWFnV0hkMkk2cm95akowSmpoajk4cmhD?=
 =?utf-8?B?cEVDNUxPS0FDaWVvZy8yTlBldHNCK1ErZFdaTUN1Rm1KSEpwcUEzbC9yTUNw?=
 =?utf-8?B?MDZoUE9zUjYyWUIrSHdIckcySllLSzdES2g0KzZhRFFGdnJKbGhtbFFjdExj?=
 =?utf-8?Q?L71RvF?=
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)(376014)(36860700013)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Apr 2025 06:46:04.9746
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: c4171035-3662-47f6-fe51-08dd7732335b
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: PH7PR12MB9152

Hi,

This series is to
emulate legacy and extended capability list for host, including patch #1, #2, #3,
hide capability when its initialization fails, including patch #4,
remove all related registers and other resources when failure, including patch #5, #6, #7, #8.

Best regards,
Jiqian Chen.
---
cc: Andrew Cooper <andrew.cooper3@citrix.com>
cc: Anthony PERARD <anthony.perard@vates.tech>
cc: Michal Orzel <michal.orzel@amd.com>
cc: Jan Beulich <jbeulich@suse.com>
cc: Julien Grall <julien@xen.org>
cc: "Roger Pau Monné" <roger.pau@citrix.com>
cc: Stefano Stabellini <sstabellini@kernel.org>
---
Jiqian Chen (8):
  driver/pci: Get next capability without passing caps
  vpci/header: Emulate legacy capability list for host
  vpci/header: Emulate extended capability list for host
  vpci: Hide capability when it fails to initialize
  vpci: Refactor vpci_remove_register to remove matched registers
  vpci/rebar: Remove registers when init_rebar() fails
  vpci/msi: Free MSI resources when init_msi() fails
  vpci/msix: Add function to clean MSIX resources

 tools/tests/vpci/main.c           |   4 +-
 xen/arch/x86/hvm/intercept.c      |  44 +++++++
 xen/arch/x86/include/asm/hvm/io.h |   3 +
 xen/drivers/pci/pci.c             |   6 +-
 xen/drivers/vpci/header.c         | 180 ++++++++++++++++-----------
 xen/drivers/vpci/msi.c            |  49 ++++++--
 xen/drivers/vpci/msix.c           |  67 +++++++++-
 xen/drivers/vpci/rebar.c          |  27 ++--
 xen/drivers/vpci/vpci.c           | 198 ++++++++++++++++++++++++------
 xen/include/xen/pci.h             |   2 +-
 xen/include/xen/pci_regs.h        |   1 +
 xen/include/xen/vpci.h            |  30 +++--
 xen/include/xen/xen.lds.h         |   2 +-
 13 files changed, 461 insertions(+), 152 deletions(-)

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Wed Apr 09 06:46:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 06:46:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.943389.1342195 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2PCd-0005SF-Q9; Wed, 09 Apr 2025 06:46:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 943389.1342195; Wed, 09 Apr 2025 06:46: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 1u2PCd-0005Rb-Ko; Wed, 09 Apr 2025 06:46:27 +0000
Received: by outflank-mailman (input) for mailman id 943389;
 Wed, 09 Apr 2025 06:46: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=3VhX=W3=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1u2PCb-000466-Uz
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 06:46:25 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on2061b.outbound.protection.outlook.com
 [2a01:111:f403:2414::61b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5a800b89-150e-11f0-9ffb-bf95429c2676;
 Wed, 09 Apr 2025 08:46:24 +0200 (CEST)
Received: from BN9P220CA0008.NAMP220.PROD.OUTLOOK.COM (2603:10b6:408:13e::13)
 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.8606.35; Wed, 9 Apr
 2025 06:46:19 +0000
Received: from BN2PEPF00004FBA.namprd04.prod.outlook.com
 (2603:10b6:408:13e:cafe::cb) by BN9P220CA0008.outlook.office365.com
 (2603:10b6:408:13e::13) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.19 via Frontend Transport; Wed,
 9 Apr 2025 06:46:17 +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.8606.22 via Frontend Transport; Wed, 9 Apr 2025 06:46:17 +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, 9 Apr
 2025 01:46:13 -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: 5a800b89-150e-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=M7leqI3pKq5LIZALO3BuY9bD/tVypJifbnZ19eNKJodzqlOI7uY3HGl7kSJeeKhmUdnIYKDfIMO4wPgtq3gxL0ie2duVTABpdKCr4wKEIpQ7jov6kgQT74QBWGsRjcbom0o4LTVBa7nNxx46BCUPDe0E2FhA01l4xd0ZMBeD17Iopx5j+KWU76jVQDTKgUGx2MhrfQpKVIxSn3/Rj/YAyCK5+giNUlRSDKhGJGyIOz1HHmnPIBSUElAFTT8s15Hl19Tn1QSmcUtGhKg+XZn8mGVZtwjrZdYxU/nk/OinfCv2FAJU/OYoAt9Jy8QN9Jzwn8CkX2GWlyWA5LPXMOXneQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=PmrW/1XJ49mm58ywHXQvOsKicr7wVr3EqcSs3ePGwBM=;
 b=uWrkoidUyhZ2LFDsdIysCoSv1rhUJW5HT7TGM/q2wv6/NkYuMAb6/o24SjOzIcQfB4Dtlxbw9IwbuZCEkBdU6af/Xj4Uc5Uf0MpaCZ9l7CePWQsHUjiZg3ayUZqCNwNnCGsSArWtMpPnkR3Lolr7lpNHdWG9mC3/SLvQQ65+qK3MwfYggIUK+qi/93LwrYIgwzMiSBDIhIJYzJd2QwX7xeroPbJtRCxik936Jt1r3h/KNzu8alKA7a4gQ/1ETzjR8Zk4ac/TRp1kuTznewjtTr6KgdzRgfE+4QLUxaDyw8ajujbuIN8dq9eVC6Ow1yJNFTZV+rlIP2B9QKUEIl3OZw==
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=PmrW/1XJ49mm58ywHXQvOsKicr7wVr3EqcSs3ePGwBM=;
 b=FwAL1LGVAQeRUbjBcBIso2ySdQ20R39eB950ELvuyeEb7CGWt39c3uOS8Ajq+SN1pAZLNI2/BbaVQ65mTeJFwuvAYBCzLtp9bLRRduw6h6Dz5FmRvYjMB2PMu60YMHJpL5mTbkH+Yibqp6rC1ddp6VUVbb7wQdZHebUCylyOY6k=
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: Huang Rui <ray.huang@amd.com>, Jiqian Chen <Jiqian.Chen@amd.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>
Subject: [PATCH v2 5/8] vpci: Refactor vpci_remove_register to remove matched registers
Date: Wed, 9 Apr 2025 14:45:25 +0800
Message-ID: <20250409064528.405573-6-Jiqian.Chen@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250409064528.405573-1-Jiqian.Chen@amd.com>
References: <20250409064528.405573-1-Jiqian.Chen@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: BN2PEPF00004FBA:EE_|PH0PR12MB8032:EE_
X-MS-Office365-Filtering-Correlation-Id: 479017fd-2d5a-44a3-1a13-08dd77323b12
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?YkVTanlzYXpTVU9ZcW1HY3BrdG9XQjdEYnNWeFA4aHhlbTltQ3Z0YUtwempX?=
 =?utf-8?B?bW5td3NyamtMZll3MG80K0Qxc2hOTEE1U2VhVkZqRGlXQkRpRWtMUFBFUTI0?=
 =?utf-8?B?YlhuaEFiVXh0a2U5K0paTHo4dmtGTGVqV1hESEdqZkpybm9Hb0hkYVVxbXJp?=
 =?utf-8?B?cXpLb0ZKWDBvM3lpN3c2eDcvdEdSMDVaaUl0Ym56VldHQmVvOTZrNDlQUExy?=
 =?utf-8?B?SjR2ek1TU2RjMG83SnVKcDJNSFk0Q3QxS2hoaVpqa0IyZnp5M0FQeS9hV2Vk?=
 =?utf-8?B?TzV1c3hVQUkrYmpncG56QlZnS293RHFybnJBejhYWlpYL2Y4NGFVWWEvKzdt?=
 =?utf-8?B?Zm05YXYxOVB5ZmxWSnZCYUREWWhnRzhsL3V0ZzJaZjh1ZjRPQXg4NGppRTgv?=
 =?utf-8?B?bE9MbXFEZksyOGZLNVBYVXluTEtqeDU4NjJkSlJvMnFFbU96Y3N4UmZvZkYw?=
 =?utf-8?B?TUVJcG5IQ2NPZWd4UWlNelAydDZHODIwQXdDME45ZHhEYVFlS3ZqK1l4ZGtR?=
 =?utf-8?B?ZWtiMk13MWlrbEtmVnpsdy85d3VvNXkwKzhOUFVoaVd3dzYzdVVqZnZ3b2lI?=
 =?utf-8?B?MjRMdjRsZHI1RERDUkRxZG52N1hIUHhjSGVWektWL2RWVXQ5YXRUbUNtZEMy?=
 =?utf-8?B?Y05VYmJvczRFSm4xOVdBa1hHQzJnWGxlVE85cFJPUDFqNlo4QVp1OFFIdXBy?=
 =?utf-8?B?cWFNN0VZMFNMSWFFc0pBUlZqWXlsMXFJZVU3WFFDWGFYTnliME9MNVhHVmpq?=
 =?utf-8?B?MTlmdUpFcUVQczFDcXNOcnRWdERIWWYwMDBkeEN5ckEvamo5U1Vwem9CbzhI?=
 =?utf-8?B?eHFDV05uRlFPUnZyNi9KZmtJS1RXKzdqWFd5VStleGlkSlZHeitvYnlUYUtN?=
 =?utf-8?B?aWI5ZXplUzlMc2xFU1hmTXdQT3pSeW80amJNUlEwcGlhMHJ2bGR3S3FMUWY3?=
 =?utf-8?B?Ri9xQWRVL0QxWnFNbEZZY3JFTzBNSU1QVlJRZFRVMmh2Tis5elZaZnN2bkky?=
 =?utf-8?B?eFNtcHF5OG1ocXVwSXZPVEtFTTJ2OHZEYmloUi8rVDNDcGpkVTF4NnYxcUlw?=
 =?utf-8?B?djVyYUtyL0tUNEgveUNkcGljOHRwTUQrcHFzZlkwUWpFc1VmTm8yakYrMzlv?=
 =?utf-8?B?Zzl1eWduaWpsUlJ2bVBick95MDFCNGM2MStYd05sTlFHRWRxUk00Z0EydzQ3?=
 =?utf-8?B?M3FVSXFWTnN2RllTL01tbmMzaDVKODAwOFpEM3F1a3dMVEZFMXd3VWRvc3lB?=
 =?utf-8?B?QUhPeUZhMzdYQVZZSnhSK25UL24xQjRpbjl4Y04yY29LYjRmT3ZpU2JFOWln?=
 =?utf-8?B?QzZnMnRhQUlhQmRidk1Wb1huM3AzbHh0QUJmNUJHaDMzdjVydGsxakxvczBP?=
 =?utf-8?B?QmoyNlR4czA5VWdvL3BWUkVLZ2YrUENWRmVQSVpaK1o4WUlzako5SUI2YUl5?=
 =?utf-8?B?T04wMGdVTTZOT2x0SXJERGhvSkp4OXZtRGx6Tk1BMGhldHhwZ0xxR00vRytx?=
 =?utf-8?B?c1IydTQwejdXbzcwWWFQbGVydHZXeE5oZXVvMjRqdDhjZzZqbmR1d09hVndn?=
 =?utf-8?B?UktjdUU5UUhuWU9zQ21pTmM1M3JKQ1FFckxxS0gxRkFIdld0b0EzdStDSlFC?=
 =?utf-8?B?Z1g5UDJIc29wdWhySVFtcDk2RzlLaWdOb2hQemZOMFNrQ0l1cXM4Z09FVnpR?=
 =?utf-8?B?Qm1rTzR4RXRZbmltZzVGdlNwTEJJelp2ZlRHUjBDSVhoVW1VU2hTek1ldXMr?=
 =?utf-8?B?dk9JTlkwLzNvSllEWUlHV3BFek12M2R2cTZIWmNML3FjKzZTUFNKejBlWWNC?=
 =?utf-8?B?bHVPMHZ6d2t0bEhHOHlPRWNyamxaSVpUTkZFb1FiaTZzUm12b3gyUll3Ymgr?=
 =?utf-8?B?MldkVk9BL09acURJWE9YejFiWDlqcmdUVGhueGJoMmUxem80dHVmMzR0eTdJ?=
 =?utf-8?B?STNhYlFNbldUUXQwaDJsSHYyV2dzTGwvYmRjZGRtV0RLVCtkUjRac1FmQlpD?=
 =?utf-8?B?cXduZEN1ZGVqUUxiM2RhM3Z6RFhuZzhDTTByNHBiVWlaVURHS3pXdkFUS3Nh?=
 =?utf-8?Q?AyhQ/i?=
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: 09 Apr 2025 06:46:17.9121
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 479017fd-2d5a-44a3-1a13-08dd77323b12
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: PH0PR12MB8032

vpci_remove_register() only supports removing a register in a time,
but the follow-on changes need to remove all registers within a
range. And it is only used for test. So, refactor it to support
removing all matched registers in a calling time.

And it is no matter to remove a non exist register, so remove the
__must_check prefix.

Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
---
cc: "Roger Pau Monné" <roger.pau@citrix.com>
cc: Anthony PERARD <anthony.perard@vates.tech>
---
v1->v2 changes:
new patch

Best regards,
Jiqian Chen.
---
 tools/tests/vpci/main.c |  4 ++--
 xen/drivers/vpci/vpci.c | 23 ++++++++++++-----------
 xen/include/xen/vpci.h  |  4 ++--
 3 files changed, 16 insertions(+), 15 deletions(-)

diff --git a/tools/tests/vpci/main.c b/tools/tests/vpci/main.c
index 33223db3eb77..ca72877d60cd 100644
--- a/tools/tests/vpci/main.c
+++ b/tools/tests/vpci/main.c
@@ -132,10 +132,10 @@ static void vpci_write32_mask(const struct pci_dev *pdev, unsigned int reg,
                                   rsvdz_mask))
 
 #define VPCI_REMOVE_REG(off, size)                                          \
-    assert(!vpci_remove_register(test_pdev.vpci, off, size))
+    assert(!vpci_remove_registers(test_pdev.vpci, off, size))
 
 #define VPCI_REMOVE_INVALID_REG(off, size)                                  \
-    assert(vpci_remove_register(test_pdev.vpci, off, size))
+    assert(vpci_remove_registers(test_pdev.vpci, off, size))
 
 /* Read a 32b register using all possible sizes. */
 void multiread4_check(unsigned int reg, uint32_t val)
diff --git a/xen/drivers/vpci/vpci.c b/xen/drivers/vpci/vpci.c
index f1f125bfdab1..115d3c5f0c84 100644
--- a/xen/drivers/vpci/vpci.c
+++ b/xen/drivers/vpci/vpci.c
@@ -418,34 +418,35 @@ int vpci_add_register_mask(struct vpci *vpci, vpci_read_t *read_handler,
     return 0;
 }
 
-int vpci_remove_register(struct vpci *vpci, unsigned int offset,
-                         unsigned int size)
+int vpci_remove_registers(struct vpci *vpci, unsigned int offset,
+                          unsigned int size)
 {
     const struct vpci_register r = { .offset = offset, .size = size };
     struct vpci_register *rm;
+    int rc = -ENOENT;
 
     spin_lock(&vpci->lock);
     list_for_each_entry ( rm, &vpci->handlers, node )
     {
         int cmp = vpci_register_cmp(&r, rm);
 
-        /*
-         * NB: do not use a switch so that we can use break to
-         * get out of the list loop earlier if required.
-         */
-        if ( !cmp && rm->offset == offset && rm->size == size )
+        if ( !cmp )
         {
+            struct vpci_register *prev =
+                list_entry(rm->node.prev, struct vpci_register, node);
+
             list_del(&rm->node);
-            spin_unlock(&vpci->lock);
             xfree(rm);
-            return 0;
+            rm = prev;
+            rc = 0;
         }
-        if ( cmp <= 0 )
+
+        if ( cmp < 0 )
             break;
     }
     spin_unlock(&vpci->lock);
 
-    return -ENOENT;
+    return rc;
 }
 
 /* Wrappers for performing reads/writes to the underlying hardware. */
diff --git a/xen/include/xen/vpci.h b/xen/include/xen/vpci.h
index 5016ded64d89..ee9163ca6a56 100644
--- a/xen/include/xen/vpci.h
+++ b/xen/include/xen/vpci.h
@@ -67,8 +67,8 @@ static inline int __must_check vpci_add_register(struct vpci *vpci,
                                   size, data, 0, 0, 0, 0);
 }
 
-int __must_check vpci_remove_register(struct vpci *vpci, unsigned int offset,
-                                      unsigned int size);
+int vpci_remove_registers(struct vpci *vpci, unsigned int offset,
+                          unsigned int size);
 
 /* Generic read/write handlers for the PCI config space. */
 uint32_t vpci_read(pci_sbdf_t sbdf, unsigned int reg, unsigned int size);
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Wed Apr 09 06:46:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 06:46:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.943381.1342140 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2PCU-00046O-0U; Wed, 09 Apr 2025 06:46:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 943381.1342140; Wed, 09 Apr 2025 06:46: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 1u2PCT-00046H-So; Wed, 09 Apr 2025 06:46:17 +0000
Received: by outflank-mailman (input) for mailman id 943381;
 Wed, 09 Apr 2025 06:46: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=3VhX=W3=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1u2PCS-000466-86
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 06:46:16 +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 5474ce8e-150e-11f0-9ffb-bf95429c2676;
 Wed, 09 Apr 2025 08:46:14 +0200 (CEST)
Received: from BN9P220CA0013.NAMP220.PROD.OUTLOOK.COM (2603:10b6:408:13e::18)
 by SJ0PR12MB5661.namprd12.prod.outlook.com (2603:10b6:a03:422::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.32; Wed, 9 Apr
 2025 06:46:09 +0000
Received: from BN2PEPF00004FBA.namprd04.prod.outlook.com
 (2603:10b6:408:13e::4) by BN9P220CA0013.outlook.office365.com
 (2603:10b6:408:13e::18) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.19 via Frontend Transport; Wed,
 9 Apr 2025 06:46:09 +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.8606.22 via Frontend Transport; Wed, 9 Apr 2025 06:46:09 +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, 9 Apr
 2025 01:46:07 -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: 5474ce8e-150e-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=MwWHd3/CIydajpJ1zWDP44NZ0C35B0h6MKuwYjsbNnqTW0jWvuRzRhXCR4vkbKQ3wjB+1GFKX3XCt4aFMdZdGb6X1sp2bVEDCcpBP4LoCty+lBWYMnId/Z3GlVpXTEEj5uoU1V4FXGsN0QyyV1NrgmhvHch8t1G9t7CymzVNpNkGSOJJy+tpHiNDL2lVKsQpsfQXVYq1tydLI/ab2zzzw4kXw1rti6frUvRgJfPQLLTKg7zsfsFL0LSsyi55KV2RmLuKQfj2kiy0MPml4w/pL/BfGqcMn+wUIy6iEA4LQpKxmq05+pomZGPHjEkbCjWjbKeqaeA27qr6ybWdM1d/ZQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=iAUz5a0G2bw6sESlqZPWz28HzPKUneou4cQlYnBaoGM=;
 b=DChGB6aWCk4fHSkcMWUyeWWmr00FU2YvpzdSKUeaaoa34RWc+YJKLotazvQ6lL9RjBImiEQzmWgfofrdWGB3gArtV9htYKFVHzenqpDp+/UQyLeCa0LHWossee874CX5bOkGPqkmkzN3Ghbc4ZTMXBUVKTPDqKcqRl4EeVi4UI53BFKDaPM18DcGDi24DyVVOXYZPnhRi2DGe58I6cfURwxUP4s9EmTY3KpaV6H5coedQ8T3IS6K/29IfxCmuhc6hZa4LLKLy1FA54ydS8VKlFBnnnmyd5nzeO0mOAS9R6z/+yjuIQwnLoPyaYbAAhim+luKeEDHptsz7Dq97e2d4Q==
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=iAUz5a0G2bw6sESlqZPWz28HzPKUneou4cQlYnBaoGM=;
 b=ZZqT+LjpvFYD9nHVyeEfZCGEIGHnUI946r498qUUZHMXA9R0FdGn4X4EJwhHzCwNlM+e86YFREHypFk0EMW1Q9i0Vosexhq20OD7optMvyoHJ+Nw2WSAVskAx5ssOPyMFPPCjBoVD2VKIV7+z8t91qt85KHxXsKsnSQSe1lfqSY=
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: Huang Rui <ray.huang@amd.com>, Jiqian Chen <Jiqian.Chen@amd.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v2 2/8] vpci/header: Emulate legacy capability list for host
Date: Wed, 9 Apr 2025 14:45:22 +0800
Message-ID: <20250409064528.405573-3-Jiqian.Chen@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250409064528.405573-1-Jiqian.Chen@amd.com>
References: <20250409064528.405573-1-Jiqian.Chen@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: BN2PEPF00004FBA:EE_|SJ0PR12MB5661:EE_
X-MS-Office365-Filtering-Correlation-Id: 9c4dea4d-7ef4-420c-07aa-08dd773235ee
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?RTF0Y3E5djF5WFVsWmo1M1FkQmxlRzhuV2ZLbFdQeGl1dVJSWnNOZjhjRDRS?=
 =?utf-8?B?Y2JkS3ZoMUxra2dremFoSVpYN0twa3VtMTBBV3RDR1dUdWU3TUtZTUxjRFZy?=
 =?utf-8?B?Z3BTcUVsL08zUUhaSzhFVUZSS3MxTEd1alhVR3NzNGhZUFJ0aVB4VkhudXRz?=
 =?utf-8?B?a3oyMkhvOUFtN1NzdkJqQWFMWFJGaWpqeUErZVBFdFpGK0E4T01XTk5GTHFH?=
 =?utf-8?B?c2sweEluUjJZSXFyaUVZUnhLaHJqRFZLSW1kQnFaWEJDY1FNWVdqYkJtMEVi?=
 =?utf-8?B?ajZ2ZXRoRXpDdGZ2N01mWG8rTVVkSmQyQ1ZEUGsrZDJuK2V0MUE1MyticlFR?=
 =?utf-8?B?aEtkQTFRKzdrOHRyaVdZN2ErWlpnT2FiZis3N1lqQ25UYlQwNXcrYjdWdFRp?=
 =?utf-8?B?QXVKRXhobm5IanJoTVVna3dLWDVuM3Z6Y2cwd2Z1eHgrdHh0RitwWjR3UTJz?=
 =?utf-8?B?Ri90NDVsWnBMbjl1ZW9NeS9KNWhiZVRlU0JPRVlPRmJaZ3hXRU03QlkrWjZm?=
 =?utf-8?B?UVZUblRrVG1MOGpLcXA5dllOcFFCams5UDRueEsvOEVUWVBHMFpsVC9GVis3?=
 =?utf-8?B?YWEvUzFRTksyMG1zLy83ZCtndHpDTGovaWtGNkxrcUQzd091MXdNQVJ3a2pw?=
 =?utf-8?B?L2hNaTl3MXM5dmdaSng2MGN1MGVuWHJoMGhtN3BROG0vMGxaNW5YKzNZRlMw?=
 =?utf-8?B?bWtUUFJpaDFHelBLemFtSWZ3cmYxc2JqUG1DcklPRkw2dWF1MkpGUzZacEU1?=
 =?utf-8?B?YktjQWt2bGZoWDZjZFY2RWs3bGhPS0UvbE0yQlVxdVpWRE5iKzR3ekpRVFlB?=
 =?utf-8?B?djE5cWpOTHpsbG9zeHBrV00zTS9lTmhHZktwZzhaRGJpT1g0Qm9NM0s4ZTN4?=
 =?utf-8?B?clhqT2s0OVZoUEZKcnBNUXFQT1lLb2xRUnZCVE4yYnRvL3ZMM0EycmthZGto?=
 =?utf-8?B?SFFLcHlHKzgvdWxzanpuM2s1WkkvZ015Qm9XbEhOZUNZTWZGUnZIVVpVdFZ6?=
 =?utf-8?B?amorUURRWjdGc1kxNEkwU0c2cjlSQjUvU1BaTGlZL09GTFFkM29WWW5SWkJ5?=
 =?utf-8?B?SUJWOGQrSlBPbml3d1U0NmZ0VllCSFBBajk5amFjL3V1eExkS0VxSzJjWmFo?=
 =?utf-8?B?VDBSWmFERGh5dmxNMDRhWHRlSlhnNGpMNHVxaTRSNXk3b3V3U0JFYjVMeUVp?=
 =?utf-8?B?a3pvdHRFRzNFMWRkYldkMnlFSVRqNk1GNUppejJVTnFScjJJT3pVVU9oWXpQ?=
 =?utf-8?B?UnZOWEQvRlUwdkg2U2RQdkJvdTRkWFFabzlxNnpsTmxmWFpPWVE4WHlwUmpV?=
 =?utf-8?B?L1ZqcTBFQ2pQeW1BRjJjbGsvNk5Wb1Y1L1ZnZ0ZiSEtBSUhHN05UZm1vZnhz?=
 =?utf-8?B?TmJaK3h2MUNJOUZKUDNDT1BqMm4rR1lXcWFNeTBLZnFIOHg5QjBTaHJNZjg4?=
 =?utf-8?B?SDIwT1JFNENkVUFSVzRucmdDd1Y0MTVIUXRPSGVKbjNHRU5Yamx2bE9rL0hW?=
 =?utf-8?B?c2V2TW5zbzFzV24zN1VxbTNpeWI0dlkvZzFCQm4vbUxIRTJpREl5b2hWbUdw?=
 =?utf-8?B?MWNreXo4R014WERxQnU5NDdWNHI2UWxIcHRlUWVGQ2tWTFVFWWRYeTJPaHhG?=
 =?utf-8?B?SHhIcXozMlhGOW11anFhOGExd1R0Q1c0UjBRS1FHYWtVK0FzUXhieHVaZWtT?=
 =?utf-8?B?RmlJMlhxSjBQK2I2OGpqdWVoUyt5cE9hTVZ0Z01SbHRTd3BIRGpRVDF4a1Nj?=
 =?utf-8?B?bzVwRVYwVGxjOERhSTlQRHFuTGduRDAwWW1rRzlIdnJWbXJmMU5xNW5paG4v?=
 =?utf-8?B?VDdjd092Q0Z6T3A5dTFXbVk1TTJUNzl4L3p6cFJhc3BDcFNUdVhsb2pWQ0tH?=
 =?utf-8?B?V1R6VU52RFpyOFFHV3BHdmh5SG5UM1hrNzVrMEZrcTQ5dmZhUzY5NVR3V0ZR?=
 =?utf-8?B?ZTdQM3NhMEpla1Izd05vaTJCM1FPS2JjM1Bkek5XQU83VEQ2d3crRllaNUg2?=
 =?utf-8?B?dXZJT3Vac2dqcm50R2Q3b3VEMldlRS9uTzNsTmNQeEVVeVpieHhKQlJCTzBt?=
 =?utf-8?Q?0LSE8v?=
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: 09 Apr 2025 06:46:09.2871
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 9c4dea4d-7ef4-420c-07aa-08dd773235ee
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: SJ0PR12MB5661

Current logic of init_header() only emulates legacy capability list
for guest, expand it to emulate for host too. So that it will be
easy to hide a capability whose initialization fails and no need
to distinguish host or guest.

Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
---
cc: "Roger Pau Monné" <roger.pau@citrix.com>
---
v1->v2 changes:
new patch

Best regards,
Jiqian Chen.
---
 xen/drivers/vpci/header.c | 139 ++++++++++++++++++++------------------
 1 file changed, 74 insertions(+), 65 deletions(-)

diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c
index ef6c965c081c..0910eb940e23 100644
--- a/xen/drivers/vpci/header.c
+++ b/xen/drivers/vpci/header.c
@@ -745,6 +745,76 @@ static int bar_add_rangeset(const struct pci_dev *pdev, struct vpci_bar *bar,
     return !bar->mem ? -ENOMEM : 0;
 }
 
+/* These capabilities can be exposed to the guest, that vPCI can handle. */
+static const unsigned int guest_supported_caps[] = {
+    PCI_CAP_ID_MSI,
+    PCI_CAP_ID_MSIX,
+};
+
+static int vpci_init_capability_list(struct pci_dev *pdev)
+{
+    int rc;
+    bool mask_cap_list = false;
+    bool is_hwdom = is_hardware_domain(pdev->domain);
+    const unsigned int *caps = is_hwdom ? NULL : guest_supported_caps;
+    const unsigned int n = is_hwdom ? 0 : ARRAY_SIZE(guest_supported_caps);
+
+    if ( pci_conf_read16(pdev->sbdf, PCI_STATUS) & PCI_STATUS_CAP_LIST )
+    {
+        unsigned int next, ttl = 48;
+
+        next = pci_find_next_cap_ttl(pdev->sbdf, PCI_CAPABILITY_LIST,
+                                     caps, n, &ttl);
+
+        rc = vpci_add_register(pdev->vpci, vpci_read_val, NULL,
+                               PCI_CAPABILITY_LIST, 1,
+                               (void *)(uintptr_t)next);
+        if ( rc )
+            return rc;
+
+        next &= ~3;
+
+        if ( !next && !is_hwdom )
+            /*
+             * If we don't have any supported capabilities to expose to the
+             * guest, mask the PCI_STATUS_CAP_LIST bit in the status register.
+             */
+            mask_cap_list = true;
+
+        while ( next && ttl )
+        {
+            unsigned int pos = next;
+
+            next = pci_find_next_cap_ttl(pdev->sbdf, pos + PCI_CAP_LIST_NEXT,
+                                         caps, n, &ttl);
+
+            rc = vpci_add_register(pdev->vpci, vpci_hw_read8, NULL,
+                                   pos + PCI_CAP_LIST_ID, 1, NULL);
+            if ( rc )
+                return rc;
+
+            rc = vpci_add_register(pdev->vpci, vpci_read_val, NULL,
+                                   pos + PCI_CAP_LIST_NEXT, 1,
+                                   (void *)(uintptr_t)next);
+            if ( rc )
+                return rc;
+
+            next &= ~3;
+        }
+    }
+
+    /* Utilize rsvdp_mask to hide PCI_STATUS_CAP_LIST from the guest. */
+    rc = vpci_add_register_mask(pdev->vpci, vpci_hw_read16, vpci_hw_write16,
+                                PCI_STATUS, 2, NULL,
+                                PCI_STATUS_RO_MASK &
+                                    ~(mask_cap_list ? PCI_STATUS_CAP_LIST : 0),
+                                PCI_STATUS_RW1C_MASK,
+                                mask_cap_list ? PCI_STATUS_CAP_LIST : 0,
+                                PCI_STATUS_RSVDZ_MASK);
+
+    return rc;
+}
+
 static int cf_check init_header(struct pci_dev *pdev)
 {
     uint16_t cmd;
@@ -753,7 +823,6 @@ static int cf_check init_header(struct pci_dev *pdev)
     struct vpci_header *header = &pdev->vpci->header;
     struct vpci_bar *bars = header->bars;
     int rc;
-    bool mask_cap_list = false;
     bool is_hwdom = is_hardware_domain(pdev->domain);
 
     ASSERT(rw_is_write_locked(&pdev->domain->pci_lock));
@@ -794,61 +863,12 @@ static int cf_check init_header(struct pci_dev *pdev)
     if ( rc )
         return rc;
 
+    rc = vpci_init_capability_list(pdev);
+    if ( rc )
+        return rc;
+
     if ( !is_hwdom )
     {
-        if ( pci_conf_read16(pdev->sbdf, PCI_STATUS) & PCI_STATUS_CAP_LIST )
-        {
-            /* Only expose capabilities to the guest that vPCI can handle. */
-            unsigned int next, ttl = 48;
-            static const unsigned int supported_caps[] = {
-                PCI_CAP_ID_MSI,
-                PCI_CAP_ID_MSIX,
-            };
-
-            next = pci_find_next_cap_ttl(pdev->sbdf, PCI_CAPABILITY_LIST,
-                                         supported_caps,
-                                         ARRAY_SIZE(supported_caps), &ttl);
-
-            rc = vpci_add_register(pdev->vpci, vpci_read_val, NULL,
-                                   PCI_CAPABILITY_LIST, 1,
-                                   (void *)(uintptr_t)next);
-            if ( rc )
-                return rc;
-
-            next &= ~3;
-
-            if ( !next )
-                /*
-                 * If we don't have any supported capabilities to expose to the
-                 * guest, mask the PCI_STATUS_CAP_LIST bit in the status
-                 * register.
-                 */
-                mask_cap_list = true;
-
-            while ( next && ttl )
-            {
-                unsigned int pos = next;
-
-                next = pci_find_next_cap_ttl(pdev->sbdf,
-                                             pos + PCI_CAP_LIST_NEXT,
-                                             supported_caps,
-                                             ARRAY_SIZE(supported_caps), &ttl);
-
-                rc = vpci_add_register(pdev->vpci, vpci_hw_read8, NULL,
-                                       pos + PCI_CAP_LIST_ID, 1, NULL);
-                if ( rc )
-                    return rc;
-
-                rc = vpci_add_register(pdev->vpci, vpci_read_val, NULL,
-                                       pos + PCI_CAP_LIST_NEXT, 1,
-                                       (void *)(uintptr_t)next);
-                if ( rc )
-                    return rc;
-
-                next &= ~3;
-            }
-        }
-
         /* Extended capabilities read as zero, write ignore */
         rc = vpci_add_register(pdev->vpci, vpci_read_val, NULL, 0x100, 4,
                                (void *)0);
@@ -856,17 +876,6 @@ static int cf_check init_header(struct pci_dev *pdev)
             return rc;
     }
 
-    /* Utilize rsvdp_mask to hide PCI_STATUS_CAP_LIST from the guest. */
-    rc = vpci_add_register_mask(pdev->vpci, vpci_hw_read16, vpci_hw_write16,
-                                PCI_STATUS, 2, NULL,
-                                PCI_STATUS_RO_MASK &
-                                    ~(mask_cap_list ? PCI_STATUS_CAP_LIST : 0),
-                                PCI_STATUS_RW1C_MASK,
-                                mask_cap_list ? PCI_STATUS_CAP_LIST : 0,
-                                PCI_STATUS_RSVDZ_MASK);
-    if ( rc )
-        return rc;
-
     if ( pdev->ignore_bars )
         return 0;
 
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Wed Apr 09 06:46:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 06:46:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.943390.1342202 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2PCe-0005Zv-Hp; Wed, 09 Apr 2025 06:46:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 943390.1342202; Wed, 09 Apr 2025 06: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 1u2PCe-0005YO-2a; Wed, 09 Apr 2025 06:46:28 +0000
Received: by outflank-mailman (input) for mailman id 943390;
 Wed, 09 Apr 2025 06:46: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=3VhX=W3=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1u2PCc-0004jx-Dk
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 06:46:26 +0000
Received: from NAM02-DM3-obe.outbound.protection.outlook.com
 (mail-dm3nam02on20623.outbound.protection.outlook.com
 [2a01:111:f403:2405::623])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5a5ebc31-150e-11f0-9eaa-5ba50f476ded;
 Wed, 09 Apr 2025 08:46:24 +0200 (CEST)
Received: from BN9P220CA0027.NAMP220.PROD.OUTLOOK.COM (2603:10b6:408:13e::32)
 by MN2PR12MB4222.namprd12.prod.outlook.com (2603:10b6:208:19a::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.35; Wed, 9 Apr
 2025 06:46:21 +0000
Received: from BN2PEPF00004FBA.namprd04.prod.outlook.com
 (2603:10b6:408:13e:cafe::12) by BN9P220CA0027.outlook.office365.com
 (2603:10b6:408:13e::32) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.20 via Frontend Transport; Wed,
 9 Apr 2025 06:46:21 +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.8606.22 via Frontend Transport; Wed, 9 Apr 2025 06:46:20 +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, 9 Apr
 2025 01:46:17 -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: 5a5ebc31-150e-11f0-9eaa-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=rzQFwHKRF0Mlqc+zjTMkmp3v3FjDmMKYiL3EU9m3SmLTHyHiz4A9lnBAaRs7n5SJzCCQ2EV2r7hDnMXGT0ttz9xseiXTAmm1qZ4JuqyYhlLiUcX9UFg3oYBOUoMB87D5kMOwxd2LN8kUvE6Cgt2OyG9cUlatx85BoXBujNwbLyX3lxQxQP1gMcVPcd6hmzOnIJuxdjsXSXfG+Ox9trD8ar2r6xIKWfKF+yu8AFJWK76bomYegdQjYyWrQHLbCo1D7ikikFnEWCgtVfb7lVnIyXrjIJC16ixmWcfZkeoh8iU5HFobvMSJ/XP3xilpNUNSyYIVRNgKe6yz/4Svi/loGQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=r0p34/jpXG5FC1Q0PYSnU3Xkg8VviJxZCXtcGrEqUC8=;
 b=OcvorMZWBS0dOMgOVj/P8HJeX3ujt4dUFAzmKQvckCe6DwbYqrkJW2oJc8wpPJV1UcJ5f0GIgucwzEzIekuGtQUfygkChzbmMk/DLHYpK0ze6U833/r/0YT6PY9qo6ribI3vXlwsvWnGsRI04IHm67rrJJgYMiZ39P8+t7nF+3ePDjI28dBkwCAolG6/eLwwybzGvxtn4++dl4sZRv5JzUfOk5Z/B/KI+V9hcQXJ4Eaj7kcs1f3KBbgYFDdkwcXv2G4NdJCkwruK/A5myj5TV68BBmUo8GO0lxFRHRs6zaKB0MhJ7hHmpwidf8PY16ADhwqM0dgLVGgpKU0+Bh05mA==
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=r0p34/jpXG5FC1Q0PYSnU3Xkg8VviJxZCXtcGrEqUC8=;
 b=JhqctnH9sb5JL0icFBsFsqNUYP0m6vpYXZDH/HWxV9+qzsG8cW2KiDSF2V9yRDLA2JWvBWevt46zKeu3HWizIwiQBJ0yYopK88yuGRdHY2CDIQEo+n6vZZk3SJso9Bbm+TbMYgyTib+AG/hwYVwya3CxgC9iNkJrRKNU8QjKjoQ=
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: Huang Rui <ray.huang@amd.com>, Jiqian Chen <Jiqian.Chen@amd.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v2 7/8] vpci/msi: Free MSI resources when init_msi() fails
Date: Wed, 9 Apr 2025 14:45:27 +0800
Message-ID: <20250409064528.405573-8-Jiqian.Chen@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250409064528.405573-1-Jiqian.Chen@amd.com>
References: <20250409064528.405573-1-Jiqian.Chen@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: BN2PEPF00004FBA:EE_|MN2PR12MB4222:EE_
X-MS-Office365-Filtering-Correlation-Id: 96b59b37-7a9a-4c6f-04ee-08dd77323ce3
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|376014|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?alNNbDRGV0RyRjBCU09ETU54WVlBQVdGdEdDMWlaT0dySlZ6S040RHFEdnhr?=
 =?utf-8?B?Y2wwV2FoYmVlTDg4bEc1WER1cm10NVlUM1VHVXVXTVQ1aS9yaUlnYndYSGNU?=
 =?utf-8?B?Z1I1VTRiWDJDMmtuTDc4TzEydUkxNngvM2NIWVoyVU9TcmxDS08rU2wxRGZ0?=
 =?utf-8?B?U2dZU21zNzBmUjhMN0pyL3J5bFZrdkgrUU5XcU0vak1GWHEzQjhFeVR4dThI?=
 =?utf-8?B?R2N0UlFrUmdSOHA2aDBMdXFaVWdCYVVuNlZpeVU3cTMwU0V0R3FZRDN3eTUv?=
 =?utf-8?B?Ym1INit6SUo0L3dvNEhsK0xiWUp5K2t1ZjRxY0VKUTdmZEYwUjR6Y1F2UUc0?=
 =?utf-8?B?dU8rZFJsZjdNcytrKzlDNHNXbVFXRCsrSjVGRHVIbVdLWFlkRHVWZ2pjQ3gr?=
 =?utf-8?B?UzVVT3I1cFY1TUxTTUhkWmQ5dmV3TnRRSVYvbUtEczgxK2NWb253U0ZTR09v?=
 =?utf-8?B?eS82c1VFeGxCRGpzTWtZNktPNXF3NFJJcHJRbEx5dzhCSGFEdUV4SjZrU1k0?=
 =?utf-8?B?bHRVMkRySzdXZlBSNUNyaHMxQ1B2Q3lnZjJkd2IvTkNINWduU2pFTkN5Z0xW?=
 =?utf-8?B?SHNIRWJLVU1obUtxb0RQMlFOUUtsS1VNbHJIN1owaHVJWVJCZk0ybU5POFRx?=
 =?utf-8?B?MjVBYXNIeGZKYVlCaVUrZkFYUmhTUk5vT3NTc2dyZnhuOXNOQ20wTTlGOXdn?=
 =?utf-8?B?Y0pOUm42R2FHTmZncUc1QUViQ2srNmh2VWdpSkhLZ3ZlVzB3YXRqL2NxWTZp?=
 =?utf-8?B?TGtZUVpqR0JvWU1WS0JRditQZWFLUjRySzE4TjFtMjNjSUVFbm9IT1JKeW0r?=
 =?utf-8?B?bFpVaEk3MHBJeTI2UHc5Q0VDamdsNWNNS09namxncmR6SDRoTTZJWUYrWVZM?=
 =?utf-8?B?WXNNMk0wSFpPVGl0eFFnN3VUQStPVmVReDM0NmVTdzkzZDM3cno3bU4rcERh?=
 =?utf-8?B?SHlVZXBERkxvUkJVTGlTOXdJczJxSkJZeC9zR2F5d0VVeUMvTnZQNDg4Z2V3?=
 =?utf-8?B?blhTam45MFpGY1ppdHFiNEswZ0lZNC9OYnd3Vmc3cnZCM1BEN1FBUGVrbU1C?=
 =?utf-8?B?eE41UWdaVWgyR3p2bjhUci83TmR3RGw5bVFjS2FPWXNVU3dhdUk5VTdGck5Z?=
 =?utf-8?B?bnRrSS9wOFMzeVRnYlFRV2xXNXV5T1pnS29iUkdzRHN2NFFPcjQ0UzF3NUZr?=
 =?utf-8?B?ZzF5K2JGT2lTVHhwQkNjUStyZ2NlMEZadjNxdG5Ec3dPQ0NQQmcrNlR3all2?=
 =?utf-8?B?TThKSU9Bb3BJRzlBSmlPRCtFOUtUNW1MdWNEd0kzdWtQWGxtd2huUS9Md0Yr?=
 =?utf-8?B?d2xhVGhpa3hhelBVZ0VTVUwzei9KMGVFcDhKcUIvSS9WY0RFT29QS1EwWFBi?=
 =?utf-8?B?UlpDWjY4cWdXK3h5SlM5RVh3c082TGFwK3VuN200LzNYcWYyekZ5ejFpQjY5?=
 =?utf-8?B?YWRPWGNxVDVaT2NKUjdZUEVYdUM5NmhLUjBuMnNsZlU0WkFOdlo3eEx4YkhH?=
 =?utf-8?B?ZnBBdzVaU2VHaVBVTUY4Qjhvc1FhSXFCS0JRNnQwbnhpUmo5QkdQUkl6aWxl?=
 =?utf-8?B?V1hwM1NFMmt5a2hFSUVlaTBjQ0k4R0p2L0tyRDRnN1ZCSzhHczFuL2NFaEpr?=
 =?utf-8?B?eHhhZUEvN3JqdXgyWC9rbUFLZVF4WjhkZER6Vm92a3pmKzdTU0hTdUZoVDV6?=
 =?utf-8?B?bS9DZTF4enMyY1Y0VjdQOHM1TXBIT0tPMDlQY0FaK1JuQjA1aFk1aDViOFFO?=
 =?utf-8?B?dUNpZUNPRlRWSVZzS0dHZzMxZFA4MkF2c0RCTm1ncHlqV0M4U1g4U3VzK0dQ?=
 =?utf-8?B?ejNZOXJOa2szZSthUXBqMTVTZ3dnZEVoaGx2K0ZsS1pFUmpmNU96aGRpcVNl?=
 =?utf-8?B?RXRnQ3RxVlo1Uml2RndoWnBWeDlyb0Ria2lRWTN2Q2pwVnBSRjBrZTVZZGty?=
 =?utf-8?B?QmhUb05kNXNLTkc3MzFXZXpxTE54REo5a3dZU3FpQ2JaR01OeFU2T0VWTzlz?=
 =?utf-8?B?QU5LVUI1Qko3eXZKbEJ6V3RXVE1rckVJV0dIWHJuSnA3WndndFpCdmtLR3JM?=
 =?utf-8?Q?8MNq/X?=
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)(376014)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Apr 2025 06:46:20.9590
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 96b59b37-7a9a-4c6f-04ee-08dd77323ce3
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: MN2PR12MB4222

When init_msi() fails, the previous new changes will hide MSI
capability, it can't rely on vpci_deassign_device() to remove
all MSI related resources anymore, those resources must be
cleaned up in failure path of init_msi.

To do that, add a new function to free MSI resources.

Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
---
cc: "Roger Pau Monné" <roger.pau@citrix.com>
---
v1->v2 changes:
* Added a new function fini_msi to free all MSI resources instead of using an array to record registered registers.
---
 xen/drivers/vpci/msi.c | 47 +++++++++++++++++++++++++++++++++---------
 1 file changed, 37 insertions(+), 10 deletions(-)

diff --git a/xen/drivers/vpci/msi.c b/xen/drivers/vpci/msi.c
index ca89ae9b9c22..48a466dba0ef 100644
--- a/xen/drivers/vpci/msi.c
+++ b/xen/drivers/vpci/msi.c
@@ -193,6 +193,33 @@ static void cf_check mask_write(
     msi->mask = val;
 }
 
+/* 12 is size of MSI structure for 32-bit Message Address without PVM */
+#define MSI_STRUCTURE_SIZE_32 12
+
+static void fini_msi(struct pci_dev *pdev)
+{
+    unsigned int size = MSI_STRUCTURE_SIZE_32;
+
+    if ( !pdev->vpci->msi )
+        return;
+
+    if ( pdev->vpci->msi->address64 )
+        size += 4;
+    if ( pdev->vpci->msi->masking )
+        size += 4;
+
+    /*
+     * Remove all possible registered registers except capability ID
+     * register and next capability pointer register, which will be
+     * removed in mask function.
+     */
+    vpci_remove_registers(pdev->vpci,
+                          msi_control_reg(pdev->msi_pos),
+                          size - PCI_MSI_FLAGS);
+    xfree(pdev->vpci->msi);
+    pdev->vpci->msi = NULL;
+}
+
 static int cf_check init_msi(struct pci_dev *pdev)
 {
     unsigned int pos = pdev->msi_pos;
@@ -209,12 +236,7 @@ static int cf_check init_msi(struct pci_dev *pdev)
     ret = vpci_add_register(pdev->vpci, control_read, control_write,
                             msi_control_reg(pos), 2, pdev->vpci->msi);
     if ( ret )
-        /*
-         * NB: there's no need to free the msi struct or remove the register
-         * handlers form the config space, the caller will take care of the
-         * cleanup.
-         */
-        return ret;
+        goto fail;
 
     /* Get the maximum number of vectors the device supports. */
     control = pci_conf_read16(pdev->sbdf, msi_control_reg(pos));
@@ -237,20 +259,20 @@ static int cf_check init_msi(struct pci_dev *pdev)
     ret = vpci_add_register(pdev->vpci, address_read, address_write,
                             msi_lower_address_reg(pos), 4, pdev->vpci->msi);
     if ( ret )
-        return ret;
+        goto fail;
 
     ret = vpci_add_register(pdev->vpci, data_read, data_write,
                             msi_data_reg(pos, pdev->vpci->msi->address64), 2,
                             pdev->vpci->msi);
     if ( ret )
-        return ret;
+        goto fail;
 
     if ( pdev->vpci->msi->address64 )
     {
         ret = vpci_add_register(pdev->vpci, address_hi_read, address_hi_write,
                                 msi_upper_address_reg(pos), 4, pdev->vpci->msi);
         if ( ret )
-            return ret;
+            goto fail;
     }
 
     if ( pdev->vpci->msi->masking )
@@ -260,7 +282,7 @@ static int cf_check init_msi(struct pci_dev *pdev)
                                                   pdev->vpci->msi->address64),
                                 4, pdev->vpci->msi);
         if ( ret )
-            return ret;
+            goto fail;
         /*
          * FIXME: do not add any handler for the pending bits for the hardware
          * domain, which means direct access. This will be revisited when
@@ -269,6 +291,11 @@ static int cf_check init_msi(struct pci_dev *pdev)
     }
 
     return 0;
+
+ fail:
+    fini_msi(pdev);
+
+    return ret;
 }
 REGISTER_VPCI_LEGACY_CAP(PCI_CAP_ID_MSI, init_msi);
 
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Wed Apr 09 06:46:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 06:46:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.943391.1342212 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2PCf-0005or-9k; Wed, 09 Apr 2025 06:46:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 943391.1342212; Wed, 09 Apr 2025 06:46: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 1u2PCe-0005ly-TK; Wed, 09 Apr 2025 06:46:28 +0000
Received: by outflank-mailman (input) for mailman id 943391;
 Wed, 09 Apr 2025 06:46: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=3VhX=W3=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1u2PCd-0004jx-Dl
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 06:46:27 +0000
Received: from NAM11-CO1-obe.outbound.protection.outlook.com
 (mail-co1nam11on20617.outbound.protection.outlook.com
 [2a01:111:f403:2416::617])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5b0a6b7e-150e-11f0-9eaa-5ba50f476ded;
 Wed, 09 Apr 2025 08:46:26 +0200 (CEST)
Received: from BN9P220CA0022.NAMP220.PROD.OUTLOOK.COM (2603:10b6:408:13e::27)
 by CY5PR12MB9053.namprd12.prod.outlook.com (2603:10b6:930:37::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.22; Wed, 9 Apr
 2025 06:46:20 +0000
Received: from BN2PEPF00004FBA.namprd04.prod.outlook.com
 (2603:10b6:408:13e:cafe::e6) by BN9P220CA0022.outlook.office365.com
 (2603:10b6:408:13e::27) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.22 via Frontend Transport; Wed,
 9 Apr 2025 06:46:20 +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.8606.22 via Frontend Transport; Wed, 9 Apr 2025 06:46:20 +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, 9 Apr
 2025 01:46:15 -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: 5b0a6b7e-150e-11f0-9eaa-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ayDtjRsagk769H4aVouXmvKtWmebWUdrjIZDPXDiBYPCd5St0R0llI/Y7n7ober/O4b3dO3Tw5Q9qGgWXGYn8vfI1jTV++y1Milw3YwX8uKUJlluYIhbw3mxZu8560MoYwiRRObvP3AknBydRWN7rTTZPS6yy0XYLubDlgT3wkakhCC/LkLNgjtGnDWfTfVgmLGD/ae4cuaJD9AnvY6qmmpsOWoO7QS3julXs371s8RkUlv3PwyifE9gad8NITL4Pd2X8PBeFyxn2sI0GqwJNogw3WGutdDR9y3w6kxwDiwwfXCAw9Lz1kvXwPnrweUzvltJx3Rp5JnP0h5O4/YlKg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=05DKwtjOHiEcIbXDskCI2CknrGZBxVgzCxsRLip2mQ4=;
 b=slJ9uTm+PvUmXI7VYug3EewFAXkiM416vDj9ur3jG2BsGY82koYNKY0gqjOMpHjqVoKlntXSfbOwUbNH016VUa9iQYUqAnVUKieDmsZ+5M32j5bM0t5ihVWu/jNdt9nDSXI+35XIhCm7uOnYDdCfVvmd1XByObERKiwJFhAYfbJW1+hET66DwMyy+zUigHCb+OhotahTMLsiGCAmcYFKm7JNEhUF37/SQDqFu/16w6p1VBU5dFxV41WZMq4NNVcVGxKNlt0ZoKnzGpTw5D7PNH+EaLNrGBKFcFJ6qVrTOKHfBKBl1BadcTyOI9OibE4DorUV9XGtVRP06ieKL5M4lg==
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=05DKwtjOHiEcIbXDskCI2CknrGZBxVgzCxsRLip2mQ4=;
 b=OgD8Xgf9rRBsyhlDxFowbUfF6Xo+YjtsH7KD+HTWvUInn3TiQtSncjKUxlUKwh2WfQM/yKeHaaTOdi5Ko1Xnl8TfvN4arTVFCy31iST16pJEWtSj+N4Ea5+HVqf3c4n21cXOnH7fHyp3wYIrhOKN+NXROW4PrBG5CdBOeEN4kN4=
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: Huang Rui <ray.huang@amd.com>, Jiqian Chen <Jiqian.Chen@amd.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v2 6/8] vpci/rebar: Remove registers when init_rebar() fails
Date: Wed, 9 Apr 2025 14:45:26 +0800
Message-ID: <20250409064528.405573-7-Jiqian.Chen@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250409064528.405573-1-Jiqian.Chen@amd.com>
References: <20250409064528.405573-1-Jiqian.Chen@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: BN2PEPF00004FBA:EE_|CY5PR12MB9053:EE_
X-MS-Office365-Filtering-Correlation-Id: e2b3e61b-7173-4252-f69a-08dd77323c72
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?N2luWk9aNnpqbE1ZMnFhcHV2eXdOVGoyaHkyZk0wbEFOeFJRa0ZDMjdITGEw?=
 =?utf-8?B?V3R1VHk0TW5wYUp1c1hHQ21zSjUxN1VPR3N3L0NsQUExdUtmMlZRcTE4bFhu?=
 =?utf-8?B?WjRyN0UyNngzbmM1b3ZpZTd1RjhLcFQ2eWI5VXN3bmlhU0NSVGhDK2tjbFZt?=
 =?utf-8?B?QVdQWGowQkpPVHJ2NThtT1N0Y1EyQzl2UWpnZDd5dXErMy9vZUZtYWY3QXpC?=
 =?utf-8?B?SzJKVWRhOW1OSWNpVGp2MVBCSnU3NEhqeVFMWHB0RUxURFozQ1lWamhDSldm?=
 =?utf-8?B?cnNjcDRkYUlyL3RQaDJKSkVGVTdmOUFTdUkwUk5EWVhZc1B6L01wT1dXS3JZ?=
 =?utf-8?B?Y2lmMG5GQ0RwQmFyZXYzcURPQTlTcUVRYlZRU25VRGloTGdPNWo4aTlOZzAx?=
 =?utf-8?B?THNwTHBQOE96b3FwZW9MYXNCL1pvTjFqV1VHdlYxem9CSnNHMGl6MlhCalFm?=
 =?utf-8?B?a2U4Qnhiamk3enVTeWIrcVhkU25ib3BXcStSWGJlY2NNanR3R3lidGdzUGlJ?=
 =?utf-8?B?dWYvL1lLdktZMlI2S21wTEl5QXkxeXlmVmRZSVlrSUNsQ3oxU201VzQzVVll?=
 =?utf-8?B?R00weVhKNUZFYWxrdVc3YjhNcWFLVmgwODlYaWtkZzNDTTNwTnlIR2xZNmd0?=
 =?utf-8?B?SnZLRUF5elN1M0xmWEhNU2dNZC9OZFdoUUNPYmJLNmpHK1JaMjU0aDBSWkFS?=
 =?utf-8?B?VTV1SHRSckxPTkYzV0UyOU5tUmo4TXJMU09LSDRKTFRuVkhBWXllQ1RoOFVt?=
 =?utf-8?B?SUJ0NDdza1k5WlJYeTgydTRRQ0dqS2Y4LzkvdmRsb2pFMEpReEhLYUg2Z0Va?=
 =?utf-8?B?S21OTVNoUllKRHFZUmlJMGR4dndaV2MrenZpQ25EQVgvVXVSK2c0NENRREpI?=
 =?utf-8?B?Q1BuMVhza1J3c29Nai8xWGFaR1BSWTZwOE5IV21VeXpCSkNZSFUwRitMMndY?=
 =?utf-8?B?TmFRRlZ3VS9FVEFYYUdtMHFlTVloQjY3bnVibm5wakd4eHFCc0J4TnhvZXFu?=
 =?utf-8?B?VWJDYmV6OTBvd1A2djlsdVBsanhtbGN2Qnh6aUdINzhsSXVRdkFtZlgyVjBU?=
 =?utf-8?B?NXRoZ0QwZlpOV05xd3lRMTRCaWYydmVFd0FaTHp1aXZ0S3hxUkhOSndNQXhU?=
 =?utf-8?B?M1NmdGpvdzlZYlEvTnNNU21tRnlDenJteTErL2JtK3pqTm5Od2liR2xsOCtJ?=
 =?utf-8?B?T0h5RHArUWtlck5ZOXdoeVpNMjQ5Q0xlcEpOaDFkNGJiSmhmb0VHN01KdFdS?=
 =?utf-8?B?ZEh2cUI5TDlTSmVDbjZLaVp1QnB2WTVaR0FCUTEzaHNXTXJyTEFKOGtlNVhO?=
 =?utf-8?B?SGZoZDFudWxtWE5PcUd5byt1RlZHdlFHVGFDelNwazdsRUxFNVBGVTdoUWNG?=
 =?utf-8?B?OEdFekIvS0hMUEdFRG5pQWJONnpUd3h3OFVtZXNNK2lFeE1LVFhxblRaOS9l?=
 =?utf-8?B?c1hCZnlETEN6S1NhKzZmbHBFV2JkMUNrTlFHUWFNR0JZUTFHUCtiOU0rZ3l0?=
 =?utf-8?B?VEMrakZoYWN4NHVpOVg3dnE1STJLenFtMHc0K2N5SEN6dWlyb1RNUmE4SUxJ?=
 =?utf-8?B?NWl4MUg0S1c2eXMxeGJFbFlpYVRrNmkzRHYzZnJ5WTNxUmhaeWtDWUFFTkNI?=
 =?utf-8?B?NWNUUHQzRDUybDE5d3dXK1FCaWM5UUFFMmpYbXJxNE9vamkyVGM0R1JTUTd5?=
 =?utf-8?B?WDJZNGNPb1pNRFNtTU0zWlVzaFVzR0xQUTVlakIwM0NIMjBWMFdxQU5PM0ky?=
 =?utf-8?B?alJkTy9lL0xwM3E1YWlIZjRIUHRiTDc0QTc4dWJ6T0s1NnMvNEkrbVJNSDli?=
 =?utf-8?B?Qy9xbnl6SVNia3lwQ2VyenRTdkZPcnkrQjZqbXhwK1plYjViYytKMzdwcUFX?=
 =?utf-8?B?NFZiVEJtMUwrMHZKRk1jdXY5Y2lTZ043cDZkeFZxYXdYSzNsS2hvSjF5c2NU?=
 =?utf-8?B?T2dRbGtmZXB1eWlJSjM2UDVNMkZCWUplWDQwSEl1Z3RRRko5RDhiWFZHbFVp?=
 =?utf-8?B?d2orN0FackpvSmdZSnVqOG82a20rTjVFa1krNGk2UUV2UkFZWFd0MWxsVEFa?=
 =?utf-8?Q?+vzciO?=
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)(82310400026)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Apr 2025 06:46:20.2246
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: e2b3e61b-7173-4252-f69a-08dd77323c72
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: CY5PR12MB9053

When init_rebar() fails, the previous new changes will hide Rebar
capability, it can't rely on vpci_deassign_device() to remove all
Rebar related registers anymore, those registers must be removed
in failure path of init_rebar.

To do that, call vpci_remove_registers() to remove all possible
registered registers in the failure patch.

Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
---
cc: "Roger Pau Monné" <roger.pau@citrix.com>
---
v1->v2 changes:
* Called vpci_remove_registers() to remove all possible registered registers instead of using a array to record all registered register.

Best regards,
Jiqian Chen.
---
 xen/drivers/vpci/rebar.c | 25 ++++++++++++++-----------
 1 file changed, 14 insertions(+), 11 deletions(-)

diff --git a/xen/drivers/vpci/rebar.c b/xen/drivers/vpci/rebar.c
index 79858e5dc92f..e030937956e3 100644
--- a/xen/drivers/vpci/rebar.c
+++ b/xen/drivers/vpci/rebar.c
@@ -51,6 +51,7 @@ static void cf_check rebar_ctrl_write(const struct pci_dev *pdev,
 
 static int cf_check init_rebar(struct pci_dev *pdev)
 {
+    int rc = 0;
     uint32_t ctrl;
     unsigned int nbars;
     unsigned int rebar_offset = pci_find_ext_capability(pdev->sbdf,
@@ -70,7 +71,6 @@ static int cf_check init_rebar(struct pci_dev *pdev)
     nbars = MASK_EXTR(ctrl, PCI_REBAR_CTRL_NBAR_MASK);
     for ( unsigned int i = 0; i < nbars; i++ )
     {
-        int rc;
         struct vpci_bar *bar;
         unsigned int index;
 
@@ -80,7 +80,7 @@ static int cf_check init_rebar(struct pci_dev *pdev)
         {
             printk(XENLOG_ERR "%pd %pp: too big BAR number %u in REBAR_CTRL\n",
                    pdev->domain, &pdev->sbdf, index);
-            continue;
+            goto fail;
         }
 
         bar = &pdev->vpci->header.bars[index];
@@ -88,7 +88,7 @@ static int cf_check init_rebar(struct pci_dev *pdev)
         {
             printk(XENLOG_ERR "%pd %pp: BAR%u is not in memory space\n",
                    pdev->domain, &pdev->sbdf, index);
-            continue;
+            goto fail;
         }
 
         rc = vpci_add_register(pdev->vpci, vpci_hw_read32, rebar_ctrl_write,
@@ -97,14 +97,7 @@ static int cf_check init_rebar(struct pci_dev *pdev)
         {
             printk(XENLOG_ERR "%pd %pp: BAR%u fail to add reg of REBAR_CTRL rc=%d\n",
                    pdev->domain, &pdev->sbdf, index, rc);
-            /*
-             * Ideally we would hide the ReBar capability on error, but code
-             * for doing so still needs to be written. Use continue instead
-             * to keep any already setup register hooks, as returning an
-             * error will cause the hardware domain to get unmediated access
-             * to all device registers.
-             */
-            continue;
+            goto fail;
         }
 
         bar->resizable_sizes =
@@ -117,6 +110,16 @@ static int cf_check init_rebar(struct pci_dev *pdev)
     }
 
     return 0;
+
+ fail:
+    /*
+     * Remove all possible registered registers except header.
+     * Header register will be removed in mask function.
+     */
+    vpci_remove_registers(pdev->vpci, rebar_offset + PCI_REBAR_CAP(0),
+                          PCI_REBAR_CTRL(nbars - 1));
+
+    return rc;
 }
 REGISTER_VPCI_EXTEND_CAP(PCI_EXT_CAP_ID_REBAR, init_rebar);
 
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Wed Apr 09 06:48:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 06:48:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.943426.1342229 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2PEk-0000Tu-Ll; Wed, 09 Apr 2025 06:48:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 943426.1342229; Wed, 09 Apr 2025 06:48: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 1u2PEk-0000Tn-JF; Wed, 09 Apr 2025 06:48:38 +0000
Received: by outflank-mailman (input) for mailman id 943426;
 Wed, 09 Apr 2025 06:48: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=5vFf=W3=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u2PEj-0000TU-HK
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 06:48:37 +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 a8b6d9a5-150e-11f0-9ffb-bf95429c2676;
 Wed, 09 Apr 2025 08:48:35 +0200 (CEST)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-43cfe574976so43597115e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 08 Apr 2025 23:48:35 -0700 (PDT)
Received: from [10.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-43f2066d92csm9850385e9.24.2025.04.08.23.48.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 08 Apr 2025 23:48:22 -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: a8b6d9a5-150e-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744181315; x=1744786115; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=WvYHZ2ohepgi0c0hKQInC4JLDSkuPsQaO80VHvx7THs=;
        b=EDjv7XDlzkDxOG/9ywtB5PNrri83a01/NVt0NCsWo1thRfKuojBiY2fUzr05EzY/MX
         5nZOdmgi0XQ0wpNrbFiIEbTdaG5rujDAmP38qQuxDAwpNhKf6IeTwPTEOWOEvIobWyHu
         2F92lPUlUvDQtIN8nwiRHQWiKS2A0ILsXl42GJDiWyogDDOcpdMll4HzHzvczq0ybDrj
         nrLTqCgXO2YebfbO7Aj7LegvdLAzckCrp4/kNQQQ2MSI+DAMz4Kjqjo4mL2KXauPx/NN
         72VekEhBa5fgpSIvkwit4vfLlfoXgq+iv8Xr2j1HLzIub5E1TAfn/46S3A3kid/2gwFG
         oyZA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744181315; x=1744786115;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=WvYHZ2ohepgi0c0hKQInC4JLDSkuPsQaO80VHvx7THs=;
        b=tXtYjhagjV4VjU7w2RaGDFGYJ6eAiFGCf1TVryVSNcr2EGBrTU6mvPVkGxXhraGziR
         oxFj2dxdh5aLFOl6JEErhmFpKCD5c9ATs14xNt4U0RrcUq+c0XpZO+zGSAIvUk/QlurV
         ODJsdIfgaLDJL/N1PJydp2Vu6L3dmSSpcFJJrbQU+Rc19tjlIYRsfoSK74ws1fOBzxDA
         7H/f3ijxjqXhiQnzGfebVGomjidAY+j2zTupNawp9kScfFp67/I3UCj2i5anEl73SUoy
         qLdIZRHv7UbRyE5B55X+RI4n+h6QsslRCLXMhqFa6DrXV8cVqWMokwepPHroM83/s1rR
         Qwpg==
X-Forwarded-Encrypted: i=1; AJvYcCVxDtcJp/EgDL2B/HTGhW5K+dTw0CJ5MAGFU1UHHRYvYerOLrWnJ7YeCl0WbdEbDS5eOPJNfQa8wwE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YygNurHXsQhC9jTCJYrUDTS2KgrgrXIOIRdCnge2l80ZkFRcyRG
	pc+NxxZ2SLqAQLrVpynMVawKqxNm+R/RolOXEN7ThLdo4+GmWWPOYSPD8H2JEg==
X-Gm-Gg: ASbGncvxugVbtyLMSpeMWtCfyJCo0WvBV5jdZyZWMbQ08swwjmZxfoihjuiBf0AoZcf
	FRdH6O3B/rZik4h00dsZKlYf9aUDfe+n05RjnRkM4XPQMQOrn5ZilP1QuI7839Ay5YVJGsovXO7
	urDJIj01TD3H7YsiC6EXr60wU2FvqEnvmW/kgsM8kJKSl2c4NJMC3etLbjlcQMTrNryZCg90fCw
	9tPz+Fb/DQCmRgXtXYcLLUIIX6gW4tDI/WoeJg0au+xRG12+f0+Io4VIPQoeleoRPOe5pODdmZB
	b/Zq3BBf3vNh0f7RzsjuztrlYAcpz23c0F76VzKfIlW2iyopOACPvx9f501XVfVjj0eawR76O8U
	hrLSGbCpcjPoWvjrTcrb1KsfUMkWfV1F6W6RZ
X-Google-Smtp-Source: AGHT+IEWVL0PB4RWdW7R1dRQiA52jMMvZtAo7x2u6d5Az80ULjeCT5JrJVuR2Ge7vCd6Rs8G34VgEw==
X-Received: by 2002:a05:600c:1d86:b0:43d:7588:66a5 with SMTP id 5b1f17b1804b1-43f1ed671d7mr15313805e9.31.1744181303150;
        Tue, 08 Apr 2025 23:48:23 -0700 (PDT)
Message-ID: <cdf00f8c-2143-48d6-abdc-8f56dafcc84c@suse.com>
Date: Wed, 9 Apr 2025 08:48:21 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 03/16] x86/boot: add cmdline to struct boot_domain
To: Alejandro Vallejo <agarciav@amd.com>
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Jason Andryuk <jason.andryuk@amd.com>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Michal Orzel <michal.orzel@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: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-4-agarciav@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: <20250408160802.49870-4-agarciav@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.04.2025 18:07, Alejandro Vallejo wrote:
> From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
> 
> 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>
> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
> Signed-off-by: Alejandro Vallejo <agarciav@amd.com>
> ---
> No changes on ACPI cmdline handling on PVH, as it's orthogonal to the
> purpose of this patch.
> 
> v3:
>   * s/xfree/XFREE/ on failed construct_dom0() to avoid a dangling
> cmdline ptr.
>   * Re-flow hvm_copy_to_guest_phys() into a multi-line call.
>   * s/bd->cmdline != NULL/b->cmdline/ (to homogenise with the previous
>     cmdline pointer check)
> ---
>  xen/arch/x86/hvm/dom0_build.c          | 12 +++----
>  xen/arch/x86/include/asm/boot-domain.h |  1 +
>  xen/arch/x86/pv/dom0_build.c           |  4 +--
>  xen/arch/x86/setup.c                   | 50 +++++++++++++++++++-------
>  4 files changed, 47 insertions(+), 20 deletions(-)
> 
> diff --git a/xen/arch/x86/hvm/dom0_build.c b/xen/arch/x86/hvm/dom0_build.c
> index 2a094b3145..ebad5a49b8 100644
> --- a/xen/arch/x86/hvm/dom0_build.c
> +++ b/xen/arch/x86/hvm/dom0_build.c
> @@ -653,7 +653,6 @@ static int __init pvh_load_kernel(
>      void *image_start = image_base + image->headroom;
>      unsigned long image_len = image->size;
>      unsigned long initrd_len = initrd ? initrd->size : 0;
> -    const char *cmdline = image->cmdline_pa ? __va(image->cmdline_pa) : NULL;
>      const char *initrd_cmdline = NULL;
>      struct elf_binary elf;
>      struct elf_dom_parms parms;
> @@ -736,8 +735,8 @@ static int __init pvh_load_kernel(
>              initrd = NULL;
>      }
>  
> -    if ( cmdline )
> -        extra_space += elf_round_up(&elf, strlen(cmdline) + 1);
> +    if ( bd->cmdline )
> +        extra_space += elf_round_up(&elf, strlen(bd->cmdline) + 1);
>  
>      last_addr = find_memory(d, &elf, extra_space);
>      if ( last_addr == INVALID_PADDR )
> @@ -778,9 +777,10 @@ static int __init pvh_load_kernel(
>      /* Free temporary buffers. */
>      free_boot_modules();
>  
> -    if ( cmdline != NULL )
> +    if ( bd->cmdline )
>      {
> -        rc = hvm_copy_to_guest_phys(last_addr, cmdline, strlen(cmdline) + 1, v);
> +        rc = hvm_copy_to_guest_phys(last_addr, bd->cmdline,
> +                                    strlen(bd->cmdline) + 1, v);
>          if ( rc )
>          {
>              printk("Unable to copy guest command line\n");
> @@ -791,7 +791,7 @@ static int __init pvh_load_kernel(
>           * Round up to 32/64 bits (depending on the guest kernel bitness) so
>           * the modlist/start_info is aligned.
>           */
> -        last_addr += elf_round_up(&elf, strlen(cmdline) + 1);
> +        last_addr += elf_round_up(&elf, strlen(bd->cmdline) + 1);
>      }
>      if ( initrd != NULL )
>      {

Perhaps better introduce a local variable cmdline_len? That would allow the first
if() to go away (but of course not its body).

> --- a/xen/arch/x86/setup.c
> +++ b/xen/arch/x86/setup.c
> @@ -978,10 +978,30 @@ 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)

const for both? And perhaps s/domain/dom0/ in the function name?

>  {
> -    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;

While this retains prior behavior, that prior behavior was certainly odd (and
pretty likely not meant to be like that).

> @@ -1043,17 +1067,19 @@ 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->kernel->cmdline_pa = 0;
> +        bd->cmdline = cmdline;
>      }
>  
>      bd->d = d;
>      if ( construct_dom0(bd) != 0 )
>          panic("Could not construct domain 0\n");
>  
> +    XFREE(cmdline);

While this tidies the local variable, what about bd->cmdline? As it stands this
gives the impression that you're freeing a pointer here which may still be used
through passing bd elsewhere.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Apr 09 06:58:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 06:58:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.943520.1342240 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2PO7-00040s-IS; Wed, 09 Apr 2025 06:58:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 943520.1342240; Wed, 09 Apr 2025 06: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 1u2PO7-00040l-EZ; Wed, 09 Apr 2025 06:58:19 +0000
Received: by outflank-mailman (input) for mailman id 943520;
 Wed, 09 Apr 2025 06:58: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=5vFf=W3=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u2PO6-00040L-8a
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 06:58:18 +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 fe3cdee3-150f-11f0-9eaa-5ba50f476ded;
 Wed, 09 Apr 2025 08:58:08 +0200 (CEST)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-43cfecdd8b2so49723245e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 08 Apr 2025 23:58:08 -0700 (PDT)
Received: from [10.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-43f2075fc99sm10043395e9.29.2025.04.08.23.58.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 08 Apr 2025 23:58: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: fe3cdee3-150f-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744181888; x=1744786688; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=TSoyB05TL8WuycFnakL5CCjT6Fv6bYixSt7QB1XJSis=;
        b=aN0X6l6m1QOPpk+zBBDDKrC5+nF3189wC2j2SfpUod48qXugUj4oZiW5UKwmSIpDJc
         SU05rJKBitbWr0wNm0KhBBQ2/yJIPt/ZA5Cw3qpLxMnuToC+Vr/UFHw228waLeAtsw6G
         zO9gw2UF5iiDRcub5uysKSH2VfdpWrUuV0jRMIR5gHHZvwQ5Yr+SBQrHwjXBFlTh5IPt
         Is6kMEvSvyji9lN9ec5PMyHFAbxT31NS7iQ7ZJcg1Cu+tUJ9z3kLKkSEN9tluShbXLbt
         kDhVK22dLE6HoKEBfXiANJcXY3jr4amkA74dxEKUPGJ5LeGd2oKToTXXBuN8cZKxq1gX
         2eEQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744181888; x=1744786688;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=TSoyB05TL8WuycFnakL5CCjT6Fv6bYixSt7QB1XJSis=;
        b=F0kavGPFrLRz6Fy/rUo/iqSovn268cLntNuZ8EbYCAv4GRmvHFq3mzPjpvN6nziFXK
         DPi0uqo1B7uJAcTThGlCrYYJL1eWb47cCSSHKPqP5kpDQYbI6ArY8WqABCNJL1wN0tio
         Wn6hX8J0FNG2ISoAcHDEjqPubBjbZZok+RpbDYYXCCaXgbOiGeHILkQi2vSOdP5F1/cf
         ZECDzl2fofSLUK0oCZwZb2PYTQIaLpKmWF3W+w5xmHZdqMlXXieOzrZd+dsGSBJ4xFwY
         hrgAToFQr8Z+rCrZPWJHeO7HBwADcExocS+v4ytlWPvBBq4qvKziRSFxbcx9qmVB62QE
         +Gag==
X-Forwarded-Encrypted: i=1; AJvYcCWrkU9qSy2OcsCYmyVmYen+cPBH93K92mGOKyM0B4s7WZWSFMZcc3uEzrriQs1PJigLim8d/vqyR90=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxtruKkCNdvKT2Fp/35jMxg3Gkaf6b94u7r18a+UZ0MG1YRhY1t
	HA03N4FVFLq3F+rYOcxuEHqRGuNAdmv/6AVQEu+SieSczA/XAbJ3pcByrp9lBw==
X-Gm-Gg: ASbGnct9Ili/Q9hi99nd4bjWDlfue8t1MzrrbkSl6Z39RA6ddIS86NcrZGTqXbzu1vF
	n9l6Kc/Qb+QZN0JxfpDTWleGwjkbXcS7GTLzltmnNcXfiufoxM9CtZv4zLDaj0323Dh6pIxsli+
	4GjSuZrP/g3nlxq/tdjsgmZJteQHJSWQHNHi+GTqgAHiRL8DjsqGpikjltSE5Maj+vDO3J++reA
	nj18d2MltWF2VxGv51idY9G7eyccSLCksPZ7/IKhs/qExrAbAEPEYAP5T4QPhVGnSA+GZiygs4p
	MkQeBBPlbAGBEoBo2pHssmOw9PCPL5WaB013c67LkCLFBE01ydqEFmhw4Pq2gCEsTHZB0cP4Pk4
	gkPHZ71Iv8oiNKinJHpKKqzAzjH0dVoIyPhBv
X-Google-Smtp-Source: AGHT+IE1lcXtXm4BXdVngqc6cQlfsOXVJ2Wyk/5GCVtHaG/TR9askv1tIRtxHGk2pyo/69x0Dlnn+w==
X-Received: by 2002:a05:6000:186c:b0:390:f699:8c27 with SMTP id ffacd0b85a97d-39d87aa0c65mr1482256f8f.12.1744181887849;
        Tue, 08 Apr 2025 23:58:07 -0700 (PDT)
Message-ID: <4e5c77f3-c6ff-45f6-b517-39a88a76ad04@suse.com>
Date: Wed, 9 Apr 2025 08:58:06 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/7] xen/domain: introduce domid_alloc()
To: Denis Mukhin <dmkhn@proton.me>
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, julien@xen.org,
 michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org,
 dmukhin@ford.com, xen-devel@lists.xenproject.org
References: <20250331230508.440198-1-dmukhin@ford.com>
 <20250331230508.440198-3-dmukhin@ford.com>
 <32a01662-3f34-4670-b38f-7d660acd3d2c@suse.com>
 <Y8GhEKf3_4HeHTMCpwHkIF1k7ESinA0tL_jlCQsxKamzi8wEc7vSK3DtzXb22qF6xzFbS2yDtP0EGUqvCBVcHn9ggIxwKcES4sdyOpVAoos=@proton.me>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <Y8GhEKf3_4HeHTMCpwHkIF1k7ESinA0tL_jlCQsxKamzi8wEc7vSK3DtzXb22qF6xzFbS2yDtP0EGUqvCBVcHn9ggIxwKcES4sdyOpVAoos=@proton.me>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 09.04.2025 03:44, Denis Mukhin wrote:
> On Tuesday, April 8th, 2025 at 7:26 AM, Jan Beulich <jbeulich@suse.com> wrote:
>> On 01.04.2025 01:05, dmkhn@proton.me wrote:
>>
>>> From: Denis Mukhin dmukhin@ford.com
>>>
>>> Move domain ID allocation during domain creation to a dedicated
>>> function domid_alloc().
>>>
>>> Allocation algorithm:
>>> - If an explicit domain ID is provided, verify its availability and
>>> use it if ID is unused;
>>> - Otherwise, perform an exhaustive search for the first available ID
>>> within the [0..DOMID_FIRST_RESERVED) range, excluding hardware_domid.
>>>
>>> This minimizes the use of max_init_domid in the code and, thus, is a
>>> prerequisite change for enabling console input rotation across domains
>>> with console input permission on x86 platforms (which currently is
>>> limited to dom0, PV shim and Xen).
>>
>>
>> By removing the updating of max_init_domid you do - afaict - break the
>> remaining use site(s) of the variable.
> 
> Unfortunately, this patch should go together with the next patch in
> this series:
>   xen/domain: introduce domid_top()
> 
> I mentioned dependency in the cover letter.

No, that would still break bisectability. Also such dependencies would
better be mentioned in both the cover letter and the patch(es).

Going back to the cover letter, all I find is "Patch 3 depends on patch
2." That's the natural thing in a series.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Apr 09 07:07:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 07:07:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.943535.1342249 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2PXF-0007T6-FW; Wed, 09 Apr 2025 07:07:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 943535.1342249; Wed, 09 Apr 2025 07: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 1u2PXF-0007Sz-D2; Wed, 09 Apr 2025 07:07:45 +0000
Received: by outflank-mailman (input) for mailman id 943535;
 Wed, 09 Apr 2025 07:07: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=5vFf=W3=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u2PXE-0007St-Es
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 07:07:44 +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 543c96a4-1511-11f0-9ffb-bf95429c2676;
 Wed, 09 Apr 2025 09:07:42 +0200 (CEST)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-43edecbfb46so31145835e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 09 Apr 2025 00:07:42 -0700 (PDT)
Received: from [10.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-39d893f0cebsm739191f8f.61.2025.04.09.00.07.40
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 09 Apr 2025 00:07: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: 543c96a4-1511-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744182461; x=1744787261; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=f+AuMdBWBGPp8seNFsO0F5ilNsPoUHNpFvv4doyUelI=;
        b=EBoCpFQo3tbqTzbHtJJgcgbuF+ErurNak8nSR4zmP53lfGvrDsgIbtdPkJSlZ+R872
         36M6OloYOP07d2ASP3HQi6xWDXG8asO6I8xWPwATpNPRH9UTVu3qaDgUPvj2DH09ksGy
         7QDj85mjTDnOqWZ1gZZVv508DxD9OYDgam1+fEtn99Xk/WcRM83o8jb477QNcvoqDXvB
         ZI9wiCEwMZMs5++IFT/cfPAq8pndGP7fbRuq/32No4KsGmoAjKUBcsCyQMqCA0uW+FA3
         FElOCsymEJ5Njo+4ltE7I3iz7d5Zv9VgoUlq90mHwxsyOwcFr0aXMnbOgY+JXAxPR+cW
         5hLQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744182461; x=1744787261;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=f+AuMdBWBGPp8seNFsO0F5ilNsPoUHNpFvv4doyUelI=;
        b=ouJAuJslLwAIuhwju32LtDLjuNyBmVAuNw2t4Q5e50JBDBma2twAQqXpSeo1TOEI8z
         p3Eh+F6dDdnvgM4zag44ufg1T3ZCjpXAZji6Dx6Bp3n74twVdD30Zgl1nrcxVawU+Zg+
         a5LR89JMDpNkmP/F+WqkjWzJNiq3oMSFpaLiwMJoOllqswIFWu3H+pBurczb2Zt3m3vD
         Tz37HawT3IuksRTr94Oo38TgLpkjJUEk1xbQXZwJ7dERuGH78V/oaDnHLAIwSBiNgiE7
         v7YAFmG0SAbOVD2RUoZqx9AZ5lOYJS6nFTE2pXE+8xI2pe6NYjK/Bz3bb/CXE4CDiwtM
         dc9g==
X-Forwarded-Encrypted: i=1; AJvYcCWmEWucbs/DqIB3piJea34LzONi64C9K7rQ8K+3lyzrH4s/sCo7Zrkru6JChcCBFJg7NHKr6ifaRBI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzuAsLgVKIYNwS35ZTozST+Fo03HUDSIAINq+YPG8CTA7Unah0H
	uvdqjuX5czP8WqdbsiWrEsXEehY6S89EENwiZd0eCn/3H+3xFEpvt4JMwVW3/w==
X-Gm-Gg: ASbGncteCnCBj6PCv3PPlnlD5vOEwJQeC8FOIzyIGT9w/ZVPkcwCa95dHYY+K25/oTL
	eQGTHhTcS0EtvyzYA/Dj74lLMo8dQNalvy/MKif7uSOjFZgF+s54HTrj9rkZDkrM2TFPJ0Dx7aX
	EFBkGMbEVwLEU1NpKmAH4hZUHrRcAomrIinP55a8PJJ7mUvMYl2Jm72a/HVq99DKlGqfUcGeG+y
	UFDs4FSIdeBKDBhdufXijsPZcoSbrOEOVWKkfRhGy8AC8UsV42zYmEIkDFP3OxtzR4/bqSGy5NE
	+N2PatrzuZ4tj7AxHCXxQ8XlybdtgXQTz+pLUB0UxLT/41livMV+emruOvhqDkjl26esslwLKmM
	MvnZ5UTME5zbVzOeiQODckC8s9g==
X-Google-Smtp-Source: AGHT+IFpqqx19UM9EfSJ5JvB8qV8DO0fHzY5ZeR0vjHSIvR5Sn20L8LhVirJPx2vhlkbG87iIALu8Q==
X-Received: by 2002:a05:600c:1c1e:b0:43d:b3:f95 with SMTP id 5b1f17b1804b1-43f1ff45438mr8596705e9.28.1744182461513;
        Wed, 09 Apr 2025 00:07:41 -0700 (PDT)
Message-ID: <224daf51-6b54-4d0e-b910-b6bac4c663b0@suse.com>
Date: Wed, 9 Apr 2025 09:07:40 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3.1 1/2] x86/amd: Add guest support for AMD TCE
To: Teddy Astie <teddy.astie@vates.tech>
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Community Manager <community.manager@xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <2bac0ded3456e04b49b48cf0808203e76fc6a622.1743771654.git.teddy.astie@vates.tech>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <2bac0ded3456e04b49b48cf0808203e76fc6a622.1743771654.git.teddy.astie@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 07.04.2025 11:10, Teddy Astie wrote:
> AMD Translation Cache Extension is a flag that can be enabled in the EFER MSR to optimize
> some TLB flushes. Expose this flag to guest if supported by hardware. This flag can be
> used by Linux since version 6.14.
> 
> Only expose this feature to HAP-enabled guests. Guests with shadow paging guests have

Nit: double "guests".

> their TLB flush operations intercepted and handled separately, without taking account
> to this flag. PV guest follows Xen TLB flush behavior.

Commit messages want to have their lines limited to like 75 chars, to cover
for e.g. "git log" behavior combined with the general 80 chars line length
limit.

> --- a/CHANGELOG.md
> +++ b/CHANGELOG.md
> @@ -18,6 +18,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
>     - Support PCI passthrough for HVM domUs when dom0 is PVH (note SR-IOV
>       capability usage is not yet supported on PVH dom0).
>     - Smoke tests for the FreeBSD Xen builds in Cirrus CI.
> +   - Guest support for AMD Translation Cache Extension feature.

This may want to say HVM or even HAP.

> --- a/xen/arch/x86/pv/emul-priv-op.c
> +++ b/xen/arch/x86/pv/emul-priv-op.c
> @@ -857,8 +857,8 @@ static uint64_t guest_efer(const struct domain *d)
>  {
>      uint64_t val;
>  
> -    /* Hide unknown bits, and unconditionally hide SVME and AIBRSE from guests. */
> -    val = read_efer() & EFER_KNOWN_MASK & ~(EFER_SVME | EFER_AIBRSE);
> +    /* Hide unknown bits, and unconditionally hide SVME, TCE and AIBRSE from guests. */
> +    val = read_efer() & EFER_KNOWN_MASK & ~(EFER_SVME | EFER_TCE | EFER_AIBRSE);

Nit: Please respect line length limits when extending lines.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Apr 09 07:11:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 07:11:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.943549.1342261 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2Pay-0001nR-0p; Wed, 09 Apr 2025 07:11:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 943549.1342261; Wed, 09 Apr 2025 07: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 1u2Pax-0001nK-T2; Wed, 09 Apr 2025 07:11:35 +0000
Received: by outflank-mailman (input) for mailman id 943549;
 Wed, 09 Apr 2025 07:11: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=5vFf=W3=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u2Pax-0001je-1u
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 07:11:35 +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 ddd96fbb-1511-11f0-9ffb-bf95429c2676;
 Wed, 09 Apr 2025 09:11:33 +0200 (CEST)
Received: by mail-wr1-x429.google.com with SMTP id
 ffacd0b85a97d-39141ffa9fcso6914257f8f.0
 for <xen-devel@lists.xenproject.org>; Wed, 09 Apr 2025 00:11:33 -0700 (PDT)
Received: from [10.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-39d893f0b35sm733060f8f.70.2025.04.09.00.11.31
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 09 Apr 2025 00:11:32 -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: ddd96fbb-1511-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744182692; x=1744787492; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=zx5Eptr3LyGKweZlwDlU+8etOP8YBXBEzZ0eiNtWjis=;
        b=EgLpFAtA5hhT1029ZRvJiiOl7eG61FFLgSHiW7r5G199JId+IaLQS/ksU6NgGQGJkB
         U6fwMj1CZ5KFu7VSYVADzHC+n49BI/EXI0Vem03vBIvGnUp8Dc4u6x64VBc3HTC2Q1BU
         8Hoc82PI3m5eZOWxmllCyiwjvpi7wCnxNlD4eCARLnHlCzGmio353+ZZicK/iqpHLSlI
         +jYMsT4N8+g00yP3C4nidW8YJJcNShXX4YWGbRVNwQyo+6biioY1uJcXTdUOEseKwPda
         toeYYbKKcTVR/5kJEughN5dWnIuTBVsAiQXIpXUNWNG/bUW+4fFK2LNNp/ZmW219eeVA
         HIHg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744182692; x=1744787492;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=zx5Eptr3LyGKweZlwDlU+8etOP8YBXBEzZ0eiNtWjis=;
        b=nbyKyMIZmN7q1xrZtZ73YEqHVx4dBd53e3QTyb5ULMtKmSA5vM91mGLDmoo60mHsF+
         SlO8YxwdCpOolhCD75s+/82sXABN1/+XMqFro3qKCebbv3j6FqVMUUd6vSnXj4+5senB
         wj+mP7uYC5Juho9O0IBWAvCBk3q8Q3H7gntqa9sISyOdXPA+FDHhJg1W/h3HZn90uW9K
         09tqQ89BxAf9htmxkoKHkF8ACu9mAOY5vY0varOE7mdNf+lyWkdUfkGvzkfmbBi3ai6J
         x4nLzbAPlPPCglIPv83CP3yEbKNqtRe6wLazCNxMr3HYcEUuaKcRag5i+pckucwjSxZk
         YWlg==
X-Forwarded-Encrypted: i=1; AJvYcCXqXiEO3lUiwrNdJdSFeKWncz4g6D4eIWJBWxOdCIsMJKvMBN3npIayQ8ZXkZLiyHvptRY0TurJdps=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzAxCpp3bj7bpRz417KwItZpyrbFXyNvMdLeUHqSxZAfXKJcVHZ
	RKVbZPLByHI3l9Mf9HdkzQd/7g8BLuczHgAl1s/+l4EvIxX8WRwLlAKXTbf+vQ==
X-Gm-Gg: ASbGncvGraiHdlP17N3QtLUaje597x4Pykn1s0+KIoLo9tlTnSaOYyTA/TE+Ln/tUeV
	AiI/dtdzhecayDne9tVXzwgwjo3pl1rj2L6XLOsuZSly6qM86DD5bkFG+/MjeQmt9srAJTNlLhS
	mbhYWiHltmajll0YZSyRy0xKt/PPrYz22ZspcuFYyC3rA64m/VTp8fMl2AfyXRd+qRlcv0v1Xnf
	7NvGkUq5eqq+jHaOC25N6Q0kcysMKBo4trjIDgFcKITfT26hfUbE8eCPTKZjQvqSJplGZRIICXy
	nLcsMb1zV53BDiI/C7EbiDtTfMFCd+vILBS3kQ0ocsJtLW9J35Y19J8D3zGOQvEyrsl0B6GWtlF
	T3fx8Nmo0UYZJtTrwOsmRGLBySA==
X-Google-Smtp-Source: AGHT+IHr2KsvBBFK6nxM80fE/xLwz9lmYP98JkcD4SRscfFrWhKho223pMKQGzdzGZs2k5S/WtZT0A==
X-Received: by 2002:a05:6000:1448:b0:39c:1f11:bb2 with SMTP id ffacd0b85a97d-39d87ab1387mr1373097f8f.22.1744182692453;
        Wed, 09 Apr 2025 00:11:32 -0700 (PDT)
Message-ID: <699022cf-ca2a-4500-92b9-914fbbc2c12d@suse.com>
Date: Wed, 9 Apr 2025 09:11:31 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3.1 2/2] x86/amd: Enable TCE in Xen
To: Teddy Astie <teddy.astie@vates.tech>
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Community Manager <community.manager@xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <2bac0ded3456e04b49b48cf0808203e76fc6a622.1743771654.git.teddy.astie@vates.tech>
 <79b08632b74dc13b8c399003eb76d198cb73ac32.1743771654.git.teddy.astie@vates.tech>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <79b08632b74dc13b8c399003eb76d198cb73ac32.1743771654.git.teddy.astie@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 07.04.2025 11:10, Teddy Astie wrote:
> Aside exposing this flag to guests, Xen can also make use of it to reduce the cost of
> some TLB flushes. Enable this flag if supported by hardware.

As said before: This needs to come with (perhaps a lot of) justification as
to it being safe for Xen to use without any adjustments anywhere else. This
exercise may not be left to the reviewer(s).

Jan


From xen-devel-bounces@lists.xenproject.org Wed Apr 09 07:55:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 07:55:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.943573.1342271 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2QGu-0004HT-CQ; Wed, 09 Apr 2025 07:54:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 943573.1342271; Wed, 09 Apr 2025 07:54: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 1u2QGu-0004HM-8E; Wed, 09 Apr 2025 07:54:56 +0000
Received: by outflank-mailman (input) for mailman id 943573;
 Wed, 09 Apr 2025 07:54: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=tnZY=W3=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1u2QGs-0004HG-QJ
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 07:54:55 +0000
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 (mail-am6eur05on2061e.outbound.protection.outlook.com
 [2a01:111:f403:2612::61e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ea1ad738-1517-11f0-9eaa-5ba50f476ded;
 Wed, 09 Apr 2025 09:54:52 +0200 (CEST)
Received: from DUZPR01CA0126.eurprd01.prod.exchangelabs.com
 (2603:10a6:10:4bc::20) by PAVPR08MB9652.eurprd08.prod.outlook.com
 (2603:10a6:102:31c::7) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.29; Wed, 9 Apr
 2025 07:54:48 +0000
Received: from DB1PEPF000509E2.eurprd03.prod.outlook.com
 (2603:10a6:10:4bc:cafe::58) by DUZPR01CA0126.outlook.office365.com
 (2603:10a6:10:4bc::20) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8606.37 via Frontend Transport; Wed,
 9 Apr 2025 07:54:48 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DB1PEPF000509E2.mail.protection.outlook.com (10.167.242.52) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8606.22
 via Frontend Transport; Wed, 9 Apr 2025 07:54:47 +0000
Received: from DB7PR08MB2987.eurprd08.prod.outlook.com (2603:10a6:5:1c::25) by
 DU0PR08MB8977.eurprd08.prod.outlook.com (2603:10a6:10:465::16) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.8632.22; Wed, 9 Apr 2025 07:54:12 +0000
Received: from DB7PR08MB2987.eurprd08.prod.outlook.com
 ([fe80::d53f:b16d:70a5:8668]) by DB7PR08MB2987.eurprd08.prod.outlook.com
 ([fe80::d53f:b16d:70a5:8668%4]) with mapi id 15.20.8606.029; Wed, 9 Apr 2025
 07:54: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: ea1ad738-1517-11f0-9eaa-5ba50f476ded
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=Qfn7XC3b0BFXcSddi2UMcTsyNc159OBurCJZ7grgcGSWdJmNF+cIMvnqL6XV+4XMQKqi8HnkqGsEjC1pAJmPJxU7g49Bon/P1Hs8pA37wexEhuaWj5CCzPC3yRNa+1AOh4qys2doHCAJRLJlS92dDhe0o4k+GgSyU+UmQCcBls1NJhnoxpepxTyx1YMb9RX+UVjoUav1ASHl0vyKRCn61ARwmGIcM7JifvBk7c4x4i+mO64uagds3Zl7MSRDGxgFmpJVWR/otm/GUCpVeVYuKbCHFQHsYkHk+pBHIwm8IQGAQwFdoDP3pB1g4jA2qailUHAt4xLxMItNd7JfXScsHQ==
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=6zsaal9L25uUxHpERlxbTPux5iK2s4rvNpXwrJvwKmI=;
 b=Xx2cycTsVfuuSAFEjgsNs3zmbXWFu9QsagsxlMMbWyj06r4TNg9m1K4VSoFMOSgE8jBOq3isLUlQ3g8TzP7Y5KWk9m1EbLD5eC44S0sJGvidT++2raKVTsgTqL8WuvZe6JuCi+5EKEgPcp4XCOhlwFpTLCPw5SEcZOS1jyPckPolGleAC2eaktwhygchwxgB6VWgLBdDLn7N187JwsULLvAKKoCC1Egn0ogF2vUfbIIgkxPQfuqNg/vHEcDq9bUVDgbp6KT/5xQ4l1CRALa1Giz1U4a/gy2wgkYIpbl3MtqsLf45tzZXK8uGr9s/Ozc2App7bk1XFstgEQNtVQt9rg==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=permerror (sender ip
 is 4.158.2.129) smtp.rcpttodomain=amd.com smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=6zsaal9L25uUxHpERlxbTPux5iK2s4rvNpXwrJvwKmI=;
 b=C6R1bsI40PKXZ4vis30aJtGb1ouDIZYFDy6WaNTOqME/YUP+b4lfMss1+IodQnlr0mj6bdIWb6m7hOryWqkU3nL0LpKHCYt7EOWrZdgUY1Zx3qejrcHt7Ch5UDqIZwQB+TWtpCB72NPweSQdE9LHSgWXMgs+B+2w6t80G4rRMO8=
X-MS-Exchange-Authentication-Results: spf=permerror (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: PermError (protection.outlook.com: domain of arm.com used an
 invalid SPF mechanism)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Pan0q+QRfo6DksvDTw7bPutPOQgnlhGKd7Vsv0D65MIE/Nqgn7r13o8nlTvPYp65hkFO2jVtWtaMbzyAY1itfkuk1JK5SgY/sch0ENMVmh0iU9lMwZKZtqxxWiRFlswb6+66cRsaf/Uj5M7f7HOqFJuqWMF76OWFZ8j/DpSP6at7ZlCetaf6HDKTgVx9i2s3TQq2oO0A1/Qa3FE0opnXaWKL0pzd4K4pdE4aBDq9Dc3YH/lRSkBCoJMBYvMPI1wxj4HSLebl3kq2CNthcXUywT+PzJmQ9TR43o8u619uVZMIq6lNGlKHyonN/ag/CScBw0x2xJLQY5vE+DcEUF7b7Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=6zsaal9L25uUxHpERlxbTPux5iK2s4rvNpXwrJvwKmI=;
 b=J6pjVJsUutbbX9INRD5TQuz5PRnj6nelni5XJMB8Cr/9TAycKflTCE6nGMqYRORZcFLswvY9Rrk+IDWQeD/IE+Z/qihrgdBca9VxvzzaZvf+tEAnxl1DV+Gd82xwP5IJDhnOxILtubDRyzZ/l9flEwQoiLOtEP8T7Nxc9CeptuCgAhkk9Tsih4RtiWZ3b2m4Lc35hKwFrucSsXwgwYcO2UV/pBsG9is8eax8OjC0kOE2hYJ+AWdI2Cx309PkOvutlstN3zHctDtp135GMSQSVtufrdEcqvASG+uowoc12MvEnQ45pV9oWZjoxNo8cKzqps6ZIKcN4G0/wxSjKh0FPA==
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=6zsaal9L25uUxHpERlxbTPux5iK2s4rvNpXwrJvwKmI=;
 b=C6R1bsI40PKXZ4vis30aJtGb1ouDIZYFDy6WaNTOqME/YUP+b4lfMss1+IodQnlr0mj6bdIWb6m7hOryWqkU3nL0LpKHCYt7EOWrZdgUY1Zx3qejrcHt7Ch5UDqIZwQB+TWtpCB72NPweSQdE9LHSgWXMgs+B+2w6t80G4rRMO8=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Ayan Kumar Halder <ayankuma@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 v2 2/7] arm/mpu: Provide access to the MPU region from the
 C code
Thread-Topic: [PATCH v2 2/7] arm/mpu: Provide access to the MPU region from
 the C code
Thread-Index:
 AQHbp52Ro+Yg+pQClU+WnJSxei+hH7OZzl8AgAAHm4CAACKVAIAABC6AgAAEEwCAAPj6AA==
Date: Wed, 9 Apr 2025 07:54:11 +0000
Message-ID: <EABA5C5E-4FE3-4E7A-8E29-B37A4CFCC18D@arm.com>
References: <20250407091430.2342709-1-luca.fancellu@arm.com>
 <20250407091430.2342709-3-luca.fancellu@arm.com>
 <0acf63c0-267e-44c0-b629-fa576307497c@amd.com>
 <1AC85CBD-02B1-4AA4-B9A3-68DFC06137AA@arm.com>
 <4f860a56-5536-455b-9490-196bfc220556@amd.com>
 <40C7A4DC-0216-4981-A501-AFDA0E8671DD@arm.com>
 <9f637d98-c8f8-49e0-9f0a-002cdfefc296@amd.com>
In-Reply-To: <9f637d98-c8f8-49e0-9f0a-002cdfefc296@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.400.131.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DB7PR08MB2987:EE_|DU0PR08MB8977:EE_|DB1PEPF000509E2:EE_|PAVPR08MB9652:EE_
X-MS-Office365-Filtering-Correlation-Id: 55d1604b-feb3-4dd5-d7e2-08dd773bccc8
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?KzhTazVWei9UWHdOUSs3TmZVakVPQVRMeHEzZEp5QzNpeHRlRUtUbGE5T1py?=
 =?utf-8?B?eU5rTE1OQ2FaVmd2RlJEMlhpL3hiMWpGanJHTHhHdG5tVVJuYkN4Ymk2RkdU?=
 =?utf-8?B?UWl2YUd6VktrV2tsL0hDcXhBRkhqMlRUOUN5TTZucTR4aHZjMHVabVFXMjUy?=
 =?utf-8?B?VkJTVjU4M0lJYSsvUEZrcGNwTnpqUVJXMTlRbjFsYitpbEdLQjJVc054djZ6?=
 =?utf-8?B?enNvNzV1ZGNrY3E0L0VFNmpVZjhFNlpxYkR5WWN5aVFWeDVaTldpWlhFNzB3?=
 =?utf-8?B?OVMxMyt2OHpvR1RGRUk4RTlHeEJ0S2Y3NmNPS1B5VUZ3c25mb3JjR2ZibVN0?=
 =?utf-8?B?TmVpODIveGlHMnJBRTV2cnJPQ29ia2d4SXJPTFAvTi8za1VpNzJETmdYSHdI?=
 =?utf-8?B?eVJud3FNUExCaTZUb1F3R0pFQ0kxZExQQWFiTUZQSlJud3diNkhSSElCQVRM?=
 =?utf-8?B?QUlNS0xxRGcvRHZSZWxjRk50WGVFV3hlQ1h4eFFPU3BML3lKMFQ0QTFCZEZs?=
 =?utf-8?B?WGdyZmJNZUxNNk14eTBmaUFRM2RTQmlHb2VsTG5xOTVLNzNzOXFwZnRCVVVM?=
 =?utf-8?B?VXFhcEZrLzhNWmxUNlJCUjVJSGd6MlVORXE4VXRyOXZYaFdGOENvNzM1dGhN?=
 =?utf-8?B?V09nYUZCVW5Ca0o3VFJyR0Z2bERka3hxZ1ZndDk4UUR0ZndGKzlJbUFUMjFX?=
 =?utf-8?B?aldONUt3bDhpQm40YzE1U2ZqZTJaeTdGUUFPTWUrK2tkb1orMDFURDdkQVVv?=
 =?utf-8?B?d0lIMUk1c09DS0tCQnhrTnVpMUM2NjN3cmQvK2ZjZ01VdWpFYTJzNW9IZDIy?=
 =?utf-8?B?cFlKYlBCQ3BYZkN0TnptVXBTQnNkcExXTHA3VkVLRjZXVndzQnhtMm94aCtj?=
 =?utf-8?B?S0NhNTBtRFBLY2IzUUpMdkdReENURTNFbGVXNTJTcGNrWC9GbXg5RmdrWGpT?=
 =?utf-8?B?NUYrVWREL05iaWVHemdOeXpQcHQ3ZjQ0RFd2cW9lbnNueWVuZzU5cVBoNjhF?=
 =?utf-8?B?TzlUTkNoUWp6SzI0aHptbjhvbjdOc1ZnaC9hdEoxV1UwSjk3d0FvejFCWGJk?=
 =?utf-8?B?ZXVMTXdtMTB6WHpzcHlVM0lNc0RMMkFNQ3hqVzJwZ1ZZT05IZ29lWkpYek5k?=
 =?utf-8?B?Zzl5aGhQSEVlLzR2M2RWRUtPY1R4ajhvMVdQeXBoeXprdFh1aUd4NFpqcTdJ?=
 =?utf-8?B?VUtyc2piVmNOdi92bk1rQ3o4SDFvdHpiV2RqbWFBQ2xUOGFOOUYweENHazM5?=
 =?utf-8?B?Y1RXZUttVWpDb09nWm5uT0lOQ3NrTXU0YURJMXc1SUxmRjU0dlVVMk9TdWpF?=
 =?utf-8?B?RHhiVXJwbGdIeklEUGhzcmc3d05QWmg5TkhOcmxyeEU2SUNPaVdmV3h2Qndz?=
 =?utf-8?B?eGJoMEorSkpDM21BTUoxOFRkZkJ0OXg3WFpkcFRlbklyUHlIK05KMVBpbDhM?=
 =?utf-8?B?dDBVSHlWb082WTFyZzAzTVd4NFJ0RFlRSzg2Sm1ucEM0N2FYdC9oMEpxV011?=
 =?utf-8?B?dkN2Z3U3eGd0ZFVXMkYxMCs1THJqY0NrWHRKMExVMmdQbllSbHI5VnRWS2Rq?=
 =?utf-8?B?RFZ3Nkh0ajdGdTh0cmpvK0dxZW1XbXIxd3duZE9RVElIV05GSXZQVHAxRC9P?=
 =?utf-8?B?WTdtWWNpdU5WbHhVSU02Y3BKa2xkZ1pOQld0cFdZNUtEL29xUmFRRkhMZWl0?=
 =?utf-8?B?WXdLUENYNk1jMk41MmVta0Y4U1BXWWNFc2hsOXAwQ3NoTENRcHowMzFSWTBC?=
 =?utf-8?B?T3UvTG83b201UXpGczk2VzlYVHlMekFNUURXMTBBMzQrVXhtcGRrQXk5VVpn?=
 =?utf-8?B?alJVZjB4MTRXZ3krbjFLK0RLWndMbk5CSG8zd1d1ZFlXMDJvTXNsNm02Vlcy?=
 =?utf-8?B?M3VhWnlZTzBRMnEwRVBTa2NEbE42aTBqOWYvejNneUt1cWhyd2JycElmNURl?=
 =?utf-8?B?MmF1U3ozcTZBaWE0TkI5UmNTVmlPemg4Ujl6TTVoLzdXY2xHTVJ2VVM1VjZM?=
 =?utf-8?B?VkU1YVlibHB3PT0=?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB7PR08MB2987.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: <5759E42EE76FC548A5AE4FE120E12F44@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB8977
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB1PEPF000509E2.eurprd03.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	5919ca36-dccf-4b61-3df1-08dd773bb6ff
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|14060799003|82310400026|35042699022|1800799024|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?UHh4elZ5STg5QkdLN3QyU09OT0ZHYm1aYlNHTTBINzB2aVlwOTMzNDFNc1RY?=
 =?utf-8?B?TGFmcmNLRVdlRVc3N2dwbzBCeW9DdDJUMG1lbnYyR2w1a2lVRnZkOEt1TWNY?=
 =?utf-8?B?ZlAyd3c1WFN3c21kenZKaG9hd05wZkJ5WEF0S3pNeXlrWHB3M1h6RWp3elNn?=
 =?utf-8?B?Lzk4SVgxSTFaM0tDL1ZSQjdBaFJpM1RkVE9yaHBpdG1qbDlHTzQ1UEtkdHR5?=
 =?utf-8?B?R1RkczZQaWU2bjlrcllCM2dxTG44NEV0TzM1Z2NDekNUNngybUlpa0d6MmRx?=
 =?utf-8?B?OFVHTWpzYWEyeEZCQU5MT3VlTDJTUEFMc3Mwam1vK0hxNFVCWjZoeWYwN3pv?=
 =?utf-8?B?U05pM1FyRG5LNlJiWVUxZTlneEJDeTlLVXVKYjhUeDY3aFU1RHpNUWs3TmpQ?=
 =?utf-8?B?NDdnc1dFeXhnVGpHbzhLdW5FZnl0OU1KMnBLZTMzeHZWSFhRbVdhSjNEazFJ?=
 =?utf-8?B?L1FWcHpLWFM0TDI5R2o2U0lWUmFUVDZMblYzdnhGZExhS1ZPNFlOMkhZQWFq?=
 =?utf-8?B?R2p5MXZaSnMyTGg1am56WWJYRUFEVXNrSmpCbWN1TUZRbCsvZGlheU5ldTN6?=
 =?utf-8?B?SUxyWjczMCtRVFRkVFQ4YWVIMXV3SmRER1I1TGZWeVBsbmcvSXhoZkphajdM?=
 =?utf-8?B?enByMVMra0lnclNDaDFRZDJ3MmNGSTk1cTJHUDFkMnNEMmJ0QjM1YXNWOFFH?=
 =?utf-8?B?T2pkS3NaWnh0c1I3MHVyKzZaMjkyMDdWL3hJMFZBcUhIbnIrNUEyc1YrZE1C?=
 =?utf-8?B?eTdleWxzTVd1eHlCejMrc2drbDZ6dE51K1hTMUM3SDIwMkxUNVp2WVBQYjZL?=
 =?utf-8?B?L3lWdmtJQkFMYzJlVlhrbFZPT1NMWUdvaDhobTk2L3hGRUNUNTNXeTgvbyt1?=
 =?utf-8?B?TFMyMGhqUDVUaG00MDlnakc0cjdkZFExTkIweTFGblBucllrUFhxQXltUlhI?=
 =?utf-8?B?ci9IRXl1U2k2RG40RHBnN1NlMUx6cWZiaDZDSUFWc1V4NG9QeHNOSWhJbStF?=
 =?utf-8?B?SzErQTQzMFlDT0dWd0g3WFpzYUovajB5aEFzeC9ib3NTWVRKa2ZhL2wyVytv?=
 =?utf-8?B?aHBVc1dleVN4cTcxQ2ZWZnRrV1htajd4UnZpMFZnUk90cU12VUd2dWo2OThK?=
 =?utf-8?B?ZFFSM2ZxWXlEd2hiL2tZMlE0V01QQkdrcE9mYmp5OEVKcFQ4dWh5ZEIyWVpt?=
 =?utf-8?B?NnM0aXl5cUp4Y2cyVzBYaW43QmRXeS92WWtKSTJ3VkRUVzdXM0ZXOVFNSEVU?=
 =?utf-8?B?Unp5N3JzRzFOM2UxdHdrNjdvT2UxQ0tJeHNiZjUrcW80cXZoSzRJMG5KOHcv?=
 =?utf-8?B?aTAxakp3am9LL1gwdERvUVM0NFpsZ2diYmV5M0kxenFqZXVGdytPZytXa2JZ?=
 =?utf-8?B?VGNYekZCbVNMV2phNDJBZ0lkdWJEYjdESm5hdXBYUXhUbWo5OWZJT1VwZW0r?=
 =?utf-8?B?emhVaWMyTkpIRGxHWDdtcDZhREJhcHlsOTVSSm1DSUNXeUxqaHBBN2VJayt0?=
 =?utf-8?B?b3dDZGpPbFB1QWJSL3MxWUJCa1NvSm9YN3llRm9HR2QvZWROenJwSkZGT0hD?=
 =?utf-8?B?TGRHNDFsZnlNVHhuZFZtYjc1N1BOTFgwbUQ4S1JmMHAzNXR2ZjZBWDg0ekJ5?=
 =?utf-8?B?Qm05cjIrWlg2VmtQVU9uWmtocFRRcytEb2Z1bVJ5UjdUSk9haGVrVXJHT2s0?=
 =?utf-8?B?YUtqV2FuUk84WGRSYjZZRXRXSHpWTFBaa1pQZnI3d1VkeFcrU05WSW83WjMv?=
 =?utf-8?B?eTdNK1ZWMFo5OGlqL3hvN2U0QjdBbk9odnU3eml2VnNLNWlkUDkveU9najB1?=
 =?utf-8?B?UGpDYi9ScTNyTG81eHdVOGVQNkN4S09TSWJWUitZYnRxTFpTYjZHam5ETmRZ?=
 =?utf-8?B?YUY4QS8xZGtycEFyRUhjRlk5aVhHR2NMdVNJTnp1bkJ2d1p3S3grVGVEd1U0?=
 =?utf-8?B?dytHaXdpOTRNSk9YQlZ2TVI4UVNEZUw0K3ljZ1BMbWFGVkdIMXEzOGZBTyta?=
 =?utf-8?B?RHNCZk84T2xBPT0=?=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(14060799003)(82310400026)(35042699022)(1800799024)(376014)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Apr 2025 07:54:47.7875
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 55d1604b-feb3-4dd5-d7e2-08dd773bccc8
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DB1PEPF000509E2.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAVPR08MB9652

SGkgQXlhbiwNCg0KPiBPbiA4IEFwciAyMDI1LCBhdCAxODowMiwgQXlhbiBLdW1hciBIYWxkZXIg
PGF5YW5rdW1hQGFtZC5jb20+IHdyb3RlOg0KPiANCj4gSGksDQo+IA0KPiBPbiAwOC8wNC8yMDI1
IDE3OjQ4LCBMdWNhIEZhbmNlbGx1IHdyb3RlOg0KPj4gDQo+Pj4gT24gOCBBcHIgMjAyNSwgYXQg
MTc6MzMsIEF5YW4gS3VtYXIgSGFsZGVyIDxheWFua3VtYUBhbWQuY29tPiB3cm90ZToNCj4+PiAN
Cj4+PiANCj4+PiBPbiAwOC8wNC8yMDI1IDE1OjI5LCBMdWNhIEZhbmNlbGx1IHdyb3RlOg0KPj4+
PiBIaSBBeWFuLA0KPj4+IEhpIEx1Y2EsDQo+Pj4+PiBPbiA4IEFwciAyMDI1LCBhdCAxNTowMiwg
QXlhbiBLdW1hciBIYWxkZXIgPGF5YW5rdW1hQGFtZC5jb20+IHdyb3RlOg0KPj4+Pj4gDQo+Pj4+
PiBIaSBMdWNhLA0KPj4+Pj4gDQo+Pj4+Pj4gK3N0YXRpYyB2b2lkIHByZXBhcmVfc2VsZWN0b3Io
dWludDhfdCBzZWwpDQo+Pj4+Pj4gK3sNCj4+Pj4+PiArICAgIC8qDQo+Pj4+Pj4gKyAgICAgKiB7
cmVhZCx3cml0ZX1fcHJvdGVjdGlvbl9yZWdpb24gd29ya3MgdXNpbmcgdGhlIGRpcmVjdCBhY2Nl
c3MgdG8gdGhlIDAuLjE1DQo+Pj4+Pj4gKyAgICAgKiByZWdpb25zLCBzbyBpbiBvcmRlciB0byBz
YXZlIHRoZSBpc2IoKSBvdmVyaGVhZCwgY2hhbmdlIHRoZSBQUlNFTFJfRUwyDQo+Pj4+Pj4gKyAg
ICAgKiBvbmx5IHdoZW4gbmVlZGVkLCBzbyB3aGVuIHRoZSB1cHBlciA0IGJpdHMgb2YgdGhlIHNl
bGVjdG9yIHdpbGwgY2hhbmdlLg0KPj4+Pj4+ICsgICAgICovDQo+Pj4+Pj4gKyAgICBzZWwgJj0g
MHhGMFU7DQo+Pj4+Pj4gKyAgICBpZiAoIFJFQURfU1lTUkVHKFBSU0VMUl9FTDIpICE9IHNlbCAp
DQo+Pj4+Pj4gKyAgICB7DQo+Pj4+Pj4gKyAgICAgICAgV1JJVEVfU1lTUkVHKHNlbCwgUFJTRUxS
X0VMMik7DQo+Pj4+Pj4gKyAgICAgICAgaXNiKCk7DQo+Pj4+Pj4gKyAgICB9DQo+Pj4+PiBUaGlz
IG5lZWRzIHRvIGJlIGFybTY0IHNwZWNpZmljLiBSZWZlciBBUk0gRERJIDA2MDBBLmQgSUQxMjA4
MjENCj4+Pj4+IA0KPj4+Pj4gRzEuMy4xOSAgUFJCQVI8bj5fRUwyLCAvKiBJIGd1ZXNzIHRoaXMg
aXMgd2hhdCB5b3UgYXJlIGZvbGxvd2luZyAqLw0KPj4+Pj4gDQo+Pj4+PiBQcm92aWRlcyBhY2Nl
c3MgdG8gdGhlIGJhc2UgYWRkcmVzcyBmb3IgdGhlIE1QVSByZWdpb24gZGV0ZXJtaW5lZCBieSB0
aGUgdmFsdWUgb2YgJ24nIGFuZA0KPj4+Pj4gUFJTRUxSX0VMMi5SRUdJT04gYXMgUFJTRUxSX0VM
Mi5SRUdJT048Nzo0PjpuLg0KPj4+Pj4gDQo+Pj4+PiANCj4+Pj4+IFdoZXJlYXMgZm9yIGFybTMy
IC4gUmVmZXIgQVJNIERESSAwNTY4QS5jIElEMTEwNTIwDQo+Pj4+PiANCj4+Pj4+IEUyLjIuMyBI
UFJCQVI8bj4sDQo+Pj4+PiANCj4+Pj4+IFByb3ZpZGVzIGFjY2VzcyB0byB0aGUgYmFzZSBhZGRy
ZXNzZXMgZm9yIHRoZSBmaXJzdCAzMiBkZWZpbmVkIEVMMiBNUFUgcmVnaW9ucy4NCj4+Pj4+IA0K
Pj4+Pj4gLyogSGVyZSB3ZSBkbyBub3QgbmVlZCB0byB1c2UgSFBSU0VMUiBmb3IgcmVnaW9uIHNl
bGVjdGlvbiAqLw0KPj4+Pj4gDQo+Pj4+PiANCj4+Pj4+IElmIHlvdSB3YW50IHRvIG1ha2UgdGhl
IGNvZGUgc2ltaWxhciBiZXR3ZWVuIGFybTMyIGFuZCBhcm02NCwgdGhlbiBJIGNhbiBzdWdnZXN0
IHlvdSBjYW4gdXNlIHRoZXNlIHJlZ2lzdGVycy4NCj4+Pj4+IA0KPj4+Pj4gRzEuMy4xNyBQUkJB
Ul9FTDINCj4+Pj4+IA0KPj4+Pj4gUHJvdmlkZXMgYWNjZXNzIHRvIHRoZSBiYXNlIGFkZHJlc3Nl
cyBmb3IgdGhlIEVMMiBNUFUgcmVnaW9uLiBQUlNFTFJfRUwyLlJFR0lPTiBkZXRlcm1pbmVzDQo+
Pj4+PiB3aGljaCBNUFUgcmVnaW9uIGlzIHNlbGVjdGVkLg0KPj4+Pj4gDQo+Pj4+PiBFMi4yLjIg
SFBSQkFSDQo+Pj4+PiANCj4+Pj4+IFByb3ZpZGVzIGluZGlyZWN0IGFjY2VzcyB0byB0aGUgYmFz
ZSBhZGRyZXNzIG9mIHRoZSBFTDIgTVBVIHJlZ2lvbiBjdXJyZW50bHkgZGVmaW5lZCBieQ0KPj4+
Pj4gSFBSU0VMUi4NCj4+Pj4+IA0KPj4+Pj4gTGV0IG1lIGtub3cgaWYgaXQgbWFrZXMgc2Vuc2Uu
DQo+Pj4+PiANCj4+Pj4+IC0gQXlhbg0KPj4+PiBPayBJIGRpZGlu4oCZdCBnZXQgdGhhdCBiZWZv
cmUsIHdoYXQgZG8geW91IHRoaW5rIGlmIEkgbW9kaWZ5IHRoZSBjb2RlIGFzIGluIHRoaXMgZGlm
ZiAobm90IHRlc3RlZCk6DQo+Pj4+IA0KPj4+PiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL21w
dS9tbS5jIGIveGVuL2FyY2gvYXJtL21wdS9tbS5jDQo+Pj4+IGluZGV4IGZlMDVjODA5NzE1NS4u
MWJjNmQ3YTc3Mjk2IDEwMDY0NA0KPj4+PiAtLS0gYS94ZW4vYXJjaC9hcm0vbXB1L21tLmMNCj4+
Pj4gKysrIGIveGVuL2FyY2gvYXJtL21wdS9tbS5jDQo+Pj4+IEBAIC01OCwxOSArNTgsMjEgQEAg
c3RhdGljIHZvaWQgX19pbml0IF9fbWF5YmVfdW51c2VkIGJ1aWxkX2Fzc2VydGlvbnModm9pZCkN
Cj4+Pj4gICAgICBCVUlMRF9CVUdfT04oUEFHRV9TSVpFICE9IFNaXzRLKTsNCj4+Pj4gIH0NCj4+
Pj4gIC1zdGF0aWMgdm9pZCBwcmVwYXJlX3NlbGVjdG9yKHVpbnQ4X3Qgc2VsKQ0KPj4+PiArc3Rh
dGljIHZvaWQgcHJlcGFyZV9zZWxlY3Rvcih1aW50OF90ICpzZWwpDQo+Pj4+ICB7DQo+Pj4+ICsg
ICAgdWludDhfdCBjdXJfc2VsID0gKnNlbDsNCj4+Pj4gICAgICAvKg0KPj4+PiAgICAgICAqIHty
ZWFkLHdyaXRlfV9wcm90ZWN0aW9uX3JlZ2lvbiB3b3JrcyB1c2luZyB0aGUgZGlyZWN0IGFjY2Vz
cyB0byB0aGUgMC4uMTUNCj4+Pj4gICAgICAgKiByZWdpb25zLCBzbyBpbiBvcmRlciB0byBzYXZl
IHRoZSBpc2IoKSBvdmVyaGVhZCwgY2hhbmdlIHRoZSBQUlNFTFJfRUwyDQo+Pj4+ICAgICAgICog
b25seSB3aGVuIG5lZWRlZCwgc28gd2hlbiB0aGUgdXBwZXIgNCBiaXRzIG9mIHRoZSBzZWxlY3Rv
ciB3aWxsIGNoYW5nZS4NCj4+Pj4gICAgICAgKi8NCj4+Pj4gLSAgICBzZWwgJj0gMHhGMFU7DQo+
Pj4+IC0gICAgaWYgKCBSRUFEX1NZU1JFRyhQUlNFTFJfRUwyKSAhPSBzZWwgKQ0KPj4+PiArICAg
IGN1cl9zZWwgJj0gMHhGMFU7DQo+Pj4+ICsgICAgaWYgKCBSRUFEX1NZU1JFRyhQUlNFTFJfRUwy
KSAhPSBjdXJfc2VsICkNCj4+Pj4gICAgICB7DQo+Pj4+IC0gICAgICAgIFdSSVRFX1NZU1JFRyhz
ZWwsIFBSU0VMUl9FTDIpOw0KPj4+PiArICAgICAgICBXUklURV9TWVNSRUcoY3VyX3NlbCwgUFJT
RUxSX0VMMik7DQo+Pj4+ICAgICAgICAgIGlzYigpOw0KPj4+PiAgICAgIH0NCj4+Pj4gKyAgICAq
c2VsID0gKnNlbCAmIDB4RlU7DQo+Pj4+ICB9DQo+Pj4+ICAgIC8qDQo+Pj4+IEBAIC0xMDIsNyAr
MTA0LDcgQEAgdm9pZCByZWFkX3Byb3RlY3Rpb25fcmVnaW9uKHByX3QgKnByX3JlYWQsIHVpbnQ4
X3Qgc2VsKQ0KPj4+PiAgICAgICAqLw0KPj4+PiAgICAgIHByZXBhcmVfc2VsZWN0b3Ioc2VsKTsN
Cj4+Pj4gIC0gICAgc3dpdGNoICggc2VsICYgMHhGVSApDQo+Pj4+ICsgICAgc3dpdGNoICggc2Vs
ICkNCj4+Pj4gICAgICB7DQo+Pj4+ICAgICAgICAgIEdFTkVSQVRFX1JFQURfUFJfUkVHX0NBU0Uo
MCwgcHJfcmVhZCk7DQo+Pj4+ICAgICAgICAgIEdFTkVSQVRFX1JFQURfUFJfUkVHX0NBU0UoMSwg
cHJfcmVhZCk7DQo+Pj4+IEBAIC0xNDAsNyArMTQyLDcgQEAgdm9pZCB3cml0ZV9wcm90ZWN0aW9u
X3JlZ2lvbihjb25zdCBwcl90ICpwcl93cml0ZSwgdWludDhfdCBzZWwpDQo+Pj4+ICAgICAgICov
DQo+Pj4+ICAgICAgcHJlcGFyZV9zZWxlY3RvcihzZWwpOw0KPj4+PiAgLSAgICBzd2l0Y2ggKCBz
ZWwgJiAweEZVICkNCj4+Pj4gKyAgICBzd2l0Y2ggKCBzZWwgKQ0KPj4+PiAgICAgIHsNCj4+Pj4g
ICAgICAgICAgR0VORVJBVEVfV1JJVEVfUFJfUkVHX0NBU0UoMCwgcHJfd3JpdGUpOw0KPj4+PiAg
ICAgICAgICBHRU5FUkFURV9XUklURV9QUl9SRUdfQ0FTRSgxLCBwcl93cml0ZSk7DQo+Pj4+IA0K
Pj4+PiBBbmQgbGF0ZXIgeW91IHdpbGwgdXNlIHNvbWUgI2lmZGVmIENPTkZJR19BUk1fMzIgaW5z
aWRlIHByZXBhcmVfc2VsZWN0b3IoKSB0byBjaGVjaw0KPj4+PiB0aGF0IHRoZSBjb2RlIGlzIHBh
c3NpbmcgdXAgdG8gdGhlIG1heCBzdXBwb3J0ZWQgcmVnaW9uIG9yIHBhbmljLg0KPj4+PiBBbmQg
aW4ge3JlYWQsd3JpdGV9X3Byb3RlY3Rpb25fcmVnaW9uKCkgeW91IGNvdWxkIGFkZCBzb21lICNp
ZmRlZiBDT05GSUdfQVJNXzMyIHRvIGFkZA0KPj4+PiB0aGUgY2FzZSBnZW5lcmF0b3JzIGZvciBy
ZWdpb25zIGZyb20gMTYgdG8gMjMgc2luY2UgUjUyIGNhbiBhZGRyZXNzIHRoZW0gZGlyZWN0bHku
DQo+Pj4+IA0KPj4+PiBXaGF0IGRvIHlvdSB0aGluaz8NCj4+PiBJIGdvdCB0aGlzIGRpZmYgd29y
a2luZyBhcyBpdCBpcyBmb3IgUjgyLiBUaGlzIGxvb2tzIG11Y2ggbGVzc2VyIGNvZGUNCj4+PiAN
Cj4+PiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL21wdS9tbS5jIGIveGVuL2FyY2gvYXJtL21w
dS9tbS5jDQo+Pj4gaW5kZXggZmUwNWM4MDk3MS4uNjM2MjdjODVkYyAxMDA2NDQNCj4+PiAtLS0g
YS94ZW4vYXJjaC9hcm0vbXB1L21tLmMNCj4+PiArKysgYi94ZW4vYXJjaC9hcm0vbXB1L21tLmMN
Cj4+PiBAQCAtMjgsMjMgKzI4LDE5IEBAIERFQ0xBUkVfQklUTUFQKHhlbl9tcHVtYXBfbWFzaywg
TUFYX01QVV9SRUdJT05TKTsNCj4+PiAgLyogRUwyIFhlbiBNUFUgbWVtb3J5IHJlZ2lvbiBtYXBw
aW5nIHRhYmxlLiAqLw0KPj4+ICBwcl90IHhlbl9tcHVtYXBbTUFYX01QVV9SRUdJT05TXTsNCj4+
PiANCj4+PiAtLyogVGhlIGZvbGxvd2luZyBhcmUgbmVlZGVkIGZvciB0aGUgY2FzZSBnZW5lcmF0
b3Igd2l0aCBudW09PTAgKi8NCj4+PiAtI2RlZmluZSBQUkJBUjBfRUwyIFBSQkFSX0VMMg0KPj4+
IC0jZGVmaW5lIFBSTEFSMF9FTDIgUFJMQVJfRUwyDQo+Pj4gLQ0KPj4+ICAjZGVmaW5lIEdFTkVS
QVRFX1dSSVRFX1BSX1JFR19DQVNFKG51bSwgcHIpICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXA0KPj4+ICAgICAgY2FzZSBudW06IFwNCj4+PiB7IFwNCj4+PiAtICAgICAgICBXUklU
RV9TWVNSRUcocHItPnByYmFyLmJpdHMgJiB+TVBVX1JFR0lPTl9SRVMwLCBQUkJBUiMjbnVtIyNf
RUwyKTsgIFwNCj4+PiAtICAgICAgICBXUklURV9TWVNSRUcocHItPnBybGFyLmJpdHMgJiB+TVBV
X1JFR0lPTl9SRVMwLCBQUkxBUiMjbnVtIyNfRUwyKTsgIFwNCj4+PiArICAgICAgICBXUklURV9T
WVNSRUcocHItPnByYmFyLmJpdHMgJiB+TVBVX1JFR0lPTl9SRVMwLCBQUkJBUl9FTDIpOyAgXA0K
Pj4+ICsgICAgICAgIFdSSVRFX1NZU1JFRyhwci0+cHJsYXIuYml0cyAmIH5NUFVfUkVHSU9OX1JF
UzAsIFBSTEFSX0VMMik7ICBcDQo+Pj4gYnJlYWs7IFwNCj4+PiAgICAgIH0NCj4+PiANCj4+PiAg
I2RlZmluZSBHRU5FUkFURV9SRUFEX1BSX1JFR19DQVNFKG51bSwgcHIpICAgICAgICAgICAgICAg
ICAgICAgIFwNCj4+PiAgICAgIGNhc2UgbnVtOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwNCj4+PiAgICAgIHsgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4+PiAtICAgICAgICBwci0+
cHJiYXIuYml0cyA9IFJFQURfU1lTUkVHKFBSQkFSIyNudW0jI19FTDIpOyAgICAgICAgIFwNCj4+
PiAtICAgICAgICBwci0+cHJsYXIuYml0cyA9IFJFQURfU1lTUkVHKFBSTEFSIyNudW0jI19FTDIp
OyAgICAgICAgIFwNCj4+PiArICAgICAgICBwci0+cHJiYXIuYml0cyA9IFJFQURfU1lTUkVHKFBS
QkFSX0VMMik7ICAgICAgICAgXA0KPj4+ICsgICAgICAgIHByLT5wcmxhci5iaXRzID0gUkVBRF9T
WVNSRUcoUFJMQVJfRUwyKTsgICAgICAgICBcDQo+Pj4gICAgICAgICAgYnJlYWs7ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+Pj4gICAgICB9DQo+
Pj4gDQo+Pj4gQEAgLTY1LDcgKzYxLDYgQEAgc3RhdGljIHZvaWQgcHJlcGFyZV9zZWxlY3Rvcih1
aW50OF90IHNlbCkNCj4+PiAgICAgICAqIHJlZ2lvbnMsIHNvIGluIG9yZGVyIHRvIHNhdmUgdGhl
IGlzYigpIG92ZXJoZWFkLCBjaGFuZ2UgdGhlIFBSU0VMUl9FTDINCj4+PiAgICAgICAqIG9ubHkg
d2hlbiBuZWVkZWQsIHNvIHdoZW4gdGhlIHVwcGVyIDQgYml0cyBvZiB0aGUgc2VsZWN0b3Igd2ls
bCBjaGFuZ2UuDQo+Pj4gICAgICAgKi8NCj4+PiAtICAgIHNlbCAmPSAweEYwVTsNCj4+PiAgICAg
IGlmICggUkVBRF9TWVNSRUcoUFJTRUxSX0VMMikgIT0gc2VsICkNCj4+PiAgICAgIHsNCj4+PiAg
ICAgICAgICBXUklURV9TWVNSRUcoc2VsLCBQUlNFTFJfRUwyKTsNCj4+PiANCj4+PiBQbGVhc2Ug
Z2l2ZSBpdCBhIHRyeSB0byBzZWUgaWYgaXQgd29ya3MgYXQgeW91ciBlbmQuDQo+Pj4gDQo+Pj4g
DQo+Pj4gQW5kIHRoZW4sIHRoZSBjb2RlIGNhbiBiZSByZWR1Y2VkIGZ1cnRoZXIgYXMNCj4+PiAN
Cj4+PiB2b2lkIHJlYWRfcHJvdGVjdGlvbl9yZWdpb24ocHJfdCAqcHJfcmVhZCwgdWludDhfdCBz
ZWwpDQo+Pj4gew0KPj4+ICAgICAvKg0KPj4+ICAgICAgKiBCZWZvcmUgYWNjZXNzaW5nIEVMMiBN
UFUgcmVnaW9uIHJlZ2lzdGVyIFBSQkFSX0VMMi9QUkxBUl9FTDIsDQo+Pj4gICAgICAqIG1ha2Ug
c3VyZSBQUlNFTFJfRUwyIGlzIHNldCwgYXMgaXQgZGV0ZXJtaW5lcyB3aGljaCBNUFUgcmVnaW9u
DQo+Pj4gICAgICAqIGlzIHNlbGVjdGVkLg0KPj4+ICAgICAgKi8NCj4+PiAgICAgcHJlcGFyZV9z
ZWxlY3RvcihzZWwpOw0KPj4+IA0KPj4+ICAgICBwcl9yZWFkLT5wcmJhci5iaXRzID0gUkVBRF9T
WVNSRUcoUFJCQVJfRUwyKTsNCj4+PiANCj4+PiAgICAgcHJfcmVhZC0+cHJsYXIuYml0cyA9IFJF
QURfU1lTUkVHKFBSTEFSX0VMMik7DQo+Pj4gDQo+Pj4gfQ0KPj4+IA0KPj4+IFRoZSBzYW1lIGNh
biBiZSBkb25lIGZvciB3cml0ZV9wcm90ZWN0aW9uX3JlZ2lvbiguLi4pDQo+Pj4gDQo+Pj4gLSBB
eWFuDQo+PiBUaGUgcG9pbnQgb2YgdGhlIGNvZGUgd2FzIHRvIGRvbuKAmXQgaXNzdWUgYW4gaXNi
KCkgZXZlcnkgdGltZSB3ZSBjaGFuZ2UgdGhlIHNlbGVjdG9yLA0KPj4gb2YgY291cnNlIHRoZSBj
b2RlIHdvdWxkIGJlIGVhc2llciBvdGhlcndpc2UsIGJ1dCBkbyB3ZSB3YW50IHRvIGRvIHRoYXQ/
DQo+IA0KPiBOb3Qgc3VyZSBpZiBpdCBpcyBiZW5lZmljaWFsIGFzIHlvdSB3b3VsZCBuZWVkIHRv
IHVzZSBpc2IoKSBmcm9tIHJlZ2lvbjE2IG9ud2FyZHMuDQoNClRoZSBpc2IoKSBpcyBpc3N1ZWQg
b25seSB3aGVuIGNoYW5naW5nIHRoZSBzZWxlY3Rvciwgc28gd2hlbiB5b3UgZ28gZnJvbSByZWFk
aW5nL3dyaXRpbmcgcmVnaW9ucw0KZnJvbSAwLTE1IHRvIDE2LTMxIGZvciBleGFtcGxlLCBvZiBj
b3Vyc2UgdGhlcmUgaXMgYSBjYXNlIHRoYXQgaWYgeW91IGNvbnRpbnVvdXNseSB3cml0ZSBvbiBy
ZWdpb24gMTUNCmFuZCAxNiB5b3Ugd291bGQgaGF2ZSB0byBhbHdheXMgY2hhbmdlIHRoZSBzZWxl
Y3RvciwgYnV0IGl04oCZcyB0aGUgbGVzcyBpbXBhY3Qgd2UgY291bGQgaGF2ZS4NCg0KYXJtdjgt
UiBpcyBldmVuIGJldHRlciBzaW5jZSBpdOKAmXMgYWJsZSB0byBhZGRyZXNzIHJlZ2lvbnMgZnJv
bSAwIHRvIDIzIHdpdGhvdXQgZmx1c2hpbmcgdGhlIHBpcGVsaW5lLA0Kc28gSSB3b3VsZCBzYXkg
d2Ugc2hvdWxkIGV4cGxvaXQgdGhpcyBiaWcgYWR2YW50YWdlLg0KDQpJ4oCZbGwgc2VuZCBzaG9y
dGx5IGluIHRoaXMgdGhyZWFkIHRoZSBjb2RlIEkgd291bGQgdXNlIGFuZCB0aGUgY29kZSBJIHdh
cyB0aGlua2luZyB5b3UgY291bGQgdXNlLg0KDQo+IA0KPiBJZiB5b3UgYXJlIGdvaW5nIHRvIGtl
ZXAgdGhlIGNvZGUgYXMgaXQgaXMsIHRoZW4gdGhlIGZvbGxvd2luZyBuZWVkcyB0byBiZSBtb3Zl
ZCB0byBhcm02NCBzcGVjaWZpYyBoZWFkZXIgYXMgd2VsbA0KPiANCj4gI2RlZmluZSBQUkJBUjBf
RUwyIFBSQkFSX0VMMg0KPiAjZGVmaW5lIFBSTEFSMF9FTDIgUFJMQVJfRUwyDQoNCm9rIEnigJls
bCBtb3ZlIHRoZW0uDQoNCkNoZWVycywNCkx1Y2ENCg0KDQo=


From xen-devel-bounces@lists.xenproject.org Wed Apr 09 07:59:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 07:59:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.943589.1342279 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2QLi-0004vl-06; Wed, 09 Apr 2025 07:59:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 943589.1342279; Wed, 09 Apr 2025 07:59: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 1u2QLh-0004ve-Tp; Wed, 09 Apr 2025 07:59:53 +0000
Received: by outflank-mailman (input) for mailman id 943589;
 Wed, 09 Apr 2025 07:59: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=5vFf=W3=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u2QLh-0004vY-4K
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 07:59:53 +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 9d26ed5b-1518-11f0-9ffb-bf95429c2676;
 Wed, 09 Apr 2025 09:59:51 +0200 (CEST)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-3912d2c89ecso5664843f8f.2
 for <xen-devel@lists.xenproject.org>; Wed, 09 Apr 2025 00:59:51 -0700 (PDT)
Received: from [10.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-39d89402a08sm828929f8f.100.2025.04.09.00.59.49
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 09 Apr 2025 00:59:49 -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: 9d26ed5b-1518-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744185590; x=1744790390; 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=zv9/QU/d75fYM3hHGscnkbWcHBxfuQSaowy/czXNBu8=;
        b=feW78lI54K4pBrZnNh3ek0sOZVyQlOtoD+l9xakdCHr6GKM0+nk+djPfMz6lrTz03m
         x6UPRz1qwwqtLUPHIQMAzn6zckYQrpYtsHRFOFK8bbcAzihUSlVI4WKWQNCVISmKT0Ey
         pGH2Y7Zmlhch8WruZPelHGKuPsQzGZxSWcqIsoSIdiRipIiWrxGaLz+z891MSQBjWyQy
         pT8jkMYtObYpvrvXhnmnC3x/DQVAXWzRVAEt37niTvECJfDhJuNhC7AuPGiiDFwof9k8
         hL3j7ackoUSk1pRjdDhtpRC7rD1AFlSoXu+YJ7WNHbv/H6Z7tckVtVuffrJzNUP3U+p7
         YP/A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744185590; x=1744790390;
        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=zv9/QU/d75fYM3hHGscnkbWcHBxfuQSaowy/czXNBu8=;
        b=eu67Jj+bIZjCTNALLJk+9hPRP8yV4K+VeW1xso5UkM/ElS5mh4XQFv6UtkvrpRbHO+
         VqHaTWCSB/ITMRH9dOeFW9lsLi9jLxn6HJCaDGVfMrNwllirkg7zOO9Y2NEBFZV8HQ38
         vSZEHMFdQyO+HhqndmB1/zu97Ck+mBGxVnczf65AMlqhkXV4CFvTpZrLo1aq/T8jy0wl
         fKV+nGVQKqGHKuPlUCDG7Y6Pap6HhMxvVv+7a4k6Lcw6sOISetMz+lDX2zorJIJFB/cj
         ZvjUJ5zZG9Ayy0VlHPr5fc/RBC+sM7LO/TOquS14s/BArYxBrsjJw15SbCPYwMqzwJHJ
         WF3g==
X-Gm-Message-State: AOJu0Yxdn7hERtoBsDZOVc9yrBAXSf8/ya+pusV4t/Ah7gl33vQB9XK4
	BzYccWr9LF8Zs7xNhh88teA62XPKIfq8EbM9bBo1ikdsBJvB0epSTQhu+lHf4sum01XcSKaiLtI
	=
X-Gm-Gg: ASbGncsuI5cyTRHRCgG/uIJMqG0IW88F08Z+c3mSyv3HXA05L6qhsAGGWoGtS2dDAUg
	VtyJhqfrU/DbZ166FmXBVhYl0Qtd76QYh/4ByhIy++xyYDveaR35VMqE9Ko7rHlqB/Demr4RuXm
	8cTe75B1+PAgxDwW6lS0YO5LH+hcuhERnUQF3UJ8Mr2lNYBlIkAVh85OSu345uTgZaWqyFINiBN
	nV6B7gMPh96/G16hfE7A+13AelJI8Ety0UaoHOOP284vH5yOUyNb8X4x4kOz84BhwvZsmd1Ix9n
	6lTpv58SW0AP3GK2MDNMjSa5V/wxiL0HswxrQ9Y/Wi0ax7WFq+FaNxtLER6lGRjbyLh11M9IyHp
	U5N6jLFDXUhnrwPbYnRQ2kcE/Mw==
X-Google-Smtp-Source: AGHT+IH3mqUOs5w/o1/b+wuFUgk36fhFXwj/h2RfGWKXnDnBj6SQat2Y9eyCYGHRo+FPLY+0b6ZjIg==
X-Received: by 2002:a05:6000:40df:b0:391:4559:876a with SMTP id ffacd0b85a97d-39d87cd02f5mr1686437f8f.46.1744185590347;
        Wed, 09 Apr 2025 00:59:50 -0700 (PDT)
Message-ID: <d9fb7408-aff9-4b43-abd1-233fe74dbd20@suse.com>
Date: Wed, 9 Apr 2025 09:59:48 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 1/6] 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: <14b65231-b83b-43fb-bbcf-dec5c07d285b@suse.com>
 <2e61ad8d-3b1f-49bb-bc93-61c820d6caf3@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: <2e61ad8d-3b1f-49bb-bc93-61c820d6caf3@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.01.2025 11:11, Jan Beulich wrote:
> --- a/xen/arch/x86/cpu-policy.c
> +++ b/xen/arch/x86/cpu-policy.c
> @@ -487,6 +487,12 @@ static void __init guest_common_max_feat
>       */
>      if ( test_bit(X86_FEATURE_RTM, fs) )
>          __set_bit(X86_FEATURE_RTM_ALWAYS_ABORT, fs);
> +
> +    /*
> +     * We expose MISC_ENABLE to guests, so our internal clearing of ERMS when
> +     * FAST_STRING is not set should not affect the view of migrating-in guests.
> +     */
> +    __set_bit(X86_FEATURE_ERMS, fs);
>  }
>  
>  static void __init guest_common_default_feature_adjustments(uint32_t *fs)
> @@ -591,6 +597,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)

While doing unrelated work in this area I noticed that this hunk is wrong,
and wants to be

@@ -567,6 +573,16 @@ static void __init guest_common_default_
         __clear_bit(X86_FEATURE_RTM, fs);
         __set_bit(X86_FEATURE_RTM_ALWAYS_ABORT, 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.  The bit being uniformly set in the max policies, we only need
+     * to clear it here (if hardware doesn't have it).
+     */
+    if ( !raw_cpu_policy.feat.erms )
+        __clear_bit(X86_FEATURE_ERMS, fs);
 }
 
 static void __init guest_common_feature_adjustments(uint32_t *fs)

instead. Fixed locally.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Apr 09 08:11:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 08:11:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.943603.1342290 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2QX8-00029o-2T; Wed, 09 Apr 2025 08:11:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 943603.1342290; Wed, 09 Apr 2025 08:11: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 1u2QX7-00029h-UX; Wed, 09 Apr 2025 08:11:41 +0000
Received: by outflank-mailman (input) for mailman id 943603;
 Wed, 09 Apr 2025 08:11: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=5vFf=W3=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u2QX6-00029b-MB
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 08:11:40 +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 4081c2d3-151a-11f0-9eaa-5ba50f476ded;
 Wed, 09 Apr 2025 10:11:34 +0200 (CEST)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-43cfb6e9031so58245895e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 09 Apr 2025 01:11:34 -0700 (PDT)
Received: from [10.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-39d893f0ba0sm882009f8f.64.2025.04.09.01.11.33
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 09 Apr 2025 01:11:33 -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: 4081c2d3-151a-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744186294; x=1744791094; 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=f3/bACEeHbPBEiNZHDVeNPQYoGbCfAKE8jLbl/6Ek1Y=;
        b=CCN8jfNsdSAAxAhUi4VV3uub7Q/X2jvGECtXmmx/banLYh6awshUTZLkmoNEUPYPoq
         3VPFv3cXGusuUJKS+QRgYn8zarvQVs8ks6ExxITvZJZf9RVqJ/PzPG5Mh9loMqAaZAtJ
         K5HUL76EPb/NKcei8VP3ptprIShLApV+49ci373NI8SZB0GMfs3q35PFBfpqOkVEQ4sW
         qhu7z9CSVhuI5u2lKuFIa+/oPFJIomj8HtSKaD5fZKD9qyjlt7GSedgi7wvGQj9b9IQq
         YZsCI+83iLq//SfDKxmr2ennzl8A5fzEune1GNy3pLGDzpw40kfHhDa2ZQk4uIIqihlf
         uLRQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744186294; x=1744791094;
        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=f3/bACEeHbPBEiNZHDVeNPQYoGbCfAKE8jLbl/6Ek1Y=;
        b=avhV5kNnVtNVsf/FT7tpX29y06qaT1AlOKjLPo/w0u1NnUN5teLj1mPOjwVwv4J5VZ
         nrSx2zQy2yY71IKT0lPoDl2/x/LU8Blcx5Vmy6PG8cmpLtZ2msLNbVlRom5ND521NaMl
         mJ7X+KzvF/1Z8pq7fVKFdo2na6tumpEitDZRE4ifzEwmO/Sw9Sce4Hactg+ZqEYMfnm8
         V/z3Q7nMEgpwdapdhQNzVRO/FaD+gq6/Y9pypMsPR9ZUsNXLITgkH/Cyqhn0yWE4KcFF
         9HKZ3plmcDBy1XIdXyIMU3Pyq2Lljo423NREbf7VjPTwdRqJ8YxXOPRiGcJdcbfYeLRW
         dzvQ==
X-Forwarded-Encrypted: i=1; AJvYcCW6UfTwNPlNeWfwbX0SNDbig4I9XSPDPDCNC5Pw0YwPI0x13VMhG8hKB/F+GZ2Ntnb6KbDs1PbfxC0=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy3r/gjLSicUREo/VZ2y8EZCFbAYQWwp15//uF2PJqKwsMLHU35
	p5ZAxCaze0u/r4oUALumjbLaAfj/MSQmL5mJXY0AL8ongW5b+PkEHzGfL4IenQ==
X-Gm-Gg: ASbGncslHJyHT1OyUNOO4aaxCbJ/6JCmU7lKhZI8KuTp3HnnmTSzco6TJgR0lZytd5v
	zgvdiyVMDb6PE2XQDwLfX9R4B1ybyR++6GyoiRVHWlCrDXg2A7lH3+n8h3VuMry3065sc7WFg8c
	ZGDRW7XQHLMeOZG0n4TbuvrQG31LRnrreZv61zGS5XsaKO5ZyRxZjLoSDk/zhLnaC35FWHgiG7K
	xiUPmOfkkPvqvagTLvzA/aBBFHwarRPtOJW8N+0sNziLkc2Yah8KPdd7zmZmIKTlVqFlfwicxqk
	xJPS5+IMPRgulhxveIqAx4sWOBva6sBHhA6XW3oRzFRYbaRPJFoC5pZImaz9TE4RAG2D5wJzBmi
	hiUxNZDZp1g9tlDXer1AEb8RcrA==
X-Google-Smtp-Source: AGHT+IEObVlXIrBjk2z5fbJElPCx+qkw3LZwRk0Al6/g5aSpUTRrAUgiFemBvMu97RXLAQlotyhoLg==
X-Received: by 2002:a05:600c:3b18:b0:43c:fffc:7855 with SMTP id 5b1f17b1804b1-43f1fe7f6famr16419905e9.15.1744186293933;
        Wed, 09 Apr 2025 01:11:33 -0700 (PDT)
Message-ID: <0ee42612-7f3e-451b-9844-7e61aaf0ba38@suse.com>
Date: Wed, 9 Apr 2025 10:11:32 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3.1 2/2] x86/amd: Enable TCE in Xen
From: Jan Beulich <jbeulich@suse.com>
To: Teddy Astie <teddy.astie@vates.tech>
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Community Manager <community.manager@xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <2bac0ded3456e04b49b48cf0808203e76fc6a622.1743771654.git.teddy.astie@vates.tech>
 <79b08632b74dc13b8c399003eb76d198cb73ac32.1743771654.git.teddy.astie@vates.tech>
 <699022cf-ca2a-4500-92b9-914fbbc2c12d@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: <699022cf-ca2a-4500-92b9-914fbbc2c12d@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 09.04.2025 09:11, Jan Beulich wrote:
> On 07.04.2025 11:10, Teddy Astie wrote:
>> Aside exposing this flag to guests, Xen can also make use of it to reduce the cost of
>> some TLB flushes. Enable this flag if supported by hardware.
> 
> As said before: This needs to come with (perhaps a lot of) justification as
> to it being safe for Xen to use without any adjustments anywhere else. This
> exercise may not be left to the reviewer(s).

One case to consider in particular is a shadow guest (EFER.TCE clear as per
patch 1) running with host EFER.TCE set. The TLB flushes we do may then simply
be insufficient for the guest's expectations.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Apr 09 08:27:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 08:27:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.943615.1342301 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2QmE-00058Z-DP; Wed, 09 Apr 2025 08:27:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 943615.1342301; Wed, 09 Apr 2025 08:27: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 1u2QmE-00058S-8R; Wed, 09 Apr 2025 08:27:18 +0000
Received: by outflank-mailman (input) for mailman id 943615;
 Wed, 09 Apr 2025 08:27: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=tnZY=W3=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1u2QmC-00058M-K8
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 08:27:16 +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 6fa94003-151c-11f0-9eaa-5ba50f476ded;
 Wed, 09 Apr 2025 10:27:12 +0200 (CEST)
Received: from DU6P191CA0005.EURP191.PROD.OUTLOOK.COM (2603:10a6:10:540::18)
 by DB9PR08MB7868.eurprd08.prod.outlook.com (2603:10a6:10:39f::22) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.21; Wed, 9 Apr
 2025 08:27:04 +0000
Received: from DB1PEPF0003922D.eurprd03.prod.outlook.com
 (2603:10a6:10:540:cafe::43) by DU6P191CA0005.outlook.office365.com
 (2603:10a6:10:540::18) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8606.36 via Frontend Transport; Wed,
 9 Apr 2025 08:27:04 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) 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.8606.22
 via Frontend Transport; Wed, 9 Apr 2025 08:27:04 +0000
Received: from DB7PR08MB2987.eurprd08.prod.outlook.com (2603:10a6:5:1c::25) by
 AS8PR08MB6037.eurprd08.prod.outlook.com (2603:10a6:20b:29a::21) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.22; Wed, 9 Apr
 2025 08:26:32 +0000
Received: from DB7PR08MB2987.eurprd08.prod.outlook.com
 ([fe80::d53f:b16d:70a5:8668]) by DB7PR08MB2987.eurprd08.prod.outlook.com
 ([fe80::d53f:b16d:70a5:8668%4]) with mapi id 15.20.8606.029; Wed, 9 Apr 2025
 08:26: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: 6fa94003-151c-11f0-9eaa-5ba50f476ded
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=MKsg88LeBcjWuM+22NBl4scSryjUue1QQaTTvhzjDp9ZsxsNEP4wjR3Jcv0PRqtMsuBaUazGJLg6J7/ZFhIaTH9mnnpGMYv4uhpkrzsVHb4DVJEIJVK2aKW2+cY1IaXcOb5vrsIsVSrwzCrEb7vpGkToLJynhfQc1SW5sSc8BN3c6JmR40H4tFoL/9WgQmvERgOuwEKiw3Ql/KSiztSwpaLZVMe6XusnMUFTuDkMArtulLWXJgJHPVUJdE4ezA6RLlvkYxbsCSgH3iKbHTrqzmVY71DkTx2u7DIEbIOcjGH8fk1UhNSCABpZgmabQQQqER6w7fvri6f0qF8BtXukPg==
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=EbPCZadm6JtEV7dELgAlGfuloMTsM/KJ7BFrD5JOZ0w=;
 b=zTQCc8XxqqtPh55gMXzyuyl+63ZnuCjXfhv+K9XjfuIB+MKeEIRQip5egTMGnxB4eZJ5+fheXwgIPSHjCUCgcFZGCJ1Az4T3+FcTppKVFlhVi6GeMY1IzWm8xkBAHDGdDRh+0XP3YyqFEuOGIlo7sPIQk4Vr2BCduVGcXQNXv33WqCEUjC510MoXB+7KhmNzgPHsyyHxbwy3W4ZQlSYlgG87fcxtIwjvzSqhCVVaJkO+WIueewS0nw1/Gcq7AZMFdbPZ0cCF0hpFFUyUe8Ns5q6Tu3XwWL2GACUAGOyFcm5Sp2Wnewb1dNJLtLy5ihz63RrKRAMbYvf1PLYor3AM/A==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=permerror (sender ip
 is 4.158.2.129) smtp.rcpttodomain=amd.com smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=EbPCZadm6JtEV7dELgAlGfuloMTsM/KJ7BFrD5JOZ0w=;
 b=B8WbqBIpl1ZFZz+ptfu8F4A5tQtkTyRVznCxub0IWEE5qBIW+6AdAZlMIV7pPG4Yy53JFbdjjTcvaYJWq0SDS9OCO30KSM+mb0NT0q4M4jrDP+6RWe/oKpDYlQaXtl4PEm7TA/Pnz3NG4yR6V5xoGMRBb9YXjyl3YVEaNx2Jxfc=
X-MS-Exchange-Authentication-Results: spf=permerror (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: PermError (protection.outlook.com: domain of arm.com used an
 invalid SPF mechanism)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ysaYY6gYQr2lo+JqfzfaOCglvDEQqncgUkIyyxcfqzDq6T7IODbKql9gdZuDwH7KhNzhGGKrRZuqeUsDS509elP9YedIXsVy3wBWl1HNlyiX26d+VjQzxovHlYDreHp4E1VWK2ZhrotOMovrhg2lkd7dDqba02ZVH9OmQ3u6GbanRpOxYVSmns+gtHPStHz3ZZTuoAO96ZvWZ8X1UHTkEE6yUJRSzW631J9e8wEqWKyjLIPNAA3Ay78hqneyALYCKmk9MDsipoxExC94gq6p3rC3xjpww5Jni+bLdSkWFaQyLAIbiqjDx//fgKEB58HbdpurymK7Nl/FZn9DHst/Yw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=EbPCZadm6JtEV7dELgAlGfuloMTsM/KJ7BFrD5JOZ0w=;
 b=kIkPJTPABxwIVu0m7FXpnq3jkljeqxs7UPXKDlprWTCnICNxPHzg0I5yqDb18orbaK3+PYCIF3jB6ZfGv6ZR+fkV5gQ0DbiPaQkvr23EWW9VOkGTGguFMYMXrAubgYHoMXKTwQf7QYnEfHAeUiczRRifRXFgZTJQO8MF32FZiXmwpDwqYYvw/zGIyPnTNv44PNci0c+Xbzal2DPze1dOM6rWKsKQKZJs5dkj89jqoqmHNGeN1NxhSrrIfdNSRhDjpthZjfyZ/XsXsML+JgCo6AiGEjL6Muk9lhJ8B2EYVL3QxI+XB0w+B3JLxNU5kQjQNgLOzag+Fkhtr3H+C+dBDA==
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=EbPCZadm6JtEV7dELgAlGfuloMTsM/KJ7BFrD5JOZ0w=;
 b=B8WbqBIpl1ZFZz+ptfu8F4A5tQtkTyRVznCxub0IWEE5qBIW+6AdAZlMIV7pPG4Yy53JFbdjjTcvaYJWq0SDS9OCO30KSM+mb0NT0q4M4jrDP+6RWe/oKpDYlQaXtl4PEm7TA/Pnz3NG4yR6V5xoGMRBb9YXjyl3YVEaNx2Jxfc=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Ayan Kumar Halder <ayankuma@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 v2 2/7] arm/mpu: Provide access to the MPU region from the
 C code
Thread-Topic: [PATCH v2 2/7] arm/mpu: Provide access to the MPU region from
 the C code
Thread-Index:
 AQHbp52Ro+Yg+pQClU+WnJSxei+hH7OZzl8AgAAHm4CAACKVAIAABC6AgAAEEwCAAPj6AIAACQkA
Date: Wed, 9 Apr 2025 08:26:32 +0000
Message-ID: <F2C6FC52-386A-4417-B592-151ECE079E52@arm.com>
References: <20250407091430.2342709-1-luca.fancellu@arm.com>
 <20250407091430.2342709-3-luca.fancellu@arm.com>
 <0acf63c0-267e-44c0-b629-fa576307497c@amd.com>
 <1AC85CBD-02B1-4AA4-B9A3-68DFC06137AA@arm.com>
 <4f860a56-5536-455b-9490-196bfc220556@amd.com>
 <40C7A4DC-0216-4981-A501-AFDA0E8671DD@arm.com>
 <9f637d98-c8f8-49e0-9f0a-002cdfefc296@amd.com>
 <EABA5C5E-4FE3-4E7A-8E29-B37A4CFCC18D@arm.com>
In-Reply-To: <EABA5C5E-4FE3-4E7A-8E29-B37A4CFCC18D@arm.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3826.400.131.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DB7PR08MB2987:EE_|AS8PR08MB6037:EE_|DB1PEPF0003922D:EE_|DB9PR08MB7868:EE_
X-MS-Office365-Filtering-Correlation-Id: f9eea8c2-7842-4c31-7297-08dd77404f1c
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?QXJCZi9mQ3g1VTJyVUkxQXN5bTF6YmhXaTluS0NHZitwcGR0UVJjdlZYWStj?=
 =?utf-8?B?QlJxK3JrTVBCNTM1czNsaUNFc0w0eVE2aUQwanJmOEh6S3hURGRxTWQvWGY2?=
 =?utf-8?B?TlpYNlMzZStzbHdoRGRhWDgyeTh6Yk42dmpQbmxNUVAvUmVBOXVSckRmb1Ry?=
 =?utf-8?B?YWpKdlQ0VGVneTlIZkYwamFaS2tyT0JQY3hNVHZTcFVHSmtzZ2h6QU0yc0RE?=
 =?utf-8?B?akw5QldjN3NTVHRNNktsalI0a09jYkZodER3Yk04LytYUmNPTS9NcTkrVXF1?=
 =?utf-8?B?R0xRc0dMNHVVQlVVeG12K2trRGhOQTlSTll0ZU5LYktuT3hQSGowK3k5cXk2?=
 =?utf-8?B?OXprSTlqK05aVVNrS3cwTjFqQmVkays1K0dxY0kyTmZlaGE0dm9qemYyYmVu?=
 =?utf-8?B?SWtIMFcxMkV3SVhZQkVCWmtsdzh4eUQ1c1pqdnRVRDBONXVpNTlyZXRpUG5x?=
 =?utf-8?B?MUxvZlIvcCtVMHB3a2sxbkFFKzcrd1Z4TURDUCt3R2lqQWVYTkRsbE02Vzc5?=
 =?utf-8?B?d3N1OGduU0IxTExGZk9GZHZiVkdjdk5mU3c1MW8vbm5Zazc0OGVJRDgxblV3?=
 =?utf-8?B?RVR5VzQ3R2VyL3VYQVJ0VU5JTFZGTFlBT0JWWkZtMDFTQ202bDJnT0NZVFBZ?=
 =?utf-8?B?Z0hqekUvNG1MR05WZjczakFLWkxSMytmdG41UVpTM1U3cWxKWjU1ODh2Slgy?=
 =?utf-8?B?QjRyeWFpOTNQdm9STUNNeHNWVkJRSnBiWGk0MkFkOERnWDAvOFNIc3hPdXhL?=
 =?utf-8?B?ZjFybjZZSFQ4NHJnUERQd3E3ZjZSaGllQkFaNTdoNXpPWUJ3Sml0OWpaNWxX?=
 =?utf-8?B?dTVWbWtCZGdaaTZNeXV5YVdBVGt0VkdMeU11ejFaSW1tYll6NDFTVDZnZVg3?=
 =?utf-8?B?b0trSzNVVmVXN29FQ29XMW0xcVl6Qm1ESktXdWk4VnJEZmYrTEpyYTdYb3NK?=
 =?utf-8?B?bzlzdUViOWlLdnZwTVR5WEFEZUliT0gzVHk2allOWW5zUW0rSjVzTFJRRzlR?=
 =?utf-8?B?S2U0SExyNkhvUjJVVzZuUXNaQ281RFdOejdPc1VHRG9wV3JDeGlCRmJIVEJL?=
 =?utf-8?B?V1VJczNWTEZXSHljRm8zV25WYW5kSFlhNU1OZG9oNlpCOEJqcE5PaHJ1ZVVJ?=
 =?utf-8?B?SXQrL0tyVEVtTkVsTmwwQVlBMzFvWXRtQzVGT2JNcWQrblRjRG5Ec01zNXJv?=
 =?utf-8?B?bDIxKzNOWU9OU3d6RVBxZHNoWUhXNHU1NHR1WVBmSEZqVFNwR2IybVVjSjdC?=
 =?utf-8?B?em9SQ3BhZzUxR0NFeFNOMDRiUXpBTWtlblNhUFBBVkNFR3NnQjdJTjE5dURl?=
 =?utf-8?B?SnQ0emhaeENUaXZQYUZsMWE1K0l3dmdscGJIdHl2L0FtYlNLRE5hdTJkU29t?=
 =?utf-8?B?NGdCUXFWY05uUW5DLzhOd2FtSmtjVVl6bmczUUlEczJlQTVsK2xaS283dTNY?=
 =?utf-8?B?VVFMV2VrMTlnYVVlWVBHYzZJdHIrUDVuOEhMUW40NTJPMEdYMkh0MmIzaFFC?=
 =?utf-8?B?V3Nkem1ndEF6QWpJdVBmZHNUS1BMQk4wc2c4bDhhbzNWdzJLZk1BSWtzOStx?=
 =?utf-8?B?VVVhNFVJMHRtUUcxRkFtdzFuTHEra2xQam50OWZTMy9kQmtVUzJkVWNJZmhn?=
 =?utf-8?B?aDZSMzlQdlk4R09JcXJCekxLaUY1MjJaY1RXNmRPbkRNWGJzVnpqRXJMT0Fo?=
 =?utf-8?B?LzIzbEl6VXhXSnNvUU45NFR3ZlM2Z0tjaURTWGZqRWhjaDdJWlIvamxRQ2t0?=
 =?utf-8?B?T0I5akdnUnJ6T0pKSkN6NEtrempYSklSZWJib1RCQmxMVG5rV2tkV3pXKzJT?=
 =?utf-8?B?L1ZsSXVYMjRvVThNenpVQURxdHNZZ3FnL3NNbmZPMkVEUDBxL1VEY2JWOGdq?=
 =?utf-8?B?dnZzUmRZU2VmMUthcEtVem1kd1VaZ3JFcHRESUVXbG1ENW5QOVVjYWtTZzJm?=
 =?utf-8?B?QkNNMkdBelZlSWpvWU53bEJqbTBpRjBIZmxJMi9KWENrVUxXalk2dTlyemVT?=
 =?utf-8?B?amtjWTAycTd3PT0=?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB7PR08MB2987.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: <0D88DF97F18AAE48BC77F73308504D72@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB6037
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB1PEPF0003922D.eurprd03.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	ba668be0-68fa-41e7-ea9e-08dd77403bf8
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|14060799003|82310400026|376014|36860700013|35042699022;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?elJLa3gvckhhS3U0UFplT0J3dXNsL3NGU2dGT1JJWnlBeXZ6NmRhejMycXJU?=
 =?utf-8?B?bXZRQW5XNE5oZUdESXl3Vk5Sb0Y4czd5b1c1QXIzNkFESzZNdnd1MmdqUmxX?=
 =?utf-8?B?c0VmR1FVb3Z4YyswZGJlNTdvWTlnYkZFZDE5WUgvdyt1eTZDMS8veWZoR01N?=
 =?utf-8?B?WlRCK0oyc2grdmNWWHRjM2tQRUxXSnlwQTBnbkh4ZXhvVE05aW1ZYnMrY1hT?=
 =?utf-8?B?aVpBVHFYZ2I5eGU1REdZMHczK2NLQWYwUGlvMHpraEtmcmtrd0xIQ29iRHdu?=
 =?utf-8?B?Q2gwQ3lleU1JMHVUbEpwc1h4SW8yaGlaOHl4dFFMZXRUUitmMEx2VkdlUnZz?=
 =?utf-8?B?QktoalNDZUc3cDFOem1WeFFlenQ5cUxjc1k2YnJUOU12d2xBa0NBdzFxSk1z?=
 =?utf-8?B?MmJyYXFzYmFHNDZGbThnbWV5YklDYThCeEdGaVBvRjNHNWdsYWdNZXM2ZkRo?=
 =?utf-8?B?OSsrdlBkS0F2TlpZQWEwck1pcVlPSkM3bkRnQWM1cWhrYW1BSDRPblRZOGVT?=
 =?utf-8?B?cWpSS09FTXlXa2ZNbEJnWXdndjh2Z0g4QlZNek9RQlRHZnJnb1ZEUzNjTGFL?=
 =?utf-8?B?dm5ObHpIWUs2R1hkYkxhdkl0SXdVZTdIbTU3blQxMmdYbzlsZlN5U0JWeFV2?=
 =?utf-8?B?dDJyYnM2c0pSQmozTHl4aWEzem1rZURJa1F4WW05b1ZveWh6eEMxeTh2cWxZ?=
 =?utf-8?B?dnlJYmE0WTlVNWFqKzZvSmdueDN5TU1OMkMwdldkSEVBcnp1QWNYRXlGdUhi?=
 =?utf-8?B?dEZRQWlobzhEQ1dPUmRzeTFxbmVaaDlWZ2txOVFRc1djVHhkR0xRdzdDc1B1?=
 =?utf-8?B?ckNmL0s2bXdGNDA0aVdRR0lDMFhZcGx5N0ZvVmg5ZjMvTDBObWlmZ29vc3RW?=
 =?utf-8?B?RFkxSWErend3TXIzY0pIdCt5LzlxNEdzdytEblpMcGd2cjBCSEtpU1M4ZFJt?=
 =?utf-8?B?bnRpY0tNMW52c2ptWmZwYS9IYm1ETStzU3pNcmdtOHg2eTlZNzFydnBySUhj?=
 =?utf-8?B?dFN2VGd4MWtCZ2hLa1plaElaWWhFeW56VWdoNWhhaHJCeXlFbm81cXdSdzlm?=
 =?utf-8?B?bjRKVUw5TTFnRURScG5Da0NyQWlRQ3Y0cGFYbmNrdjM5dzNWeTZlQ2FVZkg3?=
 =?utf-8?B?TGUzMy9SV3FtWnJvMU9OUXgxVFQ0L1NwVmFqelVuL1F6M2N4NzRBb3QzMUNn?=
 =?utf-8?B?ZldUbTVoeGpLc0dRYTlnNkdTM3JUNEE1b2h6TFNQWC9nVCtqN1VueFpTNHVG?=
 =?utf-8?B?ZW5XcmQ0M1pOditnSEpXai85SlZvL3N3OHg0MGg3V013bWMzR0lZZGFwRHZN?=
 =?utf-8?B?TXY0ZDBVbGFGcUZzVzZoUTF2OG41ZUVqVDNacmxOcEh2bVhPc2U0WHE4QXdj?=
 =?utf-8?B?K0twUWZzUno4MUpGZjFIY2JkaFV5UjE5aGFwaVNCVEJQL3hDOFV5VTJRTnZZ?=
 =?utf-8?B?OXRXT0FGNDZqL3I5ZFJUUnhNdTdWdnRxSTBFbWdzNG44MXN4YjIxMHpCSE5R?=
 =?utf-8?B?MExkYzBxak0yUG4vM3NLcGhWZ09kS25XQ0I2c2Z0TGdFU09GRkZkeG1HTlB6?=
 =?utf-8?B?b0ltU0d0RzNTMVpjSkFiN2s2RzVzR0JHb3lNS1hUL0VoWEpEMCtaYmhuUXpp?=
 =?utf-8?B?Zi9neWNNMlFZaW5jUENjbW9HK1JSQzJveE1Ga1hKaHdzV3hTOXdhc1ZxYStI?=
 =?utf-8?B?OE1lRFg4em5MS3E0cCtoalVoOVc3R0JuOE8vYldRK2dkVncvVEJES2p6QVZa?=
 =?utf-8?B?d0RZak51WmlmZWMvdStuUUV6MktxdE0vZnNBaFFLa2RSUGNTOWUvUGljZlBv?=
 =?utf-8?B?SUtjUXM3YVcyZ2k4b2ozcEZFbE5zcGNiSjFiU0VUOXBQS2JOanQwM0VSemJS?=
 =?utf-8?B?VWUxeHJIdUQ1U09mZVhlOG9wT3E3OGFnTG5oSi93SEMzUkxJcjFwZ3ZlWTA3?=
 =?utf-8?B?TDVPYXFnS2Flam9NUUVlVHk5dUtvT3RsYUdzd1A2Vnc2eVlUbHBkNjAwOWdK?=
 =?utf-8?B?RE5aQ1RiYTFxMTNsTkNvNG1vcktoa3NTM2wwS3RCcmtrVzdlVmVITGF2TUJ3?=
 =?utf-8?Q?6faRsq?=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(14060799003)(82310400026)(376014)(36860700013)(35042699022);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Apr 2025 08:27:04.4261
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: f9eea8c2-7842-4c31-7297-08dd77404f1c
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DB1PEPF0003922D.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB7868

SGkgQXlhbiwNCg0KPj4+IFRoZSBwb2ludCBvZiB0aGUgY29kZSB3YXMgdG8gZG9u4oCZdCBpc3N1
ZSBhbiBpc2IoKSBldmVyeSB0aW1lIHdlIGNoYW5nZSB0aGUgc2VsZWN0b3IsDQo+Pj4gb2YgY291
cnNlIHRoZSBjb2RlIHdvdWxkIGJlIGVhc2llciBvdGhlcndpc2UsIGJ1dCBkbyB3ZSB3YW50IHRv
IGRvIHRoYXQ/DQo+PiANCj4+IE5vdCBzdXJlIGlmIGl0IGlzIGJlbmVmaWNpYWwgYXMgeW91IHdv
dWxkIG5lZWQgdG8gdXNlIGlzYigpIGZyb20gcmVnaW9uMTYgb253YXJkcy4NCj4gDQo+IFRoZSBp
c2IoKSBpcyBpc3N1ZWQgb25seSB3aGVuIGNoYW5naW5nIHRoZSBzZWxlY3Rvciwgc28gd2hlbiB5
b3UgZ28gZnJvbSByZWFkaW5nL3dyaXRpbmcgcmVnaW9ucw0KPiBmcm9tIDAtMTUgdG8gMTYtMzEg
Zm9yIGV4YW1wbGUsIG9mIGNvdXJzZSB0aGVyZSBpcyBhIGNhc2UgdGhhdCBpZiB5b3UgY29udGlu
dW91c2x5IHdyaXRlIG9uIHJlZ2lvbiAxNQ0KPiBhbmQgMTYgeW91IHdvdWxkIGhhdmUgdG8gYWx3
YXlzIGNoYW5nZSB0aGUgc2VsZWN0b3IsIGJ1dCBpdOKAmXMgdGhlIGxlc3MgaW1wYWN0IHdlIGNv
dWxkIGhhdmUuDQo+IA0KPiBhcm12OC1SIGlzIGV2ZW4gYmV0dGVyIHNpbmNlIGl04oCZcyBhYmxl
IHRvIGFkZHJlc3MgcmVnaW9ucyBmcm9tIDAgdG8gMjMgd2l0aG91dCBmbHVzaGluZyB0aGUgcGlw
ZWxpbmUsDQogICAgICAgICAgICAgICAgIF7igJQgYWFyY2gzMiA6KQ0KDQo+IHNvIEkgd291bGQg
c2F5IHdlIHNob3VsZCBleHBsb2l0IHRoaXMgYmlnIGFkdmFudGFnZS4NCj4gDQo+IEnigJlsbCBz
ZW5kIHNob3J0bHkgaW4gdGhpcyB0aHJlYWQgdGhlIGNvZGUgSSB3b3VsZCB1c2UgYW5kIHRoZSBj
b2RlIEkgd2FzIHRoaW5raW5nIHlvdSBjb3VsZCB1c2UuDQoNCkhlcmUgdGhlIGNvZGUgSSBoYXZl
IGluIG1pbmQ6DQoNCnN0YXRpYyB2b2lkIHByZXBhcmVfc2VsZWN0b3IodWludDhfdCAqc2VsKQ0K
ew0KICAgIHVpbnQ4X3QgY3VyX3NlbCA9ICpzZWw7DQogICAgLyoNCiAgICAgKiB7cmVhZCx3cml0
ZX1fcHJvdGVjdGlvbl9yZWdpb24gd29ya3MgdXNpbmcgdGhlIGRpcmVjdCBhY2Nlc3MgdG8gdGhl
IDAuLjE1DQogICAgICogcmVnaW9ucywgc28gaW4gb3JkZXIgdG8gc2F2ZSB0aGUgaXNiKCkgb3Zl
cmhlYWQsIGNoYW5nZSB0aGUgUFJTRUxSX0VMMg0KICAgICAqIG9ubHkgd2hlbiBuZWVkZWQsIHNv
IHdoZW4gdGhlIHVwcGVyIDQgYml0cyBvZiB0aGUgc2VsZWN0b3Igd2lsbCBjaGFuZ2UuDQogICAg
ICovDQogICAgY3VyX3NlbCAmPSAweEYwVTsNCiAgICBpZiAoIFJFQURfU1lTUkVHKFBSU0VMUl9F
TDIpICE9IGN1cl9zZWwgKQ0KICAgIHsNCiAgICAgICAgV1JJVEVfU1lTUkVHKGN1cl9zZWwsIFBS
U0VMUl9FTDIpOw0KICAgICAgICBpc2IoKTsNCiAgICB9DQogICAgKnNlbCA9ICpzZWwgJiAweEZV
Ow0KfQ0KDQp2b2lkIHJlYWRfcHJvdGVjdGlvbl9yZWdpb24ocHJfdCAqcHJfcmVhZCwgdWludDhf
dCBzZWwpDQp7DQogICAgLyoNCiAgICAgKiBCZWZvcmUgYWNjZXNzaW5nIEVMMiBNUFUgcmVnaW9u
IHJlZ2lzdGVyIFBSQkFSX0VMMi9QUkxBUl9FTDIsDQogICAgICogbWFrZSBzdXJlIFBSU0VMUl9F
TDIgaXMgc2V0LCBhcyBpdCBkZXRlcm1pbmVzIHdoaWNoIE1QVSByZWdpb24NCiAgICAgKiBpcyBz
ZWxlY3RlZC4NCiAgICAgKi8NCiAgICBwcmVwYXJlX3NlbGVjdG9yKCZzZWwpOw0KDQogICAgc3dp
dGNoICggc2VsICkNCiAgICB7DQogICAgICAgIEdFTkVSQVRFX1JFQURfUFJfUkVHX0NBU0UoMCwg
cHJfcmVhZCk7DQogICAgICAgIEdFTkVSQVRFX1JFQURfUFJfUkVHX0NBU0UoMSwgcHJfcmVhZCk7
DQogICAgICAgIEdFTkVSQVRFX1JFQURfUFJfUkVHX0NBU0UoMiwgcHJfcmVhZCk7DQogICAgICAg
IEdFTkVSQVRFX1JFQURfUFJfUkVHX0NBU0UoMywgcHJfcmVhZCk7DQogICAgICAgIEdFTkVSQVRF
X1JFQURfUFJfUkVHX0NBU0UoNCwgcHJfcmVhZCk7DQogICAgICAgIEdFTkVSQVRFX1JFQURfUFJf
UkVHX0NBU0UoNSwgcHJfcmVhZCk7DQogICAgICAgIEdFTkVSQVRFX1JFQURfUFJfUkVHX0NBU0Uo
NiwgcHJfcmVhZCk7DQogICAgICAgIEdFTkVSQVRFX1JFQURfUFJfUkVHX0NBU0UoNywgcHJfcmVh
ZCk7DQogICAgICAgIEdFTkVSQVRFX1JFQURfUFJfUkVHX0NBU0UoOCwgcHJfcmVhZCk7DQogICAg
ICAgIEdFTkVSQVRFX1JFQURfUFJfUkVHX0NBU0UoOSwgcHJfcmVhZCk7DQogICAgICAgIEdFTkVS
QVRFX1JFQURfUFJfUkVHX0NBU0UoMTAsIHByX3JlYWQpOw0KICAgICAgICBHRU5FUkFURV9SRUFE
X1BSX1JFR19DQVNFKDExLCBwcl9yZWFkKTsNCiAgICAgICAgR0VORVJBVEVfUkVBRF9QUl9SRUdf
Q0FTRSgxMiwgcHJfcmVhZCk7DQogICAgICAgIEdFTkVSQVRFX1JFQURfUFJfUkVHX0NBU0UoMTMs
IHByX3JlYWQpOw0KICAgICAgICBHRU5FUkFURV9SRUFEX1BSX1JFR19DQVNFKDE0LCBwcl9yZWFk
KTsNCiAgICAgICAgR0VORVJBVEVfUkVBRF9QUl9SRUdfQ0FTRSgxNSwgcHJfcmVhZCk7DQogICAg
ZGVmYXVsdDoNCiAgICAgICAgQlVHKCk7IC8qIENhbid0IGhhcHBlbiAqLw0KICAgIH0NCn0NCg0K
dm9pZCB3cml0ZV9wcm90ZWN0aW9uX3JlZ2lvbihjb25zdCBwcl90ICpwcl93cml0ZSwgdWludDhf
dCBzZWwpDQp7DQogICAgLyoNCiAgICAgKiBCZWZvcmUgYWNjZXNzaW5nIEVMMiBNUFUgcmVnaW9u
IHJlZ2lzdGVyIFBSQkFSX0VMMi9QUkxBUl9FTDIsDQogICAgICogbWFrZSBzdXJlIFBSU0VMUl9F
TDIgaXMgc2V0LCBhcyBpdCBkZXRlcm1pbmVzIHdoaWNoIE1QVSByZWdpb24NCiAgICAgKiBpcyBz
ZWxlY3RlZC4NCiAgICAgKi8NCiAgICBwcmVwYXJlX3NlbGVjdG9yKCZzZWwpOw0KDQogICAgc3dp
dGNoICggc2VsICkNCiAgICB7DQogICAgICAgIEdFTkVSQVRFX1dSSVRFX1BSX1JFR19DQVNFKDAs
IHByX3dyaXRlKTsNCiAgICAgICAgR0VORVJBVEVfV1JJVEVfUFJfUkVHX0NBU0UoMSwgcHJfd3Jp
dGUpOw0KICAgICAgICBHRU5FUkFURV9XUklURV9QUl9SRUdfQ0FTRSgyLCBwcl93cml0ZSk7DQog
ICAgICAgIEdFTkVSQVRFX1dSSVRFX1BSX1JFR19DQVNFKDMsIHByX3dyaXRlKTsNCiAgICAgICAg
R0VORVJBVEVfV1JJVEVfUFJfUkVHX0NBU0UoNCwgcHJfd3JpdGUpOw0KICAgICAgICBHRU5FUkFU
RV9XUklURV9QUl9SRUdfQ0FTRSg1LCBwcl93cml0ZSk7DQogICAgICAgIEdFTkVSQVRFX1dSSVRF
X1BSX1JFR19DQVNFKDYsIHByX3dyaXRlKTsNCiAgICAgICAgR0VORVJBVEVfV1JJVEVfUFJfUkVH
X0NBU0UoNywgcHJfd3JpdGUpOw0KICAgICAgICBHRU5FUkFURV9XUklURV9QUl9SRUdfQ0FTRSg4
LCBwcl93cml0ZSk7DQogICAgICAgIEdFTkVSQVRFX1dSSVRFX1BSX1JFR19DQVNFKDksIHByX3dy
aXRlKTsNCiAgICAgICAgR0VORVJBVEVfV1JJVEVfUFJfUkVHX0NBU0UoMTAsIHByX3dyaXRlKTsN
CiAgICAgICAgR0VORVJBVEVfV1JJVEVfUFJfUkVHX0NBU0UoMTEsIHByX3dyaXRlKTsNCiAgICAg
ICAgR0VORVJBVEVfV1JJVEVfUFJfUkVHX0NBU0UoMTIsIHByX3dyaXRlKTsNCiAgICAgICAgR0VO
RVJBVEVfV1JJVEVfUFJfUkVHX0NBU0UoMTMsIHByX3dyaXRlKTsNCiAgICAgICAgR0VORVJBVEVf
V1JJVEVfUFJfUkVHX0NBU0UoMTQsIHByX3dyaXRlKTsNCiAgICAgICAgR0VORVJBVEVfV1JJVEVf
UFJfUkVHX0NBU0UoMTUsIHByX3dyaXRlKTsNCiAgICBkZWZhdWx0Og0KICAgICAgICBCVUcoKTsg
LyogQ2FuJ3QgaGFwcGVuICovDQogICAgfQ0KfQ0KDQpIZXJlIHRoZSBjb2RlIEkgdGhvdWdodCB5
b3UgY291bGQgYWRkIGZvciBhcm0zMjoNCg0Kc3RhdGljIHZvaWQgcHJlcGFyZV9zZWxlY3Rvcih1
aW50OF90ICpzZWwpDQp7DQogICAgdWludDhfdCBjdXJfc2VsID0gKnNlbDsNCg0KI2lmZGVmIENP
TkZJR19BUk1fNjQNCiAgICAvKg0KICAgICAqIHtyZWFkLHdyaXRlfV9wcm90ZWN0aW9uX3JlZ2lv
biB3b3JrcyB1c2luZyB0aGUgZGlyZWN0IGFjY2VzcyB0byB0aGUgMC4uMTUNCiAgICAgKiByZWdp
b25zLCBzbyBpbiBvcmRlciB0byBzYXZlIHRoZSBpc2IoKSBvdmVyaGVhZCwgY2hhbmdlIHRoZSBQ
UlNFTFJfRUwyDQogICAgICogb25seSB3aGVuIG5lZWRlZCwgc28gd2hlbiB0aGUgdXBwZXIgNCBi
aXRzIG9mIHRoZSBzZWxlY3RvciB3aWxsIGNoYW5nZS4NCiAgICAgKi8NCiAgICBjdXJfc2VsICY9
IDB4RjBVOw0KICAgIGlmICggUkVBRF9TWVNSRUcoUFJTRUxSX0VMMikgIT0gY3VyX3NlbCApDQog
ICAgew0KICAgICAgICBXUklURV9TWVNSRUcoY3VyX3NlbCwgUFJTRUxSX0VMMik7DQogICAgICAg
IGlzYigpOw0KICAgIH0NCiAgICAqc2VsID0gKnNlbCAmIDB4RlU7DQojZWxzZQ0KICAgIGlmICgg
Y3VyX3NlbCA+IDIzICkNCiAgICAgICAgcGFuaWMoIkFybXY4LVIgQUFyY2gzMiByZWdpb24gc2Vs
ZWN0b3IgZXhjZWVkcyBtYXhpbXVtIGFsbG93ZWQgcmFuZ2UhIik7DQojZW5kaWYNCn0NCg0Kdm9p
ZCByZWFkX3Byb3RlY3Rpb25fcmVnaW9uKHByX3QgKnByX3JlYWQsIHVpbnQ4X3Qgc2VsKQ0Kew0K
ICAgIC8qDQogICAgICogQmVmb3JlIGFjY2Vzc2luZyBFTDIgTVBVIHJlZ2lvbiByZWdpc3RlciBQ
UkJBUl9FTDIvUFJMQVJfRUwyLA0KICAgICAqIG1ha2Ugc3VyZSBQUlNFTFJfRUwyIGlzIHNldCwg
YXMgaXQgZGV0ZXJtaW5lcyB3aGljaCBNUFUgcmVnaW9uDQogICAgICogaXMgc2VsZWN0ZWQuDQog
ICAgICovDQogICAgcHJlcGFyZV9zZWxlY3Rvcigmc2VsKTsNCg0KICAgIHN3aXRjaCAoIHNlbCAp
DQogICAgew0KICAgICAgICBHRU5FUkFURV9SRUFEX1BSX1JFR19DQVNFKDAsIHByX3JlYWQpOw0K
ICAgICAgICBHRU5FUkFURV9SRUFEX1BSX1JFR19DQVNFKDEsIHByX3JlYWQpOw0KICAgICAgICBH
RU5FUkFURV9SRUFEX1BSX1JFR19DQVNFKDIsIHByX3JlYWQpOw0KICAgICAgICBHRU5FUkFURV9S
RUFEX1BSX1JFR19DQVNFKDMsIHByX3JlYWQpOw0KICAgICAgICBHRU5FUkFURV9SRUFEX1BSX1JF
R19DQVNFKDQsIHByX3JlYWQpOw0KICAgICAgICBHRU5FUkFURV9SRUFEX1BSX1JFR19DQVNFKDUs
IHByX3JlYWQpOw0KICAgICAgICBHRU5FUkFURV9SRUFEX1BSX1JFR19DQVNFKDYsIHByX3JlYWQp
Ow0KICAgICAgICBHRU5FUkFURV9SRUFEX1BSX1JFR19DQVNFKDcsIHByX3JlYWQpOw0KICAgICAg
ICBHRU5FUkFURV9SRUFEX1BSX1JFR19DQVNFKDgsIHByX3JlYWQpOw0KICAgICAgICBHRU5FUkFU
RV9SRUFEX1BSX1JFR19DQVNFKDksIHByX3JlYWQpOw0KICAgICAgICBHRU5FUkFURV9SRUFEX1BS
X1JFR19DQVNFKDEwLCBwcl9yZWFkKTsNCiAgICAgICAgR0VORVJBVEVfUkVBRF9QUl9SRUdfQ0FT
RSgxMSwgcHJfcmVhZCk7DQogICAgICAgIEdFTkVSQVRFX1JFQURfUFJfUkVHX0NBU0UoMTIsIHBy
X3JlYWQpOw0KICAgICAgICBHRU5FUkFURV9SRUFEX1BSX1JFR19DQVNFKDEzLCBwcl9yZWFkKTsN
CiAgICAgICAgR0VORVJBVEVfUkVBRF9QUl9SRUdfQ0FTRSgxNCwgcHJfcmVhZCk7DQogICAgICAg
IEdFTkVSQVRFX1JFQURfUFJfUkVHX0NBU0UoMTUsIHByX3JlYWQpOw0KI2lmZGVmIENPTkZJR19B
Uk1fMzINCiAgICAgICAgR0VORVJBVEVfUkVBRF9QUl9SRUdfQ0FTRSgxNiwgcHJfcmVhZCk7DQog
ICAgICAgIEdFTkVSQVRFX1JFQURfUFJfUkVHX0NBU0UoMTcsIHByX3JlYWQpOw0KICAgICAgICBH
RU5FUkFURV9SRUFEX1BSX1JFR19DQVNFKDE4LCBwcl9yZWFkKTsNCiAgICAgICAgR0VORVJBVEVf
UkVBRF9QUl9SRUdfQ0FTRSgxOSwgcHJfcmVhZCk7DQogICAgICAgIEdFTkVSQVRFX1JFQURfUFJf
UkVHX0NBU0UoMjAsIHByX3JlYWQpOw0KICAgICAgICBHRU5FUkFURV9SRUFEX1BSX1JFR19DQVNF
KDIxLCBwcl9yZWFkKTsNCiAgICAgICAgR0VORVJBVEVfUkVBRF9QUl9SRUdfQ0FTRSgyMiwgcHJf
cmVhZCk7DQogICAgICAgIEdFTkVSQVRFX1JFQURfUFJfUkVHX0NBU0UoMjMsIHByX3JlYWQpOw0K
I2VuZGlmDQogICAgZGVmYXVsdDoNCiAgICAgICAgQlVHKCk7IC8qIENhbid0IGhhcHBlbiAqLw0K
ICAgIH0NCn0NCg0Kdm9pZCB3cml0ZV9wcm90ZWN0aW9uX3JlZ2lvbihjb25zdCBwcl90ICpwcl93
cml0ZSwgdWludDhfdCBzZWwpDQp7DQogICAgLyoNCiAgICAgKiBCZWZvcmUgYWNjZXNzaW5nIEVM
MiBNUFUgcmVnaW9uIHJlZ2lzdGVyIFBSQkFSX0VMMi9QUkxBUl9FTDIsDQogICAgICogbWFrZSBz
dXJlIFBSU0VMUl9FTDIgaXMgc2V0LCBhcyBpdCBkZXRlcm1pbmVzIHdoaWNoIE1QVSByZWdpb24N
CiAgICAgKiBpcyBzZWxlY3RlZC4NCiAgICAgKi8NCiAgICBwcmVwYXJlX3NlbGVjdG9yKCZzZWwp
Ow0KDQogICAgc3dpdGNoICggc2VsICkNCiAgICB7DQogICAgICAgIEdFTkVSQVRFX1dSSVRFX1BS
X1JFR19DQVNFKDAsIHByX3dyaXRlKTsNCiAgICAgICAgR0VORVJBVEVfV1JJVEVfUFJfUkVHX0NB
U0UoMSwgcHJfd3JpdGUpOw0KICAgICAgICBHRU5FUkFURV9XUklURV9QUl9SRUdfQ0FTRSgyLCBw
cl93cml0ZSk7DQogICAgICAgIEdFTkVSQVRFX1dSSVRFX1BSX1JFR19DQVNFKDMsIHByX3dyaXRl
KTsNCiAgICAgICAgR0VORVJBVEVfV1JJVEVfUFJfUkVHX0NBU0UoNCwgcHJfd3JpdGUpOw0KICAg
ICAgICBHRU5FUkFURV9XUklURV9QUl9SRUdfQ0FTRSg1LCBwcl93cml0ZSk7DQogICAgICAgIEdF
TkVSQVRFX1dSSVRFX1BSX1JFR19DQVNFKDYsIHByX3dyaXRlKTsNCiAgICAgICAgR0VORVJBVEVf
V1JJVEVfUFJfUkVHX0NBU0UoNywgcHJfd3JpdGUpOw0KICAgICAgICBHRU5FUkFURV9XUklURV9Q
Ul9SRUdfQ0FTRSg4LCBwcl93cml0ZSk7DQogICAgICAgIEdFTkVSQVRFX1dSSVRFX1BSX1JFR19D
QVNFKDksIHByX3dyaXRlKTsNCiAgICAgICAgR0VORVJBVEVfV1JJVEVfUFJfUkVHX0NBU0UoMTAs
IHByX3dyaXRlKTsNCiAgICAgICAgR0VORVJBVEVfV1JJVEVfUFJfUkVHX0NBU0UoMTEsIHByX3dy
aXRlKTsNCiAgICAgICAgR0VORVJBVEVfV1JJVEVfUFJfUkVHX0NBU0UoMTIsIHByX3dyaXRlKTsN
CiAgICAgICAgR0VORVJBVEVfV1JJVEVfUFJfUkVHX0NBU0UoMTMsIHByX3dyaXRlKTsNCiAgICAg
ICAgR0VORVJBVEVfV1JJVEVfUFJfUkVHX0NBU0UoMTQsIHByX3dyaXRlKTsNCiAgICAgICAgR0VO
RVJBVEVfV1JJVEVfUFJfUkVHX0NBU0UoMTUsIHByX3dyaXRlKTsNCiNpZmRlZiBDT05GSUdfQVJN
XzMyDQogICAgICAgIEdFTkVSQVRFX1dSSVRFX1BSX1JFR19DQVNFKDE2LCBwcl93cml0ZSk7DQog
ICAgICAgIEdFTkVSQVRFX1dSSVRFX1BSX1JFR19DQVNFKDE3LCBwcl93cml0ZSk7DQogICAgICAg
IEdFTkVSQVRFX1dSSVRFX1BSX1JFR19DQVNFKDE4LCBwcl93cml0ZSk7DQogICAgICAgIEdFTkVS
QVRFX1dSSVRFX1BSX1JFR19DQVNFKDE5LCBwcl93cml0ZSk7DQogICAgICAgIEdFTkVSQVRFX1dS
SVRFX1BSX1JFR19DQVNFKDIwLCBwcl93cml0ZSk7DQogICAgICAgIEdFTkVSQVRFX1dSSVRFX1BS
X1JFR19DQVNFKDIxLCBwcl93cml0ZSk7DQogICAgICAgIEdFTkVSQVRFX1dSSVRFX1BSX1JFR19D
QVNFKDIyLCBwcl93cml0ZSk7DQogICAgICAgIEdFTkVSQVRFX1dSSVRFX1BSX1JFR19DQVNFKDIz
LCBwcl93cml0ZSk7DQojZW5kaWYNCiAgICBkZWZhdWx0Og0KICAgICAgICBCVUcoKTsgLyogQ2Fu
J3QgaGFwcGVuICovDQogICAgfQ0KfQ0KDQpQbGVhc2UgbGV0IG1lIGtub3cgeW91ciB0aG91Z2h0
cy4NCg0KQ2hlZXJzLA0KTHVjYQ0KDQoNCg0K


From xen-devel-bounces@lists.xenproject.org Wed Apr 09 08:53:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 08:53:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.943632.1342311 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2RBn-0004Ex-Eg; Wed, 09 Apr 2025 08:53:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 943632.1342311; Wed, 09 Apr 2025 08:53: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 1u2RBn-0004Eq-Aa; Wed, 09 Apr 2025 08:53:43 +0000
Received: by outflank-mailman (input) for mailman id 943632;
 Wed, 09 Apr 2025 08:53: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=5vFf=W3=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u2RBm-0004Ek-3B
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 08:53: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 217a30c7-1520-11f0-9ffb-bf95429c2676;
 Wed, 09 Apr 2025 10:53:39 +0200 (CEST)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-43d0359b1fcso3010395e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 09 Apr 2025 01:53:39 -0700 (PDT)
Received: from [10.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-43f233c817dsm9084815e9.23.2025.04.09.01.53.38
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 09 Apr 2025 01:53:38 -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: 217a30c7-1520-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744188819; x=1744793619; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=e9cjuIjv/cNefTTaRPQ8A6blOHTprB70CTT3h7DOTPU=;
        b=C4QSJM3iIL/gJ2M5FQh66j9I4m/oDzDhDK3q1QRdc6rw/VnF/MCKfbrS5+xyC0Ivx3
         QUS3Tayf9dKcEyZzKTYHMV3zkBUWisS4HtuzAKBjLf8lJ6w0lk4N94P5104e9YN0vDjH
         8BpQR4IquOgV+hokS9HwzByHFqVWAp0rHtICz1kPABkaI2mHLkB18+rcFyGhBjUAorBm
         YR1LeZ+TQBKe6i/3DzX/48WoH91sZc2dpXAnd6W4JcqLsIy+qnXqQqRqFhDO/oHPVe+k
         CWVHvUZvt5OJY4hQhZjJCUkuVw5he3Q7HMpHI3pkMsiTHYVEtnNCeHmu+b+92YA514aP
         p58A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744188819; x=1744793619;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=e9cjuIjv/cNefTTaRPQ8A6blOHTprB70CTT3h7DOTPU=;
        b=B3DGTbr0xZ9vaKXbnpnjAbz/5hxHvxmNNku1xk54qqojVCozz55HkTGV2tVPaJFV5b
         FpCxjcmA3FU2bmDK9u7BLJqyTQ76vg25dPGYft4vHVbBMQ+PXUZS5oWTZuJbBIrkf7dQ
         DdGc7l0/jH+DRo4ux9LkYbk+mbBunF+MrJPUjy2pGGwStIyNQhjgCxzL8oZoCUFy5F1w
         qS7b7JUxOCwvBRe404Z65xtMEmGtGF69j7TekXyM3OfY1IWWcxKoP3jlGwcpkjSYryFc
         mkgRHnlApi3E4AAyHUyUsjgo+ffBmc7Xw2Cx7kqG8jOXflck2LD0Y85bPD+nGETUta1g
         BdBg==
X-Forwarded-Encrypted: i=1; AJvYcCVc3+8CGiJit/qS3qHRTTv4eXdleHS722inuor335Z7K+P/y83ZXbvbBK3WcbyAzYaRgT1rP6k85P8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxuuHnrWjHHescSEPx1zvNterCvDD7DjHl61CF3WR8z3XvYjK1k
	ikH+hnAdhMpO6wqwvmyR53XfiO4g/sJhgRCSSiw5PcFxt6UMIlEXHvjotbdaGQ==
X-Gm-Gg: ASbGncsUaLhLGBPY4QnIigcMF8WvKUw0cgsmxdit7Pp0qc+Iw/sw/sEB4wxxK9UdZkb
	Thqs+0BzKV2zmbghDKDHIirG+NXsfOzzgHFFjkAzA+9wstpokM16EZyHOvf7ZQoV8IJm5XlvYPs
	iJ/XVtvk05yiihgNIkSLGlReD5hBHaxgiSmc6NfYzGStIzvJo7UUcgcu9JLOEpKxO7NrWXt9S9R
	x3V8VCbss88g/VDOxJpVw7LnGXSaei5KAX+dhKD7w46RfgEe2X8Wf8Qz6UQ9PM5AUydC73xqlRj
	vI9eVX42mGh9jZ4ppNtjRkjl3UpNxwsmfs7AO/X7e6PiOYY3C+DoVxOvmjitjYyk3c+4JfxoF9G
	KkSwfNg1ScJNDudAGV/m8GTz3oA==
X-Google-Smtp-Source: AGHT+IFS39nfCa+S9kTJgMN5hpzs60I7n8t6DlknvmswpQpJwp5Sj3NDVUN28kw76aCb3XqP4Xb2Vw==
X-Received: by 2002:a05:600c:3b04:b0:43c:ed33:a500 with SMTP id 5b1f17b1804b1-43f0e5eff19mr61306165e9.10.1744188819238;
        Wed, 09 Apr 2025 01:53:39 -0700 (PDT)
Message-ID: <ff05d16d-c9f3-4655-abf0-25201f8bca85@suse.com>
Date: Wed, 9 Apr 2025 10:53:37 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3.1 1/2] x86/amd: Add guest support for AMD TCE
To: Teddy Astie <teddy.astie@vates.tech>
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Community Manager <community.manager@xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <2bac0ded3456e04b49b48cf0808203e76fc6a622.1743771654.git.teddy.astie@vates.tech>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <2bac0ded3456e04b49b48cf0808203e76fc6a622.1743771654.git.teddy.astie@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 07.04.2025 11:10, Teddy Astie wrote:
> --- a/xen/include/public/arch-x86/cpufeatureset.h
> +++ b/xen/include/public/arch-x86/cpufeatureset.h
> @@ -170,6 +170,7 @@ XEN_CPUFEATURE(SKINIT,        3*32+12) /*   SKINIT/STGI instructions */
>  XEN_CPUFEATURE(WDT,           3*32+13) /*   Watchdog timer */
>  XEN_CPUFEATURE(LWP,           3*32+15) /*   Light Weight Profiling */
>  XEN_CPUFEATURE(FMA4,          3*32+16) /*A  4 operands MAC instructions */
> +XEN_CPUFEATURE(TCE,           3*32+17) /*H  Translation Cache Extension support */

I consider this too limiting; this is a performance hint only, after all,
not affecting correctness when ignored if set. A shadow guest is fine to
enable TCE if it sees fit. It'll benefit if later migrated to a HAP-
capable host.

Further a HAP guest is also fine to set this bit even on a TCE-incapable
host. It'll benefit when migrated to a TCE-capable one. What we'd need to
ensure is that on TCE-incapable hosts only the guest view of EFER has the
bit set, while what's in the VMCB for hardware to use hasn't. (Arguably
support for this can come later, but the shortcoming would want pointing
out imo.)

Jan


From xen-devel-bounces@lists.xenproject.org Wed Apr 09 08:58:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 08:58:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.943645.1342320 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2RFs-0004my-Sz; Wed, 09 Apr 2025 08:57:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 943645.1342320; Wed, 09 Apr 2025 08:57: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 1u2RFs-0004mr-QS; Wed, 09 Apr 2025 08:57:56 +0000
Received: by outflank-mailman (input) for mailman id 943645;
 Wed, 09 Apr 2025 08:57:55 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1psM=W3=cloud.com=frediano.ziglio@srs-se1.protection.inumbo.net>)
 id 1u2RFr-0004ml-JM
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 08:57:55 +0000
Received: from mail-oi1-x22c.google.com (mail-oi1-x22c.google.com
 [2607:f8b0:4864:20::22c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b54561c3-1520-11f0-9ffb-bf95429c2676;
 Wed, 09 Apr 2025 10:57:48 +0200 (CEST)
Received: by mail-oi1-x22c.google.com with SMTP id
 5614622812f47-3f94b7bd964so4134634b6e.1
 for <xen-devel@lists.xenproject.org>; Wed, 09 Apr 2025 01:57: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: b54561c3-1520-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1744189067; x=1744793867; 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=+3ywWvIwQq+ipvE0c3NvvVQAwDl/6TI7v4y7Q8XiRtY=;
        b=JWhi+HWq/Vlws2MM4xNCql6UPXDriLmCnzqRsv77g//2h7o9fko292L3v+FtnNM2T7
         Oc8aU7D9kCLlnhwFqCbvrGofV9/0lMPGQAY5i0IZMoFtUMxxLYxRbipyQSuN59u8e7Qj
         chVB+JcBrDuCibS4SWSh8wDrs6twmNPXT8UcY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744189067; x=1744793867;
        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=+3ywWvIwQq+ipvE0c3NvvVQAwDl/6TI7v4y7Q8XiRtY=;
        b=F7aSiYJZ+HUFczslHKfnEh4Eys7QQvr+QOWRHrnkl+dBsKKzIJgbFNhM5idJoHG+bQ
         1jDpMQCJvxitsByw9tafnFm3KlFGlcqm0PLXqMfILcA4NFGuxP2/qRMUFh1k3ieIpU+7
         kqgNiJLhRHOQYnNPVWeI4VnTb/x4+MIqt38mOhp8Rf9t9BjBr7ioqXtWKlzAkJ5wV5/4
         vfXne9ZxxD20W3O0sNFjOAaJTLt4ePhJxMxbNiK3zAKGGwwR4JdaI2DibbE2fKBM/hek
         TrPLfzvHlORXsJaU89GVeh046oqhRm1KLtgoLgP8f292hsPk+FCn299bFd9lLOslU+nr
         PGPw==
X-Gm-Message-State: AOJu0YyS26WMqQobX743GbPegCWSfEP2KR5fxsY03ZyEEWPw5Z2tg/fo
	jl/oENKog+Cb1wDFAPKzq3zYXSohHT86JFh3M9Vje1mMVdrE8S50Fu+82JDAX/BjlSv5yvVjUIu
	d1W0a/Jyzroq5O+YK3mdXha+83HcV8pdQ/8m/xRk7KGJaoZVFDms=
X-Gm-Gg: ASbGncuOrAICLBdGthkULBWHEnW8z+DjTwTmxGF9VYj0KcJCZr1DueHW+Ct8F7mnIPZ
	ZiJ6XRW584FYWduhosgLxkV6KyDludN0PHpNvcIvSwdtCBSjZ4Ocg5D+LESlPDVhqLEU6fbY1F3
	KPQ4idRPSaSsPVVQO18trIrQ==
X-Google-Smtp-Source: AGHT+IHR651bSbgRsrgI4pqhW4FJ2gBp7vsB8vRUUplQkk3pN57W4A2L/ufvRxL6KIFYTuzEWQqltuyOfqc4R/egQjA=
X-Received: by 2002:a05:6808:159a:b0:3f7:c2f9:43f4 with SMTP id
 5614622812f47-400736d9b1fmr1093067b6e.18.1744189066898; Wed, 09 Apr 2025
 01:57:46 -0700 (PDT)
MIME-Version: 1.0
References: <20250321103258.37425-1-frediano.ziglio@cloud.com>
In-Reply-To: <20250321103258.37425-1-frediano.ziglio@cloud.com>
From: Frediano Ziglio <frediano.ziglio@cloud.com>
Date: Wed, 9 Apr 2025 09:57:35 +0100
X-Gm-Features: ATxdqUHazeVxPOaWT4Q-gDvp5YdSftndRcnsI8J3YN_nAXgE0m5CnMjZFY7mza4
Message-ID: <CACHz=Zgtcbd0P0Pp7p1mAMA4ivbdELn4BUUaP_VdWwXdkhiuWw@mail.gmail.com>
Subject: Re: [PATCH v7] Avoid crash calling PrintErrMesg from efi_multiboot2
To: xen-devel@lists.xenproject.org
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>, 
	=?UTF-8?Q?Marek_Marczykowski=2DG=C3=B3recki?= <marmarek@invisiblethingslab.com>, 
	Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

ping

On Fri, Mar 21, 2025 at 10:33=E2=80=AFAM Frediano Ziglio
<frediano.ziglio@cloud.com> wrote:
>
> Although code is compiled with -fpic option data is not position
> independent. This causes data pointer to become invalid if
> code is not relocated properly which is what happens for
> efi_multiboot2 which is called by multiboot entry code.
>
> Code tested adding
>    PrintErrMesg(L"Test message", EFI_BUFFER_TOO_SMALL);
> in efi_multiboot2 before calling efi_arch_edd (this function
> can potentially call PrintErrMesg).
>
> Before the patch (XenServer installation on Qemu, xen replaced
> with vanilla xen.gz):
>   Booting `XenServer (Serial)'Booting `XenServer (Serial)'
>   Test message: !!!! X64 Exception Type - 0E(#PF - Page-Fault)  CPU Apic =
ID - 00000000 !!!!
>   ExceptionData - 0000000000000000  I:0 R:0 U:0 W:0 P:0 PK:0 SS:0 SGX:0
>   RIP  - 000000007EE21E9A, CS  - 0000000000000038, RFLAGS - 0000000000210=
246
>   RAX  - 000000007FF0C1B5, RCX - 0000000000000050, RDX - 0000000000000010
>   RBX  - 0000000000000000, RSP - 000000007FF0C180, RBP - 000000007FF0C210
>   RSI  - FFFF82D040467CE8, RDI - 0000000000000000
>   R8   - 000000007FF0C1C8, R9  - 000000007FF0C1C0, R10 - 0000000000000000
>   R11  - 0000000000001020, R12 - FFFF82D040467CE8, R13 - 000000007FF0C1B8
>   R14  - 000000007EA33328, R15 - 000000007EA332D8
>   DS   - 0000000000000030, ES  - 0000000000000030, FS  - 0000000000000030
>   GS   - 0000000000000030, SS  - 0000000000000030
>   CR0  - 0000000080010033, CR2 - FFFF82D040467CE8, CR3 - 000000007FC01000
>   CR4  - 0000000000000668, CR8 - 0000000000000000
>   DR0  - 0000000000000000, DR1 - 0000000000000000, DR2 - 0000000000000000
>   DR3  - 0000000000000000, DR6 - 00000000FFFF0FF0, DR7 - 0000000000000400
>   GDTR - 000000007F9DB000 0000000000000047, LDTR - 0000000000000000
>   IDTR - 000000007F48E018 0000000000000FFF,   TR - 0000000000000000
>   FXSAVE_STATE - 000000007FF0BDE0
>   !!!! Find image based on IP(0x7EE21E9A) (No PDB)  (ImageBase=3D00000000=
7EE20000, EntryPoint=3D000000007EE23935) !!!!
>
> After the patch:
>   Booting `XenServer (Serial)'Booting `XenServer (Serial)'
>   Test message: Buffer too small
>   BdsDxe: loading Boot0000 "UiApp" from Fv(7CB8BDC9-F8EB-4F34-AAEA-3EE4AF=
6516A1)/FvFile(462CAA21-7614-4503-836E-8AB6F4662331)
>   BdsDxe: starting Boot0000 "UiApp" from Fv(7CB8BDC9-F8EB-4F34-AAEA-3EE4A=
F6516A1)/FvFile(462CAA21-7614-4503-836E-8AB6F4662331)
>
> This partially rollback commit 00d5d5ce23e6.
>
> Fixes: 9180f5365524 ("x86: add multiboot2 protocol support for EFI platfo=
rms")
> Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>
> ---
> Changes since v1:
> - added "Fixes:" tag;
> - fixed cast style change.
>
> Changes since v2:
> - wrap long line.
>
> Changes since v3:
> - fixed "Fixes:" tag.
>
> Changes since v4:
> - use switch instead of tables.
>
> Changes since v5:
> - added -fno-jump-tables option.
>
> Changes since v6:
> - rebased.
> ---
>  xen/common/efi/boot.c        | 58 ++++++++++++++++++++++++------------
>  xen/common/efi/efi-common.mk |  1 +
>  2 files changed, 40 insertions(+), 19 deletions(-)
>
> diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c
> index efbec00af9..143b5681ba 100644
> --- a/xen/common/efi/boot.c
> +++ b/xen/common/efi/boot.c
> @@ -287,33 +287,53 @@ 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 =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 changed"=
,
> -        [~EFI_ERROR_MASK & EFI_DEVICE_ERROR]        =3D L"Device error",
> -        [~EFI_ERROR_MASK & EFI_VOLUME_CORRUPTED]    =3D L"Volume corrupt=
ed",
> -        [~EFI_ERROR_MASK & EFI_ACCESS_DENIED]       =3D L"Access denied"=
,
> -        [~EFI_ERROR_MASK & EFI_OUT_OF_RESOURCES]    =3D L"Out of resourc=
es",
> -        [~EFI_ERROR_MASK & EFI_VOLUME_FULL]         =3D L"Volume is full=
",
> -        [~EFI_ERROR_MASK & EFI_SECURITY_VIOLATION]  =3D L"Security viola=
tion",
> -        [~EFI_ERROR_MASK & EFI_CRC_ERROR]           =3D L"CRC error",
> -        [~EFI_ERROR_MASK & EFI_COMPROMISED_DATA]    =3D L"Compromised da=
ta",
> -        [~EFI_ERROR_MASK & EFI_BUFFER_TOO_SMALL]    =3D L"Buffer too sma=
ll",
> -    };
> -    EFI_STATUS ErrIdx =3D ErrCode & ~EFI_ERROR_MASK;
> -
>      StdOut =3D StdErr;
>      PrintErr(mesg);
>      PrintErr(L": ");
>
> -    if( (ErrIdx < ARRAY_SIZE(ErrCodeToStr)) && ErrCodeToStr[ErrIdx] )
> -        mesg =3D ErrCodeToStr[ErrIdx];
> -    else
> +    switch (ErrCode)
>      {
> +    case EFI_NOT_FOUND:
> +        mesg =3D L"Not found";
> +        break;
> +    case EFI_NO_MEDIA:
> +        mesg =3D L"The device has no media";
> +        break;
> +    case EFI_MEDIA_CHANGED:
> +        mesg =3D L"Media changed";
> +        break;
> +    case EFI_DEVICE_ERROR:
> +        mesg =3D L"Device error";
> +        break;
> +    case EFI_VOLUME_CORRUPTED:
> +        mesg =3D L"Volume corrupted";
> +        break;
> +    case EFI_ACCESS_DENIED:
> +        mesg =3D L"Access denied";
> +        break;
> +    case EFI_OUT_OF_RESOURCES:
> +        mesg =3D L"Out of resources";
> +        break;
> +    case EFI_VOLUME_FULL:
> +        mesg =3D L"Volume is full";
> +        break;
> +    case EFI_SECURITY_VIOLATION:
> +        mesg =3D L"Security violation";
> +        break;
> +    case EFI_CRC_ERROR:
> +        mesg =3D L"CRC error";
> +        break;
> +    case EFI_COMPROMISED_DATA:
> +        mesg =3D L"Compromised data";
> +        break;
> +    case EFI_BUFFER_TOO_SMALL:
> +        mesg =3D L"Buffer too small";
> +        break;
> +    default:
>          PrintErr(L"ErrCode: ");
>          DisplayUint(ErrCode, 0);
>          mesg =3D NULL;
> +        break;
>      }
>      blexit(mesg);
>  }
> diff --git a/xen/common/efi/efi-common.mk b/xen/common/efi/efi-common.mk
> index 23cafcf20c..06b1c19674 100644
> --- a/xen/common/efi/efi-common.mk
> +++ b/xen/common/efi/efi-common.mk
> @@ -2,6 +2,7 @@ EFIOBJ-y :=3D boot.init.o pe.init.o ebmalloc.o runtime.o
>  EFIOBJ-$(CONFIG_COMPAT) +=3D compat.o
>
>  CFLAGS-y +=3D -fshort-wchar
> +CFLAGS-y +=3D -fno-jump-tables
>  CFLAGS-y +=3D -iquote $(srctree)/common/efi
>  CFLAGS-y +=3D -iquote $(srcdir)
>
> --
> 2.43.0
>


From xen-devel-bounces@lists.xenproject.org Wed Apr 09 09:06:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 09:06:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.943659.1342330 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2ROG-0007jc-Nn; Wed, 09 Apr 2025 09:06:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 943659.1342330; Wed, 09 Apr 2025 09:06:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2ROG-0007jV-Jn; Wed, 09 Apr 2025 09:06:36 +0000
Received: by outflank-mailman (input) for mailman id 943659;
 Wed, 09 Apr 2025 09:06: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=pLOg=W3=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1u2ROF-0007jP-UZ
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 09:06:36 +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 ee82b6d1-1521-11f0-9ffb-bf95429c2676;
 Wed, 09 Apr 2025 11:06:32 +0200 (CEST)
Received: by mail-ej1-x636.google.com with SMTP id
 a640c23a62f3a-ac7bd86f637so102443066b.1
 for <xen-devel@lists.xenproject.org>; Wed, 09 Apr 2025 02:06:33 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-64-225.play-internet.pl.
 [109.243.64.225]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-acaa1bee20asm60870866b.73.2025.04.09.02.06.31
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 09 Apr 2025 02:06:31 -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: ee82b6d1-1521-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1744189593; x=1744794393; darn=lists.xenproject.org;
        h=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=TSFfbL2L6mXYxrY/TGHW3ERtOMRqs8QMomzKjfXajuo=;
        b=aMrtjWiB2ijp94zDsz9xlfEjbsFyAyRtAlGWxU738vZJXsTLVFaXuoi528W0emBxb8
         KmD2Zd30Ns4hmm+daXCRNJj6u9bnXTisKIeiAabYH+7vnVohcV+KJkSHdCxNu44p0ySB
         k5hnVFXzwAlWkKbUnNuEEFKR3OVydtgX9hVGm/Xo4UsSP2OM5dxDKhNLaM8b5xtEY2fZ
         10bedvibWijzeT3wzdaIijRO6w/u1Vbwnlf7Z3n72D9MRKQHnjEyq66pVTPlLZHfoHIH
         Ym93XICm6JtRZ0IPI7Ee6MxXr6G8OFuLV51KIinFsR4pUO3TTdkexEFy0gQqUcYjSmF+
         zOCQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744189593; x=1744794393;
        h=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=TSFfbL2L6mXYxrY/TGHW3ERtOMRqs8QMomzKjfXajuo=;
        b=fJOynXGNGQ9lMCfhcCZBhVMhuTBz37DhBJFhNwtIeAVlldzVirjjZHICMV42/Pe5ZS
         NAjzh418xydi9CAFbjN1UgK/ma9lWKXmn5wr/wf6IZGX5OVJMddpekZiJbI6Gk51L8N+
         YORW7iaPu/xXTTaBweb2pqGFZorAWGmq1an/gamCC84PBwyILBF1un4IsYONgp9c9Cb/
         4sovWpkzXSIEC8IjJIENtkcftUDZYdSeyvZ42zI6Cn+usnUZwvA1T6yK/jWjjZxvH2uL
         xYF4iiQEbYqRrficM+cvyQVJavIfqfmfptq7TILG3/Vkdji7ogolUsIx5J3dLVzcN4wV
         nuDg==
X-Forwarded-Encrypted: i=1; AJvYcCWdt1aTda0Q5tM85+WjnslRfaHQGJDP8XzkGoZ77PzVUuDFsmAyXVJd7evvYH2EzrJjpEtEgWTYSN0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzwBy8Kgz4wozY+zWX/Q9KGcT1KePDvB5LrmbELruez/0yDavTn
	lZYKqJj4IXTEvGfJ1wEuPZIc8ks5c7JKwqVRyqaKxZQRoi6FdsKN
X-Gm-Gg: ASbGncs5zMugJ/jEFXD3d8+8at8/8Y6T1hlGY0yzwjJoKRDtv/scdoGbW9JGJiHvhta
	MNnCUM0I0r0Xk+yujxLIdL2x4rfK/q/mRB6VeWErmbi/xHnm4eBpcqkUsfEqKNXCsiCAUTLudio
	oafkRt/1FIyQcZW5mJW58dWWy7mREgNqWEdxyPQ2SKhvJoHGNENtyyDmckjYkqW6fpebCQDW3hp
	x/xevG5DvlK2kR/myjG/7pwtv+knuR82TW1vTiDUmJeRZiXqcEeybcBnroIIiVG8uIu8GfRDcJo
	/Jw3VdTUeZCffvdawqhCxRMrfCKIwx2IMQ6I/gYA7RP/J/7hxGk3IrTEKzgzX+HYNfWOwI7mxwO
	g7SxGzPdx/3hRfjPHMvfMUrB2iRw=
X-Google-Smtp-Source: AGHT+IHf28Yjg8ZUP00aNbQzM8e/DV4aunjLfvCJ+4qqbtht+pmQgVoN0fdeAsaRe+67xW1AUvO/EA==
X-Received: by 2002:a17:907:c1d:b0:ac7:b494:8c0c with SMTP id a640c23a62f3a-ac81a68be24mr598161966b.16.1744189592215;
        Wed, 09 Apr 2025 02:06:32 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------3VbIvQuZ34doO0coDiX8W00t"
Message-ID: <3bd6cdb7-8de0-4559-bc56-b20c52fd73db@gmail.com>
Date: Wed, 9 Apr 2025 11:06:30 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] xen/riscv: Increase XEN_VIRT_SIZE
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <808d1b346bc90dde38fd19a6b92ab78d78e42936.1743766932.git.oleksii.kurochko@gmail.com>
 <e5f6ccb3-498f-44cf-8c06-61fa502d93db@suse.com>
 <f35a9969-6154-4e9a-b997-16ca135e85ee@gmail.com>
 <8b2e50f2-1f89-41df-be88-afc9ef24b51a@suse.com>
 <c3b1be9a-d5f5-4cac-a675-7485a99bf51c@gmail.com>
 <fde6c1c2-c439-4020-9301-025b7e8af804@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <fde6c1c2-c439-4020-9301-025b7e8af804@suse.com>

This is a multi-part message in MIME format.
--------------3VbIvQuZ34doO0coDiX8W00t
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 4/8/25 4:04 PM, Jan Beulich wrote:
> On 08.04.2025 15:46, Oleksii Kurochko wrote:
>> On 4/8/25 2:02 PM, Jan Beulich wrote:
>>> On 08.04.2025 13:51, Oleksii Kurochko wrote:
>>>> On 4/7/25 12:09 PM, Jan Beulich wrote:
>>>>> On 04.04.2025 18:04, Oleksii Kurochko wrote:
>>>>>> --- a/xen/arch/riscv/include/asm/mm.h
>>>>>> +++ b/xen/arch/riscv/include/asm/mm.h
>>>>>> @@ -43,13 +43,19 @@ static inline void *maddr_to_virt(paddr_t ma)
>>>>>>      */
>>>>>>     static inline unsigned long virt_to_maddr(unsigned long va)
>>>>>>     {
>>>>>> +    const unsigned int vpn1_shift = PAGETABLE_ORDER + PAGE_SHIFT;
>>>>>> +    const unsigned long va_vpn = va >> vpn1_shift;
>>>>>> +    const unsigned long xen_virt_start_vpn =
>>>>>> +        _AC(XEN_VIRT_START, UL) >> vpn1_shift;
>>>>>> +    const unsigned long xen_virt_end_vpn =
>>>>>> +        xen_virt_start_vpn + ((XEN_VIRT_SIZE >> vpn1_shift) - 1);
>>>>>> +
>>>>>>         if ((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)) ==
>>>>>> -           (_AC(XEN_VIRT_START, UL) >> (PAGETABLE_ORDER + PAGE_SHIFT)));
>>>>>> +    BUILD_BUG_ON(XEN_VIRT_SIZE > GB(1));
>>>>>> +    ASSERT((va_vpn >= xen_virt_start_vpn) && (va_vpn <= xen_virt_end_vpn));
>>>>> Not all of the range is backed by memory, and for the excess space the
>>>>> translation is therefore (likely) wrong. Which better would be caught by
>>>>> the assertion?
>>>> Backed here means that the memory is actually mapped?
>>>>
>>>> IIUC it is needed to check only for the range [XEN_VIRT_START, XEN_VIRT_START+xen_phys_size]
>>>> where xen_phys_size=(unsigned long)_end - (unsigned long)_start.
>>>>
>>>> Did I understand you correctly?
>>> I think so, yes. Depending on what you (intend to) do to .init.* at the
>>> end of boot, that range may later also want excluding.
>> I planned to release everything between __init_begin and __init_end in the following way:
>>     destroy_xen_mappings((unsigned long)__init_begin, (unsigned long)__init_end);
>>
>> So yes, then I think I have to come up with new ASSERT, add is_init_memory_freed variable and
>> if is_init_memory_freed=true then also check that `va` isn't from .init.* range.
>>
>> But I'm not quire sure that mapping for .got* should be destroyed after the end of boot. (now it is
>> part of [__init_begin,__init_end] range.
> Isn't this a non-issue considering
>
> ASSERT(!SIZEOF(.got),      ".got non-empty")
> ASSERT(!SIZEOF(.got.plt),  ".got.plt non-empty")
>
> near the bottom of xen.lds.S?

I forgot about that|ASSERT()|, so it's expected that|.got*| isn't used in Xen anyway.
Therefore, it shouldn't be an issue to destroy the mapping for the|[__init_begin, __init_end]| range.

>
>>>>>> --- a/xen/arch/riscv/mm.c
>>>>>> +++ b/xen/arch/riscv/mm.c
>>>>>> @@ -31,20 +31,27 @@ unsigned long __ro_after_init phys_offset; /* = load_start - XEN_VIRT_START */
>>>>>>     #define LOAD_TO_LINK(addr) ((unsigned long)(addr) - phys_offset)
>>>>>>     
>>>>>>     /*
>>>>>> - * It is expected that Xen won't be more then 2 MB.
>>>>>> + * It is expected that Xen won't be more then XEN_VIRT_SIZE MB.
>>>>>>      * The check in xen.lds.S guarantees that.
>>>>>> - * At least 3 page tables (in case of Sv39 ) are needed to cover 2 MB.
>>>>>> - * One for each page level table with PAGE_SIZE = 4 Kb.
>>>>>>      *
>>>>>> - * One L0 page table can cover 2 MB(512 entries of one page table * PAGE_SIZE).
>>>>>> + * Root page table is shared with the initial mapping and is declared
>>>>>> + * separetely. (look at stage1_pgtbl_root)
>>>>>>      *
>>>>>> - * It might be needed one more page table in case when Xen load address
>>>>>> - * isn't 2 MB aligned.
>>>>>> + * An amount of page tables between root page table and L0 page table
>>>>>> + * (in the case of Sv39 it covers L1 table):
>>>>>> + *   (CONFIG_PAGING_LEVELS - 2) are needed for an identity mapping and
>>>>>> + *   the same amount are needed for Xen.
>>>>>>      *
>>>>>> - * CONFIG_PAGING_LEVELS page tables are needed for the identity mapping,
>>>>>> - * except that the root page table is shared with the initial mapping
>>>>>> + * An amount of L0 page tables:
>>>>>> + *   (512 entries of one L0 page table covers 2MB == 1<<XEN_PT_LEVEL_SHIFT(1))
>>>>>> + *   XEN_VIRT_SIZE >> XEN_PT_LEVEL_SHIFT(1) are needed for Xen and
>>>>>> + *   one L0 is needed for indenity mapping.
>>>>>> + *
>>>>>> + *   It might be needed one more page table in case when Xen load
>>>>>> + *   address isn't 2 MB aligned.
>>>>> Shouldn't we guarantee that?
>>>> I think it's sufficient to guarantee 4KB alignment.
>>>>
>>>> The only real benefit I see in enforcing larger alignment is that it likely enables
>>>> the use of superpages for mapping, which would reduce TLB pressure.
>>>> But perhaps I'm missing something?
>>> No, it's indeed mainly that.
>> But then the linker address and the load address should both be aligned to a 2MB or 1GB boundary.
>> This likely isn't an issue at all, but could it be a problem if we require 1GB alignment for the
>> load address? In that case, might it be difficult for the platform to find a suitable place in
>> memory to load Xen for some reason? (I don't think so but maybe I'm missing something)
> Why would load address need to be 1Gb aligned? That (as well as 2Mb-)alignment
> matters only once you set up paging?

Mostly yes, it matters only once during paging set up.

I was thinking that if, one day, 2MB (or larger) alignment is used and the load address isn't
properly aligned, some space in a page might be lost.
(The word "should" above wasn't entirely accurate.)

But this likely isn't a big deal and can be safely ignored.

~ Oleksii


--------------3VbIvQuZ34doO0coDiX8W00t
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 4/8/25 4:04 PM, Jan Beulich wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:fde6c1c2-c439-4020-9301-025b7e8af804@suse.com">
      <pre wrap="" class="moz-quote-pre">On 08.04.2025 15:46, Oleksii Kurochko wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">On 4/8/25 2:02 PM, Jan Beulich wrote:
</pre>
        <blockquote type="cite">
          <pre wrap="" class="moz-quote-pre">On 08.04.2025 13:51, Oleksii Kurochko wrote:
</pre>
          <blockquote type="cite">
            <pre wrap="" class="moz-quote-pre">On 4/7/25 12:09 PM, Jan Beulich wrote:
</pre>
            <blockquote type="cite">
              <pre wrap="" class="moz-quote-pre">On 04.04.2025 18:04, Oleksii Kurochko wrote:
</pre>
              <blockquote type="cite">
                <pre wrap="" class="moz-quote-pre">--- a/xen/arch/riscv/include/asm/mm.h
+++ b/xen/arch/riscv/include/asm/mm.h
@@ -43,13 +43,19 @@ static inline void *maddr_to_virt(paddr_t ma)
    */
   static inline unsigned long virt_to_maddr(unsigned long va)
   {
+    const unsigned int vpn1_shift = PAGETABLE_ORDER + PAGE_SHIFT;
+    const unsigned long va_vpn = va &gt;&gt; vpn1_shift;
+    const unsigned long xen_virt_start_vpn =
+        _AC(XEN_VIRT_START, UL) &gt;&gt; vpn1_shift;
+    const unsigned long xen_virt_end_vpn =
+        xen_virt_start_vpn + ((XEN_VIRT_SIZE &gt;&gt; vpn1_shift) - 1);
+
       if ((va &gt;= DIRECTMAP_VIRT_START) &amp;&amp;
           (va &lt;= DIRECTMAP_VIRT_END))
           return directmapoff_to_maddr(va - directmap_virt_start);
   
-    BUILD_BUG_ON(XEN_VIRT_SIZE != MB(2));
-    ASSERT((va &gt;&gt; (PAGETABLE_ORDER + PAGE_SHIFT)) ==
-           (_AC(XEN_VIRT_START, UL) &gt;&gt; (PAGETABLE_ORDER + PAGE_SHIFT)));
+    BUILD_BUG_ON(XEN_VIRT_SIZE &gt; GB(1));
+    ASSERT((va_vpn &gt;= xen_virt_start_vpn) &amp;&amp; (va_vpn &lt;= xen_virt_end_vpn));
</pre>
              </blockquote>
              <pre wrap="" class="moz-quote-pre">Not all of the range is backed by memory, and for the excess space the
translation is therefore (likely) wrong. Which better would be caught by
the assertion?
</pre>
            </blockquote>
            <pre wrap="" class="moz-quote-pre">Backed here means that the memory is actually mapped?

IIUC it is needed to check only for the range [XEN_VIRT_START, XEN_VIRT_START+xen_phys_size]
where xen_phys_size=(unsigned long)_end - (unsigned long)_start.

Did I understand you correctly?
</pre>
          </blockquote>
          <pre wrap="" class="moz-quote-pre">I think so, yes. Depending on what you (intend to) do to .init.* at the
end of boot, that range may later also want excluding.
</pre>
        </blockquote>
        <pre wrap="" class="moz-quote-pre">
I planned to release everything between __init_begin and __init_end in the following way:
   destroy_xen_mappings((unsigned long)__init_begin, (unsigned long)__init_end);

So yes, then I think I have to come up with new ASSERT, add is_init_memory_freed variable and
if is_init_memory_freed=true then also check that `va` isn't from .init.* range.

But I'm not quire sure that mapping for .got* should be destroyed after the end of boot. (now it is
part of [__init_begin,__init_end] range.
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Isn't this a non-issue considering

ASSERT(!SIZEOF(.got),      ".got non-empty")
ASSERT(!SIZEOF(.got.plt),  ".got.plt non-empty")

near the bottom of xen.lds.S?</pre>
    </blockquote>
    <pre>I forgot about that <code data-start="82" data-end="92">ASSERT()</code>, so it's expected that <code
    data-start="116" data-end="123">.got*</code> isn't used in Xen anyway.
Therefore, it shouldn't be an issue to destroy the mapping for the <code
    data-start="217" data-end="245">[__init_begin, __init_end]</code> range.
</pre>
    <blockquote type="cite"
      cite="mid:fde6c1c2-c439-4020-9301-025b7e8af804@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <blockquote type="cite">
          <blockquote type="cite">
            <blockquote type="cite">
              <blockquote type="cite">
                <pre wrap="" class="moz-quote-pre">--- a/xen/arch/riscv/mm.c
+++ b/xen/arch/riscv/mm.c
@@ -31,20 +31,27 @@ unsigned long __ro_after_init phys_offset; /* = load_start - XEN_VIRT_START */
   #define LOAD_TO_LINK(addr) ((unsigned long)(addr) - phys_offset)
   
   /*
- * It is expected that Xen won't be more then 2 MB.
+ * It is expected that Xen won't be more then XEN_VIRT_SIZE MB.
    * The check in xen.lds.S guarantees that.
- * At least 3 page tables (in case of Sv39 ) are needed to cover 2 MB.
- * One for each page level table with PAGE_SIZE = 4 Kb.
    *
- * One L0 page table can cover 2 MB(512 entries of one page table * PAGE_SIZE).
+ * Root page table is shared with the initial mapping and is declared
+ * separetely. (look at stage1_pgtbl_root)
    *
- * It might be needed one more page table in case when Xen load address
- * isn't 2 MB aligned.
+ * An amount of page tables between root page table and L0 page table
+ * (in the case of Sv39 it covers L1 table):
+ *   (CONFIG_PAGING_LEVELS - 2) are needed for an identity mapping and
+ *   the same amount are needed for Xen.
    *
- * CONFIG_PAGING_LEVELS page tables are needed for the identity mapping,
- * except that the root page table is shared with the initial mapping
+ * An amount of L0 page tables:
+ *   (512 entries of one L0 page table covers 2MB == 1&lt;&lt;XEN_PT_LEVEL_SHIFT(1))
+ *   XEN_VIRT_SIZE &gt;&gt; XEN_PT_LEVEL_SHIFT(1) are needed for Xen and
+ *   one L0 is needed for indenity mapping.
+ *
+ *   It might be needed one more page table in case when Xen load
+ *   address isn't 2 MB aligned.
</pre>
              </blockquote>
              <pre wrap="" class="moz-quote-pre">Shouldn't we guarantee that?
</pre>
            </blockquote>
            <pre wrap="" class="moz-quote-pre">I think it's sufficient to guarantee 4KB alignment.

The only real benefit I see in enforcing larger alignment is that it likely enables
the use of superpages for mapping, which would reduce TLB pressure.
But perhaps I'm missing something?
</pre>
          </blockquote>
          <pre wrap="" class="moz-quote-pre">No, it's indeed mainly that.
</pre>
        </blockquote>
        <pre wrap="" class="moz-quote-pre">
But then the linker address and the load address should both be aligned to a 2MB or 1GB boundary.
This likely isn't an issue at all, but could it be a problem if we require 1GB alignment for the
load address? In that case, might it be difficult for the platform to find a suitable place in
memory to load Xen for some reason? (I don't think so but maybe I'm missing something)
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Why would load address need to be 1Gb aligned? That (as well as 2Mb-)alignment
matters only once you set up paging?
</pre>
    </blockquote>
    <pre>Mostly yes, it matters only once during paging set up.

I was thinking that if, one day, 2MB (or larger) alignment is used and the load address isn't
properly aligned, some space in a page might be lost.
(The word "should" above wasn't entirely accurate.)

But this likely isn't a big deal and can be safely ignored.

~ Oleksii</pre>
    <br>
  </body>
</html>

--------------3VbIvQuZ34doO0coDiX8W00t--


From xen-devel-bounces@lists.xenproject.org Wed Apr 09 09:07:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 09:07:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.943672.1342340 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2ROy-0008Gm-48; Wed, 09 Apr 2025 09:07:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 943672.1342340; Wed, 09 Apr 2025 09:07:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2ROy-0008Gf-1C; Wed, 09 Apr 2025 09:07:20 +0000
Received: by outflank-mailman (input) for mailman id 943672;
 Wed, 09 Apr 2025 09:07:18 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Ii2m=W3=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u2ROw-0007z5-Mp
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 09:07: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 099233f0-1522-11f0-9eaa-5ba50f476ded;
 Wed, 09 Apr 2025 11:07:18 +0200 (CEST)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-43d0618746bso47695225e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 09 Apr 2025 02:07:18 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 5b1f17b1804b1-43f20a9f14csm8789305e9.1.2025.04.09.02.07.17
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 09 Apr 2025 02:07: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: 099233f0-1522-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744189638; x=1744794438; 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=Qbm8MkLH63O31uSd7V1JYtHSQrp9dnV9v/F9oPhY0vc=;
        b=wc4wjFXFUGJb6aOHhlTBXG7JfflNNWvbS0YFHICzIkNszLhSe1IbFOVQTP8S1GTkUt
         bhEJX83wMPKgfb65+jRpB04lQ2ifeSu/4CTFwxiKiulumJifjE2kf/WBR9wk4ZMzmzlx
         SAYUL+kl4upiB0GIWuUGIvzVBDBBDr7/0rQ18=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744189638; x=1744794438;
        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=Qbm8MkLH63O31uSd7V1JYtHSQrp9dnV9v/F9oPhY0vc=;
        b=Kx7mqig3yK11cZ1GpVawTy43sp5NEslbtIQTuoa4lOrsQTg3kU8yA/HrGKKjeReTLa
         ktneNO0Ai7iodpJoslY5o382d50O3+E0s28rz29XvtfyyQMhMtdspEpcR0Pjf4p/iRD7
         rzIuJ2Fdy/pCTokdeqLuNSfz/CAdla7Ob0q3mzecSw8gQUOknOuDOkUEF25W6TkLjNOJ
         0+OvsoXOoP9eAreKw5TN+owdaFcc4oQrm8LlzzVEkUZIPGe/g/ZPxju+jnO6/yPx/lK5
         EoP1IbECWzkcLACwP2JMok0NsqrPgXFOddGGxXwbG4LbIMX0VRwUeZ0oX/foK6+c96V8
         gaWQ==
X-Forwarded-Encrypted: i=1; AJvYcCV47bpOgrvHxLL9e/kN5erKU97KISNx3jaGdHEMJIVa3OWBJfMFY6nVbKFOJnUxxE1atEbnHMZeHpQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzrsD9NILHDZFOGHEZJxbp6CG7gFVRaLaxoMVmulGfqMlPvgEdP
	FaXkWmTSOl/u/NCfv1M69salBeDjUffjL2MVBy0Yx6JdRcw5P4AhQ7+KO93jzxE=
X-Gm-Gg: ASbGncv8lOiCatFhtdQhY+uumobYgas1EovYOKN9HCnbOzbmTktoWMNEbBE2N7sPV20
	tXwf6unbGjWN+/LvRGKO2DNe/jxfhHVCa3othlMM1r/+96ye1rTzEmTmPHJX81UNWYVK9iBqwQ5
	o7Gcyiib86tYIOWl2AiTJlXCUZEUks7x2Tu0zi8AT07WD7js/2uJ1bzmGr1jTOgzTzSzCQh+Nba
	3VVKYD4J8fGNHXxD5tWhh+GrIHAsGkWbqnlwny+7F8fhX1GXUzNCs4+bCMQSgO1AztKxVkT4Ddb
	hJDeGJcivFRNdLJ+WQZwInYIpGxoqCg770JylEazOsZamVttPpnpI1x5h68zeA==
X-Google-Smtp-Source: AGHT+IFmSSZ6rlE6Gy6q2pPn9VFOwlyRC4wAheL5mDdU7UisCx61omdQXY4Ncdpo2BXAqt8x0XY2Qg==
X-Received: by 2002:a05:600c:4f43:b0:43d:bb9:ad00 with SMTP id 5b1f17b1804b1-43f1fe7f6edmr19965575e9.15.1744189637743;
        Wed, 09 Apr 2025 02:07:17 -0700 (PDT)
Date: Wed, 9 Apr 2025 11:07:16 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Marek Marczykowski <marmarek@invisiblethingslab.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH 2/2] x86/hvm: fix write emulation of RO ranges
Message-ID: <Z_Y4xFzaltr_XKO4@macbook.lan>
References: <20250408093156.83277-1-roger.pau@citrix.com>
 <20250408093156.83277-3-roger.pau@citrix.com>
 <16c73cae-2ac0-4811-97d3-b25c95ed5abc@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <16c73cae-2ac0-4811-97d3-b25c95ed5abc@suse.com>

On Tue, Apr 08, 2025 at 03:57:17PM +0200, Jan Beulich wrote:
> On 08.04.2025 11:31, Roger Pau Monne wrote:
> > When running on AMD hardware in HVM mode the guest linear address (GLA)
> > will not be provided to hvm_emulate_one_mmio(), and instead is
> > unconditionally set of ~0.  As a consequence mmio_ro_emulated_write() will
> > always report an error, as the fault GLA generated by the emulation of the
> > access won't be ~0.
> 
> Which means subpage_mmio_write_accept() is flawed, too, on AMD (or more
> generally whenever .gla_valid isn't set).

Oh, yes, good catch.  I didn't notice that one.  We should move all
those checks to use a paddr rather than a gla.

> > Fix this by only checking for the fault GLA in mmio_ro_emulated_write()
> > when the guest is PV.
> 
> This narrows checking too much, imo. For VT-x we could continue to do so,
> provided we pass e.g. npfec down into hvm_emulate_one_mmio(), i.e. make
> the gla_valid flag visible there.

I don't think we should rely on the gla at all in
mmio_ro_emulated_write(), and instead just use the physical address.

> > --- a/xen/arch/x86/mm.c
> > +++ b/xen/arch/x86/mm.c
> > @@ -5187,7 +5187,12 @@ int cf_check mmio_ro_emulated_write(
> >  
> >      /* Only allow naturally-aligned stores at the original %cr2 address. */
> >      if ( ((bytes | offset) & (bytes - 1)) || !bytes ||
> > -         offset != mmio_ro_ctxt->cr2 )
> > +         /*
> > +          * HVM domains might not have a valid fault GLA in the context, as AMD
> > +          * NPT faults don't report the faulting GLA.  It's also possible for
> > +          * the fault to happen in non-paging modes.
> > +          */
> > +         (is_pv_domain(current->domain) && offset != mmio_ro_ctxt->cr2) )
> >      {
> >          gdprintk(XENLOG_WARNING, "bad access (cr2=%lx, addr=%lx, bytes=%u)\n",
> >                  mmio_ro_ctxt->cr2, offset, bytes);
> 
> Is logging the supposed CR2 value useful then for cases where the GLA
> isn't valid? I fear it might be more confusing than helpful.

Since it was a debug printk I was kind of OK with leaving it, but
given the other comments I think I will have to rework
mmio_ro_emulated_write() so that it doesn't use the gla anymore.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Apr 09 09:19:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 09:19:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.943688.1342349 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2RaE-0002rF-3d; Wed, 09 Apr 2025 09:18:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 943688.1342349; Wed, 09 Apr 2025 09: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 1u2RaE-0002r8-0V; Wed, 09 Apr 2025 09:18:58 +0000
Received: by outflank-mailman (input) for mailman id 943688;
 Wed, 09 Apr 2025 09: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=5vFf=W3=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u2RaC-0002r2-3N
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 09:18:56 +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 a7edeb73-1523-11f0-9ffb-bf95429c2676;
 Wed, 09 Apr 2025 11:18:53 +0200 (CEST)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-43690d4605dso44126455e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 09 Apr 2025 02:18:53 -0700 (PDT)
Received: from [10.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-43f205ec97csm13935385e9.6.2025.04.09.02.18.52
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 09 Apr 2025 02:18:53 -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: a7edeb73-1523-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744190333; x=1744795133; 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=fapSrGbwzx46Jyw9vp4EVuD7vkduYiWQpWgQe9PdCuI=;
        b=NaGbCLsjEtn1g0o5z5iPzS+lGGhFFvb9uwP3xZZi2Yj5Cr7Z7IKG00IRjiWqyj9FEp
         qmOitRUI/9DYPJFeP3srhD/JQ5PY/43A5lVaF3OPBaJJemdbfP2imJxmW4ksccmsy7DP
         Ms5BtNW9iXJfHKiuJCPTlBDd5XEzWTNl+jbZnAjBYBqgENv9u3dt1dN1n8OAMcLIBPUq
         jVqLEUs1DIEYOvDwWQjXLvDLozQliP67k/qC09WQDGNWAxEN2gNtw4gsD+UruAmrI2jA
         pqcIlCxPTJDoMs+m2ERngDmuuv2EoUzlmvXKK2pfD+2ShNC1w4BeP1TfnU+at+46hckj
         xBuQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744190333; x=1744795133;
        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=fapSrGbwzx46Jyw9vp4EVuD7vkduYiWQpWgQe9PdCuI=;
        b=uUyEE3zTsjUNQ0c46YO/AS98vAcHqzIaSiEn8Y5MQMrvIX6+px5ySHminfOjeC7N5R
         WE0F+icMPU4jYdewntjap3+OJh22JsdPmLnAtMlZwi3xNg3U2R7zKw41FkMeGZpBIiT+
         ETiwj+QMMBAmb5181rw0qYLnWhEawjDUBN/CJO975TpcY+cMnilyw1O08KbbkgOAmE8+
         NtVb1CRugCD8kYMToI9FKVVd9RJTMULkgDoAT0gc2i0MopSo5/H3KTvHV//rKEGGrzGu
         9MLC4hBWRNBgl/M9mKqy5HtAopXtnGG60GgRycOk79Q51O4CqWtSw0iQbrklwJ82M96k
         hvtw==
X-Forwarded-Encrypted: i=1; AJvYcCWpidFZC+1QivADbd5LmVenANF6gmLRKOQDflvTRGMsTNnA7bHPpPNriQ2CRQwMQWeyt7LbAYw5bL4=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy5TJFXloKDjuRLPgmCUv8yG+HZYVbmGKuwVDm33dBs+FimFVg5
	Iu/kkJqUOZyMeC0ia9Fc5R9hc9MpCKc22jxJsR0xmk3BVsoigVBUbswvv/1Snw==
X-Gm-Gg: ASbGncufDqFDh1lp/VE2cPMv6eR7IxgQ0Grf8jr/eVJ0B0+emVXjASkenmjlJ4DlnPR
	LTACxeUqw3bfrs/CJYl72+CcS0ElP/SJY5EZ43zpG2reEeZ8uU/Vemy7N8O40W7ghY5B77PvB3/
	HH5uCxcAjfM5b9szuXTvD+2f1FlL3kZY4zT1cZOIUDvXbeYtRWfLhq8AmR138Cw9bQMUhcHynwv
	HmSlCCW4hrlLyU5lGhLBUZw3zpkRoMl3RmIUrs1PZWiYGT/4tNEPqe0SWBT2l0KFDRrVfdP93/k
	ftjUzGNXjFaqa+XwKMPLcrvfR/1Pfowe0H2xeO7rhdIOD8wegA4Q3Is8ENCoLpVqWmmEy0eoQNc
	e9WC2esfsdy6V7W/UhELZ6Xt6xQ==
X-Google-Smtp-Source: AGHT+IGXCDMFv2kpYPg4hbU1ReEpB56IUATP9g5eIdxlA38EO+gOxAGZSviPn4Wo22FNqtNBkWEsmQ==
X-Received: by 2002:a05:600c:5113:b0:43c:f597:d584 with SMTP id 5b1f17b1804b1-43f1ff461e1mr13043565e9.29.1744190333315;
        Wed, 09 Apr 2025 02:18:53 -0700 (PDT)
Message-ID: <e2bcd0f4-fcb9-4d6d-82b7-54540fe3ac79@suse.com>
Date: Wed, 9 Apr 2025 11:18:51 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3.1 1/2] x86/amd: Add guest support for AMD TCE
From: Jan Beulich <jbeulich@suse.com>
To: Teddy Astie <teddy.astie@vates.tech>
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Community Manager <community.manager@xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <2bac0ded3456e04b49b48cf0808203e76fc6a622.1743771654.git.teddy.astie@vates.tech>
 <ff05d16d-c9f3-4655-abf0-25201f8bca85@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: <ff05d16d-c9f3-4655-abf0-25201f8bca85@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 09.04.2025 10:53, Jan Beulich wrote:
> On 07.04.2025 11:10, Teddy Astie wrote:
>> --- a/xen/include/public/arch-x86/cpufeatureset.h
>> +++ b/xen/include/public/arch-x86/cpufeatureset.h
>> @@ -170,6 +170,7 @@ XEN_CPUFEATURE(SKINIT,        3*32+12) /*   SKINIT/STGI instructions */
>>  XEN_CPUFEATURE(WDT,           3*32+13) /*   Watchdog timer */
>>  XEN_CPUFEATURE(LWP,           3*32+15) /*   Light Weight Profiling */
>>  XEN_CPUFEATURE(FMA4,          3*32+16) /*A  4 operands MAC instructions */
>> +XEN_CPUFEATURE(TCE,           3*32+17) /*H  Translation Cache Extension support */
> 
> I consider this too limiting; this is a performance hint only, after all,
> not affecting correctness when ignored if set. A shadow guest is fine to
> enable TCE if it sees fit. It'll benefit if later migrated to a HAP-
> capable host.

Further to this: From all I can find it doesn't become clear whether INVLPGA
acts like INVLPG as to upper-level entries. Implicitly it comes closer to
acting like INVLPG with TCE set. Which may be the reason why svm_invlpg()
doesn't use INVLPGA. Yet that could change then for guests having TCE set,
which means it would become relevant to expose the bit also to shadow guests.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Apr 09 09:47:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 09:47:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.943702.1342360 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2S1U-00020m-6D; Wed, 09 Apr 2025 09:47:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 943702.1342360; Wed, 09 Apr 2025 09:47: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 1u2S1U-00020f-3C; Wed, 09 Apr 2025 09:47:08 +0000
Received: by outflank-mailman (input) for mailman id 943702;
 Wed, 09 Apr 2025 09:47: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=Ii2m=W3=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u2S1S-00020W-7u
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 09:47:06 +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 977aeb65-1527-11f0-9eaa-5ba50f476ded;
 Wed, 09 Apr 2025 11:47:04 +0200 (CEST)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-ac2ab99e16eso1239874366b.0
 for <xen-devel@lists.xenproject.org>; Wed, 09 Apr 2025 02:47:04 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 a640c23a62f3a-acaa1cb3d8fsm66954466b.106.2025.04.09.02.47.02
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 09 Apr 2025 02:47: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: 977aeb65-1527-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744192023; x=1744796823; 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=bAI0Lj/7QofvEJEyvOUntjvPc6gepPg0bWYw4CwaBxU=;
        b=A46N3XsmNJLyMPZ6Pr5Oxm5rAXihLY6vWpYOnPc3be4EXtoYAbHRf2ZCS+MClp2b+L
         cqvOSxq+HFI7nDdcS6pVmxYYXDGKBimHBzCauvFgY0FuAJSih7ZkrAcneXAYojpxF689
         MYEG4jCx/KwOh7tan3sRhLb3TM1bXq6Trb91w=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744192023; x=1744796823;
        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=bAI0Lj/7QofvEJEyvOUntjvPc6gepPg0bWYw4CwaBxU=;
        b=MmMqyv8QbOVEs44NQb6eABLVhm0Pzz0qhpXspWcr4WbZDj2NFybBbY5ClGQzyMOFir
         WxOhOd6kU22kVWBVihF4DRHJzgtXe+vMLeuE5I5SfJRJNNovURA7YSoQleW8gU6D3OSP
         NluSn6lvAl397QiLYkDr+pgmM4cwsMlrm46S2z4mJXQRkrBGjkjf7EYuEiuYStjVGXk9
         igQCalLy2lC7yaUov0LcBKQ3O4hKdjEiI6fk2BWYmBYpivpjZDcl69GJ9yt0HZuQNDuI
         FgdvDrSmSN/bOFTsX9FyeoGUDR1u8k8DVVivDp4CXrA+exZoB7zeWVYSpWrSmvAVEK1o
         TOKw==
X-Gm-Message-State: AOJu0YwtbsjYjo9QmuTdv1b/SzUb98JoxwHjFlZpjqcRj8fIdOnnbykT
	8Rg8e12XnzaWaEdfxjJMJK+vQsFUw/Dv0jHCGIak5Q0w1jly9v9GVOqPfq2WDwA=
X-Gm-Gg: ASbGncsLdt3VwD0cQLoJb2hJyWMEQ5uMO5UtOHOYltkEd8iksknDxiyRUZR8vhDRqzR
	/sS7ipa3weg2/PhuhyWZmiUoWNpAEfG6Quf5FwxC1lIahf6Xfx0eibvjaXUZSzC2D0i47EkXZkl
	Lyao7kh92d9gV5HH0z6rEjtGtiTsvholkCpA+iGHGCzs4Lz+JYzWIadN+awkL95DTN6yyDUIDtP
	SFFErNqwkdJYDVrxw06MffN/XLuiLeM2OGFAjm9fvVnYt0AtXSBOO9QS+y+iTpfO/6qpgP1NytW
	YufSaBa+JJSxTO7M7WNKoDff73wvtJzgMBETExXWdssS1g==
X-Google-Smtp-Source: AGHT+IFbCNuJeWEAd5BMgruXrKEi+95Yk9ycwjDxRkzAOPAi9Iz+0tobYbeY5T9pJ/DrGAjIcFj2nQ==
X-Received: by 2002:a17:906:6a11:b0:ac7:e80a:7fc9 with SMTP id a640c23a62f3a-aca9b6628a5mr252871166b.31.1744192023345;
        Wed, 09 Apr 2025 02:47:03 -0700 (PDT)
Date: Wed, 9 Apr 2025 11:47:01 +0200
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/2] x86/hvm: fix write emulation of RO ranges
Message-ID: <Z_ZCFTcrmnr0ihlg@macbook.lan>
References: <20250408093156.83277-1-roger.pau@citrix.com>
 <20250408093156.83277-3-roger.pau@citrix.com>
 <13127adf-4feb-4039-b859-27d68bef751d@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <13127adf-4feb-4039-b859-27d68bef751d@citrix.com>

On Tue, Apr 08, 2025 at 03:00:28PM +0100, Andrew Cooper wrote:
> On 08/04/2025 10:31 am, Roger Pau Monne wrote:
> > When running on AMD hardware in HVM mode the guest linear address (GLA)
> > will not be provided to hvm_emulate_one_mmio(), and instead is
> > unconditionally set of ~0.  As a consequence mmio_ro_emulated_write() will
> > always report an error, as the fault GLA generated by the emulation of the
> > access won't be ~0.
> >
> > Fix this by only checking for the fault GLA in mmio_ro_emulated_write()
> > when the guest is PV.
> >
> > Fixes: 33c19df9a5a0 ('x86/PCI: intercept accesses to RO MMIO from dom0s in HVM containers')
> > Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> 
> I think there are several bugs here.
> 
> We do get %cr2 reliably for PV and Shadow guests.
> 
> Intel EPT may or may not give us GLA.  e.g. writes for pagetable A/D
> updates don't get GLA.
> 
> Defaulting to ~0 isn't ok.  We need some kind of GLA-valid signal,
> except for HAP guests, it isn't even the GLA we care about, it's the GPA
> which identifies the MMIO region.
> 
> We shouldn't terminate the emulation if there's no GLA to check.  In the
> case that we don't have a GLA, we should translate the memory operand
> and cross-check the GPA.  We'll definitely have one of the two to hand.

I guess I will have to switch to a more complex approach for HVM and
use logic similar to hvmemul_write() to figure out the mfn, and
compare it with the fault provided one.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Apr 09 10:00:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 10:00:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.943718.1342370 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2SEI-0005us-72; Wed, 09 Apr 2025 10:00:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 943718.1342370; Wed, 09 Apr 2025 10:00: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 1u2SEI-0005ul-42; Wed, 09 Apr 2025 10:00:22 +0000
Received: by outflank-mailman (input) for mailman id 943718;
 Wed, 09 Apr 2025 10:00: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=5vFf=W3=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u2SEG-0005uP-9A
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 10:00:20 +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 713c4fd4-1529-11f0-9eaa-5ba50f476ded;
 Wed, 09 Apr 2025 12:00:18 +0200 (CEST)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-43edecbfb94so45406125e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 09 Apr 2025 03:00:18 -0700 (PDT)
Received: from [10.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-39d893f0a80sm1172850f8f.68.2025.04.09.03.00.17
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 09 Apr 2025 03:00: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: 713c4fd4-1529-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744192818; x=1744797618; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=5cRYYtEYKApOJth6FY32FTm/VcHgLQzSmgOZwKZX/ws=;
        b=MguLpULJ0y3S+RgUK+yztw0FnTBxoGbShfdODqidsamiWZkd0ADhmDWoT+byH2/gke
         oRM0lImhQ0djlRCA7cAa+7W3Ow3GeANFDnHeYVkIULegQST8D5dWS+QZGvjhvMQ2Pw4M
         nm+nzy1ffJVoL3TU3yr3YDJTEfmLqf8TM/26YoxdRm10qsInm2i0gH2rH0N7dmH7TrZI
         3HAFzN0mItMD7bNCC4WwHqX+AV7ssmptmC9C7Jg6nTvMzP5RUokKZiPa1sIKlXSeC76W
         +bpFm023neYaVdiefMWS8D0zvo7F8Sj9JXEg5ZaXtnRVoL75UTwvZK5rRpOw7CzbEn/2
         We9Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744192818; x=1744797618;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=5cRYYtEYKApOJth6FY32FTm/VcHgLQzSmgOZwKZX/ws=;
        b=TNLRP2/AEzvgh1Pic3e0KbrCrIFCa6G0AaBTSRFMbndRiR7rx45Sr7HAO20lNCAS3m
         lGUBUa11zLHnTDlb6Hy1kRyhbcA49/LAmPeOeb9Vmoeq5jF/W1FHSibHR8XYvPfLbxy4
         l8/jD5FE9j7rsTInjhcUKP2syOXU5nIclarzqdhBuIHsZo6TMIuI0o/P0UJgTHUcG4gG
         P3ghFBmcM74luAh2rT6lzNujadf1m2gLOK1P7MDUaLP+1U1zV5gLjtkS0aAQcAMOuscD
         lYRzZekWIEJqOJkspRj4pTpwC8g1bcU6uZTnriP1WqU1mtQsjCDn88ea17i7CZ7tCvW7
         QvJA==
X-Forwarded-Encrypted: i=1; AJvYcCUm37H494QOZ/X9IY1sHKrncazzmp4AWBO//j3SD8PxhDAqmHiL+r9xModPuZp8dOIMrp3HuDmWbAU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxuivZNUZfaYe1TGmdSVsg3YgzQSnreITctimv9SVqiGKPtf6qo
	oyV5RG6YyDmKnjW/U4OuKh/xSAVEt9Pg7Fk6TSBz5r4RCY+eyY9jmwshHX+auw==
X-Gm-Gg: ASbGncvjoNuFLfNJtwAk2Ri1v0POhvaT4U+noo8JGGWtmAaTXEpd+P1jyy3RDHYqiZH
	ozK6DD+qJ2FI0QLau+dlOIBPb3p/J4L5IKQgycIi17lpA+F2DM52FoQ8izqpGQvxCNE713EYAIP
	vPtAdxuffeP4yYh7c3KBYTQ11QtwJOv27RGwjDKgVxhX4jZriV1WRkvREbsyJwQettTvvv/ac0g
	2idxCZRqCs8BS6e4KnrEDBRt4wxzv9C9yqByf66JOyP7BIJLCn/9TEClTkqDRRtowlQdlKiXeJn
	VM30ouOvinOu39VDbzig4c27LtTLoKTMQ1kPJUfG2LBvKB1ptHmOJJcSM1ve8u1ggQPZbOYcf5H
	XBQ3yQfWJaTsQSadfyoM6GybVZg==
X-Google-Smtp-Source: AGHT+IH1fdyvBFo4kIbhc+fZkuIuPYp5DFiegcW8IHwN8SuXq0/Kjv4FnaZ37cB5Drll15kjfDDxvg==
X-Received: by 2002:a05:600c:8508:b0:43d:9f2:6274 with SMTP id 5b1f17b1804b1-43f252f558fmr11624555e9.14.1744192818103;
        Wed, 09 Apr 2025 03:00:18 -0700 (PDT)
Message-ID: <ef0b6eea-a7e5-406d-a8ba-062b3c6e17e1@suse.com>
Date: Wed, 9 Apr 2025 12:00:16 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] x86/hvm: fix write emulation of RO ranges
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: Marek Marczykowski <marmarek@invisiblethingslab.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20250408093156.83277-1-roger.pau@citrix.com>
 <20250408093156.83277-3-roger.pau@citrix.com>
 <16c73cae-2ac0-4811-97d3-b25c95ed5abc@suse.com>
 <Z_Y4xFzaltr_XKO4@macbook.lan>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <Z_Y4xFzaltr_XKO4@macbook.lan>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 09.04.2025 11:07, Roger Pau Monné wrote:
> On Tue, Apr 08, 2025 at 03:57:17PM +0200, Jan Beulich wrote:
>> On 08.04.2025 11:31, Roger Pau Monne wrote:
>>> When running on AMD hardware in HVM mode the guest linear address (GLA)
>>> will not be provided to hvm_emulate_one_mmio(), and instead is
>>> unconditionally set of ~0.  As a consequence mmio_ro_emulated_write() will
>>> always report an error, as the fault GLA generated by the emulation of the
>>> access won't be ~0.
>>
>> Which means subpage_mmio_write_accept() is flawed, too, on AMD (or more
>> generally whenever .gla_valid isn't set).
> 
> Oh, yes, good catch.  I didn't notice that one.  We should move all
> those checks to use a paddr rather than a gla.

Really that function could just be passed the offset into the page.

>>> Fix this by only checking for the fault GLA in mmio_ro_emulated_write()
>>> when the guest is PV.
>>
>> This narrows checking too much, imo. For VT-x we could continue to do so,
>> provided we pass e.g. npfec down into hvm_emulate_one_mmio(), i.e. make
>> the gla_valid flag visible there.
> 
> I don't think we should rely on the gla at all in
> mmio_ro_emulated_write(), and instead just use the physical address.

But you can't validate a physical address against a CR2 value. And I view
this validation as meaningful, to guard (best effort, but still) against
e.g. insn re-writing under our feet.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Apr 09 10:05:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 10:05:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.943731.1342379 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2SIv-0007pk-Oo; Wed, 09 Apr 2025 10:05:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 943731.1342379; Wed, 09 Apr 2025 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 1u2SIv-0007pd-LW; Wed, 09 Apr 2025 10:05:09 +0000
Received: by outflank-mailman (input) for mailman id 943731;
 Wed, 09 Apr 2025 10:05: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=5vFf=W3=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u2SIv-0007pX-2z
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 10:05: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 1cf3e80c-152a-11f0-9ffb-bf95429c2676;
 Wed, 09 Apr 2025 12:05:06 +0200 (CEST)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-43cec5cd73bso37562475e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 09 Apr 2025 03:05:06 -0700 (PDT)
Received: from [10.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-43f2075a593sm14804205e9.25.2025.04.09.03.05.05
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 09 Apr 2025 03:05: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: 1cf3e80c-152a-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744193106; x=1744797906; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=+MZ9LDlQVLzJKHK3NbI489Yx+hBmX1ikt6QAEymnCZ4=;
        b=ETvmZhZl/i0jTMu9YP6JA/Zm8wtMg1IeVpCBYXcbwsNRxm5/P6tmzcyfZPmvmTbDCU
         1hqPuZqueL5/rujHqR1whQFmbUUbj21MHbbRH4FHUbKaqPeTLkQZu8DcEWUmwwAjQQtU
         nW7qxjwQhfivaVy/0yWicsibXSabHpUTKk6fawT0L0KtJh6ykbi2gspiAZibSuNTXrN6
         vzxBzyMQjrnCk+Dml9YoPUuoz25cAVyZs1zhq+0i3BcnAnAJHT4oCtImTDHOohxarnPZ
         FMRInbh/IxWZvt/6Z8G3i5PThcriA19rGVzh6GoVl4KpZ/qGCzm6gWhR4qJAsr1GWv+I
         QMlQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744193106; x=1744797906;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=+MZ9LDlQVLzJKHK3NbI489Yx+hBmX1ikt6QAEymnCZ4=;
        b=MiIR7kH99CYcc6LO1AXNgq2cpfUc/LnaavBTRsEngsvRIm5k7D9/ek0yC+C+30qfKQ
         iRLNP+g/+9TttErg/e2kN9/2iTIBOQSP+PJ50CfXfw00y9ev1krVAlKVQV143vLKDjB3
         aAamu+WTzFxIbkjpHASxAjjDZkIHPp6Az4OqLjo0aUP8vSqf4kNpgHIE88oO16+GrotT
         raNgHffLe/Ad3zO5/TgzK9e8AxLfsYx3BWU/+7LBymF+v6QZcreZooptSoMFecFU40H4
         B0JnzwO4ZUf2pHAghIRVxOM3ZIRiE1xeWWgDmwOXS+rZamI1VYKaqvD6sGzZInxRiYdt
         A3nA==
X-Forwarded-Encrypted: i=1; AJvYcCVkUnBuyHRymjR5+Bz7kw1u1SkR+KkKmSciM7FnCjqhsBfKZwcGIL+f6MOxZkTupz7vIlaU2qWlHdo=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyK2thDLCPM4YY8sgDT/cBhBGUX90j9YBtrpkk8DedYwT87FhDh
	UOHy9ZjITwxwq6NxtgI9/637srzzPWUcgWv18e0+Y8vTGiQm4148lnKHhnTE4g==
X-Gm-Gg: ASbGncsu9t3ukbNvuW4VwM/9gC+ZhkMuDWk0S58ssoGeWh5+T1tgj8yOr/PNIbmxBR/
	KD6jmCP+VuFp4O0AknLAwJb57lus9haFQrDLZdCd8N+17HQI6iEiX8eaUd0NwPZ3ggL++5DuvXk
	xhv0fOPeh2owqzl0r4VfM9r7O9VIAQhImhQU+pU8WuALRcmvveMNmRuwFuhJk4eVQ8lIAs9wZZU
	vg2mqJZuAzRzaHVEbshy9vkCaqtYKUjjvcHK9/Na/NGmynYd97YE2Ulo0TBp/0fUWghdqiN6t/Y
	SJaxGGm6rRMIHBYm615QNZbm57gXgceB0d65fpC9r1YqBlbxjjuUA+13hA1ZdHvXh48zX2xHd86
	7E6QNFu8oHicxGfMR19yK0B9tBQ==
X-Google-Smtp-Source: AGHT+IErNWXpyMTxwRgUr2hbvUpv+Fw/FkUwSN/akl0zSUlwJziWYsIpIgP7DRjTOhQ9UjJnd24fTg==
X-Received: by 2002:a05:600c:1913:b0:43d:24d:bbe2 with SMTP id 5b1f17b1804b1-43f1ed6e71cmr16549325e9.28.1744193106274;
        Wed, 09 Apr 2025 03:05:06 -0700 (PDT)
Message-ID: <223f03ce-e157-4583-9b64-3cff0cd5823d@suse.com>
Date: Wed, 9 Apr 2025 12:05:04 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] xen/riscv: Increase XEN_VIRT_SIZE
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <808d1b346bc90dde38fd19a6b92ab78d78e42936.1743766932.git.oleksii.kurochko@gmail.com>
 <e5f6ccb3-498f-44cf-8c06-61fa502d93db@suse.com>
 <f35a9969-6154-4e9a-b997-16ca135e85ee@gmail.com>
 <8b2e50f2-1f89-41df-be88-afc9ef24b51a@suse.com>
 <c3b1be9a-d5f5-4cac-a675-7485a99bf51c@gmail.com>
 <fde6c1c2-c439-4020-9301-025b7e8af804@suse.com>
 <3bd6cdb7-8de0-4559-bc56-b20c52fd73db@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: <3bd6cdb7-8de0-4559-bc56-b20c52fd73db@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 09.04.2025 11:06, Oleksii Kurochko wrote:
> On 4/8/25 4:04 PM, Jan Beulich wrote:
>> On 08.04.2025 15:46, Oleksii Kurochko wrote:
>>> On 4/8/25 2:02 PM, Jan Beulich wrote:
>>>> On 08.04.2025 13:51, Oleksii Kurochko wrote:
>>>>> On 4/7/25 12:09 PM, Jan Beulich wrote:
>>>>>> On 04.04.2025 18:04, Oleksii Kurochko wrote:
>>>>>>> --- a/xen/arch/riscv/mm.c
>>>>>>> +++ b/xen/arch/riscv/mm.c
>>>>>>> @@ -31,20 +31,27 @@ unsigned long __ro_after_init phys_offset; /* = load_start - XEN_VIRT_START */
>>>>>>>     #define LOAD_TO_LINK(addr) ((unsigned long)(addr) - phys_offset)
>>>>>>>     
>>>>>>>     /*
>>>>>>> - * It is expected that Xen won't be more then 2 MB.
>>>>>>> + * It is expected that Xen won't be more then XEN_VIRT_SIZE MB.
>>>>>>>      * The check in xen.lds.S guarantees that.
>>>>>>> - * At least 3 page tables (in case of Sv39 ) are needed to cover 2 MB.
>>>>>>> - * One for each page level table with PAGE_SIZE = 4 Kb.
>>>>>>>      *
>>>>>>> - * One L0 page table can cover 2 MB(512 entries of one page table * PAGE_SIZE).
>>>>>>> + * Root page table is shared with the initial mapping and is declared
>>>>>>> + * separetely. (look at stage1_pgtbl_root)
>>>>>>>      *
>>>>>>> - * It might be needed one more page table in case when Xen load address
>>>>>>> - * isn't 2 MB aligned.
>>>>>>> + * An amount of page tables between root page table and L0 page table
>>>>>>> + * (in the case of Sv39 it covers L1 table):
>>>>>>> + *   (CONFIG_PAGING_LEVELS - 2) are needed for an identity mapping and
>>>>>>> + *   the same amount are needed for Xen.
>>>>>>>      *
>>>>>>> - * CONFIG_PAGING_LEVELS page tables are needed for the identity mapping,
>>>>>>> - * except that the root page table is shared with the initial mapping
>>>>>>> + * An amount of L0 page tables:
>>>>>>> + *   (512 entries of one L0 page table covers 2MB == 1<<XEN_PT_LEVEL_SHIFT(1))
>>>>>>> + *   XEN_VIRT_SIZE >> XEN_PT_LEVEL_SHIFT(1) are needed for Xen and
>>>>>>> + *   one L0 is needed for indenity mapping.
>>>>>>> + *
>>>>>>> + *   It might be needed one more page table in case when Xen load
>>>>>>> + *   address isn't 2 MB aligned.
>>>>>> Shouldn't we guarantee that?
>>>>> I think it's sufficient to guarantee 4KB alignment.
>>>>>
>>>>> The only real benefit I see in enforcing larger alignment is that it likely enables
>>>>> the use of superpages for mapping, which would reduce TLB pressure.
>>>>> But perhaps I'm missing something?
>>>> No, it's indeed mainly that.
>>> But then the linker address and the load address should both be aligned to a 2MB or 1GB boundary.
>>> This likely isn't an issue at all, but could it be a problem if we require 1GB alignment for the
>>> load address? In that case, might it be difficult for the platform to find a suitable place in
>>> memory to load Xen for some reason? (I don't think so but maybe I'm missing something)
>> Why would load address need to be 1Gb aligned? That (as well as 2Mb-)alignment
>> matters only once you set up paging?
> 
> Mostly yes, it matters only once during paging set up.
> 
> I was thinking that if, one day, 2MB (or larger) alignment is used and the load address isn't
> properly aligned, some space in a page might be lost.
> (The word "should" above wasn't entirely accurate.)

Actually I think I was wrong with my question. Load address of course matters to
a sufficient degree, especially if at 2Mb boundaries to want to be able to change
what permissions to use (without sacrificing the 2Mb mappings).

Jan


From xen-devel-bounces@lists.xenproject.org Wed Apr 09 10:07:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 10:07:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.943746.1342391 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2SLF-0008R2-9q; Wed, 09 Apr 2025 10:07:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 943746.1342391; Wed, 09 Apr 2025 10:07: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 1u2SLF-0008Qv-5T; Wed, 09 Apr 2025 10:07:33 +0000
Received: by outflank-mailman (input) for mailman id 943746;
 Wed, 09 Apr 2025 10:07: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=IAcD=W3=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1u2SLD-0008Qm-P1
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 10:07:32 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on2062d.outbound.protection.outlook.com
 [2a01:111:f403:2414::62d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 719dffee-152a-11f0-9ffb-bf95429c2676;
 Wed, 09 Apr 2025 12:07:29 +0200 (CEST)
Received: from PH8PR12MB7326.namprd12.prod.outlook.com (2603:10b6:510:216::7)
 by SJ2PR12MB9113.namprd12.prod.outlook.com (2603:10b6:a03:560::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.31; Wed, 9 Apr
 2025 10:07: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.8632.017; Wed, 9 Apr 2025
 10:07: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: 719dffee-152a-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=tAnEnEuKHBifvZpxk0oDIV1V42eIFTvSme3whSjWqGLRBqT2Cbf7PgqeaE2NSZRyyuLOFmAWjsJqxT1Skvbq7iWKIurr59+jW6zg/WpsrbDONJFFGrA5IMkM46xMxmkTxl5Id6KJjhFIfp7xRb2KmSpuz3jU2gyi2PoIwExcGaSskx6Tl0E8ShORwdvTOOSUo7tH3uQQrT3K+oAI+GjDe/y9+lWq3ranXSPusmZ2IjIIuPvWHSORf7DBNc4R6EwN0cWr2ah4kf8baQ3Whtg8xDHS733NI1SqadzIuMpBoI/LlSt7k42QXQr89rSStBD/EIvqBpspk7XMGbeDVyHrag==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=itsvSOHDa/JofITWNJrqo7QvmHh5ZCvOhzeTlBr5pbM=;
 b=g3uMLeU9eDNuIz2v4Fkk36xkZvcejU1/I+WzIzU6vV0ysZOrdKzkv55ybuiwTR/82AykDALkX4dnEGnCMffFJhKZSUSg1VlvKt/2Tgfn3aojPQFBrDUNPjMuZEFgTFJ9byzWOI+bKnYxGN6aRELs07xK6zvSEB0UHNg4hFeFt4yTNcIoNyiaxfkSTbf5PK8QJTUGjmLrhb6xHSgX0Jb1MEiN16HKT5dSalQyaf/dPNF7jCOERZ3ZantYqR67Yam6y9it3pjznWSXMLiA3PILKsILYFhmRkKJ/Rnc9xG0YXUjjqDWZCCr7MU1InAOCzNvaHsv084HeaKyhCcJwqfx1w==
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=itsvSOHDa/JofITWNJrqo7QvmHh5ZCvOhzeTlBr5pbM=;
 b=IdG3Ru9k7Uhr2ID7+zByuiMZFxrxVyjawZ8SlQ9aWcaAnv242Fcv/JTuwQMV6YxKefiXTdi8n3aKkOpMvRdO3h9/Hc264mBVh5I5mTaEAZHEjN0+Qk98Z1cyTIQAokKNcg1wk2+ukBr/Qd84+w9Hpqpllt9okhin5MZHL/h6mB0=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <aded1d6f-0e6f-4903-a5a3-127e06e3803f@amd.com>
Date: Wed, 9 Apr 2025 11:07:21 +0100
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/7] arm/mpu: Provide access to the MPU region from the
 C code
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>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <Bertrand.Marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <20250407091430.2342709-1-luca.fancellu@arm.com>
 <20250407091430.2342709-3-luca.fancellu@arm.com>
 <0acf63c0-267e-44c0-b629-fa576307497c@amd.com>
 <1AC85CBD-02B1-4AA4-B9A3-68DFC06137AA@arm.com>
 <4f860a56-5536-455b-9490-196bfc220556@amd.com>
 <40C7A4DC-0216-4981-A501-AFDA0E8671DD@arm.com>
 <9f637d98-c8f8-49e0-9f0a-002cdfefc296@amd.com>
 <EABA5C5E-4FE3-4E7A-8E29-B37A4CFCC18D@arm.com>
 <F2C6FC52-386A-4417-B592-151ECE079E52@arm.com>
From: Ayan Kumar Halder <ayankuma@amd.com>
In-Reply-To: <F2C6FC52-386A-4417-B592-151ECE079E52@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0463.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:1aa::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_|SJ2PR12MB9113:EE_
X-MS-Office365-Filtering-Correlation-Id: 8eb84d9a-746b-477e-9027-08dd774e53bb
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?UHl5ajBBRU5jR0tLNk5BUDdPTkNIaUp4KzdicFE5YmplWHBpeUIyWUJTc3By?=
 =?utf-8?B?SXp2aGc1YUFmMTlJb3p6UGY1dHJHV1FPcnRYdDZPL0oxSzRsU0lCVFlsTnU2?=
 =?utf-8?B?d0lsd0h2WkVOTmdiSi9UZ09qdnVZTjZyRTdNOU9Dc0JZc1NXekx6eEpmSXBW?=
 =?utf-8?B?bXo3NkpDSnBSdk44UzFDVGZ2bC8xc3pia09lUUNKNXZ6a25XL0dia0hyNU8z?=
 =?utf-8?B?S3JPNHFJeEpiSS8zUmNSbjhUc0UxU3FWWFpTT3VBVmFzd28yTlZCN2w1cEFS?=
 =?utf-8?B?KzVnc2V4U1RhbVZucnIrZG1vWHpGM1ArZHhKZzk3TmRaUkdWc2xUS2w0dEpz?=
 =?utf-8?B?VVJiZHNkeElIOGgyNGFLNnQ2MGpOT3pvZE42eExoaFRWb2lzL2dXZGFMbUFl?=
 =?utf-8?B?YS9MQnIzZHhpZ21iYU5DaFFWRXFveVJUSHJpRSs3R21tcktYMXdFcGRtMmtC?=
 =?utf-8?B?ejRxaVlJcW9qTlh4Q29vbHpJSTZ3RTZ3QVBRbVd5bWNQMmFEcWxPZjlrOVlZ?=
 =?utf-8?B?WlZYNFQvc1AzWjJmWDJLdFU5U0FPTHpKR0dMOFVSMG1qOEkzMTJvT21kcjJW?=
 =?utf-8?B?N01sYjA3ajZIRVRKckdod3lWbmxhYWxKSXlVWHZLM0xJbnZvd3VHR1dmUm82?=
 =?utf-8?B?TWZnYUx5WHBmcUoyaHVIR3BmajZteGF2cE9qd1ZnVEZmMlBhSzQ2Smc3WHNt?=
 =?utf-8?B?Zm1ld2grR2V1RVRJRkNqUUg3REJnTm5nTEdEaHp6RFVsSGh0T3I5dldYOXJ6?=
 =?utf-8?B?YjFZYS9YOTdjZTVQdVB5Tjk4MkdUOC9NM0JQa25xWXlWZEJvMnRLMVJweWx2?=
 =?utf-8?B?SHBTdU5iVHBTR0M3WlprdUFRNVRNaVZBR3FwNU1wK0ZvK0ErTTB2N3I4N0Jo?=
 =?utf-8?B?RmpIa0xDZUpUWTV5NEVMT2FRR1A1MFl3RXM4V3JXaHlkeW0zWUQxZmIwdnlH?=
 =?utf-8?B?endpWldMRlI0aUJ1YVI0R1RtdHhxQ1pjTENQcWEyU3J4V0R6TWc3M3dDT1Qz?=
 =?utf-8?B?dWZnbENEejRkbzVOeHROdE5vZ3lHVVVFQVVNclA4aXBRaDNjNXRqUEJYc3Jv?=
 =?utf-8?B?NDhqck5iMWRjaFBOam4rN3NhSkVSR0VpYkZoR082R1RLbzhBY2hLU0Zwakgy?=
 =?utf-8?B?L1NvQlFLanc4NUlPM2RJb2FtTDdOWU5OS1lEbzVzWDVKNU1QQlkxcmV2Qktv?=
 =?utf-8?B?dERVRE5jcDJISTVLRDRWVGptcis0TXhGZURzT2FxNS9hMUFUMjhBUmY5YU9a?=
 =?utf-8?B?RGlBcDRHb2RoRDFCOCtYMlorSy9rWnpjcXFnaUhUdm9iK0FmZW9EaVNIaDRl?=
 =?utf-8?B?MlZzbTFFbXFHRS9WYUVtNGNjZ0w0NUdPWkV4Rlh4ZGh4cFN6TUhocGsrUFov?=
 =?utf-8?B?UnpzR3RhV0JjMGVtcVA1NWt0aWJaUE92UmhyN3pxUm8wRnVqNWZtemIyTjdl?=
 =?utf-8?B?b0tWUW9kSVNtRGVMbm93R0RNTG9iVmtPa25mWVprNDljV0JCZ2JELzFBbXIv?=
 =?utf-8?B?YVNDeHF6QUtXd29OYnFmc2wxdE5CTVhBU1Rzb3JFWTdPNW45bC9kOUZwSEF1?=
 =?utf-8?B?bnVtdGwvbTd3dHlqUURQSkZaNkhpdU1KTVd2Q2IwelFoMVpGNkltVXJ2ZTM2?=
 =?utf-8?B?Sll2WlFtc2tYenRhalJjWTVPelhZdHI4MU9iaWRVdFc5bGdjdHBhNjNjT2U5?=
 =?utf-8?B?REJKc1hwMElNa3I5MVFtOVZIN2xCZVI2NTRsVlFUZUtCL3Vvd0V5NVNvb2F0?=
 =?utf-8?B?SjQ2SXJabXJGdTkwTTlXY3pKMFR5Rlo1M09JdzRZU3pwVW4xV2c3Q3JvNXc1?=
 =?utf-8?B?Z290UWd1ZFdHSHc3aHdyMXRhcUFVSmRaSGtvNWgySjA4TzJxTGZPN1FINWxX?=
 =?utf-8?Q?ztNhEeX+7wOiG?=
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?TUVwMHhlbUttaXRzSGJNTEtSRTlsZitlZFRrWUIzUnJiOU5sR2diV3lNcnhP?=
 =?utf-8?B?aEFJc2NNdkFoc0hoYUU4MlhFNkVHenExUnlkRHkxUHU2NU5hQldCYzF5S25E?=
 =?utf-8?B?cGRXYjlUbzdVWHVOYVhHVzY3MnYxb3B5cmtua1IzMllmazhWb0d3WlBHOUNL?=
 =?utf-8?B?UEh5UUJ5SjF6cXcvUDFOdnhjaWs2WTJFc0lrRklIUzhmeVEvR3RlcUdHbzJG?=
 =?utf-8?B?Wk5uL3BFdjVNZzFpWEEzRUN4bHA2WWZ4NmE2QlJ5SFJoNStodTJYdTN2SDN0?=
 =?utf-8?B?TGtNT0MrVXY2WTdHbXFTL1RnUE9Zb2VxR3krNWY1RHJUUUU2NEU0RFFDMjAv?=
 =?utf-8?B?Y3NxeUdWUDJteUQ0MUVRajZnVzR1dnYvTHB5K3hnejhrcm84S2xrcWw3clE1?=
 =?utf-8?B?bnZFSXVuSTZpSzNzZm5aQm8wakJTZG0rOHB4bktTa1FhUkpYWU9IaFVTS2x2?=
 =?utf-8?B?Q2VqTlJPRXE1US95TjJ5OFhVWFJCL085SmZZZVZaNGR6dzJPbzd5Y3ljTUpl?=
 =?utf-8?B?enExSktSSXpUcEd5OEUyc3llZE5qNHZBWXAwcWJWUkY3c1Mrekl6czNPMXFl?=
 =?utf-8?B?aTRoUkFrSjZvMmJKc1NzYnR3cUZTNUluL3daSnJocFNaK1FGUktWTjQ1aVlD?=
 =?utf-8?B?c09SS3JIVHpNNUFtZWxyWWNRZG5nUFMwdzU0ZVp3ZjdiNks5cFd4dzJRV0Jq?=
 =?utf-8?B?NEovc2dCa3hmd0orS0hkVTI0aEtrK0s3eGNmdVFDUVJvNUd6cTdGRTB5UUZD?=
 =?utf-8?B?N3dLQ3lNdUZVTXFpeStpckVFa3F5Qzh0aWV2eTc1amk2Y2tjeVVha2dFQ2FR?=
 =?utf-8?B?ZGE3RWE1UWVQUE1GQ056ZTRSdUErYXYyWU1obElHallNQWduT3MyQ1FDVEJw?=
 =?utf-8?B?M3VEUWZIbjJLYkh1ODlaR0I0S2VITGJmUVFRdk1OYzJJeTZnWDlRTDU4MUY0?=
 =?utf-8?B?c1Jzbmd1S2NjajVVMnp6amtNMGxMTWQrdmt2V2dxaEZoTGpLVmlYekVtd3FP?=
 =?utf-8?B?b1VhRmNyU0RKUFR0aGFDVVFEMXdUeEE0Zzl4OWRmTWxTcERyY245dmhMSldZ?=
 =?utf-8?B?THZ0MXRtMXhBU3YzTlE1QnpMdzQ3Q1Q3d05sRkNZN3Z2WVNZUlFxVko0NjJK?=
 =?utf-8?B?RUNDa0pHdXE1ZDNSSmVGTTVBUHlES2tXQ3NvNlBHd1YwY2xOdmN3VGZIWW55?=
 =?utf-8?B?ZzlORjZHSW1aVkJOV3RMNm8wMkFReWJaRzByY25aMS8rRWZPQ3d0YVAyWUtJ?=
 =?utf-8?B?T3RET256bVUwVEFRT0xnamdDSE1vR094VEdNQVRwY2d6dDJnWFhCc1dpb243?=
 =?utf-8?B?SWtlUGF0ZGFDV2NwTm1JRkRpdlFSOXdoVWo0YzRWYjlaQWMzc1EwV3J2NnZo?=
 =?utf-8?B?MDNvaGFNa0FrcDdLT0pPdUl4L01Ra3VPSjhXWS96WlBGRG9BN1pHa3FlMFNC?=
 =?utf-8?B?bnFsemhscHZxK3NXc3ErcGhXSjRYbkRHTmdHRktqb0tYUEtVVmhZUzJuY1dY?=
 =?utf-8?B?RmVYdDNyNHNmSWU4czA1QjJ3ZlJlTzc5VllqRkR3RGdHY1p6NE9pUWJUc3I2?=
 =?utf-8?B?dUFqdU9HRmVjajN0TTVsbDc0UFpuS0V0Smt3ZlpwYjB6Q0FielZieFZoVGFS?=
 =?utf-8?B?dnRoN1RDTVZvT0xzd0VCc3NwdmkrNmp1WVNrZXFoY05hZkNhUkVCamNKdlNF?=
 =?utf-8?B?SUphZGtvK1V6UmNqa01xbDRNSTZ3ZS8va1NpdkxJckxqSkhOT213Snl1c1VM?=
 =?utf-8?B?ZnZzRGxROEhjM0VONkcxQXUwYmpBR3VTNTdxSmtvMUhGYXFGQmh5aUF2QzVy?=
 =?utf-8?B?TjZiclVQVlVzeU1NbEppYUNhU3R4S0NBWXpCN3hMaXNpMEZDeis0TzFob0dG?=
 =?utf-8?B?NHpBWGc2c2ZUTGhBVUxhZUxwc3VEWlZtU3BuNHhGbWJPOEk4ZlpoN0xNTkhS?=
 =?utf-8?B?T2VSMEFsR1p0V2JWdHEvZVJqTVRDZ3RDeTlzQWtqT2tFTG1TTytkWHlad0dr?=
 =?utf-8?B?MmlNNC80UENIa0w2bnNzVEFVZkZINkFKWnhSWE9DbDc4R0RkUW9pZ3Z1MnQ0?=
 =?utf-8?B?NzNVVmFZTTZHZEhZWGVoQWFWcjAyRk1rWHBVVTFBeVczdmtzZEdwNjM4L3Fp?=
 =?utf-8?Q?KlZqFiCfeZO8jV6PaqdM1EE4p?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 8eb84d9a-746b-477e-9027-08dd774e53bb
X-MS-Exchange-CrossTenant-AuthSource: PH8PR12MB7326.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Apr 2025 10:07:25.4800
 (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: X12ne5eGNjx7MWemsxJR+5Lj7GFHtIpeqdKG9407Z+EDEfpFhJyX+bx3aiwt+TMOU1Iw6tUc/r/LHYkF8G7r3A==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR12MB9113


On 09/04/2025 09:26, Luca Fancellu wrote:
> Hi Ayan,
Hi Luca,
>
>>>> The point of the code was to don’t issue an isb() every time we change the selector,
>>>> of course the code would be easier otherwise, but do we want to do that?
>>> Not sure if it is beneficial as you would need to use isb() from region16 onwards.
>> The isb() is issued only when changing the selector, so when you go from reading/writing regions
>> from 0-15 to 16-31 for example, of course there is a case that if you continuously write on region 15
>> and 16 you would have to always change the selector, but it’s the less impact we could have.
>>
>> armv8-R is even better since it’s able to address regions from 0 to 23 without flushing the pipeline,
>                   ^— aarch32 :)
Can you point me to the document where you got this info ?
>
>> so I would say we should exploit this big advantage.
>>
>> I’ll send shortly in this thread the code I would use and the code I was thinking you could use.
> Here the code I have in mind:
>
> static void prepare_selector(uint8_t *sel)
> {
>      uint8_t cur_sel = *sel;
>      /*
>       * {read,write}_protection_region works using the direct access to the 0..15
>       * regions, so in order to save the isb() overhead, change the PRSELR_EL2
>       * only when needed, so when the upper 4 bits of the selector will change.
>       */
>      cur_sel &= 0xF0U;
>      if ( READ_SYSREG(PRSELR_EL2) != cur_sel )
>      {
>          WRITE_SYSREG(cur_sel, PRSELR_EL2);
>          isb();
>      }
>      *sel = *sel & 0xFU;
> }
>
> void read_protection_region(pr_t *pr_read, uint8_t sel)
> {
>      /*
>       * Before accessing EL2 MPU region register PRBAR_EL2/PRLAR_EL2,
>       * make sure PRSELR_EL2 is set, as it determines which MPU region
>       * is selected.
>       */
>      prepare_selector(&sel);
>
>      switch ( sel )
>      {
>          GENERATE_READ_PR_REG_CASE(0, pr_read);
>          GENERATE_READ_PR_REG_CASE(1, pr_read);
>          GENERATE_READ_PR_REG_CASE(2, pr_read);
>          GENERATE_READ_PR_REG_CASE(3, pr_read);
>          GENERATE_READ_PR_REG_CASE(4, pr_read);
>          GENERATE_READ_PR_REG_CASE(5, pr_read);
>          GENERATE_READ_PR_REG_CASE(6, pr_read);
>          GENERATE_READ_PR_REG_CASE(7, pr_read);
>          GENERATE_READ_PR_REG_CASE(8, pr_read);
>          GENERATE_READ_PR_REG_CASE(9, pr_read);
>          GENERATE_READ_PR_REG_CASE(10, pr_read);
>          GENERATE_READ_PR_REG_CASE(11, pr_read);
>          GENERATE_READ_PR_REG_CASE(12, pr_read);
>          GENERATE_READ_PR_REG_CASE(13, pr_read);
>          GENERATE_READ_PR_REG_CASE(14, pr_read);
>          GENERATE_READ_PR_REG_CASE(15, pr_read);
>      default:
>          BUG(); /* Can't happen */
>      }
> }
>
> void write_protection_region(const pr_t *pr_write, uint8_t sel)
> {
>      /*
>       * Before accessing EL2 MPU region register PRBAR_EL2/PRLAR_EL2,
>       * make sure PRSELR_EL2 is set, as it determines which MPU region
>       * is selected.
>       */
>      prepare_selector(&sel);
>
>      switch ( sel )
>      {
>          GENERATE_WRITE_PR_REG_CASE(0, pr_write);
>          GENERATE_WRITE_PR_REG_CASE(1, pr_write);
>          GENERATE_WRITE_PR_REG_CASE(2, pr_write);
>          GENERATE_WRITE_PR_REG_CASE(3, pr_write);
>          GENERATE_WRITE_PR_REG_CASE(4, pr_write);
>          GENERATE_WRITE_PR_REG_CASE(5, pr_write);
>          GENERATE_WRITE_PR_REG_CASE(6, pr_write);
>          GENERATE_WRITE_PR_REG_CASE(7, pr_write);
>          GENERATE_WRITE_PR_REG_CASE(8, pr_write);
>          GENERATE_WRITE_PR_REG_CASE(9, pr_write);
>          GENERATE_WRITE_PR_REG_CASE(10, pr_write);
>          GENERATE_WRITE_PR_REG_CASE(11, pr_write);
>          GENERATE_WRITE_PR_REG_CASE(12, pr_write);
>          GENERATE_WRITE_PR_REG_CASE(13, pr_write);
>          GENERATE_WRITE_PR_REG_CASE(14, pr_write);
>          GENERATE_WRITE_PR_REG_CASE(15, pr_write);
>      default:
>          BUG(); /* Can't happen */
>      }
> }
Till here I am fine if you think this is the correct approach for arm64.
>
> Here the code I thought you could add for arm32:
>
> static void prepare_selector(uint8_t *sel)
> {
>      uint8_t cur_sel = *sel;
>
> #ifdef CONFIG_ARM_64
>      /*
>       * {read,write}_protection_region works using the direct access to the 0..15
>       * regions, so in order to save the isb() overhead, change the PRSELR_EL2
>       * only when needed, so when the upper 4 bits of the selector will change.
>       */
>      cur_sel &= 0xF0U;
>      if ( READ_SYSREG(PRSELR_EL2) != cur_sel )
>      {
>          WRITE_SYSREG(cur_sel, PRSELR_EL2);
>          isb();
>      }
>      *sel = *sel & 0xFU;
> #else
>      if ( cur_sel > 23 )
>          panic("Armv8-R AArch32 region selector exceeds maximum allowed range!");
I am not sure about this. See my question before. However ...
> #endif
> }

 From ARM DDI 0568A.c ID110520

E2.2.3 HPRBAR<n> - Provides access to the base addresses for the first 
32 defined EL2 MPU regions.

E2.2.6 HPRLAR<n> - Provides access to the limit addresses for the first 
32 defined EL2 MPU regions.

I understand that HPRSELR is not used when directly accessing the above 
two registers. Thus, this function will be a nop for Arm32. Please let 
me know if I am mistaken.

>
> void read_protection_region(pr_t *pr_read, uint8_t sel)
> {
>      /*
>       * Before accessing EL2 MPU region register PRBAR_EL2/PRLAR_EL2,
>       * make sure PRSELR_EL2 is set, as it determines which MPU region
>       * is selected.
>       */
>      prepare_selector(&sel);
>
>      switch ( sel )
>      {
>          GENERATE_READ_PR_REG_CASE(0, pr_read);
>          GENERATE_READ_PR_REG_CASE(1, pr_read);
>          GENERATE_READ_PR_REG_CASE(2, pr_read);
>          GENERATE_READ_PR_REG_CASE(3, pr_read);
>          GENERATE_READ_PR_REG_CASE(4, pr_read);
>          GENERATE_READ_PR_REG_CASE(5, pr_read);
>          GENERATE_READ_PR_REG_CASE(6, pr_read);
>          GENERATE_READ_PR_REG_CASE(7, pr_read);
>          GENERATE_READ_PR_REG_CASE(8, pr_read);
>          GENERATE_READ_PR_REG_CASE(9, pr_read);
>          GENERATE_READ_PR_REG_CASE(10, pr_read);
>          GENERATE_READ_PR_REG_CASE(11, pr_read);
>          GENERATE_READ_PR_REG_CASE(12, pr_read);
>          GENERATE_READ_PR_REG_CASE(13, pr_read);
>          GENERATE_READ_PR_REG_CASE(14, pr_read);
>          GENERATE_READ_PR_REG_CASE(15, pr_read);
> #ifdef CONFIG_ARM_32
>          GENERATE_READ_PR_REG_CASE(16, pr_read);
>          GENERATE_READ_PR_REG_CASE(17, pr_read);
>          GENERATE_READ_PR_REG_CASE(18, pr_read);
>          GENERATE_READ_PR_REG_CASE(19, pr_read);
>          GENERATE_READ_PR_REG_CASE(20, pr_read);
>          GENERATE_READ_PR_REG_CASE(21, pr_read);
>          GENERATE_READ_PR_REG_CASE(22, pr_read);
>          GENERATE_READ_PR_REG_CASE(23, pr_read);
At least 32 regions are directly accessible, thus thisn should go till 
31 (0-31). Same ..
> #endif
>      default:
>          BUG(); /* Can't happen */
>      }
> }
>
> void write_protection_region(const pr_t *pr_write, uint8_t sel)
> {
>      /*
>       * Before accessing EL2 MPU region register PRBAR_EL2/PRLAR_EL2,
>       * make sure PRSELR_EL2 is set, as it determines which MPU region
>       * is selected.
>       */
>      prepare_selector(&sel);
>
>      switch ( sel )
>      {
>          GENERATE_WRITE_PR_REG_CASE(0, pr_write);
>          GENERATE_WRITE_PR_REG_CASE(1, pr_write);
>          GENERATE_WRITE_PR_REG_CASE(2, pr_write);
>          GENERATE_WRITE_PR_REG_CASE(3, pr_write);
>          GENERATE_WRITE_PR_REG_CASE(4, pr_write);
>          GENERATE_WRITE_PR_REG_CASE(5, pr_write);
>          GENERATE_WRITE_PR_REG_CASE(6, pr_write);
>          GENERATE_WRITE_PR_REG_CASE(7, pr_write);
>          GENERATE_WRITE_PR_REG_CASE(8, pr_write);
>          GENERATE_WRITE_PR_REG_CASE(9, pr_write);
>          GENERATE_WRITE_PR_REG_CASE(10, pr_write);
>          GENERATE_WRITE_PR_REG_CASE(11, pr_write);
>          GENERATE_WRITE_PR_REG_CASE(12, pr_write);
>          GENERATE_WRITE_PR_REG_CASE(13, pr_write);
>          GENERATE_WRITE_PR_REG_CASE(14, pr_write);
>          GENERATE_WRITE_PR_REG_CASE(15, pr_write);
> #ifdef CONFIG_ARM_32
>          GENERATE_WRITE_PR_REG_CASE(16, pr_write);
>          GENERATE_WRITE_PR_REG_CASE(17, pr_write);
>          GENERATE_WRITE_PR_REG_CASE(18, pr_write);
>          GENERATE_WRITE_PR_REG_CASE(19, pr_write);
>          GENERATE_WRITE_PR_REG_CASE(20, pr_write);
>          GENERATE_WRITE_PR_REG_CASE(21, pr_write);
>          GENERATE_WRITE_PR_REG_CASE(22, pr_write);
>          GENERATE_WRITE_PR_REG_CASE(23, pr_write);
for here.
> #endif
>      default:
>          BUG(); /* Can't happen */
>      }
> }
>
> Please let me know your thoughts.
- Ayan
>
> Cheers,
> Luca
>
>
>


From xen-devel-bounces@lists.xenproject.org Wed Apr 09 10:11:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 10:11:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.943760.1342400 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2SP4-0002s6-Pb; Wed, 09 Apr 2025 10:11:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 943760.1342400; Wed, 09 Apr 2025 10:11:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2SP4-0002rz-LO; Wed, 09 Apr 2025 10:11:30 +0000
Received: by outflank-mailman (input) for mailman id 943760;
 Wed, 09 Apr 2025 10:11:29 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Cwso=W3=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1u2SP3-0002rt-8X
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 10:11:29 +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 ff61ac26-152a-11f0-9ffb-bf95429c2676;
 Wed, 09 Apr 2025 12:11:26 +0200 (CEST)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by AS8PR03MB7718.eurprd03.prod.outlook.com
 (2603:10a6:20b:402::23) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.34; Wed, 9 Apr
 2025 10:11:23 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e%5]) with mapi id 15.20.8606.033; Wed, 9 Apr 2025
 10:11: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: ff61ac26-152a-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=dugBDF4+4VNS0EQa/+M4xaIzUUe6W6giLg3brpmj1AYszEoI7dlFZEt0QAS4kBuWAv4j+MvsXHpIJT8xPV0aOH3HQM4gtdAvCMSZBPW7FdI+SErqMyACbDWwfEiINlfFzmBpoNnfBd0StKK9p4JlYR/lb8wT3QD4Yjj2HUbnqsMxM0S/VmlJWINUYeNjreq0yLt7WTXNZP/8pUJ/HzHfX9EDSie3F3/2NF+RWX3V5LFs9KK9v1vvgV2w8fJx1eYlsyv6oDIq1bX0sCmtUkFMlS6fvB/6FV1c9Nzu+8fgUzXQVaAfIP5AKbdXGNL84SXXi41sRk+mKAtGwOWhwo8xxw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=LqWWxpDoYDsBPgqho41u5hwxdBWPF+k3b6j7HgGhvwM=;
 b=ySXbc+Uamzr2Q3ZmpeP8IZInTkNX/g9EDMGgrsh22X24ZIBSyIxNmqO2XQzsTPaXvYJHtq7YBToo9j9FEJiPWJAASV7W/9sNQC/WdM8ahp3dHPwk5gLa+RmoxenO89bJ+uI9yw0xBF5CHl2v+LrcbJbEG0AVgYAqkGwoNCXpcOlsCUZKlhZD+h/CbRa8E/WLUOeO/eEO++8zRX20Q+Nv6tBaw0N7vRRm4spV5B/AgHkmBcO7MjLX0sQwKtADK/o4j1Qc6ZDaCTu6stMQ7Kr99WjHF2z7MZgdyBL7tqdktX3qpTorWB8Kp0i3uREfXBbEg8St5YrAU69U3blEktkFuA==
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=LqWWxpDoYDsBPgqho41u5hwxdBWPF+k3b6j7HgGhvwM=;
 b=PopLVEFMw6CtjarbLXMJH/y2OXcc2RF/JUl1UTkLMUnqPAk36I963KmGsPCeT9uDdGMFyyyuLCQshDzTGnV5S6JiQ3ZcageeobleOuEB12OIx1t83X+48iazLMqonv2mdU9UifAWBS6CbvzaL8E9ILcBc5OQi+3XidJBnM/EMFIuI7FlKUCXe7LtJlzKMWI3UVbDDv3bcIlhwdIxgdJbQi1x0BWK67pDckwLCysWDt694GmUukQgnpd4rr6p/v4Wy2Ci1FhGiQERtNcaa95sZZD76TMjsE7NpLvfNaKK7FLWT6uAThwHs6wJyLVr959Q2r1TqGoawJ0P9hmZ8df6Rw==
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>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, Julien
 Grall <julien@xen.org>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v5] xen: debug: gcov: add condition coverage support
Thread-Topic: [PATCH v5] xen: debug: gcov: add condition coverage support
Thread-Index: AQHbqTe/Csu/ncsNI0mulEQya+sOaA==
Date: Wed, 9 Apr 2025 10:11:23 +0000
Message-ID: <20250409101105.2733236-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.48.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_|AS8PR03MB7718:EE_
x-ms-office365-filtering-correlation-id: de90aab4-7977-4ff8-fc7d-08dd774ee199
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?07WlaSmorn+BTWPHbUntTo5+JBYF8VwenhPqgvVQY1SYGAS+5scW0+jPiP?=
 =?iso-8859-1?Q?22WoDwwZa5sQe+ttJsM74bYR4xKCXECbFQI3fGDZBYxE7ZKIs25mB3G8HJ?=
 =?iso-8859-1?Q?xjsnNSnX56vnsUNBbtRMgaDazREHXz0UN0UH6odpNVAJ0OC883NLQ38H+7?=
 =?iso-8859-1?Q?1PTKQ40v88e2JECXpfulWSIckA/1lSNeq99S+y6J0yEMvvqJCMUj7/GKEO?=
 =?iso-8859-1?Q?xj5ykgtu9GDTXnU0QQR3iDZJax0z2FDVaNwx1eEKM9zZGOI/HGCBnIfhaS?=
 =?iso-8859-1?Q?asxbWehEt/NghMKgpa8dV3Wccb6eGpouIR1/rH5DH0G5QcUY0zCfKVZ56R?=
 =?iso-8859-1?Q?LEq97s4fLB3bAvEn1l9GTn6C113TWE3cC5RnZkOPPU/svJvxLcoM+j0lzt?=
 =?iso-8859-1?Q?eQkDDHJU+ALDCPkYNBHg8ozB7J6UTQtSA92z795W2zthLFFPppnLqKsafK?=
 =?iso-8859-1?Q?WJDbHcW5tAb7EfBNbyBOQEp6dU8VXzExSi1DUqtJHW6TOVAlE0c00Vtl0a?=
 =?iso-8859-1?Q?pv2/YFy9pSqqJ7muOgBEgzhoGEeIY/H+Ksv/rA/9Qu4TXcowBWrGqfWFSX?=
 =?iso-8859-1?Q?x367uF4n3076acmaNtzml6hnDjPIrdjvmOjoLSnZ4yFN9D3vZCWp/5sK91?=
 =?iso-8859-1?Q?Bry+ZmavN4w/y5933m3iNhL7y25VFiB7XwHyfYqAZd6v6ecDnAw2JbP1ER?=
 =?iso-8859-1?Q?sYwcxQu4orJlBBvOZUgm9R0RiSC9xiIZoQ+arohjoGucsgB7M6CwB8yJn+?=
 =?iso-8859-1?Q?tFuC2GS23Tlq5nKgOPMoWZ08mPKLIl4eO8KQuwiK9grtoOCWzgYnQG+/5D?=
 =?iso-8859-1?Q?zp7WBuxAwscVsubwAoAaSdcRdQyHpQtwGvcsPdGI6oVRwOO6IC0+6qcMi6?=
 =?iso-8859-1?Q?DYxT12IQLb7M2iTQWrZmaG2lvlOrhyCZZUlbXVns7w8EGsiMzcefgkcDna?=
 =?iso-8859-1?Q?un3iQdcbnNRuZuN/olc24XCq+/8ZblYPI7KQrTmBYYP3HxAV9uELjoPvj5?=
 =?iso-8859-1?Q?jvHuRM4LMrCR4rh0Fn/k7+GmYM91lqtpy6wNEfnn+STFL/jF3g+VoOxKxT?=
 =?iso-8859-1?Q?8f8Rq+oeoz5VHTwmqTwtRAvkdXjyswh69fMDNVqkfzf6iJ/5ZYPitdb7hU?=
 =?iso-8859-1?Q?mwtbYWyd1ZyVctCUlKFFv8xcnTJu57PGSZQ56SrDkPfbRXVdhZ0INTBuBn?=
 =?iso-8859-1?Q?ve/CHN6mQhG4h1CHuDvxm05KMnHij9aYDzIFDUJZCIDE9r8OV8CpaJqSG6?=
 =?iso-8859-1?Q?1+74DcvwZRV4BDXZUCOSbWZQCvgrFPhyCk3skwmoMonfy7KjWdZLp3GHwq?=
 =?iso-8859-1?Q?V8JpigA4FK+V2l9OjXqWHCluyB7ehvhWS2vnfpPr8Vf9E62IYEFUWAR9G3?=
 =?iso-8859-1?Q?jnU3iWBt8d+j+e8Ni9bQ8NBjKQt4Xv52wuYtOUtn+sHxGg6I1DK0cb7Czj?=
 =?iso-8859-1?Q?mrDJhpp7IXhAwZW/1iDGZcFsteCpxDUBGQDyqmpLfEnBdR73ENBzYRPZBH?=
 =?iso-8859-1?Q?NGDEwqHRDXSWEfUugJ1UUDHXvCUsOwpzpJYYUSoq+l2t340iMSa6YRoprN?=
 =?iso-8859-1?Q?Pa/NivM=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?yXwCLoLu1ZkpjvREFC64bZ0sP3qD9Db+LMdRZlIsAAemucYId5ULUXVpzB?=
 =?iso-8859-1?Q?0HJo9w0wn01OSat8/TqA1YDT2VlJmap8+aaSkvGy6eMfXs0FHvwmOzc8hh?=
 =?iso-8859-1?Q?6u3M5haXtLEt9k1VkAD2FePtS4FW4Tbungt0fspbd6NPAxRFcDeUm+2tTb?=
 =?iso-8859-1?Q?Xy4aniOg13cVpYZ8FzWrm0OdRopkePDhZPdSxcoomythHQrqapR/4t/jwW?=
 =?iso-8859-1?Q?3vNtwimaxHg1o8zpM+3zpTship5dfXQ9I/mc2nrAzHkZwVPwqDU8GrfavU?=
 =?iso-8859-1?Q?0VQd+pJJfyvgjZwdt9WzyYvO5Bl/qwl4iRXU5cz3v4IH8Ncjj/aP1otL8k?=
 =?iso-8859-1?Q?VOBVSfvyOtsWGKc1/H6Byw8vcqjPtbKEhyywnbu1EI5FiLcbQ3F/5Fo+WM?=
 =?iso-8859-1?Q?ejc/Hoe8FxPTV4CQX2VDYhOuIUqBn9ne4mFuXVLZd1wygBsrdVwhyuDuKK?=
 =?iso-8859-1?Q?RGAZGFzceSLGJUm7N7nOCJvR1MUpvph00J++MJAurApBzxRxD5sX/xvFwg?=
 =?iso-8859-1?Q?gdxRH2FgQJifcaGLzUJ5Ipu956anRwDpzRshTnadNSogZE0Lj7wJcH6Ovd?=
 =?iso-8859-1?Q?2sg0KJGl6w2IfPg3BBKwKfSDJDNQXQAqe4SpHUHRQxtF9v6pssDd0AyxsQ?=
 =?iso-8859-1?Q?z5/mWhynpIzj4Yo8SH+ZyZUgp2oYFHYIf4u7EKKphzdEyNx/DWOclndjqO?=
 =?iso-8859-1?Q?bAzYMFdOsXLNbfU7T4LMoJCLyaP7MHaHXQR0X6D+POK+Q+dmVO/6nzIhG0?=
 =?iso-8859-1?Q?88w6+5Ozvf4T5cRNw2Y9iSwRZ48l+/9v4tr39jnvtxY7ZaYAvbIuq9NRBb?=
 =?iso-8859-1?Q?p4DOOKCbSTrf+gz3vnv2LZzVsFTEzNv9llh2OvrFrjYWMKHKN94hel84ok?=
 =?iso-8859-1?Q?b1M9mTsox9SnqTGc/7oxih+4ejgBDaE1W0lFEr8C8+0HvrnoM55C6FYCj3?=
 =?iso-8859-1?Q?Z6rAbuBZ55YyqcqU3uTDAh9mACST5HkkC4/ln591UXxwn/ABv7NtMqFKk2?=
 =?iso-8859-1?Q?YbCcOFC662ce8NB49sCU5QzXme1ld2jb60ooOoRt5O/5xG4fZadEKSmRfK?=
 =?iso-8859-1?Q?zMubEdoLECKLJKHwNBwq6htafU/fDlUzEZN0S1/MN/dzS4lIbzKkJ29TiV?=
 =?iso-8859-1?Q?eQPeFe5NPWTFry1bT7uxVlDUVcogqtn1P1KlmHk2ltBMXlh0tpSQ0QXGQW?=
 =?iso-8859-1?Q?VVD9JLiprL6qMnoacq8YRCzJvIR5ShYDykQAGJ808bOfNYyB8gsICuH+g4?=
 =?iso-8859-1?Q?b+Jk9t0rwgkkG5xLVtyVoB9/RSwvYAb8/9RDRlFTTbGyEbtwPSk93hIaju?=
 =?iso-8859-1?Q?To2avUXPhfhNCG95nYLyT7e6VxeEnkSFGCKTrPMrKZIhP9ZrCe8SgCYCKF?=
 =?iso-8859-1?Q?yvOhYQOC1zumGxV2JAA8IBdm/QEowuqRZQd4A2wMkZXTzXxfdbs3NZCIF0?=
 =?iso-8859-1?Q?Ul/rBBSCoXkeqQUrwtvghoVBc30RAyd7K7fS1H8wULFkUCb2qjNDZUqF9R?=
 =?iso-8859-1?Q?m4RYGSlk8Sl2ljTznZJtNbR4Fw2+++dzzSb7T8C/nxFsgR7S4+YSnTZn4p?=
 =?iso-8859-1?Q?sid1n6a0if51TTfGuVmDDgY+f0vhIQ1hKH8yVNb9hXI3x+PBicHVO1OmQV?=
 =?iso-8859-1?Q?5l/NDwBsBbkT1fGFuWzUxW9vFIbM/CwWDepn/s9RlEaOIqFRlJTpx3Jw?=
 =?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: de90aab4-7977-4ff8-fc7d-08dd774ee199
X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Apr 2025 10:11:23.2206
 (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: o4mKf0aHQgw5vdJf5cWJguj3lTPfw/FdwLlFlsQTtNiHS56s08u7wcjpWG6NZDZWGwznJ/hyANi9zigdyys1RpZYnk+uzr6skrwFmHc7rz4=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB7718

Condition coverage, also known as MC/DC (modified condition/decision
coverage) is a coverage metric that tracks separate outcomes in
boolean expressions.

This patch adds CONFIG_CONDITION_COVERAGE option to enable MC/DC for
GCC. Clang is not supported right now because Xen can't emit version
10 of LLVM profile data, where MC/DC support was added.

Also, use the opportunity to convert COV_FLAGS to cov-cflags-y, which
reduces amount of ifeqs in Rules.mk. Otherwise this patch had to add
another nesting level with "ifeq ($(CONFIG_CONDITION_COVERAGE),y)".

Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>

---
Changes in v5:
 - cov-flags-y -> cov-cflags-y
 - Clarified why Clang is not supported right now

Changes in v4:
 - Slight formatting fixes
 - COV_FLAGS  -> cov-flags-y

Changes in v3:
 - Introduced CC_HAS_MCDC that checks if compiler supports
   required feature

Changes in v2:
 - Move gcc version check from .c file to Rules.mk (I can't find
   an easy way to check GCC version at Kconfig level)
 - Check for gcc 14, not gcc 14.1
---
 xen/Kconfig       |  4 ++++
 xen/Kconfig.debug |  9 +++++++++
 xen/Rules.mk      | 14 +++++++-------
 3 files changed, 20 insertions(+), 7 deletions(-)

diff --git a/xen/Kconfig b/xen/Kconfig
index 2128f0ccfc..3a723db8ea 100644
--- a/xen/Kconfig
+++ b/xen/Kconfig
@@ -41,6 +41,10 @@ config CC_SPLIT_SECTIONS
 config CC_HAS_UBSAN
 	def_bool $(cc-option,-fsanitize=3Dundefined)
=20
+# Compiler supports -fcondition-coverage aka MC/DC
+config CC_HAS_MCDC
+	def_bool $(cc-option,-fcondition-coverage)
+
 # Set code alignment.
 #
 # Allow setting on a boolean basis, and then convert such selection to an
diff --git a/xen/Kconfig.debug b/xen/Kconfig.debug
index f7cc5ffaab..f89cbd823b 100644
--- a/xen/Kconfig.debug
+++ b/xen/Kconfig.debug
@@ -44,6 +44,15 @@ config COVERAGE
=20
 	  If unsure, say N here.
=20
+config CONDITION_COVERAGE
+	bool "Condition coverage support"
+	depends on COVERAGE && CC_HAS_MCDC
+	help
+	  Enable condition coverage support. Used for collecting MC/DC
+	  (Modified Condition/Decision Coverage) metrics.
+
+	  If unsure, say N here.
+
 config DEBUG_LOCK_PROFILE
 	bool "Lock Profiling"
 	select DEBUG_LOCKS
diff --git a/xen/Rules.mk b/xen/Rules.mk
index d759cccee3..da21850926 100644
--- a/xen/Rules.mk
+++ b/xen/Rules.mk
@@ -29,6 +29,7 @@ targets :=3D
 subdir-y :=3D
 CFLAGS-y :=3D
 AFLAGS-y :=3D
+cov-cflags-y :=3D
 nocov-y :=3D
 noubsan-y :=3D
=20
@@ -133,19 +134,18 @@ $(filter %.init.o,$(obj-y) $(obj-bin-y) $(extra-y)): =
CFLAGS-y +=3D -DINIT_SECTIONS
=20
 non-init-objects =3D $(filter-out %.init.o, $(obj-y) $(obj-bin-y) $(extra-=
y))
=20
-ifeq ($(CONFIG_COVERAGE),y)
 ifeq ($(CONFIG_CC_IS_CLANG),y)
-    COV_FLAGS :=3D -fprofile-instr-generate -fcoverage-mapping
+    cov-cflags-$(CONFIG_COVERAGE) :=3D -fprofile-instr-generate -fcoverage=
-mapping
 else
-    COV_FLAGS :=3D -fprofile-arcs -ftest-coverage
+    cov-cflags-$(CONFIG_COVERAGE) :=3D -fprofile-arcs -ftest-coverage
+    cov-cflags-$(CONFIG_CONDITION_COVERAGE) +=3D -fcondition-coverage
 endif
=20
-# Reset COV_FLAGS in cases where an objects has another one as prerequisit=
e
+# Reset cov-cflags-y in cases where an objects has another one as prerequi=
site
 $(nocov-y) $(filter %.init.o, $(obj-y) $(obj-bin-y) $(extra-y)): \
-    COV_FLAGS :=3D
+    cov-cflags-y :=3D
=20
-$(non-init-objects): _c_flags +=3D $(COV_FLAGS)
-endif
+$(non-init-objects): _c_flags +=3D $(cov-cflags-y)
=20
 ifeq ($(CONFIG_UBSAN),y)
 # Any -fno-sanitize=3D options need to come after any -fsanitize=3D option=
s
--=20
2.48.1


From xen-devel-bounces@lists.xenproject.org Wed Apr 09 10:20:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 10:20:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.943776.1342409 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2SXC-0003Z1-L5; Wed, 09 Apr 2025 10:19:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 943776.1342409; Wed, 09 Apr 2025 10:19: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 1u2SXC-0003Yu-IZ; Wed, 09 Apr 2025 10:19:54 +0000
Received: by outflank-mailman (input) for mailman id 943776;
 Wed, 09 Apr 2025 10:19: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=Yx2+=W3=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u2SXC-0003Yo-3n
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 10:19:54 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on20610.outbound.protection.outlook.com
 [2a01:111:f403:2418::610])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2c149ece-152c-11f0-9ffb-bf95429c2676;
 Wed, 09 Apr 2025 12:19:52 +0200 (CEST)
Received: from SN7PR04CA0224.namprd04.prod.outlook.com (2603:10b6:806:127::19)
 by MW4PR12MB7031.namprd12.prod.outlook.com (2603:10b6:303:1ef::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.29; Wed, 9 Apr
 2025 10:19:47 +0000
Received: from SN1PEPF0002BA50.namprd03.prod.outlook.com
 (2603:10b6:806:127:cafe::81) by SN7PR04CA0224.outlook.office365.com
 (2603:10b6:806:127::19) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8606.35 via Frontend Transport; Wed,
 9 Apr 2025 10:19:47 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SN1PEPF0002BA50.mail.protection.outlook.com (10.167.242.73) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8606.22 via Frontend Transport; Wed, 9 Apr 2025 10:19:46 +0000
Received: from localhost (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, 9 Apr
 2025 05:19:44 -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: 2c149ece-152c-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=KApGUgmYthx8hS4IhTbp7QlwGK94PckHNS3iiX9RRQSWRtJ4BO7px3PYjxNE4ZbqqEyCElF5Nrn+/8VHTI/ZcZWogJEWlhG9nRUsWYgQ4nXJJn1DB52vGwQX6vnZkecXjlJN2eqBGY0cAc0aXQQX94u4EoXuTmbpZNoemG/7YbeFtwG1sBKgSymbv0kon7ziaIqIYDFPyrvWaW35+R89QG28jjYMA1BI4YN/8PX+TDjzhrNzJ5OqnMNZiItk3TnowOVSx5rLcdQUpmQG4MmyyBuhCp7vkbKhixMjcA0XRi2TWLLJdCVNyKXc7C2imbqSTm+Fi4WcvgQbL0hICp0GPw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=GlAKGnRoQUjpY8Xm997hHWannmGhk1xufV4ideu0GvU=;
 b=txlSejfkl4YuIhBMK43cyNj6AePZKxOfrdUiFHy3La+21UVT3gzlfq2txnQX1N6szlTK2sarQG/IEHAtqUTdTZRRZbarpwozrZqLX8hJz58rax8bInAeQDc/DjsP6kUsdQk21TRpts7MgxseGAkTpFq8P9oAzBcCbkVZgzVGY9bfME87EAhJsDyio/KnYc2FGXF086vfklUFUfAgp2D9/EDGgCyiI19Lq8GyeycA/B0LsvQvVAgIOjjZPzOqORnPcK6iOpRACVunXM8uNiMGEIM5VqjOEs4L6If23zk+BW+wn7pjn+QRie/UUIWMlZ4SmpdCHhrFco/HJhs9WlsFvg==
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=GlAKGnRoQUjpY8Xm997hHWannmGhk1xufV4ideu0GvU=;
 b=foQgaw5FdcUWtpoNasamWkQrqxPuFYo9CDoqGLInIbSURytZEWPNxIYD2zMNKzqreAQ7ThNT1suBfIBYf0BRE/tbeHeyCeQJ9xPANuPtAmxi/sy4Jztl0QJm7PNJXWdOuCXyaoNP/cq6UzC+9NEyWmnIXNbMNlmcXFrwkdWoDU0=
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
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Wed, 9 Apr 2025 11:19:42 +0100
Message-ID: <D9215Y1EFDAG.ORR7VWT2BSLX@amd.com>
CC: Jason Andryuk <jason.andryuk@amd.com>, Xenia Ragiadakou
	<xenia.ragiadakou@amd.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, =?utf-8?q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, "Julien
 Grall" <julien@xen.org>, "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>, <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v3 00/16] Hyperlaunch device tree for dom0
From: Alejandro Vallejo <agarciav@amd.com>
To: Jan Beulich <jbeulich@suse.com>
X-Mailer: aerc 0.20.1
References: <20250408160802.49870-1-agarciav@amd.com>
 <1d809170-bef0-482e-bf6f-6da84204bfad@suse.com>
In-Reply-To: <1d809170-bef0-482e-bf6f-6da84204bfad@suse.com>
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: SN1PEPF0002BA50:EE_|MW4PR12MB7031:EE_
X-MS-Office365-Filtering-Correlation-Id: 52d109bd-30be-47b4-747d-08dd77500de4
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?OWxVV292dU5DVGMzajNMejFsNnVhWllzRkg1OGt2ZnZtcjFiQzgzeGRGdnA4?=
 =?utf-8?B?ZTJDM2FTS3ZzTDUzYWxNbzNrc2hnL1VSbSsxUVBSNjYyakJGVWRkWTRYajV1?=
 =?utf-8?B?NC9ZSzlabmpuWlh2a1d3QVVLMGlaakE4c0RXNnc5UnMwelRXNTRRK25EczZv?=
 =?utf-8?B?dktKSGVMK0hpaWVyL1JZd1ZjRXN2M3pDeVZQRlJDZ2kvSG1mTkU2cUFveFdY?=
 =?utf-8?B?a0VtSUU1aUpSK0tFeDFiVEJQa2szRWpDZTVIK0RLMUVOR1NXRXFwdkNqcVZY?=
 =?utf-8?B?SnFSdFZPQ2RRbDRueElsb2lhYkdjQW5wNUFrY2RLaGpYSGp3djBsNXZwK0No?=
 =?utf-8?B?ZTg3TFl4bUlFMHZDaG5xS2VFenUvR09XWGFVY1RDTklaSmhFeG42WFBVdGtI?=
 =?utf-8?B?VElrNys0ZENWY0V3MVo1MytMVlU1cldGNThuQkpPUFNPTG9JakZ3QTd4MWZ2?=
 =?utf-8?B?QzM5ZFd6QTJ4bGk1RitSRUpKZUQyVU9walVPRVkwd0VGUy9EUTdpNmpKYWxv?=
 =?utf-8?B?SWtJMEh1N3h5amJscTNLQ2V0SjM1NmJ4UG1WZlBKNFBEQmlJZlA2TTl3V2hI?=
 =?utf-8?B?YVJkT0hFbVp3L0RPcVBORkI5OWJscWdrdjdqLzFndGljeUI3UXMrdExwK3VG?=
 =?utf-8?B?WmpETU1kaW1FT1ZUd2RaUzE5c05Ecjc1bzJhdndRaEJqdTg5bUxvRDRtcGxM?=
 =?utf-8?B?YUJOWGFqenNlUlQ4NVdxd0JXTWxYcGNvRExlNzcvcTJDbVRscW12M2NlRzJm?=
 =?utf-8?B?L3B2a1dCakZYamJCNFkrYkp4ZC9jNEZnV0FUVldrTFpRNWM1eWZjL01LVXJu?=
 =?utf-8?B?M244V2JiTy9rRk9lNWZJa0hwQndNUnlWeFErSkp1Szh2MHJHUFBDakw5blRj?=
 =?utf-8?B?Q2NDbXBSOVB3d3RSUFFUYUgrbE4xTWk4ditYRmwwRnRrc2UyUWpYN3E0UFVt?=
 =?utf-8?B?WkNiTmJrbnVSb2E3OWtsbUZWeU9EbC80UC9rSUhCZDFtNUgrUUtyKzRMaHhk?=
 =?utf-8?B?VjZWbmFoOEdOVDc4OXlLV3R5ZWxPOXlkYkNGcDcwbEFyN0pnckRhMis5Szgr?=
 =?utf-8?B?V1lvWjFpUUxkQWFWR1FuRTNiQU9sUE9nQnA1THZ3TXliVDJLeERuZjJTOVRy?=
 =?utf-8?B?amF5TkZPcE5SdDlZTWFLM0l3Z3lGZmxCS0RKYXJTeFpTVnFyaW15Y0NZNThZ?=
 =?utf-8?B?WjRsVDdQOGJRTmZ5TVhHWUlISDYyV0V0R0pMdVcyZVlnRlVPU3grdXNwdWI1?=
 =?utf-8?B?VUZLSFFnUmI5NWpVVXErY3RQNG0rZFdHMldhQnNuOFU2ZldHdnN1am44UmRU?=
 =?utf-8?B?cXgvc1hGYkIwcFpYY0UxMU40YUJVKzE0aDdnNlg5djcrVDlRYll6QWZhQ29W?=
 =?utf-8?B?ZFRmSGtaMGNKdlVxSnowM0lsQVc2SG5LUXdjbkQyUWQyWXJYYWRJZlhkTGMw?=
 =?utf-8?B?R1cvNWpuUEpHZTlNc2c2dVRnbU9YdmlVQTQ1djd5eEtuTmVGdDZTQWxRZXYv?=
 =?utf-8?B?ajRVdyt5cGFxSDBITHBacFdGWXhscEMxeG9FV2hBNUNPOUNNNXYvRVlDdk1I?=
 =?utf-8?B?QVBmZmtFc0U0TlY1V2NwVzZGZEtWY0gyTUdMenltVmZNODNiU1VoVExvWlBh?=
 =?utf-8?B?YkpuTWowTUFqUXI1SDJpMWo5YTQzT3lLVkpiTThwMXVuZkc1dlVNRnM2Z3py?=
 =?utf-8?B?NlU4UEsybUxhbUNSUE9UTzdSM1V3T3d3YkRQZmwvaWlUUzVvWUI2L2w5YStr?=
 =?utf-8?B?SEp6d0p2MEVuUGhaUytXV0ExVCtKeVYvRWVoUEdiVTdQZ0Jka2dLYlZUb2hG?=
 =?utf-8?B?c29xVUZmbGJES1M2K2VPL05XYjBFbFhpUW9JZFRRVzl1cmhqdGYwVVFQRVMz?=
 =?utf-8?B?RVgyTmRFaU9ObXhieFJnS3o4MENlbktjVGl4MkkwK3oxRTRPMzlKZlErbDhq?=
 =?utf-8?B?MXhsaDVBU25VYzF4cmtPa0xwRDZmbjQ0N0Zwa3EvSS92UnRmRGI3V01IZTRa?=
 =?utf-8?B?VWthcm4wSXFTaU5sQUIxNzVuVHZDekdQNm1mK2hhdWNGMTdtdDNaVnZzVWFZ?=
 =?utf-8?Q?VWTo5o?=
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: 09 Apr 2025 10:19:46.9862
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 52d109bd-30be-47b4-747d-08dd77500de4
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:
	SN1PEPF0002BA50.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR12MB7031

On Wed Apr 9, 2025 at 7:29 AM BST, Jan Beulich wrote:
> On 08.04.2025 18:07, Alejandro Vallejo wrote:
>> I've purposefully not added my S-by on anything I haven't touched
>> (besides rebasing) as most of the feedback had already been addressed by
>> Jason by the time I looked at it and it would be utterly nonsensical to
>> give myself authorship over it.
>
> My understanding of it is that S-o-b doesn't indicate (only) authorship.
> See docs/process/sending-patches.pandoc "Developer's Certificate of Origi=
n
> 1.1" point (c). And what you would want to demonstrate with adding your
> own one is agreement with (d) there. With this I'm not even sure I could
> commit patches becoming ready in their present form.
>
> Jan

Fair enough. Will add myself everywhere on v4, then. Seeing as there's
still changes to go through.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Wed Apr 09 10:21:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 10:21:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.943787.1342420 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2SZA-0006Rb-0c; Wed, 09 Apr 2025 10:21:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 943787.1342420; Wed, 09 Apr 2025 10:21: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 1u2SZ9-0006RU-Te; Wed, 09 Apr 2025 10:21:55 +0000
Received: by outflank-mailman (input) for mailman id 943787;
 Wed, 09 Apr 2025 10: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=tnZY=W3=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1u2SZ8-0006RM-Lh
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 10:21:54 +0000
Received: from EUR05-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur05on20623.outbound.protection.outlook.com
 [2a01:111:f403:2613::623])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7432ee1c-152c-11f0-9eaa-5ba50f476ded;
 Wed, 09 Apr 2025 12:21:52 +0200 (CEST)
Received: from AM0PR01CA0166.eurprd01.prod.exchangelabs.com
 (2603:10a6:208:aa::35) by AS8PR08MB6277.eurprd08.prod.outlook.com
 (2603:10a6:20b:23d::12) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.35; Wed, 9 Apr
 2025 10:21:45 +0000
Received: from AM3PEPF00009B9D.eurprd04.prod.outlook.com
 (2603:10a6:208:aa:cafe::74) by AM0PR01CA0166.outlook.office365.com
 (2603:10a6:208:aa::35) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8606.36 via Frontend Transport; Wed,
 9 Apr 2025 10:21:45 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AM3PEPF00009B9D.mail.protection.outlook.com (10.167.16.22) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8606.22
 via Frontend Transport; Wed, 9 Apr 2025 10:21:45 +0000
Received: from DB7PR08MB2987.eurprd08.prod.outlook.com (2603:10a6:5:1c::25) by
 DU2PR08MB10229.eurprd08.prod.outlook.com (2603:10a6:10:496::7) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.8606.34; Wed, 9 Apr 2025 10:21:12 +0000
Received: from DB7PR08MB2987.eurprd08.prod.outlook.com
 ([fe80::d53f:b16d:70a5:8668]) by DB7PR08MB2987.eurprd08.prod.outlook.com
 ([fe80::d53f:b16d:70a5:8668%4]) with mapi id 15.20.8606.029; Wed, 9 Apr 2025
 10:21: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: 7432ee1c-152c-11f0-9eaa-5ba50f476ded
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=kYSKN+0k27BRR3LfKG8mggVZKfJ/qFe1oqYVdAW6Jo50hk86wc2+GzrIlKUMU8jbVpVziwbT41WEcGHdxLjcjXIzTxEY0dftUDSqOgc5cEEddAmAzrM22X65AV7IJC20ESpwC/o35Upquc/np5OjWrxABjjuOqDGFLsQT6jEdcSpoM3o/571czvrWrcD8oTpycw/IU7BDNeSVH4DbeQ9YZwuoOP3ZPVwHROzt47EEijXsGL4J7wr5LghvJ85rXjHK5DnIKZL0G+RwGoZoZYg3UGMv6f64XSeTMrE451sRMnm64e35nsPtcIEMbiWSIVr7uIX1ti/51kiSP/UbpRCqw==
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=rS0KumpQdqhuu4el46q/s73I4WeH1UGavPN5jiivqSA=;
 b=sb+AYmoGRa9qh/1ql+I7YNUzTk9nvBRAf/twA7CudQsI6IFNimSpA8EeoOvZ3wXbuD+8Wjphho762L8E+uo180VKE1JPKpzYYKViIxbhmSwVT2rw//SWbl9IdCh14EBFWr4lX1YUZfy7uUZCjh03b9ji6DPiZM+EcI7Zcj4bE1p3UjIv8mfecKEb4RRI1jOQEDa27ZcBgsv2Me+Cte86NuTxRcQbh1W0c/uFDLXMbwhiDmSiuL/ZZlzggqwIIUZrp5c3T571vXbutCBEucheZFICwaJ8H11bq1UG1IgraWCpjI7azrfAWh3lElBb7PRceO17EYf2Ka2Ce63jVkn47g==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=permerror (sender ip
 is 4.158.2.129) smtp.rcpttodomain=amd.com smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=rS0KumpQdqhuu4el46q/s73I4WeH1UGavPN5jiivqSA=;
 b=bAQwubUHeWiGICOdRz5KoGz/QSMVknsMjWnuoWurWuovFyu3WJfuH84vyp7qttKQDVGe+rOnyAnsfkPP+aC5GtyYN90hakGuJ7qSDHG5XGh26MP1GaQuF40v7UwbzRI/7H4Vo7XTB0vXqiEMlcIe25WV5kcW2bg6Caau88ebPhQ=
X-MS-Exchange-Authentication-Results: spf=permerror (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: PermError (protection.outlook.com: domain of arm.com used an
 invalid SPF mechanism)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=fq8UKzx16IghCCqrC2rxwNuDiunGAUqF8iEUP92G4HESknFCjCKnXZseZkvDFHqHxJrCTk/usmhRM3cN+4EdfT60kkiXpSjmjenpEyP2T1dh/rShtvp4I+wHwLoEsyd5exAcodRIV5rSuZ4Jx1iIjzRXbx7WKv8w6tvgMNAAqzFwNyOKWgOJRvDCSqZdCZHjhcmTexj6Zk1zy+GSD+CFOUaqlNEdmm0vW8Dr/BC7bZnPprngzoX0m797TTWIcJLVS6TZ1Z3AgrKqTIUQfsWtA821cZRc4t6cHGUtTP88GlocS9xDt31zcJYLK5hLBMY36rAgYOPXY6gYja3z+q+BJg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=rS0KumpQdqhuu4el46q/s73I4WeH1UGavPN5jiivqSA=;
 b=gmF0crxw8A8H5MnHEzK3DpjRJeMxZoQLzUHO6Mi9wL9113mxj6agwrbEMEPcGlhuRnQ+eYnvp91TneNkMADEvqE98w8CIfgSFpOBmlTE8MRE3MDbSD1J7QMCJ9BJRLvzQF+rIEiUv4DXIfeIRNc0OZ9vA58qUy4OmWpaME2FzMuAkmcSO2OkO/8J9w4NbBbFWPF6E6TpI6nmJyOmVq13UwLrNx/qYfMV2SpfHjoeXqGztq/6HMaa7bnex4Fkbh/dZhmmC2F5u2D10klMrEvQntCki9ZXk6L2zcGk1lNudDLdCuTS1jwo8w9a4jKBWz76kh8xmqaJrKLzk/RjFkNOpA==
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=rS0KumpQdqhuu4el46q/s73I4WeH1UGavPN5jiivqSA=;
 b=bAQwubUHeWiGICOdRz5KoGz/QSMVknsMjWnuoWurWuovFyu3WJfuH84vyp7qttKQDVGe+rOnyAnsfkPP+aC5GtyYN90hakGuJ7qSDHG5XGh26MP1GaQuF40v7UwbzRI/7H4Vo7XTB0vXqiEMlcIe25WV5kcW2bg6Caau88ebPhQ=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Ayan Kumar Halder <ayankuma@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 v2 2/7] arm/mpu: Provide access to the MPU region from the
 C code
Thread-Topic: [PATCH v2 2/7] arm/mpu: Provide access to the MPU region from
 the C code
Thread-Index:
 AQHbp52Ro+Yg+pQClU+WnJSxei+hH7OZzl8AgAAHm4CAACKVAIAABC6AgAAEEwCAAPj6AIAACQkAgAAcT4CAAAO6gA==
Date: Wed, 9 Apr 2025 10:21:12 +0000
Message-ID: <C4B4B135-AF5D-4BA9-AD17-0C46868B7FFD@arm.com>
References: <20250407091430.2342709-1-luca.fancellu@arm.com>
 <20250407091430.2342709-3-luca.fancellu@arm.com>
 <0acf63c0-267e-44c0-b629-fa576307497c@amd.com>
 <1AC85CBD-02B1-4AA4-B9A3-68DFC06137AA@arm.com>
 <4f860a56-5536-455b-9490-196bfc220556@amd.com>
 <40C7A4DC-0216-4981-A501-AFDA0E8671DD@arm.com>
 <9f637d98-c8f8-49e0-9f0a-002cdfefc296@amd.com>
 <EABA5C5E-4FE3-4E7A-8E29-B37A4CFCC18D@arm.com>
 <F2C6FC52-386A-4417-B592-151ECE079E52@arm.com>
 <aded1d6f-0e6f-4903-a5a3-127e06e3803f@amd.com>
In-Reply-To: <aded1d6f-0e6f-4903-a5a3-127e06e3803f@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.400.131.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DB7PR08MB2987:EE_|DU2PR08MB10229:EE_|AM3PEPF00009B9D:EE_|AS8PR08MB6277:EE_
X-MS-Office365-Filtering-Correlation-Id: 8d29e512-380a-4408-135a-08dd77505456
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?cEFiN2MzTGg4UXVRVWU3My9aMGxoU1UrSUZsRm9ib3N5SGVPSFZGTFRJNmt4?=
 =?utf-8?B?ZHhVVU5xV1prMDhDMGxob0FrNXVjZDhVUlgxNU1qa25RajNHVG1uSGwvSzU1?=
 =?utf-8?B?YjZMaXNZTUczT09ybStLNDg0ZnViQnV0ZEhqZEgzQ0RCbmxSYWRIMUYzZnZk?=
 =?utf-8?B?eGVYTU9KVjh3cHlrUitYTFdqSnhmTmJ4d3JIYmlMZXl2bnhxelRhblowRzBK?=
 =?utf-8?B?ZnlNemJaWXVHYWxxTUV6azBWcFBqUG5YaXFldHNXTy9DY0I4ZjdNWnpoRGIw?=
 =?utf-8?B?ZUVOc2M5RzdpVUd1VjlXbnRobTZQQVBualBnOVA1czc2SFpmdXdSU3RMRTFI?=
 =?utf-8?B?L0E0aTFrcUZMYk1ZTWVsbHcwL0JhTWxqbTNGQlNGZkFwODZ2cnREL0RzV2E5?=
 =?utf-8?B?a1kxL1o0M2Nqd1l3Y2ZLaE1TVmxSVWFNVGQ1ZWFoeU1qR2xobzhwYkw5UjZR?=
 =?utf-8?B?YmhwTHZxeEN6UFljcWhkNTNDVDF3VktkRmlEdkZxNCtVb2d4cW9oV1l3QWgz?=
 =?utf-8?B?SlIxNmM0aVU1aFZOQmlKMWozck5seWdrOE1YdVROdG40QWYvbTQ4SUd1ZmlY?=
 =?utf-8?B?WnVtcEdmc3dnV0hOMGNDeVlubVhId2RsQTBqSXdmY2YyV1FXZ3ZhczNKQS8v?=
 =?utf-8?B?d2FHd2JuMWFiZEFLSlJpSnVjc1NyalNXTG15WkVIM2tpTEJoT2VxVzdIcTU2?=
 =?utf-8?B?aTlDZ2xnUjBDSDBPS0l6NzBIMmRxTFF0WCtEeU9oRlI0TU9iRzR4RW8waFN6?=
 =?utf-8?B?TTI3YkN5UUx5amNKZXFzeVBiN2RUNHZuVnRXc2FSYVNhSWF2VkV6Q3FML2t6?=
 =?utf-8?B?RXZzTmlHNksvelhaazQzcUUrTTN0OUxVdlpnd3lWNGhOVXVFYWpMSy9JZUdV?=
 =?utf-8?B?RVdvU3NucmlwY3R5a0NtMVczb2Q0OS9YOVVsRk9nclYwaDZabGN3N0k1akZD?=
 =?utf-8?B?SVh6Z2Ryb2k2U01GMFJFbGFrb0Z1TGg1WHZIT2FhUzc0bFhNMm4waDh0cVVr?=
 =?utf-8?B?c2ZISFM0UkE0NndNVjJ6ZHprRGlPQ21BSUNsanlsK3VZTnVVbFF5SStVcVdF?=
 =?utf-8?B?dkhqaUhYWjlFanNNQmp1QVhmYStySTNObW1WVlhaVGJGK0hOc09kMkVGMnZU?=
 =?utf-8?B?bFFSem1CeFZ3Uy9acGRwZG1WUkRtdUhYbFFuTEJHZnl6ZVE1d3JFNk1xV3Fl?=
 =?utf-8?B?S2FpQzh5bEVBa1hFQU81NzFiUGRacjVDSVFhMXIxb2dyWkFHWDgzOUQ2eWNa?=
 =?utf-8?B?NlZUeWk2NmVOdmh1Rncra1RrZ2FtVjA3MzhneUtvNnVpUTJoLytzbDFtYW9I?=
 =?utf-8?B?WTdiL1hiaFlwT0ZFU2pmbDdGcXloR1pwa1ZYMUpVT0xKYzcyc0VORlcxOExI?=
 =?utf-8?B?OUZMeVRJcTNINzkvWmtuUXY3UkNPLzhJK1VPdGxRWVU5RmlKYWJYSkdiRW0z?=
 =?utf-8?B?YTlBbzNBZ2lXMTlzOU4ydmxBOWtUT050ZnJxT3ZJRE1aSjd4LzYrU0tzRVps?=
 =?utf-8?B?eERobTJKZ2pLeC94emNJZksyd0h5TFJnRFlGaitYRC82d1BzS1lxQTZGVHJH?=
 =?utf-8?B?MjExbEEzK3dodnl0WkVyWnk4ZmQwakN0QWQyMXJWK0ZZa0ZVak5ma0trVlg2?=
 =?utf-8?B?RTJtQ3F1SzNIbVVZV0l0b2dibWptaXRSaEt5VTFITEFjMGpENEV1K2wydnRw?=
 =?utf-8?B?YjdzSk1mZXYxQVJPS0dxbHcyNCtTblFXUlVmcDU2STVHOFpMckdCejNwM0tr?=
 =?utf-8?B?ZXRzem9HczRCbnVjSjByR0dmS1FtbzA3Mlp6YmJJRHJQNnBOWmFHSlNmRDVs?=
 =?utf-8?B?ekpQMll6c3FOTUlRRnQxQitqUVV1YktkYUx4V040NHJIRXB6b0tUQzVjM21F?=
 =?utf-8?B?S1JtUURGNW9JRGxMOW9xcE5LQURBUTV3T0JmSWxPZ2FOUWdRZ3dYeDFOeU96?=
 =?utf-8?B?VEljTm5LTjhYSStsQngxSGg5dUc0T1E5eVRQUGpDNEdFa2xCaXhPR1F1TFph?=
 =?utf-8?B?OGVWVjR2TkVBPT0=?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB7PR08MB2987.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: <039435866315F24FB4658C7524CBDBFB@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU2PR08MB10229
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AM3PEPF00009B9D.eurprd04.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	54c4dfeb-4f5e-4d35-0628-08dd775040b8
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|14060799003|376014|1800799024|36860700013|35042699022|82310400026|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?Qm4wRDlKblpjam1rb2lXUldpVWZvWDRQS0RoazZ3bG9ZSjdONmN6bFgzTzRH?=
 =?utf-8?B?VENTd1g5YzhKMjdjZVNZMGhMYVphVlVwMG9zT3VUUHVBd2RCVnRYeVN0TUw5?=
 =?utf-8?B?eUMvSkI4WmkyVTZ3RURUR0FMNWNiUUxEREt1UmJ5VVN0S1Jua29oN3NTU1Fo?=
 =?utf-8?B?T3M2dWwvWVNkcllodStOcms5d21qNlFXTGd4UTlOQnhWbDRmeksrc0RpNHYw?=
 =?utf-8?B?Zkd2SlVYTmQxeHZvWEQ5R1JSdThxcmVHZ0FjWWFBdWh4bjZIcDFiVG1SZEk2?=
 =?utf-8?B?SjA0MmwxUVBXTXZTSWUvd05YUGNmMm5oVTFTWmlxV3psM21HeVZXRzRXckp3?=
 =?utf-8?B?WHpQeWNVY2ZEYm9SaFJYVHdnbTJwUUpFSjVQWUY4OGQyQnFQZFVmblhmNDhJ?=
 =?utf-8?B?U3lHZW0wZSsrQVp6UGpraTRzRVBIMksxUmV3SkNNK3JMVzROVHJ4VGZ4T05q?=
 =?utf-8?B?aWY4Skpua0F4UllHRUJLNVNJSThRdHVrSkFoZ01QTXFSZDYwNHlERmkybm5W?=
 =?utf-8?B?R0ZyYmxRUzUvMU1UdFIzaDBHOWxPWVVMTTB1RkJrRFZRYzRtT0R6ei9XYThT?=
 =?utf-8?B?aVZLcEFUd2U5SEtKdEdmLzczZlp4VjJ5RlkwNEdRSjFJY1BrUlhoVGhReXZk?=
 =?utf-8?B?RUMzT2F2bGlzc1pQaG1xN0FZdW95ZnJyUkpJbHYrNUVuYm1QaG1Vbm5pcmNM?=
 =?utf-8?B?YzlWQmM5RVJvVUdjMFdZMEp5R0ErM0FLdExTdWIwSFhWcURKZDlQUlo1WldS?=
 =?utf-8?B?UnJHRVh5ZExXektoSmJLenFMQ0xWODRFaVlJM3lPclJnV05QWEpNejhjcjdi?=
 =?utf-8?B?a0JUNzNnRW13ekF6SDJqZ25vYTJwZHFodDhRUW9YTHNrYkZKNXpteHkxeDJa?=
 =?utf-8?B?OVBleU40dDJFb21BdStJL09FblZwRkloUWtQcWx3WEJ0ZFBPbSt3anl3WnlU?=
 =?utf-8?B?UVJIU20vUkNaWEJ3engwZnVid3dOdi9UdDlwZWloSnFGWnhQakdpS0hSNlhi?=
 =?utf-8?B?MzkySlh1WlhmTmRDb1hKeFluYmZNbW5xR1ZrREVDb245U1llS1FCNkNrNDhI?=
 =?utf-8?B?RXFRTEFLc2xaTzQxVGxpQXNtMFNVRWFPWjZHb2NFTHFkN3J2ZHRBaDRzT1hB?=
 =?utf-8?B?Tk1qb3h5QkdKbkU0YWFJVmFORzFPODZpQjJ5QTFNSS9ZeDd1a1FxbDhDUFp6?=
 =?utf-8?B?SUNsYjdDaVdWNWJxdnZPNFh2N0hNTEg5WVNPMlFFK01MWDFKQ202V3NKcXc5?=
 =?utf-8?B?bmJmUjNvMlNuWnY3TjBhUVlGQXVyRmw3KzJodktLV3JoMzZKTDIrYURCeG9o?=
 =?utf-8?B?dUJVaW9teHVUaFVDakN5T0lhZHREMVM0ZVhtaHdjc2U0M3lvOS94QXRJNjEx?=
 =?utf-8?B?K0VnZnBsSit4bno0bHRvTU1jdWwwSS9QajB0ZUo3YlE2WU02TTVmQXRYV3lQ?=
 =?utf-8?B?NVo1L2hpb1BzcnZaSzQydjBFMUtITEI2c3cvN0dzYnpqdlJoam4zeUNNbkhD?=
 =?utf-8?B?bUM3QUZWVTY2UkZsd0Q3K0d5bzN4UlI4cHpQUXYyOUdGOTNOYlIxMGdjNEJ4?=
 =?utf-8?B?d0tFY0NQdWlJM0tWRWgramlMdVd3Z0FVdDNBdzNEczdxcjcwZUhMdHkrV29G?=
 =?utf-8?B?T1ZBd1dNZW91d0lhYXlyeTJ5RlBvZ1ZaY3krZ1RRc1dzWlExWEx0enYveVB3?=
 =?utf-8?B?ZVBQSThmN0lmdHZZT0taNXBKT0ZhR0I4RHRtKzJIYy9aTmFNcjNsWmlUak16?=
 =?utf-8?B?R0dUUWUrUGx0clpJNlozUHBwL2MzbzB6cHFEc2s4UmE3dEdHcVhFMXBITTRT?=
 =?utf-8?B?NkhHNnFGbHpJWVZhWS94NFNyS3k4dHk1bVJQSGhTaWZQeG40M0VNWkhZaHEv?=
 =?utf-8?B?M3dBaHo4ZlRwNjZiYUhsT3hscEVHejZ5dzNybWFCak9sWlVkYVUySXBYdTJv?=
 =?utf-8?B?QUFuR1N0enY0UUxJSnVudjBzRC9iYlFuQVZBdDhzSEdXTURTSm9lZGdxcmx2?=
 =?utf-8?Q?CSbBn3bv/YTXGI0k4SZguPE2jlFfVo=3D?=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(14060799003)(376014)(1800799024)(36860700013)(35042699022)(82310400026)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Apr 2025 10:21:45.1244
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 8d29e512-380a-4408-135a-08dd77505456
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AM3PEPF00009B9D.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB6277

SGkgQXlhbiwNCg0KPiBPbiA5IEFwciAyMDI1LCBhdCAxMTowNywgQXlhbiBLdW1hciBIYWxkZXIg
PGF5YW5rdW1hQGFtZC5jb20+IHdyb3RlOg0KPiANCj4gDQo+IE9uIDA5LzA0LzIwMjUgMDk6MjYs
IEx1Y2EgRmFuY2VsbHUgd3JvdGU6DQo+PiBIaSBBeWFuLA0KPiBIaSBMdWNhLA0KPj4gDQo+Pj4+
PiBUaGUgcG9pbnQgb2YgdGhlIGNvZGUgd2FzIHRvIGRvbuKAmXQgaXNzdWUgYW4gaXNiKCkgZXZl
cnkgdGltZSB3ZSBjaGFuZ2UgdGhlIHNlbGVjdG9yLA0KPj4+Pj4gb2YgY291cnNlIHRoZSBjb2Rl
IHdvdWxkIGJlIGVhc2llciBvdGhlcndpc2UsIGJ1dCBkbyB3ZSB3YW50IHRvIGRvIHRoYXQ/DQo+
Pj4+IE5vdCBzdXJlIGlmIGl0IGlzIGJlbmVmaWNpYWwgYXMgeW91IHdvdWxkIG5lZWQgdG8gdXNl
IGlzYigpIGZyb20gcmVnaW9uMTYgb253YXJkcy4NCj4+PiBUaGUgaXNiKCkgaXMgaXNzdWVkIG9u
bHkgd2hlbiBjaGFuZ2luZyB0aGUgc2VsZWN0b3IsIHNvIHdoZW4geW91IGdvIGZyb20gcmVhZGlu
Zy93cml0aW5nIHJlZ2lvbnMNCj4+PiBmcm9tIDAtMTUgdG8gMTYtMzEgZm9yIGV4YW1wbGUsIG9m
IGNvdXJzZSB0aGVyZSBpcyBhIGNhc2UgdGhhdCBpZiB5b3UgY29udGludW91c2x5IHdyaXRlIG9u
IHJlZ2lvbiAxNQ0KPj4+IGFuZCAxNiB5b3Ugd291bGQgaGF2ZSB0byBhbHdheXMgY2hhbmdlIHRo
ZSBzZWxlY3RvciwgYnV0IGl04oCZcyB0aGUgbGVzcyBpbXBhY3Qgd2UgY291bGQgaGF2ZS4NCj4+
PiANCj4+PiBhcm12OC1SIGlzIGV2ZW4gYmV0dGVyIHNpbmNlIGl04oCZcyBhYmxlIHRvIGFkZHJl
c3MgcmVnaW9ucyBmcm9tIDAgdG8gMjMgd2l0aG91dCBmbHVzaGluZyB0aGUgcGlwZWxpbmUsDQo+
PiAgICAgICAgICAgICAgICAgIF7igJQgYWFyY2gzMiA6KQ0KPiBDYW4geW91IHBvaW50IG1lIHRv
IHRoZSBkb2N1bWVudCB3aGVyZSB5b3UgZ290IHRoaXMgaW5mbyA/DQoNCndhcyByZWZlcnJpbmcg
dG8gdGhlIHI1Miwgb2YgY291cnNlIHlvdSBhcmUgbW9yZSBrbm93bGVkZ2VhYmxlIG9uIHRoZSBh
cm12OC1yIGFhcmNoMzIgcGFydCwgc28gLi4uDQoNCj4+IA0KPj4+IHNvIEkgd291bGQgc2F5IHdl
IHNob3VsZCBleHBsb2l0IHRoaXMgYmlnIGFkdmFudGFnZS4NCj4+PiANCj4+PiBJ4oCZbGwgc2Vu
ZCBzaG9ydGx5IGluIHRoaXMgdGhyZWFkIHRoZSBjb2RlIEkgd291bGQgdXNlIGFuZCB0aGUgY29k
ZSBJIHdhcyB0aGlua2luZyB5b3UgY291bGQgdXNlLg0KPj4gSGVyZSB0aGUgY29kZSBJIGhhdmUg
aW4gbWluZDoNCj4+IA0KPj4gc3RhdGljIHZvaWQgcHJlcGFyZV9zZWxlY3Rvcih1aW50OF90ICpz
ZWwpDQo+PiB7DQo+PiAgICAgdWludDhfdCBjdXJfc2VsID0gKnNlbDsNCj4+ICAgICAvKg0KPj4g
ICAgICAqIHtyZWFkLHdyaXRlfV9wcm90ZWN0aW9uX3JlZ2lvbiB3b3JrcyB1c2luZyB0aGUgZGly
ZWN0IGFjY2VzcyB0byB0aGUgMC4uMTUNCj4+ICAgICAgKiByZWdpb25zLCBzbyBpbiBvcmRlciB0
byBzYXZlIHRoZSBpc2IoKSBvdmVyaGVhZCwgY2hhbmdlIHRoZSBQUlNFTFJfRUwyDQo+PiAgICAg
ICogb25seSB3aGVuIG5lZWRlZCwgc28gd2hlbiB0aGUgdXBwZXIgNCBiaXRzIG9mIHRoZSBzZWxl
Y3RvciB3aWxsIGNoYW5nZS4NCj4+ICAgICAgKi8NCj4+ICAgICBjdXJfc2VsICY9IDB4RjBVOw0K
Pj4gICAgIGlmICggUkVBRF9TWVNSRUcoUFJTRUxSX0VMMikgIT0gY3VyX3NlbCApDQo+PiAgICAg
ew0KPj4gICAgICAgICBXUklURV9TWVNSRUcoY3VyX3NlbCwgUFJTRUxSX0VMMik7DQo+PiAgICAg
ICAgIGlzYigpOw0KPj4gICAgIH0NCj4+ICAgICAqc2VsID0gKnNlbCAmIDB4RlU7DQo+PiB9DQo+
PiANCj4+IHZvaWQgcmVhZF9wcm90ZWN0aW9uX3JlZ2lvbihwcl90ICpwcl9yZWFkLCB1aW50OF90
IHNlbCkNCj4+IHsNCj4+ICAgICAvKg0KPj4gICAgICAqIEJlZm9yZSBhY2Nlc3NpbmcgRUwyIE1Q
VSByZWdpb24gcmVnaXN0ZXIgUFJCQVJfRUwyL1BSTEFSX0VMMiwNCj4+ICAgICAgKiBtYWtlIHN1
cmUgUFJTRUxSX0VMMiBpcyBzZXQsIGFzIGl0IGRldGVybWluZXMgd2hpY2ggTVBVIHJlZ2lvbg0K
Pj4gICAgICAqIGlzIHNlbGVjdGVkLg0KPj4gICAgICAqLw0KPj4gICAgIHByZXBhcmVfc2VsZWN0
b3IoJnNlbCk7DQo+PiANCj4+ICAgICBzd2l0Y2ggKCBzZWwgKQ0KPj4gICAgIHsNCj4+ICAgICAg
ICAgR0VORVJBVEVfUkVBRF9QUl9SRUdfQ0FTRSgwLCBwcl9yZWFkKTsNCj4+ICAgICAgICAgR0VO
RVJBVEVfUkVBRF9QUl9SRUdfQ0FTRSgxLCBwcl9yZWFkKTsNCj4+ICAgICAgICAgR0VORVJBVEVf
UkVBRF9QUl9SRUdfQ0FTRSgyLCBwcl9yZWFkKTsNCj4+ICAgICAgICAgR0VORVJBVEVfUkVBRF9Q
Ul9SRUdfQ0FTRSgzLCBwcl9yZWFkKTsNCj4+ICAgICAgICAgR0VORVJBVEVfUkVBRF9QUl9SRUdf
Q0FTRSg0LCBwcl9yZWFkKTsNCj4+ICAgICAgICAgR0VORVJBVEVfUkVBRF9QUl9SRUdfQ0FTRSg1
LCBwcl9yZWFkKTsNCj4+ICAgICAgICAgR0VORVJBVEVfUkVBRF9QUl9SRUdfQ0FTRSg2LCBwcl9y
ZWFkKTsNCj4+ICAgICAgICAgR0VORVJBVEVfUkVBRF9QUl9SRUdfQ0FTRSg3LCBwcl9yZWFkKTsN
Cj4+ICAgICAgICAgR0VORVJBVEVfUkVBRF9QUl9SRUdfQ0FTRSg4LCBwcl9yZWFkKTsNCj4+ICAg
ICAgICAgR0VORVJBVEVfUkVBRF9QUl9SRUdfQ0FTRSg5LCBwcl9yZWFkKTsNCj4+ICAgICAgICAg
R0VORVJBVEVfUkVBRF9QUl9SRUdfQ0FTRSgxMCwgcHJfcmVhZCk7DQo+PiAgICAgICAgIEdFTkVS
QVRFX1JFQURfUFJfUkVHX0NBU0UoMTEsIHByX3JlYWQpOw0KPj4gICAgICAgICBHRU5FUkFURV9S
RUFEX1BSX1JFR19DQVNFKDEyLCBwcl9yZWFkKTsNCj4+ICAgICAgICAgR0VORVJBVEVfUkVBRF9Q
Ul9SRUdfQ0FTRSgxMywgcHJfcmVhZCk7DQo+PiAgICAgICAgIEdFTkVSQVRFX1JFQURfUFJfUkVH
X0NBU0UoMTQsIHByX3JlYWQpOw0KPj4gICAgICAgICBHRU5FUkFURV9SRUFEX1BSX1JFR19DQVNF
KDE1LCBwcl9yZWFkKTsNCj4+ICAgICBkZWZhdWx0Og0KPj4gICAgICAgICBCVUcoKTsgLyogQ2Fu
J3QgaGFwcGVuICovDQo+PiAgICAgfQ0KPj4gfQ0KPj4gDQo+PiB2b2lkIHdyaXRlX3Byb3RlY3Rp
b25fcmVnaW9uKGNvbnN0IHByX3QgKnByX3dyaXRlLCB1aW50OF90IHNlbCkNCj4+IHsNCj4+ICAg
ICAvKg0KPj4gICAgICAqIEJlZm9yZSBhY2Nlc3NpbmcgRUwyIE1QVSByZWdpb24gcmVnaXN0ZXIg
UFJCQVJfRUwyL1BSTEFSX0VMMiwNCj4+ICAgICAgKiBtYWtlIHN1cmUgUFJTRUxSX0VMMiBpcyBz
ZXQsIGFzIGl0IGRldGVybWluZXMgd2hpY2ggTVBVIHJlZ2lvbg0KPj4gICAgICAqIGlzIHNlbGVj
dGVkLg0KPj4gICAgICAqLw0KPj4gICAgIHByZXBhcmVfc2VsZWN0b3IoJnNlbCk7DQo+PiANCj4+
ICAgICBzd2l0Y2ggKCBzZWwgKQ0KPj4gICAgIHsNCj4+ICAgICAgICAgR0VORVJBVEVfV1JJVEVf
UFJfUkVHX0NBU0UoMCwgcHJfd3JpdGUpOw0KPj4gICAgICAgICBHRU5FUkFURV9XUklURV9QUl9S
RUdfQ0FTRSgxLCBwcl93cml0ZSk7DQo+PiAgICAgICAgIEdFTkVSQVRFX1dSSVRFX1BSX1JFR19D
QVNFKDIsIHByX3dyaXRlKTsNCj4+ICAgICAgICAgR0VORVJBVEVfV1JJVEVfUFJfUkVHX0NBU0Uo
MywgcHJfd3JpdGUpOw0KPj4gICAgICAgICBHRU5FUkFURV9XUklURV9QUl9SRUdfQ0FTRSg0LCBw
cl93cml0ZSk7DQo+PiAgICAgICAgIEdFTkVSQVRFX1dSSVRFX1BSX1JFR19DQVNFKDUsIHByX3dy
aXRlKTsNCj4+ICAgICAgICAgR0VORVJBVEVfV1JJVEVfUFJfUkVHX0NBU0UoNiwgcHJfd3JpdGUp
Ow0KPj4gICAgICAgICBHRU5FUkFURV9XUklURV9QUl9SRUdfQ0FTRSg3LCBwcl93cml0ZSk7DQo+
PiAgICAgICAgIEdFTkVSQVRFX1dSSVRFX1BSX1JFR19DQVNFKDgsIHByX3dyaXRlKTsNCj4+ICAg
ICAgICAgR0VORVJBVEVfV1JJVEVfUFJfUkVHX0NBU0UoOSwgcHJfd3JpdGUpOw0KPj4gICAgICAg
ICBHRU5FUkFURV9XUklURV9QUl9SRUdfQ0FTRSgxMCwgcHJfd3JpdGUpOw0KPj4gICAgICAgICBH
RU5FUkFURV9XUklURV9QUl9SRUdfQ0FTRSgxMSwgcHJfd3JpdGUpOw0KPj4gICAgICAgICBHRU5F
UkFURV9XUklURV9QUl9SRUdfQ0FTRSgxMiwgcHJfd3JpdGUpOw0KPj4gICAgICAgICBHRU5FUkFU
RV9XUklURV9QUl9SRUdfQ0FTRSgxMywgcHJfd3JpdGUpOw0KPj4gICAgICAgICBHRU5FUkFURV9X
UklURV9QUl9SRUdfQ0FTRSgxNCwgcHJfd3JpdGUpOw0KPj4gICAgICAgICBHRU5FUkFURV9XUklU
RV9QUl9SRUdfQ0FTRSgxNSwgcHJfd3JpdGUpOw0KPj4gICAgIGRlZmF1bHQ6DQo+PiAgICAgICAg
IEJVRygpOyAvKiBDYW4ndCBoYXBwZW4gKi8NCj4+ICAgICB9DQo+PiB9DQo+IFRpbGwgaGVyZSBJ
IGFtIGZpbmUgaWYgeW91IHRoaW5rIHRoaXMgaXMgdGhlIGNvcnJlY3QgYXBwcm9hY2ggZm9yIGFy
bTY0Lg0KDQpPaw0KDQo+PiANCj4+IEhlcmUgdGhlIGNvZGUgSSB0aG91Z2h0IHlvdSBjb3VsZCBh
ZGQgZm9yIGFybTMyOg0KPj4gDQo+PiBzdGF0aWMgdm9pZCBwcmVwYXJlX3NlbGVjdG9yKHVpbnQ4
X3QgKnNlbCkNCj4+IHsNCj4+ICAgICB1aW50OF90IGN1cl9zZWwgPSAqc2VsOw0KPj4gDQo+PiAj
aWZkZWYgQ09ORklHX0FSTV82NA0KPj4gICAgIC8qDQo+PiAgICAgICoge3JlYWQsd3JpdGV9X3By
b3RlY3Rpb25fcmVnaW9uIHdvcmtzIHVzaW5nIHRoZSBkaXJlY3QgYWNjZXNzIHRvIHRoZSAwLi4x
NQ0KPj4gICAgICAqIHJlZ2lvbnMsIHNvIGluIG9yZGVyIHRvIHNhdmUgdGhlIGlzYigpIG92ZXJo
ZWFkLCBjaGFuZ2UgdGhlIFBSU0VMUl9FTDINCj4+ICAgICAgKiBvbmx5IHdoZW4gbmVlZGVkLCBz
byB3aGVuIHRoZSB1cHBlciA0IGJpdHMgb2YgdGhlIHNlbGVjdG9yIHdpbGwgY2hhbmdlLg0KPj4g
ICAgICAqLw0KPj4gICAgIGN1cl9zZWwgJj0gMHhGMFU7DQo+PiAgICAgaWYgKCBSRUFEX1NZU1JF
RyhQUlNFTFJfRUwyKSAhPSBjdXJfc2VsICkNCj4+ICAgICB7DQo+PiAgICAgICAgIFdSSVRFX1NZ
U1JFRyhjdXJfc2VsLCBQUlNFTFJfRUwyKTsNCj4+ICAgICAgICAgaXNiKCk7DQo+PiAgICAgfQ0K
Pj4gICAgICpzZWwgPSAqc2VsICYgMHhGVTsNCj4+ICNlbHNlDQo+PiAgICAgaWYgKCBjdXJfc2Vs
ID4gMjMgKQ0KPj4gICAgICAgICBwYW5pYygiQXJtdjgtUiBBQXJjaDMyIHJlZ2lvbiBzZWxlY3Rv
ciBleGNlZWRzIG1heGltdW0gYWxsb3dlZCByYW5nZSEiKTsNCj4gSSBhbSBub3Qgc3VyZSBhYm91
dCB0aGlzLiBTZWUgbXkgcXVlc3Rpb24gYmVmb3JlLiBIb3dldmVyIC4uLg0KPj4gI2VuZGlmDQo+
PiB9DQo+IA0KPiBGcm9tIEFSTSBEREkgMDU2OEEuYyBJRDExMDUyMA0KPiANCj4gRTIuMi4zIEhQ
UkJBUjxuPiAtIFByb3ZpZGVzIGFjY2VzcyB0byB0aGUgYmFzZSBhZGRyZXNzZXMgZm9yIHRoZSBm
aXJzdCAzMiBkZWZpbmVkIEVMMiBNUFUgcmVnaW9ucy4NCj4gDQo+IEUyLjIuNiBIUFJMQVI8bj4g
LSBQcm92aWRlcyBhY2Nlc3MgdG8gdGhlIGxpbWl0IGFkZHJlc3NlcyBmb3IgdGhlIGZpcnN0IDMy
IGRlZmluZWQgRUwyIE1QVSByZWdpb25zLg0KPiANCj4gSSB1bmRlcnN0YW5kIHRoYXQgSFBSU0VM
UiBpcyBub3QgdXNlZCB3aGVuIGRpcmVjdGx5IGFjY2Vzc2luZyB0aGUgYWJvdmUgdHdvIHJlZ2lz
dGVycy4gVGh1cywgdGhpcyBmdW5jdGlvbiB3aWxsIGJlIGEgbm9wIGZvciBBcm0zMi4gUGxlYXNl
IGxldCBtZSBrbm93IGlmIEkgYW0gbWlzdGFrZW4uDQoNCnllcyB5b3UgYXJlIHJpZ2h0LCB5b3Ug
Y2FuIGRlY2lkZSBpZiBkb2luZyBzb21ldGhpbmcgb3Igbm90IGluIHRoYXQgZnVuY3Rpb24sIHlv
dSBkb27igJl0IG5lZWQgdG8gY2hhbmdlIHRoZSBzZWxlY3Rvci4NCg0KDQo+IA0KPj4gDQo+PiB2
b2lkIHJlYWRfcHJvdGVjdGlvbl9yZWdpb24ocHJfdCAqcHJfcmVhZCwgdWludDhfdCBzZWwpDQo+
PiB7DQo+PiAgICAgLyoNCj4+ICAgICAgKiBCZWZvcmUgYWNjZXNzaW5nIEVMMiBNUFUgcmVnaW9u
IHJlZ2lzdGVyIFBSQkFSX0VMMi9QUkxBUl9FTDIsDQo+PiAgICAgICogbWFrZSBzdXJlIFBSU0VM
Ul9FTDIgaXMgc2V0LCBhcyBpdCBkZXRlcm1pbmVzIHdoaWNoIE1QVSByZWdpb24NCj4+ICAgICAg
KiBpcyBzZWxlY3RlZC4NCj4+ICAgICAgKi8NCj4+ICAgICBwcmVwYXJlX3NlbGVjdG9yKCZzZWwp
Ow0KPj4gDQo+PiAgICAgc3dpdGNoICggc2VsICkNCj4+ICAgICB7DQo+PiAgICAgICAgIEdFTkVS
QVRFX1JFQURfUFJfUkVHX0NBU0UoMCwgcHJfcmVhZCk7DQo+PiAgICAgICAgIEdFTkVSQVRFX1JF
QURfUFJfUkVHX0NBU0UoMSwgcHJfcmVhZCk7DQo+PiAgICAgICAgIEdFTkVSQVRFX1JFQURfUFJf
UkVHX0NBU0UoMiwgcHJfcmVhZCk7DQo+PiAgICAgICAgIEdFTkVSQVRFX1JFQURfUFJfUkVHX0NB
U0UoMywgcHJfcmVhZCk7DQo+PiAgICAgICAgIEdFTkVSQVRFX1JFQURfUFJfUkVHX0NBU0UoNCwg
cHJfcmVhZCk7DQo+PiAgICAgICAgIEdFTkVSQVRFX1JFQURfUFJfUkVHX0NBU0UoNSwgcHJfcmVh
ZCk7DQo+PiAgICAgICAgIEdFTkVSQVRFX1JFQURfUFJfUkVHX0NBU0UoNiwgcHJfcmVhZCk7DQo+
PiAgICAgICAgIEdFTkVSQVRFX1JFQURfUFJfUkVHX0NBU0UoNywgcHJfcmVhZCk7DQo+PiAgICAg
ICAgIEdFTkVSQVRFX1JFQURfUFJfUkVHX0NBU0UoOCwgcHJfcmVhZCk7DQo+PiAgICAgICAgIEdF
TkVSQVRFX1JFQURfUFJfUkVHX0NBU0UoOSwgcHJfcmVhZCk7DQo+PiAgICAgICAgIEdFTkVSQVRF
X1JFQURfUFJfUkVHX0NBU0UoMTAsIHByX3JlYWQpOw0KPj4gICAgICAgICBHRU5FUkFURV9SRUFE
X1BSX1JFR19DQVNFKDExLCBwcl9yZWFkKTsNCj4+ICAgICAgICAgR0VORVJBVEVfUkVBRF9QUl9S
RUdfQ0FTRSgxMiwgcHJfcmVhZCk7DQo+PiAgICAgICAgIEdFTkVSQVRFX1JFQURfUFJfUkVHX0NB
U0UoMTMsIHByX3JlYWQpOw0KPj4gICAgICAgICBHRU5FUkFURV9SRUFEX1BSX1JFR19DQVNFKDE0
LCBwcl9yZWFkKTsNCj4+ICAgICAgICAgR0VORVJBVEVfUkVBRF9QUl9SRUdfQ0FTRSgxNSwgcHJf
cmVhZCk7DQo+PiAjaWZkZWYgQ09ORklHX0FSTV8zMg0KPj4gICAgICAgICBHRU5FUkFURV9SRUFE
X1BSX1JFR19DQVNFKDE2LCBwcl9yZWFkKTsNCj4+ICAgICAgICAgR0VORVJBVEVfUkVBRF9QUl9S
RUdfQ0FTRSgxNywgcHJfcmVhZCk7DQo+PiAgICAgICAgIEdFTkVSQVRFX1JFQURfUFJfUkVHX0NB
U0UoMTgsIHByX3JlYWQpOw0KPj4gICAgICAgICBHRU5FUkFURV9SRUFEX1BSX1JFR19DQVNFKDE5
LCBwcl9yZWFkKTsNCj4+ICAgICAgICAgR0VORVJBVEVfUkVBRF9QUl9SRUdfQ0FTRSgyMCwgcHJf
cmVhZCk7DQo+PiAgICAgICAgIEdFTkVSQVRFX1JFQURfUFJfUkVHX0NBU0UoMjEsIHByX3JlYWQp
Ow0KPj4gICAgICAgICBHRU5FUkFURV9SRUFEX1BSX1JFR19DQVNFKDIyLCBwcl9yZWFkKTsNCj4+
ICAgICAgICAgR0VORVJBVEVfUkVBRF9QUl9SRUdfQ0FTRSgyMywgcHJfcmVhZCk7DQo+IEF0IGxl
YXN0IDMyIHJlZ2lvbnMgYXJlIGRpcmVjdGx5IGFjY2Vzc2libGUsIHRodXMgdGhpc24gc2hvdWxk
IGdvIHRpbGwgMzEgKDAtMzEpLiBTYW1lIC4uDQoNCnllYWggeW91IGNhbiBhZGQgdW50aWwgdGhl
IDMxc3QgaGVyZSBhbmQgLi4uDQoNCj4+ICNlbmRpZg0KPj4gICAgIGRlZmF1bHQ6DQo+PiAgICAg
ICAgIEJVRygpOyAvKiBDYW4ndCBoYXBwZW4gKi8NCj4+ICAgICB9DQo+PiB9DQo+PiANCj4+IHZv
aWQgd3JpdGVfcHJvdGVjdGlvbl9yZWdpb24oY29uc3QgcHJfdCAqcHJfd3JpdGUsIHVpbnQ4X3Qg
c2VsKQ0KPj4gew0KPj4gICAgIC8qDQo+PiAgICAgICogQmVmb3JlIGFjY2Vzc2luZyBFTDIgTVBV
IHJlZ2lvbiByZWdpc3RlciBQUkJBUl9FTDIvUFJMQVJfRUwyLA0KPj4gICAgICAqIG1ha2Ugc3Vy
ZSBQUlNFTFJfRUwyIGlzIHNldCwgYXMgaXQgZGV0ZXJtaW5lcyB3aGljaCBNUFUgcmVnaW9uDQo+
PiAgICAgICogaXMgc2VsZWN0ZWQuDQo+PiAgICAgICovDQo+PiAgICAgcHJlcGFyZV9zZWxlY3Rv
cigmc2VsKTsNCj4+IA0KPj4gICAgIHN3aXRjaCAoIHNlbCApDQo+PiAgICAgew0KPj4gICAgICAg
ICBHRU5FUkFURV9XUklURV9QUl9SRUdfQ0FTRSgwLCBwcl93cml0ZSk7DQo+PiAgICAgICAgIEdF
TkVSQVRFX1dSSVRFX1BSX1JFR19DQVNFKDEsIHByX3dyaXRlKTsNCj4+ICAgICAgICAgR0VORVJB
VEVfV1JJVEVfUFJfUkVHX0NBU0UoMiwgcHJfd3JpdGUpOw0KPj4gICAgICAgICBHRU5FUkFURV9X
UklURV9QUl9SRUdfQ0FTRSgzLCBwcl93cml0ZSk7DQo+PiAgICAgICAgIEdFTkVSQVRFX1dSSVRF
X1BSX1JFR19DQVNFKDQsIHByX3dyaXRlKTsNCj4+ICAgICAgICAgR0VORVJBVEVfV1JJVEVfUFJf
UkVHX0NBU0UoNSwgcHJfd3JpdGUpOw0KPj4gICAgICAgICBHRU5FUkFURV9XUklURV9QUl9SRUdf
Q0FTRSg2LCBwcl93cml0ZSk7DQo+PiAgICAgICAgIEdFTkVSQVRFX1dSSVRFX1BSX1JFR19DQVNF
KDcsIHByX3dyaXRlKTsNCj4+ICAgICAgICAgR0VORVJBVEVfV1JJVEVfUFJfUkVHX0NBU0UoOCwg
cHJfd3JpdGUpOw0KPj4gICAgICAgICBHRU5FUkFURV9XUklURV9QUl9SRUdfQ0FTRSg5LCBwcl93
cml0ZSk7DQo+PiAgICAgICAgIEdFTkVSQVRFX1dSSVRFX1BSX1JFR19DQVNFKDEwLCBwcl93cml0
ZSk7DQo+PiAgICAgICAgIEdFTkVSQVRFX1dSSVRFX1BSX1JFR19DQVNFKDExLCBwcl93cml0ZSk7
DQo+PiAgICAgICAgIEdFTkVSQVRFX1dSSVRFX1BSX1JFR19DQVNFKDEyLCBwcl93cml0ZSk7DQo+
PiAgICAgICAgIEdFTkVSQVRFX1dSSVRFX1BSX1JFR19DQVNFKDEzLCBwcl93cml0ZSk7DQo+PiAg
ICAgICAgIEdFTkVSQVRFX1dSSVRFX1BSX1JFR19DQVNFKDE0LCBwcl93cml0ZSk7DQo+PiAgICAg
ICAgIEdFTkVSQVRFX1dSSVRFX1BSX1JFR19DQVNFKDE1LCBwcl93cml0ZSk7DQo+PiAjaWZkZWYg
Q09ORklHX0FSTV8zMg0KPj4gICAgICAgICBHRU5FUkFURV9XUklURV9QUl9SRUdfQ0FTRSgxNiwg
cHJfd3JpdGUpOw0KPj4gICAgICAgICBHRU5FUkFURV9XUklURV9QUl9SRUdfQ0FTRSgxNywgcHJf
d3JpdGUpOw0KPj4gICAgICAgICBHRU5FUkFURV9XUklURV9QUl9SRUdfQ0FTRSgxOCwgcHJfd3Jp
dGUpOw0KPj4gICAgICAgICBHRU5FUkFURV9XUklURV9QUl9SRUdfQ0FTRSgxOSwgcHJfd3JpdGUp
Ow0KPj4gICAgICAgICBHRU5FUkFURV9XUklURV9QUl9SRUdfQ0FTRSgyMCwgcHJfd3JpdGUpOw0K
Pj4gICAgICAgICBHRU5FUkFURV9XUklURV9QUl9SRUdfQ0FTRSgyMSwgcHJfd3JpdGUpOw0KPj4g
ICAgICAgICBHRU5FUkFURV9XUklURV9QUl9SRUdfQ0FTRSgyMiwgcHJfd3JpdGUpOw0KPj4gICAg
ICAgICBHRU5FUkFURV9XUklURV9QUl9SRUdfQ0FTRSgyMywgcHJfd3JpdGUpOw0KPiBmb3IgaGVy
ZS4NCg0KYWxzbyBoZXJlLg0KDQpTbyBJIGd1ZXNzIHdlIGFyZSBhbGlnbmVkIGZvciB0aGlzIHBh
dGNoIHJpZ2h0PyBJIHdpbGwgdXBkYXRlIHRoaXMgcGF0Y2ggYXMgdGhlIGNvZGUgYWJvdmUgYW5k
IHlvdQ0Kd2lsbCBtb2RpZnkgdGhlIGNvZGUgZm9yIGFybTMyIHRvIHN1cHBvcnQgdGhlIGRpcmVj
dCBhY2Nlc3MgdXAgdG8gMzIgcmVnaW9uLiBPaz8NCg0KQ2hlZXJzLA0KTHVjYQ0KDQoNCg==


From xen-devel-bounces@lists.xenproject.org Wed Apr 09 10:28:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 10:28:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.943804.1342430 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2SfJ-00079k-Pc; Wed, 09 Apr 2025 10:28:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 943804.1342430; Wed, 09 Apr 2025 10: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 1u2SfJ-00079d-MB; Wed, 09 Apr 2025 10:28:17 +0000
Received: by outflank-mailman (input) for mailman id 943804;
 Wed, 09 Apr 2025 10:28: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=Yx2+=W3=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u2SfI-00079V-Cu
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 10:28:16 +0000
Received: from NAM10-BN7-obe.outbound.protection.outlook.com
 (mail-bn7nam10on20605.outbound.protection.outlook.com
 [2a01:111:f403:2009::605])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5709d184-152d-11f0-9ffb-bf95429c2676;
 Wed, 09 Apr 2025 12:28:13 +0200 (CEST)
Received: from MW2PR16CA0024.namprd16.prod.outlook.com (2603:10b6:907::37) by
 MW4PR12MB6898.namprd12.prod.outlook.com (2603:10b6:303:207::6) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.8606.31; Wed, 9 Apr 2025 10:28:08 +0000
Received: from SJ1PEPF00001CE8.namprd03.prod.outlook.com
 (2603:10b6:907:0:cafe::f8) by MW2PR16CA0024.outlook.office365.com
 (2603:10b6:907::37) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.20 via Frontend Transport; Wed,
 9 Apr 2025 10:28:08 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ1PEPF00001CE8.mail.protection.outlook.com (10.167.242.24) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8606.22 via Frontend Transport; Wed, 9 Apr 2025 10:28:08 +0000
Received: from localhost (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, 9 Apr
 2025 05:28:05 -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: 5709d184-152d-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=jc/q2uTYLCvPJooskCBhK9MimAp8FkNPVaGyh/1Dira35xMq2d9kobd75YqIVkog6o6HkIW61XAmurAP8POc9bmg2CrG7LFqyPPGu2baUXrRiA0kBccfR00nmxa4+KN+CaPisQylveUlcdMtfcbPt3WvLuhG/L1S8pq3JicBu2coqSIT6VcUst2nUPakq1PLfk83mNWH3Tl1x2UldcGm10FA1SU7rUYVqRgRQMLZyVwQaozZp3mfzDZUX12/b1jlU9i/qH4dTLLPD+0ku5qtBahICT/yIrRxwrd2ENWeW1LBl+VzeR0qi6k6Rm5+gx60gPdczSGik/GuLirm/hA0RA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=EIqEyIM6x0v6E3ZGjk2b4m08c5+ps5PMNq22O4+Mjd4=;
 b=a2L29mkn3QS1rzfqeMvGhVenHbbt8yKnhyVgYmYAf7WznnuxivtEIjClCQXB8jiUspEAmQHiSZ9za43EWn/bpk4RgI+Ot+teDaxWH5hpyeDkjncCfOYB6VPlUeOEs9jQHKtfqxCParZJbuDhx0909oTjCgaJ0+98tnC78e3GPaCfx9AZZxeTv1sun1T7eCVvRGS3BgN466yNiZeMspP7CaD8eZZdd+dOWE1aNsZ2RzW6bGaDN6UlUKjZbX+/zFRQPO3xGyZsx7q/xVWo2cNyAQfTZO7PPzY11xVkKvQ4rDJUGJ63IRLW1T7tSTpQyJq0iIF/Upxx40JyLgpMeTq+Ww==
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=EIqEyIM6x0v6E3ZGjk2b4m08c5+ps5PMNq22O4+Mjd4=;
 b=lY6DwHt9btRBZ2piQmjcJyO6wAcAG4rp6qcmYdL2rurF8k/Djvaa8QLyMJrt8T2kv3qe51EEAI7hUwt+04zPiNh05vDXo3oZ+PLXRdHiJQsK2aA0GSuj0Vc82xHPYDRKX2y2JF4fsRsoUq8cQPuclHuqRBDun9GazVdqdSUl4J8=
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
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Wed, 9 Apr 2025 11:28:04 +0100
Message-ID: <D921CCFOSV90.2LUNCRRSE6Q5M@amd.com>
CC: Jason Andryuk <jason.andryuk@amd.com>, Xenia Ragiadakou
	<xenia.ragiadakou@amd.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@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>
Subject: Re: [PATCH v3 01/16] x86/boot: introduce boot domain
From: Alejandro Vallejo <agarciav@amd.com>
To: Jan Beulich <jbeulich@suse.com>, "Daniel P. Smith"
	<dpsmith@apertussolutions.com>
X-Mailer: aerc 0.20.1
References: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-2-agarciav@amd.com>
 <141229a0-2cd2-4886-b5e5-02c85b0ca5ab@suse.com>
In-Reply-To: <141229a0-2cd2-4886-b5e5-02c85b0ca5ab@suse.com>
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: SJ1PEPF00001CE8:EE_|MW4PR12MB6898:EE_
X-MS-Office365-Filtering-Correlation-Id: 08b78f76-b9a7-49c7-663f-08dd775138c1
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|36860700013|1800799024|82310400026|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?bmQzMUpDU3ZVRHFlS2RrUDdrOTBlKythMkc4K24yalIxVmdNamFvYVd4ZEls?=
 =?utf-8?B?dk05L1FhOGltMHczdENoVmZBZXppTkNZMkJ1L1J6L3VQaW1qUUt6cWNZK1Fs?=
 =?utf-8?B?UytuMWNjeWFrdjg2REhjNklRcjZzeHZCeGsvU0IyRFYyL1IxL25SZUhHOWJo?=
 =?utf-8?B?UHFtNldYdUpJb1NwL0lNN0xLeGJzNXpHQ0I1UlRWdndDZUNRVk9IRU5PNC9n?=
 =?utf-8?B?Z2NCcUI2dUk2Y1UxektnMDBUN01OODQ0MzZlbytzVlVWS0ZtcnNabFVKbXNi?=
 =?utf-8?B?VTV2MVR1bzVXTDFzT3VkL3N6TEJsTzBjVFB0eS90SlVlZktLcnNNditwT2N3?=
 =?utf-8?B?UzhzQ3NwNVpZYTJYamN5WEhMbG1YSURJMmczNzk3YklPb21pdmFpYmJrRC9G?=
 =?utf-8?B?dFB1NU9COFdTSW5hWTdnbFJieXZNMnQvUHBnWW9YRTZKRVMzbnZBaDZUWHc5?=
 =?utf-8?B?M0ZnWng3R1hzNEZkQWxJb054U0NxREJWMWg3U3VseE9OenBYRWJDMlpHNTJu?=
 =?utf-8?B?UVZQOUNxN0gzdGFZSGNBeTY3ZXNyOSt3VTdFQTZtSjRkRGlySm10cnNFV3J2?=
 =?utf-8?B?VGc1TTcrbjFZdHMxaWJhdVdialBUVkVKZmdRWjhVTlRhQkpwMEE5TXlTRmFG?=
 =?utf-8?B?ZnNCVFZ6OStuQUtFa3RqWHM4M3R6QkxRWTMzWlFBN1EzWHZCM2xiUk1oUEd2?=
 =?utf-8?B?M2VuS1RhNzRZTVV6R2Q1V0xnOUQyakdhSXZZYlQ1RjFzMHREdlcxMHpxMmV0?=
 =?utf-8?B?c3F0WCt0NXA3Umh6MWxkVFNXSDFUQWMySjlFR01YRkFhNlJzajVQWFJraDNs?=
 =?utf-8?B?SExZcHJnQUVBODhIMGVLYzVUZmROenFjckVoNXpBVStTZUxVcGp5WC96b0ZD?=
 =?utf-8?B?RDluaEZCNUNzNlZ2Z3c4dDlKSXUrK3AzOE1lYXcxeXFLNTZ5dU43Tmd5bEVY?=
 =?utf-8?B?VHU0YWJMSzZSVUdPZ21lOVJRSjRlTENPVTlxaHhCMEp0eHFydWQ4SlJzQWVB?=
 =?utf-8?B?QlZhUDN4RFluZ3BQZzdVR3FodEZHOGhuNFVIdzFLbEVHS2EwaXcxUWVXSGdN?=
 =?utf-8?B?cHo1amxoMU04eDZkR1kwK21DN2ozaHJ5eHM4Z3JUT1ZHNU91VTlsSG5DNExq?=
 =?utf-8?B?d242bU5GeVpuUUhHOVR2RVdKWkxLQTFvT1ZPNVNFbWFLNmRZd2p4NkNLS0Qw?=
 =?utf-8?B?eXFMaGtKcVNMOVMwbUZCdVJaTkhRN2hheEVHNEpoamJGbS9JZTB2N1BseVNC?=
 =?utf-8?B?UVlYYW0xS3hmWW9MbnpSemVEU2NuRENpMGJ2SzdLSHNMa094RXhwN2dEZTFH?=
 =?utf-8?B?Nm82d0ZxUnFINFVrcWhKcEd1Z2ZhVk9kTi9pTEJwNTRUVytOdXl4MFdWK0tN?=
 =?utf-8?B?WWFaV2FsRjB1blNINkplTThIbHJiMEdQMkdGcGRyRERDWnNZdHp5L3g5WTZO?=
 =?utf-8?B?SVpPRW9FVWdzT2ZWc1BJalBTcG1mZENSWWx5UmYwdHBBcFBrUm54dVVLVElC?=
 =?utf-8?B?Y1BNaWxUUm11OUFQR3JhWk4zbStzQUJpeWtxa2lJR05PaEZpdG1qUGRFNHlU?=
 =?utf-8?B?YU1VcmVuY3Ftbm0xejM2YU5kcVhCOTJPTWhMQXJOLy9mZnlTbk1MZ1p5MXJo?=
 =?utf-8?B?YkQ3TzQrVmxXKzhDZk9CYVc1Tjl0YXMvTTN4RWdRWDBKc2RGT1N6aFZGS3Nm?=
 =?utf-8?B?L1BCUGF3czV6OHJDcEI5NjgzQTZwc0o3NHJUUmZuOEFFTVJLaDV2N0NIb2wr?=
 =?utf-8?B?Rzcvc0EzbXlMQ2xwdEpKNVBjUGxhYkE4b0ZYNEV3RGJNanJuNXN4MVF6MHc2?=
 =?utf-8?B?TE9VbUx0T3lodDBiMlg4ZjVaZ2J0eXBmczNvV1BncnpNOFRHRXhVQUtXNHNJ?=
 =?utf-8?B?RFBUYUZneG9lQU9ZOTFqUnJjMjIraEJNUWhaVEFiSVVGZGtvWDJET3lZcVM4?=
 =?utf-8?B?UGNmZWt2YTVYYk5rUFl4YU45dkUwbG9UNDBnSjZUUHQ3emg2U1VIME1meFZT?=
 =?utf-8?B?d0FrL1hYQ2JyT1ZQVHJvdjhXQVFIeWFWWWZYcFFBRzFlamhJZGlqQlZyRWdn?=
 =?utf-8?Q?Ngbh+f?=
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)(1800799024)(82310400026)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Apr 2025 10:28:08.3327
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 08b78f76-b9a7-49c7-663f-08dd775138c1
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:
	SJ1PEPF00001CE8.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR12MB6898

On Wed Apr 9, 2025 at 7:24 AM BST, Jan Beulich wrote:
> On 08.04.2025 18:07, Alejandro Vallejo wrote:
>> From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
>>=20
>> To begin moving toward allowing the hypervisor to construct more than on=
e
>> domain at boot, a container is needed for a domain's build information.
>> Introduce a new header, <xen/asm/bootdomain.h>, that contains the initia=
l
>> struct boot_domain that encapsulate the build information for a domain.
>>=20
>> Add a kernel and ramdisk boot module reference along with a struct domai=
n
>> reference to the new struct boot_domain. This allows a struct boot_domai=
n
>> reference to be the only parameter necessary to pass down through the do=
main
>> construction call chain.
>>=20
>> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
>> Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>
>
> Acked-by: Jan Beulich <jbeulich@suse.com>

Thanks

>
>> --- /dev/null
>> +++ b/xen/arch/x86/include/asm/boot-domain.h
>> @@ -0,0 +1,28 @@
>> +/* 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>
>> + */
>
> I wonder if the 2024-s here shouldn't have been amended by 2025 now.

Maybe. I didn't think about it, tbh. One could argue that Daniel and
Christopher's original contribution was indeed in 2024 and the fact they
weren't committed until (hopefully!) 2025 doesn't remove the fact they
did exist in some form in 2024.

I don't particularly care either way, but tend to lean on the "it's fine
how it is".

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Wed Apr 09 10:34:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 10:34:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.943816.1342440 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2Sl0-0001jO-CE; Wed, 09 Apr 2025 10:34:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 943816.1342440; Wed, 09 Apr 2025 10:34: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 1u2Sl0-0001jH-9K; Wed, 09 Apr 2025 10:34:10 +0000
Received: by outflank-mailman (input) for mailman id 943816;
 Wed, 09 Apr 2025 10:34: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=Yx2+=W3=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u2Sky-0001jB-HY
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 10:34:08 +0000
Received: from NAM04-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam04on20612.outbound.protection.outlook.com
 [2a01:111:f403:2409::612])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 28d43387-152e-11f0-9ffb-bf95429c2676;
 Wed, 09 Apr 2025 12:34:05 +0200 (CEST)
Received: from SJ0PR13CA0121.namprd13.prod.outlook.com (2603:10b6:a03:2c6::6)
 by CYXPR12MB9277.namprd12.prod.outlook.com (2603:10b6:930:d8::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.21; Wed, 9 Apr
 2025 10:34:02 +0000
Received: from SN1PEPF000397AE.namprd05.prod.outlook.com
 (2603:10b6:a03:2c6:cafe::b2) by SJ0PR13CA0121.outlook.office365.com
 (2603:10b6:a03:2c6::6) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.11 via Frontend Transport; Wed,
 9 Apr 2025 10:34:01 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SN1PEPF000397AE.mail.protection.outlook.com (10.167.248.52) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8632.13 via Frontend Transport; Wed, 9 Apr 2025 10:34:01 +0000
Received: from localhost (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, 9 Apr
 2025 05:33:58 -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: 28d43387-152e-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=jv8cnczwM1mTrJylI+9ssJ45qMOGfAJi7+O1Cvju7Qg7GkB8Yb4Y2cUdEci0ACAp9HYKC9h2AS78ZgmuzLCFCrvP83Rovp2jegMHEg+Tjk26Ve7iQH8RC9pXrno5INLeArkhxRMIrUadiqTC0q0gYgW2uwos7FyUCxgClh8BLleKIRqQTBQieeCiwPZ/lE8b71LIGDikOJWUcLdHlPUh1VUKkSWhV9o8b3SHvsYHhdLY01pUV7LqN/wbHBFBPbWvzbYhixCFczaeqv6seDQm1pAZPfhpKCqVV4l/zVhLLxzUZJJCn3I8Fs9swn125N0vNJGJPrdfewVYhb7O9y38yA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=pke6scDrYyqJ8alNKcGehBSfFs5tCsHErWrJaemKv94=;
 b=s3D9TAOO9xXvlN4bnQccZTmQNSw1b3nB/OYDbVxKdg23VSuRUFEgUDvEmXxVFltHdGoSRHWmxOZO5Ly3+Kp0WxOrbZuVApDs123E9+qiKlUOnDi5fSwxURtetYc2EUj34trIP9PTisb8CkV66nfSrJqTNexPP8UNLctxDqJdCkl7qBg/Pqd/bj1KXdcGoVfN1eYv7GKGqzV7SrqcRqB8cqXd+xW6JQalgQf42lS8uNVG2EVlNyyCkd8rCNqJQxbJVfEb5Stp0bBCxKn2fJdrUwTbtrDfEjq8oWiCq+8D93Ff8vsqxrCViUz8S91Og6A7kXQTkQYN5h8NH2xAZ5XYcw==
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=pke6scDrYyqJ8alNKcGehBSfFs5tCsHErWrJaemKv94=;
 b=RT9sWs9YgF6FAQWx1s2tcN6wLp5NJWhpFb7kwFp/DOVxYH8RPD3sIuPqHPssPwhX0nu4GqOl0BJyuEKucUtKJ8oLS2iqMIQIw5NOAs1/zcYfo4pAsP3AfIaUFrRGkA4UwZ8/22TAO7CV95Yl86UZBDn7te3nTt7eGm7mPcDBDXg=
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
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Wed, 9 Apr 2025 11:33:56 +0100
Message-ID: <D921GUF7GQSF.F8WN34U5M7L4@amd.com>
CC: "Daniel P. Smith" <dpsmith@apertussolutions.com>, Jason Andryuk
	<jason.andryuk@amd.com>, Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	"Stefano Stabellini" <sstabellini@kernel.org>, Michal Orzel
	<michal.orzel@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>
Subject: Re: [PATCH v3 02/16] x86/boot: introduce domid field to struct
 boot_domain
From: Alejandro Vallejo <agarciav@amd.com>
To: Jan Beulich <jbeulich@suse.com>
X-Mailer: aerc 0.20.1
References: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-3-agarciav@amd.com>
 <8089dab8-d94d-4eca-ad75-fec972386c80@suse.com>
In-Reply-To: <8089dab8-d94d-4eca-ad75-fec972386c80@suse.com>
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: SN1PEPF000397AE:EE_|CYXPR12MB9277:EE_
X-MS-Office365-Filtering-Correlation-Id: fc86b9eb-8f0a-423a-2d40-08dd77520b54
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?S1U2NWNSaDBvbmo1a1FpTTBaNU5kczYycThhRWN1LzN3bERFbDB2VjhQRWhv?=
 =?utf-8?B?aE1FYmJGc21pWHAvLzhoWUd2Nk1UWE9kV3B2bk01NlVMbkVRKzZmeVNiWXlr?=
 =?utf-8?B?QTFVSEYxWG9oS00yelFvbzdBb3NFVXFNRkdWUCtsdmdkQk10bVNGZmhydGgy?=
 =?utf-8?B?NnUrUVhZWFljRC9FN1FMQ0tXeUNqYWZDZzFEdWdmTHJ6L1RZRHlJWXF5MFM0?=
 =?utf-8?B?TndCeHdxeHJUUmU5bjBXMzdKTU53VW1hQnRtOGROakpoTTVPdVhCOXRwSTNT?=
 =?utf-8?B?TlBiWWphRkdoeTZWcFgwTFFTQm1qSWs1YzAvVTVYYTJyeXBqUi9WRFNHNnA5?=
 =?utf-8?B?Q3orcFRCUFZYY0pLUGlSVzI1dHRzdVFZaUFTb3p3VWl2eUdQS2xsNGtnaitr?=
 =?utf-8?B?U2tjb1djQkkxZElSMUo3RzUyOGRzRzlMR3FubFlxcmwrVVlyWlBvSGFrSDdN?=
 =?utf-8?B?VzJCYXowd1hlVWZnL1c0c05XS3g3RFZpQVBmY1ZmMDFQM2FHK2V5eVptZ25F?=
 =?utf-8?B?UlQ2MFdlOEFtTG51elAwNm9HM2Z3NjBKT0JWWTJCc1dIU2pRYlNOWkR1UUUw?=
 =?utf-8?B?WDY4WWgrN2FkUHBZN1FRVVRyd2oxWnJWeCsyeEhCa3o5RzZrL255aHB4blVk?=
 =?utf-8?B?aUpaS3FTMFVqL25zYUVBdmFhbHVSRkYyUldsbGdCblltUERBU1FMejhaeVB3?=
 =?utf-8?B?OWhwNURCZ3dyTFozSEk1MUdwdFROWU81QVZKd1FhdlJac202amZzaGFTNUl2?=
 =?utf-8?B?bnBPT0l2dHVZendjWGlPSW1kMWs2ZjV3VkRGSmxCTXZoUnRCdzUxbVR1TzlD?=
 =?utf-8?B?cTErdTJXTzA1cVAzNnN0ajZWaTlUdGRucmNyM3VydktyclFjb252b1pVM0Vk?=
 =?utf-8?B?RjN2bWZUeFJKWjVVVktUVWprSENLS3lMQW1WRWxHWFVtNTd1aEZxcHN1SEFz?=
 =?utf-8?B?clpUMHVoNEVaQ3F0dm9Kb0lNbWs2R2x6WGgwN0Y2djQ4NWs3TXNUV0tVU2xS?=
 =?utf-8?B?bElEWFJRd2hpcHN5ZWVOdlBYT3d4cDMzVFZtdURDbDhIOE9UcGk2SkFBZlhU?=
 =?utf-8?B?QnFwVmpYcVVIZW5acmtDYlRCWXVidkQ5S0l3WWFLYURrdkt3dmhNZ0ozTjlo?=
 =?utf-8?B?Tm52a3FlZytDdEVCaThpT1JEa3pRNFJsb1BFWXlNajB6VFAraXhwM29nT2FL?=
 =?utf-8?B?b0FGaWkxSUlRTVMzZ2YyM3hHTjlYWDlxNmhnR0ZpUmF1cUlKVTM1TVJ0MDFQ?=
 =?utf-8?B?VG5ib1ZPdzI1ZHJNNTFvdkdSc25jTHFMNWovZ0N6czZMbzBVWU9zVUdpMGNX?=
 =?utf-8?B?VVVlbU0zbkQxWkdCd0krSUJqZGlRTWlIN0ZvWnZhYVVYd0NmTC9YeVJNTDVh?=
 =?utf-8?B?MDhmUnRpRWg3Q01hUktrR0lvNytnc1RUVXJLVm0vSjgzQnVOMngrVEZ3eUFk?=
 =?utf-8?B?U09tMjhrQjN4R0hqcDYwUlNuK0hWR3RlRnBHN0VCaFA1Z01pM2tqaDdaTmx5?=
 =?utf-8?B?amd5WCt4d0FSR056RmZxK3hxZkdiOCtvOUw5bjBsaS9hVXYzZURnVWgrd2ps?=
 =?utf-8?B?YS9TakUzQTVsSFNNQnZiamtDb0ZYZWpGQWgrc1lFb0grY3pSYVVJdnk4L25z?=
 =?utf-8?B?bE5jZ2FKU2k4V1hJTUZTWThjakpHWjR2T1Zia0xsNzdnRE4yNzFuR1VIeGV3?=
 =?utf-8?B?cWhzZE1waU9udG1oam5TeHBua3BQMTlOR1VpV2x6bzhJQ2ppY2U2RUFKRmlh?=
 =?utf-8?B?TFpYU2dIN2lTL285a20vQTZJSjhpL1lBT3R2ejNxaXFWREZJY2t2akVGWHNj?=
 =?utf-8?B?Nk5UM09MY3hoVFpqS01NUWltUktySUUrSHBNbiszOXhtNFRPYnhxQ2VFTitB?=
 =?utf-8?B?elR5VTRmWUtSb1MxNStvVlc0V21idTMvRHJvalM0RDJTQi9ZWDZZbjd5bDJ6?=
 =?utf-8?B?Y3kxMXVRSEpoMGxKZkZjUFhXaXlPRm83cUdSOXR1UnVWS05LWXF2QmFZY1ZE?=
 =?utf-8?B?MU5ybnhTeHFMelFqNTJFRjdYTzVERkowa0ZTRlVLZlM4NmFNOXQwWlArdndm?=
 =?utf-8?Q?unvh+S?=
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)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Apr 2025 10:34:01.6943
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: fc86b9eb-8f0a-423a-2d40-08dd77520b54
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:
	SN1PEPF000397AE.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CYXPR12MB9277

On Wed Apr 9, 2025 at 7:34 AM BST, Jan Beulich wrote:
> On 08.04.2025 18:07, Alejandro Vallejo wrote:
>> @@ -1010,15 +1010,15 @@ static struct domain *__init create_dom0(struct =
boot_info *bi)
>>          dom0_cfg.flags |=3D XEN_DOMCTL_CDF_iommu;
>> =20
>>      /* Create initial domain.  Not d0 for pvshim. */
>> -    domid =3D get_initial_domain_id();
>> -    d =3D domain_create(domid, &dom0_cfg, pv_shim ? 0 : CDF_privileged)=
;
>> +    bd->domid =3D get_initial_domain_id();
>> +    d =3D domain_create(bd->domid, &dom0_cfg, pv_shim ? 0 : CDF_privile=
ged);
>>      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));
>> =20
>>      init_dom0_cpuid_policy(d);
>> =20
>>      if ( alloc_dom0_vcpu0(d) =3D=3D NULL )
>> -        panic("Error creating d%uv0\n", domid);
>> +        panic("Error creating %pd vcpu 0\n", d);
>
> And why exactly is this not %pdv0?

Likely to avoid what looks like a highly cryptic format specifier. But I
agree your option seems nicer.

> That's what would be possible to catch by
> grep-ing for what vsnprintf() would emit for %pv. Preferably with that ad=
justed
> (which can be done while committing):

Yes, please.

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

Thanks

>
> Jan

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Wed Apr 09 10:38:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 10:38:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.943829.1342449 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2SpP-0002JT-Re; Wed, 09 Apr 2025 10:38:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 943829.1342449; Wed, 09 Apr 2025 10:38: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 1u2SpP-0002JM-P5; Wed, 09 Apr 2025 10:38:43 +0000
Received: by outflank-mailman (input) for mailman id 943829;
 Wed, 09 Apr 2025 10:38: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=fbf/=W3=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u2SpN-0002JG-SO
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 10:38:41 +0000
Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com
 [2a00:1450:4864:20::330])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ccbe57d3-152e-11f0-9ffb-bf95429c2676;
 Wed, 09 Apr 2025 12:38:39 +0200 (CEST)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-43d04dc73b7so69526965e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 09 Apr 2025 03:38:39 -0700 (PDT)
Received: from localhost.localdomain (host-92-26-98-202.as13285.net.
 [92.26.98.202]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43f2338d6ebsm12405395e9.2.2025.04.09.03.38.38
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 09 Apr 2025 03:38:38 -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: ccbe57d3-152e-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744195119; x=1744799919; 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=Yv7B46KHAHGQKYCZQlRPVkHO2PIMzgx//aDiYZqKz08=;
        b=cKSwwO1AbHzay+w3UBT+gtnCyeMoSCBdivpnziMPE2wKAH9FGMhr1LAorb6xbBAG5h
         CvPYl9+s8ETxRh4QCZ+MV3yVDGcUg4iI3AqQocXaNOJkiSbU/Oany/zxBgfQIhf1PkvF
         S7X2CJxg78LPzN7TUT/jLPOP/wof0ZljLyx9E=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744195119; x=1744799919;
        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=Yv7B46KHAHGQKYCZQlRPVkHO2PIMzgx//aDiYZqKz08=;
        b=KU2rF/s7k81mppVKWMH54bW0ySuq/5dDMo0jpdBpfAGLubfFJfDKd7hBWOp57rG/4x
         5W6647FEOuBOMJjIb2LiPP9Zy+02bSn7AQjvXk4xcGRz65qP6yrL45d4Dk4/j35ZX1SU
         ufRiYyMJ97nMeApTFt6sCiRacz/bXpY4YRDT+3GeoT/pv1mU6Og5wT/uvbDoM6ZSZyLo
         cqSzfssXSLIBHWAL57Yj4bwEP62u4t5xJkdw2rgDI3nq/ZS5ykoyH7Jk9uWAifuUGu+3
         F0MA9jvBKvnwGTXDnebzZT7BgfGt6pWa0eLoqmyD0+WCxH+XomD0SngPJ9/qNZkZQD+i
         TsSA==
X-Gm-Message-State: AOJu0YzAXGrcLBasEjufxqTdVJaxDHt8My56dZaAdkSwa3aiZ4BigfzK
	uIfyhxok6MHxG5yW4Mfrw33/8KFzA2dLkHuQ9ekYCu4SCn1Y2T7UjG4UaCbTn6Go9r7nXpaTFQf
	Ve8s=
X-Gm-Gg: ASbGnctdyOw/MXHO48/LNX2m2GXRJHZjUPmXAExQntpfQfPDcc1c2jCaocphhexbW+m
	BrWOH+e+K3DULNPmenP6txmSj10CMLX8u7S8sXHkgNBnZ5s4xc9FvUsrNdTW+CbOSSLuC+wso++
	03cj9numObSbuEdBDyFsqWGy2iM1MO0Sjx5bC9MVxvSs1IKQI5OyJUl2LIq2rQwaxID9egmmZ8f
	jHndN5sEcugLiTQ2TNTIlQ4OB024aAuc3qmniWq4h8pvi1C3w7dJS3dsd4BF/Mp8XE4I+OlTICr
	ukZpXt4lbd3Gw8iBBqaDtPeigVW1yemOH46qmRFX+jdI/sGpQtOqWP5VdHSMmjq4qW5/xbsp6P9
	TDTWEo0K9AkRDNnvi/ElQ4nsH
X-Google-Smtp-Source: AGHT+IHSkiG5svw36Qbzz8fyTBqeoyQymCGd3ztCABLUrcBtkgl2MXJOxo0RZOILxAQ3ChjN5XdxZg==
X-Received: by 2002:a05:600c:5704:b0:43d:fa59:bced with SMTP id 5b1f17b1804b1-43f1fdc21bcmr12883405e9.32.1744195118885;
        Wed, 09 Apr 2025 03:38:38 -0700 (PDT)
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: Extend warning about disabling digest check too
Date: Wed,  9 Apr 2025 11:38:36 +0100
Message-Id: <20250409103836.1986139-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 was missed by accident.

Fixes: b63951467e96 ("x86/ucode: Extend AMD digest checks to cover Zen5 CPUs")
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 | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/xen/arch/x86/cpu/microcode/amd.c b/xen/arch/x86/cpu/microcode/amd.c
index 4bc490dedca7..ebd9ecbeef0f 100644
--- a/xen/arch/x86/cpu/microcode/amd.c
+++ b/xen/arch/x86/cpu/microcode/amd.c
@@ -516,8 +516,7 @@ static const struct microcode_ops __initconst_cf_clobber amd_ucode_ops = {
 
 void __init ucode_probe_amd(struct microcode_ops *ops)
 {
-    if ( !opt_digest_check &&
-         boot_cpu_data.x86 >= 0x17 && boot_cpu_data.x86 <= 0x19 )
+    if ( !opt_digest_check && boot_cpu_data.x86 >= 0x17 )
     {
         printk(XENLOG_WARNING
                "Microcode patch additional digest checks disabled");

base-commit: b63951467e964bcc927f823fc943e40069fac0c9
prerequisite-patch-id: b61e58b40ec8f03baec78dd76ed47debdc4f6734
prerequisite-patch-id: 54ea7968a08b4f4d59642083357ce31215f89355
prerequisite-patch-id: 14fc34d8e2613f9c122a7b08b32698d7c55f2760
prerequisite-patch-id: 8afac5fd1570ffad810f4721007063037910724b
prerequisite-patch-id: e024feb79e9db58aa401d423bd7a4e08da155387
prerequisite-patch-id: 9ddae7943cd741f385ec443280b669e32fed4402
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Wed Apr 09 10:39:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 10:39:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.943840.1342460 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2SqA-0002ns-42; Wed, 09 Apr 2025 10:39:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 943840.1342460; Wed, 09 Apr 2025 10: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 1u2SqA-0002nl-1I; Wed, 09 Apr 2025 10:39:30 +0000
Received: by outflank-mailman (input) for mailman id 943840;
 Wed, 09 Apr 2025 10: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=Ii2m=W3=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u2Sq8-0002JG-Mq
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 10:39:28 +0000
Received: from mail-pj1-x102c.google.com (mail-pj1-x102c.google.com
 [2607:f8b0:4864:20::102c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e8774429-152e-11f0-9ffb-bf95429c2676;
 Wed, 09 Apr 2025 12:39:27 +0200 (CEST)
Received: by mail-pj1-x102c.google.com with SMTP id
 98e67ed59e1d1-3035858c687so5257370a91.2
 for <xen-devel@lists.xenproject.org>; Wed, 09 Apr 2025 03:39:27 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 98e67ed59e1d1-306dd12b5eesm1231147a91.29.2025.04.09.03.39.23
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 09 Apr 2025 03:39: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: e8774429-152e-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744195165; x=1744799965; 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=j527NqmxjCqp1u7Gu3iwQjA+YGeIMKNlX4I8/b5c8HU=;
        b=BrfFCvsm38fmgyqGSeFwuQRMQFcqoWj31733eOf3vaPXiWeudeKsTwxQLwIobBhbD8
         l/y+UX7qbOOVfXk7oUkWNbeCYREyZWcXWgdk2itw/jklDKwgq6CALzwNbeX/z7umUc0w
         QWWVn/AXNhQnYiljLNtProS15zo6osAv/hulE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744195165; x=1744799965;
        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=j527NqmxjCqp1u7Gu3iwQjA+YGeIMKNlX4I8/b5c8HU=;
        b=tHsgSlzCEaMUEStf3y9nDXB6+0ehyjFKtx8yhprZ0g/X2iiXpnDwC4yB17OffAMaVT
         kveNgGAswpTIi+3trYpU0NGvt55jEZYzXyb1SFsQeUBynitznaCP7nfP4/NK7AJ/LZB8
         9R/Kl8+xQNeCU9ISp6NhYs0M+VJNYdzh/4UosbqdkjLnsj1B1jM/nuVsm7pQSfIRCm1m
         ngvYOQ/UjCgHb00T9cVUYLHfpZgR1V8H9ZDECVJQlwiVDxxVqV8vPi+HoKCBJROIzbNU
         HleeWaejWwdINVzehiYNNHWFo8baNljlwEPNeDL3oLhCdgR9Kkzqc2q3897qMDy6Ci9L
         rkdA==
X-Forwarded-Encrypted: i=1; AJvYcCXetaIBmE+BGWFTJZq6ZRh0JiV72ea8X2LM1UB84zva9dMGfhN0aAgxvQMlQrX9Lih91YaPUuIgzP4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxpsLBukGmZqfqPSV/MByPyFNsqP6bh3BTNvlENnyG0V/7QWdvB
	vdsITeSGDnvqRDsLhyq8IURoIZ+PLe8DGpqAqtNkYS0Q0x87KqAcXaHgF7i9uUYubhQZTTHK9nx
	G
X-Gm-Gg: ASbGncuHoNZ044YzPXmKPKuClaWB7JtKydAdE7qehvtLfVgfvoTq4U8MWQJ1ImxAa6P
	99smu6BHoLVfeULSCwmN4wZb/3s8UpaKwtM56x9c7MN729Y1ICtNTa0eQf7P47tOFB1wIo/4r/1
	tV1SNbzFzq7QL5oxY3IbDj+BSVzrEfSudHxqOcscj8biuL10uczJQBdmToExvUKG36P/g68xllz
	yR04PMCmzhpWnWBYxDKQKL97d/39LqV8m6eGNzTY6OjznNh/6tiTH+QilniT4DpkcUMLOkzOrYP
	B7dV0xaFvLldghqxabObAsDFWuHRuXuSul7fZyThU7OioK9pQbA=
X-Google-Smtp-Source: AGHT+IEowAyzRCUsJhdo42HBX78aSW+opqCT00Thm34zTuuP6P2v92XhZN5N6Q/YNh1hT+S3/z6aEg==
X-Received: by 2002:a17:90b:3509:b0:301:98fc:9b2f with SMTP id 98e67ed59e1d1-306dbb8b953mr3449545a91.1.1744195165520;
        Wed, 09 Apr 2025 03:39:25 -0700 (PDT)
Date: Wed, 9 Apr 2025 12:39:20 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Marek Marczykowski <marmarek@invisiblethingslab.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH 2/2] x86/hvm: fix write emulation of RO ranges
Message-ID: <Z_ZOWAttoFNoFYCV@macbook.lan>
References: <20250408093156.83277-1-roger.pau@citrix.com>
 <20250408093156.83277-3-roger.pau@citrix.com>
 <16c73cae-2ac0-4811-97d3-b25c95ed5abc@suse.com>
 <Z_Y4xFzaltr_XKO4@macbook.lan>
 <ef0b6eea-a7e5-406d-a8ba-062b3c6e17e1@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <ef0b6eea-a7e5-406d-a8ba-062b3c6e17e1@suse.com>

On Wed, Apr 09, 2025 at 12:00:16PM +0200, Jan Beulich wrote:
> On 09.04.2025 11:07, Roger Pau Monné wrote:
> > On Tue, Apr 08, 2025 at 03:57:17PM +0200, Jan Beulich wrote:
> >> On 08.04.2025 11:31, Roger Pau Monne wrote:
> >>> When running on AMD hardware in HVM mode the guest linear address (GLA)
> >>> will not be provided to hvm_emulate_one_mmio(), and instead is
> >>> unconditionally set of ~0.  As a consequence mmio_ro_emulated_write() will
> >>> always report an error, as the fault GLA generated by the emulation of the
> >>> access won't be ~0.
> >>
> >> Which means subpage_mmio_write_accept() is flawed, too, on AMD (or more
> >> generally whenever .gla_valid isn't set).
> > 
> > Oh, yes, good catch.  I didn't notice that one.  We should move all
> > those checks to use a paddr rather than a gla.
> 
> Really that function could just be passed the offset into the page.
> 
> >>> Fix this by only checking for the fault GLA in mmio_ro_emulated_write()
> >>> when the guest is PV.
> >>
> >> This narrows checking too much, imo. For VT-x we could continue to do so,
> >> provided we pass e.g. npfec down into hvm_emulate_one_mmio(), i.e. make
> >> the gla_valid flag visible there.
> > 
> > I don't think we should rely on the gla at all in
> > mmio_ro_emulated_write(), and instead just use the physical address.
> 
> But you can't validate a physical address against a CR2 value. And I view
> this validation as meaningful, to guard (best effort, but still) against
> e.g. insn re-writing under our feet.

But we have the mfn in mmio_ro_ctxt, and could possibly use that to
validate?  I could expand the context to include the offset also, so
that we could fully validate it.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Apr 09 10:39:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 10:39:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.943843.1342470 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2SqK-000376-ET; Wed, 09 Apr 2025 10:39:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 943843.1342470; Wed, 09 Apr 2025 10: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 1u2SqK-00036z-B7; Wed, 09 Apr 2025 10:39:40 +0000
Received: by outflank-mailman (input) for mailman id 943843;
 Wed, 09 Apr 2025 10:39: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=Yx2+=W3=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u2SqJ-0002JG-6h
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 10:39:39 +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 ecdf8d90-152e-11f0-9ffb-bf95429c2676;
 Wed, 09 Apr 2025 12:39:35 +0200 (CEST)
Received: from SA1P222CA0048.NAMP222.PROD.OUTLOOK.COM (2603:10b6:806:2d0::23)
 by DS7PR12MB8289.namprd12.prod.outlook.com (2603:10b6:8:d8::7) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.8606.34; Wed, 9 Apr 2025 10:39:29 +0000
Received: from SN1PEPF0002BA50.namprd03.prod.outlook.com
 (2603:10b6:806:2d0:cafe::44) by SA1P222CA0048.outlook.office365.com
 (2603:10b6:806:2d0::23) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.20 via Frontend Transport; Wed,
 9 Apr 2025 10:39:29 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SN1PEPF0002BA50.mail.protection.outlook.com (10.167.242.73) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8606.22 via Frontend Transport; Wed, 9 Apr 2025 10:39:29 +0000
Received: from localhost (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, 9 Apr
 2025 05:39:26 -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: ecdf8d90-152e-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ruxbAm6HaE2IL3yskvY0/lXJTapzrBbtkCPOhJeESLndEejgCe29PCTatKXbyK7IXiBHqmyJeKUsHXgn5ZcU/zYmAVuvmsmCPg9Atwgn3/gdaPj1Q3MHuJdrLDZkUbV3Oj7+8AXhf9nDB8BoW6QUf6t5FA9O5zU8iWrk0gnKrQVQ31gRgyTQLu9D364NphULiqCkrxZtv3S7dbeMDLRKmj426czdVK3wYHzocmaLMJjoRa763HP+05zyzGCEwmMcNdjjr+rTx1ytJbfZDyvPaGDlPWRcfVQLxTCjxKC03vgXQ0rfj7gb1T+GyBIhG+knSzYL8b9M9Hxm4Js5NaB2/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=/gqcuz+psfemaUYqAM7CQ3QQkk7KSwNUxqN3LeM97AU=;
 b=FeHUxRE8WmschfjuRtMdhdFNOTuQy8F9NOpSxCFkHZS4f5TKWE2XCN+RAWf6WjtF+Cso/wJ60k5jl0VF2y28ybuxWdm0aCe/j2kFMTCUm9KC0PwRx3Ds5s5qAqjTpA7VQCQMogwzuZgBVfunDdgFkGOPwey8Yi4N7Pn5xV+T+Bx2/DghONLeboO3zN5awj+j6ALK64k4YgFCJWSYBwprmALHl6cu9WRqofAmlhX+VSe3urkyOh+tGd3gUjQxiPlA3ybLyIqC3+J5CLfeA5PqHI0Nzh15lh8tU05OXfmynMQXJJPjZc+HvP2j21wyCm56H5rFRTDWHDRxjrV+Q9eirA==
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=/gqcuz+psfemaUYqAM7CQ3QQkk7KSwNUxqN3LeM97AU=;
 b=0khZgzL3ckEnapXCGi3SA8Ge807BcgJDhcEIX3Xa94ZuXiUmjhcigrrIhZq0CNgUk2pYm5ZvE72ihTzDa5g9EI2FlfkqAZN38G0uZjW58X8qSez6RZYOCeEfzpl6xYH/vvrA09HBliR6DJq6s3AcFUNoPBc03VxJDEAjBiVqpZ8=
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
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Wed, 9 Apr 2025 11:39:24 +0100
Message-ID: <D921L104T75I.1ILCT2YAF1XC8@amd.com>
CC: Jason Andryuk <jason.andryuk@amd.com>, Xenia Ragiadakou
	<xenia.ragiadakou@amd.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, =?utf-8?q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, "Julien
 Grall" <julien@xen.org>, "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	<xen-devel@lists.xenproject.org>, Xen-devel
	<xen-devel-bounces@lists.xenproject.org>
Subject: Re: [PATCH v3 00/16] Hyperlaunch device tree for dom0
From: Alejandro Vallejo <agarciav@amd.com>
To: Alejandro Vallejo <agarciav@amd.com>, Jan Beulich <jbeulich@suse.com>
X-Mailer: aerc 0.20.1
References: <20250408160802.49870-1-agarciav@amd.com>
 <1d809170-bef0-482e-bf6f-6da84204bfad@suse.com>
 <D9215Y1EFDAG.ORR7VWT2BSLX@amd.com>
In-Reply-To: <D9215Y1EFDAG.ORR7VWT2BSLX@amd.com>
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: SN1PEPF0002BA50:EE_|DS7PR12MB8289:EE_
X-MS-Office365-Filtering-Correlation-Id: e4d8de04-2d75-4f20-bf04-08dd7752cedb
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|82310400026|376014|7416014|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?enB5MzhPQ2RpMmV6UDVCWVlFZWNiWW41STVvdW9JT1R4b3FZeTZ1MFkzcGl3?=
 =?utf-8?B?b2dEWXB4MXVDdWErbjI5NjY4Tmo2RkdFbkc5MzNvaXNqYklOU2tkVUJwNlds?=
 =?utf-8?B?d01kT3RpVjhJb0FJSEg0NmZ1QWM5ek92VW1aUVdJSVh6TDM3SjI2UjVwOU52?=
 =?utf-8?B?YVc5azFIZG54WVlBZE0vdE8vRFJmK0tiZU03S2ZPaG5FOStVUkNpQ2JIMytC?=
 =?utf-8?B?d3NObVFwV0s3T05aRC9Tb2ZrcVM1c3BDTXMreDFER2pnZTZDTlpWbmxzWGh4?=
 =?utf-8?B?ZDNoNXJqSjFwK3FwK2RiL0p2UnlwWFNISDhRRzQ3bmRBcXdiVlNjS2g2b2NC?=
 =?utf-8?B?Z2lOQlZKSXU2MTg0UEFEamJKQWpnaXZicFppa0J2MEgxRTJsck1vK0xSNCtZ?=
 =?utf-8?B?YmFNOUdhREJraCtTSnl4alhVeHR2ZlFCSWYyTVE0Tm5QYjhhSDJJY1JQSUhv?=
 =?utf-8?B?OGVjS2VYSCsrRHMyTUl5QXkwYWs1RFFMYWJLWVk0YzMxRnVrdGRveXNJQVhY?=
 =?utf-8?B?dUprN3ZKUVUrb0tialRtazg5a3U2MjJPRThEeUVlTG55djBWLzZJN0lXZzVP?=
 =?utf-8?B?VUNaMk1GMy9WRGJxd0VUT05QaUNyREtuOG5XU1RGdEJYNjZzM05mWGNZNEtm?=
 =?utf-8?B?SDA5OWpWUUpRMFRuVXE1cmhneXg4c2FURVVvbXkrVGQxdGpCVHlmcGtDZjQv?=
 =?utf-8?B?VzQzQUMwdDZWSlhkeXBKWGdyd1dTRmllRUlXT1QwNEYyQys1b2ZWZkNZTGFN?=
 =?utf-8?B?YWlzTi9IV0pkbmFFT2JaM3JOZnplUExaQ3NvdEkvaEpmdFM1WExrck5JS251?=
 =?utf-8?B?N0lwK0NIazRNb3VXNnR1KytkSnpJOGlINTVNRnJmM2JnTE1iTmc5ajh5bnMz?=
 =?utf-8?B?aTlCT0RwT2d1UjFBbkoxUjhuZWU2c2F0V2I5cVNOc20rVHNwdkhVOFpoQ2tF?=
 =?utf-8?B?MHZaMDlGM1A1djlXdEdsZk9nY09RY29qeXQ4YkV0RUg0bmIrUHBWQm9haHN1?=
 =?utf-8?B?b2NRTjNJVEd5YWRqUUluV0x2M0hOWi81aXZNL1g0dVc0WkppRWJ6TEJ4S2V0?=
 =?utf-8?B?eG1vYVpPUkNZaDB1VndqTUF6NjNmR0c5VmxlN29zOVlXNnRjQ2NFd2laZEpK?=
 =?utf-8?B?U0Z3ZCtUZUNWVUliYWhWT1kzWW14dWRHakF0MmJQU1lHZ0kySkUwNnVYWTNa?=
 =?utf-8?B?Y054ekJ6eUU2QXVISHVNd3pQQVVaTGtqV2MyeDVqalE2MUxlV2ZaN1pyODhi?=
 =?utf-8?B?LzBkekt1L2RSVkhWUFZRZVE4ajQyQ21JeXA1b1pienFrUmgvMjhaVWRmdzFn?=
 =?utf-8?B?eFFra3ZMV2FXNHVOM0FIQzZTUDJpd3pRMHBVZnBKRTYzNC9aV1hmWUJ3OUFv?=
 =?utf-8?B?dE5HTzhjbDVsK1dBYUV4QWZpb0wvU2hSZldQVURMS1ZIUnA0U2Q3SEdtMU9k?=
 =?utf-8?B?SllySFdYckovVnF3aDJsNnY2VktGMlVzSjVtWm9CcUtPRk5ReGdVb2VHVUV2?=
 =?utf-8?B?R3FTSjVyQ21LTk9MeWwyUmpyYlJHTkp0Q3lReXd2aVlJeW5STDdsQk5sVVRF?=
 =?utf-8?B?MEp0MjNWK05KcTlkODZGMzBuTnkxQlRHcENNY056N2JQQ0xPUFdmUmpmaGE3?=
 =?utf-8?B?TlFWQ0lVVHRrV1I1RVM4UnB0azRZUGpsbkdpS2FxNVRGSFpUQVFnYnZLOHdH?=
 =?utf-8?B?UENPL2REWnhLN0pXSStyQ1pyVXE3K3BneTJqM0I4emVvVkRzejJCempDMzRK?=
 =?utf-8?B?S1RrMUhIaEhCOVI1THRFUzQvR0JPaWxSMTUxVWtEb0Q4dnM5WXZuR3lKdHFQ?=
 =?utf-8?B?Z1FPN2hWeG1zWldCS2dmVDBPdGxTcUNIVWQzUGtVVnJ1WnV0Z2t5OGpDWHFx?=
 =?utf-8?B?SFdyamhyMno3eFM5Y3g2QW0wM05FbmgxWnQ5c2VxZUlUWG1nRDYzNktKSHNW?=
 =?utf-8?B?cVVka0J2RWJEMFZqeUtubERienRtejBzWk1MMW84TXZiVFU1ZVE1L3VxL2ta?=
 =?utf-8?B?TSsvZXVkOG5PSG8rR0VxbW9scVRSQ0xWZkVlSlhWck0wdHJzbldxNGxkVFls?=
 =?utf-8?Q?i0qGHP?=
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)(7416014)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Apr 2025 10:39:29.7228
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: e4d8de04-2d75-4f20-bf04-08dd7752cedb
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:
	SN1PEPF0002BA50.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB8289

On Wed Apr 9, 2025 at 11:19 AM BST, Alejandro Vallejo wrote:
> On Wed Apr 9, 2025 at 7:29 AM BST, Jan Beulich wrote:
>> On 08.04.2025 18:07, Alejandro Vallejo wrote:
>>> I've purposefully not added my S-by on anything I haven't touched
>>> (besides rebasing) as most of the feedback had already been addressed b=
y
>>> Jason by the time I looked at it and it would be utterly nonsensical to
>>> give myself authorship over it.
>>
>> My understanding of it is that S-o-b doesn't indicate (only) authorship.
>> See docs/process/sending-patches.pandoc "Developer's Certificate of Orig=
in
>> 1.1" point (c). And what you would want to demonstrate with adding your
>> own one is agreement with (d) there. With this I'm not even sure I could
>> commit patches becoming ready in their present form.
>>
>> Jan
>
> Fair enough. Will add myself everywhere on v4, then. Seeing as there's
> still changes to go through.
>
> Cheers,
> Alejandro

And FTAOD, that also meant an implicit

    Signed-off-by: Alejandro Vallejo <agarciav@amd.com>

to everything in v3.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Wed Apr 09 10:46:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 10:46:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.943870.1342480 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2Sx1-0006gG-39; Wed, 09 Apr 2025 10:46:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 943870.1342480; Wed, 09 Apr 2025 10:46:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2Sx1-0006g9-0M; Wed, 09 Apr 2025 10:46:35 +0000
Received: by outflank-mailman (input) for mailman id 943870;
 Wed, 09 Apr 2025 10:46: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=IAcD=W3=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1u2Swz-0006g3-L4
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 10:46:33 +0000
Received: from NAM04-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam04on2060d.outbound.protection.outlook.com
 [2a01:111:f403:240a::60d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e5fc7f9a-152f-11f0-9eaa-5ba50f476ded;
 Wed, 09 Apr 2025 12:46:31 +0200 (CEST)
Received: from PH8PR12MB7326.namprd12.prod.outlook.com (2603:10b6:510:216::7)
 by IA1PR12MB7542.namprd12.prod.outlook.com (2603:10b6:208:42e::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.21; Wed, 9 Apr
 2025 10:46:27 +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.8632.017; Wed, 9 Apr 2025
 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>
X-Inumbo-ID: e5fc7f9a-152f-11f0-9eaa-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=qqrsYvM73oEw0BC70P8oBdzZvkzl0Wy10VK+XqJTgRIcqpjuxfCiYtUcUgRH+nxAT15lLT4af7/jVsO7lsQuD8nYTWOKP3ibIPEikE09vuUh+TBpKzTmGwj69y8CS7y8VpoaLsrKGgRcD9KCBSujwDjt64ZDCZBPk5I593jR/4g5HLaT0WLSgLzaGcrlqiwmq29/zu3nQw0EkMdqeDOF+uHgYmvnZoq8esGL3gaiH7paUNtCEZCOtey72pmFB6CGJaz84XcprbRPPHeTZ1ghEowXGdsaGA9omy1MPEmPP9D/O5DPUY2EFzVEadkcOsqAKX9kMxoe7UlJGxsVtejVyg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=RXjeDSjKaKUBSlhXupgJQX6UkrOCSr4+ro7Z7dI/9/8=;
 b=MDzYMdCuCS/kKiJZl6YcLpnH9HZ1jk1/5AeCD0pLJiUp8KANEXoYdeAPA6u63+9StXjFrPy8MOW53ivQn/XNll2nn8dczllMd8IH0Lfw979r+yqfvfGf4QUvKwUgRaXX+XvoeQUYzJADoMvv2n2tJ/pnjbGhFFigF4iAboyw4fJxRbcmMXOyaKmhzwuFnseBJxOdeTWy050J5o70WEBC2De8jB6Bl7b+bMjuGcYHQbuXASG8gEoR47tFVNXUkZyeFgpC1kIU+aGnMgFldF2ccRhqoE2skAuQLZ1luA1+V+iYGk0t2iWxGVMUW9rN4FlHUcwteKHh3pIBqbxuyWU9Ug==
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=RXjeDSjKaKUBSlhXupgJQX6UkrOCSr4+ro7Z7dI/9/8=;
 b=X50/PC+rBAWEiikmFFuECujob8BkCzU+7STnZh7U7merFqCfY0XFtD3vhuHWsBMmXEz660128GZBOC1WqmZ41L/vAE5jQ/ba5r9eqi9bcOFmzqGSOFhmt99oaMBg3alJGKaNyiStFNPBDQoahe2uZUkeZMHwSa92r8m4/nytev4=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <44944588-2225-4f77-9a89-1153630f900c@amd.com>
Date: Wed, 9 Apr 2025 11:46:23 +0100
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/7] arm/mpu: Provide access to the MPU region from the
 C code
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>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <Bertrand.Marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <20250407091430.2342709-1-luca.fancellu@arm.com>
 <20250407091430.2342709-3-luca.fancellu@arm.com>
 <0acf63c0-267e-44c0-b629-fa576307497c@amd.com>
 <1AC85CBD-02B1-4AA4-B9A3-68DFC06137AA@arm.com>
 <4f860a56-5536-455b-9490-196bfc220556@amd.com>
 <40C7A4DC-0216-4981-A501-AFDA0E8671DD@arm.com>
 <9f637d98-c8f8-49e0-9f0a-002cdfefc296@amd.com>
 <EABA5C5E-4FE3-4E7A-8E29-B37A4CFCC18D@arm.com>
 <F2C6FC52-386A-4417-B592-151ECE079E52@arm.com>
 <aded1d6f-0e6f-4903-a5a3-127e06e3803f@amd.com>
 <C4B4B135-AF5D-4BA9-AD17-0C46868B7FFD@arm.com>
From: Ayan Kumar Halder <ayankuma@amd.com>
In-Reply-To: <C4B4B135-AF5D-4BA9-AD17-0C46868B7FFD@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0426.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:18b::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_|IA1PR12MB7542:EE_
X-MS-Office365-Filtering-Correlation-Id: 44d95f47-3916-4bfe-aa3f-08dd7753c79a
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?Ti9qYmxBWjVwK3VlSDNIWGxLVG9HTlRyUmRKQ2JxUE1XOWlBaHpUM1JrTDBY?=
 =?utf-8?B?MGZZZnJyemQ2amI4VSt5dWIxMEsrS3FsUUdSQitwaGNRdUJSZXpra0cvUjVQ?=
 =?utf-8?B?V1BGRzR1UERkU2c0K3pVam5tdVlQa0hzeXNJYkNJY3dBRTl1aURMM1dNVlFO?=
 =?utf-8?B?dmRrRUoybnE2MjFwaldURFVYTnpScGVSVTduQmhRanIzVTg3ZVR6SWNPUWht?=
 =?utf-8?B?VzlxSjI0cVg2cjY2RDJnVWRPcklKdEE3dWVkWnp0K1ZYd0pXOXpVSm1ZcGNj?=
 =?utf-8?B?OEhNdWV2V2d4b1hCUGxmZGNBTEhRR2FxMk40eTY4bi9Zb1lZYkI3cXQ4L3p5?=
 =?utf-8?B?RG5IZzJrLzdzcTVjZ2NiclAxODNYZXRBNGJydytDYlg3L1VZRkViN2RmSXVx?=
 =?utf-8?B?RWlKbU5nRmcveXZVU2J3RmhNVS8xY3dPTXFsSCtPNXB3cWFJZ3dqSk9HTG9t?=
 =?utf-8?B?WlorVzkvSFpkQkI0NzhMOVFlVVFrdjFsRngzc2JiSG5pcmsrcFRIdTh1L1lk?=
 =?utf-8?B?QzU0SnJqclREQ09EZWJQN0VPVGwxTFg0Q0FwT2FUdkNCc2hvNDBUaWFZYnpC?=
 =?utf-8?B?bm1jQnlhWEw5TTd4Q0tVcFBrRlRSL296eU85L0ZkcHJyaWdhdkN2WG9jT3Aw?=
 =?utf-8?B?RDREejY1T0VheFFqSWdnS0pjL0xiaVJpazdBbS9WdEl6elVRN2NnOFJPSGxn?=
 =?utf-8?B?a1ZnUnNVbllZVnU0YmhYZTJCVjIrdkdBYXNqdXhITGt5S1RkWE43OHRmRWdF?=
 =?utf-8?B?MmlaTTEwSm8yOXMxK3dWRFdNYTV1OEpyWDkrK1lQQTNLSlNndjM3aWpabWtv?=
 =?utf-8?B?MUJmY3lYRVpabzJNWVExWVBTL0hyUlEyalpTRUFtK3greVdQNW9NVXdSQktn?=
 =?utf-8?B?Mm1oblhyQzh3cU14RjBvdWcrWnBhRFNUK2Mxd1JZYmhsOU1mRmNkRGhCK1dQ?=
 =?utf-8?B?em9nNkw4enlNaDBXMTM1eG55NW15SVRzYnZqazdaaFdwY0MyZlVXRi81T1dQ?=
 =?utf-8?B?T1NvVDVyYVpIdGYwSzFDNTAyYXpWNXlubW9YR0Y3Nmdjb2JGZTNjU2FVcHhB?=
 =?utf-8?B?M3VNRmljeFR2Y3E3WloyYkRscUM2QkRzblpjRFNrbmRhRkdVUm5LM3NYaXRu?=
 =?utf-8?B?eGxGUWdHVlB0aEV1V216UjUvM1ZnQ2V1T242MHp4WFgvaGNWanZvYVdIVnZs?=
 =?utf-8?B?a1Jsay93cmQzNkZ6MmdEbFdhRHhBUC9NeVJrZTZkcTBqa010aG5RWmtRWFlr?=
 =?utf-8?B?SEVtVWd0cGdENmJPY05GNWlxbDZjRVpnNko0ZS90ejJDVGpML25hTm8zazBM?=
 =?utf-8?B?Q0dxMGR1aS9NUGRXOERVYnd6S3UvaCtGRThFOFlXSmw3QlFzM2hHM3JCUnVx?=
 =?utf-8?B?V3d4bi9UbFNEV3RwNWEyUEZWOEV3NGRiUTNhTm1XOFBvaHk1YWNqcVFHb0Fs?=
 =?utf-8?B?cXpuOUEyMWN3VkdzUmUwRExJNmcrVDIrZVluQ3UrNEZyOHpicFVFaFh4c0E3?=
 =?utf-8?B?aUVIRlR1QXhvNjArZERYMlFiQ1p5UU80OTIxM1RzQk5Ia3IzM0tVbWhTMU52?=
 =?utf-8?B?Z3B6NHRCaFlRZjE2UTQ4cjVCVWNWckJaeWNheHZJR3BmYzZLZThYOFI0SHlW?=
 =?utf-8?B?K1ZpRzZtVGFnbUI0OWhxY1B5dGdqeEREa0xXbUVuZk1ONGNDVlpXWWRnQ2JO?=
 =?utf-8?B?MldwckYrT2dSZTZtWlNMNU0xK0Y3dFlxRWFaZVZmSC9MTE5kMndhdFZuM212?=
 =?utf-8?B?ZXRTSmdKMHJ4WWVoSWJNM0xUeGZFQ3ZUaWhtNlk1YjljSld4SmNWQkVqRGVZ?=
 =?utf-8?B?Um1XbWYxMkNraXB4L0p6dHRMbDFxaURvUDh3TkR6S1JDWUwydFFNRCtvV0hZ?=
 =?utf-8?B?YnFRUjhmUzVIaElOay9jd0tVYlRkb2dMcFRNS0hvbzh5dDh5dHRiQVZiTXlL?=
 =?utf-8?Q?1ucJ80KiTzg=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)(366016)(376014)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?SUFSL3AwZE40V3N2SVZSYVRIL2NzNUJJNU1mUDNqUG10aXIxMGZIYlEva2lL?=
 =?utf-8?B?NW82cFZGT1EwZWZJQUFyRWlwV3dCRGNka20rdkdZTVNONlhrUHE5UmdwU08w?=
 =?utf-8?B?TkQwOG5SZDBLbGlGSVZPTDZ5OGozRjZPMW5RWWJGVTluUGU5dGJsQVYwY0dC?=
 =?utf-8?B?ZC9MT2lYaS9VeDdDTm5ZWnpuSlVZVm9xNXNSNjhicEF2WTFTM0l2WVlrMDla?=
 =?utf-8?B?SkpOYnNiZ211UGIxOThZU0VJUnFDVzR1SEY1clRZOHMzZWxjY2pFbmluNXZS?=
 =?utf-8?B?bmoyd1NCWG9vdFcwQ1c4K21OUEZrS3d2ZFVaVEIwNE5OeW9tc2VFUFVzODlJ?=
 =?utf-8?B?eVpGT3JPZkFFU2VDWGpud2xzN2J3VnlkYXFlVVNFN21OMU9xMGUxR2dITHAx?=
 =?utf-8?B?Y2F6cGUrMzFaa0wvRkt5MEh1MXJ6dkFhanN6Wk02endnZzJVSUlJM2RwT0JC?=
 =?utf-8?B?Z3YrdXJjdEsrV0dBYmRSdjVkUmxGVlNHaU9CZ1djZlBmSGlSQk16Y0tINjZ1?=
 =?utf-8?B?TFB5MkxhbWROYnZXTkFtMGRFVEE1K1NEb1cyVGFaK1NOcVJXOGkvZytoQkxJ?=
 =?utf-8?B?VFRnSEp5R05YTndRbkNIRFdkbkQ3TTYranBsV1Z6eksybG0vOVRrUmJOV3Jr?=
 =?utf-8?B?NEdJb3lycFVLQjRKaE44RlU4SUxLc1VCMm5UUHRueTlaUGdESk5lRmprMFk3?=
 =?utf-8?B?MXdyMnFEUENPbnR2UlBLZjdPOHBnOE1Md3FvOVFDMXB4cm5neUpseXFRMVZ6?=
 =?utf-8?B?SGQwL2hIaHdhWmZ3d3dlbVhCckNuYU8yU0xrdVN1OUx4aWdoZTJsclQ1Vldp?=
 =?utf-8?B?VEZublVmZ1BubDk3TGZZSVZMYjFMRXU1Rk12d1o4VkFMVmdScDV2MmdHUjhs?=
 =?utf-8?B?QXZaM3QxcTJ1NnpnNkdJRjdvK3llTjV3L3BNbUVwcEJSd0s4a0JaRCs5b3Y1?=
 =?utf-8?B?MURDRTNjTGxHVjJJdHZBbUZ3UlpoL2ZoNDkvM3U5N3BpMmVxZS9ibXFubWpx?=
 =?utf-8?B?eUd4ZWNVNytoNm9CRTEvUVVWdXBiS041eWF3T09WQmlLVXFxSzBEWUxxNlF3?=
 =?utf-8?B?U2VVRnk4NGs2SFVSSVZxRFdaa1UrbTR4ZHAzUmVjMzlWMTMzODRhOENpSXhs?=
 =?utf-8?B?MU9lc2xaVElkTEFNZkJ4RWpVU0c4bzlhYm1CaTcydHE2bXFNVlJKazlKQjVL?=
 =?utf-8?B?OEkxUmRNVDVuVjc0RlpOUXRWbjBpcXlwOGxJdFZCOXI1LzJtRlRHSE55bFp6?=
 =?utf-8?B?bU9tSHA4QndZYjJSQm90Y1V5V0NDUnBpektPTlJBK1c4MjRUZWxPTE54dHhz?=
 =?utf-8?B?b1BLNHlEaHFWTUFhNjREbERMQ1k4cTM1NTFCQVBTTFoxWDV6ekc3MnBzRks0?=
 =?utf-8?B?NmhibUlqa2JIKzV5dHR4K3c2OWllNnhHb2dpMmc4Q2dLUktyMGN3YTdkSFJo?=
 =?utf-8?B?NGdkb2lCeU9hckFONXlnN1U1SlpxV3NWMG54S2Q2Y21SSElJOGY1b0grbXhP?=
 =?utf-8?B?N2R0UFB6akJka280OUhiZy9mRTdtdG9OaHdIUEtVaXF4SHhEbTRNVUFxRXRN?=
 =?utf-8?B?d3RXZXREemRxTGpHWlZsOEY2bUpiY3YrYlVJZGVhc0xOaEtXZG10cDFWdFB4?=
 =?utf-8?B?dDM2T0FCT3c5K0xqcEpiQkRyQzMrK01SNm8yQVhmSnJkZ0tsaTdzL3ltakEr?=
 =?utf-8?B?MlNudXl0S0lDU01NYW1nM094cTIyTkFTL3MzK3krTGxRazZhNitlWHRENmEv?=
 =?utf-8?B?ZzBuRHgvVXlRSDA3MWxicUNpQkRvSmxwOWRLYysrdDdQa0RLMm1DMC92MlhP?=
 =?utf-8?B?VHRHaWV0Y2F2Vy9EbXN4cURRYU9mRWdEQmtoZ1JGN09ZeTlSelc3VjJ6MjFW?=
 =?utf-8?B?TTgxaEdETEtVZXEzUUVZN0JHK2ZvNm9qaE9XK21zb3BNKzg0UDA5MUdMcVVG?=
 =?utf-8?B?OVFrSmRhV202NjRPNW45ZHV5alpNTUFtQitIRGhoQTV3N3BvNStNVG53UWh0?=
 =?utf-8?B?TGw1VjA2RzZRYXFtWFN6Ukd3ejdnWHpLb3REemlOMzVWdVVib1RMWEpieVZQ?=
 =?utf-8?B?YnJiMjJiVTVMOEp1RWZrNHFVeVB3RVRWcWlaM21NQmwxN0xqNlBRRm82eS9l?=
 =?utf-8?Q?MsVt+1TH7FOQ/sjCvLGwybzzL?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 44d95f47-3916-4bfe-aa3f-08dd7753c79a
X-MS-Exchange-CrossTenant-AuthSource: PH8PR12MB7326.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Apr 2025 10:46:27.3820
 (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: bQMMQAJo7/LLGGZqNj0KcRSGhjQx6DOP1IgM48Q8SQK7cXgHvx9ZW53S9jNl7FlU3mksQUygPGkN8ykarfaSFA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB7542


On 09/04/2025 11:21, Luca Fancellu wrote:
> Hi Ayan,
Hi,
>
>> On 9 Apr 2025, at 11:07, Ayan Kumar Halder <ayankuma@amd.com> wrote:
>>
>>
>> On 09/04/2025 09:26, Luca Fancellu wrote:
>>> Hi Ayan,
>> Hi Luca,
>>>>>> The point of the code was to don’t issue an isb() every time we change the selector,
>>>>>> of course the code would be easier otherwise, but do we want to do that?
>>>>> Not sure if it is beneficial as you would need to use isb() from region16 onwards.
>>>> The isb() is issued only when changing the selector, so when you go from reading/writing regions
>>>> from 0-15 to 16-31 for example, of course there is a case that if you continuously write on region 15
>>>> and 16 you would have to always change the selector, but it’s the less impact we could have.
>>>>
>>>> armv8-R is even better since it’s able to address regions from 0 to 23 without flushing the pipeline,
>>>                   ^— aarch32 :)
>> Can you point me to the document where you got this info ?
> was referring to the r52, of course you are more knowledgeable on the armv8-r aarch32 part, so ...
If you can point me to the page and section within R52 TRM, I can take a 
look to see if I missed something (which isn't suprising as the docs are 
huge :))
>
>>>> so I would say we should exploit this big advantage.
>>>>
>>>> I’ll send shortly in this thread the code I would use and the code I was thinking you could use.
>>> Here the code I have in mind:
>>>
>>> static void prepare_selector(uint8_t *sel)
>>> {
>>>      uint8_t cur_sel = *sel;
>>>      /*
>>>       * {read,write}_protection_region works using the direct access to the 0..15
>>>       * regions, so in order to save the isb() overhead, change the PRSELR_EL2
>>>       * only when needed, so when the upper 4 bits of the selector will change.
>>>       */
>>>      cur_sel &= 0xF0U;
>>>      if ( READ_SYSREG(PRSELR_EL2) != cur_sel )
>>>      {
>>>          WRITE_SYSREG(cur_sel, PRSELR_EL2);
>>>          isb();
>>>      }
>>>      *sel = *sel & 0xFU;
>>> }
>>>
>>> void read_protection_region(pr_t *pr_read, uint8_t sel)
>>> {
>>>      /*
>>>       * Before accessing EL2 MPU region register PRBAR_EL2/PRLAR_EL2,
>>>       * make sure PRSELR_EL2 is set, as it determines which MPU region
>>>       * is selected.
>>>       */
>>>      prepare_selector(&sel);
>>>
>>>      switch ( sel )
>>>      {
>>>          GENERATE_READ_PR_REG_CASE(0, pr_read);
>>>          GENERATE_READ_PR_REG_CASE(1, pr_read);
>>>          GENERATE_READ_PR_REG_CASE(2, pr_read);
>>>          GENERATE_READ_PR_REG_CASE(3, pr_read);
>>>          GENERATE_READ_PR_REG_CASE(4, pr_read);
>>>          GENERATE_READ_PR_REG_CASE(5, pr_read);
>>>          GENERATE_READ_PR_REG_CASE(6, pr_read);
>>>          GENERATE_READ_PR_REG_CASE(7, pr_read);
>>>          GENERATE_READ_PR_REG_CASE(8, pr_read);
>>>          GENERATE_READ_PR_REG_CASE(9, pr_read);
>>>          GENERATE_READ_PR_REG_CASE(10, pr_read);
>>>          GENERATE_READ_PR_REG_CASE(11, pr_read);
>>>          GENERATE_READ_PR_REG_CASE(12, pr_read);
>>>          GENERATE_READ_PR_REG_CASE(13, pr_read);
>>>          GENERATE_READ_PR_REG_CASE(14, pr_read);
>>>          GENERATE_READ_PR_REG_CASE(15, pr_read);
>>>      default:
>>>          BUG(); /* Can't happen */
>>>      }
>>> }
>>>
>>> void write_protection_region(const pr_t *pr_write, uint8_t sel)
>>> {
>>>      /*
>>>       * Before accessing EL2 MPU region register PRBAR_EL2/PRLAR_EL2,
>>>       * make sure PRSELR_EL2 is set, as it determines which MPU region
>>>       * is selected.
>>>       */
>>>      prepare_selector(&sel);
>>>
>>>      switch ( sel )
>>>      {
>>>          GENERATE_WRITE_PR_REG_CASE(0, pr_write);
>>>          GENERATE_WRITE_PR_REG_CASE(1, pr_write);
>>>          GENERATE_WRITE_PR_REG_CASE(2, pr_write);
>>>          GENERATE_WRITE_PR_REG_CASE(3, pr_write);
>>>          GENERATE_WRITE_PR_REG_CASE(4, pr_write);
>>>          GENERATE_WRITE_PR_REG_CASE(5, pr_write);
>>>          GENERATE_WRITE_PR_REG_CASE(6, pr_write);
>>>          GENERATE_WRITE_PR_REG_CASE(7, pr_write);
>>>          GENERATE_WRITE_PR_REG_CASE(8, pr_write);
>>>          GENERATE_WRITE_PR_REG_CASE(9, pr_write);
>>>          GENERATE_WRITE_PR_REG_CASE(10, pr_write);
>>>          GENERATE_WRITE_PR_REG_CASE(11, pr_write);
>>>          GENERATE_WRITE_PR_REG_CASE(12, pr_write);
>>>          GENERATE_WRITE_PR_REG_CASE(13, pr_write);
>>>          GENERATE_WRITE_PR_REG_CASE(14, pr_write);
>>>          GENERATE_WRITE_PR_REG_CASE(15, pr_write);
>>>      default:
>>>          BUG(); /* Can't happen */
>>>      }
>>> }
>> Till here I am fine if you think this is the correct approach for arm64.
> Ok
>
>>> Here the code I thought you could add for arm32:
>>>
>>> static void prepare_selector(uint8_t *sel)
>>> {
>>>      uint8_t cur_sel = *sel;
>>>
>>> #ifdef CONFIG_ARM_64
>>>      /*
>>>       * {read,write}_protection_region works using the direct access to the 0..15
>>>       * regions, so in order to save the isb() overhead, change the PRSELR_EL2
>>>       * only when needed, so when the upper 4 bits of the selector will change.
>>>       */
>>>      cur_sel &= 0xF0U;
>>>      if ( READ_SYSREG(PRSELR_EL2) != cur_sel )
>>>      {
>>>          WRITE_SYSREG(cur_sel, PRSELR_EL2);
>>>          isb();
>>>      }
>>>      *sel = *sel & 0xFU;
>>> #else
>>>      if ( cur_sel > 23 )
>>>          panic("Armv8-R AArch32 region selector exceeds maximum allowed range!");
>> I am not sure about this. See my question before. However ...
>>> #endif
>>> }
>>  From ARM DDI 0568A.c ID110520
>>
>> E2.2.3 HPRBAR<n> - Provides access to the base addresses for the first 32 defined EL2 MPU regions.
>>
>> E2.2.6 HPRLAR<n> - Provides access to the limit addresses for the first 32 defined EL2 MPU regions.
>>
>> I understand that HPRSELR is not used when directly accessing the above two registers. Thus, this function will be a nop for Arm32. Please let me know if I am mistaken.
> yes you are right, you can decide if doing something or not in that function, you don’t need to change the selector.
>
>
>>> void read_protection_region(pr_t *pr_read, uint8_t sel)
>>> {
>>>      /*
>>>       * Before accessing EL2 MPU region register PRBAR_EL2/PRLAR_EL2,
>>>       * make sure PRSELR_EL2 is set, as it determines which MPU region
>>>       * is selected.
>>>       */
>>>      prepare_selector(&sel);
>>>
>>>      switch ( sel )
>>>      {
>>>          GENERATE_READ_PR_REG_CASE(0, pr_read);
>>>          GENERATE_READ_PR_REG_CASE(1, pr_read);
>>>          GENERATE_READ_PR_REG_CASE(2, pr_read);
>>>          GENERATE_READ_PR_REG_CASE(3, pr_read);
>>>          GENERATE_READ_PR_REG_CASE(4, pr_read);
>>>          GENERATE_READ_PR_REG_CASE(5, pr_read);
>>>          GENERATE_READ_PR_REG_CASE(6, pr_read);
>>>          GENERATE_READ_PR_REG_CASE(7, pr_read);
>>>          GENERATE_READ_PR_REG_CASE(8, pr_read);
>>>          GENERATE_READ_PR_REG_CASE(9, pr_read);
>>>          GENERATE_READ_PR_REG_CASE(10, pr_read);
>>>          GENERATE_READ_PR_REG_CASE(11, pr_read);
>>>          GENERATE_READ_PR_REG_CASE(12, pr_read);
>>>          GENERATE_READ_PR_REG_CASE(13, pr_read);
>>>          GENERATE_READ_PR_REG_CASE(14, pr_read);
>>>          GENERATE_READ_PR_REG_CASE(15, pr_read);
>>> #ifdef CONFIG_ARM_32
>>>          GENERATE_READ_PR_REG_CASE(16, pr_read);
>>>          GENERATE_READ_PR_REG_CASE(17, pr_read);
>>>          GENERATE_READ_PR_REG_CASE(18, pr_read);
>>>          GENERATE_READ_PR_REG_CASE(19, pr_read);
>>>          GENERATE_READ_PR_REG_CASE(20, pr_read);
>>>          GENERATE_READ_PR_REG_CASE(21, pr_read);
>>>          GENERATE_READ_PR_REG_CASE(22, pr_read);
>>>          GENERATE_READ_PR_REG_CASE(23, pr_read);
>> At least 32 regions are directly accessible, thus thisn should go till 31 (0-31). Same ..
> yeah you can add until the 31st here and ...
>
>>> #endif
>>>      default:
>>>          BUG(); /* Can't happen */
>>>      }
>>> }
>>>
>>> void write_protection_region(const pr_t *pr_write, uint8_t sel)
>>> {
>>>      /*
>>>       * Before accessing EL2 MPU region register PRBAR_EL2/PRLAR_EL2,
>>>       * make sure PRSELR_EL2 is set, as it determines which MPU region
>>>       * is selected.
>>>       */
>>>      prepare_selector(&sel);
>>>
>>>      switch ( sel )
>>>      {
>>>          GENERATE_WRITE_PR_REG_CASE(0, pr_write);
>>>          GENERATE_WRITE_PR_REG_CASE(1, pr_write);
>>>          GENERATE_WRITE_PR_REG_CASE(2, pr_write);
>>>          GENERATE_WRITE_PR_REG_CASE(3, pr_write);
>>>          GENERATE_WRITE_PR_REG_CASE(4, pr_write);
>>>          GENERATE_WRITE_PR_REG_CASE(5, pr_write);
>>>          GENERATE_WRITE_PR_REG_CASE(6, pr_write);
>>>          GENERATE_WRITE_PR_REG_CASE(7, pr_write);
>>>          GENERATE_WRITE_PR_REG_CASE(8, pr_write);
>>>          GENERATE_WRITE_PR_REG_CASE(9, pr_write);
>>>          GENERATE_WRITE_PR_REG_CASE(10, pr_write);
>>>          GENERATE_WRITE_PR_REG_CASE(11, pr_write);
>>>          GENERATE_WRITE_PR_REG_CASE(12, pr_write);
>>>          GENERATE_WRITE_PR_REG_CASE(13, pr_write);
>>>          GENERATE_WRITE_PR_REG_CASE(14, pr_write);
>>>          GENERATE_WRITE_PR_REG_CASE(15, pr_write);
>>> #ifdef CONFIG_ARM_32
>>>          GENERATE_WRITE_PR_REG_CASE(16, pr_write);
>>>          GENERATE_WRITE_PR_REG_CASE(17, pr_write);
>>>          GENERATE_WRITE_PR_REG_CASE(18, pr_write);
>>>          GENERATE_WRITE_PR_REG_CASE(19, pr_write);
>>>          GENERATE_WRITE_PR_REG_CASE(20, pr_write);
>>>          GENERATE_WRITE_PR_REG_CASE(21, pr_write);
>>>          GENERATE_WRITE_PR_REG_CASE(22, pr_write);
>>>          GENERATE_WRITE_PR_REG_CASE(23, pr_write);
>> for here.
> also here.
>
> So I guess we are aligned for this patch right? I will update this patch as the code above and you
> will modify the code for arm32 to support the direct access up to 32 region. Ok?

This is ok.

- Ayan

>
> Cheers,
> Luca
>
>


From xen-devel-bounces@lists.xenproject.org Wed Apr 09 10:49:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 10:49:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.943886.1342489 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2Szl-0007Kk-Iy; Wed, 09 Apr 2025 10:49:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 943886.1342489; Wed, 09 Apr 2025 10: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 1u2Szl-0007Kd-Fg; Wed, 09 Apr 2025 10:49:25 +0000
Received: by outflank-mailman (input) for mailman id 943886;
 Wed, 09 Apr 2025 10: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=Ii2m=W3=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u2Szj-0007KQ-MN
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 10:49:23 +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 4b9b732a-1530-11f0-9eaa-5ba50f476ded;
 Wed, 09 Apr 2025 12:49:22 +0200 (CEST)
Received: by mail-ed1-x534.google.com with SMTP id
 4fb4d7f45d1cf-5e6ff035e9aso12661882a12.0
 for <xen-devel@lists.xenproject.org>; Wed, 09 Apr 2025 03:49:22 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 4fb4d7f45d1cf-5f2fbd476e4sm608030a12.80.2025.04.09.03.49.21
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 09 Apr 2025 03:49:21 -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: 4b9b732a-1530-11f0-9eaa-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744195761; x=1744800561; 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=18fe14lWgm3b6suv92FF6hDNOIYwQe/KXdOqIDUa3io=;
        b=akA3s9CjRTNY2cyKKozHV+e3r+TUAMtj5UE3lDE8Yp1lMY7TjdnIwmpT6FN98Is1LI
         b+X6QYoL+kULPxWHBNzKo23eLWiMbFFphsDgKU0AoxRa/WM8b2PznrPHuEmNGk9O2lOn
         XUo4pu0Gm2PpdS/evapjYUyIw1QZzzZOzD+oY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744195761; x=1744800561;
        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=18fe14lWgm3b6suv92FF6hDNOIYwQe/KXdOqIDUa3io=;
        b=HApIda2QDwtbRLtBC/Iv93r+Sr5b9uP9151NLIkCljkZBukdgETJDdQ1Y8MCT0Hnxi
         ZS8Yptz8XvFn1uES2EiUV+mSbQmWMFKFda+akKCFZKJFY1npGROvwauSLJb+Zx/CumqI
         Ykqv92yt40lxW93ZSMgjrLd1AT7ywyTJcwnOT5+CR66XpA5x4pf5YltRHEr4RNHWYj88
         qkuHw+tfHa2jZ7Fnki/LSnK3fNQWF3vVzLdnqW9MylMR3cN2lZjB2WaEJrhwg0NAF2qZ
         rqAgaFSWcKRyQhqjUi5F+RpqM7AOXXphH64mbW0MAIJpx8Blf7SI38bqSutsadJfgcdO
         gULw==
X-Gm-Message-State: AOJu0YxKGhgIxgQMCoP0k6Qf5QXLgU1UUtS9orKMLh+4qxdDgY9FGV0O
	ZOrBP7Y16n+u4GGig3rE78gFba9WMZXm6QiRLcQDXr+6plhdG6CmR4Yz0t3L9ec=
X-Gm-Gg: ASbGncvAzWLE2F11J4RgTLfd//kiOij2uq8dJzaQ7cg+cnDCTtdb6Vv4eXJXlF/nx8i
	aSDHe7UiF3ejiTdlCussBBkHKiRIZqSauoULKEIH+L+rF6zvlDAzGIsa3h1lGYx/64q5fLpVixS
	/PdACJXjxCXlo0DkpqN4buIcB32+uoHGruShYUJ+pmRFYvnvfVJByMcTns46ngnsNs7mCcyoSzj
	OUM2dIJcQoyvXx8DRmTD0D4/ZxvLRhGhYOPuXP0Xk78gYN1xqRd+bl4Lk/vUSisyMCuEtVsXVVl
	fY7qajWJhZ8XqEg09y86sDynLXHZy1OhITKFr32OEQ3Y6g==
X-Google-Smtp-Source: AGHT+IGW7Nv9j9Atc/CKG/s72ovHcp2Dia4PRCpBn0tEz/RCNBSmhuvy+EBiJ/lnxnqVK191zdgAOA==
X-Received: by 2002:a17:907:3f9b:b0:ac7:33d0:db1 with SMTP id a640c23a62f3a-aca9b676857mr220501566b.13.1744195761437;
        Wed, 09 Apr 2025 03:49:21 -0700 (PDT)
Date: Wed, 9 Apr 2025 12:49:20 +0200
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] x86/ucode: Extend warning about disabling digest check
 too
Message-ID: <Z_ZQsOL_jajU4SrV@macbook.lan>
References: <20250409103836.1986139-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: <20250409103836.1986139-1-andrew.cooper3@citrix.com>

On Wed, Apr 09, 2025 at 11:38:36AM +0100, Andrew Cooper wrote:
> This was missed by accident.
> 
> Fixes: b63951467e96 ("x86/ucode: Extend AMD digest checks to cover Zen5 CPUs")
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Apr 09 10:57:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 10:57:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.943902.1342508 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2T7E-0002IP-Ck; Wed, 09 Apr 2025 10:57:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 943902.1342508; Wed, 09 Apr 2025 10:57: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 1u2T7E-0002II-A2; Wed, 09 Apr 2025 10:57:08 +0000
Received: by outflank-mailman (input) for mailman id 943902;
 Wed, 09 Apr 2025 10:57: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=tnZY=W3=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1u2T7C-0002I9-Uz
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 10:57:07 +0000
Received: from EUR02-DB5-obe.outbound.protection.outlook.com
 (mail-db5eur02on20622.outbound.protection.outlook.com
 [2a01:111:f403:2608::622])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5fce845b-1531-11f0-9eab-5ba50f476ded;
 Wed, 09 Apr 2025 12:57:05 +0200 (CEST)
Received: from DUZPR01CA0303.eurprd01.prod.exchangelabs.com
 (2603:10a6:10:4b7::27) by GV1PR08MB10750.eurprd08.prod.outlook.com
 (2603:10a6:150:165::5) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.22; Wed, 9 Apr
 2025 10:57:00 +0000
Received: from DU6PEPF0000A7E0.eurprd02.prod.outlook.com
 (2603:10a6:10:4b7:cafe::e8) by DUZPR01CA0303.outlook.office365.com
 (2603:10a6:10:4b7::27) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8606.36 via Frontend Transport; Wed,
 9 Apr 2025 10:57:00 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DU6PEPF0000A7E0.mail.protection.outlook.com (10.167.8.39) with Microsoft SMTP
 Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.13 via
 Frontend Transport; Wed, 9 Apr 2025 10:56:59 +0000
Received: from DB7PR08MB2987.eurprd08.prod.outlook.com (2603:10a6:5:1c::25) by
 DU0PR08MB7946.eurprd08.prod.outlook.com (2603:10a6:10:3ca::17) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.8606.32; Wed, 9 Apr 2025 10:56:27 +0000
Received: from DB7PR08MB2987.eurprd08.prod.outlook.com
 ([fe80::d53f:b16d:70a5:8668]) by DB7PR08MB2987.eurprd08.prod.outlook.com
 ([fe80::d53f:b16d:70a5:8668%4]) with mapi id 15.20.8606.029; Wed, 9 Apr 2025
 10: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: 5fce845b-1531-11f0-9eab-5ba50f476ded
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=KHxHi91BtgNtNI1iHoEZ5TawvnLSRxlDS9mb5YF/i9O5jRFwVP9S905goXQKtW9Wrw7sAtiblqUW0RLSaeHowzPrHodwi4SEllj34E3iCBphVLyit7IeRFgkcnIqTGSHZdud07NXL0PTWz1GrNDFWElAftd8JT6rSAj4gdjLreeJ3ALhtPekob2t8d368qsOgh0LrSHZ6Z/dXvS8Ft711DTd+qrOmR/JAybrtyD7VP/2+BrLBzH2KtPVu6EvECORSFQkt8nTCuDo6eVNIBHk28vcZLq1P6J2uCM1MQ2cVFqyZuP9cy2UaCSZhFYV3xnzleECSZfpkcuvcCdGkWLrfQ==
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=Tggu0kKceMXHitowsjFTiqg5lD7rPQ5JchRwMuc6HRg=;
 b=q2vEWdfUsiQuXL3ik57BHt5UA8dzgM/mWRLg1UOgNUD6A6RZGpDf8Z3EU/GYCGAbZu0mcZvuLgJho+SHeWUBugflfxdSGmRS7NUw8rjGcv5Z0lCUDOXoNz7C6Qzyh2j8OHEdLTqC1agCzKTZUyvr6TYr9I3bzzNfdiahyZvYhdnXQ9aUuG9fltAHp46r4sCYZMBPru7Kfi4Nah15scnwbvQJE5giHMSI69Rfl+2I7b/Ezt6xyv84SJpGIEc53UINmu2BXQ1oIkx2XFv9FGX8rw+Jj893lhW9TKbTT2AzFwZLhplv0qEhCQdLw77DaJaJ1ZYwwjvLAabIIDmBEHLAwA==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=amd.com smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Tggu0kKceMXHitowsjFTiqg5lD7rPQ5JchRwMuc6HRg=;
 b=SnbOfnMCoMFegG6uVe33Hywy3m5fNFZqTo3EJbnSpa+yrAr971294KrquN+4Kcoq7hdtMSRPSoTI4BaBI3us79xWn94/wGMjvSlnbS1f4X6NCNlQ27kRRtalhaNmmsxvS0CSSBGk37rLbaTDUAzaxUENG1xpAGHJZmbxXYvqNtU=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=IVv4Ix3g9Ummr1CHCkosGVJtrrk9ZG8GGExvVyqBYQPaDnZn7c1CntskDTTW5JPG8OCUa8J4hABQqZLkpWL9RL9aiq+N+42EernFnUKi84EOt04iIpEtGjL7jHfp8p/FGzo72q44VOannRkBYi2KYllqKyezGeZV1cy7/5URbokdybR7uzBPJKQgsR/x40TamV+grO7LK8DMcaB2bNXzQHqKP56uSRH1iFI7GvhfoGLVLv3YINpPnekXKxUu63Z09WVXuYzhXE2s9/48s4tPun8+NJUBfsq8mwS3ZIYwZWgTUyaSWfxfxwkez+XLJflfMWjs5WzfyipTI92zpIo9RQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Tggu0kKceMXHitowsjFTiqg5lD7rPQ5JchRwMuc6HRg=;
 b=osjWreUU5rMq7LTh/AforoZKm0yjP4BXf94P7ZlzGgd1KD1ANtzMvIPd1NFcM95lPjtF1yDYmUWf/nR8ibiKhWxlEzZnKK9gtawVqlfNAVwxzZ8k2vXYfQAfI7cVZk1kRoe+2YWQwISevHCXdD3kFjIm6txs0AH7kgTHfefe0mzOf8ZRwu5LxROC2OrI862lghLLlCmXXFF8SSzMA5r3ffUhAv5zfOK0F/9k49tdNX5jlyeeVUfYia4pwTBMlXNmwkbkyxc1mybMxfsNn4LBsUcFixKq19sRC2+ZHcxklqcDNavcPLocfWJc/fBWwXjEKPMORFFTejHe0ZoMQPZZSQ==
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=Tggu0kKceMXHitowsjFTiqg5lD7rPQ5JchRwMuc6HRg=;
 b=SnbOfnMCoMFegG6uVe33Hywy3m5fNFZqTo3EJbnSpa+yrAr971294KrquN+4Kcoq7hdtMSRPSoTI4BaBI3us79xWn94/wGMjvSlnbS1f4X6NCNlQ27kRRtalhaNmmsxvS0CSSBGk37rLbaTDUAzaxUENG1xpAGHJZmbxXYvqNtU=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Ayan Kumar Halder <ayankuma@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 v2 2/7] arm/mpu: Provide access to the MPU region from the
 C code
Thread-Topic: [PATCH v2 2/7] arm/mpu: Provide access to the MPU region from
 the C code
Thread-Index:
 AQHbp52Ro+Yg+pQClU+WnJSxei+hH7OZzl8AgAAHm4CAACKVAIAABC6AgAAEEwCAAPj6AIAACQkAgAAcT4CAAAO6gIAABy6AgAACqoA=
Date: Wed, 9 Apr 2025 10:56:26 +0000
Message-ID: <8EDDD953-857A-48B1-B0D8-B161DA9D5B33@arm.com>
References: <20250407091430.2342709-1-luca.fancellu@arm.com>
 <20250407091430.2342709-3-luca.fancellu@arm.com>
 <0acf63c0-267e-44c0-b629-fa576307497c@amd.com>
 <1AC85CBD-02B1-4AA4-B9A3-68DFC06137AA@arm.com>
 <4f860a56-5536-455b-9490-196bfc220556@amd.com>
 <40C7A4DC-0216-4981-A501-AFDA0E8671DD@arm.com>
 <9f637d98-c8f8-49e0-9f0a-002cdfefc296@amd.com>
 <EABA5C5E-4FE3-4E7A-8E29-B37A4CFCC18D@arm.com>
 <F2C6FC52-386A-4417-B592-151ECE079E52@arm.com>
 <aded1d6f-0e6f-4903-a5a3-127e06e3803f@amd.com>
 <C4B4B135-AF5D-4BA9-AD17-0C46868B7FFD@arm.com>
 <44944588-2225-4f77-9a89-1153630f900c@amd.com>
In-Reply-To: <44944588-2225-4f77-9a89-1153630f900c@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.400.131.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DB7PR08MB2987:EE_|DU0PR08MB7946:EE_|DU6PEPF0000A7E0:EE_|GV1PR08MB10750:EE_
X-MS-Office365-Filtering-Correlation-Id: 39b6fc86-c68d-4c1a-fa1f-08dd775540ce
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?UWVMYTJHWVc2SEdheFdlbXR2bGkxaUxTN3p3QXFSMW1SNldFRkE3dmFjKzRV?=
 =?utf-8?B?cVYwVnFSOFp6TExhMVF1ZHVnTzFuRDhXWjBCQjVWSG1PT0diY0swa2lFc1B5?=
 =?utf-8?B?YXRNdEhZZ0x3L3BpclBRNjFybVMwOXRvSVVLTGZLdDdVZ2tpUUZ5akkzZGZS?=
 =?utf-8?B?VGhIOUlRbW5IdFlYWmd1dUNTS2pDb0VTVkdDQVV4QU5ya2V0Yk1VYjhZeVB2?=
 =?utf-8?B?VCsrUTNMaUtoMUlrUGhZblNGcVBRc0R0anVSb2RiUGcwbUR6OHRUOUZjeVVh?=
 =?utf-8?B?TnJCdkdBcG1jUFBjOHlodFRiUFBJMUZZQWRoVU5OL3l2VXBXdDdwNURrWFZT?=
 =?utf-8?B?bjZ1ellkOFo0VXBrQ0J3Q0c3SXAvbkNsaFh1WUNHVUJycnlQQkVIOUJVWXIx?=
 =?utf-8?B?UHhlV3BnaVd6N3YxMi9Wb2hrSGNnRDZ3aUdoYjVwaUM4UVNOZVJpeU8yRzFX?=
 =?utf-8?B?UittLzQrR0pjKzkxVUZVZnlIMEdzUEhLMkpHYk1EenZkSTZpRW1XU25CdzVr?=
 =?utf-8?B?RWsvd2VTbUM1TTFzV0RhU0NyQkx5eHo1RFRiRTJyS3ZvYWdQeUhpa296eWZ3?=
 =?utf-8?B?bUlic09zN0pmK1BDb1dEU1BzVjhNNzZwMUZUVmVlcjhodkRoeDFzR1J5OTZF?=
 =?utf-8?B?YWpvOU1MTmttdDhjOTdrWi9RUHRlQmwyUzdYamg2aTlEbzhxMC8vLzJYVWl4?=
 =?utf-8?B?bUlKRURuODM2WnBKSmFocEFrN0lTSXU0NW9kYWhXcFJMdmM4STN2T3N3WEgr?=
 =?utf-8?B?WDRyYUx3ejE1WCtFV2JHdWdnWkl3akxTb3BhcVZLNXpGeCt6MVNoM21mNkJj?=
 =?utf-8?B?RkcrVnVpSDAyTHByUVJtR0t2bzVxd3hNSHlUVi8vQkxzU0ZadldiaW9IWDlP?=
 =?utf-8?B?SlY4SVFJbXo0SUtFNE13K2xFRmJWZmE3TitXSmVVMlpFL2R0RVcyb1I5ckxa?=
 =?utf-8?B?QmthanhDSE9wcGIzN0F6b3RCTXduRUxHR3pUSmQrZTNTbE1TOUphc3dIUFpw?=
 =?utf-8?B?QWoyTkdWM0Uvc0RoZjJ4TmlDOUR5UzBiUUxXZmowelp3WUtlV2JNRUNQbXRx?=
 =?utf-8?B?ZWdNVEVxTmN4S1NNKzYxUnhWZ0JDME4wSjIvRXVyZVVXVmhjUDhqR3lxTzg0?=
 =?utf-8?B?YmYrK29UQ1UyWGltMU9Bay8raEgweHJTVWVHQU55WklLZFJUVnZnMUthMkZ6?=
 =?utf-8?B?MmdGQmZ4Tm5uV1NmRnlmeGgwdGgxM2JLZzVJRWZ4TGVaY21GaXYwZDB5dFRR?=
 =?utf-8?B?Rjc5Q0lBRWdDUFAwSTA4R1A4Y1FuQ1VpVGEvUWZQQ085a1BXZ25scUdHaXdJ?=
 =?utf-8?B?dDIxNG9FcSs3QkJiUWFCNkh4WDFmWHVHWUNYa3hZQzg4bWYrdEM5YTdNa0RD?=
 =?utf-8?B?UFhQYVA3RjdZR0ZLNUJUVXh0aCtKWHR2VW02V2N2cWdOb2p4VG45MTlWZkhB?=
 =?utf-8?B?T2ZLTGJseHZZZXJ3MHRhSng2RkFmbHVaS3hoVGtXbkk2RGVnMTVwb2JwSGdJ?=
 =?utf-8?B?blpkK0xMdndFYWt0enpYcUF1S0luUFQxVlg4TzRIdzFKTHlQRk1xT2hybXhh?=
 =?utf-8?B?ang5SjhmdW5UUUViUlh6Qi9vQjd5QXAyK3VaK0JXbzd5WnNLWDZSZEV4SnF6?=
 =?utf-8?B?eXJQTVZjei8yRngvNUZXY0prSDRjM3V6d2wzbS9yNWdUTWtTbmVPMUNjQ0Z2?=
 =?utf-8?B?WGpNUGVWUEpGcm85Wktmam01Ym1ZVm5ibklDeVVRaHdGL2dsdUF5eElSdDdF?=
 =?utf-8?B?a3NRa3Naamk3Y1poR1lHSUxOM3hNWnVnU0pYUlExZERrTGFObkRWU1pmRnJT?=
 =?utf-8?B?VVRRbWhMdHJ6NWZuN1M0MFBld2Z3K1dNU1ZRSmhoT1BXWllMR2VWSTFOeXhw?=
 =?utf-8?B?WHo2V1E1VmdiREg2ME5jazVPN2tHcE1lejE4Wk1CNnBiYmR4eldTUWdBR1FP?=
 =?utf-8?Q?5vOxTeMeLt/WCFUtE3mMCOrL6+Su+u5p?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB7PR08MB2987.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: <7BF1669C90A13845964D1F904A01D647@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB7946
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DU6PEPF0000A7E0.eurprd02.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	4478504b-efa1-4645-679e-08dd77552cd6
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|35042699022|1800799024|14060799003|82310400026|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?Ri9CbENiSTZJM2RtMXlLQTU1QUhOcE5va1FDRmczelB4QnA5b0gvZTVWZmxu?=
 =?utf-8?B?a3AweU1xdVg3RGVTRmlTN1pLd3Q3Rk54bWNmb3c5bjk1MThOUXRzMVlMdEkx?=
 =?utf-8?B?YjBaZWVKcm1wV01TQlp4SGxVcCtiMC9hZVFxRThhaVp5eFpqM2UyUk93Wk1v?=
 =?utf-8?B?SEh0ZmM0MVpOWTh0Z3hWNTJFellSQm1vUjkwaGY4dkZ6SWdYUzNIaTZBeGdr?=
 =?utf-8?B?Mk9YN3JEVXArLzVwbVlNZUdhV1pkVEFtbXBMcktERE5HTWdXK0M1YzRBdmpR?=
 =?utf-8?B?T29PWWNZbnFLZVlFRjg0S0pDU3lSY2FDMTlCNGhDM1QwbVlZRjZCVUs2TVA4?=
 =?utf-8?B?QTRRbjdab3U3R2JqbTkzVmNtYTc3UXMxRWFkL3IyQ1J5TWZXc3dzTjlYTWZJ?=
 =?utf-8?B?YTdLeEV6ckF2ZFR5dnNhTUl6K0dRSTkzYjI0eDZBTmNRaXF1d3dLNWNmTDBP?=
 =?utf-8?B?MWJBWDRXZU1Nei8xMnZVTnNwWFovMVlEdzJyOUtubE43WVFiSFFlUkhIUS81?=
 =?utf-8?B?Y1ZEdEVQZHY3VFYrbERkQnlSMTN3UzJSQ2RPTlppWm1QZlZhVlp1TWFLdjJR?=
 =?utf-8?B?UXpVUW0welFkZlJmcHhNd0YwM2pkT1FDN1VZYmQwbHRHeWxRR3ZaT0h6akty?=
 =?utf-8?B?YUdPUTR0bys0Uzh2Y1Bsbm0ybzcwVkd4RFkvaUoyTkV5aHdhSUFUMTB5TXVr?=
 =?utf-8?B?YWNJTGFlc1BrRitHL3RNRStwVnMyeGtBUmRXdENITEFUbnFGNGZzMWhIOXRa?=
 =?utf-8?B?dkNLajRGcXJnakRNbnJUT0JoMmJHbGFpQkRHN1lPZHltajFBSE5TVlVIbkNk?=
 =?utf-8?B?dnJ1WmFDQlB3MnhkbVpZMllWVWVUaHRuZmExT1p4T2d5MElXM3RBOHVKQUg0?=
 =?utf-8?B?aDgwUlI3eVBpU0J0ZWNUdGUzRi9nMzM1aFZ4YVk1VTZ1ZTI5THhsUU9Pa3hF?=
 =?utf-8?B?NitRZEFzYzdyaU1tcy92T3ZucS9RM2VnWHVZQWQzdjg0M1ZMT0dOMUdkK0tj?=
 =?utf-8?B?cXBoTFlFN3FQMFV3V2IzeDlndDYzZ0MralJXcVZrRnljT3pjejZPREh2RmpM?=
 =?utf-8?B?R29qRStxRCtEdzMrT2RGbTE2V2ppbG8ySFlZS2ptVy80UFRvSnlZdjd6UUFC?=
 =?utf-8?B?WHIzNmNTVUtpa0x0ZnMrdk42RDlyMnVPUGIxZEtzM011bW1SMThhbHNSYXps?=
 =?utf-8?B?bDFybGt0WHlvYlpnSGRkbDRueElXU3R1ZVpMa2dabTMvQzREbHlqWXVWMUpG?=
 =?utf-8?B?bitnZ1BZVlVnaSsrOWNvclJyTGhnc3FzdlMwblBzejNMSXJwcTFyTW1BWjhU?=
 =?utf-8?B?NHVlRHE3WFFwaE1PNDIwUU9VVVFvZlBTYW9RK0FPRVdYSFZySGV1VTFvTzFM?=
 =?utf-8?B?Wlhla0tlTGZ5SXVaNDVuQ0xmVGFhdXQ5WXY2djZaK2QzZkZDaGdUUTdUZHlW?=
 =?utf-8?B?RGVQZXJUcklrQTlhek5CWmV0Rk8rU3JEOWU3a01mVWVJa1lTWlRnTGRBOXJ1?=
 =?utf-8?B?eEd5M1pJLzN5SjhhSTMyTTZIOEVaNHFLQ0xZUVAvMnV5SEV5eVhuYmhUcE1G?=
 =?utf-8?B?TExCVlhJcFZxK3QwRGlpQm54N1pYbDc1a0VqYjlla2J1M0M0Vk5uaVQ0Vno4?=
 =?utf-8?B?cE9PaThHaVRQMjY3aGJGdG9ZT29CQXpmUE9TZFFwaEtQNmx5SUMzQ1BxSFZq?=
 =?utf-8?B?b2lsWC9JQU5ZL3RZUldHWnN2YVN0QlBiYnNBbVdaNlFxNzBSWG80TVRwV05C?=
 =?utf-8?B?OUFhUlYzczJ3VkQzQVNTNVdhTGhTRkxkZTQvWWhaNkhyd3lTOS9qZTJYcERx?=
 =?utf-8?B?L2hKalVabm1RcmtLbFl5a2M0elhjcm0rbEcvT2o1Wk8xYXlNY0dtaTBLWEVq?=
 =?utf-8?B?emZ6cWtkdEpzRmtOYWtQK2xsdzJzMXRKUG1FNWx4UUR6YWExbXQwdDVJQ3Y5?=
 =?utf-8?B?ZDNPNHpzWTFnV2F6UnJzYytRdmtNSG04aE1sdDcwM0NFeGJSQklMRDA4WHg2?=
 =?utf-8?Q?4neHWVOkUQ/aeZlivO9nl3/O4Kap60=3D?=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(35042699022)(1800799024)(14060799003)(82310400026)(376014)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Apr 2025 10:56:59.8616
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 39b6fc86-c68d-4c1a-fa1f-08dd775540ce
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DU6PEPF0000A7E0.eurprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR08MB10750

SGkgQXlhbiwNCg0KPiBPbiA5IEFwciAyMDI1LCBhdCAxMTo0NiwgQXlhbiBLdW1hciBIYWxkZXIg
PGF5YW5rdW1hQGFtZC5jb20+IHdyb3RlOg0KPiANCj4gDQo+IE9uIDA5LzA0LzIwMjUgMTE6MjEs
IEx1Y2EgRmFuY2VsbHUgd3JvdGU6DQo+PiBIaSBBeWFuLA0KPiBIaSwNCj4+IA0KPj4+IE9uIDkg
QXByIDIwMjUsIGF0IDExOjA3LCBBeWFuIEt1bWFyIEhhbGRlciA8YXlhbmt1bWFAYW1kLmNvbT4g
d3JvdGU6DQo+Pj4gDQo+Pj4gDQo+Pj4gT24gMDkvMDQvMjAyNSAwOToyNiwgTHVjYSBGYW5jZWxs
dSB3cm90ZToNCj4+Pj4gSGkgQXlhbiwNCj4+PiBIaSBMdWNhLA0KPj4+Pj4+PiBUaGUgcG9pbnQg
b2YgdGhlIGNvZGUgd2FzIHRvIGRvbuKAmXQgaXNzdWUgYW4gaXNiKCkgZXZlcnkgdGltZSB3ZSBj
aGFuZ2UgdGhlIHNlbGVjdG9yLA0KPj4+Pj4+PiBvZiBjb3Vyc2UgdGhlIGNvZGUgd291bGQgYmUg
ZWFzaWVyIG90aGVyd2lzZSwgYnV0IGRvIHdlIHdhbnQgdG8gZG8gdGhhdD8NCj4+Pj4+PiBOb3Qg
c3VyZSBpZiBpdCBpcyBiZW5lZmljaWFsIGFzIHlvdSB3b3VsZCBuZWVkIHRvIHVzZSBpc2IoKSBm
cm9tIHJlZ2lvbjE2IG9ud2FyZHMuDQo+Pj4+PiBUaGUgaXNiKCkgaXMgaXNzdWVkIG9ubHkgd2hl
biBjaGFuZ2luZyB0aGUgc2VsZWN0b3IsIHNvIHdoZW4geW91IGdvIGZyb20gcmVhZGluZy93cml0
aW5nIHJlZ2lvbnMNCj4+Pj4+IGZyb20gMC0xNSB0byAxNi0zMSBmb3IgZXhhbXBsZSwgb2YgY291
cnNlIHRoZXJlIGlzIGEgY2FzZSB0aGF0IGlmIHlvdSBjb250aW51b3VzbHkgd3JpdGUgb24gcmVn
aW9uIDE1DQo+Pj4+PiBhbmQgMTYgeW91IHdvdWxkIGhhdmUgdG8gYWx3YXlzIGNoYW5nZSB0aGUg
c2VsZWN0b3IsIGJ1dCBpdOKAmXMgdGhlIGxlc3MgaW1wYWN0IHdlIGNvdWxkIGhhdmUuDQo+Pj4+
PiANCj4+Pj4+IGFybXY4LVIgaXMgZXZlbiBiZXR0ZXIgc2luY2UgaXTigJlzIGFibGUgdG8gYWRk
cmVzcyByZWdpb25zIGZyb20gMCB0byAyMyB3aXRob3V0IGZsdXNoaW5nIHRoZSBwaXBlbGluZSwN
Cj4+Pj4gICAgICAgICAgICAgICAgICBe4oCUIGFhcmNoMzIgOikNCj4+PiBDYW4geW91IHBvaW50
IG1lIHRvIHRoZSBkb2N1bWVudCB3aGVyZSB5b3UgZ290IHRoaXMgaW5mbyA/DQo+PiB3YXMgcmVm
ZXJyaW5nIHRvIHRoZSByNTIsIG9mIGNvdXJzZSB5b3UgYXJlIG1vcmUga25vd2xlZGdlYWJsZSBv
biB0aGUgYXJtdjgtciBhYXJjaDMyIHBhcnQsIHNvIC4uLg0KPiBJZiB5b3UgY2FuIHBvaW50IG1l
IHRvIHRoZSBwYWdlIGFuZCBzZWN0aW9uIHdpdGhpbiBSNTIgVFJNLCBJIGNhbiB0YWtlIGEgbG9v
ayB0byBzZWUgaWYgSSBtaXNzZWQgc29tZXRoaW5nICh3aGljaCBpc24ndCBzdXByaXNpbmcgYXMg
dGhlIGRvY3MgYXJlIGh1Z2UgOikpDQoNCkFybcKuIENvcnRleMKuLVI1MiBQcm9jZXNzb3IgVFJN
LCByMXAxLCA4LjUgTVBVIFJlZ2lzdGVyIHN1bW1hcnksIEkgY2FuIHNlZSBIUFJCQVIgZ29pbmcg
ZnJvbSAwIHRvIDI0IChzbyBJIHdhcyB3cm9uZyBhYm92ZSwgdGhlcmUgc2hvdWxkIGJlIDI1IHJl
Z2lvbnM/KS4NCkFueXdheSB3ZSBzaG91bGQgZm9sbG93IHRoZSBhcm12OC1yIGFhcmNoMzIgc3Bl
Y3MgaGVyZSBhcyB5b3UgbWVudGlvbmVkIGJlZm9yZSwgc28gbWF4IDMyIHJlZ2lvbi4gQW55d2F5
IHlvdSBhcmUgdGhlIGRldmVsb3BlciBvZiB0aGUgYXJtMzIgY29kZSBzbyBJ4oCZbQ0Kb2sgd2l0
aCB5b3VyIGNob2ljZXMhDQoNCkNoZWVycywNCkx1Y2ENCg0K


From xen-devel-bounces@lists.xenproject.org Wed Apr 09 11:12:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 11:12:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.943919.1342523 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2TLU-0008B9-NQ; Wed, 09 Apr 2025 11:11:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 943919.1342523; Wed, 09 Apr 2025 11: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 1u2TLU-0008B2-Ib; Wed, 09 Apr 2025 11:11:52 +0000
Received: by outflank-mailman (input) for mailman id 943919;
 Wed, 09 Apr 2025 11:11: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=Yx2+=W3=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u2TLU-0008Aw-3B
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 11:11:52 +0000
Received: from NAM12-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam12on20617.outbound.protection.outlook.com
 [2a01:111:f403:200a::617])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6dda0c31-1533-11f0-9ffb-bf95429c2676;
 Wed, 09 Apr 2025 13:11:49 +0200 (CEST)
Received: from SA1P222CA0160.NAMP222.PROD.OUTLOOK.COM (2603:10b6:806:3c3::6)
 by DS7PR12MB6311.namprd12.prod.outlook.com (2603:10b6:8:94::10) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.23; Wed, 9 Apr
 2025 11:11:39 +0000
Received: from SA2PEPF00001508.namprd04.prod.outlook.com
 (2603:10b6:806:3c3:cafe::28) by SA1P222CA0160.outlook.office365.com
 (2603:10b6:806:3c3::6) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.20 via Frontend Transport; Wed,
 9 Apr 2025 11:11:38 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SA2PEPF00001508.mail.protection.outlook.com (10.167.242.40) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8606.22 via Frontend Transport; Wed, 9 Apr 2025 11:11:38 +0000
Received: from localhost (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, 9 Apr
 2025 06:11:36 -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: 6dda0c31-1533-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=fWOCpTLtgoTfdeuxhkK2CyMbhktsztBQyldJzPT5X98Mx9zGy+0ToAYfH+N0Rv4/Nh3CLi31v0enSfL2e0Zzwfi2ATVJqBrzOhK/mzD30YveI1YlVry5BnjlMGHWCxqFcw1acAianUpdQAnoKz9f/XgE3FT/385eq6D69AuJkb23lna9D2euTPNXK7mEEmQE+8ek21Z8tTCvwzFjKu0qmRISnCq1plp3xxVU766n+dxuijljR9/m+MG1veubKmpLxrq4UbccWYE8jUARaqzcKMaTAExLveJQE+8Frtq5xW43i/BvN3FqOCv8QLiki73AculLbHA2EhD8XhYHLVRj/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=Es/yBq7n8MRlrjZxuWDeqgWrcYzZw+BpsNzgg5w4EZY=;
 b=a9hFzwRscgnX95LxocLh4/nyQL0xDy9rSBWvPXZqiAqqi1r62bkQbwoaURZJvM9sOdowZ/zEY59PfYVWu4lepgbLYcFXUTxCK8jEs1Szqkdyg0knZF14AMQu2dmCEBY00zmSYOVSiG1qWJswMIbef9UdkgDjO6jplOHBfsdXp9Bi1s5FT5ITICWYbCan3/CZRerzROWYvMTov4/7mpg1O+9+3lNxLSLO554223suNqrtw2uKPwzJ2O/gxfYNwDQL1NwU1ezmCPHNCyN85jMGa1u4T35ByVtaNHFmQm4vVS5o1WiqwAOhn8bHpMJg+4eLQ1T9aX+Cl3g3hkvyVVJY1Q==
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=Es/yBq7n8MRlrjZxuWDeqgWrcYzZw+BpsNzgg5w4EZY=;
 b=x6jAhlFJ+CpKubG8Tducq3p/vxuEbcWtuw9KhemgP/1yRHhdM87fPnEHxxrYtouC2v/X7UkK2+BESHkzNUY+UCgwHQrD6aQlNybugfMnnh+q1gKs2+RgrBCFvDvi0k3U2umBn4s4H9YS0sxju3+XO3Ua6VVyGrotzGJyHCh9DhI=
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
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Wed, 9 Apr 2025 12:11:34 +0100
Message-ID: <D9229NGQ6QJ1.18Y8EVWZDY8U6@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "Daniel P. Smith" <dpsmith@apertussolutions.com>, Jason Andryuk
	<jason.andryuk@amd.com>, Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	"Stefano Stabellini" <sstabellini@kernel.org>, Michal Orzel
	<michal.orzel@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>
Subject: Re: [PATCH v3 03/16] x86/boot: add cmdline to struct boot_domain
From: Alejandro Vallejo <agarciav@amd.com>
X-Mailer: aerc 0.20.1
References: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-4-agarciav@amd.com>
 <cdf00f8c-2143-48d6-abdc-8f56dafcc84c@suse.com>
In-Reply-To: <cdf00f8c-2143-48d6-abdc-8f56dafcc84c@suse.com>
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: SA2PEPF00001508:EE_|DS7PR12MB6311:EE_
X-MS-Office365-Filtering-Correlation-Id: 60b02dd0-3525-4675-9820-08dd77574c83
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?Zk5EbGFaVFZkbjdjb3JKTmJ5bWMycE1YNjRsNU0zcFVSNVk3eTFDZHN5MS9T?=
 =?utf-8?B?cDloOXpUNWNFOGFhY2pYMjB0NDBIVG0zcDd4NENMVk4zSllPTFlNMkxvZC9x?=
 =?utf-8?B?aHAzVEhtUjZHQTFnQVE0a0lCclRwOGdxTU83S1lvWXY1eVpUUDRCdjJyNlZt?=
 =?utf-8?B?TTlKN29yREgxb2hyWTJNTEowNEIvTEt2TGJqMi96RUluYlovOTV6ZFFYcVhy?=
 =?utf-8?B?K3dML2lVSWNMMW1OdU0zVmg2OW4rM0dzc2o2N0lxZmdsc3d2K2o0WDFnUlE2?=
 =?utf-8?B?V0VjQ3NhMXZxVEJIMW5CeURkcGl4cDZyb3VMakVoTXBnV3p6aTlqMFhMc1lZ?=
 =?utf-8?B?Smx4eFNIL0VJVjl6WmFlT0E0NDI1Y0Rld0p6blJUd3ZDOFBGS1ZnTFV1Z0Js?=
 =?utf-8?B?UDg5Y1YzTGN5eXlQejVySTNtUjRZN2VoZ1BpTlZNd3IxMGZsUnhBdUdmSTJP?=
 =?utf-8?B?SW5NbXRjQzRGWmdvNURzTkcxRUdHR09UdWExUHExMWJhaU1BY0xSenJENU5X?=
 =?utf-8?B?blNUNzc1UUQwRmNSK3JqaXdaWkpRKzVodFlSSFQ4cGpjNEo5MmpDOFFXMEpJ?=
 =?utf-8?B?cXFZNGVoUnFNS2F3ajR5UFdGY2FScVZWVGE0aytXZXl1M2lsR24vMklTdy93?=
 =?utf-8?B?SnJPOWk2ZzNrbzF5ZktUZGptSjlMSTdld2dZL0kyeGswd0xkZzB5UDBwTzh2?=
 =?utf-8?B?REM1MlU1YzlVNVVRRERpVXRxWElEdWpTZVJXV1pKaGJhU0o1aGVXV0Y4a1hv?=
 =?utf-8?B?MUJxR1B5eDhLUkdwYUN6dWxac0hHekZZR3djV1FKMVozcUtyZGxCYzJxQW43?=
 =?utf-8?B?M0Q1Qk5nMWZYMks4S0VlaFlGR25CcitwNVQ1ME5jbTlYQkt0TUJMT2xVcGVw?=
 =?utf-8?B?N1dEeEpnemp6cFJkR3pMY05wcWNIemRBNUtjcWFSMzl1V0pUQldxS2tab3JL?=
 =?utf-8?B?RGgxTmJhc201bHZ3TjVlWkNZSmFLdk44ZTBYb0FiMlJianc1dXZMSFBTRVpq?=
 =?utf-8?B?V0VWakxjcTBOSGZVTEJpdlhDcmhiY1o0U21zUEhYMGx2Q0xMWDZoaVNxajlO?=
 =?utf-8?B?cmt2MnhZRUcvWUY5MWV3RlA4VERLYlh5eS96NTJaSDdBQ0hQMzM5TEFlRWF0?=
 =?utf-8?B?ZG5peitFaFlLRG5sTWExSjBwcU5NcFE4b1A3RFBhTjRSTjJOSlJreXFnWFd5?=
 =?utf-8?B?SGh4NjJrNndjbytYVGJJSFByZzl4cFR5RUxCSExNTUhQdGxVaENxaFVlbUpB?=
 =?utf-8?B?anFsV2pWc2huZDR2bUc0T3Z2NzY1cy9pQzMwMDI2djhsVElrSE1lZFZ2WmEz?=
 =?utf-8?B?ZlBISUNaeUU5QkRhUlgwLzFsUEZqTnlJMnpWMEY0Z1dxVEhEMjZycGx1U0RR?=
 =?utf-8?B?V2RZZmFhNjB5cEp6UUg2My9rU2txbVdxZzRMWXlLZU5oYTd6NWlrWXJxdDJ1?=
 =?utf-8?B?Rm9ZRnduZG1laW90WE16M252S2FSamRWbEdmS1pKaytTOXlRWDUyNzJmb1VY?=
 =?utf-8?B?c1QxNExtV0YyZldpQUEvYi9iWUxEREd3SFQ4WExDLy9uRWNZSW9MbWNFRmt2?=
 =?utf-8?B?VVh3WktYdUllRFBkSFdLUnVyWjkzVHhJcHNDY0w1WWJWTm9Gb1k0VFRBVm1t?=
 =?utf-8?B?c0w5dUxYOXFOUXpRNjBxUHNOQWh5WGlSbEE3WEMyYWRzRklXdG1laXRIK3N6?=
 =?utf-8?B?Q295ZGl1WDJGSlRHSTJQcmRNUDE2Y1N5cS82WTFac2orWGRKUEdlN2E5L01y?=
 =?utf-8?B?S2ZLMm4wdjAybkEvTE5zUmJOWkkwcVZNaThZcGxMTHVoWFZnSkhHU2Q5aVpG?=
 =?utf-8?B?LzdDdjIvbXRvTGNtcGx2MjdjY3JiSVowdjhoTVlUeTVQa3BHL2pTZkRoT0po?=
 =?utf-8?B?MDBvTjdHam5ieU5acytQM0hjc2lLbjQreU5qWXlZL29rbzJla2NlMDVNbmFI?=
 =?utf-8?B?d3lybFJlTVFnOGlwTTdYbitLTHJKN01CaFIzcVk2bFY1ZitCMkpFSDhxTmRa?=
 =?utf-8?B?SEVoTTR2WXUvZjlIWUJwUGpMMVhITmlCWWRNSEtTb1BvUTZpbERQTmlCaVdw?=
 =?utf-8?Q?N9RqSX?=
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)(82310400026)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Apr 2025 11:11:38.5406
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 60b02dd0-3525-4675-9820-08dd77574c83
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:
	SA2PEPF00001508.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB6311

On Wed Apr 9, 2025 at 7:48 AM BST, Jan Beulich wrote:
> On 08.04.2025 18:07, Alejandro Vallejo wrote:
>> From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
>>=20
>> 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.
>>=20
>> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
>> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
>> Signed-off-by: Alejandro Vallejo <agarciav@amd.com>
>> ---
>> No changes on ACPI cmdline handling on PVH, as it's orthogonal to the
>> purpose of this patch.
>>=20
>> v3:
>>   * s/xfree/XFREE/ on failed construct_dom0() to avoid a dangling
>> cmdline ptr.
>>   * Re-flow hvm_copy_to_guest_phys() into a multi-line call.
>>   * s/bd->cmdline !=3D NULL/b->cmdline/ (to homogenise with the previous
>>     cmdline pointer check)
>> ---
>>  xen/arch/x86/hvm/dom0_build.c          | 12 +++----
>>  xen/arch/x86/include/asm/boot-domain.h |  1 +
>>  xen/arch/x86/pv/dom0_build.c           |  4 +--
>>  xen/arch/x86/setup.c                   | 50 +++++++++++++++++++-------
>>  4 files changed, 47 insertions(+), 20 deletions(-)
>>=20
>> diff --git a/xen/arch/x86/hvm/dom0_build.c b/xen/arch/x86/hvm/dom0_build=
.c
>> index 2a094b3145..ebad5a49b8 100644
>> --- a/xen/arch/x86/hvm/dom0_build.c
>> +++ b/xen/arch/x86/hvm/dom0_build.c
>> @@ -653,7 +653,6 @@ static int __init pvh_load_kernel(
>>      void *image_start =3D image_base + image->headroom;
>>      unsigned long image_len =3D image->size;
>>      unsigned long initrd_len =3D initrd ? initrd->size : 0;
>> -    const char *cmdline =3D image->cmdline_pa ? __va(image->cmdline_pa)=
 : NULL;
>>      const char *initrd_cmdline =3D NULL;
>>      struct elf_binary elf;
>>      struct elf_dom_parms parms;
>> @@ -736,8 +735,8 @@ static int __init pvh_load_kernel(
>>              initrd =3D NULL;
>>      }
>> =20
>> -    if ( cmdline )
>> -        extra_space +=3D elf_round_up(&elf, strlen(cmdline) + 1);
>> +    if ( bd->cmdline )
>> +        extra_space +=3D elf_round_up(&elf, strlen(bd->cmdline) + 1);
>> =20
>>      last_addr =3D find_memory(d, &elf, extra_space);
>>      if ( last_addr =3D=3D INVALID_PADDR )
>> @@ -778,9 +777,10 @@ static int __init pvh_load_kernel(
>>      /* Free temporary buffers. */
>>      free_boot_modules();
>> =20
>> -    if ( cmdline !=3D NULL )
>> +    if ( bd->cmdline )
>>      {
>> -        rc =3D hvm_copy_to_guest_phys(last_addr, cmdline, strlen(cmdlin=
e) + 1, v);
>> +        rc =3D hvm_copy_to_guest_phys(last_addr, bd->cmdline,
>> +                                    strlen(bd->cmdline) + 1, v);
>>          if ( rc )
>>          {
>>              printk("Unable to copy guest command line\n");
>> @@ -791,7 +791,7 @@ static int __init pvh_load_kernel(
>>           * Round up to 32/64 bits (depending on the guest kernel bitnes=
s) so
>>           * the modlist/start_info is aligned.
>>           */
>> -        last_addr +=3D elf_round_up(&elf, strlen(cmdline) + 1);
>> +        last_addr +=3D elf_round_up(&elf, strlen(bd->cmdline) + 1);
>>      }
>>      if ( initrd !=3D NULL )
>>      {
>
> Perhaps better introduce a local variable cmdline_len? That would allow t=
he first
> if() to go away (but of course not its body).

I'd agree if the function body was smaller, but it has 16 locals
already. It's already quite hard to know what's going on, so I'd rather
not make the situation worse.

>
>> --- a/xen/arch/x86/setup.c
>> +++ b/xen/arch/x86/setup.c
>> @@ -978,10 +978,30 @@ static unsigned int __init copy_bios_e820(struct e=
820entry *map, unsigned int li
>>      return n;
>>  }
>> =20
>> -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)
>
> const for both? And perhaps s/domain/dom0/ in the function name?
>
>>  {
>> -    static char __initdata cmdline[MAX_GUEST_CMDLINE];
>> +    size_t s =3D bi->kextra ? strlen(bi->kextra) : 0;
>> +
>> +    s +=3D bd->kernel->cmdline_pa ? strlen(__va(bd->kernel->cmdline_pa)=
) : 0;
>> =20
>> +    if ( s =3D=3D 0 )
>> +        return s;
>
> While this retains prior behavior, that prior behavior was certainly odd =
(and
> pretty likely not meant to be like that).

What part of it? How would you propose it to behave? Do you mean that if
no cmdline is passed some ought to be allocated in case we want to
override it?

Either way, such a functional change is better suited for a different
patch that does just that, plus properly handling the acpi adjustments
for PVH dom0.

>
>> @@ -1043,17 +1067,19 @@ static struct domain *__init create_dom0(struct =
boot_info *bi)
>> =20
>>          if ( (strlen(acpi_param) !=3D 0) && !strstr(cmdline, "acpi=3D")=
 )
>>          {
>> -            safe_strcat(cmdline, " acpi=3D");
>> -            safe_strcat(cmdline, acpi_param);
>> +            strlcat(cmdline, " acpi=3D", cmdline_size);
>> +            strlcat(cmdline, acpi_param, cmdline_size);
>>          }
>> -
>> -        bd->kernel->cmdline_pa =3D __pa(cmdline);
>> +        bd->kernel->cmdline_pa =3D 0;
>> +        bd->cmdline =3D cmdline;
>>      }
>> =20
>>      bd->d =3D d;
>>      if ( construct_dom0(bd) !=3D 0 )
>>          panic("Could not construct domain 0\n");
>> =20
>> +    XFREE(cmdline);
>
> While this tidies the local variable, what about bd->cmdline? As it stand=
s this
> gives the impression that you're freeing a pointer here which may still b=
e used
> through passing bd elsewhere.

That ought to have been bd->cmdline indeed.

>
> Jan

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Wed Apr 09 11:28:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 11:28:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.943935.1342532 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2TbP-0002yh-3o; Wed, 09 Apr 2025 11:28:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 943935.1342532; Wed, 09 Apr 2025 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 1u2TbP-0002ya-1B; Wed, 09 Apr 2025 11:28:19 +0000
Received: by outflank-mailman (input) for mailman id 943935;
 Wed, 09 Apr 2025 11:28: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=Yx2+=W3=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u2TbN-0002yN-Nt
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 11:28:17 +0000
Received: from NAM02-DM3-obe.outbound.protection.outlook.com
 (mail-dm3nam02on20600.outbound.protection.outlook.com
 [2a01:111:f403:2405::600])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ba20ad15-1535-11f0-9eab-5ba50f476ded;
 Wed, 09 Apr 2025 13:28:15 +0200 (CEST)
Received: from CH5PR03CA0002.namprd03.prod.outlook.com (2603:10b6:610:1f1::14)
 by CY8PR12MB7172.namprd12.prod.outlook.com (2603:10b6:930:5b::7) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.32; Wed, 9 Apr
 2025 11:28:11 +0000
Received: from DS3PEPF000099D9.namprd04.prod.outlook.com
 (2603:10b6:610:1f1:cafe::7b) by CH5PR03CA0002.outlook.office365.com
 (2603:10b6:610:1f1::14) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.23 via Frontend Transport; Wed,
 9 Apr 2025 11:28:11 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 DS3PEPF000099D9.mail.protection.outlook.com (10.167.17.10) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8632.13 via Frontend Transport; Wed, 9 Apr 2025 11:28:11 +0000
Received: from localhost (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, 9 Apr
 2025 06:28:08 -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: ba20ad15-1535-11f0-9eab-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=fVMvieJsfZkVZ+8lv2X+eGD+ayrbtEJVvZ6e1ufb47PxaYHgnkMtBEeKbKJNhvcJbJyMJVtVgxIpNvynrWnxnq8GuxTNpftXTL0ci8W4sdpWoqDDIJi/sgHNTEUQQLflzi//+AC9EeTc1qONonxwxTa7fzJmPCihLtOfMjg2MM/GXmZKBq8ys6DVbxF7hXE0UWdKA7RXxNVxmTVhjEnHFJQFxSPKbl+vJOKPcFNNdY/tfqevMUn0RcDVZrJzq82xe2lJkW0l0qsSE4DvnsouiaT59KaviTRnP3NmgznyB3vYZ7vtdXuKKo5OeJfIWWhJLVMFrSME1RDtbakPgmmvWw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=6DowtmgwRIK88JgB6IjV7FGb2nBUtbyDSiEL9cfroBg=;
 b=g10SUICceXatt1ZAnVLXPA5uxPAKtO356IFDYadTCJ73BBAeLg12Jb3qiwh/I2Y1LjDLrohLhzJwQ09ZsOeolCjumPurSSNKrRODtKKU/siCs7pn6fEHF2ZEVo2I5QuV/1SR2HQ2Qb8pqS990MZSCcmdlAq2xxnfhNCd+0/uBZ/xx4VC6MXo+HAiepJxJjtxXDIlBBe9BA9PvmUBeEMPnjp+IiXA6L3lyAjysDCY0CB3DdNYA7Y8ZKr1n08o2jYl5Tpo30gp2RBMSsbl9U29iUPcjhgZOUYAIhW2n5KKcBI1HxbhnuWgwZ2MRojZpOddnn1CCyMuO7JQtPATcY1Bkg==
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=6DowtmgwRIK88JgB6IjV7FGb2nBUtbyDSiEL9cfroBg=;
 b=p90XsMGlBRpNWqVNjGn1dQaGEMBlVTfBoIpRnJ+QEQoCSKW3iRYGen7ZnOV83VH9G30iwOOe8fjXTIYXNcMgCOYlN0c2/gKCU6ovZfNZBNiY+SeYZ1KdeATvHniU5pQouUd0NAUDW0IRaEPcdOBnUh0UGrM0aKdFWDRedlTgJLY=
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
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Wed, 9 Apr 2025 12:28:06 +0100
Message-ID: <D922MBDY2JJ4.NQXTTKRAMFEU@amd.com>
Subject: Re: [PATCH v3 03/16] x86/boot: add cmdline to struct boot_domain
From: Alejandro Vallejo <agarciav@amd.com>
To: Alejandro Vallejo <agarciav@amd.com>, Jan Beulich <jbeulich@suse.com>
CC: "Daniel P. Smith" <dpsmith@apertussolutions.com>, Jason Andryuk
	<jason.andryuk@amd.com>, Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	"Stefano Stabellini" <sstabellini@kernel.org>, Michal Orzel
	<michal.orzel@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>, Xen-devel
	<xen-devel-bounces@lists.xenproject.org>
X-Mailer: aerc 0.20.1
References: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-4-agarciav@amd.com>
 <cdf00f8c-2143-48d6-abdc-8f56dafcc84c@suse.com>
 <D9229NGQ6QJ1.18Y8EVWZDY8U6@amd.com>
In-Reply-To: <D9229NGQ6QJ1.18Y8EVWZDY8U6@amd.com>
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: DS3PEPF000099D9:EE_|CY8PR12MB7172:EE_
X-MS-Office365-Filtering-Correlation-Id: c0387b9b-ccf5-4a86-e52b-08dd77599c26
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|376014|36860700013|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?TzJmc2lEUWtucGJ2cEMyY2kxaGt2UndTQ3dBOXRuZ3F6KzVGdTFtOTdGbXpD?=
 =?utf-8?B?LzFEUzFqQllrUjNtTmo0ZDIxV0FZUGU1b2Z0U2I3M3Y4ODBSc1ZNTVl3aCtm?=
 =?utf-8?B?MUp1d1NwOVY1WVVzVURjeXgyR3dXVEpUcFB0UFN5Wll2N0NheG85akI1eGNo?=
 =?utf-8?B?b2dnUHVYTmJjRWE5dzN1R055VlRzWUtDRWJ5Y3J1eG95eTJhR2dEZVlmSWx1?=
 =?utf-8?B?ckgxa2M3Ymp4NTdXVkYyZGFVKzJUYzU2TEFaTDJ6Z1pqSmV4WkRkYXE5S1E3?=
 =?utf-8?B?YWJNSjcrQkhjWGpHd3RzM3hSclZTd01WMUZMU2p4eTlicWUxT2NTbjBkc1Zw?=
 =?utf-8?B?ZyttVHJGRjBwM3BtTDdnbU1MdzMwMmovMkZYVVlEbmFYTlhMTkMySWhvSDd6?=
 =?utf-8?B?NktlWHE2akIyb2UxRDRoUEdpYngvZWxvUGduUnVrT2crWGRIeFhNWjdid0tM?=
 =?utf-8?B?VTFVTjJkVEw0VHFtaGxpSkJEOVZ5bW11dW5DY2V6Zy9kKy9mNEZEbE1wZmhw?=
 =?utf-8?B?VHpUaFJtellYR0tnWkx2MzJpMDJaOHJZa04xTmZZTzNqbEM2cWE4czluYWwr?=
 =?utf-8?B?K29lS3F2akRSYVlPZzFZVVFwUUErSThBSWVJYmk2L0kwUHJRR3ZqdWN6RGxi?=
 =?utf-8?B?YVY3VXdEZ2p5REVGTVEybjV0OE5MQ1ZDL1RmNzJtN2lvc0N3ZGlOZUNKOHRF?=
 =?utf-8?B?ek9PWEZyZWJTR3M5TU1wZjhOSHhsYmhoMDc1T04wRlg1MWJHZUx5dmM0S3Jh?=
 =?utf-8?B?VkhRZnNoUzNJNnFubGtXSllNYUNPN3VVMFJGVzBXTFVmQmlVOVJRbXY2TUQ4?=
 =?utf-8?B?dmNwTjFOYXBOUEN6VlRsbmp6b3A0cXIxZWZOcnh5S2tVUGpCSVB4d29NKytW?=
 =?utf-8?B?d1A2MG5IbjQrNWF2YVJtYmNJRHlsMFAzVHV4NTR1RHVjKzhhaEI2K1o2Kyty?=
 =?utf-8?B?czhvRzh2L1c4bFBTN3I5UVdMbUxyT0FDQzhaZmFXSzBTcUtvL3VWRGI5OTVR?=
 =?utf-8?B?SnBDbXFPTEFoWnc5aHI2Y1dUQUhsMm1OOTBXWGlTaTR0d2xucms0Q1pDempP?=
 =?utf-8?B?L2VOdVZWNStYOUx5MXpxMmJ4OXVjSCtDL0JlK1YyQWt0eHNjNVowdGE4bVR3?=
 =?utf-8?B?ekNCeHljTUJrcU8wV0N4VGNtNnNNd3JoYmRqVUFqd2p4K3hoY1pBMWhQY2JO?=
 =?utf-8?B?QTliVnkwMCtFUjNVdEFOKzhCRFVOd2xhS0ZUTkphb1Vsa3VPM2VueUtlYzVj?=
 =?utf-8?B?R1djTXdNdUVJbDNCSVZJMm5EdUZsOU1FWUlVV29MOWQ1czI0T3VUdHNQMy9l?=
 =?utf-8?B?Uy8xbVd0SGNlWGc0MlhZYy8xNzdLUzU1SWxRUmVieCt1NUg0WjlmTmx3UnI2?=
 =?utf-8?B?YU9CYyttKzdVQmlBUFBhcmhYWWhMdnVlczg5c1dJNm5KalovN05la0xnYitX?=
 =?utf-8?B?M215RHZGOVV3WFJpYXVCdXNIL0o1SmNwRERQZExjS2swdDZyUjNRT1pHSys5?=
 =?utf-8?B?UGM1c2NmcnFuZzgrVTlQQkZvaFFjeWdsaW5vWk5jR1dQN3diZ05FcTQwU0Zx?=
 =?utf-8?B?dTIzUmpiRHVEWDc5cWYyaExLaUs2dTBVOFFUaUwweE84enNkN0pQbW1EWXZS?=
 =?utf-8?B?S2w5bjlkTWk5dFhtWjczRThxblI1THBCVFdhTlJxd2JpY2xPRFN4NGdzYmlm?=
 =?utf-8?B?WTIydEtmTmFZZVlOUlluYUJaZW04YUJTWGVQSE1FWmdQWWV3UjR3T1RIODVi?=
 =?utf-8?B?NDd2MnQ3NjMyWWI5YmZzYWlqTlp2UDk0Q24yYlpSR2JlbFl1UGl1UUlMSk9x?=
 =?utf-8?B?MnIrTC9YdVpUS2FXejNjWTNub0tqUGVvbFM0R1k2L2RzQkxHVi8wZlkrbW1E?=
 =?utf-8?B?SG5RREpscm9nUXQxNkVYcVBlYTU2aHYvc2V0WWZ4MUtJWXRlZThXT3dVZzBk?=
 =?utf-8?B?S2FPLzl3UVhONGViWFhsM2U5eGQva3NoZ3RDaXQ0RitnSWtEeWFRUnhPSDdH?=
 =?utf-8?B?U3k5cjVyZUpBPT0=?=
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)(376014)(36860700013)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Apr 2025 11:28:11.1286
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: c0387b9b-ccf5-4a86-e52b-08dd77599c26
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:
	DS3PEPF000099D9.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR12MB7172

On Wed Apr 9, 2025 at 12:11 PM BST, Alejandro Vallejo wrote:
> On Wed Apr 9, 2025 at 7:48 AM BST, Jan Beulich wrote:
>> On 08.04.2025 18:07, Alejandro Vallejo wrote:
>>> --- a/xen/arch/x86/setup.c
>>> +++ b/xen/arch/x86/setup.c
>>> @@ -978,10 +978,30 @@ static unsigned int __init copy_bios_e820(struct =
e820entry *map, unsigned int li
>>>      return n;
>>>  }
>>> =20
>>> -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)
>>
>> const for both? And perhaps s/domain/dom0/ in the function name?

(missed this one)

Sure to the const pointers. But as the hyperlaunch effort progresses the
point is to turn all this into a more generic domain builders rather
than having dom0-specific stuff. Changing the name like that here to
adjust it in a few patches down the line doesn't seem worth the effort.

>> While this tidies the local variable, what about bd->cmdline? As it stan=
ds this
>> gives the impression that you're freeing a pointer here which may still =
be used
>> through passing bd elsewhere.
>
> That ought to have been bd->cmdline indeed.
>

Actually, it can't be. It's a "const char *", so XFREE() chokes on it.
I'll turn it into

    XFREE(cmdline);
    bd->cmdline =3D NULL;

instead.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Wed Apr 09 13:00:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 13:00:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.943957.1342542 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2V1z-00080s-L9; Wed, 09 Apr 2025 12:59:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 943957.1342542; Wed, 09 Apr 2025 12:59: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 1u2V1z-00080l-HR; Wed, 09 Apr 2025 12:59:51 +0000
Received: by outflank-mailman (input) for mailman id 943957;
 Wed, 09 Apr 2025 12:59: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=5vFf=W3=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u2V1y-00080f-PO
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 12:59:50 +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 83bf811e-1542-11f0-9ffb-bf95429c2676;
 Wed, 09 Apr 2025 14:59:47 +0200 (CEST)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-39ac9aea656so5675597f8f.3
 for <xen-devel@lists.xenproject.org>; Wed, 09 Apr 2025 05:59:47 -0700 (PDT)
Received: from [10.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-43f2338d6ebsm16387265e9.2.2025.04.09.05.59.46
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 09 Apr 2025 05:59: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: 83bf811e-1542-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744203587; x=1744808387; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=6t/2Nq+ydaUI82ZJ+n6IUwFM49DRh+4TKkeUHQXyDME=;
        b=S8g5QNUWjTCcGT8/Qks1BFtreNaCP/qQpt6wSClK5LcGatIZnO0e8LBm/bAsjgYy07
         11Kl6CDH4dSAN0qJA/KeprfXh7FyKnhivA7/pI/LM3jigtZra7Ib7ylFSU94hUeOK5yr
         oCi8WFxeXPz8FTd+OaqDvmUplnSwQP51sH+CBBw1wBaqJGHISdAmpqWjxGUIdbk9g/GO
         U5MSHA5HyvqnwbNzPV81pAlqvZbfC53NbKFoxSg3nNgF4DyiMD7k5dKX8VCI2oNIRbas
         bGX994h9QdP629hI3aCCM7xU4W4+rELsWR42L9PxZSiTGVOlR4XlpmsidDwh1T6mOuQb
         4q3A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744203587; x=1744808387;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=6t/2Nq+ydaUI82ZJ+n6IUwFM49DRh+4TKkeUHQXyDME=;
        b=HkdKChVmF/25B0p2/e3r4xZt3c36NQwTlVxc5i7nJIG8nwjvvmycAzkAf3iqSEqYhp
         ERY10EXHTLerhhD+El14jv7s62zqk8iYOoh70grKnrBfJf6bXgafu06UbCG3Qg77DTQe
         /U3nEfKlO5XuKA1PkyjYW3gv80qGf36g/GLM57mPtfccAZYvTbyWdCkFqCzTjmKVKQsT
         FVl6TT4I8lfPH1/HIA0itN9ikX1lSymnnXZS3nlicPx0IUJoP/Oojq3SHowDH0gjMN/r
         2HGYPbFyjy4yBfXkYmKZy2wk26p4d5T9cBVVvcyWE6W5iKCwO/ui+WG4rftqFlCjcN7h
         zY1A==
X-Forwarded-Encrypted: i=1; AJvYcCUr/e4XUAUrahXk8V160NkgMqD6O5/TB+6gGPSpF1bEgpiYAX+dGBXf7WVcieKmUUACyHEtc9yR78I=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy1YeqMY2W1lyOGgUi+WkVBwwwaQ5TZQy1jifFWZFCZyHreHI4k
	LUHwPK9LMRTjupvatSnkB+ddgq021FGVbAkEpaGP6eVRO45v4T/ejElpIE9lnA==
X-Gm-Gg: ASbGncseu9q88Qa8hIzta+xqLZrc0fzD8rbEUuLwYBaOPWkJm3MRFSl34Ai99CylbK1
	di3QonUl+12O3SKX1ih38NYDl8B/CxLtTLwbJtcYQK0jwY7Y6wJfIkjImtMtfAaZgSpXORJfIso
	qHoyTa1OW1UxQQ7YPb3W7e8sW4nNHC7CAUFou/A+AKrESKYQEsXjym+NxuoebSwbvYbYaYruJBr
	TceNujJiXPKtiIoQDh4bBSWMIoGfIG6Rp7TZODmAoiZTr1OUrplqkqfHN7tUIzkVj6rc9axD1vk
	7UIY43xovVWu0tSKvYClASgQYETHSQrTMJecyfsWl/5XKwoaNAzc454p9S9WIlltwnYVGk+YeZX
	er5yKToOYde9CSeQLLq8w41Ijig==
X-Google-Smtp-Source: AGHT+IHb2LOBQwP2oPnA9pHBf40M/Cp6GktTUQzd71g8pUnOWZ49tDRxZxNLt7JFPfXICxyI1GqxCw==
X-Received: by 2002:a05:6000:250d:b0:39c:cc7:3db6 with SMTP id ffacd0b85a97d-39d87aa7edfmr2506677f8f.19.1744203586570;
        Wed, 09 Apr 2025 05:59:46 -0700 (PDT)
Message-ID: <2df78a5d-2f9f-4866-81cc-03ae09c76d50@suse.com>
Date: Wed, 9 Apr 2025 14:59:45 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] x86/hvm: fix write emulation of RO ranges
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: Marek Marczykowski <marmarek@invisiblethingslab.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20250408093156.83277-1-roger.pau@citrix.com>
 <20250408093156.83277-3-roger.pau@citrix.com>
 <16c73cae-2ac0-4811-97d3-b25c95ed5abc@suse.com>
 <Z_Y4xFzaltr_XKO4@macbook.lan>
 <ef0b6eea-a7e5-406d-a8ba-062b3c6e17e1@suse.com>
 <Z_ZOWAttoFNoFYCV@macbook.lan>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <Z_ZOWAttoFNoFYCV@macbook.lan>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 09.04.2025 12:39, Roger Pau Monné wrote:
> On Wed, Apr 09, 2025 at 12:00:16PM +0200, Jan Beulich wrote:
>> On 09.04.2025 11:07, Roger Pau Monné wrote:
>>> On Tue, Apr 08, 2025 at 03:57:17PM +0200, Jan Beulich wrote:
>>>> On 08.04.2025 11:31, Roger Pau Monne wrote:
>>>>> When running on AMD hardware in HVM mode the guest linear address (GLA)
>>>>> will not be provided to hvm_emulate_one_mmio(), and instead is
>>>>> unconditionally set of ~0.  As a consequence mmio_ro_emulated_write() will
>>>>> always report an error, as the fault GLA generated by the emulation of the
>>>>> access won't be ~0.
>>>>
>>>> Which means subpage_mmio_write_accept() is flawed, too, on AMD (or more
>>>> generally whenever .gla_valid isn't set).
>>>
>>> Oh, yes, good catch.  I didn't notice that one.  We should move all
>>> those checks to use a paddr rather than a gla.
>>
>> Really that function could just be passed the offset into the page.
>>
>>>>> Fix this by only checking for the fault GLA in mmio_ro_emulated_write()
>>>>> when the guest is PV.
>>>>
>>>> This narrows checking too much, imo. For VT-x we could continue to do so,
>>>> provided we pass e.g. npfec down into hvm_emulate_one_mmio(), i.e. make
>>>> the gla_valid flag visible there.
>>>
>>> I don't think we should rely on the gla at all in
>>> mmio_ro_emulated_write(), and instead just use the physical address.
>>
>> But you can't validate a physical address against a CR2 value. And I view
>> this validation as meaningful, to guard (best effort, but still) against
>> e.g. insn re-writing under our feet.
> 
> But we have the mfn in mmio_ro_ctxt, and could possibly use that to
> validate?  I could expand the context to include the offset also, so
> that we could fully validate it.

How would you use the MFN to validate against the VA in CR2?

Jan


From xen-devel-bounces@lists.xenproject.org Wed Apr 09 13:05:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 13:05:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.943969.1342552 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2V7B-0002MI-6x; Wed, 09 Apr 2025 13:05:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 943969.1342552; Wed, 09 Apr 2025 13:05: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 1u2V7B-0002MB-3p; Wed, 09 Apr 2025 13:05:13 +0000
Received: by outflank-mailman (input) for mailman id 943969;
 Wed, 09 Apr 2025 13:05: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=fbf/=W3=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u2V79-0002M3-Ow
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 13:05:11 +0000
Received: from mail-wm1-x336.google.com (mail-wm1-x336.google.com
 [2a00:1450:4864:20::336])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 443160c6-1543-11f0-9eab-5ba50f476ded;
 Wed, 09 Apr 2025 15:05:10 +0200 (CEST)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-43cfebc343dso45002965e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 09 Apr 2025 06:05:10 -0700 (PDT)
Received: from localhost.localdomain (host-92-26-98-202.as13285.net.
 [92.26.98.202]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43f20626c19sm20023245e9.15.2025.04.09.06.05.08
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 09 Apr 2025 06:05: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: 443160c6-1543-11f0-9eab-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744203909; x=1744808709; 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=wA19nJTTFlLi2S5i3hNhxXNAIAEva6dxvHNqQxRQqxM=;
        b=hzN9tgJ2Kkz+wwpsptk/NlUFrwhMOcCJG1pmBoXaLIhi5exqKyNpFQoJxt+mITqXcg
         XpqmmPo+YWDO5/4vse+cDoSg0YjGEaAvMy/e9c33D/7hZj+auWyJlXdqVOiP+iQJQAY1
         zKFcIq81+1rU5mbp8d2lrzFvoZG3rxzuRghMQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744203909; x=1744808709;
        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=wA19nJTTFlLi2S5i3hNhxXNAIAEva6dxvHNqQxRQqxM=;
        b=ThC7cVroGdfcAdNca8z9S5FHV1GPjDTpch/cUZYUVDymeoUXlvbvhYyPiICITY58VL
         wk2pkBeGNEs+5Y84VtoIyKZ4o64EVOI96vigFQ+WoHtONrnoJBz0kF7Nb8Z52G8Fer5e
         Fr/gtxDvM+GX1ZHdw2qlQBuPiReS79/cKVghbwRJMB+ZF6pI1nHY8OLrxh7IMVlZfr8L
         PtIS0s8+rV6GvKWl7gVUnPl9rFGMMfTnYQacb4sw+LQdCfhW0LbdkQI2m7Ow2yh4dgXg
         Uo6CVRDIVvRnmPwDKpVN4TtFL5WuW8YsglcGkBBDP2w8HL5Ps/vLYwnvTWn8LUxJiwSq
         aiig==
X-Gm-Message-State: AOJu0YzrE4ijhpQafpvvo3zEx84/TJbHy7MYEA088r7mkecCiBOZEXLV
	1q3qY3pabPYognlDQb60HwvV23aRWNR0oOWmB84Pla2RkdhMmljtZ9wfii6uVR8bXYODJf9z+X7
	sP64=
X-Gm-Gg: ASbGncvqnl4TEy1wfJD5jRS3H0wtwogq5osPvwx0KpyWI6Gda73mHdACXVcozzPDXzt
	QBz4GzTmxapv0L4oZHJ11i+mKHiNCuQbqHG2EQ59kxxJ0u2nh7sEKNpA/rFtafEEfKudnrnmdjv
	Et2pKrUSc8TlFr6YOmFzW0GkiF5+F7+qS3/fqNYp8fx4IZkksGa1U/MxroO9J5pzFEqlahr+gUK
	5+XdMrKHbhB65BpAKpZC2D8/Ur4ObVw61GDAY6JgjpleR37/4+Byoq4PZhKMIVo0VFxlwDsah6n
	IX5TZES2vO/wg3qIxNkrOSrk3TQoAY5lYgrvwf5OelzjYiZtwmFvTNwCin3TS2zJv8j+ywR2Gn4
	wz3bALggTsW2wbA==
X-Google-Smtp-Source: AGHT+IHbin4zC3V9XaEOrFCp7aQ8gNdG+iIzLugTZiDUx08Rv9idObhZ1zUuQYRxWhzz3cLcmZIkmw==
X-Received: by 2002:a05:600c:1d86:b0:43d:7588:66a5 with SMTP id 5b1f17b1804b1-43f1ed671d7mr29515485e9.31.1744203909039;
        Wed, 09 Apr 2025 06:05:09 -0700 (PDT)
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?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH] CI: Update x86 tests from Linux 6.1.19 to 6.6.56
Date: Wed,  9 Apr 2025 14:05:05 +0100
Message-Id: <20250409130505.2011604-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Linux 6.6.56 was already added to test-artifacts for the argo testing, and
this removes one moving part while cleaning things up.

Drop the associated export job, and dockerfile.

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: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>

https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/1760198654
---
 automation/gitlab-ci/build.yaml               | 13 ------
 automation/gitlab-ci/test.yaml                |  4 +-
 .../tests-artifacts/kernel/6.1.19.dockerfile  | 41 -------------------
 3 files changed, 3 insertions(+), 55 deletions(-)
 delete mode 100644 automation/tests-artifacts/kernel/6.1.19.dockerfile

diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
index 169bebe3c775..ab758243c1ec 100644
--- a/automation/gitlab-ci/build.yaml
+++ b/automation/gitlab-ci/build.yaml
@@ -308,19 +308,6 @@ qemu-system-aarch64-6.0.0-arm32-export:
   tags:
     - arm64
 
-# x86_64 test artifacts
-
-kernel-6.1.19-export:
-  extends: .test-jobs-artifact-common
-  image: registry.gitlab.com/xen-project/xen/tests-artifacts/kernel:6.1.19
-  script:
-    - mkdir binaries && cp /bzImage binaries/bzImage
-  artifacts:
-    paths:
-      - binaries/bzImage
-  tags:
-    - x86_64
-
 # Jobs below this line
 
 # Build jobs needed for tests
diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
index d05b9a98afa6..58620b32da5d 100644
--- a/automation/gitlab-ci/test.yaml
+++ b/automation/gitlab-ci/test.yaml
@@ -16,7 +16,9 @@
   - qemu-system-aarch64-6.0.0-arm32-export
 
 .x86-64-test-needs: &x86-64-test-needs
-  - kernel-6.1.19-export
+  - project: xen-project/hardware/test-artifacts
+    job: x86_64-kernel-linux-6.6.56
+    ref: master
   - project: xen-project/hardware/test-artifacts
     job: x86_64-rootfs-alpine-3.18
     ref: master
diff --git a/automation/tests-artifacts/kernel/6.1.19.dockerfile b/automation/tests-artifacts/kernel/6.1.19.dockerfile
deleted file mode 100644
index 073eaa0e11fa..000000000000
--- a/automation/tests-artifacts/kernel/6.1.19.dockerfile
+++ /dev/null
@@ -1,41 +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 LINUX_VERSION=6.1.19
-ENV USER root
-
-RUN mkdir /build
-WORKDIR /build
-
-# build depends
-RUN apt-get update && \
-    apt-get --quiet --yes install \
-        build-essential \
-        bc \
-        curl \
-        flex \
-        bison \
-        libelf-dev \
-        && \
-    apt-get autoremove -y && \
-    apt-get clean && \
-    rm -rf /var/lib/apt/lists* /tmp/* /var/tmp/*
-
-# Build the kernel
-RUN curl -fsSLO https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-"$LINUX_VERSION".tar.xz && \
-    tar xvJf linux-"$LINUX_VERSION".tar.xz && \
-    cd linux-"$LINUX_VERSION" && \
-    make defconfig && \
-    make xen.config && \
-    scripts/config --enable BRIDGE && \
-    scripts/config --enable IGC && \
-    scripts/config --enable TUN && \
-    cp .config .config.orig && \
-    cat .config.orig | grep XEN | grep =m |sed 's/=m/=y/g' >> .config && \
-    make -j$(nproc) bzImage && \
-    cp arch/x86/boot/bzImage / && \
-    cd /build && \
-    rm -rf linux-"$LINUX_VERSION"*

base-commit: 59bb316ea89e7f9461690fe00547d7d2af96321d
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Wed Apr 09 13:15:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 13:15:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.943978.1342561 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2VGp-0005Dw-1d; Wed, 09 Apr 2025 13:15:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 943978.1342561; Wed, 09 Apr 2025 13:15:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2VGo-0005Dp-Uy; Wed, 09 Apr 2025 13:15:10 +0000
Received: by outflank-mailman (input) for mailman id 943978;
 Wed, 09 Apr 2025 13:15: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=5vFf=W3=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u2VGn-0005Dj-PS
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 13:15:09 +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 a7db4c70-1544-11f0-9ffb-bf95429c2676;
 Wed, 09 Apr 2025 15:15:06 +0200 (CEST)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-43ede096d73so31356605e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 09 Apr 2025 06:15:06 -0700 (PDT)
Received: from [10.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-43f2075fc83sm19961815e9.26.2025.04.09.06.15.05
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 09 Apr 2025 06:15: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: a7db4c70-1544-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744204506; x=1744809306; 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=359++Fx7n3tcb9o1gRWcBstwZPRV3RIAe6brpygAlrc=;
        b=RUiJvATi2O8bKaTYSzIXHG6tY24EXkHOdI727Be0b7Zf2T7qwpzU7sq8WLAFAuh/En
         RTqV+/sx2IKs8qN5VupGXp3LrvUzVilw30D5Crb1gJ6uUSFNDStNYNcmTDj6elZxpxnK
         L7q00PiczbUEIO3wjEgBI8yNPLIslMwJ+BaMLr4Aoe1copIcBAlcFmiTDYs8ya4/JLIJ
         blbsBRCq7z86nBsJSXWfYtpB6JNvzaquY+5dX3//xgruZ6lWHfmjHhhTWvPf9r5qpuS6
         ppkIo9Skr961Q8dtTOdH10T0n+vss8cwiQ+niD4RPZezS9+ZVNj/xri8w6dO1HmzoDwI
         bUKA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744204506; x=1744809306;
        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=359++Fx7n3tcb9o1gRWcBstwZPRV3RIAe6brpygAlrc=;
        b=isAF4JWqEUbuuIIUiGHPuF0gQqXEDrqIKVPhk1IOju4QN2dhLRaloKPCEA6HF8rk/n
         FR3NMrwnOtA7CuFv94xE5w0V+c9mxv+hbDt+LumG1nD944rk12Q5ZWt0tGtVnzgCdxKG
         tIqZLInUrWq6fPc/3Ll3WTQO1QesjsrFhdt3zdJQ8CT4w6SYm1i/FVxKbs4uRtLfHsmV
         VgqcO37BAft4sO9DYeffQsq+BcOFsD2jv5mPiUqDZedC02SsT/YK6uqDnX6MlzuIyp9D
         LJ4V82dkyYBdUoslp0sNWZog3prVjXiBbp0tbpbqpJ2HEBAcQoPMo0eA9IyWk6SD3WK7
         DFSA==
X-Gm-Message-State: AOJu0YyBkcZB2wsWXilBcDJvDub8aDvlsd0sd8tMPGlXwMxc6JODJWiY
	57Pt9iOh93VIl9OmciyLKIgldr1FrP8fVyWWm4oOwQl83vj612uE6Pr5E7kM60KjpgSK06cgq3E
	=
X-Gm-Gg: ASbGncsqQLULobbizCjZoOqmsykkr9Ny1dfsGKFQcs2JrAcVFQChN3RHcayjCBDyNg3
	pfGb864LhdF5zJnDZ6iNIqCXWdlk0RVzN2Va4Q6+mlt8RoExXShGxpsbbWFwqIpMBh/kn+qhzVV
	KixYCZhIgbKylsaeBEjY0v5B54SuQC80RemyIyJaNWCRujyJAUsruvsWE2Vz4KXt7FL4zMV8vwJ
	je4f8cesI4WYbMVvEk1OGfy56w6c0Vsz4otGWvbTPlLgaERqYBWRK77o/AthIpTBSSaKJAsRmeS
	Y9xHNOV0aqSsjDS/f9mEvZVuXBYkv/M+Ho3N55YbVP7O7MdXC0v3ztYutRa2TZyh3oyKYDj0a0m
	7v7W32dTaid188n3Dy1Ub1mtpuw==
X-Google-Smtp-Source: AGHT+IElOFxLA2a3fXBesCjNIJVZK6RCABoTRCshg1ERAF2uS43drs+Vg09VwZER4aZ93qVAXIJrYg==
X-Received: by 2002:a05:600c:c0a:b0:43d:585f:ebf5 with SMTP id 5b1f17b1804b1-43f1ec7d133mr27469635e9.1.1744204506184;
        Wed, 09 Apr 2025 06:15:06 -0700 (PDT)
Message-ID: <41aa7f80-7d27-4b37-83a6-239e2380168f@suse.com>
Date: Wed, 9 Apr 2025 15:15:04 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH] include: sort $(wildcard ...) results
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+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 order of items is stored in .*.chk.cmd, and hence variations between
how items are ordered would result in re-invocation of the checking rule
during "make install-xen" despite that already having successfully run
earlier on. The difference can become noticable when building (as non-
root) and installing (as root) use different GNU make versions: In 3.82
the sorting was deliberately undone, just for it to be restored in 4.3.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
While this was an issue already before, it became noticable with the
toolchain baseline bump: The custom-built compilers I use, run directly
from their build areas, wouldn't find the C++ header files when run as
root. Hence the C++ checking rule would fail during "make install-xen",
when needlessly re-run there.

--- a/xen/include/Makefile
+++ b/xen/include/Makefile
@@ -41,8 +41,8 @@ cppflags-$(CONFIG_X86)    += -m32
 
 endif
 
-public-$(CONFIG_X86) := $(wildcard $(srcdir)/public/arch-x86/*.h $(srcdir)/public/arch-x86/*/*.h)
-public-$(CONFIG_ARM) := $(wildcard $(srcdir)/public/arch-arm/*.h $(srcdir)/public/arch-arm/*/*.h)
+public-$(CONFIG_X86) := $(sort $(wildcard $(srcdir)/public/arch-x86/*.h $(srcdir)/public/arch-x86/*/*.h))
+public-$(CONFIG_ARM) := $(sort $(wildcard $(srcdir)/public/arch-arm/*.h $(srcdir)/public/arch-arm/*/*.h))
 
 .PHONY: all
 all: $(addprefix $(obj)/,$(headers-y) $(headers-n))
@@ -130,7 +130,7 @@ all: $(obj)/headers.chk $(obj)/headers99
 
 public-hdrs-path := $(srcdir)/public
 
-public-list-headers = $(wildcard $1/*.h $1/*/*.h)
+public-list-headers = $(sort $(wildcard $1/*.h $1/*/*.h))
 public-filter-headers = $(filter-out $(addprefix $(public-hdrs-path)/, $($1-filter)), $($1))
 
 public-headers := $(call public-list-headers, $(public-hdrs-path)) $(public-y)


From xen-devel-bounces@lists.xenproject.org Wed Apr 09 13:17:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 13:17:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.943990.1342572 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2VJF-0005lW-Dv; Wed, 09 Apr 2025 13:17:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 943990.1342572; Wed, 09 Apr 2025 13: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 1u2VJF-0005lP-As; Wed, 09 Apr 2025 13:17:41 +0000
Received: by outflank-mailman (input) for mailman id 943990;
 Wed, 09 Apr 2025 13:17: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=5vFf=W3=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u2VJE-0005lC-27
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 13:17:40 +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 028995cc-1545-11f0-9eab-5ba50f476ded;
 Wed, 09 Apr 2025 15:17:39 +0200 (CEST)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-43cef035a3bso45952215e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 09 Apr 2025 06:17:39 -0700 (PDT)
Received: from [10.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-39d893f0b14sm1634041f8f.65.2025.04.09.06.17.37
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 09 Apr 2025 06:17:38 -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: 028995cc-1545-11f0-9eab-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744204658; x=1744809458; 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=+WBgpIGZijaunSknpbdMvhEhWqabmIbHp9KZM49gqIg=;
        b=Xngs/F50saxzORVCUSwVGFyfYEh7N5WIKtvfyw9CT9c/F5aVFWGxGAvneslNiYjWKg
         boXlf6ghV9TNSV7geseyOHiw9eyUd3c39uveFLM+p+S1Ii8dMNqOayLSREce59VLalDm
         XQpmf9SYmgYAvpidG5XJtGNrosZTnWfJBp5FapN9DCe9pFLDaixFQ4Fi7GyLL1bIIaiW
         TMDYjzU6Mzy/mjXEI+i2T3c9zobynkZM3zYNcFdRgOnx5d3KeYjylQQo5PBhhb9Y/yF/
         nOuCdaHtM3p5L/TkWrjsRmuI4m0HlrswVbJcXcCmnTtk98St9i0pwuHMT+pqDtqJyMq7
         FyIQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744204658; x=1744809458;
        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=+WBgpIGZijaunSknpbdMvhEhWqabmIbHp9KZM49gqIg=;
        b=QZWb0xmq3p1eKt45pzF1H4HVfS9qmDo/PacTa1jp7yXoiOfKanxUrL+E5ydUbpZlds
         OLxPpBi2zCZD8RgAsGJQZ3ITAsusqiBzrHEQzQWQmV62pWHVm7EfpakFaahvy5a23o3Z
         5vGWa7JbdvB4zbkhYulkbLnqrtLHCHoSPmXlsJ7iYU/+lXMq8nJlHSl9iguuEh+kofYz
         q5N7rK8TstbFbxHDyKrLmrS3K3GqbyEYbcr/fhr9Gbp6QEO/wws8bRjikbAuFAx0tTrd
         vQvLoBMD6sGUD8EHldPcdW1jdd4REMX7+byNwO5KSL/tqJrq1Y76AyxrD0lMiYp116mA
         kzFw==
X-Gm-Message-State: AOJu0Yxw+dobowLCUJMAgAXG2kEAb7feEwjKizWS//hol6tCUrqMtb+s
	/05hVa8/vvvPf7Q86YmuW2hLLT0CjiWtL5xdH1l9d6V8cROWyWv5H4BSN6nKMeqPlt+0pYOnzcE
	=
X-Gm-Gg: ASbGncuvCt4MpnZK3gAqkS8RppZP2ZhRdUnDe9So7MzdWamJNiQOn5tkMs0/yJw/VAv
	lVPmkNA9D/xzi76oA6ntooECulZ79DEYkDXktyqbasbiKMO4BVSPxIWogmZymtVsf9f8lN4r7+u
	IlYxlCj31XBTDhwMq1b8EbrrTsag8i8Vvcryzc+hZKWcjH4y/UfZc3o0BWbP5hjYTxtk2tjFQoQ
	qxrl84jAyQFAyixtetpz/Bt+UZUwLHb75GkDdRyOVOORWaY3++YvJ20b90v0atIBMp0ztKXigLd
	KHnvr4bU76nEti80Gs4Lfn9Q4jKazCVH74eMGdj3cGWutp0IKA2akdWtqn+IlVPv2gLh1xnuc6M
	jS6iI+sZ5H9vHBw/exts1N4G3Ew==
X-Google-Smtp-Source: AGHT+IF865JH7by6iBsNz4B6dY3pcY4yWaOQEa+Vq0KEK+MOs2N36CzfXVC3s9zAnY4YoVtTR1qLIA==
X-Received: by 2002:a05:600c:19cf:b0:43c:e2dd:98f3 with SMTP id 5b1f17b1804b1-43f1ff3ba52mr17752025e9.21.1744204658374;
        Wed, 09 Apr 2025 06:17:38 -0700 (PDT)
Message-ID: <055d3235-7ee0-472b-b520-6426b51d3927@suse.com>
Date: Wed, 9 Apr 2025 15:17:37 +0200
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/HVM: improve local variable use in
 hvm_hap_nested_page_fault()
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+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

First gfn can be set just once, rather than (conditionally) twice.

And then gfn can be used in two function calls, rather than re-
calculating the value there.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
I wasn't quite sure about continuing to use an open-coded shift.
PFN_DOWN() could be used, or paddr_to_pfn(). Neither looks to be an
overly good fit to translate a gaddr to a gfn, yet gaddr_to_gfn() can't
be used quite nicely either as long as gfn isn't of type gfn_t.

--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -1794,7 +1794,7 @@ void hvm_inject_event(const struct x86_e
 int hvm_hap_nested_page_fault(paddr_t gpa, unsigned long gla,
                               struct npfec npfec)
 {
-    unsigned long gfn = gpa >> PAGE_SHIFT;
+    unsigned long gfn;
     p2m_type_t p2mt;
     p2m_access_t p2ma;
     mfn_t mfn;
@@ -1841,12 +1841,13 @@ int hvm_hap_nested_page_fault(paddr_t gp
                 hvm_inject_hw_exception(X86_EXC_GP, 0);
             return 1;
         case NESTEDHVM_PAGEFAULT_L0_ERROR:
-            /* gpa is now translated to l1 guest address, update gfn. */
-            gfn = gpa >> PAGE_SHIFT;
+            /* gpa is now translated to l1 guest address. */
             break;
         }
     }
 
+    gfn = gpa >> PAGE_SHIFT;
+
     /*
      * No need to do the P2M lookup for internally handled MMIO, benefiting
      * - 32-bit WinXP (& older Windows) on AMD CPUs for LAPIC accesses,
@@ -1854,7 +1855,7 @@ int hvm_hap_nested_page_fault(paddr_t gp
      */
     if ( !nestedhvm_vcpu_in_guestmode(curr) && hvm_mmio_internal(gpa) )
     {
-        if ( !handle_mmio_with_translation(gla, gpa >> PAGE_SHIFT, npfec) )
+        if ( !handle_mmio_with_translation(gla, gfn, npfec) )
             hvm_inject_hw_exception(X86_EXC_GP, 0);
         rc = 1;
         goto out;
@@ -1982,7 +1983,7 @@ int hvm_hap_nested_page_fault(paddr_t gp
          (npfec.write_access &&
           (p2m_is_discard_write(p2mt) || (p2mt == p2m_ioreq_server))) )
     {
-        if ( !handle_mmio_with_translation(gla, gpa >> PAGE_SHIFT, npfec) )
+        if ( !handle_mmio_with_translation(gla, gfn, npfec) )
             hvm_inject_hw_exception(X86_EXC_GP, 0);
         rc = 1;
         goto out_put_gfn;


From xen-devel-bounces@lists.xenproject.org Wed Apr 09 13:19:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 13:19:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.944005.1342582 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2VLH-0006O6-SF; Wed, 09 Apr 2025 13:19:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 944005.1342582; Wed, 09 Apr 2025 13:19:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2VLH-0006Nz-Pg; Wed, 09 Apr 2025 13:19:47 +0000
Received: by outflank-mailman (input) for mailman id 944005;
 Wed, 09 Apr 2025 13:19: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=fbf/=W3=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u2VLG-0006Nt-Rm
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 13:19: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 47efb017-1545-11f0-9ffb-bf95429c2676;
 Wed, 09 Apr 2025 15:19:35 +0200 (CEST)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-43ce71582e9so47888345e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 09 Apr 2025 06:19:35 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43f2338d7cdsm17012575e9.8.2025.04.09.06.19.34
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 09 Apr 2025 06:19: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: 47efb017-1545-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744204775; x=1744809575; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=r/+sZrj1KdCUadGFwPgUnXTRtaajTn0zeMTwx+awGZ0=;
        b=jzSCWhbuEfkt6M0jepGEVtk957vPmHGlShN56hrFzGrlwLWqzdlDIdWxkUg2QrE31f
         O5I1ngK/RlGAewewrnGqmj8uksdPML8caW9doTB+Si+DLEvN72NbY2WV12Gbr3RGxUny
         i5ZSFmZ8jFtuujeN9vlEwAGXeH6dnNEmz+w7Y=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744204775; x=1744809575;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=r/+sZrj1KdCUadGFwPgUnXTRtaajTn0zeMTwx+awGZ0=;
        b=EFBqGco37tR7iQ5pI0M/izrEE+F3i6zZk/I1Qlug5RwhpnuxhbI8NF87JazqLGhtMy
         ZZ3VMdYyLSXpYny3naLdG390gkePOMRWgzVkZdZw7z9Qx5EO2CUm0SlOoRYOempyhtK4
         aw3q/6NkhBBCPeEUHYKjA053OIX1Ct/Aqd+Clqki6FJO4uId71TXEGtE8/jiS0EcpT4J
         csbS+T5/LjL7xtvtepzpbX05MC2vNfr/wEYVwnMdAd695GwwU6Mix8fEGyn1DAROk+kE
         2pu2azxy/Y73sVyDuA70Ep0JGjLoJ69d01GIkU5XuhVtt3d0ck6e3mhz63UGJ7smhSRn
         pqxw==
X-Forwarded-Encrypted: i=1; AJvYcCU8Rg6bljNKG3bS0CAyKgJ9sevQLf53LUSir8oroVAvfMHveg8/0VuYOqrtIh33vyivBaH+3arJRYU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwcK+ieQqWm8FKg4wjYFDvHm2o6DYR9jsuz7c4ex7VfSXaVdo3J
	AztjEp27M652KlGdG9TO3ZB8Zp9zNhaYDn3RKdBLDHjNe2Xx/EDmbxpXylMcTJc=
X-Gm-Gg: ASbGncs1inW4D15YFeLvMQUts0oYQuyKmBFY5RHUcNyeHetGwpygtf+PbxuyWLyxNz+
	kMsDUM4KJxbuLRzdqh2D5yWHASO67J4/ao3YAg31uhBvRNS1RUyKpRhLXnY71CHq6BHkOQfPI1w
	zG1pOQG/tLhuniMpKNScH30X9lu7GXSCG2PSXp04koVXkwfyBVzWiuKNcYMLZVqc5cBxMycoQfg
	WSiGxFmv2jJ4oWto74BBcBZ70YRofbGH4hrk6Ex1Rx6djDwhp8I36ftCNW39H5QebFpGorEPC1+
	SpbNIoIb7OakC8X98o707uwKc/6izTaptUoQhB4EdXQqASooUDLRThsRAb+lZtM3+y5kcgTRZat
	Murws6w==
X-Google-Smtp-Source: AGHT+IGLv4WAHDTQw1BklSY4O6iYeEMiNhPkhoAaj3jf6QwvMOjyIDHbgvK/Cuxh+nOZ/iAd7+sKRQ==
X-Received: by 2002:a05:600c:34d1:b0:43d:8ea:8d7a with SMTP id 5b1f17b1804b1-43f1ed67220mr25966955e9.28.1744204774882;
        Wed, 09 Apr 2025 06:19:34 -0700 (PDT)
Message-ID: <87fa3abd-8b1d-4a92-ab96-3f35e6e8299f@citrix.com>
Date: Wed, 9 Apr 2025 14:19:33 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] include: sort $(wildcard ...) results
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>, Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <41aa7f80-7d27-4b37-83a6-239e2380168f@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: <41aa7f80-7d27-4b37-83a6-239e2380168f@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 09/04/2025 2:15 pm, Jan Beulich wrote:
> The order of items is stored in .*.chk.cmd, and hence variations between
> how items are ordered would result in re-invocation of the checking rule
> during "make install-xen" despite that already having successfully run
> earlier on. The difference can become noticable when building (as non-
> root) and installing (as root) use different GNU make versions: In 3.82
> the sorting was deliberately undone, just for it to be restored in 4.3.
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Wed Apr 09 13:23:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 13:23:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.944018.1342592 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2VPE-0000tC-Ct; Wed, 09 Apr 2025 13:23:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 944018.1342592; Wed, 09 Apr 2025 13:23: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 1u2VPE-0000t5-9P; Wed, 09 Apr 2025 13:23:52 +0000
Received: by outflank-mailman (input) for mailman id 944018;
 Wed, 09 Apr 2025 13:23: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=fbf/=W3=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u2VPD-0000sz-B3
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 13:23:51 +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 df450fc7-1545-11f0-9ffb-bf95429c2676;
 Wed, 09 Apr 2025 15:23:49 +0200 (CEST)
Received: by mail-wr1-x42c.google.com with SMTP id
 ffacd0b85a97d-39c1ef4ae3aso480781f8f.1
 for <xen-devel@lists.xenproject.org>; Wed, 09 Apr 2025 06:23:49 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43f205ecb8dsm20313125e9.7.2025.04.09.06.23.48
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 09 Apr 2025 06:23: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: df450fc7-1545-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744205029; x=1744809829; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=TgIz7i6YaW8v/6KpiMCsPwlMyXeUJycTLb012FbQC3s=;
        b=I1UwBpNAPY/fGPUgiGp/Mn0SUQwcpMD+qzekTcpqFt4gk99tGCalptcbofjkCHShKL
         OiYfrqRXdpWRPcoyfaeRZypF1qq9oBO4sLnVjrbF7+7wDRiTzZ5/aKOOS+G4GjhVRLOy
         nIZ6NVg5QJZof54sxr0ueP8/Ik0qKgFp6yjwk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744205029; x=1744809829;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=TgIz7i6YaW8v/6KpiMCsPwlMyXeUJycTLb012FbQC3s=;
        b=v5ShqVb8gEsu8axKv2Me/F0YVCMAqrZWHZTpV/FEmEp5l5MjbUK6awgdQjJoslS6P1
         wtyb4clnyJn32Mph/bPzRCBH8OIWmRSWwXFLqTff8y+PQAjs2UESTatSP3nWoRtqv0sM
         jE1czR9dfV8zKaPWFnkfXp4/8vZa+eyT288tqDAkeXFTRmGFZfwCs450uH1h59LYbyqN
         PQJJxEeb+eRAF5pOYgEqoctbAgTpc6K3aNFj4LATr9j2r854A7VpL9ABfvQu913TVgIk
         YwPEq5tge+hML2WKZGKsQxi2ue7hJSrWr0bldvQQVMDGzpjDvNWi7ZouTcqfi4OCSOxS
         4l/g==
X-Forwarded-Encrypted: i=1; AJvYcCWK0goQx4uN0RW60CLjvkkkEIzcpskpfzkFzZXiQ41f+La017egeabb2w8Tuss3u2cFuTZOhfQXcHY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzoWCXyV9pjKQZ5qiDAIMmOwwjAX1S1bDn0n56OYEStB6AxmtiO
	OCHRirUpQjtc44VIpXAI2f4QwaKd6Xfp7wZf0OCmxJAlP6w62bmQA6D0KVbhlQ0=
X-Gm-Gg: ASbGnctnc1qU+zgSZZfO0d7mN0BOSTjbSAaHgCMh8IJepDQWa+e+OWpNhoueqvm9QjF
	KShJCamOdeykMZJICi1J4wWYrY+vLRTGCG6t6EfOs6pVQ9TiuVb+XH62wY0RM2NGvX3i7mPsiLK
	7A1juV7ooAscCu9MDPtxlQFiTGjP+CEYhCkVXZ4ie09Pj13AmLPqxuDfHZ0TDXx9l9Qy4fCss/p
	NL4woiVi7Pd6XoNUeE+uibseTnplvHfAcrolkROj4/jMoGg6t/9KfwDgpmJlI0E1+2JwRDOD+x5
	NYXeWuw0/PUotcV6UuwfaGOV+/NIRYX3rIGTfJ+mtpEn9GkHBHS9QjzBzsi3CQfsTO3bF8i2nL7
	npFi+Ig==
X-Google-Smtp-Source: AGHT+IE9WSdO/rYDJsUF8gHZQQqbRBzDQJJOf0FR2ipveEiMoGUox08JK0go2+GUFDRz1H/oPRNQnw==
X-Received: by 2002:a05:6000:420c:b0:391:386d:5971 with SMTP id ffacd0b85a97d-39d820b4509mr6375215f8f.14.1744205028731;
        Wed, 09 Apr 2025 06:23:48 -0700 (PDT)
Message-ID: <6f15946d-48d4-4809-8795-01584bfbc334@citrix.com>
Date: Wed, 9 Apr 2025 14:23:47 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/HVM: improve local variable use in
 hvm_hap_nested_page_fault()
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: <055d3235-7ee0-472b-b520-6426b51d3927@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: <055d3235-7ee0-472b-b520-6426b51d3927@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 09/04/2025 2:17 pm, Jan Beulich wrote:
> First gfn can be set just once, rather than (conditionally) twice.

This wants a comma after First, or you're implying "the first gfn can
be..." which not the meaning you're trying to convey.  You also don't
really want one before "rather".

> And then gfn can be used in two function calls, rather than re-
> calculating the value there.
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>

> ---
> I wasn't quite sure about continuing to use an open-coded shift.
> PFN_DOWN() could be used, or paddr_to_pfn(). Neither looks to be an
> overly good fit to translate a gaddr to a gfn, yet gaddr_to_gfn() can't
> be used quite nicely either as long as gfn isn't of type gfn_t.

I think it wants to stay like this here.


From xen-devel-bounces@lists.xenproject.org Wed Apr 09 13:29:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 13:29:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.944030.1342602 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2VUG-0001TF-Vx; Wed, 09 Apr 2025 13:29:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 944030.1342602; Wed, 09 Apr 2025 13:29: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 1u2VUG-0001T8-Rn; Wed, 09 Apr 2025 13:29:04 +0000
Received: by outflank-mailman (input) for mailman id 944030;
 Wed, 09 Apr 2025 13:29: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=np/6=W3=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1u2VUF-0001T2-Ao
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 13:29:03 +0000
Received: from fout-b5-smtp.messagingengine.com
 (fout-b5-smtp.messagingengine.com [202.12.124.148])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 98b67a66-1546-11f0-9eab-5ba50f476ded;
 Wed, 09 Apr 2025 15:29:01 +0200 (CEST)
Received: from phl-compute-01.internal (phl-compute-01.phl.internal
 [10.202.2.41])
 by mailfout.stl.internal (Postfix) with ESMTP id 982101140126;
 Wed,  9 Apr 2025 09:28:59 -0400 (EDT)
Received: from phl-mailfrontend-01 ([10.202.2.162])
 by phl-compute-01.internal (MEProxy); Wed, 09 Apr 2025 09:28:59 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed,
 9 Apr 2025 09:28:57 -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: 98b67a66-1546-11f0-9eab-5ba50f476ded
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=fm2; t=1744205339;
	 x=1744291739; bh=nwKHfm9obr9oR8qaXDPa6mbV4VTD//5H0BhCvn+VrxM=; b=
	LeBs8B370E+whnYJZV2NDnoYDeltuD7o34P0Ps07/Tc5u1BAWJV/Uma4QW+eOm0C
	dYtB3oSKXZsTEhGwDo+gADtaMorQDw+sLbJTqOctbcbflHk0AZHIroOCNyu/apVC
	FY3VU5PCiaoKS2qi0emMFBwiKeT27e7Bextk8umM/uSOCkGKgEvzgv1N3rvmMazT
	axh/FjWBkAWUS+MT0AzxajlLwahagjlc5J9iOCq52wmWmCdYxzKtCowJFDx2Y+T9
	bPm9NgJCphjMkdYZMSiX/DUalKmhNPiiA+gmhjpIfpFqqhUiKQAikA+EgmA9zwjc
	znQR4dkrUyfzY+sBTbltNA==
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=fm2; t=
	1744205339; x=1744291739; bh=nwKHfm9obr9oR8qaXDPa6mbV4VTD//5H0Bh
	Cvn+VrxM=; b=Yq89phOqbxAF7NbCXg+scAOP2wKQrm0R8E/3mWGMBnR2JNxEdRC
	MqXI6uGENy3eVllUwi1dppP/QALoAKyyHIKcV8G+5UmctZ7S4eX+yNif5ZUT59e3
	hYtd0R/wGF58QoFwTnmSu0VgAdgJw71Ogf9DT1Xh2mdniim7xtdQBGKoWjcUIfXF
	MTmvLFN/+ap5QTVmM8XwTmRZzfNAAf8HRznV+a3D1EN3x4xZu1LEmjtBTh0hUFbF
	A+kRG4urb6x3k3wOdvJnIBBFVImDRowrYCGWn7s2JUhHAh60/+9Gy6oIarfxgL9h
	ehWTU+l4R9EIer9lvtGoU0cLwpdpVpwIBRA==
X-ME-Sender: <xms:Gnb2Z5Qt8b4XqZbpNkeXuhrz66vgwm38-6upbcKJ3m8Oj-AmzxNsgQ>
    <xme:Gnb2Zyx8CaBmY05CcFQ7WoxYOY-lmEQ4m9kMEFiGdl0_GjiYFkWGJhtF0KNU40FU2
    2KjZp6ihDBfug>
X-ME-Received: <xmr:Gnb2Z-2-iUEIB1N0xCSo_4pwsQDHJqX5phztu0vTPkvDQUsvleKBleaad0jDw9yfDPzlXsYJcaflh2YklFhMZz8MHp1uU1sW4w>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvtdeiuddvucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
    pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
    gvnhhtshculddquddttddmnecujfgurhepfffhvfevuffkfhggtggujgesghdtreertddt
    jeenucfhrhhomhepofgrrhgvkhcuofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuc
    eomhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecu
    ggftrfgrthhtvghrnhepveeujeetgeelleetudeuvefhtefgffejvedtvdfgieevheethe
    elgeeuledvjeevnecuffhomhgrihhnpehgihhtlhgrsgdrtghomhenucevlhhushhtvghr
    ufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhnvh
    hishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhnsggprhgtphhtthhopeeipdhmohgu
    vgepshhmthhpohhuthdprhgtphhtthhopegrnhgurhgvfidrtghoohhpvghrfeestghith
    hrihigrdgtohhmpdhrtghpthhtohepgigvnhdquggvvhgvlheslhhishhtshdrgigvnhhp
    rhhojhgvtghtrdhorhhgpdhrtghpthhtoheprghnthhhohhnhidrphgvrhgrrhgusehvrg
    htvghsrdhtvggthhdprhgtphhtthhopehsshhtrggsvghllhhinhhisehkvghrnhgvlhdr
    ohhrghdprhgtphhtthhopehmihgthhgrlhdrohhriigvlhesrghmugdrtghomhdprhgtph
    htthhopegtrghrughovgestggrrhguohgvrdgtohhm
X-ME-Proxy: <xmx:Gnb2ZxCljnYJin0gQU2bE6eaX2phTa6V2hyzX4FfSbI2bPSl2czA3g>
    <xmx:Gnb2ZyhsDOrJ0whkrgi8twjZv2VIHCjqaflZSc_GNWmbih3y5Y5OMg>
    <xmx:Gnb2Z1qZPLa4pWUz8WqY0ZtaRXPBUyYwryD-Msw60c6Na973-lZpNw>
    <xmx:Gnb2Z9i4KefHzTkefdYmjZyM8R7NCbOXIjFdlytClFnm1q38DCPFHA>
    <xmx:G3b2ZxyOyg8AhVETSwG-ZN0qeyWWSdLcyujXqeSt6_qBARpHWF--ekSr>
Feedback-ID: i1568416f:Fastmail
Date: Wed, 9 Apr 2025 15:28:53 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>,
	Doug Goldstein <cardoe@cardoe.com>
Subject: Re: [PATCH] CI: Update x86 tests from Linux 6.1.19 to 6.6.56
Message-ID: <Z_Z2F4EvxqPB35bh@mail-itl>
References: <20250409130505.2011604-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="8cWod6rD7BGAt/AV"
Content-Disposition: inline
In-Reply-To: <20250409130505.2011604-1-andrew.cooper3@citrix.com>


--8cWod6rD7BGAt/AV
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Wed, 9 Apr 2025 15:28:53 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>,
	Doug Goldstein <cardoe@cardoe.com>
Subject: Re: [PATCH] CI: Update x86 tests from Linux 6.1.19 to 6.6.56

On Wed, Apr 09, 2025 at 02:05:05PM +0100, Andrew Cooper wrote:
> Linux 6.6.56 was already added to test-artifacts for the argo testing, and
> this removes one moving part while cleaning things up.
>=20
> Drop the associated export job, and dockerfile.

My hw12 runner series adds CONFIG_USB_RTL8152, there are also other
series that needs extending kernel config. Is there some better way of
handling such series than sending patches to two repositories? Maybe
test-artifacts.git scripts could pull some parts from xen.git? But the
committing order would still be weird (commit kernel change into
xen.git, rebuild test-artifacts, commit the rest to xen.git)...

> 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: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblethingslab.com>
>=20
> https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/1760198654

This still waits in the queue for adl and kbl. But should be good, given
it worked also with 6.12.

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

--8cWod6rD7BGAt/AV
Content-Type: application/pgp-signature; name=signature.asc

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmf2dhcACgkQ24/THMrX
1yzrpggAipsPgSgOzUYaXBhXrSMYxithk1XLhN68WWivIO8S4n70jiZhQ6qmyQZJ
cV9Nq07BYLXSUs7AR4iHGvLxY0GMPf4QuaR8Kx3b1EGURAyaY/emqHz7IMLTi4oD
JJjjM7P+BZ8JAHnRQWSwBYiGsJ7/vHbbYNQeA0O03BNo6Y1TE4MabYBHazc7th1b
km0honAPxLQLlfMglQXPjFbHt0Y5GWURIAU33O20mn/eQ9z1bWKvfnEY8/zFX+3f
eRyDQEyw/vkfSJtqO2Qp+KKwilGjSH7Ore7dsnBljFGdTP37NLbB/pB2LcJddKyl
+BvDtWkgU7rdnYn9af/HNK9romz0rg==
=11i1
-----END PGP SIGNATURE-----

--8cWod6rD7BGAt/AV--


From xen-devel-bounces@lists.xenproject.org Wed Apr 09 13:29:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 13:29:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.944040.1342612 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2VUj-0001uM-6e; Wed, 09 Apr 2025 13:29:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 944040.1342612; Wed, 09 Apr 2025 13:29: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 1u2VUj-0001uF-2t; Wed, 09 Apr 2025 13:29:33 +0000
Received: by outflank-mailman (input) for mailman id 944040;
 Wed, 09 Apr 2025 13:29: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=scqd=W3=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1u2VUh-0001T2-CH
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 13:29:31 +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 aadb78b5-1546-11f0-9eab-5ba50f476ded;
 Wed, 09 Apr 2025 15:29:30 +0200 (CEST)
Received: from AS2PR03MB10110.eurprd03.prod.outlook.com
 (2603:10a6:20b:57a::22) by DB9PR03MB7468.eurprd03.prod.outlook.com
 (2603:10a6:10:22d::15) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.34; Wed, 9 Apr
 2025 13:29:26 +0000
Received: from AS2PR03MB10110.eurprd03.prod.outlook.com
 ([fe80::52f0:1815:60c9:8873]) by AS2PR03MB10110.eurprd03.prod.outlook.com
 ([fe80::52f0:1815:60c9:8873%4]) with mapi id 15.20.8606.029; Wed, 9 Apr 2025
 13:29: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: aadb78b5-1546-11f0-9eab-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=hW2823s0nB34YwLf9Q7AwYOqe/qqbAaO2bD+8L656+iRy8mJjT3t+nW0p6gPTN7sNXYlQ3p/qhbza/SY18cZJXtVVZ0465AOolExAIYE2KAbmiwkgOBx223iSD1a7Wv3gGYAiQW97LlG1YWX6OsESWVbfhyf9LyoqWvuHic1B/CnHhumisWsv462WRwDCX36MATcZuhmf/T0akJk6xDR4HJHrX5zyQH1bnh1tyBmDvhT7hA1cmryVrcQxpuP1DKC9FTNR9dUDFP2QMzGQSnwF8+y9ROnczncErsI2xImMXfcamBnwOS+AWd72kPUOQt0hndaRKkP1TA9K9GgdMRlLw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=gMepC8pnWD8OQuV+xZsknYQYTt7UOkxyqcg97FY+E/4=;
 b=WuDNJ8H2peP9KU7w8L1zAZnhWqASqktYgQhFjWT+ppd4Nzw+sY7HuvtXzUU6hJQGyO/MgwoWqbZbQgS4A3jBpgU5JB8L7oPyoP1zJaYlD7Fc0C82J/8YeWyzSieEguySPVbrdOe2SluuaEeYB9EvwFk9Ajhc8xxhEe7+E1bjkCxzLGrft65J+V6fQ5QhN+IFiLJaL4D1ctVoDIs71ZyKoXUovmcapLTTaRBbS4nieri7n0sk+XDT0s3NOdHqiJ/7J47uZxHSjYPMZzMG2H+UsouR25SRpDXx28H1EF87jgArSUtJ/DC80UNCySgj45A2nncuWeDST/2UoZXX9Awc7g==
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=gMepC8pnWD8OQuV+xZsknYQYTt7UOkxyqcg97FY+E/4=;
 b=SWefdWjZ5+Y0BQAfZgTxGdmaBF5bKhrp79xL4gub6J7os00Zi+rRbMBD42EOEAz8rc0UJPTlY8CbE+7BTWN8IH7UAH0A35PebIhxt3uMOcRuD9Pv+kGBcVWArx/QMRBaeva0M1YMoWkR2TaNZut4GE60lE8bgk+U7FKcY8KawSs8Mo2ynuSRjF8mV0KDl3RoPJlDJg2lXAw/9ye756Nx3mA/hbOxeljkgH9EKm0ig1mx5UCIkoqDREq2UzLHIXiuoLIKr1azrJd5LbPeFoGDAnpgt+ndKOpkFD16lo+9fBZrhGBUqau8kGgiGNDVGK/mHcPBz/rCHSozYDkJ4AfhBg==
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>, 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 0/4] Add support for R-Car Gen4 PCI host controller
Thread-Topic: [PATCH v3 0/4] Add support for R-Car Gen4 PCI host controller
Thread-Index: AQHbqVNqEBy4/LD6y0SUojR9cX8nyw==
Date: Wed, 9 Apr 2025 13:29:26 +0000
Message-ID: <cover.1744203405.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: AS2PR03MB10110:EE_|DB9PR03MB7468:EE_
x-ms-office365-filtering-correlation-id: 42275c73-c631-44f1-ce50-08dd776a8cb9
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?/wqFGUIqpn/1R/99jbrudrz/qmqyN9OBqR0VJas9Naz/RlpsvT878v0EEy?=
 =?iso-8859-1?Q?t5tFwcuCEe/sjlKHyyEQsQvgx0nj/PFl2AwCo/Sc0x/bX0EOMSXPYiYnjT?=
 =?iso-8859-1?Q?HF73Hx3Hvj1GfCd/5y2srmc5pjto1O67HWy4BdAcc5fGNmnFDSCRQHuL/2?=
 =?iso-8859-1?Q?ml0u13yOA2ZnydGyyq2Al5heLYQKxX7Y0OqR+w4+LPLLoMsauwTMMFHU/I?=
 =?iso-8859-1?Q?UvT7fW5eSk85YL3I1ZdiOjg3cX4sAUczax2aB8WK86EjBu9Cwpy0UXdIqD?=
 =?iso-8859-1?Q?26yIRgdSswINzUMI07bd16OPCVopGpqye73OuLEcDDOO52aS5szEfky0gh?=
 =?iso-8859-1?Q?QfHsefOO2SHjRGUW3uX+mEBuLAlEAAW2h+NrUD32hEFd4a1xIIbNg7NpfK?=
 =?iso-8859-1?Q?8dlCeOw9xu+icgsDW2ibudHyrkDIIJX3AF4Gps6e3+u4/M8k16clAI34rE?=
 =?iso-8859-1?Q?48syv+PMLzbJQ13VgJcd64HptP1MFl3fAuRBgw7nQ2nz9TC2MkY+NtRmL9?=
 =?iso-8859-1?Q?rZ4c1Yzy3UBq9FPAsS/rUFcfBksL0IIaJeVFwEYnNqelC/EUUElilNl6MS?=
 =?iso-8859-1?Q?pYwIhqzzV3ftVVwAsxn4cq64hTU8LZe2gmH9qnAp76SB+kpCGao2yRfMFW?=
 =?iso-8859-1?Q?kmZfrC7qDodE2oxsRdTFkO7rA22RRhnXdXyyTPKvF5tPMASm4HZyRmBpCF?=
 =?iso-8859-1?Q?mDSoHNk2G8XRJ5HMJlQF3Q1RTWschqBiobhGG9fGyWMFpc68u6Yma6BSG1?=
 =?iso-8859-1?Q?vwdV8XygPLXrfQI2W+FeW52m5etOh0lf5hbX6r/I/R2ewkU4Ehw7IoZ6Va?=
 =?iso-8859-1?Q?VISrPxXvSIzNzqKI5RpT2ai2TXsiazoIUKfEwWkEaCpkpbmj8DI/T8S7Mq?=
 =?iso-8859-1?Q?Akr4vqG6SBbI9qvtlQ0DD3+WEZEU9DBXu7nAE0wZx7Zk/VEqIHkiECw/ih?=
 =?iso-8859-1?Q?1YdiPqKs/2ebABkxkybPajDpfNVehtkBXo4VQjzoZKdKKRtpVFMYhRkaKt?=
 =?iso-8859-1?Q?AemUv4XyIH4cQN1JEAAWiH4uTarF+2W1hmmEenhBzNe/dvD+L/JxZZVKSu?=
 =?iso-8859-1?Q?nxDPabQhpdKjwad9OTWPcXe3P/s5C9QxYTlLUpD5JkjoAvQ4HpLG7OVljT?=
 =?iso-8859-1?Q?Hn+hugy4Zmh5A61xT6DwBLsCcC4tOWt0/niZiYH1uH265nn9bxEPCu7V3a?=
 =?iso-8859-1?Q?Qx8rRaqWmnKAs4bn97rKhOQDZ8NHW6vHqprd1DF/5GRv8fs9e1HHoVsTN6?=
 =?iso-8859-1?Q?SBrVTUTYi304WFBtg/eby6NP/dTQlMoZmvkXYrI7rW7rlpit3eI+x33FvH?=
 =?iso-8859-1?Q?wAxsYfW2wSJqA1Arz1U5gwBzeMVq1ST62fqpdFkEHOB2MsG4UKRkULaBff?=
 =?iso-8859-1?Q?ddACZsJK5S8qztK07tFGCYxDYiWu/zZKRlZHPbex3/sMBNW/mZJheVmHer?=
 =?iso-8859-1?Q?GK3gRXym4UQIuARsIWADFRJah7uGGb3NVPvyuajxDyWm2GIey+92dyNHzh?=
 =?iso-8859-1?Q?NoXPh+QN4GdHUo7FFYI27I?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB10110.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(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?gERXLmgrnxsNQSO2kFvKQWPmoGlHqfiTFn9I+G1pm9yhM/T6tu8z2Z3+2S?=
 =?iso-8859-1?Q?dG8qG0LuEShmZpaL6KqViU4Uoa2fsz/OHOAiz4USy9bVr+lYRyhw6mZFJ4?=
 =?iso-8859-1?Q?tef8ainBmAbs2cbHFs5jXnBM8QAOXGCdH7BOh3V+YWWMQjirzhj7RRyCze?=
 =?iso-8859-1?Q?u/uY8PWZJ1AJ661JSSBhPnYumqOtrPOD0BR9pfbmZVKPBIqhHs3WT6t+l1?=
 =?iso-8859-1?Q?/1Hvw9Wq6X6ncH7SThCtnBo7SGOGOnc94VwacqvdHLFcvzdMhkCteYBl6i?=
 =?iso-8859-1?Q?WSWeIpygNVksmHhFkMuAS3Muny052d5WO/88WWHuV6sywXVimYiUd1sluo?=
 =?iso-8859-1?Q?OAg0P/GRW8tgigBB7ZJfjdhxn0xFJbK+R49w7i6b0NxUE22RZJnrQKcI6J?=
 =?iso-8859-1?Q?hionYibzVpZLJA4HnVz1PZy6SMqPdn5nUL0VyDMomejkEmA7zw5RNlntPp?=
 =?iso-8859-1?Q?Z+/PX7gQZ+c+E9GIwR4EOGc0/W2isM16Ua00SyIxKbqRuLpvsCK5+wIGOu?=
 =?iso-8859-1?Q?23sosz0nPbNnBgds5Z1uOftUcwO2lFb/sooCHtr2oe2g2DSLN3ZMjrqerX?=
 =?iso-8859-1?Q?BycBtZhIWj7fZhAi+estJ5qUkqpiiZC0KOrFqHDgcfMhPdc8JiF41k49eo?=
 =?iso-8859-1?Q?KFTDCiecjY0gY2ZlojKY2mcNska6jEMabAN0GkaGOTe1fV0KPIVvFDpO/i?=
 =?iso-8859-1?Q?dx47aeBAnWkAKhhYeEavw8P3Jc5dLcsYH/0V8pJM4tr7Urm24ylvjfYd4b?=
 =?iso-8859-1?Q?AQbio1gPcccQLRTyXhAvy53Y79BlDqDEv8qsXfctoNpGH5WoxFwAnF6iv2?=
 =?iso-8859-1?Q?IgIyf2DG10c42LKNj68NIbgIhbBydy/N1J/ZhGhtNAiAtbV/OerH4viPJ3?=
 =?iso-8859-1?Q?uXTyAixOKnJ4qhFPcQWO6Flf0flTUtYK1vL3V7nR4OilL6Je08QtAKvuHZ?=
 =?iso-8859-1?Q?/7nk3qJ3zX6O8iNU+9t2lGyoAU2iGc3ZJ87Yxg1zIUA64yXSAtKmIUPoOB?=
 =?iso-8859-1?Q?I26VJqruRjV4j2+KocW3dC/s0Vsx6lAoO8zdlgwyoJZ3LdePnZ6cQmjpPv?=
 =?iso-8859-1?Q?pNuC9i9yoyFmM0BCVcM1pbMMe1PyOIpfeGZIRonTCMKfNwG0DXgp4uQVGj?=
 =?iso-8859-1?Q?A+QcT11vQkOVMS/Tz4wDQRClL3+/K7XqBJfMpE561+6Qp3imw2xC+9mZb+?=
 =?iso-8859-1?Q?Y25xmZ/pbY65UaOVfKfIkEXMXjVfIrxx6KpC7RsqwU4TS1t6mGgi/Ykd5N?=
 =?iso-8859-1?Q?r8ocTixvS2CU5WiIcZQ6gN4edB3bjNQ2HZH0vISaBHLAGr4yUXCXY8y7/o?=
 =?iso-8859-1?Q?N+vQlqCp9PnP/Kr86fIloifFQ40CwVPcSD7A/Rcmbfcc7ZV75nvOj/sooc?=
 =?iso-8859-1?Q?XwUCK+RgvRjNjv0QXQLynfPvCoWWdruaB0OBH/AdQNl0MlXtMOdm09CS0h?=
 =?iso-8859-1?Q?qyqRkST5CNeA9dA/uC6q8/bcDN4T78s9qe2EwGpMRQ3wODoARmaLdtNQye?=
 =?iso-8859-1?Q?GlqOf0jVp2M/Rql3wHzFY3a/SGEpdD/VUKzl7/xBckaoecGLkpUVgYZOjx?=
 =?iso-8859-1?Q?gYbG9o8TMtBX5dNWX14DM5fUVrcB6Nm2oYZpbqtrJJBmML4ucopJkreD/r?=
 =?iso-8859-1?Q?nzrC9ByqK6hPC0FQ1RfDGBBiyrpJiLRqd9QIlOSl/K1oK7IWGpZZrFYQ?=
 =?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: AS2PR03MB10110.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 42275c73-c631-44f1-ce50-08dd776a8cb9
X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Apr 2025 13:29:26.7517
 (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: BKpla3nkJrM5Ip25P6xYEqJ1YevcutPaVAq0MoklC5Q81m1zGvcWo+O5l+13d9XblBtst1I+R69GkAqy8hGRKQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR03MB7468

This series adds support for R-Car Gen4 PCI host controller.

To fully support the controller, the following changes were made:
- Generic mechanism to support PCI child buses is added.
- Private data for PCI host bridge and means to access it are added.

The series was tested as a part of the pci-passthrough patches[1] and
build-tested standalone with enabled HAS_PCI and HAS_VPCI.

[1] https://github.com/Deedone/xen/tree/pci_passthrough_wip

v2->v3:
* dropped patches related to ATU programming delay
* improved formatting

v1->v2:
* see individual patches

Oleksandr Andrushchenko (4):
  xen/arm: allow PCI host bridge to have private data
  xen/arm: make pci_host_common_probe return the bridge
  xen/arm: add support for PCI child bus
  xen/arm: add support for R-Car Gen4 PCI host controller

 xen/arch/arm/include/asm/pci.h      |  14 +-
 xen/arch/arm/pci/Makefile           |   2 +
 xen/arch/arm/pci/ecam.c             |  17 +-
 xen/arch/arm/pci/pci-access.c       |  37 ++-
 xen/arch/arm/pci/pci-designware.c   | 403 ++++++++++++++++++++++++++++
 xen/arch/arm/pci/pci-designware.h   | 102 +++++++
 xen/arch/arm/pci/pci-host-common.c  |  92 +++++--
 xen/arch/arm/pci/pci-host-generic.c |   2 +-
 xen/arch/arm/pci/pci-host-rcar4.c   | 103 +++++++
 xen/arch/arm/pci/pci-host-zynqmp.c  |   2 +-
 xen/arch/arm/vpci.c                 |  83 ++++--
 11 files changed, 807 insertions(+), 50 deletions(-)
 create mode 100644 xen/arch/arm/pci/pci-designware.c
 create mode 100644 xen/arch/arm/pci/pci-designware.h
 create mode 100644 xen/arch/arm/pci/pci-host-rcar4.c

--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Wed Apr 09 13:29:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 13:29:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.944041.1342618 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2VUj-0001xg-Iu; Wed, 09 Apr 2025 13:29:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 944041.1342618; Wed, 09 Apr 2025 13:29: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 1u2VUj-0001x9-Ad; Wed, 09 Apr 2025 13:29:33 +0000
Received: by outflank-mailman (input) for mailman id 944041;
 Wed, 09 Apr 2025 13:29: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=scqd=W3=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1u2VUh-0001T2-R9
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 13:29:31 +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 ab31a413-1546-11f0-9eab-5ba50f476ded;
 Wed, 09 Apr 2025 15:29:31 +0200 (CEST)
Received: from AS2PR03MB10110.eurprd03.prod.outlook.com
 (2603:10a6:20b:57a::22) by DB9PR03MB7468.eurprd03.prod.outlook.com
 (2603:10a6:10:22d::15) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.34; Wed, 9 Apr
 2025 13:29:27 +0000
Received: from AS2PR03MB10110.eurprd03.prod.outlook.com
 ([fe80::52f0:1815:60c9:8873]) by AS2PR03MB10110.eurprd03.prod.outlook.com
 ([fe80::52f0:1815:60c9:8873%4]) with mapi id 15.20.8606.029; Wed, 9 Apr 2025
 13:29: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: ab31a413-1546-11f0-9eab-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=kcCj1DB1oObqtTUJiEstRW6edVxF/ROrdj0Szbku5laLFo9OxVXceszt97NPbWaeFwxj60fsf3FA68GbEa/63xwNaUmM9mQwdF6/DS4EVn4Mxt00kNH7gqbeokwb7UedKr1JFPPDNcOHiAKhnQXk95F4ROW6+GdbUFWsg5nV/br3pIzj95iz4BKDusvR/DJ7dVugUv5ozm3NTLexYRnXpnDmYwTKs4gbMPl/zibLj2UiDsCoyet9nn1abrJgrKjGcGU4fVKslXWJNZ9F7HK0EaW4jCmN9vobutBBcrA1ggpPjvraWm+zhsmEU6HbF7nRbUenmTJ//ZPio4EEFY9DJw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=W+i5jbotZlWjB6/+feELzrSWWgwAgHoqmM5jq2AI9Eo=;
 b=gSw/6M4m9MO80YW3lQyYMoYBKf1jhaL9VcIaaun1y4gO2CahGw1mU7AUi04HSrXycTRKgffwSoGNlNWEAqAtiGiMIz3S/+lRuvh0Hj13na+X/19bhM9/0CwjDK3uxvRL/zSscx8Y5X/IDa1ta111lh7R/IsHsjZ41UhxIxhRx4/m+fa5UkRg1vqcmTPAmGXGAxmcsjw0f9S1z9oYmAI0HnxrQkqRPbOwN/MnczPPyHOWVIUYLmJBJqCKbSNYpKzEYPB04B+gXOXZK3jRU7bbhqFLTVc775T26Ef1ZC54jsXSWgKUJptnIiSm21h5/S824TV8kQzYektuAWsHT9W4kQ==
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=W+i5jbotZlWjB6/+feELzrSWWgwAgHoqmM5jq2AI9Eo=;
 b=vLk3fwExC7GDmaTQohUupxkCG816xC2wS5rXYz7aKpgFwjU3XyEhigEl/dERysMdy83siCAL6RInVKpxO6zdaxrAIApC4vGPz6bHICu+7ibUJTsORAA/Vrl6qZ7lLthkScgbZb/7h5x+T6o3iRd4NnZVe7LpwG6bq6GuAsjeaaF06TD1y6TS6fPhsCDUJEdjYymtqTJJC9dRoNpQoGXc8dnRdmTmIq3D6JtNXxYH3ZpdSrC9DuAEZ3vtkDZGZOkXsLA53JkgJYOAadO7B/KYuXA7n83kFMcIv9FzIiGlTjno0m116VHXf0qHtL5G8RCmA+4Ry+wjUOPfoLC7D293fg==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@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>, Mykyta Poturai
	<Mykyta_Poturai@epam.com>
Subject: [PATCH v3 2/4] xen/arm: make pci_host_common_probe return the bridge
Thread-Topic: [PATCH v3 2/4] xen/arm: make pci_host_common_probe return the
 bridge
Thread-Index: AQHbqVNqJOpNy64us0q429PoDyckxg==
Date: Wed, 9 Apr 2025 13:29:27 +0000
Message-ID:
 <0abee55bcc632ba1be356461e22eca2ceb11dadd.1744203405.git.mykyta_poturai@epam.com>
References: <cover.1744203405.git.mykyta_poturai@epam.com>
In-Reply-To: <cover.1744203405.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: AS2PR03MB10110:EE_|DB9PR03MB7468:EE_
x-ms-office365-filtering-correlation-id: b3c3be0a-7090-4b01-bad1-08dd776a8d22
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?gcaYfPFUoYIhZuZZWByt0/CjswGVD8NmkM6zUtahQ8hFQIXvyeNctcDG8/?=
 =?iso-8859-1?Q?2Zt2+jt6UySC5v7WV7qQC9Q/D8QpbN5CJbgnz1f5PEe177b+rENXWf1idv?=
 =?iso-8859-1?Q?BIUeOkQ+D+8RmfUWN3TXPMgvBk3ZHvHDaJTIdUIIe9cien5cftJgBXSz6o?=
 =?iso-8859-1?Q?b4vM1vBWpEJO8gT+q0OfJOIKOlReX686WcWfqDG8z2e6pKxFkzWabuMIC8?=
 =?iso-8859-1?Q?wBmYAOUwN/0+aBIn9zTLRtTph0v5nFOT+T89sZLf4pJ3kLiJ6A9V88AQKE?=
 =?iso-8859-1?Q?mTymo80ZjKuVqP7EVrh7YcreFhD+e0zvjTTv0oLVosDjZEPFjL4zOuqOfU?=
 =?iso-8859-1?Q?uJZMbL1hHoEB4Qs4B9s3w0usCi4mcq5sfn9f3rYG7ckGsSQa2u0LU/Uhb9?=
 =?iso-8859-1?Q?PCUn/OiIsCB7OfDLBvh1HtqG0uxQ+6bffr3qqSo36shEFGDUph/OHRvI2K?=
 =?iso-8859-1?Q?dsLIQt3lhjP0rK67HsYQkf/LCpawRxU4mrMaB4+6Gq61FpBrzJS0MnhB8c?=
 =?iso-8859-1?Q?++1nxAUBk82FLHrySICNIM5jCEsNhFxitAr62mdhL0VJN20P75Fw+bEh1A?=
 =?iso-8859-1?Q?jIFKj3AiF9idiAEoKdrdLmgZoiAXiYWjJdiLgtrg7pMfaaEmdoQp9q5jkv?=
 =?iso-8859-1?Q?GKjlAL0Z9ghelQH0wJIHwsXqdfv1GqKFNZt3QOs9mtoi+X7t8GVRbbU0t2?=
 =?iso-8859-1?Q?QwPcGoOGmn+WkXqWeOzBVp7dB1hxZz69Swt0uLYkY8QCgplCp8/B57sfBK?=
 =?iso-8859-1?Q?z1f4sYHvePQ9MgUNE6qMPWr5Q67s6RKNq85WVo2nT4BJdc1g3lUBRbD4jD?=
 =?iso-8859-1?Q?J+H3LpUDTBlnxA6YOsXzwl3FA/Szv3aEs5IDTtLGymxgyMiJ2nVXzoQeKT?=
 =?iso-8859-1?Q?96H5P9ORnWKZRBoXAbX8fFQaLywwuj+NTWzISJP9bGlDZFU7hN095aQqNy?=
 =?iso-8859-1?Q?YDWROmYb6dESYDBoGqil5+/dqDqvNHhU6+CmacL02an+qybOJDzabYW/YJ?=
 =?iso-8859-1?Q?TNN66n6HKEp8noA25oZhSTuF6ONcJi0GwpXXvBe4Z62sAYzJQMj4gdaor6?=
 =?iso-8859-1?Q?0/XdeC5SpuDmOilyLuh0Av2AJ12qzwxM0OPKyXP57aZpBZmzYDzxq2WS1z?=
 =?iso-8859-1?Q?K9puhwkGOL81+quBXXiYRcRTc1CtgXBDsOBbEBLtqaI2ru9Bi1RcciwSzV?=
 =?iso-8859-1?Q?NFmAdi0h/twcWaIr8KGJ64VBJpcEpUS3CJQ03bJjPlQymKTmqWTPqipXZr?=
 =?iso-8859-1?Q?zGaskis5ilK1kAD8YOTclB8oRF9PkF5quZ5c2qs1MrRFLszJDdvXusJn88?=
 =?iso-8859-1?Q?W7/Bs0fXINPBwm2mxVMt/0NgrD6+AV7QfwfopOpmu6HwcSAhsOBgkMdgpF?=
 =?iso-8859-1?Q?pjcYEcy4Oc3PvrZejGhZQRNOYZorr+Hn3lQP9KsfiKEpekpo9gFP8h7i4C?=
 =?iso-8859-1?Q?HtkD/Jy/+87/3H1/N7cs6IO/CWbjvIEDgZBwWoForwibLqJ4HH0QI7TBju?=
 =?iso-8859-1?Q?FR7GaJHYwS8PAMnWbHSEMZ?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB10110.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(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?lCH+RsoikKdIFEDN+PWR3DMVeWEaFvQ5nc8UANTyqs9pcfCMtBONzGAPlQ?=
 =?iso-8859-1?Q?UpweR9Eby3WPyIulSEDa3POoFuJd6AoD8syrI1wiPFu3i/soKKv/HZBDvh?=
 =?iso-8859-1?Q?ybfrUdUR/q/SXik6olsfBka5d5aL7z7k+giijhSD1ZGXoIbP7f3jyvzcuX?=
 =?iso-8859-1?Q?5KJcLBdCYoSZzUNYjA+iO3cYj6UniMkk9j+bFsl733MW2xSjsYVkw3zrgv?=
 =?iso-8859-1?Q?6Mpfxo9Cn6eu6cjuQuy/CauwcnxMVyrY1IbcI8MNzHUfkHue1t2BO7PM7v?=
 =?iso-8859-1?Q?f/CcLogs1QLX90VxDIcvjptEvRzY2JjpgHxutnqPAU7EtQynKBZcPmV0zi?=
 =?iso-8859-1?Q?vLS8C/vm5PvzJ++Ho8tojPbpqX/H7KF0KcTbms3UQa5fMyiUk/auFloOiR?=
 =?iso-8859-1?Q?a7L2k3Jaca8F4TQTfJfei6b3TtUUPT2U4M3IuX6fRHlaYO+18j9QOtH0vT?=
 =?iso-8859-1?Q?pzjVtj+md/3gXLYivnemvJlNLVQlXnPLowTm7TK0XexN2ah/pdJliy6iId?=
 =?iso-8859-1?Q?fnKSrFQLCM58X6hE3zTXRXxkgu4phmoBGV+qMC9vYJViJxxrIgGqzHI5rm?=
 =?iso-8859-1?Q?cjoOp1PNlMOvvltwVYbvoyNRvUIKUqYplDq/9zpWN5T0vho+zxhJAXhD/B?=
 =?iso-8859-1?Q?pRjFl1VFRz/n+jgE7mwj1bZLCfOXAlfwR7VZxpTgXGfCmF2SgsxiGpVL4A?=
 =?iso-8859-1?Q?DzTILZjwc9B5O/RdCNHwtlXDqWvcud8HaxF5indgUfngzLkFzSG+4rINXt?=
 =?iso-8859-1?Q?18i46hS90ZbzpIrlHzDX13yTums17zSiV/S/+m5WANaXXWW93bPfehGUIK?=
 =?iso-8859-1?Q?LbrdGxsJy3+ajYwrt95b7LIt6mzyV+Tx805/F2FakhBshLaKGpJJ4Z92tY?=
 =?iso-8859-1?Q?AMhX4AWfFYDH4fR9B/SGji3jqBg/c7nkAEg+rD+eW4j6XEFP9Smw9ic+wl?=
 =?iso-8859-1?Q?rAcoBuw7HdmYnkqk2YiNwGkcbJhKE8wxTej9Qt7KFJ7QgDLn5Cuqt21UPq?=
 =?iso-8859-1?Q?OpeMt2/+xVEGEdhRLEmamb0gMrvB/WIv4gJ6oCv/YLzLNxIpWL3/y3H7id?=
 =?iso-8859-1?Q?3VxE2qLOQoFVfIacUE/wl85txCP2DdypeZ+By5Ufgt6oHKE/lXQb512nlb?=
 =?iso-8859-1?Q?d2RW1D6WoSJoVRDSru4h41nLRh3ehMs+aTLUMqXIeG2EbuXjbCTKiFtquD?=
 =?iso-8859-1?Q?r16hR2Cnq3IPkF9P+6MxJNdjLe36O1L0FXsfz4ei7zCoDErrASGleXvqRU?=
 =?iso-8859-1?Q?llwcDz2HPq3jYO1t9WBSjHJq6rmOo2rtMKCUi4FYWkfhrepFFkDb39b/dq?=
 =?iso-8859-1?Q?ZXZFF/xzZO+V8a2zUtBmwu2mece07mTWMyAc6bvRgbvXLcGdQRn0kss2lV?=
 =?iso-8859-1?Q?rFzJeQRN8iZZgUJxZIADD10RigI8GYpA1VtHu4opJJrvGCLji7q8eByIz2?=
 =?iso-8859-1?Q?9bXZsbVLsBHmPKiQ/viLQJuknLnUz+iSJfQi8H/el/6etqb5G1Vxq+5SfI?=
 =?iso-8859-1?Q?pbn8bEWgBBLefiXbWx11XG9W/MIoqPi3Yp+Mc9xT0d66rVPUzEtT3AK5b2?=
 =?iso-8859-1?Q?uKNbkL0ysFhwQbln2HrPcGCvI+Zu/C/u41pD4PxWZqJtkZ0jQEmMLcH9Es?=
 =?iso-8859-1?Q?gFMc5MHCy3qqFjUj+irIw3F7ikNwucuak9p3uvxxfPPaewXibz0cPfmA?=
 =?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: AS2PR03MB10110.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b3c3be0a-7090-4b01-bad1-08dd776a8d22
X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Apr 2025 13:29:27.4291
 (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: dwY1R/HjfImts7EWDrsOYuqYJ0AXW9UUcOkkWZv7xv1mshxUO+Hy7IO+hzD5G80wuHupBtrEzu/i/+HEX7A57w==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR03MB7468

From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

Some of the PCI host bridges require additional processing during the
probe phase. For that they need to access struct bridge of the probed
host, so return pointer to the new bridge from pci_host_common_probe.

Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
---
v2->v3:
* no change

v1->v2:
* no change
---
 xen/arch/arm/include/asm/pci.h      |  5 +++--
 xen/arch/arm/pci/pci-host-common.c  | 10 +++++-----
 xen/arch/arm/pci/pci-host-generic.c |  2 +-
 xen/arch/arm/pci/pci-host-zynqmp.c  |  2 +-
 4 files changed, 10 insertions(+), 9 deletions(-)

diff --git a/xen/arch/arm/include/asm/pci.h b/xen/arch/arm/include/asm/pci.=
h
index a87672d834..3d2ca9b5b0 100644
--- a/xen/arch/arm/include/asm/pci.h
+++ b/xen/arch/arm/include/asm/pci.h
@@ -18,6 +18,7 @@
 #ifdef CONFIG_HAS_PCI
=20
 #include <asm/p2m.h>
+#include <xen/err.h>
=20
 #define pci_to_dev(pcidev) (&(pcidev)->arch.dev)
=20
@@ -95,8 +96,8 @@ struct pci_ecam_ops {
 /* Default ECAM ops */
 extern const struct pci_ecam_ops pci_generic_ecam_ops;
=20
-int pci_host_common_probe(struct dt_device_node *dev,
-                          const struct pci_ecam_ops *ops);
+struct pci_host_bridge *pci_host_common_probe(struct dt_device_node *dev,
+                                              const struct pci_ecam_ops *o=
ps);
 int pci_generic_config_read(struct pci_host_bridge *bridge, pci_sbdf_t sbd=
f,
                             uint32_t reg, uint32_t len, uint32_t *value);
 int pci_generic_config_write(struct pci_host_bridge *bridge, pci_sbdf_t sb=
df,
diff --git a/xen/arch/arm/pci/pci-host-common.c b/xen/arch/arm/pci/pci-host=
-common.c
index c0faf0f436..7ce9675551 100644
--- a/xen/arch/arm/pci/pci-host-common.c
+++ b/xen/arch/arm/pci/pci-host-common.c
@@ -208,8 +208,8 @@ static int pci_bus_find_domain_nr(struct dt_device_node=
 *dev)
     return domain;
 }
=20
-int pci_host_common_probe(struct dt_device_node *dev,
-                          const struct pci_ecam_ops *ops)
+struct pci_host_bridge *pci_host_common_probe(struct dt_device_node *dev,
+                                              const struct pci_ecam_ops *o=
ps)
 {
     struct pci_host_bridge *bridge;
     struct pci_config_window *cfg;
@@ -221,7 +221,7 @@ int pci_host_common_probe(struct dt_device_node *dev,
=20
     bridge =3D pci_alloc_host_bridge();
     if ( !bridge )
-        return -ENOMEM;
+        return ERR_PTR(-ENOMEM);
=20
     /* Parse and map our Configuration Space windows */
     cfg =3D gen_pci_init(dev, ops);
@@ -244,12 +244,12 @@ int pci_host_common_probe(struct dt_device_node *dev,
     bridge->segment =3D domain;
     pci_add_host_bridge(bridge);
=20
-    return 0;
+    return bridge;
=20
 err_exit:
     xfree(bridge);
=20
-    return err;
+    return ERR_PTR(err);
 }
=20
 /*
diff --git a/xen/arch/arm/pci/pci-host-generic.c b/xen/arch/arm/pci/pci-hos=
t-generic.c
index 46de6e43cc..a6ffbda174 100644
--- a/xen/arch/arm/pci/pci-host-generic.c
+++ b/xen/arch/arm/pci/pci-host-generic.c
@@ -29,7 +29,7 @@ static const struct dt_device_match __initconstrel gen_pc=
i_dt_match[] =3D
 static int __init pci_host_generic_probe(struct dt_device_node *dev,
                                          const void *data)
 {
-    return pci_host_common_probe(dev, &pci_generic_ecam_ops);
+    return PTR_RET(pci_host_common_probe(dev, &pci_generic_ecam_ops));
 }
=20
 DT_DEVICE_START(pci_gen, "PCI HOST GENERIC", DEVICE_PCI_HOSTBRIDGE)
diff --git a/xen/arch/arm/pci/pci-host-zynqmp.c b/xen/arch/arm/pci/pci-host=
-zynqmp.c
index 101edb8593..a38f2e019e 100644
--- a/xen/arch/arm/pci/pci-host-zynqmp.c
+++ b/xen/arch/arm/pci/pci-host-zynqmp.c
@@ -47,7 +47,7 @@ static const struct dt_device_match __initconstrel nwl_pc=
ie_dt_match[] =3D
 static int __init pci_host_generic_probe(struct dt_device_node *dev,
                                          const void *data)
 {
-    return pci_host_common_probe(dev, &nwl_pcie_ops);
+    return PTR_RET(pci_host_common_probe(dev, &nwl_pcie_ops));
 }
=20
 DT_DEVICE_START(pci_gen, "PCI HOST ZYNQMP", DEVICE_PCI_HOSTBRIDGE)
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Wed Apr 09 13:29:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 13:29:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.944042.1342627 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2VUk-0002AV-9I; Wed, 09 Apr 2025 13:29:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 944042.1342627; Wed, 09 Apr 2025 13:29: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 1u2VUk-00028C-1x; Wed, 09 Apr 2025 13:29:34 +0000
Received: by outflank-mailman (input) for mailman id 944042;
 Wed, 09 Apr 2025 13:29: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=scqd=W3=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1u2VUi-0001T2-CQ
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 13:29:32 +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 ab780459-1546-11f0-9eab-5ba50f476ded;
 Wed, 09 Apr 2025 15:29:31 +0200 (CEST)
Received: from AS2PR03MB10110.eurprd03.prod.outlook.com
 (2603:10a6:20b:57a::22) by DB9PR03MB7468.eurprd03.prod.outlook.com
 (2603:10a6:10:22d::15) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.34; Wed, 9 Apr
 2025 13:29:27 +0000
Received: from AS2PR03MB10110.eurprd03.prod.outlook.com
 ([fe80::52f0:1815:60c9:8873]) by AS2PR03MB10110.eurprd03.prod.outlook.com
 ([fe80::52f0:1815:60c9:8873%4]) with mapi id 15.20.8606.029; Wed, 9 Apr 2025
 13:29: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: ab780459-1546-11f0-9eab-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=FGQkVyOlanR6clnxaAUDfiTGB1L6eKxWv63LtZThFfr7QCCLPqzeUVQoKRABU8jYqRL0cvEXACJdStgDSemkoOQfrya+oEVBjUD3NrWYopLK78A0doMFHvOjXeMGJB89oYCV18sq5GUO3fow2zSDlAhfiE4DL85ZST9K00Is9dI2YVVej9S27vpx18sxFVdf4/WjxB6MldSCGXtOGDkUvPb6OE9BW5cybaswqK6POt1zGMW0kDF/+ZDhNHJAGljMZVvRnMBrTTfv6G2YoM3wgP7ZUVIeFwUDA/w455saz+IDMSpOYa+jsd05D4STClUcaGQcedt4VQ66z2kqcAYYrQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Mcb3OVAU2iS55vFkQoEajm7xT7k3icYGgVNKzOXMQDE=;
 b=LbNJz/abPNRWP+AAq86qC5oCgxqFouaSOAQvls14nSRHaxxzQWVVeUFNdvcOlJBbVwwuQW1/YoZoN4QkCWSY2QNx+CejsrQKmbNtJPX98rvXOo6dsAwBFcaWbEIgDXymf2q++VeQExp++ocivNUp0zFQ2VH7K8jSCO8LGy2rU+x+/GgbFolcoa6gpHfgf2QtN+HwuUhUjn/p8vGMs8UbLwC28Ih+GPCa201UEhV38w9QBGpLKskdr+ctTRc/kDSM3YA6S+rTQO1Oth56Incnv+9bbuIbVgyw6W76qdE+FqhZqfkuP4Sw70n2rNcJ+4U5BOU1jygssQDUNLZHSR4r1w==
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=Mcb3OVAU2iS55vFkQoEajm7xT7k3icYGgVNKzOXMQDE=;
 b=H3KDZuRtUzuXQDM5X5GyZggat8ertJnxMcn58xrJd96HvCYl81i1ArkH0d2232l8Dxq3jw1uHrUq1RLNuQccSTSbRRpPn3gHNsm6A5la6tF5eiaRDtSKuYxwaDjEQ4QN0Z8pijYcZiwpj0p3HslEgBq7qCldW7KwJYNg3UvnZZXu++u9rp8BhGQsHW0DuHX+bI6vcOLHyLonKHn7qNMsteBmRnk48DfxXzXrlolMaKr2vl7wuE+oHUL/o6MDPPlIdkoGGKGtlDx8ialXjPn5++OoPrulgKQEYWtw18iHcFk8fiip6GvfQIithh8raIHiL2LzSiAjttxK2tEtPObObg==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@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>, Mykyta Poturai
	<Mykyta_Poturai@epam.com>
Subject: [PATCH v3 1/4] xen/arm: allow PCI host bridge to have private data
Thread-Topic: [PATCH v3 1/4] xen/arm: allow PCI host bridge to have private
 data
Thread-Index: AQHbqVNqGG2BsgJGTkebsT5cEBm3YA==
Date: Wed, 9 Apr 2025 13:29:27 +0000
Message-ID:
 <d2e51d90af19a790126e0483f2d1becbfdae2a30.1744203405.git.mykyta_poturai@epam.com>
References: <cover.1744203405.git.mykyta_poturai@epam.com>
In-Reply-To: <cover.1744203405.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: AS2PR03MB10110:EE_|DB9PR03MB7468:EE_
x-ms-office365-filtering-correlation-id: 007adfdf-614c-42bd-02e7-08dd776a8cf3
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?b1FcXIPUkh8P0OH4qeh3oqXwH8Jm2hsaJLVY3voN5P9lxKa+bTTsuovKsT?=
 =?iso-8859-1?Q?QhIW5h89Fcxa2EYYG2I1hxzVjigOcRFkXRPGi5o0cxBS0GGPyMHQRw7GSJ?=
 =?iso-8859-1?Q?x0sQKKHehN97q9ii9QNQuy3mx4VRq9ZPJ40ofZ2pBOe5PDyS/FlcVOjigm?=
 =?iso-8859-1?Q?HD+aBwVlpCp5C/7zJOFLXUXKhMGyydHgW8S/2DmUQPKEzVKRWVAmHf/ZJ+?=
 =?iso-8859-1?Q?jSs8CcWVSwjnjxl0z6tBki/uf7CbKTx3Y9TfqufB4P3u/jibrguTQ6gMDP?=
 =?iso-8859-1?Q?gJkKTB7NiyKI3tpDYHHkuD2VWAQ5eLKTdJe/jEVhJ1rhKD/njq48IaJPTL?=
 =?iso-8859-1?Q?qWIbtk/9D11K39n1B50+lZpCCd2jvV/PBLiQoxI21WarhRjV3aQ4LrtAhC?=
 =?iso-8859-1?Q?/hdb8AiUdFSPYoPVyxzdIJ+YxRdbbpqF5ViJsO1rg2ty4oNTTxsmyZRMCR?=
 =?iso-8859-1?Q?M23cfyloD84zZCaExsyLEVqZJznnrArDvl6xOvP4piJiP0wQyzYWmQGKIT?=
 =?iso-8859-1?Q?1Zqp5A5aBW5qC7j7jk6sfepYKF4McihnueRIGgxsxFt1DFtP6jCGOJzykc?=
 =?iso-8859-1?Q?6onUxmMKgIhSP8FenH1kTEAdVCWVV8/N9ynaVwvEyffrYGh0FgahNM9EdT?=
 =?iso-8859-1?Q?i+mugqPCLF8qR+XIkm6AnWrSaluPwsrfyJe6u4nRTyGx+I2Mou8FH7K+2U?=
 =?iso-8859-1?Q?pFLL/oiX19n9VK2RKoH6lV/ujVOfRM6AB/NGQJG6lH5hSxvccbOvldHUcB?=
 =?iso-8859-1?Q?lXv/umSYx9s9nQV8z1qs2t/EIaE0lBAlgEDN3QllYW5qyFLn8NAV8o4NWp?=
 =?iso-8859-1?Q?OKDSxLhAfFKCRwtuG4W2hzlJnqSpY2sp19BfT2QmgAEX/qllq264wFbc1i?=
 =?iso-8859-1?Q?vg+yVpOdT/cYFXGOdII3s21FDTp7KkpxWea2a2N1pDUmIcF2No7qRiB9TR?=
 =?iso-8859-1?Q?f17/Os/OkAcVcTkAr+mJFqGzWmIJEqL8/j48bNplhC/QvuRxMsyH6z0KD5?=
 =?iso-8859-1?Q?SD61xbT9/Lq8kPkixJ8bfyENddBPofoqgm6HII0jiGLahuzoEgFcF+8V/7?=
 =?iso-8859-1?Q?3Iw6dSEQnkyHwfy4ZhkhpL+7EPVcycg858twqqAgDNWF6mNMOY2ENgyZ3H?=
 =?iso-8859-1?Q?EvZj9Fzun6/xcuIzL4CL3tjSHioBWrlEfzVw/yb0Qu+ssfWpLEfdQUfiWU?=
 =?iso-8859-1?Q?lsPrU0JpIQRepzzyA4Zd0Ewc1pfnkf9MGKJo/U7pYrql7KhM1PTc0FglB1?=
 =?iso-8859-1?Q?q3toVVSmI1OA+Clnvkhp2j1tsiqYFScfjQ7pyIipBWS2YICkr4iH1q95c+?=
 =?iso-8859-1?Q?ge7kC0a9/1zpI1Cfmx0bSbgL6lB2P4ok6M3aCUbZgIq8Llk11J0nfEuTrN?=
 =?iso-8859-1?Q?Qs8pllXzR4AKP76tRUHhuF/BvWYt4ncLXQA4USxMFUeg78whEZa9QGgQhF?=
 =?iso-8859-1?Q?ZQb50YWdLwcsN7rhkNx1INrj/Tcp7t48/LgQCEKY6wk8PHSKzVudft/6z1?=
 =?iso-8859-1?Q?bWL+NtYU4YgH8NGhtlWiod?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB10110.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(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?F8/yty4eDZ6jF0KfAY1JxoSXnedlR2WgaTAh35UUXHRJZ+pjSW86guFGGm?=
 =?iso-8859-1?Q?W5X4Lamp1pIvjfULjjNH15oafDEwBi2HfH5qstkXRgt4NIx+0dr16kXRkJ?=
 =?iso-8859-1?Q?K8eNwqqYgCLNGPLjkXEYrwV2d2nFLjKf3NQ6IYpN7St39jdCQAf2InZ5uU?=
 =?iso-8859-1?Q?7zFGZo9hEfHLrQEv2+ZgCcALameUUfCA5fB+9v3zuQB+HcBX7VDi4btACi?=
 =?iso-8859-1?Q?L+u+Jf9Y3v8pxqd/WQ6MJAAAR3G96QQj6ld6nTtcAivuNmClFy1ig9jfi3?=
 =?iso-8859-1?Q?XJ8Dots8qCkyXZi1MM9VcKp5C0YCkEDOTlxkF7yyI4iTysNOi4Irn1HQm6?=
 =?iso-8859-1?Q?AF8SQVEi3/uNBovtiFIFLoSfSn6/+uhQxfGgFQtuEmfTWRIdAp8JQZ40hk?=
 =?iso-8859-1?Q?I78n8bii0HP57HUxgev8m00KCxJntFXLjmPCUSENcIeDDKBbGnqkYXIZhG?=
 =?iso-8859-1?Q?1aPKU0XFFelPS8WZeq/fKDHjeAdvtMUOSDQNi4oRiSKLovSTlcelU0V5cU?=
 =?iso-8859-1?Q?Fgq3ZgziFgH4UqxE/6IgUl68l0JUT7KlitVxhKQ6agoNyHbILU2HTtnmX9?=
 =?iso-8859-1?Q?hIEc4KdbvasWoWz4AZPRJP4OqH6VQR3A06BwpLJuUwLwUkLeLWosfb70Se?=
 =?iso-8859-1?Q?AHMy1PZbYZgwyxuPk4tcCKofjhbGoHV/nYPCIejaVRXBm5FkjiE4Cerf4P?=
 =?iso-8859-1?Q?TSNINKYjSWPlWTUSI1lmZ3CId+ExuxrS3Rd3ye0y5bTZnpOe7qA0CKpT5+?=
 =?iso-8859-1?Q?nPJzgyjI3cU9o/7V5MAlf0MXYUxgPHHa3WrjPn7se9bL3RZv7PHWNyRLNK?=
 =?iso-8859-1?Q?paMtlSI6eF81F8eGRDjNsSAhHP0L3J5BUStI1rmR1JBdPyTCtvMVHsIuOw?=
 =?iso-8859-1?Q?QFoZ9R9Bc9ITwlDGC44kH2J5Uy7sGly8sHqGCequuDm6lNNXtTs55kkWGG?=
 =?iso-8859-1?Q?LeSkIIMXv0WxEoyfRMDPKC6cxW0VODG8dlN8MGqi+rN9gbl+n3Ls6j3UG/?=
 =?iso-8859-1?Q?4tyouYd+TtYzwkRFC8uyQwfJnwEv6+ijO1dumRO+Ma2Bi9A3r7+dD0PSEB?=
 =?iso-8859-1?Q?utOjNSfRrHzQTpo8kUlTrhACRTHzBz6VwuLX7n/GSt85vUsr8PGtuzxr0r?=
 =?iso-8859-1?Q?vCnx1V7fM2R4+SL1v0SagltqWPCekE5+lyYw0V9jAS/xOVefd8QmwkcwHI?=
 =?iso-8859-1?Q?uDO84aoNczoE/3bTs38hbZ+v2ju51aqyXvedzvcgCFxOo5+L6+jio1XTiv?=
 =?iso-8859-1?Q?qkDu3wN1+x7YfQHQfiwWXYyNdd3yFOV5Ul+4855PL6nm2xtes33ZXsyKdt?=
 =?iso-8859-1?Q?rf8UAjw4PBVF/kd2MI0UwoKyfJjnaA6B3S0D4cIgvvJrbha9ouRGxkvT2/?=
 =?iso-8859-1?Q?t9HMCb1vVueTEp48wsj9ZJJF+JDS/BAjLxQWHqbchYRy8VtDWuWTM2UmhD?=
 =?iso-8859-1?Q?JLcJKZwhe0CtMIRR3OPdXX/yPiTMEuYI4icfBhf1QCfKvK/ZREdFkX6BcA?=
 =?iso-8859-1?Q?wtucyeqIazPQOwHEdwn7g6xG71I03sKjeWBOpnvDwPjkzM0q7IGYEfogMp?=
 =?iso-8859-1?Q?Jdx3nc+x0KA5EMMfo1/vaoYRhuT6DJyelOzQIyoSj5Ov2dBgdCQySQzsOA?=
 =?iso-8859-1?Q?3y+pQMdYUKzSl+Val9YZuQvt03yfcMi/+C7i5AtU8ZHlSHJR0yb6UarA?=
 =?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: AS2PR03MB10110.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 007adfdf-614c-42bd-02e7-08dd776a8cf3
X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Apr 2025 13:29:27.1381
 (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: lsqS7NMccTv9ZXGsBB150mhS2NvJFFGqGzBuzK6wlem09btjhbh2AupZDaKE2uuztfCVuZVb+taQvWNZhSaW+Q==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR03MB7468

From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

Some of the PCI host bridges require private data. Add priv field
to struct pci_host_bridge, so such bridges may populate it with
their private data.

Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
---
v2->v3:
* removed priv allocation from common code

v1->v2:
* no change
---
 xen/arch/arm/include/asm/pci.h | 1 +
 1 file changed, 1 insertion(+)

diff --git a/xen/arch/arm/include/asm/pci.h b/xen/arch/arm/include/asm/pci.=
h
index 7f77226c9b..a87672d834 100644
--- a/xen/arch/arm/include/asm/pci.h
+++ b/xen/arch/arm/include/asm/pci.h
@@ -66,6 +66,7 @@ struct pci_host_bridge {
     uint16_t segment;                /* Segment number */
     struct pci_config_window* cfg;   /* Pointer to the bridge config windo=
w */
     const struct pci_ops *ops;
+    void *priv;                      /* Private data of the bridge. */
 };
=20
 struct pci_ops {
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Wed Apr 09 13:29:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 13:29:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.944043.1342642 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2VUl-0002by-GP; Wed, 09 Apr 2025 13:29:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 944043.1342642; Wed, 09 Apr 2025 13:29: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 1u2VUl-0002bp-AW; Wed, 09 Apr 2025 13:29:35 +0000
Received: by outflank-mailman (input) for mailman id 944043;
 Wed, 09 Apr 2025 13:29: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=scqd=W3=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1u2VUj-0001T2-CP
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 13:29:33 +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 abb57ebc-1546-11f0-9eab-5ba50f476ded;
 Wed, 09 Apr 2025 15:29:32 +0200 (CEST)
Received: from AS2PR03MB10110.eurprd03.prod.outlook.com
 (2603:10a6:20b:57a::22) by DB9PR03MB7468.eurprd03.prod.outlook.com
 (2603:10a6:10:22d::15) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.34; Wed, 9 Apr
 2025 13:29:27 +0000
Received: from AS2PR03MB10110.eurprd03.prod.outlook.com
 ([fe80::52f0:1815:60c9:8873]) by AS2PR03MB10110.eurprd03.prod.outlook.com
 ([fe80::52f0:1815:60c9:8873%4]) with mapi id 15.20.8606.029; Wed, 9 Apr 2025
 13:29: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: abb57ebc-1546-11f0-9eab-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=G3RL8nHftxqKZqqoN+IayV9NvT5z8mk9yC1c0/Epf+NOhVirJCetPQJJ8U+VWy7DUDVT5T0nH7A+Z0of/8EgmeOrrwlT+X2lyECH2YBwpRcuRI/CjzxDS3J/p96VpXjS8WQkIoM3ejxua0mszdbwdBaSR0Vj6GZg+hZLQbXo4nFcVsIZQNhCexiNwngk+oK4lATUedqmJI4M/5nKGcJD8KdS2sFcuRVWBpK1pf6WCanJAZ6fD2G+2xl4LME8oDSRYlq1KWYr8aWBMvKLjdHz2xP69Ed1VKB7Hg/s3dp44lqgea0xOxGpL24T2WPE6lUz3rBc2YopWO6p+KZF5yszGA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=WyBcA+yWQnOCSNF/kUVEX+WjJUIBXqs8G1+6ttzX/UI=;
 b=tZbDY/H0MfxkA9VMWH8tVRUP10vJPBajn4536zfAXQ3eunVI02n1tR9Md9sQyPW7x1CMH4+PRcJFoF2mOcicRygJK/RZzj0zoV87StjsZ0wE9QyHU4xb7mFy7ww0pNDDifS9lBQK9mPDhlJRDGdAkfYRHFnmxbi/ORnCmGOcU+2gLAdHW2aaCC4ChBRuR65v78sHGfoEvhCqDL/SNwkHR7Z3U+eaomlDKmfm7zPzLlyVSyZa1WqyGGmTwGakAbkutX5mefACTnD8QKfHngp1131UVlETteYcB/TUhsjm1HZx25lxIFJiIMIzKHHChn1tkCA/qlHIt1M+ROvUV8c92w==
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=WyBcA+yWQnOCSNF/kUVEX+WjJUIBXqs8G1+6ttzX/UI=;
 b=iVa441bxpPw/kxphP2bB0EhDfSfUU+AEpae7MNiooEnE3iXm04rZyAJ9vfSz95sTh2t35U5G8cdIRIHjS/DXBtmhXYNVMUaT/U1CsxdNIKSWas5diylnZ9eVmdVUCb5cdTjq10J/5wjTeHJX/CYzR5Gb9VLbhZsPnpMVPpbrxKBHBvvsm6V0PMbEpJc7hUK8jfYeujY71Er0ZzjbrEO3jeFRBr7MncZqxaAa0iqmaOj2JTsele+Ir+SnPiR5teobrifK75AbvIRl99fDLck29PvZDRffMhed5vM1ULC+yTLy8/sbKAaqfC6g0z7hhrF8oYBTkoYAjpNrdz+mOiIaKw==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@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>, Mykyta Poturai
	<Mykyta_Poturai@epam.com>
Subject: [PATCH v3 3/4] xen/arm: add support for PCI child bus
Thread-Topic: [PATCH v3 3/4] xen/arm: add support for PCI child bus
Thread-Index: AQHbqVNqEyexvvIpgke1QVGEurkh9Q==
Date: Wed, 9 Apr 2025 13:29:27 +0000
Message-ID:
 <24a9ed02f049d3187a14a0c0ad847ff97d346b79.1744203405.git.mykyta_poturai@epam.com>
References: <cover.1744203405.git.mykyta_poturai@epam.com>
In-Reply-To: <cover.1744203405.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: AS2PR03MB10110:EE_|DB9PR03MB7468:EE_
x-ms-office365-filtering-correlation-id: 6cd07f39-65b3-4635-7305-08dd776a8d52
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?SP5LoL2tRoOwHXiymLZSK4BOmk4UivX8OP7w2Hz2rl2WxKYmWVBSuWGDcE?=
 =?iso-8859-1?Q?jq9N0Gp4tVs8ussBXn+spMgiisPcTWiQKLU7VXpqKlEBOURIwjlBJVC3wt?=
 =?iso-8859-1?Q?M0u+438uh84BnKHmHxGygrd1vSJ3sIkSqGmI/JQdracPWCLkV0kxwKSm9Y?=
 =?iso-8859-1?Q?ozMBu5UgPPyYSs85rERVYff6tPKoO0GuQgLb9RZaGkQ2jlJFIQq/rJR9Ul?=
 =?iso-8859-1?Q?/pCl+ZBgeNHQTf4ylklk00+iwYH5lS39s4N21dI2TlbzZyFbL9Y9+ovGCh?=
 =?iso-8859-1?Q?lbpmQU3Pa2QUBXw+U4WQVur6reXqLEFldRZuqbcJO3903S31H1ABVysJk0?=
 =?iso-8859-1?Q?JK71NTmEyaewZSgFYzwmC9rw0/onXDmKueoCiP+8CmDPc2DW6boEXaCPs5?=
 =?iso-8859-1?Q?AbY/a1Kv4oZnr0Rey6stCrFbl4q2M5h8geFV1Rg7gqum5W1z4WduLjljqX?=
 =?iso-8859-1?Q?BnCQotKM2peQ7qDk+hYwRx/z4ihk5LSApZLNFdoml0ki5GF5DOl9hh81Iq?=
 =?iso-8859-1?Q?LnRky9cL2AEWAoNk53DqD8A7Q9vtfQThS5OlhEqQ72JpzUq/S7I9qKtysf?=
 =?iso-8859-1?Q?ia9Y4Ie0nh2QhBzNrQ+L6oVa3ZDDhGTlM8wBD/1F/hH0ri/U19Frm6F6+S?=
 =?iso-8859-1?Q?9FEp8AIy4DD5rYV+Ago12XL6i/uquyVA3gm4nIR897QUqJOTVJcGg2/R2S?=
 =?iso-8859-1?Q?yTR95c7mUSfQIzULKYa7yvKzSay2ix1CKsTvzWMKmmBzZbiZSIZczNG31H?=
 =?iso-8859-1?Q?ejZYJBWxIqoOgBlfmYebuDgNAGzuZrOVi+ZKstk07LBynPnhQ6OnTSmniu?=
 =?iso-8859-1?Q?u3kscXUXl1t7MNnBaW+rfQezhpcM7f1hTERhs8zQZj8q1m7ULzD4KE7Q+M?=
 =?iso-8859-1?Q?Wn/qRbwQlReXoakZaxsr4DC/dNZm0atf7R5bi4l0ZW4/VVHarCqQ/Dcoxh?=
 =?iso-8859-1?Q?nPOL+GDbUX3YzbZCwuhvp2Widhk6YKkm9ZOr+hvqTJz2qkfPos/2vwBZnE?=
 =?iso-8859-1?Q?2naPU+0dwebisaM8RdrHC8DrScf9kaIbjd3DCidQHWk+B5w0SLEfu/NzjW?=
 =?iso-8859-1?Q?GFb0OqCWegxgwIVUagxp1B0Emmout3UVjc2r9zRtBhy18Y81xiuVoQ7h/k?=
 =?iso-8859-1?Q?rZh4foauR7bn+oBSQ4J0VGA6qEXCiz+Y1asL7l2qRtPkUbs6OFGTVWyS8v?=
 =?iso-8859-1?Q?OhdmDeiBHwM22+aR87BGrmIuHxSuvJfkPqs5tIfe/KVdIGRRK3G4tpRaxN?=
 =?iso-8859-1?Q?D95hafWRp4tfjN9tYat2KVGZ0UGYN9HV1bjG2nPzqlvQp4+ZJnYIIPGjVx?=
 =?iso-8859-1?Q?oWSsXn0huld5tJQlfprtLBQb9XVZavMHrtWXyJq+5eOawQsb7MGyVJju1U?=
 =?iso-8859-1?Q?ZWxWkdZFZIC0sARCs7YWzVdoJxLaP1342BqR6diLNTQ6ILlwvvApOxRb4a?=
 =?iso-8859-1?Q?wFtSxLCg7fyPnG0GwzHebJX33ZCq584BT9ryyQ=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB10110.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(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?YBhKs217EGqrhCYW70CAGi+WeQmAyNv/vhBQacOk2C3Nk5Czvyc9jcRsD/?=
 =?iso-8859-1?Q?0TYgtI0ZWR5NrOPj77BkWi0SLgw2SKmhLtT/lxak8rO/Trt1larWI2Q28p?=
 =?iso-8859-1?Q?2HWz/KBdpxWUcFuF6Z+ibaCg8gNmzBlnC24lgS0m0BHnVnZbO6WslpHmTg?=
 =?iso-8859-1?Q?0B4ar+x2ZOAz8uJARDvG4mKMhoDBodUM+QsyCscr01dlLEmPr3WnQUlz3+?=
 =?iso-8859-1?Q?0iBVyWN4T9IoaxPQegJ1aYV33WKH1I95kbBN9VXL/0pQctrTZ7XaiDyVsT?=
 =?iso-8859-1?Q?OlO/OkwMrZ5ZENzBVJhFxmNObOZmas/ZH0J2DAG/3HbfSl3/5FR6tqInQa?=
 =?iso-8859-1?Q?dJLhKs0mCZue4nhdYs4+VRbRHHwjMfXzMFzUbJYGuBSZM7GctiAA98PbZi?=
 =?iso-8859-1?Q?CATF58Om3R0kbN4PnMrPs5vF7EqeedSySkz6Po02BssjsLoSZd6JjOr6a9?=
 =?iso-8859-1?Q?Ho6KbFjwtUCm44bit+J1o/W7sC+um9IvhNq9ehwMzPXYnlOBuGQB6UDSa5?=
 =?iso-8859-1?Q?upASdS6mYmc71arlDdswV7uPFV/NbzMzMPieuQ/zDqo/h6yVGd5xA6meha?=
 =?iso-8859-1?Q?Rq63aJ0JxSNlbyeTK9AVYrw2t5DQ4VXkelsCXQNbjdUTy/rqhFhaLpYOD3?=
 =?iso-8859-1?Q?NPauy+VYUbiPe3aZYlD4S5I4yFm/uGoKlKB7I5il5GnNGRL9zTLZTAj6zv?=
 =?iso-8859-1?Q?CERWcLOiRVoyiaFqbkRrSzxFF5ZM1r4iHywQZp3x0RYRwAxadzhQdPBGeI?=
 =?iso-8859-1?Q?r4fN8j5D+k3Sv+3T8dJoNOVb6wA4o2bc+CBcFCa5jiUa4zxaczFXpcPGMZ?=
 =?iso-8859-1?Q?NyMM2fOU2X+BkwL7s0OXrkgei6HC1MScEMOSZq1nTel7sUr66Z1GW93eI9?=
 =?iso-8859-1?Q?7i2Wo32rJyO35XRSCPs5j88PGXcNN2fpdbMGeNcJZ7B6D3ywGa/3daeowr?=
 =?iso-8859-1?Q?eyK5CGjpBxRBhfFmhBpX+nCByviQLho15jjcaB5ldfh87BRXZw4VpbJIhR?=
 =?iso-8859-1?Q?0QhASB5Wkd/P88Nnu1+0b4W+N6JkwTnS2hrFYnSz4gDQ0BtaFhxxrhkejq?=
 =?iso-8859-1?Q?s+/nOvP2YLbGFOBdUx+El9Qs51/uGgCkF/5hKxq5WJs3bk8dgSTzUO3e7p?=
 =?iso-8859-1?Q?wFAG2j0/g+ogvoAGFQOijfMExpt5pBihPGp0Z0iDI8dXlNpS1/tjBJArpl?=
 =?iso-8859-1?Q?NjNl7/i0bSh1Q27rJjyCxtyOomoUDfpG47uFi+47yQof4wdi0yuC0gyvBn?=
 =?iso-8859-1?Q?1dZn1dhqwQz8dmdH/gubsrR5UhQeyTTBYGlbFEBLOTNaFig1kmqdS9q+Oa?=
 =?iso-8859-1?Q?uYsbCzhgfz4f3yccPEQceJObACIVJLY4aaCin1Pt+kJEi5hS9Pc+jl1GeT?=
 =?iso-8859-1?Q?F5p4uTjqrrhQtTcRTjcOK/k81a7m/lbZ6uV6L/Xg5jCqKhGtTxPF12RNyj?=
 =?iso-8859-1?Q?cRKaaHiASClgFMRhfHdE0tZnWTGIO0uXM8xzSeDThk45jsI80LdtIHdewC?=
 =?iso-8859-1?Q?nZw+sZg2PXWj2N6h1zUdhHgffqRfzVwjW0W1dMF9jgpaRHKCoVav3+YMWK?=
 =?iso-8859-1?Q?gNOT870gWt76FbueZvUQZnlSSJMWTPu1ks6jKPlsxhEi7vzkMN16FT68zE?=
 =?iso-8859-1?Q?Z8G+jeVbGl4GmzhpSM8vpS3wCrjBKAKIUdmp3DvdvSrGkILQNImYrjeg?=
 =?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: AS2PR03MB10110.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 6cd07f39-65b3-4635-7305-08dd776a8d52
X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Apr 2025 13:29:27.7368
 (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: 6gK7yvPJtNmOaMY0YWWcJJqKHs/xO/oBHHaCvUGUZyu/Q9XTgL5usg4me9cq4Jadv3o+V5/MPj9dWBqxyPn1Zw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR03MB7468

From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

PCI host bridges often have different ways to access the root and child
bus configuration spaces. One of the examples is Designware's host bridge
and its multiple clones [1].

Linux kernel implements this by instantiating a child bus when device
drivers provide not only the usual pci_ops to access ECAM space (this is
the case for the generic host bridge), but also means to access the child
bus which has a dedicated configuration space and own implementation for
accessing the bus, e.g. child_ops.

For Xen it is not feasible to fully implement PCI bus infrastructure as
Linux kernel does, but still child bus can be supported.

Add support for the PCI child bus which includes the following changes:
- introduce bus mapping functions depending on SBDF
- assign bus start and end for the child bus and re-configure the same for
  the parent (root) bus
- make pci_find_host_bridge be aware of multiple busses behind the same bri=
dge
- update pci_host_bridge_mappings, so it also doesn't map to guest the memo=
ry
  spaces belonging to the child bus
- make pci_host_common_probe accept one more pci_ops structure for the chil=
d bus
- install MMIO handlers for the child bus
- re-work vpci_mmio_{write|read} with parent and child approach in mind

[1] https://elixir.bootlin.com/linux/v5.15/source/drivers/pci/controller/dw=
c

Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
---
v2->v3:
* no change

v1->v2:
* fixed compilation issues
---
 xen/arch/arm/include/asm/pci.h      | 12 +++-
 xen/arch/arm/pci/ecam.c             | 17 ++++--
 xen/arch/arm/pci/pci-access.c       | 37 +++++++++++--
 xen/arch/arm/pci/pci-host-common.c  | 86 +++++++++++++++++++++++------
 xen/arch/arm/pci/pci-host-generic.c |  2 +-
 xen/arch/arm/pci/pci-host-zynqmp.c  |  2 +-
 xen/arch/arm/vpci.c                 | 83 ++++++++++++++++++++++------
 7 files changed, 192 insertions(+), 47 deletions(-)

diff --git a/xen/arch/arm/include/asm/pci.h b/xen/arch/arm/include/asm/pci.=
h
index 3d2ca9b5b0..addec31791 100644
--- a/xen/arch/arm/include/asm/pci.h
+++ b/xen/arch/arm/include/asm/pci.h
@@ -67,6 +67,9 @@ struct pci_host_bridge {
     uint16_t segment;                /* Segment number */
     struct pci_config_window* cfg;   /* Pointer to the bridge config windo=
w */
     const struct pci_ops *ops;
+    /* Child bus */
+    struct pci_config_window *child_cfg;
+    const struct pci_ops *child_ops;
     void *priv;                      /* Private data of the bridge. */
 };
=20
@@ -96,14 +99,19 @@ struct pci_ecam_ops {
 /* Default ECAM ops */
 extern const struct pci_ecam_ops pci_generic_ecam_ops;
=20
-struct pci_host_bridge *pci_host_common_probe(struct dt_device_node *dev,
-                                              const struct pci_ecam_ops *o=
ps);
+struct pci_host_bridge *
+pci_host_common_probe(struct dt_device_node *dev,
+                      const struct pci_ecam_ops *ops,
+                      const struct pci_ecam_ops *child_ops);
 int pci_generic_config_read(struct pci_host_bridge *bridge, pci_sbdf_t sbd=
f,
                             uint32_t reg, uint32_t len, uint32_t *value);
 int pci_generic_config_write(struct pci_host_bridge *bridge, pci_sbdf_t sb=
df,
                              uint32_t reg, uint32_t len, uint32_t value);
 void __iomem *pci_ecam_map_bus(struct pci_host_bridge *bridge,
                                pci_sbdf_t sbdf, uint32_t where);
+void __iomem *pci_ecam_map_bus_generic(const struct pci_config_window *cfg=
,
+                                       const struct pci_ecam_ops *ops,
+                                       pci_sbdf_t sbdf, uint32_t where);
 bool pci_ecam_need_p2m_hwdom_mapping(struct domain *d,
                                      struct pci_host_bridge *bridge,
                                      uint64_t addr);
diff --git a/xen/arch/arm/pci/ecam.c b/xen/arch/arm/pci/ecam.c
index 3987f96b01..ad0b2c35f9 100644
--- a/xen/arch/arm/pci/ecam.c
+++ b/xen/arch/arm/pci/ecam.c
@@ -20,12 +20,10 @@
 /*
  * Function to implement the pci_ops->map_bus method.
  */
-void __iomem *pci_ecam_map_bus(struct pci_host_bridge *bridge,
-                               pci_sbdf_t sbdf, uint32_t where)
+void __iomem *pci_ecam_map_bus_generic(const struct pci_config_window *cfg=
,
+                                       const struct pci_ecam_ops *ops,
+                                       pci_sbdf_t sbdf, uint32_t where)
 {
-    const struct pci_config_window *cfg =3D bridge->cfg;
-    const struct pci_ecam_ops *ops =3D
-        container_of(bridge->ops, const struct pci_ecam_ops, pci_ops);
     unsigned int devfn_shift =3D ops->bus_shift - 8;
     void __iomem *base;
     unsigned int busn =3D sbdf.bus;
@@ -39,6 +37,15 @@ void __iomem *pci_ecam_map_bus(struct pci_host_bridge *b=
ridge,
     return base + (sbdf.devfn << devfn_shift) + where;
 }
=20
+void __iomem *pci_ecam_map_bus(struct pci_host_bridge *bridge, pci_sbdf_t =
sbdf,
+                               uint32_t where)
+{
+    const struct pci_ecam_ops *ops =3D
+        container_of(bridge->ops, const struct pci_ecam_ops, pci_ops);
+
+    return pci_ecam_map_bus_generic(bridge->cfg, ops, sbdf, where);
+}
+
 bool __init pci_ecam_need_p2m_hwdom_mapping(struct domain *d,
                                             struct pci_host_bridge *bridge=
,
                                             uint64_t addr)
diff --git a/xen/arch/arm/pci/pci-access.c b/xen/arch/arm/pci/pci-access.c
index 9f9aac43d7..cc4787f2b5 100644
--- a/xen/arch/arm/pci/pci-access.c
+++ b/xen/arch/arm/pci/pci-access.c
@@ -18,10 +18,31 @@
 #define INVALID_VALUE (~0U)
 #define PCI_ERR_VALUE(len) GENMASK(0, len * 8)
=20
+static const struct pci_ops *get_ops(struct pci_host_bridge *bridge,
+                                     pci_sbdf_t sbdf)
+{
+    if ( bridge->child_ops )
+    {
+        struct pci_config_window *cfg =3D bridge->child_cfg;
+
+        if ( (sbdf.bus >=3D cfg->busn_start) && (sbdf.bus <=3D cfg->busn_e=
nd) )
+            return bridge->child_ops;
+    }
+    return bridge->ops;
+}
+
+static void __iomem *map_bus(struct pci_host_bridge *bridge, pci_sbdf_t sb=
df,
+                             uint32_t reg)
+{
+    const struct pci_ops *ops =3D get_ops(bridge, sbdf);
+
+    return ops->map_bus(bridge, sbdf, reg);
+}
+
 int pci_generic_config_read(struct pci_host_bridge *bridge, pci_sbdf_t sbd=
f,
                             uint32_t reg, uint32_t len, uint32_t *value)
 {
-    void __iomem *addr =3D bridge->ops->map_bus(bridge, sbdf, reg);
+    void __iomem *addr =3D map_bus(bridge, sbdf, reg);
=20
     if ( !addr )
     {
@@ -50,7 +71,7 @@ int pci_generic_config_read(struct pci_host_bridge *bridg=
e, pci_sbdf_t sbdf,
 int pci_generic_config_write(struct pci_host_bridge *bridge, pci_sbdf_t sb=
df,
                              uint32_t reg, uint32_t len, uint32_t value)
 {
-    void __iomem *addr =3D bridge->ops->map_bus(bridge, sbdf, reg);
+    void __iomem *addr =3D map_bus(bridge, sbdf, reg);
=20
     if ( !addr )
         return -ENODEV;
@@ -78,14 +99,16 @@ static uint32_t pci_config_read(pci_sbdf_t sbdf, unsign=
ed int reg,
 {
     uint32_t val =3D PCI_ERR_VALUE(len);
     struct pci_host_bridge *bridge =3D pci_find_host_bridge(sbdf.seg, sbdf=
.bus);
+    const struct pci_ops *ops;
=20
     if ( unlikely(!bridge) )
         return val;
=20
-    if ( unlikely(!bridge->ops->read) )
+    ops =3D get_ops(bridge, sbdf);
+    if ( unlikely(!ops->read) )
         return val;
=20
-    bridge->ops->read(bridge, sbdf, reg, len, &val);
+    ops->read(bridge, sbdf, reg, len, &val);
=20
     return val;
 }
@@ -94,14 +117,16 @@ static void pci_config_write(pci_sbdf_t sbdf, unsigned=
 int reg,
                              unsigned int len, uint32_t val)
 {
     struct pci_host_bridge *bridge =3D pci_find_host_bridge(sbdf.seg, sbdf=
.bus);
+    const struct pci_ops *ops;
=20
     if ( unlikely(!bridge) )
         return;
=20
-    if ( unlikely(!bridge->ops->write) )
+    ops =3D get_ops(bridge, sbdf);
+    if ( unlikely(!ops->write) )
         return;
=20
-    bridge->ops->write(bridge, sbdf, reg, len, val);
+    ops->write(bridge, sbdf, reg, len, val);
 }
=20
 /*
diff --git a/xen/arch/arm/pci/pci-host-common.c b/xen/arch/arm/pci/pci-host=
-common.c
index 7ce9675551..2b058b5f5e 100644
--- a/xen/arch/arm/pci/pci-host-common.c
+++ b/xen/arch/arm/pci/pci-host-common.c
@@ -57,17 +57,12 @@ static void pci_ecam_free(struct pci_config_window *cfg=
)
     xfree(cfg);
 }
=20
-static struct pci_config_window * __init
-gen_pci_init(struct dt_device_node *dev, const struct pci_ecam_ops *ops)
+static void __init gen_pci_init_bus_range(struct dt_device_node *dev,
+                                          struct pci_host_bridge *bridge,
+                                          struct pci_config_window *cfg)
 {
-    int err, cfg_reg_idx;
     u32 bus_range[2];
-    paddr_t addr, size;
-    struct pci_config_window *cfg;
-
-    cfg =3D xzalloc(struct pci_config_window);
-    if ( !cfg )
-        return NULL;
+    int err;
=20
     err =3D dt_property_read_u32_array(dev, "bus-range", bus_range,
                                      ARRAY_SIZE(bus_range));
@@ -82,6 +77,36 @@ gen_pci_init(struct dt_device_node *dev, const struct pc=
i_ecam_ops *ops)
         if ( cfg->busn_end > cfg->busn_start + 0xff )
             cfg->busn_end =3D cfg->busn_start + 0xff;
     }
+}
+
+static void __init gen_pci_init_bus_range_child(struct dt_device_node *dev=
,
+                                                struct pci_host_bridge *br=
idge,
+                                                struct pci_config_window *=
cfg)
+{
+    cfg->busn_start =3D bridge->cfg->busn_start + 1;
+    cfg->busn_end =3D bridge->cfg->busn_end;
+    bridge->cfg->busn_end =3D bridge->cfg->busn_start;
+
+    printk(XENLOG_INFO "Root bus end updated: [bus %x-%x]\n",
+           bridge->cfg->busn_start, bridge->cfg->busn_end);
+}
+
+static struct pci_config_window *__init
+gen_pci_init(struct dt_device_node *dev, struct pci_host_bridge *bridge,
+             const struct pci_ecam_ops *ops,
+             void (*init_bus_range)(struct dt_device_node *dev,
+                                    struct pci_host_bridge *bridge,
+                                    struct pci_config_window *cfg))
+{
+    int err, cfg_reg_idx;
+    paddr_t addr, size;
+    struct pci_config_window *cfg;
+
+    cfg =3D xzalloc(struct pci_config_window);
+    if ( !cfg )
+        return NULL;
+
+    init_bus_range(dev, bridge, cfg);
=20
     if ( ops->cfg_reg_index )
     {
@@ -208,8 +233,10 @@ static int pci_bus_find_domain_nr(struct dt_device_nod=
e *dev)
     return domain;
 }
=20
-struct pci_host_bridge *pci_host_common_probe(struct dt_device_node *dev,
-                                              const struct pci_ecam_ops *o=
ps)
+struct pci_host_bridge *
+pci_host_common_probe(struct dt_device_node *dev,
+                      const struct pci_ecam_ops *ops,
+                      const struct pci_ecam_ops *child_ops)
 {
     struct pci_host_bridge *bridge;
     struct pci_config_window *cfg;
@@ -224,7 +251,7 @@ struct pci_host_bridge *pci_host_common_probe(struct dt=
_device_node *dev,
         return ERR_PTR(-ENOMEM);
=20
     /* Parse and map our Configuration Space windows */
-    cfg =3D gen_pci_init(dev, ops);
+    cfg =3D gen_pci_init(dev, bridge, ops, gen_pci_init_bus_range);
     if ( !cfg )
     {
         err =3D -ENOMEM;
@@ -242,10 +269,29 @@ struct pci_host_bridge *pci_host_common_probe(struct =
dt_device_node *dev,
         BUG();
     }
     bridge->segment =3D domain;
+
+    if ( child_ops )
+    {
+        /* Parse and map child's Configuration Space windows */
+        cfg =3D gen_pci_init(dev, bridge, child_ops,
+                           gen_pci_init_bus_range_child);
+        if ( !cfg )
+        {
+            err =3D -ENOMEM;
+            goto err_child;
+        }
+
+        bridge->child_cfg =3D cfg;
+        bridge->child_ops =3D &child_ops->pci_ops;
+    }
+
     pci_add_host_bridge(bridge);
=20
     return bridge;
=20
+err_child:
+    xfree(bridge->cfg);
+
 err_exit:
     xfree(bridge);
=20
@@ -280,9 +326,12 @@ struct pci_host_bridge *pci_find_host_bridge(uint16_t =
segment, uint8_t bus)
     {
         if ( bridge->segment !=3D segment )
             continue;
-        if ( (bus < bridge->cfg->busn_start) || (bus > bridge->cfg->busn_e=
nd) )
-            continue;
-        return bridge;
+        if ( bridge->child_cfg && (bus >=3D bridge->child_cfg->busn_start)=
 &&
+             (bus <=3D bridge->child_cfg->busn_end) )
+            return bridge;
+        if ( (bus >=3D bridge->cfg->busn_start) &&
+             (bus <=3D bridge->cfg->busn_end) )
+            return bridge;
     }
=20
     return NULL;
@@ -348,6 +397,7 @@ int __init pci_host_bridge_mappings(struct domain *d)
     {
         const struct dt_device_node *dev =3D bridge->dt_node;
         unsigned int i;
+        bool need_mapping;
=20
         for ( i =3D 0; i < dt_number_of_address(dev); i++ )
         {
@@ -363,7 +413,11 @@ int __init pci_host_bridge_mappings(struct domain *d)
                 return err;
             }
=20
-            if ( bridge->ops->need_p2m_hwdom_mapping(d, bridge, addr) )
+            need_mapping =3D bridge->ops->need_p2m_hwdom_mapping(d, bridge=
, addr);
+            if ( need_mapping && bridge->child_ops )
+                need_mapping =3D
+                    bridge->child_ops->need_p2m_hwdom_mapping(d, bridge, a=
ddr);
+            if ( need_mapping )
             {
                 err =3D map_range_to_domain(dev, addr, size, &mr_data);
                 if ( err )
diff --git a/xen/arch/arm/pci/pci-host-generic.c b/xen/arch/arm/pci/pci-hos=
t-generic.c
index a6ffbda174..47cf144831 100644
--- a/xen/arch/arm/pci/pci-host-generic.c
+++ b/xen/arch/arm/pci/pci-host-generic.c
@@ -29,7 +29,7 @@ static const struct dt_device_match __initconstrel gen_pc=
i_dt_match[] =3D
 static int __init pci_host_generic_probe(struct dt_device_node *dev,
                                          const void *data)
 {
-    return PTR_RET(pci_host_common_probe(dev, &pci_generic_ecam_ops));
+    return PTR_RET(pci_host_common_probe(dev, &pci_generic_ecam_ops, NULL)=
);
 }
=20
 DT_DEVICE_START(pci_gen, "PCI HOST GENERIC", DEVICE_PCI_HOSTBRIDGE)
diff --git a/xen/arch/arm/pci/pci-host-zynqmp.c b/xen/arch/arm/pci/pci-host=
-zynqmp.c
index a38f2e019e..75d1235aaf 100644
--- a/xen/arch/arm/pci/pci-host-zynqmp.c
+++ b/xen/arch/arm/pci/pci-host-zynqmp.c
@@ -47,7 +47,7 @@ static const struct dt_device_match __initconstrel nwl_pc=
ie_dt_match[] =3D
 static int __init pci_host_generic_probe(struct dt_device_node *dev,
                                          const void *data)
 {
-    return PTR_RET(pci_host_common_probe(dev, &nwl_pcie_ops));
+    return PTR_RET(pci_host_common_probe(dev, &nwl_pcie_ops, NULL));
 }
=20
 DT_DEVICE_START(pci_gen, "PCI HOST ZYNQMP", DEVICE_PCI_HOSTBRIDGE)
diff --git a/xen/arch/arm/vpci.c b/xen/arch/arm/vpci.c
index b63a356bb4..468aee1db7 100644
--- a/xen/arch/arm/vpci.c
+++ b/xen/arch/arm/vpci.c
@@ -8,15 +8,17 @@
 #include <asm/mmio.h>
=20
 static pci_sbdf_t vpci_sbdf_from_gpa(const struct pci_host_bridge *bridge,
-                                     paddr_t gpa)
+                                     paddr_t gpa, bool use_root)
 {
     pci_sbdf_t sbdf;
=20
     if ( bridge )
     {
-        sbdf.sbdf =3D VPCI_ECAM_BDF(gpa - bridge->cfg->phys_addr);
+        const struct pci_config_window *cfg =3D use_root ? bridge->cfg
+                                                       : bridge->child_cfg=
;
+        sbdf.sbdf =3D VPCI_ECAM_BDF(gpa - cfg->phys_addr);
         sbdf.seg =3D bridge->segment;
-        sbdf.bus +=3D bridge->cfg->busn_start;
+        sbdf.bus +=3D cfg->busn_start;
     }
     else
         sbdf.sbdf =3D VPCI_ECAM_BDF(gpa - GUEST_VPCI_ECAM_BASE);
@@ -24,11 +26,9 @@ static pci_sbdf_t vpci_sbdf_from_gpa(const struct pci_ho=
st_bridge *bridge,
     return sbdf;
 }
=20
-static int vpci_mmio_read(struct vcpu *v, mmio_info_t *info,
-                          register_t *r, void *p)
+static int vpci_mmio_read(struct vcpu *v, mmio_info_t *info, register_t *r=
,
+                          pci_sbdf_t sbdf)
 {
-    struct pci_host_bridge *bridge =3D p;
-    pci_sbdf_t sbdf =3D vpci_sbdf_from_gpa(bridge, info->gpa);
     const unsigned int access_size =3D (1U << info->dabt.size) * 8;
     const register_t invalid =3D GENMASK_ULL(access_size - 1, 0);
     /* data is needed to prevent a pointer cast on 32bit */
@@ -46,31 +46,78 @@ static int vpci_mmio_read(struct vcpu *v, mmio_info_t *=
info,
     return 0;
 }
=20
-static int vpci_mmio_write(struct vcpu *v, mmio_info_t *info,
-                           register_t r, void *p)
+static int vpci_mmio_read_root(struct vcpu *v, mmio_info_t *info, register=
_t *r,
+                               void *p)
+{
+    struct pci_host_bridge *bridge =3D p;
+    pci_sbdf_t sbdf =3D vpci_sbdf_from_gpa(bridge, info->gpa, true);
+
+    return vpci_mmio_read(v, info, r, sbdf);
+}
+
+static int vpci_mmio_read_child(struct vcpu *v, mmio_info_t *info,
+                                register_t *r, void *p)
 {
     struct pci_host_bridge *bridge =3D p;
-    pci_sbdf_t sbdf =3D vpci_sbdf_from_gpa(bridge, info->gpa);
+    pci_sbdf_t sbdf =3D vpci_sbdf_from_gpa(bridge, info->gpa, false);
+
+    return vpci_mmio_read(v, info, r, sbdf);
+}
=20
+static int vpci_mmio_write(struct vcpu *v, mmio_info_t *info, register_t r=
,
+                           pci_sbdf_t sbdf)
+{
     return vpci_ecam_write(sbdf, ECAM_REG_OFFSET(info->gpa),
                            1U << info->dabt.size, r);
 }
=20
+static int vpci_mmio_write_root(struct vcpu *v, mmio_info_t *info, registe=
r_t r,
+                                void *p)
+{
+    struct pci_host_bridge *bridge =3D p;
+    pci_sbdf_t sbdf =3D vpci_sbdf_from_gpa(bridge, info->gpa, true);
+
+    return vpci_mmio_write(v, info, r, sbdf);
+}
+
+static int vpci_mmio_write_child(struct vcpu *v, mmio_info_t *info,
+                                 register_t r, void *p)
+{
+    struct pci_host_bridge *bridge =3D p;
+    pci_sbdf_t sbdf =3D vpci_sbdf_from_gpa(bridge, info->gpa, false);
+
+    return vpci_mmio_write(v, info, r, sbdf);
+}
+
 static const struct mmio_handler_ops vpci_mmio_handler =3D {
-    .read  =3D vpci_mmio_read,
-    .write =3D vpci_mmio_write,
+    .read =3D vpci_mmio_read_root,
+    .write =3D vpci_mmio_write_root,
+};
+
+static const struct mmio_handler_ops vpci_mmio_handler_child =3D {
+    .read =3D vpci_mmio_read_child,
+    .write =3D vpci_mmio_write_child,
 };
=20
 static int vpci_setup_mmio_handler_cb(struct domain *d,
                                       struct pci_host_bridge *bridge)
 {
     struct pci_config_window *cfg =3D bridge->cfg;
+    int count =3D 1;
=20
     register_mmio_handler(d, &vpci_mmio_handler,
                           cfg->phys_addr, cfg->size, bridge);
=20
-    /* We have registered a single MMIO handler. */
-    return 1;
+    if ( bridge->child_ops )
+    {
+        struct pci_config_window *cfg =3D bridge->child_cfg;
+
+        register_mmio_handler(d, &vpci_mmio_handler_child, cfg->phys_addr,
+                              cfg->size, bridge);
+        count++;
+    }
+
+    return count;
 }
=20
 int domain_vpci_init(struct domain *d)
@@ -101,8 +148,12 @@ int domain_vpci_init(struct domain *d)
 static int vpci_get_num_handlers_cb(struct domain *d,
                                     struct pci_host_bridge *bridge)
 {
-    /* Each bridge has a single MMIO handler for the configuration space. =
*/
-    return 1;
+    int count =3D 1;
+
+    if ( bridge->child_cfg )
+        count++;
+
+    return count;
 }
=20
 unsigned int domain_vpci_get_num_mmio_handlers(struct domain *d)
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Wed Apr 09 13:31:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 13:31:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.944085.1342652 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2VWZ-0006JM-0P; Wed, 09 Apr 2025 13:31:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 944085.1342652; Wed, 09 Apr 2025 13:31:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2VWY-0006JF-Tw; Wed, 09 Apr 2025 13:31:26 +0000
Received: by outflank-mailman (input) for mailman id 944085;
 Wed, 09 Apr 2025 13:31:26 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=scqd=W3=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1u2VUk-0001T2-CX
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 13:29:34 +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 ac399df3-1546-11f0-9eab-5ba50f476ded;
 Wed, 09 Apr 2025 15:29:33 +0200 (CEST)
Received: from AS2PR03MB10110.eurprd03.prod.outlook.com
 (2603:10a6:20b:57a::22) by DB9PR03MB7468.eurprd03.prod.outlook.com
 (2603:10a6:10:22d::15) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.34; Wed, 9 Apr
 2025 13:29:28 +0000
Received: from AS2PR03MB10110.eurprd03.prod.outlook.com
 ([fe80::52f0:1815:60c9:8873]) by AS2PR03MB10110.eurprd03.prod.outlook.com
 ([fe80::52f0:1815:60c9:8873%4]) with mapi id 15.20.8606.029; Wed, 9 Apr 2025
 13:29: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: ac399df3-1546-11f0-9eab-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=r1Sehf7EMtcHaEs9OOxP56eHQxjRVJPICPYwtpcih3j/4tCYIkhiZqOMDWI1b93z14JXEcr0GBsR0YXLITlyQufDCaigjrX1VkkwjEUUu63HfytMFlh5TWD0j7xIsYSLcwZVw5iZS96BiKaZEOKimYpvkD+13IsGTdHuM7VZM7y/nSiEeCzHlfpsvyEBbo6Vvc14ZJjYL7sbDHOvbaLyLrWSL3J8yDimK4R49o1KY023YMPbekmasB+ZIlqITi9Luq2lswVczPT4OP3YCgNZ58tDUq+GXQZS/7GFVaiX8epevdAbfmirSPjyVJ2GHbbU8EXmNC37Z/zGndpzI9ylXQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=dJuqNZxW3mG85YtuGgnelqvRuZNDO16hFg7fEmceMJs=;
 b=NuoLsWv8mvS0Cacx8b9bPsvVxJhyKBNIvsmyaC45JAlnpqHmTX6nDlaCYXWPKih5mTfu67kCURX5S+3W7IPO2HlJbEI5ncuLC5z+MPNnDYCr8JPa/tm7zaP/Uqw+Ft7ArnDVnvD496ezh7KFXRQeGbN7oCL68DAFGbO9zhMrP6UJ7xuaYrHEhw/OoDcUPCRuikc8+pNWFS07j65mEsZKLsFnA22tuSAY111QiJ/bZEfLp31NDJLjJIpFc+N0zI8n2vv/X0YSt1czOV5vIkJh0KBW1s0EETYrs2qD2Icg5ZtpZstu3VsgHjeHMd+jBBchraAYFRNmmsWpa1dP7yTLqQ==
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=dJuqNZxW3mG85YtuGgnelqvRuZNDO16hFg7fEmceMJs=;
 b=kASAyK6BfoLCLpcx1q2FHPxFJigcTmJ2UKgOfHbysCG4A/jfnFyG0hQFbz/7n36wL0hdvGSFyBihmb5sPam9SEMgECZAqnI06UkiMGxKU4IpuPyJ6eK9pEhpsv6cCRLlOBOOCjLMgx4Zu0Ne3OiG4nd/V1XioTxyLtXhM5pi7l4OheJF0gfbLv92Be7mwkPblXHAGgx8+SXOPY8TwRmHm4u7gHDivfynLDcZwLyDZW5WJtzNH25cF0PTnntTzXm1/Fr9FMzkdSHVui6HG3fN1x7MM5gyhQrEQjsuUdMrOreUOET8ifMl3uO8oPAImwgUUj2mu+zw0lMsww1q8d7Qlg==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@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>, Mykyta Poturai
	<Mykyta_Poturai@epam.com>
Subject: [PATCH v3 4/4] xen/arm: add support for R-Car Gen4 PCI host
 controller
Thread-Topic: [PATCH v3 4/4] xen/arm: add support for R-Car Gen4 PCI host
 controller
Thread-Index: AQHbqVNr1oqgbs5VOEWX9UPIk7Sjtw==
Date: Wed, 9 Apr 2025 13:29:28 +0000
Message-ID:
 <43f32fb392bfcb22b36281655242eead3fbbfa67.1744203405.git.mykyta_poturai@epam.com>
References: <cover.1744203405.git.mykyta_poturai@epam.com>
In-Reply-To: <cover.1744203405.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: AS2PR03MB10110:EE_|DB9PR03MB7468:EE_
x-ms-office365-filtering-correlation-id: 00457dab-e74c-4015-a244-08dd776a8d8b
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|366016|1800799024|13003099007|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?NPHdmuegS+CJaaYB//kluvaM+eOfODG+BX/b8K/fdmcb/EzdGXkFsoUVIA?=
 =?iso-8859-1?Q?+5SzeYcceail7BFve67rh7ojzsgb5gYEfwqFW9B0fuw6TrfhB4X0OpIbUk?=
 =?iso-8859-1?Q?0updu3TVM32TyeyC9xtdhOJKpMN7eYQQfszY9KNvc41iJvSyf9MUv/0O8X?=
 =?iso-8859-1?Q?hAjIqe3wN6Y5vMI22ZLwzrz0aNk9QkGyR1h0c6tEpW5WJfEDDC2tHdftZq?=
 =?iso-8859-1?Q?l6WpcUkR6kw4fbrFikklcOo93ISr+iq0M7w2AlFV8Ocq4D0hoChyIFGHiq?=
 =?iso-8859-1?Q?5eXrGgCorPvoG5rqeNtD8AF8pPV6w+cMcxfOuzS7m4NJo8HIbuZNIKg/hb?=
 =?iso-8859-1?Q?JUiW6Nmr0+FdKw3E7eXJ+f+QzBhOw2aPiOseIx5iJPcXiQFbzy1CrDFJ7r?=
 =?iso-8859-1?Q?63FsHGIhnckjifW2VedyroQHqJDaTTQnpIfgMo2+Nv4mwNJW37C7eQZKz5?=
 =?iso-8859-1?Q?86m2C1xiLK121oAWsf8I55gVWcJi2thkiGDJBOwzcu4AZA0EYqyvIqPM5y?=
 =?iso-8859-1?Q?Fa3igUPTMUBO/vB/InEBD0W3EXZ5tNgobNyEMlYx2JLV7S3Q6RhPW4nhcB?=
 =?iso-8859-1?Q?1MY6VpcrPg2+R/ya/49eFFvkajxuL9TJfYg7gfnzxEYC39Foov+WoIHtiX?=
 =?iso-8859-1?Q?H4ersW/6LqNolHRr0kE+UjM86AxdPn4AZLi+nME0JHLJ3apIIP3V3+X/Z4?=
 =?iso-8859-1?Q?6ZnIA6axBUGmJzN0OMl1OgDQrNSa5PkabJ/FWx3wtxuDQQj0D2rwHsbgUR?=
 =?iso-8859-1?Q?1t82bTrYZ9txanT+AZDDfc8Mo0voG7ewhitFcqpj265fT2jyuo7h0odc22?=
 =?iso-8859-1?Q?mxqM9FXDA2QqtvZlvkV5dC67D/2z5y9WqnRMHbNONKptXkYrD/Au+/RL50?=
 =?iso-8859-1?Q?5xZl2x4JmZaxZl9xGPY5X+lrtPHTU77NfRCmgU6NAOUj1je8457BPFyt6y?=
 =?iso-8859-1?Q?kkAs9CK4PTHVhmNfh0k5G8SCEDbMEVf8/CBI6q3ORsy2vV1fi2YX3xgcdH?=
 =?iso-8859-1?Q?XUVCZAvF7r7Hbert2B2oy+mVTgP+nxTR0cRZBnt+OhCuRDeJH+WpEvsf/8?=
 =?iso-8859-1?Q?1OucpnAb745LaJuJjbcrRhw7I8J+oTQRkB1hUPfXGn30I8nYiwp0bYhW65?=
 =?iso-8859-1?Q?CVe3zKUH/62bNULsJJWpZpXOr3cEiNYsnlZiWg8QkRdVYhZgtzWGZoR1CJ?=
 =?iso-8859-1?Q?dY4UOTcO1Ii5IFG6A9h1lirwtm7teH5hHfRKfQWrRBzjifkNuD6dL1yrE0?=
 =?iso-8859-1?Q?yh8aBtFMD4OPVtX/Y+nZe/r1GjrrQYxFjVKjFhydPNyvWLhlusP0jow4lx?=
 =?iso-8859-1?Q?6pkmZx+Uh14BHG5pede+eVK2LxC0B27xqubJ8BugIBjy+qkZwGnxDgW/+Z?=
 =?iso-8859-1?Q?wzK5C7qau6RYTuy8C1k1yW2rSi3b4+0Dp0XTRqfHSroEPS0Sw/aQt3PLZ9?=
 =?iso-8859-1?Q?aGGE+Cx4YSCUQUP+AbhAyuMSYvGy93ns93/xbg=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB10110.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(13003099007)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?ge8TwWNs0dyBbAjcZaBOX5p14QqEwYnWTUhpV4cxMNH5H0tHFVJocl6KHo?=
 =?iso-8859-1?Q?za4qKixH5xncUnVCpxY/2/Ya1/C9SNGjHBmeKqoA+1mK8iOuQKQx0/aTUA?=
 =?iso-8859-1?Q?LOGwBWDVbCLvGLS1B6ekH9VhLydGF+SfrPFcbGGgvQDFCCXBM6NR7mIpnp?=
 =?iso-8859-1?Q?zQHfp6dNH1vHehko2POWqWHLfC0qkiXf0/fS/J5tDO9xB60EREOPIqUuLR?=
 =?iso-8859-1?Q?GKnLDdUExKm6Cb5IK6PzaBnLu3s7IpdnFTGmTHi2REQ3PsDcjoUYBYm8W6?=
 =?iso-8859-1?Q?3vI6MhFdfQZCP+32s1QG49d8VpJCaiYtCxezGhNgbenNDAQv7XNrIjjnt7?=
 =?iso-8859-1?Q?nvmlqEysR1ETwvGc5NKT4JD0blKbi9GONy5MCbuE3UNQqUhxSKInO9paYa?=
 =?iso-8859-1?Q?Mw7ntUzH/ntO03cmuuDTomRJMJ5hiUP+B45F31Dxp+hZkIsWvnpPoHtRnE?=
 =?iso-8859-1?Q?jK7ynldufSBqLG8/1q7TDK6TdM8DQb67DYLVwWZwgJ1tIUg0tN/8Jp722Z?=
 =?iso-8859-1?Q?3OxqVl/RSRTRvviK/rS6bSLL7pthDp9wCrey0pykyU8RQDZdtgLjnnanWj?=
 =?iso-8859-1?Q?8skEjIETGl96I3GuanY3m8JogEWXArQ7ajx4CdKtj12fhRzst651CCidf6?=
 =?iso-8859-1?Q?UREMZ2Wm18EiNczqOlYbDXrvbOeqFYj8ApqkSgd6PsYqU7phqkDC55unn6?=
 =?iso-8859-1?Q?lZSBL7kcY71L9XWDbSb2N/OR8WYqu02ePmODyG0YJA7T0pYjZzv0ZXSnMr?=
 =?iso-8859-1?Q?ge2rABaiX8WZmk+oA2/GERGgehdmz7Ssl7UV2xiUryIfK7wX6twYXUxBju?=
 =?iso-8859-1?Q?wZUGE70W6b8271WSOvIxypuY7gdqfbPDMg1y3ZoaW5xG1RaBl+RGYD7HbX?=
 =?iso-8859-1?Q?y4qKf45xNH4V6Yh/kEOyuPvsPou9+iRQWfZHcDABsUw+xQgEZWGDt0dn97?=
 =?iso-8859-1?Q?5tgZQo/OgGy5zLGBB1LWkUdTd2KO7XXlsQo58Zc31H2jvxXAsjcnhbZpqQ?=
 =?iso-8859-1?Q?4Q+OVQtWJkz/ZLmCyzY6RX+r0IKKdcWS91rfnuHPODIqTnIsfRZtnUG7Vo?=
 =?iso-8859-1?Q?CEnMnJZO0n1RBnqQkvcwO6zDQXM/hKX1TzOz8l9RVfDKwtm3u8+2MLw0K+?=
 =?iso-8859-1?Q?GpPDZx3xEAG/dxbbkIqcbRGBsXMHNIKO0rnLNKKejfZ2FNHQtiPrfuOARA?=
 =?iso-8859-1?Q?eJgN8QZjQaniYs4THmVmauFQ+wRy43vTKH+Zbk4viZwMCofRY+XoQIhdkW?=
 =?iso-8859-1?Q?+KddLNkrsEXMzlmuoEX1Iofq78K3o4bLeua3S1j4jC9x1ZhswAMbfgr0YX?=
 =?iso-8859-1?Q?d5ipKW4QriTZeczj8wXukFXR7wzqH8Vzj6vBAL9p/ia4QAkO6/zavqXrDq?=
 =?iso-8859-1?Q?M7IctngAi2nYi49Yz8rVs0BcsTfxQciRoFa5hLvuknR1cASB0yA8zRcsBm?=
 =?iso-8859-1?Q?RkK+bB2ZC0QPpg4rw7F+zOwQpurAI7+EO6Dk+XqYi4XiP1XbrNPJ8lgD9L?=
 =?iso-8859-1?Q?qDIwntATxj/ZmoZ8lluQDtzRWWM9PMtcA2SVx8kR2vxgR5jlKqEugPb/jU?=
 =?iso-8859-1?Q?H+k1nTpHErm/5StMjaasHd/OwXR5SsASKx2g8byRY0H4OZbYRCsauOKJ6Z?=
 =?iso-8859-1?Q?XH5EMM7iJVhz62Q3MCJSZBPEgaLmCtjeKpq9/X2OBlQDpRHNF7Q/J1yQ?=
 =?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: AS2PR03MB10110.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 00457dab-e74c-4015-a244-08dd776a8d8b
X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Apr 2025 13:29:28.0904
 (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: 9KYoBLVVeDTYZ3yZchuMrGp3nla5tPgV9gTeLMFjH939kyQoyjR6tXuCzhg++yW+xKhYPg/bezbWKXrbsrd0Vw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR03MB7468

From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

Add support for Renesas R-Car Gen4 PCI host controller, specifically
targeting the S4 and V4H SoCs. The implementation includes configuration
read/write operations for both root and child buses. For accessing the
child bus, iATU is used for address translation.

Code common to all DesignWare PCI host controllers is located in a
separate file to allow for easy reuse in other DesignWare-based PCI
host controllers.

Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
---
v2->v3:
* add priv allocation to dw_pcie_host_probe

v1->v2:
* move designware code in a separate file
---
 xen/arch/arm/pci/Makefile         |   2 +
 xen/arch/arm/pci/pci-designware.c | 403 ++++++++++++++++++++++++++++++
 xen/arch/arm/pci/pci-designware.h | 102 ++++++++
 xen/arch/arm/pci/pci-host-rcar4.c | 103 ++++++++
 4 files changed, 610 insertions(+)
 create mode 100644 xen/arch/arm/pci/pci-designware.c
 create mode 100644 xen/arch/arm/pci/pci-designware.h
 create mode 100644 xen/arch/arm/pci/pci-host-rcar4.c

diff --git a/xen/arch/arm/pci/Makefile b/xen/arch/arm/pci/Makefile
index 1d045ade01..ca6135e282 100644
--- a/xen/arch/arm/pci/Makefile
+++ b/xen/arch/arm/pci/Makefile
@@ -4,3 +4,5 @@ obj-y +=3D pci-host-generic.o
 obj-y +=3D pci-host-common.o
 obj-y +=3D ecam.o
 obj-y +=3D pci-host-zynqmp.o
+obj-y +=3D pci-designware.o
+obj-y +=3D pci-host-rcar4.o
diff --git a/xen/arch/arm/pci/pci-designware.c b/xen/arch/arm/pci/pci-desig=
nware.c
new file mode 100644
index 0000000000..dcbd07ced3
--- /dev/null
+++ b/xen/arch/arm/pci/pci-designware.c
@@ -0,0 +1,403 @@
+/*
+ * Based on Linux drivers/pci/controller/pci-host-common.c
+ * Based on Linux drivers/pci/controller/pci-host-generic.c
+ * Based on xen/arch/arm/pci/pci-host-generic.c
+ *
+ * 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.
+ *
+ * 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.
+ *
+ * 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/delay.h>
+#include <asm/io.h>
+
+#include "pci-designware.h"
+/**
+ * upper_32_bits - return bits 32-63 of a number
+ * @n: the number we're accessing
+ *
+ * A basic shift-right of a 64- or 32-bit quantity.  Use this to suppress
+ * the "right shift count >=3D width of type" warning when that quantity i=
s
+ * 32-bits.
+ */
+#define upper_32_bits(n) ((uint32_t)(((n) >> 16) >> 16))
+
+/**
+ * lower_32_bits - return bits 0-31 of a number
+ * @n: the number we're accessing
+ */
+#define lower_32_bits(n) ((uint32_t)((n) & 0xffffffff))
+
+static int dw_pcie_read(void __iomem *addr, int size, uint32_t *val)
+{
+    if ( !IS_ALIGNED((uintptr_t)addr, size) )
+    {
+        *val =3D 0;
+        return PCIBIOS_BAD_REGISTER_NUMBER;
+    }
+
+    if ( size =3D=3D 4 )
+        *val =3D readl(addr);
+    else if ( size =3D=3D 2 )
+        *val =3D readw(addr);
+    else if ( size =3D=3D 1 )
+        *val =3D readb(addr);
+    else
+    {
+        *val =3D 0;
+        return PCIBIOS_BAD_REGISTER_NUMBER;
+    }
+
+    return PCIBIOS_SUCCESSFUL;
+}
+
+static int dw_pcie_write(void __iomem *addr, int size, uint32_t val)
+{
+    if ( !IS_ALIGNED((uintptr_t)addr, size) )
+        return PCIBIOS_BAD_REGISTER_NUMBER;
+
+    if ( size =3D=3D 4 )
+        writel(val, addr);
+    else if ( size =3D=3D 2 )
+        writew(val, addr);
+    else if ( size =3D=3D 1 )
+        writeb(val, addr);
+    else
+        return PCIBIOS_BAD_REGISTER_NUMBER;
+
+    return PCIBIOS_SUCCESSFUL;
+}
+
+static uint32_t dw_pcie_read_dbi(struct pci_host_bridge *bridge, uint32_t =
reg,
+                                 size_t size)
+{
+    void __iomem *addr =3D bridge->cfg->win + reg;
+    uint32_t val;
+
+    dw_pcie_read(addr, size, &val);
+    return val;
+}
+
+static void dw_pcie_write_dbi(struct pci_host_bridge *bridge, uint32_t reg=
,
+                              size_t size, uint32_t val)
+{
+    void __iomem *addr =3D bridge->cfg->win + reg;
+
+    dw_pcie_write(addr, size, val);
+}
+
+static uint32_t dw_pcie_readl_dbi(struct pci_host_bridge *bridge, uint32_t=
 reg)
+{
+    return dw_pcie_read_dbi(bridge, reg, sizeof(uint32_t));
+}
+
+static void dw_pcie_writel_dbi(struct pci_host_bridge *pci, uint32_t reg,
+                               uint32_t val)
+{
+    dw_pcie_write_dbi(pci, reg, sizeof(uint32_t), val);
+}
+
+static void dw_pcie_read_iatu_unroll_enabled(struct pci_host_bridge *bridg=
e)
+{
+    struct dw_pcie_priv *priv =3D bridge->priv;
+    uint32_t val;
+
+    val =3D dw_pcie_readl_dbi(bridge, PCIE_ATU_VIEWPORT);
+    if ( val =3D=3D 0xffffffff )
+        priv->iatu_unroll_enabled =3D true;
+
+    printk(XENLOG_DEBUG "%s iATU unroll: %sabled\n",
+           dt_node_full_name(bridge->dt_node),
+           priv->iatu_unroll_enabled ? "en" : "dis");
+}
+
+static uint32_t dw_pcie_readl_atu(struct pci_host_bridge *pci, uint32_t re=
g)
+{
+    struct dw_pcie_priv *priv =3D pci->priv;
+    int ret;
+    uint32_t val;
+
+    ret =3D dw_pcie_read(priv->atu_base + reg, 4, &val);
+    if ( ret )
+        printk(XENLOG_ERR "Read ATU address failed\n");
+
+    return val;
+}
+
+static void dw_pcie_writel_atu(struct pci_host_bridge *pci, uint32_t reg,
+                               uint32_t val)
+{
+    struct dw_pcie_priv *priv =3D pci->priv;
+    int ret;
+
+    ret =3D dw_pcie_write(priv->atu_base + reg, 4, val);
+    if ( ret )
+        printk(XENLOG_ERR "Write ATU address failed\n");
+}
+
+static uint32_t dw_pcie_readl_ob_unroll(struct pci_host_bridge *pci,
+                                        uint32_t index, uint32_t reg)
+{
+    uint32_t offset =3D PCIE_GET_ATU_OUTB_UNR_REG_OFFSET(index);
+
+    return dw_pcie_readl_atu(pci, offset + reg);
+}
+
+static void dw_pcie_writel_ob_unroll(struct pci_host_bridge *pci,
+                                     uint32_t index, uint32_t reg, uint32_=
t val)
+{
+    uint32_t offset =3D PCIE_GET_ATU_OUTB_UNR_REG_OFFSET(index);
+
+    dw_pcie_writel_atu(pci, offset + reg, val);
+}
+
+static uint32_t dw_pcie_enable_ecrc(uint32_t val)
+{
+    ASSERT_UNREACHABLE();
+    return 0;
+}
+
+static void dw_pcie_prog_outbound_atu_unroll(struct pci_host_bridge *pci,
+                                             uint8_t func_no, int index,
+                                             int type, uint64_t cpu_addr,
+                                             uint64_t pci_addr, uint64_t s=
ize)
+{
+    struct dw_pcie_priv *priv =3D pci->priv;
+    uint32_t retries, val;
+    uint64_t limit_addr =3D cpu_addr + size - 1;
+
+    dw_pcie_writel_ob_unroll(pci, index, PCIE_ATU_UNR_LOWER_BASE,
+                             lower_32_bits(cpu_addr));
+    dw_pcie_writel_ob_unroll(pci, index, PCIE_ATU_UNR_UPPER_BASE,
+                             upper_32_bits(cpu_addr));
+    dw_pcie_writel_ob_unroll(pci, index, PCIE_ATU_UNR_LOWER_LIMIT,
+                             lower_32_bits(limit_addr));
+    dw_pcie_writel_ob_unroll(pci, index, PCIE_ATU_UNR_UPPER_LIMIT,
+                             upper_32_bits(limit_addr));
+    dw_pcie_writel_ob_unroll(pci, index, PCIE_ATU_UNR_LOWER_TARGET,
+                             lower_32_bits(pci_addr));
+    dw_pcie_writel_ob_unroll(pci, index, PCIE_ATU_UNR_UPPER_TARGET,
+                             upper_32_bits(pci_addr));
+    val =3D type | PCIE_ATU_FUNC_NUM(func_no);
+    val =3D upper_32_bits(size - 1) ? val | PCIE_ATU_INCREASE_REGION_SIZE =
: val;
+    if ( priv->version =3D=3D 0x490A )
+        val =3D dw_pcie_enable_ecrc(val);
+    dw_pcie_writel_ob_unroll(pci, index, PCIE_ATU_UNR_REGION_CTRL1, val);
+    dw_pcie_writel_ob_unroll(pci, index, PCIE_ATU_UNR_REGION_CTRL2,
+                             PCIE_ATU_ENABLE);
+
+    /*
+     * Make sure ATU enable takes effect before any subsequent config
+     * and I/O accesses.
+     */
+    for ( retries =3D 0; retries < LINK_WAIT_MAX_IATU_RETRIES; retries++ )
+    {
+        val =3D dw_pcie_readl_ob_unroll(pci, index, PCIE_ATU_UNR_REGION_CT=
RL2);
+        if ( val & PCIE_ATU_ENABLE )
+            return;
+
+        mdelay(LINK_WAIT_IATU);
+    }
+    printk(XENLOG_ERR "Outbound iATU is not being enabled\n");
+}
+
+static void __dw_pcie_prog_outbound_atu(struct pci_host_bridge *pci,
+                                        uint8_t func_no, int index, int ty=
pe,
+                                        uint64_t cpu_addr, uint64_t pci_ad=
dr,
+                                        uint64_t size)
+{
+    struct dw_pcie_priv *priv =3D pci->priv;
+    uint32_t retries, val;
+
+    if ( priv->iatu_unroll_enabled )
+    {
+        dw_pcie_prog_outbound_atu_unroll(pci, func_no, index, type, cpu_ad=
dr,
+                                         pci_addr, size);
+        return;
+    }
+
+    dw_pcie_writel_dbi(pci, PCIE_ATU_VIEWPORT,
+                       PCIE_ATU_REGION_OUTBOUND | index);
+    dw_pcie_writel_dbi(pci, PCIE_ATU_LOWER_BASE, lower_32_bits(cpu_addr));
+    dw_pcie_writel_dbi(pci, PCIE_ATU_UPPER_BASE, upper_32_bits(cpu_addr));
+    dw_pcie_writel_dbi(pci, PCIE_ATU_LIMIT, lower_32_bits(cpu_addr + size =
- 1));
+    if ( priv->version >=3D 0x460A )
+        dw_pcie_writel_dbi(pci, PCIE_ATU_UPPER_LIMIT,
+                           upper_32_bits(cpu_addr + size - 1));
+    dw_pcie_writel_dbi(pci, PCIE_ATU_LOWER_TARGET, lower_32_bits(pci_addr)=
);
+    dw_pcie_writel_dbi(pci, PCIE_ATU_UPPER_TARGET, upper_32_bits(pci_addr)=
);
+    val =3D type | PCIE_ATU_FUNC_NUM(func_no);
+    val =3D ((upper_32_bits(size - 1)) && (priv->version >=3D 0x460A))
+              ? val | PCIE_ATU_INCREASE_REGION_SIZE
+              : val;
+    if ( priv->version =3D=3D 0x490A )
+        val =3D dw_pcie_enable_ecrc(val);
+    dw_pcie_writel_dbi(pci, PCIE_ATU_CR1, val);
+    dw_pcie_writel_dbi(pci, PCIE_ATU_CR2, PCIE_ATU_ENABLE);
+
+    /*
+     * Make sure ATU enable takes effect before any subsequent config
+     * and I/O accesses.
+     */
+    for ( retries =3D 0; retries < LINK_WAIT_MAX_IATU_RETRIES; retries++ )
+    {
+        val =3D dw_pcie_readl_dbi(pci, PCIE_ATU_CR2);
+        if ( val & PCIE_ATU_ENABLE )
+            return;
+
+        mdelay(LINK_WAIT_IATU);
+    }
+    printk(XENLOG_ERR "Outbound iATU is not being enabled\n");
+}
+
+static void dw_pcie_prog_outbound_atu(struct pci_host_bridge *pci, int ind=
ex,
+                                      int type, uint64_t cpu_addr,
+                                      uint64_t pci_addr, uint64_t size)
+{
+    __dw_pcie_prog_outbound_atu(pci, 0, index, type, cpu_addr, pci_addr, s=
ize);
+}
+
+void dw_pcie_set_version(struct pci_host_bridge *bridge, unsigned int vers=
ion)
+{
+    struct dw_pcie_priv *priv =3D bridge->priv;
+
+    priv->version =3D version;
+}
+
+void __iomem *dw_pcie_child_map_bus(struct pci_host_bridge *bridge,
+                                    pci_sbdf_t sbdf, uint32_t where)
+{
+    uint32_t busdev;
+
+    busdev =3D PCIE_ATU_BUS(sbdf.bus) | PCIE_ATU_DEV(PCI_SLOT(sbdf.devfn))=
 |
+             PCIE_ATU_FUNC(PCI_FUNC(sbdf.devfn));
+
+    /* FIXME: Parent is the root bus, so use PCIE_ATU_TYPE_CFG0. */
+    dw_pcie_prog_outbound_atu(bridge, PCIE_ATU_REGION_INDEX1,
+                              PCIE_ATU_TYPE_CFG0, bridge->child_cfg->phys_=
addr,
+                              busdev, bridge->child_cfg->size);
+
+    return bridge->child_cfg->win + where;
+}
+
+int dw_pcie_child_config_read(struct pci_host_bridge *bridge, pci_sbdf_t s=
bdf,
+                              uint32_t reg, uint32_t len, uint32_t *value)
+{
+    struct dw_pcie_priv *priv =3D bridge->priv;
+    int ret;
+
+    /*
+     * FIXME: we cannot read iATU settings at the early initialization
+     * (probe) as the host's HW is not yet initialized at that phase.
+     * This read operation is the very first thing Domain-0 will do
+     * during its initialization, so take this opportunity and read
+     * iATU setting now.
+     */
+    if ( unlikely(!priv->iatu_unroll_initilized) )
+    {
+        dw_pcie_read_iatu_unroll_enabled(bridge);
+        priv->iatu_unroll_initilized =3D true;
+    }
+
+    ret =3D pci_generic_config_read(bridge, sbdf, reg, len, value);
+    if ( !ret && (priv->num_viewport <=3D 2) )
+        dw_pcie_prog_outbound_atu(bridge, PCIE_ATU_REGION_INDEX1,
+                                  PCIE_ATU_TYPE_IO,
+                                  bridge->child_cfg->phys_addr, 0,
+                                  bridge->child_cfg->size);
+
+    return ret;
+}
+
+int dw_pcie_child_config_write(struct pci_host_bridge *bridge, pci_sbdf_t =
sbdf,
+                               uint32_t reg, uint32_t len, uint32_t value)
+{
+    struct dw_pcie_priv *priv =3D bridge->priv;
+    int ret;
+
+    ret =3D pci_generic_config_write(bridge, sbdf, reg, len, value);
+    if ( !ret && (priv->num_viewport <=3D 2) )
+        dw_pcie_prog_outbound_atu(bridge, PCIE_ATU_REGION_INDEX1,
+                                  PCIE_ATU_TYPE_IO,
+                                  bridge->child_cfg->phys_addr, 0,
+                                  bridge->child_cfg->size);
+    return ret;
+}
+
+bool __init dw_pcie_child_need_p2m_hwdom_mapping(struct domain *d,
+                                                 struct pci_host_bridge *b=
ridge,
+                                                 uint64_t addr)
+{
+    struct pci_config_window *cfg =3D bridge->child_cfg;
+
+    /*
+     * We do not want ECAM address space to be mapped in Domain-0's p2m,
+     * so we can trap access to it.
+     */
+    return cfg->phys_addr !=3D addr;
+}
+
+struct pci_host_bridge *__init
+dw_pcie_host_probe(struct dt_device_node *dev, const void *data,
+                   const struct pci_ecam_ops *ops,
+                   const struct pci_ecam_ops *child_ops)
+{
+    struct pci_host_bridge *bridge;
+    struct dw_pcie_priv *priv;
+
+    paddr_t atu_phys_addr;
+    paddr_t atu_size;
+    int atu_idx, ret;
+
+    bridge =3D pci_host_common_probe(dev, ops, child_ops);
+    if ( IS_ERR(bridge) )
+        return bridge;
+
+    priv =3D xzalloc_bytes(sizeof(struct dw_pcie_priv));
+    if ( !priv )
+        return ERR_PTR(-ENOMEM);
+
+    bridge->priv =3D priv;
+
+    atu_idx =3D dt_property_match_string(dev, "reg-names", "atu");
+    if ( atu_idx < 0 )
+    {
+        printk(XENLOG_ERR "Cannot find \"atu\" range index in device tree\=
n");
+        return ERR_PTR(atu_idx);
+    }
+    ret =3D dt_device_get_address(dev, atu_idx, &atu_phys_addr, &atu_size)=
;
+    if ( ret )
+    {
+        printk(XENLOG_ERR "Cannot find \"atu\" range in device tree\n");
+        return ERR_PTR(ret);
+    }
+    printk("iATU at [mem 0x%" PRIpaddr "-0x%" PRIpaddr "]\n", atu_phys_add=
r,
+           atu_phys_addr + atu_size - 1);
+    priv->atu_base =3D ioremap_nocache(atu_phys_addr, atu_size);
+    if ( !priv->atu_base )
+    {
+        printk(XENLOG_ERR "iATU ioremap failed\n");
+        return ERR_PTR(ENXIO);
+    }
+
+    if ( !dt_property_read_u32(dev, "num-viewport", &priv->num_viewport) )
+        priv->num_viewport =3D 2;
+
+    /*
+     * FIXME: we cannot read iATU unroll enable now as the host bridge's
+     * HW is not yet initialized by Domain-0: leave it for later.
+     */
+
+    printk(XENLOG_INFO "%s number of view ports: %d\n", dt_node_full_name(=
dev),
+           priv->num_viewport);
+
+    return bridge;
+}
diff --git a/xen/arch/arm/pci/pci-designware.h b/xen/arch/arm/pci/pci-desig=
nware.h
new file mode 100644
index 0000000000..a15ba9a329
--- /dev/null
+++ b/xen/arch/arm/pci/pci-designware.h
@@ -0,0 +1,102 @@
+/*
+ * Based on Linux drivers/pci/controller/pci-host-common.c
+ * Based on Linux drivers/pci/controller/pci-host-generic.c
+ * Based on xen/arch/arm/pci/pci-host-generic.c
+ *
+ * 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.
+ *
+ * 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.
+ *
+ * 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/pci.h>
+#include <xen/init.h>
+
+#ifndef __PCI_DESIGNWARE_H__
+#define __PCI_DESIGNWARE_H__
+
+#define PCIBIOS_SUCCESSFUL              0x00
+#define PCIBIOS_BAD_REGISTER_NUMBER     0x87
+
+#define PCIE_ATU_VIEWPORT               0x900
+#define PCIE_ATU_REGION_OUTBOUND        0
+#define PCIE_ATU_CR1                    0x904
+#define PCIE_ATU_INCREASE_REGION_SIZE   BIT(13, UL)
+#define PCIE_ATU_CR2                    0x908
+#define PCIE_ATU_ENABLE                 BIT(31, UL)
+#define PCIE_ATU_LOWER_BASE             0x90C
+#define PCIE_ATU_UPPER_BASE             0x910
+#define PCIE_ATU_LIMIT                  0x914
+#define PCIE_ATU_LOWER_TARGET           0x918
+#define PCIE_ATU_UPPER_TARGET           0x91C
+#define PCIE_ATU_UPPER_LIMIT            0x924
+
+#define PCIE_ATU_REGION_INDEX1  0x1
+#define PCIE_ATU_TYPE_IO        0x2
+#define PCIE_ATU_TYPE_CFG0      0x4
+
+#define FIELD_PREP(_mask, _val) \
+    (((typeof(_mask))(_val) << (ffs64(_mask) - 1)) & (_mask))
+
+#define PCIE_ATU_BUS(x)         FIELD_PREP(GENMASK(31, 24), x)
+#define PCIE_ATU_DEV(x)         FIELD_PREP(GENMASK(23, 19), x)
+#define PCIE_ATU_FUNC(x)        FIELD_PREP(GENMASK(18, 16), x)
+
+/* Register address builder */
+#define PCIE_GET_ATU_OUTB_UNR_REG_OFFSET(region) \
+    ((region) << 9)
+
+/*
+ * iATU Unroll-specific register definitions
+ * From 4.80 core version the address translation will be made by unroll
+ */
+#define PCIE_ATU_UNR_REGION_CTRL1       0x00
+#define PCIE_ATU_UNR_REGION_CTRL2       0x04
+#define PCIE_ATU_UNR_LOWER_BASE         0x08
+#define PCIE_ATU_UNR_UPPER_BASE         0x0C
+#define PCIE_ATU_UNR_LOWER_LIMIT        0x10
+#define PCIE_ATU_UNR_LOWER_TARGET       0x14
+#define PCIE_ATU_UNR_UPPER_TARGET       0x18
+#define PCIE_ATU_UNR_UPPER_LIMIT        0x20
+
+#define PCIE_ATU_FUNC_NUM(pf)           ((pf) << 20)
+
+/* Parameters for the waiting for iATU enabled routine */
+#define LINK_WAIT_MAX_IATU_RETRIES      5
+#define LINK_WAIT_IATU                  9
+
+struct dw_pcie_priv {
+    uint32_t num_viewport;
+    bool iatu_unroll_initilized;
+    bool iatu_unroll_enabled;
+    void __iomem *atu_base;
+    unsigned int version;
+};
+
+void dw_pcie_set_version(struct pci_host_bridge *bridge, unsigned int vers=
ion);
+
+void __iomem *dw_pcie_child_map_bus(struct pci_host_bridge *bridge,
+                                    pci_sbdf_t sbdf, uint32_t where);
+
+int dw_pcie_child_config_read(struct pci_host_bridge *bridge, pci_sbdf_t s=
bdf,
+                              uint32_t reg, uint32_t len, uint32_t *value)=
;
+
+int dw_pcie_child_config_write(struct pci_host_bridge *bridge, pci_sbdf_t =
sbdf,
+                               uint32_t reg, uint32_t len, uint32_t value)=
;
+
+bool __init dw_pcie_child_need_p2m_hwdom_mapping(struct domain *d,
+                                                 struct pci_host_bridge *b=
ridge,
+                                                 uint64_t addr);
+
+struct pci_host_bridge *__init
+dw_pcie_host_probe(struct dt_device_node *dev, const void *data,
+                   const struct pci_ecam_ops *ops,
+                   const struct pci_ecam_ops *child_ops);
+#endif /* __PCI_DESIGNWARE_H__ */
diff --git a/xen/arch/arm/pci/pci-host-rcar4.c b/xen/arch/arm/pci/pci-host-=
rcar4.c
new file mode 100644
index 0000000000..cae1b4254d
--- /dev/null
+++ b/xen/arch/arm/pci/pci-host-rcar4.c
@@ -0,0 +1,103 @@
+/*
+ * Based on Linux drivers/pci/controller/pci-host-common.c
+ * Based on Linux drivers/pci/controller/pci-host-generic.c
+ * Based on xen/arch/arm/pci/pci-host-generic.c
+ *
+ * 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.
+ *
+ * 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.
+ *
+ * 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/init.h>
+#include <xen/pci.h>
+
+#include <asm/device.h>
+#include <asm/io.h>
+#include <asm/pci.h>
+
+#include "pci-designware.h"
+
+#define RCAR4_DWC_VERSION       0x520A
+
+/*
+ * PCI host bridges often have different ways to access the root and child
+ * bus config spaces:
+ *   "dbi"   : the aperture where root port's own configuration registers
+ *             are available.
+ *   "config": child's configuration space
+ *   "atu"   : iATU registers for DWC version 4.80 or later
+ */
+static int __init rcar4_cfg_reg_index(struct dt_device_node *np)
+{
+    return dt_property_match_string(np, "reg-names", "dbi");
+}
+
+static int __init rcar4_child_cfg_reg_index(struct dt_device_node *np)
+{
+    return dt_property_match_string(np, "reg-names", "config");
+}
+
+/* ECAM ops */
+const struct pci_ecam_ops rcar4_pcie_ops =3D {
+    .bus_shift  =3D 20,
+    .cfg_reg_index =3D rcar4_cfg_reg_index,
+    .pci_ops    =3D {
+        .map_bus                =3D pci_ecam_map_bus,
+        .read                   =3D pci_generic_config_read,
+        .write                  =3D pci_generic_config_write,
+        .need_p2m_hwdom_mapping =3D pci_ecam_need_p2m_hwdom_mapping,
+    }
+};
+
+const struct pci_ecam_ops rcar4_pcie_child_ops =3D {
+    .bus_shift  =3D 20,
+    .cfg_reg_index =3D rcar4_child_cfg_reg_index,
+    .pci_ops    =3D {
+        .map_bus                =3D dw_pcie_child_map_bus,
+        .read                   =3D dw_pcie_child_config_read,
+        .write                  =3D dw_pcie_child_config_write,
+        .need_p2m_hwdom_mapping =3D dw_pcie_child_need_p2m_hwdom_mapping,
+    }
+};
+
+static const struct dt_device_match __initconstrel rcar4_pcie_dt_match[] =
=3D {
+    { .compatible =3D "renesas,r8a779f0-pcie" },
+    { .compatible =3D "renesas,r8a779g0-pcie" },
+    {},
+};
+
+static int __init pci_host_generic_probe(struct dt_device_node *dev,
+                                         const void *data)
+{
+    struct pci_host_bridge *bridge;
+
+    bridge =3D dw_pcie_host_probe(dev, data, &rcar4_pcie_ops,
+                                &rcar4_pcie_child_ops);
+
+    dw_pcie_set_version(bridge, RCAR4_DWC_VERSION);
+
+    return 0;
+}
+
+DT_DEVICE_START(pci_gen, "PCI HOST R-CAR GEN4", DEVICE_PCI_HOSTBRIDGE)
+.dt_match =3D rcar4_pcie_dt_match,
+.init =3D pci_host_generic_probe,
+DT_DEVICE_END
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Wed Apr 09 13:33:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 13:33:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.944120.1342662 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2VZ0-0007Vp-Fq; Wed, 09 Apr 2025 13:33:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 944120.1342662; Wed, 09 Apr 2025 13:33:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2VZ0-0007Vi-D9; Wed, 09 Apr 2025 13:33:58 +0000
Received: by outflank-mailman (input) for mailman id 944120;
 Wed, 09 Apr 2025 13:33: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=Ii2m=W3=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u2VYz-0007Vc-6R
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 13:33:57 +0000
Received: from mail-pf1-x42a.google.com (mail-pf1-x42a.google.com
 [2607:f8b0:4864:20::42a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 48b0da96-1547-11f0-9eab-5ba50f476ded;
 Wed, 09 Apr 2025 15:33:56 +0200 (CEST)
Received: by mail-pf1-x42a.google.com with SMTP id
 d2e1a72fcca58-736b0c68092so5622186b3a.0
 for <xen-devel@lists.xenproject.org>; Wed, 09 Apr 2025 06:33:56 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 d2e1a72fcca58-73bb1e383a3sm1312773b3a.92.2025.04.09.06.33.53
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 09 Apr 2025 06:33: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: 48b0da96-1547-11f0-9eab-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744205635; x=1744810435; 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=xVH6j9br4S89M6ArmkAQrAINXsXoDOw625C9ofa8URA=;
        b=WmqgtDAt0PL3SJQ/MGHZnauD6Bu4EYV4A9MUh4VLg7tQfjHeP0nyN35SCztzoDqQWP
         8o/Q96vcxMgS+a2qeOBlgqVQAhqYhagF2CI7QOKyzT20Wc9t6pPLpqOpMudksKeFQMlX
         4AZbQMz4nmobHgPyVNRSvsFxIUBE7Q/IxYhwc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744205635; x=1744810435;
        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=xVH6j9br4S89M6ArmkAQrAINXsXoDOw625C9ofa8URA=;
        b=XalTbJ5QLFIPtdmHyss5bYz13kVTRbfZN3j/LXnAB0uZLSUBCrwOd/kYjVwTR0NxDE
         hqx5qAFd/FN6DEAXOTrnUWfMZ6z69+uw5EzzU/AbiDBILjtbt38vC/ChsnUVqlNpWRYR
         xd/LyUAqJnnB57jFjgGSplGjUdYaakD9+MLdM/hOkHxriU0xp+VRc7sXjSXNfC6EWG+h
         PnHg78yOvPiXk6uowdj2nl+1NGNCWGHvvsfxAH9s69IP5nE6SWBEsfVecvqFuFHlVjyZ
         li8FzjZijR0TjCfylLhN9gB3kf7KSlUNRokbNAHGJkVE93usothRcKO/KnZB2OhTOho+
         AHQg==
X-Forwarded-Encrypted: i=1; AJvYcCUF8awKzl60fKJIElp/woigeGVG+0TKGBA7l9OFVOlvn+zdQ004IzbcXzjZng6UcZURFNi7Dtbl0aA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzctVm+VvJxj29qmzUKj8VY0qS05+DrSgUbosmP+EG+0XgXn8kx
	IJFHeNgrO4EK0dftg5Li+/w61Oy0cDfbfQ24WTuKEFDDUQYbdxat6SlRF5tEjc8=
X-Gm-Gg: ASbGncuSXz02YPQTMM36/DDrjA22hT3LgYmGHPtyLCUObRZipCCnxDygWpmTFffKe1z
	wbPPTCfGHSjsFW7w8rABYKW4r1phrhjwWYNzpbXvlbCb4FHiaRvewYGBHFAxTHd+Ygjb7rHxc+r
	DmqUs0rqulDXnJHdix87yBKZYfGYokUPeV+gZlu99WCLMg2cVIllRy/1p0FfbHDe504WepMJ03e
	csH3oMY8OpmKfK0f6JljGfrBuq5WAmFIMbso/T9X/HllEZcG6YbLqDvLsllcvh+oNIzYDkL3Fn4
	j7lDBQ90vV242kFxHMnavJfQmrLf+pn3Oob2nVjeHntMYw==
X-Google-Smtp-Source: AGHT+IFx784XjUIEOB86Iy5weZBleoVkDoKVbO5LMQRvyej0xyaS76UOfGwjXIfWxlgm+lI7/LpZog==
X-Received: by 2002:a05:6a00:801:b0:736:a82a:58ad with SMTP id d2e1a72fcca58-73bae529f06mr2911342b3a.15.1744205634776;
        Wed, 09 Apr 2025 06:33:54 -0700 (PDT)
Date: Wed, 9 Apr 2025 15:33:49 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Marek Marczykowski <marmarek@invisiblethingslab.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH 2/2] x86/hvm: fix write emulation of RO ranges
Message-ID: <Z_Z3PYYSBH3QWioF@macbook.lan>
References: <20250408093156.83277-1-roger.pau@citrix.com>
 <20250408093156.83277-3-roger.pau@citrix.com>
 <16c73cae-2ac0-4811-97d3-b25c95ed5abc@suse.com>
 <Z_Y4xFzaltr_XKO4@macbook.lan>
 <ef0b6eea-a7e5-406d-a8ba-062b3c6e17e1@suse.com>
 <Z_ZOWAttoFNoFYCV@macbook.lan>
 <2df78a5d-2f9f-4866-81cc-03ae09c76d50@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <2df78a5d-2f9f-4866-81cc-03ae09c76d50@suse.com>

On Wed, Apr 09, 2025 at 02:59:45PM +0200, Jan Beulich wrote:
> On 09.04.2025 12:39, Roger Pau Monné wrote:
> > On Wed, Apr 09, 2025 at 12:00:16PM +0200, Jan Beulich wrote:
> >> On 09.04.2025 11:07, Roger Pau Monné wrote:
> >>> On Tue, Apr 08, 2025 at 03:57:17PM +0200, Jan Beulich wrote:
> >>>> On 08.04.2025 11:31, Roger Pau Monne wrote:
> >>>>> When running on AMD hardware in HVM mode the guest linear address (GLA)
> >>>>> will not be provided to hvm_emulate_one_mmio(), and instead is
> >>>>> unconditionally set of ~0.  As a consequence mmio_ro_emulated_write() will
> >>>>> always report an error, as the fault GLA generated by the emulation of the
> >>>>> access won't be ~0.
> >>>>
> >>>> Which means subpage_mmio_write_accept() is flawed, too, on AMD (or more
> >>>> generally whenever .gla_valid isn't set).
> >>>
> >>> Oh, yes, good catch.  I didn't notice that one.  We should move all
> >>> those checks to use a paddr rather than a gla.
> >>
> >> Really that function could just be passed the offset into the page.
> >>
> >>>>> Fix this by only checking for the fault GLA in mmio_ro_emulated_write()
> >>>>> when the guest is PV.
> >>>>
> >>>> This narrows checking too much, imo. For VT-x we could continue to do so,
> >>>> provided we pass e.g. npfec down into hvm_emulate_one_mmio(), i.e. make
> >>>> the gla_valid flag visible there.
> >>>
> >>> I don't think we should rely on the gla at all in
> >>> mmio_ro_emulated_write(), and instead just use the physical address.
> >>
> >> But you can't validate a physical address against a CR2 value. And I view
> >> this validation as meaningful, to guard (best effort, but still) against
> >> e.g. insn re-writing under our feet.
> > 
> > But we have the mfn in mmio_ro_ctxt, and could possibly use that to
> > validate?  I could expand the context to include the offset also, so
> > that we could fully validate it.
> 
> How would you use the MFN to validate against the VA in CR2?

I would use hvmemul_virtual_to_linear() and hvm_translate_get_page()
to get the underlying mfn of the linear address.  But maybe there's a
part of this that I'm missing, I've certainly haven't tried to
implement any of it.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Apr 09 13:37:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 13:37:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.944133.1342671 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2Vbx-00083V-SW; Wed, 09 Apr 2025 13:37:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 944133.1342671; Wed, 09 Apr 2025 13: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 1u2Vbx-00083O-Po; Wed, 09 Apr 2025 13:37:01 +0000
Received: by outflank-mailman (input) for mailman id 944133;
 Wed, 09 Apr 2025 13:37:01 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=fbf/=W3=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u2Vbx-00083I-1m
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 13:37:01 +0000
Received: from mail-wr1-x42d.google.com (mail-wr1-x42d.google.com
 [2a00:1450:4864:20::42d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b6b7e0bf-1547-11f0-9eab-5ba50f476ded;
 Wed, 09 Apr 2025 15:37:00 +0200 (CEST)
Received: by mail-wr1-x42d.google.com with SMTP id
 ffacd0b85a97d-39c30d9085aso4129983f8f.1
 for <xen-devel@lists.xenproject.org>; Wed, 09 Apr 2025 06:37:00 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43f207aed49sm20048615e9.34.2025.04.09.06.36.58
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 09 Apr 2025 06:36: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: b6b7e0bf-1547-11f0-9eab-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744205820; x=1744810620; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Qdy+BT8jpIRziyBlF8uwp4Q/AJBaxmsSRuX8xG254QE=;
        b=He+JbbLWWIBlIqEKHiYl+4H41/8gYq5IMdTqEeLia8CHPxPN9fPTqly6ObI08Yy9yT
         Xgt2q5U138WR40ITyI0DGfhjHN+MhtcJPDeBZ56/eMv1BKdjUy0bKQVgwno2R2A6Jr6J
         YQ8byOgIDHzLm8XuRTVuc1GfbI5KV8el/WdoY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744205820; x=1744810620;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Qdy+BT8jpIRziyBlF8uwp4Q/AJBaxmsSRuX8xG254QE=;
        b=Fv+zqmc3TmEU2yEmym0bZTM64+KVLT0tOovviW3Oxvb23qvrsEu2Xn/8K4OPwAi3c7
         q+2TGUUvhXpfJsekSOMgLernfNhg5KRkT6Z9CBGquUR/WegpgroFCCOa1/3eHK6gPem6
         5lCQ1SLGr/Um30EmYfzjgdNrm9lNAwixABGJh9PoTrvBlcN3jsngGN2ry200CeDNRqc3
         YWP3mO5bJOqeDUS6Flgh/k2/l4Ss0gRkV6am205ZWLNxG+JtZCKJKsgG7SFeTkxqAFOY
         AURLkyLHejM0O15IVK8QfiYHipLsiAJxNlcryxeIJH6atY62nJgXBlcK7/HX58xucgjJ
         5I8A==
X-Gm-Message-State: AOJu0Yw7wFyRfXA+peamp156Xon8WTcHfBcye5Ij8SVA5Kl4Jll7WwYt
	j0W0CGeUQyN7sMi8dlF0BmuhQIGCTYRYjsgwK7nCZcSSIjB/F0BVYXdj91+TTE4=
X-Gm-Gg: ASbGncsHrVeuglSo9nEVXDuYXuoaNqhCoyA/II9BhxvprEKTF85aC3vO4Vcxwul9rCn
	l5TPkNYQsVOCMTnV2UP8Rt6RVnvdkkYaM4rnKVLMDAg9BLPTYDlLkoSp5gaTFgeDNWVJGqF9zkM
	2OT2rIiEaDAafFKzmRg8V8054Y9iseGNKdvSPYJmXJbFdor3O0w72qdc1QiXN6nVxVpsLlrNmXt
	dDtJv6nCfgmDK7F1o3XGEdKuzERThMY7T261A2StSOZVDLXiQstCi8tL6yh9ITA5VLLCtclg4a+
	2OfexSndVm7m6wVjiA6RAAHOU+qMYueYdYyriHC0emncz/IxXiBpvYL7xAI4JmyW3SHVVfJOC26
	YYYHTvi+eRLVHTbeX
X-Google-Smtp-Source: AGHT+IGKGMhNDmJ1yYBH/TwjZuHuteYKw1O5CgM7Nk2QB4ksRClL+s5qICBEf5NbExpc8ALEkDeUyg==
X-Received: by 2002:a05:6000:40d9:b0:39a:c9ed:8555 with SMTP id ffacd0b85a97d-39d88539008mr2695662f8f.23.1744205819568;
        Wed, 09 Apr 2025 06:36:59 -0700 (PDT)
Message-ID: <c7bb4674-c3e7-48ff-83f3-52d4595d9fca@citrix.com>
Date: Wed, 9 Apr 2025 14:36:58 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] CI: Update x86 tests from Linux 6.1.19 to 6.6.56
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.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: <20250409130505.2011604-1-andrew.cooper3@citrix.com>
 <Z_Z2F4EvxqPB35bh@mail-itl>
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: <Z_Z2F4EvxqPB35bh@mail-itl>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 09/04/2025 2:28 pm, Marek Marczykowski-Górecki wrote:
> On Wed, Apr 09, 2025 at 02:05:05PM +0100, Andrew Cooper wrote:
>> Linux 6.6.56 was already added to test-artifacts for the argo testing, and
>> this removes one moving part while cleaning things up.
>>
>> Drop the associated export job, and dockerfile.
> My hw12 runner series adds CONFIG_USB_RTL8152, there are also other
> series that needs extending kernel config. Is there some better way of
> handling such series than sending patches to two repositories? Maybe
> test-artifacts.git scripts could pull some parts from xen.git? But the
> committing order would still be weird (commit kernel change into
> xen.git, rebuild test-artifacts, commit the rest to xen.git)...

Yes, I'm aware.  I'm trying to get us down to 1 way of doing artefacts,
rather than continuing the hybrid scheme.  I have a *lot* of changes to
test-artefacts to post too.

When that's done, updating the config (or another aspect of the
artefact) should just be a change to test-artefacts, with no change to Xen.

Updating the versions will require a patch to test-artefacts first, then
one to Xen to start using it.

>
>> 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: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
>>
>> https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/1760198654
> This still waits in the queue for adl and kbl. But should be good, given
> it worked also with 6.12.
>

It worked in local smoke tests too.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Apr 09 13:50:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 13:50:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.944163.1342713 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2Vop-0004N1-8l; Wed, 09 Apr 2025 13:50:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 944163.1342713; Wed, 09 Apr 2025 13:50: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 1u2Vop-0004Mu-5y; Wed, 09 Apr 2025 13:50:19 +0000
Received: by outflank-mailman (input) for mailman id 944163;
 Wed, 09 Apr 2025 13:50: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=5vFf=W3=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u2Von-0004Mo-No
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 13:50:17 +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 91253fbe-1549-11f0-9eab-5ba50f476ded;
 Wed, 09 Apr 2025 15:50:16 +0200 (CEST)
Received: by mail-wr1-x432.google.com with SMTP id
 ffacd0b85a97d-3913958ebf2so6049053f8f.3
 for <xen-devel@lists.xenproject.org>; Wed, 09 Apr 2025 06:50:16 -0700 (PDT)
Received: from [10.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-39d89361186sm1733317f8f.14.2025.04.09.06.50.14
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 09 Apr 2025 06:50: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: 91253fbe-1549-11f0-9eab-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744206615; x=1744811415; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=HCd4xVwhoWf3cvNU17d4nLXZZhhVHyTRBZWQhbfI068=;
        b=gViqOFY0GkxehxqEsd/o9Ao7nV4y45g6JwS4pJeJJ5egTIF+eCYuWV0IfDhVCwdXA2
         FipZO+3ekyucPM/yiwbuZ+EEgunIoOsmjE3U/9inp4EHHmPDqZp+KwX9XHKS277XxduR
         FP43oRCktkXjjzSggtVyKcCtYIqbHtnRIbPdmJ5rSew3g1kDeBjniNrF5j+x6N4f8YQv
         OoD0Pqxsy+8uLlOPoExa4EhcWCscYtxOxLqAt7MQlRQ8zL0z0luvZEmAUWnC0fUUq4mg
         oQswLz2hzL5PpRNkVQVainCzyyyXOEK8+tAAYKOGaYKCsBTFQ2TZlvu+bVoyHsK3FC80
         B2eQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744206615; x=1744811415;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=HCd4xVwhoWf3cvNU17d4nLXZZhhVHyTRBZWQhbfI068=;
        b=AdjYrQ/TumJwl3PgW0+28qKxCIejWpYSxpt8Tqjqg3JD0pl73/2VMrOhBVY02AgWtO
         FH09GF8CsY3KEPPDjiO0niZ3QSFOX74C7PmCEv17G0tFy6tR7R+Zxx+otsdhQLPBqDIO
         ncU1arDaxlwcmwBAsUU5p8g6Co6xZ4JVJ8LGG5q52WrgEDYRu2q01WHX5ulLtrJRrSG0
         3pdjYKxLEdyUyWLagQobVgXiUOg5LqlF8rfd9FnqsVOMR6d9OhSP8C/fWQT8nW6H8JcF
         LwRo51qXNGebIV0YNevEqh2DWaFHc50dJhSL/K8u818G1JkNped7QAVeYY0UHPs1YwV9
         5StQ==
X-Forwarded-Encrypted: i=1; AJvYcCX7MaKL9nNgqIRVHAwXM/Ny6gXZ0PCYhTyDyp5gL7HSVB0eWaiWn/7DCzj3EnRa+vxOjEz/vdpVGc8=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzx/ygXepDfY79dXh0bEVgwaRjHMNGEjsM3d/RM1umrlJCk3RNW
	IXLztWei360LwbfVlShMws1RsJWw5ZcWC5sjaVcM2lmYaMld2cPdUXUai4pTwA==
X-Gm-Gg: ASbGncu0Tc4oGYT6d7P5QhgdQzstVWHsgJdFsrNG8A88PpCtPCgArlLXTOK1ZaZVBDi
	KEBvg3vFjsgZBkP9c6sLaxgaZdWwdhqiO+BGRYtbENA9TbTiPKVw2X3c9+9roPDL9FolqywzteU
	dwd8YBHhpIIoRd56uNUe3nSYZP6u+1EVO5qd9UavpxIHssqcXvE+9gWDP5YJF/pRAf07ggnuOWD
	UeHPe6r2o1wdmylYVdFNAvsheKAMkIvHYN+egF1oeH4prQDjmYKeZ7IsP9rsuyE0mBR1dX0UHon
	nDx/8qcbCFN2Hw+CqFgcl+qefa/UxrQAZGN6oLCCC6wwruFbVKqoaXNv3tmI7IwBEDIVohqWJgZ
	WSnkN1Q9GBy7IwnnXHdT9i6GgDg88Wi3qmwWH
X-Google-Smtp-Source: AGHT+IHxFQ+mU1ybplB8mWFy22ErLzQ8F6HGZxQxdBj4D91MBuccr99euW+XPL/pDfbQsORhQU5fCg==
X-Received: by 2002:a05:6000:1863:b0:39c:11c0:eba1 with SMTP id ffacd0b85a97d-39d87aa1bb0mr2795909f8f.12.1744206615508;
        Wed, 09 Apr 2025 06:50:15 -0700 (PDT)
Message-ID: <8709e7af-5827-4c96-9f6b-1f548045040d@suse.com>
Date: Wed, 9 Apr 2025 15:50:13 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] x86/hvm: fix write emulation of RO ranges
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: Marek Marczykowski <marmarek@invisiblethingslab.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20250408093156.83277-1-roger.pau@citrix.com>
 <20250408093156.83277-3-roger.pau@citrix.com>
 <16c73cae-2ac0-4811-97d3-b25c95ed5abc@suse.com>
 <Z_Y4xFzaltr_XKO4@macbook.lan>
 <ef0b6eea-a7e5-406d-a8ba-062b3c6e17e1@suse.com>
 <Z_ZOWAttoFNoFYCV@macbook.lan>
 <2df78a5d-2f9f-4866-81cc-03ae09c76d50@suse.com>
 <Z_Z3PYYSBH3QWioF@macbook.lan>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <Z_Z3PYYSBH3QWioF@macbook.lan>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 09.04.2025 15:33, Roger Pau Monné wrote:
> On Wed, Apr 09, 2025 at 02:59:45PM +0200, Jan Beulich wrote:
>> On 09.04.2025 12:39, Roger Pau Monné wrote:
>>> On Wed, Apr 09, 2025 at 12:00:16PM +0200, Jan Beulich wrote:
>>>> On 09.04.2025 11:07, Roger Pau Monné wrote:
>>>>> On Tue, Apr 08, 2025 at 03:57:17PM +0200, Jan Beulich wrote:
>>>>>> On 08.04.2025 11:31, Roger Pau Monne wrote:
>>>>>>> When running on AMD hardware in HVM mode the guest linear address (GLA)
>>>>>>> will not be provided to hvm_emulate_one_mmio(), and instead is
>>>>>>> unconditionally set of ~0.  As a consequence mmio_ro_emulated_write() will
>>>>>>> always report an error, as the fault GLA generated by the emulation of the
>>>>>>> access won't be ~0.
>>>>>>
>>>>>> Which means subpage_mmio_write_accept() is flawed, too, on AMD (or more
>>>>>> generally whenever .gla_valid isn't set).
>>>>>
>>>>> Oh, yes, good catch.  I didn't notice that one.  We should move all
>>>>> those checks to use a paddr rather than a gla.
>>>>
>>>> Really that function could just be passed the offset into the page.
>>>>
>>>>>>> Fix this by only checking for the fault GLA in mmio_ro_emulated_write()
>>>>>>> when the guest is PV.
>>>>>>
>>>>>> This narrows checking too much, imo. For VT-x we could continue to do so,
>>>>>> provided we pass e.g. npfec down into hvm_emulate_one_mmio(), i.e. make
>>>>>> the gla_valid flag visible there.
>>>>>
>>>>> I don't think we should rely on the gla at all in
>>>>> mmio_ro_emulated_write(), and instead just use the physical address.
>>>>
>>>> But you can't validate a physical address against a CR2 value. And I view
>>>> this validation as meaningful, to guard (best effort, but still) against
>>>> e.g. insn re-writing under our feet.
>>>
>>> But we have the mfn in mmio_ro_ctxt, and could possibly use that to
>>> validate?  I could expand the context to include the offset also, so
>>> that we could fully validate it.
>>
>> How would you use the MFN to validate against the VA in CR2?
> 
> I would use hvmemul_virtual_to_linear()

If you mean to use the CR2 as input, you wouldn't need this. I said VA in
my earlier reply, yes, but strictly speaking that's a linear address.

> and hvm_translate_get_page()
> to get the underlying mfn of the linear address.  But maybe there's a
> part of this that I'm missing, I've certainly haven't tried to
> implement any of it.

Hmm, I see. I didn't think of doing it this way round. There's certainly
at least one caveat with this approach: Multiple linear addresses can all
map to the same GFN and hence MFN. Checking against the original linear
address (when available) doesn't have such an issue.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Apr 09 14:00:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 14:00:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.944179.1342724 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2Vyf-0007v2-5B; Wed, 09 Apr 2025 14:00:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 944179.1342724; Wed, 09 Apr 2025 14:00:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2Vyf-0007uv-26; Wed, 09 Apr 2025 14:00:29 +0000
Received: by outflank-mailman (input) for mailman id 944179;
 Wed, 09 Apr 2025 14:00:27 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=5vFf=W3=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u2Vyd-0007up-AL
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 14:00:27 +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 fc8c0d5a-154a-11f0-9eab-5ba50f476ded;
 Wed, 09 Apr 2025 16:00:25 +0200 (CEST)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-43cfdc2c8c9so39692285e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 09 Apr 2025 07:00:25 -0700 (PDT)
Received: from [10.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-43f233c817dsm17038325e9.23.2025.04.09.07.00.24
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 09 Apr 2025 07:00: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: fc8c0d5a-154a-11f0-9eab-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744207225; x=1744812025; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=rUgA7s9cpFLpo96V+VxzjS9dKAekcYbXvrjflzVJVPE=;
        b=H0lFYTIkv2vsM+UUovNhfAkdfReGdXod1ZlCveK+48AoRh7hryRS2HZEEyFP9WgapK
         +kIB81iE+zqRD/IcFR+Toqw71z3woJ98Gy7fLPSXwUewrDbTC8b+mwurWE0vqB27iZFN
         bI1H1Foj3PdGE8cqe5mVGthhewYAl2D7W0dJFk6gN6g6XJxI6YmGxjS4BPs5/pGM8x7E
         lg50cezmrwQar6ejVJ9ABljuX+OBfb9XPcVO80gXUD/4Vy+QmiFGVXsF/EuZRb3uo970
         2fbQsOgsRP6DQES7jXD9FiEZbRisX7fYxnU6rf8MWAHG8jRbkcbSUfwlWQVBGQi0+kDW
         jcPw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744207225; x=1744812025;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=rUgA7s9cpFLpo96V+VxzjS9dKAekcYbXvrjflzVJVPE=;
        b=Y+HDAhIOvvSPqB6wwIvvcO2+XSAIcgtmvOPw7k7aEQw4WgGSBEsDxVDKWeGliFTlHm
         0iNlViYhP68uQk6TCCV//rQ/6wH1R0R10yvWNQ0s4LHtnYv34W+NQ2KedhDzbOlb8Dgz
         HZr/zOSWC/4ihLuavD1k2vZlHsEkco3T+JcHL3p6QfyRixMDrzQbnZz8cv/zoSvgy9QV
         8y16O4cEfHRIatiRyu8Zq7JLlsFkMyFHnVWjm50+9s9dRnxtwSlHSq2/yGvicUpD4+vw
         uDOTYLuK7Tsa+Mc5FLrtU1zoWAnh1RK1KgXDiAxwIaOe5dHO1w+Jr5iUmtKmVnZX9MZT
         O1iw==
X-Forwarded-Encrypted: i=1; AJvYcCW8AGLrNwswD/swj2bwciIbp0nv2hJOWOd9huwtSD3xjG80BHzeXbqLXcF39Whh6Q2lr53VllhrYpk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YydcxDQMpOOVX4i/3AFllKBRo6u+gf1Wvil/SdGz5BzQWJDPMH4
	uQw9UGpS7AiXCiz08AEhd4XiRUmsYfwWR065UDxHcBGidIKV/oOaOmWl4++tCg==
X-Gm-Gg: ASbGncuZxDsodJbaqfC0LbFN4b5TsFtq9hwhJOrYThSul9sEpXdcqM8P6h+2QS53fgs
	/S59izmzAYkIBJndAUvyF6DOoZ/CB+zQnqYbZ1CZ4A0cl4tPD2HWmh9n9WbdaH937SizmeTCurd
	F316cuTcd7AADMqO/B2WyunWBVXXYr7jXOiOZQbB9fhCv07rwp/HTn6D48q4MPZYQPauM5T//wS
	Ap+yQmhO3Yd1vUWcJEuM5FfmGn/uTH1gVBjKah+RsjwDMAKiHQ6MMhrME5euYYc/i7e2ZnNJgN7
	mxLF6EaCTorvfSSFCopnHNl1QSU8S/FD4BUEQMHdO592au5PVj26C0paTR6TPR1bKzwKkjnhDfO
	yxht+YMSTYvMUhplaqlaVxMIYQQ==
X-Google-Smtp-Source: AGHT+IHcM+CQPqmVw9ZBNXJimXO+t9QbE2HKt2zGEeVpwlD9IDGzMY+wQI5cVn7CUvW0/WOEzWFNsQ==
X-Received: by 2002:a05:600c:15d1:b0:43d:42b:e186 with SMTP id 5b1f17b1804b1-43f1f78b5abmr17273715e9.8.1744207225235;
        Wed, 09 Apr 2025 07:00:25 -0700 (PDT)
Message-ID: <fd1d3e80-f0e8-4535-a395-06960d01a4ee@suse.com>
Date: Wed, 9 Apr 2025 16:00:23 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 03/16] x86/boot: add cmdline to struct boot_domain
To: Alejandro Vallejo <agarciav@amd.com>
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Jason Andryuk <jason.andryuk@amd.com>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Michal Orzel <michal.orzel@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: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-4-agarciav@amd.com>
 <cdf00f8c-2143-48d6-abdc-8f56dafcc84c@suse.com>
 <D9229NGQ6QJ1.18Y8EVWZDY8U6@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: <D9229NGQ6QJ1.18Y8EVWZDY8U6@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 09.04.2025 13:11, Alejandro Vallejo wrote:
> On Wed Apr 9, 2025 at 7:48 AM BST, Jan Beulich wrote:
>> On 08.04.2025 18:07, Alejandro Vallejo wrote:
>>> --- a/xen/arch/x86/hvm/dom0_build.c
>>> +++ b/xen/arch/x86/hvm/dom0_build.c
>>> @@ -653,7 +653,6 @@ static int __init pvh_load_kernel(
>>>      void *image_start = image_base + image->headroom;
>>>      unsigned long image_len = image->size;
>>>      unsigned long initrd_len = initrd ? initrd->size : 0;
>>> -    const char *cmdline = image->cmdline_pa ? __va(image->cmdline_pa) : NULL;
>>>      const char *initrd_cmdline = NULL;
>>>      struct elf_binary elf;
>>>      struct elf_dom_parms parms;
>>> @@ -736,8 +735,8 @@ static int __init pvh_load_kernel(
>>>              initrd = NULL;
>>>      }
>>>  
>>> -    if ( cmdline )
>>> -        extra_space += elf_round_up(&elf, strlen(cmdline) + 1);
>>> +    if ( bd->cmdline )
>>> +        extra_space += elf_round_up(&elf, strlen(bd->cmdline) + 1);
>>>  
>>>      last_addr = find_memory(d, &elf, extra_space);
>>>      if ( last_addr == INVALID_PADDR )
>>> @@ -778,9 +777,10 @@ static int __init pvh_load_kernel(
>>>      /* Free temporary buffers. */
>>>      free_boot_modules();
>>>  
>>> -    if ( cmdline != NULL )
>>> +    if ( bd->cmdline )
>>>      {
>>> -        rc = hvm_copy_to_guest_phys(last_addr, cmdline, strlen(cmdline) + 1, v);
>>> +        rc = hvm_copy_to_guest_phys(last_addr, bd->cmdline,
>>> +                                    strlen(bd->cmdline) + 1, v);
>>>          if ( rc )
>>>          {
>>>              printk("Unable to copy guest command line\n");
>>> @@ -791,7 +791,7 @@ static int __init pvh_load_kernel(
>>>           * Round up to 32/64 bits (depending on the guest kernel bitness) so
>>>           * the modlist/start_info is aligned.
>>>           */
>>> -        last_addr += elf_round_up(&elf, strlen(cmdline) + 1);
>>> +        last_addr += elf_round_up(&elf, strlen(bd->cmdline) + 1);
>>>      }
>>>      if ( initrd != NULL )
>>>      {
>>
>> Perhaps better introduce a local variable cmdline_len? That would allow the first
>> if() to go away (but of course not its body).
> 
> I'd agree if the function body was smaller, but it has 16 locals
> already. It's already quite hard to know what's going on, so I'd rather
> not make the situation worse.

You wouldn't: You'd replace one local var by another.

>>> --- a/xen/arch/x86/setup.c
>>> +++ b/xen/arch/x86/setup.c
>>> @@ -978,10 +978,30 @@ 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)
>>
>> const for both? And perhaps s/domain/dom0/ in the function name?
>>
>>>  {
>>> -    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;
>>
>> While this retains prior behavior, that prior behavior was certainly odd (and
>> pretty likely not meant to be like that).
> 
> What part of it? How would you propose it to behave? Do you mean that if
> no cmdline is passed some ought to be allocated in case we want to
> override it?

"noapic" and "acpi=" want appending (if so intended) irrespective of there
being a non-empty command line already.

> Either way, such a functional change is better suited for a different
> patch that does just that, plus properly handling the acpi adjustments
> for PVH dom0.

Maybe. It's always odd to see issues live on when changes are made in their
area. For backportability, yes, the fix may want to be separate (and first).

Jan


From xen-devel-bounces@lists.xenproject.org Wed Apr 09 14:01:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 14:01:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.944194.1342733 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2Vzk-0000CD-Gp; Wed, 09 Apr 2025 14:01:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 944194.1342733; Wed, 09 Apr 2025 14:01: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 1u2Vzk-0000C6-EG; Wed, 09 Apr 2025 14:01:36 +0000
Received: by outflank-mailman (input) for mailman id 944194;
 Wed, 09 Apr 2025 14:01: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=Ii2m=W3=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u2Vzj-0008B2-KG
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 14:01:35 +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 25070408-154b-11f0-9ffb-bf95429c2676;
 Wed, 09 Apr 2025 16:01:33 +0200 (CEST)
Received: by mail-ed1-x530.google.com with SMTP id
 4fb4d7f45d1cf-5e5deb6482cso1487015a12.1
 for <xen-devel@lists.xenproject.org>; Wed, 09 Apr 2025 07:01:33 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 a640c23a62f3a-acaa1cb42b4sm101115466b.97.2025.04.09.07.01.32
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 09 Apr 2025 07:01:32 -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: 25070408-154b-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744207293; x=1744812093; 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=aYRJO79u8BHDTeHFy2y6Kmksngotc0X689NbgbvYBDE=;
        b=Kg8ZE6+sYFCqcvMFU/SjCGxiCHT2RdCbGBsKdoJD1ZS+7zdFV5xJj0AO8BCUslOgX0
         z4sDyn1tRrTs4I9sv4IZnaJs1vt5SEGvmqvfMQpXDuxtCYz71S7Rxu90M87Nm/jsDoa7
         cS7EzP93b+rxnuEspluUGnBAvUxt35PBa9qao=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744207293; x=1744812093;
        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=aYRJO79u8BHDTeHFy2y6Kmksngotc0X689NbgbvYBDE=;
        b=ueCxAlluEWUNcEmjTHUPcCUxgsX3ydNktqfC43JTJ5uvxi9vM/hSjvciip4S9j2t2x
         5s71kXjx+Ex/s/JXWVWfhiU3lMyEhF5IRjPqsuKxHw1OzWXsfWAwOYH+28s70Ly7bGfF
         uyV0QuDfL59RpDO3alUtAGWv9wOKNiaTcxY4rQyGYafVWFUtXCHmdoGblNwN7D9/WEQc
         I3eReRdUDxw2G31pubzCQId7abDhxbYZAmC2yPkY9scd1X+cMZobhPGfhd6XTui3AzIG
         9ZDexja8CvyN1JdgBzDZSFUnLseh5ooRGtNzE7NpRonKsB/1WWT/QSPWyoVnw/5ZDhTX
         r+hA==
X-Forwarded-Encrypted: i=1; AJvYcCWdyFB3bUTHDN7gi1xNKM9ypXFdBq/F0hU1MYk6LyXGIY5K0i0q+f4ppHi87HU+tauXRCF9FVywAtE=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw/BQ9NAuv3C/+JlmA7NZIsiSSQbMkGoTcCdPMsGg5kvOg4RlvK
	5z+Nrqlm0WfSc7l9HVIUUBZQDXn4YwyWAuwCVbWeASmmxryLnMZVOhFlDeCsQ/e22OGstyYOgjR
	+
X-Gm-Gg: ASbGncvOxBmM0CjY/78zhb0ejwpQ30A1IwijutI/UkvMe2lg2eHJ4uFpdqmcr6GSjVk
	8DA01ckl28Q6hlHIglfV23+nAKiunQ8leGjbhJdKFy8lYv4ubT4TjZrzK1+xJACu+oWfxFQe7AK
	IxXCmr5YOcXAoh/RMpap9iAbJsXqwfXcGwSztmxlR0wvxHbuMeYb1+tLbOImg+CzpnZ1eF/hu83
	vTsXtJZhfPPu4ixVJVvE8JyY/NuxGTZpdetUoRNlXOz2wiLLsftoXleSGOVELIKiEwwXOVAe52h
	7bLOSAWskAQ6SeoET4qpKbZPthogWuYSmi2HrtnZr3uHJw==
X-Google-Smtp-Source: AGHT+IElmFE6uDrnrjEEF900z4nPXCO9HHM0Ud0/YLFfUVhq+gwwEKJykFmjCy9HkjKiLZwxQyRkpA==
X-Received: by 2002:a17:907:70d:b0:ac6:f5b5:36e0 with SMTP id a640c23a62f3a-ac81a811519mr628581166b.19.1744207293020;
        Wed, 09 Apr 2025 07:01:33 -0700 (PDT)
Date: Wed, 9 Apr 2025 16:01:30 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Marek Marczykowski <marmarek@invisiblethingslab.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH 2/2] x86/hvm: fix write emulation of RO ranges
Message-ID: <Z_Z9unJ-wS2dXxUV@macbook.lan>
References: <20250408093156.83277-1-roger.pau@citrix.com>
 <20250408093156.83277-3-roger.pau@citrix.com>
 <16c73cae-2ac0-4811-97d3-b25c95ed5abc@suse.com>
 <Z_Y4xFzaltr_XKO4@macbook.lan>
 <ef0b6eea-a7e5-406d-a8ba-062b3c6e17e1@suse.com>
 <Z_ZOWAttoFNoFYCV@macbook.lan>
 <2df78a5d-2f9f-4866-81cc-03ae09c76d50@suse.com>
 <Z_Z3PYYSBH3QWioF@macbook.lan>
 <8709e7af-5827-4c96-9f6b-1f548045040d@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <8709e7af-5827-4c96-9f6b-1f548045040d@suse.com>

On Wed, Apr 09, 2025 at 03:50:13PM +0200, Jan Beulich wrote:
> On 09.04.2025 15:33, Roger Pau Monné wrote:
> > On Wed, Apr 09, 2025 at 02:59:45PM +0200, Jan Beulich wrote:
> >> On 09.04.2025 12:39, Roger Pau Monné wrote:
> >>> On Wed, Apr 09, 2025 at 12:00:16PM +0200, Jan Beulich wrote:
> >>>> On 09.04.2025 11:07, Roger Pau Monné wrote:
> >>>>> On Tue, Apr 08, 2025 at 03:57:17PM +0200, Jan Beulich wrote:
> >>>>>> On 08.04.2025 11:31, Roger Pau Monne wrote:
> >>>>>>> When running on AMD hardware in HVM mode the guest linear address (GLA)
> >>>>>>> will not be provided to hvm_emulate_one_mmio(), and instead is
> >>>>>>> unconditionally set of ~0.  As a consequence mmio_ro_emulated_write() will
> >>>>>>> always report an error, as the fault GLA generated by the emulation of the
> >>>>>>> access won't be ~0.
> >>>>>>
> >>>>>> Which means subpage_mmio_write_accept() is flawed, too, on AMD (or more
> >>>>>> generally whenever .gla_valid isn't set).
> >>>>>
> >>>>> Oh, yes, good catch.  I didn't notice that one.  We should move all
> >>>>> those checks to use a paddr rather than a gla.
> >>>>
> >>>> Really that function could just be passed the offset into the page.
> >>>>
> >>>>>>> Fix this by only checking for the fault GLA in mmio_ro_emulated_write()
> >>>>>>> when the guest is PV.
> >>>>>>
> >>>>>> This narrows checking too much, imo. For VT-x we could continue to do so,
> >>>>>> provided we pass e.g. npfec down into hvm_emulate_one_mmio(), i.e. make
> >>>>>> the gla_valid flag visible there.
> >>>>>
> >>>>> I don't think we should rely on the gla at all in
> >>>>> mmio_ro_emulated_write(), and instead just use the physical address.
> >>>>
> >>>> But you can't validate a physical address against a CR2 value. And I view
> >>>> this validation as meaningful, to guard (best effort, but still) against
> >>>> e.g. insn re-writing under our feet.
> >>>
> >>> But we have the mfn in mmio_ro_ctxt, and could possibly use that to
> >>> validate?  I could expand the context to include the offset also, so
> >>> that we could fully validate it.
> >>
> >> How would you use the MFN to validate against the VA in CR2?
> > 
> > I would use hvmemul_virtual_to_linear()
> 
> If you mean to use the CR2 as input, you wouldn't need this. I said VA in
> my earlier reply, yes, but strictly speaking that's a linear address.

I was thinking about using the segment and offset parameters of the
mmio_ro_emulated_write() call.

> > and hvm_translate_get_page()
> > to get the underlying mfn of the linear address.  But maybe there's a
> > part of this that I'm missing, I've certainly haven't tried to
> > implement any of it.
> 
> Hmm, I see. I didn't think of doing it this way round. There's certainly
> at least one caveat with this approach: Multiple linear addresses can all
> map to the same GFN and hence MFN. Checking against the original linear
> address (when available) doesn't have such an issue.

I see... Yet for AMD that address is not uniformly available as part
of the vmexit information?  As I understand the checks done in
mmio_ro_emulated_write() are to ensure correctness, but carrying the
access even when the %cr2 check fail wouldn't cause issues to Xen
itself?

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Apr 09 14:08:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 14:08:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.944207.1342744 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2W6n-0002Ur-6o; Wed, 09 Apr 2025 14:08:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 944207.1342744; Wed, 09 Apr 2025 14:08: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 1u2W6n-0002Uk-4B; Wed, 09 Apr 2025 14:08:53 +0000
Received: by outflank-mailman (input) for mailman id 944207;
 Wed, 09 Apr 2025 14:08: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=5vFf=W3=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u2W6l-0002Ue-Qd
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 14:08:51 +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 28d21a52-154c-11f0-9ffb-bf95429c2676;
 Wed, 09 Apr 2025 16:08:49 +0200 (CEST)
Received: by mail-wr1-x432.google.com with SMTP id
 ffacd0b85a97d-39727fe912cso3107023f8f.3
 for <xen-devel@lists.xenproject.org>; Wed, 09 Apr 2025 07:08:49 -0700 (PDT)
Received: from [10.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-39d8940012asm1746202f8f.94.2025.04.09.07.08.48
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 09 Apr 2025 07:08: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: 28d21a52-154c-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744207729; x=1744812529; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=mutNYkR/8MqaIGKCe6d0ZbV8t0HE5cf+BppHA0LU13M=;
        b=JbJkqmBW72eSaaRvC0GVcObsUm705X/S3Q0BIgvJEKc7ZMJVcRHdJ4OXZJmwBwpBjU
         sgjwmdm2/d2g5x7xQLhlSSrFtAYvDHXtHZNIjncOMbTPCSY3NmFT9r+dmtU3YPwcPdQa
         BGEBS3+aITyyTEYbaK/YEcYvItkQdxbIyMQtPVoifuz1XhRYAvdVNt/PSsn/SPOXBh4N
         fg5r4NPm1y4n5JMFoN/KM/3aLLpL5zmJV4YiBUEMs243LcGrjKwd+gUWTSp+qyGI+wbE
         eNn2y75JcWxsNJqSShw18XKGXCMcE1LONq/a9yt2moyLZcirczuk2T4O1oEQwTWiXYHi
         iMwQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744207729; x=1744812529;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=mutNYkR/8MqaIGKCe6d0ZbV8t0HE5cf+BppHA0LU13M=;
        b=u/+F7M1XY93QCUGQYx10PEp5T1i0yn7Gp6GRAP6A6rO8bGkRLkAhi8IcqoU8SWK+bt
         bD+ZNlNS+fuJD71oU5KoM6Fm5FLxYzFp6haMdxG5NSB+3QjqvzcuvlViWuaoWObSHlMJ
         baswr3Qd/kGiGH04Wfnm1a1u6ti0msu6ONwxCC9cWjkG/TdnWpIEhZebip7lJzpWwsyJ
         BX4RZ6A5roDLcVmBgGk9dUQT+FRl1eTB4Z2feal1JnyMu5fUcsS+9zRM1o+1R8TlvuvM
         U7WwW7+MN+OY2n+PrhkP4diY7G8VxVjjz2DPuneOKnmM/8MN/fU0tbX9GcAuhTErQFzY
         ZSsw==
X-Forwarded-Encrypted: i=1; AJvYcCVNho59XyzxYSRYXaSz5NRirXPNvnCH2g+oaoLSYwKhz8oaJvM6Nih1999XFw1lFyJLmNB2kQbJwpA=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzy1VVt50oA76dP9rxZoXEDnYJ5hsiuO0X4iu9K/77vFwgBEm0g
	aDi1DueRTNA9DGbVTz1O3SoawwGpuRRc3fft+OCBJ5KzJeq+tA1SWmMYLvegPA==
X-Gm-Gg: ASbGnctl8Vy3eiDX24nJ/u0Jx8OM3n4SPiMKzqu6vg8vsgZwtxMbbidYBI+A5PPD/2y
	8r0FvSYvysZ49dgPy4vLYvFdezlJSFt7dSnxX9X4LV8ah70APIOrkSl8p/BX82OVRU5FT5IiRFB
	T/sr06eR0zbzLNXZT33ww6Bqpf6qoeb8dbLUMh2qyjYOPnTQ0bxSZQVAQbdg/hGR62vZc4JW+dU
	1hCqtCB6cn53E3zYwzywAuXk9YiYykD2Vv8TIU0uuj+5o1doXg3nHJBCH5WFY/iePWS+/rkdS3Y
	YiIH6laTDCKElCeXG5S/d8fFdJn7l0ZyUqc2oA4ponsSIuz/cWYvTzEBVtVLL0fKEz49l5MJqYR
	t4hXSEHEhidMEJiqFolNZEEtG0g==
X-Google-Smtp-Source: AGHT+IGu10HgDZklWTSZww2I1M+7hNODvCYXl/t+AihZtmC3k40M7i2KZF8QZuVWxO4BXHASPEEYJg==
X-Received: by 2002:a05:6000:1447:b0:399:7f44:5c74 with SMTP id ffacd0b85a97d-39d87cdcd87mr3086575f8f.55.1744207728798;
        Wed, 09 Apr 2025 07:08:48 -0700 (PDT)
Message-ID: <b1e8e761-ddf9-4e4f-b5bb-624b2e7d012c@suse.com>
Date: Wed, 9 Apr 2025 16:08:47 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] x86/hvm: fix write emulation of RO ranges
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: Marek Marczykowski <marmarek@invisiblethingslab.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20250408093156.83277-1-roger.pau@citrix.com>
 <20250408093156.83277-3-roger.pau@citrix.com>
 <16c73cae-2ac0-4811-97d3-b25c95ed5abc@suse.com>
 <Z_Y4xFzaltr_XKO4@macbook.lan>
 <ef0b6eea-a7e5-406d-a8ba-062b3c6e17e1@suse.com>
 <Z_ZOWAttoFNoFYCV@macbook.lan>
 <2df78a5d-2f9f-4866-81cc-03ae09c76d50@suse.com>
 <Z_Z3PYYSBH3QWioF@macbook.lan>
 <8709e7af-5827-4c96-9f6b-1f548045040d@suse.com>
 <Z_Z9unJ-wS2dXxUV@macbook.lan>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <Z_Z9unJ-wS2dXxUV@macbook.lan>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 09.04.2025 16:01, Roger Pau Monné wrote:
> On Wed, Apr 09, 2025 at 03:50:13PM +0200, Jan Beulich wrote:
>> On 09.04.2025 15:33, Roger Pau Monné wrote:
>>> On Wed, Apr 09, 2025 at 02:59:45PM +0200, Jan Beulich wrote:
>>>> On 09.04.2025 12:39, Roger Pau Monné wrote:
>>>>> On Wed, Apr 09, 2025 at 12:00:16PM +0200, Jan Beulich wrote:
>>>>>> On 09.04.2025 11:07, Roger Pau Monné wrote:
>>>>>>> On Tue, Apr 08, 2025 at 03:57:17PM +0200, Jan Beulich wrote:
>>>>>>>> On 08.04.2025 11:31, Roger Pau Monne wrote:
>>>>>>>>> When running on AMD hardware in HVM mode the guest linear address (GLA)
>>>>>>>>> will not be provided to hvm_emulate_one_mmio(), and instead is
>>>>>>>>> unconditionally set of ~0.  As a consequence mmio_ro_emulated_write() will
>>>>>>>>> always report an error, as the fault GLA generated by the emulation of the
>>>>>>>>> access won't be ~0.
>>>>>>>>
>>>>>>>> Which means subpage_mmio_write_accept() is flawed, too, on AMD (or more
>>>>>>>> generally whenever .gla_valid isn't set).
>>>>>>>
>>>>>>> Oh, yes, good catch.  I didn't notice that one.  We should move all
>>>>>>> those checks to use a paddr rather than a gla.
>>>>>>
>>>>>> Really that function could just be passed the offset into the page.
>>>>>>
>>>>>>>>> Fix this by only checking for the fault GLA in mmio_ro_emulated_write()
>>>>>>>>> when the guest is PV.
>>>>>>>>
>>>>>>>> This narrows checking too much, imo. For VT-x we could continue to do so,
>>>>>>>> provided we pass e.g. npfec down into hvm_emulate_one_mmio(), i.e. make
>>>>>>>> the gla_valid flag visible there.
>>>>>>>
>>>>>>> I don't think we should rely on the gla at all in
>>>>>>> mmio_ro_emulated_write(), and instead just use the physical address.
>>>>>>
>>>>>> But you can't validate a physical address against a CR2 value. And I view
>>>>>> this validation as meaningful, to guard (best effort, but still) against
>>>>>> e.g. insn re-writing under our feet.
>>>>>
>>>>> But we have the mfn in mmio_ro_ctxt, and could possibly use that to
>>>>> validate?  I could expand the context to include the offset also, so
>>>>> that we could fully validate it.
>>>>
>>>> How would you use the MFN to validate against the VA in CR2?
>>>
>>> I would use hvmemul_virtual_to_linear()
>>
>> If you mean to use the CR2 as input, you wouldn't need this. I said VA in
>> my earlier reply, yes, but strictly speaking that's a linear address.
> 
> I was thinking about using the segment and offset parameters of the
> mmio_ro_emulated_write() call.
> 
>>> and hvm_translate_get_page()
>>> to get the underlying mfn of the linear address.  But maybe there's a
>>> part of this that I'm missing, I've certainly haven't tried to
>>> implement any of it.
>>
>> Hmm, I see. I didn't think of doing it this way round. There's certainly
>> at least one caveat with this approach: Multiple linear addresses can all
>> map to the same GFN and hence MFN. Checking against the original linear
>> address (when available) doesn't have such an issue.
> 
> I see... Yet for AMD that address is not uniformly available as part
> of the vmexit information?

Even stronger, I thought: It's uniformly not available.

>  As I understand the checks done in
> mmio_ro_emulated_write() are to ensure correctness, but carrying the
> access even when the %cr2 check fail wouldn't cause issues to Xen
> itself?

Well, "wouldn't" is too strong for my taste, "shouldn't" would fit. The
checking is there to avoid guests playing games. Whether that prevents
merely in-guest just-bugs or actual XSAs we can't know until we find a
case where the game playing might make us do something wrong. I expect
it's unlikely for Xen itself to be affected. But an in-guest privilege
escalation would already be bad enough.

So why don't we do the linear address check as we do today (provided a
linear address is available), and only use the alternative approach when
no linear address is available?

Jan


From xen-devel-bounces@lists.xenproject.org Wed Apr 09 14:14:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 14:14:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.944228.1342753 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2WBm-0005lj-PN; Wed, 09 Apr 2025 14:14:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 944228.1342753; Wed, 09 Apr 2025 14: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 1u2WBm-0005lc-Mq; Wed, 09 Apr 2025 14:14:02 +0000
Received: by outflank-mailman (input) for mailman id 944228;
 Wed, 09 Apr 2025 14:14: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=5vFf=W3=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u2WBl-0005lW-Nx
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 14:14:01 +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 e23aa990-154c-11f0-9eab-5ba50f476ded;
 Wed, 09 Apr 2025 16:14:00 +0200 (CEST)
Received: by mail-wr1-x433.google.com with SMTP id
 ffacd0b85a97d-3995ff6b066so3759269f8f.3
 for <xen-devel@lists.xenproject.org>; Wed, 09 Apr 2025 07:14:00 -0700 (PDT)
Received: from [10.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-39d8938a69asm1781503f8f.50.2025.04.09.07.13.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 09 Apr 2025 07:13: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: e23aa990-154c-11f0-9eab-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744208040; x=1744812840; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=f0FkeNA3+l9t5VcrVno45C/8kxu9HzLSg+XeYcvo5PQ=;
        b=NeOSqZdDR1kRJHmxn9ba/xA9gNXiFQfFjWCq5PB10/wbVobLAzKC28HkN4EV5whouL
         SSh0PtNtc/igw3JSv2kTMLvl0zpUcflZ4ulEhufhQDh0G7dladf97AbBicPyJ6yl8Tnk
         RtgO+OqU+xQOxUitUN6V/du2QVMOz5R28kyBcH5lLzSSH9D3yp7p1OdB2+SgQKdcwXJK
         XjTBatCaarKOJPr3ebYISnzwC1OKLooKFZaA8PnzoZR0tJjfFd3DdEWTMk7hIXZLqPCw
         SnPfnBq28wORlVf6joIlpYo57T3hmiLKfwGsxfqZ8SOnTv2S7fSFUQYBDwMIybk3MLxF
         qjaw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744208040; x=1744812840;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=f0FkeNA3+l9t5VcrVno45C/8kxu9HzLSg+XeYcvo5PQ=;
        b=HH9N1OP5q/XvkAFbRM7qXO+2RgQv5j2AHc6BzudcguZwHJtZtvclZ4BgTXWZmr6NDR
         rNWkKZEOxYSNhY2LaBQ1wHZ1KU0uPUDugid72KXvlkKrLERWrYwIX2bwV5bFq2QrXZSc
         S9GWgAMjdqyJucDH2NiqhJgEipVUPA0zK6IXSYfQcEN9LFNSbBGvh8M37AGxDg89bMhG
         yP8DhdCUuwcK6dH1VgYWFiYhCMdr2MviQ+iOneVG3uZsLTNuLtqV8ShgsKDzahH3qqVA
         8o8wIE73KgbmU4KPtYn6Xf0ArIPzXVeaSwT1FkxX8aPfX1a0BivTtjHNGkELxYjVzGQy
         0mEg==
X-Forwarded-Encrypted: i=1; AJvYcCVZNGJp6vx03feV/Gvrq5OpePm4MF7hbK5DzMwqDmHy1QBroDo9UWc5k4XdLV/QIygQb1smOc2eMIo=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyFrayTu1KAaLAiHjigM/d57WWxUCExCf6sMcs+XcuVzHoRxtvK
	sl8/0iM5E8PdF7s0XRH0ogaMmPivE9StRVERIU8VoQM6arq84R/zZgr/UFoowg==
X-Gm-Gg: ASbGncuErDBf2waNl7SwbUufFU2qoai+EBfpg6zWZMyj/FS8rs+hc95RIA3cRLTzcvp
	WefWgrh5vATMrZ4QESOU4e2hCes+yudexFsY9zCyQ3eMRKx4NKESwd+HpkyIlJkeIkAf4lR7e5V
	NvqP5JZJ1CLMSUUEPqliCiYMrRtSRhz6zM/QJgLXldCl76gCXUQPkyv8K4hL97wI/MtfxT9QCDO
	MwgyswDJ1yydouV2Y2BJauc0Nu6BOypLQEZ77KJtYqLm5eEIzMUSN6mhjYZ2wqTscPmTfX5dX+R
	s0EXN1eRZbh8ZBBQVwhuhrRf4L/CHgGZQtiuSRv42wcbfK3bLjR/+JDcX/dBnlHAATUn1LGEXNG
	H1sYp1maeqC7A/QTzAIpxIWjM6Q==
X-Google-Smtp-Source: AGHT+IEacxUjdcucT5LOXJqlILNmdDksisoJ1h+CN7DxB2gHgyX7uGR9SULOBJnNZi910mXJcpr/6Q==
X-Received: by 2002:a5d:64aa:0:b0:39c:27cc:7ba3 with SMTP id ffacd0b85a97d-39d88541852mr2685502f8f.33.1744208040143;
        Wed, 09 Apr 2025 07:14:00 -0700 (PDT)
Message-ID: <bd7d3af5-a140-4387-bc76-2e21f15ad52a@suse.com>
Date: Wed, 9 Apr 2025 16:13:58 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 03/16] x86/boot: add cmdline to struct boot_domain
To: Alejandro Vallejo <agarciav@amd.com>
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Jason Andryuk <jason.andryuk@amd.com>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Michal Orzel <michal.orzel@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: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-4-agarciav@amd.com>
 <cdf00f8c-2143-48d6-abdc-8f56dafcc84c@suse.com>
 <D9229NGQ6QJ1.18Y8EVWZDY8U6@amd.com> <D922MBDY2JJ4.NQXTTKRAMFEU@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: <D922MBDY2JJ4.NQXTTKRAMFEU@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 09.04.2025 13:28, Alejandro Vallejo wrote:
> On Wed Apr 9, 2025 at 12:11 PM BST, Alejandro Vallejo wrote:
>> On Wed Apr 9, 2025 at 7:48 AM BST, Jan Beulich wrote:
>>> On 08.04.2025 18:07, Alejandro Vallejo wrote:
>>>> --- a/xen/arch/x86/setup.c
>>>> +++ b/xen/arch/x86/setup.c
>>>> @@ -978,10 +978,30 @@ 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)
>>>
>>> const for both? And perhaps s/domain/dom0/ in the function name?
> 
> (missed this one)
> 
> Sure to the const pointers. But as the hyperlaunch effort progresses the
> point is to turn all this into a more generic domain builders rather
> than having dom0-specific stuff. Changing the name like that here to
> adjust it in a few patches down the line doesn't seem worth the effort.

Oh, if the function is going to fine further uses, that's likely okay.
("likely" because we've seen too many abandoned series, where we then
ended up with pieces that were never gaining their intended final
purpose.)

>>> While this tidies the local variable, what about bd->cmdline? As it stands this
>>> gives the impression that you're freeing a pointer here which may still be used
>>> through passing bd elsewhere.
>>
>> That ought to have been bd->cmdline indeed.
>>
> 
> Actually, it can't be. It's a "const char *", so XFREE() chokes on it.
> I'll turn it into
> 
>     XFREE(cmdline);
>     bd->cmdline = NULL;
> 
> instead.

At which point it can be xfree() again, seeing that the function ends
right afterwards?

Jan


From xen-devel-bounces@lists.xenproject.org Wed Apr 09 14:14:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 14:14:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.944225.1342763 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2WC3-00066N-1P; Wed, 09 Apr 2025 14:14:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 944225.1342763; Wed, 09 Apr 2025 14:14: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 1u2WC2-00066G-Uj; Wed, 09 Apr 2025 14:14:18 +0000
Received: by outflank-mailman (input) for mailman id 944225;
 Wed, 09 Apr 2025 14:11: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=L8O5=W3=gmail.com=ryabinin.a.a@srs-se1.protection.inumbo.net>)
 id 1u2W9V-0005Uv-Ic
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 14:11:41 +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 8e83bb26-154c-11f0-9eab-5ba50f476ded;
 Wed, 09 Apr 2025 16:11:40 +0200 (CEST)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-3912387cf48so456483f8f.3
 for <xen-devel@lists.xenproject.org>; Wed, 09 Apr 2025 07:11:40 -0700 (PDT)
Received: from [172.27.52.232] (auburn-lo423.yndx.net. [93.158.190.104])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43f235a5d31sm17305755e9.35.2025.04.09.07.11.37
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 09 Apr 2025 07:11:38 -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: 8e83bb26-154c-11f0-9eab-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1744207900; x=1744812700; 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=79dRAhMX6hAzgdIihnfQk7TyjpU16Gt/P7A1hHpHnDM=;
        b=KKEG+adXiy5EWkqmhISj3/4Jku3sKrwoYQD7oBr7pzX6oDJVoKoNgRf+0/vkHVf8kZ
         n/pQ30fAI0zODSZLyYZg7ebB/rz3FT+tWi3T8CtFcHnf5eH6HZ67uHzO266YLYldYcP5
         ofVYFrrsjqdqm01bedvay+p5jO/4v9grX+L813tBL/1Itf/TnNCOa6w6+MmOXhGLNCYf
         X3+IkN0bwt3EcCb26J7b46apIgMDP6eb9/pZrGl8QtpHJHgRa1DHbGUFTTiOJyETl55U
         bTvJOjw1BzDGLkiOprqzGsjcrucagynbr7y8l/0quBZZfLwnpvFRkxnnuMUZJ048+qwG
         XPgA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744207900; x=1744812700;
        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=79dRAhMX6hAzgdIihnfQk7TyjpU16Gt/P7A1hHpHnDM=;
        b=UnHLjXrdt66PKH7Rn1gAd1cqifLAQVbayQYWHwunk2SgIoqHx++rJqtHiLmH7V0OgT
         eig9E22SvPHist7r27Z1kAop/7ga74j3y3A0wD/v+oIEtqk8jilj9m3fO5B3XHlOs7sR
         vvls5Yeq9jR7EgSfT/1XrbN5t4NMFX0BiL/wSdTPJqF6DK3T2UDy/U4qMgTWMsgk0Lgz
         tHNsdCLsdNUAplsSgtmpJ+2SZ50jrwJo1ds7H2Ozijd2l1iV8LXRw8AT2+jcBiuH3HuB
         ppYkdFtcRw0wwUm5VWVt6YQs8jSOtbAvgQDnBDgprliMdHHYyXBIUAPXzaz8sG/BCn07
         fMjQ==
X-Forwarded-Encrypted: i=1; AJvYcCV/VfRgwSvclm2I69lpqWnlI+0DcXSEfgOSyqy9Lp0NbERRqhn6umOukgaL+aJ0ULBkFW6UA+r9bqA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzhYr7Vr+w072kz+IY3V2lob7FlxNoSt915bxfTzzB0ZZk8VaE7
	WYD1Ldf9BJXEjzpiFp0Ke1NS2FVQQH5DjNrE0QgckrMS78W9EcI/
X-Gm-Gg: ASbGncuUjLnLKf3ZDFhVvo/1oDI1AZCukoDyQkSuvJRjppZ33JjxiXIqQw04X7oTsHm
	nI1UrT6oPBRiI44V0KN9dcXaG6Fv248BdBorxZ9G53nE36sQHOJEwcVqUeNDRpMcy4kJhxe0gNy
	EoLubX3s5ahSmlpghEiAvF00hJwTLjUbSqE9x/MuOncd87rJo581I31cMl7QZfMN+m+/sAWvqS1
	X07uL1ODlGlYEet6mGRHcHfIQfwT3v0AKYCrrDb/4ZFxSBKONPWaeneUu9x+nwcrUx322gflVZY
	h58oig6O9phW+ZvzLRZqcEP0POopzxeLWer2sv3oTcTtjVb4nrN6voSXmF2lU5burlJrTA==
X-Google-Smtp-Source: AGHT+IHSANHfnsI22VvG7U6Add3MtuqdkHlNUqXmc+ZOIvDB4qPCFfsNQQmWuYIJe4cIBvlXQ9bdkg==
X-Received: by 2002:a05:6000:2901:b0:391:2acc:aadf with SMTP id ffacd0b85a97d-39d87ab626emr1029141f8f.6.1744207899192;
        Wed, 09 Apr 2025 07:11:39 -0700 (PDT)
Message-ID: <3e245617-81a5-4ea3-843f-b86261cf8599@gmail.com>
Date: Wed, 9 Apr 2025 16:10:58 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/3] kasan: Avoid sleepable page allocation from atomic
 context
To: Alexander Gordeev <agordeev@linux.ibm.com>,
 Andrew Morton <akpm@linux-foundation.org>
Cc: Hugh Dickins <hughd@google.com>, Nicholas Piggin <npiggin@gmail.com>,
 Guenter Roeck <linux@roeck-us.net>, Juergen Gross <jgross@suse.com>,
 Jeremy Fitzhardinge <jeremy@goop.org>, linux-kernel@vger.kernel.org,
 linux-mm@kvack.org, kasan-dev@googlegroups.com, sparclinux@vger.kernel.org,
 xen-devel@lists.xenproject.org, linuxppc-dev@lists.ozlabs.org,
 linux-s390@vger.kernel.org, stable@vger.kernel.org
References: <cover.1744128123.git.agordeev@linux.ibm.com>
 <2d9f4ac4528701b59d511a379a60107fa608ad30.1744128123.git.agordeev@linux.ibm.com>
Content-Language: en-US
From: Andrey Ryabinin <ryabinin.a.a@gmail.com>
In-Reply-To: <2d9f4ac4528701b59d511a379a60107fa608ad30.1744128123.git.agordeev@linux.ibm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit



On 4/8/25 6:07 PM, Alexander Gordeev wrote:
> apply_to_page_range() enters lazy MMU mode and then invokes
> kasan_populate_vmalloc_pte() callback on each page table walk
> iteration. The lazy MMU mode may only be entered only under
> protection of the page table lock. However, the callback can
> go into sleep when trying to allocate a single page.
> 
> Change __get_free_page() allocation mode from GFP_KERNEL to
> GFP_ATOMIC to avoid scheduling out while in atomic context.
> 
> Cc: stable@vger.kernel.org
> Fixes: 3c5c3cfb9ef4 ("kasan: support backing vmalloc space with real shadow memory")
> Signed-off-by: Alexander Gordeev <agordeev@linux.ibm.com>
> ---
>  mm/kasan/shadow.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/mm/kasan/shadow.c b/mm/kasan/shadow.c
> index 88d1c9dcb507..edfa77959474 100644
> --- a/mm/kasan/shadow.c
> +++ b/mm/kasan/shadow.c
> @@ -301,7 +301,7 @@ static int kasan_populate_vmalloc_pte(pte_t *ptep, unsigned long addr,
>  	if (likely(!pte_none(ptep_get(ptep))))
>  		return 0;
>  
> -	page = __get_free_page(GFP_KERNEL);
> +	page = __get_free_page(GFP_ATOMIC);
>  	if (!page)
>  		return -ENOMEM;
>  

I think a better way to fix this would be moving out allocation from atomic context. Allocate page prior
to apply_to_page_range() call and pass it down to kasan_populate_vmalloc_pte().

Whenever kasan_populate_vmalloc_pte() will require additional page we could bail out with -EAGAIN,
and allocate another one.


From xen-devel-bounces@lists.xenproject.org Wed Apr 09 14:26:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 14:26:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.944256.1342773 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2WNb-0001Ov-7w; Wed, 09 Apr 2025 14:26:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 944256.1342773; Wed, 09 Apr 2025 14:26: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 1u2WNb-0001Oo-59; Wed, 09 Apr 2025 14:26:15 +0000
Received: by outflank-mailman (input) for mailman id 944256;
 Wed, 09 Apr 2025 14:26: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=1xYW=W3=linux.ibm.com=agordeev@srs-se1.protection.inumbo.net>)
 id 1u2WNa-0001Og-5s
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 14:26:14 +0000
Received: from mx0b-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com
 [148.163.158.5]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 956f2e37-154e-11f0-9ffb-bf95429c2676;
 Wed, 09 Apr 2025 16:26:11 +0200 (CEST)
Received: from pps.filterd (m0360072.ppops.net [127.0.0.1])
 by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5397HMTX003773;
 Wed, 9 Apr 2025 14:25:59 GMT
Received: from pps.reinject (localhost [127.0.0.1])
 by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 45w7yxd3vs-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Wed, 09 Apr 2025 14:25:59 +0000 (GMT)
Received: from m0360072.ppops.net (m0360072.ppops.net [127.0.0.1])
 by pps.reinject (8.18.0.8/8.18.0.8) with ESMTP id 539EB8On010066;
 Wed, 9 Apr 2025 14:25:58 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 45w7yxd3vq-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Wed, 09 Apr 2025 14:25:58 +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 539D3ElP011078;
 Wed, 9 Apr 2025 14:25:58 GMT
Received: from smtprelay01.fra02v.mail.ibm.com ([9.218.2.227])
 by ppma22.wdc07v.mail.ibm.com (PPS) with ESMTPS id 45uf7yr7wn-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Wed, 09 Apr 2025 14:25:57 +0000
Received: from smtpav02.fra02v.mail.ibm.com (smtpav02.fra02v.mail.ibm.com
 [10.20.54.101])
 by smtprelay01.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id
 539EPthu51446068
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Wed, 9 Apr 2025 14:25:56 GMT
Received: from smtpav02.fra02v.mail.ibm.com (unknown [127.0.0.1])
 by IMSVA (Postfix) with ESMTP id E2E2B20043;
 Wed,  9 Apr 2025 14:25:55 +0000 (GMT)
Received: from smtpav02.fra02v.mail.ibm.com (unknown [127.0.0.1])
 by IMSVA (Postfix) with ESMTP id A20A320040;
 Wed,  9 Apr 2025 14:25:55 +0000 (GMT)
Received: from li-008a6a4c-3549-11b2-a85c-c5cc2836eea2.ibm.com (unknown
 [9.155.204.135])
 by smtpav02.fra02v.mail.ibm.com (Postfix) with ESMTPS;
 Wed,  9 Apr 2025 14:25:55 +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: 956f2e37-154e-11f0-9ffb-bf95429c2676
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=dZ0mp0fbK09n1Ak/UvqxB1GCA8Znz4
	UQv5qeUc3rPlA=; b=IRgQg+p0Df+Nfa6nCWz0aEmpIN27N+9MFzz7n1AyGBY2SS
	cXs87tCxIwF0jtud5qNjSNgLlGskDd18xPUtz+/8MSJ/uSLwVcWXURJobKL9USL7
	8EN7dKtn1kp0R6rIo4CDW/5JV5ErMnUDU9hiTGkoezgYSUuDWyh9D25PwHXGhYEU
	GwDF8p5b+jp5ID0M4C+Y0j6hOMrzAaZiI9tILkqMv9kUPI6oMQCKz/g1dMx19Fy7
	/Mi3mE2FTHiiz9sThs3WKUK09GhZCaCxCrNi4XcuR9sS8mYCsxH280QQ/YKbGiEv
	weowmHYXdl2bXlIuZEv7vv+w3bod+XI/wwk/gkeQ==
Date: Wed, 9 Apr 2025 16:25:54 +0200
From: Alexander Gordeev <agordeev@linux.ibm.com>
To: Andrey Ryabinin <ryabinin.a.a@gmail.com>
Cc: Andrew Morton <akpm@linux-foundation.org>, Hugh Dickins <hughd@google.com>,
        Nicholas Piggin <npiggin@gmail.com>,
        Guenter Roeck <linux@roeck-us.net>, Juergen Gross <jgross@suse.com>,
        Jeremy Fitzhardinge <jeremy@goop.org>, linux-kernel@vger.kernel.org,
        linux-mm@kvack.org, kasan-dev@googlegroups.com,
        sparclinux@vger.kernel.org, xen-devel@lists.xenproject.org,
        linuxppc-dev@lists.ozlabs.org, linux-s390@vger.kernel.org,
        stable@vger.kernel.org
Subject: Re: [PATCH v2 1/3] kasan: Avoid sleepable page allocation from
 atomic context
Message-ID: <Z/aDckdBFPfg2h/P@li-008a6a4c-3549-11b2-a85c-c5cc2836eea2.ibm.com>
References: <cover.1744128123.git.agordeev@linux.ibm.com>
 <2d9f4ac4528701b59d511a379a60107fa608ad30.1744128123.git.agordeev@linux.ibm.com>
 <3e245617-81a5-4ea3-843f-b86261cf8599@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <3e245617-81a5-4ea3-843f-b86261cf8599@gmail.com>
X-TM-AS-GCONF: 00
X-Proofpoint-ORIG-GUID: MHqebilzhsuhaERLi3oJf9wiQWwhiimV
X-Proofpoint-GUID: uhQA63QGysorbXbRGqjCOxWiIF599GSi
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1095,Hydra:6.0.680,FMLib:17.12.68.34
 definitions=2025-04-09_05,2025-04-08_04,2024-11-22_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 bulkscore=0
 spamscore=0 impostorscore=0 lowpriorityscore=0 priorityscore=1501
 clxscore=1015 malwarescore=0 mlxscore=0 suspectscore=0 mlxlogscore=844
 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.19.0-2502280000 definitions=main-2504090086

On Wed, Apr 09, 2025 at 04:10:58PM +0200, Andrey Ryabinin wrote:

Hi Andrey,

> > @@ -301,7 +301,7 @@ static int kasan_populate_vmalloc_pte(pte_t *ptep, unsigned long addr,
> >  	if (likely(!pte_none(ptep_get(ptep))))
> >  		return 0;
> >  
> > -	page = __get_free_page(GFP_KERNEL);
> > +	page = __get_free_page(GFP_ATOMIC);
> >  	if (!page)
> >  		return -ENOMEM;
> >  
> 
> I think a better way to fix this would be moving out allocation from atomic context. Allocate page prior
> to apply_to_page_range() call and pass it down to kasan_populate_vmalloc_pte().

I think the page address could be passed as the parameter to kasan_populate_vmalloc_pte().

> Whenever kasan_populate_vmalloc_pte() will require additional page we could bail out with -EAGAIN,
> and allocate another one.

When would it be needed? kasan_populate_vmalloc_pte() handles just one page.

Thanks!


From xen-devel-bounces@lists.xenproject.org Wed Apr 09 14:27:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 14:27:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.944268.1342784 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2WP7-0001uz-Hp; Wed, 09 Apr 2025 14:27:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 944268.1342784; Wed, 09 Apr 2025 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 1u2WP7-0001us-Eu; Wed, 09 Apr 2025 14:27:49 +0000
Received: by outflank-mailman (input) for mailman id 944268;
 Wed, 09 Apr 2025 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=np/6=W3=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1u2WP6-0001um-OG
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 14:27:48 +0000
Received: from fhigh-b5-smtp.messagingengine.com
 (fhigh-b5-smtp.messagingengine.com [202.12.124.156])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id cd99044a-154e-11f0-9ffb-bf95429c2676;
 Wed, 09 Apr 2025 16:27:46 +0200 (CEST)
Received: from phl-compute-08.internal (phl-compute-08.phl.internal
 [10.202.2.48])
 by mailfhigh.stl.internal (Postfix) with ESMTP id 708822540135;
 Wed,  9 Apr 2025 10:27:44 -0400 (EDT)
Received: from phl-mailfrontend-01 ([10.202.2.162])
 by phl-compute-08.internal (MEProxy); Wed, 09 Apr 2025 10:27:44 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed,
 9 Apr 2025 10:27:43 -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: cd99044a-154e-11f0-9ffb-bf95429c2676
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=fm2; t=1744208864;
	 x=1744295264; bh=MfijyQYDcPda47DdSZRiIYkh/3eI28U/U8OcAgi76Ng=; b=
	eEDeBgs7WWdLWx0jc3AjFOGLuAeTp7yUnMK/cYX8NDkrvLmOs+4EiZ+jyVPa+i4N
	xu34YIAvT+T/3X5bxD5aQKw/fcLTAL47IJBpjJK5Xfop1wYRpRcB2+pGVTjXu1Dn
	RtPTDqcA8JplFhoannqCX0ZYdhqBF7l6tLYrls0hdC9BOZQe9kcypmpR/YSGiS+D
	yRtm7b6NmZtQcxbrLsxJRKplXqbdarzFYrBpq7KcUy4lSP8U135BIBfuZXbZzHSa
	hCBI7E2Ye/GsN6gouZumRJE1HuHlemfp3gks3B/wxlVb5X6dTJal1Pz4VHCo8fy9
	ZVdICr7UG5fGtBVGDxDCZQ==
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=fm2; t=
	1744208864; x=1744295264; bh=MfijyQYDcPda47DdSZRiIYkh/3eI28U/U8O
	cAgi76Ng=; b=QyF6h7CXZiGXrhRGny4A2ertdba5J23lerGWe5HVcuJ5sQWixHN
	zBFvp7D3A707X7hJVquTdbrPRiZ1tnXQfi4i+IeUTwO1gQfjMROc+k55TYQOF28Q
	gP/cauv4lsaQGl5N2IZHfdgXcyg8vUL2Saz3p4fswi4iBQiifrCKe3yu/B/BJQKa
	5tu3U4XUvYccJ5IIjUKHexkkP9GML1ZO41m66JHZON+X/wgZ9jKZ9NhHAKbrhz4L
	u/SrOfEAlcC4rmemr6hx/OlDmFbnBMHC6Up9/9zQzdwNoU/7Ek51u6cLY7ZI/tbm
	hdI70glx4oYMEhBCKxDmdCJvgAp2AgOZdmw==
X-ME-Sender: <xms:34P2Z2aEVqiDXtGgvlmu5A6Q0pcO3McQfEATZQu4Y2WfnL6rPoBxmA>
    <xme:34P2Z5YfyDFXb1YPj0glIh2ouG82sjbNS5f4YMdFCrMaNOYtixYHThXJbR0aiBcoR
    Z6qnToWg0g8Rw>
X-ME-Received: <xmr:34P2Zw-PPiif2lIuvn9gEC2F89rLtcFAIU68lFQMsztodfKKcJR975U936Z015Dj9VoF01emd5lpYLJfsjnG6K5ZVwEOPRjQBQ>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvtdeivdegucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
    pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
    gvnhhtshculddquddttddmnecujfgurhepfffhvfevuffkfhggtggujgesghdtreertddt
    jeenucfhrhhomhepofgrrhgvkhcuofgrrhgtiiihkhhofihskhhiuceomhgrrhhmrghrvg
    hksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghr
    nhepgfekuddtffettefhieeuheffkeeuffelvdffuddtteetledtveekfeekleehjefgne
    cuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhm
    rghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdpnhgspghrtghpth
    htohepgedpmhhouggvpehsmhhtphhouhhtpdhrtghpthhtohepjhgsvghulhhitghhsehs
    uhhsvgdrtghomhdprhgtphhtthhopehrohhgvghrrdhprghusegtihhtrhhigidrtghomh
    dprhgtphhtthhopegrnhgurhgvfidrtghoohhpvghrfeestghithhrihigrdgtohhmpdhr
    tghpthhtohepgigvnhdquggvvhgvlheslhhishhtshdrgigvnhhprhhojhgvtghtrdhorh
    hg
X-ME-Proxy: <xmx:4IP2Z4rP4X-GWnjrK56VPYZ_Spl5SZk2uFAUmQLdpn1tvdBfihBoFA>
    <xmx:4IP2ZxoeF4-z7K-NxAB8iFYFVG-oN8SAZVaORFca_P2FFwdlHYINMg>
    <xmx:4IP2Z2TJwX5_swOYPBFna4oKMcywKm5gBxpT2dAFt24RDV6urRcgqw>
    <xmx:4IP2ZxopQOajVFx3GcBATX2tC-BmY2XtSx3J2Df-rfyMyA13WnwgBg>
    <xmx:4IP2Z4hX-tisiiPQt_mo9hhBDN0BEQmuEmtmErKf0SWtTpGJFbZn3zvW>
Feedback-ID: i1568416f:Fastmail
Date: Wed, 9 Apr 2025 16:27:40 +0200
From: Marek Marczykowski <marmarek@invisiblethingslab.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
Subject: Re: [PATCH 2/2] x86/hvm: fix write emulation of RO ranges
Message-ID: <Z_aD3TsQgrc3_id7@mail-itl>
References: <20250408093156.83277-1-roger.pau@citrix.com>
 <20250408093156.83277-3-roger.pau@citrix.com>
 <16c73cae-2ac0-4811-97d3-b25c95ed5abc@suse.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="Atdwa1+445GMBMc4"
Content-Disposition: inline
In-Reply-To: <16c73cae-2ac0-4811-97d3-b25c95ed5abc@suse.com>


--Atdwa1+445GMBMc4
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Wed, 9 Apr 2025 16:27:40 +0200
From: Marek Marczykowski <marmarek@invisiblethingslab.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
Subject: Re: [PATCH 2/2] x86/hvm: fix write emulation of RO ranges

On Tue, Apr 08, 2025 at 03:57:17PM +0200, Jan Beulich wrote:
> On 08.04.2025 11:31, Roger Pau Monne wrote:
> > When running on AMD hardware in HVM mode the guest linear address (GLA)
> > will not be provided to hvm_emulate_one_mmio(), and instead is
> > unconditionally set of ~0.  As a consequence mmio_ro_emulated_write() w=
ill
> > always report an error, as the fault GLA generated by the emulation of =
the
> > access won't be ~0.
>=20
> Which means subpage_mmio_write_accept() is flawed, too, on AMD (or more
> generally whenever .gla_valid isn't set).

That may explain issues I see when using XHCI console on AMD (I can
crash the whole thing using sequence of driver binding/unbinding in
dom0). That's actually the hw12 runner in the other series, but tests
that are included in gitlab do not trigger the issue (fortunately?). But
also, it may be a different issue, as it affects PV dom0 too...

Anyway, I can probably test a patch if subpage_mmio_write_accept() works
as intended (I'll need to check if that path is exercised on AMD too as
it depends on xhci caps layout - it was definitely used on Intel).

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

--Atdwa1+445GMBMc4
Content-Type: application/pgp-signature; name=signature.asc

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmf2g90ACgkQ24/THMrX
1ywcWQf/WRp1tx6i9Rj+PUYBG7IO7OjPjcumPru4On5EnXBkfoxDHWE6t9AAHJDE
FqFAthJ08xbBhPbwVlMelHa0b8Jv9qDNUSRlXS4ve6/VnK4Mc91wg8DUNr65S9ol
jTl2gF+B75ueieejtBprJrbhH8QilLHtSiO3FYZ9K5owZzOVVrFa+p5dnXASgiTs
Y6kNH/xgVCaZdHZ9JVTG5uxWxy1BD8by/ZqvP8vCbTOoegtTG5g2PPBpSwwlvvbN
TIMP6er/lHvLeMYJD5VkSksKnc3FmW5o3a6DtSoPIh6QRzEqjI7P4JpbpvmNNecb
40n787rMBZcNg7QFciYu4TtL/uXq3w==
=PnyM
-----END PGP SIGNATURE-----

--Atdwa1+445GMBMc4--


From xen-devel-bounces@lists.xenproject.org Wed Apr 09 14:57:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 14:57:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.944284.1342793 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2WrY-0002YE-Mo; Wed, 09 Apr 2025 14:57:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 944284.1342793; Wed, 09 Apr 2025 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 1u2WrY-0002Y7-KL; Wed, 09 Apr 2025 14:57:12 +0000
Received: by outflank-mailman (input) for mailman id 944284;
 Wed, 09 Apr 2025 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=L8O5=W3=gmail.com=ryabinin.a.a@srs-se1.protection.inumbo.net>)
 id 1u2WrX-0002Xz-CS
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 14:57:11 +0000
Received: from mail-lj1-x22b.google.com (mail-lj1-x22b.google.com
 [2a00:1450:4864:20::22b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e9ce0b73-1552-11f0-9eab-5ba50f476ded;
 Wed, 09 Apr 2025 16:57:10 +0200 (CEST)
Received: by mail-lj1-x22b.google.com with SMTP id
 38308e7fff4ca-30bec442a25so8991001fa.3
 for <xen-devel@lists.xenproject.org>; Wed, 09 Apr 2025 07:57:10 -0700 (PDT)
Received: from [172.27.52.232] (auburn-lo423.yndx.net. [93.158.190.104])
 by smtp.gmail.com with ESMTPSA id
 38308e7fff4ca-30f4649d61csm1929521fa.7.2025.04.09.07.57.08
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 09 Apr 2025 07:57: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: e9ce0b73-1552-11f0-9eab-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1744210630; x=1744815430; 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=XTxp3qW+KPuzf+zXWuGUYa2ldWHd+1dpKttsCAAJnR4=;
        b=UKxVpbEHCWM1jk/52cEX1EyDYb/4ziG1hh+P/Ecq6+kjEWalrvnwkRBxGQ7tXHnUT/
         cHb+UWieav5jX2iQSVHh2SCuBY2GoxWkEQA/l/5oRqITbZykQdI/bboQ+pdOXrR/Dhdf
         GhTS0jqphvrvp/2zFtGghhwPKasp7DGrnJO5kVBJtyDFY4/8H/biJ/HcOy0hJTuQuRQl
         cfvASKlXzAUdhLxZFnONzYGtWna+EI+N2LS4Rns3YnTAV9EgvE1PcjcuugXcXk/2m3QF
         x0DAiY6ULWyw5txWKo+vELJ8giUHiW6X1ECfHIG2xiDy7uFIakKDo8wcqcdqG3pZKdnI
         mprA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744210630; x=1744815430;
        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=XTxp3qW+KPuzf+zXWuGUYa2ldWHd+1dpKttsCAAJnR4=;
        b=vAaFK3M2UaWY7r7owl9Ff4TF7aSiCLm67Q4I4CFfj6v8c5waoQZWayx+bYC1z5AVJ1
         uRQAyK/SvbIsercs1bShT9fUsJAnBNLKoewpO0ualFNLhAxJekrEQh6fAPRg9nDpIFIq
         ntlrS2wHw3IwKS2Z+UMXYOd9aLaxJ9zdVE7CYzpCu7zrgLhxBaYvipCKRZG6LGzudt6p
         ++wwXZ7u0DA0Jb7LVWJUROBQEpZW2ExPXIl91tj/V2CwgMlGopzxXE0wiHG2PcRjYezk
         8rVXeFTvU1wZneFQqC/apW+vPFMb0e74L/lub5qdtrSIj77vReiEdW3LVC/i10zjAcnP
         zysA==
X-Forwarded-Encrypted: i=1; AJvYcCUilEp1QAj6uv2eLDQ70Fd+DRN8rdTcZlrJp/rxzscDFk/neaQ93405tcBOshT4DiBrdgSkdovXczA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzYCLQ7o8cV9LXGcLBX0SyBNLSp1ulvZXK//G+FdcLptD1grRdo
	94c4w++fpgLjgzTXUrTkJvCDa6E+92zL/zg6P+AYtf5XZaK9yuWi
X-Gm-Gg: ASbGncu5c2jsHk1hKg7tVb/yfAJF75FzMCjAGJo8aKs0vjVgR4Hy4qdUbhkzoSUqDAJ
	6eS1rhREMtzdgvR1R8teLK6C9+/lRuBt6hz6WpTh7HMzZICjwvfmG0LEB7CqoPQZmGp/gDotSwR
	xCWIY214qTP4RbtA6C9pa9NIq0YIhgwt27I4k02W7J/sZ4Zk7+Lu6Wbr7GBwxVdzrKORs8NJEcx
	sY/KVCIqo5ifmfsv4muom4dTMRnZs9mGPmjvEZ+DA+lycGAX7vZlw2rTQRbrwuy1/LQIJ59f1qS
	zoj/eTE82/FIf5POZEhymKKf/hs4Y7HeuzLGF1K8hd0M9np6w4cBzmJ5vG7rJXXLIuN0Kg==
X-Google-Smtp-Source: AGHT+IG7fk9emZaqKs/kKGowvaUASd2CDo9SSBq5dR2zvDPKxRK4W1C4hr7cqLTnQPNN0OUJNfi0kg==
X-Received: by 2002:a05:651c:221a:b0:30d:62c1:3bfc with SMTP id 38308e7fff4ca-30f4387ba49mr2911011fa.7.1744210629436;
        Wed, 09 Apr 2025 07:57:09 -0700 (PDT)
Message-ID: <02d570de-001b-4622-b4c4-cfedf1b599a1@gmail.com>
Date: Wed, 9 Apr 2025 16:56:29 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/3] kasan: Avoid sleepable page allocation from atomic
 context
To: Alexander Gordeev <agordeev@linux.ibm.com>
Cc: Andrew Morton <akpm@linux-foundation.org>, Hugh Dickins
 <hughd@google.com>, Nicholas Piggin <npiggin@gmail.com>,
 Guenter Roeck <linux@roeck-us.net>, Juergen Gross <jgross@suse.com>,
 Jeremy Fitzhardinge <jeremy@goop.org>, linux-kernel@vger.kernel.org,
 linux-mm@kvack.org, kasan-dev@googlegroups.com, sparclinux@vger.kernel.org,
 xen-devel@lists.xenproject.org, linuxppc-dev@lists.ozlabs.org,
 linux-s390@vger.kernel.org, stable@vger.kernel.org
References: <cover.1744128123.git.agordeev@linux.ibm.com>
 <2d9f4ac4528701b59d511a379a60107fa608ad30.1744128123.git.agordeev@linux.ibm.com>
 <3e245617-81a5-4ea3-843f-b86261cf8599@gmail.com>
 <Z/aDckdBFPfg2h/P@li-008a6a4c-3549-11b2-a85c-c5cc2836eea2.ibm.com>
Content-Language: en-US
From: Andrey Ryabinin <ryabinin.a.a@gmail.com>
In-Reply-To: <Z/aDckdBFPfg2h/P@li-008a6a4c-3549-11b2-a85c-c5cc2836eea2.ibm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit



On 4/9/25 4:25 PM, Alexander Gordeev wrote:
> On Wed, Apr 09, 2025 at 04:10:58PM +0200, Andrey Ryabinin wrote:
> 
> Hi Andrey,
> 
>>> @@ -301,7 +301,7 @@ static int kasan_populate_vmalloc_pte(pte_t *ptep, unsigned long addr,
>>>  	if (likely(!pte_none(ptep_get(ptep))))
>>>  		return 0;
>>>  
>>> -	page = __get_free_page(GFP_KERNEL);
>>> +	page = __get_free_page(GFP_ATOMIC);
>>>  	if (!page)
>>>  		return -ENOMEM;
>>>  
>>
>> I think a better way to fix this would be moving out allocation from atomic context. Allocate page prior
>> to apply_to_page_range() call and pass it down to kasan_populate_vmalloc_pte().
> 
> I think the page address could be passed as the parameter to kasan_populate_vmalloc_pte().

We'll need to pass it as 'struct page **page' or maybe as pointer to some struct, e.g.:
struct page_data {
 struct page *page;
};


So, the kasan_populate_vmalloc_pte() would do something like this:

kasan_populate_vmalloc_pte() {
	if (!pte_none)
		return 0;
	if (!page_data->page)
		return -EAGAIN;

	//use page to set pte

        //NULLify pointer so that next kasan_populate_vmalloc_pte() will bail
	// out to allocate new page
	page_data->page = NULL; 
}

And it might be good idea to add 'last_addr' to page_data, so that we know where we stopped
so that the next apply_to_page_range() call could continue, instead of starting from the beginning. 


> 
>> Whenever kasan_populate_vmalloc_pte() will require additional page we could bail out with -EAGAIN,
>> and allocate another one.
> 
> When would it be needed? kasan_populate_vmalloc_pte() handles just one page.
> 

apply_to_page_range() goes over range of addresses and calls kasan_populate_vmalloc_pte()
multiple times (each time with different 'addr' but the same '*unused' arg). Things will go wrong
if you'll use same page multiple times for different addresses.


> Thanks!



From xen-devel-bounces@lists.xenproject.org Wed Apr 09 15:34:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 15:34:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.944303.1342804 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2XRI-0005Jc-CY; Wed, 09 Apr 2025 15:34:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 944303.1342804; Wed, 09 Apr 2025 15:34: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 1u2XRI-0005JV-9M; Wed, 09 Apr 2025 15:34:08 +0000
Received: by outflank-mailman (input) for mailman id 944303;
 Wed, 09 Apr 2025 15:34:06 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Ii2m=W3=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u2XRG-0005JP-Td
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 15:34:06 +0000
Received: from mail-pf1-x42a.google.com (mail-pf1-x42a.google.com
 [2607:f8b0:4864:20::42a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0f4a8084-1558-11f0-9ffb-bf95429c2676;
 Wed, 09 Apr 2025 17:34:01 +0200 (CEST)
Received: by mail-pf1-x42a.google.com with SMTP id
 d2e1a72fcca58-736ab1c43c4so6754492b3a.1
 for <xen-devel@lists.xenproject.org>; Wed, 09 Apr 2025 08:34:01 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 d2e1a72fcca58-73bb1d6b213sm1477854b3a.81.2025.04.09.08.33.57
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 09 Apr 2025 08:33: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: 0f4a8084-1558-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744212840; x=1744817640; 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=w/W5F+qYt8PXbLAtoEpok03W4FU6RWVBrJ3vedp3TnE=;
        b=wCy/rZxwS3HiKgY45d+WKlOY1NdyuU7Ng/no5CpyAr5guiFpe33DRbXLAmJ9FZ/wMZ
         b4bHEMjrlSaSyJO0/r2wA9BnnofpLrwvAMGi8JW+truzP6wMINVoN0xbyu8/TzOAWCOD
         CS0lwAT2olUWiBVOZmN4zCG/a5BTa7RkYHk3Q=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744212840; x=1744817640;
        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=w/W5F+qYt8PXbLAtoEpok03W4FU6RWVBrJ3vedp3TnE=;
        b=rN5MQP0LrtVdLit6WSnEeXR4D/sIAh0GYbq2uG8yq50DcwQ3mT5HUeKEuvqVxqsyuQ
         N7omLPKvKIEQD6qEgWiOi2t+nfQTablZ+uxvd0EqC1oUbAcso6v5FDg2R+zExGq2AQMA
         Njy9Z2X2eOqKurfJS3Yo9mElvdKJXOU6ZtldveNSW2Dq4sMl0zxM+CrYvJKxVXb9hIwQ
         d2nHJSPz+W1xED1GGEWO1JxH9DE1qq8mpT41XMNvf12/kzwhsTgmnRXa8BclxFzygWHM
         amKgkU8FvG4Uu4B4gbLi2wvPVGr6UwmjZMhKotnmdLDAhXFND/GywZxZHwGxgWkMk8yq
         mFHQ==
X-Forwarded-Encrypted: i=1; AJvYcCWARW2K4pJv1Vv25rHTD23H6XSsUTEsMrNHbvp9VWCRIz5XVUJfX2ODE/r9OY1oz4XdDsBB4Inj5R8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyHht9z03+iM5U1TEjjt+zuPJys/GxHVDDnVDWbZ/9LXSMUOALw
	lolU6r1Wp9mcU7UHzwsHTGBv2R2xtPjWl+v82peNOKcZRaQcgiCkx9fPg5syN1U=
X-Gm-Gg: ASbGncuHHuJBuoeqj5ELCpro20GsC1BOHWYAVo7ZXPtXY9MqGeVvAIAyfr3BwUPuKXQ
	Sq85mTsMBR9IbOHRNU2Y5smu/tIqmwdf0i9GPotZKAe6RETzWRb1oVOjq7Z4SAjitpp4fn8EfhG
	vpPX98U87KI0xEJJuI//J2+qU3dz50QvEjRxDsQ+DHpqKIZZmYeXgbuzeErWDZ6SZYLCDNuWLkp
	+g4N8Hv4FmwdFUB2C1qJR0h5zw+9KrzCbwAq02nA7BX4501RwVvtemN3kfQ6jTDu5e5kd9RQ5AP
	koWMvdra5NSQtj8IRadWe0z1b+R26srrpfg+kg6EA8Zr0g==
X-Google-Smtp-Source: AGHT+IFA3j+02TX+d+gpiwEmkg5gbhJ3HVHY9+LymeFqmgaU98z+MWKDoXpJGL54adO/mFdehScKAA==
X-Received: by 2002:a05:6a00:2186:b0:736:53f2:87bc with SMTP id d2e1a72fcca58-73bafc16c54mr3523882b3a.13.1744212839913;
        Wed, 09 Apr 2025 08:33:59 -0700 (PDT)
Date: Wed, 9 Apr 2025 17:33:54 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Marek Marczykowski <marmarek@invisiblethingslab.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH 2/2] x86/hvm: fix write emulation of RO ranges
Message-ID: <Z_aTYmiOLEfKTend@macbook.lan>
References: <20250408093156.83277-3-roger.pau@citrix.com>
 <16c73cae-2ac0-4811-97d3-b25c95ed5abc@suse.com>
 <Z_Y4xFzaltr_XKO4@macbook.lan>
 <ef0b6eea-a7e5-406d-a8ba-062b3c6e17e1@suse.com>
 <Z_ZOWAttoFNoFYCV@macbook.lan>
 <2df78a5d-2f9f-4866-81cc-03ae09c76d50@suse.com>
 <Z_Z3PYYSBH3QWioF@macbook.lan>
 <8709e7af-5827-4c96-9f6b-1f548045040d@suse.com>
 <Z_Z9unJ-wS2dXxUV@macbook.lan>
 <b1e8e761-ddf9-4e4f-b5bb-624b2e7d012c@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <b1e8e761-ddf9-4e4f-b5bb-624b2e7d012c@suse.com>

On Wed, Apr 09, 2025 at 04:08:47PM +0200, Jan Beulich wrote:
> On 09.04.2025 16:01, Roger Pau Monné wrote:
> > On Wed, Apr 09, 2025 at 03:50:13PM +0200, Jan Beulich wrote:
> >> On 09.04.2025 15:33, Roger Pau Monné wrote:
> >>> On Wed, Apr 09, 2025 at 02:59:45PM +0200, Jan Beulich wrote:
> >>>> On 09.04.2025 12:39, Roger Pau Monné wrote:
> >>>>> On Wed, Apr 09, 2025 at 12:00:16PM +0200, Jan Beulich wrote:
> >>>>>> On 09.04.2025 11:07, Roger Pau Monné wrote:
> >>>>>>> On Tue, Apr 08, 2025 at 03:57:17PM +0200, Jan Beulich wrote:
> >>>>>>>> On 08.04.2025 11:31, Roger Pau Monne wrote:
> >>>>>>>>> When running on AMD hardware in HVM mode the guest linear address (GLA)
> >>>>>>>>> will not be provided to hvm_emulate_one_mmio(), and instead is
> >>>>>>>>> unconditionally set of ~0.  As a consequence mmio_ro_emulated_write() will
> >>>>>>>>> always report an error, as the fault GLA generated by the emulation of the
> >>>>>>>>> access won't be ~0.
> >>>>>>>>
> >>>>>>>> Which means subpage_mmio_write_accept() is flawed, too, on AMD (or more
> >>>>>>>> generally whenever .gla_valid isn't set).
> >>>>>>>
> >>>>>>> Oh, yes, good catch.  I didn't notice that one.  We should move all
> >>>>>>> those checks to use a paddr rather than a gla.
> >>>>>>
> >>>>>> Really that function could just be passed the offset into the page.
> >>>>>>
> >>>>>>>>> Fix this by only checking for the fault GLA in mmio_ro_emulated_write()
> >>>>>>>>> when the guest is PV.
> >>>>>>>>
> >>>>>>>> This narrows checking too much, imo. For VT-x we could continue to do so,
> >>>>>>>> provided we pass e.g. npfec down into hvm_emulate_one_mmio(), i.e. make
> >>>>>>>> the gla_valid flag visible there.
> >>>>>>>
> >>>>>>> I don't think we should rely on the gla at all in
> >>>>>>> mmio_ro_emulated_write(), and instead just use the physical address.
> >>>>>>
> >>>>>> But you can't validate a physical address against a CR2 value. And I view
> >>>>>> this validation as meaningful, to guard (best effort, but still) against
> >>>>>> e.g. insn re-writing under our feet.
> >>>>>
> >>>>> But we have the mfn in mmio_ro_ctxt, and could possibly use that to
> >>>>> validate?  I could expand the context to include the offset also, so
> >>>>> that we could fully validate it.
> >>>>
> >>>> How would you use the MFN to validate against the VA in CR2?
> >>>
> >>> I would use hvmemul_virtual_to_linear()
> >>
> >> If you mean to use the CR2 as input, you wouldn't need this. I said VA in
> >> my earlier reply, yes, but strictly speaking that's a linear address.
> > 
> > I was thinking about using the segment and offset parameters of the
> > mmio_ro_emulated_write() call.
> > 
> >>> and hvm_translate_get_page()
> >>> to get the underlying mfn of the linear address.  But maybe there's a
> >>> part of this that I'm missing, I've certainly haven't tried to
> >>> implement any of it.
> >>
> >> Hmm, I see. I didn't think of doing it this way round. There's certainly
> >> at least one caveat with this approach: Multiple linear addresses can all
> >> map to the same GFN and hence MFN. Checking against the original linear
> >> address (when available) doesn't have such an issue.
> > 
> > I see... Yet for AMD that address is not uniformly available as part
> > of the vmexit information?
> 
> Even stronger, I thought: It's uniformly not available.

Oh yes, that's what I meant to say but got the words the other way
around.

> >  As I understand the checks done in
> > mmio_ro_emulated_write() are to ensure correctness, but carrying the
> > access even when the %cr2 check fail wouldn't cause issues to Xen
> > itself?
> 
> Well, "wouldn't" is too strong for my taste, "shouldn't" would fit. The
> checking is there to avoid guests playing games. Whether that prevents
> merely in-guest just-bugs or actual XSAs we can't know until we find a
> case where the game playing might make us do something wrong. I expect
> it's unlikely for Xen itself to be affected. But an in-guest privilege
> escalation would already be bad enough.

I see.  That was kind of my understanding of the checks.  At least on
HVM it feels a bit weird to handle r/o regions this way.  It would IMO
be more natural to use an hvm_io_handler, but that's maybe because I'm
more familiar with those.

And in that regard, hvm_io_handler don't seem to do any of the extra
checking that mmio_ro_emulated_write() does with the %cr2, but maybe
that's done by some higher layer?  AFAICT that would ultimately get
called by hvmemul_read(), and there are no checks there at all.

> So why don't we do the linear address check as we do today (provided a
> linear address is available), and only use the alternative approach when
> no linear address is available?

I can try to do that, albeit as said above, at least for HVM guests
that checking of %cr2 seems to be quite inconsistent, as
hvmemul_{read,write}() won't do any of it.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Apr 09 16:37:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 16:37:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.944346.1342880 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2YQO-0006Ds-1H; Wed, 09 Apr 2025 16:37:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 944346.1342880; Wed, 09 Apr 2025 16:37: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 1u2YQN-0006BE-SM; Wed, 09 Apr 2025 16:37:15 +0000
Received: by outflank-mailman (input) for mailman id 944346;
 Wed, 09 Apr 2025 16:37: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=fbf/=W3=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u2YQM-0004du-GT
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 16:37:14 +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 e40489f6-1560-11f0-9eab-5ba50f476ded;
 Wed, 09 Apr 2025 18:37:13 +0200 (CEST)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-43690d4605dso48219915e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 09 Apr 2025 09:37:13 -0700 (PDT)
Received: from localhost.localdomain (host-92-26-98-202.as13285.net.
 [92.26.98.202]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43f233c817dsm20947455e9.23.2025.04.09.09.37.12
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 09 Apr 2025 09:37: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: e40489f6-1560-11f0-9eab-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744216633; x=1744821433; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=I2mT/JfncdqV5tSU+jW+RQIjWQnr3c8c6UD7AZjsbPw=;
        b=tflH/FYjDwX7xQc0Ia9LGU84CfnbLIXcTvbwtUHYYrdbsWUAMGqgRikS0cOx+cwORv
         qseHPNuC+6EeGZHrp2mRF8wGpjejY3QwGX8zM9ujCd/gy83ADxzp0ikGDWp1xQFrVn2t
         G5o7cvpfUnsYb97zvjUOY8Zrm7R/egfYbkrws=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744216633; x=1744821433;
        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=I2mT/JfncdqV5tSU+jW+RQIjWQnr3c8c6UD7AZjsbPw=;
        b=Lu0tdoAItzoYStkBI7a/Yv5BdHO0qmPTG16DkftYO/e8SxN8EU/n9kMNxk+bdjd+Mm
         Delr1oA26YfCtREZhJoh8h37DVBaRIiI8Jha6ZNOYEQyckteCkMGyEjkitk+/aZm1PZS
         KerNPPvCyiWWGHd6uqHkgiKW37daRIQXXIU3OTXuSQLwXrePaCtI+soqx7PndB0TOFOP
         0beXwN3ge7aB7ltbLjbFazBANLzP+VOagxggIoEDAFoENA0wxzwbn+3oHXiP+Q1iqfpx
         8SU2gbX/0fQCmBbURbgf1RiakFW11XMlo+4DZAsWMXm73Km0DZx6KlFCPc7pB2S6j4rX
         VB1A==
X-Gm-Message-State: AOJu0YweKRBvBnsRyUsE4oQTu2eWcoNX10OnK4Y9n80l83+aIWrxzMx+
	C/HK5ik730Zy2BDZ7gtEMp3pf5R7IdI1ytJ7Ic7C4cgTVNlBZqJgNXA2l7MWSJ+CNMa1ZsjSM8X
	Na8o=
X-Gm-Gg: ASbGncvlwWkczXAWWpfqpWCMHE7N9ZvyL7qw/CbbCB3cMN9qWNaE2SK8gotUoF4yNoh
	J+I3nYhZc/XscCR2rqexy7svQjcfNsG+j4Tnu4Be5NQ0VpI1Pw9aP0gVPyTA5GITib45D2DcUrd
	61y1sLqm9qNljeh0LNCY7pKeAUW7Hekp0Carr5lKKhJN0BQcZrxSUGt4xpixsqTzLl1op44ysq9
	hXBSa5UP0paVewGvSIKhAPJ7aDvfk+cWLfke9ou+KjxxlBbp5kq6xMwYCbVzpzm2WsHiBytJuXh
	fd1MV4d5a4oZRpO2taOwxrufPuTyXwxMgoCMBam2ViK2e/ERR46K9pUQH2JfBnyTQVuOTp4VJkC
	PLrrQXIsoh7SanksRHx9h/ydu
X-Google-Smtp-Source: AGHT+IFeAOIEsPP+PKgdQeDrOa66hkGlAAR3QFoVe90GA0l/Y3sZ1wzkRcbvByRiqErOlzaGnHWv8Q==
X-Received: by 2002:a05:6000:40d9:b0:39a:c9ed:8555 with SMTP id ffacd0b85a97d-39d88539008mr3376723f8f.23.1744216632825;
        Wed, 09 Apr 2025 09:37:12 -0700 (PDT)
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>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH 7/8] Infrastructure for arm64 linux builds
Date: Wed,  9 Apr 2025 17:37:01 +0100
Message-Id: <20250409163702.2037301-8-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250409163702.2037301-1-andrew.cooper3@citrix.com>
References: <20250409163702.2037301-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Michal Orzel <michal.orzel@amd.com>
CC: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
CC: Anthony PERARD <anthony.perard@vates.tech>
---
 .gitlab-ci.yml                            |  7 ++++++
 containerize                              |  1 +
 images/alpine/3.18-arm64-build.dockerfile | 27 +++++++++++++++++++++++
 scripts/build-linux.sh                    | 10 +++++++++
 4 files changed, 45 insertions(+)
 create mode 100644 images/alpine/3.18-arm64-build.dockerfile

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index ff8dce7be05d..6e38c2f2a108 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -19,6 +19,13 @@ stages:
     exclude:
       - binaries/.gitignore
 
+.arm64-artifacts:
+  extends: .artifacts
+  tags:
+    - arm64
+  variables:
+    CONTAINER: alpine:3.18-arm64-build
+
 .x86_64-artifacts:
   extends: .artifacts
   tags:
diff --git a/containerize b/containerize
index c32e40f5a6d9..6664ef9821d0 100755
--- a/containerize
+++ b/containerize
@@ -24,6 +24,7 @@ die() {
 #
 BASE="registry.gitlab.com/xen-project/hardware/test-artifacts"
 case "_${CONTAINER}" in
+    _alpine-3.18-arm64-build) CONTAINER="${BASE}/alpine:3.18-arm64-build" ;;
     _alpine-x86_64-base) CONTAINER="${BASE}/alpine:x86_64-base" ;;
     _alpine-x86_64-build|_) CONTAINER="${BASE}/alpine:x86_64-build" ;;
 esac
diff --git a/images/alpine/3.18-arm64-build.dockerfile b/images/alpine/3.18-arm64-build.dockerfile
new file mode 100644
index 000000000000..c76ac435e8dd
--- /dev/null
+++ b/images/alpine/3.18-arm64-build.dockerfile
@@ -0,0 +1,27 @@
+# syntax=docker/dockerfile:1
+FROM --platform=linux/arm64/v8 alpine:3.18
+LABEL maintainer.name="The Xen Project" \
+      maintainer.email="xen-devel@lists.xenproject.org"
+
+RUN apk --no-cache add bash
+
+RUN bash -ex <<EOF
+      adduser -D user --shell bash
+
+      DEPS=(# Base environment
+            musl-dev
+            build-base
+            curl
+
+            # Linux build deps
+            flex
+            bison
+            perl
+            openssl-dev
+      )
+
+      apk add --no-cache "\${DEPS[@]}"
+EOF
+
+USER user
+WORKDIR /build
diff --git a/scripts/build-linux.sh b/scripts/build-linux.sh
index 5e25e958c0f3..1be20a38071d 100755
--- a/scripts/build-linux.sh
+++ b/scripts/build-linux.sh
@@ -21,6 +21,7 @@ cd linux-"${LINUX_VERSION}"
 make defconfig
 ./scripts/config --enable BRIDGE
 ./scripts/config --enable IGC
+./scripts/config --enable IPV6
 ./scripts/config --enable TUN
 
 case $UNAME in
@@ -32,6 +33,10 @@ case $UNAME in
             | grep '=m' \
             | sed 's/=m/=y/g' >> .config
         ;;
+
+    aarch64)
+        ./scripts/config --enable XEN_NETDEV_BACKEND
+        ;;
 esac
 
 make olddefconfig
@@ -41,4 +46,9 @@ case $UNAME in
         make -j$(nproc) bzImage
         cp arch/x86/boot/bzImage "${COPYDIR}"
         ;;
+
+    aarch64)
+        make -j$(nproc) Image
+        cp arch/arm64/boot/Image "${COPYDIR}"
+        ;;
 esac
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Wed Apr 09 16:37:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 16:37:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.944340.1342824 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2YQJ-0004s9-4m; Wed, 09 Apr 2025 16:37:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 944340.1342824; Wed, 09 Apr 2025 16:37: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 1u2YQJ-0004s2-23; Wed, 09 Apr 2025 16:37:11 +0000
Received: by outflank-mailman (input) for mailman id 944340;
 Wed, 09 Apr 2025 16:37: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=fbf/=W3=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u2YQI-0004du-Fz
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 16:37:10 +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 e1d912c0-1560-11f0-9eab-5ba50f476ded;
 Wed, 09 Apr 2025 18:37:10 +0200 (CEST)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-43cfdc2c8c9so41017625e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 09 Apr 2025 09:37:10 -0700 (PDT)
Received: from localhost.localdomain (host-92-26-98-202.as13285.net.
 [92.26.98.202]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43f233c817dsm20947455e9.23.2025.04.09.09.37.08
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 09 Apr 2025 09:37: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: e1d912c0-1560-11f0-9eab-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744216629; x=1744821429; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=HPj2BkEUlG19zfMbN8eKndFls2Zns5SZnbPzD3KxiXw=;
        b=GwDU6u2JfWP9nKc/jsTflcNXZc/ldRL2c9KHd8eMtnuy01+p9g7NPV1aQe9qTQ3/Y0
         rYW5SIv+j9kbskPGEoylAz4DYAw3PcnrStceBdm5da7SbspMxfK03XdAN06FAJ1DyZm4
         EErAHaTwVxXZi49BttxMPiwM6HgPaVa+RQSow=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744216629; x=1744821429;
        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=HPj2BkEUlG19zfMbN8eKndFls2Zns5SZnbPzD3KxiXw=;
        b=LjNlczB6I1leIZlO59FThG6xM6e5MPwC8G9QHN4jhbot9yAJ03PyO5ejUVVGnm1RZb
         MKAiiXoQPIlJkBQoUeCA7f6BnpvfV+eiP7BgVL431d9XR+INM3JP0DeLDj2hJa6x1g0B
         y1n6PtmxnUtAbtp2+zgF2qa4S2efJ7vIE2SUTckDd7BMdp7IUPUSuXWMRBHECPBFZKLP
         5PXOFq49/kJsBoEUgpk3dM5BzoXcq0zT6GaWOHWPVhVr55NNDXkzwcWlpvSivVcvIaiO
         Xi9X7J98Yxdup9l4Hmn268GnIp/Az1fvwFCSEaofXTIwVi4GV7qtzRCX6h1w926kvJLO
         AwsQ==
X-Gm-Message-State: AOJu0Yyyhy9pnvZDjwdFdh5XsRV5wnqlHM7B9YLWGF1W170vbdiUxcD2
	/wgRUAb3CwMqUEcua7633mVJ08KHU42kR/gkGlKfPDZMTeU1q5lMsIf6fLuVf4CoYaDu+57StI7
	G4Hc=
X-Gm-Gg: ASbGncsR8xRvy1HmM7M/WcI3OCICuWHOD0+d+RMD9Y/Nh3BVbLUZ3/+UXM/mdCB3zUP
	sUrez0cxFdxD96Xp9D9gdAIrqpgRa5pVQSAO3izcG51Zee9aMoMxL4+EPYfuH9Dwz1TYDmLXfO8
	QIQXEieVUyPw93gJ/bD95udJ1Vda27YgTk1ZnF+cdlTZEUH1FvSpHdmOo3B2gAWvn9ujaTuzQb/
	OrRvpBFk35uRe+HNwscOG8y9D7Z4xqR0fsT+qNNJAcb8NcXFvKTDVE87Dcgx4UqdTHjPycrJoPd
	IBivQQ9V8S1RG7SS4xRdh8pT4xWUHxh+f+BVSfIik4Rp9el8TMCKZEzE2/jF5HfTTP+1V6WNr47
	ddVuUXcIfmAd5wQ==
X-Google-Smtp-Source: AGHT+IEhNqBFFFM0nTh5hLtgrHCJrROHI9w4zseqll/oh/0Ofo7RMHkm7cZtluTAVt65V+deuommFA==
X-Received: by 2002:a05:600c:1c02:b0:43b:c5a3:2e1a with SMTP id 5b1f17b1804b1-43f1ec7cc9cmr38097685e9.2.1744216629188;
        Wed, 09 Apr 2025 09:37:09 -0700 (PDT)
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>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH 3/8] Fix container user setup
Date: Wed,  9 Apr 2025 17:36:57 +0100
Message-Id: <20250409163702.2037301-4-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250409163702.2037301-1-andrew.cooper3@citrix.com>
References: <20250409163702.2037301-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Use USER (and 'user' as normal), rather than specifying configuration from the
outside.  This also fixes the fact that root-needing containers need to
override the default.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Michal Orzel <michal.orzel@amd.com>
CC: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
CC: Anthony PERARD <anthony.perard@vates.tech>
---
 .gitlab-ci.yml                        | 7 -------
 images/alpine/x86_64-build.dockerfile | 7 ++++---
 2 files changed, 4 insertions(+), 10 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 7e18a87b3a07..36ec6a7e1ee5 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -14,10 +14,6 @@ workflow:
 
 .x86_64-artifacts:
   extends: .artifacts
-  image:
-    docker:
-      platform: linux/amd64
-      user: xenproject
   tags:
     - x86_64
   variables:
@@ -32,9 +28,6 @@ x86_64-kernel-linux-6.6.56:
 
 x86_64-rootfs-alpine-3.18:
   extends: .x86_64-artifacts
-  image:
-    docker:
-      user: root
   script:
     - . scripts/x86_64-rootfs-alpine.sh
   variables:
diff --git a/images/alpine/x86_64-build.dockerfile b/images/alpine/x86_64-build.dockerfile
index 3bfd17248d0a..6bfdb6ff5a0c 100644
--- a/images/alpine/x86_64-build.dockerfile
+++ b/images/alpine/x86_64-build.dockerfile
@@ -3,12 +3,10 @@ FROM --platform=linux/amd64 alpine:3.18
 LABEL maintainer.name="The Xen Project" \
       maintainer.email="xen-devel@lists.xenproject.org"
 
-WORKDIR /build/
-
 RUN apk --no-cache add bash
 
 RUN bash -ex <<EOF
-      adduser -D xenproject --shell bash
+      adduser -D user --shell bash
 
       DEPS=(
             musl-dev
@@ -29,3 +27,6 @@ RUN bash -ex <<EOF
 
       apk add --no-cache "\${DEPS[@]}"
 EOF
+
+USER user
+WORKDIR /build
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Wed Apr 09 16:37:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 16:37:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.944339.1342814 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2YQG-0004e7-VE; Wed, 09 Apr 2025 16:37:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 944339.1342814; Wed, 09 Apr 2025 16:37: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 1u2YQG-0004e0-Rp; Wed, 09 Apr 2025 16:37:08 +0000
Received: by outflank-mailman (input) for mailman id 944339;
 Wed, 09 Apr 2025 16:37: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=fbf/=W3=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u2YQG-0004du-FR
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 16:37:08 +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 e03dd8f9-1560-11f0-9eab-5ba50f476ded;
 Wed, 09 Apr 2025 18:37:07 +0200 (CEST)
Received: by mail-wr1-x429.google.com with SMTP id
 ffacd0b85a97d-39c31e4c3e5so4386323f8f.0
 for <xen-devel@lists.xenproject.org>; Wed, 09 Apr 2025 09:37:07 -0700 (PDT)
Received: from localhost.localdomain (host-92-26-98-202.as13285.net.
 [92.26.98.202]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43f233c817dsm20947455e9.23.2025.04.09.09.37.05
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 09 Apr 2025 09:37: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: e03dd8f9-1560-11f0-9eab-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744216626; x=1744821426; 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=o7f6YtoFpANmOKJW9HXTVsTqmlMIMm/vITFVLirPZXE=;
        b=MwhdD3nYX6yGWBjBWntvrQl2kcvH+Wl6j5VrS+dovmWCuX8Q4VCPtkEabzOYIVEWGM
         Em5XmmyTKW+/m96yAzSKppfCikyMtYHEZaACHRmTyzIA5cJsa7zmbAs7RPYeveK8TcMc
         fA81wtZcAP0YtuW+K3F6WwEwePRWHtXK1GEyc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744216626; x=1744821426;
        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=o7f6YtoFpANmOKJW9HXTVsTqmlMIMm/vITFVLirPZXE=;
        b=fXIGGX405EwIJ8j0DeAYYtBLb1iZ+/Fz316FulJJvPpFL3VHowhpLWA/jmwU6664WH
         Obu/yw8O3fndAM37f3WT/1PtZ5ki8XVyqZPjL814BYx9Buy/3pGS9Fw+pG0CLGMn+hWk
         pM2NhODGoRDez2ltM3K4AL0uDfyQeNx4U8yvjjbr/ldrYjRWgy0yVwC+vav/L64L1jy/
         r/j7gExTc4WU4kfm1sotDAeJtxi/QJjA0jWqPuXEVkmPb3NOJXt3VcLIZ+t75rUssWgb
         wDQeHlPcA00zFjzQP7/BZE8dKiPCQf2mVU3wYt9L5mBHcvzdOq+vYQJtdbA8GQJptYfO
         vbZg==
X-Gm-Message-State: AOJu0YyrU1q/JbDfMSd5r4sV9OUhsvfBoiiHf0BRQWOCF8KqBQNAYfWI
	02eMxpK8XyWgvMXhQbSA1zZHR/2NnLQoNxQrThjvVybli0BkkKrg8F4NKrm9opyz6iWLQ0bsNwS
	haQw=
X-Gm-Gg: ASbGnctqIk5FsKWYP6eg+f4xEow0P1R2ostkDTvyCfzho9Hdu5QcXFcXwHr494nmejo
	ijkmoQLAplgeaF/fCOyPIAebML4YEBzX4lOs3h9IRXR6M6nZnObmAK7jaIYWfZ4eUpb0PrATtdL
	ryWeDr+8Q4U+JLFfD+JdV2P9Rapf35PbXDZN54zW4UikUINtcnFoXBZ2//Dp3A+SI+5boqY/u6C
	iq2KyOkJyn4EsbB2BdFXmIn38r6rUfYECyDHlP9t26r6MORoIlTO12mJMjLXZWdddCROyyR3ELM
	xjixZ4i/Z/oHm2YmiTGV+dZoCUfgeUihmq8qH0f/3S/0e/RqJR3POj/lBldB9/yQyH3Ai6fE3aM
	7oM29Jb88G3as8g==
X-Google-Smtp-Source: AGHT+IHwZLdULMDOr4DV788g/vpvaXTaDzDUcYrg+MHb78FBAIzgpTfHNCyYHyJQLfDwAZ87GDElJw==
X-Received: by 2002:a5d:6da7:0:b0:391:2f15:c1f4 with SMTP id ffacd0b85a97d-39d8856a0a1mr3093712f8f.55.1744216626423;
        Wed, 09 Apr 2025 09:37:06 -0700 (PDT)
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>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH TEST-ARTEFACTS 0/8] Cleanup and Linux ARM64 support
Date: Wed,  9 Apr 2025 17:36:54 +0100
Message-Id: <20250409163702.2037301-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

Various bits of cleanup, and support for arm64 Linux builds.

Run using the new Linux 6.6.86 on (most) x86, and ARM64:
  https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/1760667411

Still to go:
 - Merge argo into the linux build (as it builds a module), strip devel artefacts
 - Rootfs generation, both x86 and ARM64

The argo kernel module and userspace should be a CPIO fragment too, as it's
embedded into both dom0 and domU in the relevant test.

Switching from tar to cpio can happen when the artefact name changes; which
fixes the backwards comptibility concerns.  In hindsight, domU shouldn't be
automatically embedded in dom0, as several tests further customise it; the
test job can adjust, then wrap the whole lot in a CPIO and append it to
dom0's.

Xen's main build jobs should either build with --prefix=/usr, or the common
rootfs wants to set up /usr/local/, because right now it's done by all jobs.

Andrew Cooper (7):
  Port containerise
  Fix container user setup
  Clean up Gitlab yaml
  Adjust Linux build script to work with other major versions
  Factor our x86-isms in the linux build script
  Infrastructure for arm64 linux builds
  Linux 6.6.86 for x86 and arm64

Marek Marczykowski-Górecki (1):
  Consistently use DOCKER_CMD in makefiles

 .gitlab-ci.yml                                | 43 ++++++---
 containerize                                  | 95 +++++++++++++++++++
 images/Makefile                               |  5 +-
 ...dockerfile => 3.18-arm64-build.dockerfile} | 22 ++---
 images/alpine/x86_64-build.dockerfile         |  7 +-
 scripts/build-linux.sh                        | 54 +++++++++++
 scripts/x86_64-kernel-linux.sh                | 31 ------
 7 files changed, 197 insertions(+), 60 deletions(-)
 create mode 100755 containerize
 copy images/alpine/{x86_64-build.dockerfile => 3.18-arm64-build.dockerfile} (55%)
 create mode 100755 scripts/build-linux.sh
 delete mode 100755 scripts/x86_64-kernel-linux.sh

-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Wed Apr 09 16:37:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 16:37:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.944341.1342833 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2YQK-00056U-Al; Wed, 09 Apr 2025 16:37:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 944341.1342833; Wed, 09 Apr 2025 16:37:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2YQK-00056N-7g; Wed, 09 Apr 2025 16:37:12 +0000
Received: by outflank-mailman (input) for mailman id 944341;
 Wed, 09 Apr 2025 16:37: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=fbf/=W3=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u2YQI-0004rn-KM
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 16:37:10 +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 e0eb4836-1560-11f0-9ffb-bf95429c2676;
 Wed, 09 Apr 2025 18:37:08 +0200 (CEST)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-43cf06eabdaso63577885e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 09 Apr 2025 09:37:08 -0700 (PDT)
Received: from localhost.localdomain (host-92-26-98-202.as13285.net.
 [92.26.98.202]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43f233c817dsm20947455e9.23.2025.04.09.09.37.06
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 09 Apr 2025 09:37: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: e0eb4836-1560-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744216628; x=1744821428; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=xfWc4BVsk5hctD8Vm1IPFHGhadHzyMzEKKc9SX/jk48=;
        b=pUssh0lGtamQ51pJO4fz7opEajLTJ59wsrZVI4C3yiS3Bz0K3ZPkojLyUROg0dgepU
         gdjDJZh9TnfTnGMfTEppimKS+8QDp9WxJjOdr0+rAN7DH+6/NWzPwrA4mjKapTnyF02d
         gxVKhUSXjbkIL+i6XXJS8uJ/Cxm0qOQ+zGfX4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744216628; x=1744821428;
        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=xfWc4BVsk5hctD8Vm1IPFHGhadHzyMzEKKc9SX/jk48=;
        b=S/pHQm8Eowamw4j2ILi/2RdUPhuygOBMsmzMmYIOZ841ipfZLz/OkqaGz0CxWODYZm
         zPjvd5LEdaGmTijgGmGtH83xrBBwT5fTCbe8LqShlcGv270jLN8sB1keEGtp/YwSENaI
         aI1rQ4O1f7U0n4/Z4ZGazYGcXpSTY+yEn0PK4DyscPgKCL4t5rJ8ptctUBd2DjoWOH/H
         lxDJht/3S0u8QTbEXTUvkAGl0v9gUBxBeU0cdhOvoD3UnLcPVZROqDJWkumgoSCfqxS2
         qZ5tf25y2ZYuETCGJv35MJPUBtRKJ6/m7phKAkv0KaAiFOgF2obx2abDiOlQlYJXKDKa
         gpGg==
X-Gm-Message-State: AOJu0Yz39IR9G9ZfUR6dfWQwM+OJsskGK3hGBrATpun7m14gKJDy3whf
	yjYgfxla9uDJkS9Ju6/CoytMibMYQp+Ldf9ezvhk1qTRMauaAaJEgkzSY9Lc7FKGQxPzmHFGXrM
	3Euw=
X-Gm-Gg: ASbGnctFNp/Zu2yBkJ+I+OuZWuTCC5cNC54nYAgASYf4fQMKa/lVYZiQUeyHEXWgndC
	RCTZGs1/Cx5PgMmn7luvjLLhsfSR7gBALQGqD6RlkC4CJ2ApBnmgQu4Lf/TC3IIraJ0DRPOgzQm
	gAIQGgdFsnPSofWr4YzydiG4L+nzNIKAoZW7OBevEOMAPOPLuDRZbRzMlSSqnQBXhiqoemieMjn
	uKCw4DKEafX0iXb0GZhg7EL3st3nmEZEgVOtN/rjVSwfeb01lOdsIkV9iok0ruwh6Bfgz9r1IjK
	2eHEQfBIh6tEGefxs3QkGMCiyCTwRtyjRQkbBpj8FjtyxXZs2lEaKl5baPYkxVpTvFaHNx/F0vE
	nsv7eDZvnUu7sgg==
X-Google-Smtp-Source: AGHT+IFD4Gqa1kh5MZVk5EZ62aaD+TlZ8XM/yP9/4iuicCVy1v48xNnEl7AIY0JH16+pFVM2/TaA/w==
X-Received: by 2002:a05:600c:4f53:b0:43d:b85:1831 with SMTP id 5b1f17b1804b1-43f29d90286mr15315275e9.0.1744216627656;
        Wed, 09 Apr 2025 09:37:07 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: [PATCH 1/8] Consistently use DOCKER_CMD in makefiles
Date: Wed,  9 Apr 2025 17:36:55 +0100
Message-Id: <20250409163702.2037301-2-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250409163702.2037301-1-andrew.cooper3@citrix.com>
References: <20250409163702.2037301-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>

This allows rebuilding containers using podman too.

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
[Ported from Xen]
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
 images/Makefile | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/images/Makefile b/images/Makefile
index 42f231bcce27..b0b7a7cf63ee 100644
--- a/images/Makefile
+++ b/images/Makefile
@@ -1,3 +1,4 @@
+DOCKER_CMD ?= docker
 
 # The base of where these containers will appear
 REGISTRY := registry.gitlab.com/xen-project/hardware/test-artifacts
@@ -11,9 +12,9 @@ help:
 	@echo "To push container builds, set the environment variable PUSH"
 
 %: %.dockerfile ## Builds containers
-	docker build --pull -t $(REGISTRY)/$(@D):$(@F) -f $< $(<D)
+	$(DOCKER_CMD) build --pull -t $(REGISTRY)/$(@D):$(@F) -f $< $(<D)
 	@if [ ! -z $${PUSH+x} ]; then \
-		docker push $(REGISTRY)/$(@D):$(@F); \
+		$(DOCKER_CMD) push $(REGISTRY)/$(@D):$(@F); \
 	fi
 
 .PHONY: all
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Wed Apr 09 16:37:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 16:37:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.944345.1342865 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2YQM-0005l9-O0; Wed, 09 Apr 2025 16:37:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 944345.1342865; Wed, 09 Apr 2025 16:37: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 1u2YQM-0005k6-Hh; Wed, 09 Apr 2025 16:37:14 +0000
Received: by outflank-mailman (input) for mailman id 944345;
 Wed, 09 Apr 2025 16:37: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=fbf/=W3=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u2YQL-0004du-GQ
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 16:37:13 +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 e3873bf4-1560-11f0-9eab-5ba50f476ded;
 Wed, 09 Apr 2025 18:37:13 +0200 (CEST)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-43d2d952eb1so47453455e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 09 Apr 2025 09:37:13 -0700 (PDT)
Received: from localhost.localdomain (host-92-26-98-202.as13285.net.
 [92.26.98.202]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43f233c817dsm20947455e9.23.2025.04.09.09.37.10
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 09 Apr 2025 09:37: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: e3873bf4-1560-11f0-9eab-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744216632; x=1744821432; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=IltmhtHT5BBVSpsleYVnDmlWB3S52pBC6IXbUI4pNWI=;
        b=AK5staHq0nth2sCdNcGTytOj1Tl8l7+R88tjEXHf95zrS+j+b5O7FLmL2o4awBtLo2
         UQA/sWIYNvibLf7SKSPdd/FIHIdMFWMDrzkq4ONjhy9ZZlwQuSn2DnoowvTgA92xF0s3
         93QOO8pXpfQTH1D+I3eEmDVHns6qIH8ZdrpJA=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744216632; x=1744821432;
        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=IltmhtHT5BBVSpsleYVnDmlWB3S52pBC6IXbUI4pNWI=;
        b=GLrH4jm3y3H4TTvEqRWmKpCOdVibwoJwwacwY2thCNdUoaVfcEL0UsaRhIBqqltK32
         mdt4hd8afD3gdIQjVP/GbR9MimodE7pKxM/tx2M3qosg5ANow1aPYfYvVfOMFn84NK8y
         GKz8Scog2/4dpcCzApnfUwWuU+g4ZjAZ18hAGSnujPn11+R1EmZgS8WdmEm4dyYkQfEc
         wZCBJrvnH2fuoUdBnlJDyGcZ2l0tvM2qgs8UYNmuXZ7lK3Tuh7vXj7HFXVumCdCpVHWw
         4YWIGqE7wHUA+mgOwb/2gpd28+fWkdezg560Ox7blLZMmV0T8z+I1ZXjYJCqRBuZlZ8g
         pGwA==
X-Gm-Message-State: AOJu0YxVZxZMgNSonAvj6RhAvnR8uhIviB0Zd0UlKqLqalfwb1c4Uxi1
	U9kS9ToQcJzHhr3NitxEs0Pxk9+uVsFxZ7P1rZCzp3afNS83vzWbQGW8BTxz+sdcUU8TSv+KQrh
	9xUQ=
X-Gm-Gg: ASbGncvCrw+VMJF1LXzjiEdZsWoflovsyoXrBgT+JQCTxw+YEzurRWndUtjxg+SjD9u
	MfsxBG9Xl8GO6waznamcC/T2rz7RGxZtnXEX3Wb5LbkPUUndJWnRAtKxXd0UOrxHPO1Eaw+9vun
	+RZ9syhg/63jmAWLKNzmDqOcd3oWtGcJLa48fCpRLmQDv/WANjHh3y0JSx6t+aS0EPrFy1cPoLc
	GlUZxlnYIewVrdyvzkuhD6e6E2UiZ35anKY05vLmwWovJD25fDYdBoJMj2qbRFON4IA6xjd/Ni/
	C7L4qtR2OIRxeQ6txhG0KNarAo2zFL1gxctW01JXxcT308eQfgBEOfl5w78CaGz/ws1SeEOS3og
	3HAHop6bKwEGt/4ZUD1HOs0e+
X-Google-Smtp-Source: AGHT+IEWpUEEFYkSqnG+ZB6hcoZyumqk8nW6Xhw9oFU/OuNIS9ePZMvLjHfUbXh/CYGghUEQluNSXQ==
X-Received: by 2002:a05:600c:46ca:b0:43d:fa58:700d with SMTP id 5b1f17b1804b1-43f1ed6f0abmr33987875e9.32.1744216632086;
        Wed, 09 Apr 2025 09:37:12 -0700 (PDT)
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>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH 6/8] Factor our x86-isms in the linux build script
Date: Wed,  9 Apr 2025 17:37:00 +0100
Message-Id: <20250409163702.2037301-7-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250409163702.2037301-1-andrew.cooper3@citrix.com>
References: <20250409163702.2037301-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

... in preparation to use it for arm64 too.  Rename the script.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Michal Orzel <michal.orzel@amd.com>
CC: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
CC: Anthony PERARD <anthony.perard@vates.tech>
---
 .gitlab-ci.yml                                |  3 +-
 ...{x86_64-kernel-linux.sh => build-linux.sh} | 34 +++++++++++++------
 2 files changed, 24 insertions(+), 13 deletions(-)
 rename scripts/{x86_64-kernel-linux.sh => build-linux.sh} (55%)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 5a0a853e551d..ff8dce7be05d 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -31,8 +31,7 @@ stages:
 #
 x86_64-kernel-linux-6.6.56:
   extends: .x86_64-artifacts
-  script:
-    - . scripts/x86_64-kernel-linux.sh
+  script: ./scripts/build-linux.sh
   variables:
     LINUX_VERSION: 6.6.56
 
diff --git a/scripts/x86_64-kernel-linux.sh b/scripts/build-linux.sh
similarity index 55%
rename from scripts/x86_64-kernel-linux.sh
rename to scripts/build-linux.sh
index 5a0160655bea..5e25e958c0f3 100755
--- a/scripts/x86_64-kernel-linux.sh
+++ b/scripts/build-linux.sh
@@ -9,6 +9,7 @@ set -ex -o pipefail
 
 WORKDIR="${PWD}"
 COPYDIR="${WORKDIR}/binaries/"
+UNAME=$(uname -m)
 
 # Build Linux
 MAJOR=${LINUX_VERSION%%.*}
@@ -16,17 +17,28 @@ curl -fsSLO \
     https://cdn.kernel.org/pub/linux/kernel/v"${MAJOR}".x/linux-"${LINUX_VERSION}".tar.xz
 tar oxf linux-"${LINUX_VERSION}".tar.xz
 cd linux-"${LINUX_VERSION}"
-make ARCH=x86 defconfig
-make ARCH=x86 xen.config
+
+make defconfig
 ./scripts/config --enable BRIDGE
 ./scripts/config --enable IGC
 ./scripts/config --enable TUN
-cp .config .config.orig
-cat .config.orig \
-    | grep 'XEN' \
-    | grep '=m' \
-    | sed 's/=m/=y/g' \
-    >> .config
-make ARCH=x86 olddefconfig
-make -s -j "$(nproc)" ARCH=x86
-cp arch/x86/boot/bzImage "${COPYDIR}"
+
+case $UNAME in
+    x86_64)
+        make xen.config
+        cp .config .config.orig
+        cat .config.orig \
+            | grep 'XEN' \
+            | grep '=m' \
+            | sed 's/=m/=y/g' >> .config
+        ;;
+esac
+
+make olddefconfig
+
+case $UNAME in
+    x86_64)
+        make -j$(nproc) bzImage
+        cp arch/x86/boot/bzImage "${COPYDIR}"
+        ;;
+esac
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Wed Apr 09 16:37:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 16:37:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.944344.1342858 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2YQM-0005eN-AG; Wed, 09 Apr 2025 16:37:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 944344.1342858; Wed, 09 Apr 2025 16:37: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 1u2YQM-0005cM-5p; Wed, 09 Apr 2025 16:37:14 +0000
Received: by outflank-mailman (input) for mailman id 944344;
 Wed, 09 Apr 2025 16:37: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=fbf/=W3=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u2YQL-0004rn-AO
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 16:37:13 +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 e2c310c6-1560-11f0-9ffb-bf95429c2676;
 Wed, 09 Apr 2025 18:37:11 +0200 (CEST)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-39ac9aea656so5947342f8f.3
 for <xen-devel@lists.xenproject.org>; Wed, 09 Apr 2025 09:37:11 -0700 (PDT)
Received: from localhost.localdomain (host-92-26-98-202.as13285.net.
 [92.26.98.202]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43f233c817dsm20947455e9.23.2025.04.09.09.37.10
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 09 Apr 2025 09:37: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: e2c310c6-1560-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744216631; x=1744821431; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=SyQzuwD6xN4VRWg/MDtNd3j0QqAGhL/LmpWTv3MgUQA=;
        b=T9Xk/ZMZ1wxVdl8LLhyumbiYoAHoTazBFK1QrX084FCvA5Pl/fQQ/yywru4xtbENdi
         UW5BxFREnnc7mf67oC88M0F/inn6yawKxRV0Rr23Yxkx5u6h72e6ezOSlOsM9mkDPujg
         3thW2snNyy+YHEugnO10PXvsEGZwsqmxEmRjo=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744216631; x=1744821431;
        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=SyQzuwD6xN4VRWg/MDtNd3j0QqAGhL/LmpWTv3MgUQA=;
        b=NW3V83mUkFid0FGOFqTvDIvu6J2gGk9TOQ3O1w4OJm/e8V2Toav2Umvty8bj71l7hl
         a2Jc2IuB3L0MQ96oslOwV2dfSYGdy5pLXTDJoSFRtb7HRKio+Ewe10O6mKBhUGDwY87C
         gzJOc1EMF6hAuXKbgpGaQ5hMaYSYVfneFk2n8vF+HI5dHrfv7XLknn6Z2WpVcBBtVcua
         Fjt2lmhW4U5wzkwm6PDZKKHZTTG74SJ808lDkbdI+8UOboGE5d9hn9rF1zZRBfk2hntD
         WkNyJtIwOaJJsoId5avVjZBsGRHHbZ14uyxKV3uIH49uLyZvgAJWWOkiZLzIT+6A+50J
         TA+g==
X-Gm-Message-State: AOJu0YxV1E9rd/MA7Ri2+D7juAKrBsYfteLLKyNls/YjV/POrBiZ4ywj
	HRkkMTvLP9yL6RNx+lv9XiLaXEdHH1znsu39QWlMPmNvRxRiinQ5+WwXI4lHPOK5Yb2oZEsHV8S
	tm4Y=
X-Gm-Gg: ASbGncu0bV6c6Tmf2lIegIjeymd1ZNnV47V6c9n2Ih5YzINJB5/8yO0mOEUdDvmJiXJ
	/p4GKm+8DNs83pKdYd/bxJh5+Q9ZgBqV0qlTAE4vLtXSmd5ooqwXGIo+jYSA18b8NA9YlQaNJk2
	/yv7gjT+JNMI71L2qK68X/6tZEDpXNRsnMbeihykD5f0eUMXd+T6ReDLNFRwynY+btnDzgrhZq5
	luEmZtxUz5iA7AO8E524FokSfiTgdPxF2zeWzRwyx1tP8xX7ZfkI9xk+dCi8g4hNbwjf9sR4rBA
	6aixFXkTVquVwmMgmxrHTOFQJ9P1Ksnr/zM5WpsRnGtQGHUDZmHoyVgZYp4BsPj1KhD2cBYD08P
	X2UL362py34u0DjM3owD6Ji3b
X-Google-Smtp-Source: AGHT+IGOcdGsljIjVVsdsWALFvdinkG6lUUagjLK1Jl/TKh9PJiq/vx2t1e+kFxVdlNMwFC6UbzijA==
X-Received: by 2002:a5d:64aa:0:b0:39c:142a:ed6c with SMTP id ffacd0b85a97d-39d87cd0301mr3678848f8f.40.1744216630737;
        Wed, 09 Apr 2025 09:37:10 -0700 (PDT)
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>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH 5/8] Adjust Linux build script to work with other major versions
Date: Wed,  9 Apr 2025 17:36:59 +0100
Message-Id: <20250409163702.2037301-6-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250409163702.2037301-1-andrew.cooper3@citrix.com>
References: <20250409163702.2037301-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Also use 'tar o' to decompress based on file name.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Michal Orzel <michal.orzel@amd.com>
CC: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
CC: Anthony PERARD <anthony.perard@vates.tech>
---
 scripts/x86_64-kernel-linux.sh | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/scripts/x86_64-kernel-linux.sh b/scripts/x86_64-kernel-linux.sh
index 2a816f0b3204..5a0160655bea 100755
--- a/scripts/x86_64-kernel-linux.sh
+++ b/scripts/x86_64-kernel-linux.sh
@@ -11,9 +11,10 @@ WORKDIR="${PWD}"
 COPYDIR="${WORKDIR}/binaries/"
 
 # Build Linux
+MAJOR=${LINUX_VERSION%%.*}
 curl -fsSLO \
-    https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-"${LINUX_VERSION}".tar.xz
-tar xJf linux-"${LINUX_VERSION}".tar.xz
+    https://cdn.kernel.org/pub/linux/kernel/v"${MAJOR}".x/linux-"${LINUX_VERSION}".tar.xz
+tar oxf linux-"${LINUX_VERSION}".tar.xz
 cd linux-"${LINUX_VERSION}"
 make ARCH=x86 defconfig
 make ARCH=x86 xen.config
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Wed Apr 09 16:37:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 16:37:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.944347.1342888 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2YQO-0006H5-Kv; Wed, 09 Apr 2025 16:37:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 944347.1342888; Wed, 09 Apr 2025 16:37: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 1u2YQO-0006G1-Ar; Wed, 09 Apr 2025 16:37:16 +0000
Received: by outflank-mailman (input) for mailman id 944347;
 Wed, 09 Apr 2025 16:37: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=fbf/=W3=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u2YQN-0004du-Gg
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 16:37:15 +0000
Received: from mail-wm1-x32f.google.com (mail-wm1-x32f.google.com
 [2a00:1450:4864:20::32f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e46da20f-1560-11f0-9eab-5ba50f476ded;
 Wed, 09 Apr 2025 18:37:14 +0200 (CEST)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-43cfb6e9031so63656425e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 09 Apr 2025 09:37:14 -0700 (PDT)
Received: from localhost.localdomain (host-92-26-98-202.as13285.net.
 [92.26.98.202]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43f233c817dsm20947455e9.23.2025.04.09.09.37.12
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 09 Apr 2025 09:37:13 -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: e46da20f-1560-11f0-9eab-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744216633; x=1744821433; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=oz7vc3ZdkGUN8uURs2tZVEn3NKyi4BmiHGUDzuUaSbo=;
        b=jeXBuhV9/VH0N/gWYVF0KcO2Nc7e4QN3xxRNV1qXOvyZIHLw9Ygv3D/3ordHN41Rqw
         WCkWH3MMwmi+N0m2zLZ9qEOz/bJgaO/spT3xhsgvsF7xkaxKNwQ/7kh4owlZgMHHb7A8
         NjsSe27+hU5ABxFw22yYgD/lsFDnDEqrUz4gY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744216633; x=1744821433;
        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=oz7vc3ZdkGUN8uURs2tZVEn3NKyi4BmiHGUDzuUaSbo=;
        b=jrJFG81+KNmLC6BXCf68kO2Y2PHjLX7y/hD+q01yXMvJWEK1uZjNHcGoLytm+6gULX
         sOTDfW3PBmNoHIeAJGZ01b3MfDF8LDJMEZtgEC75XsUIzYT+tHALJW07MHDUDiNRUfJ9
         4neYIpeyNNS0gWr9qBbrf0aQan64eFaFLVtW/a4nopTHAipwfpVgaryGC/9iHAywgsmt
         K+SwMZ9H6QFwZJJRnvP0KNWtc4Kz0BnGYUDR8ZSSzpXbXpPC319HyzuOwVtcGZlJn+o7
         +/mBnikD5MB+zGFngWJF2ic2sKxGDNYc6fKJzGDmf7o7etYoyqlwNL/J8w5mSD0Vvhbs
         dmng==
X-Gm-Message-State: AOJu0Yxme7FHNMPALZBE0Nxs+lnJM+ypr4vRaQzJeoD+djwt4BuPdQMW
	bJ7wli9TG2Jar1C9ZRja0aS3HvCaJlGuxrz5KUYjOBGugWVi3GdQB3hnj5IIdYr9OQnCg3gH0On
	MUrU=
X-Gm-Gg: ASbGncu3JW+nfRW9KKH581ild4J+a3rsJbOUvN3eOxeFb00kZH7TTbLe2EQtvNnrOj0
	erY7LQgkAz9pAgzmmklp6T0Aghdta6GHITU4cvc+p8uF7RCNBwu57jaAOnoycb3SL/gVjVNftx9
	2RF+rRzCWdJFQraJKHVEsdtY7LTLG/u7fDQhg5w07JdqwzT/lqw8uz4NoN5aitE2B0EX0pWOTxC
	AQTD+y92mOdrIH8waBR/ChGU9zowUBuHEzZTs9zTwqmBxX6TZuRZbVfAmXmiRm6Zt9Z5ghqqc4B
	FxytU8h8v+bfj+qqVsjnVfow/jHOW/9jKF5CB2mNsQexLRuIAQKKspIw/z81Xs/tpOJjeHHrSw9
	hp9AFumSeOskdoA==
X-Google-Smtp-Source: AGHT+IHttXZM3QfI72bPFKdKuNhqirIDtNLYAizvEnHznLSXNn9Np69KRJv/47G7CNoqnu5dUnfLgg==
X-Received: by 2002:a05:600c:450c:b0:43d:683:8cb2 with SMTP id 5b1f17b1804b1-43f1fe2164amr29220135e9.14.1744216633654;
        Wed, 09 Apr 2025 09:37:13 -0700 (PDT)
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>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH 8/8] Linux 6.6.86 for x86 and arm64
Date: Wed,  9 Apr 2025 17:37:02 +0100
Message-Id: <20250409163702.2037301-9-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250409163702.2037301-1-andrew.cooper3@citrix.com>
References: <20250409163702.2037301-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

It's the latest 6.6 at the time of writing.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Michal Orzel <michal.orzel@amd.com>
CC: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
CC: Anthony PERARD <anthony.perard@vates.tech>
---
 .gitlab-ci.yml | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 6e38c2f2a108..c1ce3f38e8b8 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -33,6 +33,18 @@ stages:
   variables:
     CONTAINER: alpine:x86_64-build
 
+linux-6.6.86-arm64:
+  extends: .arm64-artifacts
+  script: ./scripts/build-linux.sh
+  variables:
+    LINUX_VERSION: 6.6.86
+
+linux-6.6.86-x86_64:
+  extends: .x86_64-artifacts
+  script: ./scripts/build-linux.sh
+  variables:
+    LINUX_VERSION: 6.6.86
+
 #
 # The jobs below here are legacy and being phased out.
 #
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Wed Apr 09 16:37:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 16:37:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.944343.1342852 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2YQL-0005Y8-RT; Wed, 09 Apr 2025 16:37:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 944343.1342852; Wed, 09 Apr 2025 16:37:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2YQL-0005Xt-Ns; Wed, 09 Apr 2025 16:37:13 +0000
Received: by outflank-mailman (input) for mailman id 944343;
 Wed, 09 Apr 2025 16:37:12 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=fbf/=W3=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u2YQK-0004rn-C6
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 16:37:12 +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 e251ed68-1560-11f0-9ffb-bf95429c2676;
 Wed, 09 Apr 2025 18:37:10 +0200 (CEST)
Received: by mail-wr1-x42d.google.com with SMTP id
 ffacd0b85a97d-38f2f391864so3903035f8f.3
 for <xen-devel@lists.xenproject.org>; Wed, 09 Apr 2025 09:37:10 -0700 (PDT)
Received: from localhost.localdomain (host-92-26-98-202.as13285.net.
 [92.26.98.202]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43f233c817dsm20947455e9.23.2025.04.09.09.37.09
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 09 Apr 2025 09:37: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: e251ed68-1560-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744216630; x=1744821430; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=CmOUNq4jgp3B3A9yw2zDpgYQIvmYUHtEyo79prjaP04=;
        b=JT1FKSmAZoo6SIGvs68oqvkFexIyYmNAKeOVkMgTKRYwIh9zcKBUuTqt/BZZ575n/h
         E0FdorTxWUVK2TTEmhYpjtFpvAYY6EVLeIO98OyF3oNilQ4tmMdvLlU5SK+8zdz6FDaQ
         WHwP6HW8F4jLwkxqnl46roLIoAfaumZpoHg7M=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744216630; x=1744821430;
        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=CmOUNq4jgp3B3A9yw2zDpgYQIvmYUHtEyo79prjaP04=;
        b=LTGFvzuZdM5EgYEpZaOhLKsIu+yAAZsJtrr4+p+0RBXUiGXSjRPpNtQTzAUrbxnGOn
         sdf6LjRTqEqaGPc5rbHU4cuXMxI5lY0NhnzaS6Zou50Zl7LpFoGAfosmG14EgRioV9Dv
         ML6FtMCvH3vGqkwAZZQLRe3h5lHZNC/9gShMeWZc0LuGM8KmcIVQa+2scOFr0GOOpAiM
         HlosKLU0A3noLpQtiJsR7F2N/omE3T6jwmkg7bmk+aZN7dgIbcIMQAf3s+ORm+vTMFcj
         i+7n1TqnXj87b/HzQ9/xSu7daoHVfu8raaaMPxKHgixtxgTVxSS/e/nm4N+OdJKyvbWv
         bckg==
X-Gm-Message-State: AOJu0YzQEzjAClcX2gFOgZeyoLX9nc687DmEI4kJI9pXAavsdlRKhQyx
	LpTsftqO0fhC6HqjRiTt6A8K1tVBaAC0uz8TqvmL60uD2OE4O+VctJTQhvwbLF0H6Lc4oTSRbsi
	wIqM=
X-Gm-Gg: ASbGncvKctthRrl4IQ7nFar0bU/Fr5j384tm636VIHLL5K9gRoN0bKxmOJAdPt9D41u
	43ho5mcvGKBeR+LX/rkSNXfrHZ8kiD+n1J5AU2voqsSt0FmQtdaelNsYaB+p3XX8skhLzff2r89
	f6SCkPk64Y3gWR2dfzIPyA3r3zC0xpjwZpWzUOxSEdsewNFJVtYzGxtuDF75my0s00hXinXE0Yg
	CWFVX0WiGKtLX3uqoEhZVmk4dc1lhyn44Y6N3wMAW5ccX5ZSgB5WAjq68izyAEYffvlQfWoY5gy
	B1WcetihzenmlaqOsWZbHnNp2X7MjT3EWRSOga7QgJ/HjfblOYvSVgos0K+TVGoLEJdAm0wuidw
	VcXw+KOxjQwfJjg==
X-Google-Smtp-Source: AGHT+IFZgAc4JGBWrB/+Jh+tmojjQ8rvS3vS1nP5n8O3GiLQXjS/c4qJNs2WCNnDO6ihOoxixa3kCw==
X-Received: by 2002:a5d:5847:0:b0:391:4674:b136 with SMTP id ffacd0b85a97d-39d87ac2fdamr3042032f8f.29.1744216630057;
        Wed, 09 Apr 2025 09:37:10 -0700 (PDT)
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>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH 4/8] Clean up Gitlab yaml
Date: Wed,  9 Apr 2025 17:36:58 +0100
Message-Id: <20250409163702.2037301-5-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250409163702.2037301-1-andrew.cooper3@citrix.com>
References: <20250409163702.2037301-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Factor out the registry into a common location.  Fix the worflow name.  List
all the stages.  Set a default expiry of 1 month.

Note all the current jobs as legacy.  Their naming scheme needs changing, and
we'll use this opportunity to switch formats too.  However, the artefacts need
to stay using the old name until the final staging-* branch using them is
phased out.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Michal Orzel <michal.orzel@amd.com>
CC: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
CC: Anthony PERARD <anthony.perard@vates.tech>
---
 .gitlab-ci.yml | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 36ec6a7e1ee5..5a0a853e551d 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,12 +1,19 @@
+variables:
+  REGISTRY: registry.gitlab.com/xen-project/hardware/test-artifacts
+
 workflow:
-  name: "xen test artifacts"
+  name: "Xen test artifacts"
+
+stages:
+  - build
 
 .artifacts:
   stage: build
   image:
-    name: registry.gitlab.com/xen-project/hardware/test-artifacts/${CONTAINER}
+    name: ${REGISTRY}/${CONTAINER}
   artifacts:
     name: "${CI_JOB_NAME_SLUG}"
+    expire_in: 1 month
     paths:
       - binaries/
     exclude:
@@ -19,6 +26,9 @@ workflow:
   variables:
     CONTAINER: alpine:x86_64-build
 
+#
+# The jobs below here are legacy and being phased out.
+#
 x86_64-kernel-linux-6.6.56:
   extends: .x86_64-artifacts
   script:
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Wed Apr 09 16:37:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 16:37:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.944342.1342841 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2YQK-00059n-MA; Wed, 09 Apr 2025 16:37:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 944342.1342841; Wed, 09 Apr 2025 16:37:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2YQK-00058u-FK; Wed, 09 Apr 2025 16:37:12 +0000
Received: by outflank-mailman (input) for mailman id 944342;
 Wed, 09 Apr 2025 16:37: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=fbf/=W3=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u2YQJ-0004rn-AF
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 16:37:11 +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 e1603400-1560-11f0-9ffb-bf95429c2676;
 Wed, 09 Apr 2025 18:37:09 +0200 (CEST)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-43cf3192f3bso67469545e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 09 Apr 2025 09:37:09 -0700 (PDT)
Received: from localhost.localdomain (host-92-26-98-202.as13285.net.
 [92.26.98.202]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43f233c817dsm20947455e9.23.2025.04.09.09.37.07
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 09 Apr 2025 09:37: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: e1603400-1560-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744216628; x=1744821428; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=WikkQXD4kZveDb/959Oc1/hEF4sz0oUbKzkkNBhCfIM=;
        b=WDeKvUD/gRn3S2eHJP3inoGO+JI82WAIo7qrDmG5+mIn9xPAN6XLKoX9ysh9K+uw9+
         765b0j4ynVwI9msk/yx5i5seM9YBKtlxGIa2Foad5uoD+yDacP6tY1ZDZ+a+2u+vJR4s
         zmvWicNTsjTpNL7c/Ba4Y9A6usnS4yOih60TE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744216628; x=1744821428;
        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=WikkQXD4kZveDb/959Oc1/hEF4sz0oUbKzkkNBhCfIM=;
        b=a6u36UwCLS++tEXi5goC31wJZE6I9WxZs6/a9hV785H9SWYYZ4r+yeDpWzwlC+JkNE
         G0yu2ffgWzsGkGDTKKvEG18nYfd9L08aHGQcpvQ/wsHJs7QHEEUEaBwfeMmBC0dmWAbw
         cHT8V2GGxDUVPkupXYqdghp5FB1NeJi1X6JXNV9zMpqw1hxoZgQx5eHyfMjFIlwA5Gll
         XTBGeT2tacfVXB77YOWX1oQ2Aqj96D1Xv0tnjRkOnFroH9oh3sGOigAg6fGm89LKbB25
         RhI3x+RmJNjiMrtDUZdKz4ue1O8lU3lWdpIUZdSS65LwQ0D/jgyS+jzf+uMTSmH69VTP
         wfpw==
X-Gm-Message-State: AOJu0Yxj7qTn+lww3YIIzfc2h7Q0LtI53Pk/4VPrysEzvwNAuXRMjS0z
	+RVDW+P4uLdw9QzLlv4RDZ65QTXBQFY8FSbCmHuEzcppmjKFUfXdodISqFRJXRcnV+VkbAjci6V
	zuwU=
X-Gm-Gg: ASbGncsjlpvnhHJZxIZSh07yk/pNd4B6smdz/X46ke9UthEhSRbzASS4Cv1mZUZu4IH
	1R7MFbwDjddjARS+/DY/SbMMMhW26lWSDYZFOq1jGXpZePCrsmsxSgkVyNLyOCzHL3wmziK9S0m
	A7CcMXQB/YnVwnveWNaqMFn/ot4cN03O1yozJ7sVGf89SdVq6PXJhK0p8W+Ni2kqQln/skkzOsf
	7tlWjEXmte+3tYSLozT88bKx5hCdoOWMvQPobh40kz0MNAsxCUBzUrvTVIgAzngc68DTGydQTvz
	y1yVlWtWAXueWgzjYpJVvAzqXzLSN6OAGpKwEN+ioDEMBlGEI2oKeAZZT1+3DtJKiDa+UcO3BKB
	tWuBQ/P3lWqMmCQ==
X-Google-Smtp-Source: AGHT+IHtUt26LX66Z0WBU4goSEbOVUNSP/4DzsgdbS77DKLY2GKN4mLBaOOitfkuKxGmYoyvBI2YiQ==
X-Received: by 2002:a05:600c:1909:b0:43d:b32:40aa with SMTP id 5b1f17b1804b1-43f1ec0d15dmr36404445e9.3.1744216628397;
        Wed, 09 Apr 2025 09:37:08 -0700 (PDT)
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>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH 2/8] Port containerise
Date: Wed,  9 Apr 2025 17:36:56 +0100
Message-Id: <20250409163702.2037301-3-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250409163702.2037301-1-andrew.cooper3@citrix.com>
References: <20250409163702.2037301-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

While it pains me to keep the wrong spelling, do so for consistency.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Michal Orzel <michal.orzel@amd.com>
CC: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
CC: Anthony PERARD <anthony.perard@vates.tech>
---
 containerize | 94 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 94 insertions(+)
 create mode 100755 containerize

diff --git a/containerize b/containerize
new file mode 100755
index 000000000000..c32e40f5a6d9
--- /dev/null
+++ b/containerize
@@ -0,0 +1,94 @@
+#!/bin/bash
+
+#
+# DOCKER_CMD should be either `docker` or `podman`.
+#
+# if using (rootless) podman, remember to set /etc/subuid
+# and /etc/subgid.
+#
+docker_cmd=${DOCKER_CMD:-"docker"}
+[ "$DOCKER_CMD" = "podman" ] && userns_podman="--userns=keep-id" selinux=",z"
+
+einfo() {
+    echo "$*" >&2
+}
+
+die() {
+    echo "$*" >&2
+    exit 1
+}
+
+#
+# The caller is expected to override the CONTAINER environment
+# variable with the container they wish to launch.
+#
+BASE="registry.gitlab.com/xen-project/hardware/test-artifacts"
+case "_${CONTAINER}" in
+    _alpine-x86_64-base) CONTAINER="${BASE}/alpine:x86_64-base" ;;
+    _alpine-x86_64-build|_) CONTAINER="${BASE}/alpine:x86_64-build" ;;
+esac
+
+# Use this variable to control whether root should be used
+case "_${CONTAINER_UID0}" in
+    _1)   userarg="-u 0" ;;
+    _0|_) userarg="-u $(id -u) $userns_podman" ;;
+esac
+
+# Save the commands for future use
+cmd=("$@")
+
+# If no command was specified, just drop us into a shell if we're interactive
+[ $# -eq 0 ] && tty -s && cmd=("/bin/bash")
+
+# Are we in an interactive terminal?
+tty -s && termint=t
+
+#
+# Fetch the latest version of the container in hub.docker.com,
+# unless it's a newly created local copy.
+#
+if [[ "_${CONTAINER_NO_PULL}" != "_1" ]]; then
+    einfo "*** Ensuring ${CONTAINER} is up to date"
+    ${docker_cmd} pull ${CONTAINER} > /dev/null ||     \
+        die "Failed to update container"
+fi
+
+if hash greadlink > /dev/null 2>&1; then
+    READLINK=greadlink
+elif [[ $(uname -s) == "Darwin" ]]; then
+    echo "Unable to forward SSH agent without coreutils installed"
+    unset SSH_AUTH_SOCK
+else
+    READLINK=readlink
+fi
+
+# Ensure we've got what we need for SSH_AUTH_SOCK
+if [[ -n ${SSH_AUTH_SOCK} ]]; then
+    fullpath_sock=$(${READLINK} -f ${SSH_AUTH_SOCK} 2> /dev/null)
+    if [ $? -ne 0 ]; then
+        echo "Invalid SSH_AUTH_SOCK: ${SSH_AUTH_SOCK}"
+        unset SSH_AUTH_SOCK
+    else
+        SSH_AUTH_DIR=$(dirname ${fullpath_sock})
+        SSH_AUTH_NAME=$(basename ${fullpath_sock})
+    fi
+fi
+
+# Figure out the base of what we want as our sources
+# by using the top of the git repo
+if [[ -z ${CONTAINER_PATH} ]]; then
+    CONTAINER_PATH=$(git rev-parse --show-toplevel)
+fi
+
+# Kick off Docker
+einfo "*** Launching container ..."
+exec ${docker_cmd} run \
+    ${userarg} \
+    ${SSH_AUTH_SOCK:+-e SSH_AUTH_SOCK="/tmp/ssh-agent/${SSH_AUTH_NAME}"} \
+    -v "${CONTAINER_PATH}":/build:rw${selinux} \
+    -v "${HOME}/.ssh":/root/.ssh:ro \
+    ${SSH_AUTH_DIR:+-v "${SSH_AUTH_DIR}":/tmp/ssh-agent${selinux}} \
+    ${CONTAINER_ARGS} \
+    -${termint}i --rm -- \
+    ${CONTAINER} \
+    "${cmd[@]}"
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Wed Apr 09 16:58:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 16:58:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.944441.1342903 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2YkT-0006fX-Vq; Wed, 09 Apr 2025 16:58:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 944441.1342903; Wed, 09 Apr 2025 16:58:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2YkT-0006fQ-TL; Wed, 09 Apr 2025 16:58:01 +0000
Received: by outflank-mailman (input) for mailman id 944441;
 Wed, 09 Apr 2025 16:58: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=np/6=W3=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1u2YkT-0006fG-36
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 16:58:01 +0000
Received: from fout-b7-smtp.messagingengine.com
 (fout-b7-smtp.messagingengine.com [202.12.124.150])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c9aff393-1563-11f0-9ffb-bf95429c2676;
 Wed, 09 Apr 2025 18:57:58 +0200 (CEST)
Received: from phl-compute-10.internal (phl-compute-10.phl.internal
 [10.202.2.50])
 by mailfout.stl.internal (Postfix) with ESMTP id 44EE711401AD;
 Wed,  9 Apr 2025 12:57:57 -0400 (EDT)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-10.internal (MEProxy); Wed, 09 Apr 2025 12:57:57 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed,
 9 Apr 2025 12:57:55 -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: c9aff393-1563-11f0-9ffb-bf95429c2676
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=fm2; t=1744217877;
	 x=1744304277; bh=2zNQBhLPL4Hi8ZMwWWfRxN1R3r028WPVEYKBEgTgK5M=; b=
	gFyiAvFdxZ8SVGo0zSfAWsWITUHZKLdEhOVLz5QhRT0q2XEhGfBiKY8JlViu44cD
	Go8UC4jeNcJi1viu6J+oTEL1Te5HT9vRXtXNxV4/GmwWdhEfu3KKB7aBCs7+v0Jt
	sJrlY6nRhzN7Jd3XfLXO5xtzXzF3oVPtFiM9rOGar9kheqS2flBneB4//qQSBa5c
	sVtSjfLjdg9ZRhuHQ69t4qrJNrZTma9CbWJWDgLcVAfWeWvQsn1f//3QJHzN1IqZ
	Ph6obhkMnHiLAQ3PYj/Zsm4MrXFvgopeuFvNK8UxToto6vaJGhOCjb8xB4paHo/V
	AexnF1sIK/yFbvSqEiDygw==
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=fm2; t=
	1744217877; x=1744304277; bh=2zNQBhLPL4Hi8ZMwWWfRxN1R3r028WPVEYK
	BEgTgK5M=; b=kfG7Bgz7prAsZ4eXduLATIss0KY0wmtPXl7kj4P8tpOUer3lrDs
	1tgV1m00qAlLVsacFMEQmHL9MtZcSfLUnqnlfoK9BxYM5D1MpxH1xacsvnGL0ivm
	X7YthyGYJH6CbWA2IMuHcfdNHugROAe1qEpAL7gpJ4XL6pjSiuB7ghmUChIaAgLA
	tHRDCPvlqKSkKqw2TFNxdF6DpjRiaRylN+ScmAnpiEqs3IB8ZvI2szLD0E0uhW2d
	jMqfra6P+ZMkJhhgnKRalU7sYDd2HyHoOqz7AN9Jm/x/PCS15rqlrk+n64eU3mgf
	M4PtpQTwHL2lm8IU108TanWM4R2yqXuCE2Q==
X-ME-Sender: <xms:FKf2Z3A2Dlb1ONZ6oJk7Xssoj5r4QsUKjckXbBG-nQnzJH-9QAFHMQ>
    <xme:FKf2Z9jpKwBDuER0O3PXWgx8SdckxJdl7xpUsJ7ZZS7PDZpgMwIFlwcQiC684tl-U
    SwwuAOcWUor5w>
X-ME-Received: <xmr:FKf2Zyn5SmEI8XdXgdDoruEe3n7qahz5JaFkJV6fqEGbD9fdv-vGVgks9B1V5ee_dvbNegLa7_fGHCgLIvZp82B5yLBe5RaTtA>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvtdeiheegucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
    pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
    gvnhhtshculddquddttddmnecujfgurhepfffhvfevuffkfhggtggujgesghdtreertddt
    jeenucfhrhhomhepofgrrhgvkhcuofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuc
    eomhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecu
    ggftrfgrthhtvghrnhepieeluddvkeejueekhfffteegfeeiffefjeejvdeijedvgfejhe
    etuddvkeffudeinecuffhomhgrihhnpehkvghrnhgvlhdrohhrghenucevlhhushhtvghr
    ufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhnvh
    hishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhnsggprhgtphhtthhopeeipdhmohgu
    vgepshhmthhpohhuthdprhgtphhtthhopegrnhgurhgvfidrtghoohhpvghrfeestghith
    hrihigrdgtohhmpdhrtghpthhtohepgigvnhdquggvvhgvlheslhhishhtshdrgigvnhhp
    rhhojhgvtghtrdhorhhgpdhrtghpthhtoheprhhoghgvrhdrphgruhestghithhrihigrd
    gtohhmpdhrtghpthhtohepshhsthgrsggvlhhlihhniheskhgvrhhnvghlrdhorhhgpdhr
    tghpthhtohepmhhitghhrghlrdhorhiivghlsegrmhgurdgtohhmpdhrtghpthhtoheprg
    hnthhhohhnhidrphgvrhgrrhgusehvrghtvghsrdhtvggthh
X-ME-Proxy: <xmx:FKf2Z5xYdk2BaicEWZgIySq-p_AVLWVsozRrqJhT7zO095eKp_NeNw>
    <xmx:FKf2Z8SmE4OhAopSZmmkeVqcICh64DSmKuykF60rWarrMJjBVRlHRA>
    <xmx:FKf2Z8a1yKxQOydkUFPG3FgWCrffCsKIGCNeYWI-pMXR1VjnS0utgA>
    <xmx:FKf2Z9Ta6p2VIb8YvqFyUlYCApIFt9Y3CID1BIOxnua8oIRnjcJ1oQ>
    <xmx:Faf2ZzQodCfKdyI3BU-tPbbsMBkuwDDAdWWOfLCmqSlCp9k65DH4bzmG>
Feedback-ID: i1568416f:Fastmail
Date: Wed, 9 Apr 2025 18:57:53 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: Re: [PATCH 5/8] Adjust Linux build script to work with other major
 versions
Message-ID: <Z_anEWAVTD5tjbg5@mail-itl>
References: <20250409163702.2037301-1-andrew.cooper3@citrix.com>
 <20250409163702.2037301-6-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="Vz3fr8hXWo+Ktb/I"
Content-Disposition: inline
In-Reply-To: <20250409163702.2037301-6-andrew.cooper3@citrix.com>


--Vz3fr8hXWo+Ktb/I
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Wed, 9 Apr 2025 18:57:53 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: Re: [PATCH 5/8] Adjust Linux build script to work with other major
 versions

On Wed, Apr 09, 2025 at 05:36:59PM +0100, Andrew Cooper wrote:
> Also use 'tar o' to decompress based on file name.

Do you mean 'tar a'? -o is --no-same-owner. Anyway, just 'tar xf'
works too, even in alpine.

> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> CC: Roger Pau Monn=C3=A9 <roger.pau@citrix.com>
> CC: Stefano Stabellini <sstabellini@kernel.org>
> CC: Michal Orzel <michal.orzel@amd.com>
> CC: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblethingslab.com>
> CC: Anthony PERARD <anthony.perard@vates.tech>
> ---
>  scripts/x86_64-kernel-linux.sh | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
>=20
> diff --git a/scripts/x86_64-kernel-linux.sh b/scripts/x86_64-kernel-linux=
=2Esh
> index 2a816f0b3204..5a0160655bea 100755
> --- a/scripts/x86_64-kernel-linux.sh
> +++ b/scripts/x86_64-kernel-linux.sh
> @@ -11,9 +11,10 @@ WORKDIR=3D"${PWD}"
>  COPYDIR=3D"${WORKDIR}/binaries/"
> =20
>  # Build Linux
> +MAJOR=3D${LINUX_VERSION%%.*}
>  curl -fsSLO \
> -    https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-"${LINUX_VERSION}=
".tar.xz
> -tar xJf linux-"${LINUX_VERSION}".tar.xz
> +    https://cdn.kernel.org/pub/linux/kernel/v"${MAJOR}".x/linux-"${LINUX=
_VERSION}".tar.xz
> +tar oxf linux-"${LINUX_VERSION}".tar.xz
>  cd linux-"${LINUX_VERSION}"
>  make ARCH=3Dx86 defconfig
>  make ARCH=3Dx86 xen.config
> --=20
> 2.39.5
>=20

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

--Vz3fr8hXWo+Ktb/I
Content-Type: application/pgp-signature; name=signature.asc

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmf2pxEACgkQ24/THMrX
1yxgaQf+N4j0XEDM+FHU35RJQYel9+RChPvPFFCKMp8hyVtgDSwaom0dreM2l0WI
VJrxWkEAquAboWwd3YMMhl7W77PZF8LRF2r7NIXC34ZhvHNDumTQZQebtpUo/OhT
Xh642NCmdvsZR3ZyZP14M2+sDHXuhFqCB3PB2vaY1bF2RiUfT43Yt6LV2KxVvSH0
7BCSq3C6s4dC+9jXZKDaFYjNNonQac7pCzSCi7+PntK/z6bJ9YA6Lq5zMtcTnUiX
XNWILMCcAp+QNm5i6eQRbc+UrZ225BV8k12ZT7am5mgUmc1du5F0Lg//UcUvkTfL
7XuETMpsci7PPWFC06kR4CEb7jZl/w==
=XR2C
-----END PGP SIGNATURE-----

--Vz3fr8hXWo+Ktb/I--


From xen-devel-bounces@lists.xenproject.org Wed Apr 09 17:01:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 17:01:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.944456.1342913 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2YoA-0000R7-Hq; Wed, 09 Apr 2025 17:01:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 944456.1342913; Wed, 09 Apr 2025 17: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 1u2YoA-0000R0-FI; Wed, 09 Apr 2025 17:01:50 +0000
Received: by outflank-mailman (input) for mailman id 944456;
 Wed, 09 Apr 2025 17:01: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=fbf/=W3=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u2Yo9-0000Qu-CF
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 17:01:49 +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 53336650-1564-11f0-9eab-5ba50f476ded;
 Wed, 09 Apr 2025 19:01:48 +0200 (CEST)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-43cebe06e9eso48708085e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 09 Apr 2025 10:01:48 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43f20a303absm18707835e9.1.2025.04.09.10.01.46
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 09 Apr 2025 10:01: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: 53336650-1564-11f0-9eab-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744218108; x=1744822908; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=i3TrEbMccdsRhbn/idqNe9LKVko5Ekd7qBDhP27PvVY=;
        b=kM9ML5xSnsjPHqj1RfmBqwinLqbfSV+33cxxvXlyMIEXM9EZhr12i+VBzDAd/awwJ2
         t4Hc4/xs3rLe3vxhVpzg/uGYTZXS1odtn6gda2hHmFNiDgTohOuF48RjClv3LPvP7Vzz
         zqqeKXSnyRmSutrEGgfQ/QWYTC79YlwItg3nk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744218108; x=1744822908;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=i3TrEbMccdsRhbn/idqNe9LKVko5Ekd7qBDhP27PvVY=;
        b=bGiQI2gRv/nelAOB8tTrZD9hQfBHaTXDd4Wczd+lxi+y5GbTTudn53NEuLj1+KKPma
         lbQFCp7VHbNdCUx/k/y4DMdfRBH4NuBOr8V16dS4wEViI3oirjxewLgt2h391eT9ImUo
         qI96d4Dj5ClT0BbsBng8HrG0UibETL35blAEDGZbNcqi4Kc9SK2D8gUDFmLsyFv6KRhG
         dTaBCRs2M0pQTDNOlA4pVQ0WHqSbP5Xbhg01sWFQEZMlG8M/KJshBzwcowjNL3pfgqPB
         OHxMpvSssDl1sbU2zMIkcuskWYwJIO18iH+K9dPMAZlOP78dC3OPI/Ns6yN8hMZUclcp
         1UJA==
X-Gm-Message-State: AOJu0Yyu2VrjanhWbqdH1Ma/u4dZorocIRJxR41fXvXroGfjnzmhWFVF
	kXS1FYhw0scMRSuX//RziLSWyd5ReUYbopsnkMmPnKTfpI84IojqfSbHFAgUmlJ9XdeznauyV07
	Z1fY=
X-Gm-Gg: ASbGncu1aFUa8/cHRhSAI5Gw+qiOZK7gS8NuzBtpgqJrpH/LxzD80hpBB4qMolLG37M
	rMFeN7CFgzjGaiONYtT3agpXp4bLkGxipDdyG4jl7Gh8eykGqk85gFDlysHDHQ8jX9PFr1iRoF+
	vLMHvz6MezOt8324I/Z/jnMzhGWVW7HAglHPxElxZPtF7WxSHXJO97bxIfxgxHgiTyfoFnpiZJx
	fEa3hk/mLamSSJq4L0idPT2drb8jRYcnGAgNF7qIPZRdj6UcZWqdHJ1ELk2tPvBfZQajWiZK8vO
	jPjyAvy8L4oqxJb7HEr+PbiGYs0O/xIr5C4q42TKnkSCwDAhBKLPcUsKnPmPB/yoWb+DPvwB65O
	OsVcUzA==
X-Google-Smtp-Source: AGHT+IFlJXUhbgTo7tOXdmSpEVosJm3bJLBgjMyaaPHFF/OXA3xO85hu3q2+n5zKt8q/o63DMPMnbQ==
X-Received: by 2002:a05:600c:5107:b0:43c:f8fc:f69a with SMTP id 5b1f17b1804b1-43f1fdbf975mr31372345e9.4.1744218107463;
        Wed, 09 Apr 2025 10:01:47 -0700 (PDT)
Message-ID: <828cabc9-512f-4c2f-a7d7-b9c8963c1300@citrix.com>
Date: Wed, 9 Apr 2025 18:01:46 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH TEST-ARTEFACTS 0/8] Cleanup and Linux ARM64 support
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>,
 Michal Orzel <michal.orzel@amd.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, Anthony PERARD
 <anthony.perard@vates.tech>, Jason Andryuk <jason.andryuk@amd.com>,
 Juergen Gross <jgross@suse.com>
References: <20250409163702.2037301-1-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: <20250409163702.2037301-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 09/04/2025 5:36 pm, Andrew Cooper wrote:
> Various bits of cleanup, and support for arm64 Linux builds.
>
> Run using the new Linux 6.6.86 on (most) x86, and ARM64:
>   https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/1760667411

Lovely, Linux 6.6.86 is broken for x86 PVH.  It triple faults very early on.

Sample log:
https://gitlab.com/xen-project/hardware/xen-staging/-/jobs/9673797450

I guess we'll have to stay on 6.6.56 for now.  (Only affects the final
patch.)

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Apr 09 17:05:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 17:05:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.944471.1342923 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2Yri-0002By-0b; Wed, 09 Apr 2025 17:05:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 944471.1342923; Wed, 09 Apr 2025 17: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 1u2Yrh-0002Br-U6; Wed, 09 Apr 2025 17:05:29 +0000
Received: by outflank-mailman (input) for mailman id 944471;
 Wed, 09 Apr 2025 17: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=np/6=W3=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1u2Yrg-0002Bl-Mg
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 17:05:28 +0000
Received: from fout-b7-smtp.messagingengine.com
 (fout-b7-smtp.messagingengine.com [202.12.124.150])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d4ce2ead-1564-11f0-9ffb-bf95429c2676;
 Wed, 09 Apr 2025 19:05:26 +0200 (CEST)
Received: from phl-compute-12.internal (phl-compute-12.phl.internal
 [10.202.2.52])
 by mailfout.stl.internal (Postfix) with ESMTP id 4E91211401B4;
 Wed,  9 Apr 2025 13:05:25 -0400 (EDT)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-12.internal (MEProxy); Wed, 09 Apr 2025 13:05:25 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed,
 9 Apr 2025 13:05:23 -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: d4ce2ead-1564-11f0-9ffb-bf95429c2676
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=fm2; t=1744218325;
	 x=1744304725; bh=xx0nHWKHf+Zskp6NtrRD6qV2xV28XOz7LauZoiISX4o=; b=
	PO7A+DO6qKaEPPcY6Vyj91g/hEt0ebSY24j8tfuCUoVPFelMuMO1LehxBFvRBk8R
	ydYygaauCfR5aliAQnleQlVMTTNkN44W5tLGPhl7qbGNsUeQDJIYrGjBsHEJKYWc
	btqSqeCKS98whIoPibOi8CAbwfwlbFDhPGMYXoUuo4Hezkhn8kwW58B4JeqVZBup
	X4U8tA/vjzJM9La66Lq+Ds/4mMBJxfxHS8vQ9ltFgeljc7n9cgTX614Zk4yvmKYV
	+vuyBOdskgJrHqwsLiVJ9YTas/IRM8oQhhxOg8jZhDMAmwQZZJ4K2BFuBSp5SkDj
	PzbiTKLurVSF4EQ1Puu9pQ==
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=fm2; t=
	1744218325; x=1744304725; bh=xx0nHWKHf+Zskp6NtrRD6qV2xV28XOz7Lau
	ZoiISX4o=; b=PjWdxj02lbLqhRoff+Sd38OcVqi+OQV+96ta37L6cyPZsT1crEh
	G9wLTLek24wGvnof91JTWZyUM+FscNV32I2RBlVChyzNDp3JYAA7sclr7juPBJuO
	SuL26lKZDVSExI3PSw6VzKYN4cWgYrP3aSM4dPPk53+RZO+2CbGrxiAJQNupv9vF
	WRzxyx3KO3BZ6Zf1uRX8X11055qDKQ/Yyza3VcqRy8+UPpwhOOra4Ni044Gqh/Ma
	BEW1TGS0juNCCAQoiS3a/3AFdO8cL9kgZeAEBWjoY1RtV1of95x96fiTTy9M5k2l
	0jdysJQR9/YnqQxfOaIoS2/gjmqnbEl+8JQ==
X-ME-Sender: <xms:1Kj2Z_W4jiu_NZE8tpgqyu2YFn6UeOC1a4ovGSBKGPfG24jMQ1Xubw>
    <xme:1Kj2Z3n6wgWxuwLr7Y2y0a2l-ILQNiYUBR-cdMgHMxqUmkFZoh4cBQMgGEdS2sgXq
    CWoAEuaBMrW6Q>
X-ME-Received: <xmr:1Kj2Z7az-W3MQSWqwfcDdSZmXfm3kLUgEy2EnZjKMmCPAJ9LlkzVwppliMXPG1J_I8ULDmsF6AjQPHzzlrtMIcyUP_pmcX4Tqg>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvtdeiheehucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
    pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
    gvnhhtshculddquddttddmnecujfgurhepfffhvfevuffkfhggtggujgesghdtreertddt
    jeenucfhrhhomhepofgrrhgvkhcuofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuc
    eomhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecu
    ggftrfgrthhtvghrnhepieeluddvkeejueekhfffteegfeeiffefjeejvdeijedvgfejhe
    etuddvkeffudeinecuffhomhgrihhnpehkvghrnhgvlhdrohhrghenucevlhhushhtvghr
    ufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhnvh
    hishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhnsggprhgtphhtthhopeeipdhmohgu
    vgepshhmthhpohhuthdprhgtphhtthhopegrnhgurhgvfidrtghoohhpvghrfeestghith
    hrihigrdgtohhmpdhrtghpthhtohepgigvnhdquggvvhgvlheslhhishhtshdrgigvnhhp
    rhhojhgvtghtrdhorhhgpdhrtghpthhtoheprhhoghgvrhdrphgruhestghithhrihigrd
    gtohhmpdhrtghpthhtohepshhsthgrsggvlhhlihhniheskhgvrhhnvghlrdhorhhgpdhr
    tghpthhtohepmhhitghhrghlrdhorhiivghlsegrmhgurdgtohhmpdhrtghpthhtoheprg
    hnthhhohhnhidrphgvrhgrrhgusehvrghtvghsrdhtvggthh
X-ME-Proxy: <xmx:1Kj2Z6V0cu-0co0WQyKokvWWKYcictAjDg9hWT5okLaM_GXXwzLjRQ>
    <xmx:1Kj2Z5ms56I7GUfySTI5hNLlIzvvya1S2WQwD5_ktE9tesZSUKcb5A>
    <xmx:1Kj2Z3ePqM27srt6RJQHbriIhens1bwg_SZW4LcYM0B11dOeAntJsw>
    <xmx:1Kj2ZzGR--ePWGPD5XrnLBlPYCcKNy8GfRVEYUZK481_QfEBDPupAg>
    <xmx:1aj2ZxXDUOzycjES_6AKnPpHkMeh5Ct3DSxKMYwBKB2VnFQSGJANzp1o>
Feedback-ID: i1568416f:Fastmail
Date: Wed, 9 Apr 2025 19:05:21 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: Re: [PATCH 6/8] Factor our x86-isms in the linux build script
Message-ID: <Z_ao0d530OwAUqGW@mail-itl>
References: <20250409163702.2037301-1-andrew.cooper3@citrix.com>
 <20250409163702.2037301-7-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="W86cjPxvxVxLs5Mx"
Content-Disposition: inline
In-Reply-To: <20250409163702.2037301-7-andrew.cooper3@citrix.com>


--W86cjPxvxVxLs5Mx
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Wed, 9 Apr 2025 19:05:21 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: Re: [PATCH 6/8] Factor our x86-isms in the linux build script

On Wed, Apr 09, 2025 at 05:37:00PM +0100, Andrew Cooper wrote:
> ... in preparation to use it for arm64 too.  Rename the script.
>=20
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Reviewed-by: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblethingslab.c=
om>
> ---
> CC: Roger Pau Monn=C3=A9 <roger.pau@citrix.com>
> CC: Stefano Stabellini <sstabellini@kernel.org>
> CC: Michal Orzel <michal.orzel@amd.com>
> CC: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblethingslab.com>
> CC: Anthony PERARD <anthony.perard@vates.tech>
> ---
>  .gitlab-ci.yml                                |  3 +-
>  ...{x86_64-kernel-linux.sh =3D> build-linux.sh} | 34 +++++++++++++------
>  2 files changed, 24 insertions(+), 13 deletions(-)
>  rename scripts/{x86_64-kernel-linux.sh =3D> build-linux.sh} (55%)
>=20
> diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
> index 5a0a853e551d..ff8dce7be05d 100644
> --- a/.gitlab-ci.yml
> +++ b/.gitlab-ci.yml
> @@ -31,8 +31,7 @@ stages:
>  #
>  x86_64-kernel-linux-6.6.56:
>    extends: .x86_64-artifacts
> -  script:
> -    - . scripts/x86_64-kernel-linux.sh
> +  script: ./scripts/build-linux.sh
>    variables:
>      LINUX_VERSION: 6.6.56
> =20
> diff --git a/scripts/x86_64-kernel-linux.sh b/scripts/build-linux.sh
> similarity index 55%
> rename from scripts/x86_64-kernel-linux.sh
> rename to scripts/build-linux.sh
> index 5a0160655bea..5e25e958c0f3 100755
> --- a/scripts/x86_64-kernel-linux.sh
> +++ b/scripts/build-linux.sh
> @@ -9,6 +9,7 @@ set -ex -o pipefail
> =20
>  WORKDIR=3D"${PWD}"
>  COPYDIR=3D"${WORKDIR}/binaries/"
> +UNAME=3D$(uname -m)
> =20
>  # Build Linux
>  MAJOR=3D${LINUX_VERSION%%.*}
> @@ -16,17 +17,28 @@ curl -fsSLO \
>      https://cdn.kernel.org/pub/linux/kernel/v"${MAJOR}".x/linux-"${LINUX=
_VERSION}".tar.xz
>  tar oxf linux-"${LINUX_VERSION}".tar.xz
>  cd linux-"${LINUX_VERSION}"
> -make ARCH=3Dx86 defconfig
> -make ARCH=3Dx86 xen.config
> +
> +make defconfig
>  ./scripts/config --enable BRIDGE
>  ./scripts/config --enable IGC
>  ./scripts/config --enable TUN
> -cp .config .config.orig
> -cat .config.orig \
> -    | grep 'XEN' \
> -    | grep '=3Dm' \
> -    | sed 's/=3Dm/=3Dy/g' \
> -    >> .config
> -make ARCH=3Dx86 olddefconfig
> -make -s -j "$(nproc)" ARCH=3Dx86
> -cp arch/x86/boot/bzImage "${COPYDIR}"
> +
> +case $UNAME in
> +    x86_64)
> +        make xen.config
> +        cp .config .config.orig
> +        cat .config.orig \
> +            | grep 'XEN' \
> +            | grep '=3Dm' \
> +            | sed 's/=3Dm/=3Dy/g' >> .config
> +        ;;
> +esac
> +
> +make olddefconfig
> +
> +case $UNAME in
> +    x86_64)
> +        make -j$(nproc) bzImage
> +        cp arch/x86/boot/bzImage "${COPYDIR}"
> +        ;;
> +esac
> --=20
> 2.39.5
>=20

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmf2qNEACgkQ24/THMrX
1yxmswgAgUXcg2pbwLf6EQ8CVuwZoFadWbi2nksXxuBs88rR+ACpatjEaXcQoLGi
e2Mu9BOo+lGoc4gfN7Uoysa9Gnh12sZEbgW1K6eBVvETCe96DMC8O4pDWLzIYXbo
z4koPYK1GEylQnKzxG8PmkCMYCJnedqcgwZMPOo+jdxitUJfllrSI8qnM7ujT2Ha
ouck+6Qe0m90PTEhQrdz/4worrfGAJz3vxGyZVKVgk+tkwBZHWxn2aPFlcQQIfGz
5b/12gEyCBc4t0IR7RCWGOrp3U8dtjUIu3fZUDW6+37pCS5tM8wn4WmYV+HOmWhF
cZutksf28EwqarhIqMXIB1rzmPD6sQ==
=qOfE
-----END PGP SIGNATURE-----

--W86cjPxvxVxLs5Mx--


From xen-devel-bounces@lists.xenproject.org Wed Apr 09 17:09:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 17:09:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.944485.1342934 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2Yvx-0002m6-IF; Wed, 09 Apr 2025 17:09:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 944485.1342934; Wed, 09 Apr 2025 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 1u2Yvx-0002lz-E5; Wed, 09 Apr 2025 17:09:53 +0000
Received: by outflank-mailman (input) for mailman id 944485;
 Wed, 09 Apr 2025 17:09: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=IAcD=W3=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1u2Yvv-0002lt-Sw
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 17:09:52 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on20631.outbound.protection.outlook.com
 [2a01:111:f403:2415::631])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 716cc014-1565-11f0-9eab-5ba50f476ded;
 Wed, 09 Apr 2025 19:09:50 +0200 (CEST)
Received: from PH8PR12MB7326.namprd12.prod.outlook.com (2603:10b6:510:216::7)
 by BL4PR12MB9506.namprd12.prod.outlook.com (2603:10b6:208:590::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.34; Wed, 9 Apr
 2025 17:09:45 +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.8632.017; Wed, 9 Apr 2025
 17:09: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: 716cc014-1565-11f0-9eab-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=BqwD0+Ci14EnjH1oBbYdayDrcnpFJgwU8pQvG+wxAXAuI+4BVgrjcmuZlVyJa8nUJtKMElWWuJnplMzRe/2k4nsS4Nx7mh8SxM3Q7tCBNUpIfR8fdurRiksBCVzFnTXzsqTdxxZAVLGCDVCzSzGtbd6BvxdpsXLnePP1Rf6NZV1UOahYq96selu7rqjqDRkR3gmsEfyYZ6hL4eybN8vVKUttVWAd19p8BrVs0kcODcoKms7peouWVfgzotJCMAKToPZzz/1YTK7er4n+XCjoPJYC5dw0AlU79f4vUWpESrx4CTA6I7QiBgZXvNisvLqTDql3KPz4qL7EDRknrx9Xjw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=s7pc0p5Aoo6cpK3WUpX+JS+wOWn4+fHkMGhs0gB+c9g=;
 b=xIxem5yLbSxsoNAQEfOvD2q/CSGiOpMD1jFbFQCVObNxP5wIgLnB+DHwVVxzoRCtgX0eiHgDpJghBs/kwEmEHP+CdJzhUtjpUaY7SiWd/+EDSITSICRZWEtgkwoGwyzocGngGJmn3iLm/sDeP680Z/LQc0ztsi9WCPlBhH/oKEP7r1/sjLmBnSICUZ0DKhA16KKYx69c73HtUGUovOB5ETJXwgT48WNIJ38mLZ+xK352XvqM6Kxunt9z0keKGFfDVrYGBhwgRIYkb2IvrHQQrZjfOHf0maW6K+8bXJ97dnZ54G3wLw5D2kSHbAn/ryNpx/4JyBp5VJX0xBBhMkmXqw==
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=s7pc0p5Aoo6cpK3WUpX+JS+wOWn4+fHkMGhs0gB+c9g=;
 b=ShsY6W6Q6u8lX4urneK31Vaq79zoM6jUIvVAFZhE/0SVc7531T5wTjImPBzNvAPeG7CrplmAGKjSoPkVdeMmLaziPPpg8UF3cRFb2+ZMl+gh1+SJW7iiClhoBR2Z/GuylqbBTQZxQKv94+O0ot6aW87Zsm+wcVdnPVDOpRf07Kg=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <be18ae1a-7ede-4ed6-9168-d20a2ae7055f@amd.com>
Date: Wed, 9 Apr 2025 18:09:41 +0100
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 1/3] xen/arm: Move some of the functions to common file
Content-Language: en-GB
To: "Orzel, Michal" <michal.orzel@amd.com>,
 Ayan Kumar Halder <ayan.kumar.halder@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>
References: <20250407184443.1790995-1-ayan.kumar.halder@amd.com>
 <20250407184443.1790995-2-ayan.kumar.halder@amd.com>
 <d03fcf63-d946-48d6-b96a-a6b54d3dd840@amd.com>
From: Ayan Kumar Halder <ayankuma@amd.com>
In-Reply-To: <d03fcf63-d946-48d6-b96a-a6b54d3dd840@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0018.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:150::23) To PH8PR12MB7326.namprd12.prod.outlook.com
 (2603:10b6:510:216::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: PH8PR12MB7326:EE_|BL4PR12MB9506:EE_
X-MS-Office365-Filtering-Correlation-Id: a89e69f9-164b-4c33-3e75-08dd77895356
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?dDZsczRkdXRxZmR4VmlFcTZKWjdDRzlodUVTSFRJbTZPTGcxYVV2RXI0Q0RZ?=
 =?utf-8?B?dVF5aGpBZDdRRFMyWGRKb3dSTFhuaGFBVEd2ZWU3WVlOWU11SXlhRzFWcE85?=
 =?utf-8?B?L05oOEJuWkNEL0luOHFRMmltYkgyRGttK014V0I3T2hISEJ3WFh6MWlxNzIx?=
 =?utf-8?B?MHZGTUVEWHZWWm9oNFFROFlxZGIydlpyK1pwcDB5eWhjQmRlMFZyQlk5NFlq?=
 =?utf-8?B?Z0cweHM4MWg1eU1kT2RlWXYwSkhtRzdiMUs5YUZwd1BvL1NFMlE1SXU4UHhV?=
 =?utf-8?B?cDJTZCtkRVkxZDE1d3ZpWld4MFpwajREVUNFemowclZOUHdlaUd6bHlmMEV1?=
 =?utf-8?B?UmlheHN2R0toaG1IbFF0cHRZRVcvek00bGdvMVZUYnVyQUEzUjEwckRLS3pn?=
 =?utf-8?B?YzcyQzhuaUdnV29TdE1HMHkzNmJYZGhWVEQ3QnY2TXFoc2c5a1hHYzg0TnlS?=
 =?utf-8?B?ZS95M1M2YVY3ek42ZFJ5Zi9mTWo5Si9kZHdhaVlXUjJVZkRwWEFDcU41allH?=
 =?utf-8?B?NkJMZE1kRkp6b3pwb0RRNE9mZnY2Qzk3cVp3NGFNUzAwUU83M2ViemV4clBH?=
 =?utf-8?B?dHl2YjVCRHhtMWMwOFlnMERxR2JtMWVhTU9XQ2p1MVF6bGRRNjhBWjVvcWlU?=
 =?utf-8?B?em1YS3lZSUpRR3NhWTJ0azd3N1ROZHhwYnU2NlJ5bnBBTVpEQ3RmUGNKWWpt?=
 =?utf-8?B?YnJPV2tQZ3RhMjE1NDd1VVlITHVvNjVyakMrcUxPZGt3T1ZmNDlNVTNPN3JY?=
 =?utf-8?B?cEM4OHh1K1hxRzljOHIwd2JZU1ViS3hsYnZmYm5hb2pVTWNFb2ZoQlBoSGZZ?=
 =?utf-8?B?L09FT2xBemtmcllHY09OYXF4eU5sOU1zUlgvS1VjQUVPT3o1clU1cmZFSzFm?=
 =?utf-8?B?UzEyMERXT3JBWEduMmd6S2c4TFQwLy9HL1NuRHYwT2FOQnh5S1Mvc01LcFhP?=
 =?utf-8?B?YlkvMkZoaWZQelVnNEJDZWFNaVk5Q1dFcVNhZlJxNW5XeWRrUjhRMXJKcTYw?=
 =?utf-8?B?bTV1QXVMbXBuSTc1MGl0NG5nbDZxdjRCY3QyTnF2Z2JMVWFIYVhkN0lpaG9q?=
 =?utf-8?B?cHltaFFuZUFHNWFEczFlWFV6dk9HSEMxa2c2M21nNk9GOFBIN1FoY0FVZTNm?=
 =?utf-8?B?KzExdGJCbi95eXB6dDdzd1dRZU1aOVZRZnZhQ3Z4MTVoTDZ1dHpqbWJYQUI1?=
 =?utf-8?B?ZDlFMFlETVI5UWppdS9HMW1kMkJLWldrRUR6WUg3emxLNUJPTGcxTVhEbktH?=
 =?utf-8?B?N1hCLzQ1MTNtM0VOdHByUVVUc2c3U1V1MDRlK2lINEVFRlAwNnZyOXdEVHB2?=
 =?utf-8?B?TERhR1NmeHZJQXpwdS84K3lIUkwwb0sxVnFUMnQ4VGVqVVFsaFpwMHd1YUVI?=
 =?utf-8?B?SG0zK1drTm40djVCY0MzUHR3a3h2WVNiU2JBZE0yTDh0ZEFGaG82ZVFWWW8w?=
 =?utf-8?B?SWRBMWN3V2pQMG95NVdpc2dGZzl2SXd3UlJ3bld0V0xzZ1VlNDIxYlpSNkl2?=
 =?utf-8?B?SXR6d2FaK3M0L2JDblFqcnlZWUZvNU1nQkRyY3J5V1hTTjN2L0dnMkZsREJv?=
 =?utf-8?B?U3VtVmdvTDUwdXh3ODVXdDVyYnErKzRiaGVKazYzTCtqZWNQMjBvTXBIVTRq?=
 =?utf-8?B?c0ZNN3pDTHZXNnc3ZTZZbzlOOHcvSGw3NEYwZ3hGQ3ZlWmgvU2k0Q05XUEYx?=
 =?utf-8?B?QUJtK3FNODVwUEVVb0VLaFN1ZjVQWG1kN1E5TXZ6QkxDMnAyMWx4dklDUW1S?=
 =?utf-8?B?U0gyeHFEeVlpU1QxeUYwRG1sMXkzVVloUjgxbWh6WkVUV2NVKzFYeEdZUUxh?=
 =?utf-8?B?TjNTbzQ5b3VMaG5mQlZIYnpzN0lqc20rNHhhRm8zV1lPaHZoNU1jOXdsUCtO?=
 =?utf-8?Q?2Hjv40WI2IkE7?=
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?SG9aZk9RTWw2R0Y0N0dHamw1Y243OFlaZjduUVJtOWgydjNrKzM5OFF5M0hG?=
 =?utf-8?B?YjF5SHh1QzNlS1hkZFh4TUpYcXRZVjdGVEdpOFArVWlsbVI1aW9QS3VuUkdO?=
 =?utf-8?B?cE9xaUdWNXl4eFB0bDVTd0pMaEl4VkVrVDF1Qy8venVOcUNGeW9tSHVQSm95?=
 =?utf-8?B?YjFGOEdjZVZEM0lOL2JrVkFIMXJUUlVMNnkxR0hTeUxkdCtaUVVZODd3R2d5?=
 =?utf-8?B?U3RCNjJWMno2VFY5Q0I4VC9sTGc0RkIwQnl1Qmh6ZXJycVVyRUZnRXVyZkVa?=
 =?utf-8?B?bnRhbzlLb0doZGl5RVp5MEx2SnBKZmhWYitjNFU2cDQ5eCtIWW1rSTRIWU9W?=
 =?utf-8?B?bGtFa3dFaUwyWThGYUUrZWsvZmJNZ1dmK2V6U01adGZERHAvbXhZVFg3U20z?=
 =?utf-8?B?SElFUEsrT25IUTFqYXc2L2xKSzdrS0dxMEkyWklNdWg4WHlpR3FBS2FyV1lz?=
 =?utf-8?B?dHl1UWM3VnAwNlB2RXhhNjVQQ2phSExZdEVRS3NVRFJMQzNGV1NXWUtGZUxx?=
 =?utf-8?B?d1hFNTNtVjVadDlLUHltTVp0WEV3OGxBV3hvN09YSFhkODdVOGJBbUsvMFhV?=
 =?utf-8?B?TS9PTnJ1ZlpVMW1tck4xY1dxYU9wL01uUVJFS3ZZZTZoNjR6V3M3RmZsNWhn?=
 =?utf-8?B?MU02UVZDbHNwaGhyblp2MUxXT1p0MlUvQU91My9welZLMWVZRHlrcXZJYlNa?=
 =?utf-8?B?amg3cStjUlBFcXkzS042cjcxQVBSK3FNOUl2eU00bGl5NzhPbENVOFMzbk1z?=
 =?utf-8?B?UUJMR0VUWTFtQTF2bFpTUjlmUVJtZ0VtRSt4ZDlwYTRvU0FBSy9UTXNDajlt?=
 =?utf-8?B?bjZRd3JWV2QrMzRwQW1SU2FNVUw1QVhUSkhtQVd6Vi9wb1hTbjUvT1phOW51?=
 =?utf-8?B?cWVLZDdKdlF0ZTNwV3Q1RWdXU2hFMndIczlVQkZFTUtYNllUQ3daY25IZmR6?=
 =?utf-8?B?dUVJSEVrekNIL3M1b1VDR3FMc2ZsNG5SYXJtMHMzZUhTMTVrVnpqMmpkRUNJ?=
 =?utf-8?B?R0I3bEUzbUNyMFJSSlI2T0xDUHhSK1MzSVV3V2g1UzRSRUUxelB1dWJXSFRa?=
 =?utf-8?B?c21KNkJRTmYzK3BSRmY0ME5zcU9pbG02YnN3TWY1WVA2MmsraU44dkFKd2ZD?=
 =?utf-8?B?RldheSsreDFPUjlndDEyMG1RdGdlT0QyUDUwM1Y5RkVZdHEyVml0eDJJQWxY?=
 =?utf-8?B?T0Y1NHBPdHhDV2krYmtCaWNybUhIMHRwWUhWOWYzNlB1d0crMWNtZDUrenkz?=
 =?utf-8?B?L3RzSHJzZjNIbFdrYzRLUGtkNTVRSVM1d250QXlZTCtBSlluUmw0eVFXUVNN?=
 =?utf-8?B?bGJFNktsN0pRbU1ZYkpOcEphMStNMDlNQ2FxOWtnb1c2Rng4cmx1RzVQcmlN?=
 =?utf-8?B?Q1JydzBsd2tWZUFMWWd5SnJjeEsvdUk5R21KbnFCRXd0ckNYZWpua1RhZ2dC?=
 =?utf-8?B?VWZPYUtDdWFUNWdEUlZUUS9JNEQvQmkyanNkcGppbElTRUhuTFFKalZhWU5a?=
 =?utf-8?B?VnJ1bHlaSURQSXJuaXhrbitxWTA0ZEhYclUvYVRVeENzdko0ajZWN21OcVM2?=
 =?utf-8?B?TXY0YnU5c2tSY2tvZTRab04zUm5nQ1JFWENNRkIySTJWTWI3TWc2bXBDanc1?=
 =?utf-8?B?VmpmMG10QUpwNm9GMnNQakVtLzQ0Y2tjVDB3bmgxM3FPenpMa2hXaGh4Yjhp?=
 =?utf-8?B?Zit0M21FcWFmcnFmRnVscG9DUm85aGJqcFJXc0dxeFBCbDBDOHFnVEVNb0ht?=
 =?utf-8?B?T3g4Q2Y1c0h6TlRnVk9CbVBaUUxVa0IvQUYxTFRTTERBYVFRb29wSitvUG9r?=
 =?utf-8?B?blowaEhuZnJOTDBZZ2xwWW12UmI4SGtMV2ZHMlBIei9pQlVvZFVhV1pWV0JS?=
 =?utf-8?B?bFhFdEl1T3JvTG8yVS9ZR3E1NUpWeXRPb0VMZHVYUldKbDZSMlFTc3YvNFlN?=
 =?utf-8?B?TzFPaUVsT0FzTHg2Y3lCaVBRWlRIZnBxOUIvSHIzSGIyY1dQTWIwRDNmR3Zz?=
 =?utf-8?B?aG1HMTdTYTNZUnFFMkhyamlqTmJjM2xMZURTKzZ5eXE1MXBMSWwvenlwdXd6?=
 =?utf-8?B?andWcU40SWsvd0NiMHBQVDllRGJlMFgxczZzTFhoSWZrM21velo5NVRtT2Nx?=
 =?utf-8?Q?XyTT4DKaOTfp/uht2Zpx0UgeC?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a89e69f9-164b-4c33-3e75-08dd77895356
X-MS-Exchange-CrossTenant-AuthSource: PH8PR12MB7326.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Apr 2025 17:09:45.1256
 (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: qbANjr7X0ikxblrNw8GYGkHEB7o17MK0BbMTkryfZyQ4dodOEKqVD4BWkVDr9joF2UEtHi1Fhjudu8o0M83iRQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL4PR12MB9506

Hi,

On 08/04/2025 08:33, Orzel, Michal wrote:
>
> On 07/04/2025 20:44, Ayan Kumar Halder wrote:
>> Added a new file common.inc to hold the common earlyboot MPU regions
> NIT: Describe your changes in imperative mood
>
> Also, my understanding was that this file will contain common constructs not
> only regions related. If this is just for regions, then it's better to name it
> regions.inc.
>
>> configurations across arm64 and arm32.
>>
>> prepare_xen_region, fail_insufficient_regions() will be used by both arm32 and
>> arm64. Thus, they have been moved to common.inc.
>>
>> *_PRBAR are moved to arm64/sysregs.h.
>> *_PRLAR are moved to common.inc as they are common between arm32 and arm64.
>>
>> Introduce WRITE_SYSREG_ASM to write to the system registers from the common asm
>> file.
>>
>> Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
>> ---
>>
>> Changes from
>>
>> v1 -
>>
>> 1. enable_mpu() now sets HMAIR{0,1} registers. This is similar to what is
>> being done in enable_mmu(). All the mm related configurations happen in this
>> function.
>>
>> 2. Fixed some typos.
>>
>> v2 -
>> 1. Extracted the arm64 head.S functions/macros in a common file.
>>
>> v3 -
>> 1. Moved *_PRLAR are moved to prepare_xen_region.inc
>>
>> 2. enable_boot_cpu_mm() is preserved in mpu/head.S.
>>
>> 3. STORE_SYSREG is renamed as WRITE_SYSREG_ASM()
>>
>> 4. LOAD_SYSREG is removed.
>>
>> 5. No need to save/restore lr in enable_boot_cpu_mm(). IOW, keep it as it was
>> in the original code.
>>
>> v4 -
>> 1. Rename prepare_xen_region.inc to common.inc
>>
>> 2. enable_secondary_cpu_mm() is moved back to mpu/head.S.
>>
>>   xen/arch/arm/arm64/mpu/head.S            | 78 +----------------------
>>   xen/arch/arm/include/asm/arm64/sysregs.h | 11 ++++
>>   xen/arch/arm/include/asm/mpu/common.inc  | 79 ++++++++++++++++++++++++
>>   3 files changed, 91 insertions(+), 77 deletions(-)
>>   create mode 100644 xen/arch/arm/include/asm/mpu/common.inc
>>
>> diff --git a/xen/arch/arm/arm64/mpu/head.S b/xen/arch/arm/arm64/mpu/head.S
>> index ed01993d85..4d76a3166e 100644
>> --- a/xen/arch/arm/arm64/mpu/head.S
>> +++ b/xen/arch/arm/arm64/mpu/head.S
>> @@ -3,83 +3,7 @@
>>    * Start-of-day code for an Armv8-R MPU system.
>>    */
>>   
>> -#include <asm/early_printk.h>
>> -#include <asm/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 */
>> -#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.
>> - * 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
>> - * Output:
>> - *  \sel: Next available region selector index.
>> - * Clobbers \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)
>> +#include <asm/mpu/common.inc>
>>   
>>   /*
>>    * Enable EL2 MPU and data cache
>> diff --git a/xen/arch/arm/include/asm/arm64/sysregs.h b/xen/arch/arm/include/asm/arm64/sysregs.h
>> index b593e4028b..3ee3715430 100644
>> --- a/xen/arch/arm/include/asm/arm64/sysregs.h
>> +++ b/xen/arch/arm/include/asm/arm64/sysregs.h
>> @@ -462,6 +462,15 @@
>>   #define ZCR_ELx_LEN_SIZE             9
>>   #define ZCR_ELx_LEN_MASK             0x1ff
>>   
>> +#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 WRITE_SYSREG_ASM(v, name) "msr " __stringify(name,) #v;
Agreed with your other points.
> 1) This macro is ASM only and you don't protect it like the C macros below. Why?

I have a weak argument for this. :)

You can write ""msr " __stringify(name,) #v" in the C files. However, 
you cannot write "uint64_t _r  ....." in the assembly files.

If you strongly prefer, I can enclose this within #ifdef __ASSEMBLY__

> 2) Semicolon not needed at the end

Ack.

- Ayan

>
> ~Michal
>


From xen-devel-bounces@lists.xenproject.org Wed Apr 09 17:11:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 17:11:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.944500.1342944 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2Yxu-0005Df-0G; Wed, 09 Apr 2025 17:11:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 944500.1342944; Wed, 09 Apr 2025 17:11: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 1u2Yxt-0005DY-TX; Wed, 09 Apr 2025 17:11:53 +0000
Received: by outflank-mailman (input) for mailman id 944500;
 Wed, 09 Apr 2025 17:11: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=np/6=W3=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1u2Yxs-0004xy-OX
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 17:11:52 +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 b9c4f89b-1565-11f0-9eab-5ba50f476ded;
 Wed, 09 Apr 2025 19:11:51 +0200 (CEST)
Received: from phl-compute-12.internal (phl-compute-12.phl.internal
 [10.202.2.52])
 by mailfhigh.stl.internal (Postfix) with ESMTP id 8500A2540073;
 Wed,  9 Apr 2025 13:11:49 -0400 (EDT)
Received: from phl-mailfrontend-01 ([10.202.2.162])
 by phl-compute-12.internal (MEProxy); Wed, 09 Apr 2025 13:11:49 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed,
 9 Apr 2025 13:11:47 -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: b9c4f89b-1565-11f0-9eab-5ba50f476ded
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=fm2; t=1744218709;
	 x=1744305109; bh=KyGBuymLTk3CL0dsm7ZO4d64GHS0vA5Km1872M27gKA=; b=
	dIIaKHAaHoo4e6GsfbU8zFUr+wqTbmIe7efa5wqWdOiAtFjFCnqtpno/Y5xSpB6y
	caNoRKSlXdOjstsK+tAR1/ATAZKucJ/Rq0FR+YLyiVhWywVzb2Za+HtJ83CdfV1i
	A5NsXBpGw8ImdBzKLjm8Enpa9Lovpf4WqgbSmxL+8siTdaecXdqfGPjSkuSigV4W
	RcG7Fi56BA4lrNOZU6qlbY4iNOcVQztYpB4GtGtXx3cAIAVnBaAcyNIokleoa9Dr
	hlIrBkAban97M7N4Q3hqGZiwXqMPWUxUTIcWeLFEFVaX6xp2jcDN5A1M8zKgWByz
	Re8oRiID7gq2tl6iJ6KT7w==
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=fm2; t=
	1744218709; x=1744305109; bh=KyGBuymLTk3CL0dsm7ZO4d64GHS0vA5Km18
	72M27gKA=; b=vr+pNm0ffh2a42NXrhOtdgLRldkfxE2ceYUnz0Oreg159burAEt
	lYxUTJ/cOrngQ5OV/C3ihQdRdxVZdL4A0RfJ60y+s/c7Dkt16JUVHMRIiWAWhckw
	8buxvX+GMM5g4J3z42E16bJe1895xrrQ8Hma78cnrdycT2fYeESdgzHF8mUdhJpd
	nXzHyr4vi16OtgPQk//1Qkjt0Hq1C1ZGFPiEX4ePtRmiXJwGoiny3HfbDXK3Qelc
	cTkcxrK9ccYnRkOQ8O5tneNH/oI1BNR8Gfg99cTn3//9kwg+XFdWzfnY36WupVqY
	8dbx0tEe43d0z7dz+o4QHZ1uzSyujNhANrg==
X-ME-Sender: <xms:Var2Z_yYjrbr7WsEBV_pA-JCndVEn7miJpw2FU-eY1cper8XK9mSuA>
    <xme:Var2Z3Snb7Dy8jNHRCf3bchOoOMGOqCt2gJt58H3NCO-Tsxnjulrqiw7lE_Fkr968
    OEgTR_aUMvNvg>
X-ME-Received: <xmr:Var2Z5XcTF7obb6rS4_5g692fhWYh0jxJfEpdfQGdT3_-yG5rZi2NoqKRzY-2H6UAMuHTV0JMPTi1cRqo_evE-LtLp9BRSMlmA>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvtdeiheeiucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
    pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
    gvnhhtshculddquddttddmnecujfgurhepfffhvfevuffkfhggtggujgesghdtreertddt
    jeenucfhrhhomhepofgrrhgvkhcuofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuc
    eomhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecu
    ggftrfgrthhtvghrnhepgfduleetfeevhfefheeiteeliefhjefhleduveetteekveettd
    dvgeeuteefjedunecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhf
    rhhomhepmhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomh
    dpnhgspghrtghpthhtohepiedpmhhouggvpehsmhhtphhouhhtpdhrtghpthhtoheprghn
    ughrvgifrdgtohhophgvrhefsegtihhtrhhigidrtghomhdprhgtphhtthhopeigvghnqd
    guvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdprhgtphhtthhopehr
    ohhgvghrrdhprghusegtihhtrhhigidrtghomhdprhgtphhtthhopehsshhtrggsvghllh
    hinhhisehkvghrnhgvlhdrohhrghdprhgtphhtthhopehmihgthhgrlhdrohhriigvlhes
    rghmugdrtghomhdprhgtphhtthhopegrnhhthhhonhihrdhpvghrrghrugesvhgrthgvsh
    drthgvtghh
X-ME-Proxy: <xmx:Var2Z5g1JwlFQwVu9M9DkBvzs7ydhKJTEgZraM0oIm7u2ScstTEIug>
    <xmx:Var2ZxAmPJQGa56v5Q2Nlx1zGieVhQETHoVzCS1Tp4qyHVH9RlmKaw>
    <xmx:Var2ZyIxdZ9MqgY-LSTCxtr4JHEdPiTEPafO8h0oBdBgUDe4bss9cA>
    <xmx:Var2ZwAJAGkWuV2fA7XBzzlH6gYyHfqZ-zodkbbZt1GLXn71JXxKZQ>
    <xmx:Var2Z4BU0QMnejPrRizeffktDa1BayXdKHbMga8LD-K9Cgw91sfQcK0h>
Feedback-ID: i1568416f:Fastmail
Date: Wed, 9 Apr 2025 19:11:45 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: Re: [PATCH 7/8] Infrastructure for arm64 linux builds
Message-ID: <Z_aqUikDqi1UEOHb@mail-itl>
References: <20250409163702.2037301-1-andrew.cooper3@citrix.com>
 <20250409163702.2037301-8-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="wkketGG8waHhY6pA"
Content-Disposition: inline
In-Reply-To: <20250409163702.2037301-8-andrew.cooper3@citrix.com>


--wkketGG8waHhY6pA
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Wed, 9 Apr 2025 19:11:45 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: Re: [PATCH 7/8] Infrastructure for arm64 linux builds

On Wed, Apr 09, 2025 at 05:37:01PM +0100, Andrew Cooper wrote:
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> CC: Roger Pau Monn=C3=A9 <roger.pau@citrix.com>
> CC: Stefano Stabellini <sstabellini@kernel.org>
> CC: Michal Orzel <michal.orzel@amd.com>
> CC: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblethingslab.com>
> CC: Anthony PERARD <anthony.perard@vates.tech>
> ---
>  .gitlab-ci.yml                            |  7 ++++++
>  containerize                              |  1 +
>  images/alpine/3.18-arm64-build.dockerfile | 27 +++++++++++++++++++++++
>  scripts/build-linux.sh                    | 10 +++++++++
>  4 files changed, 45 insertions(+)
>  create mode 100644 images/alpine/3.18-arm64-build.dockerfile
>=20
> diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
> index ff8dce7be05d..6e38c2f2a108 100644
> --- a/.gitlab-ci.yml
> +++ b/.gitlab-ci.yml
> @@ -19,6 +19,13 @@ stages:
>      exclude:
>        - binaries/.gitignore
> =20
> +.arm64-artifacts:
> +  extends: .artifacts
> +  tags:
> +    - arm64
> +  variables:
> +    CONTAINER: alpine:3.18-arm64-build

Arm64 kernel used to be built in a Bookworm container. The build in alpine
has "find: unrecognized: -printf" in the middle of the build. It doesn't
fail outright, but something might be broken. I guess it's related to
initramfs - maybe some option can be disabled, to avoid this message?

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmf2qlIACgkQ24/THMrX
1yyGZgf/TWRO49PiQdqqP7chOt0BER0aXPIVOFc31hkWexOaBGBivpAIYX6FHcTQ
D9ead4oRL4tVtlZVVhlYsoptFWpTVs0Q+796ezPScLhL3ibjtMGS4evhQFNncvp7
tvF3Fx4mu7wW6qv7cL9JR4jLs2tSEDgeL0HDnF5hxu0iaUjtsP2UoCX+8jcb6dAe
k5F0aVsoHvTIYWnrYhJUpIQi6pusOCQoQaEC3nOxYj1dyaxS/uCi6/8VoIF/MszX
j6e9GTPx9+Asmheairwyv2tnBpBMtzvSSI/6NrXCgGQtMCncGrt5AbtFGb0V0TK6
AC83+V3U3kLiSWRBK9cEr/fifHYoWA==
=ZkJt
-----END PGP SIGNATURE-----

--wkketGG8waHhY6pA--


From xen-devel-bounces@lists.xenproject.org Wed Apr 09 17:15:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 17:15:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.944515.1342954 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2Z1W-0006gp-E1; Wed, 09 Apr 2025 17:15:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 944515.1342954; Wed, 09 Apr 2025 17:15:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2Z1W-0006gi-Aq; Wed, 09 Apr 2025 17:15:38 +0000
Received: by outflank-mailman (input) for mailman id 944515;
 Wed, 09 Apr 2025 17:15: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=np/6=W3=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1u2Z1V-0006gc-2c
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 17:15:37 +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 3feacaeb-1566-11f0-9eab-5ba50f476ded;
 Wed, 09 Apr 2025 19:15:36 +0200 (CEST)
Received: from phl-compute-05.internal (phl-compute-05.phl.internal
 [10.202.2.45])
 by mailfhigh.stl.internal (Postfix) with ESMTP id BCF242540131;
 Wed,  9 Apr 2025 13:15:34 -0400 (EDT)
Received: from phl-mailfrontend-01 ([10.202.2.162])
 by phl-compute-05.internal (MEProxy); Wed, 09 Apr 2025 13:15:34 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed,
 9 Apr 2025 13:15:33 -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: 3feacaeb-1566-11f0-9eab-5ba50f476ded
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=fm2; t=1744218934;
	 x=1744305334; bh=wGpyKbs9ds7K32EI3dmNdbOyB/Z8Y6/261UT8PUMal4=; b=
	kkOXDwxC97etcru2z58hTJaVv39k5QYRlUBJFIAJ5BcoSjpRBJ1HkUsvMlH+spq+
	Ytopc42iCyft2sRiL/Iq+Yr7hyQeNSqJJdlE3d+cD+6NqxyvgbKcBdOB7I23N1aq
	Kv+MESgXo7SmyvzwmUmcssltXBDdncb3QTwXP+ZX2d6nzfisvXPF6eQ5aXOV07dW
	EZUvA9E/Qa8+Xz6KXkGJDSPyA7yo4EHw3yRxzwG1cKxKRj8m9G8y6o2c8sXhM3kO
	ppT9i4AKDDNFWFIGwuYfV8bcgla8WUuy+6JsHRsXtvLv0bpMawCtBxwquvz6Hw2K
	W9eDuFVlCDpxqg7YdFZj6A==
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=fm2; t=
	1744218934; x=1744305334; bh=wGpyKbs9ds7K32EI3dmNdbOyB/Z8Y6/261U
	T8PUMal4=; b=bDCJseBhZUo+kTpDxyo3dZ80AEksflQPM7w3mz+PXbVxhMibvhI
	aP1Uqt4x2Uj8lGbld0tEEKnnKKHr91IOoj1OizlwKQPqO09dG90RD8C1T5PQZlKU
	o9j/u2mINTNkO9tOU7UIevhJkwx0Uk6LuBp22akoIRKUybitxc1efu82TBZqFKh6
	YP+6bJ3iM7qTMCd4jnzZCtibFoG8Dm213LV+m52JZPLcIFF5G/0T7NT9zvg1GQ4O
	peAaJWmm48SU4Ro7Mo4cQ8qHA1Vax5sBeAYr8b1TiWHCxbkiJDbXlVie3iuP/bCA
	nTDJGpetK+WI3C4v5mOgu76UQFeHT+3i3Tg==
X-ME-Sender: <xms:Nqv2Z4qk2S6w-uoAiHnSkK9g7jEh5wsqE4eaF8TnytoEBPusnBEJxA>
    <xme:Nqv2Z-omrR_R9e-lmM4foT8YQqq2GJc0xfeD8IH2M15L576bhqs0MVArWRjeYKNXm
    LwYPA5KzTTBXA>
X-ME-Received: <xmr:Nqv2Z9MlyNC7utHRIB8YP0DsxyIedlWnOwbk4Velz8G8qtRBWU5CFEwdHicZMpq1pRIivJN4PNZRSKXwWxcOVuifPy7zr4uKCA>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvtdeiheekucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
    pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
    gvnhhtshculddquddttddmnecujfgurhepfffhvfevuffkfhggtggujgesghdtreertddt
    jeenucfhrhhomhepofgrrhgvkhcuofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuc
    eomhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecu
    ggftrfgrthhtvghrnhepveeujeetgeelleetudeuvefhtefgffejvedtvdfgieevheethe
    elgeeuledvjeevnecuffhomhgrihhnpehgihhtlhgrsgdrtghomhenucevlhhushhtvghr
    ufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhnvh
    hishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhnsggprhgtphhtthhopeeipdhmohgu
    vgepshhmthhpohhuthdprhgtphhtthhopegrnhgurhgvfidrtghoohhpvghrfeestghith
    hrihigrdgtohhmpdhrtghpthhtohepgigvnhdquggvvhgvlheslhhishhtshdrgigvnhhp
    rhhojhgvtghtrdhorhhgpdhrtghpthhtoheprhhoghgvrhdrphgruhestghithhrihigrd
    gtohhmpdhrtghpthhtohepshhsthgrsggvlhhlihhniheskhgvrhhnvghlrdhorhhgpdhr
    tghpthhtohepmhhitghhrghlrdhorhiivghlsegrmhgurdgtohhmpdhrtghpthhtoheprg
    hnthhhohhnhidrphgvrhgrrhgusehvrghtvghsrdhtvggthh
X-ME-Proxy: <xmx:Nqv2Z_4Ym9Rsek8EUZpJ1Ht4r6PzEzV8qs20i2xBqsygKeC5GQjUbA>
    <xmx:Nqv2Z36c6Wj5kyBpAodcLJtVUVsu1j9R-qV3TwnAtwnmvlmF0SCzKA>
    <xmx:Nqv2Z_hxH5eplmv29yMAX6vYvjCLmeIx-iunH7Vz2WpNKH1yBEgudg>
    <xmx:Nqv2Zx7oBSzu3r2JF_Q8yihftH5OEF9eFadwqogRYnOAqIApYWVEYA>
    <xmx:Nqv2Z25v5kOkeiZ7jCFNMHRiJ5p05hol6gdpX81Z_FyuWvg9ar3ZGss3>
Feedback-ID: i1568416f:Fastmail
Date: Wed, 9 Apr 2025 19:15:30 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: Re: [PATCH 4/8] Clean up Gitlab yaml
Message-ID: <Z_arM5JqPuyt7dFm@mail-itl>
References: <20250409163702.2037301-1-andrew.cooper3@citrix.com>
 <20250409163702.2037301-5-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="AE/uX+FxLgNYZRXe"
Content-Disposition: inline
In-Reply-To: <20250409163702.2037301-5-andrew.cooper3@citrix.com>


--AE/uX+FxLgNYZRXe
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Wed, 9 Apr 2025 19:15:30 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: Re: [PATCH 4/8] Clean up Gitlab yaml

On Wed, Apr 09, 2025 at 05:36:58PM +0100, Andrew Cooper wrote:
> Factor out the registry into a common location.  Fix the worflow name.  L=
ist
> all the stages.  Set a default expiry of 1 month.

This is okay, since last artifacts for a branch are preserved even if
expired.

> Note all the current jobs as legacy.  Their naming scheme needs changing,=
 and
> we'll use this opportunity to switch formats too.  However, the artefacts=
 need
> to stay using the old name until the final staging-* branch using them is
> phased out.

This could use a comment what should the new naming be.

> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> CC: Roger Pau Monn=C3=A9 <roger.pau@citrix.com>
> CC: Stefano Stabellini <sstabellini@kernel.org>
> CC: Michal Orzel <michal.orzel@amd.com>
> CC: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblethingslab.com>
> CC: Anthony PERARD <anthony.perard@vates.tech>
> ---
>  .gitlab-ci.yml | 14 ++++++++++++--
>  1 file changed, 12 insertions(+), 2 deletions(-)
>=20
> diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
> index 36ec6a7e1ee5..5a0a853e551d 100644
> --- a/.gitlab-ci.yml
> +++ b/.gitlab-ci.yml
> @@ -1,12 +1,19 @@
> +variables:
> +  REGISTRY: registry.gitlab.com/xen-project/hardware/test-artifacts
> +
>  workflow:
> -  name: "xen test artifacts"
> +  name: "Xen test artifacts"
> +
> +stages:
> +  - build
> =20
>  .artifacts:
>    stage: build
>    image:
> -    name: registry.gitlab.com/xen-project/hardware/test-artifacts/${CONT=
AINER}
> +    name: ${REGISTRY}/${CONTAINER}
>    artifacts:
>      name: "${CI_JOB_NAME_SLUG}"
> +    expire_in: 1 month
>      paths:
>        - binaries/
>      exclude:
> @@ -19,6 +26,9 @@ workflow:
>    variables:
>      CONTAINER: alpine:x86_64-build
> =20
> +#
> +# The jobs below here are legacy and being phased out.
> +#
>  x86_64-kernel-linux-6.6.56:
>    extends: .x86_64-artifacts
>    script:
> --=20
> 2.39.5
>=20

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

--AE/uX+FxLgNYZRXe
Content-Type: application/pgp-signature; name=signature.asc

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmf2qzMACgkQ24/THMrX
1yxkDAf+KjtqfLdfo01oocpP9QYd98e6n8VVuHOx5u0JdCcfmJpxkokLu7IoGPBL
7bFHIuJU+FaS3x6MfREOt2dKN5tZUxlocoOaZD5pKXQ1hkXx32bb2sNdwQYRPqbN
l0IQ5BQaDCo7OMWSl1zaleGfEmCJol7cW0KkThiEvnTK6WcYCAxLsfFNz9yqwBVn
smKSmeoUQVl3xeIwaVZK1fhzw9MMFsAxSJg3ZeE5Olytyn9c2r247FTDdMB6dmWx
yhjtBuh8sE9kFPl1OlHHWD81GvvOT9ZsWSPrENKPb8S5eYkQ0gfGPOyPcbSt3QYM
0X0rL8gzV1suMWpucuOd/wgPEBLPuQ==
=e7xZ
-----END PGP SIGNATURE-----

--AE/uX+FxLgNYZRXe--


From xen-devel-bounces@lists.xenproject.org Wed Apr 09 17:16:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 17:16:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.944522.1342964 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2Z1t-00076i-KE; Wed, 09 Apr 2025 17:16:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 944522.1342964; Wed, 09 Apr 2025 17:16: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 1u2Z1t-00076b-HL; Wed, 09 Apr 2025 17:16:01 +0000
Received: by outflank-mailman (input) for mailman id 944522;
 Wed, 09 Apr 2025 17:16: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=fbf/=W3=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u2Z1s-0006gc-0m
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 17:16:00 +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 4e4d5d82-1566-11f0-9eab-5ba50f476ded;
 Wed, 09 Apr 2025 19:15:59 +0200 (CEST)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-43d04dc73b7so74014085e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 09 Apr 2025 10:15:59 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39d893904d1sm2218519f8f.60.2025.04.09.10.15.58
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 09 Apr 2025 10:15:58 -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: 4e4d5d82-1566-11f0-9eab-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744218959; x=1744823759; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ssMBqOKQD3Rvz60WikKAkv4Rg4CtQJZpJW1d2+tdi4A=;
        b=lcVAsFt9dITzKYZ0Ph9Zk2meTrg68qGv5hL37qtM813LY0xek/m8dFi1c4w1aU4zH1
         n79oWETBl2r1UDZy4mopscW1Fl7tLrDys6ANG1TED9fDjA350WsDhPI3d5rfsUY9C1Pb
         CjvgZLyhU6OfvdRDNPvIeU3pnaff84lt88bCs=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744218959; x=1744823759;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ssMBqOKQD3Rvz60WikKAkv4Rg4CtQJZpJW1d2+tdi4A=;
        b=nD/f58OJII+wKJrel+CJqTToXG6z4pqq5v1FRB8YtYoejY3YKRL14uOOSsU+AMtIAo
         jdpFpAo1AIg4JjnY18i98Y3tzEKJKEXemtPXb+V9JYcoyr9+CIrGrMsPNvK7dI3nQkGx
         z1UtFcqSjF9zS2mQ0ZTuR+PVAEhRim4fWEZ81rEACM67qiN6FQ5O34X5LcmNbDCDd6cN
         6BOlBLAb8kunhrPiRNDaQTBEoUYGAQTD0L99Ax3FurRxuA2+aJB1MmBrkZtIcbMNgHlI
         10eKy/lbtWdBv+cmYG6chp7O9I3q8eO46RqBPe4I5eR2h8LvvJAgs5skiVE5LahuB9KB
         G9MQ==
X-Gm-Message-State: AOJu0YzGhTWf+1mjFulm3NfoxY2F2BsbxbgQNhFfzd1ShJL69T6fOKkr
	enUqljrNLVaYnwFYmzRM4OONSHFZc7rDRI2EsQstSdqH27nL40beRTlCjZoWOzM=
X-Gm-Gg: ASbGncu/pRGlHTruGGFebMfadj7DG/wr+fF/nl63DUIXg4O6tbXOtlLIzJJjR0htFXB
	GhvY9UoJAvkIDRBg8LOOoR92ZdOK4kPWChwf095f5Q33NsT0cgprA0MrkLXVSIq7EF6x+pyt9lI
	GDp9tOSo4mNL2AVUPPkJt9L5zEb4NYDP+NiCQCpHg0r3Dpi3+A93G8PNdqpmkKILCpYSZQeKuM2
	sR6WVWRI3IlGbTYiMCN8/YAbpU8bcc5dFKMAv3PRlB4VLRTYnLH15ov3cJdw619GJ9dKE36yuBV
	ENg3N6z5+45D01A5e6rGOqT9cUr9+UhKdFo11d8z+vGi9CyOH+CrI2oYB3NZYS0lEPhl2oNZmYy
	sqQYsGw==
X-Google-Smtp-Source: AGHT+IEIIDRjeipzvi556nrQQ7IPqkw34Ka8DV18+V5HKED5LI6pIuvwWJmysHBqIHpQHs4+J+ZDbw==
X-Received: by 2002:a05:600c:3b0d:b0:43d:878c:7c40 with SMTP id 5b1f17b1804b1-43f1ecad85bmr47858665e9.10.1744218958784;
        Wed, 09 Apr 2025 10:15:58 -0700 (PDT)
Message-ID: <21a35c38-ce2e-48c4-9586-9c232f77affa@citrix.com>
Date: Wed, 9 Apr 2025 18:15:57 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 7/8] Infrastructure for arm64 linux builds
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Michal Orzel <michal.orzel@amd.com>,
 Anthony PERARD <anthony.perard@vates.tech>
References: <20250409163702.2037301-1-andrew.cooper3@citrix.com>
 <20250409163702.2037301-8-andrew.cooper3@citrix.com>
 <Z_aqUikDqi1UEOHb@mail-itl>
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: <Z_aqUikDqi1UEOHb@mail-itl>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 09/04/2025 6:11 pm, Marek Marczykowski-Górecki wrote:
> On Wed, Apr 09, 2025 at 05:37:01PM +0100, Andrew Cooper wrote:
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>> ---
>> CC: Roger Pau Monné <roger.pau@citrix.com>
>> CC: Stefano Stabellini <sstabellini@kernel.org>
>> CC: Michal Orzel <michal.orzel@amd.com>
>> CC: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
>> CC: Anthony PERARD <anthony.perard@vates.tech>
>> ---
>>  .gitlab-ci.yml                            |  7 ++++++
>>  containerize                              |  1 +
>>  images/alpine/3.18-arm64-build.dockerfile | 27 +++++++++++++++++++++++
>>  scripts/build-linux.sh                    | 10 +++++++++
>>  4 files changed, 45 insertions(+)
>>  create mode 100644 images/alpine/3.18-arm64-build.dockerfile
>>
>> diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
>> index ff8dce7be05d..6e38c2f2a108 100644
>> --- a/.gitlab-ci.yml
>> +++ b/.gitlab-ci.yml
>> @@ -19,6 +19,13 @@ stages:
>>      exclude:
>>        - binaries/.gitignore
>>  
>> +.arm64-artifacts:
>> +  extends: .artifacts
>> +  tags:
>> +    - arm64
>> +  variables:
>> +    CONTAINER: alpine:3.18-arm64-build
> Arm64 kernel used to be built in a Bookworm container.

So did x86 before they were moved across.

>  The build in alpine
> has "find: unrecognized: -printf" in the middle of the build. It doesn't
> fail outright, but something might be broken. I guess it's related to
> initramfs - maybe some option can be disabled, to avoid this message?

Nothing seems to break...

There's also a bad awk regex.  Alpine seem to fix this by using mawk,
except they then have to patch the Linux build system to take the
override properly.

I can't see anything obvious they do to fix this -printf warning.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Apr 09 17:18:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 17:18:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.944538.1342973 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2Z4E-0007n9-W8; Wed, 09 Apr 2025 17:18:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 944538.1342973; Wed, 09 Apr 2025 17:18: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 1u2Z4E-0007n2-TK; Wed, 09 Apr 2025 17:18:26 +0000
Received: by outflank-mailman (input) for mailman id 944538;
 Wed, 09 Apr 2025 17:18: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=fbf/=W3=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u2Z4D-0007mg-1K
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 17:18:25 +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 a472566b-1566-11f0-9eab-5ba50f476ded;
 Wed, 09 Apr 2025 19:18:24 +0200 (CEST)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-43edecbfb94so50374415e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 09 Apr 2025 10:18:24 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43f206264a1sm26607505e9.9.2025.04.09.10.18.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 09 Apr 2025 10:18: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: a472566b-1566-11f0-9eab-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744219103; x=1744823903; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=LqXW+EhIjzZ9DBBxM/0Fkm2/XTe1O3oFuaez7I6vNxY=;
        b=WvADR0e4l/X0Xbo4PGrRhYsJBfXb2ieZ9bGbt1p+nQvIvSg5Vd3PHBmX3QJzcCczM4
         oidoVHiyZrctfMYDcgNM9vNS97kvJ/Ffx5yMc+2qPsiLmWXnxW0E1h0+F2flBbp0xpTe
         KtLe38v0PLRaosiYDM2r3G2EQahTjI8yB1DQE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744219103; x=1744823903;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=LqXW+EhIjzZ9DBBxM/0Fkm2/XTe1O3oFuaez7I6vNxY=;
        b=uv7nxsdobITyIXqsTNxADzZunMBoZnVSN6Uy6YGRYOg/a0J4fdF/1N1gVUD3IW1Mcd
         HDpA7qZ38fE/AVYSfKRkMX3KZtnPzT6v6sXZQ09SGkvU83CvutC4J9nwL4IVB0WYdfcq
         HyXLcPOCG62bWtkJCi/hRuK1AFhRzHNeP1hILZkN27/ZZcXa8E7MaSGt/n4+IlFxV3/c
         F4zKVczOvXV3Z4ajF7qEGPBEsuIgMp9VD7C05h9GlacNPNFN1pFvBi7toFtQ8VLse98Z
         wO2WI/hae0rNg9alWeuQ5eG/MnMt65QdUB6hxqn0mfnIEotERJCe43fBuLp8WG5c47K3
         NZ6g==
X-Gm-Message-State: AOJu0YxSSESkwdp/xxL3JtGzlXSlxJldoLgYihUFEsDKkm9iLjfWItDW
	bvHwnVZ9VKvJbSRjJBQkABaJlFbBbA6B/z855uFMlIxfQJBFZvXX6O0Cbd4/iwA=
X-Gm-Gg: ASbGncsOrOTDkb/vJvTCaauRsrdTI/Inkgh462QTgsnCEIi1ETPfi+8/njt5om3iicC
	AGWqoBaUGGuXDl9EKM8uFtmqhtSkVhCF5KtwnIUr1d3OisuGTaBnOALuQQJh5GXaqZQv5JpqRwV
	KOP1BivSUp2ran3/2thjJxHOn/EGMCtIT8Nd8wxgYEuRqXaKdp5g+bu1RbFqsIfLsGAvZ7FPBgL
	rTHnn5qHooc8ITOrc0DGs9eLKrkw48Sl01q6pczjrGusG3rs7sAJAV4K63lD8zTGFUDM2HXcAw/
	3XfALZsfJcieMq2ThcLWnjFjW7IcWjG47WVZUThsvVzcDR58BIlrEJTaCG/oGzic2WTnWgtqSG0
	RwtcbJn37P7iy7yvS
X-Google-Smtp-Source: AGHT+IG44bQUdXmwD6R8KSBqmw0ncOhbdNKyfWrLfLf9y0vpEmOzR0qxPFebuum4MuWUTHn/AMTaQw==
X-Received: by 2002:a05:600c:3542:b0:43d:ac5:11e8 with SMTP id 5b1f17b1804b1-43f1ed67314mr29325195e9.21.1744219103387;
        Wed, 09 Apr 2025 10:18:23 -0700 (PDT)
Message-ID: <16f4bf31-9469-4a3c-b145-6c75785befb9@citrix.com>
Date: Wed, 9 Apr 2025 18:18:22 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 5/8] Adjust Linux build script to work with other major
 versions
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Michal Orzel <michal.orzel@amd.com>,
 Anthony PERARD <anthony.perard@vates.tech>
References: <20250409163702.2037301-1-andrew.cooper3@citrix.com>
 <20250409163702.2037301-6-andrew.cooper3@citrix.com>
 <Z_anEWAVTD5tjbg5@mail-itl>
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: <Z_anEWAVTD5tjbg5@mail-itl>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 09/04/2025 5:57 pm, Marek Marczykowski-Górecki wrote:
> On Wed, Apr 09, 2025 at 05:36:59PM +0100, Andrew Cooper wrote:
>> Also use 'tar o' to decompress based on file name.
> Do you mean 'tar a'? -o is --no-same-owner. Anyway, just 'tar xf'
> works too, even in alpine.

Hmm...  Muscle memory from long enough ago that I don't recall why.

Lets go with just xf then.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Apr 09 18:54:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 18:54:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.944567.1342984 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2aYo-0000YY-M5; Wed, 09 Apr 2025 18:54:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 944567.1342984; Wed, 09 Apr 2025 18: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 1u2aYo-0000YR-JI; Wed, 09 Apr 2025 18:54:06 +0000
Received: by outflank-mailman (input) for mailman id 944567;
 Wed, 09 Apr 2025 18:54: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=Ywx6=W3=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u2aYm-0000YJ-Nc
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 18:54:05 +0000
Received: from mail-10630.protonmail.ch (mail-10630.protonmail.ch
 [79.135.106.30]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 000aba72-1574-11f0-9eab-5ba50f476ded;
 Wed, 09 Apr 2025 20:54:01 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 000aba72-1574-11f0-9eab-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1744224838; x=1744484038;
	bh=FDls02VgMpWoqgWr9HzHcZaFpa4GILRpy8zPLpQzUXI=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=ng3ZKYfbF21wqn9L+CQ7wzdcoskCPLA9kI6cB2DusvgkaZoj5vFA2HQmWQkAfuB1X
	 jzCiZOOHJ82fEqvqRBPCEAtw4oeTwktZ+OZSfaUpi/xxSb3wCU2oNVoimODer/BjcX
	 EPtV+Es5qaMAlZuz7tR6/K3k2oMbuX+PSO/UIqTObi/RG9UARbs4WCr1eJEp+3/c9N
	 1dc8vaFklhZXWFAlHijt6kt3KdgXK76sAEtZHC4rRPgjowuQeJHTzqilafpMU3lu8A
	 G2Ed5LADeq6196qei6VwFZmkk8Ff///o4pxUchAzBazllkQW6kXZC3GitLG7wxhtyr
	 LzLsy0sNlvVSg==
Date: Wed, 09 Apr 2025 18:53:55 +0000
To: Alejandro Vallejo <agarciav@amd.com>
From: Denis Mukhin <dmkhn@proton.me>
Cc: xen-devel@lists.xenproject.org, "Daniel P. Smith" <dpsmith@apertussolutions.com>, Jason Andryuk <jason.andryuk@amd.com>, Xenia Ragiadakou <xenia.ragiadakou@amd.com>, Stefano Stabellini <sstabellini@kernel.org>, Michal Orzel <michal.orzel@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>, Denis Mukhin <dmkhn@proton.me>
Subject: Re: [PATCH v3 06/16] x86/hyperlaunch: introduce the domain builder
Message-ID: <FxuO_b3q9bY4mPUG3KmuO_YTqqsPhI1sMXykQ5UkxaLzhMlAoAZtQKzl9puHPW29hxCx_Fm1y_YfmBquI1Cm0QA0Y3TKYTy4waHKKaODj9c=@proton.me>
In-Reply-To: <20250408160802.49870-7-agarciav@amd.com>
References: <20250408160802.49870-1-agarciav@amd.com> <20250408160802.49870-7-agarciav@amd.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 169f3cbaafa468075511cacba74c7c3ecf1bf2f5
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Tuesday, April 8th, 2025 at 9:07 AM, Alejandro Vallejo <agarciav@amd.com=
> wrote:

>=20
>=20
> From: "Daniel P. Smith" dpsmith@apertussolutions.com
>=20
>=20
> 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.
>=20
> No functional change intended.
>=20
> Signed-off-by: Daniel P. Smith dpsmith@apertussolutions.com
>=20
> Signed-off-by: Jason Andryuk jason.andryuk@amd.com
>=20
> ---
> v3:
> * Move obj-y +=3D domain-builder/
> * Remove blank line in Makefile
> * const in has_hyperlaunch_fdt()
> * CONFIG_LIBFDT rename
> * Use boot_info forward declaration
> * Rename domainbuilder.h to domain-builder.h
> * Add fdt NULL check
> ---
> xen/arch/x86/Makefile | 1 +
> xen/arch/x86/domain-builder/Kconfig | 2 +-
> xen/arch/x86/domain-builder/Makefile | 2 +
> xen/arch/x86/domain-builder/core.c | 57 +++++++++++++++++++++++
> xen/arch/x86/domain-builder/fdt.c | 37 +++++++++++++++
> xen/arch/x86/domain-builder/fdt.h | 21 +++++++++

I have a general question.

Wouldn't that make sense to use arch-independent placeholder for domain bui=
lder
code right from the starting point?

For example something like xen/common/domain-builder ?

My understanding is that there's a lot of code in the domain builder which
can be potentially shared/re-used with non-x86 architectures.

Also, that seems to align with the intention to have common arch-independen=
t
subsystems in the code base:

   https://docs.google.com/presentation/d/1q9cjJZLUxUo1YzMpCxVHuL-ZOGoFaO9h=
aHfRBK4i4Uc/edit?slide=3Did.g32afc87aef4_0_18#slide=3Did.g32afc87aef4_0_18

> xen/arch/x86/include/asm/bootinfo.h | 3 ++
> xen/arch/x86/include/asm/domain-builder.h | 8 ++++
> xen/arch/x86/setup.c | 17 ++++---
> 9 files changed, 141 insertions(+), 7 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/domain-builder.h
>=20
> diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
> index f59c9665fd..deae31d627 100644
> --- a/xen/arch/x86/Makefile
> +++ b/xen/arch/x86/Makefile
> @@ -1,6 +1,7 @@
> obj-y +=3D acpi/
> obj-y +=3D boot/
> obj-y +=3D cpu/
> +obj-y +=3D domain-builder/
> obj-y +=3D efi/
> obj-y +=3D genapic/
> obj-$(CONFIG_GUEST) +=3D guest/
> diff --git a/xen/arch/x86/domain-builder/Kconfig b/xen/arch/x86/domain-bu=
ilder/Kconfig
> index 8ed493c3b5..51d549c20d 100644
> --- a/xen/arch/x86/domain-builder/Kconfig
> +++ b/xen/arch/x86/domain-builder/Kconfig
> @@ -3,7 +3,7 @@ menu "Domain Builder Features"
>=20
> config DOMAIN_BUILDER
> bool "Domain builder (UNSUPPORTED)" if UNSUPPORTED
> - select LIB_DEVICE_TREE
> + select LIBFDT
> help
> Enables the domain builder capability to configure boot domain
> construction using a flattened device tree.
> diff --git a/xen/arch/x86/domain-builder/Makefile b/xen/arch/x86/domain-b=
uilder/Makefile
> new file mode 100644
> index 0000000000..b10cd56b28
> --- /dev/null
> +++ b/xen/arch/x86/domain-builder/Makefile
> @@ -0,0 +1,2 @@
> +obj-$(CONFIG_DOMAIN_BUILDER) +=3D fdt.init.o
> +obj-y +=3D core.init.o
> diff --git a/xen/arch/x86/domain-builder/core.c b/xen/arch/x86/domain-bui=
lder/core.c
> new file mode 100644
> index 0000000000..d6ae94f45c
> --- /dev/null
> +++ b/xen/arch/x86/domain-builder/core.c
> @@ -0,0 +1,57 @@
> +/* SPDX-License-Identifier: GPL-2.0-only /
> +/
> + * Copyright (C) 2024, Apertus Solutions, LLC
> + */
> +#include <xen/err.h>
>=20
> +#include <xen/init.h>
>=20
> +#include <xen/kconfig.h>
>=20
> +#include <xen/lib.h>
>=20
> +
> +#include <asm/bootinfo.h>
>=20
> +
> +#include "fdt.h"
> +
> +void __init builder_init(struct boot_info *bi)
> +{
> + if ( IS_ENABLED(CONFIG_DOMAIN_BUILDER) )
> + {
> + int ret;
> +
> + switch ( ret =3D has_hyperlaunch_fdt(bi) )
> + {
> + case 0:
> + printk("Hyperlaunch device tree detected\n");
> + bi->hyperlaunch_enabled =3D true;
>=20
> + bi->mods[0].type =3D BOOTMOD_FDT;
>=20
> + break;
> +
> + case -EINVAL:
> + printk("Hyperlaunch device tree was not detected\n");
> + bi->hyperlaunch_enabled =3D false;
>=20
> + break;
> +
> + case -ENOENT:
> + case -ENODATA:
> + printk("Device tree found, but not hyperlaunch (%d)\n", ret);
> + bi->hyperlaunch_enabled =3D false;
>=20
> + bi->mods[0].type =3D BOOTMOD_FDT;
>=20
> + break;
> +
> + default:
> + printk("Unknown error (%d) occured checking for hyperlaunch device tree=
\n",
> + ret);
> + bi->hyperlaunch_enabled =3D false;
>=20
> + break;
> + }
> + }
> +}
> +
> +/*
> + * 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-buil=
der/fdt.c
> new file mode 100644
> index 0000000000..aaf8c1cc16
> --- /dev/null
> +++ b/xen/arch/x86/domain-builder/fdt.c
> @@ -0,0 +1,37 @@
> +/ SPDX-License-Identifier: GPL-2.0-only /
> +/
> + * Copyright (C) 2024, Apertus Solutions, LLC
> + */
> +#include <xen/err.h>
>=20
> +#include <xen/init.h>
>=20
> +#include <xen/lib.h>
>=20
> +#include <xen/libfdt/libfdt.h>
>=20
> +
> +#include <asm/bootinfo.h>
>=20
> +#include <asm/page.h>
>=20
> +#include <asm/setup.h>
>=20
> +
> +#include "fdt.h"
> +
> +int __init has_hyperlaunch_fdt(const struct boot_info *bi)
> +{
> + int ret =3D 0;
> + const void *fdt =3D bootstrap_map_bm(&bi->mods[HYPERLAUNCH_MODULE_IDX])=
;
>=20
> +
> + if ( !fdt || fdt_check_header(fdt) < 0 )
> + ret =3D -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-buil=
der/fdt.h
> new file mode 100644
> index 0000000000..8e62cd843e
> --- /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>
>=20
> +
> +struct boot_info;
> +
> +/* hyperlaunch fdt is required to be module 0 */
> +#define HYPERLAUNCH_MODULE_IDX 0
> +
> +#ifdef CONFIG_DOMAIN_BUILDER
> +int has_hyperlaunch_fdt(const struct boot_info *bi);
> +#else
> +static inline int __init has_hyperlaunch_fdt(const 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/a=
sm/bootinfo.h
> index 3afc214c17..82c2650fcf 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,
> };
>=20
> struct boot_module {
> @@ -80,6 +81,8 @@ struct boot_info {
> paddr_t memmap_addr;
> size_t memmap_length;
>=20
> + 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/domain-builder.h b/xen/arch/x86/inc=
lude/asm/domain-builder.h
> new file mode 100644
> index 0000000000..b6d9ba94de
> --- /dev/null
> +++ b/xen/arch/x86/include/asm/domain-builder.h
> @@ -0,0 +1,8 @@
> +#ifndef XEN_X86_DOMBUILDER_H
> +#define XEN_X86_DOMBUILDER_H
> +
> +struct boot_info;
> +
> +void builder_init(struct boot_info *bi);
> +
> +#endif
> diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
> index 83cb66e309..e5d78bcb48 100644
> --- a/xen/arch/x86/setup.c
> +++ b/xen/arch/x86/setup.c
> @@ -36,6 +36,7 @@
> #include <asm/bzimage.h>
>=20
> #include <asm/cpu-policy.h>
>=20
> #include <asm/desc.h>
>=20
> +#include <asm/domain-builder.h>
>=20
> #include <asm/e820.h>
>=20
> #include <asm/edd.h>
>=20
> #include <asm/genapic.h>
>=20
> @@ -1281,9 +1282,12 @@ void asmlinkage __init noreturn __start_xen(void)
> bi->nr_modules);
>=20
> }
>=20
> - /* Dom0 kernel is always first */
> - bi->mods[0].type =3D BOOTMOD_KERNEL;
>=20
> - bi->domains[0].kernel =3D &bi->mods[0];
>=20
> + builder_init(bi);
> +
> + /* Find first unknown boot module to use as Dom0 kernel */
> + i =3D first_boot_module_index(bi, BOOTMOD_UNKNOWN);
> + bi->mods[i].type =3D BOOTMOD_KERNEL;
>=20
> + bi->domains[0].kernel =3D &bi->mods[i];
>=20
>=20
> if ( pvh_boot )
> {
> @@ -1466,8 +1470,9 @@ void asmlinkage __init noreturn __start_xen(void)
> xen->size =3D __2M_rwdata_end - _stext;
>=20
> }
>=20
> - bi->mods[0].headroom =3D
>=20
> - bzimage_headroom(bootstrap_map_bm(&bi->mods[0]), bi->mods[0].size);
>=20
> + bi->domains[0].kernel->headroom =3D
>=20
> + bzimage_headroom(bootstrap_map_bm(bi->domains[0].kernel),
>=20
> + bi->domains[0].kernel->size);
>=20
> bootstrap_unmap();
>=20
> #ifndef highmem_start
> @@ -1591,7 +1596,7 @@ void asmlinkage __init noreturn __start_xen(void)
> #endif
> }
>=20
> - if ( bi->mods[0].headroom && !bi->mods[0].relocated )
>=20
> + if ( bi->domains[0].kernel->headroom && !bi->domains[0].kernel->relocat=
ed )
>=20
> panic("Not enough memory to relocate the dom0 kernel image\n");
> for ( i =3D 0; i < bi->nr_modules; ++i )
>=20
> {
> --
> 2.43.0


From xen-devel-bounces@lists.xenproject.org Wed Apr 09 18:58:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 18:58:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.944580.1342993 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2acb-000168-4J; Wed, 09 Apr 2025 18:58:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 944580.1342993; Wed, 09 Apr 2025 18:58:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2acb-000161-1h; Wed, 09 Apr 2025 18:58:01 +0000
Received: by outflank-mailman (input) for mailman id 944580;
 Wed, 09 Apr 2025 18:58:00 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Ywx6=W3=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u2aca-00015q-85
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 18:58:00 +0000
Received: from mail-10630.protonmail.ch (mail-10630.protonmail.ch
 [79.135.106.30]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8d1a83f1-1574-11f0-9ffb-bf95429c2676;
 Wed, 09 Apr 2025 20:57:58 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8d1a83f1-1574-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1744225076; x=1744484276;
	bh=XQ4zdj9NAzFnFmzpReIZWygHFh1zLeEALYF2jxNdsGk=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=au4STLl9HiAZ3Vl/MuQW4BibIn7OGkDY5rdj6gGX3W4PZNWACCUzQbwkExAgC2V5r
	 wMJso+J8PJIvjsWgJjXHx+Mz095hvftbKt4Z33D8b6SPFkUCy6j4Zis0QQD7QrLIOK
	 yxzRyaGa+JXYLuy/XQ8GlQqdN2sBPR6/se67Hep9d4rTfwSuvvhQKhlqqhculZ6pMF
	 buQjbolPRV6mQ4C0Nav44548bvkr/4//h5ecWxXgDyAJfN+n1z9qUWY1z7jHfzRnQM
	 2CNXnJVlZiYP3cUuqe/Rt+FdaCFtI4FBq3f3YYNbOkNH6hftoRE7ResT+Rt/KKCh3K
	 XTOefPHTxPCUg==
Date: Wed, 09 Apr 2025 18:57:53 +0000
To: Alejandro Vallejo <agarciav@amd.com>
From: Denis Mukhin <dmkhn@proton.me>
Cc: xen-devel@lists.xenproject.org, "Daniel P. Smith" <dpsmith@apertussolutions.com>, Jason Andryuk <jason.andryuk@amd.com>, Xenia Ragiadakou <xenia.ragiadakou@amd.com>, Stefano Stabellini <sstabellini@kernel.org>, Michal Orzel <michal.orzel@amd.com>, Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>, =?utf-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Denis Mukhin <dmkhn@proton.me>
Subject: Re: [PATCH v3 04/16] kconfig: introduce option to independently enable libfdt
Message-ID: <7UJZ7DNBvYS92pCcplKug_7DNUY5QJtWUdcN_CWIUsdcumUN4dOXsQka1nGQ5dQwgSSmHBJXJGJo9EGByjmq-eeNR0VyNftIPnKZHcWUrZw=@proton.me>
In-Reply-To: <20250408160802.49870-5-agarciav@amd.com>
References: <20250408160802.49870-1-agarciav@amd.com> <20250408160802.49870-5-agarciav@amd.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 2dd734a7a003bbf90e4dafc8bfa025e4566966e1
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Tuesday, April 8th, 2025 at 9:07 AM, Alejandro Vallejo <agarciav@amd.com=
> wrote:

>=20
>=20
> From: "Daniel P. Smith" dpsmith@apertussolutions.com
>=20
>=20
> Currently, the inclusion of libfdt is controlled by the CONFIG_HAS_DEVICE=
_TREE
> kconfig flag. This flag also changes behavior in a few places, such as bo=
ot
> module processing for XSM. To support the ability to include libfdt witho=
ut
> changing these behaviors, introduce CONFIG_LIBFDT. The inclusion of
> libfdt is then moved under CONFIG_LIBFDT.
>=20
> Signed-off-by: Daniel P. Smith dpsmith@apertussolutions.com
>=20
> Signed-off-by: Jason Andryuk jason.andryuk@amd.com

Reviewed-by: Denis Mukhin <dmukhin@ford.com>

>=20
> ---
> v3:
> * Use CONFIG_LIBFDT instead of CONFIG_HAS_DEVICET_TREE
> ---
> xen/common/Kconfig | 4 ++++
> xen/common/Makefile | 2 +-
> 2 files changed, 5 insertions(+), 1 deletion(-)
>=20
> diff --git a/xen/common/Kconfig b/xen/common/Kconfig
> index 06ae9751aa..00f74b1e32 100644
> --- a/xen/common/Kconfig
> +++ b/xen/common/Kconfig
> @@ -72,6 +72,7 @@ config HAS_COMPAT
>=20
> config HAS_DEVICE_TREE
> bool
> + select LIBFDT
>=20
> config HAS_DIT # Data Independent Timing
> bool
> @@ -106,6 +107,9 @@ config HAS_UBSAN
> config HAS_VMAP
> bool
>=20
> +config LIBFDT
> + bool
> +
> config MEM_ACCESS_ALWAYS_ON
> bool
>=20
> diff --git a/xen/common/Makefile b/xen/common/Makefile
> index 9da8a7244d..5a9041b0ee 100644
> --- a/xen/common/Makefile
> +++ b/xen/common/Makefile
> @@ -79,7 +79,7 @@ obj-y +=3D sched/
> obj-$(CONFIG_UBSAN) +=3D ubsan/
>=20
> obj-$(CONFIG_NEEDS_LIBELF) +=3D libelf/
> -obj-$(CONFIG_HAS_DEVICE_TREE) +=3D libfdt/
> +obj-$(CONFIG_LIBFDT) +=3D libfdt/
>=20
> CONF_FILE :=3D $(if $(patsubst /%,,$(KCONFIG_CONFIG)),$(objtree)/)$(KCONF=
IG_CONFIG)
> $(obj)/config.gz: $(CONF_FILE)
> --
> 2.43.0


From xen-devel-bounces@lists.xenproject.org Wed Apr 09 19:02:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 19:02:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.944594.1343003 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2agQ-0003tJ-J8; Wed, 09 Apr 2025 19:01:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 944594.1343003; Wed, 09 Apr 2025 19: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 1u2agQ-0003tC-GM; Wed, 09 Apr 2025 19:01:58 +0000
Received: by outflank-mailman (input) for mailman id 944594;
 Wed, 09 Apr 2025 19:01: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=pLOg=W3=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1u2agP-0003t6-0s
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 19:01:57 +0000
Received: from mail-ed1-x52b.google.com (mail-ed1-x52b.google.com
 [2a00:1450:4864:20::52b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1a749ef2-1575-11f0-9ffb-bf95429c2676;
 Wed, 09 Apr 2025 21:01:54 +0200 (CEST)
Received: by mail-ed1-x52b.google.com with SMTP id
 4fb4d7f45d1cf-5eb92df4fcbso105399a12.0
 for <xen-devel@lists.xenproject.org>; Wed, 09 Apr 2025 12:01:54 -0700 (PDT)
Received: from fedora.. (user-109-243-64-225.play-internet.pl.
 [109.243.64.225]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-acaa1ccd255sm134756466b.156.2025.04.09.12.01.52
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 09 Apr 2025 12:01:52 -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: 1a749ef2-1575-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1744225314; x=1744830114; 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=FIlT454pWFCXqqFx4gqqRYOkIzp5sdnWMGLVAXJgO9U=;
        b=TR9oG4AmUJSzdAntFtRh2VHMNSryrCW0I17aOwNkUpFSJ0pOP90Zq6NySVPOD9iP5y
         6Iqc912yRMct+pM7o7R/5VOd7dTKzqMOSZ+XNipd/b88O90NQpjP3cpGj8rxgzWKYMpC
         KFliHHA1ClYmsAgDR4HlHN4L8svDDGGOxZR8YbcnfRqAyNH7P0Ox+v/ZJvVjw045cwaO
         afS5rlRSU+1czKWtTXPiVJVAYVSLW/hfzsVNyx2y3bxSLBAGKGK2jSd8AYwE+1AoIF9g
         v/UyS9dfaVVmRPOZnXNujI287O17uLdIxmJzcT7hSbeee8aMZ9fhWYE+iCK71Dxhymj/
         imaA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744225314; x=1744830114;
        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=FIlT454pWFCXqqFx4gqqRYOkIzp5sdnWMGLVAXJgO9U=;
        b=H2nUDe7Qvxr0FnYc9Ri5f5wYLikkl7cq0vEBf9NcesNX5BYsPyFjZaIIztd7LS1yL0
         0lpcX5RE9cyQiXGuaAYtjKFRNw/HrcdWnzO2uWah1lkNGKoOaacHIHV55NRa7YiNxVDp
         Fc8+6P9C9ZAouz4ar72dzS677dnCmA7fvDy2MmU7RbdlGYYqMlu0eoMMnX9K9TzeyL4/
         eW/CdAHuNiHq8ZTpagLZBc2WNjV5M2Fmqw+6ypNHcKEjO4uD48GvHzCXPicbzZdcytQx
         UFLGYuJtTNS3T4k0dazpsJg7FiG68HtRrJyAqSbjXHntz3i7d1/XeTUpuWgLZWP6OYiO
         OPWQ==
X-Gm-Message-State: AOJu0YwNFGiu/fBPj0UynBlQ4hkgHyqEjv81mO5u4L3bnauXGbLUyWmP
	VsqT7dJeUBna2WQy5n2iJD87wV+9wM4rRqr0plGQOqNsB5idot8sULlGCA==
X-Gm-Gg: ASbGncuKlqUjbGT5MOJN4uY66DpUREBuI5qdKkVpKm5d68SFv3Wm3RhgFfYp0WIL4GV
	xINDtEaqQ8Ht4jKpqyog28EosYwcD2qNC3D3fFrVuG9uOeC7UmLd0pfl3VKKY49XNvi4a6d1qoh
	3mJ0mKnYnuYmpP5D9ApEpfxqSbpE5jA0eHwSMsnl+BnZUKffmY8Y+lU7GG29kXXolmu6wB69MhF
	xhu1Q2caVlBiTiMj5+ljkrCWh3ttFKCZFVmQ9eRuYQwVtzj4bHjGVD2oaLrTZspZplqcPYAr50m
	aHauKFWKEe8YVVJ3hmckA3BoYi/b/F46nhv1XkgOg8Fwd5ML3cg6HCpiLCFYtpF11YMU/sm76mP
	GiOKXHSrsMg==
X-Google-Smtp-Source: AGHT+IHoNFW/8trAhc0Jipt6fSIUcAkVaMw8UFuQWDHIxEGH8CvefOv1rCBF7+X6u8se2rvkJz1Pxw==
X-Received: by 2002:a17:907:60d1:b0:abf:641a:5727 with SMTP id a640c23a62f3a-aca9d5cee01mr402411566b.7.1744225313660;
        Wed, 09 Apr 2025 12:01:53 -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>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v3] xen/riscv: Increase XEN_VIRT_SIZE
Date: Wed,  9 Apr 2025 21:01:50 +0200
Message-ID: <eb20a5730b55c1731324cc3970c3a3c9ea666a85.1744214442.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.49.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

A randconfig job failed with the following issue:
  riscv64-linux-gnu-ld: Xen too large for early-boot assumptions

The reason is that enabling the UBSAN config increased the size of
the Xen binary.

Increase XEN_VIRT_SIZE to reserve enough space, allowing both UBSAN
and GCOV to be enabled together, with some slack for future growth.

Additionally, add ASSERTs to verify that XEN_VIRT_START is 1GB-aligned
and XEN_VIRT_SIZE is 2MB-aligned to reduce the number of page tables
needed for the initial mapping. In the future, when 2MB mappings are
used for .text (rx), .rodata (r), and .data (rw), this will also help
reduce TLB pressure.

Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in v3:
 - Add ASSERT which checks .init* sections range. When Xen ends boot
   init* sections are going to be released.
 - Introduce is_init_section() macros.
 - Correct fixmap end address in RISCV-64 layour table.
 - Update ASSERT() which checks that `va` is in Xen virtual address
   range and drop BUILD_BUG_ON() as it isn't necessary anymore with
   the way how the ASSERT() looks now.
 - Add ASSERT() which checks that XEN_VIRT_START is 1gb aligned and
   add ASSERT() which checks that XEN_VIRT_SIZE is 2mb aligned.
   It helps us to reduce an amount of PGTBL_INITIAL_COUNT.
 - Update PGTBL_INITIAL_COUNT and the comment above.
 - Update the commit message.
---
Changes in v2:
 - Incerease XEN_VIRT_SIZE to 16 Mb to cover also the case if 2M mappings will
   be used for .text (rx), .rodata(r), and .data (rw).
 - Update layout table in config.h.
 - s/xen_virt_starn_vpn/xen_virt_start_vpn
 - Update BUILD_BUG_ON(... != MB(8)) check to "... > GB(1)".
 - Update definition of PGTBL_INITIAL_COUNT and the comment above.
---

 xen/arch/riscv/include/asm/config.h |  8 ++++----
 xen/arch/riscv/include/asm/mm.h     | 20 +++++++++++++++++---
 xen/arch/riscv/mm.c                 | 22 +++++++++++++---------
 xen/arch/riscv/xen.lds.S            |  4 ++++
 4 files changed, 38 insertions(+), 16 deletions(-)

diff --git a/xen/arch/riscv/include/asm/config.h b/xen/arch/riscv/include/asm/config.h
index 7141bd9e46..5eba626f27 100644
--- a/xen/arch/riscv/include/asm/config.h
+++ b/xen/arch/riscv/include/asm/config.h
@@ -41,11 +41,11 @@
  * Start addr          | End addr         | Slot       | area description
  * ============================================================================
  *                   .....                 L2 511          Unused
- *  0xffffffffc0a00000  0xffffffffc0bfffff L2 511          Fixmap
+ *  0xffffffffc1800000  0xffffffffc19fffff L2 511          Fixmap
  *                   ..... ( 2 MB gap )
- *  0xffffffffc0400000  0xffffffffc07fffff L2 511          FDT
+ *  0xffffffffc1200000  0xffffffffc15fffff L2 511          FDT
  *                   ..... ( 2 MB gap )
- *  0xffffffffc0000000  0xffffffffc01fffff L2 511          Xen
+ *  0xffffffffc0000000  0xffffffffc0ffffff L2 511          Xen
  *                   .....                 L2 510          Unused
  *  0x3200000000        0x7f7fffffff       L2 200-509      Direct map
  *                   .....                 L2 199          Unused
@@ -78,7 +78,7 @@
 
 #define GAP_SIZE                MB(2)
 
-#define XEN_VIRT_SIZE           MB(2)
+#define XEN_VIRT_SIZE           MB(16)
 
 #define BOOT_FDT_VIRT_START     (XEN_VIRT_START + XEN_VIRT_SIZE + GAP_SIZE)
 #define BOOT_FDT_VIRT_SIZE      MB(4)
diff --git a/xen/arch/riscv/include/asm/mm.h b/xen/arch/riscv/include/asm/mm.h
index 4035cd400a..1b0c4299c6 100644
--- a/xen/arch/riscv/include/asm/mm.h
+++ b/xen/arch/riscv/include/asm/mm.h
@@ -9,6 +9,7 @@
 #include <xen/mm-frame.h>
 #include <xen/pdx.h>
 #include <xen/pfn.h>
+#include <xen/sections.h>
 #include <xen/types.h>
 
 #include <asm/page-bits.h>
@@ -35,6 +36,11 @@ static inline void *maddr_to_virt(paddr_t ma)
     return (void *)va;
 }
 
+#define is_init_section(p) ({                   \
+    char *p_ = (char *)(unsigned long)(p);      \
+    (p_ >= __init_begin) && (p_ < __init_end);  \
+})
+
 /*
  * virt_to_maddr() is expected to work with virtual addresses from either
  * the directmap region or Xen's linkage (XEN_VIRT_START) region.
@@ -43,13 +49,21 @@ static inline void *maddr_to_virt(paddr_t ma)
  */
 static inline unsigned long virt_to_maddr(unsigned long va)
 {
+    const unsigned long xen_size = (unsigned long)(_end - _start);
+    const unsigned long xen_virt_start = _AC(XEN_VIRT_START, UL);
+    const unsigned long xen_virt_end = xen_virt_start + xen_size - 1;
+
     if ((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)) ==
-           (_AC(XEN_VIRT_START, UL) >> (PAGETABLE_ORDER + PAGE_SHIFT)));
+    ASSERT((va >= xen_virt_start) && (va <= xen_virt_end));
+
+    /*
+    * The .init* sections will be freed when Xen completes booting,
+    * so the [__init_begin, __init_end] range must be excluded.
+    */
+    ASSERT((system_state != SYS_STATE_active) || !is_init_section(va));
 
     /* phys_offset = load_start - XEN_VIRT_START */
     return phys_offset + va;
diff --git a/xen/arch/riscv/mm.c b/xen/arch/riscv/mm.c
index f2bf279bac..064ae1ddc7 100644
--- a/xen/arch/riscv/mm.c
+++ b/xen/arch/riscv/mm.c
@@ -31,20 +31,24 @@ unsigned long __ro_after_init phys_offset; /* = load_start - XEN_VIRT_START */
 #define LOAD_TO_LINK(addr) ((unsigned long)(addr) - phys_offset)
 
 /*
- * It is expected that Xen won't be more then 2 MB.
+ * It is expected that Xen won't be more then XEN_VIRT_SIZE MB.
  * The check in xen.lds.S guarantees that.
- * At least 3 page tables (in case of Sv39 ) are needed to cover 2 MB.
- * One for each page level table with PAGE_SIZE = 4 Kb.
  *
- * One L0 page table can cover 2 MB(512 entries of one page table * PAGE_SIZE).
+ * Root page table is shared with the initial mapping and is declared
+ * separetely. (look at stage1_pgtbl_root)
  *
- * It might be needed one more page table in case when Xen load address
- * isn't 2 MB aligned.
+ * An amount of page tables between root page table and L0 page table
+ * (in the case of Sv39 it covers L1 table):
+ *   (CONFIG_PAGING_LEVELS - 2) are needed for an identity mapping and
+ *   the same amount are needed for Xen.
  *
- * CONFIG_PAGING_LEVELS page tables are needed for the identity mapping,
- * except that the root page table is shared with the initial mapping
+ * An amount of L0 page tables:
+ *   (512 entries of one L0 page table covers 2MB == 1<<XEN_PT_LEVEL_SHIFT(1))
+ *   XEN_VIRT_SIZE >> XEN_PT_LEVEL_SHIFT(1) are needed for Xen and
+ *   one L0 is needed for indenity mapping.
  */
-#define PGTBL_INITIAL_COUNT ((CONFIG_PAGING_LEVELS - 1) * 2 + 1)
+#define PGTBL_INITIAL_COUNT ((CONFIG_PAGING_LEVELS - 2) * 2 + \
+                             (XEN_VIRT_SIZE >> XEN_PT_LEVEL_SHIFT(1)))
 
 pte_t __section(".bss.page_aligned") __aligned(PAGE_SIZE)
 stage1_pgtbl_root[PAGETABLE_ENTRIES];
diff --git a/xen/arch/riscv/xen.lds.S b/xen/arch/riscv/xen.lds.S
index dffc6ae119..91e10b8e52 100644
--- a/xen/arch/riscv/xen.lds.S
+++ b/xen/arch/riscv/xen.lds.S
@@ -178,4 +178,8 @@ ASSERT(!SIZEOF(.got.plt),  ".got.plt non-empty")
  */
 ASSERT(_end - _start <= XEN_VIRT_SIZE, "Xen too large for early-boot assumptions")
 
+/* Changing these ASSERTs can require an update of PGTBL_INITIAL_COUNT */
+ASSERT(IS_ALIGNED(XEN_VIRT_START, GB(1)), "XEN_VIRT_START should be 1gb aligned")
+ASSERT(IS_ALIGNED(XEN_VIRT_SIZE, MB(2)), "XEN_VIRT_SIZE should be 2mb aligned")
+
 ASSERT(_ident_end - _ident_start <= IDENT_AREA_SIZE, "identity region is too big");
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Wed Apr 09 19:17:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 19:17:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.944607.1343014 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2avI-0006ke-Pc; Wed, 09 Apr 2025 19:17:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 944607.1343014; Wed, 09 Apr 2025 19:17: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 1u2avI-0006kX-MX; Wed, 09 Apr 2025 19:17:20 +0000
Received: by outflank-mailman (input) for mailman id 944607;
 Wed, 09 Apr 2025 19:17: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=0lDW=W3=kernel.org=mingo@srs-se1.protection.inumbo.net>)
 id 1u2avG-0006kR-RB
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 19:17:18 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3f4da463-1577-11f0-9ffb-bf95429c2676;
 Wed, 09 Apr 2025 21:17:16 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 0D6E46843B;
 Wed,  9 Apr 2025 19:17:05 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id EE2B7C4CEE2;
 Wed,  9 Apr 2025 19:17: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: 3f4da463-1577-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1744226234;
	bh=bF03VxvTsU+BqmHsQq0q+S9ppRrCc1/KlnD8PJitqk8=;
	h=Date:From:To:Cc:Subject:References:In-Reply-To:From;
	b=qJI2/XoironzsJaz+i80e/WQ5Qp9VcugyrJtl/YBj3oj0+B7CR2sHsGtWpizK6yO4
	 VBHn2aUCKN25vPTBjtUJ5ErBpW2uZ0Nr7njrQYPiJXVIm5JOFP/Aa8E5gmKRCoJxm0
	 2vFvQqbHpIzkDxqkRul6nNrkQNGD3XqtCFeaHlXiWlZ71xy8f9NAVNkpTbM33mpsn2
	 gk6Zv+IScY5WaKqKDsrRvA4EyHwyJNofhELmFBXXaSUa90cRftnriGKZcCivNb5MT/
	 7CNvC3GIEekiFTO9pLOuthuuJFylF+HSeUIxKp18BpylKcbyjrBpuCpkk/cUVDn0Ei
	 6TKBITTbXPjew==
Date: Wed, 9 Apr 2025 21:17:02 +0200
From: Ingo Molnar <mingo@kernel.org>
To: Xin Li <xin@zytor.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>, linux-kernel@vger.kernel.org,
	linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
	virtualization@lists.linux.dev, linux-edac@vger.kernel.org,
	kvm@vger.kernel.org, xen-devel@lists.xenproject.org,
	linux-ide@vger.kernel.org, linux-pm@vger.kernel.org,
	bpf@vger.kernel.org, llvm@lists.linux.dev, tglx@linutronix.de,
	mingo@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com,
	x86@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com,
	peterz@infradead.org, acme@kernel.org, namhyung@kernel.org,
	mark.rutland@arm.com, alexander.shishkin@linux.intel.com,
	jolsa@kernel.org, irogers@google.com, adrian.hunter@intel.com,
	kan.liang@linux.intel.com, wei.liu@kernel.org,
	ajay.kaher@broadcom.com, bcm-kernel-feedback-list@broadcom.com,
	tony.luck@intel.com, pbonzini@redhat.com, vkuznets@redhat.com,
	seanjc@google.com, luto@kernel.org, boris.ostrovsky@oracle.com,
	kys@microsoft.com, haiyangz@microsoft.com, decui@microsoft.com,
	Linus Torvalds <torvalds@linux-foundation.org>
Subject: [PATCH] x86/msr: Standardize on 'u32' MSR indices in <asm/msr.h>
Message-ID: <Z_bHrjUKKWN28TX9@gmail.com>
References: <20250331082251.3171276-1-xin@zytor.com>
 <20250331082251.3171276-2-xin@zytor.com>
 <Z-pruogreCuU66wm@gmail.com>
 <9D15DE81-2E68-4FCD-A133-4963602E18C9@zytor.com>
 <Z-ubVFyoOzwKhI53@gmail.com>
 <c316a6c6-b97c-48b2-9598-d44e2ec72fbc@zytor.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <c316a6c6-b97c-48b2-9598-d44e2ec72fbc@zytor.com>


* Xin Li <xin@zytor.com> wrote:

> On 4/1/2025 12:52 AM, Ingo Molnar wrote:
> > > Should we rename the *msrl() functions to *msrq() as part of this
> > > overhaul?
> > Yeah, that's a good idea, and because talk is cheap I just implemented
> > this in the tip:WIP.x86/msr branch with a couple of other cleanups in
> > this area (see the shortlog & diffstat below), but the churn is high:
> > 
> >    144 files changed, 1034 insertions(+), 1034 deletions(-)
> 
> Hi Ingo,
> 
> I noticed that you keep the type of MSR index in these patches as
> "unsigned int".
> 
> I'm thinking would it be better to standardize it as "u32"?
> 
> Because:
> 1) MSR index is placed in ECX to execute MSR instructions, and the
>    high-order 32 bits of RCX are ignored on 64-bit.
> 2) MSR index is encoded as a 32-bit immediate in the new immediate form
>    MSR instructions.

Makes sense - something like the attached patch?

Thanks,

	Ingo

=====================>
From: Ingo Molnar <mingo@kernel.org>
Date: Wed, 9 Apr 2025 21:12:39 +0200
Subject: [PATCH] x86/msr: Standardize on 'u32' MSR indices in <asm/msr.h>

This is the customary type used for hardware ABIs.

Suggested-by: Xin Li <xin@zytor.com>
Suggested-by: "H. Peter Anvin" <hpa@zytor.com>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
---
 arch/x86/include/asm/msr.h | 29 ++++++++++++++---------------
 arch/x86/lib/msr.c         |  4 ++--
 2 files changed, 16 insertions(+), 17 deletions(-)

diff --git a/arch/x86/include/asm/msr.h b/arch/x86/include/asm/msr.h
index 4ee9ae734c08..20deb58308e5 100644
--- a/arch/x86/include/asm/msr.h
+++ b/arch/x86/include/asm/msr.h
@@ -63,12 +63,12 @@ struct saved_msrs {
 DECLARE_TRACEPOINT(read_msr);
 DECLARE_TRACEPOINT(write_msr);
 DECLARE_TRACEPOINT(rdpmc);
-extern void do_trace_write_msr(unsigned int msr, u64 val, int failed);
-extern void do_trace_read_msr(unsigned int msr, u64 val, int failed);
+extern void do_trace_write_msr(u32 msr, u64 val, int failed);
+extern void do_trace_read_msr(u32 msr, u64 val, int failed);
 extern void do_trace_rdpmc(u32 msr, u64 val, int failed);
 #else
-static inline void do_trace_write_msr(unsigned int msr, u64 val, int failed) {}
-static inline void do_trace_read_msr(unsigned int msr, u64 val, int failed) {}
+static inline void do_trace_write_msr(u32 msr, u64 val, int failed) {}
+static inline void do_trace_read_msr(u32 msr, u64 val, int failed) {}
 static inline void do_trace_rdpmc(u32 msr, u64 val, int failed) {}
 #endif
 
@@ -79,7 +79,7 @@ static inline void do_trace_rdpmc(u32 msr, u64 val, int failed) {}
  * think of extending them - you will be slapped with a stinking trout or a frozen
  * shark will reach you, wherever you are! You've been warned.
  */
-static __always_inline u64 __rdmsr(unsigned int msr)
+static __always_inline u64 __rdmsr(u32 msr)
 {
 	DECLARE_ARGS(val, low, high);
 
@@ -91,7 +91,7 @@ static __always_inline u64 __rdmsr(unsigned int msr)
 	return EAX_EDX_VAL(val, low, high);
 }
 
-static __always_inline void __wrmsr(unsigned int msr, u32 low, u32 high)
+static __always_inline void __wrmsr(u32 msr, u32 low, u32 high)
 {
 	asm volatile("1: wrmsr\n"
 		     "2:\n"
@@ -113,7 +113,7 @@ do {							\
 	__wrmsr((msr), (u32)((u64)(val)),		\
 		       (u32)((u64)(val) >> 32))
 
-static inline u64 native_read_msr(unsigned int msr)
+static inline u64 native_read_msr(u32 msr)
 {
 	u64 val;
 
@@ -125,8 +125,7 @@ static inline u64 native_read_msr(unsigned int msr)
 	return val;
 }
 
-static inline u64 native_read_msr_safe(unsigned int msr,
-						      int *err)
+static inline u64 native_read_msr_safe(u32 msr, int *err)
 {
 	DECLARE_ARGS(val, low, high);
 
@@ -142,7 +141,7 @@ static inline u64 native_read_msr_safe(unsigned int msr,
 
 /* Can be uninlined because referenced by paravirt */
 static inline void notrace
-native_write_msr(unsigned int msr, u32 low, u32 high)
+native_write_msr(u32 msr, u32 low, u32 high)
 {
 	__wrmsr(msr, low, high);
 
@@ -152,7 +151,7 @@ native_write_msr(unsigned int msr, u32 low, u32 high)
 
 /* Can be uninlined because referenced by paravirt */
 static inline int notrace
-native_write_msr_safe(unsigned int msr, u32 low, u32 high)
+native_write_msr_safe(u32 msr, u32 low, u32 high)
 {
 	int err;
 
@@ -251,7 +250,7 @@ do {								\
 	(void)((high) = (u32)(__val >> 32));			\
 } while (0)
 
-static inline void wrmsr(unsigned int msr, u32 low, u32 high)
+static inline void wrmsr(u32 msr, u32 low, u32 high)
 {
 	native_write_msr(msr, low, high);
 }
@@ -259,13 +258,13 @@ static inline void wrmsr(unsigned int msr, u32 low, u32 high)
 #define rdmsrq(msr, val)			\
 	((val) = native_read_msr((msr)))
 
-static inline void wrmsrq(unsigned int msr, u64 val)
+static inline void wrmsrq(u32 msr, u64 val)
 {
 	native_write_msr(msr, (u32)(val & 0xffffffffULL), (u32)(val >> 32));
 }
 
 /* wrmsr with exception handling */
-static inline int wrmsr_safe(unsigned int msr, u32 low, u32 high)
+static inline int wrmsr_safe(u32 msr, u32 low, u32 high)
 {
 	return native_write_msr_safe(msr, low, high);
 }
@@ -280,7 +279,7 @@ static inline int wrmsr_safe(unsigned int msr, u32 low, u32 high)
 	__err;							\
 })
 
-static inline int rdmsrq_safe(unsigned int msr, u64 *p)
+static inline int rdmsrq_safe(u32 msr, u64 *p)
 {
 	int err;
 
diff --git a/arch/x86/lib/msr.c b/arch/x86/lib/msr.c
index e18925899f13..4ef7c6dcbea6 100644
--- a/arch/x86/lib/msr.c
+++ b/arch/x86/lib/msr.c
@@ -122,14 +122,14 @@ int msr_clear_bit(u32 msr, u8 bit)
 EXPORT_SYMBOL_GPL(msr_clear_bit);
 
 #ifdef CONFIG_TRACEPOINTS
-void do_trace_write_msr(unsigned int msr, u64 val, int failed)
+void do_trace_write_msr(u32 msr, u64 val, int failed)
 {
 	trace_write_msr(msr, val, failed);
 }
 EXPORT_SYMBOL(do_trace_write_msr);
 EXPORT_TRACEPOINT_SYMBOL(write_msr);
 
-void do_trace_read_msr(unsigned int msr, u64 val, int failed)
+void do_trace_read_msr(u32 msr, u64 val, int failed)
 {
 	trace_read_msr(msr, val, failed);
 }


From xen-devel-bounces@lists.xenproject.org Wed Apr 09 19:54:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 19:54:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.944624.1343025 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2bV1-0008Ja-H3; Wed, 09 Apr 2025 19:54:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 944624.1343025; Wed, 09 Apr 2025 19: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 1u2bV1-0008JT-Bn; Wed, 09 Apr 2025 19:54:15 +0000
Received: by outflank-mailman (input) for mailman id 944624;
 Wed, 09 Apr 2025 19:54: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=0lDW=W3=kernel.org=mingo@srs-se1.protection.inumbo.net>)
 id 1u2bV0-0008JN-JG
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 19:54:14 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6849c595-157c-11f0-9eab-5ba50f476ded;
 Wed, 09 Apr 2025 21:54:12 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 67ABD61127;
 Wed,  9 Apr 2025 19:54:01 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 260C8C4CEE2;
 Wed,  9 Apr 2025 19:54: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: 6849c595-157c-11f0-9eab-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1744228450;
	bh=q7KvwDfQqFDNGgQf6PyiHomLFAW6NL2n557EpD26id8=;
	h=Date:From:To:Cc:Subject:References:In-Reply-To:From;
	b=VulSS1YwlnFjfym00iwjm8nZpYCyp06C0ojMIpSCSHZR4u0kCve/HPOLSpwGvY8u5
	 pBTjBb/9vduXt1yHmPU9a+E8F7KAYhYpWKQEBBPX+/hfy20lXzFqyHyY8B+HK6sZUf
	 xN3fYMEJoURP0ouK4XLhP558hxwDPdlv3j55wiCtlhRPkFu/TgXbgsw4c31dujDZWx
	 WI68CmIsMMEvM72xxyr1xE96ssKn4YT5iCMXcjHWRmRp8UzErdBvMQgGb+caLf69ln
	 4GvtnHjQrXPK2u6hCjNy/AUsgKBW8iPDB+syZsrtkVGFcuJdzKsEe35yQuSR5M6flU
	 mNFGcP/z9LOpg==
Date: Wed, 9 Apr 2025 21:53:59 +0200
From: Ingo Molnar <mingo@kernel.org>
To: "H. Peter Anvin" <hpa@zytor.com>
Cc: Dave Hansen <dave.hansen@intel.com>, Xin Li <xin@zytor.com>,
	linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org,
	linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
	linux-edac@vger.kernel.org, kvm@vger.kernel.org,
	xen-devel@lists.xenproject.org, linux-ide@vger.kernel.org,
	linux-pm@vger.kernel.org, bpf@vger.kernel.org, llvm@lists.linux.dev,
	tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
	dave.hansen@linux.intel.com, x86@kernel.org, jgross@suse.com,
	andrew.cooper3@citrix.com, peterz@infradead.org, acme@kernel.org,
	namhyung@kernel.org, mark.rutland@arm.com,
	alexander.shishkin@linux.intel.com, jolsa@kernel.org,
	irogers@google.com, adrian.hunter@intel.com,
	kan.liang@linux.intel.com, wei.liu@kernel.org,
	ajay.kaher@broadcom.com, alexey.amakhalov@broadcom.com,
	bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
	pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
	luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
	haiyangz@microsoft.com, decui@microsoft.com
Subject: Re: [RFC PATCH v1 01/15] x86/msr: Replace __wrmsr() with
 native_wrmsrl()
Message-ID: <Z_bQV2oOnJlwbxnk@gmail.com>
References: <20250331082251.3171276-1-xin@zytor.com>
 <20250331082251.3171276-2-xin@zytor.com>
 <Z-pruogreCuU66wm@gmail.com>
 <9D15DE81-2E68-4FCD-A133-4963602E18C9@zytor.com>
 <a0254e73-bf7c-4876-b64e-b08e96044666@zytor.com>
 <e5770add-9d18-40e1-929d-df7c40f3c7d1@intel.com>
 <ADCFB190-A89A-460D-81A6-80E20AEFBFBC@zytor.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <ADCFB190-A89A-460D-81A6-80E20AEFBFBC@zytor.com>


* H. Peter Anvin <hpa@zytor.com> wrote:

> On April 2, 2025 8:41:07 AM PDT, Dave Hansen <dave.hansen@intel.com> wrote:
> >On 3/31/25 22:53, Xin Li wrote:
> >> Per "struct msr" defined in arch/x86/include/asm/shared/msr.h:
> >> 
> >> struct msr {
> >>  union {
> >>  struct {
> >>  u32 l;
> >>  u32 h;
> >>  };
> >>  u64 q;
> >>  };
> >> };
> >> 
> >> Probably *msrq() is what we want?
> >
> > What would folks think about "wrmsr64()"? It's writing a 64-bit 
> > value to an MSR and there are a lot of functions in the kernel that 
> > are named with the argument width in bits.
> 
> Personally, I hate the extra verbosity, mostly visual, since numerals 
> are nearly as prominent as capital letters they tend to attract the 
> eye. There is a reason why they aren't used this way in assembly 
> languages.

So what's the consensus here? Both work for me, but I have to pick one. :-)

Thanks,

	Ingo


From xen-devel-bounces@lists.xenproject.org Wed Apr 09 19:56:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 19:56:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.944636.1343033 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2bWx-0000PB-PG; Wed, 09 Apr 2025 19:56:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 944636.1343033; Wed, 09 Apr 2025 19:56: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 1u2bWx-0000P4-Mh; Wed, 09 Apr 2025 19:56:15 +0000
Received: by outflank-mailman (input) for mailman id 944636;
 Wed, 09 Apr 2025 19:56: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=f0pT=W3=intel.com=dave.hansen@srs-se1.protection.inumbo.net>)
 id 1u2bWw-0000Oy-M8
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 19:56:14 +0000
Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.12])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id aeeb44fb-157c-11f0-9eab-5ba50f476ded;
 Wed, 09 Apr 2025 21:56:12 +0200 (CEST)
Received: from orviesa006.jf.intel.com ([10.64.159.146])
 by fmvoesa106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 09 Apr 2025 12:56:09 -0700
Received: from sramkris-mobl1.amr.corp.intel.com (HELO [10.124.220.195])
 ([10.124.220.195])
 by orviesa006-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 09 Apr 2025 12:56:07 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: aeeb44fb-157c-11f0-9eab-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1744228572; x=1775764572;
  h=message-id:date:mime-version:subject:to:cc:references:
   from:in-reply-to:content-transfer-encoding;
  bh=3grsrl9RZSBBBvFXyMe95JHInK+q/SBFqiK5jQb49GU=;
  b=iGCKrRJ08rYkb1DRi9DljSlGtW5OkmoDKbN40sJXrAg1AoMTjxSSlUFs
   XQgscivPWUo1kGhOJsNrLWBYE4zaNaZLnu+l8OKkzPDzmJory0tOyoetC
   D3WlSrka5+LAvdubTWKTLt1DkCVxNOq06/QsGy+2rNh90cl0BnjUoIfqM
   B5652NDFOMIQr51EUVI7UHcwEIeN6IDINvyoj7yJg37IdgmhtrkKlvAw0
   b+D8HhNIl0BAi8HR8kSBn/T8j9K66hfRZG0idpm/5HASeBojwJoIAKeCJ
   hMtimf9qTQW6cg+piQEYgsuu5OInjYZFXOrF+04pzvFXtT+rj0LZj0H2U
   g==;
X-CSE-ConnectionGUID: Z7kGzPPsQhqdeI9ZGAl1GQ==
X-CSE-MsgGUID: 6upsooezS8mD5fCPC4N3Qw==
X-IronPort-AV: E=McAfee;i="6700,10204,11399"; a="49566740"
X-IronPort-AV: E=Sophos;i="6.15,201,1739865600"; 
   d="scan'208";a="49566740"
X-CSE-ConnectionGUID: nHikWXMBThOMkcTjRkRv+A==
X-CSE-MsgGUID: MXkjaIXHS0SCTiVGQFjm6g==
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="6.15,201,1739865600"; 
   d="scan'208";a="128651763"
Message-ID: <29ad84a6-b40c-456a-9eed-9887c87dfb38@intel.com>
Date: Wed, 9 Apr 2025 12:56:04 -0700
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH v1 01/15] x86/msr: Replace __wrmsr() with
 native_wrmsrl()
To: Ingo Molnar <mingo@kernel.org>, "H. Peter Anvin" <hpa@zytor.com>
Cc: Xin Li <xin@zytor.com>, linux-kernel@vger.kernel.org,
 linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
 virtualization@lists.linux.dev, linux-edac@vger.kernel.org,
 kvm@vger.kernel.org, xen-devel@lists.xenproject.org,
 linux-ide@vger.kernel.org, linux-pm@vger.kernel.org, bpf@vger.kernel.org,
 llvm@lists.linux.dev, tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
 dave.hansen@linux.intel.com, x86@kernel.org, jgross@suse.com,
 andrew.cooper3@citrix.com, peterz@infradead.org, acme@kernel.org,
 namhyung@kernel.org, mark.rutland@arm.com,
 alexander.shishkin@linux.intel.com, jolsa@kernel.org, irogers@google.com,
 adrian.hunter@intel.com, kan.liang@linux.intel.com, wei.liu@kernel.org,
 ajay.kaher@broadcom.com, alexey.amakhalov@broadcom.com,
 bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
 pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
 luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
 haiyangz@microsoft.com, decui@microsoft.com
References: <20250331082251.3171276-1-xin@zytor.com>
 <20250331082251.3171276-2-xin@zytor.com> <Z-pruogreCuU66wm@gmail.com>
 <9D15DE81-2E68-4FCD-A133-4963602E18C9@zytor.com>
 <a0254e73-bf7c-4876-b64e-b08e96044666@zytor.com>
 <e5770add-9d18-40e1-929d-df7c40f3c7d1@intel.com>
 <ADCFB190-A89A-460D-81A6-80E20AEFBFBC@zytor.com> <Z_bQV2oOnJlwbxnk@gmail.com>
From: Dave Hansen <dave.hansen@intel.com>
Content-Language: en-US
Autocrypt: addr=dave.hansen@intel.com; keydata=
 xsFNBE6HMP0BEADIMA3XYkQfF3dwHlj58Yjsc4E5y5G67cfbt8dvaUq2fx1lR0K9h1bOI6fC
 oAiUXvGAOxPDsB/P6UEOISPpLl5IuYsSwAeZGkdQ5g6m1xq7AlDJQZddhr/1DC/nMVa/2BoY
 2UnKuZuSBu7lgOE193+7Uks3416N2hTkyKUSNkduyoZ9F5twiBhxPJwPtn/wnch6n5RsoXsb
 ygOEDxLEsSk/7eyFycjE+btUtAWZtx+HseyaGfqkZK0Z9bT1lsaHecmB203xShwCPT49Blxz
 VOab8668QpaEOdLGhtvrVYVK7x4skyT3nGWcgDCl5/Vp3TWA4K+IofwvXzX2ON/Mj7aQwf5W
 iC+3nWC7q0uxKwwsddJ0Nu+dpA/UORQWa1NiAftEoSpk5+nUUi0WE+5DRm0H+TXKBWMGNCFn
 c6+EKg5zQaa8KqymHcOrSXNPmzJuXvDQ8uj2J8XuzCZfK4uy1+YdIr0yyEMI7mdh4KX50LO1
 pmowEqDh7dLShTOif/7UtQYrzYq9cPnjU2ZW4qd5Qz2joSGTG9eCXLz5PRe5SqHxv6ljk8mb
 ApNuY7bOXO/A7T2j5RwXIlcmssqIjBcxsRRoIbpCwWWGjkYjzYCjgsNFL6rt4OL11OUF37wL
 QcTl7fbCGv53KfKPdYD5hcbguLKi/aCccJK18ZwNjFhqr4MliQARAQABzUVEYXZpZCBDaHJp
 c3RvcGhlciBIYW5zZW4gKEludGVsIFdvcmsgQWRkcmVzcykgPGRhdmUuaGFuc2VuQGludGVs
 LmNvbT7CwXgEEwECACIFAlQ+9J0CGwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEGg1
 lTBwyZKwLZUP/0dnbhDc229u2u6WtK1s1cSd9WsflGXGagkR6liJ4um3XCfYWDHvIdkHYC1t
 MNcVHFBwmQkawxsYvgO8kXT3SaFZe4ISfB4K4CL2qp4JO+nJdlFUbZI7cz/Td9z8nHjMcWYF
 IQuTsWOLs/LBMTs+ANumibtw6UkiGVD3dfHJAOPNApjVr+M0P/lVmTeP8w0uVcd2syiaU5jB
 aht9CYATn+ytFGWZnBEEQFnqcibIaOrmoBLu2b3fKJEd8Jp7NHDSIdrvrMjYynmc6sZKUqH2
 I1qOevaa8jUg7wlLJAWGfIqnu85kkqrVOkbNbk4TPub7VOqA6qG5GCNEIv6ZY7HLYd/vAkVY
 E8Plzq/NwLAuOWxvGrOl7OPuwVeR4hBDfcrNb990MFPpjGgACzAZyjdmYoMu8j3/MAEW4P0z
 F5+EYJAOZ+z212y1pchNNauehORXgjrNKsZwxwKpPY9qb84E3O9KYpwfATsqOoQ6tTgr+1BR
 CCwP712H+E9U5HJ0iibN/CDZFVPL1bRerHziuwuQuvE0qWg0+0SChFe9oq0KAwEkVs6ZDMB2
 P16MieEEQ6StQRlvy2YBv80L1TMl3T90Bo1UUn6ARXEpcbFE0/aORH/jEXcRteb+vuik5UGY
 5TsyLYdPur3TXm7XDBdmmyQVJjnJKYK9AQxj95KlXLVO38lczsFNBFRjzmoBEACyAxbvUEhd
 GDGNg0JhDdezyTdN8C9BFsdxyTLnSH31NRiyp1QtuxvcqGZjb2trDVuCbIzRrgMZLVgo3upr
 MIOx1CXEgmn23Zhh0EpdVHM8IKx9Z7V0r+rrpRWFE8/wQZngKYVi49PGoZj50ZEifEJ5qn/H
 Nsp2+Y+bTUjDdgWMATg9DiFMyv8fvoqgNsNyrrZTnSgoLzdxr89FGHZCoSoAK8gfgFHuO54B
 lI8QOfPDG9WDPJ66HCodjTlBEr/Cwq6GruxS5i2Y33YVqxvFvDa1tUtl+iJ2SWKS9kCai2DR
 3BwVONJEYSDQaven/EHMlY1q8Vln3lGPsS11vSUK3QcNJjmrgYxH5KsVsf6PNRj9mp8Z1kIG
 qjRx08+nnyStWC0gZH6NrYyS9rpqH3j+hA2WcI7De51L4Rv9pFwzp161mvtc6eC/GxaiUGuH
 BNAVP0PY0fqvIC68p3rLIAW3f97uv4ce2RSQ7LbsPsimOeCo/5vgS6YQsj83E+AipPr09Caj
 0hloj+hFoqiticNpmsxdWKoOsV0PftcQvBCCYuhKbZV9s5hjt9qn8CE86A5g5KqDf83Fxqm/
 vXKgHNFHE5zgXGZnrmaf6resQzbvJHO0Fb0CcIohzrpPaL3YepcLDoCCgElGMGQjdCcSQ+Ci
 FCRl0Bvyj1YZUql+ZkptgGjikQARAQABwsFfBBgBAgAJBQJUY85qAhsMAAoJEGg1lTBwyZKw
 l4IQAIKHs/9po4spZDFyfDjunimEhVHqlUt7ggR1Hsl/tkvTSze8pI1P6dGp2XW6AnH1iayn
 yRcoyT0ZJ+Zmm4xAH1zqKjWplzqdb/dO28qk0bPso8+1oPO8oDhLm1+tY+cOvufXkBTm+whm
 +AyNTjaCRt6aSMnA/QHVGSJ8grrTJCoACVNhnXg/R0g90g8iV8Q+IBZyDkG0tBThaDdw1B2l
 asInUTeb9EiVfL/Zjdg5VWiF9LL7iS+9hTeVdR09vThQ/DhVbCNxVk+DtyBHsjOKifrVsYep
 WpRGBIAu3bK8eXtyvrw1igWTNs2wazJ71+0z2jMzbclKAyRHKU9JdN6Hkkgr2nPb561yjcB8
 sIq1pFXKyO+nKy6SZYxOvHxCcjk2fkw6UmPU6/j/nQlj2lfOAgNVKuDLothIxzi8pndB8Jju
 KktE5HJqUUMXePkAYIxEQ0mMc8Po7tuXdejgPMwgP7x65xtfEqI0RuzbUioFltsp1jUaRwQZ
 MTsCeQDdjpgHsj+P2ZDeEKCbma4m6Ez/YWs4+zDm1X8uZDkZcfQlD9NldbKDJEXLIjYWo1PH
 hYepSffIWPyvBMBTW2W5FRjJ4vLRrJSUoEfJuPQ3vW9Y73foyo/qFoURHO48AinGPZ7PC7TF
 vUaNOTjKedrqHkaOcqB185ahG2had0xnFsDPlx5y
In-Reply-To: <Z_bQV2oOnJlwbxnk@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 4/9/25 12:53, Ingo Molnar wrote:
>>> What would folks think about "wrmsr64()"? It's writing a 64-bit 
>>> value to an MSR and there are a lot of functions in the kernel that 
>>> are named with the argument width in bits.
>> Personally, I hate the extra verbosity, mostly visual, since numerals 
>> are nearly as prominent as capital letters they tend to attract the 
>> eye. There is a reason why they aren't used this way in assembly 
>> languages.
> So what's the consensus here? Both work for me, but I have to pick one. 🙂

I don't feel strongly about it. You're not going to hurt my feelings if
you pick the "q" one, so go for "q" unless you have a real preference.


From xen-devel-bounces@lists.xenproject.org Wed Apr 09 20:11:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 20:11:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.944652.1343043 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2blg-0005pb-W6; Wed, 09 Apr 2025 20:11:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 944652.1343043; Wed, 09 Apr 2025 20: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 1u2blg-0005pU-Td; Wed, 09 Apr 2025 20:11:28 +0000
Received: by outflank-mailman (input) for mailman id 944652;
 Wed, 09 Apr 2025 20:11:27 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=0lDW=W3=kernel.org=mingo@srs-se1.protection.inumbo.net>)
 id 1u2blf-0005p5-Lu
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 20:11:27 +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 cff78919-157e-11f0-9eab-5ba50f476ded;
 Wed, 09 Apr 2025 22:11:25 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id C0ED75C04ED;
 Wed,  9 Apr 2025 20:09:06 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 71925C4CEE2;
 Wed,  9 Apr 2025 20:11: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: cff78919-157e-11f0-9eab-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1744229483;
	bh=FJm/izdFNTfA1jwBlsdk1jJoTUGHKfakmjnarpokATA=;
	h=Date:From:To:Cc:Subject:References:In-Reply-To:From;
	b=D24yujy42QUc8MzaoYIOhqsAt7S0/2X6yekc52w0gwdRwZBMwmU2nUGsZoW5Ns7GD
	 j85elSFL53Wuzj6UvF8uMMGWEYy3lD+JT9cZ0aqP7gtAES0C3utL694NSMXdxOrKJc
	 9kIP4IKosSndbxn+SFfqxSrLVm9pBipvXXrP6J8VxMshOu3nGVg5Xag10MUwIq3jdK
	 Ebzxt4FaeSUl2kGyVYg1LltfzCxBxoV7FKWUvjuBBSV/RcEjM/nammCpLTt/GmU9n5
	 qWMtWEi+RRMn/FMGZcmAdYRRPyz1BTp+SNboYM41JDtFNJnwUWqDkFxGYl1tX5Mz6M
	 qlUYtZ4y1dU2Q==
Date: Wed, 9 Apr 2025 22:11:11 +0200
From: Ingo Molnar <mingo@kernel.org>
To: Dave Hansen <dave.hansen@intel.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>, Xin Li <xin@zytor.com>,
	linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org,
	linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
	linux-edac@vger.kernel.org, kvm@vger.kernel.org,
	xen-devel@lists.xenproject.org, linux-ide@vger.kernel.org,
	linux-pm@vger.kernel.org, bpf@vger.kernel.org, llvm@lists.linux.dev,
	tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
	dave.hansen@linux.intel.com, x86@kernel.org, jgross@suse.com,
	andrew.cooper3@citrix.com, peterz@infradead.org, acme@kernel.org,
	namhyung@kernel.org, mark.rutland@arm.com,
	alexander.shishkin@linux.intel.com, jolsa@kernel.org,
	irogers@google.com, adrian.hunter@intel.com,
	kan.liang@linux.intel.com, wei.liu@kernel.org,
	ajay.kaher@broadcom.com, alexey.amakhalov@broadcom.com,
	bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
	pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
	luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
	haiyangz@microsoft.com, decui@microsoft.com
Subject: Re: [RFC PATCH v1 01/15] x86/msr: Replace __wrmsr() with
 native_wrmsrl()
Message-ID: <Z_bUX06aq6thJ4Uu@gmail.com>
References: <20250331082251.3171276-1-xin@zytor.com>
 <20250331082251.3171276-2-xin@zytor.com>
 <Z-pruogreCuU66wm@gmail.com>
 <9D15DE81-2E68-4FCD-A133-4963602E18C9@zytor.com>
 <a0254e73-bf7c-4876-b64e-b08e96044666@zytor.com>
 <e5770add-9d18-40e1-929d-df7c40f3c7d1@intel.com>
 <ADCFB190-A89A-460D-81A6-80E20AEFBFBC@zytor.com>
 <Z_bQV2oOnJlwbxnk@gmail.com>
 <29ad84a6-b40c-456a-9eed-9887c87dfb38@intel.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <29ad84a6-b40c-456a-9eed-9887c87dfb38@intel.com>


* Dave Hansen <dave.hansen@intel.com> wrote:

> On 4/9/25 12:53, Ingo Molnar wrote:
> >>> What would folks think about "wrmsr64()"? It's writing a 64-bit 
> >>> value to an MSR and there are a lot of functions in the kernel that 
> >>> are named with the argument width in bits.
> >> Personally, I hate the extra verbosity, mostly visual, since numerals 
> >> are nearly as prominent as capital letters they tend to attract the 
> >> eye. There is a reason why they aren't used this way in assembly 
> >> languages.
> > So what's the consensus here? Both work for me, but I have to pick one. 🙂
> 
> I don't feel strongly about it. You're not going to hurt my feelings if
> you pick the "q" one, so go for "q" unless you have a real preference.

Ok, since hpa seems to hate the wrmsr64()/rdmsr64() names due to the 
numeric verbosity, I'll go with wrmsrq()/rdmsrq().

Thanks,

	Ingo



From xen-devel-bounces@lists.xenproject.org Wed Apr 09 21:05:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 21:05:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.944666.1343054 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2cbz-0001Wk-QV; Wed, 09 Apr 2025 21:05:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 944666.1343054; Wed, 09 Apr 2025 21:05: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 1u2cbz-0001Wd-Mq; Wed, 09 Apr 2025 21:05:31 +0000
Received: by outflank-mailman (input) for mailman id 944666;
 Wed, 09 Apr 2025 21:05: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=Ywx6=W3=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u2cbx-0001WX-LR
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 21:05:30 +0000
Received: from mail-24418.protonmail.ch (mail-24418.protonmail.ch
 [109.224.244.18]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5c153e5f-1586-11f0-9eab-5ba50f476ded;
 Wed, 09 Apr 2025 23:05:26 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5c153e5f-1586-11f0-9eab-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=nrswsrigffbi7chan7kkvvb4mq.protonmail; t=1744232723; x=1744491923;
	bh=WeyoovXlO53NrWyhdxrWlGfsKzupPYL0oBSVR88Gd58=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=F2pWj4auIo0nQpCWORCz1xXb2RWKpPIHNLg/OOCTSNXKmYFixyhSeZY+pMKUB+bM8
	 sHPTl7jt6HUFcoJkvei0D/VvQaV9vo39DkmmCUBoHbIsVZ4OEblB4uOmndeaXaeaBB
	 I0i3ysuk0xqB0sQp5vOrV1opkSgLtWcS76uFuFqKMXH155yypiXE/UvwQ6NUl6RcjW
	 4mPC6wIzA8TSuAuqz8z5Th4eFisnHUZrSk0dqyTHZ0Q3cRbktv85Y0jfGbo9xZG73M
	 Sc9SGxDJour3cwHv0v365Yvj82H7Myah22nSI47Kav1QiYvc36PUk5CU0m8J6xNEcx
	 E0Zift3v4giiQ==
Date: Wed, 09 Apr 2025 21:05:18 +0000
To: Alejandro Vallejo <agarciav@amd.com>
From: Denis Mukhin <dmkhn@proton.me>
Cc: xen-devel@lists.xenproject.org, "Daniel P. Smith" <dpsmith@apertussolutions.com>, Jason Andryuk <jason.andryuk@amd.com>, Xenia Ragiadakou <xenia.ragiadakou@amd.com>, Stefano Stabellini <sstabellini@kernel.org>, Michal Orzel <michal.orzel@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>
Subject: Re: [PATCH v3 03/16] x86/boot: add cmdline to struct boot_domain
Message-ID: <ay75cmCDuxMtW2NROw3rcPNNhWU-QXAuk25j_isEbVoH7WmECfIC1xWw9hX-yvWKDXqamxx32tum4_3CRN46CGrgQKk1_loSZsExg4Ata1s=@proton.me>
In-Reply-To: <20250408160802.49870-4-agarciav@amd.com>
References: <20250408160802.49870-1-agarciav@amd.com> <20250408160802.49870-4-agarciav@amd.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: d13396960db427cbc733cdd4cf0ccdcf2aa6f0d3
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Tuesday, April 8th, 2025 at 9:07 AM, Alejandro Vallejo <agarciav@amd.com=
> wrote:

>=20
>=20
> From: "Daniel P. Smith" dpsmith@apertussolutions.com
>=20
>=20
> 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.
>=20
> Signed-off-by: Daniel P. Smith dpsmith@apertussolutions.com
>=20
> Signed-off-by: Jason Andryuk jason.andryuk@amd.com
>=20
> Signed-off-by: Alejandro Vallejo agarciav@amd.com
>=20
> ---
> No changes on ACPI cmdline handling on PVH, as it's orthogonal to the
> purpose of this patch.
>=20
> v3:
> * s/xfree/XFREE/ on failed construct_dom0() to avoid a dangling
> cmdline ptr.
> * Re-flow hvm_copy_to_guest_phys() into a multi-line call.
> * s/bd->cmdline !=3D NULL/b->cmdline/ (to homogenise with the previous
>=20
> cmdline pointer check)
> ---
> xen/arch/x86/hvm/dom0_build.c | 12 +++----
> xen/arch/x86/include/asm/boot-domain.h | 1 +
> xen/arch/x86/pv/dom0_build.c | 4 +--
> xen/arch/x86/setup.c | 50 +++++++++++++++++++-------
> 4 files changed, 47 insertions(+), 20 deletions(-)
>=20
> diff --git a/xen/arch/x86/hvm/dom0_build.c b/xen/arch/x86/hvm/dom0_build.=
c
> index 2a094b3145..ebad5a49b8 100644
> --- a/xen/arch/x86/hvm/dom0_build.c
> +++ b/xen/arch/x86/hvm/dom0_build.c
> @@ -653,7 +653,6 @@ static int __init pvh_load_kernel(
> void *image_start =3D image_base + image->headroom;
>=20
> unsigned long image_len =3D image->size;
>=20
> unsigned long initrd_len =3D initrd ? initrd->size : 0;
>=20
> - const char *cmdline =3D image->cmdline_pa ? __va(image->cmdline_pa) : N=
ULL;
>=20
> const char *initrd_cmdline =3D NULL;
> struct elf_binary elf;
> struct elf_dom_parms parms;
> @@ -736,8 +735,8 @@ static int __init pvh_load_kernel(
> initrd =3D NULL;
> }
>=20
> - if ( cmdline )
> - extra_space +=3D elf_round_up(&elf, strlen(cmdline) + 1);
> + if ( bd->cmdline )
>=20
> + extra_space +=3D elf_round_up(&elf, strlen(bd->cmdline) + 1);

I think it makes sense to use local variable to cache the results of=20

  strlen(bd->cmdline) + 1

since the construct is used multiple times within pvh_load_kernel()

E.g. cmdline_len similarly to {image,initrd}_len.

>=20
>=20
> last_addr =3D find_memory(d, &elf, extra_space);
> if ( last_addr =3D=3D INVALID_PADDR )
> @@ -778,9 +777,10 @@ static int __init pvh_load_kernel(
> /* Free temporary buffers. */
> free_boot_modules();
>=20
> - if ( cmdline !=3D NULL )
> + if ( bd->cmdline )
>=20
> {
> - rc =3D hvm_copy_to_guest_phys(last_addr, cmdline, strlen(cmdline) + 1, =
v);
> + rc =3D hvm_copy_to_guest_phys(last_addr, bd->cmdline,
>=20
> + strlen(bd->cmdline) + 1, v);
>=20
> if ( rc )
> {
> printk("Unable to copy guest command line\n");
> @@ -791,7 +791,7 @@ static int __init pvh_load_kernel(
> * Round up to 32/64 bits (depending on the guest kernel bitness) so
> * the modlist/start_info is aligned.
> */
> - last_addr +=3D elf_round_up(&elf, strlen(cmdline) + 1);
> + last_addr +=3D elf_round_up(&elf, strlen(bd->cmdline) + 1);
>=20
> }
> if ( initrd !=3D NULL )
> {
> diff --git a/xen/arch/x86/include/asm/boot-domain.h b/xen/arch/x86/includ=
e/asm/boot-domain.h
> index fcbedda0f0..d7c6042e25 100644
> --- a/xen/arch/x86/include/asm/boot-domain.h
> +++ b/xen/arch/x86/include/asm/boot-domain.h
> @@ -15,6 +15,7 @@ struct boot_domain {
>=20
> struct boot_module *kernel;
> struct boot_module *module;
> + const char *cmdline;
>=20
> struct domain *d;
> };
> diff --git a/xen/arch/x86/pv/dom0_build.c b/xen/arch/x86/pv/dom0_build.c
> index b485eea05f..e1b78d47c2 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(const struct boot_do=
main *bd)
> }
>=20
> memset(si->cmd_line, 0, sizeof(si->cmd_line));
>=20
> - if ( image->cmdline_pa )
>=20
> - strlcpy((char *)si->cmd_line, __va(image->cmdline_pa), sizeof(si->cmd_l=
ine));
>=20
> + if ( bd->cmdline )
>=20
> + strlcpy((char *)si->cmd_line, bd->cmdline, sizeof(si->cmd_line));
>=20
>=20
> #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 585316f1ca..83cb66e309 100644
> --- a/xen/arch/x86/setup.c
> +++ b/xen/arch/x86/setup.c
> @@ -978,10 +978,30 @@ static unsigned int __init copy_bios_e820(struct e8=
20entry *map, unsigned int li
> return n;
> }
>=20
> -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 =3D bi->kextra ? strlen(bi->kextra) : 0;
>=20
> +
> + s +=3D bd->kernel->cmdline_pa ? strlen(__va(bd->kernel->cmdline_pa)) : =
0;
>=20
>=20
> + if ( s =3D=3D 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 +=3D strlen(" noapic") + strlen(" acpi=3D") + sizeof(acpi_param) + 1;
> +
> + return s;
> +}
> +
> +static struct domain *__init create_dom0(struct boot_info *bi)
> +{
> + char *cmdline =3D NULL;
> + size_t cmdline_size;
> struct xen_domctl_createdomain dom0_cfg =3D {
> .flags =3D IS_ENABLED(CONFIG_TBOOT) ? XEN_DOMCTL_CDF_s3_integrity : 0,
> .max_evtchn_port =3D -1,
> @@ -1020,20 +1040,24 @@ static struct domain *__init create_dom0(struct b=
oot_info bi)
> if ( alloc_dom0_vcpu0(d) =3D=3D NULL )
> panic("Error creating %pd vcpu 0\n", d);
>=20
> - / Grab the DOM0 command line. */
> - if ( bd->kernel->cmdline_pa || bi->kextra )
>=20
> + cmdline_size =3D domain_cmdline_size(bi, bd);
> + if ( cmdline_size )
> {
> + if ( !(cmdline =3D xzalloc_array(char, cmdline_size)) )
> + panic("Error allocating cmdline buffer for %pd\n", d);
> +
> if ( bd->kernel->cmdline_pa )
>=20
> - safe_strcpy(cmdline,
> - cmdline_cook(__va(bd->kernel->cmdline_pa), bi->loader));
>=20
> + strlcpy(cmdline,
> + cmdline_cook(__va(bd->kernel->cmdline_pa), bi->loader),
>=20
> + cmdline_size);
>=20
> if ( bi->kextra )
>=20
> /* kextra always includes exactly one leading space. */
> - safe_strcat(cmdline, bi->kextra);
>=20
> + strlcat(cmdline, bi->kextra, cmdline_size);
>=20
>=20
> /* Append any extra parameters. */
> if ( skip_ioapic_setup && !strstr(cmdline, "noapic") )
> - safe_strcat(cmdline, " noapic");
> + strlcat(cmdline, " noapic", cmdline_size);
>=20
> if ( (strlen(acpi_param) =3D=3D 0) && acpi_disabled )
> {
> @@ -1043,17 +1067,19 @@ static struct domain *__init create_dom0(struct b=
oot_info *bi)
>=20
> if ( (strlen(acpi_param) !=3D 0) && !strstr(cmdline, "acpi=3D") )
> {
> - safe_strcat(cmdline, " acpi=3D");
> - safe_strcat(cmdline, acpi_param);
> + strlcat(cmdline, " acpi=3D", cmdline_size);
> + strlcat(cmdline, acpi_param, cmdline_size);
> }
> -
> - bd->kernel->cmdline_pa =3D __pa(cmdline);
>=20
> + bd->kernel->cmdline_pa =3D 0;
>=20
> + bd->cmdline =3D cmdline;
>=20
> }
>=20
> bd->d =3D d;
>=20
> if ( construct_dom0(bd) !=3D 0 )
> panic("Could not construct domain 0\n");
>=20
> + XFREE(cmdline);
> +
> return d;
> }
>=20
> --
> 2.43.0


From xen-devel-bounces@lists.xenproject.org Wed Apr 09 21:24:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 21:24:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.944685.1343064 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2cuG-0006eZ-4o; Wed, 09 Apr 2025 21:24:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 944685.1343064; Wed, 09 Apr 2025 21: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 1u2cuG-0006eS-26; Wed, 09 Apr 2025 21:24:24 +0000
Received: by outflank-mailman (input) for mailman id 944685;
 Wed, 09 Apr 2025 21:24: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=Ywx6=W3=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u2cuF-0006eM-5B
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 21:24:23 +0000
Received: from mail-4316.protonmail.ch (mail-4316.protonmail.ch [185.70.43.16])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0004bb12-1589-11f0-9ffb-bf95429c2676;
 Wed, 09 Apr 2025 23:24:20 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0004bb12-1589-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1744233859; x=1744493059;
	bh=NNcyo8kDcYxS8+puN0bNb5Cu7wasZNjqXmJX7AaVTaw=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=NuOBa6Y22X0w1BufCnc0di1lOq+Q425EZIcCxS5IgWsviLD91ouFLHXtca9O0nj6P
	 qElt6uJjJMwiEsCYZJo3xtfHagquIgzo6gWxT9XfMTqpkC8yjvajFWHHzlZ0kVNc/l
	 lth3SkkcOEjUJisGfR5+GvZiEhTxzz6ue40ckbxBGGdlBiwDOMrRd+rOxpDgQTxAlJ
	 g7bseXYOAbqx+twU7fnQSJM0xDF371KAmCZts5O349NnUKYlom6ByJQZO9BszTrSkK
	 SofCP2Gbw7QWbAXV6izb+DZcbRvyiON24hMCdL0QJ8FSEtBBg+1KBz7QCXX7BV4b90
	 3Rv7xTSn9V2Zw==
Date: Wed, 09 Apr 2025 21:24:17 +0000
To: Alejandro Vallejo <agarciav@amd.com>
From: Denis Mukhin <dmkhn@proton.me>
Cc: xen-devel@lists.xenproject.org, "Daniel P. Smith" <dpsmith@apertussolutions.com>, Jason Andryuk <jason.andryuk@amd.com>, Xenia Ragiadakou <xenia.ragiadakou@amd.com>, Stefano Stabellini <sstabellini@kernel.org>, Michal Orzel <michal.orzel@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>
Subject: Re: [PATCH v3 09/16] x86/hyperlaunch: locate dom0 kernel with hyperlaunch
Message-ID: <DSF977mG3NYzAt3ivBQ4eG8vpcpUtHkruh1kwWNMEpmV4YretAAOz5B3bIdJox_2MxVZvoKvrQ3Xwx8z_MMHHM-lj7JYUx00v79nQcuu6ic=@proton.me>
In-Reply-To: <20250408160802.49870-10-agarciav@amd.com>
References: <20250408160802.49870-1-agarciav@amd.com> <20250408160802.49870-10-agarciav@amd.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 450b7fad8347c67a6fefd139e05201d1154eb018
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Tuesday, April 8th, 2025 at 9:07 AM, Alejandro Vallejo <agarciav@amd.com=
> wrote:

>=20
>=20
> From: "Daniel P. Smith" dpsmith@apertussolutions.com
>=20
>=20
> Look for a subnode of type `multiboot,kernel` within a domain node. If
> found, locate it using the multiboot module helper to generically ensure
> it lives in the module list. If the bootargs property is present and
> there was not an MB1 string, then use the command line from the device
> tree definition.
>=20
> Signed-off-by: Daniel P. Smith dpsmith@apertussolutions.com
>=20
> Signed-off-by: Jason Andryuk jason.andryuk@amd.com
>=20
> Signed-off-by: Alejandro Vallejo agarciav@amd.com
>=20
> ---
> v3:
> * Add const to fdt
> * Remove idx =3D=3D NULL checks
> * Add BUILD_BUG_ON for MAX_NR_BOOTMODS fitting in a uint32_t
> * Remove trailing ) from printks
> * Return ENODATA for missing kernel
> * Re-work "max domains" warning and print limit
> * fdt_cell_as_u32/directly return values
> * Remove "pairs" looping from fdt_get_reg_prop() and only grab 1.
> * Use addr_cells and size_cells
> ---
> xen/arch/x86/domain-builder/core.c | 11 ++++++
> xen/arch/x86/domain-builder/fdt.c | 57 ++++++++++++++++++++++++++++++
> xen/arch/x86/setup.c | 5 ---
> 3 files changed, 68 insertions(+), 5 deletions(-)
>=20
> diff --git a/xen/arch/x86/domain-builder/core.c b/xen/arch/x86/domain-bui=
lder/core.c
> index c50eff34fb..eda7fa7a8f 100644
> --- a/xen/arch/x86/domain-builder/core.c
> +++ b/xen/arch/x86/domain-builder/core.c
> @@ -59,6 +59,17 @@ void __init builder_init(struct boot_info *bi)
>=20
> printk(XENLOG_INFO " Number of domains: %d\n", bi->nr_domains);
>=20
> }
> + else
> + {
> + unsigned int i;
> +
> + /* Find first unknown boot module to use as Dom0 kernel */
> + printk("Falling back to using first boot module as dom0\n");
> + i =3D first_boot_module_index(bi, BOOTMOD_UNKNOWN);
> + bi->mods[i].type =3D BOOTMOD_KERNEL;
>=20
> + bi->domains[0].kernel =3D &bi->mods[i];
>=20
> + bi->nr_domains =3D 1;
>=20
> + }
> }
>=20
> /*
> diff --git a/xen/arch/x86/domain-builder/fdt.c b/xen/arch/x86/domain-buil=
der/fdt.c
> index 9ebc8fd0e4..a037c8b6cb 100644
> --- a/xen/arch/x86/domain-builder/fdt.c
> +++ b/xen/arch/x86/domain-builder/fdt.c
> @@ -155,6 +155,52 @@ int __init fdt_read_multiboot_module(const void *fdt=
, int node,
> return idx;
> }
>=20
> +static int __init process_domain_node(
> + struct boot_info *bi, const void *fdt, int dom_node)
> +{
> + int node;
> + struct boot_domain *bd =3D &bi->domains[bi->nr_domains];
>=20
> + const char *name =3D fdt_get_name(fdt, dom_node, NULL) ?: "unknown";
> + int address_cells =3D fdt_address_cells(fdt, dom_node);
> + int size_cells =3D fdt_size_cells(fdt, dom_node);
> +
> + fdt_for_each_subnode(node, fdt, dom_node)
> + {
> + if ( fdt_node_check_compatible(fdt, node, "multiboot,kernel") =3D=3D 0 =
)
> + {
> + int idx;
> +
> + if ( bd->kernel )
>=20
> + {
> + printk(XENLOG_ERR "Duplicate kernel module for domain %s\n",

Looks like it should be XENLOG_WARNING since the loop continues.

Also, I would use either Capitalized or lower case messages everywhere
for consistency.

> + name);
> + continue;
> + }
> +
> + idx =3D fdt_read_multiboot_module(fdt, node, address_cells,
> + size_cells, bi);
> + if ( idx < 0 )
> + {
> + printk(" failed processing kernel module for domain %s\n",

I think this printout should have XENLOG_ERR in it since it's on the
error code path.

> + name);
> + return idx;
> + }
> +
> + printk(" kernel: boot module %d\n", idx);
> + bi->mods[idx].type =3D BOOTMOD_KERNEL;
>=20
> + bd->kernel =3D &bi->mods[idx];
>=20
> + }
> + }
> +
> + if ( !bd->kernel )
>=20
> + {
> + printk(XENLOG_ERR "ERR: no kernel assigned to domain\n");

Drop "ERR" since it is already XENLOG_ERR level?

> + return -ENODATA;
> + }
> +
> + return 0;
> +}
> +
> static int __init find_hyperlaunch_node(const void *fdt)
> {
> int hv_node =3D fdt_path_offset(fdt, "/chosen/hypervisor");
> @@ -217,9 +263,20 @@ int __init walk_hyperlaunch_fdt(struct boot_info *bi=
)
>=20
> fdt_for_each_subnode(node, fdt, hv_node)
> {
> + if ( bi->nr_domains >=3D MAX_NR_BOOTDOMS )
>=20
> + {
> + printk(XENLOG_WARNING
> + "WARN: only creating first %u domains\n", MAX_NR_BOOTDOMS);

Drop "WARN" since it is already XENLOG_WARNING level?

> + break;
> + }
> +
> ret =3D fdt_node_check_compatible(fdt, node, "xen,domain");
> if ( ret =3D=3D 0 )
> + {
> + if ( (ret =3D process_domain_node(bi, fdt, node)) < 0 )
> + break;
> bi->nr_domains++;
>=20
> + }
> }
>=20
> /* Until multi-domain construction is added, throw an error /
> diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
> index e5d78bcb48..00e8c8a2a3 100644
> --- a/xen/arch/x86/setup.c
> +++ b/xen/arch/x86/setup.c
> @@ -1284,11 +1284,6 @@ void asmlinkage __init noreturn __start_xen(void)
>=20
> builder_init(bi);
>=20
> - / Find first unknown boot module to use as Dom0 kernel */
> - i =3D first_boot_module_index(bi, BOOTMOD_UNKNOWN);
> - bi->mods[i].type =3D BOOTMOD_KERNEL;
>=20
> - bi->domains[0].kernel =3D &bi->mods[i];
>=20
> -
> if ( pvh_boot )
> {
> /* pvh_init() already filled in e820_raw */
> --
> 2.43.0


From xen-devel-bounces@lists.xenproject.org Wed Apr 09 22:04:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 22:04:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.944705.1343074 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2dX4-0007yF-3o; Wed, 09 Apr 2025 22:04:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 944705.1343074; Wed, 09 Apr 2025 22: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 1u2dX3-0007y8-Vx; Wed, 09 Apr 2025 22:04:29 +0000
Received: by outflank-mailman (input) for mailman id 944705;
 Wed, 09 Apr 2025 22: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=Ywx6=W3=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u2dX1-0007xm-7N
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 22:04:28 +0000
Received: from mail-10630.protonmail.ch (mail-10630.protonmail.ch
 [79.135.106.30]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 978a4dff-158e-11f0-9ffb-bf95429c2676;
 Thu, 10 Apr 2025 00:04:22 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 978a4dff-158e-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1744236260; x=1744495460;
	bh=UCEjU4LYeZJUAIjRezYVfPl42oqlC4FDWYN2cs84d3o=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=Kj2oq4ixsL92YtOJE9uNModcTySE/OeA1cI3JKBy4HxI93i1RsJmziA3TKvalZmx2
	 m35y4bVbFWFYHe7Uh9/jJP3eaEiqx4PHS0cM+Zb+X2sAW+r89QeTerf+gAIwq0BeDY
	 k7WBlbkrpmuR25p+NV3lxLK78c2h2WR/m4HY+ldcqV7waPGT2qVa7JG1QQI3UWYLGb
	 PyqXNUPVInKQRGInHTpgPHIEve5lTm932h1uJwothU15/80p8PTRVZMc1IHQWHGyfi
	 m0UTNrb6D+1rt1pEJFWTcFUNPfV/WHJW4zXFSWIZm+k/Q1GtaXw0NhIoCOr3t3FRdi
	 shcV5tDrxTN6A==
Date: Wed, 09 Apr 2025 22:04:16 +0000
To: Alejandro Vallejo <agarciav@amd.com>
From: Denis Mukhin <dmkhn@proton.me>
Cc: xen-devel@lists.xenproject.org, "Daniel P. Smith" <dpsmith@apertussolutions.com>, Jason Andryuk <jason.andryuk@amd.com>, Xenia Ragiadakou <xenia.ragiadakou@amd.com>, Stefano Stabellini <sstabellini@kernel.org>, Michal Orzel <michal.orzel@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>, Julien Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>
Subject: Re: [PATCH v3 10/16] x86/hyperlaunch: obtain cmdline from device tree
Message-ID: <AOApTL7inEgfBXUrdPTzjM3e6XyK-nDlfQz5j7gpcrOIHEJfLC9sXSTgbSthCSkzDqjRK8vAY-_5yDSXiKSEnEkoBvDIvCU9Rw-ZbsIZRh4=@proton.me>
In-Reply-To: <20250408160802.49870-11-agarciav@amd.com>
References: <20250408160802.49870-1-agarciav@amd.com> <20250408160802.49870-11-agarciav@amd.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 4af21ed900d1d49df64e3e211c203977d4f56f8d
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Tuesday, April 8th, 2025 at 9:07 AM, Alejandro Vallejo <agarciav@amd.com=
> wrote:

>=20
>=20
> From: "Daniel P. Smith" dpsmith@apertussolutions.com
>=20
>=20
> Add support to read the command line from the hyperlauunch device tree.
> The device tree command line is located in the "bootargs" property of the
> "multiboot,kernel" node.
>=20
> A boot loader command line, e.g. a grub module string field, takes
> precendence ove the device tree one since it is easier to modify.
>=20
> Signed-off-by: Daniel P. Smith dpsmith@apertussolutions.com
>=20
> Signed-off-by: Jason Andryuk jason.andryuk@amd.com
>=20
> ---
> v3:
> * Rename to fdt_get_prop_offset()
> * Remove size_t cast from builder_get_cmdline_size()
> * fdt_get_prop_offset() use strcmp()
> * fdt_get_prop_offset() return bool
> ---
> xen/arch/x86/domain-builder/core.c | 28 +++++++++++++++++++++++
> xen/arch/x86/domain-builder/fdt.c | 6 +++++
> xen/arch/x86/domain-builder/fdt.h | 25 ++++++++++++++++++++
> xen/arch/x86/include/asm/bootinfo.h | 6 +++--
> xen/arch/x86/include/asm/domain-builder.h | 4 ++++
> xen/arch/x86/setup.c | 12 +++++++---
> xen/include/xen/libfdt/libfdt-xen.h | 23 +++++++++++++++++++
> 7 files changed, 99 insertions(+), 5 deletions(-)
>=20
> diff --git a/xen/arch/x86/domain-builder/core.c b/xen/arch/x86/domain-bui=
lder/core.c
> index eda7fa7a8f..510a74a675 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>
>=20
>=20
> #include <asm/bootinfo.h>
>=20
> +#include <asm/setup.h>
>=20
>=20
> #include "fdt.h"
>=20
> +size_t __init builder_get_cmdline_size(struct boot_info *bi, int offset)
> +{
> +#ifdef CONFIG_DOMAIN_BUILDER
> + const void *fdt =3D bootstrap_map_bm(&bi->mods[HYPERLAUNCH_MODULE_IDX])=
;
>=20
> + int size =3D fdt_cmdline_prop_size(fdt, offset);
> +
> + bootstrap_unmap();
> + return size < 0 ? 0 : 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 =3D bootstrap_map_bm(&bi->mods[HYPERLAUNCH_MODULE_IDX])=
;
>=20
> + int ret =3D 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-buil=
der/fdt.c
> index a037c8b6cb..bc9903a9de 100644
> --- a/xen/arch/x86/domain-builder/fdt.c
> +++ b/xen/arch/x86/domain-builder/fdt.c
> @@ -189,6 +189,12 @@ static int __init process_domain_node(
> printk(" kernel: boot module %d\n", idx);
> bi->mods[idx].type =3D BOOTMOD_KERNEL;
>=20
> bd->kernel =3D &bi->mods[idx];
>=20
> +
> + /* If bootloader didn't set cmdline, see if FDT provides one. */
> + if ( bd->kernel->cmdline_pa &&
>=20
> + !((char *)__va(bd->kernel->cmdline_pa))[0] )
>=20
> + bd->kernel->fdt_cmdline =3D fdt_get_prop_offset(
>=20
> + fdt, node, "bootargs", &bd->kernel->cmdline_pa);
>=20
> }
> }
>=20
> diff --git a/xen/arch/x86/domain-builder/fdt.h b/xen/arch/x86/domain-buil=
der/fdt.h
> index e8769dc51c..91f665c8fd 100644
> --- a/xen/arch/x86/domain-builder/fdt.h
> +++ b/xen/arch/x86/domain-builder/fdt.h
> @@ -12,6 +12,31 @@ struct boot_info;
> #define HYPERLAUNCH_MODULE_IDX 0
>=20
> #ifdef CONFIG_DOMAIN_BUILDER
> +
> +static inline int __init fdt_cmdline_prop_size(const void *fdt, int offs=
et)
> +{
> + 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 =3D
> + fdt_get_property_by_offset(fdt, offset, &ret);
> +
> + if ( ret < 0 )
> + return ret;
> +
> + ASSERT(size > ret);
>=20
> +
> + return strlcpy(cmdline, prop->data, ret);
>=20
> +}
> +
> int has_hyperlaunch_fdt(const 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/a=
sm/bootinfo.h
> index 1e3d582e45..5b2c93b1ef 100644
> --- a/xen/arch/x86/include/asm/bootinfo.h
> +++ b/xen/arch/x86/include/asm/bootinfo.h
> @@ -35,11 +35,13 @@ struct boot_module {
>=20
> /
> * 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;
>=20
> /
> * A boot module may need decompressing by Xen. Headroom is an estimate of
> diff --git a/xen/arch/x86/include/asm/domain-builder.h b/xen/arch/x86/inc=
lude/asm/domain-builder.h
> index b6d9ba94de..7518b6ddf3 100644
> --- a/xen/arch/x86/include/asm/domain-builder.h
> +++ b/xen/arch/x86/include/asm/domain-builder.h
> @@ -3,6 +3,10 @@
>=20
> struct boot_info;
>=20
> +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);
>=20
> #endif
> diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
> index 00e8c8a2a3..ca4415d020 100644
> --- a/xen/arch/x86/setup.c
> +++ b/xen/arch/x86/setup.c
> @@ -984,7 +984,10 @@ static size_t __init domain_cmdline_size(
> {
> size_t s =3D bi->kextra ? strlen(bi->kextra) : 0;
>=20
>=20
> - s +=3D bd->kernel->cmdline_pa ? strlen(__va(bd->kernel->cmdline_pa)) : =
0;
>=20
> + if ( bd->kernel->fdt_cmdline )
>=20
> + s +=3D builder_get_cmdline_size(bi, bd->kernel->cmdline_pa);
>=20
> + else
> + s +=3D strlen(__va(bd->kernel->cmdline_pa));
>=20
>=20
> if ( s =3D=3D 0 )
> return s;
> @@ -1047,9 +1050,12 @@ static struct domain *__init create_dom0(struct bo=
ot_info *bi)
> if ( !(cmdline =3D xzalloc_array(char, cmdline_size)) )
> panic("Error allocating cmdline buffer for %pd\n", d);
>=20
> - if ( bd->kernel->cmdline_pa )
>=20
> + if ( bd->kernel->fdt_cmdline )
>=20
> + builder_get_cmdline(
> + bi, bd->kernel->cmdline_pa, cmdline, cmdline_size);
>=20
> + else
> strlcpy(cmdline,
> - cmdline_cook(__va(bd->kernel->cmdline_pa), bi->loader),
>=20
> + cmdline_cook(__va(bd->kernel->cmdline_pa),bi->loader),

Add extra space before bi->loader?

>=20
> cmdline_size);
>=20
> if ( bi->kextra )
>=20
> diff --git a/xen/include/xen/libfdt/libfdt-xen.h b/xen/include/xen/libfdt=
/libfdt-xen.h
> index 2259c09a6a..e473fbaf0c 100644
> --- a/xen/include/xen/libfdt/libfdt-xen.h
> +++ b/xen/include/xen/libfdt/libfdt-xen.h
> @@ -23,6 +23,29 @@ static inline uint64_t __init fdt_cell_as_u64(const fd=
t32_t *cell)
> return ((uint64_t)fdt32_to_cpu(cell[0]) << 32) | fdt32_to_cpu(cell[1]);
> }
>=20
> +static inline bool __init fdt_get_prop_offset(
> + const void *fdt, int node, const char *name, unsigned long *offset)
> +{
> + int ret, poffset;
> + const char *pname;
> +
> + fdt_for_each_property_offset(poffset, fdt, node)
> + {
> + fdt_getprop_by_offset(fdt, poffset, &pname, &ret);

Return value is not checked.

> +
> + if ( ret < 0 )
> + continue;
> +
> + if ( strcmp(pname, name) =3D=3D 0 )

I got an impression that the preferred form is=20
   if ( !strcmp(pname, name) )

> + {
> + offset =3D poffset;
> + return true;
> + }
> + }
> +
> + return false;
> +}
> +
> /
> * Property: reg
> *
> --
> 2.43.0


From xen-devel-bounces@lists.xenproject.org Wed Apr 09 22:07:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 22:07:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.944717.1343084 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2dZs-0008VN-Ge; Wed, 09 Apr 2025 22:07:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 944717.1343084; Wed, 09 Apr 2025 22:07:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2dZs-0008VG-DZ; Wed, 09 Apr 2025 22:07:24 +0000
Received: by outflank-mailman (input) for mailman id 944717;
 Wed, 09 Apr 2025 22:07:24 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Ywx6=W3=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u2dZs-0008V3-1m
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 22:07:24 +0000
Received: from mail-4316.protonmail.ch (mail-4316.protonmail.ch [185.70.43.16])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 01f7cb67-158f-11f0-9ffb-bf95429c2676;
 Thu, 10 Apr 2025 00:07:20 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 01f7cb67-158f-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1744236439; x=1744495639;
	bh=PNuIUhsAmMV6/d5Q6RNUKcnjFlmnkJduQNv20ezEKN8=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=GRE6BCcFFXV0+ULCceQLt7gGvgXfrTzOFs+dFoVmZN3uHVSQl7jSaXTuqfrQi5P9e
	 qBnUbreiUSCjME8FJ8FGPhDPQE08kN6Lpk5lmDPojxPpd/vdic1YUgZNOCP+YFgwZg
	 4UzWa3m4jkc3qFNdl6CG92cJZHu+Wlged1u3EE4b0utcVWnwRRqXfve7qPpJl6CgRu
	 aazGHimfkPeYVaje4Mz1j75PExu+3Uu54+MfVxi/8gOSqp+8h0xTlejJPJsckI1Dih
	 6rj06CdBjq0s0XrKYdYP3tf4LBMy8uZ64SUcdhcW9mF0dJaiZ/+EKW5pzR/ygruyVu
	 FAIKCq55MXZQA==
Date: Wed, 09 Apr 2025 22:07:13 +0000
To: Alejandro Vallejo <agarciav@amd.com>
From: Denis Mukhin <dmkhn@proton.me>
Cc: xen-devel@lists.xenproject.org, "Daniel P. Smith" <dpsmith@apertussolutions.com>, Jason Andryuk <jason.andryuk@amd.com>, Xenia Ragiadakou <xenia.ragiadakou@amd.com>, Stefano Stabellini <sstabellini@kernel.org>, Michal Orzel <michal.orzel@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>
Subject: Re: [PATCH v3 11/16] x86/hyperlaunch: locate dom0 initrd with hyperlaunch
Message-ID: <7yfsIOlu7485oxHgd2L0b32KqzOfx7cJg8-ZwVb41T2NljBamLliFUysp7IM4fSh-DvmZD1H-9Gh2pjpSdIrXkUbbo3pxRV3h3P2TglHJlA=@proton.me>
In-Reply-To: <20250408160802.49870-12-agarciav@amd.com>
References: <20250408160802.49870-1-agarciav@amd.com> <20250408160802.49870-12-agarciav@amd.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 8fd149f369090f74b21d3581e55e2525ca4e7619
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Tuesday, April 8th, 2025 at 9:07 AM, Alejandro Vallejo <agarciav@amd.com=
> wrote:

>=20
>=20
> From: "Daniel P. Smith" dpsmith@apertussolutions.com
>=20
>=20
> Look for a subnode of type `multiboot,ramdisk` within a domain node and
> parse via the fdt_read_multiboot_module() helper. After a successful
> helper call, the module index is returned and the module is guaranteed
> to be in the module list.
>=20
> Fix unused typo in adjacent comment.
>=20
> Signed-off-by: Daniel P. Smith dpsmith@apertussolutions.com
>=20
> Signed-off-by: Jason Andryuk jason.andryuk@amd.com
>=20
> Signed-off-by: Alejandro Vallejo agarciav@amd.com
>=20
> ---
> v3:
> * Reworded commit message to state the helper postconditions.
> * Wrapped long line
> * Fix ramdisk -> module rename
>=20
> * Move ramdisk parsing from later patch
> * Remove initrdidx indent
> ---
> xen/arch/x86/domain-builder/fdt.c | 29 +++++++++++++++++++++++++++++
> xen/arch/x86/setup.c | 4 ++--
> 2 files changed, 31 insertions(+), 2 deletions(-)
>=20
> diff --git a/xen/arch/x86/domain-builder/fdt.c b/xen/arch/x86/domain-buil=
der/fdt.c
> index bc9903a9de..0f5fd01557 100644
> --- a/xen/arch/x86/domain-builder/fdt.c
> +++ b/xen/arch/x86/domain-builder/fdt.c
> @@ -195,6 +195,35 @@ static int __init process_domain_node(
> !((char *)__va(bd->kernel->cmdline_pa))[0] )
>=20
> bd->kernel->fdt_cmdline =3D fdt_get_prop_offset(
>=20
> fdt, node, "bootargs", &bd->kernel->cmdline_pa);
>=20
> +
> + continue;
> + }
> + else if ( fdt_node_check_compatible(fdt, node,
> + "multiboot,ramdisk") =3D=3D 0 )
> + {
> + int idx;
> +
> + if ( bd->module )
>=20
> + {
> + printk(XENLOG_ERR "Duplicate ramdisk module for domain %s)\n",

I would start the message with lower case so it is consistent with the othe=
r one.

> + name);
> + continue;
> + }
> +
> + idx =3D fdt_read_multiboot_module(fdt, node, address_cells,
> + size_cells,bi);
> + if ( idx < 0 )
> + {
> + printk(" failed processing ramdisk module for domain %s\n",
> + name);

Prepend the log message with XENLOG_ERR ?

> + return -EINVAL;
> + }
> +
> + printk(" ramdisk: boot module %d\n", idx);
> + bi->mods[idx].type =3D BOOTMOD_RAMDISK;
>=20
> + bd->module =3D &bi->mods[idx];
>=20
> +
> + continue;
> }
> }
>=20
> diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
> index ca4415d020..3dfa81b48c 100644
> --- a/xen/arch/x86/setup.c
> +++ b/xen/arch/x86/setup.c
> @@ -2149,11 +2149,11 @@ void asmlinkage __init noreturn __start_xen(void)
> * 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 init=
rd
> + * any remaining unclaimed boot modules, and report them as unused initr=
d
> * candidates.
> */
> initrdidx =3D first_boot_module_index(bi, BOOTMOD_UNKNOWN);
> - if ( initrdidx < MAX_NR_BOOTMODS )
> + if ( !bi->hyperlaunch_enabled && initrdidx < MAX_NR_BOOTMODS )
>=20
> {
> bi->mods[initrdidx].type =3D BOOTMOD_RAMDISK;
>=20
> bi->domains[0].module =3D &bi->mods[initrdidx];
>=20
> --
> 2.43.0


From xen-devel-bounces@lists.xenproject.org Wed Apr 09 22:15:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 22:15:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.944731.1343093 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2dhe-0002rk-7e; Wed, 09 Apr 2025 22:15:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 944731.1343093; Wed, 09 Apr 2025 22:15: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 1u2dhe-0002rd-4c; Wed, 09 Apr 2025 22:15:26 +0000
Received: by outflank-mailman (input) for mailman id 944731;
 Wed, 09 Apr 2025 22:15: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=Ywx6=W3=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u2dhd-0002rX-BO
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 22:15:25 +0000
Received: from mail-24416.protonmail.ch (mail-24416.protonmail.ch
 [109.224.244.16]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 20b8d06b-1590-11f0-9eab-5ba50f476ded;
 Thu, 10 Apr 2025 00:15:21 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 20b8d06b-1590-11f0-9eab-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1744236921; x=1744496121;
	bh=jeqCwqalJSPMaR0Xhvw51Ys30KIthxLHnNwjUYleNxA=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=YftAORGUqR3Ech0ajTk2icv8X8lgVAunbtRgbeMc/F+0JHD7MBLPymoJalYekk+P/
	 AEpQTvNfFtYqGOGxFl00SKv05vy9f4HfqC3btTSmff2h1Sh/Pz33ZLUctDWpXlh/9M
	 cqSqUKHxBBO0FF+TkJDrUQPfDYnxF4QZGAnHbIh1v6UFc+pyI0Qu82zYjEfehW9/w6
	 QU4kRFypbZxIiAHlvSzYJ9U2i2veudIuWE4IWyBGAkcQA3kek/+uuIaSjeRLJGPt+7
	 4r2gvfpp7OnwH3QguU262UW/JbQdxzxmcMzPN9vEiyHiHsmV39GMunosc/DIgmVLmn
	 QQBxGvJw5JJ6w==
Date: Wed, 09 Apr 2025 22:15:18 +0000
To: Alejandro Vallejo <agarciav@amd.com>
From: Denis Mukhin <dmkhn@proton.me>
Cc: xen-devel@lists.xenproject.org, "Daniel P. Smith" <dpsmith@apertussolutions.com>, Jason Andryuk <jason.andryuk@amd.com>, Xenia Ragiadakou <xenia.ragiadakou@amd.com>, Stefano Stabellini <sstabellini@kernel.org>, Michal Orzel <michal.orzel@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>, Julien Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>
Subject: Re: [PATCH v3 12/16] x86/hyperlaunch: add domain id parsing to domain config
Message-ID: <tRYKTDKcoIBHId12LOD4EHCmAF-AN3V3PmkMqmyIjYCqQJ3TS_0ctt3WMCq1Ez3W7oIGxwU3UsAioyP9T9fMCO78_61AI01oYEknYF_h1_I=@proton.me>
In-Reply-To: <20250408160802.49870-13-agarciav@amd.com>
References: <20250408160802.49870-1-agarciav@amd.com> <20250408160802.49870-13-agarciav@amd.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: b809612eb6f56e3c5894e96c1e9cd261539d1355
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Tuesday, April 8th, 2025 at 9:07 AM, Alejandro Vallejo <agarciav@amd.com=
> wrote:

>=20
>=20
> From: "Daniel P. Smith" dpsmith@apertussolutions.com
>=20
>=20
> 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.
>=20
> Signed-off-by: Daniel P. Smith dpsmith@apertussolutions.com
>=20
> ---
> v3:
> * Remove ramdisk parsing
> * Add missing xen/errno.h include
> ---
> xen/arch/x86/domain-builder/fdt.c | 39 ++++++++++++++++++++++++++++-
> xen/arch/x86/setup.c | 5 ++--
> xen/include/xen/libfdt/libfdt-xen.h | 11 ++++++++
> 3 files changed, 52 insertions(+), 3 deletions(-)
>=20
> diff --git a/xen/arch/x86/domain-builder/fdt.c b/xen/arch/x86/domain-buil=
der/fdt.c
> index 0f5fd01557..4c6aafe195 100644
> --- a/xen/arch/x86/domain-builder/fdt.c
> +++ b/xen/arch/x86/domain-builder/fdt.c
> @@ -8,6 +8,7 @@
> #include <xen/libfdt/libfdt.h>
>=20
>=20
> #include <asm/bootinfo.h>
>=20
> +#include <asm/guest.h>
>=20
> #include <asm/page.h>
>=20
> #include <asm/setup.h>
>=20
>=20
> @@ -158,12 +159,42 @@ int __init fdt_read_multiboot_module(const void *fd=
t, int node,
> static int __init process_domain_node(
> struct boot_info *bi, const void *fdt, int dom_node)
> {
> - int node;
> + int node, property;
> struct boot_domain *bd =3D &bi->domains[bi->nr_domains];
>=20
> const char *name =3D fdt_get_name(fdt, dom_node, NULL) ?: "unknown";
> int address_cells =3D fdt_address_cells(fdt, dom_node);
> int size_cells =3D fdt_size_cells(fdt, dom_node);
>=20
> + fdt_for_each_property_offset(property, fdt, dom_node)
> + {
> + const struct fdt_property *prop;
> + const char prop_name;
> + int name_len;
> +
> + prop =3D fdt_get_property_by_offset(fdt, property, NULL);
> + if ( !prop )
> + continue; / silently skip */
> +
> + prop_name =3D fdt_get_string(fdt, fdt32_to_cpu(prop->nameoff), &name_le=
n);
>=20
> +
> + if ( strncmp(prop_name, "domid", name_len) =3D=3D 0 )
> + {
> + uint32_t val =3D DOMID_INVALID;
> + if ( fdt_prop_as_u32(prop, &val) !=3D 0 )
> + {
> + printk(" failed processing domain id for domain %s\n", name);

Add XENLOG_ERR ?

> + return -EINVAL;
> + }
> + if ( val >=3D DOMID_FIRST_RESERVED )
>=20
> + {
> + printk(" invalid domain id for domain %s\n", name);

Add XENLOG_ERR ?

> + return -EINVAL;
> + }
> + bd->domid =3D (domid_t)val;
>=20
> + printk(" domid: %d\n", bd->domid);
>=20
> + }
> + }
> +
> fdt_for_each_subnode(node, fdt, dom_node)
> {
> if ( fdt_node_check_compatible(fdt, node, "multiboot,kernel") =3D=3D 0 )
> @@ -233,6 +264,12 @@ static int __init process_domain_node(
> return -ENODATA;
> }
>=20
> + if ( bd->domid =3D=3D DOMID_INVALID )
>=20
> + bd->domid =3D get_initial_domain_id();
>=20
> + else if ( bd->domid !=3D get_initial_domain_id() )
>=20
> + printk(XENLOG_WARNING
> + "WARN: Booting without initial domid not supported.\n");

Drop WARN since the log message is XENLOG_WARNING level already?

> +
> return 0;
> }
>=20
> diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
> index 3dfa81b48c..db7280225e 100644
> --- a/xen/arch/x86/setup.c
> +++ b/xen/arch/x86/setup.c
> @@ -1033,8 +1033,9 @@ static struct domain *__init create_dom0(struct boo=
t_info bi)
> if ( iommu_enabled )
> dom0_cfg.flags |=3D XEN_DOMCTL_CDF_iommu;
>=20
> - / Create initial domain. Not d0 for pvshim. */
> - bd->domid =3D get_initial_domain_id();
>=20
> + if ( bd->domid =3D=3D DOMID_INVALID )
>=20
> + /* Create initial domain. Not d0 for pvshim. */
> + bd->domid =3D get_initial_domain_id();
>=20
> d =3D domain_create(bd->domid, &dom0_cfg, pv_shim ? 0 : CDF_privileged);
>=20
> if ( IS_ERR(d) )
> panic("Error creating d%u: %ld\n", bd->domid, PTR_ERR(d));
>=20
> diff --git a/xen/include/xen/libfdt/libfdt-xen.h b/xen/include/xen/libfdt=
/libfdt-xen.h
> index e473fbaf0c..3031bec90e 100644
> --- a/xen/include/xen/libfdt/libfdt-xen.h
> +++ b/xen/include/xen/libfdt/libfdt-xen.h
> @@ -12,6 +12,7 @@
> #define LIBFDT_XEN_H
>=20
> #include <xen/libfdt/libfdt.h>
>=20
> +#include <xen/errno.h>
>=20
>=20
> static inline int __init fdt_cell_as_u32(const fdt32_t *cell)
> {
> @@ -23,6 +24,16 @@ static inline uint64_t __init fdt_cell_as_u64(const fd=
t32_t *cell)
> return ((uint64_t)fdt32_to_cpu(cell[0]) << 32) | fdt32_to_cpu(cell[1]);
> }
>=20
> +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) )
>=20
> + return -EINVAL;
> +
> + *val =3D fdt_cell_as_u32((fdt32_t *)prop->data);
>=20
> + return 0;
> +}
> +
> static inline bool __init fdt_get_prop_offset(
> const void *fdt, int node, const char *name, unsigned long *offset)
> {
> --
> 2.43.0


From xen-devel-bounces@lists.xenproject.org Wed Apr 09 22:24:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 22:24:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.944744.1343105 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2dqi-0005fr-64; Wed, 09 Apr 2025 22:24:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 944744.1343105; Wed, 09 Apr 2025 22: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 1u2dqh-0005fk-WA; Wed, 09 Apr 2025 22:24:47 +0000
Received: by outflank-mailman (input) for mailman id 944744;
 Wed, 09 Apr 2025 22:24: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=Ywx6=W3=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u2dqf-0005fe-F5
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 22:24:46 +0000
Received: from mail-24416.protonmail.ch (mail-24416.protonmail.ch
 [109.224.244.16]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6f137545-1591-11f0-9ffb-bf95429c2676;
 Thu, 10 Apr 2025 00:24:43 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6f137545-1591-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=r2vywgm525fbfgj4b3ozb7p33a.protonmail; t=1744237481; x=1744496681;
	bh=7bBwzYfBsLxZwTZZxLQYXiMT1FEp0YZdK1R7rHBQVes=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=a1gxk0NkcyPxCdEsRUTAr+7BKqZ4U9tT8lkb5mr8Bx6rUH59Y2AJ0DlXRwas9+euC
	 JUyWa3HZeSxp3pUuWDKhMcLvB4Hk5SjiwtTDwiN99qIlUSVAXb7bT5KzCi12ONtX9W
	 rXss0s+ZqVmIr8ctB2vCk53DWXjx/4UKQlDmw7XxRrPp0q176T5jNbd3geUJxTcUAz
	 el18YfDYQFU8We1jeNm6tytro+DCipGLuULj/aQMahXA/A9q3uzGq28gVf7vZvBLSI
	 GDrEZAmmHf8Fw24pgh4etpX2SreHIQ0DFpgicmRoMjCTZjavgi+fNSZXOVckuqq5Fn
	 3MisVMBVjcTkw==
Date: Wed, 09 Apr 2025 22:24:36 +0000
To: Alejandro Vallejo <agarciav@amd.com>
From: Denis Mukhin <dmkhn@proton.me>
Cc: xen-devel@lists.xenproject.org, "Daniel P. Smith" <dpsmith@apertussolutions.com>, Jason Andryuk <jason.andryuk@amd.com>, Xenia Ragiadakou <xenia.ragiadakou@amd.com>, Stefano Stabellini <sstabellini@kernel.org>, Michal Orzel <michal.orzel@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>
Subject: Re: [PATCH v3 13/16] x86/hyperlaunch: specify dom0 mode with device tree
Message-ID: <zz01k2KPjivL5-avbZJmfIKFKTodzbdL80XbXNBdrZP_7Kk9oips4Ox0aG-MYZUe74V8Rm5gHDbLjdUNlZLzmYD0MboIVY5XeUq_DmYXz6s=@proton.me>
In-Reply-To: <20250408160802.49870-14-agarciav@amd.com>
References: <20250408160802.49870-1-agarciav@amd.com> <20250408160802.49870-14-agarciav@amd.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 071d7e756c0c57185b32676e31b7e0b53658acf2
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Tuesday, April 8th, 2025 at 9:07 AM, Alejandro Vallejo <agarciav@amd.com=
> wrote:

>=20
>=20
> From: "Daniel P. Smith" dpsmith@apertussolutions.com
>=20
>=20
> Enable selecting the mode in which the domain will be built and ran. This
> includes:
>=20
> - 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)
>=20
> In the device tree, this will be represented as a bit map that will be ca=
rried
> through into struct boot_domain.
>=20
> Signed-off-by: Daniel P. Smith dpsmith@apertussolutions.com
>=20
> Reviewed-by: Jason Andryuk jason.andryuk@amd.com
>=20
> ---
> xen/arch/x86/domain-builder/fdt.c | 19 +++++++++++++++++++
> xen/arch/x86/include/asm/boot-domain.h | 5 +++++
> xen/arch/x86/setup.c | 3 ++-
> 3 files changed, 26 insertions(+), 1 deletion(-)
>=20
> diff --git a/xen/arch/x86/domain-builder/fdt.c b/xen/arch/x86/domain-buil=
der/fdt.c
> index 4c6aafe195..da65f6a5a0 100644
> --- a/xen/arch/x86/domain-builder/fdt.c
> +++ b/xen/arch/x86/domain-builder/fdt.c
> @@ -193,6 +193,25 @@ static int __init process_domain_node(
> bd->domid =3D (domid_t)val;
>=20
> printk(" domid: %d\n", bd->domid);
>=20
> }
> + else if ( strncmp(prop_name, "mode", name_len) =3D=3D 0 )
> + {
> + if ( fdt_prop_as_u32(prop, &bd->mode) !=3D 0 )
>=20
> + {
> + printk(" failed processing mode for domain %s\n", name);
> + return -EINVAL;
> + }
> +
> + printk(" mode: ");
> + if ( !(bd->mode & BUILD_MODE_PARAVIRT) )
>=20
> + {
> + if ( bd->mode & BUILD_MODE_ENABLE_DM )
>=20
> + printk("HVM\n");
> + else
> + printk("PVH\n");
> + }
> + else
> + printk("PV\n");
> + }
> }

I would re-write so the positive condition is processed first, e.g.:

    if ( bd->mode & BUILD_MODE_PARAVIRT )
        printk("PV\n");
    else if ( bd->mode & BUILD_MODE_ENABLE_DM )
        printk("HVM\n");
    else
        printk("PVH\n");

I think it will reduce indentation and make code block a bit easier to read=
.

Also, if there are more uses for printing string representation of a
boot module mode in the future, perhaps move it to a separate function?

What do you think?

>=20
> fdt_for_each_subnode(node, fdt, dom_node)
> diff --git a/xen/arch/x86/include/asm/boot-domain.h b/xen/arch/x86/includ=
e/asm/boot-domain.h
> index d7c6042e25..e316d4bcde 100644
> --- a/xen/arch/x86/include/asm/boot-domain.h
> +++ b/xen/arch/x86/include/asm/boot-domain.h
> @@ -13,6 +13,11 @@
> struct boot_domain {
> domid_t domid;
>=20
> + /* On | Off /
> +#define BUILD_MODE_PARAVIRT (1 << 0) / PV | PVH/HVM /
> +#define BUILD_MODE_ENABLE_DM (1 << 1) / HVM | PVH */
> + uint32_t mode;
> +
> struct boot_module *kernel;
> struct boot_module *module;
> const char *cmdline;
> diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
> index db7280225e..4127a0105d 100644
> --- a/xen/arch/x86/setup.c
> +++ b/xen/arch/x86/setup.c
> @@ -1020,7 +1020,8 @@ static struct domain *__init create_dom0(struct boo=
t_info *bi)
> struct boot_domain *bd =3D &bi->domains[0];
>=20
> struct domain *d;
>=20
> - if ( opt_dom0_pvh )
> + if ( opt_dom0_pvh ||
> + (bi->hyperlaunch_enabled && !(bd->mode & BUILD_MODE_PARAVIRT)) )
>=20
> {
> dom0_cfg.flags |=3D (XEN_DOMCTL_CDF_hvm |
> ((hvm_hap_supported() && !opt_dom0_shadow) ?
> --
> 2.43.0


From xen-devel-bounces@lists.xenproject.org Wed Apr 09 22:29:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 22:29:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.944760.1343113 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2dv5-0006Jw-M7; Wed, 09 Apr 2025 22:29:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 944760.1343113; Wed, 09 Apr 2025 22: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 1u2dv5-0006Jp-Jc; Wed, 09 Apr 2025 22:29:19 +0000
Received: by outflank-mailman (input) for mailman id 944760;
 Wed, 09 Apr 2025 22:29: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=Ywx6=W3=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u2dv4-0006Jj-A5
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 22:29:18 +0000
Received: from mail-10630.protonmail.ch (mail-10630.protonmail.ch
 [79.135.106.30]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 125a1dea-1592-11f0-9eab-5ba50f476ded;
 Thu, 10 Apr 2025 00:29:16 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 125a1dea-1592-11f0-9eab-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1744237754; x=1744496954;
	bh=mhw7ZsSkh6lIeuMTqjc2Q7GDlBRBQXHTLXk5zMbIhrA=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=BCVK0c49rQjaK2LBBk8PENjILXLJelyIajNqqIB7mUetLkrfgH/UL1FMEKjddUy5K
	 UDx1+K6eqmM41oz4XzOuywYspKYeS/rqeaHZSfmaOwKlEypGlKVZfn95kiLzX5CNYt
	 WjZECgTQNorCHgiBYKxc6yBb1F+drlUy4v87W26eOUKE3osQWs8ho9YZ47q0+swsw1
	 K7Dh4OiV2tiGFBDFRdKT9Mmk7GDWMXq/A6WM0QnvrG2zPfhmcn07MnUDU0Vrn/fcFa
	 TGtJE0Qu1wu5AfUcK/DXaYGbcQEek/wnaJcDnQ7tJ9J78sIyBsfFroLaS2KmMbLihR
	 ijdO97nqXwDmA==
Date: Wed, 09 Apr 2025 22:29:09 +0000
To: Alejandro Vallejo <agarciav@amd.com>
From: Denis Mukhin <dmkhn@proton.me>
Cc: xen-devel@lists.xenproject.org, "Daniel P. Smith" <dpsmith@apertussolutions.com>, Jason Andryuk <jason.andryuk@amd.com>, Xenia Ragiadakou <xenia.ragiadakou@amd.com>, Stefano Stabellini <sstabellini@kernel.org>, Michal Orzel <michal.orzel@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>, Julien Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>
Subject: Re: [PATCH v3 14/16] x86/hyperlaunch: add memory parsing to domain config
Message-ID: <TxTotB0Qk4oGMxQq7xnU0hcsO0Xa-v6515dblFbD6DVV7X4ZzKsjjNfi7t0jk0Uibpwq11d7rblyA09C47qJ_r7a0t698E4kNouT-iNwOqU=@proton.me>
In-Reply-To: <20250408160802.49870-15-agarciav@amd.com>
References: <20250408160802.49870-1-agarciav@amd.com> <20250408160802.49870-15-agarciav@amd.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 8d6577c7c2782f0583c81e383f72c88170ffc751
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Tuesday, April 8th, 2025 at 9:07 AM, Alejandro Vallejo <agarciav@amd.com=
> wrote:

>=20
>=20
> From: "Daniel P. Smith" dpsmith@apertussolutions.com
>=20
>=20
> Add three properties, memory, mem-min, and mem-max, to the domain node de=
vice
> tree parsing to define the memory allocation for a domain. All three fiel=
ds are
> expressed in kb and written as a u64 in the device tree entries.
>=20
> Signed-off-by: Daniel P. Smith dpsmith@apertussolutions.com
>=20
> Reviewed-by: Jason Andryuk jason.andryuk@amd.com
>=20
> ---
> xen/arch/x86/dom0_build.c | 8 ++++++
> xen/arch/x86/domain-builder/fdt.c | 34 ++++++++++++++++++++++++++
> xen/arch/x86/include/asm/boot-domain.h | 4 +++
> xen/include/xen/libfdt/libfdt-xen.h | 10 ++++++++
> 4 files changed, 56 insertions(+)
>=20
> diff --git a/xen/arch/x86/dom0_build.c b/xen/arch/x86/dom0_build.c
> index 0b467fd4a4..36fb090643 100644
> --- a/xen/arch/x86/dom0_build.c
> +++ b/xen/arch/x86/dom0_build.c
> @@ -627,6 +627,14 @@ int __init construct_dom0(const struct boot_domain b=
d)
>=20
> process_pending_softirqs();
>=20
> + / If param dom0_size was not set and HL config provided memory size */
> + if ( !get_memsize(&dom0_size, LONG_MAX) && bd->mem_pages )
>=20
> + dom0_size.nr_pages =3D bd->mem_pages;
>=20
> + if ( !get_memsize(&dom0_min_size, LONG_MAX) && bd->min_pages )
>=20
> + dom0_size.nr_pages =3D bd->min_pages;
>=20
> + if ( !get_memsize(&dom0_max_size, LONG_MAX) && bd->max_pages )
>=20
> + dom0_size.nr_pages =3D bd->max_pages;
>=20
> +
> if ( is_hvm_domain(d) )
> rc =3D 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-buil=
der/fdt.c
> index da65f6a5a0..338b4838c2 100644
> --- a/xen/arch/x86/domain-builder/fdt.c
> +++ b/xen/arch/x86/domain-builder/fdt.c
> @@ -6,6 +6,7 @@
> #include <xen/init.h>
>=20
> #include <xen/lib.h>
>=20
> #include <xen/libfdt/libfdt.h>
>=20
> +#include <xen/sizes.h>
>=20
>=20
> #include <asm/bootinfo.h>
>=20
> #include <asm/guest.h>
>=20
> @@ -212,6 +213,39 @@ static int __init process_domain_node(
> else
> printk("PV\n");
> }
> + else if ( strncmp(prop_name, "memory", name_len) =3D=3D 0 )
> + {
> + uint64_t kb;
> + if ( fdt_prop_as_u64(prop, &kb) !=3D 0 )
> + {
> + printk(" failed processing memory for domain %s\n", name);
> + return -EINVAL;
> + }
> + bd->mem_pages =3D PFN_DOWN(kb * SZ_1K);

Perhaps use shorter form of KB(kb) (KB() from include/xen/config.h)?

What do you think?

>=20
> + printk(" memory: %ld kb\n", kb);
> + }
> + else if ( strncmp(prop_name, "mem-min", name_len) =3D=3D 0 )
> + {
> + uint64_t kb;
> + if ( fdt_prop_as_u64(prop, &kb) !=3D 0 )
> + {
> + printk(" failed processing memory for domain %s\n", name);
> + return -EINVAL;
> + }
> + bd->min_pages =3D PFN_DOWN(kb * SZ_1K);
>=20
> + printk(" min memory: %ld kb\n", kb);
> + }
> + else if ( strncmp(prop_name, "mem-max", name_len) =3D=3D 0 )
> + {
> + uint64_t kb;
> + if ( fdt_prop_as_u64(prop, &kb) !=3D 0 )
> + {
> + printk(" failed processing memory for domain %s\n", name);
> + return -EINVAL;
> + }
> + bd->max_pages =3D PFN_DOWN(kb * SZ_1K);
>=20
> + printk(" max memory: %ld kb\n", kb);
> + }
> }
>=20
> fdt_for_each_subnode(node, fdt, dom_node)
> diff --git a/xen/arch/x86/include/asm/boot-domain.h b/xen/arch/x86/includ=
e/asm/boot-domain.h
> index e316d4bcde..fa8ea1cc66 100644
> --- a/xen/arch/x86/include/asm/boot-domain.h
> +++ b/xen/arch/x86/include/asm/boot-domain.h
> @@ -18,6 +18,10 @@ struct boot_domain {
> #define BUILD_MODE_ENABLE_DM (1 << 1) /* HVM | PVH */
> uint32_t mode;
>=20
> + unsigned long mem_pages;
> + unsigned long min_pages;
> + unsigned long max_pages;
> +
> struct boot_module *kernel;
> struct boot_module *module;
> const char *cmdline;
> diff --git a/xen/include/xen/libfdt/libfdt-xen.h b/xen/include/xen/libfdt=
/libfdt-xen.h
> index 3031bec90e..da43e12e38 100644
> --- a/xen/include/xen/libfdt/libfdt-xen.h
> +++ b/xen/include/xen/libfdt/libfdt-xen.h
> @@ -34,6 +34,16 @@ static inline int __init fdt_prop_as_u32(
> return 0;
> }
>=20
> +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) )
>=20
> + return -EINVAL;
> +
> + *val =3D fdt_cell_as_u64((fdt32_t *)prop->data);
>=20
> + return 0;
> +}
> +
> static inline bool __init fdt_get_prop_offset(
> const void *fdt, int node, const char *name, unsigned long *offset)
> {
> --
> 2.43.0


From xen-devel-bounces@lists.xenproject.org Wed Apr 09 22:33:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 22:33:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.944773.1343123 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2dzD-0000eT-3r; Wed, 09 Apr 2025 22:33:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 944773.1343123; Wed, 09 Apr 2025 22: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 1u2dzD-0000eM-1B; Wed, 09 Apr 2025 22:33:35 +0000
Received: by outflank-mailman (input) for mailman id 944773;
 Wed, 09 Apr 2025 22:33: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=Ywx6=W3=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u2dzB-0000eG-2M
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 22:33:33 +0000
Received: from mail-10631.protonmail.ch (mail-10631.protonmail.ch
 [79.135.106.31]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id aa69fccd-1592-11f0-9eab-5ba50f476ded;
 Thu, 10 Apr 2025 00:33:31 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: aa69fccd-1592-11f0-9eab-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1744238010; x=1744497210;
	bh=AKJIl2i01U7RLOXxfpsju5nHrk6scdE7xh+yHVAmzzo=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=MLL+LCBhrn810qCKObdD0TAgU1w5RLWSY6mRF+RkMKwOvgx5RDuAlfqZoKdmSwHt0
	 JLLBEUzija6048Vrgef7GhXNfoswZGke04EuiqIbIlxrJMptnO1BZObBWSRkdUUX8b
	 eredC49QUWPFZcXuJ++ubCFrby4aXn5ZjF2cse6GB01DBaA0jzQN8aUFhEbv2/gQ0b
	 29NpLtVU2C5WlaTBeyYL9rGDHKu+2C9x2xIFn0lKAv0SlEcBKe62qZUPBMw9QMapmp
	 z3EXJDRnn4lvwCQ1bLMta0YE561bSMzrzMzLJRojJlhmibuxBojWcib121t7QZuazp
	 8IDqA9FkYf5aQ==
Date: Wed, 09 Apr 2025 22:33:25 +0000
To: Alejandro Vallejo <agarciav@amd.com>
From: Denis Mukhin <dmkhn@proton.me>
Cc: xen-devel@lists.xenproject.org, "Daniel P. Smith" <dpsmith@apertussolutions.com>, Jason Andryuk <jason.andryuk@amd.com>, Xenia Ragiadakou <xenia.ragiadakou@amd.com>, Stefano Stabellini <sstabellini@kernel.org>, Michal Orzel <michal.orzel@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>
Subject: Re: [PATCH v3 15/16] x86/hyperlaunch: add max vcpu parsing of hyperlaunch device tree
Message-ID: <TdrpNKrM0AYES6ERgO3fA6Z3f2DZeLdzMe63W1n0cQ7jfW5vTDUSWqENVVDcP6gbncwd3M07DSWjiYeU3mK2JG53eehLldAT9mz5m3bChY8=@proton.me>
In-Reply-To: <20250408160802.49870-16-agarciav@amd.com>
References: <20250408160802.49870-1-agarciav@amd.com> <20250408160802.49870-16-agarciav@amd.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 1d726e5a90b183c7499e1f001073acd4a50848fd
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Tuesday, April 8th, 2025 at 9:07 AM, Alejandro Vallejo <agarciav@amd.com=
> wrote:

>=20
>=20
> From: "Daniel P. Smith" dpsmith@apertussolutions.com
>=20
>=20
> Introduce the `cpus` property, named as such for dom0less compatibility, =
that
> represents the maximum number of vpcus to allocate for a domain. In the d=
evice
> tree, it will be encoded as a u32 value.
>=20
> Signed-off-by: Daniel P. Smith dpsmith@apertussolutions.com
>=20
> Reviewed-by: Jason Andryuk jason.andryuk@amd.com
>=20
> ---
> xen/arch/x86/dom0_build.c | 3 +++
> xen/arch/x86/domain-builder/fdt.c | 11 +++++++++++
> xen/arch/x86/include/asm/boot-domain.h | 2 ++
> 3 files changed, 16 insertions(+)
>=20
> diff --git a/xen/arch/x86/dom0_build.c b/xen/arch/x86/dom0_build.c
> index 36fb090643..7b3e31a08f 100644
> --- a/xen/arch/x86/dom0_build.c
> +++ b/xen/arch/x86/dom0_build.c
> @@ -635,6 +635,9 @@ int __init construct_dom0(const struct boot_domain *b=
d)
> if ( !get_memsize(&dom0_max_size, LONG_MAX) && bd->max_pages )
>=20
> dom0_size.nr_pages =3D bd->max_pages;
>=20
>=20
> + if ( opt_dom0_max_vcpus_max =3D=3D UINT_MAX && bd->max_vcpus )
>=20
> + opt_dom0_max_vcpus_max =3D bd->max_vcpus;
>=20
> +
> if ( is_hvm_domain(d) )
> rc =3D 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-buil=
der/fdt.c
> index 338b4838c2..5fcb767bdd 100644
> --- a/xen/arch/x86/domain-builder/fdt.c
> +++ b/xen/arch/x86/domain-builder/fdt.c
> @@ -246,6 +246,17 @@ static int __init process_domain_node(
> bd->max_pages =3D PFN_DOWN(kb * SZ_1K);
>=20
> printk(" max memory: %ld kb\n", kb);
> }
> + else if ( strncmp(prop_name, "cpus", name_len) =3D=3D 0 )
> + {
> + uint32_t val =3D UINT_MAX;
> + if ( fdt_prop_as_u32(prop, &val) !=3D 0 )
> + {
> + printk(" failed processing max_vcpus for domain %s\n", name);

Suggest adding XENLOG_ERR to the error message.

> + return -EINVAL;
> + }
> + bd->max_vcpus =3D val;
>=20
> + printk(" max vcpus: %d\n", bd->max_vcpus);
>=20
> + }
> }
>=20
> fdt_for_each_subnode(node, fdt, dom_node)
> diff --git a/xen/arch/x86/include/asm/boot-domain.h b/xen/arch/x86/includ=
e/asm/boot-domain.h
> index fa8ea1cc66..969c02a6ea 100644
> --- a/xen/arch/x86/include/asm/boot-domain.h
> +++ b/xen/arch/x86/include/asm/boot-domain.h
> @@ -22,6 +22,8 @@ struct boot_domain {
> unsigned long min_pages;
> unsigned long max_pages;
>=20
> + unsigned int max_vcpus;
> +
> struct boot_module *kernel;
> struct boot_module *module;
> const char *cmdline;
> --
> 2.43.0


From xen-devel-bounces@lists.xenproject.org Wed Apr 09 22:40:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 22:40:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.944786.1343133 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2e5O-0001F8-Ma; Wed, 09 Apr 2025 22:39:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 944786.1343133; Wed, 09 Apr 2025 22:39:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2e5O-0001F1-Jd; Wed, 09 Apr 2025 22:39:58 +0000
Received: by outflank-mailman (input) for mailman id 944786;
 Wed, 09 Apr 2025 22:39:58 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Ywx6=W3=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u2e5N-0001Ev-Ty
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 22:39:58 +0000
Received: from mail-10629.protonmail.ch (mail-10629.protonmail.ch
 [79.135.106.29]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8faa94e5-1593-11f0-9eab-5ba50f476ded;
 Thu, 10 Apr 2025 00:39:56 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8faa94e5-1593-11f0-9eab-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=ge6yf2cp35elvoeo4t5uebpkdu.protonmail; t=1744238395; x=1744497595;
	bh=YWo0JnQYYvBSbmLFlnF/teQUzOpkVj8j09Q4r5O+gFc=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=djpJozpDHq2AJgZqrWgWL0TsjZZ37ulqwJv0Gzcxh9kMcJyW7shXCLI5LkF8qgB0F
	 oXWmHrGGVnyMl+S6kpaP5Db/rljZS1lGIjZxZKMOs4162UOM+PTVSjMEyYm7Yv91BE
	 l/TwB6vdwIc2djwiIDMLXNzWlL2Yal+ztmHoCXPV3oYNT3oTgDBIzhhmwYiJeMymFU
	 R5oQ1oZOyEq+ofqV9aYxpCjuPIhi+kXdk+s/RwJb+I9bo1o1yDghJ0PUTgZ4wjn1aU
	 Av3dMMUlCilcgQPso5wNAj2C0q9f1w7aUuabEhmBvuwI1/jQoKASj2xeUQdKgEUM9X
	 h4OALw5zOzuLA==
Date: Wed, 09 Apr 2025 22:39:49 +0000
To: Alejandro Vallejo <agarciav@amd.com>
From: Denis Mukhin <dmkhn@proton.me>
Cc: xen-devel@lists.xenproject.org, "Daniel P. Smith" <dpsmith@apertussolutions.com>, Jason Andryuk <jason.andryuk@amd.com>, Xenia Ragiadakou <xenia.ragiadakou@amd.com>, Stefano Stabellini <sstabellini@kernel.org>, Michal Orzel <michal.orzel@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>
Subject: Re: [PATCH v3 16/16] x86/hyperlaunch: add capabilities to boot domain
Message-ID: <qMw3Q37efKWp7_jJqwDD6Y3Pt0d0qdCxZDIWzgsMg1LehShPFTIOeJnqBq74lOcTERdwsLTcTazRd2zR0k-_S9TeE-ymcU3S2PH6_o9QRCU=@proton.me>
In-Reply-To: <20250408160802.49870-17-agarciav@amd.com>
References: <20250408160802.49870-1-agarciav@amd.com> <20250408160802.49870-17-agarciav@amd.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: e8907e23aa9ec7b272fc8c7312281f84df62a8c6
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Tuesday, April 8th, 2025 at 9:07 AM, Alejandro Vallejo <agarciav@amd.com=
> wrote:

>=20
>=20
> From: "Daniel P. Smith" dpsmith@apertussolutions.com
>=20
>=20
> Introduce the ability to assign capabilities to a domain via its definiti=
on 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`.
>=20
> Signed-off-by: Daniel P. Smith dpsmith@apertussolutions.com
>=20
> Reviewed-by: Jason Andryuk jason.andryuk@amd.com
>=20
> Signed-off-by: Jason Andryuk jason.andryuk@amd.com
>=20
> ---
> xen/arch/x86/domain-builder/core.c | 1 +
> xen/arch/x86/domain-builder/fdt.c | 12 ++++++++++++
> xen/arch/x86/include/asm/boot-domain.h | 4 ++++
> xen/arch/x86/setup.c | 6 +++++-
> 4 files changed, 22 insertions(+), 1 deletion(-)
>=20
> diff --git a/xen/arch/x86/domain-builder/core.c b/xen/arch/x86/domain-bui=
lder/core.c
> index 510a74a675..6ab4e6fe53 100644
> --- a/xen/arch/x86/domain-builder/core.c
> +++ b/xen/arch/x86/domain-builder/core.c
> @@ -96,6 +96,7 @@ void __init builder_init(struct boot_info *bi)
> i =3D first_boot_module_index(bi, BOOTMOD_UNKNOWN);
> bi->mods[i].type =3D BOOTMOD_KERNEL;
>=20
> bi->domains[0].kernel =3D &bi->mods[i];
>=20
> + bi->domains[0].capabilities |=3D BUILD_CAPS_CONTROL;
>=20
> bi->nr_domains =3D 1;
>=20
> }
> }
> diff --git a/xen/arch/x86/domain-builder/fdt.c b/xen/arch/x86/domain-buil=
der/fdt.c
> index 5fcb767bdd..dbfbcffb0a 100644
> --- a/xen/arch/x86/domain-builder/fdt.c
> +++ b/xen/arch/x86/domain-builder/fdt.c
> @@ -257,6 +257,18 @@ static int __init process_domain_node(
> bd->max_vcpus =3D val;
>=20
> printk(" max vcpus: %d\n", bd->max_vcpus);
>=20
> }
> + else if ( strncmp(prop_name, "capabilities", name_len) =3D=3D 0 )
> + {
> + if ( fdt_prop_as_u32(prop, &bd->capabilities) !=3D 0 )
>=20
> + {
> + printk(" failed processing domain id for domain %s\n", name);

Suggest adding XENLOG_ERR to the error message.

> + return -EINVAL;
> + }
> + printk(" caps: ");
> + if ( bd->capabilities & BUILD_CAPS_CONTROL )
>=20
> + printk("c");

Perhaps wrap string generation into a separate function?

That will help if the number of capabilities will grow over time
and if there will be a need to use string representation somewhere else
in the code.

Thoughts?

> + printk("\n");
> + }
> }
>=20
> fdt_for_each_subnode(node, fdt, dom_node)
> diff --git a/xen/arch/x86/include/asm/boot-domain.h b/xen/arch/x86/includ=
e/asm/boot-domain.h
> index 969c02a6ea..29a7d806de 100644
> --- a/xen/arch/x86/include/asm/boot-domain.h
> +++ b/xen/arch/x86/include/asm/boot-domain.h
> @@ -13,6 +13,10 @@
> struct boot_domain {
> domid_t domid;
>=20
> +#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 4127a0105d..7e1a26b4d2 100644
> --- a/xen/arch/x86/setup.c
> +++ b/xen/arch/x86/setup.c
> @@ -1006,6 +1006,7 @@ static struct domain *__init create_dom0(struct boo=
t_info *bi)
> {
> char *cmdline =3D NULL;
> size_t cmdline_size;
> + unsigned int create_flags =3D 0;
> struct xen_domctl_createdomain dom0_cfg =3D {
> .flags =3D IS_ENABLED(CONFIG_TBOOT) ? XEN_DOMCTL_CDF_s3_integrity : 0,
> .max_evtchn_port =3D -1,
> @@ -1037,7 +1038,10 @@ static struct domain *__init create_dom0(struct bo=
ot_info *bi)
> if ( bd->domid =3D=3D DOMID_INVALID )
>=20
> /* Create initial domain. Not d0 for pvshim. */
> bd->domid =3D get_initial_domain_id();
>=20
> - d =3D domain_create(bd->domid, &dom0_cfg, pv_shim ? 0 : CDF_privileged)=
;
>=20
> + if ( bd->capabilities & BUILD_CAPS_CONTROL )
>=20
> + create_flags |=3D CDF_privileged;
> + d =3D domain_create(bd->domid, &dom0_cfg,
>=20
> + pv_shim ? 0 : create_flags);
> if ( IS_ERR(d) )
> panic("Error creating d%u: %ld\n", bd->domid, PTR_ERR(d));
>=20
>=20
> --
> 2.43.0


From xen-devel-bounces@lists.xenproject.org Wed Apr 09 23:00:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 23:00:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.944800.1343143 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2eOp-0006jK-87; Wed, 09 Apr 2025 23:00:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 944800.1343143; Wed, 09 Apr 2025 23: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 1u2eOp-0006iv-4x; Wed, 09 Apr 2025 23:00:03 +0000
Received: by outflank-mailman (input) for mailman id 944800;
 Wed, 09 Apr 2025 23: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=np/6=W3=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1u2eOo-0006TO-5I
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 23:00:02 +0000
Received: from fout-a4-smtp.messagingengine.com
 (fout-a4-smtp.messagingengine.com [103.168.172.147])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5c976510-1596-11f0-9eab-5ba50f476ded;
 Thu, 10 Apr 2025 01:00:00 +0200 (CEST)
Received: from phl-compute-09.internal (phl-compute-09.phl.internal
 [10.202.2.49])
 by mailfout.phl.internal (Postfix) with ESMTP id A85E613801EA;
 Wed,  9 Apr 2025 18:59:58 -0400 (EDT)
Received: from phl-mailfrontend-01 ([10.202.2.162])
 by phl-compute-09.internal (MEProxy); Wed, 09 Apr 2025 18:59:58 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed,
 9 Apr 2025 18:59:56 -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: 5c976510-1596-11f0-9eab-5ba50f476ded
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=fm2; t=1744239598;
	 x=1744325998; bh=4FFfeDS/v7WXn+9LWeoyHWU758hmJflpZsDUvLZnPB0=; b=
	jb2vq8SyKQS5kR/6Z9WwzM8B101Uywz+vXPvf9tSR0CkNF7jhjSNzJoFBcGv4Rpi
	M4uxygUAvIL7l0PBnV5VAywUIFIIWBLzpp5T3edXhB/ZZutEManqJb8qTIjibai0
	sQ2U/ZabzZo3sdIx3ipExQfgMaCsfgXEJXddZ/wsuk6EmchNr5382FHB/9FXEpI5
	8M/xNCGJx+HEuW2UOXRqSFD//esiIkOWbmRXmcjCfzMgblXF1hYBftCdu2GS3sjB
	oe+AW3tIkaV4xAM5l0a/i9HUqAatGY2ASRFmCb3Xye6zkHwPxaSCNHmRHjovnkaP
	qKUA92e70DxQjB5QJN0hIw==
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=fm2; t=
	1744239598; x=1744325998; bh=4FFfeDS/v7WXn+9LWeoyHWU758hmJflpZsD
	UvLZnPB0=; b=cdODKZFT77q79Mm3HJ2JRrSTLAUNK2HSh0Voj6/zsMmYP4ZmNht
	sxB2QO0lJ6hBKsaQ33SKupyjomTaPHoLaa+Es6lYw8JuxizhBGY+qNP/QtNWk5LL
	mTg64WXuP7cJWX60ZEPkY5zU36K+fMRLflqxs8Aapg7qrNzD5n1OQ9YNJP7ZwxEs
	qYlj8HVNZSUkeuGzyGNYFXmz9LDd2L8IxfxMg3jwP6uNExhTXq3sSw+DGx8c7FDJ
	HbHcqiiVnV1OMraZIhjb7Bg8pz2MUDFx1NCGJf0t8Gbgk07BU0AOKZe6oicxJ1n7
	dhreYey3JxdqyljbRg0KsCb/imhWFmY8fxw==
X-ME-Sender: <xms:7vv2Z13NZObeZjFe_q3akr7U9nbjhErRsyI98buyY4Kvdpp7YMLYrg>
    <xme:7vv2Z8EaH-kb0wVGFjN60_Jq3jgTgGR30UeS-0Nn2N74oC5Ez4UkNQsT0Y-EdugdL
    6k2-yOxax4Qng>
X-ME-Received: <xmr:7vv2Z14ilDPfAY5lYmFJ5yqaaDCd9yun7dyINR6B6UYnc65oBJysi3AGe9nH_wvs-vsy_czBOJFk6L26jaLKR_zkF05ljbXAfg>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvtdejvdejucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
    pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
    gvnhhtshculddquddttddmnecujfgurhepfffhvfevuffkfhggtggujgesghdtreertddt
    jeenucfhrhhomhepofgrrhgvkhcuofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuc
    eomhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecu
    ggftrfgrthhtvghrnhepgfduleetfeevhfefheeiteeliefhjefhleduveetteekveettd
    dvgeeuteefjedunecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhf
    rhhomhepmhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomh
    dpnhgspghrtghpthhtohepiedpmhhouggvpehsmhhtphhouhhtpdhrtghpthhtoheprghn
    ughrvgifrdgtohhophgvrhefsegtihhtrhhigidrtghomhdprhgtphhtthhopeigvghnqd
    guvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdprhgtphhtthhopehr
    ohhgvghrrdhprghusegtihhtrhhigidrtghomhdprhgtphhtthhopehsshhtrggsvghllh
    hinhhisehkvghrnhgvlhdrohhrghdprhgtphhtthhopehmihgthhgrlhdrohhriigvlhes
    rghmugdrtghomhdprhgtphhtthhopegrnhhthhhonhihrdhpvghrrghrugesvhgrthgvsh
    drthgvtghh
X-ME-Proxy: <xmx:7vv2Zy2CfoS-r65epCMJtyA6Mz5BcNK7-4CE8Bzvc5gK0wTBDvXFfQ>
    <xmx:7vv2Z4GfkVYIx7kDgkUQj33nwowGdKURtkaHFh8ZfGNlXQ-0R1caMQ>
    <xmx:7vv2Zz9sIRult5X0zMctiGxZ3Uo5Zy6krrk53Ztnzk4--Hvt9F7kEQ>
    <xmx:7vv2Z1lCLXNdOfCtDrgoBu4I3vn9TcX3GfYVfwNpEEbl5SDOuT_E8g>
    <xmx:7vv2Z7HRdCR_95CFDT_7k4s7QaVmJgrw2-RCMO6hvAVnIlLtQfuDXPt5>
Feedback-ID: i1568416f:Fastmail
Date: Thu, 10 Apr 2025 00:59:54 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: Re: [PATCH 6/8] Factor our x86-isms in the linux build script
Message-ID: <Z_b76k-NXoMPBRe_@mail-itl>
References: <20250409163702.2037301-1-andrew.cooper3@citrix.com>
 <20250409163702.2037301-7-andrew.cooper3@citrix.com>
 <Z_ao0d530OwAUqGW@mail-itl>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="pp/gzWmHsaGWXAvO"
Content-Disposition: inline
In-Reply-To: <Z_ao0d530OwAUqGW@mail-itl>


--pp/gzWmHsaGWXAvO
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Thu, 10 Apr 2025 00:59:54 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: Re: [PATCH 6/8] Factor our x86-isms in the linux build script

On Wed, Apr 09, 2025 at 07:05:21PM +0200, Marek Marczykowski-G=C3=B3recki w=
rote:
> On Wed, Apr 09, 2025 at 05:37:00PM +0100, Andrew Cooper wrote:
> > ... in preparation to use it for arm64 too.  Rename the script.
> >=20
> > Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>=20
> Reviewed-by: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblethingslab=
=2Ecom>

Replaying without dockerfile in context, so it actually hits the list...

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

--pp/gzWmHsaGWXAvO
Content-Type: application/pgp-signature; name=signature.asc

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmf2++oACgkQ24/THMrX
1yxH5Qf/VwWs4jXtnpmGhdu5Q1YGv6CUQJ23QOloNq6nHx74DhTY5QqOq27RbSkX
JRn9kXDRw74OZytBYBhECA/VxVWH5Bhp9nj6SCIbmEpQV6/a6W4aIfSqNtFC94QP
A3Bew7TJFV439p0+O08rV4wdSfeY9zE//mGzZ1QfcSL/SkP4iU1eDRLTT3VuGsbk
j4ybwR2zZT4t+x0CSxE20rDS/xhB70zf1JmMh+WSXfz0SJ/uI2u0wnRVF9iprBke
AK9gYEnTUqedmGNH8zSA4VWid/uz+sudXGYQQesR03bDi5e1W3IPzsD7L+RN/c/w
YW3TO7GJPIWtkpFhLN07IUINU+gnmA==
=E41T
-----END PGP SIGNATURE-----

--pp/gzWmHsaGWXAvO--


From xen-devel-bounces@lists.xenproject.org Wed Apr 09 23:04:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 23:04:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.944812.1343154 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2eSx-0000l9-OM; Wed, 09 Apr 2025 23:04:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 944812.1343154; Wed, 09 Apr 2025 23:04: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 1u2eSx-0000l2-L0; Wed, 09 Apr 2025 23:04:19 +0000
Received: by outflank-mailman (input) for mailman id 944812;
 Wed, 09 Apr 2025 23:04: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=fbf/=W3=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u2eSw-0000kw-20
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 23:04:18 +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 f5828b90-1596-11f0-9ffb-bf95429c2676;
 Thu, 10 Apr 2025 01:04:15 +0200 (CEST)
Received: by mail-wr1-x436.google.com with SMTP id
 ffacd0b85a97d-39c13fa05ebso72970f8f.0
 for <xen-devel@lists.xenproject.org>; Wed, 09 Apr 2025 16:04:15 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43f20b2c355sm15891535e9.2.2025.04.09.16.04.13
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 09 Apr 2025 16:04: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: f5828b90-1596-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744239855; x=1744844655; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=+YY6KE25pqcMgIC76qez6rHyEAIe3UVLVAfnRXBHNNI=;
        b=MdPzKgM9pxhzk0gMDVLaIh5HX7SglIIWrZhYYekPwCyWOdo/DUnv83M0R6hPbg9sVe
         5c5fg01+FWkpRdNA0tHJkILRfI+diTqFCvzrMhR502HP3NrDvCuo8BHC+rGJOElZmL2n
         tLMR4Pyhm+BVFlvbVp//2uwzZnat4rxdkaKcw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744239855; x=1744844655;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=+YY6KE25pqcMgIC76qez6rHyEAIe3UVLVAfnRXBHNNI=;
        b=hAEeBk+Czap7IEXuDi8m+ptxB3k+Pl9XvfXbYzB+XET8gY4giDEcHPR/6jEDdGhpL4
         KjtnhHwcgf/8oVaeaAdZQyLwBcDqWXiWVUjVMgVNHgDwcgEMn+xMQPidHWhg9JwSFhf/
         3qWZ5+zlMjAHTVKrdxx+PKY8PYUQEq10fzJ+Btr+ARRlmtCDXMM0ADpgSJnA4Rhq8Tkb
         c8YSC9+jpkIjTqjTkaeXDPyzFK/4ldR82JItD5Ck1Cu9hopgDcOCrHTqM+V1kMXB2GYV
         L34h82OTUv5hyNJqzBzYjptTDv2d3lt45anBx2VOFVpRFhKeJDKL3hBV2FaJeGBuR3ML
         o+Rg==
X-Gm-Message-State: AOJu0YyPt8xmAk1GYSlzx+s3yGFIE0GFg1mJPl53JnMMp0ebbKoCY9XG
	J5YYIR+2fDXgNy7LuWiwpW5tLt9Nwpzn0VrMIhxCFfOIWFB6AHihBfOHwRQTD2s=
X-Gm-Gg: ASbGncsEb6fY5t+4AwBvYW3e6Usa7KznPhXzx+6bZnVzGKc7G2AHYFMMhdxLjD4gBgP
	4LCeqZtfq7I6gsV0d5xRedhk+w1DoeyTIDGqnpV7ORCl1SoWnq6+6iYzREXML1dITG3AusLqZzq
	BNwzFY4F2zCj2HpDY9DlPPQz1tQ7Vct0qrLPofIZmS2xQibNb9DqswtJ9zb+bPC2q/p8g54B6kc
	9dhB1KjLWEq/sP5yrf1mCN9aYR7oozmA2nGgKroMO85++ezPTS62/hdo0kvQlKW6LP3JFA9m4sj
	XmfquJKTGde1TnX5lhcuYorRZ/Ci4KeqlD+LrBUTcUbAuyEFxnraDC8ZgRp2V3yOmyWNK0Lrkl/
	dJfnoOA==
X-Google-Smtp-Source: AGHT+IHflZWwYAgOWK4eCPFRX6eWiP/PLT0Nx5UM+3o4i0UauVoGD4cb+sGvVLYlb/ZVfF2K5tP8jw==
X-Received: by 2002:a05:6000:18ac:b0:391:20ef:62d6 with SMTP id ffacd0b85a97d-39d8f463b72mr352453f8f.11.1744239855195;
        Wed, 09 Apr 2025 16:04:15 -0700 (PDT)
Message-ID: <e0905f77-4cf3-46b9-b4c1-1ad9a6c841d3@citrix.com>
Date: Thu, 10 Apr 2025 00:04:12 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 6/8] Factor our x86-isms in the linux build script
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Michal Orzel <michal.orzel@amd.com>,
 Anthony PERARD <anthony.perard@vates.tech>
References: <20250409163702.2037301-1-andrew.cooper3@citrix.com>
 <20250409163702.2037301-7-andrew.cooper3@citrix.com>
 <Z_ao0d530OwAUqGW@mail-itl> <Z_b76k-NXoMPBRe_@mail-itl>
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: <Z_b76k-NXoMPBRe_@mail-itl>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 09/04/2025 11:59 pm, Marek Marczykowski-Górecki wrote:
> On Wed, Apr 09, 2025 at 07:05:21PM +0200, Marek Marczykowski-Górecki wrote:
>> On Wed, Apr 09, 2025 at 05:37:00PM +0100, Andrew Cooper wrote:
>>> ... in preparation to use it for arm64 too.  Rename the script.
>>>
>>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>> Reviewed-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
> Replaying without dockerfile in context, so it actually hits the list...

It did hit the list.  (I'm paying attention via my shadow subscription)

Lore seems happy too. 
https://lore.kernel.org/xen-devel/828cabc9-512f-4c2f-a7d7-b9c8963c1300@citrix.com/T/#mf8fba1fa1372985c108752f5179e3f1d7a688323

At a guess, Inumbo have reverted whatever was causing the problems with
dockerfiles in emails.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Apr 09 23:56:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 09 Apr 2025 23:56:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.944834.1343163 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2fH9-0004wo-CY; Wed, 09 Apr 2025 23:56:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 944834.1343163; Wed, 09 Apr 2025 23:56: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 1u2fH9-0004wh-9s; Wed, 09 Apr 2025 23:56:11 +0000
Received: by outflank-mailman (input) for mailman id 944834;
 Wed, 09 Apr 2025 23:56: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=nIbW=W3=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1u2fH7-0004wb-Uh
 for xen-devel@lists.xenproject.org; Wed, 09 Apr 2025 23:56:10 +0000
Received: from sender4-of-o50.zoho.com (sender4-of-o50.zoho.com
 [136.143.188.50]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 32987a07-159e-11f0-9eab-5ba50f476ded;
 Thu, 10 Apr 2025 01:56:06 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 1744242955396973.2761201127224;
 Wed, 9 Apr 2025 16:55: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: 32987a07-159e-11f0-9eab-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; t=1744242958; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=OpRffI6qwtGQMUODtX/oZHbTEzGCvC2bs81Hmqw7eSvCVYnIqQr2T1YSqgGwQNnCWKYIejxnV1IC949LA1UojZLEASDoQHdY2y8X7WTvLXYX56BtT6U0HztX/5o5W3tXmkI+Ea7spy8a1AkmX+nG6UIx1pDbhQYdoswB/N3qGWw=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1744242958; 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=MD45N2QilsXNWUX1d+1LMhyO6pIXnc1YcziLov3+tvc=; 
	b=luH/RKkrVjDX8fAzHTi8z7DHB03nOq3HOQA6pAZ/AJ4QJsDJx32gWP/CMdLOGzu3HdOFxZTVNxrJRstHqeqoI+2EJtNXtKBU7y2VESBXf7s3LjBEoyn4G4Qp872jPFG2YDsPPDTUoHC70xRDZUJLwBkasOIHoR96soBeZj0WVnw=
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=1744242958;
	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=MD45N2QilsXNWUX1d+1LMhyO6pIXnc1YcziLov3+tvc=;
	b=VN2eGkgHO/XHDqd3+8vLzFqsu4kepor7PVHI05lxwK1wqVXOfMgHvqEQuSa3+3rA
	6eLUnzqqQVUcGEiy9d3bVBWtmzcxDxxFGgosKI/K41X49EjxkxuDT7j8wFTWWC2am6N
	BFhPXcnA4BfNbnRpVu6wHRjq6jsZno3K6HVZcDlk=
Message-ID: <0fabd9d0-ac4c-4ddd-83c7-e4fc2819b506@apertussolutions.com>
Date: Wed, 9 Apr 2025 19:55:53 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 01/15] x86/boot: introduce boot domain
Content-Language: en-US
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: <20241226165740.29812-1-dpsmith@apertussolutions.com>
 <20241226165740.29812-2-dpsmith@apertussolutions.com>
 <2e02b7d6-fe71-4ed8-a09d-5bde7438718c@suse.com>
 <4aa999f4-48d3-400c-9dc4-21d3f31f3d78@apertussolutions.com>
 <72d3e83d-cb99-41b7-bf0d-b98b3927076e@suse.com>
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
Autocrypt: addr=dpsmith@apertussolutions.com; keydata=
 xsJuBFYrueARCACPWL3r2bCSI6TrkIE/aRzj4ksFYPzLkJbWLZGBRlv7HQLvs6i/K4y/b4fs
 JDq5eL4e9BdfdnZm/b+K+Gweyc0Px2poDWwKVTFFRgxKWq9R7McwNnvuZ4nyXJBVn7PTEn/Z
 G7D08iZg94ZsnUdeXfgYdJrqmdiWA6iX9u84ARHUtb0K4r5WpLUMcQ8PVmnv1vVrs/3Wy/Rb
 foxebZNWxgUiSx+d02e3Ad0aEIur1SYXXv71mqKwyi/40CBSHq2jk9eF6zmEhaoFi5+MMMgX
 X0i+fcBkvmT0N88W4yCtHhHQds+RDbTPLGm8NBVJb7R5zbJmuQX7ADBVuNYIU8hx3dF3AQCm
 601w0oZJ0jGOV1vXQgHqZYJGHg5wuImhzhZJCRESIwf+PJxik7TJOgBicko1hUVOxJBZxoe0
 x+/SO6tn+s8wKlR1Yxy8gYN9ZRqV2I83JsWZbBXMG1kLzV0SAfk/wq0PAppA1VzrQ3JqXg7T
 MZ3tFgxvxkYqUP11tO2vrgys+InkZAfjBVMjqXWHokyQPpihUaW0a8mr40w9Qui6DoJj7+Gg
 DtDWDZ7Zcn2hoyrypuht88rUuh1JuGYD434Q6qwQjUDlY+4lgrUxKdMD8R7JJWt38MNlTWvy
 rMVscvZUNc7gxcmnFUn41NPSKqzp4DDRbmf37Iz/fL7i01y7IGFTXaYaF3nEACyIUTr/xxi+
 MD1FVtEtJncZNkRn7WBcVFGKMAf+NEeaeQdGYQ6mGgk++i/vJZxkrC/a9ZXme7BhWRP485U5
 sXpFoGjdpMn4VlC7TFk2qsnJi3yF0pXCKVRy1ukEls8o+4PF2JiKrtkCrWCimB6jxGPIG3lk
 3SuKVS/din3RHz+7Sr1lXWFcGYDENmPd/jTwr1A1FiHrSj+u21hnJEHi8eTa9029F1KRfocp
 ig+k0zUEKmFPDabpanI323O5Tahsy7hwf2WOQwTDLvQ+eqQu40wbb6NocmCNFjtRhNZWGKJS
 b5GrGDGu/No5U6w73adighEuNcCSNBsLyUe48CE0uTO7eAL6Vd+2k28ezi6XY4Y0mgASJslb
 NwW54LzSSM0uRGFuaWVsIFAuIFNtaXRoIDxkcHNtaXRoQGFwZXJ0dXNzb2x1dGlvbnMuY29t
 PsJ6BBMRCAAiBQJWK7ngAhsjBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRBTc6WbYpR8
 KrQ9AP94+xjtFfJ8gj5c7PVx06Zv9rcmFUqQspZ5wSEkvxOuQQEAg6qEsPYegI7iByLVzNEg
 7B7fUG7pqWIfMqFwFghYhQzOwU0EViu54BAIAL6MXXNlrJ5tRUf+KMBtVz1LJQZRt/uxWrCb
 T06nZjnbp2UcceuYNbISOVHGXTzu38r55YzpkEA8eURQf+5hjtvlrOiHxvpD+Z6WcpV6rrMB
 kcAKWiZTQihW2HoGgVB3gwG9dCh+n0X5OzliAMiGK2a5iqnIZi3o0SeW6aME94bSkTkuj6/7
 OmH9KAzK8UnlhfkoMg3tXW8L6/5CGn2VyrjbB/rcrbIR4mCQ+yCUlocuOjFCJhBd10AG1IcX
 OXUa/ux+/OAV9S5mkr5Fh3kQxYCTcTRt8RY7+of9RGBk10txi94dXiU2SjPbassvagvu/hEi
 twNHms8rpkSJIeeq0/cAAwUH/jV3tXpaYubwcL2tkk5ggL9Do+/Yo2WPzXmbp8vDiJPCvSJW
 rz2NrYkd/RoX+42DGqjfu8Y04F9XehN1zZAFmCDUqBMa4tEJ7kOT1FKJTqzNVcgeKNBGcT7q
 27+wsqbAerM4A0X/F/ctjYcKwNtXck1Bmd/T8kiw2IgyeOC+cjyTOSwKJr2gCwZXGi5g+2V8
 NhJ8n72ISPnOh5KCMoAJXmCF+SYaJ6hIIFARmnuessCIGw4ylCRIU/TiXK94soilx5aCqb1z
 ke943EIUts9CmFAHt8cNPYOPRd20pPu4VFNBuT4fv9Ys0iv0XGCEP+sos7/pgJ3gV3pCOric
 p15jV4PCYQQYEQgACQUCViu54AIbDAAKCRBTc6WbYpR8Khu7AP9NJrBUn94C/3PeNbtQlEGZ
 NV46Mx5HF0P27lH3sFpNrwD/dVdZ5PCnHQYBZ287ZxVfVr4Zuxjo5yJbRjT93Hl0vMY=
In-Reply-To: <72d3e83d-cb99-41b7-bf0d-b98b3927076e@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ZohoMailClient: External

On 4/7/25 03:10, Jan Beulich wrote:
> On 05.04.2025 02:04, Daniel P. Smith wrote:
>> On 1/30/25 08:45, Jan Beulich wrote:
>>> On 26.12.2024 17:57, Daniel P. Smith wrote:
>>>> @@ -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)
>>>
>>> Pointer-to-const? Domain construction should only be consuming data
>>> supplied, I expect.
>>>
>>>> --- /dev/null
>>>> +++ b/xen/arch/x86/include/asm/bootdomain.h
>>>
>>> Maybe boot-domain.h? Or was that suggested before and discarded for
>>> whatever reason?
>>>
>>>> @@ -0,0 +1,28 @@
>>>> +/* 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_domain {
>>>> +    struct boot_module *kernel;
>>>> +    struct boot_module *ramdisk;
>>>
>>> "ramdisk" is Linux-centric, I think. Can we name this more generically?
>>> "module" perhaps, despite it then being the same name as we use for the
>>> modules Xen is passed?
>>
>> Ramdisk is not a linux-centric, take OpenBSD for example [1]. Calling
>> the field "module" is a recipe for confusion. Especially considering
>> that we are more or less providing a lightweight version of the
>> toolstack interface which use the name ramdisk.
>>
>> [1] https://openbsd.fandom.com/wiki/Creating_a_custom_OpenBSD_RAM_disk
> 
> Just one other OS also using such a concept doesn't mean much. In fact, "ramdisk"
> isn't quite appropriate a term for Linux nowadays anymore anyway. An initrd can
> consist of multiple pieces now, not all of which end up taken as "ramdisk". I
> wouldn't insist on "module" as a name, but I continue to think "ramdisk" is
> inappropriate. The fact that the toolstack uses the term has historical reasons;
> it doesn't mean new code in Xen needs to continue to use that term.

That opening response is very disingenuous and goal post moving. Your 
initial comment asserted that it is a Linux only concept, and when met 
with another example, you now want to just brush it off.

The fact is that the concept of a ramdisk predates Linux by a 
considerable amount, 1979 CP/M introduced the concept. Yes, initrd is a 
variation of a ramdisk, which is why the field is not called initrd 
(despite that term used elsewhere as a variable name). I would also 
point out, as you very well know, Linux's multiple module ramdisk is not 
supported by Xen today, nor is there any plan to add it.

The fact is that ramdisk **is** a general term for the specific 
capability that the primary supported operating system uses, along with 
other operating systems *BSD. As a result the concept is all over the 
code base and so it is not at all unreasonable to have an explicit 
reference reserved for it.

V/r,
DPS


From xen-devel-bounces@lists.xenproject.org Thu Apr 10 00:09:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 00:09:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.944850.1343174 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2fTx-00007a-7w; Thu, 10 Apr 2025 00:09:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 944850.1343174; Thu, 10 Apr 2025 00:09: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 1u2fTx-00007T-56; Thu, 10 Apr 2025 00:09:25 +0000
Received: by outflank-mailman (input) for mailman id 944850;
 Thu, 10 Apr 2025 00:09: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=Z2Tv=W4=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1u2fTw-00007N-9N
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 00:09:24 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on20622.outbound.protection.outlook.com
 [2a01:111:f403:2415::622])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0c3f2718-15a0-11f0-9ffb-bf95429c2676;
 Thu, 10 Apr 2025 02:09:21 +0200 (CEST)
Received: from BN9PR03CA0946.namprd03.prod.outlook.com (2603:10b6:408:108::21)
 by MW4PR12MB6852.namprd12.prod.outlook.com (2603:10b6:303:207::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.22; Thu, 10 Apr
 2025 00:09:16 +0000
Received: from BN1PEPF00004689.namprd05.prod.outlook.com
 (2603:10b6:408:108:cafe::53) by BN9PR03CA0946.outlook.office365.com
 (2603:10b6:408:108::21) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8534.54 via Frontend Transport; Thu,
 10 Apr 2025 00:09:15 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) 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.8632.13 via Frontend Transport; Thu, 10 Apr 2025 00:09:15 +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, 9 Apr
 2025 19:09:15 -0500
Received: from [172.25.231.87] (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, 9 Apr 2025 19:09:14 -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: 0c3f2718-15a0-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=n8KvLqn4vDw6BFDVexnKfhU9xi4qcTcApnzxTiK2RVJRlNBLJE3SILIMa/lWJfRtdhfkgbla7hoCcxbYptLL4SXWblJ+sTIFSxnezy7TcAtSdR8B2e1ZEwLYREO/tAUVKpH0R8rMvMnRAd9pHaLOLzEnLIAh87YpLOBBa3WE902BeOhBhKfIWOntxieS9FXAb+PxH+OUc9sA+wQvGIAlaPTlgbDsBN1SA+o8zXyhIbgpIQSgfE+jJGFeC/oM2OUpeNqUNO8BKs8TpL8l0v3eh41LjwRDtjx3EU4iQ00mPDY049FLcSgsOe3puNy9ly8HTlPdn1HhuIE1K+qIK67T/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=JZlT5Us7mIiHxX89uKFrbQyqvHBxoaXWK3lidXiSWHM=;
 b=lFUGKRnhSkG0wG7yIdTAugkNyPsJOcewJW75CiEE3Skbtw0YXt38iuXVjzFqaxL9LIMiYOnkRZw/8n2JwKm1sbaihO0sq12oxoHI+3kLKe9bCPrgqTl3zk7lck+FDETMhlssMnTSFmnQcJLlPEaj7Cp+xKxvQMlUO1VQafZC/BdouEY3P7TDGv5xDesnl1xa/dW8HQDxtJHp0sIhszjgyYmQWScSwVy4zMzJqZDS7QENMCgflAo2qalcch4vP/bzsy9DXFFv5GPbi2asNoZ7DC+jJyqtTFnyHIO2ij8m0eY4P8is+6iwm7Frztp5DZ0u6WUoM/R83AP46XCnmzyYLA==
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=JZlT5Us7mIiHxX89uKFrbQyqvHBxoaXWK3lidXiSWHM=;
 b=VKyWTmM9hQYdd/7oys+3GAkp6P4l52UiwboxVNZMTf4pcyKGOYycb/jbVz+edjvsWPs3bYP99O0uZO8SbPFnUlcfovtjHmx0Od2N8B0m0WP0gWbykwyqvtHizQqNIuJQbjbme7j6izJuIcGmXgLzO0o9jAMVB9+q9dSLX2Bll9Y=
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: <f7b820af-b548-4dc3-9af7-9d2214a232b2@amd.com>
Date: Wed, 9 Apr 2025 20:09:09 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH TEST-ARTEFACTS 0/8] Cleanup and Linux ARM64 support
To: Andrew Cooper <andrew.cooper3@citrix.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>, Michal Orzel <michal.orzel@amd.com>,
	=?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
	<marmarek@invisiblethingslab.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>
References: <20250409163702.2037301-1-andrew.cooper3@citrix.com>
 <828cabc9-512f-4c2f-a7d7-b9c8963c1300@citrix.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <828cabc9-512f-4c2f-a7d7-b9c8963c1300@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: BN1PEPF00004689:EE_|MW4PR12MB6852:EE_
X-MS-Office365-Filtering-Correlation-Id: 104316ec-62c4-425d-47a0-08dd77c3ee23
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|82310400026|36860700013|13003099007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?KzRLTTV4MENjeDdicmtDSlJGTW5sbEp5d29KMng5RXUwSndJenVDOGt4cFpp?=
 =?utf-8?B?SjVQYml6aUVnOFdhYmJjMVZONml6WVRibkdvM3NDTCtmbjVuZG9CL0lad3Vv?=
 =?utf-8?B?bjlKRXN6N1ZZVW83RFI5cXZETmpkZW5FR25ITlhTaG1zT01STWgvc1FKUisx?=
 =?utf-8?B?akZlUGYzUERSeVlNK0tPRGIrQ0IxSjdXU3ZaWHowbGs5TXYxYjgxMk1XNTVt?=
 =?utf-8?B?Z1ByZllCT1ozRHg0dFVOOGNBajRaRUYrQ3BzM25vL3hUZjVKbWRrMzNiMHht?=
 =?utf-8?B?ZElRaGlaWDBNeEFCcHQxUmJlT0VYVmtaenY5WW1zazdnRkovRDBlRjlTUjM2?=
 =?utf-8?B?b0NsYzJNSWNHdk5zcmFxdkZ5cWovc2RHbHd0QjdnNngwTHBSaFR6RzRDSFVK?=
 =?utf-8?B?UVRqaWk4MEtkU2Zuc2RXL3ZSbFI2MFNOMXNPTWVPUFdvY29oQVFzL3BDaThN?=
 =?utf-8?B?Rlk0aHFCcnBuSjkybFpiSnBQRFZHcVBPZCtkWitwQzdPRytoK1hIYUd2NExv?=
 =?utf-8?B?VkNyemg4U1Rwb1ZUc1BrSUlCbGlYSnlxZUhldUJ0Sk1RdHhCdzlXYTNSZHg2?=
 =?utf-8?B?MFU1OHNGWmFTWEVVdDdXc2ZzMTI2Vm9VZjg1V25NVklueUU1VG1mVW5yKzBU?=
 =?utf-8?B?azdnbXdtVXJpa0orbm5vd21QNHM0QlRINTJQcVkvSHFUNXhTN2QxMTRocVJN?=
 =?utf-8?B?QXI4dVFnbjV4bEZqZlN5empwVlQyNEgrK3ZEdXNUU3Uxa1NlYlcwSnkxYldG?=
 =?utf-8?B?NWVVdDZFbW1DdUVROTdtOEFaUUZSMGlaN3FUZzVwUUh5WStXS2VnQ05tWDZx?=
 =?utf-8?B?cU9OQUFMT2hYR2lzOHdyQ2JvWWpzM3poaThLZHQwSlU4djZmR2h4R24zY3JL?=
 =?utf-8?B?SDdWeHY1b0tucmNySDRsR3dkZEY5SEtzWXEwM0dyS2p4aFg5Rkc2WEtjQzYy?=
 =?utf-8?B?dnR2bHVxZXArYmdOdWZDMDU2WVYraFZweVh5dVRJOWdVc3ZDNGJJQSs5aE1n?=
 =?utf-8?B?aHdpNFpyR09lQVNQN0xJVTRoQk1YV2Zocmh5M2hoak5PdTZDcGh0bTdxL3hk?=
 =?utf-8?B?Sk9OOUJNTEVnZjBPb1BWOEQzbWdHSDZhcVIwQ1kxYmRFOWF2RzV0N2lqN2s1?=
 =?utf-8?B?L2JtQ2ZwRHhrQVh4Qk9McmhmcCt2cjBqQ2kxenBZUENvdEIxSVVGT0RHalNF?=
 =?utf-8?B?TFllWkJHMWtIc0xBTTdmaVJtaktCTFhKbUQzalB2RGY1dk1XeFJVWGZ1aTZi?=
 =?utf-8?B?OEx1N1JBazlZQTRGQmMyMkRMdDcvWU93UDhwZnU2dG1peVBtMFFTdlRoWHhX?=
 =?utf-8?B?K05kQ3lERkt1UTdUT0NtQ2tQNnVzUStMUzZxK2huZFJSWHRVeEpBUldhVUdn?=
 =?utf-8?B?Z243eVV3VHhyS0IxQ2F4dlUvRU1JanZMaHBVbklkLzB5U1o5Y3JpZEVPSVpO?=
 =?utf-8?B?aGM3MWlJczZOeFA0NW5XMlVDY1QyWmMzcGFCN2QzQmczZENVQ0xCcjVsaUVU?=
 =?utf-8?B?RVIyMksydnN2bHEwQjZ3VzQ4M1EyYmwweVpNYjFtbUs4dGhiNEc5eVFiODJC?=
 =?utf-8?B?ZnhoR2FyTUxMTElLS3pGSU5ZMXR1b1hyMENmUnhEekcza1JVelVkZkErS2or?=
 =?utf-8?B?cExEUWlnZXhIaVdVbVBaZmNLY1hKck9jR0dyZlE0eWFGQjMyeEpxVk5sNVRJ?=
 =?utf-8?B?OElnYnMrV21wazJYVGhNMkpLSDNlMys4S2N5QmxLaTRvV2NXcko4TzJLYjdJ?=
 =?utf-8?B?WWV0eVczSnJzYWNtcEZEU2dkbEVlVTFCZXRHZDhaMDlaWTUvNlVhR2VtUThD?=
 =?utf-8?B?NkxEQ0ZTaGlaemMxUVRCSkx1S3RtOHArWHllMWN5V3VDWmt2RHF1Q0NmSjcz?=
 =?utf-8?B?QnBERTlncmJ1aG1MSUFJaWtjU3M5QVlRSmFsK1pNYThGZzM1bkhMOE1YSGJR?=
 =?utf-8?Q?VQ6J/tW5fmA3pWVfyoafAvib2ED6PH9w?=
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)(13003099007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Apr 2025 00:09:15.3659
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 104316ec-62c4-425d-47a0-08dd77c3ee23
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:
	BN1PEPF00004689.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR12MB6852

On 2025-04-09 13:01, Andrew Cooper wrote:
> On 09/04/2025 5:36 pm, Andrew Cooper wrote:
>> Various bits of cleanup, and support for arm64 Linux builds.
>>
>> Run using the new Linux 6.6.86 on (most) x86, and ARM64:
>>    https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/1760667411
> 
> Lovely, Linux 6.6.86 is broken for x86 PVH.  It triple faults very early on.
> 
> Sample log:
> https://gitlab.com/xen-project/hardware/xen-staging/-/jobs/9673797450
> 
> I guess we'll have to stay on 6.6.56 for now.  (Only affects the final
> patch.)

This is an AMD system:

(XEN) [    2.577549] d0v0 Triple fault - invoking HVM shutdown action 1
(XEN) [    2.577557] RIP:    0008:[<0000000001f851d4>]

The instruction:
ffffffff81f851d4:       0f 01 c1                vmcall

vmcall is the Intel instruction, and vmmcall is the AMD one, so CPU 
detection is malfunctioning.

(Early PVH is running identity mapped, so it's offset from ffffffff80000000)

There are no debug symbols in the vmlinux I extracted from the bzImage 
from gitlab, but I can repro locally with on 6.6.86.  It's unclear to me 
why it's failing.

Trying:
diff --git i/arch/x86/xen/enlighten.c w/arch/x86/xen/enlighten.c
index 0219f1c90202..fb4ad7fe3e34 100644
--- i/arch/x86/xen/enlighten.c
+++ w/arch/x86/xen/enlighten.c
@@ -123,11 +123,10 @@ noinstr void *__xen_hypercall_setfunc(void)
         if (!boot_cpu_has(X86_FEATURE_CPUID))
                 xen_get_vendor();

-       if ((boot_cpu_data.x86_vendor == X86_VENDOR_AMD ||
-            boot_cpu_data.x86_vendor == X86_VENDOR_HYGON))
-               func = xen_hypercall_amd;
-       else
+       if (boot_cpu_data.x86_vendor == X86_VENDOR_INTEL )
                 func = xen_hypercall_intel;
+       else
+               func = xen_hypercall_amd;

         static_call_update_early(xen_hypercall, func);

But it still calls xen_hypercall_intel().  So maybe x86_vendor isn't 
getting set and ends up as 0 (X86_VENDOR_INTEL)?

That's as far as I got here.

Different but related, on mainline master, I also get a fail in vmcall. 
There, I see in the disassembly that __xen_hypercall_setfunc()'s calls 
to xen_get_vendor() is gone.  xen_get_vendor() seems to have been 
DCE-ed.  There is some new code that hardcodes features - 
"x86/cpufeatures: Add {REQUIRED,DISABLED} feature configs" - which may 
be responsible.

Regards,
Jason


From xen-devel-bounces@lists.xenproject.org Thu Apr 10 06:28:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 06:28:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.944884.1343184 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2lOJ-0004vy-BV; Thu, 10 Apr 2025 06:27:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 944884.1343184; Thu, 10 Apr 2025 06: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 1u2lOJ-0004vq-6A; Thu, 10 Apr 2025 06:27:59 +0000
Received: by outflank-mailman (input) for mailman id 944884;
 Thu, 10 Apr 2025 06:27:57 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=w6Mj=W4=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u2lOH-0004vj-Fl
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 06:27:57 +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 ed9ac316-15d4-11f0-9ffb-bf95429c2676;
 Thu, 10 Apr 2025 08:27:51 +0200 (CEST)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-39129fc51f8so272666f8f.0
 for <xen-devel@lists.xenproject.org>; Wed, 09 Apr 2025 23:27:51 -0700 (PDT)
Received: from [10.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-39d89362fbfsm3762894f8f.13.2025.04.09.23.27.50
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 09 Apr 2025 23:27: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: ed9ac316-15d4-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744266471; x=1744871271; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=c7W+30oyUtP2UW9K/V3HqdmoS8/ihSVVZkzIjQf+ZbQ=;
        b=WKU5f8n9RNiW7ML95sQ5zcDNmCTeZBl1H1ozYZ9wt5yRyKqxTnBC7qJXjLz5kbcDrz
         vZ/oxgj0OUkwZjgmbJ/XRdhK/0CQAuS83h/8oagrOzI8XEWvo3Ql/L13ELQSApRcVNiz
         gRKChyrpFFraUzA2HtiuCM6gvesfmPACcJ9oDWVeLqDL6jTeJPkAvxGjMyPz0sJNNBqk
         v5i5VHaCY6JHwXT+yXN3FXEtRN3BxgceeCjnTPQnkT9B0g+70pjIgD7E0pNxN3NzU5lB
         BCmlAyg+gVqQOkTbtLsGW6pkWuAAG9dvJv7XOxDUsD9ZVkXO6mFYtAMBi5PZZd+ggoBR
         6xRA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744266471; x=1744871271;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=c7W+30oyUtP2UW9K/V3HqdmoS8/ihSVVZkzIjQf+ZbQ=;
        b=Dos13AWnCRf1znOcOSeDE0BaiJnSPO+GkxdZGN+wK7kBZN0f/R0yj3sKkkcvJAvHEx
         /OjvrHUsb7vLBYENgmQozllw4cKo+zydOhVpPW4PZP7YYHUgIdbe+KpLaFsEc2yK239+
         9MiigEcmKvH85ivJ17Ekd1pfA+cB1J93UWs3BpCRZfKx6oYyIm/dUMvd4uhDmK+0x0zt
         JM43OmQXQdwuDuTbfxoijfDDKmWob5Kk0O3QJSdsydW/6oV3lmZ6ahoXkdLa0dHRAaY2
         JLuRq6NA/l6puNntPM1dujdpxocl7XjZ4E74soczcqxhsl2yQJ2LHoNBfDZBTu2qzTHm
         2cCQ==
X-Forwarded-Encrypted: i=1; AJvYcCWf1pgyRaKnb7Sul5U+O4C7KKyHrk0QQfQenMHFlyqB9PkCZ0USu5aO/7suykcshhIMzr3A2zCr4bI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxVE2OuxxEVp66eWIWXFrF/nM5W8e3yQMju2WMHWcmTBEwzdRAw
	1hbicgdMUj1Ax/G8+wlXNIovIQhksrmLXDhG9gXQKA9t0X9LpM+zzVrw5UrOiA==
X-Gm-Gg: ASbGnctdI4oY57vZRUH7bO2CPGdxqpqxvlDd1YH+0uBP8S4V4v3rBWXwUrJb5AvkTDl
	zmwkcrdz9cT0OfY3W5OYJv6CC4/hlDiFNYcD3Py22PoO2Cc+G4f9VeK+2UjV5yLEAjEfOsLXXPz
	tcKq6BLeeoi/zQwv72wVOUIV2haZ/UWyLrXi6X9SNKOATG7b1jbRVw16nWRnoPf/G5YuS4u4qvA
	wmmle2O3ZzK16R+GGoB+5DFkg2TaX0ZMtGVYO2Io32NWXQScPzlfN6lV2UCFtmUOe0Pzdl+N+4A
	sJTjVRw1akW2wxLeiYX+05orLimwWbb/WNJeO5K/1V7VolWUTQ3ZVIR2NkJrDeKSRWISgGRLrn1
	THcqAvmb9w323wk2nrqTaZS1xa7/OfnXHWgyk
X-Google-Smtp-Source: AGHT+IG1Ajzd+q6omwd33ZaTirfargnMms0ksAY2uPv4TpCk5mpBi0zGyLRT7UeDBFRL3EJ/EOz0ag==
X-Received: by 2002:a05:6000:1a87:b0:390:f358:85db with SMTP id ffacd0b85a97d-39d8fd8c84bmr827763f8f.30.1744266470748;
        Wed, 09 Apr 2025 23:27:50 -0700 (PDT)
Message-ID: <d0d6cdf2-e436-4a72-8a02-5ec331cc950d@suse.com>
Date: Thu, 10 Apr 2025 08:27:49 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] x86/hvm: fix write emulation of RO ranges
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: Marek Marczykowski <marmarek@invisiblethingslab.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20250408093156.83277-3-roger.pau@citrix.com>
 <16c73cae-2ac0-4811-97d3-b25c95ed5abc@suse.com>
 <Z_Y4xFzaltr_XKO4@macbook.lan>
 <ef0b6eea-a7e5-406d-a8ba-062b3c6e17e1@suse.com>
 <Z_ZOWAttoFNoFYCV@macbook.lan>
 <2df78a5d-2f9f-4866-81cc-03ae09c76d50@suse.com>
 <Z_Z3PYYSBH3QWioF@macbook.lan>
 <8709e7af-5827-4c96-9f6b-1f548045040d@suse.com>
 <Z_Z9unJ-wS2dXxUV@macbook.lan>
 <b1e8e761-ddf9-4e4f-b5bb-624b2e7d012c@suse.com>
 <Z_aTYmiOLEfKTend@macbook.lan>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <Z_aTYmiOLEfKTend@macbook.lan>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 09.04.2025 17:33, Roger Pau Monné wrote:
> On Wed, Apr 09, 2025 at 04:08:47PM +0200, Jan Beulich wrote:
>> On 09.04.2025 16:01, Roger Pau Monné wrote:
>>>  As I understand the checks done in
>>> mmio_ro_emulated_write() are to ensure correctness, but carrying the
>>> access even when the %cr2 check fail wouldn't cause issues to Xen
>>> itself?
>>
>> Well, "wouldn't" is too strong for my taste, "shouldn't" would fit. The
>> checking is there to avoid guests playing games. Whether that prevents
>> merely in-guest just-bugs or actual XSAs we can't know until we find a
>> case where the game playing might make us do something wrong. I expect
>> it's unlikely for Xen itself to be affected. But an in-guest privilege
>> escalation would already be bad enough.
> 
> I see.  That was kind of my understanding of the checks.  At least on
> HVM it feels a bit weird to handle r/o regions this way.  It would IMO
> be more natural to use an hvm_io_handler, but that's maybe because I'm
> more familiar with those.

I guess this would be an option; I assume it's the way it is because PVHv1
inherited it from PV, and PVHv2 inherited it from PVHv1.

> And in that regard, hvm_io_handler don't seem to do any of the extra
> checking that mmio_ro_emulated_write() does with the %cr2, but maybe
> that's done by some higher layer?  AFAICT that would ultimately get
> called by hvmemul_read(), and there are no checks there at all.

That more general framework isn't page-fault specific, and hence there's
no CR2 recorded to check against.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Apr 10 06:37:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 06:37:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.944895.1343193 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2lXd-0007nY-5R; Thu, 10 Apr 2025 06:37:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 944895.1343193; Thu, 10 Apr 2025 06: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 1u2lXd-0007nR-1Z; Thu, 10 Apr 2025 06:37:37 +0000
Received: by outflank-mailman (input) for mailman id 944895;
 Thu, 10 Apr 2025 06:37:35 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=w6Mj=W4=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u2lXb-0007n2-6q
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 06:37:35 +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 486be30a-15d6-11f0-9eac-5ba50f476ded;
 Thu, 10 Apr 2025 08:37:33 +0200 (CEST)
Received: by mail-wr1-x42e.google.com with SMTP id
 ffacd0b85a97d-39bf44be22fso178427f8f.0
 for <xen-devel@lists.xenproject.org>; Wed, 09 Apr 2025 23:37:33 -0700 (PDT)
Received: from [10.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-39d893fdf9asm3698105f8f.84.2025.04.09.23.37.29
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 09 Apr 2025 23:37:29 -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: 486be30a-15d6-11f0-9eac-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744267052; x=1744871852; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Bt41AS7wb5RQEELbz2qblq8bXt4lBMzeuUrx3IoOesM=;
        b=VH9xWH+jS081WL1tGZYUxjsz54W0H5VUjD5Pdb70riVH4XE79aZbcjM9CjqgY2rfjb
         aj/okkvM9X3cjFILkoN7YA6Vc8JuwSesJbun0A4j/KbWzpwB4PZbR8SxzgAvVUJHei8j
         0cwPLblnck4TIW+RALq6QJ7LV+qam7yVXRWja7VHGR1hgdr46U2t6zCqkCI6zCDkoykl
         g0QzdDpLVBsmiXqvoTFFQcA093C4DA4sn481EK5qUCRlQxhTWJCh15xRx/xFLL9vKV7y
         AbBfoTxpT2mniuy4qHz800AYE90JzryaUNE7+yMspNVkku+WE6JdmVx8r0NENLO3tZGi
         hYFA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744267052; x=1744871852;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Bt41AS7wb5RQEELbz2qblq8bXt4lBMzeuUrx3IoOesM=;
        b=CBLqkZZNfboTUFIdADi1LwHycJBc8l+omEKClBXgxji3G6G4ripQEwkENuyjyPXTl5
         q8idxOKCo/3t2lzw9Y9k5JijOTSXVK3fKaR76Cur1NXdK2h/e1qejhz0JAJHVGz43HF5
         bsNqNqFpGdGpiV4P3F4M34OjhZg0aII/l1tdaFqtISBZ4ICB620O5Lk+PhdgS0Oua+1Y
         G55iTScw1OuHRj8bfY+NHxUdRdQq65cKRZFi3inG5WgJTuZo+GfDWrtrYDVp2ixcae/K
         FDCsVH+3NaVWrezKjG0zUFqifw3YKSQavz0leWhmWaUnBHOIeccJWRygfBYFS9EOQVX2
         lCLg==
X-Forwarded-Encrypted: i=1; AJvYcCU4dRxKyRxkR56PksnSjCjhvsClZZHf4bp6Lv58dlOWEXb8eNZLff7dE96Cfi46qvvfCmuwqSOIeHA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzeLr4KzJFx6E+F7C4n38kAcqmVE/S7IR9kbZgPpmdAgyiNhJnR
	m4nfdOihwVovRj+twg66C7fx7Th4B2nYcCXSLWjv8NSLf7qmb9vz3wDTh955E9CBGmqRFnAIV1U
	=
X-Gm-Gg: ASbGncu0wtyK/Zv35WgwZIZ92eFAqQO9pDrX/4dKidKcNdiQLaUl1LWlboC0xqYpIez
	wLrW6KK6r4A2mNh1FYwH42jX0wAea8IV9V6/QlJVfLmbLMb/xFKDL7HmlFEk/sc/OEnew67o8SG
	Q/F7ZFmock/MvTzd4O4RzNEjVCVcz6rwZ80BxdpAOQRtAhaDyzeJNunestccLmLk5/DR11d3kw5
	qglo6qxZ/xfbUYaaLuuSdHinbGsr9tacKwf0tthLFgPg4AKqYHsDLs/uPJIostMqgUBAcCa1FKz
	EMsXlKnSp5pdEM28OzC2PHVN0dRJRgbhjhlIm5oOY9HjPKD+TwK/j+5u18FgtLWMQeoZtVy3VLI
	IJ9XFKxqcQQIN76fzJXLvkqagXoWoJUD9Bx/2
X-Google-Smtp-Source: AGHT+IGY2AYJopaw5U0cTG6fY1fNkhnokNgmTTAHuPXQL9KXNIHA6qbNYKsz01tiNrdLb3fJ0MG5gw==
X-Received: by 2002:a05:6000:144a:b0:38d:d701:419c with SMTP id ffacd0b85a97d-39d8f4e71admr964179f8f.41.1744267049733;
        Wed, 09 Apr 2025 23:37:29 -0700 (PDT)
Message-ID: <8d9ccb03-08d5-4bc7-adc4-7d2ac9f867ce@suse.com>
Date: Thu, 10 Apr 2025 08:37:28 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 01/15] 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: <20241226165740.29812-1-dpsmith@apertussolutions.com>
 <20241226165740.29812-2-dpsmith@apertussolutions.com>
 <2e02b7d6-fe71-4ed8-a09d-5bde7438718c@suse.com>
 <4aa999f4-48d3-400c-9dc4-21d3f31f3d78@apertussolutions.com>
 <72d3e83d-cb99-41b7-bf0d-b98b3927076e@suse.com>
 <0fabd9d0-ac4c-4ddd-83c7-e4fc2819b506@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: <0fabd9d0-ac4c-4ddd-83c7-e4fc2819b506@apertussolutions.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 10.04.2025 01:55, Daniel P. Smith wrote:
> On 4/7/25 03:10, Jan Beulich wrote:
>> On 05.04.2025 02:04, Daniel P. Smith wrote:
>>> On 1/30/25 08:45, Jan Beulich wrote:
>>>> On 26.12.2024 17:57, Daniel P. Smith wrote:
>>>>> @@ -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)
>>>>
>>>> Pointer-to-const? Domain construction should only be consuming data
>>>> supplied, I expect.
>>>>
>>>>> --- /dev/null
>>>>> +++ b/xen/arch/x86/include/asm/bootdomain.h
>>>>
>>>> Maybe boot-domain.h? Or was that suggested before and discarded for
>>>> whatever reason?
>>>>
>>>>> @@ -0,0 +1,28 @@
>>>>> +/* 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_domain {
>>>>> +    struct boot_module *kernel;
>>>>> +    struct boot_module *ramdisk;
>>>>
>>>> "ramdisk" is Linux-centric, I think. Can we name this more generically?
>>>> "module" perhaps, despite it then being the same name as we use for the
>>>> modules Xen is passed?
>>>
>>> Ramdisk is not a linux-centric, take OpenBSD for example [1]. Calling
>>> the field "module" is a recipe for confusion. Especially considering
>>> that we are more or less providing a lightweight version of the
>>> toolstack interface which use the name ramdisk.
>>>
>>> [1] https://openbsd.fandom.com/wiki/Creating_a_custom_OpenBSD_RAM_disk
>>
>> Just one other OS also using such a concept doesn't mean much. In fact, "ramdisk"
>> isn't quite appropriate a term for Linux nowadays anymore anyway. An initrd can
>> consist of multiple pieces now, not all of which end up taken as "ramdisk". I
>> wouldn't insist on "module" as a name, but I continue to think "ramdisk" is
>> inappropriate. The fact that the toolstack uses the term has historical reasons;
>> it doesn't mean new code in Xen needs to continue to use that term.
> 
> That opening response is very disingenuous and goal post moving. Your 
> initial comment asserted that it is a Linux only concept, and when met 
> with another example, you now want to just brush it off.

Well, not quite. I deliberately said "..., I think" to indicate the my
horizon. For background, I've originally come from the DOS/Windows and
NetWare worlds, where no such concept ever existed (again, to my
necessarily limited knowledge).

> The fact is that the concept of a ramdisk predates Linux by a 
> considerable amount, 1979 CP/M introduced the concept. Yes, initrd is a 
> variation of a ramdisk, which is why the field is not called initrd 
> (despite that term used elsewhere as a variable name). I would also 
> point out, as you very well know, Linux's multiple module ramdisk is not 
> supported by Xen today, nor is there any plan to add it.

I don't understand what you're alluding to here. Xen doesn't itself need
a ramdisk. Nevertheless to perhaps find microcode to load, it peeks into
the (sole) module provided to the Dom0 kernel.

> The fact is that ramdisk **is** a general term for the specific 
> capability that the primary supported operating system uses, along with 
> other operating systems *BSD. As a result the concept is all over the 
> code base and so it is not at all unreasonable to have an explicit 
> reference reserved for it.

Yet then, compared to multiboot, it being just a single module is a
perhaps severe (portability) limitation. And as soon as we talk about
multiple modules, I'm relatively sure you agree that we can't assume
them all to be RAM disk images. See how Xen itself has got Dom0 kernel,
Dom0 initrd, XSM policy, and CPU microcode.

Naming the thing as generically as possible at least clearly indicates
the route to go from 1 to N.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Apr 10 07:02:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 07:02:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.944926.1343224 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2lvg-0007bb-Ax; Thu, 10 Apr 2025 07:02:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 944926.1343224; Thu, 10 Apr 2025 07:02: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 1u2lvg-0007bU-7s; Thu, 10 Apr 2025 07:02:28 +0000
Received: by outflank-mailman (input) for mailman id 944926;
 Thu, 10 Apr 2025 07:02: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=lSg0=W4=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u2lvf-0007bO-Jh
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 07:02:27 +0000
Received: from mail-pl1-x62f.google.com (mail-pl1-x62f.google.com
 [2607:f8b0:4864:20::62f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bf835d1e-15d9-11f0-9ffb-bf95429c2676;
 Thu, 10 Apr 2025 09:02:22 +0200 (CEST)
Received: by mail-pl1-x62f.google.com with SMTP id
 d9443c01a7336-224191d92e4so4119255ad.3
 for <xen-devel@lists.xenproject.org>; Thu, 10 Apr 2025 00:02:22 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 d9443c01a7336-22ac7cb548fsm23188215ad.188.2025.04.10.00.02.19
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 10 Apr 2025 00:02:20 -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: bf835d1e-15d9-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744268540; x=1744873340; 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=nIlDlGZoOPo0FSLciho/xKqBchnnUIgomTvhOHYOKiU=;
        b=hnFtT2klO0DhT+WoOlVuKMG5Un7EcxO/Ixg8BAZ1NvT9kFrytPktayMzmKJn1AtqUq
         8kkvz0P53mQP6bMWY/ZonR6lTybZ4NRCnV2UqNze5xoLqbKcYcq/zd1IWf+B+pjlBhYV
         E8CmNE7JTxb5HIRzwOf5seO7kP8OabSxyv0hg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744268541; x=1744873341;
        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=nIlDlGZoOPo0FSLciho/xKqBchnnUIgomTvhOHYOKiU=;
        b=rlVbkpxUfR8PjLZssEvTT4Yzx5Ll1GrfCla/9wXuUYhWCF3NCcEZ4l8AisybprQBhp
         NJgyre4RgHbRJ2Ndbyxif89SVAsELxEPf0INbtoOnVtCi30E7VknSs9HHfPBWw/oN1Ui
         G1fASBbRMTtatWp8c2Jgujdp1eBsoWW0NjVrPX9yTpPT7csYYc+ryDATUR+VnZhWUMi0
         6z3f3KISZEwfzX+e4XoBNm0K0RyZ0xATsuqCA2swVMIlwgNyrNUWsy5F9i4g4zAhpo2M
         i3nwQcNh3WO0SHZ1Nawt82x243M2FgKWymDHoyKXwz+rpge6xInJIyaiRCOw8vWjj1Mn
         m93A==
X-Forwarded-Encrypted: i=1; AJvYcCV5NYlIJtoWlZSHL9RVDmXF/3cbTMIAG3K1cD2zHhQb/EXjv5HMtgE5K6S4aZDnqvL8kBx32aIEBrQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywc5cMMXzvfmGtq70130u16SzEXNKTZDWoViich9+k4W6pktvlG
	R69KLDck9A+z+LIT74HzyCHFhLC3ah6Wd2pBH5fgd/+l/h2Z1/UhtLEOJ9rmtJYCKjm7AkY6uS7
	R
X-Gm-Gg: ASbGncsCCRtv/kAzOCOKXWSa+B42r2m2hIHFRtdyN1NgcDmPWLHRNrJ7X+QqHtT83St
	IFtqP8sP8mK89LE/tZUgoS8SI+DBZ7gckD11fnDhcWB2YasvkM2sFuPx9eT2bIMAtNDLjtzZ/B1
	q/gJTv4SQdHIPCbcn9Qxw62/TsF5pChy/P32nhfr0TzBACsRNQBtdgLCa09/RboI7pqj8K/VK8c
	wSlQTUqxP4T57j65eL0VGrER6irkfii/dZxxXpyjj6RCF1H6gNlyyfMkewxQGNmt7ksvfIOHSfY
	tG9tGl++paCWWcoe6dLqjG1JulcmkB6szCKJJlPbW5HNbw==
X-Google-Smtp-Source: AGHT+IEZubcjnTwG6f72/mgMc+e2V/Jp0iKbn7Hh8xVxGvEZ2tuKJpWEEbugtX+IG7SuBEb+7tUeDA==
X-Received: by 2002:a17:902:ea04:b0:216:794f:6d7d with SMTP id d9443c01a7336-22b42c46babmr29899855ad.48.1744268540690;
        Thu, 10 Apr 2025 00:02:20 -0700 (PDT)
Date: Thu, 10 Apr 2025 09:02:14 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Marek Marczykowski <marmarek@invisiblethingslab.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH 2/2] x86/hvm: fix write emulation of RO ranges
Message-ID: <Z_ds9nW2FE3S2wDr@macbook.lan>
References: <Z_Y4xFzaltr_XKO4@macbook.lan>
 <ef0b6eea-a7e5-406d-a8ba-062b3c6e17e1@suse.com>
 <Z_ZOWAttoFNoFYCV@macbook.lan>
 <2df78a5d-2f9f-4866-81cc-03ae09c76d50@suse.com>
 <Z_Z3PYYSBH3QWioF@macbook.lan>
 <8709e7af-5827-4c96-9f6b-1f548045040d@suse.com>
 <Z_Z9unJ-wS2dXxUV@macbook.lan>
 <b1e8e761-ddf9-4e4f-b5bb-624b2e7d012c@suse.com>
 <Z_aTYmiOLEfKTend@macbook.lan>
 <d0d6cdf2-e436-4a72-8a02-5ec331cc950d@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <d0d6cdf2-e436-4a72-8a02-5ec331cc950d@suse.com>

On Thu, Apr 10, 2025 at 08:27:49AM +0200, Jan Beulich wrote:
> On 09.04.2025 17:33, Roger Pau Monné wrote:
> > On Wed, Apr 09, 2025 at 04:08:47PM +0200, Jan Beulich wrote:
> >> On 09.04.2025 16:01, Roger Pau Monné wrote:
> >>>  As I understand the checks done in
> >>> mmio_ro_emulated_write() are to ensure correctness, but carrying the
> >>> access even when the %cr2 check fail wouldn't cause issues to Xen
> >>> itself?
> >>
> >> Well, "wouldn't" is too strong for my taste, "shouldn't" would fit. The
> >> checking is there to avoid guests playing games. Whether that prevents
> >> merely in-guest just-bugs or actual XSAs we can't know until we find a
> >> case where the game playing might make us do something wrong. I expect
> >> it's unlikely for Xen itself to be affected. But an in-guest privilege
> >> escalation would already be bad enough.
> > 
> > I see.  That was kind of my understanding of the checks.  At least on
> > HVM it feels a bit weird to handle r/o regions this way.  It would IMO
> > be more natural to use an hvm_io_handler, but that's maybe because I'm
> > more familiar with those.
> 
> I guess this would be an option; I assume it's the way it is because PVHv1
> inherited it from PV, and PVHv2 inherited it from PVHv1.

I have a draft with this approach, and it seems quite better, as it
allows to get rid of hvm_emulate_one_mmio() and the special casing
done in hvm_hap_nested_page_fault().

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Apr 10 07:20:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 07:20:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.944937.1343233 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2mDA-0003Cb-OY; Thu, 10 Apr 2025 07:20:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 944937.1343233; Thu, 10 Apr 2025 07:20: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 1u2mDA-0003CU-LQ; Thu, 10 Apr 2025 07:20:32 +0000
Received: by outflank-mailman (input) for mailman id 944937;
 Thu, 10 Apr 2025 07:20: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=lSg0=W4=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u2mD9-0003CO-9i
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 07:20:31 +0000
Received: from mail-pg1-x535.google.com (mail-pg1-x535.google.com
 [2607:f8b0:4864:20::535])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 47bc0bd9-15dc-11f0-9eac-5ba50f476ded;
 Thu, 10 Apr 2025 09:20:29 +0200 (CEST)
Received: by mail-pg1-x535.google.com with SMTP id
 41be03b00d2f7-af908bb32fdso435947a12.1
 for <xen-devel@lists.xenproject.org>; Thu, 10 Apr 2025 00:20:29 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 98e67ed59e1d1-306df082327sm2747941a91.15.2025.04.10.00.20.25
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 10 Apr 2025 00:20:27 -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: 47bc0bd9-15dc-11f0-9eac-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744269628; x=1744874428; 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=PDCqJtAPc6HHrC0t+DZCAA6aySNFallXOlf5pYlO0lA=;
        b=jy4sYv6njxN7aoFbI9HQ34psfG7RWmYEvmSleL25onVZjhtYAEN82hA1QP5BNzDS/W
         tJ1RtlpkZNDrZOL3iCDFljzDHk0I/F4N+Ri7A9I7Zo3NuwjdoIq0f56BRUVkmrIHCKOV
         Lcp2Ad5r1cCegS9LISZWuUNGWPkf8OjmIDrec=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744269628; x=1744874428;
        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=PDCqJtAPc6HHrC0t+DZCAA6aySNFallXOlf5pYlO0lA=;
        b=TCTEztfOvtWi/cVLPOAnhe476X34QYzwssz5YsFlRLzm9hLrHwhdZkNdrb7tiFbm6R
         IYVCl6/TBx/1RuiRRlRa4+pAIRAuXZ4ZJy/Jq+edfPDH0v0JP0Y/WoTmVwTjd3eYl8WT
         jW8lS+PC37NLE5foMJKcHUdeEGen/tnRHXUpjNM9vUPJUjnqEgNl2UdQ8HIsiEW8xOF7
         8xhVzB2Kwv493X+xcbWp3voaNhYbQt5e014xmx4KUG84KgfPPsyFF1OCqFUoSiAX2Pt+
         MucdV9HQSj/YWGsLXxetzGCNavZCNuS56+kI2jXkwVEmU0nymGdafCkSKoCanZ3ndn3Y
         zSig==
X-Forwarded-Encrypted: i=1; AJvYcCVGr8uiryJJ6o/Q+apowNm8Bjfde6B4a393x9bbZUJ4VcXPbe1Qz0BDMT7+da5VXpJFOu0ua7CZcSY=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz103D28qGjid1ZtsMioRagGDg/IWNqT/r6V8u9TpGX1c0p9yF1
	MtobH6+YqL/Hjtx5uNqBBKLUEdmuEp/FnAKHZbm/0+yQzMobVxHhXJebofoo13M=
X-Gm-Gg: ASbGnct09yyitELCR6hwNojF6dPzznQYbCoB8WLytZY/Bmg5OqaLJTuTm7PGB+8WCMH
	4hnLefwmb+0ttMtDADB4LkUChzAiG8e5iQMhWiVS6CX69usKmAjFKs9oWw6coQUdBv8hbLwHsPo
	kcKyTHWCGZIRashFzXd4BP/KaXcCvA6yeWRtjNVFQyzBHrAbCnhk4bohjylB8JfNnT/7V7lVrE0
	xHC/T73yLPTLj0aSZV4EVcrO+i67Gw9P0hu5b4SWkjvY2t7OyPhZ0PEHz34pCi5ePoVfPNBJcOy
	MyxSDAumDkLi321S0gXKyYkeX34rq+rNCrUBHm5cAsGZqQ==
X-Google-Smtp-Source: AGHT+IFvjBsEY9oy67/6GwJV3SWUtqOBNcur6SiammS+rKDWPEF+uzJOMO6vM77Mlh7PAFXCcn4G+g==
X-Received: by 2002:a17:90b:368b:b0:302:fc48:4f0a with SMTP id 98e67ed59e1d1-30784d83870mr2191019a91.0.1744269627848;
        Thu, 10 Apr 2025 00:20:27 -0700 (PDT)
Date: Thu, 10 Apr 2025 09:20:22 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v2 02/11] x86/mkreloc: fix obtaining PE image base address
Message-ID: <Z_dxNnfBOP88tAKi@macbook.lan>
References: <20250401130840.72119-1-roger.pau@citrix.com>
 <20250401130840.72119-3-roger.pau@citrix.com>
 <6c37ad18-a830-453e-a7ff-fb4978e3f0df@suse.com>
 <a14a7a42-cf7e-463b-a87d-e302ce32371b@suse.com>
 <Z_UGr0A8LetHDJvB@macbook.lan>
 <3364268c-41c9-47ed-a6d1-b8ee04118a46@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <3364268c-41c9-47ed-a6d1-b8ee04118a46@suse.com>

On Tue, Apr 08, 2025 at 02:34:48PM +0200, Jan Beulich wrote:
> On 08.04.2025 13:21, Roger Pau Monné wrote:
> > On Wed, Apr 02, 2025 at 09:46:53AM +0200, Jan Beulich wrote:
> >> x86/EFI: correct mkreloc header (field) reading
> >>
> >> With us now reading the full combined optional and NT headers, the
> >> subsequent reading of (and seeking to) NT header fields is wrong. Since
> >> PE32 and PE32+ NT headers are different anyway (beyond the image base
> >> oddity extending across both headers), switch to using a union. This
> >> allows to fetch the image base more directly then.
> >>
> >> Additionally add checking to map_section(), which would have caught at
> >> least the wrong (zero) image size that we previously used.
> >>
> >> Fixes: f7f42accbbbb ("x86/efi: Use generic PE/COFF structures")
> >> Reported-by: Roger Pau Monné <roger.pau@citrix.com>
> >> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> >> ---
> >> Of the two checks added to map_section(), the 1st ends up being largely
> >> redundant with the 2nd one. Should we use just the latter?
> >>
> >> Also sanity checking the image base would be possible, but more
> >> cumbersome if we wanted to check moret than just "is in high half of
> >> address space). Therefore I've left out doing so.
> > 
> > We could likely check that image_base >= XEN_VIRT_START?  However I'm
> > not sure how easy it is to make XEN_VIRT_START available to mkreloc.
> 
> This is precisely why I said "more cumbersome".
> 
> >> @@ -54,31 +56,40 @@ static unsigned int load(const char *nam
> >>  
> >>      if ( lseek(in, mz_hdr.peaddr, SEEK_SET) < 0 ||
> >>           read(in, &pe_hdr, sizeof(pe_hdr)) != sizeof(pe_hdr) ||
> >> -         read(in, &pe32_opt_hdr, sizeof(pe32_opt_hdr)) != sizeof(pe32_opt_hdr) ||
> >> -         read(in, &base, sizeof(base)) != sizeof(base) ||
> >> -         /*
> >> -          * Luckily the image size field lives at the
> >> -          * same offset for both formats.
> >> -          */
> >> -         lseek(in, 24, SEEK_CUR) < 0 ||
> >> -         read(in, image_size, sizeof(*image_size)) != sizeof(*image_size) )
> >> +         (read(in, &pe32_opt_hdr.pe, sizeof(pe32_opt_hdr.pe)) !=
> >> +          sizeof(pe32_opt_hdr.pe)) )
> >>      {
> >>          perror(name);
> >>          exit(3);
> >>      }
> >>  
> >>      switch ( (pe_hdr.magic == PE_MAGIC &&
> >> -              pe_hdr.opt_hdr_size > sizeof(pe32_opt_hdr)) *
> >> -              pe32_opt_hdr.magic )
> >> +              pe_hdr.opt_hdr_size > sizeof(pe32_opt_hdr.pe)) *
> >> +              pe32_opt_hdr.pe.magic )
> >>      {
> >>      case PE_OPT_MAGIC_PE32:
> >>          *width = 32;
> >> -        *image_base = base;
> >> +        *image_base = pe32_opt_hdr.pe.image_base;
> >> +        *image_size = pe32_opt_hdr.pe.image_size;
> >>          break;
> >>      case PE_OPT_MAGIC_PE32PLUS:
> >> -        *width = 64;
> >> -        *image_base = ((uint64_t)base << 32) | pe32_opt_hdr.data_base;
> >> -        break;
> >> +        if ( pe_hdr.opt_hdr_size > sizeof(pe32_opt_hdr.pep) )
> >> +        {
> >> +            if ( read(in,
> >> +                      &pe32_opt_hdr.pe + 1,
> >> +                      sizeof(pe32_opt_hdr.pep) - sizeof(pe32_opt_hdr.pe)) !=
> >> +                 sizeof(pe32_opt_hdr.pep) - sizeof(pe32_opt_hdr.pe) )
> >> +            {
> >> +                perror(name);
> >> +                exit(3);
> >> +            }
> >> +
> >> +            *width = 64;
> >> +            *image_base = pe32_opt_hdr.pep.image_base;
> >> +            *image_size = pe32_opt_hdr.pep.image_size;
> >> +            break;
> >> +        }
> > 
> > Since you are already refactoring much of this code, won't it be
> > clearer to fetch the header inside of the switch cases.  So that
> > there's a single read call for each header type?
> 
> Except that the switch() itself uses not only pe_hdr, but also
> pe32_opt_hdr. That could be re-arranged, but I'm a little reluctant to
> do so.

Hm, I see, the magic field checked here is in the extended header, so
we would need to fetch it ahead of the switch in any case.  How
unhelpful.

One thing that I find weird about this code is the obfuscation of the
switch condition, won't it be easier to read as:

if ( pe_hdr.magic != PE_MAGIC ||
     pe_hdr.opt_hdr_size < sizeof(pe32_opt_hdr) )
    fprintf(stderr,
            "%s: Wrong PE magic or missing optional header\n", name);
    exit(3);
}

switch ( pe32_opt_hdr.magic )
{
...

I would assume the current arrangement is done as to reuse the
`default` error label, but IMO that switch condition is too hard to
parse.

> >> @@ -108,11 +119,28 @@ static unsigned int load(const char *nam
> >>  static long page_size;
> >>  
> >>  static const void *map_section(const struct section_header *sec, int in,
> >> -                               const char *name)
> >> +                               const char *name, uint_fast32_t image_size)
> >>  {
> >>      const char *ptr;
> >>      unsigned long offs;
> >>  
> >> +    if ( sec->rva > image_size )
> > 
> > Strictly, should this be >=, as rva is a position, and image_size is a
> > size, so the last allowed bit would be image_size - 1?
> 
> Yes and no. No in so far as this would be wrong for zero-size sections.
> Yet see also the first of the two post-commit-message remarks.

Hm, yes, don't have a strong opinion really, just leave it like that
I guess.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Apr 10 07:25:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 07:25:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.944949.1343244 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2mIC-0005Ek-A5; Thu, 10 Apr 2025 07:25:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 944949.1343244; Thu, 10 Apr 2025 07:25: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 1u2mIC-0005Ed-70; Thu, 10 Apr 2025 07:25:44 +0000
Received: by outflank-mailman (input) for mailman id 944949;
 Thu, 10 Apr 2025 07:25: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=D8yV=W4=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1u2mIA-0005EX-Eo
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 07:25:42 +0000
Received: from NAM12-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam12on2060f.outbound.protection.outlook.com
 [2a01:111:f403:200a::60f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ff2ffe55-15dc-11f0-9ffb-bf95429c2676;
 Thu, 10 Apr 2025 09:25:36 +0200 (CEST)
Received: from DM4PR12MB5277.namprd12.prod.outlook.com (2603:10b6:5:390::7) by
 DM4PR12MB7693.namprd12.prod.outlook.com (2603:10b6:8:103::8) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.8632.21; Thu, 10 Apr 2025 07:25:28 +0000
Received: from DM4PR12MB5277.namprd12.prod.outlook.com
 ([fe80::9ab:5367:ba51:af6e]) by DM4PR12MB5277.namprd12.prod.outlook.com
 ([fe80::9ab:5367:ba51:af6e%5]) with mapi id 15.20.8632.021; Thu, 10 Apr 2025
 07:25: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: ff2ffe55-15dc-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=qqflodGbQxH/hJLCA+6h59A9qKd92IEykBW+HCj2U/TS70UbiabMSty62gr5JwSzTsZi0dnJ7ZojzA2iMk+8lB7/nwa/lLaicgeuGFzjmRs6MOPNFtD+f8QvK3AWnHoggAEhzcXEBBHnxmvMy+N8PyPcod2qY6RNzY1owcv8pyHsV3l0PJfzb1F3c85vzw7kZTqHfazcwutVA5ZA++vhgRHXb8Hhy30q+o1i70GNj7Fi+D1ZHUuHclfMaivmePbeFyOc2BfIDlAp1/u2udrbcYOC/Dry43ajWsIgJF3mTA+ICj/G2LesIwcNEVCx+FKp8Jzp5LBUNDtaMznXHufLgg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=fMYTeH1/HV9XnW+AM2SSXm/F6djSjySFeTaO2Dx7NGQ=;
 b=sS/glz1A1EnEA9nUUIL7Ccq/xXHDYO7rTpjy/5UReNchcCDQbTchXy3xgvN4SwvtZ7eX/ZTYGhE3+N8X8gjiJhintnMnjd/HK8b2IJjDPfE4hqkvgVaxrFq52/NDpTSU/RM/c1/evsXIvsl7INunAJ6h6/s42cjSpvHvXHG0mGTvznpUU0fj6kROpk0i+V+abajzd9oGjkg/o+1LQi7m46jomPPvWgFhHH6IGkcA5lB2nRV/apMYc0p6nVh2WKP7I9l+U/+hoVGpWMt/a0Kg4iGx5ruk2x8jW06jwav2o8MdF/Tqhk9EOXndCZcBfKVDVMuRKHmHUvwdOgC5g4L4aA==
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=fMYTeH1/HV9XnW+AM2SSXm/F6djSjySFeTaO2Dx7NGQ=;
 b=urPgopek2lUeq4biJMeCNvwH8Myk4S1z71ijXmpIGnO7BKI9pdG29jADaOCWjlUnfOS7J95am4gQVTP/z8mSFO36WsbW/Fm7ECLv3jXrQToQBru/qKkaM9j2ZzMdQy9LB/toEmCYeA+OtNLw+3yzes3oeoDWaD0TINX0YY+rUzQ=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <8e15d185-7f04-432b-a091-a83a6f42e056@amd.com>
Date: Thu, 10 Apr 2025 09:25:19 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] arm/irq: Reduce size of irq_desc array to exclude local
 IRQs
To: Mykola Kvach <xakep.amatop@gmail.com>, xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <eafaff031771902c44c101736de7e1b690cc8303.1744083392.git.mykola_kvach@epam.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <eafaff031771902c44c101736de7e1b690cc8303.1744083392.git.mykola_kvach@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR3P281CA0103.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:a1::19) To DM4PR12MB5277.namprd12.prod.outlook.com
 (2603:10b6:5:390::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DM4PR12MB5277:EE_|DM4PR12MB7693:EE_
X-MS-Office365-Filtering-Correlation-Id: 532cc480-9ccc-4ece-f3b6-08dd7800de3e
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?dmlhUllRdTYya3BTcEwzVGFyS0hFQXM1Vmc2cnBkNkhVSjFFTHlSZVk3Yjdo?=
 =?utf-8?B?UGN3bXdPeThEZ01LRFpZcEEvWDk4aUJxelhFbFh5Rk5jeDhYN2F4WVFhRHEr?=
 =?utf-8?B?WmlQN21TemkwQ09lWm45UUdJeW1McjVselhDbVhGdHNXU2s0OGNaVmU1YzFt?=
 =?utf-8?B?dmpjYzlLUzFSYTkwVmFoVVJDR1lJdFNQOFQ3YkI5cHllOXltYTV4ZFl3QVFJ?=
 =?utf-8?B?ZU1MV2N3aFlKenZnOGowYUQyMUk2YlEzb0pkQnNZaGV5cDB6K0VwRDRsQnNx?=
 =?utf-8?B?VHpjbXZGaGtOUmtJVWY3djhKV3BvYWZBc0ducmora09VYjJmeURjTDNaeTJt?=
 =?utf-8?B?NlI4bGhQSGVUeWFzSW9pUHNyckdaejJNankzdkQ3cldzblNQTEp6dElQRE1G?=
 =?utf-8?B?RU9XNEU3bGt6YjQvQzNEOFJrU052NDcvelZDM1V6cW94d1I0UnhMa21ZSVJW?=
 =?utf-8?B?SWFDNEhPaGlKSzJuOHU3T1JMVmZ2L1JZcGxXK3F5RkpkMDZCVTgyNXR3RitN?=
 =?utf-8?B?UGZyYjJMdGFiRndSQnRnNlJKR1pibDdaYkZNUmZJSjBBZG1Ta1N0NDRrRHEv?=
 =?utf-8?B?SldOY09tbkhFVFJ2Mlg5VDdHQjVZb0ljWW9oN1crOXFSZWVWcHJqaG5nS01K?=
 =?utf-8?B?TGpwOVdzV0V5R1JHWGsxVkNtNi8rNFVlaldDN2ZOSy9rTkZMbHhpSVVJYXhH?=
 =?utf-8?B?S09NTWk3aVc4SFp6NWlYRmEzU0FjUTRyUVBhWU9zZ3drNkpMQkxLUnF0L2Nj?=
 =?utf-8?B?Znp4RFhXSXVqazZZUE4rbzVaT2xNUFBHWTBwQkxOYk54RXl3bHYxRzNIcmF1?=
 =?utf-8?B?SHQwYmt6bE5CYnBaMitqV1VqQTBzWExla0w0R09YTVcyVDB3WlZCc0pVaVR5?=
 =?utf-8?B?YVJrS1VjUUhGVGI5bFI2c1hnSjJoanY5M2N3UHpUaHVwWWJ1OVZHdnFnUVdP?=
 =?utf-8?B?eDViL21kMEQzWG9Oa0lmTU16M3ZsR1duMmV4NTJRaWhsSGNubnNxa1g4YVIy?=
 =?utf-8?B?ZzJvYTEzc0NqQzlzWXRJS2VPbWtDUElkbmxteWlTTHQwN0dya2NNTGd2MkdV?=
 =?utf-8?B?Mnl3LzRJRlZWNTlkV3ZMRUc3cGdoRlZwcncrNzcyUjBCMEhCcGY1OFp6Ykx5?=
 =?utf-8?B?UUtSb0c5V3I3R3VlUCtFQmVPaVNrUU5XQnJMamZrVCtVMENZVUJValg5YWZy?=
 =?utf-8?B?eW9ITWd5NzJpSHZiQmNLUURaWWVvQ2JnNHhTQjFTcEdkZFI4TkptZjlXODZh?=
 =?utf-8?B?MmtIdGd1NVp3S0E3cHkvaVN2dGFQc3VJTHdUQ0J5R2F5MWFGeTR5dnhiSFMx?=
 =?utf-8?B?Y0tKdHpOelJMQmI5L2FGeUR1VGNJbnFRQkFlNi9rYStxSVB3RUtXNjhlTlRr?=
 =?utf-8?B?VkpmRGVZamlIOTlKZnlWL2hDK1NuU1phQXp4ODRTa3V4b0JrUzVNR2R0OE9p?=
 =?utf-8?B?Q2c3T2EyMUtxOE96cWN6d0svR01BYU93d1RJbkVndm4xMmNMeWQvYjVsN3Qx?=
 =?utf-8?B?TVdCaTBSODMyeDhTR2Vqc1JEUkk3S1hMS1BmMTNCa25MbU1vWkNERnBFRTQw?=
 =?utf-8?B?eXYxWCsrN3hIMFlMWFNvM3FmVHFoV1FIR3pmU1AzMzVadGIyK1JFMC9QNDZk?=
 =?utf-8?B?MUU5Zm1NbW9GVXgxTDZuVDV1OHBPWVBSZDVkQStuRnZVR2VXbG9jYVpHM3RE?=
 =?utf-8?B?K2RMMWN0NWF6ZTh0RlZhZWQ4WTNGTlFvZnJreVB4ck5WSlJxSWxDSXR4clpm?=
 =?utf-8?B?c2lUTTZzN2tQanc5bXdUcVpjdktQTnRIWko2Vk9qY2wyazIwcWUvRlFsVFAx?=
 =?utf-8?B?R2tGZWsrWXhEOWtXQ0xKVzlpNllrbUUyUGxxWFdkTDd6VHF2blJvZlBFalNS?=
 =?utf-8?Q?TIF7PdqKmY9sP?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB5277.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?dWdpWTI1UTFyR1ByVkpadGVncFEzUDJMWnNTbDN4KzhqL3B6U3F2bzdJcTI1?=
 =?utf-8?B?SkhXdGtabGxnRUlEanY3N0w3Nk9rVnZXS3FxNmJnNmZwbmkvRjI4RnFYSExK?=
 =?utf-8?B?KzhXK1A3QmV0Rk52ckNXZEwxR1M5dXNkT3dXajZVZk9ZbFhUQ2ZPODNYL0tv?=
 =?utf-8?B?SWFRc2NyZSt0M1hDTXI3OVB3WHEwdHJmbXE1N1RZc1dWRkVSTVI3U2I2Vm5o?=
 =?utf-8?B?R1FoVENvZ1ZsOFgvY2ZrU3hnS1ZTckZzcmZUTlhMeFc2by8vRUFlbGRZczhK?=
 =?utf-8?B?TE5jalp2RkdWY0xrYkNsaTArbk5GblN1MHk4UWpOekFlbDhEbVk1UDBjTlly?=
 =?utf-8?B?V3Yrejd0L25LRVFNN2JwLzZJaHZNdnZvNnBHK3BRNmVIdFlGMnQweGJTQXc2?=
 =?utf-8?B?VitEMG5mVThzTkFya2xxZE85eXBDcytTc2JOMnJFWVF1SjI5TkZDOHFjcG9o?=
 =?utf-8?B?aDdocTdBSkFwaEhjeXdhV25PRTNEc0Z4V2ZPeWVCbXR2cEphM1pVeTNvMFk3?=
 =?utf-8?B?M3dsSFQ4dW4rbnBaNjRhWnRPUVBRQ29hdWZlcVA2VkJlVzhNYW1IUjlxZzN2?=
 =?utf-8?B?aXU2RGhQNnU3eHpBd1E4d3Z1WHE4NnFMK1RiTzgrcjloT2FEQTQ4QXUySUpr?=
 =?utf-8?B?ZndseEdhRFNVZFkwZjBmeW5VajdQV1JHZUxsZG1CZnJhM3djLzgvRmR5VG83?=
 =?utf-8?B?TFJxUU8vRkYreTNWNTBORmtwUHN6NG1YcDFlWHpSTUIrbnJOaGJEdnZ5dVkr?=
 =?utf-8?B?cmtGUHFweldxTlVTS3k5d2dWT0lCNml4V1hmblZXMmF5RnJYV0RWcUhqRUlh?=
 =?utf-8?B?V1k5RUtKTW9tdWNRT2JtWEJNSVAzTlZORURFdTZxdy9nY1N0bS9qUjA3Mm1k?=
 =?utf-8?B?RjI4MU9taklucU1rMGNUVmVWMFFqTVYya01OZUdGTERsbDc2bmxlbmZtZ1lC?=
 =?utf-8?B?OUI2QjRrUFVaK2lpcFgyY1BmbjE3dzU3Y203TlhnQmU5a2ZxVDRzcjRta0ts?=
 =?utf-8?B?WUdzU2ozbzdoVmt3dThsZlBzK09sNlhoNlBSelJxNWhWUTlqRWRBSFREbmd3?=
 =?utf-8?B?b2Jja0tESXpDNmNvdFlaUUxQUm8yOVMyb2hNakVrSWIrbjR2UXpWcjFmZXhj?=
 =?utf-8?B?cEc5MjdSRmt5UFluWDRsOGNLZERnalVEZmtUL1oyWTdhZE5zd01uOW1QaVpS?=
 =?utf-8?B?TWZHdFNkZS8zN3VrS0tHZkdjN2J0UmgvNk1KQ2JFeXVSVnZvUnpVRHYzQ2JY?=
 =?utf-8?B?cHYwK21SMnFUbzV4dlFuZWhDMXc4c0F5OU0vZkZ5RWpyY2liSlhiV29PbHVs?=
 =?utf-8?B?WmJvS3gwNzhQMUdJZEpRWGlxZWxRcVVjYVhrNGIzUDRZRTdwczVPcDdOdGlD?=
 =?utf-8?B?Sm5yUmc1ZkY5VEg2ZkIvWlIyNitXQitiNkdhbEwrRENwWnUvTThoTHQ4ZVV5?=
 =?utf-8?B?Rkw1R3VLcUEzYTlvTXVpaFZqdThnWE9uUVg2OE5pZkZjS2NJYmUvbjllbTJP?=
 =?utf-8?B?YUdDem5Fa3dPQk84aHk1b0JYcy9ERlIrbUR0VnNBU1RQbmdCS2NUTFlISlVE?=
 =?utf-8?B?ZUx5RjlIcmFaTUNaOE1qRnUrYW56WTNGbTAwU1JSalAzM1dsaFh6UWxyTjJk?=
 =?utf-8?B?d2owTHVkZ0FkN2xpVTRyRFNRVDgrRmRVTXZuZHFNYThLLzhnM3NJSFlheVo5?=
 =?utf-8?B?NFN0bk1rVGdDQjlKdWJNZXpPRGpQVjVCTFRWVnE2TjkraVd2dE9Ta2d1OTN2?=
 =?utf-8?B?ZENUOEpMQ3dGeEF4NDJXZ3VlY283NXp0ZjAvdVV3dnJNRGdadkFXWkFjcE9i?=
 =?utf-8?B?bG1BL0VGY1RzRjhwUkU4RHZhSGpLRHplQlkzc0ZPZzVHOGU5Z1hNZ3FmL1lp?=
 =?utf-8?B?Q3hBSnJCQ1FpSUs2bWR2aWZJS1Ewd3gxTy83MCtCZndnalZUOW5wKzIrUHZD?=
 =?utf-8?B?REhGVW5oMUcrdG5UOXFRZzN4c1VKeDNjeTBYZmtqTkllejlPb1Y1akFWcmhO?=
 =?utf-8?B?eHdtb0NudXUvdTZzdVo5aDhBdXYyRlhDWXBPUTBFa1pzZnNNWFZ2aXY4ak5i?=
 =?utf-8?B?ZXhicnROTFhySVlENkVtY1FKZ1k3OGViRHgyOTYyanVwMVB2b1pSZEdDS3V2?=
 =?utf-8?Q?8uv74+w7UPbv/mQgX/i1N6JLC?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 532cc480-9ccc-4ece-f3b6-08dd7800de3e
X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB5277.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Apr 2025 07:25:28.3006
 (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: Oe4TzYrkLDSc09X79jf/d2UtsyDAuh8p6ihm8cA3cfSMBebbLZ4vSaj38eywmxOU
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB7693



On 08/04/2025 05:42, Mykola Kvach wrote:
> 
> 
> From: Mykola Kvach <mykola_kvach@epam.com>
> 
> SGI and PPI descriptors are banked and stored in the per-CPU local_irq_desc
> array, so not all elements of the global irq_desc array are used. This is
> already accounted for in the descriptor lookup logic inside __irq_to_desc:
>     return &irq_desc[irq - NR_LOCAL_IRQS];
> 
> Therefore, the size of the irq_desc array can be reduced by NR_LOCAL_IRQS,
> saving (NR_LOCAL_IRQS * L1_CACHE_BYTES) bytes of memory.
Good finding. History shows that local_irq_desc was introduced after irq_desc
that could explain the mistake.

> 
> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
Reviewed-by: Michal Orzel <michal.orzel@amd.com>

~Michal




From xen-devel-bounces@lists.xenproject.org Thu Apr 10 07:42:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 07:42:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.944961.1343254 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2mXy-0002JQ-Jw; Thu, 10 Apr 2025 07:42:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 944961.1343254; Thu, 10 Apr 2025 07:42:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2mXy-0002JJ-HA; Thu, 10 Apr 2025 07:42:02 +0000
Received: by outflank-mailman (input) for mailman id 944961;
 Thu, 10 Apr 2025 07:42: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=w6Mj=W4=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u2mXw-0002JD-TM
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 07:42:00 +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 487431a8-15df-11f0-9ffb-bf95429c2676;
 Thu, 10 Apr 2025 09:41:58 +0200 (CEST)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-43cf848528aso3842775e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 10 Apr 2025 00:41:58 -0700 (PDT)
Received: from [10.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-39d89362fd6sm3988887f8f.16.2025.04.10.00.41.57
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 10 Apr 2025 00:41:57 -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: 487431a8-15df-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744270918; x=1744875718; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=XjRhhVX2nojq0Dt8H3iGowC6FJrHqQ54cR6D41QMAiQ=;
        b=a6iMriDToIXDSNdwXtFkNSjlcJKFYKmgCksbMXrwdrXJZPeYLN5Es2x5gHsW2ztdLL
         aPGRFFROd2EPXo5Ydf5CUclJOVeHwzhIWbKIIvSZBNhpfNnzJ94dE1ovj0VevalhDUkj
         2KA1v4AU4UXEOTxqz01FN78g0oSUpkKx0wLNDgWRNplWoXsXxGe8AhXaQ550ty7jsYRC
         6CLbSOmKCAX+S5GMU0/vKHJtHGF87NniJxEBK+wrq+ylrMTOWhecn7rmV7wRmWJdquNO
         fbiRwDG85niV0Kzdadmt6t7efMLfrtm1ZJmsdJIXHugAh8wb4XmdOFH94b4/Yo0hrPrt
         yGEg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744270918; x=1744875718;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=XjRhhVX2nojq0Dt8H3iGowC6FJrHqQ54cR6D41QMAiQ=;
        b=w7PBi1mpKa07EqYQ8XrNzu8McdOSLFCssYQqT7N96KIHXA0rI/TTlxON5WYIoVkYfR
         s7cbXqyUczEHnQGlGSw3lSQbSl55mkiBPG6BoA2gYPYYyOCrl+zof0HO7takKN8UlYOL
         RA/Vsau9EaiEvVnBSFHdEk50LnMHeBCCecwYFsDs666TIumEF/OsVtz57xbm76UFOsNC
         nJss9uBv42SROPvdKgPF8Z9KvnjT1f+u6A6XArfQOekhAiMBNY6WAfrsZ5B0NY69Jd51
         1aK/potRTevk16TLPUFMFQ4db7vZfHTNX/yz1gPYDpVxHj8QIM+zpqKYbrbboQ5B9H4Y
         D5mQ==
X-Forwarded-Encrypted: i=1; AJvYcCUrj2ZGEFR5OlEg1GRDGD1I/IxETO/N75TOJ7xndh1BJcsmsyTmBFQyEovhW1wWEOEK751geUSkn1c=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwnOCTdPg4u/8+FzMNRlULd9l7THvCMDFI9pwqKE0sCZyi/651k
	Ff2+1rFtf4aHqqg7gyDQJo5bIuFye0LKvvbldv92htusOQOp8PSDMpZAllsDtw==
X-Gm-Gg: ASbGncut/ljBVEUJSrbFEJVMy22D8xC0rt06JNMxFo7bLIs2ry7AsTgRTRN+wexYUgb
	mQWGeYNlDnOnbvLHGJGF3RJDI7h9a4ofSiLC9zqJ9Qv5hceI26H2xEsNejEzkIx7LFwjL92FzG2
	dlQbOmY91A8lgRSoyCMeOtuGOc8n6HNM6+GL5kgCpG4vUrKC/QDkIXLr7oaO7TONvHJuQptRYgd
	VJ/axzBkyGGcQHKAojWTigPwFrscAEUaRVXeX9sic4HamhK7pURGUK6kdmGV/UTxlSrRKeomAFF
	hdcm3wxwlGt0PaBUOUpOpLpBotZIYHAz42YiHyKP4Kv9apd2BiZJG9JsrMGJREOrFcmPbVCBfcA
	aaM2LF6zYKtIzhva+zR6yk6RYiw==
X-Google-Smtp-Source: AGHT+IGkfreKLo5aUa5O4oSTtfus8YA/q+W6MFLV9KJCspejiY5REvbuJhW0OrslwtFv/KcV5XMMxQ==
X-Received: by 2002:a05:6000:250e:b0:39a:ca59:a626 with SMTP id ffacd0b85a97d-39d8f4988acmr1328447f8f.28.1744270918071;
        Thu, 10 Apr 2025 00:41:58 -0700 (PDT)
Message-ID: <44ecdfc2-2bf5-4445-b861-71b43b435c31@suse.com>
Date: Thu, 10 Apr 2025 09:41:56 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 02/11] x86/mkreloc: fix obtaining PE image base address
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, Andrew Cooper
 <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20250401130840.72119-1-roger.pau@citrix.com>
 <20250401130840.72119-3-roger.pau@citrix.com>
 <6c37ad18-a830-453e-a7ff-fb4978e3f0df@suse.com>
 <a14a7a42-cf7e-463b-a87d-e302ce32371b@suse.com>
 <Z_UGr0A8LetHDJvB@macbook.lan>
 <3364268c-41c9-47ed-a6d1-b8ee04118a46@suse.com>
 <Z_dxNnfBOP88tAKi@macbook.lan>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <Z_dxNnfBOP88tAKi@macbook.lan>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 10.04.2025 09:20, Roger Pau Monné wrote:
> On Tue, Apr 08, 2025 at 02:34:48PM +0200, Jan Beulich wrote:
>> On 08.04.2025 13:21, Roger Pau Monné wrote:
>>> On Wed, Apr 02, 2025 at 09:46:53AM +0200, Jan Beulich wrote:
>>>> @@ -54,31 +56,40 @@ static unsigned int load(const char *nam
>>>>  
>>>>      if ( lseek(in, mz_hdr.peaddr, SEEK_SET) < 0 ||
>>>>           read(in, &pe_hdr, sizeof(pe_hdr)) != sizeof(pe_hdr) ||
>>>> -         read(in, &pe32_opt_hdr, sizeof(pe32_opt_hdr)) != sizeof(pe32_opt_hdr) ||
>>>> -         read(in, &base, sizeof(base)) != sizeof(base) ||
>>>> -         /*
>>>> -          * Luckily the image size field lives at the
>>>> -          * same offset for both formats.
>>>> -          */
>>>> -         lseek(in, 24, SEEK_CUR) < 0 ||
>>>> -         read(in, image_size, sizeof(*image_size)) != sizeof(*image_size) )
>>>> +         (read(in, &pe32_opt_hdr.pe, sizeof(pe32_opt_hdr.pe)) !=
>>>> +          sizeof(pe32_opt_hdr.pe)) )
>>>>      {
>>>>          perror(name);
>>>>          exit(3);
>>>>      }
>>>>  
>>>>      switch ( (pe_hdr.magic == PE_MAGIC &&
>>>> -              pe_hdr.opt_hdr_size > sizeof(pe32_opt_hdr)) *
>>>> -              pe32_opt_hdr.magic )
>>>> +              pe_hdr.opt_hdr_size > sizeof(pe32_opt_hdr.pe)) *
>>>> +              pe32_opt_hdr.pe.magic )
>>>>      {
>>>>      case PE_OPT_MAGIC_PE32:
>>>>          *width = 32;
>>>> -        *image_base = base;
>>>> +        *image_base = pe32_opt_hdr.pe.image_base;
>>>> +        *image_size = pe32_opt_hdr.pe.image_size;
>>>>          break;
>>>>      case PE_OPT_MAGIC_PE32PLUS:
>>>> -        *width = 64;
>>>> -        *image_base = ((uint64_t)base << 32) | pe32_opt_hdr.data_base;
>>>> -        break;
>>>> +        if ( pe_hdr.opt_hdr_size > sizeof(pe32_opt_hdr.pep) )
>>>> +        {
>>>> +            if ( read(in,
>>>> +                      &pe32_opt_hdr.pe + 1,
>>>> +                      sizeof(pe32_opt_hdr.pep) - sizeof(pe32_opt_hdr.pe)) !=
>>>> +                 sizeof(pe32_opt_hdr.pep) - sizeof(pe32_opt_hdr.pe) )
>>>> +            {
>>>> +                perror(name);
>>>> +                exit(3);
>>>> +            }
>>>> +
>>>> +            *width = 64;
>>>> +            *image_base = pe32_opt_hdr.pep.image_base;
>>>> +            *image_size = pe32_opt_hdr.pep.image_size;
>>>> +            break;
>>>> +        }
>>>
>>> Since you are already refactoring much of this code, won't it be
>>> clearer to fetch the header inside of the switch cases.  So that
>>> there's a single read call for each header type?
>>
>> Except that the switch() itself uses not only pe_hdr, but also
>> pe32_opt_hdr. That could be re-arranged, but I'm a little reluctant to
>> do so.
> 
> Hm, I see, the magic field checked here is in the extended header, so
> we would need to fetch it ahead of the switch in any case.  How
> unhelpful.
> 
> One thing that I find weird about this code is the obfuscation of the
> switch condition, won't it be easier to read as:
> 
> if ( pe_hdr.magic != PE_MAGIC ||
>      pe_hdr.opt_hdr_size < sizeof(pe32_opt_hdr) )
>     fprintf(stderr,
>             "%s: Wrong PE magic or missing optional header\n", name);
>     exit(3);
> }
> 
> switch ( pe32_opt_hdr.magic )
> {
> ...
> 
> I would assume the current arrangement is done as to reuse the
> `default` error label, but IMO that switch condition is too hard to
> parse.

Well, yes, I have a tendency to code things like this to re-use code
where possible, but I (meanwhile) understand many people don't like
the result. Doing this differently would be a separate patch though, I
think. Anyway - to catch the maintainers' attention I guess I'll (re-)
submit the patch outside of this thread.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Apr 10 07:45:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 07:45:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.944975.1343264 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2mbA-0002w9-60; Thu, 10 Apr 2025 07:45:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 944975.1343264; Thu, 10 Apr 2025 07:45: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 1u2mbA-0002w2-3N; Thu, 10 Apr 2025 07:45:20 +0000
Received: by outflank-mailman (input) for mailman id 944975;
 Thu, 10 Apr 2025 07:45: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=w6Mj=W4=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u2mb9-0002vw-Ki
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 07:45:19 +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 bf1d6217-15df-11f0-9ffb-bf95429c2676;
 Thu, 10 Apr 2025 09:45:17 +0200 (CEST)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-43d0782d787so3378535e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 10 Apr 2025 00:45:17 -0700 (PDT)
Received: from [10.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-43f233c49f7sm41250105e9.17.2025.04.10.00.45.16
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 10 Apr 2025 00:45: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: bf1d6217-15df-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744271117; x=1744875917; 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=ZF2XejUi00jDPs3jcKuERLeUKtli1sGrr4QEMRrpN1g=;
        b=Cxa8UA0v9XTvo379Ruo1JsPle03/L5wJAVoarJ9vA0kMasUJqljWaHiE0wSH5VdVqp
         /OIivL6sBB3CamtZb2umnJp8I3Sb40drKe1Cr9Xm2xfSPF40YsLGlJj9EwqUh4ZjP9yk
         YXorsbmqKWOqiN/wpJBPLTWzBXYGpn7h/KB9mQIC/KEZwxpu9yzg1jfZDsBAJzTug+Bb
         7GOe7N2QdvkAwlTNJMY9D6DYUgB+h0RZAObIiWz1R5K9onrS2GPBuT8gLiC4w4Gd/C75
         qGwFiN/DmHFnpZb2waoCpGVxHHHyPgNo2mb3t++JaoMdrXG/ct73oFEs+2/rPGr0hEIR
         810Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744271117; x=1744875917;
        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=ZF2XejUi00jDPs3jcKuERLeUKtli1sGrr4QEMRrpN1g=;
        b=vLUl2JrxiqDiwlfgk2ynhuYP9ZIJ3sRBy/jeo5CknGoI7czMQKFrhFMSVm/qqTFyRH
         Ns5jrSx7CHPox/6bWZf8qngzrBNQiXq49QXo0JEs9Jsjex8zS9FX7UEXkHKRF6Nl73Ly
         v6vBNwAkTwgrcgyZE2eSSRxI5wveN2N0BueIyUa6DrUhyTMeDTg/dt1bvWgV/7n5dGon
         yn3OwvYmEAf06T7/cYjt64+HuTkpX9DBtxmV50sP9/4GSnWhyEb/awZzDQ5uS43R+Sss
         6A8Osj9GH87oR4u6j8ftgyO4y/pH/xwjgtcwbqTf8KU1KSGX01feYmdSD+VnCgoHT/e8
         X80A==
X-Gm-Message-State: AOJu0YxgElYXhXPDpscuzrSgZN2/Qb/AMxuO1Z9tBnvwCi6ymOoOUYxF
	5T8HziOVNkipvDWiTsNUbyCTWF1P8aNHlNFVWRTGc4N2Cx31pA58wjiABDTwVa468LeoJoD/OCo
	=
X-Gm-Gg: ASbGnctEQq8E2I3nkdDCRaGS0vQzd80DVITh6Ep6lrfi4knDu+AlqwdkPZl8s6A2cJy
	i9CEUdWKBhTLWCSYSNVUhr8em2ZgE4+n/L0yvyUHg3ZDf8pATfgDUmdzP3/VB/2BeCOl8HsIu/f
	u4A8LYPe10lncQ3JmeKL64a7y190RT4Fze7ftHy57+a2/xIiDApQ5jf41YAr0cXcedPdvklD5XG
	ep6aHAq5VaNGKV52mSEvIVb+gQYboOcrW4CE98mJfqwR+VSfqq8y1wl9wuuHD6/C2jAOu3SJnqF
	QSvHep73oUm7lJ/EY8w8cvOygPew4LKuH+YAe1WRB2adyZvCUqClpb4lieKpRtIAde4jRX4FlxF
	l/WeIORmOIjy2f+E/rm6if/Zn/Q==
X-Google-Smtp-Source: AGHT+IFv19x43NJuislNUuQS4SL+U0uQPBViUfYSow+6o7Zz9w37bJ74XMdwX25UpxDmvHpq0+jxOw==
X-Received: by 2002:a05:600c:83ca:b0:43c:fdbe:439b with SMTP id 5b1f17b1804b1-43f2fdcea85mr12618475e9.4.1744271117162;
        Thu, 10 Apr 2025 00:45:17 -0700 (PDT)
Message-ID: <49b9d483-824d-4247-a642-f19f5c16fd5d@suse.com>
Date: Thu, 10 Apr 2025 09:45:15 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Marek Marczykowski <marmarek@invisiblethingslab.com>,
 Daniel Smith <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH RESEND] x86/EFI: correct mkreloc header (field) reading
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

With us now reading the full combined optional and NT headers, the
subsequent reading of (and seeking to) NT header fields is wrong. Since
PE32 and PE32+ NT headers are different anyway (beyond the image base
oddity extending across both headers), switch to using a union. This
allows to fetch the image base more directly then.

Additionally add checking to map_section(), which would have caught at
least the wrong (zero) image size that we previously used.

Fixes: f7f42accbbbb ("x86/efi: Use generic PE/COFF structures")
Reported-by: Roger Pau Monné <roger.pau@citrix.com>
Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
Of the two checks added to map_section(), the 1st ends up being largely
redundant with the 2nd one. Should we use just the latter?

Also sanity checking the image base would be possible, but more
cumbersome if we wanted to check more than just "is in high half of
address space). Therefore I've left out doing so.

--- a/xen/arch/x86/efi/mkreloc.c
+++ b/xen/arch/x86/efi/mkreloc.c
@@ -28,14 +28,16 @@ static void usage(const char *cmd, int r
 static unsigned int load(const char *name, int *handle,
                          struct section_header **sections,
                          uint_fast64_t *image_base,
-                         uint32_t *image_size,
+                         uint_fast32_t *image_size,
                          unsigned int *width)
 {
     int in = open(name, O_RDONLY);
     struct mz_hdr mz_hdr;
     struct pe_hdr pe_hdr;
-    struct pe32_opt_hdr pe32_opt_hdr;
-    uint32_t base;
+    union {
+        struct pe32_opt_hdr pe;
+        struct pe32plus_opt_hdr pep;
+    } pe32_opt_hdr;
 
     if ( in < 0 ||
          read(in, &mz_hdr, sizeof(mz_hdr)) != sizeof(mz_hdr) )
@@ -54,31 +56,40 @@ static unsigned int load(const char *nam
 
     if ( lseek(in, mz_hdr.peaddr, SEEK_SET) < 0 ||
          read(in, &pe_hdr, sizeof(pe_hdr)) != sizeof(pe_hdr) ||
-         read(in, &pe32_opt_hdr, sizeof(pe32_opt_hdr)) != sizeof(pe32_opt_hdr) ||
-         read(in, &base, sizeof(base)) != sizeof(base) ||
-         /*
-          * Luckily the image size field lives at the
-          * same offset for both formats.
-          */
-         lseek(in, 24, SEEK_CUR) < 0 ||
-         read(in, image_size, sizeof(*image_size)) != sizeof(*image_size) )
+         (read(in, &pe32_opt_hdr.pe, sizeof(pe32_opt_hdr.pe)) !=
+          sizeof(pe32_opt_hdr.pe)) )
     {
         perror(name);
         exit(3);
     }
 
     switch ( (pe_hdr.magic == PE_MAGIC &&
-              pe_hdr.opt_hdr_size > sizeof(pe32_opt_hdr)) *
-              pe32_opt_hdr.magic )
+              pe_hdr.opt_hdr_size > sizeof(pe32_opt_hdr.pe)) *
+              pe32_opt_hdr.pe.magic )
     {
     case PE_OPT_MAGIC_PE32:
         *width = 32;
-        *image_base = base;
+        *image_base = pe32_opt_hdr.pe.image_base;
+        *image_size = pe32_opt_hdr.pe.image_size;
         break;
     case PE_OPT_MAGIC_PE32PLUS:
-        *width = 64;
-        *image_base = ((uint64_t)base << 32) | pe32_opt_hdr.data_base;
-        break;
+        if ( pe_hdr.opt_hdr_size > sizeof(pe32_opt_hdr.pep) )
+        {
+            if ( read(in,
+                      &pe32_opt_hdr.pe + 1,
+                      sizeof(pe32_opt_hdr.pep) - sizeof(pe32_opt_hdr.pe)) !=
+                 sizeof(pe32_opt_hdr.pep) - sizeof(pe32_opt_hdr.pe) )
+            {
+                perror(name);
+                exit(3);
+            }
+
+            *width = 64;
+            *image_base = pe32_opt_hdr.pep.image_base;
+            *image_size = pe32_opt_hdr.pep.image_size;
+            break;
+        }
+        /* Fall through. */
     default:
         fprintf(stderr, "%s: Wrong PE file format\n", name);
         exit(3);
@@ -108,11 +119,28 @@ static unsigned int load(const char *nam
 static long page_size;
 
 static const void *map_section(const struct section_header *sec, int in,
-                               const char *name)
+                               const char *name, uint_fast32_t image_size)
 {
     const char *ptr;
     unsigned long offs;
 
+    if ( sec->rva > image_size )
+    {
+        fprintf(stderr,
+                "%s: section %.8s @ %08"PRIx32" beyond image size %08"PRIxFAST32"\n",
+                name, sec->name, sec->rva, image_size);
+        exit(6);
+    }
+
+    if ( (uint_fast64_t)sec->rva + sec->virtual_size > image_size )
+    {
+        fprintf(stderr,
+                "%s: section %.8s @ [%09"PRIx32",%09"PRIxFAST64") extends beyond image size %09"PRIxFAST32"\n",
+                name, sec->name, sec->rva,
+                (uint_fast64_t)sec->rva + sec->virtual_size, image_size);
+        exit(6);
+    }
+
     if ( !page_size )
         page_size = sysconf(_SC_PAGESIZE);
     offs = sec->data_addr & (page_size - 1);
@@ -233,7 +261,7 @@ int main(int argc, char *argv[])
     int in1, in2;
     unsigned int i, nsec, width1, width2;
     uint_fast64_t base1, base2;
-    uint32_t size1, size2;
+    uint_fast32_t size1, size2;
     struct section_header *sec1, *sec2;
 
     if ( argc == 1 ||
@@ -308,8 +336,8 @@ int main(int argc, char *argv[])
             sec1[i].raw_data_size = sec1[i].virtual_size;
             sec2[i].raw_data_size = sec2[i].virtual_size;
         }
-        ptr1 = map_section(sec1 + i, in1, argv[1]);
-        ptr2 = map_section(sec2 + i, in2, argv[2]);
+        ptr1 = map_section(sec1 + i, in1, argv[1], size1);
+        ptr2 = map_section(sec2 + i, in2, argv[2], size1);
 
         diff_sections(ptr1, ptr2, sec1 + i, base2 - base1, width1,
                       base1, base1 + size1);


From xen-devel-bounces@lists.xenproject.org Thu Apr 10 07:49:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 07:49:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.944988.1343275 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2mf6-0003WE-N8; Thu, 10 Apr 2025 07:49:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 944988.1343275; Thu, 10 Apr 2025 07: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 1u2mf6-0003W7-IN; Thu, 10 Apr 2025 07:49:24 +0000
Received: by outflank-mailman (input) for mailman id 944988;
 Thu, 10 Apr 2025 07: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=w6Mj=W4=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u2mf5-0003Vz-Pl
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 07:49: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 50feb9e4-15e0-11f0-9eac-5ba50f476ded;
 Thu, 10 Apr 2025 09:49:22 +0200 (CEST)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-43edb40f357so4398815e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 10 Apr 2025 00:49:22 -0700 (PDT)
Received: from [10.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-39d893f113csm3961029f8f.69.2025.04.10.00.49.21
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 10 Apr 2025 00:49:21 -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: 50feb9e4-15e0-11f0-9eac-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744271362; x=1744876162; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=cP6iuQSjwhCOTnOyYl2j2PYNQx8Wm6k1P6Q8iCBrW7M=;
        b=aMjS5IfoyFSuZVaggT3rZw3rgeEIOZabBDmd373I46zXRlyRpoXWOYNflaxD4kaMUr
         eVPNPE7d1HafdMyaENDTS3JntEF9s2Iqvo+SS9urIw8HOQeqsUBrEm0v7E4ZOK8up8CS
         p5Od8UPGVFBAsSE6audDgRctaDLCl5IpiwBJGaSLcM8MdQPYZBsx3EMcn/PpfMdISun7
         PW+Vl8mOOrYrj/5iC9ryqTF74iOiUua/CVqOLeaEnfw/oAeJz2j4Qo7W7mAPrR2ubyi2
         E66fbSHAVJA1Ph3b4FpYM1jfpA73sICRLqKsfBTYrKOm01pjwNND2gpmy8WwNf+g+CJT
         y4Dg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744271362; x=1744876162;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=cP6iuQSjwhCOTnOyYl2j2PYNQx8Wm6k1P6Q8iCBrW7M=;
        b=kvnUHfnTaA4DW2KKmcdVJorvVjoxVmuwVXgNlD9uK4XywtRoiaGa82ZcOvzgbD7mUH
         CZL4HfvxJOIzW58eDIayANxw0Vtgpb8UXKfW+XnNgWPIbPejGU44yzOtQI+yUFQdQHio
         5We5FNRFGNt26lvNusLnBTGe83LtfojObHhehwpy9UYtTGFQcVQEcDQZzXUlw0mv3PZo
         G3fw1FENH03aFaYMuSqrX69gCSsl9EYIiJa75Yn5IAerUFrKsqgWe2vL78K/JaQRWjYz
         o2LBWlZbIy8GZAE20+yF8haH5g1FJzOeoIFa9l1vwmYofFg2zBY4Jx+mvmJiIYnHxk3V
         /w8g==
X-Gm-Message-State: AOJu0YyHByiEFvHruwthqg68eZRvqtpshmw+cla2Oc5Oy6QZHwue3bwi
	1ZEHGOAH7F/9bcBvmyaTwpQKgIhveSWKbrEMe4ptf8kahX0casuWZZ708aDRcQ==
X-Gm-Gg: ASbGncvdXYCPeIBrnRqgjLLzrEBZG/vJeuLNkYp6UBv3m1r8/k8vnpmWCZlop+ZGHvx
	191wf/VZW3D91gbqEUQK4FivTwt9GRRJcD1QrVsUGGJ9RVza5ozFJErQedw8RDhf6RRf0F2bb6b
	ERKnteYi9AVO6A3jmUng6BpSyN9JojBArSH+0bl8CS7k84+6QmtFBe93wrpS9Yyy88gFG8FNCdl
	ZzLqVUSgFo+GFVSW+z6Ezk87zkM1CsP8Pjg8QjzIqSsGP80FHSWE1j7j1TpMbY+piRct7s7hsIm
	wQFU1QCCOEnM6Oju0PmPYd8qN4npWYuBJwrjeB32TBDPN4Lk4r1CX5dwUt26S2o1iLhoIEjH7Ko
	CAAjBg90qEYEEgMBrrF2vVsBUDg==
X-Google-Smtp-Source: AGHT+IGlotOVq83Dg19ZAk+M9M1Szziqer3CydGNgz3sO9KPPEgR5hMdty65Jwg0yfQ1l9M7q/+48w==
X-Received: by 2002:a05:600c:4e51:b0:43d:209:21fd with SMTP id 5b1f17b1804b1-43f2d98b578mr20609145e9.30.1744271362004;
        Thu, 10 Apr 2025 00:49:22 -0700 (PDT)
Message-ID: <e71d07fa-d53c-4e60-bcba-8676fb3aa9f2@suse.com>
Date: Thu, 10 Apr 2025 09:49:20 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 06/16] x86/hyperlaunch: introduce the domain builder
To: Denis Mukhin <dmkhn@proton.me>, Alejandro Vallejo <agarciav@amd.com>
Cc: xen-devel@lists.xenproject.org,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Jason Andryuk <jason.andryuk@amd.com>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Michal Orzel <michal.orzel@amd.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-7-agarciav@amd.com>
 <FxuO_b3q9bY4mPUG3KmuO_YTqqsPhI1sMXykQ5UkxaLzhMlAoAZtQKzl9puHPW29hxCx_Fm1y_YfmBquI1Cm0QA0Y3TKYTy4waHKKaODj9c=@proton.me>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <FxuO_b3q9bY4mPUG3KmuO_YTqqsPhI1sMXykQ5UkxaLzhMlAoAZtQKzl9puHPW29hxCx_Fm1y_YfmBquI1Cm0QA0Y3TKYTy4waHKKaODj9c=@proton.me>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 09.04.2025 20:53, Denis Mukhin wrote:
> On Tuesday, April 8th, 2025 at 9:07 AM, Alejandro Vallejo <agarciav@amd.com> wrote:
> 
>>
>>
>> From: "Daniel P. Smith" dpsmith@apertussolutions.com
>>
>>
>> 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
>>
>> Signed-off-by: Jason Andryuk jason.andryuk@amd.com
>>
>> ---
>> v3:
>> * Move obj-y += domain-builder/
>> * Remove blank line in Makefile
>> * const in has_hyperlaunch_fdt()
>> * CONFIG_LIBFDT rename
>> * Use boot_info forward declaration
>> * Rename domainbuilder.h to domain-builder.h
>> * Add fdt NULL check
>> ---
>> xen/arch/x86/Makefile | 1 +
>> xen/arch/x86/domain-builder/Kconfig | 2 +-
>> xen/arch/x86/domain-builder/Makefile | 2 +
>> xen/arch/x86/domain-builder/core.c | 57 +++++++++++++++++++++++
>> xen/arch/x86/domain-builder/fdt.c | 37 +++++++++++++++
>> xen/arch/x86/domain-builder/fdt.h | 21 +++++++++
> 
> I have a general question.
> 
> Wouldn't that make sense to use arch-independent placeholder for domain builder
> code right from the starting point?
> 
> For example something like xen/common/domain-builder ?
> 
> My understanding is that there's a lot of code in the domain builder which
> can be potentially shared/re-used with non-x86 architectures.

And indeed this point was already raised before.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Apr 10 08:49:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 08:49:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.945009.1343284 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2nap-0002tk-TG; Thu, 10 Apr 2025 08:49:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 945009.1343284; Thu, 10 Apr 2025 08: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 1u2nap-0002td-PZ; Thu, 10 Apr 2025 08:49:03 +0000
Received: by outflank-mailman (input) for mailman id 945009;
 Thu, 10 Apr 2025 08: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=w6Mj=W4=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u2nao-0002tX-L9
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 08:49:02 +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 a51ef227-15e8-11f0-9ffb-bf95429c2676;
 Thu, 10 Apr 2025 10:48:59 +0200 (CEST)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-43cf257158fso4337705e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 10 Apr 2025 01:48:59 -0700 (PDT)
Received: from [10.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-43f235b050fsm44680805e9.40.2025.04.10.01.48.58
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 10 Apr 2025 01:48:58 -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: a51ef227-15e8-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744274939; x=1744879739; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=epvkV60FiinpBx7MZOoyHxQpLQX6hQLJVX4/EB+2jAQ=;
        b=PpFI/8iAhwiM/hM3qLvCk+A2hjTigXU7WjYuKzYCzIkznN/0/3pGkdgW+gh2ThtaBS
         7HrDcR5JMKWst087kjhmbeNS7RTSNlwq0u+o/zryDySw42Q5+MxhUEYjHhxptMmwFrE6
         afJc8cIXLoFWkRWoBXu78o31G5WFQEtd+awijVCOxHLdNlrW8WCl6vGAaY4MshjgDKSP
         1vSM3U1phxCRml+zA/del+s6eSU2qAykpLSlTd2zef+8pX2vPuFIPbDp1CJNAerY1tuA
         nD6QPLerKvERXPXMezM4dYAuzUJDutB8HRkQTG3wL2DziyJwv02S5S6Uz0kIu0RDp/y8
         Fl5w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744274939; x=1744879739;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=epvkV60FiinpBx7MZOoyHxQpLQX6hQLJVX4/EB+2jAQ=;
        b=b0o4Yif25sZh6TjXuOUjxb9Il2HUQp93Kr59vN1OF/YgYgtWjLZlvGZpsOQgbKi3/P
         qHEn5UxRFCtpdWrBiNNqqnFKjPlDraV6bCHP7L5CeuwygcRyQ6IAG995xsz2evllgidP
         ll+rFxL0ERifekHomu/tcr17QYSWsR7AD+B3P74s/8Gj64O6mCA3VFIXqzBecffwjRQ9
         UBnDVsEyaab3BrymTDJNqnMPj9WKy8ARvdsK0zFfCSH86l4cUauLcqASgfLhC0FDV10Z
         L3r+h75LPdJz0fVMgPcA/eQneKZw3gaF43KsxFFtgQYWFOu6ImsP/cqQ+fVzYpLBbMnC
         xeiA==
X-Forwarded-Encrypted: i=1; AJvYcCWcNFijopTu66Yp7ShPLcuzAlTGZCOLo6ITc3AI9gONOjDfkhVIHphhdceVrjiN4El/5EgZ79XST5A=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxTJTpEe2my3yvxZ21duxyuhxpM1kauJmAlEMFis5BecMj6d/0N
	b/6ovB/uZZ4I3QTYZaKQpH1YiRspMD472b9pSw/Vnqgt2qfdQEpWpwCfmCK6sQ==
X-Gm-Gg: ASbGnctq0Zk/p6kLFhu+x/rIrSTOVNc8Tn2V4Z3CbxwNLwjJtTlCOmdIXDfnHA8AaIu
	cPBaXsCYQNlBIlZQHgvyiMiw0t8hQ1UM+Kjnqd5BhJBAhwL5q9c5rllR7LkDE203UM4Lx/a7OS8
	RDKU5yU1sMO9ZAr7q5T+sxTzEhnMZ1o6+KBZemNYpc2kHqSw4fGGEI6yenOmEEvo7aL66hudlkK
	TDWl8dH0XgTuiJoGbBhNTMch0/ICOVmXpX/xif610iiTgN0Lq687ociJZoLoacWqcQ6H0kF+Uwp
	TzxTlxq5dByV9DIr79R/yLpNEfDao++CKCkyCh7/x07Ru4G4MGtE3Hzs3YrH6aGqyBiDXhPGzHE
	1rVKjkV2ZffZ2ELBDXShAR6epYQ==
X-Google-Smtp-Source: AGHT+IGyxDUsykW/kOyjk9g4WDKk3xMhvjP/xOXTfc8GcaLy9YQ6wOqUeG4WH3osuF5QKKCsCcpkWw==
X-Received: by 2002:a05:600c:46d4:b0:43d:fa58:8378 with SMTP id 5b1f17b1804b1-43f2d99ab0dmr11662055e9.33.1744274938919;
        Thu, 10 Apr 2025 01:48:58 -0700 (PDT)
Message-ID: <a173245f-531a-434d-b3ce-1d8e35dec8ec@suse.com>
Date: Thu, 10 Apr 2025 10:48:57 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3] xen/riscv: Increase XEN_VIRT_SIZE
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <eb20a5730b55c1731324cc3970c3a3c9ea666a85.1744214442.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: <eb20a5730b55c1731324cc3970c3a3c9ea666a85.1744214442.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 09.04.2025 21:01, Oleksii Kurochko wrote:
> --- a/xen/arch/riscv/include/asm/mm.h
> +++ b/xen/arch/riscv/include/asm/mm.h
> @@ -9,6 +9,7 @@
>  #include <xen/mm-frame.h>
>  #include <xen/pdx.h>
>  #include <xen/pfn.h>
> +#include <xen/sections.h>
>  #include <xen/types.h>
>  
>  #include <asm/page-bits.h>
> @@ -35,6 +36,11 @@ static inline void *maddr_to_virt(paddr_t ma)
>      return (void *)va;
>  }
>  
> +#define is_init_section(p) ({                   \
> +    char *p_ = (char *)(unsigned long)(p);      \
> +    (p_ >= __init_begin) && (p_ < __init_end);  \
> +})

I think this wants to be put in xen/sections.h, next to where __init_{begin,end}
are declared. But first it wants making const-correct, to eliminate the potential
of it indirectly casting away const-ness from the incoming argument.

(At some point related stuff wants moving from kernel.h to sections.h, I suppose.
And at that point they will all want to have const added.)

> @@ -43,13 +49,21 @@ static inline void *maddr_to_virt(paddr_t ma)
>   */
>  static inline unsigned long virt_to_maddr(unsigned long va)
>  {
> +    const unsigned long xen_size = (unsigned long)(_end - _start);
> +    const unsigned long xen_virt_start = _AC(XEN_VIRT_START, UL);
> +    const unsigned long xen_virt_end = xen_virt_start + xen_size - 1;
> +
>      if ((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)) ==
> -           (_AC(XEN_VIRT_START, UL) >> (PAGETABLE_ORDER + PAGE_SHIFT)));
> +    ASSERT((va >= xen_virt_start) && (va <= xen_virt_end));
> +
> +    /*
> +    * The .init* sections will be freed when Xen completes booting,
> +    * so the [__init_begin, __init_end] range must be excluded.

[__init_begin, __init_end)

> +    */
> +    ASSERT((system_state != SYS_STATE_active) || !is_init_section(va));

system_state < SYS_STATE_active

> --- a/xen/arch/riscv/mm.c
> +++ b/xen/arch/riscv/mm.c
> @@ -31,20 +31,24 @@ unsigned long __ro_after_init phys_offset; /* = load_start - XEN_VIRT_START */
>  #define LOAD_TO_LINK(addr) ((unsigned long)(addr) - phys_offset)
>  
>  /*
> - * It is expected that Xen won't be more then 2 MB.
> + * It is expected that Xen won't be more then XEN_VIRT_SIZE MB.

Why "MB" when the macro already expands to MB(16)?

>   * The check in xen.lds.S guarantees that.
> - * At least 3 page tables (in case of Sv39 ) are needed to cover 2 MB.
> - * One for each page level table with PAGE_SIZE = 4 Kb.
>   *
> - * One L0 page table can cover 2 MB(512 entries of one page table * PAGE_SIZE).
> + * Root page table is shared with the initial mapping and is declared
> + * separetely. (look at stage1_pgtbl_root)

Nit: separately

>   *
> - * It might be needed one more page table in case when Xen load address
> - * isn't 2 MB aligned.
> + * An amount of page tables between root page table and L0 page table
> + * (in the case of Sv39 it covers L1 table):
> + *   (CONFIG_PAGING_LEVELS - 2) are needed for an identity mapping and
> + *   the same amount are needed for Xen.
>   *
> - * CONFIG_PAGING_LEVELS page tables are needed for the identity mapping,
> - * except that the root page table is shared with the initial mapping
> + * An amount of L0 page tables:
> + *   (512 entries of one L0 page table covers 2MB == 1<<XEN_PT_LEVEL_SHIFT(1))
> + *   XEN_VIRT_SIZE >> XEN_PT_LEVEL_SHIFT(1) are needed for Xen and
> + *   one L0 is needed for indenity mapping.

Nit: identity

But more importantly, where's this one L0 ...

>   */
> -#define PGTBL_INITIAL_COUNT ((CONFIG_PAGING_LEVELS - 1) * 2 + 1)
> +#define PGTBL_INITIAL_COUNT ((CONFIG_PAGING_LEVELS - 2) * 2 + \
> +                             (XEN_VIRT_SIZE >> XEN_PT_LEVEL_SHIFT(1)))

.... in this calculation?

> --- a/xen/arch/riscv/xen.lds.S
> +++ b/xen/arch/riscv/xen.lds.S
> @@ -178,4 +178,8 @@ ASSERT(!SIZEOF(.got.plt),  ".got.plt non-empty")
>   */
>  ASSERT(_end - _start <= XEN_VIRT_SIZE, "Xen too large for early-boot assumptions")
>  
> +/* Changing these ASSERTs can require an update of PGTBL_INITIAL_COUNT */
> +ASSERT(IS_ALIGNED(XEN_VIRT_START, GB(1)), "XEN_VIRT_START should be 1gb aligned")
> +ASSERT(IS_ALIGNED(XEN_VIRT_SIZE, MB(2)), "XEN_VIRT_SIZE should be 2mb aligned")

Such checking wants to happen as early as possible in the build. Deferring to
the linking step should be done only if some part of the expression only is
established when linking. Aiui both of these could be BUILD_BUG_ON() somewhere
near to where PGTBL_INITIAL_COUNT is defined or used.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Apr 10 08:55:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 08:55:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.945024.1343294 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2nhS-0005on-MT; Thu, 10 Apr 2025 08:55:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 945024.1343294; Thu, 10 Apr 2025 08: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 1u2nhS-0005og-JA; Thu, 10 Apr 2025 08:55:54 +0000
Received: by outflank-mailman (input) for mailman id 945024;
 Thu, 10 Apr 2025 08:55:53 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=lSg0=W4=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u2nhR-0005oa-Ga
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 08:55:53 +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 9afa6ef7-15e9-11f0-9eac-5ba50f476ded;
 Thu, 10 Apr 2025 10:55:52 +0200 (CEST)
Received: by mail-wr1-x42d.google.com with SMTP id
 ffacd0b85a97d-39c0e0bc733so429419f8f.1
 for <xen-devel@lists.xenproject.org>; Thu, 10 Apr 2025 01:55:52 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 5b1f17b1804b1-43f235a5d31sm43637115e9.35.2025.04.10.01.55.51
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 10 Apr 2025 01:55: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: 9afa6ef7-15e9-11f0-9eac-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744275351; x=1744880151; 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=kwDEF5MhYDu7HWPnI5/tLs937tzbYElVH+AbgRc+mm0=;
        b=uOcSHkM1oXN42fG/ya9dy0GBQCJ7q4FdcNF8sW4K2qjvn5IMVcBPwE5BewDIsjyUeA
         Dy89UrgFPshjqLhj5/SgbFAIb/S/+aArz46M1do9C3YxSfuvzbk8viTQ5C/W1FfT4ohT
         lkMgGJfMis1/Ve6A6AtX9kwEDVzXe+9c5w7Ds=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744275351; x=1744880151;
        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=kwDEF5MhYDu7HWPnI5/tLs937tzbYElVH+AbgRc+mm0=;
        b=Ugkcef+kK4KcGHdlV0p14XsSKpEa1hXhsFdOH86v9Tbu3Z8+BbMaAkQcv1CiHa6E7M
         YzbL3gwSWxNk/xNa+yVUPz+zlwB8xFf3X6li7bHVJrKFCrS7/PE6NCb/beU3GpP7b5vg
         T3f5MZtWYwnS9+ZaoBXsfGXwPcHcM20pNyjueQPURaAxA7zeG7cXkhm2MVV4mw/Zh/zd
         oVD5fZFWdGrVqAF2hL9xqE/4Fcro7OWPqJSTqHOi8pe0kUDu0YM7fTmi44mM/wqda98r
         6rUjHEsxyr2kxDlTiVKe2gOxpwyo46aA0kEtm1GwMYzqd1cnbz46Qlabo6/t97MBw8bW
         s7Hg==
X-Gm-Message-State: AOJu0YwqKLavRzVQCPZHk5l+DIf6g+zqCeOiITJgz7dEhXf/vOn47CKU
	cKspTO1nQy+ANGTkJMIwEqdhqfUa2DpPsfctdsliF/JrDWwoJrkvRv2w8UjnvRc=
X-Gm-Gg: ASbGncsTjEFUwkvnqwOdiWhsjMWS/xf/o6IanMmS5FZyiHBcionVaz7E3y95eL4Rfjf
	3AnQhsUhfECW9z53V5juVsm5ZdorV69Oh6Xo4PZIwPEJ0ni4v6j03nk4gg3jHKf0czJKTaIpjE3
	JyjQcgs+lJtpicP3O5g2DsTuwSElMCAEJuevQbNbN/ALgvTC8rMej+YgjYLE603G89MXG+DT9z3
	1uoUiXzwHkm43yFAseEzwE9Q3GH9yoHMwD3USMM+BuqOryQuDAz0FoDeotmMMTunKCGmdvHKKJQ
	5Jnkb2pGJyhJoawXtXDhF5kIXOulCR0vcMyNPRnyETSXUA==
X-Google-Smtp-Source: AGHT+IGxkizmzjEt3l53HtPdEtEgsA5Jb788Bs8YEvPUo2NuXsMc7D9XRkIuFF1RrDWnSXvO3gYFaw==
X-Received: by 2002:a05:6000:1866:b0:391:a43:8bbd with SMTP id ffacd0b85a97d-39d8f4695bamr1518765f8f.21.1744275351568;
        Thu, 10 Apr 2025 01:55:51 -0700 (PDT)
Date: Thu, 10 Apr 2025 10:55:50 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Marek Marczykowski <marmarek@invisiblethingslab.com>,
	Daniel Smith <dpsmith@apertussolutions.com>
Subject: Re: [PATCH RESEND] x86/EFI: correct mkreloc header (field) reading
Message-ID: <Z_eHlgfeLxGh1Td3@macbook.lan>
References: <49b9d483-824d-4247-a642-f19f5c16fd5d@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <49b9d483-824d-4247-a642-f19f5c16fd5d@suse.com>

On Thu, Apr 10, 2025 at 09:45:15AM +0200, Jan Beulich wrote:
> With us now reading the full combined optional and NT headers, the
> subsequent reading of (and seeking to) NT header fields is wrong. Since
> PE32 and PE32+ NT headers are different anyway (beyond the image base
> oddity extending across both headers), switch to using a union. This
> allows to fetch the image base more directly then.
> 
> Additionally add checking to map_section(), which would have caught at
> least the wrong (zero) image size that we previously used.
> 
> Fixes: f7f42accbbbb ("x86/efi: Use generic PE/COFF structures")
> Reported-by: Roger Pau Monné <roger.pau@citrix.com>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Apr 10 09:04:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 09:04:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.945037.1343303 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2npr-0000Mw-Fd; Thu, 10 Apr 2025 09:04:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 945037.1343303; Thu, 10 Apr 2025 09: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 1u2npr-0000Mp-CZ; Thu, 10 Apr 2025 09:04:35 +0000
Received: by outflank-mailman (input) for mailman id 945037;
 Thu, 10 Apr 2025 09:04: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=w6Mj=W4=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u2npq-0000Mj-Du
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 09:04:34 +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 d1982a8f-15ea-11f0-9eac-5ba50f476ded;
 Thu, 10 Apr 2025 11:04:33 +0200 (CEST)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-4394a0c65fcso6293265e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 10 Apr 2025 02:04:33 -0700 (PDT)
Received: from [10.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-43f233a2f71sm43871195e9.15.2025.04.10.02.04.31
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 10 Apr 2025 02:04:32 -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: d1982a8f-15ea-11f0-9eac-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744275873; x=1744880673; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=LOFw2YvriQ9ZYdx5OM2aUTS5oZCWyBxtI/fxz2Dg2/U=;
        b=BbxnvWPX45eVSewsPrRK+KpTkeBHuyqF1t8oTWZCJlbmG2LoEEBFImODToqekz4pjU
         5OkZLQbo9P/Ml890fVql2OkjeajEIYhvbQlyQZvUf2aTzYBFZ5pVtJkfD6rUWAWZqoB5
         kXwwQnGyL84dgpf6zzpZLgJbINUCMQtf8wrfyGDeIbk39PCkb+NF22p0hRBKZTJvhjDe
         GDoLHDJ6u3iJ24zUCeqiefUXrPFFxrh66yB/vW9XvubLI6lVks5iElFBJKM4/Y4cjW3j
         /gRb5Fp+MfyAZ1RYWBcEgxqdql1m+3PFsI9ASzN3nUO3HpOaQ7nPQYK4JujrrfZVGmNI
         WbpA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744275873; x=1744880673;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=LOFw2YvriQ9ZYdx5OM2aUTS5oZCWyBxtI/fxz2Dg2/U=;
        b=jNK0RPbAthdrgda2udwU+ZiBRWdGSDqMNfyNHA2Kx59vFdWxlLfClB3bxggQ2hCdkW
         7KevLGPiPj9zlCl2sN8vPfHE0mWDnNRtIjEfKH3UZwMmfcCtdhhGIbTEAtjP8ugu65XL
         JtuWaMFzNrK2kxMLiXr1aHKCQy/53MHUjiseUphELwTKVW2bQE1yD3kPaSlWg8QPxkR0
         prqbLq3GncAcoiFzvKgMYvUjdc8wRbTwPTjT7QZ//yaLCvBIhfZEDqfau6cjmwRu+59Z
         KsPIjw7b/lDLy34fCxZkmgWo87KZubyXNlo7h1o/oH6N+yf9WJjRpsyPoWPmwoWJE6I6
         EyDQ==
X-Forwarded-Encrypted: i=1; AJvYcCWFqSxIpRrWyP7kJHFXfSaiz1yk8cOsyCsWskwId1ceX8r9AfpZimV4RM9d/X7Zsm8C+nlTtH+CrMk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyOxp+oC7X2Fd5NJWRw+P0uyd7f+/YeOkiB6XnHcaNKCJq6vIW9
	UX6j3QZdwg0r43KR/noEoefIbfHPjzot9WiNdFG8ikuWpCOnizrwtjWc5HtVyA==
X-Gm-Gg: ASbGncudPHMQLxGuoIyVhIvbHnCEMP6wW8SwW3l+sr2Kq7IeP9sgakBJxGdYwOIc67S
	TnFRTxDyMKOIT8zvgDpeDrphaMuF7yZvpKieUprqCioI0PTKgcgnipUcn0adho/DJJ2ZEnY6QlY
	XrFgkqGIReViz7CPJ7bW1OdRnqWHY79H6lvHUY+Ui5SPVgKkaZvM9X4nWJpxLlD3BPTL0zf9QTq
	hz8PNkyyTr4M43ZuhDIn+p2Ibd/mnCGCHdEqD3YguF7ejYaaJBfVvLJXc8LfwbNIc6+B43pk7VV
	p4qsXVrDD2M775STqv/feucuWUuy023uHgZj1iSmss1SM5ZHHFq7N1p8ja+EnmdqTyowQZ2OY1p
	4R3vsOt2V+qC/NhXdp9qvb78m4A==
X-Google-Smtp-Source: AGHT+IFPqiaqQaDfd0K1CsBbKurZW5kpLXyeu5IoVwRZWn29OitXw+Ri0iWpFzWfHQ/4u2TsP+2drg==
X-Received: by 2002:a05:600c:4ed4:b0:43c:f75a:eb54 with SMTP id 5b1f17b1804b1-43f2d7bc015mr16865335e9.13.1744275872683;
        Thu, 10 Apr 2025 02:04:32 -0700 (PDT)
Message-ID: <230e7222-386a-46a9-8e8c-2fbdb595b645@suse.com>
Date: Thu, 10 Apr 2025 11:04:30 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 04/16] kconfig: introduce option to independently
 enable libfdt
To: Alejandro Vallejo <agarciav@amd.com>
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Jason Andryuk <jason.andryuk@amd.com>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Michal Orzel <michal.orzel@amd.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-5-agarciav@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: <20250408160802.49870-5-agarciav@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.04.2025 18:07, Alejandro Vallejo wrote:
> From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
> 
> Currently, the inclusion of libfdt is controlled by the CONFIG_HAS_DEVICE_TREE
> kconfig flag. This flag also changes behavior in a few places, such as boot
> module processing for XSM. To support the ability to include libfdt without
> changing these behaviors, introduce CONFIG_LIBFDT. The inclusion of
> libfdt is then moved under CONFIG_LIBFDT.
> 
> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>

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

Looks independent of earlier patches, and hence may be possible to go in right
away?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Apr 10 09:07:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 09:07:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.945047.1343314 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2nsS-0000t1-Rp; Thu, 10 Apr 2025 09:07:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 945047.1343314; Thu, 10 Apr 2025 09:07: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 1u2nsS-0000su-Ox; Thu, 10 Apr 2025 09:07:16 +0000
Received: by outflank-mailman (input) for mailman id 945047;
 Thu, 10 Apr 2025 09:07: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=VA9I=W4=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1u2nsR-0000so-Gp
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 09:07:15 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de
 [2a07:de40:b251:101:10:150:64:2])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3191fa15-15eb-11f0-9eac-5ba50f476ded;
 Thu, 10 Apr 2025 11:07:14 +0200 (CEST)
Received: from imap1.dmz-prg2.suse.org (unknown [10.150.64.97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id D22341F385;
 Thu, 10 Apr 2025 09:07:13 +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 A1A8813886;
 Thu, 10 Apr 2025 09:07:13 +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 lkqyJUGK92fsEwAAD6G6ig
 (envelope-from <jgross@suse.com>); Thu, 10 Apr 2025 09:07:13 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3191fa15-15eb-11f0-9eac-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1744276033; 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=RG7oQRjFPo5SBEne+qF+QsXhTklGTjoy3A92M4wO+nQ=;
	b=rnfbOnJAt0PWbB5EB4jloFMZnFTr7l30kkKUkNt0cDMO5PpMw02A0mZ4htztTfQ1jL/jIj
	YcCoJFc4SQzSD2DuRALbHQVoU6VZby1tMujaB/jNB4GUXN4+4aRIVSHLPr4fCH1MAIbklL
	QAFFLq93Z62Wv3HQbYikYytZceRLtck=
Authentication-Results: smtp-out2.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1744276033; 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=RG7oQRjFPo5SBEne+qF+QsXhTklGTjoy3A92M4wO+nQ=;
	b=rnfbOnJAt0PWbB5EB4jloFMZnFTr7l30kkKUkNt0cDMO5PpMw02A0mZ4htztTfQ1jL/jIj
	YcCoJFc4SQzSD2DuRALbHQVoU6VZby1tMujaB/jNB4GUXN4+4aRIVSHLPr4fCH1MAIbklL
	QAFFLq93Z62Wv3HQbYikYytZceRLtck=
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.15-rc2
Date: Thu, 10 Apr 2025 11:07:13 +0200
Message-ID: <20250410090713.30027-1-jgross@suse.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Level: 
X-Spamd-Result: default: False [-2.80 / 50.00];
	BAYES_HAM(-3.00)[100.00%];
	MID_CONTAINS_FROM(1.00)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	R_MISSING_CHARSET(0.50)[];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	MIME_GOOD(-0.10)[text/plain];
	FUZZY_BLOCKED(0.00)[rspamd.com];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	MIME_TRACE(0.00)[0:+];
	ARC_NA(0.00)[];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:mid];
	FROM_EQ_ENVFROM(0.00)[];
	FROM_HAS_DN(0.00)[];
	RCPT_COUNT_THREE(0.00)[4];
	RCVD_COUNT_TWO(0.00)[2];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	TO_DN_NONE(0.00)[];
	RCVD_TLS_ALL(0.00)[]
X-Spam-Score: -2.80
X-Spam-Flag: NO

Linus,

Please git pull the following tag:

 git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip.git for-linus-6.15a-rc2-tag

xen: branch for v6.15-rc2

It contains the following patches:

- A simple fix adding the module description of the Xenbus frontend
  module.

- A fix correcting the xen-acpi-processor Kconfig dependency for PVH
  Dom0 support.

- A fix for the Xen balloon driver when running as Xen Dom0 in PVH mode.

- A fix for PVH Dom0 in order to avoid problems with CPU idle and
  frequency drivers conflicting with Xen.


Thanks.

Juergen

 arch/x86/xen/enlighten.c                   | 10 +++++++++
 arch/x86/xen/enlighten_pvh.c               | 19 ++++++++++++++++-
 arch/x86/xen/setup.c                       |  3 ---
 drivers/xen/Kconfig                        |  2 +-
 drivers/xen/balloon.c                      | 34 +++++++++++++++++++++---------
 drivers/xen/xenbus/xenbus_probe_frontend.c |  1 +
 6 files changed, 54 insertions(+), 15 deletions(-)

Arnd Bergmann (1):
      xenbus: add module description

Jason Andryuk (1):
      xen: Change xen-acpi-processor dom0 dependency

Roger Pau Monne (2):
      x86/xen: fix balloon target initialization for PVH dom0
      x86/xen: disable CPU idle and frequency drivers for PVH dom0


From xen-devel-bounces@lists.xenproject.org Thu Apr 10 09:09:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 09:09:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.945060.1343324 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2nuB-0001S8-7N; Thu, 10 Apr 2025 09:09:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 945060.1343324; Thu, 10 Apr 2025 09:09: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 1u2nuB-0001S1-2m; Thu, 10 Apr 2025 09:09:03 +0000
Received: by outflank-mailman (input) for mailman id 945060;
 Thu, 10 Apr 2025 09:09: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=w6Mj=W4=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u2nu9-0001Rv-ML
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 09:09:01 +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 70f939aa-15eb-11f0-9eac-5ba50f476ded;
 Thu, 10 Apr 2025 11:09:00 +0200 (CEST)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-39c0e0bc733so440070f8f.1
 for <xen-devel@lists.xenproject.org>; Thu, 10 Apr 2025 02:09:00 -0700 (PDT)
Received: from [10.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-39d893f0cebsm4155127f8f.61.2025.04.10.02.08.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 10 Apr 2025 02:08: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: 70f939aa-15eb-11f0-9eac-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744276140; x=1744880940; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=6WXqvtwxi/xM2HV6yukyzdpkByjc4er6MVuqZZvXXk8=;
        b=Pv6fgVW/8AIP03ACSEvkuF9l8/ZyYTfOhVOjCSXBNlHe+sK31WoegAuumjDBHQOKks
         NhOQbUiuMwywssriZK+xu+9ExXEVfGcIcXsDET+ECj/6GMFpBcRX7XWwhcWDzTjkHsXv
         uyL9zvsnI2fH97IePmybkG9eYEdrspAXIF1wezxR759ZJwxUw/qQz7dJ9+9heXuRxP8P
         dm+xE21Kxn0hB41WefIzaTnH5snbG9cnOQqkkM1NcV6V1jQ6xWtijlalWjVnrOJFUN6T
         p6M9sQNBWhDeUJcdcSM3KzPGepE64+Kq63MXrJ/bw7Sx5SKWUox6S2gEhZkHOmd1ukow
         zbfg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744276140; x=1744880940;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=6WXqvtwxi/xM2HV6yukyzdpkByjc4er6MVuqZZvXXk8=;
        b=gIY+/9nanHTL9K7exX9kt27TMm2jJS7Xyg5AGFBFrEVJLFFZI1EzHw+UAtIP0fM4nY
         PSuxuFIgCW+PvaeBSnKD7VqQmcgZItrF2rbSb7udCPflEOLpZE2ETAUT0V5tW+j6WoMq
         VcP562HhMHGsJUuhmu6u2psYHXTyDHoQZHI+GWUCwZhOYLbp6dW6WntszMsE70lcLJsk
         INXNpLLY+W6GHqPXuObrDxPlz92/oKOFCfS+VdGDMJI0F2ELpwCsI2Wjw0moaAJ3GpcB
         Zok9LiJ0gePEtp4xqdVWZLIVJ9Mu854ruLthm3khqHkJdQx7tchgnQCg4NCtIX91BRnW
         1ojQ==
X-Forwarded-Encrypted: i=1; AJvYcCVjF0NZGikw8GKgUOu+1lEOcqBz0MA+ovM4VWmiFzKUH80sd9VmsF/l5TmBO+tgH4CwG1bRXzr1dyQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyfHiEvmI09e3YxEZGM4Nty9i1On//nyPQqDsvc6bNjshCKDxMj
	DklzHdbOmDB/zlR2NgXrJ9qIh3+IwKOWpbw0+OvRQCAekx+ABQdbtsFeX9iQWg==
X-Gm-Gg: ASbGnctYp1XkhthxRNV0luq8gID/X+1cGFkRnaBZM/asdu+0WZVTns0Bpo0lN8+3AP+
	om+6O9gyY2tUzmk5PnUbiLt+sceyouJt080V9JqD7agacVmvOE+lxQwJ7EcFU+zC73qgQ10UHCx
	qzmW2BhpovrBgo/gGt32BNcOOlD/sHkENvYDBn+G92oli6h7U0UqPck8davtTdwUiPGyYvR1Zf4
	JghoSpANn1475zEWOdJUzKpHG/vXV1ZqRPKQejHCSg/lNJfVfxy2xfBqAc/I5FJ/wR131pv4G0v
	UhIJGvXzVbKeiKm8IGI/yoyq8AtlfhIjmClcYfsXV/lX62xlBw2bhLfjdAZcOs4t0yW5uwYvUvY
	7oWKMih17JNSZgqpKi7brWv+bVQ==
X-Google-Smtp-Source: AGHT+IF0doi8+8zKbYGHwCAmool+DcQeWaQFnMTiLPhPKfe0VRA3aJhpdE8bEkdJSY9iCUIGBD3RTw==
X-Received: by 2002:a05:6000:2505:b0:39c:1efb:ec93 with SMTP id ffacd0b85a97d-39d8f4e8b02mr1565651f8f.48.1744276140087;
        Thu, 10 Apr 2025 02:09:00 -0700 (PDT)
Message-ID: <d61f5fbc-8e28-454b-9931-c267d67cb491@suse.com>
Date: Thu, 10 Apr 2025 11:08:58 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 05/16] kconfig: introduce domain builder config option
To: Alejandro Vallejo <agarciav@amd.com>
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Jason Andryuk <jason.andryuk@amd.com>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Michal Orzel <michal.orzel@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: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-6-agarciav@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: <20250408160802.49870-6-agarciav@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.04.2025 18:07, Alejandro Vallejo wrote:
> --- /dev/null
> +++ b/xen/arch/x86/domain-builder/Kconfig

This really looks to be the first patch where it needs settling on whether
all of this is to live under arch/x86/. If it is to, the reasons need writing
down somewhere - maybe not here, but at least in the cover letter.

> @@ -0,0 +1,15 @@
> +
> +menu "Domain Builder Features"
> +
> +config DOMAIN_BUILDER
> +	bool "Domain builder (UNSUPPORTED)" if UNSUPPORTED
> +	select LIB_DEVICE_TREE

Was this meant to be LIBFDT?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Apr 10 09:17:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 09:17:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.945077.1343342 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2o29-0004ax-VX; Thu, 10 Apr 2025 09:17:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 945077.1343342; Thu, 10 Apr 2025 09:17: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 1u2o29-0004aq-Sn; Thu, 10 Apr 2025 09:17:17 +0000
Received: by outflank-mailman (input) for mailman id 945077;
 Thu, 10 Apr 2025 09:17: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=C125=W4=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u2o28-0004ak-QU
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 09:17:16 +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 982f10a8-15ec-11f0-9eac-5ba50f476ded;
 Thu, 10 Apr 2025 11:17:16 +0200 (CEST)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-43cf257158fso4568985e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 10 Apr 2025 02:17:15 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39d893773b6sm4160704f8f.27.2025.04.10.02.17.14
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 10 Apr 2025 02:17: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: 982f10a8-15ec-11f0-9eac-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744276635; x=1744881435; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=+mho9wvkejLlm6AszfDqYkJMQ0h1PNyKmhEcs9ot+UE=;
        b=JO6q8swQuzfmiWklQN0abZPxOGgx1ekuM47gmwMCAtw0QLRAe5D78pNf68G2UBeY4T
         owk6XrmMbpLWYbwC+LWdK1FeaeReq3l2gmqOmWoS8sOwq4ydmNGh/m15ebyZ50ceCsHK
         L1mIXRFodLFXzq6zHnoEzng9Z1123EhyiTaZ0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744276635; x=1744881435;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=+mho9wvkejLlm6AszfDqYkJMQ0h1PNyKmhEcs9ot+UE=;
        b=XJr0+aJr+vKeMOarBMMgBjXnN/Hagmtw2vviHoQ++JxOaJYQaGeY7j7y5HoLp/UrHZ
         AB1rnYCg3zsyoPkhvkMTpaXQRAg7eEczoKmI9QQlRX70xgZmw/Ls+/5McWPwhkjn59mw
         OGBGSPZe22xl/g1JnrlrylG46xmhElmqmRtYct+/VzNr558t1aeZVi9CE2zPxT6OfiOd
         Px9fWQ47QKuX6Vddn+Fa88VGbY3MydK1BBi2LLunzC2RIFGnYiJFNcTX/d1q46Wlygb4
         Bks+NdzvPDHcU5dUB5zWxL+KgrtrJj6pnOcHszwPtudqdNYtKk9c324N63j0jR3UKYX1
         Kqjg==
X-Forwarded-Encrypted: i=1; AJvYcCVKsI2MSxi3f+WhRhB/ffjhfhk1HPLoyBAkzQNmnTEi7Y/2BJoK93ByHBeHGim/3I0JcH6594PmZng=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzPx5u51xgMtmgBHOcg20hlputpamcbtFMF4/c3SB39QifstT26
	1opF9KiH9fXZ/6heSdINAnXezSQo5Fk3xWvNaZcwLaNi4PsoL21hahVoZvDgHTQ=
X-Gm-Gg: ASbGncuV0fN9nJmLwcjjLOONq7OWazO61kKmEwVTjlIh/Pnm6ywRQ7StgFX5FUiLgNF
	0MqsEN95WNDZII5iXcRTemKNh3pLpAY/w8mD11l8CkPKj7fV7z++5khM90pHGtcIpf9u+1YbC7i
	k9gHER1v5B4PI/ORZGWdbosCuVYI+X2lu8Ms7EYK5IsGoioeHvubsyVZmmuK37ISWRYK6Z9nTYB
	+uZae3M5xZcNoBFgo7ZdJMq2cjQd1mS+0Kl1hmY+cmTfRxaZn5/kd493y1jkEd3vYIpC3opOLEO
	8L67qB76ixTbKvv3rxB1hmobqjgNo9BWmZHYN93OaHpzQM0ZxW6jhR69AGxIY59xgcdatji16QX
	HuHtZNg==
X-Google-Smtp-Source: AGHT+IHU5miKtAVTMDa4h79t1oCR1l5nVpHTc/c98RAgghuEPjBYed+q5TjM3TWoKHrtQ+a6omnVdA==
X-Received: by 2002:a05:600c:34c2:b0:43b:ca39:6c7d with SMTP id 5b1f17b1804b1-43f2d7af675mr22818355e9.3.1744276635321;
        Thu, 10 Apr 2025 02:17:15 -0700 (PDT)
Message-ID: <5da1f4ec-43ca-4279-88dd-b51d57b306e4@citrix.com>
Date: Thu, 10 Apr 2025 10:17:14 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH TEST-ARTEFACTS 0/8] Cleanup and Linux ARM64 support
To: Jason Andryuk <jason.andryuk@amd.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>,
 Michal Orzel <michal.orzel@amd.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, Anthony PERARD
 <anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>
References: <20250409163702.2037301-1-andrew.cooper3@citrix.com>
 <828cabc9-512f-4c2f-a7d7-b9c8963c1300@citrix.com>
 <f7b820af-b548-4dc3-9af7-9d2214a232b2@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: <f7b820af-b548-4dc3-9af7-9d2214a232b2@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 10/04/2025 1:09 am, Jason Andryuk wrote:
> On 2025-04-09 13:01, Andrew Cooper wrote:
>> On 09/04/2025 5:36 pm, Andrew Cooper wrote:
>>> Various bits of cleanup, and support for arm64 Linux builds.
>>>
>>> Run using the new Linux 6.6.86 on (most) x86, and ARM64:
>>>   
>>> https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/1760667411
>>
>> Lovely, Linux 6.6.86 is broken for x86 PVH.  It triple faults very
>> early on.
>>
>> Sample log:
>> https://gitlab.com/xen-project/hardware/xen-staging/-/jobs/9673797450
>>
>> I guess we'll have to stay on 6.6.56 for now.  (Only affects the final
>> patch.)
>
> This is an AMD system:
>
> (XEN) [    2.577549] d0v0 Triple fault - invoking HVM shutdown action 1
> (XEN) [    2.577557] RIP:    0008:[<0000000001f851d4>]
>
> The instruction:
> ffffffff81f851d4:       0f 01 c1                vmcall
>
> vmcall is the Intel instruction, and vmmcall is the AMD one, so CPU
> detection is malfunctioning.
>
> (Early PVH is running identity mapped, so it's offset from
> ffffffff80000000)
>
> There are no debug symbols in the vmlinux I extracted from the bzImage
> from gitlab, but I can repro locally with on 6.6.86.  It's unclear to
> me why it's failing.
>
> Trying:
> diff --git i/arch/x86/xen/enlighten.c w/arch/x86/xen/enlighten.c
> index 0219f1c90202..fb4ad7fe3e34 100644
> --- i/arch/x86/xen/enlighten.c
> +++ w/arch/x86/xen/enlighten.c
> @@ -123,11 +123,10 @@ noinstr void *__xen_hypercall_setfunc(void)
>         if (!boot_cpu_has(X86_FEATURE_CPUID))
>                 xen_get_vendor();
>
> -       if ((boot_cpu_data.x86_vendor == X86_VENDOR_AMD ||
> -            boot_cpu_data.x86_vendor == X86_VENDOR_HYGON))
> -               func = xen_hypercall_amd;
> -       else
> +       if (boot_cpu_data.x86_vendor == X86_VENDOR_INTEL )
>                 func = xen_hypercall_intel;
> +       else
> +               func = xen_hypercall_amd;
>
>         static_call_update_early(xen_hypercall, func);
>
> But it still calls xen_hypercall_intel().  So maybe x86_vendor isn't
> getting set and ends up as 0 (X86_VENDOR_INTEL)?
>
> That's as far as I got here.
>
> Different but related, on mainline master, I also get a fail in
> vmcall. There, I see in the disassembly that
> __xen_hypercall_setfunc()'s calls to xen_get_vendor() is gone. 
> xen_get_vendor() seems to have been DCE-ed.  There is some new code
> that hardcodes features - "x86/cpufeatures: Add {REQUIRED,DISABLED}
> feature configs" - which may be responsible.

6.6.74 is broken too.  (That's the revision that the ARM tests want). 
So it broke somewhere between .56 and .74 which narrows the bisect a little.

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

In Gitlab, both AMD and Intel are failing in roughly the same way.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Apr 10 09:32:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 09:32:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.945092.1343352 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2oH0-0001t4-AY; Thu, 10 Apr 2025 09:32:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 945092.1343352; Thu, 10 Apr 2025 09:32: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 1u2oH0-0001sx-7T; Thu, 10 Apr 2025 09:32:38 +0000
Received: by outflank-mailman (input) for mailman id 945092;
 Thu, 10 Apr 2025 09:32: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=VA9I=W4=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1u2oGy-0001sb-EW
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 09:32:36 +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 bc2db4f5-15ee-11f0-9eac-5ba50f476ded;
 Thu, 10 Apr 2025 11:32:35 +0200 (CEST)
Received: by mail-ed1-x542.google.com with SMTP id
 4fb4d7f45d1cf-5e5e63162a0so891445a12.3
 for <xen-devel@lists.xenproject.org>; Thu, 10 Apr 2025 02:32:35 -0700 (PDT)
Received: from ?IPV6:2003:e5:873d:1a00:8e99:ce06:aa4a:2e7b?
 (p200300e5873d1a008e99ce06aa4a2e7b.dip0.t-ipconnect.de.
 [2003:e5:873d:1a00:8e99:ce06:aa4a:2e7b])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5f2fbc2d575sm2036210a12.46.2025.04.10.02.32.34
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 10 Apr 2025 02:32: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: bc2db4f5-15ee-11f0-9eac-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744277555; x=1744882355; 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=7vFju+lTLYiEYd/Lod9OroZAN93KWr5vYE+hR92c82M=;
        b=T43igRVp7lMbVsWyk2OyhbqqPRfZrl6Qg5NHyCQGcVtaY1U/5ezPzBk7V9hsdvVZlR
         GDjbndTW75CR2NiYg6he8zT8ABo1GbN8CIBRmRzjTBuw4euHWT9jr3dtZFTZLEgNei6q
         jM9YjOPt8s3Jehn6BxXqdaeY7cwAAbKnw8eP8Uaw+3dc9jpdDznf8bojAkOTQ0oHviqu
         yFxnRRIGE5MgmeyJlXACff+N5odzSq1RQpps+WhuRIHh7HimPExkCqXylIkxfs/nNzvc
         koGp0qBDkqlh4scxe+shLVukJ2aEb9i3X/a/QOje4XVty8YCeEmvxQg8OJzHvXON8/NA
         KIBw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744277555; x=1744882355;
        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=7vFju+lTLYiEYd/Lod9OroZAN93KWr5vYE+hR92c82M=;
        b=pcCEkL44+Iej/sblcKhy1crRcjWPyyjm0Pq15moy7x4pc18fXKbAU0qLaZeDD1W5Jc
         GpaMXnujbMutiWckNXcdty7pJlvoyQy54nHWkLWEDfNGKBPQlvcrbI90S3skKlX20K2V
         /ppSWu8cYgiw2FzFFrajSZo2MmQQX25+m0kUgNTLaKW7dz9H/sXpiEAHOYIwob8rW08X
         iSi4BfeQWJeILYz1W96moYHmDLMEDJUlXmmC3/SOI07oj50pEWmgPO+HXIjDCa89D49C
         yyeIcKqxRUEr7KOs7/b7wfOa0sBuzkFlIpCD1wqJ77RPvAA1GfJ5p6W/nhAWXLy/JHdO
         Kjcg==
X-Forwarded-Encrypted: i=1; AJvYcCWSHLwdKWhfufK4TOaXCTV1lqmfJLQnV7oGtpnaEYVTgN4mdRhchx0q4TJ5sOzXzi5uXyf0ck1BsQM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxauAAHc/n6uyuVn8hSRvrg/vYVNsraveVjmswGmPfmbJeISYMd
	Ar8cCRN56aLQW88KsiqZwB4Uyv3UbYw46TX8rXmHs8cFao9RCKLnBDRMoFHpIoA=
X-Gm-Gg: ASbGnct7l4zIO/xMehQDlSK6eEyW5qneJ8gjLdgmY5WVrRgoF2DG9v5es3h2uG5P+po
	mLxFNy3Epi5CLumZnMITL89Dcnao+cd7VJutFv49EMLR4MswaMkGqddmJT1p8wmbKvsCCrkC2oj
	sAizjJ6H99cFGWPmI0+h3COzn+CbXp4FGTP4qY3nU1Uw+uGRHSrDdN1ykzxT+OccQLXNepnBdde
	KiYSEQhpzGYvVBNftQ2Fwtfq+v2/pK5k22DDNkG0qaTXng4vgLgoK3t6qD/mGIktpqWXqarWA2B
	q3/5zIDnousAmn/jVgwy+2ze5/h0WA5E13eluwqMp/c/Ao82iWkatom1tQkL3qnR6A2987e5oAA
	ej6ZC88J7AH3jKKeACsYAZecgfSroUKWxKnIRMpfSrIZvHYCVvvBt+CXaMU5VDr4gbj7slnoo09
	vY
X-Google-Smtp-Source: AGHT+IF+esQYw4dVacwUlukNlazG9yFVPmEPhoXqUa8K5c4cz67dwvRPkfIP7Qf0TZmFOa7f9QuE5A==
X-Received: by 2002:a17:907:9688:b0:ac7:81bd:60e3 with SMTP id a640c23a62f3a-acabd205870mr171409966b.27.1744277554629;
        Thu, 10 Apr 2025 02:32:34 -0700 (PDT)
Message-ID: <6c1df460-6620-4439-b072-c23ebe738e99@suse.com>
Date: Thu, 10 Apr 2025 11:32:33 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH TEST-ARTEFACTS 0/8] Cleanup and Linux ARM64 support
To: Jason Andryuk <jason.andryuk@amd.com>,
 Andrew Cooper <andrew.cooper3@citrix.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>,
 Michal Orzel <michal.orzel@amd.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, Anthony PERARD <anthony.perard@vates.tech>
References: <20250409163702.2037301-1-andrew.cooper3@citrix.com>
 <828cabc9-512f-4c2f-a7d7-b9c8963c1300@citrix.com>
 <f7b820af-b548-4dc3-9af7-9d2214a232b2@amd.com>
Content-Language: en-US
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
Autocrypt: addr=jgross@suse.com; keydata=
 xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOB
 ycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJve
 dYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJ
 NwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvx
 XP3FAp2pkW0xqG7/377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEB
 AAHNH0p1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT7CwHkEEwECACMFAlOMcK8CGwMH
 CwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRCw3p3WKL8TL8eZB/9G0juS/kDY9LhEXseh
 mE9U+iA1VsLhgDqVbsOtZ/S14LRFHczNd/Lqkn7souCSoyWsBs3/wO+OjPvxf7m+Ef+sMtr0
 G5lCWEWa9wa0IXx5HRPW/ScL+e4AVUbL7rurYMfwCzco+7TfjhMEOkC+va5gzi1KrErgNRHH
 kg3PhlnRY0Udyqx++UYkAsN4TQuEhNN32MvN0Np3WlBJOgKcuXpIElmMM5f1BBzJSKBkW0Jc
 Wy3h2Wy912vHKpPV/Xv7ZwVJ27v7KcuZcErtptDevAljxJtE7aJG6WiBzm+v9EswyWxwMCIO
 RoVBYuiocc51872tRGywc03xaQydB+9R7BHPzsBNBFOMcBYBCADLMfoA44MwGOB9YT1V4KCy
 vAfd7E0BTfaAurbG+Olacciz3yd09QOmejFZC6AnoykydyvTFLAWYcSCdISMr88COmmCbJzn
 sHAogjexXiif6ANUUlHpjxlHCCcELmZUzomNDnEOTxZFeWMTFF9Rf2k2F0Tl4E5kmsNGgtSa
 aMO0rNZoOEiD/7UfPP3dfh8JCQ1VtUUsQtT1sxos8Eb/HmriJhnaTZ7Hp3jtgTVkV0ybpgFg
 w6WMaRkrBh17mV0z2ajjmabB7SJxcouSkR0hcpNl4oM74d2/VqoW4BxxxOD1FcNCObCELfIS
 auZx+XT6s+CE7Qi/c44ibBMR7hyjdzWbABEBAAHCwF8EGAECAAkFAlOMcBYCGwwACgkQsN6d
 1ii/Ey9D+Af/WFr3q+bg/8v5tCknCtn92d5lyYTBNt7xgWzDZX8G6/pngzKyWfedArllp0Pn
 fgIXtMNV+3t8Li1Tg843EXkP7+2+CQ98MB8XvvPLYAfW8nNDV85TyVgWlldNcgdv7nn1Sq8g
 HwB2BHdIAkYce3hEoDQXt/mKlgEGsLpzJcnLKimtPXQQy9TxUaLBe9PInPd+Ohix0XOlY+Uk
 QFEx50Ki3rSDl2Zt2tnkNYKUCvTJq7jvOlaPd6d/W0tZqpyy7KVay+K4aMobDsodB3dvEAs6
 ScCnh03dDAFgIq5nsB11j3KPKdVoPlfucX2c7kGNH+LUMbzqV6beIENfNexkOfxHfw==
In-Reply-To: <f7b820af-b548-4dc3-9af7-9d2214a232b2@amd.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------XmIyAUeSqRvplLG0dhTTOuaw"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------XmIyAUeSqRvplLG0dhTTOuaw
Content-Type: multipart/mixed; boundary="------------0Ud9wdh9gwKyrTP66xUU2CF8";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Jason Andryuk <jason.andryuk@amd.com>,
 Andrew Cooper <andrew.cooper3@citrix.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>,
 Michal Orzel <michal.orzel@amd.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, Anthony PERARD <anthony.perard@vates.tech>
Message-ID: <6c1df460-6620-4439-b072-c23ebe738e99@suse.com>
Subject: Re: [PATCH TEST-ARTEFACTS 0/8] Cleanup and Linux ARM64 support
References: <20250409163702.2037301-1-andrew.cooper3@citrix.com>
 <828cabc9-512f-4c2f-a7d7-b9c8963c1300@citrix.com>
 <f7b820af-b548-4dc3-9af7-9d2214a232b2@amd.com>
In-Reply-To: <f7b820af-b548-4dc3-9af7-9d2214a232b2@amd.com>

--------------0Ud9wdh9gwKyrTP66xUU2CF8
Content-Type: multipart/mixed; boundary="------------bdxVUsolLA942dSgQhp33BEJ"

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

T24gMTAuMDQuMjUgMDI6MDksIEphc29uIEFuZHJ5dWsgd3JvdGU6DQo+IE9uIDIwMjUtMDQt
MDkgMTM6MDEsIEFuZHJldyBDb29wZXIgd3JvdGU6DQo+PiBPbiAwOS8wNC8yMDI1IDU6MzYg
cG0sIEFuZHJldyBDb29wZXIgd3JvdGU6DQo+Pj4gVmFyaW91cyBiaXRzIG9mIGNsZWFudXAs
IGFuZCBzdXBwb3J0IGZvciBhcm02NCBMaW51eCBidWlsZHMuDQo+Pj4NCj4+PiBSdW4gdXNp
bmcgdGhlIG5ldyBMaW51eCA2LjYuODYgb24gKG1vc3QpIHg4NiwgYW5kIEFSTTY0Og0KPj4+
IMKgwqAgaHR0cHM6Ly9naXRsYWIuY29tL3hlbi1wcm9qZWN0L2hhcmR3YXJlL3hlbi1zdGFn
aW5nLy0vcGlwZWxpbmVzLzE3NjA2Njc0MTENCj4+DQo+PiBMb3ZlbHksIExpbnV4IDYuNi44
NiBpcyBicm9rZW4gZm9yIHg4NiBQVkguwqAgSXQgdHJpcGxlIGZhdWx0cyB2ZXJ5IGVhcmx5
IG9uLg0KPj4NCj4+IFNhbXBsZSBsb2c6DQo+PiBodHRwczovL2dpdGxhYi5jb20veGVuLXBy
b2plY3QvaGFyZHdhcmUveGVuLXN0YWdpbmcvLS9qb2JzLzk2NzM3OTc0NTANCj4+DQo+PiBJ
IGd1ZXNzIHdlJ2xsIGhhdmUgdG8gc3RheSBvbiA2LjYuNTYgZm9yIG5vdy7CoCAoT25seSBh
ZmZlY3RzIHRoZSBmaW5hbA0KPj4gcGF0Y2guKQ0KPiANCj4gVGhpcyBpcyBhbiBBTUQgc3lz
dGVtOg0KPiANCj4gKFhFTikgW8KgwqDCoCAyLjU3NzU0OV0gZDB2MCBUcmlwbGUgZmF1bHQg
LSBpbnZva2luZyBIVk0gc2h1dGRvd24gYWN0aW9uIDENCj4gKFhFTikgW8KgwqDCoCAyLjU3
NzU1N10gUklQOsKgwqDCoCAwMDA4Ols8MDAwMDAwMDAwMWY4NTFkND5dDQo+IA0KPiBUaGUg
aW5zdHJ1Y3Rpb246DQo+IGZmZmZmZmZmODFmODUxZDQ6wqDCoMKgwqDCoMKgIDBmIDAxIGMx
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHZtY2FsbA0KPiANCj4gdm1jYWxsIGlz
IHRoZSBJbnRlbCBpbnN0cnVjdGlvbiwgYW5kIHZtbWNhbGwgaXMgdGhlIEFNRCBvbmUsIHNv
IENQVSBkZXRlY3Rpb24gaXMgDQo+IG1hbGZ1bmN0aW9uaW5nLg0KPiANCj4gKEVhcmx5IFBW
SCBpcyBydW5uaW5nIGlkZW50aXR5IG1hcHBlZCwgc28gaXQncyBvZmZzZXQgZnJvbSBmZmZm
ZmZmZjgwMDAwMDAwKQ0KPiANCj4gVGhlcmUgYXJlIG5vIGRlYnVnIHN5bWJvbHMgaW4gdGhl
IHZtbGludXggSSBleHRyYWN0ZWQgZnJvbSB0aGUgYnpJbWFnZSBmcm9tIA0KPiBnaXRsYWIs
IGJ1dCBJIGNhbiByZXBybyBsb2NhbGx5IHdpdGggb24gNi42Ljg2LsKgIEl0J3MgdW5jbGVh
ciB0byBtZSB3aHkgaXQncyANCj4gZmFpbGluZy4NCj4gDQo+IFRyeWluZzoNCj4gZGlmZiAt
LWdpdCBpL2FyY2gveDg2L3hlbi9lbmxpZ2h0ZW4uYyB3L2FyY2gveDg2L3hlbi9lbmxpZ2h0
ZW4uYw0KPiBpbmRleCAwMjE5ZjFjOTAyMDIuLmZiNGFkN2ZlM2UzNCAxMDA2NDQNCj4gLS0t
IGkvYXJjaC94ODYveGVuL2VubGlnaHRlbi5jDQo+ICsrKyB3L2FyY2gveDg2L3hlbi9lbmxp
Z2h0ZW4uYw0KPiBAQCAtMTIzLDExICsxMjMsMTAgQEAgbm9pbnN0ciB2b2lkICpfX3hlbl9o
eXBlcmNhbGxfc2V0ZnVuYyh2b2lkKQ0KPiAgwqDCoMKgwqDCoMKgwqAgaWYgKCFib290X2Nw
dV9oYXMoWDg2X0ZFQVRVUkVfQ1BVSUQpKQ0KPiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgIHhlbl9nZXRfdmVuZG9yKCk7DQo+IA0KPiAtwqDCoMKgwqDCoMKgIGlmICgoYm9v
dF9jcHVfZGF0YS54ODZfdmVuZG9yID09IFg4Nl9WRU5ET1JfQU1EIHx8DQo+IC3CoMKgwqDC
oMKgwqDCoMKgwqDCoMKgIGJvb3RfY3B1X2RhdGEueDg2X3ZlbmRvciA9PSBYODZfVkVORE9S
X0hZR09OKSkNCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZnVuYyA9IHhlbl9o
eXBlcmNhbGxfYW1kOw0KPiAtwqDCoMKgwqDCoMKgIGVsc2UNCj4gK8KgwqDCoMKgwqDCoCBp
ZiAoYm9vdF9jcHVfZGF0YS54ODZfdmVuZG9yID09IFg4Nl9WRU5ET1JfSU5URUwgKQ0KPiAg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGZ1bmMgPSB4ZW5faHlwZXJjYWxsX2lu
dGVsOw0KPiArwqDCoMKgwqDCoMKgIGVsc2UNCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqAgZnVuYyA9IHhlbl9oeXBlcmNhbGxfYW1kOw0KPiANCj4gIMKgwqDCoMKgwqDCoMKg
IHN0YXRpY19jYWxsX3VwZGF0ZV9lYXJseSh4ZW5faHlwZXJjYWxsLCBmdW5jKTsNCj4gDQo+
IEJ1dCBpdCBzdGlsbCBjYWxscyB4ZW5faHlwZXJjYWxsX2ludGVsKCkuwqAgU28gbWF5YmUg
eDg2X3ZlbmRvciBpc24ndCBnZXR0aW5nIHNldCANCj4gYW5kIGVuZHMgdXAgYXMgMCAoWDg2
X1ZFTkRPUl9JTlRFTCk/DQo+IA0KPiBUaGF0J3MgYXMgZmFyIGFzIEkgZ290IGhlcmUuDQo+
IA0KPiBEaWZmZXJlbnQgYnV0IHJlbGF0ZWQsIG9uIG1haW5saW5lIG1hc3RlciwgSSBhbHNv
IGdldCBhIGZhaWwgaW4gdm1jYWxsLiBUaGVyZSwgSSANCj4gc2VlIGluIHRoZSBkaXNhc3Nl
bWJseSB0aGF0IF9feGVuX2h5cGVyY2FsbF9zZXRmdW5jKCkncyBjYWxscyB0byANCj4geGVu
X2dldF92ZW5kb3IoKSBpcyBnb25lLsKgIHhlbl9nZXRfdmVuZG9yKCkgc2VlbXMgdG8gaGF2
ZSBiZWVuIERDRS1lZC7CoCBUaGVyZSBpcyANCj4gc29tZSBuZXcgY29kZSB0aGF0IGhhcmRj
b2RlcyBmZWF0dXJlcyAtICJ4ODYvY3B1ZmVhdHVyZXM6IEFkZCANCj4ge1JFUVVJUkVELERJ
U0FCTEVEfSBmZWF0dXJlIGNvbmZpZ3MiIC0gd2hpY2ggbWF5IGJlIHJlc3BvbnNpYmxlLg0K
DQpUaGUgdGVzdCBmb3IgIVg4Nl9GRUFUVVJFX0NQVUlEIHdpbGwgcHJvYmFibHkgbmV2ZXIg
YmUgdHJ1ZSBub3cuDQoNCkkgZ3Vlc3MgdGhlIG1vc3Qgc2ltcGxlIGZpeCB3aWxsIGJlIHRv
IGp1c3QgY2FsbCB4ZW5fZ2V0X3ZlbmRvcigpDQp1bmNvbmRpdGlvbmFsbHkuDQoNCg0KSnVl
cmdlbg0K
--------------bdxVUsolLA942dSgQhp33BEJ
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-----

--------------bdxVUsolLA942dSgQhp33BEJ--

--------------0Ud9wdh9gwKyrTP66xUU2CF8--

--------------XmIyAUeSqRvplLG0dhTTOuaw
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/Ey8FAmf3kDEFAwAAAAAACgkQsN6d1ii/Ey+r
Agf/fdjYjfeAnFpkTxTWOuxvtRVSeSvNz/fnLypA9kcZx9V+CcFnUk4XSAQFi1Ue62HVTXvY/O+Q
jtE3f3Vf1CYzShqkOkTsRZFmd2vShvEF0U/45EYOUEzB7rCJBvnoha+5/UC3E/b8M9FXls124z0Y
tHkj29O119FekR4lRb1/MKlsm8aOFqzorxt4RA8RD9rquLxZuwFy6PN/NTL8slVJgZ7Ban1esvrh
GOR0RIP0c/2i0+J2nAsiAyRFmdEjcls5LOOfAlXHD1S1ebvp6Ft0sbP9SKAy9e9aMa4413mL8eC6
NDKGv3PDL1Ip+GC+2h6nroKgxVvcaFOhx5FwlRCKkQ==
=Lhir
-----END PGP SIGNATURE-----

--------------XmIyAUeSqRvplLG0dhTTOuaw--


From xen-devel-bounces@lists.xenproject.org Thu Apr 10 09:34:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 09:34:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.945103.1343361 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2oIO-0002Q6-KB; Thu, 10 Apr 2025 09:34:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 945103.1343361; Thu, 10 Apr 2025 09:34:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2oIO-0002Pz-HH; Thu, 10 Apr 2025 09:34:04 +0000
Received: by outflank-mailman (input) for mailman id 945103;
 Thu, 10 Apr 2025 09:34: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=My9i=W4=bounce.vates.tech=bounce-md_30504962.67f79082.v1-8ad5a537d5b3451185ff944bd7ecda08@srs-se1.protection.inumbo.net>)
 id 1u2oIN-0002Pt-H7
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 09:34:03 +0000
Received: from mail180-44.suw31.mandrillapp.com
 (mail180-44.suw31.mandrillapp.com [198.2.180.44])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ebc3e143-15ee-11f0-9ffb-bf95429c2676;
 Thu, 10 Apr 2025 11:33:55 +0200 (CEST)
Received: from pmta11.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail180-44.suw31.mandrillapp.com (Mailchimp) with ESMTP id
 4ZYF4f31Xwz706XCZ
 for <xen-devel@lists.xenproject.org>; Thu, 10 Apr 2025 09:33:54 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 8ad5a537d5b3451185ff944bd7ecda08; Thu, 10 Apr 2025 09:33: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: ebc3e143-15ee-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1744277634; x=1744547634;
	bh=0bO/zanw2FDenv2CZwniKj8laRPD05Ao2xxbyMAaBTg=;
	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=If7JfVC8Eun2x5Tu+mY7G8CdZxjbaK6fWIojjCrpjlOhjBdJrHCS2U0i+JZWuJ8GH
	 JGS28k3uyE3fn6eDShpGh4iz+Dhy+usEZsKiEPz7aSZ/ANf8u0B3BdIP+In6Gpp2Mo
	 9myzICFr5PCcIsWHUuq7oSixoPejGkbvKIBuh0S7rxHtNRj3aSDcgiDspCwHNFnt7G
	 WwDBOmCZlw4zsu2XOIDf/HhisKsU+98SaydfgeSXBIHV9SPDos0eFo5CFgLk9u0bJd
	 FFGbC9bIiD66sssTjddpY8Y0jdaZm4aYfhz6SZxOtS3IIUGMNukzrlwSOl1Dzs5diW
	 FhMpifoPGs0og==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1744277634; x=1744538134; i=anthony.perard@vates.tech;
	bh=0bO/zanw2FDenv2CZwniKj8laRPD05Ao2xxbyMAaBTg=;
	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=FyY3ut4uxzTGDKl1r210861QpItbHKXyamkIwgzlXwjVTdVUYDcWzcih9HFUYcUaW
	 ZMgEGcMdmsNS2O7BXzzMhsJQr5cQrtGuYMNJ8U01kzHgL1YaN1bnNc442bpaucUBD8
	 LVJpyzOKoxfZ+UKWCeYssccd0S6/kluNIapdFjHujiFPulj2NwL4c+K4CJaAF/6/f7
	 1ADsM+OrH92JvK4YsvJlEi6KETpPbC0hYv67Ly3hTASXMDubwTiYFLWm2c08QzDj12
	 ASN2jnhEgAcsujXc2IChqBTExrKPQwO8PBJh6eHWj8atkpnfplZSkaonozvwsS7G5C
	 qOIxw/xR4DyIw==
From: "Anthony PERARD" <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=202/8]=20Port=20containerise?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1744277630832
To: "Andrew Cooper" <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Stefano Stabellini" <sstabellini@kernel.org>, "Michal Orzel" <michal.orzel@amd.com>, "=?utf-8?Q?Marek=20Marczykowski-G=C3=B3recki?=" <marmarek@invisiblethingslab.com>
Message-Id: <Z_eQfmVjH5Z4TQ5K@l14>
References: <20250409163702.2037301-1-andrew.cooper3@citrix.com> <20250409163702.2037301-3-andrew.cooper3@citrix.com>
In-Reply-To: <20250409163702.2037301-3-andrew.cooper3@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.8ad5a537d5b3451185ff944bd7ecda08?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250410:md
Date: Thu, 10 Apr 2025 09:33:54 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Wed, Apr 09, 2025 at 05:36:56PM +0100, Andrew Cooper wrote:
> +BASE="registry.gitlab.com/xen-project/hardware/test-artifacts"
> +case "_${CONTAINER}" in
> +    _alpine-x86_64-base) CONTAINER="${BASE}/alpine:x86_64-base" ;;

There's no "images/alpine/x86_64-base.dockerfile" in the repo, do you
mean "alpine:x86_64-rootfs" instead?

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 Apr 10 09:35:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 09:35:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.945113.1343373 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2oJo-0002w9-0B; Thu, 10 Apr 2025 09:35:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 945113.1343373; Thu, 10 Apr 2025 09:35: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 1u2oJn-0002w0-Rp; Thu, 10 Apr 2025 09:35:31 +0000
Received: by outflank-mailman (input) for mailman id 945113;
 Thu, 10 Apr 2025 09:35: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=C125=W4=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u2oJm-0002vs-BV
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 09:35:30 +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 23e025fb-15ef-11f0-9eac-5ba50f476ded;
 Thu, 10 Apr 2025 11:35:29 +0200 (CEST)
Received: by mail-wr1-x42c.google.com with SMTP id
 ffacd0b85a97d-399749152b4so237796f8f.3
 for <xen-devel@lists.xenproject.org>; Thu, 10 Apr 2025 02:35:29 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39d893fdf3bsm4133990f8f.83.2025.04.10.02.35.28
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 10 Apr 2025 02:35:28 -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: 23e025fb-15ef-11f0-9eac-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744277729; x=1744882529; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=SW4Ik/wV4z/V5OEQf+s0ow10uVY0kYF6K9B8ww7eMD0=;
        b=k15DCjLcxjgzL0fnbRTXNzyzu8zi84OMRtEy1fMvZWq4KGD5fRICOQyAHzwDSTGf44
         oqHUAqGqjx+ZnV6jmtgz/GuVPER4b5cF7KgcXrUsLz8JoaQJKmz+Jzf6A/SRY4u/GS9E
         yqnACsXRwUaYWXtlIYkkw15rb7V/jVML/i7AU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744277729; x=1744882529;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=SW4Ik/wV4z/V5OEQf+s0ow10uVY0kYF6K9B8ww7eMD0=;
        b=LHmXFbVQj0QNR5vnJXoE4t3JH8vMjKAiOzWx3nFPfe04JcRk8hpFyGIfSj1imO6emq
         kKljSQOoNaZDnPYiP/MSixXqrLGRZQjya9oeLDRS8NRwCYgfP+w3Ou2+Bfzq5DKl5OaI
         Wz7APzoZi0ahRfCSF6EnLzcdT37z+0JR4hJcidd1yLBzGnXCu4X6EiBHPong0FaF9l3J
         3ytqrXWqHH5cK2H4bEmxNqKagVNESHGoacYzOFqRCdoNYzq3OXNwlWhRjLOs+gqsEyEe
         R8M87yBMzbX5Dioujzp+gTp5BgG2td15oJnoW2bNkmgTVKXWk8C4pzcbK5iVWGaih3gQ
         n8hg==
X-Gm-Message-State: AOJu0Yxf3U7oQWM5SZbaLOvfW33YqwthtqSTBZ2PErikI8bLWDWwMCjn
	CP54Be9btgv8yGI6gK0D4IW78I2zFW/SEdhq9oDOWjB9vJ6Ndbj5nPcn2ONTxjs=
X-Gm-Gg: ASbGncvyw8ShOk2kc/cegXgdv2MDARoS/2Tkgf2j6ThIFflG/ElpuBFprUkCAvQ2qHA
	NjCo1Ch4hVlK/u895ltp2TI785IXv9QLvEQy9tbz/b9mVwRNnWq80AQEdd+t7DBJa2ppxI+JvLX
	Oksg2+4t4yvkCLSSN35cVtUK38rOisvWtKSWOVRcTz9+HKbsFbqv4kLXgahtMhQ9hzJKHHL0EUb
	cZBLEBF9J8eVgZOtVeVUQLrDeElH9wCsf6QtKlAzeU1/9fitJt6iJgFwp/keGkpMSn0bR5dc1IS
	Dq/pVzSQvPGB28kqqcNjGeddo3Zyf8NomCRQ9hgRHcWLoD8Odh8krckyjtf6QgqcmQbdUbRPBRB
	JOKzmZg==
X-Google-Smtp-Source: AGHT+IFFAl/14o92Zmo3bXPV6LuunUDfSA8a0XSTE1s/v39muvzzlQR54qlDKHOofFAAFrfsz+DZ1A==
X-Received: by 2002:a05:6000:381:b0:391:4231:40a with SMTP id ffacd0b85a97d-39d8f474c13mr1745867f8f.33.1744277728741;
        Thu, 10 Apr 2025 02:35:28 -0700 (PDT)
Message-ID: <a065d9fc-e0ff-4f02-9baf-24ee6a25338a@citrix.com>
Date: Thu, 10 Apr 2025 10:35:27 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/8] Port containerise
To: Anthony PERARD <anthony.perard@vates.tech>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Michal Orzel <michal.orzel@amd.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
References: <20250409163702.2037301-1-andrew.cooper3@citrix.com>
 <20250409163702.2037301-3-andrew.cooper3@citrix.com> <Z_eQfmVjH5Z4TQ5K@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: <Z_eQfmVjH5Z4TQ5K@l14>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 10/04/2025 10:33 am, Anthony PERARD wrote:
> On Wed, Apr 09, 2025 at 05:36:56PM +0100, Andrew Cooper wrote:
>> +BASE="registry.gitlab.com/xen-project/hardware/test-artifacts"
>> +case "_${CONTAINER}" in
>> +    _alpine-x86_64-base) CONTAINER="${BASE}/alpine:x86_64-base" ;;
> There's no "images/alpine/x86_64-base.dockerfile" in the repo, do you
> mean "alpine:x86_64-rootfs" instead?

Yes and no.  I'm renaming the containers, but haven't posted that part
of the series yet.

This wants to go back to rootfs in the short term.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Apr 10 09:38:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 09:38:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.945126.1343383 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2oMK-0003Vh-Cl; Thu, 10 Apr 2025 09:38:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 945126.1343383; Thu, 10 Apr 2025 09:38: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 1u2oMK-0003Va-8n; Thu, 10 Apr 2025 09:38:08 +0000
Received: by outflank-mailman (input) for mailman id 945126;
 Thu, 10 Apr 2025 09:38: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=C125=W4=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u2oMI-0003VU-RF
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 09:38:06 +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 80fc8fad-15ef-11f0-9eac-5ba50f476ded;
 Thu, 10 Apr 2025 11:38:05 +0200 (CEST)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-43edecbfb94so6743335e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 10 Apr 2025 02:38:05 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39d89389f72sm4137248f8f.42.2025.04.10.02.38.04
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 10 Apr 2025 02:38:04 -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: 80fc8fad-15ef-11f0-9eac-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744277885; x=1744882685; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Ehf6MDnNuOD0ctLpObTA1Oi+jvFLRouboCnaqmlEZuw=;
        b=ApZjQjoO23Frp9HknV7MNKaEMsCt9VP0rKN5Whh2Vga7wBnywnnHvca+OETZnFLFdG
         xt3nDTcfX31Nlcqs9yHUh5QjTa0uE1WA86u8vw8BFTiooCZekpvckYci5I4bF9LUxpvX
         ZxYpEyVfQFrR/ITeAcbf1MrlCk8+/kQ0+ynkc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744277885; x=1744882685;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Ehf6MDnNuOD0ctLpObTA1Oi+jvFLRouboCnaqmlEZuw=;
        b=mmyR9aYdIMC9V9Ujcad8DemysDQ/ecUUmE7RX9eVcd6INR3xqyJqmxS78lBgqUYuix
         3LUXazneLXymstn6CTjG5vAPKR51XkHvt0WvyuX5qp3/U4bwsLj716UKxMPXaHazjIc3
         7tJxF/3n7Lz0hgJx3hOmQkYPskImb1+1Cs5Fy1k99c0GHr4VRI9OE8RP5Z43fiFFqhMx
         jLnE8qn+H04/tBTfVzjTifELrhYqxt0HNEoB2ACYI12xeJgJBxA4wNPIUTyl89PhulEF
         +IM06P35eRUCs2zA/NPKJX/tssW5O0JsR1mie4bUJ1dn1LWWn1fw47O3yFzc6TDx+YD1
         PxiQ==
X-Gm-Message-State: AOJu0YyGHa+HuDr1aro0IDwkAtsWQD1s4qE56rLtJkTpFZ8ir/TwN696
	JBrJd2eAL8jilKJxGeKfgyzE7I7MU0satuYoOSwoHqgmLiU/1DmxXfWhB1nQtaM=
X-Gm-Gg: ASbGncueikMDX2fNEITMvmalip6FlWy+mw2nRyuNMAPp93gGm01aOrHT7gg+skib+16
	/p6Ti3hdtbm3Ol7Jq0yo7vDhhJKsSVurAy8yR53D0bgqCVQIh9e6lObskZ64VilMRTT0hAOoOy7
	b9/dPOQOFTLje4S1KIjhfHDbE/U3LkpoRYKgz93q/2KlYzFGdd3kpQyFAkZ4UlSDpeEu2jzs/Qq
	BODa3Pn8xx+ReYYGjQuxz38WMA77Sz9wvDGXJ4nxNVdv0OKtea0ry5SWPrlAkeudClQ1b7MM9rg
	Q+94fNBiQzfSSm6iToy2u4kQpcvcD2w7bmajHoAUHk7AqlF5xc/A+yFRiD4131mxxUTRTi6mzzC
	ymQX9yQ==
X-Google-Smtp-Source: AGHT+IEXbs8xYmJ8tQGevFdbb4W/6yjlxQVQ0VtS11ykeXmVH2iLMq7lcy0iU/7rhFX5MOYH9jZdMw==
X-Received: by 2002:adf:9dc1:0:b0:39a:d20b:5c14 with SMTP id ffacd0b85a97d-39d8fd8a268mr1210053f8f.36.1744277884938;
        Thu, 10 Apr 2025 02:38:04 -0700 (PDT)
Message-ID: <fa1875a7-3267-447f-b96e-ce92e31887e8@citrix.com>
Date: Thu, 10 Apr 2025 10:38:03 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 4/8] Clean up Gitlab yaml
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Michal Orzel <michal.orzel@amd.com>,
 Anthony PERARD <anthony.perard@vates.tech>
References: <20250409163702.2037301-1-andrew.cooper3@citrix.com>
 <20250409163702.2037301-5-andrew.cooper3@citrix.com>
 <Z_arM5JqPuyt7dFm@mail-itl>
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: <Z_arM5JqPuyt7dFm@mail-itl>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 09/04/2025 6:15 pm, Marek Marczykowski-Górecki wrote:
> On Wed, Apr 09, 2025 at 05:36:58PM +0100, Andrew Cooper wrote:
>> Factor out the registry into a common location.  Fix the worflow name.  List
>> all the stages.  Set a default expiry of 1 month.
> This is okay, since last artifacts for a branch are preserved even if
> expired.
>
>> Note all the current jobs as legacy.  Their naming scheme needs changing, and
>> we'll use this opportunity to switch formats too.  However, the artefacts need
>> to stay using the old name until the final staging-* branch using them is
>> phased out.
> This could use a comment what should the new naming be.

Same as we use in Xen.  linux-$VER-$ARCH, as shown later in the series,
and alpine-$VER-$ARCH-rootfs (currently there's no $VER, and this is
going to break horribly when moving off 3.18).

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Apr 10 09:39:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 09:39:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.945139.1343391 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2oNj-00046k-Pt; Thu, 10 Apr 2025 09:39:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 945139.1343391; Thu, 10 Apr 2025 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 1u2oNj-00046d-NN; Thu, 10 Apr 2025 09:39:35 +0000
Received: by outflank-mailman (input) for mailman id 945139;
 Thu, 10 Apr 2025 09:39:34 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=w6Mj=W4=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u2oNi-00046X-Gh
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 09:39:34 +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 b576b102-15ef-11f0-9eac-5ba50f476ded;
 Thu, 10 Apr 2025 11:39:33 +0200 (CEST)
Received: by mail-wr1-x429.google.com with SMTP id
 ffacd0b85a97d-39c14016868so449477f8f.1
 for <xen-devel@lists.xenproject.org>; Thu, 10 Apr 2025 02:39:33 -0700 (PDT)
Received: from [10.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-39d8936115asm4318560f8f.12.2025.04.10.02.39.32
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 10 Apr 2025 02:39:32 -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: b576b102-15ef-11f0-9eac-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744277973; x=1744882773; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=tsq01yQqTKHo/6ctipWEXRrbdJBeY396uyVO71SAIQA=;
        b=NzDxsGVXeL++A8EzEczQncLv+fERhBYvXmA8en2XFgTZI7/aFSEn0g5hx+BH2+bgsk
         YO/thps7b3VEQTwq4vez1MbP884AQsdwhp4Xar1vLmJQAjuo6nHmPwgp8TgL4tAT0EeE
         0dqH1wKNwALEZhkMkWMOPzMP3majT8tsIYhtc10+CbgKcF2vthzpCULsBwlba8EhMFNf
         75at/E1eEWgdlbt1vr8C1X0eTaG9bpalX+2yUpHAh+woU8KrnCfQdcH2P/hEL6G7k0Oe
         K/NIpOnZ1LUgSMBhHMhU8r5ycAGLplwv68lz0zMYW0Zn16PstX51K5c1dcv+1oEIdPcP
         g96w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744277973; x=1744882773;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=tsq01yQqTKHo/6ctipWEXRrbdJBeY396uyVO71SAIQA=;
        b=KLpdG9iHUm6kw1Pjvq7N1c405Mf/7giGc4nPyDwhF7QIrbCQS1NBOe9UMvgtqDCJh+
         k/1fsIjkDPFE0OOyxsK49owYfcjdYOtxmSdqg84GswAC3LzUD8w+4jTibxHBn3rDphs6
         wiMNIa1Mr9N/Q3yUfhretZg7gn55hG+56DZznKRrICjCZpxmS5LrYWpzfLcMHS+2mR8P
         TJ3k2g8Mop7u77jZsUMPUWR9Luemq4GaN7NAjLBIMA0gtP9SdJoRTAIwy19QRO3OG2tH
         elCmjd9goBMPIgW9aT1n/uDury1a5MaELB6uNLYLONEtGJGvEQm9+Yv1VXJck40hZ3DP
         e2BQ==
X-Forwarded-Encrypted: i=1; AJvYcCXG2gxv41wue3utXhM4N2FZmX/XE78x+KwSGwtVkdSxYBAAMU3NPBDKkPfJUHZJp/5RIzdMzpRnMqs=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxj0qYRe2wwVmhfjIuLa0RS4OlT4N5YPfYiHLrfUxvFy56CiKiy
	ZhR3LDzFAukF//4+gQ+xx+3lptxeLQTX8t8b1hirWKkOBFO/kpkmGLMZzwwIzw==
X-Gm-Gg: ASbGncuuWdP1wzMXta00vFSo/f7cbPSlhunfVqDzcYj+RBuOgG4W/YioVwrxTHRYgfg
	Z3uN1zqJ590/I70xHmJ9hfuLdweGVGyrTvkQs39LQbsuBot9Ew2cAA0cPOZe31DbkKP1Tdh7yRe
	fCccpiF1c2RysHUnWNWdIfhMY6UkrwQGc3IFwkW+LdahQwZjLB82vh/aO6jy1EucykQMik7y5Tz
	/egh/pg2eTO/xbYtEnTxlv6pJdaDMPAD3v0+8/SXrIYmVcMSt/l1a5ucJGHI8knnWsmc7zvY9Es
	83AsBuYfqJFyX78s5YVCefBX7ApgTGga5x7d96ED9Fjy0U5sBCnBifGyauQIgMS8iuXYUIWlqRV
	4/g4O1DBWFO2TBxyY+T62Y6DN7g==
X-Google-Smtp-Source: AGHT+IF+CSldukE8NjcfFMaFMvMbr7cz+C1R3Nrjo8d9pHccuXQVhbPQglN7tCk93t9qZYeJ7TZ/SA==
X-Received: by 2002:a05:6000:4383:b0:391:4977:5060 with SMTP id ffacd0b85a97d-39d8fda7511mr1572935f8f.53.1744277972912;
        Thu, 10 Apr 2025 02:39:32 -0700 (PDT)
Message-ID: <c0d675de-6755-46d0-a5b4-c818798394a9@suse.com>
Date: Thu, 10 Apr 2025 11:39:31 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 06/16] x86/hyperlaunch: introduce the domain builder
To: Alejandro Vallejo <agarciav@amd.com>
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Jason Andryuk <jason.andryuk@amd.com>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Michal Orzel <michal.orzel@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: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-7-agarciav@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: <20250408160802.49870-7-agarciav@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.04.2025 18:07, Alejandro Vallejo wrote:
> --- a/xen/arch/x86/Makefile
> +++ b/xen/arch/x86/Makefile
> @@ -1,6 +1,7 @@
>  obj-y += acpi/
>  obj-y += boot/
>  obj-y += cpu/
> +obj-y += domain-builder/

I continue to be irritated that this isn't obj-$(DOMAIN_BUILDER). The
sole function in core.c has "if ( IS_ENABLED(CONFIG_DOMAIN_BUILDER) )" around
its entire body (which is unhelpful at least from an indentation pov), and
the sole function in fdt.c is only used by the one in core.c. builder_init()
clearly could have an inline stub alternative as of this patch. If future
patches change that picture, imo that would need saying here to justify this
unconditional descend into the new subdir.

> --- a/xen/arch/x86/domain-builder/Kconfig
> +++ b/xen/arch/x86/domain-builder/Kconfig
> @@ -3,7 +3,7 @@ menu "Domain Builder Features"
>  
>  config DOMAIN_BUILDER
>  	bool "Domain builder (UNSUPPORTED)" if UNSUPPORTED
> -	select LIB_DEVICE_TREE
> +	select LIBFDT

That's what the earlier patch meant to be doing?

> --- /dev/null
> +++ b/xen/arch/x86/domain-builder/Makefile
> @@ -0,0 +1,2 @@
> +obj-$(CONFIG_DOMAIN_BUILDER) += fdt.init.o
> +obj-y += core.init.o

*.init.o want enlisting into obj-bin-y.

> --- /dev/null
> +++ b/xen/arch/x86/domain-builder/core.c
> @@ -0,0 +1,57 @@
> +/* 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;

For people not using hyperlaunch (which for the time being is likely going
to be a majority) this log line will be little more than spam. I'd like it
to be considered to be dropped.

> --- /dev/null
> +++ b/xen/arch/x86/domain-builder/fdt.c
> @@ -0,0 +1,37 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +/*
> + * Copyright (C) 2024, Apertus Solutions, LLC
> + */
> +#include <xen/err.h>

Was xen/errno.h meant here?

> +#include <xen/init.h>
> +#include <xen/lib.h>

I don't see anything used from there.

> +#include <xen/libfdt/libfdt.h>
> +
> +#include <asm/bootinfo.h>
> +#include <asm/page.h>

How does page.h come into play here?

> --- a/xen/arch/x86/setup.c
> +++ b/xen/arch/x86/setup.c
> @@ -36,6 +36,7 @@
>  #include <asm/bzimage.h>
>  #include <asm/cpu-policy.h>
>  #include <asm/desc.h>
> +#include <asm/domain-builder.h>
>  #include <asm/e820.h>
>  #include <asm/edd.h>
>  #include <asm/genapic.h>
> @@ -1281,9 +1282,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);

For this I think it would be quite desirable if in a prereq patch i's type
was (finally) changed to unsigned int, which is how it's used effectively
everywhere, with one loop requiring a little bit of adjustment.

> +    bi->mods[i].type = BOOTMOD_KERNEL;

Overrunning the array if MAX_NR_BOOTMODS + 1 was returned.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Apr 10 09:41:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 09:41:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.945151.1343401 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2oPO-0006WQ-4G; Thu, 10 Apr 2025 09:41:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 945151.1343401; Thu, 10 Apr 2025 09:41: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 1u2oPO-0006WI-1H; Thu, 10 Apr 2025 09:41:18 +0000
Received: by outflank-mailman (input) for mailman id 945151;
 Thu, 10 Apr 2025 09: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=TBLJ=W4=bounce.vates.tech=bounce-md_30504962.67f79235.v1-df2486676a3f44c4932a2cbd74639f5a@srs-se1.protection.inumbo.net>)
 id 1u2oPN-0006Qy-25
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 09:41:17 +0000
Received: from mail180-44.suw31.mandrillapp.com
 (mail180-44.suw31.mandrillapp.com [198.2.180.44])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id eed6933b-15ef-11f0-9ffb-bf95429c2676;
 Thu, 10 Apr 2025 11:41:10 +0200 (CEST)
Received: from pmta11.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail180-44.suw31.mandrillapp.com (Mailchimp) with ESMTP id
 4ZYFF11Mcfz70669s
 for <xen-devel@lists.xenproject.org>; Thu, 10 Apr 2025 09:41:09 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 df2486676a3f44c4932a2cbd74639f5a; Thu, 10 Apr 2025 09:41: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: eed6933b-15ef-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1744278069; x=1744548069;
	bh=Uz04yy/kkZTV5Wpx3eGRD6DH5bZhwzXo5r6ZQhmzs+8=;
	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=o+RKKUOpGuHyCBUCc2zvqGC0fNOGEA3TpVTOXYW9jEMcCBWn0HCupeyNCl6G0Jy0V
	 kmHNSVJ+KmSi9ZryhBvjgS5vR+29H8yzysNtvD72QbCUD6whXFcrE6xpfwR11UpwCo
	 YeHsgqQIwMGG3+6J/RrkpjLlEpj6vjGlh6QpsuIYeYdpYZwwigOwDEnzEoGU5h6eOn
	 +pAFzmK+sE6+g34DpJ2/NiLHRxUFCv9Q6a5RYdAFdryhhIYyvSf00o5WHb4yjZWQU0
	 474SAtP7+39iDqe9z6W6uTxFBE5YPw4w7kfuHKT+zAuouKKqc2zqt63xP9TNErktQ+
	 Nic9h5M3myqYg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1744278069; x=1744538569; i=anthony.perard@vates.tech;
	bh=Uz04yy/kkZTV5Wpx3eGRD6DH5bZhwzXo5r6ZQhmzs+8=;
	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=mu0Yp1dPZs/4yuybgIQgwPTA4s45QNx0srtC8ASjwqqvbC9kNS0TwhsjfjW5jHzJw
	 tUmbeh9FVJmx1uFIo60Gz3fPKRvWvRns+/H7bqyS8JoUIzfn9pYpo0033k+XAtzYMF
	 nKHuv/s+bz//aZzH+2Zh+uTfOCNTjMOA+6lMAslpuJglCF4zBYjlTrGBlApXD87VvO
	 RgAvNyV8rbXmbPM6Ohg7/rLFV4WMXiUCzqeARfMfLCV+8GpG09AoIOK6ZLLJHVeFB2
	 rEuPIsCQNBJ6eFlY1oe0MAbC/FOfbDI8g0b3c03Y7VWvGfpqzaUAaN6xM5xsyzV/Oj
	 D/Pk+4zi0Qfyw==
From: "Anthony PERARD" <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=203/8]=20Fix=20container=20user=20setup?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1744278067731
To: "Andrew Cooper" <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Stefano Stabellini" <sstabellini@kernel.org>, "Michal Orzel" <michal.orzel@amd.com>, "=?utf-8?Q?Marek=20Marczykowski-G=C3=B3recki?=" <marmarek@invisiblethingslab.com>
Message-Id: <Z_eSM8NC5WeWPOy-@l14>
References: <20250409163702.2037301-1-andrew.cooper3@citrix.com> <20250409163702.2037301-4-andrew.cooper3@citrix.com>
In-Reply-To: <20250409163702.2037301-4-andrew.cooper3@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.df2486676a3f44c4932a2cbd74639f5a?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250410:md
Date: Thu, 10 Apr 2025 09:41:09 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Wed, Apr 09, 2025 at 05:36:57PM +0100, Andrew Cooper wrote:
> Use USER (and 'user' as normal), rather than specifying configuration from the
> outside.  This also fixes the fact that root-needing containers need to
> override the default.

This patch also removes one "docker:platform" which is redundant with
the containers image name.

> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.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 Apr 10 09:49:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 09:49:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.945171.1343411 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2oX8-0007w0-R7; Thu, 10 Apr 2025 09:49:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 945171.1343411; Thu, 10 Apr 2025 09: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 1u2oX8-0007vt-OZ; Thu, 10 Apr 2025 09:49:18 +0000
Received: by outflank-mailman (input) for mailman id 945171;
 Thu, 10 Apr 2025 09:49: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=vY8t=W4=alien8.de=bp@srs-se1.protection.inumbo.net>)
 id 1u2oX7-0007vn-4h
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 09:49:17 +0000
Received: from mail.alien8.de (mail.alien8.de [65.109.113.108])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0cbc00e3-15f1-11f0-9ffb-bf95429c2676;
 Thu, 10 Apr 2025 11:49:09 +0200 (CEST)
Received: from localhost (localhost.localdomain [127.0.0.1])
 by mail.alien8.de (SuperMail on ZX Spectrum 128k) with ESMTP id CA84140E0242; 
 Thu, 10 Apr 2025 09:49:07 +0000 (UTC)
Received: from mail.alien8.de ([127.0.0.1])
 by localhost (mail.alien8.de [127.0.0.1]) (amavisd-new, port 10026)
 with ESMTP id 8wo44ZIfANvj; Thu, 10 Apr 2025 09:49:04 +0000 (UTC)
Received: from zn.tnic (p579690ee.dip0.t-ipconnect.de [87.150.144.238])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange ECDHE (P-256) server-signature ECDSA (P-256) server-digest
 SHA256) (No client certificate requested)
 by mail.alien8.de (SuperMail on ZX Spectrum 128k) with ESMTPSA id CD7C140E0196;
 Thu, 10 Apr 2025 09:48: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: 0cbc00e3-15f1-11f0-9ffb-bf95429c2676
X-Virus-Scanned: Debian amavisd-new at mail.alien8.de
Authentication-Results: mail.alien8.de (amavisd-new); dkim=pass (4096-bit key)
	header.d=alien8.de
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alien8.de; s=alien8;
	t=1744278543; bh=+CEoqM5UxK2gsa7RoSFi814yQcDDwJYTR3gCRWdVrPY=;
	h=Date:From:To:Cc:Subject:References:In-Reply-To:From;
	b=CPsPdNZDGk6SPG0q2GiClvcJ64nWomMCN9Zo08GblxCAZH9xsReeA7O9Z02oGsmSu
	 Foz4f8gW5YLNfgSDYypvEJsnRNl5OiMLGSry3Mhkfbt/rZB3Ac0xdn6wCwCDe9OWpN
	 oqAekZj/G459bIofjTHHDE1AFwhFiqrdouVvs1kplAEXMR8e4OOuz8NSIaf4bIEXd0
	 4GpPwnQK2HElYq4i1qlw8zVQ6piZl5pH7dnQJ3YH+AyK+WleQp8gd9F2kgmTMxkfjj
	 dFQAQcR6NMHDQfomY5shGwo8gMu4AK9DAppW7NQ6YssKvvOxVhIszwJb86q6485sGE
	 WMmsVkCW0y02k1vrnPwvBTC9McRMdghgWwoDe8+g7jy4l5ynMcuOEJzcxK8tKSBE9U
	 Cga1tJVBvNVqedXZqpqWlpWGkJE+lSPDq2/LOyh+s/je+5M96UV0H/Zyf8T8LfBASt
	 nmZqOuy8onYjTmFokDk2laRArgGMefv5O9k7TiDtYZJbO64abI9eX1guBkAqui5Ylp
	 sx7NHKISan6yhfi9S5S369u4vKV3p7+zE8VONOzUqEV/j52RMRBXaYS9AiJ0LoG+mS
	 Nz1hvCHI1y09E0G/wKPm5hb5XzRHa5u03LdCOn6VJVB9NtnPXyjAoZTzghXxazYFFP
	 ruVMbuex2FrOypQCwEpogNHE=
Date: Thu, 10 Apr 2025 11:48:47 +0200
From: Borislav Petkov <bp@alien8.de>
To: Juergen Gross <jgross@suse.com>
Cc: linux-kernel@vger.kernel.org, x86@kernel.org,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	"H. Peter Anvin" <hpa@zytor.com>, xen-devel@lists.xenproject.org
Subject: Re: [PATCH] xen: fix multicall debug feature
Message-ID: <20250410094847.GAZ_eT__ab_VRmb8uk@fat_crate.local>
References: <20250327190602.26015-1-jgross@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <20250327190602.26015-1-jgross@suse.com>

On Thu, Mar 27, 2025 at 08:06:02PM +0100, Juergen Gross wrote:
> Initializing a percpu variable with the address of a struct tagged as
> .initdata is breaking the build with CONFIG_SECTION_MISMATCH_WARN_ONLY
> not set to "y".
> 
> Fix that by using an access function instead returning the .initdata
> struct address if the percpu space of the struct hasn't been
> allocated yet.
> 
> Fixes: 368990a7fe30 ("xen: fix multicall debug data referencing")
> Reported-by: Borislav Petkov <bp@alien8.de>
> Signed-off-by: Juergen Gross <jgross@suse.com>
> ---
>  arch/x86/xen/multicalls.c | 26 ++++++++++++++------------
>  arch/x86/xen/smp_pv.c     |  1 -
>  arch/x86/xen/xen-ops.h    |  3 ---
>  3 files changed, 14 insertions(+), 16 deletions(-)

Looks good, doesn't fire here anymore.

Acked-by: Borislav Petkov (AMD) <bp@alien8.de>
Tested-by: Borislav Petkov (AMD) <bp@alien8.de>

Thx!

-- 
Regards/Gruss,
    Boris.

https://people.kernel.org/tglx/notes-about-netiquette


From xen-devel-bounces@lists.xenproject.org Thu Apr 10 09:59:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 09:59:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.945182.1343422 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2ogs-0002t8-OE; Thu, 10 Apr 2025 09:59:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 945182.1343422; Thu, 10 Apr 2025 09: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 1u2ogs-0002t1-Ke; Thu, 10 Apr 2025 09:59:22 +0000
Received: by outflank-mailman (input) for mailman id 945182;
 Thu, 10 Apr 2025 09:59: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=C125=W4=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u2ogr-0002sv-Rl
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 09:59:21 +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 76808008-15f2-11f0-9ffb-bf95429c2676;
 Thu, 10 Apr 2025 11:59:16 +0200 (CEST)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-43d2d952eb1so4969615e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 10 Apr 2025 02:59:16 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39d8938a83esm4212132f8f.47.2025.04.10.02.59.14
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 10 Apr 2025 02:59: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: 76808008-15f2-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744279155; x=1744883955; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=18ZEjGNY5mJeNBXc1ft6OMaKW0sKAkG+uD9c51PQmRk=;
        b=FQsTSseMYPTNNxo2bRsoNWPNUvqx/BUbJHrGuIV4RIFG1MRFPi8sAnMk5T0ieprxje
         ofst+9TLTL0hjlzPIUAQxnmeTE08LSw9kjXofnChr8+i6ORzWms3S0rdZV4F6LiyBCw4
         HeDsXm8ua3gpOj/QSAWFOzqh6dRJ9Yo0+XnBc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744279155; x=1744883955;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=18ZEjGNY5mJeNBXc1ft6OMaKW0sKAkG+uD9c51PQmRk=;
        b=OdOnigO8K8TptRNyWxjG9Hkg2hFMI4bpwPehPwfhb1OOgvDOBeZ0N4qFiOlUI4L6cC
         BLQVvEZ417bm2LXKWc3HROx2NKvs9hsJg1ohy4W8SpcPXjhLNP2mrXjmuDU2AYAXTL+b
         P5/UDZNBv/QmcMWZkBTNtvK3afTGuUr7G2eOm0/WNTEShjH7SLGt+zr1PKM9NnN4hXTE
         qyUBx5OKhck5/Z5eZhpcF7m6F3tAjJgZWV52WA/SQQBXW0u6EC4gLKJ9qocolaIhB7YZ
         YC5HnxVoCVQqekb5kmauH60hnqoVKuXJNYfWv9RoDkGgxOdCVydNsHINZvp3RYWLQseO
         DItw==
X-Gm-Message-State: AOJu0YwIy2Mxfy+8EioV9w1Cjpn7KM8iu80pRnWHtamiOBHqOSxAtXmI
	MgT7+GV1dYDelKsQRlY3jISSiaH0VM2sXKtBJ05O0HUDkG/VW3g4Cb69AvAwoo+YOq5qfIvgUD4
	iaPw=
X-Gm-Gg: ASbGncv0UCaNgeui3NT366Ykxi9EcJEd8HxxEOgoWg6a9I1EN9uwy55Oqy7ieOnXwsp
	WnKAsYS87ti5UjaZ3akpJQ/PPkJlPecihBugdYEJgWPuca8hsKacme7p5lLlN3EvYIMxzhDiAg3
	vetgy1zABwxd/0CfOOLmqHku6UyI04YIndKITQI9Zc5jFt1CZgjVchsHmB/b5b55oi2CVrJNDp/
	fvO3QIiIO1DOGTNAXyucf4ndcUk7Ew0eyYwIPAJAEzusay4ttZxHBSAFmbW/M5pCwHGdCSVS4PN
	upr7rDye0Es+X7CCn8d2ATSQRXzY4rnyu14OoimD0EtYi0zrXGt0NWaRMO9z/vrTkOgxTuaLJ8K
	WdKGMmg==
X-Google-Smtp-Source: AGHT+IFEZJBVM2Zfz2WH+uR1rMRCFxYZQevPe7XN8vhK2qa2UeljyTUiPlD7kUQWhuLpseMMnfvhRw==
X-Received: by 2002:a05:600c:c3:b0:43c:fceb:91a with SMTP id 5b1f17b1804b1-43f33ca05eamr6686455e9.11.1744279155591;
        Thu, 10 Apr 2025 02:59:15 -0700 (PDT)
Message-ID: <c9c1090c-1ed5-46a8-bf5b-440367b1d553@citrix.com>
Date: Thu, 10 Apr 2025 10:59:14 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 7/8] Infrastructure for arm64 linux builds
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>,
 Michal Orzel <michal.orzel@amd.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, Anthony PERARD <anthony.perard@vates.tech>
References: <20250409163702.2037301-1-andrew.cooper3@citrix.com>
 <20250409163702.2037301-8-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: <20250409163702.2037301-8-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 09/04/2025 5:37 pm, Andrew Cooper wrote:
> diff --git a/images/alpine/3.18-arm64-build.dockerfile b/images/alpine/3.18-arm64-build.dockerfile
> new file mode 100644
> index 000000000000..c76ac435e8dd
> --- /dev/null
> +++ b/images/alpine/3.18-arm64-build.dockerfile
> @@ -0,0 +1,27 @@
> +# syntax=docker/dockerfile:1
> +FROM --platform=linux/arm64/v8 alpine:3.18
> +LABEL maintainer.name="The Xen Project" \
> +      maintainer.email="xen-devel@lists.xenproject.org"
> +
> +RUN apk --no-cache add bash
> +
> +RUN bash -ex <<EOF
> +      adduser -D user --shell bash
> +
> +      DEPS=(# Base environment
> +            musl-dev
> +            build-base
> +            curl

It turns out we don't need musl-dev.  build-base depends on libc-dev
which musl-dev provides.  This was a bad dependency brought across from
the form we have in xen.git right now.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Apr 10 10:08:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 10:08:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.945187.1343432 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2ooz-0006II-F9; Thu, 10 Apr 2025 10:07:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 945187.1343432; Thu, 10 Apr 2025 10: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 1u2ooz-0006IB-Br; Thu, 10 Apr 2025 10:07:45 +0000
Received: by outflank-mailman (input) for mailman id 945187;
 Thu, 10 Apr 2025 10:07: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=W7Nm=W4=bounce.vates.tech=bounce-md_30504962.67f7986c.v1-8db22e515d8b48898e28ae5f29a04cca@srs-se1.protection.inumbo.net>)
 id 1u2oox-0006I5-OG
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 10:07:43 +0000
Received: from mail180-44.suw31.mandrillapp.com
 (mail180-44.suw31.mandrillapp.com [198.2.180.44])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a3690bfd-15f3-11f0-9eac-5ba50f476ded;
 Thu, 10 Apr 2025 12:07:42 +0200 (CEST)
Received: from pmta11.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail180-44.suw31.mandrillapp.com (Mailchimp) with ESMTP id
 4ZYFqc3c9jz706Llj
 for <xen-devel@lists.xenproject.org>; Thu, 10 Apr 2025 10:07:40 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 8db22e515d8b48898e28ae5f29a04cca; Thu, 10 Apr 2025 10:07: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: a3690bfd-15f3-11f0-9eac-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1744279660; x=1744549660;
	bh=oxhuwaPVjRCoJyQJsC6VWvI5yZFQhXSzzOFspvE/BZ4=;
	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=AbavUKpUdFI3b89Pe2TAF8L/A8P6sV9v/+AcPT/kTS0uBIvy9Z8H9jmjWDVadnxjT
	 H8/yVREWEQohscAA1Y07rNnbU9WS2axL40gyGsyaEL79djTOwK17qs/WibdelZFyO8
	 ERzhOyl3bITH41ldvGdBT07eyn5fhNzYgFFMd6KexsXl0UImcVTOMtCw+tx+OlIB2f
	 h4axYbnXLhbl3IdPapeyxfVa5J+Yquyri/TefKvb+3GLvtXJ+pbBt78mKS211DOk8S
	 BGlM9hbz73sBCxak0ItINF6/tsmo+U7UmrlXDO4HG8mHNu5CJJW2fIg/LaCcCDdnWs
	 CoCi2nIEC6KSA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1744279660; x=1744540160; i=anthony.perard@vates.tech;
	bh=oxhuwaPVjRCoJyQJsC6VWvI5yZFQhXSzzOFspvE/BZ4=;
	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=Ss4JEkkaL/G3DheTOcKv3VpeQL4kxPWqeyWG1GjHlRciSZ8EpY9uIBF4t3SKMFBKK
	 NlaBEsRzVySLdIwyu2rR2vZNoGG0X+q8ZL1ob6kMv5fxdhHn0NO6dUFj8NTSR97Z4Q
	 8EAPLTVx4u2xQLWGfTu2IpvXd0XE+W15LpiQdxQ8Q2jjXycp6aq60XJvtRZa8T7t6p
	 XqcYJq3q8WJuMjnMV6oRHBeP5LZKfLlfvFEPy6c+NBeprUpAGYb7S12kglsNh+BUQt
	 2rIy+mHPUd+2ftQGvYrwxGoYh7ohJxb7Oym4yErnKA09ackmGax/C0ogWZGjPMjJ7B
	 pfG9vktdtmNmA==
From: "Anthony PERARD" <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=204/8]=20Clean=20up=20Gitlab=20yaml?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1744279659146
To: "Andrew Cooper" <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Stefano Stabellini" <sstabellini@kernel.org>, "Michal Orzel" <michal.orzel@amd.com>, "=?utf-8?Q?Marek=20Marczykowski-G=C3=B3recki?=" <marmarek@invisiblethingslab.com>
Message-Id: <Z_eYagfQ8vlMYenK@l14>
References: <20250409163702.2037301-1-andrew.cooper3@citrix.com> <20250409163702.2037301-5-andrew.cooper3@citrix.com>
In-Reply-To: <20250409163702.2037301-5-andrew.cooper3@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.8db22e515d8b48898e28ae5f29a04cca?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250410:md
Date: Thu, 10 Apr 2025 10:07:40 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Wed, Apr 09, 2025 at 05:36:58PM +0100, Andrew Cooper wrote:
> diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
> index 36ec6a7e1ee5..5a0a853e551d 100644
> --- a/.gitlab-ci.yml
> +++ b/.gitlab-ci.yml
> @@ -1,12 +1,19 @@
> +variables:
> +  REGISTRY: registry.gitlab.com/xen-project/hardware/test-artifacts

Did you consider naming that variable XEN_REGISTRY like in the xen.git
repo? REGISTRY is a fine name too.

> +
>  workflow:
> -  name: "xen test artifacts"
> +  name: "Xen test artifacts"

Isn't this a very useless workflow:name? Can I suggest to remove it
instead? I mean, currently, all pipeline appear to do the same thing:

    https://gitlab.com/xen-project/hardware/test-artifacts/-/pipelines

Without "workflow:name" set, the default name will be the subject of the
top commit.

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 Apr 10 10:10:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 10:10:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.945204.1343442 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2orQ-0007qZ-VW; Thu, 10 Apr 2025 10:10:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 945204.1343442; Thu, 10 Apr 2025 10:10:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2orQ-0007qS-R8; Thu, 10 Apr 2025 10:10:16 +0000
Received: by outflank-mailman (input) for mailman id 945204;
 Thu, 10 Apr 2025 10:10:15 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=w6Mj=W4=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u2orP-0007qF-4L
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 10:10: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 fe724179-15f3-11f0-9eac-5ba50f476ded;
 Thu, 10 Apr 2025 12:10:14 +0200 (CEST)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-43cf257158fso4971115e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 10 Apr 2025 03:10:14 -0700 (PDT)
Received: from [10.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-39d893f0b09sm4405994f8f.63.2025.04.10.03.10.12
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 10 Apr 2025 03:10:13 -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: fe724179-15f3-11f0-9eac-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744279813; x=1744884613; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=lAdcojYXNmts2RZv+NS1hU6JVJ7zLv+o+fbk/NGOn2A=;
        b=P/No0bjyNX02A+dtns3K3p8+CkNbykdZ2yv9X5YXpaw+Kz9EaQRazp1DgIugQxGvT5
         nwDL/QJKw8YTxIUWAGsd35nW/5ESSEC//uAbOglyfgdIfnAIWHoCAU1mjaVaTEH+HGCo
         17wHDXr3Q96W9qwXsrlcSslhmG8Fa0Wx57VH5ilEhJQippZ3W/tP7FmKZ7fYjBVV5pl/
         aQBaO+jkbI0vbarFMURD3WoxKvXW7/8LrNS6ekEXbrPW2CGE/zug7RwLAzAz092kwl28
         R/KvxGpUQWi5TGUFTQxlqGyM7ksrBcHDsBls4Fwni6xoUgSI3HYuj2pZb5j/Z5YFk2u0
         kP6w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744279813; x=1744884613;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=lAdcojYXNmts2RZv+NS1hU6JVJ7zLv+o+fbk/NGOn2A=;
        b=QVqtQpfV8i4kdrC4wGRNCORU8twq9pUYUzleAcnh1VK3emT5pqwzBX+gYqDxeOy6dl
         PISxZt+O+ZSl7rkY+WA+FamJILtL3X0GBqN5GIFRVfAn5cM1/pI1ksKES1I3SRxw2P3x
         6mAGoZupIQGiKLPSGEcuyMRryVdyVquHCWF5oZ9Z+ztY2fXCzZsc3KFL2GHeiY1X5Vh6
         BGCjfDs2bqvzbomM1JDAcp/rZ2Z7uQ/ceGm8a/6jdGhbQ5AU8j0QinfVeV/88qG4kcmc
         y29z1bCZiau7glIC7r8YeLrYBTU+3fEBUq98eUg25uTM2UiaD3sRlDyIxCaPJF1AHugT
         CRYg==
X-Forwarded-Encrypted: i=1; AJvYcCXunihmjLAjMJq0OxxXx9/ivk20s7kzjfvbULbtLkbx6uv3y/FOKV6dx7RPrX/N3ViGTABrSjpsXMk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxIL3cre7Dr2lxoTCALUA4sxxTr2TuQfyNrrsb94xm/x6TXtN9j
	Zanbj0Dmmb0nY/ZuI9beYd+2U4ton5AAp0PqO6XSDzOkJRzEy2kIJzPXW/4WYw==
X-Gm-Gg: ASbGncuSTQmfs0YDIVdRpg0eYkqC16rafRyXwQ3/osIx7DGzlQNWFIqPphhfob0hWan
	uGhNXoFtBqdHXc8fD5LckPP4DlZLuaB959JTZPNa+7tZZcLADd9RCRdFhw/IMwmnDDNnZats7ll
	1Bj/D2wkU3llSbP/ugkHCXHRz6QFPjsVPSOW+SBEdyjP4fOIjg2dvEKAePsUz4n7Pqe5jMiixmV
	Ee9bkZ4c9bGtp1GJ9HUitrCSZJW4/2j6m8qvG+QeO30owCcJBxA6fZmYYQYtiqDmoF/qSfOhy9D
	WtZAYEtyslIq05xLYdrmB2y41UCWZ4PSUbMyWcQhk9+NWMXfO0ZW7PNBuLe8XYO6cuWRvVAP9oD
	1FJC47JQhJKkhCCvV+ezDYaO0IA==
X-Google-Smtp-Source: AGHT+IGDdczee2yei4Hnu3vDzTnI7UZSwb7toHT3DN+AZc1shTQP8cqqGcidLYp8+KEDmWMbxkWMXA==
X-Received: by 2002:a05:600c:4c19:b0:43c:f00b:d581 with SMTP id 5b1f17b1804b1-43f2f359441mr11236275e9.29.1744279813453;
        Thu, 10 Apr 2025 03:10:13 -0700 (PDT)
Message-ID: <04fcb576-7a6f-48d9-abb5-72f5fd728013@suse.com>
Date: Thu, 10 Apr 2025 12:10:11 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 07/16] x86/hyperlaunch: initial support for hyperlaunch
 device tree
To: Alejandro Vallejo <agarciav@amd.com>
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Jason Andryuk <jason.andryuk@amd.com>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Michal Orzel <michal.orzel@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: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-8-agarciav@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: <20250408160802.49870-8-agarciav@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.04.2025 18:07, Alejandro Vallejo wrote:
> --- a/xen/arch/x86/domain-builder/core.c
> +++ b/xen/arch/x86/domain-builder/core.c
> @@ -44,6 +44,21 @@ void __init builder_init(struct boot_info *bi)
>              break;
>          }
>      }
> +
> +    if ( bi->hyperlaunch_enabled )
> +    {

Not knowing what else if going to appear here and in what shape, could the
if() here be avoided by making case blocks in the earlier switch setting
the field to false (which is kind of redundant anyway with it starting out
false) use "return" instead of "break"? The the setting of the field to
true could also be centralized below the switch().

> --- a/xen/arch/x86/domain-builder/fdt.c
> +++ b/xen/arch/x86/domain-builder/fdt.c
> @@ -13,6 +13,36 @@
>  
>  #include "fdt.h"
>  
> +static int __init find_hyperlaunch_node(const 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;

Could I talk you into omitting such unnecessary "else"?

> @@ -20,7 +50,41 @@ int __init has_hyperlaunch_fdt(const struct boot_info *bi)
>  
>      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;
> +    const 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 )

Simply "!= 1"?

> --- a/xen/arch/x86/domain-builder/fdt.h
> +++ b/xen/arch/x86/domain-builder/fdt.h
> @@ -11,11 +11,16 @@ struct boot_info;
>  
>  #ifdef CONFIG_DOMAIN_BUILDER
>  int has_hyperlaunch_fdt(const struct boot_info *bi);
> +int walk_hyperlaunch_fdt(struct boot_info *bi);
>  #else
>  static inline int __init has_hyperlaunch_fdt(const struct boot_info *bi)
>  {
>      return -EINVAL;
>  }
> +static inline int __init walk_hyperlaunch_fdt(struct boot_info *bi)
> +{
> +    return -EINVAL;
> +}

There's no need for this stub (nor the has_hyperlaunch_fdt() one, as I
notice only now) - even with present arrangements calling code is guarded
such that DCE will take care of eliminating the call, and hence having a
declaration suffices.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Apr 10 10:11:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 10:11:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.945216.1343453 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2ot0-0001iM-8L; Thu, 10 Apr 2025 10:11:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 945216.1343453; Thu, 10 Apr 2025 10: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 1u2ot0-0001iF-4T; Thu, 10 Apr 2025 10:11:54 +0000
Received: by outflank-mailman (input) for mailman id 945216;
 Thu, 10 Apr 2025 10:11: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=C125=W4=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u2osy-0001i9-Pr
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 10:11:52 +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 382e6922-15f4-11f0-9ffb-bf95429c2676;
 Thu, 10 Apr 2025 12:11:50 +0200 (CEST)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-43cfb6e9031so5862245e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 10 Apr 2025 03:11:50 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39d8936115asm4407210f8f.12.2025.04.10.03.11.49
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 10 Apr 2025 03:11:49 -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: 382e6922-15f4-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744279910; x=1744884710; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=DcN7auf3s/RSmxKl5bmo+zlo3eyaeJm+WxAIcMe2E8w=;
        b=rPnKH2uLjTldeEQLxe82TzBpSUdHjt8hp7b5zSE1TFMN7B3YUNBFxLVl+E2u2i56vh
         FFnDRFUgg5mYfeWksz6cJaTbB0wiP7acIt9Ke4bOuFHyDS0Y3ezhi+HWFKXyFrE19t7n
         wF9arbgliy0t//8vi2IOE5u/i+iWcnB8tn8ak=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744279910; x=1744884710;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=DcN7auf3s/RSmxKl5bmo+zlo3eyaeJm+WxAIcMe2E8w=;
        b=QysLGtCJITLL/4oX/1HmfFy9I39tW7KUcPb/ZLBy0Px1b3OUIub+jYI0EhXOeWxoc0
         Z84iCsu7sDQwtVlqArs4GftSrsYzeywVoTbbu2lLC5vJJYPFqyz/OgM2BUrscS0TjjOU
         wqdwdPTfL5aFm6FAl+9DTJubAxr6sN0fqtJv95idbl9OHKKBo7GQF8qZQg/cC2c9RwZ4
         fQVgK7mqR5eZEogXMLM5Zwnxqs5Zi4XTPhXSC2EjkRODTbhmePsibl6lSFALILnod9MM
         ab3ktjGQsb+JDd5YoFGG7FuGjRkyu0HiCKCUGX/vcmoXKoS5HRY0LxQ5Wka+oTyiFBCI
         oraw==
X-Gm-Message-State: AOJu0YzDQvHP8rp4YQPHGdGuJPCHu7qZAQKmSSCXTwXfu+0OmVuxsyvM
	mhfokbRLyUcSYX5B18ylNv00l9UsD5pFp4wldKmzZxEaRo1i3ThvObOKsOvR4jE=
X-Gm-Gg: ASbGncsWvI4zcEDgl7YgHSZnq7IgWHrGgPTrWUvTCB14ToS+Nfjfv+NHeIiaVfBh3st
	Vqd79lwXLIi667Zr3Y4CilfKw0NjOLL8rbuW4JhfKXlc6C2QOd4UFkAC4guX0O90GKBTIAt+H+a
	ZevzVzPY89bWLLV1R/KM8DL7MACnvZbgr788mejPGXcNmYFn5yrH1nncHsL2exHJXs8CyHzPmbI
	OY89pnAp79VXTx8tWuK4q76T0eFlGNsJl7oqZ2jZmsaaCf7pdmVOpcI1IWb2qbC8MgQhIkOyH+v
	ET6GwBguHkQHC2clu1niuWU87PcVFwm6M8KCU9FTOm2mxdVpTyrXh/hdquCQgbbLsp/kfmiYyTf
	EkKgaAA==
X-Google-Smtp-Source: AGHT+IHbSrKSoSvXGKpxBTKh81SdPDIIUenpf5mQqHcOnTUWu3XGpuqS0X1PUuDvFEtejWa7/NOfcg==
X-Received: by 2002:a05:600c:4e54:b0:43c:efed:732d with SMTP id 5b1f17b1804b1-43f2d7da910mr27479575e9.16.1744279910327;
        Thu, 10 Apr 2025 03:11:50 -0700 (PDT)
Message-ID: <51de54c6-4540-4b84-ad96-9d2edc487016@citrix.com>
Date: Thu, 10 Apr 2025 11:11:49 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 4/8] Clean up Gitlab yaml
To: Anthony PERARD <anthony.perard@vates.tech>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Michal Orzel <michal.orzel@amd.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
References: <20250409163702.2037301-1-andrew.cooper3@citrix.com>
 <20250409163702.2037301-5-andrew.cooper3@citrix.com> <Z_eYagfQ8vlMYenK@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: <Z_eYagfQ8vlMYenK@l14>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 10/04/2025 11:07 am, Anthony PERARD wrote:
> On Wed, Apr 09, 2025 at 05:36:58PM +0100, Andrew Cooper wrote:
>> diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
>> index 36ec6a7e1ee5..5a0a853e551d 100644
>> --- a/.gitlab-ci.yml
>> +++ b/.gitlab-ci.yml
>> @@ -1,12 +1,19 @@
>> +variables:
>> +  REGISTRY: registry.gitlab.com/xen-project/hardware/test-artifacts
> Did you consider naming that variable XEN_REGISTRY like in the xen.git
> repo? REGISTRY is a fine name too.

I did, except the makefile for rebuilding takes REGISTRY, so this
removes a REGISTERY=$XEN_REGISTRY from the container rebuild logic.

Which is another thing I haven't posted, because it turns out our
docker-in-docker only works for x86, not for ARM.

>
>> +
>>  workflow:
>> -  name: "xen test artifacts"
>> +  name: "Xen test artifacts"
> Isn't this a very useless workflow:name? Can I suggest to remove it
> instead? I mean, currently, all pipeline appear to do the same thing:
>
>     https://gitlab.com/xen-project/hardware/test-artifacts/-/pipelines
>
> Without "workflow:name" set, the default name will be the subject of the
> top commit.

I did wonder about the utility of it.  I'll drop.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Apr 10 10:41:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 10:41:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.945236.1343462 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2pLV-0001hS-DL; Thu, 10 Apr 2025 10:41:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 945236.1343462; Thu, 10 Apr 2025 10:41: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 1u2pLV-0001hL-Ac; Thu, 10 Apr 2025 10:41:21 +0000
Received: by outflank-mailman (input) for mailman id 945236;
 Thu, 10 Apr 2025 10:41: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=C125=W4=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u2pLU-0001hF-0l
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 10:41:20 +0000
Received: from mail-wm1-x331.google.com (mail-wm1-x331.google.com
 [2a00:1450:4864:20::331])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 55d411c2-15f8-11f0-9eac-5ba50f476ded;
 Thu, 10 Apr 2025 12:41:18 +0200 (CEST)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-43cef035a3bso4621145e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 10 Apr 2025 03:41:18 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43f233c49f7sm46281065e9.17.2025.04.10.03.41.17
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 10 Apr 2025 03:41: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: 55d411c2-15f8-11f0-9eac-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744281678; x=1744886478; 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=Je6SzOfgaeR0dKqxUOU/vL7hL2d4Km4Irm8S8cFhees=;
        b=nPV9oqPwkEF1SYhBeKwRTOS27fyIuZsZM+bM+q9LHTl+4InuywjwtVd2duHkQ3z0R3
         e1rTj9BFt7pp3ETiOHhdk2wZfr5uy4535Ye/BBIQlrzeY0RbJwPoOwSqEbCbmgTTLxGM
         +SzOISavX1G3Z4cBdErjGrEk3wVN9dmQsW0ws=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744281678; x=1744886478;
        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=Je6SzOfgaeR0dKqxUOU/vL7hL2d4Km4Irm8S8cFhees=;
        b=qxajbglzHIeTFDg4ypqEbyJOFmgLwaQ4gIcXUCM9KsrIQdtWnYy+iA+Ou8h+n82tb0
         cIyFx3PAMGN8/wdyr9kTnneYv9b6xznM29ljy0vuY34Y4uuz2NbPeW8a8dlYpdzncv/t
         vgu99GCtjqZ2rTH7ZxgMFkEgW/S3SsjPmQhG1AffFAT1exZSoE0M/o9Hwn0/Mxe9RQmJ
         SZiggag0l/c6zqY7465KAyAnq0YoDCFzmS8p2s326CL5uBgaYze5UmFbjLdJKixrYl1H
         H5K1R9IcYzSTYQfei3HoWRmGMAbN71Zs/eCH8NoD78MN/ZYnI4kXpqt9yi2nfN9RWnYJ
         Yu/Q==
X-Gm-Message-State: AOJu0YyXxkixU43lKuduugK/0AUaHdQ32fv6FOFa/xEvVQYD295eyEZc
	EKQyUbN0kRRQAT6TNBoPXDb3pCGtzlbwsXb3kfWEWJhLfpWbmbbl15AGBZNoIhs=
X-Gm-Gg: ASbGncsXnxA3pTy0L7eZkKSWv9CqfOrBxcipp0Udov+Wzga8ZY4oZz19YbEAX+EQAKy
	HKqX/EOy/4qqyIW4VUEtxSKXCF09EiNgo/wevu2qOEEWy5dRCqdXC8yQudF/yDNtBJ74JuPcOdT
	N4UuudAu5RuUeWMqR23Y3CCFHgqudEArPb85XrpQ2ltFBLK8+tiQpypRO6IIG56qNwpHxFBCBnB
	LKxkBDdJysxg1qJfRpYjo1NmtVwih1My+EfQ4L71dZon2z5yV8njBPi5qxW70MVsMF1Elf7lWG0
	AYq0Mawm3m8W2CTVGoHrxW2dRCATCp4hKKi+4vpvKV1Q4LtdTNsL8Zc/Bg9vVDk5ybGem3aMwXy
	qbvpsGA==
X-Google-Smtp-Source: AGHT+IHLwUO0lpjzZhtOJxcqeisrxrpLjf097gOkNsjGwZVM4zeE6iOQJH0aMiJv7Ci11VecaXv09Q==
X-Received: by 2002:a05:600c:4e4b:b0:43c:efed:732c with SMTP id 5b1f17b1804b1-43f2d9a11efmr17466545e9.28.1744281677976;
        Thu, 10 Apr 2025 03:41:17 -0700 (PDT)
Message-ID: <8ef0f462-a487-4d76-84e7-9552c75995b7@citrix.com>
Date: Thu, 10 Apr 2025 11:41:16 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 7/8] Infrastructure for arm64 linux builds
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Michal Orzel <michal.orzel@amd.com>,
 Anthony PERARD <anthony.perard@vates.tech>
References: <20250409163702.2037301-1-andrew.cooper3@citrix.com>
 <20250409163702.2037301-8-andrew.cooper3@citrix.com>
 <Z_aqUikDqi1UEOHb@mail-itl> <21a35c38-ce2e-48c4-9586-9c232f77affa@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: <21a35c38-ce2e-48c4-9586-9c232f77affa@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 09/04/2025 6:15 pm, Andrew Cooper wrote:
> On 09/04/2025 6:11 pm, Marek Marczykowski-Górecki wrote:
>> On Wed, Apr 09, 2025 at 05:37:01PM +0100, Andrew Cooper wrote:
>>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>>> ---
>>> CC: Roger Pau Monné <roger.pau@citrix.com>
>>> CC: Stefano Stabellini <sstabellini@kernel.org>
>>> CC: Michal Orzel <michal.orzel@amd.com>
>>> CC: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
>>> CC: Anthony PERARD <anthony.perard@vates.tech>
>>> ---
>>>  .gitlab-ci.yml                            |  7 ++++++
>>>  containerize                              |  1 +
>>>  images/alpine/3.18-arm64-build.dockerfile | 27 +++++++++++++++++++++++
>>>  scripts/build-linux.sh                    | 10 +++++++++
>>>  4 files changed, 45 insertions(+)
>>>  create mode 100644 images/alpine/3.18-arm64-build.dockerfile
>>>
>>> diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
>>> index ff8dce7be05d..6e38c2f2a108 100644
>>> --- a/.gitlab-ci.yml
>>> +++ b/.gitlab-ci.yml
>>> @@ -19,6 +19,13 @@ stages:
>>>      exclude:
>>>        - binaries/.gitignore
>>>  
>>> +.arm64-artifacts:
>>> +  extends: .artifacts
>>> +  tags:
>>> +    - arm64
>>> +  variables:
>>> +    CONTAINER: alpine:3.18-arm64-build
>> Arm64 kernel used to be built in a Bookworm container.
> So did x86 before they were moved across.
>
>>  The build in alpine
>> has "find: unrecognized: -printf" in the middle of the build. It doesn't
>> fail outright, but something might be broken. I guess it's related to
>> initramfs - maybe some option can be disabled, to avoid this message?
> Nothing seems to break...
>
> There's also a bad awk regex.  Alpine seem to fix this by using mawk,
> except they then have to patch the Linux build system to take the
> override properly.
>
> I can't see anything obvious they do to fix this -printf warning.

Yes I can.  We want findutils too.

x86 also wants diffutils too. (as I'm fixing that side of things too)

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Apr 10 10:43:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 10:43:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.945248.1343471 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2pN5-0002DT-NI; Thu, 10 Apr 2025 10:42:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 945248.1343471; Thu, 10 Apr 2025 10:42: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 1u2pN5-0002DM-Ka; Thu, 10 Apr 2025 10:42:59 +0000
Received: by outflank-mailman (input) for mailman id 945248;
 Thu, 10 Apr 2025 10:42: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=w6Mj=W4=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u2pN4-0002DD-9D
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 10:42:58 +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 8e211cb4-15f8-11f0-9ffb-bf95429c2676;
 Thu, 10 Apr 2025 12:42:53 +0200 (CEST)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-43cfba466b2so6907645e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 10 Apr 2025 03:42:53 -0700 (PDT)
Received: from [10.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-43f233c8219sm46624245e9.21.2025.04.10.03.42.51
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 10 Apr 2025 03:42:52 -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: 8e211cb4-15f8-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744281772; x=1744886572; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=pwN3NRlofV9TEP81zvMob1Lz0Y0xeEzZ2hGpl8QaMyg=;
        b=Sjr5LmeBLEPVqHcNgWYb8EXNhu/GNhbRq59TJIuykzJSHrsxtptBeutHL7gc5qfzeC
         zRmQFyuXHQ0oaQ5i+GAr3xhapyZ82pKQqlUaFgIJ+gxOyNUjYllJ+VAU5zS/wu0By91n
         7bQBaQF7OrhAMAt4iWiooHp7cNBGpTQn/gAqIQg5VdCXXxoQFSb1xO59yW1Rn23g8Pp0
         KuQYo5GaAlwyfUPuAXL0Zn3NRyaSl9S7SIVYxk4scatpfiDFFCHCzzoFjBlInOPp+6Hu
         C0rA793XqeRfysIs1U3E9zZIojsmBApCKqFZC0KqTn1hE6s3lomhqgjwN21I8H7Yqhde
         osHA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744281772; x=1744886572;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=pwN3NRlofV9TEP81zvMob1Lz0Y0xeEzZ2hGpl8QaMyg=;
        b=nw5Kyc5ITuj+tD32DUHCiHkps5dXu91LGCgIfTXhndZGg1Kij0/KqOIPGN4pmKjUll
         TrznOYm6sT9lLH1xvWlcdGaYF7uTIKh+OwgYmXcu98YWLJQtkoCuCYF1gDNzANjvV490
         kYMe8WXGK6OQOBHH8VAJgHGV/zGKuFpllehcKgcuUvcVfsiIjXPZA4lsl0hWX9AHFrVb
         2tXIYzo3EsR0y4Yh3E/dMTkSt4MNH/ZB8vPHgtF8b8moeJLE81XVMHtfRcnyvEuw3xBQ
         OmDDWSprLTYasrRPRACJtOk1zjOwq40cyRE21O0cwyxXj7upVKvUulKyv3hPkQr/v5S9
         dxqg==
X-Forwarded-Encrypted: i=1; AJvYcCUX8VqimD8xtQRslegJJcbEwWerrnpOS+hfF1CS9pTOuBxdR87gHWIEAXAIAfsSwHyWWsxoJz+ptKQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyRFwKrt0X+KD0PHI1jT44ue5kx3SeqLaeHfw7TUx42ktPdWhC1
	7rwLLASyGEhcSz4LRa5Nmz/uaJnscy3kSKui6pSjV6kXI0F6LapKGZqBVkMo/Q==
X-Gm-Gg: ASbGncurRY9qKQ9sE3UtX2EmiLrZXIAHbYcuobpLK2u3goVYvdT71CW8432bce3AZp8
	7hHqDtCInqmNeJoWFQXYoJVeHnekpq+pzEmLo2Jxktrk3IZcDNiY35DWaAKH3jacYpnOmsu21fw
	4EqO3fXQlwRKeqgo8GU2zPuquIbvgHIaJpTFtuCMFYUnj35Q4bOf1KKIUycch7IVFdRxRGMu0Qy
	kQKR+Xqur9WDdpT1CepvfYo1j+gZiBklHUax8Gkhn5AgIz+EJMzqsvIr9QXN8sDUlLWNANaHbIh
	lJ3+k59jvjpXN/UhG5MPk/5LyTvRLqmz1BHjBqAz6UtExa4blsmgG5BCqVBksNVsP6FqymPCsnN
	Rlm4KPLcQfLrXV/qWrf4Kcwfo2g==
X-Google-Smtp-Source: AGHT+IHgDgpczHF9L6le5e1J4fjMuV58Imz9nrW4qizioLR9qClaGmF5qqWJ7Y1O+IrGcM0X1+uV3g==
X-Received: by 2002:a05:600c:5486:b0:439:9a40:aa0b with SMTP id 5b1f17b1804b1-43f2d961b12mr15623355e9.25.1744281772400;
        Thu, 10 Apr 2025 03:42:52 -0700 (PDT)
Message-ID: <fe282aa0-fe2d-49b8-a2aa-325c9825304b@suse.com>
Date: Thu, 10 Apr 2025 12:42:50 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 08/16] x86/hyperlaunch: Add helpers to locate multiboot
 modules
To: Alejandro Vallejo <agarciav@amd.com>
Cc: Jason Andryuk <jason.andryuk@amd.com>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Michal Orzel <michal.orzel@amd.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Julien Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 xen-devel@lists.xenproject.org
References: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-9-agarciav@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: <20250408160802.49870-9-agarciav@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.04.2025 18:07, Alejandro Vallejo wrote:
> --- a/xen/arch/x86/domain-builder/fdt.c
> +++ b/xen/arch/x86/domain-builder/fdt.c
> @@ -13,6 +13,148 @@
>  
>  #include "fdt.h"
>  
> +/*
> + * Unpacks a "reg" property into its address and size constituents.
> + *
> + * @param prop          Pointer to an FDT "reg" property.
> + * @param address_cells Number of 4-octet cells that make up an "address".
> + * @param size_cells    Number of 4-octet cells that make up a "size".
> + * @param p_addr[out]   Address encoded in the property.
> + * @param p_size[out]   Size encoded in the property.
> + * @returns             -EINVAL on malformed property, 0 otherwise.
> + */
> +static int __init read_fdt_prop_as_reg(const struct fdt_property *prop,
> +                                       int address_cells, int size_cells,
> +                                       uint64_t *p_addr, uint64_t *p_size)
> +{
> +    const fdt32_t *cell = (const fdt32_t *)prop->data;
> +    uint64_t addr, size;
> +
> +    if ( fdt32_to_cpu(prop->len) !=
> +         (address_cells + size_cells) * sizeof(*cell) )
> +    {
> +        printk("  Cannot read reg %lu+%lu from prop len %u\n",
> +            address_cells * sizeof(*cell), size_cells * sizeof(*cell),
> +            fdt32_to_cpu(prop->len));
> +        return -EINVAL;
> +    }
> +
> +    switch ( address_cells ) {

Nit: Brace on its own line please.

> +    case 1:
> +        addr = fdt32_to_cpu(*cell);
> +        break;
> +    case 2:
> +        addr = fdt64_to_cpu(*(const fdt64_t *)cell);
> +        break;
> +    default:
> +        printk("  unsupported sized address_cells\n");

Depending on how likely this or ...

> +        return -EINVAL;
> +    }
> +
> +    cell += address_cells;
> +    switch ( size_cells ) {
> +    case 1:
> +        size = fdt32_to_cpu(*cell);
> +        break;
> +    case 2:
> +        size = fdt64_to_cpu(*(const fdt64_t *)cell);
> +        break;
> +    default:
> +        printk("  unsupported sized size_cells\n");

... this path is to be hit, perhaps also log the bogus size? Then again, this
being passed in, isn't it an internal error if the wrong size makes it here?
I.e. rather use ASSERT_UNREACHABLE()?

> +        return -EINVAL;
> +    }
> +
> +    *p_addr = addr;
> +    *p_size = size;
> +
> +    return 0;
> +}

The function as a whole looks somewhat similar to fdt_get_reg_prop(). What's
the deal?

> +/*
> + * Locate a multiboot module given its node offset in the FDT.
> + *
> + * The module location may be given via either FDT property:
> + *     * reg = <address, size>
> + *         * Mutates `bi` to append the module.
> + *     * module-index = <idx>
> + *         * Leaves `bi` unchanged.
> + *
> + * @param fdt           Pointer to the full FDT.
> + * @param node          Offset for the module node.
> + * @param address_cells Number of 4-octet cells that make up an "address".
> + * @param size_cells    Number of 4-octet cells that make up a "size".
> + * @param bi[inout]     Xen's representation of the boot parameters.
> + * @return              -EINVAL on malformed nodes, otherwise
> + *                      index inside `bi->mods`
> + */
> +int __init fdt_read_multiboot_module(const void *fdt, int node,
> +                                     int address_cells, int size_cells,
> +                                     struct boot_info *bi)

Functions without callers and non-static ones without declarations are
disliked by Misra.

> +{
> +    const struct fdt_property *prop;
> +    uint64_t addr, size;
> +    int ret;
> +    int idx;
> +
> +    ASSERT(!fdt_node_check_compatible(fdt, node, "multiboot,module"));
> +
> +    /* Location given as a `module-index` property. */
> +    prop = fdt_get_property(fdt, node, "module-index", NULL);
> +
> +    if ( prop )
> +    {
> +        if ( fdt_get_property(fdt, node, "reg", NULL) )
> +        {
> +            printk("  Location of multiboot,module defined multiple times\n");
> +            return -EINVAL;
> +        }
> +        return fdt_cell_as_u32((const fdt32_t *)prop->data);

No concerns here of there being less than 4 bytes of data?

> +    }
> +
> +    /* Otherwise location given as a `reg` property. */
> +    prop = fdt_get_property(fdt, node, "reg", NULL);
> +
> +    if ( !prop )
> +    {
> +        printk("  No location for multiboot,module\n");
> +        return -EINVAL;
> +    }
> +    if ( fdt_get_property(fdt, node, "module-index", NULL) )
> +    {
> +        printk("  Location of multiboot,module defined multiple times\n");
> +        return -EINVAL;
> +    }
> +
> +    ret = read_fdt_prop_as_reg(prop, address_cells, size_cells, &addr, &size);
> +
> +    if ( ret < 0 )
> +    {
> +        printk("  Failed reading reg for multiboot,module\n");
> +        return -EINVAL;
> +    }
> +
> +    idx = bi->nr_modules + 1;

This at least looks like an off-by-one. If the addition of 1 is really
intended, I think it needs commenting on.

> +    if ( idx > MAX_NR_BOOTMODS )
> +    {
> +        /*
> +         * MAX_NR_BOOTMODS cannot exceed the max for MB1, represented by 32bits,
> +         * thus the cast down to a u32 will be safe due to the prior check.
> +         */
> +        BUILD_BUG_ON(MAX_NR_BOOTMODS >= (uint64_t)UINT32_MAX);

Because of idx being a signed quantity, isn't INT_MAX the required upper
bound? The latest then the somewhat odd cast should also be possible to
drop.

> +        printk("  idx %d exceeds maximum boot modules\n", idx);

Perhaps include STR(MAX_NR_BOOTMODS) as well?

> --- a/xen/include/xen/libfdt/libfdt-xen.h
> +++ b/xen/include/xen/libfdt/libfdt-xen.h
> @@ -13,6 +13,63 @@
>  
>  #include <xen/libfdt/libfdt.h>
>  
> +static inline int __init fdt_cell_as_u32(const fdt32_t *cell)

Why plain int here, but ...

> +{
> +    return fdt32_to_cpu(*cell);
> +}
> +
> +static inline uint64_t  __init fdt_cell_as_u64(const fdt32_t *cell)

... a fixed-width and unsigned type here? Question is whether the former
helper is really warranted.

Also nit: Stray double blank.

> +{
> +    return ((uint64_t)fdt32_to_cpu(cell[0]) << 32) | fdt32_to_cpu(cell[1]);

That is - uniformly big endian?

> +}

Marking such relatively generic inline functions __init is also somewhat
risky. 

> +/*
> + * Property: reg
> + *
> + * Defined in Section 2.3.6 of the Device Tree Specification is the "reg"
> + * standard property. The property is a prop-encoded-array that is encoded as
> + * an arbitrary number of (address, size) pairs.  We only extract a single
> + * pair since that is what is used in practice.
> + */
> +static inline int __init fdt_get_reg_prop(
> +    const void *fdt, int node, unsigned int addr_cells, unsigned int size_cells,
> +    uint64_t *addr, uint64_t *size)
> +{
> +    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 ( size_cells > 2 || addr_cells > 2 )
> +        return -EINVAL;
> +
> +    prop = fdt_get_property(fdt, node, "reg", &ret);
> +    if ( !prop || ret < sizeof(u32) )

No uses of u32 et al in new code please. Question anyway is whether this isn't
meant to be sizeof(*cell) like you have it ...

> +        return ret < 0 ? ret : -EINVAL;
> +
> +    if ( fdt32_to_cpu(prop->len) !=
> +	 ((size_cells + addr_cells) * sizeof(*cell)) )

... here. Or maybe it's to be sizeof(prop->len)?

Also nit: Hard tab slipped in.

> +        return -EINVAL;
> +
> +    cell = (fdt32_t *)prop->data;
> +
> +    /* read address field */
> +    if ( addr_cells == 1 )
> +        *addr = fdt_cell_as_u32(cell);
> +    else
> +        *addr = fdt_cell_as_u64(cell);
> +
> +    cell += addr_cells;
> +
> +    /* read size field */
> +    if ( size_cells == 1 )
> +        *size = fdt_cell_as_u32(cell);
> +    else
> +        *size = fdt_cell_as_u64(cell);
> +
> +    return 0;
> +}

Does this really want/need to be an inline function?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Apr 10 10:57:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 10:57:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.945266.1343481 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2pb8-0005X6-U4; Thu, 10 Apr 2025 10:57:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 945266.1343481; Thu, 10 Apr 2025 10:57:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2pb8-0005Wz-R9; Thu, 10 Apr 2025 10:57:30 +0000
Received: by outflank-mailman (input) for mailman id 945266;
 Thu, 10 Apr 2025 10:57: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=C125=W4=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u2pb7-0005Ws-SU
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 10:57:29 +0000
Received: from mail-wm1-x32c.google.com (mail-wm1-x32c.google.com
 [2a00:1450:4864:20::32c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9613d50a-15fa-11f0-9ffb-bf95429c2676;
 Thu, 10 Apr 2025 12:57:25 +0200 (CEST)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-43cfe63c592so7702435e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 10 Apr 2025 03:57:25 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43f23572c43sm48919605e9.25.2025.04.10.03.57.24
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 10 Apr 2025 03:57: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: 9613d50a-15fa-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744282645; x=1744887445; 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=ro2VPRL/3KmoEsBybMZYaQ1SrdwGkTym/+MsO2Oi+u0=;
        b=KpOK/BJpx3RVGhAgDRSse/B2XXc35pYa6XQ44rnIMgqLUUOC9oKbWyc7IFCxKYKiil
         kVS2Lm5YkAus7zx0/UQ1H4fuyaN0Fi/DYwkuYGj8aLM8BoPKwN2xb188KeLTfo0T5mKA
         eNSZenjCOROP/mB+Kf38obOmF6/o6BMuBbfD4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744282645; x=1744887445;
        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=ro2VPRL/3KmoEsBybMZYaQ1SrdwGkTym/+MsO2Oi+u0=;
        b=RXGOaSFLhfx60+KDw0c6zBrGy+jX83O88cEWO6MyErT5bKE9UKbYs5ZuFWaQSPAv/c
         cgJszp3e5VW9FA7qFy76NyjiMgqatX2uw9pyitBfPi4A24v75jgtAvAdWvIjWuO3Q+yy
         TLUrzD8uj1zzY8sanEVbtmh+muOnQJyua/BhcM/Ctx9glC94YH4t/JH41CGpirPxUd6U
         jHjchKexYuIGGg+xLjx7UW22dvjLSFI8I9Kok8eevw5rBgqw8GVGUEhnsm7bxNbVLp1M
         v0/hXRZ1aIuGF7GwpyVkESC8n5loXlgIOkDz8kLbNCU24Q5n+9/xqymWKir57f71gICi
         u6Vw==
X-Gm-Message-State: AOJu0Yxzn+bWn80E0xKnIXCA1Z7gO9xBu41EWWVokE416lfwMEIUk3S1
	pjkoJDVSgWeWXG2IIPaHu1brEWwuf+W7jNxfoh5Cil7uY5sMg+S8BsG94uo+U+A=
X-Gm-Gg: ASbGncs5hbHp3Cldig1bp9KP6XlvoDwFqxx0n+1Kt1BEVAFNs8+AtuUl4I+RNIXazxd
	pobEvUntCOH+FtJFlM7T+f6DGaw5Q0RiLPMaR/Qlf+DHMMpuQRGCf17jFJ+LW7dNMpOBEU9wKNC
	oBjwU/ngbswxz3Zzs8IO4ReSAseDVhnDowL84NW2lJfuZJSOHJpdNZtIr/IKgRVdM/DsEGu2hX+
	+Yc68nfdB964wqspZq6HtnCTQ/JrdB0dnQXbYiAIm49YX/XnPLvmH5mB7yO0vvTTeNoy8vVhDMR
	jV9z4Se5syOctvg5yhzsL3xPqyfCqbLScB8eDZGoBQgdmh6FLpcqtkJ5DjYShv+uuIFsppcRptQ
	VciqeOQ==
X-Google-Smtp-Source: AGHT+IHg83oJrvcOGiKy1j9mZd81Qm4nCH6UadXfRno6R6UeXR4dlEMPWfnc/5CSQ6OdNLGCyeKs1Q==
X-Received: by 2002:a05:600c:3b20:b0:43c:f895:cb4e with SMTP id 5b1f17b1804b1-43f2ff05310mr21017365e9.17.1744282644810;
        Thu, 10 Apr 2025 03:57:24 -0700 (PDT)
Message-ID: <96fe43c7-e2a6-47d0-bdd7-e6284c86acfa@citrix.com>
Date: Thu, 10 Apr 2025 11:57:23 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 7/8] Infrastructure for arm64 linux builds
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Michal Orzel <michal.orzel@amd.com>,
 Anthony PERARD <anthony.perard@vates.tech>
References: <20250409163702.2037301-1-andrew.cooper3@citrix.com>
 <20250409163702.2037301-8-andrew.cooper3@citrix.com>
 <Z_aqUikDqi1UEOHb@mail-itl> <21a35c38-ce2e-48c4-9586-9c232f77affa@citrix.com>
 <8ef0f462-a487-4d76-84e7-9552c75995b7@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: <8ef0f462-a487-4d76-84e7-9552c75995b7@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 10/04/2025 11:41 am, Andrew Cooper wrote:
> On 09/04/2025 6:15 pm, Andrew Cooper wrote:
>> On 09/04/2025 6:11 pm, Marek Marczykowski-Górecki wrote:
>>> On Wed, Apr 09, 2025 at 05:37:01PM +0100, Andrew Cooper wrote:
>>>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>>>> ---
>>>> CC: Roger Pau Monné <roger.pau@citrix.com>
>>>> CC: Stefano Stabellini <sstabellini@kernel.org>
>>>> CC: Michal Orzel <michal.orzel@amd.com>
>>>> CC: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
>>>> CC: Anthony PERARD <anthony.perard@vates.tech>
>>>> ---
>>>>  .gitlab-ci.yml                            |  7 ++++++
>>>>  containerize                              |  1 +
>>>>  images/alpine/3.18-arm64-build.dockerfile | 27 +++++++++++++++++++++++
>>>>  scripts/build-linux.sh                    | 10 +++++++++
>>>>  4 files changed, 45 insertions(+)
>>>>  create mode 100644 images/alpine/3.18-arm64-build.dockerfile
>>>>
>>>> diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
>>>> index ff8dce7be05d..6e38c2f2a108 100644
>>>> --- a/.gitlab-ci.yml
>>>> +++ b/.gitlab-ci.yml
>>>> @@ -19,6 +19,13 @@ stages:
>>>>      exclude:
>>>>        - binaries/.gitignore
>>>>  
>>>> +.arm64-artifacts:
>>>> +  extends: .artifacts
>>>> +  tags:
>>>> +    - arm64
>>>> +  variables:
>>>> +    CONTAINER: alpine:3.18-arm64-build
>>> Arm64 kernel used to be built in a Bookworm container.
>> So did x86 before they were moved across.
>>
>>>  The build in alpine
>>> has "find: unrecognized: -printf" in the middle of the build. It doesn't
>>> fail outright, but something might be broken. I guess it's related to
>>> initramfs - maybe some option can be disabled, to avoid this message?
>> Nothing seems to break...
>>
>> There's also a bad awk regex.  Alpine seem to fix this by using mawk,
>> except they then have to patch the Linux build system to take the
>> override properly.
>>
>> I can't see anything obvious they do to fix this -printf warning.
> Yes I can.  We want findutils too.
>
> x86 also wants diffutils too. (as I'm fixing that side of things too)

Excellent.  Both x86 and ARM are clean with these changes:

https://gitlab.com/xen-project/hardware/test-artifacts/-/jobs/9682944850
https://gitlab.com/xen-project/hardware/test-artifacts/-/jobs/9682944867

The awk complaint has gone away too, so I suppose that's a knock-on effect.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Apr 10 10:58:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 10:58:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.945276.1343491 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2pc6-00060q-6o; Thu, 10 Apr 2025 10:58:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 945276.1343491; Thu, 10 Apr 2025 10: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 1u2pc6-00060j-3c; Thu, 10 Apr 2025 10:58:30 +0000
Received: by outflank-mailman (input) for mailman id 945276;
 Thu, 10 Apr 2025 10: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=w6Mj=W4=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u2pc4-0005mJ-Kv
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 10:58:28 +0000
Received: from mail-wr1-x432.google.com (mail-wr1-x432.google.com
 [2a00:1450:4864:20::432])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id baebf1fb-15fa-11f0-9eac-5ba50f476ded;
 Thu, 10 Apr 2025 12:58:27 +0200 (CEST)
Received: by mail-wr1-x432.google.com with SMTP id
 ffacd0b85a97d-39c266c1389so360477f8f.1
 for <xen-devel@lists.xenproject.org>; Thu, 10 Apr 2025 03:58:27 -0700 (PDT)
Received: from [10.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-43f23572b5bsm47306825e9.28.2025.04.10.03.58.26
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 10 Apr 2025 03:58:26 -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: baebf1fb-15fa-11f0-9eac-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744282706; x=1744887506; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=kizBJwGRSWxGr7CSkJR0uyoJZddqHlNIs7jEQZPc2dw=;
        b=b174XhHOspq4ZQGmniYeUaWbiwFh03mrIZOW+WmDfy3KGQ96TRfl4Q11ieFGe29/kn
         99DEa8e3L36ZuU0b4FhuOmkvQZ74NIDxpWeBIMEMDecebPx7yvzOCOnSQcz3zPIkNpkQ
         0DwAwNBNYYZkbCie0CoPEMzKTbTAVFavpXpcydGwRMCyqEzvSRxZ0mXR0twYq2jR6XYw
         ncbCWmrD/IDfk/sHpEsgQlKrEHkUWILlVhA8Wd6O/dhxK5th3DWHgsyllP3nF/PgAfdT
         YhVP0IqxBQwNb1w4kL/eXS/Kv1wufoVHY3IqUlOCt2fzqdEzXde8aLP7A6JRro3whtRW
         k9rA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744282706; x=1744887506;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=kizBJwGRSWxGr7CSkJR0uyoJZddqHlNIs7jEQZPc2dw=;
        b=YP6lPeQ928str/n2Vu4M6yzng2MpIRZZj1SPP3SHZpxKrr5OUwiG8AU8hAoqXqjXDO
         PpOl9lKcirtSQMArMm7aEesW/VN7roSqhpVuQWHDXaXbddQp9XGjIwGz/qt00Ag4QJi7
         c5CFiskRrSoWTB+xNFpDmpG9n7aQaIpvrJIL5x3nsDe1iz9yWvLRvAb12x8mOCgR/Ezr
         9TCbAIeqJEs0LBqjBCKFEEJ555YQWexfgok7t+CS+PZ3Gb5CItz4b2C1PVHjuivLtUts
         AT5VJVWMrp7tMruc3iRbTsT/c5QGfd2JvQLTR9PyEgSF+JWgCnMmDGCnrOK8G4CTLjYy
         E/Rw==
X-Forwarded-Encrypted: i=1; AJvYcCUUmWuTA4HaSnsltkzSs8HkiRgPUoPCy5m9LP4IuYZX5tStRaOgV2Sw5n5xZTKURTI0ASNHw6xrGY0=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yyz6feRJmpyp0ckcjnw9HlOW5Sp8pzODOqN7eCCy5y4miDlRwIG
	MtgLwTYMIXrkc08TsazdfXpmNMGtnqXVDQpNzMLfjPizhpKiy2sdd+jKFu82Xg==
X-Gm-Gg: ASbGncuztzBmCfD88eWaoqapbQAsR5R2tHSQn1gkjMQ5J/BdjSUSQvA7aNtPpkugDYB
	rrrpek88k/l+RuqOaOycTiyT/w2atqbzBF4JurA0hpHFoliJu79va9FqqInThePO8vPvPdPmrNo
	wEizhTN6gUzs7Qj1STzK9pvXvnRARQi5fbuvHFWc37/WO3HjVeXfqwrAQBhEKaFH5pG3EamAFDh
	TJa7LUSQoH3bvV2DrgMuVu5ZkNOkWD02bTI3iiZ0i5C/+WRbTwcF/hb9IQIuWvmQ8Mo9hzF0sbS
	SekarCqQJ2cYs8EWlnGrWhjv+jMIXtBSaeEAoK+7fpbzdlQJuOWQjDzY5//zryfH84ewRuNNp8U
	Bloz9olB53MkG4a/mnxheN6wYng==
X-Google-Smtp-Source: AGHT+IH8qIUC7EPMwsTCtRxMBd9PDF6ooNYI/UggZD+5ILxzWi3jsIIlSuLSu8MLaTCUBjHsJ2qv5w==
X-Received: by 2002:a05:6000:2ab:b0:39c:13fa:7b9 with SMTP id ffacd0b85a97d-39d8fcb03a0mr1819442f8f.0.1744282706617;
        Thu, 10 Apr 2025 03:58:26 -0700 (PDT)
Message-ID: <09e1b9f3-6660-4cdd-9bcf-af075f95bb63@suse.com>
Date: Thu, 10 Apr 2025 12:58:25 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 09/16] x86/hyperlaunch: locate dom0 kernel with
 hyperlaunch
To: Alejandro Vallejo <agarciav@amd.com>
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Jason Andryuk <jason.andryuk@amd.com>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Michal Orzel <michal.orzel@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: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-10-agarciav@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: <20250408160802.49870-10-agarciav@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.04.2025 18:07, Alejandro Vallejo wrote:
> From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
> 
> Look for a subnode of type `multiboot,kernel` within a domain node. If
> found, locate it using the multiboot module helper to generically ensure
> it lives in the module list. 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>
> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
> Signed-off-by: Alejandro Vallejo <agarciav@amd.com>
> ---
> v3:
>     * Add const to fdt
>     * Remove idx == NULL checks
>     * Add BUILD_BUG_ON for MAX_NR_BOOTMODS fitting in a uint32_t

At least this one looks to rather belong into patch 08?

> --- a/xen/arch/x86/domain-builder/fdt.c
> +++ b/xen/arch/x86/domain-builder/fdt.c
> @@ -155,6 +155,52 @@ int __init fdt_read_multiboot_module(const void *fdt, int node,
>      return idx;
>  }
>  
> +static int __init process_domain_node(
> +    struct boot_info *bi, const 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) ?: "unknown";
> +    int address_cells = fdt_address_cells(fdt, dom_node);
> +    int size_cells = fdt_size_cells(fdt, dom_node);

Oh, okay - regarding my earlier comment elsewhere: If the sizes come from DT,
then of course ASSERT_UNREACHABLE() can't be used at the place where bogus
ones are rejected.

> +    fdt_for_each_subnode(node, fdt, dom_node)
> +    {
> +        if ( fdt_node_check_compatible(fdt, node, "multiboot,kernel") == 0 )
> +        {

When the loop body is merely an if() with a non-negligible body, inverting
the condition and using "continue" is usually better. Much like you do ...

> +            int idx;
> +
> +            if ( bd->kernel )
> +            {
> +                printk(XENLOG_ERR "Duplicate kernel module for domain %s\n",
> +                       name);
> +                continue;

... here already.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Apr 10 11:13:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 11:13:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.945290.1343502 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2pq0-0003K9-CF; Thu, 10 Apr 2025 11:12:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 945290.1343502; Thu, 10 Apr 2025 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 1u2pq0-0003K2-9O; Thu, 10 Apr 2025 11:12:52 +0000
Received: by outflank-mailman (input) for mailman id 945290;
 Thu, 10 Apr 2025 11:12: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=w6Mj=W4=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u2ppy-0003Jw-IH
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 11:12:50 +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 b7dcf67c-15fc-11f0-9eac-5ba50f476ded;
 Thu, 10 Apr 2025 13:12:41 +0200 (CEST)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-43cfe63c592so7866255e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 10 Apr 2025 04:12:41 -0700 (PDT)
Received: from [10.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-39d893f0b90sm4458007f8f.79.2025.04.10.04.12.39
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 10 Apr 2025 04:12: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: b7dcf67c-15fc-11f0-9eac-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744283560; x=1744888360; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=b1rTF3ApoKDviePPDnw/dfiAu8MktZ0qbVG2g5c1vrA=;
        b=BRQJMACwJOVHYg1AGWah8/VKRTF4FCtWWCjB0RA2a80beYYxq3NoviQZ0G4Umt25Fa
         jlPy2oiwmdrV1fWyxJ4/pvzo+wTP0XiABh5ioH0iomvIVpKVBUkIBa01tkEvvlOy3Vze
         UR+Mc8VomfaOQ14iE22VkNdeqK3oj5ceTiriYAmGdNfqBMs3cuVaH9/8q1nqXIrlxRvA
         fugfSCnkYk9TJI1dqfgxoaIA+6hWOiAZQRGJw9cwu6OVyhsaYgoloMcjIY2d714fbJzz
         +EAdwakg40uxQdHneAsls+jQSJGlEXuDHCSC2zxXs+QWpQG0NOkV51tKf9mLUajdKzvu
         chsQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744283560; x=1744888360;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=b1rTF3ApoKDviePPDnw/dfiAu8MktZ0qbVG2g5c1vrA=;
        b=e7m+rA/AttZhjzBsL4pjhX4DU6W6oA77J2F0ekgyOYVBTnlZRPSi6BCyWg+dxE/+ot
         kX143ZAhz21feBBdEdfsPGprh9ATDljCMIty/3GlROnxn7lDKxtfasJ4iHDHC1Zf6uqf
         cKr0MUDVplkTPrQDa2VjbBFOQ7KUcVRSNsXWW7nMzpqYR+Ed8TYuLgwicDsIo0KaVKMt
         Vfcd5BGr/IhiFOI5kixHxgG+DPnnUdg+7B0rGwOxR/Wv6mREmNDRht1yA1eho/LSfSs7
         lVwSf9kjh4nYn0j+HL0ng7tzqtkrlX4iV4KoJ/AZnUE9aIdZYC+9QUQ7tj/+355ZS48c
         6W0Q==
X-Forwarded-Encrypted: i=1; AJvYcCUCLW4GQseOWvf28hWUFg7fyeVzUP99ZOYa81qfA28DO71aDWF6omzVcaWJB8ew6K9Qq2GgyjCPqxw=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yyxjf7MV7WdZb7g19TUfZa3YZXbSSge/hrZYJlupdnS0M9NTHd2
	IQhN0mFbae5MVRkhsrF042Kf+ehyJn5Z8IEtNBd/rOoxAiL8tULAQjt6BGSmIA==
X-Gm-Gg: ASbGncsSiw9UOHV+/ezTnFwPANWmPvEgHQN3DEwiXYSKXeAl6JfWozayNJLs4j1KfrW
	r2mfVDO/ondszjwM6E/EDaWKZL0KAOhbfKhZSeuVoYkV6dxKYLvnp7Ttq2sujtXfQyOsx72kco9
	J6MXsoLQ2FJO9r3K44rpiMxFjWpodjc3ot6w/Y9vVGoZy3fzrH8an2piscc+AA03SIhb/UzBdeF
	eekMavm1Q9QkHhoc/BGAKqKRK0TJWRUiZzm8ecN3+1aVneRoyk9a09MvwDlHgucEJamH5rxe2iY
	mb48PXp9PDfCwLONlbj2/WJmiGkzBjqgcTYVIqknIUaBH8hf8WZxM+ldgJrLCFbDXty5nFVYtT0
	fJCQRViNTmuyMlbISRtZp9DeBOQ==
X-Google-Smtp-Source: AGHT+IE/3GgkNYEfbQKg1nDNuJsJc7lZmt+Su/eHZ8i7kImyY7quLJ01z9ioKF4YTS6EBNdnjLK3Gg==
X-Received: by 2002:a05:600c:1c90:b0:439:6118:c188 with SMTP id 5b1f17b1804b1-43f2ff06141mr14236725e9.19.1744283560327;
        Thu, 10 Apr 2025 04:12:40 -0700 (PDT)
Message-ID: <dccb3dd3-eac8-40b4-8ffb-a0ccb688ac0e@suse.com>
Date: Thu, 10 Apr 2025 13:12:38 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 10/16] x86/hyperlaunch: obtain cmdline from device tree
To: Alejandro Vallejo <agarciav@amd.com>
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Jason Andryuk <jason.andryuk@amd.com>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Michal Orzel <michal.orzel@amd.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Julien Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 xen-devel@lists.xenproject.org
References: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-11-agarciav@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: <20250408160802.49870-11-agarciav@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.04.2025 18:07, Alejandro Vallejo wrote:
> --- 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;

Use max() instead of open-coding it?

> --- a/xen/arch/x86/domain-builder/fdt.c
> +++ b/xen/arch/x86/domain-builder/fdt.c
> @@ -189,6 +189,12 @@ 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] )
> +                bd->kernel->fdt_cmdline = fdt_get_prop_offset(
> +                    fdt, node, "bootargs", &bd->kernel->cmdline_pa);

Somewhat orthogonal question: Should there perhaps be a way for the boot loader
provided cmdline to go at the tail of the DT provided one?

> --- a/xen/arch/x86/domain-builder/fdt.h
> +++ b/xen/arch/x86/domain-builder/fdt.h
> @@ -12,6 +12,31 @@ struct boot_info;
>  #define HYPERLAUNCH_MODULE_IDX 0
>  
>  #ifdef CONFIG_DOMAIN_BUILDER
> +
> +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);
> +}

What's the rationale for these to be separate functions, rather then the code
being integrated into their sole callers? Especially for the former the extra
layer feels excessive.

> --- a/xen/arch/x86/include/asm/domain-builder.h
> +++ b/xen/arch/x86/include/asm/domain-builder.h
> @@ -3,6 +3,10 @@
>  
>  struct boot_info;
>  
> +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);

No __init on declarations please.

> --- a/xen/arch/x86/setup.c
> +++ b/xen/arch/x86/setup.c
> @@ -984,7 +984,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));

Why's the check lost for bd->kernel->cmdline_pa being non-zero?

> @@ -1047,9 +1050,12 @@ 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

Same here.

>              strlcpy(cmdline,
> -                    cmdline_cook(__va(bd->kernel->cmdline_pa), bi->loader),
> +                    cmdline_cook(__va(bd->kernel->cmdline_pa),bi->loader),

The change to this line is bogus altogether.

> --- a/xen/include/xen/libfdt/libfdt-xen.h
> +++ b/xen/include/xen/libfdt/libfdt-xen.h
> @@ -23,6 +23,29 @@ static inline uint64_t  __init fdt_cell_as_u64(const fdt32_t *cell)
>      return ((uint64_t)fdt32_to_cpu(cell[0]) << 32) | fdt32_to_cpu(cell[1]);
>  }
>  
> +static inline bool __init fdt_get_prop_offset(
> +    const void *fdt, int node, const char *name, unsigned long *offset)
> +{
> +    int ret, poffset;
> +    const char *pname;
> +
> +    fdt_for_each_property_offset(poffset, fdt, node)
> +    {
> +        fdt_getprop_by_offset(fdt, poffset, &pname, &ret);
> +
> +        if ( ret < 0 )
> +            continue;
> +
> +        if ( strcmp(pname, name) == 0 )
> +        {
> +            *offset = poffset;

Variable naming looks backwards here.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Apr 10 11:34:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 11:34:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.945309.1343520 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2qAi-0000e1-7P; Thu, 10 Apr 2025 11:34:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 945309.1343520; Thu, 10 Apr 2025 11: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 1u2qAi-0000du-3d; Thu, 10 Apr 2025 11:34:16 +0000
Received: by outflank-mailman (input) for mailman id 945309;
 Thu, 10 Apr 2025 11:34: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=w6Mj=W4=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u2qAh-0000do-68
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 11:34: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 ba82cf6b-15ff-11f0-9eac-5ba50f476ded;
 Thu, 10 Apr 2025 13:34:14 +0200 (CEST)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-3914a5def6bso342819f8f.1
 for <xen-devel@lists.xenproject.org>; Thu, 10 Apr 2025 04:34:14 -0700 (PDT)
Received: from [10.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-39d893f0cfdsm4532477f8f.76.2025.04.10.04.34.12
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 10 Apr 2025 04:34:13 -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: ba82cf6b-15ff-11f0-9eac-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744284853; x=1744889653; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=8mtSKzI1eVCkaJ8jsv6S3EYIIKgVlqbJ4upesSKU8bo=;
        b=KIx/lcRhazWGFdfwIMREw4SuHUFbiBYaDUORRZ+OKVLvrmrW2LHuK4CQ3VK/RZB+7L
         kpZXMe+T8fxCxw46u54+xcj+JWrgwCX1tpN9sIM1EuiypFED1b+kpW/qRwURs3eSJF+0
         Uwp/DwGbh1vl7r5T5HwdQizX154OG/U88WCL4M1NXxvMARyfOC5Ks3HOOYw+nvkzHNkn
         GKA/GgfxJZVTp+aD3U4RGEaTO7fl2Jky9HzxG4QObs4CFUHMnslL3OCIjJOAA0PLyBBi
         wLVlUy5SxdosGUEdyfHYVZGAlUSQicJOzhXPsoziPVniZdaDPAf0Pwor00qW1YQp8Uej
         U6/w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744284853; x=1744889653;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=8mtSKzI1eVCkaJ8jsv6S3EYIIKgVlqbJ4upesSKU8bo=;
        b=Y2BvlqVCgd0gnHMOgwPgJbS9b71h+7qvDAUKt1JYJ7WWZWoqkvA3cI+IcpgEECWOsT
         ZBSY1T+BkKcHSMd8XhfUoU9jE7VvKLEbN3fGEesJ9n8vvvR5bfKD6/Q6ZXqvT73Fy/j9
         j2KouHzdloCuBbb+D5j86YxCc3FIRIqFkSuqq6omEID1PrvF7V8pS2hA7XfaBSSzfbIk
         plnyLuzahMcDdDOnpwu05ps980Tfi7MxXHBmfTQHJviNa9JuKknokpX4eCcwWPMxIwds
         wsJ4xLWsVt4wdAfR+AUd3XFHrGSE8KQ6H7q7LLpP71iAvb274qRT89FkXQm/2XAr4B4x
         51Zg==
X-Forwarded-Encrypted: i=1; AJvYcCXTIpxaZJblD6AJu/1ZQEz2tAU6GgL2+gbacwxZkdyoNxIC5nVwsRhB4yDsZKIHxnb41vdhwAUkz2c=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzoPbA8QehhP017L8eimwMcPIgmiZzHrywxVYRoibC7IN2TLrLO
	milztxST7K4sN6x+Rqr5tk1miQ27Ok0uqE5PE7bk5G44IHADMVf6PtoU/SlHoQ==
X-Gm-Gg: ASbGncua/eilbXIWKnbVzJofNhW7uI7VjROrfy+l6p0INF+QfzWy/uTxDzLHxf/2ZE+
	QQoHi/XvLBLwVu62iDrlsrSoWhp7MgZodnjDYm/FlIgiGN5/ucRMgdoYHwB7qbJRu/A2fw9hof5
	qVsFOCpH2AlioKm8tnG+g3tlaN9cB1nXFQuwMBGc8Hy6RfNNpd9xn0Wb4ZK2Sdbkq7M66DpcXRs
	WquBunf0h2z6ftV+HPZkd45TPouc5wG2Dd69Ap8B+eLHmUZZFZJmD0CrXdoetNygbfgS7W4wuxW
	eSM7pDL2Oj7RYq+x78jUhMJX9Z1E6HISBCUpt8IPAkLmvQ66udS2j9no3guL6npJjY99OYpQAfv
	/oCU7AmrRWoDtfQ77sjilJSkyohJNholU5Xbo
X-Google-Smtp-Source: AGHT+IELhU0OHZY2Qu9h0BPjpv8J779mQ9CAtKrupUKs/uzWJ6XqSwJWR0+id5BLNZHY87qKQbEbuw==
X-Received: by 2002:a5d:598d:0:b0:390:fbcf:56be with SMTP id ffacd0b85a97d-39d8f22a482mr1897398f8f.0.1744284853429;
        Thu, 10 Apr 2025 04:34:13 -0700 (PDT)
Message-ID: <b3018b0d-e0e8-440e-9f02-363a7bd0378f@suse.com>
Date: Thu, 10 Apr 2025 13:34:11 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 11/16] x86/hyperlaunch: locate dom0 initrd with
 hyperlaunch
To: Alejandro Vallejo <agarciav@amd.com>
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Jason Andryuk <jason.andryuk@amd.com>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Michal Orzel <michal.orzel@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: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-12-agarciav@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: <20250408160802.49870-12-agarciav@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.04.2025 18:07, Alejandro Vallejo wrote:
> --- a/xen/arch/x86/domain-builder/fdt.c
> +++ b/xen/arch/x86/domain-builder/fdt.c
> @@ -195,6 +195,35 @@ static int __init process_domain_node(
>                   !((char *)__va(bd->kernel->cmdline_pa))[0] )
>                  bd->kernel->fdt_cmdline = fdt_get_prop_offset(
>                      fdt, node, "bootargs", &bd->kernel->cmdline_pa);
> +
> +            continue;

With this ...

> +        }
> +        else if ( fdt_node_check_compatible(fdt, node,

... no need for "else" here?

> +                                            "multiboot,ramdisk") == 0 )
> +        {
> +            int idx;
> +
> +            if ( bd->module )
> +            {
> +                printk(XENLOG_ERR "Duplicate ramdisk module for domain %s)\n",

Stray ')' in the string literal.

> +                       name);
> +                continue;
> +            }
> +
> +            idx = fdt_read_multiboot_module(fdt, node, address_cells,
> +                                            size_cells,bi);
> +            if ( idx < 0 )
> +            {
> +                printk("  failed processing ramdisk module for domain %s\n",
> +                       name);
> +                return -EINVAL;
> +            }

Along the lines of what Denis has said - please be consistent about log
messages: XENLOG_* or not, preferably no capital at the start, initial
blank padding. May apply elsewhere in the series as well.

> +            printk("  ramdisk: boot module %d\n", idx);
> +            bi->mods[idx].type = BOOTMOD_RAMDISK;
> +            bd->module = &bi->mods[idx];

The field's named "module" now, but that now ends up inconsistent with
naming used elsewhere, as is pretty noticeable here.

> +            continue;

This isn't strictly needed, is it, ...

>          }
>      }

... considering we're at the bottom of the loop?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Apr 10 11:47:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 11:47:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.945330.1343564 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2qNF-0004Nu-Id; Thu, 10 Apr 2025 11:47:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 945330.1343564; Thu, 10 Apr 2025 11:47: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 1u2qNF-0004LG-Ay; Thu, 10 Apr 2025 11:47:13 +0000
Received: by outflank-mailman (input) for mailman id 945330;
 Thu, 10 Apr 2025 11:47: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=C125=W4=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u2qND-0003hP-T5
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 11:47:11 +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 888446a5-1601-11f0-9ffb-bf95429c2676;
 Thu, 10 Apr 2025 13:47:09 +0200 (CEST)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-43d2d952eb1so5802565e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 10 Apr 2025 04:47:09 -0700 (PDT)
Received: from localhost.localdomain (host-92-26-98-202.as13285.net.
 [92.26.98.202]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39d893776dfsm4651418f8f.33.2025.04.10.04.47.07
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 10 Apr 2025 04:47: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: 888446a5-1601-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744285628; x=1744890428; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=8oR7MLPF5r2CabjIPs5otgDPIkflYO1C7gLrLM21PNY=;
        b=sJLnZvh9vLi6V8GIm5fSBerHHR2phkg4cNc0nZM6CptZbaztCW5hnPYxcIpLKr+dAq
         I0yIzRCGZOgb4CvllsJDSUmRqlE73CNddF+bJH4DZIeeEVf5FiCOwCFsoR2UHjW1wgmb
         G98n7OTd7pw2D5YjbkmCET1/7CnSTI7OHBlCU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744285628; x=1744890428;
        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=8oR7MLPF5r2CabjIPs5otgDPIkflYO1C7gLrLM21PNY=;
        b=QxhKRvO6b6uMcOs3DCl2zue8/l/6AsXr2h4djybRuNk4Yd0Wn1KbbFM2U2fQywYpKq
         puA8JSFeb02Ermh8KT1GuKI/BLhB3tr1aVJtgOO10zsPJ/joEku/Z9lKrhnagICsXMj0
         IrrNZmoMLvcopOYCVnB6B2k/e79Epg7G8wtb81IWBCqRfv4Dmpz9u7ogRs2k536W5Wx+
         efSNHQbZ7jqLCGl+1oXu4qYEaC7/1AOg0M2jXFhvX/9YxhKUo0GgVrMAn8u8UgnQ68O9
         emTW26AmgxC6VPiLMAig3IEaThsQJm/5W0RtMJXtqvJitm7QIDdc363sXZkFKR+NaA16
         Hogg==
X-Gm-Message-State: AOJu0YzdG/U0W7iFTMDWJK5aY23DuxN+oyORf9spMUxtn8LANBC9ADv6
	XPuwlmHVsYCOgDW+4Eo3/kVwcBGbSXZAI0Ugx3w/OMMeI1vg3NQvpBsuAGSetLwGTkXYaLiYW+o
	BtNQ=
X-Gm-Gg: ASbGncvX3Pk1IhOaeqXMXfZo6hOoiojut3iK3fV0O1SHbTMnTR5kMsdg+vXU/0ZolA1
	Zal63Sj+hrJhJmhBvebwH84Dl8XqNmr0VMpFZHhzWHe4Rg3Y3vhaosOLqDKmUfIlP9MO+o44xLG
	4D1lzzAqj3xw561gxhuiWfWYFpmpCZu9ky2HWHzbz1mHCYOE6CrXzB2BNUUZIw0f5Nb7hkhUfk7
	UkUSvxCnlcLT9uLI65ZHOfBR/s8MLQHBFiwDSNXP1wns4ciIUhL45PbJTL4mdz9pb8hf2x/XmEP
	2S686vlNE8UTWMxtNakChH6JJE8Iksa4ZBIlsFNsEC0dP00WwMlGGSf0fS7dZqGqcNgvs+GLPjE
	XPqbnNYamaN+9JA==
X-Google-Smtp-Source: AGHT+IHp9CcvKpKQofVYiEDgkozYwHI52e8wyqB+JBcEyl6/M6yyPe4KENEfa71LNOyFUIVJLIVErg==
X-Received: by 2002:a05:600c:468b:b0:43d:fa58:700d with SMTP id 5b1f17b1804b1-43f2d99ac9bmr20222035e9.32.1744285628355;
        Thu, 10 Apr 2025 04:47:08 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH 4/6] Factor our x86-isms in the linux build script
Date: Thu, 10 Apr 2025 12:46:26 +0100
Message-Id: <20250410114628.2060072-5-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250410114628.2060072-1-andrew.cooper3@citrix.com>
References: <20250410114628.2060072-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

... in preparation to use it for arm64 too.  Rename the script.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
---
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Michal Orzel <michal.orzel@amd.com>
CC: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
CC: Anthony PERARD <anthony.perard@vates.tech>
---
 .gitlab-ci.yml                                |  3 +-
 ...{x86_64-kernel-linux.sh => build-linux.sh} | 34 +++++++++++++------
 2 files changed, 24 insertions(+), 13 deletions(-)
 rename scripts/{x86_64-kernel-linux.sh => build-linux.sh} (55%)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 734f3982c46f..a8e56b165ed6 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -28,8 +28,7 @@ stages:
 #
 x86_64-kernel-linux-6.6.56:
   extends: .x86_64-artifacts
-  script:
-    - . scripts/x86_64-kernel-linux.sh
+  script: ./scripts/build-linux.sh
   variables:
     LINUX_VERSION: 6.6.56
 
diff --git a/scripts/x86_64-kernel-linux.sh b/scripts/build-linux.sh
similarity index 55%
rename from scripts/x86_64-kernel-linux.sh
rename to scripts/build-linux.sh
index 5ed5608628bc..c78cd6ca46da 100755
--- a/scripts/x86_64-kernel-linux.sh
+++ b/scripts/build-linux.sh
@@ -9,6 +9,7 @@ set -ex -o pipefail
 
 WORKDIR="${PWD}"
 COPYDIR="${WORKDIR}/binaries/"
+UNAME=$(uname -m)
 
 # Build Linux
 MAJOR=${LINUX_VERSION%%.*}
@@ -16,17 +17,28 @@ curl -fsSLO \
     https://cdn.kernel.org/pub/linux/kernel/v"${MAJOR}".x/linux-"${LINUX_VERSION}".tar.xz
 tar xf linux-"${LINUX_VERSION}".tar.xz
 cd linux-"${LINUX_VERSION}"
-make ARCH=x86 defconfig
-make ARCH=x86 xen.config
+
+make defconfig
 ./scripts/config --enable BRIDGE
 ./scripts/config --enable IGC
 ./scripts/config --enable TUN
-cp .config .config.orig
-cat .config.orig \
-    | grep 'XEN' \
-    | grep '=m' \
-    | sed 's/=m/=y/g' \
-    >> .config
-make ARCH=x86 olddefconfig
-make -s -j "$(nproc)" ARCH=x86
-cp arch/x86/boot/bzImage "${COPYDIR}"
+
+case $UNAME in
+    x86_64)
+        make xen.config
+        cp .config .config.orig
+        cat .config.orig \
+            | grep 'XEN' \
+            | grep '=m' \
+            | sed 's/=m/=y/g' >> .config
+        ;;
+esac
+
+make olddefconfig
+
+case $UNAME in
+    x86_64)
+        make -j$(nproc) bzImage
+        cp arch/x86/boot/bzImage "${COPYDIR}"
+        ;;
+esac
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Apr 10 11:47:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 11:47:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.945326.1343530 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2qNC-0003hh-96; Thu, 10 Apr 2025 11:47:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 945326.1343530; Thu, 10 Apr 2025 11:47: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 1u2qNC-0003ha-6C; Thu, 10 Apr 2025 11:47:10 +0000
Received: by outflank-mailman (input) for mailman id 945326;
 Thu, 10 Apr 2025 11:47: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=C125=W4=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u2qNB-0003hP-6y
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 11:47: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 87210490-1601-11f0-9ffb-bf95429c2676;
 Thu, 10 Apr 2025 13:47:06 +0200 (CEST)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-43690d4605dso5814435e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 10 Apr 2025 04:47:06 -0700 (PDT)
Received: from localhost.localdomain (host-92-26-98-202.as13285.net.
 [92.26.98.202]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39d893776dfsm4651418f8f.33.2025.04.10.04.47.05
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 10 Apr 2025 04:47: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: 87210490-1601-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744285626; x=1744890426; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=5CtNKRTRSK/rh7mfkGTUf4JbHupBQBE1a+8umq7jRL4=;
        b=Flrv8nXNG7Fw+3lHHiYCELOWTcZu6eudDrYTytTFa5ZGsSCVSTl5SC53/692aG7aQX
         UPJVZHQLuuP62q81EG3nQQkLRURPviy5sr+dRfXB27U4zRDpI06vU+9zX39pA0I4NUVe
         Qnth5+kTzvTw0beeblKiLJ/lNM03LoqQDmGjg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744285626; x=1744890426;
        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=5CtNKRTRSK/rh7mfkGTUf4JbHupBQBE1a+8umq7jRL4=;
        b=bAraLzUBrH7f0lS/Vr0Iqxr/rCXHAc1RNqObGovdtpu/CNaaW4c2Y28edVSmzxa5lP
         szPtlHX9QIiVWRmfd4lGZM0dKqGY5bRMnrY3U/aZzOcQqexIcH3lxgWwNDWXUtFkaSE/
         2Py2IPNpk0dpZhatYLNl0vmBXWQstez6c1+5RaNEvlZqhesPP6z0ZmyOHLRyl92Eo3Qk
         kcERyBGP3qb7Js+LnQKUo/Oql17SF7+ca7PuEOTo12leUCHD8agHH3ZcevaBl3F6fo87
         hUm5bd4v2MUoDrm1v1dUgSF+fZTUv4Mmv4VjkTE2yoFnHKmA1ajSeuzYHg8fjbJT3Wax
         baqA==
X-Gm-Message-State: AOJu0Yzkpx3tFTKoVOgBZjWcjxJtUX7lbThIH53N5aCn7gOAmMc04Gtm
	CE4JfdsO1IA3YB2jpU/geHALixIIPD2kxBoxXTVGjNbYvF5HJAnyPuBcaOAQnv4qMNFUuWy2NS3
	xPdM=
X-Gm-Gg: ASbGncsoea5aqhOIoMPGS2BFz0LN7wZ6b8hySludgYmaudKnx3O3f3uIEy9YpTyvVv4
	5jeppIcplmYImJMtiN7+pA7BmAqEHVjodTr+0UQM1SFKbLsZP2W7+Fns74ax4h+b9BMP2tSDVMf
	L9kK9AR22UEo4qSdTBZG5SVulWGd90WKPIvEJLur/mP46x1L+ZyJnM/HUEG3XllElNazU+J5E85
	Ai8mQlt5Ryhw/z+QcoTQmFUPVEDsK9HB+YjfJKmYAE6UNe11phEVg+WorpVxe/7DTtghchTuT96
	3YRrLHQvTArk5uhCMrIAzhTMwEvsxzqyTXXDaVqvLprzi3Bd5u/X+oV9LzLadlM/dPskgQagVY+
	lGzp64sirsg/H7w==
X-Google-Smtp-Source: AGHT+IH8tzbinte0Su6EBQfrqSQaMnvh3Ng3xFtV5WfRAKJiiiZIXrrGSXXOE+q6rSqTU1beeuMEqA==
X-Received: by 2002:a05:6000:1ac5:b0:391:4095:49b7 with SMTP id ffacd0b85a97d-39d8f474e61mr1928536f8f.25.1744285626045;
        Thu, 10 Apr 2025 04:47:06 -0700 (PDT)
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>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH 1/6] Port containerise
Date: Thu, 10 Apr 2025 12:46:23 +0100
Message-Id: <20250410114628.2060072-2-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250410114628.2060072-1-andrew.cooper3@citrix.com>
References: <20250410114628.2060072-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

While it pains me to keep the wrong spelling, do so for consistency.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Michal Orzel <michal.orzel@amd.com>
CC: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
CC: Anthony PERARD <anthony.perard@vates.tech>

v2:
 * Switch back to alpine:x86_64-rootfs as the rename isn't in the series yet.
---
 containerize | 94 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 94 insertions(+)
 create mode 100755 containerize

diff --git a/containerize b/containerize
new file mode 100755
index 000000000000..fd488cc57596
--- /dev/null
+++ b/containerize
@@ -0,0 +1,94 @@
+#!/bin/bash
+
+#
+# DOCKER_CMD should be either `docker` or `podman`.
+#
+# if using (rootless) podman, remember to set /etc/subuid
+# and /etc/subgid.
+#
+docker_cmd=${DOCKER_CMD:-"docker"}
+[ "$DOCKER_CMD" = "podman" ] && userns_podman="--userns=keep-id" selinux=",z"
+
+einfo() {
+    echo "$*" >&2
+}
+
+die() {
+    echo "$*" >&2
+    exit 1
+}
+
+#
+# The caller is expected to override the CONTAINER environment
+# variable with the container they wish to launch.
+#
+BASE="registry.gitlab.com/xen-project/hardware/test-artifacts"
+case "_${CONTAINER}" in
+    _alpine-x86_64-rootfs) CONTAINER="${BASE}/alpine:x86_64-rootfs" ;;
+    _alpine-x86_64-build|_) CONTAINER="${BASE}/alpine:x86_64-build" ;;
+esac
+
+# Use this variable to control whether root should be used
+case "_${CONTAINER_UID0}" in
+    _1)   userarg="-u 0" ;;
+    _0|_) userarg="-u $(id -u) $userns_podman" ;;
+esac
+
+# Save the commands for future use
+cmd=("$@")
+
+# If no command was specified, just drop us into a shell if we're interactive
+[ $# -eq 0 ] && tty -s && cmd=("/bin/bash")
+
+# Are we in an interactive terminal?
+tty -s && termint=t
+
+#
+# Fetch the latest version of the container in hub.docker.com,
+# unless it's a newly created local copy.
+#
+if [[ "_${CONTAINER_NO_PULL}" != "_1" ]]; then
+    einfo "*** Ensuring ${CONTAINER} is up to date"
+    ${docker_cmd} pull ${CONTAINER} > /dev/null ||     \
+        die "Failed to update container"
+fi
+
+if hash greadlink > /dev/null 2>&1; then
+    READLINK=greadlink
+elif [[ $(uname -s) == "Darwin" ]]; then
+    echo "Unable to forward SSH agent without coreutils installed"
+    unset SSH_AUTH_SOCK
+else
+    READLINK=readlink
+fi
+
+# Ensure we've got what we need for SSH_AUTH_SOCK
+if [[ -n ${SSH_AUTH_SOCK} ]]; then
+    fullpath_sock=$(${READLINK} -f ${SSH_AUTH_SOCK} 2> /dev/null)
+    if [ $? -ne 0 ]; then
+        echo "Invalid SSH_AUTH_SOCK: ${SSH_AUTH_SOCK}"
+        unset SSH_AUTH_SOCK
+    else
+        SSH_AUTH_DIR=$(dirname ${fullpath_sock})
+        SSH_AUTH_NAME=$(basename ${fullpath_sock})
+    fi
+fi
+
+# Figure out the base of what we want as our sources
+# by using the top of the git repo
+if [[ -z ${CONTAINER_PATH} ]]; then
+    CONTAINER_PATH=$(git rev-parse --show-toplevel)
+fi
+
+# Kick off Docker
+einfo "*** Launching container ..."
+exec ${docker_cmd} run \
+    ${userarg} \
+    ${SSH_AUTH_SOCK:+-e SSH_AUTH_SOCK="/tmp/ssh-agent/${SSH_AUTH_NAME}"} \
+    -v "${CONTAINER_PATH}":/build:rw${selinux} \
+    -v "${HOME}/.ssh":/root/.ssh:ro \
+    ${SSH_AUTH_DIR:+-v "${SSH_AUTH_DIR}":/tmp/ssh-agent${selinux}} \
+    ${CONTAINER_ARGS} \
+    -${termint}i --rm -- \
+    ${CONTAINER} \
+    "${cmd[@]}"
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Apr 10 11:47:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 11:47:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.945329.1343555 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2qNE-0004CS-Vb; Thu, 10 Apr 2025 11:47:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 945329.1343555; Thu, 10 Apr 2025 11: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 1u2qNE-0004Bc-QQ; Thu, 10 Apr 2025 11:47:12 +0000
Received: by outflank-mailman (input) for mailman id 945329;
 Thu, 10 Apr 2025 11: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=C125=W4=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u2qND-0003vN-Dz
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 11:47:11 +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 8927a9f4-1601-11f0-9eac-5ba50f476ded;
 Thu, 10 Apr 2025 13:47:10 +0200 (CEST)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-399749152b4so290956f8f.3
 for <xen-devel@lists.xenproject.org>; Thu, 10 Apr 2025 04:47:10 -0700 (PDT)
Received: from localhost.localdomain (host-92-26-98-202.as13285.net.
 [92.26.98.202]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39d893776dfsm4651418f8f.33.2025.04.10.04.47.08
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 10 Apr 2025 04:47: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: 8927a9f4-1601-11f0-9eac-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744285629; x=1744890429; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=KDlRltBQlDK5HzUxWDgj0k+9YEzjv0UHHKFuSv9/huI=;
        b=BnEQQgntFcg9KYbjHgUJf3zo1L2aGy6ioxbFXHrXdef8Du29ZnYQ/cA1ulO+1MNhlC
         xmVyPKwr5UaOvwXrPDqu+dDlD63N3L50cXc++go6/eI2Hwdx5pOiWPeQrWgJMqN//9BW
         8EooCouxK1eOqxeUVzpNT3lwmkH1gHPQc5o5I=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744285629; x=1744890429;
        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=KDlRltBQlDK5HzUxWDgj0k+9YEzjv0UHHKFuSv9/huI=;
        b=Je5KUPmTFjRG+G7iFOpUweu6O1lFfGfdPPUuOE61+EhtiF7Ky3t4oR4FKAKmYqw51Y
         3AfQmk9UIXEeD8cOZv70znDyAa9Q9kiLwvdJwbfOmcFzB5GtJbpJVv0/4C3+220nd1sx
         SKX41VyonoMGaouQ48HlzfIb8aZPylzpk9mAksaToJroD3Xvx1Jdgo2ewCfRF0MBJM4E
         xxukJIOX/XhsUrn++kywqf8m9y42axHYmgaCkUacaSO1PxDr8a5HEriTyyrjsKVTL4hN
         c9FDSnEHuOEXME7MvyoPaoH3XTs6ms7YdIAR4/45XMD6glog+kXKe08mi4IyfmNnBAML
         xgJg==
X-Gm-Message-State: AOJu0YwbqdQzWQPIQ6dcodDplHE+Uu+gKa+NqglIRiQQbVQWspWmt3DL
	KlxaROy+aTk6w6aOGOVffYtKsXE2RDta2shz5062M7Vwc4pKa9W5KmwfO7eVmbDzptaRha+rGRF
	oUlQ=
X-Gm-Gg: ASbGncsj1VtNeJoGbdw24vWzTL5rCtesg7oeWZglCg5J9fyHjuadStlriqXsre2XcFB
	YuXNQLzm0qejWFtfC2lTqSNrsXqj19TT2cVOKRTeYsbPr7v3h37waUt9E11stVuA6tONNi3mKBf
	MNmIUFU157m/Noe1q+lmXZhJfZoZUFhwRcVudsJ8T8iWxXDOLVWywfvU5b3gYfN6+xaNQqu42pf
	o2LT1cu6oyNfg4UI2PQAucIIkNjBzKt3pG1YgIG66+z0wQQTtSiKz/7nI+IClJ63PNu9Ugxiu9C
	qTkPS9a5cb1rzjiRvVA8Tgv9M4oL4YmlT73sEu+yeWfYVae/Kheu7yJtLTfCNHfS0g0l/iJpAbf
	6YlmUjviJh4AJaA==
X-Google-Smtp-Source: AGHT+IEi369RxGSg/Usod6vfW65JYGq/Nc8vCcbbU/LfGgo17meuZmZCJuIfe2wKsSey9HbCPSbN6Q==
X-Received: by 2002:a05:6000:2a8:b0:391:48d4:bcf2 with SMTP id ffacd0b85a97d-39d8f276117mr1993700f8f.12.1744285629150;
        Thu, 10 Apr 2025 04:47:09 -0700 (PDT)
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>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH 5/6] Infrastructure for arm64 linux builds
Date: Thu, 10 Apr 2025 12:46:27 +0100
Message-Id: <20250410114628.2060072-6-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250410114628.2060072-1-andrew.cooper3@citrix.com>
References: <20250410114628.2060072-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Michal Orzel <michal.orzel@amd.com>
CC: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
CC: Anthony PERARD <anthony.perard@vates.tech>

v2:
 * Drop musl-dev.  It's brought in by build-base.
 * Include findutils to fix build warnings.
---
 .gitlab-ci.yml                            |  7 ++++++
 containerize                              |  1 +
 images/alpine/3.18-arm64-build.dockerfile | 27 +++++++++++++++++++++++
 scripts/build-linux.sh                    | 10 +++++++++
 4 files changed, 45 insertions(+)
 create mode 100644 images/alpine/3.18-arm64-build.dockerfile

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index a8e56b165ed6..6faa85d8dd7c 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -16,6 +16,13 @@ stages:
     exclude:
       - binaries/.gitignore
 
+.arm64-artifacts:
+  extends: .artifacts
+  tags:
+    - arm64
+  variables:
+    CONTAINER: alpine:3.18-arm64-build
+
 .x86_64-artifacts:
   extends: .artifacts
   tags:
diff --git a/containerize b/containerize
index fd488cc57596..7abeb119ff6a 100755
--- a/containerize
+++ b/containerize
@@ -24,6 +24,7 @@ die() {
 #
 BASE="registry.gitlab.com/xen-project/hardware/test-artifacts"
 case "_${CONTAINER}" in
+    _alpine-3.18-arm64-build) CONTAINER="${BASE}/alpine:3.18-arm64-build" ;;
     _alpine-x86_64-rootfs) CONTAINER="${BASE}/alpine:x86_64-rootfs" ;;
     _alpine-x86_64-build|_) CONTAINER="${BASE}/alpine:x86_64-build" ;;
 esac
diff --git a/images/alpine/3.18-arm64-build.dockerfile b/images/alpine/3.18-arm64-build.dockerfile
new file mode 100644
index 000000000000..b6d9bd1af531
--- /dev/null
+++ b/images/alpine/3.18-arm64-build.dockerfile
@@ -0,0 +1,27 @@
+# syntax=docker/dockerfile:1
+FROM --platform=linux/arm64/v8 alpine:3.18
+LABEL maintainer.name="The Xen Project" \
+      maintainer.email="xen-devel@lists.xenproject.org"
+
+RUN apk --no-cache add bash
+
+RUN bash -ex <<EOF
+      adduser -D user --shell bash
+
+      DEPS=(# Base environment
+            build-base
+            curl
+
+            # Linux build deps
+            bison
+            findutils
+            flex
+            openssl-dev
+            perl
+      )
+
+      apk add --no-cache "\${DEPS[@]}"
+EOF
+
+USER user
+WORKDIR /build
diff --git a/scripts/build-linux.sh b/scripts/build-linux.sh
index c78cd6ca46da..652fdba7b9d1 100755
--- a/scripts/build-linux.sh
+++ b/scripts/build-linux.sh
@@ -21,6 +21,7 @@ cd linux-"${LINUX_VERSION}"
 make defconfig
 ./scripts/config --enable BRIDGE
 ./scripts/config --enable IGC
+./scripts/config --enable IPV6
 ./scripts/config --enable TUN
 
 case $UNAME in
@@ -32,6 +33,10 @@ case $UNAME in
             | grep '=m' \
             | sed 's/=m/=y/g' >> .config
         ;;
+
+    aarch64)
+        ./scripts/config --enable XEN_NETDEV_BACKEND
+        ;;
 esac
 
 make olddefconfig
@@ -41,4 +46,9 @@ case $UNAME in
         make -j$(nproc) bzImage
         cp arch/x86/boot/bzImage "${COPYDIR}"
         ;;
+
+    aarch64)
+        make -j$(nproc) Image
+        cp arch/arm64/boot/Image "${COPYDIR}"
+        ;;
 esac
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Apr 10 11:47:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 11:47:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.945327.1343540 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2qND-0003vV-FP; Thu, 10 Apr 2025 11:47:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 945327.1343540; Thu, 10 Apr 2025 11:47: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 1u2qND-0003vO-Bx; Thu, 10 Apr 2025 11:47:11 +0000
Received: by outflank-mailman (input) for mailman id 945327;
 Thu, 10 Apr 2025 11:47: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=C125=W4=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u2qNB-0003hP-SV
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 11:47:09 +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 8793fdcd-1601-11f0-9ffb-bf95429c2676;
 Thu, 10 Apr 2025 13:47:07 +0200 (CEST)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-43cfe574976so5117565e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 10 Apr 2025 04:47:07 -0700 (PDT)
Received: from localhost.localdomain (host-92-26-98-202.as13285.net.
 [92.26.98.202]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39d893776dfsm4651418f8f.33.2025.04.10.04.47.06
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 10 Apr 2025 04:47: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: 8793fdcd-1601-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744285627; x=1744890427; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=CmUAg7jU1oFEVgNmFtaK3OHtZvMFInF5GgxTSJzMnuw=;
        b=FKqzwgoU6A/C4/miMEmjyOntZzLtToA+56MOLrn9PmzYEUAwuU6No1MoaEe/5a/kRt
         AL79Gq0ljwRV7KdEYfZ3DRJvdBAloMkiVs4il8iLhGRcnzm3y709wjJ3pVa/hrp7aVdJ
         PIxV3DzWvR4nzwt8XHSlJlcIM3QIkeFDyYSGA=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744285627; x=1744890427;
        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=CmUAg7jU1oFEVgNmFtaK3OHtZvMFInF5GgxTSJzMnuw=;
        b=HhVnnRs7Uz7JKfq8HWSKoooNsIDv/GlrVneqK5my2/6A1H/y4zNc8xPKVtuNEG0KS6
         9duJTRoRubdioqV/jEAlD+7Cysf+F0B/mWXnlWF5b5J2IQ/KbBHeR70PAyV1cM8fqFGt
         y+ta0TQUljrkmO3j2j8939UBDDot2UA8NyFuJloxp4d2aqQWDHlh5tTbrbLkIBtS2yZt
         KQJv1PI3BCVJvBsXpOnNLPRlzO6VRVzHAEloUWRdSpelCPRiStjEgaFViwSNK3zUOX/s
         3PVNftLhWvutVei3bBd3WmNiS5MYy3DLtaEwnKuorR/PnNpd+c+AzeDfT+Ga6KGb125d
         +sOA==
X-Gm-Message-State: AOJu0YzxDsWOV18hoKnnxE1SO7nf5ConOa5bEVVw54h0YVM+N9y4efJ8
	c0Hv7F3M1f2L9UJIirXNkA1IGOBZuaQmamI5FsIb1jarrvLVbnnPILdkM5nAoj1sPcmroj+N4ua
	hJyg=
X-Gm-Gg: ASbGncv7Mx/kcOL6rl2BvxsosEYZKJQHz+Z5FBOKQ3fKz/YzfjfxuKP+gocnJJQAYcG
	7hFnEwRMYwMTBOhajkuuoPIpwe2vc3+yexcnVGcDUUfCXhlJOlclp7kQVSQsX+D59lPEJ7Cx2L/
	52i03qhNCuqOs3RWudv3uWZ3vGrLrb9twzXS3Ur3vmLd0vkp6Zwo62lfEHzzi5WLAl9k2Csfese
	pqEy/z9KANFCm2+pZx4sdPv/gVe23cJsYMY3/vrGD/FpEajVMCObSqkVag0cVPe4QM3ulNtSVb/
	Pr9WwhvcZBNSWtQ0aMkajWaYP8srCOPt7PHUVCBlvDVQtYBOZx3MrZwUpAgmdeC0aI+rkYQX0mj
	eRTwj2YgZSp54rn7FKxgk9YGv
X-Google-Smtp-Source: AGHT+IEtA0sWJV4QWwpV9KTtrtVIst7z+N9OHlMYzZ9RWBUae0cIQ2HP+CgUpXTnASNk+vdrh0kdZw==
X-Received: by 2002:a5d:648c:0:b0:391:3988:1c97 with SMTP id ffacd0b85a97d-39d8f46a059mr1680392f8f.17.1744285626831;
        Thu, 10 Apr 2025 04:47:06 -0700 (PDT)
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>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH 2/6] Clean up Gitlab yaml
Date: Thu, 10 Apr 2025 12:46:24 +0100
Message-Id: <20250410114628.2060072-3-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250410114628.2060072-1-andrew.cooper3@citrix.com>
References: <20250410114628.2060072-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Factor out the registry into a common location.  Drop the worflow name, as all
it does is hide the commit message of the change that triggered the pipeline.
List all the stages.  Set a default expiry of 1 month.

Note all the current jobs as legacy.  Their naming scheme needs changing, and
we'll use this opportunity to switch formats too.  However, the artefacts need
to stay using the old name until the final staging-* branch using them is
phased out.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Michal Orzel <michal.orzel@amd.com>
CC: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
CC: Anthony PERARD <anthony.perard@vates.tech>

v2:
 * Drop the workflow name.
---
 .gitlab-ci.yml | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 36ec6a7e1ee5..734f3982c46f 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,12 +1,16 @@
-workflow:
-  name: "xen test artifacts"
+variables:
+  REGISTRY: registry.gitlab.com/xen-project/hardware/test-artifacts
+
+stages:
+  - build
 
 .artifacts:
   stage: build
   image:
-    name: registry.gitlab.com/xen-project/hardware/test-artifacts/${CONTAINER}
+    name: ${REGISTRY}/${CONTAINER}
   artifacts:
     name: "${CI_JOB_NAME_SLUG}"
+    expire_in: 1 month
     paths:
       - binaries/
     exclude:
@@ -19,6 +23,9 @@ workflow:
   variables:
     CONTAINER: alpine:x86_64-build
 
+#
+# The jobs below here are legacy and being phased out.
+#
 x86_64-kernel-linux-6.6.56:
   extends: .x86_64-artifacts
   script:
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Apr 10 11:47:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 11:47:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.945328.1343549 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2qNE-0004AG-Mj; Thu, 10 Apr 2025 11:47:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 945328.1343549; Thu, 10 Apr 2025 11: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 1u2qNE-0004A9-JJ; Thu, 10 Apr 2025 11:47:12 +0000
Received: by outflank-mailman (input) for mailman id 945328;
 Thu, 10 Apr 2025 11:47: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=C125=W4=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u2qNC-0003hP-Sk
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 11:47: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 880e98f1-1601-11f0-9ffb-bf95429c2676;
 Thu, 10 Apr 2025 13:47:08 +0200 (CEST)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-391342fc0b5so461252f8f.3
 for <xen-devel@lists.xenproject.org>; Thu, 10 Apr 2025 04:47:08 -0700 (PDT)
Received: from localhost.localdomain (host-92-26-98-202.as13285.net.
 [92.26.98.202]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39d893776dfsm4651418f8f.33.2025.04.10.04.47.06
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 10 Apr 2025 04:47: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: 880e98f1-1601-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744285627; x=1744890427; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=W4Z3kIHuhnklBdlhCOBG5oTaOo1JbFmkMLZhiqPUPak=;
        b=eFp45YLJ/uq++N4gZbCnq1JVSlI3G5/GTtqKYu5NpKeL1duAH4/FBUnWHBHWFXu+Fv
         RyOTmUnsWXUVdlhpRNg05a3mTEis0JaxVJcO4kx24wbPxHADNK38ZoDdjysaNcEfFIcb
         3GQQhozMiybmz1ZGnqddkElFzsChjfRNfDRz4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744285627; x=1744890427;
        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=W4Z3kIHuhnklBdlhCOBG5oTaOo1JbFmkMLZhiqPUPak=;
        b=hJ3sDQO7CFsh0EsXnmGQVTDohC6IsSpcxo9i4nnPne+UFg1hWhxcCSzY8liVKYJbcR
         9ze0UhMf+MzL484hYfZXOeQoY69Mu4LlpOMtOJC/CVEGIO+B02mJyxDLI6GAcDHlRbDd
         P2wlCy14Kth2o92zHm7Uwl7SZ9YibBJ5+H2BtEt0oAcVRtXF+V5qAzRsDzsUVbC5B0oW
         h8+h006+u9FFaBenAG8ctH7BwjopkTRH7T3mRs3zYA8PhyzaJZKbq5qegT6Ia7WzwPeC
         uZQYQjMnhiocVN9qYxasTH/nmsZsHUGQR/5jvjlOWQpNPDch1Cg0jjbFD7tBqd8YpFmi
         iqBA==
X-Gm-Message-State: AOJu0Yz4303vNElnUQC0hOkv+imFYEqJO3yyiAwi+ewCvsrb0IrESdP1
	B++tlAVUUcQiZ/yiSyP60GU7f0hbaZeCgfjOZuTH8mLBUMTB5gMnSk4q2ht3igcnnQt6mTcl00a
	QPjE=
X-Gm-Gg: ASbGnct9m6m304Z4p96BildYB/2VYOsOjtP+zNAvr17WW0H2zE/TIiigdzFy+bLNnXs
	XIH1vlewdIWBRd3ersyr6PUaZcwh1RSYFsdwXScM7C7177pC25HZuCfdP0EDBtRv8v5+b9OBYOL
	y/zluD91aeZjhgm5HXPe4Rmrem54KPvMX0o3hJEkND72tCCtxtfHN7y/Vtdjol+qo32KnGm8Mt4
	o3Hs7E53LlODixsOT9XZgBKKAbN1wHwJJUdV4/erqYhh79pPRE91sUo9mn6u+bihlLzyOC1PdD7
	qxzFHoPKEeYeaCH3qZ9NGFyUqyGNv3BlNc6Lb5M0N/jS3lbcZAn6HojIDsp4FhUZNE/z1ylepDW
	LpmtVWmFAx118lQ==
X-Google-Smtp-Source: AGHT+IFo0dsiWLK8PK4pbqdkf6C7kBzISX9YV7JBCkAkIEdHG7SOFQo4Cdh311PwZPkDMbyUO0B9MQ==
X-Received: by 2002:a05:6000:40c9:b0:391:2d76:baaa with SMTP id ffacd0b85a97d-39d8f4d3a7cmr2053029f8f.46.1744285627573;
        Thu, 10 Apr 2025 04:47:07 -0700 (PDT)
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>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH 3/6] Adjust Linux build script to work with other major versions
Date: Thu, 10 Apr 2025 12:46:25 +0100
Message-Id: <20250410114628.2060072-4-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250410114628.2060072-1-andrew.cooper3@citrix.com>
References: <20250410114628.2060072-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Simply the tar expression, as 'tar xf' can figure out the compression
automatically.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Michal Orzel <michal.orzel@amd.com>
CC: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
CC: Anthony PERARD <anthony.perard@vates.tech>

v2:
 * Use 'tar xf'
---
 scripts/x86_64-kernel-linux.sh | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/scripts/x86_64-kernel-linux.sh b/scripts/x86_64-kernel-linux.sh
index 2a816f0b3204..5ed5608628bc 100755
--- a/scripts/x86_64-kernel-linux.sh
+++ b/scripts/x86_64-kernel-linux.sh
@@ -11,9 +11,10 @@ WORKDIR="${PWD}"
 COPYDIR="${WORKDIR}/binaries/"
 
 # Build Linux
+MAJOR=${LINUX_VERSION%%.*}
 curl -fsSLO \
-    https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-"${LINUX_VERSION}".tar.xz
-tar xJf linux-"${LINUX_VERSION}".tar.xz
+    https://cdn.kernel.org/pub/linux/kernel/v"${MAJOR}".x/linux-"${LINUX_VERSION}".tar.xz
+tar xf linux-"${LINUX_VERSION}".tar.xz
 cd linux-"${LINUX_VERSION}"
 make ARCH=x86 defconfig
 make ARCH=x86 xen.config
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Apr 10 11:47:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 11:47:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.945331.1343581 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2qNG-0004qj-Pg; Thu, 10 Apr 2025 11:47:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 945331.1343581; Thu, 10 Apr 2025 11:47: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 1u2qNG-0004pH-JE; Thu, 10 Apr 2025 11:47:14 +0000
Received: by outflank-mailman (input) for mailman id 945331;
 Thu, 10 Apr 2025 11:47:13 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=C125=W4=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u2qNE-0003hP-TN
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 11:47:12 +0000
Received: from mail-wm1-x329.google.com (mail-wm1-x329.google.com
 [2a00:1450:4864:20::329])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 86af362f-1601-11f0-9ffb-bf95429c2676;
 Thu, 10 Apr 2025 13:47:06 +0200 (CEST)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-43690d4605dso5814325e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 10 Apr 2025 04:47:06 -0700 (PDT)
Received: from localhost.localdomain (host-92-26-98-202.as13285.net.
 [92.26.98.202]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39d893776dfsm4651418f8f.33.2025.04.10.04.47.04
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 10 Apr 2025 04:47:04 -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: 86af362f-1601-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744285625; x=1744890425; 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=flZ7BbtrrxFqgiPu3pGHNugrEO4DPt9EsjZO6Qw/J8g=;
        b=Bl5KDGCPkjHg1I9SS9cczNaiyw7JNhu1d4ZuiT2ROH3BhEiPu6lPTJDUUO8EZ7FSUX
         t7UMU5kZ8+P5jJsoOJSMevDAY8IHyDDMSoUfQ3+ssZuM9nnpwgi0aPI/Gi5GWVRIApAn
         OnXBIqyo007qkq6crD9fTrV+G9nMVNyecgWpc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744285625; x=1744890425;
        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=flZ7BbtrrxFqgiPu3pGHNugrEO4DPt9EsjZO6Qw/J8g=;
        b=pMSmLs904tFvLwMtozB6T4rxMSr0Xzv0LZ1v6+NnGG5HWZ+POJakIBmpUuLxNYsyCZ
         npvnenTnLvsNFFIYqMjai7BUqSRS/mL7D+3h0RxulJG1im/zPROhI7AFELAYUwWylUYs
         D8JaMC+7s4LhUDkvH9hEBlCGGLsVFVzAEbPjWjanaq3qSvaPXcUjC4S/uruG1gOUdB54
         X6hst4jfSTRbo6V1Y3sLJxSsHbubF83dMUBRsUU0YIfKtn/NnH8a624dcv7hZKsntr9/
         oUiRP24SCFL1XyOYhoBIqB7tdEPtz/JQvHP1PCLExKuoEhWYV+BB9OFN9jumdET/8qjz
         pPuQ==
X-Gm-Message-State: AOJu0YzJ4p39mp1VXnwlU12gby44H5o1c7mLK6L7fnPHT8WRaLxQWvRr
	ycm+W2xkdcK6M5uA8sIWJYmph7UKVlSd/LHbMpkXHnNpEuH/WkKHDHsYC4eygE6XgtcSjQ1fLGM
	S/TM=
X-Gm-Gg: ASbGncvxQ3ki9OA9zk0vg2C5mKtKLIWoAuBJJb3PtOyEz0O+lwBhPhliBshR7rzaK6u
	47h1O5AXKgtz9xoaHkPGDczceKqhL8RtWjMnaMsg5LrgIrEvGKYcWFNaf4AEf/rqCJ2Y6+L3IOs
	igiK0DocwZUX20SQKR1mu17qjL48xXSnPGa2+GCpMAUCxCfZTTIxd3yV0onJskvwdvNhwKZOFMu
	Ew+uzkS4+7szKCY9KVnXRdba9uw2V5vQNlzqk4VIhHbnh/ggToSAdgg/dV+Wv9onFJsEcBuQZHD
	6GDOdHkP2KtwhZ5p8vBoevT6pnlMYx5s0SGqRvaBOXz3DZuNMrosXz/C4umMRDDdQZ4faJNyF25
	1JOMDO2DotZDQqA==
X-Google-Smtp-Source: AGHT+IFirGQDmxdjeTGaZ2HOONhkxrcsUzUUMg3aNkWrJJYKQXzzmdfI3py46Qfm52GauliKQNVK4Q==
X-Received: by 2002:a5d:648c:0:b0:38f:4f60:e669 with SMTP id ffacd0b85a97d-39d8f4930f5mr1825818f8f.29.1744285625254;
        Thu, 10 Apr 2025 04:47:05 -0700 (PDT)
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>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH TEST-ARTEFACTS v2 0/6] Cleanup and Linux ARM64 support
Date: Thu, 10 Apr 2025 12:46:22 +0100
Message-Id: <20250410114628.2060072-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Two patches merged.  Only minor tweaks to the rest.

https://gitlab.com/xen-project/hardware/test-artifacts/-/pipelines/1762204421
is a pipline showing clean kernel builds.

https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/1762221755 is
a Xen pipline using the artefacts from ^.

Andrew Cooper (6):
  Port containerise
  Clean up Gitlab yaml
  Adjust Linux build script to work with other major versions
  Factor our x86-isms in the linux build script
  Infrastructure for arm64 linux builds
  Linux builds for x86 and ARM64

 .gitlab-ci.yml                            | 41 ++++++++--
 containerize                              | 95 +++++++++++++++++++++++
 images/alpine/3.18-arm64-build.dockerfile | 27 +++++++
 scripts/build-linux.sh                    | 54 +++++++++++++
 scripts/x86_64-kernel-linux.sh            | 31 --------
 5 files changed, 212 insertions(+), 36 deletions(-)
 create mode 100755 containerize
 create mode 100644 images/alpine/3.18-arm64-build.dockerfile
 create mode 100755 scripts/build-linux.sh
 delete mode 100755 scripts/x86_64-kernel-linux.sh

-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Apr 10 11:47:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 11:47:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.945332.1343590 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2qNH-00058k-W7; Thu, 10 Apr 2025 11:47:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 945332.1343590; Thu, 10 Apr 2025 11:47:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2qNH-00058Y-SG; Thu, 10 Apr 2025 11:47:15 +0000
Received: by outflank-mailman (input) for mailman id 945332;
 Thu, 10 Apr 2025 11:47:13 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=C125=W4=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u2qNF-0003hP-TR
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 11:47:13 +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 896c174a-1601-11f0-9ffb-bf95429c2676;
 Thu, 10 Apr 2025 13:47:10 +0200 (CEST)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-43cfa7e7f54so4780455e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 10 Apr 2025 04:47:10 -0700 (PDT)
Received: from localhost.localdomain (host-92-26-98-202.as13285.net.
 [92.26.98.202]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39d893776dfsm4651418f8f.33.2025.04.10.04.47.09
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 10 Apr 2025 04:47: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: 896c174a-1601-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744285630; x=1744890430; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=RQtcmdgC+7vfQg2A8IxuYMtTNVD5Qv9GQXTpir99CIU=;
        b=GgHF0oGoS+72C4yATUemQTKfSH6SnhLfbCdapOIp1sRJCIaU6xLhkuK2OojeAGStp+
         q15UOJIM0WLJK9KlJvbR7j3qAtAVIIwAcsUHye+fktBgwtzm3MuNh1SnBPTudCNWnLnp
         bEcat/Q2nTUAfOhVU+IiiN2To3EifQqGOuIDc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744285630; x=1744890430;
        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=RQtcmdgC+7vfQg2A8IxuYMtTNVD5Qv9GQXTpir99CIU=;
        b=afnlfCIVMirdkzSeQXssC6YLJcCG78Z8Tbk7ePe4Np3HUGYHEFd7tnNFPLY/vChdeI
         aBibKtk7W7NtvFLpXqx9pk732hcEnuHbsmhD5pgqZtKD10NxJ/EWh/CUnvdHGQ+CbBu1
         ShbAx0y9bEMBV1PljZipyfN6QFK6JHcFXPAFZ9DVNDbNxDZmaz+BjfEdzdbWwrNa0wWH
         HSC5ULLvBuM0wQZPYop3pJ/xFhbPOgaapWBzFj7xHclHIqE8UPx9oR6+ra+e9RD1SVnC
         XrN3D3UcYF3Rn0uEU9jtAKbidixSwBHXd4FvtPKg3J2wqVpBzLvF6YhJQUGCR142iNrd
         QYOA==
X-Gm-Message-State: AOJu0YxFj5++iuBQ8ed3mbYzfC4NCz+Qj/37c/BQ/uqxhi4aI0Mg5rYL
	1S7uP5pxUwjZX9jJfs8AyjglcGtYFw80tEcR92wM6LCfDZOhafXMEW0bqGhZ6uMeVDjziP113Jb
	zCTY=
X-Gm-Gg: ASbGncu4OeH5YOieaItzc1RIu0khhe3UcAL4MC25AKkr4ZVx8iBR2TBSBOAF/HTq7Qz
	jY7W+4VfN43D5VG0BHbTFZ6U9uoKHU2+87EiqXhQtdak8km1DEr2mrV5ms978x6MuZ6RFGcJMgv
	zhgAi3lODEYrnTYrhUMAb2G7LBz6duPNST8L+xKV4A/DqfDS4gWRVV9y9cbS+gpXK+9Ct6oJU9q
	7gkRN/Tl9+I8wBW/1dkFym9gRH/Mo4lnVAz06/7oVJ9f6UIFNQ5xyfcF1FFtn+jCU5DrJdDJnnM
	7OLdsLnVTbViPEzDe1PxfiJIvQgGTecK+SCeMq9kvIPsCeeEqOpuM8WxNgHotZ0lKvvN/3XyD69
	fg5KMb3xKKpBXLg==
X-Google-Smtp-Source: AGHT+IFioVQOmsy44gPyli+5f1vsL2eu8Mopp7MqvGSQ4NU6+BDYI4RKpJFWw4yp6NJmDv22eEdPpw==
X-Received: by 2002:a05:600c:8711:b0:439:9737:675b with SMTP id 5b1f17b1804b1-43f2f0614eamr20779155e9.7.1744285629884;
        Thu, 10 Apr 2025 04:47:09 -0700 (PDT)
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>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH 6/6] Linux builds for x86 and ARM64
Date: Thu, 10 Apr 2025 12:46:28 +0100
Message-Id: <20250410114628.2060072-7-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250410114628.2060072-1-andrew.cooper3@citrix.com>
References: <20250410114628.2060072-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

For ARM64, the tests in Xen currently use 6.6.74, but 6.6.86 works so update
to the latest.

For x86, stay at 6.6.56.  There's a PVH regression upstream in need of fixing.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Michal Orzel <michal.orzel@amd.com>
CC: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
CC: Anthony PERARD <anthony.perard@vates.tech>

v2:
 * Move x86 back to 6.6.56 until the PVH regression is fixed.
---
 .gitlab-ci.yml | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 6faa85d8dd7c..670f9621e26d 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -30,6 +30,24 @@ stages:
   variables:
     CONTAINER: alpine:x86_64-build
 
+#
+# ARM64 artifacts
+#
+linux-6.6.86-arm64:
+  extends: .arm64-artifacts
+  script: ./scripts/build-linux.sh
+  variables:
+    LINUX_VERSION: 6.6.86
+
+#
+# x86_64 artifacts
+#
+linux-6.6.56-x86_64:
+  extends: .x86_64-artifacts
+  script: ./scripts/build-linux.sh
+  variables:
+    LINUX_VERSION: 6.6.56
+
 #
 # The jobs below here are legacy and being phased out.
 #
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Apr 10 11:49:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 11:49:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.945368.1343599 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2qPh-0007Oa-Bq; Thu, 10 Apr 2025 11:49:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 945368.1343599; Thu, 10 Apr 2025 11:49:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2qPh-0007OT-9F; Thu, 10 Apr 2025 11:49:45 +0000
Received: by outflank-mailman (input) for mailman id 945368;
 Thu, 10 Apr 2025 11:49: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=w6Mj=W4=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u2qPg-0007OL-Oi
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 11:49:44 +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 e40ca308-1601-11f0-9ffb-bf95429c2676;
 Thu, 10 Apr 2025 13:49:42 +0200 (CEST)
Received: by mail-wr1-x433.google.com with SMTP id
 ffacd0b85a97d-39c1efc457bso381059f8f.2
 for <xen-devel@lists.xenproject.org>; Thu, 10 Apr 2025 04:49:42 -0700 (PDT)
Received: from [10.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-43f233a2a13sm48332185e9.10.2025.04.10.04.49.41
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 10 Apr 2025 04:49: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: e40ca308-1601-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744285782; x=1744890582; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=59h1vr1bm4CPuKPO0Fm+eOU2RvTYJ2NcX9b++sQP+P4=;
        b=GAnyr8LljUp24AoNYrWSF360KNLZf2GBS7p4wy5SCDer6fmj6BBypgRtNRC0u+07cB
         Ta48wfVPzQRdRFnH/jYIZWVI5mqAZtWtbu3ADh2T3sSqmeGrXGw3MQ7bNMoV1uE9b8Fu
         DSiuoMan2R2j37ljLbqhaxK1JFEc1pFKlyQ/LP9nXVjn4yscYmBFGm7fFkZWWZYRrcGt
         dqgadIZ4VK9rgy2EADKe3Fr4VjWLB0qKZS0kAimTr7GHq8INJoYnmpXCKTpfeBD6Lup4
         TE5BrS4UXHr1OSpIrVQtQcyBOIo0UYzZLAc+673yPJTr+TcLX+P/98Fkn1s8H1/nKT7l
         ABcA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744285782; x=1744890582;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=59h1vr1bm4CPuKPO0Fm+eOU2RvTYJ2NcX9b++sQP+P4=;
        b=L2+UqpqFcVBl0IBvEUNNfMIN1nN+hDnOJTFhxrtX1BY9binyLRGsZii9sjIDw91sTg
         A3D4qVZH3qArkTL1bvXfn6pU1wEiWeCe6W83uB0GSjktfCb0h54b41Le4SfQ4n4o4/tD
         eqXx57C7ngjVSXZz6N9QcQBqmNAyVwOqG+qTwA1h/NZY3X7D561v8+t1YQ1o8Z+inHlB
         yDCCklsBZsvu4VQt22eCLJlq4O/+mlunBGAteXBKPOocI5szM/TWE6m6L4oFRhDKhRfI
         UMkEsUTFbwGwPOpLUv/73jDa1KyG3NvPTFnxpie8hcoihQJP2he1JroKElv03enCxj5z
         B3DQ==
X-Forwarded-Encrypted: i=1; AJvYcCU4SHR5yTs5Ej06+6sRUI3HhfgmuReNRuWpajJXzeuKxhHy7Ncz33lOLkI3ciLmVZlLLqzz7Er2V2U=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxAWiXfqA/V3KzRsgljxx5LYPXFUONV87hGViEzH8jPmVvJpr9u
	3xKuaj0F/U9sR5wqSUoKy0XrCUnLuinGr1roe5l3sP9i9sSOpdrwYUdGIP0g5pi1RlDBQJ8L07g
	=
X-Gm-Gg: ASbGncv/2WyN6Q2eyKosBdI4fzeCYeh/e39EeJsbjyGPGxIW2qRZ0zvN1S454hvFsy7
	KXW7jve1Tr7mq20t4hqaHDitexnAN6KQ3ooehup8SKRwgnJbDgJsEqAZd6oAdns0+DmZIslk2K+
	yAeULrJGxNLPTo3ayeDKXAxScz33BvNp987KaqaE3sc2V/9KKdkKy1k24CP9R8ohr6+vr6OcNU4
	vgtGaZKLWLHsPWpdMzhF7MsqdO+1TgETz+Ps7nJZBWK745bhlv6IvTA5sVapxcP9wV02VY/t2dl
	aX5o0FtJX5Pym99hIL8xyNALbC9/LIgd046g/9VhczUZ7xxZqPjSQZw0gYYcaBY9ec+v0CqbOQp
	MvTlwu16ObvYy4E0ZNXqb0fJIAHBRrCbm6/b9
X-Google-Smtp-Source: AGHT+IH9Kb5V1AFX60GEsvBGyDYExpdMKMWLdr9UzrsPu0ehLFXSZJTT0K+HxMfCSPoWA8SX0r8UFQ==
X-Received: by 2002:a05:6000:4387:b0:39c:1257:c96f with SMTP id ffacd0b85a97d-39d8f4ffa3bmr1861799f8f.59.1744285782160;
        Thu, 10 Apr 2025 04:49:42 -0700 (PDT)
Message-ID: <6ce79cc0-1fec-4ad9-834e-680ef1f81549@suse.com>
Date: Thu, 10 Apr 2025 13:49:40 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 12/16] x86/hyperlaunch: add domain id parsing to domain
 config
To: Alejandro Vallejo <agarciav@amd.com>
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Jason Andryuk <jason.andryuk@amd.com>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Michal Orzel <michal.orzel@amd.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Julien Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 xen-devel@lists.xenproject.org
References: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-13-agarciav@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: <20250408160802.49870-13-agarciav@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.04.2025 18:07, Alejandro Vallejo wrote:
> From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
> 
> 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.

Nit: Odd splitting of lines.

> --- a/xen/arch/x86/domain-builder/fdt.c
> +++ b/xen/arch/x86/domain-builder/fdt.c
> @@ -8,6 +8,7 @@
>  #include <xen/libfdt/libfdt.h>
>  
>  #include <asm/bootinfo.h>
> +#include <asm/guest.h>

What is this needed for?

> @@ -158,12 +159,42 @@ int __init fdt_read_multiboot_module(const void *fdt, int node,
>  static int __init process_domain_node(
>      struct boot_info *bi, const 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) ?: "unknown";
>      int address_cells = fdt_address_cells(fdt, dom_node);
>      int size_cells = fdt_size_cells(fdt, dom_node);
>  
> +    fdt_for_each_property_offset(property, fdt, dom_node)
> +    {
> +        const struct fdt_property *prop;
> +        const char *prop_name;
> +        int name_len;
> +
> +        prop = fdt_get_property_by_offset(fdt, property, NULL);
> +        if ( !prop )
> +            continue; /* silently skip */
> +
> +        prop_name = fdt_get_string(fdt, fdt32_to_cpu(prop->nameoff), &name_len);
> +
> +        if ( strncmp(prop_name, "domid", name_len) == 0 )
> +        {
> +            uint32_t val = DOMID_INVALID;
> +            if ( fdt_prop_as_u32(prop, &val) != 0 )

Nit: Blank line please between declaration(s) and statement(s).

> +            {
> +                printk("  failed processing domain id for domain %s\n", name);
> +                return -EINVAL;
> +            }
> +            if ( val >= DOMID_FIRST_RESERVED )
> +            {
> +                printk("  invalid domain id for domain %s\n", name);
> +                return -EINVAL;
> +            }
> +            bd->domid = (domid_t)val;

And a conflict with other domains' IDs will not be complained about?

> +            printk("  domid: %d\n", bd->domid);

If the error messages log "name" for (I suppose) disambiguation, why would
the success message here not also do so?

> @@ -233,6 +264,12 @@ static int __init process_domain_node(
>          return -ENODATA;
>      }
>  
> +    if ( bd->domid == DOMID_INVALID )
> +        bd->domid = get_initial_domain_id();
> +    else if ( bd->domid != get_initial_domain_id() )
> +        printk(XENLOG_WARNING
> +               "WARN: Booting without initial domid not supported.\n");

I'm not a native speaker, but (or perhaps because of that) "without" feels
wrong here.

Also nit: No full stops please at the end of log messages, at least in the
common case.

Is the resolving of DOMID_INVALID invalid really needed both here and ...

> --- a/xen/arch/x86/setup.c
> +++ b/xen/arch/x86/setup.c
> @@ -1033,8 +1033,9 @@ static struct domain *__init create_dom0(struct boot_info *bi)
>      if ( iommu_enabled )
>          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 )
> +        /* Create initial domain.  Not d0 for pvshim. */
> +        bd->domid = get_initial_domain_id();

... here?

> @@ -23,6 +24,16 @@ static inline uint64_t  __init fdt_cell_as_u64(const fdt32_t *cell)
>      return ((uint64_t)fdt32_to_cpu(cell[0]) << 32) | fdt32_to_cpu(cell[1]);
>  }
>  
> +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;
> +
> +    *val = fdt_cell_as_u32((fdt32_t *)prop->data);
> +    return 0;
> +}

Path 08 looks to (partly) open-code this. Perhaps better to introduce already
there?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Apr 10 11:55:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 11:55:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.945415.1343610 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2qV4-0002MZ-Um; Thu, 10 Apr 2025 11:55:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 945415.1343610; Thu, 10 Apr 2025 11:55:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2qV4-0002MS-S9; Thu, 10 Apr 2025 11:55:18 +0000
Received: by outflank-mailman (input) for mailman id 945415;
 Thu, 10 Apr 2025 11:55: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=w6Mj=W4=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u2qV3-0002MM-PT
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 11:55:17 +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 aa53e8a3-1602-11f0-9ffb-bf95429c2676;
 Thu, 10 Apr 2025 13:55:15 +0200 (CEST)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-4394a823036so7362735e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 10 Apr 2025 04:55:15 -0700 (PDT)
Received: from [10.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-43f207aed49sm51558675e9.34.2025.04.10.04.55.14
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 10 Apr 2025 04:55: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: aa53e8a3-1602-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744286115; x=1744890915; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=u4Pw5/VoxHtO9ZqeibaOkih2SMILFHrenMLyg9OHUW0=;
        b=FdQ8ul8jH8rrWzu+0jMx8S0JUI4InJIeSBcwtUrYmzzy3ZH2C1czj4KCERtiLoSN/W
         oIIJrASIrZetizJ8sAdhBgChqGrAEHeJwSdrKe6GTRUflX56oBx5NgPRtWJcjzCA4gIt
         pgeRyQdGJ5lzPcsVQa0mBwiopLUQv69SZRbyqnneFW97YFWPXLHBXXLO2DxHS9UGkYPQ
         SFAt4/6SCQbIcLzWHe8O0lWfWWK5UAB/rOoVGkcafmrFUcuTlX11YMsjwlW/JqMzR7kf
         p+U0EhreqRExLUg5jwr582mUxmzP0rLsO5n+WgweD2JZvuNwKLc7BRWX1sn7uPbw8I19
         1AgQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744286115; x=1744890915;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=u4Pw5/VoxHtO9ZqeibaOkih2SMILFHrenMLyg9OHUW0=;
        b=TctScs/K0dTCek0TFCSVCdnGHrDDVEpVd0PTCaGB8DijDEYhq1M0kIB/UvLsO7V7uj
         ZKlXxNkasp3dDvDQ4xn+gf8VeMO8dBa7xizmAJG/Tlk1LxqAui8J4I7KP8YTCMbd+oUy
         GP7gf7ssF/qVDckIZ4w+/rSObtda1htC9s6uj5Z6ywjFL/+AJbCWk079XLH9Qb3qaPog
         yut1/AMXMeOoPtFe8/BfoXM1c8NnxOktCbsYlynThA8Zm6T9H9X4QuUzZb7w2C8NwdEL
         BpBNyNkFFWWzqlB/nYltORYNsaz0PNWIt/uiamWhL8h7MLLS5UXzLKw1JhzdRJbsZViY
         cBbQ==
X-Gm-Message-State: AOJu0Yx6fzXyuH8qiPzJNuHkjmo6/Bp864F+1/hGJqvxROPRr1HAOmdz
	fONFFLtU8uZcmUB25i56p/Bh3tpQIDEdUdTHRc+noqWGTyu7rLfyz+yIjQ+5qQ==
X-Gm-Gg: ASbGncvCJ+NPwsOt9o1d97hNLGZkqz60JKjhQb/fq0Do87n9JNkZrtuLC4Gr9ERumUn
	ZNnV6ZV/k5ThXacNtomkQpS9PdC8i7ZSM9bB9plhZCP62MzNGPw6UZAa8vTi1ZuQ6+MWwB4WX0H
	e2s+ZAeM/znNsMpzaXCFKdQQevliFZBjdHbnJ2irInm8yoF/5iYvW5wYe0wlX6an3x27SBuMaI2
	f4Hiajsv02vHPbKcEH0qFtfv7wXNFhtghzRtJgxLyxDcDs1hPAL6gyGox6c0uByPOyTxZuzEK1i
	NXN5aiMpOEtbeOYzxUjM30T/3UOPkbMJPkHB9fwFI3Yerucu1MeT5bWdp3YkTq2mzbrsp5PEWPR
	S+Ou5rLDzxu60pHIA/Q7kupf3Hrh64Sm/f5SB
X-Google-Smtp-Source: AGHT+IE000VPhwJGMDfMHCp0eMImWnP5DYjSmOvSjGhgbalmhbC4NAwYrCLaDZlGsOQdGd0ECgzhQw==
X-Received: by 2002:a05:600c:5487:b0:43d:fa:1f9a with SMTP id 5b1f17b1804b1-43f2d9619e2mr25524495e9.30.1744286114771;
        Thu, 10 Apr 2025 04:55:14 -0700 (PDT)
Message-ID: <484a3c20-caa7-4187-8a8b-97d23b8bb6a5@suse.com>
Date: Thu, 10 Apr 2025 13:55:13 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 13/16] x86/hyperlaunch: specify dom0 mode with device
 tree
To: Denis Mukhin <dmkhn@proton.me>, Alejandro Vallejo <agarciav@amd.com>
Cc: xen-devel@lists.xenproject.org,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Jason Andryuk <jason.andryuk@amd.com>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Michal Orzel <michal.orzel@amd.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-14-agarciav@amd.com>
 <zz01k2KPjivL5-avbZJmfIKFKTodzbdL80XbXNBdrZP_7Kk9oips4Ox0aG-MYZUe74V8Rm5gHDbLjdUNlZLzmYD0MboIVY5XeUq_DmYXz6s=@proton.me>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <zz01k2KPjivL5-avbZJmfIKFKTodzbdL80XbXNBdrZP_7Kk9oips4Ox0aG-MYZUe74V8Rm5gHDbLjdUNlZLzmYD0MboIVY5XeUq_DmYXz6s=@proton.me>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 10.04.2025 00:24, Denis Mukhin wrote:
> On Tuesday, April 8th, 2025 at 9:07 AM, Alejandro Vallejo <agarciav@amd.com> wrote:
>> --- a/xen/arch/x86/domain-builder/fdt.c
>> +++ b/xen/arch/x86/domain-builder/fdt.c
>> @@ -193,6 +193,25 @@ static int __init process_domain_node(
>> bd->domid = (domid_t)val;
>>
>> printk(" domid: %d\n", bd->domid);
>>
>> }
>> + else if ( strncmp(prop_name, "mode", name_len) == 0 )
>> + {
>> + if ( fdt_prop_as_u32(prop, &bd->mode) != 0 )
>>
>> + {
>> + printk(" failed processing mode for domain %s\n", 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");
>> + }
>> }
> 
> I would re-write so the positive condition is processed first, e.g.:
> 
>     if ( bd->mode & BUILD_MODE_PARAVIRT )
>         printk("PV\n");
>     else if ( bd->mode & BUILD_MODE_ENABLE_DM )
>         printk("HVM\n");
>     else
>         printk("PVH\n");
> 
> I think it will reduce indentation and make code block a bit easier to read.

I agree, except it's not so much the "positive condition" but "can be written
as if/else-if sequence".

Jan


From xen-devel-bounces@lists.xenproject.org Thu Apr 10 11:57:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 11:57:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.945429.1343620 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2qWn-0002wZ-Bc; Thu, 10 Apr 2025 11:57:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 945429.1343620; Thu, 10 Apr 2025 11:57: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 1u2qWn-0002wS-8g; Thu, 10 Apr 2025 11:57:05 +0000
Received: by outflank-mailman (input) for mailman id 945429;
 Thu, 10 Apr 2025 11:57: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=w6Mj=W4=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u2qWm-0002wM-G8
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 11:57:04 +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 ea3ac072-1602-11f0-9ffb-bf95429c2676;
 Thu, 10 Apr 2025 13:57:02 +0200 (CEST)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-39c1ef4acf2so397636f8f.0
 for <xen-devel@lists.xenproject.org>; Thu, 10 Apr 2025 04:57:02 -0700 (PDT)
Received: from [10.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-39d893f113csm4604847f8f.69.2025.04.10.04.57.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 10 Apr 2025 04:57:01 -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: ea3ac072-1602-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744286222; x=1744891022; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=do1Wi7oLFRJaRZvoXJnSSLBlYYEdKpoUKjqvoGJNm3o=;
        b=bR3G508Kr1GBqmLVL1tPV5G8R3xVXZl4c7dytitC7SyQ3yhbHf0JVw5Q3cokRyAZ+C
         8lNKjIo4WTbWgBGJIBHgLZQmZyr03PXihtc3jaIBGb5G0/zHX7KDj9fZVKGgN22do1co
         INUy8OcvG4MWct/WXJ2/v3ggLaiOl8m5DwLWpSLfgykHGxhO3EWY/YP3CZL+ZCtZwIPF
         lb/3zDb+PU7a0Z1AF0DCOgjT/DvQhW/6kpJxKioUQHcvT/6eJtdFFOoJZnjcPbKwnWDB
         6V3iiUi1KA1Vx5EVgA0ETW8m2jK1jj3Gu77y5ugQWSxAhp4AKaedGstiJWl/DfFzjgJ/
         SK9g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744286222; x=1744891022;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=do1Wi7oLFRJaRZvoXJnSSLBlYYEdKpoUKjqvoGJNm3o=;
        b=O0wCpC5CvitCGH2FpTybapW+Q3cC7B91xSgpAM3oCRLJQUyOEpiQs8fnGqO6Y/nPPK
         8q8FQwoEtOhx6j27b1XLt8TgQCbViOIKV7d0hGfCjcFWOj+iQZS0waTo5cGv134xbVFz
         NO/j934coCIUwmL0C47B+VHaDxdW7jA8fwEgXsa2IPeipFq24unj7eYpZJBhJ3T2IDP0
         6V1Z5YsQT36VXHieUm6Rs5HJOvOgc6JswZ3Chrf4Y1YV8GiDUbQQaTcNLuLojQp3XFDl
         hw1Jv2w8CgJOiequFkt0XouOGtOPKVDaN+5V2GzjPZkCz5hgDFKK2IOwjekfVSgNpD4A
         54Uw==
X-Forwarded-Encrypted: i=1; AJvYcCWM8drOolXCKk9Skq5mjQIylspELR7YD3b8jcAncB9io/0hWnTTuLLs5xeI91YhfhlAB26XXT7J14s=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw/NVtD5HqHvCOcmtAx0Z/eWXoKOVs3zgKzL5k0OlCb8IBwAGuC
	rD/GOd/2RoE5/v7hHkFbNdmWSvk8Q8hI/HP2rv3eJtLD3At+Y3QXowP05HbqYg==
X-Gm-Gg: ASbGncuOdBknb9d1/j6lTr33s05nl8IA75inzXSIYDA4JEud9l/rI+I3czRcxQvalk0
	swSWYFM5F5IOiMTWmtxSdeh0SIc1hsUQRDnl0/JVcfePOsN1ehGZmM36uhfUh45zGioIMOqAd2G
	PlJ7Nt5r7c00vHn9DqdOEi25yDH6gzuwM0uMyIoExal7qivjTWnDkHJuBIhZwWSKFdbIBBy+N/b
	EXpTEDmEtArLRM54p509LuRC/pUBx6P3FY7mQ7HRXv/SB4lyRXLiaWkih+0ipeWxsEa5mr56WSF
	WCu2YmGyAUzbNKRifW6WzLcgiAOFVwA1dAZi9Va5KpvVVnBpdTzByseXoOHC5FDFMsJ1aiggitQ
	CfNEwJB6qUGpYYIfgFAiNGPtcOQ==
X-Google-Smtp-Source: AGHT+IEOjeR3Q5x4HFu/xD3K/NUTcrwv1T9mHd2Grxj9ZpEZOKSnVYpuXfFrVH9NBs+kFZ/3PyTs9A==
X-Received: by 2002:a5d:5f4f:0:b0:390:eebc:6f32 with SMTP id ffacd0b85a97d-39d8fda7660mr2006063f8f.48.1744286222057;
        Thu, 10 Apr 2025 04:57:02 -0700 (PDT)
Message-ID: <7a13e61b-8568-4852-bb46-974964e02d61@suse.com>
Date: Thu, 10 Apr 2025 13:57:00 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 13/16] x86/hyperlaunch: specify dom0 mode with device
 tree
To: Alejandro Vallejo <agarciav@amd.com>
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Jason Andryuk <jason.andryuk@amd.com>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Michal Orzel <michal.orzel@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: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-14-agarciav@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: <20250408160802.49870-14-agarciav@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.04.2025 18:07, Alejandro Vallejo wrote:
> --- a/xen/arch/x86/domain-builder/fdt.c
> +++ b/xen/arch/x86/domain-builder/fdt.c
> @@ -193,6 +193,25 @@ static int __init process_domain_node(
>              bd->domid = (domid_t)val;
>              printk("  domid: %d\n", bd->domid);
>          }
> +        else if ( strncmp(prop_name, "mode", name_len) == 0 )
> +        {
> +            if ( fdt_prop_as_u32(prop, &bd->mode) != 0 )
> +            {
> +                printk("  failed processing mode for domain %s\n", 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");
> +        }

My prior questions here remain: What's the significance of
BUILD_MODE_ENABLE_DM when set alongside BUILD_MODE_PARAVIRT? What about
any of the other bits being set?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Apr 10 12:03:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 12:03:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.945444.1343630 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2qcX-0005jm-2Q; Thu, 10 Apr 2025 12:03:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 945444.1343630; Thu, 10 Apr 2025 12:03: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 1u2qcW-0005jf-Ua; Thu, 10 Apr 2025 12:03:00 +0000
Received: by outflank-mailman (input) for mailman id 945444;
 Thu, 10 Apr 2025 12:02: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=ged3=W4=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u2qcV-0005jQ-Ff
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 12:02:59 +0000
Received: from NAM10-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam10on20627.outbound.protection.outlook.com
 [2a01:111:f403:2413::627])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id bd5ed402-1603-11f0-9eac-5ba50f476ded;
 Thu, 10 Apr 2025 14:02:57 +0200 (CEST)
Received: from DS7PR03CA0338.namprd03.prod.outlook.com (2603:10b6:8:55::31) by
 CH2PR12MB4069.namprd12.prod.outlook.com (2603:10b6:610:ac::18) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.8606.35; Thu, 10 Apr 2025 12:02:51 +0000
Received: from CH3PEPF00000014.namprd21.prod.outlook.com
 (2603:10b6:8:55:cafe::85) by DS7PR03CA0338.outlook.office365.com
 (2603:10b6:8:55::31) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.25 via Frontend Transport; Thu,
 10 Apr 2025 12:02:51 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CH3PEPF00000014.mail.protection.outlook.com (10.167.244.119) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.0 via Frontend Transport; Thu, 10 Apr 2025 12:02:51 +0000
Received: from localhost (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; Thu, 10 Apr
 2025 07:02:49 -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: bd5ed402-1603-11f0-9eac-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=kosnbQTFLXM6u7onP7CdcAl3epyV2qt6uAiKmnHmMf/Y58qljWuESlTknR6lm9o5HEQXhcRrhpzic9XODYb/7RF+A3Wr5aOMnB0AaJdUEBsDFNpvEQ5kliT7aoz+LVW9SMbk5TLb8hQlqjH729w0IJIBA6XqTFp/59QxUKW+L6UXXV0BIkHnuquVJygSeI/e3ux2Ce8WtgZ/Aa2WwwGaQ7LwyezdC5E27PRpvMQ11kSJMTiTnt3iStlPFXqix6oPbRZpvx3orACqY439AjWQMMpe4g2QlbKh3pAXvQ1cgUGts96KIpNZxMMDJjJ7opEbRYh5/AghDmRyXc1MUlZL7A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=zZ2nJtowApfrh7mjutfINTXmd8npFWaFh2bbOnPVgs4=;
 b=UE4fGvcXLIU6rabqLyOl4W8/uSCuPqt6eCUyHTBLJxpas0r7+a2r92EPkTMJa3k01dxATikjumHxqSCFRMZq47mQDLPc73cJb++IxAU03XrsM3iJYh/imAPyFXBESFBvwxTixBqKMQ+jI3AsK3I3qbJPDJTtKz0f7tnnie089TwXJoGiFEXBp74eLo6grW2C5v/lhoznv95vf2kdcfjWsG6YNI33ILDdGrwGCNpr3YGyb2fTMRQ7KX0e26hxMGxKuRjyuhK0j/ga7NkMWJnKnV+ZUhFDvKSipGXjZlQWAU4ai0alDY4TzCMSaetNtqKFYcc/0Igp/pX04nZWShCLIQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=proton.me 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=zZ2nJtowApfrh7mjutfINTXmd8npFWaFh2bbOnPVgs4=;
 b=AcZcvCikDqmUr19AebLLb53vehTAj/Otjq2pJBNxKjaSy67wNxw9eWCr6qiLSiuybmrVXHRzou8QRlwxYCSjNzyco22jZOjUW1XNb/GQIht4yiv12wu3xBaZkhkN2Tvs4I8ltRL6prc+okh47z6tZLvIWHhwJk/sCa0N284zfVk=
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
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Thu, 10 Apr 2025 13:02:48 +0100
Message-ID: <D92XZF3R2BA9.9GKEOF93H2E2@amd.com>
CC: <xen-devel@lists.xenproject.org>, "Daniel P. Smith"
	<dpsmith@apertussolutions.com>, Jason Andryuk <jason.andryuk@amd.com>, "Xenia
 Ragiadakou" <xenia.ragiadakou@amd.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Michal Orzel <michal.orzel@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>
Subject: Re: [PATCH v3 03/16] x86/boot: add cmdline to struct boot_domain
From: Alejandro Vallejo <agarciav@amd.com>
To: Denis Mukhin <dmkhn@proton.me>
X-Mailer: aerc 0.20.1
References: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-4-agarciav@amd.com>
 <ay75cmCDuxMtW2NROw3rcPNNhWU-QXAuk25j_isEbVoH7WmECfIC1xWw9hX-yvWKDXqamxx32tum4_3CRN46CGrgQKk1_loSZsExg4Ata1s=@proton.me>
In-Reply-To: <ay75cmCDuxMtW2NROw3rcPNNhWU-QXAuk25j_isEbVoH7WmECfIC1xWw9hX-yvWKDXqamxx32tum4_3CRN46CGrgQKk1_loSZsExg4Ata1s=@proton.me>
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: CH3PEPF00000014:EE_|CH2PR12MB4069:EE_
X-MS-Office365-Filtering-Correlation-Id: ff24bf39-be9b-4e51-464b-08dd78279e7c
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?akRLaTJoS1BDTzUwcmJyQlZmZ09MbXdJaTZ6eFM4UnpyYlhDRzVNV2R6aHNl?=
 =?utf-8?B?Tkl5bXJnRU5CVkR0Wk1EMlNVSE10YTFTMlh3QmVMWC9zVzBwU0tWUk5sejJk?=
 =?utf-8?B?QTJvTjlaSkowUW1LZVBLMHIzdWwzSFNWQ0VFQWpXY3MvOHVVWXR5Qm0wYTdZ?=
 =?utf-8?B?TElFMlh2SFQva3ZXVE1VWlQxMGZ2Q0w5MHU1M2pWZDJSdWY2b2Ntc1RNVkxM?=
 =?utf-8?B?cEVYMkdJeTdudHR4L2JXaTIrOEFRQ2tuWExjcDhHaTlwSy9GcHlXRFhJWHV6?=
 =?utf-8?B?WU1DTnRIK01kcUdMaE5xWHFTMnRNczB2bFJaQnJhOVJ3L0JObUYrWEZEUGJ3?=
 =?utf-8?B?QmRoTm1BK0gyV1RUeTVGU0VqL05mUkFMVmtPU3FDWFB6eEk4N3pMb2tLNnRI?=
 =?utf-8?B?ZFlYdlNQK0k4SGpDT3g3Qzd3S29Ub0h4QjhTKzkzRURZWGQ2QkZuQTYvSUhR?=
 =?utf-8?B?V2Y3bW9VRkVJcXpTS3VBRktCVkJ1MUZJczE2M2JLemJIajdEeFpnUENqb2s3?=
 =?utf-8?B?QjhyR3VkMUM0bzhMcDg0UzYwdTlJc0NPZHlPMVJ0UlVna3M0NFhTRkR5NDNY?=
 =?utf-8?B?WEJXcEUycVRoTXFqSy9LeHhia0QxMW9vS2VsdHVMakZWc3dEYVU4Vk5Kajh3?=
 =?utf-8?B?QytQOE1GVmNITElQQTJUZDVIV3JmMUo4bXBqdmtmd09lVWd0TGtHUHpzNVZE?=
 =?utf-8?B?MTRZSkVLaHh3dlk2YXk3Q3l5V0JCOGZzaFVCNDhoL1VvNE1PcTZMRHQ1ZW5h?=
 =?utf-8?B?aEhiMWg1d3daOWZYbXdTY0RIM1U3V2QwTzY1R2luTkkrSHBJbW1lRHdmOUVv?=
 =?utf-8?B?RWUrV1V1VHM3WE03SGZTUkszbDY0eUVWOEVIdnoyNjdqck5GZ2VVMWhoRk5x?=
 =?utf-8?B?SVdlTUJmd2JScVAxUUhtcFpCSjRkbUNPWlFxY2NKUE1Mb1NNeU9sc3VPQjVC?=
 =?utf-8?B?V0hISHBObjZGdGErWTdtNk91N2t2WS90OEh2d2YvdklaY2x5dEkrRGp6OVpY?=
 =?utf-8?B?VXdrcjYrbWJtSGE4RTA0Y0lubnJkUXJjL1Fack1ScmRvYVkvbk12d290NU44?=
 =?utf-8?B?UFFpQ2FUUWdycWZqblp0enUrTjI2OFpUNGhxQ0U5aElTZ2FQRVVIdE1SMkl2?=
 =?utf-8?B?RDJwRjZoMHlMZ3FabE11RUEzNW50d2pLMkJBR0EzVFdYNnpYNFBBNjJVcW9V?=
 =?utf-8?B?TzJGTUtlV2lsY3RrY2R5ZU5QeUw3L2dPeEtBT2xweGxUUjNuY01GdVJUNHNm?=
 =?utf-8?B?MW5oUlY2QXFkWkFDUW51djloSitEUkpObDRVdTJTUk10WGVCZWFMMHpIeDRi?=
 =?utf-8?B?VmdRYmVpNTBHQ1BiQjhnaFgxL2dTbzBTejVrOThLL0lWTlZvbVFEWS9hU3Jw?=
 =?utf-8?B?dXh2T1JqV29NOXZBYkJMbit3cXNRV1J3Q08wMWdSMmYxT2Rjdm5hMXcyUkQw?=
 =?utf-8?B?TjI4UWRQbm9xMzJQTXRaN0VseGJNdjZCZ05uN2NnQWlXRTNXY2R0OHlMUHhi?=
 =?utf-8?B?TXQzSXBSS2FiZzEzSUxsLzZ4T0d5SXJVTjZseVUxYWE1ZUwwdWdXMEFSVDVt?=
 =?utf-8?B?TC8vZkhHdnZ5SWMzQ1ppbGlVYVpHai9mNTFydDBGaUhONVFBZmZDRjY4U0Mr?=
 =?utf-8?B?VVhvUWtISm1CQUtVenVIN3EzL3pIMWpIeGF3QjI4b2hqc3hPUHE1OW93ajJG?=
 =?utf-8?B?MGUvcTVIblZUcnI2bytLL2d5SFMrYU1vTVZ4NWFScmJKSnUrdUJHZFFLWGVH?=
 =?utf-8?B?WmlnaGM1VGNGeWVESVpHdXJ6WXZkQmpuK01ob0VyTjBPMGVPSE9aTHQ3SVlM?=
 =?utf-8?B?L2dTMEpEL0plaG5EaFBxSzd6ZFRpV1JkL3UrL3NqSTFLTjFLTWZLYjE2SGN3?=
 =?utf-8?B?cmVaVlNxemZTNERqa1M5M1d6S2ZrVGdaRjhFN1g0Y3g5dU13bkFBeFJheE95?=
 =?utf-8?B?NUEvTjJQUU1kaXBjOE9zZHVYZ3NFczRNaTdFcnFOWGRvaXdLb1ZMSW9ERCtK?=
 =?utf-8?B?clE2N3drVEZRPT0=?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:;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: 10 Apr 2025 12:02:51.3855
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: ff24bf39-be9b-4e51-464b-08dd78279e7c
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:
	CH3PEPF00000014.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR12MB4069

On Wed Apr 9, 2025 at 10:05 PM BST, Denis Mukhin wrote:
> On Tuesday, April 8th, 2025 at 9:07 AM, Alejandro Vallejo <agarciav@amd.c=
om> wrote:
>
>>=20
>>=20
>> From: "Daniel P. Smith" dpsmith@apertussolutions.com
>>=20
>>=20
>> 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.
>>=20
>> Signed-off-by: Daniel P. Smith dpsmith@apertussolutions.com
>>=20
>> Signed-off-by: Jason Andryuk jason.andryuk@amd.com
>>=20
>> Signed-off-by: Alejandro Vallejo agarciav@amd.com
>>=20
>> ---
>> No changes on ACPI cmdline handling on PVH, as it's orthogonal to the
>> purpose of this patch.
>>=20
>> v3:
>> * s/xfree/XFREE/ on failed construct_dom0() to avoid a dangling
>> cmdline ptr.
>> * Re-flow hvm_copy_to_guest_phys() into a multi-line call.
>> * s/bd->cmdline !=3D NULL/b->cmdline/ (to homogenise with the previous
>>=20
>> cmdline pointer check)
>> ---
>> xen/arch/x86/hvm/dom0_build.c | 12 +++----
>> xen/arch/x86/include/asm/boot-domain.h | 1 +
>> xen/arch/x86/pv/dom0_build.c | 4 +--
>> xen/arch/x86/setup.c | 50 +++++++++++++++++++-------
>> 4 files changed, 47 insertions(+), 20 deletions(-)
>>=20
>> diff --git a/xen/arch/x86/hvm/dom0_build.c b/xen/arch/x86/hvm/dom0_build=
.c
>> index 2a094b3145..ebad5a49b8 100644
>> --- a/xen/arch/x86/hvm/dom0_build.c
>> +++ b/xen/arch/x86/hvm/dom0_build.c
>> @@ -653,7 +653,6 @@ static int __init pvh_load_kernel(
>> void *image_start =3D image_base + image->headroom;
>>=20
>> unsigned long image_len =3D image->size;
>>=20
>> unsigned long initrd_len =3D initrd ? initrd->size : 0;
>>=20
>> - const char *cmdline =3D image->cmdline_pa ? __va(image->cmdline_pa) : =
NULL;
>>=20
>> const char *initrd_cmdline =3D NULL;
>> struct elf_binary elf;
>> struct elf_dom_parms parms;
>> @@ -736,8 +735,8 @@ static int __init pvh_load_kernel(
>> initrd =3D NULL;
>> }
>>=20
>> - if ( cmdline )
>> - extra_space +=3D elf_round_up(&elf, strlen(cmdline) + 1);
>> + if ( bd->cmdline )
>>=20
>> + extra_space +=3D elf_round_up(&elf, strlen(bd->cmdline) + 1);
>
> I think it makes sense to use local variable to cache the results of=20
>
>   strlen(bd->cmdline) + 1
>
> since the construct is used multiple times within pvh_load_kernel()
>
> E.g. cmdline_len similarly to {image,initrd}_len.
>

Seeing how you're the second person to propose the same thing, I'll bite
and just do it. I really dislike the wall of locals in
pvh_load_kernel(), but oh well...

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Thu Apr 10 12:04:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 12:04:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.945454.1343639 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2qdS-0006If-9s; Thu, 10 Apr 2025 12:03:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 945454.1343639; Thu, 10 Apr 2025 12: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 1u2qdS-0006IY-7E; Thu, 10 Apr 2025 12:03:58 +0000
Received: by outflank-mailman (input) for mailman id 945454;
 Thu, 10 Apr 2025 12: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=w6Mj=W4=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u2qdR-00068R-3S
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 12:03:57 +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 e054f9d2-1603-11f0-9ffb-bf95429c2676;
 Thu, 10 Apr 2025 14:03:55 +0200 (CEST)
Received: by mail-wr1-x42f.google.com with SMTP id
 ffacd0b85a97d-39c30d9085aso428343f8f.1
 for <xen-devel@lists.xenproject.org>; Thu, 10 Apr 2025 05:03:55 -0700 (PDT)
Received: from [10.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-43f235a5d57sm50040345e9.34.2025.04.10.05.03.54
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 10 Apr 2025 05:03: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: e054f9d2-1603-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744286635; x=1744891435; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=llwXOCkC5Wx+w1aDSkV2rgp7nGEu8bLgm3oRjuFqav8=;
        b=QxSpPBeAZquNJFOnvAIgL1zfpuhw+dtsJ021frpxoIpWCCDQ1ZmvIR9fmEXl4k3S+n
         SkaVA+THT5UlCm0mtUAzyg8qHB7nUS0hxLqZdV4zVTsqyXPje4zGJBwha0UJQG7y+yWp
         d0TI4lYVCRQZ0u1E4tQqUcQyEt8CPgzsxwwz2LI5vYeuwgfQ0zE6RkGkTAhrU4OpDQ3b
         V5bkoLoNVGmeob79KREfKbBEVRDIf76LaMJYJaH5Ksxm0n62ojwNjhvVSmo0OgUuaT5s
         9Dg9uxkOLqMIpd+2rsFn4fiGLtFnzPGbRolqECSKN+bN+8c2rZIh3CyQNcTsLdCHB3v9
         OcHA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744286635; x=1744891435;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=llwXOCkC5Wx+w1aDSkV2rgp7nGEu8bLgm3oRjuFqav8=;
        b=vLG6IqcRTFeD9269KCiK+3zcMy+S688ULxgBQMm41q5aqxgU4Xw1aZbQ6HizqrbZmi
         9VRItB5mCAG3m2OnPiJe9AanWGkwgD1K8weEBWANbvRRKMg1bTqMXmP4kO9M31rBlM3w
         gEYkd6eex3Wm1N2FaBi+ILIUBhHMmVUwxtf4uQc/hWtWfFIBQDnS2lgq3DvJ1yKSsV+p
         PTzEgjH0WPynV7viA3uLBPsxUC/7T5TDJgzHadKe1lR1sAxldVLCVQBVkD3oQSBh/zNV
         CRDMJJd5s7ldxpVpkOi2Z8bowT+djpIj0qOe9ECC0UruOoCbsCawjBkf0ho2XqjSH/r+
         L+WA==
X-Forwarded-Encrypted: i=1; AJvYcCU0fYoo2MtleyeE6unPQsyD8lXO2U775ooxOogFcrtMFAaQkjSWFolSEeKaQb0Z1/n/hRHEkU0Gtbg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwXwmh/CiiDx6uscB5skRzPaCGzGiu37Qz2uYqK8BdOjcOqzLP/
	D24ii1Xm4YJ6LSUbVfO4WwII5EoYvs2gGCnAelG4l/LzxxlvxABzCg93t6thOg==
X-Gm-Gg: ASbGnctZ45g3SUpdQzFDmz5YMbd9ywjvm7NblU6lSIgwWEQep3JyYyBCltb2+S/Lu2F
	Z1kEPFH69ZrC6EMxdG9wTW1PcaaDlS5T70PtBo1g7loxS8LK16Atc19ztgM1QeXUVn8p0srWX/k
	9nrRPPIIDlydEUb0nhlP+Wbsa28EMGCQKkayTvB4wuQ9omLUvs+Zu1UdP+m9AqtZp+nUPmPDv46
	a0FLSu2hXbsEcEFkgkAbEe2EcE9mQjE7HrGxUePtpQdh8OSotzGk+dLy+/ZjzLQZYx/RK3/Ehz2
	eGWQOXuNU7ql/Bxc5Uss/MEOONEAvPF3vYaXJ5j2sPJ51BQrZO8lLCkQF0GWfWdEhGmvd03h0JS
	7lQsBQ3swZg77++EMuv+Oo/VIdQ==
X-Google-Smtp-Source: AGHT+IFNNe1JLDq5cEM8A5dBjpH/GJ/fsx4vNXxUDHlJUgReEOZN6T4tTfi9lp/HBUgdGdOnqj0njA==
X-Received: by 2002:a5d:59ab:0:b0:391:2f15:c1f4 with SMTP id ffacd0b85a97d-39d8f4f7e2emr2059317f8f.55.1744286634805;
        Thu, 10 Apr 2025 05:03:54 -0700 (PDT)
Message-ID: <e78824bc-3b0a-406e-80ac-5a67b127254f@suse.com>
Date: Thu, 10 Apr 2025 14:03:53 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 14/16] x86/hyperlaunch: add memory parsing to domain
 config
To: Alejandro Vallejo <agarciav@amd.com>
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Jason Andryuk <jason.andryuk@amd.com>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Michal Orzel <michal.orzel@amd.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Julien Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 xen-devel@lists.xenproject.org
References: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-15-agarciav@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: <20250408160802.49870-15-agarciav@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.04.2025 18:07, Alejandro Vallejo wrote:
> @@ -212,6 +213,39 @@ static int __init process_domain_node(
>              else
>                  printk("PV\n");
>          }
> +        else if ( strncmp(prop_name, "memory", name_len) == 0 )
> +        {
> +            uint64_t kb;
> +            if ( fdt_prop_as_u64(prop, &kb) != 0 )

Nit (you know what I have to say here, and again below.)

> +            {
> +                printk("  failed processing memory for domain %s\n", name);
> +                return -EINVAL;

Any reason to override fdt_prop_as_u64()'s return value here?

> +            }
> +            bd->mem_pages = PFN_DOWN(kb * SZ_1K);
> +            printk("  memory: %ld kb\n", kb);
> +        }
> +        else if ( strncmp(prop_name, "mem-min", name_len) == 0 )
> +        {
> +            uint64_t kb;
> +            if ( fdt_prop_as_u64(prop, &kb) != 0 )
> +            {
> +                printk("  failed processing memory for domain %s\n", name);
> +                return -EINVAL;
> +            }
> +            bd->min_pages = PFN_DOWN(kb * SZ_1K);
> +            printk("  min memory: %ld kb\n", kb);
> +        }
> +        else if ( strncmp(prop_name, "mem-max", name_len) == 0 )
> +        {
> +            uint64_t kb;
> +            if ( fdt_prop_as_u64(prop, &kb) != 0 )
> +            {
> +                printk("  failed processing memory for domain %s\n", name);

All three error messages being identical doesn't help diagnosing issues.

> --- a/xen/include/xen/libfdt/libfdt-xen.h
> +++ b/xen/include/xen/libfdt/libfdt-xen.h
> @@ -34,6 +34,16 @@ static inline int __init fdt_prop_as_u32(
>      return 0;
>  }
>  
> +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;
> +
> +    *val = fdt_cell_as_u64((fdt32_t *)prop->data);

Please avoid casting away const. Looks like I overlooked this in
fdt_prop_as_u32() that was introduced by an earlier patch.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Apr 10 12:05:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 12:05:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.945463.1343650 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2qeO-0006os-JB; Thu, 10 Apr 2025 12:04:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 945463.1343650; Thu, 10 Apr 2025 12: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 1u2qeO-0006ol-FO; Thu, 10 Apr 2025 12:04:56 +0000
Received: by outflank-mailman (input) for mailman id 945463;
 Thu, 10 Apr 2025 12:04: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=ged3=W4=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u2qeN-0006ob-8u
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 12:04:55 +0000
Received: from NAM10-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam10on20626.outbound.protection.outlook.com
 [2a01:111:f403:2413::626])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 02216ca5-1604-11f0-9eac-5ba50f476ded;
 Thu, 10 Apr 2025 14:04:53 +0200 (CEST)
Received: from CH0PR13CA0013.namprd13.prod.outlook.com (2603:10b6:610:b1::18)
 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.8632.22; Thu, 10 Apr
 2025 12:04:49 +0000
Received: from CH3PEPF00000015.namprd21.prod.outlook.com
 (2603:10b6:610:b1:cafe::70) by CH0PR13CA0013.outlook.office365.com
 (2603:10b6:610:b1::18) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.19 via Frontend Transport; Thu,
 10 Apr 2025 12:04:49 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CH3PEPF00000015.mail.protection.outlook.com (10.167.244.120) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.0 via Frontend Transport; Thu, 10 Apr 2025 12:04:49 +0000
Received: from localhost (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; Thu, 10 Apr
 2025 07:04:47 -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: 02216ca5-1604-11f0-9eac-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Fx58lBJAe7Wi5f7x3/r3RXAHJSRknF73rRGaVnhVWTx+gvT+na+QHPWWHO87eySye4u4VqdeRDBT7wu/6lBU0iItO25HBooRJ1Y9+5ThfwB9hhxuekgqKTu9q00SDcaaPmDwFFchR4SpsgIuVgGzNIt2Tz3MAm41Dk9fEfLvHVdsj+ZH6Y7usLmnHaj8fCNBM+1O+45+p2v0m9fsqan4RQaBn8p0lsDIs5TVvk01Nz5PQJBwO0oaIgSp5NQwsxCXxEeXJWAnxAdKSUb+cU3pKyRNUn5oahprQUZlWfLpMDdRj6uOpdV2lJO9+gENrGIo3sghUS/zbFlZN56i045hjQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ko1fDwGe7shXzAv+xWTpfeAIVL+V3a6TLVr8WOultI0=;
 b=aMddur72hqTLc/Y/hT3bmVFr9T2ZyBYf5FQyXoVEZ32WnUwdWCUgtOl6BSdm3Ns0lWWmbd9CaFWTsoHVX1dz97G7ICUxL6qSYLsNCQxbH/7F8nkYp+imOrS8wLJ2+7X4lSzzrC0CD+WGwYLVaSCWGwcgolihqWx8aMCIUI0fAoBhLkRpehzl/mRzNiphve+XPygvxA932IoTHAJYsnp+1YU0QflFxxYzwi8hpCjN3oRvnZ58Cvx7PPHluu5XwGQm49xXi20JeZ6FAQSOqccBZdUAgrcOsbRa/JQFhfB/6tGcmodSJjk9OFyIdKhfCQiBJaP8fYAuKWsSboCZzMykPA==
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=ko1fDwGe7shXzAv+xWTpfeAIVL+V3a6TLVr8WOultI0=;
 b=L8iVLTr953tdlPyBMrhBGHG5ZVn3ozqmYq9FUDdwUHRb0B016wPaxEnFrTYkc6rdROcv4SOl0DuVjKKLPHc8sFFtMX3dZyp0lvtObnZRbYE0W9tasl3xhctxFU65Vg8wvrouJhZULXNxbEkwbM0XAvsKvmDa6D8IqQx2f1cOLRk=
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
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Thu, 10 Apr 2025 13:04:46 +0100
Message-ID: <D92Y0XDL09HE.A66TJOU4L4HR@amd.com>
CC: "Daniel P. Smith" <dpsmith@apertussolutions.com>, Jason Andryuk
	<jason.andryuk@amd.com>, Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	"Stefano Stabellini" <sstabellini@kernel.org>, Michal Orzel
	<michal.orzel@amd.com>, Andrew Cooper <andrew.cooper3@citrix.com>, Anthony
 PERARD <anthony.perard@vates.tech>, Julien Grall <julien@xen.org>,
	=?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
	<xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v3 04/16] kconfig: introduce option to independently
 enable libfdt
From: Alejandro Vallejo <agarciav@amd.com>
To: Jan Beulich <jbeulich@suse.com>
X-Mailer: aerc 0.20.1
References: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-5-agarciav@amd.com>
 <230e7222-386a-46a9-8e8c-2fbdb595b645@suse.com>
In-Reply-To: <230e7222-386a-46a9-8e8c-2fbdb595b645@suse.com>
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: CH3PEPF00000015:EE_|BL3PR12MB6403:EE_
X-MS-Office365-Filtering-Correlation-Id: 52ee20b0-c165-464c-7da4-08dd7827e498
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|36860700013|82310400026|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?N0lseldLenpJWGFIVjB3K2oyeVJqWjNuSGliL1J2anE0UGdEZy9pVmRLQkdH?=
 =?utf-8?B?Uml4L3VaVE1Dc0wzTDNvSkhNTVNTbWY5SndySlg4L2ppT1BGNkt4QnF3NUF2?=
 =?utf-8?B?Ykl5NkczRFZYZHZBNTA3NGZNNXFCdDF1L2JKZWlhbS9ROUlON1R6b2Zwb0d0?=
 =?utf-8?B?TG81SElicWZFek8zQUE4WGFPRUJ3bmhyQUpaMEQ2VGozVitobVhscVJ6YUd6?=
 =?utf-8?B?V2ZXVllIZDcxZk9FeXZINDZPV3l2amUrSGJTb3VLazRNYmRTY2FFd3k5OHZZ?=
 =?utf-8?B?YlRzL1BhZVhFMDZpVmFLZGk1eEFwRDRYaS9hTzRkUkFIN2VET1Q2QTR6Q1JJ?=
 =?utf-8?B?dG5zb0U3UVZmMyttQWtKNzN5MWxhQUxoRHhqbGFRcFN6aFd5UHBMNms3TENx?=
 =?utf-8?B?b3RzQ2xvQTRxKzRUeVBIb0FVUnJsOVJpK0M2SWs1SkduWisyOFVoTXJFTWdi?=
 =?utf-8?B?bXZybzR2VWJTai9JRDZFSzByQnRYekU2TXdXaUxyOFZrM0I0ZU9VMmQ5Smxa?=
 =?utf-8?B?emJwWkIxS0NpaUUzbWE1YjFVNWN2VGVpS2Z0UDQrcyt5KytPS1A0SHFrVTZr?=
 =?utf-8?B?bUtaamFWUzZpc1pmemZnbkVXS1JZdURCeTJ0NUkzZDRoQUkzQWRzUEhlMTlj?=
 =?utf-8?B?b0R5Q3ZnY202dEl6aWMvRFkxZ0x0SEdDOGIvRFBHMko1Sjd3VlZvOVBPWkVY?=
 =?utf-8?B?QXljYm5rbkI0eFpZeVFJVUpYQzdKMW5OUFRvV25vTURKVHN6VmprYUt0eXVF?=
 =?utf-8?B?d2FWTGsyK1IxQkY3N2JqV3ovaFZ0aTdQdzBaQ3IzTUtJdS9KUndlL2JTa2xv?=
 =?utf-8?B?SjNLNmdDRFUzYWdvNmNOOXNhczRteVp1U0NzMFprV0NKTCttWVRFcTFrZ25o?=
 =?utf-8?B?aXRMcFpOektmczRlQk9zOGhnYmJiTmtlN0txbnNsSWVYN0dSMHZLbUVBbTA5?=
 =?utf-8?B?Ky8yWHlCNEJvakt5ZlVudHZhaDc5dnZkWnA1K1NjeXFPejZnMkd1TmVMdG94?=
 =?utf-8?B?dzc1SGdSdThpYVRtVzY4WGtpUFpPZ0JHSHFSa2RBL3ZyZE01M0Y0Q1Q1VlBh?=
 =?utf-8?B?NFNHM3Fuam9JL2ZJTEtqOC9XTWMwMzlMbEFYTTdKNzl2Vi9VWHJwTWNqMlND?=
 =?utf-8?B?WVJ2cTk0YTN0THhvTExac3NPUEhDRkZ2UDhWb1laYU5udUJMajNCVm1BbXU4?=
 =?utf-8?B?SkI4Vy95bm9SSjFIbm9qQ0t2Tm1nNnh4dDNTcUIwaUZISVMxTmkzWmFmSCtU?=
 =?utf-8?B?Y2doUU11U25EUnQyYUF5bklXWjN4cTk5ZGJDY053cUtYTHRYUE5BU1ZvSHdI?=
 =?utf-8?B?RG1ySS9RQkdBNXRtL0g2RUNvZ1A5dng0SExoSTBTaUdlY21zVDRiYjZPRzFW?=
 =?utf-8?B?cnp6RmVRV1QxazdWLzhGWHhJQVlMc3FicjhCRXhFY1RqV2lHVjlFOW9qYTYz?=
 =?utf-8?B?dzlQT1NxbFRTSm5Ob0xsTVVBY0lwcTAwT2grTnNHWm95ZFhKRDh0Q0E0L3hw?=
 =?utf-8?B?MXhTK24rZHJSU3BReTREM0VFZWw0MEZvdVFjdTRPNTdLYmMzM2RQcEFaT01D?=
 =?utf-8?B?R3dsbEl3Y1RiQnpHUWRvTVVIdThSYzZ3bkpzL1YrNnNkK0V3MDR4WFk2TGNs?=
 =?utf-8?B?L092MXJlTzdRUWloblJ3Yy9penhPMEF2QjB0UzdrVlFRcUwyUFgwakNmTmhv?=
 =?utf-8?B?Mkk5QWJMOGxkWFFDMUwwNWZQa0RXQzJqbmhXSUw0VlUrRnR5S0UwVnR4dW1r?=
 =?utf-8?B?QlZSc0JWL3crRWo2Qm4wZUVNTlRLWUZWOVRBTng2eWxVRWtGREFvaHlWQjJH?=
 =?utf-8?B?L09pUTNNaFRWWC9GUU9uYm1IVW9BaXhHOGtWTmk2akZuR2ltaXZVOVNqMmRt?=
 =?utf-8?B?ZXE5azR5blVqVXoxK2phQlhSQUIxVGJXeENzQWlYWVdFQmwvaHVFTlQ1bHc1?=
 =?utf-8?Q?mWcdmKELOmEderKftE3lgE+DrCxivi7Y?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(376014)(36860700013)(82310400026)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Apr 2025 12:04:49.0078
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 52ee20b0-c165-464c-7da4-08dd7827e498
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:
	CH3PEPF00000015.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL3PR12MB6403

On Thu Apr 10, 2025 at 10:04 AM BST, Jan Beulich wrote:
> On 08.04.2025 18:07, Alejandro Vallejo wrote:
>> From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
>>=20
>> Currently, the inclusion of libfdt is controlled by the CONFIG_HAS_DEVIC=
E_TREE
>> kconfig flag. This flag also changes behavior in a few places, such as b=
oot
>> module processing for XSM. To support the ability to include libfdt with=
out
>> changing these behaviors, introduce CONFIG_LIBFDT. The inclusion of
>> libfdt is then moved under CONFIG_LIBFDT.
>>=20
>> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
>> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
>
> Acked-by: Jan Beulich <jbeulich@suse.com>

Thanks

>
> Looks independent of earlier patches, and hence may be possible to go in =
right
> away?
>
> Jan

Yes, it's independent of those.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Thu Apr 10 12:05:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 12:05:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.945473.1343660 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2qer-0007Ll-TU; Thu, 10 Apr 2025 12:05:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 945473.1343660; Thu, 10 Apr 2025 12:05: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 1u2qer-0007Lb-Qh; Thu, 10 Apr 2025 12:05:25 +0000
Received: by outflank-mailman (input) for mailman id 945473;
 Thu, 10 Apr 2025 12:05: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=C125=W4=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u2qer-00077g-0O
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 12:05:25 +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 14b43bd0-1604-11f0-9ffb-bf95429c2676;
 Thu, 10 Apr 2025 14:05:23 +0200 (CEST)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-43d2d952eb1so5951015e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 10 Apr 2025 05:05:23 -0700 (PDT)
Received: from localhost.localdomain (host-92-26-98-202.as13285.net.
 [92.26.98.202]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39d8938a6e7sm4522476f8f.44.2025.04.10.05.05.21
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 10 Apr 2025 05:05:22 -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: 14b43bd0-1604-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744286722; x=1744891522; 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=2ggeKlrc0LSDFd6EuqXpDyHFlaXpuPoevqPE8wNviIE=;
        b=eDRCQ5tQ9LAv11DuytD1ufqJPQy1QmOo+bCLA0lDHXaK+Cfd7feCVhHxWqAk1UXQGR
         6ZCvDicNVFXThX9KSMJjt8JORSY8HX4m7CgHMPaNHFZeBfBflbg5Pf2IzNAmNIHuDLHt
         7ZqkQ3NAyX0ab8JXctks1PiT828Yfj/Hypj5Y=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744286722; x=1744891522;
        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=2ggeKlrc0LSDFd6EuqXpDyHFlaXpuPoevqPE8wNviIE=;
        b=Ty4Gklh2cpmMNHZn9M54GEMHQIRnjcKU9IeXy24wpkeQbqr9LKoQQRRuaxNuqckVFq
         w2FZox6tvVTW+rnOEpBhQmD+N46dPHGhfxuz90hzu1+uxQb1AAC+xZo4nMEuWVNn7UlY
         yTxbthtnI10R0U9wAqJ3wnPAS8ksY2VRLSoS6B5w8svaOMqq8iSE0izp3tif+hk8nekz
         9xluV+RGd1yEss1XFObHDml9GT6cNkhaV4GNPccQc4qeKVdJXRhxUa1qKArdpPmAO5l7
         W311qw/XvBuI/DZEN1h9lcRgZRzfFvU5koJ3zfbEZ22thkyVUMQtX8nzHnd2DOxlwhDZ
         0hFQ==
X-Gm-Message-State: AOJu0YwhQX5T3cvFv7G1cegoydffuINX+wb1JxAZmFPKpcOswo9Ej4gG
	jwD1i8xt0OzNIVrugEmGaYfRhl9bsoCjsV73aTN6baqEVZeiIJf/f4rs5ogAgOHf45h74GYs3SE
	qtbg=
X-Gm-Gg: ASbGncsy3XCR7JtOAlxqh7CZ5j1TH0dvOLvp2rSAJ6iu0P8GM0OFIAzqKWIpwkkogMi
	1hPQQZqO/EZq5Q0CeeYO9HAmjiqxFXm3ciR4g6sADtPbdiQquoltEUYBtzTygl/o7TxiXJFTSeo
	644GBa02ZDIVf/+fU177Zc+nuCJ74Iwtjq3gRmFRRB2IT9fQURyHstoDTkHk+LD4HjzTfCD5+3i
	mX2vsMStijqoMzfThPGfEMuotEwC0M6sLTm2PI49ol2OuNSIHQODUNrrZhhIKPSjARMH60sADHL
	r/Y2FbKVjG4Bk6FG4Fdf86RdLDGU7eQELtQ1KC4WhIISR9zqE1wL+CgdnzHma7v1sk7Xf0KS7x6
	WJRgVLOidZ+IzuA==
X-Google-Smtp-Source: AGHT+IFEKh+i8+0gcX5Stv66c/x1etme26vDsQrdxGjEB2LV3OUkfS88YtfFsu147gh+HI7ciZ0j2w==
X-Received: by 2002:a05:6000:40df:b0:39c:1258:2dc7 with SMTP id ffacd0b85a97d-39d8f4facc0mr1884369f8f.56.1744286722421;
        Thu, 10 Apr 2025 05:05:22 -0700 (PDT)
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?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH 0/3] CI: Cleanup/Upgrade of Linux used for testing
Date: Thu, 10 Apr 2025 13:05:17 +0100
Message-Id: <20250410120520.2062328-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

Switch fully on to test-artefacts for Linux.

Patch 3 is a repost.  Patch 1 supercedes a prior posting.

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

Andrew Cooper (3):
  CI: Update x86 tests from Linux 6.1.19 to 6.6.56
  CI: Update ARM64 tests from Linux 6.6.74 to 6.6.86
  CI: Drop stale test-artifacts/alpine/3.18.dockerfile

 automation/gitlab-ci/build.yaml               | 24 -------
 automation/gitlab-ci/test.yaml                |  8 ++-
 .../tests-artifacts/alpine/3.18.dockerfile    | 67 -------------------
 .../tests-artifacts/kernel/6.1.19.dockerfile  | 41 ------------
 .../kernel/6.6.74-arm64v8.dockerfile          | 38 -----------
 5 files changed, 6 insertions(+), 172 deletions(-)
 delete mode 100644 automation/tests-artifacts/alpine/3.18.dockerfile
 delete mode 100644 automation/tests-artifacts/kernel/6.1.19.dockerfile
 delete mode 100644 automation/tests-artifacts/kernel/6.6.74-arm64v8.dockerfile

-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Apr 10 12:05:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 12:05:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.945474.1343670 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2qet-0007aE-73; Thu, 10 Apr 2025 12:05:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 945474.1343670; Thu, 10 Apr 2025 12: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 1u2qet-0007a3-1Q; Thu, 10 Apr 2025 12:05:27 +0000
Received: by outflank-mailman (input) for mailman id 945474;
 Thu, 10 Apr 2025 12:05: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=C125=W4=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u2qer-0006ob-Lm
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 12:05:25 +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 15de51f5-1604-11f0-9eac-5ba50f476ded;
 Thu, 10 Apr 2025 14:05:25 +0200 (CEST)
Received: by mail-wr1-x435.google.com with SMTP id
 ffacd0b85a97d-3913b539aabso381141f8f.2
 for <xen-devel@lists.xenproject.org>; Thu, 10 Apr 2025 05:05:25 -0700 (PDT)
Received: from localhost.localdomain (host-92-26-98-202.as13285.net.
 [92.26.98.202]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39d8938a6e7sm4522476f8f.44.2025.04.10.05.05.23
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 10 Apr 2025 05:05: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: 15de51f5-1604-11f0-9eac-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744286724; x=1744891524; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=8ZykuuQVq0JKbj+J4r/e2Lj4KUTdErpj+5YMzbXkZZY=;
        b=XcaAqemmZslg4S55GkQepvmryH/1sC2d4QqShDF6bjBTUEVbdA/qNBs/7KChNAAxHs
         ccMRxGoY/mtWAdINbFPtTCsnedj+f0zwsQO425IJHCUBCMdE+xmub/C4a5/LkCh66iXT
         pEX9B7Z/mjS6oVRaEefEIxzECkA63olB7IMqY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744286724; x=1744891524;
        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=8ZykuuQVq0JKbj+J4r/e2Lj4KUTdErpj+5YMzbXkZZY=;
        b=IEb6hAfETPkgCGC1JET7Cu6pIlZ1cPi5KUghQQpeOWzck7eFL84nsV7cNlEPpjZjgU
         xyA7twGnslmT11XCY96Ws3hROq2zfqCp0xfuZcfyfG650VVb/jvsCgMBxB3cTkHwiw/U
         6GhAUeEx48aAGEsr5JSr6T/7jpmGTUxfoPf4zXhxhhsCtkP7uztaEUXn0sgI8dOho8tQ
         XVOOc6xa+rKOP6M7k1ViLluafwrgs8PhFvW+3odZvacv3imVAvwqwJ/QmnWl2bPyn6ep
         1txW0ZHYwOFZssV4FJv+scx0CF1N+2rEzrVB2YWyYKwjQaj/kJAf8wlXs+0ZMdsAiTpi
         LD4A==
X-Gm-Message-State: AOJu0YwINNe/aP3FLQS1yJIkhcBFlspkjzXsRMx6ms4N1EMBB+RkweZo
	iHDAjTt7zOnz/TQkONY+BUUberqKCzxMBC2NcsRY3KmbFyUlehF7NOi8TJJACZ8+RVV0TPN+3st
	QpEU=
X-Gm-Gg: ASbGnculkguqeJ1SirGJbmryaQSI0Ti0LxYslDElQ0lfQOb4myC1DeSKlyUzWauoGuM
	3Di1mBSUXtFbJ/2dfESbCot2pPPs5y4u1vg5yNAbEhSciLiSN1BBD9xMV6JJY3kggaaPAl4lqX8
	C7PqQjCBP5ElIk4kqA+R01vyTsIdyG7Nodp/YvvnCMQCtZuIykpI7E0HldUxdYwenYkGgmYKgZL
	Rm6mz3uk05gt6BG4IYnWX6qoLFOLlcNnypzlWD7p9bW7j9H221F8a1S8IUAjdlS+VDWlcRBfiHp
	PPUV+xfs1BQw5IJ5qGOfMWsrUnh/XH2gEQPwi+6blgok19GFcvE48rk2SfOHcHI6YwT38fhxgLZ
	jlpVCy78HO1fmSQZdOwJs2BGz
X-Google-Smtp-Source: AGHT+IEEZOgOKLYwDQXgd1rzipEUXzLnU9Y+xZnxO069vImyGY4M7/2LfwLYcPab9097AhftsE7Atg==
X-Received: by 2002:a05:6000:4404:b0:39c:13fd:ea9c with SMTP id ffacd0b85a97d-39d8f4e4741mr1433988f8f.47.1744286724293;
        Thu, 10 Apr 2025 05:05:24 -0700 (PDT)
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?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH 2/3] CI: Update ARM64 tests from Linux 6.6.74 to 6.6.86
Date: Thu, 10 Apr 2025 13:05:19 +0100
Message-Id: <20250410120520.2062328-3-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250410120520.2062328-1-andrew.cooper3@citrix.com>
References: <20250410120520.2062328-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Switch over to test-artifacts.

Drop the associated export job, and dockerfile.

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: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
---
 automation/gitlab-ci/build.yaml               | 11 ------
 automation/gitlab-ci/test.yaml                |  4 +-
 .../kernel/6.6.74-arm64v8.dockerfile          | 38 -------------------
 3 files changed, 3 insertions(+), 50 deletions(-)
 delete mode 100644 automation/tests-artifacts/kernel/6.6.74-arm64v8.dockerfile

diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
index ab758243c1ec..40dcd31f1bce 100644
--- a/automation/gitlab-ci/build.yaml
+++ b/automation/gitlab-ci/build.yaml
@@ -275,17 +275,6 @@ alpine-3.18-arm64-rootfs-export:
   tags:
     - arm64
 
-kernel-6.6.74-arm64-export:
-  extends: .test-jobs-artifact-common
-  image: registry.gitlab.com/xen-project/xen/tests-artifacts/kernel:6.6.74-arm64v8
-  script:
-    - mkdir binaries && cp /Image binaries/Image
-  artifacts:
-    paths:
-      - binaries/Image
-  tags:
-    - arm64
-
 qemu-system-aarch64-6.0.0-arm64-export:
   extends: .test-jobs-artifact-common
   image: registry.gitlab.com/xen-project/xen/tests-artifacts/qemu-system-aarch64:6.0.0-arm64v8
diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
index a23ff8a6e7fe..59a2de28c864 100644
--- a/automation/gitlab-ci/test.yaml
+++ b/automation/gitlab-ci/test.yaml
@@ -8,8 +8,10 @@
   - when: on_success
 
 .arm64-test-needs: &arm64-test-needs
+  - project: xen-project/hardware/test-artifacts
+    job: linux-6.6.86-arm64
+    ref: master
   - alpine-3.18-arm64-rootfs-export
-  - kernel-6.6.74-arm64-export
   - qemu-system-aarch64-6.0.0-arm64-export
 
 .arm32-test-needs: &arm32-test-needs
diff --git a/automation/tests-artifacts/kernel/6.6.74-arm64v8.dockerfile b/automation/tests-artifacts/kernel/6.6.74-arm64v8.dockerfile
deleted file mode 100644
index 73e51454257d..000000000000
--- a/automation/tests-artifacts/kernel/6.6.74-arm64v8.dockerfile
+++ /dev/null
@@ -1,38 +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 LINUX_VERSION=6.6.74
-ENV USER root
-
-RUN mkdir /build
-WORKDIR /build
-
-# build depends
-RUN apt-get update && \
-    apt-get --quiet --yes install \
-        build-essential \
-        bc \
-        curl \
-        flex \
-        bison \
-        libssl-dev \
-        && \
-    \
-    # Build the kernel
-    curl -fsSLO https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-"$LINUX_VERSION".tar.xz && \
-    tar xvJf linux-"$LINUX_VERSION".tar.xz && \
-    cd linux-"$LINUX_VERSION" && \
-    make defconfig && \
-    sed -i 's/CONFIG_IPV6=m/CONFIG_IPV6=y/g' .config && \
-    sed -i 's/CONFIG_BRIDGE=m/CONFIG_BRIDGE=y/g' .config && \
-    sed -i 's/# CONFIG_XEN_NETDEV_BACKEND is not set/CONFIG_XEN_NETDEV_BACKEND=y/g' .config && \
-    make -j$(nproc) Image.gz && \
-    cp arch/arm64/boot/Image / && \
-    cd /build && \
-    rm -rf linux-"$LINUX_VERSION"* && \
-    apt-get autoremove -y && \
-    apt-get clean && \
-    rm -rf /var/lib/apt/lists* /tmp/* /var/tmp/*
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Apr 10 12:05:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 12:05:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.945476.1343680 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2qeu-0007pI-BA; Thu, 10 Apr 2025 12:05:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 945476.1343680; Thu, 10 Apr 2025 12:05:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2qeu-0007p5-89; Thu, 10 Apr 2025 12:05:28 +0000
Received: by outflank-mailman (input) for mailman id 945476;
 Thu, 10 Apr 2025 12:05:27 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=C125=W4=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u2qet-00077g-0l
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 12:05:27 +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 154046e0-1604-11f0-9ffb-bf95429c2676;
 Thu, 10 Apr 2025 14:05:24 +0200 (CEST)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-39bf44be22fso382810f8f.0
 for <xen-devel@lists.xenproject.org>; Thu, 10 Apr 2025 05:05:24 -0700 (PDT)
Received: from localhost.localdomain (host-92-26-98-202.as13285.net.
 [92.26.98.202]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39d8938a6e7sm4522476f8f.44.2025.04.10.05.05.22
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 10 Apr 2025 05:05:22 -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: 154046e0-1604-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744286723; x=1744891523; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=k7HMeZMfC77zMjKsgUg9IL6GNtcv2A8a8DBfH0m7hfA=;
        b=jOlA7voEkqkdtGBwdxqL5CJuqvcWfX3Zv3og6OtsZXzmrWSWSflCc9U92cFNDmBUL4
         WsA3JC8/HqFkYtK9hFJOhx3YfvuqhtTUzvhufEANJjsxK85TF6gX++2jVGFxMuzW7kfB
         24Na8iR9hXj/m0vCDW1+a8WJKzuF4k4lfiUaM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744286723; x=1744891523;
        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=k7HMeZMfC77zMjKsgUg9IL6GNtcv2A8a8DBfH0m7hfA=;
        b=oyvp7DnZXricQLFIUMgKfezWcVDS2dE+S6S3V4PrpZeyx4aXa0NFSa5NoMq8N2WlmZ
         7b4nAPpELQGb5FxgOr8UmvgWxUZB7Y/t6Qsvr8ZPJ7AHgrl8aMwICLmRUxuJOrHpZjOM
         TUcLY9DAgLE2OlguNbuSyGy8T+GqICPNiAgnNSk0JxdaYK3hKclrLHDIy0C3AmSMhCh4
         3HiXPRa5T6PDLaTbVHKFgTBzZeJ89PXv0Qte/lWk0Reha//Mr5S5BFXTK1amS7ormxxA
         LMOrDO5HWjU3BNlAHap4kFxUKRg2C1b1Uh1muTiRpcG/1oAciEyT5By3LrrgAJmRfmp/
         x6VQ==
X-Gm-Message-State: AOJu0YwTN2BM1ZVrOP20h4ijFCfmwJ9ZfdUoEeul37RF6CG8sGwvFbvN
	c6xetzay/IfeIBxIpRc8aaQ+BuP6JRyffBRGjmW2rSLo5lTqQuwCHBNsTdXbgfJJ8QgbYumVu+x
	Y4l8=
X-Gm-Gg: ASbGncvn/VijuFxmjghBNrOIWElQS/8BlVQQAEYNiY7krDZnwzH0hGuzlQMxYfFX8Fl
	ypua/m+/h+1nP513CmaUAXqOP3AhJ7g/0FlPHMgYtQuIQITs+UEjsJwGd//sI7R9d5z0oylCejP
	CxZ5te5gYmRScEf9Gl7t0m6YLyHFJS2TAe2v2VZY1jbXZbk5jPWIRAvSXZWOXWjpEoPtjivMSRp
	4yAFJfZZWzN148fCPpMdr47ZQ3RlCYJphtgBfWG6eSToAR/IilR4udD2+Ecv/8jPw08tykUGcan
	eciy7ELZOx9H/OwzBJBhq/FROYU4Hcf2hais4YLh1GbUXcVGJmp+IUMMa+iknQsI4uDGbxD4upm
	Kl7NNpbpQSAKpKQ==
X-Google-Smtp-Source: AGHT+IHR1iEU54VMwG/6t2igVyxalbq5cM3lRoDTZXQ4vbh6WcN0QmvdBmQP3PSKkylwLG2hVRVImA==
X-Received: by 2002:a05:6000:1a8c:b0:391:4743:6dc2 with SMTP id ffacd0b85a97d-39d8f47307bmr2085287f8f.25.1744286723383;
        Thu, 10 Apr 2025 05:05:23 -0700 (PDT)
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?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH 1/3] CI: Update x86 tests from Linux 6.1.19 to 6.6.56
Date: Thu, 10 Apr 2025 13:05:18 +0100
Message-Id: <20250410120520.2062328-2-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250410120520.2062328-1-andrew.cooper3@citrix.com>
References: <20250410120520.2062328-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Linux 6.6.56 was already added to test-artifacts for the argo testing, and
this removes one moving part while cleaning things up.

Drop the associated export job, and dockerfile.

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: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>

Also, somewhere between 6.6.56 and 6.6.74, PVH stops working
---
 automation/gitlab-ci/build.yaml               | 13 ------
 automation/gitlab-ci/test.yaml                |  4 +-
 .../tests-artifacts/kernel/6.1.19.dockerfile  | 41 -------------------
 3 files changed, 3 insertions(+), 55 deletions(-)
 delete mode 100644 automation/tests-artifacts/kernel/6.1.19.dockerfile

diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
index 169bebe3c775..ab758243c1ec 100644
--- a/automation/gitlab-ci/build.yaml
+++ b/automation/gitlab-ci/build.yaml
@@ -308,19 +308,6 @@ qemu-system-aarch64-6.0.0-arm32-export:
   tags:
     - arm64
 
-# x86_64 test artifacts
-
-kernel-6.1.19-export:
-  extends: .test-jobs-artifact-common
-  image: registry.gitlab.com/xen-project/xen/tests-artifacts/kernel:6.1.19
-  script:
-    - mkdir binaries && cp /bzImage binaries/bzImage
-  artifacts:
-    paths:
-      - binaries/bzImage
-  tags:
-    - x86_64
-
 # Jobs below this line
 
 # Build jobs needed for tests
diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
index d05b9a98afa6..a23ff8a6e7fe 100644
--- a/automation/gitlab-ci/test.yaml
+++ b/automation/gitlab-ci/test.yaml
@@ -16,7 +16,9 @@
   - qemu-system-aarch64-6.0.0-arm32-export
 
 .x86-64-test-needs: &x86-64-test-needs
-  - kernel-6.1.19-export
+  - project: xen-project/hardware/test-artifacts
+    job: linux-6.6.56-x86_64
+    ref: master
   - project: xen-project/hardware/test-artifacts
     job: x86_64-rootfs-alpine-3.18
     ref: master
diff --git a/automation/tests-artifacts/kernel/6.1.19.dockerfile b/automation/tests-artifacts/kernel/6.1.19.dockerfile
deleted file mode 100644
index 073eaa0e11fa..000000000000
--- a/automation/tests-artifacts/kernel/6.1.19.dockerfile
+++ /dev/null
@@ -1,41 +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 LINUX_VERSION=6.1.19
-ENV USER root
-
-RUN mkdir /build
-WORKDIR /build
-
-# build depends
-RUN apt-get update && \
-    apt-get --quiet --yes install \
-        build-essential \
-        bc \
-        curl \
-        flex \
-        bison \
-        libelf-dev \
-        && \
-    apt-get autoremove -y && \
-    apt-get clean && \
-    rm -rf /var/lib/apt/lists* /tmp/* /var/tmp/*
-
-# Build the kernel
-RUN curl -fsSLO https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-"$LINUX_VERSION".tar.xz && \
-    tar xvJf linux-"$LINUX_VERSION".tar.xz && \
-    cd linux-"$LINUX_VERSION" && \
-    make defconfig && \
-    make xen.config && \
-    scripts/config --enable BRIDGE && \
-    scripts/config --enable IGC && \
-    scripts/config --enable TUN && \
-    cp .config .config.orig && \
-    cat .config.orig | grep XEN | grep =m |sed 's/=m/=y/g' >> .config && \
-    make -j$(nproc) bzImage && \
-    cp arch/x86/boot/bzImage / && \
-    cd /build && \
-    rm -rf linux-"$LINUX_VERSION"*
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Apr 10 12:05:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 12:05:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.945477.1343685 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2qeu-0007sR-Kz; Thu, 10 Apr 2025 12:05:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 945477.1343685; Thu, 10 Apr 2025 12:05:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2qeu-0007s3-Fo; Thu, 10 Apr 2025 12:05:28 +0000
Received: by outflank-mailman (input) for mailman id 945477;
 Thu, 10 Apr 2025 12: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=C125=W4=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u2qeu-00077g-12
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 12:05:28 +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 165ac65e-1604-11f0-9ffb-bf95429c2676;
 Thu, 10 Apr 2025 14:05:26 +0200 (CEST)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-43d0359b1fcso4854655e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 10 Apr 2025 05:05:26 -0700 (PDT)
Received: from localhost.localdomain (host-92-26-98-202.as13285.net.
 [92.26.98.202]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39d8938a6e7sm4522476f8f.44.2025.04.10.05.05.24
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 10 Apr 2025 05:05: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: 165ac65e-1604-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744286725; x=1744891525; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=NScjdwRMuh0cAfczaxLlOkH95BY72u6QVj9j9EZf9sU=;
        b=clz+DUMoSHF1nnkiren4cwb2fb8YsJO415Exdp/+oJuVaoK5pmNXkj8Zjor/BmI2Rp
         Hhh416wEWPJu6ZGFs6QhB3Sklc+HZt0CgpELnhe9SLOHwmGdy4OPpwuBZoA0vQCUlNoi
         reE4r6COLsx0xy5MC12rdBuvA7GHX7Z3Xts0k=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744286725; x=1744891525;
        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=NScjdwRMuh0cAfczaxLlOkH95BY72u6QVj9j9EZf9sU=;
        b=K/f6FPog7cBcVKt0M0wt0QChFlEH8A1Jnxzmgs8w8DOGoQjoxFyjUv9ARikzvVSvtE
         /9ik8HxjfqZeX04ESwMxPr1bvq+9xSAq8OMro5Hd0kch82z6DXXRIGia+2UjTjciHNOs
         oCMY+lCyGWBX6wC4RJ5if65Ox9kLcP9YPkvzk4vzoexl351CxUDyhoQlOv2t2+WnLaIs
         b0ZX7f5bQbb3zac4H2yCiuOGMOvVHkk0S2pqqNawo5JLr1LI+QxE2noUBvJGkqZHaAAa
         bOlpaRBUruZ8ehnGNZ1Iry19aBywFY1tyXCIxkeYBBsIVVl9ELEEMwjAsn1JNQXjnKt2
         6/mg==
X-Gm-Message-State: AOJu0YyPaxJTtJIKt524FD7kl0uqs02kw6P1Pg7mYWnkL7GxwUOtA00c
	RcG8QpALwzg5JT2Dxy+tELHWFbWs9+jBDyzutEh5eqKA0rPOCfHI6h9UtHh0aZdIrJ5IBClYd5q
	qZyk=
X-Gm-Gg: ASbGncv36t9m0nfTzUq6S6UvankJUiiA7Bi3W1eZ5oQnvn9gKokJIdnZxcVK8llMc9P
	N/VNGbEaWcf4sh6699LjPk9p2jPb0eaK/G7RnA3wPi789GXjVtqEg7xexf+4hik4Y3hGHI9VK2M
	Jz91sTqZRJnNP9G0CaoC2VSom2PYjg6l2HzqTUgzytk9JnUOipdNrM/a+vc3oHPO3JUZTxbAnZG
	oucEltmSQFGlNq1ChP/ZbVQNoGAKCVUanCgRaM0nlScFoWp38vvAGBZR9blcdVG/ZL5J2jlivUj
	SkcapUopkuKWRLxe2X4YgcQDdROcUJKq8tajeM94PuaPlfKuekoZ3G4RRt0mcZcyUIHEB9qbWv3
	57hL7lqp1+NXkKw==
X-Google-Smtp-Source: AGHT+IFYX4vhOkD0mziwJp624KZKszO+/lmYjn+avXi8lQ9zjs4xY+7qcs39wjPyqwbkvKk+bBroZA==
X-Received: by 2002:a05:600c:b90:b0:439:8e95:796a with SMTP id 5b1f17b1804b1-43f2f0bc8c3mr24596305e9.13.1744286725250;
        Thu, 10 Apr 2025 05:05:25 -0700 (PDT)
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?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH 3/3] CI: Drop stale test-artifacts/alpine/3.18.dockerfile
Date: Thu, 10 Apr 2025 13:05:20 +0100
Message-Id: <20250410120520.2062328-4-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250410120520.2062328-1-andrew.cooper3@citrix.com>
References: <20250410120520.2062328-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This should have been dropped too, as the authoritative copy lives in another
repo now.

Fixes: babe11b46c1a ("CI: Drop alpine-3.18-rootfs-export and use test-artefacts")
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: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>

Repost
---
 .../tests-artifacts/alpine/3.18.dockerfile    | 67 -------------------
 1 file changed, 67 deletions(-)
 delete mode 100644 automation/tests-artifacts/alpine/3.18.dockerfile

diff --git a/automation/tests-artifacts/alpine/3.18.dockerfile b/automation/tests-artifacts/alpine/3.18.dockerfile
deleted file mode 100644
index 311a92889b87..000000000000
--- a/automation/tests-artifacts/alpine/3.18.dockerfile
+++ /dev/null
@@ -1,67 +0,0 @@
-# syntax=docker/dockerfile:1
-FROM --platform=linux/amd64 alpine:3.18
-LABEL maintainer.name="The Xen Project" \
-      maintainer.email="xen-devel@lists.xenproject.org"
-
-ENV USER root
-
-RUN mkdir /build
-WORKDIR /build
-
-RUN \
-  # apk
-  apk update && \
-  \
-  # xen runtime deps
-  apk add musl && \
-  apk add libgcc && \
-  apk add openrc && \
-  apk add busybox && \
-  apk add sudo && \
-  apk add dbus && \
-  apk add bash && \
-  apk add python3 && \
-  apk add zlib && \
-  apk add ncurses && \
-  apk add yajl && \
-  apk add libaio && \
-  apk add xz && \
-  apk add util-linux && \
-  apk add argp-standalone && \
-  apk add libfdt && \
-  apk add glib && \
-  apk add pixman && \
-  apk add curl && \
-  apk add udev && \
-  apk add pciutils && \
-  apk add libelf && \
-  \
-  # Xen
-  cd / && \
-  # Minimal ramdisk environment in case of cpio output
-  rc-update add udev && \
-  rc-update add udev-trigger && \
-  rc-update add udev-settle && \
-  rc-update add loopback sysinit && \
-  rc-update add bootmisc boot && \
-  rc-update add devfs sysinit && \
-  rc-update add dmesg sysinit && \
-  rc-update add hostname boot && \
-  rc-update add hwclock boot && \
-  rc-update add hwdrivers sysinit && \
-  rc-update add modules boot && \
-  rc-update add killprocs shutdown && \
-  rc-update add mount-ro shutdown && \
-  rc-update add savecache shutdown && \
-  rc-update add local default && \
-  cp -a /sbin/init /init && \
-  echo "ttyS0" >> /etc/securetty && \
-  echo "hvc0" >> /etc/securetty && \
-  echo "ttyS0::respawn:/sbin/getty -L ttyS0 115200 vt100" >> /etc/inittab && \
-  echo "hvc0::respawn:/sbin/getty -L hvc0 115200 vt100" >> /etc/inittab && \
-  echo > /etc/modules && \
-  passwd -d "root" root && \
-  \
-  # Create rootfs
-  cd / && \
-  tar cvzf /initrd.tar.gz bin dev etc home init lib mnt opt root sbin usr var
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Apr 10 12:08:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 12:08:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.945508.1343699 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2qhw-0001ri-W0; Thu, 10 Apr 2025 12:08:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 945508.1343699; Thu, 10 Apr 2025 12:08:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2qhw-0001rb-TO; Thu, 10 Apr 2025 12:08:36 +0000
Received: by outflank-mailman (input) for mailman id 945508;
 Thu, 10 Apr 2025 12:08: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=w6Mj=W4=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u2qhv-0001rV-JB
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 12:08:35 +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 8605056d-1604-11f0-9ffb-bf95429c2676;
 Thu, 10 Apr 2025 14:08:33 +0200 (CEST)
Received: by mail-wr1-x42c.google.com with SMTP id
 ffacd0b85a97d-39c30d9085aso431675f8f.1
 for <xen-devel@lists.xenproject.org>; Thu, 10 Apr 2025 05:08:33 -0700 (PDT)
Received: from [10.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-39d89362d00sm4535420f8f.4.2025.04.10.05.08.32
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 10 Apr 2025 05:08:32 -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: 8605056d-1604-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744286913; x=1744891713; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=/NEbbRxn/M2PCOfnGIBVW9pPiofX2V2LO0dwI2k9Jh8=;
        b=WVuEaD69TU+Wjpe6DBtir1Z9RAk2W/mV/D3sa9X2pzBx0gsNJ9PLQIgZOxvW7FSFfZ
         BMB1+3MMITzWSa4ElqhzzkOxS8KpoqpyQwmUdqIk6DDY8vAbAsPeg26Ju1a/ls0udKnF
         HM+LyI0LRVeikbSoe4wqApp8/2w1OrphB/p8Qc0nPlw/dxABRBid2coT1KUXa3q9Prsb
         9Yr6wc1rSP9eCf/DoKs/3/eQr31GJVPFjocMT5ShupqrVZ/LgD/BSLhE5QRTZuIOI0/R
         XtEIwfSZKa/UQUeJrZtsvIIo7HbfkESxAx0sQrauc8BPae6i4bsFodSSOrV5AbZ2sIt4
         nZag==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744286913; x=1744891713;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=/NEbbRxn/M2PCOfnGIBVW9pPiofX2V2LO0dwI2k9Jh8=;
        b=l8mMrzKMVuri3Enu1cri44ywv9b1KGdj9jx5AmumxoJgbK5NGPg4sqq0SNlAW0koIP
         amnQXGwOCmv3k+EU+HalFCHI1fvnfnso4j+KQNiNwMXNdhcxb5KQ2siuTpTh9J5Eo3/W
         3sVFwCsv6g9TFp1gp8SGikL1ZI6pwlUyH6QuxPBVr+wCN6spIAVul1UX3CeUd2woHuQY
         OXPntrtnCdNkmJ7sFndpCXs1jMU+rrvQQUkvK7y6mCkrNycRVwsc3+mZ7dA7no9rxBZ+
         j30uJYjvQQ3ry6p6xzTRs9KGbd2Gyg20NoNFJ694Mo0q+kg2ClvmumlDZTXi+ps4cDyG
         ULEw==
X-Forwarded-Encrypted: i=1; AJvYcCVjtM/AOPW+RZ+C3GcBRJqhUDtw+oJ0NlMvbDBfjDm50/HvyzPiTzn7JsZHpMMb1uQvEqifSu0Bg7A=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzbxCQInL7/Y3j80rYxuk2u97cdBt8CakeZ0d9cqnCHOwwgC0Or
	satDdgOyi/R8T+um+9pN+iV5IlcsnFDbEzg0YQ5J9BY37aK/lIPDJm8v+/58DA==
X-Gm-Gg: ASbGnctuoTn7Qj8hxAZZbiosyDNjdQyhmCgBr+mpJvNLRFThZg3N8+5tbFrDgxnkkLO
	ZZJZo4s5ecD5Y9WczhwV0BnQNI45YUMfCVe+DNinIEWHzURMFT91Gq3FmXBHZMhyeI0fWT1S0/u
	K0hBfzHZ25Nff/VTLP5IGhIICPXV7XRAyBI3wsaraMPLK1Jcb8pmYxmipTITwS9piu+PHwKbL8R
	aB98mVRgiMZoCDhEjwMNsk8QaHFbfZrMeCMvEC187oVNRLTqu8Ip+uWBya3GAWeKJIexgw5/2EH
	DksfjjLmscKy8HxHJc1MxbDyJJJjPpxkmeGW29FPufkD2l8odFf6EhLNaSVDlge7m2h0WR6maI+
	fA1dysJ1/MZTmxxvSro1vU1Agug==
X-Google-Smtp-Source: AGHT+IFNZCgrYDFFexDJJlLHGQLjf+k3KtXBbQTqijQ9MdtTozukB90LDM2+gp0UJHI8jchZ7G5I7w==
X-Received: by 2002:a05:6000:4313:b0:390:e5c6:920 with SMTP id ffacd0b85a97d-39d8f2781f4mr2393724f8f.3.1744286912871;
        Thu, 10 Apr 2025 05:08:32 -0700 (PDT)
Message-ID: <c1e5af91-8f84-458d-a9b8-ab9758b5cbce@suse.com>
Date: Thu, 10 Apr 2025 14:08:31 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 15/16] x86/hyperlaunch: add max vcpu parsing of
 hyperlaunch device tree
To: Alejandro Vallejo <agarciav@amd.com>
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Jason Andryuk <jason.andryuk@amd.com>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Michal Orzel <michal.orzel@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: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-16-agarciav@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: <20250408160802.49870-16-agarciav@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.04.2025 18:07, Alejandro Vallejo wrote:
> From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
> 
> 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

Nit: vcpus

> --- a/xen/arch/x86/domain-builder/fdt.c
> +++ b/xen/arch/x86/domain-builder/fdt.c
> @@ -246,6 +246,17 @@ static int __init process_domain_node(
>              bd->max_pages = PFN_DOWN(kb * SZ_1K);
>              printk("  max memory: %ld kb\n", kb);
>          }
> +        else if ( strncmp(prop_name, "cpus", name_len) == 0 )
> +        {
> +            uint32_t val = UINT_MAX;
> +            if ( fdt_prop_as_u32(prop, &val) != 0 )

And again the same nit.

> +            {
> +                printk("  failed processing max_vcpus for domain %s\n", name);

There's no "max_vcpus" being processed here; that purely ...

> +                return -EINVAL;
> +            }
> +            bd->max_vcpus = val;

... the internal name we use for the struct field etc. The user observing the
message ought to be able to easily associate it back with the DT item.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Apr 10 12:09:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 12:09:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.945519.1343709 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2qip-0002Px-CT; Thu, 10 Apr 2025 12:09:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 945519.1343709; Thu, 10 Apr 2025 12:09: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 1u2qip-0002Pq-9t; Thu, 10 Apr 2025 12:09:31 +0000
Received: by outflank-mailman (input) for mailman id 945519;
 Thu, 10 Apr 2025 12:09: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=S0bf=W4=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1u2qin-0002PR-L4
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 12:09:29 +0000
Received: from fout-b2-smtp.messagingengine.com
 (fout-b2-smtp.messagingengine.com [202.12.124.145])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a3838602-1604-11f0-9ffb-bf95429c2676;
 Thu, 10 Apr 2025 14:09:23 +0200 (CEST)
Received: from phl-compute-11.internal (phl-compute-11.phl.internal
 [10.202.2.51])
 by mailfout.stl.internal (Postfix) with ESMTP id 14F5F11401D4;
 Thu, 10 Apr 2025 08:09:22 -0400 (EDT)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-11.internal (MEProxy); Thu, 10 Apr 2025 08:09:22 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 10 Apr 2025 08:09:20 -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: a3838602-1604-11f0-9ffb-bf95429c2676
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=fm2; t=1744286961;
	 x=1744373361; bh=PZEgb330gVH7BSPCy/LRDnWpvZBO+8QSuPUnDifhoOI=; b=
	hxetcrME6n8V5x5WPAT2PN2HRiHVgCgxgqrLHCSuPIlTfCxz4gY1DhbEjYXlpkFY
	h58eYgdYSAwOX2RymLU5cB2LsWErTf3Y1Z1prFXFU/rEZQQeRH8jM+mEbhD1ackx
	WaLWRX4LtPJ5IElrZPLYq0S/ipndhiI7BSRJSq3EdEudahoqbajjrn30NRO/IE9g
	juXEygtnfvSafbzai4TdMo1cPFbqdxew+fPAM83tDySdNpnouPOu+X08zvCJUDLB
	JrWAZOWBPId1ZxoaudAhl8eVCoQa7Lf/fOnM3+4xWwjy38jSnpcFhZiOu3uuJlrs
	gJG3bDXfobF7EupOuCjA/w==
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=fm2; t=
	1744286961; x=1744373361; bh=PZEgb330gVH7BSPCy/LRDnWpvZBO+8QSuPU
	nDifhoOI=; b=Vvdj5Ja2S0KfNcahYILg5QG537UBuBFKdhRW7iDmFQ151Sai9ue
	ABpGLpxXTZ1KCFQadXiMErtRHW41iDOw2POCDz3FnbrmTV3yb9ZhtmpPyC0WKgr9
	rBX90gQ75FkBnE58Pkjx/OTzhUbVWzVLnOil09UyhoYU6ZqTVaW5zU5IctwaHXwJ
	IaJ7yWTq2cDbbcXt43pYbPF7HbwYbxR6Drld/E16bi0NtQSJAMnPIrodgGxIeztO
	IgxVrOPI0OSi7gJmr3WNiCCWjxgXDRUo+cuWQ//3Z1mawBx2kTQ6DVp8USyZ19Ns
	DWTg11F+TaxNBO45RTBwJlquHfwAQ20ffcQ==
X-ME-Sender: <xms:8bT3Z4esBlj6zAq-LtLUW2rLN8AYbp4bCc3i46RN7WknT6VhUKA3YQ>
    <xme:8bT3Z6PbQuByUGMuny3Jc-c-8XfmNETdyLQQYtxSQM5_jp-5c2Y-_qRp-lzWNvqnJ
    kdJXw6HwLIBHA>
X-ME-Received: <xmr:8bT3Z5hOcFnU4JlFPpjiC5BhfG6zVp_Z1PrxGhSCAd-AUbnxg191WTMxQKviBX67u-L0lK2bzoQ1NONguVdc_ZcZf6LTpiTQfQ>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvtdekkeejucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
    pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
    gvnhhtshculddquddttddmnecujfgurhepfffhvfevuffkfhggtggujgesghdtreertddt
    jeenucfhrhhomhepofgrrhgvkhcuofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuc
    eomhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecu
    ggftrfgrthhtvghrnhepieeluddvkeejueekhfffteegfeeiffefjeejvdeijedvgfejhe
    etuddvkeffudeinecuffhomhgrihhnpehkvghrnhgvlhdrohhrghenucevlhhushhtvghr
    ufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhnvh
    hishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhnsggprhgtphhtthhopeeipdhmohgu
    vgepshhmthhpohhuthdprhgtphhtthhopegrnhgurhgvfidrtghoohhpvghrfeestghith
    hrihigrdgtohhmpdhrtghpthhtohepgigvnhdquggvvhgvlheslhhishhtshdrgigvnhhp
    rhhojhgvtghtrdhorhhgpdhrtghpthhtoheprhhoghgvrhdrphgruhestghithhrihigrd
    gtohhmpdhrtghpthhtohepshhsthgrsggvlhhlihhniheskhgvrhhnvghlrdhorhhgpdhr
    tghpthhtohepmhhitghhrghlrdhorhiivghlsegrmhgurdgtohhmpdhrtghpthhtoheprg
    hnthhhohhnhidrphgvrhgrrhgusehvrghtvghsrdhtvggthh
X-ME-Proxy: <xmx:8bT3Z99ycYTMckaibyVdoWslBxOGdu4kRrZIJXao5GVPy1xnJFZ8pw>
    <xmx:8bT3Z0sHWtWVRtaUiqWyy9hfR-6cCHRj1hh2uKQ14LJ4_44kMVt7CQ>
    <xmx:8bT3Z0EZ7f1E48KAuOaHXfjOlsm3ECTxsn-86rBRzcLi6Q08RQlsKA>
    <xmx:8bT3ZzO4LTuTWj6PhBUt916kwp-mxglFWe9Xaxphe0X7VVmdX1d1_g>
    <xmx:8bT3Z_sGI2AVkjsIjXbr91t4gHYJUCw_Nd4mnQd2gYRDXG0hmGCS5dxP>
Feedback-ID: i1568416f:Fastmail
Date: Thu, 10 Apr 2025 14:09:17 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: Re: [PATCH 3/6] Adjust Linux build script to work with other major
 versions
Message-ID: <Z_e07sow3o0bv-W9@mail-itl>
References: <20250410114628.2060072-1-andrew.cooper3@citrix.com>
 <20250410114628.2060072-4-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="3cyWOqAS0erRWFr1"
Content-Disposition: inline
In-Reply-To: <20250410114628.2060072-4-andrew.cooper3@citrix.com>


--3cyWOqAS0erRWFr1
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Thu, 10 Apr 2025 14:09:17 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: Re: [PATCH 3/6] Adjust Linux build script to work with other major
 versions

On Thu, Apr 10, 2025 at 12:46:25PM +0100, Andrew Cooper wrote:
> Simply the tar expression, as 'tar xf' can figure out the compression
> automatically.
>=20
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Reviewed-by: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblethingslab.c=
om>

> ---
> CC: Roger Pau Monn=C3=A9 <roger.pau@citrix.com>
> CC: Stefano Stabellini <sstabellini@kernel.org>
> CC: Michal Orzel <michal.orzel@amd.com>
> CC: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblethingslab.com>
> CC: Anthony PERARD <anthony.perard@vates.tech>
>=20
> v2:
>  * Use 'tar xf'
> ---
>  scripts/x86_64-kernel-linux.sh | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
>=20
> diff --git a/scripts/x86_64-kernel-linux.sh b/scripts/x86_64-kernel-linux=
=2Esh
> index 2a816f0b3204..5ed5608628bc 100755
> --- a/scripts/x86_64-kernel-linux.sh
> +++ b/scripts/x86_64-kernel-linux.sh
> @@ -11,9 +11,10 @@ WORKDIR=3D"${PWD}"
>  COPYDIR=3D"${WORKDIR}/binaries/"
> =20
>  # Build Linux
> +MAJOR=3D${LINUX_VERSION%%.*}
>  curl -fsSLO \
> -    https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-"${LINUX_VERSION}=
".tar.xz
> -tar xJf linux-"${LINUX_VERSION}".tar.xz
> +    https://cdn.kernel.org/pub/linux/kernel/v"${MAJOR}".x/linux-"${LINUX=
_VERSION}".tar.xz
> +tar xf linux-"${LINUX_VERSION}".tar.xz
>  cd linux-"${LINUX_VERSION}"
>  make ARCH=3Dx86 defconfig
>  make ARCH=3Dx86 xen.config
> --=20
> 2.39.5
>=20

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

--3cyWOqAS0erRWFr1
Content-Type: application/pgp-signature; name=signature.asc

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmf3tO4ACgkQ24/THMrX
1yxI7Af+OVkmKGKJ6zOctC1A2aKkc5h2u0Bm/WVvT3dQE+DLCqmu0TQqTOEIy3H9
ArLEkAxhsZus0EEunhMRQcBE8vLdVoiKH7gsmbumkAGQ0g0fttn4GrzQJ9teLD8k
dEHneRZvXEfXkunc4O9CZpNehAmZTBIros3gaXdZc8UWO2szHgXSqLwzXDeJSPiR
8Ii6logeY30QWs0OMkSSsx6+iQn0YUCrpyvFyKG/gTNhHerH0mJz2F0NHmp9hzqC
Kh+IuHcg8lg8ZhP9VvUspfqwykK7LV1VKjAZA4xaH99PVPToW9/sspoOpn7EGfro
xvYWdb9YQLPEcMl7Flnu+9iIAq65nA==
=x4ZY
-----END PGP SIGNATURE-----

--3cyWOqAS0erRWFr1--


From xen-devel-bounces@lists.xenproject.org Thu Apr 10 12:13:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 12:13:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.945536.1343719 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2qmR-0005fe-Rd; Thu, 10 Apr 2025 12:13:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 945536.1343719; Thu, 10 Apr 2025 12:13: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 1u2qmR-0005fX-P6; Thu, 10 Apr 2025 12:13:15 +0000
Received: by outflank-mailman (input) for mailman id 945536;
 Thu, 10 Apr 2025 12: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=ged3=W4=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u2qf8-00077g-1Q
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 12:05:42 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on2062f.outbound.protection.outlook.com
 [2a01:111:f403:2414::62f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1b5a3a77-1604-11f0-9ffb-bf95429c2676;
 Thu, 10 Apr 2025 14:05:35 +0200 (CEST)
Received: from CH5P220CA0016.NAMP220.PROD.OUTLOOK.COM (2603:10b6:610:1ef::22)
 by IA0PR12MB7699.namprd12.prod.outlook.com (2603:10b6:208:431::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.21; Thu, 10 Apr
 2025 12:05:29 +0000
Received: from CH3PEPF00000015.namprd21.prod.outlook.com
 (2603:10b6:610:1ef:cafe::10) by CH5P220CA0016.outlook.office365.com
 (2603:10b6:610:1ef::22) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.24 via Frontend Transport; Thu,
 10 Apr 2025 12:05:29 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CH3PEPF00000015.mail.protection.outlook.com (10.167.244.120) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.0 via Frontend Transport; Thu, 10 Apr 2025 12:05:28 +0000
Received: from localhost (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; Thu, 10 Apr
 2025 07:05:27 -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: 1b5a3a77-1604-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=aOsIVm+97c7inmwJR9keJbWcg2EzNN25y7vBR2qMcQiisiITd6dtb1PVy3PATOoymR9V5sc9RMyWr257WvxQc6ECyV4AV0xHmkZC+WJJizpNq73rxcRtFNjQvlAY0ngeXrvKGK1amMGbwE9ZqAp7FIoH6C03YPOOmEgopg8cArzOEShugOF/cG3xwpnzq+Le6sTMyoP6Rej46HbcReFZQe60n3X4624EEDeG7OB9+B1mMSCyHj23BFORh7YwugFKoXdslhgN6GcgHH8yvYLWwpqnwKfajhmaiPzSh3eVI/szgyP7I5ZSMvjob4fcfF5mVqdRulsab9mjIhSzCKLR8w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=7TAN7IA2M8DdftQopZKJP3lG7D4zowg6G8xdf5FOIAE=;
 b=RU343dnc4koTImZ+O08m80Pg7kyIs7kQeLmHcrJX6m6x6SZ4Pjfs9t4SySmmoEx4V0SAeI0zqKOryZkOWfd0qqX3+zFDN7Ha7OfeUTIdt0IG97gXk8CFgCYmz1gZCr9K059t4kbDak1nSZdNyy2W1CJGrmx2UFrsg2/+6ynAYrLi1NPQmTpckTaAyAHqBL44pcHqi2PKqcw0BEYVDkB5i+aKhsMPD80jIFCKKcWxlx0dCia/o3nrau0n5b0/uJvCwrDtUbxklyGkl2e0DOAf4x1jh5RuCjvEgjNmn3RX7YuTCtL4c4uFo6cSeWe5VExzZks74olvCw2Mfj8CbQ0Jsw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=proton.me 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=7TAN7IA2M8DdftQopZKJP3lG7D4zowg6G8xdf5FOIAE=;
 b=puMy7Ug7XQeW6iOEgd8cOehnXNP8bi9S+8WV7+A0Si/45pK+qt6pm2chCoI5XKvvUfSaQbt25VkMlgH9baj6QTRg4gKXmjQmjlwDR9QoB6RNe4jS3VPV1fx35nbjIZutmrbEFLt5S2hacklYLJRaXr1Ev4JMNdQwXWWZrtbTfFQ=
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
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Thu, 10 Apr 2025 13:05:25 +0100
Message-ID: <D92Y1FMJSC3L.ULV8TKJ956D2@amd.com>
CC: <xen-devel@lists.xenproject.org>, "Daniel P. Smith"
	<dpsmith@apertussolutions.com>, Jason Andryuk <jason.andryuk@amd.com>, "Xenia
 Ragiadakou" <xenia.ragiadakou@amd.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Michal Orzel <michal.orzel@amd.com>, "Andrew
 Cooper" <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Jan Beulich <jbeulich@suse.com>, Julien Grall
	<julien@xen.org>, =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Subject: Re: [PATCH v3 04/16] kconfig: introduce option to independently
 enable libfdt
From: Alejandro Vallejo <agarciav@amd.com>
To: Denis Mukhin <dmkhn@proton.me>
X-Mailer: aerc 0.20.1
References: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-5-agarciav@amd.com>
 <7UJZ7DNBvYS92pCcplKug_7DNUY5QJtWUdcN_CWIUsdcumUN4dOXsQka1nGQ5dQwgSSmHBJXJGJo9EGByjmq-eeNR0VyNftIPnKZHcWUrZw=@proton.me>
In-Reply-To: <7UJZ7DNBvYS92pCcplKug_7DNUY5QJtWUdcN_CWIUsdcumUN4dOXsQka1nGQ5dQwgSSmHBJXJGJo9EGByjmq-eeNR0VyNftIPnKZHcWUrZw=@proton.me>
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: CH3PEPF00000015:EE_|IA0PR12MB7699:EE_
X-MS-Office365-Filtering-Correlation-Id: 604f0074-ca1c-4ad2-4e89-08dd7827fc6d
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?d3ZoOUwxWWdiVlU3ZEJtMmxyVnNzM2VXRnVZRDF2OENTQWFyQXR4eW9hcFRj?=
 =?utf-8?B?WnpjYlFIWjg1TnhvaHNvNXNPMEVFQmhycXRTWExQeHN2N29YQ0E5ZkRjOXpt?=
 =?utf-8?B?UW8xWnZzek52S0xSVkY0eVhrWTc0UGJqOWhTck04N3R2TVVwMVlWZTB1T1J6?=
 =?utf-8?B?TW44RG5TOVZrU1JGNGdSNkZxajI0OTY0UWVpUmp6c1A4eXZIek03KzhZL3hV?=
 =?utf-8?B?MjladzZYUFEzT3Jtcmt1cEVVaXhieWppVlR6dzdxSWtwcm43S0xVUFV0WTJZ?=
 =?utf-8?B?TEhINzlLWFZ5d08xdEpoSmdNWUI4eGpWUU1tRzROZ3l3OGd1VThSLzFEY0tu?=
 =?utf-8?B?Z3JwMURWRnZFKzZRMTQ3S0NUWWtKc2tFRmJ4OW5LMTRqdjlmR1FWU0dMb3Fs?=
 =?utf-8?B?bWNJcFFTRzZGa1lnWmc4ZVV2SDNISnQ0bGRsNnNKV0JQVVMwVUtkOVFhV0Jn?=
 =?utf-8?B?VWc2WmdGWlZKZzh1VXRWNVJYU3Y1YjhSNkNxd0tuYURtVy8yM3hHQmlUeEwz?=
 =?utf-8?B?eUx5MVBtZVpTV0RpQW45UWRhWEZRNDQxTS9SaE1laldWVndKNy9SM1ZycWV3?=
 =?utf-8?B?M3JMcm91bTdhK24rQVhFdTl4QW0xRTQ1Z1BDTDhYbDV0d3BkdlpKY2pQTnVz?=
 =?utf-8?B?L2tJeFZmcmlqUGJqMENSaDN4T3FIMzB5MVN3WVRDOHUwcE9MOTFZVWd5emtI?=
 =?utf-8?B?dzEzd1hNdURFbncxRkZUZjJTSHU4QlVTZUxnbEdWZVJHRUswcXBpaVJhRlNU?=
 =?utf-8?B?QmFoSkxzMFJHV2s4ekEzaDV0RUZMblF1ck41T3h2dzN1MWdNMXdJK0ZiTUxz?=
 =?utf-8?B?dUpSVHIvOFVUOWozL3JJUWRZM2VSdVBvTFlOS0E2SGVzQ29EdEZ5bWNCbnFO?=
 =?utf-8?B?bHRkNmUrVit4a1NVZTFqenp4blJraXAwaG1xTFFHWkljdWQxaUFxbitPNFVv?=
 =?utf-8?B?b2NFWkFTdDBnOG4zMmxPYzYreXUxUE84N1FRZFE2R29wMHA0SlAwWEpxemtP?=
 =?utf-8?B?bXIyOGF5bWdGU01CWXNSWjlvNGU3YnVWWitERmlzNVE2YkJsSFNmS0JrczlZ?=
 =?utf-8?B?bVpHZDNCR2lMT29KUkhYdVd6ZnFDeVBXaE5QRXdnTzFnUjhaQjc5bDhDK3JN?=
 =?utf-8?B?V0x3bVRwSXFIeUI5MnN2U2ZTUHMzaDNLQnBGZDNybndaQXBZak5RYlpjUUd1?=
 =?utf-8?B?UXVML1BidzQzd21pcG51RDhEanIwdGVwSDFmOHZ5YVdVS2M4S1JYZnVEVjV6?=
 =?utf-8?B?d0xmOGluTWRIOEdFV3ZCcVlqQVdGaTc5c0hjc3p2aGZVREg3RWxRZThmeXly?=
 =?utf-8?B?bFI0RStCL1ViQm93Q3ZHeFFpYVFncFJtWHVZUnRLenZ5RkpUanZjUnQrSFZZ?=
 =?utf-8?B?aTk0Y21ta2JDNDBURUI4VHBWSHZtRGdHUndoaEhwL1loeStETUFWS0Jyc0JY?=
 =?utf-8?B?Q1duUUgvcWgzWWlDYXRvNXJlUDJxTkdRUWRVYXA2eHc2akhjclRQb1g2NkM5?=
 =?utf-8?B?M0d0ZG0yeTBrZGxTdURSTlYrWTZsSXFXeC9DZUlqYkNpS1dVZkFIWFhwSk9N?=
 =?utf-8?B?ZGpMK3JXbE9wS3J1YnpFa0JDZmwyR0ZHeU9YeHdudkpDbldnODI1YmdDbDQw?=
 =?utf-8?B?aWNkTE4raWpRdndoZmcvU0ozV28xbm93WlpEeko2REtqenRheE0xME8xd2ha?=
 =?utf-8?B?V1ZwUk9ZT2hTTjFaNmlJQ0xOdDhhblZSWjBGU3JNRUlvNzRERWUxU1d3YTll?=
 =?utf-8?B?SjNQOUE4T3hYMFNRS2xuL0NGc2NSYWNLbTBUNDg1dHhoRHhLeU5qUFVoSllm?=
 =?utf-8?B?Y1RINzBWMjRzdW1oczhCRGJxeElxZUltWEwxeUhUWmRXNDdpRHNHK2tmMC91?=
 =?utf-8?B?VHA5Vnp6bXpvU0VhUDlWTjB6bnhhZFhmRDY4Wk9tVzVwc3R3NG5oejcyNUxQ?=
 =?utf-8?B?bEFaMGo2a3hpaEQ2b2p5ZjRNZzIvN2w3RDJSWmVLejcySEF6VmZZT2NrWjd0?=
 =?utf-8?B?UnY4YXZkZDNRPT0=?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.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: 10 Apr 2025 12:05:28.9933
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 604f0074-ca1c-4ad2-4e89-08dd7827fc6d
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:
	CH3PEPF00000015.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PR12MB7699

On Wed Apr 9, 2025 at 7:57 PM BST, Denis Mukhin wrote:
> On Tuesday, April 8th, 2025 at 9:07 AM, Alejandro Vallejo <agarciav@amd.c=
om> wrote:
>
>>=20
>>=20
>> From: "Daniel P. Smith" dpsmith@apertussolutions.com
>>=20
>>=20
>> Currently, the inclusion of libfdt is controlled by the CONFIG_HAS_DEVIC=
E_TREE
>> kconfig flag. This flag also changes behavior in a few places, such as b=
oot
>> module processing for XSM. To support the ability to include libfdt with=
out
>> changing these behaviors, introduce CONFIG_LIBFDT. The inclusion of
>> libfdt is then moved under CONFIG_LIBFDT.
>>=20
>> Signed-off-by: Daniel P. Smith dpsmith@apertussolutions.com
>>=20
>> Signed-off-by: Jason Andryuk jason.andryuk@amd.com
>
> Reviewed-by: Denis Mukhin <dmukhin@ford.com>

Thanks

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Thu Apr 10 12:19:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 12:19:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.945549.1343737 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2qro-0006wc-Ps; Thu, 10 Apr 2025 12:18:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 945549.1343737; Thu, 10 Apr 2025 12:18: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 1u2qro-0006vw-Jr; Thu, 10 Apr 2025 12:18:48 +0000
Received: by outflank-mailman (input) for mailman id 945549;
 Thu, 10 Apr 2025 12:18: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=w6Mj=W4=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u2qrn-0006sP-Gf
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 12:18:47 +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 f2f048ae-1605-11f0-9ffb-bf95429c2676;
 Thu, 10 Apr 2025 14:18:45 +0200 (CEST)
Received: by mail-wr1-x435.google.com with SMTP id
 ffacd0b85a97d-39727fe912cso302563f8f.3
 for <xen-devel@lists.xenproject.org>; Thu, 10 Apr 2025 05:18:45 -0700 (PDT)
Received: from [10.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-39d893fdf6dsm4681065f8f.90.2025.04.10.05.18.44
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 10 Apr 2025 05:18:44 -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: f2f048ae-1605-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744287525; x=1744892325; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=XlbzHtSp4pngYxsCukm4n0mN9sBjwgHb/MkNTr7262w=;
        b=hFwCvZu97H2fbUVmOkfPv2eiRVxA9+kAxZGGJIkiDrR8V2v3dFmjkK3/FZZ2hdQADt
         2vqflVNX2eO81Fzb+5xJA+lgswyMrQ1XYbuDuKE33244/gLJKgVti0/PLSxnyz0Wpb8D
         vNNneBSnTdQqz7FsxcISgZrJJroCz1E/DBFgzuVBZb5QsTyQASOoouRyBuYnfaEQIGXn
         H9R3AoaxHpyjEaWhP45vAhTz1KQObiZTWg7rQbfUhms71UdLTToQKM2kdKyHQ6lSzJrQ
         I+nL25CUNwd1ectJY6KYUmTOspTc+J6e4IfANLAuSWZQrA32G9aFor7nZAKaxtKqr96E
         IGNw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744287525; x=1744892325;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=XlbzHtSp4pngYxsCukm4n0mN9sBjwgHb/MkNTr7262w=;
        b=Lm4O9Ij4VNvivOE+u76ugmmnax6T99yjmw2z8asqrsgDm6bQ2Yyu+ZIh+XI+w9rjgF
         EhHPgm/QLh/RltD+rlR74Hyo+/mdLpIxoVXjX3nkzGHEHctm9sW3rac9fJNobMUKyz8+
         7wOlT1kxhBxCr6mk+ebkF/oZ7IvDwaORP16aynbrGHIXnHZWXi9uI3SHnUiRS8deV5oc
         GOlPmrhRgqwexWS8Nv0CIskdQwLAHCu9w9thmb7H5TwljYKISSE3kfeIsBBhJV2vctkp
         PcYLRNgpr9AiUZsTeshrvQsy/8+QjtKkXvGA/+xn6Q1uwi1Nnjx3cDGNTEaY8fOn2/AU
         JvsA==
X-Forwarded-Encrypted: i=1; AJvYcCXe33DMOupBAzlwSgLIkYnUEk8FPWzNZZxnA6Ifhv9+jA2ukbanjA9TPHmebm4309yfqR1VMajmml4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyuT+NvdOgGVv+rP34lkEN1tDgg8VzAaCD5i7Vw28YiX11YRvrr
	Hszxr3wsBXCd24/I/ruH44Vq6nHxIhEivSgEvjlrX7zP8tuckZHO1/6n7Vfi3w==
X-Gm-Gg: ASbGncvDhal68iUluuzPG1JkJD/qYvO2tAj5RcgPYPRT96wrZs1hNW2OJwc0qtfGIDH
	Dfdjlz+dJkNwEXb02978NiYIcJ2jMLEyjB1D1lvzc9A7zid0yfIbcyXKFWB9rEcI7moWXNsRlaT
	GGv6H0DPvzFtQ5G8SFfKcqOwa4YnkCifgW2bZ/tqhwAmg7dSeed661lm8rvbWz6EFs3fZed0a9y
	ZX1IPa7H4InilIeCuoqVYT3sd/xx9Jy/dPU/Hs5PM2vT2xZU7GNgJ3QNc47uZm9WfxYGA7nOz9C
	mclyGKpqGcW8d1l9H+5BEdDTPIMg2rzI47au2s7h+0RZ7CTVhYkHTmfpRZ05EOe2DPF8Wtzric6
	tjWazyJzyEGVYMxLCmUNOQcR4ljzNbFR4ghat
X-Google-Smtp-Source: AGHT+IGE5xT+or3OdICpuM/dmn6Yaeon7opX6C1o8WPkWoVOFQKPGzZOF1v1Fc8D/yZ8aceYRzDlaQ==
X-Received: by 2002:a05:6000:1a8e:b0:38f:2ffc:1e99 with SMTP id ffacd0b85a97d-39d8f4f9ddamr2179637f8f.49.1744287525101;
        Thu, 10 Apr 2025 05:18:45 -0700 (PDT)
Message-ID: <0adfe521-eda5-4d84-b6bf-72062a96cff7@suse.com>
Date: Thu, 10 Apr 2025 14:18:42 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 16/16] x86/hyperlaunch: add capabilities to boot domain
To: Alejandro Vallejo <agarciav@amd.com>,
 Jason Andryuk <jason.andryuk@amd.com>
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Michal Orzel <michal.orzel@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: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-17-agarciav@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: <20250408160802.49870-17-agarciav@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.04.2025 18:07, Alejandro Vallejo wrote:
> From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
> 
> 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>
> Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>
> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>

The R-b feels kind of redundant with the subsequent S-o-b.

> --- a/xen/arch/x86/domain-builder/fdt.c
> +++ b/xen/arch/x86/domain-builder/fdt.c
> @@ -257,6 +257,18 @@ static int __init process_domain_node(
>              bd->max_vcpus = val;
>              printk("  max vcpus: %d\n", bd->max_vcpus);
>          }
> +        else if ( strncmp(prop_name, "capabilities", name_len) == 0 )
> +        {
> +            if ( fdt_prop_as_u32(prop, &bd->capabilities) != 0 )
> +            {
> +                printk("  failed processing domain id for domain %s\n", name);
> +                return -EINVAL;
> +            }
> +            printk("  caps: ");
> +            if ( bd->capabilities & BUILD_CAPS_CONTROL )
> +                printk("c");
> +            printk("\n");
> +        }

Like for the other patch: What about other bits being set in the value read?

> --- a/xen/arch/x86/setup.c
> +++ b/xen/arch/x86/setup.c
> @@ -1006,6 +1006,7 @@ static struct domain *__init create_dom0(struct boot_info *bi)
>  {
>      char *cmdline = NULL;
>      size_t cmdline_size;
> +    unsigned 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,
> @@ -1037,7 +1038,10 @@ static struct domain *__init create_dom0(struct boot_info *bi)
>      if ( bd->domid == DOMID_INVALID )
>          /* Create initial domain.  Not d0 for pvshim. */
>          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;

Seeing that builder_init() in the non-DT case sets the new bit unconditionally,
isn't the shim's only domain suddenly getting CDF_privileged set this way? Oh,
no, you then ...

> +    d = domain_create(bd->domid, &dom0_cfg,
> +                      pv_shim ? 0 : create_flags);

... hide the flag here. Any reason to have the intermediate variable in the
first place (can't resist: when there's already a wall of local variables here)?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Apr 10 12:19:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 12:19:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.945548.1343730 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2qro-0006sh-Ff; Thu, 10 Apr 2025 12:18:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 945548.1343730; Thu, 10 Apr 2025 12:18: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 1u2qro-0006sa-Bn; Thu, 10 Apr 2025 12:18:48 +0000
Received: by outflank-mailman (input) for mailman id 945548;
 Thu, 10 Apr 2025 12:18:46 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=w6Mj=W4=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u2qrm-0006sP-RU
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 12:18:46 +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 f260b7f0-1605-11f0-9ffb-bf95429c2676;
 Thu, 10 Apr 2025 14:18:44 +0200 (CEST)
Received: by mail-wr1-x436.google.com with SMTP id
 ffacd0b85a97d-39d83782ef6so1166740f8f.0
 for <xen-devel@lists.xenproject.org>; Thu, 10 Apr 2025 05:18:44 -0700 (PDT)
Received: from [10.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-39d893fdf6dsm4681065f8f.90.2025.04.10.05.18.43
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 10 Apr 2025 05:18:43 -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: f260b7f0-1605-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744287524; x=1744892324; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=XlbzHtSp4pngYxsCukm4n0mN9sBjwgHb/MkNTr7262w=;
        b=hDJjkYg8T2/bIklgHBlpe/1Q2/rcL6VyglJ9lqEBb67/Q0D1zIXbrchGmv/oxJn1A2
         JpBcnuKc1bmb5OjyiK+FZxpDobSf7aldUTt6yqy7qD6h+7ASPGORYQoX0we9iX99TL46
         SRW9PDTgk6W8QRflfTpswHkMIsFwpi7bm8ID7xUW+VAR5TdQoEMyfWvM3INGnUT4p9At
         NcSxSnrgF6mP0PTzlvXtO2KTJNu3iX5Iyt3qKuoJ2L2cOQmYJ4XH+aaufGQE4byG2QRZ
         wjSLyu5xUsa4K59RVv7fz6zRItt+ZcwYZ3kNn7wO4OwOhUMOpD6qyW/fSukpUedJA7HG
         xBjQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744287524; x=1744892324;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=XlbzHtSp4pngYxsCukm4n0mN9sBjwgHb/MkNTr7262w=;
        b=aM7ef5pmlOZKbo+UU414FlP/kvvZlmjrKTaO2GFxtxcocv2gU6c1XhGQlrIrT8ZNwH
         f8gNmwxg/zz1aC/l7dBvSyBvjT928ojZczW9Y3KYS2NYNT++6fd03Izn2w0FEEB6LA7a
         ar+o1LLRpuYmrpG8guCXVW3NX7QFIuJylXY38fGgnlzC3QJTuVgl0T3Kns8JrRJkYsjY
         k3Yfl8a0nIf7xOL3aimF/lOQpEZiAQhQnckPw/8Ll7EDzQkIAGFN/oo0GgKiaqZ3Prig
         j/5rBWrW8bCEZqF8sv++XVpxqxo05i9mOkKk99tKnZOP79OoPYYZrMDQN9Asp2LoZ6H2
         ZsQA==
X-Forwarded-Encrypted: i=1; AJvYcCWkP6IrvMOZ+q0Whg+4Mp12tNmVlkqz+eird3tajg5CNW5T8+YSIgHKL+vSvu99ZHEqPM2zWw7mlF8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwmuG64xwkzSdzlVgmsmC4MdiF3sUEY0kCArhcnWCTA1LAyjSKe
	bBgl9YpydH87jDQiNCTyqVOPvfm+n82/JrIba32JJBnzc43oiNqXDZ1dQavOTQ==
X-Gm-Gg: ASbGncs8eO/Tny/uNnPdyzQ3aKmUvGak/VNYIYtFMQpwLtOyNZA51JV92YIHe3haZR1
	Ctuh2dfM1XgryqM6ZsV2Za0B0BHFCsoxf1XdniMEt83MQk4EYZkadF+3sghV+LSoONtD1le+8M8
	ywUVRNKRDKJhkK5Sbe6BPZ4De+vgkO1MVL/UJTZ3Ny3fhDCvIYnRa7k43ZE/VjQMLgWLVhbdN+m
	2vbMzAkdUaS7BTD5i92/diS6sivvf6EzBsWNuknvTIAK5QKoS8K6mtC5gDMWlQIS03ZW9Wx5j8a
	hLmzV/fFsEkYWwx1tPLQ8tUhkGQx4swRcEWTB4m9/VoHeIlJGdoetqJ/MzeX57arlav6mp6Rf8W
	Q7LLtshniii+b8RYxQHqBLExpuw==
X-Google-Smtp-Source: AGHT+IFUxoYospM08dB5ll/oZ0HYxDNrvKouoT3ly+keG/wXUDfL+NIjU0zBlAc/5xjsaFoP70Sdtw==
X-Received: by 2002:a05:6000:2209:b0:38f:3224:65e5 with SMTP id ffacd0b85a97d-39d8f5f4353mr2059647f8f.12.1744287524090;
        Thu, 10 Apr 2025 05:18:44 -0700 (PDT)
Message-ID: <93bad6aa-57a8-427d-a0f6-924f03f0db34@suse.com>
Date: Thu, 10 Apr 2025 14:18:42 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 16/16] x86/hyperlaunch: add capabilities to boot domain
To: Alejandro Vallejo <agarciav@amd.com>,
 Jason Andryuk <jason.andryuk@amd.com>
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Michal Orzel <michal.orzel@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: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-17-agarciav@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: <20250408160802.49870-17-agarciav@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.04.2025 18:07, Alejandro Vallejo wrote:
> From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
> 
> 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>
> Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>
> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>

The R-b feels kind of redundant with the subsequent S-o-b.

> --- a/xen/arch/x86/domain-builder/fdt.c
> +++ b/xen/arch/x86/domain-builder/fdt.c
> @@ -257,6 +257,18 @@ static int __init process_domain_node(
>              bd->max_vcpus = val;
>              printk("  max vcpus: %d\n", bd->max_vcpus);
>          }
> +        else if ( strncmp(prop_name, "capabilities", name_len) == 0 )
> +        {
> +            if ( fdt_prop_as_u32(prop, &bd->capabilities) != 0 )
> +            {
> +                printk("  failed processing domain id for domain %s\n", name);
> +                return -EINVAL;
> +            }
> +            printk("  caps: ");
> +            if ( bd->capabilities & BUILD_CAPS_CONTROL )
> +                printk("c");
> +            printk("\n");
> +        }

Like for the other patch: What about other bits being set in the value read?

> --- a/xen/arch/x86/setup.c
> +++ b/xen/arch/x86/setup.c
> @@ -1006,6 +1006,7 @@ static struct domain *__init create_dom0(struct boot_info *bi)
>  {
>      char *cmdline = NULL;
>      size_t cmdline_size;
> +    unsigned 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,
> @@ -1037,7 +1038,10 @@ static struct domain *__init create_dom0(struct boot_info *bi)
>      if ( bd->domid == DOMID_INVALID )
>          /* Create initial domain.  Not d0 for pvshim. */
>          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;

Seeing that builder_init() in the non-DT case sets the new bit unconditionally,
isn't the shim's only domain suddenly getting CDF_privileged set this way? Oh,
no, you then ...

> +    d = domain_create(bd->domid, &dom0_cfg,
> +                      pv_shim ? 0 : create_flags);

... hide the flag here. Any reason to have the intermediate variable in the
first place (can't resist: when there's already a wall of local variables here)?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Apr 10 12:21:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 12:21:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.945575.1343749 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2qur-0001HT-94; Thu, 10 Apr 2025 12:21:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 945575.1343749; Thu, 10 Apr 2025 12:21: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 1u2qur-0001HM-6D; Thu, 10 Apr 2025 12:21:57 +0000
Received: by outflank-mailman (input) for mailman id 945575;
 Thu, 10 Apr 2025 12:21: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=S0bf=W4=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1u2quq-0001HG-Fy
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 12:21:56 +0000
Received: from fhigh-b2-smtp.messagingengine.com
 (fhigh-b2-smtp.messagingengine.com [202.12.124.153])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 63a541a5-1606-11f0-9eac-5ba50f476ded;
 Thu, 10 Apr 2025 14:21:55 +0200 (CEST)
Received: from phl-compute-04.internal (phl-compute-04.phl.internal
 [10.202.2.44])
 by mailfhigh.stl.internal (Postfix) with ESMTP id DB97D25401F3;
 Thu, 10 Apr 2025 08:21:53 -0400 (EDT)
Received: from phl-mailfrontend-01 ([10.202.2.162])
 by phl-compute-04.internal (MEProxy); Thu, 10 Apr 2025 08:21:54 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 10 Apr 2025 08:21:52 -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: 63a541a5-1606-11f0-9eac-5ba50f476ded
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=fm2; t=1744287713;
	 x=1744374113; bh=ueYv8h4bJO34FhvM6yNlOYkNBilfAN/4nXoIzDs8cTI=; b=
	nRAlRqYS+hDEG1n1TZjRXL8n6XPJ9nhQ4VOVGmTM5gLUaog5HedJdB+1L1+YpFDG
	4wIhW3YOkkYadJL/Qa2CaDeXZxz8AxQSlB49frBpyoV7lI0rcQxtEBB/Et1gpDgH
	2t4X7PDWUpf4sok+gbWbQw76lA4o2QYKtj27EEChoUllH3zsScgutV0HBLpcFp6E
	t2jWIKLgQdTMcdt2TPYXAP3FHT88XXQgQBbON6TeT3Sk/hDD0z2OFZJvqY9w5Fw3
	Q2JpaTNHzgpSGEP7dA0YLfLAE1KHt5+Xe8m6W1cq7t9JG4wDvpW4d6Zs1uAZlxC0
	aUSFNEP5hs9JhMNxu7wruQ==
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=fm2; t=
	1744287713; x=1744374113; bh=ueYv8h4bJO34FhvM6yNlOYkNBilfAN/4nXo
	IzDs8cTI=; b=vTCjN/ry64dERJpBmocqkdQw8ZSv7Ouej+2xJHmcoCIKBrIGGzL
	fSHpVjuHPD05iCtC9XAuoYcTmbeJ4TYXmHHgqylOyp2XWaE4vfvMIq8HtHMPMgVO
	s3T3s1wtVUe3rayF20QpFOGaCazEiUOsi5KZeWIwgX8nBwO3MwL6mlgLiv7Yw2ex
	IdYpsasQ15KAuacZzfAF8Cvg1YB+9knqPm7RerXByBlxlbS6tGNSkRM+Q3RXjvPo
	dEbbrcFXgDcLpW3JsEdJx3gu8J+BIJs+q9kpEbkLDe/hsVEUVmCVTb1XezdAwVKj
	n+a9cKOy/yULeStW2Drom4XNm+D42v5vVyQ==
X-ME-Sender: <xms:4bf3Z4ZIplnr0WrHUI86sftjh1CV2pctFILCW4KqCNMJj2grB6EVbg>
    <xme:4bf3ZzZhc-iLjHZSSbBYfmYJrii3UwFA9jYHqPg24VrIiLq8awI8Cy6gKDoyIy1Ej
    kqwZDXGqWOjWg>
X-ME-Received: <xmr:4bf3Zy9AnwtXg1FV22LIepTRFERX29R9xwl4u6a43jBYu_uY5G_kotGbaoF3G4xJXDbf0TtBMT7zZuFhqdqrTcJ1DyOwy4UdFg>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvtdekkeelucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
    pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
    gvnhhtshculddquddttddmnecujfgurhepfffhvfevuffkfhggtggujgesghdtreertddt
    jeenucfhrhhomhepofgrrhgvkhcuofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuc
    eomhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecu
    ggftrfgrthhtvghrnhepveeujeetgeelleetudeuvefhtefgffejvedtvdfgieevheethe
    elgeeuledvjeevnecuffhomhgrihhnpehgihhtlhgrsgdrtghomhenucevlhhushhtvghr
    ufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhnvh
    hishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhnsggprhgtphhtthhopeeipdhmohgu
    vgepshhmthhpohhuthdprhgtphhtthhopegrnhgurhgvfidrtghoohhpvghrfeestghith
    hrihigrdgtohhmpdhrtghpthhtohepgigvnhdquggvvhgvlheslhhishhtshdrgigvnhhp
    rhhojhgvtghtrdhorhhgpdhrtghpthhtoheprhhoghgvrhdrphgruhestghithhrihigrd
    gtohhmpdhrtghpthhtohepshhsthgrsggvlhhlihhniheskhgvrhhnvghlrdhorhhgpdhr
    tghpthhtohepmhhitghhrghlrdhorhiivghlsegrmhgurdgtohhmpdhrtghpthhtoheprg
    hnthhhohhnhidrphgvrhgrrhgusehvrghtvghsrdhtvggthh
X-ME-Proxy: <xmx:4bf3Zyr6rziqtcj4etpDR8XhGoqci8Xt_F3CQ1IykwHcTEbov1FGqw>
    <xmx:4bf3ZzoEq4Tl0hzxVfBNcJyWsMNrLmGZLD9tHvgb9L2j86wMuSpX3g>
    <xmx:4bf3ZwSF-9ThcyvZP5QbQPlQv6fHESyW0DVxAHSFkKHHnLCWciAapQ>
    <xmx:4bf3ZzrM5jIx_xPnzaXdmKLRuCarv2wa3aUWBl1EGC6ZU-P63FfpoQ>
    <xmx:4bf3Z2I1VeTqWALtw50WqUM2hv3TsSoX2lgWYyMlZAgCcZWZ1XjG1IgM>
Feedback-ID: i1568416f:Fastmail
Date: Thu, 10 Apr 2025 14:21:50 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: Re: [PATCH 7/8] Infrastructure for arm64 linux builds
Message-ID: <Z_e33hdcaNKkqsyI@mail-itl>
References: <20250409163702.2037301-1-andrew.cooper3@citrix.com>
 <20250409163702.2037301-8-andrew.cooper3@citrix.com>
 <Z_aqUikDqi1UEOHb@mail-itl>
 <21a35c38-ce2e-48c4-9586-9c232f77affa@citrix.com>
 <8ef0f462-a487-4d76-84e7-9552c75995b7@citrix.com>
 <96fe43c7-e2a6-47d0-bdd7-e6284c86acfa@citrix.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="Mwpm5XXH8Q73BYmk"
Content-Disposition: inline
In-Reply-To: <96fe43c7-e2a6-47d0-bdd7-e6284c86acfa@citrix.com>


--Mwpm5XXH8Q73BYmk
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Thu, 10 Apr 2025 14:21:50 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: Re: [PATCH 7/8] Infrastructure for arm64 linux builds

On Thu, Apr 10, 2025 at 11:57:23AM +0100, Andrew Cooper wrote:
> The awk complaint has gone away too, so I suppose that's a knock-on effec=
t.

It isn't?=20
https://gitlab.com/xen-project/hardware/test-artifacts/-/jobs/9683454411#L1=
06

Anyway, hopefully harmless.

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmf3t94ACgkQ24/THMrX
1ywe2Qf/XCyErsxDslXTjSFoEr+Q71M/7T3dGHzpe6uaVxYmKi8ZcVbgWSISLuhb
sQ4qTV0MMOS3BN4Xk5SSvOqv8ywcTboWqFlDEEh5FFHy0pXj8SEEyjoInJBKZpbv
Pk/5WdA5Cq8mmlrg06Bf7u5sR5ivGBylkvrhdNjRChZuR6Nnr/Sw8Lkz7euPBZ93
P6yI/wqKuQQdw+KCgXayKGyU0HAHuKQ+iRMYCuSGeLEpR1toJB9wXT9O10ZCa7xU
jvsiM3hkFGxLqfsCNq1cnvDSOtztPdn+aPdh+C4aZDtmvXemHOMqe82eqP2h3Rws
q9d1GiDfrfOfcHpar5qYRWv9AJorVA==
=Mm3b
-----END PGP SIGNATURE-----

--Mwpm5XXH8Q73BYmk--


From xen-devel-bounces@lists.xenproject.org Thu Apr 10 12:22:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 12:22:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.945583.1343760 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2qvI-0001oF-IJ; Thu, 10 Apr 2025 12:22:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 945583.1343760; Thu, 10 Apr 2025 12:22: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 1u2qvI-0001o8-De; Thu, 10 Apr 2025 12:22:24 +0000
Received: by outflank-mailman (input) for mailman id 945583;
 Thu, 10 Apr 2025 12:22: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=w6Mj=W4=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u2qvH-0001cw-8z
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 12:22:23 +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 73b3c20c-1606-11f0-9ffb-bf95429c2676;
 Thu, 10 Apr 2025 14:22:21 +0200 (CEST)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-43ea40a6e98so6954625e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 10 Apr 2025 05:22:21 -0700 (PDT)
Received: from [10.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-43f2066d0fcsm53197075e9.19.2025.04.10.05.22.20
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 10 Apr 2025 05:22:20 -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: 73b3c20c-1606-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744287741; x=1744892541; 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=JpR1IWtnC+kJ0PDE7ywEcjhjjCmDWrQDcDdKwWsu6uM=;
        b=ZOlejGGBm+qBKCktjb1EMblWONnatZdzAIqXGZvqmZ39qRhRDCekQYWOkH41drlHp4
         fms5D6OqGvUhqJ1YiRavpSrh9p4KX2QUD3cPG07VGZZhZ73nrpwBIt9mHle/eT/pl/k6
         T9x3aWuc3cq2Owq4QNP8Xwk0Bfrd+TYJqvRRyjfFtWBDfcRpEp1E0XEHwb5RQlmRwbW1
         B9/F7hg8e83cEkVTIHb6ib+VDlVHfp7wO4gvQfhHyxJpcmcmaap6y2lmTnh3Uq1ochu0
         wZKziZwV906cGBbIzmFEauUAa67fToOmG34mW9N7z/2CgAhphY7kbImk2dHsq2EYFK3a
         q+sg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744287741; x=1744892541;
        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=JpR1IWtnC+kJ0PDE7ywEcjhjjCmDWrQDcDdKwWsu6uM=;
        b=EzhANOy15tU3ZVHOsulgaVHwFQr+gzvYFIGZvZYbsEFsFqM9DUrppe7iT5DVK3Ti/m
         Cxf1XSogprnrY4BTU1DQJQKPW2s3dDi5SrCCh9Hsq366HqjBsGNF0HsMMEwwHxhDEac8
         W30X26A7883gs4MeQkx1LZDM3+rVc3O+xOomHXE2k71mSJDjat7SeG8i5AQMtCHUfRlP
         xogK40jeY3OUM4cla4X3vjcOS8KXUkH8SN6S/bCHiA3hEUVXUihQ7BPo2nMyx1oCJwoq
         XR6NbKLpg/RKrkV3TuC2FR7qOZeinA1PyCyEfLkc6HL+InRzcktSPnEVmqOzfcL/QG2j
         /mwg==
X-Forwarded-Encrypted: i=1; AJvYcCX/jNLXsYqwvb4ABJu23b1J2uqwh6Cv2+vwNWotu3oOcwHWTgDYweD6y52A/n3+1GAMQ+Bewsf9fVU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzuQEW8/T7X2FPPvfPynxbmI65RE9keQj7ef4T9xksDNFumHahD
	wvtU6r1WTd/vNhs1EI/NiERKmiFPYZZD8Dl419mZ/2yCbOCueft92nvPKyHiFA==
X-Gm-Gg: ASbGncta3D0qx5OI/w4WX4E+vAa5yd3si6G8lJipC00M/foQ4/NtUTjCpVXYITJBttd
	AMiOwoPrm7vXgkc2WFJnftpF4w7siGPri1ZAzsKd5xQo8HM5v7ptMOZ1aTOnoCgH0z/g+zSAja9
	KSbFeM/0PiyCFBq0iaM8TPMcL2ReF2lIRBotvLoAEg5QNW5zx78Z0NQt4GnDVNSbVYPGb/pBYg+
	cDINq0ucLMqmTbmVZeRocZqtvgnt0v00jYAwS7lz89xnOon+sXDMq+gjPJN5NWuZRYdLNGg+vMA
	JRytgFd0tJCQMfWcz/8Om7NzxvZbK8pQvKWcZz7tVaEJ3WrfHriVgyOeTs9QKnb0ggJfsumhHXr
	yWv2JDQGTHj1DWL7SzYBxKMK3Qw==
X-Google-Smtp-Source: AGHT+IHK1qSl663r+jjkyC6KyW8qC3rvJw2g3Qt7UK3PaD9noYbOlTg1BLFshxOUSyxIiMeF4h/icQ==
X-Received: by 2002:a05:600c:511c:b0:43c:fa24:873e with SMTP id 5b1f17b1804b1-43f2d7b88d3mr28494835e9.13.1744287741052;
        Thu, 10 Apr 2025 05:22:21 -0700 (PDT)
Message-ID: <6f37afce-7901-45a8-80ed-86f43313bbfe@suse.com>
Date: Thu, 10 Apr 2025 14:22:19 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Ping: [PATCH] x86/EFI: sanitize DLL characteristics in binary
From: Jan Beulich <jbeulich@suse.com>
To: Marek Marczykowski <marmarek@invisiblethingslab.com>,
 Daniel Smith <dpsmith@apertussolutions.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <90354241-4ebb-4d52-809c-0af788d2b860@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: <90354241-4ebb-4d52-809c-0af788d2b860@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 02.04.2025 10:51, Jan Beulich wrote:
> In GNU ld --disable-reloc-section implies --disable-dynamicbase (and
> also --disable-high-entropy-va, just fyi). Therefore to yield
> functionally identical binaries independent of whether mkreloc needs to
> come into play, add --dynamicbase as well.
> 
> GNU ld further defaults to --high-entropy-va (along with --dynamicbase
> and --nxcompat) unless "Cygwin-like". This seems wrong to me; that
> default should be dependent upon "MinGW-like" instead; for the purpose
> of building EFI binaries with a PE32+-capable ELF linker neither
> "Cygwin-like" nor "MinGW-like" ought to be true. We certainly don't mean
> to have this bit set in the DLL characteristics, so suppress its
> setting.
> 
> Sadly while --high-entropy-va is supported by GNU ld 2.25,
> --disable-high-entropy-va was introduced only in 2.36. Luckily the
> defaulting to --high-entropy-va was also only introduced in 2.36. Plus
> --disable-reloc-section was introduced precisely there, too. Hence
> leverage the probing we do as to base relocation generation, to also
> determine whether to pass --disable-high-entropy-va.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Despite the file being modified suggesting this needs an x86 maintainer
ack, I think it's rather one of the two of you who should ack (or
otherwise comment on) this.

Jan

> ---
> I remain uncertain about the applicability of DLL characteristics to
> non-DLLs, i.e. images without IMAGE_FILE_DLL set; current MS doc says
> nothing either way. Yet producing consistent binaries still seems
> desirable, even if the field wasn't to be used by loaders.
> 
> --- a/xen/arch/x86/arch.mk
> +++ b/xen/arch/x86/arch.mk
> @@ -113,6 +113,7 @@ efi-nr-fixups := $(shell LC_ALL=C $(OBJD
>  
>  ifeq ($(efi-nr-fixups),2)
>  MKRELOC := :
> +EFI_LDFLAGS += --disable-high-entropy-va
>  else
>  MKRELOC := arch/x86/efi/mkreloc
>  # If the linker produced fixups but not precisely two of them, we need to
> @@ -123,6 +124,8 @@ EFI_LDFLAGS += --disable-reloc-section
>  endif
>  endif
>  
> +EFI_LDFLAGS += --dynamicbase
> +
>  endif # $(XEN_BUILD_PE)
>  
>  export XEN_BUILD_EFI XEN_BUILD_PE



From xen-devel-bounces@lists.xenproject.org Thu Apr 10 12:26:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 12:26:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.945602.1343770 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2qyj-0003nN-Uy; Thu, 10 Apr 2025 12:25:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 945602.1343770; Thu, 10 Apr 2025 12: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 1u2qyj-0003nG-SJ; Thu, 10 Apr 2025 12:25:57 +0000
Received: by outflank-mailman (input) for mailman id 945602;
 Thu, 10 Apr 2025 12:25: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=S0bf=W4=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1u2qyi-0003nA-KZ
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 12:25:56 +0000
Received: from fout-b3-smtp.messagingengine.com
 (fout-b3-smtp.messagingengine.com [202.12.124.146])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f2244db9-1606-11f0-9ffb-bf95429c2676;
 Thu, 10 Apr 2025 14:25:54 +0200 (CEST)
Received: from phl-compute-01.internal (phl-compute-01.phl.internal
 [10.202.2.41])
 by mailfout.stl.internal (Postfix) with ESMTP id 50619114017E;
 Thu, 10 Apr 2025 08:25:53 -0400 (EDT)
Received: from phl-mailfrontend-01 ([10.202.2.162])
 by phl-compute-01.internal (MEProxy); Thu, 10 Apr 2025 08:25:53 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 10 Apr 2025 08:25:51 -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: f2244db9-1606-11f0-9ffb-bf95429c2676
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=fm2; t=1744287953;
	 x=1744374353; bh=DfLCFzu8PFo6+vzQj8Gc87r0NwjsjlrKy6uU5YmqphQ=; b=
	Evq2F7BJgE5iT9WCvzdbEagytKHl7kPsqZ3h+a3n/HEeFrSGBqA3KlPZQEOQefAs
	3H9c67cTx+3L3Ckl8DwdNCrjj5qpee9CdIwksbZtfFknzKWy9Kr81d9EiEHQL2Le
	OEcG0QQQa7HFgVtZbDLurpyIQXZIT7Ca/N7nVQjdBOHzG8js3N1ad910XP6s+gz1
	5XE09yd4FLBq+johPUioXQnPq2bUUIA6pzSNUg4ENGIUt2cNddAHYY6cbln/hGbT
	EBxQYSzf2Rnl4Vc1apAUlE/7vX7mSSwAaPz7OEYDOOsDKNd8775V8n/MeUJWVHE0
	N7DYdeVvUY+crmQTssVDbg==
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=fm2; t=
	1744287953; x=1744374353; bh=DfLCFzu8PFo6+vzQj8Gc87r0NwjsjlrKy6u
	U5YmqphQ=; b=l3umyN0cFDfjTotjlBMG5iCIe4VAoN1y7c+iXMfa6WDB3XRkTWg
	2vw4ShnejKYMVHdVFXPrQrHcvqh/0l0ubOefu79qCsNMxy7SJTxVravLEULviqPQ
	qLA4rDVoFfcelil7cQrnTq69YDzFfuG/AtTH7+VukyJ4JqEOZ2HIWsKgpgxz3ZCb
	c5DPAxrDUJXbrrgiyD6hpyi2VXisvNpfguUvY9yRGz3CzJBi4151o3buOK9FH43G
	5v5YHljhyEVzx4W+zYoByWQqxnqIAsvAc9lj80VPvwCX5CC8VVJfI8cPftdg81Nj
	voE0YAZ5fl6hnppXfl07Ba9AaI+V7EAbUJA==
X-ME-Sender: <xms:0Lj3Z8ktY7_P1wqzjikXR5G5bA6NaQuyktq96T75MXSPd6_4CgZQZA>
    <xme:0Lj3Z70wn2MOf4CIfgY2Vzc_vT0I9WBw-7f1yx1iE86asi-rIw3bDTWcklbWZVDqM
    ao854BRxTVFrQ>
X-ME-Received: <xmr:0Lj3Z6rmLTzfQJuDa1r1-8W8iYSd3mI27PEgKPNukwfi15LKnZeoNcFsKkdq9mWv84JG2ntaNjzBsuuBYKAtcMR_P--b7dUeUA>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvtdekleduucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
    pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
    gvnhhtshculddquddttddmnecujfgurhepfffhvfevuffkfhggtggujgesghdtreertddt
    jeenucfhrhhomhepofgrrhgvkhcuofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuc
    eomhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecu
    ggftrfgrthhtvghrnhepveeujeetgeelleetudeuvefhtefgffejvedtvdfgieevheethe
    elgeeuledvjeevnecuffhomhgrihhnpehgihhtlhgrsgdrtghomhenucevlhhushhtvghr
    ufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhnvh
    hishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhnsggprhgtphhtthhopeeipdhmohgu
    vgepshhmthhpohhuthdprhgtphhtthhopegrnhgurhgvfidrtghoohhpvghrfeestghith
    hrihigrdgtohhmpdhrtghpthhtohepgigvnhdquggvvhgvlheslhhishhtshdrgigvnhhp
    rhhojhgvtghtrdhorhhgpdhrtghpthhtoheprhhoghgvrhdrphgruhestghithhrihigrd
    gtohhmpdhrtghpthhtohepshhsthgrsggvlhhlihhniheskhgvrhhnvghlrdhorhhgpdhr
    tghpthhtohepmhhitghhrghlrdhorhiivghlsegrmhgurdgtohhmpdhrtghpthhtoheprg
    hnthhhohhnhidrphgvrhgrrhgusehvrghtvghsrdhtvggthh
X-ME-Proxy: <xmx:0Lj3Z4leYzLEfn-IKHwNudRyh7NgU_UpCPg3yLUp_qiUABDbaZmvIg>
    <xmx:0Lj3Z60azusxSGmmUiIwhKJovueNXy-neRJD8JwQviX8RszP88_DyQ>
    <xmx:0Lj3Z_tlG7HGJMHMZm7hf1p3sH4QnSewEfR-UBAc_qRQUpAnRkEStQ>
    <xmx:0Lj3Z2V_SybD4T8YusKXpgGADR4AtZXqJOZCRKCSqC2ahFOVe1E9Hg>
    <xmx:0bj3Z90BGw6vuID7fsKDcd6rSq079togZdrLDGdbNYUa7KRgUoppHt2t>
Feedback-ID: i1568416f:Fastmail
Date: Thu, 10 Apr 2025 14:25:49 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: Re: [PATCH 2/6] Clean up Gitlab yaml
Message-ID: <Z_e4zbUVVDrDmFUf@mail-itl>
References: <20250410114628.2060072-1-andrew.cooper3@citrix.com>
 <20250410114628.2060072-3-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="/4Mq+QJ+tWL6h2hY"
Content-Disposition: inline
In-Reply-To: <20250410114628.2060072-3-andrew.cooper3@citrix.com>


--/4Mq+QJ+tWL6h2hY
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Thu, 10 Apr 2025 14:25:49 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: Re: [PATCH 2/6] Clean up Gitlab yaml

On Thu, Apr 10, 2025 at 12:46:24PM +0100, Andrew Cooper wrote:
> Factor out the registry into a common location.  Drop the worflow name, a=
s all
> it does is hide the commit message of the change that triggered the pipel=
ine.
> List all the stages.  Set a default expiry of 1 month.
>=20
> Note all the current jobs as legacy.  Their naming scheme needs changing,=
 and
> we'll use this opportunity to switch formats too.  However, the artefacts=
 need
> to stay using the old name until the final staging-* branch using them is
> phased out.
>=20
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Reviewed-by: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblethingslab.c=
om>

> ---
> CC: Roger Pau Monn=C3=A9 <roger.pau@citrix.com>
> CC: Stefano Stabellini <sstabellini@kernel.org>
> CC: Michal Orzel <michal.orzel@amd.com>
> CC: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblethingslab.com>
> CC: Anthony PERARD <anthony.perard@vates.tech>
>=20
> v2:
>  * Drop the workflow name.
> ---
>  .gitlab-ci.yml | 13 ++++++++++---
>  1 file changed, 10 insertions(+), 3 deletions(-)
>=20
> diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
> index 36ec6a7e1ee5..734f3982c46f 100644
> --- a/.gitlab-ci.yml
> +++ b/.gitlab-ci.yml
> @@ -1,12 +1,16 @@
> -workflow:
> -  name: "xen test artifacts"
> +variables:
> +  REGISTRY: registry.gitlab.com/xen-project/hardware/test-artifacts
> +
> +stages:
> +  - build
> =20
>  .artifacts:
>    stage: build
>    image:
> -    name: registry.gitlab.com/xen-project/hardware/test-artifacts/${CONT=
AINER}
> +    name: ${REGISTRY}/${CONTAINER}
>    artifacts:
>      name: "${CI_JOB_NAME_SLUG}"
> +    expire_in: 1 month
>      paths:
>        - binaries/
>      exclude:
> @@ -19,6 +23,9 @@ workflow:
>    variables:
>      CONTAINER: alpine:x86_64-build
> =20
> +#
> +# The jobs below here are legacy and being phased out.
> +#
>  x86_64-kernel-linux-6.6.56:
>    extends: .x86_64-artifacts
>    script:
> --=20
> 2.39.5
>=20

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

--/4Mq+QJ+tWL6h2hY
Content-Type: application/pgp-signature; name=signature.asc

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmf3uM0ACgkQ24/THMrX
1yxZDAf7B9vcz9oi7ppXQpHd5uBt0JSqvsMWo0Vt9+gq/fxhgjtX3bUnhNVT4mRv
Jn6yDqFjBPg6dLg4nCyhC7a4fJTZDOt4PVP0QAT/nQPyr9H8DflC1JdQhL5/Z72I
+l0wHOpTIFNKWFQovUCcR+pQGE7cgxmzwpWLq2xk7a8wWj7Oi0Q6k7iDXtnaQRs6
Qdgyd8JJLQiZtA+LL7J/3GQDP3m2QTxQTMqiHY7yQCiBDr+qFKErUuFs0cvO39/t
nUwoIOnjzUdWfKg8QnhH/r7NxJk5Ea4QGaPoKiLOsewwv56EmhymzFrkRhqGjKcH
hfoiBjHSex6oGeoTv14Y9SHMGk/ckg==
=vlDd
-----END PGP SIGNATURE-----

--/4Mq+QJ+tWL6h2hY--


From xen-devel-bounces@lists.xenproject.org Thu Apr 10 12:35:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 12:35:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.945615.1343781 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2r7D-0007RX-PF; Thu, 10 Apr 2025 12:34:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 945615.1343781; Thu, 10 Apr 2025 12:34: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 1u2r7D-0007RQ-LJ; Thu, 10 Apr 2025 12:34:43 +0000
Received: by outflank-mailman (input) for mailman id 945615;
 Thu, 10 Apr 2025 12:34: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=w6Mj=W4=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u2r7C-0007RK-AC
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 12:34:42 +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 2be321d1-1608-11f0-9ffb-bf95429c2676;
 Thu, 10 Apr 2025 14:34:40 +0200 (CEST)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-43cf3192f3bso7788805e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 10 Apr 2025 05:34:40 -0700 (PDT)
Received: from [10.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-39d8936129dsm4744963f8f.18.2025.04.10.05.34.39
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 10 Apr 2025 05:34:39 -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: 2be321d1-1608-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744288479; x=1744893279; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=PpSHCRho24KPDS5uDi7c0ZV8GF02LgeuJu5uaKizLoc=;
        b=MZYN3jTND6WDZsQyQ519fFJBmVh/Rt5b5FLO9Wrn+wl/5AVICv7krhi3YkdPzkBY1z
         iuy1hL+aREavfZKiEhVlV/RN5qMz6suOXlc4bBiAaj4+lMM/Wj8i8PHS/bGepbvAzKy/
         lC5DIuQN8wpWq6W8uMS2b1Uor6Ml37dkfuczTsWZaf8DQXzLndtVD5Pu3X80T7OCEjUV
         tVvrHLGCvdPW8XWVmcdXQPGBwvpWPBsNzvL2TnAVHUhmXNOA65B1+3n3ca+iDowUVBOS
         phb+jUvPNbdkivkHJz16Se0Isw9ZL94stLoB096pH2Nne1Y27Il9V1f3cIpeU2zSvBbD
         R2Qw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744288479; x=1744893279;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=PpSHCRho24KPDS5uDi7c0ZV8GF02LgeuJu5uaKizLoc=;
        b=rHGs35J62dzuuFrvvGW+0Tzn7kCaeG+gPw2MzBIq6vdyWocGm2e1lNDvJKkKrQvcjh
         dJ3IQN6eZQPB6Li7iiSs+ctSZBqEzERJXChxfroKQ1PbRcVBGqLgYKaU5WWDpWzYBlxe
         f2PZgFfAWMrZTIiyaAwNljunzOjPETYaWLZHDhXci8yPsGX6oBvxprWETVpG2Cf9L75P
         UV8ejMLXMt2Xf24oaPxBjh50Oppi5JVqttfKEcli0rdyMCfycpJn4BBtcQcnXfeAt+5a
         zKzHpHiXDJkXLR6xS50DOO/8pMcFP1w/ERCXYo7BH1+f82aCJ/HKWxRcJhAuWPyzZVIr
         zryA==
X-Forwarded-Encrypted: i=1; AJvYcCXfHH3FNKJp0cRsdsxoVIEm25CvRBSdILxEvG34sKrGXwA2ojmHLTJC8r26WV3QhE8esQ9wDSuz33A=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwWqPdOIqAE0mIK8zzoYApcdHx4PoSzo/GqpDTl9zIrbgWwkERZ
	Yx5bWfYbaD23Qvnknx0QMPmZY3j9PVkKTtWTz76zoY3jGARuhKVarSCIBhUr4Q==
X-Gm-Gg: ASbGncvuYaObGx6ziEnEP+RY8QNxp590hp5vBvjf3wjb8qYiGMMAsvJ0JXjpsKsdFCO
	VAZ7irKYZenmZteKeizf0hKg5djPlJ4iF8OwK1HCwGOdH8sG3k8Vl19P1OHzDAcNbU9VDTWGAbS
	RUVAikmEehX4j6NZc0PJwfrb9nNRVZ5+QWKdYAbWv/ciaL7iNzAkLbVe1xmlHLtuPO/50SEcmuV
	r6PC4c++3GwMOAHNCBcbC7CmqJCYVwxq1YECLqEMpstqtDYQGUR8vpchlKZ0lOgkdJZejypwn5E
	R0V7u9Au6gNbPYdQwR6G3/6/2XdDce+nstlL8/cXY6G8c75yqC5E0bZlXLDKbc+1d9gAXIHngGt
	9XTxytHPZ2CbsGV3SFeZQcHrAAQ==
X-Google-Smtp-Source: AGHT+IHeU3Y93PZfHnGncFC1YzIUxkvmNw+tc7eMNQoZ62aQL8WGP1I5J59Cqpbp8E6jMSWzlCeIPw==
X-Received: by 2002:a05:600c:4e09:b0:43d:db5:7b21 with SMTP id 5b1f17b1804b1-43f2ffa3bd8mr19047175e9.28.1744288479618;
        Thu, 10 Apr 2025 05:34:39 -0700 (PDT)
Message-ID: <5a18ae61-3ffa-41d1-aa1d-dce4d3ca0381@suse.com>
Date: Thu, 10 Apr 2025 14:34:37 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/8] driver/pci: Get next capability without passing
 caps
To: Jiqian Chen <Jiqian.Chen@amd.com>
Cc: Huang Rui <ray.huang@amd.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20250409064528.405573-1-Jiqian.Chen@amd.com>
 <20250409064528.405573-2-Jiqian.Chen@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: <20250409064528.405573-2-Jiqian.Chen@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 09.04.2025 08:45, Jiqian Chen wrote:
> --- a/xen/drivers/pci/pci.c
> +++ b/xen/drivers/pci/pci.c
> @@ -40,7 +40,7 @@ unsigned int pci_find_cap_offset(pci_sbdf_t sbdf, unsigned int cap)
>  }
>  
>  unsigned int pci_find_next_cap_ttl(pci_sbdf_t sbdf, unsigned int pos,
> -                                   const unsigned int caps[], unsigned int n,
> +                                   const unsigned int *caps, unsigned int n,

I don't follow the need for this change.

> @@ -55,6 +55,10 @@ unsigned int pci_find_next_cap_ttl(pci_sbdf_t sbdf, unsigned int pos,
>  
>          if ( id == 0xff )
>              break;
> +
> +        if ( !caps || n == 0 )
> +            return pos;

Checking n to be zero ought to suffice here? In that case it doesn't matter
what caps is. Plus if n is non-zero, it clearly is an error if caps was NULL.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Apr 10 12:40:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 12:40:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.945629.1343790 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2rCr-0000Zi-GN; Thu, 10 Apr 2025 12:40:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 945629.1343790; Thu, 10 Apr 2025 12:40:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2rCr-0000Zb-DH; Thu, 10 Apr 2025 12:40:33 +0000
Received: by outflank-mailman (input) for mailman id 945629;
 Thu, 10 Apr 2025 12:40:32 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=w6Mj=W4=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u2rCq-0000ZV-G1
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 12:40:32 +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 fca4cae4-1608-11f0-9ffb-bf95429c2676;
 Thu, 10 Apr 2025 14:40:30 +0200 (CEST)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-43ede096d73so5789435e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 10 Apr 2025 05:40:30 -0700 (PDT)
Received: from [10.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-43f207c90a9sm53672295e9.36.2025.04.10.05.40.29
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 10 Apr 2025 05:40:29 -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: fca4cae4-1608-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744288830; x=1744893630; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=AZQ6LGzDmPSRM0zBJjmSPiidfYi7WtPp9OY6skd9ixE=;
        b=gHbtgW0/W5J1vyEGlVvDiRwPIxdJlOAeOfnXvp5wvOK+cgfnBPVvtORv1oGSFr4RbL
         HZ8xUPvuHgxmEyo/6gskDMBkvLkesYCqjzO5SmehUWHhAlBZa3efxAu+nQmvknelzAiu
         Nv5zaI67Hd8ne9X2FLmt0IsNoZv4S6dvM4qBbRrbdI7XMav2WWK6VZAO9yxHsjmeOwQR
         GEBKcxjN+YPSs26o16d5m9ciURfTQbLu3yAHxayjX8Ujkky2fswVqcWi0hTVsBIGCLxY
         TAn+y+phnkgaEx3M9LUgJgLaaIKKfk0noSv27DvPOWX5xSib/mbteg9QkNGYHdQ/OlY0
         k8zA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744288830; x=1744893630;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=AZQ6LGzDmPSRM0zBJjmSPiidfYi7WtPp9OY6skd9ixE=;
        b=BRzsPkHw3v9cSj5cFkywuTtY7XED+6fFlrt9mXCK5IvgXAoRgxNqe6H7nuUTFb/aES
         UR78C/BLzhLT/ZNCu9cNjxBtwCp06yw79BuKR5ECtdkbPAxsYhSNr+9wq/T9a+vgeoJi
         gUBY3BqsIZHqtOskhyGGw9qlYpYSDFK4TXUf1HOa/NP/rxPp5g8oZY49HTcUEolyECV7
         p8/a8Ik+SB/hbxLTSUUv0l4ld3Rin95he54kyHIazfMZv/IgrUJGgNyzxMr0UNzbyequ
         mHbBbtv+qpXRTvVDzotiQ+bYIN4hMvipiLitpBz/nSMq4Yxo3swIljpv71umtSaJPzNp
         7uLg==
X-Forwarded-Encrypted: i=1; AJvYcCWCJGlzEIpt8PadrYGyDCJ12WjJ0Eoq5Ok5gL+NJ4JLsL4/FF729jcpHd4LbhdOwX2cUqK654plJhU=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yyp4nuYtkMFIFxK/+BD/n76PAQRTQcKBs51fl+9fW2maCrvYgWl
	i/oAna6KVWTF4s8HGPfuL+f1UJM5INnW0q1W6FXUwiO+ftl/zAq34ap+3t2l+Q==
X-Gm-Gg: ASbGncsPOcNxwWVOaJ9knVUg13K1pcCsFZsKTSDzjKe42MMba3aK8XzFtkjYB2feRC5
	3wKg0NphuIjldk3uxaCDONEgky7aQdta1Nd0BLKZrjzGjopHxYx9UDzwTOKNV181YuuVZTmbpkE
	/CLDM7yEHNtSGByRVURpXgz/bP6Ow+hxrb0I9qChZajFwUs4Rvkqa1MDoFbQZk2hspJNZ2uKzLk
	bjjVSlUGiVeOptATT+ovOWgU2N6JwGJ9ysN4Jl39+ibwEmxIGaeeEuUAP008AGj1oL2LJO8+W3d
	dkfuKCBTOjNovakrrXKHLegP2fJGBpwHN06KinRu64098LbvBcc3Lwkp5N9hwh6CawVl93+Ib7J
	vgEXEp7gnj/9i6SZgPLmbtzeZajuaB+Yd/ihf
X-Google-Smtp-Source: AGHT+IHBuJcl+HtHa6jwSmqeQdIO5FGpGlsBQXcdhC24wgm40VVxuSXJ7PRJmbPO9mionuRV+MwDJw==
X-Received: by 2002:a05:600c:a43:b0:43d:97ea:2f4 with SMTP id 5b1f17b1804b1-43f2fedd1e5mr23365915e9.12.1744288829921;
        Thu, 10 Apr 2025 05:40:29 -0700 (PDT)
Message-ID: <7e89babb-ea6f-4434-a90b-19c2d12cc58d@suse.com>
Date: Thu, 10 Apr 2025 14:40:28 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/8] vpci/header: Emulate legacy capability list for
 host
To: Jiqian Chen <Jiqian.Chen@amd.com>
Cc: Huang Rui <ray.huang@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
References: <20250409064528.405573-1-Jiqian.Chen@amd.com>
 <20250409064528.405573-3-Jiqian.Chen@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: <20250409064528.405573-3-Jiqian.Chen@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 09.04.2025 08:45, Jiqian Chen wrote:
> Current logic of init_header() only emulates legacy capability list
> for guest, expand it to emulate for host too. So that it will be
> easy to hide a capability whose initialization fails and no need
> to distinguish host or guest.

Before I (maybe) look at the patch as a hole: When you say "guest" you
mean "DomU" (which is a common pair of synonyms we use), whereas when
you say "host" you mean "Dom0"? The latter is not a common pair of
synonyms; "host" generally covers the entire system, including Xen and
all domains. See e.g. wording that we use in XSAs.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Apr 10 12:53:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 12:53:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.945642.1343809 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2rOp-0005yk-Ns; Thu, 10 Apr 2025 12:52:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 945642.1343809; Thu, 10 Apr 2025 12:52: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 1u2rOp-0005yd-LH; Thu, 10 Apr 2025 12:52:55 +0000
Received: by outflank-mailman (input) for mailman id 945642;
 Thu, 10 Apr 2025 12:52: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=ged3=W4=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u2rOn-0005y7-Lg
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 12:52:53 +0000
Received: from NAM11-CO1-obe.outbound.protection.outlook.com
 (mail-co1nam11on20619.outbound.protection.outlook.com
 [2a01:111:f403:2416::619])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b4b1552a-160a-11f0-9ffb-bf95429c2676;
 Thu, 10 Apr 2025 14:52:50 +0200 (CEST)
Received: from SA0PR12CA0024.namprd12.prod.outlook.com (2603:10b6:806:6f::29)
 by PH7PR12MB7116.namprd12.prod.outlook.com (2603:10b6:510:1ef::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.28; Thu, 10 Apr
 2025 12:52:43 +0000
Received: from SN1PEPF0002BA4C.namprd03.prod.outlook.com
 (2603:10b6:806:6f:cafe::f3) by SA0PR12CA0024.outlook.office365.com
 (2603:10b6:806:6f::29) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.22 via Frontend Transport; Thu,
 10 Apr 2025 12:52:43 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SN1PEPF0002BA4C.mail.protection.outlook.com (10.167.242.69) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8632.13 via Frontend Transport; Thu, 10 Apr 2025 12:52:42 +0000
Received: from localhost (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; Thu, 10 Apr
 2025 07:52:40 -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: b4b1552a-160a-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=gG4xWCYhzGIUtATGjEwADUmbFUkLoqhK+lgM0aAh0dIGwfRwE4nXEa+dzxbt/QLnJS7SC7NclRdb8egB6jAYaomr+WeJSPbBLMdAsVUmcItWTyYLHHTZPkx375iJXOHIeVP6aC7fENPFMO9oSv5OiW9a35w5tsGdITcg3kNNNfFzzR/cM79WcsxXzDhTI8Yiym6hGC/y9wVibCAySPnWbr8mVLTv/fvkhdmlMWNPbZcfJkZ9rpkh99IWj7sOMujtg3+jua9MKdXGQCETHCS0kLuKQYxGH1gDjvkEarCR1w0CDwZw7onK2+F8YG+0H9jby7odi7yOq+i33Ka+OYG0jA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=lI4Kld3KQgnBHa/b/bXDDUfEGbeU5VcJ1fbGWpimjCA=;
 b=Gc8wKUk4TXth99s3kd7GPDIKZqoyCRa6GDfdmeVLGrADDKw4WkTXFDo+btQVpmmJzgBax4RpVtVDDE1G26OCbEZIQsIgUvhXjcqUoIfXOAxDvoclqHlR9i8UsJnlkVTUgsJLLLsNhpfk9vqqHNDMH4wggzYauyrtmYVYqjJ95PYRhHuIFuDMvWnLzqO91pPuxuAC7c4nVysLCeEfcrR5iwCh3g5MZV5Mfqiw1Noy+Vfl0UFgWU7VB09rR1v/K/dQgD06SFrY9L17IG2rEYceZ5V2LIcHR+6dORICS8pRlajtnAu2MYhLqabCUJCLR3fmoxdNo7QGyEYcFjy0RTyO1A==
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=lI4Kld3KQgnBHa/b/bXDDUfEGbeU5VcJ1fbGWpimjCA=;
 b=LfM2Nk/vIpwg2kz+cxFi0FzMLC0/GU2B5c8UaC9Hrw2J7EtIPsuWFabZudDdq/PQZ0mQNYHYxXDwyoulf2E5E+C2oVhQ+B5WuiieDP8HkxMy1Rl1/VHTBv0oRCIUJJT+1GrcktaDwXSfqshSN8zmK/mrkroRANQ/I6K7LHypWeU=
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
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Thu, 10 Apr 2025 13:52:39 +0100
Message-ID: <D92Z1LECR2VA.3FW5H7ZIRVXU7@amd.com>
From: Alejandro Vallejo <agarciav@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "Daniel P. Smith" <dpsmith@apertussolutions.com>, Jason Andryuk
	<jason.andryuk@amd.com>, Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	"Stefano Stabellini" <sstabellini@kernel.org>, Michal Orzel
	<michal.orzel@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>
Subject: Re: [PATCH v3 05/16] kconfig: introduce domain builder config
 option
X-Mailer: aerc 0.20.1
References: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-6-agarciav@amd.com>
 <d61f5fbc-8e28-454b-9931-c267d67cb491@suse.com>
In-Reply-To: <d61f5fbc-8e28-454b-9931-c267d67cb491@suse.com>
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: SN1PEPF0002BA4C:EE_|PH7PR12MB7116:EE_
X-MS-Office365-Filtering-Correlation-Id: 672fa18d-69d2-46fd-5d55-08dd782e9522
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?ZjVtZGwvOUpISU1TQWx5ampHV21PMi9CSXlrTmh1ZmJGOEMwU2xIWjBROXN3?=
 =?utf-8?B?T3BPNkNTNDRXazZMS1lmVi9hTGwyTUNOeTV3M2JmckVQMkk1Y0FZeTZSZnRZ?=
 =?utf-8?B?Uk9meG5ZMjZUc1BjUzEzOTlZc1MzRnlxM29laE5qMndjdVROLzZnMElDSHBu?=
 =?utf-8?B?WWMwY285blNHeGpPcXRTTmJvT3FDMlRIN3JSdjZMMnlyR0trcE9SUUZ2Zjl3?=
 =?utf-8?B?dHByUGNpWHFQTmJoTWVSd0s0a1hNcWdFK2I0T3J0Z1NPYnk1UUlGWm5Kd0Mr?=
 =?utf-8?B?VHlqSlE2SEx4WVhlb2JpTyt6R3NvMm4ydVllbzhob0svcmduWTNKNVR5LytX?=
 =?utf-8?B?bXdsNHJ1dGsvb09HRTd3LzdCaXZ0WjA5QStCRDN3c1BWMDFIdWdIUnNpVmFn?=
 =?utf-8?B?RG0yTStRak9kZjkvQjV1dXRJalg2VGt2cWJKaVFFVTdpSmNwTE5PNm5xUG45?=
 =?utf-8?B?SGtCTXFtQ0lDcThONDdjTEx6a0xPQjg3bHViWGZqaUp5QmNFc3ZmUmlwSjIx?=
 =?utf-8?B?MituRy9jMklzL0JTUE5CamtzbVlqMmJkUUdQMlBzOHFtU1dQZWZnb3U3amR2?=
 =?utf-8?B?YU9OVll2VHU2UkttdEdBVS9OR2IvMlA3c2tqQWxZam9OdGNLMzIzQnVjTDdY?=
 =?utf-8?B?WUtBUmd5MmpPUldrNDcwTmU3Ni9CdTVKb3BKK0V1Yy9XcmUrMmZKU0lsSW5Y?=
 =?utf-8?B?eFM4d3VIaFpnOCtNSURId0ZrckxLam8zZzVPUUdCN2dBcXpwRHRKVVhubWpO?=
 =?utf-8?B?eTB0Y2RsdXMwbi9yVVk2ZC9PMjVabld4MktNeHZzT2tNNTc5WkRKQkhpSXZU?=
 =?utf-8?B?V3ZLNVNPUkZRYzg1cW1mSllPaWtTRXQ5QUZvd0tENlZ2T3RUa0ZncDYvZk9Q?=
 =?utf-8?B?aFBwMW1WeEh2bmdvanJLc3lzWlhaNFhhRTl2QkVJNEJmQ3FBakdCeGJjWUht?=
 =?utf-8?B?SUxyNlJvdTVRNlBuVThzbEMxMzE2Q09lYVk4MUx5aHpaUnFGMUREeWorRDJH?=
 =?utf-8?B?N0xzclZBdlE5U3lGeFJFZVVqOHhkRkxBdElWMG1JN3NtUmFBaytXaE8yNjh2?=
 =?utf-8?B?c1RTZFZ3Qy9EZVV2c0pIL0MwemhrRHpvaWsxN3VqT1VWbHRSMHRqNnhQOC9T?=
 =?utf-8?B?dGNBeEpDM3ArWkh5SzVpUW84YjVkVnlPdjRldkJweUZPWjRXUHpGR1VWRDBk?=
 =?utf-8?B?bFc3eEZqTGlORldMeTFFRmZjaWkwa09GbkJxT0FtNFMya0ZKclZKZWRyVWtm?=
 =?utf-8?B?VTVWcDlZdVlTRmdmb2RabUxrTjhQVjB5c0ZWMU00aTJTTWpmTFJjOC9vTmVr?=
 =?utf-8?B?WGJpdEthVE1IRkJwUUFQVFRUYTNSVjBJeHhKeXdrZUJDWEpUWit3azNRenhO?=
 =?utf-8?B?Y1h3RHVRR3ZZQS9iVCtod1hLcUxjN1ViRi9vNEw0blQ5ZlpXanRGZk9kZ1JM?=
 =?utf-8?B?VVhCTVVWbDllZ1hkVUU5ajI2K0draitLUy9JdGc2Wit5Qllkek5EbUppcExJ?=
 =?utf-8?B?cVNXT0lwRFJYakZZckVERmZZQ01UU2E4TFMzbUxpQ2R0TFkwS25NelBlcHN0?=
 =?utf-8?B?NjZjVnJlaDBxZklpOUU0b3Iwb0s1N0ZxZkp0Q2RrUWUwbWU4QS9INFBURHlW?=
 =?utf-8?B?WHFUL21lTzg2ZExkZE8rUUJDRmlFN0VLZXJrV2ZyenhqcVp3VjZkWWt4VHFs?=
 =?utf-8?B?N3gwQ3drdkduN0MzL243eXBLdUtHUldVbXA3QjRKTlNJQWVSZjdwVHZYVkU0?=
 =?utf-8?B?dkxkRDBucVJCb29nVEs5YW1LR0lyTThwelpyS0RUS3J3SlBnakZzUzJzWmds?=
 =?utf-8?B?OStHcGVnTXpFSHJnR3g0SFZSWDlEUzJJY2ZEaWR1RldSZjUyMmQyY0x1OVBp?=
 =?utf-8?B?aU5TT042aVIyVnIyZnpTTE02N3RQcVJUSWVTc3Q2a3FtMWlxcFp3cFBwVkZZ?=
 =?utf-8?B?a09QUU1pQ3RlWEFWZXlvSVAxK3FhQWYvU3lITVpHaUlNU3JEeEJ4VGg2QzEw?=
 =?utf-8?B?WU5CN3dreEVjaUR4bXFJTDh1YWR5Y20zeXdNSE5KY0FudkNYRVAxZGppNTZN?=
 =?utf-8?Q?PHPk3o?=
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: 10 Apr 2025 12:52:42.1739
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 672fa18d-69d2-46fd-5d55-08dd782e9522
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:
	SN1PEPF0002BA4C.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB7116

On Thu Apr 10, 2025 at 10:08 AM BST, Jan Beulich wrote:
> On 08.04.2025 18:07, Alejandro Vallejo wrote:
>> --- /dev/null
>> +++ b/xen/arch/x86/domain-builder/Kconfig
>
> This really looks to be the first patch where it needs settling on whethe=
r
> all of this is to live under arch/x86/. If it is to, the reasons need wri=
ting
> down somewhere - maybe not here, but at least in the cover letter.

I need to think about it. I haven't yet reviewed all the history about
the series and the related discussions on the matter. Moving this to
common code ought to be simple enough, but merging dom0less into it
seems like a pretty big undertaking. Presumably you merely mean the code
location and the scope of the Kconfig?

>
>> @@ -0,0 +1,15 @@
>> +
>> +menu "Domain Builder Features"
>> +
>> +config DOMAIN_BUILDER
>> +	bool "Domain builder (UNSUPPORTED)" if UNSUPPORTED
>> +	select LIB_DEVICE_TREE
>
> Was this meant to be LIBFDT?
>
> Jan

Yes, the next patch turns it into LIBFDT. I spent more than I should've
wondering "How does the final series even work at all?" before looking
ahead and noticing this select was adjusted on the wrong patch.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Thu Apr 10 12:53:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 12:53:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.945641.1343800 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2rOl-0005jB-Hx; Thu, 10 Apr 2025 12:52:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 945641.1343800; Thu, 10 Apr 2025 12: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 1u2rOl-0005j4-EL; Thu, 10 Apr 2025 12:52:51 +0000
Received: by outflank-mailman (input) for mailman id 945641;
 Thu, 10 Apr 2025 12:52:49 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=w6Mj=W4=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u2rOj-0005iy-UX
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 12:52:49 +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 b1ab2039-160a-11f0-9eac-5ba50f476ded;
 Thu, 10 Apr 2025 14:52:43 +0200 (CEST)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-43cf06eabdaso6949495e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 10 Apr 2025 05:52:43 -0700 (PDT)
Received: from [10.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-43f233a273fsm50147495e9.9.2025.04.10.05.52.42
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 10 Apr 2025 05:52:42 -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: b1ab2039-160a-11f0-9eac-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744289563; x=1744894363; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ZfgM1l/4dmks/gLxsp9QrtjrUBAsLktsGldJ/L0y2NA=;
        b=gW+ganqIx3VCGuhnISo1Ejksw/QJMpxztgPO64nFp6wRFTjbZfUHHhDxhXmV6CjL8T
         0TIGmhpsVSQiiW5V744SJE+csmot7+nsL4OXhbV8HO3N3Xyx9Oz0fK/UbX4aVU8SYk6x
         VQDK2OUNDfw67aWfQcIC0pknqH23r1vm4Njc+Z8mQjy+R3CP6QqwOtMViD0DAsg8sJdr
         cJ6ObWBDLAJKu2C9goLWbkC++OcLyJ6UbbuCVWoEIpN+sn45kU1Dha2A8HPReDUa5E8U
         6ntbQAif8iMmhi8kxU8NhHSN4HoMuwLqKw6LM7HFluDYsTBLfCzIRr2CiZ8lOjy7DJwi
         3kfw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744289563; x=1744894363;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ZfgM1l/4dmks/gLxsp9QrtjrUBAsLktsGldJ/L0y2NA=;
        b=WdTQ3k+tVw0H/GqOkhyOAx+fOFlkEkFznScAXm+0KHB7AhI4t9HGUluktdF0AorTTT
         4IwOKDKgONVPuPZEvxqNrEmkG824JfidyzIMWcJzwEsR7RL0OSkNZCmPS0/hWVVjzlsA
         rauSfxeFLi0H+vWENZr/1D00U8DsAs/am7Sk63NhP9mT2biG/Wq40iHCJwikWj3omT0m
         imeHBM6ejhf8XEwlRSdbU1v20qKGAFROktGu2dGPJIusHgHCkEa3B9sIR0/wpzSAaJ6E
         9/s04FhV++ZnOl/sqJUT/0xInODAdhlsjhg0yIFIx/AzgE3qkeIHIbar/1my8gk6VmXF
         Ct6Q==
X-Forwarded-Encrypted: i=1; AJvYcCXbFGp4IsXUCvHejkQrfQnPXBJdiiIjDrm40Id83J8tl1+Yrqs1VQvi8RPeUFNX/V32cgtVUXDZEg0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyrjKourTnI5b1RUPdL9acSgu5ZhZdAPO0CDFSnADOSAblWEFv0
	jBcdXz0zZRNJFWQ2+x+3ebgjbDBV0n+RgVTQa0uxAdJkHKUE++mLcF0Iuq/WjA==
X-Gm-Gg: ASbGncsV8zVgvElsdJGLD8lADLqeSYkLVhiD9CG0lyHKHB0gdfEsIgsVEodzY3SuJAk
	9Bg6v89YI/6LDUrLUaX2Fp6T+haiANTzv57iND+oBsSIS1CY6m3BF6OXYExtjBY6cZnkWgTddgX
	rD+96VsjzSTBGnp+qy6H8WeO9G709BEh3NwYk/t4HPu94sJsEYjeukZ5Myo7rgv1eaCG8x1sV32
	7whfnjdkfMYZ34suApEUhbySsM3uoX5EjbLAGm/vqVpaEtg+Ds//8qK187ZbL+YSCszhRwoAtzq
	bs7NP0Yvz6CkjSy18dGaaM1rvstQl+dxcBY/h41gJtYV6Uf139RYd+bzgqrrCT8IrOc8Mpj84Wx
	y5tLAUZGlK0KOiVTDsQG1PUL5gA==
X-Google-Smtp-Source: AGHT+IEOvJkiigP6QOYZx/eZD8GkV7eMy3tM/VHVtVelGX34hLwm+/ZSV71vMpd6Ig62fmkxQSwgmQ==
X-Received: by 2002:a05:6000:40c9:b0:391:2d76:baaa with SMTP id ffacd0b85a97d-39d8f4d3a7cmr2251782f8f.46.1744289563050;
        Thu, 10 Apr 2025 05:52:43 -0700 (PDT)
Message-ID: <7f26a9cb-a685-4a2a-a470-8c5e94ddc31e@suse.com>
Date: Thu, 10 Apr 2025 14:52:41 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 01/14] xen/riscv: implement get_s_time()
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1744126720.git.oleksii.kurochko@gmail.com>
 <e503aee3ef743210a8188a7da9e70a169dec1287.1744126720.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: <e503aee3ef743210a8188a7da9e70a169dec1287.1744126720.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.04.2025 17:57, Oleksii Kurochko wrote:
> @@ -23,6 +24,11 @@ static inline cycles_t get_cycles(void)
>      return csr_read(CSR_TIME);
>  }
>  
> +static inline s_time_t ticks_to_ns(uint64_t ticks)
> +{
> +    return muldiv64(ticks, SECONDS(1), 1000 * cpu_khz);
> +}

Why the extra multiplication by 1000? I.e. why not
"muldiv64(ticks, MILLISECONDS(1), cpu_khz)", getting away with just one
multiplication and a reduced risk of encountering intermediate overflow
(affecting only hypothetical above 4THz CPUs then)?

> --- a/xen/arch/riscv/time.c
> +++ b/xen/arch/riscv/time.c
> @@ -4,10 +4,17 @@
>  #include <xen/init.h>
>  #include <xen/lib.h>
>  #include <xen/sections.h>
> +#include <xen/types.h>
>  
>  unsigned long __ro_after_init cpu_khz; /* CPU clock frequency in kHz. */
>  uint64_t __ro_after_init boot_clock_cycles;
>  
> +s_time_t get_s_time(void)
> +{
> +    uint64_t ticks = get_cycles() - boot_clock_cycles;
> +    return ticks_to_ns(ticks);

Nit: Blank line between declaration(s) and statement(s) please, as well as
ahead of the main "return" of a function.

Happy to make both adjustments upon committing, so long as you agree; then:
Reviewed-by: Jan Beulich <jbeulich@suse.com>

Jan


From xen-devel-bounces@lists.xenproject.org Thu Apr 10 12:57:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 12:57:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.945662.1343819 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2rSx-0007LI-7m; Thu, 10 Apr 2025 12:57:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 945662.1343819; Thu, 10 Apr 2025 12:57: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 1u2rSx-0007LB-59; Thu, 10 Apr 2025 12:57:11 +0000
Received: by outflank-mailman (input) for mailman id 945662;
 Thu, 10 Apr 2025 12:57: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=w6Mj=W4=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u2rSv-0007L5-On
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 12:57:09 +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 4eb20abf-160b-11f0-9ffb-bf95429c2676;
 Thu, 10 Apr 2025 14:57:07 +0200 (CEST)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-43ede096d73so5907315e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 10 Apr 2025 05:57:07 -0700 (PDT)
Received: from [10.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-43f235a5d82sm51392595e9.37.2025.04.10.05.57.05
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 10 Apr 2025 05:57: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: 4eb20abf-160b-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744289826; x=1744894626; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=t37rVdDE6IVN360bNct2aeXWCt8oeno05sRf0qm9MIU=;
        b=f7q36OvQz196RymSvfDwftNoCToWsotEU0gRZJ0SQDi3JHAW9ruN7+LXu1l1QG0w58
         JFPJGlDeRV1RUvS9p2TQ7fadNFvxJP8T35lZPxNgrkuvUq9xK/BpmP36m8p+2XX/l/rQ
         tE/Z8bH8RcS0RZVNVpfzqjIz9rsjbckM/EhWG0PhJY+zdCoHU3XPJg2xCWb9O5sW40+R
         fsqpTTX39RetPvkGUgNEos1eskfIM1onFUmb4HkLpxFkbKbKnfv92weA6eg27bIHqOPA
         RxVud7Z0FV/44JPtnWYio//eB3fjstTnz5+0HSArJbWtBXgD7g/L5gPuftrLOEvuS5Sj
         xp2g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744289826; x=1744894626;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=t37rVdDE6IVN360bNct2aeXWCt8oeno05sRf0qm9MIU=;
        b=FJHoXpGtOR9h3qIAeSG1qWCoatYFT7bbWmCqZL5bZQ5CEuiJ4P5l5HmLzXIkzCkqbl
         Z3t6gO1LC3B6KRT3vRupPh1ErSAtOWe8jKhOrAwIxsY5CJfhduda6cxOOrLcQ/AhI/9P
         oANt7p8R1S42BBUhhAOtKSdHTuVufDZKXk8+DglvGQS0EYk6d+k7lpzjiMqj3InNpEvi
         RpzkNjKuyj+Vuzl5/Yqo67lUv6HW/Vypsf4+rKys/wc093Cw62Elgj6opU+w8BGzbtVq
         qFa8d8HhSyZMMqdxvNd8/i/yw6lEjlxhxUbslYdUbL00qQz8X135TH8iH3hy0sYNi34L
         h5Bg==
X-Forwarded-Encrypted: i=1; AJvYcCUR5ko4AtuEV27P1DIpNEWWdlfep7mnusagIKdr9xV0QECeWDXBcTH46th5og1nFAl+sg1U2/0m2hM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwTMtymOE0jg08986yXW30f3031xPZ2f+4gmlHxWny9+9Mhoo44
	hCAymjMGVPhP7wgZXOAxQXMvnZeB+5cg+XD3TbGlzG+er5SVJqf/8uS+DRQYpw==
X-Gm-Gg: ASbGncsrMDRFBtCUfpFlvr1rVhoZ20/nryyafryjD+16Isu1yfprFKsRKYiXp1Y7dub
	YVj/Y5SeC+ELjWxi7Dv2bQ1NO0J3a/5j1O1kcQqkewUQjVyrV5P1cmMnZUewXsukS8Lj9I+Q9R5
	ZWHZBZ28HHU8RbfeopGWVSbrkZ/G+UxQ37Qx4zcEshR7TAxT2cK9QsFfaAkf7txoz0vGQrJ+iDl
	mtxakms0hub8oiFHl14R52upw2C00eCPSBspSalgcfwhr7GWI5Rd0kegyJ6gNPdjHW+MVrwZ0ZO
	FeNTWely3FUKPNHw3TPq16jXPTW6TCTTEoxcm+iNth/TqmJ59g/UsHnFo5kmQ1kUDXiQ9J3Nbwg
	Dhyx3QE/nrpqaiVmppQq+9F8zUA==
X-Google-Smtp-Source: AGHT+IGMd1IWHnpfhoFlx3N9wTsAkDG9PcbHScfDXyYccZtOk1XqNHHSyFuc0REzsdencLa1We9iYQ==
X-Received: by 2002:a05:600c:1e0e:b0:43d:7de:16e3 with SMTP id 5b1f17b1804b1-43f2ff9b182mr21621585e9.24.1744289826559;
        Thu, 10 Apr 2025 05:57:06 -0700 (PDT)
Message-ID: <13ab7e75-1c2c-499c-9174-047a319a3106@suse.com>
Date: Thu, 10 Apr 2025 14:57:04 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 05/16] kconfig: introduce domain builder config option
To: Alejandro Vallejo <agarciav@amd.com>
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Jason Andryuk <jason.andryuk@amd.com>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Michal Orzel <michal.orzel@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: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-6-agarciav@amd.com>
 <d61f5fbc-8e28-454b-9931-c267d67cb491@suse.com>
 <D92Z1LECR2VA.3FW5H7ZIRVXU7@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: <D92Z1LECR2VA.3FW5H7ZIRVXU7@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 10.04.2025 14:52, Alejandro Vallejo wrote:
> On Thu Apr 10, 2025 at 10:08 AM BST, Jan Beulich wrote:
>> On 08.04.2025 18:07, Alejandro Vallejo wrote:
>>> --- /dev/null
>>> +++ b/xen/arch/x86/domain-builder/Kconfig
>>
>> This really looks to be the first patch where it needs settling on whether
>> all of this is to live under arch/x86/. If it is to, the reasons need writing
>> down somewhere - maybe not here, but at least in the cover letter.
> 
> I need to think about it. I haven't yet reviewed all the history about
> the series and the related discussions on the matter. Moving this to
> common code ought to be simple enough, but merging dom0less into it
> seems like a pretty big undertaking. Presumably you merely mean the code
> location and the scope of the Kconfig?

Code location only: Yes, definitely. Kconfig: The scope would presumably still
be x86-only, until e.g. Arm was enabled, too.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Apr 10 13:02:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 13:02:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.945679.1343830 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2rXm-0001Pc-Ug; Thu, 10 Apr 2025 13:02:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 945679.1343830; Thu, 10 Apr 2025 13:02: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 1u2rXm-0001PV-Qj; Thu, 10 Apr 2025 13:02:10 +0000
Received: by outflank-mailman (input) for mailman id 945679;
 Thu, 10 Apr 2025 13:02: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=ged3=W4=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u2rXl-00016o-Rj
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 13:02:09 +0000
Received: from NAM02-SN1-obe.outbound.protection.outlook.com
 (mail-sn1nam02on20614.outbound.protection.outlook.com
 [2a01:111:f403:2406::614])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 00ea8bc6-160c-11f0-9ffb-bf95429c2676;
 Thu, 10 Apr 2025 15:02:08 +0200 (CEST)
Received: from MN2PR15CA0047.namprd15.prod.outlook.com (2603:10b6:208:237::16)
 by CY5PR12MB6108.namprd12.prod.outlook.com (2603:10b6:930:27::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.23; Thu, 10 Apr
 2025 13:02:01 +0000
Received: from BL02EPF0002992C.namprd02.prod.outlook.com
 (2603:10b6:208:237:cafe::f9) by MN2PR15CA0047.outlook.office365.com
 (2603:10b6:208:237::16) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.24 via Frontend Transport; Thu,
 10 Apr 2025 13:02:01 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BL02EPF0002992C.mail.protection.outlook.com (10.167.249.57) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8632.13 via Frontend Transport; Thu, 10 Apr 2025 13:02:01 +0000
Received: from localhost (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; Thu, 10 Apr
 2025 08:01:57 -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: 00ea8bc6-160c-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Ttb1e2N6CtlB9XawppFJqpqUe+BUjXYUCapB6c0bEmDZ4WTdg5lLQgEXMOJLBJkzVz8dQOiz4kbG0lKPin0r/6mSdnlCQeoOdoQNlVvfJqOOtHWsImGG2I2yONAFzkQ3iCZgi1LRzlUnygRdbXhSAPdjq3vLcerF9ZgBitCJa1ELnXLEeLMtagJpg4tbP/rxTkB/dcUYB0GV/CnXuNPidnlBWyo1w5QpdeUgRzbxMA+qQxSoTeyjYCPKB4KkWMGHdAjkB4QsK/PDwq6ogH6UoLY2ZSK7jHiJfEH+RjGHOZeVDp0dHoDf8Ssiylnk7p1v5Gybds+95PfBAyYlkMuZ/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=qkL8bTZqRSzEGJBealhttelx2wo1+uKrhCu0Gd44Rz8=;
 b=rbDkce9a6PYLqtQKIUgazBm6bIYbQu+vavb2FoCE7TU5b4fRaHOC5jD4Bkux65K1FIbvCkrLkKHd1Cl6ZauNMqE2wnl7suy8p5tPHrr/TaJc5ASYBKveFeCGZN3Yu2mvwwW0IAk8XLCzVj+t1dxtX420L8rofAOrjfmkuA078EemR0+pwHAPT4B7J8zzfWi+1txwFR9iVdV1ChHGiSvUfd4A57tVpFJclcbJVmQzm2bKBJx3LwHgB5wEsVhv/GVBXz0Ij31Fd3L/bJh1BPXbknYlEPJKLOOsIkb1jXQ3MiCoyVHa2woGNQ6BZW2Srfh49+BJLP5tfgU0xPvL18nbvw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=proton.me 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=qkL8bTZqRSzEGJBealhttelx2wo1+uKrhCu0Gd44Rz8=;
 b=QyMwTWC+GHWKwx7pycfLthKCWyi3/kb3l5zrZ2Z11f091fG7+50DmdWZZjcDAsl0ARb0BFgIerbfqWhDM2p5+5BvL4XejeN8sKR9iuoujRcbumQ6eTnKhvqOv32QPEnQyQxgY6ZYoTG3ik3FmLGRbETbub4iLvlJ9KlMyF9AuSA=
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
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Thu, 10 Apr 2025 14:01:51 +0100
Message-ID: <D92Z8N1RKSXP.U9UMCBJ6LZ9D@amd.com>
CC: <xen-devel@lists.xenproject.org>, "Daniel P. Smith"
	<dpsmith@apertussolutions.com>, Jason Andryuk <jason.andryuk@amd.com>, "Xenia
 Ragiadakou" <xenia.ragiadakou@amd.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Michal Orzel <michal.orzel@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>
Subject: Re: [PATCH v3 06/16] x86/hyperlaunch: introduce the domain builder
From: Alejandro Vallejo <agarciav@amd.com>
To: Denis Mukhin <dmkhn@proton.me>
X-Mailer: aerc 0.20.1
References: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-7-agarciav@amd.com>
 <FxuO_b3q9bY4mPUG3KmuO_YTqqsPhI1sMXykQ5UkxaLzhMlAoAZtQKzl9puHPW29hxCx_Fm1y_YfmBquI1Cm0QA0Y3TKYTy4waHKKaODj9c=@proton.me>
In-Reply-To: <FxuO_b3q9bY4mPUG3KmuO_YTqqsPhI1sMXykQ5UkxaLzhMlAoAZtQKzl9puHPW29hxCx_Fm1y_YfmBquI1Cm0QA0Y3TKYTy4waHKKaODj9c=@proton.me>
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: BL02EPF0002992C:EE_|CY5PR12MB6108:EE_
X-MS-Office365-Filtering-Correlation-Id: f9ae784e-1f9d-4b59-8ceb-08dd782fe271
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|376014|36860700013|13003099007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?ZlBNZjlGdG0wK1F2UmlzaVFZUldRb0U0NzA3UUpIZzV1Rk1pN2ZWNFVxOVNI?=
 =?utf-8?B?cGlCd0JpUDFyM2t0Q25sR1BSYXhuRHJ1VTlxZnI5V0daT0Z3NmpRU0YvUTFo?=
 =?utf-8?B?dUp1NVJCOWsvN1A5MUJwU3hmeUdFOS9IOFB6c2Z3ZnZER0xqQy9tTEFxOXNB?=
 =?utf-8?B?N1ZjeGdXOW9Pd3J2RXpoYnVmUjk4QWJYeXRLZnlBRHNWV1dGQTZwQVp3ODhQ?=
 =?utf-8?B?M0NKd0xmbFJpdkNaZ2FDbHMzU2NLWEQ4clEyVk1yajEyM1c3UDdaY1lZTy9n?=
 =?utf-8?B?NXcyVk9Ranl4SGFRdURPQURHK3pXNFB3RWxCd29iSk5rNjRRcHVQTjNQcGJr?=
 =?utf-8?B?dzM4cThjazI5UlZnQmhsT25Qd0xhVTJoVmpqNG9HUndVam5Xb0Nud1hUMW9X?=
 =?utf-8?B?eWM0MFhqQjYzS0EyQVVQa3JrYXRaM0tUQXBOYkNZWWxCZW9EVjdsRC9nU015?=
 =?utf-8?B?RzhhSnZvTVZWd0hhT2VBcVhwZWxiYy80TVBIZDR4ZndQMmlOdXd4S1ZNZ0xY?=
 =?utf-8?B?U3pJaW53NzlIUXg2c1RndUNCZ3QzSWRweE5Tci95ejRXSVZIMktiSEVQMVNo?=
 =?utf-8?B?RFpQT3FkY0xBTUFvZmJmOHZSbVNENWhvUTN1VnFjeE0ybzZueXRPbXUyYy9s?=
 =?utf-8?B?cFNmamFkb3B0ZWFrdk1OMllSRGw0UVNsQThoZ2t1YVN5WEpzeVZhV1JuMmFG?=
 =?utf-8?B?SVpoTnJ0eXRFZ0xMMDBRbU9mTTlDUXJYSi91SWNLUjRHa3ZuZG0zeTQvNmt0?=
 =?utf-8?B?TzVla3BzRURvSElKbmRFT25kOUs2akhUUDZsck5VTGQyaExkU29ucUlNNUUx?=
 =?utf-8?B?a21pamRZd0xUZTl3TFU2WGRpNjRGT0N3MDVYbnhEOXd6VVZWL1VLbmVOT29V?=
 =?utf-8?B?M3ZoUlU1V2dCUmhvNkNtenN5amtzSUhIZUt4UWxFMGROcHB3Yk9sT2plT3NW?=
 =?utf-8?B?TEZ2ckQrd3NGT2dkVHFPRHRObGlEWjUvMzhPUDBEek9qVURjTG84eEUveE9G?=
 =?utf-8?B?UFhxRWhsdkNJWUdZUmN3ZDVDRkNHemVnakhVaWZ3RjA5RE5xMC95cWlnU0ha?=
 =?utf-8?B?bFJFK0F0S0xqNXNobERveTB4SDJ0QW9hUnBzcWpLU2ovWllyUE1rU0pWaUFE?=
 =?utf-8?B?U1hhQzU0WUt4UkxDS29odVVjSFRVejZBUVM0eGgzdHRyZWlxT2JZM24xL0hJ?=
 =?utf-8?B?VXVXd1ZFU0I0WlhIODhMRWswWTdCc0Jrak1LWnpHUXB5V2x3dUQzVDlENkM1?=
 =?utf-8?B?YmFQQjRRKytDZENHSFkwNEl1bGJVWHIxelNHcklpZWxTWUNvRXJ5dG45cHhQ?=
 =?utf-8?B?L0pHc1Y4ZjJwQlRQWUlhR2hjWStkdEtiRkZRTjRaRjJuMWdhMzJkcVFWMzgr?=
 =?utf-8?B?SWxXVTBxemdzY2ZKMGIrL3VZZkh3TDFLS29nRGJJbC9RM2Z0KytYbHQ5WDdF?=
 =?utf-8?B?cTB0czNEQ3ErUjJ3V1BWcVBzTy9GK2hDd0xQNitwRjJBcHFRdTdOWkJRYWFQ?=
 =?utf-8?B?SnJWWWdmbkpiWU14WW1YZUh0b0ltMnl5OGNSdnJhU0p3a1QwT2gyVDFzU1F4?=
 =?utf-8?B?aXpGYnUzM09mV1N3YjdtQVZxNDZxWFB3b2VCY2Z6RUl4cnVDYzRXVEY2N1Ri?=
 =?utf-8?B?RGFWSmNSQUF6cFBwM3lNYjUxOVpROVNRNHV5N0wyVFZ5ektyOHdXNDMwOUlD?=
 =?utf-8?B?clRsTWFlZEMvMmxibjQ0bGcrV01NL2QrWG02QTZWNHZZa1pGWVRYemxlOUlR?=
 =?utf-8?B?ejZPRVZYWHZ3cFgzajdqTVlqZStjSXpjWHlHeEVUUVFkbEVHSVdJVUhGd05x?=
 =?utf-8?B?SFFmYXFkOW1yNGZwRXBuajNnSkVhVWU2Z3M2cXptY1RkK0x3VXFlRlM2QmYz?=
 =?utf-8?B?UnZPcTBkY3gvUzl2UGZZYjM4SUpGZjRNNVpOcTU0TVU3b2RlV3RyR3hNN0xl?=
 =?utf-8?B?amp0KzZLNnpNWXFrQm9neHloZExSUnVZanFvdWZHemx3Q0dKQjZRdG5LWE0w?=
 =?utf-8?Q?8bytxwZ5Jvg5W1o+ElIHEoh1rJOnik=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)(376014)(36860700013)(13003099007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Apr 2025 13:02:01.3741
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: f9ae784e-1f9d-4b59-8ceb-08dd782fe271
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:
	BL02EPF0002992C.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR12MB6108

On Wed Apr 9, 2025 at 7:53 PM BST, Denis Mukhin wrote:
> On Tuesday, April 8th, 2025 at 9:07 AM, Alejandro Vallejo <agarciav@amd.c=
om> wrote:
>
>>=20
>>=20
>> From: "Daniel P. Smith" dpsmith@apertussolutions.com
>>=20
>>=20
>> 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, i=
t will
>> set its type to BOOTMOD_FDT. This change only detects the boot module an=
d
>> continues to boot with slight change to the boot convention that the dom=
0
>> kernel is no longer first boot module but is the second.
>>=20
>> No functional change intended.
>>=20
>> Signed-off-by: Daniel P. Smith dpsmith@apertussolutions.com
>>=20
>> Signed-off-by: Jason Andryuk jason.andryuk@amd.com
>>=20
>> ---
>> v3:
>> * Move obj-y +=3D domain-builder/
>> * Remove blank line in Makefile
>> * const in has_hyperlaunch_fdt()
>> * CONFIG_LIBFDT rename
>> * Use boot_info forward declaration
>> * Rename domainbuilder.h to domain-builder.h
>> * Add fdt NULL check
>> ---
>> xen/arch/x86/Makefile | 1 +
>> xen/arch/x86/domain-builder/Kconfig | 2 +-
>> xen/arch/x86/domain-builder/Makefile | 2 +
>> xen/arch/x86/domain-builder/core.c | 57 +++++++++++++++++++++++
>> xen/arch/x86/domain-builder/fdt.c | 37 +++++++++++++++
>> xen/arch/x86/domain-builder/fdt.h | 21 +++++++++
>
> I have a general question.
>
> Wouldn't that make sense to use arch-independent placeholder for domain b=
uilder
> code right from the starting point?
>
> For example something like xen/common/domain-builder ?
>
> My understanding is that there's a lot of code in the domain builder whic=
h
> can be potentially shared/re-used with non-x86 architectures.
>
> Also, that seems to align with the intention to have common arch-independ=
ent
> subsystems in the code base:
>
>    https://docs.google.com/presentation/d/1q9cjJZLUxUo1YzMpCxVHuL-ZOGoFaO=
9haHfRBK4i4Uc/edit?slide=3Did.g32afc87aef4_0_18#slide=3Did.g32afc87aef4_0_1=
8

  https://lore.kernel.org/xen-devel/D92Z1LECR2VA.3FW5H7ZIRVXU7@amd.com/

In principle, yes. I'll try to move it, but I suspect making it coexist
with dom0less will prove tricky.

>> diff --git a/xen/arch/x86/domain-builder/core.c b/xen/arch/x86/domain-bu=
ilder/core.c
>> new file mode 100644
>> index 0000000000..d6ae94f45c
>> --- /dev/null
>> +++ b/xen/arch/x86/domain-builder/core.c
>> @@ -0,0 +1,57 @@
>> +/* SPDX-License-Identifier: GPL-2.0-only /
>> +/
>> + * Copyright (C) 2024, Apertus Solutions, LLC
>> + */
>> +#include <xen/err.h>
>>=20
>> +#include <xen/init.h>
>>=20
>> +#include <xen/kconfig.h>
>>=20
>> +#include <xen/lib.h>
>>=20
>> +
>> +#include <asm/bootinfo.h>
>>=20
>> +
>> +#include "fdt.h"
>> +
>> +void __init builder_init(struct boot_info *bi)
>> +{
>> + if ( IS_ENABLED(CONFIG_DOMAIN_BUILDER) )
>> + {
>> + int ret;
>> +
>> + switch ( ret =3D has_hyperlaunch_fdt(bi) )
>> + {
>> + case 0:
>> + printk("Hyperlaunch device tree detected\n");
>> + bi->hyperlaunch_enabled =3D true;

FYI, your email client seems to be collapsing the indentation of the
quoted patches. Is that intentional?

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Thu Apr 10 13:10:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 13:10:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.945701.1343839 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2rfV-00044O-L6; Thu, 10 Apr 2025 13:10:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 945701.1343839; Thu, 10 Apr 2025 13:10:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2rfV-00044H-IO; Thu, 10 Apr 2025 13:10:09 +0000
Received: by outflank-mailman (input) for mailman id 945701;
 Thu, 10 Apr 2025 13:10: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=HBao=W4=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1u2rfU-00044B-6N
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 13:10:08 +0000
Received: from sender4-of-o50.zoho.com (sender4-of-o50.zoho.com
 [136.143.188.50]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1e24822f-160d-11f0-9eac-5ba50f476ded;
 Thu, 10 Apr 2025 15:10:06 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 1744290595500658.8456412694419;
 Thu, 10 Apr 2025 06:09: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: 1e24822f-160d-11f0-9eac-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; t=1744290598; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=JOVwFsmMgBKbzIePHBO4rAHxASvDVBn7F/1sCpXY1SNR2sOkpeL+2HQsfg3MRzts63VPEZLx4gQXxmTS3i1cTdu9rvCwJn81l3hLZVswgmWKQRima35rai8rPTpUZ009G8/0ocP0fsxNQd1MX6+YQ6xX6kOZSCnggPA0Pwn2tGg=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1744290598; 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=YwV4frp5CtfZYpgSz/+0qb414wbwFFnjjvaRHmFElUw=; 
	b=Bsj592xQokgjgH2t8nMnyyyTWQOH7Ly37sCoIjbmRrKoekLbmHqaf1tRSoY1tUBuNySZUCXeBOwX7IC4DnnK+sUbL9iDpaij2/CeDdJXyE1cJOXVLLtkWNkxmDIcsjeJGBilQQnppp6SBpL07IyYzR+ckFv+pvoEzzi3tDuMwrg=
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=1744290598;
	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=YwV4frp5CtfZYpgSz/+0qb414wbwFFnjjvaRHmFElUw=;
	b=c4A74/wagMTLVzyOgJqPTyfFMJOQnbDGojEnvQOjB2v4W8v4J1VL4qBoXG1gvzXA
	mFGYZM7y5DcnkINe+3Xqttb5wI/e3xnfpLMg3XjeCVciNnz63Mu2LC/bewZ7etf1xBX
	jv5alWfgBJaj6h7ZXYXPKwGe323SuHkNtJVJZpBY=
Message-ID: <7fa754f8-d785-45d8-b9da-de5c85bc793b@apertussolutions.com>
Date: Thu, 10 Apr 2025 09:09:53 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 01/16] x86/boot: introduce boot domain
To: Jan Beulich <jbeulich@suse.com>, Alejandro Vallejo <agarciav@amd.com>
Cc: Jason Andryuk <jason.andryuk@amd.com>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Michal Orzel <michal.orzel@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: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-2-agarciav@amd.com>
 <141229a0-2cd2-4886-b5e5-02c85b0ca5ab@suse.com>
Content-Language: en-US
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
In-Reply-To: <141229a0-2cd2-4886-b5e5-02c85b0ca5ab@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ZohoMailClient: External

On 4/9/25 02:24, Jan Beulich wrote:
> On 08.04.2025 18:07, Alejandro Vallejo wrote:
>> From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
>>
>> 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>
> 
> Acked-by: Jan Beulich <jbeulich@suse.com>

I have to object because the meaningless rename is going cause 
significant pain in the rebase of the follow-on series for no improved 
code clarity.

V/r,
DPS


From xen-devel-bounces@lists.xenproject.org Thu Apr 10 13:11:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 13:11:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.945711.1343850 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2rgN-0004fr-VX; Thu, 10 Apr 2025 13:11:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 945711.1343850; Thu, 10 Apr 2025 13: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 1u2rgN-0004fk-S3; Thu, 10 Apr 2025 13:11:03 +0000
Received: by outflank-mailman (input) for mailman id 945711;
 Thu, 10 Apr 2025 13: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=w6Mj=W4=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u2rgM-0004Mp-BP
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 13:11:02 +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 3f984715-160d-11f0-9ffb-bf95429c2676;
 Thu, 10 Apr 2025 15:11:00 +0200 (CEST)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-43cfa7e7f54so5372635e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 10 Apr 2025 06:11:00 -0700 (PDT)
Received: from [10.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-39d89389f72sm4678192f8f.42.2025.04.10.06.10.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 10 Apr 2025 06:10: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: 3f984715-160d-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744290660; x=1744895460; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=s4DAJzFIDzzDLXLHYWDPPr8NuaBtrMYzoPLQrKsVwN4=;
        b=N+k/upMyYWj5ot/J419PzdYynuVPRUP08ktYAyePr0qObl9ymxYCYjwaPY0GnO/jTF
         crQZpr5UFgh2kD2e5I3jpYXVgBdK5XxJiSDC0svXAn+HOt+uICO509Kj3pXviuHgZ5G9
         WH4a3lyXwCqeU8WFWZY9/BlK1F7APh7Dlq1jWAHL/Tu/bK6WtwGtbP89Iq+B/3SGa//u
         Pqt9lzPV1TCtOBP0Ayrz5O0prspIGxKzanTRcLdv36djbV0wT8clxTtCYmrDhKgpE1/T
         Ul32I9l9P9q9AZpyejtZPJAmaniwY7EOKcrvBvUSZs4Y4n7O/eGmjVNVB0lw8uwZ60vX
         kNAA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744290660; x=1744895460;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=s4DAJzFIDzzDLXLHYWDPPr8NuaBtrMYzoPLQrKsVwN4=;
        b=Hw497ogniRTXs2CNNcT7MFeJfvoI402qh0XJS1GDmKKE0EV8NJf+Tp79T0gaeRiLTU
         BANRcldn0MNUToTESLPq4IV23Q5AQ/fgZ86/zRIeUJXZ1lMiS0r4sHRfby41lheYWi0F
         4D1o06QX/Yep0Y5lvW6ZcIFkvvRu98QG0bblkFCUvDBl27GFrz2xm8Rt8lI6jgnJhRHM
         ORQyURNHZ2lbVuOsdOlLrdTMSPN+S6Oy4H1QXsD3AqiD2v3qjAqO1CoTNGGpIK6UVs0c
         ARTdOpRwET2uWpwUQKbyfNJ7TGJDCz7HemBG72yNYMLeeaqYIOU3W5lNvSYdM3xECTB7
         hXlg==
X-Forwarded-Encrypted: i=1; AJvYcCXhydzSsK4pcMhRarSzwj+dDFye692TsPx4TQVKyXPG+8j+//j59Pe1m6GI4/iep3sKjKGA9lKpqBE=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz8a+Yn2Lk6Kluoqdh0/mcOWQ3hvNzjwrXz5E21I4SjSVNDYQMy
	LAo34RJxe7zCH96NS2yxTFi/42Z8tVZirQQmIQ3DYkr1W0CbzKKSZuqZ1vvJKg==
X-Gm-Gg: ASbGncsYPKmo3kstI44xaQCKCUK+ZY3OtRF1q4G9976dNr829QShZeUWbOYj1WggyY3
	onNXCq8S0CUSthT9eeUjleRVz0VHYFkt5MqTTlggi6SdxITG5cHpt/mi9j39oE/EuegxiMHQ6Y7
	ku6V/KGbRdm6W/xlOXWMO3udANp0qrRsNOP3FdaWunB+QxEkMqtRKe2V7vf7Nfc604O8sPrfMIM
	UzVSKM0ffgkK4ofkz2XRRJLedMZCWItYWOu3HpIRMU3mDLYJ6vRu/lgNVVqlgtAFWacn5+hPiJQ
	iALOuzszUl8ayuTD86mxTl3onghNMxB0P5f/5QHCUQKBezgrSvt3jqDohgzlbo5UefN//wlEnrC
	x3mYhykOlrzM6K3Grf/YugNEVbQ==
X-Google-Smtp-Source: AGHT+IEUnvgvy3MLOQTE9zVGaOM+JvZpSJQiOJRaTG2YG2LNCOqOaX59beoqpIRToWWSxCeXcU8yuQ==
X-Received: by 2002:a05:600c:46cb:b0:43d:fa5f:7d30 with SMTP id 5b1f17b1804b1-43f2f0fd059mr24684255e9.16.1744290660045;
        Thu, 10 Apr 2025 06:11:00 -0700 (PDT)
Message-ID: <18277077-2cf0-466f-8bde-f7955806bcb2@suse.com>
Date: Thu, 10 Apr 2025 15:10:58 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 02/14] xen/riscv: introduce smp_clear_cpu_maps()
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1744126720.git.oleksii.kurochko@gmail.com>
 <ce3460b3857cca9e6f3072a8ddd50b31cb46b855.1744126720.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: <ce3460b3857cca9e6f3072a8ddd50b31cb46b855.1744126720.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.04.2025 17:57, Oleksii Kurochko wrote:
> Initialize cpu_{possible, online, present}_map by using smp_clear_cpu_maps().
> 
> Drop DEFINE_PER_CPU(unsigned int, cpu_id) from stubs.c as this variable isn't
> expected to be used in RISC-V at all.
> 
> Move declaration of cpu_{possible,online,present}_map from stubs.c to smpboot.c
> as now smpboot.c is now introduced.
> Other defintions keep in stubs.c as they are not initialized and not needed, at
> the moment.
> 
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> ---
>  xen/arch/riscv/Makefile          |  1 +
>  xen/arch/riscv/include/asm/smp.h |  2 ++
>  xen/arch/riscv/setup.c           |  2 ++
>  xen/arch/riscv/smpboot.c         | 15 +++++++++++++++
>  xen/arch/riscv/stubs.c           |  6 ------
>  5 files changed, 20 insertions(+), 6 deletions(-)
>  create mode 100644 xen/arch/riscv/smpboot.c
> 
> diff --git a/xen/arch/riscv/Makefile b/xen/arch/riscv/Makefile
> index 0c6c4a38a3..f551bf32a2 100644
> --- a/xen/arch/riscv/Makefile
> +++ b/xen/arch/riscv/Makefile
> @@ -10,6 +10,7 @@ obj-y += sbi.o
>  obj-y += setup.o
>  obj-y += shutdown.o
>  obj-y += smp.o
> +obj-y += smpboot.o
>  obj-y += stubs.o
>  obj-y += time.o
>  obj-y += traps.o
> diff --git a/xen/arch/riscv/include/asm/smp.h b/xen/arch/riscv/include/asm/smp.h
> index 5e170b57b3..188c033718 100644
> --- a/xen/arch/riscv/include/asm/smp.h
> +++ b/xen/arch/riscv/include/asm/smp.h
> @@ -26,6 +26,8 @@ static inline void set_cpuid_to_hartid(unsigned long cpuid,
>  
>  void setup_tp(unsigned int cpuid);
>  
> +void smp_clear_cpu_maps(void);
> +
>  #endif
>  
>  /*
> diff --git a/xen/arch/riscv/setup.c b/xen/arch/riscv/setup.c
> index 4e416f6e44..7f68f3f5b7 100644
> --- a/xen/arch/riscv/setup.c
> +++ b/xen/arch/riscv/setup.c
> @@ -72,6 +72,8 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
>  
>      remove_identity_mapping();
>  
> +    smp_clear_cpu_maps();
> +
>      set_processor_id(0);
>  
>      set_cpuid_to_hartid(0, bootcpu_id);
> diff --git a/xen/arch/riscv/smpboot.c b/xen/arch/riscv/smpboot.c
> new file mode 100644
> index 0000000000..0f4dcc28e1
> --- /dev/null
> +++ b/xen/arch/riscv/smpboot.c
> @@ -0,0 +1,15 @@
> +#include <xen/cpumask.h>
> +#include <xen/init.h>
> +
> +cpumask_t cpu_online_map;
> +cpumask_t cpu_present_map;
> +cpumask_t cpu_possible_map;

__read_mostly for all of them, perhaps (if CPU hotplug isn't expected to
be supported) even __ro_after_init for the latter two?

As to cpu_possible_map - do you predict that you'll actually use it? Arm
does (and instead has only a fake cpu_present_map), but on x86 we get away
without.

> +void __init smp_clear_cpu_maps(void)
> +{
> +    cpumask_clear(&cpu_possible_map);
> +    cpumask_clear(&cpu_online_map);

What's the point of these? All three maps start out fully zeroed.

> +    cpumask_set_cpu(0, &cpu_possible_map);
> +    cpumask_set_cpu(0, &cpu_online_map);

These are contradicting the name of the function. The somewhat equivalent
function we have on x86 is smp_prepare_boot_cpu().

> +    cpumask_copy(&cpu_present_map, &cpu_possible_map);

Another cpumask_set_cpu() is probably cheaper here then.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Apr 10 13:13:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 13:13:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.945727.1343860 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2riX-0006pc-9f; Thu, 10 Apr 2025 13:13:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 945727.1343860; Thu, 10 Apr 2025 13: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 1u2riX-0006pV-7G; Thu, 10 Apr 2025 13:13:17 +0000
Received: by outflank-mailman (input) for mailman id 945727;
 Thu, 10 Apr 2025 13:13:16 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=HBao=W4=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1u2riV-0006nR-WC
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 13:13:16 +0000
Received: from sender4-of-o50.zoho.com (sender4-of-o50.zoho.com
 [136.143.188.50]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8eba5c57-160d-11f0-9eac-5ba50f476ded;
 Thu, 10 Apr 2025 15:13:14 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 1744290784534319.87413798027364;
 Thu, 10 Apr 2025 06:13:04 -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: 8eba5c57-160d-11f0-9eac-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; t=1744290787; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=DwZPRiPZDo8N8dNXcJYzdozI5jLY93yYKVZm/3JcWE1AO0eaRkEhdlVsp0/Ju2xYucmdN6dFePyNKXimyGXB3MpjB1lWUejgDiE5bdjFy5QAo/vqWjJdWS+WSTzfV5CZgIxp+uXPrIFL6qqNimy/ziHInQ14KHg0Bll9VpfPmcQ=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1744290787; 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=ABw/kxXbPgd+vAaQxN7/KjBSr3Nsdxw8qOySFQ5babY=; 
	b=IpPhGw9y+Kw7G0DW7m51oQwTGXLduUiUBm3u8BQ8FUDheSSstmG2/9UlMJ/N+zWE1I0r+eaAR3vWAIuvD24LbNhz/Z5CH/iKX72yWXdMkXfkxLebLPbpltXrX0fP+27gD1z7gq2NNEmPcW80/ybaF0d4ZJQC6oY1qf5XtiLltEg=
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=1744290787;
	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=ABw/kxXbPgd+vAaQxN7/KjBSr3Nsdxw8qOySFQ5babY=;
	b=p05v/hXV90wWRbcXTuAW1btRQKgBlp1iBznOPYunlTbvIpAJrlpLP4JYjsLCT0zW
	wLXV4+nX9XMKevHQ+FXl/G1nIf1DRnR2awG77En4rE2FvMclgrjeT5dPiN+As7YmmJN
	jQPdQRaYd1GV76NtyjXWIWq/Ju13x3Umb/krPuGM=
Message-ID: <7e87020b-859e-408a-ae0e-097ef4ee54cd@apertussolutions.com>
Date: Thu, 10 Apr 2025 09:13:02 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 01/16] x86/boot: introduce boot domain
To: Alejandro Vallejo <agarciav@amd.com>, Jan Beulich <jbeulich@suse.com>
Cc: Jason Andryuk <jason.andryuk@amd.com>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Michal Orzel <michal.orzel@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: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-2-agarciav@amd.com>
 <141229a0-2cd2-4886-b5e5-02c85b0ca5ab@suse.com>
 <D921CCFOSV90.2LUNCRRSE6Q5M@amd.com>
Content-Language: en-US
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
In-Reply-To: <D921CCFOSV90.2LUNCRRSE6Q5M@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ZohoMailClient: External

On 4/9/25 06:28, Alejandro Vallejo wrote:
> On Wed Apr 9, 2025 at 7:24 AM BST, Jan Beulich wrote:
>> On 08.04.2025 18:07, Alejandro Vallejo wrote:
>>> From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
>>>
>>> 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>
>>
>> Acked-by: Jan Beulich <jbeulich@suse.com>
> 
> Thanks
> 
>>
>>> --- /dev/null
>>> +++ b/xen/arch/x86/include/asm/boot-domain.h
>>> @@ -0,0 +1,28 @@
>>> +/* 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>
>>> + */
>>
>> I wonder if the 2024-s here shouldn't have been amended by 2025 now.
> 
> Maybe. I didn't think about it, tbh. One could argue that Daniel and
> Christopher's original contribution was indeed in 2024 and the fact they
> weren't committed until (hopefully!) 2025 doesn't remove the fact they
> did exist in some form in 2024.
> 
> I don't particularly care either way, but tend to lean on the "it's fine
> how it is".

Jan is correct, now that we have moved into 2025, they should be 
updated. Maybe we can actually get it all committed this year.

v/r,
dps


From xen-devel-bounces@lists.xenproject.org Thu Apr 10 13:18:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 13:18:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.945743.1343869 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2rnk-0007oo-W0; Thu, 10 Apr 2025 13:18:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 945743.1343869; Thu, 10 Apr 2025 13:18:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2rnk-0007oh-TS; Thu, 10 Apr 2025 13:18:40 +0000
Received: by outflank-mailman (input) for mailman id 945743;
 Thu, 10 Apr 2025 13: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=JM3A=W4=bounce.vates.tech=bounce-md_30504962.67f7c528.v1-165dad14e1c64a94bc5d8010f40c8b49@srs-se1.protection.inumbo.net>)
 id 1u2rnj-0007oL-0a
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 13:18:39 +0000
Received: from mail177-19.suw61.mandrillapp.com
 (mail177-19.suw61.mandrillapp.com [198.2.177.19])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4d35ec4d-160e-11f0-9ffb-bf95429c2676;
 Thu, 10 Apr 2025 15:18:33 +0200 (CEST)
Received: from pmta14.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail177-19.suw61.mandrillapp.com (Mailchimp) with ESMTP id 4ZYL3r1dMgzC1l
 for <xen-devel@lists.xenproject.org>; Thu, 10 Apr 2025 13:18:32 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 165dad14e1c64a94bc5d8010f40c8b49; Thu, 10 Apr 2025 13:18: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: 4d35ec4d-160e-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1744291112; x=1744561112;
	bh=/yGmZoN0z6V/sePjciCXauSVwQvj2yNmrkLbjlUZOjk=;
	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=aCqmPeUDwFn3/xVJG0gD2OUZD+q1KNx8gbC9TN6PdbCyPUFuo/o62Xm55ExIU6jeM
	 faZNNKIg4i0Qy5W7OCQW2KAaHNWFVNcur3bqBkrjp26LZsHDIMCU+d2Sc1Yuk0dx3+
	 8arMveZGgJrPQf/uB91omJbhX8R8UufcwuNO3z2IdPkNEctofizfRJTNTRIDTZ+BSy
	 PZZY3F+EyOs3RiL2/6y35i4Z3VoPNXJvjSlKTEojZApGXOBNF1eQrJHHXnQWpvlRe5
	 SyKNuWoQaZeHwfCrcE0ZezFtjMYjH3ATVaprtczPPTW0CubTkUghn3gTrNHoV59foh
	 eAO8KhBj1k5fg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1744291112; x=1744551612; i=anthony.perard@vates.tech;
	bh=/yGmZoN0z6V/sePjciCXauSVwQvj2yNmrkLbjlUZOjk=;
	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=gypWrjgXMzDuLRSkssMVMeE15xaF20mXoa3dIKW+nZK+chGuOt3uuxg4F7dm5akTk
	 f/g+Jgn+q7YzExg3SUWHU0dh8Z6cRIdUuGwEos7QJREaaxewlm96YFIlmd4VI7kELw
	 dvMxHDUMcrm5HXiWSuQnf9AiIBKAEpQwlk9UDfpNKtz10nWk2YzN/7R4w0hp0O5jdp
	 dfY/QW155ok1l4vNX6yd8AVZr0cA5WfKpwdTsI3e5DjLIuwSNKURKfcRfmt5HLFNEQ
	 LKCenz9/eYJSQ0g8YdYMPQToFW1vPX5PznKeJJo/sS21nRwlBJCvZ7328r92SZjf4T
	 6YdrwxRJQOhzQ==
From: "Anthony PERARD" <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=201/6]=20Port=20containerise?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1744291110608
To: "Andrew Cooper" <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Stefano Stabellini" <sstabellini@kernel.org>, "Michal Orzel" <michal.orzel@amd.com>, "=?utf-8?Q?Marek=20Marczykowski-G=C3=B3recki?=" <marmarek@invisiblethingslab.com>
Message-Id: <Z_fFJncpp9_25JSV@l14>
References: <20250410114628.2060072-1-andrew.cooper3@citrix.com> <20250410114628.2060072-2-andrew.cooper3@citrix.com>
In-Reply-To: <20250410114628.2060072-2-andrew.cooper3@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.165dad14e1c64a94bc5d8010f40c8b49?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250410:md
Date: Thu, 10 Apr 2025 13:18:32 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Thu, Apr 10, 2025 at 12:46:23PM +0100, Andrew Cooper wrote:
> While it pains me to keep the wrong spelling, do so for consistency.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.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 Apr 10 13:20:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 13:20:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.945752.1343880 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2rpK-0000q2-Bw; Thu, 10 Apr 2025 13:20:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 945752.1343880; Thu, 10 Apr 2025 13:20: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 1u2rpK-0000pv-9B; Thu, 10 Apr 2025 13:20:18 +0000
Received: by outflank-mailman (input) for mailman id 945752;
 Thu, 10 Apr 2025 13:20: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=Mta4=W4=bounce.vates.tech=bounce-md_30504962.67f7c58e.v1-2642bac2fe4741f88186670e2b40f9d8@srs-se1.protection.inumbo.net>)
 id 1u2rpJ-0000pp-Ie
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 13:20:17 +0000
Received: from mail177-19.suw61.mandrillapp.com
 (mail177-19.suw61.mandrillapp.com [198.2.177.19])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8a06e6a0-160e-11f0-9ffb-bf95429c2676;
 Thu, 10 Apr 2025 15:20:15 +0200 (CEST)
Received: from pmta14.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail177-19.suw61.mandrillapp.com (Mailchimp) with ESMTP id 4ZYL5p5K20zDDS
 for <xen-devel@lists.xenproject.org>; Thu, 10 Apr 2025 13:20:14 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 2642bac2fe4741f88186670e2b40f9d8; Thu, 10 Apr 2025 13:20:14 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8a06e6a0-160e-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1744291214; x=1744561214;
	bh=6T6m/c+3EJmR1fhTc7g2Pe21cejLM+G7EDHGrId4gx4=;
	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=a4m/S8vwv1S+G+q30t+WNl1QxXPvkzwIcK+ZnlWTPESJhH11ZLeFbeklQKTHphOpF
	 aliqYcXPU7HTmzUUU9hp8ONsGCJK8xfS4zIM07A4dMhwztqGdZGn2B+YkOBf2ZL1aG
	 7MP93AbTo03eE7Rsm8qraT36e6l4kw65ZMxkSngwv5qZBmRvq896pPLfKDqRC3bZWK
	 bM8c1nhhWFvDi0SEF3v67fSxASjvIvfM6kPiEIQVP8RTIRWsYgEu3IrK91emqbpfT2
	 ve4FEPbAZn7oBPrQuQ0dJdkKE0yujYs6mekFGQz+f8pxeW1btRxEYX45vjIepwPs7E
	 4fU8xNJi+prCA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1744291214; x=1744551714; i=anthony.perard@vates.tech;
	bh=6T6m/c+3EJmR1fhTc7g2Pe21cejLM+G7EDHGrId4gx4=;
	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=ma0Ic/MtnWglBDc77RKUTpy+u7BjnzksO84qY34lLxepCz0Jz/56NcAB0+XTCVWs4
	 hAgUTuvwTuHgveADI+CvEmKpxJhDvEztoE05nJDlZhXbyl97R/t3oPbHWp0C391Li2
	 PxT/7TuFa+x0pcEJzznp4a28k37h1jOVzAp37G8TO9dz0WA/eb1SAarLcHkfIm34yS
	 m7/mEONmK01iwg8modstUSw8KwI6/hcwm1ScDrLd+G+xEOd4c97ETVTNqhlc/Dv8D2
	 oub1ACakVMh+2f6OGibXb0HO/l+/42CIb1p7B4cxjb5xGS8zsBvIWYj6IEr6K7Bhb9
	 d6YGTh+AZ7kKw==
From: "Anthony PERARD" <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=202/6]=20Clean=20up=20Gitlab=20yaml?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1744291213192
To: "Andrew Cooper" <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Stefano Stabellini" <sstabellini@kernel.org>, "Michal Orzel" <michal.orzel@amd.com>, "=?utf-8?Q?Marek=20Marczykowski-G=C3=B3recki?=" <marmarek@invisiblethingslab.com>
Message-Id: <Z_fFjGRdQDNYQtfn@l14>
References: <20250410114628.2060072-1-andrew.cooper3@citrix.com> <20250410114628.2060072-3-andrew.cooper3@citrix.com>
In-Reply-To: <20250410114628.2060072-3-andrew.cooper3@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.2642bac2fe4741f88186670e2b40f9d8?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250410:md
Date: Thu, 10 Apr 2025 13:20:14 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Thu, Apr 10, 2025 at 12:46:24PM +0100, Andrew Cooper wrote:
> Factor out the registry into a common location.  Drop the worflow name, as all
> it does is hide the commit message of the change that triggered the pipeline.
> List all the stages.  Set a default expiry of 1 month.
> 
> Note all the current jobs as legacy.  Their naming scheme needs changing, and
> we'll use this opportunity to switch formats too.  However, the artefacts need
> to stay using the old name until the final staging-* branch using them is
> phased out.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.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 Apr 10 14:04:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 14:04:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.945774.1343889 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2sVW-0006Uz-Et; Thu, 10 Apr 2025 14:03:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 945774.1343889; Thu, 10 Apr 2025 14:03:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2sVW-0006Us-CM; Thu, 10 Apr 2025 14:03:54 +0000
Received: by outflank-mailman (input) for mailman id 945774;
 Thu, 10 Apr 2025 14:03: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=PtDs=W4=bounce.vates.tech=bounce-md_30504962.67f7cfc5.v1-244598b51120453594d2e594126818b6@srs-se1.protection.inumbo.net>)
 id 1u2sVV-0006U0-DF
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 14:03:53 +0000
Received: from mail177-19.suw61.mandrillapp.com
 (mail177-19.suw61.mandrillapp.com [198.2.177.19])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a0da630b-1614-11f0-9eac-5ba50f476ded;
 Thu, 10 Apr 2025 16:03:51 +0200 (CEST)
Received: from pmta14.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail177-19.suw61.mandrillapp.com (Mailchimp) with ESMTP id 4ZYM45597HzJwJ
 for <xen-devel@lists.xenproject.org>; Thu, 10 Apr 2025 14:03:49 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 244598b51120453594d2e594126818b6; Thu, 10 Apr 2025 14:03: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: a0da630b-1614-11f0-9eac-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1744293829; x=1744563829;
	bh=94p1xXAvMSr+g/X8AYh+JeeYwBufCC7qjH0k1q3kpKY=;
	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=HyihCjd1woJPcl8eviF2RYUcREjM2yVIh+fKokqQ2B46HsZFrjVUUi064mgKGfmgU
	 Euc0547rFYLSxLRd45d3SdOmEpir7sBL1vP52oAdNE5R/WMuW5CwheeHq57mJa0GK1
	 QpBAqCY/sxbzeUfHM9rM4vdeTUIYOt7O5R+pEgQDnYF6HWTs/J0VC1mKULELjWzPdG
	 IjtwcBX2M8kqA+WsggY4psNS5iLNb2viKoSLNtzxdkhQmi/A1mLCV+yJpC2kqKnHPR
	 n8DNaz2NhGIdE1ZYuw9MLttKnTuDkWI7TFYSxwZsBXoV4ZSuFDLro7Phjiw3BqUxkY
	 zuSvguRqQk94A==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1744293829; x=1744554329; i=anthony.perard@vates.tech;
	bh=94p1xXAvMSr+g/X8AYh+JeeYwBufCC7qjH0k1q3kpKY=;
	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=sNjaw2yP4G9jCPfw+dpZjnRiPArh/hQ9/WzzBjEU/imMyJY3APXwal/uJ915Rrmvd
	 fanBHxzsyTOuif9dl26Q2bvBkfcy4oXGsTso/q8qTVv/jzfiTHZ6W8/r52LPK9yn/6
	 hAi99VJr4njLs1AVxj3hgKlzXzbBWtWAZ09v2fnG0xdnGxmNmBZ6bT39RQRKnh65i5
	 tE5FHKh2U3gISzRDTBaeOqgxEuOnKWdvdTCFQsaDECsTY/tcc00apkiPp66Z5kacNi
	 3W/YbTThU2/KYq5ckeF0Ija4YvvuSIEXTMpH6i1iXcP+PpfLc7YJukKAwRgls+yEiw
	 JQIc37fxigtMQ==
From: "Anthony PERARD" <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=206/6]=20Linux=20builds=20for=20x86=20and=20ARM64?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1744293827547
To: "Andrew Cooper" <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Stefano Stabellini" <sstabellini@kernel.org>, "Michal Orzel" <michal.orzel@amd.com>, "=?utf-8?Q?Marek=20Marczykowski-G=C3=B3recki?=" <marmarek@invisiblethingslab.com>
Message-Id: <Z_fPwwHQ4baXbg-a@l14>
References: <20250410114628.2060072-1-andrew.cooper3@citrix.com> <20250410114628.2060072-7-andrew.cooper3@citrix.com>
In-Reply-To: <20250410114628.2060072-7-andrew.cooper3@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.244598b51120453594d2e594126818b6?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250410:md
Date: Thu, 10 Apr 2025 14:03:49 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Thu, Apr 10, 2025 at 12:46:28PM +0100, Andrew Cooper wrote:
> For ARM64, the tests in Xen currently use 6.6.74, but 6.6.86 works so update
> to the latest.
> 
> For x86, stay at 6.6.56.  There's a PVH regression upstream in need of fixing.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.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 Thu Apr 10 14:08:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 14:08:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.945786.1343899 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2saG-00073v-VF; Thu, 10 Apr 2025 14:08:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 945786.1343899; Thu, 10 Apr 2025 14:08: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 1u2saG-00073o-Se; Thu, 10 Apr 2025 14:08:48 +0000
Received: by outflank-mailman (input) for mailman id 945786;
 Thu, 10 Apr 2025 14:08: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=C125=W4=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u2saF-00073i-Hm
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 14:08:47 +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 51545e95-1615-11f0-9eac-5ba50f476ded;
 Thu, 10 Apr 2025 16:08:46 +0200 (CEST)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-4394a0c65fcso9524385e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 10 Apr 2025 07:08:46 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39d89362fbfsm4926313f8f.13.2025.04.10.07.08.45
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 10 Apr 2025 07:08: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: 51545e95-1615-11f0-9eac-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744294126; x=1744898926; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=1B2rTcsqbJUEx/iaz1+4u5YFUAEGz3332gbrapUb5PA=;
        b=l1f43SB0vh1CIqLM6O8bVJkjb87Tof8kaEOik4phwMJfJKroRKQ7v0xGGXLHWjMSFK
         DnjKokkvaDHbl62oCuHWoNodgV8fPintPIDCnKufI+EtpJmwVyzCGsYGFj2HaVAqStix
         xKnWEOTzejaKoLFuo6Q2ARR/8TI2lyQbk4QKU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744294126; x=1744898926;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=1B2rTcsqbJUEx/iaz1+4u5YFUAEGz3332gbrapUb5PA=;
        b=bRUFtoLjldRA5p5EUV+TZhihlWL5ReGxg83oYLO0PtMohUtM4mnGV4si1OW5ojX6OK
         TAawsLlJHYOynS3Uu1H6vo5w3Rje6EX8GmEWPgzMbZEXvwH/936C0gk5g1fPspndNJLI
         JSYmhtlJHMqS2wtyyMNg8bjNwo02JaoMP1V+utTzpgBm+FWzrIPKNqDvszWsCKA8KMxi
         pEEGzNjv6pf4Z74MgSsagnqW48WyRcAa3SGJevcpACCikkkj0AucRq6l8urgWATTM56U
         hDKTs9L3UZZPG7tBSGZBkAdHb9/fA7SmKIapeq7ddxBPYNZFAZEJbLQd5vaeZz9hXaV6
         9/aQ==
X-Gm-Message-State: AOJu0YzR2PtveIekrtl4EqpHzZE/CQaUlD0JrxPkWJTu7oo4XxhC1Br5
	S2tA2HgIFt3bAqysNtk75LqVzUlQ2J7ZwKizBkPyB5YGabZQ9xZRkaPJ+PLvejc=
X-Gm-Gg: ASbGncswz5M9XsmUoYlgoqoPD9PAKkm5SG/eAhrK+kWh83mJJ/LUsppz9LOa7wEpi6y
	DTJtmvWbvU6OShmDYfUcOe8FjZMLrCXGKAm11OWXMQlyJHgFVjEAgb6mtFJzhlP6C344FO39TkC
	P16n/gcdDTPqIhShkSHsgRYrg+5IhLMpbDDLCrE4lYS7eu9m0m1yhBr1zEnyI4KjNUJrWboXiTl
	qoXxAPsqtUpWEgaVMZ0M6n/rAK6/6XW09UL+G6QNVF9DNSwrU9P16wVA+Y+KBYWnni5/PYolblF
	RUBJulrq4UyQxcznmsXNwmB66VxbeKgBAQ/6tU7oTjAzj0S3uL4lEZcrTSeVQMGLtWhDTUkRv1Z
	DWOTSyiYuiPxqpC3P
X-Google-Smtp-Source: AGHT+IGOroAaR9Qg585JcAXkA6m60IqRpM0BlZ++V8a0YKEBStYmJTlIJJs2fWrkp3bsJV3TkxzKEg==
X-Received: by 2002:a05:6000:1ac7:b0:39a:c6c4:f877 with SMTP id ffacd0b85a97d-39d8f469231mr2345675f8f.20.1744294125745;
        Thu, 10 Apr 2025 07:08:45 -0700 (PDT)
Message-ID: <77f3421f-cc14-4f35-a8bc-f837c17dc2d7@citrix.com>
Date: Thu, 10 Apr 2025 15:08:44 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 5/6] Infrastructure for arm64 linux builds
To: Anthony PERARD <anthony.perard@vates.tech>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Michal Orzel <michal.orzel@amd.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
References: <20250410114628.2060072-1-andrew.cooper3@citrix.com>
 <20250410114628.2060072-6-andrew.cooper3@citrix.com> <Z_fM44HXEnpwa8q6@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: <Z_fM44HXEnpwa8q6@l14>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 10/04/2025 2:51 pm, Anthony PERARD wrote:
> On Thu, Apr 10, 2025 at 12:46:27PM +0100, Andrew Cooper wrote:
>> diff --git a/images/alpine/3.18-arm64-build.dockerfile b/images/alpine/3.18-arm64-build.dockerfile
>> new file mode 100644
>> index 000000000000..b6d9bd1af531
>> --- /dev/null
>> +++ b/images/alpine/3.18-arm64-build.dockerfile
>> @@ -0,0 +1,27 @@
>> +# syntax=docker/dockerfile:1
>> +FROM --platform=linux/arm64/v8 alpine:3.18
>> +LABEL maintainer.name="The Xen Project" \
>> +      maintainer.email="xen-devel@lists.xenproject.org"
> I though we were repeating the "LABEL" on each line these days, to avoid
> the backslash at the end of the line. ;-)

Oh right.  I'll fix.

>
>> +
>> +RUN apk --no-cache add bash
>> +
>> +RUN bash -ex <<EOF
>> +      adduser -D user --shell bash
>> +
>> +      DEPS=(# Base environment
>> +            build-base
>> +            curl
>> +
>> +            # Linux build deps
>> +            bison
>> +            findutils
>> +            flex
>> +            openssl-dev
>> +            perl
>> +      )
>> +
>> +      apk add --no-cache "\${DEPS[@]}"
> If I take one example from xen.git, we don't escape the $ and it's just
> "${DEPS[@]}", is it because the script is run with:
>
>     RUN bash -ex <<EOF
>
> instead of
>
>     RUN <<EOF
>     #!/usr/bin/bash
>
> ?
>
>
> As for the rest of the patch, it looks fine to me. I don't know if the
> change to the build config are necessary but they looks fine.

Ah, I meant to look at that and forgot.  This was started from the x86
container already in test-artefacts.

But yes, we want to do this the way xen.git does, with a set -eu too.

>
> With the LABEL repeated on each line:
> Reviewed-by: Anthony PERARD <anthony.perard@vates.tech>

Thanks.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Apr 10 14:09:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 14:09:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.945787.1343909 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2sac-0007Qf-5U; Thu, 10 Apr 2025 14:09:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 945787.1343909; Thu, 10 Apr 2025 14:09: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 1u2sac-0007QW-32; Thu, 10 Apr 2025 14:09:10 +0000
Received: by outflank-mailman (input) for mailman id 945787;
 Thu, 10 Apr 2025 14:09: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=uSBe=W4=kernel.org=pr-tracker-bot@srs-se1.protection.inumbo.net>)
 id 1u2saa-00073i-IT
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 14:09:08 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5d70aa5b-1615-11f0-9eac-5ba50f476ded;
 Thu, 10 Apr 2025 16:09:07 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 787E568448;
 Thu, 10 Apr 2025 14:08:55 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7A21EC4CEDD;
 Thu, 10 Apr 2025 14:09:05 +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
 EB0F8380CEF4; Thu, 10 Apr 2025 14:09:43 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5d70aa5b-1615-11f0-9eac-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1744294145;
	bh=RAvqgwOe95bzIaYDYX48bflXNBKKkphqE8oTRacCQjU=;
	h=Subject:From:In-Reply-To:References:Date:To:Cc:From;
	b=tY9M0sOGGMbPGNh8KOp8E37eYO3whlAejAIwHGttnmEzBvZgtQiB/hOspBMdIaW5U
	 cP121DxN9eToy2bz4KSZdyBqzF8foGcGcf6oGzUgokYGC/DHssU6bYqx3mCbfAyDmx
	 ffDZ+4x0r1zDNV9HWEiTxG28DpJIMG/71sMZRasFuB2H41qHQ9oMENz30l90ulF17P
	 mOoGDq2qz1T+UH2q7x7T/uwsPdwbGiC7yUQQ29wgv8dHhy5StfJ/f7mT9W0rAEvBk4
	 +Bbt2av4iucjlXQ5lVU1hq71odN6BVNIxqWrU6o5juWzrEjcf28bloZRqJBDFwiEyb
	 0r24qQKNsa7hQ==
Subject: Re: [GIT PULL] xen: branch for v6.15-rc2
From: pr-tracker-bot@kernel.org
In-Reply-To: <20250410090713.30027-1-jgross@suse.com>
References: <20250410090713.30027-1-jgross@suse.com>
X-PR-Tracked-List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
X-PR-Tracked-Message-Id: <20250410090713.30027-1-jgross@suse.com>
X-PR-Tracked-Remote: git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip.git for-linus-6.15a-rc2-tag
X-PR-Tracked-Commit-Id: 64a66e2c3b3113dc78a6124e14825d68ddc2e188
X-PR-Merge-Tree: torvalds/linux.git
X-PR-Merge-Refname: refs/heads/master
X-PR-Merge-Commit-Id: 2eb959eeecc64fa56e9f89a5fc496da297585cbe
Message-Id: <174429418245.3685623.8550379606264843082.pr-tracker-bot@kernel.org>
Date: Thu, 10 Apr 2025 14:09:42 +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 Thu, 10 Apr 2025 11:07:13 +0200:

> git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip.git for-linus-6.15a-rc2-tag

has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/2eb959eeecc64fa56e9f89a5fc496da297585cbe

Thank you!

-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/prtracker.html


From xen-devel-bounces@lists.xenproject.org Thu Apr 10 14:40:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 14:40:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.945809.1343919 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2t4Y-0000NJ-DJ; Thu, 10 Apr 2025 14:40:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 945809.1343919; Thu, 10 Apr 2025 14:40: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 1u2t4Y-0000N1-Af; Thu, 10 Apr 2025 14:40:06 +0000
Received: by outflank-mailman (input) for mailman id 945809;
 Thu, 10 Apr 2025 14:40: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=HBao=W4=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1u2t4W-00008e-Ts
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 14:40:04 +0000
Received: from sender4-of-o50.zoho.com (sender4-of-o50.zoho.com
 [136.143.188.50]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id acb3aad9-1619-11f0-9ffb-bf95429c2676;
 Thu, 10 Apr 2025 16:39:59 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 1744295991582414.3715086638133;
 Thu, 10 Apr 2025 07:39: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: acb3aad9-1619-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; t=1744295995; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=NMjP3rkufgynvpZUbJzCIdtfuo/imKAT5E8tNC9u7Lkjk4fh9r3UwMpRgD8aagB4gKx2MJwtF1kbAnqjRLSZKXfrqKxanFMNUO10Ai6Rc2tQO33huwmvaZRO63+1Ch++Q+lq/5sQfPYdD9iNdaz4dygTuNT6YIU3jgti/Kb0wVA=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1744295995; 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=5i6ZFNs8a3Tv/IjM9WDLbZHH5zlDLh4uruTrAMJE62k=; 
	b=RsJvrVaZ1NTfphr4zqkudxIXQ+vichrRdRls8N/RnEpYp1VK+RyPdjigFTFSLeumyl51DVMOb2L3gNJrjMv6plckFk8cyWrZDrrUxktZ+4NuSy09ultgR0/pNENqHTIUiKQQsQHT2GTWj2H3cvl7JzDS9NPCuNeL7Pie18Q36m8=
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=1744295995;
	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=5i6ZFNs8a3Tv/IjM9WDLbZHH5zlDLh4uruTrAMJE62k=;
	b=W07tV1ZzOb5H4YbwoXLKrb58eyM+SSP0ETH3Ek3SmYb1Lh1EiBTpWhhiprVdQ+Y9
	oJiUIdjbX/TvPQv1JlA0oYTwZ9RqkBh1Ule/5Qwj28hwmkGEIqvLw88UsNacCDA5XbU
	1GV4ygXpS1TA2MgkvjV5KSTmBNKR9Z7xUuh0TFi4=
Message-ID: <acb31eec-38ef-4e35-be71-9a6579a46159@apertussolutions.com>
Date: Thu, 10 Apr 2025 10:39:50 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/EFI: sanitize DLL characteristics in binary
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Marek Marczykowski <marmarek@invisiblethingslab.com>
References: <90354241-4ebb-4d52-809c-0af788d2b860@suse.com>
Content-Language: en-US
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
Autocrypt: addr=dpsmith@apertussolutions.com; keydata=
 xsJuBFYrueARCACPWL3r2bCSI6TrkIE/aRzj4ksFYPzLkJbWLZGBRlv7HQLvs6i/K4y/b4fs
 JDq5eL4e9BdfdnZm/b+K+Gweyc0Px2poDWwKVTFFRgxKWq9R7McwNnvuZ4nyXJBVn7PTEn/Z
 G7D08iZg94ZsnUdeXfgYdJrqmdiWA6iX9u84ARHUtb0K4r5WpLUMcQ8PVmnv1vVrs/3Wy/Rb
 foxebZNWxgUiSx+d02e3Ad0aEIur1SYXXv71mqKwyi/40CBSHq2jk9eF6zmEhaoFi5+MMMgX
 X0i+fcBkvmT0N88W4yCtHhHQds+RDbTPLGm8NBVJb7R5zbJmuQX7ADBVuNYIU8hx3dF3AQCm
 601w0oZJ0jGOV1vXQgHqZYJGHg5wuImhzhZJCRESIwf+PJxik7TJOgBicko1hUVOxJBZxoe0
 x+/SO6tn+s8wKlR1Yxy8gYN9ZRqV2I83JsWZbBXMG1kLzV0SAfk/wq0PAppA1VzrQ3JqXg7T
 MZ3tFgxvxkYqUP11tO2vrgys+InkZAfjBVMjqXWHokyQPpihUaW0a8mr40w9Qui6DoJj7+Gg
 DtDWDZ7Zcn2hoyrypuht88rUuh1JuGYD434Q6qwQjUDlY+4lgrUxKdMD8R7JJWt38MNlTWvy
 rMVscvZUNc7gxcmnFUn41NPSKqzp4DDRbmf37Iz/fL7i01y7IGFTXaYaF3nEACyIUTr/xxi+
 MD1FVtEtJncZNkRn7WBcVFGKMAf+NEeaeQdGYQ6mGgk++i/vJZxkrC/a9ZXme7BhWRP485U5
 sXpFoGjdpMn4VlC7TFk2qsnJi3yF0pXCKVRy1ukEls8o+4PF2JiKrtkCrWCimB6jxGPIG3lk
 3SuKVS/din3RHz+7Sr1lXWFcGYDENmPd/jTwr1A1FiHrSj+u21hnJEHi8eTa9029F1KRfocp
 ig+k0zUEKmFPDabpanI323O5Tahsy7hwf2WOQwTDLvQ+eqQu40wbb6NocmCNFjtRhNZWGKJS
 b5GrGDGu/No5U6w73adighEuNcCSNBsLyUe48CE0uTO7eAL6Vd+2k28ezi6XY4Y0mgASJslb
 NwW54LzSSM0uRGFuaWVsIFAuIFNtaXRoIDxkcHNtaXRoQGFwZXJ0dXNzb2x1dGlvbnMuY29t
 PsJ6BBMRCAAiBQJWK7ngAhsjBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRBTc6WbYpR8
 KrQ9AP94+xjtFfJ8gj5c7PVx06Zv9rcmFUqQspZ5wSEkvxOuQQEAg6qEsPYegI7iByLVzNEg
 7B7fUG7pqWIfMqFwFghYhQzOwU0EViu54BAIAL6MXXNlrJ5tRUf+KMBtVz1LJQZRt/uxWrCb
 T06nZjnbp2UcceuYNbISOVHGXTzu38r55YzpkEA8eURQf+5hjtvlrOiHxvpD+Z6WcpV6rrMB
 kcAKWiZTQihW2HoGgVB3gwG9dCh+n0X5OzliAMiGK2a5iqnIZi3o0SeW6aME94bSkTkuj6/7
 OmH9KAzK8UnlhfkoMg3tXW8L6/5CGn2VyrjbB/rcrbIR4mCQ+yCUlocuOjFCJhBd10AG1IcX
 OXUa/ux+/OAV9S5mkr5Fh3kQxYCTcTRt8RY7+of9RGBk10txi94dXiU2SjPbassvagvu/hEi
 twNHms8rpkSJIeeq0/cAAwUH/jV3tXpaYubwcL2tkk5ggL9Do+/Yo2WPzXmbp8vDiJPCvSJW
 rz2NrYkd/RoX+42DGqjfu8Y04F9XehN1zZAFmCDUqBMa4tEJ7kOT1FKJTqzNVcgeKNBGcT7q
 27+wsqbAerM4A0X/F/ctjYcKwNtXck1Bmd/T8kiw2IgyeOC+cjyTOSwKJr2gCwZXGi5g+2V8
 NhJ8n72ISPnOh5KCMoAJXmCF+SYaJ6hIIFARmnuessCIGw4ylCRIU/TiXK94soilx5aCqb1z
 ke943EIUts9CmFAHt8cNPYOPRd20pPu4VFNBuT4fv9Ys0iv0XGCEP+sos7/pgJ3gV3pCOric
 p15jV4PCYQQYEQgACQUCViu54AIbDAAKCRBTc6WbYpR8Khu7AP9NJrBUn94C/3PeNbtQlEGZ
 NV46Mx5HF0P27lH3sFpNrwD/dVdZ5PCnHQYBZ287ZxVfVr4Zuxjo5yJbRjT93Hl0vMY=
In-Reply-To: <90354241-4ebb-4d52-809c-0af788d2b860@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ZohoMailClient: External

On 4/2/25 04:51, Jan Beulich wrote:
> In GNU ld --disable-reloc-section implies --disable-dynamicbase (and
> also --disable-high-entropy-va, just fyi). Therefore to yield
> functionally identical binaries independent of whether mkreloc needs to
> come into play, add --dynamicbase as well.
> 
> GNU ld further defaults to --high-entropy-va (along with --dynamicbase
> and --nxcompat) unless "Cygwin-like". This seems wrong to me; that
> default should be dependent upon "MinGW-like" instead; for the purpose
> of building EFI binaries with a PE32+-capable ELF linker neither
> "Cygwin-like" nor "MinGW-like" ought to be true. We certainly don't mean
> to have this bit set in the DLL characteristics, so suppress its
> setting.
> 
> Sadly while --high-entropy-va is supported by GNU ld 2.25,
> --disable-high-entropy-va was introduced only in 2.36. Luckily the
> defaulting to --high-entropy-va was also only introduced in 2.36. Plus
> --disable-reloc-section was introduced precisely there, too. Hence
> leverage the probing we do as to base relocation generation, to also
> determine whether to pass --disable-high-entropy-va.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> I remain uncertain about the applicability of DLL characteristics to
> non-DLLs, i.e. images without IMAGE_FILE_DLL set; current MS doc says
> nothing either way. Yet producing consistent binaries still seems
> desirable, even if the field wasn't to be used by loaders.
> 
> --- a/xen/arch/x86/arch.mk
> +++ b/xen/arch/x86/arch.mk
> @@ -113,6 +113,7 @@ efi-nr-fixups := $(shell LC_ALL=C $(OBJD
>   
>   ifeq ($(efi-nr-fixups),2)
>   MKRELOC := :
> +EFI_LDFLAGS += --disable-high-entropy-va
>   else
>   MKRELOC := arch/x86/efi/mkreloc
>   # If the linker produced fixups but not precisely two of them, we need to
> @@ -123,6 +124,8 @@ EFI_LDFLAGS += --disable-reloc-section
>   endif
>   endif
>   
> +EFI_LDFLAGS += --dynamicbase
> +
>   endif # $(XEN_BUILD_PE)
>   
>   export XEN_BUILD_EFI XEN_BUILD_PE

Seems straightforward, will rely on your knowledge of binutils that 
there are no unattended effects from the flags.

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


From xen-devel-bounces@lists.xenproject.org Thu Apr 10 14:51:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 14:51:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.945825.1343929 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2tEv-0004JZ-G4; Thu, 10 Apr 2025 14:50:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 945825.1343929; Thu, 10 Apr 2025 14:50: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 1u2tEv-0004JS-DZ; Thu, 10 Apr 2025 14:50:49 +0000
Received: by outflank-mailman (input) for mailman id 945825;
 Thu, 10 Apr 2025 14:50: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=ged3=W4=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u2tEu-0004JM-9j
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 14:50:48 +0000
Received: from NAM12-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam12on2062b.outbound.protection.outlook.com
 [2a01:111:f403:200a::62b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2e6081b3-161b-11f0-9eac-5ba50f476ded;
 Thu, 10 Apr 2025 16:50:46 +0200 (CEST)
Received: from BL1PR13CA0026.namprd13.prod.outlook.com (2603:10b6:208:256::31)
 by IA1PR12MB8585.namprd12.prod.outlook.com (2603:10b6:208:451::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.21; Thu, 10 Apr
 2025 14:50:39 +0000
Received: from BL6PEPF00020E63.namprd04.prod.outlook.com
 (2603:10b6:208:256:cafe::37) by BL1PR13CA0026.outlook.office365.com
 (2603:10b6:208:256::31) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.11 via Frontend Transport; Thu,
 10 Apr 2025 14:50:39 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BL6PEPF00020E63.mail.protection.outlook.com (10.167.249.24) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8632.13 via Frontend Transport; Thu, 10 Apr 2025 14:50:39 +0000
Received: from localhost (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; Thu, 10 Apr
 2025 09:50:35 -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: 2e6081b3-161b-11f0-9eac-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Y5HWmD8eDZCrG2dVHdu+OM+LLe19TzzXomynDtsfUX1gWtYg4BjQe1DvoTmMNnspTzmZUg/IsFooWE+ZMlTzjMZseYjVUIplyusQrpwnxTtQHfnlOQBbNinESQqAH34CPMC4i8ZPo7RENgHTfUJayA9inlOjJ0t+zrsSyZp7+BBkhM3J3KwJ21ED5CczfxOrBuSWORuPFku/YMDJX2248QwqEXHo7hdmLrw2gmsWj4xBCglxx2i2TdZZhc29UC1XvwWzhR2f931iPzpv4t8DZ4mjQIEJWW+P/2qrH/D9FoQaJFZcM5SyAtwLd4Hfuley1fY98DDAfr1oxm+1BecoxQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=BsZCMLM8fuXEze6eAp5yW+8gSJPL3qLdf1XtYTjFS8Q=;
 b=seHar2if7gGGnNWAUiE2BLIJ64LzsWoHSjTtS9+lPQHqQe3jt8YD983Rg4rvtvisoCP15rwTG7OWxvzWMdzjayNaT+akwOfcbkfiY2UK0pTkMn0Ilowu7qzoXuIdFVlwoRTUua8wIHHcTk5h0nwHWfAy5KgxLcUlnhC7LMR+w+0PXdzyRMLJ8Pfwfk63L4+t8Vvw5mmGFoS8moQqBfLIogHDkptV7+bRTmrm6ig9BYVWKtpE/CUFHp/TaMTZrENoI6AOPCUAi8lNY2kaJFczKiCF5LgIlFJZRfDXxTfdvHaBpIF1HAhk7DxwMq+UX/DzreOZQHen6oVKmDgbRXebJQ==
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=BsZCMLM8fuXEze6eAp5yW+8gSJPL3qLdf1XtYTjFS8Q=;
 b=iPDJ54jEfJPOwyAq6UNuzETW2e3t8rA2V+B5uRBCczJdSJXFTURBVvBKeCsKYJojgaW9oyENmp/kW1Mn9+2CKoJQ9TBfLvU7NhnL6FMJFBM80ZgWMBG9RaSYYaxqSWx4MPSX9KWF7dY+C1ht+chKmbWr+8lKBUw9lDrHtVZQbjE=
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
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Thu, 10 Apr 2025 15:50:31 +0100
Message-ID: <D931JU067Z8D.318WN4K98QS8Z@amd.com>
CC: "Daniel P. Smith" <dpsmith@apertussolutions.com>, Jason Andryuk
	<jason.andryuk@amd.com>, Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	"Stefano Stabellini" <sstabellini@kernel.org>, Michal Orzel
	<michal.orzel@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>
Subject: Re: [PATCH v3 07/16] x86/hyperlaunch: initial support for
 hyperlaunch device tree
From: Alejandro Vallejo <agarciav@amd.com>
To: Jan Beulich <jbeulich@suse.com>
X-Mailer: aerc 0.20.1
References: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-8-agarciav@amd.com>
 <04fcb576-7a6f-48d9-abb5-72f5fd728013@suse.com>
In-Reply-To: <04fcb576-7a6f-48d9-abb5-72f5fd728013@suse.com>
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: BL6PEPF00020E63:EE_|IA1PR12MB8585:EE_
X-MS-Office365-Filtering-Correlation-Id: 89246d51-4dad-410e-1dc1-08dd783f0f5d
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?K0RGN0V1NmNDUGlmMk9DaC8yQnh0QzFOYmdDN0tNT0hhSGhHWGl2Yk9iRzRC?=
 =?utf-8?B?d1BKeFh5NlJ5bEpjbVpXVVJuV3pycDNCY0ZxTVdYUzRSSzJyOXcvVGNsQ0Fs?=
 =?utf-8?B?V1MvQXE1SXkvTXNRNjJrSnQyaXZDRXQyUFIrejVDejh4YzBJdnExT3ZkUkh6?=
 =?utf-8?B?WjJRYU11cFY5MEFnM1E2aS96b3NSZGpDTVJkZHNmaEpETjk0YkFITUhmY2ly?=
 =?utf-8?B?NXVpNnRuRHJrZGc5eXBuS0E1N29qZnR3TngwcE1RQm8wMER5d1kvOHdvVjR0?=
 =?utf-8?B?ODIreUpmQ2FPUXJtSFlJa3JiWXZ1Q0VYY2hKWEdQNWowMHYwTGdTRTFhWWJo?=
 =?utf-8?B?TmNBb293WVZGdDF0ZzdmSExVWld5ZnNabGRCTVdWVkpwRnZHQjEvcWJIYkZ0?=
 =?utf-8?B?ODA3SFVxS0tVcm9WVFhVQzI1ZEtENU42a3V1TGJ2Z2l2dThZdmkvQ1g0NzND?=
 =?utf-8?B?eWtiYytYc0JncStIdi9RV0h6a3RjODduRG1LdEx3b1lPMUdSYlBtR1lSTXlM?=
 =?utf-8?B?TFR5NkI3N2lsd2ZPNUpLbmMyUUhHWWJTeGludGNGMGU0MFFwcXRhVjdhZ1d5?=
 =?utf-8?B?d3RZS08yMDE2bGpIN21NbGljRUFEK0R0c0ovM3pzWS9LRU5HM2trVGZFVWY0?=
 =?utf-8?B?UHNidTR2cVFlc0F5ZkZjWi92SERzeHhXMmJ0d0tLVngzT21NdWcvd2MrbW9m?=
 =?utf-8?B?cG1HTDRSdVAybDhiYTBGeWlteHhlS0xvVEFWRGEvNTZjZEx6NDFJTnhKcDBB?=
 =?utf-8?B?TSt6ckdjZjd2WmRKYjZiaVBlVHpIZ1ZVZG9vNk9aaXNaY0dZaGFXRklkOFRL?=
 =?utf-8?B?akVkamdHZ1dTeXAzcVBtaldMdEdwekhwSHBUNkdtT2ZMZzdaenE2endZTVFy?=
 =?utf-8?B?Yk53RGw2L2E0U3RZWXk3aVF0eVNEQzA1TG9jaEtTV0JzUmFJSGpIQ0t5OHcy?=
 =?utf-8?B?UTk1YjYvaVVUbjhJR1N6UXp2ajVtM282VlZ6NWhKcEcwMVpzMUdoRFJ0bTlP?=
 =?utf-8?B?VWxWYnM5K25pRitBbUw3d1lBUTB4YnZvdURWUS9nZVQzaEJPRDIwbUpFUXc3?=
 =?utf-8?B?NURvUE5QUFJaYU90N0NEc2x4aU5OTnV2TTJENjRHUVNOS2pwZWhNMDA5UzVG?=
 =?utf-8?B?aEoyUTVqLzJFYjg1SVhuc1pDckM3UmJpOUtqK2VtTGtBNUdYTEF3RkZqLzRG?=
 =?utf-8?B?L1lKd2p4VjNyNEppS2d0S2ExRUlWYXpHSXBjM1BCMFB2cGRzajdPWHMxcWVJ?=
 =?utf-8?B?MkRyQ2FkSktkWlVyaXJPamF2ZnBTb3RnOXZENWFYQ0h4Y0w5bzBIcURwRElp?=
 =?utf-8?B?Y3JwRENIbXhORGlHdXU1UUR1bmpCeHBSNGpMZ3VOcGx0ZHg2WUQ3cENMazdi?=
 =?utf-8?B?YmxpbkgzdU1uZ2NpcUdpUmNPNVJEQkJzelNUM1VudkQzQVQ5eGViTHFWM1dv?=
 =?utf-8?B?TU9POWVOd0NiV3lmV1Z0UndycFBkRzNZeWxQakR0Z3BqMlBTMXM1aUtraG4x?=
 =?utf-8?B?dFNlMjJqK2tMU1IwSGZ4dVBRT2JyN05MZklZRzY0VFNCQkwwV1Ezd0ZuT21p?=
 =?utf-8?B?VnhrTCtYSVBVSTIzOXppV2NWOHYxY2FJcjVFeEdpRU1zblRQRUZwZFc3YVdZ?=
 =?utf-8?B?cVlBYThXWDB5cDVVNmFia01pQlRPdWZud25CU1A4U0YvdjBnZldtU2hWazRv?=
 =?utf-8?B?ejdpc0NOQmhMRUZDQmorWWJaTEp6OU42NFcrNENCMW5KNG4wV2FVS0s5TWti?=
 =?utf-8?B?TTlkUnRmVmNXdmZOWmMyQlNHeGlMUklpUXJCZEo3T0lWa2Jlc3pnNDZEUkhV?=
 =?utf-8?B?NUNFUzMyUXR4eXcvSFowcWpVOVFsZ3NSVWxuTzFvVk5pTmUvMzFESjY2OTdm?=
 =?utf-8?B?YnlLU3plQ3JQbzB4dDBNZWhmL2xoOTNFUXZJdkdkazRHRDRCUlhNdFo0Uk1y?=
 =?utf-8?B?Y2JzYm9HK3I0SmlZaXRmV21DeEdrNC9tTkZQU25QeGpZMUtPNTVCQjRLK1dy?=
 =?utf-8?Q?Aksmn0uDROVsLrxqaA3rsZehyiiwFg=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)(82310400026)(376014)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Apr 2025 14:50:39.2043
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 89246d51-4dad-410e-1dc1-08dd783f0f5d
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:
	BL6PEPF00020E63.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB8585

On Thu Apr 10, 2025 at 11:10 AM BST, Jan Beulich wrote:
> On 08.04.2025 18:07, Alejandro Vallejo wrote:
>> --- a/xen/arch/x86/domain-builder/core.c
>> +++ b/xen/arch/x86/domain-builder/core.c
>> @@ -44,6 +44,21 @@ void __init builder_init(struct boot_info *bi)
>>              break;
>>          }
>>      }
>> +
>> +    if ( bi->hyperlaunch_enabled )
>> +    {
>
> Not knowing what else if going to appear here and in what shape, could th=
e
> if() here be avoided by making case blocks in the earlier switch setting
> the field to false (which is kind of redundant anyway with it starting ou=
t
> false) use "return" instead of "break"? The the setting of the field to
> true could also be centralized below the switch().

Looking ahead in the patchlist, not much. There's an else clause for
non-hyperlaunch with code picked from setup.c . It could very well stay
there and prevent core.c from being included at all, removing the if
guards here as well when the file is no longer included.

>
>> --- a/xen/arch/x86/domain-builder/fdt.c
>> +++ b/xen/arch/x86/domain-builder/fdt.c
>> @@ -13,6 +13,36 @@
>> =20
>>  #include "fdt.h"
>> =20
>> +static int __init find_hyperlaunch_node(const void *fdt)
>> +{
>> +    int hv_node =3D fdt_path_offset(fdt, "/chosen/hypervisor");
>> +
>> +    if ( hv_node >=3D 0 )
>> +    {
>> +        /* Anything other than zero indicates no match */
>> +        if ( fdt_node_check_compatible(fdt, hv_node, "hypervisor,xen") =
)
>> +            return -ENODATA;
>> +        else
>> +            return hv_node;
>
> Could I talk you into omitting such unnecessary "else"?

Yes, sure.

>
>> @@ -20,7 +50,41 @@ int __init has_hyperlaunch_fdt(const struct boot_info=
 *bi)
>> =20
>>      if ( !fdt || fdt_check_header(fdt) < 0 )
>>          ret =3D -EINVAL;
>> +    else
>> +        ret =3D find_hyperlaunch_node(fdt);
>> +
>> +    bootstrap_unmap();
>> +
>> +    return ret < 0 ? ret : 0;
>> +}
>> +
>> +int __init walk_hyperlaunch_fdt(struct boot_info *bi)
>> +{
>> +    int ret =3D 0, hv_node, node;
>> +    const void *fdt =3D bootstrap_map_bm(&bi->mods[HYPERLAUNCH_MODULE_I=
DX]);
>> +
>> +    if ( unlikely(!fdt) )
>> +        return -EINVAL;
>> +
>> +    hv_node =3D find_hyperlaunch_node(fdt);
>> +    if ( hv_node < 0 )
>> +    {
>> +        ret =3D hv_node;
>> +        goto err_out;
>> +    }
>> +
>> +    fdt_for_each_subnode(node, fdt, hv_node)
>> +    {
>> +        ret =3D fdt_node_check_compatible(fdt, node, "xen,domain");
>> +        if ( ret =3D=3D 0 )
>> +            bi->nr_domains++;
>> +    }
>> +
>> +    /* Until multi-domain construction is added, throw an error */
>> +    if ( !bi->nr_domains || bi->nr_domains > 1 )
>
> Simply "!=3D 1"?

That would be simpler, yes :)

It's all temporary until the restriction is lifted later on, but will do.

>
>> --- a/xen/arch/x86/domain-builder/fdt.h
>> +++ b/xen/arch/x86/domain-builder/fdt.h
>> @@ -11,11 +11,16 @@ struct boot_info;
>> =20
>>  #ifdef CONFIG_DOMAIN_BUILDER
>>  int has_hyperlaunch_fdt(const struct boot_info *bi);
>> +int walk_hyperlaunch_fdt(struct boot_info *bi);
>>  #else
>>  static inline int __init has_hyperlaunch_fdt(const struct boot_info *bi=
)
>>  {
>>      return -EINVAL;
>>  }
>> +static inline int __init walk_hyperlaunch_fdt(struct boot_info *bi)
>> +{
>> +    return -EINVAL;
>> +}
>
> There's no need for this stub (nor the has_hyperlaunch_fdt() one, as I
> notice only now) - even with present arrangements calling code is guarded
> such that DCE will take care of eliminating the call, and hence having a
> declaration suffices.
>
> Jan

There's some refactoring to do for other helpers later on, but sure. It
should be fine.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Thu Apr 10 14:51:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 14:51:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.945826.1343940 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2tF2-0004a7-Mm; Thu, 10 Apr 2025 14:50:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 945826.1343940; Thu, 10 Apr 2025 14: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 1u2tF2-0004Zy-K4; Thu, 10 Apr 2025 14:50:56 +0000
Received: by outflank-mailman (input) for mailman id 945826;
 Thu, 10 Apr 2025 14: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=kj+o=W4=linux.ibm.com=agordeev@srs-se1.protection.inumbo.net>)
 id 1u2tF1-0004Z1-Fl
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 14:50:55 +0000
Received: from mx0b-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com
 [148.163.158.5]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3104c2cc-161b-11f0-9ffb-bf95429c2676;
 Thu, 10 Apr 2025 16:50:49 +0200 (CEST)
Received: from pps.filterd (m0353725.ppops.net [127.0.0.1])
 by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 53AEQ4q4003967;
 Thu, 10 Apr 2025 14:50:38 GMT
Received: from pps.reinject (localhost [127.0.0.1])
 by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 45x0405aj7-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Thu, 10 Apr 2025 14:50:37 +0000 (GMT)
Received: from m0353725.ppops.net (m0353725.ppops.net [127.0.0.1])
 by pps.reinject (8.18.0.8/8.18.0.8) with ESMTP id 53AEfDgF001462;
 Thu, 10 Apr 2025 14:50:37 GMT
Received: from ppma12.dal12v.mail.ibm.com
 (dc.9e.1632.ip4.static.sl-reverse.com [50.22.158.220])
 by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 45x0405aj4-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Thu, 10 Apr 2025 14:50:37 +0000 (GMT)
Received: from pps.filterd (ppma12.dal12v.mail.ibm.com [127.0.0.1])
 by ppma12.dal12v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 53AC31SV024610;
 Thu, 10 Apr 2025 14:50:36 GMT
Received: from smtprelay01.fra02v.mail.ibm.com ([9.218.2.227])
 by ppma12.dal12v.mail.ibm.com (PPS) with ESMTPS id 45ueutpp0w-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Thu, 10 Apr 2025 14:50:36 +0000
Received: from smtpav04.fra02v.mail.ibm.com (smtpav04.fra02v.mail.ibm.com
 [10.20.54.103])
 by smtprelay01.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id
 53AEoYcK56623564
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Thu, 10 Apr 2025 14:50:34 GMT
Received: from smtpav04.fra02v.mail.ibm.com (unknown [127.0.0.1])
 by IMSVA (Postfix) with ESMTP id CFFC920043;
 Thu, 10 Apr 2025 14:50:34 +0000 (GMT)
Received: from smtpav04.fra02v.mail.ibm.com (unknown [127.0.0.1])
 by IMSVA (Postfix) with ESMTP id 772A620040;
 Thu, 10 Apr 2025 14:50:34 +0000 (GMT)
Received: from li-008a6a4c-3549-11b2-a85c-c5cc2836eea2.ibm.com (unknown
 [9.155.204.135])
 by smtpav04.fra02v.mail.ibm.com (Postfix) with ESMTPS;
 Thu, 10 Apr 2025 14:50:34 +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: 3104c2cc-161b-11f0-9ffb-bf95429c2676
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=BYsGu8041TJKDiTwC4nSOTLKvk5gUh
	74iryFT/a8d94=; b=GHSeuzsUYd5nnNQMYil5RelPGATOvgyAywzOxJ8ecP/SWP
	pn/mbmYaHdwCwUMAiJchyY30pmPlbSCMFFwBLGsMlSs39dXVX8wR1GWOY61y+0I9
	P0fVUW4aYmRCJt2TXf7GxdcbhCjv+LYQ2vBPvnBpnFU0t6CE38HS29clGo+4f/nj
	DIStYZ76sdRxSSc36EKkGsYDNAaysM2Veay/8iLlowkE4hGgnio8RuAPMxt6K8FW
	8xXMFJKzHph+Prt3GToaVI/MY56YzACT+pxcQ5p8770ENhkmVA/kVzvtqNT9aV+e
	oRgC3ZC/6bo4KGJ+lkxpw9SfI/8xtksuUdeq23UQ==
Date: Thu, 10 Apr 2025 16:50:33 +0200
From: Alexander Gordeev <agordeev@linux.ibm.com>
To: Andrew Morton <akpm@linux-foundation.org>,
        Andrey Ryabinin <ryabinin.a.a@gmail.com>
Cc: Hugh Dickins <hughd@google.com>, Nicholas Piggin <npiggin@gmail.com>,
        Guenter Roeck <linux@roeck-us.net>, Juergen Gross <jgross@suse.com>,
        Jeremy Fitzhardinge <jeremy@goop.org>, linux-kernel@vger.kernel.org,
        linux-mm@kvack.org, kasan-dev@googlegroups.com,
        sparclinux@vger.kernel.org, xen-devel@lists.xenproject.org,
        linuxppc-dev@lists.ozlabs.org, linux-s390@vger.kernel.org,
        stable@vger.kernel.org
Subject: Re: [PATCH v2 3/3] mm: Protect kernel pgtables in
 apply_to_pte_range()
Message-ID: <Z/fauW5hDSt+ciwr@li-008a6a4c-3549-11b2-a85c-c5cc2836eea2.ibm.com>
References: <cover.1744128123.git.agordeev@linux.ibm.com>
 <ef8f6538b83b7fc3372602f90375348f9b4f3596.1744128123.git.agordeev@linux.ibm.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <ef8f6538b83b7fc3372602f90375348f9b4f3596.1744128123.git.agordeev@linux.ibm.com>
X-TM-AS-GCONF: 00
X-Proofpoint-ORIG-GUID: qOyZ_qtfAnXBqjGgzKrxZe6XNJEPhu2V
X-Proofpoint-GUID: IFxT-UrSu4Mf43qBHxm909ZShflClWgF
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1095,Hydra:6.0.680,FMLib:17.12.68.34
 definitions=2025-04-10_03,2025-04-10_01,2024-11-22_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0
 lowpriorityscore=0 clxscore=1015 malwarescore=0 spamscore=0 bulkscore=0
 impostorscore=0 priorityscore=1501 suspectscore=0 mlxlogscore=557
 phishscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.19.0-2502280000 definitions=main-2504100105

On Tue, Apr 08, 2025 at 06:07:32PM +0200, Alexander Gordeev wrote:

Hi Andrew,

> The lazy MMU mode can only be entered and left under the protection
> of the page table locks for all page tables which may be modified.

Heiko Carstens noticed that the above claim is not valid, since
v6.15-rc1 commit 691ee97e1a9d ("mm: fix lazy mmu docs and usage"),
which restates it to:

"In the general case, no lock is guaranteed to be held between entry and exit
of the lazy mode. So the implementation must assume preemption may be enabled"

That effectively invalidates this patch, so it needs to be dropped.

Patch 2 still could be fine, except -stable and Fixes tags and it does
not need to aim 6.15-rcX. Do you want me to repost it?

Thanks!


From xen-devel-bounces@lists.xenproject.org Thu Apr 10 14:54:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 14:54:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.945867.1343949 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2tIt-0006R3-5i; Thu, 10 Apr 2025 14:54:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 945867.1343949; Thu, 10 Apr 2025 14: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 1u2tIt-0006Qw-3B; Thu, 10 Apr 2025 14:54:55 +0000
Received: by outflank-mailman (input) for mailman id 945867;
 Thu, 10 Apr 2025 14:54: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=w6Mj=W4=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u2tIs-0006Qp-8U
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 14:54:54 +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 c137c8e8-161b-11f0-9eac-5ba50f476ded;
 Thu, 10 Apr 2025 16:54:51 +0200 (CEST)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-43cec5cd73bso7332925e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 10 Apr 2025 07:54:51 -0700 (PDT)
Received: from [10.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-43f2338d6ebsm56825265e9.2.2025.04.10.07.54.49
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 10 Apr 2025 07:54: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: c137c8e8-161b-11f0-9eac-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744296890; x=1744901690; 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=8kgeECv7qU2yQw36LJ4ym/kjgwi3QCF6RYMPxFIQhKI=;
        b=R20tMyHggDB/UULH0GLzlkmLH7ZtUjjhvxvBD/9+y4uvYqF4FRecZT+LigAsnKoc2o
         ZjVL2JzaoFJrrXChxdbXd02vVX3Qad1+iIS89SqzT8ILH6hdJ88N8l70jhNr6lZZFaOy
         YQXP5LAzHcA6ip0UoO1gnjPzm5ST/BheQ+ZtYk0JINEvIIettKOJjLrB+nsybImf6vYB
         wYsPUEPu8399GuGbrqVcCu9vyJ/ESQV83UVLbZ1uxsgQ1R34glwL2wPDMPOfcJC8Bou4
         H9qICaOB/lP7Qb0GhPgWNeyZCzC4QVvHQy0JFxy1ES+MxzOD04wn2iiZ2mVL1+AYKjCw
         9BaA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744296890; x=1744901690;
        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=8kgeECv7qU2yQw36LJ4ym/kjgwi3QCF6RYMPxFIQhKI=;
        b=W+LD/c+yaboNeqAReT5k8p9kDe1Pr+Fp6QFZ2+eb8IqJbf9phhtuENY/ftyD+/LXFf
         Sy+EYDQkYXYKS0ht0TKcwr6jNwB4hRXk8CIanKxA2YnCOVfNuF3sQT9taOf24+IakXf1
         TgBTKTRtFZhvEa/VqWKan8NgcR+TIjUQy0tUCY2SylLymiLvazmEoLGl2TsRXrNQOZzK
         qHIH6NJY/Obr0eQUS0QchOIzXXEGbo/YD5SRua8Coe9vzk3gxvSVamvRQUN5U3+prLqA
         Tul5KEx6vsDdcLlbRQqrUQ9W9RHVCchD8DihT4MYFo+NlFlC3qm/S4Z5lk8riaFiOTmA
         pNfA==
X-Gm-Message-State: AOJu0Yyt5z/I0wG4QF6U0n0Q4wqLKmMh+GtVeVyTHiYrr8UyhSdEcZR0
	2QGb+CRhUKxm73nSaCuPkB84zsJcIoZ93KM8JJlnzTGa+Jy0vmMn8jsm/nnsH7oOwCcyiEg06+A
	=
X-Gm-Gg: ASbGncvCG0RgaLtkyBpw/yOaX/qR2SNJ0jChtO3kcq6tiAN8W3+PWk3a3NHfXumWc/L
	z4HhvhHXg56IhHZOiJBb3hcsAO78j/bV2EE/s8YQdknkYKNzHkibPLS5TJOKEAcgLSKK3dswalp
	K08fFP3vLhdstAb29MNtm47OYbyuPFKf1OfTVWZ3hVOlaxW9tS9hFQRbsupvi1z4U9fO89zZFRx
	NkgaM5flQIn5TPVIaKc4oHrXhhf4R2jgU40dFr3BTaOSySP35cmhWlceV47QvzBYKueovZEnW2Z
	D/L+TB2XzGmNyZJMmznEiyCFPIlLtPCNv4Gr4LO8bNEQC8yqfI2YmDlJuBHGPj1KtW6BU7qcrzU
	d/01p/wkXn4u1b1YYRuUoracYx2h73Mp41Av1
X-Google-Smtp-Source: AGHT+IFOQtYzc3LE4JjUMl0WzMMMoPe7xTA1Hz7Pfr9sARpp+mtHa6Tn3vwr2RMt5xj4xui4oemryg==
X-Received: by 2002:a05:600c:3591:b0:43d:24d:bbe2 with SMTP id 5b1f17b1804b1-43f2d97d6cbmr30979885e9.28.1744296890609;
        Thu, 10 Apr 2025 07:54:50 -0700 (PDT)
Message-ID: <2bcde8df-4a11-4ec7-acf3-618576de717e@suse.com>
Date: Thu, 10 Apr 2025 16:54:48 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Julien Grall <julien@xen.org>, Stefano Stabellini
 <sstabellini@kernel.org>, Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH] Arm: cpu_*_map adjustments
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+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

First, they all start out zeroed. There's no point doing an initial
cpumask_clear() on them.

Next, only cpu_online_map may be altered post-boot, and even that only
rarely. Add respective placement attributes.

Finally, cpu_present_map really isn't anything more than an alias of
cpu_possible_map. Avoid the copying, and have the linker provide the
symbol (if needed in the first place; it is needed right now as
common code references the symbol).

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
I would have preferred to use __attribute__((alias(...))), but that
apparently (and following the doc) can't be used when a declaration of
the to-be-provided symbol is present earlier. 

With the cpumask_clear()s dropped, the containing function's name is
now yet more out of sync with what the function does. On x86 we call a
similar thing smp_prepare_boot_cpu().

With x86 getting away without cpu_possible_map I wonder if we shouldn't
globally fold that and cpu_present_map, under whichever is deemed the
more suitable name of the two. There's little point in having new ports
adding perhaps yet more inconsistencies there.

--- a/xen/arch/arm/smpboot.c
+++ b/xen/arch/arm/smpboot.c
@@ -35,9 +35,8 @@
 #undef virt_to_mfn
 #define virt_to_mfn(va) _mfn(__virt_to_mfn(va))
 
-cpumask_t cpu_online_map;
-cpumask_t cpu_present_map;
-cpumask_t cpu_possible_map;
+cpumask_t __read_mostly cpu_online_map;
+cpumask_t __ro_after_init cpu_possible_map;
 
 struct cpuinfo_arm cpu_data[NR_CPUS];
 
@@ -111,8 +110,6 @@ static void remove_cpu_sibling_map(int c
 void __init
 smp_clear_cpu_maps (void)
 {
-    cpumask_clear(&cpu_possible_map);
-    cpumask_clear(&cpu_online_map);
     cpumask_set_cpu(0, &cpu_online_map);
     cpumask_set_cpu(0, &cpu_possible_map);
     cpu_logical_map(0) = READ_SYSREG(MPIDR_EL1) & MPIDR_HWID_MASK;
@@ -312,8 +309,6 @@ smp_prepare_cpus(void)
 {
     int rc;
 
-    cpumask_copy(&cpu_present_map, &cpu_possible_map);
-
     rc = setup_cpu_sibling_map(0);
     if ( rc )
         panic("Unable to allocate CPU sibling/core maps\n");
--- a/xen/arch/arm/xen.lds.S
+++ b/xen/arch/arm/xen.lds.S
@@ -206,6 +206,8 @@ SECTIONS
   ELF_DETAILS_SECTIONS
 }
 
+PROVIDE(cpu_present_map = cpu_possible_map);
+
 /*
  * The assembly code use _start and XEN_VIRT_START interchangeably to
  * match the context.


From xen-devel-bounces@lists.xenproject.org Thu Apr 10 14:57:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 14:57:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.945823.1343960 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2tL0-0006yd-HO; Thu, 10 Apr 2025 14:57:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 945823.1343960; Thu, 10 Apr 2025 14:57: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 1u2tL0-0006yW-ET; Thu, 10 Apr 2025 14:57:06 +0000
Received: by outflank-mailman (input) for mailman id 945823;
 Thu, 10 Apr 2025 14:47: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=Nn6J=W4=gmail.com=alex.pentagrid@srs-se1.protection.inumbo.net>)
 id 1u2tBH-0002gy-5x
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 14:47:03 +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 a9269100-161a-11f0-9ffb-bf95429c2676;
 Thu, 10 Apr 2025 16:47:01 +0200 (CEST)
Received: by mail-lj1-x22b.google.com with SMTP id
 38308e7fff4ca-30bee1cb370so7246421fa.1
 for <xen-devel@lists.xenproject.org>; Thu, 10 Apr 2025 07:47:01 -0700 (PDT)
Received: from localhost.localdomain ([79.134.198.58])
 by smtp.gmail.com with ESMTPSA id
 38308e7fff4ca-30f465f77f0sm5397991fa.94.2025.04.10.07.46.59
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 10 Apr 2025 07:46: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: a9269100-161a-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1744296421; x=1744901221; 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=feZuaxrFBmW/7qEu/+5shM64Px/4u1yOOiSmxUSEtqg=;
        b=J47DkdVUsMqRQ+sec2xapJ2nPzaBDTcGbfA0Lqg+7d1RMHLSoGGmrSwMgsR4szWg2e
         qB1lZRXPo1SOo9zGg6SMbVZwBk5mf5grEgDbmN90dYRt5e3Oan2SGZudgBDzmfoJiGn0
         FPm33b/nzAHVyvjeMyS/tXbfirIXy2a4VX46Pq2fOwPyPlDWuSK+6yiMrEtmurKGlM4p
         x2kHQNPNwBbY6s6wgJhjb/SS+EHhPdkNYw6+zZ4Ae4ZOm9kSHvM/tLzvlzY/KuGPSXoA
         uBu0H4ja96YF+LrFOpPF6x6WlVtc/Nk5HbulA3imA3C5HZPS1Hpr7idXW5UoeMmZ9D7+
         6FCQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744296421; x=1744901221;
        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=feZuaxrFBmW/7qEu/+5shM64Px/4u1yOOiSmxUSEtqg=;
        b=HOuK+0VpYIgbkgbCOSKL+1hysxQcZbas7i/kCKsXxQXM8/xeXwxXWHB3kMeqbiEAjL
         l3xNw8WoAd2PpE5tNhaU2rYD9sKQ2g18+ho1UyLEFD5bvtAOXMfgzu19wLSKsWMlnboT
         P4K5Ykhot3z8Zjp1TXuYWLvjlz4DTlPPw+5skD7RYaQAhx0A7prcF/E9Xu550Tbtzi3A
         SrmpvRABlR9iW7TsbiIS1phgD847P0ZTMOgWsJaZ4IYHtgHvsD1HLwSSAzsBQ/Swls1y
         G5rhhtQByII60VKUoxlJSERoJPRTf8qN7Q5kQuBgD06s2r0gIzqE1FRbr0ZA6JwVY2I5
         zWyQ==
X-Forwarded-Encrypted: i=1; AJvYcCVihXI45YxcyhcPMI1qVZ/uACDXJvI+uRwZ/kptcLcmKtkr5buCpGuVGfb0czo0TSL/o09xwgPK/UI=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx+V5lYteK6WHg3yz1hzyslvB5hfgnP1rAQIsKOI7BL+GtqQYZY
	FOgyimXu/cSzBxYFCUnDcioAAT9EWZ2AV1PAeiVquWwKITRPrBZd
X-Gm-Gg: ASbGncvwSFYGan9+4jhiJ3TScwZQFQWQyxYUy+XEFbprNXXrY7IxT+XroAgyCE8Yb1+
	h85FZjfByxzDxCE21k2WdOxsiZk7aV64ljSaA7NNx/CrVtja/Z0BEVEbN2uFpn9SXxq7IPCsohl
	F6jpiJAIAA+4DD9HopUnh6qp+V2MrvhaCu/x1sZ+DZP3DNadtvrnKdx5vV2PncQPoFDWK0f34yv
	6xMJcm3S9IGaDxT6aEJbBsiHqYkA6q3nkVbY+YDIrgacLTvPAdy1OFjWIm2rpFu2L3bb9uN2RIV
	g0weuq77acH7aBcvd6dNzEd9fGRyFb1Bb1nkaEAhAJIYP/rbDSV4lSZXVqlIQbT6jI3Glw==
X-Google-Smtp-Source: AGHT+IHps2ex7WUHYRh1F6pfalqAS+t3xoH5n99yd6RdsrQzd/R4jAa7Rvgik+13jW6mwMSpuV3Rdg==
X-Received: by 2002:a2e:a98c:0:b0:30d:62a6:4431 with SMTP id 38308e7fff4ca-3103ea9cad7mr8840891fa.9.1744296420337;
        Thu, 10 Apr 2025 07:47:00 -0700 (PDT)
From: Aleksandr Partanen <alex.pentagrid@gmail.com>
To: qemu-devel@nongnu.org
Cc: Stefano Stabellini <sstabellini@kernel.org>,
	"Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
	xen-devel@lists.xenproject.org,
	Paul Durrant <paul@xen.org>,
	Anthony PERARD <anthony@xenproject.org>,
	Aleksandr Partanen <alex.pentagrid@gmail.com>
Subject: [PATCH] xen: mapcache: Fix finding matching entry
Date: Thu, 10 Apr 2025 17:46:04 +0300
Message-Id: <20250410144604.214977-1-alex.pentagrid@gmail.com>
X-Mailer: git-send-email 2.39.5
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

If we have request without lock and hit unlocked or invalid
entry during the search, we remap it immediately,
even if we have matching entry in next entries in bucket.
This leads to duplication of mappings of the same size,
and to possibility of selecting the wrong element
during invalidation and underflow it's entry->lock counter

Signed-off-by: Aleksandr Partanen <alex.pentagrid@gmail.com>
---
 hw/xen/xen-mapcache.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/hw/xen/xen-mapcache.c b/hw/xen/xen-mapcache.c
index 698b5c53ed..2c8f861fdb 100644
--- a/hw/xen/xen-mapcache.c
+++ b/hw/xen/xen-mapcache.c
@@ -376,12 +376,12 @@ tryagain:
 
     entry = &mc->entry[address_index % mc->nr_buckets];
 
-    while (entry && (lock || entry->lock) && entry->vaddr_base &&
-            (entry->paddr_index != address_index || entry->size != cache_size ||
+    while (entry && (!entry->vaddr_base ||
+            entry->paddr_index != address_index || entry->size != cache_size ||
              !test_bits(address_offset >> XC_PAGE_SHIFT,
                  test_bit_size >> XC_PAGE_SHIFT,
                  entry->valid_mapping))) {
-        if (!free_entry && !entry->lock) {
+        if (!free_entry && (!entry->lock || !entry->vaddr_base)) {
             free_entry = entry;
             free_pentry = pentry;
         }
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Apr 10 14:58:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 14:58:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.945892.1343970 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2tM6-0007YX-UI; Thu, 10 Apr 2025 14:58:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 945892.1343970; Thu, 10 Apr 2025 14:58: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 1u2tM6-0007YQ-Qa; Thu, 10 Apr 2025 14:58:14 +0000
Received: by outflank-mailman (input) for mailman id 945892;
 Thu, 10 Apr 2025 14:58: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=w6Mj=W4=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u2tM4-0007YE-TV
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 14:58: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 3658c503-161c-11f0-9ffb-bf95429c2676;
 Thu, 10 Apr 2025 16:58:07 +0200 (CEST)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-39149bccb69so783801f8f.2
 for <xen-devel@lists.xenproject.org>; Thu, 10 Apr 2025 07:58:07 -0700 (PDT)
Received: from [10.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-39d893773c1sm4962502f8f.24.2025.04.10.07.58.06
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 10 Apr 2025 07:58: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: 3658c503-161c-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744297087; x=1744901887; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=sn/h+VF9LatSkgYYPkgoWVF5L5WFJbZy7qkO5lRw3o4=;
        b=BCt1A7r0qXkrtpDL1pnz+D+4abp2NiLqZbu2bR7+8dhqm8KiEoQw7vzxEC3zH+I+st
         5OzH8N56vr7qdpMsk2iE37IqZZrS1HZot8NsZD9zw88Rn7KRvfCHFupW1g2htTlCqRoo
         SrLrexK9GLAE/YbiBW1A6y+DWGHs1hSG/z1mfCLwwJuaZ1W9yQqwxh6HVy+UWQ+dYgWK
         Pfz5DBFPDu0j9uvwcyU9T2ll6Xk/j++LGUg8y1abWozJkWu9VVbyQmnArTc1f4kGY9v+
         N8pLMQSqZMrS1tljwswa4t9fSu6K2dbkUj3nDQZLecReRvcM72R17XboG2OmQwtpZl0q
         Us1Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744297087; x=1744901887;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=sn/h+VF9LatSkgYYPkgoWVF5L5WFJbZy7qkO5lRw3o4=;
        b=SLWxp14Xz6rue84NyxIgMn5JyuYu5SehccqBa2j3qiSHJ+/mJNNzZqemECdviJtuN7
         L8U5hnHE4IKkYdmebscozfUZUyfrumDBINeuUU5R4qrdcwy81Nw7VhbgpSbWCTV2NEhq
         rxr6ilwx3DTor2qSwNwg5V6KyYBIjwY7lwoZL6VxdRR7+dbE4mVh1tk+8CFdd/wnqecU
         q/YKQF6nPndJThLj6wYhmKnyrmPLfXGQNEM5iJSuU8TwE0ioafVgYKy/8g/jp2pIMkYA
         r1wvHcOxwI7O2A/H8ZiUQq5KX5tuQXVc13tA3pN5c1S0txXncUoVP8FKQrflJSESK6PV
         Zmqw==
X-Forwarded-Encrypted: i=1; AJvYcCWmXj1gQcmtNwmOXTeO+VrW9sBhrOZsyvqnnPQQILtWQB4V7wdMMh431uWUm/meYXvVq/g0Z1XZTbY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwWoI+BL9EoAQVoUzENhbpGmG75jytTQLoK/S1c204V+8rZs8yz
	8/Q9xgoVAZpORvO9IqzxeGlfl1AuQgAlQIlRS6NroJH8P5klywDPzS+OIZoKYQ==
X-Gm-Gg: ASbGncv8d+751Q5tOeAfJ+8rYXaps+wPZoqtMpvy2+yS6akf9cof94UWY8CMGgm+7LV
	WXNFLEQAJCkZI+FT2wuYXMDfoaBaLITaseddO3v5v3V0bWEHC8bg0lzslvSXv4Kgr6J0HzG+oe0
	Eho8vpcVZuNQKbtFu4ph0smLS6Bd43kKg0NPhsYQjziLS7tCv6F2qNCpPsztLPDrgEEpCrh2YKW
	+PFwSv1zQ8jihA7WFQCQDjH5gqUptBjzaUWp95CxenMkMs9dUscT2vGJIONgDwzB774cVrk8IZh
	TsxDedcjg9vWMuOZ5e/b/i+XEQO68R099pTH9Zp2322P67M0jJ+o+bYv9/XWaGBztCIRjiKxQtn
	bkDc/+Uy6OzBm7Falvlw5fmLCxA==
X-Google-Smtp-Source: AGHT+IGIqjieEiyVolNh2HQzLRAn3e0RmmiFZ4qMA1cMccuTQo35GyoKuPLp7JZ+ONJ7sy7hVAgLXg==
X-Received: by 2002:a05:6000:4014:b0:391:31c8:ba59 with SMTP id ffacd0b85a97d-39d8f4655f9mr2454516f8f.4.1744297087111;
        Thu, 10 Apr 2025 07:58:07 -0700 (PDT)
Message-ID: <887e3990-a176-46fd-9697-6b89e87afb6c@suse.com>
Date: Thu, 10 Apr 2025 16:58:05 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/EFI: sanitize DLL characteristics in binary
To: "Daniel P. Smith" <dpsmith@apertussolutions.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Marek Marczykowski <marmarek@invisiblethingslab.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <90354241-4ebb-4d52-809c-0af788d2b860@suse.com>
 <acb31eec-38ef-4e35-be71-9a6579a46159@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: <acb31eec-38ef-4e35-be71-9a6579a46159@apertussolutions.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 10.04.2025 16:39, Daniel P. Smith wrote:
> On 4/2/25 04:51, Jan Beulich wrote:
>> --- a/xen/arch/x86/arch.mk
>> +++ b/xen/arch/x86/arch.mk
>> @@ -113,6 +113,7 @@ efi-nr-fixups := $(shell LC_ALL=C $(OBJD
>>   
>>   ifeq ($(efi-nr-fixups),2)
>>   MKRELOC := :
>> +EFI_LDFLAGS += --disable-high-entropy-va
>>   else
>>   MKRELOC := arch/x86/efi/mkreloc
>>   # If the linker produced fixups but not precisely two of them, we need to
>> @@ -123,6 +124,8 @@ EFI_LDFLAGS += --disable-reloc-section
>>   endif
>>   endif
>>   
>> +EFI_LDFLAGS += --dynamicbase
>> +
>>   endif # $(XEN_BUILD_PE)
>>   
>>   export XEN_BUILD_EFI XEN_BUILD_PE
> 
> Seems straightforward, will rely on your knowledge of binutils that 
> there are no unattended effects from the flags.
> 
> Acked-by: Daniel P. Smith <dpsmith@apertussolutions.com>

Thanks, but to clarify: If there's an issue here, it would be with the PE
loaders in the various EFI implementations; the binutils side is of little
concern (as to the effects of the flags).

Jan


From xen-devel-bounces@lists.xenproject.org Thu Apr 10 15:02:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 15:02:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.945904.1343980 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2tPj-0002Cu-C0; Thu, 10 Apr 2025 15:01:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 945904.1343980; Thu, 10 Apr 2025 15:01: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 1u2tPj-0002CO-9K; Thu, 10 Apr 2025 15:01:59 +0000
Received: by outflank-mailman (input) for mailman id 945904;
 Thu, 10 Apr 2025 15:01: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=w6Mj=W4=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u2tPh-00023z-KH
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 15:01:57 +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 be2bf83d-161c-11f0-9eac-5ba50f476ded;
 Thu, 10 Apr 2025 17:01:55 +0200 (CEST)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-43cfba466b2so10053875e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 10 Apr 2025 08:01:55 -0700 (PDT)
Received: from [10.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-43f20625ea4sm58085755e9.12.2025.04.10.08.01.52
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 10 Apr 2025 08:01:53 -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: be2bf83d-161c-11f0-9eac-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744297315; x=1744902115; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=MPZwXz5TmyHV371FcxCCpkULIn5V+T41xy3jEphy+zA=;
        b=E60f6ohmltcQF/qB4LPlMckHbNDfi5SEC2GQ6RopkTJKzjMtYt5SMsxReZe4QDw1TH
         ZsBFUaruVWoqVmjXWLZQwuD2+6uXSW41OzF1rqi6cFcta0r0bLXuwyKSRlsYUe3qr5Uv
         aIn1E6NPVorFEu+psorYncE90iIf0AVh646yaZheCWVm2TVRMHiHivYb+TMlmGmPHn1A
         72iGgcgFfdOJVXnaE+bndsMn9kkoSH4wBK2vzA9kZDq69H6YumlgBDT9NxH9ediEZdx6
         t8C7kVKJd1jG8JOE0TwnC6pfHr21U1eumddVinVOxEcNRcxfFjOTLhsEH5LQp+vRyX6F
         DmTw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744297315; x=1744902115;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=MPZwXz5TmyHV371FcxCCpkULIn5V+T41xy3jEphy+zA=;
        b=JmPPNBsVs9x5d6rd/F4XJ0SvU+c6aZbRRnJzPUSw/YinoPiOxjY+BclvicyjwrLXC5
         6PG2m+5nfNaxs5Ipb2+SCe6PpCtgFgskBkIggoT3JyfUYoBjQU6U+GyoN8CtA7wo2do4
         y85NNlTWotetnGFVLbCPHVeiRuwZvx31w8tljXub7e5TGKbjlrw+3fZRROMqsU9AIx5k
         rgoAEngCKORsI5AIPjESgS4qY28xxV2POIBVpspqBcNIrp5ae6VJYV/mxN8zMlkUN64d
         3SDDlyk5l3Y57gdRIcE2F03msgI5ai9D6kuAa9KS94Qn6bNLdUUFuREo81JQXMrF8hWl
         Cjmg==
X-Forwarded-Encrypted: i=1; AJvYcCW0W2f1K7ybZlgEv1HzdmNf+rNNiISteFFD2VJkkejSnQBi+BZqb8NcBJB4NZdQMhcDforaOsLyOkg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwrOVJVjmZbQcnVdbxBBL6Ln7VWt+wt5XxzDvWTTLqeV1iVh4zF
	c95dHpCNHJuhiuWGswWz8Co2WiwICTGe058c9Jr2tRtoe+1PinU5ZBJ5RvyYLA==
X-Gm-Gg: ASbGncsALkoCWjcXIpRmigpDdb6xdDTo8TL88G902F64Wan1OZn/L+ADjwG/a6k1hyE
	V0Kb92DeaBvBot9WDrjtB2stMkorg2ts+Wa7icBQ5Sy+tfqaHOQ3wl/bkUN4gpuyJfqHiyM4DAu
	RjYOpMLFqVnyCt8LCIxTeZ6Avfx+i6zp4fQvPd1YxjJMYyU2gmufMMoLBzJb4RrTupT5whKRCQk
	2MXMObCgb0cZyW1QgjAfq6NuBb+Ojuoe9Dwr1W5FmR5fbxyK8H6DL0vRabTMdoRP/1XlcGhR1LN
	s+A6Pv5aFU0i5NmdAwci/RhbsaHkvWQd/AWEiJD6k2fq8wzTNcef+T5BVmZSVadBySeQDUY3TLy
	jvrMTP2s1CxMsV/sKPwr30p7R/w==
X-Google-Smtp-Source: AGHT+IGlhV45oHYXIWlrsxMTMlSoQr60Q3YoKuqMyfG/6yIzPs/leajHOla1WEdeknNA8bqm626zDw==
X-Received: by 2002:a05:600c:1554:b0:43d:fa59:be39 with SMTP id 5b1f17b1804b1-43f2d9a0563mr30239595e9.33.1744297313578;
        Thu, 10 Apr 2025 08:01:53 -0700 (PDT)
Message-ID: <f0a14866-0f38-4f8d-8e11-993a58c7da7b@suse.com>
Date: Thu, 10 Apr 2025 17:01:50 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 01/16] x86/boot: introduce boot domain
To: "Daniel P. Smith" <dpsmith@apertussolutions.com>
Cc: Jason Andryuk <jason.andryuk@amd.com>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Michal Orzel <michal.orzel@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, Alejandro Vallejo <agarciav@amd.com>
References: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-2-agarciav@amd.com>
 <141229a0-2cd2-4886-b5e5-02c85b0ca5ab@suse.com>
 <7fa754f8-d785-45d8-b9da-de5c85bc793b@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: <7fa754f8-d785-45d8-b9da-de5c85bc793b@apertussolutions.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 10.04.2025 15:09, Daniel P. Smith wrote:
> On 4/9/25 02:24, Jan Beulich wrote:
>> On 08.04.2025 18:07, Alejandro Vallejo wrote:
>>> From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
>>>
>>> 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>
>>
>> Acked-by: Jan Beulich <jbeulich@suse.com>
> 
> I have to object because the meaningless rename is going cause 
> significant pain in the rebase of the follow-on series for no improved 
> code clarity.

Sorry, then an incremental patch undoing the rename that happened (with
appropriate justification) will need proposing - the patch here has gone
in already.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Apr 10 15:10:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 15:10:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.945933.1343991 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2tXK-0003HC-5m; Thu, 10 Apr 2025 15:09:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 945933.1343991; Thu, 10 Apr 2025 15:09: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 1u2tXK-0003H5-18; Thu, 10 Apr 2025 15:09:50 +0000
Received: by outflank-mailman (input) for mailman id 945933;
 Thu, 10 Apr 2025 15:09: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=S0bf=W4=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1u2tXI-0003Gz-KH
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 15:09:48 +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 d443d410-161d-11f0-9ffb-bf95429c2676;
 Thu, 10 Apr 2025 17:09:42 +0200 (CEST)
Received: from phl-compute-01.internal (phl-compute-01.phl.internal
 [10.202.2.41])
 by mailfout.stl.internal (Postfix) with ESMTP id 3C58011400F4;
 Thu, 10 Apr 2025 11:09:41 -0400 (EDT)
Received: from phl-mailfrontend-01 ([10.202.2.162])
 by phl-compute-01.internal (MEProxy); Thu, 10 Apr 2025 11:09:41 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 10 Apr 2025 11:09:39 -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: d443d410-161d-11f0-9ffb-bf95429c2676
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=fm2; t=1744297781;
	 x=1744384181; bh=v2g2wY6PHyh5SHheJVAGimZSOvjIAiR65LRo8ZuZmYg=; b=
	LswaTYYQwD9pFvkrqIyhm0Bqw1/a0QtNovPnz5NGyDh+3A2esZ5Ghm9o9oeDcZl9
	ySjUI2v7IKuuSZjV8ys3o5ZTAFA5e5RSpglF3C3Bfo98CzGFOAg8GENRcc4dJOg/
	eRKcl3w0RFHKFQLdkdL+xM5VbBDNx9vFPiwK3+VbM9CLZJ5BpjY8Koxdb82L5fBN
	w1dmyb9yYFAdpUkkA9+moq8slGFRPAzSyKlvpLwBp1i/9bbMHsuswk/rH72/KRrT
	LYhZkprh/2lNhbJ6PCXzTzUzqSiupoBVLJ74ibtdVK1+m2/ySjj+hdQf6EKj6OEc
	WZBwdu2wXzdOglnTA+TFFg==
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=fm2; t=
	1744297781; x=1744384181; bh=v2g2wY6PHyh5SHheJVAGimZSOvjIAiR65LR
	o8ZuZmYg=; b=pn/tEvwpDKep2OxLjJH+SFAHr1J8H9uiZ6yxD25aGs6jigiLhne
	YxkLK0N0fZe58AFj6xpX4la2vsSxGGzvIenIBKuIHsVDllZXPbU3xvNN99HWl5+g
	6B1J/0lotCg/OQcnStKo5jY3W9rNUZJIdMAVb25xrCws0r9af1AvkTdCd1aaVzxs
	kuIlzuE5LR8VYlotxBVqtxP8Emw3QAISGfyrcKCqK/W5Pw+NF63F2eEyGFuaXQAv
	QXU5h9EtTWfmJ25cOKReA4FXvEXL47cjSVkrZw4eTFqdma9T5Y6asXImGYs1g6Pf
	e6lgrqm+A7Zsc42WgYhAncWJGrGklI8PVzg==
X-ME-Sender: <xms:NN_3Z_iWJgTSHoKAGPEsZxAzPNxmTA8WxvCqUN9A1IKDN2C9gBdubg>
    <xme:NN_3Z8Azp_ShWKmCstAJmVy6x_kjDzPdKXFaBGIamc9Vi2lpeDY0bAK-bz7qsomQR
    HixAxNy7It7Aw>
X-ME-Received: <xmr:NN_3Z_HgD5AXWfUy8EULSET4uXGPZO-14G4ZkT19OAop459w6TdVgVcBnq8X_WcamOR2H53qt-syfbzwp3XLtyYklcWUio3bTQ>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvtdelvdegucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
    pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
    gvnhhtshculddquddttddmnecujfgurhepfffhvfevuffkfhggtggujgesghdtreertddt
    jeenucfhrhhomhepofgrrhgvkhcuofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuc
    eomhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecu
    ggftrfgrthhtvghrnhepgfduleetfeevhfefheeiteeliefhjefhleduveetteekveettd
    dvgeeuteefjedunecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhf
    rhhomhepmhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomh
    dpnhgspghrtghpthhtohepiedpmhhouggvpehsmhhtphhouhhtpdhrtghpthhtoheprghn
    ughrvgifrdgtohhophgvrhefsegtihhtrhhigidrtghomhdprhgtphhtthhopeigvghnqd
    guvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdprhgtphhtthhopegr
    nhhthhhonhihrdhpvghrrghrugesvhgrthgvshdrthgvtghhpdhrtghpthhtohepshhsth
    grsggvlhhlihhniheskhgvrhhnvghlrdhorhhgpdhrtghpthhtohepmhhitghhrghlrdho
    rhiivghlsegrmhgurdgtohhmpdhrtghpthhtoheptggrrhguohgvsegtrghrughovgdrtg
    homh
X-ME-Proxy: <xmx:NN_3Z8S46jv6udRq2Ec-sXq_HQR_cO3RgFN8MlOStvfuVi4rc1TTpQ>
    <xmx:NN_3Z8yH5O13CYyhbwzYNtfm2PL76U9h1RkyqL0veF-2hzIjn0zRiA>
    <xmx:NN_3Zy62RTU5KJOf61lG2EXyG-mrheEg8jm03LRmpfiPZqGCB-xBaQ>
    <xmx:NN_3Zxx3YZlEoGvnXRGuiiF39b4P6PmCFAvD-T8ZSKT7L5qSRwIHrg>
    <xmx:Nd_3Z0E5B4jJFCv877l12ivH6MBnraOIRB78hm98Rp4nyHwK4O-dJA1b>
Feedback-ID: i1568416f:Fastmail
Date: Thu, 10 Apr 2025 17:09:37 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>,
	Doug Goldstein <cardoe@cardoe.com>
Subject: Re: [PATCH 1/3] CI: Update x86 tests from Linux 6.1.19 to 6.6.56
Message-ID: <Z_ffMXLTy4Q9e-X5@mail-itl>
References: <20250410120520.2062328-1-andrew.cooper3@citrix.com>
 <20250410120520.2062328-2-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="8xhOegneLUwPER9f"
Content-Disposition: inline
In-Reply-To: <20250410120520.2062328-2-andrew.cooper3@citrix.com>


--8xhOegneLUwPER9f
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Thu, 10 Apr 2025 17:09:37 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>,
	Doug Goldstein <cardoe@cardoe.com>
Subject: Re: [PATCH 1/3] CI: Update x86 tests from Linux 6.1.19 to 6.6.56

On Thu, Apr 10, 2025 at 01:05:18PM +0100, Andrew Cooper wrote:
> Linux 6.6.56 was already added to test-artifacts for the argo testing, and
> this removes one moving part while cleaning things up.
>=20
> Drop the associated export job, and dockerfile.
>=20
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Reviewed-by: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblethingslab.c=
om>

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

--8xhOegneLUwPER9f
Content-Type: application/pgp-signature; name=signature.asc

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmf33zEACgkQ24/THMrX
1ywuBwf/cNaf5XnsYw+1wMBMwLdPx7DpR+ASfHT/mMcJpLVhUn0HJCrsMlrMWxDI
3pXGvAIuukQUFIamUVMboDuQGv763AdU01/j0QiWsLjT/5/1oRWv0fbvlsD3MdS2
q1lVZb3Qrjms6bzjB/4IaJ2Fv/OfwhmKTPAQxpdY12H9Z/9Y0OWig1x1/Gv0ozTg
V8zzwolVEatWPVcn63vRm+DouzBOQL2ePn2ICcCfDhTdKqBgiMT+PkWVTSInAMK1
tIBpVCBzJdspnyDdYOUUcENmBrNjIMnmTqFnzPr1yNAYfc4P97vpghP92vQN+EHC
Q2h2E4tSofT94Bw0AsCxcbTcgWEXCw==
=xD1q
-----END PGP SIGNATURE-----

--8xhOegneLUwPER9f--


From xen-devel-bounces@lists.xenproject.org Thu Apr 10 15:12:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 15:12:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.945942.1343999 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2tZj-0006H7-Fx; Thu, 10 Apr 2025 15:12:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 945942.1343999; Thu, 10 Apr 2025 15:12: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 1u2tZj-0006H0-D2; Thu, 10 Apr 2025 15:12:19 +0000
Received: by outflank-mailman (input) for mailman id 945942;
 Thu, 10 Apr 2025 15: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=S0bf=W4=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1u2tZi-0006Gu-Mv
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 15:12:18 +0000
Received: from fout-b4-smtp.messagingengine.com
 (fout-b4-smtp.messagingengine.com [202.12.124.147])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2fdce4bf-161e-11f0-9eac-5ba50f476ded;
 Thu, 10 Apr 2025 17:12:16 +0200 (CEST)
Received: from phl-compute-04.internal (phl-compute-04.phl.internal
 [10.202.2.44])
 by mailfout.stl.internal (Postfix) with ESMTP id 4009C114011A;
 Thu, 10 Apr 2025 11:12:15 -0400 (EDT)
Received: from phl-mailfrontend-01 ([10.202.2.162])
 by phl-compute-04.internal (MEProxy); Thu, 10 Apr 2025 11:12:15 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 10 Apr 2025 11:12:13 -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: 2fdce4bf-161e-11f0-9eac-5ba50f476ded
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=fm2; t=1744297935;
	 x=1744384335; bh=eiEAOtsXDP9baMp9V4pZMymBdEZy0F1ljlXF8z4os2g=; b=
	f8cN9lh3QUR7yFjjyfk3/C8a0myZhcQIgx/0QMkBbDFtI/4FwX6zQXNDOk0Tf/gJ
	4hQiWWFLRtUFmjlPBGDbUyv81LrTxvin/s5wonUu41o36bInti9lMBEch9BbJn/F
	kkFZndACxLqtHLuxUE6Qo26DwoJZ55gTkq3pd1iWTqiT+aMX4+SJ5Npk6KB0bif1
	bpiGvxMibtb7kkg686oHJVmBDx/TiOTqRi4x8zisFbHAgtec83cBuENFV4EL3NDd
	mORSwwdK85heHTTxAjufaf9YtuwcLMNp8+zvckSVfRTpxhkLf96Z3W68y1eiFPSq
	LRTlnksjAkQEbvRC6gvneg==
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=fm2; t=
	1744297935; x=1744384335; bh=eiEAOtsXDP9baMp9V4pZMymBdEZy0F1ljlX
	F8z4os2g=; b=vFry99XKvfYWC3imLj8SBgtx7sUcuOr0N0mlNIJAFomO8LT/dI7
	VyXAyBCm43MaQ26QqtsulyNlKQhUr/E1wvxYeD5uuibv8onc1m0Wq64po4Uc2iYF
	wVFZK7TW7w12JZLEuxQuqFb8xJkOPjT6JmnlEOp4cGX8QIhNJ6suGjnvm8+QNzvV
	83tksas8jCrLPRoq/X60pBgp7gmWrCKZUlBE3NDLF0vl4umjUIL2/FnRyduXoJb0
	EAnh/17CRDsZPZ7p4+gr4vqXDz+2QcuFlufClxngc4gXWaOJpvfpwgfJAauK40QG
	wNaJahaW3xlEAEj93torVccBIdS/BtpRVJw==
X-ME-Sender: <xms:zt_3Z0V-cv2MhoK7n6fDF8RHOXDEISIo4vk8MfXM2aPxmOc4JRZD3Q>
    <xme:zt_3Z4ndw0yKGVeBeoVpZ2jheuLL7HJQAXtyBfdU7u0jOV44lUteNXH7ZdJhp0qx9
    jOXA-qO76JOCA>
X-ME-Received: <xmr:zt_3Z4bBGqjfeQOsSL0t5EUusS8CVveWVl-RY7qSeF8iW7zF75De_1aYhbRwy0S88tTnRW30j1IdXvOiqVRQXuOotD2KqO9C_A>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvtdelvdefucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
    pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
    gvnhhtshculddquddttddmnecujfgurhepfffhvfevuffkfhggtggujgesghdtreertddt
    jeenucfhrhhomhepofgrrhgvkhcuofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuc
    eomhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecu
    ggftrfgrthhtvghrnhepgfduleetfeevhfefheeiteeliefhjefhleduveetteekveettd
    dvgeeuteefjedunecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhf
    rhhomhepmhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomh
    dpnhgspghrtghpthhtohepiedpmhhouggvpehsmhhtphhouhhtpdhrtghpthhtoheprghn
    ughrvgifrdgtohhophgvrhefsegtihhtrhhigidrtghomhdprhgtphhtthhopeigvghnqd
    guvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdprhgtphhtthhopegr
    nhhthhhonhihrdhpvghrrghrugesvhgrthgvshdrthgvtghhpdhrtghpthhtohepshhsth
    grsggvlhhlihhniheskhgvrhhnvghlrdhorhhgpdhrtghpthhtohepmhhitghhrghlrdho
    rhiivghlsegrmhgurdgtohhmpdhrtghpthhtoheptggrrhguohgvsegtrghrughovgdrtg
    homh
X-ME-Proxy: <xmx:zt_3ZzU2rn1114MEebSePh6RPcDpqiJJ72c_3yxnAHuxuOOCdEEIHQ>
    <xmx:zt_3Z-l2ADPlTNuJk3t6jixpsy5mxUlcxEtHSaiF7omOH2949cBJng>
    <xmx:zt_3Z4eTuk8Y2z38KcGrGQgdOTFYj2yJwtghB8u5rIemUuRPEU1GKA>
    <xmx:zt_3ZwGsDRhmrR-YICYq4xZmUZty7eVxx2QAtCaqmzh02nggscrRgw>
    <xmx:z9_3Z45K-aPt6ZucBk54pixQAmdXmyRdlB8VCAQuNgucjJVe6S982p7Y>
Feedback-ID: i1568416f:Fastmail
Date: Thu, 10 Apr 2025 17:12:11 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>,
	Doug Goldstein <cardoe@cardoe.com>
Subject: Re: [PATCH 2/3] CI: Update ARM64 tests from Linux 6.6.74 to 6.6.86
Message-ID: <Z_ffzPamMV1VSKg2@mail-itl>
References: <20250410120520.2062328-1-andrew.cooper3@citrix.com>
 <20250410120520.2062328-3-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="v2PHikepuSBYYhxb"
Content-Disposition: inline
In-Reply-To: <20250410120520.2062328-3-andrew.cooper3@citrix.com>


--v2PHikepuSBYYhxb
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Thu, 10 Apr 2025 17:12:11 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>,
	Doug Goldstein <cardoe@cardoe.com>
Subject: Re: [PATCH 2/3] CI: Update ARM64 tests from Linux 6.6.74 to 6.6.86

On Thu, Apr 10, 2025 at 01:05:19PM +0100, Andrew Cooper wrote:
> Switch over to test-artifacts.
>=20
> Drop the associated export job, and dockerfile.
>=20
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Reviewed-by: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblethingslab.c=
om>

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmf338wACgkQ24/THMrX
1yyCtQf+O6yDh8DP02Vvo2Rjkb7mug2/2dXeqm7blZjZ1Iv4fHG3q1Ev3/zW5fn7
/xACspv364UXeElk8EjzynHZ9rn2lyU5butyMh9tZwv0pSkgCfLdnpx+XY7LxMJ6
8CVQpM/7CKEw+xgPJErkImL7ScQTA4L5HVs8e7d6ElHgwXOkw00Qky4cW6S+vKnw
UFkruNG1YO25/YaEaLORfSA1bA5Xu1ZTSp1jC9eFiM7A+dH6Ia9hovs1zCh0x8Fh
jlNnocmw65p9lQbe90pRGfkd0Qi1PXruofQKW9fepFbelEs/CzfaYBjP7KJRb3hx
H+38OIDLVjXuAmjUlh2iGLJgsyoXnA==
=Ksk7
-----END PGP SIGNATURE-----

--v2PHikepuSBYYhxb--


From xen-devel-bounces@lists.xenproject.org Thu Apr 10 15:13:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 15:13:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.945954.1344009 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2taa-0007Bx-SN; Thu, 10 Apr 2025 15:13:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 945954.1344009; Thu, 10 Apr 2025 15:13:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2taa-0007Bq-Pr; Thu, 10 Apr 2025 15:13:12 +0000
Received: by outflank-mailman (input) for mailman id 945954;
 Thu, 10 Apr 2025 15: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=w6Mj=W4=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u2taZ-0007BV-Q6
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 15:13:11 +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 5006e0b3-161e-11f0-9ffb-bf95429c2676;
 Thu, 10 Apr 2025 17:13:09 +0200 (CEST)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-43edecbfb46so7910295e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 10 Apr 2025 08:13:09 -0700 (PDT)
Received: from [10.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-43f205ecac8sm58448425e9.4.2025.04.10.08.13.08
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 10 Apr 2025 08:13: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: 5006e0b3-161e-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744297989; x=1744902789; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=yg71LhBZ2CW2YNo9Od5ozUq0AwF3AihC17Znv53EKe4=;
        b=ceMfNubvdGyZycprJbCs04LRVQbhXsmZaJms4GQ4PWNICWGT36GaXOpM5bGpx9ZKmD
         3VQgJ4oND2X2D+It/QJZcmmPIA0nfJuWFVnZSzkO//6mwmm/0KFgVWAKJkoVECIoLPdK
         tIdJlc7av9ZLE6tFjZqv+8huZgaC7OzZWkYAs3WJgUpyLwkDfzcxf2kO/gxxWqDatQI8
         JGihwMa8TVrwmrgigSBV+xXkC2/wfNAOw+BRMdmgtL4qyeqp1d5a2Hk3AjSvOARpGmh9
         bn6DuMKvm2JH8XDwv/bMig/049iRzT0u+yGzHCSPF6NfaRUZvc+Eltw3UjuxAGYJZKZE
         hXDw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744297989; x=1744902789;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=yg71LhBZ2CW2YNo9Od5ozUq0AwF3AihC17Znv53EKe4=;
        b=ZaWlfEL7TnS33qqX3a3GE0xD4+0srO8uSKLM0UaWgNv1aQWMrUy2MO9A12Lfcor75E
         N3aIMRv9jwrFro2SOJ6xWIX5OrBuqzDNAyXZSBZnsYaB7cu6teJhns/mHwzhb66ESK3l
         tQvAhgFxWeJ5SYBC4KXnor2YBxJDtOhMTyxUdo2OLYzYbJkXhPhUsqXIuGeD0C7LRTwA
         nBelifeoq2l9jpZTOEHI7lh++3AZfFVyHgJmzax4or6Z10HiaCgCt02TGF/pttGkFhAz
         1hqP8erfyKpb4D7InRV+ZTzh25a9m57+F+PAWnvSgh5zhRUDtmWDrbIQ4hf3zEAPtAdk
         j8Pg==
X-Forwarded-Encrypted: i=1; AJvYcCU7vTuVBBLEaxZVBFDNU5Fw1HxcYGiBKKOd5lUhUk/Lf1C1e9IC8cobLhIyen62wxaFNkcIoivMPyI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YySCFSEWNEuK6V9MR1I/q517QCjyBbQv2vXjUMQwyxiSFHui+5u
	djMIOG2wx++hkfh5uE998sfEsKDFocSDX/pq4vCn5wSGst9pq3GLNrWCyUW9Fw==
X-Gm-Gg: ASbGncuX9I4cVGPLdUlOnvtW4Lp8n3kNyok7mNfAPjFVKvacUtbjvJKjKvTmmMKksFN
	QLCSTj1vnj30rj5v4m731blDzJ32UL1yo/o41zMUbh/wDnO2MeVQmOgT+2uU3jLS2qWGVnc1/YL
	Ql8xPIMpGTpRoWUQW0mDsaEY/MNV5p/43h0/CruwfbR5wQKJp5J3DyOrcZaVRtr2MhUQrWgyw2k
	rdi9zLNrJuIcIMC4eeEBJajMJj370LpzvTQgo2TEbYcnIyRs2AN3EcgISMyyAxep1CzdsTifbkj
	CxmW3VZtOKI8buP9eTtlgjyoQoOapVmW3yKdjqv8e5chHbzg6P9p+ADGZ7elJreW0kBAwJo5a0I
	ycixoASJ/FonDwiPoRdh/1kQ07w==
X-Google-Smtp-Source: AGHT+IFZO0ZqHrIvaQM8f8NtHhhbH+UU775GquID2TihslrIKuet5q607qRlYBfBDXge6QC7RIOp2Q==
X-Received: by 2002:a05:600c:34c7:b0:43d:abd:ad0e with SMTP id 5b1f17b1804b1-43f2d7e9318mr37025505e9.18.1744297989072;
        Thu, 10 Apr 2025 08:13:09 -0700 (PDT)
Message-ID: <84089b6d-efeb-4613-85b9-eb10d11d7338@suse.com>
Date: Thu, 10 Apr 2025 17:13:07 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 03/14] xen/riscv: introduce ioremap()
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1744126720.git.oleksii.kurochko@gmail.com>
 <6d91eeabe2735de93bfcf2a2420e2059a8f35e52.1744126720.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: <6d91eeabe2735de93bfcf2a2420e2059a8f35e52.1744126720.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.04.2025 17:57, Oleksii Kurochko wrote:
> Based on RISC-V unpriviliged spec ( Version 20240411 ):
> ```
> For implementations that conform to the RISC-V Unix Platform Specification,
> I/O devices and DMA operations are required to access memory coherently and
> via strongly ordered I/O channels. Therefore, accesses to regular main memory
> regions that are concurrently accessed by external devices can also use the
> standard synchronization mechanisms. Implementations that do not conform
> to the Unix Platform Specification and/or in which devices do not access
> memory coherently will need to use mechanisms
> (which are currently platform-specific or device-specific) to enforce
> coherency.
> 
> I/O regions in the address space should be considered non-cacheable
> regions in the PMAs for those regions. Such regions can be considered coherent
> by the PMA if they are not cached by any agent.
> ```
> and [1]:
> ```
> The current riscv linux implementation requires SOC system to support
> memory coherence between all I/O devices and CPUs. But some SOC systems
> cannot maintain the coherence and they need support cache clean/invalid
> operations to synchronize data.
> 
> Current implementation is no problem with SiFive FU540, because FU540
> keeps all IO devices and DMA master devices coherence with CPU. But to a
> traditional SOC vendor, it may already have a stable non-coherency SOC
> system, the need is simply to replace the CPU with RV CPU and rebuild
> the whole system with IO-coherency is very expensive.
> ```
> 
> and the fact that all known ( to me ) CPUs that support the H-extension
> and that ones is going to be supported by Xen have memory coherency
> between all I/O devices and CPUs, so it is currently safe to use the
> PAGE_HYPERVISOR attribute.
> However, in cases where a platform does not support memory coherency, it
> should support CMO extensions and Svpbmt. In this scenario, updates to
> ioremap will be necessary.
> For now, a compilation error will be generated to ensure that the need to
> update ioremap() is not overlooked.
> 
> [1] https://patchwork.kernel.org/project/linux-riscv/patch/1555947870-23014-1-git-send-email-guoren@kernel.org/

But MMIO access correctness isn't just a matter of coherency. There may not
be any caching involved in most cases, or else you may observe significantly
delayed or even dropped (folded with later ones) writes, and reads may be
serviced from the cache instead of going to actual MMIO. Therefore ...

> --- a/xen/arch/riscv/Kconfig
> +++ b/xen/arch/riscv/Kconfig
> @@ -15,6 +15,18 @@ config ARCH_DEFCONFIG
>  	string
>  	default "arch/riscv/configs/tiny64_defconfig"
>  
> +config HAS_SVPBMT
> +	bool
> +	help
> +	  This config enables usage of Svpbmt ISA-extension ( Supervisor-mode:
> +	  page-based memory types).
> +
> +	  The memory type for a page contains a combination of attributes
> +	  that indicate the cacheability, idempotency, and ordering
> +	  properties for access to that page.
> +
> +	  The Svpbmt extension is only available on 64-bit cpus.

... I kind of expect this extension (or anything else that there might be) will need
making use of.

> @@ -548,3 +549,21 @@ void clear_fixmap(unsigned int map)
>                                FIXMAP_ADDR(map) + PAGE_SIZE) != 0 )
>          BUG();
>  }
> +
> +void *ioremap(paddr_t pa, size_t len)
> +{
> +    mfn_t mfn = _mfn(PFN_DOWN(pa));
> +    unsigned int offs = pa & (PAGE_SIZE - 1);
> +    unsigned int nr = PFN_UP(offs + len);
> +
> +#ifdef CONFIG_HAS_SVPBMT
> +    #error "an introduction of PAGE_HYPERVISOR_IOREMAP is needed for __vmap()"
> +#endif

While, as per above, I don't think this can stay, just in case: As indicated
earlier, pre-processor directives want to have the # in the first column.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Apr 10 15:14:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 15:14:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.945969.1344020 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2tbp-0007m9-5n; Thu, 10 Apr 2025 15:14:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 945969.1344020; Thu, 10 Apr 2025 15:14: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 1u2tbp-0007m2-2C; Thu, 10 Apr 2025 15:14:29 +0000
Received: by outflank-mailman (input) for mailman id 945969;
 Thu, 10 Apr 2025 15:14: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=S0bf=W4=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1u2tbn-0007lw-J4
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 15:14:27 +0000
Received: from fhigh-b4-smtp.messagingengine.com
 (fhigh-b4-smtp.messagingengine.com [202.12.124.155])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7d5abbc0-161e-11f0-9eac-5ba50f476ded;
 Thu, 10 Apr 2025 17:14:26 +0200 (CEST)
Received: from phl-compute-11.internal (phl-compute-11.phl.internal
 [10.202.2.51])
 by mailfhigh.stl.internal (Postfix) with ESMTP id 4151B2540234;
 Thu, 10 Apr 2025 11:14:25 -0400 (EDT)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-11.internal (MEProxy); Thu, 10 Apr 2025 11:14:25 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 10 Apr 2025 11:14:23 -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: 7d5abbc0-161e-11f0-9eac-5ba50f476ded
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=fm2; t=1744298065;
	 x=1744384465; bh=5QQsBcjFo6nquo9YfzTRNkQiWrZy6Oy28KlGjOd1USQ=; b=
	NfhZjLgAeo5AIYVwbTDKgdnvSeQiYmsdKINzYsMuceio3PPdwZXMLt6xTNnBgF6A
	RhRrDr9+BP8kDINOl6HTw5DR7PUDwbqAuzaefl1OZhRjcX0Qu/AjG7oPKSMb1nF0
	T+pYwFjw0pillxLaJqcpz90GKRQZB7MtGg5Whd7X5kRl606Yxjedl/5wjg5+n9Mf
	FldoA9h5lONSsh2ImsYc/tIJo5lnX/weFZX2y6HpbT5TnVHbPV584a0IfxgvuuKV
	yU8R4+dvkxhrLOguxt/yolw1f/nPN4flNjJGJdiegF7sdKKiO7Do9T2YtmFB4j+Z
	B12MztKpsPvK7YLK5OfNOw==
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=fm2; t=
	1744298065; x=1744384465; bh=5QQsBcjFo6nquo9YfzTRNkQiWrZy6Oy28Kl
	GjOd1USQ=; b=QdWwwt2zCFn7oexm1mKkUG/ltU4LzbvZxILrk3qKfskEU8OT1ow
	FN4WyMJLYALYkJxlT+qapHjc1aF4nj+9pbto/xZxuE7ElzsaADop7JDzaGf67uVc
	4RBW6sMJnJI5j5wXsiZ2B0nZRwW7C+bAnyyMDEivbZ9bX7EL2g1l7nHa25IjvQTV
	T0NCM6jjnhCwPmU8DaN5NOq6emxI226KgSVS8g8X/M2GHDne5m/jk9FP95n3LHW6
	Ncb1Q9Ah2wicoRcVw7W53cZjGXW5yNtz9PQt4T5Dzu21S09jempjTfQ/gzHyv9KY
	dvTi45Vsmg3jI+8JBGmJIhZfqis1WMCe72Q==
X-ME-Sender: <xms:UOD3Z0q3NpoZVPHaQKg7EzRGgwihVhtq-VMqEVRt8yvt4z3lXLUhiQ>
    <xme:UOD3Z6qiJj6Xy5gyOez9spRGyuCCm2IGMEwvzBDCffAKpuLWQWti1NVPs_2mOvwGG
    2vbf6DAM29KEA>
X-ME-Received: <xmr:UOD3Z5NWsITMOOG6CD3F61RK2za-14MrGS6lELLzUGCInq77uMcXE61z0-ddYkHNAt-prJ_UGl7l6vjAvgS_notLho35UBzMJQ>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvtdelvdegucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
    pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
    gvnhhtshculddquddttddmnecujfgurhepfffhvfevuffkfhggtggujgesghdtreertddt
    jeenucfhrhhomhepofgrrhgvkhcuofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuc
    eomhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecu
    ggftrfgrthhtvghrnhepgfduleetfeevhfefheeiteeliefhjefhleduveetteekveettd
    dvgeeuteefjedunecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhf
    rhhomhepmhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomh
    dpnhgspghrtghpthhtohepiedpmhhouggvpehsmhhtphhouhhtpdhrtghpthhtoheprghn
    ughrvgifrdgtohhophgvrhefsegtihhtrhhigidrtghomhdprhgtphhtthhopeigvghnqd
    guvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdprhgtphhtthhopegr
    nhhthhhonhihrdhpvghrrghrugesvhgrthgvshdrthgvtghhpdhrtghpthhtohepshhsth
    grsggvlhhlihhniheskhgvrhhnvghlrdhorhhgpdhrtghpthhtohepmhhitghhrghlrdho
    rhiivghlsegrmhgurdgtohhmpdhrtghpthhtoheptggrrhguohgvsegtrghrughovgdrtg
    homh
X-ME-Proxy: <xmx:UOD3Z75aRHujpfZ4DI6fABu3T26W02R2f_eMYCMzua9LDKxF0AqLtw>
    <xmx:UOD3Zz4bDY2KXWBGsN1c61JSZtzLM1GrG1IQ8b-ImgwCxjzlPpKCaA>
    <xmx:UOD3Z7jpHDeA4LSj8CzEBQo4lvg8qHoTFZHh1LyETZxp30iJ8fBRuQ>
    <xmx:UOD3Z95kiOkFbDfB8Y46PKPT829N8MFVKhB1djxM2kEE7J_UStoOCA>
    <xmx:UeD3Z5OdxDxHQUY2XqrgLzyF1YrvcwOQ2Lvoe6n3aVL0b3cmLzX9jxYB>
Feedback-ID: i1568416f:Fastmail
Date: Thu, 10 Apr 2025 17:14:21 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>,
	Doug Goldstein <cardoe@cardoe.com>
Subject: Re: [PATCH 3/3] CI: Drop stale test-artifacts/alpine/3.18.dockerfile
Message-ID: <Z_fgTZMOeTv5MnMD@mail-itl>
References: <20250410120520.2062328-1-andrew.cooper3@citrix.com>
 <20250410120520.2062328-4-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="KfgvAcwpA3vVb/ja"
Content-Disposition: inline
In-Reply-To: <20250410120520.2062328-4-andrew.cooper3@citrix.com>


--KfgvAcwpA3vVb/ja
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Thu, 10 Apr 2025 17:14:21 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>,
	Doug Goldstein <cardoe@cardoe.com>
Subject: Re: [PATCH 3/3] CI: Drop stale test-artifacts/alpine/3.18.dockerfile

On Thu, Apr 10, 2025 at 01:05:20PM +0100, Andrew Cooper wrote:
> This should have been dropped too, as the authoritative copy lives in ano=
ther
> repo now.
>=20
> Fixes: babe11b46c1a ("CI: Drop alpine-3.18-rootfs-export and use test-art=
efacts")
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Reviewed-by: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblethingslab.c=
om>

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

--KfgvAcwpA3vVb/ja
Content-Type: application/pgp-signature; name=signature.asc

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmf34E0ACgkQ24/THMrX
1yzoEAf/cMgGBIfWdGVziDJZXfNxEypLo2jBqJvcjAmf0kNguVNAg0/i3lqEFRUA
fkF8TcpaDirDH3AOGlh0181Q595WK7kjoSYr9K+9j1far55FNY0QW5cegO1q7AQC
w81ZwkNluV6zF/Pw+9fGFUGeES814k5nU+pp3WniCZ8kMi2kzVCl19JeFm3JVp2F
vnJcHTH8wkTxI97jhOswmGr3y28FoSpthog8Ak6uCiowsML7AUZJNGXSu9U9Vhqe
CLRaOSo7gQC1NdyypdT6xHIDYHD0yWFWrAAcUALpZhqwvSO3ImE/hUCTHPUxIPRs
6uHf4SYBzzU8c9+6u1K4S4qgME9jDA==
=qkJ6
-----END PGP SIGNATURE-----

--KfgvAcwpA3vVb/ja--


From xen-devel-bounces@lists.xenproject.org Thu Apr 10 15:18:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 15:18:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.945983.1344029 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2tfp-0008MX-K9; Thu, 10 Apr 2025 15:18:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 945983.1344029; Thu, 10 Apr 2025 15: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 1u2tfp-0008MQ-Hc; Thu, 10 Apr 2025 15:18:37 +0000
Received: by outflank-mailman (input) for mailman id 945983;
 Thu, 10 Apr 2025 15:18: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=kj+o=W4=linux.ibm.com=agordeev@srs-se1.protection.inumbo.net>)
 id 1u2tfo-0008MK-1x
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 15:18:36 +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 114f33bf-161f-11f0-9eac-5ba50f476ded;
 Thu, 10 Apr 2025 17:18:34 +0200 (CEST)
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 53AEK7vi022679;
 Thu, 10 Apr 2025 15:18:25 GMT
Received: from pps.reinject (localhost [127.0.0.1])
 by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 45x02qdg47-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Thu, 10 Apr 2025 15:18:25 +0000 (GMT)
Received: from m0356516.ppops.net (m0356516.ppops.net [127.0.0.1])
 by pps.reinject (8.18.0.8/8.18.0.8) with ESMTP id 53AF8TYT001916;
 Thu, 10 Apr 2025 15:18:24 GMT
Received: from ppma23.wdc07v.mail.ibm.com
 (5d.69.3da9.ip4.static.sl-reverse.com [169.61.105.93])
 by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 45x02qdg44-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Thu, 10 Apr 2025 15:18:24 +0000 (GMT)
Received: from pps.filterd (ppma23.wdc07v.mail.ibm.com [127.0.0.1])
 by ppma23.wdc07v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 53AD96gI025537;
 Thu, 10 Apr 2025 15:18:24 GMT
Received: from smtprelay07.fra02v.mail.ibm.com ([9.218.2.229])
 by ppma23.wdc07v.mail.ibm.com (PPS) with ESMTPS id 45ugbm6hc3-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Thu, 10 Apr 2025 15:18:23 +0000
Received: from smtpav01.fra02v.mail.ibm.com (smtpav01.fra02v.mail.ibm.com
 [10.20.54.100])
 by smtprelay07.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id
 53AFIMnK41025908
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Thu, 10 Apr 2025 15:18:22 GMT
Received: from smtpav01.fra02v.mail.ibm.com (unknown [127.0.0.1])
 by IMSVA (Postfix) with ESMTP id E809920043;
 Thu, 10 Apr 2025 15:18:21 +0000 (GMT)
Received: from smtpav01.fra02v.mail.ibm.com (unknown [127.0.0.1])
 by IMSVA (Postfix) with ESMTP id 95A3620040;
 Thu, 10 Apr 2025 15:18:21 +0000 (GMT)
Received: from li-008a6a4c-3549-11b2-a85c-c5cc2836eea2.ibm.com (unknown
 [9.155.204.135])
 by smtpav01.fra02v.mail.ibm.com (Postfix) with ESMTPS;
 Thu, 10 Apr 2025 15:18:21 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 114f33bf-161f-11f0-9eac-5ba50f476ded
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=8yZK2G8CEMH6GwaqesHa1lpHB+Zat5
	CGXDOr1+EXSC4=; b=XFA2NdY/+9mY/FXZshAh96j80DyvTbKTueTNVZhU0+yxab
	LQAS6lEJM05MHO0qcxITWU3AUuUwWhbR+rH5gkM+i5KY2ZDS+KKPgm1w0TTco7lI
	1ejRJgDisSwZgBF3F7/68V/hVDGKZc5EEq9Xbxm5cvuOYh4E30FthuwpbSU11IR+
	iDHdgVm8V9yC0zoCKXcaGa8GjQj57F15LDzr//DrGKBhJwZitM11zufCoRjeljn7
	kao0b+0vHjeDd5MF+VPhYDC+2gDDWrc+hl5DxvXUunM3PNAcgrnztpsj+jwiIr5G
	heQFmmMTR5ltMcYN1TVWdpLd/G4AaU/rogD2SyZg==
Date: Thu, 10 Apr 2025 17:18:20 +0200
From: Alexander Gordeev <agordeev@linux.ibm.com>
To: Andrey Ryabinin <ryabinin.a.a@gmail.com>,
        Andrew Morton <akpm@linux-foundation.org>
Cc: Hugh Dickins <hughd@google.com>, Nicholas Piggin <npiggin@gmail.com>,
        Guenter Roeck <linux@roeck-us.net>, Juergen Gross <jgross@suse.com>,
        Jeremy Fitzhardinge <jeremy@goop.org>, linux-kernel@vger.kernel.org,
        linux-mm@kvack.org, kasan-dev@googlegroups.com,
        sparclinux@vger.kernel.org, xen-devel@lists.xenproject.org,
        linuxppc-dev@lists.ozlabs.org, linux-s390@vger.kernel.org,
        stable@vger.kernel.org
Subject: Re: [PATCH v2 1/3] kasan: Avoid sleepable page allocation from
 atomic context
Message-ID: <Z/fhPL5bH2A2Cs97@li-008a6a4c-3549-11b2-a85c-c5cc2836eea2.ibm.com>
References: <cover.1744128123.git.agordeev@linux.ibm.com>
 <2d9f4ac4528701b59d511a379a60107fa608ad30.1744128123.git.agordeev@linux.ibm.com>
 <3e245617-81a5-4ea3-843f-b86261cf8599@gmail.com>
 <Z/aDckdBFPfg2h/P@li-008a6a4c-3549-11b2-a85c-c5cc2836eea2.ibm.com>
 <02d570de-001b-4622-b4c4-cfedf1b599a1@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <02d570de-001b-4622-b4c4-cfedf1b599a1@gmail.com>
X-TM-AS-GCONF: 00
X-Proofpoint-GUID: jHtw6lgVB7srP7G4ujZD7xCcxXdTfHSC
X-Proofpoint-ORIG-GUID: fFGj102REu_S4ew0_ixvtgn6rzege4GH
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1095,Hydra:6.0.680,FMLib:17.12.68.34
 definitions=2025-04-10_03,2025-04-10_01,2024-11-22_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 impostorscore=0
 priorityscore=1501 mlxlogscore=961 lowpriorityscore=0 spamscore=0
 clxscore=1015 suspectscore=0 mlxscore=0 adultscore=0 bulkscore=0
 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.19.0-2502280000 definitions=main-2504100109

On Wed, Apr 09, 2025 at 04:56:29PM +0200, Andrey Ryabinin wrote:

Hi Andrey,

...
> >>> -	page = __get_free_page(GFP_KERNEL);
> >>> +	page = __get_free_page(GFP_ATOMIC);
> >>>  	if (!page)
> >> I think a better way to fix this would be moving out allocation from atomic context. Allocate page prior
> >> to apply_to_page_range() call and pass it down to kasan_populate_vmalloc_pte().
> > I think the page address could be passed as the parameter to kasan_populate_vmalloc_pte().
> 
> We'll need to pass it as 'struct page **page' or maybe as pointer to some struct, e.g.:
> struct page_data {
>  struct page *page;
> };
...

Thanks for the hint! I will try to implement that, but will likely start
in two weeks, after I am back from vacation.

Not sure wether this version needs to be dropped.

Thanks!


From xen-devel-bounces@lists.xenproject.org Thu Apr 10 15:25:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 15:25:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.945995.1344039 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2tmQ-0003b4-9X; Thu, 10 Apr 2025 15:25:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 945995.1344039; Thu, 10 Apr 2025 15:25: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 1u2tmQ-0003ax-6z; Thu, 10 Apr 2025 15:25:26 +0000
Received: by outflank-mailman (input) for mailman id 945995;
 Thu, 10 Apr 2025 15:25: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=w6Mj=W4=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u2tmP-0003ar-OG
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 15:25: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 060deba0-1620-11f0-9eac-5ba50f476ded;
 Thu, 10 Apr 2025 17:25:24 +0200 (CEST)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-39c1efc4577so524274f8f.0
 for <xen-devel@lists.xenproject.org>; Thu, 10 Apr 2025 08:25:24 -0700 (PDT)
Received: from [10.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-39d893fdf6dsm5188373f8f.90.2025.04.10.08.25.23
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 10 Apr 2025 08:25: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: 060deba0-1620-11f0-9eac-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744298724; x=1744903524; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Zxu3SVgIp9H96/Jfns/jSUY3Ym1A7Fnc2GgfUfxwAcY=;
        b=dOzsJ4CMKufbaAUM2F70zKwD22NEMMDechC5rNw7gqBCApw66l02UCWQaKA0XjERPd
         dhUh1jtXXGGcUcEJVV0140UQlONu4zaMSBv9SyO30i1JiIY+dPZYeLgs88b7YYYS2vKd
         iT2GBv5zYQa6GgHiIe+LvIJWyduDh4sYmhRMN3b7yBgduONytX6aLt2GAzvH9RQyZ12h
         AVcbKS+YCqwvfIFNyiCH8wiGqcokhTByZHIbmkDHlnMxSjgvCWpoimjmT2mIYjEsMpiT
         l/fHPU5kAoCJ5lhxm3cZUStchyMkqXlPMseQK5tnlijscDP2wSIzAcsOYcDp6VA3jaUM
         ioNw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744298724; x=1744903524;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Zxu3SVgIp9H96/Jfns/jSUY3Ym1A7Fnc2GgfUfxwAcY=;
        b=tJc8FmxiG64MtUz1V3sTebV7jQxEzhd97igvl9ZrKZBwFvEwthBbEMkVFLS14Vbfvi
         kCB/rlvXw9K9FYw2kbfLSP/XhaVt1o7Ip2VPfWfOAL5TDtsMW7ezpiwBv1eqnQopOiLq
         tcayIOQSHDRoElcvpRG0a2NsCqy5/f5sPfIfSS1qOf78/Rm4ruyLTSJfBlESfZjx2pjg
         QyyqFE0ztxLowF5T0JlR0rIZFk1xAahV9PtB2TQJ2gLBOKAq2Bf+L8W4aI9FIPXf6ah8
         5tbxUbXF3ZmZS4BZYB3qTdfcANEFwVWOt/HGRpW/smRdiVNc3sNTxaNFekuCZ1JYuC6l
         HkQA==
X-Forwarded-Encrypted: i=1; AJvYcCUv4LBqLk/ySOB2MeFh+hCr3Q8gP1H9uoLbS1ycKDhXDyZEypCl+6012yXMMnkH5UHRvuRst/tD2mQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzqs2VVgCUEKvXdn4PPJpsF0G2jd7b8ezO+Qe6JyIpoFugHJRRV
	5RrVOjqxkIB5wvVRlbh8iVL39kaWJO7y8kz9wDs0qtPpvh9gbBClih7F6Y2FLw==
X-Gm-Gg: ASbGncuQjO4kh7Hgg2UF2Chx7gaJBpNhKvK5fo+YdZmoAf23yQtZCBfl+8EaXuTOwPp
	hoVDs1Aqf38aZ8qt8SY7XNKGWyxJjf/hD11vbHuntlkK103LV+hzpnrhkyv/nsNN66VawHi0sQR
	ES0o+CXs1iL9Fg4lfD/hDva0mJ/8xRC5NkcaTOC33MIv1+6QujcJsSjctUzPtWXJ5Jz6Y2Pqv5l
	vSQUE7NcWlShysmSxxJ0/MNb6o7NWOM5tmlv2G/aDj8K/7m6SYBvGO3foILUHUrH0aKvNQQLqbC
	yVzcUEmoVCoK0+2lTn5ormqfgcfGiw32M7EZeadXBK2qlxBV17kPgexb07mY5jDMnL0Vn5GU3xD
	hQQcvVTC0KywwptO8GG89mtIlgoJUn7fTVtmd
X-Google-Smtp-Source: AGHT+IHDCTzJMaNYN6jB00mMzBvxY5wSFlZC/mlFC4YMtMw/ca1HQgiUwg6foJ9rhfTaL8x5yRqCMg==
X-Received: by 2002:a05:6000:2283:b0:39c:1257:feba with SMTP id ffacd0b85a97d-39d8f4f0fa3mr2273586f8f.58.1744298724042;
        Thu, 10 Apr 2025 08:25:24 -0700 (PDT)
Message-ID: <f9e118ff-85fb-4bde-b313-740b1ea7ae4f@suse.com>
Date: Thu, 10 Apr 2025 17:25:22 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 04/14] xen/riscv: introduce init_IRQ()
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1744126720.git.oleksii.kurochko@gmail.com>
 <dff8b0a4a83fbd2b84c3427093a63fcee8a7122f.1744126720.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: <dff8b0a4a83fbd2b84c3427093a63fcee8a7122f.1744126720.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.04.2025 17:57, Oleksii Kurochko wrote:
> --- a/xen/arch/riscv/include/asm/irq.h
> +++ b/xen/arch/riscv/include/asm/irq.h
> @@ -3,6 +3,28 @@
>  #define ASM__RISCV__IRQ_H
>  
>  #include <xen/bug.h>
> +#include <xen/device_tree.h>
> +
> +#define NR_IRQS 1024
> +
> +/*
> + * TODO: Should IRQ_TYPE_* be moved to xen/irq.h and wrapped into
> + * #ifdef CONFIG_HAS_DEVICE_TREE?
> + */

Wouldn't that be more like asm-generic/dt-irq.h (or irq-dt.h)? The field where
these values are stored is an arch-specific one, after all.

> --- /dev/null
> +++ b/xen/arch/riscv/irq.c
> @@ -0,0 +1,44 @@
> +/* SPDX-License-Identifier: GPL-2.0-or-later */
> +
> +/*
> + * RISC-V Trap handlers
> + *
> + * Copyright (c) 2024 Vates
> + */
> +
> +#include <xen/bug.h>
> +#include <xen/init.h>
> +#include <xen/irq.h>
> +
> +static irq_desc_t irq_desc[NR_IRQS];
> +
> +int arch_init_one_irq_desc(struct irq_desc *desc)
> +{
> +    desc->arch.type = IRQ_TYPE_INVALID;
> +    return 0;
> +}
> +
> +static int __init init_irq_data(void)
> +{
> +    int irq;
> +
> +    for ( irq = 0; irq < NR_IRQS; irq++ )

For this the variable would better be of unsigned type. I realize though that ...

> +    {
> +        struct irq_desc *desc = irq_to_desc(irq);
> +        int rc = init_one_irq_desc(desc);
> +
> +        if ( rc )
> +            return rc;
> +
> +        desc->irq = irq;

... it's a plain int field that we're storing into here. I don't think I can spot
any place where a negative value would be stored into there.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Apr 10 15:35:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 15:35:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.946010.1344050 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2tvr-0007Jf-AJ; Thu, 10 Apr 2025 15:35:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 946010.1344050; Thu, 10 Apr 2025 15:35: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 1u2tvr-0007JY-65; Thu, 10 Apr 2025 15:35:11 +0000
Received: by outflank-mailman (input) for mailman id 946010;
 Thu, 10 Apr 2025 15:35: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=w6Mj=W4=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u2tvq-0007JS-D6
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 15:35:10 +0000
Received: from mail-wr1-x429.google.com (mail-wr1-x429.google.com
 [2a00:1450:4864:20::429])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 62495709-1621-11f0-9eac-5ba50f476ded;
 Thu, 10 Apr 2025 17:35:09 +0200 (CEST)
Received: by mail-wr1-x429.google.com with SMTP id
 ffacd0b85a97d-39727fe912cso456275f8f.3
 for <xen-devel@lists.xenproject.org>; Thu, 10 Apr 2025 08:35:08 -0700 (PDT)
Received: from [10.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-39d893773b6sm5138082f8f.27.2025.04.10.08.35.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 10 Apr 2025 08:35: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: 62495709-1621-11f0-9eac-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744299308; x=1744904108; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=HIA5sWh6Y0ceJnTmeADu8j738HgVYYEGj8eBEzCdEYY=;
        b=epgwfj33qdjURK3WnHMz4OzBl6P5PsH0XMkcoYiIeqeXNpplAHy4LbKlPpDrt85LR4
         xDZBNjEIqzwdrRM54GNTLbGYAfYrbqMKlf6wjB/EJm+SG/VDFCCJyQfxEyqam6QCo8WN
         hIHiTHWYTIne1Kwdz2+vFm+t2N687c0Ratbg2oHNc0NCr1iqaWC1HXYeM53eEojnyUoY
         0f6TDvKPmkjcgdV3m+IHUYcd72MZozcawvGG9WDtTnKOp+ijH72A5eJVCLhXnzb+WjLV
         fLvVpV5iPO1vObTP4DE+GvlKC0FfEnXH9s+nk/22MZIL8F5ie3IHnQtKMM+hfp9M8zvu
         9uqw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744299308; x=1744904108;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=HIA5sWh6Y0ceJnTmeADu8j738HgVYYEGj8eBEzCdEYY=;
        b=PCGU/RN5NchtK6dFOg9Z9IioTCpl3wROhAV4CHWr0qodkAOOr9Dc5mmbCX3V24wfPV
         aJexSPWtscIAt47HbAiLmPV7IED5EjaHiwep93mtFMtuWlU7VwxOlES6o0evhSGNHq8M
         Dpn6ZdagP5ZefKSA48uR98f17eZqh/xW1xUqQa9l6UjYKpJnYt0ZZyGJVnCnEY38Bv03
         Mho5vmLE6pkr+lz35gpAsBHSQgF0/a9qavEMgVwpsxsKn782OE1yPRxEVmLsA11LiwIR
         vcjXbYvxijquptzHYHu4zcZu1zuAc0E8yMGn4Gy/15Orw9+hN81EzQqrKK06w1MYgqfb
         9a9A==
X-Forwarded-Encrypted: i=1; AJvYcCWID9LOU4xoLYoPhak6iMDETkgI89bY1vYNmb6NV2MnaWOxPas/QPeWtzFEwM8nyNi0GsLVEP0/uN0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwBeeDcysQzzgGH2I9fMV+3Mq6wt6wA5zh5YtNjZ9gmVxk2Rd1F
	+yYC6z1LCSYVK5f68EoExkwhw6PAgjdUdC3ftHcbJeiF2ZQ787l8CqupwZHfgA==
X-Gm-Gg: ASbGncsro196LQWQT+QyjnCzj7ezfOa4+2CWfCApt2qwKAF4QuU0vnSqSMkDhEskfB6
	ClHJHPiVb7Tp+M/ePPbBN6HNndOEFAcdS9KmGkHhd99TEF0Cu8aL2lzrVTUIa2y/8CNSxfMcJ7G
	FToQOrQYMiofHcymtjdDYGvT7q3H5VhWsadHWomD8HaZq5zDR+B/M1KwgP761MNZH9wFhmw0Aor
	mvG+LJ0EyllH5kHW0T9VKbYS0Clj3HXbPjIbgjpoNYYCzlLa43QQeFV2lmg30SLhPa22ojRycAL
	BcKsDg5rwk+/1K36ddd618EgO7PYNEYJcI7egDYdJPU+7yUmlRjrAq6kTdw+XXQqx/wQ+IZuWgy
	KzlMRi/aQE5WpGhHSQneAOoUi+h4iWOMNqi5+
X-Google-Smtp-Source: AGHT+IFGzG8Mfy5FdYKmOnJsiPL6isuXs46HLwYZoFJAbv0f4EnVM1fMb3QlUXzCBUXP+cyOHhorxQ==
X-Received: by 2002:a5d:64aa:0:b0:39d:8128:978 with SMTP id ffacd0b85a97d-39d8f473b76mr3123945f8f.34.1744299308068;
        Thu, 10 Apr 2025 08:35:08 -0700 (PDT)
Message-ID: <31de00cb-b3b4-4d15-a128-930dc1c7ccdf@suse.com>
Date: Thu, 10 Apr 2025 17:35:06 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 05/14] xen/riscv: introduce platform_get_irq()
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Romain Caritey <Romain.Caritey@microchip.com>, xen-devel@lists.xenproject.org
References: <cover.1744126720.git.oleksii.kurochko@gmail.com>
 <6c6e7482cc3b0332f5724c80bf16931fe2d793ae.1744126720.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: <6c6e7482cc3b0332f5724c80bf16931fe2d793ae.1744126720.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.04.2025 17:57, Oleksii Kurochko wrote:
> @@ -21,6 +22,22 @@ static struct intc_info __ro_after_init aplic_info = {
>      .hw_version = INTC_APLIC,
>  };
>  
> +static int aplic_irq_xlate(const uint32_t *intspec, unsigned int intsize,

As you start adding functions calling indirectly, please consider adding cf_check
right away, even if right now this has no effect on RISC-V. That'll save you from
going through the entire RISC-V subtree later on to find them all.

> +                           unsigned int *out_hwirq,
> +                           unsigned int *out_type)
> +{
> +    if ( intsize < 2 )
> +        return -EINVAL;
> +
> +    /* Mapping 1:1 */
> +    *out_hwirq = intspec[0];
> +
> +    if ( out_type )
> +        *out_type = intspec[1] & IRQ_TYPE_SENSE_MASK;
> +
> +    return 0;
> +}
> +
>  static int __init aplic_preinit(struct dt_device_node *node, const void *dat)
>  {
>      if ( aplic_info.node )
> @@ -35,6 +52,8 @@ static int __init aplic_preinit(struct dt_device_node *node, const void *dat)
>  
>      aplic_info.node = node;
>  
> +    dt_irq_xlate = aplic_irq_xlate;
> +
>      return 0;
>  }
>  
> --- a/xen/arch/riscv/include/asm/irq.h
> +++ b/xen/arch/riscv/include/asm/irq.h
> @@ -47,6 +47,9 @@ static inline void arch_move_irqs(struct vcpu *v)
>      BUG_ON("unimplemented");
>  }
>  
> +struct dt_device_node;
> +int platform_get_irq(const struct dt_device_node *device, int index);

And I assume callers of this will appear later in the series.

> --- a/xen/arch/riscv/irq.c
> +++ b/xen/arch/riscv/irq.c
> @@ -7,11 +7,52 @@
>   */
>  
>  #include <xen/bug.h>
> +#include <xen/device_tree.h>
> +#include <xen/errno.h>
>  #include <xen/init.h>
>  #include <xen/irq.h>
>  
>  static irq_desc_t irq_desc[NR_IRQS];
>  
> +static bool irq_validate_new_type(unsigned int curr, unsigned int new)
> +{
> +    return (curr == IRQ_TYPE_INVALID || curr == new );
> +}
> +
> +static int irq_set_type(unsigned int irq, unsigned int type)
> +{
> +    unsigned long flags;
> +    struct irq_desc *desc = irq_to_desc(irq);
> +    int ret = -EBUSY;
> +
> +    spin_lock_irqsave(&desc->lock, flags);
> +
> +    if ( !irq_validate_new_type(desc->arch.type, type) )
> +        goto err;
> +
> +    desc->arch.type = type;
> +
> +    ret = 0;
> +
> +err:

Labels indented by at least one blank please.

> +    spin_unlock_irqrestore(&desc->lock, flags);
> +
> +    return ret;
> +}
> +
> +int platform_get_irq(const struct dt_device_node *device, int index)
> +{
> +    struct dt_irq dt_irq;
> +
> +    if ( dt_device_get_irq(device, index, &dt_irq) )
> +        return -1;
> +
> +    if ( irq_set_type(dt_irq.irq, dt_irq.type) )
> +        return -1;

Can you please return proper -E... values, perhaps ones coming back from the
functions called?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Apr 10 15:54:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 15:54:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.946034.1344060 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2uE5-0005ZP-PN; Thu, 10 Apr 2025 15:54:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 946034.1344060; Thu, 10 Apr 2025 15:54: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 1u2uE5-0005ZI-LN; Thu, 10 Apr 2025 15:54:01 +0000
Received: by outflank-mailman (input) for mailman id 946034;
 Thu, 10 Apr 2025 15:54: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=w6Mj=W4=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u2uE4-0005ZA-D8
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 15:54:00 +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 fecb8031-1623-11f0-9ffb-bf95429c2676;
 Thu, 10 Apr 2025 17:53:50 +0200 (CEST)
Received: by mail-wr1-x42e.google.com with SMTP id
 ffacd0b85a97d-3914a5def6bso557287f8f.1
 for <xen-devel@lists.xenproject.org>; Thu, 10 Apr 2025 08:53:50 -0700 (PDT)
Received: from [10.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-39d89361170sm5189958f8f.2.2025.04.10.08.53.49
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 10 Apr 2025 08:53:49 -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: fecb8031-1623-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744300430; x=1744905230; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=YDYezsBzyIUsRamwn96y/lgFzZ7ye0bSGn7Wc4J8kYA=;
        b=U7Gg43ABrOL/FZ8FF3N132ZYLJwp0vOM7IEyqxURzlhF6DMs1blzCLHDFiFLDFFXfb
         Ns9M9YWehNig7BPAVkdqc6CIjJlK22Pu3+fq2V3BmnAt4UgyVBnlRSqcNjd+4oKpyR8K
         OhDcD0xALgb25QkucqzN3nIbGdcZaQoys80IKxg6K8zs+Chr/sPPWXiXZFD7t6fwbyLU
         sIFJmSJPGXXKSQYjaW8rWtcoGEazwwdNY2a+n0HnEQCtwNFxipfhAQHuOYWqmULBBizl
         SeZFc2OK8EA/jSaNzW17LIDpb00Y1qMEpFQoMBPOzoHHkZ9rZIGDIi0SU3Qqr2qL4NkO
         NJnQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744300430; x=1744905230;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=YDYezsBzyIUsRamwn96y/lgFzZ7ye0bSGn7Wc4J8kYA=;
        b=Rf4uPXLpLuXnbf02firoGUNxd1v7LI6L7cq/OeeN7wxGtvbVKAFbVgbHvc+u1h7y3f
         hpIM7aPJ1UDrkkpPoS5uUsknu87E0qHnWX+hUovHgNlkBR9wRLf624DAyXx895uM48e6
         Wen62orZKECz4dI1rNQOSGyNUi4hQOEFq/5Csz3Safa5wJHIOkvr67aPRSekeSlJaCqK
         pzy0e7XQKwH+1HiV3BIoHf2IqDi1iIajRDNU6PwrcJlZy37Kgi0rjJmsJ3b+s/cH0vY5
         Zehv2mytRzA+TKdK6S4pMP/yJTYRJTGB/6t4TXyhtmdX4Er+QglBoy4N92nCdZqF1Z5N
         Rw6A==
X-Forwarded-Encrypted: i=1; AJvYcCX84QCwYF19EL4BKXePE+YSVmHobKuw7EkMo8r4rAQapnEl8jW10Rqcm/AGzfxHPDq8jxI1S76PSgw=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx8/yiNoQAt/7RGHH9Nsp3LF3vRI9iqutuCAELdSG0cD1q3KSaH
	I0YLN0KRP8vLmRpYiNlY3koktqW5um6C575t268Fph4hd9vwJHjUvpMLpMDcCw==
X-Gm-Gg: ASbGncvcmNZ4rcL8nsOd0k3Ij6+5mA6so6pY26lcvntCik3wfIW7gaMjOC8wOGvK1b+
	2C5Y00kT9haHe+JeO2ThumzssApf+ZfaiiBvecjYtSX/ramNtwbiA2MBogqMvmnggUbfMtLiNiJ
	yyzOkNoBc2H5Uwd9ohn6GOUxUpKy+aYOs3ZHD/gk/Uvgwhik9uZt9o5C3+n1X9HnBGZ3cAImPu3
	bjY58iaHTSqhtW6h8A0RZ2tvWcT9wVdb9MjwSjsZZ/UFx7AHxS635mQJWKSoMtf8CvpfP9XP82O
	Nm5j2bSK48ed5dD4c6FP44p/hsDAZhZ80eYveetpGUmU/TwiMHDtH3k9HI7Y8Ho1tKUyFyBx9kD
	f1RIgaPkQToOkVDKka0OCScymJQ==
X-Google-Smtp-Source: AGHT+IED5e5p6/xo0Q9r1t4T+qpDN4g9xuNa8GepOI7o5ZD/7Zf+VVB9/GmNzCOySXEwCl8xnfVKfg==
X-Received: by 2002:a5d:64e3:0:b0:390:e853:85bd with SMTP id ffacd0b85a97d-39d8f4f0f98mr2654873f8f.48.1744300429776;
        Thu, 10 Apr 2025 08:53:49 -0700 (PDT)
Message-ID: <65f5952a-8d2a-499c-bd66-53e9e2fbfa9c@suse.com>
Date: Thu, 10 Apr 2025 17:53:48 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 06/14] xen/riscv: riscv_of_processor_hartid()
 implementation
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1744126720.git.oleksii.kurochko@gmail.com>
 <ab592d50ad161ffed3950bdf58ade49ae90a3c0e.1744126720.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: <ab592d50ad161ffed3950bdf58ade49ae90a3c0e.1744126720.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.04.2025 17:57, Oleksii Kurochko wrote:
> @@ -13,3 +16,68 @@ void __init smp_clear_cpu_maps(void)
>      cpumask_set_cpu(0, &cpu_online_map);
>      cpumask_copy(&cpu_present_map, &cpu_possible_map);
>  }
> +
> +/**
> + * of_get_cpu_hwid - Get the hardware ID from a CPU device node
> + *
> + * @cpun: CPU number(logical index) for which device node is required
> + * @thread: The local thread number to get the hardware ID for.
> + *
> + * Return: The hardware ID for the CPU node or ~0ULL if not found.
> + */
> +static uint64_t of_get_cpu_hwid(struct dt_device_node *cpun, unsigned int thread)

What does the "of" prefix stand for here? Looking at the function body I'm
really at a loss. (I was first guessing something like OpenFirmware, but
there's nothing here that would support that.)

As you're only fetching data - can cpun be pointer-to-const?

> +{
> +    const __be32 *cell;
> +    int ac;
> +    uint32_t len;
> +
> +    ac = dt_n_addr_cells(cpun);
> +    cell = dt_get_property(cpun, "reg", &len);
> +    if ( !cell || !ac || ((sizeof(*cell) * ac * (thread + 1)) > len) )
> +        return ~0ULL;

I'm sorry for my lack of DT knowledge, but what's "thread" representing here?
You only pass in 0 below, so it's unclear whether it's what one might expect
(the thread number on a multi-threaded core).

> +    cell += ac * thread;
> +    return dt_read_number(cell, ac);

Nit (you know what)

> +/*
> + * Returns the hart ID of the given device tree node, or -ENODEV if the node
> + * isn't an enabled and valid RISC-V hart node.
> + */
> +int riscv_of_processor_hartid(struct dt_device_node *node, unsigned long *hart)

Similar question as above: What's "of" and what significance does the "riscv"
prefix have in RISC-V code?

Const-ness question again for "node".

> +{
> +    const char *isa;
> +
> +    if ( !dt_device_is_compatible(node, "riscv") )
> +    {
> +        printk("Found incompatible CPU\n");
> +        return -ENODEV;
> +    }
> +
> +    *hart = (unsigned long) of_get_cpu_hwid(node, 0);
> +    if ( *hart == ~0UL )

While for RV64 this won't matter, the difference in types (uint64_t returned,
unsigned long used) is still puzzling me. What's the deal?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Apr 10 15:59:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 15:59:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.946047.1344069 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2uJ2-00069l-9Y; Thu, 10 Apr 2025 15:59:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 946047.1344069; Thu, 10 Apr 2025 15: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 1u2uJ2-00069e-71; Thu, 10 Apr 2025 15:59:08 +0000
Received: by outflank-mailman (input) for mailman id 946047;
 Thu, 10 Apr 2025 15:59:06 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=C125=W4=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u2uJ0-00069Y-Dx
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 15:59:06 +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 b7f927a7-1624-11f0-9ffb-bf95429c2676;
 Thu, 10 Apr 2025 17:59:01 +0200 (CEST)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-43edecbfb94so10945595e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 10 Apr 2025 08:59:01 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43f2338d802sm60117725e9.1.2025.04.10.08.58.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 10 Apr 2025 08:59: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: b7f927a7-1624-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744300740; x=1744905540; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=2QEiA9FdsnEKwRKDmE3tUvD7/i0SnEOny2Zcohbc88M=;
        b=DBlvqtonT7ajvAdnIVwkYASYZjkT+dhDx3faBxJJRx1rNACunGBsi1xUYpqI+dKWcD
         zUnx1owOKf17Q4RaeLd5/74FyrxcD8cjpjlWbgvFpaqLjIoaC4Iwd9/cMTbGoD4NP3mY
         Hw/k6Tk3zQI+LckxZ9vxbpmJQao5+sUBXqYxw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744300740; x=1744905540;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=2QEiA9FdsnEKwRKDmE3tUvD7/i0SnEOny2Zcohbc88M=;
        b=uL9Eryb2mTtWV+CkULLRRJkYRSGWbL8c2++ksysRKvdUOwmXo3Dzt0ksQzhKBq2LTF
         8dRUqFj6PAj9GsrHi29nT5E6vnRArCls3x3fZ07l+yne0vIxXQ7pgAX05HPDlwdA0/ms
         MM9YTkyFzvPzIGPiMngbqsKDg76uWq7CQDSqCn2UNWgQycbgYWxdNCDocAHJYPvHH+kJ
         XhSMILhtFUNV6sUTVJ9j6dCgT1oynrdedMRe0QvzRAef3trsarDtTMa+MXqVAS1HkbIU
         InuAZcz69CqQm/LMJrmoUA2tETCz7OnF4tCglvCl0LeRZNr09MQiczF1z0tKea4a7WnF
         nSLw==
X-Forwarded-Encrypted: i=1; AJvYcCV+Zy+TjgmcxWwKFXfQqj/Ue8Ik0tP+43wZp1eAOFy81mZyWFbvsB/RYfRV9f3N42U0bpCy4TUlLLs=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy1FTyJFQG/zJhL4DQLhAbVWEkNZxy+fdRFXACGCtfVO1IoE2zf
	smbzUXaT+dnL7aP5ijENyq+STxhSWsWH6romLs2bE7OMJnAbgs7e+OQYiC+HKdhJG6v3R5TarwC
	xVQo=
X-Gm-Gg: ASbGncu/ixep1oYtrxuVKNM6I20QDouzJY5uF7EgUpKSwuGlOgpe3/uIasPz7zT/W7H
	KBK2MhfihH0OGLmEG348T+JU2MHu9OwWy/sXrhe4L5a+s8aXmoRd1QuEw+fEJfA/F+R3NudjMVl
	LPCB7uCs8rL/Ja0Fhhc/U5RH8yH94z0DGfNhDbposnv9xf7+91EDfo8KPdQmXqPLNDMppfelINT
	SCCCYW85Rmn7NDeGMqT5KSInvCFfq1GKIQsIecJRpd0is83hKEHyipozmgToZb+ifMWfDFK1vK9
	1If7GmIGjc3PDw4H1+MDyKjyHIU2jKL/31WCuNv/n00R3ZNNBBnuXnTcHCtVotHS2LY8c2rOhbF
	XWLx5XcwF5HkOz7h5
X-Google-Smtp-Source: AGHT+IE7Iid/8kutM6eZ3b/lqbsvnP3KxKUtnooveMgBistXn6ltMr7wDcE4djrx+CjxZ7KRt1DWNQ==
X-Received: by 2002:a05:6000:40c9:b0:391:4559:876a with SMTP id ffacd0b85a97d-39d8fd8a19bmr2432317f8f.46.1744300740427;
        Thu, 10 Apr 2025 08:59:00 -0700 (PDT)
Message-ID: <6046d30b-b5ca-4867-9f24-831b469d1ee3@citrix.com>
Date: Thu, 10 Apr 2025 16:58:59 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH TEST-ARTEFACTS] Fix adduser --shell path
To: Anthony PERARD <anthony.perard@vates.tech>, xen-devel@lists.xenproject.org
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Michal Orzel <michal.orzel@amd.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
References: <20250410155531.29570-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: <20250410155531.29570-1-anthony.perard@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 10/04/2025 4:56 pm, Anthony PERARD wrote:
> We need the full path to a shell in `/etc/passwd`, otherwise `su user`
> doesn't work.
>
>     $ su user
>     su: can't execute 'bash': No such file or directory
>
> Signed-off-by: Anthony PERARD <anthony.perard@vates.tech>

Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>

Would you like me to pick this up?

> ---
>
> Although, I don't know when this shell is been used, it seems that we
> get /bin/sh unless we start the container explicitly with `bash`, like
> containerize is doing.

I'm not sure why the x86 side is like that, but I didn't want to change
it gratuitously...

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Apr 10 16:02:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 16:02:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.946058.1344080 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2uMG-000105-NB; Thu, 10 Apr 2025 16:02:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 946058.1344080; Thu, 10 Apr 2025 16:02: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 1u2uMG-0000zy-K9; Thu, 10 Apr 2025 16:02:28 +0000
Received: by outflank-mailman (input) for mailman id 946058;
 Thu, 10 Apr 2025 16:02: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=w6Mj=W4=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u2uME-0000zr-GP
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 16:02:26 +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 31d97a01-1625-11f0-9eac-5ba50f476ded;
 Thu, 10 Apr 2025 18:02:25 +0200 (CEST)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-39c1efc4577so548650f8f.0
 for <xen-devel@lists.xenproject.org>; Thu, 10 Apr 2025 09:02:25 -0700 (PDT)
Received: from [10.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-43f205ecb20sm60115305e9.3.2025.04.10.09.02.23
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 10 Apr 2025 09:02: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: 31d97a01-1625-11f0-9eac-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744300945; x=1744905745; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=oXbrqxyLG3Khq8o0Q5Jjleb4/z4VA5gtTTQndqxNTRk=;
        b=PCpNRhV8dA4tvOpyioubo1NA1lf3DYzTQPGFRAe1aj+RgRXm+3xgV739TAXTftVyQw
         /ohnMxe5wmU3IgQG6L4VJBJ/cZvSUPXEXfekU7E6Zm+xLrj75F/fXpLE0dOe2IGZun0Y
         PwuNT/x+SyCR0ZomSMK22D4jZ7CYZf3xNLj0ekiWniz+cpReiz6XnpeWznzH4UTugaS8
         B65jhB3MI1qQdg0k9iBpDQvqwULzmm17rUACgj0LuFiC0qAAKXNw2Nmu/CPJ0CWwzcMg
         ALITPqhERl+3LfLMAv4RZncO8MuxX6JoKgXqBf8WivfB66ChejHwvUA6rM0nVknLO0v9
         DG2g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744300945; x=1744905745;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=oXbrqxyLG3Khq8o0Q5Jjleb4/z4VA5gtTTQndqxNTRk=;
        b=SyPgCPlJvhnwrp7IZNPmmSSmbZrNGWuRDrZsga1V6Sl5Bx4Lu2X2A3g1sZflvTnz/g
         tp2/1bHfV8pgrMn+vFK2HRjMRqZLt9s36sk+ph+BrMX881B87Z3U+L10Uy9dDFN0ZNAI
         boJxiQ37v8CuOc/7lwDcxLywV8OYNpAeocN99JAMuGzO5poHHn+UYcJtcz8QbQo6oaTs
         7yOoPkiQhKnwfGkilP2vyi9OU/h3Ln3h1dgYC3vp95Em22Egrxq6SxlVnwgKv0FQwEiV
         2yNfLYAIiF16Wi1bzfuFePnquVl3fB7S1m5xDNfMQU1XMtaaR5alUDTwPWGQMecwa44p
         SmUg==
X-Forwarded-Encrypted: i=1; AJvYcCVac4a9zPQ5bG8RrcC/63hqWBC0vMcLGYn+vhJrPGUfER/JKTdEblxK+ZC7vKiyoGIXBr6TFyNBoF8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzJ57a/OSsp2g8gy6Us2xRqOLfnHTwwazV52gwtHksc/B4LGoXW
	2+lMAv17mkWLty0T9KU7N6SU4MfqEHXx+dgLGZ2lzSCAkdwREWKNhvsRjqQplg==
X-Gm-Gg: ASbGncvYh0uD3iIo8MoN6NaPlJqmHmdjZ2N4R0Gv3RNLeeL5W56g/otZgh4NPLIzd99
	npYRfS4OiQJs5JlC2TfAYyUhTzKLjfFQnDHhnPnfkuXrHZOBjT/iLYl54CIY78xDVBtEiWNRPR1
	UvQBjuh6T3iPUJLSQ1GLw+KbiSZfKVp/G2UtJKQybPZUHKoLALm+bZdqZzy79AYDXkpU1AAHqWA
	kAeRa9Quklr11HFqPKD2iGp/7tz6NIMcf9vhk6/RmcC8TthV1813MRaSiqtB1cOwLJFxk0w5MAZ
	bJRXtdpQXdZAYpRDztac2YSm+Xbf2xAaxuXXYLxXSkYpAFPYnxGFD9YtGUsgf6JueaxLruqqGfn
	R4NsWA2DIR3X2mvfpHWRNSluApg==
X-Google-Smtp-Source: AGHT+IF4CqnyBVX7Z2L95TCyCfHbLn+pkNZM3mRhtI1JU39Q2cd//i6rl9CgqdrRxLJFvtHjXJ4b6g==
X-Received: by 2002:a05:6000:2906:b0:390:fbba:e65e with SMTP id ffacd0b85a97d-39d8f474ademr2624608f8f.32.1744300944272;
        Thu, 10 Apr 2025 09:02:24 -0700 (PDT)
Message-ID: <b799c1f9-16ff-4af1-8b57-6e5360f10c47@suse.com>
Date: Thu, 10 Apr 2025 18:02:22 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 07/14] xen/riscv: Introduce intc_hw_operations
 abstraction
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Romain Caritey <Romain.Caritey@microchip.com>, xen-devel@lists.xenproject.org
References: <cover.1744126720.git.oleksii.kurochko@gmail.com>
 <139b37478b4ca7e2ec3a04b73f462197227f57fa.1744126720.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: <139b37478b4ca7e2ec3a04b73f462197227f57fa.1744126720.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.04.2025 17:57, Oleksii Kurochko wrote:
> --- a/xen/arch/riscv/include/asm/intc.h
> +++ b/xen/arch/riscv/include/asm/intc.h
> @@ -17,6 +17,29 @@ struct intc_info {
>      const struct dt_device_node *node;
>  };
>  
> +struct intc_hw_operations {
> +    /* Hold intc hw information */
> +    const struct intc_info *info;
> +    /* Initialize the intc and the boot CPU */
> +    int (*init)(void);
> +
> +    /* hw_irq_controller to enable/disable/eoi host irq */
> +    hw_irq_controller *host_irq_type;

Pointer-to-const perhaps?

> +    /* Set IRQ type */
> +    void (*set_irq_type)(struct irq_desc *desc, unsigned int type);
> +    /* Set IRQ priority */
> +    void (*set_irq_priority)(struct irq_desc *desc, unsigned int priority);
> +
> +};
> +
>  void intc_preinit(void);
>  
> +void intc_init(void);
> +
> +void register_intc_ops(const struct intc_hw_operations *ops);
> +
> +struct irq_desc;

If it's needed here at all, it needs to move up, as some of the hook pointers
already use the type.

> --- a/xen/arch/riscv/intc.c
> +++ b/xen/arch/riscv/intc.c
> @@ -1,9 +1,21 @@
>  /* SPDX-License-Identifier: GPL-2.0-only */
>  
>  #include <xen/acpi.h>
> +#include <xen/bug.h>
>  #include <xen/device_tree.h>
>  #include <xen/init.h>
> +#include <xen/irq.h>
>  #include <xen/lib.h>
> +#include <xen/spinlock.h>
> +
> +#include <asm/intc.h>
> +
> +static const struct intc_hw_operations *intc_hw_ops;

__ro_after_init perhaps?

> +
> +void register_intc_ops(const struct intc_hw_operations *ops)

__init perhaps?

> +{
> +    intc_hw_ops = ops;
> +}
>  
>  void __init intc_preinit(void)
>  {
> @@ -12,3 +24,42 @@ void __init intc_preinit(void)
>      else
>          panic("ACPI interrupt controller preinit() isn't implemented\n");
>  }
> +
> +void __init intc_init(void)
> +{
> +    ASSERT(intc_hw_ops);
> +
> +    if ( intc_hw_ops->init() )
> +        panic("Failed to initialize the interrupt controller drivers\n");
> +}
> +
> +/* desc->irq needs to be disabled before calling this function */
> +static void intc_set_irq_type(struct irq_desc *desc, unsigned int type)
> +{
> +    ASSERT(test_bit(_IRQ_DISABLED, &desc->status));
> +    ASSERT(spin_is_locked(&desc->lock));
> +    ASSERT(type != IRQ_TYPE_INVALID);
> +    ASSERT(intc_hw_ops && intc_hw_ops->set_irq_type);
> +
> +    intc_hw_ops->set_irq_type(desc, type);
> +}
> +
> +static void intc_set_irq_priority(struct irq_desc *desc, unsigned int priority)
> +{
> +    ASSERT(intc_hw_ops && intc_hw_ops->set_irq_priority);
> +
> +    intc_hw_ops->set_irq_priority(desc, priority);
> +}
> +
> +void intc_route_irq_to_xen(struct irq_desc *desc, unsigned int priority)
> +{
> +    ASSERT(test_bit(_IRQ_DISABLED, &desc->status));
> +    ASSERT(spin_is_locked(&desc->lock));
> +    /* Can't route interrupts that don't exist */
> +    ASSERT(intc_hw_ops && desc->irq < intc_hw_ops->info->nr_irqs);
> +
> +    desc->handler = intc_hw_ops->host_irq_type;
> +
> +    intc_set_irq_type(desc, desc->arch.type);
> +    intc_set_irq_priority(desc, priority);

If these are going to remain the sole callers of the two functions, I'd question
the need for the separate functions. Some of the assertions done there would then
actually be redundant.

If not, is there a reason intc_set_irq_priority() doesn't have a lock-held check?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Apr 10 16:08:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 16:08:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.946077.1344089 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2uS8-0002Lz-E3; Thu, 10 Apr 2025 16:08:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 946077.1344089; Thu, 10 Apr 2025 16: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 1u2uS8-0002Ls-BW; Thu, 10 Apr 2025 16:08:32 +0000
Received: by outflank-mailman (input) for mailman id 946077;
 Thu, 10 Apr 2025 16:08: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=kj+o=W4=linux.ibm.com=agordeev@srs-se1.protection.inumbo.net>)
 id 1u2uS6-0002Lm-Tw
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 16:08:30 +0000
Received: from mx0b-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com
 [148.163.158.5]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 08e35061-1626-11f0-9ffb-bf95429c2676;
 Thu, 10 Apr 2025 18:08:27 +0200 (CEST)
Received: from pps.filterd (m0360072.ppops.net [127.0.0.1])
 by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 53A9vhWL025345;
 Thu, 10 Apr 2025 16:07:54 GMT
Received: from ppma21.wdc07v.mail.ibm.com
 (5b.69.3da9.ip4.static.sl-reverse.com [169.61.105.91])
 by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 45ww2xettf-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Thu, 10 Apr 2025 16:07:54 +0000 (GMT)
Received: from pps.filterd (ppma21.wdc07v.mail.ibm.com [127.0.0.1])
 by ppma21.wdc07v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 53ADaw5Y013858;
 Thu, 10 Apr 2025 16:07:53 GMT
Received: from smtprelay01.fra02v.mail.ibm.com ([9.218.2.227])
 by ppma21.wdc07v.mail.ibm.com (PPS) with ESMTPS id 45ufunxs3e-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Thu, 10 Apr 2025 16:07:53 +0000
Received: from smtpav02.fra02v.mail.ibm.com (smtpav02.fra02v.mail.ibm.com
 [10.20.54.101])
 by smtprelay01.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id
 53AG7p5N34996542
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Thu, 10 Apr 2025 16:07:51 GMT
Received: from smtpav02.fra02v.mail.ibm.com (unknown [127.0.0.1])
 by IMSVA (Postfix) with ESMTP id 3550B2004B;
 Thu, 10 Apr 2025 16:07:51 +0000 (GMT)
Received: from smtpav02.fra02v.mail.ibm.com (unknown [127.0.0.1])
 by IMSVA (Postfix) with ESMTP id A52D020040;
 Thu, 10 Apr 2025 16:07:50 +0000 (GMT)
Received: from tuxmaker.boeblingen.de.ibm.com (unknown [9.152.85.9])
 by smtpav02.fra02v.mail.ibm.com (Postfix) with ESMTPS;
 Thu, 10 Apr 2025 16:07: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: 08e35061-1626-11f0-9ffb-bf95429c2676
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=Jmp1TuG2rk5K6Ce5PuPbd2zgfuoBes
	e75oMt4oJEqFw=; b=KeFXTRMrvncRLBLOSZihPcfH8PnGHMOqw/mHIMC9+jcV7r
	3tbCvVZgLf/TazLxRstYbgeSilvo9dnkQrP8GLZmdCLP7hdgfS+pkqs9INITQDkg
	T2HE3mA0tY6cCiOjFIeFG4XrbkilmiOfe4bJ2uXJGkSGYpDWZPzJpRf8Q8UfqalD
	1CebmuMJfdmCLXHOg3FqkHKYI/Ii9HIld7NTTOecyj72tFJzSX9SlqDWmWk5FBk1
	ZqLBZaAIh98rcIrrrmwglOKbYKDbWtxoar9QCagJyJPXCGZkd7ppURgrDNEYz5xA
	RkTJiRkBoXLMNPSqxBNFta7pxtSKrRmzyuagJ/7g==
Date: Thu, 10 Apr 2025 18:07:49 +0200
From: Alexander Gordeev <agordeev@linux.ibm.com>
To: Ryan Roberts <ryan.roberts@arm.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
        "David S. Miller" <davem@davemloft.net>,
        Andreas Larsson <andreas@gaisler.com>, Juergen Gross <jgross@suse.com>,
        Boris Ostrovsky <boris.ostrovsky@oracle.com>,
        Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>,
        Borislav Petkov <bp@alien8.de>,
        Dave Hansen <dave.hansen@linux.intel.com>,
        "H. Peter Anvin" <hpa@zytor.com>,
        "Matthew Wilcox (Oracle)" <willy@infradead.org>,
        Catalin Marinas <catalin.marinas@arm.com>, linux-mm@kvack.org,
        sparclinux@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2 0/5] Fix lazy mmu mode
Message-ID: <912c7a32-b39c-494f-a29c-4865cd92aeba@agordeev.local>
References: <20250303141542.3371656-1-ryan.roberts@arm.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20250303141542.3371656-1-ryan.roberts@arm.com>
X-TM-AS-GCONF: 00
X-Proofpoint-GUID: JX9GiUvvsSXRJxqGU54xz_Dphrw8Y78U
X-Proofpoint-ORIG-GUID: JX9GiUvvsSXRJxqGU54xz_Dphrw8Y78U
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1095,Hydra:6.0.680,FMLib:17.12.68.34
 definitions=2025-04-10_04,2025-04-10_01,2024-11-22_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxlogscore=896 bulkscore=0
 impostorscore=0 mlxscore=0 suspectscore=0 clxscore=1011 priorityscore=1501
 spamscore=0 malwarescore=0 lowpriorityscore=0 adultscore=0 phishscore=0
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2502280000
 definitions=main-2504100116

On Mon, Mar 03, 2025 at 02:15:34PM +0000, Ryan Roberts wrote:

Hi Ryan,

> I'm planning to implement lazy mmu mode for arm64 to optimize vmalloc. As part
> of that, I will extend lazy mmu mode to cover kernel mappings in vmalloc table
> walkers. While lazy mmu mode is already used for kernel mappings in a few
> places, this will extend it's use significantly.
> 
> Having reviewed the existing lazy mmu implementations in powerpc, sparc and x86,
> it looks like there are a bunch of bugs, some of which may be more likely to
> trigger once I extend the use of lazy mmu.

Do you have any idea about generic code issues as result of not adhering to
the originally stated requirement:

  /*
   ...
   * the PTE updates which happen during this window.  Note that using this
   * interface requires that read hazards be removed from the code.  A read
   * hazard could result in the direct mode hypervisor case, since the actual
   * write to the page tables may not yet have taken place, so reads though
   * a raw PTE pointer after it has been modified are not guaranteed to be
   * up to date.
   ...
   */

I tried to follow few code paths and at least this one does not look so good:

copy_pte_range(..., src_pte, ...)
	ret = copy_nonpresent_pte(..., src_pte, ...)
		try_restore_exclusive_pte(..., src_pte, ...)	// is_device_exclusive_entry(entry)
			restore_exclusive_pte(..., ptep, ...)
				set_pte_at(..., ptep, ...)
					set_pte(ptep, pte);	// save in lazy mmu mode

	// ret == -ENOENT

	ptent = ptep_get(src_pte);				// lazy mmu save is not observed
	ret = copy_present_ptes(..., ptent, ...);		// wrong ptent used

I am not aware whether the effort to "read hazards be removed from the code"
has ever been made and the generic code is safe in this regard.

What is your take on this?

Thanks!


From xen-devel-bounces@lists.xenproject.org Thu Apr 10 16:18:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 16:18:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.946097.1344099 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2ubY-0005pT-3T; Thu, 10 Apr 2025 16:18:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 946097.1344099; Thu, 10 Apr 2025 16: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 1u2ubY-0005pM-0x; Thu, 10 Apr 2025 16:18:16 +0000
Received: by outflank-mailman (input) for mailman id 946097;
 Thu, 10 Apr 2025 16: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=Z2Tv=W4=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1u2ubW-0005pB-ON
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 16:18:14 +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 6573e0da-1627-11f0-9eac-5ba50f476ded;
 Thu, 10 Apr 2025 18:18:13 +0200 (CEST)
Received: from CH5PR03CA0015.namprd03.prod.outlook.com (2603:10b6:610:1f1::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.8632.22; Thu, 10 Apr
 2025 16:18:07 +0000
Received: from DS3PEPF000099E0.namprd04.prod.outlook.com
 (2603:10b6:610:1f1:cafe::ee) by CH5PR03CA0015.outlook.office365.com
 (2603:10b6:610:1f1::13) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.26 via Frontend Transport; Thu,
 10 Apr 2025 16:18:07 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 DS3PEPF000099E0.mail.protection.outlook.com (10.167.17.203) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8632.13 via Frontend Transport; Thu, 10 Apr 2025 16:18:07 +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, 10 Apr
 2025 11:18:06 -0500
Received: from [172.25.231.87] (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, 10 Apr 2025 11:18:05 -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: 6573e0da-1627-11f0-9eac-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=bxvcFZcaeupSrvgMEthYUiTudmk+YrM/yGKGAqqupjYPEfQA1V7H/NaixSsUmHQaJ9LFFVeo+4842WVH1QhAp9KSIlecryYNuNXMVO65uuuTBllNCSLxYd9+ZDym8cCDI2LLy5L24bJ4u6ZZp7DyOtVSoTYSlSW8Z3gu1JlWmX+fI9/AJOvPFb6lzMB9orUR1bDXsHi3RtyWr/m12swhanhK/AxhUd8tI75jOa1y9XL1ANujURN1cxPqMf7Rbv6Y55XXEs/KstzgyDQeun8+BNKgRoANXpFOow4p2NbM35p6YrWmFLt1P3I439gXJRemBaO/f/wWTAnBPES590H2xA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=aFNH0dveQUEeq3PVdBKPIu5GhlKXXz5N5FFb48GZA+M=;
 b=A86DES0EGIveBWznVTEhqW4rIK1zMvaXueDLo77O04Cbh1SApOTJIjK4xPWyJXwYbHlPcQxVP0P1Jge0JthKFuOLmqvz0SFQCBJoputlXKSV3jyv1ZPl02F5af7xkMSsc6Bm1R/M0nbbUbLGW/Oj2eUpsSpxgkvAALQg2xSQfuRdQgb3mX/xfu8h2gpLzzNQagf56XBPSqjhDe1B2oG+SvJSzVfjEnQzGRp3VO2OMScXX4TeV0foEDXEzBPWl/Pg8IKOOJcUnS+iv+W19elxpjr8KThmjVAwpW6kzj9mRvl1dLIty5x8zNsWJSepPBUcoNJ0ZG+HaVxjGj/pJzE/Ig==
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=aFNH0dveQUEeq3PVdBKPIu5GhlKXXz5N5FFb48GZA+M=;
 b=4K+s1sKrjoYjRPiWXYw3qTPk+dFg/yfsYe242xqNZ2phIk4HQYedvG5CPQmxmz1gAIsLMi8hhbSDysCTcsv9JUa+s6fpsQf9ivsQ0uB27Fk7sqG0l3DPbX3l4FQbKszk0F5STZX1Pgtuzt4QiOREXdNLp2lAlR4zmVnybVsLodw=
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: <08f1721b-344b-4548-9002-7024fcfe08f4@amd.com>
Date: Thu, 10 Apr 2025 12:18:07 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 02/16] x86/boot: introduce domid field to struct
 boot_domain
To: Alejandro Vallejo <agarciav@amd.com>, Jan Beulich <jbeulich@suse.com>
CC: "Daniel P. Smith" <dpsmith@apertussolutions.com>, Xenia Ragiadakou
	<xenia.ragiadakou@amd.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@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: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-3-agarciav@amd.com>
 <8089dab8-d94d-4eca-ad75-fec972386c80@suse.com>
 <D921GUF7GQSF.F8WN34U5M7L4@amd.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <D921GUF7GQSF.F8WN34U5M7L4@amd.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: DS3PEPF000099E0:EE_|DS7PR12MB9525:EE_
X-MS-Office365-Filtering-Correlation-Id: 770fce11-191d-4eac-9ddf-08dd784b4769
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|36860700013|82310400026|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?dHdMSjN6TlhWYUI2NEc2N0tRWUZCRVVzRC9KQkpoQ0Vzbk9PTGRKQWZNYXd4?=
 =?utf-8?B?dDRpWjBSdWdKMWxZQ2ZTSDU2dGx1VjdndVZ3VUxQWjdTbUI1YU81ejhVTG85?=
 =?utf-8?B?Ymg1MzVUTkN4Q3J1TkpiQ2hhL1BOclpIZTljVlB2RmtaQmtIT2VHZGI0QWlJ?=
 =?utf-8?B?dGxTWURYTy9rcU1CTnVJSnRYU3RIZ1FER2JQOCt0WVhtc2x3eXFJSkhHZm16?=
 =?utf-8?B?ME85eW9vRi9pVkMxdFg5dlpNUmozaU5mNTZNUUEzd1BMNVpuYjBYTzNPMUpV?=
 =?utf-8?B?M1haeVhzVGFkbHlUK081aDJhZjRmajVrNTVjaC9NMVpBaXg1dVlNK0VtSmY0?=
 =?utf-8?B?OE15b3pNcklaMWJkVDBueGx6MWRzdFdCZm9BT2tySGo3U3hSc0pLdjFsNEtk?=
 =?utf-8?B?WWZudnRSaXlyeEdsSVdiRkNZc3JPTndFWEwvbDlrOUJNckNZNlkyQzhEbnhY?=
 =?utf-8?B?TkhuQnZORWVoTGQvWlBPdk9LL0hwVEt6OGZqT0ZSWGE1R1BlWktiRTRoNlIx?=
 =?utf-8?B?bXVoMTZyaE10VXR0RHpnQ1NHZnhGakcxRUdyWHVIUDNPRlI3cDBOR2pjb3hv?=
 =?utf-8?B?L3BsWUhBdDRXVzZ4VDRiSXVNQmFFRTIyOWROT1E2djV4NzRLZzRYa2E3UEg5?=
 =?utf-8?B?V3lFTE43NlhLSHdSMlpNdEVybU1qcUJ6bmhKeXVvSkIwUVpoeGtWVmw0Rk1u?=
 =?utf-8?B?TTZ6NWs0Q3gyOXh4aHMwTkR2YmVvNmNBRWZyR2pkMnl4dGdGVmpWYk5KVEM2?=
 =?utf-8?B?dVhac1NJWDd5dGI2d0RsZzRoUWJMdDNZVWEyOGR4VUhONnQ0MXhrTG4zY2sv?=
 =?utf-8?B?WHFJNGw2TU4rTGlKM3pRVWovQWF2UmNoUm5IWk85Tmt0SitJVkpUblpyQ1N6?=
 =?utf-8?B?WnVISndCMDA3L3ltNU02OTczajlma25YMzNqK2I2V2NONXFoZmFNY3djQ1BJ?=
 =?utf-8?B?VFg2M3ZvUDNlTUllTml3V043ZzJlaE5iYVdtWE44SGhUekpJeTczTy9zZ1Y1?=
 =?utf-8?B?NTFGNWpXMTRET0JVclVRUHU5ZkQrQjg5MlQwK2taTFltNGRMbld3em9saVY5?=
 =?utf-8?B?Yk9CbzRTTzZrMGRnUWZxeEZjMzN0SThhQ2ZsWGtUWDlZaWF0c2xLaktIclAv?=
 =?utf-8?B?dTRJT051WUlTWUtVYjc3SWphYzBpR05zNHlXcThEeHdodm9HWGc4THJRTkZ0?=
 =?utf-8?B?KzZkVU5mTlpGVnZIN3FyS2pPa2NLK1FFZVhvNHFYNlJZc1ZBakx1R3ZwMXF4?=
 =?utf-8?B?QzMwR2FDeVJ6aG9yWjhpVS9VU2YwQm9xSGFYOHR3cmErdE9YbGZMUkhxaU1j?=
 =?utf-8?B?bzE2SlgveGsyTEVSUlJZQ3dka0xuTEQ0UE5yM3lnem4ydUFGRVhXdHpRVHph?=
 =?utf-8?B?WTBUc3dUbU55dis3dktsaERxeTRERjJiYm1ra1ZaVmppSjlOWVp3VE5JRnJw?=
 =?utf-8?B?cUYwaVBjYjY5bkRqdW1GbCtrVVdib3ZhUFc2aUgzZkhadFNuOUhEeXM1WWhm?=
 =?utf-8?B?N2RkemFFdWpLczU3LzZuYnFQQUdkLzZXSFRlQTdYSTZIRlFlZHZwYjJVaWhK?=
 =?utf-8?B?UUpLKzczRWRXNkwyTDdzeUloNXZxTkNNR2IrVHhSSkJTM1hDWmxMNG9LYjUw?=
 =?utf-8?B?V2RGYzh1Yzc3K0NYdWpPZTdCNlhET2h4MU9IVzFZN2ZUazhFeml6d3lFTkZU?=
 =?utf-8?B?Z010aFZvTElMU2drQmg3ODNkdjdhN1hoT0MrVkRwR2hVQVh0eEkyYjhjUVNn?=
 =?utf-8?B?b0o4MVpoQzhkczBrc2swZWhVL0QvcmtsVTBMRUpGRUkwY3Q0Q2czczdaNllX?=
 =?utf-8?B?eFVWOVdoWXZCanZ2UDhXU2U4MnYvS1FXY3dwUjlCSmpoMkllajZPdlB4bmtm?=
 =?utf-8?B?NXozY1RWZ2F4V1dLcW9hTUVNT0xnZmhwd29SbXh3U2cxOWJpb2RKaXArZk1n?=
 =?utf-8?B?YmVFeFF2bnc4UnBFNFpWNzBkdjBjY1NCT3hhRm1ZZGt1QUVMUW0wTlhwVWF5?=
 =?utf-8?B?NW83YkNjUGdTckU0d28wYithK0hyYUZ3UnpLRmx1L2dZNGhwVExsNTdaK0lS?=
 =?utf-8?Q?67UGiB?=
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)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Apr 2025 16:18:07.1525
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 770fce11-191d-4eac-9ddf-08dd784b4769
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:
	DS3PEPF000099E0.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB9525

On 2025-04-09 06:33, Alejandro Vallejo wrote:
> On Wed Apr 9, 2025 at 7:34 AM BST, Jan Beulich wrote:
>> On 08.04.2025 18:07, Alejandro Vallejo wrote:
>>> @@ -1010,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 %pd vcpu 0\n", d);
>>
>> And why exactly is this not %pdv0?
> 
> Likely to avoid what looks like a highly cryptic format specifier. But I
> agree your option seems nicer.

Hi, Jan.  Sorry, I made this change.  In earlier feedback you wrote:

 > That said, since vsprintf.c:print_vcpu() calls print_domain(), using
 > %pd is certainly an option here (inconsistencies would arise if %pv
 > and %pd presented domain IDs in [perhaps just slightly] different
 > ways).

I took that to mean you thought "faking" %pv is undesirable, so I just 
wrote in in a different form to avoid the potential inconsistency.  I'm 
fine with %pdv0.

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

Thanks,
Jason


From xen-devel-bounces@lists.xenproject.org Thu Apr 10 16:57:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 16:57:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.946111.1344109 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2vDT-0000uF-OS; Thu, 10 Apr 2025 16:57:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 946111.1344109; Thu, 10 Apr 2025 16:57:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2vDT-0000u8-Ll; Thu, 10 Apr 2025 16:57:27 +0000
Received: by outflank-mailman (input) for mailman id 946111;
 Thu, 10 Apr 2025 16:57:26 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=C125=W4=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u2vDS-0000u2-U7
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 16:57:26 +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 e0a90a1b-162c-11f0-9eac-5ba50f476ded;
 Thu, 10 Apr 2025 18:57:25 +0200 (CEST)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-39c1ef4acf2so646492f8f.0
 for <xen-devel@lists.xenproject.org>; Thu, 10 Apr 2025 09:57:25 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39d893f0b14sm5377852f8f.65.2025.04.10.09.57.24
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 10 Apr 2025 09:57: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: e0a90a1b-162c-11f0-9eac-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744304245; x=1744909045; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=HAXu4b0cu6VCaBQ0y7Rfj+EDqZJfK8tOiF7Dhg3HMMM=;
        b=prYdi3BAvEeova7M/JvpXdBp559nqpwbDVbRlsEPto7+71B2hcGboA5zUpZ5q8KP4E
         4lj0M5FfBbP35KQuyKE2z9pBlpQKTyiTOvnDw9u19FCSEtaIsXHjzi/mh6JiCEF79x0Q
         y3XWkjauwXACJVqZ+NGMCph5EePU4ETTCPjmE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744304245; x=1744909045;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=HAXu4b0cu6VCaBQ0y7Rfj+EDqZJfK8tOiF7Dhg3HMMM=;
        b=XPTC3kK9XO4hfq8YVHdr/18bIZp36GY2hjmwjHAb8fGXGLP7eyzWsZNT1EqHvUQ6zM
         VHiVaSOGruJxeFhwF8EtQ1jVxb52nbT5Chgd8Nohe2D9Yph7O10F4/pUmDMdaqiIXjuM
         T4GUORe06YnlmNHyg+AObo+eiduhhCIdjlEW3GGnzDwSeq5uhrCxdS0RVdOqPLjbJNmI
         DVAxjZ25edDBlQ93fTr8e52w7uQbZsuxuyupxuXS9fxPYwPYxLSvPY/R087CQSBVGme1
         aR8AXc4EuwXcJ8XpL+v4oDFJDOxJECOWQyWPuMfG3xqf5NH+WpCz1pwfFlZlkcUZKxQS
         ksuA==
X-Gm-Message-State: AOJu0Yx8UtODRgPitnNC1XB/HIZiMzYoJviDxNHju5CORQP0DA2R6edD
	gglJ4siQ0esxjsef/FDH/e+XNerOwpTOzXUmhIv6zZLc884gSdvH2o/TIMdGr2E=
X-Gm-Gg: ASbGnctKoiCT5N959wez1twkhVX6QpDPVY/OWtlpb/BxqvpD6/+Ocf0wLlofM/LsD4H
	JZzHLQHxV+P75GAANrx8ho43/Ed2BjdSNscSTFukcjnJX2GfhEnNUGD0lcZM/DxGZW5ReczRt8z
	/GyegnfepVi91g5fOgfGhBTIh0v5GJ/iH25YMhJWOGcP+bDOpbiBRDV7d/jijF+pbk+5Q87lGt0
	kCsTZsV1b4GomHz4u++TPyL9TQ1yC8NbOZdITzGi0+HwwaOuzGqJAzGXyibC+Knhj10kL0sN65F
	2FtBboScIgtTpqkxgcBmbJSsBQTGImIytmIJlbOJOmxjkzn/4Rn1IbOncKkOcFZpd8dmAEy9lq4
	SWgUQ6g==
X-Google-Smtp-Source: AGHT+IFNdEBDxR0Zgk17adwN+ZJfl2wzLITD8QvnsCz+dK7P5AtHhfYmGBLHmb5eNgrlsF9uFrK+1A==
X-Received: by 2002:a05:6000:402b:b0:390:f460:77b0 with SMTP id ffacd0b85a97d-39d8fd51bc3mr3126094f8f.26.1744304244747;
        Thu, 10 Apr 2025 09:57:24 -0700 (PDT)
Message-ID: <718ee844-64b6-4146-a0fd-0ff7042ce737@citrix.com>
Date: Thu, 10 Apr 2025 17:57:23 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH TEST-ARTEFACTS] Fix adduser --shell path
To: Anthony PERARD <anthony.perard@vates.tech>
Cc: xen-devel@lists.xenproject.org, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Michal Orzel <michal.orzel@amd.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
References: <20250410155531.29570-1-anthony.perard@vates.tech>
 <6046d30b-b5ca-4867-9f24-831b469d1ee3@citrix.com> <Z_f0BO6oncTMKtrQ@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: <Z_f0BO6oncTMKtrQ@l14>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 10/04/2025 5:38 pm, Anthony PERARD wrote:
> On Thu, Apr 10, 2025 at 04:58:59PM +0100, Andrew Cooper wrote:
>> On 10/04/2025 4:56 pm, Anthony PERARD wrote:
>>> We need the full path to a shell in `/etc/passwd`, otherwise `su user`
>>> doesn't work.
>>>
>>>     $ su user
>>>     su: can't execute 'bash': No such file or directory
>>>
>>> Signed-off-by: Anthony PERARD <anthony.perard@vates.tech>
>> Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
>>
>> Would you like me to pick this up?
> Yes, that would be nice. I saw you've got more change coming to the
> dockerfiles, like actually adding `diffutils` to the x86 build
> container source file.

Indeed.

> And by the way, you might want to add `gawk` as
> well to replace busybox's awk, to make the linux build a bit more happy,
> even if it doesn't seems to be an issue right now.

That awk complaint appears to go away with find/diffutils in the
container.  I've not figured out exactly why yet.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Apr 10 17:18:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 17:18:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.946129.1344132 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2vXy-00070S-FD; Thu, 10 Apr 2025 17:18:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 946129.1344132; Thu, 10 Apr 2025 17:18: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 1u2vXy-00070L-C3; Thu, 10 Apr 2025 17:18:38 +0000
Received: by outflank-mailman (input) for mailman id 946129;
 Thu, 10 Apr 2025 17: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=S0bf=W4=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1u2vXx-00070D-1C
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 17:18:37 +0000
Received: from fout-b6-smtp.messagingengine.com
 (fout-b6-smtp.messagingengine.com [202.12.124.149])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d5451781-162f-11f0-9eac-5ba50f476ded;
 Thu, 10 Apr 2025 19:18:35 +0200 (CEST)
Received: from phl-compute-03.internal (phl-compute-03.phl.internal
 [10.202.2.43])
 by mailfout.stl.internal (Postfix) with ESMTP id EEE4D114012C;
 Thu, 10 Apr 2025 13:18:33 -0400 (EDT)
Received: from phl-mailfrontend-01 ([10.202.2.162])
 by phl-compute-03.internal (MEProxy); Thu, 10 Apr 2025 13:18:34 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 10 Apr 2025 13:18:32 -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: d5451781-162f-11f0-9eac-5ba50f476ded
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=fm2; t=1744305513;
	 x=1744391913; bh=8+tIHI0/LkJ/gLUHjcb4H/XbFT/LNdLyWJk+FNi/uIs=; b=
	lJSgjjTUapgjI6SrLs0XQDQ/25n+jmu34pY0ioRwfLZ6En7panT8aqmS/A03/AEh
	MtSGGCMzE4yiZg7HyroO0K5P3DJTbuU4ntHnDf+sURnqEnQn9P9hGj2R43cnjdiu
	cHeoxe2oAJpOe8tjkH06dzP6B298GqKkhIrhOzesc3d3/ILmSsuWpRPsxZ5r0J1k
	00AtgHbReINE/1TwxhY+6woTpWF9jd0bb1XKvvGM8/1EJtvBVQ1QkLloHJ4mCCD7
	rAOlFtRWfMleD9BeAYCO3tX8gXEJ0j2JGEU6nb7a80UCpmtm2j2vORKXGM8pyuOT
	bkWTv+P3ohUPhv1C81fffw==
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=fm2; t=
	1744305513; x=1744391913; bh=8+tIHI0/LkJ/gLUHjcb4H/XbFT/LNdLyWJk
	+FNi/uIs=; b=c6oxvJz2/SaRh+0/RLi6o7Bbn7A+w57oDeNq1lJsYiCWH8pVmKh
	CGERgpzYqNQ+uetZh8qS9AlIg8kYGxmnxzLtGgV52jgxjknJBkFHnQiTFr1lGsnw
	XYGDF0viV4O5Hnj2vnN71xbsNsEk9Z6qvKbxXH82eIqakwgVBtvHSujQTOD4gSz1
	hm5l+bJzAR9rdNvpDcbqWRiK76U0TePSQVywvCTceHM3+eTmQ8eA1jcMgNvVlaLD
	yr0hgGe0M+4S0a7IBghU6GM0DaHuYpjuUTXI9sW3vc/7YwunM2SvGDZg+2kbKg5m
	QMu8P1JsDrmIvHGbUsctms2sIUXqsIzUebw==
X-ME-Sender: <xms:af33Z127rNjXUHtBTuLHRDASj8OJhvQ1NUouxmL8d4q2g4yP0RBjdg>
    <xme:af33Z8FwkxlaEGvubEOC1JJyPzoI7sa5VmmHF9ZdYsZleKKQvL0XHTb3sK_KzyRHm
    dUdPcahJIYzlA>
X-ME-Received: <xmr:af33Z17AYKJ9CHyROnz0yTRo9csi2Y6sT7e9SL5YZO29EEXEw1OTDs8r_KFPhLOKeLemTX-xPIirSa2Bbplge8eVA45ahqRG3g>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvtdelgeelucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
    pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
    gvnhhtshculddquddttddmnecujfgurhepfffhvfevuffkfhggtggujgesghdtreertddt
    jeenucfhrhhomhepofgrrhgvkhcuofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuc
    eomhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecu
    ggftrfgrthhtvghrnhepgfduleetfeevhfefheeiteeliefhjefhleduveetteekveettd
    dvgeeuteefjedunecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhf
    rhhomhepmhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomh
    dpnhgspghrtghpthhtohepiedpmhhouggvpehsmhhtphhouhhtpdhrtghpthhtoheprghn
    ughrvgifrdgtohhophgvrhefsegtihhtrhhigidrtghomhdprhgtphhtthhopegrnhhthh
    honhihrdhpvghrrghrugesvhgrthgvshdrthgvtghhpdhrtghpthhtohepgigvnhdquggv
    vhgvlheslhhishhtshdrgigvnhhprhhojhgvtghtrdhorhhgpdhrtghpthhtoheprhhogh
    gvrhdrphgruhestghithhrihigrdgtohhmpdhrtghpthhtohepshhsthgrsggvlhhlihhn
    iheskhgvrhhnvghlrdhorhhgpdhrtghpthhtohepmhhitghhrghlrdhorhiivghlsegrmh
    gurdgtohhm
X-ME-Proxy: <xmx:af33Zy3IkS88je1Hslg6SqueYoOKUixDHWPcgxsJiRiGnpwMseThZg>
    <xmx:af33Z4FtqgZkPK0f5GcgKg9z3YrnFHtKQvYhSCe2caD9nwAuGA9dFQ>
    <xmx:af33Zz8ixUZsmTqu14rsjxboz8QRQLOxwA6clAomrYoKsRlaX4b6DA>
    <xmx:af33Z1nAZeXrH7n1baIdfB6porKHI9cut_jDffmUMqfcP0A6VGvXFA>
    <xmx:af33Z7EfmjcOAuqLKJANlyYiu3LTwCBZJgHTAtet81ey1J3klFU9fJgm>
Feedback-ID: i1568416f:Fastmail
Date: Thu, 10 Apr 2025 19:18:29 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
	xen-devel@lists.xenproject.org,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH TEST-ARTEFACTS] Fix adduser --shell path
Message-ID: <Z_f9Zjx0jSxVR6jC@mail-itl>
References: <20250410155531.29570-1-anthony.perard@vates.tech>
 <6046d30b-b5ca-4867-9f24-831b469d1ee3@citrix.com>
 <Z_f0BO6oncTMKtrQ@l14>
 <718ee844-64b6-4146-a0fd-0ff7042ce737@citrix.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="VsAzbb20BGurfcS8"
Content-Disposition: inline
In-Reply-To: <718ee844-64b6-4146-a0fd-0ff7042ce737@citrix.com>


--VsAzbb20BGurfcS8
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Thu, 10 Apr 2025 19:18:29 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
	xen-devel@lists.xenproject.org,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH TEST-ARTEFACTS] Fix adduser --shell path

On Thu, Apr 10, 2025 at 05:57:23PM +0100, Andrew Cooper wrote:
> On 10/04/2025 5:38 pm, Anthony PERARD wrote:
> > And by the way, you might want to add `gawk` as
> > well to replace busybox's awk, to make the linux build a bit more happy,
> > even if it doesn't seems to be an issue right now.
>=20
> That awk complaint appears to go away with find/diffutils in the
> container.=C2=A0 I've not figured out exactly why yet.

See my earlier email, I've seen it still there at least in one job.

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmf3/WYACgkQ24/THMrX
1ywnmAgAkKDudO/BMnsEMEkjLx/cdFZsPwSGOyL2UVXHX+tX2UiFz4BI3NYTkqOd
B1LsRm/sTqF2sX42AC4rJX2s3ab4D4dDfpRtFaeOuKv7MXHptHLElV2uWI+W98VF
6eDp5rn+BzDwpq7KiM4T/JR+ARwh89TsGbNUVwgNuj2iOIZInkxogDuxYsoXeolv
vbWaMuZ4Du0xYKQb/IfXb5iZbO4z/69aQ1FuSS+OTDBzy1TLbp376vihVAuvBqen
fKpq2FE8CfgA9ZehpCEO9LVtaTZZSO5OO4xSbntx6s/YEholMCbgciIVOZQizWN1
J4aMdE7v5q62aHMHHB1eS+XQaeSTsA==
=gpZ3
-----END PGP SIGNATURE-----

--VsAzbb20BGurfcS8--


From xen-devel-bounces@lists.xenproject.org Thu Apr 10 18:21:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 18:21:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.946163.1344142 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2wWa-0000dr-Vh; Thu, 10 Apr 2025 18:21:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 946163.1344142; Thu, 10 Apr 2025 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 1u2wWa-0000dk-ST; Thu, 10 Apr 2025 18:21:16 +0000
Received: by outflank-mailman (input) for mailman id 946163;
 Thu, 10 Apr 2025 18:21: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=ged3=W4=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u2wWZ-0000dP-C3
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 18:21:15 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on2060e.outbound.protection.outlook.com
 [2a01:111:f403:2415::60e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8689dbcf-1638-11f0-9ffb-bf95429c2676;
 Thu, 10 Apr 2025 20:20:49 +0200 (CEST)
Received: from BN8PR04CA0012.namprd04.prod.outlook.com (2603:10b6:408:70::25)
 by SJ1PR12MB6290.namprd12.prod.outlook.com (2603:10b6:a03:457::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.22; Thu, 10 Apr
 2025 18:20:44 +0000
Received: from BN1PEPF00004680.namprd03.prod.outlook.com
 (2603:10b6:408:70:cafe::c8) by BN8PR04CA0012.outlook.office365.com
 (2603:10b6:408:70::25) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8606.37 via Frontend Transport; Thu,
 10 Apr 2025 18:20:44 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BN1PEPF00004680.mail.protection.outlook.com (10.167.243.85) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8632.13 via Frontend Transport; Thu, 10 Apr 2025 18:20:44 +0000
Received: from localhost (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; Thu, 10 Apr
 2025 13:20:42 -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: 8689dbcf-1638-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=rU6LUF+C2lsmVqkPq4qpsypf7U3wAy/su81TNN4G8n5LYcHvvo/nF2TeeHP+txequRGEA+fGyaePdlcg+YMFkiyV2Buok1PZqOBGlHBuMMW+VvGsl+qtj76hOFA7YcBuwBMRmR7zWItYUnp83gcykf8wj+LhUIHJ8jS4BjX2H82p3r7x712Q177q1T50TDMdTa2WOVYEiMBNooXdEN2AL1lNvfiitc3aib1pBzn9di105IB+2MuOEpSLLUexecaLzsd9kRKDQbS+ayvIC94R31f57UMUpEEeyGMYSe1e6XRiRyO10G04udPzW3/m7jKM6ds7kEtyOqfAUL/wAX7vAQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=1X/9WO/LqGbkhwb578nUSjhvJMvuzwE21gFJuEcUmqQ=;
 b=nhGa6TtiZLR5VmWnDSiMfD0oFDwVt8uUmUmuMaEf9FNnynIEycIFWRUVtgtkrlSrXfJ58Sc2GTHUc6+71luaaaE6wyy7Kcu1J2xpG75LgenNz24nVxWiygSCsnjBulwlWDcd4CxPCHUGf5+/f9tQdmCUjKXeOnA3077BaL4JsZV8NhLd7uDLCpYo1tvJLWnTtDORfUDEkwxVz8uneGkPzhihQfyl9RWO0hFHiwMG8hy2ssDSJobcFbAdN7VVH1wj3eLs318eaOwfRiMziFbpLzJCRhfbs8WLqmKnXEl32rzC4AZP257CPdbkqI0GEh6dj6zbmR5EMsnWrogDwhKAeQ==
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=1X/9WO/LqGbkhwb578nUSjhvJMvuzwE21gFJuEcUmqQ=;
 b=DTYH4mK/7/9ZdVsU4tQqQ+MiJnEUSslwKm1Ma7J36suLTuJ2BLTDU4sDpIGyNGk8geieia5LLJ5gDxoUhecrDiFn9yCD2YuY4Fn3nuyTFbki2iu4g+T0mH0C3lzVw/mQUEG9QWOsnrK4Z8ZQ15whOARl5YrAwOHAYEZUEV3QTFE=
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
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Thu, 10 Apr 2025 19:20:41 +0100
Message-ID: <D9360R5QOOU6.2Z9QQZYYJ5A6T@amd.com>
From: Alejandro Vallejo <agarciav@amd.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>, Jason Andryuk
	<jason.andryuk@amd.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>, Michal Orzel <michal.orzel@amd.com>,
	=?utf-8?q?Marek_Marczykowski-G=C3=B3recki?=
	<marmarek@invisiblethingslab.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>, Xen-devel
	<xen-devel-bounces@lists.xenproject.org>
Subject: Re: [PATCH TEST-ARTEFACTS 0/8] Cleanup and Linux ARM64 support
X-Mailer: aerc 0.20.1
References: <20250409163702.2037301-1-andrew.cooper3@citrix.com>
 <828cabc9-512f-4c2f-a7d7-b9c8963c1300@citrix.com>
 <f7b820af-b548-4dc3-9af7-9d2214a232b2@amd.com>
 <5da1f4ec-43ca-4279-88dd-b51d57b306e4@citrix.com>
In-Reply-To: <5da1f4ec-43ca-4279-88dd-b51d57b306e4@citrix.com>
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: BN1PEPF00004680:EE_|SJ1PR12MB6290:EE_
X-MS-Office365-Filtering-Correlation-Id: 0f960b9e-d2ad-427d-5db2-08dd785c6897
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?UUNxN0pYcVZhTTdieDVvMkorU0ZZRGpNU3QyRy9oa1crQXpyTnVZLzByUEJX?=
 =?utf-8?B?N1dxUnRjVytJVThhM1RINUF1T0xoVWh3RVZBUkVpSXM0RnA3aG92VW5lcE9X?=
 =?utf-8?B?eU5TZ0V5TmhYNEw1R2N0d1lFZllqYXhTeURWSlhMMjM1QmpKUHk3dU9XNFRu?=
 =?utf-8?B?MHgvd1kyVjNhbU43ZERFdDM0cEd1bWVITWRGd0sxYkJqckhwcSs4M1pWYVJF?=
 =?utf-8?B?L05uR2lxekYwTW5DK0RmYjRPSm95eTRBcU82YmVneGpnNVh2ZHV2Rzk5UEhS?=
 =?utf-8?B?Szgzemx2Q21pZEs2VUc4eGp3WDdkWlIwd0htMU1ZcEZiYzBRRk9jR0UxUm9l?=
 =?utf-8?B?VlhKUzVwYm1Cb3gyZ0tSOWJmWkZvNUJETjM3RmJVMVVBdmZ4S1RFVnJuM3dW?=
 =?utf-8?B?QUpJK3NDQm1lYThMNUZvV2xaUE5ITG5HU1hrMEkwZ09vM0dHaUxVYXpma3BO?=
 =?utf-8?B?QndGVXlVLy96M1FtWWlpWjVlSGxTWkRVeFd1a2VvbEVmQ3ZueGRUOVFCai9X?=
 =?utf-8?B?cThvMTczRkZYZ09SdUY0Y1hTM2s0b3BveFlsOGVDKy9CVzB6TTVhZENCNFlx?=
 =?utf-8?B?Z1YxbC9VRm5tSXVjUHFaMW1OL0FLRFh0dnRvZVVXOXROV3ZsNXY5Qk8vOUlP?=
 =?utf-8?B?eEpSTkcrLzlPUklCd0t6U2FqOG1xZkxwZnVmWUJVSFFJRHJRQitma3NXMFB2?=
 =?utf-8?B?Z3dPTVJYQ2R3UVZKbTl0U1FxVTI2aEV4WkRaaW1lVWlERi9kUmNuNS9rTjR5?=
 =?utf-8?B?eTZuZUIzS3V2aFhJelF3aDBnQStzMjdpaFJRVnA5RWxKVWFLQmM2YlBCNW1v?=
 =?utf-8?B?OEQ3Q3dDbEoxWUs5UnBVcjhHa3hVMHFuVU45Q3E2bTVROW5UaGhscWtNdjBM?=
 =?utf-8?B?ZmhhenFrdG9xaHNkYzRXaUV5c2FxR2x2MUpGVTFjWTVoaW5zUzFZWU4rbzB4?=
 =?utf-8?B?bHc0a284UXcwZXZlVERySGJhMGs1ZjFXc0dMdXVVb3JFOWJmUTk0QmNGaE5C?=
 =?utf-8?B?TmZERzZhWHhDSlZiNkNpdm1NbjZnZ0s5WTA4SDNrNkdHR3JGSGlTd0oxU3NY?=
 =?utf-8?B?d0paRHVjT29NL0tQOHg5MTVkZFdwa2YwYXVLSGhNdFBhUmwveXBhQWs5c05i?=
 =?utf-8?B?eVoxVTY5YzI4TWN4ZlNwM2RWWHF1YmVaalR6c0M1aXlnMmlLemtFTXpzeFJW?=
 =?utf-8?B?My9aWlBNZEZkZVhjYVdJcG5Jd05Wa2pvdUdkNHlNQjZ2dUs0RlQ5YVB3cy9W?=
 =?utf-8?B?cUc2SEp3WVZ3SERPSVdBMGc2SitKcTJxanpXMWkwbzI3MzlVY0lrb3ZGa3dn?=
 =?utf-8?B?N01uV0NncVVYMWthVkFaYmVwMFNmZFNKRGFHNFNiaEdHL2dIK0ZWUG1kTTFP?=
 =?utf-8?B?Z25uVEZkRDIvVDZiTUJYZ25CeWlsN0FVQVIrTjJ6bWZIdmxzdHV1cDNybEVB?=
 =?utf-8?B?NFEyeklqL3ZkbVpUNEk4Q29hTElYQ3loa1B0aDRjbGloeWI2TmJab3NYY2RN?=
 =?utf-8?B?QWR1NnhTUmdISG1xTW5EV3p4ZnQ0MXRIak1vNFU4V2EvR0FFakQvcFNlQUJL?=
 =?utf-8?B?YmRlY2thRTFyeGJKL3VpbEdNZm1qL2pOZWpOamVzcTVWL25OaGlhZ3k2a251?=
 =?utf-8?B?MUlVK21abFF1bnFMb0ZNS2xDdGNDSHdoM3NXREdGWWZBTXVXVlBDN3kvcktG?=
 =?utf-8?B?eVhpMFYyNmY5VnpnNlNaL1Q1TU1ZYzZNaXB1cU9kSS8zVHVhMlZzcDF1UEtD?=
 =?utf-8?B?UGIyVExzMWVhVHd4SmVqa245dUlzR0t6cEZ4cWRUNGJwTHZOMlR5S3k0SVM1?=
 =?utf-8?B?d0dJMGpKb2swSENQbXVBVXptdVlHcngwM2o3TzZ4cy9ITFFpVHBDank2R1hz?=
 =?utf-8?B?UmFqNVJUMTJoamJBcEphWWVCRW9QVDlsZm50UWRxMlppS1JMVW1WM1dpQTFs?=
 =?utf-8?B?NHFvQS9CMlBwSnl4b2xxODVJdWMyRDRpNWM0eU9JOWpVOEtPWk00Wkhjcm4w?=
 =?utf-8?Q?P0HTar7GjzLiQBKYdWHzpGFLhYe4QQ=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: 10 Apr 2025 18:20:44.3084
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 0f960b9e-d2ad-427d-5db2-08dd785c6897
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:
	BN1PEPF00004680.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ1PR12MB6290

On Thu Apr 10, 2025 at 10:17 AM BST, Andrew Cooper wrote:
> On 10/04/2025 1:09 am, Jason Andryuk wrote:
>> On 2025-04-09 13:01, Andrew Cooper wrote:
>>> On 09/04/2025 5:36 pm, Andrew Cooper wrote:
>>>> Various bits of cleanup, and support for arm64 Linux builds.
>>>>
>>>> Run using the new Linux 6.6.86 on (most) x86, and ARM64:
>>>> =C2=A0=C2=A0
>>>> https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/176066=
7411
>>>
>>> Lovely, Linux 6.6.86 is broken for x86 PVH.=C2=A0 It triple faults very
>>> early on.
>>>
>>> Sample log:
>>> https://gitlab.com/xen-project/hardware/xen-staging/-/jobs/9673797450
>>>
>>> I guess we'll have to stay on 6.6.56 for now.=C2=A0 (Only affects the f=
inal
>>> patch.)
>>
>> This is an AMD system:
>>
>> (XEN) [=C2=A0=C2=A0=C2=A0 2.577549] d0v0 Triple fault - invoking HVM shu=
tdown action 1
>> (XEN) [=C2=A0=C2=A0=C2=A0 2.577557] RIP:=C2=A0=C2=A0=C2=A0 0008:[<000000=
0001f851d4>]
>>
>> The instruction:
>> ffffffff81f851d4:=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 0f 01 c1=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0 vmcall
>>
>> vmcall is the Intel instruction, and vmmcall is the AMD one, so CPU
>> detection is malfunctioning.
>>
>> (Early PVH is running identity mapped, so it's offset from
>> ffffffff80000000)
>>
>> There are no debug symbols in the vmlinux I extracted from the bzImage
>> from gitlab, but I can repro locally with on 6.6.86.=C2=A0 It's unclear =
to
>> me why it's failing.
>>
>> Trying:
>> diff --git i/arch/x86/xen/enlighten.c w/arch/x86/xen/enlighten.c
>> index 0219f1c90202..fb4ad7fe3e34 100644
>> --- i/arch/x86/xen/enlighten.c
>> +++ w/arch/x86/xen/enlighten.c
>> @@ -123,11 +123,10 @@ noinstr void *__xen_hypercall_setfunc(void)
>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 if (!boot_cpu_has(X86_FEATURE=
_CPUID))
>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0 xen_get_vendor();
>>
>> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 if ((boot_cpu_data.x86_vendor =3D=
=3D X86_VENDOR_AMD ||
>> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 boot=
_cpu_data.x86_vendor =3D=3D X86_VENDOR_HYGON))
>> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 func =3D xen_hypercall_amd;
>> -=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 if (boot_cpu_data.x86_vendor =3D=
=3D X86_VENDOR_INTEL )
>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0 func =3D xen_hypercall_intel;
>> +=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=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 func =3D xen_hypercall_amd;
>>
>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 static_call_update_early(xen_=
hypercall, func);
>>
>> But it still calls xen_hypercall_intel().=C2=A0 So maybe x86_vendor isn'=
t
>> getting set and ends up as 0 (X86_VENDOR_INTEL)?
>>
>> That's as far as I got here.
>>
>> Different but related, on mainline master, I also get a fail in
>> vmcall. There, I see in the disassembly that
>> __xen_hypercall_setfunc()'s calls to xen_get_vendor() is gone.=C2=A0
>> xen_get_vendor() seems to have been DCE-ed.=C2=A0 There is some new code
>> that hardcodes features - "x86/cpufeatures: Add {REQUIRED,DISABLED}
>> feature configs" - which may be responsible.
>
> 6.6.74 is broken too.=C2=A0 (That's the revision that the ARM tests want)=
.=C2=A0
> So it broke somewhere between .56 and .74 which narrows the bisect a litt=
le.
>
> https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/176132377=
4
>
> In Gitlab, both AMD and Intel are failing in roughly the same way.
>
> ~Andrew

I've bisected the tags and it was was introduced somewhere between the
v6.6.66 and the v6.6.67 tags.

The hypercall page was removed very shortly before v6.6.67 was tagged,
so I have a nagging suspicion...

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Thu Apr 10 18:28:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 18:28:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.946176.1344151 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2wdQ-0001FG-M8; Thu, 10 Apr 2025 18:28:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 946176.1344151; Thu, 10 Apr 2025 18: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 1u2wdQ-0001F8-JH; Thu, 10 Apr 2025 18:28:20 +0000
Received: by outflank-mailman (input) for mailman id 946176;
 Thu, 10 Apr 2025 18:28: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=ged3=W4=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u2wdP-0001Ey-PS
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 18:28:19 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on2062f.outbound.protection.outlook.com
 [2a01:111:f403:2418::62f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 91b5dcd9-1639-11f0-9ffb-bf95429c2676;
 Thu, 10 Apr 2025 20:28:16 +0200 (CEST)
Received: from SN7PR04CA0116.namprd04.prod.outlook.com (2603:10b6:806:122::31)
 by DS0PR12MB7972.namprd12.prod.outlook.com (2603:10b6:8:14f::6) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.33; Thu, 10 Apr
 2025 18:28:10 +0000
Received: from SA2PEPF00003AE6.namprd02.prod.outlook.com
 (2603:10b6:806:122:cafe::71) by SN7PR04CA0116.outlook.office365.com
 (2603:10b6:806:122::31) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8606.34 via Frontend Transport; Thu,
 10 Apr 2025 18:28:10 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SA2PEPF00003AE6.mail.protection.outlook.com (10.167.248.6) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8632.13 via Frontend Transport; Thu, 10 Apr 2025 18:28:09 +0000
Received: from localhost (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; Thu, 10 Apr
 2025 13:28:08 -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: 91b5dcd9-1639-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=F5ZZKz8Filimjfvy6E37izUglHMv1fPjBkoIBmtyOxdHcdtakQ5Vgl+mb47M/oRTcsl5XMo0vud3ILlxUQlr/RWE/VH2VKczA6C9pqIvoWv+2JhQSceAwFCEfon0dckRMhDn1faqpMChvPA5obf0JMwA9DDe6bniPSoDHddgkGYbRycEFqsI6nWQVgFVC6dW4ZOg6wiVydPW6vnTPt+teO+k0VUWubTXwC1VHhLbmxT/hGXI6btINZNi2LCR257cHDG56rciH2269AVUs7ETS+yDlrgs1OeLH/8n/GnCsyX4v5fCx66trT3gIrDX+lWUcJBd+sThuhvF9Z/9SIhm4Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=JJlZBkoz+InmaXmYN/Ffzi81Ixt5jr7Ou6i6yo6gCs8=;
 b=u3gVRsaUxZkhbB7mkouTlkGTLJh6P4Q/djfWSrPtgqEIcsmgxiujBsVZXNV7T0G7oi7CX0urpRtfI1jFwPifh8cCPJCbPeC+yl6Rg2lCSpS14VSn5zjEvVtBXRox5p71rwkLimtrBBEVEUwICmh0lTRbr9E3rmD3hA5UitBUEY3OJDOsGZvkQ7aCuDl/m0eRuNzege/FdPBDug6kjA0pSpcLh/4cXsl6zhDI1Uwyml9dkUuNa7r/f6TawCtou7syX9G/42xkvhR4znU3jdLVC9DNauGNeDk+y+3g7tBTMTRWDQBaHJJQTkdE+D712BGTrAwFVTZJk5oCdXDg3QU3Vw==
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=JJlZBkoz+InmaXmYN/Ffzi81Ixt5jr7Ou6i6yo6gCs8=;
 b=tTgD3gkUmVjOXKjvelrmtUA5SRI0brhWlF/CODRZA0SXoxLbyuMzTG8Xb0WgDhOOT1CpD6ZqopHhD4jzUjpH65ifvmOQ/8WzGpt/DdFtOG439vUWiB+9If4gcfyXHkUND80zdof8ZISbGFPDfs/osSMKjCsy/zqMKb2MgApBqNc=
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
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Thu, 10 Apr 2025 19:28:06 +0100
Message-ID: <D9366FPHFS9F.2OP8KH7C8OJTF@amd.com>
CC: =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, "Stefano
 Stabellini" <sstabellini@kernel.org>, Michal Orzel <michal.orzel@amd.com>,
	=?utf-8?q?Marek_Marczykowski-G=C3=B3recki?=
	<marmarek@invisiblethingslab.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>, Xen-devel
	<xen-devel-bounces@lists.xenproject.org>
Subject: Re: [PATCH TEST-ARTEFACTS 0/8] Cleanup and Linux ARM64 support
From: Alejandro Vallejo <agarciav@amd.com>
To: Alejandro Vallejo <agarciav@amd.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Jason Andryuk <jason.andryuk@amd.com>, Xen-devel
	<xen-devel@lists.xenproject.org>
X-Mailer: aerc 0.20.1
References: <20250409163702.2037301-1-andrew.cooper3@citrix.com>
 <828cabc9-512f-4c2f-a7d7-b9c8963c1300@citrix.com>
 <f7b820af-b548-4dc3-9af7-9d2214a232b2@amd.com>
 <5da1f4ec-43ca-4279-88dd-b51d57b306e4@citrix.com>
 <D9360R5QOOU6.2Z9QQZYYJ5A6T@amd.com>
In-Reply-To: <D9360R5QOOU6.2Z9QQZYYJ5A6T@amd.com>
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: SA2PEPF00003AE6:EE_|DS0PR12MB7972:EE_
X-MS-Office365-Filtering-Correlation-Id: 3ff83f6e-b490-4688-8945-08dd785d7228
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?RDhuRnlLMGJVZGdjcEpod2NmTmUwRjA4Z0lUbkx6bllMYjNxeVhFMUhTbFNj?=
 =?utf-8?B?bWw3Sk96TDRTaFNrQmVJcFZ0NjRPdmlIR2JuU0xyTFdkTEk1WnJHOUFsV29p?=
 =?utf-8?B?ZjdPdlNPVXFmVW5jWFZCVG8rYjZkVDZnZ1BPRWVYYzQ3bmhBbnhhUGNkZElZ?=
 =?utf-8?B?ZXN2TDRnbjBRWXdaZnljTDRyWUJFa2RtZUcrY3NvQnVGMGNITk51eEV4RWNN?=
 =?utf-8?B?aldwS0xxSVZyNUNtUDYxemlHenNpZzkyQVVYWU14b2RPSTNMMk82WnNoL2dr?=
 =?utf-8?B?VjJzWGNjYXQ0dVpPUVdPWFBrTWJhN285Tkx3RDdzbkVHdFduSWNRbGVmR1dB?=
 =?utf-8?B?WERwVzgrdmxVV3JTSnF0aWlDYStManhGb3d2Y205Nmc2MEtINjE5SkozNGxi?=
 =?utf-8?B?U0F3YXRGZDF6MWtROC9EMisweEw3OGNEekFRMWFQbnJCNzgrRTZGc1FGa21X?=
 =?utf-8?B?dVVMWGlta09tcmpwcGkrV3NVamsxeWIvZUFtV2kvbWp0RWV4Rm5zYWlrVCtJ?=
 =?utf-8?B?MG53Y1NOeWM1MnZBMGdGWnJ0K2hwMmpyd0M0ZnRWWm5GU002QndSMC9MQWFz?=
 =?utf-8?B?KytOUy9UTVdMUGs3d253WCtrY0E0Nk5teUM3VlNTQ01hQ3hERFlhSUpKcnFI?=
 =?utf-8?B?OTlJdmd5LzhKR2hxQlJwMlFrNDcwdHh0Tm95M0VqcGpmbGNPcU5McVlFZ0NK?=
 =?utf-8?B?TUpnMFZPdDhkMEE0WWI2TE5xSC9jbXV4ZmxkTVdMUU9jaGtpczFOS09GUHZ0?=
 =?utf-8?B?MkYzdTV5YnpGMVU4QWkvRHVlUHFXOWNHQWJrQTdqNVNmalUzSGFCaHpTaXhr?=
 =?utf-8?B?Vy9yaUNQU3BxUTVPaGoyZkw0YnBoYkFURVRZQXB3TUNkZVFwclJMdDdWSnpK?=
 =?utf-8?B?aGt4bittQmZDYVNaYU9uN0txblZhY25kVVAxalJkTkx2QjdEbGZXdnpENHdu?=
 =?utf-8?B?dThGcU83cFV3YkQ3NktDVmQrT3RyNjNlUkViVHJab2JoOUkyYUVKUUdDZDB6?=
 =?utf-8?B?ZWpuZ0g4dnhVNk5sZlNRSzhxOUFKN3QyaCtTd0E2bC92Rm5PYVlreUZGRzV1?=
 =?utf-8?B?L0RjZEVhUm1kR084M2hNMy9wWW84YnBnNVRIa0VjT1dwaTRtOWhpSXFGS2lq?=
 =?utf-8?B?V2d1d2EyaE9pK1piYngwRUFlbmc0bHJnRUFCV3RTTnhYWTNOSXZwM2F4dy9O?=
 =?utf-8?B?azNvWk5ucm1tamw0ZEZLWndsd3RSZ050LzNaNE5ZazFFZmk3L0hQRmdiaDB2?=
 =?utf-8?B?bzdkRnYzL00zdFZPbHNxNmNoYWxkQWFneU05aDFNNjFmNnhlSFNWS203cHlL?=
 =?utf-8?B?MGNLS1BmNWVLMmZvaXVZQ0dHWkd5S0UzQXEwdXF1UzFHTjRwLzJPcFd0ekFV?=
 =?utf-8?B?cUMvMGJTbUVkQmtsNFVOWmVTOFNIWTVOcU5TQXN4LzluNzU3Sy9zUmoxYWcv?=
 =?utf-8?B?QWFqYjRSOVMyU3NSSXFGcm11dkxrOTBhUUYrZ3JCMXlONWRQNWVyNVluQXNN?=
 =?utf-8?B?SWZPbTBTNXBjaXVMMHhJV3pab3l6NGgyZU1hNm9CMjlWQVpnVU5yZ1JDWGxP?=
 =?utf-8?B?ckYyeE1wQi83V1JNWnhNMTlnTWh3ZlpwTmhIUWhGSnZvM21pVGY5V2duYmNV?=
 =?utf-8?B?OVVzUEMwSUV3aHBkb2NjRS9iblpRZ1FSZ3lVaWNhWnNWQzdmL2ZOQ2Uwa3BF?=
 =?utf-8?B?eHVYOWdzRXN1NHhibEpTWmI1M01iMVBrVWh1S0Z1YjVVaEpVSWxEUTB5ZE5s?=
 =?utf-8?B?RE0yV0pOSGhUSXoxUHhFbE5IOGtjR1BNeDBOL0tlNDZ3M1FwT3kxNzdmWmRO?=
 =?utf-8?B?ekVDUk1DSXVrZHYzNFl2SXZZTk1XczAzblVXa0NOdHorZ0xHc1FzSDFEVkZU?=
 =?utf-8?B?d2sxZXhDejhHNkRTRXlJQU51cWpVc2Foc05mME83Si8vaDc3UWJzVk5LSHJU?=
 =?utf-8?Q?dE8JmnzilLP8hzQNCOMvGsTVweDqZ9AY?=
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: 10 Apr 2025 18:28:09.8248
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 3ff83f6e-b490-4688-8945-08dd785d7228
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:
	SA2PEPF00003AE6.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB7972

On Thu Apr 10, 2025 at 7:20 PM BST, Alejandro Vallejo wrote:
> On Thu Apr 10, 2025 at 10:17 AM BST, Andrew Cooper wrote:
>> On 10/04/2025 1:09 am, Jason Andryuk wrote:
>>> On 2025-04-09 13:01, Andrew Cooper wrote:
>>>> On 09/04/2025 5:36 pm, Andrew Cooper wrote:
>>>>> Various bits of cleanup, and support for arm64 Linux builds.
>>>>>
>>>>> Run using the new Linux 6.6.86 on (most) x86, and ARM64:
>>>>> =C2=A0=C2=A0
>>>>> https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/17606=
67411
>>>>
>>>> Lovely, Linux 6.6.86 is broken for x86 PVH.=C2=A0 It triple faults ver=
y
>>>> early on.
>>>>
>>>> Sample log:
>>>> https://gitlab.com/xen-project/hardware/xen-staging/-/jobs/9673797450
>>>>
>>>> I guess we'll have to stay on 6.6.56 for now.=C2=A0 (Only affects the =
final
>>>> patch.)
>>>
>>> This is an AMD system:
>>>
>>> (XEN) [=C2=A0=C2=A0=C2=A0 2.577549] d0v0 Triple fault - invoking HVM sh=
utdown action 1
>>> (XEN) [=C2=A0=C2=A0=C2=A0 2.577557] RIP:=C2=A0=C2=A0=C2=A0 0008:[<00000=
00001f851d4>]
>>>
>>> The instruction:
>>> ffffffff81f851d4:=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 0f 01 c1=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0 vmcall
>>>
>>> vmcall is the Intel instruction, and vmmcall is the AMD one, so CPU
>>> detection is malfunctioning.
>>>
>>> (Early PVH is running identity mapped, so it's offset from
>>> ffffffff80000000)
>>>
>>> There are no debug symbols in the vmlinux I extracted from the bzImage
>>> from gitlab, but I can repro locally with on 6.6.86.=C2=A0 It's unclear=
 to
>>> me why it's failing.
>>>
>>> Trying:
>>> diff --git i/arch/x86/xen/enlighten.c w/arch/x86/xen/enlighten.c
>>> index 0219f1c90202..fb4ad7fe3e34 100644
>>> --- i/arch/x86/xen/enlighten.c
>>> +++ w/arch/x86/xen/enlighten.c
>>> @@ -123,11 +123,10 @@ noinstr void *__xen_hypercall_setfunc(void)
>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 if (!boot_cpu_has(X86_FEATUR=
E_CPUID))
>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0 xen_get_vendor();
>>>
>>> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 if ((boot_cpu_data.x86_vendor =3D=
=3D X86_VENDOR_AMD ||
>>> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 boo=
t_cpu_data.x86_vendor =3D=3D X86_VENDOR_HYGON))
>>> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 func =3D xen_hypercall_amd;
>>> -=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 if (boot_cpu_data.x86_vendor =3D=
=3D X86_VENDOR_INTEL )
>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0 func =3D xen_hypercall_intel;
>>> +=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=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 func =3D xen_hypercall_amd;
>>>
>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 static_call_update_early(xen=
_hypercall, func);
>>>
>>> But it still calls xen_hypercall_intel().=C2=A0 So maybe x86_vendor isn=
't
>>> getting set and ends up as 0 (X86_VENDOR_INTEL)?
>>>
>>> That's as far as I got here.
>>>
>>> Different but related, on mainline master, I also get a fail in
>>> vmcall. There, I see in the disassembly that
>>> __xen_hypercall_setfunc()'s calls to xen_get_vendor() is gone.=C2=A0
>>> xen_get_vendor() seems to have been DCE-ed.=C2=A0 There is some new cod=
e
>>> that hardcodes features - "x86/cpufeatures: Add {REQUIRED,DISABLED}
>>> feature configs" - which may be responsible.
>>
>> 6.6.74 is broken too.=C2=A0 (That's the revision that the ARM tests want=
).=C2=A0
>> So it broke somewhere between .56 and .74 which narrows the bisect a lit=
tle.
>>
>> https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/17613237=
74
>>
>> In Gitlab, both AMD and Intel are failing in roughly the same way.
>>
>> ~Andrew
>
> I've bisected the tags and it was was introduced somewhere between the
> v6.6.66 and the v6.6.67 tags.
>
> The hypercall page was removed very shortly before v6.6.67 was tagged,
> so I have a nagging suspicion...
>
> Cheers,
> Alejandro

The cutoff point is bcf0e2fda80c6("x86/xen: remove hypercall page").

Together with Jason's observation it would seem that Linux doesn't guess
the correct instruction (or not early enough) when running as PVH dom0.
On PV it's just "syscall", but on PVH it's a tad more complicated.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Thu Apr 10 18:59:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 18:59:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.946197.1344174 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2x7r-0001K1-2H; Thu, 10 Apr 2025 18:59:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 946197.1344174; Thu, 10 Apr 2025 18: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 1u2x7q-0001Ju-Vu; Thu, 10 Apr 2025 18:59:46 +0000
Received: by outflank-mailman (input) for mailman id 946197;
 Thu, 10 Apr 2025 18:59: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=C125=W4=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u2x7p-0001Jo-T2
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 18:59:45 +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 f726a27d-163d-11f0-9eac-5ba50f476ded;
 Thu, 10 Apr 2025 20:59:44 +0200 (CEST)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-43cf257158fso9484755e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 10 Apr 2025 11:59:44 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43f204c500bsm66883355e9.0.2025.04.10.11.59.41
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 10 Apr 2025 11:59:42 -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: f726a27d-163d-11f0-9eac-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744311584; x=1744916384; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=wQFn/bZ7We0+gOiwz9xFYjVKkQ7zgXXKZZVwZKoJ/v8=;
        b=gybLDCdHNw1W+vAXJh9/wlEGdRvAnOISxVqDn1Y6/ESQKk46ZEaSJzwtdIZkY71/3Q
         5R1TynCmhJs3UrM9YAQPmUlZkDNPCsxUXC2ffFy2TFba321/fh1BiZ7FRsw8X2yC1iXi
         TERdAZG7iL4gNHn5EZvVEgOV6pQrkRNK89qVM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744311584; x=1744916384;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=wQFn/bZ7We0+gOiwz9xFYjVKkQ7zgXXKZZVwZKoJ/v8=;
        b=AygVQMRBHCZuuDTI3EA/1IG1uPtuf+sa6qn1dS7wZij00C/xjvWKUxsk4Squ82vKTK
         qJkeraxW42jaNHiF2tdsT7jym+iUiNEJK/m97TDvXKdnWa9gMPgPLeB7iU41h5ptTwU2
         8qgSc8nS3XBKU3U7/GlVD/C54J9uLhLrGIpDtvyhWJG4Q6x86olzt+G/0DRNMRfb7ps2
         Y5z+fQUEcJ2JQefks0r2NEhNXrPHovL28UMuQCXn8nxnVt99rys6oEE+QWRHLPO970H/
         qbKbjm+2fzKXBTe0b56hhkXetvCbU70TEpvgNlKCI/j1qhnad6V9GhJeNiH3n8AliVZR
         Nx9g==
X-Forwarded-Encrypted: i=1; AJvYcCXJWlh4gJ9pndxzzfhfTzCkCdBR2Izna490NxLGkSCCW7J5PZTuFaKR+zFI2k5DY4bQy7EBuf9pZVI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YycarOcsE78g3891dOUujfh4CyqGtSf0amVSguH45XsMMYPCHeM
	LdnLKe0VWS2npN/e6v4K+IO92eG26regvQ4RPndcC5LuIzDk2s0MYusFk/wPi44=
X-Gm-Gg: ASbGnct4HYXziEl62qtNX40Fg8RB1nsHBnqyDsrZS1pCNZvzrZ7/l7UdtTJSPsrHG4Q
	3Ns+8DfY4aCd8+bRsmaIME7xprQuXEgvhM3UARNZFQLakWvCWLyQ5MzPijRjSvY63Ht8Rkg3e5r
	wDv+DWYHCcydAj3lLh2BOofwQLVZ5UlB7WwOzCw9YCxDo0QBz2NslJct6GV3hp4jDBnOL58Dy34
	/Wgqma6HPo4mKxyMgQvq9HofENn0xirvJDMIBLITuE2+iXTrC215Sk1kL9SNDO1upCi0GLvwvn/
	fgoWTvQ5iu+4x9JGXJh45RVY029MSQqhmQzQ8Q8YAtIIMZFIaBKH68XFhAoULgVnDrGZrif0D5U
	iKE4igDfFrEGyzC6E
X-Google-Smtp-Source: AGHT+IF6rF+zWuzwBR2I8XYmQLh+v6mUPC5zIf9oaO/D9J2QvBR+0yg6H5hD8BQlGbiFDrO4aU19BQ==
X-Received: by 2002:a5d:5f4e:0:b0:39c:12ce:67e with SMTP id ffacd0b85a97d-39d8f4e2a1dmr3158916f8f.41.1744311583862;
        Thu, 10 Apr 2025 11:59:43 -0700 (PDT)
Message-ID: <ad921a74-8d18-4462-96e9-9ac5930281ea@citrix.com>
Date: Thu, 10 Apr 2025 19:59:41 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH TEST-ARTEFACTS] Fix adduser --shell path
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 xen-devel@lists.xenproject.org, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Michal Orzel <michal.orzel@amd.com>
References: <20250410155531.29570-1-anthony.perard@vates.tech>
 <6046d30b-b5ca-4867-9f24-831b469d1ee3@citrix.com> <Z_f0BO6oncTMKtrQ@l14>
 <718ee844-64b6-4146-a0fd-0ff7042ce737@citrix.com> <Z_f9Zjx0jSxVR6jC@mail-itl>
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: <Z_f9Zjx0jSxVR6jC@mail-itl>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 10/04/2025 6:18 pm, Marek Marczykowski-Górecki wrote:
> On Thu, Apr 10, 2025 at 05:57:23PM +0100, Andrew Cooper wrote:
>> On 10/04/2025 5:38 pm, Anthony PERARD wrote:
>>> And by the way, you might want to add `gawk` as
>>> well to replace busybox's awk, to make the linux build a bit more happy,
>>> even if it doesn't seems to be an issue right now.
>> That awk complaint appears to go away with find/diffutils in the
>> container.  I've not figured out exactly why yet.
> See my earlier email, I've seen it still there at least in one job.
>

I've found it again.

+ make modules_prepare
  SYNC    include/config/auto.conf
  GEN     arch/x86/include/generated/asm/orc_hash.h
awk: bad regex '^struct orc_entry {$': Invalid contents of {}
  SYSHDR  arch/x86/include/generated/uapi/asm/unistd_32.h

It's specific to modules_prepare, so only shows up when building argo.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Apr 10 19:30:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 19:30:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.946221.1344184 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2xbb-00026d-GG; Thu, 10 Apr 2025 19:30:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 946221.1344184; Thu, 10 Apr 2025 19: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 1u2xbb-00026W-CB; Thu, 10 Apr 2025 19:30:31 +0000
Received: by outflank-mailman (input) for mailman id 946221;
 Thu, 10 Apr 2025 19: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=Z2Tv=W4=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1u2xbZ-00026Q-Kw
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 19:30:29 +0000
Received: from NAM12-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam12on20630.outbound.protection.outlook.com
 [2a01:111:f403:2417::630])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 41087490-1642-11f0-9eac-5ba50f476ded;
 Thu, 10 Apr 2025 21:30:27 +0200 (CEST)
Received: from CH0PR04CA0116.namprd04.prod.outlook.com (2603:10b6:610:75::31)
 by IA1PR12MB8240.namprd12.prod.outlook.com (2603:10b6:208:3f2::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.24; Thu, 10 Apr
 2025 19:30:22 +0000
Received: from CH2PEPF0000013F.namprd02.prod.outlook.com
 (2603:10b6:610:75:cafe::ca) by CH0PR04CA0116.outlook.office365.com
 (2603:10b6:610:75::31) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.24 via Frontend Transport; Thu,
 10 Apr 2025 19:30:22 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 CH2PEPF0000013F.mail.protection.outlook.com (10.167.244.71) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8632.13 via Frontend Transport; Thu, 10 Apr 2025 19:30:21 +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, 10 Apr
 2025 14:30:21 -0500
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, 10 Apr
 2025 14:30:21 -0500
Received: from amd-BIRMANPLUS.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; Thu, 10 Apr 2025 14:30:20 -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: 41087490-1642-11f0-9eac-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=US9aVunn52ngKamsga510U9fMy/pCwnqwZoDzOSq6AKEn4r3u8imkGSHu9oxVJr1slWZfKyiDUWH8Ux9sqQK3UuUDHKuVvEgZCU0dNuVfPWqD68svoHzhm68KNDXqnpdgpAdkaIWSJDbNuZCT0s+vHhQh4WW/3v/f4WjsprITHVFI3azU1+LAPkLeo69Kz4MmlP+jGD58iXNmhFG8VviTcWsFYPCY1Dnx20VJZcaWkM3C6dWPe5tmzrk3JCW0nEWmLvRTfx8jv41r+SASCIiPGJKYMHaOQngPylETpxzplgrwXKYmUcAW+05onaTIbutFTwjecuTQnyBNOHYJeA4iw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Pa4MOdUShz/tEi4WMru8zb9VdFMJu4Ipe3WHYaFMUBw=;
 b=bdJj5Yp+/+K/s+1fPDHGSsV//HC8sJP18j/gCD4EulmL6+jk4sd52dm5UOdG1bEUk9Hlv0612KF+n1p53L5gmSocrCnZu19YIq52ZXT4ojrDgLZoaxCGb+P74t3g9cRvfknZwNz5gx1mVEhGZ1k4OX3+b6W3NFVEVUYhymNLUN0RArriaaeq0aq90biXS5Sx2OAz05lbC93k5BZaDh0Im6UwsKI/Rg992bnGIgMWSw3Ps7wPpXevkofSla+9ExjcvACS3NEmK40uR8HH5Jt3hq4VgJpHvgmL0WE5EPwQCO/qmVjxAfdGV5XA/65+Q9gFVe0f/Ox2teMTxKeUZHr57A==
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=Pa4MOdUShz/tEi4WMru8zb9VdFMJu4Ipe3WHYaFMUBw=;
 b=Q0LiERcriQt0sDARiJyRtfUsbkGs1gYZutyzrv1kX40gpeim9CJkSCjcyHTyniaiHqqOCJy1hxoX2B2EFKh7lIUlbpkOBGl1ZwXEWWSAxM6qkHL0PJGfR27QkgZY3nnejg1D3mjsphEu9y69PiyOHFkf7oQmuFybySt58Ff15pU=
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: Juergen Gross <jgross@suse.com>, Boris Ostrovsky
	<boris.ostrovsky@oracle.com>, Thomas Gleixner <tglx@linutronix.de>, "Ingo
 Molnar" <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>, Dave Hansen
	<dave.hansen@linux.intel.com>, <x86@kernel.org>, "H. Peter Anvin"
	<hpa@zytor.com>, "Xin Li (Intel)" <xin@zytor.com>
CC: Jason Andryuk <jason.andryuk@amd.com>, Ingo Molnar <mingo@kernel.org>,
	<xen-devel@lists.xenproject.org>, <linux-kernel@vger.kernel.org>
Subject: [PATCH] x86/xen: Fix __xen_hypercall_setfunc
Date: Thu, 10 Apr 2025 15:31:05 -0400
Message-ID: <20250410193106.16353-1-jason.andryuk@amd.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH2PEPF0000013F:EE_|IA1PR12MB8240:EE_
X-MS-Office365-Filtering-Correlation-Id: d53e24bd-f177-4a08-783c-08dd786622ac
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|1800799024|82310400026|376014|7416014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?x9t3oKOW/lHGKEDVUMT8cI8tdcP6VTzNpgLI/6ZQDhT4VcO1FvGNIcubFts0?=
 =?us-ascii?Q?oV+68oMYRkl/UI2RVfwR/S936DLfQ9RJeJaRfNZy0dhom8VS3kheDkLnCmbU?=
 =?us-ascii?Q?b+v+IqZuN25iN+cx8wb5suMW4ZapoKKRbuY8UdN9jSbfFVhEaN712JKtTBbA?=
 =?us-ascii?Q?okL465rm4GXUTuYrctXhVmWa8xsnEKWV+/K+cTKJ+1yonMaAGBht0UPg3cOC?=
 =?us-ascii?Q?JnLa1hCnp1ghoUQvU5MR+zNOED8Lj3VaI4/nIS4XertZ51krqKU2P+0R3t7Z?=
 =?us-ascii?Q?3qc3zvsblcIE6StJE3aKh8s+3U5GVT/KowCyu1/O4nUT/YOB/FLl7nocWeYl?=
 =?us-ascii?Q?joCqusS/OI128qUDAWVx8s8sEhgJn/kvKrnJuuYb58DFgyTbMoWK9Pg5kPn/?=
 =?us-ascii?Q?xWB/kyjEbBZVn5Jl7sZidneedsj5e3n3A50YP4rlaVcOzYzMXAMqJfFnK9Sm?=
 =?us-ascii?Q?CR7mGGygA++N3i5aisqmTTvfI1QZftvTkk/Vp5DvZouet1oHgaaGriy4BYIR?=
 =?us-ascii?Q?I7KoPrvwY418+PZAECZE0yWIXYufze6Vv4Vwfmw9NxVbIsuL7m62mHkPOVCz?=
 =?us-ascii?Q?Wkq2pWOyA4IcibhuHCHyb8lu6ru43gsA89qxyHqDfGeEqhrzwkHo8zxh52yS?=
 =?us-ascii?Q?swKHi0DKpyEfGWYCGRlXTLgAgPslTwCllhwxtOmzWJhnLB2XMqtHfnthRc6C?=
 =?us-ascii?Q?U8Vvu1FdRjdmEcUb6PTBC+roT78znlbOQJqCLcNOSA3JCIh7dAdnzbiHqgnm?=
 =?us-ascii?Q?pm0dJXoNXq6lCjnUs9kXAluShBH4GLZkWcOCcd9FO1ZwC1zit6nhY+pP09Af?=
 =?us-ascii?Q?PJmEUSBTlUwn2j6JBrlC4NXH1w0VK//3brusuwb/o1a7Xfkdhhy5wS21iDpc?=
 =?us-ascii?Q?/3P5tmVgvLlc0pjSsRqx0Ngiu+UjLV+zdP2UQq8OGFQm8gBWS5/a2ymFF7Kk?=
 =?us-ascii?Q?FOXE7HAhdvGjfDNjYTjdB/FU8I/GEh7XS5g3IlZFUkkyGUUatJMXZF3u3TCu?=
 =?us-ascii?Q?0w5CLKKJgl35xD3AImAdfz/VI4rJZykKjgTfgkVN3ypBGQVutsn4/Ec3Ropu?=
 =?us-ascii?Q?g171PGsyd8OzHUpdH8h5MEFg927SYC7AYpeG01yf5oE1eAnmIPm28O9AS5IC?=
 =?us-ascii?Q?/ijheaGZtL5jy9JS9V5OUAYkxntyeTLulAl3QPAVK+E9xB7paCjVvkb/YqU4?=
 =?us-ascii?Q?f3SmOIlmIswYalKCbg9JAA4+z4dfz28Crug1SKtOUbMyLNSOTe69oERf4+iq?=
 =?us-ascii?Q?MOa2kTV/hsSAYJYVujWu1mI9Lq4DGChv0yNLeWwLm2EapZKUnJ534cSvZC37?=
 =?us-ascii?Q?3d0Ni02QckaEalkMPGWwz5B7/irriNMOT+vlFzX158ald42EQsWB/NGuy6ay?=
 =?us-ascii?Q?P6odOYI+bfAVN++FW4IHjGtGc7zyq8ejl9e1xyv+wepFI7Urdm/gYY8maZM7?=
 =?us-ascii?Q?Fxww5ipwVnX5MB5cDjuwQnCdPMIBHISdh0Xuxr3jZ/3GcnM7h4VZxoZXbnN5?=
 =?us-ascii?Q?Scj5FX8SwOGjH3ngbAnFJFg9VCBFPBl6+PJQ?=
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)(7416014)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Apr 2025 19:30:21.8954
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: d53e24bd-f177-4a08-783c-08dd786622ac
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:
	CH2PEPF0000013F.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB8240

Hypercall detection is failing with xen_hypercall_intel() chosen even on
an AMD processor.  Looking at the disassembly, the call to
xen_get_vendor() was removed.

The check for boot_cpu_has(X86_FEATURE_CPUID) was used as a proxy for
the x86_vendor having been set.  When
CONFIG_X86_REQUIRED_FEATURE_CPUID=y (the default value), DCE eliminates
the call to xen_get_vendor().  An uninitialized value 0 means
X86_VENDOR_INTEL, so the Intel function is always returned.

Remove the if and always call xen_get_vendor() to avoid this issue.

Fixes: 3d37d9396eb3 ("x86/cpufeatures: Add {REQUIRED,DISABLED} feature configs")
Suggested-by: Juergen Gross <jgross@suse.com>
Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
---
I think the Fixes is correct in that it default enables requiring the
feature.  There were a lot of other changes to how headers were
generated as well.
---
 arch/x86/xen/enlighten.c | 7 +------
 1 file changed, 1 insertion(+), 6 deletions(-)

diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
index 43dcd8c7badc..6a5cae915eb1 100644
--- a/arch/x86/xen/enlighten.c
+++ b/arch/x86/xen/enlighten.c
@@ -100,10 +100,6 @@ noinstr void *__xen_hypercall_setfunc(void)
 	void (*func)(void);
 
 	/*
-	 * Xen is supported only on CPUs with CPUID, so testing for
-	 * X86_FEATURE_CPUID is a test for early_cpu_init() having been
-	 * run.
-	 *
 	 * Note that __xen_hypercall_setfunc() is noinstr only due to a nasty
 	 * dependency chain: it is being called via the xen_hypercall static
 	 * call when running as a PVH or HVM guest. Hypercalls need to be
@@ -115,8 +111,7 @@ noinstr void *__xen_hypercall_setfunc(void)
 	 */
 	instrumentation_begin();
 
-	if (!boot_cpu_has(X86_FEATURE_CPUID))
-		xen_get_vendor();
+	xen_get_vendor();
 
 	if ((boot_cpu_data.x86_vendor == X86_VENDOR_AMD ||
 	     boot_cpu_data.x86_vendor == X86_VENDOR_HYGON))
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Thu Apr 10 19:32:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 19:32:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.946232.1344194 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2xdP-00044U-PU; Thu, 10 Apr 2025 19:32:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 946232.1344194; Thu, 10 Apr 2025 19: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 1u2xdP-00044N-Ms; Thu, 10 Apr 2025 19:32:23 +0000
Received: by outflank-mailman (input) for mailman id 946232;
 Thu, 10 Apr 2025 19: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=4FIM=W4=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1u2xdN-00044H-Ep
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 19:32:21 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 84700375-1642-11f0-9eac-5ba50f476ded;
 Thu, 10 Apr 2025 21:32:19 +0200 (CEST)
Received: from nico.tail608894.ts.net (unknown [46.228.253.214])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPSA id 13ADB4EE074B;
 Thu, 10 Apr 2025 21:32:17 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 84700375-1642-11f0-9eac-5ba50f476ded
Authentication-Results: bugseng.com; arc=none smtp.remote-ip=46.228.253.214
ARC-Seal: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; cv=none; t=1744313538;
	b=lVi2pOe2GLqZXU3ZGlYyumunPJGjeztoXvpm2CyNBhwtmGK5TsIAEcw5lz7FEQXwlTyy
	 bRrDxQYNoi6OK7aDTkUNAhUFSfjpEvrVPMtXUaN+JVkWv2g/M2cI+bGjtvY8r9hNtEZQ7
	 rhdA2gcXJ95H8AlXuFDqZA5b8j/genUk3pidYliMBDvDFuY7KMmTyYLohrhjFF9yawhyW
	 tddHyhQXpdkT3jO171ER0FNhmNDhuPJyzqh5SWuEDq5M8m8wpVywbh+23B6VHTu2m5/DP
	 epoLOPZlquBC+fAi3+sZCTERYMIClY3VMDtQ2CZ4Jkc8AhrZw93MwAWG+3G00kfeCq30R
	 IWdFhHztTnpmwTnfsIn1nLl+QDnkxtcQRyf02z6J4CCDfkrLfSNyZOpC5EaXJ+p8cW5UU
	 aZDuaxYCLR8+X1YMq+2nZgLIn0La4lGVGQrejBVOSFCot3ZvZ6LDPAtYk1/YMuSvETVuU
	 7vZlSutCBM7Gk6IkDNsgCZ2qR1bcTU8Cy1cvTvLgtCuiKCZokktbmYs2mX/qm5onx4oSA
	 caJt1kuC3j12qt23m9OhhXh2kqwktYBCphGV2nXQxoiQwAA8UsETnawk6IfTaKcUEI11l
	 bhbXWeiO28/aHgAN6Q0kl9BwlCUzHnG0ZQpXp+7rgxB3r/HhbWjnVPnw/Xn0VDs=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1744313538;
	h=DKIM-Signature:From:To:Cc:Subject:Date:Message-ID:X-Mailer:
	 MIME-Version:Content-Transfer-Encoding;
	bh=fWsrMGnovWZ1pXwkz8UYY4Lof4sHqhm1qFlVCkeSFxg=;
	b=0P3xBhJVOB8OuIqy5gw6G+XFk0tEMjV2XY88gXAqszADAn5z0s0DVExwLMI6lGq04LYX
	 A0nfYu7U/14gyz+7aQ6k8r0LteyAuFmmXmTwL2eXFRbjafN/ksFAVP0aM7eakMZEAH3oV
	 qBBA5llNoEY6VduArWyH41NrpIFERkTcragE86l9d3TYQuSYk3Twt5WUZwjDDrgph0NvC
	 ASpArqigRd464bHV9ejSou5HjGsY65juKX7cPnYvy/s038P7a/SZuKEvhTYCve9oNS+6D
	 enl8n9nWrx325WgfTfcqVjwDOYhZFTO4OlDWPK7kMuHecLly0v3Dt0NmMt5xogxF+2cjW
	 TVUFYzMQnk3NQbPBJZxfK3kTOTs5UVT1Bamo3R+vPWQ0K2fzIZJCTMZA4nfZfkvN9sMvc
	 Sw0xowGPCv09SQqPdbdqVqc6PKAL/+p5h30QQpKdfWhAs2G4EqdGBNZC3o+Nh3R95yy1Q
	 xlwN7cUIDeqIjn4Lhj0JU4aPHSc/mfNM3N6Y7xCZEseFy3Uxwop0n3Vz8eWAXWu1fAAdR
	 +7vOaeUg9rlN6pPGAKp8s5/6BGQ1YTZAE7ZX3VR2dMPrfhKneRKStiQnGjD15OwlPviGl
	 IsOeWWOaknuQxL6aNyG+wB+b8xmiCaAwz+8HX/7UovJ0yaJTbtDCPeh3UhA7oTo=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=46.228.253.214
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1744313538; bh=Ffs5Du95wPUDjvK/AtqMfFI77Up6KB+hkBC39BJm+y4=;
	h=From:To:Cc:Subject:Date:From;
	b=pEZ0HmQltDal34KM14vG2bEWdzm5ZeZ0ph8euYC6bG7nLqnTbmBzzDgYigZHQB9/A
	 VHlWwXT7jij5mzUzihe/X4zRPmW9bL9P/IUZ/aorqTq4UKyR4WNkOnsO0nZTIXajXs
	 xEekWJ/k/44lXQfj9V+QOzEOkJaO2Y172zNeuSinYxJPnv8ryyg7k0eko9wBsTbzb2
	 L/klpZIx/vWnD7OyuYHpoTqti0kw9kNBzWFOqh2YllyGno6uKKzIO/TfeF3XQwAkAE
	 dcUpaYSiUbPLJ2uND1TNWsoDLKkKE8yoVLFqVj8WltX6jqFIxTqzNcMm2RMCK6GNjz
	 OckyjJxoNcGNw==
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: sstabellini@kernel.org,
	michal.orzel@amd.com,
	xenia.ragiadakou@amd.com,
	ayan.kumar.halder@amd.com,
	consulting@bugseng.com,
	Nicola Vetrini <nicola.vetrini@bugseng.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: [XEN PATCH] automation/eclair: Remove bespoke service B.UNEVALEFF
Date: Thu, 10 Apr 2025 21:32:14 +0200
Message-ID: <a2b2d290e62bf6727769af91d3955bdd989ede3c.1744313419.git.nicola.vetrini@bugseng.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The service is now part of the updated ECLAIR runner, therefore
redefining will result in an error.

No functional change.

Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
---

To be applied after updating the ECLAIR runners
---
 automation/eclair_analysis/ECLAIR/B.UNEVALEFF.ecl | 10 ----------
 automation/eclair_analysis/ECLAIR/analysis.ecl    |  1 -
 2 files changed, 11 deletions(-)
 delete mode 100644 automation/eclair_analysis/ECLAIR/B.UNEVALEFF.ecl

diff --git a/automation/eclair_analysis/ECLAIR/B.UNEVALEFF.ecl b/automation/eclair_analysis/ECLAIR/B.UNEVALEFF.ecl
deleted file mode 100644
index fa249b8e3625..000000000000
--- a/automation/eclair_analysis/ECLAIR/B.UNEVALEFF.ecl
+++ /dev/null
@@ -1,10 +0,0 @@
--clone_service=MC3A2.R13.6,B.UNEVALEFF
-
--config=B.UNEVALEFF,summary="The operand of the `alignof' and `typeof'  operators shall not contain any expression which has potential side effects"
--config=B.UNEVALEFF,stmt_child_matcher=
-{"stmt(node(utrait_expr)&&operator(alignof))", expr, 0, "stmt(any())", {}},
-{"stmt(node(utrait_type)&&operator(alignof))", type, 0, "stmt(any())", {}},
-{"stmt(node(utrait_expr)&&operator(preferred_alignof))", expr, 0, "stmt(any())", {}},
-{"stmt(node(utrait_type)&&operator(preferred_alignof))", type, 0, "stmt(any())", {}},
-{"type(node(typeof_expr))", expr, 0, "stmt(any())", {}},
-{"type(node(typeof_type))", type, 0, "stmt(any())", {}}
diff --git a/automation/eclair_analysis/ECLAIR/analysis.ecl b/automation/eclair_analysis/ECLAIR/analysis.ecl
index 29409a9af0eb..399099938f45 100644
--- a/automation/eclair_analysis/ECLAIR/analysis.ecl
+++ b/automation/eclair_analysis/ECLAIR/analysis.ecl
@@ -50,7 +50,6 @@ their Standard Library equivalents."
 -eval_file=adopted.ecl
 -eval_file=out_of_scope.ecl
 
--eval_file=B.UNEVALEFF.ecl
 -eval_file=deviations.ecl
 -eval_file=call_properties.ecl
 -eval_file=tagging.ecl
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu Apr 10 19:50:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 19:50:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.946245.1344204 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2xuo-0008GN-7p; Thu, 10 Apr 2025 19:50:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 946245.1344204; Thu, 10 Apr 2025 19:50:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2xuo-0008GG-4u; Thu, 10 Apr 2025 19:50:22 +0000
Received: by outflank-mailman (input) for mailman id 946245;
 Thu, 10 Apr 2025 19:50: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=Z2Tv=W4=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1u2xun-0008GA-FN
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 19:50:21 +0000
Received: from NAM11-CO1-obe.outbound.protection.outlook.com
 (mail-co1nam11on20607.outbound.protection.outlook.com
 [2a01:111:f403:2416::607])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 07767abd-1645-11f0-9eac-5ba50f476ded;
 Thu, 10 Apr 2025 21:50:19 +0200 (CEST)
Received: from DS7PR06CA0037.namprd06.prod.outlook.com (2603:10b6:8:54::12) by
 SA1PR12MB8142.namprd12.prod.outlook.com (2603:10b6:806:334::5) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.8606.34; Thu, 10 Apr 2025 19:50:15 +0000
Received: from DS1PEPF0001709D.namprd05.prod.outlook.com
 (2603:10b6:8:54:cafe::fb) by DS7PR06CA0037.outlook.office365.com
 (2603:10b6:8:54::12) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.26 via Frontend Transport; Thu,
 10 Apr 2025 19:50:15 +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.8632.13 via Frontend Transport; Thu, 10 Apr 2025 19:50: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; Thu, 10 Apr
 2025 14:50:13 -0500
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; Thu, 10 Apr
 2025 14:50:13 -0500
Received: from fedora.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; Thu, 10 Apr 2025 14:50:12 -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: 07767abd-1645-11f0-9eac-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=W+HINt01kRae8g4vJriX4CYXRASSxKgP1ECdL35ovkWgup91b1iMJYTS2s8xl6CvepgFr1D+VetNaNGjoUg5OxXdcCdRX2GIw/IaYXq1VJZYLeC4HzyESY9Ziv8giQmDWFafvy9RQG6CGc9cTZ7jQzd0OoeuRZxrJM48UuzDbq4tmo0vXDbtwv3iLnZhZVV8rkzUdaj4bKZOExSBK1CtbOsu8XdQRLUIvLoqxuhTY3y5P9Fh3CYKX0tejz6kI+vQtNro+HWNHuK8KuG7/ovVHuewfVIupONLvid0dxEVrnNyzijnzeyx4+BphQIlcIRLS9JpOr0wAz7XCojjG8PVmQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=a403CpeXu00vevEWK/Gvu+k567EX/rf6b895FNpNw9U=;
 b=Dqey2R1K2IXEC12c2k8szXeg6Z2WYIOjYN83v78RtAK73FnrmQANLSugOtGmjiqlswp9TrPd76K/6b7v6gz4S8axrN0xpzlcFp0zq2RxdgnlBzpXf0XFh0HqNDSMzuhdXSpNJaAcxUUe4rdYcYINUzl8MBoFhUYPeI2U5MfMBOIOCmeEMfjv8BTANpkQyrHwE+eGW9rFh/V2SlcDX8exdqJVQx+Ydr0T48sk6vAD1OeVLczc1v7BaPd2ptGGNywZaucFHhzbNVPp/o/bZ4XGgZ4L1WFFtfTDHlmgZeU9dfcjDkStuTYVG5K/pR36IVV69Gexu5yLdHyg5lnLi4XtPA==
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=a403CpeXu00vevEWK/Gvu+k567EX/rf6b895FNpNw9U=;
 b=N/DhXCpaK/7e1LsvKQ1Mo8M2BtwvjwDAsf98VhRCUedvj8eJvl26w+j4/N2h/WFqD2rT5IHnjhHEaoFScLpz75gpOUW+msGiJdbVHKJvfBvp1YvKif5YafJQQcHXJOjjqz6jVPTWBfvzwxlIrdVV2eslV4MW3Mh6qQ+GBHtzriY=
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: <agarciav@amd.com>, <jgross@suse.com>
CC: <andrew.cooper3@citrix.com>, <anthony.perard@vates.tech>,
	<jason.andryuk@amd.com>, <marmarek@invisiblethingslab.com>,
	<michal.orzel@amd.com>, <roger.pau@citrix.com>, <sstabellini@kernel.org>,
	<xen-devel@lists.xenproject.org>
Subject: [RFC PATCH] x86/xen: Fix PVH dom0 xen_hypercall detection
Date: Thu, 10 Apr 2025 15:50:12 -0400
Message-ID: <20250410195012.363658-1-jason.andryuk@amd.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <D9366FPHFS9F.2OP8KH7C8OJTF@amd.com>
References: <D9366FPHFS9F.2OP8KH7C8OJTF@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS1PEPF0001709D:EE_|SA1PR12MB8142:EE_
X-MS-Office365-Filtering-Correlation-Id: 7e3688d2-ce2d-45eb-4476-08dd7868e9a3
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?ZrcoMTWMylRCvnY8rDwJJ4tasyfOKTJ2YekomC1XjEFSn4+2zW8zD8CniUAf?=
 =?us-ascii?Q?Uazpqh2EEv+9cl+neansafjWJHProRLPwLAMF5YZJbrPXLbn/N57T+QG+pYB?=
 =?us-ascii?Q?Kv82iedZC1TBXDtWrQ++KdX0AfrcErK4PCx9I9m7rJf3Ftn21u+RZFs3xvDV?=
 =?us-ascii?Q?4mSB228fy1+Ug98Xw0u8Oh/GDrSuuR+gMJFGTL68oMavSciQbtpztIvnn1YW?=
 =?us-ascii?Q?4KF5xg6Bo7qqJN+1VmtTQEOONjh/03XlhvkDTZx+lkxn3xELaKtwMtOT7xM1?=
 =?us-ascii?Q?spQq8F2v1hzND0aDR6KNZDkBfaaTSyBko8gopJqw5UrvLGkyAzJZAkRbfal0?=
 =?us-ascii?Q?y9Fwfgi3xM0K64upRZvXIgekKdA5+Uf5ujRNq5lKnt2wxkuI7j7WWJoaocKC?=
 =?us-ascii?Q?09NDugFcvuRWgfMzItVarigXH2gW6OFUL62FU3UIRlcUGtNMCjXaA1S+29n0?=
 =?us-ascii?Q?mZfq5vfhkVVRnKaaeYKO4U24sWCQvru/pz80No8bL2v5sZJFdTAEBb6rqN8v?=
 =?us-ascii?Q?JqFsqMGDDPTCNeV1gycBaxnQxocmgTrTGa/vVZbdSoLFnhxoTfDbI/S5EBtm?=
 =?us-ascii?Q?+VnSIIHftW/ftPehaMNp9nIaUFsTQxplWLdn2ZEvGgAHUgUxZge1GTHrBUUi?=
 =?us-ascii?Q?IwbHUDLXeYplX+KHw2t7ExRWOaEn7b0rG1CXO7KfcCWhUFRZLgJng8RZj2+N?=
 =?us-ascii?Q?Egm/UAQKdwDCBTustyk/4fvWIKJ42jVEt4Ln+5xIAisue/mMuBOx/Y+QRZ1M?=
 =?us-ascii?Q?8sDG1aWyXmYNvlBzKcnQkyvx/bNngYgeE0ab5xVIwm/vnzNK8WM/Henysibc?=
 =?us-ascii?Q?fRs1g7pVmFyibQg6IWxVQV0VcauBWVrXCpb4vKFFgE0JGs4dQ8nwROD1y8Hy?=
 =?us-ascii?Q?4M49VuFpR190WDY/NGnFRdu7Pg/tSpENHG9SMozWBkgPsvQEdmQmoQd+Ve9G?=
 =?us-ascii?Q?M9bEHNq/YvdKst8qAprAX7kRZVOhOxJH01OYDHniuTwOBEHe2xFmhCAuUeyq?=
 =?us-ascii?Q?3YPgvSw61wgigMIz3vNM+kIVweJlsK52FgsVe4egm0GlJaC91ocZWdcLYlG6?=
 =?us-ascii?Q?sjxvRlev0tRp1qVr4H0591Z5PjkIRBndGV2DrTyQ+0DmIXlenJm7aCgUWMsn?=
 =?us-ascii?Q?WExWxp0GNHfg5o3RoxZQKeDUckQYL5kvLWEFyyuQYSkoRgzoUf6C3ynmcRqT?=
 =?us-ascii?Q?SFucefYbHtCUJM6VyXsgcTSoLdV8s9wDU4NBdTVW1JnkZPRtuKfuxUnfpAZR?=
 =?us-ascii?Q?DRAF+z3PGXCxcloh/KXbaD5D1ifeLwyVmsW94keo2uUZtHo0yQ2Z/BZvR6NV?=
 =?us-ascii?Q?D9pFGNJohz2W0ysrh9qsBO+GWx0iJ7VYAUgJE25d3SgR20LUpkLnz0CN1l5E?=
 =?us-ascii?Q?WSJRF+9Tp8JmFmvYyaiui36hud5ZlnxJMW0/Tqk7WWZ/dtk5/IoTVpv9WHqX?=
 =?us-ascii?Q?D60UILBrhp5q/iZlUt5eCe59oLt/1GAjPs6Nx4/5PiHNAkIYf3FNeiL6uEOh?=
 =?us-ascii?Q?wvXOseqMPL+LzJw=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)(36860700013)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Apr 2025 19:50:14.7732
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 7e3688d2-ce2d-45eb-4476-08dd7868e9a3
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: SA1PR12MB8142

A Xen PVH dom0 on an AMD processor triple faults early in boot on
6.6.86.  CPU detection appears to fail, as the faulting instruction is
vmcall in xen_hypercall_intel() and not vmmcall in xen_hypercall_amd().

Detection fails because __xen_hypercall_setfunc() returns the full
kernel mapped address of xen_hypercall_amd() or xen_hypercall_intel() -
e.g. 0xffffffff815b93f0.  But this is compared against the rip-relative
xen_hypercall_amd(%rip), which when running from identity mapping, is
only 0x015b93f0.

Replace the rip-relative address with just loading the actual address to
restore the proper comparision.

This only seems to affect PVH dom0 boot.  This is probably because the
XENMEM_memory_map hypercall is issued early on from the identity
mappings.  With a domU, the memory map is provided via hvm_start_info
and the hypercall is skipped.  The domU is probably running from the
kernel high mapping when it issues hypercalls.

Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
---
I think this sort of address mismatch would be addresed by
e8fbc0d9cab6 ("x86/pvh: Call C code via the kernel virtual mapping")

That could be backported instead, but it depends on a fair number of
patches.

Not sure on how getting a patch just into 6.6 would work.  This patch
could go into upstream Linux though it's not strictly necessary when the
rip-relative address is a high address.
---
 arch/x86/xen/xen-head.S | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/x86/xen/xen-head.S b/arch/x86/xen/xen-head.S
index 059f343da76d..71a0eda2da60 100644
--- a/arch/x86/xen/xen-head.S
+++ b/arch/x86/xen/xen-head.S
@@ -117,7 +117,7 @@ SYM_FUNC_START(xen_hypercall_hvm)
 	pop %ebx
 	pop %eax
 #else
-	lea xen_hypercall_amd(%rip), %rcx
+	mov $xen_hypercall_amd, %rcx
 	cmp %rax, %rcx
 #ifdef CONFIG_FRAME_POINTER
 	pop %rax	/* Dummy pop. */
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Thu Apr 10 20:08:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 20:08:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.946258.1344215 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2yCG-0004k0-MD; Thu, 10 Apr 2025 20:08:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 946258.1344215; Thu, 10 Apr 2025 20: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 1u2yCG-0004jt-II; Thu, 10 Apr 2025 20:08:24 +0000
Received: by outflank-mailman (input) for mailman id 946258;
 Thu, 10 Apr 2025 20:08:23 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=C125=W4=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u2yCF-0004jn-Np
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 20:08:23 +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 8d86cbf0-1647-11f0-9eac-5ba50f476ded;
 Thu, 10 Apr 2025 22:08:22 +0200 (CEST)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-43cf58eea0fso7091165e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 10 Apr 2025 13:08:22 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43f23572cf0sm64291455e9.27.2025.04.10.13.08.20
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 10 Apr 2025 13:08:21 -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: 8d86cbf0-1647-11f0-9eac-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744315702; x=1744920502; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=1mfZtmUZIe6DBxDQJAxIxTPnu5/8+3Wv78OhNo4QKag=;
        b=vVjHbrcrudUkRBQL6PlRPeEk28fWgbF8Dl9UldAhXZ4VDIPweo/hlBBE4uDoai54YH
         fet5siPgmcav3pZOAWcTg0SKNNceVi7kOSOX1E+Fy2rTtIkDZmPexQ7pdSnZm7trVlXT
         OBTsNq9byxQHe/e044IRkPl1siV6O8pGD9ecE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744315702; x=1744920502;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=1mfZtmUZIe6DBxDQJAxIxTPnu5/8+3Wv78OhNo4QKag=;
        b=PBpGmd2jGkR911Hmx0QvnlkMaLPfYn7vqzNCVqoxSP24LAlVUdgNiAJjShAenePOE/
         H9IG+Sq3n5nvZ4qzuMJhXVMrxhzqtNAH8U/B6nPGBGRb7hdDcTUldi2kcwEwOkR/8inu
         takVY0P+IDzpb0uYKstrk7KFOcHJZqEt6AuYTqeoOFWnpE/AZeP9RytvJcne+OUBrB2q
         Vwjsmp+fNmdjiOT3DM4BHseqmZVPENGj2SUcxNpKoTBNvqQwDhzKcLHb4lvCI965AMTb
         O9kUNmQWLTdqkVPycRdU40eIcM+XRVVhz2YhBWNCGP0fzMki0sti3FyvRyLpCOCH+ghZ
         Cs0Q==
X-Forwarded-Encrypted: i=1; AJvYcCUfRm1M62KVdn7BXYF/EKWHONHSIzrVUsZM5gdLCSW/MaEFIGZ3VNvofWliuLH7wTbFbDuOPar+lcU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwAOuKQDk3cG/91f9qYB0xzKgybzE+32zpMa/dY2sx6jhKGJN5g
	ir1lJJYHpFaVWuI5xy17O55B/hSYeKkW4cZg3DP1paatXP5zEyD4dTUdIddbRwI=
X-Gm-Gg: ASbGncuAnYaOT5/3btYbvaipkoDb9vHxiZpk4KolSylFQsXWLyIe5bc2vl2t98u2TJ0
	CQfzo2+dahU/+HsQPmZY1ZDEXj4uuh7vrZEZLR9f2oMV66dDw30g0ZBcI1V59aYBa5rV76SloV2
	0zoZchEHVq8On0ORQdpgEyWwvRWQLMQo3Efdi9iEOoxnCpSEDLJdBRmsAgUaVN8A0taNgpwZWqc
	+Wgl3NkBXSEzinBbhGbng/g0UWJoJ79/z1JKShSPGHFe097IocFL08G/VJY5nkg4vjHi1zq0fkr
	EUcQv4vCMKycGs5bcGk9VTcNMrHqOalhiC/kfRBqLE+X2pDCdUG8nKtGpq2Y2e0a8DR3OscOTfN
	2V6xrIA==
X-Google-Smtp-Source: AGHT+IEa0BnZCDBm274Bq+BsOxZrMKF/YXAJSaK7jLKWh1W7S8toqObXWk2UvJbRQyVEsyD7kVSg7Q==
X-Received: by 2002:a05:600c:1d0f:b0:43c:f81d:34 with SMTP id 5b1f17b1804b1-43f2d7b4fe5mr46615285e9.9.1744315701690;
        Thu, 10 Apr 2025 13:08:21 -0700 (PDT)
Message-ID: <b5f0ef7c-2f5d-49a2-b164-9f1e433b748a@citrix.com>
Date: Thu, 10 Apr 2025 21:08:20 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH] automation/eclair: Remove bespoke service B.UNEVALEFF
To: Nicola Vetrini <nicola.vetrini@bugseng.com>,
 xen-devel@lists.xenproject.org
Cc: sstabellini@kernel.org, michal.orzel@amd.com, xenia.ragiadakou@amd.com,
 ayan.kumar.halder@amd.com, consulting@bugseng.com,
 Doug Goldstein <cardoe@cardoe.com>
References: <a2b2d290e62bf6727769af91d3955bdd989ede3c.1744313419.git.nicola.vetrini@bugseng.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: <a2b2d290e62bf6727769af91d3955bdd989ede3c.1744313419.git.nicola.vetrini@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 10/04/2025 8:32 pm, Nicola Vetrini wrote:
> The service is now part of the updated ECLAIR runner, therefore
> redefining will result in an error.
>
> No functional change.
>
> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>

Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>

Presumably this will be needed on all branches using Eclair ?

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Apr 10 20:18:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 20:18:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.946274.1344225 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2yLW-0007xU-LQ; Thu, 10 Apr 2025 20:17:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 946274.1344225; Thu, 10 Apr 2025 20:17: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 1u2yLW-0007xN-Ga; Thu, 10 Apr 2025 20:17:58 +0000
Received: by outflank-mailman (input) for mailman id 946274;
 Thu, 10 Apr 2025 20:17: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=4FIM=W4=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1u2yLV-0007xG-8C
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 20:17:57 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e106bd2c-1648-11f0-9ffb-bf95429c2676;
 Thu, 10 Apr 2025 22:17:52 +0200 (CEST)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id DC3C34EE074F;
 Thu, 10 Apr 2025 22:17:50 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e106bd2c-1648-11f0-9ffb-bf95429c2676
Authentication-Results: bugseng.com; arc=none smtp.remote-ip=162.55.131.47
ARC-Seal: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; cv=none; t=1744316271;
	b=JauWh9nY+rMTFRletHs7bytwvUHfwYRPtNaXVxGeUxPkDeKq5UwqP7I5WdvPVBbFAmQ6
	 GBt2jcs2E3mPn3oIWi5qk5XYD3USgIj8PTh9qabXRHbY6ZcKlQmbfmVgDcJwNqgoG17tA
	 31rOGKvBKN8fGCjTDbSdbJaxyT/mT7wCcd7lPZqASUm5//+E8KYcg9n5BbW40Yg02TIAh
	 tUq7VcJoZ8if0/GvS9zmWCmCMAiT0Uvvpb2A+dmbnJwdpE9LbpVHEmoc/iy74N3xrpW9c
	 6vdlEWc3u2/dDMgExEynSn04rhLswXP3oDFeE/A/FpHLeMozIs6R4SokFR+8F4/JLRrQL
	 gB//HQDlglt3+QQdExYpYNoBogQyEnLFfJ+Ks4NOmNnrLqDBlnYyUO9Cmn67p2O+funR+
	 N1FIbfhJNwISbjvVoiyluJxcN/snhXue5i7L7BfSzBFfieGWpa+ZjSkwg4XDbC4QNIf88
	 s9WJ7xRu3H9VHPhED8ozelUg8ZpicPc/y42If/Hl+cOVxX3989LA5tmDBS8PNx7a3IoGF
	 ViFLV5zi7ejxnQKXNWQ7l7mYeGsb5j2DtduEoxFUKYsKGLMhH7w24b/M5IAg74hxdL6GL
	 dbKyja4Y8T6M6E+vaDfw8LLseGDdix3hOeRINQkgT/dpOMxsMcmEEcxXxC26px8=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1744316271;
	h=DKIM-Signature:MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:
	 References:Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=vm2zriBhBMO1r00V0jmKJoxFv58Rj6rC8zzFXuem/nE=;
	b=uFzFOzP/q5o2ipfSRGwiHRgdOQNHPZUDL9VYy0vbfP3lbUK3rCRUyanbakrmdfEbICj8
	 LbGfBjUXnbPCcCdj1fIr2SmToWPVMnBI2auMv/F+dPB6HRAekVEH0b7zk2ghXA0i6FYBE
	 G3hF6CdvNP+5/RrheeCx1w4iVdh/JWzCr238U4DdAWT2MHkgmdlvhlLC8MGDMwMYDp9/M
	 RB33w7o7rRqcL9OENu5pftkFE9hVQYdUiEIzfYXbsS1JkdXTmuV0ftAzWtP7caZgyptei
	 fC8raaTb5Xwg1pvND7oZKHIdk5NY15214rsOmf8PZxJueqBHKL0iyfVszzReqwvcGhcYQ
	 Dz2q+VhHgQpRLhB7MTYbi38oAX8RHjh4aJ/IHWRR6hlAAZLwoQVm0ZcXwQEtu+vtTBVD1
	 GS0dviptSzzwUHDOxv5JtYDBA/+FXTu/l88Ww066EjJeGzcdMwd3fxV1NHCaYYh9mSKPQ
	 WPHm7OWzV4EZy/8cWxmPgQaNQAn1Hn5I6pqjpJdUvO+NZlO73dRbGk8IX8WUPoG6pNF81
	 mJ0unV7n+4rZaxdJ3iyBY0gmmUtUVCtfIsBZTjVThAm423fia09g1tHdmxddvpiZ3LCnX
	 zEUYhyWpIklCpr0wyGzQQ89mi7w8cAo2dIofhHOAlPYETi1BsRrG5kOrYAD+nno=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1744316270; bh=YJxZFtsNZB5z7376VRdZK35cUGOopf2ptWmn2BIScGU=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=nIo0Uf27L6P0ZV5l7M+NXEaH6SWMnbP9OxBVuNhpTUA4hMgivrgUSL8ESX6O912ZO
	 i2tcaiV0Fs3gAYd2cpjdmxlUASlliuKxujCQ0/eNrdTvrWvoBrXPKlK9eJJElELBOf
	 QoMHjDX9iZ6LsvkdyCUeAk+oOsK+dK9mQjWtHSIevJLaFrzP8tVSceFTIA1ZmQJUHE
	 lz5zq8bukDFG1rGL64tpbACnKnRUKFPG3GIbgXIj4oInWjkq7RKj36vMTC/Q1YdmAc
	 5GNoY1rShHKtXXrWOXF26QzdD/bZAHh6LopclT0qX1jGaTRXs/LVkUVTh4OIhghwA8
	 JelxqnrV3mPBQ==
MIME-Version: 1.0
Date: Thu, 10 Apr 2025 22:17:50 +0200
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: xen-devel@lists.xenproject.org, sstabellini@kernel.org,
 michal.orzel@amd.com, xenia.ragiadakou@amd.com, ayan.kumar.halder@amd.com,
 consulting@bugseng.com, Doug Goldstein <cardoe@cardoe.com>
Subject: Re: [XEN PATCH] automation/eclair: Remove bespoke service B.UNEVALEFF
In-Reply-To: <b5f0ef7c-2f5d-49a2-b164-9f1e433b748a@citrix.com>
References: <a2b2d290e62bf6727769af91d3955bdd989ede3c.1744313419.git.nicola.vetrini@bugseng.com>
 <b5f0ef7c-2f5d-49a2-b164-9f1e433b748a@citrix.com>
Message-ID: <a39c5089ab9e1b5b97308bfd9728a162@bugseng.com>
X-Sender: nicola.vetrini@bugseng.com
Organization: BUGSENG s.r.l.
Content-Type: text/plain; charset=US-ASCII;
 format=flowed
Content-Transfer-Encoding: 7bit

On 2025-04-10 22:08, Andrew Cooper wrote:
> On 10/04/2025 8:32 pm, Nicola Vetrini wrote:
>> The service is now part of the updated ECLAIR runner, therefore
>> redefining will result in an error.
>> 
>> No functional change.
>> 
>> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
> 
> Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
> 
> Presumably this will be needed on all branches using Eclair ?
> 

Tes, that would allow to reuse the latest runner on those branches, 
which is probably the best course of action. Since they get 
(presumably?) less activity than staging, that might be held off until 
then, before any other backports.

I'm still waiting for the container image to finish copying to the other 
runner though, so you might experience some short-term breakage.

> ~Andrew

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


From xen-devel-bounces@lists.xenproject.org Thu Apr 10 20:22:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 20:22:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.946287.1344234 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2yPZ-0002cw-2O; Thu, 10 Apr 2025 20:22:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 946287.1344234; Thu, 10 Apr 2025 20:22:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2yPY-0002cp-W5; Thu, 10 Apr 2025 20:22:08 +0000
Received: by outflank-mailman (input) for mailman id 946287;
 Thu, 10 Apr 2025 20: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=C125=W4=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u2yPX-0002cA-J2
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 20:22:07 +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 7934bec7-1649-11f0-9eac-5ba50f476ded;
 Thu, 10 Apr 2025 22:22:07 +0200 (CEST)
Received: by mail-wr1-x435.google.com with SMTP id
 ffacd0b85a97d-39c266c1389so796520f8f.1
 for <xen-devel@lists.xenproject.org>; Thu, 10 Apr 2025 13:22:07 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39d893f0b35sm5713285f8f.70.2025.04.10.13.22.05
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 10 Apr 2025 13:22: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: 7934bec7-1649-11f0-9eac-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744316526; x=1744921326; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=vJuMSl6MDCHrCfCwO5gwrSt7KECAIJMXM9EXOu8ucRw=;
        b=d0II9GWik8QaNzv6mqos97xHGEhfG9zfBRGvvmR30lZJyUebVqElMR7QxlftJuNO/o
         cgSv53nwl9tNPeE/Qu8SZfMKsMDUwceTBfzXbVWQBjQ1nGzVieCYA3uFn0Lk/e8+1cvO
         kCJkNMKKU+3rlL8l3umoEm/6QZyqw+4nWHsog=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744316526; x=1744921326;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=vJuMSl6MDCHrCfCwO5gwrSt7KECAIJMXM9EXOu8ucRw=;
        b=Gd9Z3F59ydv1Du1AeCsR1hAOSRHkjUrmx+E3OH0/Cr3ow01n5RwHmwnHjRoLwmBXIL
         fGn5rr21fZMH08SKzrbRkEVQGeZaFnNkxmxO1gOYYT0+F4yLo/jQsmqXdTc/LWyFWQwW
         6x39+zzH58AD0jaUgmfPtiVyXkFS8rSeuCMrMhLvx+OG67UyUEZ1G7LSgC5PL4DLKAHf
         NCaK13te2GeHDtyBXcD2q2VpJ3Yppz8vPvcs03OJkHVpjJKNwt2x3nQRlwbDCyIVbxQj
         G0qgZjb5Mks8PV3SDR0RbTH3DDn80CqP0JZwprp1GF6FN++yepP+aqkQQR8EO154tXQC
         OsPw==
X-Gm-Message-State: AOJu0YxNZumrSJsEBu2pYGLxydcVm9iULAU7Qd7lsjYxo9/cg8qMTOcr
	eyj/9ceVXpR3uOchaF0f2p4YNc5ZNLLlzXFsMc3pf3YujmUqvgn3aisEVd43mao=
X-Gm-Gg: ASbGncs6Uui9hRUbGOyltA16LEEkKyb3vUrsDyqq6XfyB6dcWE4aGyxWjghYvGaOJlY
	X8t+CpicrK80jbUksZvfZ9Ih+/FdK7w+UB5M4zPTAPGOnjEdopwTc5uKtAm2RefWDGHi4Sbec1E
	RukbDIB9Ht9X93698DEkZXKfNAsUM/Khj6UZoTAtCC0/YBQbr4H7wDmBRq0SHdbZFE7S/9znzrZ
	JE0ttqQKdDvopVLuNscbbnTNi3mq2VKbaYfzh+t7GoNTznKhBYRyie8P1rVyWWGb2mxl4W3veN0
	AMiKH1I4f37yZL+mpV1+4GMFfWDSILKmtCJNrppbm0HHN2PZprRmVLYIwL0t0ctcu/z1P/eQJIm
	tKw87iQ==
X-Google-Smtp-Source: AGHT+IHi5WGrrOMHU4I9mNQ3ro/5r31Pa3tngRTxcoWSmgKxPyWERI/L6nc94H2ye0H71VtQ6Vi+Dg==
X-Received: by 2002:a05:6000:2ab:b0:39c:1f04:a367 with SMTP id ffacd0b85a97d-39ea51d359fmr66019f8f.4.1744316526641;
        Thu, 10 Apr 2025 13:22:06 -0700 (PDT)
Message-ID: <c4118db0-668a-4b34-a152-3d79dee0666e@citrix.com>
Date: Thu, 10 Apr 2025 21:22:05 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH] automation/eclair: Remove bespoke service B.UNEVALEFF
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
Cc: xen-devel@lists.xenproject.org, sstabellini@kernel.org,
 michal.orzel@amd.com, xenia.ragiadakou@amd.com, ayan.kumar.halder@amd.com,
 consulting@bugseng.com, Doug Goldstein <cardoe@cardoe.com>
References: <a2b2d290e62bf6727769af91d3955bdd989ede3c.1744313419.git.nicola.vetrini@bugseng.com>
 <b5f0ef7c-2f5d-49a2-b164-9f1e433b748a@citrix.com>
 <a39c5089ab9e1b5b97308bfd9728a162@bugseng.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: <a39c5089ab9e1b5b97308bfd9728a162@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 10/04/2025 9:17 pm, Nicola Vetrini wrote:
> On 2025-04-10 22:08, Andrew Cooper wrote:
>> On 10/04/2025 8:32 pm, Nicola Vetrini wrote:
>>> The service is now part of the updated ECLAIR runner, therefore
>>> redefining will result in an error.
>>>
>>> No functional change.
>>>
>>> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
>>
>> Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
>>
>> Presumably this will be needed on all branches using Eclair ?
>>
>
> Tes, that would allow to reuse the latest runner on those branches,
> which is probably the best course of action. Since they get
> (presumably?) less activity than staging, that might be held off until
> then, before any other backports.

Well, I'm doing backports for other reasons, so I'll include this.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Apr 10 20:56:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 20:56:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.946308.1344254 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2ywJ-0002ud-MD; Thu, 10 Apr 2025 20:55:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 946308.1344254; Thu, 10 Apr 2025 20: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 1u2ywJ-0002uW-JN; Thu, 10 Apr 2025 20:55:59 +0000
Received: by outflank-mailman (input) for mailman id 946308;
 Thu, 10 Apr 2025 20:55: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=Z2Tv=W4=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1u2ywI-0002gb-JD
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 20:55:58 +0000
Received: from NAM12-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam12on2060f.outbound.protection.outlook.com
 [2a01:111:f403:2417::60f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 32fe4276-164e-11f0-9eac-5ba50f476ded;
 Thu, 10 Apr 2025 22:55:57 +0200 (CEST)
Received: from CH2PR04CA0018.namprd04.prod.outlook.com (2603:10b6:610:52::28)
 by CY1PR12MB9603.namprd12.prod.outlook.com (2603:10b6:930:108::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.24; Thu, 10 Apr
 2025 20:55:55 +0000
Received: from CH3PEPF00000011.namprd21.prod.outlook.com
 (2603:10b6:610:52:cafe::72) by CH2PR04CA0018.outlook.office365.com
 (2603:10b6:610:52::28) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.24 via Frontend Transport; Thu,
 10 Apr 2025 20:55:54 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 CH3PEPF00000011.mail.protection.outlook.com (10.167.244.116) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.0 via Frontend Transport; Thu, 10 Apr 2025 20:55:54 +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, 10 Apr
 2025 15:55:54 -0500
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, 10 Apr
 2025 15:55:54 -0500
Received: from [172.25.231.87] (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, 10 Apr 2025 15:55:53 -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: 32fe4276-164e-11f0-9eac-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=xXZnaoTe708AfLKwgYvANu1qQvBVLVP4CKA6bHhuzCv0W3ImA9hnUKaq2M8lMN17C+P8nuTd7H5ftBjEIBHnlSbF7rm5A9fPu4W+9kiCMj+4NnnwoUrTdsu0HjhenG+PRYT18HM6mUfVVcukGdBrCuPga7NYUSkLvzC/CktpMUVL5nlRYEonTY9TPZWQpnJbZCK7ibsPvLTnGiNgjhoRvG6yRTci2DxpJQT3oKDwnYWVXo6vlqq08+EMqhOGkHrpyDjwGP5kAs5fIwZBCjpFvyFV/5sN1uzfNdoDRgIK8cMY2Q9WParlPrL6VkaHOFFAuwBCg+vacND0nTHvBgU1NQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=8XkPlzDKAdL45KUcaKqXvjflbr0n3Uvkkym2EUKfeGA=;
 b=b5G2PHvYmbNxai6X4mEVEPK7vxWZDqbaSut+PeSFka6LkjDhwcIkMNRu4j/ZpcwPFVZ3xrfXV3OMz3eIcr1Yp9raapd7k1OcbQjK0Q+HrCd5LhQViWKu3do3FYrym4LSi7D6LcD5lhY2MrjMVkQe2uY8lS1Z0JQj3DXDHRFm+0iAI0BMmGXSasO1X+ZYQulxk4wA6CI8Ttou3KcBNl/p4O5/0gpawLw1x4+nWaGKvAzuZaZnjeF5r8VhVm1kKTnJSuWyiJmzpfVGH6aTAU5HhyL/Jgg+UXw2BIj6BfCgySdjd/zSNijBdqGjS/u46sw6WURlpANcD+mAQRKk9u2bIA==
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=8XkPlzDKAdL45KUcaKqXvjflbr0n3Uvkkym2EUKfeGA=;
 b=4ZVaJVLmn7DKWJIbJxt7BXZWodhEtzdluaa7Gr+7lLRX3zeHXfP9RGCC3lKa3h/ftIe4Pj+dKf737VmUPvqtN68IvT4SCLEwd3C15Xnaxsd1avMvSJz13Z7CvlV+ZSdXHZPF3VV9QMA6ivH+vQCUJfDayWU6Ne/GUr/S52P6Ri4=
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: <3c5dfd26-3c12-498b-aca4-0beac4e991a5@amd.com>
Date: Thu, 10 Apr 2025 16:55:54 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC] xen/x86: allow overlaps with non-RAM regions
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, "Stefano
 Stabellini" <sstabellini@kernel.org>
CC: <xen-devel@lists.xenproject.org>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>,
	<Xenia.Ragiadakou@amd.com>, <Alejandro.GarciaVallejo@amd.com>, "Lira, Victor
 M" <VictorM.Lira@amd.com>
References: <alpine.DEB.2.22.394.2504031755440.3529306@ubuntu-linux-20-04-desktop>
 <Z--0USril0UIhR4R@macbook.lan>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <Z--0USril0UIhR4R@macbook.lan>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH3PEPF00000011:EE_|CY1PR12MB9603:EE_
X-MS-Office365-Filtering-Correlation-Id: cfaa9ad3-36ae-4596-589f-08dd7872160e
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?bzlwMW9NL0lodEIrTTNIZ2JOWXVjQnYwNWNSU3ZGM2x5Vi92OHpsbDZVVENx?=
 =?utf-8?B?UjhZb3ZXeTNRVmJXcWgxNWtna2pGVCtBekx4RGxYanN1Ni9keHBPdlF1OU1r?=
 =?utf-8?B?TXpvSlZuYWlDb20yMk14cXhyMFJWbmwyakVOMWxKclBmU1pOVStWNFZpUEZx?=
 =?utf-8?B?bzBXQUFVUjV6UHZSZDFrbVRYcWF1TVVCK0Y5YWNLNEh0TjNSeU1hdC96dHpH?=
 =?utf-8?B?ZlBBV1dHeXBYK05HemJrek1QR2o1Q2hrOXVJUlM0bGdkbVVkd1hhMjlxbHhV?=
 =?utf-8?B?bktqSUVzdWZQdjJST0tuL2x1UHh4MkFiQ285SWxJelJHS2pKL3dQOTYrMTdJ?=
 =?utf-8?B?TmkvREQ5TDdrSnc3RnNwbVVoSmtxbGxaTm82NTBjUnN0R1B4SzBEblFvR2NI?=
 =?utf-8?B?ckUxeWY1anh1TUp1amE4WkJqSTluL2VBM3FnNG85L0VnR1JsSDdiWTVmNDc3?=
 =?utf-8?B?UkN2NFhWUEpWS2FqQ0puciswdDhaVU5MNURLWlVlZzFLOGY2ZWRoaGVYV2lK?=
 =?utf-8?B?WHZDZjk1QXAvTWxLdWdZMER0aWpzU2NueUVBQ1NIbW9BT1d6Y0k0c09PK2M5?=
 =?utf-8?B?R0FvbjJJTTZwMFh6SXdwV0NtU1RyK3VqSS9vUnhzQXZRTXRUN1dwMUVyZFdW?=
 =?utf-8?B?L0xvdmZ0ZEs4c3AyUU9zWWVaMFJIdUE1NEk5Mnc3eGJFU0dBZHRyQkFOZFR0?=
 =?utf-8?B?MC8yRmthZ0ZSSWJlUUdFZk9PTEVjZWZJQU1Ka2hBSFZPK3J5SzZuMzJXbHFW?=
 =?utf-8?B?VTdYMTZIS3FvZmNvVlBFV2Z1VmZlZDhGK3NHZ0U3VGljRENlSjgreXdKaG16?=
 =?utf-8?B?MnRqTjhrYjM4bmpUVjBYaXFSZGs1N3dyMWtrb1FQY2U4MlhkM3VJTXNwbUxP?=
 =?utf-8?B?cUR4TzhkOElORFIzTVB2VzlQNHFMRys3UVgxRmlsalN6Q1FTN2lEQVNmdmdK?=
 =?utf-8?B?czg0NTNMS3ZRM1VjSC93eEU5QUdsczYzb1BsSVVkU0JPWXoxNGY0enYvcVA1?=
 =?utf-8?B?OEhPbjY4WmZ3N3pPVGJHT1V4cDBVM254cjZyVis2RWdJSFVqQ1RNeDR6SWgy?=
 =?utf-8?B?SFAxeXlRVnp3aEdqNXZTVXdzencrSVYyNWV1Wk1idXp4MXdIcjRjNVZTSGRN?=
 =?utf-8?B?cituY25FVHBadjF3S0hiWUJuV0NHODRuTGdlQ3B4UHNDemxSMTNiQy94WmJI?=
 =?utf-8?B?bTVyZHF3cmxoUGZDcVg4VldDcERPT1ozMVd6SWlkKzBrVThKdkQ2SkUyTExw?=
 =?utf-8?B?SEIyTDNpN0hHVTZEOXVQdHhWT2tMQzhxaWtXc1h4bzVIK3ltZXlmdjVqelRR?=
 =?utf-8?B?RGhjb04zMDBDNDFndjNQcWFOcHVFTGFkbWMzMFE2bGVaZDdKWU9tQ3BpWFZq?=
 =?utf-8?B?cE5qbDVYZGVLMENKdUtZNW1LS0dmSnU2MndpTkJPYVZwcVljN3hsL3lCSXBZ?=
 =?utf-8?B?WlhNUjVBVUVQR1VKTVE0NmJXK0YyS2lFU3hHVGZTZWdzQ0xoNEIvbEQrdm9k?=
 =?utf-8?B?UzJWL3JZNkxkZXI5dlVrQlZwc1ZqbHJYQ21pYXNWcEJUc0t5QTQ0QmI0VFZl?=
 =?utf-8?B?d0IwdWpIYjVyNUdOZmxuUTQzVzAya0xoQnZnRllkaWtLU0VySWNiY3M0M2dW?=
 =?utf-8?B?QURUb0FVTks4eVhpNzU0R0hYWHJkMm83bW5nV0ZqUGpjSlJzWnFZSi83S1RJ?=
 =?utf-8?B?R3dWOXZxeHpJL1EwTnMvc3JlSVphNVR0ejdwT2ExTjRtdkVYYVcxK2hYanRk?=
 =?utf-8?B?aHJUd1lHL0NpOXQwZzIrMVF5VklQVU1naE10cGFoTDdPYUgvQ1pRck5Vc0Nu?=
 =?utf-8?B?NURESTNjc3plNnN0L3FsNG55a0Z2R1dHVENtclp3Qkw0dCtZbCtVeTczTytI?=
 =?utf-8?B?R1F6S2JQRFJ2bFltcDJVK2F5RVRsQkNORVRMME1UM1pmdVpXeDhvQVRmbk5U?=
 =?utf-8?B?dWR1dTdQRjlUVktLaWN0eVJvOGZ5ckZCTXJ5Ymo4SmQwczRKeEFJOEdjbzMx?=
 =?utf-8?B?bmxNTHh2cGVRPT0=?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:;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: 10 Apr 2025 20:55:54.7457
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: cfaa9ad3-36ae-4596-589f-08dd7872160e
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:
	CH3PEPF00000011.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR12MB9603

On 2025-04-04 06:28, Roger Pau Monné wrote:
> On Thu, Apr 03, 2025 at 06:01:42PM -0700, Stefano Stabellini wrote:
>> On one Sapphire AMD x86 board, I see this:
>>
>>
>> (XEN) [0000003943ca6ff2]  [00000000f0000000, 00000000f7ffffff] (reserved)
>> (XEN) [00000039460886d9]  [00000000fd000000, 00000000ffffffff] (reserved)
>> [...]
>> (XEN) [    4.612235] 0000:02:00.0: not mapping BAR [fea00, fea03] invalid position
>>
>>
>> Linux boots fine on this platform but Linux as Dom0 on Xen does not.
>> This is because the pci_check_bar->is_memory_hole check fails due to the
>> MMIO region overlapping with the EFI reserved region.
> 
> That's weird.  (Partially) the reason to not attempt to map such BAR
> is that it should already be mapped, because at dom0 creation time all
> reserved regions are added to the p2m (see arch_iommu_hwdom_init()).
> If that's not the case we should figure out why this reserved region
> is not added to dom0 p2m as part of arch_iommu_hwdom_init().

Victor discovered these regions are type 11 EfiMemoryMappedIO, but they 
get converted to e820 RESERVED.  The BAR points into it.

00000f0000000-00000f7ffffff type=11 attr=800000000000100d
00000fd000000-00000fedfffff type=11 attr=800000000000100d
00000fee00000-00000fee00fff type=11 attr=8000000000000001
00000fee01000-00000ffffffff type=11 attr=800000000000100d

Xenia discovered Linux keeps small regions like this reserved, but lets 
larger ones (>= 256kb) become holes.  See the comment in Linux 
arch/x86/platform/efi/efi.c:efi_remove_e820_mmio() around line 301.

The description of EfiMemoryMappedIO is a little confusing, which is 
probably why its use in unclear.

```
Table 7.5 Memory Type Usage before ExitBootServices()
EfiMemoryMappedIO

Used by system firmware to request that a memory-mapped IO region be 
mapped by the OS to a virtual address so it can be accessed by EFI 
runtime services.

Table 7.6 Memory Type Usage after ExitBootServices()
EfiMemoryMappedIO

This memory is not used by the OS. All system memory-mapped IO 
information should come from ACPI tables.
```

The two after ExitBootServices sentences seem contradictory.  I wonder 
if it should be "Ignore this memory type - All system memory-mapped IO 
information should come from ACPI tables".

> Can you paste the dom0 build output when booted with `iommu=verbose
> dom0=pvh,verbose`?  Does using `dom0=pvh,verbose,pf-fixup` solve the
> boot issue? (and can you paste the output if it does)

pf-fixup did not resolve it.  The vpci pci_check_bar() check is 
independent of pf-fixup from what I can tell.

Regards,
Jason


From xen-devel-bounces@lists.xenproject.org Thu Apr 10 20:56:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 20:56:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.946307.1344244 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2ywI-0002go-G0; Thu, 10 Apr 2025 20:55:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 946307.1344244; Thu, 10 Apr 2025 20:55: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 1u2ywI-0002gh-DF; Thu, 10 Apr 2025 20:55:58 +0000
Received: by outflank-mailman (input) for mailman id 946307;
 Thu, 10 Apr 2025 20:55: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=Z2Tv=W4=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1u2ywH-0002gb-7m
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 20:55:57 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on2061a.outbound.protection.outlook.com
 [2a01:111:f403:2414::61a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 31539a06-164e-11f0-9eac-5ba50f476ded;
 Thu, 10 Apr 2025 22:55:55 +0200 (CEST)
Received: from DM6PR08CA0010.namprd08.prod.outlook.com (2603:10b6:5:80::23) by
 DM4PR12MB6302.namprd12.prod.outlook.com (2603:10b6:8:a4::21) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.8632.21; Thu, 10 Apr 2025 20:55:48 +0000
Received: from CH3PEPF00000017.namprd21.prod.outlook.com
 (2603:10b6:5:80:cafe::b4) by DM6PR08CA0010.outlook.office365.com
 (2603:10b6:5:80::23) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.26 via Frontend Transport; Thu,
 10 Apr 2025 20:55:48 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 CH3PEPF00000017.mail.protection.outlook.com (10.167.244.122) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.0 via Frontend Transport; Thu, 10 Apr 2025 20:55:48 +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, 10 Apr
 2025 15:55:47 -0500
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, 10 Apr
 2025 15:55:47 -0500
Received: from [172.25.231.87] (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, 10 Apr 2025 15:55:46 -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: 31539a06-164e-11f0-9eac-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ifxrQouetNkvCcou5K4SBo7+5/Yo2JsXnamziFZOan+lZDROMrBzAHi5HYdPXX8Wuj3LMdWi1QecstQx5ToTPPBCk2yaTQLFkL/uOSob9Vgv/Zg2IW/oopplu2sH9crHwWpEZPmyBIJd4/lPKoljSC3Zk0IJtk3CN2CRkwCmrcf6TdudxCXDbUbX4+f0nQs6cujI/x/Q4X1LjQbKIKvF79Bam2vQwlEYRyn5KgoBKGFdd3Fyl8k/9oafDyF8D5nVBT05rT1eGlwbE0wrzuYTPv3pklWKlQaADdS6kI+SEGjI0tF3UclRnJWqlGqAs9UkjeCC/kxrGRLh73EHyWggNA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=BYHQvq1hyGnCKt+p7ZvcOzIMDdF4s+K35zHZIvIAVgk=;
 b=oe6W3H8Q16EkbnE7D171/9kIV53f8TB4rainwofzBwGN5aTxh+7xBgxoqCyTdaU47OwSMAOGlzK21/wSBYfM1MCH/O5dlYG7aWiqDXaTaKV0vfwPLYn1o3mvJ9G0zQsllNyI1lCl+tjOtUvTMSSqUruMquEGAiqA5+GFQSIiPIigVdqzWa1agYkeBO5qxxQdXLpRBJLRlXrG1nkzQyk2iCqH1mQLStSHN1koPaIt0N37pkh8Ub3MAnRoaOWWEdd8HtTZ44sPrCFkMGKOb19XdT6cnuflGxnIKNDwXJEHRo9njDVUBD9hfjDNjcz1ny0BnraUfY4XoriTCnOkZox4qA==
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=BYHQvq1hyGnCKt+p7ZvcOzIMDdF4s+K35zHZIvIAVgk=;
 b=szYA83kHZlnNsMKHnZqJFBljm5QsAUsKFA861dAadMiPkKAOLluca+Hd0UyNZSfKjk+FATD2TXAAjNR+s2Z4k5jubYDX/vU6NcLxYGFx2tdHI+rdsVFxmrOf488umGhbNCb/TRlRp4B9OqdJ0bUeN8Y2PJGPBUO/sbujzxYH14w=
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: <dbec0b5d-e15b-4a7b-8b11-126c8345052c@amd.com>
Date: Thu, 10 Apr 2025 16:55:48 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC] xen/x86: allow overlaps with non-RAM regions
To: Jan Beulich <jbeulich@suse.com>, Stefano Stabellini
	<sstabellini@kernel.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
	<Xenia.Ragiadakou@amd.com>, <Alejandro.GarciaVallejo@amd.com>,
	<xen-devel@lists.xenproject.org>
References: <alpine.DEB.2.22.394.2504031755440.3529306@ubuntu-linux-20-04-desktop>
 <e8ca1efb-384f-4c60-94b2-95528301a156@suse.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <e8ca1efb-384f-4c60-94b2-95528301a156@suse.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH3PEPF00000017:EE_|DM4PR12MB6302:EE_
X-MS-Office365-Filtering-Correlation-Id: 06c3967d-220b-4226-142d-08dd78721218
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?dUY3b2dLZy9ObW5iajN4SkxUenVzN2dSNFh0eWMwSTZFaGtlYVpVL3IzNDlY?=
 =?utf-8?B?NDUyTjViaENiS2dGK0dxQTY4LzVFZFJkeEFaWjYwWXNIWUM3QWlYUksyQzhh?=
 =?utf-8?B?UWpYc0dhNm1xeXVucDNmb3g3TzF5K01WL3FoSjlmWitoR0xaZHNiZ2hLQ1Vm?=
 =?utf-8?B?ZTRyLzlNRk5YY3h3TTJwQVhsNythUmpCNkFjOTB5eFJtbnQwY0hmQWxaeGtu?=
 =?utf-8?B?ZlNKU3BLWnpwbTRXV0l1dEdSVmJYMjlsTUJUbVNLaVFaSmlHL0s1TUpoNUJ0?=
 =?utf-8?B?cFhUU0kxZDN5bmNiTm1DOEtwVlN6cnNVMjdWWWNyQ1pyMzlEZzFZNVp4Rmxh?=
 =?utf-8?B?RENLNGFYZXUzR3N1NlQ5bXR6a3A0dFB1aEZkMGdGZVp0L081Q21ueW4xYThM?=
 =?utf-8?B?SmVCNi9wZFRsbDlGY1BUdmpsT2Y0ZVdid3J0VmNvRFVFclloMnNCWXpjSURz?=
 =?utf-8?B?OFJWYmUrZW95ZE56SU1tdmEvZFNkUG9oZjRhRHRVdjR3YnJlMmc1RXdGRGMv?=
 =?utf-8?B?TEtZQ1FVTlJzNFREYzNmeXd6MlJDbVo0OXhUbk9ZZ3hLaHlWM2JuYW9VYWdS?=
 =?utf-8?B?d284SjByQjROZTZIVHJUMXpXVVNuSmdVKzhYQ1FLT0pnMjFIcVNYRzhNemdB?=
 =?utf-8?B?K2MwQW02NmF3N3M0SXNXeDBBL3F3RjlVZWNUSENhS1R0UFlLV1VPT25IUEEz?=
 =?utf-8?B?S3F6TVBQZkFyUWRiZmxsN3F6QU1mRXRhenQxVysrRUxvS04xQTdGaTlkVWhv?=
 =?utf-8?B?UldPbFZTYnVMeStJbVVIT0loaVVxOUxPc2p6YXdHWmhLdUkwL3Z0OURra1RG?=
 =?utf-8?B?OGdIcFNxcld5bm1ZQ0x4b2kyenJSamJvV2luRVRiOEcxQkJyQ3JvbFFWdmE5?=
 =?utf-8?B?M2hzRVk0emNiU2ZvcndIaEd6NnoxU1NQUE9NYjRiNkVtOXpuSVdMMXpJUURo?=
 =?utf-8?B?MGd1Wi9mMHpmWStaZE4rT1FNMjloTi9NNUt6Y3Q5TjdFVzh0OE9JUmJhRnFk?=
 =?utf-8?B?QTZZR2ZmcjNraG9jQTVscDZSbXNjNFZtdkpMcDlTc3FUQ294Y3dPMjZhVlV0?=
 =?utf-8?B?WFpQL2haTnA3dnJ1ZHVSNE5EVzVBem1nUURLK08vUm80M0FNOUx0MURFenBl?=
 =?utf-8?B?WitxQTBKeWZRT0xDbUZTOWQ4RXJFZlJPNGdSSmo5R1pERWc2ZHpXQVM2MmJG?=
 =?utf-8?B?ZEdJQjkwZFQ1SmJ4RzVPeGRTaHJ6OGY2eElldnRnb1crUWZUOHgwN2c2SGVv?=
 =?utf-8?B?SnhkVDNsSW43WXR2Zlp0Z08ydTkxY0UvT2lLTFRtRzdjcjMyMGhHQnRmRW9P?=
 =?utf-8?B?bm1EWXBsdkl4ZlM1TWY5ak1Cb2I1SkMzdHJQbFFYUUdVT0NVSUpnOGZrQmR5?=
 =?utf-8?B?aEI0dkhIRCtva0orNEh4N2NVOGlTNXQrTkFPd3JPTlR1SE9qVlFvMzVRWTMv?=
 =?utf-8?B?cjdFNFJEcGduNjhjRyszUkJJWHBKZ3k1S05zRDNQNDB5TmR2TUNYM3M4LytO?=
 =?utf-8?B?Ni9NZzZFRUdlaU16b3ZmVEJYblRvQkJpS2JtcC91eDdPT3VaUS85MzRGRVg1?=
 =?utf-8?B?S09rQXBMNU1NZjB6bFBZN0pEQXFEQW5zZnA3dTM3dXUvcHZ2ak1CZXBWdDdL?=
 =?utf-8?B?SGNwbmdodEJXRGJaT0I1eTQ0eDM5ZzU1WjZQSGtPSktPa1BNT1piUHM4cnQ2?=
 =?utf-8?B?TXFmT2J4RVRVYVlrQzdFMHFhTk5VRG1UcHg0aXlFd0EwMUw5WXVMMFpuaU1p?=
 =?utf-8?B?MDFkYmc1c3ErZFJOeUV6Z3hXNFErck5uN0hhZElPMHg5eDNkc1V1QWhFZkRK?=
 =?utf-8?B?RTkrSUxrZ1kzMUhUdjdnNWxiYmU2dFk2dVBJbDN0ZHo0ZEZxYnc1Rld2NVFQ?=
 =?utf-8?B?UHc5RFZyTTM4bTNYKzdWdWxCNU56YVBwc0UrMHBpdzRTY3RmdXdHQm5tSjNN?=
 =?utf-8?B?eFpReDdtVFZkSjVyamFOMS8xaXZUZ3RHaVVFOUZpWmJZeDlVUXRyVlJCSmdG?=
 =?utf-8?Q?rfjnz9weRQxKxGNX9iYkteDI5GGhHQ=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:;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: 10 Apr 2025 20:55:48.0999
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 06c3967d-220b-4226-142d-08dd78721218
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:
	CH3PEPF00000017.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB6302

On 2025-04-04 04:07, Jan Beulich wrote:
> On 04.04.2025 03:01, Stefano Stabellini wrote:
>> On one Sapphire AMD x86 board, I see this:
>>
>>
>> (XEN) [0000003943ca6ff2]  [00000000f0000000, 00000000f7ffffff] (reserved)
>> (XEN) [00000039460886d9]  [00000000fd000000, 00000000ffffffff] (reserved)
>> [...]
>> (XEN) [    4.612235] 0000:02:00.0: not mapping BAR [fea00, fea03] invalid position
> 
> I, too, see something like this on an SPR system. That's a firmware issue,
> which hence first of all should be dealt with at the firmware side.
> 
>> Linux boots fine on this platform but Linux as Dom0 on Xen does not.
>> This is because the pci_check_bar->is_memory_hole check fails due to the
>> MMIO region overlapping with the EFI reserved region.
> 
> And then what's the actual, observable problem? On my system I haven't
> noticed anything going wrong yet, albeit the affected device is also left
> without a driver.

The nvme drive (0000:02:00.0 with the invalid position above) fails to 
work and no root drive is available.

> Also aiui you strictly mean PVH Dom0 here?

I think we only looked at PVH Dom0.

Regards,
Jason


From xen-devel-bounces@lists.xenproject.org Thu Apr 10 20:56:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 20:56:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.946329.1344264 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2yxH-0003iX-3y; Thu, 10 Apr 2025 20:56:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 946329.1344264; Thu, 10 Apr 2025 20: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 1u2yxG-0003iQ-WB; Thu, 10 Apr 2025 20:56:58 +0000
Received: by outflank-mailman (input) for mailman id 946329;
 Thu, 10 Apr 2025 20:56: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=Z2Tv=W4=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1u2yxF-0002gb-UK
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 20:56:57 +0000
Received: from NAM12-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam12on20616.outbound.protection.outlook.com
 [2a01:111:f403:2417::616])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 563dc823-164e-11f0-9eac-5ba50f476ded;
 Thu, 10 Apr 2025 22:56:57 +0200 (CEST)
Received: from MN0PR02CA0030.namprd02.prod.outlook.com (2603:10b6:208:530::20)
 by BL1PR12MB5827.namprd12.prod.outlook.com (2603:10b6:208:396::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.22; Thu, 10 Apr
 2025 20:56:52 +0000
Received: from BN3PEPF0000B06A.namprd21.prod.outlook.com
 (2603:10b6:208:530:cafe::be) by MN0PR02CA0030.outlook.office365.com
 (2603:10b6:208:530::20) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.26 via Frontend Transport; Thu,
 10 Apr 2025 20:56:52 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BN3PEPF0000B06A.mail.protection.outlook.com (10.167.243.69) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.0 via Frontend Transport; Thu, 10 Apr 2025 20:56:52 +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, 10 Apr
 2025 15:56:52 -0500
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, 10 Apr
 2025 15:56:51 -0500
Received: from [172.25.231.87] (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, 10 Apr 2025 15:56:51 -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: 563dc823-164e-11f0-9eac-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=abPkMZg9bsbotHSUDo8SkRfzcO26NyhKVJjfAHei8a7bXploSUueEfjEfkLWCj7VvgjWZEbcYxC/IiYpqdAW0ged8aRJP7yh4u7AqlArye7sh3B67vVC1rpP0esP4/V/l4sESiszLBNFsdrl3GRS8ysnv08vHIO35NWAi+RoDOvv4i9eo4HWzpaRfQhkpt4Bq3QIXS+1ms+cEGEEIXhDUbEFulonYesfKboWaVEThfqzEu9Bht/sdCLV1tOBvogLNjhAlZ5QiIobzui03cZysPiCJyXf624//B0hO098pC7wuRcZFZvkmITQnhQznuPpaIdfguViRPjP8KC/ranadg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=fkcWafqHGra459jcug9ikuMTpM2QJBHZ5SFO2V51cew=;
 b=PEJIEDDgg47qm0oGsV00pYiSUFCMCusKGHDwGXMe9yc75Zkqr1HtVzDrCXIpSX9CxJquSLnC3mSWyNIXySfEeR7PIAcA1mkfVKczeMWvdYkGwxXGxVWkewbkqgW206Jed1qWkGc6D4pDTs+XPrxeVWl9mS8DIYCjD4QKPqLtUORjS8dn6eFtxqsUctBgoJHHXr5wI2t0wjTaPSC12xeia+ywE/2oNMmnFwqVP6eTE+hmJU950CxRevWvjstkUtsYGEkUDU8bfJaffg5UsXk06Jp649uSOLyhh7zfRV0lRnzJqLmu9IDpIQAVXI9v/9tenZ8tcCMqcA0b2t2xPtDYVQ==
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=fkcWafqHGra459jcug9ikuMTpM2QJBHZ5SFO2V51cew=;
 b=bI8HlYwGTypYw/T+9M4xbg0yxfvj3zRT5zCZV+iQ1mmnimuBrnMJXDwDGw93waGOYun6gBexwd6wVBf1NBlMxwSOrPJADSIM8zV+m+aNfAatHIcvPdQV9rDeIY3/Datv02IXbFiw67ZKcSMebftTkk42Y7U8WCu2vmvJcFm/PX4=
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: <687e8478-6657-4270-931d-8ebee9dafcec@amd.com>
Date: Thu, 10 Apr 2025 16:56:52 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 01/16] x86/boot: introduce boot domain
To: "Daniel P. Smith" <dpsmith@apertussolutions.com>, Alejandro Vallejo
	<agarciav@amd.com>, Jan Beulich <jbeulich@suse.com>
CC: Xenia Ragiadakou <xenia.ragiadakou@amd.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Michal Orzel <michal.orzel@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: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-2-agarciav@amd.com>
 <141229a0-2cd2-4886-b5e5-02c85b0ca5ab@suse.com>
 <D921CCFOSV90.2LUNCRRSE6Q5M@amd.com>
 <7e87020b-859e-408a-ae0e-097ef4ee54cd@apertussolutions.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <7e87020b-859e-408a-ae0e-097ef4ee54cd@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: BN3PEPF0000B06A:EE_|BL1PR12MB5827:EE_
X-MS-Office365-Filtering-Correlation-Id: 15322666-3027-4924-a6e6-08dd78723877
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?MmF4ZHJTbVpOeUZhNU1wb2NlMlU2Yzl0VkkwbVczUlhLTFpKKzZlOGtBQUNZ?=
 =?utf-8?B?MTAxaklWUmFzdmtRVzI0eFl2KzdWSlorcm4xNm5tMkY5azJ1VEk4YjBaSEgz?=
 =?utf-8?B?OWxzRmpTWno2NktRRzFuVGJPcFFML0ozK044R0xsN3FLbFZodGoyY29kSzhp?=
 =?utf-8?B?UDlaNlhFeEVWV3V6RlBad1JTNzdLTSt6WitacE9YdVQ5MmtSV0lQdEhoMFZp?=
 =?utf-8?B?V2lhYmFRYWIzUGFTVnNEbjVpM3E0K3Q3bGVwcFIwMkE2Zmw4N0ZqSkNrUkRo?=
 =?utf-8?B?WXRvcmxjdHJSOUs0Z1dTY05RWEJsdUR0aTlRaFRUWDVJamZQeE9rRW5MaDdT?=
 =?utf-8?B?UkwvK3JMZnd6bkxScVd4ZEs1cDNHRzBKRGQ0cnpiZExGdndjT2U0LzdWSDdN?=
 =?utf-8?B?TzFDZzI4UE5yMEplSlY4dUF1L1ZNWWs5dVZLSUxFbXZhMnRjUVU1cENZQjRI?=
 =?utf-8?B?NElpcE1WSzRoYmhpWmxWVGptcTVRcGNka1NUeS9PRDl0cjZGMUdxdndQMFor?=
 =?utf-8?B?Y09ERU1PYUQzNHkwVWUxZDhJTm1ha21lQnZzWGpreERiS1hLWk9MTGM1RVVv?=
 =?utf-8?B?aGlkSGRPZVNWSUt3MnJxdmdSNUVhNGQ1bTFsTXZFVXpjYkJNWWFJb0s0VTJZ?=
 =?utf-8?B?L2FIU0JwYTZzWjdFaHZmNTNZY0xoMXN5TmNFNGlrblgyNVlKTm45cldSemFq?=
 =?utf-8?B?YjNlQkFCZmFra1QycFFUTWw1QVNnUHoxMzE0SXBJQ1c3VDgvTS9jUTVLUkRH?=
 =?utf-8?B?NTBYWDVGVjNDcnk4WFhCdEhRQUtuMGNPZkYrUE1MOWFMZjFYYVo5VGJScmxw?=
 =?utf-8?B?dWJKalpKdG13c21NTVhvRjlQcCtvUFNpL24yeXhKZjNSODdKUDNZUFl2c1Fv?=
 =?utf-8?B?cVVoYmk0Nm1EaHVQL0xzaVEyMis0dGRINmpJUGlpL2tPcUVQSnVLVitkTHF4?=
 =?utf-8?B?K2ZHVjYyejIyZDFHNEpBRExBVW1INUVWdEppNzBMUUwvOTl5b25wQVFMZzIw?=
 =?utf-8?B?SmF0MUNXcEhKMkxtdGI2TW5ybTV6bGdJMldzbmI1QkppTXovSlJuZ05jamFm?=
 =?utf-8?B?L0t1cmJ0dlcyYnlFVTF5ZzlLUzV0bEg5UWNIMmNNRS8zNkhsaVJQYVJMNnd0?=
 =?utf-8?B?aG5yWlg2ZVJnQU52K2ZTNzBzUWpaR09YaHBmYkcxMkJrZ0dIOTd2VEdRQlpm?=
 =?utf-8?B?bnJaUFFLN3JjdjdVZE5TYU5icm15OXM0d0NvSlVCODBueXJkd3d4bDdZdkpm?=
 =?utf-8?B?Y3BNYmVwc1h6aU1WaTlZUVI5MG9SQUNsZW8zM1hSRGxDR1crVUhGNXduZU9j?=
 =?utf-8?B?UkdPZjFwMUk1aStqS3Rmd2xuaHJQWFFYcmFDazI1WUU4M3MzWi8vaFF3U08z?=
 =?utf-8?B?YjBYZVo0bXEvRy9Xd0ZoRUFkQzM2SXU3a2Y1eHJLUjVzSDQvZVk5WXlMRVpG?=
 =?utf-8?B?MVhRWjdsWGhGL2c1bW4wcmtSQkQxdVhBNTdJUFVRdHZOOHN3SkFXcTRxZE9q?=
 =?utf-8?B?Rnhxa2RCYXk4S2pRb0tCSUlwMlFJWEJRRERmR0FUYWpMOFlMaFhYTWxVVkRk?=
 =?utf-8?B?RXlRdDF2cDYzSUNoK0E4LzRSdDNma211Zy9mLzVudDNqOVRSc0pBVk5OcTU0?=
 =?utf-8?B?WUZjWDM1cFZYWnFrYnU2Rm5ReXJwR1pmT3p1UTloOU5FZnhqWUNHeWNwYVRy?=
 =?utf-8?B?cmd5MGlJUTMrdDFBa25hazRSemNzSWlRaENLWFFRSkpFUE82NEdEeTh2cGpT?=
 =?utf-8?B?bmFvMHVRaUZNSEVkZHBTSlBYVGVqV0tRM0JqMno4MFc5aVQySE5mUG1yZ2dQ?=
 =?utf-8?B?VTNaTWEra0RnbHNLKzJFZk5KYVpqNGR2WTRRcGg5R2RZMS9JTlVNaXRVRDVP?=
 =?utf-8?B?RVAxTFZRdXlRb3RrQURPV3ZHUUhwWWhla0dkTUEzOGZ5MmhheWpYNEFlcDlY?=
 =?utf-8?B?QUlyRmpWVTkyUy9tRldtNGxsSnBUMTY1T3Z1NFduSHJZb0V5SmNnUGc5M2Y4?=
 =?utf-8?Q?uQLxNhnI/+STXKgW/qhlpZGH/Re4eM=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)(82310400026)(1800799024)(376014)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Apr 2025 20:56:52.5031
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 15322666-3027-4924-a6e6-08dd78723877
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:
	BN3PEPF0000B06A.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL1PR12MB5827

On 2025-04-10 09:13, Daniel P. Smith wrote:
> On 4/9/25 06:28, Alejandro Vallejo wrote:
>> On Wed Apr 9, 2025 at 7:24 AM BST, Jan Beulich wrote:
>>> On 08.04.2025 18:07, Alejandro Vallejo wrote:
>>>> --- /dev/null
>>>> +++ b/xen/arch/x86/include/asm/boot-domain.h
>>>> @@ -0,0 +1,28 @@
>>>> +/* 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>
>>>> + */
>>>
>>> I wonder if the 2024-s here shouldn't have been amended by 2025 now.
>>
>> Maybe. I didn't think about it, tbh. One could argue that Daniel and
>> Christopher's original contribution was indeed in 2024 and the fact they
>> weren't committed until (hopefully!) 2025 doesn't remove the fact they
>> did exist in some form in 2024.
>>
>> I don't particularly care either way, but tend to lean on the "it's fine
>> how it is".
> 
> Jan is correct, now that we have moved into 2025, they should be 
> updated. Maybe we can actually get it all committed this year.

These were written in 2024.  Neither Christopher nor Dan touched them in 
2025, so why would the date change?

Regards,
Jason


From xen-devel-bounces@lists.xenproject.org Thu Apr 10 20:57:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 20:57:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.946337.1344274 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2yxg-0004Ck-C5; Thu, 10 Apr 2025 20:57:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 946337.1344274; Thu, 10 Apr 2025 20:57: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 1u2yxg-0004Cd-80; Thu, 10 Apr 2025 20:57:24 +0000
Received: by outflank-mailman (input) for mailman id 946337;
 Thu, 10 Apr 2025 20:57:22 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Z2Tv=W4=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1u2yxe-00042M-RN
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 20:57:22 +0000
Received: from NAM10-BN7-obe.outbound.protection.outlook.com
 (mail-bn7nam10on2061d.outbound.protection.outlook.com
 [2a01:111:f403:2009::61d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 62bf843e-164e-11f0-9ffb-bf95429c2676;
 Thu, 10 Apr 2025 22:57:17 +0200 (CEST)
Received: from IA4P221CA0008.NAMP221.PROD.OUTLOOK.COM (2603:10b6:208:559::6)
 by CH1PPF16C2BD7B0.namprd12.prod.outlook.com (2603:10b6:61f:fc00::607) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.25; Thu, 10 Apr
 2025 20:57:02 +0000
Received: from BN1PEPF00004685.namprd03.prod.outlook.com
 (2603:10b6:208:559:cafe::c7) by IA4P221CA0008.outlook.office365.com
 (2603:10b6:208:559::6) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.26 via Frontend Transport; Thu,
 10 Apr 2025 20:56:59 +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.8632.13 via Frontend Transport; Thu, 10 Apr 2025 20:56:59 +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, 10 Apr
 2025 15:56:45 -0500
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, 10 Apr
 2025 15:56:45 -0500
Received: from [172.25.231.87] (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, 10 Apr 2025 15:56:44 -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: 62bf843e-164e-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=GV/bS8lpGk/4y5nycwNYhYDOr5/Uy0JzFeD92kgXXjCPzUwHenKdxy+ktJPKzMF7vJLSrgVpG6gZToUD6ia2LcQ4fDMaiidUbDjP/fme3sZ1TIiCK2FAe5SvzPkBsxA1XSspgcg5r4yQgSmIsyHFE7TRV5fQmmp5a5LVkg0OkKKkx4cmWkg6kJXy673YQIRUkUr+XFN+1f2kPQEe6hjqT1zv+nMQ3OOGFKgk787bpSddA5SU0/FkfDrrQSmlaPSsfeLLZxJsGysl9y5gKCT9ROxHp2+NxdozLBjBU8hnjYIThohpvCWH+X8SpfdOdxVJk4wugVdrLz4ecBk16Zze1g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=0BkwjW2bc9cIfjxF6BGMr1rI3Ay3yWUXqJSKgGEh344=;
 b=ijgZ29KVsm7LT2Nc5OquTwK/JA3xDDcZ8h6+24gKwInSSBQmY4pBethgQF0hfS/KCOXjleEhESS6ArWvqlDZt/SduPHnbwluX5sKVV7zLg4hj84zjMRLvKgNijm6kky174YmeEOTF2Lq7FdQ8z/donHxJwqXzBGK9oXYh3NS3MRYix/vjb8bkyfXtwJIwSnG8XWrSncLchgBMY/BSVq8i+umUE4GQSlw6LefKJiDZOC6jMwrrY3P9hxfGSW5+b+q9UtS8e/Q98T5bNV+yBMl+8UGx6LFPeKHP5cqe2dtZ0+FhneHNnp3vuhuiLny0fL/J5tzzGhsBIxNsrldLS0V6g==
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=0BkwjW2bc9cIfjxF6BGMr1rI3Ay3yWUXqJSKgGEh344=;
 b=oW8XwKo5kPokIusy0oePF2/bh9qLz1pnHJLqretuzI285ssGmqI4R4+jLGdPT6NPiiFzDtgRErCBSCEBW3aKpXRqJPxdCCL8uT9DPzZx8xOGlTDKFmFpAG1AVEYbgQNGdy7R2hzd+PL/I/wNi6/J/0nIT0sxCzLrmqwLGEv7pjk=
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: <644cdc5a-b96a-4e43-ae7a-4cadda1d1084@amd.com>
Date: Thu, 10 Apr 2025 16:56:40 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 01/16] x86/boot: introduce boot domain
To: Jan Beulich <jbeulich@suse.com>, "Daniel P. Smith"
	<dpsmith@apertussolutions.com>
CC: Xenia Ragiadakou <xenia.ragiadakou@amd.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Michal Orzel <michal.orzel@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>, Alejandro Vallejo
	<agarciav@amd.com>
References: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-2-agarciav@amd.com>
 <141229a0-2cd2-4886-b5e5-02c85b0ca5ab@suse.com>
 <7fa754f8-d785-45d8-b9da-de5c85bc793b@apertussolutions.com>
 <f0a14866-0f38-4f8d-8e11-993a58c7da7b@suse.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <f0a14866-0f38-4f8d-8e11-993a58c7da7b@suse.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: BN1PEPF00004685:EE_|CH1PPF16C2BD7B0:EE_
X-MS-Office365-Filtering-Correlation-Id: 50754845-9440-41ae-e82a-08dd78723c7c
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|376014|82310400026|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?Y3FRaGlLOHlwcHhxVlp1TmE5R28wT1VyVENueXAvYTFpK1cweTFJUHFzOGtU?=
 =?utf-8?B?cHVyQVpVazIzWldOT2k4RGZTQ1dlODRZNVVLNjd1T1dIRHRWeGRVNUlIcmNx?=
 =?utf-8?B?UHV3eCtOdnJDS0VIcjdpM1Rtc3FtVWVrb21VN09zMnZ3SVFBK0U3S0JCSmFG?=
 =?utf-8?B?WHBwT2daNy9Vd0VTYlJqZkVKQ3hxc01kTkFweUJ3MVZ0aTFRaFNwZG1MSS9s?=
 =?utf-8?B?M0dTb2JWUW9TeldERmdSaXFpQmlQT1hZK24vQnNnUTZncHJHcmZ2WjJocW0y?=
 =?utf-8?B?UFBBc1d3MDhiMy9lZkNUOEhhMWh5SDN2VVV1cUlvOFcvZkkzOGZMOWhPNlky?=
 =?utf-8?B?V3FnQ2UyOUhiVkJIRWV4a1V0anVmYUg2REdualk3bUMxQm9UdUVJNGxaT0Ra?=
 =?utf-8?B?byt6WGtXN0xIZ2M3dHNjM2JtamhGSldibjhaMmNFUklOckphRVB3U3ptUkpX?=
 =?utf-8?B?SUM5VjRGb05TS2VMYzhWTExVb2N5Y2xxaG5xdzBlS1Y5YUxUZXlWRnZtdmxC?=
 =?utf-8?B?KytWbkE1QVYyUlZ6cU85ZkZobmJzMDA5ZjFCNnR3dVlvcDdWN2JyNlRMR2tP?=
 =?utf-8?B?WThhQTVXZENIUlR1NDRWMXg5ZEljV3k0UlF2endpbkVYbnFuM1BzOHlKVCsw?=
 =?utf-8?B?ejdWNlBTYzNjMVkwVTVzUlliSzJJcTgvbnc4MU5SeTVqZDhndVM1aXpNMHcx?=
 =?utf-8?B?YkZnNnhxU205ZjZJdWtDcWpwWHNKb1EydlNjRG9JTEZvR29qcitJanBOVkg1?=
 =?utf-8?B?VVdLSEJic1ppYjRiTnJ1b3NJVHh0d1ZRcHVJTkt1aUdpR0ZIZk0vU0hKSldy?=
 =?utf-8?B?WHpiMnBTVGJ4d3RlUXlQU1RnUjByRkF6dUpFSVpEdC94ck9XZUx5TGxjeUlK?=
 =?utf-8?B?eGp5VkZwNWRvZnJCR0pRbzBGaG1PdVlBdk85Mk94eVgzVGd6Y0FFcEozRUNL?=
 =?utf-8?B?a1lhUE5KUGdnQ0x1Um14aGQ1VmF5TDhPZVdubVFCLzZoTG1hYTZZOGhST2E3?=
 =?utf-8?B?RjJqVnU5eW5VbTJPQXVTbFlLRHNBbW5VSTJqd1RCS21zRDkwWiszM2NjMzdQ?=
 =?utf-8?B?bTdOWVRwL0ZBK2hOUlp0ZFU5TXdLNDU5dkp3clBYQ2RVeFlwZUdOZlBkZ0Z2?=
 =?utf-8?B?M2VVSDNxV0Q4dmVOajd0WHhOZS95ZytqSDRMcGF0d1hmUkp3T3pLMUtITUJ0?=
 =?utf-8?B?WGl5aG4xWVFXZ0wrWUFOSkV2LzhQVnpHaitZd1pVSjM1V2FNZFYzQlVxYy95?=
 =?utf-8?B?cW5SbFdlSnhhKytvZkZVcXRCQnMrQXNXcTlnS3ZpaEQvdjg1OGNWeC9jRlhs?=
 =?utf-8?B?TGhZdkc4akFzVEh3c2orRDZQLzEvQUVJRENENHl5SUk0U0Q2L09Nd2xuTEVR?=
 =?utf-8?B?N2lFdXU5SityZFFjOVdjZS90czFwd3NPdlRuRld3T3JxNmVuWVVHOWRNV3lm?=
 =?utf-8?B?RFFQV3FMcHhUT2dpSXQ3dk5LNjhSRjB0OS9IOGg2R1NTdXJFTGNUREtlcnI3?=
 =?utf-8?B?L1NuVlU5SHpzUGtlcE5RUmU0ck5iRUxhTG5XRU52WE5qcm9WdHlzb21RSTFw?=
 =?utf-8?B?b0xMbDBrSUg3UjIvUVRDWUxjUlVjSUtaTk4vY1lCYlZkQmNXdEF0bW56WUJM?=
 =?utf-8?B?NXZuS3lVYklzM09KU1NvaWpHajJYUFhFOGNtT25RVVo0S2RjN1U3dDMrRldI?=
 =?utf-8?B?UjJtRnU3eEhDTUVYYVRRdzRDV3IwZWRPUDdESFM2U0ExR3pNRXRzSTRxN1NF?=
 =?utf-8?B?NDIzZ0FGVnJSSmpxTTE0OHdiZi9lOHJCVnAzY1k2aTBZTGIzN1c0VlJqYkY2?=
 =?utf-8?B?ZXdsT3RTWTJxeUk0QTBmTEZJa1JDVURkaVlvU29zSlRiVG1uK28xSnU2bG9h?=
 =?utf-8?B?bmZQaXF5bE9RRkhJVU42d0E3QWxYOSs4UDlIUEtTYXFXMk9HYnZpNlRSK3or?=
 =?utf-8?B?b1JxMFVjRXRPeWlLdVgxdmk3dWFzc0tEUXRURkQvSnNvVW1SMGJUSE9lSmUw?=
 =?utf-8?Q?F3UBstaKpitzxqexb1KK765W2CVbwU=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)(82310400026)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Apr 2025 20:56:59.2589
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 50754845-9440-41ae-e82a-08dd78723c7c
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: CH1PPF16C2BD7B0

On 2025-04-10 11:01, Jan Beulich wrote:
> On 10.04.2025 15:09, Daniel P. Smith wrote:
>> On 4/9/25 02:24, Jan Beulich wrote:
>>> On 08.04.2025 18:07, Alejandro Vallejo wrote:
>>>> From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
>>>>
>>>> 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>
>>>
>>> Acked-by: Jan Beulich <jbeulich@suse.com>
>>
>> I have to object because the meaningless rename is going cause
>> significant pain in the rebase of the follow-on series for no improved
>> code clarity.
> 
> Sorry, then an incremental patch undoing the rename that happened (with
> appropriate justification) will need proposing - the patch here has gone
> in already.

Coming from a Linux background, ramdisk seemed more natural to me.  But 
looking at hvm_start_info, the fields are called module there.  And 
since we shouldn't tie this to the Linux naming, the more generic 
"module" name seemed fine to me.

Regards,
Jason


From xen-devel-bounces@lists.xenproject.org Thu Apr 10 21:16:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 21:16:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.946357.1344283 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2zGI-00028k-QV; Thu, 10 Apr 2025 21:16:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 946357.1344283; Thu, 10 Apr 2025 21:16: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 1u2zGI-00028d-Nu; Thu, 10 Apr 2025 21:16:38 +0000
Received: by outflank-mailman (input) for mailman id 946357;
 Thu, 10 Apr 2025 21:16: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=Z2Tv=W4=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1u2zGG-00028X-Sk
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 21:16:37 +0000
Received: from NAM12-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam12on20625.outbound.protection.outlook.com
 [2a01:111:f403:200a::625])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 134ff342-1651-11f0-9ffb-bf95429c2676;
 Thu, 10 Apr 2025 23:16:33 +0200 (CEST)
Received: from DS7PR03CA0136.namprd03.prod.outlook.com (2603:10b6:5:3b4::21)
 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.8606.32; Thu, 10 Apr
 2025 21:16:27 +0000
Received: from CY4PEPF0000EE38.namprd03.prod.outlook.com
 (2603:10b6:5:3b4:cafe::ab) by DS7PR03CA0136.outlook.office365.com
 (2603:10b6:5:3b4::21) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8606.36 via Frontend Transport; Thu,
 10 Apr 2025 21:16:26 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 CY4PEPF0000EE38.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.8632.13 via Frontend Transport; Thu, 10 Apr 2025 21:16:25 +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, 10 Apr
 2025 16:16:25 -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; Thu, 10 Apr
 2025 16:16:24 -0500
Received: from [172.25.231.87] (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, 10 Apr 2025 16:16:24 -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: 134ff342-1651-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=AF7eJLsewAJAn7nc1bNJgm7SN5CvlT4JUM4vku0ez4IPuA5NWXfV/lHTCo+Q36sDDUxHoOOzRVeXrs+/wj1koPHucsT75jO6p1vYN0GnaFWIqF2L3vK2CmBWShqP0qY6yQ2HfdrkL2QUZmE1JfFAa3jvHpuwuzQZqy8n1p9608sz6OLrBpm4/9tEcyyb3sT16yOCOPyBIgzPqWPbnJgvI0rnj040tgVdOGydd+tX9AhoK8PFiQ08FUdhb3593RAuZWTM32calit4dHGXq4EQdiJMf477xrcuwFYUGTeX7A1/tBB9Fj898O+BhZ+KwmAzrM9m/kdN5dHlhu2LBIGDhQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=iI8cl0fkJ6E76LKHX9GN6pWMARFXTkNTXY19IkVax2c=;
 b=iwmPiJYN5pTlD+e6EqR1vzDmm1PKpVT4TFzUV0kve/TYaQvYzN8YPA1S1DF9Yqc9B8uuhQC8gndWT/B6T6+TyhJ6sXxWixC9Pu4mtGHzKUNKnL7Crpj7LKFKY6MqQF2AVocwYk8cq0TgLV8mlrY8luNpMBT7mmHzM034Sx80Le9/NYQEiTBRW9TuGQorN5oVhdJq8v61UcpN5h+AFcRMxu5V5sSdnyTPd0z0lilTRG/Hz94qY8ls/avSZ557PsDpEmsvdyVF5b6jNtO7XFfHYKNhQshCRG54Iw3+p5pqQSXiaMUGEg4HjGRbpFpB1hef6aOnZ6WZcJCK/Nz6tLkkLQ==
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=iI8cl0fkJ6E76LKHX9GN6pWMARFXTkNTXY19IkVax2c=;
 b=UK9gxZamNZftrXuTO6pbR0850NsgPr7ocdHMvlMR1ZG4DcfuBgVVrwrNd06Zc7NcAPgnIOLNwAvGipT7EvU6Pyk3BGvkxngTa8fM9GDdhQnpoUe0aj8M68O0zcJmK4ZIUdP/AzRWc3nziQEMoMRZro/WPVVQ3nkW4AhfsqRcMss=
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
Content-Type: multipart/mixed;
	boundary="------------z5OKitUsG6XMyIF3I0T0oFij"
Message-ID: <eeec5fd7-25ae-42e6-be47-d849e2e33f6b@amd.com>
Date: Thu, 10 Apr 2025 17:16:20 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH TEST-ARTEFACTS 0/8] Cleanup and Linux ARM64 support
To: Andrew Cooper <andrew.cooper3@citrix.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>, Michal Orzel <michal.orzel@amd.com>,
	=?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
	<marmarek@invisiblethingslab.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>
References: <20250409163702.2037301-1-andrew.cooper3@citrix.com>
 <828cabc9-512f-4c2f-a7d7-b9c8963c1300@citrix.com>
 <f7b820af-b548-4dc3-9af7-9d2214a232b2@amd.com>
 <5da1f4ec-43ca-4279-88dd-b51d57b306e4@citrix.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <5da1f4ec-43ca-4279-88dd-b51d57b306e4@citrix.com>
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: CY4PEPF0000EE38:EE_|SN7PR12MB8601:EE_
X-MS-Office365-Filtering-Correlation-Id: 1a17fd67-e89a-4e28-a543-08dd7874f3ea
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|82310400026|376014|1800799024|4053099003|13003099007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?bXRJTGFhS0F5MHBXZlZvcnJTa202S2xadC9aNDdVZHY4MlB4Qkdsb1gra1g0?=
 =?utf-8?B?dGpNb2ZjR0ZXdENKNEF0Q1VITXdMWWJ5eTlXWDQ0NXlGRFZYUXBEN2pSQ1hj?=
 =?utf-8?B?OGRRVzNUNDlxTjJoQlQzS2ltM29ORXRNeGxxZS9HSXA2cmMrY1JQc0trYlJh?=
 =?utf-8?B?OTkyaEFtdytvMkk3WllxWFRxYmhjWk16WXdXVFF3UUl2NmlWVyt3alo5TG5C?=
 =?utf-8?B?QTlEYjdnNjhtOWFDOGxpM1hRR2pHVVIzL0IwSHVMU0VHVDNWZmpEazdRWEgv?=
 =?utf-8?B?R2pNYWRjOXFVRGpMb0pFOVR0QkY4aUpqTlYxRkU2QnFCeE5DUnBqcXpYYk1j?=
 =?utf-8?B?OWtzWTFPdVU4YzJjaSswOWFsckZoVVJYZVluZ1JQUFl6N1MyeDRRcUgvZXIz?=
 =?utf-8?B?ZjMrZllzV1k1T0tMWGlHMGY4UmJIb2JDZXpQdGtRTjZ1Z1lFSnhFbnd6Qkc0?=
 =?utf-8?B?a1NKRjJyZ0NSTHhvUWIyYXIyb291b29jMGdiOG1yNStTYWMxMUtOVm1YTnBZ?=
 =?utf-8?B?dlhGYytVaVNwN3ZybDBLVTNWOTFvQmdxdGdpek5pQVM4VTBHVEhFazZub0VB?=
 =?utf-8?B?anJHVGZGa2t4ZWUxaE85cEx4RWdiblVuWENNZnMvaUdrL2U4S1VCRnVHMGUw?=
 =?utf-8?B?ZFVzY0JyUTQ0UTVNRGNVRzhHVmRPQlYrMVlleXAzMVZMMnkzSnhQRWk3NzNP?=
 =?utf-8?B?alF3bWk4eVFTYXVzeUYydHRrM2FsM3ZncnJETDlHcXVEVGtma2xKZWdCcjJO?=
 =?utf-8?B?ekY3TVdwRU5EenlxcUNobGtpci9lKzFkK1lGOUdHL1lyQm1FWVprZVloSzBm?=
 =?utf-8?B?emJ5aHFsQVd6UVZPdWFCekwzeXZaU1RhRGd1N2I4UFltUUF5aTRCenZpOFVS?=
 =?utf-8?B?OTA2VEpLemxXWFBtdnVYR0ZhZTlkZmMzbThFb2k4bkI4dWhOdFhmRy9uWkc3?=
 =?utf-8?B?Q0NhUlVBUnlUOHM0OWltb0RGRy8xN0JzV2pUdkR3cm5DNWZCa0kxYk83NGla?=
 =?utf-8?B?eE5BcFM5UXQxZnZBTlF3UlhHZ1BWOHNVZFZsTXFyV1JWcVRBV1U4UjB6dEd3?=
 =?utf-8?B?UXkwa0Y0cXFDYlRYS1NCdjhVOFhOWEdGelRZelJFaE9xUjVLUE1mSHlxSWxt?=
 =?utf-8?B?Z3JVbHRXemlVQ1lobk9qMVpBWjBrUWVlS24yQjA1ZkRTbnlwYnMxSmVOVUJT?=
 =?utf-8?B?OWcyb0p5L21tNUxFYUxpeFFXQktMQTZjbU5FTVlURGpEU0E4NWRBd0F5L0h6?=
 =?utf-8?B?Nk1zZzlLZ1EzYm1SZzVuZm44bEhYcFAycWFTTWtlNzk0bC9zSVYyK2VqUFo3?=
 =?utf-8?B?YlgrUFVvVFNXY1c4ZjBONXROOWJXdVN2TlJ1Ukk5WjBMcysxK20ycHNJSThT?=
 =?utf-8?B?NTJ2UXhRaCtFSDlsUWk4Q0lxcWd1UzVRbVY4SzRxNVhON0MvaVhIUVlIQ0du?=
 =?utf-8?B?aVFOcXNZRzFzV21Id1FHeThITktWM0s0bHZmT3hPbjJ0TlJQUytQeFRDRTh1?=
 =?utf-8?B?MHh2c2xmZS9ET0NZTk0xYVllU1RHUkN4TjNWbG82SlBNaFNiZzhHYkRhWnFS?=
 =?utf-8?B?Q1BCR2JKd0FtTWRVNXhFa2VFV0dzcWhkd1lTaUkxeEFUb3Y4TDZ5Y1Y4YnZF?=
 =?utf-8?B?SUtKdWpQNTJTbzlVYmkzaFVQQkltOVRhZy9kczZXZGdkUWdwanVsR0t2SUpU?=
 =?utf-8?B?V3MrT3Rud1hFV0dXVm9rZjU1YWlkSzg2UTlUN2xWMEVxaHg2TzRqR0tSaVlv?=
 =?utf-8?B?M2R3d0JaeklZS1pPWkVOZDVnSkduQ2I3QncwbnNGVUF4L1JsSHUrRHNUcjhT?=
 =?utf-8?B?SzRHNkwraElpTW91R1VZZVNhZm9SbWNkOXRXVWVFTWNlUTVLN3k2TUxrY2Fm?=
 =?utf-8?B?VUQxV29hVHU5dUoyNGxsei9uMjg3RVllVTlTZ0pJY0tqQzZMRlJibVVoR0N0?=
 =?utf-8?B?UGpnZllpM1JqUjRGUWRrOGczaUl2bkNpQjVNOVVxR0NNSnIvdDZNMDdka0hj?=
 =?utf-8?B?aXh5TWhIbzBRPT0=?=
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)(4053099003)(13003099007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Apr 2025 21:16:25.8696
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 1a17fd67-e89a-4e28-a543-08dd7874f3ea
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:
	CY4PEPF0000EE38.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR12MB8601

--------------z5OKitUsG6XMyIF3I0T0oFij
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 8bit

On 2025-04-10 05:17, Andrew Cooper wrote:
> On 10/04/2025 1:09 am, Jason Andryuk wrote:
>> On 2025-04-09 13:01, Andrew Cooper wrote:
>>> On 09/04/2025 5:36 pm, Andrew Cooper wrote:
> 
> 6.6.74 is broken too.  (That's the revision that the ARM tests want).
> So it broke somewhere between .56 and .74 which narrows the bisect a little.
> 
> https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/1761323774
> 
> In Gitlab, both AMD and Intel are failing in roughly the same way.

Something else goes wrong in QEMU even with my patch for the hypercall, 
and Linux eventually crashes.  Lots of unhandled memory read/write in 
0x1bfffe000 - 0x1bfffeff8, which is marked unusable for dom0.  I trimmed 
lots of the consecutive "unhandled memory" from the attached log 
(313KB->22KB)

Regards,
Jason

--------------z5OKitUsG6XMyIF3I0T0oFij
Content-Type: text/x-log; charset="UTF-8"; name="qemu-pvh-dom0.log"
Content-Disposition: attachment; filename="qemu-pvh-dom0.log"
Content-Transfer-Encoding: base64

KFhFTikgWGVuIHZlcnNpb24gNC4yMS11bnN0YWJsZSAoamFuZHJ5dWtAKSAoZ2NjIChHQ0Mp
IDE0LjIuMSAyMDI1MDExMCAoUmVkIEhhdCAxNC4yLjEtNykpIGRlYnVnPXkgVGh1IEFwciAx
MCAxNjoxMjozOSBFRFQgMjAyNQooWEVOKSBMYXRlc3QgQ2hhbmdlU2V0OiBNb24gQXByIDcg
MTI6MjY6MTcgMjAyNSAtMDQwMCBnaXQ6MjBkZjI1ZDEwOS1kaXJ0eQooWEVOKSBidWlsZC1p
ZDogOTRiOTRlNTM5MmYwNjE5MTViYWJjYzQxYzI2NzMwZTliNGYyNjRkZQooWEVOKSBDb25z
b2xlIG91dHB1dCBpcyBzeW5jaHJvbm91cy4KKFhFTikgQ1BVIFZlbmRvcjogQU1ELCBGYW1p
bHkgMTUgKDB4ZiksIE1vZGVsIDEwNyAoMHg2YiksIFN0ZXBwaW5nIDEgKHJhdyAwMDA2MGZi
MSkKKFhFTikgTWljcm9jb2RlIGxvYWRpbmcgbm90IGF2YWlsYWJsZQooWEVOKSBCb290bG9h
ZGVyOiBxZW11CihYRU4pIENvbW1hbmQgbGluZTogbm9yZWJvb3QgY29uc29sZT1jb20xIHN5
bmNfY29uc29sZSBkb20wX21lbT0xRyBkb20wPXB2aCBub3JlYm9vdAooWEVOKSBYZW4gaW1h
Z2UgbG9hZCBiYXNlIGFkZHJlc3M6IDAKKFhFTikgVmlkZW8gaW5mb3JtYXRpb246CihYRU4p
ICBWR0EgaXMgdGV4dCBtb2RlIDgweDI1LCBmb250IDh4MTYKKFhFTikgIFZCRS9EREMgbWV0
aG9kczogVjEgVjI7IEVESUQgdHJhbnNmZXIgdGltZTogMSBzZWNvbmRzCihYRU4pIERpc2Mg
aW5mb3JtYXRpb246CihYRU4pICBGb3VuZCAwIE1CUiBzaWduYXR1cmVzCihYRU4pICBGb3Vu
ZCAwIEVERCBpbmZvcm1hdGlvbiBzdHJ1Y3R1cmVzCihYRU4pIFhlbi1lODIwIFJBTSBtYXA6
CihYRU4pICBbMDAwMDAwMDAwMDAwMDAwMCwgMDAwMDAwMDAwMDA5ZmJmZl0gKHVzYWJsZSkK
KFhFTikgIFswMDAwMDAwMDAwMDlmYzAwLCAwMDAwMDAwMDAwMDlmZmZmXSAocmVzZXJ2ZWQp
CihYRU4pICBbMDAwMDAwMDAwMDBmMDAwMCwgMDAwMDAwMDAwMDBmZmZmZl0gKHJlc2VydmVk
KQooWEVOKSAgWzAwMDAwMDAwMDAxMDAwMDAsIDAwMDAwMDAwN2ZmZGVmZmZdICh1c2FibGUp
CihYRU4pICBbMDAwMDAwMDA3ZmZkZjAwMCwgMDAwMDAwMDA3ZmZmZmZmZl0gKHJlc2VydmVk
KQooWEVOKSAgWzAwMDAwMDAwYjAwMDAwMDAsIDAwMDAwMDAwYmZmZmZmZmZdIChyZXNlcnZl
ZCkKKFhFTikgIFswMDAwMDAwMGZlZDFjMDAwLCAwMDAwMDAwMGZlZDFmZmZmXSAocmVzZXJ2
ZWQpCihYRU4pICBbMDAwMDAwMDBmZmZjMDAwMCwgMDAwMDAwMDBmZmZmZmZmZl0gKHJlc2Vy
dmVkKQooWEVOKSAgWzAwMDAwMDAxMDAwMDAwMDAsIDAwMDAwMDAxYmZmZmZmZmZdICh1c2Fi
bGUpCihYRU4pICBbMDAwMDAwZmQwMDAwMDAwMCwgMDAwMDAwZmZmZmZmZmZmZl0gKHJlc2Vy
dmVkKQooWEVOKSBOZXcgWGVuIGltYWdlIGJhc2UgYWRkcmVzczogMHg3ZjYwMDAwMAooWEVO
KSBBQ1BJOiBSU0RQIDAwMEY1MkQwLCAwMDE0IChyMCBCT0NIUyApCihYRU4pIEFDUEk6IFJT
RFQgN0ZGRTI0MzIsIDAwM0MgKHIxIEJPQ0hTICBCWFBDICAgICAgICAgICAgMSBCWFBDICAg
ICAgICAxKQooWEVOKSBBQ1BJOiBGQUNQIDdGRkUyMTZBLCAwMEY0IChyMyBCT0NIUyAgQlhQ
QyAgICAgICAgICAgIDEgQlhQQyAgICAgICAgMSkKKFhFTikgQUNQSTogRFNEVCA3RkZFMDA0
MCwgMjEyQSAocjEgQk9DSFMgIEJYUEMgICAgICAgICAgICAxIEJYUEMgICAgICAgIDEpCihY
RU4pIEFDUEk6IEZBQ1MgN0ZGRTAwMDAsIDAwNDAKKFhFTikgQUNQSTogQVBJQyA3RkZFMjI1
RSwgMDA4MCAocjMgQk9DSFMgIEJYUEMgICAgICAgICAgICAxIEJYUEMgICAgICAgIDEpCihY
RU4pIEFDUEk6IEhQRVQgN0ZGRTIyREUsIDAwMzggKHIxIEJPQ0hTICBCWFBDICAgICAgICAg
ICAgMSBCWFBDICAgICAgICAxKQooWEVOKSBBQ1BJOiBNQ0ZHIDdGRkUyMzE2LCAwMDNDIChy
MSBCT0NIUyAgQlhQQyAgICAgICAgICAgIDEgQlhQQyAgICAgICAgMSkKKFhFTikgQUNQSTog
SVZSUyA3RkZFMjM1MiwgMDBCOCAocjEgQk9DSFMgIEJYUEMgICAgICAgICAgICAxIEJYUEMg
ICAgICAgIDEpCihYRU4pIEFDUEk6IFdBRVQgN0ZGRTI0MEEsIDAwMjggKHIxIEJPQ0hTICBC
WFBDICAgICAgICAgICAgMSBCWFBDICAgICAgICAxKQooWEVOKSBTeXN0ZW0gUkFNOiA1MTE5
TUIgKDUyNDIzNjBrQikKKFhFTikgTm8gTlVNQSBjb25maWd1cmF0aW9uIGZvdW5kCihYRU4p
IEZha2luZyBhIG5vZGUgYXQgMDAwMDAwMDAwMDAwMDAwMC0wMDAwMDAwMWMwMDAwMDAwCihY
RU4pIERvbWFpbiBoZWFwIGluaXRpYWxpc2VkCihYRU4pIGZvdW5kIFNNUCBNUC10YWJsZSBh
dCAwMDBmNTRhMAooWEVOKSBETUkgMi44IHByZXNlbnQuCihYRU4pIFhTTSBGcmFtZXdvcmsg
djEuMC4xIGluaXRpYWxpemVkCihYRU4pIFVzaW5nIEFQSUMgZHJpdmVyIGRlZmF1bHQKKFhF
TikgQUNQSTogUE0tVGltZXIgSU8gUG9ydDogMHg2MDggKDI0IGJpdHMpCihYRU4pIEFDUEk6
IFNMRUVQIElORk86IHBtMXhfY250WzE6NjA0LDE6MF0sIHBtMXhfZXZ0WzE6NjAwLDE6MF0K
KFhFTikgQUNQSTogMzIvNjRYIEZBQ1MgYWRkcmVzcyBtaXNtYXRjaCBpbiBGQURUIC0gN2Zm
ZTAwMDAvMDAwMDAwMDAwMDAwMDAwMCwgdXNpbmcgMzIKKFhFTikgQUNQSTogICAgICAgICAg
ICAgd2FrZXVwX3ZlY1s3ZmZlMDAwY10sIHZlY19zaXplWzIwXQooWEVOKSBBQ1BJOiBMb2Nh
bCBBUElDIGFkZHJlc3MgMHhmZWUwMDAwMAooWEVOKSBBQ1BJOiBJT0FQSUMgKGlkWzB4MDBd
IGFkZHJlc3NbMHhmZWMwMDAwMF0gZ3NpX2Jhc2VbMF0pCihYRU4pIElPQVBJQ1swXTogYXBp
Y19pZCAwLCB2ZXJzaW9uIDMyLCBhZGRyZXNzIDB4ZmVjMDAwMDAsIEdTSSAwLTIzCihYRU4p
IEFDUEk6IElOVF9TUkNfT1ZSIChidXMgMCBidXNfaXJxIDAgZ2xvYmFsX2lycSAyIGRmbCBk
ZmwpCihYRU4pIEFDUEk6IElOVF9TUkNfT1ZSIChidXMgMCBidXNfaXJxIDUgZ2xvYmFsX2ly
cSA1IGhpZ2ggbGV2ZWwpCihYRU4pIEFDUEk6IElOVF9TUkNfT1ZSIChidXMgMCBidXNfaXJx
IDkgZ2xvYmFsX2lycSA5IGhpZ2ggbGV2ZWwpCihYRU4pIEFDUEk6IElOVF9TUkNfT1ZSIChi
dXMgMCBidXNfaXJxIDEwIGdsb2JhbF9pcnEgMTAgaGlnaCBsZXZlbCkKKFhFTikgQUNQSTog
SU5UX1NSQ19PVlIgKGJ1cyAwIGJ1c19pcnEgMTEgZ2xvYmFsX2lycSAxMSBoaWdoIGxldmVs
KQooWEVOKSBBQ1BJOiBJUlEwIHVzZWQgYnkgb3ZlcnJpZGUuCihYRU4pIEFDUEk6IElSUTIg
dXNlZCBieSBvdmVycmlkZS4KKFhFTikgQUNQSTogSVJRNSB1c2VkIGJ5IG92ZXJyaWRlLgoo
WEVOKSBBQ1BJOiBJUlE5IHVzZWQgYnkgb3ZlcnJpZGUuCihYRU4pIEFDUEk6IElSUTEwIHVz
ZWQgYnkgb3ZlcnJpZGUuCihYRU4pIEFDUEk6IElSUTExIHVzZWQgYnkgb3ZlcnJpZGUuCihY
RU4pIEFDUEk6IEhQRVQgaWQ6IDB4ODA4NmEyMDEgYmFzZTogMHhmZWQwMDAwMAooWEVOKSBQ
Q0k6IE1DRkcgY29uZmlndXJhdGlvbiAwOiBiYXNlIGIwMDAwMDAwIHNlZ21lbnQgMDAwMCBi
dXNlcyAwMCAtIGZmCihYRU4pIFBDSTogTUNGRyBhcmVhIGF0IGIwMDAwMDAwIHJlc2VydmVk
IGluIEU4MjAKKFhFTikgUENJOiBVc2luZyBNQ0ZHIGZvciBzZWdtZW50IDAwMDAgYnVzIDAw
LWZmCihYRU4pIFVzaW5nIEFDUEkgKE1BRFQpIGZvciBTTVAgY29uZmlndXJhdGlvbiBpbmZv
cm1hdGlvbgooWEVOKSBTTVA6IEFsbG93aW5nIDIgQ1BVcyAoMCBob3RwbHVnIENQVXMpCihY
RU4pIElSUSBsaW1pdHM6IDI0IEdTSSwgMzkyIE1TSS9NU0ktWAooWEVOKSBObyBTU0JEIGNv
bnRyb2xzIGF2YWlsYWJsZQooWEVOKSBDUFUwOiBBTUQgSzggbWFjaGluZSBjaGVjayByZXBv
cnRpbmcgZW5hYmxlZAooWEVOKSBTcGVjdWxhdGl2ZSBtaXRpZ2F0aW9uIGZhY2lsaXRpZXM6
CihYRU4pICAgSGFyZHdhcmUgaGludHM6CihYRU4pICAgSGFyZHdhcmUgZmVhdHVyZXM6CihY
RU4pICAgQ29tcGlsZWQtaW4gc3VwcG9ydDogSU5ESVJFQ1RfVEhVTksgU0hBRE9XX1BBR0lO
RyBIQVJERU5fQVJSQVkgSEFSREVOX0JSQU5DSCBIQVJERU5fR1VFU1RfQUNDRVNTIEhBUkRF
Tl9MT0NLCihYRU4pICAgWGVuIHNldHRpbmdzOiBCVEktVGh1bms6IFJFVFBPTElORSwgU1BF
Q19DVFJMOiBObywgT3RoZXI6IEJSQU5DSF9IQVJERU4KKFhFTikgICBTdXBwb3J0IGZvciBI
Vk0gVk1zOiBSU0IKKFhFTikgICBTdXBwb3J0IGZvciBQViBWTXM6IFJTQgooWEVOKSAgIFhQ
VEkgKDY0LWJpdCBQViBvbmx5KTogRG9tMCBkaXNhYmxlZCwgRG9tVSBkaXNhYmxlZCAod2l0
aG91dCBQQ0lEKQooWEVOKSAgIFBWIEwxVEYgc2hhZG93aW5nOiBEb20wIGRpc2FibGVkLCBE
b21VIGRpc2FibGVkCihYRU4pIFVzaW5nIHNjaGVkdWxlcjogU01QIENyZWRpdCBTY2hlZHVs
ZXIgcmV2MiAoY3JlZGl0MikKKFhFTikgSW5pdGlhbGl6aW5nIENyZWRpdDIgc2NoZWR1bGVy
CihYRU4pICBsb2FkX3ByZWNpc2lvbl9zaGlmdDogMTgKKFhFTikgIGxvYWRfd2luZG93X3No
aWZ0OiAzMAooWEVOKSAgdW5kZXJsb2FkX2JhbGFuY2VfdG9sZXJhbmNlOiAwCihYRU4pICBv
dmVybG9hZF9iYWxhbmNlX3RvbGVyYW5jZTogLTMKKFhFTikgIHJ1bnF1ZXVlcyBhcnJhbmdl
bWVudDogc29ja2V0CihYRU4pICBjYXAgZW5mb3JjZW1lbnQgZ3JhbnVsYXJpdHk6IDEwbXMK
KFhFTikgbG9hZCB0cmFja2luZyB3aW5kb3cgbGVuZ3RoIDEwNzM3NDE4MjQgbnMKKFhFTikg
UGxhdGZvcm0gdGltZXIgaXMgMTAwLjAwME1IeiBIUEVUCihYRU4pIERldGVjdGVkIDI2OTQu
OTU2IE1IeiBwcm9jZXNzb3IuCihYRU4pIEZyZWVkIDEwMjRrQiB1bnVzZWQgQlNTIG1lbW9y
eQooWEVOKSBhbHQgdGFibGUgZmZmZjgyZDA0MDRjNTNmOCAtPiBmZmZmODJkMDQwNGQ4NzE4
CihYRU4pIEFNRC1WaTogSU9NTVUgRXh0ZW5kZWQgRmVhdHVyZXM6CihYRU4pIC0gUHJlZmV0
Y2ggUGFnZXMgQ29tbWFuZAooWEVOKSAtIFBlcmlwaGVyYWwgUGFnZSBTZXJ2aWNlIFJlcXVl
c3QKKFhFTikgLSBJbnZhbGlkYXRlIEFsbCBDb21tYW5kCihYRU4pIC0gR3Vlc3QgQVBJQwoo
WEVOKSAtIEhhcmR3YXJlIEVycm9yIFJlZ2lzdGVycwooWEVOKSAtIEhvc3QgQWRkcmVzcyBU
cmFuc2xhdGlvbiBTaXplOiAweDIKKFhFTikgLSBHdWVzdCBBZGRyZXNzIFRyYW5zbGF0aW9u
IFNpemU6IDB4MgooWEVOKSAtIEd1ZXN0IENSMyBSb290IFRhYmxlIExldmVsOiAwCihYRU4p
IC0gTWF4aW11bSBQQVNJRDogMAooWEVOKSAtIFNNSSBGaWx0ZXIgUmVnaXN0ZXI6IDAKKFhF
TikgLSBTTUkgRmlsdGVyIFJlZ2lzdGVyIENvdW50OiAwCihYRU4pIC0gR3Vlc3QgVmlydHVh
bCBBUElDIE1vZGVzOiAwCihYRU4pIC0gRHVhbCBQUFIgTG9nOiAwCihYRU4pIC0gRHVhbCBF
dmVudCBMb2c6IDAKKFhFTikgLSBEZXZpY2UgVGFibGUgU2VnbWVudGF0aW9uOiAwCihYRU4p
IC0gTWVtb3J5IEFjY2VzcyBSb3V0aW5nIGFuZCBDb250cm9sOiAwCihYRU4pIC0gVk0gVGFi
bGUgU2l6ZTogMAooWEVOKSBBTUQtVmk6IERpc2FibGVkIEhBUCBtZW1vcnkgbWFwIHNoYXJp
bmcgd2l0aCBJT01NVQooWEVOKSBBTUQtVmk6IElPTU1VIDAgRW5hYmxlZC4KKFhFTikgSS9P
IHZpcnR1YWxpc2F0aW9uIGVuYWJsZWQKKFhFTikgIC0gRG9tMCBtb2RlOiBSZWxheGVkCihY
RU4pIEludGVycnVwdCByZW1hcHBpbmcgZW5hYmxlZAooWEVOKSBucl9zb2NrZXRzOiAxCihY
RU4pIEVuYWJsaW5nIEFQSUMgbW9kZS4gIFVzaW5nIDEgSS9PIEFQSUNzCihYRU4pIEVOQUJM
SU5HIElPLUFQSUMgSVJRcwooWEVOKSAgLT4gVXNpbmcgbmV3IEFDSyBtZXRob2QKKFhFTikg
Li5USU1FUjogdmVjdG9yPTB4RjAgYXBpYzE9MCBwaW4xPTIgYXBpYzI9LTEgcGluMj0tMQoo
WEVOKSBUU0Mgb25seSBwYXJ0aWFsbHkgd3JpdGFibGUKKFhFTikgV2FsbGNsb2NrIHNvdXJj
ZTogQ01PUyBSVEMKKFhFTikgQWxsb2NhdGVkIGNvbnNvbGUgcmluZyBvZiAxNiBLaUIuCihY
RU4pIG13YWl0LWlkbGU6IGRvZXMgbm90IHJ1biBvbiBmYW1pbHkgMTUgbW9kZWwgMTA3CihY
RU4pIEhWTTogQVNJRHMgZW5hYmxlZC4KKFhFTikgU1ZNOiBTdXBwb3J0ZWQgYWR2YW5jZWQg
ZmVhdHVyZXM6CihYRU4pICAtIG5vbmUKKFhFTikgSFZNOiBTVk0gZW5hYmxlZAooWEVOKSBI
Vk06IEhhcmR3YXJlIEFzc2lzdGVkIFBhZ2luZyAoSEFQKSBub3QgZGV0ZWN0ZWQKKFhFTikg
YWx0IHRhYmxlIGZmZmY4MmQwNDA0YzUzZjggLT4gZmZmZjgyZDA0MDRkODcxOAooWEVOKSBC
cm91Z2h0IHVwIDIgQ1BVcwooWEVOKSBTY2hlZHVsaW5nIGdyYW51bGFyaXR5OiBjcHUsIDEg
Q1BVIHBlciBzY2hlZC1yZXNvdXJjZQooWEVOKSBJbml0aWFsaXppbmcgQ3JlZGl0MiBzY2hl
ZHVsZXIKKFhFTikgIGxvYWRfcHJlY2lzaW9uX3NoaWZ0OiAxOAooWEVOKSAgbG9hZF93aW5k
b3dfc2hpZnQ6IDMwCihYRU4pICB1bmRlcmxvYWRfYmFsYW5jZV90b2xlcmFuY2U6IDAKKFhF
TikgIG92ZXJsb2FkX2JhbGFuY2VfdG9sZXJhbmNlOiAtMwooWEVOKSAgcnVucXVldWVzIGFy
cmFuZ2VtZW50OiBzb2NrZXQKKFhFTikgIGNhcCBlbmZvcmNlbWVudCBncmFudWxhcml0eTog
MTBtcwooWEVOKSBsb2FkIHRyYWNraW5nIHdpbmRvdyBsZW5ndGggMTA3Mzc0MTgyNCBucwoo
WEVOKSBBZGRpbmcgY3B1IDAgdG8gcnVucXVldWUgMAooWEVOKSAgRmlyc3QgY3B1IG9uIHJ1
bnF1ZXVlLCBhY3RpdmF0aW5nCihYRU4pIEFkZGluZyBjcHUgMSB0byBydW5xdWV1ZSAwCihY
RU4pIG1jaGVja19wb2xsOiBNYWNoaW5lIGNoZWNrIHBvbGxpbmcgdGltZXIgc3RhcnRlZC4K
KFhFTikgbXRycjogeW91ciBDUFVzIGhhZCBpbmNvbnNpc3RlbnQgZml4ZWQgTVRSUiBzZXR0
aW5ncwooWEVOKSBtdHJyOiB5b3VyIENQVXMgaGFkIGluY29uc2lzdGVudCB2YXJpYWJsZSBN
VFJSIHNldHRpbmdzCihYRU4pIG10cnI6IHlvdXIgQ1BVcyBoYWQgaW5jb25zaXN0ZW50IE1U
UlJkZWZUeXBlIHNldHRpbmdzCihYRU4pIG10cnI6IHByb2JhYmx5IHlvdXIgQklPUyBkb2Vz
IG5vdCBzZXR1cCBhbGwgQ1BVcy4KKFhFTikgbXRycjogY29ycmVjdGVkIGNvbmZpZ3VyYXRp
b24uCihYRU4pIE1UUlIgZGVmYXVsdCB0eXBlOiB3cml0ZS1iYWNrCihYRU4pIE1UUlIgZml4
ZWQgcmFuZ2VzIGVuYWJsZWQ6CihYRU4pICAgMDAwMDAtOWZmZmYgd3JpdGUtYmFjawooWEVO
KSAgIGEwMDAwLWJmZmZmIHVuY2FjaGFibGUKKFhFTikgICBjMDAwMC1mZmZmZiB3cml0ZS1w
cm90ZWN0CihYRU4pIE1UUlIgdmFyaWFibGUgcmFuZ2VzIGVuYWJsZWQ6CihYRU4pICAgMCBi
YXNlIDAwYzAwMDAwMDAgbWFzayBmZmMwMDAwMDAwIHVuY2FjaGFibGUKKFhFTikgICAxIGRp
c2FibGVkCihYRU4pICAgMiBkaXNhYmxlZAooWEVOKSAgIDMgZGlzYWJsZWQKKFhFTikgICA0
IGRpc2FibGVkCihYRU4pICAgNSBkaXNhYmxlZAooWEVOKSAgIDYgZGlzYWJsZWQKKFhFTikg
ICA3IGRpc2FibGVkCihYRU4pIFJ1bm5pbmcgc3R1YiByZWNvdmVyeSBzZWxmdGVzdHMuLi4K
KFhFTikgRml4dXAgI1VEWzAwMDBdOiBmZmZmODJkMDdmZmZlMDQ0IFtmZmZmODJkMDdmZmZl
MDQ0XSAtPiBmZmZmODJkMDQwM2E2ZWNmCihYRU4pIEZpeHVwICNHUFswMDAwXTogZmZmZjgy
ZDA3ZmZmZTA0NSBbZmZmZjgyZDA3ZmZmZTA0NV0gLT4gZmZmZjgyZDA0MDNhNmVjZgooWEVO
KSBGaXh1cCAjR1BbMDAwMF06IGZmZmY4MmQwN2ZmZmUwNDQgW2ZmZmY4MmQwN2ZmZmUwNDRd
IC0+IGZmZmY4MmQwNDAzYTZlY2YKKFhFTikgU2VsZnRlc3QgMiBmYWlsZWQ6IE9wYyBmMyAw
ZiAxZSBmYSAwMiAwNCAwNCBjMyBleHBlY3RlZCAjU1NbMDAwMF0sIGdvdCAjR1BbMDAwMF0K
KFhFTikgRml4dXAgI0JQWzAwMDBdOiBmZmZmODJkMDdmZmZlMDQ1IFtmZmZmODJkMDdmZmZl
MDQ1XSAtPiBmZmZmODJkMDQwM2E2ZWNmCihYRU4pIE5YIChFeGVjdXRlIERpc2FibGUpIHBy
b3RlY3Rpb24gYWN0aXZlCihYRU4pIGQwIGhhcyBtYXhpbXVtIDQxNiBQSVJRcwooWEVOKSAq
KiogQnVpbGRpbmcgYSBQVkggRG9tMCAqKioKKFhFTikgRG9tMCBtZW1vcnkgYWxsb2NhdGlv
biBzdGF0czoKKFhFTikgb3JkZXIgIDAgYWxsb2NhdGlvbnM6IDIKKFhFTikgb3JkZXIgIDEg
YWxsb2NhdGlvbnM6IDEKKFhFTikgb3JkZXIgIDIgYWxsb2NhdGlvbnM6IDEKKFhFTikgb3Jk
ZXIgIDMgYWxsb2NhdGlvbnM6IDEKKFhFTikgb3JkZXIgIDQgYWxsb2NhdGlvbnM6IDEKKFhF
Tikgb3JkZXIgIDUgYWxsb2NhdGlvbnM6IDEKKFhFTikgb3JkZXIgIDYgYWxsb2NhdGlvbnM6
IDEKKFhFTikgb3JkZXIgIDcgYWxsb2NhdGlvbnM6IDEKKFhFTikgb3JkZXIgIDggYWxsb2Nh
dGlvbnM6IDEKKFhFTikgb3JkZXIgIDkgYWxsb2NhdGlvbnM6IDEKKFhFTikgb3JkZXIgMTAg
YWxsb2NhdGlvbnM6IDEKKFhFTikgb3JkZXIgMTEgYWxsb2NhdGlvbnM6IDEKKFhFTikgb3Jk
ZXIgMTIgYWxsb2NhdGlvbnM6IDEKKFhFTikgb3JkZXIgMTMgYWxsb2NhdGlvbnM6IDEKKFhF
Tikgb3JkZXIgMTQgYWxsb2NhdGlvbnM6IDEKKFhFTikgb3JkZXIgMTUgYWxsb2NhdGlvbnM6
IDEKKFhFTikgb3JkZXIgMTYgYWxsb2NhdGlvbnM6IDEKKFhFTikgb3JkZXIgMTcgYWxsb2Nh
dGlvbnM6IDEKKFhFTikgRUxGOiBwaGRyOiBwYWRkcj0weDEwMDAwMDAgbWVtc3o9MHg5ZDVl
NjAKKFhFTikgRUxGOiBwaGRyOiBwYWRkcj0weDFhMDAwMDAgbWVtc3o9MHgzMTcwMDAKKFhF
TikgRUxGOiBwaGRyOiBwYWRkcj0weDFkMTcwMDAgbWVtc3o9MHgzMTkwMDAKKFhFTikgRUxG
OiBtZW1vcnk6IDB4MTAwMDAwMCAtPiAweDIwMzAwMDAKKFhFTikgRUxGOiBub3RlOiBQSFlT
MzJfRU5UUlkgPSAweDEwMDAwMDAKKFhFTikgRUxGOiBub3RlOiBHVUVTVF9PUyA9ICJsaW51
eCIKKFhFTikgRUxGOiBub3RlOiBHVUVTVF9WRVJTSU9OID0gIjIuNiIKKFhFTikgRUxGOiBu
b3RlOiBYRU5fVkVSU0lPTiA9ICJ4ZW4tMy4wIgooWEVOKSBFTEY6IG5vdGU6IFNVUFBPUlRF
RF9GRUFUVVJFUyA9IDB4ODgwMAooWEVOKSBFTEY6IG5vdGU6IExPQURFUiA9ICJnZW5lcmlj
IgooWEVOKSBFTEY6IG5vdGU6IFNVU1BFTkRfQ0FOQ0VMID0gMHgxCihYRU4pIEVMRjogRm91
bmQgUFZIIGltYWdlCihYRU4pIEVMRjogYWRkcmVzc2VzOgooWEVOKSAgICAgdmlydF9iYXNl
ICAgICAgICA9IDB4MAooWEVOKSAgICAgZWxmX3BhZGRyX29mZnNldCA9IDB4MAooWEVOKSAg
ICAgdmlydF9vZmZzZXQgICAgICA9IDB4MAooWEVOKSAgICAgdmlydF9rc3RhcnQgICAgICA9
IDB4MTAwMDAwMAooWEVOKSAgICAgdmlydF9rZW5kICAgICAgICA9IDB4MjAzMDAwMAooWEVO
KSAgICAgdmlydF9lbnRyeSAgICAgICA9IDB4MTAwMDAwMAooWEVOKSAgICAgcDJtX2Jhc2Ug
ICAgICAgICA9IDB4ZmZmZmZmZmZmZmZmZmZmZgooWEVOKSBFTEY6IHBoZHIgMCBhdCAweDEw
MDAwMDAgLT4gMHgxOWQ1ZTYwCihYRU4pIEVMRjogcGhkciAxIGF0IDB4MWEwMDAwMCAtPiAw
eDFkMTcwMDAKKFhFTikgRUxGOiBwaGRyIDIgYXQgMHgxZDE3MDAwIC0+IDB4MWU3ODQyMwoo
WEVOKSBEb20wIG1lbW9yeSBtYXA6CihYRU4pICBbMDAwMDAwMDAwMDAwMDAwMCwgMDAwMDAw
MDAwMDA5ZWZmZl0gKHVzYWJsZSkKKFhFTikgIFswMDAwMDAwMDAwMDlmYzAwLCAwMDAwMDAw
MDAwMDlmZmZmXSAocmVzZXJ2ZWQpCihYRU4pICBbMDAwMDAwMDAwMDBmMDAwMCwgMDAwMDAw
MDAwMDBmZmZmZl0gKHJlc2VydmVkKQooWEVOKSAgWzAwMDAwMDAwMDAxMDAwMDAsIDAwMDAw
MDAwNDAwNjBmMTVdICh1c2FibGUpCihYRU4pICBbMDAwMDAwMDA0MDA2MGYxNiwgMDAwMDAw
MDA0MDA2MGY5Zl0gKEFDUEkgZGF0YSkKKFhFTikgIFswMDAwMDAwMDQwMDYxMDAwLCAwMDAw
MDAwMDdmZmRlZmZmXSAodW51c2FibGUpCihYRU4pICBbMDAwMDAwMDA3ZmZkZjAwMCwgMDAw
MDAwMDA3ZmZmZmZmZl0gKHJlc2VydmVkKQooWEVOKSAgWzAwMDAwMDAwYjAwMDAwMDAsIDAw
MDAwMDAwYmZmZmZmZmZdIChyZXNlcnZlZCkKKFhFTikgIFswMDAwMDAwMGZlZDFjMDAwLCAw
MDAwMDAwMGZlZDFmZmZmXSAocmVzZXJ2ZWQpCihYRU4pICBbMDAwMDAwMDBmZmZjMDAwMCwg
MDAwMDAwMDBmZmZmZmZmZl0gKHJlc2VydmVkKQooWEVOKSAgWzAwMDAwMDAxMDAwMDAwMDAs
IDAwMDAwMDAxYmZmZmZmZmZdICh1bnVzYWJsZSkKKFhFTikgIFswMDAwMDBmZDAwMDAwMDAw
LCAwMDAwMDBmZmZmZmZmZmZmXSAocmVzZXJ2ZWQpCihYRU4pIEluaXRpYWwgbG93IG1lbW9y
eSB2aXJxIHRocmVzaG9sZCBzZXQgYXQgMHg0MDAwIHBhZ2VzLgooWEVOKSBTY3J1YmJpbmcg
RnJlZSBSQU0gaW4gYmFja2dyb3VuZAooWEVOKSBTdGQuIExvZ2xldmVsOiBBbGwKKFhFTikg
R3Vlc3QgTG9nbGV2ZWw6IEFsbAooWEVOKSAqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioKKFhFTikgV0FSTklORzogQ09OU09MRSBPVVRQVVQg
SVMgU1lOQ0hST05PVVMKKFhFTikgVGhpcyBvcHRpb24gaXMgaW50ZW5kZWQgdG8gYWlkIGRl
YnVnZ2luZyBvZiBYZW4gYnkgZW5zdXJpbmcKKFhFTikgdGhhdCBhbGwgb3V0cHV0IGlzIHN5
bmNocm9ub3VzbHkgZGVsaXZlcmVkIG9uIHRoZSBzZXJpYWwgbGluZS4KKFhFTikgSG93ZXZl
ciBpdCBjYW4gaW50cm9kdWNlIFNJR05JRklDQU5UIGxhdGVuY2llcyBhbmQgYWZmZWN0CihY
RU4pIHRpbWVrZWVwaW5nLiBJdCBpcyBOT1QgcmVjb21tZW5kZWQgZm9yIHByb2R1Y3Rpb24g
dXNlIQooWEVOKSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioKKFhFTikgU0VMRlRFU1QgRkFJTFVSRTogQ09SUkVDVCBCRUhBVklPUiBDQU5O
T1QgQkUgR1VBUkFOVEVFRAooWEVOKSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioKKFhFTikgMy4uLiAyLi4uIDEuLi4gCihYRU4pICoqKiBT
ZXJpYWwgaW5wdXQgdG8gRE9NMCAodHlwZSAnQ1RSTC1hJyB0aHJlZSB0aW1lcyB0byBzd2l0
Y2ggaW5wdXQpCihYRU4pIEZyZWVkIDY3NmtCIGluaXQgbWVtb3J5CkxpbnV4IHZlcnNpb24g
Ni42Ljg3LTAwMDAxLWdhNjA5ZGJkZTk0M2YgKGphbmRyeXVrQGZlZG9yYSkgKGdjYyAoR0ND
KSAxNC4yLjEgMjAyNTAxMTAgKFJlZCBIYXQgMTQuMi4xLTcpLCBHTlUgbGQgdmVyc2lvbiAy
LjQzLjEtNS5mYzQxKSAjMTUgUFJFRU1QVF9EWU5BTUlDIFRodSBBcHIgMTAgMTQ6Mjc6NDQg
RURUIDIwMjUKQ29tbWFuZCBsaW5lOiBjb25zb2xlPWh2YzAgZWFybHlwcmludGs9eGVuLGtl
ZXAgZGVidWcgdmVyYm9zZSBsb2dsZXZlbD05Ci0tLS0tLS0tLS0tLVsgY3V0IGhlcmUgXS0t
LS0tLS0tLS0tLQpXQVJOSU5HOiBDUFU6IDAgUElEOiAwIGF0IG1tL21lbWJsb2NrLmM6NjAz
IG1lbWJsb2NrX2FkZF9yYW5nZS5pc3JhLjArMHgxNmMvMHgzNjAKQ1BVOiAwIFBJRDogMCBD
b21tOiBzd2FwcGVyIE5vdCB0YWludGVkIDYuNi44Ny0wMDAwMS1nYTYwOWRiZGU5NDNmICMx
NQpSSVA6IDAwMTA6bWVtYmxvY2tfYWRkX3JhbmdlLmlzcmEuMCsweDE2Yy8weDM2MApDb2Rl
OiAyZSA0YyA4YiA2ZSAwOCA0OSAwMSBlZCA0YyAzOSBmZCA3MyA0ZiA0ZCAzOSBlZSA3MyA0
NSA0OSAzOSBlZSAwZiA4MiAyYyBmZiBmZiBmZiA0OSA4YiAwMSBlYiBjMCA0OCA4MyBmOCAw
MSAwZiA4NCA5NyAwMSAwMCAwMCA8MGY+IDBiIDQ4IDg5IDM3IDQ4IDhiIDQzIDE4IDRjIDg5
IDY4IDA4IDQ4IDhiIDQzIDE4IDg5IDQ4IDEwIDRjIDg5ClJTUDogMDAwMDpmZmZmZmZmZjgx
YTAzZTM4IEVGTEFHUzogMDAwMTAwMDIgT1JJR19SQVg6IDAwMDAwMDAwMDAwMDAwMDAKUkFY
OiAwMDAwMDAwMDAwMDAwMDAyIFJCWDogZmZmZmZmZmY4MWFjZDIxOCBSQ1g6IDAwMDAwMDAw
MDAwMDAwMDAKUkRYOiAwMDAwMDAwMDAxMDAwMDAwIFJTSTogMDAwMDAwMDAwMTAwMDAwMCBS
REk6IGZmZmZmZmZmODFlYjQ5NjAKUkJQOiAwMDAwMDAwMDAxMDAwMDAwIFIwODogNjIyNDcy
MjNmZjc4NzM3MyBSMDk6IGZmZmZmZmZmODFlYjQ5NjAKUjEwOiAwMDAwMDAwMDAwMDAwMDEw
IFIxMTogMDAwMDAwMDAwMDAwMDAxMCBSMTI6IGZmZmZmZmZmODFhMDNmMDAKUjEzOiAwMDAw
MDAwMDAxMDAwMDAwIFIxNDogMDAwMDAwMDAwMDAwMDAwMCBSMTU6IDAwMDAwMDAwMDFkNmRk
YTAKRlM6ICAwMDAwMDAwMDAwMDAwMDAwKDAwMDApIEdTOmZmZmZmZmZmODFhNGYwMDAoMDAw
MCkga25sR1M6MDAwMDAwMDAwMDAwMDAwMApDUzogIDAwMTAgRFM6IDAwMDAgRVM6IDAwMDAg
Q1IwOiAwMDAwMDAwMDgwMDUwMDMzCkNSMjogZmZmZjg4ODAwMWE0N2ZmOCBDUjM6IDAwMDAw
MDAwMDFkN2EwMDAgQ1I0OiAwMDAwMDAwMDAwMDAwMGEwCkNhbGwgVHJhY2U6CiA8VEFTSz4K
ID8gbWVtYmxvY2tfcmVzZXJ2ZSsweDQ2LzB4OTAKID8gc2V0dXBfYXJjaCsweDIzYi8weGI0
MAogPyBzdGFydF9rZXJuZWwrMHg1MS8weDVjMAogPyB4ODZfNjRfc3RhcnRfcmVzZXJ2YXRp
b25zKzB4MTgvMHgzMAogPyB4ODZfNjRfc3RhcnRfa2VybmVsKzB4YzMvMHhkMAogPyBzZWNv
bmRhcnlfc3RhcnR1cF82NF9ub192ZXJpZnkrMHgxMTIvMHgxMWIKIDwvVEFTSz4KLS0tWyBl
bmQgdHJhY2UgMDAwMDAwMDAwMDAwMDAwMCBdLS0tCkJJT1MtcHJvdmlkZWQgcGh5c2ljYWwg
UkFNIG1hcDoKQklPUy1lODIwOiBbbWVtIDB4MDAwMDAwMDAwMDAwMDAwMC0weDAwMDAwMDAw
MDAwOWVmZmZdIHVzYWJsZQpCSU9TLWU4MjA6IFttZW0gMHgwMDAwMDAwMDAwMDlmYzAwLTB4
MDAwMDAwMDAwMDBmZmZmZl0gcmVzZXJ2ZWQKQklPUy1lODIwOiBbbWVtIDB4MDAwMDAwMDAw
MDEwMDAwMC0weDAwMDAwMDAwNDAwNjBmMTVdIHVzYWJsZQpCSU9TLWU4MjA6IFttZW0gMHgw
MDAwMDAwMDQwMDYwZjE2LTB4MDAwMDAwMDA0MDA2MGY5Zl0gQUNQSSBkYXRhCkJJT1MtZTgy
MDogW21lbSAweDAwMDAwMDAwNDAwNjEwMDAtMHgwMDAwMDAwMDdmZmRlZmZmXSB1c2FibGUK
QklPUy1lODIwOiBbbWVtIDB4MDAwMDAwMDA3ZmZkZjAwMC0weDAwMDAwMDAwN2ZmZmZmZmZd
IHJlc2VydmVkCkJJT1MtZTgyMDogW21lbSAweDAwMDAwMDAwYjAwMDAwMDAtMHgwMDAwMDAw
MGJmZmZmZmZmXSByZXNlcnZlZApCSU9TLWU4MjA6IFttZW0gMHgwMDAwMDAwMGZlZDFjMDAw
LTB4MDAwMDAwMDBmZWQxZmZmZl0gcmVzZXJ2ZWQKQklPUy1lODIwOiBbbWVtIDB4MDAwMDAw
MDBmZmZjMDAwMC0weDAwMDAwMDAwZmZmZmZmZmZdIHJlc2VydmVkCkJJT1MtZTgyMDogW21l
bSAweDAwMDAwMDAxMDAwMDAwMDAtMHgwMDAwMDAwMWJmZmZmZmZmXSB1c2FibGUKQklPUy1l
ODIwOiBbbWVtIDB4MDAwMDAwZmQwMDAwMDAwMC0weDAwMDAwMGZmZmZmZmZmZmZdIHJlc2Vy
dmVkCnByaW50azogY29uc29sZSBbeGVuYm9vdDBdIGVuYWJsZWQKTlggKEV4ZWN1dGUgRGlz
YWJsZSkgcHJvdGVjdGlvbjogYWN0aXZlCkFQSUM6IFN0YXRpYyBjYWxscyBpbml0aWFsaXpl
ZApTTUJJT1MgMi44IHByZXNlbnQuCkRNSTogUUVNVSBTdGFuZGFyZCBQQyAoUTM1ICsgSUNI
OSwgMjAwOSksIEJJT1MgMS4xNi4zLTMuZmM0MSAwNC8wMS8yMDE0Ckh5cGVydmlzb3IgZGV0
ZWN0ZWQ6IFhlbiBIVk0KWGVuIHZlcnNpb24gNC4yMS4KdHNjOiBGYXN0IFRTQyBjYWxpYnJh
dGlvbiBmYWlsZWQKdHNjOiBEZXRlY3RlZCAyNjk0Ljk1NiBNSHogcHJvY2Vzc29yCmU4MjA6
IHVwZGF0ZSBbbWVtIDB4MDAwMDAwMDAtMHgwMDAwMGZmZl0gdXNhYmxlID09PiByZXNlcnZl
ZAplODIwOiByZW1vdmUgW21lbSAweDAwMGEwMDAwLTB4MDAwZmZmZmZdIHVzYWJsZQpsYXN0
X3BmbiA9IDB4MWMwMDAwIG1heF9hcmNoX3BmbiA9IDB4NDAwMDAwMDAwCk1UUlIgbWFwOiA0
IGVudHJpZXMgKDMgZml4ZWQgKyAxIHZhcmlhYmxlOyBtYXggMTkpLCBidWlsdCBmcm9tIDgg
dmFyaWFibGUgTVRSUnMKeDg2L1BBVDogQ29uZmlndXJhdGlvbiBbMC03XTogV0IgIFdDICBV
Qy0gVUMgIFdCICBXUCAgVUMtIFdUICAKbGFzdF9wZm4gPSAweDdmZmRmIG1heF9hcmNoX3Bm
biA9IDB4NDAwMDAwMDAwCmZvdW5kIFNNUCBNUC10YWJsZSBhdCBbbWVtIDB4MDAwZjU0YTAt
MHgwMDBmNTRhZl0KKFhFTikgYXJjaC94ODYvaHZtL2VtdWxhdGUuYzo0MDk6ZDB2MCB1bmhh
bmRsZWQgbWVtb3J5IHdyaXRlIHRvIDB4MWJmZmZmMDAwIHNpemUgOAooWEVOKSBhcmNoL3g4
Ni9odm0vZW11bGF0ZS5jOjQwOTpkMHYwIHVuaGFuZGxlZCBtZW1vcnkgd3JpdGUgdG8gMHgx
YmZmZmYwMDggc2l6ZSA4CihYRU4pIGFyY2gveDg2L2h2bS9lbXVsYXRlLmM6NDA5OmQwdjAg
dW5oYW5kbGVkIG1lbW9yeSB3cml0ZSB0byAweDFiZmZmZjAxMCBzaXplIDgKKFhFTikgYXJj
aC94ODYvaHZtL2VtdWxhdGUuYzo0MDk6ZDB2MCB1bmhhbmRsZWQgbWVtb3J5IHdyaXRlIHRv
IDB4MWJmZmZmMDE4IHNpemUgOAooWEVOKSBhcmNoL3g4Ni9odm0vZW11bGF0ZS5jOjQwOTpk
MHYwIHVuaGFuZGxlZCBtZW1vcnkgd3JpdGUgdG8gMHgxYmZmZmYwMjAgc2l6ZSA4CihYRU4p
IGFyY2gveDg2L2h2bS9lbXVsYXRlLmM6NDA5OmQwdjAgdW5oYW5kbGVkIG1lbW9yeSB3cml0
ZSB0byAweDFiZmZmZjAyOCBzaXplIDgKKFhFTikgYXJjaC94ODYvaHZtL2VtdWxhdGUuYzo0
MDk6ZDB2MCB1bmhhbmRsZWQgbWVtb3J5IHdyaXRlIHRvIDB4MWJmZmZmMDMwIHNpemUgOAoo
WEVOKSBhcmNoL3g4Ni9odm0vZW11bGF0ZS5jOjQwOTpkMHYwIHVuaGFuZGxlZCBtZW1vcnkg
d3JpdGUgdG8gMHgxYmZmZmYwMzggc2l6ZSA4Ci4uLgooWEVOKSBhcmNoL3g4Ni9odm0vZW11
bGF0ZS5jOjQwOTpkMHYwIHVuaGFuZGxlZCBtZW1vcnkgd3JpdGUgdG8gMHgxYmZmZmVmZTAg
c2l6ZSA4CihYRU4pIGFyY2gveDg2L2h2bS9lbXVsYXRlLmM6NDA5OmQwdjAgdW5oYW5kbGVk
IG1lbW9yeSB3cml0ZSB0byAweDFiZmZmZWZlOCBzaXplIDgKKFhFTikgYXJjaC94ODYvaHZt
L2VtdWxhdGUuYzo0MDk6ZDB2MCB1bmhhbmRsZWQgbWVtb3J5IHdyaXRlIHRvIDB4MWJmZmZl
ZmYwIHNpemUgOAooWEVOKSBhcmNoL3g4Ni9odm0vZW11bGF0ZS5jOjQwOTpkMHYwIHVuaGFu
ZGxlZCBtZW1vcnkgd3JpdGUgdG8gMHgxYmZmZmVmZjggc2l6ZSA4CihYRU4pIGFyY2gveDg2
L2h2bS9lbXVsYXRlLmM6NDA5OmQwdjAgdW5oYW5kbGVkIG1lbW9yeSByZWFkIGZyb20gMHgx
YmZmZmUwMDAgc2l6ZSA4CihYRU4pIGFyY2gveDg2L2h2bS9lbXVsYXRlLmM6NDA5OmQwdjAg
dW5oYW5kbGVkIG1lbW9yeSByZWFkIGZyb20gMHgxYmZmZmUwMDggc2l6ZSA4CihYRU4pIGFy
Y2gveDg2L2h2bS9lbXVsYXRlLmM6NDA5OmQwdjAgdW5oYW5kbGVkIG1lbW9yeSByZWFkIGZy
b20gMHgxYmZmZmUwMTAgc2l6ZSA4Ci4uLgooWEVOKSBhcmNoL3g4Ni9odm0vZW11bGF0ZS5j
OjQwOTpkMHYwIHVuaGFuZGxlZCBtZW1vcnkgcmVhZCBmcm9tIDB4MWJmZmZlMmU4IHNpemUg
OAooWEVOKSBhcmNoL3g4Ni9odm0vZW11bGF0ZS5jOjQwOTpkMHYwIHVuaGFuZGxlZCBtZW1v
cnkgcmVhZCBmcm9tIDB4MWJmZmZlMmYwIHNpemUgOAooWEVOKSBhcmNoL3g4Ni9odm0vZW11
bGF0ZS5jOjQwOTpkMHYwIHVuaGFuZGxlZCBtZW1vcnkgcmVhZCBmcm9tIDB4MWJmZmZlMmY4
IHNpemUgOAooWEVOKSBhcmNoL3g4Ni9odm0vZW11bGF0ZS5jOjQwOTpkMHYwIHVuaGFuZGxl
ZCBtZW1vcnkgcmVhZCBmcm9tIDB4MWJmZmZmMDAwIHNpemUgOAotLS0tLS0tLS0tLS1bIGN1
dCBoZXJlIF0tLS0tLS0tLS0tLS0KV0FSTklORzogQ1BVOiAwIFBJRDogMCBhdCBhcmNoL3g4
Ni9pbmNsdWRlL2FzbS9wZ2FsbG9jLmg6NzUgcGh5c19wbWRfaW5pdCsweDMzMy8weDM4MApD
UFU6IDAgUElEOiAwIENvbW06IHN3YXBwZXIgVGFpbnRlZDogRyAgICAgICAgVyAgICAgICAg
ICA2LjYuODctMDAwMDEtZ2E2MDlkYmRlOTQzZiAjMTUKSGFyZHdhcmUgbmFtZTogUUVNVSBT
dGFuZGFyZCBQQyAoUTM1ICsgSUNIOSwgMjAwOSksIEJJT1MgMS4xNi4zLTMuZmM0MSAwNC8w
MS8yMDE0ClJJUDogMDAxMDpwaHlzX3BtZF9pbml0KzB4MzMzLzB4MzgwCkNvZGU6IGZmIGZm
IDQ4IDg1IGY2IDc1IDBlIDQ4IGM3IGMwIDAwIDAwIDAwIDgwIDQ4IDJiIDA1IDhhIGJhIDk2
IDAwIDQ4IDhiIDMzIDQ4IDAxIGQwIDQ4IDgzIGM4IDY3IDQwIGY2IGM2IDgwIDc0IDFhIDQ4
IDM5IGM2IDc0IDkxIDwwZj4gMGIgZWIgOGQgZjcgYzIgODEgMDEgMDAgMDAgMGYgODQgMTAg
ZmUgZmYgZmYgZTkgMDQgZmUgZmYgZmYgZjcKUlNQOiAwMDAwOmZmZmZmZmZmODFhMDNjNTAg
RUZMQUdTOiAwMDAxMDA4MiBPUklHX1JBWDogMDAwMDAwMDAwMDAwMDAwMApSQVg6IDAwMDAw
MDAxYmZmZmUwNjcgUkJYOiBmZmZmODg4MWJmZmZmMDAwIFJDWDogMDAwMDAwMDA0MDA2MDAw
MApSRFg6IGZmZmY4ODgyM2ZmZmUwMDAgUlNJOiBmZmZmZmZmZmZmZmZmZmZmIFJESTogZmZm
Zjg4ODFiZmZmZTAwMApSQlA6IDAwMDAwMDAwNDAyMDAwMDAgUjA4OiAwMDAwMDAwMDAwMDAw
MDAxIFIwOTogMDAwZmZmZmZmZmZmZjAwMApSMTA6IDAwMDAwMDAwNDAwNjAwMDAgUjExOiA4
MDAwMDAwMDAwMDAwMTYzIFIxMjogMDAwMDAwMDA0MDAwMDAwMApSMTM6IDAwMDAwMDAwMDAw
MDAwMDAgUjE0OiBmZmZmODg4MWJmZmZmMDAwIFIxNTogMDAwMDAwMDA0MDA2MDAwMApGUzog
IDAwMDAwMDAwMDAwMDAwMDAoMDAwMCkgR1M6ZmZmZmZmZmY4MWE0ZjAwMCgwMDAwKSBrbmxH
UzowMDAwMDAwMDAwMDAwMDAwCkNTOiAgMDAxMCBEUzogMDAwMCBFUzogMDAwMCBDUjA6IDAw
MDAwMDAwODAwNTAwMzMKQ1IyOiBmZmZmODg4MWJmZmZmMDAwIENSMzogMDAwMDAwMDAwMWQ3
YTAwMCBDUjQ6IDAwMDAwMDAwMDAwMDAwYjAKQ2FsbCBUcmFjZToKIDxUQVNLPgogPyBwaHlz
X3B1ZF9pbml0KzB4MjhhLzB4MzkwCiA/IF9fa2VybmVsX3BoeXNpY2FsX21hcHBpbmdfaW5p
dCsweGE5LzB4MzkwCiA/IGluaXRfbWVtb3J5X21hcHBpbmcrMHgxNzIvMHg0MjAKID8gaW5p
dF9yYW5nZV9tZW1vcnlfbWFwcGluZysweGQzLzB4MTcwCiA/IGluaXRfbWVtX21hcHBpbmcr
MHgyMzIvMHgzNzAKID8gc2V0dXBfYXJjaCsweDZmOC8weGI0MAogPyBzdGFydF9rZXJuZWwr
MHg1MS8weDVjMAogPyB4ODZfNjRfc3RhcnRfcmVzZXJ2YXRpb25zKzB4MTgvMHgzMAogPyB4
ODZfNjRfc3RhcnRfa2VybmVsKzB4YzMvMHhkMAogPyBzZWNvbmRhcnlfc3RhcnR1cF82NF9u
b192ZXJpZnkrMHgxMTIvMHgxMWIKIDwvVEFTSz4KLS0tWyBlbmQgdHJhY2UgMDAwMDAwMDAw
MDAwMDAwMCBdLS0tCihYRU4pIGFyY2gveDg2L2h2bS9lbXVsYXRlLmM6NDA5OmQwdjAgdW5o
YW5kbGVkIG1lbW9yeSB3cml0ZSB0byAweDFiZmZmZjAwMCBzaXplIDgKKFhFTikgYXJjaC94
ODYvaHZtL2VtdWxhdGUuYzo0MDk6ZDB2MCB1bmhhbmRsZWQgbWVtb3J5IHJlYWQgZnJvbSAw
eDFiZmZmZjAwMCBzaXplIDgKKFhFTikgYXJjaC94ODYvaHZtL2VtdWxhdGUuYzo0MDk6ZDB2
MCB1bmhhbmRsZWQgbWVtb3J5IHJlYWQgZnJvbSAweDFiZmZmZjAwMCBzaXplIDgKKFhFTikg
YXJjaC94ODYvaHZtL2VtdWxhdGUuYzo0MDk6ZDB2MCB1bmhhbmRsZWQgbWVtb3J5IHdyaXRl
IHRvIDB4MWJmZmZmMDAwIHNpemUgOAooWEVOKSBhcmNoL3g4Ni9odm0vZW11bGF0ZS5jOjQw
OTpkMHYwIHVuaGFuZGxlZCBtZW1vcnkgcmVhZCBmcm9tIDB4MWJmZmZmMDA4IHNpemUgOAoo
WEVOKSBhcmNoL3g4Ni9odm0vZW11bGF0ZS5jOjQwOTpkMHYwIHVuaGFuZGxlZCBtZW1vcnkg
cmVhZCBmcm9tIDB4MWJmZmZmMDEwIHNpemUgOAooWEVOKSBhcmNoL3g4Ni9odm0vZW11bGF0
ZS5jOjQwOTpkMHYwIHVuaGFuZGxlZCBtZW1vcnkgcmVhZCBmcm9tIDB4MWJmZmZmMDE4IHNp
emUgOAouLi4KKFhFTikgYXJjaC94ODYvaHZtL2VtdWxhdGUuYzo0MDk6ZDB2MCB1bmhhbmRs
ZWQgbWVtb3J5IHJlYWQgZnJvbSAweDFiZmZmZmZkOCBzaXplIDgKKFhFTikgYXJjaC94ODYv
aHZtL2VtdWxhdGUuYzo0MDk6ZDB2MCB1bmhhbmRsZWQgbWVtb3J5IHJlYWQgZnJvbSAweDFi
ZmZmZmZlMCBzaXplIDgKKFhFTikgYXJjaC94ODYvaHZtL2VtdWxhdGUuYzo0MDk6ZDB2MCB1
bmhhbmRsZWQgbWVtb3J5IHJlYWQgZnJvbSAweDFiZmZmZmZlOCBzaXplIDgKKFhFTikgYXJj
aC94ODYvaHZtL2VtdWxhdGUuYzo0MDk6ZDB2MCB1bmhhbmRsZWQgbWVtb3J5IHJlYWQgZnJv
bSAweDFiZmZmZmZmMCBzaXplIDgKKFhFTikgYXJjaC94ODYvaHZtL2VtdWxhdGUuYzo0MDk6
ZDB2MCB1bmhhbmRsZWQgbWVtb3J5IHJlYWQgZnJvbSAweDFiZmZmZmZmOCBzaXplIDgKKFhF
TikgYXJjaC94ODYvaHZtL2VtdWxhdGUuYzo0MDk6ZDB2MCB1bmhhbmRsZWQgbWVtb3J5IHJl
YWQgZnJvbSAweDFiZmZmZmZmOCBzaXplIDgKKFhFTikgYXJjaC94ODYvaHZtL2VtdWxhdGUu
Yzo0MDk6ZDB2MCB1bmhhbmRsZWQgbWVtb3J5IHdyaXRlIHRvIDB4MWJmZmZmZmY4IHNpemUg
OApBQ1BJOiBFYXJseSB0YWJsZSBjaGVja3N1bSB2ZXJpZmljYXRpb24gZGlzYWJsZWQKQUNQ
STogUlNEUCAweDAwMDAwMDAwNDAwNjBGMTYgMDAwMDI0ICh2MDIgQk9DSFMgKQpBQ1BJOiBY
U0RUIDB4MDAwMDAwMDA0MDA2MEYzQSAwMDAwM0MgKHYwMSBCT0NIUyAgQlhQQyAgICAgMDAw
MDAwMDEgQlhQQyAwMDAwMDAwMSkKQUNQSTogQVBJQyAweDAwMDAwMDAwNDAwNjBGNzYgMDAw
MDhBICh2MDMgQk9DSFMgIEJYUEMgICAgIDAwMDAwMDAxIEJYUEMgMDAwMDAwMDEpCkFDUEk6
IEZBQ1AgMHgwMDAwMDAwMDdGRkUyMTZBIDAwMDBGNCAodjAzIEJPQ0hTICBCWFBDICAgICAw
MDAwMDAwMSBCWFBDIDAwMDAwMDAxKQpBQ1BJOiBEU0RUIDB4MDAwMDAwMDA3RkZFMDA0MCAw
MDIxMkEgKHYwMSBCT0NIUyAgQlhQQyAgICAgMDAwMDAwMDEgQlhQQyAwMDAwMDAwMSkKQUNQ
STogRkFDUyAweDAwMDAwMDAwN0ZGRTAwMDAgMDAwMDQwCkFDUEk6IE1DRkcgMHgwMDAwMDAw
MDdGRkUyMzE2IDAwMDAzQyAodjAxIEJPQ0hTICBCWFBDICAgICAwMDAwMDAwMSBCWFBDIDAw
MDAwMDAxKQpBQ1BJOiBSZXNlcnZpbmcgQVBJQyB0YWJsZSBtZW1vcnkgYXQgW21lbSAweDQw
MDYwZjc2LTB4NDAwNjBmZmZdCkFDUEk6IFJlc2VydmluZyBGQUNQIHRhYmxlIG1lbW9yeSBh
dCBbbWVtIDB4N2ZmZTIxNmEtMHg3ZmZlMjI1ZF0KQUNQSTogUmVzZXJ2aW5nIERTRFQgdGFi
bGUgbWVtb3J5IGF0IFttZW0gMHg3ZmZlMDA0MC0weDdmZmUyMTY5XQpBQ1BJOiBSZXNlcnZp
bmcgRkFDUyB0YWJsZSBtZW1vcnkgYXQgW21lbSAweDdmZmUwMDAwLTB4N2ZmZTAwM2ZdCkFD
UEk6IFJlc2VydmluZyBNQ0ZHIHRhYmxlIG1lbW9yeSBhdCBbbWVtIDB4N2ZmZTIzMTYtMHg3
ZmZlMjM1MV0KKFhFTikgYXJjaC94ODYvaHZtL2VtdWxhdGUuYzo0MDk6ZDB2MCB1bmhhbmRs
ZWQgbWVtb3J5IHdyaXRlIHRvIDB4MWJmZmZhMDAwIHNpemUgOAooWEVOKSBhcmNoL3g4Ni9o
dm0vZW11bGF0ZS5jOjQwOTpkMHYwIHVuaGFuZGxlZCBtZW1vcnkgd3JpdGUgdG8gMHgxYmZm
ZmEwMDggc2l6ZSA4CihYRU4pIGFyY2gveDg2L2h2bS9lbXVsYXRlLmM6NDA5OmQwdjAgdW5o
YW5kbGVkIG1lbW9yeSB3cml0ZSB0byAweDFiZmZmYTAxMCBzaXplIDgKKFhFTikgYXJjaC94
ODYvaHZtL2VtdWxhdGUuYzo0MDk6ZDB2MCB1bmhhbmRsZWQgbWVtb3J5IHdyaXRlIHRvIDB4
MWJmZmZhMDE4IHNpemUgOAooWEVOKSBhcmNoL3g4Ni9odm0vZW11bGF0ZS5jOjQwOTpkMHYw
IHVuaGFuZGxlZCBtZW1vcnkgd3JpdGUgdG8gMHgxYmZmZmEwMjAgc2l6ZSA4CihYRU4pIGFy
Y2gveDg2L2h2bS9lbXVsYXRlLmM6NDA5OmQwdjAgdW5oYW5kbGVkIG1lbW9yeSB3cml0ZSB0
byAweDFiZmZmYTAyOCBzaXplIDgKKFhFTikgYXJjaC94ODYvaHZtL2VtdWxhdGUuYzo0MDk6
ZDB2MCB1bmhhbmRsZWQgbWVtb3J5IHdyaXRlIHRvIDB4MWJmZmZhMDMwIHNpemUgOAouLi4K
KFhFTikgYXJjaC94ODYvaHZtL2VtdWxhdGUuYzo0MDk6ZDB2MCB1bmhhbmRsZWQgbWVtb3J5
IHdyaXRlIHRvIDB4MWJmZmZkZmU4IHNpemUgOAooWEVOKSBhcmNoL3g4Ni9odm0vZW11bGF0
ZS5jOjQwOTpkMHYwIHVuaGFuZGxlZCBtZW1vcnkgd3JpdGUgdG8gMHgxYmZmZmRmZjAgc2l6
ZSA4CihYRU4pIGFyY2gveDg2L2h2bS9lbXVsYXRlLmM6NDA5OmQwdjAgdW5oYW5kbGVkIG1l
bW9yeSB3cml0ZSB0byAweDFiZmZmZGZmOCBzaXplIDgKKFhFTikgYXJjaC94ODYvaHZtL2Vt
dWxhdGUuYzo0MDk6ZDB2MCB1bmhhbmRsZWQgbWVtb3J5IHJlYWQgZnJvbSAweDFiZmZmYTAw
MCBzaXplIDgKKFhFTikgYXJjaC94ODYvaHZtL2VtdWxhdGUuYzo0MDk6ZDB2MCB1bmhhbmRs
ZWQgbWVtb3J5IHJlYWQgZnJvbSAweDFiZmZmYTAwMCBzaXplIDgKQlVHOiB1bmFibGUgdG8g
aGFuZGxlIHBhZ2UgZmF1bHQgZm9yIGFkZHJlc3M6IGZmZmZmZmZmZmZmZmZmZmYKI1BGOiBz
dXBlcnZpc29yIHJlYWQgYWNjZXNzIGluIGtlcm5lbCBtb2RlCiNQRjogZXJyb3JfY29kZSgw
eDAwMDApIC0gbm90LXByZXNlbnQgcGFnZQpQR0QgMWE0NzA2NyBQNEQgMWE0NzA2NyBQVUQg
MWE0OTA2NyBQTUQgMCAKT29wczogMDAwMCBbIzFdIFBSRUVNUFQgTk9QVEkKQ1BVOiAwIFBJ
RDogMCBDb21tOiBzd2FwcGVyIFRhaW50ZWQ6IEcgICAgICAgIFcgICAgICAgICAgNi42Ljg3
LTAwMDAxLWdhNjA5ZGJkZTk0M2YgIzE1CkhhcmR3YXJlIG5hbWU6IFFFTVUgU3RhbmRhcmQg
UEMgKFEzNSArIElDSDksIDIwMDkpLCBCSU9TIDEuMTYuMy0zLmZjNDEgMDQvMDEvMjAxNApS
SVA6IDAwMTA6c3BhcnNlX2luaXQrMHhmNy8weDQ3MApDb2RlOiAwMCA0OSAzOSBjNyAwZiA4
MyBhNCAwMCAwMCAwMCA0OCA4YiAwNSBhYSBjZCAxNiAwMCA0OCA4NSBjMCA3NCAxNCA0YSA4
YiAwNCBmOCA0OCA4NSBjMCA3NCAwYiA0MSAwZiBiNiBkNiA0OCBjMSBlMiAwNCA0OCAwMSBk
MCA8NDg+IDgzIDM4IDAwIDc1IDIwIDRjIDg5IDIwIDRjIDM5IDM1IDc5IGNkIDE2IDAwIDRj
IDg5IGUyIDczIDBhIDRjClJTUDogMDAwMDpmZmZmZmZmZjgxYTAzZTY4IEVGTEFHUzogMDAw
MTAwODYKUkFYOiBmZmZmZmZmZmZmZmZmZmZmIFJCWDogMDAwMDAwMDAwMDAwMDAwMCBSQ1g6
IGZmZmY4ODgxYmZmZmEwMDAKUkRYOiAwMDAwMDAwMDAwMDAwMDAwIFJTSTogMDAwMDAwMDAw
MDAwMDAwNCBSREk6IGZmZmY4ODgxYmZmZmUwMDAKUkJQOiAwMDAwMDAwMDAwMDAwMDAwIFIw
ODogZmZmZmZmZmY4MWViNGEyMCBSMDk6IDAwMDAwMDAwMDAwMDAwMDAKUjEwOiBmZmZmODg4
MWJmZmZhMDAwIFIxMTogMDAwMDAwMDFiZmZmZTAwMCBSMTI6IDAwMDAwMDAwMDAwMDAwMDQK
UjEzOiAwMDAwMDAwMDAwMDAwMDlmIFIxNDogMDAwMDAwMDAwMDAwMDAwMCBSMTU6IDAwMDAw
MDAwMDAwMDAwMDAKRlM6ICAwMDAwMDAwMDAwMDAwMDAwKDAwMDApIEdTOmZmZmZmZmZmODFh
NGYwMDAoMDAwMCkga25sR1M6MDAwMDAwMDAwMDAwMDAwMApDUzogIDAwMTAgRFM6IDAwMDAg
RVM6IDAwMDAgQ1IwOiAwMDAwMDAwMDgwMDUwMDMzCkNSMjogZmZmZmZmZmZmZmZmZmZmZiBD
UjM6IDAwMDAwMDAwMDFhNDIwMDAgQ1I0OiAwMDAwMDAwMDAwMDAwMGIwCkNhbGwgVHJhY2U6
CiA8VEFTSz4KID8gcGFnaW5nX2luaXQrMHg5LzB4MTAKID8gc2V0dXBfYXJjaCsweDgwOS8w
eGI0MAogPyBzdGFydF9rZXJuZWwrMHg1MS8weDVjMAogPyB4ODZfNjRfc3RhcnRfcmVzZXJ2
YXRpb25zKzB4MTgvMHgzMAogPyB4ODZfNjRfc3RhcnRfa2VybmVsKzB4YzMvMHhkMAogPyBz
ZWNvbmRhcnlfc3RhcnR1cF82NF9ub192ZXJpZnkrMHgxMTIvMHgxMWIKIDwvVEFTSz4KQ1Iy
OiBmZmZmZmZmZmZmZmZmZmZmCi0tLVsgZW5kIHRyYWNlIDAwMDAwMDAwMDAwMDAwMDAgXS0t
LQpSSVA6IDAwMTA6c3BhcnNlX2luaXQrMHhmNy8weDQ3MApDb2RlOiAwMCA0OSAzOSBjNyAw
ZiA4MyBhNCAwMCAwMCAwMCA0OCA4YiAwNSBhYSBjZCAxNiAwMCA0OCA4NSBjMCA3NCAxNCA0
YSA4YiAwNCBmOCA0OCA4NSBjMCA3NCAwYiA0MSAwZiBiNiBkNiA0OCBjMSBlMiAwNCA0OCAw
MSBkMCA8NDg+IDgzIDM4IDAwIDc1IDIwIDRjIDg5IDIwIDRjIDM5IDM1IDc5IGNkIDE2IDAw
IDRjIDg5IGUyIDczIDBhIDRjClJTUDogMDAwMDpmZmZmZmZmZjgxYTAzZTY4IEVGTEFHUzog
MDAwMTAwODYKUkFYOiBmZmZmZmZmZmZmZmZmZmZmIFJCWDogMDAwMDAwMDAwMDAwMDAwMCBS
Q1g6IGZmZmY4ODgxYmZmZmEwMDAKUkRYOiAwMDAwMDAwMDAwMDAwMDAwIFJTSTogMDAwMDAw
MDAwMDAwMDAwNCBSREk6IGZmZmY4ODgxYmZmZmUwMDAKUkJQOiAwMDAwMDAwMDAwMDAwMDAw
IFIwODogZmZmZmZmZmY4MWViNGEyMCBSMDk6IDAwMDAwMDAwMDAwMDAwMDAKUjEwOiBmZmZm
ODg4MWJmZmZhMDAwIFIxMTogMDAwMDAwMDFiZmZmZTAwMCBSMTI6IDAwMDAwMDAwMDAwMDAw
MDQKUjEzOiAwMDAwMDAwMDAwMDAwMDlmIFIxNDogMDAwMDAwMDAwMDAwMDAwMCBSMTU6IDAw
MDAwMDAwMDAwMDAwMDAKRlM6ICAwMDAwMDAwMDAwMDAwMDAwKDAwMDApIEdTOmZmZmZmZmZm
ODFhNGYwMDAoMDAwMCkga25sR1M6MDAwMDAwMDAwMDAwMDAwMApDUzogIDAwMTAgRFM6IDAw
MDAgRVM6IDAwMDAgQ1IwOiAwMDAwMDAwMDgwMDUwMDMzCkNSMjogZmZmZmZmZmZmZmZmZmZm
ZiBDUjM6IDAwMDAwMDAwMDFhNDIwMDAgQ1I0OiAwMDAwMDAwMDAwMDAwMGIwCktlcm5lbCBw
YW5pYyAtIG5vdCBzeW5jaW5nOiBBdHRlbXB0ZWQgdG8ga2lsbCB0aGUgaWRsZSB0YXNrIQo=


--------------z5OKitUsG6XMyIF3I0T0oFij--


From xen-devel-bounces@lists.xenproject.org Thu Apr 10 21:37:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 21:37:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.946383.1344300 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2zaY-0008Oi-1j; Thu, 10 Apr 2025 21:37:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 946383.1344300; Thu, 10 Apr 2025 21:37: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 1u2zaX-0008OQ-O0; Thu, 10 Apr 2025 21:37:33 +0000
Received: by outflank-mailman (input) for mailman id 946383;
 Thu, 10 Apr 2025 21:37:32 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=C125=W4=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u2zaW-0008Ll-Kz
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 21:37:32 +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 014a5587-1654-11f0-9ffb-bf95429c2676;
 Thu, 10 Apr 2025 23:37:30 +0200 (CEST)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-391342fc0b5so918158f8f.3
 for <xen-devel@lists.xenproject.org>; Thu, 10 Apr 2025 14:37:30 -0700 (PDT)
Received: from localhost.localdomain (host-92-26-98-202.as13285.net.
 [92.26.98.202]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39eae9780a0sm100427f8f.50.2025.04.10.14.37.29
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 10 Apr 2025 14:37:29 -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: 014a5587-1654-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744321049; x=1744925849; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=O2OaDotK41umOfviUF7yzwa9T5+3+M0L5HXJtNxyImc=;
        b=JrHY9+U5xL4pu6u594H5EYi3nz5Qc7KgskW5cRuI+ck+s+XVusw7WEUlZ3HjHcCJab
         M9dwx5lkhES0NreQgU3xNLFGADguD4QHbFxFadiqpPZuvuBNC4bSleXEu0NvgdQEvhR5
         tX97ZOqStpllLvLwYtujIPoYL5+IVzuma0NNA=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744321049; x=1744925849;
        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=O2OaDotK41umOfviUF7yzwa9T5+3+M0L5HXJtNxyImc=;
        b=Sd+NviK+7HHWNYRviBQILK1+460oXF/zXKJH1kYZo5hg7wevbBAwiJSM9yaZd4yGKj
         /yzqgojHlG4jC7T8UAj4Cn/8EcMPBuuIAxLgb9F8Ko6xcbEj1kqznr3QB9nKckD9rNjd
         oAtyNOEL+N6vFva1N25z6GAWohe4nM1QMFSXNoNwY1Bj4uT+/sKZ7lY5sXug8nRa3ICl
         mzuVk6b0c6duFVrHtBK7zApXMNnAVBtng2EZl+mw6Ef3e04invGSoksD8j4EnF/HvfnP
         qF4jBlF8qKqlmZEJ6BliFVx61+L7KnlLBaPGKAkS96IwhtVsq60dc46v7Q6A7Frmjftu
         c5QQ==
X-Gm-Message-State: AOJu0YzWC0eWVRrCx09r8L9W7FY5zxINid/UzL+wGK65cy5mkKlzGgkj
	EYTnp4KZCLPuIc2pHnX8+H73WGv1t/tebqjYbqi3Kj4QlwuF76Mbm51d7UNh/Q1CESJUVmh6ikw
	1P1M=
X-Gm-Gg: ASbGncssj4ItsVIH97bNAj5760cvSwkdYSPCBvAgNa3YQEKdoCw7f573/+d1HtKjykD
	exi7ZcuCmqDyHOhMpxeyTn4oKejj226AHKHzaBJCht3HxylIvDFUOemPgo8xS6yW0eEA3YnWwIC
	US+Tk2fdbhZQQjrk3hwfX5BXQDuGEOvqIYosuu93XJKLT7ObumS2iYomgS/JOF5ow7npJKFez/N
	6jwZmfj5vud20mclfdxvYS+iPQSrO4oDSWC0CjWEFTctLFaanXkQUFc494bSlJrQYTWGdkzpsBX
	KvrlaWsT5ILOoQTCQ4N1ZvYtnmVtGhBCg/s/q8Pqdim1L3Hl9Srqck1Ukcyy3kDddKkP91XQVM2
	yi+Ckoo/DW0tCrNBTUwfL7/DX
X-Google-Smtp-Source: AGHT+IHeXj2OwodjCDoZRm/Aihv9FR+qeh0A5wNYoJt5fKTkBgxWEgmIyOPfWZO/cOugQ6jv+yb/oQ==
X-Received: by 2002:a05:6000:401f:b0:391:3f4f:a172 with SMTP id ffacd0b85a97d-39eaaed1ebbmr163260f8f.49.1744321049617;
        Thu, 10 Apr 2025 14:37:29 -0700 (PDT)
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?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Jason Andryuk <jason.andryuk@amd.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>
Subject: [PATCH 1/4] Rename and adjust x86 containers
Date: Thu, 10 Apr 2025 22:37:21 +0100
Message-Id: <20250410213724.2098383-2-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250410213724.2098383-1-andrew.cooper3@citrix.com>
References: <20250410213724.2098383-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Insert the Alpine version as we'll need a newer version in due course, and
rename 'rootfs' to 'base' as the container really is not a rootfs on it's own.

In base, add bash.  It's added later by the rootfs generation anyway, but this
way we can write the generation script in bash too.

In build, group and sort the packages.  Drop the ones we don't need, or are
pulled in by dependencies.  Include diffutils, findutils and gawk to avoid
warnings in the kernel build.

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: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
CC: Jason Andryuk <jason.andryuk@amd.com>
CC: Daniel P. Smith <dpsmith@apertussolutions.com>
---
 .gitlab-ci.yml                                |  4 +--
 containerize                                  |  4 +--
 images/alpine/3.18-x86_64-base.dockerfile     |  6 ++++
 ...ockerfile => 3.18-x86_64-build.dockerfile} | 32 ++++++++++++-------
 images/alpine/x86_64-rootfs.dockerfile        |  4 ---
 5 files changed, 30 insertions(+), 20 deletions(-)
 create mode 100644 images/alpine/3.18-x86_64-base.dockerfile
 rename images/alpine/{x86_64-build.dockerfile => 3.18-x86_64-build.dockerfile} (54%)
 delete mode 100644 images/alpine/x86_64-rootfs.dockerfile

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 670f9621e26d..fb997cc62162 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -28,7 +28,7 @@ stages:
   tags:
     - x86_64
   variables:
-    CONTAINER: alpine:x86_64-build
+    CONTAINER: alpine:3.18-x86_64-build
 
 #
 # ARM64 artifacts
@@ -62,7 +62,7 @@ x86_64-rootfs-alpine-3.18:
   script:
     - . scripts/x86_64-rootfs-alpine.sh
   variables:
-    CONTAINER: alpine:x86_64-rootfs
+    CONTAINER: alpine:3.18-x86_64-base
 
 x86_64-argo-linux-6.6.56:
   extends: .x86_64-artifacts
diff --git a/containerize b/containerize
index 7abeb119ff6a..c23f55ead737 100755
--- a/containerize
+++ b/containerize
@@ -25,8 +25,8 @@ die() {
 BASE="registry.gitlab.com/xen-project/hardware/test-artifacts"
 case "_${CONTAINER}" in
     _alpine-3.18-arm64-build) CONTAINER="${BASE}/alpine:3.18-arm64-build" ;;
-    _alpine-x86_64-rootfs) CONTAINER="${BASE}/alpine:x86_64-rootfs" ;;
-    _alpine-x86_64-build|_) CONTAINER="${BASE}/alpine:x86_64-build" ;;
+    _alpine-3.18-x86_64-base) CONTAINER="${BASE}/alpine:3.18-x86_64-base" ;;
+    _alpine-3.18-x86_64-build|_) CONTAINER="${BASE}/alpine:3.18-x86_64-build" ;;
 esac
 
 # Use this variable to control whether root should be used
diff --git a/images/alpine/3.18-x86_64-base.dockerfile b/images/alpine/3.18-x86_64-base.dockerfile
new file mode 100644
index 000000000000..a8cb274d5821
--- /dev/null
+++ b/images/alpine/3.18-x86_64-base.dockerfile
@@ -0,0 +1,6 @@
+# syntax=docker/dockerfile:1
+FROM --platform=linux/amd64 alpine:3.18
+LABEL maintainer.name="The Xen Project"
+LABEL maintainer.email="xen-devel@lists.xenproject.org"
+
+RUN apk --no-cache add bash
diff --git a/images/alpine/x86_64-build.dockerfile b/images/alpine/3.18-x86_64-build.dockerfile
similarity index 54%
rename from images/alpine/x86_64-build.dockerfile
rename to images/alpine/3.18-x86_64-build.dockerfile
index 98969a5be1da..eac0cda4fed3 100644
--- a/images/alpine/x86_64-build.dockerfile
+++ b/images/alpine/3.18-x86_64-build.dockerfile
@@ -1,31 +1,39 @@
 # syntax=docker/dockerfile:1
 FROM --platform=linux/amd64 alpine:3.18
-LABEL maintainer.name="The Xen Project" \
-      maintainer.email="xen-devel@lists.xenproject.org"
+LABEL maintainer.name="The Xen Project"
+LABEL maintainer.email="xen-devel@lists.xenproject.org"
 
 RUN apk --no-cache add bash
 
-RUN bash -ex <<EOF
+RUN <<EOF
+#!/bin/bash
+      set -eu
+
       adduser -D user --shell /bin/bash
 
-      DEPS=(
-            musl-dev
+      DEPS=(# Base environment
             build-base
-            libc6-compat
-            linux-headers
-            bash
-            git
             curl
-            flex
+            git
+
+            # Linux build deps
             bison
+            diffutils
             elfutils-dev
+            findutils
+            flex
+            gawk
+            linux-headers
+            openssl-dev
+            perl
+
+            # Argo build deps
             autoconf
             automake
             libtool
-            openssl-dev
       )
 
-      apk add --no-cache "\${DEPS[@]}"
+      apk add --no-cache "${DEPS[@]}"
 EOF
 
 USER user
diff --git a/images/alpine/x86_64-rootfs.dockerfile b/images/alpine/x86_64-rootfs.dockerfile
deleted file mode 100644
index b912e9c1600d..000000000000
--- a/images/alpine/x86_64-rootfs.dockerfile
+++ /dev/null
@@ -1,4 +0,0 @@
-# syntax=docker/dockerfile:1
-FROM --platform=linux/amd64 alpine:3.18
-LABEL maintainer.name="The Xen Project" \
-      maintainer.email="xen-devel@lists.xenproject.org"
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Apr 10 21:37:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 21:37:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.946386.1344330 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2zaa-0000gs-Op; Thu, 10 Apr 2025 21:37:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 946386.1344330; Thu, 10 Apr 2025 21:37:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2zaa-0000fW-IW; Thu, 10 Apr 2025 21:37:36 +0000
Received: by outflank-mailman (input) for mailman id 946386;
 Thu, 10 Apr 2025 21:37: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=C125=W4=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u2zaZ-0008Ll-BQ
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 21:37:35 +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 02b045b5-1654-11f0-9ffb-bf95429c2676;
 Thu, 10 Apr 2025 23:37:32 +0200 (CEST)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-43cfdc2c8c9so7402785e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 10 Apr 2025 14:37:32 -0700 (PDT)
Received: from localhost.localdomain (host-92-26-98-202.as13285.net.
 [92.26.98.202]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39eae9780a0sm100427f8f.50.2025.04.10.14.37.31
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 10 Apr 2025 14:37:31 -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: 02b045b5-1654-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744321052; x=1744925852; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=D17IkUr2my28TpWIQRZBF41FCJbDL7Htbn47+p4/2zc=;
        b=vhNfjnP5ImEyjm0pw4c1eSVvtqhQnW41BdsiXgU8ezXc2A6zBRnVJsbTk+4XGsthcX
         6z6dLQs4zLv1W80bkmqD2ULEHNxXqxD/gaUmqIGMyVnXQocbwEm7oH22emSRxf6tf4+M
         Vwdc9AA6YPGO2wm9wL/CA82SCELzAMXd/fS5k=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744321052; x=1744925852;
        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=D17IkUr2my28TpWIQRZBF41FCJbDL7Htbn47+p4/2zc=;
        b=EPtej3waveKS4GWagWqWJaPPqZT+roZT25LVT88pPloOYIUv3EbEYxEHkPvd65IL4H
         SbH9vyIIWK3o9wtvbWF/7MjXCm5Z9svSQoo5pQmdPFukdqEhLk8Jy7dp4qhi4021yHPA
         H267NJk3bVo4lBnsu1M2PtsRSsElA4/mqtqoA8nR4FNZDatCAx4Ks1lqjwj00gx26MuC
         ac2VJJaJIMIKIDFrKwRLGEl/15r1o/8CMIxGxeTjqQz0heE5DuXhMhiyjmn3pOHOb2c7
         NkiLYCihaJcVO1AJy23tslCJPDSdRVVVHZTxwFP0T6dRHvFzX8hLKunXssaMWTEH1Bm0
         OPdA==
X-Gm-Message-State: AOJu0YyZSQC8e/cZWTt9M1cbhgNjv9p8lF6KMh7xup6jr20sF0ZAXoje
	xW0vfdFW56utB04NacNKEd/hZwOBfnpcdHr3GfN3A7EfixAEpMsSO/hyw9H2/yVBO2MmD6QloYl
	6CGE=
X-Gm-Gg: ASbGncvw78GOH6MB+Xy+UULJRRCNEi9tJNm1UxqGzv3WLBzI/1vIaSAuYX4kSL25L0L
	eYEkSPoyn0BSs9h7rUex+5J87o8mxXefWEzvXb3rVWu7Zl4VOBVmE1q8SqJjxZ+5d4yiyM7qhv5
	d0iO1wVtIE/BBBpSRuPNMtOhLqz+aLVGD8ngpBLYWaDE04oAgWKlUecVleR1On32yxOx1E2P17P
	QWU9g1XFRBeojURFu9O+O34cZZ04hIHX0sq5Bp9SL228I0ijG+hgGyT4KXuDQ/DbwN9quCkdF3q
	L/0M0Xa9ipV+TC5bYjkRpqO1fpJhRfVi3R94sov/eT3mvbldTpxLrFZucRhlqVvt0Kn7yT8brwx
	Pz4VKi/6MXn7feVtyAYtPBOW4
X-Google-Smtp-Source: AGHT+IGIRZp3olHSsqY0SZOnyMzgDnMNtHsCxFHClUqNFDdZOJQ2BXNkvwtbK3pG1jKln6avwVSFnQ==
X-Received: by 2002:a05:600c:5249:b0:43d:7588:6687 with SMTP id 5b1f17b1804b1-43f3a93f621mr1098065e9.12.1744321052014;
        Thu, 10 Apr 2025 14:37:32 -0700 (PDT)
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?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Jason Andryuk <jason.andryuk@amd.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>
Subject: [PATCH XEN 4/4] CI: Switch to new argo artefact
Date: Thu, 10 Apr 2025 22:37:24 +0100
Message-Id: <20250410213724.2098383-5-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250410213724.2098383-1-andrew.cooper3@citrix.com>
References: <20250410213724.2098383-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

xen-argo.ko has moved into the standard location.  In the short term, simply
unpack argo.cpio.gz, but this can be simply concatinated with the base rootfs
when it is constructed in a more convenient way.

No practical change.

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: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
CC: Jason Andryuk <jason.andryuk@amd.com>
CC: Daniel P. Smith <dpsmith@apertussolutions.com>

https://gitlab.com/xen-project/hardware/xen-staging/-/jobs/9690063969

diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
index 59a2de28c864..9a533eedb941 100644
--- a/automation/gitlab-ci/test.yaml
+++ b/automation/gitlab-ci/test.yaml
@@ -240,14 +240,11 @@ xilinx-smoke-dom0-x86_64-gcc-debug-argo:
   needs:
     - alpine-3.18-gcc-debug
     - project: xen-project/hardware/test-artifacts
-      job: x86_64-kernel-linux-6.6.56
+      job: linux-6.6.56-x86_64
       ref: master
     - project: xen-project/hardware/test-artifacts
       job: x86_64-rootfs-alpine-3.18
       ref: master
-    - project: xen-project/hardware/test-artifacts
-      job: x86_64-argo-linux-6.6.56
-      ref: master
 
 adl-smoke-x86-64-gcc-debug:
   extends: .adl-x86-64
diff --git a/automation/scripts/xilinx-smoke-dom0-x86_64.sh b/automation/scripts/xilinx-smoke-dom0-x86_64.sh
index 7834ffbe0593..e97702f22827 100755
--- a/automation/scripts/xilinx-smoke-dom0-x86_64.sh
+++ b/automation/scripts/xilinx-smoke-dom0-x86_64.sh
@@ -66,7 +66,7 @@ then
     PASS_MSG="TEST: Message from DOMU"
     XEN_CMD_EXTRA="argo=1,mac-permissive=1"
     DOMU_CMD="
-insmod /root/xen-argo.ko
+insmod /lib/modules/\$(uname -r)/updates/xen-argo.ko
 until false
 do
   echo \"${PASS_MSG}\"
@@ -74,15 +74,13 @@ do
 done | argo-exec -p 28333 -d 0 -- /bin/echo
 "
     DOM0_CMD="
-insmod /root/xen-argo.ko
+insmod /lib/modules/\$(uname -r)/updates/xen-argo.ko
 xl -vvv create /etc/xen/domU.cfg
 argo-exec -l -p 28333 -- /bin/echo
 "
 copy_dom0_files ()
 {
-    cp "${WORKDIR}/binaries/xen-argo.ko" "root/"
-    cp -ar "${WORKDIR}/binaries/lib/"* "usr/local/lib/"
-    cp "${WORKDIR}/binaries/argo-exec" "usr/local/bin/"
+    zcat ${WORKDIR}/binaries/argo.cpio.gz | cpio -idv
 }
 copy_domU_files () { copy_dom0_files; }
 else


From xen-devel-bounces@lists.xenproject.org Thu Apr 10 21:37:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 21:37:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.946384.1344314 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2zaZ-0000NM-1L; Thu, 10 Apr 2025 21:37:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 946384.1344314; Thu, 10 Apr 2025 21:37:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2zaY-0000ND-UQ; Thu, 10 Apr 2025 21:37:34 +0000
Received: by outflank-mailman (input) for mailman id 946384;
 Thu, 10 Apr 2025 21:37: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=C125=W4=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u2zaX-0008Ll-JG
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 21:37:33 +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 02369862-1654-11f0-9ffb-bf95429c2676;
 Thu, 10 Apr 2025 23:37:32 +0200 (CEST)
Received: by mail-wr1-x42f.google.com with SMTP id
 ffacd0b85a97d-3914bc3e01aso697195f8f.2
 for <xen-devel@lists.xenproject.org>; Thu, 10 Apr 2025 14:37:32 -0700 (PDT)
Received: from localhost.localdomain (host-92-26-98-202.as13285.net.
 [92.26.98.202]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39eae9780a0sm100427f8f.50.2025.04.10.14.37.30
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 10 Apr 2025 14:37: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: 02369862-1654-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744321051; x=1744925851; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Nr3sOGZANa0DEvlAfKrqTmFvr3DzveYawZZlLIxI7wM=;
        b=IwMgOPL3wq/O4+1Xctg2qf+IfbOmKqyqBubbR0lZQuc2ENYGKFBTqub3tzCEpigR6G
         7w8OXx5v+D1b3UtlvqW7noO5OstSH+v8X8mq8IzPylpfNhJgpe5xeAKEZGwYcLL1O+C4
         Ialpr6cE8sY3rN1Cy8LyxiaeBcaxq0FRETFZE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744321051; x=1744925851;
        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=Nr3sOGZANa0DEvlAfKrqTmFvr3DzveYawZZlLIxI7wM=;
        b=ZZdslhW41WJx5RCoBF5pqYFQIlHAsUCxa6M9Saset3K7UuwA5kX85DuB4uCT1dE71H
         yLRnsqYmuZcWPhKIAfyd17H0Mpn9YIMjIgOJg09mgJOoqY0cl4AQHCoRW8SJfo6KVm5G
         4H5/GlGW4MCvnNsn6PYu/qApESXsMXOtnoXXe5nvSh9LpH1mUU5zJ4NUefhCPL1GCoGD
         C+AHioSgS4BFHiaEtr9SKyM8bqLU+Nv6QqzsHcpHKQV1mSQFDDUa5+eoFXO8Nhg5g267
         sud2yK2C43SnADZjKEXyHh/wrsxwWQLd1pW7XaULM3c+/+yZwxQQD2oZqAvlHcwTXikc
         CnCA==
X-Gm-Message-State: AOJu0YwEB2HisriiCwkHw/owx+b+Jxy85ODWRbwNuwelrqP3Ivk7IS3S
	UM41utqVeROoITr3EWkNcCzbQ2Um4x8Zzmn+ECjoPksOyZPGwdUM97aw50Hg19br7IuURxdIEtO
	XWIY=
X-Gm-Gg: ASbGncs6JZN8Wptpj6QXd4SlkzOELh8lRVu3m4VsuQF9NW63aegieQrP+A9xrI1X2hM
	u904pTHE68ZQG04DoXGpG3WaeiuamHPtNaoP55P0RODvaiVyl5DrKy/Z4+/UsnqxKMloveMHakH
	5YwinSoNCdIrw2xKi0d+2O1r1v6LN2AfQseEnUoD+6Z6rZHUHq74HKhzF7W6xGRN0n15RgWfNg+
	9VXdtR9QvOidlKklqPpbjBji7ica4IGP7ugbxT6XBptUOcH/x3XlQX+wEUcn9QMNmIRju6cBFix
	/W5NMupOEBRD63dvSV4Xk0kJWBPI4OjL2yvioAEAxQ4/RAosn8XaijWE9vcZNPKnVUPYKt1Yovc
	8ReG1Qa6T0uKNvQ==
X-Google-Smtp-Source: AGHT+IGS6VzZxRdAxk0y6aF/KnygVxAeBVRoxa28JHprLKXTrW4IjEUHdIdZHHhw+Qc2qJU6XGmLGA==
X-Received: by 2002:a05:6000:1a88:b0:391:3cb7:d441 with SMTP id ffacd0b85a97d-39ea5212b03mr175108f8f.25.1744321051269;
        Thu, 10 Apr 2025 14:37:31 -0700 (PDT)
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?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Jason Andryuk <jason.andryuk@amd.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>
Subject: [PATCH 3/4] Switch to fixed Argo
Date: Thu, 10 Apr 2025 22:37:23 +0100
Message-Id: <20250410213724.2098383-4-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250410213724.2098383-1-andrew.cooper3@citrix.com>
References: <20250410213724.2098383-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

https://github.com/OpenXT/linux-xen-argo/pull/21

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: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
CC: Jason Andryuk <jason.andryuk@amd.com>
CC: Daniel P. Smith <dpsmith@apertussolutions.com>

Probably not for applying, but it would be really good if we could make these
bugs go away.
---
 .gitlab-ci.yml        | 2 +-
 scripts/build-argo.sh | 3 +--
 2 files changed, 2 insertions(+), 3 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 790a6d9f9896..1d2c72b268a3 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -47,7 +47,7 @@ linux-6.6.56-x86_64:
   script: ./scripts/build-linux.sh
   variables:
     LINUX_VERSION: 6.6.56
-    ARGO_SHA: "705a7a8a624b42e13e655d3042059b8a85cdf6a3"
+    ARGO_SHA: "ca5473a56f62e2b4d59697c8552d151391d3fec1"
     ARGOEXEC_SHA: "d900429f6640acc6f68a3d3a4c945d7da60625d8"
 
 #
diff --git a/scripts/build-argo.sh b/scripts/build-argo.sh
index 0b4005f3b9a0..a18a259779c6 100644
--- a/scripts/build-argo.sh
+++ b/scripts/build-argo.sh
@@ -11,7 +11,7 @@ cd "${WORKDIR}"
 #
 ARGODIR="${WORKDIR}/argo-root"
 
-git clone https://github.com/OpenXT/linux-xen-argo.git --depth=1
+git clone https://github.com/andyhhp/linux-xen-argo.git --depth=1
 git -C "${WORKDIR}/linux-xen-argo" fetch origin "${ARGO_SHA}"
 git -C "${WORKDIR}/linux-xen-argo" switch --detach FETCH_HEAD
 
@@ -20,7 +20,6 @@ git -C "${WORKDIR}/linux-xen-argo" switch --detach FETCH_HEAD
 make -C "linux-${LINUX_VERSION}" \
      M="${WORKDIR}/linux-xen-argo/argo-linux" \
      KBUILD_MODPOST_WARN=1 \
-     CFLAGS_MODULE="-Wno-error" \
      modules
 install -D -m644 "${WORKDIR}/linux-xen-argo/argo-linux/xen-argo.ko" \
      "${ARGODIR}/lib/modules/${LINUX_VERSION}/updates/xen-argo.ko"
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Apr 10 21:37:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 21:37:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.946385.1344324 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2zaa-0000bo-9m; Thu, 10 Apr 2025 21:37:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 946385.1344324; Thu, 10 Apr 2025 21:37:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2zaa-0000bf-6V; Thu, 10 Apr 2025 21:37:36 +0000
Received: by outflank-mailman (input) for mailman id 946385;
 Thu, 10 Apr 2025 21:37: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=C125=W4=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u2zaY-0008Ll-CZ
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 21:37:34 +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 00d12e97-1654-11f0-9ffb-bf95429c2676;
 Thu, 10 Apr 2025 23:37:29 +0200 (CEST)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-43edb40f357so11460755e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 10 Apr 2025 14:37:29 -0700 (PDT)
Received: from localhost.localdomain (host-92-26-98-202.as13285.net.
 [92.26.98.202]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39eae9780a0sm100427f8f.50.2025.04.10.14.37.28
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 10 Apr 2025 14:37:28 -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: 00d12e97-1654-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744321049; x=1744925849; 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=KsA32EZ7RzMR5uxIf7T/6UhKmIGBK1+HzdGcMXVGVW0=;
        b=uHhO86u4HRGRu2kA+kA8CDqq6a9hCKDJe5sr6REKa/Udv11k8sFyUnAjSexRM3A/KG
         O6l6soRGny0vVh06psPdyZuF6ewldHXj/fyJRNfejxD39TLudNDnNkISzWI65g0N6wPn
         m63mqjBDAqun54zKuFjtotnvzSuZDwX3+QlTk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744321049; x=1744925849;
        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=KsA32EZ7RzMR5uxIf7T/6UhKmIGBK1+HzdGcMXVGVW0=;
        b=mzREl2NXSNTlWSg1SkMJ2vt8Mn6g/gAdjJG9JB1PU2PrOGyFFj9vrYiXnt3uS2uTn+
         zmuil4CkwBHZruNS4PCwlWT/Vigv1S09CoSRsMBgcvOYjKyFXjIn4TENuWpT4aZCWwIZ
         RhBTyzIdarmdSagv/xJ8VHp4WZJYEqaMkz68usB8CnDJyqqw4mzZfhtf1QQl1yu++oDl
         dDAhcd67plMxUTfyY2rfvNr0fnQgahL+cZxG3CYYz5gsL+QhPOjHAb1/RKn51JG/tqyr
         I1Alql4jtZzvY330YUS/Z/fHqsGmHzzeCdPP5ulCtfGcVBnafrvNNDRSj5rp6lulkXBh
         Bptg==
X-Gm-Message-State: AOJu0Yy+rHII4WDAJcaEyVLFMy8YGSn7LWLwBdjWeLhcwhBFlb7jzyRs
	CcxMQPBKluJ4MeYGqRlkM/umU2VJWFTZnZcwgy4y4v4kFOdci8G10fWBNi6ZVqNXtRSOrtHg6bN
	7E9Y=
X-Gm-Gg: ASbGnctAPKzivMstR1cmesT1rFmwRyhiQQz+ZR8t99PoPF8wRuXqTCaYH8JXsr1emhZ
	OkVrAn2xJZEMd6758g+heRdW5rucaXXkzdGcL/SwFuP1fB/jQfw93kFzgWKgnpmWeIh4uoFRbcQ
	Vx2Xp47VdsJDWtpASx3ow/mvBXUmidyXB+BNB8iZ45JkT6XslELCRYSrEl4aBAP+ontQIaN+tEN
	KeOKyPdurgcpypj/XmewLX41dhdEyXPacCg8/KldkfYaLDF9tSAUjZUXqJzMByOrq+XrZZlnNxn
	5lNBj3uRVYILRwQCVyVqHPT08bkQvQ2jB7L3KLF37c+2XkiMmv0rieiai4MS76qEmx6xqkBkwjb
	4lsdRjqv1kvEJXuSBJHAOKpXl
X-Google-Smtp-Source: AGHT+IF8EITuAPf6schwPsC20fUR6Lrki2nwXNbNlxBTcOi8so7ZMcS4zMxVU9H/X0bBTYaZw0ZydQ==
X-Received: by 2002:a05:600c:83cf:b0:43d:79:ae1b with SMTP id 5b1f17b1804b1-43f3a94de15mr1344155e9.14.1744321048868;
        Thu, 10 Apr 2025 14:37:28 -0700 (PDT)
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?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Jason Andryuk <jason.andryuk@amd.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>
Subject: [PATCH TEST-ARTEFACTS 0/4] Argo artefact
Date: Thu, 10 Apr 2025 22:37:20 +0100
Message-Id: <20250410213724.2098383-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

Part 2 of the cleanup, reworking Argo.

https://gitlab.com/xen-project/hardware/xen-staging/-/jobs/9690063969

Andrew Cooper (3):
  Rename and adjust x86 containers
  Overhaul how Argo is built and packged
  Switch to fixed Argo

 .gitlab-ci.yml                                |  6 +-
 containerize                                  |  4 +-
 images/alpine/3.18-x86_64-base.dockerfile     |  6 ++
 ...ockerfile => 3.18-x86_64-build.dockerfile} | 32 +++++----
 images/alpine/x86_64-rootfs.dockerfile        |  4 --
 scripts/build-argo.sh                         | 66 +++++++++++++++++++
 scripts/build-linux.sh                        |  6 +-
 7 files changed, 103 insertions(+), 21 deletions(-)
 create mode 100644 images/alpine/3.18-x86_64-base.dockerfile
 rename images/alpine/{x86_64-build.dockerfile => 3.18-x86_64-build.dockerfile} (54%)
 delete mode 100644 images/alpine/x86_64-rootfs.dockerfile
 create mode 100644 scripts/build-argo.sh

-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Apr 10 21:37:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 21:37:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.946382.1344294 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2zaX-0008M6-Kh; Thu, 10 Apr 2025 21:37:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 946382.1344294; Thu, 10 Apr 2025 21:37: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 1u2zaX-0008Lz-HJ; Thu, 10 Apr 2025 21:37:33 +0000
Received: by outflank-mailman (input) for mailman id 946382;
 Thu, 10 Apr 2025 21:37: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=C125=W4=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u2zaW-0008Lk-Jh
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 21:37:32 +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 01c67ee5-1654-11f0-9eac-5ba50f476ded;
 Thu, 10 Apr 2025 23:37:31 +0200 (CEST)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-43cef035a3bso9589305e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 10 Apr 2025 14:37:31 -0700 (PDT)
Received: from localhost.localdomain (host-92-26-98-202.as13285.net.
 [92.26.98.202]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39eae9780a0sm100427f8f.50.2025.04.10.14.37.29
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 10 Apr 2025 14:37: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: 01c67ee5-1654-11f0-9eac-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744321050; x=1744925850; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=xV671OWsZPCz48qmFfXSAWovXOQaZ6EW+7MHCndadN0=;
        b=IgCwI6NdaoATUmngf/vNYe+x9mttRVhvS6B0pBIpPuo5uRAQWE9v0y3BQ2GuSs++9k
         9xg+CxQj3xu/60WaCuy4nfLC6/rzDWEylxeCz6F5I7uNfhouLSY9xfrcq5siYzqLgaAe
         Yd47yvVsdrR5UJAlV6ZoGwGhpc49aHQAj4us8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744321050; x=1744925850;
        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=xV671OWsZPCz48qmFfXSAWovXOQaZ6EW+7MHCndadN0=;
        b=Esyvcr+cLT5xL7DzSP18Ry8Tn/e75H9kaaYN0+ZJyvULV2AQ0sqPcBQz1WQpeeU8Sq
         Foodk2+gHzoeDMAF1VPTfVvxWPKBfO2sjbhKxCW4A7R06zCg6HR9+Oh1opl3D6bWFiEd
         aEKysxMQKn9mtSZSzodiFXdb5XysTUgelwmq/ihZkfd5WpVwoQ2pUlcJfH+S49Q8XcJr
         A0k1S4qdj0/Q5V5Qcp7fBhBCMlRHFbbSlDytaJ+dJsOW6SGkeUa7X6w1l+jGW2xNLFK6
         TM9hiHw9mKImVYe4CCZpFrCuVGoTxub+s3HVO2VZl8hSEm5r4ogkD25YoDE/wSwcyFlL
         9eIw==
X-Gm-Message-State: AOJu0YzbCgOX068IpA/6TefyPVD8PPDFpVOpYQIhhYwRak+EBnGfFt3j
	Tw8DVYUgu+k1IgBLjtYqtFl3BoKUWkKf+MtpTJpLi6hl9lsRHjK7BET/6BT26t3xuOjP04PxE5v
	kfuk=
X-Gm-Gg: ASbGncsCkmzn/6l1izjfT4S5i89vdrAT4rcPsbn3j4sfj+ihzyEq6NB3Cxu93s4h8F+
	IKaGxWbZ/qEZjS3SjJd0AgL66+C06+0I7Bsjk9iQD6CVehwd4oJh9rjxXwgua4fqrTeasHDuqhK
	dDr+5gDoHZ7WsDAusWOehHwOIEOaMJZ73PoAL+vCXBGHxISSBUQucb2OpobhkDFM1nffYdd8WVz
	g9AUZCzV4Um5AbNjIUwAnTxZ1IInka7gT3h+ExyeHXUnD7dDdbpcJyWCwGybHzO9osHePxozJih
	1H1k5P5FaC4iIbAfhbqilN/Q5rPEzFy8J3REKSlkxMbBjlYVbxufnPbUzYItNznYbvx4SlD7O0C
	EYoefV9wPMaxtvMMgOqm0z1tH
X-Google-Smtp-Source: AGHT+IECMtO23JY0XskOeZwL58XeaLKbykah1JSxnjUgUWHdV33sbRKTKFF0RSZnnD+qP1yrqYe5Mg==
X-Received: by 2002:a05:600c:3baa:b0:43c:efed:732c with SMTP id 5b1f17b1804b1-43f3a9b0285mr936615e9.28.1744321050452;
        Thu, 10 Apr 2025 14:37:30 -0700 (PDT)
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?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Jason Andryuk <jason.andryuk@amd.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>
Subject: [PATCH 2/4] Overhaul how Argo is built and packged
Date: Thu, 10 Apr 2025 22:37:22 +0100
Message-Id: <20250410213724.2098383-3-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250410213724.2098383-1-andrew.cooper3@citrix.com>
References: <20250410213724.2098383-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Right now, the argo artefacts are a pile of files which the test has to turn
back into something which resembles a filesystem.  Furthermore, because we do
not build modules for the main kernel, it is extra important to make sure that
xen-argo.ko doesn't get out of sync.

Build argo unconditionally as part of the linux artefact.  It's ~100kb all
together, compared to ~14M for the kernel.

Produce a single argo.cpio.gz with xen-argo.ko in the standard location.
Prune userspace down to just the executables and libraries.

This is cribbed from the existing scripts/x86_64-linux-argo.sh, which stays in
place in the short term until Xen can be updated to use the new scheme.

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: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
CC: Jason Andryuk <jason.andryuk@amd.com>
CC: Daniel P. Smith <dpsmith@apertussolutions.com>

I tried to make MODPOST work properly, but we don't build enough of it for the
kernel, and I didn't feel like adding an extra 10 mins to the build (all
modules) just to get the metadata right.
---
 .gitlab-ci.yml         |  2 ++
 scripts/build-argo.sh  | 67 ++++++++++++++++++++++++++++++++++++++++++
 scripts/build-linux.sh |  6 +++-
 3 files changed, 74 insertions(+), 1 deletion(-)
 create mode 100644 scripts/build-argo.sh

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index fb997cc62162..790a6d9f9896 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -47,6 +47,8 @@ linux-6.6.56-x86_64:
   script: ./scripts/build-linux.sh
   variables:
     LINUX_VERSION: 6.6.56
+    ARGO_SHA: "705a7a8a624b42e13e655d3042059b8a85cdf6a3"
+    ARGOEXEC_SHA: "d900429f6640acc6f68a3d3a4c945d7da60625d8"
 
 #
 # The jobs below here are legacy and being phased out.
diff --git a/scripts/build-argo.sh b/scripts/build-argo.sh
new file mode 100644
index 000000000000..0b4005f3b9a0
--- /dev/null
+++ b/scripts/build-argo.sh
@@ -0,0 +1,67 @@
+#
+# This is a partial script, sourced by build-linux.sh
+# It has expectations about the environment
+#
+
+cd "${WORKDIR}"
+
+#
+# We're going to collect everything in argo.cpio.gz.  Construct it under
+# $ARGODIR as we go.
+#
+ARGODIR="${WORKDIR}/argo-root"
+
+git clone https://github.com/OpenXT/linux-xen-argo.git --depth=1
+git -C "${WORKDIR}/linux-xen-argo" fetch origin "${ARGO_SHA}"
+git -C "${WORKDIR}/linux-xen-argo" switch --detach FETCH_HEAD
+
+# Build xen-argo.ko against the target kernel, and install it.  Install
+# linux/argo.h too because userspace needs it.
+make -C "linux-${LINUX_VERSION}" \
+     M="${WORKDIR}/linux-xen-argo/argo-linux" \
+     KBUILD_MODPOST_WARN=1 \
+     CFLAGS_MODULE="-Wno-error" \
+     modules
+install -D -m644 "${WORKDIR}/linux-xen-argo/argo-linux/xen-argo.ko" \
+     "${ARGODIR}/lib/modules/${LINUX_VERSION}/updates/xen-argo.ko"
+install -D -m644 "${WORKDIR}/linux-xen-argo/argo-linux/include/linux/argo.h" \
+     "${ARGODIR}/usr/include/linux/argo.h"
+
+# Build and install libargo, applying fixes to build in Alpine Linux
+cd "${WORKDIR}/linux-xen-argo/libargo"
+sed -e "s|AM_INIT_AUTOMAKE|AC_CONFIG_AUX_DIR(.)\nAM_INIT_AUTOMAKE|" \
+    -i configure.ac
+sed -e "s/__SOCKADDR_COMMON (sxenargo_)/sa_family_t sxenargo_family/" \
+    -e "s/__SOCKADDR_COMMON_SIZE/(sizeof (unsigned short int))/" \
+    -i src/libargo.h
+
+autoreconf --install
+./configure --prefix=/usr CPPFLAGS="-I${PWD}/../argo-linux/include"
+make
+make install DESTDIR="${ARGODIR}"
+
+# Build and install argo-exec, modifying for xilinx argo test
+cd "${WORKDIR}"
+curl -fsSLO \
+    https://raw.githubusercontent.com/OpenXT/xenclient-oe/${ARGOEXEC_SHA}/recipes-openxt/argo-exec/argo-exec/argo-exec.c
+sed -e "/#include <xen\/xen.h>/d" \
+    -e "s|ret = shuffle(s, fds\[0\], fds\[1\]);|ret = shuffle(s, 0, 1);|" \
+    -i argo-exec.c
+
+gcc -I"${ARGODIR}/usr/include" -L"${ARGODIR}/usr/lib/" \
+    argo-exec.c -o "${ARGODIR}/usr/bin/argo-exec" -largo
+
+#
+# Building is now complete.  Strip the devel components and the nointerposer
+# lib, which we don't care to deploy to the test system.
+#
+cd $ARGODIR
+rm -r usr/include usr/lib/pkgconfig
+find usr/lib -name \*nointerposer\* -delete
+find usr/lib \( -name \*.a -o -name \*.so -o -name \*.la \) -delete
+
+# Package everything up
+find . | cpio -R 0:0 -H newc -o | gzip > "$COPYDIR/argo.cpio.gz"
+
+# Print the contents for the build log
+zcat "$COPYDIR/argo.cpio.gz" | cpio -tv
diff --git a/scripts/build-linux.sh b/scripts/build-linux.sh
index 652fdba7b9d1..49b5ebed6424 100755
--- a/scripts/build-linux.sh
+++ b/scripts/build-linux.sh
@@ -8,7 +8,7 @@ fi
 set -ex -o pipefail
 
 WORKDIR="${PWD}"
-COPYDIR="${WORKDIR}/binaries/"
+COPYDIR="${WORKDIR}/binaries"
 UNAME=$(uname -m)
 
 # Build Linux
@@ -45,6 +45,10 @@ case $UNAME in
     x86_64)
         make -j$(nproc) bzImage
         cp arch/x86/boot/bzImage "${COPYDIR}"
+
+        # Build argo
+        make modules_prepare
+        . "${WORKDIR}/scripts/build-argo.sh"
         ;;
 
     aarch64)
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Apr 10 21:49:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 21:49:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.946442.1344344 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2zmL-0005fp-OB; Thu, 10 Apr 2025 21:49:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 946442.1344344; Thu, 10 Apr 2025 21:49:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2zmL-0005fi-L2; Thu, 10 Apr 2025 21:49:45 +0000
Received: by outflank-mailman (input) for mailman id 946442;
 Thu, 10 Apr 2025 21:49: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=C125=W4=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u2zmK-0005fJ-Ck
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 21:49:44 +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 b6003000-1655-11f0-9eac-5ba50f476ded;
 Thu, 10 Apr 2025 23:49:43 +0200 (CEST)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-43edb40f357so11513475e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 10 Apr 2025 14:49:43 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39eae979663sm124801f8f.51.2025.04.10.14.49.41
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 10 Apr 2025 14:49:42 -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: b6003000-1655-11f0-9eac-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744321782; x=1744926582; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=nMfJln3Sct3YglmkwCjpkNwOf2rm/ISmDcPrPVVbhIc=;
        b=TOQQQlShyivBzb+0l7Mah/SIcuKd3hBtBoqe5aM1oZQFUtwqEuJA4T3PjM5tF5K8nA
         9bFBEpBGQFdFiknYPPbwoXQUDWccQM6rlMjA+jr2jdZ+P5XVQTUTIt4agPnBGsmIobQv
         rwwUEa+DG4qdPeZMg/8WTWSM8gZNOUuJ/c+9Y=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744321782; x=1744926582;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=nMfJln3Sct3YglmkwCjpkNwOf2rm/ISmDcPrPVVbhIc=;
        b=EiVhQxtQ4rN/xU/TM6vtGxwur8y89IAd5mj6tLwSYw1WojcqKAA6TkeML/QFeOUUZB
         YIKxoH+iMaELL3+nBMoPk97vUKY4P+od+domG5sgf9sXslKi4M8d6u5J+dsYj+fqIeh0
         wiVXzDtFgomddn6MEXTdoQozCPuEFEMMQvumbCzqM0eRKALg13WoA5oCuUGdPOZV4Bxd
         X47027XNtbxSwuVxk0IhhvApXV5wP7PMiL/wlJfpHC73Emb3JuVF4RYzNT36eg1WNOW6
         G0e5qbgOBPfO9Bob6hekhstfziXqiu4uwOq2MGpO1aC43PfA0Fuejr14a4c2wBHYfBV2
         XZzA==
X-Forwarded-Encrypted: i=1; AJvYcCXkm5e5ZlXWAyXYvdX9DeHlNX9QTbjzWWL1CR/64Ht2fJnNHh82sxDSRInDG3rP6XMKH4RPMHT3Tds=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy7vg6jeatKdxQr2k55xVD4/VXMjgNUOumb29aU7uduqEuzPcs6
	SSFDOXygRllpIJMpfWbB+yVwvlXBgGurUltHhytAr0XLeDmUmentcBnPqA/5KDk=
X-Gm-Gg: ASbGncslgJD69TnGGdwHzZ7g0/G17P3QHSbu8507aOUlJ7Ciap39Y/+q8Z8Ggiyy0JV
	FlwZktnnJMHAbMgVE7TDTe/kfvbigjQVnP8bfu2rXYbx/RnCEwA/PbLRAh3DpStkCjuey4wdqPg
	8qSna9qMkzDqybqSAlODOSHkisYXQvmxZ6Gtbe6vBig557W4aFH9yI8AYoSNDaAY7hzStk4JHwe
	e4uou15hNV1TL8kSc1ohLec1Y2Szagm5cZE6EZozCKwYIDgxgXCzf5bAX8uxZcFQkRh9Eklkpyf
	D/hLgFjaVUplIcu8aQMhlb+3pFFE9Z9yqLAD5x3za4LuDtrlS3UEIhPFT9NeLidu51yEk40xbNj
	Fu3rPfg==
X-Google-Smtp-Source: AGHT+IG0D3qgBS6iBIOEF2/q7SVPA7NNrGacp1zU5JG7r47QTlLjskRzJtJPWJ1Ohv5srl4TEVoj5w==
X-Received: by 2002:a05:600c:a04:b0:43d:42b:e186 with SMTP id 5b1f17b1804b1-43f3a93f257mr1069115e9.8.1744321782582;
        Thu, 10 Apr 2025 14:49:42 -0700 (PDT)
Message-ID: <84c03f50-638b-4df4-af52-8f79bf00dc20@citrix.com>
Date: Thu, 10 Apr 2025 22:49:41 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH] x86/xen: Fix PVH dom0 xen_hypercall detection
To: Jason Andryuk <jason.andryuk@amd.com>, agarciav@amd.com, jgross@suse.com
Cc: anthony.perard@vates.tech, marmarek@invisiblethingslab.com,
 michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org,
 xen-devel@lists.xenproject.org, Ard Biesheuvel <ardb@kernel.org>
References: <D9366FPHFS9F.2OP8KH7C8OJTF@amd.com>
 <20250410195012.363658-1-jason.andryuk@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: <20250410195012.363658-1-jason.andryuk@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 10/04/2025 8:50 pm, Jason Andryuk wrote:
> A Xen PVH dom0 on an AMD processor triple faults early in boot on
> 6.6.86.  CPU detection appears to fail, as the faulting instruction is
> vmcall in xen_hypercall_intel() and not vmmcall in xen_hypercall_amd().
>
> Detection fails because __xen_hypercall_setfunc() returns the full
> kernel mapped address of xen_hypercall_amd() or xen_hypercall_intel() -
> e.g. 0xffffffff815b93f0.  But this is compared against the rip-relative
> xen_hypercall_amd(%rip), which when running from identity mapping, is
> only 0x015b93f0.
>
> Replace the rip-relative address with just loading the actual address to
> restore the proper comparision.
>
> This only seems to affect PVH dom0 boot.  This is probably because the
> XENMEM_memory_map hypercall is issued early on from the identity
> mappings.  With a domU, the memory map is provided via hvm_start_info
> and the hypercall is skipped.  The domU is probably running from the
> kernel high mapping when it issues hypercalls.
>
> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
> ---
> I think this sort of address mismatch would be addresed by
> e8fbc0d9cab6 ("x86/pvh: Call C code via the kernel virtual mapping")
>
> That could be backported instead, but it depends on a fair number of
> patches.

I've just spoken to Ard, and he thinks that it's standalone.  Should be
ok to backport as a fix.

> Not sure on how getting a patch just into 6.6 would work.  This patch
> could go into upstream Linux though it's not strictly necessary when the
> rip-relative address is a high address.

Do we know which other trees are broken?  I only found 6.6 because I was
messing around with other bits of CI that happen to use 6.6.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Apr 10 21:50:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 21:50:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.946452.1344353 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u2znP-0007p8-1R; Thu, 10 Apr 2025 21:50:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 946452.1344353; Thu, 10 Apr 2025 21: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 1u2znO-0007p1-UU; Thu, 10 Apr 2025 21:50:50 +0000
Received: by outflank-mailman (input) for mailman id 946452;
 Thu, 10 Apr 2025 21:50:49 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Z2Tv=W4=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1u2znN-0007fI-AB
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 21:50:49 +0000
Received: from NAM02-DM3-obe.outbound.protection.outlook.com
 (mail-dm3nam02on20628.outbound.protection.outlook.com
 [2a01:111:f403:2405::628])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id dbd3bf58-1655-11f0-9ffb-bf95429c2676;
 Thu, 10 Apr 2025 23:50:46 +0200 (CEST)
Received: from MW3PR06CA0021.namprd06.prod.outlook.com (2603:10b6:303:2a::26)
 by IA1PR12MB8078.namprd12.prod.outlook.com (2603:10b6:208:3f1::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.23; Thu, 10 Apr
 2025 21:50:39 +0000
Received: from MWH0EPF000989EA.namprd02.prod.outlook.com
 (2603:10b6:303:2a:cafe::60) by MW3PR06CA0021.outlook.office365.com
 (2603:10b6:303:2a::26) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.22 via Frontend Transport; Thu,
 10 Apr 2025 21:50:39 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 MWH0EPF000989EA.mail.protection.outlook.com (10.167.241.137) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8632.13 via Frontend Transport; Thu, 10 Apr 2025 21:50:39 +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, 10 Apr
 2025 16:50:38 -0500
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, 10 Apr
 2025 16:50:38 -0500
Received: from [172.25.231.87] (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, 10 Apr 2025 16:50:37 -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: dbd3bf58-1655-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=OSnrGbtnsNV10rpuvNFqyIPVQrPHKmwcVFVhxxiEtxpphHk16QYHuD7BOAA1fGgwtAwSrZX7Ff4yH4ezpfEXaOqPDkflalJdu+cohQ6paKd/OgmJqwIZ65g5JtWdmut+DnKQA4z1ASMkcEzwh53h637sl4rE1Qoz99NV7KTC0cXTUHODlzbbTkkjgx7R0aqRdm/L6NhP8rPi5rO+3hTNOZELOWfwdInZY0j47REjlNmAOLRYyCfDHgVC+U1Mv1LuLbK3mLCDy2IGOVVqUoGNzanLO4plW6mrtFXPeBmXAeWfkKcybHnDMsyPp2UquNtmtcdZdCtEMamLc5af/iX4+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=QlKyaIX1lcTWLpP6Bt+NUHybXgDX/kwnnH6Ar9FoI9A=;
 b=xwqsNPpmUwLhjaWUZx1nSytHOvZECfnUwY3Lud3uaIRlcOAhxhCVn1pZvEBiX1SBSnOLVdcBRYivD//dqV3jxYsYCDPHA4mSO11Bc8IJS3q3QQ6WHGKY/9gtSfhO9pFVYGnL81rNTlkKqRBqbwXYAm46bAZuqHeaMUV/v7VQMvJp7tTYN3MEYhAwU8AYbi0EG3C7eVWCAx3DFa7UahtVwrdMNUcNUF+QV8VYyeE16X97+0Ft8CE423fHT/If/hAl9ypNgydj3YoZhMZQTpTKJhClM40qFiKdmWbKV8s4SXGQsVbIGQvv/9JpdSwkEnOneaE+Gy9qMdWH1cth9jb/XQ==
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=QlKyaIX1lcTWLpP6Bt+NUHybXgDX/kwnnH6Ar9FoI9A=;
 b=fktK8HxKJFQ0P+jDqG8JRLpiktIptEGIN2U/jr+yfsExgH9VWAZBiJttskDx9UJGZzF41oLlH+boisdpasJOeuXYBFcYcqyoh+pJRqyL3O0MmAThFc8h6VCqhL1t0izQ6XQZ9QpBtJrqo1S7RcuEY09DGdpYx0KqMbHqLZ/Pd98=
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: <b0da7fe5-9dc1-42d8-9acf-56141eaae053@amd.com>
Date: Thu, 10 Apr 2025 17:50:39 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH TEST-ARTEFACTS 0/8] Cleanup and Linux ARM64 support
From: Jason Andryuk <jason.andryuk@amd.com>
To: Andrew Cooper <andrew.cooper3@citrix.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>, Michal Orzel <michal.orzel@amd.com>,
	=?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
	<marmarek@invisiblethingslab.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>
References: <20250409163702.2037301-1-andrew.cooper3@citrix.com>
 <828cabc9-512f-4c2f-a7d7-b9c8963c1300@citrix.com>
 <f7b820af-b548-4dc3-9af7-9d2214a232b2@amd.com>
 <5da1f4ec-43ca-4279-88dd-b51d57b306e4@citrix.com>
 <eeec5fd7-25ae-42e6-be47-d849e2e33f6b@amd.com>
Content-Language: en-US
In-Reply-To: <eeec5fd7-25ae-42e6-be47-d849e2e33f6b@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: MWH0EPF000989EA:EE_|IA1PR12MB8078:EE_
X-MS-Office365-Filtering-Correlation-Id: 9c9dd6b1-1a04-4061-538c-08dd7879bbe4
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|82310400026|1800799024|376014|13003099007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?bUM5djFUcmUrazRHU2lud2ZJM012ckFkRFd5UWJpdTlTdlhtLzdjTmFKaWhv?=
 =?utf-8?B?NmpmV3pwWmJOUTRBckdmaTZQQnBwWkVWZ3F2M1NFdVEvV09EL2d1akR5Z3F6?=
 =?utf-8?B?TGlnMEJjWnBxeG9FbUZGS3F3Z0lCbzBqbzRXZU5sNTczNFYyV3pOUmdkK29z?=
 =?utf-8?B?QVdRV1RtTTFKM3A4cnhRNFpabjlsWTZaUC9rNjJVa1dvYjV6TUNvMHVZRldi?=
 =?utf-8?B?R3B4RmZNa3NId2hkL216bGtPTHEyaW10b3lHQS9kOFU5MHRwbWEreWVjVmdI?=
 =?utf-8?B?Rkg1aDY1ZmhPUVBhNEJaZVc1bGFMbFhGWDNtRHN1K2lmb3RzbnFabHg3S1hD?=
 =?utf-8?B?Rm55MkM1M1NacGluQjRGSHJpR052QnVMV3lmaFBIeXNZcjhEbGY4eGZzUnRO?=
 =?utf-8?B?Mzl3dGZ0M1NNcU15bkFLT2tpU2pqa2RRT3FZWnBlUG83ODFFSVlVRWhQOHJj?=
 =?utf-8?B?UTFBN084K2NXUkRMNkNhaHQzWWx3NGtTSGJMaldFTW9YTnlFbm83c2UwVEE1?=
 =?utf-8?B?TDYwNDNmMjJTaUFmZTgySTZQbEZ1MktHdGJsUkVXcVRVM25JbWppOVNDdWt1?=
 =?utf-8?B?SmgwTS9SWlIvbWNPM3ZKTVcya1VqeFV6M0xQNWloQ2N3TXRWb1dQa3hzZGtk?=
 =?utf-8?B?WFRDL1pMMzdoQnFtTm5reUNSa3djTFp2bTBMVEZCSkU5WE1zUTJzQVZUdEpE?=
 =?utf-8?B?MTZSWXlHSnV5aEQrbHh0LzhGclpNMFVlUFlhc1pYNnlDaWN6Wk5zMzRIK2oy?=
 =?utf-8?B?cFpMSHpSN2N0bE1MazZxZ2xuWXZnMnBCV1N6SnF1cndVTVQvdWZqTW5odk9x?=
 =?utf-8?B?eFdvZC9LbE1hVUxDUjVDTmU4NnVoZ0FoMU5VSk1XL2RtUi9sd3dPWTVnY09X?=
 =?utf-8?B?c3hqMXJuVnl1Qlc2YU5Zejh3MUJTeWhhRHE4L0hKV21iYVhpYWhDU3NHWTF3?=
 =?utf-8?B?ZnRTSy82Zk9IdUpZZUYxYzh4UXMyZjF5YjVBM2JHUTBRb3llMnRmYUJjWU1V?=
 =?utf-8?B?eUFVOHBBOHBZSWc5akhMTm5qUDdHd0ZWR1VSZ2ZOeUE1RXphM2VWdk40NGtE?=
 =?utf-8?B?a29aY2dGSHJtVk5mbCtla2NEekt6aStRS2pkOERTZzJ6TlFrUWhBTmtLRWV1?=
 =?utf-8?B?WFVXeHd4UHpIWFFwY3RuY1RGTEtZTlBhR1JOekRQN1VzMzYzU1ducHJoK0Uz?=
 =?utf-8?B?dFF4WFgyY2V0SGluaFcwd2hlb0N2UnpxWGZKbmJKeDFwV3EyMy9nY3ljRWNV?=
 =?utf-8?B?cHdkOEh5T09tWWlIcWJlblZlbHoxU2ZXN0EzV1FvN28xRXZkZHNaSFFJNUZa?=
 =?utf-8?B?RW13d3RMLzd3VDVvR05YYjBsT1hGZklJVjhMdkNqc2dxVmxOK1FQWkhyKzEw?=
 =?utf-8?B?bHVJWmZSWFR1MXozQW43eUo0dkliQXBEcFNaTU1HakFHekhBbmlhRzhZM1g1?=
 =?utf-8?B?MUhxQVAveEYrUEFRWGxqaXJ2TElEMmZhUENlNHVxZzZZSzBiZU83RzE1dGdP?=
 =?utf-8?B?TmFNS3Z2VWZuWDNUNm5KbDFqK003eFJ1aEJKNVljQjM1em5na0xHRU1TRVE5?=
 =?utf-8?B?VytjMjFObzRONUpvMWlkM2p5OEFIbVdxQnk5M0R3MnllRG9CR1VJUXBpZlRp?=
 =?utf-8?B?SEZvR1E1M3V4dHQ1c0ZDZ1U3Y0R3RitTOEVWWGRkSUgzbWZMcnNjUUV3WUlI?=
 =?utf-8?B?RVlpT3ZQRlUwTTg3clRLRnZMcHB0eG9TTjhvVWdTamFaTzBhREVySHJRT3Ny?=
 =?utf-8?B?ekEyS1BlQVlpLzRyZDIvb0F6dnZCbXZqa3hnQUpLbUppWTJtT2hXZk44M3Jz?=
 =?utf-8?B?dDlhdWxKWDlwbTBlTk9ZbkhnTE1id3U0bFV6cEw2NlR1a0lLZERxRHBMaTJR?=
 =?utf-8?B?bm1OZ3BwOXRiUi9LdVBwSlNBNnIvbms0SHVIeTZJSndtQlFBMlFCZHF2c2Jl?=
 =?utf-8?B?RGxMSmxLdThDSnErL1pMb2xsM1gxeHRCMTFuRXZqN2FzcDZCL0hTbzZaSHdn?=
 =?utf-8?B?VU8vYS9JSGRlZm9mKy8vdkt2cGR1cGZMbjNwbkJQTzJ6NDVwSkxxdk1hNTU2?=
 =?utf-8?B?amt5eS9ab0lLcTVSWVpoc0VEcFpWeUhWWkU0dz09?=
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)(13003099007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Apr 2025 21:50:39.3751
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 9c9dd6b1-1a04-4061-538c-08dd7879bbe4
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:
	MWH0EPF000989EA.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB8078

On 2025-04-10 17:16, Jason Andryuk wrote:
> On 2025-04-10 05:17, Andrew Cooper wrote:
>> On 10/04/2025 1:09 am, Jason Andryuk wrote:
>>> On 2025-04-09 13:01, Andrew Cooper wrote:
>>>> On 09/04/2025 5:36 pm, Andrew Cooper wrote:
>>
>> 6.6.74 is broken too.  (That's the revision that the ARM tests want).
>> So it broke somewhere between .56 and .74 which narrows the bisect a 
>> little.
>>
>> https://gitlab.com/xen-project/hardware/xen-staging/-/ 
>> pipelines/1761323774
>>
>> In Gitlab, both AMD and Intel are failing in roughly the same way.
> 
> Something else goes wrong in QEMU even with my patch for the hypercall, 
> and Linux eventually crashes.  Lots of unhandled memory read/write in 
> 0x1bfffe000 - 0x1bfffeff8, which is marked unusable for dom0.  I trimmed 
> lots of the consecutive "unhandled memory" from the attached log (313KB- 
>  >22KB)

Seems like Rogers patches need backporting too:

x86/xen: fix memblock_reserve() usage on PVH
x86/xen: move xen_reserve_extra_memory()

Regards,
Jason


From xen-devel-bounces@lists.xenproject.org Thu Apr 10 22:48:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 22:48:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.946487.1344364 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u30gZ-0006bB-1s; Thu, 10 Apr 2025 22:47:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 946487.1344364; Thu, 10 Apr 2025 22: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 1u30gY-0006b4-UK; Thu, 10 Apr 2025 22:47:50 +0000
Received: by outflank-mailman (input) for mailman id 946487;
 Thu, 10 Apr 2025 22:47: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=sQhE=W4=linux-foundation.org=akpm@srs-se1.protection.inumbo.net>)
 id 1u30gX-0006ay-I0
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 22:47:49 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d2ae8c65-165d-11f0-9ead-5ba50f476ded;
 Fri, 11 Apr 2025 00:47:47 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id B03A260008;
 Thu, 10 Apr 2025 22:47:35 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 72DF3C4CEDD;
 Thu, 10 Apr 2025 22:47: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: d2ae8c65-165d-11f0-9ead-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linux-foundation.org;
	s=korg; t=1744325266;
	bh=1tnfPuvkdBHhkMd126G0IxK9k3gsj3KHkqYbgp6rqwk=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=e6xef16qlSCuaWmvesXMrxudpX3PdJoqdNQrXzsVNJrRRrc/hIgkchadNM34Ppb4j
	 YRP22ogIXwogTnAqDkh7D1n1YtKcQftorM0XAqg0S2/V4Yun6qCg+vGECTW9UKKua2
	 l9Tu9D3P64Os0dK/iz7clScFQuOJTR8wIZOF5Qj8=
Date: Thu, 10 Apr 2025 15:47:44 -0700
From: Andrew Morton <akpm@linux-foundation.org>
To: Alexander Gordeev <agordeev@linux.ibm.com>
Cc: Andrey Ryabinin <ryabinin.a.a@gmail.com>, Hugh Dickins
 <hughd@google.com>, Nicholas Piggin <npiggin@gmail.com>, Guenter Roeck
 <linux@roeck-us.net>, Juergen Gross <jgross@suse.com>, Jeremy Fitzhardinge
 <jeremy@goop.org>, linux-kernel@vger.kernel.org, linux-mm@kvack.org,
 kasan-dev@googlegroups.com, sparclinux@vger.kernel.org,
 xen-devel@lists.xenproject.org, linuxppc-dev@lists.ozlabs.org,
 linux-s390@vger.kernel.org, stable@vger.kernel.org
Subject: Re: [PATCH v2 3/3] mm: Protect kernel pgtables in
 apply_to_pte_range()
Message-Id: <20250410154744.44991b2abe5f842e34320917@linux-foundation.org>
In-Reply-To: <Z/fauW5hDSt+ciwr@li-008a6a4c-3549-11b2-a85c-c5cc2836eea2.ibm.com>
References: <cover.1744128123.git.agordeev@linux.ibm.com>
	<ef8f6538b83b7fc3372602f90375348f9b4f3596.1744128123.git.agordeev@linux.ibm.com>
	<Z/fauW5hDSt+ciwr@li-008a6a4c-3549-11b2-a85c-c5cc2836eea2.ibm.com>
X-Mailer: Sylpheed 3.7.0 (GTK+ 2.24.33; x86_64-pc-linux-gnu)
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit

On Thu, 10 Apr 2025 16:50:33 +0200 Alexander Gordeev <agordeev@linux.ibm.com> wrote:

> On Tue, Apr 08, 2025 at 06:07:32PM +0200, Alexander Gordeev wrote:
> 
> Hi Andrew,
> 
> > The lazy MMU mode can only be entered and left under the protection
> > of the page table locks for all page tables which may be modified.
> 
> Heiko Carstens noticed that the above claim is not valid, since
> v6.15-rc1 commit 691ee97e1a9d ("mm: fix lazy mmu docs and usage"),
> which restates it to:
> 
> "In the general case, no lock is guaranteed to be held between entry and exit
> of the lazy mode. So the implementation must assume preemption may be enabled"
> 
> That effectively invalidates this patch, so it needs to be dropped.
> 
> Patch 2 still could be fine, except -stable and Fixes tags and it does
> not need to aim 6.15-rcX. Do you want me to repost it?

I dropped the whole series - let's start again.


From xen-devel-bounces@lists.xenproject.org Thu Apr 10 23:24:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 10 Apr 2025 23:24:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.946504.1344373 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u31G3-0000wy-QH; Thu, 10 Apr 2025 23:24:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 946504.1344373; Thu, 10 Apr 2025 23: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 1u31G3-0000wr-Nj; Thu, 10 Apr 2025 23:24:31 +0000
Received: by outflank-mailman (input) for mailman id 946504;
 Thu, 10 Apr 2025 23:24:30 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=BGYy=W4=flex--seanjc.bounces.google.com=3JFP4ZwYKCfElXTgcVZhhZeX.VhfqXg-WXoXeeblml.qXgikhcXVm.hkZ@srs-se1.protection.inumbo.net>)
 id 1u31G2-0000wj-OL
 for xen-devel@lists.xenproject.org; Thu, 10 Apr 2025 23:24:30 +0000
Received: from mail-pf1-x449.google.com (mail-pf1-x449.google.com
 [2607:f8b0:4864:20::449])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id eed3d97f-1662-11f0-9ffb-bf95429c2676;
 Fri, 11 Apr 2025 01:24:23 +0200 (CEST)
Received: by mail-pf1-x449.google.com with SMTP id
 d2e1a72fcca58-736cd36189bso1663716b3a.2
 for <xen-devel@lists.xenproject.org>; Thu, 10 Apr 2025 16:24:22 -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: eed3d97f-1662-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20230601; t=1744327461; x=1744932261; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:from:to:cc:subject:date:message-id:reply-to;
        bh=+8Hj0FhxYq298MEgk+A50ezX9To9apyasGONCk8/EIY=;
        b=nRjbiHgQcTnQuFFINhx7Raz0zuWHaWfKoQPFi2fGDAHU/n2b2lhFoaSxms3aCh8J0R
         /PBzC81zxmQEqI+JIDoW7WnJs+eHm1OinfjVuWGALfd2oyKI4nX7hJPSQv+4BXai7W1S
         k7npYGDlqiybRH1lAL4ejDnI5HUo0gEPcXroex+oh5H0uhGuJMovUPi5knuqEBtUVPXh
         Hz3xNBDb4mrSYQ+C6tdhNAOzbdLhpxxonu1oGKH9crfs2at9Xp7G/tx2fXZifXRXEdhA
         1AIwEGfiaruqUrjsS8gki2tSl+cXcyXkfmFuzdOMVQhVTUMX2iWktjrwAE5SoKbFOEGz
         ODGw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744327461; x=1744932261;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=+8Hj0FhxYq298MEgk+A50ezX9To9apyasGONCk8/EIY=;
        b=Mh9A/koIh750A/0QWWTEEabkPSC5knrxccMOzhBb/HhM0g7J50Po6LHhz8J+h0S8bg
         FMFwOHoaJBNNsPbMonsj00Jm2UhX2Omt47c8LpUALoa6AueTjNUk15in8eExbAu1RMtA
         TI9C3xI98WYlBkTB7Q8towS3OHweLJd3cPQVjwulH46vJv9XeEXXMjT5+/oLznCiYr0j
         A44iFiQOWuTo6ccJi7FfM6v0ZuV7nQsZRgnD5HRRAlYcx+qiVQ1tYF/5d1rdVBssnGBA
         fSSDL03W6OoZoQYpKj9du37X/xz3jJd+3DgBltOwJ50JlzxusGa2cvOpGfNVtC3zfBoF
         BY2A==
X-Forwarded-Encrypted: i=1; AJvYcCXCPrfEk4KQWDoeP5z1m9faHF0RCu5hPpW+fKz97N57ngxs4YJe5LNWIERGu++Pr1MalHCuVHQf09I=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyrHLuQz4un56EZKVTWhllwvx6+skp2FA4dzueV4mfl4RWBUHRC
	yOgnK8bHkxLiRDD6XsNIGX6lEjDM/RzSq6SnJNna7UReoubhY4XW8GlNXdIf6IlSGwTV/RZG/l9
	gIw==
X-Google-Smtp-Source: AGHT+IHWYnK2BwFW7Mr5VmhaaxwX1jXjykj9i9MFxC3vV2mlnL+NePMyv0dJBUjVtFSac3MvKiuBJyLqfxA=
X-Received: from pfbfj37.prod.google.com ([2002:a05:6a00:3a25:b0:730:8b4c:546c])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a00:21c7:b0:736:5c8e:baaa
 with SMTP id d2e1a72fcca58-73bd119427emr706022b3a.2.1744327460939; Thu, 10
 Apr 2025 16:24:20 -0700 (PDT)
Date: Thu, 10 Apr 2025 16:24:19 -0700
In-Reply-To: <20250331082251.3171276-11-xin@zytor.com>
Mime-Version: 1.0
References: <20250331082251.3171276-1-xin@zytor.com> <20250331082251.3171276-11-xin@zytor.com>
Message-ID: <Z_hTI8ywa3rTxFaz@google.com>
Subject: Re: [RFC PATCH v1 10/15] KVM: VMX: Use WRMSRNS or its immediate form
 when available
From: Sean Christopherson <seanjc@google.com>
To: "Xin Li (Intel)" <xin@zytor.com>
Cc: linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, 
	linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev, 
	linux-edac@vger.kernel.org, kvm@vger.kernel.org, 
	xen-devel@lists.xenproject.org, linux-ide@vger.kernel.org, 
	linux-pm@vger.kernel.org, bpf@vger.kernel.org, llvm@lists.linux.dev, 
	tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, 
	dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com, jgross@suse.com, 
	andrew.cooper3@citrix.com, peterz@infradead.org, acme@kernel.org, 
	namhyung@kernel.org, mark.rutland@arm.com, alexander.shishkin@linux.intel.com, 
	jolsa@kernel.org, irogers@google.com, adrian.hunter@intel.com, 
	kan.liang@linux.intel.com, wei.liu@kernel.org, ajay.kaher@broadcom.com, 
	alexey.amakhalov@broadcom.com, bcm-kernel-feedback-list@broadcom.com, 
	tony.luck@intel.com, pbonzini@redhat.com, vkuznets@redhat.com, 
	luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com, 
	haiyangz@microsoft.com, decui@microsoft.com
Content-Type: text/plain; charset="us-ascii"

On Mon, Mar 31, 2025, Xin Li (Intel) wrote:
> Signed-off-by: Xin Li (Intel) <xin@zytor.com>
> ---
>  arch/x86/include/asm/msr-index.h |  6 ++++++
>  arch/x86/kvm/vmx/vmenter.S       | 28 ++++++++++++++++++++++++----
>  2 files changed, 30 insertions(+), 4 deletions(-)
> 
> diff --git a/arch/x86/include/asm/msr-index.h b/arch/x86/include/asm/msr-index.h
> index e6134ef2263d..04244c3ba374 100644
> --- a/arch/x86/include/asm/msr-index.h
> +++ b/arch/x86/include/asm/msr-index.h
> @@ -1226,4 +1226,10 @@
>  						* a #GP
>  						*/
>  
> +/* Instruction opcode for WRMSRNS supported in binutils >= 2.40 */
> +#define ASM_WRMSRNS		_ASM_BYTES(0x0f,0x01,0xc6)
> +
> +/* Instruction opcode for the immediate form RDMSR/WRMSRNS */
> +#define ASM_WRMSRNS_RAX		_ASM_BYTES(0xc4,0xe7,0x7a,0xf6,0xc0)
> +
>  #endif /* _ASM_X86_MSR_INDEX_H */
> diff --git a/arch/x86/kvm/vmx/vmenter.S b/arch/x86/kvm/vmx/vmenter.S
> index f6986dee6f8c..9fae43723c44 100644
> --- a/arch/x86/kvm/vmx/vmenter.S
> +++ b/arch/x86/kvm/vmx/vmenter.S
> @@ -64,6 +64,29 @@
>  	RET
>  .endm
>  
> +/*
> + * Write EAX to MSR_IA32_SPEC_CTRL.
> + *
> + * Choose the best WRMSR instruction based on availability.
> + *
> + * Replace with 'wrmsrns' and 'wrmsrns %rax, $MSR_IA32_SPEC_CTRL' once binutils support them.
> + */
> +.macro WRITE_EAX_TO_MSR_IA32_SPEC_CTRL
> +	ALTERNATIVE_2 __stringify(mov $MSR_IA32_SPEC_CTRL, %ecx;		\
> +				  xor %edx, %edx;				\
> +				  mov %edi, %eax;				\
> +				  ds wrmsr),					\
> +		      __stringify(mov $MSR_IA32_SPEC_CTRL, %ecx;		\
> +				  xor %edx, %edx;				\
> +				  mov %edi, %eax;				\
> +				  ASM_WRMSRNS),					\
> +		      X86_FEATURE_WRMSRNS,					\
> +		      __stringify(xor %_ASM_AX, %_ASM_AX;			\
> +				  mov %edi, %eax;				\
> +				  ASM_WRMSRNS_RAX; .long MSR_IA32_SPEC_CTRL),	\
> +		      X86_FEATURE_MSR_IMM
> +.endm

This is quite hideous.  I have no objection to optimizing __vmx_vcpu_run(), but
I would much prefer that a macro like this live in generic code, and that it be
generic.  It should be easy enough to provide an assembly friendly equivalent to
__native_wrmsr_constant().


> +
>  .section .noinstr.text, "ax"
>  
>  /**
> @@ -123,10 +146,7 @@ SYM_FUNC_START(__vmx_vcpu_run)
>  	movl PER_CPU_VAR(x86_spec_ctrl_current), %esi
>  	cmp %edi, %esi
>  	je .Lspec_ctrl_done
> -	mov $MSR_IA32_SPEC_CTRL, %ecx
> -	xor %edx, %edx
> -	mov %edi, %eax
> -	wrmsr
> +	WRITE_EAX_TO_MSR_IA32_SPEC_CTRL
>  
>  .Lspec_ctrl_done:
>  
> -- 
> 2.49.0
> 


From xen-devel-bounces@lists.xenproject.org Fri Apr 11 01:04:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 01:04:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.946530.1344389 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u32ox-0002aM-AT; Fri, 11 Apr 2025 01:04:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 946530.1344389; Fri, 11 Apr 2025 01:04:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u32ox-0002aF-7S; Fri, 11 Apr 2025 01:04:39 +0000
Received: by outflank-mailman (input) for mailman id 946530;
 Fri, 11 Apr 2025 01:04: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=eOtD=W5=tklengyel.com=tamas@srs-se1.protection.inumbo.net>)
 id 1u32ow-0002a9-CV
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 01:04:38 +0000
Received: from sender4-op-o12.zoho.com (sender4-op-o12.zoho.com
 [136.143.188.12]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ee74113f-1670-11f0-9ead-5ba50f476ded;
 Fri, 11 Apr 2025 03:04:35 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 1744333469385638.7964735969545;
 Thu, 10 Apr 2025 18:04:29 -0700 (PDT)
Received: by mail-oo1-f54.google.com with SMTP id
 006d021491bc7-6040465b9e2so737207eaf.0
 for <xen-devel@lists.xenproject.org>; Thu, 10 Apr 2025 18:04:29 -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: ee74113f-1670-11f0-9ead-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; t=1744333471; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=iXTcrXk885wj3zze+M5BZXFb4LHht6SaOkzV62qw4bWRgVNAIAnlBlY9S/S+YMx6KYUE495aKu6XpiKxctr5SpWAIMJGV/hUFF4UzkCMM1PLryE4goDKB8yQdC7CxSicZffO4PjgB9VpzNA6LYuXupZcdW/HSdXl6fcFGaok7pA=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1744333471; 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=EA8LXa/Kr1rDhgq7fsazy42w7N5pCyv4+5e8QlYl2DQ=; 
	b=fJKknIg+K5CxxdFre0LuscTZUBbnEj7xgCLAfO6UngiZbdS1LumZm+qj51MOY4BW0T/keD5c3tNzfwM/wP4oNGD+G8o9Y6ZXVkZ3Jly28OhsYGc6JQNmmHS30wzGR+CnFy6H5nvxaT6kVnHbbAG67SsK5rvZqcDfW3X8CaucKgg=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass  header.i=tklengyel.com;
	spf=pass  smtp.mailfrom=tamas@tklengyel.com;
	dmarc=pass header.from=<tamas@tklengyel.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1744333471;
	s=zmail; d=tklengyel.com; i=tamas@tklengyel.com;
	h=MIME-Version:References:In-Reply-To:From:From:Date:Date:Message-ID:Subject:Subject:To:To:Cc:Cc:Content-Type:Content-Transfer-Encoding:Message-Id:Reply-To;
	bh=EA8LXa/Kr1rDhgq7fsazy42w7N5pCyv4+5e8QlYl2DQ=;
	b=GX+ugA4rMWHsGaENSWbnUnkKmMM47UfdFahpvXyVAD1ek4CblzEaoLKxxP9jYa0Y
	H6MXAPwkP8z4Xd/++rjyQMC28D+gUqzeilEBXUhxOstpjYGg6ctVZhcZl2NldDn/wVQ
	rIT+jVUiC1d+UDKc7A5YknMDjIsZ9bPsaZ5kHCaI=
X-Gm-Message-State: AOJu0YwjWjZI6Lj9LMSL7WGCBwHCBDyCvYBfeLw9HZlHS3ub8U+p1cz1
	vOLOaEFabDf+pwcFzgiuaTMmsrJZgEzqXKfeXMK4lolUYNEvUjW0rE64mYGJCNE4LL+1lwMmfqZ
	ys0zNNeBCIROML34diXhftCZaJQU=
X-Google-Smtp-Source: AGHT+IHjwYW8cL5XafIlvrDzPaYvWb1Avh+hLCIRwzt5wbdiDQ3xE5fjLS//zN5sM5mRmtPoCdvMav26Atud1SIO2A4=
X-Received: by 2002:a05:6820:543:b0:602:47ec:3df0 with SMTP id
 006d021491bc7-6046f5941a0mr492446eaf.5.1744333468554; Thu, 10 Apr 2025
 18:04:28 -0700 (PDT)
MIME-Version: 1.0
References: <5a261173-d225-44fc-9078-4030ba11cfd8@suse.com>
In-Reply-To: <5a261173-d225-44fc-9078-4030ba11cfd8@suse.com>
From: Tamas K Lengyel <tamas@tklengyel.com>
Date: Thu, 10 Apr 2025 21:03:52 -0400
X-Gmail-Original-Message-ID: <CABfawh=2RzTvHfOaSO83b4gW9ZW2P8hXqUZp5HAmCmiEo0Uddg@mail.gmail.com>
X-Gm-Features: ATxdqUEmIGNnNTl9NUSWNOedQ4dqZGhg3OStCLJgGEVRZns_NxfqSmq6v4C-FE4
Message-ID: <CABfawh=2RzTvHfOaSO83b4gW9ZW2P8hXqUZp5HAmCmiEo0Uddg@mail.gmail.com>
Subject: Re: [PATCH] x86/mem-sharing: short-circuit p2m_is_shared() when MEM_SHARING=n
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
	Andrew Cooper <andrew.cooper3@citrix.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 Thu, Apr 3, 2025 at 4:42=E2=80=AFAM Jan Beulich <jbeulich@suse.com> wrot=
e:
>
> Some of the uses of dom_cow aren't easily DCE-able (without extra
> #ifdef-ary), and hence it being constantly NULL when MEM_SHARING=3Dn
> misguides Coverity into thinking that there may be a NULL deref in
>
>         if ( p2m_is_shared(t) )
>             d =3D dom_cow;
>
>         if ( get_page(page, d) )
>             return page;
>
> (in get_page_from_mfn_and_type()). Help the situation by making
> p2m_is_shared() be compile-time false when MEM_SHARING=3Dn, thus also
> permitting the compiler to DCE some other code.
>
> Note that p2m_is_sharable() isn't used outside of mem_sharing.c, and
> hence P2M_SHARABLE_TYPES can simply be left undefined when
> MEM_SHARING=3Dn.
>
> Coverity ID: 1645573
> Fixes: 79d91e178a1a ("dom_cow is needed for mem-sharing only")
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Reviewed-by: Tamas K Lengyel <tamas@tklengyel.com>

> ---
> Might be nice to also eliminate p2m_ram_shared (and for MEM_PAGING=3Dn
> also the three paging types) entirely from such builds, to eliminate the
> risk of accidental use. Yet that would apparently also come at the price
> of more #ifdef-ary. Opinions?

I don't think the risk of accidental use is a concern. I wouldn't
touch them unless they lead to similar confusion with coverity or some
other tool.

Cheers,
Tamas


From xen-devel-bounces@lists.xenproject.org Fri Apr 11 02:22:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 02:22:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.946545.1344399 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u342N-0006wm-Mz; Fri, 11 Apr 2025 02:22:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 946545.1344399; Fri, 11 Apr 2025 02: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 1u342N-0006wf-K2; Fri, 11 Apr 2025 02:22:35 +0000
Received: by outflank-mailman (input) for mailman id 946545;
 Fri, 11 Apr 2025 02:22: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=vbRy=W5=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u342L-0006wZ-7Q
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 02:22:34 +0000
Received: from mail-10630.protonmail.ch (mail-10630.protonmail.ch
 [79.135.106.30]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d223a6fa-167b-11f0-9ead-5ba50f476ded;
 Fri, 11 Apr 2025 04:22:31 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d223a6fa-167b-11f0-9ead-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1744338148; x=1744597348;
	bh=D5QPqp3tVroZiLmq2yLVV5UP1gY3K0swbHcuTIFG+cw=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=M8o6MqS1dww3bXUuXx72yMuVwiI+PK/qDWpiePpNXc63xXGdVSUTpQ89DU8H+KBwZ
	 uV2ftXmc9GB+Ol73F3jfbVAUo38Hjjiw8fu+oN5FUmhfNbQDhNFytb3/Ac0yc15nUk
	 Tf+JIXtf0Iac138p2fqvsti60THRVKq+0BG2An9IoRtRqDs0zcxqRRIUsRSwXPuKr/
	 mirzQvyypyWitP4WVaRuryjzHxRgaMAjzQH/Pg2wclSK4fp+hd4I6Mop5xiio+1s3P
	 ih0vysijHEqr5bFhp0Ibab8JsY9fJnIvZjAuCA7ZBmU2IqqcQKR20ybQ22TgScjxpF
	 RrrechEsf+MWQ==
Date: Fri, 11 Apr 2025 02:22:23 +0000
To: Andrew Cooper <andrew.cooper3@citrix.com>
From: Denis Mukhin <dmkhn@proton.me>
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?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>, Jason Andryuk <jason.andryuk@amd.com>, "Daniel P . Smith" <dpsmith@apertussolutions.com>
Subject: Re: [PATCH 2/4] Overhaul how Argo is built and packged
Message-ID: <YPFuP6hQq0myBCOddL4tzFCBWAxGuKFkxdWlMOo5EkBkQVOjBoimEYoBywJD4vXGRatlf81hAvyLekktbrbH1zvWyEH_OUY97aF0YZtEfnA=@proton.me>
In-Reply-To: <20250410213724.2098383-3-andrew.cooper3@citrix.com>
References: <20250410213724.2098383-1-andrew.cooper3@citrix.com> <20250410213724.2098383-3-andrew.cooper3@citrix.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 9795aab1b2c9d217c95823a8944a1f72206f4407
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Thursday, April 10th, 2025 at 2:37 PM, Andrew Cooper <andrew.cooper3@cit=
rix.com> wrote:

>=20
>=20
> Right now, the argo artefacts are a pile of files which the test has to t=
urn
> back into something which resembles a filesystem. Furthermore, because we=
 do
> not build modules for the main kernel, it is extra important to make sure=
 that
> xen-argo.ko doesn't get out of sync.
>=20
> Build argo unconditionally as part of the linux artefact. It's ~100kb all
> together, compared to ~14M for the kernel.
>=20
> Produce a single argo.cpio.gz with xen-argo.ko in the standard location.
> Prune userspace down to just the executables and libraries.
>=20
> This is cribbed from the existing scripts/x86_64-linux-argo.sh, which sta=
ys in
> place in the short term until Xen can be updated to use the new scheme.
>=20
> Signed-off-by: Andrew Cooper andrew.cooper3@citrix.com
>=20
> ---
> CC: Anthony PERARD anthony.perard@vates.tech
>=20
> CC: Stefano Stabellini sstabellini@kernel.org
>=20
> CC: Michal Orzel michal.orzel@amd.com
>=20
> CC: Doug Goldstein cardoe@cardoe.com
>=20
> CC: Marek Marczykowski-G=C3=B3recki marmarek@invisiblethingslab.com
>=20
> CC: Jason Andryuk jason.andryuk@amd.com
>=20
> CC: Daniel P. Smith dpsmith@apertussolutions.com
>=20
>=20
> I tried to make MODPOST work properly, but we don't build enough of it fo=
r the
> kernel, and I didn't feel like adding an extra 10 mins to the build (all
> modules) just to get the metadata right.
> ---
> .gitlab-ci.yml | 2 ++
> scripts/build-argo.sh | 67 ++++++++++++++++++++++++++++++++++++++++++
> scripts/build-linux.sh | 6 +++-
> 3 files changed, 74 insertions(+), 1 deletion(-)
> create mode 100644 scripts/build-argo.sh
>=20
> diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
> index fb997cc62162..790a6d9f9896 100644
> --- a/.gitlab-ci.yml
> +++ b/.gitlab-ci.yml
> @@ -47,6 +47,8 @@ linux-6.6.56-x86_64:
> script: ./scripts/build-linux.sh
> variables:
> LINUX_VERSION: 6.6.56
> + ARGO_SHA: "705a7a8a624b42e13e655d3042059b8a85cdf6a3"
> + ARGOEXEC_SHA: "d900429f6640acc6f68a3d3a4c945d7da60625d8"
>=20
> #
> # The jobs below here are legacy and being phased out.
> diff --git a/scripts/build-argo.sh b/scripts/build-argo.sh
> new file mode 100644
> index 000000000000..0b4005f3b9a0
> --- /dev/null
> +++ b/scripts/build-argo.sh
> @@ -0,0 +1,67 @@
> +#
> +# This is a partial script, sourced by build-linux.sh
> +# It has expectations about the environment
> +#
> +
> +cd "${WORKDIR}"
> +
> +#
> +# We're going to collect everything in argo.cpio.gz. Construct it under
> +# $ARGODIR as we go.
> +#
> +ARGODIR=3D"${WORKDIR}/argo-root"
> +
> +git clone https://github.com/OpenXT/linux-xen-argo.git --depth=3D1
> +git -C "${WORKDIR}/linux-xen-argo" fetch origin "${ARGO_SHA}"
> +git -C "${WORKDIR}/linux-xen-argo" switch --detach FETCH_HEAD
> +
> +# Build xen-argo.ko against the target kernel, and install it. Install
> +# linux/argo.h too because userspace needs it.
> +make -C "linux-${LINUX_VERSION}" \
> + M=3D"${WORKDIR}/linux-xen-argo/argo-linux" \
> + KBUILD_MODPOST_WARN=3D1 \
> + CFLAGS_MODULE=3D"-Wno-error" \

Suggest adding `W=3De` for catching problems and `V=3D1` to help debugging =
a bit.

> + modules
> +install -D -m644 "${WORKDIR}/linux-xen-argo/argo-linux/xen-argo.ko" \
> + "${ARGODIR}/lib/modules/${LINUX_VERSION}/updates/xen-argo.ko"
> +install -D -m644 "${WORKDIR}/linux-xen-argo/argo-linux/include/linux/arg=
o.h" \
> + "${ARGODIR}/usr/include/linux/argo.h"
> +
> +# Build and install libargo, applying fixes to build in Alpine Linux
> +cd "${WORKDIR}/linux-xen-argo/libargo"
> +sed -e "s|AM_INIT_AUTOMAKE|AC_CONFIG_AUX_DIR(.)\nAM_INIT_AUTOMAKE|" \
> + -i configure.ac
> +sed -e "s/_SOCKADDR_COMMON (sxenargo)/sa_family_t sxenargo_family/" \
> + -e "s/__SOCKADDR_COMMON_SIZE/(sizeof (unsigned short int))/" \
> + -i src/libargo.h
> +
> +autoreconf --install
> +./configure --prefix=3D/usr CPPFLAGS=3D"-I${PWD}/../argo-linux/include"
> +make

Perhaps add something like `make -j$(nproc)`?

> +make install DESTDIR=3D"${ARGODIR}"
> +
> +# Build and install argo-exec, modifying for xilinx argo test
> +cd "${WORKDIR}"
> +curl -fsSLO \
> + https://raw.githubusercontent.com/OpenXT/xenclient-oe/${ARGOEXEC_SHA}/r=
ecipes-openxt/argo-exec/argo-exec/argo-exec.c
> +sed -e "/#include <xen\/xen.h>/d" \
>=20
> + -e "s|ret =3D shuffle(s, fds\[0\], fds\[1\]);|ret =3D shuffle(s, 0, 1);=
|" \
> + -i argo-exec.c
> +
> +gcc -I"${ARGODIR}/usr/include" -L"${ARGODIR}/usr/lib/" \
> + argo-exec.c -o "${ARGODIR}/usr/bin/argo-exec" -largo
> +
> +#
> +# Building is now complete. Strip the devel components and the nointerpo=
ser
> +# lib, which we don't care to deploy to the test system.
> +#
> +cd $ARGODIR
> +rm -r usr/include usr/lib/pkgconfig
> +find usr/lib -name \nointerposer\ -delete
> +find usr/lib \( -name \.a -o -name \.so -o -name \*.la \) -delete
> +
> +# Package everything up
> +find . | cpio -R 0:0 -H newc -o | gzip > "$COPYDIR/argo.cpio.gz"
>=20
> +
> +# Print the contents for the build log
> +zcat "$COPYDIR/argo.cpio.gz" | cpio -tv
> diff --git a/scripts/build-linux.sh b/scripts/build-linux.sh
> index 652fdba7b9d1..49b5ebed6424 100755
> --- a/scripts/build-linux.sh
> +++ b/scripts/build-linux.sh
> @@ -8,7 +8,7 @@ fi
> set -ex -o pipefail
>=20
> WORKDIR=3D"${PWD}"
> -COPYDIR=3D"${WORKDIR}/binaries/"
> +COPYDIR=3D"${WORKDIR}/binaries"
> UNAME=3D$(uname -m)
>=20
> # Build Linux
> @@ -45,6 +45,10 @@ case $UNAME in
> x86_64)
> make -j$(nproc) bzImage
> cp arch/x86/boot/bzImage "${COPYDIR}"
> +
> + # Build argo
> + make modules_prepare
> + . "${WORKDIR}/scripts/build-argo.sh"

Nit: I would use `source` instead of `.` which is simple to overlook.

> ;;
>=20
> aarch64)
> --
> 2.39.5


From xen-devel-bounces@lists.xenproject.org Fri Apr 11 02:52:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 02:52:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.946565.1344410 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u34Uz-0006dQ-Uh; Fri, 11 Apr 2025 02:52:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 946565.1344410; Fri, 11 Apr 2025 02: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 1u34Uz-0006dJ-Ph; Fri, 11 Apr 2025 02:52:09 +0000
Received: by outflank-mailman (input) for mailman id 946565;
 Fri, 11 Apr 2025 02:52: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=AtDH=W5=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1u34Uy-0006dD-Hf
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 02:52:08 +0000
Received: from NAM02-BN1-obe.outbound.protection.outlook.com
 (mail-bn1nam02on20604.outbound.protection.outlook.com
 [2a01:111:f403:2407::604])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f1d9a5ca-167f-11f0-9ffb-bf95429c2676;
 Fri, 11 Apr 2025 04:52:03 +0200 (CEST)
Received: from BL1PR12MB5849.namprd12.prod.outlook.com (2603:10b6:208:384::18)
 by MN0PR12MB5761.namprd12.prod.outlook.com (2603:10b6:208:374::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.22; Fri, 11 Apr
 2025 02:51:59 +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.8606.035; Fri, 11 Apr 2025
 02:51: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: f1d9a5ca-167f-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Au6DZeQkVyNqQkNu5YZvZCVTGnVveurzLVNL851sR0PxA52R9tPDmO99cDj2N9G8ngZcwiLUC2wZMhejH8KWSLaH1ixJbsLq02J6hyAgRYGdzTLeE88XD7OK8C/5f0dmJ8bvPk9QUS4RNCkSrB6fKueZWlq0wqUh+VnVX3IpKC9g4ln/Gt91kS0WcD6OJpJ5j6uLMnj0lCqlb6mSA2wSS9fhKXPnDVjss3kI6CYyPDhTJ1xurxlpG0asPtKMqIkzKiBkp4zO8zt9jyBD9Xy0MIyrAmpmabCKP6FWVH8RGz3KJzXebaWPLRCUaKDw2i39Rd0osd9MF+Y/MyEpU1bBxQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Ux3IHsZSUN/lKueQAl7xlfT7DAX3r4VFyjFzr+ipY+U=;
 b=v40Q7o34SDO4WlA4s3ap80Wu7sRFYsqaTN3x08RqZpuV8gVLZ4OzaLFiII5yIxsP6vlIpRUdzYtq+YppopD6LTaUl01y6TMR9T0SNlVjiQIPshVYle3LWTo9QcJ2WtI/DC/baBxTJkeougVKWPVLuqwu0lfRvpaYU89LyHxBEJ5ZEHYEsNTq5hAXqlcOXMFKGYBQyOv/L94QGhZgUmzfB6mEDBtcQ6iO+N1ieFSeXTneM19CwxCV2nWY7GXvFJ/0CP2Kr2v3Q5GHkPertzJduE+9D8/ScU7aWgKwE6UIbf3zEKWW0PwI+/QpxlAnqKiNs8RDRXgFJlOBWdQURHT+Xg==
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=Ux3IHsZSUN/lKueQAl7xlfT7DAX3r4VFyjFzr+ipY+U=;
 b=wjn7/pwAyVoGwPpw+8B2CvuuRsJg62kp6YT8UTpeFhnCakxqugHta285z9aqDJ/yZm+xqsQU6bzvh1W5FwXB9qC0XyN47l3ZCKrjSuSsx+2Ff4LV/eoi9AnE6t82u6hon46EV7c9wI4L8ppErPo3+CqzcfK3jthMDquzXFrsg3g=
From: "Chen, Jiqian" <Jiqian.Chen@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, "Orzel, Michal" <Michal.Orzel@amd.com>, Julien
 Grall <julien@xen.org>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.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: [PATCH v2 1/8] driver/pci: Get next capability without passing
 caps
Thread-Topic: [PATCH v2 1/8] driver/pci: Get next capability without passing
 caps
Thread-Index: AQHbqRsYW9r+TjshqU+vmdXYCVrO/7Oc16GAgAFv6YA=
Date: Fri, 11 Apr 2025 02:51:59 +0000
Message-ID:
 <BL1PR12MB5849F5E86496802914619F5EE7B62@BL1PR12MB5849.namprd12.prod.outlook.com>
References: <20250409064528.405573-1-Jiqian.Chen@amd.com>
 <20250409064528.405573-2-Jiqian.Chen@amd.com>
 <5a18ae61-3ffa-41d1-aa1d-dce4d3ca0381@suse.com>
In-Reply-To: <5a18ae61-3ffa-41d1-aa1d-dce4d3ca0381@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.8606.035)
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_|MN0PR12MB5761:EE_
x-ms-office365-filtering-correlation-id: 8ca040a1-b876-4a88-602b-08dd78a3d47f
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?9ghr3DaP6l3Jp/YfIG+r9EQgUrci8pOMthOQBkMkv3zAaOrvQXqCs73wqM?=
 =?iso-8859-1?Q?H497LzyrdQTUvlylHTeF52k1iDm34LtJ5aWL/O2VQ1ves+5VVfnW0drftm?=
 =?iso-8859-1?Q?DpTy9oTPAzTmI+I5vlWZ1DRs0Ms6IvrFe3N+zqC0xdkhvBgkTiabAsSu4G?=
 =?iso-8859-1?Q?Nws90cKQScsYoEulYRGH8jUiWhsIGr7NByzup0P81PXG9e7H5wGVseZ7tI?=
 =?iso-8859-1?Q?S40CoK/EyoUutw/stXRpzLUo1Qf0CzBai/Ec5VJa6P9eAGoVWbojW+AmOd?=
 =?iso-8859-1?Q?mB5n6ypaCTEn1UhvR/Q7nyRkbLJbSFAuTyTlcaGw2NuQh0iiJ7fYsYtXzG?=
 =?iso-8859-1?Q?V3n6LbRa5mNtiF/aRCzc9sw84MKox1ysYXOEbTzonTk8ehdTJ0zHUemK28?=
 =?iso-8859-1?Q?5TxVB90mUWl5EO2Z3qmysgoBNmnhIYMzxlRLXOsWXgK2EPzkXGzvUvRkS+?=
 =?iso-8859-1?Q?c+t9HPhXgXkkGZEtT8RvFnnJY/CT1Gr5tNq7d7+ZkZCmefwRMkKzihJVUR?=
 =?iso-8859-1?Q?5tAEnVQT7OQcybCj4BGqv33h1a+tazWBqOfJBKe+ji/L4yG+gGuauRxUpc?=
 =?iso-8859-1?Q?b3kci1/GWaPtXALgGRqPr3zbLFiwG+hE9NXzH4x+mgMM6jpKpXSycLZZiL?=
 =?iso-8859-1?Q?58UwyMlUIFLBOXM8N8TpZJf7rZjHdaax7gbEg9JM6lAg8YcBb9Jw5Q77E0?=
 =?iso-8859-1?Q?I0lWJQj+Yh/EkGlwcFbqSVy+uv4fTZSIaMM7GCXsaM9e2KcRdlCHY68/ql?=
 =?iso-8859-1?Q?TE/s7kSuQsCLzvoRWUOIHlv2RKklYzJszclAcKXJaw/UHwdgbes9bTFVjX?=
 =?iso-8859-1?Q?tVl63HflH4kLt9LnOM9Q6fp1wJnSY4+U6kT5onKXdGfrl412zSsVyop9or?=
 =?iso-8859-1?Q?jI357/Q13ZsYYTuRQU4Fy8tp59TPg7xK6aXB1Wg8LmvZ3mbFaPkhN8rx8C?=
 =?iso-8859-1?Q?zWRzBnw6x6Xta+durm1YHiORMaYxihHhTEEXePa6/jWZZ17fvziflG0nia?=
 =?iso-8859-1?Q?O8UHjm2bNNh8vLnZ62utDxEe2GKf56AJYsfCKg883tUlBUY4VvCC0RKODS?=
 =?iso-8859-1?Q?XFeJ+04j4/L08xRg0iEzv5cJgTsaVwpOFL/nCSv4KepazEPG+XPELQfQeJ?=
 =?iso-8859-1?Q?nfbwnj5orCa77a5KK7sXwKyOmUtM7nwCFVQizXhSBoI79fUY5/QA0jO+H8?=
 =?iso-8859-1?Q?56CsJNQr/Owc1V08+vR9WDlb/JruYYzQE4YpTra0adAsbzXy2sh1wpL0J5?=
 =?iso-8859-1?Q?g7mLrx1/P0zU8MfKIpPE+ykdRgSq6XLCnkNEQh3UvBEW6k4tvVimlUOmqK?=
 =?iso-8859-1?Q?1JiSGnfdJAnUFVEl82WY0GIhWVTqkSkm2ENFzFxwSSrb3ehf7DPWON/l1h?=
 =?iso-8859-1?Q?hxAeMkoJfnR14Nj1Fm24+0enqW0W6eqpXGmA+UnvioD5EEG8MxcFExYzZm?=
 =?iso-8859-1?Q?gxuVhYRE0U75MD3nVSe+LgOOBdD4DnuhkML9s6Dd4Vr5409ZmaVPAn3xOj?=
 =?iso-8859-1?Q?Eaas/pBOrivDxKuBlrnLV5O0y27NEN6c9oXH/J5aODRZnPaDHdDomQ4nYc?=
 =?iso-8859-1?Q?lpskkOM=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?+NvjpL1zt6HRA3bLQnDsiN3P304pIybPpDGHPbH/B9np3Jt7YCMA57iySj?=
 =?iso-8859-1?Q?M2scSU4Bxh5K8jHOGQMwJA2ptopUdUX6NtCDFQMbZkOIR5ut7Yiq4Pb+wF?=
 =?iso-8859-1?Q?hiP5cGe54UgHfc3VXgwMU+bPTqhaH9peSHJZj0LdR4za5zXV72mMZhiwjw?=
 =?iso-8859-1?Q?XZHny6RSE0Y31PgII+607j0dZmPe2f0eDNXt6u5EfibpmWhVoZKGr/3oia?=
 =?iso-8859-1?Q?F5gb/1I+L6LhopU/58oMEs8ml4ice8bVSG+b1KcdgCIT06Up7jyBS6+54p?=
 =?iso-8859-1?Q?uxA+Ybb/3wuLTzT8ZDYJEyFZuR4JCtvwUHMC2QnKcjgmcEQfbXHJUpFcZL?=
 =?iso-8859-1?Q?iAmgceXeqOq+YLy0WnpmIqYs2j6QtV0GEE8vJA6j9JJMx6yIRSQMWFZ9ir?=
 =?iso-8859-1?Q?bDCNC99qQMvCH0GGmsjzVoGx3pmPq0UgFLKhVNbuhLOvZ8MLc0BLMLA9RA?=
 =?iso-8859-1?Q?lr7eqVXBtDheM21gJSSGzt0tv8doMHerlZ3FnF1XAsoTu8fjwSuVAEo1Bo?=
 =?iso-8859-1?Q?pet8DQ8VH2+Oe8kswhhavcspXXXvahOl5OeSDt4I5STpHN2PGmiaqix4AU?=
 =?iso-8859-1?Q?z/qiYinR8mfJpIVRHzWWO2Omjiyi5UNu0JrU859sZMrXNSVQqbu3btjMz/?=
 =?iso-8859-1?Q?+PJQ1q4LdaLYI1vQXnZCZleCSmSuezN1nLv0UvauCk5PaAlgYQ8o4CzE1G?=
 =?iso-8859-1?Q?wrmsd1jzuAPGfyMaJ//V4Ga7cSDgyAa0d+7q9MGsQPTj9cQfrSQwaTpEDK?=
 =?iso-8859-1?Q?/1DN/LCSQX+X9JyNsShLrWOVbLq4DBERuQYcsBOX7kF102PfoZRx6Yev8V?=
 =?iso-8859-1?Q?HbG5dC8JA8rGTJXukgflAj7dF+RNjjwCyUIrn2V6n0nJfAd3MjgTV9dIKD?=
 =?iso-8859-1?Q?ve9XrHoNU19hdEQoT6aQtdXFDzOBy2n8ZCNl7QlPRbn89cX1WDqC6duOVt?=
 =?iso-8859-1?Q?Dnnj4Dqo0k0BnpSqKw4viBiGBHHw/G3e+6exMTUYp5UwkOfeXUZxlpVJdf?=
 =?iso-8859-1?Q?43EC80W5L2hb89W+nPtAvP/4cEYHHHBh9Tiln7Qzam/ND/z5lBo8WvK5/a?=
 =?iso-8859-1?Q?7Jdwu5wUEGe2CFLa1KYJaJEpQryBn9v6L3BL3vGsjpECmlhyczFtx7momR?=
 =?iso-8859-1?Q?yLKQ8xQ5llwj0ySuWr3uAbXdMgnVj6DVb9S+Lk+7qdFJLoHAgw3i7OPshT?=
 =?iso-8859-1?Q?E6ZIVi/W1OVq14viKDGdVobpcMRjvwK66sOzeuBWcnprXs1dTAzPJwYvmb?=
 =?iso-8859-1?Q?A3aJf/jfca32wHstu5dBjhuchK/tMMQt8z+JMBlGIYqaCQE1SWs4NaAZcH?=
 =?iso-8859-1?Q?DIrR+5EGihVrUG060+4OzTCwsQHq/R9pJ7ok/Vrasq9iqiTRn7VFl5O/du?=
 =?iso-8859-1?Q?+SbgbRgJ+XU347T1LCt6vfgcHS0Z+Sc2D6yIJw/5ubLSVMet5LKDqNRF8U?=
 =?iso-8859-1?Q?Gp8O/M7BMS9pzmgJ7Ivr6TfzZgZdsmIjEa016HJFns52pwSqGX2a04dItL?=
 =?iso-8859-1?Q?0NwOeooBCp+Co/edDO4FVBfLdiP1ppcdLSQnW2uRztUNGPDLW6YU86g6yi?=
 =?iso-8859-1?Q?RbszBvC0fqNYakTIgTglVgmsS58vrJIiwH2r+EEmu5jgTsAGljNOxtuGy5?=
 =?iso-8859-1?Q?to8jEazu/USgA=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-ID: <3604114147EA4848A9D47613A7A5E439@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: 8ca040a1-b876-4a88-602b-08dd78a3d47f
X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Apr 2025 02:51:59.6566
 (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: 05Yu870AmKDaRNFBP9n27EZ2SKpABJfB19+D3BfOXgrZekcUsNr4z1iirnB0MTDRfZfIUuw6yAew29ptZtgtPA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN0PR12MB5761

On 2025/4/10 20:34, Jan Beulich wrote:
> On 09.04.2025 08:45, Jiqian Chen wrote:
>> --- a/xen/drivers/pci/pci.c
>> +++ b/xen/drivers/pci/pci.c
>> @@ -40,7 +40,7 @@ unsigned int pci_find_cap_offset(pci_sbdf_t sbdf, unsi=
gned int cap)
>>  }
>> =20
>>  unsigned int pci_find_next_cap_ttl(pci_sbdf_t sbdf, unsigned int pos,
>> -                                   const unsigned int caps[], unsigned =
int n,
>> +                                   const unsigned int *caps, unsigned i=
nt n,
>=20
> I don't follow the need for this change.
This changed is for my next patch "vpci/header: Emulate legacy capability l=
ist for host".
Currently, vpci only emulates capability list for domU, not for dom0.
For domU, vpci exposes a fixed capability array which calls "supported_caps=
".
My changes want to emulate capability list for dom0.
I think vpci should expose all devices capabilities to dom0.
When I emulate it, I need to iterate over all capabilities without another =
fixed array,
so I need this function to return the position of next capability directly =
when passing a zero length array to this function.

>=20
>> @@ -55,6 +55,10 @@ unsigned int pci_find_next_cap_ttl(pci_sbdf_t sbdf, u=
nsigned int pos,
>> =20
>>          if ( id =3D=3D 0xff )
>>              break;
>> +
>> +        if ( !caps || n =3D=3D 0 )
>> +            return pos;
>=20
> Checking n to be zero ought to suffice here? In that case it doesn't matt=
er
> what caps is. Plus if n is non-zero, it clearly is an error if caps was N=
ULL.
Two checking is to prevent null pointer errors.
But as you said, if checking n to be zero is enough, then I don't need to c=
hange the definition of this function.
I will change in next version.

>=20
> Jan

--=20
Best regards,
Jiqian Chen.


From xen-devel-bounces@lists.xenproject.org Fri Apr 11 02:54:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 02:54:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.946578.1344418 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u34Xc-0007GL-Cp; Fri, 11 Apr 2025 02:54:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 946578.1344418; Fri, 11 Apr 2025 02: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 1u34Xc-0007GE-9M; Fri, 11 Apr 2025 02:54:52 +0000
Received: by outflank-mailman (input) for mailman id 946578;
 Fri, 11 Apr 2025 02: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=AtDH=W5=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1u34Xb-0007G8-Ik
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 02:54:51 +0000
Received: from NAM02-BN1-obe.outbound.protection.outlook.com
 (mail-bn1nam02on20607.outbound.protection.outlook.com
 [2a01:111:f403:2407::607])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 54ec1213-1680-11f0-9ffb-bf95429c2676;
 Fri, 11 Apr 2025 04:54:49 +0200 (CEST)
Received: from BL1PR12MB5849.namprd12.prod.outlook.com (2603:10b6:208:384::18)
 by MN0PR12MB5761.namprd12.prod.outlook.com (2603:10b6:208:374::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.22; Fri, 11 Apr
 2025 02:54:45 +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.8606.035; Fri, 11 Apr 2025
 02:54: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: 54ec1213-1680-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=lLWtZuJZ9YEEekCmzX/w6tTU2d8KPiMuWlg3IRd9tckQWgo4m3dmthDWxHW44MHCNmRmTf+/15usTUDFk57usplqq+IuSoNP/Ar79WFgMa2xELvJD/XOxp2GYZplsutZOSkdEGnNMHxHemrh842y4vzdKXzcyBF/vi4BAbKR942oQJKp5Qvk9+qisQgjWUsMKIw2iRQof+/c+SOCKP1cY67YazUDDHIN55KngdwV3zr4a1Em+PnyotlsoQ0VrXO33s7Euw2bGJf/SnvLjW+aITeJc3pAcAG0+AU30HjxV7SoF6JWtTBqerDQRfQYFLQZOmY4vZ91cj2SPiR5B4HiFw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=PCpQrs7bddYr+gubjWjlP6wQIVfg7X1MiNNGkD/P3r0=;
 b=KSR1hkhJerLRobmDx9UAy4nONXqrdes8yfkQIhQs4za7LIwe+HqP81y2//9yYCPs4D3Sh5Ru2HzX1HhiBwbNEk3UYCwY1oJallO5IgT2U71MWvzkkEi+HdedAxGVwLojbMv+8Qhn3ZpPw9Gw6WRbprv8FBCYEGqpe8FfnUpeEIigQ5gDcnGjfQfhVziY2y4E+EPPQxAhjOa1cHz/7a0fodBI8ns1JV245WUKzDl4erkEd6lKi+PZ1EfaBCAzeKDSXUqcYR/Mwt5sv2PJBu0fakdBkWGt5C8NFLyTeP3FKoETGTMxX7pcvW+IM8F/OgHktuVrNJa2bG+bygZCX6622Q==
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=PCpQrs7bddYr+gubjWjlP6wQIVfg7X1MiNNGkD/P3r0=;
 b=FQkGJWJ+0YxVlTlTNboXYC/uvTb8MIoneMFij8J1y14lt9UNOuxHvmV0vo5JEQiudazAzqLy8hBbQ29TD8g/TdckNoDAuuRnQMauqVwudSwjFYvcW5u9JCP00ndx4s1qC4h3hlX5gmQcdcTqil7S0jE/TYMqJwSV4sLx2oJrVNY=
From: "Chen, Jiqian" <Jiqian.Chen@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, "Huang,
 Ray" <Ray.Huang@amd.com>, "Chen, Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [PATCH v2 2/8] vpci/header: Emulate legacy capability list for
 host
Thread-Topic: [PATCH v2 2/8] vpci/header: Emulate legacy capability list for
 host
Thread-Index: AQHbqRsaTINnyZcO4ESL6xMBZUfUtLOc2UMAgAF0NAA=
Date: Fri, 11 Apr 2025 02:54:45 +0000
Message-ID:
 <BL1PR12MB58497FCC952CDEE7BAEF0688E7B62@BL1PR12MB5849.namprd12.prod.outlook.com>
References: <20250409064528.405573-1-Jiqian.Chen@amd.com>
 <20250409064528.405573-3-Jiqian.Chen@amd.com>
 <7e89babb-ea6f-4434-a90b-19c2d12cc58d@suse.com>
In-Reply-To: <7e89babb-ea6f-4434-a90b-19c2d12cc58d@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.8606.035)
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_|MN0PR12MB5761:EE_
x-ms-office365-filtering-correlation-id: c4b49483-1ad2-42a4-4347-08dd78a43727
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?SHlLRVdpcXVHUzZ4RDgvb3ViTnk5QXhub1I0Q1pSSVhyV25Yd1JVbmVRZTJo?=
 =?utf-8?B?eVVEL1Z2QjVEcmkrKzU1b0tROUoyYzc1V1V6djArMEU0eFEySTFHN3JHRFVz?=
 =?utf-8?B?MGlzTlZwQ0xjdXhTcnIwTUEzelJCVHphY2thcU80VzEzbHRkWTJNTzZrZndz?=
 =?utf-8?B?YThYOUZUTmh3VDRwZFZuRDJZTWdENHZYMGJQT3VDSXZCODJZZmlJdGdJWGtX?=
 =?utf-8?B?NXJnNHM5b1hlWTkyWFoveEcwUmd2ODNMcmxScTVqc3UyWHdYYUErVC9MS0RF?=
 =?utf-8?B?VU9YQVpWMWpCOTZKdEV6VSsvTFRtWkFSOGFpRkJBU3VzdFJSS20vZ0s2Q25I?=
 =?utf-8?B?dEVmbTZJZ1FNaGM1MmxWQ3NHUGV5ZXVHZ1RFOU9tTWRKNmYrUU9LaUFRSUVL?=
 =?utf-8?B?ZXVuMG9CZ25qc1BwcFFGUmpYbm1ocmN1dkFZbGwwQ05IZkUwck0vOC80Nmty?=
 =?utf-8?B?SlFTT05EUDNEV09RNHZjdUlGdW1ZTlVBS3NDRDdrK3BDTzlLd05IKzNvVkl2?=
 =?utf-8?B?OG05Y1hmVHQwbmpJdlJEb3JtTUNONEFUZFZvbkdMTVlNWG4vVTVROTNFWC9a?=
 =?utf-8?B?L2U3VGlSWDNFOGExVVY3dzBxV01UK1lHZmJGSmpOdUo5ZjczeUMzTnNiWFV2?=
 =?utf-8?B?M29jamkyUUtUVEovQ0orTHhveEdKMXgxMXRxcytEak9iTjM0bWJ3ZGwrRUwx?=
 =?utf-8?B?UlBOQVptNG1pN1JvRTFLelFOYlk2eVZsc0g5blp6VS85NWV1aXNMNTMxMUc1?=
 =?utf-8?B?Z2g2aFBsSGJOV29zK2pTaWdYTk1WOUNvV3cwOTdDZWc2ZGgyS3FjRzYyYWhk?=
 =?utf-8?B?VzRKMVczYVAyellmc3IzbnRZRm5ndVlUTDk3M0E3cTNXbGRnb1RLSmFCWDEy?=
 =?utf-8?B?dDFpamdLMHlyallCOWszSVVBUVdnMkovbHBuUnFKVnZPVUI1RVdmaFJSaEg0?=
 =?utf-8?B?cm5YYkJyT1JiaHZsdzRRNHVWV1VMMHUvQWNrbHZtNUNsZ0JUU2lIY1hpcENI?=
 =?utf-8?B?Z2E0eTMrcDFKQXkwcGtjZ0lIM1VJeXRXeWFITnY3eGxyOGdQTnBUdXhUenBG?=
 =?utf-8?B?SDlDRCt0eGxFa2RjZ2NWOGpZMElMU2MreGs2YkhGWko2QWhud0U5UFNpb3FG?=
 =?utf-8?B?Rm9OTHlIdnpieThUS29XZ25PNVRwdlY0NnE5aEFlb0RaL00xaVpLVzlvZklU?=
 =?utf-8?B?d1RLK3lYcVlHcGd2N2haVmJvRVVJQXJoNGJ1TmZURkFuV2dmNkQvdzJod0JK?=
 =?utf-8?B?K0ZkOUlUdlhDR0tyY0JkVXZVMnNYWWJQUHl4aDVMa21FMlVjeDRQOUdZVnRa?=
 =?utf-8?B?dGhhaC9GV21QaE5xMWVNTkdvaDYwTVZqMXJrbm56b1pUVU82SkdWNFdJdlpr?=
 =?utf-8?B?Ykh0RUw4eUFkeEs2MVAwM2NtS28xaWJMazA3N1UrY29vWThjRzdIdHJaa0FC?=
 =?utf-8?B?c0d2cjJXUmtYdE1XSDc5UExTbWltZ0pwRmdKaGtER1I1UlhzNWpSVGhJN014?=
 =?utf-8?B?RWx4OFhDRWdUb3RKazllakdPSWZ0b0liRzJMbmNSUzhha3JaWTNPZ0FIaHBS?=
 =?utf-8?B?QS91c3pnWDdTNEFXSW96U0tqUWFNcDh0Q0xQQ1ROQVM1OS9OcGx2QlI2NmVZ?=
 =?utf-8?B?K1k2cW5Gc0ZrVTI4YWtHRE14QnlsWkxZeG1DZXUrc0dqdHJpbUlUYnFXNmJJ?=
 =?utf-8?B?d2dLNFR0bSsxQWVmYjJtTmJ0N2pSQ0ZZMGpLSkE0VWxIcCs4b0JNODM4eldt?=
 =?utf-8?B?bTVDak5zZ3NLdUpOLzFhT2tkWlo3RHBUS3BvZE5RbWlnSEF1K0x5Tyt3dzRj?=
 =?utf-8?B?MkhJSkw2MFljK0MwanhHbVVQeG9aNDZ6RTRkMFNhYkk3WFR6NGtaL2dGSEpG?=
 =?utf-8?B?eG9NMU0xRk5qanJ1aERmY1hndkNiZHh4NlFjUkJ0QTJqQlA1ZnBHNGZIZWRQ?=
 =?utf-8?B?dXRZZjRPUmw4Tk00RHZDMFFYb1Q2R1VUck5acGNxdTYzbkpzbWZKU0tQVWpk?=
 =?utf-8?Q?fhSnaCILHg5wLxuEW5b4TeiZgy/rF8=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?MUh6WjRyTDhMTlVRLzR2T2ZYYlByR1dtMnJmNTdKS3VEUmhXMnppWnhqUVFx?=
 =?utf-8?B?Rnp4YkdLZzVMRVk5US9WUzRNTTVtNW1hRjAvV1ZqcFBJWFZuTjgyR3Jrei9a?=
 =?utf-8?B?elhtd0pUMTZuaFAxRmVvWE9UQ0dJS0RsSzRSc2lKRldQcHFLa0hyOEtadi9r?=
 =?utf-8?B?MlNpUDM4eG9DTGovYVBHZi8wS2Zra0dXdzBlSi9XWTh6YWxMMzZJbm1URUx4?=
 =?utf-8?B?dGsyZ2M2V2dCRklzWFdmaDkwOFJkbmVUUUh0RWJqdmllNFJpRjZOL2djS2Iw?=
 =?utf-8?B?ajhRQmVhZkk5VVczRGdpbEdVKzlRSW1nU2xITmRqK1Z0TEZ6L1dBaWJ6N0sv?=
 =?utf-8?B?ZHEvWmdqOEdJd0hmR3gwV1BQcngyUTNoWDdsbHF6RDdZUzFrYTJoWEN4QTQ4?=
 =?utf-8?B?ZzIrZ0tFVWFMMG1MVnFiTjJXaUVlakR6SnM4dW4yTEQvenpTR2VZdVlUQ0Uz?=
 =?utf-8?B?QzdIbUtBTTMrZHVlT1Zsc0hQQktFL1BpRHRVMlI1RjNxZCtjR2xpQ2UxQS9u?=
 =?utf-8?B?bkZPbHhqc3dzTW83MlVxSWZmYkxiKzlVOGtocWVqdjNIZTg2bU9rcWF3Q1Vu?=
 =?utf-8?B?TnpUMXYvN2dzbzhnR3hkNFVXRmpSYjZlRjVJanlGTnY2N0FLZSs5UHNDdVJG?=
 =?utf-8?B?bWtielZKWXNLMEgyYzJFNFpjUW13MjBEazlnajAvYjJRRnRIc1BQUnZIbTJH?=
 =?utf-8?B?eEg1S2NITjlsbEJoVlJ5M3l2QW9tVUxvWDg2Z21INUJKU2hRbjFzVmg2cHM0?=
 =?utf-8?B?emtScXEwRGdvbms0N3BsRk9rTktMUjAwQ0lna09LZndhNUg4Rll0alBBdDd6?=
 =?utf-8?B?dDkzVlA0QnRKSWc5UDNNcWF3TVBEMjY1UklGV1N2aGRCSS9tZTAwOXBjVTNX?=
 =?utf-8?B?dVpBcjQyWmQ5WXNERXgvYW1xSTlvaWVkekhQaUJSR3kyUDk4bVRwVENXSi9S?=
 =?utf-8?B?MjVvSTRQVEtxQjlCeXU2S3h4by81WC91di9sbWVuRmFlR2NwR2trRzNLNTNu?=
 =?utf-8?B?SjlRZStkcVRnaVRTbTkrZnB4ZGlNdVRZK0piT1lxVGZIRUtNQXNySkNaWVAz?=
 =?utf-8?B?WG4xOXVTemNsK29ldXRhTlJ3UUhRalBoNldMWVJEQTN4bHJtUmFrbjhraUtR?=
 =?utf-8?B?UjdndEkrakRtdXBKcGxubktROC95SW5XY20xMThVTGxoL2ZZYjhGaEhXZFQx?=
 =?utf-8?B?K09FUUxudVQyVitQczNpOW4yWkdVWVRXQUovN2N0UG9yVU5BUEduUUwvakNx?=
 =?utf-8?B?ZE5OZ0pwZFcwZ256UkRaY3g5SDZqdnllZDFNQ3ZHcXdSVkNhWXlSaXArK0I2?=
 =?utf-8?B?QUorSTUydmJzWE0yODFPL1VFemxKKy85WFZUWHRWelhRbVcrQ2hSVlhQSUM5?=
 =?utf-8?B?Vko5TGNWcGtET1FjdlB5NUUrNFA2OXdSZlJHb09TTlRMMXRxdUd2emdMU0xi?=
 =?utf-8?B?R1JwSmxOVHN4SWVoaDA5R3BVRkNhdGU1VGRDcXhPOGVMSlgwTlIzVUJSVCts?=
 =?utf-8?B?bytkcmRabE5kK1JtK01FWnVSUktQUlQvZUZXdk8zL1A3NFpSYmxod3I3QkFL?=
 =?utf-8?B?RlNYakwwOHUrMWFNVnZwSGQvd01HNVJ6MGhvbUJ5cjkycFFvV21GSWxSRTdk?=
 =?utf-8?B?OC92RmRoOEVOdEc2NkNhTWs2Ty9MZVhXSmlVRFlzM1Fralgwa05ndW5GNmd3?=
 =?utf-8?B?c1hpaEhWSU55UTNMWEE3SjFMSUpVeUJoUHlFUlNtMFJoa3prRkV3dWJ5QTVt?=
 =?utf-8?B?amRvOEFwbG82cHlucjUxWUhid1lyOG9TYUxzQndGQ2RzT2N3bGFvdW1ybEhB?=
 =?utf-8?B?NENsMnUrYTVCZTFCTnVEaVRCVnlBOWxBVEY4MlkzbVRqNGhBbzVFSlB4K0Zo?=
 =?utf-8?B?L0VrQ3AwaE9EemhjL3RQbUp2dkRxUE02aDgwUy9nSGNoSGc1R2NpQjdwMmJI?=
 =?utf-8?B?b1lITVdtTXRKaEpkM1NWR0ZrcU9IcGw2Sy9TVG9ETDUveGtwd3QzSHhEcU85?=
 =?utf-8?B?Z0UyMi9LczgxY0dHQjV6UjNBOXJlR0M2azVpWFltRmQxVHFIY29lSkkvYUhy?=
 =?utf-8?B?M2lJd0FIb0xWOE9jVzVEck5mV1gzM2xCS3NSVUUrc0c3UlNSSzRoaitjOEov?=
 =?utf-8?Q?GSxE=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <34EB6A1BB9B5824C803740448F6B1138@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: c4b49483-1ad2-42a4-4347-08dd78a43727
X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Apr 2025 02:54:45.1546
 (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: 8jmIWtpeoNcWuKf2BtoLXNOyiEjcNa6FjgjTUKS2fXUmmc8x9fNb23KWHUvbDhVbvmEiYTDRHiwQGWIYAwB5CA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN0PR12MB5761

T24gMjAyNS80LzEwIDIwOjQwLCBKYW4gQmV1bGljaCB3cm90ZToNCj4gT24gMDkuMDQuMjAyNSAw
ODo0NSwgSmlxaWFuIENoZW4gd3JvdGU6DQo+PiBDdXJyZW50IGxvZ2ljIG9mIGluaXRfaGVhZGVy
KCkgb25seSBlbXVsYXRlcyBsZWdhY3kgY2FwYWJpbGl0eSBsaXN0DQo+PiBmb3IgZ3Vlc3QsIGV4
cGFuZCBpdCB0byBlbXVsYXRlIGZvciBob3N0IHRvby4gU28gdGhhdCBpdCB3aWxsIGJlDQo+PiBl
YXN5IHRvIGhpZGUgYSBjYXBhYmlsaXR5IHdob3NlIGluaXRpYWxpemF0aW9uIGZhaWxzIGFuZCBu
byBuZWVkDQo+PiB0byBkaXN0aW5ndWlzaCBob3N0IG9yIGd1ZXN0Lg0KPiANCj4gQmVmb3JlIEkg
KG1heWJlKSBsb29rIGF0IHRoZSBwYXRjaCBhcyBhIGhvbGU6IFdoZW4geW91IHNheSAiZ3Vlc3Qi
IHlvdQ0KPiBtZWFuICJEb21VIiAod2hpY2ggaXMgYSBjb21tb24gcGFpciBvZiBzeW5vbnltcyB3
ZSB1c2UpLCB3aGVyZWFzIHdoZW4NCj4geW91IHNheSAiaG9zdCIgeW91IG1lYW4gIkRvbTAiPyBU
aGUgbGF0dGVyIGlzIG5vdCBhIGNvbW1vbiBwYWlyIG9mDQo+IHN5bm9ueW1zOyAiaG9zdCIgZ2Vu
ZXJhbGx5IGNvdmVycyB0aGUgZW50aXJlIHN5c3RlbSwgaW5jbHVkaW5nIFhlbiBhbmQNCj4gYWxs
IGRvbWFpbnMuIFNlZSBlLmcuIHdvcmRpbmcgdGhhdCB3ZSB1c2UgaW4gWFNBcy4NClllcywgZ3Vl
c3QgbWVhbnMgZG9tVSwgaG9zdCBtZWFucyBkb20wKG9yIGhhcmR3YXJlIGRvbWFpbj8pLCBJIHdp
bGwgY2hhbmdlIG15IHdvcmQgaW4gbmV4dCB2ZXJzaW9uDQpUaGFuayB5b3UhDQoNCj4gDQo+IEph
bg0KDQotLSANCkJlc3QgcmVnYXJkcywNCkppcWlhbiBDaGVuLg0K


From xen-devel-bounces@lists.xenproject.org Fri Apr 11 06:40:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 06:40:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.946600.1344429 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3846-0007B2-5O; Fri, 11 Apr 2025 06:40:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 946600.1344429; Fri, 11 Apr 2025 06:40: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 1u3846-0007Av-1h; Fri, 11 Apr 2025 06:40:38 +0000
Received: by outflank-mailman (input) for mailman id 946600;
 Fri, 11 Apr 2025 06:40: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=8esB=W5=gmail.com=npiggin@srs-se1.protection.inumbo.net>)
 id 1u3844-0007Ap-GU
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 06:40:36 +0000
Received: from mail-pf1-x429.google.com (mail-pf1-x429.google.com
 [2607:f8b0:4864:20::429])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id deffcf1d-169f-11f0-9ead-5ba50f476ded;
 Fri, 11 Apr 2025 08:40:35 +0200 (CEST)
Received: by mail-pf1-x429.google.com with SMTP id
 d2e1a72fcca58-736b350a22cso1376119b3a.1
 for <xen-devel@lists.xenproject.org>; Thu, 10 Apr 2025 23:40:35 -0700 (PDT)
Received: from localhost ([220.253.99.94]) by smtp.gmail.com with ESMTPSA id
 41be03b00d2f7-b029dff3b64sm4083209a12.0.2025.04.10.23.40.28
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 10 Apr 2025 23:40:33 -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: deffcf1d-169f-11f0-9ead-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1744353634; x=1744958434; 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=WFEK5BUAzhnm7Ls0LSYKvyunOzyOHTaf9tKVCyYIPn0=;
        b=js33gaEp83OAwPIntbfNpAYLR9W0OI3+TYprDxXwsQiJ7hEagJbR/cF2+tofPWyG5s
         s74rKgL6zbUY6pBwADLRF+QOi7JsVqlf4B83xc18Yo/McL/9NOUlZNUzaNoJDAtKfHvd
         fH4eMfdCDhJD/u9oWi284R9saUO+Hx55tNu5EuyreEpEkaMrMbHge9ceD3Whe5K2oEaD
         SpEx2Kr0sx9O3WZKQpbiFbxMi2XWp3SlZeHHt/E93EdSsCIZ9yIFqlSFgK8JQ1q9sJYq
         BhfwqvfeS0vn9OfrN5sydMNjcvvIRWKSJ2UFZ4ypn7PfnNBhCXRXqUBHwBDgoXK6brbG
         k22g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744353634; x=1744958434;
        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=WFEK5BUAzhnm7Ls0LSYKvyunOzyOHTaf9tKVCyYIPn0=;
        b=j6obY+4vaAWVnrLEBXw/ATgbg+Zwumjxe4u4etsMwfsUH8RpVPZdTsSAwj4s2uTEn6
         2pKv9ITZj18xMCc/X2xmvsacQirU2+aHK2Qc8NtuWjCn+W9WqNhoFolZPKEPnpEL1PYJ
         /QeRxoBlNnkCpO2OxUGz8BFtHChTfrfx5YJJp8y2TTbnr/O3UTzGmLi4lQVbjuOWwk2x
         iS/Ls+BENJUz5w5Xjgo7pd8HMFS+5MhFv14MRb3V5nQCcim2+iYkacokAd33M4KPGtJF
         r5usyxfEdKI5xfTWnpVCfsPZHITjNS4uqTLr+lRK97XEhwM5gr+eOewx/8loMVq5aB/3
         b81w==
X-Forwarded-Encrypted: i=1; AJvYcCURPQsofTi0vriQJNo1Pp+QZHipmyIE6NCJU8Hld3kRKaFKiVVc9OSJL5GKkj2cOsDBcdwhRyVOQX0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyhYu27FBu/XhgFCcmAD0u8RmFaIfYqTbZpPWh1DgxRhq1dLu92
	ZQYb7GyvpRwkL6ExG5p0flr69fGN4O35uCPMuHz7gOMchMI6PQzM
X-Gm-Gg: ASbGncuiR6LORMr2IPP6iboeOPRhdROH7v98xdepfCIUOYfZMXQLsUtImQAj+PzK3cx
	If3cotZ/rjOywJ9u4YdzDHvFDiZhCGfeF16pYeOLBfKEYoJXpkyksgU44Y0E3PlclPx4ERCC6d8
	w9CK/dKkOC8xAsoWKmAQuGdg4iaxGQWZeaCLAN5/3xOm+pOEEbOBoC8rYeLSSC6Ee2PDWbqqQKC
	tbLkwWEV0hCGcnZLgY5ZuFxmzsRItLG9yjtF5qyuzL/rW7M80MZ1zeJubgfss+pCTh6mznPyGNu
	EG/gbP7tt+PMscZaOU7DmYc6Eo9haz/VVQ==
X-Google-Smtp-Source: AGHT+IGxv2OdTwUHRm9UMQ0BxuItHKpv+vDYxaqSXEB9Rf30X+vmBhY4lLT/tgRpdLMgX439EpkNdA==
X-Received: by 2002:a05:6a00:13a1:b0:730:927c:d451 with SMTP id d2e1a72fcca58-73bd12a9926mr2119650b3a.20.1744353633666;
        Thu, 10 Apr 2025 23:40:33 -0700 (PDT)
Mime-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=UTF-8
Date: Fri, 11 Apr 2025 16:40:25 +1000
Message-Id: <D93LR52FZ2QR.399C9CFVNU658@gmail.com>
Cc: "Hugh Dickins" <hughd@google.com>, "Guenter Roeck" <linux@roeck-us.net>,
 "Juergen Gross" <jgross@suse.com>, "Jeremy Fitzhardinge" <jeremy@goop.org>,
 <linux-kernel@vger.kernel.org>, <linux-mm@kvack.org>,
 <kasan-dev@googlegroups.com>, <sparclinux@vger.kernel.org>,
 <xen-devel@lists.xenproject.org>, <linuxppc-dev@lists.ozlabs.org>,
 <linux-s390@vger.kernel.org>
Subject: Re: [PATCH v1 1/4] kasan: Avoid sleepable page allocation from
 atomic context
From: "Nicholas Piggin" <npiggin@gmail.com>
To: "Alexander Gordeev" <agordeev@linux.ibm.com>, "Andrew Morton"
 <akpm@linux-foundation.org>, "Andrey Ryabinin" <ryabinin.a.a@gmail.com>
X-Mailer: aerc 0.19.0
References: <cover.1744037648.git.agordeev@linux.ibm.com>
 <ad1b313b6e3e1a84d2df6f686680ad78ae99710c.1744037648.git.agordeev@linux.ibm.com>
In-Reply-To: <ad1b313b6e3e1a84d2df6f686680ad78ae99710c.1744037648.git.agordeev@linux.ibm.com>

On Tue Apr 8, 2025 at 1:11 AM AEST, Alexander Gordeev wrote:
> apply_to_page_range() enters lazy MMU mode and then invokes
> kasan_populate_vmalloc_pte() callback on each page table walk
> iteration. The lazy MMU mode may only be entered only under
> protection of the page table lock. However, the callback can
> go into sleep when trying to allocate a single page.
>
> Change __get_free_page() allocation mode from GFP_KERNEL to
> GFP_ATOMIC to avoid scheduling out while in atomic context.

It's a bit unfortunate to make this use atomic allocs for
archs that don't need it.

Could you make it depend on __HAVE_ARCH_ENTER_LAZY_MMU_MODE
or is that overkill?

I wanted to remove ppc64's per-CPU page array and replace it
with on stack or dynaimc alloc array in the thread... but
cost/benefit of working on ppc64 hash MMU code is not
high :(

Fix itself for ppc64's requirement at least looks right to me
so for that,

Reviewed-by: Nicholas Piggin <npiggin@gmail.com>

>
> Signed-off-by: Alexander Gordeev <agordeev@linux.ibm.com>
> ---
>  mm/kasan/shadow.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/mm/kasan/shadow.c b/mm/kasan/shadow.c
> index 88d1c9dcb507..edfa77959474 100644
> --- a/mm/kasan/shadow.c
> +++ b/mm/kasan/shadow.c
> @@ -301,7 +301,7 @@ static int kasan_populate_vmalloc_pte(pte_t *ptep, un=
signed long addr,
>  	if (likely(!pte_none(ptep_get(ptep))))
>  		return 0;
> =20
> -	page =3D __get_free_page(GFP_KERNEL);
> +	page =3D __get_free_page(GFP_ATOMIC);
>  	if (!page)
>  		return -ENOMEM;
> =20



From xen-devel-bounces@lists.xenproject.org Fri Apr 11 06:47:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 06:47:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.946619.1344439 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u38AQ-0000XB-Pu; Fri, 11 Apr 2025 06:47:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 946619.1344439; Fri, 11 Apr 2025 06:47: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 1u38AQ-0000X4-MV; Fri, 11 Apr 2025 06:47:10 +0000
Received: by outflank-mailman (input) for mailman id 946619;
 Fri, 11 Apr 2025 06:47: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=8esB=W5=gmail.com=npiggin@srs-se1.protection.inumbo.net>)
 id 1u38AP-0000Ww-3K
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 06:47:09 +0000
Received: from mail-pl1-x630.google.com (mail-pl1-x630.google.com
 [2607:f8b0:4864:20::630])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c716536c-16a0-11f0-9ffb-bf95429c2676;
 Fri, 11 Apr 2025 08:47:04 +0200 (CEST)
Received: by mail-pl1-x630.google.com with SMTP id
 d9443c01a7336-227914acd20so22778215ad.1
 for <xen-devel@lists.xenproject.org>; Thu, 10 Apr 2025 23:47:07 -0700 (PDT)
Received: from localhost ([220.253.99.94]) by smtp.gmail.com with ESMTPSA id
 d9443c01a7336-22ac7b8b2c1sm41872295ad.59.2025.04.10.23.47.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 10 Apr 2025 23:47:04 -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: c716536c-16a0-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1744354025; x=1744958825; 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=BlT93k3tsOOzLmAYutjlNjX6BFvDuWnFmTQ9IJuMKl4=;
        b=lFi4vxnUNMJw2iAx0kjzL6nS5NniBwJtNinsFzF8E2yZ76d9El9Q5al4BV+Y5Q4X09
         ZOe8t9E2rJx3sp24/6afwwYg/RRdj2L70vfYOuuX5RG2pYSgLkDk5L1Rue9slXezhJpm
         9/gn2/E8/ImFsKR1ybd3bQ2otV3wCxu/LIkHbqURpn68YVQ+QYAGODHZ4gIgURCOs8fQ
         RDhrz0kXLOoe9aEojfn+om1sljsHqSH39rSXwnl4gFWYQmOx+hsizLOgcqf2AJbsSFQ6
         Qp+V1zXHZtcww4p9Pr2aA5IiAIYZvtNilT0B5J05m6e5t+/5OW4SSD9FsZS8v07uyXND
         d8kw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744354025; x=1744958825;
        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=BlT93k3tsOOzLmAYutjlNjX6BFvDuWnFmTQ9IJuMKl4=;
        b=n1yIXb3x0nLgtUZD5dAAmdzG5g8MHPWY3+RqWNaAOg59fSmFyXjXMgIj8BXcscNEg1
         sHv8d4fA4YAwafJ770UD88ZccM0tKqJJrtBkVjOOuu5eUb8BFPyuDncQ9nOFEkO9GSWE
         TECebdIED3zMlNl7qKzB2IEpZbuxVOJcdHBZDfE/wRkcgnZqvYIJgE8VEmOzqplGgkbH
         PzVGQNcE4Yd3ZMb7DeW/sHOeMVi9oq3//vjDQ2PM3bLvPiQk5gx6p1+5eCblerU9SM05
         hIHIzZooLtdAuTBG4XrNVCtselQ3YjZzAe09+HCAtaR9+4HlcqBjmGUL8XICmGEU47zC
         ILpg==
X-Forwarded-Encrypted: i=1; AJvYcCVHsd1hyMmuYY4h1ikmL+A4051FgftOYtZ3v/OArhEAP5NjGQIfb8Kvu8NvRvxOZtMDb0FIvqkgoaw=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz7K355JW8AQDWSgN3C8+wqIO4aY5unc0i7TaEv/ZXuyLzjpn+L
	JCMmZpS7ydw/R4Qz+2ciWluD9OLdduBGNMfaGdd7vBX8zSid+tXD
X-Gm-Gg: ASbGncuGV4kHjXZqGVlAoi5q2pcPRT0W3kjRcpNEyM4+VoRsAsUt48AsUoh1OvtyXsa
	g0PxCQC3kCLBZrzYLBwX+Gk5qDjtg/KjJRRBno2VcPXZQ5sLI+GTq+ddpa+AzEJWsMxdfZZkTY1
	d4sG8v+KQY9TggNgo38DDLS1ynbRzsBVOKvofCfcfft1/J1O25KlvS714cTvXC9S88+TrUpKxk/
	c8+GOAdRyqN32VARp0Ya0dj0iIHSZC6/ICGDhhyn7ZPBk9eVd5TY8nFti8bRkkM448AsurJ4LDS
	hBi84a/Cpr+qz2d7sN33Xb8TJ/q91kqJMw==
X-Google-Smtp-Source: AGHT+IEaCH7pfyseCsY0ABQGUFfCNsdZ0JepyMppPzef2Ij2uLIjrUD7lNR1McifQnqxw6aLmm43tw==
X-Received: by 2002:a17:902:d489:b0:215:58be:3349 with SMTP id d9443c01a7336-22bea05e17fmr25293145ad.14.1744354025413;
        Thu, 10 Apr 2025 23:47:05 -0700 (PDT)
Mime-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=UTF-8
Date: Fri, 11 Apr 2025 16:46:58 +1000
Message-Id: <D93LW58FLXOS.2U8X0CO2H9H5S@gmail.com>
Subject: Re: [PATCH v1 2/4] mm: Cleanup apply_to_pte_range() routine
From: "Nicholas Piggin" <npiggin@gmail.com>
To: "Alexander Gordeev" <agordeev@linux.ibm.com>, "Andrew Morton"
 <akpm@linux-foundation.org>, "Andrey Ryabinin" <ryabinin.a.a@gmail.com>
Cc: "Hugh Dickins" <hughd@google.com>, "Guenter Roeck" <linux@roeck-us.net>,
 "Juergen Gross" <jgross@suse.com>, "Jeremy Fitzhardinge" <jeremy@goop.org>,
 <linux-kernel@vger.kernel.org>, <linux-mm@kvack.org>,
 <kasan-dev@googlegroups.com>, <sparclinux@vger.kernel.org>,
 <xen-devel@lists.xenproject.org>, <linuxppc-dev@lists.ozlabs.org>,
 <linux-s390@vger.kernel.org>
X-Mailer: aerc 0.19.0
References: <cover.1744037648.git.agordeev@linux.ibm.com>
 <93102722541b1daf541fce9fb316a1a2614d8c86.1744037648.git.agordeev@linux.ibm.com>
In-Reply-To: <93102722541b1daf541fce9fb316a1a2614d8c86.1744037648.git.agordeev@linux.ibm.com>

On Tue Apr 8, 2025 at 1:11 AM AEST, Alexander Gordeev wrote:
> Reverse 'create' vs 'mm =3D=3D &init_mm' conditions and move
> page table mask modification out of the atomic context.
>
> Signed-off-by: Alexander Gordeev <agordeev@linux.ibm.com>
> ---
>  mm/memory.c | 28 +++++++++++++++++-----------
>  1 file changed, 17 insertions(+), 11 deletions(-)
>
> diff --git a/mm/memory.c b/mm/memory.c
> index 2d8c265fc7d6..f0201c8ec1ce 100644
> --- a/mm/memory.c
> +++ b/mm/memory.c
> @@ -2915,24 +2915,28 @@ static int apply_to_pte_range(struct mm_struct *m=
m, pmd_t *pmd,
>  				     pte_fn_t fn, void *data, bool create,
>  				     pgtbl_mod_mask *mask)
>  {
> +	int err =3D create ? -ENOMEM : -EINVAL;

Could you make this a new variable instead of reusing
existing err? 'const int pte_err' or something?

>  	pte_t *pte, *mapped_pte;
> -	int err =3D 0;
>  	spinlock_t *ptl;
> =20
> -	if (create) {
> -		mapped_pte =3D pte =3D (mm =3D=3D &init_mm) ?
> -			pte_alloc_kernel_track(pmd, addr, mask) :
> -			pte_alloc_map_lock(mm, pmd, addr, &ptl);
> +	if (mm =3D=3D &init_mm) {
> +		if (create)
> +			pte =3D pte_alloc_kernel_track(pmd, addr, mask);
> +		else
> +			pte =3D pte_offset_kernel(pmd, addr);
>  		if (!pte)
> -			return -ENOMEM;
> +			return err;
>  	} else {
> -		mapped_pte =3D pte =3D (mm =3D=3D &init_mm) ?
> -			pte_offset_kernel(pmd, addr) :
> -			pte_offset_map_lock(mm, pmd, addr, &ptl);
> +		if (create)
> +			pte =3D pte_alloc_map_lock(mm, pmd, addr, &ptl);
> +		else
> +			pte =3D pte_offset_map_lock(mm, pmd, addr, &ptl);
>  		if (!pte)
> -			return -EINVAL;
> +			return err;
> +		mapped_pte =3D pte;
>  	}
> =20
> +	err =3D 0;
>  	arch_enter_lazy_mmu_mode();
> =20
>  	if (fn) {
> @@ -2944,12 +2948,14 @@ static int apply_to_pte_range(struct mm_struct *m=
m, pmd_t *pmd,
>  			}
>  		} while (addr +=3D PAGE_SIZE, addr !=3D end);
>  	}
> -	*mask |=3D PGTBL_PTE_MODIFIED;
> =20
>  	arch_leave_lazy_mmu_mode();
> =20
>  	if (mm !=3D &init_mm)
>  		pte_unmap_unlock(mapped_pte, ptl);
> +
> +	*mask |=3D PGTBL_PTE_MODIFIED;

This is done just because we might as well? Less work in critical
section?

Reviewed-by: Nicholas Piggin <npiggin@gmail.com>

> +
>  	return err;
>  }
> =20



From xen-devel-bounces@lists.xenproject.org Fri Apr 11 06:53:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 06:53:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.946632.1344449 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u38Gj-0003l4-DY; Fri, 11 Apr 2025 06:53:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 946632.1344449; Fri, 11 Apr 2025 06: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 1u38Gj-0003kx-A5; Fri, 11 Apr 2025 06:53:41 +0000
Received: by outflank-mailman (input) for mailman id 946632;
 Fri, 11 Apr 2025 06:53: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=8esB=W5=gmail.com=npiggin@srs-se1.protection.inumbo.net>)
 id 1u38Gi-0003kr-4S
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 06:53:40 +0000
Received: from mail-pl1-x62d.google.com (mail-pl1-x62d.google.com
 [2607:f8b0:4864:20::62d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b005288e-16a1-11f0-9ffb-bf95429c2676;
 Fri, 11 Apr 2025 08:53:35 +0200 (CEST)
Received: by mail-pl1-x62d.google.com with SMTP id
 d9443c01a7336-227b650504fso15887755ad.0
 for <xen-devel@lists.xenproject.org>; Thu, 10 Apr 2025 23:53:37 -0700 (PDT)
Received: from localhost ([220.253.99.94]) by smtp.gmail.com with ESMTPSA id
 d2e1a72fcca58-73bd2333841sm728200b3a.160.2025.04.10.23.53.31
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 10 Apr 2025 23:53:35 -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: b005288e-16a1-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1744354416; x=1744959216; 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=q0GUgempXeR1Ai6jdCUdrwnFpwuRrrfXxvPcXnoqanQ=;
        b=Ldia82s7as7tJlNW8WcmKpre+QshRcjt+jfeTjK49Abm5XAAPDksxahSlkEvujV+Kk
         GuyM2Jvwiu4JcJaAWR+5a2Z0p6Ea/8KkUAoSyit1ahZ9MRDdpMvVkw0u13OCo1NtEMUC
         ODbUxVrQsTSJdPT6xXn2NnbcP0jkcqZ0wfP/fFVRWMaSQOd/wIqPh6K3s5z+MRxVhHau
         S+VWizpVq4lfv6nf2DU8Do/c+gJ3l1AZKbFp0IH8Th2BbDqTI6qHZIyhCERZl8cQJwmm
         LN/MGXzH4h+PwwN7WS4qRx1xdBiVXXfmIce3DEBOjlY7xgNuz6e1yU9wEmapY6dr4byw
         s10w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744354416; x=1744959216;
        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=q0GUgempXeR1Ai6jdCUdrwnFpwuRrrfXxvPcXnoqanQ=;
        b=BVzN0e/puqIftkc6MlotBie9p1pXZDSwDfq05itKsIuUi9jEtMqgI8Gs/Hkc+wYCgP
         RKmDXOxre8N1/f9jBjA5uE6lpcFQka68CZWWh4Vfsg1a0Jp9x8vuOypX8w0LlPiKp3x9
         +KGshgPaqwxITl1MUnwDf3aBwsJMWsHtd23Ef6f7MwpttFnoS8vVAMxwND8rGJvy6Zgz
         TUQC5v8G3/dxjLIm30rPN7cejABxEaeknaCSiwhCFLhHsjUGtfuurx1wAA5q9AAW6aOD
         7NqM09z07QFHFS7CnXM/rn650hmvdiLCD3bDfCqy/JLL2jstSFMZYoxqmDdjrMb5LRNN
         SpnA==
X-Forwarded-Encrypted: i=1; AJvYcCW9wApi3kVgcmUjAp/i8shFDE4E3n2frUsUrRtLTatFNEDU3qWZkEZ7o8x4YpIhygPNKLFLOkx56dY=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzzp00BvVLn/SBgAWY/tiyKjYuw9nEecVaNWbME1FA2hnQC2SMG
	gIYjopZNcYCVr9dxWTiXFNoNUPKKYqX7wdKxZPM3vU50+nS9eKZ2
X-Gm-Gg: ASbGncsSEbwnjtcw+jfLHSfTQA2GpJUL57pUDbNGmCC9VizVV2iGWXpkt8EDyRb8KMj
	n+sGO3PoT8Jg7/0g8fgXNWvwRjs9E//2ny0OGXjW9R59WGYWxy/7Aw4YH2TcHiIbwAV3hg9dgXg
	brJRfN9YtWH50zz7uMgIKsrzHEMeXg2hOde6N33ugeTVyTe8fcHnmMfCJPmYE18CLVPRnJxrZXo
	RuSYJfX0TmuTcqrMRDCCIcUkLRyhI7giqxFLYeGcwNCX0ygDtGERzCWElrh0SjEIBf0LGF3pBAU
	D7dVC7Xrytp0Evtz8PR6g6JTj6DyyB3N2g==
X-Google-Smtp-Source: AGHT+IGl0nL5wKmwFlWsQ9ssGXCB2kOLf/x4PGlQUnJhSihZMIEaJP/+c7G4d96OdeU+R8O+pnzM/Q==
X-Received: by 2002:a17:902:cec4:b0:224:e33:889b with SMTP id d9443c01a7336-22bea4ade03mr24590165ad.12.1744354416369;
        Thu, 10 Apr 2025 23:53:36 -0700 (PDT)
Mime-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=UTF-8
Date: Fri, 11 Apr 2025 16:53:29 +1000
Message-Id: <D93M14UCYU7Y.39ZQIH7VON6DG@gmail.com>
From: "Nicholas Piggin" <npiggin@gmail.com>
To: "Alexander Gordeev" <agordeev@linux.ibm.com>, "Andrew Morton"
 <akpm@linux-foundation.org>, "Andrey Ryabinin" <ryabinin.a.a@gmail.com>
Cc: "Hugh Dickins" <hughd@google.com>, "Guenter Roeck" <linux@roeck-us.net>,
 "Juergen Gross" <jgross@suse.com>, "Jeremy Fitzhardinge" <jeremy@goop.org>,
 <linux-kernel@vger.kernel.org>, <linux-mm@kvack.org>,
 <kasan-dev@googlegroups.com>, <sparclinux@vger.kernel.org>,
 <xen-devel@lists.xenproject.org>, <linuxppc-dev@lists.ozlabs.org>,
 <linux-s390@vger.kernel.org>
Subject: Re: [PATCH v1 3/4] mm: Protect kernel pgtables in
 apply_to_pte_range()
X-Mailer: aerc 0.19.0
References: <cover.1744037648.git.agordeev@linux.ibm.com>
 <11dbe3ac88130dbd2b8554f9369cd93fe138c655.1744037648.git.agordeev@linux.ibm.com>
In-Reply-To: <11dbe3ac88130dbd2b8554f9369cd93fe138c655.1744037648.git.agordeev@linux.ibm.com>

On Tue Apr 8, 2025 at 1:11 AM AEST, Alexander Gordeev wrote:
> The lazy MMU mode can only be entered and left under the protection
> of the page table locks for all page tables which may be modified.
> Yet, when it comes to kernel mappings apply_to_pte_range() does not
> take any locks. That does not conform arch_enter|leave_lazy_mmu_mode()
> semantics and could potentially lead to re-schedulling a process while
> in lazy MMU mode or racing on a kernel page table updates.
>
> Signed-off-by: Alexander Gordeev <agordeev@linux.ibm.com>
> ---
>  mm/kasan/shadow.c | 7 ++-----
>  mm/memory.c       | 5 ++++-
>  2 files changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/mm/kasan/shadow.c b/mm/kasan/shadow.c
> index edfa77959474..6531a7aa8562 100644
> --- a/mm/kasan/shadow.c
> +++ b/mm/kasan/shadow.c
> @@ -308,14 +308,14 @@ static int kasan_populate_vmalloc_pte(pte_t *ptep, =
unsigned long addr,
>  	__memset((void *)page, KASAN_VMALLOC_INVALID, PAGE_SIZE);
>  	pte =3D pfn_pte(PFN_DOWN(__pa(page)), PAGE_KERNEL);
> =20
> -	spin_lock(&init_mm.page_table_lock);
>  	if (likely(pte_none(ptep_get(ptep)))) {
>  		set_pte_at(&init_mm, addr, ptep, pte);
>  		page =3D 0;
>  	}
> -	spin_unlock(&init_mm.page_table_lock);
> +
>  	if (page)
>  		free_page(page);
> +
>  	return 0;
>  }
> =20

kasan_populate_vmalloc_pte() is really the only thing that
takes the ptl in the apply_to_page_range fn()... Looks like
you may be right. I wonder why they do and nobody else? Just
luck?

Seems okay.

Reviewed-by: Nicholas Piggin <npiggin@gmail.com>

> @@ -401,13 +401,10 @@ static int kasan_depopulate_vmalloc_pte(pte_t *ptep=
, unsigned long addr,
> =20
>  	page =3D (unsigned long)__va(pte_pfn(ptep_get(ptep)) << PAGE_SHIFT);
> =20
> -	spin_lock(&init_mm.page_table_lock);
> -
>  	if (likely(!pte_none(ptep_get(ptep)))) {
>  		pte_clear(&init_mm, addr, ptep);
>  		free_page(page);
>  	}
> -	spin_unlock(&init_mm.page_table_lock);
> =20
>  	return 0;
>  }
> diff --git a/mm/memory.c b/mm/memory.c
> index f0201c8ec1ce..1f3727104e99 100644
> --- a/mm/memory.c
> +++ b/mm/memory.c
> @@ -2926,6 +2926,7 @@ static int apply_to_pte_range(struct mm_struct *mm,=
 pmd_t *pmd,
>  			pte =3D pte_offset_kernel(pmd, addr);
>  		if (!pte)
>  			return err;
> +		spin_lock(&init_mm.page_table_lock);
>  	} else {
>  		if (create)
>  			pte =3D pte_alloc_map_lock(mm, pmd, addr, &ptl);
> @@ -2951,7 +2952,9 @@ static int apply_to_pte_range(struct mm_struct *mm,=
 pmd_t *pmd,
> =20
>  	arch_leave_lazy_mmu_mode();
> =20
> -	if (mm !=3D &init_mm)
> +	if (mm =3D=3D &init_mm)
> +		spin_unlock(&init_mm.page_table_lock);
> +	else
>  		pte_unmap_unlock(mapped_pte, ptl);
> =20
>  	*mask |=3D PGTBL_PTE_MODIFIED;



From xen-devel-bounces@lists.xenproject.org Fri Apr 11 06:54:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 06:54:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.946645.1344458 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u38Hb-0004LR-P2; Fri, 11 Apr 2025 06:54:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 946645.1344458; Fri, 11 Apr 2025 06: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 1u38Hb-0004LK-ML; Fri, 11 Apr 2025 06:54:35 +0000
Received: by outflank-mailman (input) for mailman id 946645;
 Fri, 11 Apr 2025 06: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=8esB=W5=gmail.com=npiggin@srs-se1.protection.inumbo.net>)
 id 1u38Ha-00045y-JH
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 06:54:34 +0000
Received: from mail-pl1-x62f.google.com (mail-pl1-x62f.google.com
 [2607:f8b0:4864:20::62f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d2d14cf0-16a1-11f0-9ead-5ba50f476ded;
 Fri, 11 Apr 2025 08:54:34 +0200 (CEST)
Received: by mail-pl1-x62f.google.com with SMTP id
 d9443c01a7336-22435603572so16171025ad.1
 for <xen-devel@lists.xenproject.org>; Thu, 10 Apr 2025 23:54:33 -0700 (PDT)
Received: from localhost ([220.253.99.94]) by smtp.gmail.com with ESMTPSA id
 d2e1a72fcca58-73bd23342ddsm728537b3a.164.2025.04.10.23.54.27
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 10 Apr 2025 23:54:31 -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: d2d14cf0-16a1-11f0-9ead-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1744354472; x=1744959272; 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=EMrPec0FtWGKoKqlWKZKVYlPugkOpwSx2KisPfbkQKU=;
        b=TjWk9vHbuWglbg5m6Kd0xzDb5o3I0Todz+A9K7VDQoAjIXc6GwKtFkY/NROiHfqaqQ
         AT0Iy4BcF5FgRGzAVhXdfaXfmPRyAte5P3MS9aOzTBPoVpRbJZ9Q/D6jcbNtoLPJ9moe
         BRBotqe4TBfDp6+WFlAtqfZoJ2HVQt9K6ndO50RsRX46nufSbXtTzlSuPaQF2pHBONxv
         2eZXHG5nKvoLbJHRz8h1iIcQFcsH1Lf/x8UkAQez3t02ShqYVHzofAV22NN+C1GGaWOg
         L74zVRyY+OENbX5TLqvnzoKA++jKFpDhnR/rVNIm2EIxGoAp9Pi9qCJ0WxzU/SxncDpb
         5yug==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744354472; x=1744959272;
        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=EMrPec0FtWGKoKqlWKZKVYlPugkOpwSx2KisPfbkQKU=;
        b=eW/4XYtel1XDoHOc39iJ2Uk9GZavj3mV9ZT0c0LP3o2s2k1di1UG88h7KvsCQG8/vp
         2pcpqLbq/kwUnDWPNQcgrCzGH38jX2AQc147Jho4Gg0flNKKle7w1sz+/0eDPXzDJW5g
         OQ+9QXwTRIBIRqKsu/Y+falr66YTEpLZ3Y2jbV8jSt/osOcotyBVbBsF9eVOMMtWgXF1
         GTeMCb4dgImBH9gxr8w5PEhlY101UeQe7edAx6EbQ4sQcPV97veUm03aUs1+Itt2FwBY
         xUKfX2DGecGz0iRmqy6OQFo2xina+YahFpSQ5HyFZo166CfR3G/vfhnCWRqvu0v1gtN3
         0mMg==
X-Forwarded-Encrypted: i=1; AJvYcCXf6yIqQLwuGqPQCZEcuz42n7AH2YY0JBx7xAHohXexRzH4we+WXinueNBbFnyQ3d3jwbm8BKcsSE4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YydXRDuIwKR2MurG2hudz0B7+X+lbs30SAJ3QRqwgrGUDj4BQqu
	R4JGUiFF3DcIpaG0I/cKmJbtXIsVz42wpgyk6P1+0y0V9tpD+GIL
X-Gm-Gg: ASbGncvMfZ5rAwTSmIwmfP/mgq/yKghhGv7PhWrnZZxZUIThFmPqbQcylJEMSER89Gm
	aLzQzba52tK0yZg9WAFV33xzirKm8BMucKkm1b8nKCiTZospCCypRHdQ7pIBwbLGblgNozHJep7
	fL42hd5e00jT5ZOCaRrX3Pn962PgaagQp1VntyW3hPZilToAtcgS/8vdcHivAcG1qShiaU3QS9C
	upxDujGWTiuI8Kf5jrqJrfwLp3fPNh/86URsy7viCKOpGCnIN1vdOs2ml/iFWs2giqj/RISMFdj
	zWeT8Nhzm2iOOc3q1/TBM/UW5Gy3r4og7w==
X-Google-Smtp-Source: AGHT+IGSH0OgLf53VF7UhNZNnJ/VcLJp7S3R1+Mq4jeyNCKlAufgShNsDG1jyYvvXL3wLn/jNMdw9A==
X-Received: by 2002:a17:902:ce8a:b0:224:191d:8a87 with SMTP id d9443c01a7336-22bea4bc62emr24301425ad.26.1744354472347;
        Thu, 10 Apr 2025 23:54:32 -0700 (PDT)
Mime-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=UTF-8
Date: Fri, 11 Apr 2025 16:54:25 +1000
Message-Id: <D93M1ULKMFVB.FY9I2463RQ68@gmail.com>
Cc: "Hugh Dickins" <hughd@google.com>, "Guenter Roeck" <linux@roeck-us.net>,
 "Juergen Gross" <jgross@suse.com>, "Jeremy Fitzhardinge" <jeremy@goop.org>,
 <linux-kernel@vger.kernel.org>, <linux-mm@kvack.org>,
 <kasan-dev@googlegroups.com>, <sparclinux@vger.kernel.org>,
 <xen-devel@lists.xenproject.org>, <linuxppc-dev@lists.ozlabs.org>,
 <linux-s390@vger.kernel.org>
Subject: Re: [PATCH v1 1/4] kasan: Avoid sleepable page allocation from
 atomic context
From: "Nicholas Piggin" <npiggin@gmail.com>
To: "Alexander Gordeev" <agordeev@linux.ibm.com>, "Andrew Morton"
 <akpm@linux-foundation.org>, "Andrey Ryabinin" <ryabinin.a.a@gmail.com>
X-Mailer: aerc 0.19.0
References: <cover.1744037648.git.agordeev@linux.ibm.com>
 <ad1b313b6e3e1a84d2df6f686680ad78ae99710c.1744037648.git.agordeev@linux.ibm.com>
In-Reply-To: <ad1b313b6e3e1a84d2df6f686680ad78ae99710c.1744037648.git.agordeev@linux.ibm.com>

On Tue Apr 8, 2025 at 1:11 AM AEST, Alexander Gordeev wrote:
> apply_to_page_range() enters lazy MMU mode and then invokes
> kasan_populate_vmalloc_pte() callback on each page table walk
> iteration. The lazy MMU mode may only be entered only under
> protection of the page table lock. However, the callback can
> go into sleep when trying to allocate a single page.
>
> Change __get_free_page() allocation mode from GFP_KERNEL to
> GFP_ATOMIC to avoid scheduling out while in atomic context.
>
> Signed-off-by: Alexander Gordeev <agordeev@linux.ibm.com>
> ---
>  mm/kasan/shadow.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/mm/kasan/shadow.c b/mm/kasan/shadow.c
> index 88d1c9dcb507..edfa77959474 100644
> --- a/mm/kasan/shadow.c
> +++ b/mm/kasan/shadow.c
> @@ -301,7 +301,7 @@ static int kasan_populate_vmalloc_pte(pte_t *ptep, un=
signed long addr,
>  	if (likely(!pte_none(ptep_get(ptep))))
>  		return 0;
> =20
> -	page =3D __get_free_page(GFP_KERNEL);
> +	page =3D __get_free_page(GFP_ATOMIC);
>  	if (!page)
>  		return -ENOMEM;
> =20

Oh of course you can't make it GFP_KERNEL after the
patch to take ptl even for archs that don't use lazy
mmu.

Thanks,
Nick


From xen-devel-bounces@lists.xenproject.org Fri Apr 11 07:12:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 07:12:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.946668.1344468 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u38Z6-0002U8-9Q; Fri, 11 Apr 2025 07:12:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 946668.1344468; Fri, 11 Apr 2025 07:12:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u38Z6-0002U1-6t; Fri, 11 Apr 2025 07:12:40 +0000
Received: by outflank-mailman (input) for mailman id 946668;
 Fri, 11 Apr 2025 07:12: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=8esB=W5=gmail.com=npiggin@srs-se1.protection.inumbo.net>)
 id 1u38Z5-0002Tv-FO
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 07:12:39 +0000
Received: from mail-pg1-x52a.google.com (mail-pg1-x52a.google.com
 [2607:f8b0:4864:20::52a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 58724771-16a4-11f0-9ffb-bf95429c2676;
 Fri, 11 Apr 2025 09:12:37 +0200 (CEST)
Received: by mail-pg1-x52a.google.com with SMTP id
 41be03b00d2f7-af5a4cd980dso1259429a12.1
 for <xen-devel@lists.xenproject.org>; Fri, 11 Apr 2025 00:12:37 -0700 (PDT)
Received: from localhost ([220.253.99.94]) by smtp.gmail.com with ESMTPSA id
 98e67ed59e1d1-306dd171942sm4948139a91.33.2025.04.11.00.12.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 11 Apr 2025 00:12:35 -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: 58724771-16a4-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1744355555; x=1744960355; 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=KzShCwppEme7OMOnT5z5FD+rJw9aaKOfx1ISsPkjuh4=;
        b=m7N655dXREtApFKttX0G4028arbSmwSal0RkViShQbHMYhP5+4gMUYfsV1Ew0P2jv/
         Oo1KopnuHkxAKRyq6IehN8GNUa0bm9KeiBXb20EUj9/zA3esLLsPLABck/YAYasStGGN
         O9i/fQjuVvXZO+0xYtJRao3DV6CCHbFnGQMTM6ACAzQNDelgywRi28o8t5JY13/jc8xt
         6GsJ37+KP68fsr1ppacZuKJkvTFjHVp+CGdJPYbsdw5SYVCcdwyTNt+1bSpUG+jCsKMs
         3FwHm4Oo0p8SXS3ZH4E4svl6OQwat3sn/0BvMRIdKqsPCa5GgADh7duaD3m3AlpqCvQN
         B+3A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744355555; x=1744960355;
        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=KzShCwppEme7OMOnT5z5FD+rJw9aaKOfx1ISsPkjuh4=;
        b=OfCfcjfROtNwMd1lsKPT3i5VuThS8knabfwsGZUhLobjMF9X4jYTI3LHUCUcerrpnO
         Ne1GxIgl6golKKxee7QEYuY4nQo6ySvmkMZ9B7z3I2q5fJQXjVe0YpIu3k6cEs+TYVc1
         Hc0dP5938qjVyjlccerS5qRAuR298I4IrgpA9IrLOPZxOC/JXwNU/ldU3aNuc5+D/JVn
         HOUfcyx7Tf6u7kDlBW+jEU4IzcT60OVbb1RYqZU2R5bQRK7aHEtSyybF4c56r0RLG3xW
         OHeQ/p35MKuEQ6HslK7/IQ/CbH11tyZEr6+QLOjhWx43ZJeLvIwwBOa7lQyrk2mPFKTx
         Ofzg==
X-Forwarded-Encrypted: i=1; AJvYcCXMpmL0/9lFCl+JgoVHUC/PSkVwEAPuhPGoAUaUtAiLDP8GCzugiKFJjc1GLZwvRUzOB7aB2iFEMeo=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwZvvdavf8X5neidBE5DCwNHJ1ODWNiuzbDhI9bB+NQZd76eHMh
	RiUO37XQfvSjmERioxFoLtSJuwk6FSOKH7CGHsFAMNwCpWKuHta9
X-Gm-Gg: ASbGncsGjzjCENQyDzz/UVnhglo2WeUtTtgiOsocgbQ2PTXkYSer2Rx2Ad4cnPcdPGI
	tcSSOHNWlqU8YGMz0ETnF4CNqMze/gACclx6GevQswup5Ucjj/bS7h5UEZjbwRzn0l/09+EQhx2
	Xq9XVgNwmHi9fMe/lWQ6+o/DQTLYmoEMTsPUHPa47u/O0BQQ76mJFoPkfXOI7qUArnASMSp2L+m
	5Me9HFSuhr9iQBToJmzjxwPZwJDavwT50AEVi5WQaOc0PWLSyfnvsXIXqwDAo1bVFqVcd2unNV6
	TcdEnVYKL6LP22RemEeOA0IF3VuIkr651w==
X-Google-Smtp-Source: AGHT+IHpSOk8rGIiMZXty/hbuCSKlXyveZLgB4pNTJ04Shha/BPkKtAvaM61qadHeDDYt8o+ld2JZA==
X-Received: by 2002:a17:90b:5245:b0:2ff:784b:ffe with SMTP id 98e67ed59e1d1-3082377c271mr2980340a91.11.1744355555591;
        Fri, 11 Apr 2025 00:12:35 -0700 (PDT)
Mime-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=UTF-8
Date: Fri, 11 Apr 2025 17:12:28 +1000
Message-Id: <D93MFO5IGN4M.2FWKFWQ9G807P@gmail.com>
Cc: "Hugh Dickins" <hughd@google.com>, "Guenter Roeck" <linux@roeck-us.net>,
 "Juergen Gross" <jgross@suse.com>, "Jeremy Fitzhardinge" <jeremy@goop.org>,
 <linux-kernel@vger.kernel.org>, <linux-mm@kvack.org>,
 <kasan-dev@googlegroups.com>, <sparclinux@vger.kernel.org>,
 <xen-devel@lists.xenproject.org>, <linuxppc-dev@lists.ozlabs.org>,
 <linux-s390@vger.kernel.org>
Subject: Re: [PATCH v1 0/4] mm: Fix apply_to_pte_range() vs lazy MMU mode
From: "Nicholas Piggin" <npiggin@gmail.com>
To: "Alexander Gordeev" <agordeev@linux.ibm.com>, "Andrew Morton"
 <akpm@linux-foundation.org>, "Andrey Ryabinin" <ryabinin.a.a@gmail.com>
X-Mailer: aerc 0.19.0
References: <cover.1744037648.git.agordeev@linux.ibm.com>
In-Reply-To: <cover.1744037648.git.agordeev@linux.ibm.com>

On Tue Apr 8, 2025 at 1:11 AM AEST, Alexander Gordeev wrote:
> Hi All,
>
> This series is an attempt to fix the violation of lazy MMU mode context
> requirement as described for arch_enter_lazy_mmu_mode():
>
>     This mode can only be entered and left under the protection of
>     the page table locks for all page tables which may be modified.
>
> On s390 if I make arch_enter_lazy_mmu_mode() -> preempt_enable() and
> arch_leave_lazy_mmu_mode() -> preempt_disable() I am getting this:
>
>     [  553.332108] preempt_count: 1, expected: 0
>     [  553.332117] no locks held by multipathd/2116.
>     [  553.332128] CPU: 24 PID: 2116 Comm: multipathd Kdump: loaded Taint=
ed:
>     [  553.332139] Hardware name: IBM 3931 A01 701 (LPAR)
>     [  553.332146] Call Trace:
>     [  553.332152]  [<00000000158de23a>] dump_stack_lvl+0xfa/0x150
>     [  553.332167]  [<0000000013e10d12>] __might_resched+0x57a/0x5e8
>     [  553.332178]  [<00000000144eb6c2>] __alloc_pages+0x2ba/0x7c0
>     [  553.332189]  [<00000000144d5cdc>] __get_free_pages+0x2c/0x88
>     [  553.332198]  [<00000000145663f6>] kasan_populate_vmalloc_pte+0x4e/=
0x110
>     [  553.332207]  [<000000001447625c>] apply_to_pte_range+0x164/0x3c8
>     [  553.332218]  [<000000001448125a>] apply_to_pmd_range+0xda/0x318
>     [  553.332226]  [<000000001448181c>] __apply_to_page_range+0x384/0x76=
8
>     [  553.332233]  [<0000000014481c28>] apply_to_page_range+0x28/0x38
>     [  553.332241]  [<00000000145665da>] kasan_populate_vmalloc+0x82/0x98
>     [  553.332249]  [<00000000144c88d0>] alloc_vmap_area+0x590/0x1c90
>     [  553.332257]  [<00000000144ca108>] __get_vm_area_node.constprop.0+0=
x138/0x260
>     [  553.332265]  [<00000000144d17fc>] __vmalloc_node_range+0x134/0x360
>     [  553.332274]  [<0000000013d5dbf2>] alloc_thread_stack_node+0x112/0x=
378
>     [  553.332284]  [<0000000013d62726>] dup_task_struct+0x66/0x430
>     [  553.332293]  [<0000000013d63962>] copy_process+0x432/0x4b80
>     [  553.332302]  [<0000000013d68300>] kernel_clone+0xf0/0x7d0
>     [  553.332311]  [<0000000013d68bd6>] __do_sys_clone+0xae/0xc8
>     [  553.332400]  [<0000000013d68dee>] __s390x_sys_clone+0xd6/0x118
>     [  553.332410]  [<0000000013c9d34c>] do_syscall+0x22c/0x328
>     [  553.332419]  [<00000000158e7366>] __do_syscall+0xce/0xf0
>     [  553.332428]  [<0000000015913260>] system_call+0x70/0x98
>
> This exposes a KASAN issue fixed with patch 1 and apply_to_pte_range()
> issue fixed with patches 2-3. Patch 4 is a debug improvement on top,
> that could have helped to notice the issue.
>
> Commit b9ef323ea168 ("powerpc/64s: Disable preemption in hash lazy mmu
> mode") looks like powerpc-only fix, yet not entirely conforming to the
> above provided requirement (page tables itself are still not protected).
> If I am not mistaken, xen and sparc are alike.

Huh. powerpc actually has some crazy code in __switch_to() that is
supposed to handle preemption while in lazy mmu mode. So we probably
don't even need to disable preemption, just use the raw per-cpu
accessors (or keep disabling preemption and remove the now dead code
from context switch).

IIRC all this got built up over a long time with some TLB flush
rules changing at the same time, we could probably stay in lazy mmu
mode for a longer time until it was discovered we really need to
flush before dropping the PTL.

ppc64 and sparc I think don't even need lazy mmu mode for kasan (TLBs
do not require flushing) and will function just fine if not in lazy
mode (they just flush one TLB at a time), not sure about xen. We could
actually go the other way and require that archs operate properly when
not in lazy mode (at least for kernel page tables) and avoid it for
apply_to_page_range()?

Thanks,
Nick


From xen-devel-bounces@lists.xenproject.org Fri Apr 11 07:16:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 07:16:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.946682.1344479 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u38cu-00034E-Q9; Fri, 11 Apr 2025 07:16:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 946682.1344479; Fri, 11 Apr 2025 07:16: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 1u38cu-000347-MM; Fri, 11 Apr 2025 07:16:36 +0000
Received: by outflank-mailman (input) for mailman id 946682;
 Fri, 11 Apr 2025 07:16: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=8esB=W5=gmail.com=npiggin@srs-se1.protection.inumbo.net>)
 id 1u38ct-000332-RW
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 07:16:35 +0000
Received: from mail-pl1-x62e.google.com (mail-pl1-x62e.google.com
 [2607:f8b0:4864:20::62e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e511ac1f-16a4-11f0-9ffb-bf95429c2676;
 Fri, 11 Apr 2025 09:16:33 +0200 (CEST)
Received: by mail-pl1-x62e.google.com with SMTP id
 d9443c01a7336-22928d629faso16822175ad.3
 for <xen-devel@lists.xenproject.org>; Fri, 11 Apr 2025 00:16:33 -0700 (PDT)
Received: from localhost ([220.253.99.94]) by smtp.gmail.com with ESMTPSA id
 d9443c01a7336-22ac7cb5047sm42114385ad.170.2025.04.11.00.16.26
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 11 Apr 2025 00:16:31 -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: e511ac1f-16a4-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1744355791; x=1744960591; 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=8AZYV1raCKCE7T+GJKC63E8g42JVSDuGR93rMhn9HOQ=;
        b=UJulpGH1BlEuyUwF5vYauZuEY0U3LM9jFcodFwlvyLUQL/h2xOc/Bxy15Q5rT5F+NC
         d9xq/Cg+264yj+7kHMrzzuKfGMIr15KnT2z8b+A5rrICK1/9T1q5xs9BW7+SRQXReMxw
         odg/4owzRcDddvranKicLxNtvW3QEXdHcz44vwLDgebJslSawNtqYLXbSTlKG6KjZuJ/
         KmKzcQrvimX9paGUVzJM7vy/2lyR/ETUQuHocrl59BCwUO6AyVfruNJon5018Um3+agR
         TdiHR1ME7nqZ2lUOurY0l0qUPUyali3pEpnayQRiLIrIdQUkFsiOYgzaoJVi8NvZ71Lq
         VlGw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744355791; x=1744960591;
        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=8AZYV1raCKCE7T+GJKC63E8g42JVSDuGR93rMhn9HOQ=;
        b=YVAAfUDGUgdF3VN9PlTYirPiTdylJsEJbUhNDAfDYTplz0gtLZvCVHbc7aEkr+p13t
         6tkxt1cqj6+sJJQ+jgbqqNS4/WOnFAcS8yUblzV3ghAIgqeErfuLVV2bMoscSPIX9o2t
         QeNVlo2h9p68ZegUhDpgn4PLJ5qahwEuNiJKeaagrP1wD9mrOC+5VX6WGr6NzlGCasgm
         fCIsqV58tGFukJ82mTIDgwSXqfCih+JToUAEVrI8/djLWHR7AzZ3h1P4r6w0lEQbop9O
         wizhVZhQJkkUyAVQRNz0uUOmodVk4BTtol+I36KPG+AqH8225o4JlzDeTgflSCAQ3q6S
         clmQ==
X-Forwarded-Encrypted: i=1; AJvYcCWVPKEtiU3ZHIIyZUU+ycDhGvZYGh5VOllB9jSHyUxeSkRVYtdv4LdjMMlgv1fEogmFu0HWt1nCZE4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzmNz6EaSx97RJ4qSQ/4TgHaktrDaVjD7sw7UlKOhvNNeiric0w
	CxKqO8Uxz+mIKBmpIIYOHeAf3gqR7tUXFJxva4mJ2MDrJF6/8QNi
X-Gm-Gg: ASbGnct/b3xHMJnlHzvzuUBPhTqDQhbC2EJs0utqbw+qwaBn7gmHzpLpA7KiqCxE3zL
	+YZY+pI3ED/wEVfM4njdRajpeh8CbLLthdtyscVBFsDNOTh4iwElvA8zt+8RjDvF4bZdYwVwP05
	6RW6Bb38wqpeEbB4pLSQoyfTS6Jmxkj/gC7dDLk7BfUck/S2frT0hNdhqbsYy4sAAiclbaJD3XW
	z3F9uf0d/+g74qEVGCHggM+DXIOiZxm84YZnca08dZ6Hf4gVJPcKEAmEqQOfwyhqxRRujFLjrHO
	3rozzRoez62MWgVJYI+PDH76skE0DhEAgg==
X-Google-Smtp-Source: AGHT+IHEcvyi3TC9JEHNBrBd62VdoZ1tkH8a7fjLbKQXjCafKk3/popDo8PXG6WTmR/MWpJCm32MMg==
X-Received: by 2002:a17:903:1447:b0:223:5c33:56a2 with SMTP id d9443c01a7336-22bea4bd57fmr30624525ad.28.1744355791439;
        Fri, 11 Apr 2025 00:16:31 -0700 (PDT)
Mime-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=UTF-8
Date: Fri, 11 Apr 2025 17:16:24 +1000
Message-Id: <D93MIOI9YLAD.1WDMNT59MMEM2@gmail.com>
Cc: "Hugh Dickins" <hughd@google.com>, "Guenter Roeck" <linux@roeck-us.net>,
 "Juergen Gross" <jgross@suse.com>, "Jeremy Fitzhardinge" <jeremy@goop.org>,
 <linux-kernel@vger.kernel.org>, <linux-mm@kvack.org>,
 <kasan-dev@googlegroups.com>, <sparclinux@vger.kernel.org>,
 <xen-devel@lists.xenproject.org>, <linuxppc-dev@lists.ozlabs.org>,
 <linux-s390@vger.kernel.org>
Subject: Re: [PATCH v1 4/4] mm: Allow detection of wrong
 arch_enter_lazy_mmu_mode() context
From: "Nicholas Piggin" <npiggin@gmail.com>
To: "Alexander Gordeev" <agordeev@linux.ibm.com>, "Andrew Morton"
 <akpm@linux-foundation.org>, "Andrey Ryabinin" <ryabinin.a.a@gmail.com>
X-Mailer: aerc 0.19.0
References: <cover.1744037648.git.agordeev@linux.ibm.com>
 <5204eaec309f454efcb5a799c9e0ed9da1dff971.1744037648.git.agordeev@linux.ibm.com>
In-Reply-To: <5204eaec309f454efcb5a799c9e0ed9da1dff971.1744037648.git.agordeev@linux.ibm.com>

On Tue Apr 8, 2025 at 1:11 AM AEST, Alexander Gordeev wrote:
> The lazy MMU batching may be only be entered and left under the
> protection of the page table locks for all page tables which may
> be modified. Yet, there were cases arch_enter_lazy_mmu_mode()
> was called without the locks taken, e.g. commit b9ef323ea168
> ("powerpc/64s: Disable preemption in hash lazy mmu mode").
>
> Make default arch_enter|leave|flush_lazy_mmu_mode() callbacks
> complain at least in case the preemption is enabled to detect
> wrong contexts.
>
> Most platforms do not implement the callbacks, so to aovid a
> performance impact allow the complaint when CONFIG_DEBUG_VM
> option is enabled only.
>
> Signed-off-by: Alexander Gordeev <agordeev@linux.ibm.com>

This is a good debugging feature independent of how the fix
is done. I would just warn once, since it's not a bug for
the arch and could fire frequently if it fires at all.

Reviewed-by: Nicholas Piggin <npiggin@gmail.com>

> ---
>  include/linux/pgtable.h | 15 ++++++++++++---
>  1 file changed, 12 insertions(+), 3 deletions(-)
>
> diff --git a/include/linux/pgtable.h b/include/linux/pgtable.h
> index e2b705c14945..959590bb66da 100644
> --- a/include/linux/pgtable.h
> +++ b/include/linux/pgtable.h
> @@ -232,9 +232,18 @@ static inline int pmd_dirty(pmd_t pmd)
>   * and the mode cannot be used in interrupt context.
>   */
>  #ifndef __HAVE_ARCH_ENTER_LAZY_MMU_MODE
> -#define arch_enter_lazy_mmu_mode()	do {} while (0)
> -#define arch_leave_lazy_mmu_mode()	do {} while (0)
> -#define arch_flush_lazy_mmu_mode()	do {} while (0)
> +static inline void arch_enter_lazy_mmu_mode(void)
> +{
> +	VM_WARN_ON(preemptible());
> +}
> +static inline void arch_leave_lazy_mmu_mode(void)
> +{
> +	VM_WARN_ON(preemptible());
> +}
> +static inline void arch_flush_lazy_mmu_mode(void)
> +{
> +	VM_WARN_ON(preemptible());
> +}
>  #endif
> =20
>  #ifndef pte_batch_hint



From xen-devel-bounces@lists.xenproject.org Fri Apr 11 07:31:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 07:31:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.946698.1344488 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u38rL-00007f-0T; Fri, 11 Apr 2025 07:31:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 946698.1344488; Fri, 11 Apr 2025 07:31: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 1u38rK-00007V-U6; Fri, 11 Apr 2025 07:31:30 +0000
Received: by outflank-mailman (input) for mailman id 946698;
 Fri, 11 Apr 2025 07:31: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=U3ez=W5=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u38rJ-00007P-2H
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 07:31:29 +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 f8375c7f-16a6-11f0-9ffb-bf95429c2676;
 Fri, 11 Apr 2025 09:31:23 +0200 (CEST)
Received: by mail-wr1-x42f.google.com with SMTP id
 ffacd0b85a97d-38f2f391864so886655f8f.3
 for <xen-devel@lists.xenproject.org>; Fri, 11 Apr 2025 00:31:23 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 5b1f17b1804b1-43f233a2f08sm74771535e9.12.2025.04.11.00.31.22
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 11 Apr 2025 00:31:22 -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: f8375c7f-16a6-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744356683; x=1744961483; 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=MI1biN8NF20WmiJruFT5kx73Vb34Ei4zROcma0NcqJ0=;
        b=BngydtJoeK/sVcGSDxl5jDwuF/tEwT3tCiOJevSSVYR7FRU5BMFKQY6lEh3EMjkkX8
         LD4RE/FGa2IOKiIdqTQkvd0v1lEfBrSx4Kk3g+5KfbNkKYsKDCK9A22Il/SAgFWKlL1p
         t3HLkDfBIgKCjYvFTWMrTo2ppYv6I6O46GxHk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744356683; x=1744961483;
        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=MI1biN8NF20WmiJruFT5kx73Vb34Ei4zROcma0NcqJ0=;
        b=InOjz7MZZQ4KaKy2YaISQBeUiSH8nLrCb0auDWIsZYjnu4vE/Tn4lso9KpQ5WVBUXr
         l+e7aABJQzAHU24ryhbh9VPBf/JW2aD01du2ALC37h3ai3ZsGYRsQCP8/VOZsMIDTeGp
         I9VD4kgZRS/7qJhQPQ7RKXrNLQGEQtq6xdl9Y/gNO6WgpIcZ/LJ4wfjfMqEHdLYkL8Cq
         NChouy9GgrPgTI1/W3DgRf7kmzVCvAmXV1OoL/mvKPOKwNMs5tIlxbXUWX5GYNqqkpg9
         bNwkpqDdE4fVqEH+Ayruce0SHMoy5SAlWKzy1ehnXqZUCkeNQlCmHXdb+dbrAQsiqhFu
         3A9w==
X-Forwarded-Encrypted: i=1; AJvYcCXF9QkiCWc+kJqU2uAaSMFGFUMmZFCIbWAuttzQtaXxR1GRMKQf3Ly3jZM98DIPxB3iTtPvN6f/37s=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwiVxDg2u+FuJtSanUlmRvyzkOhXtO4mEBqzz/RTeiONlQaAmCd
	MYFhct3ymRG6CBC7TNla0o0lry89ak8QqVpWRtujlB1fBrKLTKCceW7VM0aPx5c=
X-Gm-Gg: ASbGncs7V+ZTf5WZV9HRYPVgjTMco7cfUU6v3paSZUYnBcUg91uESSL+aIX6Zf+EosS
	aoMoS9VLVifMBUqn/AeNBP7qmglqV9mWM3+yIUph3w4bA9gM2OzoqsooU2PGrdSLSjX7eSpiOJi
	8A250J4JJzfyo9lQqbXt+3tnWc5gRBILSFtsF2jCiP3INuTLI7OyzK9FathRiIgv45XZTkj2JDt
	JVpsHzUjqz/zv3RYCCmZgSB83xb1xIjkAUYxEWIbCxGG7hqr7JSJnIiigaVMA5fCYUoYHW9vRyC
	dWpzX0UnG/pfDhlaxLWcZVVVHFYGMjCj5OKB6xbAP2ruQA==
X-Google-Smtp-Source: AGHT+IHjgO/saC8eh3qcyKqrNEusmVmrEIecZJYCZPKuyQBEZWsn+Hi/UEgpI9gczvm7S0PIEfI/WA==
X-Received: by 2002:a05:6000:18a2:b0:38f:503a:d93f with SMTP id ffacd0b85a97d-39eaaec7db5mr1224381f8f.40.1744356682828;
        Fri, 11 Apr 2025 00:31:22 -0700 (PDT)
Date: Fri, 11 Apr 2025 09:31:21 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jason Andryuk <jason.andryuk@amd.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
	xen-devel@lists.xenproject.org,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>, Xenia.Ragiadakou@amd.com,
	Alejandro.GarciaVallejo@amd.com,
	"Lira, Victor M" <VictorM.Lira@amd.com>
Subject: Re: [RFC] xen/x86: allow overlaps with non-RAM regions
Message-ID: <Z_jFSb2-efexUNlL@macbook.lan>
References: <alpine.DEB.2.22.394.2504031755440.3529306@ubuntu-linux-20-04-desktop>
 <Z--0USril0UIhR4R@macbook.lan>
 <3c5dfd26-3c12-498b-aca4-0beac4e991a5@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <3c5dfd26-3c12-498b-aca4-0beac4e991a5@amd.com>

Thanks Jason for getting back, I'm intrigued by this issue :).

On Thu, Apr 10, 2025 at 04:55:54PM -0400, Jason Andryuk wrote:
> On 2025-04-04 06:28, Roger Pau Monné wrote:
> > On Thu, Apr 03, 2025 at 06:01:42PM -0700, Stefano Stabellini wrote:
> > > On one Sapphire AMD x86 board, I see this:
> > > 
> > > 
> > > (XEN) [0000003943ca6ff2]  [00000000f0000000, 00000000f7ffffff] (reserved)
> > > (XEN) [00000039460886d9]  [00000000fd000000, 00000000ffffffff] (reserved)
> > > [...]
> > > (XEN) [    4.612235] 0000:02:00.0: not mapping BAR [fea00, fea03] invalid position
> > > 
> > > 
> > > Linux boots fine on this platform but Linux as Dom0 on Xen does not.
> > > This is because the pci_check_bar->is_memory_hole check fails due to the
> > > MMIO region overlapping with the EFI reserved region.
> > 
> > That's weird.  (Partially) the reason to not attempt to map such BAR
> > is that it should already be mapped, because at dom0 creation time all
> > reserved regions are added to the p2m (see arch_iommu_hwdom_init()).
> > If that's not the case we should figure out why this reserved region
> > is not added to dom0 p2m as part of arch_iommu_hwdom_init().
> 
> Victor discovered these regions are type 11 EfiMemoryMappedIO, but they get
> converted to e820 RESERVED.  The BAR points into it.
> 
> 00000f0000000-00000f7ffffff type=11 attr=800000000000100d
> 00000fd000000-00000fedfffff type=11 attr=800000000000100d
> 00000fee00000-00000fee00fff type=11 attr=8000000000000001
> 00000fee01000-00000ffffffff type=11 attr=800000000000100d
> 
> Xenia discovered Linux keeps small regions like this reserved, but lets
> larger ones (>= 256kb) become holes.  See the comment in Linux
> arch/x86/platform/efi/efi.c:efi_remove_e820_mmio() around line 301.

Right, but whatever Linux decides to do with the reserved regions
won't affect how Xen maps them into the p2m.  Anything that's reserved
in the e820 should end up identity mapped in the p2m for PVH dom0,
unless it's being exclusively used by Xen (see
dom0_setup_permissions() use of iomem_deny_access() to deny dom0
access to some MMIO regions).

> The description of EfiMemoryMappedIO is a little confusing, which is
> probably why its use in unclear.
> 
> ```
> Table 7.5 Memory Type Usage before ExitBootServices()
> EfiMemoryMappedIO
> 
> Used by system firmware to request that a memory-mapped IO region be mapped
> by the OS to a virtual address so it can be accessed by EFI runtime
> services.
> 
> Table 7.6 Memory Type Usage after ExitBootServices()
> EfiMemoryMappedIO
> 
> This memory is not used by the OS. All system memory-mapped IO information
> should come from ACPI tables.
> ```
> 
> The two after ExitBootServices sentences seem contradictory.  I wonder if it
> should be "Ignore this memory type - All system memory-mapped IO information
> should come from ACPI tables".

Not very helpful indeed.  The description in "before
ExitBootServices()" seems more sensible to me: if the MMIO region is
used by runtime services Xen should ensure it's always mapped in the
dom0 p2m (which Xen should in principle already do).

> > Can you paste the dom0 build output when booted with `iommu=verbose
> > dom0=pvh,verbose`?

Would it be possible to see the output of a debug=y build when booted
with `iommu=verbose dom0=pvh,verbose` (with or without pf-fixup,
either is fine).

I'm specially interested in the ranggeset contents printed after "d0:
identity mappings for IOMMU:", but if possible would like to see the
full boot log (including Linux dom0).

> > Does using `dom0=pvh,verbose,pf-fixup` solve the
> > boot issue? (and can you paste the output if it does)
> 
> pf-fixup did not resolve it.  The vpci pci_check_bar() check is independent
> of pf-fixup from what I can tell.

Yup, the check is independent, but pf-fixup would create additional
p2m mappings if required (note this is only available on staging).

Also, when using a build of Xen from staging you should now get
messages about unhandled memory accesses by a PVH dom0 whne not using
the `pf-fixup` option.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri Apr 11 07:46:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 07:46:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.946715.1344499 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u395f-0005Uh-9v; Fri, 11 Apr 2025 07:46:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 946715.1344499; Fri, 11 Apr 2025 07: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 1u395f-0005Ua-7N; Fri, 11 Apr 2025 07:46:19 +0000
Received: by outflank-mailman (input) for mailman id 946715;
 Fri, 11 Apr 2025 07:46: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=zPYt=W5=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1u395e-0005UR-NU
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 07:46:18 +0000
Received: from smtp-out1.suse.de (smtp-out1.suse.de
 [2a07:de40:b251:101:10:150:64:1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0d08a2ae-16a9-11f0-9ead-5ba50f476ded;
 Fri, 11 Apr 2025 09:46:17 +0200 (CEST)
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 CE4CE21164;
 Fri, 11 Apr 2025 07:46:16 +0000 (UTC)
Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 745D813886;
 Fri, 11 Apr 2025 07:46:16 +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 GiHmGsjI+GfCBwAAD6G6ig
 (envelope-from <jgross@suse.com>); Fri, 11 Apr 2025 07:46: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: 0d08a2ae-16a9-11f0-9ead-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1744357576; 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=/is5kc0cVPWKncuxsi7jWJpTHDHTMOk+hN0vjzrOOGY=;
	b=jCbD0wcUWiLew7duY/1rLbNbKGamUYvL3feZjwMVNH8nLNjjHvvvq+jje51tn0LS8JYyVS
	cE6wYkyLKd+T6/4ABybiOJvTlsbcpj3CFqiiEoJtpZbQwKHVxOR0n5V72hRGnctP2312k4
	gLRqHkpWQOZ9zeeepVIvkfjFMDIcRNc=
Authentication-Results: smtp-out1.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1744357576; 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=/is5kc0cVPWKncuxsi7jWJpTHDHTMOk+hN0vjzrOOGY=;
	b=jCbD0wcUWiLew7duY/1rLbNbKGamUYvL3feZjwMVNH8nLNjjHvvvq+jje51tn0LS8JYyVS
	cE6wYkyLKd+T6/4ABybiOJvTlsbcpj3CFqiiEoJtpZbQwKHVxOR0n5V72hRGnctP2312k4
	gLRqHkpWQOZ9zeeepVIvkfjFMDIcRNc=
Message-ID: <3c3115a6-f516-4f5f-8998-dafc343c829e@suse.com>
Date: Fri, 11 Apr 2025 09:46:15 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/xen: Fix __xen_hypercall_setfunc
To: Jason Andryuk <jason.andryuk@amd.com>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>,
 "Xin Li (Intel)" <xin@zytor.com>
Cc: Ingo Molnar <mingo@kernel.org>, xen-devel@lists.xenproject.org,
 linux-kernel@vger.kernel.org
References: <20250410193106.16353-1-jason.andryuk@amd.com>
Content-Language: en-US
From: Juergen Gross <jgross@suse.com>
Autocrypt: addr=jgross@suse.com; keydata=
 xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOB
 ycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJve
 dYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJ
 NwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvx
 XP3FAp2pkW0xqG7/377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEB
 AAHNH0p1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT7CwHkEEwECACMFAlOMcK8CGwMH
 CwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRCw3p3WKL8TL8eZB/9G0juS/kDY9LhEXseh
 mE9U+iA1VsLhgDqVbsOtZ/S14LRFHczNd/Lqkn7souCSoyWsBs3/wO+OjPvxf7m+Ef+sMtr0
 G5lCWEWa9wa0IXx5HRPW/ScL+e4AVUbL7rurYMfwCzco+7TfjhMEOkC+va5gzi1KrErgNRHH
 kg3PhlnRY0Udyqx++UYkAsN4TQuEhNN32MvN0Np3WlBJOgKcuXpIElmMM5f1BBzJSKBkW0Jc
 Wy3h2Wy912vHKpPV/Xv7ZwVJ27v7KcuZcErtptDevAljxJtE7aJG6WiBzm+v9EswyWxwMCIO
 RoVBYuiocc51872tRGywc03xaQydB+9R7BHPzsBNBFOMcBYBCADLMfoA44MwGOB9YT1V4KCy
 vAfd7E0BTfaAurbG+Olacciz3yd09QOmejFZC6AnoykydyvTFLAWYcSCdISMr88COmmCbJzn
 sHAogjexXiif6ANUUlHpjxlHCCcELmZUzomNDnEOTxZFeWMTFF9Rf2k2F0Tl4E5kmsNGgtSa
 aMO0rNZoOEiD/7UfPP3dfh8JCQ1VtUUsQtT1sxos8Eb/HmriJhnaTZ7Hp3jtgTVkV0ybpgFg
 w6WMaRkrBh17mV0z2ajjmabB7SJxcouSkR0hcpNl4oM74d2/VqoW4BxxxOD1FcNCObCELfIS
 auZx+XT6s+CE7Qi/c44ibBMR7hyjdzWbABEBAAHCwF8EGAECAAkFAlOMcBYCGwwACgkQsN6d
 1ii/Ey9D+Af/WFr3q+bg/8v5tCknCtn92d5lyYTBNt7xgWzDZX8G6/pngzKyWfedArllp0Pn
 fgIXtMNV+3t8Li1Tg843EXkP7+2+CQ98MB8XvvPLYAfW8nNDV85TyVgWlldNcgdv7nn1Sq8g
 HwB2BHdIAkYce3hEoDQXt/mKlgEGsLpzJcnLKimtPXQQy9TxUaLBe9PInPd+Ohix0XOlY+Uk
 QFEx50Ki3rSDl2Zt2tnkNYKUCvTJq7jvOlaPd6d/W0tZqpyy7KVay+K4aMobDsodB3dvEAs6
 ScCnh03dDAFgIq5nsB11j3KPKdVoPlfucX2c7kGNH+LUMbzqV6beIENfNexkOfxHfw==
In-Reply-To: <20250410193106.16353-1-jason.andryuk@amd.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------ha5mCmVGTf7zxTt5d9sNL5V8"
X-Spam-Level: 
X-Spamd-Result: default: False [-5.19 / 50.00];
	BAYES_HAM(-3.00)[99.99%];
	SIGNED_PGP(-2.00)[];
	MIME_BASE64_TEXT_BOGUS(1.00)[];
	NEURAL_HAM_LONG(-0.99)[-0.992];
	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];
	RCVD_TLS_ALL(0.00)[];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	ARC_NA(0.00)[];
	RCPT_COUNT_TWELVE(0.00)[12];
	MID_RHS_MATCH_FROM(0.00)[];
	FUZZY_BLOCKED(0.00)[rspamd.com];
	TO_DN_SOME(0.00)[];
	FROM_EQ_ENVFROM(0.00)[];
	FROM_HAS_DN(0.00)[];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	RCVD_COUNT_TWO(0.00)[2];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:email,suse.com:mid,imap1.dmz-prg2.suse.org:helo];
	HAS_ATTACHMENT(0.00)[]
X-Spam-Score: -5.19
X-Spam-Flag: NO

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------ha5mCmVGTf7zxTt5d9sNL5V8
Content-Type: multipart/mixed; boundary="------------xaJZS35e14pZLMhLHGg9Ymh0";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Jason Andryuk <jason.andryuk@amd.com>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>,
 "Xin Li (Intel)" <xin@zytor.com>
Cc: Ingo Molnar <mingo@kernel.org>, xen-devel@lists.xenproject.org,
 linux-kernel@vger.kernel.org
Message-ID: <3c3115a6-f516-4f5f-8998-dafc343c829e@suse.com>
Subject: Re: [PATCH] x86/xen: Fix __xen_hypercall_setfunc
References: <20250410193106.16353-1-jason.andryuk@amd.com>
In-Reply-To: <20250410193106.16353-1-jason.andryuk@amd.com>

--------------xaJZS35e14pZLMhLHGg9Ymh0
Content-Type: multipart/mixed; boundary="------------yjog2u70QjDs2nCdxAPK38Qf"

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

T24gMTAuMDQuMjUgMjE6MzEsIEphc29uIEFuZHJ5dWsgd3JvdGU6DQo+IEh5cGVyY2FsbCBk
ZXRlY3Rpb24gaXMgZmFpbGluZyB3aXRoIHhlbl9oeXBlcmNhbGxfaW50ZWwoKSBjaG9zZW4g
ZXZlbiBvbg0KPiBhbiBBTUQgcHJvY2Vzc29yLiAgTG9va2luZyBhdCB0aGUgZGlzYXNzZW1i
bHksIHRoZSBjYWxsIHRvDQo+IHhlbl9nZXRfdmVuZG9yKCkgd2FzIHJlbW92ZWQuDQo+IA0K
PiBUaGUgY2hlY2sgZm9yIGJvb3RfY3B1X2hhcyhYODZfRkVBVFVSRV9DUFVJRCkgd2FzIHVz
ZWQgYXMgYSBwcm94eSBmb3INCj4gdGhlIHg4Nl92ZW5kb3IgaGF2aW5nIGJlZW4gc2V0LiAg
V2hlbg0KPiBDT05GSUdfWDg2X1JFUVVJUkVEX0ZFQVRVUkVfQ1BVSUQ9eSAodGhlIGRlZmF1
bHQgdmFsdWUpLCBEQ0UgZWxpbWluYXRlcw0KPiB0aGUgY2FsbCB0byB4ZW5fZ2V0X3ZlbmRv
cigpLiAgQW4gdW5pbml0aWFsaXplZCB2YWx1ZSAwIG1lYW5zDQo+IFg4Nl9WRU5ET1JfSU5U
RUwsIHNvIHRoZSBJbnRlbCBmdW5jdGlvbiBpcyBhbHdheXMgcmV0dXJuZWQuDQo+IA0KPiBS
ZW1vdmUgdGhlIGlmIGFuZCBhbHdheXMgY2FsbCB4ZW5fZ2V0X3ZlbmRvcigpIHRvIGF2b2lk
IHRoaXMgaXNzdWUuDQo+IA0KPiBGaXhlczogM2QzN2Q5Mzk2ZWIzICgieDg2L2NwdWZlYXR1
cmVzOiBBZGQge1JFUVVJUkVELERJU0FCTEVEfSBmZWF0dXJlIGNvbmZpZ3MiKQ0KPiBTdWdn
ZXN0ZWQtYnk6IEp1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT4NCj4gU2lnbmVkLW9m
Zi1ieTogSmFzb24gQW5kcnl1ayA8amFzb24uYW5kcnl1a0BhbWQuY29tPg0KDQpSZXZpZXdl
ZC1ieTogSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuY29tPg0KDQoNCkp1ZXJnZW4NCg==

--------------yjog2u70QjDs2nCdxAPK38Qf
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-----

--------------yjog2u70QjDs2nCdxAPK38Qf--

--------------xaJZS35e14pZLMhLHGg9Ymh0--

--------------ha5mCmVGTf7zxTt5d9sNL5V8
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/Ey8FAmf4yMcFAwAAAAAACgkQsN6d1ii/Ey9t
tQf9H31H1F+2cZEizM11RYVr3z90UqHcMAKIEnh3XZPvDcJ2KnbBKSjHOm+9Wx7YpHXJghlcs36h
5XSPziohip2BxsTa44QSimor510u0Up1M+INlVVavS1FnY5atHLfJvAjZIh6KjjBKVZFxtFD3e28
2SUYe6V3K+wAywoqL+YeZdKENb88Wjr1mkB7AVIXXxSCWkICN67JTkEgJQD7vpSVAJ81+IbOSSzb
iBjszyU2ey+ZIzhn0XJDRLPvXovYEBzoQ6pROGKY5uQu1M8Izd+sgUVXt+ZeFvwsguCOPWnxbYxN
ALay/H7fqJopsvZHzJM8sU9KRubSUQXq7MIZgQcwbA==
=rk4b
-----END PGP SIGNATURE-----

--------------ha5mCmVGTf7zxTt5d9sNL5V8--


From xen-devel-bounces@lists.xenproject.org Fri Apr 11 07:55:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 07:55:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.946729.1344529 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u39EO-0001O8-FW; Fri, 11 Apr 2025 07:55:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 946729.1344529; Fri, 11 Apr 2025 07: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 1u39EO-0001Nz-Cl; Fri, 11 Apr 2025 07:55:20 +0000
Received: by outflank-mailman (input) for mailman id 946729;
 Fri, 11 Apr 2025 07:55: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=U3ez=W5=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u39EM-00011Z-LO
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 07:55:18 +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 4f30c7cf-16aa-11f0-9ead-5ba50f476ded;
 Fri, 11 Apr 2025 09:55:17 +0200 (CEST)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-43cef035a3bso11569715e9.1
 for <xen-devel@lists.xenproject.org>; Fri, 11 Apr 2025 00:55:17 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 5b1f17b1804b1-43f20a9f14csm48344365e9.1.2025.04.11.00.55.16
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 11 Apr 2025 00:55: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: 4f30c7cf-16aa-11f0-9ead-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744358117; x=1744962917; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=VLeBGRbpR+Ugz3QX+1XDVxNxvcj3Y6YlL0h+g0Lm8lo=;
        b=jxuewF/5MbacNom56ggBB0lYXM1qMoR9JINwhO2aAbnA8SRgdatJ5P1u4cc+oNqu3r
         pWFHDTjgtbDKRq2O64Mvvfg5RAT3QJUYeArc6Pu8i7c5ZgfHKC4GYG6zeaj0AacQU9kX
         DS3ekqOB7clYC6ckNijhFNSZozIoJaAHTXem4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744358117; x=1744962917;
        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=VLeBGRbpR+Ugz3QX+1XDVxNxvcj3Y6YlL0h+g0Lm8lo=;
        b=Yqwj7zmIvyRevTIysJeMUfJjVO3ilczDLIaJUyESNSqdODyp6hVwPI3blb7U8I/ytQ
         WSAdF8K1NzYDClhvZHHK2XGebkxt9du7Op10tMVJSpai+mNO6jXGVjz0aWlmCHymYIRO
         6EClkmOcVWQWOVw+B354qU0aZr5i7CdQRuAMs1QayRq5ARFK4pfMIISF2jMLSVVmX/Ow
         meYB2UeGUpu+J2+EtdfNxU0Zm+PHAn2MGENK7uR7ZmYPtx8mc9Ve6UkNo/4XYyATyve4
         r5HPsGlcQ63eUn6QY1llTFHXmhzDK6F6HmIG+LYnPv+Yh10+MBL3IVSdFKuim97Fn0Ys
         cS6w==
X-Gm-Message-State: AOJu0YytFtsQavvheldKV6HVtA2QqqVUomZYas1mSA38rN+vQ72A2535
	NFfpiGAT54czqfEi9eJ2K6GAjsNNqpXqjF5NRYom8SE6aZ0A12Xr+MBaYlGMNfCI6TgZ9q/6Yro
	X
X-Gm-Gg: ASbGncuNIbhQ3KmQYMkRVCqic53nAPaQbuaRyNjKUNoebAWAfdlJbOt3dcNZjQBLFcU
	lroQVW5jAlvu6avlFtOPCm4khzYpIWv9zQH0qi5zpStopmDgJDo8xn7BCPxX/NcEf+A7Wtxttx4
	EXmjSP0Xo8pxA4H0UZlSZ1wygEeGtvi/TC1pUX1e6+ZZVV/UXzsTRqTAcgjOyO6ZrGXcW8TJcUM
	JvJotlad8XzdHFqCQJBaVYdlo8BvyGlwDZZqtAmq7jd5rL9dECt5acJkOwdShrxI9/rZL4tHzHO
	BN2wpVgRqlPz7kFwj5YIfYZ36ZyiIClwxWG+4z5md+6bDQ==
X-Google-Smtp-Source: AGHT+IGTfA53GKCinZww3+bx9Jg5VRFQcHOrdt46mfg4+BbZDjySAq8hi2RFPtvJVENwix4kBbIvpA==
X-Received: by 2002:a05:600c:4e47:b0:43a:b8eb:9e5f with SMTP id 5b1f17b1804b1-43f3a9276a6mr14450305e9.3.1744358116924;
        Fri, 11 Apr 2025 00:55:16 -0700 (PDT)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH 2/2] tootls/tests: introduce unit tests for rangesets
Date: Fri, 11 Apr 2025 09:55:02 +0200
Message-ID: <20250411075502.19926-3-roger.pau@citrix.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <20250411075502.19926-1-roger.pau@citrix.com>
References: <20250411075502.19926-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Introduce some basic infrastructure for doing rangeset unit tests, and add
a few tests that ensure correctness of rangeset subtraction.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
 tools/tests/Makefile                 |   1 +
 tools/tests/rangeset/Makefile        |  45 ++++++
 tools/tests/rangeset/harness.h       |  71 +++++++++
 tools/tests/rangeset/test-rangeset.c | 228 +++++++++++++++++++++++++++
 4 files changed, 345 insertions(+)
 create mode 100644 tools/tests/rangeset/Makefile
 create mode 100644 tools/tests/rangeset/harness.h
 create mode 100644 tools/tests/rangeset/test-rangeset.c

diff --git a/tools/tests/Makefile b/tools/tests/Makefile
index 1319c3a9d88c..3e60ab6b268d 100644
--- a/tools/tests/Makefile
+++ b/tools/tests/Makefile
@@ -10,6 +10,7 @@ SUBDIRS-$(CONFIG_X86) += x86_emulator
 endif
 SUBDIRS-y += xenstore
 SUBDIRS-y += depriv
+SUBDIRS-y += rangeset
 SUBDIRS-y += vpci
 SUBDIRS-y += paging-mempool
 
diff --git a/tools/tests/rangeset/Makefile b/tools/tests/rangeset/Makefile
new file mode 100644
index 000000000000..451f67e1920f
--- /dev/null
+++ b/tools/tests/rangeset/Makefile
@@ -0,0 +1,45 @@
+XEN_ROOT=$(CURDIR)/../../..
+include $(XEN_ROOT)/tools/Rules.mk
+
+TARGET := test-rangeset
+
+.PHONY: all
+all: $(TARGET)
+
+.PHONY: run
+run: $(TARGET)
+	./$<
+
+.PHONY: clean
+clean:
+	$(RM) -- *.o $(TARGET) $(DEPS_RM)
+
+.PHONY: distclean
+distclean: clean
+	$(RM) -- *~
+
+.PHONY: install
+install: all
+	$(INSTALL_DIR) $(DESTDIR)$(LIBEXEC_BIN)
+	$(INSTALL_PROG) $(TARGET) $(DESTDIR)$(LIBEXEC_BIN)
+
+.PHONY: uninstall
+uninstall:
+	$(RM) -- $(addprefix $(DESTDIR)$(LIBEXEC_BIN)/,$(TARGET))
+
+list.h: $(XEN_ROOT)/xen/include/xen/list.h
+rangeset.h: $(XEN_ROOT)/xen/include/xen/rangeset.h
+list.h rangeset.h:
+	sed -e '/#include/d' <$< >$@
+
+rangeset.c: $(XEN_ROOT)/xen/common/rangeset.c list.h rangeset.h
+	# Remove includes and add the test harness header
+	sed -e '/#include/d' -e '1s/^/#include "harness.h"/' <$< >$@
+
+CFLAGS  += -D__XEN_TOOLS__
+CFLAGS  += $(APPEND_CFLAGS)
+CFLAGS += $(CFLAGS_xeninclude)
+LDFLAGS += $(APPEND_LDFLAGS)
+
+test-rangeset: rangeset.o test-rangeset.o
+	$(CC) $^ -o $@ $(LDFLAGS)
diff --git a/tools/tests/rangeset/harness.h b/tools/tests/rangeset/harness.h
new file mode 100644
index 000000000000..a60ebff72d0f
--- /dev/null
+++ b/tools/tests/rangeset/harness.h
@@ -0,0 +1,71 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Unit tests for rangesets.
+ *
+ * Copyright (C) 2025 Cloud Software Group
+ */
+
+#ifndef _TEST_HARNESS_
+#define _TEST_HARNESS_
+
+#include <assert.h>
+#include <errno.h>
+#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <xen-tools/common-macros.h>
+
+#define smp_wmb()
+#define __must_check __attribute__((__warn_unused_result__))
+#define cf_check
+
+#define BUG_ON(x) assert(!(x))
+#define ASSERT(x) assert(x)
+
+#include "list.h"
+#include "rangeset.h"
+
+typedef bool rwlock_t;
+typedef bool spinlock_t;
+
+struct domain {
+    unsigned int     domain_id;
+    struct list_head rangesets;
+    spinlock_t       rangesets_lock;
+};
+
+/* For rangeset_domain_{initialize,printk}() */
+#define spin_lock_init(l) (*(l) = false)
+#define spin_lock(l)      (*(l) = true)
+#define spin_unlock(l)    (*(l) = false)
+
+/* For rangeset->lock */
+#define rwlock_init(l)    (*(l) = false)
+#define read_lock(l)      (*(l) = true)
+#define read_unlock(l)    (*(l) = false)
+#define write_lock(l)     (*(l) = true)
+#define write_unlock(l)   (*(l) = false)
+
+#define xmalloc(type) ((type *)malloc(sizeof(type)))
+#define xfree free
+
+#define unlikely
+
+#define safe_strcpy strcpy
+
+#define printk printf
+
+#endif
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/tools/tests/rangeset/test-rangeset.c b/tools/tests/rangeset/test-rangeset.c
new file mode 100644
index 000000000000..b44cd217a050
--- /dev/null
+++ b/tools/tests/rangeset/test-rangeset.c
@@ -0,0 +1,228 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Unit tests for rangesets.
+ *
+ * Copyright (C) 2025 Cloud Software Group
+ */
+
+#include "harness.h"
+
+struct range {
+    unsigned long start, end;
+};
+
+struct action {
+    enum {
+        ADD,
+        REMOVE,
+    } action;
+    struct range r;
+};
+
+#define DECLARE_ACTIONS(nr) static const struct action actions ## nr []
+#define DECLARE_RESULTS(nr) static const struct range results ## nr []
+
+/*
+ * Subtract range with tail overlap on existing range:
+ *
+ * { 0, 1, 4, 5 } - { 3, 4 } = { 0, 1, 5, 5 }
+ */
+DECLARE_ACTIONS(0) = {
+    { ADD,    { 0, 1 } },
+    { ADD,    { 4, 5 } },
+    { REMOVE, { 3, 4 } },
+};
+DECLARE_RESULTS(0) = {
+    { 0, 1 }, { 5, 5 },
+};
+
+/*
+ * Subtract range with complete and tail overlap on existing ranges:
+ *
+ * { 0, 1, 4, 5, 7, 8 } - { 3, 4, 5, 6, 7 } = { 0, 1, 8 }
+ */
+DECLARE_ACTIONS(1) = {
+    { ADD,    { 0, 1 } },
+    { ADD,    { 4, 5 } },
+    { ADD,    { 7, 8 } },
+    { REMOVE, { 3, 7 } },
+};
+DECLARE_RESULTS(1) = {
+    { 0, 1 }, { 8, 8 },
+};
+
+/*
+ * Subtract range with no overlap:
+ *
+ * { 0, 1, 4, 5 } - { 2, 3 } = { 0, 1, 4, 5 }
+ */
+DECLARE_ACTIONS(2) = {
+    { ADD,    { 0, 1 } },
+    { ADD,    { 4, 5 } },
+    { REMOVE, { 2, 3 } },
+};
+DECLARE_RESULTS(2) = {
+    { 0, 1 }, { 4, 5 },
+};
+
+/*
+ * Subtract range with partial overlap on two existing ranges:
+ *
+ * { 0, 1, 4, 5 } - { 1, 4 } = { 0, 5 }
+ */
+DECLARE_ACTIONS(3) = {
+    { ADD,    { 0, 1 } },
+    { ADD,    { 4, 5 } },
+    { REMOVE, { 1, 4 } },
+};
+DECLARE_RESULTS(3) = {
+    { 0, 0 }, { 5, 5 },
+};
+
+static const struct test {
+    unsigned int nr_actions, nr_results;
+    const struct action *actions;
+    const struct range *result;
+} tests[] = {
+#define DECLARE_TEST(nr)                                \
+    {                                                   \
+        .actions = actions ## nr,                       \
+        .nr_actions = ARRAY_SIZE(actions ## nr),        \
+        .result  = results ## nr,                       \
+        .nr_results = ARRAY_SIZE(results ## nr),        \
+    }
+
+    DECLARE_TEST(0),
+    DECLARE_TEST(1),
+    DECLARE_TEST(2),
+    DECLARE_TEST(3),
+
+#undef DECLARE_TEST
+};
+
+static int print_range(unsigned long s, unsigned long e, void *data)
+{
+    printf("[%ld, %ld]\n", s, e);
+
+    return 0;
+}
+
+static int count_ranges(unsigned long s, unsigned long e, void *data)
+{
+    unsigned int *nr = data;
+
+    ++*nr;
+    return 0;
+}
+
+const struct range *expected;
+static int check_ranges(unsigned long s, unsigned long e, void *data)
+{
+    unsigned int *nr = data;
+    int rc = 0;
+
+    if ( s != expected[*nr].start || e != expected[*nr].end )
+        rc = -EINVAL;
+
+    ++*nr;
+    return rc;
+}
+
+static void print_both(struct rangeset *r, const struct range *expected,
+                       unsigned int nr_expected)
+{
+    unsigned int i;
+
+    printf("Result:\n");
+    rangeset_report_ranges(r, 0, ~0UL, print_range, NULL);
+    printf("Expected:\n");
+    for ( i = 0; i < nr_expected; i++ )
+        printf("[%ld, %ld]\n", expected[i].start, expected[i].end);
+}
+
+int main(int argc, char **argv)
+{
+    struct rangeset *r = rangeset_new(NULL, NULL, 0);
+    unsigned int i;
+    int ret_code = 0;
+
+    ASSERT(r);
+
+    for ( i = 0 ; i < ARRAY_SIZE(tests); i++ )
+    {
+        unsigned int j, nr = 0;
+        int rc = 0;
+
+        rangeset_purge(r);
+        for ( j = 0; j < tests[i].nr_actions; j++ )
+        {
+            const struct action *a = &tests[i].actions[j];
+
+            switch ( a->action )
+            {
+            case ADD:
+                rc = rangeset_add_range(r, a->r.start, a->r.end);
+                break;
+
+            case REMOVE:
+                rc = rangeset_remove_range(r, a->r.start, a->r.end);
+                break;
+            }
+
+            if ( rc )
+            {
+                printf("Test %u failed to %s range [%ld, %ld]\n",
+                       i, a->action == ADD ? "add" : "remove",
+                       a->r.start, a->r.end);
+                rangeset_report_ranges(r, 0, ~0UL, print_range, NULL);
+                break;
+            }
+        }
+
+        if ( rc )
+        {
+            /* Action failed, skip this test and set exit code to failure. */
+            ret_code = EXIT_FAILURE;
+            continue;
+        }
+
+        rc = rangeset_report_ranges(r, 0, ~0UL, count_ranges, &nr);
+        if ( rc )
+        {
+            printf("Test %u unable to count number of result ranges\n", i);
+            rangeset_report_ranges(r, 0, ~0UL, print_range, NULL);
+            ret_code = EXIT_FAILURE;
+            continue;
+        }
+        if ( nr != tests[i].nr_results )
+        {
+            printf("Test %u unexpected number of result ranges, expected: %u got: %u\n",
+                   i, tests[i].nr_results, nr);
+            print_both(r, tests[i].result, tests[i].nr_results);
+            ret_code = EXIT_FAILURE;
+            continue;
+        }
+
+        nr = 0;
+        expected = tests[i].result;
+        rc = rangeset_report_ranges(r, 0, ~0UL, check_ranges, &nr);
+        if ( rc )
+        {
+            printf("Test %u range checking failed\n", i);
+            print_both(r, tests[i].result, tests[i].nr_results);
+            ret_code = EXIT_FAILURE;
+            continue;
+        }
+    }
+
+    return 0;
+}
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Fri Apr 11 07:55:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 07:55:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.946728.1344518 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u39EN-00019h-9J; Fri, 11 Apr 2025 07:55:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 946728.1344518; Fri, 11 Apr 2025 07:55: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 1u39EN-00019a-6X; Fri, 11 Apr 2025 07:55:19 +0000
Received: by outflank-mailman (input) for mailman id 946728;
 Fri, 11 Apr 2025 07:55: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=U3ez=W5=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u39EM-0000vb-6c
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 07:55:18 +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 4e63f798-16aa-11f0-9ffb-bf95429c2676;
 Fri, 11 Apr 2025 09:55:16 +0200 (CEST)
Received: by mail-wr1-x42c.google.com with SMTP id
 ffacd0b85a97d-391342fc0b5so1170552f8f.3
 for <xen-devel@lists.xenproject.org>; Fri, 11 Apr 2025 00:55:16 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 ffacd0b85a97d-39eaf4458a8sm1246178f8f.99.2025.04.11.00.55.15
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 11 Apr 2025 00:55: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: 4e63f798-16aa-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744358116; x=1744962916; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=SA9JXMeZq0Q7AJalYvUyV3B17ebPEAq0r09wkDkoj2k=;
        b=LrAZS0EoOrq9YJTdoHQ0JX2BKWNgSy8CzOvwExFwN6CFATapnTKkjYn6NT0ruSWL0p
         fi1ufDS0FE7NwEi+EnLk82vNS+1eumkgLkZ7iYyOJTlJpsMaF8PFjfkwTa6K5GCf1ypa
         Pkc8gRMfn72XgPzwn+DMs5hhpV5D4AmjhSfzs=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744358116; x=1744962916;
        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=SA9JXMeZq0Q7AJalYvUyV3B17ebPEAq0r09wkDkoj2k=;
        b=hcAtg4x4eAx/ThwFqOtrmHf2xJLGXoeQ+OtG2wmMgUPoXOUNhjr5CQAe7XklCfQO7M
         g/6wLESVAizAjdWWCw/mf3N77oY/fjbw8RuOjkJwCPI/gNN9CejMfa4OWnNKXhqRDAHt
         +JT0Ohn0yYtVcnjjXlH4mFlQko6Ab+iYjYB6D3Xegdww2NAixWCZitGux9a84TVN+yww
         Y2vBEZXXCHlJ1z49WpOd9/xHUth1V8UYpEAlpEH6IOvmA04t0QzkNaBZRDGBItUsH9HY
         ptSezpi31c02uBQkdRb8fT/fl0sbuRg7lIWP+JwXOrAI9+365uQWnS2MZaqnfzXkh6U0
         KcFQ==
X-Gm-Message-State: AOJu0YwA2iFg2TMA1o3Aec2pwQMCSqgSd542Pou+TMFebupylKdZxqLV
	xqsCWf9tOITV9Zcbi4weCByWmj3Hc/nyjJagyKilnswa3fZ5IHyBSyoT0pZSUK2ywwlwKMAZFgp
	p
X-Gm-Gg: ASbGncstf0yYk9Pec8TAiIdcvLxvYh8xLze6iDmRfzdlQnzntiUQvAJGyOZJ/zMMLVl
	W6MODQJAA1anUbRHBDU66jXskofOFJjAXfenhcHmYG+Xiy7IPpI7Lb4fnlp3WizcA6XDvbnvG/H
	XpcBbRxIaVD98O4pGbFIsVPQQMfYJA+/atLLKzlUQNB+DMfVkS0TLovuR52S2SJvrLvKFDRnZf6
	nATzr7AwmTZ9oT2mCrxji9tTtDSi1y1W8CqltmtQFPmQqXAE+g+DW0+CBSov6hmP2j739Uk02v/
	SjnJ3UUhf2Z6U3HOiRC6NOxcdmjjUodoiPrjAytRJgOgVg==
X-Google-Smtp-Source: AGHT+IFAj3qs9Qnj4aJ9djTepnSLakf+wwYwqPlCcPyHHPVF9E6tRBzZSlo46eazD6P3RX6tC4FPNw==
X-Received: by 2002:a05:6000:1acc:b0:390:e9b5:d69c with SMTP id ffacd0b85a97d-39ea54fd090mr1256354f8f.25.1744358115783;
        Fri, 11 Apr 2025 00:55:15 -0700 (PDT)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH 1/2] xen/rangeset: fix incorrect subtraction
Date: Fri, 11 Apr 2025 09:55:01 +0200
Message-ID: <20250411075502.19926-2-roger.pau@citrix.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <20250411075502.19926-1-roger.pau@citrix.com>
References: <20250411075502.19926-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Given the following rangset operation:

{ [0, 1], [4, 5] } - { [3, 4] }

The current rangeset logic will output a rangeset:

{ [0, 2], [5, 5] }

This is incorrect, and also has the undesirable property of being bogus in
a way that the resulting rangeset is expanded.

Fix this by making sure the bounds are correctly checked before modifying
the previous range.

Fixes: 484a058c4828 ('Add auto-destructing per-domain rangeset data structure...')
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/common/rangeset.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/xen/common/rangeset.c b/xen/common/rangeset.c
index b75590f90744..e75871039087 100644
--- a/xen/common/rangeset.c
+++ b/xen/common/rangeset.c
@@ -227,7 +227,8 @@ int rangeset_remove_range(
 
         if ( x->s < s )
         {
-            x->e = s - 1;
+            if ( x->e >= s )
+                x->e = s - 1;
             x = next_range(r, x);
         }
 
-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Fri Apr 11 07:55:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 07:55:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.946727.1344509 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u39EM-0000vo-3z; Fri, 11 Apr 2025 07:55:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 946727.1344509; Fri, 11 Apr 2025 07:55:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u39EM-0000vh-11; Fri, 11 Apr 2025 07:55:18 +0000
Received: by outflank-mailman (input) for mailman id 946727;
 Fri, 11 Apr 2025 07:55: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=U3ez=W5=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u39EL-0000vb-Bi
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 07:55:17 +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 4daf760d-16aa-11f0-9ffb-bf95429c2676;
 Fri, 11 Apr 2025 09:55:15 +0200 (CEST)
Received: by mail-wr1-x42d.google.com with SMTP id
 ffacd0b85a97d-39ac56756f6so1369928f8f.2
 for <xen-devel@lists.xenproject.org>; Fri, 11 Apr 2025 00:55:15 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 5b1f17b1804b1-43f2338d802sm79968545e9.1.2025.04.11.00.55.13
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 11 Apr 2025 00:55: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: 4daf760d-16aa-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744358114; x=1744962914; 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=Ov4EfJkaMKa+xBxdMimAVCnDzVpZxc3hmE0W2T2Ygdc=;
        b=t4ew3lGuHLqkW/EdPlQkQN43WCe4mf9iZrJF3fDxmkmgeBuT/ghRO124buj1tTKGVW
         UtYEWX5Cnl21sYgiJqive6a+3heGfSJcICX0hc38h/0KPawIrGUc6jAyyEDhW5pmxCJI
         DevQQKAMRAH7etQAJCbizjfrTDB5ZYSSqKVpI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744358114; x=1744962914;
        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=Ov4EfJkaMKa+xBxdMimAVCnDzVpZxc3hmE0W2T2Ygdc=;
        b=T9zQgfmC6NBzEig3y2XEMp0yw5qnJAOKtHpGifEQpoVo3zJ2OrQlsr+17t9uryiwW/
         b3buJGVIcCTuuBGb98edew/2iYpiXgE1QQYwN6Jz4lghRM9hSjZMq/AFscPi1W4+GXDz
         6oP275mKZ4dkoOlcFqCiqo6AJL9OSsRQvFp3OpIQuIwfr8DU3LJHC3YTNrbUwEphnaEm
         9SOYaCA2aohPl98+2eE/jnNGgSWCNrQbg9iaDmS0xB4Lx6oYmd6AnkEQFphMJipSkj6D
         3wkBFgoJKBHKK70BpqzFCm7dR6iM3UlZYBikAr877323NFukfitPWTdEfSGEnYKo3hg1
         kaXg==
X-Gm-Message-State: AOJu0YzYzzMVLMOba7408+plWfr2xLrF6rMQkmemizBnBgvNYOfEcHRh
	mX4LnUCk9bcGzaFO6OyEs274nTMnqI+yqGj5stHHVHkV/EFL0LAx4LPYdDcp9nGxkt3zcpJi+k8
	t
X-Gm-Gg: ASbGncveCwQE4ocpH1zCssSy0l83LE95FW8pe18V8vbN4Xo+kvH9dJ1XNzwILmCFyUA
	1dXofZX5pZrrlnqrXGENKk6/9fbJMNZp4isrylE1/j8fYYvpTPUxOnYr4gpxJzRNUNivsgp610G
	vkNAWI9WKGyHOR8CSatMiOBhrY0kLVq6lP2fDsI9rLdOAgkiupXACrAgirCU/h8AZO2Ia8evB0u
	aoKaXujHkfubyXffDcYXCqQ0moCasK9kWj4EbG5LgMvibJa4RScgLXcepWLytwGJIwYRs/ZEwun
	Yl+ZPkABGShRnSfeX9FLbDH99f13AgVgLmGszxl6hs81RPEFDiHIx7dE
X-Google-Smtp-Source: AGHT+IF1SM69BCevH+O623myLwh4fMhZERQR6Tqf3z/sVILYd8xeWaYC+C6jPSC6p2BmXZvT4wizgw==
X-Received: by 2002:a5d:6daa:0:b0:39c:dfa:d347 with SMTP id ffacd0b85a97d-39ea51f4467mr1279669f8f.2.1744358114587;
        Fri, 11 Apr 2025 00:55:14 -0700 (PDT)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH 0/2] xen/rangeset: one bugfix and unit testing
Date: Fri, 11 Apr 2025 09:55:00 +0200
Message-ID: <20250411075502.19926-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.48.1
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Hello,

Rangesets are extensively used inside of Xen, yet we had no
unit tests to ensure it's correctness.  rangeset_remove_range() is in
fact bogus and will generate an incorrect output rangeset depending on
the inputs.

Patch 1 fixes the bug, patch 2 adds some basic unit testing to ensure
the fix done by patch 1 is correct.  The unit testing should likely be
expanded (in a different series) to further assert the correctness of
other rangeset operations.

Thanks, Roger.

Roger Pau Monne (2):
  xen/rangeset: fix incorrect subtraction
  tootls/tests: introduce unit tests for rangesets

 tools/tests/Makefile                 |   1 +
 tools/tests/rangeset/Makefile        |  45 ++++++
 tools/tests/rangeset/harness.h       |  71 +++++++++
 tools/tests/rangeset/test-rangeset.c | 228 +++++++++++++++++++++++++++
 xen/common/rangeset.c                |   3 +-
 5 files changed, 347 insertions(+), 1 deletion(-)
 create mode 100644 tools/tests/rangeset/Makefile
 create mode 100644 tools/tests/rangeset/harness.h
 create mode 100644 tools/tests/rangeset/test-rangeset.c

-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Fri Apr 11 08:00:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 08:00:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.946758.1344538 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u39JB-0003x7-7q; Fri, 11 Apr 2025 08:00:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 946758.1344538; Fri, 11 Apr 2025 08:00:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u39JB-0003x0-4b; Fri, 11 Apr 2025 08:00:17 +0000
Received: by outflank-mailman (input) for mailman id 946758;
 Fri, 11 Apr 2025 08:00: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=kzGk=W5=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u39J9-0003wu-Cn
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 08:00:15 +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 ff44a3a1-16aa-11f0-9ffb-bf95429c2676;
 Fri, 11 Apr 2025 10:00:13 +0200 (CEST)
Received: by mail-wr1-x42a.google.com with SMTP id
 ffacd0b85a97d-39727fe912cso764490f8f.3
 for <xen-devel@lists.xenproject.org>; Fri, 11 Apr 2025 01:00:13 -0700 (PDT)
Received: from [10.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-43f207cb88asm77619475e9.37.2025.04.11.01.00.11
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 11 Apr 2025 01:00: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: ff44a3a1-16aa-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744358413; x=1744963213; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=oe02DyZ/YnlBlOBVxQUh6vwlzu9gLAwopRjE7HNoyYU=;
        b=NBl1+Pf3ZGWECbS00PE9jk+tGSTcbOgwvRLjLRGed3IBgRioKxKwpPr15WXLAIRQ+t
         pfjkKKiu3TV4SsrNCy8u/xaIyAbKWE9kB9pP4HEY02YkYm8M9ldFh/FNxC1f1mPgeL5Y
         Hkaf1EgFZZkCyCYjE33t4w+xnntz+OGN45CI/ZPgRI7GHV0Rwvw7P8VEFoNbQTfquWqb
         uqKLu+zt3qxWEfrflSgRsvuL79UJ6oFHehbzp/gTtKIxH7YpzYhv4M+eBnedw79XcY45
         JJpAdtrlihfS1+xQt510c7GILP0q87ozFNMAEOYFQ75iENcEkU/BIQ+QxC8zMBsSq3xq
         47sg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744358413; x=1744963213;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=oe02DyZ/YnlBlOBVxQUh6vwlzu9gLAwopRjE7HNoyYU=;
        b=mJtYSAJ5n9bBAiSW/kNelCP8dnvlaxhHy2obK+2CUuKXKzTxo1IRWeC/urHyFk61Ie
         ECw3dmccwgajPnuygY/HB7Dz90GGdQLfg2D9eSBOsi3qdSq70yqZbsvOS+fIqCJJU9hn
         Z4D/kh7xUbrH7iTbzJ1ZnLFutLrH+hINTT8ekZiO8pkMu4r6fM+DDCkZcETkZzm4RvYA
         jHyACcH3ykpHM8vUXxZ+rzy3n1cETD2qwRFL73yyNaXyN4tp2OfyDzCwo65HHVhMMEq4
         NQrjcjlov+FuMQfc+18oEd0gOUILAtrR54lsfyLK+jzMcHpeW3wihkwG2k2BufJQ1Fhb
         XivQ==
X-Forwarded-Encrypted: i=1; AJvYcCUi5lmuCAv2O9BjaDELUru7gvfXon+v9EHFf3bxmZA/5xveXouOmlro4ANSf+vKoBNOrn3gwsD7/Ss=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyXtmJ02b3zOuqGXHC5tTY0iIsnf+PiHw/6wZINzZbGrH1Jh4kQ
	pW/JB2K8Va7ZwaDn4jShjzMQUvROvqq3MkQPo2JL6AYw5fjv8gWKdAcpF2zvfQ==
X-Gm-Gg: ASbGncvAFydb0uqSrMwsYH5TWak9TUkKM9rpXjW71wiQ2oESIKEKln3Tf6FybC/xl6u
	rSCKjh2tV0c/ZFmlexJctjUH9Bqg4gSpkQFSsM7sCC5DRaUuK0Xb8rhrN6yaVjtRgBr70lKSQeM
	hqEMscmQMn8D7eC0EX/luL87FVhSeZ7qCB3pVx0fkWiB2zpxHsS5DwD+NBQcPv+xMnXuUHGGDQd
	2HHOPfeCq1xks75u/yaeoNTwMh/vQgCQ74Gh3ES5zXHEzY4gETttvHY20LA7+maRmBmLomdsRmO
	sipjdlUMz8Gn7UX/VDcoFQodq6YqU/vND0fUADyNzN7J6wWJKMZQ9FT9UWGPypJQJvyt3LSuF1h
	q5pmqQ2EhbA5fr1VvpvCxcvt7Cw==
X-Google-Smtp-Source: AGHT+IFbX984vpulelxzsJdqqmDz4DeISnrXF+OB1Q37SYO1hgxsQDg9Zn40Lxv44tJBogTVbt3uHA==
X-Received: by 2002:a5d:6daa:0:b0:391:ab2:9e71 with SMTP id ffacd0b85a97d-39ea51f55b2mr1115659f8f.20.1744358412722;
        Fri, 11 Apr 2025 01:00:12 -0700 (PDT)
Message-ID: <4c1ec39e-5043-49bc-b7bf-0f193331c146@suse.com>
Date: Fri, 11 Apr 2025 10:00:10 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/8] driver/pci: Get next capability without passing
 caps
To: "Chen, Jiqian" <Jiqian.Chen@amd.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 "Orzel, Michal" <Michal.Orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 "Huang, Ray" <Ray.Huang@amd.com>
References: <20250409064528.405573-1-Jiqian.Chen@amd.com>
 <20250409064528.405573-2-Jiqian.Chen@amd.com>
 <5a18ae61-3ffa-41d1-aa1d-dce4d3ca0381@suse.com>
 <BL1PR12MB5849F5E86496802914619F5EE7B62@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: <BL1PR12MB5849F5E86496802914619F5EE7B62@BL1PR12MB5849.namprd12.prod.outlook.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 11.04.2025 04:51, Chen, Jiqian wrote:
> On 2025/4/10 20:34, Jan Beulich wrote:
>> On 09.04.2025 08:45, Jiqian Chen wrote:
>>> --- a/xen/drivers/pci/pci.c
>>> +++ b/xen/drivers/pci/pci.c
>>> @@ -40,7 +40,7 @@ unsigned int pci_find_cap_offset(pci_sbdf_t sbdf, unsigned int cap)
>>>  }
>>>  
>>>  unsigned int pci_find_next_cap_ttl(pci_sbdf_t sbdf, unsigned int pos,
>>> -                                   const unsigned int caps[], unsigned int n,
>>> +                                   const unsigned int *caps, unsigned int n,
>>
>> I don't follow the need for this change.
> This changed is for my next patch "vpci/header: Emulate legacy capability list for host".
> Currently, vpci only emulates capability list for domU, not for dom0.
> For domU, vpci exposes a fixed capability array which calls "supported_caps".
> My changes want to emulate capability list for dom0.
> I think vpci should expose all devices capabilities to dom0.
> When I emulate it, I need to iterate over all capabilities without another fixed array,
> so I need this function to return the position of next capability directly when passing a zero length array to this function.

This doesn't answer my question. The change you need for the next patch is
the hunk below, not the one above. Aiui at least.

>>> @@ -55,6 +55,10 @@ unsigned int pci_find_next_cap_ttl(pci_sbdf_t sbdf, unsigned int pos,
>>>  
>>>          if ( id == 0xff )
>>>              break;
>>> +
>>> +        if ( !caps || n == 0 )
>>> +            return pos;
>>
>> Checking n to be zero ought to suffice here? In that case it doesn't matter
>> what caps is. Plus if n is non-zero, it clearly is an error if caps was NULL.
> Two checking is to prevent null pointer errors.
> But as you said, if checking n to be zero is enough, then I don't need to change the definition of this function.
> I will change in next version.

If you really wanted to, you could add e.g. ASSERT(caps) after this if().

Jan


From xen-devel-bounces@lists.xenproject.org Fri Apr 11 08:01:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 08:01:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.946774.1344548 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u39KN-000578-Gu; Fri, 11 Apr 2025 08:01:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 946774.1344548; Fri, 11 Apr 2025 08:01: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 1u39KN-000571-EI; Fri, 11 Apr 2025 08:01:31 +0000
Received: by outflank-mailman (input) for mailman id 946774;
 Fri, 11 Apr 2025 08:01: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=kzGk=W5=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u39KM-00056v-LL
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 08:01:30 +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 2cc01b29-16ab-11f0-9ead-5ba50f476ded;
 Fri, 11 Apr 2025 10:01:29 +0200 (CEST)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-43ce70f9afbso17487255e9.0
 for <xen-devel@lists.xenproject.org>; Fri, 11 Apr 2025 01:01:29 -0700 (PDT)
Received: from [10.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-43f235a5d82sm75805575e9.37.2025.04.11.01.01.28
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 11 Apr 2025 01:01:28 -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: 2cc01b29-16ab-11f0-9ead-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744358489; x=1744963289; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Lu64Erf+648NVzju654VTmfDRq6mfsJwRG7nC3WwIHA=;
        b=MqQmAGE+O9uPepD8EieFUHua0hQM3X61Ej5ewRCD+fsmdmvuKUlxepH2LT/JM69Ezo
         Fhe9mSVfDxQb0WCfJnvFJ2IcS2SVBDMxTz1h/5ikwUnvhhKgMH/2s8yT4MwaCksgeSXj
         dtv6X6x3cj1ifOfYJHlHYRE6iKbdf6MxCVyPUTefabF7g8jpEQG2EtkaiZ/d5ws3P0Em
         0ygSGebZUHmp49iTU/lQ+6IZ3Oj56KDB/RVosXtSLt6TaPoNsFfImoq3ulyEm3V2trFK
         ogLKmIOSQUc3VuMGHVtnDwqvomNCmniy2BjT5RuqQQeDqa72Qlh1mtVMqoYd2up/0xE1
         UAQg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744358489; x=1744963289;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Lu64Erf+648NVzju654VTmfDRq6mfsJwRG7nC3WwIHA=;
        b=d0o80N8vAXQdmm3KQsM80SXzcqkvC8a6hLwbyDFIbHKjLLHYHf92HcyNMooE0YOZ8R
         EE3KwMRLN7hJX2xdnYtuZ7MhGGasw+8S6DGiAg2maagljLfa/AhV/xset08LOBvvfGBv
         FtzixdvNhFKdB9BGFEqMl7p3kwEmBL5/Mnoywj7ray28n+C7mFD7AzYrwrvLpSFuKDiw
         DsYx5T6bhht87IeIYPLdJSzjNjQnXOLSsXNHM7Kmgswh7L6xsQA5rHyqDF7Umby+cKbu
         HdKT//Dz8MWpBi2mVBWb221aC2E4wH8ouOVlNaOmgfjVPRJ0lCXwtYAXFvfR0ExBDtg2
         KK4Q==
X-Forwarded-Encrypted: i=1; AJvYcCVxibzDt0qHHfB/iYmkTcOv+9HhQ2aKbYtcfx8v6jSHBA6v22l/+XtqRVNxzY4Xppxt1xMt/50DiFQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YybWewsXRhHQAqbvuGmj+94I0g1ueXDgLGfNFELmmSoYlX7PnyT
	wu8oESNByIksvT5Tm83PdEFnoy5OjmJ8D7BBEDyR5RdaVwcppFunNC6K/8cJ9Q==
X-Gm-Gg: ASbGnctEZwl7cTgh45++jZ2Z7Zpn9e4OM7GaPxbmWKsszxi1+rsc7Gp5jtXUyEG8skB
	CZ8b5PwKR8wqgcBull1y3HL2fWDuAiUfeZZ3z9dYYgir+2Sry1PpuaPuHvBUFuLO2ts6VM28bu/
	ol067fnxUe2BSCjHnxxYrjHKq62le7EPLQDVA08GSGrrGMLuQODTrcKf0cAXZLPCWLQWpSwdemn
	vsRjYRrQ3NxcMz50OheWRSeygnyxKlXKhqjMYq/dwUADUnt4vo/jBgg4ZPN83p1FWlNtO6WpsC+
	9ZYmxXrrsjYR2viLm+vOTh6re3CiY0UPPaB6zTeco+8tD9Y3mb5mLnovfTNnTWxygZ+g+LcAdJf
	h8+vwYVuZBMsgQa2mt+U23QbYmg==
X-Google-Smtp-Source: AGHT+IG9gUIl6VKUba5pNGxfPHqNp1F2Hpe/YULC2czINjPcNl/17tUJTT8veXG+GJticH+HX3qvbA==
X-Received: by 2002:a05:600c:1546:b0:43c:f597:d582 with SMTP id 5b1f17b1804b1-43f3a9336e6mr12763145e9.1.1744358489047;
        Fri, 11 Apr 2025 01:01:29 -0700 (PDT)
Message-ID: <7d6e0b95-e6f3-4ac2-9a1f-adda3f301116@suse.com>
Date: Fri, 11 Apr 2025 10:01:27 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/8] vpci/header: Emulate legacy capability list for
 host
To: "Chen, Jiqian" <Jiqian.Chen@amd.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 "Huang, Ray" <Ray.Huang@amd.com>
References: <20250409064528.405573-1-Jiqian.Chen@amd.com>
 <20250409064528.405573-3-Jiqian.Chen@amd.com>
 <7e89babb-ea6f-4434-a90b-19c2d12cc58d@suse.com>
 <BL1PR12MB58497FCC952CDEE7BAEF0688E7B62@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: <BL1PR12MB58497FCC952CDEE7BAEF0688E7B62@BL1PR12MB5849.namprd12.prod.outlook.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 11.04.2025 04:54, Chen, Jiqian wrote:
> On 2025/4/10 20:40, Jan Beulich wrote:
>> On 09.04.2025 08:45, Jiqian Chen wrote:
>>> Current logic of init_header() only emulates legacy capability list
>>> for guest, expand it to emulate for host too. So that it will be
>>> easy to hide a capability whose initialization fails and no need
>>> to distinguish host or guest.
>>
>> Before I (maybe) look at the patch as a hole: When you say "guest" you
>> mean "DomU" (which is a common pair of synonyms we use), whereas when
>> you say "host" you mean "Dom0"? The latter is not a common pair of
>> synonyms; "host" generally covers the entire system, including Xen and
>> all domains. See e.g. wording that we use in XSAs.
> Yes, guest means domU, host means dom0(or hardware domain?),

We're less strict about that latter distinction - in most contexts
dom0 == hwdom is assumed.

> I will change my word in next version

Thanks.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Apr 11 08:05:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 08:05:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.946788.1344558 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u39Nj-0007hH-VG; Fri, 11 Apr 2025 08:04:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 946788.1344558; Fri, 11 Apr 2025 08:04: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 1u39Nj-0007hA-Sh; Fri, 11 Apr 2025 08:04:59 +0000
Received: by outflank-mailman (input) for mailman id 946788;
 Fri, 11 Apr 2025 08:04: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=kzGk=W5=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u39FH-0000vb-FI
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 07:56:15 +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 706d0efe-16aa-11f0-9ffb-bf95429c2676;
 Fri, 11 Apr 2025 09:56:13 +0200 (CEST)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-43690d4605dso13422035e9.0
 for <xen-devel@lists.xenproject.org>; Fri, 11 Apr 2025 00:56:13 -0700 (PDT)
Received: from [10.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-43f205ecf30sm78586015e9.1.2025.04.11.00.56.12
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 11 Apr 2025 00:56: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: 706d0efe-16aa-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744358173; x=1744962973; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Z+KjXIw8FI2PzdtNvc8plifnFiviczaJ9R+32T6oYD8=;
        b=d0lAqNHxzf08W0SCNvnYU+Qc62mVtaDevp0Y/NLZLo8vYOCHtMio6vEvY/3N+/QyFL
         CPDGD8HwDM1W0rkJ4bAbqUHPRYqdj8cNj7wvyHdjKcAX/Biktig5Y2UIOGNAEXbl0Lsc
         l37FjiFG1vI6XR37Y9KBt6iACfruWzJ1j2cncGTvdwmQfYcRKnvDXT1RapvsE+D4Bwr+
         zFG8mNggZEx4wJTldLDAnx5y/b+8+pJM/4eoYH/QGxk7LCIZ31jkDQLpAZIyQUPyxz91
         h54SKl4/DqRPWbSth9Xol/AC4jUHKRpEskx5/pB8TXZnnviMLgUEZyBrSxDyvPSuPmhG
         XQkQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744358173; x=1744962973;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Z+KjXIw8FI2PzdtNvc8plifnFiviczaJ9R+32T6oYD8=;
        b=R2cFwR9oR8m+JIMVwwui0+UauriAuORc8eCHGomvIpETnAEO/oJaPgM5gi1qAcs9DH
         G9f6RRoJGa9TrnlaLnul+a0Cdsshb+vEUmVqcCF9l7bzGxRdsbSzrk/WXyQgHLddhrT6
         fNZBSFuDTfzkrRey/jpk9cE3qelRF8OUnCR8JsE4g/Uqzot/tIjzOTnmidDuuWMiew+a
         NdV6zdRaNioDRWC+gz+48D0p0WJvoYbwZkkHVMGrkAyjQ4pQvkJFw8OlVR2TXOz1iQUI
         6jQz5kiTASMpRoX0FMkgeEiE1f5+9GqEjW4vxsrlxAxhgTN80FTS4qXDiFoR06wxSwRy
         D0Qg==
X-Forwarded-Encrypted: i=1; AJvYcCXomNZ8T8F+1bpH4c4v7V3PZjBfaAeMqhzhIsq6G8nlpobCKwAYrqYpydnLZ6ZobGW2C1wjCpbqLfg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzVwBWXAoMTjePn7POLM9bvQAWIBpkF/cmr9Gy3S3PB7P3HaQtl
	QVtYGzG9meiJbx8rOuBArIRPv3QwwuOrv54AcQ2FrZdIK+dMsBpFQjiuhGJOMQ==
X-Gm-Gg: ASbGncupQrttKIB1PIXq//SK3NPqEQMZhBbYYBPwznC4/EmSfXMnWX7XcxLI3PGtSV1
	VdRAKN6kws3L9CBl5afdgkcuAkV34u/XrjiOEGaULvi1WeHB2OsB8MoCyg1SUJa78LdzDhWj19d
	ki5KBbhR8kuroyXlTnN7bBgY3OSXGCn4glMVuhfi8UVtjGRX2sf79EwOWCU0N6AO/dOW7loHR5h
	1hPC6WtLhR43p5kIcMrTRuFt05CtgPw82mGc9jWKTaGbhx8unWXkCaePs8phwgcd70lfCiwWS/+
	J1GcWEWrdEgoh2Dd/EVNfMnJtnyuow/FheB91XN8WWZ72g/KGfEw044XX7exbj0sAtSqbrqI24T
	T6Xv3wU7DaPFwKpf0K7UlduMQ/Q==
X-Google-Smtp-Source: AGHT+IEv2g4SgkdgA0zu9HWhWjf+YMU9foxg8B4I4HIEjQibN7HJ3PPsAXoLHJ5FxphBFZICO5eWfQ==
X-Received: by 2002:a05:600c:1396:b0:43c:e7a7:1e76 with SMTP id 5b1f17b1804b1-43f3a926c7bmr10788745e9.1.1744358173168;
        Fri, 11 Apr 2025 00:56:13 -0700 (PDT)
Message-ID: <9c68e431-c4eb-433d-99a8-9ece747246c3@suse.com>
Date: Fri, 11 Apr 2025 09:56:11 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC] xen/x86: allow overlaps with non-RAM regions
To: Jason Andryuk <jason.andryuk@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xenia.Ragiadakou@amd.com, Alejandro.GarciaVallejo@amd.com,
 xen-devel@lists.xenproject.org
References: <alpine.DEB.2.22.394.2504031755440.3529306@ubuntu-linux-20-04-desktop>
 <e8ca1efb-384f-4c60-94b2-95528301a156@suse.com>
 <dbec0b5d-e15b-4a7b-8b11-126c8345052c@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: <dbec0b5d-e15b-4a7b-8b11-126c8345052c@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 10.04.2025 22:55, Jason Andryuk wrote:
> On 2025-04-04 04:07, Jan Beulich wrote:
>> On 04.04.2025 03:01, Stefano Stabellini wrote:
>>> On one Sapphire AMD x86 board, I see this:
>>>
>>>
>>> (XEN) [0000003943ca6ff2]  [00000000f0000000, 00000000f7ffffff] (reserved)
>>> (XEN) [00000039460886d9]  [00000000fd000000, 00000000ffffffff] (reserved)
>>> [...]
>>> (XEN) [    4.612235] 0000:02:00.0: not mapping BAR [fea00, fea03] invalid position
>>
>> I, too, see something like this on an SPR system. That's a firmware issue,
>> which hence first of all should be dealt with at the firmware side.
>>
>>> Linux boots fine on this platform but Linux as Dom0 on Xen does not.
>>> This is because the pci_check_bar->is_memory_hole check fails due to the
>>> MMIO region overlapping with the EFI reserved region.
>>
>> And then what's the actual, observable problem? On my system I haven't
>> noticed anything going wrong yet, albeit the affected device is also left
>> without a driver.
> 
> The nvme drive (0000:02:00.0 with the invalid position above) fails to 
> work and no root drive is available.

And what - if anything - does baremetal Linux say about this pretty obvious
firmware bug?

Jan


From xen-devel-bounces@lists.xenproject.org Fri Apr 11 08:07:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 08:07:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.946801.1344568 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u39QS-0008Jh-D7; Fri, 11 Apr 2025 08:07:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 946801.1344568; Fri, 11 Apr 2025 08:07: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 1u39QS-0008Ja-9y; Fri, 11 Apr 2025 08:07:48 +0000
Received: by outflank-mailman (input) for mailman id 946801;
 Fri, 11 Apr 2025 08:07: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=kzGk=W5=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u39QR-0008JU-K5
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 08:07:47 +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 0ce18948-16ac-11f0-9ffb-bf95429c2676;
 Fri, 11 Apr 2025 10:07:45 +0200 (CEST)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-43cfba466b2so17014485e9.3
 for <xen-devel@lists.xenproject.org>; Fri, 11 Apr 2025 01:07:45 -0700 (PDT)
Received: from [10.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-43f233a2f64sm75315255e9.16.2025.04.11.01.07.44
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 11 Apr 2025 01:07:44 -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: 0ce18948-16ac-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744358865; x=1744963665; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=QQXxeGqfmZncD3mNY4+0rD9cRgEPpHT0rAOQJ/zX4Q4=;
        b=SYPonrctBtYg3LSsc0D50O47z2Oz2R8JHM9Rj/A7VnOOdUcMMdpEmwG5h578E+ZvcV
         NtDngvi8MuDV/IOUF2SutVCNVGfXmph2B9uV9TwWrbdVtJKmTh28J5kZ6rqf3j9S+j7w
         GpWjkRJO8wFayLyuHo6kBMhr3UluTlr2LrK7iWRtj9u1x4d/nk7WU5Fu0m4CGdFWRJAJ
         K2tnBvzrBBtb9Oun8GHJkZmEyPmGUZDhg57ZoDZJW6erYT1W8yhIcKaT10uxKjp3K5XU
         Gk3Dy6wU6dXfru6rWkZPbP6oVK1VXyOJB/PLo2D4ZxSnecbHKbXJAX6gZYm4ThFv61cF
         Ff0Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744358865; x=1744963665;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=QQXxeGqfmZncD3mNY4+0rD9cRgEPpHT0rAOQJ/zX4Q4=;
        b=tL3B8iaveYCvdG3Yte52NvFiEUNgp4y1Bss5RtsgS9RolKq4tpr/5gddgA46Y9jlmL
         W6TypBPnRHdk4g0apfJXsb94M9drdeML9c3xg5CLXceO0440isX9r+7HrwM+S++WWohb
         fKIebRhEpR+7OQKkSWBL9k/Y6zSEoAfVI3nTO9vcnnATPVz7GQUsaPiuGiUCIE2E2Rj3
         gxKvRO/SGggBH3QuTD/kpWj/oSFYSJmfkGBPxYeoCmiq5Ar1dhFSGplV9A0Fsl4po+0o
         uY+rYtovlL9rGgC2/1PWiQJN34Qv4iMGChmjln4qnS1kovwAjcSQkq00zm3qQyZzyjM2
         d7sw==
X-Forwarded-Encrypted: i=1; AJvYcCW2O7wdTph/ha94qAtXUG/UbbwXAe4HPr0IiDqA45bkaNGDpnVz3GnxTNZMo1cXbBcynV9anL/Mw+w=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyXIXoMmF/dgQP3m1DAdqYSeb2R0VsTWkNrGlorNrnk6rzc07Zw
	Mp8QXxcw2ztW4oHccF/DydwZ64WAnJ0zXfRJ2ElriSDYhHqTFAahkcdVO8Fh/A==
X-Gm-Gg: ASbGncvKR6OpgisJI3X3uova0lB8a9fHxFiW/pEyhXyCxhfDTAx4fux/uok3V8VBqCI
	gyIgkfXljwR2KL2NJbb3cTMYFInq0KHKKv0muWlUlPt2ck32pbAis32hG7CnQdu9qqdNyNuUego
	XYsSQMrqTvchyYEC83v9hhQO0IIY/1q6L2YEwqpkUigSqEzZ5TgxswiKGKO49ANYZhVa7fKCiiG
	uGJHrIFjww6GvjE15tcC00bIDVY8tWUN3P4WL2et3Nbf81sLF1Zh3FUn0OLQeVyR9Hehw/v6+dB
	FFEC4KNMJQ+S0H8bif28sU9knSB+v5swyr6msHSdBhSF2Zop8PE290sej3znfLYQKOjgtDBJgZb
	k8MY4fG/UkcMkAtb0lZkSSwdyvg==
X-Google-Smtp-Source: AGHT+IGI8bl0sodidE5wB97bKuzH3K7LxVbhZyZ2ZyoK1zv4I2fO3UBJK8smvJMCsq/CSkvLU5YgLA==
X-Received: by 2002:a05:600c:83c6:b0:43d:b85:1831 with SMTP id 5b1f17b1804b1-43f3a7d8c5emr15085125e9.0.1744358865047;
        Fri, 11 Apr 2025 01:07:45 -0700 (PDT)
Message-ID: <a6182e35-77db-4207-b24f-471afc73ad7e@suse.com>
Date: Fri, 11 Apr 2025 10:07:43 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC] xen/x86: allow overlaps with non-RAM regions
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org, Andrew Cooper <andrew.cooper3@citrix.com>,
 Xenia.Ragiadakou@amd.com, Alejandro.GarciaVallejo@amd.com,
 "Lira, Victor M" <VictorM.Lira@amd.com>
References: <alpine.DEB.2.22.394.2504031755440.3529306@ubuntu-linux-20-04-desktop>
 <Z--0USril0UIhR4R@macbook.lan> <3c5dfd26-3c12-498b-aca4-0beac4e991a5@amd.com>
 <Z_jFSb2-efexUNlL@macbook.lan>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <Z_jFSb2-efexUNlL@macbook.lan>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 11.04.2025 09:31, Roger Pau Monné wrote:
> Yup, the check is independent, but pf-fixup would create additional
> p2m mappings if required (note this is only available on staging).

It's also in 4.19.2 and on the 4.20 branch. 4.18 is where I couldn't
easily backport it to.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Apr 11 08:08:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 08:08:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.946812.1344579 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u39Qy-0000Qn-Nl; Fri, 11 Apr 2025 08:08:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 946812.1344579; Fri, 11 Apr 2025 08: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 1u39Qy-0000Qg-Kq; Fri, 11 Apr 2025 08:08:20 +0000
Received: by outflank-mailman (input) for mailman id 946812;
 Fri, 11 Apr 2025 08:08: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=AtDH=W5=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1u39Qx-00008a-9U
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 08:08:19 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on20631.outbound.protection.outlook.com
 [2a01:111:f403:2415::631])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1f4dabc6-16ac-11f0-9ead-5ba50f476ded;
 Fri, 11 Apr 2025 10:08:18 +0200 (CEST)
Received: from BL1PR12MB5849.namprd12.prod.outlook.com (2603:10b6:208:384::18)
 by PH7PR12MB9174.namprd12.prod.outlook.com (2603:10b6:510:2ed::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.36; Fri, 11 Apr
 2025 08:08:13 +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.8606.035; Fri, 11 Apr 2025
 08: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: 1f4dabc6-16ac-11f0-9ead-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ivK8t0cJOkKkiX3MSjEOB/OfqJTNaCyjf9h77ETJEEH2+In8kTP9nDpXeNXCyWeHPtjQAUBiR4MIpNahy8C4pvdoA9wY28zbTVEAA2JibscUSotv2fPTCv1mTRER/PA0NSoVyt4bkxa6rQXJCj+5rS5k2dVGEPKzkHXFfQS3fjlwSqvW3iMvP1hNpmJKdBVe/A74tTQWL8a7PT8Tflxr7Bt4RdXekM89Jw/3kWx63REIfgkTzcr51F6i7Rr3vLCUEp/KJN/G0t14LNe3alXTNGqO7rvcl+fga0AX40Uit+6OmL55BwGe2wVksr7FXwi21CD8I94Ur05YOm7chY9+dQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=JMNZK5Ll+mK1erBU7KB7MfUdYtKmClDeJ4wjXHmzxDE=;
 b=Hq9CURPFdbEOrNTo/J2GvYpPWpEE1MeUK7eUrjalZCq3h9RzC6RkEcGY/vujpHoP1kR7AdWQLUCZTHqX4ZU35ZdROC27KsBaV355RBCjV72OJfTYB5XaZRC/KrULdzQd45uxVi7AfiKxc+asnNF/HjPSG1wDvWoA7fUay6kI82Bh761/j3PIMy6Ho24FHXDXJDBc1BlJVdFjV5yhn9I45gNQBdHGpyVggYnPWiYYlAu2FLo7inSubL3IpCUdicVEt8m6qF0YozS3j9+azdZHq5sGfIwytLcEaID+b6GKeK1TWoDHEqy1/dDN5ikloRC7yhjhASdmkdDYzFNqtaX0/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=JMNZK5Ll+mK1erBU7KB7MfUdYtKmClDeJ4wjXHmzxDE=;
 b=pmmRPhwbyg67c0vXF28T0emKkisCFCju5W7x1rtNVK17XtdNuwN4QuLvmcsSZ6bg5caY2xpt7SGQzIHBdGEIg7wqKHoNNjfsTBv0KhDgKFbbBNMINcoK0RFkbaBXPux5fSijMJWgV8L6GKVhnbt5NACrTbj1DlODRSDHtZ8d7Kw=
From: "Chen, Jiqian" <Jiqian.Chen@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, "Orzel, Michal" <Michal.Orzel@amd.com>, Julien
 Grall <julien@xen.org>, =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, "Huang,
 Ray" <Ray.Huang@amd.com>, "Chen, Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [PATCH v2 1/8] driver/pci: Get next capability without passing
 caps
Thread-Topic: [PATCH v2 1/8] driver/pci: Get next capability without passing
 caps
Thread-Index: AQHbqRsYW9r+TjshqU+vmdXYCVrO/7Oc16GAgAFv6YD//9W+AIAAh8GA
Date: Fri, 11 Apr 2025 08:08:12 +0000
Message-ID:
 <BL1PR12MB58494C7D7C6D026EFF687F63E7B62@BL1PR12MB5849.namprd12.prod.outlook.com>
References: <20250409064528.405573-1-Jiqian.Chen@amd.com>
 <20250409064528.405573-2-Jiqian.Chen@amd.com>
 <5a18ae61-3ffa-41d1-aa1d-dce4d3ca0381@suse.com>
 <BL1PR12MB5849F5E86496802914619F5EE7B62@BL1PR12MB5849.namprd12.prod.outlook.com>
 <4c1ec39e-5043-49bc-b7bf-0f193331c146@suse.com>
In-Reply-To: <4c1ec39e-5043-49bc-b7bf-0f193331c146@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.8606.035)
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_|PH7PR12MB9174:EE_
x-ms-office365-filtering-correlation-id: 64cfd830-4576-4fd6-b4b2-08dd78d00111
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?dlZaNXNWTTd6aGJCSUJEMXEyM0p5dEE2blloRUVLZTdWamk0aXNhTkZPcFVo?=
 =?utf-8?B?aDlpeHBtdnFrekZ6Qm5SbXBUZVNhYXZkNTNqL0MzZEg1ZzdkKzlaV09NaG54?=
 =?utf-8?B?UUZ2YkowSWV3ZVVFYktSK3FhWGFvbXp2cmE0MkdrbENUMWtKckJiTGZHQWlu?=
 =?utf-8?B?OUdKV0FPMGN6bFBRZ2dZOVVGMFgwUDFINGxoNEZ5WGxLNGxCVlRmeG9wRmZ3?=
 =?utf-8?B?N0tKaWF5RDdTZlFZUVJWWm5VUE10TEFoYWhZaWVzRVB1SW5oNE5DUTZOVjkz?=
 =?utf-8?B?YUNOVUJoWmJhajEzRG5aWFZYUVFZRHVXbTczd1dUNU5pWm5rTmtCSmhtNkcv?=
 =?utf-8?B?Wis1UE9DY3Y4RDRuZDFoUUJGWFcwR3FNVXhOck5FYnRrTW4xSUhVeG1yaDNG?=
 =?utf-8?B?NGMrUnZDdSttSEhSWUNxd3IvR0ZpRVRuUW52cE8zYVgwcWJDMXBnU091R2lx?=
 =?utf-8?B?MzM1TnBjWHpPZEFGeGFQNTRZckxSN1NpY09lYmlCRnNjSUJDZkFQSkJvczkr?=
 =?utf-8?B?UCtpWGdWVitMdk1EVnE3cXRhRS9Jd2ZGcGl3TDlacGYrYWVXMzNJd3JEeTRm?=
 =?utf-8?B?QnRwY0s4ZHAzelpBT1NFSFFHb2UxVjA1dkZHTXdhYWFxVHBhWWxvbTM0QXp6?=
 =?utf-8?B?SU5lREc5aWtYb0p4aXBEaXJmR1FlVG5tTVc4Z1hFTlFDSy8rN0p1VklkNEZX?=
 =?utf-8?B?TGFxcUtxeG1aZjVsK0IwMlN3czI2Y3h4bVNuQ3BGVGlVM052WlAwVTJmblZH?=
 =?utf-8?B?Y0FUVk9Md3c4TGdpTDBqM2hOb05qRUlVV2MwK1NTV09vTXAzYnU0WnlFVnNJ?=
 =?utf-8?B?dGFRdk42WnZ4R3Q3WlZ4eFFtUzdSRHk4RHdQamcyMzBIRDFHQ2J2Zk13Y2Q1?=
 =?utf-8?B?SVZjdkJ6a3RjeHRQZDYrRHhmQ2FjVzlGa1psdUlESXBucXVTOENCVjR2L01X?=
 =?utf-8?B?WXdVdEQwWHJ3NEQydUI5eVJ6aTVqTlZiRitPZldQTkNzalZ4WWhsK0FzNDQr?=
 =?utf-8?B?NW0wQTJUTjJsZ0d1L3ZPNURoZXprTjBUM0VHcVNyVjVKNDE3TFFDalprK3My?=
 =?utf-8?B?QUFVaURwNFFCUlhaU0pvWVJLQ1ZUUUoxQVZrNWV6bHYxSkxOdkxXdFI1L2tn?=
 =?utf-8?B?UXhsejJCdGh3YXVCdnU1ZXVZTFAwUG1VQU51TkRKbWd5U0Y5eHlwNVZldHFO?=
 =?utf-8?B?VGpmWTBLNVh1MWJzdnU4Q0p5ZlNFUnZqS3hxaHRETXVhMHBONW9QWWpnK2FL?=
 =?utf-8?B?ZmxTL1FURjVLbWxSZStpNVlJL3dJVm1hemhBUXU3RHMrV0t0K2lQOHNvMXhk?=
 =?utf-8?B?dkpzWVRzNCtQR3lZUTJaSUpMNlNUcVl0Rm5MaFVQWEY0RHpRYmZkamRYUk5O?=
 =?utf-8?B?a2VkbzY5bm1NNGxha0N6d3Q5aVNHL0UxbGFTV09SQmo0d3djRjlQUkdRbjNL?=
 =?utf-8?B?Qy9TM01ReTVpbTF6bUV3cVh5TlNyK3ZvTGtkWE52ZG4yKzJIQ0tPdTBBSXRh?=
 =?utf-8?B?N3dCcGpiQXJPQUVzKzBMcjV3VUp2RDRRLzVIUHBoVnE3eE1NdzgySEcwcGxy?=
 =?utf-8?B?WGhSa1FNeTU5QXpab3FBMVRkSEJENHQxQnJVMDdJVm9KMG8rZ0hEeWVzaW84?=
 =?utf-8?B?bUE2Rjl1YXoxVEtJNm96cDRVM1ViUmpndURVc1J4KzNCb0tIWHJZeGxuR1dW?=
 =?utf-8?B?SENKYkZYQlR2USt2K1ozTitpSk14UmNneGJ4TzZOdDJFMmxiQXE0Nm15dEVW?=
 =?utf-8?B?bEgvTTlJTXNZTUxhQjNRc2draWV6bjkxMXUvdnNIWVl4d2tQSXJSY1BYbWJX?=
 =?utf-8?B?TUFab3lXZC93YlA5RXFaMEs1SnJTRVVKd3JlYUFPV1BTYlNTcUw1NjJibnA3?=
 =?utf-8?B?ckZnYnB1dnB5ZVZvMWZGeXdUSnkwZE9QVXYxcC85WXJLYnJqMjlJemhoMGY1?=
 =?utf-8?B?VmgwaU5DMitlL20zay9Lc3E1b0QzUjB0VHNYcHF4NlRmVHdDOERUZW9QNTM5?=
 =?utf-8?Q?2xeEE9g0g/e5EM1CpNK291Tzb8I1Pw=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?bnA1YmxwamVRaHUzdHFsbXpOaEFhRzBObXRNL0FBc1lhTzhwYkFiaW9wUysv?=
 =?utf-8?B?eEJScmJib0FNaS8vdmRvUGhaYSs5b3JnU25CbHNKRG1ON0FHSjdEM2JXRUtO?=
 =?utf-8?B?c2tOaThxTVVXamEyTW00enAwbmtMYjBnOHIram9HTzlDZUF0RzBBMVNPeTNr?=
 =?utf-8?B?ZmNkRHlqbi9XNGhEMENXcnkxR2FPR0FmTjBBRmx3UmxzNENYcTUzVFVxNjFy?=
 =?utf-8?B?VCsvYXVEcXVjb3FKQXFlNU5IMjllaUNZN2UxRHFyS0l6S0FhbXlmNlRtdWdz?=
 =?utf-8?B?QVJqVFhxRlo1emNPM2JlNFc5WS9yNUhzelVCL1BhcEFCSTZOZjN1VVJNbmQw?=
 =?utf-8?B?RW9wSVljWXlOcWtIaVJHWXVybEJkSmJ1YTFTWEFaR3cxUTVlZ0JuVjUzQkRh?=
 =?utf-8?B?VmNEdXJEeFg4blhvM1IwaGtyelBPWVRPTi9qcis4THNPVXc0UmM1UXhQcnpE?=
 =?utf-8?B?Y3pTeFhoc0lnY1hGOWIvUHFVakZSZ3Vtc05zWWEwMUYrL0RnM1pSdFp1QTJD?=
 =?utf-8?B?OHJBNXF0L01GU3B1R2JBd0hua053d3RXUU5xQy9rb0N1eUVRQVpDUHFWQTU4?=
 =?utf-8?B?aHNwWnFONllod01JTmp5Y2gvYStoL1ptQTlDSXN1TmlGQWQ2TWlCKzV5TUs0?=
 =?utf-8?B?d1FFU3FDVG1uZzlueVMrc1FmcjUzQkljRC9yZTNZUGN2cXJteUZLcGIzRUUy?=
 =?utf-8?B?NkZ0T3QvSUduSk9GU3FHVldFN0orZnpiNDIxbG1JdUxVam1PSjZVRkgyU1Bw?=
 =?utf-8?B?eFBaRzdnM2Z0eE1ZeUVHckhvcnhSL29TSXdvVkdVVUoxL091TUYwbCtWTHhF?=
 =?utf-8?B?akYzd0Y4V0ViaHhvR0lucG5CT01zRUNyaFZBTUlvZFRLREJJZllwWEJqVFdL?=
 =?utf-8?B?dElnL1FRT0NLTitZaW42K2g5Q2x4WURmYWNoaXpzOE9NNUNTWEtzSnVwdGhR?=
 =?utf-8?B?OTQzT1VPeFdIUWV2SE9mRHBJTmNnejJheXdWdnIzTmxhN2xzR3ZDYm5Pc2ts?=
 =?utf-8?B?NkxSNldiOG5wWUJ5OGw3UVJ5a3JLYjF5NFlhYlZSTmd2RGFURjZDKzZ3LzZv?=
 =?utf-8?B?czE2R0ljejhnYThFRTBpaE9HdHBJbHAyTU82R1dwYWg4ZkpGVTMvZUJ2MVBp?=
 =?utf-8?B?Z2dPdkkzdHc5Wnl4N0o3ck90YXphaTBma3YwVTNza0FmUGZRS0JMM0xmOGZL?=
 =?utf-8?B?NVFUdnltV0VBdUxUYUNXTGRodWNUdk1hdHpIL0JBMkdtSXhLQ2lGZ3JHZmsw?=
 =?utf-8?B?OWI5dVJTSlcwelpFY0hZK3lPeDBUVlNIVTEvUkZQUFBSR0lTNmUwUzYyb29k?=
 =?utf-8?B?a1lyZ1FUV09kMnhTV0p5Qkx6cVdyYU1EZTd6MUVzUms3QlBZenNVbmlWbG55?=
 =?utf-8?B?d1FZNFdJVXJ4ZWpiME5LSFJReXhMWFdWakN0YTMxMTNtSGc2Sy91MThneUFp?=
 =?utf-8?B?L21pZG04ZXFGVlBQS3BPb2N1ZHJJcDJKOGZwcnZZWWNMSXUyVTJzNytldGhI?=
 =?utf-8?B?YU95OTZEanU2eWtKdy9NSnlYclZ5Mno5WkdZZzcxN2VienIrTFB0dk1mVXN5?=
 =?utf-8?B?akt3ZjNkSmxhWGljL29YaDliZXFxUmhEaWpOd3EwdGJiWDBzYlBlOFc1VjI0?=
 =?utf-8?B?RWxLS2ZoT0dSYlpKSWVPcGtFVzFHVDNMb05WK2I1WlY0SXdCK0RhcENEUTNq?=
 =?utf-8?B?eTFrendVek9FTERueEhQTkhKU2FhdXRYczlkU0Fac1hxL2kxOHIzNTZvVjIy?=
 =?utf-8?B?aGszNHRCVmMxVGZCR2lnMy91ZUtqQlhWSkViTlh3UURtQXNCVUl0bnZIaUt6?=
 =?utf-8?B?NS9CZU5KNExmRkh4c2tqdlNEQUVNMHRNTTVPN2NRaTNKakFXLzdVVTQyQVFZ?=
 =?utf-8?B?V1ErclZ3cXpGeWVkQk5CUEZGek9zWDYrc2U5alpiNlRWZ1VDUWxPZ3pUbVdy?=
 =?utf-8?B?RjhJNER3YkVpT0VwdFJQcEltRzhjb3phajVxZkVLUFBuTzJZQ2hlZ2RKLzBJ?=
 =?utf-8?B?Qk5wbWdEb3BXTG1jUDNqbnlOUVlrYnJBSVArdE42MEVYODhrazh4WlpHVVFT?=
 =?utf-8?B?bUdoQSs3UXJscFF0Wi9KNjg5alhuWlpsaFl5TkdDM3dhc1VMR2hGRmI2S1la?=
 =?utf-8?Q?yz+Q=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <47C1EB38599043438D16FF2C9C2FA02D@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: 64cfd830-4576-4fd6-b4b2-08dd78d00111
X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Apr 2025 08:08:12.2548
 (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: /UaS+0z9UINSNQcFNAvsH36xk8RCs+VtjEL+ZUMha/PU24sL+6t6pgPkwX/OJKZFJSI9SCp0UxJ/MioCyQonpA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB9174

T24gMjAyNS80LzExIDE2OjAwLCBKYW4gQmV1bGljaCB3cm90ZToNCj4gT24gMTEuMDQuMjAyNSAw
NDo1MSwgQ2hlbiwgSmlxaWFuIHdyb3RlOg0KPj4gT24gMjAyNS80LzEwIDIwOjM0LCBKYW4gQmV1
bGljaCB3cm90ZToNCj4+PiBPbiAwOS4wNC4yMDI1IDA4OjQ1LCBKaXFpYW4gQ2hlbiB3cm90ZToN
Cj4+Pj4gLS0tIGEveGVuL2RyaXZlcnMvcGNpL3BjaS5jDQo+Pj4+ICsrKyBiL3hlbi9kcml2ZXJz
L3BjaS9wY2kuYw0KPj4+PiBAQCAtNDAsNyArNDAsNyBAQCB1bnNpZ25lZCBpbnQgcGNpX2ZpbmRf
Y2FwX29mZnNldChwY2lfc2JkZl90IHNiZGYsIHVuc2lnbmVkIGludCBjYXApDQo+Pj4+ICB9DQo+
Pj4+ICANCj4+Pj4gIHVuc2lnbmVkIGludCBwY2lfZmluZF9uZXh0X2NhcF90dGwocGNpX3NiZGZf
dCBzYmRmLCB1bnNpZ25lZCBpbnQgcG9zLA0KPj4+PiAtICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgY2Fwc1tdLCB1bnNpZ25lZCBpbnQgbiwNCj4+
Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgaW50
ICpjYXBzLCB1bnNpZ25lZCBpbnQgbiwNCj4+Pg0KPj4+IEkgZG9uJ3QgZm9sbG93IHRoZSBuZWVk
IGZvciB0aGlzIGNoYW5nZS4NCj4+IFRoaXMgY2hhbmdlZCBpcyBmb3IgbXkgbmV4dCBwYXRjaCAi
dnBjaS9oZWFkZXI6IEVtdWxhdGUgbGVnYWN5IGNhcGFiaWxpdHkgbGlzdCBmb3IgaG9zdCIuDQo+
PiBDdXJyZW50bHksIHZwY2kgb25seSBlbXVsYXRlcyBjYXBhYmlsaXR5IGxpc3QgZm9yIGRvbVUs
IG5vdCBmb3IgZG9tMC4NCj4+IEZvciBkb21VLCB2cGNpIGV4cG9zZXMgYSBmaXhlZCBjYXBhYmls
aXR5IGFycmF5IHdoaWNoIGNhbGxzICJzdXBwb3J0ZWRfY2FwcyIuDQo+PiBNeSBjaGFuZ2VzIHdh
bnQgdG8gZW11bGF0ZSBjYXBhYmlsaXR5IGxpc3QgZm9yIGRvbTAuDQo+PiBJIHRoaW5rIHZwY2kg
c2hvdWxkIGV4cG9zZSBhbGwgZGV2aWNlcyBjYXBhYmlsaXRpZXMgdG8gZG9tMC4NCj4+IFdoZW4g
SSBlbXVsYXRlIGl0LCBJIG5lZWQgdG8gaXRlcmF0ZSBvdmVyIGFsbCBjYXBhYmlsaXRpZXMgd2l0
aG91dCBhbm90aGVyIGZpeGVkIGFycmF5LA0KPj4gc28gSSBuZWVkIHRoaXMgZnVuY3Rpb24gdG8g
cmV0dXJuIHRoZSBwb3NpdGlvbiBvZiBuZXh0IGNhcGFiaWxpdHkgZGlyZWN0bHkgd2hlbiBwYXNz
aW5nIGEgemVybyBsZW5ndGggYXJyYXkgdG8gdGhpcyBmdW5jdGlvbi4NCj4gDQo+IFRoaXMgZG9l
c24ndCBhbnN3ZXIgbXkgcXVlc3Rpb24uIFRoZSBjaGFuZ2UgeW91IG5lZWQgZm9yIHRoZSBuZXh0
IHBhdGNoIGlzDQo+IHRoZSBodW5rIGJlbG93LCBub3QgdGhlIG9uZSBhYm92ZS4gQWl1aSBhdCBs
ZWFzdC4NCkFoLCB5ZXMuDQpJIHdpbGwgYWJhbmRvbiBjaGFuZ2luZyB0aGlzIGZ1bmN0aW9uIGRl
ZmluaXRpb24gaW4gbmV4dCB2ZXJzaW9uIHNpbmNlIGl0IGp1c3QgbmVlZHMgdG8gY2hlY2sgIm4g
PT0gMCIuDQoNCj4gDQo+Pj4+IEBAIC01NSw2ICs1NSwxMCBAQCB1bnNpZ25lZCBpbnQgcGNpX2Zp
bmRfbmV4dF9jYXBfdHRsKHBjaV9zYmRmX3Qgc2JkZiwgdW5zaWduZWQgaW50IHBvcywNCj4+Pj4g
IA0KPj4+PiAgICAgICAgICBpZiAoIGlkID09IDB4ZmYgKQ0KPj4+PiAgICAgICAgICAgICAgYnJl
YWs7DQo+Pj4+ICsNCj4+Pj4gKyAgICAgICAgaWYgKCAhY2FwcyB8fCBuID09IDAgKQ0KPj4+PiAr
ICAgICAgICAgICAgcmV0dXJuIHBvczsNCj4+Pg0KPj4+IENoZWNraW5nIG4gdG8gYmUgemVybyBv
dWdodCB0byBzdWZmaWNlIGhlcmU/IEluIHRoYXQgY2FzZSBpdCBkb2Vzbid0IG1hdHRlcg0KPj4+
IHdoYXQgY2FwcyBpcy4gUGx1cyBpZiBuIGlzIG5vbi16ZXJvLCBpdCBjbGVhcmx5IGlzIGFuIGVy
cm9yIGlmIGNhcHMgd2FzIE5VTEwuDQo+PiBUd28gY2hlY2tpbmcgaXMgdG8gcHJldmVudCBudWxs
IHBvaW50ZXIgZXJyb3JzLg0KPj4gQnV0IGFzIHlvdSBzYWlkLCBpZiBjaGVja2luZyBuIHRvIGJl
IHplcm8gaXMgZW5vdWdoLCB0aGVuIEkgZG9uJ3QgbmVlZCB0byBjaGFuZ2UgdGhlIGRlZmluaXRp
b24gb2YgdGhpcyBmdW5jdGlvbi4NCj4+IEkgd2lsbCBjaGFuZ2UgaW4gbmV4dCB2ZXJzaW9uLg0K
PiANCj4gSWYgeW91IHJlYWxseSB3YW50ZWQgdG8sIHlvdSBjb3VsZCBhZGQgZS5nLiBBU1NFUlQo
Y2FwcykgYWZ0ZXIgdGhpcyBpZigpLg0KT0ssIHdpbGwgYWRkIGluIG5leHQgdmVyc2lvbiwgdG9v
Lg0KDQo+IA0KPiBKYW4NCg0KLS0gDQpCZXN0IHJlZ2FyZHMsDQpKaXFpYW4gQ2hlbi4NCg==


From xen-devel-bounces@lists.xenproject.org Fri Apr 11 08:15:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 08:15:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.946826.1344588 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u39Xv-0004ln-D0; Fri, 11 Apr 2025 08:15:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 946826.1344588; Fri, 11 Apr 2025 08:15: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 1u39Xv-0004lg-AV; Fri, 11 Apr 2025 08:15:31 +0000
Received: by outflank-mailman (input) for mailman id 946826;
 Fri, 11 Apr 2025 08:15: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=kzGk=W5=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u39Xt-0004la-La
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 08:15:29 +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 20d294de-16ad-11f0-9ead-5ba50f476ded;
 Fri, 11 Apr 2025 10:15:28 +0200 (CEST)
Received: by mail-wr1-x42a.google.com with SMTP id
 ffacd0b85a97d-399737f4fa4so899331f8f.0
 for <xen-devel@lists.xenproject.org>; Fri, 11 Apr 2025 01:15:28 -0700 (PDT)
Received: from [10.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-43f205ecb20sm79568525e9.3.2025.04.11.01.15.27
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 11 Apr 2025 01:15:27 -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: 20d294de-16ad-11f0-9ead-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744359328; x=1744964128; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=BWlf9YaDq6iwb91Y497OMIUiV89XVUHF/KmI3fZZwr4=;
        b=A4HFX8bgF4hl0QuBHtHMoutUKpMeoJnhJfYh3ARed6FsvX/Vlvw/xX1WzFZUG6T6Zp
         9rcOaqqGaFp5/SzjkfhVd2TvjFJYYfg1JK2n+aD/qRxalcDxcweW9t5tM941EN2YME+I
         fO7zfgmJH3sXwE3sMf3ZtjxxjCaLOuRIV9M/nG6Ms3y9QUmH022wFPTE3vixT44cJfgI
         +gnYLy7CuAaztogCkKTnzoeunlX0223WwM+andcgGAg8CDCrus9gEwJB70xtKJNhjyBt
         Vv8KtlJ19ZLJVtHvGrWsAMhjdU0JfxD/fiqSHAjMqwynvqHPwvwsrCxy8Y1FKy4UZLO/
         dnIQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744359328; x=1744964128;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=BWlf9YaDq6iwb91Y497OMIUiV89XVUHF/KmI3fZZwr4=;
        b=kGes5UJWnCooy1W+IYxCF7GcEqde9h1lYRrHabKodWwBEBkVEQxE/pIfMABFJFU4dr
         nI84AtJp0I1DHTJflSyXdashsrWe8b6ww7HJnxtRle92bIt1l4XJagG1z42tiZM8kt91
         rY6EIkctWl8dFtXUBiF7RuXvpBWoc9iajSOMyi2v6R5hzpCyoj91jqUmhXzT1UMBACFe
         8asl/jeaLH6F6obCv4/f9su56JWEbTPeG/c3sZBLvrGNlFr3abnowBqMysY+7k5SyRop
         Ik4QMXMi7RoqovuGzgSRSNLWIE1FZyO5i0ZTczIhx+8FXmlGMdSwFFq4PY8Qo2729+Bt
         CM3g==
X-Gm-Message-State: AOJu0YwNitNvHo6wezLvArJBKwctayWrYjwsjdZpOa4Cb2+v5c9PFhjx
	eMdGfGdm6XbgQw3OxFZZKfhL2fWXMv4xR1ISb6/A1yZELXn17mEU93uDBszLLA==
X-Gm-Gg: ASbGncvWBK6VhRndcqLbm6321znO4mKsvR6SIIUzbH/wWDFBo/JAPDO0I4NFGZybtVz
	yChBS56p7mkzMGU7+WQgpbKxLcl/UiNjLHDIGLEapcqYRsKJ577dJCdUfZGx6Zm+Lev/hwxn447
	V6W7SAwXjbgDiNTZ26cTx3Ed907Gu63YCmubmwDKPGqISbREfCt3BAMo5DChUjX0BUCK9+210Uz
	CdlIPVCrlLELCrCgwzbciUPeP0wrNZ2PNZNSGWfA05uJCqmA8Fhoq966t0rvmiZ/lj5hlDmqtRr
	37vQRYWDYZ5IqIdQ5KUloK9ZXH7kh44ic4jmVueEyyR4xxlXpVfizVq1xx1mILqv90hFXXAWtV6
	VUkzLcaxe4OViIhzWB+mHZ/tgEw==
X-Google-Smtp-Source: AGHT+IHSXGtFsYBgSxAgklm/GFX5NMwgP4ahM93VdQjTzuzyyfco/pfpuUiWqcf+ftXswZUqO0NCGg==
X-Received: by 2002:a5d:64e8:0:b0:390:f745:bbfb with SMTP id ffacd0b85a97d-39ea52171f7mr1388235f8f.26.1744359327892;
        Fri, 11 Apr 2025 01:15:27 -0700 (PDT)
Message-ID: <87349713-cdc4-4d54-adcb-27db20a2a210@suse.com>
Date: Fri, 11 Apr 2025 10:15:26 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC] xen/x86: allow overlaps with non-RAM regions
To: Jason Andryuk <jason.andryuk@amd.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>, Xenia.Ragiadakou@amd.com,
 Alejandro.GarciaVallejo@amd.com, "Lira, Victor M" <VictorM.Lira@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>
References: <alpine.DEB.2.22.394.2504031755440.3529306@ubuntu-linux-20-04-desktop>
 <Z--0USril0UIhR4R@macbook.lan> <3c5dfd26-3c12-498b-aca4-0beac4e991a5@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: <3c5dfd26-3c12-498b-aca4-0beac4e991a5@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 10.04.2025 22:55, Jason Andryuk wrote:
> On 2025-04-04 06:28, Roger Pau Monné wrote:
>> On Thu, Apr 03, 2025 at 06:01:42PM -0700, Stefano Stabellini wrote:
>>> On one Sapphire AMD x86 board, I see this:
>>>
>>>
>>> (XEN) [0000003943ca6ff2]  [00000000f0000000, 00000000f7ffffff] (reserved)
>>> (XEN) [00000039460886d9]  [00000000fd000000, 00000000ffffffff] (reserved)
>>> [...]
>>> (XEN) [    4.612235] 0000:02:00.0: not mapping BAR [fea00, fea03] invalid position
>>>
>>>
>>> Linux boots fine on this platform but Linux as Dom0 on Xen does not.
>>> This is because the pci_check_bar->is_memory_hole check fails due to the
>>> MMIO region overlapping with the EFI reserved region.
>>
>> That's weird.  (Partially) the reason to not attempt to map such BAR
>> is that it should already be mapped, because at dom0 creation time all
>> reserved regions are added to the p2m (see arch_iommu_hwdom_init()).
>> If that's not the case we should figure out why this reserved region
>> is not added to dom0 p2m as part of arch_iommu_hwdom_init().
> 
> Victor discovered these regions are type 11 EfiMemoryMappedIO, but they 
> get converted to e820 RESERVED.  The BAR points into it.
> 
> 00000f0000000-00000f7ffffff type=11 attr=800000000000100d
> 00000fd000000-00000fedfffff type=11 attr=800000000000100d
> 00000fee00000-00000fee00fff type=11 attr=8000000000000001
> 00000fee01000-00000ffffffff type=11 attr=800000000000100d
> 
> Xenia discovered Linux keeps small regions like this reserved, but lets 
> larger ones (>= 256kb) become holes.  See the comment in Linux 
> arch/x86/platform/efi/efi.c:efi_remove_e820_mmio() around line 301.

What a hack. And the mentioning of MMCFG space isn't even correct there,
I think. That space may legitimately be reserved (and at least older
Linux actually checked for that), unlike any ranges where BARs may live.
As to host bridge windows - I dare to question that they always need to
be "large". Similarly nothing guarantees the some non-window space
included in _CRS may not point at a "large" region.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Apr 11 08:16:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 08:16:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.946836.1344599 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u39Yk-0005Fo-MS; Fri, 11 Apr 2025 08:16:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 946836.1344599; Fri, 11 Apr 2025 08:16:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u39Yk-0005Fh-JP; Fri, 11 Apr 2025 08:16:22 +0000
Received: by outflank-mailman (input) for mailman id 946836;
 Fri, 11 Apr 2025 08:16: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=kzGk=W5=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u39Yj-00056O-HR
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 08:16:21 +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 3f5bddc9-16ad-11f0-9ffb-bf95429c2676;
 Fri, 11 Apr 2025 10:16:19 +0200 (CEST)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-4394a0c65fcso17997355e9.1
 for <xen-devel@lists.xenproject.org>; Fri, 11 Apr 2025 01:16:19 -0700 (PDT)
Received: from [10.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-43f233c824bsm75708535e9.24.2025.04.11.01.16.18
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 11 Apr 2025 01:16:18 -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: 3f5bddc9-16ad-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744359379; x=1744964179; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=4fRZ7QfsMr17EG/vuJ/EwZlyZHa0zUFcl/IsUD8t/8g=;
        b=dFAKTlpR8PoQL1Vv3+JsJDaJn1ZVdfhrxm8SuKO8uxld5LJvbIWIEW6Nf8wcFSdFfF
         bKtQqZI+4p8N9wGyXizRFKxtW1aNM73EtfRiuRhyheDuS65m1P6R4s6Ye1oftO4PJDgI
         +/wA0twaQPqZlVtmrwNyiwS9RW9lrM3bLG+cLM4MQ5TiSW/gls1udCK0q6RD0+OKLnDu
         PtAw+KLwXy4esQnR8nWcK39H73gE9a1NZhAaruUvHcpyT/FgCa3miituO2Ut0RMli6Wb
         lRUQR1/fKSbpAZaE20q6+vkYg6WOeuVh+6q8UDp4HdpyoyPhmloUNg9nOXIlQAHjDVjc
         Aifw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744359379; x=1744964179;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=4fRZ7QfsMr17EG/vuJ/EwZlyZHa0zUFcl/IsUD8t/8g=;
        b=W9uN/6W4TcHAsVcTo3tBbD4tPBlsc0U83eSEbZNE5cRHFOo/AlI8KIZqoWLoFil/xU
         p9zjUUCNhAQQ8J91OfhwNk2EeLALjJCzRG486S2T9Ljx4U4xKIOpIFMai1MIFpOE3FCV
         bpR6hmq80REUbAOAXDBMKXTbxREk+6qnHKY3iBIq95Qk53t2dNqNeqEAJ6243c5e5pJd
         OtCVkabI6oUDH4Bx3xV9KGhwAViYI68oGGPTwlfK99bEziJ6IoliTxwuXAL17th2hD0m
         j+iCMWiGQCs9/1304F2UnZpSyRS3WWN0lhu2QBnpMXuxTE6xeqxXJlKMKJ7lk62L2s5e
         OeBg==
X-Forwarded-Encrypted: i=1; AJvYcCUlcNZPZvJvDapgQvgTr1iDbtNjDoZwN6Il5oUhsSsVEzwdxFmcR55LJi9AuK44pZ3q7AFhNMGrYXk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyKtVbe2x7AhJK73fpKWxOq+ZRktKGqAT0a90V5u+Y8kiOXgm6z
	rzGp1zlq/BJ9IwySk083xWZDvtglLH2y0wyE6zNJuDoNtKd7eanXGAOqoqwHrw==
X-Gm-Gg: ASbGncuuT7/SoN2ujTmbKtH3zsM7xvxXZ+Mra0odHc8MZeff8LeJEtZQL0AX4nSMyEL
	9t/TqSHqRLrraXCERqriTlLnn5DunKHUrmOVbzvUSZtTnuZ7MQY1lh4ssQDckx3oOwNkEVpksJh
	3aGTmp147ZIVnoL9kxTaualwXCEVHosjXb91JWTnN6pn4XpDwb2ch1lkxI80TIPBnebmR/tvOQr
	s2ek4KMoa1xsyQq8045tEVxp8lpxX+PsEe10CpBQvbpsf7K8DWBr+HT/tcY/PAuOf8cebKYRDVT
	YGtzgec/2EBuF/0WMGo5DVCs3phXk3D4rsGE5CFLrPEk9wXDnrz18dmIK27xCzPg9eFDTL7QceT
	nhLaKcI4MHfLfoMzfmK/dioJWeTAKTIXgu2d1
X-Google-Smtp-Source: AGHT+IHmFYuKedKUFop1hP073T1jhN2/bNx5hG7vDrgE3niVKR1nm/UmVDRL4R1kd1wcD8NPnAWtiw==
X-Received: by 2002:a05:600c:4ed1:b0:43c:fbe2:df3c with SMTP id 5b1f17b1804b1-43f3a9aa716mr9874145e9.26.1744359379241;
        Fri, 11 Apr 2025 01:16:19 -0700 (PDT)
Message-ID: <70599849-d010-48fe-922d-268e70cac410@suse.com>
Date: Fri, 11 Apr 2025 10:16:17 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/2] xen/rangeset: fix incorrect subtraction
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20250411075502.19926-1-roger.pau@citrix.com>
 <20250411075502.19926-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: <20250411075502.19926-2-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 11.04.2025 09:55, Roger Pau Monne wrote:
> Given the following rangset operation:
> 
> { [0, 1], [4, 5] } - { [3, 4] }
> 
> The current rangeset logic will output a rangeset:
> 
> { [0, 2], [5, 5] }
> 
> This is incorrect, and also has the undesirable property of being bogus in
> a way that the resulting rangeset is expanded.
> 
> Fix this by making sure the bounds are correctly checked before modifying
> the previous range.
> 
> Fixes: 484a058c4828 ('Add auto-destructing per-domain rangeset data structure...')
> 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 Apr 11 08:21:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 08:21:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.946853.1344609 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u39dS-00076D-B8; Fri, 11 Apr 2025 08:21:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 946853.1344609; Fri, 11 Apr 2025 08:21: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 1u39dS-000766-87; Fri, 11 Apr 2025 08:21:14 +0000
Received: by outflank-mailman (input) for mailman id 946853;
 Fri, 11 Apr 2025 08:21: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=kzGk=W5=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u39dQ-000760-WA
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 08:21:13 +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 ecb29828-16ad-11f0-9ffb-bf95429c2676;
 Fri, 11 Apr 2025 10:21:10 +0200 (CEST)
Received: by mail-wr1-x436.google.com with SMTP id
 ffacd0b85a97d-3914a5def6bso957126f8f.1
 for <xen-devel@lists.xenproject.org>; Fri, 11 Apr 2025 01:21:10 -0700 (PDT)
Received: from [10.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-39eaf43ccd8sm1297359f8f.72.2025.04.11.01.21.09
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 11 Apr 2025 01:21: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: ecb29828-16ad-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744359670; x=1744964470; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=HTa5Tz0DVW+yp3GjEe24whpKtlpabTknBPKg9yHpb00=;
        b=XqjWbZQzfx8z4kcUDW/v3g6Sn4M08uiB4LfNRW+PXo8IV1UJqRVOIoSQZY6Nlu8nti
         jzB3vrN2RQCz0XQQjd9qnnIeQmg3nMzTKupRgIEgiVhiBiaVJSLWj5KW6oEtc509uj1H
         7siLYhKfnRYJYv6nvRhH3nB+iYJPU81fHaSpRysUoo3P7GS71xBUDv1/x+cLwB8GjDpf
         Wz2bTDP7Cp84/G6mgCYOAwKbwhIEn95RMLAwq2whtAuEXoBxDeAPTLxTKPAyFWhgtgwC
         WS+8yIRNiOFxk7NQWqDTmp0etkap+3ihXJlGxo7wn59cmJEJx132N8XOVSDEGl21X7bn
         wazA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744359670; x=1744964470;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=HTa5Tz0DVW+yp3GjEe24whpKtlpabTknBPKg9yHpb00=;
        b=bgZiwAaX2ClEl7DbHGo5i1rhu1YAPb0BXDR25qQZ6c3UDedXXw/N25YA8zTvxY528V
         KahGK2woWhiWsoClk1C/1HzsH0uWwuusq9x6CH6os7F9wk5XxngYMjBRM+ylfZ4B+FIQ
         eaPdrlz1dMVlCLfMriktjeBOY/gkeU9Wg8pnsgplLvoA3lmKcs/e7NAK0fWjfj3PgMc8
         m1X58FhgmF1yOCpI3Tg7X6FCgEMInq7xeY+ZObi1zqCtvsYE/SSn5yUBTlwtK6wrFabh
         g32yuOUMZqQIf7+4zjK+aMdWx9n3JU5jMJSghGjLNFPQsqCYks2Ydxwd/+RhuJQZnV+y
         dUnw==
X-Forwarded-Encrypted: i=1; AJvYcCW8TzC28YgoRb9RxxxBf/tsAmhRs3tN2CJH9jfrtRSHplT+2k3gSFX6KD5/FG0260xVO+y3v8XFFFQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YybOpgFS4MnucYaKWayh2S4PBedZg5cCg3sYlW53LdSmEzWN55d
	uX7l2TMvekTrvBLmWFR8mEl7/FnyRGZTUax4gs1lmTxG36/viXpkYnqsHHTifqosYpUdSNtMZ70
	=
X-Gm-Gg: ASbGnctq4TDzGvRCAmQBVKSpz6HsS4dp3tFsEj/MPgibRykB4PaZLXOD8jLZaWWGf+v
	yWezJeiAAbHWMzR7emyNQ0gdF0Pqx0nYTjJQ2dL8Z3bZI59Yj2ywJO5ou5eHabEkXFhFBKLxLxP
	wAk+dnr9+KCP0PyikQxF3ba5iYW+R/gZVjZMib6Vwm4h55+F0rv0ZKGiV+i5muyw0ywFdhodTcY
	hxPPdwZ0vnsaO27BH/75Nq27h3lPhkVlLHbw8OjgeaJvzr3WP2lTBkhWrJPptCyPbf7RWlHPOyE
	OCdi7s/NAUEnQP88EJuz7vs/6BCurCg/nTlBLK6Xv79uKZPZfocoLCj8+MJy5rRsKypBO4xPgDv
	IttB4sWaDwCOWmSRMR/Wr7sgdC/rHHgMZpDCc
X-Google-Smtp-Source: AGHT+IHher3K5o/H6fs42KJ73smWN2DNBwkI4PqIaS+r5FlTzI9d4vPpKDOxhB4q6lBJiY8T5o/trA==
X-Received: by 2002:a05:6000:40d9:b0:391:3f4f:a169 with SMTP id ffacd0b85a97d-39ea5214ecdmr1342562f8f.32.1744359670114;
        Fri, 11 Apr 2025 01:21:10 -0700 (PDT)
Message-ID: <964624cb-2b21-4228-8774-2fd697ae13e6@suse.com>
Date: Fri, 11 Apr 2025 10:21:08 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] tootls/tests: introduce unit tests for rangesets
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>, xen-devel@lists.xenproject.org
References: <20250411075502.19926-1-roger.pau@citrix.com>
 <20250411075502.19926-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: <20250411075502.19926-3-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 11.04.2025 09:55, Roger Pau Monne wrote:
> Introduce some basic infrastructure for doing rangeset unit tests, and add
> a few tests that ensure correctness of rangeset subtraction.
> 
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>

It's okay as is, so:
Reviewed-by: Jan Beulich <jbeulich@suse.com>
Nevertheless a couple of remarks.

> --- /dev/null
> +++ b/tools/tests/rangeset/Makefile
> @@ -0,0 +1,45 @@
> +XEN_ROOT=$(CURDIR)/../../..
> +include $(XEN_ROOT)/tools/Rules.mk
> +
> +TARGET := test-rangeset
> +
> +.PHONY: all
> +all: $(TARGET)
> +
> +.PHONY: run
> +run: $(TARGET)
> +	./$<
> +
> +.PHONY: clean
> +clean:
> +	$(RM) -- *.o $(TARGET) $(DEPS_RM)
> +
> +.PHONY: distclean
> +distclean: clean
> +	$(RM) -- *~
> +
> +.PHONY: install
> +install: all
> +	$(INSTALL_DIR) $(DESTDIR)$(LIBEXEC_BIN)
> +	$(INSTALL_PROG) $(TARGET) $(DESTDIR)$(LIBEXEC_BIN)
> +
> +.PHONY: uninstall
> +uninstall:
> +	$(RM) -- $(addprefix $(DESTDIR)$(LIBEXEC_BIN)/,$(TARGET))
> +
> +list.h: $(XEN_ROOT)/xen/include/xen/list.h
> +rangeset.h: $(XEN_ROOT)/xen/include/xen/rangeset.h
> +list.h rangeset.h:
> +	sed -e '/#include/d' <$< >$@
> +
> +rangeset.c: $(XEN_ROOT)/xen/common/rangeset.c list.h rangeset.h
> +	# Remove includes and add the test harness header
> +	sed -e '/#include/d' -e '1s/^/#include "harness.h"/' <$< >$@
> +
> +CFLAGS  += -D__XEN_TOOLS__
> +CFLAGS  += $(APPEND_CFLAGS)
> +CFLAGS += $(CFLAGS_xeninclude)
> +LDFLAGS += $(APPEND_LDFLAGS)

The mix of padding ahead of the += is a little odd here.

> --- /dev/null
> +++ b/tools/tests/rangeset/harness.h
> @@ -0,0 +1,71 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +/*
> + * Unit tests for rangesets.
> + *
> + * Copyright (C) 2025 Cloud Software Group
> + */
> +
> +#ifndef _TEST_HARNESS_
> +#define _TEST_HARNESS_
> +
> +#include <assert.h>
> +#include <errno.h>
> +#include <stdbool.h>
> +#include <stddef.h>
> +#include <stdint.h>
> +#include <stdio.h>
> +#include <stdlib.h>
> +#include <string.h>
> +
> +#include <xen-tools/common-macros.h>
> +
> +#define smp_wmb()
> +#define __must_check __attribute__((__warn_unused_result__))
> +#define cf_check
> +
> +#define BUG_ON(x) assert(!(x))
> +#define ASSERT(x) assert(x)
> +
> +#include "list.h"
> +#include "rangeset.h"
> +
> +typedef bool rwlock_t;
> +typedef bool spinlock_t;

Are spinlocks really required for the rangeset code?

> --- /dev/null
> +++ b/tools/tests/rangeset/test-rangeset.c
> @@ -0,0 +1,228 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +/*
> + * Unit tests for rangesets.
> + *
> + * Copyright (C) 2025 Cloud Software Group
> + */
> +
> +#include "harness.h"
> +
> +struct range {
> +    unsigned long start, end;
> +};
> +
> +struct action {
> +    enum {
> +        ADD,
> +        REMOVE,
> +    } action;
> +    struct range r;
> +};
> +
> +#define DECLARE_ACTIONS(nr) static const struct action actions ## nr []
> +#define DECLARE_RESULTS(nr) static const struct range results ## nr []
> +
> +/*
> + * Subtract range with tail overlap on existing range:
> + *
> + * { 0, 1, 4, 5 } - { 3, 4 } = { 0, 1, 5, 5 }
> + */
> +DECLARE_ACTIONS(0) = {
> +    { ADD,    { 0, 1 } },
> +    { ADD,    { 4, 5 } },
> +    { REMOVE, { 3, 4 } },
> +};
> +DECLARE_RESULTS(0) = {
> +    { 0, 1 }, { 5, 5 },
> +};
> +
> +/*
> + * Subtract range with complete and tail overlap on existing ranges:
> + *
> + * { 0, 1, 4, 5, 7, 8 } - { 3, 4, 5, 6, 7 } = { 0, 1, 8 }
> + */
> +DECLARE_ACTIONS(1) = {
> +    { ADD,    { 0, 1 } },
> +    { ADD,    { 4, 5 } },
> +    { ADD,    { 7, 8 } },
> +    { REMOVE, { 3, 7 } },
> +};
> +DECLARE_RESULTS(1) = {
> +    { 0, 1 }, { 8, 8 },
> +};
> +
> +/*
> + * Subtract range with no overlap:
> + *
> + * { 0, 1, 4, 5 } - { 2, 3 } = { 0, 1, 4, 5 }
> + */
> +DECLARE_ACTIONS(2) = {
> +    { ADD,    { 0, 1 } },
> +    { ADD,    { 4, 5 } },
> +    { REMOVE, { 2, 3 } },
> +};
> +DECLARE_RESULTS(2) = {
> +    { 0, 1 }, { 4, 5 },
> +};
> +
> +/*
> + * Subtract range with partial overlap on two existing ranges:
> + *
> + * { 0, 1, 4, 5 } - { 1, 4 } = { 0, 5 }
> + */
> +DECLARE_ACTIONS(3) = {
> +    { ADD,    { 0, 1 } },
> +    { ADD,    { 4, 5 } },
> +    { REMOVE, { 1, 4 } },
> +};
> +DECLARE_RESULTS(3) = {
> +    { 0, 0 }, { 5, 5 },
> +};
> +
> +static const struct test {
> +    unsigned int nr_actions, nr_results;
> +    const struct action *actions;
> +    const struct range *result;
> +} tests[] = {
> +#define DECLARE_TEST(nr)                                \
> +    {                                                   \
> +        .actions = actions ## nr,                       \
> +        .nr_actions = ARRAY_SIZE(actions ## nr),        \
> +        .result  = results ## nr,                       \
> +        .nr_results = ARRAY_SIZE(results ## nr),        \
> +    }
> +
> +    DECLARE_TEST(0),
> +    DECLARE_TEST(1),
> +    DECLARE_TEST(2),
> +    DECLARE_TEST(3),
> +
> +#undef DECLARE_TEST
> +};
> +
> +static int print_range(unsigned long s, unsigned long e, void *data)
> +{
> +    printf("[%ld, %ld]\n", s, e);
> +
> +    return 0;
> +}
> +
> +static int count_ranges(unsigned long s, unsigned long e, void *data)
> +{
> +    unsigned int *nr = data;
> +
> +    ++*nr;
> +    return 0;
> +}
> +
> +const struct range *expected;

static?

Jan


From xen-devel-bounces@lists.xenproject.org Fri Apr 11 09:01:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 09:01:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.946868.1344619 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3AFk-0005Wf-5g; Fri, 11 Apr 2025 09:00:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 946868.1344619; Fri, 11 Apr 2025 09: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 1u3AFk-0005Vt-2K; Fri, 11 Apr 2025 09:00:48 +0000
Received: by outflank-mailman (input) for mailman id 946868;
 Fri, 11 Apr 2025 09:00: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=U3ez=W5=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u3AFi-0005UQ-Rr
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 09:00: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 730cd568-16b3-11f0-9ffb-bf95429c2676;
 Fri, 11 Apr 2025 11:00:43 +0200 (CEST)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-43d04dc73b7so18441045e9.3
 for <xen-devel@lists.xenproject.org>; Fri, 11 Apr 2025 02:00:43 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 ffacd0b85a97d-39eae964048sm1377675f8f.2.2025.04.11.02.00.42
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 11 Apr 2025 02:00:42 -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: 730cd568-16b3-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744362043; x=1744966843; 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=X/lc/sNSWnsgecAC+1446BWHagN77myPzjR6bOxLtHE=;
        b=blUdUIelRBTlCe1aKZ57zWxSv9FiBm6zUnMJkD3pqhW6ezfd9Ek71ieidayR5L5jsQ
         xZ6I4F+ONqhacSVyFN3LF78qh8kCKVcAMUkO/bvsfkHUFfIzuvU8ntiKym+oaP3A+GX2
         ttTgz2mLLRNT9fuKNe+SCbgDcA5tQSXiDiSW4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744362043; x=1744966843;
        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=X/lc/sNSWnsgecAC+1446BWHagN77myPzjR6bOxLtHE=;
        b=hwKJr2thsGp4EJ9jIfuG9JoiGMy6RiUCbnmGlY0+fWwYaxM/LuztDhaxtK1l1CWUl9
         OYYixv+NzLtilaEDF8Fi3zenyTTlxjdMf83M+1Ormeex+nKiszQVUH6PHkFf3EtquTvo
         sW+AX1ZAMDFf7pTEKUbq5WQQC0pr/URmN4uFWvJkIu+jQS9lLOFsoSQ5dXeXMINu1eSt
         Pr/Ko66P56pr1VQJRJNPDsdqSoMuLl9JXoROr7rFxQkGylag4zLUHBNCkQfricONOnac
         yhauueFnkFAsZ1S+ZYdLGzkMcDKXTHMcPaY9WMDR1NmdLorLGTUTUFYSwJ3tpXhP6tHC
         jM7g==
X-Forwarded-Encrypted: i=1; AJvYcCWczwPPxjXLVugS+5qHCDER5JUC8/LSxqv2YgI0Ah+FYhR5lTTHhqrKNgLjKEwFig8WkwpS1Lcizfs=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy0IzhbM64pFHk52xk2ysR+VvjYDkwT2YyqK6qBRQHLmjXVXvSG
	da2iTEKmxX9I4RzqYJRrrBmh/zPxH78lIH/ES1vD9Ymeii2DEBPpsYj36i+1gzY=
X-Gm-Gg: ASbGncsx73jLgRDtO4xNipdB6zi4ADNtGkRshuj7V3QDjoGFvVsxWVNxDT+EIJiUm6X
	l0rLnZgDzg5WpRHOFbKVTFrwTLRPHLmZXVvKgmJx5c6AuwRUYS4RqcF5la1tgE+dJOYEQr1Svph
	W0WIkgRgD3y1ukvnsZeCoiR+Pv8rm0Ybuw7rz8LNZUkBy8k4wCgM1SQ6mU/jcc7GfL96Va8zPwd
	JQ2cxBPAq/N3rws8E/ubbBoPxyD/g+nJMS0fxUK5ob8RaECjU1vlP0gcBbx1DPfyQkL0DBbhc2q
	WNbhEYnhFyVwkcBcQmvyGf/KW8oA9s94Fwu3P6rT0glXBQ==
X-Google-Smtp-Source: AGHT+IHBEjThBbjdMIZNKwrKuFYFb2iljmI0STguRpnrAHnFkQLZrJVytPww5yetPmjD6rxuju30qw==
X-Received: by 2002:a05:600c:1546:b0:43c:f597:d582 with SMTP id 5b1f17b1804b1-43f3a9336e6mr14913525e9.1.1744362042882;
        Fri, 11 Apr 2025 02:00:42 -0700 (PDT)
Date: Fri, 11 Apr 2025 11:00:41 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH 2/2] tootls/tests: introduce unit tests for rangesets
Message-ID: <Z_jaOf2oyo3X6Gk8@macbook.lan>
References: <20250411075502.19926-1-roger.pau@citrix.com>
 <20250411075502.19926-3-roger.pau@citrix.com>
 <964624cb-2b21-4228-8774-2fd697ae13e6@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <964624cb-2b21-4228-8774-2fd697ae13e6@suse.com>

On Fri, Apr 11, 2025 at 10:21:08AM +0200, Jan Beulich wrote:
> On 11.04.2025 09:55, Roger Pau Monne wrote:
> > --- /dev/null
> > +++ b/tools/tests/rangeset/harness.h
> > @@ -0,0 +1,71 @@
> > +/* SPDX-License-Identifier: GPL-2.0-only */
> > +/*
> > + * Unit tests for rangesets.
> > + *
> > + * Copyright (C) 2025 Cloud Software Group
> > + */
> > +
> > +#ifndef _TEST_HARNESS_
> > +#define _TEST_HARNESS_
> > +
> > +#include <assert.h>
> > +#include <errno.h>
> > +#include <stdbool.h>
> > +#include <stddef.h>
> > +#include <stdint.h>
> > +#include <stdio.h>
> > +#include <stdlib.h>
> > +#include <string.h>
> > +
> > +#include <xen-tools/common-macros.h>
> > +
> > +#define smp_wmb()
> > +#define __must_check __attribute__((__warn_unused_result__))
> > +#define cf_check
> > +
> > +#define BUG_ON(x) assert(!(x))
> > +#define ASSERT(x) assert(x)
> > +
> > +#include "list.h"
> > +#include "rangeset.h"
> > +
> > +typedef bool rwlock_t;
> > +typedef bool spinlock_t;
> 
> Are spinlocks really required for the rangeset code?

It's noted a bit below in this same file:

/* For rangeset_domain_{initialize,printk}() */

Otherwise rangeset.c won't build.

Will adjust the rest of your comments before commit, thanks!

Roger.


From xen-devel-bounces@lists.xenproject.org Fri Apr 11 09:06:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 09:06:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.946879.1344628 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3ALK-0008Qe-Od; Fri, 11 Apr 2025 09:06:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 946879.1344628; Fri, 11 Apr 2025 09:06: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 1u3ALK-0008QX-Lu; Fri, 11 Apr 2025 09:06:34 +0000
Received: by outflank-mailman (input) for mailman id 946879;
 Fri, 11 Apr 2025 09:06: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=Klsp=W5=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1u3ALJ-0008QR-7X
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 09:06:33 +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 41064aeb-16b4-11f0-9ead-5ba50f476ded;
 Fri, 11 Apr 2025 11:06:31 +0200 (CEST)
Received: from PH8PR12MB7326.namprd12.prod.outlook.com (2603:10b6:510:216::7)
 by PH7PR12MB6935.namprd12.prod.outlook.com (2603:10b6:510:1b9::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.34; Fri, 11 Apr
 2025 09:06:26 +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.8632.017; Fri, 11 Apr 2025
 09:06: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: 41064aeb-16b4-11f0-9ead-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=w5FkeuNtUN3K7gRnYawYDI/b1IKQDPhY2+v9J4thWXufJmq4FNjn3y8DiCOdFQw69danJwrKmmOU85m1YNKh+c3L/kF0tHYf96ylJNA+87kD4PSWQXU4o67FHCKE17GYcW3E6HcvlCmunwtEIEfH37S6CPfOejY4INyb0cu7C4gwBRKm30iIqbaKkT3hM0GBiiSEfUANx+HUofjKMXnWiWRY+Ah/9FJC8+xGYlKespU41lBCE48sEKrZjV44Hg+2Vs8RxT1WIUr8E0jZo5M5U3D5Xgxtx4jCnZ4lrX8xYSm+SfPy5fzcPjkbVzXt+L+KvPVQN+Va4Q0BpFxcTzneZw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=YfLQjhbuK5ApXC2Y7jnFbEdq599rmP4xYvSbXDdRYLw=;
 b=m5yfg5KyqaXC4ZWU01zVY+c6P3PFcXZucLbIq5/WmR+WCjeLB7u/zf0rjSnPJbQZ3f35Hs8M53VVvUPgiFxT7BrkFxZt2ELUgcgJal9gftjJHN1F/8p6X3iAUm711WAchSxKquyQxr0Bo3AVqUF+EnxGfrLWlpxOrLQ2YvFUrB7IDfDFgm1sSCnITw4hMSZzRi56XX/E6ZRQFMyDnhfQKfLs2RGc8ZiFkbzwIL9aPAAv7tJW/0IMP4x9OThMBZ3LbT6B3ivOQQYh12NsmolyTwYWoY1McfcKMUORx1v8WkEV3SeKedX80+ccI8WcKxrtKTwra633cyA/qvVh1KBjVw==
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=YfLQjhbuK5ApXC2Y7jnFbEdq599rmP4xYvSbXDdRYLw=;
 b=12L7ubnbYbXEUxqWkV3sOYxoz54wuH9/SlAbLdpj/N2MZ9xnaF9l7+jzZZFaAYPN6X02X2ayF5QGj7rUxbC24U3UhF9nzcVMi32MzNuhF3w6DchshMV/UKVMOi8Zvhb91Pr07bmOFBkOpvFNr+3nhPwR+wn84jl0Wl9vig/iniE=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <78020588-d948-47fe-9eb5-255ddf6ac73e@amd.com>
Date: Fri, 11 Apr 2025 10:06:21 +0100
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 2/3] xen/arm32: Create the same boot-time MPU regions
 as arm64
Content-Language: en-GB
To: "Orzel, Michal" <michal.orzel@amd.com>,
 Ayan Kumar Halder <ayan.kumar.halder@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>
References: <20250407184443.1790995-1-ayan.kumar.halder@amd.com>
 <20250407184443.1790995-3-ayan.kumar.halder@amd.com>
 <1a58517e-e882-4ca6-898a-923d8a8fa8cd@amd.com>
From: Ayan Kumar Halder <ayankuma@amd.com>
In-Reply-To: <1a58517e-e882-4ca6-898a-923d8a8fa8cd@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO4P265CA0282.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:37a::14) To PH8PR12MB7326.namprd12.prod.outlook.com
 (2603:10b6:510:216::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: PH8PR12MB7326:EE_|PH7PR12MB6935:EE_
X-MS-Office365-Filtering-Correlation-Id: 8aafbfbf-9eac-4e87-1e45-08dd78d8232d
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?TE9zU3ZxRWV2RnNnZ0NVaW5WUWFNOTJUcWxGQktVdStkd3dwcGVnd2g5c3ZF?=
 =?utf-8?B?UngzU2tYZ0RJZEhGVmw5MElkZEdMNnBEZURDM3VEWktYaTZwS0kyRS8rMkNm?=
 =?utf-8?B?UmYrZ083NVg0Z0FTb2Y0MStzM1MzVllXZzN2UWtPMXlDRkVwSjdTT0gyNk5P?=
 =?utf-8?B?UEVJTVh6a0pKb3AvaGFCSXB0TUo4cnVsYlhMWHEwWE9NODZLSGJld2N6djQw?=
 =?utf-8?B?WGtNSnNPeVBsOG84bjF5U3puSEVCNERrVlZRR1YxZ2hzNFljUlNVdmNlcDJr?=
 =?utf-8?B?bUJSM0JENk5nTHk0N2dqZHc0M01reGhjNzZ1T1cwcmtZaWNWb0FDS1hhZjlz?=
 =?utf-8?B?cVJHQnJSQ2pOU3M3UnZNeVlHVmM4MnllcUFmZU1JdEtwc3dPNXhaRmtONlMz?=
 =?utf-8?B?ZGJJdGpwNWJGbmNEbjc4dXM3RHBpNVF6clp6blJ1VUVLMlRoV0VxN2xLWFMz?=
 =?utf-8?B?QlF0ZllCZFFHVnI2OFB3UWdlWFB1c3JTYUF6ZGxhd0xFSUJKT2NEZ2ZITXZN?=
 =?utf-8?B?L3NLaWl5WWY2a1VNUnF5eDQ3Tzh1c3hLMjBzYUVVSjF1blZVNEJXMTgrZ0lp?=
 =?utf-8?B?M2RyYTBuWWZ1R2U0TEo5c1QyS3JtbWc3d0hlMjRFMWJlQTBLUFA5NFpuU3hN?=
 =?utf-8?B?SktpRTZmQUJmOTFBK0liMDh3TmxzNk93SlhaZTJsY2ttR1hBeW5QSkx6MStq?=
 =?utf-8?B?TnUvdnFLNks1ZkFNTnVlclNyWGRHUkFiazlwZ2YzUy9zN3cwOTd4bHUzbmEw?=
 =?utf-8?B?ckd6NmFIV2NoUFlFNHVOUEJ0TDdsUGhMc3NVNnFpeHZJclVlSWFFaE5oN29Q?=
 =?utf-8?B?TWpIdFVGblp6YksvQzV6MmpzdzlIdTZKYmR4T0UrQXNiSFdHc0h4NDZIUnBz?=
 =?utf-8?B?d0VneDVYWHlMRnAwZk1ZN25DTVhTMVJqaENaVUUzbENpSENEL1Rqekxtd1l5?=
 =?utf-8?B?TUpHTXhaNjBIVXJ0dmRPdDRlQTZuQVZ6R1pxMklEZC9KNXhCcUduSlJTRkFO?=
 =?utf-8?B?MXZrNHJpUncvMHpNc0F0M0VKdE5GNUNpRER2Z1FsRzhmaEJmcWZ4cmdSWHVa?=
 =?utf-8?B?Ni9CMkFXaVlwOENDdk9udHdFTm85TTlia3JtK3k0K0YzbG1ZZmNlZy9hV0dr?=
 =?utf-8?B?djd3NWY0Y2pMd0tHdi9yVndaempiQnpRZ0pENy9wdGpGL0NQWTJESlAvaDFo?=
 =?utf-8?B?YUUyRytQd2RZbENuTFVxczFJdlNaV0hNL0lxQWJlSmY0SzhRdnZPQ2ZnYlhR?=
 =?utf-8?B?aTNKcFpNRnFJck9tSTdyVXQ4SzRrYTNTaUY5SXJrOTdTVTNkYmxhcHA4bTRy?=
 =?utf-8?B?a0pZS1lISi9FdUQrK1REM1p2WGlwOUQybWVDUHBWMFUwbG5ENUZzTmNqTHd5?=
 =?utf-8?B?Qk55a1lNMFBLc0JEMlhTaTBpZ3pwWXF1Z2xiYzZHVjNyWmdrblBVZDhzTjI2?=
 =?utf-8?B?YXBYY3NMNCtOamUxeTFVYlFMcjIzM3BZcTlLV0NsWCtXRGQ2QWQ4cm1ORTBF?=
 =?utf-8?B?VURESTU5OVJyN0s0bC93d25mK1ZHSGQ4a2dZNGtSY2E5WGhGeEVySVAxWk5n?=
 =?utf-8?B?b2hGekwwT0pieDdxQS9FblFXY3Nhc2FnWGUwandlTWw2U21IZDU5UHcxZWI4?=
 =?utf-8?B?MTU4OGhnbW52ZUtlQ1JyUEJtSXJpMVdTOVVkaWFhME5vT3MxK2laOWRSOGJV?=
 =?utf-8?B?QkhwTDlvOWc3ZXI5N1hKazJiZEhzTHY5NFhzcWRERnJMUi80ZEpyZEw1elFW?=
 =?utf-8?B?ZTVVUXpqMW5JQitBbUZJNjhialgxUncxWHNSeE00eEZGa1BIdFlVSnhLZE81?=
 =?utf-8?B?NGhTQzZyc2FyeWFZK1NUQ21iZ2hyRlpBUmlVVzlSb0FheE4zcW5vZEM1aTRs?=
 =?utf-8?B?b2svdVA1U1NVSmc3YnFJTENRRlpJWEZuL2hQUXBNNDQvZHBpT21ndGNJNzZm?=
 =?utf-8?Q?p5KtENcPgIY=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)(366016)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?ekhuOSsrQUVpUWpQSnhuY3ZRSlZsQjBDNXZhNHZtelpzMVQxa1FQS3M0RUxM?=
 =?utf-8?B?ZllBcEcvL1Q5bW54WlZKV3cvT1ZwZmlTT0xQYkdYWnp1ZTc3VS9qR0dBMGpZ?=
 =?utf-8?B?VENhQVFIdnpOU1NjWThuL3FkekZVV2ZKR0Q1RjFYVzhNMmc0NzRIVVFlaStL?=
 =?utf-8?B?dGlCMktUVnV1TWEza0c2ZGNNRXpGQVhsNkhsNFFYdlRVeHBTb0szbmlEa3VN?=
 =?utf-8?B?MmZYMEtVZG5rTVpWQUhIbFhIWnBuSW9PWlJBRDBDdUd6QlA0YnFSY25YUFlr?=
 =?utf-8?B?STBSaE5rSTZ6dFV3T0ZXSzd1MXpGZURhdnJiNThwME55a3cxczJaZTZxTzVW?=
 =?utf-8?B?NUQ1V0hGamVXaTJ6eVAvYitIVzFVMmlCNEJyc1lSdFpQUW45YzNNZGZleUZN?=
 =?utf-8?B?TXlSMldWV2hLRkNEMVQ1NFZJUlZqR09Qd1RleC9uQVYwTEp3YnRkbmNRc2x0?=
 =?utf-8?B?RjFuMkVlV1krZnhxb3hjTmdmSTE1akNuL0t4KzFEQnFYUGNET1RsUy8rdDhK?=
 =?utf-8?B?cEhxWHArMGUyNnZZR2hpd2cyL282dzVRTlZhMVFVcm1ud2NXWDljS3M2Z2Mr?=
 =?utf-8?B?TGtuN0ZRTTc5VFl1c1JzUytKVEFnM2I4QXZGWVQ4S1ZYNFFGOERYZTBmTkJI?=
 =?utf-8?B?WjA5S0cvSEQ5S04zVDdyWnplamVpU0xTRDlNUlRKbjVxZDN3ckNTTlF6ek1r?=
 =?utf-8?B?c0t2dlk0aGlpY285amtQUkhmbzJxKzI2RTJpeDdwWkU4YjFKZUhMbGRHWGJS?=
 =?utf-8?B?WkRsRzRWVnFyaE8vd1VkejZ6YW82VE9WYjlIZ0doZVFYdDV5MldQdUYvbU0z?=
 =?utf-8?B?WFZNZTdiWEcvM1B3ZWNaV3BZT1dvOERXWXZ6anlIYytkWTk3UTdsWEl2OTV0?=
 =?utf-8?B?UU9pREZRRDBLYWI4M2l4NmhVcXg5Y3lqRjhOUkwyKzdQcW54cEhpcnFvdlhv?=
 =?utf-8?B?eFkvUWxIOEQ4b29BSDhsNjJwWnREeTFzQVVsTVFtdHhKYTJjZUZuSWg4K1dm?=
 =?utf-8?B?MGRoMitBbkd2a1JCV0pscFRrTE93djJjQWtQdStwelc2M3ZwNDhrNGNvK1Nm?=
 =?utf-8?B?YmJLb01WTGY1OURTTCtkL2J2VUhkU2FWMExPYUNpbDJ3M1c5a0wvUGtmajJD?=
 =?utf-8?B?blVrSm5oUHA3NVQ1TXY2L25vRUZLdFZWSGRMMnZNcXI3RnlUcG5xSkpQOGl0?=
 =?utf-8?B?WjdtdmJpU3BrU3pvTnZ1UDliOGhDN0pXaWhLOU8xR3JraW80S3grSjNkTVgv?=
 =?utf-8?B?ZkhGb1RISmloeTBVa0N6N3F6SlhkNkhvY0dBTEJ1YjA1NW5SQWVXSlNzZkQw?=
 =?utf-8?B?YzJlUHp0NU9FcnhFWXpuWGowRkdGbmRBVkdZa1dRQ1R3ZTdHOEVZeWt1QWJZ?=
 =?utf-8?B?dE9ZUXBZV09uZnVsS1ozc1hVNnVTTDN1d1RGQW45cVdxNE9FcWhpaWtWZWlE?=
 =?utf-8?B?OEk4ajFJa0pyK0VkOW5IeUtQMGJ2Y1p4dzVyTVhHZ01pWGFXbGFHMWt4Y3lJ?=
 =?utf-8?B?TGd1d1JNYWxoR1hNN1FBeURlV3pCd09qYkpHNUo0ZFJOMy95NS9DSFFnSEl4?=
 =?utf-8?B?ZG9NMlJXd2hEc2NzVnlSdG9SdDRYeFJGbnAzKzhjRnAzSWZjOTk0dU41K2pi?=
 =?utf-8?B?VEg5QUhHTjF0Tk9CQk16NllUSUx1NThzbkNOWEpXWEsyNkVOZUdMMUplNTJU?=
 =?utf-8?B?dFI2Q2JRd1ZOY25hM0JqZlB4b3dwcFZCTmxaMFZPeEJEVXN3bm1ucUdRdUFm?=
 =?utf-8?B?SVhibm9PWGhtZHNPRlBWaWlhV2FFRTBtWDBMdE1Mb0phR3pGVUk1cUxPK3RW?=
 =?utf-8?B?aGdTOG1uN1hrVGdBam1FOWZPSU9lT01ab3RXbEY4QS9TZWcvb1R3NEZyT3VP?=
 =?utf-8?B?ZU5tNHQvTFRCZFVRSjlQVkxUMzIyZDRaaStYemxXMndoZ2hOaCtSYXExVXhx?=
 =?utf-8?B?SFJZejZ2VzZqRWZVaVF4MDV5SytCSWRJdzY3c2JobFRhVVZzQ2t2bG1zQXpD?=
 =?utf-8?B?YXlZcXptekhMaVhhNnUxS0NRMi9ucGxBcmY0c1p6eFB5NGFtR0FDSlFYRXRO?=
 =?utf-8?B?Nk5WeTBQa0Zndk5KVDRNd1A4d0xsZS9oUklNSmwzK1NxM3ZrUlRGZWFZUmlB?=
 =?utf-8?Q?9a6RVSjrQPByFQCmV9BxLXD/I?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 8aafbfbf-9eac-4e87-1e45-08dd78d8232d
X-MS-Exchange-CrossTenant-AuthSource: PH8PR12MB7326.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Apr 2025 09:06:25.7395
 (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: PgHE6Cm7pEzZGtXtsIHkdJ4QBVdlxu3Hw8qL4tTJg/CW4kskqn9lvsfo0v5XD7vy3tSScYbOhk/NBWNnonCf1g==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB6935

Hi,

On 08/04/2025 10:13, Orzel, Michal wrote:
>
> On 07/04/2025 20:44, Ayan Kumar Halder wrote:
>> We have created the same boot-time MPU protection regions as Armv8-R AArch64.
>> Also, we have defined *_PRBAR macros for arm32. The only difference from
>> arm64 is that XN is 1-bit for arm32.
>> The macros have been defined in mpu/cpregs.h.
> NIT: Describe your changes in imperative mood
>
>> Also defined WRITE_SYSREG_ASM() to write to system registers in assembly.
>>
>> Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
>> ---
>> Changes from
>>
>> v1 -
>>
>> 1. enable_mpu() now sets HMAIR{0,1} registers. This is similar to what is
>> being done in enable_mmu(). All the mm related configurations happen in this
>> function.
>>
>> 2. Fixed some typos.
>>
>> v2 -
>> 1. Include the common prepare_xen_region.inc in head.S.
>>
>> 2. Define LOAD_SYSREG()/STORE_SYSREG() for arm32.
>>
>> v3 -
>> 1. Rename STORE_SYSREG() as WRITE_SYSREG_ASM()
>>
>> 2. enable_boot_cpu_mm() is defined in head.S
>>
>> v4 -
>> 1. *_PRBAR is moved to arm32/sysregs.h.
>>
>> 2. MPU specific CP15 system registers are defined in mpu/cpregs.h.
>>
>>   xen/arch/arm/arm32/Makefile              |   1 +
>>   xen/arch/arm/arm32/mpu/Makefile          |   1 +
>>   xen/arch/arm/arm32/mpu/head.S            | 101 +++++++++++++++++++++++
>>   xen/arch/arm/include/asm/arm32/sysregs.h |   7 ++
>>   xen/arch/arm/include/asm/cpregs.h        |   4 +
>>   xen/arch/arm/include/asm/mpu/cpregs.h    |  24 ++++++
>>   6 files changed, 138 insertions(+)
>>   create mode 100644 xen/arch/arm/arm32/mpu/Makefile
>>   create mode 100644 xen/arch/arm/arm32/mpu/head.S
>>   create mode 100644 xen/arch/arm/include/asm/mpu/cpregs.h
>>
>> diff --git a/xen/arch/arm/arm32/Makefile b/xen/arch/arm/arm32/Makefile
>> index 40a2b4803f..537969d753 100644
>> --- a/xen/arch/arm/arm32/Makefile
>> +++ b/xen/arch/arm/arm32/Makefile
>> @@ -1,5 +1,6 @@
>>   obj-y += lib/
>>   obj-$(CONFIG_MMU) += mmu/
>> +obj-$(CONFIG_MPU) += mpu/
>>   
>>   obj-$(CONFIG_EARLY_PRINTK) += debug.o
>>   obj-y += domctl.o
>> diff --git a/xen/arch/arm/arm32/mpu/Makefile b/xen/arch/arm/arm32/mpu/Makefile
>> new file mode 100644
>> index 0000000000..3340058c08
>> --- /dev/null
>> +++ b/xen/arch/arm/arm32/mpu/Makefile
>> @@ -0,0 +1 @@
>> +obj-y += head.o
>> diff --git a/xen/arch/arm/arm32/mpu/head.S b/xen/arch/arm/arm32/mpu/head.S
>> new file mode 100644
>> index 0000000000..84e9f1f8ec
>> --- /dev/null
>> +++ b/xen/arch/arm/arm32/mpu/head.S
>> @@ -0,0 +1,101 @@
>> +/* SPDX-License-Identifier: GPL-2.0-only */
>> +/*
>> + * Start-of-day code for an Armv8-R MPU system.
> That's exactly the same text as for Aarch64. At least write Armv8A-R-AArch32.
Ack
>
>> + */
>> +
>> +#include <asm/arm32/macros.h>
>> +#include <asm/mpu/common.inc>
>> +#include <asm/page.h>
>> +
>> +/*
>> + * Set up the memory attribute type tables and 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 AArch32 architecture is
>> + * IMPLEMENTATION DEFINED, we intend to turn off the Background region here.
>> + *
>> + * Clobbers r0 - r1
>> + */
>> +FUNC_LOCAL(enable_mpu)
>> +    /* Set up memory attribute type tables */
>> +    mov_w r0, MAIR0VAL
>> +    mov_w r1, MAIR1VAL
>> +    mcr   CP32(r0, HMAIR0)
>> +    mcr   CP32(r1, HMAIR1)
> Is there really a need to do these 2 writes one after another?
> Why can't we use only r0 and save one clobbered reg?
> mov_w r0, MAIR0VAL
> mcr   CP32(r0, HMAIR0)
> mov_w r0, MAIR1VAL
> mcr   CP32(r0, HMAIR1)
I just copied it as it is from head.S. :) I will change it in v6.
>
>> +
>> +    mrc   CP32(r0, HSCTLR)
>> +    bic   r0, r0, #SCTLR_ELx_BR       /* Disable Background region */
>> +    orr   r0, r0, #SCTLR_Axx_ELx_M    /* Enable MPU */
>> +    orr   r0, r0, #SCTLR_Axx_ELx_C    /* Enable D-cache */
>> +    mcr   CP32(r0, HSCTLR)
>> +    isb
>> +
>> +    ret
>> +END(enable_mpu)
>> +
>> +/*
>> + * Maps the various sections of Xen (described in xen.lds.S) as different MPU
>> + * regions.
>> + *
>> + * Clobbers r0 - r5
>> + *
>> + */
>> +FUNC(enable_boot_cpu_mm)
>> +    /* Get the number of regions specified in MPUIR_EL2 */
>> +    mrc   CP32(r5, MPUIR_EL2)
>> +    and   r5, r5, #NUM_MPU_REGIONS_MASK
>> +
>> +    /* x0: region sel */
>> +    mov   r0, #0
>> +    /* Xen text section. */
>> +    mov_w   r1, _stext
>> +    mov_w   r2, _etext
>> +    prepare_xen_region r0, r1, r2, r3, r4, r5, attr_prbar=REGION_TEXT_PRBAR
>> +
>> +    /* Xen read-only data section. */
>> +    mov_w   r1, _srodata
>> +    mov_w   r2, _erodata
>> +    prepare_xen_region r0, r1, r2, r3, r4, r5, attr_prbar=REGION_RO_PRBAR
>> +
>> +    /* Xen read-only after init and data section. (RW data) */
>> +    mov_w   r1, __ro_after_init_start
>> +    mov_w   r2, __init_begin
>> +    prepare_xen_region r0, r1, r2, r3, r4, r5
>> +
>> +    /* Xen code section. */
>> +    mov_w   r1, __init_begin
>> +    mov_w   r2, __init_data_begin
>> +    prepare_xen_region r0, r1, r2, r3, r4, r5, attr_prbar=REGION_TEXT_PRBAR
>> +
>> +    /* Xen data and BSS section. */
>> +    mov_w   r1, __init_data_begin
>> +    mov_w   r2, __bss_end
>> +    prepare_xen_region r0, r1, r2, r3, r4, r5
>> +
>> +#ifdef CONFIG_EARLY_PRINTK
>> +    /* Xen early UART section. */
>> +    mov_w   r1, CONFIG_EARLY_UART_BASE_ADDRESS
>> +    mov_w   r2, (CONFIG_EARLY_UART_BASE_ADDRESS + CONFIG_EARLY_UART_SIZE)
>> +    prepare_xen_region r0, r1, r2, r3, r4, r5, attr_prbar=REGION_DEVICE_PRBAR, attr_prlar=REGION_DEVICE_PRLAR
>> +#endif
>> +
>> +    b    enable_mpu
>> +END(enable_boot_cpu_mm)
>> +
>> +/*
>> + * We don't yet support secondary CPUs bring-up. Implement a dummy helper to
>> + * please the common code.
>> + */
>> +FUNC(enable_secondary_cpu_mm)
>> +    PRINT("- SMP not enabled yet -\r\n")
>> +1:  wfe
>> +    b 1b
>> +END(enable_secondary_cpu_mm)
>> +
>> +/*
>> + * Local variables:
>> + * mode: ASM
>> + * indent-tabs-mode: nil
>> + * End:
>> + */
>> diff --git a/xen/arch/arm/include/asm/arm32/sysregs.h b/xen/arch/arm/include/asm/arm32/sysregs.h
>> index 22871999af..a90d1610a1 100644
>> --- a/xen/arch/arm/include/asm/arm32/sysregs.h
>> +++ b/xen/arch/arm/include/asm/arm32/sysregs.h
>> @@ -20,6 +20,13 @@
>>    * uses r0 as a placeholder register. */
>>   #define CMD_CP32(name...)      "mcr " __stringify(CP32(r0, name)) ";"
>>   
>> +#define REGION_TEXT_PRBAR       0x18    /* SH=11 AP=10 XN=0 */
>> +#define REGION_RO_PRBAR         0x1D    /* SH=11 AP=10 XN=1 */
>> +#define REGION_DATA_PRBAR       0x19    /* SH=11 AP=00 XN=1 */
>> +#define REGION_DEVICE_PRBAR     0x11    /* SH=10 AP=00 XN=1 */
>> +
>> +#define WRITE_SYSREG_ASM(v, name) mcr CP32(v, name)
> Same comment as for previous patch.
Ack.
>
>> +
>>   #ifndef __ASSEMBLY__
>>   
>>   /* C wrappers */
>> diff --git a/xen/arch/arm/include/asm/cpregs.h b/xen/arch/arm/include/asm/cpregs.h
>> index aec9e8f329..6019a2cbdd 100644
>> --- a/xen/arch/arm/include/asm/cpregs.h
>> +++ b/xen/arch/arm/include/asm/cpregs.h
>> @@ -1,6 +1,10 @@
>>   #ifndef __ASM_ARM_CPREGS_H
>>   #define __ASM_ARM_CPREGS_H
>>   
>> +#ifdef CONFIG_MPU
> NIT: Do we really need to protect this include? I thought we do the ifdefery if
> we need to include either mmu or mpu. Here we don't have a choice and afaict
> there's nothing problematic in mpu/cpregs.h
Ack.
>
>> +#include <asm/mpu/cpregs.h>
>> +#endif
>> +
>>   /*
>>    * AArch32 Co-processor registers.
>>    *
>> diff --git a/xen/arch/arm/include/asm/mpu/cpregs.h b/xen/arch/arm/include/asm/mpu/cpregs.h
>> new file mode 100644
>> index 0000000000..6b20c7ceae
>> --- /dev/null
>> +++ b/xen/arch/arm/include/asm/mpu/cpregs.h
>> @@ -0,0 +1,24 @@
>> +/* SPDX-License-Identifier: GPL-2.0-only */
>> +
>> +#ifndef __ASM_ARM_MPU_CPREGS_H
>> +#define __ASM_ARM_MPU_CPREGS_H
>> +
>> +/* CP15 CR0: MPU Type Register */
>> +#define HMPUIR          p15,4,c0,c0,4
>> +
>> +/* CP15 CR6: MPU Protection Region Base/Limit/Select Address Register */
>> +#define HPRSELR         p15,4,c6,c2,1
>> +#define PRBAR_EL2       p15,4,c6,c3,0
>> +#define PRLAR_EL2       p15,4,c6,c8,1
>> +
>> +#define MPUIR_EL2       HMPUIR
>> +#define PRSELR_EL2      HPRSELR
> AFAIK, these macros are there to use AArch64 sysreg names in common code when
> compiling Arm32. This would mean they should be protected with #ifdef CONFIG_ARM_32.

In the case of Arm64, the MPU system registers are defined by the 
compiler. So, these definitions are overridden.

I will enclose this within CONFIG_ARM_32 for better readability.

@Luca - I will keep your R-b unless you object. The changes are mostly 
style related. :)

- Ayan

>
> ~Michal
>


From xen-devel-bounces@lists.xenproject.org Fri Apr 11 09:27:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 09:27:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.946909.1344638 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3AfL-0007Ee-Fr; Fri, 11 Apr 2025 09:27:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 946909.1344638; Fri, 11 Apr 2025 09:27: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 1u3AfL-0007EX-DO; Fri, 11 Apr 2025 09:27:15 +0000
Received: by outflank-mailman (input) for mailman id 946909;
 Fri, 11 Apr 2025 09:27: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=CBji=W5=kernel.org=mingo@srs-se1.protection.inumbo.net>)
 id 1u3AfK-0007ER-Ry
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 09:27:14 +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 263ea4fb-16b7-11f0-9ead-5ba50f476ded;
 Fri, 11 Apr 2025 11:27:13 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 731395C6709;
 Fri, 11 Apr 2025 09:24:54 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6769EC4CEE2;
 Fri, 11 Apr 2025 09:27: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: 263ea4fb-16b7-11f0-9ead-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1744363631;
	bh=wlS7DhN8y20vqXzQwNKbHgzXCRcEYtr0nbb6yGv9GHo=;
	h=Date:From:To:Cc:Subject:References:In-Reply-To:From;
	b=UgrgmilFZ0kvC1CHpR++RB+QquxA4fnfn1/IAgk6OvywpTWhNHi7HpJZohxvmUT8u
	 C0oC+pqEz5aR3HPSZlu8JSH1KtNL5uwZHzVB/SKM8M69LXBPn+B54ySqXALWGqDElO
	 v1XWRUqmp1+5Nm5OwEajeiVhVtZ4iR1roK6UU8ZPzeAQEzgUWX6kuxm4fVoS3JmlA7
	 exmpFUCrm8aTO0v4o9mMLquv5UEkjnPrxb+ny+Jul5UFbuuZ4bmHXcg/G/Yf8F0qle
	 o0fxRZh9RYD8eOye9IK9CeiAdHFQnM5Sr6gABJ8OgK7XyEmInBJFc8p6nnhvs46vjQ
	 PT0uP2zPdIa+g==
Date: Fri, 11 Apr 2025 11:27:06 +0200
From: Ingo Molnar <mingo@kernel.org>
To: Juergen Gross <jgross@suse.com>
Cc: Jason Andryuk <jason.andryuk@amd.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>, "Xin Li (Intel)" <xin@zytor.com>,
	xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] x86/xen: Fix __xen_hypercall_setfunc
Message-ID: <Z_jgauFyTTKgVnJy@gmail.com>
References: <20250410193106.16353-1-jason.andryuk@amd.com>
 <3c3115a6-f516-4f5f-8998-dafc343c829e@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <3c3115a6-f516-4f5f-8998-dafc343c829e@suse.com>


* Juergen Gross <jgross@suse.com> wrote:

> On 10.04.25 21:31, Jason Andryuk wrote:
> > Hypercall detection is failing with xen_hypercall_intel() chosen even on
> > an AMD processor.  Looking at the disassembly, the call to
> > xen_get_vendor() was removed.
> > 
> > The check for boot_cpu_has(X86_FEATURE_CPUID) was used as a proxy for
> > the x86_vendor having been set.  When
> > CONFIG_X86_REQUIRED_FEATURE_CPUID=y (the default value), DCE eliminates
> > the call to xen_get_vendor().  An uninitialized value 0 means
> > X86_VENDOR_INTEL, so the Intel function is always returned.
> > 
> > Remove the if and always call xen_get_vendor() to avoid this issue.
> > 
> > Fixes: 3d37d9396eb3 ("x86/cpufeatures: Add {REQUIRED,DISABLED} feature configs")
> > Suggested-by: Juergen Gross <jgross@suse.com>
> > Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
> 
> Reviewed-by: Juergen Gross <jgross@suse.com>

Wanna merge this via the Xen tree, or should it go to x86/urgent?

The bug was *caused* by the x86 tree so we'd be glad to merge,
but your call.

If you'll merge it:

  Acked-by: Ingo Molnar <mingo@kernel.org>

Thanks,

	Ingo




From xen-devel-bounces@lists.xenproject.org Fri Apr 11 09:29:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 09:29:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.946922.1344648 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3Ahr-0007nV-SR; Fri, 11 Apr 2025 09:29:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 946922.1344648; Fri, 11 Apr 2025 09: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 1u3Ahr-0007nO-Pi; Fri, 11 Apr 2025 09:29:51 +0000
Received: by outflank-mailman (input) for mailman id 946922;
 Fri, 11 Apr 2025 09: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=zPYt=W5=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1u3Ahq-0007nI-Ro
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 09:29: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 83d01bb8-16b7-11f0-9ead-5ba50f476ded;
 Fri, 11 Apr 2025 11:29:49 +0200 (CEST)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-43cfdc2c8c9so9465765e9.2
 for <xen-devel@lists.xenproject.org>; Fri, 11 Apr 2025 02:29:49 -0700 (PDT)
Received: from ?IPV6:2003:e5:873d:1a00:8e99:ce06:aa4a:2e7b?
 (p200300e5873d1a008e99ce06aa4a2e7b.dip0.t-ipconnect.de.
 [2003:e5:873d:1a00:8e99:ce06:aa4a:2e7b])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43f2066d109sm82132595e9.20.2025.04.11.02.29.48
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 11 Apr 2025 02:29: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: 83d01bb8-16b7-11f0-9ead-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744363789; x=1744968589; 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=xw7y2ZbJNMHY4Qaqdel+SPmJophdt1UZc+CLz7qArRw=;
        b=Epm5ai+1gAQEZ2psKBUnlkcX1ocPA9ZbxVCxmVjMJJ5xbaH9FB/PCJUV9C4IPB8DIE
         FNSRKGIRr0RAFPVX+7G4JoSk8x4A0WXQQXcbEJfCh8QeiQew/5fjweDynPvGpX+Kda63
         xDBE+i4BUEWBs86pYVATN85AlSXt1/dM3Oz+cMZFws79YlooBOyOKFymYlRMqnXc7H+B
         u7VLhm/RudGkL0G+g5itAPZ0I5zAi6KOuVZbG9eN4h6M+1ynkSXEY1qzmN3HK9s2/ZpM
         H9eonQ1S3kI+dPBo/nj1MkG/oxqb1WTG4mKs3eQgikwCZ6NS2cHaSrjHAPRECABH7rPL
         Pp6A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744363789; x=1744968589;
        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=xw7y2ZbJNMHY4Qaqdel+SPmJophdt1UZc+CLz7qArRw=;
        b=PU7Hyt7KShnlT4rlffKC9ZPcWJTtpf9kwzxHpaH+mMyNR9HkrQjlJrd0hy6ym1MARk
         7+Mwv/GKwhIJ9sBtuUUpisIIuBLqBCtMrUin5o0Q+QEnL2ZWlCp91VEEVui501TZwcb4
         5ULEU4h0R5q1deD0nm1MDjfuSQ3XJnf9fMU4qv21EFAlOXR5qrCtsIO0MlAJRvoAVg6O
         VS70Vmd8uSS4TOE2GtIg1MK3WBsniK2RouSPLbXDOIoWcz2KGeJPlNLQ5OXfS/6AT3yV
         8L1cGs04e7wmRCNTDAOmDy0Fj8OxoSGpp/AaA6DRTMT7i9OnBY2x04saqxcZciLf9xHd
         r35g==
X-Forwarded-Encrypted: i=1; AJvYcCUZYSx+iXfaLcUCkosAPr7QVc2oNHDP0D1TB25V7bsqkXboZvq2v427nDKW853Ml7nndvppJ6B/QL0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YymqtJKZ90YVTiC5LlfwJ9DYGNzmkIyF0vpRSmc8toxFULRhBFw
	5LKEBxDiLfSeffb/ClJ7FCKqmzIbm95NbxMLBCvhdbybjc1DB3wvFe5m96XhfyE=
X-Gm-Gg: ASbGnct2HUlR81XYBOTR21Npo03zlGLWquDloxco0G3SvjnmlUtudPxwQTVQdgtt6R9
	/FAmTzvTP5Q2jaxOF1zBiLzhzEO4Udv8GIs+iIufZ2Ejo6WCeWH9r35BrtS7hYqNDjVwgf0xwNW
	RS1EZhGqJ9sAtXt3vOKqch6bzPiNsl/ZrM2lEQdTEgkrlOdK3gZogfTq3EYknCeXzOgcD1QL/kr
	q5lLm02LAk5RBxNiT4VNDFjA/uHEovztyZIGGg81OWgJyYWNmxrEjnWDCp2G8/nmXA2/Ws/JF/W
	Uu54R0WcX8u7U6qAU+M8W+VcIuG6vntMnDL1Rvsh9zwio95L+UMw28aIUTQ1X31tXXXl1tMzYR9
	EIZhfVM55ypjYZWFOn7KTWaNAz9F1pXYBX9NbhZ1gEZYtZutwD0VgcnWu65R/nBivoA==
X-Google-Smtp-Source: AGHT+IElufFrnnzqSB0PtxMAgswouCla1lM+q/8FV/fkCvJ6aJx7inwZZ0+DnezGFrDyr6qU8qxPAg==
X-Received: by 2002:a05:600c:34ca:b0:43c:f5e4:895e with SMTP id 5b1f17b1804b1-43f3a928afamr15119175e9.1.1744363788950;
        Fri, 11 Apr 2025 02:29:48 -0700 (PDT)
Message-ID: <ff39455a-7fa8-48c1-ba43-33ea4992f6e1@suse.com>
Date: Fri, 11 Apr 2025 11:29:47 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/xen: Fix __xen_hypercall_setfunc
To: Ingo Molnar <mingo@kernel.org>
Cc: Jason Andryuk <jason.andryuk@amd.com>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>,
 "Xin Li (Intel)" <xin@zytor.com>, xen-devel@lists.xenproject.org,
 linux-kernel@vger.kernel.org
References: <20250410193106.16353-1-jason.andryuk@amd.com>
 <3c3115a6-f516-4f5f-8998-dafc343c829e@suse.com> <Z_jgauFyTTKgVnJy@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: <Z_jgauFyTTKgVnJy@gmail.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------RHBV3EgP100oFynY0u0d2TlZ"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------RHBV3EgP100oFynY0u0d2TlZ
Content-Type: multipart/mixed; boundary="------------b0qcQdaqeWFQOGn2gv9udLxI";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Ingo Molnar <mingo@kernel.org>
Cc: Jason Andryuk <jason.andryuk@amd.com>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>,
 "Xin Li (Intel)" <xin@zytor.com>, xen-devel@lists.xenproject.org,
 linux-kernel@vger.kernel.org
Message-ID: <ff39455a-7fa8-48c1-ba43-33ea4992f6e1@suse.com>
Subject: Re: [PATCH] x86/xen: Fix __xen_hypercall_setfunc
References: <20250410193106.16353-1-jason.andryuk@amd.com>
 <3c3115a6-f516-4f5f-8998-dafc343c829e@suse.com> <Z_jgauFyTTKgVnJy@gmail.com>
In-Reply-To: <Z_jgauFyTTKgVnJy@gmail.com>

--------------b0qcQdaqeWFQOGn2gv9udLxI
Content-Type: multipart/mixed; boundary="------------7ExAisI929g7VtcYG7RiCDfH"

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

T24gMTEuMDQuMjUgMTE6MjcsIEluZ28gTW9sbmFyIHdyb3RlOg0KPiANCj4gKiBKdWVyZ2Vu
IEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+IHdyb3RlOg0KPiANCj4+IE9uIDEwLjA0LjI1IDIx
OjMxLCBKYXNvbiBBbmRyeXVrIHdyb3RlOg0KPj4+IEh5cGVyY2FsbCBkZXRlY3Rpb24gaXMg
ZmFpbGluZyB3aXRoIHhlbl9oeXBlcmNhbGxfaW50ZWwoKSBjaG9zZW4gZXZlbiBvbg0KPj4+
IGFuIEFNRCBwcm9jZXNzb3IuICBMb29raW5nIGF0IHRoZSBkaXNhc3NlbWJseSwgdGhlIGNh
bGwgdG8NCj4+PiB4ZW5fZ2V0X3ZlbmRvcigpIHdhcyByZW1vdmVkLg0KPj4+DQo+Pj4gVGhl
IGNoZWNrIGZvciBib290X2NwdV9oYXMoWDg2X0ZFQVRVUkVfQ1BVSUQpIHdhcyB1c2VkIGFz
IGEgcHJveHkgZm9yDQo+Pj4gdGhlIHg4Nl92ZW5kb3IgaGF2aW5nIGJlZW4gc2V0LiAgV2hl
bg0KPj4+IENPTkZJR19YODZfUkVRVUlSRURfRkVBVFVSRV9DUFVJRD15ICh0aGUgZGVmYXVs
dCB2YWx1ZSksIERDRSBlbGltaW5hdGVzDQo+Pj4gdGhlIGNhbGwgdG8geGVuX2dldF92ZW5k
b3IoKS4gIEFuIHVuaW5pdGlhbGl6ZWQgdmFsdWUgMCBtZWFucw0KPj4+IFg4Nl9WRU5ET1Jf
SU5URUwsIHNvIHRoZSBJbnRlbCBmdW5jdGlvbiBpcyBhbHdheXMgcmV0dXJuZWQuDQo+Pj4N
Cj4+PiBSZW1vdmUgdGhlIGlmIGFuZCBhbHdheXMgY2FsbCB4ZW5fZ2V0X3ZlbmRvcigpIHRv
IGF2b2lkIHRoaXMgaXNzdWUuDQo+Pj4NCj4+PiBGaXhlczogM2QzN2Q5Mzk2ZWIzICgieDg2
L2NwdWZlYXR1cmVzOiBBZGQge1JFUVVJUkVELERJU0FCTEVEfSBmZWF0dXJlIGNvbmZpZ3Mi
KQ0KPj4+IFN1Z2dlc3RlZC1ieTogSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuY29tPg0K
Pj4+IFNpZ25lZC1vZmYtYnk6IEphc29uIEFuZHJ5dWsgPGphc29uLmFuZHJ5dWtAYW1kLmNv
bT4NCj4+DQo+PiBSZXZpZXdlZC1ieTogSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuY29t
Pg0KPiANCj4gV2FubmEgbWVyZ2UgdGhpcyB2aWEgdGhlIFhlbiB0cmVlLCBvciBzaG91bGQg
aXQgZ28gdG8geDg2L3VyZ2VudD8NCj4gDQo+IFRoZSBidWcgd2FzICpjYXVzZWQqIGJ5IHRo
ZSB4ODYgdHJlZSBzbyB3ZSdkIGJlIGdsYWQgdG8gbWVyZ2UsDQo+IGJ1dCB5b3VyIGNhbGwu
DQoNCng4Ni91cmdlbnQgaXMgZmluZSBmb3IgbWUuDQoNCg0KSnVlcmdlbg0K
--------------7ExAisI929g7VtcYG7RiCDfH
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-----

--------------7ExAisI929g7VtcYG7RiCDfH--

--------------b0qcQdaqeWFQOGn2gv9udLxI--

--------------RHBV3EgP100oFynY0u0d2TlZ
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/Ey8FAmf44QsFAwAAAAAACgkQsN6d1ii/Ey/i
OwgAhvq9IJ6hGqT22xNA4UxEtOWR/s8phFv6811pajj6SZo7vNwNlhQoI/Yv+/VXL+8GuKUZzYSC
1nrM1mI/xuogOp7VGce6SvL6i9lkDfBjSrgqwj7Awq9VJenyKm1J0vA9Sk+qSrILD4flAc8ftOj4
iyrHGtxfOeD3ArjWW0BtC7ws1EKB8TBiE687d5l18/7pnlPZpjvBSZ8Y0zdi266ofhQGo54Bndm9
DtecTrXsfpbEBBtJIAv4oZetvoNEh4KrlYb0dOBXtwcPPa9gxkq/gx4uyBcXlDgsEqkPIwvK4RdW
6zeKIisw9fA3EItfpjMRX5pCnhOgh5hpbW+EeffqSQ==
=bZay
-----END PGP SIGNATURE-----

--------------RHBV3EgP100oFynY0u0d2TlZ--


From xen-devel-bounces@lists.xenproject.org Fri Apr 11 09:44:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 09:44:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.946936.1344659 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3Avs-0006WA-WD; Fri, 11 Apr 2025 09:44:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 946936.1344659; Fri, 11 Apr 2025 09:44: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 1u3Avs-0006W3-Sf; Fri, 11 Apr 2025 09:44:20 +0000
Received: by outflank-mailman (input) for mailman id 946936;
 Fri, 11 Apr 2025 09:44: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=CBji=W5=kernel.org=mingo@srs-se1.protection.inumbo.net>)
 id 1u3Avr-0006Vx-Mg
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 09:44:19 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org
 [2600:3c0a:e001:78e:0:1991:8:25])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8741e79d-16b9-11f0-9ffb-bf95429c2676;
 Fri, 11 Apr 2025 11:44:15 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 475FF49C50;
 Fri, 11 Apr 2025 09:44:12 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 48808C4CEE2;
 Fri, 11 Apr 2025 09:44: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: 8741e79d-16b9-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1744364653;
	bh=cQlJQWMR1vpM4VqDeSr2vhN4E6SlND+oqKZ9malEpBo=;
	h=Date:From:To:Cc:Subject:References:In-Reply-To:From;
	b=vGgINeP/Iroy+Euc1kql8/6jR3BdcNgJ1T5VquxKF918ZjjBEw0Im09GA2r6OkzAM
	 NkHvG0FrMFcrHIS3+ImuLCigg7VkY6V1E0N8PVvk4iJin55XreYuwnh2QdrePL/v3P
	 Q8VMP9K+bPV7dWE6isttzEUR1gxmDYJqiPpsnvykf4mv0MtrKg2EB5Z4pugaJGYkaC
	 kHHfU2qEzwMBRqS+4HQtc9xxXqGs1ZnHUrbuUjIDnlvJF+D/CbU0vQa3iAW7QjgI+A
	 hpBKUKpFeXYM99vtcrVanAlI6D+bXl5D/7j1JwaeMVrI/IOh/9SaPly7pXe3iSJfKH
	 QbVsY+mUrQUhA==
Date: Fri, 11 Apr 2025 11:44:07 +0200
From: Ingo Molnar <mingo@kernel.org>
To: =?iso-8859-1?Q?J=FCrgen_Gro=DF?= <jgross@suse.com>
Cc: Jason Andryuk <jason.andryuk@amd.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>, "Xin Li (Intel)" <xin@zytor.com>,
	xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] x86/xen: Fix __xen_hypercall_setfunc
Message-ID: <Z_jkZw58Ew5Iwj5K@gmail.com>
References: <20250410193106.16353-1-jason.andryuk@amd.com>
 <3c3115a6-f516-4f5f-8998-dafc343c829e@suse.com>
 <Z_jgauFyTTKgVnJy@gmail.com>
 <ff39455a-7fa8-48c1-ba43-33ea4992f6e1@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <ff39455a-7fa8-48c1-ba43-33ea4992f6e1@suse.com>


* Jrgen Gro <jgross@suse.com> wrote:

> On 11.04.25 11:27, Ingo Molnar wrote:
> > 
> > * Juergen Gross <jgross@suse.com> wrote:
> > 
> > > On 10.04.25 21:31, Jason Andryuk wrote:
> > > > Hypercall detection is failing with xen_hypercall_intel() chosen even on
> > > > an AMD processor.  Looking at the disassembly, the call to
> > > > xen_get_vendor() was removed.
> > > > 
> > > > The check for boot_cpu_has(X86_FEATURE_CPUID) was used as a proxy for
> > > > the x86_vendor having been set.  When
> > > > CONFIG_X86_REQUIRED_FEATURE_CPUID=y (the default value), DCE eliminates
> > > > the call to xen_get_vendor().  An uninitialized value 0 means
> > > > X86_VENDOR_INTEL, so the Intel function is always returned.
> > > > 
> > > > Remove the if and always call xen_get_vendor() to avoid this issue.
> > > > 
> > > > Fixes: 3d37d9396eb3 ("x86/cpufeatures: Add {REQUIRED,DISABLED} feature configs")
> > > > Suggested-by: Juergen Gross <jgross@suse.com>
> > > > Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
> > > 
> > > Reviewed-by: Juergen Gross <jgross@suse.com>
> > 
> > Wanna merge this via the Xen tree, or should it go to x86/urgent?
> > 
> > The bug was *caused* by the x86 tree so we'd be glad to merge,
> > but your call.
> 
> x86/urgent is fine for me.

Applied, thanks!

	Ingo






From xen-devel-bounces@lists.xenproject.org Fri Apr 11 09:45:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 09:45:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.946946.1344669 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3Awt-00072S-8Z; Fri, 11 Apr 2025 09:45:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 946946.1344669; Fri, 11 Apr 2025 09: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 1u3Awt-00072L-5L; Fri, 11 Apr 2025 09:45:23 +0000
Received: by outflank-mailman (input) for mailman id 946946;
 Fri, 11 Apr 2025 09: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=cS7z=W5=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u3Aws-00072B-9f
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 09:45:22 +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 ae716b21-16b9-11f0-9ffb-bf95429c2676;
 Fri, 11 Apr 2025 11:45:20 +0200 (CEST)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-39727fe912cso812055f8f.3
 for <xen-devel@lists.xenproject.org>; Fri, 11 Apr 2025 02:45:20 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39eae96c661sm1475904f8f.29.2025.04.11.02.45.19
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 11 Apr 2025 02:45: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: ae716b21-16b9-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744364720; x=1744969520; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=mKecQun321AZ7oeyF7BQqpB66S55cbVec74U3ZW3G3Y=;
        b=kLjbhLlSnXaKRyP3yOScALEKctbRQuE3E6uuQfknlReZHmcavKruWu3oFgdEvUva4E
         OKplJrGUtzss//8LXepkdb3mukrjqKWH48qhxIiNAkQN5GFa2cgOoMWDgRYgXzjPpWwI
         reWiIGV50yGAsYavepknNgN+YDqtjl/OkEoGs=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744364720; x=1744969520;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=mKecQun321AZ7oeyF7BQqpB66S55cbVec74U3ZW3G3Y=;
        b=oAtmJJaO7GvuCQUBZHPI0y5Skbbbhvw/gB8IHuOYAMvolY/pgzuS3FEKg9sJwq0vOb
         NsRspy/VKwUnaWqZBxvBiO+RsQGe6Y77t7CtGP/lihTLbuZ3HzYm7IzRnWVgqPNLAtQW
         R7E9+NPg98Db7omIxI8DZ9VgwlPXGq24XGUJXZXV0qz6GT6YyYCNpAj7x8FP9246JLh9
         oKI9SkVaTcgWVTq2fAW4Y8ttMdBwl+1lUqonNyHr0tjb0nKfkyS8IfmH2ktGI0jOutCb
         44/FjZjrf3Fm5alJtdZAUQ/e7EMIJ3tqCh0PFaGFSF/uMyIEdyacPk5keRVD4LDHRznG
         8dEg==
X-Gm-Message-State: AOJu0YxtpoZecObeEpgylal72HyioKmWpnQSI7/Q/Jj06cG9ANRU1Nde
	1+gYV+ULlMUn8c4SPG8RehJaphJpC5lP1WXzNsMLUPzV6Gjsj8rflSQHngRznp4=
X-Gm-Gg: ASbGncvM5dZtCQ8PZHQ7w4mMzzTb4WrZAA+tBh/tKts0LdMc6QmGcM6BmLaV/22XPN+
	RHkTQ2S/WjHYqyHB0gu3zHe2RgMXyJXlrd90OtzVBlhBkU5uH/sy3nLIQ2htvANtRFaGD3FP4/J
	kk4vPc4bngiPzJLcJ3BcDi0Xn4tvBKJ5NfSdtt5RIq4afPMldP5M8NQzirM0bEgxDfNH//LIwys
	Xtb30fPiWxO9ZV4ZjawjaO2m0VlcXmv4thNwytoyB9puSTOxxx1HUpF6wPFhOLQn2EsFWKylqNl
	SplJH8vqDXst535rXmS6vpGgUerl019dtjD3FDND0NyTru8K0WYyoM/GJqvvBXRUsIUDe8Sw+eK
	dtyUPrw==
X-Google-Smtp-Source: AGHT+IER6Gy8/Y9RMtPcI/ypkMCUojIoBQlubediLHUDTlf8rB/mCFuaOy4oBGOwRQzCWqew+OomPQ==
X-Received: by 2002:a5d:64a9:0:b0:39c:1efb:ec8e with SMTP id ffacd0b85a97d-39ea51d3205mr1457098f8f.6.1744364719687;
        Fri, 11 Apr 2025 02:45:19 -0700 (PDT)
Message-ID: <157661de-3f3f-4408-9a56-6c2269cf5b0a@citrix.com>
Date: Fri, 11 Apr 2025 10:45:18 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 4/8] Clean up Gitlab yaml
To: Anthony PERARD <anthony.perard@vates.tech>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Michal Orzel <michal.orzel@amd.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
References: <20250409163702.2037301-1-andrew.cooper3@citrix.com>
 <20250409163702.2037301-5-andrew.cooper3@citrix.com> <Z_eYagfQ8vlMYenK@l14>
 <51de54c6-4540-4b84-ad96-9d2edc487016@citrix.com> <Z_jid7eTY7EPIoWu@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: <Z_jid7eTY7EPIoWu@l14>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 11/04/2025 10:35 am, Anthony PERARD wrote:
> On Thu, Apr 10, 2025 at 11:11:49AM +0100, Andrew Cooper wrote:
>> Which is another thing I haven't posted, because it turns out our
>> docker-in-docker only works for x86, not for ARM.
> Fixed! I've installed `qemu-user-static` on the runner
> which run jobs with tag `container-builder`.

Oh excellent.

https://gitlab.com/xen-project/hardware/test-artifacts/-/jobs/9691896141
was happy.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Apr 11 10:05:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 10:05:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.946964.1344679 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3BGJ-00066o-UX; Fri, 11 Apr 2025 10:05:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 946964.1344679; Fri, 11 Apr 2025 10: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 1u3BGJ-00066h-RM; Fri, 11 Apr 2025 10:05:27 +0000
Received: by outflank-mailman (input) for mailman id 946964;
 Fri, 11 Apr 2025 10:05:26 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Klsp=W5=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1u3BGI-00066b-Gl
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 10:05:26 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on20604.outbound.protection.outlook.com
 [2a01:111:f403:2412::604])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6a22d0b1-16bc-11f0-9ffb-bf95429c2676;
 Fri, 11 Apr 2025 12:04:55 +0200 (CEST)
Received: from PH8PR12MB7326.namprd12.prod.outlook.com (2603:10b6:510:216::7)
 by DS7PR12MB8252.namprd12.prod.outlook.com (2603:10b6:8:ee::7) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.8632.27; Fri, 11 Apr 2025 10:04:50 +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.8632.017; Fri, 11 Apr 2025
 10:04: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: 6a22d0b1-16bc-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=yNowPxF+X5c4k4TV5grWVuX/OHJB6c17ZWChbB4L1gB31hQmUt1QW4alBOISFkDXzvBOdOuweZLoOn7rnIpTJstiOqkZVf7U9Qub+ovof9gL+pSziKx51jZWgNVQnO7ZVx/GCQI86uHnuQ0rmqkHXx8QxQ4quoajhrdxsx2WIzWzi6mHb47skw7voyTJWtl+pmzG+iJFtJqOQVWcdTIBBnbFObzSJgJJvOYcCLEEu24Prbw/oyDh/F2V9kVKTm/mVp6xAfRvGlM0ugFJID1O0HIi++Oi7xs6slb9y3cKrPD8XDZWn1oM2gP/F7Y7Fz/ZilImsmeTp9tlRo0GG7H1/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=AAqcSLz06MGe2uOrKOD+3yOrwRrJfGjprtp3zqZLXM8=;
 b=uysUvWPXTIgrS55UOt8CorjmpXMQn+Pk6BXyCM9RNSqSDxHI6XzCYC42FAiSw8YCv7C7VPSssAYBCV+2D/DpiOsZkmCLUSRCkj5m7oG/S+MntoHY59P2MIl/hOA8YL3kavSTpifcHPEC9l9QIiwzAYMMnOZzQJ0+DKZ7Okb73auW7HWkL9bHapYjf6cLIEkLD49zV9Q4Bp0oOJbg+HqYWJgtwVpGJpEt6jHk11N3fy0Oq1Tl3K5EoWtM7tMOHa96NMZyAUXdX7/5xmIGTgGb9r96MjgZMLtDWltfy8cUb/+FgaDpqnv/QKEpd+5BTAgnV6YRPyBzzjFMnouk2ViBBA==
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=AAqcSLz06MGe2uOrKOD+3yOrwRrJfGjprtp3zqZLXM8=;
 b=bJTfGat1CNfsbC3WP4FdSEe0is9+LdUOuBDz6/K9TS7r6aw77OVLhW0Iyse8kDwoYxIec5h/E4DpSsrfqjgpwVlaI/oV5+GV2X/MOPsmJJ4dzQbAMOIofkfbnER/XQ2MkgUwt4r3OqGOoKUdURg8a/vsOkX09acsaGDjh5Fcjek=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <61761ce8-7894-4f19-a7b6-3ee8c98516e8@amd.com>
Date: Fri, 11 Apr 2025 11:04:46 +0100
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 3/3] xen/arm32: mpu: Stubs to build MPU for arm32
Content-Language: en-GB
To: "Orzel, Michal" <michal.orzel@amd.com>,
 Ayan Kumar Halder <ayan.kumar.halder@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>
References: <20250407184443.1790995-1-ayan.kumar.halder@amd.com>
 <20250407184443.1790995-4-ayan.kumar.halder@amd.com>
 <e574f645-0c8d-440d-9f8f-7193d27a9d00@amd.com>
From: Ayan Kumar Halder <ayankuma@amd.com>
In-Reply-To: <e574f645-0c8d-440d-9f8f-7193d27a9d00@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: PR1P264CA0050.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:102:2cb::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_|DS7PR12MB8252:EE_
X-MS-Office365-Filtering-Correlation-Id: 0f38dcfa-0453-488a-bb1f-08dd78e04c18
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?SGJuSGtPblp6STJQQ21USW5id1drQ2ZhQVFlN0RqL2JMQjR4OUYwcjNlTjQ5?=
 =?utf-8?B?Y3ZjSzN6bFVjWVNsRnVycFEvQjlIazkxWFpUOWJuTE96NEZHMThKNm1ZbUlu?=
 =?utf-8?B?VXR2SmRPWkZVOGovMVlxYjJZQzExU0Q0ZDl3N0FhUU4yZ1hLQVFUa0N1WnQr?=
 =?utf-8?B?Z0MrMjJTckZWWHM1akp2M205cDYrdjE1TiswNUNLWjJNaUxCMzdnbXJaNVFJ?=
 =?utf-8?B?NGRSUmxvUFhTTHlXMStlNDlIWEk0eDdaeFFTdlFJNTNYMGdXSjJZcFpNTFhv?=
 =?utf-8?B?cDJ3bithN0VMWUtUdFdDcVk1VUp5SWxIRXhPU0VDZmE4dVErMlZFWE12UnNP?=
 =?utf-8?B?cjJSMmYxeTRkSVVUYTNDWEJYV0t0ZzFzWTlORTJUUkx3T2U2WVYzSjZuQzZB?=
 =?utf-8?B?RFVjdXpYN01lK2NxeTh4VmdDSDhLQkxnaGQ0RDBUL0lPNUE1a2pRTFN6VmJR?=
 =?utf-8?B?VDcxSmVwUnU4THJJOURSaU5oOXNHbGd0dzBiQmtjeHBWOW1KeXBKQ0czNEVB?=
 =?utf-8?B?V3JEK1VWc1ZLSjRuc2g2TVZKakVFbzFDeTBmV1hXOVhGQmJNU1FNTTh3dHN5?=
 =?utf-8?B?WWtLTWNRSnJFd1Z5eUlmcEFENEY0Q3VxVWJzL2Nvek9qTnptampnaVlDbkIw?=
 =?utf-8?B?QzFFMG9UOTVpaXZSTzRqRG80TUw1SGdsTHgyZVRiZlh6TkZ1MEVJL3NTTFRN?=
 =?utf-8?B?QXdnK1NpaFFVOUMwdjhGNkNLM1c1OVBkcHJyTmVxeVAyMEUzNVNmMS83aC9S?=
 =?utf-8?B?QXBXNUpQaWJVeWdPdGJaQ0V6ZnRuVE5KTDd0aXJtM0VrUG01Mys2bzBSbEZL?=
 =?utf-8?B?N1RqczM0UDJsL0RXS2QwY0N3UUw2UXRSZldTTWpveUlSS3hFNGFSQ0RPd3o3?=
 =?utf-8?B?WlhvNEJuek93SHpmaTNoS2lpTlJsZTNTaW1OVTE0Wnp4eWQ4M0JjRUxkcmpi?=
 =?utf-8?B?QWt2U1JQR1hCeklaZDlvaHYyZHc5VUFZVnNMdG1EQXpjc1psMDExU25CMWRu?=
 =?utf-8?B?NUNYYjM4Q0JmK2l1T212dTZKTkxZUGJ5bGFVVTJueDJ4cURYYnpHSGNSRDkz?=
 =?utf-8?B?NUlhclI5THRpak5ZV2kyNzBiK2VUbWlQbkFKdkpncmp6Yi8yaGRMaUoyQ2to?=
 =?utf-8?B?MTFpWXltMGZXSm5lWVdxV3E5T2JvS3dZYVdkUTd3cDRGVmxidE01WjRZS0pV?=
 =?utf-8?B?cWlUUnl3ZkZkZHZNZkpSbGNNVldhWmJ6OWpjS2wzbS9mM0gxR3IrN2w4V2ph?=
 =?utf-8?B?WlI3UC8xblFTU3NVNjg5VzgzbHVVckdpdjQySUdsMkNvWFBuZUZnSGJ5cGR0?=
 =?utf-8?B?UkYveFFoOExsV2twNmdwSURyM0RJNnQ5U1A0Vkt6N0xNMmM5TE9ZUHpGL3Jh?=
 =?utf-8?B?a0hpWEhjM0poWWgwMm0wZ011cTdlNXB3a3FlRnN0RlY5U3QvYWhPVGR1RzhI?=
 =?utf-8?B?eURGT0NCUEJXY3ZqbE1iaHhVV2kyMUNubVlqTlJralcrRUMxNjFaNkN4eHp2?=
 =?utf-8?B?M0I0Z3U5R1M2UllpNXFWQm1sdm80OVk1NVRYT2M0YjBxbVVwU2NsamFlQ21E?=
 =?utf-8?B?UlozOEQ5UDRBZWw1bW4rQjJHcDBCdVlyWEM0cSt6dWo5Yjh0VUVtaWJtdlhU?=
 =?utf-8?B?YkE0Yi85eGxiOGt5MDY4SHlSUWhHWTcvZkJoTlhOeG13SDRFeXl1S3kraVdo?=
 =?utf-8?B?Vy9UbGNZYUoxTklGb0dYLzcxUlBJcTFyTzdZSDBGcWRDZVlnNTdFNVFWSlZ5?=
 =?utf-8?B?ZWVvNDc0QkxXNVVqbnN4dGF6ZGhPWEFETkhWRTVjKzF5OEFtNUZiekxRMVNY?=
 =?utf-8?B?M2NjVGIwSlVsejVybFpkNjIxSk5ZcjZQMVpjc2JWSkNTUXp5V3pHLzV1c1N6?=
 =?utf-8?B?Q3RSWnE3QnR0ZHBJcGJ6Tkk2QTAwL2MzYXkyVDE3ZEJHWGR2QVdrYlY5NHhQ?=
 =?utf-8?Q?SQRtdyIuJN8=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)(366016)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?aHd4aDhqdTdXS2J0SVN0aVVMT29MeSt3VnFnWjJqMTdSVHg3NjdMUjVDSmdB?=
 =?utf-8?B?UkdDQmxJc043aFdLdlBFK3VSUXhlWHlKQlpCUlJpR0VGWTdLS1lrdTAxbEli?=
 =?utf-8?B?bWgvemxpWEEzcWR0dnljR0ZXTE1IMkxod1JuVHU4WGlwT0VhWTFwNHM4NGtE?=
 =?utf-8?B?dXdzKzlyM2RkUml0UXRIdG5ndFhIako3a1ZMcVpWUVAvMGowNm9FUDJsVkRU?=
 =?utf-8?B?Smg3U3B4cXZDSmo0TGU3RWZwMWdaeEFvTVVIZXBrQWdhVWhEam9sNk1MREVu?=
 =?utf-8?B?Y2xmbEY2a0s4Wk5RVzNsd1dVUWt1RFBpR1pzTGZyMFBUOWsyTm5LT2k1eU1P?=
 =?utf-8?B?NzdyTGxlVjNwU0RYVkI1NnF4OS9MM3dXdGJibjVOc3RiRTV4YXBDSTlvZVRi?=
 =?utf-8?B?MWNYSzYwUnI3dHFHcDNEc0RBMmprV0lFTHZYWTcwZHpJRjNDTTQwOTdJSlo2?=
 =?utf-8?B?UithOUEzWllDbTdXdDdlUTVuOW40OVpoYllnSVVsdS9FekNOc2FMVDk0TVlM?=
 =?utf-8?B?MWRCdC9aeU0vYUU5ZGhLSkRjcHZIR05kWGlCZkF4V3JQSitDSDRmb3JvWkpT?=
 =?utf-8?B?MXNkVjVFOUZOcVVWUmVZckEwLzBiT0JxSTd1VGtRaFRHME53WFNSTHV3Nm9W?=
 =?utf-8?B?ZS9EamNiZFJnbDdOTnQxTXJLaVRndEYyYVhxZ2RrU0oyOWRKN2NqNkJYR21T?=
 =?utf-8?B?cVptYzAvVFQ0YVd6bDFtYnZGNnRDUGQ3bG1tUFNycS9qQ2EzOFNoaGpOaUVu?=
 =?utf-8?B?VGlUcGNxWm04d1BLMWJLck5Wejg1YlVjUkgxU29vMkUxbURWSk4vTGgwN05m?=
 =?utf-8?B?K3FlcGJXM0NsN0Zha1EwYThmaCt1MEJQbXo4TjA4eHhsTTlBV0lVaWJyeDAx?=
 =?utf-8?B?aXh2c21BSFFGYVBIT3JwTHJhRE4rUWtXL1JQYlJCL3pMWWJ2N3p0WTRSazE4?=
 =?utf-8?B?RnlYTzdubTRLMUQ1bWdQUGt4Y09WN2RTQjZFZW80VENuWURTeS9jdzQ5YUZ4?=
 =?utf-8?B?aTd6MFIrR0RzaS90V1pETlp0WjhjcVRwTTZUVXpJK0ZhVkdWNXYyZFMxTHht?=
 =?utf-8?B?NmxDZ2RNeHVRcTBoTlJkSGdmZEhTODNIbE41L0VRaDlDb2NkelRXQXdxd3Jt?=
 =?utf-8?B?cUtzZ2pwbnFHLzNpQkJpazBUUGxjS0JFTnZJMFdrQ2lwSlZscEdTSGRBYkQ0?=
 =?utf-8?B?dTFsbjFOanRBcEJLQ0E0RHJiQkMrcmZkdUFFWnNGdzd3Qi9RNWJ1ZXlDeDdh?=
 =?utf-8?B?R3huZjB2R1lYQ3J2cnNBWjQ2WnJTRlFzN0tYOGcwSTdPWHVpQm9vUm5nR3VY?=
 =?utf-8?B?ZVhtYnI0OWE0bm56M1FKdnpyL2liNFI2UHF4OEhoMUpINnRZZjBjejU2Skhj?=
 =?utf-8?B?MEVNOFQwS25ZVmZlNzJGMWljWEhwOEJZdkVCbWlndmtOTndFZDNEeG5HSVZs?=
 =?utf-8?B?enZ6UGhrdGxFN1BDZ2tjUWdvR1FjQ0lHZXZ0L1JLR3NOdlkvTDBnU29QSG02?=
 =?utf-8?B?VnJJUUc5UTVrQmxkS3Fmb3pPVkFaaG1aOVJRQTZNdHBNWmZZOEtpZXR5RDVM?=
 =?utf-8?B?eVhBTHo5ZXVKQWc4UFlvRXMvL2tmMkRZSnhHRmY0TmU4SS9GRGltQnIzeTRC?=
 =?utf-8?B?cU9GSmNzci91U3dwM2tXSXY0OVplVUlwQXVTMCthYVZWU1Y3Q3g5VzNlbnE5?=
 =?utf-8?B?eUJ1SUF5cHN4bkNQdWRsNFhDQnRVUjl0WUlEMHVBU0gvUlBoWHBJUjEzMXZi?=
 =?utf-8?B?SFBGUFBXWWJXWXZJMndpenYzZFR0QVZsYXhHT2dNKzhSUDdnSlBnWWpIK0kr?=
 =?utf-8?B?dm1hd0xEZUpabUpHSVE3V0dMdCtxN216QW8wVEFvdmRqNnkvancrelVia0Vm?=
 =?utf-8?B?S2U4YnVQTmJBVlo0V3dFQnRQMVJMRkVXOUsyYUZENDhNb0I3NFRWUDFiOExh?=
 =?utf-8?B?bVY5czdHRWRCWmVJa0tKWjVIVXhlUnVWQk9OQ3ZwV3NHaHVkeEtZMlVrVk1Z?=
 =?utf-8?B?alFqSXRxZTVyVlNHQkgyYXlTMW9YWXR0dSs2dHh2TWdVRCtLVTN2ejRUOFhj?=
 =?utf-8?B?eVNQcDNpaWREZHlDWnpNNUlETm9CcmFlVU9jL0M5UytBKzZtZitJdjA4UW1P?=
 =?utf-8?Q?BMKnInmV3fnjBStPyXY29QIGX?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0f38dcfa-0453-488a-bb1f-08dd78e04c18
X-MS-Exchange-CrossTenant-AuthSource: PH8PR12MB7326.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Apr 2025 10:04:50.3407
 (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: HpiDWd6NscOp7qxBSjO66jj/iwjrrhbI4ZJxSq0RGqEgWPK2ejXLm4jFT+3ojYP88Ef7zDmyA1t5nqoOaX7y8A==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB8252

Hi,

On 08/04/2025 10:54, Orzel, Michal wrote:
>
> On 07/04/2025 20:44, Ayan Kumar Halder wrote:
>> Add stubs to enable compilation
> NIT: missing dot at the end of sentence.
>
>> Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
>> ---
>> Changes from :-
>>
>> v1, v2 -
>> 1. New patch introduced in v3.
>> 2. Should be applied on top of
>> https://patchwork.kernel.org/project/xen-devel/cover/20250316192445.2376484-1-luca.fancellu@arm.com/
>>
>> v3 -
>> 1. Add stubs for map_domain_page() and similar functions.
>>
>> 2. 'BUG_ON("unimplemented")' is kept in all the stubs.
>>
>> v4 -
>> 1. is_xen_heap_mfn() macros are defined across mpu/mm.h (ARM32 specific)
>> , mmu/mm.h (ARM32 specific) and asm/mm.h (ARM64 specific)
>>
>> 2. s/(void*)0/NULL
>>
>>   xen/arch/arm/arm32/mpu/Makefile   |  2 ++
>>   xen/arch/arm/arm32/mpu/p2m.c      | 18 ++++++++++++++
>>   xen/arch/arm/arm32/mpu/smpboot.c  | 23 +++++++++++++++++
>>   xen/arch/arm/include/asm/mm.h     |  9 +------
>>   xen/arch/arm/include/asm/mmu/mm.h |  9 +++++++
>>   xen/arch/arm/include/asm/mpu/mm.h |  5 ++++
>>   xen/arch/arm/mpu/Makefile         |  1 +
>>   xen/arch/arm/mpu/domain_page.c    | 41 +++++++++++++++++++++++++++++++
>>   8 files changed, 100 insertions(+), 8 deletions(-)
>>   create mode 100644 xen/arch/arm/arm32/mpu/p2m.c
>>   create mode 100644 xen/arch/arm/arm32/mpu/smpboot.c
>>   create mode 100644 xen/arch/arm/mpu/domain_page.c
>>
>> diff --git a/xen/arch/arm/arm32/mpu/Makefile b/xen/arch/arm/arm32/mpu/Makefile
>> index 3340058c08..38797f28af 100644
>> --- a/xen/arch/arm/arm32/mpu/Makefile
>> +++ b/xen/arch/arm/arm32/mpu/Makefile
>> @@ -1 +1,3 @@
>>   obj-y += head.o
>> +obj-y += smpboot.o
>> +obj-y += p2m.o
> Sort alphabetically. Always.
>
>> diff --git a/xen/arch/arm/arm32/mpu/p2m.c b/xen/arch/arm/arm32/mpu/p2m.c
>> new file mode 100644
>> index 0000000000..df8de5c7d8
>> --- /dev/null
>> +++ b/xen/arch/arm/arm32/mpu/p2m.c
>> @@ -0,0 +1,18 @@
>> +/* SPDX-License-Identifier: GPL-2.0-only */
>> +
>> +#include <xen/init.h>
>> +#include <asm/p2m.h>
>> +
>> +void __init setup_virt_paging(void)
>> +{
>> +    BUG_ON("unimplemented");
>> +}
>> +
>> +/*
>> + * Local variables:
>> + * mode: C
>> + * c-file-style: "BSD"
>> + * c-basic-offset: 4
>> + * indent-tabs-mode: nil
>> + * End:
>> + */
>> diff --git a/xen/arch/arm/arm32/mpu/smpboot.c b/xen/arch/arm/arm32/mpu/smpboot.c
>> new file mode 100644
>> index 0000000000..3f3e54294e
>> --- /dev/null
>> +++ b/xen/arch/arm/arm32/mpu/smpboot.c
>> @@ -0,0 +1,23 @@
>> +/* SPDX-License-Identifier: GPL-2.0-only */
>> +
>> +#include <xen/mm.h>
>> +
>> +int prepare_secondary_mm(int cpu)
>> +{
>> +    BUG_ON("unimplemented");
>> +    return -EINVAL;
>> +}
>> +
>> +void update_boot_mapping(bool enable)
>> +{
>> +    BUG_ON("unimplemented");
>> +}
>> +
>> +/*
>> + * 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 fbffaccef4..5b67c0f8bb 100644
>> --- a/xen/arch/arm/include/asm/mm.h
>> +++ b/xen/arch/arm/include/asm/mm.h
>> @@ -170,14 +170,7 @@ struct page_info
>>   #define _PGC_need_scrub   _PGC_allocated
>>   #define PGC_need_scrub    PGC_allocated
>>   
>> -#ifdef CONFIG_ARM_32
>> -#define is_xen_heap_page(page) is_xen_heap_mfn(page_to_mfn(page))
>> -#define is_xen_heap_mfn(mfn) ({                                 \
>> -    unsigned long mfn_ = mfn_x(mfn);                            \
>> -    (mfn_ >= mfn_x(directmap_mfn_start) &&                      \
>> -     mfn_ < mfn_x(directmap_mfn_end));                          \
>> -})
>> -#else
> At first sight, it's not clear why we diverge here and move Arm32 but not Arm64.
> At least I'd expect some reasoning for this change in commit msg.
I added an explaination why the code is moved for Arm32 in my latest patch.
>
>> +#ifdef CONFIG_ARM_64
>>   #define is_xen_heap_page(page) ((page)->count_info & PGC_xen_heap)
>>   #define is_xen_heap_mfn(mfn) \
>>       (mfn_valid(mfn) && is_xen_heap_page(mfn_to_page(mfn)))
>> diff --git a/xen/arch/arm/include/asm/mmu/mm.h b/xen/arch/arm/include/asm/mmu/mm.h
>> index caba987edc..9b98d12b07 100644
>> --- a/xen/arch/arm/include/asm/mmu/mm.h
>> +++ b/xen/arch/arm/include/asm/mmu/mm.h
>> @@ -21,6 +21,15 @@ extern unsigned long directmap_base_pdx;
>>   
>>   #define frame_table ((struct page_info *)FRAMETABLE_VIRT_START)
>>   
>> +#ifdef CONFIG_ARM_32
> Why another #ifdef if there is one a few lines below in this file (below
> virt_to_maddr)?
Ack. I have moved it.
>
>> +#define is_xen_heap_page(page) is_xen_heap_mfn(page_to_mfn(page))
>> +#define is_xen_heap_mfn(mfn) ({                                 \
>> +    unsigned long mfn_ = mfn_x(mfn);                            \
>> +    (mfn_ >= mfn_x(directmap_mfn_start) &&                      \
>> +     mfn_ < mfn_x(directmap_mfn_end));                          \
>> +})
>> +#endif
>> +
>>   #define virt_to_maddr(va) ({                                                   \
>>       vaddr_t va_ = (vaddr_t)(va);                                               \
>>       (paddr_t)((va_to_par(va_) & PADDR_MASK & PAGE_MASK) | (va_ & ~PAGE_MASK)); \
>> diff --git a/xen/arch/arm/include/asm/mpu/mm.h b/xen/arch/arm/include/asm/mpu/mm.h
>> index 86f33d9836..bfd840fa5d 100644
>> --- a/xen/arch/arm/include/asm/mpu/mm.h
>> +++ b/xen/arch/arm/include/asm/mpu/mm.h
>> @@ -13,6 +13,11 @@ extern struct page_info *frame_table;
>>   
>>   #define virt_to_maddr(va) ((paddr_t)((vaddr_t)(va) & PADDR_MASK))
>>   
>> +#ifdef CONFIG_ARM_32
>> +#define is_xen_heap_page(page) ({ BUG_ON("unimplemented"); false; })
>> +#define is_xen_heap_mfn(mfn) ({ BUG_ON("unimplemented"); false; })
>> +#endif
>> +
>>   /* On MPU systems there is no translation, ma == va. */
>>   static inline void *maddr_to_virt(paddr_t ma)
>>   {
>> diff --git a/xen/arch/arm/mpu/Makefile b/xen/arch/arm/mpu/Makefile
>> index 21bbc517b5..ff221011d5 100644
>> --- a/xen/arch/arm/mpu/Makefile
>> +++ b/xen/arch/arm/mpu/Makefile
>> @@ -2,3 +2,4 @@ obj-y += mm.o
>>   obj-y += p2m.o
>>   obj-y += setup.init.o
>>   obj-y += vmap.o
>> +obj-$(CONFIG_ARM_32) += domain_page.o
> Again, sort alphabetically.
>
>> diff --git a/xen/arch/arm/mpu/domain_page.c b/xen/arch/arm/mpu/domain_page.c
>> new file mode 100644
>> index 0000000000..8859b24e04
>> --- /dev/null
>> +++ b/xen/arch/arm/mpu/domain_page.c
>> @@ -0,0 +1,41 @@
>> +/* SPDX-License-Identifier: GPL-2.0-or-later */
> empty line here
>
>> +#include <xen/domain_page.h>
>> +
>> +void *map_domain_page_global(mfn_t mfn)
>> +{
>> +    BUG_ON("unimplemented");
>> +    return NULL;
>> +}
>> +
>> +/* Map a page of domheap memory */
>> +void *map_domain_page(mfn_t mfn)
>> +{
>> +    BUG_ON("unimplemented");
>> +    return NULL;
>> +}
>> +
>> +/* Release a mapping taken with map_domain_page() */
>> +void unmap_domain_page(const void *ptr)
>> +{
>> +    BUG_ON("unimplemented");
>> +}
>> +
>> +mfn_t domain_page_map_to_mfn(const void *ptr)
>> +{
>> +    BUG_ON("unimplemented");
>> +    return INVALID_MFN;
>> +}
>> +
>> +void unmap_domain_page_global(const void *va)
>> +{
>> +    BUG_ON("unimplemented");
>> +}
>> +
>> +/*
>> + * Local variables:
>> + * mode: C
>> + * c-file-style: "BSD"
>> + * c-basic-offset: 4
>> + * indent-tabs-mode: nil
>> + * End:
>> + */
> Additionally, take into account Luca remarks regarding headers.

Thanks Luca for spotting them.

I have addressed all the other comments.

- Ayan

>
> ~Michal
>
>


From xen-devel-bounces@lists.xenproject.org Fri Apr 11 10:52:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 10:52:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.946997.1344718 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3Bzj-0006SG-E6; Fri, 11 Apr 2025 10:52:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 946997.1344718; Fri, 11 Apr 2025 10:52: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 1u3Bzj-0006S9-BN; Fri, 11 Apr 2025 10:52:23 +0000
Received: by outflank-mailman (input) for mailman id 946997;
 Fri, 11 Apr 2025 10:52: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=cS7z=W5=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u3Bzi-0006S2-UR
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 10:52:22 +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 0ae69a28-16c3-11f0-9ffb-bf95429c2676;
 Fri, 11 Apr 2025 12:52:20 +0200 (CEST)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-43d0359b1fcso12554135e9.0
 for <xen-devel@lists.xenproject.org>; Fri, 11 Apr 2025 03:52:20 -0700 (PDT)
Received: from localhost.localdomain (host-92-26-98-202.as13285.net.
 [92.26.98.202]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43f233c81f6sm78493215e9.20.2025.04.11.03.52.19
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 11 Apr 2025 03:52: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: 0ae69a28-16c3-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744368740; x=1744973540; 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=FJLuk24Nv2+HO6h8WGaWezknIrFa+t8rLucFzGjUQUg=;
        b=ORX13FIhg8MqKvS0gOYqld1bXHRfrbzxJm/bMKfPi8yjjx3khLE+aGPWMG/AAPDDSY
         XXG97HIJVet8w6KhL9B0CYyQiJ3vY9LMCVe/OwpJQeEHf7t46Bg5InYXU7Odil8OtUi9
         YuxQjaKQvNiM9doiqjSJQYuiggBWG+rOzG20s=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744368740; x=1744973540;
        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=FJLuk24Nv2+HO6h8WGaWezknIrFa+t8rLucFzGjUQUg=;
        b=UZdBUPrKYwm6CIqg0pNUYWulFlXdLrZiJHAPbfBIN9yFZeHU8S7Lb1NiwuBFLuyVt9
         79sMaODCLLh6qMhqBGpwcJ3LNF0I+pnd7FLUIfETJ2hmSzv8GwNJyuBKoPX6PYEYVAIo
         ppBu+K/7jQ7Nfyqq7mJS1mkbDYwQc1zgISfD2wx37NGPrt2xHjfHQ76AxxS9P57C1lAe
         7Zk7i9VTgzeahRL7K+BM/5j6FUCaC+2pmN2t+bhi1tYBoLeUN+HMYq3y4uuEXsT0BK0a
         qmiPJpLTtimysGT+3g/BqieVyoZ+g79igjuEgT7Tnq9xuDLDW1WnckR7EMllu8Z//wSK
         F6xg==
X-Gm-Message-State: AOJu0Ywx+qI9qm0g4LqPpNc/BFZ3Rk6Wu6MfIvkF03UdW7kaYkSpjG37
	2mq84O32HApD4WGjd+1+F0aMqlYdWd56Ct8rW1uGiW2+dbcxnmjbE0o/w6OSzSR4wOWO+T0OLdI
	E+aA=
X-Gm-Gg: ASbGncvZJtSFPqStFx545ZpUufzQoN3y0ASkMsxtCOLpcvP4TqK3yLuNpbjOh3oJ2M7
	e31FJK6EO1KoDi0LiaOWXNIonjR4oH9YX3TNAOy4k5yVIJugjhmSz+AgDymMT75OWDk2YI+4YEX
	uzF1wwF+HRhQvamyVu+7utlplNaqaahOgTHRPUiP8A8E3xqx820aBZUyM1Hf69tmmu6Y47rRqcv
	XVDERQYSLCtYJhnVFX43zNy2rqZKdE3t1AqVLuViNXEDiFTkhETSFPmDSoTAkeP8UmKbB2xERjn
	a/ednBbO8F37x2ZU8wAEXJi5ZHYWZYXvYXRq0XwpEicZ2p6NGIvNv8m+Nbv2N8l1hjgH+5zWfa3
	uhUnzyqpzvS34pw==
X-Google-Smtp-Source: AGHT+IH9bhqKpPDBQsv3OUHsucect5ibfmzohhlVmT6AFrzfJab7Audckg4aVTJgGR8EVI/IfubQsg==
X-Received: by 2002:a05:600c:1e1c:b0:43d:1bf6:15e1 with SMTP id 5b1f17b1804b1-43f39622728mr20316585e9.1.1744368739881;
        Fri, 11 Apr 2025 03:52:19 -0700 (PDT)
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?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH TEST-ARTEFACTS 0/3] Rootfs generation (ARM and x86)
Date: Fri, 11 Apr 2025 11:52:14 +0100
Message-Id: <20250411105217.2141356-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

Part 3 of the cleanup, reworking rootfs generation.

The Xen side of the change isn't quite ready yet, but this is in a good enough
state for review.

Andrew Cooper (3):
  Rework rootfs generation to make a cpio archive
  Shrink the rootfs substantially
  Provide an ARM64 rootfs too

 .gitlab-ci.yml                           | 16 ++++-
 containerize                             |  1 +
 images/alpine/3.18-arm64-base.dockerfile |  6 ++
 scripts/alpine-rootfs.sh                 | 92 ++++++++++++++++++++++++
 scripts/x86_64-rootfs-alpine.sh          | 60 ----------------
 5 files changed, 114 insertions(+), 61 deletions(-)
 create mode 100644 images/alpine/3.18-arm64-base.dockerfile
 create mode 100755 scripts/alpine-rootfs.sh
 delete mode 100755 scripts/x86_64-rootfs-alpine.sh

-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Apr 11 10:52:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 10:52:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.947000.1344744 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3Bzn-0006xf-8J; Fri, 11 Apr 2025 10:52:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 947000.1344744; Fri, 11 Apr 2025 10:52: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 1u3Bzn-0006wX-2g; Fri, 11 Apr 2025 10:52:27 +0000
Received: by outflank-mailman (input) for mailman id 947000;
 Fri, 11 Apr 2025 10:52: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=cS7z=W5=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u3Bzk-0006S2-HX
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 10:52:24 +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 0c27b090-16c3-11f0-9ffb-bf95429c2676;
 Fri, 11 Apr 2025 12:52:22 +0200 (CEST)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-43cfe574976so13396505e9.1
 for <xen-devel@lists.xenproject.org>; Fri, 11 Apr 2025 03:52:22 -0700 (PDT)
Received: from localhost.localdomain (host-92-26-98-202.as13285.net.
 [92.26.98.202]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43f233c81f6sm78493215e9.20.2025.04.11.03.52.21
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 11 Apr 2025 03:52:21 -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: 0c27b090-16c3-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744368742; x=1744973542; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=kIPah+Nx1tiLQuGiODCJoASZliWThOAtOi1NpKaYDJ4=;
        b=eCIHm3Zb07Cne8mjxEAH8IYLceUlHP8bQtjTL2fA9XwUS8ba8ofOuH9UoHR3h/dc2F
         9yKLhIEUqn9N4GWhX+qGWTGD+w+H3LOn5XZmsjk7GPWV6VD8n7gm7pqEJhc7cQ0iHBu6
         tvcij3oLA6ZOvostpijPNy9QNVAhWXeUMWI/I=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744368742; x=1744973542;
        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=kIPah+Nx1tiLQuGiODCJoASZliWThOAtOi1NpKaYDJ4=;
        b=sBLkg5RcOCwgW/6GoYzR2xouMCEtUKe1NikuaXzPbWDGmKxqOveW2K0JwSOJ14Xfxx
         Os2nySYU8/jJ1qzNWJstDs7N8H33BeK1u3Dc/i/zYNtCqwObEyNcbvZu/BvFDeM7YKrl
         di7ZDhM/xbmQiZx1lDhZRb5V0G4/FDChtMfXylvdfqvjsbyuTBfcAKWZfvmhb19WSs0g
         8mKoAqG8HALVpLsOouq/GB3GYn8TbtpGBB+nM1YSoOsPmZ85/0YkttAk04+PGH6sHGi2
         JP2MS+oQy+YbQO7qy5V5GwRYVWpd7tYfMIvWnkdW9gFEwlF5gZaD0JOB5N5YvrTRm2AW
         axDw==
X-Gm-Message-State: AOJu0YwnIEqh4eQtE2hO76wtHCh9du9L39hjQ0TqPP0iyNnbvN7qujDD
	u0C+YVVQ2uU2BZUzQ0AV5wW91VPlw7Q0TLS0/PHw95k4CSqcSQb9pBPKPZCe5EhotzBIWbhV+gZ
	evkA=
X-Gm-Gg: ASbGnctVC8cv49Qw/4cB7g1qoJL4rNtAOh9G9n7hwoqPSNiJIwk7IWAtYJnLuxZMgj0
	pDbAa5KRjiWKaiaWtjlGsfralbVcny0BEVx3C8eqvXoJ5fTHmNXc/nY51fya4aFy97Xgp4+yOQp
	WVsxgjPIMs/mvKYnF41j0IaVgFs4Lgg3f7Sq8TA3gsnVqasQtgDI68WUAOoU2jUqF4GvTorNVwE
	QukvyV8eTB3h35dHObTW5EezkKTXH+pLQ+09qgWYfcIGSMomDi4fxqPG7uUootCeuveO3ss0faW
	bhwPsdLC9lmeAAFcgj5EIp/Vw7/zYCV8GLxaTsatpIAYc4UQXD4AGxqFMxw/i1HEhTXe1aDZM1f
	6SPWqZNXeWjIWKieX72+84Ryl
X-Google-Smtp-Source: AGHT+IHxNnyGxSy+jEWj44G/v+alf89pz1jubUkwU8Hk71aX6eIU0Xs2G157ky69QIENoNftEyM7cA==
X-Received: by 2002:a05:600c:83c6:b0:43c:e478:889 with SMTP id 5b1f17b1804b1-43f3a7d872dmr21597355e9.0.1744368742037;
        Fri, 11 Apr 2025 03:52:22 -0700 (PDT)
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?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH 2/3] Shrink the rootfs substantially
Date: Fri, 11 Apr 2025 11:52:16 +0100
Message-Id: <20250411105217.2141356-3-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250411105217.2141356-1-andrew.cooper3@citrix.com>
References: <20250411105217.2141356-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

bash, busybox, musl and zlib are all in the base container.

python3 and ncurses are in principle used by bits of Xen, but not in anything
we test in CI.  argp-standlone, curl, dbus, libfdt, libgcc and sudo aren't
used at all (for x86 at least).

libbz2 and libuuid were pulled in transitively before, and need to be included
explicitly now.

Use apk --no-cache to avoid keeping a ~2M package index on disk.

Remove the modules scan on boot.  We don't have or build any.  This removes a
chunk of warnings on boot.

This shrinks the rootfs from ~30M down to ~8M.

No practical change.

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: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>

I'm still working on the integration of the new rootfs's int Xen, and will
hold off until committing that's ready but
https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/1763510164
shows good early progress.
---
 scripts/alpine-rootfs.sh | 60 +++++++++++++++++++++++-----------------
 1 file changed, 34 insertions(+), 26 deletions(-)

diff --git a/scripts/alpine-rootfs.sh b/scripts/alpine-rootfs.sh
index c29c92d1c682..30d426d6e88f 100755
--- a/scripts/alpine-rootfs.sh
+++ b/scripts/alpine-rootfs.sh
@@ -4,33 +4,42 @@ set -eu
 
 WORKDIR="${PWD}"
 COPYDIR="${WORKDIR}/binaries"
+UNAME=$(uname -m)
 
-apk update
+apk --no-cache update
 
-# xen runtime deps
-apk add musl
-apk add libgcc
-apk add openrc
-apk add busybox
-apk add sudo
-apk add dbus
-apk add bash
-apk add python3
-apk add zlib
-apk add lzo
-apk add ncurses
-apk add yajl
-apk add libaio
-apk add xz
-apk add util-linux
-apk add argp-standalone
-apk add libfdt
-apk add glib
-apk add pixman
-apk add curl
-apk add udev
-apk add pciutils
-apk add libelf
+PKGS=(
+    # System
+    openrc
+    udev
+    util-linux
+
+    # Xen toolstack runtime deps
+    libbz2
+    libuuid
+    lzo
+    xz
+    yajl
+
+    # QEMU
+    glib
+    libaio
+    pixman
+    )
+
+case $UNAME in
+    x86_64)
+        PKGS+=(
+            # System
+            pciutils
+
+            # QEMU
+            libelf
+            )
+        ;;
+esac
+
+apk add --no-cache "${PKGS[@]}"
 
 # Xen
 cd /
@@ -45,7 +54,6 @@ rc-update add dmesg sysinit
 rc-update add hostname boot
 rc-update add hwclock boot
 rc-update add hwdrivers sysinit
-rc-update add modules boot
 rc-update add killprocs shutdown
 rc-update add mount-ro shutdown
 rc-update add savecache shutdown
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Apr 11 10:52:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 10:52:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.946999.1344739 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3Bzm-0006vB-Vs; Fri, 11 Apr 2025 10:52:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 946999.1344739; Fri, 11 Apr 2025 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 1u3Bzm-0006v2-S4; Fri, 11 Apr 2025 10:52:26 +0000
Received: by outflank-mailman (input) for mailman id 946999;
 Fri, 11 Apr 2025 10:52: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=cS7z=W5=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u3Bzk-0006S8-EF
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 10:52:24 +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 0cb4603b-16c3-11f0-9ead-5ba50f476ded;
 Fri, 11 Apr 2025 12:52:24 +0200 (CEST)
Received: by mail-wr1-x42d.google.com with SMTP id
 ffacd0b85a97d-39141ffa9fcso2164593f8f.0
 for <xen-devel@lists.xenproject.org>; Fri, 11 Apr 2025 03:52:24 -0700 (PDT)
Received: from localhost.localdomain (host-92-26-98-202.as13285.net.
 [92.26.98.202]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43f233c81f6sm78493215e9.20.2025.04.11.03.52.22
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 11 Apr 2025 03:52:22 -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: 0cb4603b-16c3-11f0-9ead-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744368743; x=1744973543; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Qvic3eUPy20STA5MQiJH4xRVltasBwTAFm2fFFSPQT4=;
        b=SFUR96CLWNCllkL+p++kNCifey/R9yyIcrMKz8XHg44kdoYLVA5caS9Rp66Vvpxskr
         91YqX1tjlVfPut4b7RzdeDJBRrD1tydPiveY3RtSqCMyowtdbg3wHw3sW61PmzXIZKsV
         GKOEjSko/68qeRwoSpPZWW+dPYnxc1TnGWYTY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744368743; x=1744973543;
        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=Qvic3eUPy20STA5MQiJH4xRVltasBwTAFm2fFFSPQT4=;
        b=fEU7TI7aSBaVpYF+/2uFEuz9dp0wLCm1CVMHUr3OTAGliEG8j7+ClHGg9kPoya1vcP
         cofLVdeH7K/Zy8x/UUMCUJV8eYuvdCzjNrvVPwcUJ2L32r0MrI/I1BjBQYfBOqTz+gr6
         RunEUAtsJzD6DcRjTq/pT4UCECzKTATosUZEQSM7F5JkGXvfp80oJK/WcXXSLglUcLXD
         xbCKlEl3WTWdrXbrGTj/rSlpxLigJGH0fIQJ0V4/WIPB02nLvXwvv7gS8ZotSX+4wF2R
         lbHSdSUvmQMQ0XnD8FDAz7rgkREHxewcbRuKIsCna7tz4GfA0kZifTiD2eCHRNTP5k0U
         yclw==
X-Gm-Message-State: AOJu0YwxQkj9Z0aoUJVHV9BOSi7ckyQPwOMmwQIbXU1QvWlCDizh+qhf
	OV3+WpP8C+oUplIv/YF4WYFbBO8U7w0yuixhvB+CdDuqaae65xUIoHW8FEtHemp/euc5on3h3JY
	W0ak=
X-Gm-Gg: ASbGncsbvvxx1YEVnJwMp6y3PP/kyBCaALmH/HXIsBGFPl/9yCkCw0iav+Ckc1o3VSN
	F++JzHu3RDSznsaPCO0key0TWeUTFoUjskL7+2ZgDuGdjHbfbNNjpC+mwcxxPlrxXx9xUfQk9kx
	4k4o5g+LV9xWqWTg/GaDwzL9HKQyUKE8iPdYvQg6pJNuR48DBtwG3Y79+f23qEphFUqTvhXezgq
	AFaWzKCtFwzp+EiXUbdwrb7IGo2vz4hzhR6SWuB+ZF/5NnLQM88IbNu8tgBb+0qbWlarIoWAO9+
	UkGjv1xlVBPH83fxFNNAlLcXnRaned2ZpVK7OPb51BtaV8fiFx6854Q1WecCYOoD3K58Kidw7eo
	JnepaoCgNQNZy3A==
X-Google-Smtp-Source: AGHT+IHC/IoBpEen7blw8f+Nwf7qaOd4zRPDAm1sg1XHDwUmVsypkS0tFBpL4lqLOL1zNk2eTp/jUg==
X-Received: by 2002:a05:6000:1787:b0:39c:2c38:4599 with SMTP id ffacd0b85a97d-39eaaec7559mr1517072f8f.48.1744368742858;
        Fri, 11 Apr 2025 03:52:22 -0700 (PDT)
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?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH 3/3] Provide an ARM64 rootfs too
Date: Fri, 11 Apr 2025 11:52:17 +0100
Message-Id: <20250411105217.2141356-4-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250411105217.2141356-1-andrew.cooper3@citrix.com>
References: <20250411105217.2141356-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The only extra package needed is libfdt.

The older ARM64 rootfs configured modloop, networking and sysctl, but none of
this is used in any of the testing, so is omitted here for now.

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: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
---
 .gitlab-ci.yml                           | 7 +++++++
 containerize                             | 1 +
 images/alpine/3.18-arm64-base.dockerfile | 6 ++++++
 scripts/alpine-rootfs.sh                 | 7 +++++++
 4 files changed, 21 insertions(+)
 create mode 100644 images/alpine/3.18-arm64-base.dockerfile

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 916c5ae9d508..3587d660aa62 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -33,6 +33,13 @@ stages:
 #
 # ARM64 artifacts
 #
+alpine-3.18-arm64-rootfs:
+  extends: .arm64-artifacts
+  script:
+    - ./scripts/alpine-rootfs.sh cpio
+  variables:
+    CONTAINER: alpine:3.18-arm64-base
+
 linux-6.6.86-arm64:
   extends: .arm64-artifacts
   script: ./scripts/build-linux.sh
diff --git a/containerize b/containerize
index c23f55ead737..38a434ab7075 100755
--- a/containerize
+++ b/containerize
@@ -24,6 +24,7 @@ die() {
 #
 BASE="registry.gitlab.com/xen-project/hardware/test-artifacts"
 case "_${CONTAINER}" in
+    _alpine-3.18-arm64-base) CONTAINER="${BASE}/alpine:3.18-arm64-base" ;;
     _alpine-3.18-arm64-build) CONTAINER="${BASE}/alpine:3.18-arm64-build" ;;
     _alpine-3.18-x86_64-base) CONTAINER="${BASE}/alpine:3.18-x86_64-base" ;;
     _alpine-3.18-x86_64-build|_) CONTAINER="${BASE}/alpine:3.18-x86_64-build" ;;
diff --git a/images/alpine/3.18-arm64-base.dockerfile b/images/alpine/3.18-arm64-base.dockerfile
new file mode 100644
index 000000000000..ab597c75b80e
--- /dev/null
+++ b/images/alpine/3.18-arm64-base.dockerfile
@@ -0,0 +1,6 @@
+# syntax=docker/dockerfile:1
+FROM --platform=linux/arm64/v8 alpine:3.18
+LABEL maintainer.name="The Xen Project"
+LABEL maintainer.email="xen-devel@lists.xenproject.org"
+
+RUN apk --no-cache add bash
diff --git a/scripts/alpine-rootfs.sh b/scripts/alpine-rootfs.sh
index 30d426d6e88f..220a8aedf4a1 100755
--- a/scripts/alpine-rootfs.sh
+++ b/scripts/alpine-rootfs.sh
@@ -37,6 +37,13 @@ case $UNAME in
             libelf
             )
         ;;
+
+    aarch64)
+        PKGS+=(
+            # Xen
+            libfdt
+            )
+        ;;
 esac
 
 apk add --no-cache "${PKGS[@]}"
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Apr 11 10:52:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 10:52:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.946998.1344729 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3Bzk-0006g9-Kw; Fri, 11 Apr 2025 10:52:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 946998.1344729; Fri, 11 Apr 2025 10: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 1u3Bzk-0006g0-HT; Fri, 11 Apr 2025 10:52:24 +0000
Received: by outflank-mailman (input) for mailman id 946998;
 Fri, 11 Apr 2025 10: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=cS7z=W5=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u3Bzj-0006S8-Fq
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 10:52:23 +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 0bd54e34-16c3-11f0-9ead-5ba50f476ded;
 Fri, 11 Apr 2025 12:52:22 +0200 (CEST)
Received: by mail-wr1-x435.google.com with SMTP id
 ffacd0b85a97d-39c0dfad22aso948452f8f.2
 for <xen-devel@lists.xenproject.org>; Fri, 11 Apr 2025 03:52:22 -0700 (PDT)
Received: from localhost.localdomain (host-92-26-98-202.as13285.net.
 [92.26.98.202]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43f233c81f6sm78493215e9.20.2025.04.11.03.52.20
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 11 Apr 2025 03:52:20 -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: 0bd54e34-16c3-11f0-9ead-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744368741; x=1744973541; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=eMF9e3oJkccAPgvDEUGsPmSxBbanEG/SINaFCwPFSM0=;
        b=vtgJBQBCCH1AKUxb7TS6Tcise1eT1gVjJMUwXQN/7sNWg/CB1U/1D8rx8qBz7D1RX2
         1FeWmaah3j/XRtd/NyTRjrxAupoqEyxNJUH5HL/dFgxQa28ybrjxe4A4NuKoTExOJLky
         bMjCtD9/GtFpm/iq3n3lnCGB0/PInoS/kbSt4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744368741; x=1744973541;
        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=eMF9e3oJkccAPgvDEUGsPmSxBbanEG/SINaFCwPFSM0=;
        b=mcxiN9oH3B0Z4I+WjHS87+tmj228TNvTGuZNQ038fahncz9wWbWmTntLkAn4f4LElB
         tn1bFSVS4FGa0V/79dN0oz3Kacq7ngAEkXiMmTlBPBT/Pv85WPTx500o5awCBb/ujkae
         Teyon3Unlp52rf1AI3I2mP0n4eRUbimBJ4i/fE0JhdJ4VlJEFzWv9Sk/zk6Rzutnr21h
         VWO81JzBmGzyxSNzXCaSOCR7i7zMtErljsZIUkTmLmEnurzATJRhTwkKNHXt0yzg3M0A
         R5OCQxgm9krCm+tafssh6Es0IxSBZaI7uSGaoqqD7rUMm9g4RahU3xVVwsKWiVe5vo7J
         yGSw==
X-Gm-Message-State: AOJu0Yylr73Z6D9tzzJRtm/zebPRWw2icfCXmoKOTmBgso/PB0vRn1yf
	RXLUjTfersu8yRbalbP29SRBbDi38w0Dp/6vkLw8OVBMap82yKr+VBHRbteWjD6rNPN05osFPLR
	fYbI=
X-Gm-Gg: ASbGncsrZD8g6vRRqZiVEKfQGV7lg3Rbz/ZS3sSuxwQ05mbVPlCfvYTE8TMC/kjHzq9
	TBnBD/zSXiFOlECAhaZUKyhWZ5CoIBZN63wbixbPtxx7iTNrR7TDxXPEWBQmZQwu4BtGMv0PX+S
	ZUkXogL2bXTyRzssDwpts92KRAedlSbDA4UiOnZiH9TX25kTz4Ub6upvzNpYVTKCxS6nduO5ChC
	932XLZPj/muDyHUt3Z6UytvVj6speKXpa7VPGsBPWkjZkYE6XzsRV7r1wmicOwI7KiamZC66pFW
	xmdoX72KTNKZUNZgEB9mrwZLysxxlGJ5ghcpgaTgi5yi3ipk5qPHeVUJwEVPbhmPKmI2YlOEbSs
	fvTCIOI3AF/VXlpeVh2pYzJn7
X-Google-Smtp-Source: AGHT+IF/GXqtxQeTKbNkj/0FtvWWntKG1rB1kAsgxo5ygd409/KHLm+X2aCrn0x8/6kbcgWZFkgAcA==
X-Received: by 2002:a05:6000:144d:b0:391:4999:776c with SMTP id ffacd0b85a97d-39eaaecdb44mr1931563f8f.40.1744368741248;
        Fri, 11 Apr 2025 03:52:21 -0700 (PDT)
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?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH 1/3] Rework rootfs generation to make a cpio archive
Date: Fri, 11 Apr 2025 11:52:15 +0100
Message-Id: <20250411105217.2141356-2-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250411105217.2141356-1-andrew.cooper3@citrix.com>
References: <20250411105217.2141356-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Rename the script as we're going to use it for ARM64 shortly, and have it take
a tar or cpio parameter to determine the output format.

Turn it into a proper bash script, and provide the cpio form under the new
artefact naming scheme.

No functional change.

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: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
---
 .gitlab-ci.yml                                |  9 +++++++-
 ...6_64-rootfs-alpine.sh => alpine-rootfs.sh} | 21 +++++++++++++++++--
 2 files changed, 27 insertions(+), 3 deletions(-)
 rename scripts/{x86_64-rootfs-alpine.sh => alpine-rootfs.sh} (75%)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 1d2c72b268a3..916c5ae9d508 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -42,6 +42,13 @@ linux-6.6.86-arm64:
 #
 # x86_64 artifacts
 #
+alpine-3.18-x86_64-rootfs:
+  extends: .x86_64-artifacts
+  script:
+    - ./scripts/alpine-rootfs.sh cpio
+  variables:
+    CONTAINER: alpine:3.18-x86_64-base
+
 linux-6.6.56-x86_64:
   extends: .x86_64-artifacts
   script: ./scripts/build-linux.sh
@@ -62,7 +69,7 @@ x86_64-kernel-linux-6.6.56:
 x86_64-rootfs-alpine-3.18:
   extends: .x86_64-artifacts
   script:
-    - . scripts/x86_64-rootfs-alpine.sh
+    - ./scripts/alpine-rootfs.sh tar
   variables:
     CONTAINER: alpine:3.18-x86_64-base
 
diff --git a/scripts/x86_64-rootfs-alpine.sh b/scripts/alpine-rootfs.sh
similarity index 75%
rename from scripts/x86_64-rootfs-alpine.sh
rename to scripts/alpine-rootfs.sh
index b70b3a54ede5..c29c92d1c682 100755
--- a/scripts/x86_64-rootfs-alpine.sh
+++ b/scripts/alpine-rootfs.sh
@@ -1,4 +1,9 @@
+#!/bin/bash
+
+set -eu
+
 WORKDIR="${PWD}"
+COPYDIR="${WORKDIR}/binaries"
 
 apk update
 
@@ -56,5 +61,17 @@ passwd -d "root" root
 
 # Create rootfs
 cd /
-tar cvzf "${WORKDIR}/binaries/initrd.tar.gz" \
-    bin dev etc home init lib mnt opt root sbin usr var
+PATHS="bin dev etc home init lib mnt opt root sbin usr var"
+
+case $1 in
+    cpio)
+        find $PATHS | cpio -o -H newc | gzip > "${COPYDIR}/rootfs.cpio.gz"
+
+        # Print the contents for the build log
+        zcat "${COPYDIR}/rootfs.cpio.gz" | cpio -tv
+        ;;
+
+    tar)
+        tar cvzf "${COPYDIR}/initrd.tar.gz" $PATHS
+        ;;
+esac
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Apr 11 10:54:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 10:54:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.947029.1344760 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3C1c-00006a-Hg; Fri, 11 Apr 2025 10:54:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 947029.1344760; Fri, 11 Apr 2025 10:54: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 1u3C1c-00006T-D9; Fri, 11 Apr 2025 10:54:20 +0000
Received: by outflank-mailman (input) for mailman id 947029;
 Fri, 11 Apr 2025 10:54: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=U3ez=W5=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u3C1b-00006D-GV
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 10:54:19 +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 514be73f-16c3-11f0-9ead-5ba50f476ded;
 Fri, 11 Apr 2025 12:54:18 +0200 (CEST)
Received: by mail-wr1-x433.google.com with SMTP id
 ffacd0b85a97d-39c1efc4577so1006707f8f.0
 for <xen-devel@lists.xenproject.org>; Fri, 11 Apr 2025 03:54:18 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 ffacd0b85a97d-39eae96400dsm1703607f8f.11.2025.04.11.03.54.17
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 11 Apr 2025 03:54: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: 514be73f-16c3-11f0-9ead-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744368858; x=1744973658; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=WFYE7oR89OgS7wmrEALx0NVD7P/DNddXsGfdMj0wDnU=;
        b=WNrf1M6VYPx3Mq35se1kHKk9VcsejfCnHjWFMngTcW3f340e2W5LhaFEe1DXWfZ6so
         j6tze8v1/dcvU4NDh5HJiZpYTHq9EGQfIKOWuBzGKWG20/+LD+JnJjD3A6jJtk3rWh+k
         kD9o9VfOPeiEhgSxD6m/auCJl6BJSEYFeZ0Ng=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744368858; x=1744973658;
        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=WFYE7oR89OgS7wmrEALx0NVD7P/DNddXsGfdMj0wDnU=;
        b=KISY898xJ3ikBapO8rCs8mzuuU8dUUT/u61U30bsjEBhCXdL5wsY4s826D+oRjZbzb
         JJ3uX+6tRGovmuQ0jt+LFr1IwgZc5HIA02Woj8ziZJ5z7KJbUvoFPMxUIh2gVdkIyhdX
         gjFB6lCdjXjkSZ5k8+FrR7IJp/95dOoL5fk/YjcSlpXHxo5kgdm4zk57tc9sb36bueOS
         7BwJOUrRMsss3njtEX3GSvIeYHrbZ1xe/nBiDnyyjzXsM5shqG2QvIH2JN2ZOLaUVtv6
         UZqiMs6/7ZHGFUOo0YzJ5xTlrYPGZU56zq+YlsWj5eb9ljKaDECWMx+yO+vd6KTD0KIX
         opSw==
X-Gm-Message-State: AOJu0YzAoEHIlZkfuI/XlH1VV9XO/s1YXi7Avh1ss8RgesbF1vAOwQSH
	iRBRaZkJzJmLy5+ceDwVWss3aeRsM/b3OcZ1mNI3EX+d3X/n1GQGi4NvQvYw83SiI4E51zH6Fbv
	J
X-Gm-Gg: ASbGnct0A2e2za4jWbbNDvwu+kTm23Ks9MzWqezPZ470Iqj9kEYJUztrF0SpRLcBwic
	0vfytTTvorBueZiUaX6KzuCNU8WtWeTl+qDBiDkBc8JmSLqs7AADiHAnkAgiio0Nj7uU3Xmr1AC
	eC66IdtRpYyXdkdltaEgXULHgdWwDQ+RfuBAgcWvE1kFmByyrREIdXAMCZwl/yrubm3jSuHt4ZU
	CHQoal44JkMoC6NVt4HLsnM12TkolbPObi4hHnwJWupvRdp9hs3BK/Vv8ab+Q4AlUi+XX49MsXO
	fS/Mvf9UKXSDz8fiDuqlI8glptAkzLAOYOm7jLOIfYsRmA==
X-Google-Smtp-Source: AGHT+IG+0aHMf+gcjUPaF3A4Cr5jBdZdfnpiBWKiLTs/5HHicDRzCTmTEN6MoKG/Nvzcy95ESVaR1g==
X-Received: by 2002:a5d:588a:0:b0:390:f9d0:5e3 with SMTP id ffacd0b85a97d-39ea51ee9c3mr1885396f8f.1.1744368857883;
        Fri, 11 Apr 2025 03:54:17 -0700 (PDT)
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/5] x86/mm: account for the offset when performing subpage r/o MMIO access
Date: Fri, 11 Apr 2025 12:54:07 +0200
Message-ID: <20250411105411.22334-2-roger.pau@citrix.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <20250411105411.22334-1-roger.pau@citrix.com>
References: <20250411105411.22334-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The current logic in subpage_mmio_write_emulate() doesn't take into account
the page offset, and always performs the writes at offset 0 (start of the
page).

Fix this by accounting for the offset before performing the write.

Fixes: 8847d6e23f97 ('x86/mm: add API for marking only part of a MMIO page read only')
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/arch/x86/mm.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
index 4fecd37aeca0..1cf236516789 100644
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -5131,6 +5131,7 @@ static void subpage_mmio_write_emulate(
         return;
     }
 
+    addr += offset;
     switch ( len )
     {
     case 1:
-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Fri Apr 11 10:54:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 10:54:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.947030.1344763 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3C1c-00009u-Nl; Fri, 11 Apr 2025 10:54:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 947030.1344763; Fri, 11 Apr 2025 10:54: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 1u3C1c-00009Y-KJ; Fri, 11 Apr 2025 10:54:20 +0000
Received: by outflank-mailman (input) for mailman id 947030;
 Fri, 11 Apr 2025 10:54: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=U3ez=W5=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u3C1b-00006G-H0
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 10:54:19 +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 508a5674-16c3-11f0-9ffb-bf95429c2676;
 Fri, 11 Apr 2025 12:54:17 +0200 (CEST)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-39c1efc4577so1006694f8f.0
 for <xen-devel@lists.xenproject.org>; Fri, 11 Apr 2025 03:54:17 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 ffacd0b85a97d-39eaf445772sm1653640f8f.91.2025.04.11.03.54.16
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 11 Apr 2025 03:54: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: 508a5674-16c3-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744368857; x=1744973657; 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=LSyXE7wc9e2524lavEzjKTn0JnKserEyBzI8q+Ec3FQ=;
        b=csZy3alTZqCq5aP9sFj/LTnB3zWHbyWqz8xuLKkum7VDg5YP6YQr9BLu6K6+8/jTxr
         AL4WeKMnxjxvVGHcim7dxLX41PxYn0w3zqxQIrKeCEHAT3ITGiNEwJ+o7sMi2hrmzstX
         GI7S+V13Vx4IdSAhNfExFbib0S5xJd/RX3Ygc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744368857; x=1744973657;
        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=LSyXE7wc9e2524lavEzjKTn0JnKserEyBzI8q+Ec3FQ=;
        b=Xq/uszNIf8OEgHwFCErulmRarGh0dbLuCvikKzy4Indnn1SWPP+FL4ILE5kqryQ5Yc
         2Zn+LUrdDpNjdyPFBZsN0peLtUgFzWnOvTHuly3GwGP3MGx3L/PvqrQiRcdHK1AY1TKU
         eTfgGaSMM2Kp9llmw6AUPG1cQtF1AEpizLNB1TP/KF5ShyXPsn67dhkQ0DJl3jQSTO2E
         5NwvhVGSiQ9hYsOuDb8AKcB6b3Mts0qhgx+5UFjch/agElfYzo7nklg8FpsKQ35iXK8B
         GLNKHBmd4aVNHyFHHD4ITd7bAWcB6XvmSlFesrFxo0C+fuhxSWeQCF/dDMPDJOLM+VFG
         NTVA==
X-Gm-Message-State: AOJu0YzhUKWvNVcJggAiTghDxIyTJtgYcnjz2u0LjXAf5e368IDulxRt
	xvMqCh9Y4lDorPmVB4d4Tgzarg14eLF7Xntq9pKjNZJzVSSo5YomlOYmI5TpBWGjgZlQPq4MweA
	4
X-Gm-Gg: ASbGncu0jifXl1AJAdwIvEdsomqC7sqBayMMVq1STzDA5tL3MHT0G5eOqSJ+N+E4Eaw
	Z9Vug0cU6RbdZ1TOi/Dt2QOsSPOiyNfjFkxOSrfSzgvi73lT5llq+jVXzKbje9D5Xh18pyR5VbG
	6PCakFoH8R4xTCNctqDWDMcXw/Zdd81vLPmsk5jiGT0pNoUkZ3sOZJ7YZiDvHDgSXompYLI9T8h
	2+LETrPPzWItm6KRPYhQrL70MxkWfYulKn6OiGiAqJDNjprGvLUrHqRo+08UnMnW2Kc8WtXuLZO
	lz9UOxpETEmvH653aYtFTeQYze+L/UjUMoPqRjVh0hoTyg==
X-Google-Smtp-Source: AGHT+IElwm/oXB9fN0my5kbhtM/HKlwyU/UABYZbzfkHS6Q/YFgk/n8Vg6DGgSAZPtg4BEIsWYCs+w==
X-Received: by 2002:a5d:648a:0:b0:399:737f:4de3 with SMTP id ffacd0b85a97d-39ea521f9f5mr1650526f8f.29.1744368856742;
        Fri, 11 Apr 2025 03:54:16 -0700 (PDT)
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>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH 0/5] xen/x86: fix implementation of subpage r/o MMIO
Date: Fri, 11 Apr 2025 12:54:06 +0200
Message-ID: <20250411105411.22334-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.48.1
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Hello,

Following series include some bugfixes and improvements to the handling
of subpage r/o MMIO accesses.

First patch is a bugfix that applies to subpage accesses for both PV and
HVM.

Patch 2 introduces a helper to reduce code duplication when performing
MMIO accesses.

Patch 3 is a bugfix for using subpage in HVM guest, and patch 4 is an
optimization to only register the HVM subpage handler when needed.

Finally patch 5 moves some PV only code to a PV specific file.

Thanks, Roger.

Roger Pau Monne (5):
  x86/mm: account for the offset when performing subpage r/o MMIO access
  xen/io: provide helpers for multi size MMIO accesses
  x86/hvm: fix handling of accesses to partial r/o MMIO pages
  x86/hvm: only register the r/o subpage ops when needed
  x86/mm: move mmio_ro_emulated_write() to PV only file

 xen/arch/x86/hvm/emulate.c             |  47 +-----------
 xen/arch/x86/hvm/hvm.c                 |  90 +++++++++++++++++++---
 xen/arch/x86/hvm/vmsi.c                |  47 +-----------
 xen/arch/x86/include/asm/hvm/emulate.h |   1 -
 xen/arch/x86/include/asm/mm.h          |  21 ++---
 xen/arch/x86/mm.c                      | 102 ++++++-------------------
 xen/arch/x86/pv/ro-page-fault.c        |  34 +++++++++
 xen/drivers/vpci/msix.c                |  47 +-----------
 xen/include/xen/io.h                   |  63 +++++++++++++++
 9 files changed, 218 insertions(+), 234 deletions(-)
 create mode 100644 xen/include/xen/io.h

-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Fri Apr 11 10:54:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 10:54:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.947031.1344779 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3C1e-0000b0-Tu; Fri, 11 Apr 2025 10:54:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 947031.1344779; Fri, 11 Apr 2025 10: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 1u3C1e-0000at-Qr; Fri, 11 Apr 2025 10:54:22 +0000
Received: by outflank-mailman (input) for mailman id 947031;
 Fri, 11 Apr 2025 10: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=U3ez=W5=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u3C1d-00006G-No
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 10:54: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 51f9e349-16c3-11f0-9ffb-bf95429c2676;
 Fri, 11 Apr 2025 12:54:20 +0200 (CEST)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-39c30d9085aso1117000f8f.1
 for <xen-devel@lists.xenproject.org>; Fri, 11 Apr 2025 03:54:20 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 ffacd0b85a97d-39eaf43cc72sm1683094f8f.67.2025.04.11.03.54.18
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 11 Apr 2025 03:54:18 -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: 51f9e349-16c3-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744368859; x=1744973659; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=8jkOKV9f4wIs23OL1gwfLbIIZcMjYz7cTYPK8gN12NE=;
        b=HAxexIbzVJONbPT6WhLGRJZqjcsoEoXWiDR6ucwG1e92JA6vYiJcgqgdrvsGVx3gyv
         ONA3ymr6fUfIaKV6xmZIHwO6RGTu+BK/KZn4cIh1t0XCdVtLigtN2PcXYrUuhPWozATd
         exBuiuhq1OzfahzNVVQARM4Z2cObSlP5f1zFg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744368859; x=1744973659;
        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=8jkOKV9f4wIs23OL1gwfLbIIZcMjYz7cTYPK8gN12NE=;
        b=iJZrHJLtkECOYqZvFRBtqlucfDP+MM//ehviayw5VDzH3qW9EhqL40u/VFxKVxUwlM
         SPMnGHOCIXHu9tlOUoyodLtwb9PfdYOdK6owZMpiIK2Gwm63OzQVcxKJ//G1orHVjUCi
         WlOcnpXJYPNYysYk0hbONCxyoBOyjjzF0g0WpdCOYpK94b1fJN8+fsFEk6B07t2iKLFP
         hY/FvrwNVvSYeDBC+4ll/64enJafxFnQEVMMPC/WJiATM1RDhXVs4ltVmJagZRPwBGtP
         bRXTzJaqKvyF50NRZ6yK0vbTNJ5o4uTCBNC83cI0F1QUg3dilqkv9affAIfRgr48kmQx
         SQJA==
X-Gm-Message-State: AOJu0Yz50dfYnrR4XAyDU4EKIIUzmoEQCUBfw6hg9I6elmIEbvn0m4ev
	Mt7bUeQN2kHW7STK/44CpqV0jWC7F9DEkE6gEMwk7zwQSOVE+DlXP3gn05H99YJOZdQUQcBmvC0
	7
X-Gm-Gg: ASbGncv6Z2rcx9SMGzzSqlNrnu9zNqJimtSO/OexE7wiU/tLuSb/huMse/YuUnUaL5D
	+qG0noyzpgeDfqTePP45+VVi13tjY6o8N3Lv0ycQ0mnTl95vi8u13jFjuJ/Sfao3ITRV6OQ0LFe
	qBaZsFVeFuYBAPmbyCBkcsN/G5e54fw8n0uMS8HWZY9FZMaNDs70AAUU6JIx0TLB4pc2xBxhBM/
	SyjxnYK/evd0Krg6tZugA4W4Vdn8sEPU1oM3TrwCQi7z+ucojjRVmV8jHva84OslCtdjh2RnxEJ
	UXcWavqRVBCzqRoHng60Z2oeV6B5RJiZSz5Sw62m05OkCNQMl7cxhpVP
X-Google-Smtp-Source: AGHT+IEalTEBHnBqdw6GEGhLxDVi54GZZQNzRPx8BV3uHkoWl8+oFfZLmR2QsPzNm7+zvZ5QyNA7zw==
X-Received: by 2002:a05:6000:144e:b0:39c:1f11:ead with SMTP id ffacd0b85a97d-39ea5213077mr1863723f8f.26.1744368859090;
        Fri, 11 Apr 2025 03:54:19 -0700 (PDT)
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>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH 2/5] xen/io: provide helpers for multi size MMIO accesses
Date: Fri, 11 Apr 2025 12:54:08 +0200
Message-ID: <20250411105411.22334-3-roger.pau@citrix.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <20250411105411.22334-1-roger.pau@citrix.com>
References: <20250411105411.22334-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Several handlers have the same necessity of reading from an MMIO region
using 1, 2, 4 or 8 bytes accesses.  So far this has been open-coded in the
function itself.  Instead provide a new handler that encapsulates the
accesses.

Since the added helpers are not architecture specific, introduce a new
generic io.h header.

No functional change intended.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/arch/x86/hvm/vmsi.c | 47 ++----------------------------
 xen/arch/x86/mm.c       | 32 +++++----------------
 xen/drivers/vpci/msix.c | 47 ++----------------------------
 xen/include/xen/io.h    | 63 +++++++++++++++++++++++++++++++++++++++++
 4 files changed, 76 insertions(+), 113 deletions(-)
 create mode 100644 xen/include/xen/io.h

diff --git a/xen/arch/x86/hvm/vmsi.c b/xen/arch/x86/hvm/vmsi.c
index fd83abb929ec..61b89834d97d 100644
--- a/xen/arch/x86/hvm/vmsi.c
+++ b/xen/arch/x86/hvm/vmsi.c
@@ -24,6 +24,7 @@
  * Will be merged it with virtual IOAPIC logic, since most is the same
 */
 
+#include <xen/io.h>
 #include <xen/types.h>
 #include <xen/mm.h>
 #include <xen/xmalloc.h>
@@ -304,28 +305,7 @@ static void adjacent_read(
 
     hwaddr = fix_to_virt(fixmap_idx) + PAGE_OFFSET(address);
 
-    switch ( len )
-    {
-    case 1:
-        *pval = readb(hwaddr);
-        break;
-
-    case 2:
-        *pval = readw(hwaddr);
-        break;
-
-    case 4:
-        *pval = readl(hwaddr);
-        break;
-
-    case 8:
-        *pval = readq(hwaddr);
-        break;
-
-    default:
-        ASSERT_UNREACHABLE();
-        break;
-    }
+    *pval = read_mmio(hwaddr, len);
 }
 
 static void adjacent_write(
@@ -344,28 +324,7 @@ static void adjacent_write(
 
     hwaddr = fix_to_virt(fixmap_idx) + PAGE_OFFSET(address);
 
-    switch ( len )
-    {
-    case 1:
-        writeb(val, hwaddr);
-        break;
-
-    case 2:
-        writew(val, hwaddr);
-        break;
-
-    case 4:
-        writel(val, hwaddr);
-        break;
-
-    case 8:
-        writeq(val, hwaddr);
-        break;
-
-    default:
-        ASSERT_UNREACHABLE();
-        break;
-    }
+    write_mmio(hwaddr, val, len);
 }
 
 static int cf_check msixtbl_read(
diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
index 1cf236516789..989e62e7ce6f 100644
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -95,6 +95,7 @@
 #include <xen/guest_access.h>
 #include <xen/hypercall.h>
 #include <xen/init.h>
+#include <xen/io.h>
 #include <xen/iocap.h>
 #include <xen/ioreq.h>
 #include <xen/irq.h>
@@ -116,7 +117,6 @@
 #include <asm/flushtlb.h>
 #include <asm/guest.h>
 #include <asm/idt.h>
-#include <asm/io.h>
 #include <asm/io_apic.h>
 #include <asm/ldt.h>
 #include <asm/mem_sharing.h>
@@ -5102,7 +5102,7 @@ static void __iomem *subpage_mmio_map_page(
 static void subpage_mmio_write_emulate(
     mfn_t mfn,
     unsigned int offset,
-    const void *data,
+    unsigned long data,
     unsigned int len)
 {
     struct subpage_ro_range *entry;
@@ -5115,7 +5115,6 @@ static void subpage_mmio_write_emulate(
 
     if ( test_bit(offset / MMIO_RO_SUBPAGE_GRAN, entry->ro_elems) )
     {
- write_ignored:
         gprintk(XENLOG_WARNING,
                 "ignoring write to R/O MMIO 0x%"PRI_mfn"%03x len %u\n",
                 mfn_x(mfn), offset, len);
@@ -5131,26 +5130,7 @@ static void subpage_mmio_write_emulate(
         return;
     }
 
-    addr += offset;
-    switch ( len )
-    {
-    case 1:
-        writeb(*(const uint8_t*)data, addr);
-        break;
-    case 2:
-        writew(*(const uint16_t*)data, addr);
-        break;
-    case 4:
-        writel(*(const uint32_t*)data, addr);
-        break;
-    case 8:
-        writeq(*(const uint64_t*)data, addr);
-        break;
-    default:
-        /* mmio_ro_emulated_write() already validated the size */
-        ASSERT_UNREACHABLE();
-        goto write_ignored;
-    }
+    write_mmio(addr + offset, data, len);
 }
 
 #ifdef CONFIG_HVM
@@ -5185,18 +5165,20 @@ int cf_check mmio_ro_emulated_write(
     struct x86_emulate_ctxt *ctxt)
 {
     struct mmio_ro_emulate_ctxt *mmio_ro_ctxt = ctxt->data;
+    unsigned long data = 0;
 
     /* Only allow naturally-aligned stores at the original %cr2 address. */
     if ( ((bytes | offset) & (bytes - 1)) || !bytes ||
-         offset != mmio_ro_ctxt->cr2 )
+         offset != mmio_ro_ctxt->cr2 || bytes > sizeof(data) )
     {
         gdprintk(XENLOG_WARNING, "bad access (cr2=%lx, addr=%lx, bytes=%u)\n",
                 mmio_ro_ctxt->cr2, offset, bytes);
         return X86EMUL_UNHANDLEABLE;
     }
 
+    memcpy(&data, p_data, bytes);
     subpage_mmio_write_emulate(mmio_ro_ctxt->mfn, PAGE_OFFSET(offset),
-                               p_data, bytes);
+                               data, bytes);
 
     return X86EMUL_OKAY;
 }
diff --git a/xen/drivers/vpci/msix.c b/xen/drivers/vpci/msix.c
index 6bd8c55bb48e..6455f2a03a01 100644
--- a/xen/drivers/vpci/msix.c
+++ b/xen/drivers/vpci/msix.c
@@ -17,6 +17,7 @@
  * License along with this program; If not, see <http://www.gnu.org/licenses/>.
  */
 
+#include <xen/io.h>
 #include <xen/sched.h>
 #include <xen/vpci.h>
 
@@ -344,28 +345,7 @@ static int adjacent_read(const struct domain *d, const struct vpci_msix *msix,
         return X86EMUL_OKAY;
     }
 
-    switch ( len )
-    {
-    case 1:
-        *data = readb(mem + PAGE_OFFSET(addr));
-        break;
-
-    case 2:
-        *data = readw(mem + PAGE_OFFSET(addr));
-        break;
-
-    case 4:
-        *data = readl(mem + PAGE_OFFSET(addr));
-        break;
-
-    case 8:
-        *data = readq(mem + PAGE_OFFSET(addr));
-        break;
-
-    default:
-        ASSERT_UNREACHABLE();
-        break;
-    }
+    *data = read_mmio(mem + PAGE_OFFSET(addr), len);
     spin_unlock(&vpci->lock);
 
     return X86EMUL_OKAY;
@@ -493,28 +473,7 @@ static int adjacent_write(const struct domain *d, const struct vpci_msix *msix,
         return X86EMUL_OKAY;
     }
 
-    switch ( len )
-    {
-    case 1:
-        writeb(data, mem + PAGE_OFFSET(addr));
-        break;
-
-    case 2:
-        writew(data, mem + PAGE_OFFSET(addr));
-        break;
-
-    case 4:
-        writel(data, mem + PAGE_OFFSET(addr));
-        break;
-
-    case 8:
-        writeq(data, mem + PAGE_OFFSET(addr));
-        break;
-
-    default:
-        ASSERT_UNREACHABLE();
-        break;
-    }
+    write_mmio(mem + PAGE_OFFSET(addr), data, len);
     spin_unlock(&vpci->lock);
 
     return X86EMUL_OKAY;
diff --git a/xen/include/xen/io.h b/xen/include/xen/io.h
new file mode 100644
index 000000000000..5c360ce9dee2
--- /dev/null
+++ b/xen/include/xen/io.h
@@ -0,0 +1,63 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Generic helpers for doing MMIO accesses.
+ *
+ * Copyright (c) 2025 Cloud Software Group
+ */
+#ifndef XEN_IO_H
+#define XEN_IO_H
+
+#include <xen/bug.h>
+
+#include <asm/io.h>
+
+static inline uint64_t read_mmio(const volatile void __iomem *mem,
+                                 unsigned int size)
+{
+    switch ( size )
+    {
+    case 1:
+        return readb(mem);
+
+    case 2:
+        return readw(mem);
+
+    case 4:
+        return readl(mem);
+
+    case 8:
+        return readq(mem);
+    }
+
+    ASSERT_UNREACHABLE();
+    return ~0UL;
+}
+
+static inline void write_mmio(volatile void __iomem *mem, uint64_t data,
+                              unsigned int size)
+{
+    switch ( size )
+    {
+    case 1:
+        writeb(data, mem);
+        break;
+
+    case 2:
+        writew(data, mem);
+        break;
+
+    case 4:
+        writel(data, mem);
+        break;
+
+    case 8:
+        writeq(data, mem);
+        break;
+
+    default:
+        ASSERT_UNREACHABLE();
+        break;
+    }
+}
+
+#endif /* XEN_IO_H */
-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Fri Apr 11 10:54:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 10:54:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.947032.1344789 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3C1h-0000sp-87; Fri, 11 Apr 2025 10:54:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 947032.1344789; Fri, 11 Apr 2025 10:54: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 1u3C1h-0000sa-5O; Fri, 11 Apr 2025 10:54:25 +0000
Received: by outflank-mailman (input) for mailman id 947032;
 Fri, 11 Apr 2025 10:54:23 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=U3ez=W5=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u3C1e-00006D-UF
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 10:54:22 +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 53807e62-16c3-11f0-9ead-5ba50f476ded;
 Fri, 11 Apr 2025 12:54:22 +0200 (CEST)
Received: by mail-wr1-x433.google.com with SMTP id
 ffacd0b85a97d-3913d129c1aso1272803f8f.0
 for <xen-devel@lists.xenproject.org>; Fri, 11 Apr 2025 03:54:22 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 5b1f17b1804b1-43f23572c43sm82403165e9.25.2025.04.11.03.54.20
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 11 Apr 2025 03:54:21 -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: 53807e62-16c3-11f0-9ead-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744368862; x=1744973662; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=CFhz/3cflKTytjOy30j+Pi6jdQU9sMKV9FECJ7J0Ano=;
        b=Ni+fVMoCQ9nt9H2ozIjd0Wv0GypwFdAaBt96TuuMdhc4mBWeMUMIpk6SfhPR2DFipM
         7FJWPY2Ch5EpqV1SiBvNszHwnmR/UlZyIA/8VnKTLSvxDOajfLDNbM1IzQ8QtZCIAKTH
         M7fu/ZO536nLXBvjhY/VA/ERyaj20Wx/VlJnk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744368862; x=1744973662;
        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=CFhz/3cflKTytjOy30j+Pi6jdQU9sMKV9FECJ7J0Ano=;
        b=evSWsJhjyoEayctY5I4obERNwPBs1/X1JyAb1jU8yHTcdVki111S2LJ0mdCcF98p3Q
         4C7D6cMP9mQubsw3lEkc0hlhGypmvvapq2qYnVLh2kAkUTyFhFfknQJxaZ2VHFVYlx0H
         +RRuC/0MPk4v7tgkDKnBhozl/HTR3vY0zK5jyp5/QslYwhn47Aa8jdTMXeUtSuT489kB
         PeMcebdshjabMMiTbY7Ht4eCrrhv0GDY00OGY47A8mp2GOLEDsAc8oUUctGyImHKm/Uw
         3ulLCl3qtqDnnd6MlMTOPxrEcIguZviWlbacs8Y1dTJxXtBTaEiGdx9YP81NDLaiYUqf
         PfEA==
X-Gm-Message-State: AOJu0YwuLbHeoFoftQbwKgDB8DbQE+7PfggYJUhFfdyEBB/rQzZdFTYs
	Qn979/8vHLdULVfu4H+i5escx/YtbfHUTD7IRLk4Bjej0jRRemr1srXglJYzXXeCNtogBl3fWFZ
	h
X-Gm-Gg: ASbGncvEpU6BBYsCiu17XZ551ZuUaEiLN/qS6Wjto5/zsOwnO9clVA4FjYZvyJcS9ay
	dRncuIOFh5icCJQB16Nsaz6MmWnTX54HriBB7wJ2IyiQorhW6OxldDLWWNmpt3EAPHCOX6OQfnC
	raBDqnlQ3LZTMDceSQUfvS9qmFrhcyUtryqCCc56NtiwUCOpCauL8LToFAUIrBmzr+qGRFXDdDR
	9EsRoCDLcNzGmuTR9nqfwXzNMY8oUptcqvQq1RiwzDtqRoy3DXYg7JE/p6Ej5fle2Kq10LTVUaT
	jhaj6j4PAdzZOeqFWbTz3YqLM2b9EfXut/qWF6acFbtIbw==
X-Google-Smtp-Source: AGHT+IEbyOBim1v2/GKVwjHB+iS4/e2fy+s9USNITR5vi4Tk/b0C1eOSXzyhtYa89axBqOagWFkDew==
X-Received: by 2002:a05:6000:420d:b0:39b:f44b:e176 with SMTP id ffacd0b85a97d-39d8f4dbfd5mr5817723f8f.24.1744368861666;
        Fri, 11 Apr 2025 03:54:21 -0700 (PDT)
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 4/5] x86/hvm: only register the r/o subpage ops when needed
Date: Fri, 11 Apr 2025 12:54:10 +0200
Message-ID: <20250411105411.22334-5-roger.pau@citrix.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <20250411105411.22334-1-roger.pau@citrix.com>
References: <20250411105411.22334-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

MMIO operation handlers can be expensive to process, hence attempt to
register only those that will be needed by the domain.

Subpage r/o MMIO regions are added exclusively at boot, further limit their
addition to strictly before the initial domain gets created, so by the time
initial domain creation happens Xen knows whether subpage is required or
not.  This allows only registering the MMIO handler when there are
subpage regions to handle.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
Could possibly be part of the previous patch, but strictly speaking is an
improvement, as even before the previous patch subpage r/o was always
called even when no subpage regions are registered.
---
 xen/arch/x86/hvm/hvm.c        |  5 +++--
 xen/arch/x86/include/asm/mm.h |  1 +
 xen/arch/x86/mm.c             | 16 ++++++++++++++++
 3 files changed, 20 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index 21f005b0947c..1a5dfc07813d 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -764,8 +764,9 @@ int hvm_domain_initialise(struct domain *d,
 
     register_portio_handler(d, XEN_HVM_DEBUGCONS_IOPORT, 1, hvm_print_line);
 
-    /* Handler for r/o MMIO subpage accesses. */
-    register_mmio_handler(d, &subpage_mmio_ops);
+    if ( subpage_ro_active() )
+        /* Handler for r/o MMIO subpage accesses. */
+        register_mmio_handler(d, &subpage_mmio_ops);
 
     if ( hvm_tsc_scaling_supported )
         d->arch.hvm.tsc_scaling_ratio = hvm_default_tsc_scaling_ratio;
diff --git a/xen/arch/x86/include/asm/mm.h b/xen/arch/x86/include/asm/mm.h
index c2e9ef6e5023..aeb8ebcf2d56 100644
--- a/xen/arch/x86/include/asm/mm.h
+++ b/xen/arch/x86/include/asm/mm.h
@@ -561,6 +561,7 @@ struct subpage_ro_range {
     void __iomem *mapped;
     DECLARE_BITMAP(ro_elems, PAGE_SIZE / MMIO_RO_SUBPAGE_GRAN);
 };
+bool subpage_ro_active(void);
 struct subpage_ro_range *subpage_mmio_find_page(mfn_t mfn);
 void __iomem *subpage_mmio_map_page(struct subpage_ro_range *entry);
 void subpage_mmio_write_emulate(
diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
index f59c7816fba5..3bc6304d831c 100644
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -4922,6 +4922,11 @@ long arch_memory_op(unsigned long cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
     return rc;
 }
 
+bool subpage_ro_active(void)
+{
+    return !list_empty(&subpage_ro_ranges);
+}
+
 struct subpage_ro_range *subpage_mmio_find_page(mfn_t mfn)
 {
     struct subpage_ro_range *entry;
@@ -5011,6 +5016,17 @@ int __init subpage_mmio_ro_add(
          !IS_ALIGNED(size, MMIO_RO_SUBPAGE_GRAN) )
         return -EINVAL;
 
+    /*
+     * Force all r/o subregions to be registered before initial domain
+     * creation, so that the emulation handlers can be added only when there
+     * are pages registered.
+     */
+    if ( system_state >= SYS_STATE_smp_boot )
+    {
+        ASSERT_UNREACHABLE();
+        return -EILSEQ;
+    }
+
     if ( !size )
         return 0;
 
-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Fri Apr 11 10:54:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 10:54:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.947033.1344796 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3C1h-0000wP-MK; Fri, 11 Apr 2025 10:54:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 947033.1344796; Fri, 11 Apr 2025 10:54: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 1u3C1h-0000vu-E7; Fri, 11 Apr 2025 10:54:25 +0000
Received: by outflank-mailman (input) for mailman id 947033;
 Fri, 11 Apr 2025 10:54: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=U3ez=W5=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u3C1f-00006G-3A
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 10:54:23 +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 52ac9609-16c3-11f0-9ffb-bf95429c2676;
 Fri, 11 Apr 2025 12:54:21 +0200 (CEST)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-43d0782d787so12259175e9.0
 for <xen-devel@lists.xenproject.org>; Fri, 11 Apr 2025 03:54:21 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 5b1f17b1804b1-43f207cb88asm81987055e9.37.2025.04.11.03.54.19
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 11 Apr 2025 03:54: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: 52ac9609-16c3-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744368860; x=1744973660; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=wj85dH1SZWtTaTOVDhEbnrtTJVzaPhDihu61l9X/kIU=;
        b=lzJaCjuv7P1wOwO+BLmp31+4vb6tBHPDdxil2pVv46YowGmwFiWS77SlIMMMmfM02n
         TMzfH46mpvJoDXEjOoaN8SWLzJxK7GfAHvy80adfGzNjoWGzow5eLqtR/IJx8pOWxG4h
         6TSkR9Jb9iHqwfJZMypLxRY6P39btMZGc1pxw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744368860; x=1744973660;
        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=wj85dH1SZWtTaTOVDhEbnrtTJVzaPhDihu61l9X/kIU=;
        b=jmMGN2Hh6E8Dx7JZgN8I4taWvohDPS/+SVNBdDLU4juQHWV/zmQqWaDgDW3I1JQzz+
         E4McdcUCjlaqSuwq0opb9t8MOmxHNzGPZ6gc0bg4P1UOwLrWrX3raAhW9Bf0QkFxTNQl
         0MONhoPBwYYXYBVU7sXbHpvAG84laDbq9kCj9Povw/uIAbLZ2soVo6efX+lj0wuKFzbs
         Xklcda08gLZovayCmzVxEVPPstl7zijGJX06pHQJxXuPStU7W+mZoHW1TybQq8VFnNM0
         515o9U320Q9aL2/ERTEb5ITL3EYdf/2OK1Q97A17o8hD1noT9YGhW8HaYapLDdy2dkbj
         EROw==
X-Gm-Message-State: AOJu0YyThPO6DWBnRbm/DD1pLmR052svUCoQnY57EDMpioX37I25hlUH
	2/uHKZlcIQ1EbDLT9KNFQ9boVU5JeRrZ4IsD+4Rjqff6UtU0fpyzgfvWHWDBCjCI2O0sNtORAaA
	X
X-Gm-Gg: ASbGncs6Tz1AVjhnJ9I8zzCLloI6QgIoI3aY7auah106hK2CFXfJEzuE1ZaB+dVI6wN
	qwh1oXqPZN9vvPsLw8f6SISqn3aPoZ7ZNCsFC1/nqVh75sdj2YPegjUMRVHMT5q0ym2OEKPNqKQ
	ILXNEMylzyqpIav1mo9mKTEXjEnT7SZlR79rD0Y4/5Ig3cWkJ4FfTOD2OG0taOidptKZ5qGL7Q7
	3DodIcHJYDObeeR/q6UllexFKogFfSr8YIBXIxtcKQbiNpPa5py9gM0Zalw1pHWcDLEOpK7lqab
	tjREA1P4zJgtDUPsl22uPRBorKpRLoKM2d/1V3C1mfxNew==
X-Google-Smtp-Source: AGHT+IEfHs7ikBhpkat3gYs4vuYPvNM6dYkC6mNFIpSJo4LfRBMWesSf/bFHKvs68232r+u3lYEpkQ==
X-Received: by 2002:a05:600c:1e0a:b0:43c:fa0e:471a with SMTP id 5b1f17b1804b1-43f3a9291d9mr14900975e9.5.1744368860164;
        Fri, 11 Apr 2025 03:54:20 -0700 (PDT)
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/5] x86/hvm: fix handling of accesses to partial r/o MMIO pages
Date: Fri, 11 Apr 2025 12:54:09 +0200
Message-ID: <20250411105411.22334-4-roger.pau@citrix.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <20250411105411.22334-1-roger.pau@citrix.com>
References: <20250411105411.22334-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The current logic to handle accesses to MMIO pages partially read-only is
based on the (now removed) logic used to handle accesses to the r/o MMCFG
region(s) for PVH v1 dom0.  However that has issues when running on AMD
hardware, as in that case the guest linear address that triggered the fault
is not provided as part of the VM exit.  This caused
mmio_ro_emulated_write() to always fail before calling
subpage_mmio_write_emulate() when running on AMD and called from an HVM
context.

Take a different approach and convert the handling of partial read-only
MMIO page accesses into an HVM MMIO ops handler, as that's the more natural
way to handle this kind of emulation for HVM domains.

This allows getting rid of hvm_emulate_one_mmio() and it's single cal site
in hvm_hap_nested_page_fault().

Note a small adjustment is needed to the `pf-fixup` dom0 PVH logic: avoid
attempting to fixup faults resulting from accesses to read-only MMIO
regions, as handling of those accesses is now done by handle_mmio().

Fixes: 33c19df9a5a0 ('x86/PCI: intercept accesses to RO MMIO from dom0s in HVM containers')
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
The fixes tag is maybe a bit wonky, it's either this or:

8847d6e23f97 ('x86/mm: add API for marking only part of a MMIO page read only')

However the addition of subpage r/o access handling to the existing
mmio_ro_emulated_write() function was done based on the assumption that the
current code was working - which turned out to not be the case for AMD,
hence my preference for blaming the commit that actually introduced the
broken logic.
---
 xen/arch/x86/hvm/emulate.c             | 47 +-------------
 xen/arch/x86/hvm/hvm.c                 | 89 +++++++++++++++++++++++---
 xen/arch/x86/include/asm/hvm/emulate.h |  1 -
 xen/arch/x86/include/asm/mm.h          | 12 ++++
 xen/arch/x86/mm.c                      | 37 +----------
 5 files changed, 96 insertions(+), 90 deletions(-)

diff --git a/xen/arch/x86/hvm/emulate.c b/xen/arch/x86/hvm/emulate.c
index 9fff1b82f7c6..ed888f0b49d3 100644
--- a/xen/arch/x86/hvm/emulate.c
+++ b/xen/arch/x86/hvm/emulate.c
@@ -370,7 +370,8 @@ static int hvmemul_do_io(
         /* If there is no suitable backing DM, just ignore accesses */
         if ( !s )
         {
-            if ( is_mmio && is_hardware_domain(currd) )
+            if ( is_mmio && is_hardware_domain(currd) &&
+                 !rangeset_contains_singleton(mmio_ro_ranges, PFN_DOWN(addr)) )
             {
                 /*
                  * PVH dom0 is likely missing MMIO mappings on the p2m, due to
@@ -2856,50 +2857,6 @@ int hvm_emulate_one(
     return _hvm_emulate_one(hvmemul_ctxt, &hvm_emulate_ops, completion);
 }
 
-int hvm_emulate_one_mmio(unsigned long mfn, unsigned long gla)
-{
-    static const struct x86_emulate_ops hvm_ro_emulate_ops_mmio = {
-        .read       = x86emul_unhandleable_rw,
-        .insn_fetch = hvmemul_insn_fetch,
-        .write      = mmio_ro_emulated_write,
-        .validate   = hvmemul_validate,
-    };
-    struct mmio_ro_emulate_ctxt mmio_ro_ctxt = { .cr2 = gla, .mfn = _mfn(mfn) };
-    struct hvm_emulate_ctxt ctxt;
-    unsigned int seg, bdf;
-    int rc;
-
-    if ( pci_ro_mmcfg_decode(mfn, &seg, &bdf) )
-    {
-        /* Should be always handled by vPCI for PVH dom0. */
-        gdprintk(XENLOG_ERR, "unhandled MMCFG access for %pp\n",
-                 &PCI_SBDF(seg, bdf));
-        ASSERT_UNREACHABLE();
-        return X86EMUL_UNHANDLEABLE;
-    }
-
-    hvm_emulate_init_once(&ctxt, x86_insn_is_mem_write,
-                          guest_cpu_user_regs());
-    ctxt.ctxt.data = &mmio_ro_ctxt;
-
-    switch ( rc = _hvm_emulate_one(&ctxt, &hvm_ro_emulate_ops_mmio,
-                                   VIO_no_completion) )
-    {
-    case X86EMUL_UNHANDLEABLE:
-    case X86EMUL_UNIMPLEMENTED:
-        hvm_dump_emulation_state(XENLOG_G_WARNING, "r/o MMIO", &ctxt, rc);
-        break;
-    case X86EMUL_EXCEPTION:
-        hvm_inject_event(&ctxt.ctxt.event);
-        /* fallthrough */
-    default:
-        hvm_emulate_writeback(&ctxt);
-        break;
-    }
-
-    return rc;
-}
-
 void hvm_emulate_one_vm_event(enum emul_kind kind, unsigned int trapnr,
     unsigned int errcode)
 {
diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index 6f1174c5127e..21f005b0947c 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -8,6 +8,7 @@
  */
 
 #include <xen/init.h>
+#include <xen/io.h>
 #include <xen/ioreq.h>
 #include <xen/lib.h>
 #include <xen/trace.h>
@@ -35,7 +36,6 @@
 #include <asm/current.h>
 #include <asm/debugreg.h>
 #include <asm/e820.h>
-#include <asm/io.h>
 #include <asm/regs.h>
 #include <asm/cpufeature.h>
 #include <asm/processor.h>
@@ -585,9 +585,81 @@ static int cf_check hvm_print_line(
     return X86EMUL_OKAY;
 }
 
+static int cf_check subpage_mmio_accept(struct vcpu *v, unsigned long addr)
+{
+    p2m_type_t t;
+    mfn_t mfn = get_gfn_query_unlocked(v->domain, addr, &t);
+
+    return !mfn_eq(mfn, INVALID_MFN) && t == p2m_mmio_direct &&
+           !!subpage_mmio_find_page(mfn);
+}
+
+static int cf_check subpage_mmio_read(
+    struct vcpu *v, unsigned long addr, unsigned int len, unsigned long *data)
+{
+    struct domain *d = v->domain;
+    p2m_type_t t;
+    mfn_t mfn = get_gfn_query(d, addr, &t);
+    struct subpage_ro_range *entry;
+    volatile void __iomem *mem;
+
+    *data = ~0UL;
+
+    if ( mfn_eq(mfn, INVALID_MFN) || t != p2m_mmio_direct )
+    {
+        put_gfn(d, addr);
+        return X86EMUL_RETRY;
+    }
+
+    entry = subpage_mmio_find_page(mfn);
+    if ( !entry )
+    {
+        put_gfn(d, addr);
+        return X86EMUL_RETRY;
+    }
+
+    mem = subpage_mmio_map_page(entry);
+    if ( !mem )
+    {
+        put_gfn(d, addr);
+        gprintk(XENLOG_ERR, "Failed to map page for MMIO read at %#lx\n",
+                mfn_to_maddr(mfn) + PAGE_OFFSET(addr));
+        return X86EMUL_OKAY;
+    }
+
+    *data = read_mmio(mem + PAGE_OFFSET(addr), len);
+
+    put_gfn(d, addr);
+    return X86EMUL_OKAY;
+}
+
+static int cf_check subpage_mmio_write(
+    struct vcpu *v, unsigned long addr, unsigned int len, unsigned long data)
+{
+    struct domain *d = v->domain;
+    p2m_type_t t;
+    mfn_t mfn = get_gfn_query(d, addr, &t);
+
+    if ( mfn_eq(mfn, INVALID_MFN) || t != p2m_mmio_direct )
+    {
+        put_gfn(d, addr);
+        return X86EMUL_RETRY;
+    }
+
+    subpage_mmio_write_emulate(mfn, PAGE_OFFSET(addr), data, len);
+
+    put_gfn(d, addr);
+    return X86EMUL_OKAY;
+}
+
 int hvm_domain_initialise(struct domain *d,
                           const struct xen_domctl_createdomain *config)
 {
+    static const struct hvm_mmio_ops subpage_mmio_ops = {
+        .check = subpage_mmio_accept,
+        .read = subpage_mmio_read,
+        .write = subpage_mmio_write,
+    };
     unsigned int nr_gsis;
     int rc;
 
@@ -692,6 +764,9 @@ int hvm_domain_initialise(struct domain *d,
 
     register_portio_handler(d, XEN_HVM_DEBUGCONS_IOPORT, 1, hvm_print_line);
 
+    /* Handler for r/o MMIO subpage accesses. */
+    register_mmio_handler(d, &subpage_mmio_ops);
+
     if ( hvm_tsc_scaling_supported )
         d->arch.hvm.tsc_scaling_ratio = hvm_default_tsc_scaling_ratio;
 
@@ -1981,7 +2056,9 @@ int hvm_hap_nested_page_fault(paddr_t gpa, unsigned long gla,
      */
     if ( (p2mt == p2m_mmio_dm) ||
          (npfec.write_access &&
-          (p2m_is_discard_write(p2mt) || (p2mt == p2m_ioreq_server))) )
+          (p2m_is_discard_write(p2mt) || (p2mt == p2m_ioreq_server) ||
+           /* MMIO entries can be r/o if the target mfn is in mmio_ro_ranges. */
+           (p2mt == p2m_mmio_direct))) )
     {
         if ( !handle_mmio_with_translation(gla, gfn, npfec) )
             hvm_inject_hw_exception(X86_EXC_GP, 0);
@@ -2033,14 +2110,6 @@ int hvm_hap_nested_page_fault(paddr_t gpa, unsigned long gla,
         goto out_put_gfn;
     }
 
-    if ( (p2mt == p2m_mmio_direct) && npfec.write_access && npfec.present &&
-         (is_hardware_domain(currd) || subpage_mmio_write_accept(mfn, gla)) &&
-         (hvm_emulate_one_mmio(mfn_x(mfn), gla) == X86EMUL_OKAY) )
-    {
-        rc = 1;
-        goto out_put_gfn;
-    }
-
     /* If we fell through, the vcpu will retry now that access restrictions have
      * been removed. It may fault again if the p2m entry type still requires so.
      * Otherwise, this is an error condition. */
diff --git a/xen/arch/x86/include/asm/hvm/emulate.h b/xen/arch/x86/include/asm/hvm/emulate.h
index c7a2d2a5be4e..178ac32e151f 100644
--- a/xen/arch/x86/include/asm/hvm/emulate.h
+++ b/xen/arch/x86/include/asm/hvm/emulate.h
@@ -86,7 +86,6 @@ void hvmemul_cancel(struct vcpu *v);
 struct segment_register *hvmemul_get_seg_reg(
     enum x86_segment seg,
     struct hvm_emulate_ctxt *hvmemul_ctxt);
-int hvm_emulate_one_mmio(unsigned long mfn, unsigned long gla);
 
 static inline bool handle_mmio(void)
 {
diff --git a/xen/arch/x86/include/asm/mm.h b/xen/arch/x86/include/asm/mm.h
index a1bc8cc27451..c2e9ef6e5023 100644
--- a/xen/arch/x86/include/asm/mm.h
+++ b/xen/arch/x86/include/asm/mm.h
@@ -554,6 +554,18 @@ int cf_check mmio_ro_emulated_write(
     enum x86_segment seg, unsigned long offset, void *p_data,
     unsigned int bytes, struct x86_emulate_ctxt *ctxt);
 
+/* r/o MMIO subpage access handlers. */
+struct subpage_ro_range {
+    struct list_head list;
+    mfn_t mfn;
+    void __iomem *mapped;
+    DECLARE_BITMAP(ro_elems, PAGE_SIZE / MMIO_RO_SUBPAGE_GRAN);
+};
+struct subpage_ro_range *subpage_mmio_find_page(mfn_t mfn);
+void __iomem *subpage_mmio_map_page(struct subpage_ro_range *entry);
+void subpage_mmio_write_emulate(
+    mfn_t mfn, unsigned int offset, unsigned long data, unsigned int len);
+
 int audit_adjust_pgtables(struct domain *d, int dir, int noisy);
 
 extern int pagefault_by_memadd(unsigned long addr, struct cpu_user_regs *regs);
diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
index 989e62e7ce6f..f59c7816fba5 100644
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -157,13 +157,6 @@ struct rangeset *__read_mostly mmio_ro_ranges;
 static uint32_t __ro_after_init base_disallow_mask;
 
 /* Handling sub-page read-only MMIO regions */
-struct subpage_ro_range {
-    struct list_head list;
-    mfn_t mfn;
-    void __iomem *mapped;
-    DECLARE_BITMAP(ro_elems, PAGE_SIZE / MMIO_RO_SUBPAGE_GRAN);
-};
-
 static LIST_HEAD_RO_AFTER_INIT(subpage_ro_ranges);
 static DEFINE_SPINLOCK(subpage_ro_lock);
 
@@ -4929,7 +4922,7 @@ long arch_memory_op(unsigned long cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
     return rc;
 }
 
-static struct subpage_ro_range *subpage_mmio_find_page(mfn_t mfn)
+struct subpage_ro_range *subpage_mmio_find_page(mfn_t mfn)
 {
     struct subpage_ro_range *entry;
 
@@ -5074,7 +5067,7 @@ int __init subpage_mmio_ro_add(
     return rc;
 }
 
-static void __iomem *subpage_mmio_map_page(
+void __iomem *subpage_mmio_map_page(
     struct subpage_ro_range *entry)
 {
     void __iomem *mapped_page;
@@ -5099,7 +5092,7 @@ static void __iomem *subpage_mmio_map_page(
     return entry->mapped;
 }
 
-static void subpage_mmio_write_emulate(
+void subpage_mmio_write_emulate(
     mfn_t mfn,
     unsigned int offset,
     unsigned long data,
@@ -5133,30 +5126,6 @@ static void subpage_mmio_write_emulate(
     write_mmio(addr + offset, data, len);
 }
 
-#ifdef CONFIG_HVM
-bool subpage_mmio_write_accept(mfn_t mfn, unsigned long gla)
-{
-    unsigned int offset = PAGE_OFFSET(gla);
-    const struct subpage_ro_range *entry;
-
-    entry = subpage_mmio_find_page(mfn);
-    if ( !entry )
-        return false;
-
-    if ( !test_bit(offset / MMIO_RO_SUBPAGE_GRAN, entry->ro_elems) )
-    {
-        /*
-         * We don't know the write size at this point yet, so it could be
-         * an unaligned write, but accept it here anyway and deal with it
-         * later.
-         */
-        return true;
-    }
-
-    return false;
-}
-#endif
-
 int cf_check mmio_ro_emulated_write(
     enum x86_segment seg,
     unsigned long offset,
-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Fri Apr 11 10:54:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 10:54:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.947035.1344807 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3C1i-0001J3-UQ; Fri, 11 Apr 2025 10:54:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 947035.1344807; Fri, 11 Apr 2025 10: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 1u3C1i-0001Ib-Px; Fri, 11 Apr 2025 10:54:26 +0000
Received: by outflank-mailman (input) for mailman id 947035;
 Fri, 11 Apr 2025 10: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=U3ez=W5=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u3C1h-00006G-8N
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 10:54:25 +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 542a5a8e-16c3-11f0-9ffb-bf95429c2676;
 Fri, 11 Apr 2025 12:54:23 +0200 (CEST)
Received: by mail-wr1-x42a.google.com with SMTP id
 ffacd0b85a97d-39c14016868so1566442f8f.1
 for <xen-devel@lists.xenproject.org>; Fri, 11 Apr 2025 03:54:23 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 ffacd0b85a97d-39eae96c70csm1677896f8f.38.2025.04.11.03.54.22
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 11 Apr 2025 03:54:22 -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: 542a5a8e-16c3-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744368863; x=1744973663; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=RdHHb20HOi9ewMxj1HKA2pF0/OWllbuDky2HQy9a5pQ=;
        b=Gu5QblXb/oaZsHKXi7QC7PTHWqeMUsME+deQF0yS0amWDy6h5I8Mlu8pcQy/EgI2yE
         35ze9voBpMHI8PbqhzBynd6BNin6kJbSOoGLxyTAaqFnWVSJNU+pMoeZC9T5TjFqPfCm
         7nq36iNrb9AvTqOg0tk+suVZ4WpFvb+8gT7DE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744368863; x=1744973663;
        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=RdHHb20HOi9ewMxj1HKA2pF0/OWllbuDky2HQy9a5pQ=;
        b=M9Y2bCWnbn75dhLPvAbo+cOHiLyDCzXrhqdPpBzL5Q0uT0NUqypXg+mmatWNVXn9Mo
         H70TB7qHmfmonuYf7P8I+1vx/4kyLTX2gCnK0MxMP+gYNzzj7y4hxa6WIs9oCybdTbMm
         ITtucgM+D+p+/h1mr/PUXgGCt9J9SnbJoY8cSRqRBMEv/sLoamf1lfDBcSybYtU9gn3J
         Cba/HJpbh3+ODxO6Oda2UXaULa8AXxEbqG1f6O47pOmngCJ9lAdpouI5XLRvtsdrOKCm
         +jOa45TibH8DTB3W7KkspqJWqMukrwonNJoB1kvwfmZuC+4I5TQHuai9qVRzNDhEQdic
         fgXQ==
X-Gm-Message-State: AOJu0YwxVcPzwewLWK37YtQxrqHU7YWA79KSi3joOlpSSIY+uVQRChrR
	v1BTcd0/IkhwBT1P1F27NKGewCOnRVsebSS7VrdqU7kP6tO1jb15wCP3K5uKU8XRyyqoiwfFa7r
	Y
X-Gm-Gg: ASbGnctrGFO8zNKFtUi7YAokpb79UJGGCXrBd9fG+jTZi8Hb5qdl41x/qGbHQltHZzk
	mYJEGhlYYlqPeEEpcicSMEKi+GMYYw0xtlnt+OQeAMkrfeitNpmA71dXEpxRisry81jYlzhWU2D
	xHJ0c4yBAXBO8MPdql1nzVPI6y9EYeiSRUSd3KiGupTMFrwKjHhlLXPBihqMmmBXnT9L1Jo3P4V
	k7wit5WpapTG4iiqDJ1mJAHThL28PTwKWj5kMU9aZS7v98SdHphb2HTs7xoWYkXZMobfwmsKjDk
	taC2TJaPjbUj+rCjqdBP+GtNq7GkkJTvDoQNudFyWbfPrg==
X-Google-Smtp-Source: AGHT+IGgYhUzdc9FW83ZPtcCp31uhkyhKc744vxfZo8AV0cfCbfSjJYJXDsMf7Wu6O70OV3GcQ9VBg==
X-Received: by 2002:a05:6000:400f:b0:39c:dfa:d33e with SMTP id ffacd0b85a97d-39ea52154a0mr1849055f8f.23.1744368862766;
        Fri, 11 Apr 2025 03:54:22 -0700 (PDT)
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 5/5] x86/mm: move mmio_ro_emulated_write() to PV only file
Date: Fri, 11 Apr 2025 12:54:11 +0200
Message-ID: <20250411105411.22334-6-roger.pau@citrix.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <20250411105411.22334-1-roger.pau@citrix.com>
References: <20250411105411.22334-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

mmio_ro_emulated_write() is only used in pv/ro-page-fault.c, move the
function to that file and make it static.

No functional change intended.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/arch/x86/include/asm/mm.h   | 12 ------------
 xen/arch/x86/mm.c               | 26 -------------------------
 xen/arch/x86/pv/ro-page-fault.c | 34 +++++++++++++++++++++++++++++++++
 3 files changed, 34 insertions(+), 38 deletions(-)

diff --git a/xen/arch/x86/include/asm/mm.h b/xen/arch/x86/include/asm/mm.h
index aeb8ebcf2d56..2665daa6f74f 100644
--- a/xen/arch/x86/include/asm/mm.h
+++ b/xen/arch/x86/include/asm/mm.h
@@ -542,18 +542,6 @@ void memguard_unguard_stack(void *p);
 int subpage_mmio_ro_add(paddr_t start, size_t size);
 bool subpage_mmio_write_accept(mfn_t mfn, unsigned long gla);
 
-struct mmio_ro_emulate_ctxt {
-        unsigned long cr2;
-        /* Used only for mmcfg case */
-        unsigned int seg, bdf;
-        /* Used only for non-mmcfg case */
-        mfn_t mfn;
-};
-
-int cf_check mmio_ro_emulated_write(
-    enum x86_segment seg, unsigned long offset, void *p_data,
-    unsigned int bytes, struct x86_emulate_ctxt *ctxt);
-
 /* r/o MMIO subpage access handlers. */
 struct subpage_ro_range {
     struct list_head list;
diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
index 3bc6304d831c..7c6a5fde5ebd 100644
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -5142,32 +5142,6 @@ void subpage_mmio_write_emulate(
     write_mmio(addr + offset, data, len);
 }
 
-int cf_check mmio_ro_emulated_write(
-    enum x86_segment seg,
-    unsigned long offset,
-    void *p_data,
-    unsigned int bytes,
-    struct x86_emulate_ctxt *ctxt)
-{
-    struct mmio_ro_emulate_ctxt *mmio_ro_ctxt = ctxt->data;
-    unsigned long data = 0;
-
-    /* Only allow naturally-aligned stores at the original %cr2 address. */
-    if ( ((bytes | offset) & (bytes - 1)) || !bytes ||
-         offset != mmio_ro_ctxt->cr2 || bytes > sizeof(data) )
-    {
-        gdprintk(XENLOG_WARNING, "bad access (cr2=%lx, addr=%lx, bytes=%u)\n",
-                mmio_ro_ctxt->cr2, offset, bytes);
-        return X86EMUL_UNHANDLEABLE;
-    }
-
-    memcpy(&data, p_data, bytes);
-    subpage_mmio_write_emulate(mmio_ro_ctxt->mfn, PAGE_OFFSET(offset),
-                               data, bytes);
-
-    return X86EMUL_OKAY;
-}
-
 /*
  * For these PTE APIs, the caller must follow the alloc-map-unmap-free
  * lifecycle, which means explicitly mapping the PTE pages before accessing
diff --git a/xen/arch/x86/pv/ro-page-fault.c b/xen/arch/x86/pv/ro-page-fault.c
index 11b01c479e43..8b1c25e60c17 100644
--- a/xen/arch/x86/pv/ro-page-fault.c
+++ b/xen/arch/x86/pv/ro-page-fault.c
@@ -298,6 +298,14 @@ static int ptwr_do_page_fault(struct x86_emulate_ctxt *ctxt,
  * fault handling for read-only MMIO pages
  */
 
+struct mmio_ro_emulate_ctxt {
+        unsigned long cr2;
+        /* Used only for mmcfg case */
+        unsigned int seg, bdf;
+        /* Used only for non-mmcfg case */
+        mfn_t mfn;
+};
+
 static int cf_check mmcfg_intercept_write(
     enum x86_segment seg,
     unsigned long offset,
@@ -329,6 +337,32 @@ static int cf_check mmcfg_intercept_write(
     return X86EMUL_OKAY;
 }
 
+static int cf_check mmio_ro_emulated_write(
+    enum x86_segment seg,
+    unsigned long offset,
+    void *p_data,
+    unsigned int bytes,
+    struct x86_emulate_ctxt *ctxt)
+{
+    struct mmio_ro_emulate_ctxt *mmio_ro_ctxt = ctxt->data;
+    unsigned long data = 0;
+
+    /* Only allow naturally-aligned stores at the original %cr2 address. */
+    if ( ((bytes | offset) & (bytes - 1)) || !bytes ||
+         offset != mmio_ro_ctxt->cr2 || bytes > sizeof(data) )
+    {
+        gdprintk(XENLOG_WARNING, "bad access (cr2=%lx, addr=%lx, bytes=%u)\n",
+                mmio_ro_ctxt->cr2, offset, bytes);
+        return X86EMUL_UNHANDLEABLE;
+    }
+
+    memcpy(&data, p_data, bytes);
+    subpage_mmio_write_emulate(mmio_ro_ctxt->mfn, PAGE_OFFSET(offset),
+                               data, bytes);
+
+    return X86EMUL_OKAY;
+}
+
 static const struct x86_emulate_ops mmio_ro_emulate_ops = {
     .read       = x86emul_unhandleable_rw,
     .insn_fetch = ptwr_emulated_insn_fetch,
-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Fri Apr 11 11:05:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 11:05:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.947116.1344818 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3CC1-00072G-4A; Fri, 11 Apr 2025 11:05:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 947116.1344818; Fri, 11 Apr 2025 11:05: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 1u3CC1-000729-1a; Fri, 11 Apr 2025 11:05:05 +0000
Received: by outflank-mailman (input) for mailman id 947116;
 Fri, 11 Apr 2025 11:05: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=Klsp=W5=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1u3CBz-000723-Mo
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 11:05:03 +0000
Received: from NAM04-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam04on2060e.outbound.protection.outlook.com
 [2a01:111:f403:2408::60e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d00bb013-16c4-11f0-9ead-5ba50f476ded;
 Fri, 11 Apr 2025 13:05:02 +0200 (CEST)
Received: from MN2PR01CA0059.prod.exchangelabs.com (2603:10b6:208:23f::28) by
 SJ0PR12MB6965.namprd12.prod.outlook.com (2603:10b6:a03:448::18) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.22; Fri, 11 Apr
 2025 11:04:57 +0000
Received: from BN1PEPF00004682.namprd03.prod.outlook.com
 (2603:10b6:208:23f:cafe::ef) by MN2PR01CA0059.outlook.office365.com
 (2603:10b6:208:23f::28) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.26 via Frontend Transport; Fri,
 11 Apr 2025 11:04:41 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BN1PEPF00004682.mail.protection.outlook.com (10.167.243.88) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Fri, 11 Apr 2025 11:04:57 +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, 11 Apr
 2025 06:04:56 -0500
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, 11 Apr 2025 06:04:56 -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: d00bb013-16c4-11f0-9ead-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ID7jKB3wTRI9+0re0J/VZA79zJpt2djKK3fp4gnPGrpKpudB+waSt9j1mco72eIN1glUycLFKfyJz+Ivu7+qr+nlo+r71IEU0Qv1w1F2+nVscFNDzHH92RZpYFSsmcyeEjPSgQsKeGK22joOEzWlOXJ3+Cuj/sfpZVDrrZrDt5EPtEfNo39doquUEtDwXeQla15R0NgVHlF3i1czbLbeUp/d0pucN0se/MtFQNADSfqXAs/cx79p22ov9tlhoGv9OWJ3snwEtLi+e1WyfhgM5b1yEO5gN+EfJDNCYU8o4Is5AWzcGIypnbYHCxNEfXXV3k9G8rtP5VgmVp3741Ovnw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=rFIkJwYuwnWVubFR6mN69sqIH1vPnXPwpwqVmMm4Rbg=;
 b=Iq37tZWaHKSURQndZ8BeprrbO1+MsRzDWdVCAmCnGq6f4W38msqiFAr9f7cS2PROKKFrV3yaVg3hfw3kIlHQPRLL2Ux0X6gNR/liS8N4Oi60I4mvrRwQQSZtUWBjp43ayC6Z25LwUQKozykam48CyYltXfj5HIjDcgqZWg/SVD/OC09rmKPDw5MuwlzbdcKc6dHLDSRMfC9vcSZtNLdp67ebADOWid+S9inLhIFYuOyvGG/dotYdhdWPpY3ucRVYXJWxlzIGh0YlglzF4YSyjR7IvdecrK+Hf+x0Ac92j4rYvUOvekSvzolN14lU9JdaCs/qm5bKssJ2oRVhSQ9kBQ==
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=rFIkJwYuwnWVubFR6mN69sqIH1vPnXPwpwqVmMm4Rbg=;
 b=Fj/xRkHFKIfYH2EjCnh6upy1ARqlfXlBHzCOseXTBEL5m5UMiAWuCtK9vMfnZwM08lSbzwh9FKj4G193Ca3gl3ur43E40hcjlJs/tHgX56y6jmRB4grS/1woVZblu67mZaQH5euT06ieu367xMVTJHdUp1c88dsEmrul+dYb8mw=
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 v6 0/3] Enable early bootup of Armv8-R AArch32 systems
Date: Fri, 11 Apr 2025 12:04:49 +0100
Message-ID: <20250411110452.3748186-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 (SATLEXMB04.amd.com: ayan.kumar.halder@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN1PEPF00004682:EE_|SJ0PR12MB6965:EE_
X-MS-Office365-Filtering-Correlation-Id: 481061e5-5648-4350-73de-08dd78e8b22c
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|82310400026|1800799024|376014;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?sGBPchBAjSD7qzcd+7v+MD4Z31VbHF6rAlAtwWthJ8OotRu3okmhIRsYYUrs?=
 =?us-ascii?Q?iuuUQHMK7X2sZ5lRkf0nk5WDUr7VPMMrWGFSRy5nEvY4uxSSTQ8yS3f8GLWV?=
 =?us-ascii?Q?je/7JBheT4b7HSlEtY1QHBbYfKfOAvdiFXrmXWiH29dcObtuIRMXOwdTx4Re?=
 =?us-ascii?Q?FbyqCvK6pBGYnJc8V5SaHDqVua0Q3gU/+QIPBMsIdq26jmitIz9iMRiNR9Ho?=
 =?us-ascii?Q?h/NeoQU/LtBUpk2lTyZ8OYuKnvbuT1/XmEom0LU76Kucb3rv/HNGu7v492Hh?=
 =?us-ascii?Q?/DAXUzvnejGIZpg1VjXDAIA2+HHTQ5u2uy5sLS18XhCLOeExkXM/PJLdeV/a?=
 =?us-ascii?Q?eXIG8BEEfSAOD6IYEvm6zDNrG/QJ03g/QGT1qXrXsIT3q/yV2BZVsFuckVWz?=
 =?us-ascii?Q?jSzXxZyTk2SrymYPgnN4zZ7j3jQRAL7T7xdCUjq6S913oTxIkfYgVQrJoo6/?=
 =?us-ascii?Q?TYSCLUoQsfPF9eSkn51vkXDcVaJaGTgI6KDQFlWkykXmWOo1EU8AZJTmzDj5?=
 =?us-ascii?Q?8t1pPegQfxhe5fuyJ4qYcMyQBWFI1Gdnq47i0YUSHPBK/OYT4BOhHGlq3oZl?=
 =?us-ascii?Q?RViPaB2hT8MhHzI0OCJYyOrYiFz6UXMWtlQzeEVKZM/ofvVX4CkT++QrFhtG?=
 =?us-ascii?Q?7L7HT/3h7YA7O1/IbFtzGhQe/xIB+KVu01J93z1/naJmcH8m0L9/9HQHoUaA?=
 =?us-ascii?Q?KKtvMSvS2sJ1FgBlf+dzF3fzPxzxoTcVyHm0gdutUphRoPOoBEZwpcNObP+o?=
 =?us-ascii?Q?XeUIucwRQGhkdd8hLYbUTImearMcyd0PjLu+KVjFszSO/77Zg4nkBmhFdGz3?=
 =?us-ascii?Q?aJxMa6hb2cdw+fKcX6KMdMXunsQMlhcaRqM7R6ni3AeTiISYgaAfYXv8O7MF?=
 =?us-ascii?Q?lrJY1ufE2/V2Z9Hq19r5E0+FtNaszejVFPL/FktOx56X5yiH3LGHb7GdLeTb?=
 =?us-ascii?Q?ZCyLjLMz7eCX4ZavYakTKqDW0zApR7AHbCHa2zwY6XXTcjNWRoSijh+GRLr9?=
 =?us-ascii?Q?USR5kDKXqipE232syQdsTyRt7mP/ldicEa0UgV7E05oI1rppt151XCTZxf3E?=
 =?us-ascii?Q?3+ifMCzZKT0jyepKdzovR1jXJb0iDhHi7DMNPdkPfLWAfq8Pk1U2ZE9PZmiz?=
 =?us-ascii?Q?eJyvY89NIa+RWZ1A5b8dEVgrsPdQs6JzvT/1CarPxSwUnWXbtPjnTwrDink7?=
 =?us-ascii?Q?rxCcPTE2B/NF6PmH5yto4eTmVxNC1WQ9NYaNLUDO6HAbe1zayljVpFy5vocR?=
 =?us-ascii?Q?OLUI47D7o8hvXzArbfM07BXe5Y7HVE5tCR/CRcrVg3PyZAGpCS9XPWQRkOGF?=
 =?us-ascii?Q?5+A8BzGE/q9/U3C3bhNrtMywGkKO3MYM9Li25oat85P2sx24NILVrRQ/0A4d?=
 =?us-ascii?Q?WTtky3lgy2ybKIBwZUP0IBveQnyCd65DMODvCcMWZ91RSK8/MESfrqjW+ERk?=
 =?us-ascii?Q?YhrFNsaNWDdW9Y80FQjlHZXp0mUk0UikQ/AeHHmO1UCEjBnu15jzWhsGp8IP?=
 =?us-ascii?Q?ar4j94lmx8GKRKUHFulZqYhweJjLiAG3NIR8?=
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: 11 Apr 2025 11:04:57.3013
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 481061e5-5648-4350-73de-08dd78e8b22c
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:
	BN1PEPF00004682.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR12MB6965

Enable early booting of Armv8-R AArch32 based systems.

Added Luca's R-b in all the patches.

Ayan Kumar Halder (3):
  xen/arm: Move some of the functions to common file
  xen/arm32: Create the same boot-time MPU regions as arm64
  xen/arm32: mpu: Stubs to build MPU for arm32

 xen/arch/arm/arm32/Makefile              |   1 +
 xen/arch/arm/arm32/mpu/Makefile          |   3 +
 xen/arch/arm/arm32/mpu/head.S            | 104 +++++++++++++++++++++++
 xen/arch/arm/arm32/mpu/p2m.c             |  19 +++++
 xen/arch/arm/arm32/mpu/smpboot.c         |  26 ++++++
 xen/arch/arm/arm64/mpu/head.S            |  78 +----------------
 xen/arch/arm/include/asm/arm32/sysregs.h |   9 ++
 xen/arch/arm/include/asm/arm64/sysregs.h |  13 +++
 xen/arch/arm/include/asm/cpregs.h        |   2 +
 xen/arch/arm/include/asm/mm.h            |   9 +-
 xen/arch/arm/include/asm/mmu/mm.h        |   7 ++
 xen/arch/arm/include/asm/mpu/cpregs.h    |  27 ++++++
 xen/arch/arm/include/asm/mpu/mm.h        |   5 ++
 xen/arch/arm/include/asm/mpu/regions.inc |  79 +++++++++++++++++
 xen/arch/arm/mpu/Makefile                |   1 +
 xen/arch/arm/mpu/domain_page.c           |  45 ++++++++++
 16 files changed, 343 insertions(+), 85 deletions(-)
 create mode 100644 xen/arch/arm/arm32/mpu/Makefile
 create mode 100644 xen/arch/arm/arm32/mpu/head.S
 create mode 100644 xen/arch/arm/arm32/mpu/p2m.c
 create mode 100644 xen/arch/arm/arm32/mpu/smpboot.c
 create mode 100644 xen/arch/arm/include/asm/mpu/cpregs.h
 create mode 100644 xen/arch/arm/include/asm/mpu/regions.inc
 create mode 100644 xen/arch/arm/mpu/domain_page.c

-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Fri Apr 11 11:05:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 11:05:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.947118.1344829 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3CCF-0007L0-CX; Fri, 11 Apr 2025 11:05:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 947118.1344829; Fri, 11 Apr 2025 11:05: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 1u3CCF-0007Kf-8E; Fri, 11 Apr 2025 11:05:19 +0000
Received: by outflank-mailman (input) for mailman id 947118;
 Fri, 11 Apr 2025 11: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=Klsp=W5=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1u3CCE-0007Jn-9A
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 11:05:18 +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 d771d06f-16c4-11f0-9ffb-bf95429c2676;
 Fri, 11 Apr 2025 13:05:14 +0200 (CEST)
Received: from MN0PR05CA0005.namprd05.prod.outlook.com (2603:10b6:208:52c::20)
 by PH7PR12MB5709.namprd12.prod.outlook.com (2603:10b6:510:1e0::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.34; Fri, 11 Apr
 2025 11:05:11 +0000
Received: from BL6PEPF0001AB72.namprd02.prod.outlook.com
 (2603:10b6:208:52c:cafe::38) by MN0PR05CA0005.outlook.office365.com
 (2603:10b6:208:52c::20) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.20 via Frontend Transport; Fri,
 11 Apr 2025 11:05:11 +0000
Received: from SATLEXMB03.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.8655.12 via Frontend Transport; Fri, 11 Apr 2025 11:05:10 +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, 11 Apr
 2025 06:05:09 -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, 11 Apr
 2025 06:05:09 -0500
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, 11 Apr 2025 06:05:08 -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: d771d06f-16c4-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=AQCz+8qz8u75wFNZJhAzPWVwVECLjXX19iQMklyaWf+jc9TA06wkiV4Ks4BWII49CmpCtUf5CWb9Yxfd3WSJwDCRvbXJPYG5KRAxBJ9cCTipyimUx3rFv2h8ZqGrebb8OvUYCU53RbrJxnLnMh6PhNuaJ9LBLrr/1RoioYQzPFa+oqNfF8Z40xlwXUYjHz576T/hbvixE0oX99AeSx7yaH8b+qAOuAXwYQ5ZuEofBCZV1+T3cj5XWthZKkCfLygwb26lZmNWbJ10mejI0HMfrrjCN4wtmiBkRCrpcKenpt1DmxRIb8r7mZ4yMBdZgW1IISmIxbRey+AV3M9D3XdqYA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=OHo78ctMrPYj6u7pKMIrovxoW18cccH7A1TLEOoYSSA=;
 b=zVx1lzb1Mp4iPwqVrYH2q+0Qdng38hiJZPK5BPA7Z7kKVoVjKdybehNn2C5fyQuSRvvcZNpiHZ/LB0F5xZEJgNc9m8LP1L4s4ISYWSs2mwDZZVwSe1j0ywQWdEjXmfxI5l42raNE+ZCYxeRsr2fVu2k1k/EAhpDwU7cVqWFUZa8imRkUJ8bd1KTJCC5509goTLXNkQJTwLjrzxKSKcr4YacOGRQAHRzbDQmMBnkV/wY7Hw+drpXisMxri3lA5dgErQNrUwCT1LgYAL/dJO53kuDkgOG0sHC920yR0I5pMZQPgPvow24XRNc9cSwMRLIcl4lqCAKMwUiBP+On0FUa/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=OHo78ctMrPYj6u7pKMIrovxoW18cccH7A1TLEOoYSSA=;
 b=iVW2xOQN8q/1ErY3b2znrS4LhSoOuelqxqUAAa5glLayE0phi5UMtZDxgQaJ1yL/wL/ZeFZ3kt6zPAHqSPE3xOZiDWyEvNwwmz6hQAm0ufjvk0vd4ZQ75ahYsUZ8YfR7rAovVMpcp07NEqgw5golcFqoBDc00sZDKxa39qel9Cg=
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>
Subject: [PATCH v6 1/3] xen/arm: Move some of the functions to common file
Date: Fri, 11 Apr 2025 12:04:50 +0100
Message-ID: <20250411110452.3748186-2-ayan.kumar.halder@amd.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20250411110452.3748186-1-ayan.kumar.halder@amd.com>
References: <20250411110452.3748186-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: BL6PEPF0001AB72:EE_|PH7PR12MB5709:EE_
X-MS-Office365-Filtering-Correlation-Id: ce4c5849-c797-46f6-505d-08dd78e8ba4f
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?E4O9vruj622ROWz7fEwgkgTrRvvuq+aNad6fhVxYs9k11Sn88/hgkXfjBUQu?=
 =?us-ascii?Q?hTYlam4F7uqvZun8QfRGpQUmwyzv8YHAGRwd4HmTOIFC5Wm5QSUGyaBTEsZX?=
 =?us-ascii?Q?v4x/zMRp/uUJBUpBD5OfLv3rCqx1TRVJD/K+9hy34YZy1q01a369vEmIDuTv?=
 =?us-ascii?Q?3pVqnM8iKx14HAK63Bs6X1ExuagBLTtIBsCYd2jfM3VPfdS9+2AJmGsrhmZl?=
 =?us-ascii?Q?r06DOxBisNjcXJp9p7KA+n81qhXIGLaGSaD2jl5yusJUYFOHCxVZ0kdchBMp?=
 =?us-ascii?Q?Ma/f7Uw86mzSaxizSeXMXIv94xTjrViDWoMh5fM5QCeaqvZ+tFzked11R9+D?=
 =?us-ascii?Q?ThjJmxXBQdKHO2VCyl8OiUjVEaZw9wrj8LUEn5jdliqmmVaaB/nxULXo2foF?=
 =?us-ascii?Q?AIhLeHl8mCUTfRn2+n2CTioRcFFJEknQ02DyYMNDWHbrGhJGx3df/auONfGO?=
 =?us-ascii?Q?SRc2OKF8yEvDZ9UVoSxAdvgpmYrU7CcwGDEYibd9A7vPsF/BwDiDEx+HcYCP?=
 =?us-ascii?Q?GAJ9TuphJvDL1AAN9XaqhLzt1oYRfutgav8hzOsJ16kx1+OG/lQ940c77pm9?=
 =?us-ascii?Q?tT8WEUGKy02DvBe8ffi/VxKBXQP1Sn3fFbLMsCVyHzw8T3K1HZ1lLVFmrbsN?=
 =?us-ascii?Q?05jv9Wu/56NVWR40aGU4AiMVIgTaw9e5rPZjXVl5K57Tzj05x9i6gYh0BnfL?=
 =?us-ascii?Q?HaepuwV+/XnIr6xuciW9brlQvVeh+hjT/ICoTg3foPU+JW56dmHrJm3eGUgn?=
 =?us-ascii?Q?wntdaJIVV67nPCZiIW/LVk4M3mrJJVChF+UpDHhXplSC0qKXgvksjyn22jKh?=
 =?us-ascii?Q?hTfN57P7BKQP30uiDz8Mcn42YZoCQlTHvKTxnnLD/FCuwoNLNmRcCQiGrvHJ?=
 =?us-ascii?Q?K00bv70feRm7TOChqfQX8qYti9zm5JHn5okiIlbxc70RWQfoKGFsHFg3JJaY?=
 =?us-ascii?Q?gSA1DPCd+T/2hFNzDZYQKV2WF7zvHdk5e1OtEgh5OOIHLgnhusRiyqGBbOjp?=
 =?us-ascii?Q?rln6d2+Wepy/INs9QvrRK/kAa/2domacnrtQBP6JBir4mRX0eyrniVfn0iA3?=
 =?us-ascii?Q?yM/mcj7SANRRkvQWALC5qJ8jOmemlINWou1TKfDwO6jOZz15V1Ntl9SwkAxp?=
 =?us-ascii?Q?h70pod+nB/xBIgndeqbtR7s55VuPUJFAZ6FdHX5QLut6EN4XIvAcpJQhKCFW?=
 =?us-ascii?Q?4k4BDGSziIA9q+HV7nfVub9X/9uzwH6XQyruAfxijo1TWwMQYSkbso27iBmi?=
 =?us-ascii?Q?yQZRTzm3yUdhGFd9lYWvK6R24sH6Z1PjkBfAQNnVcV/jqZ5rdR+/gIbaXxDo?=
 =?us-ascii?Q?rwrt28muxkCoCtG1UYazwzAsEid09mCnLeKzhr/nVeB0x3XjwuUOv8A9C5Ks?=
 =?us-ascii?Q?l+leRdv6d8atHZD6Nc821t0xcDPONdxbfFAk9mzLknCdbpOwtGiRp2qeK1dB?=
 =?us-ascii?Q?JOVDCfGNs4LHUyxXHNmHHmDQ4qdijZna6sF/cIhKQSeNNEad98igGcWn/VJh?=
 =?us-ascii?Q?l3hh6gHiYFdKdMNudjALhspQ5x/XKxYzcZ+R?=
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: 11 Apr 2025 11:05:10.9671
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: ce4c5849-c797-46f6-505d-08dd78e8ba4f
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:
	BL6PEPF0001AB72.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB5709

regions.inc is added to hold the common earlyboot MPU regions configuration
between arm64 and arm32.

prepare_xen_region, fail_insufficient_regions() will be used by both arm32 and
arm64. Thus, they have been moved to regions.inc.

*_PRBAR are moved to arm64/sysregs.h.
*_PRLAR are moved to regions.inc as they are common between arm32 and arm64.

Introduce WRITE_SYSREG_ASM to write to the system registers from regions.inc.

Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>
---

Changes from

v1 -

1. enable_mpu() now sets HMAIR{0,1} registers. This is similar to what is
being done in enable_mmu(). All the mm related configurations happen in this
function.

2. Fixed some typos.

v2 -
1. Extracted the arm64 head.S functions/macros in a common file.

v3 -
1. Moved *_PRLAR are moved to prepare_xen_region.inc

2. enable_boot_cpu_mm() is preserved in mpu/head.S.

3. STORE_SYSREG is renamed as WRITE_SYSREG_ASM()

4. LOAD_SYSREG is removed.

5. No need to save/restore lr in enable_boot_cpu_mm(). IOW, keep it as it was
in the original code.

v4 - 
1. Rename prepare_xen_region.inc to common.inc

2. enable_secondary_cpu_mm() is moved back to mpu/head.S. 

v5 -
1. Rename common.inc to regions.inc.

2. WRITE_SYSREG_ASM() in enclosed within #ifdef __ASSEMBLY__.

 xen/arch/arm/arm64/mpu/head.S            | 78 +----------------------
 xen/arch/arm/include/asm/arm64/sysregs.h | 13 ++++
 xen/arch/arm/include/asm/mpu/regions.inc | 79 ++++++++++++++++++++++++
 3 files changed, 93 insertions(+), 77 deletions(-)
 create mode 100644 xen/arch/arm/include/asm/mpu/regions.inc

diff --git a/xen/arch/arm/arm64/mpu/head.S b/xen/arch/arm/arm64/mpu/head.S
index ed01993d85..6d336cafbb 100644
--- a/xen/arch/arm/arm64/mpu/head.S
+++ b/xen/arch/arm/arm64/mpu/head.S
@@ -3,83 +3,7 @@
  * Start-of-day code for an Armv8-R MPU system.
  */
 
-#include <asm/early_printk.h>
-#include <asm/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 */
-#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.
- * 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
- * Output:
- *  \sel: Next available region selector index.
- * Clobbers \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)
+#include <asm/mpu/regions.inc>
 
 /*
  * Enable EL2 MPU and data cache
diff --git a/xen/arch/arm/include/asm/arm64/sysregs.h b/xen/arch/arm/include/asm/arm64/sysregs.h
index b593e4028b..dba0248c88 100644
--- a/xen/arch/arm/include/asm/arm64/sysregs.h
+++ b/xen/arch/arm/include/asm/arm64/sysregs.h
@@ -462,6 +462,17 @@
 #define ZCR_ELx_LEN_SIZE             9
 #define ZCR_ELx_LEN_MASK             0x1ff
 
+#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 */
+
+#ifdef __ASSEMBLY__
+
+#define WRITE_SYSREG_ASM(v, name) "msr " __stringify(name,) #v
+
+#else /* !__ASSEMBLY__ */
+
 /* Access to system registers */
 
 #define WRITE_SYSREG64(v, name) do {                    \
@@ -481,6 +492,8 @@
 #define WRITE_SYSREG_LR(v, index)  WRITE_SYSREG(v, ICH_LR_REG(index))
 #define READ_SYSREG_LR(index)      READ_SYSREG(ICH_LR_REG(index))
 
+#endif /* !__ASSEMBLY__ */
+
 #endif /* _ASM_ARM_ARM64_SYSREGS_H */
 
 /*
diff --git a/xen/arch/arm/include/asm/mpu/regions.inc b/xen/arch/arm/include/asm/mpu/regions.inc
new file mode 100644
index 0000000000..47868a1526
--- /dev/null
+++ b/xen/arch/arm/include/asm/mpu/regions.inc
@@ -0,0 +1,79 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <asm/mpu.h>
+#include <asm/sysregs.h>
+
+/* Backgroud region enable/disable */
+#define SCTLR_ELx_BR    BIT(17, UL)
+
+#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.
+ * 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
+ * Output:
+ *  sel: Next available region selector index.
+ * Clobbers 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
+
+    WRITE_SYSREG_ASM(\sel, PRSELR_EL2)
+    isb
+    WRITE_SYSREG_ASM(\prbar, PRBAR_EL2)
+    WRITE_SYSREG_ASM(\prlar, PRLAR_EL2)
+    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)
+
+/*
+ * Local variables:
+ * mode: ASM
+ * indent-tabs-mode: nil
+ * End:
+ */
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Fri Apr 11 11:05:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 11:05:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.947123.1344839 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3CCI-0007cc-KG; Fri, 11 Apr 2025 11:05:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 947123.1344839; Fri, 11 Apr 2025 11:05:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3CCI-0007cT-Fz; Fri, 11 Apr 2025 11:05:22 +0000
Received: by outflank-mailman (input) for mailman id 947123;
 Fri, 11 Apr 2025 11:05: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=Klsp=W5=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1u3CCH-0007Jn-Iw
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 11:05:21 +0000
Received: from NAM10-BN7-obe.outbound.protection.outlook.com
 (mail-bn7nam10on2062a.outbound.protection.outlook.com
 [2a01:111:f403:2009::62a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id da2a2565-16c4-11f0-9ffb-bf95429c2676;
 Fri, 11 Apr 2025 13:05:19 +0200 (CEST)
Received: from BYAPR07CA0041.namprd07.prod.outlook.com (2603:10b6:a03:60::18)
 by PH8PR12MB6916.namprd12.prod.outlook.com (2603:10b6:510:1bd::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.34; Fri, 11 Apr
 2025 11:05:13 +0000
Received: from SJ5PEPF000001D4.namprd05.prod.outlook.com
 (2603:10b6:a03:60:cafe::8d) by BYAPR07CA0041.outlook.office365.com
 (2603:10b6:a03:60::18) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8606.35 via Frontend Transport; Fri,
 11 Apr 2025 11:05:13 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ5PEPF000001D4.mail.protection.outlook.com (10.167.242.56) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8632.13 via Frontend Transport; Fri, 11 Apr 2025 11:05: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, 11 Apr
 2025 06:05:11 -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, 11 Apr
 2025 06:05:11 -0500
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, 11 Apr 2025 06:05:10 -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: da2a2565-16c4-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=arHwlPWdu+O/ZF95cIjFM6lbH1ciPmX28WxtUu/1xnZVTV1lN1sGQK5knqsPecLIOscbdFTdqiqZCQ9mLcYzyHqNBGquoojS1gUnnRBceMAWCNjoLZf4rC/4GawDL8FTKp+fWm4gokuHRituhZulu0QZziQ0cuDiL1ehxaH187dhFb4nhLQ93rZIJ+JJcN0jKuaKC/+C/oe3ugqjM3O8IgkB1lHhwt0sI7UdjuYqvM3axEZkCBGsONH291ZQl8ZaVpRIDA0X090zfKlT5USdwWRM0pTIRVFIkKl9McfHNWTIY5jqWBtLmUnVaX1DyvSkFq4D0k337BNTwGfuWWjqrw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=sGzdqxIQBFpHYe8CZuusCg+Xnz1IG6o/Om6AUX6NyzE=;
 b=arHmrhjjFzwjY9BxMxw2vzSmnCaABUOKhBwkF1CMfltAEOLdHxeoEspG+aMTrPVkrJn6O0AHEn+Mjhx9fTrCrQAGXmniPNQZb3OrxbcClHxkFC3HPJadchAMtM3wg14prVnstkpJtksZpPVo9VSvpLsOP0qaX9kf+sqT5u3WWEssmE1km3rKedYv9hZERAUu7t+brD5br/GRM2rNKX/FXEUPRVAfS+6qoHZbfdMsbde1mokSiggEFrsMyP5e8hgKmGqFC0VbI2NnMr1+4IbbgSNofO1TvVY1V0ihCMyV19aUkmUpmSMHwrn7jBH5k48BTg/h8iHb+p/eem4AAR89fw==
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=sGzdqxIQBFpHYe8CZuusCg+Xnz1IG6o/Om6AUX6NyzE=;
 b=ZcCvBcXtrmSNX4Pyb2pzNbwsi+yGsaU8ZTW5GOUdHYDRUcxdXbHjfHm2znZ7hYxD4N6XlRT7ux4qwgN4na9iIbq2O6lszWAaigdNKC2bJ3SLNI6D9AltddExoEiqq1JvNKYpBNZl3dXc81IbE48MJZu3B6rD0xVDNQ5yZdrGvtc=
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>, Luca Fancellu <luca.fancellu@arm.com>
Subject: [PATCH v6 2/3] xen/arm32: Create the same boot-time MPU regions as arm64
Date: Fri, 11 Apr 2025 12:04:51 +0100
Message-ID: <20250411110452.3748186-3-ayan.kumar.halder@amd.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20250411110452.3748186-1-ayan.kumar.halder@amd.com>
References: <20250411110452.3748186-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: SJ5PEPF000001D4:EE_|PH8PR12MB6916:EE_
X-MS-Office365-Filtering-Correlation-Id: 02a5c8f0-3240-44f5-a8f3-08dd78e8bb33
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?20Kp10CJXCTpH043vC0b+3qB820md2hPRIaJWxNAwEGgW+5vUS9ppfTLAa7e?=
 =?us-ascii?Q?TdmASkv1EsOGkKDV27iPg1kuMVS4hdxbTimPstWe5BHl8gjIQzS3tF7vcMzr?=
 =?us-ascii?Q?BHlCIy5nTbz343ej2gTpgedTtUrGcgmkHcOaV0t4X2s2HdiVP+U4knR8jQ5v?=
 =?us-ascii?Q?cKGNeRbXzdfyVSaRV1glJ26gV3qILZTjw6wqj55oXMugu5D3IQs3zuUT0K5u?=
 =?us-ascii?Q?R4lbwBCjR0CPN6rfFLlCGRgbnHjTsHRuqc9onPWDaL+iK1OdA2SKqrUCAHWI?=
 =?us-ascii?Q?ljiu51L5YITgiSaAo8RiIx9KTZfd599A/Z0XOEsYM8OxFV3eY2VyJZrpc1zu?=
 =?us-ascii?Q?KZZycSxqUi4qn58diyAhzVtiqI1MPQzbjnzfWTEVAuG3WF5Pzo8LyF5/fIa3?=
 =?us-ascii?Q?9qaNcBk74sqxPu3D0uMFgcD9CjaTAHeuQaVWcBEKYYlKebvAMbBq6SIqGu1r?=
 =?us-ascii?Q?3ot2f89DBFbiyskMFsDWL6GG+JB0RpiJ4+gTyanB2KrxAjVgRB/XGu1gZL/Z?=
 =?us-ascii?Q?fIPo4WWjB63tUjP48Yzchf8UJ+QRBZi7b3mSI3ebTEp2L8ecf37yurtOASBo?=
 =?us-ascii?Q?tj3afq0J1QmLybRs4xMq1PxbyyB7AZ2UJbQbE/4a4SztP7V3JVRJkBrGU90a?=
 =?us-ascii?Q?YUCbDP9EbA0+lS775szT/DLRXudqbskl/sc9RCQ7LMfBk6JB68iQLeJoKom1?=
 =?us-ascii?Q?cdFmGLclsM81SvLUF3V318K+VHyhJXHcCptwg7g1O+uvA2NVsoSkIxHgutF0?=
 =?us-ascii?Q?3+DqcQzgUAk9iliufG4tee/y2cPnwO4ezmjQNXX58Y2btWG61lsPqpwiML/9?=
 =?us-ascii?Q?4KAq67Q2Phibdq9imo2L0Y1SRD20a7p6HVneZ5x90qvdVdUamicOkYmwb0e5?=
 =?us-ascii?Q?d9NXcQJkVDUPF0Je8myOB+CnpQqhbQuazgN33KXekpf8uhaVZFPw4GGypY38?=
 =?us-ascii?Q?4S6izqcO6n7dWnJtrQ7AMbyEvn0ACoa5ZE+pNLWtVXdGMRBrqNtD2adpZSr1?=
 =?us-ascii?Q?vFDKmDrXAE6XsU+w5zLtsOD1IDV7PUL70Xlp0aYwlHYQl3gvJt9dEkU9Ovun?=
 =?us-ascii?Q?1mEube9oW9TUq8PiNgz7eNTT44dE56j0bldY+Nb7FTCpp0SiamZR5fr2yP/O?=
 =?us-ascii?Q?RsPaFP0XZhQubxmhXOjPxLpgiGkjQ1wIdOGlLXI7vwz1eE/NsPOtWmjP90bq?=
 =?us-ascii?Q?zcy+UfGyW4GjIGGk4lNw2+lzXuhkmkbYt+4cvwsYZ451pkLHZATRMk9XtuD0?=
 =?us-ascii?Q?MrqYX7J7bwHeq2jGLzn1hKG0rxHZQuvSPebKkT+r9ipS8MNHRwwHd4JQdSFv?=
 =?us-ascii?Q?o42QcJC0o3uvtCoOCTn9sgcQWl5U/dr+3+Dm5RwVgY2Z3AR+xoF1aUJexG3r?=
 =?us-ascii?Q?b54fTRcCklqV3HBOtp6T3bX/elpQCKRF0PBoYjMFicoqJYruDcq3Mm+/igQ8?=
 =?us-ascii?Q?aL+X7BSUR9u86YstKX/6KjsOoalXxNp8v/vgEPV3bt8tSgvr5DClo3atAdTG?=
 =?us-ascii?Q?OGQy1artfzwqiSHs1IvtKnabeKLF1/ixtzZX?=
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: 11 Apr 2025 11:05:12.4011
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 02a5c8f0-3240-44f5-a8f3-08dd78e8bb33
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:
	SJ5PEPF000001D4.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH8PR12MB6916

Boot-time MPU protection regions (similar to Armv8-R AArch64) are created for
Armv8-R AArch32.
Also, defined *_PRBAR macros for arm32. The only difference from arm64 is that
XN is 1-bit for arm32.
Defined the system registers and macros in mpu/cpregs.h.

Introduced WRITE_SYSREG_ASM() to write to system registers in assembly.

Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>
---
Changes from

v1 -

1. enable_mpu() now sets HMAIR{0,1} registers. This is similar to what is
being done in enable_mmu(). All the mm related configurations happen in this
function.

2. Fixed some typos. 

v2 -
1. Include the common prepare_xen_region.inc in head.S.

2. Define LOAD_SYSREG()/STORE_SYSREG() for arm32.

v3 -
1. Rename STORE_SYSREG() as WRITE_SYSREG_ASM()

2. enable_boot_cpu_mm() is defined in head.S

v4 -
1. *_PRBAR is moved to arm32/sysregs.h.

2. MPU specific CP15 system registers are defined in mpu/cpregs.h. 

v5 -
1. WRITE_SYSREG_ASM is enclosed within #ifdef __ASSEMBLY__

2. enable_mpu() clobbers r0 only.

3. Definitions in mpu/cpregs.h in enclosed within ARM_32.

4. Removed some #ifdefs and style changes.

 xen/arch/arm/arm32/Makefile              |   1 +
 xen/arch/arm/arm32/mpu/Makefile          |   1 +
 xen/arch/arm/arm32/mpu/head.S            | 104 +++++++++++++++++++++++
 xen/arch/arm/include/asm/arm32/sysregs.h |   9 ++
 xen/arch/arm/include/asm/cpregs.h        |   2 +
 xen/arch/arm/include/asm/mpu/cpregs.h    |  27 ++++++
 6 files changed, 144 insertions(+)
 create mode 100644 xen/arch/arm/arm32/mpu/Makefile
 create mode 100644 xen/arch/arm/arm32/mpu/head.S
 create mode 100644 xen/arch/arm/include/asm/mpu/cpregs.h

diff --git a/xen/arch/arm/arm32/Makefile b/xen/arch/arm/arm32/Makefile
index 40a2b4803f..537969d753 100644
--- a/xen/arch/arm/arm32/Makefile
+++ b/xen/arch/arm/arm32/Makefile
@@ -1,5 +1,6 @@
 obj-y += lib/
 obj-$(CONFIG_MMU) += mmu/
+obj-$(CONFIG_MPU) += mpu/
 
 obj-$(CONFIG_EARLY_PRINTK) += debug.o
 obj-y += domctl.o
diff --git a/xen/arch/arm/arm32/mpu/Makefile b/xen/arch/arm/arm32/mpu/Makefile
new file mode 100644
index 0000000000..3340058c08
--- /dev/null
+++ b/xen/arch/arm/arm32/mpu/Makefile
@@ -0,0 +1 @@
+obj-y += head.o
diff --git a/xen/arch/arm/arm32/mpu/head.S b/xen/arch/arm/arm32/mpu/head.S
new file mode 100644
index 0000000000..b2c5245e51
--- /dev/null
+++ b/xen/arch/arm/arm32/mpu/head.S
@@ -0,0 +1,104 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Start-of-day code for an Armv8-R-AArch32 MPU system.
+ */
+
+#include <asm/arm32/macros.h>
+#include <asm/arm32/sysregs.h>
+#include <asm/cpregs.h>
+#include <asm/mpu.h>
+#include <asm/mpu/regions.inc>
+#include <asm/page.h>
+
+/*
+ * Set up the memory attribute type tables and 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 AArch32 architecture is
+ * IMPLEMENTATION DEFINED, we intend to turn off the Background region here.
+ *
+ * Clobbers r0
+ */
+FUNC_LOCAL(enable_mpu)
+    /* Set up memory attribute type tables */
+    mov_w r0, MAIR0VAL
+    mcr   CP32(r0, HMAIR0)
+    mov_w r0, MAIR1VAL
+    mcr   CP32(r0, HMAIR1)
+
+    mrc   CP32(r0, HSCTLR)
+    bic   r0, r0, #SCTLR_ELx_BR       /* Disable Background region */
+    orr   r0, r0, #SCTLR_Axx_ELx_M    /* Enable MPU */
+    orr   r0, r0, #SCTLR_Axx_ELx_C    /* Enable D-cache */
+    mcr   CP32(r0, HSCTLR)
+    isb
+
+    ret
+END(enable_mpu)
+
+/*
+ * Maps the various sections of Xen (described in xen.lds.S) as different MPU
+ * regions.
+ *
+ * Clobbers r0 - r5
+ *
+ */
+FUNC(enable_boot_cpu_mm)
+    /* Get the number of regions specified in MPUIR_EL2 */
+    mrc   CP32(r5, MPUIR_EL2)
+    and   r5, r5, #NUM_MPU_REGIONS_MASK
+
+    /* x0: region sel */
+    mov   r0, #0
+    /* Xen text section. */
+    mov_w   r1, _stext
+    mov_w   r2, _etext
+    prepare_xen_region r0, r1, r2, r3, r4, r5, attr_prbar=REGION_TEXT_PRBAR
+
+    /* Xen read-only data section. */
+    mov_w   r1, _srodata
+    mov_w   r2, _erodata
+    prepare_xen_region r0, r1, r2, r3, r4, r5, attr_prbar=REGION_RO_PRBAR
+
+    /* Xen read-only after init and data section. (RW data) */
+    mov_w   r1, __ro_after_init_start
+    mov_w   r2, __init_begin
+    prepare_xen_region r0, r1, r2, r3, r4, r5
+
+    /* Xen code section. */
+    mov_w   r1, __init_begin
+    mov_w   r2, __init_data_begin
+    prepare_xen_region r0, r1, r2, r3, r4, r5, attr_prbar=REGION_TEXT_PRBAR
+
+    /* Xen data and BSS section. */
+    mov_w   r1, __init_data_begin
+    mov_w   r2, __bss_end
+    prepare_xen_region r0, r1, r2, r3, r4, r5
+
+#ifdef CONFIG_EARLY_PRINTK
+    /* Xen early UART section. */
+    mov_w   r1, CONFIG_EARLY_UART_BASE_ADDRESS
+    mov_w   r2, (CONFIG_EARLY_UART_BASE_ADDRESS + CONFIG_EARLY_UART_SIZE)
+    prepare_xen_region r0, r1, r2, r3, r4, r5, attr_prbar=REGION_DEVICE_PRBAR, attr_prlar=REGION_DEVICE_PRLAR
+#endif
+
+    b    enable_mpu
+END(enable_boot_cpu_mm)
+
+/*
+ * We don't yet support secondary CPUs bring-up. Implement a dummy helper to
+ * please the common code.
+ */
+FUNC(enable_secondary_cpu_mm)
+    PRINT("- SMP not enabled yet -\r\n")
+1:  wfe
+    b 1b
+END(enable_secondary_cpu_mm)
+
+/*
+ * Local variables:
+ * mode: ASM
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/xen/arch/arm/include/asm/arm32/sysregs.h b/xen/arch/arm/include/asm/arm32/sysregs.h
index 22871999af..8d7b95d982 100644
--- a/xen/arch/arm/include/asm/arm32/sysregs.h
+++ b/xen/arch/arm/include/asm/arm32/sysregs.h
@@ -20,6 +20,15 @@
  * uses r0 as a placeholder register. */
 #define CMD_CP32(name...)      "mcr " __stringify(CP32(r0, name)) ";"
 
+#define REGION_TEXT_PRBAR       0x18    /* SH=11 AP=10 XN=0 */
+#define REGION_RO_PRBAR         0x1D    /* SH=11 AP=10 XN=1 */
+#define REGION_DATA_PRBAR       0x19    /* SH=11 AP=00 XN=1 */
+#define REGION_DEVICE_PRBAR     0x11    /* SH=10 AP=00 XN=1 */
+
+#ifdef __ASSEMBLY__
+#define WRITE_SYSREG_ASM(v, name) mcr CP32(v, name)
+#endif /* __ASSEMBLY__ */
+
 #ifndef __ASSEMBLY__
 
 /* C wrappers */
diff --git a/xen/arch/arm/include/asm/cpregs.h b/xen/arch/arm/include/asm/cpregs.h
index aec9e8f329..a7503a190f 100644
--- a/xen/arch/arm/include/asm/cpregs.h
+++ b/xen/arch/arm/include/asm/cpregs.h
@@ -1,6 +1,8 @@
 #ifndef __ASM_ARM_CPREGS_H
 #define __ASM_ARM_CPREGS_H
 
+#include <asm/mpu/cpregs.h>
+
 /*
  * AArch32 Co-processor registers.
  *
diff --git a/xen/arch/arm/include/asm/mpu/cpregs.h b/xen/arch/arm/include/asm/mpu/cpregs.h
new file mode 100644
index 0000000000..e2f3b2264c
--- /dev/null
+++ b/xen/arch/arm/include/asm/mpu/cpregs.h
@@ -0,0 +1,27 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#ifndef __ASM_ARM_MPU_CPREGS_H
+#define __ASM_ARM_MPU_CPREGS_H
+
+#ifdef CONFIG_ARM_32
+
+/* CP15 CR0: MPU Type Register */
+#define HMPUIR          p15,4,c0,c0,4
+
+/* CP15 CR6: MPU Protection Region Base/Limit/Select Address Register */
+#define HPRSELR         p15,4,c6,c2,1
+#define PRBAR_EL2       p15,4,c6,c3,0
+#define PRLAR_EL2       p15,4,c6,c8,1
+
+#define MPUIR_EL2       HMPUIR
+#define PRSELR_EL2      HPRSELR
+
+#endif /* CONFIG_ARM_32 */
+#endif /* __ASM_ARM_MPU_CPREGS_H */
+
+/*
+ * Local variables:
+ * mode: ASM
+ * indent-tabs-mode: nil
+ * End:
+ */
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Fri Apr 11 11:05:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 11:05:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.947125.1344849 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3CCK-0007s0-0v; Fri, 11 Apr 2025 11:05:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 947125.1344849; Fri, 11 Apr 2025 11:05: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 1u3CCJ-0007rr-U2; Fri, 11 Apr 2025 11:05:23 +0000
Received: by outflank-mailman (input) for mailman id 947125;
 Fri, 11 Apr 2025 11:05: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=Klsp=W5=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1u3CCI-000723-IL
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 11:05:22 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on2062a.outbound.protection.outlook.com
 [2a01:111:f403:2414::62a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id dbb127f8-16c4-11f0-9ead-5ba50f476ded;
 Fri, 11 Apr 2025 13:05:21 +0200 (CEST)
Received: from CH2PR08CA0004.namprd08.prod.outlook.com (2603:10b6:610:5a::14)
 by CY5PR12MB6033.namprd12.prod.outlook.com (2603:10b6:930:2f::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.28; Fri, 11 Apr
 2025 11:05:15 +0000
Received: from DS3PEPF0000C37B.namprd04.prod.outlook.com
 (2603:10b6:610:5a:cafe::68) by CH2PR08CA0004.outlook.office365.com
 (2603:10b6:610:5a::14) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8606.36 via Frontend Transport; Fri,
 11 Apr 2025 11:05:14 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 DS3PEPF0000C37B.mail.protection.outlook.com (10.167.23.5) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Fri, 11 Apr 2025 11:05:14 +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, 11 Apr
 2025 06:05:13 -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, 11 Apr
 2025 06:05:13 -0500
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, 11 Apr 2025 06:05:12 -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: dbb127f8-16c4-11f0-9ead-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=fbCSG9z1KMuQCzeF4QiHQqMcRV1evA+vZF5YEu1+NBrcm+G8pz+1hE6Sd6DTze9KHqu72DCF5p3mxDvA2WJf4/vr1whuhR23abb7rESfea0582nfh50zbSOI7H4SC87g5VVSUVptFeiWsWLxocEY0XtycJ7bYUc3OS1IN/9os7WvXy7UlJZYVL//a6GiHleP69KCzoS5ZRejg1a1ZLbLBak3Bdpz0GXYlZRQm6CS7JDp4ICfDa8RFD6XtVW+SZ9+/Q7W0K2OznobJfo2dRxH6jabTn1Bi6TUnGb4Sf+6XI8S4Ocr4x2BWVyd2Hv9IDK1qUAJ4yq3LgtYcAssSKQIsA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=cc4opU6YI2yYLbKnZe7qP3Yd20AGrBwwf09XYqyGIzE=;
 b=jy1HPM0WHCrZSlAWI/ThvfYslHCpG2LhOe9QmCx6Ql43/YiFHro/ROgmNCFGZf+j1xOb7yjOMqguM8rE/YTzhLAtw6MBfu9TS+IzAqS2xQkvQMHvUQIVUE61MbO1YMxKxKYqVj9EjDxnJrptv0idYzHilkgcRIs+GjGSXx4xDsEumRM6Cwr9YT70mOyVuM0SAn4vm8X1/pOeL9ZUKmosXkrfUXI73B4gzG7+9G+nKyK34IKG6LRgK6JXl6JDU1Wlw3BenEHgQrzR4sormcnLbBTfO/Kyqy9t27e4lFJKSRcZEGB0Vtanm3YaId38QQgAH4ASLWHV/K2o289vVuQ/9A==
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=cc4opU6YI2yYLbKnZe7qP3Yd20AGrBwwf09XYqyGIzE=;
 b=K8ViVW/o4/R8r6+Jy+30cN0gratcqxke78Z9crk/dvW5YwN0vICTSwgpRDTEACwRdzzi2EJePiERf/CR81qtNmXqpuBadbjEaAFR5wGJhlxYgc2Li47kJDMqAqBDWtm/PwB4EOjfVcB2wSs3Qoow8YHmm+QwOxOksnbni+SRClE=
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>
Subject: [PATCH v6 3/3] xen/arm32: mpu: Stubs to build MPU for arm32
Date: Fri, 11 Apr 2025 12:04:52 +0100
Message-ID: <20250411110452.3748186-4-ayan.kumar.halder@amd.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20250411110452.3748186-1-ayan.kumar.halder@amd.com>
References: <20250411110452.3748186-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: DS3PEPF0000C37B:EE_|CY5PR12MB6033:EE_
X-MS-Office365-Filtering-Correlation-Id: c794ece0-f06f-4112-cb73-08dd78e8bc50
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|376014|1800799024|36860700013|13003099007;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?EUt1SKviKFKTUUl3TWWO9TkfuttX7f8VYs0ci339KZnCgxX08C9lAjVmzAlc?=
 =?us-ascii?Q?XhyoN9+lgWd86g8Zx6rQ7FgWFQycqJmgQ1BnA0XDMEenDIa/lBrfjWEA30t0?=
 =?us-ascii?Q?H4XsdXldCN8lpbIpTIYplDl0VKdu4dGCEPW14TUGxLJI/onuQb9FE2dcX1YT?=
 =?us-ascii?Q?43fsbyXze+MQyLg9RUTZykeuRmbyuFNMRiHEPEOwGwG0BJLs4zA1DqQtneKP?=
 =?us-ascii?Q?MKnRKzYuL4pAGhp0JeD3+qytHfw3HFTmzENF00hUPWqWzOjChSLk/wiQ2dD9?=
 =?us-ascii?Q?PeBJemQm5oDAWvdfX1Vy89YOM96Rva4zEiwzcTWZQsEu9dcnyfvDXSPrUQxC?=
 =?us-ascii?Q?exHR0TkDdE7TjK85S3+CfwxpPMfGYBVWUPoOOJM9uuAowRw+Y/wwFVwrBLgg?=
 =?us-ascii?Q?rXDqdrSCpq3A0+fhdvfIZTuMDfZ9akW9w3UkB2DhbJ38NoM6hwh+4gfnvrbC?=
 =?us-ascii?Q?ueBK4MBMvsqd8QhsrEr+tDd93Au5K4N5b96AHreypbb1mp0F5fejJ4+bDRA4?=
 =?us-ascii?Q?2xM7smzeRtUmi5AP1sZUmXolVUgc8WvHQjCaf9d6otTCijUtrxAqEfQ6wcTq?=
 =?us-ascii?Q?Z0YY0Vv3omsVjBugvUJDNmCQr3OOWUsitnWRC5i8cMUaV1ZWCJgUFrvJheET?=
 =?us-ascii?Q?+ye363EK10aOxH3KE4GsZHIDY9siSTZrNcFI+nFvm0NvACoikxgbIg41uWxn?=
 =?us-ascii?Q?86rOl8jgwcPrC3rRNK8OdXCwx0EcG5rK8IWqbV5bWF9DakDRITkJ2Kdtxees?=
 =?us-ascii?Q?/kk1JSyJ05bhn/Rkqt7QACvN9IMl/VceCkPj46uZl1mAork1yyKFlYdg+hu/?=
 =?us-ascii?Q?t5K24cjY3oO513mvKKg2u9wB00ewL+8IP/NDI91q8AK59qwiBdwHZTCXLtnm?=
 =?us-ascii?Q?rmLhjh6o69I2LDMKeOG+jubvFj8rnUFr/5sEbrMHf0SG7FdMWEScvj0A38Dn?=
 =?us-ascii?Q?P8TVk3Vxp4K1+Xhcz3sRhHtH7CNPATaN5LsIKFqSkjhCnccrsx5NMr0ZQLG3?=
 =?us-ascii?Q?+fP3T8zZCNaMgnMrbnmnZJSq/8UGF2Iyeg/RddaYTWW1LdLHWQeWVGYLHXJN?=
 =?us-ascii?Q?yd1kpyjQxs/y0LXjYf5oYcer4U6O7Yd9BAe7uFAEYiucg+3xJGsAQzLaEsqr?=
 =?us-ascii?Q?2Asx14sq4S2nDDoxekeaGrXp5ime19dNp8bvxIseMIedHGkg1X+jxGwgOFzq?=
 =?us-ascii?Q?zLkji8VQb0BfczS2oW/wBoouACBFE/X9E0egjnUk79oR05nU4yeV3TDa8zGj?=
 =?us-ascii?Q?B0f4BiJE29/6Mf4DvMmA0ERTJQXFrzIztCKJmTXVpUwq4ItZvV8gGzWoqKuB?=
 =?us-ascii?Q?W4l9o3JTFmKmff5EBes2g4RgbCvH6ShI0Vn0GgpROWCgOqRV3RC+pTZGtyr1?=
 =?us-ascii?Q?Ovy4k/KSuk0qYmDBxa5XR4AubKRQancuXogFHa5+BLQjHFjbTos2TP0PHV2D?=
 =?us-ascii?Q?WPPrWaSTNcsE/sFhEA6uqKSYtDBRwVu0f5LxLRv4ohIj9TociYMShL4gdjCP?=
 =?us-ascii?Q?JJWUEged4ZJFe0oHaPMpSFA+D+lvrwAw2vr9?=
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)(376014)(1800799024)(36860700013)(13003099007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Apr 2025 11:05:14.2698
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: c794ece0-f06f-4112-cb73-08dd78e8bc50
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:
	DS3PEPF0000C37B.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR12MB6033

Add stubs to enable compilation.

is_xen_heap_page() and is_xen_heap_mfn() are not implemented for arm32 MPU.
Thus, introduce the stubs for these functions in asm/mpu/mm.h and move the
original code to asm/mmu/mm.h (as it is used for arm32 MMU based system).

Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>
---
Changes from :-

v1, v2 -
1. New patch introduced in v3.
2. Should be applied on top of
https://patchwork.kernel.org/project/xen-devel/cover/20250316192445.2376484-1-luca.fancellu@arm.com/

v3 -
1. Add stubs for map_domain_page() and similar functions.

2. 'BUG_ON("unimplemented")' is kept in all the stubs.

v4 - 
1. is_xen_heap_mfn() macros are defined across mpu/mm.h (ARM32 specific)
, mmu/mm.h (ARM32 specific) and asm/mm.h (ARM64 specific)

2. s/(void*)0/NULL

v5 -
1. Add the headers for smpboot.c, domain_page.c and p2m.c.

2. Inclusion of headers and makefile entries are sorted alphabetically.

3. Update the commit message and style changes.

 xen/arch/arm/arm32/mpu/Makefile   |  2 ++
 xen/arch/arm/arm32/mpu/p2m.c      | 19 +++++++++++++
 xen/arch/arm/arm32/mpu/smpboot.c  | 26 ++++++++++++++++++
 xen/arch/arm/include/asm/mm.h     |  9 +------
 xen/arch/arm/include/asm/mmu/mm.h |  7 +++++
 xen/arch/arm/include/asm/mpu/mm.h |  5 ++++
 xen/arch/arm/mpu/Makefile         |  1 +
 xen/arch/arm/mpu/domain_page.c    | 45 +++++++++++++++++++++++++++++++
 8 files changed, 106 insertions(+), 8 deletions(-)
 create mode 100644 xen/arch/arm/arm32/mpu/p2m.c
 create mode 100644 xen/arch/arm/arm32/mpu/smpboot.c
 create mode 100644 xen/arch/arm/mpu/domain_page.c

diff --git a/xen/arch/arm/arm32/mpu/Makefile b/xen/arch/arm/arm32/mpu/Makefile
index 3340058c08..cf0540aecc 100644
--- a/xen/arch/arm/arm32/mpu/Makefile
+++ b/xen/arch/arm/arm32/mpu/Makefile
@@ -1 +1,3 @@
 obj-y += head.o
+obj-y += p2m.o
+obj-y += smpboot.o
diff --git a/xen/arch/arm/arm32/mpu/p2m.c b/xen/arch/arm/arm32/mpu/p2m.c
new file mode 100644
index 0000000000..3d9abe4400
--- /dev/null
+++ b/xen/arch/arm/arm32/mpu/p2m.c
@@ -0,0 +1,19 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <asm/p2m.h>
+#include <xen/bug.h>
+#include <xen/init.h>
+
+void __init setup_virt_paging(void)
+{
+    BUG_ON("unimplemented");
+}
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/xen/arch/arm/arm32/mpu/smpboot.c b/xen/arch/arm/arm32/mpu/smpboot.c
new file mode 100644
index 0000000000..5090f443f5
--- /dev/null
+++ b/xen/arch/arm/arm32/mpu/smpboot.c
@@ -0,0 +1,26 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <xen/bug.h>
+#include <xen/errno.h>
+#include <xen/mm.h>
+#include <xen/stdbool.h>
+
+int prepare_secondary_mm(int cpu)
+{
+    BUG_ON("unimplemented");
+    return -EINVAL;
+}
+
+void update_boot_mapping(bool enable)
+{
+    BUG_ON("unimplemented");
+}
+
+/*
+ * 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 fbffaccef4..5b67c0f8bb 100644
--- a/xen/arch/arm/include/asm/mm.h
+++ b/xen/arch/arm/include/asm/mm.h
@@ -170,14 +170,7 @@ struct page_info
 #define _PGC_need_scrub   _PGC_allocated
 #define PGC_need_scrub    PGC_allocated
 
-#ifdef CONFIG_ARM_32
-#define is_xen_heap_page(page) is_xen_heap_mfn(page_to_mfn(page))
-#define is_xen_heap_mfn(mfn) ({                                 \
-    unsigned long mfn_ = mfn_x(mfn);                            \
-    (mfn_ >= mfn_x(directmap_mfn_start) &&                      \
-     mfn_ < mfn_x(directmap_mfn_end));                          \
-})
-#else
+#ifdef CONFIG_ARM_64
 #define is_xen_heap_page(page) ((page)->count_info & PGC_xen_heap)
 #define is_xen_heap_mfn(mfn) \
     (mfn_valid(mfn) && is_xen_heap_page(mfn_to_page(mfn)))
diff --git a/xen/arch/arm/include/asm/mmu/mm.h b/xen/arch/arm/include/asm/mmu/mm.h
index caba987edc..7f4d59137d 100644
--- a/xen/arch/arm/include/asm/mmu/mm.h
+++ b/xen/arch/arm/include/asm/mmu/mm.h
@@ -27,6 +27,13 @@ extern unsigned long directmap_base_pdx;
 })
 
 #ifdef CONFIG_ARM_32
+#define is_xen_heap_page(page) is_xen_heap_mfn(page_to_mfn(page))
+#define is_xen_heap_mfn(mfn) ({                                 \
+    unsigned long mfn_ = mfn_x(mfn);                            \
+    (mfn_ >= mfn_x(directmap_mfn_start) &&                      \
+     mfn_ < mfn_x(directmap_mfn_end));                          \
+})
+
 /**
  * Find the virtual address corresponding to a machine address
  *
diff --git a/xen/arch/arm/include/asm/mpu/mm.h b/xen/arch/arm/include/asm/mpu/mm.h
index 86f33d9836..bfd840fa5d 100644
--- a/xen/arch/arm/include/asm/mpu/mm.h
+++ b/xen/arch/arm/include/asm/mpu/mm.h
@@ -13,6 +13,11 @@ extern struct page_info *frame_table;
 
 #define virt_to_maddr(va) ((paddr_t)((vaddr_t)(va) & PADDR_MASK))
 
+#ifdef CONFIG_ARM_32
+#define is_xen_heap_page(page) ({ BUG_ON("unimplemented"); false; })
+#define is_xen_heap_mfn(mfn) ({ BUG_ON("unimplemented"); false; })
+#endif
+
 /* On MPU systems there is no translation, ma == va. */
 static inline void *maddr_to_virt(paddr_t ma)
 {
diff --git a/xen/arch/arm/mpu/Makefile b/xen/arch/arm/mpu/Makefile
index 21bbc517b5..c7e3aa4d87 100644
--- a/xen/arch/arm/mpu/Makefile
+++ b/xen/arch/arm/mpu/Makefile
@@ -1,3 +1,4 @@
+obj-$(CONFIG_ARM_32) += domain_page.o
 obj-y += mm.o
 obj-y += p2m.o
 obj-y += setup.init.o
diff --git a/xen/arch/arm/mpu/domain_page.c b/xen/arch/arm/mpu/domain_page.c
new file mode 100644
index 0000000000..9e30970588
--- /dev/null
+++ b/xen/arch/arm/mpu/domain_page.c
@@ -0,0 +1,45 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+
+#include <xen/bug.h>
+#include <xen/domain_page.h>
+#include <xen/mm-frame.h>
+#include <xen/types.h>
+
+void *map_domain_page_global(mfn_t mfn)
+{
+    BUG_ON("unimplemented");
+    return NULL;
+}
+
+/* Map a page of domheap memory */
+void *map_domain_page(mfn_t mfn)
+{
+    BUG_ON("unimplemented");
+    return NULL;
+}
+
+/* Release a mapping taken with map_domain_page() */
+void unmap_domain_page(const void *ptr)
+{
+    BUG_ON("unimplemented");
+}
+
+mfn_t domain_page_map_to_mfn(const void *ptr)
+{
+    BUG_ON("unimplemented");
+    return INVALID_MFN;
+}
+
+void unmap_domain_page_global(const void *va)
+{
+    BUG_ON("unimplemented");
+}
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Fri Apr 11 11:07:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 11:07:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.947148.1344859 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3CDj-0000gE-DZ; Fri, 11 Apr 2025 11:06:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 947148.1344859; Fri, 11 Apr 2025 11:06:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3CDj-0000g7-9h; Fri, 11 Apr 2025 11:06:51 +0000
Received: by outflank-mailman (input) for mailman id 947148;
 Fri, 11 Apr 2025 11:06: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=5hfk=W5=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1u3CDi-0000fz-OJ
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 11:06:50 +0000
Received: from fout-a2-smtp.messagingengine.com
 (fout-a2-smtp.messagingengine.com [103.168.172.145])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0de9e39d-16c5-11f0-9ffb-bf95429c2676;
 Fri, 11 Apr 2025 13:06:45 +0200 (CEST)
Received: from phl-compute-02.internal (phl-compute-02.phl.internal
 [10.202.2.42])
 by mailfout.phl.internal (Postfix) with ESMTP id B3BD013801F8;
 Fri, 11 Apr 2025 07:06:44 -0400 (EDT)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-02.internal (MEProxy); Fri, 11 Apr 2025 07:06:44 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri,
 11 Apr 2025 07:06:43 -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: 0de9e39d-16c5-11f0-9ffb-bf95429c2676
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=fm2; t=1744369604;
	 x=1744456004; bh=SgC2Y+59y1EVh7+yfXQx0vcZfBH8YY34cmY/cQn7Ubo=; b=
	bmcgkGECZIjHhtyYjDqXnW1NssFH5gFwb085RRKlXKyyE4XkvlK5V1EMFb0SYFgp
	8bc0Bxhe5snpFUB3Va6dNO7VIo/SQ9gYZia330UcVBuZ/bKEGAbGpJDzPhCBtxsr
	ITCdAxU9d46lr1+qpWSsAB7T+HHZ4Y5BdRBscnm4bD5pGKz0gvhE/4M7vpVgnRtO
	N21YKE/qEBcvXIkcZ/uXu7mNjNSYAytQLCXiZDFcxb2Grgj2vK4gANaKZWgiHQP+
	Fcb8kWl+nX/wc7bm7ghHaCnTomZqe5b3cFnIUzGKE/TYbDiemQHHaduoBqoYvWeW
	/YcW/Iwodff/nz/SORDcJQ==
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=fm2; t=
	1744369604; x=1744456004; bh=SgC2Y+59y1EVh7+yfXQx0vcZfBH8YY34cmY
	/cQn7Ubo=; b=U+EIf0wKUvqhq30P+zJooUFn0wb8OzLUswLKyRmhn4zt2EIH4yd
	t/IhMmziejrlDa+sgpjzmGEY1OfYqNFyejswTX2s46yk7qboQSKLs1H7D13VtgKl
	eOo/VpOLiya3kgsHVP63nQcAToceiTpVTzdGLcHTrQC5bGctujYRQ8qLwZ5rqBA0
	AdhPAAj51E/8dfJQL4U+yTOGtEbtWOQur9nJUtvRv0srdpsTHHtZBaf8GspUFFeM
	vdQ1KfV0DRwIfZKDnOvDQDXsNI+Sl3YZhVVog7PkQrTvWmNeuELy0KgUFChOoCTR
	/TIG4P9T704nEBMR0TkY9S4AQHbirrhYAmA==
X-ME-Sender: <xms:xPf4Z06je7E-J0D3UIIaV9s2hglKkgHZhaYY5Zxf1md0ECAB866Fig>
    <xme:xPf4Z164Oh6s6IXkn2ytirpVAxd0NmNbbYg4wF59sfCbyP-NYdnFRFEo0PiB7vmVj
    wBGGA6dZud1Kw>
X-ME-Received: <xmr:xPf4ZzdMrRJn2qtVSPXdhb-7zqx9U3e_2SUkDuA6zKMv98g2dedMoNCjFhmxfD1OHIxg3Ftw4caNUJph2vf0nXH0rLRR9p9tjw>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvudduieegucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
    pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
    gvnhhtshculddquddttddmnecujfgurhepfffhvfevuffkfhggtggujgesghdtreertddt
    jeenucfhrhhomhepofgrrhgvkhcuofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuc
    eomhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecu
    ggftrfgrthhtvghrnhepgfduleetfeevhfefheeiteeliefhjefhleduveetteekveettd
    dvgeeuteefjedunecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhf
    rhhomhepmhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomh
    dpnhgspghrtghpthhtohepiedpmhhouggvpehsmhhtphhouhhtpdhrtghpthhtoheprghn
    ughrvgifrdgtohhophgvrhefsegtihhtrhhigidrtghomhdprhgtphhtthhopeigvghnqd
    guvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdprhgtphhtthhopegr
    nhhthhhonhihrdhpvghrrghrugesvhgrthgvshdrthgvtghhpdhrtghpthhtohepshhsth
    grsggvlhhlihhniheskhgvrhhnvghlrdhorhhgpdhrtghpthhtohepmhhitghhrghlrdho
    rhiivghlsegrmhgurdgtohhmpdhrtghpthhtoheptggrrhguohgvsegtrghrughovgdrtg
    homh
X-ME-Proxy: <xmx:xPf4Z5JJ2t8XQXezRp4qFccOkrhk7lVfmBb8HmClxExCQjLaOqqN5w>
    <xmx:xPf4Z4JD5hixPOHGmaVZt-muwjIfbUxkbqCi4fiTjYk2FYf6OxP8Ow>
    <xmx:xPf4Z6wmcPO4pgaOVRzAXXWeV0feOm_NQXrIsxkQKR8IhQsLVY8qhg>
    <xmx:xPf4Z8KQrKq1g3ijXESTOPmB4hoq_EgR9wmQg6rLuA73r8DIGxXeYA>
    <xmx:xPf4Z5fR2Fl0JWXtPheJiwpo55wCWKg5QoDaJyCZAffhtlV9iDCOGIIA>
Feedback-ID: i1568416f:Fastmail
Date: Fri, 11 Apr 2025 13:06:40 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>,
	Doug Goldstein <cardoe@cardoe.com>
Subject: Re: [PATCH 1/3] Rework rootfs generation to make a cpio archive
Message-ID: <Z_j3wXtigDHb6i6P@mail-itl>
References: <20250411105217.2141356-1-andrew.cooper3@citrix.com>
 <20250411105217.2141356-2-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="rS4cfipOqjcGLxrj"
Content-Disposition: inline
In-Reply-To: <20250411105217.2141356-2-andrew.cooper3@citrix.com>


--rS4cfipOqjcGLxrj
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Fri, 11 Apr 2025 13:06:40 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>,
	Doug Goldstein <cardoe@cardoe.com>
Subject: Re: [PATCH 1/3] Rework rootfs generation to make a cpio archive

On Fri, Apr 11, 2025 at 11:52:15AM +0100, Andrew Cooper wrote:
> Rename the script as we're going to use it for ARM64 shortly, and have it=
 take
> a tar or cpio parameter to determine the output format.
>=20
> Turn it into a proper bash script, and provide the cpio form under the new
> artefact naming scheme.
>=20
> No functional change.
>=20
> 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: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblethingslab.com>
> ---
>  .gitlab-ci.yml                                |  9 +++++++-
>  ...6_64-rootfs-alpine.sh =3D> alpine-rootfs.sh} | 21 +++++++++++++++++--
>  2 files changed, 27 insertions(+), 3 deletions(-)
>  rename scripts/{x86_64-rootfs-alpine.sh =3D> alpine-rootfs.sh} (75%)
>=20
> diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
> index 1d2c72b268a3..916c5ae9d508 100644
> --- a/.gitlab-ci.yml
> +++ b/.gitlab-ci.yml
> @@ -42,6 +42,13 @@ linux-6.6.86-arm64:
>  #
>  # x86_64 artifacts
>  #
> +alpine-3.18-x86_64-rootfs:
> +  extends: .x86_64-artifacts
> +  script:
> +    - ./scripts/alpine-rootfs.sh cpio
> +  variables:
> +    CONTAINER: alpine:3.18-x86_64-base
> +
>  linux-6.6.56-x86_64:
>    extends: .x86_64-artifacts
>    script: ./scripts/build-linux.sh
> @@ -62,7 +69,7 @@ x86_64-kernel-linux-6.6.56:
>  x86_64-rootfs-alpine-3.18:
>    extends: .x86_64-artifacts
>    script:
> -    - . scripts/x86_64-rootfs-alpine.sh
> +    - ./scripts/alpine-rootfs.sh tar
>    variables:
>      CONTAINER: alpine:3.18-x86_64-base
> =20
> diff --git a/scripts/x86_64-rootfs-alpine.sh b/scripts/alpine-rootfs.sh
> similarity index 75%
> rename from scripts/x86_64-rootfs-alpine.sh
> rename to scripts/alpine-rootfs.sh
> index b70b3a54ede5..c29c92d1c682 100755
> --- a/scripts/x86_64-rootfs-alpine.sh
> +++ b/scripts/alpine-rootfs.sh
> @@ -1,4 +1,9 @@
> +#!/bin/bash
> +
> +set -eu
> +
>  WORKDIR=3D"${PWD}"
> +COPYDIR=3D"${WORKDIR}/binaries"
> =20
>  apk update
> =20
> @@ -56,5 +61,17 @@ passwd -d "root" root
> =20
>  # Create rootfs
>  cd /
> -tar cvzf "${WORKDIR}/binaries/initrd.tar.gz" \
> -    bin dev etc home init lib mnt opt root sbin usr var
> +PATHS=3D"bin dev etc home init lib mnt opt root sbin usr var"
> +
> +case $1 in
> +    cpio)
> +        find $PATHS | cpio -o -H newc | gzip > "${COPYDIR}/rootfs.cpio.g=
z"
> +
> +        # Print the contents for the build log
> +        zcat "${COPYDIR}/rootfs.cpio.gz" | cpio -tv

add 'v' to cpio above instead?

> +        ;;
> +
> +    tar)
> +        tar cvzf "${COPYDIR}/initrd.tar.gz" $PATHS
> +        ;;
> +esac
> --=20
> 2.39.5
>=20

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmf498EACgkQ24/THMrX
1yyd0Qf9E9JpHgn3SkVElUQygmsoZlV5t3+nKYMjilKrQ+3p17kEsbdL9kbYd711
tLw//ztpkSB9OMKebHg31PT/gegxrzWdF4xb7gdR22frB2ab6EYMBy2gUECk9MQn
eCJIHF6xr9wJ+GZ1TVK0zfIc+U+DTm/2sAoCqIDEw1oX2skqaKeH6W1a4Evaxda8
46We65+VNos4Qs4VQCka6ly9Mif+cYfZj3By/mC5rHQIGp78lbYrYvryslfLW0Kz
/2/wuM04BO8VqQTgsgZywaOftEK5/7SUEX9tO0xAgxZqzovHBOILOXSKKhUPg8UI
7oChOQmdsW02HUCG266O0V7qhT7GAQ==
=Cw7F
-----END PGP SIGNATURE-----

--rS4cfipOqjcGLxrj--


From xen-devel-bounces@lists.xenproject.org Fri Apr 11 11:09:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 11:09:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.947163.1344868 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3CGP-0001Ii-On; Fri, 11 Apr 2025 11:09:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 947163.1344868; Fri, 11 Apr 2025 11: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 1u3CGP-0001Ib-M1; Fri, 11 Apr 2025 11:09:37 +0000
Received: by outflank-mailman (input) for mailman id 947163;
 Fri, 11 Apr 2025 11:09: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=cS7z=W5=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u3CGO-0001IV-VF
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 11:09:36 +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 740b05e9-16c5-11f0-9ead-5ba50f476ded;
 Fri, 11 Apr 2025 13:09:36 +0200 (CEST)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-43cf05f0c3eso13462805e9.0
 for <xen-devel@lists.xenproject.org>; Fri, 11 Apr 2025 04:09:36 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43f207c914csm82446135e9.39.2025.04.11.04.09.34
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 11 Apr 2025 04:09:35 -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: 740b05e9-16c5-11f0-9ead-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744369775; x=1744974575; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=GpkDUF2B4ZmJyhVJOCAVqfj6tOpE2lJKiNHKIUc++QU=;
        b=bOomSp0ZMKZJiP+Vij/nZdqmuL7pmWu84U3AeI+fE6eznJNa31w7GqB88YHzmB38HA
         WtWB05w17od0GsGPtGSYY+aI3L3gMUzfDsBO9YfdPjWnvjaDrTvDULt9sKgRiFe30/6G
         smxQSn7TS9F1Y7cO2WE13P6hO2h5Ap4RN+JuY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744369775; x=1744974575;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=GpkDUF2B4ZmJyhVJOCAVqfj6tOpE2lJKiNHKIUc++QU=;
        b=MpwUMTHmRvkmizjAkD4VoYLJKIuP/nEbKE/TrKzoUuEKqapmiZ/nvSIJh5VAZB2OQA
         2Mzpm5jKysvBQJ5BKd34XBg3ZeBDf5wpsuOU/0NvSrGW3bNCUkPPISbH4qeGQ0FhVT3Y
         Umx5rjhvtIPGf8xvU6w//loAm9R4Etd2ZkK9jnTmPKs+r237nkfGCm3Y0FWP7boAVFvL
         psM3PsZHhtSNisyJGRE+ZW9DdOAoWGL6BVPgOIfKJcLqkxCTEt74gAMXTrT85sYt2aK1
         nI9CnBFIOmrcyoLDxp/i8U3/RF0CGszTwg0tgUd/KTwzYaA0seoblSbCxXZ1rcEAqaax
         FvqQ==
X-Gm-Message-State: AOJu0YxMmu/nVQnm6RUqMm3sbHgWqKLo34nP3At18TRZSWR83RwK5VJc
	UMPXFxyca37OwDQOEygrtArKg86QNqUT29Hw2Eae3xfbXOerh0K1ch9FHPQkuSE=
X-Gm-Gg: ASbGncvlHXge7VQ1t7mA7UYetOVmNTAaHFpru87sNKTWBP996ILFmivkQAGAxxLs5Qr
	rD0JNA/8WdhP8cC61UNehtHg/nsEBfyH6EBhcbT/flr8lUiVAoHNxz8Fqp0zIqasiOEcpgTfRi4
	S/V15iqI8pPB/O+p10yTHR49AA15H5JudjW9Q6tQ2iNfm2yxDPVJ8wOdFgvLCthDcOKC+ydIeja
	JkiJRvlJ0bAWVM/q9fVsprezEthuvHdWD7D24/JmqD6Q+HSX4Yf68KxTurbdoB2S6vIAijYtr34
	Ka43AlRxgM0tKBN9n1sUz7LADDXwYXNjF4KicM4qp6oluuFlxaX/Ev15K49aCBRPNhyGBzWuP7v
	YRrafXw==
X-Google-Smtp-Source: AGHT+IGpAkhpF/T8Rk9MWQQW+JG1mF684JQDF2s6lyNUQz9YtQHTlCP67mkuPMna86SNIPAmQstCKQ==
X-Received: by 2002:a05:6000:420a:b0:391:40b8:e890 with SMTP id ffacd0b85a97d-39ea51f5d65mr1675189f8f.22.1744369775497;
        Fri, 11 Apr 2025 04:09:35 -0700 (PDT)
Message-ID: <de67e64b-beb8-4fb0-8ad2-323ff8ef53f9@citrix.com>
Date: Fri, 11 Apr 2025 12:09:34 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/3] Rework rootfs generation to make a cpio archive
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.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: <20250411105217.2141356-1-andrew.cooper3@citrix.com>
 <20250411105217.2141356-2-andrew.cooper3@citrix.com>
 <Z_j3wXtigDHb6i6P@mail-itl>
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: <Z_j3wXtigDHb6i6P@mail-itl>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 11/04/2025 12:06 pm, Marek Marczykowski-Górecki wrote:
> On Fri, Apr 11, 2025 at 11:52:15AM +0100, Andrew Cooper wrote:
>> diff --git a/scripts/x86_64-rootfs-alpine.sh b/scripts/alpine-rootfs.sh
>> similarity index 75%
>> rename from scripts/x86_64-rootfs-alpine.sh
>> rename to scripts/alpine-rootfs.sh
>> index b70b3a54ede5..c29c92d1c682 100755
>> --- a/scripts/x86_64-rootfs-alpine.sh
>> +++ b/scripts/alpine-rootfs.sh
>> @@ -56,5 +61,17 @@ passwd -d "root" root
>>  
>>  # Create rootfs
>>  cd /
>> -tar cvzf "${WORKDIR}/binaries/initrd.tar.gz" \
>> -    bin dev etc home init lib mnt opt root sbin usr var
>> +PATHS="bin dev etc home init lib mnt opt root sbin usr var"
>> +
>> +case $1 in
>> +    cpio)
>> +        find $PATHS | cpio -o -H newc | gzip > "${COPYDIR}/rootfs.cpio.gz"
>> +
>> +        # Print the contents for the build log
>> +        zcat "${COPYDIR}/rootfs.cpio.gz" | cpio -tv
> add 'v' to cpio above instead?

Oh, of course.  There's another instance of this pattern in argo, which
I'll fix up too.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Apr 11 11:10:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 11:10:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.947176.1344879 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3CGy-0002m9-5i; Fri, 11 Apr 2025 11:10:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 947176.1344879; Fri, 11 Apr 2025 11:10: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 1u3CGy-0002m2-1v; Fri, 11 Apr 2025 11:10:12 +0000
Received: by outflank-mailman (input) for mailman id 947176;
 Fri, 11 Apr 2025 11:10: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=cS7z=W5=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u3CGw-0001cC-Iv
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 11:10: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 87309bda-16c5-11f0-9ffb-bf95429c2676;
 Fri, 11 Apr 2025 13:10:08 +0200 (CEST)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-39141ffa9fcso2185289f8f.0
 for <xen-devel@lists.xenproject.org>; Fri, 11 Apr 2025 04:10:08 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39eae964089sm1703280f8f.15.2025.04.11.04.10.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 11 Apr 2025 04:10: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: 87309bda-16c5-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744369808; x=1744974608; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=BVsda8boPA924uY36PhnI2sUwN31bJ3e8fcRs/mNves=;
        b=fCacBdf3o6dJTA/ZtJU+o3qLOj7eUZDsprqWzWhle2+AgOQo3R5oBG+EeRt/ovw5dF
         jQhk7V9QkSAv2n8HgzrH8yw7pKFf/K689RJ6FpuBEQcPMw36OC2Kh+aEjquVzlRYNhom
         ByDvp56GXfH27/6JKYoWaO8xGn+/SEkwcrmcw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744369808; x=1744974608;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=BVsda8boPA924uY36PhnI2sUwN31bJ3e8fcRs/mNves=;
        b=wA1d1UcLsLQs9/hPYMtOR+a1q+nDRhF49iN8HqquGQqPvgAdit7J5l80bjdqacH+jh
         wtuZ3ERw7sPwNh6+BiFb9m88gXo7qzM78TiQmvcqXbdcTtDjM0lxs9mhnADnGKEbifvZ
         PnevZOGOsWt42vpPiWqi3QNjBdpCX1ndfUdpbJho9qnnrH9ULbz7MPtez8Kr0NYRaxF0
         whqz7jNCI2Uz/++R9Ww4iEaYOf/IdoJmg+LXcSgjjG/B1GCbkZRueUzCbrg+A80dVoMq
         G44d4OqnH7ntHvFqBkV0GqaR0t5oxhuUlDArSETtw8+Q5i3I4/+JvMvXYZMQBm+NbpSA
         2Daw==
X-Gm-Message-State: AOJu0YwpCSx6fB0SAt5B0TfnWLStG5WVtbkZQSpdz17KkdP8ydHPA+G7
	zcHzdvPlWpUPmLxpXB6pW6eHrcEA6rvZCNbijZlIjGJoGyClgN4K6o7/1t2rjek=
X-Gm-Gg: ASbGnctDJom+bQbyLGwnxm+hDCG3XAe+1Tk5AqFPNJCk+vWkdLgPM2Oev/0D/GBntm0
	Ud1yc/xRq1DgtOutLZ9eNg4NXlxCnrbI3kSd+nXObyhdCS55zMcYucI4Bxf5gPLfWOfq0gGzkoA
	QqzMczAxdDr9V40sr57nR2VX6uXaYY9hKo+/b/mQLlI7r6Pe+CWNmJPaBLxGRLsIL9h1N8eL+dw
	i/dhnD0LxB761l5Hp3PCsqH8GA22k0mklenVG1mmH+xJnkp/z/PEqYut7S0pPpAGO0YpTDvQHag
	BG6QuEzzqsuqeaKy+Jt5uYl4uH/vu1ZHxYfgKK57gh7OoikF6xugsKPM7eHyl+JiV3heoa7Vj6i
	9y5ZGGw==
X-Google-Smtp-Source: AGHT+IF3Bjik/4f5nlJt9lZuPbnm7MSt/+cjJKbq+wPzy6V+IqPdXlDZDoDBNsEhLhEHphjGDXopSg==
X-Received: by 2002:a5d:59ac:0:b0:39c:13fa:3eb with SMTP id ffacd0b85a97d-39eaaebab0dmr1601896f8f.39.1744369808068;
        Fri, 11 Apr 2025 04:10:08 -0700 (PDT)
Message-ID: <6000ef43-b24e-4bb5-8dd9-0fa2374adcf4@citrix.com>
Date: Fri, 11 Apr 2025 12:10:06 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/4] Overhaul how Argo is built and packged
To: Denis Mukhin <dmkhn@proton.me>
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?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, Jason Andryuk <jason.andryuk@amd.com>,
 "Daniel P . Smith" <dpsmith@apertussolutions.com>
References: <20250410213724.2098383-1-andrew.cooper3@citrix.com>
 <20250410213724.2098383-3-andrew.cooper3@citrix.com>
 <YPFuP6hQq0myBCOddL4tzFCBWAxGuKFkxdWlMOo5EkBkQVOjBoimEYoBywJD4vXGRatlf81hAvyLekktbrbH1zvWyEH_OUY97aF0YZtEfnA=@proton.me>
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: <YPFuP6hQq0myBCOddL4tzFCBWAxGuKFkxdWlMOo5EkBkQVOjBoimEYoBywJD4vXGRatlf81hAvyLekktbrbH1zvWyEH_OUY97aF0YZtEfnA=@proton.me>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 11/04/2025 3:22 am, Denis Mukhin wrote:
> On Thursday, April 10th, 2025 at 2:37 PM, Andrew Cooper <andrew.cooper3@citrix.com> wrote:
>
>>
>> Right now, the argo artefacts are a pile of files which the test has to turn
>> back into something which resembles a filesystem. Furthermore, because we do
>> not build modules for the main kernel, it is extra important to make sure that
>> xen-argo.ko doesn't get out of sync.
>>
>> Build argo unconditionally as part of the linux artefact. It's ~100kb all
>> together, compared to ~14M for the kernel.
>>
>> Produce a single argo.cpio.gz with xen-argo.ko in the standard location.
>> Prune userspace down to just the executables and libraries.
>>
>> This is cribbed from the existing scripts/x86_64-linux-argo.sh, which stays in
>> place in the short term until Xen can be updated to use the new scheme.
>>
>> 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: Marek Marczykowski-Górecki marmarek@invisiblethingslab.com
>>
>> CC: Jason Andryuk jason.andryuk@amd.com
>>
>> CC: Daniel P. Smith dpsmith@apertussolutions.com
>>
>>
>> I tried to make MODPOST work properly, but we don't build enough of it for the
>> kernel, and I didn't feel like adding an extra 10 mins to the build (all
>> modules) just to get the metadata right.
>> ---
>> .gitlab-ci.yml | 2 ++
>> scripts/build-argo.sh | 67 ++++++++++++++++++++++++++++++++++++++++++
>> scripts/build-linux.sh | 6 +++-
>> 3 files changed, 74 insertions(+), 1 deletion(-)
>> create mode 100644 scripts/build-argo.sh
>>
>> diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
>> index fb997cc62162..790a6d9f9896 100644
>> --- a/.gitlab-ci.yml
>> +++ b/.gitlab-ci.yml
>> @@ -47,6 +47,8 @@ linux-6.6.56-x86_64:
>> script: ./scripts/build-linux.sh
>> variables:
>> LINUX_VERSION: 6.6.56
>> + ARGO_SHA: "705a7a8a624b42e13e655d3042059b8a85cdf6a3"
>> + ARGOEXEC_SHA: "d900429f6640acc6f68a3d3a4c945d7da60625d8"
>>
>> #
>> # The jobs below here are legacy and being phased out.
>> diff --git a/scripts/build-argo.sh b/scripts/build-argo.sh
>> new file mode 100644
>> index 000000000000..0b4005f3b9a0
>> --- /dev/null
>> +++ b/scripts/build-argo.sh
>> @@ -0,0 +1,67 @@
>> +#
>> +# This is a partial script, sourced by build-linux.sh
>> +# It has expectations about the environment
>> +#
>> +
>> +cd "${WORKDIR}"
>> +
>> +#
>> +# We're going to collect everything in argo.cpio.gz. Construct it under
>> +# $ARGODIR as we go.
>> +#
>> +ARGODIR="${WORKDIR}/argo-root"
>> +
>> +git clone https://github.com/OpenXT/linux-xen-argo.git --depth=1
>> +git -C "${WORKDIR}/linux-xen-argo" fetch origin "${ARGO_SHA}"
>> +git -C "${WORKDIR}/linux-xen-argo" switch --detach FETCH_HEAD
>> +
>> +# Build xen-argo.ko against the target kernel, and install it. Install
>> +# linux/argo.h too because userspace needs it.
>> +make -C "linux-${LINUX_VERSION}" \
>> + M="${WORKDIR}/linux-xen-argo/argo-linux" \
>> + KBUILD_MODPOST_WARN=1 \
>> + CFLAGS_MODULE="-Wno-error" \
> Suggest adding `W=e` for catching problems and `V=1` to help debugging a bit.

The currently referenced commit is buggy, and depends on this -Wno-error
to compile.

I've submitted a PR upstream to fix (see next patch), but there's no ETA
on when it will get merged, and we can't be blocked waiting on it.

>
>> + modules
>> +install -D -m644 "${WORKDIR}/linux-xen-argo/argo-linux/xen-argo.ko" \
>> + "${ARGODIR}/lib/modules/${LINUX_VERSION}/updates/xen-argo.ko"
>> +install -D -m644 "${WORKDIR}/linux-xen-argo/argo-linux/include/linux/argo.h" \
>> + "${ARGODIR}/usr/include/linux/argo.h"
>> +
>> +# Build and install libargo, applying fixes to build in Alpine Linux
>> +cd "${WORKDIR}/linux-xen-argo/libargo"
>> +sed -e "s|AM_INIT_AUTOMAKE|AC_CONFIG_AUX_DIR(.)\nAM_INIT_AUTOMAKE|" \
>> + -i configure.ac
>> +sed -e "s/_SOCKADDR_COMMON (sxenargo)/sa_family_t sxenargo_family/" \
>> + -e "s/__SOCKADDR_COMMON_SIZE/(sizeof (unsigned short int))/" \
>> + -i src/libargo.h
>> +
>> +autoreconf --install
>> +./configure --prefix=/usr CPPFLAGS="-I${PWD}/../argo-linux/include"
>> +make
> Perhaps add something like `make -j$(nproc)`?

Can do.  The build is so trivial you don't even notice it when non-parallel.

>
>> +make install DESTDIR="${ARGODIR}"
>> +
>> +# Build and install argo-exec, modifying for xilinx argo test
>> +cd "${WORKDIR}"
>> +curl -fsSLO \
>> + https://raw.githubusercontent.com/OpenXT/xenclient-oe/${ARGOEXEC_SHA}/recipes-openxt/argo-exec/argo-exec/argo-exec.c
>> +sed -e "/#include <xen\/xen.h>/d" \
>>
>> + -e "s|ret = shuffle(s, fds\[0\], fds\[1\]);|ret = shuffle(s, 0, 1);|" \
>> + -i argo-exec.c
>> +
>> +gcc -I"${ARGODIR}/usr/include" -L"${ARGODIR}/usr/lib/" \
>> + argo-exec.c -o "${ARGODIR}/usr/bin/argo-exec" -largo
>> +
>> +#
>> +# Building is now complete. Strip the devel components and the nointerposer
>> +# lib, which we don't care to deploy to the test system.
>> +#
>> +cd $ARGODIR
>> +rm -r usr/include usr/lib/pkgconfig
>> +find usr/lib -name \nointerposer\ -delete
>> +find usr/lib \( -name \.a -o -name \.so -o -name \*.la \) -delete
>> +
>> +# Package everything up
>> +find . | cpio -R 0:0 -H newc -o | gzip > "$COPYDIR/argo.cpio.gz"
>>
>> +
>> +# Print the contents for the build log
>> +zcat "$COPYDIR/argo.cpio.gz" | cpio -tv
>> diff --git a/scripts/build-linux.sh b/scripts/build-linux.sh
>> index 652fdba7b9d1..49b5ebed6424 100755
>> --- a/scripts/build-linux.sh
>> +++ b/scripts/build-linux.sh
>> @@ -8,7 +8,7 @@ fi
>> set -ex -o pipefail
>>
>> WORKDIR="${PWD}"
>> -COPYDIR="${WORKDIR}/binaries/"
>> +COPYDIR="${WORKDIR}/binaries"
>> UNAME=$(uname -m)
>>
>> # Build Linux
>> @@ -45,6 +45,10 @@ case $UNAME in
>> x86_64)
>> make -j$(nproc) bzImage
>> cp arch/x86/boot/bzImage "${COPYDIR}"
>> +
>> + # Build argo
>> + make modules_prepare
>> + . "${WORKDIR}/scripts/build-argo.sh"
> Nit: I would use `source` instead of `.` which is simple to overlook.

I expect you'll find that . is more common `source` in Xen.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Apr 11 11:19:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 11:19:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.947205.1344888 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3CQH-0006CC-0D; Fri, 11 Apr 2025 11:19:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 947205.1344888; Fri, 11 Apr 2025 11:19: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 1u3CQG-0006C5-Ts; Fri, 11 Apr 2025 11:19:48 +0000
Received: by outflank-mailman (input) for mailman id 947205;
 Fri, 11 Apr 2025 11:19: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=TlgU=W5=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1u3CQE-0006Bz-Rm
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 11:19:47 +0000
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 (mail-am6eur05on20610.outbound.protection.outlook.com
 [2a01:111:f403:2612::610])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id de305202-16c6-11f0-9ffb-bf95429c2676;
 Fri, 11 Apr 2025 13:19:44 +0200 (CEST)
Received: from DUZPR01CA0205.eurprd01.prod.exchangelabs.com
 (2603:10a6:10:4b6::18) by AM7PR08MB5400.eurprd08.prod.outlook.com
 (2603:10a6:20b:109::19) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.27; Fri, 11 Apr
 2025 11:19:40 +0000
Received: from DB1PEPF000509F7.eurprd02.prod.outlook.com
 (2603:10a6:10:4b6:cafe::fe) by DUZPR01CA0205.outlook.office365.com
 (2603:10a6:10:4b6::18) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.26 via Frontend Transport; Fri,
 11 Apr 2025 11:19:35 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DB1PEPF000509F7.mail.protection.outlook.com (10.167.242.153) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.12
 via Frontend Transport; Fri, 11 Apr 2025 11:19:39 +0000
Received: from DB7PR08MB2987.eurprd08.prod.outlook.com (2603:10a6:5:1c::25) by
 AS1PR08MB7425.eurprd08.prod.outlook.com (2603:10a6:20b:4c6::16) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.27; Fri, 11 Apr
 2025 11:19:07 +0000
Received: from DB7PR08MB2987.eurprd08.prod.outlook.com
 ([fe80::d53f:b16d:70a5:8668]) by DB7PR08MB2987.eurprd08.prod.outlook.com
 ([fe80::d53f:b16d:70a5:8668%4]) with mapi id 15.20.8606.029; Fri, 11 Apr 2025
 11:19:07 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: de305202-16c6-11f0-9ffb-bf95429c2676
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=OvMLlphojUg1HYHvRrXmTnWJViPMh008sT0u3rc9f6UHGGh6C0FxivEMQlhKfV8yFXKWeoNx1y71z1zKOAJGldXl22GLAmK4BpE5pKXD+2sId9hzQwScPxjEnhecvlGR8g0V1q8ig8qMAmPptk548FiQnOcccSl5zewB0fy1bZYmVoJyUjms+Gj4ueXJadC+3GcDOosTP4CfNZQV+v9lJBKcams78aZo+UBItGxn0d30yjAhrhwsaLfc1Wazgj1IUpvcRWJgmE98AvW48D+coJrUNuEj1mTUtwU0PQdGGw/UDImBiTWFpedSRxeRv3flOXp+7LPGAsj/6LoqoIcDiw==
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=PoXfUfZ0KtopeAqO8/edlmTjLIO2HsdVyKoFUaZGNNM=;
 b=jRQova/IJ2Otq2l1Jpql0pdHVjk5FBGYADOagFxZIBQ65B8daExzUBu6T0FzoQLF6qpyiq74yRtd0jMr0eqVe/FgEXg34mnnKdga3omwXdqSzD5rsPs1vh8RTjIlWc5uLqIbcowLi1/ODXESDPJKuPgEwpIuoxjIwGI9QYq6kDABctER2tA+aBl9Uzn2OlyQKAThZd3O/33my2CVI9YGJY244S6VVFATjyiqojh3qTHEGsj3QEufGzPPPwvjFgm2EU5vVXEkjLam+bYM4LmCGOprN5y5PfkXhNwj5+ZuuKQb/ebgeTYIV9qJdziFXsJUVQ2hM+eUEMel2jArsaz6UQ==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=amd.com smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=PoXfUfZ0KtopeAqO8/edlmTjLIO2HsdVyKoFUaZGNNM=;
 b=mA2kjNTFJrGfif212H49Lr4647ljeupRz+Uuc02W03ebhwKFFJeUrm321T6QrW2bleMSZMQAnStXJJR9NL2IoSjsHOwc+gtyhOLZ5xZxSmeP/oyNrKdXnUkGN7BSAKA0hOYAUzYH5toHDNBIPPpjzC2z5fpoSc/93HxmDG0YFyk=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=nDr7WmC+3XvU97FyZLDfPGx4ke58xJkFp03QOX9fyUPIt/i60G5s9wjK1FO77zlJ+V7dpTq87EKL0up0JfW9nEshVenO8FdS9JViKIbpX0Awr8vRPjNR2A2b2nidXs+YqTcv4wgONMe8G3qtP2bmC0chuHnYE2Pdqu8AReGTzkybQq3IUHycm7S9YfoWTb+IkRhTlaF+kwDpg/qltd3WiL0wpx6V+B3cPgtBjxf1Ay6SeK2bdQQzvksZecQq0CFVzFTPe3QNqXJvzME/X05/DKSdVUGUAEU1alKEfDku0+Egboj/qdb/yEU8n7kXRwGNTWeX+CnLrWkuibpxt2fB5w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=PoXfUfZ0KtopeAqO8/edlmTjLIO2HsdVyKoFUaZGNNM=;
 b=EWA3Y+R/zaxa7ZJ+yjnMVKA0N6LDd73REI8sx4gRPqjA0lVflovE5/dnAjaA8c/nRyIVWIqXusqH43xRlTOrUstjsyt1oVx03yF8hNuNFdG8xhEomK8AscsEpAURZgb+9udc9xhcywVJuqBWSmU61Tx2wtwjxJTCY6oiVPwP7oqx2XpS+N+PpcwiPF69EIl6+eLkX3S9GqYFy2Ej+uxmdA1h0j9UXExHw914kkWl2M6a8XTEgtManHQpSa6Q3dy0HBho2pMb1FtyBmIV1taic2tIVb0AwCnGYi7WANwjST8QsJJC5tStCKSIRa4MvgzPAcaM4OZaqsmrF7jjALe+Ww==
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=PoXfUfZ0KtopeAqO8/edlmTjLIO2HsdVyKoFUaZGNNM=;
 b=mA2kjNTFJrGfif212H49Lr4647ljeupRz+Uuc02W03ebhwKFFJeUrm321T6QrW2bleMSZMQAnStXJJR9NL2IoSjsHOwc+gtyhOLZ5xZxSmeP/oyNrKdXnUkGN7BSAKA0hOYAUzYH5toHDNBIPPpjzC2z5fpoSc/93HxmDG0YFyk=
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 v6 0/3] Enable early bootup of Armv8-R AArch32 systems
Thread-Topic: [PATCH v6 0/3] Enable early bootup of Armv8-R AArch32 systems
Thread-Index: AQHbqtGiUF1c7UE7dEqUOxk7cDhLvrOeUUwA
Date: Fri, 11 Apr 2025 11:19:07 +0000
Message-ID: <53CDA1B8-107C-4B08-88FB-D8822549DBB0@arm.com>
References: <20250411110452.3748186-1-ayan.kumar.halder@amd.com>
In-Reply-To: <20250411110452.3748186-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.400.131.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DB7PR08MB2987:EE_|AS1PR08MB7425:EE_|DB1PEPF000509F7:EE_|AM7PR08MB5400:EE_
X-MS-Office365-Filtering-Correlation-Id: 4fb3d5d2-cf77-4ead-4fa8-08dd78eac005
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?clF2cEoxbWlxTlh2dS9iZ3NFMmpSMEhmbjl0cTF5RVc1SnZ6Yld2ZkNQRW1r?=
 =?utf-8?B?aTVUaHRtNnNXRUZnRWU2TVlSYW5xN0oyZkcwT0xVMUlobTJ3c1dCRmNoOXMy?=
 =?utf-8?B?RTd4NlpBaE9ITEYvaUpDaW15cGdUcmZ3NUE5RTdrejI0SnJOZXJ2aFhNVW9Q?=
 =?utf-8?B?bTR6MUhBMmEvSVRPSXlIem5UbFZJUVVrdEJzM3pQRWQxdnhLTUdQSXNuZGM3?=
 =?utf-8?B?WGIzVCs3SGVoUEVqSHpPUnFweWxocWR5clpTTkRLZUdTc2tEUVlIVGI3YlFM?=
 =?utf-8?B?alY4N0hYcDdOZ003ZlFKOFlVQytTdGhkblNCUGUwaFpPdTViTzIyNW1iN09n?=
 =?utf-8?B?SVlzbjV4MjF1bmVSRnUzSW5CMDArY25DNkFjU0RDY1dqaXFrWEkyOE8zTzJv?=
 =?utf-8?B?QTZseDdlZzEvRFV6RndUVG9TK0gyNnFGR1h5ekp2TzJnWTZWaDBHZWN6SXhL?=
 =?utf-8?B?WTBMaGEvMG82aEJjUUV5MUp2U3J4UnI4WS8zeEttYW95a0FxSXVoUUY5Q1hO?=
 =?utf-8?B?di9GWjcrWkFsSVhwTVBaSm1PRGkzUWk5aHA3NDJQaTdJTWwzdUh5dW5WZ1Bq?=
 =?utf-8?B?QUdDeHFxNTQ0NWNDU1VrSjlyU1FLaGV1MS9vVnViK0doTWNpZEp3cldlVmdD?=
 =?utf-8?B?Tlh6b2VxYTVkYk9vWmFmTUZ5RGRtWUwvYlpDRGVNSVJaNjlMVFdNejVXcCtF?=
 =?utf-8?B?ejVzZVVrZmZrM3hWZTZTbWc4QnQvb1N4NlBLcXRyWnV2SXhGVEdpSDV5SDUv?=
 =?utf-8?B?Umx2RWkvclllNzVEeXpLSUlvWDZTZzRoYmEzQTNsc1NQM2JGdmFHK09SbXpU?=
 =?utf-8?B?dTR0ZmFHSGJJS3kzK0NRT296alpVaDBPbUwwRXZlcTYvcnBRVGppT1JNYTJo?=
 =?utf-8?B?N0VkVG1Sbkl0VHlpSEVzM3BaUlB3SWZqVEtUVGNSYkQzQlhWalJ0dExnVVhO?=
 =?utf-8?B?MFFMODJBUDdCV0w0aXQ4eVV4d2hoVDhjWml4OEszLy9WalhOY29EK01SM3B4?=
 =?utf-8?B?L2FIdW1rVEpJeWFKQ3ByZVpqK2JrYkM5NkdLSFI2QkRSNkdRMVNZbGdRMU84?=
 =?utf-8?B?eWE5N2ladmo3S0FseGQyZVo4SFpmVUVwU21qTm91bDZvbFBBOG9iQTEzenNi?=
 =?utf-8?B?UzkxdmFmYThkb25kSUtsdXgvd3grRDF4MHpxcW1USE9BQVlObzM4Skdra284?=
 =?utf-8?B?WC9rUmdqZXVJbGFCOWNlY3k4ZVpwcFk0d3hVUXlETTI0Sy9DWEppK0Rzcjdx?=
 =?utf-8?B?SGpLMTR5eUxvanJUdlpRdVMyQ0pqWmwvUnJWdFRXcHoxU3RETmdkVXk3NXlw?=
 =?utf-8?B?dEZKN2UzUCtld1RYUkZvMTU4YWFVVWZ3ZTFxb1hCbnVGMnVaQ2JNRGhycUlZ?=
 =?utf-8?B?eGlIWWpRS0kySG1iM3dSYWU5bWp6K2MyalVIMEM1TXllYjBQNnd4d1U4dUtm?=
 =?utf-8?B?Z3BpL0c1c1Y2dDNJOUJiQ2ZRMG8yN1E4eS9tb3dBdSt6NElXTWR3RFhMWmNM?=
 =?utf-8?B?WkhQMkxySDFMc2Q3T1JnMGtzUG13NENOUW55TWw2TWtmMGdSNExjTm9NaTV5?=
 =?utf-8?B?NzBiVFhwa0FGUFZuTVdNcmYrZkJkcDF0S0g4TWh3ZzR5RU1jSlJMRmJuc0lB?=
 =?utf-8?B?SFhsRkp6aUsxeU9uUGRGcXNrRmgwSW1XcktOQUR6R0dzZkFHUyt5b0FpaHpP?=
 =?utf-8?B?SkljWWswZ3BqYWIyMFZPQk9Qek9hTHUrdFdXSEVtZ1lrRkdzQ2huVENrK09G?=
 =?utf-8?B?VmViRVdpZzh1SUJNc212UWs1YjlhS3VEZUZZNWdkbXFVeTJ0OWJvcTNRaENT?=
 =?utf-8?B?elgxSHgzZHM2K3cwVjEvZnJ0dkRtL1haTEhJajNpTU50U24yVFFIdXI0Y0g4?=
 =?utf-8?B?MWhYc1dmRmpWVmduWHdmMnpCdk40dGFsenF5SmdCcFEzR0RrcGlBeHZkL3Vi?=
 =?utf-8?B?ZGFKTWZvSUlVN0hsalp4N1RNZGd4NWZ0aDc4KzcvSWlycTA1Nk9YbWdiWGto?=
 =?utf-8?Q?kBhzT0Bq6odafdLuLO4pmzNJtT4TNw=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB7PR08MB2987.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: <53CC7F702084E64FBA0FAD429EC4FED9@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS1PR08MB7425
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB1PEPF000509F7.eurprd02.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	3f48a3f3-19d3-41f0-2859-08dd78eaaca5
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|36860700013|376014|35042699022|82310400026|14060799003|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?aEFMNkMxR3Q0b3ZqWXpFUW5QTjExVW12N1BpZ0FWT01SV2FibE12bFZYWHAv?=
 =?utf-8?B?YzdJUmFMTEkwUDBwMW10d3FwNXEvNUtidVh1ZkxrTklUMElQSklXRmRTTmFO?=
 =?utf-8?B?TWV6V1I4dlYzNlZIRWJFQjZVcGE0ZVhBcHJQZVl2eDZ2a1cybDZ3OTdZWWRw?=
 =?utf-8?B?cGdCeFI3WjNNQ3RvNyttZ2FaMTdScXh6TnRSZlNwZ1huYk02T2x3Q09ndVNG?=
 =?utf-8?B?dlpybFpjZHFrWEdubnM4VFVDK1lHNHBwOTA3a0tvTmU2RWpWVHdTdndHVVM3?=
 =?utf-8?B?QWJDbmkyNzYzZUtodkdTK3hMdnpDQVhqd084RW4wdmxDSHlyekgyQ1c4TS9q?=
 =?utf-8?B?cklTbzRINkRPdzdjR0NObEU4L3JKVWhGNmJ0MHk2Y3o1d2VtTmRIMkpXUU1x?=
 =?utf-8?B?QnNXa2tidUNKSHJ6VC9KOG85dWx0QWdRTzZYQ1NCd2w0d1c0Ni9jMmw2OWZR?=
 =?utf-8?B?ZWZpZ2k0UHgvUmttNHpYbEZQdlVCWGdLSnYxR2owUWJtWDBjdDFhbWYzYTFx?=
 =?utf-8?B?RHZVdVFqazFwcWliOTVnZ1JhNlFKdTZCZGVKcUoySmtqQm9RWmVGbktzQW1W?=
 =?utf-8?B?cDRwSVU3SnhKSVBWYjNpeWVMRmp3ZjhHUFYvbnRrOGxSNE82bWxzeThiQ3Ew?=
 =?utf-8?B?WW5Kc1V1Z2MwYjZTZkdKUHVHRXhwRjFQZWprOVpkQUdFTTVzUStPYmhPZkxp?=
 =?utf-8?B?QWNrTi91NGlaZHBZLzdQN2dEN1hqTzlnaWVVay9QT0pvaC96ME50TnJFdk1J?=
 =?utf-8?B?RWJzN3M1SjFQSEw4MVBKOUJBRFM2OVpjUkFWNDZGekV4OGRWc1FwNUhKY0dJ?=
 =?utf-8?B?WlkzUVE0OTdHRnNzeXRlRW1KU2VxMWthZHZYNVF4OFVxaWk0TG5LNGJmTWlj?=
 =?utf-8?B?eWtkbXJRZ084ci8ybXM0Sjk0aGpTOC9CVnpGRFNvYnRHTDB6R3JOZmpCeHhZ?=
 =?utf-8?B?QWFqbDJkaTMvWk5qZDFxc2JMQzBXcDhTcnIybDZ1YkRKZFdadDRIRklId1Jt?=
 =?utf-8?B?Y0ZLMEg4TnFERjR3c0tCNE5vbmVwSWw2Y0hrYzlUOG83SWZ6NU9sNGY0bU9o?=
 =?utf-8?B?Y0lWZWlqR1cxWFFsZm1PcEVzUjB1Q0ZHa2pOSTNueHlCaXR1MGVIaitmLzU3?=
 =?utf-8?B?Q2ltRmx5WUtEeFkrMitBMFB1KzcrNFpVK1dNaFBMWlU0cXV2ZWp1UXg4OUtK?=
 =?utf-8?B?ZkR1S2tJNFRpMytWNExNa1RwNlJ2UHNBUmZuUEFUWlpqMXEvOVo4cmpSV2tl?=
 =?utf-8?B?UVVBaE1qeUJaOUNTMjdDVlloZzN5QkUvc3o5Q1JMYXphYVVaOUlaU2hDL0J3?=
 =?utf-8?B?ZmljcThhSFhlQ0xEYW4zNnQ4cGhZd1pvc1J6SDJRVVNsWFgzdVBKUmtrRHJL?=
 =?utf-8?B?SUFPZXF3RTEzeXJycGwzMk9xOEJCTHlVOGpJVTE4aEoxNmpEUnV2cUc5WWc5?=
 =?utf-8?B?MFM4Q2lLVjErcXlWMUEvT2E0UjQ4cFBWWUQ5dnRBTk5sTHViRGtta0ZXMHhL?=
 =?utf-8?B?cjQ2eFJhdzF3dGI0aHZBTHFnRVhYVE4xUmhEVXlrc0tEekRHbm51RzVqcWhv?=
 =?utf-8?B?cDRsVVh0SnNmdTNkU3pVdHhvcC8rR0xYTlVWVUxIQnBWczFoeFhtUDQwY0pr?=
 =?utf-8?B?TzRGeWsrT0w1engrRE91NmhLS1M2TnUrK3RITjUzUENGL2pIdkRJQU1KbWh0?=
 =?utf-8?B?cVdsYzRtQlVObDQ4enBKN2NJS3hpM2xwbUxXdmU4OHFxOWg0ZjVRM3Y2UjdX?=
 =?utf-8?B?TzRsUVQ1cEhHNlRGa3V3dlJ0bFpSemRTMmxIU1lxQm9kaUh3eC85V3VURG9F?=
 =?utf-8?B?V3QwdFRKOTBvQ0JXamtmYkQva1JUSWxpeVpmdmtKWUk2Tk9sQUE3Wmd3MS9W?=
 =?utf-8?B?ZE1FWTB5Q2xLTVIvUXlWcjF4QWZTZmVsckJiaVJQbDZzcFM2SDRXN3hlY2du?=
 =?utf-8?B?M0djRmc4bFNZSTllc0xoTk83a3NtVmhVWklNSDZHdUlMbk50emVCS2pyd2Rh?=
 =?utf-8?B?dE52ZHZ0V1d6OTNaRzNrQXRNSkRZOG5wMGdJV2xEY2RqQnNFaTlFNUhTZWxl?=
 =?utf-8?Q?Su+IBt?=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(36860700013)(376014)(35042699022)(82310400026)(14060799003)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Apr 2025 11:19:39.4794
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 4fb3d5d2-cf77-4ead-4fa8-08dd78eac005
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DB1PEPF000509F7.eurprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR08MB5400

SGkgQXlhbiwNCg0KPiBPbiAxMSBBcHIgMjAyNSwgYXQgMTI6MDQsIEF5YW4gS3VtYXIgSGFsZGVy
IDxheWFuLmt1bWFyLmhhbGRlckBhbWQuY29tPiB3cm90ZToNCj4gDQo+IEVuYWJsZSBlYXJseSBi
b290aW5nIG9mIEFybXY4LVIgQUFyY2gzMiBiYXNlZCBzeXN0ZW1zLg0KPiANCj4gQWRkZWQgTHVj
YSdzIFItYiBpbiBhbGwgdGhlIHBhdGNoZXMuDQo+IA0KPiBBeWFuIEt1bWFyIEhhbGRlciAoMyk6
DQo+ICB4ZW4vYXJtOiBNb3ZlIHNvbWUgb2YgdGhlIGZ1bmN0aW9ucyB0byBjb21tb24gZmlsZQ0K
PiAgeGVuL2FybTMyOiBDcmVhdGUgdGhlIHNhbWUgYm9vdC10aW1lIE1QVSByZWdpb25zIGFzIGFy
bTY0DQo+ICB4ZW4vYXJtMzI6IG1wdTogU3R1YnMgdG8gYnVpbGQgTVBVIGZvciBhcm0zMg0KDQpJ
4oCZdmUgY29tcGlsZWQgYm90aCBBcm0zMiBhbmQgQXJtNjQsIE1QVSAmIE1NVSBjb2RlOg0KDQpU
ZXN0ZWQtYnk6IEx1Y2EgRmFuY2VsbHUgPGx1Y2EuZmFuY2VsbHVAYXJtLmNvbT4NCg0KQ2hlZXJz
LA0KTHVjYQ0KDQo=


From xen-devel-bounces@lists.xenproject.org Fri Apr 11 11:34:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 11:34:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.947230.1344899 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3Cdv-0005OH-5n; Fri, 11 Apr 2025 11:33:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 947230.1344899; Fri, 11 Apr 2025 11: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 1u3Cdv-0005OA-2C; Fri, 11 Apr 2025 11:33:55 +0000
Received: by outflank-mailman (input) for mailman id 947230;
 Fri, 11 Apr 2025 11: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=cS7z=W5=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u3Cdt-0005Nl-Oo
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 11:33: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 d7d653e3-16c8-11f0-9ead-5ba50f476ded;
 Fri, 11 Apr 2025 13:33:52 +0200 (CEST)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-4394a823036so18856335e9.0
 for <xen-devel@lists.xenproject.org>; Fri, 11 Apr 2025 04:33:52 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43f206264a1sm86325815e9.9.2025.04.11.04.33.50
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 11 Apr 2025 04:33: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: d7d653e3-16c8-11f0-9ead-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744371231; x=1744976031; 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=eavN+UxZaYl9HVpFgZ9FL+Zw8ouiUxvVX8+glAOBRgs=;
        b=Cbx1kK5auMWAOqnlEb4MFF1nBjG/lPWNdDl9tPFU1RRQE8Wfyn+iMQ9cyXT9X1ksyK
         /u6A/Ez/vN05QsOsupLQYhZg6lT2ECUVqhhzykezcTwmY5vt7Hm7y9ovfXTQf8daacjs
         xdZUtuudEbvBVG/hw+naN9YDanMMEHWT+dcR4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744371231; x=1744976031;
        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=eavN+UxZaYl9HVpFgZ9FL+Zw8ouiUxvVX8+glAOBRgs=;
        b=q0WjlTPMIaroxaagEiwB8GFh0BA30a2aeHpKc+BfelqJ3ROeia3S8ED6fPCrcj/MCF
         xvrYu49k/R1SQrG7UgNFG7zWHS5z0Wo8DVns7INkmgJFn9y5Bl+MMjREILdJaDdcX4ec
         DGxqKGx94nwU3hWBejDN7Uwa4cy8Cm+9DikQ3yu9ijdNjLjCSUzmJ5wlES6vBUfTLbS0
         3sfDKNhF5PHFf1anVmubvCVQM0Oh4xTGbJGbBBNztBpvTx+cU+JMyktCsmtbuzQX34Yg
         D+ZfCK2JW8pShPfZmOqTsFRikoeB5fh0ret+AGRHl2Xi9Rti/VQByOSm1x+/BVSZrbDP
         OGPg==
X-Gm-Message-State: AOJu0Yx2ayzgWV+FgLV0KBihsikpS+jHORAolHyhyUsQXFNY1EnhVTqs
	Dg79u0RzYyarRdNlmWKqV9uvIf5kAbIfnuV/96HTv9rxiqoFIL+OhHi8ak5PRAI=
X-Gm-Gg: ASbGncul3Qyn+verUzaGE2yyTg98OIznH0wrno8PoOXYrrHK4Z6LjJU++oq2h6b7DFX
	dpTRpRnOFWGGxqm68G+GKLNyPfDM04ycLyisQa1NOyXXxXeFfUlB+2CCbu5GaW9Isy/kY0qggXP
	VsE/OPGqiQpwfPkk+Eo7xUeELynr9mqXBevM2kjLmAOok0g6+IMEEqW6+R9SAF+MJ4GV1u7cPYw
	7KqBlu24VKaoGOgpl1LHQ9hQv+8l928kBLPUk5WuGtyeHiq/P6SirAcrlvetEjuJKI6wZM7gsH5
	KFjC2O+wrwvWoYxytnZ2wAWXolVhjq6jsRIw2bMsYlQKDdHq34pRCD0aq44IoE1+GtMxN8Di7Gk
	sJ8Ct7A==
X-Google-Smtp-Source: AGHT+IEFslOQgXVd8i8pO2DTOLdsROWwMCJCdrusA8GIaJPiiY5vN8mBBk+w6QQkb9SEFMUpjeb8mA==
X-Received: by 2002:a05:600c:a02:b0:43d:7bfa:2739 with SMTP id 5b1f17b1804b1-43f3a9a6f5dmr17815855e9.23.1744371231447;
        Fri, 11 Apr 2025 04:33:51 -0700 (PDT)
Message-ID: <7dd33457-f748-45b5-b885-eb451bdab9e9@citrix.com>
Date: Fri, 11 Apr 2025 12:33:50 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/3] Rework rootfs generation to make a cpio archive
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.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: <20250411105217.2141356-1-andrew.cooper3@citrix.com>
 <20250411105217.2141356-2-andrew.cooper3@citrix.com>
 <Z_j3wXtigDHb6i6P@mail-itl> <de67e64b-beb8-4fb0-8ad2-323ff8ef53f9@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: <de67e64b-beb8-4fb0-8ad2-323ff8ef53f9@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 11/04/2025 12:09 pm, Andrew Cooper wrote:
> On 11/04/2025 12:06 pm, Marek Marczykowski-Górecki wrote:
>> On Fri, Apr 11, 2025 at 11:52:15AM +0100, Andrew Cooper wrote:
>>> diff --git a/scripts/x86_64-rootfs-alpine.sh b/scripts/alpine-rootfs.sh
>>> similarity index 75%
>>> rename from scripts/x86_64-rootfs-alpine.sh
>>> rename to scripts/alpine-rootfs.sh
>>> index b70b3a54ede5..c29c92d1c682 100755
>>> --- a/scripts/x86_64-rootfs-alpine.sh
>>> +++ b/scripts/alpine-rootfs.sh
>>> @@ -56,5 +61,17 @@ passwd -d "root" root
>>>  
>>>  # Create rootfs
>>>  cd /
>>> -tar cvzf "${WORKDIR}/binaries/initrd.tar.gz" \
>>> -    bin dev etc home init lib mnt opt root sbin usr var
>>> +PATHS="bin dev etc home init lib mnt opt root sbin usr var"
>>> +
>>> +case $1 in
>>> +    cpio)
>>> +        find $PATHS | cpio -o -H newc | gzip > "${COPYDIR}/rootfs.cpio.gz"
>>> +
>>> +        # Print the contents for the build log
>>> +        zcat "${COPYDIR}/rootfs.cpio.gz" | cpio -tv
>> add 'v' to cpio above instead?
> Oh, of course.  There's another instance of this pattern in argo, which
> I'll fix up too.

Apparently not. 
https://gitlab.com/xen-project/hardware/test-artifacts/-/jobs/9695952322

I expect the -v is getting swallowed by the pipe.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Apr 11 11:36:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 11:36:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.947243.1344909 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3CgE-0005zk-KW; Fri, 11 Apr 2025 11:36:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 947243.1344909; Fri, 11 Apr 2025 11:36: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 1u3CgE-0005zd-Gn; Fri, 11 Apr 2025 11:36:18 +0000
Received: by outflank-mailman (input) for mailman id 947243;
 Fri, 11 Apr 2025 11:36: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=r/J2=W5=kernel.org=ardb@srs-se1.protection.inumbo.net>)
 id 1u3CgE-0005zX-7Y
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 11:36:18 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2ad710b6-16c9-11f0-9ffb-bf95429c2676;
 Fri, 11 Apr 2025 13:36:12 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 7D97F4A4E9
 for <xen-devel@lists.xenproject.org>; Fri, 11 Apr 2025 11:36:09 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 42B03C4AF09
 for <xen-devel@lists.xenproject.org>; Fri, 11 Apr 2025 11:36:10 +0000 (UTC)
Received: by mail-lj1-f173.google.com with SMTP id
 38308e7fff4ca-30c0517142bso14807421fa.1
 for <xen-devel@lists.xenproject.org>; Fri, 11 Apr 2025 04:36: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: 2ad710b6-16c9-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1744371370;
	bh=NdAnPqs6PuTQigzagubEFM0UzQcF+urkBBiiYAlXWgE=;
	h=References:In-Reply-To:From:Date:Subject:To:Cc:From;
	b=O8U0O3YQ2VhPF/Ne+9YUSnHZr+yts96G4zfY8CFlSx/w9hl6cj+TC9zOvmBUnMAFL
	 dBJyyFjq2Yah1TPOTyDuK9kHCobmcYJ9PuAFXkTDrry42Sv5B72U2D5SyYlRgg9TpZ
	 aoB+drX/U0MqtVcQIc258xL4AlAU6DiO5X02lA8nfoM56AD4RkSWAftrjr82fHdfCT
	 6V8lStZ4QdHIvjfSnKeoHBUhPCYGsTWt4R+caveFHZ7ywiIJ6gu5Ri8px+Ax2Wx9tI
	 vaslVhoY/SCbzXr1/i5aURIfHhoQbZ4nj7yfE1f+ObKeUKExG/M2BAkfrlVg0nj60I
	 OjJSr0D85qfQg==
X-Forwarded-Encrypted: i=1; AJvYcCWA7r5ZD579j7ZDGZFDVQ73GwVJBLz0c/R1JLPEkvYZ2eoro684xnwhNnv3nsOZF6RCAhPV3QOC2FY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzH2+Fmdr+Cre9swo4qaDJIB07W7xByjadHpjanE0EArb1NCeUZ
	i2BI/v2gBrM1LexrzFuZuK+8kf/Gfjya9UbZ1itt9c8lI27YTeZ8YHT2ltU0aiOn+f/0xXGGe+y
	bXKe9WwFHlb5LX8wnNrHmg5yvupo=
X-Google-Smtp-Source: AGHT+IGZdi6ATDzL9ptAqZyQs8oOCHpEKm0d8jQHsICa2IrWOLJG0DyhKNfLe2oP++GofUDWlZqJS14I07//h0GmwNA=
X-Received: by 2002:a2e:b8c4:0:b0:30b:f52d:148f with SMTP id
 38308e7fff4ca-31049a1b000mr6316791fa.18.1744371368538; Fri, 11 Apr 2025
 04:36:08 -0700 (PDT)
MIME-Version: 1.0
References: <D9366FPHFS9F.2OP8KH7C8OJTF@amd.com> <20250410195012.363658-1-jason.andryuk@amd.com>
 <84c03f50-638b-4df4-af52-8f79bf00dc20@citrix.com>
In-Reply-To: <84c03f50-638b-4df4-af52-8f79bf00dc20@citrix.com>
From: Ard Biesheuvel <ardb@kernel.org>
Date: Fri, 11 Apr 2025 13:35:57 +0200
X-Gmail-Original-Message-ID: <CAMj1kXGCSSHvokAB5bq4vJv-xPPQf1P468dvoBmpJ-0kNsm6Dg@mail.gmail.com>
X-Gm-Features: ATxdqUF8-K8XKZLthrjIgh8B13YloA0kg4FZ_oVKADTqPbyxfCJt1ClJo68_sf4
Message-ID: <CAMj1kXGCSSHvokAB5bq4vJv-xPPQf1P468dvoBmpJ-0kNsm6Dg@mail.gmail.com>
Subject: Re: [RFC PATCH] x86/xen: Fix PVH dom0 xen_hypercall detection
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Jason Andryuk <jason.andryuk@amd.com>, agarciav@amd.com, jgross@suse.com, 
	anthony.perard@vates.tech, marmarek@invisiblethingslab.com, 
	michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org, 
	xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"

On Thu, 10 Apr 2025 at 23:49, Andrew Cooper <andrew.cooper3@citrix.com> wrote:
>
> On 10/04/2025 8:50 pm, Jason Andryuk wrote:
> > A Xen PVH dom0 on an AMD processor triple faults early in boot on
> > 6.6.86.  CPU detection appears to fail, as the faulting instruction is
> > vmcall in xen_hypercall_intel() and not vmmcall in xen_hypercall_amd().
> >
> > Detection fails because __xen_hypercall_setfunc() returns the full
> > kernel mapped address of xen_hypercall_amd() or xen_hypercall_intel() -
> > e.g. 0xffffffff815b93f0.  But this is compared against the rip-relative
> > xen_hypercall_amd(%rip), which when running from identity mapping, is
> > only 0x015b93f0.
> >
> > Replace the rip-relative address with just loading the actual address to
> > restore the proper comparision.
> >
> > This only seems to affect PVH dom0 boot.  This is probably because the
> > XENMEM_memory_map hypercall is issued early on from the identity
> > mappings.  With a domU, the memory map is provided via hvm_start_info
> > and the hypercall is skipped.  The domU is probably running from the
> > kernel high mapping when it issues hypercalls.
> >
> > Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
> > ---
> > I think this sort of address mismatch would be addresed by
> > e8fbc0d9cab6 ("x86/pvh: Call C code via the kernel virtual mapping")
> >
> > That could be backported instead, but it depends on a fair number of
> > patches.
>
> I've just spoken to Ard, and he thinks that it's standalone.  Should be
> ok to backport as a fix.
>

I've tried building and booting 6.6.y with the patch applied - GS will
still be set to the 1:1 mapped address but that shouldn't matter,
given that it is only used for the stack canary, and we don't do
address comparisons on that afaik.

> > Not sure on how getting a patch just into 6.6 would work.  This patch
> > could go into upstream Linux though it's not strictly necessary when the
> > rip-relative address is a high address.
>
> Do we know which other trees are broken?  I only found 6.6 because I was
> messing around with other bits of CI that happen to use 6.6.
>

I'd assume all trees that had the hypercall page removal patch
backported to them will be broken in the same way.


From xen-devel-bounces@lists.xenproject.org Fri Apr 11 11:47:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 11:47:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.947257.1344919 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3Cqs-0001gr-Hq; Fri, 11 Apr 2025 11:47:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 947257.1344919; Fri, 11 Apr 2025 11:47:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3Cqs-0001gk-FF; Fri, 11 Apr 2025 11:47:18 +0000
Received: by outflank-mailman (input) for mailman id 947257;
 Fri, 11 Apr 2025 11:47: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=5hfk=W5=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1u3Cqr-0001ge-CJ
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 11:47:17 +0000
Received: from fhigh-a6-smtp.messagingengine.com
 (fhigh-a6-smtp.messagingengine.com [103.168.172.157])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b5bd7fc0-16ca-11f0-9ffb-bf95429c2676;
 Fri, 11 Apr 2025 13:47:14 +0200 (CEST)
Received: from phl-compute-04.internal (phl-compute-04.phl.internal
 [10.202.2.44])
 by mailfhigh.phl.internal (Postfix) with ESMTP id 3004011402F1;
 Fri, 11 Apr 2025 07:47:13 -0400 (EDT)
Received: from phl-mailfrontend-01 ([10.202.2.162])
 by phl-compute-04.internal (MEProxy); Fri, 11 Apr 2025 07:47:13 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri,
 11 Apr 2025 07:47:11 -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: b5bd7fc0-16ca-11f0-9ffb-bf95429c2676
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=fm2; t=1744372033;
	 x=1744458433; bh=dSSGNWTYi5Amp0RGUJoS4RnBo56ASbhWONKglOTaUok=; b=
	Nf3kXbHpyhqOoMIfRJkdB7od12LGUEz/06ez4xKl2R2HHtYVqXPvrOj1sGjZIdFQ
	PAXkFz/nzDtm1RyPtWK1DA/DPDrd7w3XxdnUkBosdjcKkMufLagrCQDLpTo/KS+M
	/eVGfC71lC0qEhNR+XVPo3acbvgk2UB+otaPC5b2U/MMZP4Vg1cpjvBT4M98bnDr
	/W+UAG/GS1uKQfr/WL3Qs62BlLlhAHhO37IH6qdFod8IKeYA9GeHz2h2HG/vwdu3
	VF6Ny9xvX5LMXHbr6Je3Rv6aLXL2cIBtNSUDccj5l9I8ntuPnxO8l9JBy3NKX2xh
	Cv6OEI5+0JUq/t9HSOwu7w==
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=fm2; t=
	1744372033; x=1744458433; bh=dSSGNWTYi5Amp0RGUJoS4RnBo56ASbhWONK
	glOTaUok=; b=OYJngNhUw0zOH2GKFYg3meCuwL3PZKXB33M3nA0C3ul+3Xr+gFt
	kZ9T+ZbKqFvkx3JDscTnpnDCmP0KmKT+gqimiks0WvWQAEy+NL/+WkXyxwjJBY2V
	Od8nU0JtReX2EswxNnHRUenJu4RZT3ynezQHgg3dIjbwejTyQyDD2koUSVjUJR1o
	yH4YbvHJ2GYy/3F0l+aY2/Q44NzHIC31Dy3VNItwpZHiM/WSWzuURb7C2dyHlL3v
	nWNqMVTAPlw+5fdV47rlSV3fCRp/YDns4gmiAJYHzNOOw2McWVbFt0ySMHf5Bvge
	qK0ziXQ5ghtqeKIMPbnO6nyi1YVei9EPHLw==
X-ME-Sender: <xms:QAH5ZzMRA4ZYqdIYeKsK1jrOvuSDD7EPsPik9DIHjlPlcRHj_QlqQQ>
    <xme:QAH5Z99AvC3fStkbt-NT-ecyuyphb8IC0PH2t6u_10gx_J-3UMk46UH-ZPpiYLldJ
    wVdZ-iU5lEEMw>
X-ME-Received: <xmr:QAH5ZyRRZMKX7ux5fJ_utvV97JEASn3jS7b99Q9Pjgwxnlhpyr6XRv2JFZMiIjt1WOuWRwfmb3cUvUNvfPVe1XJXbGqHem4LKg>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvuddujedvucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
    pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
    gvnhhtshculddquddttddmnecujfgurhepfffhvfevuffkfhggtggujgesghdtreertddt
    jeenucfhrhhomhepofgrrhgvkhcuofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuc
    eomhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecu
    ggftrfgrthhtvghrnhepveeujeetgeelleetudeuvefhtefgffejvedtvdfgieevheethe
    elgeeuledvjeevnecuffhomhgrihhnpehgihhtlhgrsgdrtghomhenucevlhhushhtvghr
    ufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhnvh
    hishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhnsggprhgtphhtthhopeeipdhmohgu
    vgepshhmthhpohhuthdprhgtphhtthhopegrnhgurhgvfidrtghoohhpvghrfeestghith
    hrihigrdgtohhmpdhrtghpthhtohepgigvnhdquggvvhgvlheslhhishhtshdrgigvnhhp
    rhhojhgvtghtrdhorhhgpdhrtghpthhtoheprghnthhhohhnhidrphgvrhgrrhgusehvrg
    htvghsrdhtvggthhdprhgtphhtthhopehsshhtrggsvghllhhinhhisehkvghrnhgvlhdr
    ohhrghdprhgtphhtthhopehmihgthhgrlhdrohhriigvlhesrghmugdrtghomhdprhgtph
    htthhopegtrghrughovgestggrrhguohgvrdgtohhm
X-ME-Proxy: <xmx:QAH5Z3tQsC8HuN6cv3cel3sInapBqRFA_2MtLqxXNSPImnwUX1XjVg>
    <xmx:QAH5Z7eKCM4F2ImnyzE_5kDCCzOwzpHA7MZaIDMQIXeRWZu9DW7PbA>
    <xmx:QAH5Zz0W3nk31nWR2p2jw4ljLPDnYWgI5a03JtdBSJnVA5mULllbcA>
    <xmx:QAH5Z3_XY0RjU0mW448PKznHWjRl7rw6GB7geImSo-9cKR0mc6DeyQ>
    <xmx:QQH5Z3wZJ_tLYK0jPgrBzR_0BjNMchTGJAP6UaaXY-HajTUAq926CPI0>
Feedback-ID: i1568416f:Fastmail
Date: Fri, 11 Apr 2025 13:47:09 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>,
	Doug Goldstein <cardoe@cardoe.com>
Subject: Re: [PATCH 1/3] Rework rootfs generation to make a cpio archive
Message-ID: <Z_kBPfXvxDozbMNk@mail-itl>
References: <20250411105217.2141356-1-andrew.cooper3@citrix.com>
 <20250411105217.2141356-2-andrew.cooper3@citrix.com>
 <Z_j3wXtigDHb6i6P@mail-itl>
 <de67e64b-beb8-4fb0-8ad2-323ff8ef53f9@citrix.com>
 <7dd33457-f748-45b5-b885-eb451bdab9e9@citrix.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="GOzWiEBF/ewuh7t8"
Content-Disposition: inline
In-Reply-To: <7dd33457-f748-45b5-b885-eb451bdab9e9@citrix.com>


--GOzWiEBF/ewuh7t8
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Fri, 11 Apr 2025 13:47:09 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>,
	Doug Goldstein <cardoe@cardoe.com>
Subject: Re: [PATCH 1/3] Rework rootfs generation to make a cpio archive

On Fri, Apr 11, 2025 at 12:33:50PM +0100, Andrew Cooper wrote:
> On 11/04/2025 12:09 pm, Andrew Cooper wrote:
> > On 11/04/2025 12:06 pm, Marek Marczykowski-G=C3=B3recki wrote:
> >> On Fri, Apr 11, 2025 at 11:52:15AM +0100, Andrew Cooper wrote:
> >>> +        find $PATHS | cpio -o -H newc | gzip > "${COPYDIR}/rootfs.cp=
io.gz"
> >>> +
> >>> +        # Print the contents for the build log
> >>> +        zcat "${COPYDIR}/rootfs.cpio.gz" | cpio -tv
> >> add 'v' to cpio above instead?
> > Oh, of course.=C2=A0 There's another instance of this pattern in argo, =
which
> > I'll fix up too.
>=20
> Apparently not.=C2=A0
> https://gitlab.com/xen-project/hardware/test-artifacts/-/jobs/9695952322
>=20
> I expect the -v is getting swallowed by the pipe.

Great, busybox's cpio prints it to stdout instead of stderr (as normal
cpio do)...

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

--GOzWiEBF/ewuh7t8
Content-Type: application/pgp-signature; name=signature.asc

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmf5AT0ACgkQ24/THMrX
1yxZXwf/dQuQS3Ti0q+wd/F4/rohjYmWHaZvbzCHUa2bxqTePXDXXUZ/rNeY3dMb
k3fXYDF/X4jc+qXxDLEcFFUar/TQ9BCYxHjalnDcKfM1smi6zouTM+oyyVg9iHMu
FOcS/TdJa3CMbc7nSAKp9locxWpzGcIQgzCUzPbDeZpKKvjoFTEgLKrFUp/YeKo/
B9nfaXIUvBuzlB1T/zoXI6QbAcmjgCJGc0+bqNDqEf6avBU/B4LubkHo4J5AAXld
dJm5P4PfWL0N1fzw58dc+Pr3fuYrMtY1m42EW1lld2gMcTonFcIJrYs2wqAzeEEX
Nt9w9ZIz8h8yedanyoLznpoBEOSMUA==
=hbqr
-----END PGP SIGNATURE-----

--GOzWiEBF/ewuh7t8--


From xen-devel-bounces@lists.xenproject.org Fri Apr 11 12:00:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 12:00:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.947271.1344933 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3D3R-0006mw-RR; Fri, 11 Apr 2025 12:00:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 947271.1344933; Fri, 11 Apr 2025 12:00:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3D3R-0006mp-OP; Fri, 11 Apr 2025 12:00:17 +0000
Received: by outflank-mailman (input) for mailman id 947271;
 Fri, 11 Apr 2025 12:00: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=cS7z=W5=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u3D3Q-0006mf-Hb
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 12:00:16 +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 86cbe52d-16cc-11f0-9ffb-bf95429c2676;
 Fri, 11 Apr 2025 14:00:14 +0200 (CEST)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-39c30d9085aso1155660f8f.1
 for <xen-devel@lists.xenproject.org>; Fri, 11 Apr 2025 05:00:14 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39eadda64ecsm1858308f8f.0.2025.04.11.05.00.12
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 11 Apr 2025 05:00:13 -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: 86cbe52d-16cc-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744372813; x=1744977613; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=9awOeHDJOgaIAqxhz4Ul2gDNeNptQLmva34anEfcdq8=;
        b=XO5Mtrn21Vmz/B5TPIpWvggLwfqa9EVR1EcW6htrPdFiACB1j6MkxytK2qyy20pifC
         /N+3nyuIkXj+BVqAu7SwgPqQcSPAt0xXIJ9i4E+Nk0h3vTxiA1G/zf0I6nGxWrVrxSJU
         oFucvUsfqF1eVmsC4pZ4fC7dVzwPYDv+FY6B0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744372813; x=1744977613;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=9awOeHDJOgaIAqxhz4Ul2gDNeNptQLmva34anEfcdq8=;
        b=piBuf2/mKVhhE1RtMMB1N5OxVJmiMf2sfsTS7cJ8rdrtrw6zFh5SNXChD5odW9xPuZ
         1taGSj3jEonpeDAdzXZe3YB4tP3Y0Vzy5DFMWFpsNvwjPU14tBEWj5yWpnlSn2jeIzM6
         TICZt0y97AmZ3h5gMEl3fEGmAkKOOD0CeHw9ugEjAskuzCh8+J6oJYw6u2ng/XdK1ru+
         3wHiUO0jRPLFnd+xlWW7c85Z5gVW94nRdtERGQaFQHyTLuCsaUM6T2A+i1gwc8aXt62F
         d12y7FNvpG/CRSQWaj/Ek4fCCjsN2fA6Xq46YNyiKlMGAGCZxJtUeCJ48RoVtYmKJ7O9
         2b5w==
X-Forwarded-Encrypted: i=1; AJvYcCVQ9+B76qQtwbC/8aMLpfX+EMXuRVReWQ5yWEHkme/akmfIxOLXqlXgbcvnN1cj97zuEP0mLTaSq18=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy8cEvNEo3G+M9OHT445Ryh92iVtw9sA749Gdlil+uj6EU08BGr
	s+Q/8jY33YB6EPF1EqOBFP+alZxAs5BNBuepuFRG58g42akw/h+8yIEgetmaxk0=
X-Gm-Gg: ASbGncsOGBV096HvFxILbSfKTID58b7d6lwwjHg6hHOE3CPUIjRmsXL37PwHuiB4KNy
	Foo3DuUkluSVwhDzbX/LUp+rxFF5arRzcQSfZIK5n8KH8+NtCaZL8Ey2fntj4/yinTAb8iH0op5
	OV1X+IHzC+o4uS1HmQIrSOmStls+Iq3j89lmnx6+jXyo3VPXwj/3/cL62xiS6ytiwpUKdJRY/Pz
	7qcb+coerqRkMCkoJnY5RqMUcFS8eCGR5I0RtNlYo9yo6lLYCb/Hz+6PU2XvSCEWR4Pi3y6ZitN
	q/q8XQTGii5deS+QQ3y5AMf6KJ+a9xbPEF/CVQ/dDVVvTEj/+X6TSY19H2f3BSSHQsjwdtlZKF9
	/iHynOQ==
X-Google-Smtp-Source: AGHT+IEG5ALbMQp5KOpJ+zeuoMOrNKvmdTmYKIHSROJPnXzglIjgx2Rm7Sk0luerudHPGcmdKVQcRQ==
X-Received: by 2002:a5d:64e3:0:b0:39c:1a86:e473 with SMTP id ffacd0b85a97d-39eaaecbde2mr2109364f8f.56.1744372813449;
        Fri, 11 Apr 2025 05:00:13 -0700 (PDT)
Message-ID: <8a921cc0-8ff1-4191-89a1-442c7d303d2e@citrix.com>
Date: Fri, 11 Apr 2025 13:00:12 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/5] x86/mm: account for the offset when performing
 subpage r/o MMIO access
To: Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>
References: <20250411105411.22334-1-roger.pau@citrix.com>
 <20250411105411.22334-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: <20250411105411.22334-2-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 11/04/2025 11:54 am, Roger Pau Monne wrote:
> The current logic in subpage_mmio_write_emulate() doesn't take into account
> the page offset, and always performs the writes at offset 0 (start of the
> page).
>
> Fix this by accounting for the offset before performing the write.
>
> Fixes: 8847d6e23f97 ('x86/mm: add API for marking only part of a MMIO page read only')
> 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 Fri Apr 11 12:05:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 12:05:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.947289.1344943 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3D83-0001Gc-EI; Fri, 11 Apr 2025 12:05:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 947289.1344943; Fri, 11 Apr 2025 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 1u3D83-0001GV-9n; Fri, 11 Apr 2025 12:05:03 +0000
Received: by outflank-mailman (input) for mailman id 947289;
 Fri, 11 Apr 2025 12: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=MhXW=W5=linux.ibm.com=agordeev@srs-se1.protection.inumbo.net>)
 id 1u3D81-0001GP-SU
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 12:05:01 +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 31055c04-16cd-11f0-9ead-5ba50f476ded;
 Fri, 11 Apr 2025 14:05:00 +0200 (CEST)
Received: from pps.filterd (m0360072.ppops.net [127.0.0.1])
 by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 53B4Hwbv028306;
 Fri, 11 Apr 2025 12:04:50 GMT
Received: from pps.reinject (localhost [127.0.0.1])
 by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 45xj5xmbq9-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Fri, 11 Apr 2025 12:04:49 +0000 (GMT)
Received: from m0360072.ppops.net (m0360072.ppops.net [127.0.0.1])
 by pps.reinject (8.18.0.8/8.18.0.8) with ESMTP id 53BBvsIB009672;
 Fri, 11 Apr 2025 12:04:49 GMT
Received: from ppma11.dal12v.mail.ibm.com
 (db.9e.1632.ip4.static.sl-reverse.com [50.22.158.219])
 by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 45xj5xmbq7-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Fri, 11 Apr 2025 12:04:49 +0000 (GMT)
Received: from pps.filterd (ppma11.dal12v.mail.ibm.com [127.0.0.1])
 by ppma11.dal12v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 53B8Brgm029520;
 Fri, 11 Apr 2025 12:04:48 GMT
Received: from smtprelay05.fra02v.mail.ibm.com ([9.218.2.225])
 by ppma11.dal12v.mail.ibm.com (PPS) with ESMTPS id 45x1k78q3q-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Fri, 11 Apr 2025 12:04:48 +0000
Received: from smtpav05.fra02v.mail.ibm.com (smtpav05.fra02v.mail.ibm.com
 [10.20.54.104])
 by smtprelay05.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id
 53BC4kR641484682
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Fri, 11 Apr 2025 12:04:46 GMT
Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1])
 by IMSVA (Postfix) with ESMTP id 8519420043;
 Fri, 11 Apr 2025 12:04:46 +0000 (GMT)
Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1])
 by IMSVA (Postfix) with ESMTP id 975B920040;
 Fri, 11 Apr 2025 12:04:45 +0000 (GMT)
Received: from li-008a6a4c-3549-11b2-a85c-c5cc2836eea2.ibm.com (unknown
 [9.171.62.45]) by smtpav05.fra02v.mail.ibm.com (Postfix) with ESMTPS;
 Fri, 11 Apr 2025 12:04:45 +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: 31055c04-16cd-11f0-9ead-5ba50f476ded
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=PnqGyYgzHT0Sz+5k6BXWUk5N9daIOA
	t0miBGvgSDKAY=; b=rg6+7yX1oIY/hrDNoGj3DwccvaTK1QnKM/d3OmrcztqEDp
	j4j5yfP62lfxD/7TrZFOhfyN/XMIoQfZ9vBMmaXQZiQxsA6GTPDm833Y+/EC3OIe
	EVs/aJqbsqOqPuf9GkcCGI+TAuCYbMSXC3WAuwom/mXn7fzwJevaJwo4QojGds41
	jOG6NWCKAmBMEP3STFTm8r6lvpkCTgDuZRyy1CUREkt2rgPkvaChg17e2Fifu4mj
	LsxtUVPM4U+FemCOiNrQDNqf6JSM0VFG10GCRlIJZfrAUB7AhisPET/LTJCs7Vcx
	K2jP6Vv5ysev6rq9j6y5SM7EnQ6SgRS4oy8ulnNA==
Date: Fri, 11 Apr 2025 14:04:44 +0200
From: Alexander Gordeev <agordeev@linux.ibm.com>
To: Nicholas Piggin <npiggin@gmail.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
        Andrey Ryabinin <ryabinin.a.a@gmail.com>,
        Hugh Dickins <hughd@google.com>, Guenter Roeck <linux@roeck-us.net>,
        Juergen Gross <jgross@suse.com>, Jeremy Fitzhardinge <jeremy@goop.org>,
        linux-kernel@vger.kernel.org, linux-mm@kvack.org,
        kasan-dev@googlegroups.com, sparclinux@vger.kernel.org,
        xen-devel@lists.xenproject.org, linuxppc-dev@lists.ozlabs.org,
        linux-s390@vger.kernel.org
Subject: Re: [PATCH v1 0/4] mm: Fix apply_to_pte_range() vs lazy MMU mode
Message-ID: <Z/kFXDwneQ9yHiJl@li-008a6a4c-3549-11b2-a85c-c5cc2836eea2.ibm.com>
References: <cover.1744037648.git.agordeev@linux.ibm.com>
 <D93MFO5IGN4M.2FWKFWQ9G807P@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <D93MFO5IGN4M.2FWKFWQ9G807P@gmail.com>
X-TM-AS-GCONF: 00
X-Proofpoint-GUID: G_BAGoiaaveYky3440tvomTW6sZpx75k
X-Proofpoint-ORIG-GUID: 0HKwRFIDMdOHgUv5TCoToIJxhDHz4gm6
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1095,Hydra:6.0.680,FMLib:17.12.68.34
 definitions=2025-04-11_04,2025-04-10_01,2024-11-22_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 impostorscore=0
 spamscore=0 malwarescore=0 bulkscore=0 phishscore=0 mlxscore=0
 suspectscore=0 priorityscore=1501 lowpriorityscore=0 adultscore=0
 mlxlogscore=591 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.19.0-2502280000 definitions=main-2504110077

On Fri, Apr 11, 2025 at 05:12:28PM +1000, Nicholas Piggin wrote:
...
> Huh. powerpc actually has some crazy code in __switch_to() that is
> supposed to handle preemption while in lazy mmu mode. So we probably
> don't even need to disable preemption, just use the raw per-cpu
> accessors (or keep disabling preemption and remove the now dead code
> from context switch).

Well, I tried to do the latter ;)
https://lore.kernel.org/linuxppc-dev/3b4e3e28172f09165b19ee7cac67a860d7cc1c6e.1742915600.git.agordeev@linux.ibm.com/
Not sure how it is aligned with the current state (see below).

> IIRC all this got built up over a long time with some TLB flush
> rules changing at the same time, we could probably stay in lazy mmu
> mode for a longer time until it was discovered we really need to
> flush before dropping the PTL.
> 
> ppc64 and sparc I think don't even need lazy mmu mode for kasan (TLBs
> do not require flushing) and will function just fine if not in lazy
> mode (they just flush one TLB at a time), not sure about xen. We could
> actually go the other way and require that archs operate properly when
> not in lazy mode (at least for kernel page tables) and avoid it for
> apply_to_page_range()?

Ryan Roberts hopefully brought some order to the topic:
https://lore.kernel.org/linux-mm/20250303141542.3371656-1-ryan.roberts@arm.com/

> Thanks,
> Nick


From xen-devel-bounces@lists.xenproject.org Fri Apr 11 12:26:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 12:26:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.947304.1344953 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3DSP-0008EI-16; Fri, 11 Apr 2025 12:26:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 947304.1344953; Fri, 11 Apr 2025 12:26: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 1u3DSO-0008EB-UK; Fri, 11 Apr 2025 12:26:04 +0000
Received: by outflank-mailman (input) for mailman id 947304;
 Fri, 11 Apr 2025 12:26: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=JDlf=W5=cloud.com=frediano.ziglio@srs-se1.protection.inumbo.net>)
 id 1u3DSN-0008Dz-S3
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 12:26:03 +0000
Received: from mail-oi1-x22a.google.com (mail-oi1-x22a.google.com
 [2607:f8b0:4864:20::22a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1fe89f5a-16d0-11f0-9ffb-bf95429c2676;
 Fri, 11 Apr 2025 14:26:00 +0200 (CEST)
Received: by mail-oi1-x22a.google.com with SMTP id
 5614622812f47-3f68460865aso1222483b6e.0
 for <xen-devel@lists.xenproject.org>; Fri, 11 Apr 2025 05: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: 1fe89f5a-16d0-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1744374359; x=1744979159; 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=yaRVlrUFdVqa8gu8hJW6Is51czIX+nXqo1cSMrKVN44=;
        b=lVTf3tQZ7tvzTqgMXadsy5j1rYMVLREfmziCIxdATfljLiCSLM5cVwCy9OmNgGOy4O
         J5sFFO1UwSIBtxmD1qjN5wHQiFUdpLFjd5Qw6Hr3xoztR3aOSC+rGUYxRObmvZZKoxX0
         u8mgcv8gfEZzRqsyra4BIIg7gd8lbhc6m8kqg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744374359; x=1744979159;
        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=yaRVlrUFdVqa8gu8hJW6Is51czIX+nXqo1cSMrKVN44=;
        b=TYNHc5288i3i//tsj58b9sXcIz/CVaOK4o8HutUI4yerIQzfmVy+uKx0sf89L8JzLb
         EAXBH16vaNEXmV5286l9XTLoXVrR8kAMOuS+zDgUn0FNg72lcm+69pyqsqRjLEKgq8YN
         yjkzGsHrj4f//74x+hW41oZOoY2adrkvv4IidaCDrR6GIdzJkPc9YH3cE7JpXVope3SV
         l6N+njRkPCdpm1S9ZhqdD3xy7C7387A2yqPto7O6tse0i+57dGeCmMMYG2WZGJvDiI+y
         4Ilgqz9rLWePqPoz8b5oLWtrfHS0HB+iKma1YGwexq/qdXubA36KUswsdHZEUIprl8PR
         QWXQ==
X-Gm-Message-State: AOJu0YwWHGoWpxdU1BmSmXR5GQ9IZZnVuG490BKbdWC7L0nQABK3KVpO
	dBKig56S0OWKGzPW7FP5jgKKHufVyajIDEmtbqP9x2geV77kx4UQyvZOzQW581slYwjUQp8Y2V7
	reTj/L8usR/3CsaRQ43BucIAhWSYvlnS6EqfhzQ==
X-Gm-Gg: ASbGnctQZKmXZRAJMT5L8UH3bwcSv0H4yrLRKdfM4cB/bfItn1BX2THdZKy0cDI9TES
	EQPBWKduGUl4g43UBye9QbMTeaTzIFiGhljci/eCveBb5CqV7VKIM03y5aGA/8tuI+cTsbVO/yv
	6tA56Kz0I+8USdaOgbA30gng==
X-Google-Smtp-Source: AGHT+IEY3rI/yhuXks+861YpsSr/0mMQwRTXjoj4nVUdgTdlBglHQSTD91n9F5i4s/73v+mA0yxB7kwSqqAXIWeQoTE=
X-Received: by 2002:a05:6808:1312:b0:3f6:80e2:4b83 with SMTP id
 5614622812f47-400850df85amr1339050b6e.31.1744374358914; Fri, 11 Apr 2025
 05:25:58 -0700 (PDT)
MIME-Version: 1.0
References: <20250411105217.2141356-1-andrew.cooper3@citrix.com> <20250411105217.2141356-2-andrew.cooper3@citrix.com>
In-Reply-To: <20250411105217.2141356-2-andrew.cooper3@citrix.com>
From: Frediano Ziglio <frediano.ziglio@cloud.com>
Date: Fri, 11 Apr 2025 13:25:47 +0100
X-Gm-Features: ATxdqUGj1zP_Xe4HrCQO5nfBLNKxYkv4lCwgZxgYVuO8LLn9jUtSGVCjB20R7Jg
Message-ID: <CACHz=Zhs9jT8GDN=LUfewPJpX6Q2LNxBgpyv1wW-D-qv_K-qLA@mail.gmail.com>
Subject: Re: [PATCH 1/3] Rework rootfs generation to make a cpio archive
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?Marek_Marczykowski=2DG=C3=B3recki?= <marmarek@invisiblethingslab.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Fri, Apr 11, 2025 at 11:52=E2=80=AFAM Andrew Cooper
<andrew.cooper3@citrix.com> wrote:
>
> Rename the script as we're going to use it for ARM64 shortly, and have it=
 take
> a tar or cpio parameter to determine the output format.
>
> Turn it into a proper bash script, and provide the cpio form under the ne=
w
> artefact naming scheme.
>
> No functional change.
>
> 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: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblethingslab.com>
> ---
>  .gitlab-ci.yml                                |  9 +++++++-
>  ...6_64-rootfs-alpine.sh =3D> alpine-rootfs.sh} | 21 +++++++++++++++++--
>  2 files changed, 27 insertions(+), 3 deletions(-)
>  rename scripts/{x86_64-rootfs-alpine.sh =3D> alpine-rootfs.sh} (75%)
>
> diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
> index 1d2c72b268a3..916c5ae9d508 100644
> --- a/.gitlab-ci.yml
> +++ b/.gitlab-ci.yml
> @@ -42,6 +42,13 @@ linux-6.6.86-arm64:
>  #
>  # x86_64 artifacts
>  #
> +alpine-3.18-x86_64-rootfs:
> +  extends: .x86_64-artifacts
> +  script:
> +    - ./scripts/alpine-rootfs.sh cpio
> +  variables:
> +    CONTAINER: alpine:3.18-x86_64-base
> +
>  linux-6.6.56-x86_64:
>    extends: .x86_64-artifacts
>    script: ./scripts/build-linux.sh
> @@ -62,7 +69,7 @@ x86_64-kernel-linux-6.6.56:
>  x86_64-rootfs-alpine-3.18:
>    extends: .x86_64-artifacts
>    script:
> -    - . scripts/x86_64-rootfs-alpine.sh
> +    - ./scripts/alpine-rootfs.sh tar
>    variables:
>      CONTAINER: alpine:3.18-x86_64-base
>
> diff --git a/scripts/x86_64-rootfs-alpine.sh b/scripts/alpine-rootfs.sh
> similarity index 75%
> rename from scripts/x86_64-rootfs-alpine.sh
> rename to scripts/alpine-rootfs.sh
> index b70b3a54ede5..c29c92d1c682 100755
> --- a/scripts/x86_64-rootfs-alpine.sh
> +++ b/scripts/alpine-rootfs.sh
> @@ -1,4 +1,9 @@
> +#!/bin/bash
> +
> +set -eu
> +
>  WORKDIR=3D"${PWD}"
> +COPYDIR=3D"${WORKDIR}/binaries"
>
>  apk update
>
> @@ -56,5 +61,17 @@ passwd -d "root" root
>
>  # Create rootfs
>  cd /
> -tar cvzf "${WORKDIR}/binaries/initrd.tar.gz" \
> -    bin dev etc home init lib mnt opt root sbin usr var
> +PATHS=3D"bin dev etc home init lib mnt opt root sbin usr var"
> +
> +case $1 in
> +    cpio)
> +        find $PATHS | cpio -o -H newc | gzip > "${COPYDIR}/rootfs.cpio.g=
z"
> +

Paranoia mode: -print0 for find and -0 for cpio to support weird file names=
?

> +        # Print the contents for the build log
> +        zcat "${COPYDIR}/rootfs.cpio.gz" | cpio -tv

I saw other comments about -v and busybox compatibility.
I suppose it depends how important are performances here, otherwise I
could suggest the usage of mkfifo before, use -F option to the fifo
and use an additional pipeline to compress the file.

mypipe=3D$(mktemp -u)
mkfifo $mypipe
gzip -c > "${COPYDIR}/rootfs.cpio.gz" < $mypipe &
find $PATHS -print0 | cpio -o -H newc -F $mypipe -0
wait # for gzip
rm $mypipe

> +        ;;
> +
> +    tar)
> +        tar cvzf "${COPYDIR}/initrd.tar.gz" $PATHS
> +        ;;
> +esac
> --
> 2.39.5
>
>

Frediano


From xen-devel-bounces@lists.xenproject.org Fri Apr 11 12:35:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 12:35:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.947317.1344967 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3DbX-0003U1-UX; Fri, 11 Apr 2025 12:35:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 947317.1344967; Fri, 11 Apr 2025 12:35: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 1u3DbX-0003Tu-R8; Fri, 11 Apr 2025 12:35:31 +0000
Received: by outflank-mailman (input) for mailman id 947317;
 Fri, 11 Apr 2025 12:35: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=JDlf=W5=cloud.com=frediano.ziglio@srs-se1.protection.inumbo.net>)
 id 1u3DbW-0003To-BV
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 12:35:30 +0000
Received: from mail-oo1-xc2f.google.com (mail-oo1-xc2f.google.com
 [2607:f8b0:4864:20::c2f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 72751003-16d1-11f0-9ffb-bf95429c2676;
 Fri, 11 Apr 2025 14:35:28 +0200 (CEST)
Received: by mail-oo1-xc2f.google.com with SMTP id
 006d021491bc7-60288fd4169so880189eaf.3
 for <xen-devel@lists.xenproject.org>; Fri, 11 Apr 2025 05:35:28 -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: 72751003-16d1-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1744374927; x=1744979727; 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=mD/6pScuA/dZyup7zZPwm3zOTuyrMzpCPVf7lykThh0=;
        b=R2L+2yTZIcD8BTkNnY8VI41jt3uifis+WhqdldrYo2KF0kuIZJmoTcrb4OchD+kEPp
         6NQT79Z44OiJ73x4dA/naoLqhLwHsFsux7dwWWFKadpXwmddMrd0+Fz9r7v29kfSmk1i
         SKcUwUCKokcKxf4T6DfvoblcYapLHS94oDDHU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744374927; x=1744979727;
        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=mD/6pScuA/dZyup7zZPwm3zOTuyrMzpCPVf7lykThh0=;
        b=aJNrhB0GOEVFGmZgflib8N+EjNSQ1nOqtV1LTTA+CgXVwZS4KxCzQ7jnNQzZ1+AVO/
         Vyh+EZ0R3r3cXrmr/poiJlYoal+Tu2avDaWRrOXMhaKNyjZSbECna32DXVE0MK8/inQt
         KVw+9MWH/1AeQscdjlQPt18RJE9FV2i0s5gIFYGHm678Gfwn2SNRLUd1tBtcjE/8yuYe
         qkAvW9RhcZA89hwe6bOPx/oxF+z3Z0gnPo993HGXdJ6jGWaMs9R9aL93qxwlYQOVN10m
         XHeiNaGgBJpwFeX1IqD14C6NHqGN2TXFPQqkrQnaHkRQJHdDhiK9lxI7rKtZF/kbsUwH
         iHlg==
X-Gm-Message-State: AOJu0YwcYH9SbL0o5oJKeU05PwFVJWv87gOmjhJ3Js4WTWVaRbZ03+ua
	NEux6LHGLIiRt6QVJc4yjiXUpmzi3PpMYGB//QLjlFzEKcd0UfkZPgdclCwQz12yU74xjyWTMsB
	ldWPEf6ao0GV7qhcXVwqZwEV0qWMkDP3jO2ItgCHpqMhSV87Wjco=
X-Gm-Gg: ASbGncshriD60p3NY/Zc1yUQ+nCFDEnT1eYfKtvNJFeoqWhq55YZLPYIhEoyYqFeEsg
	P1AqHD/wJC4g2qHjYr0eQhM4lQaPwRuYEDNxDx5UuP/p+1nJHuSFBt7mjaPqINcNcCDOLGu/jwk
	dyQdJs4T23QJXVylmJxWUgFQ==
X-Google-Smtp-Source: AGHT+IGvxnWmvdGRD/uFlEA2VHHt2vsJFHmB61lGYyVZkfLOtO4B4z3scq0f1kftLg9MzUI2ua0fELXDIuz84ZM1UZ8=
X-Received: by 2002:a05:6820:1b88:b0:5fc:e026:f073 with SMTP id
 006d021491bc7-6046f5bfc02mr1101933eaf.8.1744374926977; Fri, 11 Apr 2025
 05:35:26 -0700 (PDT)
MIME-Version: 1.0
References: <20250411105217.2141356-1-andrew.cooper3@citrix.com> <20250411105217.2141356-3-andrew.cooper3@citrix.com>
In-Reply-To: <20250411105217.2141356-3-andrew.cooper3@citrix.com>
From: Frediano Ziglio <frediano.ziglio@cloud.com>
Date: Fri, 11 Apr 2025 13:35:15 +0100
X-Gm-Features: ATxdqUErlj4Y4svNPRbB1vFZhdLfXHJiRJLDDxrFPgcgRB7rn_SE01GZEw7GfVI
Message-ID: <CACHz=Zj22AhquDYVk-TttfUqvnMyQ-BEgUK5sggxuW_RzPXkqA@mail.gmail.com>
Subject: Re: [PATCH 2/3] Shrink the rootfs substantially
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?Marek_Marczykowski=2DG=C3=B3recki?= <marmarek@invisiblethingslab.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Fri, Apr 11, 2025 at 11:52=E2=80=AFAM Andrew Cooper
<andrew.cooper3@citrix.com> wrote:
>
> bash, busybox, musl and zlib are all in the base container.
>
> python3 and ncurses are in principle used by bits of Xen, but not in anyt=
hing
> we test in CI.  argp-standlone, curl, dbus, libfdt, libgcc and sudo aren'=
t
> used at all (for x86 at least).
>
> libbz2 and libuuid were pulled in transitively before, and need to be inc=
luded
> explicitly now.
>
> Use apk --no-cache to avoid keeping a ~2M package index on disk.
>
> Remove the modules scan on boot.  We don't have or build any.  This remov=
es a
> chunk of warnings on boot.
>
> This shrinks the rootfs from ~30M down to ~8M.
>
> No practical change.
>
> 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: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblethingslab.com>
>
> I'm still working on the integration of the new rootfs's int Xen, and wil=
l
> hold off until committing that's ready but
> https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/176351016=
4
> shows good early progress.
> ---
>  scripts/alpine-rootfs.sh | 60 +++++++++++++++++++++++-----------------
>  1 file changed, 34 insertions(+), 26 deletions(-)
>
> diff --git a/scripts/alpine-rootfs.sh b/scripts/alpine-rootfs.sh
> index c29c92d1c682..30d426d6e88f 100755
> --- a/scripts/alpine-rootfs.sh
> +++ b/scripts/alpine-rootfs.sh
> @@ -4,33 +4,42 @@ set -eu
>
>  WORKDIR=3D"${PWD}"
>  COPYDIR=3D"${WORKDIR}/binaries"
> +UNAME=3D$(uname -m)
>

Minor: maybe ARCH/MACHINE ?

> -apk update
> +apk --no-cache update
>
> -# xen runtime deps
> -apk add musl
> -apk add libgcc
> -apk add openrc
> -apk add busybox
> -apk add sudo
> -apk add dbus
> -apk add bash
> -apk add python3
> -apk add zlib
> -apk add lzo
> -apk add ncurses
> -apk add yajl
> -apk add libaio
> -apk add xz
> -apk add util-linux
> -apk add argp-standalone
> -apk add libfdt
> -apk add glib
> -apk add pixman
> -apk add curl
> -apk add udev
> -apk add pciutils
> -apk add libelf
> +PKGS=3D(
> +    # System
> +    openrc
> +    udev
> +    util-linux
> +
> +    # Xen toolstack runtime deps
> +    libbz2
> +    libuuid
> +    lzo
> +    xz
> +    yajl
> +
> +    # QEMU
> +    glib
> +    libaio
> +    pixman
> +    )

Minor: indent with "PKGS" ?

> +
> +case $UNAME in
> +    x86_64)
> +        PKGS+=3D(
> +            # System
> +            pciutils
> +
> +            # QEMU
> +            libelf
> +            )
> +        ;;
> +esac
> +
> +apk add --no-cache "${PKGS[@]}"
>
>  # Xen
>  cd /
> @@ -45,7 +54,6 @@ rc-update add dmesg sysinit
>  rc-update add hostname boot
>  rc-update add hwclock boot
>  rc-update add hwdrivers sysinit
> -rc-update add modules boot
>  rc-update add killprocs shutdown
>  rc-update add mount-ro shutdown
>  rc-update add savecache shutdown
> --
> 2.39.5
>
>

It looks good to me.

Frediano


From xen-devel-bounces@lists.xenproject.org Fri Apr 11 12:39:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 12:39:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.947327.1344977 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3DfC-00041Z-Cd; Fri, 11 Apr 2025 12:39:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 947327.1344977; Fri, 11 Apr 2025 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 1u3DfC-00041S-9R; Fri, 11 Apr 2025 12:39:18 +0000
Received: by outflank-mailman (input) for mailman id 947327;
 Fri, 11 Apr 2025 12: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=cS7z=W5=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u3DfA-00041K-VG
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 12:39:16 +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 f9d2bc5f-16d1-11f0-9ffb-bf95429c2676;
 Fri, 11 Apr 2025 14:39:14 +0200 (CEST)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-43cf05f0c3eso14129995e9.0
 for <xen-devel@lists.xenproject.org>; Fri, 11 Apr 2025 05:39:14 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43f20a303absm59951575e9.1.2025.04.11.05.39.13
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 11 Apr 2025 05:39:13 -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: f9d2bc5f-16d1-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744375154; x=1744979954; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=SYKb+PN2e/LR8iiyi+jhYVCzN7RHLkzIYt3z0ej2NAM=;
        b=eeHEIGZpb+JYy7ecH9xHJmiYTzrecmI6IQ5FVZqWYLVPkwJwml/UEtM4RSd1259XyS
         NzwpnLVnB7qAa0gE/yw1+MGr9zBMlnxYWx0BSt34SxtLpGFE0vn9bKTfejKV0JWrSqij
         jbpypw7qZdS2muim2SgL8MOD//rWr6PovXsDw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744375154; x=1744979954;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=SYKb+PN2e/LR8iiyi+jhYVCzN7RHLkzIYt3z0ej2NAM=;
        b=E0n5OFL3utHzg8te4YurV5If9+C5vdMeRFjCs61bpA181P2VOj9QI+GiaSd+bPccmY
         cli4QYIEXSDySPQ1fppGMTKIfL6DTQhrROCFowUObNjUvRn3r6okMTe8V+LihXVIHP6b
         JQNoNh/XEFHUmn9DzL/bHZR/ioQr+c+Q+Ery4LkRNlGmBzkqTyVfql5sxPkQbtk99aq+
         yGBpMIF34JCiz/cf8nxhi+MAoBR2aHQgT74uBA1Lx0Xv3atNt4Y6bcIEZyOJpK+1sqaP
         h0FqFfs+C3MFSw0ZDEZlsNDs9j/yDLQtjcoap8uyxE3qenngWuZi8K3678MwhF22aFvE
         Qr9Q==
X-Gm-Message-State: AOJu0YzNpu8oyafEYJFcr5pEpTgrDYJhbJzPgF1BW+KIrPs08co4Ps6g
	00IUWm7sX05sL4F6ZH32wzPDTXr4PmJyRDdD39hgPQznT4ZynhpzL3mjJbL5S74=
X-Gm-Gg: ASbGncsqRCS4tLkzz5VKvU8Sn8krmg6HLxHBGlR4ep7Vjy4DL3LXv6FLh28W4zfFs39
	SHQYguDDfaOB45BKBpOMIgilJ3PKSCoyRFb+HCHP2lnuI/quafhO7ZxEdD4XnMk+iNAPXIc5FK6
	nlOKKL5osrHVuDUCLZiQbJ2q1HArAjoIUsfQ35NwZLz3deb+9G6yuXLYoMk93F64c5O32dcljCM
	/ksPl/Hkc8u9rc5b+fi3d4tYrCz8HK4TDKvs+H3uJSzkoraiOpJb85dNPk4lgAy8SXEUDWeMh2q
	H1h8A/lgSKOs1/KcWsWDi7pp/5yxPS0D0L78rJNx4v+zu5VZLzrfKN7Ystml5Z6Tbb1WBGoFqCp
	10H2+jlMqaDYI5Zvb
X-Google-Smtp-Source: AGHT+IFxczhackqjYiE97EhhbAF4RDt7OPKNsxdZvptR2pBNQfi5HQQ+Xvl30s4IHQlDhL12tmRxOw==
X-Received: by 2002:a5d:584a:0:b0:39c:16a0:feeb with SMTP id ffacd0b85a97d-39ea5213ca5mr1931372f8f.27.1744375154078;
        Fri, 11 Apr 2025 05:39:14 -0700 (PDT)
Message-ID: <d25c6102-0e15-4934-aafc-0801cdd65664@citrix.com>
Date: Fri, 11 Apr 2025 13:39:13 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/3] Rework rootfs generation to make a cpio archive
To: Frediano Ziglio <frediano.ziglio@cloud.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?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
References: <20250411105217.2141356-1-andrew.cooper3@citrix.com>
 <20250411105217.2141356-2-andrew.cooper3@citrix.com>
 <CACHz=Zhs9jT8GDN=LUfewPJpX6Q2LNxBgpyv1wW-D-qv_K-qLA@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=Zhs9jT8GDN=LUfewPJpX6Q2LNxBgpyv1wW-D-qv_K-qLA@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 11/04/2025 1:25 pm, Frediano Ziglio wrote:
> On Fri, Apr 11, 2025 at 11:52 AM Andrew Cooper
> <andrew.cooper3@citrix.com> wrote:
>> Rename the script as we're going to use it for ARM64 shortly, and have it take
>> a tar or cpio parameter to determine the output format.
>>
>> Turn it into a proper bash script, and provide the cpio form under the new
>> artefact naming scheme.
>>
>> No functional change.
>>
>> 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: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
>> ---
>>  .gitlab-ci.yml                                |  9 +++++++-
>>  ...6_64-rootfs-alpine.sh => alpine-rootfs.sh} | 21 +++++++++++++++++--
>>  2 files changed, 27 insertions(+), 3 deletions(-)
>>  rename scripts/{x86_64-rootfs-alpine.sh => alpine-rootfs.sh} (75%)
>>
>> diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
>> index 1d2c72b268a3..916c5ae9d508 100644
>> --- a/.gitlab-ci.yml
>> +++ b/.gitlab-ci.yml
>> @@ -42,6 +42,13 @@ linux-6.6.86-arm64:
>>  #
>>  # x86_64 artifacts
>>  #
>> +alpine-3.18-x86_64-rootfs:
>> +  extends: .x86_64-artifacts
>> +  script:
>> +    - ./scripts/alpine-rootfs.sh cpio
>> +  variables:
>> +    CONTAINER: alpine:3.18-x86_64-base
>> +
>>  linux-6.6.56-x86_64:
>>    extends: .x86_64-artifacts
>>    script: ./scripts/build-linux.sh
>> @@ -62,7 +69,7 @@ x86_64-kernel-linux-6.6.56:
>>  x86_64-rootfs-alpine-3.18:
>>    extends: .x86_64-artifacts
>>    script:
>> -    - . scripts/x86_64-rootfs-alpine.sh
>> +    - ./scripts/alpine-rootfs.sh tar
>>    variables:
>>      CONTAINER: alpine:3.18-x86_64-base
>>
>> diff --git a/scripts/x86_64-rootfs-alpine.sh b/scripts/alpine-rootfs.sh
>> similarity index 75%
>> rename from scripts/x86_64-rootfs-alpine.sh
>> rename to scripts/alpine-rootfs.sh
>> index b70b3a54ede5..c29c92d1c682 100755
>> --- a/scripts/x86_64-rootfs-alpine.sh
>> +++ b/scripts/alpine-rootfs.sh
>> @@ -1,4 +1,9 @@
>> +#!/bin/bash
>> +
>> +set -eu
>> +
>>  WORKDIR="${PWD}"
>> +COPYDIR="${WORKDIR}/binaries"
>>
>>  apk update
>>
>> @@ -56,5 +61,17 @@ passwd -d "root" root
>>
>>  # Create rootfs
>>  cd /
>> -tar cvzf "${WORKDIR}/binaries/initrd.tar.gz" \
>> -    bin dev etc home init lib mnt opt root sbin usr var
>> +PATHS="bin dev etc home init lib mnt opt root sbin usr var"
>> +
>> +case $1 in
>> +    cpio)
>> +        find $PATHS | cpio -o -H newc | gzip > "${COPYDIR}/rootfs.cpio.gz"
>> +
> Paranoia mode: -print0 for find and -0 for cpio to support weird file names?

This is a tiny alpine rootfs.  There aren't any, but weird filenames
would be a problem elsewhere too.

>
>> +        # Print the contents for the build log
>> +        zcat "${COPYDIR}/rootfs.cpio.gz" | cpio -tv
> I saw other comments about -v and busybox compatibility.
> I suppose it depends how important are performances here, otherwise I
> could suggest the usage of mkfifo before, use -F option to the fifo
> and use an additional pipeline to compress the file.
>
> mypipe=$(mktemp -u)
> mkfifo $mypipe
> gzip -c > "${COPYDIR}/rootfs.cpio.gz" < $mypipe &
> find $PATHS -print0 | cpio -o -H newc -F $mypipe -0
> wait # for gzip
> rm $mypipe

These artefacts are built once, then reused indefinitely.  Generating
this artefact takes 18s, most of which is the gitlab runner starting up.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Apr 11 12:41:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 12:41:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.947349.1344986 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3DhH-0006NL-Py; Fri, 11 Apr 2025 12:41:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 947349.1344986; Fri, 11 Apr 2025 12:41:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3DhH-0006NE-NO; Fri, 11 Apr 2025 12:41:27 +0000
Received: by outflank-mailman (input) for mailman id 947349;
 Fri, 11 Apr 2025 12:41:25 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=67/P=W5=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u3DhF-0006N3-Ni
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 12:41:25 +0000
Received: from NAM04-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam04on20615.outbound.protection.outlook.com
 [2a01:111:f403:2408::615])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4573d048-16d2-11f0-9ffb-bf95429c2676;
 Fri, 11 Apr 2025 14:41:22 +0200 (CEST)
Received: from PH7P221CA0067.NAMP221.PROD.OUTLOOK.COM (2603:10b6:510:328::28)
 by IA0PR12MB8906.namprd12.prod.outlook.com (2603:10b6:208:481::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.27; Fri, 11 Apr
 2025 12:41:16 +0000
Received: from CY4PEPF0000EE36.namprd05.prod.outlook.com
 (2603:10b6:510:328:cafe::d9) by PH7P221CA0067.outlook.office365.com
 (2603:10b6:510:328::28) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.22 via Frontend Transport; Fri,
 11 Apr 2025 12:41:16 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CY4PEPF0000EE36.mail.protection.outlook.com (10.167.242.42) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Fri, 11 Apr 2025 12:41:15 +0000
Received: from localhost (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; Fri, 11 Apr
 2025 07:41:13 -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: 4573d048-16d2-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=cjM6A9B/JmE0/B+6U74WyG3p0TuB8U08cdYogXwqbdECAvO2A6Fti9Yv5IFbb6zceH5uz3XqSompyunVx7be/cURyro8KJfYavlRJgHcZX2v679OkSZjcL9cQ7pSQdyYgpSMZ7X1/LjN+kmioWMk7ybFhCeoPMPb2+n8fpa/dQy2PkqC8uvFsOvvYexWDQbqU/GsR7fDo1+9dqzANH2t87LfEGytC4DqxrsE4d0KfEzX5A0zhYusnIaklrmZSVmZbvUg6JhihhiZojt2+wXAPrPYjne2yEQyGSnsrWXL4X62wSrqfbrx62NQ7+0EzNeMvpTxr8Sg66NzrFE4/UC8qw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=EfFK02hPLHahI9t18zOKWf4c17s6CTxQOpUaJ7+svzY=;
 b=ctp6iqdubbLNkqXFrF2MKACVL6WbfMzvaajWhmbp9fjbhJ5I/+3dlSi79v6656L+b/j/tW/WiVuTQD1LOV/Y8vPo2kXBnqtCbRx8hndnJZmZUfiIbY8WDq9fc3ECmQhv9URSrzgI0orHPWrkJc419zYnVmtnf3AImm4WD22BC3xjLvlwt0b1vGvkvmgtK4Wo0DOJNy7U94iba4vq3mJ3E5HnVn40opCkm91VahiCOHyGMasEchVtFo7KVrz0KRaPmznLk5SdwVHCGOsbf5mGcyt1yrLvZv+XNy92gYb75QXQ9vAqPGeJ/ha+vaf305smjPDFjbdLi6xIuYdyC9A+Hw==
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=EfFK02hPLHahI9t18zOKWf4c17s6CTxQOpUaJ7+svzY=;
 b=M3cEqfXBIrWSdV4h4dngPQO5w309ERf10iQSVf/xOZInkh8FcTTXkIkINW/tBdrqqVIx7xsTOHtchOMvwZmXYxKRyjm2j50uvoMEo29B/aGRPHiEp1y/QifUOGoT7mDN+5mS2RFoQomZ/fPuB7uPQohOwjXBqme8QU/lFmylh1k=
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
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Fri, 11 Apr 2025 13:41:12 +0100
Message-ID: <D93TFD9KSK5P.12MLZEHNH230J@amd.com>
From: Alejandro Vallejo <agarciav@amd.com>
To: Jason Andryuk <jason.andryuk@amd.com>, Andrew Cooper
	<andrew.cooper3@citrix.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>, Michal Orzel <michal.orzel@amd.com>,
	=?utf-8?q?Marek_Marczykowski-G=C3=B3recki?=
	<marmarek@invisiblethingslab.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>, Xen-devel
	<xen-devel-bounces@lists.xenproject.org>
Subject: Re: [PATCH TEST-ARTEFACTS 0/8] Cleanup and Linux ARM64 support
X-Mailer: aerc 0.20.1
References: <20250409163702.2037301-1-andrew.cooper3@citrix.com>
 <828cabc9-512f-4c2f-a7d7-b9c8963c1300@citrix.com>
 <f7b820af-b548-4dc3-9af7-9d2214a232b2@amd.com>
 <5da1f4ec-43ca-4279-88dd-b51d57b306e4@citrix.com>
 <eeec5fd7-25ae-42e6-be47-d849e2e33f6b@amd.com>
 <b0da7fe5-9dc1-42d8-9acf-56141eaae053@amd.com>
In-Reply-To: <b0da7fe5-9dc1-42d8-9acf-56141eaae053@amd.com>
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: CY4PEPF0000EE36:EE_|IA0PR12MB8906:EE_
X-MS-Office365-Filtering-Correlation-Id: 4cd81e09-9a32-4ec2-0ab0-08dd78f62641
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|36860700013|82310400026|376014|13003099007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?R1dFR1JmRk5TeTNvYzI1TkNhMy93QkdrcTg5clIxdmlheitsM2ErZ0wyQndJ?=
 =?utf-8?B?cHVMODZoQ3pIMHRHWms4azhQcEl6QnVIMVVuTTlkeGwvNnp3OWZxT05NM3pQ?=
 =?utf-8?B?U1VDZk04bWEwR3owZ2Nhd0FUUDkxWHQ2L1BEbHduQy96cGkzRnZsUFBOQ2xY?=
 =?utf-8?B?aU1zNWlQQnZ2UWhSVmhIaDVTK0NmSEwzdEwyUkpRUGw5K0FJdFpQUXNxbHBC?=
 =?utf-8?B?Qk14MHhIQTVLQVh4M3N2M0VRSThaUmM0U3ZTSlVQMXVSZEpPc01MMmt4dXMw?=
 =?utf-8?B?bXdTM2V1SE1xajdnMktuMSttb0pEWEhRYWVtZVgrK0pOWjRNa08zTWdoTmFV?=
 =?utf-8?B?eURKbldZQ0ZzWTMyUGNsUTFSOWttYjVpSEVvRzc5WEdRVjJJZW9yRHorNnNX?=
 =?utf-8?B?OGpRZ1Z5eUsyQTg0cmFCTlpyVE5XSS8va0RnV0NhMEhVY0kvdExsWkpqa0RC?=
 =?utf-8?B?MWNUTXk4Vk5XMFdwVzNjZURSRVZHYjBNWlI0R3paZTNCOVFTWnB6bG1FYTU1?=
 =?utf-8?B?TmthdTU0Yys4RXdZamhrTUhRbHNIMjY5YVphZm1DNG9DNXVKWk9CZUlWMnFy?=
 =?utf-8?B?RUlIOU0wRmpnYnRWd2RPQU1oVENZbWxXdGZuT2wxN2NzbmFSaDd0RS9MOVZ2?=
 =?utf-8?B?RlJya2RwaUlqYlk2OUdFbkVzekEzTTVsUjMydDNkMmp6a2JZV2lKYmplUVNx?=
 =?utf-8?B?dVQ2cjU0elovWTFyL0dOWlFqd2FMSDVORnd3aXBjWkdldFVYekE3NHNZM0VK?=
 =?utf-8?B?Uml1bGYrWnVBSzQxeEZabWFXd2JheUJaOE9GMUlBVUpaNGNoSURPWlpnZmdS?=
 =?utf-8?B?eU8xZGh5bk85ZWtDRGlxY1UweXlXZlRaSjBkUEh5WGlTNm82dEtvT0hTajVs?=
 =?utf-8?B?TVBnN2piTFlHRDNKeHpxVGdKSTRvYll2OVBlNitwMjViL21MejZVTEFrSVBR?=
 =?utf-8?B?TFduUTRBNFdpYUl3TVRDWXE5WXhsVzhQaFpTdThFQTZMOE1TTlBhZm9CY0px?=
 =?utf-8?B?bDBGQ0MvOE1BRS9aRTJIVGVteEk4SEc4YjQwV2MyNHY0VCtJZXJsZVFSWWIy?=
 =?utf-8?B?elB5d1JmMlpFNENGdzdydHNMTXlSSTNiMTRseWlSL2dzWXNRcnZncXNSbHhh?=
 =?utf-8?B?TnJTd3M1bHZrdE5KdkY0aTFoTVVhZE9rQmJqN2F5RTJUM0E1S1NsMkVyWlVE?=
 =?utf-8?B?a1pQc05ldXZiMVBiOVdRTVBVbldQSnRhOHhTbTIvdkVJQjdoamJoYjJ1QXM4?=
 =?utf-8?B?cFZDcktYTTVvenZ6Um1Kc21QWmdQQ2dpb0h5N2FNZnR2NzZjdFNSaG9Xd3gx?=
 =?utf-8?B?QTNZWjB4K1Vxc1hhQVpDaUhtaTlIRXdXTm9mZVJ5cFpZdHpGYk10OVBhQW1K?=
 =?utf-8?B?a3VqRmF6aUh0VmlUNVYwNGhOMm5jeXhPY3J2QjByN0l4VnZFRlMvUVZ4Ulc1?=
 =?utf-8?B?SUdxVXVuZlgzUHkrY2FlL0V3ZXJsYlJ6YzZrcEorV0VhcGd4ZnNSbi9vREpO?=
 =?utf-8?B?eDI3RjdzaVEyVXByT3N0VGw3V1pzZnB6M3BFOVRCa2ZnRVpIck4vTTY3YTBy?=
 =?utf-8?B?RytMNyt3MklTcVZacHlOMFNTcU1CU05vck4vd3pKa1RGeHBOZzlrdHk5VmNt?=
 =?utf-8?B?VkozZ1pLSDNsdTd6a25rY29xQk9pS1VqMHY0K25UVUdETzlYeHpkWU9RZDdL?=
 =?utf-8?B?U2RPTXMvc0JCcjZ0U0VCT2NlVEY4SS8yOHo5eEJBcStYWUZRVHFIc2N1eUVl?=
 =?utf-8?B?L1pVM01EZUwvSnV2cFdzakFwUzRlNjl6UVhtY0NGMktLRnFaZUdtNXAvQTFS?=
 =?utf-8?B?Y2F4anhXbDQ1OUtDQmR4RmYwb0piWHNodS9PZlVabU5BTngxN1ZCajR3amY0?=
 =?utf-8?B?ajdad2VGNmFuQ3M2VTN6V3NoZnB1NmlYL1lSV0tqRTFGaGEvK2QybzljajhV?=
 =?utf-8?B?UGdPZmdkOFIzVWUyTlZ0VFpDOXRSWVM1VjlzZUFEdnpHRzNNbkdwRnBFYW00?=
 =?utf-8?B?enZqenBsSFVrQXhiOTBJbXdUK0M0U3B4bWlEWVR5Um5Uekh2cTRIT0FaTmR6?=
 =?utf-8?B?L3ZVdFY4OCtJYWV2Zm1xSWtCTzE2TWZwekp5dz09?=
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)(13003099007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Apr 2025 12:41:15.4000
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 4cd81e09-9a32-4ec2-0ab0-08dd78f62641
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:
	CY4PEPF0000EE36.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PR12MB8906

On Thu Apr 10, 2025 at 10:50 PM BST, Jason Andryuk wrote:
> On 2025-04-10 17:16, Jason Andryuk wrote:
>> On 2025-04-10 05:17, Andrew Cooper wrote:
>>> On 10/04/2025 1:09 am, Jason Andryuk wrote:
>>>> On 2025-04-09 13:01, Andrew Cooper wrote:
>>>>> On 09/04/2025 5:36 pm, Andrew Cooper wrote:
>>>
>>> 6.6.74 is broken too.=C2=A0 (That's the revision that the ARM tests wan=
t).
>>> So it broke somewhere between .56 and .74 which narrows the bisect a=20
>>> little.
>>>
>>> https://gitlab.com/xen-project/hardware/xen-staging/-/=20
>>> pipelines/1761323774
>>>
>>> In Gitlab, both AMD and Intel are failing in roughly the same way.
>>=20
>> Something else goes wrong in QEMU even with my patch for the hypercall,=
=20
>> and Linux eventually crashes.=C2=A0 Lots of unhandled memory read/write =
in=20
>> 0x1bfffe000 - 0x1bfffeff8, which is marked unusable for dom0.=C2=A0 I tr=
immed=20
>> lots of the consecutive "unhandled memory" from the attached log (313KB-=
=20
>>  >22KB)
>
> Seems like Rogers patches need backporting too:
>
> x86/xen: fix memblock_reserve() usage on PVH
> x86/xen: move xen_reserve_extra_memory()
>
> Regards,
> Jason

I just tested this with your RFC change + those 2 backports on top of
stable/v6.6.y and Linux does boot afterwards.

Well found.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Fri Apr 11 12:46:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 12:46:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.947369.1344997 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3DmV-0008Bd-Cr; Fri, 11 Apr 2025 12:46:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 947369.1344997; Fri, 11 Apr 2025 12:46: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 1u3DmV-0008BW-AE; Fri, 11 Apr 2025 12:46:51 +0000
Received: by outflank-mailman (input) for mailman id 947369;
 Fri, 11 Apr 2025 12:46:49 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=67/P=W5=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u3DmT-0008BQ-L5
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 12:46:49 +0000
Received: from NAM11-CO1-obe.outbound.protection.outlook.com
 (mail-co1nam11on20625.outbound.protection.outlook.com
 [2a01:111:f403:2416::625])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0660ed70-16d3-11f0-9ead-5ba50f476ded;
 Fri, 11 Apr 2025 14:46:46 +0200 (CEST)
Received: from BLAPR05CA0010.namprd05.prod.outlook.com (2603:10b6:208:36e::19)
 by SJ2PR12MB8011.namprd12.prod.outlook.com (2603:10b6:a03:4c8::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.33; Fri, 11 Apr
 2025 12:46:40 +0000
Received: from BL02EPF0001A103.namprd05.prod.outlook.com
 (2603:10b6:208:36e:cafe::60) by BLAPR05CA0010.outlook.office365.com
 (2603:10b6:208:36e::19) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.12 via Frontend Transport; Fri,
 11 Apr 2025 12:46:40 +0000
Received: from SATLEXMB04.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.8655.12 via Frontend Transport; Fri, 11 Apr 2025 12:46:39 +0000
Received: from localhost (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; Fri, 11 Apr
 2025 07:46:38 -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: 0660ed70-16d3-11f0-9ead-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=gfKSB8piQ7rhQFso15KqcTBTNaRr9xZPcV7SWoWH8kPukRlhmaWTPYwtazH5iMeicilAMfJmn5kXsQ9RMsVbs1PpHofGQ2Sd1qZpIRorUSlUmhotGV+hPvKhDN+wIjvCBZJM/lb4lEvC6BL0HyFB+jFIjs0nJ4yaOn+BS4GXFXngJbpUR1uW8P9u4eKVoP+JwE0OXZ+vK2bhw7sr4Mfe9SI5rwPp/Jl7swEi9Qj+ntl3pmYeJ64rWw+7zXWc/Y1W9WX4GPYknHGeiFhQlyP3WlfWaG15nOq8WFSs06n6JdUA+6J8fMeIxeefgcQvVC0HW1lXHMyUOWXp8xVj4r41tw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=cNtvIg+H4tFX740mgdYuO8dNQ81YAJnWx5NOCcftHp8=;
 b=AHhXmeWk8uZVfFIkwfH/cehbBpplnbIxMYtrmu0aFM5+OtrMs3DbuyxhnM3KxLy29cRPd3M6lyi5BISgVhKbEdRcderOpE0zWZrTqsfE6bwXwGQS2j2yQonhQj7DdrFlWE3vjfsmuMoikM4ywMqMjjef+Y7oNeH8qQDqP7392eG20g/A9sNZWESGEgcegEsOzOGQkSEmiI6o6X1hNrPkL8NBpuOikpCQHCzuGIqp3h7Ubnl6hKAj2XkHU3rroGwWWR1ymVUZXOa7YBGXatfY/YYZy09eDwT4E7tGpAUw1jOY6hopfpiangh34Go2+0lvK2KOgNiv2S3MII5d0T8tBQ==
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=cNtvIg+H4tFX740mgdYuO8dNQ81YAJnWx5NOCcftHp8=;
 b=0OPYyv8EwEijHHV8FFjjM2dv5f5mwRDeLxBWR3uWW4UJbHjZdMAHON7MGlpl+OIFHJxnf3JM+80tHo7qZ/eHZ8l75PtwELtsd1nO4i7ZInJ5AEwuf93cO61Z158cvVisuaw9nEwdGkm2Yut4/YD5hHb+V8X+W8xNSM9+PtK8EaU=
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
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Fri, 11 Apr 2025 13:46:37 +0100
Message-ID: <D93TJIKWB1PN.3GQOSQV3KVT9F@amd.com>
CC: <andrew.cooper3@citrix.com>, <anthony.perard@vates.tech>,
	<marmarek@invisiblethingslab.com>, <michal.orzel@amd.com>,
	<roger.pau@citrix.com>, <sstabellini@kernel.org>,
	<xen-devel@lists.xenproject.org>
Subject: Re: [RFC PATCH] x86/xen: Fix PVH dom0 xen_hypercall detection
From: Alejandro Vallejo <agarciav@amd.com>
To: Jason Andryuk <jason.andryuk@amd.com>, <jgross@suse.com>
X-Mailer: aerc 0.20.1
References: <D9366FPHFS9F.2OP8KH7C8OJTF@amd.com>
 <20250410195012.363658-1-jason.andryuk@amd.com>
In-Reply-To: <20250410195012.363658-1-jason.andryuk@amd.com>
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: BL02EPF0001A103:EE_|SJ2PR12MB8011:EE_
X-MS-Office365-Filtering-Correlation-Id: e15993f7-6365-491f-d29e-08dd78f6e78b
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?WFJ1eUQwOTVOVXRGdTB3YVAwU0FNT056L0cvU3pwand6aVRQdDVKSy82MEtj?=
 =?utf-8?B?UUYydCtjK2ZUWGlrUy9DaG1YUlFRZEN2bVd2TjhzUWl5NDRnUFB2ejgxeHZo?=
 =?utf-8?B?aHFKSDZ5VjJMY1JPeDIrODhTWFNNMlZ0MEd3L3dtRE42MVo2dVlEVWU0VSs0?=
 =?utf-8?B?MXN2dWRQR3RBbUh3dVFVYXhrL2IwbDN2QlppUXgvNVYwVjllQ0dCRzFVMFdr?=
 =?utf-8?B?MUZBUU1ZOWZnYk9aekhIdC9GNW5RNEwyTStQY1ZVU3RtTHI1SjJTTTZPbnlw?=
 =?utf-8?B?TzF0bkVMVm9RQURFZm9vWUhndUZwRVBGWlF0d2sxL1pSbFE4V0pSaFg1bkN4?=
 =?utf-8?B?WVdDY1J2NEhnZmx5K0Q2Y0ZGSUFITTU4YnUvRGVtMm93UWFHS2ROUWRPTlJp?=
 =?utf-8?B?L01JUnh5OUlNVWJGTDlrbUVkYStBY2hKbjM3MHBsb2VibjRERXZUQjdjMlJP?=
 =?utf-8?B?RE9QRFovdUg5VTJuaW8xS3c3d0l4MzVvaDRHU1B6c0NySHRQS0N5ME9WcGxR?=
 =?utf-8?B?cmpoUWpuQlRmaWJGdUhMQ2dKVnQrcC94bytSSStoZ2JOejZBUjVMekpLWjRX?=
 =?utf-8?B?RTBqVnVmSkJDc3JOKzV4WkxTdHhjNFZPWkpteHJvWFY3WVNLSEN0SlQyOGEx?=
 =?utf-8?B?YkVJRkhlMTgzU0Mwa0hiN2QzemVjaGV3L1VVd0dsQS9hY2JBYldXRHJCZjQ4?=
 =?utf-8?B?RlJ1NGZPdm4zQzRtMXBsd2tQeUpFTHErS0RPOENaREJUazErWUZPVzRud0ky?=
 =?utf-8?B?YmpRbDdOT3BqSXZJclQrRTNReGlQcTBTQjJ2NnRUT3dsTllOVUkvNVRsTkJk?=
 =?utf-8?B?ZVYyaEpvOEc1MkVzRDhzaVlRNS9ldlRHbzVib0NPNEN3YW5YZW9KWVhiWFVF?=
 =?utf-8?B?ZlphVGU2MXIrR2kybFUzNU5EdzdtSjB3dDJ2WUVNSlFZQnpVdldBRDViQUty?=
 =?utf-8?B?YVBXYVo5bzMySzk1dzBaMlcrS0hpNU1CTWNmeVkvYitTalZOUmNTRFRtZWJZ?=
 =?utf-8?B?WTZOZGc4bGZBTHh6NGhZNSthdnhybHc1emtSUUNUaWhMbzZwM25zd0oyU055?=
 =?utf-8?B?ZFdqT2UyM21icDQ0dUZ2T3kwNnBHUXRBWkdzL09KSGJXQnB2aFZkL3NXeUlt?=
 =?utf-8?B?L3ZVRi9NRTI5ZUo0Q2RyZWx6eURoOFBGVzNYczVNUVBFSWl6VHB5VUtxTnRD?=
 =?utf-8?B?c21sV0RFbWtFZitYTGNPbFJzK3VpcFFXaFFYbzZ6MmRPblFEMUtVMnFOMzVY?=
 =?utf-8?B?QjRtcnlHOFJjYS9lcGFEcURjK3dYVHY0RG81OTYxQnVoYXdQM0JnN295SHJh?=
 =?utf-8?B?WG1VVG1FNnVrQWVXK1AxQmF0UGZCcE43Y1dkcnFtczlkMUwwelA2aW9NTVBR?=
 =?utf-8?B?ZitkS1ZTcHVBQ1dKZSt4cjBEQzlXTUhyMkRaSGZmczh0QjJ3ajVjU1VvWTQr?=
 =?utf-8?B?bmxua2ladHJCUjcrMVlCQ2JDUzJkaVpYOE5DZENlaFNxQlNUbjJ2MHRoT284?=
 =?utf-8?B?cVJ4OEYxT2xhRHlmNVY3QXFUVElraTk4Smt1WmdpZHR6N3pnMEZGUjM5bmFM?=
 =?utf-8?B?eG5CM3RvSXVLUi9BeURNSmtSNkpJV2VtRytOVjgwUVlMaXYvV3p5a1E4MkJE?=
 =?utf-8?B?YmxHcFNLejBaQlg4SG5xVk1sQXFQMy9ySitDNXpwSDNjR3BXL0tEc0d1VkZ0?=
 =?utf-8?B?dEtJMHZQaXFuM0xQSGlReGhuSzNnQktXaUtyaFJZMkFzVzRkeDZDZ2JWR29I?=
 =?utf-8?B?VDJJS3AwaEFKTzFKVlEvaWgrUEZjOWNDSDRtdnNBTmhnaDk4am45RURyU3cy?=
 =?utf-8?B?ZXNOSGVEVFVneG13dnNaeVlRbjNheGhsVjJucE16UFA4OGUrVTN2WEdac1ZK?=
 =?utf-8?B?emtaYXJZZDN3eC9SR3ZNQ3pTWGJKdDVPRDBGcnlydG9RbHo4VHUxNi9wV3Fv?=
 =?utf-8?B?dHB0RncrSURyQ21ReGIzNTllYzByRFljUmR0dFdBeUdMbEV6VlhWUUNhbDMz?=
 =?utf-8?B?SlRCRW1YRzduTWFTRGVWNXlLMDVFWjIvWlk5N2xKc21wcm1BQjFYTEdjb0h6?=
 =?utf-8?Q?qzjxad?=
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: 11 Apr 2025 12:46:39.8154
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: e15993f7-6365-491f-d29e-08dd78f6e78b
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:
	BL02EPF0001A103.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR12MB8011

On Thu Apr 10, 2025 at 8:50 PM BST, Jason Andryuk wrote:
> A Xen PVH dom0 on an AMD processor triple faults early in boot on
> 6.6.86.  CPU detection appears to fail, as the faulting instruction is
> vmcall in xen_hypercall_intel() and not vmmcall in xen_hypercall_amd().
>
> Detection fails because __xen_hypercall_setfunc() returns the full
> kernel mapped address of xen_hypercall_amd() or xen_hypercall_intel() -
> e.g. 0xffffffff815b93f0.  But this is compared against the rip-relative
> xen_hypercall_amd(%rip), which when running from identity mapping, is
> only 0x015b93f0.
>
> Replace the rip-relative address with just loading the actual address to
> restore the proper comparision.
>
> This only seems to affect PVH dom0 boot.  This is probably because the
> XENMEM_memory_map hypercall is issued early on from the identity
> mappings.  With a domU, the memory map is provided via hvm_start_info
> and the hypercall is skipped.  The domU is probably running from the
> kernel high mapping when it issues hypercalls.
>
> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
> ---
> I think this sort of address mismatch would be addresed by
> e8fbc0d9cab6 ("x86/pvh: Call C code via the kernel virtual mapping")
>
> That could be backported instead, but it depends on a fair number of
> patches.
>
> Not sure on how getting a patch just into 6.6 would work.  This patch
> could go into upstream Linux though it's not strictly necessary when the
> rip-relative address is a high address.
> ---
>  arch/x86/xen/xen-head.S | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/x86/xen/xen-head.S b/arch/x86/xen/xen-head.S
> index 059f343da76d..71a0eda2da60 100644
> --- a/arch/x86/xen/xen-head.S
> +++ b/arch/x86/xen/xen-head.S
> @@ -117,7 +117,7 @@ SYM_FUNC_START(xen_hypercall_hvm)
>  	pop %ebx
>  	pop %eax
>  #else
> -	lea xen_hypercall_amd(%rip), %rcx
> +	mov $xen_hypercall_amd, %rcx

(Now that this is known to be the fix upstream) This probably wants to
be plain lea without RIP-relative addressing, like the x86_32 branch
above?

>  	cmp %rax, %rcx
>  #ifdef CONFIG_FRAME_POINTER
>  	pop %rax	/* Dummy pop. */



From xen-devel-bounces@lists.xenproject.org Fri Apr 11 13:08:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 13:08:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.947386.1345007 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3E79-0006XI-2E; Fri, 11 Apr 2025 13:08:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 947386.1345007; Fri, 11 Apr 2025 13:08: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 1u3E78-0006XB-Vh; Fri, 11 Apr 2025 13:08:10 +0000
Received: by outflank-mailman (input) for mailman id 947386;
 Fri, 11 Apr 2025 13:08: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=kzGk=W5=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u3E78-0006X5-8b
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 13:08:10 +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 038b2f41-16d6-11f0-9ead-5ba50f476ded;
 Fri, 11 Apr 2025 15:08:08 +0200 (CEST)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-43cf0d787eeso21616275e9.3
 for <xen-devel@lists.xenproject.org>; Fri, 11 Apr 2025 06:08:08 -0700 (PDT)
Received: from [10.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-43f205ecb20sm87017995e9.3.2025.04.11.06.08.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 11 Apr 2025 06:08: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: 038b2f41-16d6-11f0-9ead-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744376888; x=1744981688; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=bltsQqo6IjN4SSclRP/QkE61Yss6XiM5n42bQnovYkg=;
        b=PUrIOA767izTGjyreWcM6q1r/vbM7/+/b+tFeNuLhyd23eDgqBzu14QdzjnrVANnt7
         rpNbzzkm+iZqtKu8s9dWbu+X+OOhjju+LixAjljTjpD99ssk0o8VjulbxIyVYC5wRQ7t
         cOIsihC+Vr6YpWkMWWyYAjLRsPzqLicxL6AR5l2Vp94m2NmTMrJfWDA+33tMUgwR1kHa
         ndbljkRdsgxGIT9EuG6exoiBpo5lEwktEB6BCYo3LlDFTT8nK3zxCGGf7vnguTmbia+Q
         XvrtuFxO7WouQk/7z2uCaGNfzggGX5mqMtVCNmMR2L9M58066mR+avZYlxU9BcfzOhh+
         /AXw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744376888; x=1744981688;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=bltsQqo6IjN4SSclRP/QkE61Yss6XiM5n42bQnovYkg=;
        b=GxdKr5CtTEYeRTHUFkDO3CxAqX8d3HIgl8Ne4LD+BYMfTZaJX6kluFlItvoYWqFNeg
         DvHaPGk/vsIOtdjf+3RBTeW/W24jbkCwj/ptJ8A9RmbVZULR1N/nZ2LzTUcR8oWlEgtg
         yN5UazhEMS7BZ8sskCIZGhLWwUtAYEVcTCMMMDpvu7Pj9Xi/zFOm7jMrz5kjJayMuL9J
         OOrlQT5GI35OI//d2Hzik3fn06h9ZYKF5J2dxlx6Hl8tfTp8UO2FUsgERfPcFLx3/3J8
         PJAZqcQ0fLWHCOm9PIaxb/BvIbITCsvAWtQuc106T7bZ56WxARlTQgyBb1Ga/8tj2YUS
         v2wQ==
X-Forwarded-Encrypted: i=1; AJvYcCWwQgZMlVAbPxajQaCvhppK9zPH6Bx/T+jzXw2+fJAIqSgesuTrutL7s8vWG/t69yI2cRPXuxckf20=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwLdY8F0XkUXG5SulLgb2kDQjSiDnbzWPzSobfPXHJvPsDRL3yj
	hE0QhAiHFobYkn3kHP4X+BRJ8KYHZNO9qx2/Q1q/Ps/8bEKkP9tvg+K2MdTtpw==
X-Gm-Gg: ASbGncvJ8nXN5GVplQ+LLuKinyOVl12IMQDihMH0rHj6xp/9qcyxqRRwunzQmXa6wYL
	H7DLe3DJiaB1zQa20lNRcjRdaSH3ngHfklvDkpbM8qaIeCXsn3b0CSH1Qt5OoVECttJTHMmuQK/
	moRzYOjs16sTkSdJHanxLL3jFEzRSZiWzc6bvYmwAxdDh/IbZPvxevxG7+0F3p6AV8qr0eSj1fS
	pOCoKlavj55GrdhZ7F185n1rJsZA8wVFNVvvmNTSi3mMVgu+F0/86bK6TmxJ9NEf1cDr8CMSdNS
	/IiBrsDQcyZ32RSVH18MnMsAIbXCZ3VR0cMFHG39Yj9i4JfOPabzH0FsYMAArD7U8QzN7grjFxv
	+qLRx8zr5QmDCkltETAGu/plxvGTQuzNFhup2
X-Google-Smtp-Source: AGHT+IHbVcQXeejmdRKt7vJ18gEQ2jWq4Hw6F1EOg+12hm2gjHgwvvDiQlnxT0j7RwtsXcRFIovV3A==
X-Received: by 2002:a05:600c:1c91:b0:43c:f64c:447f with SMTP id 5b1f17b1804b1-43f3a9b4870mr19429805e9.29.1744376888114;
        Fri, 11 Apr 2025 06:08:08 -0700 (PDT)
Message-ID: <bdb04e97-07cd-4d31-8853-6aa5094aea0c@suse.com>
Date: Fri, 11 Apr 2025 15:08:06 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH] x86/xen: Fix PVH dom0 xen_hypercall detection
To: Alejandro Vallejo <agarciav@amd.com>
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech,
 marmarek@invisiblethingslab.com, michal.orzel@amd.com, roger.pau@citrix.com,
 sstabellini@kernel.org, xen-devel@lists.xenproject.org,
 Jason Andryuk <jason.andryuk@amd.com>, jgross@suse.com
References: <D9366FPHFS9F.2OP8KH7C8OJTF@amd.com>
 <20250410195012.363658-1-jason.andryuk@amd.com>
 <D93TJIKWB1PN.3GQOSQV3KVT9F@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: <D93TJIKWB1PN.3GQOSQV3KVT9F@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 11.04.2025 14:46, Alejandro Vallejo wrote:
> On Thu Apr 10, 2025 at 8:50 PM BST, Jason Andryuk wrote:
>> A Xen PVH dom0 on an AMD processor triple faults early in boot on
>> 6.6.86.  CPU detection appears to fail, as the faulting instruction is
>> vmcall in xen_hypercall_intel() and not vmmcall in xen_hypercall_amd().
>>
>> Detection fails because __xen_hypercall_setfunc() returns the full
>> kernel mapped address of xen_hypercall_amd() or xen_hypercall_intel() -
>> e.g. 0xffffffff815b93f0.  But this is compared against the rip-relative
>> xen_hypercall_amd(%rip), which when running from identity mapping, is
>> only 0x015b93f0.
>>
>> Replace the rip-relative address with just loading the actual address to
>> restore the proper comparision.
>>
>> This only seems to affect PVH dom0 boot.  This is probably because the
>> XENMEM_memory_map hypercall is issued early on from the identity
>> mappings.  With a domU, the memory map is provided via hvm_start_info
>> and the hypercall is skipped.  The domU is probably running from the
>> kernel high mapping when it issues hypercalls.
>>
>> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
>> ---
>> I think this sort of address mismatch would be addresed by
>> e8fbc0d9cab6 ("x86/pvh: Call C code via the kernel virtual mapping")
>>
>> That could be backported instead, but it depends on a fair number of
>> patches.
>>
>> Not sure on how getting a patch just into 6.6 would work.  This patch
>> could go into upstream Linux though it's not strictly necessary when the
>> rip-relative address is a high address.
>> ---
>>  arch/x86/xen/xen-head.S | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/arch/x86/xen/xen-head.S b/arch/x86/xen/xen-head.S
>> index 059f343da76d..71a0eda2da60 100644
>> --- a/arch/x86/xen/xen-head.S
>> +++ b/arch/x86/xen/xen-head.S
>> @@ -117,7 +117,7 @@ SYM_FUNC_START(xen_hypercall_hvm)
>>  	pop %ebx
>>  	pop %eax
>>  #else
>> -	lea xen_hypercall_amd(%rip), %rcx
>> +	mov $xen_hypercall_amd, %rcx
> 
> (Now that this is known to be the fix upstream) This probably wants to
> be plain lea without RIP-relative addressing, like the x86_32 branch
> above?

Why would you want to use LEA there? It's functionally identical, but the
MOV can be encoded without ModR/M byte.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Apr 11 13:45:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 13:45:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.947421.1345049 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3EhW-0002BA-Bg; Fri, 11 Apr 2025 13:45:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 947421.1345049; Fri, 11 Apr 2025 13:45: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 1u3EhW-0002B3-6S; Fri, 11 Apr 2025 13:45:46 +0000
Received: by outflank-mailman (input) for mailman id 947421;
 Fri, 11 Apr 2025 13:45: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=4v6j=W5=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1u3EhT-0002Av-V3
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 13:45:44 +0000
Received: from NAM11-CO1-obe.outbound.protection.outlook.com
 (mail-co1nam11on2061e.outbound.protection.outlook.com
 [2a01:111:f403:2416::61e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 418662fb-16db-11f0-9ead-5ba50f476ded;
 Fri, 11 Apr 2025 15:45:40 +0200 (CEST)
Received: from BN9PR03CA0868.namprd03.prod.outlook.com (2603:10b6:408:13d::33)
 by CY5PR12MB6227.namprd12.prod.outlook.com (2603:10b6:930:21::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.34; Fri, 11 Apr
 2025 13:45:32 +0000
Received: from BN3PEPF0000B06F.namprd21.prod.outlook.com
 (2603:10b6:408:13d:cafe::1c) by BN9PR03CA0868.outlook.office365.com
 (2603:10b6:408:13d::33) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.25 via Frontend Transport; Fri,
 11 Apr 2025 13:45:32 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 BN3PEPF0000B06F.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.8655.0 via Frontend Transport; Fri, 11 Apr 2025 13:45:32 +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, 11 Apr
 2025 08:45:31 -0500
Received: from [172.17.237.105] (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, 11 Apr 2025 08:45:30 -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: 418662fb-16db-11f0-9ead-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=GNO+6YyAfY1gPaCjF0j3IecR5MUX4hqMMK87sHdVW0+Ws/XTzZ4Cbbkj+rHZNc43QHNLeRYJci4qcgaauiPVxo0dlzdx7wz9+U9nJdwPSJUISscIJUlAzcg8xYRDPx5s5XTRbxyY8cf39s6E9bbgXbb2/XB3wjck1DQxNIagYmlVykyc3ZnYONoHsT7/mwgkI0qP00v3myNyMLBVCL+V4Ws+ksGxYtUrX4jXa0E8pEK5el15XENcdo3yMF2nmgRFhrzg53dhvbnl5d2C0s7fIIg2cOVq8ZMQu8Me2HPoyGkf2R7H5KMVvzPt+ixSwIjfidQpKH18B5n0FEUGi1QR3Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=RgPjMn9WW1ZTn35zjxKepPSRt3uOfaw3HWKJE8ieJaM=;
 b=INQkSEpa54hvE9QgC6yrDvPCHycW39fs4xmNISWweBsVHl8KZbrdIuC/ENkbf2VDUd/WDPqhkKP08CvsRe7bBNk36PUSPuRxtGa7LN28xCr/17pIgo0fdKJMnRaBra9ornFVC+sKxEI+KjZcPzrMGDwtzNXLUT4DoBQrXsk0sKkyrvp8w4TPQEDBz2vFkn0uC5yXl0tRXQOl0i6VvQGGLNqiF8m/jUjTZfTQnBIJqwiewZMvMB3BHp+qLtD8ksmT5N/3aMhLWBMGlYeci2H5sh9BSYUQ0xFkPMJ/VWxYBDQii3AJh576Vh5Jy1O3nH9RpksPnYFCKR7/7qCIqoOScw==
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=RgPjMn9WW1ZTn35zjxKepPSRt3uOfaw3HWKJE8ieJaM=;
 b=aO7QNiRmaSSKUJc15QVT59nqOI65HapR0FGm5532hFDb2DJFUIl1mYp0AvRqPbqOl3lzoBDOsipdioDPW49OjGCfzS/MMxwFbZ9uQmB+s8OwALK+i/n90bh704uh4syDq335qE8EoXUizMcWqpxHKM9m7iKkQZff3UX0Ax+tjnA=
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
Content-Type: multipart/mixed;
	boundary="------------bu7ekQa2prmBxjL00YZWcI1J"
Message-ID: <9ed89e50-c645-407d-80b4-5b78cb6e36fa@amd.com>
Date: Fri, 11 Apr 2025 09:45:26 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC] xen/x86: allow overlaps with non-RAM regions
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>,
	<xen-devel@lists.xenproject.org>, Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>, <Xenia.Ragiadakou@amd.com>,
	<Alejandro.GarciaVallejo@amd.com>, "Lira, Victor M" <VictorM.Lira@amd.com>
References: <alpine.DEB.2.22.394.2504031755440.3529306@ubuntu-linux-20-04-desktop>
 <Z--0USril0UIhR4R@macbook.lan> <3c5dfd26-3c12-498b-aca4-0beac4e991a5@amd.com>
 <Z_jFSb2-efexUNlL@macbook.lan>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <Z_jFSb2-efexUNlL@macbook.lan>
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: BN3PEPF0000B06F:EE_|CY5PR12MB6227:EE_
X-MS-Office365-Filtering-Correlation-Id: a4e9c4ca-007f-4024-bbfb-08dd78ff20eb
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|82310400026|36860700013|4053099003;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?cFhScXdJS3hySEUvVVIxU2YyU25BWVZCbnNvL04vRWM5a05HWDdCeHl5cEZL?=
 =?utf-8?B?K3dSdGxibHMwSjNUcU1idW8rZ3lwZk04RWRqZVYzU2g4UkYwMjZGSnVvdENp?=
 =?utf-8?B?NHZIeEZxcm5kT2NLblJxbkVhQmhPZ0hHbjZuTzJhbzdOZkN0VjVGUjlKbU1m?=
 =?utf-8?B?WlNweVRVM25XT1cvcVpvV2E2SjZtVXhOWTNBMlRyVEV2WkovcnhnTFEybTRo?=
 =?utf-8?B?R2kxc0wrVkdnOW5kMzNYV2VXSEtDVGFScVdndXovby96MkxoRXdDQkI1MSt5?=
 =?utf-8?B?N3MzMkxxNE1nS1dUa3l2RTlPajhxZ3JOaStGbnZEMVBoVW9jeXJsWmV3S3JY?=
 =?utf-8?B?clRSYTM3K2c5djRESzVsS3F6TWtSUmtUdmVZOW5XQm9BODlvMVRUek5JaEZi?=
 =?utf-8?B?S3JjdVVSZjN4eWJCaU9uVWpZSlE1ZTIwd0xiOHorZmZDd0hGSXF6Z2NhQmRR?=
 =?utf-8?B?bFBBZElQTTNleUc4LzByWFFVbytpZ1FYL2ZOZ0xiQ2ppNzJnN1dvWHoyT1Rs?=
 =?utf-8?B?Nlg4V3UrOTVwR2dOUCt6TlhpTXZyQ2pNU2dLQktBSE9tRlAwUWZEK0Z3VFcv?=
 =?utf-8?B?V2ZmSVRjV3ZPM3Z0bXB3ODI3OGh0eGtJS2dlMGdiU3lxaXFOaVJ0WFZhd3l2?=
 =?utf-8?B?ZnNZTDdSYmxkNFlhNTFCenpYd0U0TjZXZWlBUFVVNnYvSTk2SVdFeGgvRUhE?=
 =?utf-8?B?eVBWWkhDWFIwR25LTXk0V2YvcWE1RXFTeDluSkRWSzVHT29seE04Snc2UFQ3?=
 =?utf-8?B?UjYzcHk0RmRXVGpyN2N0dWtvQ3V1VVZCYzQwdmRUN3ZKS09KenJPaUd2M2NE?=
 =?utf-8?B?a3c5bE5oamVsUnRXVlZ1eFUxQVlpdFcramdycENDQ0xheVVwcjZoQXVkWWxR?=
 =?utf-8?B?UVJLN0NqbS9QVHMwdCs5VU1BRiszNGxxckgxUlVGWnBXVS80K0ExUy9NYnBD?=
 =?utf-8?B?dkdVNEl0RnQxeVJLeS81TkI3M2FseWhsUjFjM3IwalYwMkxZM0dGa1d0YzhF?=
 =?utf-8?B?OXdDdk9QeS9HZ2pJTHNhZ0J5bHBFNnJ2RUh4OU9TMllNQ1hDVlZKbnBYaTZy?=
 =?utf-8?B?M1ZjajNrcmowS3dVaTE5U0IrZkUzN2FuNWdnQkI4OXpoMlczczR1VzRSSGM2?=
 =?utf-8?B?ZlUvZGpCQUNGSDNNYkcxaEY3bmFmbW9KNW9Id2hPcXNSRkoxdEpUcjBoVm9F?=
 =?utf-8?B?R3Z0emRxdWlDLzlURDg0MjZWQWpUL3pUdkJxeTJ6L085Qnc0VmFQVkZQM1ZR?=
 =?utf-8?B?UFgzcTk4YTNuQ3lMalhrWkFjTWxvMDBDOW1wZTdkWm5YTDlVanh2TmxlcFQz?=
 =?utf-8?B?cmJHOW4weG1rQXFUT2hyUnNacmhTcEVTU2JrODQ3TzdmTzdWVjV4eXd4bEQv?=
 =?utf-8?B?R3RoYkIrVVA0WW9NeVRYY2c3ZFlxQWg0a1JPTXB6ME9mRlJoeFN5ZGxIbS9D?=
 =?utf-8?B?OHFIUDdPZk9GL0Z0TTNnd2JOTmlSazNZdlFGbFc2RndXUExnMnF4SGxsZEYy?=
 =?utf-8?B?YzJBWFdaTzZoQ2xFY2M2dFhZSlNqbkx6RzJTVENVVW05Y3N2WmhHU2xOT3Yy?=
 =?utf-8?B?Y1Naby9Hd1V0Nm9EY2k5K21XWEpadE5WbHlETUk5c3B5cW0zcDJLU0Y3T2NI?=
 =?utf-8?B?c3BEK2RDemlSaE1acG5jZk9FMFh2YnBlQmNVVS82TmF5MXNOWGhHQmovOVNj?=
 =?utf-8?B?cmxaZjlORXBZUno0VEpLdE52alEvaHlycWt2ZXZJZmRISUtJaW1hY3hGUWRO?=
 =?utf-8?B?VE5kQnppdU9LMmRQdzdvMHhjSVVaODN6akRMcVRsT2tMRGkrRnpSTThkRy9O?=
 =?utf-8?B?UTIxTHBOMEg3UTJNRTFGNXNYMHRqdGxKL1dKQ0ZDZjA0UldGU3VFbXZ4R1pq?=
 =?utf-8?B?M0NTWjNEbzY5MW1nSTFrZE16N0d6bi9Ud1gxZjVRc0trV1AzUWZLNUo2Uy9G?=
 =?utf-8?B?SitJenJCRjFCYjJBajE4eWV4SmRTQTkrSCtNQXZVSXFXZU9jeDBaVWc0TjZS?=
 =?utf-8?B?RVpBWWFQZGw1SVcrUHlINHhOZXJsQVU0ZGJkbVNBOGF1emtRemZKSVlNK2ZN?=
 =?utf-8?Q?sH4O24?=
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)(4053099003);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Apr 2025 13:45:32.0274
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: a4e9c4ca-007f-4024-bbfb-08dd78ff20eb
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:
	BN3PEPF0000B06F.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR12MB6227

--------------bu7ekQa2prmBxjL00YZWcI1J
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 8bit

On 2025-04-11 03:31, Roger Pau Monné wrote:
> Thanks Jason for getting back, I'm intrigued by this issue :).
> 
> On Thu, Apr 10, 2025 at 04:55:54PM -0400, Jason Andryuk wrote:
>> On 2025-04-04 06:28, Roger Pau Monné wrote:
>>> On Thu, Apr 03, 2025 at 06:01:42PM -0700, Stefano Stabellini wrote:
>>>> On one Sapphire AMD x86 board, I see this:
>>>>
>>>>
>>>> (XEN) [0000003943ca6ff2]  [00000000f0000000, 00000000f7ffffff] (reserved)
>>>> (XEN) [00000039460886d9]  [00000000fd000000, 00000000ffffffff] (reserved)
>>>> [...]
>>>> (XEN) [    4.612235] 0000:02:00.0: not mapping BAR [fea00, fea03] invalid position
>>>>
>>>>
>>>> Linux boots fine on this platform but Linux as Dom0 on Xen does not.
>>>> This is because the pci_check_bar->is_memory_hole check fails due to the
>>>> MMIO region overlapping with the EFI reserved region.
>>>
>>> That's weird.  (Partially) the reason to not attempt to map such BAR
>>> is that it should already be mapped, because at dom0 creation time all
>>> reserved regions are added to the p2m (see arch_iommu_hwdom_init()).
>>> If that's not the case we should figure out why this reserved region
>>> is not added to dom0 p2m as part of arch_iommu_hwdom_init().
>>
>> Victor discovered these regions are type 11 EfiMemoryMappedIO, but they get
>> converted to e820 RESERVED.  The BAR points into it.
>>
>> 00000f0000000-00000f7ffffff type=11 attr=800000000000100d
>> 00000fd000000-00000fedfffff type=11 attr=800000000000100d
>> 00000fee00000-00000fee00fff type=11 attr=8000000000000001
>> 00000fee01000-00000ffffffff type=11 attr=800000000000100d
>>
>> Xenia discovered Linux keeps small regions like this reserved, but lets
>> larger ones (>= 256kb) become holes.  See the comment in Linux
>> arch/x86/platform/efi/efi.c:efi_remove_e820_mmio() around line 301.
> 
> Right, but whatever Linux decides to do with the reserved regions
> won't affect how Xen maps them into the p2m.  Anything that's reserved
> in the e820 should end up identity mapped in the p2m for PVH dom0,
> unless it's being exclusively used by Xen (see
> dom0_setup_permissions() use of iomem_deny_access() to deny dom0
> access to some MMIO regions).

Oh, my point was more that Baremetal Linux won't have reserved ranges in 
these regions, so there would not be any BAR conflicts.  Though I'm not 
sure if it checks.

If Xen removed them from the memory map, then pci_check_bar() -> 
is_memory_hole() would pass.

>> The description of EfiMemoryMappedIO is a little confusing, which is
>> probably why its use in unclear.
>>
>> ```
>> Table 7.5 Memory Type Usage before ExitBootServices()
>> EfiMemoryMappedIO
>>
>> Used by system firmware to request that a memory-mapped IO region be mapped
>> by the OS to a virtual address so it can be accessed by EFI runtime
>> services.
>>
>> Table 7.6 Memory Type Usage after ExitBootServices()
>> EfiMemoryMappedIO
>>
>> This memory is not used by the OS. All system memory-mapped IO information
>> should come from ACPI tables.
>> ```
>>
>> The two after ExitBootServices sentences seem contradictory.  I wonder if it
>> should be "Ignore this memory type - All system memory-mapped IO information
>> should come from ACPI tables".
> 
> Not very helpful indeed.  The description in "before
> ExitBootServices()" seems more sensible to me: if the MMIO region is
> used by runtime services Xen should ensure it's always mapped in the
> dom0 p2m (which Xen should in principle already do).
> 
>>> Can you paste the dom0 build output when booted with `iommu=verbose
>>> dom0=pvh,verbose`?
> 
> Would it be possible to see the output of a debug=y build when booted
> with `iommu=verbose dom0=pvh,verbose` (with or without pf-fixup,
> either is fine).
> 
> I'm specially interested in the ranggeset contents printed after "d0:
> identity mappings for IOMMU:", but if possible would like to see the
> full boot log (including Linux dom0).

Attached.

Regards,
Jason
--------------bu7ekQa2prmBxjL00YZWcI1J
Content-Type: text/x-log; charset="UTF-8";
	name="xen-efi-mmio-staging-fixup.log"
Content-Disposition: attachment; filename="xen-efi-mmio-staging-fixup.log"
Content-Transfer-Encoding: base64

KFhFTikgWzAwMDAwMDM5ZjhhNWU5ZDhdIFhlbiB2ZXJzaW9uIDQuMjEtdW5zdGFibGUgKHJv
b3RAKSAoZ2NjIChBbHBpbmUgMTIuMi4xX2dpdDIwMjIwOTI0LXIxMCkgMTIuMi4xIDIwMjIw
OTI0KSBkZWJ1Zz15IE1vbiBBcHIgIDcgMjE6MTk6MjAgVVRDIDIwMjUNCihYRU4pIFswMDAw
MDAzOWZkMjljYTY3XSBMYXRlc3QgQ2hhbmdlU2V0Og0KKFhFTikgWzAwMDAwMDM5ZmU4MjRl
YzRdIGJ1aWxkLWlkOiA1Yjc5ZTVhMWU3YzBiM2YzNTZjOGQ0MTM5MjRiZTkwZTY2MTBlYTYy
DQooWEVOKSBbMDAwMDAwM2EwMGNmY2I2OF0gQ29uc29sZSBvdXRwdXQgaXMgc3luY2hyb25v
dXMuDQooWEVOKSBbMDAwMDAwM2EwMjg0MmUxNl0gQ1BVIFZlbmRvcjogQU1ELCBGYW1pbHkg
MjMgKDB4MTcpLCBNb2RlbCA5NiAoMHg2MCksIFN0ZXBwaW5nIDEgKHJhdyAwMDg2MGYwMSkN
CihYRU4pIFswMDAwMDAzYTA1YTA2NmI0XSBCU1AgbWljcm9jb2RlIHJldmlzaW9uOiAweDA4
NjAwMTBjDQooWEVOKSBbMDAwMDAwM2EwNzczNjJhY10gQm9vdGxvYWRlcjogR1JVQiAyLjEz
DQooWEVOKSBbMDAwMDAwM2EwOGUyZGNkZF0gQ29tbWFuZCBsaW5lOiBjb25zb2xlPWNvbTEg
Y29tMT01NzYwMCw4bjEsMHgzRjgsNCBzY2hlZD1udWxsIGxvZ2x2bD1hbGwgZ3Vlc3RfbG9n
bHZsPWFsbCBjb25zb2xlX3RpbWVzdGFtcHM9Ym9vdCBpb21tdT12ZXJib3NlIGRvbTA9cHZo
LHZlcmJvc2UscGYtZml4dXAgZG9tMF9tYXhfdmNwdXM9NCBkb20wX21lbT00RyBhcmdvPTEs
bWFjLXBlcm1pc3NpdmU9MSBzeW5jX2NvbnNvbGUgbm9yZWJvb3Qgd293DQooWEVOKSBbMDAw
MDAwM2ExMDlhMDYyNF0gWGVuIGltYWdlIGxvYWQgYmFzZSBhZGRyZXNzOiAweGM2NjAwMDAw
DQooWEVOKSBbMDAwMDAwM2ExMjkzNjYyYl0gVmlkZW8gaW5mb3JtYXRpb246DQooWEVOKSBb
MDAwMDAwM2ExM2ViZWE4N10gIFZHQSBpcyBncmFwaGljcyBtb2RlIDE5MjB4MTIwMCwgMzIg
YnBwDQooWEVOKSBbMDAwMDAwM2ExNWU1MmY5OF0gRGlzYyBpbmZvcm1hdGlvbjoNCihYRU4p
IFswMDAwMDAzYTE3MzYwNmEzXSAgRm91bmQgMCBNQlIgc2lnbmF0dXJlcw0KKFhFTikgWzAw
MDAwMDNhMThiNGNlMThdICBGb3VuZCAxIEVERCBpbmZvcm1hdGlvbiBzdHJ1Y3R1cmVzDQoo
WEVOKSBbMDAwMDAwM2ExYThmNjM1M10gRUZJIFJBTSBtYXA6DQooWEVOKSBbMDAwMDAwM2Ex
YmI5ZjQ1Nl0gIFswMDAwMDAwMDAwMDAwMDAwLCAwMDAwMDAwMDAwMDlmZmZmXSAodXNhYmxl
KQ0KKFhFTikgWzAwMDAwMDNhMWRlOGQ1NGZdICBbMDAwMDAwMDAwMDBhMDAwMCwgMDAwMDAw
MDAwMDBmZmZmZl0gKHJlc2VydmVkKQ0KKFhFTikgWzAwMDAwMDNhMjAyNmZhZDNdICBbMDAw
MDAwMDAwMDEwMDAwMCwgMDAwMDAwMDAwOWJmZWZmZl0gKHVzYWJsZSkNCihYRU4pIFswMDAw
MDAzYTIyNTVmMjU4XSAgWzAwMDAwMDAwMDliZmYwMDAsIDAwMDAwMDAwMDlmZmZmZmZdIChy
ZXNlcnZlZCkNCihYRU4pIFswMDAwMDAzYTI0OTQxNmI5XSAgWzAwMDAwMDAwMGEwMDAwMDAs
IDAwMDAwMDAwMGExZmZmZmZdICh1c2FibGUpDQooWEVOKSBbMDAwMDAwM2EyNmMyZGVhYV0g
IFswMDAwMDAwMDBhMjAwMDAwLCAwMDAwMDAwMDBhMjBjZmZmXSAoQUNQSSBOVlMpDQooWEVO
KSBbMDAwMDAwM2EyOTAxMjRiMV0gIFswMDAwMDAwMDBhMjBkMDAwLCAwMDAwMDAwMGNhYmM4
ZmZmXSAodXNhYmxlKQ0KKFhFTikgWzAwMDAwMDNhMmIyZmZiY2VdICBbMDAwMDAwMDBjYWJj
OTAwMCwgMDAwMDAwMDBjYzE0Y2ZmZl0gKHJlc2VydmVkKQ0KKFhFTikgWzAwMDAwMDNhMmQ2
ZTM2YmJdICBbMDAwMDAwMDBjYzE0ZDAwMCwgMDAwMDAwMDBjYzE5NWZmZl0gKEFDUEkgZGF0
YSkNCihYRU4pIFswMDAwMDAzYTJmYjNmZWVhXSAgWzAwMDAwMDAwY2MxOTYwMDAsIDAwMDAw
MDAwY2MzODhmZmZdIChBQ1BJIE5WUykNCihYRU4pIFswMDAwMDAzYTMxZjIyMzMwXSAgWzAw
MDAwMDAwY2MzODkwMDAsIDAwMDAwMDAwY2MzODlmZmZdIChyZXNlcnZlZCkNCihYRU4pIFsw
MDAwMDAzYTM0MzA0ZjdmXSAgWzAwMDAwMDAwY2MzOGEwMDAsIDAwMDAwMDAwY2M3MDlmZmZd
IChBQ1BJIE5WUykNCihYRU4pIFswMDAwMDAzYTM2NmU4ZmY5XSAgWzAwMDAwMDAwY2M3MGEw
MDAsIDAwMDAwMDAwY2QxZmVmZmZdIChyZXNlcnZlZCkNCihYRU4pIFswMDAwMDAzYTM4YWNh
YmY5XSAgWzAwMDAwMDAwY2QxZmYwMDAsIDAwMDAwMDAwY2RmZmZmZmZdICh1c2FibGUpDQoo
WEVOKSBbMDAwMDAwM2EzYWRiYTNmMV0gIFswMDAwMDAwMGNlMDAwMDAwLCAwMDAwMDAwMGNm
ZmZmZmZmXSAocmVzZXJ2ZWQpDQooWEVOKSBbMDAwMDAwM2EzZDE5YzkwMl0gIFswMDAwMDAw
MGYwMDAwMDAwLCAwMDAwMDAwMGY3ZmZmZmZmXSAocmVzZXJ2ZWQpDQooWEVOKSBbMDAwMDAw
M2EzZjU3ZjJmMF0gIFswMDAwMDAwMGZkMDAwMDAwLCAwMDAwMDAwMGZmZmZmZmZmXSAocmVz
ZXJ2ZWQpDQooWEVOKSBbMDAwMDAwM2E0MTk2MTNiMl0gIFswMDAwMDAwMTAwMDAwMDAwLCAw
MDAwMDAwODBmMzNmZmZmXSAodXNhYmxlKQ0KKFhFTikgWzAwMDAwMDNhNDNjNGVkZGZdICBb
MDAwMDAwMDgwZjM0MDAwMCwgMDAwMDAwMDg1MDFmZmZmZl0gKHJlc2VydmVkKQ0KKFhFTikg
WzAwMDAwMDNhNmVlNmRjMTddIEFDUEk6IFJTRFAgQ0M2RjMwMTQsIDAwMjQgKHIyIEFMQVNL
QSkNCihYRU4pIFswMDAwMDAzYTcwZDBiNmE5XSBBQ1BJOiBYU0RUIENDNkYyNzI4LCAwMERD
IChyMSBBTEFTS0EgICBBIE0gSSAgIDEwNzIwMDkgQU1JICAgMTAwMDAxMykNCihYRU4pIFsw
MDAwMDAzYTczYWZiNjk3XSBBQ1BJOiBGQUNQIENDMThDMDAwLCAwMTE0IChyNiBBTEFTS0Eg
ICBBIE0gSSAgIDEwNzIwMDkgQU1JICAgICAxMDAxMykNCihYRU4pIFswMDAwMDAzYTc2OGVi
MzU5XSBBQ1BJOiBEU0RUIENDMTgzMDAwLCA4NzZEIChyMiBBTEFTS0EgICBBIE0gSSAgIDEw
NzIwMDkgSU5UTCAyMDEyMDkxMykNCihYRU4pIFswMDAwMDAzYTc5NmQ5NDAzXSBBQ1BJOiBG
QUNTIENDNkMwMDAwLCAwMDQwDQooWEVOKSBbMDAwMDAwM2E3YWZiYWIzOV0gQUNQSTogU1NE
VCBDQzE4RTAwMCwgNzIzQyAocjIgICAgQU1EIEFtZFRhYmxlICAgICAgICAyIE1TRlQgIDQw
MDAwMDApDQooWEVOKSBbMDAwMDAwM2E3ZGRhOWEyOV0gQUNQSTogSVZSUyBDQzE4RDAwMCwg
MDFBNCAocjIgIEFNRCAgIEFtZFRhYmxlICAgICAgICAxIEFNRCAgICAgICAgIDApDQooWEVO
KSBbMDAwMDAwM2E4MGI5ODg0ZV0gQUNQSTogRklEVCBDQzE4MjAwMCwgMDA5QyAocjEgQUxB
U0tBICAgIEEgTSBJICAxMDcyMDA5IEFNSSAgICAgMTAwMTMpDQooWEVOKSBbMDAwMDAwM2E4
Mzk4Nzk5Zl0gQUNQSTogTUNGRyBDQzE4MTAwMCwgMDAzQyAocjEgQUxBU0tBICAgIEEgTSBJ
ICAxMDcyMDA5IE1TRlQgICAgMTAwMTMpDQooWEVOKSBbMDAwMDAwM2E4Njc3NzY2MV0gQUNQ
STogSFBFVCBDQzE4MDAwMCwgMDAzOCAocjEgQUxBU0tBICAgIEEgTSBJICAxMDcyMDA5IEFN
SSAgICAgICAgIDUpDQooWEVOKSBbMDAwMDAwM2E4OTU2NjdiMl0gQUNQSTogU1NEVCBDQzE3
RjAwMCwgMDIyOCAocjEgICAgQU1EICAgICBTVEQzICAgICAgICAxIElOVEwgMjAxMjA5MTMp
DQooWEVOKSBbMDAwMDAwM2E4YzM1NmM3Zl0gQUNQSTogVkZDVCBDQzE3MTAwMCwgRDY4NCAo
cjEgQUxBU0tBICAgQSBNIEkgICAgICAgICAxICBBTUQgMzE1MDRGNDcpDQooWEVOKSBbMDAw
MDAwM2E4ZjE0NWJjNl0gQUNQSTogVFBNMiBDQzE2RjAwMCwgMDA0QyAocjQgQUxBU0tBICAg
QSBNIEkgICAgICAgICAxIEFNSSAgICAgICAgIDApDQooWEVOKSBbMDAwMDAwM2E5MWYzNDll
Yl0gQUNQSTogU1NEVCBDQzE2QjAwMCwgMzlGNCAocjEgICAgQU1EIEFtZFRhYmxlICAgICAg
ICAxIEFNRCAgICAgICAgIDEpDQooWEVOKSBbMDAwMDAwM2E5NGQyMzdiOV0gQUNQSTogQ1JB
VCBDQzE2QTAwMCwgMEYyOCAocjEgICAgQU1EIEFtZFRhYmxlICAgICAgICAxIEFNRCAgICAg
ICAgIDEpDQooWEVOKSBbMDAwMDAwM2E5N2IxMjVkZV0gQUNQSTogQ0RJVCBDQzE2OTAwMCwg
MDAyOSAocjEgICAgQU1EIEFtZFRhYmxlICAgICAgICAxIEFNRCAgICAgICAgIDEpDQooWEVO
KSBbMDAwMDAwM2E5YTkwMmE4ZV0gQUNQSTogU1NEVCBDQzE2ODAwMCwgMDEzOSAocjEgICAg
QU1EIEFtZFRhYmxlICAgICAgICAxIElOVEwgMjAxMjA5MTMpDQooWEVOKSBbMDAwMDAwM2E5
ZDZmMThiM10gQUNQSTogU1NEVCBDQzE2NzAwMCwgMDIyNyAocjEgICAgQU1EIEFtZFRhYmxl
ICAgICAgICAxIElOVEwgMjAxMjA5MTMpDQooWEVOKSBbMDAwMDAwM2FhMDRlMGEwNF0gQUNQ
STogU1NEVCBDQzE2NjAwMCwgMEQzNyAocjEgICAgQU1EIEFtZFRhYmxlICAgICAgICAxIElO
VEwgMjAxMjA5MTMpDQooWEVOKSBbMDAwMDAwM2FhMzJkMDZlM10gQUNQSTogU1NEVCBDQzE2
NDAwMCwgMTBBNSAocjEgICAgQU1EIEFtZFRhYmxlICAgICAgICAxIElOVEwgMjAxMjA5MTMp
DQooWEVOKSBbMDAwMDAwM2FhNjBiZjNjOV0gQUNQSTogU1NEVCBDQzE2MDAwMCwgMzBDOCAo
cjEgICAgQU1EIEFtZFRhYmxlICAgICAgICAxIElOVEwgMjAxMjA5MTMpDQooWEVOKSBbMDAw
MDAwM2FhOGVhZDUzZV0gQUNQSTogV1NNVCBDQzE1RjAwMCwgMDAyOCAocjEgQUxBU0tBICAg
QSBNIEkgICAxMDcyMDA5IEFNSSAgICAgMTAwMTMpDQooWEVOKSBbMDAwMDAwM2FhYmM5YmVh
MV0gQUNQSTogQVBJQyBDQzE1RTAwMCwgMDBERSAocjMgQUxBU0tBICAgQSBNIEkgICAxMDcy
MDA5IEFNSSAgICAgMTAwMTMpDQooWEVOKSBbMDAwMDAwM2FhZWE4ZDBlOV0gQUNQSTogU1NE
VCBDQzE1RDAwMCwgMDA3RCAocjEgICAgQU1EIEFtZFRhYmxlICAgICAgICAxIElOVEwgMjAx
MjA5MTMpDQooWEVOKSBbMDAwMDAwM2FiMTg3YjRiZl0gQUNQSTogU1NEVCBDQzE1QzAwMCwg
MDUxNyAocjEgICAgQU1EIEFtZFRhYmxlICAgICAgICAxIElOVEwgMjAxMjA5MTMpDQooWEVO
KSBbMDAwMDAwM2FiNDY2OWY0NF0gQUNQSTogRlBEVCBDQzE1QjAwMCwgMDA0NCAocjEgQUxB
U0tBICAgQSBNIEkgICAxMDcyMDA5IEFNSSAgIDEwMDAwMTMpDQooWEVOKSBbMDAwMDAwM2Fi
NzQ1YThkM10gQUNQSTogQkdSVCBDQzE3MDAwMCwgMDAzOCAocjEgQUxBU0tBICAgQSBNIEkg
ICAxMDcyMDA5IEFNSSAgICAgMTAwMTMpDQooWEVOKSBbMDAwMDAwM2FiYTI0OTVmM10gU3lz
dGVtIFJBTTogMzIxNjhNQiAoMzI5NDA2NTZrQikNCihYRU4pIFswMDAwMDAzYWMwM2RhMDg1
XSBObyBOVU1BIGNvbmZpZ3VyYXRpb24gZm91bmQNCihYRU4pIFswMDAwMDAzYWMxZGFlYzEz
XSBGYWtpbmcgYSBub2RlIGF0IDAwMDAwMDAwMDAwMDAwMDAtMDAwMDAwMDgwZjM0MDAwMA0K
KFhFTikgWzAwMDAwMDNhY2I4YjA3ZjNdIERvbWFpbiBoZWFwIGluaXRpYWxpc2VkDQooWEVO
KSBbMDAwMDAwM2FjZTQ1NTUzZF0gU01CSU9TIDMuMiBwcmVzZW50Lg0KKFhFTikgWzAwMDAw
MDNhY2ZhNTYyYzhdIFVzaW5nIEFQSUMgZHJpdmVyIGRlZmF1bHQNCihYRU4pIFswMDAwMDAz
YWQxMzM4MmYxXSBBQ1BJOiBQTS1UaW1lciBJTyBQb3J0OiAweDgwOCAoMzIgYml0cykNCihY
RU4pIFswMDAwMDAzYWQzMmNjMzc5XSBBQ1BJOiB2NSBTTEVFUCBJTkZPOiBjb250cm9sWzA6
MF0sIHN0YXR1c1swOjBdDQooWEVOKSBbMDAwMDAwM2FkNTViYTIxMV0gQUNQSTogU0xFRVAg
SU5GTzogcG0xeF9jbnRbMTo4MDQsMTowXSwgcG0xeF9ldnRbMTo4MDAsMTowXQ0KKFhFTikg
WzAwMDAwMDNhZDdlNjViY2ZdIEFDUEk6IDMyLzY0WCBGQUNTIGFkZHJlc3MgbWlzbWF0Y2gg
aW4gRkFEVCAtIGNjNmMwMDAwLzAwMDAwMDAwMDAwMDAwMDAsIHVzaW5nIDMyDQooWEVOKSBb
MDAwMDAwM2FkYjE5ODczMV0gQUNQSTogICAgICAgICAgICAgd2FrZXVwX3ZlY1tjYzZjMDAw
Y10sIHZlY19zaXplWzIwXQ0KKFhFTikgWzAwMDAwMDNhZGQ3NjU4M2JdIEFDUEk6IExvY2Fs
IEFQSUMgYWRkcmVzcyAweGZlZTAwMDAwDQooWEVOKSBbMDAwMDAwM2FkZjUwZjQyNl0gT3Zl
cnJpZGluZyBBUElDIGRyaXZlciB3aXRoIGJpZ3NtcA0KKFhFTikgWzAwMDAwMDNhZTEyM2Y1
YzhdIEFDUEk6IElPQVBJQyAoaWRbMHgxMV0gYWRkcmVzc1sweGZlYzAwMDAwXSBnc2lfYmFz
ZVswXSkNCihYRU4pIFswMDAwMDAzYWUzOTdjMzU0XSBJT0FQSUNbMF06IGFwaWNfaWQgMTcs
IHZlcnNpb24gMzMsIGFkZHJlc3MgMHhmZWMwMDAwMCwgR1NJIDAtMjMNCihYRU4pIFswMDAw
MDAzYWU2NDhjYmI3XSBBQ1BJOiBJT0FQSUMgKGlkWzB4MTJdIGFkZHJlc3NbMHhmZWMwMTAw
MF0gZ3NpX2Jhc2VbMjRdKQ0KKFhFTikgWzAwMDAwMDNhZThjNDFhYmRdIElPQVBJQ1sxXTog
YXBpY19pZCAxOCwgdmVyc2lvbiAzMywgYWRkcmVzcyAweGZlYzAxMDAwLCBHU0kgMjQtNTUN
CihYRU4pIFswMDAwMDAzYWViN2NlMGMxXSBBQ1BJOiBJTlRfU1JDX09WUiAoYnVzIDAgYnVz
X2lycSAwIGdsb2JhbF9pcnEgMiBkZmwgZGZsKQ0KKFhFTikgWzAwMDAwMDNhZWRmODQyY2Zd
IEFDUEk6IElOVF9TUkNfT1ZSIChidXMgMCBidXNfaXJxIDkgZ2xvYmFsX2lycSA5IGxvdyBs
ZXZlbCkNCihYRU4pIFswMDAwMDAzYWYwODMwYjllXSBBQ1BJOiBJUlEwIHVzZWQgYnkgb3Zl
cnJpZGUuDQooWEVOKSBbMDAwMDAwM2FmMjI4MTU1Zl0gQUNQSTogSVJRMiB1c2VkIGJ5IG92
ZXJyaWRlLg0KKFhFTikgWzAwMDAwMDNhZjNjZDI3MmFdIEFDUEk6IElSUTkgdXNlZCBieSBv
dmVycmlkZS4NCihYRU4pIFswMDAwMDAzYWY1NzIzNGE2XSBBQ1BJOiBIUEVUIGlkOiAweDEw
MjI4MjAxIGJhc2U6IDB4ZmVkMDAwMDANCihYRU4pIFswMDAwMDAzYWY3ODI2NWNjXSBQQ0k6
IE1DRkcgY29uZmlndXJhdGlvbiAwOiBiYXNlIGYwMDAwMDAwIHNlZ21lbnQgMDAwMCBidXNl
cyAwMCAtIDdmDQooWEVOKSBbMDAwMDAwM2FmYTUyMWUzZF0gUENJOiBNQ0ZHIGFyZWEgYXQg
ZjAwMDAwMDAgcmVzZXJ2ZWQgaW4gRTgyMA0KKFhFTikgWzAwMDAwMDNhZmM2OWYxNDJdIFBD
STogVXNpbmcgTUNGRyBmb3Igc2VnbWVudCAwMDAwIGJ1cyAwMC03Zg0KKFhFTikgWzAwMDAw
MDNhZmU3YTNkYjNdIEFDUEk6IEJHUlQ6IGludmFsaWRhdGluZyB2MSBpbWFnZSBhdCAweGM3
MTUzMDE4DQooWEVOKSBbMDAwMDAwM2IwMGIwYTdkYV0gVXNpbmcgQUNQSSAoTUFEVCkgZm9y
IFNNUCBjb25maWd1cmF0aW9uIGluZm9ybWF0aW9uDQooWEVOKSBbMDAwMDAwM2IwMzA1ZjA4
MV0gU01QOiBBbGxvd2luZyAxNiBDUFVzICgwIGhvdHBsdWcgQ1BVcykNCihYRU4pIFswMDAw
MDAzYjA0Zjc4YWJlXSBJUlEgbGltaXRzOiA1NiBHU0ksIDMyNzIgTVNJL01TSS1YDQooWEVO
KSBbMDAwMDAwM2IwNmNhOGJlY10gQ1BVMDogMTQwMCAuLi4gMjkwMCBNSHoNCihYRU4pIFsw
MDAwMDAzYjA4NDk1MGE4XSB4c3RhdGU6IHNpemU6IDB4MzgwIGFuZCBzdGF0ZXM6IDB4MjA3
DQooWEVOKSBbMDAwMDAwM2IwYTMzNDliM10gQ1BVMDogQU1EIEZhbTE3aCBtYWNoaW5lIGNo
ZWNrIHJlcG9ydGluZyBlbmFibGVkDQooWEVOKSBbMDAwMDAwM2IwYzcxNzZlYl0gU3BlY3Vs
YXRpdmUgbWl0aWdhdGlvbiBmYWNpbGl0aWVzOg0KKFhFTikgWzAwMDAwMDNiMGU0NDcyYTld
ICAgSGFyZHdhcmUgaGludHM6IElCUlNfRkFTVCBJQlJTX1NBTUVfTU9ERQ0KKFhFTikgWzAw
MDAwMDNiMTA1NGIyNGVdICAgSGFyZHdhcmUgZmVhdHVyZXM6IElCUEIgSUJSUyBTVElCUCBT
U0JEDQooWEVOKSBbMDAwMDAwM2IxMjVkM2YzMl0gICBDb21waWxlZC1pbiBzdXBwb3J0OiBJ
TkRJUkVDVF9USFVOSyBTSEFET1dfUEFHSU5HIEhBUkRFTl9BUlJBWSBIQVJERU5fQlJBTkNI
IEhBUkRFTl9HVUVTVF9BQ0NFU1MgSEFSREVOX0xPQ0sNCihYRU4pIFswMDAwMDAzYjE2NzYw
N2ZlXSAgIFhlbiBzZXR0aW5nczogQlRJLVRodW5rOiBSRVRQT0xJTkUsIFNQRUNfQ1RSTDog
SUJSUy0gU1RJQlArIFNTQkQtLCBPdGhlcjogQlJBTkNIX0hBUkRFTg0KKFhFTikgWzAwMDAw
MDNiMTllZTMxNDhdICAgU3VwcG9ydCBmb3IgSFZNIFZNczogTVNSX1NQRUNfQ1RSTCBNU1Jf
VklSVF9TUEVDX0NUUkwgUlNCIElCUEItZW50cnkNCihYRU4pIFswMDAwMDAzYjFjZDRiNzU1
XSAgIFN1cHBvcnQgZm9yIFBWIFZNczogSUJQQi1lbnRyeQ0KKFhFTikgWzAwMDAwMDNiMWU5
ODY4NGRdICAgWFBUSSAoNjQtYml0IFBWIG9ubHkpOiBEb20wIGRpc2FibGVkLCBEb21VIGRp
c2FibGVkICh3aXRob3V0IFBDSUQpDQooWEVOKSBbMDAwMDAwM2IyMTZmYTc4Yl0gICBQViBM
MVRGIHNoYWRvd2luZzogRG9tMCBkaXNhYmxlZCwgRG9tVSBkaXNhYmxlZA0KKFhFTikgWzAw
MDAwMDNiMjNiNThjZDddIFVzaW5nIHNjaGVkdWxlcjogbnVsbCBTY2hlZHVsZXIgKG51bGwp
DQooWEVOKSBbMDAwMDAwM2IyNWE3Mjc4OF0gSW5pdGlhbGl6aW5nIG51bGwgc2NoZWR1bGVy
DQooWEVOKSBbMDAwMDAwM2IyNzQ0YTYyZF0gV0FSTklORzogVGhpcyBpcyBleHBlcmltZW50
YWwgc29mdHdhcmUgaW4gZGV2ZWxvcG1lbnQuDQooWEVOKSBbMDAwMDAwM2IyOWIwYTZiMF0g
VXNlIGF0IHlvdXIgb3duIHJpc2suDQooWEVOKSBbMDAwMDAwM2IzM2I1MDBkMl0gUGxhdGZv
cm0gdGltZXIgaXMgMTQuMzE4TUh6IEhQRVQNCihYRU4pIFsgICAgMS44NDA0NTFdIERldGVj
dGVkIDI4OTQuNTY3IE1IeiBwcm9jZXNzb3IuDQooWEVOKSBbICAgIDEuODUxNDQ4XSBGcmVl
ZCAxMDA4a0IgdW51c2VkIEJTUyBtZW1vcnkNCihYRU4pIFsgICAgMS44NjA2MzRdIEVGSSBt
ZW1vcnkgbWFwOg0KKFhFTikgWyAgICAxLjg2NzIyMV0gIDAwMDAwMDAwMDAwMDAtMDAwMDAw
MDAwM2ZmZiB0eXBlPTIgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDEuODgx
MDg4XSAgMDAwMDAwMDAwNDAwMC0wMDAwMDAwMDhlZmZmIHR5cGU9NyBhdHRyPTAwMDAwMDAw
MDAwMDAwMGYNCihYRU4pIFsgICAgMS44OTQ5NTRdICAwMDAwMDAwMDhmMDAwLTAwMDAwMDAw
OWVmZmYgdHlwZT0yIGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICAxLjkwODgy
MF0gIDAwMDAwMDAwOWYwMDAtMDAwMDAwMDA5ZmZmZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAw
MDAwMDBmDQooWEVOKSBbICAgIDEuOTIyNjg2XSAgMDAwMDAwMDEwMDAwMC0wMDAwMDAwZTMx
ZmZmIHR5cGU9MiBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgMS45MzY1NTVd
ICAwMDAwMDAwZTMyMDAwLTAwMDAwMDBmZmZmZmYgdHlwZT03IGF0dHI9MDAwMDAwMDAwMDAw
MDAwZg0KKFhFTikgWyAgICAxLjk1MDQyMV0gIDAwMDAwMDEwMDAwMDAtMDAwMDAwMTAxZmZm
ZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDEuOTY0Mjg3XSAg
MDAwMDAwMTAyMDAwMC0wMDAwMDA5YmZlZmZmIHR5cGU9NyBhdHRyPTAwMDAwMDAwMDAwMDAw
MGYNCihYRU4pIFsgICAgMS45NzgxNTRdICAwMDAwMDA5YmZmMDAwLTAwMDAwMDlmZmZmZmYg
dHlwZT0wIGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICAxLjk5MjAyMF0gIDAw
MDAwMGEwMDAwMDAtMDAwMDAwYTFmZmZmZiB0eXBlPTcgYXR0cj0wMDAwMDAwMDAwMDAwMDBm
DQooWEVOKSBbICAgIDIuMDA1ODg2XSAgMDAwMDAwYTIwMDAwMC0wMDAwMDBhMjBjZmZmIHR5
cGU9MTAgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDIuMDE5OTI4XSAgMDAw
MDAwYTIwZDAwMC0wMDAwMDM2MThlZmZmIHR5cGU9MiBhdHRyPTAwMDAwMDAwMDAwMDAwMGYN
CihYRU4pIFsgICAgMi4wMzM3OTRdICAwMDAwMDM2MThmMDAwLTAwMDAwYzRlZWNmZmYgdHlw
ZT03IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICAyLjA0NzY2MF0gIDAwMDAw
YzRlZWQwMDAtMDAwMDBjNzAwMWZmZiB0eXBlPTEgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQoo
WEVOKSBbICAgIDIuMDYxNTI5XSAgMDAwMDBjNzAwMjAwMC0wMDAwMGM3MTE3ZmZmIHR5cGU9
NyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgMi4wNzUzOTRdICAwMDAwMGM3
MTE4MDAwLTAwMDAwYzcxNTJmZmYgdHlwZT0zIGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhF
TikgWyAgICAyLjA4OTI2MV0gIDAwMDAwYzcxNTMwMDAtMDAwMDBjNzE5MWZmZiB0eXBlPTQg
YXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDIuMTAzMTI3XSAgMDAwMDBjNzE5
MjAwMC0wMDAwMGM3MTkzZmZmIHR5cGU9NyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4p
IFsgICAgMi4xMTY5OTRdICAwMDAwMGM3MTk0MDAwLTAwMDAwYzcxOWJmZmYgdHlwZT00IGF0
dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICAyLjEzMDg2MF0gIDAwMDAwYzcxOWMw
MDAtMDAwMDBjNzFhN2ZmZiB0eXBlPTMgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBb
ICAgIDIuMTQ0NzI5XSAgMDAwMDBjNzFhODAwMC0wMDAwMGM3MWQzZmZmIHR5cGU9NCBhdHRy
PTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgMi4xNTg1OTNdICAwMDAwMGM3MWQ0MDAw
LTAwMDAwYzcxZGNmZmYgdHlwZT0zIGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAg
ICAyLjE3MjQ2Ml0gIDAwMDAwYzcxZGQwMDAtMDAwMDBjNzFlMGZmZiB0eXBlPTQgYXR0cj0w
MDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDIuMTg2MzI4XSAgMDAwMDBjNzFlMTAwMC0w
MDAwMGM3MWU1ZmZmIHR5cGU9MyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAg
Mi4yMDAxOTRdICAwMDAwMGM3MWU2MDAwLTAwMDAwYzcyODNmZmYgdHlwZT00IGF0dHI9MDAw
MDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICAyLjIxNDA2MV0gIDAwMDAwYzcyODQwMDAtMDAw
MDBjNzI4NGZmZiB0eXBlPTcgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDIu
MjI3OTI3XSAgMDAwMDBjNzI4NTAwMC0wMDAwMGM3Mjg2ZmZmIHR5cGU9NCBhdHRyPTAwMDAw
MDAwMDAwMDAwMGYNCihYRU4pIFsgICAgMi4yNDE3OTRdICAwMDAwMGM3Mjg3MDAwLTAwMDAw
YzcyODhmZmYgdHlwZT03IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICAyLjI1
NTY2MF0gIDAwMDAwYzcyODkwMDAtMDAwMDBjNzI4YWZmZiB0eXBlPTQgYXR0cj0wMDAwMDAw
MDAwMDAwMDBmDQooWEVOKSBbICAgIDIuMjY5NTI2XSAgMDAwMDBjNzI4YjAwMC0wMDAwMGM3
MjhiZmZmIHR5cGU9NyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgMi4yODMz
OTVdICAwMDAwMGM3MjhjMDAwLTAwMDAwYzcyOGNmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAw
MDAwMDAwZg0KKFhFTikgWyAgICAyLjI5NzI2MV0gIDAwMDAwYzcyOGQwMDAtMDAwMDBjNzI4
ZGZmZiB0eXBlPTcgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDIuMzExMTI2
XSAgMDAwMDBjNzI4ZTAwMC0wMDAwMGM3MjhlZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAw
MDAwMGYNCihYRU4pIFsgICAgMi4zMjQ5OTVdICAwMDAwMGM3MjhmMDAwLTAwMDAwYzcyOGZm
ZmYgdHlwZT03IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICAyLjMzODg2MV0g
IDAwMDAwYzcyOTAwMDAtMDAwMDBjNzI5MGZmZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAwMDAw
MDBmDQooWEVOKSBbICAgIDIuMzUyNzI4XSAgMDAwMDBjNzI5MTAwMC0wMDAwMGM3MjkzZmZm
IHR5cGU9NyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgMi4zNjY1OTNdICAw
MDAwMGM3Mjk0MDAwLTAwMDAwYzcyOTdmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAw
Zg0KKFhFTikgWyAgICAyLjM4MDQ1OV0gIDAwMDAwYzcyOTgwMDAtMDAwMDBjNzJhMmZmZiB0
eXBlPTcgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDIuMzk0MzI3XSAgMDAw
MDBjNzJhMzAwMC0wMDAwMGM3MmE0ZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYN
CihYRU4pIFsgICAgMi40MDgxOTNdICAwMDAwMGM3MmE1MDAwLTAwMDAwYzcyYThmZmYgdHlw
ZT03IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICAyLjQyMjA1OV0gIDAwMDAw
YzcyYTkwMDAtMDAwMDBjNzJhYWZmZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQoo
WEVOKSBbICAgIDIuNDM1OTI4XSAgMDAwMDBjNzJhYjAwMC0wMDAwMGM3MmFjZmZmIHR5cGU9
NyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgMi40NDk3OTRdICAwMDAwMGM3
MmFkMDAwLTAwMDAwYzcyYWVmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhF
TikgWyAgICAyLjQ2MzY2MF0gIDAwMDAwYzcyYWYwMDAtMDAwMDBjNzJiMGZmZiB0eXBlPTcg
YXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDIuNDc3NTI2XSAgMDAwMDBjNzJi
MTAwMC0wMDAwMGM3MmIxZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4p
IFsgICAgMi40OTEzOTNdICAwMDAwMGM3MmIyMDAwLTAwMDAwYzcyYjJmZmYgdHlwZT03IGF0
dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICAyLjUwNTI1OV0gIDAwMDAwYzcyYjMw
MDAtMDAwMDBjNzJiM2ZmZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBb
ICAgIDIuNTE5MTI4XSAgMDAwMDBjNzJiNDAwMC0wMDAwMGM3MmI0ZmZmIHR5cGU9NyBhdHRy
PTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgMi41MzI5OTRdICAwMDAwMGM3MmI1MDAw
LTAwMDAwYzcyYjVmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAg
ICAyLjU0Njg1OV0gIDAwMDAwYzcyYjYwMDAtMDAwMDBjNzJiN2ZmZiB0eXBlPTcgYXR0cj0w
MDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDIuNTYwNzI1XSAgMDAwMDBjNzJiODAwMC0w
MDAwMGM3MmI4ZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAg
Mi41NzQ1OTRdICAwMDAwMGM3MmI5MDAwLTAwMDAwYzczNzZmZmYgdHlwZT03IGF0dHI9MDAw
MDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICAyLjU4ODQ2MV0gIDAwMDAwYzczNzcwMDAtMDAw
MDBjNzg1YWZmZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDIu
NjAyMzI3XSAgMDAwMDBjNzg1YjAwMC0wMDAwMGM3OWQyZmZmIHR5cGU9MyBhdHRyPTAwMDAw
MDAwMDAwMDAwMGYNCihYRU4pIFsgICAgMi42MTYxOTRdICAwMDAwMGM3OWQzMDAwLTAwMDAw
YzdhMTRmZmYgdHlwZT03IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICAyLjYz
MDA2MV0gIDAwMDAwYzdhMTUwMDAtMDAwMDBjN2EzZGZmZiB0eXBlPTQgYXR0cj0wMDAwMDAw
MDAwMDAwMDBmDQooWEVOKSBbICAgIDIuNjQzOTI3XSAgMDAwMDBjN2EzZTAwMC0wMDAwMGM3
YTQyZmZmIHR5cGU9NyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgMi42NTc3
OTRdICAwMDAwMGM3YTQzMDAwLTAwMDAwYzdhNDNmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAw
MDAwMDAwZg0KKFhFTikgWyAgICAyLjY3MTY1OF0gIDAwMDAwYzdhNDQwMDAtMDAwMDBjN2E0
NGZmZiB0eXBlPTcgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDIuNjg1NTI3
XSAgMDAwMDBjN2E0NTAwMC0wMDAwMGM3YTQ1ZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAw
MDAwMGYNCihYRU4pIFsgICAgMi42OTkzOTJdICAwMDAwMGM3YTQ2MDAwLTAwMDAwYzdhNDZm
ZmYgdHlwZT03IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICAyLjcxMzI2MV0g
IDAwMDAwYzdhNDcwMDAtMDAwMDBjN2E0N2ZmZiB0eXBlPTIgYXR0cj0wMDAwMDAwMDAwMDAw
MDBmDQooWEVOKSBbICAgIDIuNzI3MTI4XSAgMDAwMDBjN2E0ODAwMC0wMDAwMGM3YTQ4ZmZm
IHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgMi43NDA5OTFdICAw
MDAwMGM3YTQ5MDAwLTAwMDAwYzdhNDlmZmYgdHlwZT03IGF0dHI9MDAwMDAwMDAwMDAwMDAw
Zg0KKFhFTikgWyAgICAyLjc1NDg2MF0gIDAwMDAwYzdhNGEwMDAtMDAwMDBjN2E0YmZmZiB0
eXBlPTQgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDIuNzY4NzI2XSAgMDAw
MDBjN2E0YzAwMC0wMDAwMGM3YTRjZmZmIHR5cGU9NyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYN
CihYRU4pIFsgICAgMi43ODI1OTJdICAwMDAwMGM3YTRkMDAwLTAwMDAwYzdhNWRmZmYgdHlw
ZT0zIGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICAyLjc5NjQ2MV0gIDAwMDAw
YzdhNWUwMDAtMDAwMDBjN2E5NWZmZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQoo
WEVOKSBbICAgIDIuODEwMzI1XSAgMDAwMDBjN2E5NjAwMC0wMDAwMGM3YTk2ZmZmIHR5cGU9
NyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgMi44MjQxOTNdICAwMDAwMGM3
YTk3MDAwLTAwMDAwYzdhZTdmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhF
TikgWyAgICAyLjgzODA1OF0gIDAwMDAwYzdhZTgwMDAtMDAwMDBjN2IwN2ZmZiB0eXBlPTMg
YXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDIuODUxOTI4XSAgMDAwMDBjN2Iw
ODAwMC0wMDAwMGM3YjA4ZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4p
IFsgICAgMi44NjU3OTNdICAwMDAwMGM3YjA5MDAwLTAwMDAwYzdiMTBmZmYgdHlwZT0zIGF0
dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICAyLjg3OTY1OV0gIDAwMDAwYzdiMTEw
MDAtMDAwMDBjN2IxOGZmZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBb
ICAgIDIuODkzNTI1XSAgMDAwMDBjN2IxOTAwMC0wMDAwMGM3YjMwZmZmIHR5cGU9MyBhdHRy
PTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgMi45MDczOTRdICAwMDAwMGM3YjMxMDAw
LTAwMDAwYzdiMzJmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAg
ICAyLjkyMTI2MF0gIDAwMDAwYzdiMzMwMDAtMDAwMDBjN2I1NWZmZiB0eXBlPTMgYXR0cj0w
MDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDIuOTM1MTI1XSAgMDAwMDBjN2I1NjAwMC0w
MDAwMGM3YjYwZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAg
Mi45NDg5OTNdICAwMDAwMGM3YjYxMDAwLTAwMDAwYzdiOGNmZmYgdHlwZT0zIGF0dHI9MDAw
MDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICAyLjk2Mjg1OV0gIDAwMDAwYzdiOGQwMDAtMDAw
MDBjOTI3MGZmZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDIu
OTc2NzI1XSAgMDAwMDBjOTI3MTAwMC0wMDAwMGM5MmQ3ZmZmIHR5cGU9MyBhdHRyPTAwMDAw
MDAwMDAwMDAwMGYNCihYRU4pIFsgICAgMi45OTA1OTNdICAwMDAwMGM5MmQ4MDAwLTAwMDAw
YzkyZGJmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICAzLjAw
NDQ1OF0gIDAwMDAwYzkyZGMwMDAtMDAwMDBjOTJlNWZmZiB0eXBlPTMgYXR0cj0wMDAwMDAw
MDAwMDAwMDBmDQooWEVOKSBbICAgIDMuMDE4MzI3XSAgMDAwMDBjOTJlNjAwMC0wMDAwMGM5
MzMwZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgMy4wMzIx
OTNdICAwMDAwMGM5MzMxMDAwLTAwMDAwYzkzNGFmZmYgdHlwZT0zIGF0dHI9MDAwMDAwMDAw
MDAwMDAwZg0KKFhFTikgWyAgICAzLjA0NjA1OV0gIDAwMDAwYzkzNGIwMDAtMDAwMDBjOTM0
ZWZmZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDMuMDU5OTI1
XSAgMDAwMDBjOTM0ZjAwMC0wMDAwMGM5MzZjZmZmIHR5cGU9MyBhdHRyPTAwMDAwMDAwMDAw
MDAwMGYNCihYRU4pIFsgICAgMy4wNzM3OTFdICAwMDAwMGM5MzZkMDAwLTAwMDAwYzkzNmRm
ZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICAzLjA4NzY2MF0g
IDAwMDAwYzkzNmUwMDAtMDAwMDBjOTM3NGZmZiB0eXBlPTMgYXR0cj0wMDAwMDAwMDAwMDAw
MDBmDQooWEVOKSBbICAgIDMuMTAxNTI2XSAgMDAwMDBjOTM3NTAwMC0wMDAwMGM5MzdiZmZm
IHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgMy4xMTUzOTJdICAw
MDAwMGM5MzdjMDAwLTAwMDAwYzkzODlmZmYgdHlwZT0zIGF0dHI9MDAwMDAwMDAwMDAwMDAw
Zg0KKFhFTikgWyAgICAzLjEyOTI1N10gIDAwMDAwYzkzOGEwMDAtMDAwMDBjOTM4ZWZmZiB0
eXBlPTQgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDMuMTQzMTI2XSAgMDAw
MDBjOTM4ZjAwMC0wMDAwMGM5MzkwZmZmIHR5cGU9MyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYN
CihYRU4pIFsgICAgMy4xNTY5OTJdICAwMDAwMGM5MzkxMDAwLTAwMDAwYzkzOTJmZmYgdHlw
ZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICAzLjE3MDg1OV0gIDAwMDAw
YzkzOTMwMDAtMDAwMDBjOTM5OWZmZiB0eXBlPTMgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQoo
WEVOKSBbICAgIDMuMTg0NzI1XSAgMDAwMDBjOTM5YTAwMC0wMDAwMGM5MzliZmZmIHR5cGU9
NCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgMy4xOTg1OTNdICAwMDAwMGM5
MzljMDAwLTAwMDAwYzkzOWNmZmYgdHlwZT0zIGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhF
TikgWyAgICAzLjIxMjQ1OV0gIDAwMDAwYzkzOWQwMDAtMDAwMDBjOTNhMGZmZiB0eXBlPTQg
YXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDMuMjI2MzI2XSAgMDAwMDBjOTNh
MTAwMC0wMDAwMGM5M2I3ZmZmIHR5cGU9MyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4p
IFsgICAgMy4yNDAxOTJdICAwMDAwMGM5M2I4MDAwLTAwMDAwYzkzYjlmZmYgdHlwZT00IGF0
dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICAzLjI1NDA1OF0gIDAwMDAwYzkzYmEw
MDAtMDAwMDBjOTNiYmZmZiB0eXBlPTMgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBb
ICAgIDMuMjY3OTI1XSAgMDAwMDBjOTNiYzAwMC0wMDAwMGM5M2JjZmZmIHR5cGU9NCBhdHRy
PTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgMy4yODE3OTNdICAwMDAwMGM5M2JkMDAw
LTAwMDAwYzkzY2JmZmYgdHlwZT0zIGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAg
ICAzLjI5NTY1OV0gIDAwMDAwYzkzY2MwMDAtMDAwMDBjOTNkNGZmZiB0eXBlPTQgYXR0cj0w
MDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDMuMzA5NTI1XSAgMDAwMDBjOTNkNTAwMC0w
MDAwMGM5M2Q2ZmZmIHR5cGU9MyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAg
My4zMjMzOTJdICAwMDAwMGM5M2Q3MDAwLTAwMDAwYzkzZDhmZmYgdHlwZT00IGF0dHI9MDAw
MDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICAzLjMzNzI1OF0gIDAwMDAwYzkzZDkwMDAtMDAw
MDBjOTNkOWZmZiB0eXBlPTMgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDMu
MzUxMTI1XSAgMDAwMDBjOTNkYTAwMC0wMDAwMGM5M2RhZmZmIHR5cGU9NCBhdHRyPTAwMDAw
MDAwMDAwMDAwMGYNCihYRU4pIFsgICAgMy4zNjQ5OTFdICAwMDAwMGM5M2RiMDAwLTAwMDAw
YzkzZGJmZmYgdHlwZT0zIGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICAzLjM3
ODg1OV0gIDAwMDAwYzkzZGMwMDAtMDAwMDBjOTUyOWZmZiB0eXBlPTQgYXR0cj0wMDAwMDAw
MDAwMDAwMDBmDQooWEVOKSBbICAgIDMuMzkyNzI2XSAgMDAwMDBjOTUyYTAwMC0wMDAwMGM5
NTMzZmZmIHR5cGU9MyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgMy40MDY1
OTJdICAwMDAwMGM5NTM0MDAwLTAwMDAwYzk1MzVmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAw
MDAwMDAwZg0KKFhFTikgWyAgICAzLjQyMDQ1OF0gIDAwMDAwYzk1MzYwMDAtMDAwMDBjOTUz
OWZmZiB0eXBlPTMgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDMuNDM0MzIz
XSAgMDAwMDBjOTUzYTAwMC0wMDAwMGM5NTNkZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAw
MDAwMGYNCihYRU4pIFsgICAgMy40NDgxOTJdICAwMDAwMGM5NTNlMDAwLTAwMDAwYzk1NDVm
ZmYgdHlwZT0zIGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICAzLjQ2MjA1N10g
IDAwMDAwYzk1NDYwMDAtMDAwMDBjOTU0N2ZmZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAwMDAw
MDBmDQooWEVOKSBbICAgIDMuNDc1OTI2XSAgMDAwMDBjOTU0ODAwMC0wMDAwMGM5NTRiZmZm
IHR5cGU9MyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgMy40ODk3OTJdICAw
MDAwMGM5NTRjMDAwLTAwMDAwYzk1NGRmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAw
Zg0KKFhFTikgWyAgICAzLjUwMzY1N10gIDAwMDAwYzk1NGUwMDAtMDAwMDBjOTU1NmZmZiB0
eXBlPTMgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDMuNTE3NTI0XSAgMDAw
MDBjOTU1NzAwMC0wMDAwMGM5NTVhZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYN
CihYRU4pIFsgICAgMy41MzEzOTNdICAwMDAwMGM5NTViMDAwLTAwMDAwYzk1NWNmZmYgdHlw
ZT0zIGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICAzLjU0NTI2MF0gIDAwMDAw
Yzk1NWQwMDAtMDAwMDBjOTU1ZmZmZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQoo
WEVOKSBbICAgIDMuNTU5MTI2XSAgMDAwMDBjOTU2MDAwMC0wMDAwMGM5NTZjZmZmIHR5cGU9
MyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgMy41NzI5OTJdICAwMDAwMGM5
NTZkMDAwLTAwMDAwYzk3ZmZmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhF
TikgWyAgICAzLjU4Njg1N10gIDAwMDAwYzk4MDAwMDAtMDAwMDBjOTgxYWZmZiB0eXBlPTMg
YXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDMuNjAwNzIzXSAgMDAwMDBjOTgx
YjAwMC0wMDAwMGM5ODJhZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4p
IFsgICAgMy42MTQ1OTBdICAwMDAwMGM5ODJiMDAwLTAwMDAwYzk4M2RmZmYgdHlwZT0zIGF0
dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICAzLjYyODQ1OV0gIDAwMDAwYzk4M2Uw
MDAtMDAwMDBjOTgzZmZmZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBb
ICAgIDMuNjQyMzI2XSAgMDAwMDBjOTg0MDAwMC0wMDAwMGM5ODQzZmZmIHR5cGU9MyBhdHRy
PTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgMy42NTYxOTBdICAwMDAwMGM5ODQ0MDAw
LTAwMDAwYzk4NDhmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAg
ICAzLjY3MDA1OV0gIDAwMDAwYzk4NDkwMDAtMDAwMDBjOTg1YmZmZiB0eXBlPTMgYXR0cj0w
MDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDMuNjgzOTI0XSAgMDAwMDBjOTg1YzAwMC0w
MDAwMGM5ODYwZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAg
My42OTc3OTNdICAwMDAwMGM5ODYxMDAwLTAwMDAwYzk4NjFmZmYgdHlwZT0zIGF0dHI9MDAw
MDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICAzLjcxMTY1OV0gIDAwMDAwYzk4NjIwMDAtMDAw
MDBjOTg2MmZmZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDMu
NzI1NTI0XSAgMDAwMDBjOTg2MzAwMC0wMDAwMGM5ODYzZmZmIHR5cGU9MyBhdHRyPTAwMDAw
MDAwMDAwMDAwMGYNCihYRU4pIFsgICAgMy43MzkzOTBdICAwMDAwMGM5ODY0MDAwLTAwMDAw
Yzk4NjZmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICAzLjc1
MzI1Nl0gIDAwMDAwYzk4NjcwMDAtMDAwMDBjOTg3NGZmZiB0eXBlPTMgYXR0cj0wMDAwMDAw
MDAwMDAwMDBmDQooWEVOKSBbICAgIDMuNzY3MTI1XSAgMDAwMDBjOTg3NTAwMC0wMDAwMGM5
ODc1ZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgMy43ODA5
OTJdICAwMDAwMGM5ODc2MDAwLTAwMDAwYzk4NzZmZmYgdHlwZT0zIGF0dHI9MDAwMDAwMDAw
MDAwMDAwZg0KKFhFTikgWyAgICAzLjc5NDg1Nl0gIDAwMDAwYzk4NzcwMDAtMDAwMDBjOTg4
MmZmZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDMuODA4NzI2
XSAgMDAwMDBjOTg4MzAwMC0wMDAwMGM5ODhiZmZmIHR5cGU9MyBhdHRyPTAwMDAwMDAwMDAw
MDAwMGYNCihYRU4pIFsgICAgMy44MjI1OTJdICAwMDAwMGM5ODhjMDAwLTAwMDAwYzk4OGVm
ZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICAzLjgzNjQ1N10g
IDAwMDAwYzk4OGYwMDAtMDAwMDBjOTg5NGZmZiB0eXBlPTMgYXR0cj0wMDAwMDAwMDAwMDAw
MDBmDQooWEVOKSBbICAgIDMuODUwMzI1XSAgMDAwMDBjOTg5NTAwMC0wMDAwMGM5OGUxZmZm
IHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgMy44NjQxOTFdICAw
MDAwMGM5OGUyMDAwLTAwMDAwYzk5MGZmZmYgdHlwZT0zIGF0dHI9MDAwMDAwMDAwMDAwMDAw
Zg0KKFhFTikgWyAgICAzLjg3ODA1Nl0gIDAwMDAwYzk5MTAwMDAtMDAwMDBjOTkxMWZmZiB0
eXBlPTQgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDMuODkxOTI1XSAgMDAw
MDBjOTkxMjAwMC0wMDAwMGM5OTEzZmZmIHR5cGU9MyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYN
CihYRU4pIFsgICAgMy45MDU3OTBdICAwMDAwMGM5OTE0MDAwLTAwMDAwYzk5MTVmZmYgdHlw
ZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICAzLjkxOTY1N10gIDAwMDAw
Yzk5MTYwMDAtMDAwMDBjOTkyZGZmZiB0eXBlPTMgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQoo
WEVOKSBbICAgIDMuOTMzNTI1XSAgMDAwMDBjOTkyZTAwMC0wMDAwMGM5OTM5ZmZmIHR5cGU9
NCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgMy45NDczOTBdICAwMDAwMGM5
OTNhMDAwLTAwMDAwYzk5NjBmZmYgdHlwZT0zIGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhF
TikgWyAgICAzLjk2MTI1Nl0gIDAwMDAwYzk5NjEwMDAtMDAwMDBjOTk2NGZmZiB0eXBlPTQg
YXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDMuOTc1MTI2XSAgMDAwMDBjOTk2
NTAwMC0wMDAwMGM5OTZjZmZmIHR5cGU9MyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4p
IFsgICAgMy45ODg5OTJdICAwMDAwMGM5OTZkMDAwLTAwMDAwYzk5NzRmZmYgdHlwZT00IGF0
dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICA0LjAwMjg1OF0gIDAwMDAwYzk5NzUw
MDAtMDAwMDBjOTk3ZWZmZiB0eXBlPTMgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBb
ICAgIDQuMDE2NzI1XSAgMDAwMDBjOTk3ZjAwMC0wMDAwMGM5OTg4ZmZmIHR5cGU9NCBhdHRy
PTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgNC4wMzA1OTFdICAwMDAwMGM5OTg5MDAw
LTAwMDAwYzk5YWRmZmYgdHlwZT0zIGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAg
ICA0LjA0NDQ1N10gIDAwMDAwYzk5YWUwMDAtMDAwMDBjOTliN2ZmZiB0eXBlPTQgYXR0cj0w
MDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDQuMDU4MzI0XSAgMDAwMDBjOTliODAwMC0w
MDAwMGM5OWI4ZmZmIHR5cGU9MyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAg
NC4wNzIxOTFdICAwMDAwMGM5OWI5MDAwLTAwMDAwYzk5YjlmZmYgdHlwZT00IGF0dHI9MDAw
MDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICA0LjA4NjA1Nl0gIDAwMDAwYzk5YmEwMDAtMDAw
MDBjOTljMWZmZiB0eXBlPTMgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDQu
MDk5OTI1XSAgMDAwMDBjOTljMjAwMC0wMDAwMGM5OWM0ZmZmIHR5cGU9NCBhdHRyPTAwMDAw
MDAwMDAwMDAwMGYNCihYRU4pIFsgICAgNC4xMTM3OTBdICAwMDAwMGM5OWM1MDAwLTAwMDAw
Yzk5YzZmZmYgdHlwZT0zIGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICA0LjEy
NzY1Nl0gIDAwMDAwYzk5YzcwMDAtMDAwMDBjOTljN2ZmZiB0eXBlPTQgYXR0cj0wMDAwMDAw
MDAwMDAwMDBmDQooWEVOKSBbICAgIDQuMTQxNTIyXSAgMDAwMDBjOTljODAwMC0wMDAwMGM5
OWQ1ZmZmIHR5cGU9MyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgNC4xNTUz
OTFdICAwMDAwMGM5OWQ2MDAwLTAwMDAwYzk5ZDlmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAw
MDAwMDAwZg0KKFhFTikgWyAgICA0LjE2OTI1N10gIDAwMDAwYzk5ZGEwMDAtMDAwMDBjOTlk
ZmZmZiB0eXBlPTMgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDQuMTgzMTIy
XSAgMDAwMDBjOTllMDAwMC0wMDAwMGM5OWU1ZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAw
MDAwMGYNCihYRU4pIFsgICAgNC4xOTY5OTBdICAwMDAwMGM5OWU2MDAwLTAwMDAwYzk5ZTZm
ZmYgdHlwZT0zIGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICA0LjIxMDg1Nl0g
IDAwMDAwYzk5ZTcwMDAtMDAwMDBjOTllOGZmZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAwMDAw
MDBmDQooWEVOKSBbICAgIDQuMjI0NzIzXSAgMDAwMDBjOTllOTAwMC0wMDAwMGM5OWZkZmZm
IHR5cGU9MyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgNC4yMzg1OTFdICAw
MDAwMGM5OWZlMDAwLTAwMDAwYzk5ZmVmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAw
Zg0KKFhFTikgWyAgICA0LjI1MjQ1N10gIDAwMDAwYzk5ZmYwMDAtMDAwMDBjOWEwMWZmZiB0
eXBlPTMgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDQuMjY2MzIzXSAgMDAw
MDBjOWEwMjAwMC0wMDAwMGM5YTAyZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYN
CihYRU4pIFsgICAgNC4yODAxOTBdICAwMDAwMGM5YTAzMDAwLTAwMDAwYzlhMTJmZmYgdHlw
ZT0zIGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICA0LjI5NDA1OF0gIDAwMDAw
YzlhMTMwMDAtMDAwMDBjOWExNWZmZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQoo
WEVOKSBbICAgIDQuMzA3OTI0XSAgMDAwMDBjOWExNjAwMC0wMDAwMGM5YTE3ZmZmIHR5cGU9
MyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgNC4zMjE3ODldICAwMDAwMGM5
YTE4MDAwLTAwMDAwYzlhMTlmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhF
TikgWyAgICA0LjMzNTY1NV0gIDAwMDAwYzlhMWEwMDAtMDAwMDBjOWEyZmZmZiB0eXBlPTMg
YXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDQuMzQ5NTIyXSAgMDAwMDBjOWEz
MDAwMC0wMDAwMGM5YTMwZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4p
IFsgICAgNC4zNjMzODldICAwMDAwMGM5YTMxMDAwLTAwMDAwYzlhMzFmZmYgdHlwZT0zIGF0
dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICA0LjM3NzI1NV0gIDAwMDAwYzlhMzIw
MDAtMDAwMDBjOWEzMmZmZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBb
ICAgIDQuMzkxMTIyXSAgMDAwMDBjOWEzMzAwMC0wMDAwMGM5YTMzZmZmIHR5cGU9MyBhdHRy
PTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgNC40MDQ5OTBdICAwMDAwMGM5YTM0MDAw
LTAwMDAwYzlhMzRmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAg
ICA0LjQxODg1Nl0gIDAwMDAwYzlhMzUwMDAtMDAwMDBjOWEzNWZmZiB0eXBlPTMgYXR0cj0w
MDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDQuNDMyNzI0XSAgMDAwMDBjOWEzNjAwMC0w
MDAwMGM5YTM2ZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAg
NC40NDY1OTBdICAwMDAwMGM5YTM3MDAwLTAwMDAwYzlhMzdmZmYgdHlwZT0zIGF0dHI9MDAw
MDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICA0LjQ2MDQ1NV0gIDAwMDAwYzlhMzgwMDAtMDAw
MDBjOWEzOGZmZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDQu
NDc0MzIxXSAgMDAwMDBjOWEzOTAwMC0wMDAwMGM5YTRiZmZmIHR5cGU9MyBhdHRyPTAwMDAw
MDAwMDAwMDAwMGYNCihYRU4pIFsgICAgNC40ODgxOTFdICAwMDAwMGM5YTRjMDAwLTAwMDAw
YzlhNGRmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICA0LjUw
MjA1N10gIDAwMDAwYzlhNGUwMDAtMDAwMDBjOWE1MmZmZiB0eXBlPTMgYXR0cj0wMDAwMDAw
MDAwMDAwMDBmDQooWEVOKSBbICAgIDQuNTE1OTIzXSAgMDAwMDBjOWE1MzAwMC0wMDAwMGM5
YTU3ZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgNC41Mjk3
ODldICAwMDAwMGM5YTU4MDAwLTAwMDAwYzlhNWNmZmYgdHlwZT0zIGF0dHI9MDAwMDAwMDAw
MDAwMDAwZg0KKFhFTikgWyAgICA0LjU0MzY1OF0gIDAwMDAwYzlhNWQwMDAtMDAwMDBjOWE1
ZmZmZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDQuNTU3NTIx
XSAgMDAwMDBjOWE2MDAwMC0wMDAwMGM5YTY2ZmZmIHR5cGU9MyBhdHRyPTAwMDAwMDAwMDAw
MDAwMGYNCihYRU4pIFsgICAgNC41NzEzOTFdICAwMDAwMGM5YTY3MDAwLTAwMDAwYzlhNjlm
ZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICA0LjU4NTI1N10g
IDAwMDAwYzlhNmEwMDAtMDAwMDBjOWE3M2ZmZiB0eXBlPTMgYXR0cj0wMDAwMDAwMDAwMDAw
MDBmDQooWEVOKSBbICAgIDQuNTk5MTIyXSAgMDAwMDBjOWE3NDAwMC0wMDAwMGM5YThhZmZm
IHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgNC42MTI5ODhdICAw
MDAwMGM5YThiMDAwLTAwMDAwYzlhOWNmZmYgdHlwZT0zIGF0dHI9MDAwMDAwMDAwMDAwMDAw
Zg0KKFhFTikgWyAgICA0LjYyNjg1OF0gIDAwMDAwYzlhOWQwMDAtMDAwMDBjOWE5ZGZmZiB0
eXBlPTQgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDQuNjQwNzIzXSAgMDAw
MDBjOWE5ZTAwMC0wMDAwMGM5YTlmZmZmIHR5cGU9MyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYN
CihYRU4pIFsgICAgNC42NTQ1ODldICAwMDAwMGM5YWEwMDAwLTAwMDAwYzlhYTdmZmYgdHlw
ZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICA0LjY2ODQ1N10gIDAwMDAw
YzlhYTgwMDAtMDAwMDBjOWFhOGZmZiB0eXBlPTMgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQoo
WEVOKSBbICAgIDQuNjgyMzIzXSAgMDAwMDBjOWFhOTAwMC0wMDAwMGM5YWE5ZmZmIHR5cGU9
NCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgNC42OTYxODhdICAwMDAwMGM5
YWFhMDAwLTAwMDAwYzlhYWFmZmYgdHlwZT0zIGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhF
TikgWyAgICA0LjcxMDA1N10gIDAwMDAwYzlhYWIwMDAtMDAwMDBjOWFhY2ZmZiB0eXBlPTQg
YXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDQuNzIzOTIxXSAgMDAwMDBjOWFh
ZDAwMC0wMDAwMGM5YWIxZmZmIHR5cGU9MyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4p
IFsgICAgNC43Mzc3OTFdICAwMDAwMGM5YWIyMDAwLTAwMDAwYzlhYjNmZmYgdHlwZT00IGF0
dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICA0Ljc1MTY1Nl0gIDAwMDAwYzlhYjQw
MDAtMDAwMDBjOWFiN2ZmZiB0eXBlPTMgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBb
ICAgIDQuNzY1NTIyXSAgMDAwMDBjOWFiODAwMC0wMDAwMGM5YWI4ZmZmIHR5cGU9NCBhdHRy
PTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgNC43NzkzOTBdICAwMDAwMGM5YWI5MDAw
LTAwMDAwYzlhYmVmZmYgdHlwZT0zIGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAg
ICA0Ljc5MzI1N10gIDAwMDAwYzlhYmYwMDAtMDAwMDBjOWFiZmZmZiB0eXBlPTQgYXR0cj0w
MDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDQuODA3MTIzXSAgMDAwMDBjOWFjMDAwMC0w
MDAwMGM5YWNiZmZmIHR5cGU9MyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAg
NC44MjA5ODldICAwMDAwMGM5YWNjMDAwLTAwMDAwYzlhY2NmZmYgdHlwZT00IGF0dHI9MDAw
MDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICA0LjgzNDg1NV0gIDAwMDAwYzlhY2QwMDAtMDAw
MDBjOWFjZWZmZiB0eXBlPTMgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDQu
ODQ4NzI0XSAgMDAwMDBjOWFjZjAwMC0wMDAwMGM5YWQwZmZmIHR5cGU9NCBhdHRyPTAwMDAw
MDAwMDAwMDAwMGYNCihYRU4pIFsgICAgNC44NjI1OTBdICAwMDAwMGM5YWQxMDAwLTAwMDAw
YzlhZDFmZmYgdHlwZT0zIGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICA0Ljg3
NjQ1N10gIDAwMDAwYzlhZDIwMDAtMDAwMDBjOWFkMmZmZiB0eXBlPTQgYXR0cj0wMDAwMDAw
MDAwMDAwMDBmDQooWEVOKSBbICAgIDQuODkwMzIzXSAgMDAwMDBjOWFkMzAwMC0wMDAwMGM5
YWVlZmZmIHR5cGU9MyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgNC45MDQx
ODldICAwMDAwMGM5YWVmMDAwLTAwMDAwYzlhZjFmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAw
MDAwMDAwZg0KKFhFTikgWyAgICA0LjkxODA1Nl0gIDAwMDAwYzlhZjIwMDAtMDAwMDBjOWFm
M2ZmZiB0eXBlPTMgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDQuOTMxOTIy
XSAgMDAwMDBjOWFmNDAwMC0wMDAwMGM5YWY3ZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAw
MDAwMGYNCihYRU4pIFsgICAgNC45NDU3OTBdICAwMDAwMGM5YWY4MDAwLTAwMDAwYzlhZmJm
ZmYgdHlwZT0zIGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICA0Ljk1OTY1NV0g
IDAwMDAwYzlhZmMwMDAtMDAwMDBjOWFmZGZmZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAwMDAw
MDBmDQooWEVOKSBbICAgIDQuOTczNTIxXSAgMDAwMDBjOWFmZTAwMC0wMDAwMGM5YjA3ZmZm
IHR5cGU9MyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgNC45ODczODhdICAw
MDAwMGM5YjA4MDAwLTAwMDAwYzlmMDdmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAw
Zg0KKFhFTikgWyAgICA1LjAwMTI1NF0gIDAwMDAwYzlmMDgwMDAtMDAwMDBjOWYyN2ZmZiB0
eXBlPTMgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDUuMDE1MTI0XSAgMDAw
MDBjOWYyODAwMC0wMDAwMGM5ZjI5ZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYN
CihYRU4pIFsgICAgNS4wMjg5OTBdICAwMDAwMGM5ZjJhMDAwLTAwMDAwYzlmMmJmZmYgdHlw
ZT0zIGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICA1LjA0Mjg1Nl0gIDAwMDAw
YzlmMmMwMDAtMDAwMDBjOWYyZGZmZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQoo
WEVOKSBbICAgIDUuMDU2NzIyXSAgMDAwMDBjOWYyZTAwMC0wMDAwMGM5ZjJlZmZmIHR5cGU9
MyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgNS4wNzA1ODddICAwMDAwMGM5
ZjJmMDAwLTAwMDAwYzlmMmZmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhF
TikgWyAgICA1LjA4NDQ1Nl0gIDAwMDAwYzlmMzAwMDAtMDAwMDBjOWYzMGZmZiB0eXBlPTMg
YXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDUuMDk4MzIyXSAgMDAwMDBjOWYz
MTAwMC0wMDAwMGM5ZjMxZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4p
IFsgICAgNS4xMTIxODhdICAwMDAwMGM5ZjMyMDAwLTAwMDAwYzlmMzZmZmYgdHlwZT0zIGF0
dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICA1LjEyNjA1NF0gIDAwMDAwYzlmMzcw
MDAtMDAwMDBjOWYzYWZmZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBb
ICAgIDUuMTM5OTIzXSAgMDAwMDBjOWYzYjAwMC0wMDAwMGM5ZjNiZmZmIHR5cGU9MyBhdHRy
PTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgNS4xNTM3ODldICAwMDAwMGM5ZjNjMDAw
LTAwMDAwYzlmM2NmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAg
ICA1LjE2NzY1NV0gIDAwMDAwYzlmM2QwMDAtMDAwMDBjOWYzZGZmZiB0eXBlPTMgYXR0cj0w
MDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDUuMTgxNTIwXSAgMDAwMDBjOWYzZTAwMC0w
MDAwMGNhNDExZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAg
NS4xOTUzOTBdICAwMDAwMGNhNDEyMDAwLTAwMDAwY2E0MTNmZmYgdHlwZT0zIGF0dHI9MDAw
MDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICA1LjIwOTI1NF0gIDAwMDAwY2E0MTQwMDAtMDAw
MDBjYTQxNWZmZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDUu
MjIzMTIxXSAgMDAwMDBjYTQxNjAwMC0wMDAwMGNhNDFjZmZmIHR5cGU9MyBhdHRyPTAwMDAw
MDAwMDAwMDAwMGYNCihYRU4pIFsgICAgNS4yMzY5ODddICAwMDAwMGNhNDFkMDAwLTAwMDAw
Y2E0MWRmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICA1LjI1
MDg1Nl0gIDAwMDAwY2E0MWUwMDAtMDAwMDBjYTQxZWZmZiB0eXBlPTMgYXR0cj0wMDAwMDAw
MDAwMDAwMDBmDQooWEVOKSBbICAgIDUuMjY0NzIyXSAgMDAwMDBjYTQxZjAwMC0wMDAwMGNh
NDg4ZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgNS4yNzg1
ODhdICAwMDAwMGNhNDg5MDAwLTAwMDAwY2E0ODlmZmYgdHlwZT0zIGF0dHI9MDAwMDAwMDAw
MDAwMDAwZg0KKFhFTikgWyAgICA1LjI5MjQ1NV0gIDAwMDAwY2E0OGEwMDAtMDAwMDBjYTQ4
YmZmZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDUuMzA2MzIx
XSAgMDAwMDBjYTQ4YzAwMC0wMDAwMGNhNDhjZmZmIHR5cGU9MyBhdHRyPTAwMDAwMDAwMDAw
MDAwMGYNCihYRU4pIFsgICAgNS4zMjAxODddICAwMDAwMGNhNDhkMDAwLTAwMDAwY2E0OTFm
ZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICA1LjMzNDA1NF0g
IDAwMDAwY2E0OTIwMDAtMDAwMDBjYTQ5NGZmZiB0eXBlPTMgYXR0cj0wMDAwMDAwMDAwMDAw
MDBmDQooWEVOKSBbICAgIDUuMzQ3OTIwXSAgMDAwMDBjYTQ5NTAwMC0wMDAwMGNhYmM4ZmZm
IHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgNS4zNjE3ODddICAw
MDAwMGNhYmM5MDAwLTAwMDAwY2MxNGNmZmYgdHlwZT0wIGF0dHI9MDAwMDAwMDAwMDAwMDAw
Zg0KKFhFTikgWyAgICA1LjM3NTY1NV0gIDAwMDAwY2MxNGQwMDAtMDAwMDBjYzE5NWZmZiB0
eXBlPTkgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDUuMzg5NTIxXSAgMDAw
MDBjYzE5NjAwMC0wMDAwMGNjMzg4ZmZmIHR5cGU9MTAgYXR0cj0wMDAwMDAwMDAwMDAwMDBm
DQooWEVOKSBbICAgIDUuNDAzNTYwXSAgMDAwMDBjYzM4OTAwMC0wMDAwMGNjMzg5ZmZmIHR5
cGU9MCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgNS40MTc0MjldICAwMDAw
MGNjMzhhMDAwLTAwMDAwY2M3MDlmZmYgdHlwZT0xMCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYN
CihYRU4pIFsgICAgNS40MzE0NjhdICAwMDAwMGNjNzBhMDAwLTAwMDAwY2QxNzlmZmYgdHlw
ZT02IGF0dHI9ODAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICA1LjQ0NTMzNl0gIDAwMDAw
Y2QxN2EwMDAtMDAwMDBjZDFmZWZmZiB0eXBlPTUgYXR0cj04MDAwMDAwMDAwMDAwMDBmDQoo
WEVOKSBbICAgIDUuNDU5MjAzXSAgMDAwMDBjZDFmZjAwMC0wMDAwMGNkN2ZmZmZmIHR5cGU9
NCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgNS40NzMwNjhdICAwMDAwMGNk
ODAwMDAwLTAwMDAwY2Q4ZTlmZmYgdHlwZT03IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhF
TikgWyAgICA1LjQ4NjkzNV0gIDAwMDAwY2Q4ZWEwMDAtMDAwMDBjZDllOWZmZiB0eXBlPTQg
YXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDUuNTAwODAxXSAgMDAwMDBjZDll
YTAwMC0wMDAwMGNkYTA1ZmZmIHR5cGU9MyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4p
IFsgICAgNS41MTQ2NjldICAwMDAwMGNkYTA2MDAwLTAwMDAwY2RhMzFmZmYgdHlwZT00IGF0
dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICA1LjUyODUzNV0gIDAwMDAwY2RhMzIw
MDAtMDAwMDBjZGE0NGZmZiB0eXBlPTMgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBb
ICAgIDUuNTQyNDAxXSAgMDAwMDBjZGE0NTAwMC0wMDAwMGNkZjU3ZmZmIHR5cGU9NCBhdHRy
PTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgNS41NTYyNjddICAwMDAwMGNkZjU4MDAw
LTAwMDAwY2RmNWFmZmYgdHlwZT0zIGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAg
ICA1LjU3MDEzNl0gIDAwMDAwY2RmNWIwMDAtMDAwMDBjZGY2ZGZmZiB0eXBlPTQgYXR0cj0w
MDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDUuNTg0MDAxXSAgMDAwMDBjZGY2ZTAwMC0w
MDAwMGNkZjc3ZmZmIHR5cGU9MyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAg
NS41OTc4NjddICAwMDAwMGNkZjc4MDAwLTAwMDAwY2RmOTFmZmYgdHlwZT00IGF0dHI9MDAw
MDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICA1LjYxMTczNl0gIDAwMDAwY2RmOTIwMDAtMDAw
MDBjZGY5N2ZmZiB0eXBlPTMgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDUu
NjI1NjAyXSAgMDAwMDBjZGY5ODAwMC0wMDAwMGNkZmFkZmZmIHR5cGU9NCBhdHRyPTAwMDAw
MDAwMDAwMDAwMGYNCihYRU4pIFsgICAgNS42Mzk0NjldICAwMDAwMGNkZmFlMDAwLTAwMDAw
Y2RmYjFmZmYgdHlwZT0zIGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICA1LjY1
MzMzNF0gIDAwMDAwY2RmYjIwMDAtMDAwMDBjZGZjNWZmZiB0eXBlPTQgYXR0cj0wMDAwMDAw
MDAwMDAwMDBmDQooWEVOKSBbICAgIDUuNjY3MjAxXSAgMDAwMDBjZGZjNjAwMC0wMDAwMGNk
ZmNhZmZmIHR5cGU9MyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgNS42ODEw
NjddICAwMDAwMGNkZmNiMDAwLTAwMDAwY2RmZGZmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAw
MDAwMDAwZg0KKFhFTikgWyAgICA1LjY5NDkzM10gIDAwMDAwY2RmZTAwMDAtMDAwMDBjZGZm
MWZmZiB0eXBlPTMgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDUuNzA4Nzk5
XSAgMDAwMDBjZGZmMjAwMC0wMDAwMGNkZmY5ZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAw
MDAwMGYNCihYRU4pIFsgICAgNS43MjI2NjldICAwMDAwMGNkZmZhMDAwLTAwMDAwY2RmZmZm
ZmYgdHlwZT0zIGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICA1LjczNjUzNV0g
IDAwMDAxMDAwMDAwMDAtMDAwMDgwZjMzZmZmZiB0eXBlPTcgYXR0cj0wMDAwMDAwMDAwMDAw
MDBmDQooWEVOKSBbICAgIDUuNzUwMzk5XSAgMDAwMDAwMDBhMDAwMC0wMDAwMDAwMGZmZmZm
IHR5cGU9MCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgNS43NjQyNjddICAw
MDAwMGNlMDAwMDAwLTAwMDAwY2ZmZmZmZmYgdHlwZT0wIGF0dHI9MDAwMDAwMDAwMDAwMDAw
Zg0KKFhFTikgWyAgICA1Ljc3ODEzMl0gIDAwMDAwZjAwMDAwMDAtMDAwMDBmN2ZmZmZmZiB0
eXBlPTExIGF0dHI9ODAwMDAwMDAwMDAwMTAwZA0KKFhFTikgWyAgICA1Ljc5MjE3NV0gIDAw
MDAwZmQwMDAwMDAtMDAwMDBmZWRmZmZmZiB0eXBlPTExIGF0dHI9ODAwMDAwMDAwMDAwMTAw
ZA0KKFhFTikgWyAgICA1LjgwNjIxMl0gIDAwMDAwZmVlMDAwMDAtMDAwMDBmZWUwMGZmZiB0
eXBlPTExIGF0dHI9ODAwMDAwMDAwMDAwMDAwMQ0KKFhFTikgWyAgICA1LjgyMDI1M10gIDAw
MDAwZmVlMDEwMDAtMDAwMDBmZmZmZmZmZiB0eXBlPTExIGF0dHI9ODAwMDAwMDAwMDAwMTAw
ZA0KKFhFTikgWyAgICA1LjgzNDI5M10gIDAwMDA4MGYzNDAwMDAtMDAwMDgyZmZmZmZmZiB0
eXBlPTAgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDUuODQ4MTYyXSAgMDAw
MDgzMDAwMDAwMC0wMDAwODUwMWZmZmZmIHR5cGU9MTEgYXR0cj04MDAwMDAwMDAwMDAxMDBk
DQooWEVOKSBbICAgIDUuODYyMjAxXSBhbHQgdGFibGUgZmZmZjgyZDA0MDRhMjNkOCAtPiBm
ZmZmODJkMDQwNGI1MGNhDQooWEVOKSBbICAgIDUuODg3NDIxXSBBTUQtVmk6IElPTU1VIEV4
dGVuZGVkIEZlYXR1cmVzOg0KKFhFTikgWyAgICA1Ljg5Njk1NF0gLSBQZXJpcGhlcmFsIFBh
Z2UgU2VydmljZSBSZXF1ZXN0DQooWEVOKSBbICAgIDUuOTA2NjYwXSAtIHgyQVBJQw0KKFhF
TikgWyAgICA1LjkxMjAzNF0gLSBOWCBiaXQNCihYRU4pIFsgICAgNS45MTc0MDddIC0gSW52
YWxpZGF0ZSBBbGwgQ29tbWFuZA0KKFhFTikgWyAgICA1LjkyNTU1M10gLSBHdWVzdCBBUElD
DQooWEVOKSBbICAgIDUuOTMxNjE5XSAtIFBlcmZvcm1hbmNlIENvdW50ZXJzDQooWEVOKSBb
ICAgIDUuOTM5NDIwXSAtIEhvc3QgQWRkcmVzcyBUcmFuc2xhdGlvbiBTaXplOiAweDINCihY
RU4pIFsgICAgNS45NDk2NDZdIC0gR3Vlc3QgQWRkcmVzcyBUcmFuc2xhdGlvbiBTaXplOiAw
DQooWEVOKSBbICAgIDUuOTU5Njk5XSAtIEd1ZXN0IENSMyBSb290IFRhYmxlIExldmVsOiAw
eDENCihYRU4pIFsgICAgNS45Njk0MDZdIC0gTWF4aW11bSBQQVNJRDogMHhmDQooWEVOKSBb
ICAgIDUuOTc2ODU5XSAtIFNNSSBGaWx0ZXIgUmVnaXN0ZXI6IDB4MQ0KKFhFTikgWyAgICA1
Ljk4NTM1Ml0gLSBTTUkgRmlsdGVyIFJlZ2lzdGVyIENvdW50OiAweDENCihYRU4pIFsgICAg
NS45OTQ4ODVdIC0gR3Vlc3QgVmlydHVhbCBBUElDIE1vZGVzOiAweDENCihYRU4pIFsgICAg
Ni4wMDQyNDhdIC0gRHVhbCBQUFIgTG9nOiAweDINCihYRU4pIFsgICAgNi4wMTE1MjddIC0g
RHVhbCBFdmVudCBMb2c6IDB4Mg0KKFhFTikgWyAgICA2LjAxOTE1M10gLSBVc2VyIC8gU3Vw
ZXJ2aXNvciBQYWdlIFByb3RlY3Rpb24NCihYRU4pIFsgICAgNi4wMjkyMDZdIC0gRGV2aWNl
IFRhYmxlIFNlZ21lbnRhdGlvbjogMHgzDQooWEVOKSBbICAgIDYuMDM4NzM5XSAtIFBQUiBM
b2cgT3ZlcmZsb3cgRWFybHkgV2FybmluZw0KKFhFTikgWyAgICA2LjA0ODI3NV0gLSBQUFIg
QXV0b21hdGljIFJlc3BvbnNlDQooWEVOKSBbICAgIDYuMDU2NDIwXSAtIE1lbW9yeSBBY2Nl
c3MgUm91dGluZyBhbmQgQ29udHJvbDogMA0KKFhFTikgWyAgICA2LjA2Njk5M10gLSBCbG9j
ayBTdG9wTWFyayBNZXNzYWdlDQooWEVOKSBbICAgIDYuMDc1MTQyXSAtIFBlcmZvcm1hbmNl
IE9wdGltaXphdGlvbg0KKFhFTikgWyAgICA2LjA4MzYzNF0gLSBNU0kgQ2FwYWJpbGl0eSBN
TUlPIEFjY2Vzcw0KKFhFTikgWyAgICA2LjA5MjQ3M10gLSBHdWVzdCBJL08gUHJvdGVjdGlv
bg0KKFhFTikgWyAgICA2LjEwMDI3Ml0gLSBFbmhhbmNlZCBQUFIgSGFuZGxpbmcNCihYRU4p
IFsgICAgNi4xMDgyNDhdIC0gQXR0cmlidXRlIEZvcndhcmQNCihYRU4pIFsgICAgNi4xMTU1
MjddIC0gSW52YWxpZGF0ZSBJT1RMQiBUeXBlDQooWEVOKSBbICAgIDYuMTIzNTAwXSAtIFZN
IFRhYmxlIFNpemU6IDANCihYRU4pIFsgICAgNi4xMzA2MDVdIC0gR3Vlc3QgQWNjZXNzIEJp
dCBVcGRhdGUgRGlzYWJsZQ0KKFhFTikgWyAgICA2LjE1MTcyN10gQU1ELVZpOiBEaXNhYmxl
ZCBIQVAgbWVtb3J5IG1hcCBzaGFyaW5nIHdpdGggSU9NTVUNCihYRU4pIFsgICAgNi4xNjQz
ODFdIEFNRC1WaTogSU9NTVUgMCBFbmFibGVkLg0KKFhFTikgWyAgICA2LjE3MjUyOF0gSS9P
IHZpcnR1YWxpc2F0aW9uIGVuYWJsZWQNCihYRU4pIFsgICAgNi4xODEwMjFdICAtIERvbTAg
bW9kZTogUmVsYXhlZA0KKFhFTikgWyAgICA2LjE4ODY0N10gSW50ZXJydXB0IHJlbWFwcGlu
ZyBlbmFibGVkDQooWEVOKSBbICAgIDYuMTk3MzEzXSBucl9zb2NrZXRzOiAxDQooWEVOKSBb
ICAgIDYuMjAzNTU0XSBFbmFibGluZyBBUElDIG1vZGUuICBVc2luZyAyIEkvTyBBUElDcw0K
KFhFTikgWyAgICA2LjIxNDU2OF0gRU5BQkxJTkcgSU8tQVBJQyBJUlFzDQooWEVOKSBbICAg
IDYuMjIyMTk3XSAgLT4gVXNpbmcgbmV3IEFDSyBtZXRob2QNCihYRU4pIFsgICAgNi4yMzAz
NDFdIC4uVElNRVI6IHZlY3Rvcj0weEYwIGFwaWMxPTAgcGluMT0yIGFwaWMyPS0xIHBpbjI9
LTENCihYRU4pIFsgICAgNi4zOTMwMjVdIFdhbGxjbG9jayBzb3VyY2U6IENNT1MgUlRDDQoo
WEVOKSBbICAgIDcuMjgyNjU4XSBBbGxvY2F0ZWQgY29uc29sZSByaW5nIG9mIDEyOCBLaUIu
DQooWEVOKSBbICAgIDcuMjkyNTM2XSBtd2FpdC1pZGxlOiBkb2VzIG5vdCBydW4gb24gZmFt
aWx5IDIzIG1vZGVsIDk2DQooWEVOKSBbICAgIDcuMzA0NDk3XSBIVk06IEFTSURzIGVuYWJs
ZWQuDQooWEVOKSBbICAgIDcuMzExNzc1XSBTVk06IFN1cHBvcnRlZCBhZHZhbmNlZCBmZWF0
dXJlczoNCihYRU4pIFsgICAgNy4zMjE0ODFdICAtIE5lc3RlZCBQYWdlIFRhYmxlcyAoTlBU
KQ0KKFhFTikgWyAgICA3LjMzMDE1MV0gIC0gTGFzdCBCcmFuY2ggUmVjb3JkIChMQlIpIFZp
cnR1YWxpc2F0aW9uDQooWEVOKSBbICAgIDcuMzQxNDE3XSAgLSBOZXh0LVJJUCBTYXZlZCBv
biAjVk1FWElUDQooWEVOKSBbICAgIDcuMzUwMjU3XSAgLSBWTUNCIENsZWFuIEJpdHMNCihY
RU4pIFsgICAgNy4zNTczNjRdICAtIFRMQiBmbHVzaCBieSBBU0lEDQooWEVOKSBbICAgIDcu
MzY0ODE1XSAgLSBEZWNvZGVBc3Npc3RzDQooWEVOKSBbICAgIDcuMzcxNTc3XSAgLSBWaXJ0
dWFsIFZNTE9BRC9WTVNBVkUNCihYRU4pIFsgICAgNy4zNzk3MjNdICAtIFZpcnR1YWwgR0lG
DQooWEVOKSBbICAgIDcuMzg2MTM1XSAgLSBQYXVzZS1JbnRlcmNlcHQgRmlsdGVyDQooWEVO
KSBbICAgIDcuMzk0NDU0XSAgLSBQYXVzZS1JbnRlcmNlcHQgRmlsdGVyIFRocmVzaG9sZA0K
KFhFTikgWyAgICA3LjQwNDUwOF0gIC0gVFNDIFJhdGUgTVNSDQooWEVOKSBbICAgIDcuNDEx
MDk2XSAgLSBNU1JfU1BFQ19DVFJMIHZpcnR1YWxpc2F0aW9uDQooWEVOKSBbICAgIDcuNDIw
NDU3XSBIVk06IFNWTSBlbmFibGVkDQooWEVOKSBbICAgIDcuNDI3MjE3XSBIVk06IEhhcmR3
YXJlIEFzc2lzdGVkIFBhZ2luZyAoSEFQKSBkZXRlY3RlZA0KKFhFTikgWyAgICA3LjQzODgy
OV0gSFZNOiBIQVAgcGFnZSBzaXplczogNGtCLCAyTUIsIDFHQg0KKFhFTikgWyAgICA3LjQ0
ODcwOV0gYWx0IHRhYmxlIGZmZmY4MmQwNDA0YTIzZDggLT4gZmZmZjgyZDA0MDRiNTBjYQ0K
KFhFTikgWyAgICA3Ljc2NjE2OV0gQnJvdWdodCB1cCAxNiBDUFVzDQooWEVOKSBbICAgIDcu
Nzc0MTM1XSBTY2hlZHVsaW5nIGdyYW51bGFyaXR5OiBjcHUsIDEgQ1BVIHBlciBzY2hlZC1y
ZXNvdXJjZQ0KKFhFTikgWyAgICA3Ljc4NzMwNV0gSW5pdGlhbGl6aW5nIG51bGwgc2NoZWR1
bGVyDQooWEVOKSBbICAgIDcuNzk1OTcyXSBXQVJOSU5HOiBUaGlzIGlzIGV4cGVyaW1lbnRh
bCBzb2Z0d2FyZSBpbiBkZXZlbG9wbWVudC4NCihYRU4pIFsgICAgNy44MDkzMjNdIFVzZSBh
dCB5b3VyIG93biByaXNrLg0KKFhFTikgWyAgICA3LjgxNjk0Nl0gbWNoZWNrX3BvbGw6IE1h
Y2hpbmUgY2hlY2sgcG9sbGluZyB0aW1lciBzdGFydGVkLg0KKFhFTikgWyAgICA3LjgyOTQy
OV0gUnVubmluZyBzdHViIHJlY292ZXJ5IHNlbGZ0ZXN0cy4uLg0KKFhFTikgWyAgICA3Ljgz
OTMwOV0gRml4dXAgI1VEWzAwMDBdOiBmZmZmODJkMDdmZmZlMDQ0IFtmZmZmODJkMDdmZmZl
MDQ0XSAtPiBmZmZmODJkMDQwMzhmZDY0DQooWEVOKSBbICAgIDcuODU1Nzc3XSBGaXh1cCAj
R1BbMDAwMF06IGZmZmY4MmQwN2ZmZmUwNDUgW2ZmZmY4MmQwN2ZmZmUwNDVdIC0+IGZmZmY4
MmQwNDAzOGZkNjQNCihYRU4pIFsgICAgNy44NzIyMzldIEZpeHVwICNTU1swMDAwXTogZmZm
ZjgyZDA3ZmZmZTA0NCBbZmZmZjgyZDA3ZmZmZTA0NF0gLT4gZmZmZjgyZDA0MDM4ZmQ2NA0K
KFhFTikgWyAgICA3Ljg4ODcwN10gRml4dXAgI0JQWzAwMDBdOiBmZmZmODJkMDdmZmZlMDQ1
IFtmZmZmODJkMDdmZmZlMDQ1XSAtPiBmZmZmODJkMDQwMzhmZDY0DQooWEVOKSBbICAgIDcu
OTI0OTMyXSBOWCAoRXhlY3V0ZSBEaXNhYmxlKSBwcm90ZWN0aW9uIGFjdGl2ZQ0KKFhFTikg
WyAgICA3LjkzNTUwNV0gZDAgaGFzIG1heGltdW0gMzMyOCBQSVJRcw0KKFhFTikgWyAgICA3
Ljk0MzgzMF0gKioqIEJ1aWxkaW5nIGEgUFZIIERvbTAgKioqDQooWEVOKSBbICAgIDcuOTU1
OTYwXSBkMDogaWRlbnRpdHkgbWFwcGluZ3MgZm9yIElPTU1VOg0KKFhFTikgWyAgICA3Ljk2
NTQ5NF0gIFswMDAwMDAwMGEwLCAwMDAwMDAwMGZmXSBSVw0KKFhFTikgWyAgICA3Ljk3NDMz
Nl0gIFswMDAwMDA5YmZmLCAwMDAwMDA5ZmZmXSBSVw0KKFhFTikgWyAgICA3Ljk4MzE3Ml0g
IFswMDAwMGNhYmM5LCAwMDAwMGNjMTRjXSBSVw0KKFhFTikgWyAgICA3Ljk5MjA0OV0gIFsw
MDAwMGNjMzg5LCAwMDAwMGNjMzg5XSBSVw0KKFhFTikgWyAgICA4LjAwMDg5MF0gIFswMDAw
MGNjNzBhLCAwMDAwMGNkMWZlXSBSVw0KKFhFTikgWyAgICA4LjAxMDA2NV0gIFswMDAwMGNl
MDAwLCAwMDAwMGNmZmZmXSBSVw0KKFhFTikgWyAgICA4LjAxODkwNF0gIFswMDAwMGZkMDAw
LCAwMDAwMGZkMmZmXSBSVw0KKFhFTikgWyAgICA4LjAyNzc0NV0gIFswMDAwMGZkMzA0LCAw
MDAwMGZlYmZmXSBSVw0KKFhFTikgWyAgICA4LjAzNjU4NF0gIFswMDAwMGZlYzAyLCAwMDAw
MGZlZGZmXSBSVw0KKFhFTikgWyAgICA4LjA0NTU0Nl0gIFswMDAwMGZlZTAxLCAwMDAwMGZm
ZmZmXSBSVw0KKFhFTikgWyAgICA4LjA1NDUxOV0gIFswMDAwODBmMzQwLCAwMDAwODUwMWZm
XSBSVw0KKFhFTikgWyAgICA4LjA2NDEzNV0gMDAwMDowMjowMC4wOiBub3QgbWFwcGluZyBC
QVIgW2ZlYTAwLCBmZWEwM10gaW52YWxpZCBwb3NpdGlvbg0KKFhFTikgWyAgICA4LjA3ODY5
OF0gMDAwMDowMzowMC4wOiBub3QgbWFwcGluZyBCQVIgW2ZlOTAwLCBmZTkwZl0gaW52YWxp
ZCBwb3NpdGlvbg0KKFhFTikgWyAgICA4LjA5MzI2MF0gMDAwMDowMzowMC4wOiBub3QgbWFw
cGluZyBCQVIgW2ZlOTEwLCBmZTkxM10gaW52YWxpZCBwb3NpdGlvbg0KKFhFTikgWyAgICA4
LjEwNzgxNV0gMDAwMDowNDowMC4wOiBub3QgbWFwcGluZyBCQVIgW2ZlNzAwLCBmZTc3Zl0g
aW52YWxpZCBwb3NpdGlvbg0KKFhFTikgWyAgICA4LjEyMjM3Nl0gMDAwMDowNDowMC4zOiBu
b3QgbWFwcGluZyBCQVIgW2ZlNTAwLCBmZTVmZl0gaW52YWxpZCBwb3NpdGlvbg0KKFhFTikg
WyAgICA4LjEzNjkzNl0gMDAwMDowNDowMC40OiBub3QgbWFwcGluZyBCQVIgW2ZlNDAwLCBm
ZTRmZl0gaW52YWxpZCBwb3NpdGlvbg0KKFhFTikgWyAgICA4LjE1MTQ5OF0gMDAwMDowNTow
MC4wOiBub3QgbWFwcGluZyBCQVIgW2ZlODAxLCBmZTgwMV0gaW52YWxpZCBwb3NpdGlvbg0K
KFhFTikgWyAgICA4LjE2NjA1Nl0gMDAwMDowNTowMC4xOiBub3QgbWFwcGluZyBCQVIgW2Zl
ODAwLCBmZTgwMF0gaW52YWxpZCBwb3NpdGlvbg0KKFhFTikgWyAgICA4LjI5MTA4Ml0gRG9t
MCBtZW1vcnkgYWxsb2NhdGlvbiBzdGF0czoNCihYRU4pIFsgICAgOC4zMDAwOTZdIG9yZGVy
ICAwIGFsbG9jYXRpb25zOiA0DQooWEVOKSBbICAgIDguMzA4MDY3XSBvcmRlciAgMSBhbGxv
Y2F0aW9uczogMg0KKFhFTikgWyAgICA4LjMxNjA0NF0gb3JkZXIgIDIgYWxsb2NhdGlvbnM6
IDINCihYRU4pIFsgICAgOC4zMjQwMThdIG9yZGVyICAzIGFsbG9jYXRpb25zOiAyDQooWEVO
KSBbICAgIDguMzMxOTg4XSBvcmRlciAgNCBhbGxvY2F0aW9uczogMg0KKFhFTikgWyAgICA4
LjMzOTk2NF0gb3JkZXIgIDUgYWxsb2NhdGlvbnM6IDQNCihYRU4pIFsgICAgOC4zNDc5Mzhd
IG9yZGVyICA2IGFsbG9jYXRpb25zOiAzDQooWEVOKSBbICAgIDguMzU1OTEyXSBvcmRlciAg
NyBhbGxvY2F0aW9uczogNQ0KKFhFTikgWyAgICA4LjM2Mzg4MF0gb3JkZXIgIDggYWxsb2Nh
dGlvbnM6IDQNCihYRU4pIFsgICAgOC4zNzE4NTddIG9yZGVyICA5IGFsbG9jYXRpb25zOiA2
DQooWEVOKSBbICAgIDguMzc5ODMwXSBvcmRlciAxMCBhbGxvY2F0aW9uczogMw0KKFhFTikg
WyAgICA4LjM4NzgwNF0gb3JkZXIgMTEgYWxsb2NhdGlvbnM6IDYNCihYRU4pIFsgICAgOC4z
OTU3NzRdIG9yZGVyIDEyIGFsbG9jYXRpb25zOiAzDQooWEVOKSBbICAgIDguNDAzNzUyXSBv
cmRlciAxMyBhbGxvY2F0aW9uczogMg0KKFhFTikgWyAgICA4LjQxMTcyMF0gb3JkZXIgMTQg
YWxsb2NhdGlvbnM6IDMNCihYRU4pIFsgICAgOC40MTk2OTldIG9yZGVyIDE1IGFsbG9jYXRp
b25zOiAxDQooWEVOKSBbICAgIDguNDI3NjY3XSBvcmRlciAxNiBhbGxvY2F0aW9uczogMg0K
KFhFTikgWyAgICA4LjQzNTY0M10gb3JkZXIgMTcgYWxsb2NhdGlvbnM6IDINCihYRU4pIFsg
ICAgOC40NDM2MTddIG9yZGVyIDE4IGFsbG9jYXRpb25zOiAyDQooWEVOKSBbICAgIDguNzMz
NjgzXSBFTEY6IHBoZHI6IHBhZGRyPTB4MTAwMDAwMCBtZW1zej0weDE5MWZlYzQNCihYRU4p
IFsgICAgOC43NDQ5NDhdIEVMRjogcGhkcjogcGFkZHI9MHgyYTAwMDAwIG1lbXN6PTB4ODc4
MDAwDQooWEVOKSBbICAgIDguNzU2MDQxXSBFTEY6IHBoZHI6IHBhZGRyPTB4MzI3ODAwMCBt
ZW1zej0weDJmZWQ4DQooWEVOKSBbICAgIDguNzY2OTYzXSBFTEY6IHBoZHI6IHBhZGRyPTB4
MzJhODAwMCBtZW1zej0weDU4ODAwMA0KKFhFTikgWyAgICA4Ljc3ODA1MV0gRUxGOiBtZW1v
cnk6IDB4MTAwMDAwMCAtPiAweDM4MzAwMDANCihYRU4pIFsgICAgOC43ODgxMDRdIEVMRjog
bm90ZTogUEhZUzMyX0VOVFJZID0gMHgxMDAwMDAwDQooWEVOKSBbICAgIDguNzk4MTYwXSBF
TEY6IG5vdGU6IEdVRVNUX09TID0gImxpbnV4Ig0KKFhFTikgWyAgICA4LjgwNzE3M10gRUxG
OiBub3RlOiBHVUVTVF9WRVJTSU9OID0gIjIuNiINCihYRU4pIFsgICAgOC44MTY3MDddIEVM
Rjogbm90ZTogWEVOX1ZFUlNJT04gPSAieGVuLTMuMCINCihYRU4pIFsgICAgOC44MjY1ODRd
IEVMRjogbm90ZTogVklSVF9CQVNFID0gMHhmZmZmZmZmZjgwMDAwMDAwDQooWEVOKSBbICAg
IDguODM3NjgyXSBFTEY6IG5vdGU6IElOSVRfUDJNID0gMHg4MDAwMDAwMDAwDQooWEVOKSBb
ICAgIDguODQ3NTU3XSBFTEY6IG5vdGU6IEVOVFJZID0gMHhmZmZmZmZmZjgzMmJhYjcwDQoo
WEVOKSBbICAgIDguODU3OTYzXSBFTEY6IG5vdGU6IEZFQVRVUkVTID0gIiF3cml0YWJsZV9w
YWdlX3RhYmxlcyINCihYRU4pIFsgICAgOC44Njk3NDRdIEVMRjogbm90ZTogUEFFX01PREUg
PSAieWVzIg0KKFhFTikgWyAgICA4Ljg3ODQxMF0gRUxGOiBub3RlOiBMMV9NRk5fVkFMSUQN
CihYRU4pIFsgICAgOC44ODYzODZdIEVMRjogbm90ZTogTU9EX1NUQVJUX1BGTiA9IDB4MQ0K
KFhFTikgWyAgICA4Ljg5NTU3MF0gRUxGOiBub3RlOiBQQUREUl9PRkZTRVQgPSAwDQooWEVO
KSBbICAgIDguOTA0MjM4XSBFTEY6IG5vdGU6IEhZUEVSQ0FMTF9QQUdFID0gMHhmZmZmZmZm
ZjgxZjg0MDAwDQooWEVOKSBbICAgIDguOTE2MTk4XSBFTEY6IG5vdGU6IFNVUFBPUlRFRF9G
RUFUVVJFUyA9IDB4ODgwMQ0KKFhFTikgWyAgICA4LjkyNjc3Ml0gRUxGOiBub3RlOiBMT0FE
RVIgPSAiZ2VuZXJpYyINCihYRU4pIFsgICAgOC45MzU3ODNdIEVMRjogbm90ZTogU1VTUEVO
RF9DQU5DRUwgPSAweDENCihYRU4pIFsgICAgOC45NDUxNDRdIEVMRjogRm91bmQgUFZIIGlt
YWdlDQooWEVOKSBbICAgIDguOTUyNTk4XSBFTEY6IGFkZHJlc3NlczoNCihYRU4pIFsgICAg
OC45NTkxODhdICAgICB2aXJ0X2Jhc2UgICAgICAgID0gMHgwDQooWEVOKSBbICAgIDguOTY3
NjgxXSAgICAgZWxmX3BhZGRyX29mZnNldCA9IDB4MA0KKFhFTikgWyAgICA4Ljk3NjE3Nl0g
ICAgIHZpcnRfb2Zmc2V0ICAgICAgPSAweDANCihYRU4pIFsgICAgOC45ODQ2NjddICAgICB2
aXJ0X2tzdGFydCAgICAgID0gMHgxMDAwMDAwDQooWEVOKSBbICAgIDguOTk0MTk3XSAgICAg
dmlydF9rZW5kICAgICAgICA9IDB4MzgzMDAwMA0KKFhFTikgWyAgICA5LjAwMzczNF0gICAg
IHZpcnRfZW50cnkgICAgICAgPSAweDEwMDAwMDANCihYRU4pIFsgICAgOS4wMTMyNjhdICAg
ICBwMm1fYmFzZSAgICAgICAgID0gMHg4MDAwMDAwMDAwDQooWEVOKSBbICAgIDkuMDIzMzIx
XSBFTEY6IHBoZHIgMCBhdCAweDEwMDAwMDAgLT4gMHgyOTFmZWM0DQooWEVOKSBbICAgIDku
MDQwMzU5XSBFTEY6IHBoZHIgMSBhdCAweDJhMDAwMDAgLT4gMHgzMjc4MDAwDQooWEVOKSBb
ICAgIDkuMDUyNzg2XSBFTEY6IHBoZHIgMiBhdCAweDMyNzgwMDAgLT4gMHgzMmE3ZWQ4DQoo
WEVOKSBbICAgIDkuMDYzMTg3XSBFTEY6IHBoZHIgMyBhdCAweDMyYTgwMDAgLT4gMHgzNTYx
MDAwDQooWEVOKSBbICAgIDkuMjcwNzI5XSBEb20wIG1lbW9yeSBtYXA6DQooWEVOKSBbICAg
IDkuMjc3NDg1XSAgWzAwMDAwMDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAwOWZmZmZdICh1c2Fi
bGUpDQooWEVOKSBbICAgIDkuMjg5NDQ3XSAgWzAwMDAwMDAwMDAwYTAwMDAsIDAwMDAwMDAw
MDAwZmZmZmZdIChyZXNlcnZlZCkNCihYRU4pIFsgICAgOS4zMDE3NTBdICBbMDAwMDAwMDAw
MDEwMDAwMCwgMDAwMDAwMDAwOWJmZWZmZl0gKHVzYWJsZSkNCihYRU4pIFsgICAgOS4zMTM3
MTJdICBbMDAwMDAwMDAwOWJmZjAwMCwgMDAwMDAwMDAwOWZmZmZmZl0gKHJlc2VydmVkKQ0K
KFhFTikgWyAgICA5LjMyNjAyMl0gIFswMDAwMDAwMDBhMDAwMDAwLCAwMDAwMDAwMDBhMWZm
ZmZmXSAodXNhYmxlKQ0KKFhFTikgWyAgICA5LjMzNzk4MF0gIFswMDAwMDAwMDBhMjAwMDAw
LCAwMDAwMDAwMDBhMjBjZmZmXSAoQUNQSSBOVlMpDQooWEVOKSBbICAgIDkuMzUwMjg5XSAg
WzAwMDAwMDAwMGEyMGQwMDAsIDAwMDAwMDAwY2FiYzhmZmZdICh1c2FibGUpDQooWEVOKSBb
ICAgIDkuMzYyMjQ5XSAgWzAwMDAwMDAwY2FiYzkwMDAsIDAwMDAwMDAwY2MxNGNmZmZdIChy
ZXNlcnZlZCkNCihYRU4pIFsgICAgOS4zNzQ1NTVdICBbMDAwMDAwMDBjYzE0ZDAwMCwgMDAw
MDAwMDBjYzE5NWZmZl0gKEFDUEkgZGF0YSkNCihYRU4pIFsgICAgOS4zODcwMzJdICBbMDAw
MDAwMDBjYzE5NjAwMCwgMDAwMDAwMDBjYzM4OGZmZl0gKEFDUEkgTlZTKQ0KKFhFTikgWyAg
ICA5LjM5OTM0Ml0gIFswMDAwMDAwMGNjMzg5MDAwLCAwMDAwMDAwMGNjMzg5ZmZmXSAocmVz
ZXJ2ZWQpDQooWEVOKSBbICAgIDkuNDExNjQ0XSAgWzAwMDAwMDAwY2MzOGEwMDAsIDAwMDAw
MDAwY2M3MDlmZmZdIChBQ1BJIE5WUykNCihYRU4pIFsgICAgOS40MjM5NTJdICBbMDAwMDAw
MDBjYzcwYTAwMCwgMDAwMDAwMDBjZDFmZWZmZl0gKHJlc2VydmVkKQ0KKFhFTikgWyAgICA5
LjQzNjI1N10gIFswMDAwMDAwMGNkMWZmMDAwLCAwMDAwMDAwMGNkZmZmZWE3XSAodXNhYmxl
KQ0KKFhFTikgWyAgICA5LjQ0ODIyMV0gIFswMDAwMDAwMGNkZmZmZWE4LCAwMDAwMDAwMGNk
ZmZmZjNmXSAoQUNQSSBkYXRhKQ0KKFhFTikgWyAgICA5LjQ2MDcwMl0gIFswMDAwMDAwMGNl
MDAwMDAwLCAwMDAwMDAwMGNmZmZmZmZmXSAocmVzZXJ2ZWQpDQooWEVOKSBbICAgIDkuNDcz
MDA4XSAgWzAwMDAwMDAwZjAwMDAwMDAsIDAwMDAwMDAwZjdmZmZmZmZdIChyZXNlcnZlZCkN
CihYRU4pIFsgICAgOS40ODUzMTNdICBbMDAwMDAwMDBmZDAwMDAwMCwgMDAwMDAwMDBmZmZm
ZmZmZl0gKHJlc2VydmVkKQ0KKFhFTikgWyAgICA5LjQ5NzYxNl0gIFswMDAwMDAwMTAwMDAw
MDAwLCAwMDAwMDAwMTM0YWEzZmZmXSAodXNhYmxlKQ0KKFhFTikgWyAgICA5LjUwOTU4Ml0g
IFswMDAwMDAwMTM0YWE0MDAwLCAwMDAwMDAwODBmMzNmZmZmXSAodW51c2FibGUpDQooWEVO
KSBbICAgIDkuNTIxODg5XSAgWzAwMDAwMDA4MGYzNDAwMDAsIDAwMDAwMDA4NTAxZmZmZmZd
IChyZXNlcnZlZCkNCihYRU4pIFsgICAgOS41MzQxOTZdIEluaXRpYWwgbG93IG1lbW9yeSB2
aXJxIHRocmVzaG9sZCBzZXQgYXQgMHg0MDAwIHBhZ2VzLg0KKFhFTikgWyAgICA5LjU0NzU0
Ml0gU2NydWJiaW5nIEZyZWUgUkFNIGluIGJhY2tncm91bmQNCihYRU4pIFsgICAgOS41NTcw
NzVdIFN0ZC4gTG9nbGV2ZWw6IEFsbA0KKFhFTikgWyAgICA5LjU2NDE4MV0gR3Vlc3QgTG9n
bGV2ZWw6IEFsbA0KKFhFTikgWyAgICA5LjU3MTQ1N10gKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQooWEVOKSBbICAgIDkuNTg0Mjg1XSBX
QVJOSU5HOiBDT05TT0xFIE9VVFBVVCBJUyBTWU5DSFJPTk9VUw0KKFhFTikgWyAgICA5LjU5
NDg1OV0gVGhpcyBvcHRpb24gaXMgaW50ZW5kZWQgdG8gYWlkIGRlYnVnZ2luZyBvZiBYZW4g
YnkgZW5zdXJpbmcNCihYRU4pIFsgICAgOS42MDkwNzVdIHRoYXQgYWxsIG91dHB1dCBpcyBz
eW5jaHJvbm91c2x5IGRlbGl2ZXJlZCBvbiB0aGUgc2VyaWFsIGxpbmUuDQooWEVOKSBbICAg
IDkuNjIzODA2XSBIb3dldmVyIGl0IGNhbiBpbnRyb2R1Y2UgU0lHTklGSUNBTlQgbGF0ZW5j
aWVzIGFuZCBhZmZlY3QNCihYRU4pIFsgICAgOS42Mzc2NzJdIHRpbWVrZWVwaW5nLiBJdCBp
cyBOT1QgcmVjb21tZW5kZWQgZm9yIHByb2R1Y3Rpb24gdXNlIQ0KKFhFTikgWyAgICA5LjY1
MTAxOV0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqDQooWEVOKSBbICAgIDkuNjYzODQ1XSAzLi4uIDIuLi4gMS4uLg0KKFhFTikgWyAgIDEy
LjY3MDA0OF0gKioqIFNlcmlhbCBpbnB1dCB0byBET00wICh0eXBlICdDVFJMLWEnIHRocmVl
IHRpbWVzIHRvIHN3aXRjaCBpbnB1dCkNCihYRU4pIFsgICAxMi42ODU5OTNdIGNvbW1vbi9z
Y2hlZC9udWxsLmM6MzU3OiAwIDwtLSBkMHYwDQooWEVOKSBbICAgMTIuNjk2MjM1XSBGcmVl
ZCA2NjBrQiBpbml0IG1lbW9yeQ0KWyAgICAwLjAwMDAwMF0gTGludXggdmVyc2lvbiA2LjEx
LjAtcnQxIChzc3RhYmVsbGluaUB1YnVudHUtbGludXgtMjAtMDQtZGVza3RvcCkgKHg4Nl82
NC1saW51eC1nbnUtZ2NjIChVYnVudHUgOS40LjAtMXVidW50dTF+MjAuMDQuMikgOS40LjAs
IEdOVSBsZCAoR05VIEJpbnV0aWxzIGZvciBVYnVudHUpIDIuMzQpICM1ODIgU01QIFBSRUVN
UFRfRFlOQU1JQyBUaHUgQXByICAzIDE3OjM3OjQyIFBEVCAyMDI1DQpbICAgIDAuMDAwMDAw
XSBDb21tYW5kIGxpbmU6IGNvbnNvbGU9aHZjMCByb290PS9kZXYvcmFtMCBlYXJseXByaW50
az14ZW4gcmRpbml0PS9iaW4vc2gNClsgICAgMC4wMDAwMDBdIFtGaXJtd2FyZSBCdWddOiBU
U0MgZG9lc24ndCBjb3VudCB3aXRoIFAwIGZyZXF1ZW5jeSENClsgICAgMC4wMDAwMDBdIEJJ
T1MtcHJvdmlkZWQgcGh5c2ljYWwgUkFNIG1hcDoNClsgICAgMC4wMDAwMDBdIEJJT1MtZTgy
MDogW21lbSAweDAwMDAwMDAwMDAwMDAwMDAtMHgwMDAwMDAwMDAwMDlmZmZmXSB1c2FibGUN
ClsgICAgMC4wMDAwMDBdIEJJT1MtZTgyMDogW21lbSAweDAwMDAwMDAwMDAwYTAwMDAtMHgw
MDAwMDAwMDAwMGZmZmZmXSByZXNlcnZlZA0KWyAgICAwLjAwMDAwMF0gQklPUy1lODIwOiBb
bWVtIDB4MDAwMDAwMDAwMDEwMDAwMC0weDAwMDAwMDAwMDliZmVmZmZdIHVzYWJsZQ0KWyAg
ICAwLjAwMDAwMF0gQklPUy1lODIwOiBbbWVtIDB4MDAwMDAwMDAwOWJmZjAwMC0weDAwMDAw
MDAwMDlmZmZmZmZdIHJlc2VydmVkDQpbICAgIDAuMDAwMDAwXSBCSU9TLWU4MjA6IFttZW0g
MHgwMDAwMDAwMDBhMDAwMDAwLTB4MDAwMDAwMDAwYTFmZmZmZl0gdXNhYmxlDQpbICAgIDAu
MDAwMDAwXSBCSU9TLWU4MjA6IFttZW0gMHgwMDAwMDAwMDBhMjAwMDAwLTB4MDAwMDAwMDAw
YTIwY2ZmZl0gQUNQSSBOVlMNClsgICAgMC4wMDAwMDBdIEJJT1MtZTgyMDogW21lbSAweDAw
MDAwMDAwMGEyMGQwMDAtMHgwMDAwMDAwMGNhYmM4ZmZmXSB1c2FibGUNClsgICAgMC4wMDAw
MDBdIEJJT1MtZTgyMDogW21lbSAweDAwMDAwMDAwY2FiYzkwMDAtMHgwMDAwMDAwMGNjMTRj
ZmZmXSByZXNlcnZlZA0KWyAgICAwLjAwMDAwMF0gQklPUy1lODIwOiBbbWVtIDB4MDAwMDAw
MDBjYzE0ZDAwMC0weDAwMDAwMDAwY2MxOTVmZmZdIEFDUEkgZGF0YQ0KWyAgICAwLjAwMDAw
MF0gQklPUy1lODIwOiBbbWVtIDB4MDAwMDAwMDBjYzE5NjAwMC0weDAwMDAwMDAwY2MzODhm
ZmZdIEFDUEkgTlZTDQpbICAgIDAuMDAwMDAwXSBCSU9TLWU4MjA6IFttZW0gMHgwMDAwMDAw
MGNjMzg5MDAwLTB4MDAwMDAwMDBjYzM4OWZmZl0gcmVzZXJ2ZWQNClsgICAgMC4wMDAwMDBd
IEJJT1MtZTgyMDogW21lbSAweDAwMDAwMDAwY2MzOGEwMDAtMHgwMDAwMDAwMGNjNzA5ZmZm
XSBBQ1BJIE5WUw0KWyAgICAwLjAwMDAwMF0gQklPUy1lODIwOiBbbWVtIDB4MDAwMDAwMDBj
YzcwYTAwMC0weDAwMDAwMDAwY2QxZmVmZmZdIHJlc2VydmVkDQpbICAgIDAuMDAwMDAwXSBC
SU9TLWU4MjA6IFttZW0gMHgwMDAwMDAwMGNkMWZmMDAwLTB4MDAwMDAwMDBjZGZmZmVhN10g
dXNhYmxlDQpbICAgIDAuMDAwMDAwXSBCSU9TLWU4MjA6IFttZW0gMHgwMDAwMDAwMGNkZmZm
ZWE4LTB4MDAwMDAwMDBjZGZmZmYzZl0gQUNQSSBkYXRhDQpbICAgIDAuMDAwMDAwXSBCSU9T
LWU4MjA6IFttZW0gMHgwMDAwMDAwMGNlMDAwMDAwLTB4MDAwMDAwMDBjZmZmZmZmZl0gcmVz
ZXJ2ZWQNClsgICAgMC4wMDAwMDBdIEJJT1MtZTgyMDogW21lbSAweDAwMDAwMDAwZjAwMDAw
MDAtMHgwMDAwMDAwMGY3ZmZmZmZmXSByZXNlcnZlZA0KWyAgICAwLjAwMDAwMF0gQklPUy1l
ODIwOiBbbWVtIDB4MDAwMDAwMDBmZDAwMDAwMC0weDAwMDAwMDAwZmZmZmZmZmZdIHJlc2Vy
dmVkDQpbICAgIDAuMDAwMDAwXSBCSU9TLWU4MjA6IFttZW0gMHgwMDAwMDAwMTAwMDAwMDAw
LTB4MDAwMDAwMDgwZjMzZmZmZl0gdXNhYmxlDQpbICAgIDAuMDAwMDAwXSBCSU9TLWU4MjA6
IFttZW0gMHgwMDAwMDAwODBmMzQwMDAwLTB4MDAwMDAwMDg1MDFmZmZmZl0gcmVzZXJ2ZWQN
ClsgICAgMC4wMDAwMDBdIHByaW50azogbGVnYWN5IGJvb3Rjb25zb2xlIFt4ZW5ib290MF0g
ZW5hYmxlZA0KWyAgICAwLjAwMDAwMF0gTlggKEV4ZWN1dGUgRGlzYWJsZSkgcHJvdGVjdGlv
bjogYWN0aXZlDQpbICAgIDAuMDAwMDAwXSBBUElDOiBTdGF0aWMgY2FsbHMgaW5pdGlhbGl6
ZWQNClsgICAgMC4wMDAwMDBdIGVmaTogRUZJIHYyLjcgYnkgQW1lcmljYW4gTWVnYXRyZW5k
cw0KWyAgICAwLjAwMDAwMF0gZWZpOiBBQ1BJPTB4Y2M2ZjMwMDAgQUNQSSAyLjA9MHhjYzZm
MzAxNCBUUE1GaW5hbExvZz0weGNjNmMyMDAwIFNNQklPUz0weGNjZmQ2MDAwIFNNQklPUyAz
LjA9MHhjY2ZkNTAwMCAoTUVNQVRUUj0weGM3YTRiNTE4IHVudXNhYmxlKSBFU1JUPTB4Y2Mx
NWEwMTgNClsgICAgMC4wMDAwMDBdIFNNQklPUyAzLjIuMCBwcmVzZW50Lg0KWyAgICAwLjAw
MDAwMF0gRE1JOiAgLzdENzg1IC8gN0Q3ODYsIEJJT1MgNS4xNiAwMi8yNC8yMDI1DQpbICAg
IDAuMDAwMDAwXSBETUk6IE1lbW9yeSBzbG90cyBwb3B1bGF0ZWQ6IDIvMg0KWyAgICAwLjAw
MDAwMF0gSHlwZXJ2aXNvciBkZXRlY3RlZDogWGVuIEhWTQ0KWyAgICAwLjAwMDAwMF0gWGVu
IHZlcnNpb24gNC4yMS4NClsgICAgMC4wNDU2NDZdIHRzYzogRmFzdCBUU0MgY2FsaWJyYXRp
b24gZmFpbGVkDQpbICAgIDAuMDUzODIzXSB0c2M6IERldGVjdGVkIDI4OTQuNTY2IE1IeiBw
cm9jZXNzb3INClsgICAgMC4wNjMxNDhdIGxhc3RfcGZuID0gMHg4MGYzNDAgbWF4X2FyY2hf
cGZuID0gMHg0MDAwMDAwMDANClsgICAgMC4wNzM5ODJdIE1UUlIgbWFwOiA0IGVudHJpZXMg
KDMgZml4ZWQgKyAxIHZhcmlhYmxlOyBtYXggMjApLCBidWlsdCBmcm9tIDkgdmFyaWFibGUg
TVRSUnMNClsgICAgMC4wOTA1NjhdIHg4Ni9QQVQ6IENvbmZpZ3VyYXRpb24gWzAtN106IFdC
ICBXQyAgVUMtIFVDICBXQiAgV1AgIFVDLSBXVA0KWyAgICAwLjEwNTAwM10gQ1BVIE1UUlJz
IGFsbCBibGFuayAtIHZpcnR1YWxpemVkIHN5c3RlbS4NClsgICAgMC4xMTQ3NTJdIGxhc3Rf
cGZuID0gMHhjZGZmZiBtYXhfYXJjaF9wZm4gPSAweDQwMDAwMDAwMA0KWyAgICAwLjEyODk5
OV0gZXNydDogUmVzZXJ2aW5nIEVTUlQgc3BhY2UgZnJvbSAweDAwMDAwMDAwY2MxNWEwMTgg
dG8gMHgwMDAwMDAwMGNjMTVhMDUwLg0KWyAgICAwLjE0NDI4Nl0gVXNpbmcgR0IgcGFnZXMg
Zm9yIGRpcmVjdCBtYXBwaW5nDQpbICAgIDAuMTUzNzA0XSBTZWN1cmUgYm9vdCBkaXNhYmxl
ZA0KWyAgICAwLjE1OTgwOV0gUkFNRElTSzogW21lbSAweDBhMjBkMDAwLTB4MzYxOGVmZmZd
DQpbICAgIDAuMTY5OTE2XSBBQ1BJOiBFYXJseSB0YWJsZSBjaGVja3N1bSB2ZXJpZmljYXRp
b24gZGlzYWJsZWQNClsgICAgMC4xODA4NzFdIEFDUEk6IFJTRFAgMHgwMDAwMDAwMENERkZG
RUE4IDAwMDAyNCAodjAyIEFMQVNLQSkNClsgICAgMC4xOTIzMDhdIEFDUEk6IFhTRFQgMHgw
MDAwMDAwMENERkZGRUNDIDAwMDA5QyAodjAxIEFMQVNLQSBBIE0gSSAgICAwMTA3MjAwOSBB
TUkgIDAxMDAwMDEzKQ0KWyAgICAwLjIwOTI5N10gQUNQSTogQVBJQyAweDAwMDAwMDAwQ0RG
RkZGNjggMDAwMDk4ICh2MDMgQUxBU0tBIEEgTSBJICAgIDAxMDcyMDA5IEFNSSAgMDAwMTAw
MTMpDQpbICAgIDAuMjI2MjgwXSBBQ1BJOiBGQUNQIDB4MDAwMDAwMDBDQzE4QzAwMCAwMDAx
MTQgKHYwNiBBTEFTS0EgQSBNIEkgICAgMDEwNzIwMDkgQU1JICAwMDAxMDAxMykNClsgICAg
MC4yNDMzMDhdIEFDUEk6IERTRFQgMHgwMDAwMDAwMENDMTgzMDAwIDAwODc2RCAodjAyIEFM
QVNLQSBBIE0gSSAgICAwMTA3MjAwOSBJTlRMIDIwMTIwOTEzKQ0KWyAgICAwLjI2MDI1Ml0g
QUNQSTogRkFDUyAweDAwMDAwMDAwQ0M2QzAwMDAgMDAwMDQwDQpbICAgIDAuMjY5NDQwXSBB
Q1BJOiBTU0RUIDB4MDAwMDAwMDBDQzE4RTAwMCAwMDcyM0MgKHYwMiBBTUQgICAgQW1kVGFi
bGUgMDAwMDAwMDIgTVNGVCAwNDAwMDAwMCkNClsgICAgMC4yODY0MzFdIEFDUEk6IE1DRkcg
MHgwMDAwMDAwMENDMTgxMDAwIDAwMDAzQyAodjAxIEFMQVNLQSBBIE0gSSAgICAwMTA3MjAw
OSBNU0ZUIDAwMDEwMDEzKQ0KWyAgICAwLjMwMzQxN10gQUNQSTogU1NEVCAweDAwMDAwMDAw
Q0MxN0YwMDAgMDAwMjI4ICh2MDEgQU1EICAgIFNURDMgICAgIDAwMDAwMDAxIElOVEwgMjAx
MjA5MTMpDQpbICAgIDAuMzIwNDAzXSBBQ1BJOiBWRkNUIDB4MDAwMDAwMDBDQzE3MTAwMCAw
MEQ2ODQgKHYwMSBBTEFTS0EgQSBNIEkgICAgMDAwMDAwMDEgQU1EICAzMTUwNEY0NykNClsg
ICAgMC4zMzczOTFdIEFDUEk6IFNTRFQgMHgwMDAwMDAwMENDMTZCMDAwIDAwMzlGNCAodjAx
IEFNRCAgICBBbWRUYWJsZSAwMDAwMDAwMSBBTUQgIDAwMDAwMDAxKQ0KWyAgICAwLjM1NDM3
Nl0gQUNQSTogU1NEVCAweDAwMDAwMDAwQ0MxNjgwMDAgMDAwMTM5ICh2MDEgQU1EICAgIEFt
ZFRhYmxlIDAwMDAwMDAxIElOVEwgMjAxMjA5MTMpDQpbICAgIDAuMzcxMzY1XSBBQ1BJOiBT
U0RUIDB4MDAwMDAwMDBDQzE2NzAwMCAwMDAyMjcgKHYwMSBBTUQgICAgQW1kVGFibGUgMDAw
MDAwMDEgSU5UTCAyMDEyMDkxMykNClsgICAgMC4zODgzNTFdIEFDUEk6IFNTRFQgMHgwMDAw
MDAwMENDMTY2MDAwIDAwMEQzNyAodjAxIEFNRCAgICBBbWRUYWJsZSAwMDAwMDAwMSBJTlRM
IDIwMTIwOTEzKQ0KWyAgICAwLjQwNTMzNl0gQUNQSTogU1NEVCAweDAwMDAwMDAwQ0MxNjQw
MDAgMDAxMEE1ICh2MDEgQU1EICAgIEFtZFRhYmxlIDAwMDAwMDAxIElOVEwgMjAxMjA5MTMp
DQpbICAgIDAuNDIyMzIzXSBBQ1BJOiBTU0RUIDB4MDAwMDAwMDBDQzE2MDAwMCAwMDMwQzgg
KHYwMSBBTUQgICAgQW1kVGFibGUgMDAwMDAwMDEgSU5UTCAyMDEyMDkxMykNClsgICAgMC40
MzkzMTJdIEFDUEk6IFNTRFQgMHgwMDAwMDAwMENDMTVEMDAwIDAwMDA3RCAodjAxIEFNRCAg
ICBBbWRUYWJsZSAwMDAwMDAwMSBJTlRMIDIwMTIwOTEzKQ0KWyAgICAwLjQ1NjI5Ml0gQUNQ
STogU1NEVCAweDAwMDAwMDAwQ0MxNUMwMDAgMDAwNTE3ICh2MDEgQU1EICAgIEFtZFRhYmxl
IDAwMDAwMDAxIElOVEwgMjAxMjA5MTMpDQpbICAgIDAuNDczMjc5XSBBQ1BJOiBGUERUIDB4
MDAwMDAwMDBDQzE1QjAwMCAwMDAwNDQgKHYwMSBBTEFTS0EgQSBNIEkgICAgMDEwNzIwMDkg
QU1JICAwMTAwMDAxMykNClsgICAgMC40OTAyNjZdIEFDUEk6IFJlc2VydmluZyBBUElDIHRh
YmxlIG1lbW9yeSBhdCBbbWVtIDB4Y2RmZmZmNjgtMHhjZGZmZmZmZl0NClsgICAgMC41MDQz
MDNdIEFDUEk6IFJlc2VydmluZyBGQUNQIHRhYmxlIG1lbW9yeSBhdCBbbWVtIDB4Y2MxOGMw
MDAtMHhjYzE4YzExM10NClsgICAgMC41MTgzNDNdIEFDUEk6IFJlc2VydmluZyBEU0RUIHRh
YmxlIG1lbW9yeSBhdCBbbWVtIDB4Y2MxODMwMDAtMHhjYzE4Yjc2Y10NClsgICAgMC41MzIz
ODNdIEFDUEk6IFJlc2VydmluZyBGQUNTIHRhYmxlIG1lbW9yeSBhdCBbbWVtIDB4Y2M2YzAw
MDAtMHhjYzZjMDAzZl0NClsgICAgMC41NDY0MjNdIEFDUEk6IFJlc2VydmluZyBTU0RUIHRh
YmxlIG1lbW9yeSBhdCBbbWVtIDB4Y2MxOGUwMDAtMHhjYzE5NTIzYl0NClsgICAgMC41NjA0
NjZdIEFDUEk6IFJlc2VydmluZyBNQ0ZHIHRhYmxlIG1lbW9yeSBhdCBbbWVtIDB4Y2MxODEw
MDAtMHhjYzE4MTAzYl0NClsgICAgMC41NzQ1MDZdIEFDUEk6IFJlc2VydmluZyBTU0RUIHRh
YmxlIG1lbW9yeSBhdCBbbWVtIDB4Y2MxN2YwMDAtMHhjYzE3ZjIyN10NClsgICAgMC41ODg1
NDVdIEFDUEk6IFJlc2VydmluZyBWRkNUIHRhYmxlIG1lbW9yeSBhdCBbbWVtIDB4Y2MxNzEw
MDAtMHhjYzE3ZTY4M10NClsgICAgMC42MDI1ODNdIEFDUEk6IFJlc2VydmluZyBTU0RUIHRh
YmxlIG1lbW9yeSBhdCBbbWVtIDB4Y2MxNmIwMDAtMHhjYzE2ZTlmM10NClsgICAgMC42MTY2
MjNdIEFDUEk6IFJlc2VydmluZyBTU0RUIHRhYmxlIG1lbW9yeSBhdCBbbWVtIDB4Y2MxNjgw
MDAtMHhjYzE2ODEzOF0NClsgICAgMC42MzA2NjZdIEFDUEk6IFJlc2VydmluZyBTU0RUIHRh
YmxlIG1lbW9yeSBhdCBbbWVtIDB4Y2MxNjcwMDAtMHhjYzE2NzIyNl0NClsgICAgMC42NDQ3
MDVdIEFDUEk6IFJlc2VydmluZyBTU0RUIHRhYmxlIG1lbW9yeSBhdCBbbWVtIDB4Y2MxNjYw
MDAtMHhjYzE2NmQzNl0NClsgICAgMC42NTg3NDddIEFDUEk6IFJlc2VydmluZyBTU0RUIHRh
YmxlIG1lbW9yeSBhdCBbbWVtIDB4Y2MxNjQwMDAtMHhjYzE2NTBhNF0NClsgICAgMC42NzI3
ODZdIEFDUEk6IFJlc2VydmluZyBTU0RUIHRhYmxlIG1lbW9yeSBhdCBbbWVtIDB4Y2MxNjAw
MDAtMHhjYzE2MzBjN10NClsgICAgMC42ODY4MjNdIEFDUEk6IFJlc2VydmluZyBTU0RUIHRh
YmxlIG1lbW9yeSBhdCBbbWVtIDB4Y2MxNWQwMDAtMHhjYzE1ZDA3Y10NClsgICAgMC43MDA4
NjhdIEFDUEk6IFJlc2VydmluZyBTU0RUIHRhYmxlIG1lbW9yeSBhdCBbbWVtIDB4Y2MxNWMw
MDAtMHhjYzE1YzUxNl0NClsgICAgMC43MTQ5MDRdIEFDUEk6IFJlc2VydmluZyBGUERUIHRh
YmxlIG1lbW9yeSBhdCBbbWVtIDB4Y2MxNWIwMDAtMHhjYzE1YjA0M10NClsgICAgMC43Mjkw
ODhdIE5vIE5VTUEgY29uZmlndXJhdGlvbiBmb3VuZA0KWyAgICAwLjczNjU3M10gRmFraW5n
IGEgbm9kZSBhdCBbbWVtIDB4MDAwMDAwMDAwMDAwMDAwMC0weDAwMDAwMDA4MGYzM2ZmZmZd
DQpbICAgIDAuNzQ5OTIwXSBOT0RFX0RBVEEoMCkgYWxsb2NhdGVkIFttZW0gMHgxMzRhOWYw
MDAtMHgxMzRhYTJmZmZdDQpbICAgIDAuNzYxOTEyXSBab25lIHJhbmdlczoNClsgICAgMC43
NjY5MDNdICAgRE1BICAgICAgW21lbSAweDAwMDAwMDAwMDAwMDEwMDAtMHgwMDAwMDAwMDAw
ZmZmZmZmXQ0KWyAgICAwLjc3OTIwOV0gICBETUEzMiAgICBbbWVtIDB4MDAwMDAwMDAwMTAw
MDAwMC0weDAwMDAwMDAwZmZmZmZmZmZdDQpbICAgIDAuNzkxODIzXSAgIE5vcm1hbCAgIFtt
ZW0gMHgwMDAwMDAwMTAwMDAwMDAwLTB4MDAwMDAwMDgwZjMzZmZmZl0NClsgICAgMC44MDM4
MjRdIE1vdmFibGUgem9uZSBzdGFydCBmb3IgZWFjaCBub2RlDQpbICAgIDAuODEyMzIxXSBF
YXJseSBtZW1vcnkgbm9kZSByYW5nZXMNClsgICAgMC44MTk0MjddICAgbm9kZSAgIDA6IFtt
ZW0gMHgwMDAwMDAwMDAwMDAxMDAwLTB4MDAwMDAwMDAwMDA5ZmZmZl0NClsgICAgMC44MzE5
MDVdICAgbm9kZSAgIDA6IFttZW0gMHgwMDAwMDAwMDAwMTAwMDAwLTB4MDAwMDAwMDAwOWJm
ZWZmZl0NClsgICAgMC44NDQzODZdICAgbm9kZSAgIDA6IFttZW0gMHgwMDAwMDAwMDBhMDAw
MDAwLTB4MDAwMDAwMDAwYTFmZmZmZl0NClsgICAgMC44NTY4NjZdICAgbm9kZSAgIDA6IFtt
ZW0gMHgwMDAwMDAwMDBhMjBkMDAwLTB4MDAwMDAwMDBjYWJjOGZmZl0NClsgICAgMC44Njkz
NDRdICAgbm9kZSAgIDA6IFttZW0gMHgwMDAwMDAwMGNkMWZmMDAwLTB4MDAwMDAwMDBjZGZm
ZWZmZl0NClsgICAgMC44ODE4MjJdICAgbm9kZSAgIDA6IFttZW0gMHgwMDAwMDAwMTAwMDAw
MDAwLTB4MDAwMDAwMDgwZjMzZmZmZl0NClsgICAgMC44OTQzMDhdIEluaXRtZW0gc2V0dXAg
bm9kZSAwIFttZW0gMHgwMDAwMDAwMDAwMDAxMDAwLTB4MDAwMDAwMDgwZjMzZmZmZl0NClsg
ICAgMC45MDgzNDZdIE9uIG5vZGUgMCwgem9uZSBETUE6IDEgcGFnZXMgaW4gdW5hdmFpbGFi
bGUgcmFuZ2VzDQpbICAgIDAuOTE5OTcyXSBPbiBub2RlIDAsIHpvbmUgRE1BOiA5NiBwYWdl
cyBpbiB1bmF2YWlsYWJsZSByYW5nZXMNClsgICAgMC45MzE4NzBdIE9uIG5vZGUgMCwgem9u
ZSBETUEzMjogMTAyNSBwYWdlcyBpbiB1bmF2YWlsYWJsZSByYW5nZXMNClsgICAgMC45NDg4
MzddIE9uIG5vZGUgMCwgem9uZSBETUEzMjogMTMgcGFnZXMgaW4gdW5hdmFpbGFibGUgcmFu
Z2VzDQpbICAgIDAuOTYwNzY3XSBPbiBub2RlIDAsIHpvbmUgRE1BMzI6IDk3ODIgcGFnZXMg
aW4gdW5hdmFpbGFibGUgcmFuZ2VzDQpbICAgIDEuMDE2OTYxXSBPbiBub2RlIDAsIHpvbmUg
Tm9ybWFsOiA4MTkzIHBhZ2VzIGluIHVuYXZhaWxhYmxlIHJhbmdlcw0KWyAgICAxLjAyOTM0
Ml0gT24gbm9kZSAwLCB6b25lIE5vcm1hbDogMzI2NCBwYWdlcyBpbiB1bmF2YWlsYWJsZSBy
YW5nZXMNClsgICAgMS4wNDI0MDBdIEFDUEk6IFBNLVRpbWVyIElPIFBvcnQ6IDB4ODA4DQpb
ICAgIDEuMDUwMTE3XSBJT0FQSUNbMF06IGFwaWNfaWQgMTcsIHZlcnNpb24gMTcsIGFkZHJl
c3MgMHhmZWMwMDAwMCwgR1NJIDAtMjMNClsgICAgMS4wNjM5NjNdIElPQVBJQ1sxXTogYXBp
Y19pZCAxOCwgdmVyc2lvbiAxNywgYWRkcmVzcyAweGZlYzAxMDAwLCBHU0kgMjQtNTUNClsg
ICAgMS4wNzc5NzJdIEFDUEk6IElOVF9TUkNfT1ZSIChidXMgMCBidXNfaXJxIDAgZ2xvYmFs
X2lycSAyIGRmbCBkZmwpDQpbICAgIDEuMDkwNjI1XSBBQ1BJOiBJTlRfU1JDX09WUiAoYnVz
IDAgYnVzX2lycSA5IGdsb2JhbF9pcnEgOSBsb3cgbGV2ZWwpDQpbICAgIDEuMTAzNjI0XSBB
Q1BJOiBVc2luZyBBQ1BJIChNQURUKSBmb3IgU01QIGNvbmZpZ3VyYXRpb24gaW5mb3JtYXRp
b24NClsgICAgMS4xMTY0NTVdIENQVSB0b3BvOiBNYXguIGxvZ2ljYWwgcGFja2FnZXM6ICAg
MQ0KWyAgICAxLjEyNTYzNF0gQ1BVIHRvcG86IE1heC4gbG9naWNhbCBkaWVzOiAgICAgICAx
DQpbICAgIDEuMTM0ODIyXSBDUFUgdG9wbzogTWF4LiBkaWVzIHBlciBwYWNrYWdlOiAgIDEN
ClsgICAgMS4xNDQwMTVdIENQVSB0b3BvOiBNYXguIHRocmVhZHMgcGVyIGNvcmU6ICAgMQ0K
WyAgICAxLjE1MzE5NF0gQ1BVIHRvcG86IE51bS4gY29yZXMgcGVyIHBhY2thZ2U6ICAgICA0
DQpbICAgIDEuMTYyOTAzXSBDUFUgdG9wbzogTnVtLiB0aHJlYWRzIHBlciBwYWNrYWdlOiAg
IDQNClsgICAgMS4xNzI2MDldIENQVSB0b3BvOiBBbGxvd2luZyA0IHByZXNlbnQgQ1BVcyBw
bHVzIDAgaG90cGx1ZyBDUFVzDQpbICAgIDEuMTg0NzUyXSBQTTogaGliZXJuYXRpb246IFJl
Z2lzdGVyZWQgbm9zYXZlIG1lbW9yeTogW21lbSAweDAwMDAwMDAwLTB4MDAwMDBmZmZdDQpb
ICAgIDEuMTk5ODI1XSBQTTogaGliZXJuYXRpb246IFJlZ2lzdGVyZWQgbm9zYXZlIG1lbW9y
eTogW21lbSAweDAwMGEwMDAwLTB4MDAwZmZmZmZdDQpbICAgIDEuMjE0OTA0XSBQTTogaGli
ZXJuYXRpb246IFJlZ2lzdGVyZWQgbm9zYXZlIG1lbW9yeTogW21lbSAweDA5YmZmMDAwLTB4
MDlmZmZmZmZdDQpbICAgIDEuMjI5OTg0XSBQTTogaGliZXJuYXRpb246IFJlZ2lzdGVyZWQg
bm9zYXZlIG1lbW9yeTogW21lbSAweDBhMjAwMDAwLTB4MGEyMGNmZmZdDQpbICAgIDEuMjQ1
MDYyXSBQTTogaGliZXJuYXRpb246IFJlZ2lzdGVyZWQgbm9zYXZlIG1lbW9yeTogW21lbSAw
eGNhYmM5MDAwLTB4Y2MxNGNmZmZdDQpbICAgIDEuMjYwMTM5XSBQTTogaGliZXJuYXRpb246
IFJlZ2lzdGVyZWQgbm9zYXZlIG1lbW9yeTogW21lbSAweGNjMTRkMDAwLTB4Y2MxOTVmZmZd
DQpbICAgIDEuMjc1MjE5XSBQTTogaGliZXJuYXRpb246IFJlZ2lzdGVyZWQgbm9zYXZlIG1l
bW9yeTogW21lbSAweGNjMTk2MDAwLTB4Y2MzODhmZmZdDQpbICAgIDEuMjkwMjk5XSBQTTog
aGliZXJuYXRpb246IFJlZ2lzdGVyZWQgbm9zYXZlIG1lbW9yeTogW21lbSAweGNjMzg5MDAw
LTB4Y2MzODlmZmZdDQpbICAgIDEuMzA1MzgwXSBQTTogaGliZXJuYXRpb246IFJlZ2lzdGVy
ZWQgbm9zYXZlIG1lbW9yeTogW21lbSAweGNjMzhhMDAwLTB4Y2M3MDlmZmZdDQpbICAgIDEu
MzIwNDU5XSBQTTogaGliZXJuYXRpb246IFJlZ2lzdGVyZWQgbm9zYXZlIG1lbW9yeTogW21l
bSAweGNjNzBhMDAwLTB4Y2QxZmVmZmZdDQpbICAgIDEuMzM1NTQwXSBQTTogaGliZXJuYXRp
b246IFJlZ2lzdGVyZWQgbm9zYXZlIG1lbW9yeTogW21lbSAweGNkZmZmMDAwLTB4Y2RmZmZm
ZmZdDQpbICAgIDEuMzUwNjIzXSBQTTogaGliZXJuYXRpb246IFJlZ2lzdGVyZWQgbm9zYXZl
IG1lbW9yeTogW21lbSAweGNkZmZmMDAwLTB4Y2RmZmZmZmZdDQpbICAgIDEuMzY1NzAyXSBQ
TTogaGliZXJuYXRpb246IFJlZ2lzdGVyZWQgbm9zYXZlIG1lbW9yeTogW21lbSAweGNlMDAw
MDAwLTB4Y2ZmZmZmZmZdDQpbICAgIDEuMzgwNzc5XSBQTTogaGliZXJuYXRpb246IFJlZ2lz
dGVyZWQgbm9zYXZlIG1lbW9yeTogW21lbSAweGQwMDAwMDAwLTB4ZWZmZmZmZmZdDQpbICAg
IDEuMzk1ODYyXSBQTTogaGliZXJuYXRpb246IFJlZ2lzdGVyZWQgbm9zYXZlIG1lbW9yeTog
W21lbSAweGYwMDAwMDAwLTB4ZjdmZmZmZmZdDQpbICAgIDEuNDEwOTQxXSBQTTogaGliZXJu
YXRpb246IFJlZ2lzdGVyZWQgbm9zYXZlIG1lbW9yeTogW21lbSAweGY4MDAwMDAwLTB4ZmNm
ZmZmZmZdDQpbICAgIDEuNDI2MDIyXSBQTTogaGliZXJuYXRpb246IFJlZ2lzdGVyZWQgbm9z
YXZlIG1lbW9yeTogW21lbSAweGZkMDAwMDAwLTB4ZmZmZmZmZmZdDQpbICAgIDEuNDQxMTA1
XSBbbWVtIDB4ZDAwMDAwMDAtMHhlZmZmZmZmZl0gYXZhaWxhYmxlIGZvciBQQ0kgZGV2aWNl
cw0KWyAgICAxLjQ1MzI0Ml0gQm9vdGluZyBrZXJuZWwgb24gWGVuIFBWSA0KWyAgICAxLjQ2
MDUxNF0gWGVuIHZlcnNpb246IDQuMjEtdW5zdGFibGUNClsgICAgMS40Njc5NzFdIGNsb2Nr
c291cmNlOiByZWZpbmVkLWppZmZpZXM6IG1hc2s6IDB4ZmZmZmZmZmYgbWF4X2N5Y2xlczog
MHhmZmZmZmZmZiwgbWF4X2lkbGVfbnM6IDE5MTA5Njk5NDAzOTE0MTkgbnMNClsgICAgMS40
OTMyMDJdIHNldHVwX3BlcmNwdTogTlJfQ1BVUzo2NCBucl9jcHVtYXNrX2JpdHM6NCBucl9j
cHVfaWRzOjQgbnJfbm9kZV9pZHM6MQ0KWyAgICAxLjUwODAxNV0gcGVyY3B1OiBFbWJlZGRl
ZCA1NyBwYWdlcy9jcHUgczE5NjMxMiByODE5MiBkMjg5NjggdTUyNDI4OA0KWyAgICAxLjUy
MDgzNF0gS2VybmVsIGNvbW1hbmQgbGluZTogY29uc29sZT1odmMwIHJvb3Q9L2Rldi9yYW0w
IGVhcmx5cHJpbnRrPXhlbiByZGluaXQ9L2Jpbi9zaA0KWyAgICAxLjUzNzUwM10gcmFuZG9t
OiBjcm5nIGluaXQgZG9uZQ0KWyAgICAxLjU0NDUyNF0gRGVudHJ5IGNhY2hlIGhhc2ggdGFi
bGUgZW50cmllczogNTI0Mjg4IChvcmRlcjogMTAsIDQxOTQzMDQgYnl0ZXMsIGxpbmVhcikN
ClsgICAgMS41NjAxNzldIElub2RlLWNhY2hlIGhhc2ggdGFibGUgZW50cmllczogMjYyMTQ0
IChvcmRlcjogOSwgMjA5NzE1MiBieXRlcywgbGluZWFyKQ0KWyAgICAxLjU3NTQ0OF0gRmFs
bGJhY2sgb3JkZXIgZm9yIE5vZGUgMDogMA0KWyAgICAxLjU3NTQ1MV0gQnVpbHQgMSB6b25l
bGlzdHMsIG1vYmlsaXR5IGdyb3VwaW5nIG9uLiAgVG90YWwgcGFnZXM6IDgyMzUxNjINClsg
ICAgMS41OTcwODVdIFBvbGljeSB6b25lOiBOb3JtYWwNClsgICAgMS42MDMzMjVdIG1lbSBh
dXRvLWluaXQ6IHN0YWNrOm9mZiwgaGVhcCBhbGxvYzpvZmYsIGhlYXAgZnJlZTpvZmYNClsg
ICAgMS42MTU4MDhdIHNvZnR3YXJlIElPIFRMQjogYXJlYSBudW0gNC4NClsgICAgMS43MDE0
MDddIFNMVUI6IEhXYWxpZ249NjQsIE9yZGVyPTAtMywgTWluT2JqZWN0cz0wLCBDUFVzPTQs
IE5vZGVzPTENClBva2luZyBLQVNMUiB1c2luZyBSRFJBTkQgUkRUU0MuLi4NClsgICAgMS43
MjEzNzVdIER5bmFtaWMgUHJlZW1wdDogdm9sdW50YXJ5DQpbICAgIDEuNzI4NTMzXSByY3U6
IFByZWVtcHRpYmxlIGhpZXJhcmNoaWNhbCBSQ1UgaW1wbGVtZW50YXRpb24uDQpbICAgIDEu
NzM5OTU2XSByY3U6ICAgICBSQ1UgZXZlbnQgdHJhY2luZyBpcyBlbmFibGVkLg0KWyAgICAx
Ljc0ODk2NV0gcmN1OiAgICAgUkNVIHJlc3RyaWN0aW5nIENQVXMgZnJvbSBOUl9DUFVTPTY0
IHRvIG5yX2NwdV9pZHM9NC4NClsgICAgMS43NjIxNDBdICBUcmFtcG9saW5lIHZhcmlhbnQg
b2YgVGFza3MgUkNVIGVuYWJsZWQuDQpbICAgIDEuNzcyMTkzXSByY3U6IFJDVSBjYWxjdWxh
dGVkIHZhbHVlIG9mIHNjaGVkdWxlci1lbmxpc3RtZW50IGRlbGF5IGlzIDEwMCBqaWZmaWVz
Lg0KWyAgICAxLjc4NzQ0NF0gcmN1OiBBZGp1c3RpbmcgZ2VvbWV0cnkgZm9yIHJjdV9mYW5v
dXRfbGVhZj0xNiwgbnJfY3B1X2lkcz00DQpbICAgIDEuODAxMzI2XSBSQ1UgVGFza3M6IFNl
dHRpbmcgc2hpZnQgdG8gMiBhbmQgbGltIHRvIDEgcmN1X3Rhc2tfY2JfYWRqdXN0PTEuDQpb
ICAgIDEuODE2MzE1XSBVc2luZyBOVUxMIGxlZ2FjeSBQSUMNClsgICAgMS44MjI1ODddIE5S
X0lSUVM6IDQzNTIsIG5yX2lycXM6IDEwMDAsIHByZWFsbG9jYXRlZCBpcnFzOiAwDQpbICAg
IDEuODM0MjI1XSB4ZW46ZXZlbnRzOiBVc2luZyBGSUZPLWJhc2VkIEFCSQ0KKFhFTikgWyAg
IDE1LjAxMDIzMl0gZDB2MDogdXBjYWxsIHZlY3RvciBmMw0KWyAgICAxLjg1MDUwMF0geGVu
OmV2ZW50czogWGVuIEhWTSBjYWxsYmFjayB2ZWN0b3IgZm9yIGV2ZW50IGRlbGl2ZXJ5IGlz
IGVuYWJsZWQNClsgICAgMS44NjQ3NDBdIHJjdTogc3JjdV9pbml0OiBTZXR0aW5nIHNyY3Vf
c3RydWN0IHNpemVzIGJhc2VkIG9uIGNvbnRlbnRpb24uDQpbICAgIDEuODc4NDQ0XSBDb25z
b2xlOiBjb2xvdXIgZHVtbXkgZGV2aWNlIDgweDI1DQpbICAgIDEuODg3MjQyXSBwcmludGs6
IGxlZ2FjeSBjb25zb2xlIFt0dHkwXSBlbmFibGVkDQpbICAgIDEuODk2ODA1XSBwcmludGs6
IGxlZ2FjeSBjb25zb2xlIFtodmMwXSBlbmFibGVkDQpbICAgIDEuODk2ODA1XSBwcmludGs6
IGxlZ2FjeSBjb25zb2xlIFtodmMwXSBlbmFibGVkDQpbICAgIDEuOTE1NTAwXSBwcmludGs6
IGxlZ2FjeSBib290Y29uc29sZSBbeGVuYm9vdDBdIGRpc2FibGVkDQpbICAgIDEuOTE1NTAw
XSBwcmludGs6IGxlZ2FjeSBib290Y29uc29sZSBbeGVuYm9vdDBdIGRpc2FibGVkDQpbICAg
IDEuOTM3NTE5XSBBQ1BJOiBDb3JlIHJldmlzaW9uIDIwMjQwMzIyDQpbICAgIDEuOTY0MDUw
XSBGYWlsZWQgdG8gcmVnaXN0ZXIgbGVnYWN5IHRpbWVyIGludGVycnVwdA0KWyAgICAxLjk3
Mzk2MF0gQVBJQzogU3dpdGNoIHRvIHN5bW1ldHJpYyBJL08gbW9kZSBzZXR1cA0KWyAgICAx
Ljk4NDc2MF0geDJhcGljIGVuYWJsZWQNClsgICAgMS45OTA4NjddIEFQSUM6IFN3aXRjaGVk
IEFQSUMgcm91dGluZyB0bzogcGh5c2ljYWwgeDJhcGljDQpbICAgIDIuMDAxOTA4XSBjbG9j
a3NvdXJjZTogdHNjLWVhcmx5OiBtYXNrOiAweGZmZmZmZmZmZmZmZmZmZmYgbWF4X2N5Y2xl
czogMHgyOWI5MzVjNTQwZCwgbWF4X2lkbGVfbnM6IDQ0MDc5NTMzNzYxNCBucw0KWyAgICAy
LjAyMjk2OF0gQ2FsaWJyYXRpbmcgZGVsYXkgbG9vcCAoc2tpcHBlZCksIHZhbHVlIGNhbGN1
bGF0ZWQgdXNpbmcgdGltZXIgZnJlcXVlbmN5Li4gNTc4OS4xMyBCb2dvTUlQUyAobHBqPTI4
OTQ1NjYpDQpbICAgIDIuMDIzOTY2XSB4ODYvY3B1OiBVc2VyIE1vZGUgSW5zdHJ1Y3Rpb24g
UHJldmVudGlvbiAoVU1JUCkgYWN0aXZhdGVkDQpbICAgIDIuMDIzOTY2XSBMYXN0IGxldmVs
IGlUTEIgZW50cmllczogNEtCIDEwMjQsIDJNQiAxMDI0LCA0TUIgNTEyDQpbICAgIDIuMDIz
OTY2XSBMYXN0IGxldmVsIGRUTEIgZW50cmllczogNEtCIDIwNDgsIDJNQiAyMDQ4LCA0TUIg
MTAyNCwgMUdCIDANClsgICAgMi4wMjM5NjZdIFNwZWN0cmUgVjEgOiBNaXRpZ2F0aW9uOiB1
c2VyY29weS9zd2FwZ3MgYmFycmllcnMgYW5kIF9fdXNlciBwb2ludGVyIHNhbml0aXphdGlv
bg0KWyAgICAyLjAyMzk2Nl0gU3BlY3RyZSBWMiA6IE1pdGlnYXRpb246IFJldHBvbGluZXMN
ClsgICAgMi4wMjM5NjZdIFNwZWN0cmUgVjIgOiBTcGVjdHJlIHYyIC8gU3BlY3RyZVJTQiBt
aXRpZ2F0aW9uOiBGaWxsaW5nIFJTQiBvbiBjb250ZXh0IHN3aXRjaA0KWyAgICAyLjAyMzk2
Nl0gU3BlY3RyZSBWMiA6IFNwZWN0cmUgdjIgLyBTcGVjdHJlUlNCIDogRmlsbGluZyBSU0Ig
b24gVk1FWElUDQpbICAgIDIuMDIzOTY2XSBTcGVjdHJlIFYyIDogRW5hYmxpbmcgU3BlY3Vs
YXRpb24gQmFycmllciBmb3IgZmlybXdhcmUgY2FsbHMNClsgICAgMi4wMjM5NjZdIFJFVEJs
ZWVkOiBNaXRpZ2F0aW9uOiB1bnRyYWluZWQgcmV0dXJuIHRodW5rDQpbICAgIDIuMDIzOTY2
XSBTcGVjdHJlIFYyIDogbWl0aWdhdGlvbjogRW5hYmxpbmcgY29uZGl0aW9uYWwgSW5kaXJl
Y3QgQnJhbmNoIFByZWRpY3Rpb24gQmFycmllcg0KWyAgICAyLjAyMzk2Nl0gU3BlY3VsYXRp
dmUgU3RvcmUgQnlwYXNzOiBNaXRpZ2F0aW9uOiBTcGVjdWxhdGl2ZSBTdG9yZSBCeXBhc3Mg
ZGlzYWJsZWQgdmlhIHByY3RsDQpbICAgIDIuMDIzOTY2XSB4ODYvZnB1OiBTdXBwb3J0aW5n
IFhTQVZFIGZlYXR1cmUgMHgwMDE6ICd4ODcgZmxvYXRpbmcgcG9pbnQgcmVnaXN0ZXJzJw0K
WyAgICAyLjAyMzk2Nl0geDg2L2ZwdTogU3VwcG9ydGluZyBYU0FWRSBmZWF0dXJlIDB4MDAy
OiAnU1NFIHJlZ2lzdGVycycNClsgICAgMi4wMjM5NjZdIHg4Ni9mcHU6IFN1cHBvcnRpbmcg
WFNBVkUgZmVhdHVyZSAweDAwNDogJ0FWWCByZWdpc3RlcnMnDQpbICAgIDIuMDIzOTY2XSB4
ODYvZnB1OiB4c3RhdGVfb2Zmc2V0WzJdOiAgNTc2LCB4c3RhdGVfc2l6ZXNbMl06ICAyNTYN
ClsgICAgMi4wMjM5NjZdIHg4Ni9mcHU6IEVuYWJsZWQgeHN0YXRlIGZlYXR1cmVzIDB4Nywg
Y29udGV4dCBzaXplIGlzIDgzMiBieXRlcywgdXNpbmcgJ2NvbXBhY3RlZCcgZm9ybWF0Lg0K
WyAgICAyLjAyMzk2Nl0gRnJlZWluZyBTTVAgYWx0ZXJuYXRpdmVzIG1lbW9yeTogNDhLDQpb
ICAgIDIuMDIzOTY2XSBwaWRfbWF4OiBkZWZhdWx0OiAzMjc2OCBtaW5pbXVtOiAzMDENClsg
ICAgMi4wMjM5NjZdIExTTTogaW5pdGlhbGl6aW5nIGxzbT1jYXBhYmlsaXR5LHNlbGludXgN
ClsgICAgMi4wMjM5NjZdIFNFTGludXg6ICBJbml0aWFsaXppbmcuDQpbICAgIDIuMDIzOTY2
XSBNb3VudC1jYWNoZSBoYXNoIHRhYmxlIGVudHJpZXM6IDgxOTIgKG9yZGVyOiA0LCA2NTUz
NiBieXRlcywgbGluZWFyKQ0KWyAgICAyLjAyMzk2Nl0gTW91bnRwb2ludC1jYWNoZSBoYXNo
IHRhYmxlIGVudHJpZXM6IDgxOTIgKG9yZGVyOiA0LCA2NTUzNiBieXRlcywgbGluZWFyKQ0K
WyAgICAyLjAyMzk2Nl0gY2xvY2tzb3VyY2U6IHhlbjogbWFzazogMHhmZmZmZmZmZmZmZmZm
ZmZmIG1heF9jeWNsZXM6IDB4MWNkNDJlNGRmZmIsIG1heF9pZGxlX25zOiA4ODE1OTA1OTE0
ODMgbnMNClsgICAgMi4wMjM5NjZdIGluc3RhbGxpbmcgWGVuIHRpbWVyIGZvciBDUFUgMA0K
WyAgICAyLjAyMzk2Nl0gc21wYm9vdDogQ1BVMDogQU1EIFJ5emVuIEVtYmVkZGVkIFYyNzQ4
IHdpdGggUmFkZW9uIEdyYXBoaWNzIChmYW1pbHk6IDB4MTcsIG1vZGVsOiAweDYwLCBzdGVw
cGluZzogMHgxKQ0KWyAgICAyLjAyNDA4M10gUGVyZm9ybWFuY2UgRXZlbnRzOiBQTVUgbm90
IGF2YWlsYWJsZSBkdWUgdG8gdmlydHVhbGl6YXRpb24sIHVzaW5nIHNvZnR3YXJlIGV2ZW50
cyBvbmx5Lg0KWyAgICAyLjAyNDk4Nl0gc2lnbmFsOiBtYXggc2lnZnJhbWUgc2l6ZTogMTc3
Ng0KWyAgICAyLjAyNTk4N10gcmN1OiBIaWVyYXJjaGljYWwgU1JDVSBpbXBsZW1lbnRhdGlv
bi4NClsgICAgMi4wMjY5NzFdIHJjdTogICAgIE1heCBwaGFzZSBuby1kZWxheSBpbnN0YW5j
ZXMgaXMgNDAwLg0KWyAgICAyLjAyNzk5N10gVGltZXIgbWlncmF0aW9uOiAxIGhpZXJhcmNo
eSBsZXZlbHM7IDggY2hpbGRyZW4gcGVyIGdyb3VwOyAxIGNyb3Nzbm9kZSBsZXZlbA0KWyAg
ICAyLjAzMTU5Nl0gc21wOiBCcmluZ2luZyB1cCBzZWNvbmRhcnkgQ1BVcyAuLi4NClsgICAg
Mi4wMzIwMjRdIGluc3RhbGxpbmcgWGVuIHRpbWVyIGZvciBDUFUgMQ0KWyAgICAyLjAzMzAz
Ml0gc21wYm9vdDogeDg2OiBCb290aW5nIFNNUCBjb25maWd1cmF0aW9uOg0KKFhFTikgWyAg
IDE1LjY2MzgwMF0gY29tbW9uL3NjaGVkL251bGwuYzozNTc6IDEgPC0tIGQwdjENClsgICAg
Mi4wMzM5NzJdIC4uLi4gbm9kZSAgIzAsIENQVXM6ICAgICAgIzENClsgICAgMi4wMzU0MDVd
IGluc3RhbGxpbmcgWGVuIHRpbWVyIGZvciBDUFUgMg0KKFhFTikgWyAgIDE1LjY5MDM2N10g
Y29tbW9uL3NjaGVkL251bGwuYzozNTc6IDIgPC0tIGQwdjINClsgICAgMi4wMzcwNTNdICAj
Mg0KWyAgICAyLjAzODA5MF0gaW5zdGFsbGluZyBYZW4gdGltZXIgZm9yIENQVSAzDQooWEVO
KSBbICAgMTUuNzEyMzgwXSBjb21tb24vc2NoZWQvbnVsbC5jOjM1NzogMyA8LS0gZDB2Mw0K
WyAgICAyLjA0MDA3Nl0gICMzDQpbICAgIDIuMDQ0MDM3XSBzbXA6IEJyb3VnaHQgdXAgMSBu
b2RlLCA0IENQVXMNClsgICAgMi4wNDU5NzNdIHNtcGJvb3Q6IFRvdGFsIG9mIDQgcHJvY2Vz
c29ycyBhY3RpdmF0ZWQgKDIzMTU2LjUyIEJvZ29NSVBTKQ0KWyAgICAyLjA0ODAxN10gTWVt
b3J5OiAyODM4NzkySy8zMjk0MDY0OEsgYXZhaWxhYmxlICgxODQzMksga2VybmVsIGNvZGUs
IDI5MTlLIHJ3ZGF0YSwgNzI5Nksgcm9kYXRhLCAyOTI4SyBpbml0LCAyNjg0SyBic3MsIDMw
MDk3OTA0SyByZXNlcnZlZCwgMEsgY21hLXJlc2VydmVkKQ0KWyAgICAyLjA0OTczN10gZGV2
dG1wZnM6IGluaXRpYWxpemVkDQpbICAgIDIuMDQ5OTk1XSB4ODYvbW06IE1lbW9yeSBibG9j
ayBzaXplOiAxMjhNQg0KWyAgICAyLjA1MzAyNl0gQUNQSTogUE06IFJlZ2lzdGVyaW5nIEFD
UEkgTlZTIHJlZ2lvbiBbbWVtIDB4MGEyMDAwMDAtMHgwYTIwY2ZmZl0gKDUzMjQ4IGJ5dGVz
KQ0KWyAgICAyLjA1Mzk3NF0gQUNQSTogUE06IFJlZ2lzdGVyaW5nIEFDUEkgTlZTIHJlZ2lv
biBbbWVtIDB4Y2MxOTYwMDAtMHhjYzM4OGZmZl0gKDIwNDM5MDQgYnl0ZXMpDQpbICAgIDIu
MDU0OTkwXSBBQ1BJOiBQTTogUmVnaXN0ZXJpbmcgQUNQSSBOVlMgcmVnaW9uIFttZW0gMHhj
YzM4YTAwMC0weGNjNzA5ZmZmXSAoMzY3MDAxNiBieXRlcykNClsgICAgMi4wNTYwMjddIGNs
b2Nrc291cmNlOiBqaWZmaWVzOiBtYXNrOiAweGZmZmZmZmZmIG1heF9jeWNsZXM6IDB4ZmZm
ZmZmZmYsIG1heF9pZGxlX25zOiAxOTExMjYwNDQ2Mjc1MDAwIG5zDQpbICAgIDIuMDU2OTc0
XSBmdXRleCBoYXNoIHRhYmxlIGVudHJpZXM6IDEwMjQgKG9yZGVyOiA0LCA2NTUzNiBieXRl
cywgbGluZWFyKQ0KWyAgICAyLjA1ODAzOF0gUE06IFJUQyB0aW1lOiAwNTo1MzoyNywgZGF0
ZTogMjAyNS0wNC0wOA0KWyAgICAyLjA1OTE2NV0gTkVUOiBSZWdpc3RlcmVkIFBGX05FVExJ
TksvUEZfUk9VVEUgcHJvdG9jb2wgZmFtaWx5DQpbICAgIDIuMDU5OTg3XSB4ZW46Z3JhbnRf
dGFibGU6IEdyYW50IHRhYmxlcyB1c2luZyB2ZXJzaW9uIDEgbGF5b3V0DQpbICAgIDIuMDYw
OTkwXSBHcmFudCB0YWJsZSBpbml0aWFsaXplZA0KWyAgICAyLjA2MjA2NF0gYXVkaXQ6IGlu
aXRpYWxpemluZyBuZXRsaW5rIHN1YnN5cyAoZGlzYWJsZWQpDQpbICAgIDIuMDYyOTg5XSBh
dWRpdDogdHlwZT0yMDAwIGF1ZGl0KDE3NDQwOTE2MDguMTc5OjEpOiBzdGF0ZT1pbml0aWFs
aXplZCBhdWRpdF9lbmFibGVkPTAgcmVzPTENClsgICAgMi4wNjMwMjNdIHRoZXJtYWxfc3lz
OiBSZWdpc3RlcmVkIHRoZXJtYWwgZ292ZXJub3IgJ3N0ZXBfd2lzZScNClsgICAgMi4wNzg5
NzZdIHRoZXJtYWxfc3lzOiBSZWdpc3RlcmVkIHRoZXJtYWwgZ292ZXJub3IgJ3VzZXJfc3Bh
Y2UnDQpbICAgIDIuMDkwOTgzXSBjcHVpZGxlOiB1c2luZyBnb3Zlcm5vciBtZW51DQpbICAg
IDIuMTEwMTk4XSBQQ0k6IEVDQU0gW21lbSAweGYwMDAwMDAwLTB4ZjdmZmZmZmZdIChiYXNl
IDB4ZjAwMDAwMDApIGZvciBkb21haW4gMDAwMCBbYnVzIDAwLTdmXQ0KWyAgICAyLjEyNjk4
OF0gUENJOiBVc2luZyBjb25maWd1cmF0aW9uIHR5cGUgMSBmb3IgYmFzZSBhY2Nlc3MNClsg
ICAgMi4xMzgwMjldIGtwcm9iZXM6IGtwcm9iZSBqdW1wLW9wdGltaXphdGlvbiBpcyBlbmFi
bGVkLiBBbGwga3Byb2JlcyBhcmUgb3B0aW1pemVkIGlmIHBvc3NpYmxlLg0KWyAgICAyLjE1
NjIzN10gSHVnZVRMQjogcmVnaXN0ZXJlZCAxLjAwIEdpQiBwYWdlIHNpemUsIHByZS1hbGxv
Y2F0ZWQgMCBwYWdlcw0KWyAgICAyLjE2OTk3NF0gSHVnZVRMQjogMTYzODAgS2lCIHZtZW1t
YXAgY2FuIGJlIGZyZWVkIGZvciBhIDEuMDAgR2lCIHBhZ2UNClsgICAgMi4xODI5NzNdIEh1
Z2VUTEI6IHJlZ2lzdGVyZWQgMi4wMCBNaUIgcGFnZSBzaXplLCBwcmUtYWxsb2NhdGVkIDAg
cGFnZXMNClsgICAgMi4xOTU5NzNdIEh1Z2VUTEI6IDI4IEtpQiB2bWVtbWFwIGNhbiBiZSBm
cmVlZCBmb3IgYSAyLjAwIE1pQiBwYWdlDQpbICAgIDIuMjA5MDI4XSBBQ1BJOiBBZGRlZCBf
T1NJKE1vZHVsZSBEZXZpY2UpDQpbICAgIDIuMjE3OTczXSBBQ1BJOiBBZGRlZCBfT1NJKFBy
b2Nlc3NvciBEZXZpY2UpDQpbICAgIDIuMjI2OTcyXSBBQ1BJOiBBZGRlZCBfT1NJKDMuMCBf
U0NQIEV4dGVuc2lvbnMpDQpbICAgIDIuMjM1OTcyXSBBQ1BJOiBBZGRlZCBfT1NJKFByb2Nl
c3NvciBBZ2dyZWdhdG9yIERldmljZSkNClsgICAgMi4yNTg1MDNdIEFDUEk6IDExIEFDUEkg
QU1MIHRhYmxlcyBzdWNjZXNzZnVsbHkgYWNxdWlyZWQgYW5kIGxvYWRlZA0KKFhFTikgWyAg
IDE2LjE1MTE3NV0gZDA6IGJpbmQ6IG1fZ3NpPTkgZ19nc2k9OQ0KWyAgICAyLjI3OTQ3MF0g
QUNQSTogW0Zpcm13YXJlIEJ1Z106IEJJT1MgX09TSShMaW51eCkgcXVlcnkgaWdub3JlZA0K
WyAgICAyLjI5NDQ2M10gQUNQSTogSW50ZXJwcmV0ZXIgZW5hYmxlZA0KWyAgICAyLjMwMTk4
Ml0gQUNQSTogUE06IChzdXBwb3J0cyBTMCBTMyBTNCBTNSkNClsgICAgMi4zMTA5NzVdIEFD
UEk6IFVzaW5nIElPQVBJQyBmb3IgaW50ZXJydXB0IHJvdXRpbmcNClsgICAgMi4zMjAxOTZd
IFBDSTogVXNpbmcgaG9zdCBicmlkZ2Ugd2luZG93cyBmcm9tIEFDUEk7IGlmIG5lY2Vzc2Fy
eSwgdXNlICJwY2k9bm9jcnMiIGFuZCByZXBvcnQgYSBidWcNClsgICAgMi4zMzg5ODBdIFBD
STogSWdub3JpbmcgRTgyMCByZXNlcnZhdGlvbnMgZm9yIGhvc3QgYnJpZGdlIHdpbmRvd3MN
ClsgICAgMi4zNTEzMzJdIEFDUEk6IEVuYWJsZWQgNiBHUEVzIGluIGJsb2NrIDAwIHRvIDFG
DQpbICAgIDIuMzYyNDgxXSBBQ1BJOiBcX1NCXy5QMFMwOiBOZXcgcG93ZXIgcmVzb3VyY2UN
ClsgICAgMi4zNzA5OTNdIEFDUEk6IFxfU0JfLlAzUzA6IE5ldyBwb3dlciByZXNvdXJjZQ0K
WyAgICAyLjM4MDAzMV0gQUNQSTogXF9TQl8uUDBTMTogTmV3IHBvd2VyIHJlc291cmNlDQpb
ICAgIDIuMzg5OTkxXSBBQ1BJOiBcX1NCXy5QM1MxOiBOZXcgcG93ZXIgcmVzb3VyY2UNClsg
ICAgMi40MDUxOTVdIEFDUEk6IFxfU0JfLlBSV0w6IE5ldyBwb3dlciByZXNvdXJjZQ0KWyAg
ICAyLjQxMzk5Ml0gQUNQSTogXF9TQl8uUFJXQjogTmV3IHBvd2VyIHJlc291cmNlDQpbICAg
IDIuNDIzMzIxXSBBQ1BJOiBQQ0kgUm9vdCBCcmlkZ2UgW1BDSTBdIChkb21haW4gMDAwMCBb
YnVzIDAwLWZmXSkNClsgICAgMi40MzU5NzZdIGFjcGkgUE5QMEEwODowMDogX09TQzogT1Mg
c3VwcG9ydHMgW0V4dGVuZGVkQ29uZmlnIEFTUE0gQ2xvY2tQTSBTZWdtZW50cyBNU0kgSFBY
LVR5cGUzXQ0KWyAgICAyLjQ1NDEwN10gYWNwaSBQTlAwQTA4OjAwOiBfT1NDOiBPUyBub3cg
Y29udHJvbHMgW1BNRSBQQ0llQ2FwYWJpbGl0eSBMVFJdDQpbICAgIDIuNDY3OTg3XSBhY3Bp
IFBOUDBBMDg6MDA6IFtGaXJtd2FyZSBJbmZvXTogRUNBTSBbbWVtIDB4ZjAwMDAwMDAtMHhm
N2ZmZmZmZl0gZm9yIGRvbWFpbiAwMDAwIFtidXMgMDAtN2ZdIG9ubHkgcGFydGlhbGx5IGNv
dmVycyB0aGlzIGJyaWRnZQ0KWyAgICAyLjQ5MzI2MV0gUENJIGhvc3QgYnJpZGdlIHRvIGJ1
cyAwMDAwOjAwDQpbICAgIDIuNTAwOTc4XSBwY2lfYnVzIDAwMDA6MDA6IHJvb3QgYnVzIHJl
c291cmNlIFtpbyAgMHgwMDAwLTB4MDNhZiB3aW5kb3ddDQpbICAgIDIuNTEzOTczXSBwY2lf
YnVzIDAwMDA6MDA6IHJvb3QgYnVzIHJlc291cmNlIFtpbyAgMHgwM2UwLTB4MGNmNyB3aW5k
b3ddDQpbICAgIDIuNTI3OTczXSBwY2lfYnVzIDAwMDA6MDA6IHJvb3QgYnVzIHJlc291cmNl
IFtpbyAgMHgwM2IwLTB4MDNkZiB3aW5kb3ddDQpbICAgIDIuNTQwOTc0XSBwY2lfYnVzIDAw
MDA6MDA6IHJvb3QgYnVzIHJlc291cmNlIFtpbyAgMHgwZDAwLTB4ZmZmZiB3aW5kb3ddDQpb
ICAgIDIuNTU0OTczXSBwY2lfYnVzIDAwMDA6MDA6IHJvb3QgYnVzIHJlc291cmNlIFttZW0g
MHgwMDBhMDAwMC0weDAwMGRmZmZmIHdpbmRvd10NClsgICAgMi41Njk5NzNdIHBjaV9idXMg
MDAwMDowMDogcm9vdCBidXMgcmVzb3VyY2UgW21lbSAweGQwMDAwMDAwLTB4ZmViZmZmZmYg
d2luZG93XQ0KWyAgICAyLjU4NDk3M10gcGNpX2J1cyAwMDAwOjAwOiByb290IGJ1cyByZXNv
dXJjZSBbbWVtIDB4ZmVlMDAwMDAtMHhmZmZmZmZmZiB3aW5kb3ddDQpbICAgIDIuNTk5OTcz
XSBwY2lfYnVzIDAwMDA6MDA6IHJvb3QgYnVzIHJlc291cmNlIFttZW0gMHg4MzAwMDAwMDAt
MHhmZmZmZmZmZmZmIHdpbmRvd10NClsgICAgMi42MTQ5NzRdIHBjaV9idXMgMDAwMDowMDog
cm9vdCBidXMgcmVzb3VyY2UgW2J1cyAwMC1mZl0NClsgICAgMi42MjYwMDNdIHBjaSAwMDAw
OjAwOjAwLjA6IFsxMDIyOjE2MzBdIHR5cGUgMDAgY2xhc3MgMHgwNjAwMDAgY29udmVudGlv
bmFsIFBDSSBlbmRwb2ludA0KKFhFTikgWyAgIDE2LjUyNzA0Nl0gUENJIGFkZCBkZXZpY2Ug
MDAwMDowMDowMC4wDQpbICAgIDIuNjUxMDAwXSBwY2kgMDAwMDowMDowMC4yOiBbMTAyMjox
NjMxXSB0eXBlIDAwIGNsYXNzIDB4MDgwNjAwIGNvbnZlbnRpb25hbCBQQ0kgZW5kcG9pbnQN
CihYRU4pIFsgICAxNi41NTIzNTFdIFBDSSBhZGQgZGV2aWNlIDAwMDA6MDA6MDAuMg0KWyAg
ICAyLjY3NjAwNV0gcGNpIDAwMDA6MDA6MDEuMDogWzEwMjI6MTYzMl0gdHlwZSAwMCBjbGFz
cyAweDA2MDAwMCBjb252ZW50aW9uYWwgUENJIGVuZHBvaW50DQooWEVOKSBbICAgMTYuNTc3
NjYxXSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjAxLjANClsgICAgMi43MDEwMDddIHBjaSAw
MDAwOjAwOjAyLjA6IFsxMDIyOjE2MzJdIHR5cGUgMDAgY2xhc3MgMHgwNjAwMDAgY29udmVu
dGlvbmFsIFBDSSBlbmRwb2ludA0KKFhFTikgWyAgIDE2LjYwMjk2Ml0gUENJIGFkZCBkZXZp
Y2UgMDAwMDowMDowMi4wDQpbICAgIDIuNzI2MDAxXSBwY2kgMDAwMDowMDowMi4xOiBbMTAy
MjoxNjM0XSB0eXBlIDAxIGNsYXNzIDB4MDYwNDAwIFBDSWUgUm9vdCBQb3J0DQpbICAgIDIu
NzQxMDIyXSBwY2kgMDAwMDowMDowMi4xOiBQQ0kgYnJpZGdlIHRvIFtidXMgMDFdDQpbICAg
IDIuNzUwOTk2XSBwY2kgMDAwMDowMDowMi4xOiAgIGJyaWRnZSB3aW5kb3cgW21lbSAweGZm
ZTAwMDAwMDAtMHhmZmY4MGZmZmZmIDY0Yml0IHByZWZdDQpbICAgIDIuNzY3MTcyXSBwY2kg
MDAwMDowMDowMi4xOiBQTUUjIHN1cHBvcnRlZCBmcm9tIEQwIEQzaG90IEQzY29sZA0KKFhF
TikgWyAgIDE2LjY2NTAxNV0gUENJIGFkZCBkZXZpY2UgMDAwMDowMDowMi4xDQpbICAgIDIu
Nzg3MDA0XSBwY2kgMDAwMDowMDowMi4zOiBbMTAyMjoxNjM0XSB0eXBlIDAxIGNsYXNzIDB4
MDYwNDAwIFBDSWUgUm9vdCBQb3J0DQpbICAgIDIuODAyMDE5XSBwY2kgMDAwMDowMDowMi4z
OiBQQ0kgYnJpZGdlIHRvIFtidXMgMDJdDQpbICAgIDIuODExOTg0XSBwY2kgMDAwMDowMDow
Mi4zOiAgIGJyaWRnZSB3aW5kb3cgW21lbSAweGZlYTAwMDAwLTB4ZmVhZmZmZmZdDQpbICAg
IDIuODI1MDAyXSBwY2kgMDAwMDowMDowMi4zOiBlbmFibGluZyBFeHRlbmRlZCBUYWdzDQpb
ICAgIDIuODM1MTYyXSBwY2kgMDAwMDowMDowMi4zOiBQTUUjIHN1cHBvcnRlZCBmcm9tIEQw
IEQzaG90IEQzY29sZA0KKFhFTikgWyAgIDE2LjczNDUyN10gUENJIGFkZCBkZXZpY2UgMDAw
MDowMDowMi4zDQpbICAgIDIuODU2MDAxXSBwY2kgMDAwMDowMDowMi40OiBbMTAyMjoxNjM0
XSB0eXBlIDAxIGNsYXNzIDB4MDYwNDAwIFBDSWUgUm9vdCBQb3J0DQpbICAgIDIuODcxMDE5
XSBwY2kgMDAwMDowMDowMi40OiBQQ0kgYnJpZGdlIHRvIFtidXMgMDNdDQpbICAgIDIuODgw
OTgwXSBwY2kgMDAwMDowMDowMi40OiAgIGJyaWRnZSB3aW5kb3cgW2lvICAweGYwMDAtMHhm
ZmZmXQ0KWyAgICAyLjg5Mjk3Nl0gcGNpIDAwMDA6MDA6MDIuNDogICBicmlkZ2Ugd2luZG93
IFttZW0gMHhmZTkwMDAwMC0weGZlOWZmZmZmXQ0KWyAgICAyLjkwNjAwMl0gcGNpIDAwMDA6
MDA6MDIuNDogZW5hYmxpbmcgRXh0ZW5kZWQgVGFncw0KWyAgICAyLjkxNjE1NF0gcGNpIDAw
MDA6MDA6MDIuNDogUE1FIyBzdXBwb3J0ZWQgZnJvbSBEMCBEM2hvdCBEM2NvbGQNCihYRU4p
IFsgICAxNi44MTYzNDBdIFBDSSBhZGQgZGV2aWNlIDAwMDA6MDA6MDIuNA0KWyAgICAyLjkz
NzAxM10gcGNpIDAwMDA6MDA6MDguMDogWzEwMjI6MTYzMl0gdHlwZSAwMCBjbGFzcyAweDA2
MDAwMCBjb252ZW50aW9uYWwgUENJIGVuZHBvaW50DQooWEVOKSBbICAgMTYuODQxNjQ3XSBQ
Q0kgYWRkIGRldmljZSAwMDAwOjAwOjA4LjANClsgICAgMi45NjIwMDFdIHBjaSAwMDAwOjAw
OjA4LjE6IFsxMDIyOjE2MzVdIHR5cGUgMDEgY2xhc3MgMHgwNjA0MDAgUENJZSBSb290IFBv
cnQNClsgICAgMi45NzcwMjFdIHBjaSAwMDAwOjAwOjA4LjE6IFBDSSBicmlkZ2UgdG8gW2J1
cyAwNF0NClsgICAgMi45ODU5ODBdIHBjaSAwMDAwOjAwOjA4LjE6ICAgYnJpZGdlIHdpbmRv
dyBbaW8gIDB4ZTAwMC0weGVmZmZdDQpbICAgIDIuOTk4OTc2XSBwY2kgMDAwMDowMDowOC4x
OiAgIGJyaWRnZSB3aW5kb3cgW21lbSAweGZlNDAwMDAwLTB4ZmU3ZmZmZmZdDQpbICAgIDMu
MDExOTg2XSBwY2kgMDAwMDowMDowOC4xOiAgIGJyaWRnZSB3aW5kb3cgW21lbSAweGQwMDAw
MDAwLTB4ZTAxZmZmZmYgNjRiaXQgcHJlZl0NClsgICAgMy4wMjc5ODhdIHBjaSAwMDAwOjAw
OjA4LjE6IGVuYWJsaW5nIEV4dGVuZGVkIFRhZ3MNClsgICAgMy4wMzcxMzFdIHBjaSAwMDAw
OjAwOjA4LjE6IFBNRSMgc3VwcG9ydGVkIGZyb20gRDAgRDNob3QgRDNjb2xkDQooWEVOKSBb
ICAgMTYuOTM5MDU0XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjA4LjENClsgICAgMy4wNTgw
MDZdIHBjaSAwMDAwOjAwOjA4LjI6IFsxMDIyOjE2MzVdIHR5cGUgMDEgY2xhc3MgMHgwNjA0
MDAgUENJZSBSb290IFBvcnQNClsgICAgMy4wNzMwMTldIHBjaSAwMDAwOjAwOjA4LjI6IFBD
SSBicmlkZ2UgdG8gW2J1cyAwNV0NClsgICAgMy4wODI5ODRdIHBjaSAwMDAwOjAwOjA4LjI6
ICAgYnJpZGdlIHdpbmRvdyBbbWVtIDB4ZmU4MDAwMDAtMHhmZThmZmZmZl0NClsgICAgMy4w
OTYwMDBdIHBjaSAwMDAwOjAwOjA4LjI6IGVuYWJsaW5nIEV4dGVuZGVkIFRhZ3MNClsgICAg
My4xMDYxMjldIHBjaSAwMDAwOjAwOjA4LjI6IFBNRSMgc3VwcG9ydGVkIGZyb20gRDAgRDNo
b3QgRDNjb2xkDQooWEVOKSBbICAgMTcuMDA4NTYxXSBQQ0kgYWRkIGRldmljZSAwMDAwOjAw
OjA4LjINClsgICAgMy4xMjcwMjRdIHBjaSAwMDAwOjAwOjE0LjA6IFsxMDIyOjc5MGJdIHR5
cGUgMDAgY2xhc3MgMHgwYzA1MDAgY29udmVudGlvbmFsIFBDSSBlbmRwb2ludA0KKFhFTikg
WyAgIDE3LjAzMzg3M10gUENJIGFkZCBkZXZpY2UgMDAwMDowMDoxNC4wDQpbICAgIDMuMTUx
OTk0XSBwY2kgMDAwMDowMDoxNC4zOiBbMTAyMjo3OTBlXSB0eXBlIDAwIGNsYXNzIDB4MDYw
MTAwIGNvbnZlbnRpb25hbCBQQ0kgZW5kcG9pbnQNCihYRU4pIFsgICAxNy4wNTkxODBdIFBD
SSBhZGQgZGV2aWNlIDAwMDA6MDA6MTQuMw0KWyAgICAzLjE3NzAxM10gcGNpIDAwMDA6MDA6
MTguMDogWzEwMjI6MTQ0OF0gdHlwZSAwMCBjbGFzcyAweDA2MDAwMCBjb252ZW50aW9uYWwg
UENJIGVuZHBvaW50DQooWEVOKSBbICAgMTcuMDg0NDgzXSBQQ0kgYWRkIGRldmljZSAwMDAw
OjAwOjE4LjANClsgICAgMy4yMDE5OTBdIHBjaSAwMDAwOjAwOjE4LjE6IFsxMDIyOjE0NDld
IHR5cGUgMDAgY2xhc3MgMHgwNjAwMDAgY29udmVudGlvbmFsIFBDSSBlbmRwb2ludA0KKFhF
TikgWyAgIDE3LjEwOTc5Ml0gUENJIGFkZCBkZXZpY2UgMDAwMDowMDoxOC4xDQpbICAgIDMu
MjI2OTkwXSBwY2kgMDAwMDowMDoxOC4yOiBbMTAyMjoxNDRhXSB0eXBlIDAwIGNsYXNzIDB4
MDYwMDAwIGNvbnZlbnRpb25hbCBQQ0kgZW5kcG9pbnQNCihYRU4pIFsgICAxNy4xMzUwOTdd
IFBDSSBhZGQgZGV2aWNlIDAwMDA6MDA6MTguMg0KWyAgICAzLjI1MTk5MF0gcGNpIDAwMDA6
MDA6MTguMzogWzEwMjI6MTQ0Yl0gdHlwZSAwMCBjbGFzcyAweDA2MDAwMCBjb252ZW50aW9u
YWwgUENJIGVuZHBvaW50DQooWEVOKSBbICAgMTcuMTYwNDAwXSBQQ0kgYWRkIGRldmljZSAw
MDAwOjAwOjE4LjMNClsgICAgMy4yNzY5OTBdIHBjaSAwMDAwOjAwOjE4LjQ6IFsxMDIyOjE0
NGNdIHR5cGUgMDAgY2xhc3MgMHgwNjAwMDAgY29udmVudGlvbmFsIFBDSSBlbmRwb2ludA0K
KFhFTikgWyAgIDE3LjE4NTcwOV0gUENJIGFkZCBkZXZpY2UgMDAwMDowMDoxOC40DQpbICAg
IDMuMzAxOTkwXSBwY2kgMDAwMDowMDoxOC41OiBbMTAyMjoxNDRkXSB0eXBlIDAwIGNsYXNz
IDB4MDYwMDAwIGNvbnZlbnRpb25hbCBQQ0kgZW5kcG9pbnQNCihYRU4pIFsgICAxNy4yMTEw
MTVdIFBDSSBhZGQgZGV2aWNlIDAwMDA6MDA6MTguNQ0KWyAgICAzLjMyNjk5MF0gcGNpIDAw
MDA6MDA6MTguNjogWzEwMjI6MTQ0ZV0gdHlwZSAwMCBjbGFzcyAweDA2MDAwMCBjb252ZW50
aW9uYWwgUENJIGVuZHBvaW50DQooWEVOKSBbICAgMTcuMjM2MzIwXSBQQ0kgYWRkIGRldmlj
ZSAwMDAwOjAwOjE4LjYNClsgICAgMy4zNTE5OTFdIHBjaSAwMDAwOjAwOjE4Ljc6IFsxMDIy
OjE0NGZdIHR5cGUgMDAgY2xhc3MgMHgwNjAwMDAgY29udmVudGlvbmFsIFBDSSBlbmRwb2lu
dA0KKFhFTikgWyAgIDE3LjI2MTYyOF0gUENJIGFkZCBkZXZpY2UgMDAwMDowMDoxOC43DQpb
ICAgIDMuMzc3MDY5XSBwY2kgMDAwMDowMTowMC4wOiBbMTBlZTo1NzAwXSB0eXBlIDAwIGNs
YXNzIDB4MTIwMDAwIFBDSWUgRW5kcG9pbnQNClsgICAgMy4zOTEwMDFdIHBjaSAwMDAwOjAx
OjAwLjA6IEJBUiAwIFttZW0gMHhmZmUwMDAwMDAwLTB4ZmZlZmZmZmZmZiA2NGJpdCBwcmVm
XQ0KWyAgICAzLjQwNTk5MF0gcGNpIDAwMDA6MDE6MDAuMDogQkFSIDIgW21lbSAweGZmZjgw
NDAwMDAtMHhmZmY4MDdmZmZmIDY0Yml0IHByZWZdDQpbICAgIDMuNDIwMTgxXSBwY2kgMDAw
MDowMTowMC4wOiBzdXBwb3J0cyBEMQ0KWyAgICAzLjQyNzk3M10gcGNpIDAwMDA6MDE6MDAu
MDogUE1FIyBzdXBwb3J0ZWQgZnJvbSBEMCBEMSBEM2hvdCBEM2NvbGQNCihYRU4pIFsgICAx
Ny4zMzQ5NDddIFBDSSBhZGQgZGV2aWNlIDAwMDA6MDE6MDAuMA0KWyAgICAzLjQ0OTAyMl0g
cGNpIDAwMDA6MDE6MDAuMTogWzEwZWU6NTcwMV0gdHlwZSAwMCBjbGFzcyAweDEyMDAwMCBQ
Q0llIEVuZHBvaW50DQpbICAgIDMuNDY0MDAxXSBwY2kgMDAwMDowMTowMC4xOiBCQVIgMCBb
bWVtIDB4ZmZmODAwMDAwMC0weGZmZjgwM2ZmZmYgNjRiaXQgcHJlZl0NClsgICAgMy40Nzc5
OTBdIHBjaSAwMDAwOjAxOjAwLjE6IEJBUiAyIFttZW0gMHhmZmYwMDAwMDAwLTB4ZmZmN2Zm
ZmZmZiA2NGJpdCBwcmVmXQ0KWyAgICAzLjQ5MzE2NV0gcGNpIDAwMDA6MDE6MDAuMTogc3Vw
cG9ydHMgRDENClsgICAgMy41MDA5NzNdIHBjaSAwMDAwOjAxOjAwLjE6IFBNRSMgc3VwcG9y
dGVkIGZyb20gRDAgRDEgRDNob3QgRDNjb2xkDQooWEVOKSBbICAgMTcuNDA4MjcxXSBQQ0kg
YWRkIGRldmljZSAwMDAwOjAxOjAwLjENClsgICAgMy41MjE5OTZdIHBjaSAwMDAwOjAwOjAy
LjE6IFBDSSBicmlkZ2UgdG8gW2J1cyAwMV0NClsgICAgMy41MzIwNzJdIHBjaSAwMDAwOjAy
OjAwLjA6IFsxNDRkOmE4MDhdIHR5cGUgMDAgY2xhc3MgMHgwMTA4MDIgUENJZSBFbmRwb2lu
dA0KKFhFTikgWyAgIDE3LjQ0MTU0N10gMDAwMDowMjowMC4wOiBub3QgbWFwcGluZyBCQVIg
W2ZlYTAwLCBmZWEwM10gaW52YWxpZCBwb3NpdGlvbg0KWyAgICAzLjU0NTk3Ml0gcGNpIDAw
MDA6MDI6MDAuMDogQkFSIDAgW21lbSAweGZlYTAwMDAwLTB4ZmVhMDNmZmYgNjRiaXRdDQoo
WEVOKSBbICAgMTcuNDY5MTExXSAwMDAwOjAyOjAwLjA6IG5vdCBtYXBwaW5nIEJBUiBbZmVh
MDAsIGZlYTAzXSBpbnZhbGlkIHBvc2l0aW9uDQooWEVOKSBbICAgMTcuNDgzNjY3XSAwMDAw
OjAyOjAwLjA6IG5vdCBtYXBwaW5nIEJBUiBbZmVhMDAsIGZlYTAzXSBpbnZhbGlkIHBvc2l0
aW9uDQooWEVOKSBbICAgMTcuNDk4MjMwXSAwMDAwOjAyOjAwLjA6IG5vdCBtYXBwaW5nIEJB
UiBbZmVhMDAsIGZlYTAzXSBpbnZhbGlkIHBvc2l0aW9uDQooWEVOKSBbICAgMTcuNTEyNzkw
XSAwMDAwOjAyOjAwLjA6IG5vdCBtYXBwaW5nIEJBUiBbZmVhMDAsIGZlYTAzXSBpbnZhbGlk
IHBvc2l0aW9uDQooWEVOKSBbICAgMTcuNTI3MzQ3XSAwMDAwOjAyOjAwLjA6IG5vdCBtYXBw
aW5nIEJBUiBbZmVhMDAsIGZlYTAzXSBpbnZhbGlkIHBvc2l0aW9uDQooWEVOKSBbICAgMTcu
NTQyMTYxXSBQQ0kgYWRkIGRldmljZSAwMDAwOjAyOjAwLjANClsgICAgMy41NzE5ODVdIHBj
aSAwMDAwOjAwOjAyLjM6IFBDSSBicmlkZ2UgdG8gW2J1cyAwMl0NClsgICAgMy41ODIwNzRd
IHBjaSAwMDAwOjAzOjAwLjA6IFsxMGVjOjgxMjVdIHR5cGUgMDAgY2xhc3MgMHgwMjAwMDAg
UENJZSBFbmRwb2ludA0KKFhFTikgWyAgIDE3LjU3NTQ0MV0gMDAwMDowMzowMC4wOiBub3Qg
bWFwcGluZyBCQVIgW2ZlOTAwLCBmZTkwZl0gaW52YWxpZCBwb3NpdGlvbg0KKFhFTikgWyAg
IDE3LjU5MDAwNF0gMDAwMDowMzowMC4wOiBub3QgbWFwcGluZyBCQVIgW2ZlOTEwLCBmZTkx
M10gaW52YWxpZCBwb3NpdGlvbg0KWyAgICAzLjU5Njk3Ml0gcGNpIDAwMDA6MDM6MDAuMDog
QkFSIDAgW2lvICAweGYwMDAtMHhmMGZmXQ0KKFhFTikgWyAgIDE3LjYxNTEzNF0gMDAwMDow
MzowMC4wOiBub3QgbWFwcGluZyBCQVIgW2ZlOTAwLCBmZTkwZl0gaW52YWxpZCBwb3NpdGlv
bg0KKFhFTikgWyAgIDE3LjYyOTY5MV0gMDAwMDowMzowMC4wOiBub3QgbWFwcGluZyBCQVIg
W2ZlOTEwLCBmZTkxM10gaW52YWxpZCBwb3NpdGlvbg0KKFhFTikgWyAgIDE3LjY0NDI1MV0g
MDAwMDowMzowMC4wOiBub3QgbWFwcGluZyBCQVIgW2ZlOTAwLCBmZTkwZl0gaW52YWxpZCBw
b3NpdGlvbg0KKFhFTikgWyAgIDE3LjY1ODgxMV0gMDAwMDowMzowMC4wOiBub3QgbWFwcGlu
ZyBCQVIgW2ZlOTEwLCBmZTkxM10gaW52YWxpZCBwb3NpdGlvbg0KWyAgICAzLjYwODk3Ml0g
cGNpIDAwMDA6MDM6MDAuMDogQkFSIDIgW21lbSAweGZlOTAwMDAwLTB4ZmU5MGZmZmYgNjRi
aXRdDQooWEVOKSBbICAgMTcuNjg2Mzc3XSAwMDAwOjAzOjAwLjA6IG5vdCBtYXBwaW5nIEJB
UiBbZmU5MDAsIGZlOTBmXSBpbnZhbGlkIHBvc2l0aW9uDQooWEVOKSBbICAgMTcuNzAwOTMy
XSAwMDAwOjAzOjAwLjA6IG5vdCBtYXBwaW5nIEJBUiBbZmU5MTAsIGZlOTEzXSBpbnZhbGlk
IHBvc2l0aW9uDQpbICAgIDMuNjIyOTcyXSBwY2kgMDAwMDowMzowMC4wOiBCQVIgNCBbbWVt
IDB4ZmU5MTAwMDAtMHhmZTkxM2ZmZiA2NGJpdF0NCihYRU4pIFsgICAxNy43Mjg0OTFdIDAw
MDA6MDM6MDAuMDogbm90IG1hcHBpbmcgQkFSIFtmZTkwMCwgZmU5MGZdIGludmFsaWQgcG9z
aXRpb24NCihYRU4pIFsgICAxNy43NDMwNTVdIDAwMDA6MDM6MDAuMDogbm90IG1hcHBpbmcg
QkFSIFtmZTkxMCwgZmU5MTNdIGludmFsaWQgcG9zaXRpb24NClsgICAgMy42MzUyMDVdIHBj
aSAwMDAwOjAzOjAwLjA6IHN1cHBvcnRzIEQxIEQyDQpbICAgIDMuNjQzOTczXSBwY2kgMDAw
MDowMzowMC4wOiBQTUUjIHN1cHBvcnRlZCBmcm9tIEQwIEQxIEQyIEQzaG90IEQzY29sZA0K
KFhFTikgWyAgIDE3Ljc3OTc0OV0gUENJIGFkZCBkZXZpY2UgMDAwMDowMzowMC4wDQpbICAg
IDMuNjY2MDk2XSBwY2kgMDAwMDowMDowMi40OiBQQ0kgYnJpZGdlIHRvIFtidXMgMDNdDQpb
ICAgIDMuNjc2MDYyXSBwY2kgMDAwMDowNDowMC4wOiBbMTAwMjoxNjM2XSB0eXBlIDAwIGNs
YXNzIDB4MDMwMDAwIFBDSWUgTGVnYWN5IEVuZHBvaW50DQooWEVOKSBbICAgMTcuODE0NjE0
XSAwMDAwOjA0OjAwLjA6IG5vdCBtYXBwaW5nIEJBUiBbZmU3MDAsIGZlNzdmXSBpbnZhbGlk
IHBvc2l0aW9uDQpbICAgIDMuNjkyOTcyXSBwY2kgMDAwMDowNDowMC4wOiBCQVIgMCBbbWVt
IDB4ZDAwMDAwMDAtMHhkZmZmZmZmZiA2NGJpdCBwcmVmXQ0KKFhFTikgWyAgIDE3Ljg0MzM4
OF0gMDAwMDowNDowMC4wOiBub3QgbWFwcGluZyBCQVIgW2ZlNzAwLCBmZTc3Zl0gaW52YWxp
ZCBwb3NpdGlvbg0KWyAgICAzLjcwNzk3Ml0gcGNpIDAwMDA6MDQ6MDAuMDogQkFSIDIgW21l
bSAweGUwMDAwMDAwLTB4ZTAxZmZmZmYgNjRiaXQgcHJlZl0NCihYRU4pIFsgICAxNy44NzIx
NThdIDAwMDA6MDQ6MDAuMDogbm90IG1hcHBpbmcgQkFSIFtmZTcwMCwgZmU3N2ZdIGludmFs
aWQgcG9zaXRpb24NClsgICAgMy43MjI5NzFdIHBjaSAwMDAwOjA0OjAwLjA6IEJBUiA0IFtp
byAgMHhlMDAwLTB4ZTBmZl0NCihYRU4pIFsgICAxNy44OTc2MzVdIDAwMDA6MDQ6MDAuMDog
bm90IG1hcHBpbmcgQkFSIFtmZTcwMCwgZmU3N2ZdIGludmFsaWQgcG9zaXRpb24NClsgICAg
My43MzQ5NzFdIHBjaSAwMDAwOjA0OjAwLjA6IEJBUiA1IFttZW0gMHhmZTcwMDAwMC0weGZl
NzdmZmZmXQ0KKFhFTikgWyAgIDE3LjkyNDUwMF0gMDAwMDowNDowMC4wOiBub3QgbWFwcGlu
ZyBCQVIgW2ZlNzAwLCBmZTc3Zl0gaW52YWxpZCBwb3NpdGlvbg0KWyAgICAzLjc0Nzk4MV0g
cGNpIDAwMDA6MDQ6MDAuMDogZW5hYmxpbmcgRXh0ZW5kZWQgVGFncw0KWyAgICAzLjc1NzIw
OV0gcGNpIDAwMDA6MDQ6MDAuMDogUE1FIyBzdXBwb3J0ZWQgZnJvbSBEMSBEMiBEM2hvdCBE
M2NvbGQNClsgICAgMy43NzAwNjRdIHBjaSAwMDAwOjA0OjAwLjA6IDEyNi4wMTYgR2IvcyBh
dmFpbGFibGUgUENJZSBiYW5kd2lkdGgsIGxpbWl0ZWQgYnkgOC4wIEdUL3MgUENJZSB4MTYg
bGluayBhdCAwMDAwOjAwOjA4LjEgKGNhcGFibGUgb2YgMjUyLjA0OCBHYi9zIHdpdGggMTYu
MCBHVC9zIFBDSWUgeDE2IGxpbmspDQooWEVOKSBbICAgMTcuOTkzMTkwXSBQQ0kgYWRkIGRl
dmljZSAwMDAwOjA0OjAwLjANClsgICAgMy44MDgwMDRdIHBjaSAwMDAwOjA0OjAwLjE6IFsx
MDAyOjE2MzddIHR5cGUgMDAgY2xhc3MgMHgwNDAzMDAgUENJZSBMZWdhY3kgRW5kcG9pbnQN
ClsgICAgMy44MjI5OTFdIHBjaSAwMDAwOjA0OjAwLjE6IEJBUiAwIFttZW0gMHhmZTdjODAw
MC0weGZlN2NiZmZmXQ0KWyAgICAzLjgzNTAyNl0gcGNpIDAwMDA6MDQ6MDAuMTogZW5hYmxp
bmcgRXh0ZW5kZWQgVGFncw0KWyAgICAzLjg0NTA1NV0gcGNpIDAwMDA6MDQ6MDAuMTogUE1F
IyBzdXBwb3J0ZWQgZnJvbSBEMSBEMiBEM2hvdCBEM2NvbGQNCihYRU4pIFsgICAxOC4wNTI0
NjldIFBDSSBhZGQgZGV2aWNlIDAwMDA6MDQ6MDAuMQ0KWyAgICAzLjg2NjAwMl0gcGNpIDAw
MDA6MDQ6MDAuMjogWzEwMjI6MTVkZl0gdHlwZSAwMCBjbGFzcyAweDEwODAwMCBQQ0llIEVu
ZHBvaW50DQpbICAgIDMuODgwMDA1XSBwY2kgMDAwMDowNDowMC4yOiBCQVIgMiBbbWVtIDB4
ZmU2MDAwMDAtMHhmZTZmZmZmZl0NClsgICAgMy44OTIwMDBdIHBjaSAwMDAwOjA0OjAwLjI6
IEJBUiA1IFttZW0gMHhmZTdjYzAwMC0weGZlN2NkZmZmXQ0KWyAgICAzLjkwMjk5MF0gcGNp
IDAwMDA6MDQ6MDAuMjogZW5hYmxpbmcgRXh0ZW5kZWQgVGFncw0KKFhFTikgWyAgIDE4LjEw
OTY3MV0gUENJIGFkZCBkZXZpY2UgMDAwMDowNDowMC4yDQpbICAgIDMuOTIyMDAyXSBwY2kg
MDAwMDowNDowMC4zOiBbMTAyMjoxNjM5XSB0eXBlIDAwIGNsYXNzIDB4MGMwMzMwIFBDSWUg
RW5kcG9pbnQNCihYRU4pIFsgICAxOC4xMzI4OTRdIDAwMDA6MDQ6MDAuMzogbm90IG1hcHBp
bmcgQkFSIFtmZTUwMCwgZmU1ZmZdIGludmFsaWQgcG9zaXRpb24NClsgICAgMy45MzU5NzJd
IHBjaSAwMDAwOjA0OjAwLjM6IEJBUiAwIFttZW0gMHhmZTUwMDAwMC0weGZlNWZmZmZmIDY0
Yml0XQ0KKFhFTikgWyAgIDE4LjE2MDQ1N10gMDAwMDowNDowMC4zOiBub3QgbWFwcGluZyBC
QVIgW2ZlNTAwLCBmZTVmZl0gaW52YWxpZCBwb3NpdGlvbg0KKFhFTikgWyAgIDE4LjE3NTAx
Nl0gMDAwMDowNDowMC4zOiBub3QgbWFwcGluZyBCQVIgW2ZlNTAwLCBmZTVmZl0gaW52YWxp
ZCBwb3NpdGlvbg0KKFhFTikgWyAgIDE4LjE4OTU3N10gMDAwMDowNDowMC4zOiBub3QgbWFw
cGluZyBCQVIgW2ZlNTAwLCBmZTVmZl0gaW52YWxpZCBwb3NpdGlvbg0KKFhFTikgWyAgIDE4
LjIwNDEzNF0gMDAwMDowNDowMC4zOiBub3QgbWFwcGluZyBCQVIgW2ZlNTAwLCBmZTVmZl0g
aW52YWxpZCBwb3NpdGlvbg0KKFhFTikgWyAgIDE4LjIxODY5N10gMDAwMDowNDowMC4zOiBu
b3QgbWFwcGluZyBCQVIgW2ZlNTAwLCBmZTVmZl0gaW52YWxpZCBwb3NpdGlvbg0KWyAgICAz
Ljk1Mjk4M10gcGNpIDAwMDA6MDQ6MDAuMzogZW5hYmxpbmcgRXh0ZW5kZWQgVGFncw0KWyAg
ICAzLjk2MzA2NV0gcGNpIDAwMDA6MDQ6MDAuMzogUE1FIyBzdXBwb3J0ZWQgZnJvbSBEMCBE
M2hvdCBEM2NvbGQNCihYRU4pIFsgICAxOC4yNTU2MTRdIFBDSSBhZGQgZGV2aWNlIDAwMDA6
MDQ6MDAuMw0KWyAgICAzLjk4NDAwMl0gcGNpIDAwMDA6MDQ6MDAuNDogWzEwMjI6MTYzOV0g
dHlwZSAwMCBjbGFzcyAweDBjMDMzMCBQQ0llIEVuZHBvaW50DQooWEVOKSBbICAgMTguMjc4
ODQxXSAwMDAwOjA0OjAwLjQ6IG5vdCBtYXBwaW5nIEJBUiBbZmU0MDAsIGZlNGZmXSBpbnZh
bGlkIHBvc2l0aW9uDQpbICAgIDMuOTk3OTcyXSBwY2kgMDAwMDowNDowMC40OiBCQVIgMCBb
bWVtIDB4ZmU0MDAwMDAtMHhmZTRmZmZmZiA2NGJpdF0NCihYRU4pIFsgICAxOC4zMDY0MDVd
IDAwMDA6MDQ6MDAuNDogbm90IG1hcHBpbmcgQkFSIFtmZTQwMCwgZmU0ZmZdIGludmFsaWQg
cG9zaXRpb24NCihYRU4pIFsgICAxOC4zMjA5NjFdIDAwMDA6MDQ6MDAuNDogbm90IG1hcHBp
bmcgQkFSIFtmZTQwMCwgZmU0ZmZdIGludmFsaWQgcG9zaXRpb24NCihYRU4pIFsgICAxOC4z
MzU1MjNdIDAwMDA6MDQ6MDAuNDogbm90IG1hcHBpbmcgQkFSIFtmZTQwMCwgZmU0ZmZdIGlu
dmFsaWQgcG9zaXRpb24NCihYRU4pIFsgICAxOC4zNTAwODBdIDAwMDA6MDQ6MDAuNDogbm90
IG1hcHBpbmcgQkFSIFtmZTQwMCwgZmU0ZmZdIGludmFsaWQgcG9zaXRpb24NCihYRU4pIFsg
ICAxOC4zNjQ2NDRdIDAwMDA6MDQ6MDAuNDogbm90IG1hcHBpbmcgQkFSIFtmZTQwMCwgZmU0
ZmZdIGludmFsaWQgcG9zaXRpb24NClsgICAgNC4wMTQ5ODJdIHBjaSAwMDAwOjA0OjAwLjQ6
IGVuYWJsaW5nIEV4dGVuZGVkIFRhZ3MNClsgICAgNC4wMjUwNjBdIHBjaSAwMDAwOjA0OjAw
LjQ6IFBNRSMgc3VwcG9ydGVkIGZyb20gRDAgRDNob3QgRDNjb2xkDQooWEVOKSBbICAgMTgu
NDAxNTYwXSBQQ0kgYWRkIGRldmljZSAwMDAwOjA0OjAwLjQNClsgICAgNC4wNDYwMDJdIHBj
aSAwMDAwOjA0OjAwLjU6IFsxMDIyOjE1ZTJdIHR5cGUgMDAgY2xhc3MgMHgwNDgwMDAgUENJ
ZSBFbmRwb2ludA0KWyAgICA0LjA1OTk5MF0gcGNpIDAwMDA6MDQ6MDAuNTogQkFSIDAgW21l
bSAweGZlNzgwMDAwLTB4ZmU3YmZmZmZdDQpbICAgIDQuMDcxMDI2XSBwY2kgMDAwMDowNDow
MC41OiBlbmFibGluZyBFeHRlbmRlZCBUYWdzDQpbICAgIDQuMDgxMDUzXSBwY2kgMDAwMDow
NDowMC41OiBQTUUjIHN1cHBvcnRlZCBmcm9tIEQwIEQzaG90IEQzY29sZA0KKFhFTikgWyAg
IDE4LjQ1OTEwN10gUENJIGFkZCBkZXZpY2UgMDAwMDowNDowMC41DQpbICAgIDQuMTAyMDAx
XSBwY2kgMDAwMDowNDowMC42OiBbMTAyMjoxNWUzXSB0eXBlIDAwIGNsYXNzIDB4MDQwMzAw
IFBDSWUgRW5kcG9pbnQNClsgICAgNC4xMTU5OTBdIHBjaSAwMDAwOjA0OjAwLjY6IEJBUiAw
IFttZW0gMHhmZTdjMDAwMC0weGZlN2M3ZmZmXQ0KWyAgICA0LjEyNzAyNl0gcGNpIDAwMDA6
MDQ6MDAuNjogZW5hYmxpbmcgRXh0ZW5kZWQgVGFncw0KWyAgICA0LjEzNzA1NF0gcGNpIDAw
MDA6MDQ6MDAuNjogUE1FIyBzdXBwb3J0ZWQgZnJvbSBEMCBEM2hvdCBEM2NvbGQNCihYRU4p
IFsgICAxOC41MTY2NTddIFBDSSBhZGQgZGV2aWNlIDAwMDA6MDQ6MDAuNg0KWyAgICA0LjE1
ODAzOF0gcGNpIDAwMDA6MDA6MDguMTogUENJIGJyaWRnZSB0byBbYnVzIDA0XQ0KWyAgICA0
LjE2NzA2MV0gcGNpIDAwMDA6MDU6MDAuMDogWzEwMjI6NzkwMV0gdHlwZSAwMCBjbGFzcyAw
eDAxMDYwMSBQQ0llIEVuZHBvaW50DQooWEVOKSBbICAgMTguNTQ5OTM0XSAwMDAwOjA1OjAw
LjA6IG5vdCBtYXBwaW5nIEJBUiBbZmU4MDEsIGZlODAxXSBpbnZhbGlkIHBvc2l0aW9uDQoo
WEVOKSBbICAgMTguNTY0NDk3XSAwMDAwOjA1OjAwLjA6IG5vdCBtYXBwaW5nIEJBUiBbZmU4
MDEsIGZlODAxXSBpbnZhbGlkIHBvc2l0aW9uDQooWEVOKSBbICAgMTguNTc5MDU2XSAwMDAw
OjA1OjAwLjA6IG5vdCBtYXBwaW5nIEJBUiBbZmU4MDEsIGZlODAxXSBpbnZhbGlkIHBvc2l0
aW9uDQooWEVOKSBbICAgMTguNTkzNjE0XSAwMDAwOjA1OjAwLjA6IG5vdCBtYXBwaW5nIEJB
UiBbZmU4MDEsIGZlODAxXSBpbnZhbGlkIHBvc2l0aW9uDQooWEVOKSBbICAgMTguNjA4MTcz
XSAwMDAwOjA1OjAwLjA6IG5vdCBtYXBwaW5nIEJBUiBbZmU4MDEsIGZlODAxXSBpbnZhbGlk
IHBvc2l0aW9uDQooWEVOKSBbICAgMTguNjIyNzM2XSAwMDAwOjA1OjAwLjA6IG5vdCBtYXBw
aW5nIEJBUiBbZmU4MDEsIGZlODAxXSBpbnZhbGlkIHBvc2l0aW9uDQpbICAgIDQuMTg1OTcy
XSBwY2kgMDAwMDowNTowMC4wOiBCQVIgNSBbbWVtIDB4ZmU4MDEwMDAtMHhmZTgwMTdmZl0N
CihYRU4pIFsgICAxOC42NDkyNTNdIDAwMDA6MDU6MDAuMDogbm90IG1hcHBpbmcgQkFSIFtm
ZTgwMSwgZmU4MDFdIGludmFsaWQgcG9zaXRpb24NClsgICAgNC4xOTc5ODJdIHBjaSAwMDAw
OjA1OjAwLjA6IGVuYWJsaW5nIEV4dGVuZGVkIFRhZ3MNClsgICAgNC4yMDgyMjRdIHBjaSAw
MDAwOjA1OjAwLjA6IDEyNi4wMTYgR2IvcyBhdmFpbGFibGUgUENJZSBiYW5kd2lkdGgsIGxp
bWl0ZWQgYnkgOC4wIEdUL3MgUENJZSB4MTYgbGluayBhdCAwMDAwOjAwOjA4LjIgKGNhcGFi
bGUgb2YgMjUyLjA0OCBHYi9zIHdpdGggMTYuMCBHVC9zIFBDSWUgeDE2IGxpbmspDQooWEVO
KSBbICAgMTguNzA0ODk0XSBQQ0kgYWRkIGRldmljZSAwMDAwOjA1OjAwLjANClsgICAgNC4y
NDcwMDFdIHBjaSAwMDAwOjA1OjAwLjE6IFsxMDIyOjc5MDFdIHR5cGUgMDAgY2xhc3MgMHgw
MTA2MDEgUENJZSBFbmRwb2ludA0KKFhFTikgWyAgIDE4LjcyODEyMV0gMDAwMDowNTowMC4x
OiBub3QgbWFwcGluZyBCQVIgW2ZlODAwLCBmZTgwMF0gaW52YWxpZCBwb3NpdGlvbg0KKFhF
TikgWyAgIDE4Ljc0MjY4MF0gMDAwMDowNTowMC4xOiBub3QgbWFwcGluZyBCQVIgW2ZlODAw
LCBmZTgwMF0gaW52YWxpZCBwb3NpdGlvbg0KKFhFTikgWyAgIDE4Ljc1NzI0M10gMDAwMDow
NTowMC4xOiBub3QgbWFwcGluZyBCQVIgW2ZlODAwLCBmZTgwMF0gaW52YWxpZCBwb3NpdGlv
bg0KKFhFTikgWyAgIDE4Ljc3MTgwMl0gMDAwMDowNTowMC4xOiBub3QgbWFwcGluZyBCQVIg
W2ZlODAwLCBmZTgwMF0gaW52YWxpZCBwb3NpdGlvbg0KKFhFTikgWyAgIDE4Ljc4NjM1OV0g
MDAwMDowNTowMC4xOiBub3QgbWFwcGluZyBCQVIgW2ZlODAwLCBmZTgwMF0gaW52YWxpZCBw
b3NpdGlvbg0KKFhFTikgWyAgIDE4LjgwMDkyNF0gMDAwMDowNTowMC4xOiBub3QgbWFwcGlu
ZyBCQVIgW2ZlODAwLCBmZTgwMF0gaW52YWxpZCBwb3NpdGlvbg0KWyAgICA0LjI2NTk3Ml0g
cGNpIDAwMDA6MDU6MDAuMTogQkFSIDUgW21lbSAweGZlODAwMDAwLTB4ZmU4MDA3ZmZdDQoo
WEVOKSBbICAgMTguODI3NDM5XSAwMDAwOjA1OjAwLjE6IG5vdCBtYXBwaW5nIEJBUiBbZmU4
MDAsIGZlODAwXSBpbnZhbGlkIHBvc2l0aW9uDQpbICAgIDQuMjc3OTgzXSBwY2kgMDAwMDow
NTowMC4xOiBlbmFibGluZyBFeHRlbmRlZCBUYWdzDQooWEVOKSBbICAgMTguODUyMDU2XSBQ
Q0kgYWRkIGRldmljZSAwMDAwOjA1OjAwLjENClsgICAgNC4yOTcwMTFdIHBjaSAwMDAwOjAw
OjA4LjI6IFBDSSBicmlkZ2UgdG8gW2J1cyAwNV0NClsgICAgNC4zMDY1ODNdIEFDUEk6IFBD
STogSW50ZXJydXB0IGxpbmsgTE5LQSBjb25maWd1cmVkIGZvciBJUlEgMA0KWyAgICA0LjMx
ODAxN10gQUNQSTogUENJOiBJbnRlcnJ1cHQgbGluayBMTktCIGNvbmZpZ3VyZWQgZm9yIElS
USAwDQpbICAgIDQuMzMwMDEzXSBBQ1BJOiBQQ0k6IEludGVycnVwdCBsaW5rIExOS0MgY29u
ZmlndXJlZCBmb3IgSVJRIDANClsgICAgNC4zNDIwMjFdIEFDUEk6IFBDSTogSW50ZXJydXB0
IGxpbmsgTE5LRCBjb25maWd1cmVkIGZvciBJUlEgMA0KWyAgICA0LjM1MzAxNl0gQUNQSTog
UENJOiBJbnRlcnJ1cHQgbGluayBMTktFIGNvbmZpZ3VyZWQgZm9yIElSUSAwDQpbICAgIDQu
MzY1MDA4XSBBQ1BJOiBQQ0k6IEludGVycnVwdCBsaW5rIExOS0YgY29uZmlndXJlZCBmb3Ig
SVJRIDANClsgICAgNC4zNzcwMDldIEFDUEk6IFBDSTogSW50ZXJydXB0IGxpbmsgTE5LRyBj
b25maWd1cmVkIGZvciBJUlEgMA0KWyAgICA0LjM4ODAwOV0gQUNQSTogUENJOiBJbnRlcnJ1
cHQgbGluayBMTktIIGNvbmZpZ3VyZWQgZm9yIElSUSAwDQpbICAgIDQuNDAwOTI0XSB4ZW46
YmFsbG9vbjogSW5pdGlhbGlzaW5nIGJhbGxvb24gZHJpdmVyDQpbICAgIDQuNDgxMDUxXSBp
b21tdTogRGVmYXVsdCBkb21haW4gdHlwZTogVHJhbnNsYXRlZA0KWyAgICA0LjQ4OTk3Nl0g
aW9tbXU6IERNQSBkb21haW4gVExCIGludmFsaWRhdGlvbiBwb2xpY3k6IGxhenkgbW9kZQ0K
WyAgICA0LjUwMjAyNl0gU0NTSSBzdWJzeXN0ZW0gaW5pdGlhbGl6ZWQNClsgICAgNC41MDk5
OTRdIEFDUEk6IGJ1cyB0eXBlIFVTQiByZWdpc3RlcmVkDQpbICAgIDQuNTE3OTgyXSB1c2Jj
b3JlOiByZWdpc3RlcmVkIG5ldyBpbnRlcmZhY2UgZHJpdmVyIHVzYmZzDQpbICAgIDQuNTI3
OTc2XSB1c2Jjb3JlOiByZWdpc3RlcmVkIG5ldyBpbnRlcmZhY2UgZHJpdmVyIGh1Yg0KWyAg
ICA0LjUzNzk3Nl0gdXNiY29yZTogcmVnaXN0ZXJlZCBuZXcgZGV2aWNlIGRyaXZlciB1c2IN
ClsgICAgNC41NDg5ODJdIHBwc19jb3JlOiBMaW51eFBQUyBBUEkgdmVyLiAxIHJlZ2lzdGVy
ZWQNClsgICAgNC41NTc5NzJdIHBwc19jb3JlOiBTb2Z0d2FyZSB2ZXIuIDUuMy42IC0gQ29w
eXJpZ2h0IDIwMDUtMjAwNyBSb2RvbGZvIEdpb21ldHRpIDxnaW9tZXR0aUBsaW51eC5pdD4N
ClsgICAgNC41NzU5NzVdIFBUUCBjbG9jayBzdXBwb3J0IHJlZ2lzdGVyZWQNClsgICAgNC41
ODQwMTNdIGVmaXZhcnM6IFJlZ2lzdGVyZWQgZWZpdmFycyBvcGVyYXRpb25zDQpbICAgIDQu
NTkzOTkxXSBBZHZhbmNlZCBMaW51eCBTb3VuZCBBcmNoaXRlY3R1cmUgRHJpdmVyIEluaXRp
YWxpemVkLg0KWyAgICA0LjYwNjA3MV0gTmV0TGFiZWw6IEluaXRpYWxpemluZw0KWyAgICA0
LjYxMTk3M10gTmV0TGFiZWw6ICBkb21haW4gaGFzaCBzaXplID0gMTI4DQpbICAgIDQuNjIw
OTcyXSBOZXRMYWJlbDogIHByb3RvY29scyA9IFVOTEFCRUxFRCBDSVBTT3Y0IENBTElQU08N
ClsgICAgNC42MzE5ODJdIE5ldExhYmVsOiAgdW5sYWJlbGVkIHRyYWZmaWMgYWxsb3dlZCBi
eSBkZWZhdWx0DQpbICAgIDQuNjQyOTk2XSBQQ0k6IFVzaW5nIEFDUEkgZm9yIElSUSByb3V0
aW5nDQpbICAgIDQuNjU5MDAwXSByZXNvdXJjZTogRXhwYW5kZWQgcmVzb3VyY2UgUmVzZXJ2
ZWQgZHVlIHRvIGNvbmZsaWN0IHdpdGggUENJIEJ1cyAwMDAwOjAwDQpbICAgIDQuNjczOTc0
XSByZXNvdXJjZTogRXhwYW5kZWQgcmVzb3VyY2UgUmVzZXJ2ZWQgZHVlIHRvIGNvbmZsaWN0
IHdpdGggUENJIEJ1cyAwMDAwOjAwDQpbICAgIDQuNjg5OTkxXSBwY2kgMDAwMDowNDowMC4w
OiB2Z2FhcmI6IHNldHRpbmcgYXMgYm9vdCBWR0EgZGV2aWNlDQpbICAgIDQuNjkwOTY2XSBw
Y2kgMDAwMDowNDowMC4wOiB2Z2FhcmI6IGJyaWRnZSBjb250cm9sIHBvc3NpYmxlDQpbICAg
IDQuNjkwOTY2XSBwY2kgMDAwMDowNDowMC4wOiB2Z2FhcmI6IFZHQSBkZXZpY2UgYWRkZWQ6
IGRlY29kZXM9aW8rbWVtLG93bnM9bm9uZSxsb2Nrcz1ub25lDQpbICAgIDQuNzI5OTczXSB2
Z2FhcmI6IGxvYWRlZA0KWyAgICA0LjczNTA3N10gY2xvY2tzb3VyY2U6IFN3aXRjaGVkIHRv
IGNsb2Nrc291cmNlIHRzYy1lYXJseQ0KWyAgICA0Ljc0NjA0MF0gVkZTOiBEaXNrIHF1b3Rh
cyBkcXVvdF82LjYuMA0KWyAgICA0Ljc1Mzk0Nl0gVkZTOiBEcXVvdC1jYWNoZSBoYXNoIHRh
YmxlIGVudHJpZXM6IDUxMiAob3JkZXIgMCwgNDA5NiBieXRlcykNClsgICAgNC43Njc4NDVd
IHBucDogUG5QIEFDUEkgaW5pdA0KWyAgICA0Ljc3NDEyNl0gc3lzdGVtIDAwOjAwOiBbbWVt
IDB4ZjAwMDAwMDAtMHhmN2ZmZmZmZl0gaGFzIGJlZW4gcmVzZXJ2ZWQNClsgICAgNC43ODc2
MDVdIHN5c3RlbSAwMDowMjogW2lvICAweDBhMDAtMHgwYTBmXSBoYXMgYmVlbiByZXNlcnZl
ZA0KWyAgICA0Ljc5OTM2MF0gc3lzdGVtIDAwOjAyOiBbaW8gIDB4MGExMC0weDBhMWZdIGhh
cyBiZWVuIHJlc2VydmVkDQpbICAgIDQuODExMzE1XSBzeXN0ZW0gMDA6MDI6IFtpbyAgMHgw
YTIwLTB4MGEyZl0gaGFzIGJlZW4gcmVzZXJ2ZWQNClsgICAgNC44MjM5MjhdIHN5c3RlbSAw
MDowNTogW2lvICAweDA0ZDAtMHgwNGQxXSBoYXMgYmVlbiByZXNlcnZlZA0KWyAgICA0Ljgz
NTU5NV0gc3lzdGVtIDAwOjA1OiBbaW8gIDB4MDQwYl0gaGFzIGJlZW4gcmVzZXJ2ZWQNClsg
ICAgNC44NDYzNDBdIHN5c3RlbSAwMDowNTogW2lvICAweDA0ZDZdIGhhcyBiZWVuIHJlc2Vy
dmVkDQpbICAgIDQuODU3MDgzXSBzeXN0ZW0gMDA6MDU6IFtpbyAgMHgwYzAwLTB4MGMwMV0g
aGFzIGJlZW4gcmVzZXJ2ZWQNClsgICAgNC44NjkwNDNdIHN5c3RlbSAwMDowNTogW2lvICAw
eDBjMTRdIGhhcyBiZWVuIHJlc2VydmVkDQpbICAgIDQuODc5NzkyXSBzeXN0ZW0gMDA6MDU6
IFtpbyAgMHgwYzUwLTB4MGM1MV0gaGFzIGJlZW4gcmVzZXJ2ZWQNClsgICAgNC44OTE3NDld
IHN5c3RlbSAwMDowNTogW2lvICAweDBjNTJdIGhhcyBiZWVuIHJlc2VydmVkDQpbICAgIDQu
OTAyNDk5XSBzeXN0ZW0gMDA6MDU6IFtpbyAgMHgwYzZjXSBoYXMgYmVlbiByZXNlcnZlZA0K
WyAgICA0LjkxMzI0NV0gc3lzdGVtIDAwOjA1OiBbaW8gIDB4MGM2Zl0gaGFzIGJlZW4gcmVz
ZXJ2ZWQNClsgICAgNC45MjM5OTRdIHN5c3RlbSAwMDowNTogW2lvICAweDBjZDAtMHgwY2Qx
XSBoYXMgYmVlbiByZXNlcnZlZA0KWyAgICA0LjkzNTk1MF0gc3lzdGVtIDAwOjA1OiBbaW8g
IDB4MGNkMi0weDBjZDNdIGhhcyBiZWVuIHJlc2VydmVkDQpbICAgIDQuOTQ3OTEyXSBzeXN0
ZW0gMDA6MDU6IFtpbyAgMHgwY2Q0LTB4MGNkNV0gaGFzIGJlZW4gcmVzZXJ2ZWQNClsgICAg
NC45NTk4NjldIHN5c3RlbSAwMDowNTogW2lvICAweDBjZDYtMHgwY2Q3XSBoYXMgYmVlbiBy
ZXNlcnZlZA0KWyAgICA0Ljk3MTgzNF0gc3lzdGVtIDAwOjA1OiBbaW8gIDB4MGNkOC0weDBj
ZGZdIGhhcyBiZWVuIHJlc2VydmVkDQpbICAgIDQuOTgzNzkzXSBzeXN0ZW0gMDA6MDU6IFtp
byAgMHgwODAwLTB4MDg5Zl0gaGFzIGJlZW4gcmVzZXJ2ZWQNClsgICAgNC45OTU3NTVdIHN5
c3RlbSAwMDowNTogW2lvICAweDBiMDAtMHgwYjBmXSBoYXMgYmVlbiByZXNlcnZlZA0KWyAg
ICA1LjAwNzcxMl0gc3lzdGVtIDAwOjA1OiBbaW8gIDB4MGIyMC0weDBiM2ZdIGhhcyBiZWVu
IHJlc2VydmVkDQpbICAgIDUuMDE5NjcyXSBzeXN0ZW0gMDA6MDU6IFtpbyAgMHgwOTAwLTB4
MDkwZl0gaGFzIGJlZW4gcmVzZXJ2ZWQNClsgICAgNS4wMzE2MzNdIHN5c3RlbSAwMDowNTog
W2lvICAweDA5MTAtMHgwOTFmXSBoYXMgYmVlbiByZXNlcnZlZA0KWyAgICA1LjA0MzU5NV0g
c3lzdGVtIDAwOjA1OiBbbWVtIDB4ZmVjMDAwMDAtMHhmZWMwMGZmZl0gY291bGQgbm90IGJl
IHJlc2VydmVkDQpbICAgIDUuMDU3NjI3XSBzeXN0ZW0gMDA6MDU6IFttZW0gMHhmZWMwMTAw
MC0weGZlYzAxZmZmXSBjb3VsZCBub3QgYmUgcmVzZXJ2ZWQNClsgICAgNS4wNzE2NzJdIHN5
c3RlbSAwMDowNTogW21lbSAweGZlZGMwMDAwLTB4ZmVkYzBmZmZdIGhhcyBiZWVuIHJlc2Vy
dmVkDQpbICAgIDUuMDg1MDE3XSBzeXN0ZW0gMDA6MDU6IFttZW0gMHhmZWUwMDAwMC0weGZl
ZTAwZmZmXSBoYXMgYmVlbiByZXNlcnZlZA0KWyAgICA1LjA5ODM2Ml0gc3lzdGVtIDAwOjA1
OiBbbWVtIDB4ZmVkODAwMDAtMHhmZWQ4ZmZmZl0gY291bGQgbm90IGJlIHJlc2VydmVkDQpb
ICAgIDUuMTEyNDAxXSBzeXN0ZW0gMDA6MDU6IFttZW0gMHhmZWMxMDAwMC0weGZlYzEwZmZm
XSBjb3VsZCBub3QgYmUgcmVzZXJ2ZWQNClsgICAgNS4xMjY0NDBdIHN5c3RlbSAwMDowNTog
W21lbSAweGZmMDAwMDAwLTB4ZmZmZmZmZmZdIGhhcyBiZWVuIHJlc2VydmVkDQpbICAgIDUu
MTQwNDc1XSBwbnA6IFBuUCBBQ1BJOiBmb3VuZCA2IGRldmljZXMNClsgICAgNS4xNTY3MDFd
IFBNLVRpbWVyIGZhaWxlZCBjb25zaXN0ZW5jeSBjaGVjayAgKDB4ZmZmZmZmKSAtIGFib3J0
aW5nLg0KWyAgICA1LjE2OTQwOV0gTkVUOiBSZWdpc3RlcmVkIFBGX0lORVQgcHJvdG9jb2wg
ZmFtaWx5DQpbICAgIDUuMTc5MzIxXSBJUCBpZGVudHMgaGFzaCB0YWJsZSBlbnRyaWVzOiA2
NTUzNiAob3JkZXI6IDcsIDUyNDI4OCBieXRlcywgbGluZWFyKQ0KWyAgICA1LjE5NDcwNV0g
dGNwX2xpc3Rlbl9wb3J0YWRkcl9oYXNoIGhhc2ggdGFibGUgZW50cmllczogMjA0OCAob3Jk
ZXI6IDMsIDMyNzY4IGJ5dGVzLCBsaW5lYXIpDQpbICAgIDUuMjExNTc0XSBUYWJsZS1wZXJ0
dXJiIGhhc2ggdGFibGUgZW50cmllczogNjU1MzYgKG9yZGVyOiA2LCAyNjIxNDQgYnl0ZXMs
IGxpbmVhcikNClsgICAgNS4yMjcxNjJdIFRDUCBlc3RhYmxpc2hlZCBoYXNoIHRhYmxlIGVu
dHJpZXM6IDMyNzY4IChvcmRlcjogNiwgMjYyMTQ0IGJ5dGVzLCBsaW5lYXIpDQpbICAgIDUu
MjQzMTMyXSBUQ1AgYmluZCBoYXNoIHRhYmxlIGVudHJpZXM6IDMyNzY4IChvcmRlcjogOCwg
MTA0ODU3NiBieXRlcywgbGluZWFyKQ0KWyAgICA1LjI1ODA2OV0gVENQOiBIYXNoIHRhYmxl
cyBjb25maWd1cmVkIChlc3RhYmxpc2hlZCAzMjc2OCBiaW5kIDMyNzY4KQ0KWyAgICA1LjI3
MTIwMl0gVURQIGhhc2ggdGFibGUgZW50cmllczogMjA0OCAob3JkZXI6IDQsIDY1NTM2IGJ5
dGVzLCBsaW5lYXIpDQpbICAgIDUuMjg0NzA3XSBVRFAtTGl0ZSBoYXNoIHRhYmxlIGVudHJp
ZXM6IDIwNDggKG9yZGVyOiA0LCA2NTUzNiBieXRlcywgbGluZWFyKQ0KWyAgICA1LjI5OTEx
MV0gTkVUOiBSZWdpc3RlcmVkIFBGX1VOSVgvUEZfTE9DQUwgcHJvdG9jb2wgZmFtaWx5DQpb
ICAgIDUuMzExMTkxXSBSUEM6IFJlZ2lzdGVyZWQgbmFtZWQgVU5JWCBzb2NrZXQgdHJhbnNw
b3J0IG1vZHVsZS4NClsgICAgNS4zMjI4NTRdIFJQQzogUmVnaXN0ZXJlZCB1ZHAgdHJhbnNw
b3J0IG1vZHVsZS4NClsgICAgNS4zMzIzODFdIFJQQzogUmVnaXN0ZXJlZCB0Y3AgdHJhbnNw
b3J0IG1vZHVsZS4NClsgICAgNS4zNDE5MTRdIFJQQzogUmVnaXN0ZXJlZCB0Y3Atd2l0aC10
bHMgdHJhbnNwb3J0IG1vZHVsZS4NClsgICAgNS4zNTMwMDVdIFJQQzogUmVnaXN0ZXJlZCB0
Y3AgTkZTdjQuMSBiYWNrY2hhbm5lbCB0cmFuc3BvcnQgbW9kdWxlLg0KWyAgICA1LjM2NjQx
Ml0gcGNpIDAwMDA6MDA6MDIuMTogUENJIGJyaWRnZSB0byBbYnVzIDAxXQ0KWyAgICA1LjM3
NjE3OV0gcGNpIDAwMDA6MDA6MDIuMTogICBicmlkZ2Ugd2luZG93IFttZW0gMHhmZmUwMDAw
MDAwLTB4ZmZmODBmZmZmZiA2NGJpdCBwcmVmXQ0KWyAgICA1LjM5MjQ1OV0gcGNpIDAwMDA6
MDA6MDIuMzogUENJIGJyaWRnZSB0byBbYnVzIDAyXQ0KWyAgICA1LjQwMjUxN10gcGNpIDAw
MDA6MDA6MDIuMzogICBicmlkZ2Ugd2luZG93IFttZW0gMHhmZWEwMDAwMC0weGZlYWZmZmZm
XQ0KWyAgICA1LjQxNjIxMV0gcGNpIDAwMDA6MDA6MDIuNDogUENJIGJyaWRnZSB0byBbYnVz
IDAzXQ0KWyAgICA1LjQyNjI2MF0gcGNpIDAwMDA6MDA6MDIuNDogICBicmlkZ2Ugd2luZG93
IFtpbyAgMHhmMDAwLTB4ZmZmZl0NClsgICAgNS40Mzg1NzNdIHBjaSAwMDAwOjAwOjAyLjQ6
ICAgYnJpZGdlIHdpbmRvdyBbbWVtIDB4ZmU5MDAwMDAtMHhmZTlmZmZmZl0NClsgICAgNS40
NTIyNjZdIHBjaSAwMDAwOjAwOjA4LjE6IFBDSSBicmlkZ2UgdG8gW2J1cyAwNF0NClsgICAg
NS40NjIzMTJdIHBjaSAwMDAwOjAwOjA4LjE6ICAgYnJpZGdlIHdpbmRvdyBbaW8gIDB4ZTAw
MC0weGVmZmZdDQpbICAgIDUuNDc0NjIwXSBwY2kgMDAwMDowMDowOC4xOiAgIGJyaWRnZSB3
aW5kb3cgW21lbSAweGZlNDAwMDAwLTB4ZmU3ZmZmZmZdDQpbICAgIDUuNDg4MzEwXSBwY2kg
MDAwMDowMDowOC4xOiAgIGJyaWRnZSB3aW5kb3cgW21lbSAweGQwMDAwMDAwLTB4ZTAxZmZm
ZmYgNjRiaXQgcHJlZl0NClsgICAgNS41MDM5MTZdIHBjaSAwMDAwOjAwOjA4LjI6IFBDSSBi
cmlkZ2UgdG8gW2J1cyAwNV0NClsgICAgNS41MTM5NzBdIHBjaSAwMDAwOjAwOjA4LjI6ICAg
YnJpZGdlIHdpbmRvdyBbbWVtIDB4ZmU4MDAwMDAtMHhmZThmZmZmZl0NClsgICAgNS41Mjc2
NzNdIHBjaV9idXMgMDAwMDowMDogcmVzb3VyY2UgNCBbaW8gIDB4MDAwMC0weDAzYWYgd2lu
ZG93XQ0KWyAgICA1LjU0MDEzOV0gcGNpX2J1cyAwMDAwOjAwOiByZXNvdXJjZSA1IFtpbyAg
MHgwM2UwLTB4MGNmNyB3aW5kb3ddDQpbICAgIDUuNTUyNjE4XSBwY2lfYnVzIDAwMDA6MDA6
IHJlc291cmNlIDYgW2lvICAweDAzYjAtMHgwM2RmIHdpbmRvd10NClsgICAgNS41NjUwOTVd
IHBjaV9idXMgMDAwMDowMDogcmVzb3VyY2UgNyBbaW8gIDB4MGQwMC0weGZmZmYgd2luZG93
XQ0KWyAgICA1LjU3NzU3N10gcGNpX2J1cyAwMDAwOjAwOiByZXNvdXJjZSA4IFttZW0gMHgw
MDBhMDAwMC0weDAwMGRmZmZmIHdpbmRvd10NClsgICAgNS41OTE0NDZdIHBjaV9idXMgMDAw
MDowMDogcmVzb3VyY2UgOSBbbWVtIDB4ZDAwMDAwMDAtMHhmZWJmZmZmZiB3aW5kb3ddDQpb
ICAgIDUuNjA1MzEwXSBwY2lfYnVzIDAwMDA6MDA6IHJlc291cmNlIDEwIFttZW0gMHhmZWUw
MDAwMC0weGZmZmZmZmZmIHdpbmRvd10NClsgICAgNS42MTkzNDZdIHBjaV9idXMgMDAwMDow
MDogcmVzb3VyY2UgMTEgW21lbSAweDgzMDAwMDAwMC0weGZmZmZmZmZmZmYgd2luZG93XQ0K
WyAgICA1LjYzMzkxM10gcGNpX2J1cyAwMDAwOjAxOiByZXNvdXJjZSAyIFttZW0gMHhmZmUw
MDAwMDAwLTB4ZmZmODBmZmZmZiA2NGJpdCBwcmVmXQ0KWyAgICA1LjY0OTE2MF0gcGNpX2J1
cyAwMDAwOjAyOiByZXNvdXJjZSAxIFttZW0gMHhmZWEwMDAwMC0weGZlYWZmZmZmXQ0KWyAg
ICA1LjY2MTgxNl0gcGNpX2J1cyAwMDAwOjAzOiByZXNvdXJjZSAwIFtpbyAgMHhmMDAwLTB4
ZmZmZl0NClsgICAgNS42NzMwODNdIHBjaV9idXMgMDAwMDowMzogcmVzb3VyY2UgMSBbbWVt
IDB4ZmU5MDAwMDAtMHhmZTlmZmZmZl0NClsgICAgNS42ODU3MzddIHBjaV9idXMgMDAwMDow
NDogcmVzb3VyY2UgMCBbaW8gIDB4ZTAwMC0weGVmZmZdDQpbICAgIDUuNjk3MDA0XSBwY2lf
YnVzIDAwMDA6MDQ6IHJlc291cmNlIDEgW21lbSAweGZlNDAwMDAwLTB4ZmU3ZmZmZmZdDQpb
ICAgIDUuNzA5NjYyXSBwY2lfYnVzIDAwMDA6MDQ6IHJlc291cmNlIDIgW21lbSAweGQwMDAw
MDAwLTB4ZTAxZmZmZmYgNjRiaXQgcHJlZl0NClsgICAgNS43MjQyMTRdIHBjaV9idXMgMDAw
MDowNTogcmVzb3VyY2UgMSBbbWVtIDB4ZmU4MDAwMDAtMHhmZThmZmZmZl0NClsgICAgNS43
MzY5MzddIHBjaSAwMDAwOjAxOjAwLjA6IENMUyBtaXNtYXRjaCAoNjQgIT0gNDg0KSwgdXNp
bmcgNjQgYnl0ZXMNClsgICAgNS43NTAwNjVdIHBjaSAwMDAwOjA0OjAwLjE6IEQwIHBvd2Vy
IHN0YXRlIGRlcGVuZHMgb24gMDAwMDowNDowMC4wDQpbICAgIDUuNzYyODcyXSBwY2kgMDAw
MDowNDowMC4xOiBxdWlya19ncHVfaGRhKzB4MC8weDEwIHRvb2sgMTI1MjAgdXNlY3MNClsg
ICAgNS43NzU4NzNdIHBjaSAwMDAwOjA0OjAwLjM6IGV4dGVuZGluZyBkZWxheSBhZnRlciBw
b3dlci1vbiBmcm9tIEQzaG90IHRvIDIwIG1zZWMNClsgICAgNS43OTExMjddIHBjaSAwMDAw
OjA0OjAwLjM6IHF1aXJrX3J5emVuX3hoY2lfZDNob3QrMHgwLzB4MTAgdG9vayAxNDg5NiB1
c2Vjcw0KWyAgICA1LjgwNTg1Nl0gcGNpIDAwMDA6MDQ6MDAuNDogZXh0ZW5kaW5nIGRlbGF5
IGFmdGVyIHBvd2VyLW9uIGZyb20gRDNob3QgdG8gMjAgbXNlYw0KWyAgICA1LjgyMDk0MV0g
cGNpIDAwMDA6MDQ6MDAuNDogcXVpcmtfcnl6ZW5feGhjaV9kM2hvdCsweDAvMHgxMCB0b29r
IDE0NzMxIHVzZWNzDQpbICAgIDUuODM1NTg1XSBQQ0ktRE1BOiBVc2luZyBzb2Z0d2FyZSBi
b3VuY2UgYnVmZmVyaW5nIGZvciBJTyAoU1dJT1RMQikNClsgICAgNS44MzU2MzRdIFVucGFj
a2luZyBpbml0cmFtZnMuLi4NClsgICAgNS44NDg1MDJdIHNvZnR3YXJlIElPIFRMQjogbWFw
cGVkIFttZW0gMHgwMDAwMDAwMGM2YmM5MDAwLTB4MDAwMDAwMDBjYWJjOTAwMF0gKDY0TUIp
DQpbICAgIDUuODcxNDY2XSBjbG9ja3NvdXJjZTogdHNjOiBtYXNrOiAweGZmZmZmZmZmZmZm
ZmZmZmYgbWF4X2N5Y2xlczogMHgyOWI5MzVjNTQwZCwgbWF4X2lkbGVfbnM6IDQ0MDc5NTMz
NzYxNCBucw0KWyAgICA1Ljg5MTYyN10gY2xvY2tzb3VyY2U6IFN3aXRjaGVkIHRvIGNsb2Nr
c291cmNlIHRzYw0KWyAgICA1LjkwNDIzMF0gSW5pdGlhbGlzZSBzeXN0ZW0gdHJ1c3RlZCBr
ZXlyaW5ncw0KWyAgICA1LjkxMzE0OF0gd29ya2luZ3NldDogdGltZXN0YW1wX2JpdHM9NTYg
bWF4X29yZGVyPTIwIGJ1Y2tldF9vcmRlcj0wDQpbICAgIDUuOTI2MjQ5XSBORlM6IFJlZ2lz
dGVyaW5nIHRoZSBpZF9yZXNvbHZlciBrZXkgdHlwZQ0KWyAgICA1LjkzNjIyMl0gS2V5IHR5
cGUgaWRfcmVzb2x2ZXIgcmVnaXN0ZXJlZA0KWyAgICA1Ljk0NDcwMF0gS2V5IHR5cGUgaWRf
bGVnYWN5IHJlZ2lzdGVyZWQNClsgICAgNS45NTI5OTBdIDlwOiBJbnN0YWxsaW5nIHY5ZnMg
OXAyMDAwIGZpbGUgc3lzdGVtIHN1cHBvcnQNClsgICAgNS45NzUzMjhdIEtleSB0eXBlIGFz
eW1tZXRyaWMgcmVnaXN0ZXJlZA0KWyAgICA1Ljk4MzM4N10gQXN5bW1ldHJpYyBrZXkgcGFy
c2VyICd4NTA5JyByZWdpc3RlcmVkDQpbICAgIDUuOTkzMjkxXSBCbG9jayBsYXllciBTQ1NJ
IGdlbmVyaWMgKGJzZykgZHJpdmVyIHZlcnNpb24gMC40IGxvYWRlZCAobWFqb3IgMjUxKQ0K
WyAgICA2LjAwODE3OV0gaW8gc2NoZWR1bGVyIG1xLWRlYWRsaW5lIHJlZ2lzdGVyZWQNClsg
ICAgNi4wMTczNDldIGlvIHNjaGVkdWxlciBreWJlciByZWdpc3RlcmVkDQpbICAgIDYuMDI2
MDAyXSBwY2llcG9ydCAwMDAwOjAwOjAyLjE6IFBNRTogU2lnbmFsaW5nIHdpdGggSVJRIDQz
DQpbICAgIDYuMDM3NzY5XSBwY2llcG9ydCAwMDAwOjAwOjAyLjM6IFBNRTogU2lnbmFsaW5n
IHdpdGggSVJRIDQ0DQpbICAgIDYuMDQ5NTgzXSBwY2llcG9ydCAwMDAwOjAwOjAyLjQ6IFBN
RTogU2lnbmFsaW5nIHdpdGggSVJRIDQ1DQpbICAgIDYuMDYxMzgyXSBwY2llcG9ydCAwMDAw
OjAwOjA4LjE6IFBNRTogU2lnbmFsaW5nIHdpdGggSVJRIDQ2DQpbICAgIDYuMDczMjM4XSBw
Y2llcG9ydCAwMDAwOjAwOjA4LjI6IFBNRTogU2lnbmFsaW5nIHdpdGggSVJRIDQ3DQpbICAg
IDYuMDg0OTg1XSBpbnB1dDogUG93ZXIgQnV0dG9uIGFzIC9kZXZpY2VzL0xOWFNZU1RNOjAw
L0xOWFNZQlVTOjAwL1BOUDBDMEM6MDAvaW5wdXQvaW5wdXQwDQpbICAgIDYuMTAxNjEzXSBB
Q1BJOiBidXR0b246IFBvd2VyIEJ1dHRvbiBbUFdSQl0NClsgICAgNi4xMTA0ODJdIGlucHV0
OiBQb3dlciBCdXR0b24gYXMgL2RldmljZXMvTE5YU1lTVE06MDAvTE5YUFdSQk46MDAvaW5w
dXQvaW5wdXQxDQpbICAgIDYuMTEyMTA5XSBGcmVlaW5nIGluaXRyZCBtZW1vcnk6IDcyMDM5
MksNClsgICAgNi4xMjU0MTFdIEFDUEk6IGJ1dHRvbjogUG93ZXIgQnV0dG9uIFtQV1JGXQ0K
WyAgICA2LjE0MjQ4MV0gQUNQSTogdmlkZW86IFZpZGVvIERldmljZSBbVkdBXSAobXVsdGkt
aGVhZDogeWVzICByb206IG5vICBwb3N0OiBubykNClsgICAgNi4xNTc0MjJdIGlucHV0OiBW
aWRlbyBCdXMgYXMgL2RldmljZXMvTE5YU1lTVE06MDAvTE5YU1lCVVM6MDAvUE5QMEEwODow
MC9kZXZpY2U6MGUvTE5YVklERU86MDAvaW5wdXQvaW5wdXQyDQpbICAgIDYuMTc3NjIyXSBb
RmlybXdhcmUgQnVnXTogQUNQSSBNV0FJVCBDLXN0YXRlIDB4MCBub3Qgc3VwcG9ydGVkIGJ5
IEhXICgweDApDQpbICAgIDYuMTkxNjQ0XSBBQ1BJOiBcX1NCXy5QTFRGLlAwMDA6IEZvdW5k
IDMgaWRsZSBzdGF0ZXMNClsgICAgNi4yMDIxMjhdIFtGaXJtd2FyZSBCdWddOiBBQ1BJIE1X
QUlUIEMtc3RhdGUgMHgwIG5vdCBzdXBwb3J0ZWQgYnkgSFcgKDB4MCkNClsgICAgNi4yMTYy
NTRdIEFDUEk6IFxfU0JfLlBMVEYuUDAwMTogRm91bmQgMyBpZGxlIHN0YXRlcw0KWyAgICA2
LjIyNjcxMV0gW0Zpcm13YXJlIEJ1Z106IEFDUEkgTVdBSVQgQy1zdGF0ZSAweDAgbm90IHN1
cHBvcnRlZCBieSBIVyAoMHgwKQ0KWyAgICA2LjI0MDg2Nl0gQUNQSTogXF9TQl8uUExURi5Q
MDAyOiBGb3VuZCAzIGlkbGUgc3RhdGVzDQpbICAgIDYuMjUxODY0XSB0aGVybWFsIExOWFRI
RVJNOjAwOiByZWdpc3RlcmVkIGFzIHRoZXJtYWxfem9uZTANClsgICAgNi4yNjMwMTFdIEFD
UEk6IHRoZXJtYWw6IFRoZXJtYWwgWm9uZSBbVEhSTV0gKDIwIEMpDQpbICAgIDYuMjczMzE1
XSB0aGVybWFsIExOWFRIRVJNOjAxOiByZWdpc3RlcmVkIGFzIHRoZXJtYWxfem9uZTENClsg
ICAgNi4yODQ2NzVdIEFDUEk6IHRoZXJtYWw6IFRoZXJtYWwgWm9uZSBbV0RURl0gKDAgQykN
ClsgICAgNi4yOTUyODBdIHhlbl9tY2Vsb2c6IEZhaWxlZCB0byBnZXQgQ1BVIG51bWJlcnMN
ClsgICAgNi4zMDUxNjRdIFNlcmlhbDogODI1MC8xNjU1MCBkcml2ZXIsIDQgcG9ydHMsIElS
USBzaGFyaW5nIGVuYWJsZWQNClsgICAgNi4zMTc2OTldIDAwOjA0OiB0dHlTMSBhdCBJL08g
MHgyZjggKGlycSA9IDMsIGJhc2VfYmF1ZCA9IDExNTIwMCkgaXMgYSAxNjU1MEENClsgICAg
Ni4zMzI2MDldIGhwZXRfYWNwaV9hZGQ6IG5vIGFkZHJlc3Mgb3IgaXJxcyBpbiBfQ1JTDQpb
ICAgIDYuMzQyNjA3XSBOb24tdm9sYXRpbGUgbWVtb3J5IGRyaXZlciB2MS4zDQpbICAgIDYu
MzUxMDI0XSBMaW51eCBhZ3BnYXJ0IGludGVyZmFjZSB2MC4xMDMNClsgICAgNi4zNTk3Njld
IEFDUEk6IGJ1cyB0eXBlIGRybV9jb25uZWN0b3IgcmVnaXN0ZXJlZA0KWyAgICA2LjM3MTMz
MF0gbG9vcDogbW9kdWxlIGxvYWRlZA0KWyAgICA2LjM3ODE5OF0gbnZtZSBudm1lMDogcGNp
IGZ1bmN0aW9uIDAwMDA6MDI6MDAuMA0KKFhFTikgWyAgIDIwLjk2NDc4OV0gZDB2MyB1bmFi
bGUgdG8gZml4dXAgbWVtb3J5IHJlYWQgZnJvbSAweGZlYTAzMDBjIHNpemUgNDogLTENClsg
ICAgNi4zODc2OTJdIGEoWEVOKSBbICAgMjAuOTgxNzcyXSBkMHYzIHVuYWJsZSB0byBmaXh1
cCBtZW1vcnkgd3JpdGUgdG8gMHhmZWEwMzAwMCBzaXplIDQ6IC0xDQpoY2kgMDAwMDowNTow
MC4wKFhFTikgWyAgIDIwLjk5ODU4Nl0gZDB2MyB1bmFibGUgdG8gZml4dXAgbWVtb3J5IHdy
aXRlIHRvIDB4ZmVhMDMwMDQgc2l6ZSA0OiAtMQ0KOiBBSENJIHZlcnMgMDAwMShYRU4pIFsg
ICAyMS4wMTU0MDJdIGQwdjMgdW5hYmxlIHRvIGZpeHVwIG1lbW9yeSB3cml0ZSB0byAweGZl
YTAzMDA4IHNpemUgNDogLTENCi4wMzAxLCAzMiBjb21tYW4oWEVOKSBbICAgMjEuMDMyMjE0
XSBkMHYzIHVuYWJsZSB0byBmaXh1cCBtZW1vcnkgcmVhZCBmcm9tIDB4ZmVhMDMwMDggc2l6
ZSA0OiAtMQ0KZCBzbG90cywgNiBHYnBzLChYRU4pIFsgICAyMS4wNDkxOTldIGQwdjMgdW5h
YmxlIHRvIGZpeHVwIG1lbW9yeSB3cml0ZSB0byAweGZlYTAzMDBjIHNpemUgNDogLTENCiBT
QVRBIG1vZGUNCihYRU4pIFsgICAyMS4wNjU0OTNdIGQwdjMgdW5hYmxlIHRvIGZpeHVwIG1l
bW9yeSB3cml0ZSB0byAweGZlYTAzMDFjIHNpemUgNDogLTENCihYRU4pIFsgICAyMS4wNzk1
MzBdIGQwdjMgdW5hYmxlIHRvIGZpeHVwIG1lbW9yeSB3cml0ZSB0byAweGZlYTAzMDJjIHNp
emUgNDogLTENClsgICAgNi41MDIxODhdIGEoWEVOKSBbICAgMjEuMDk2MzQ4XSBkMHYzIHVu
YWJsZSB0byBmaXh1cCBtZW1vcnkgd3JpdGUgdG8gMHhmZWEwMzAzYyBzaXplIDQ6IC0xDQpo
Y2kgMDAwMDowNTowMC4wKFhFTikgWyAgIDIxLjExMzE1OV0gZDB2MyB1bmFibGUgdG8gZml4
dXAgbWVtb3J5IHdyaXRlIHRvIDB4ZmVhMDMwNGMgc2l6ZSA0OiAtMQ0KOiAxLzEgcG9ydHMg
aW1wbChYRU4pIFsgICAyMS4xMjk5NzBdIGQwdjMgdW5hYmxlIHRvIGZpeHVwIG1lbW9yeSB3
cml0ZSB0byAweGZlYTAzMDVjIHNpemUgNDogLTENCmVtZW50ZWQgKHBvcnQgbWEoWEVOKSBb
ICAgMjEuMTQ2Nzg3XSBkMHYzIHVuYWJsZSB0byBmaXh1cCBtZW1vcnkgd3JpdGUgdG8gMHhm
ZWEwMzA2YyBzaXplIDQ6IC0xDQpzayAweDEpDQooWEVOKSBbICAgMjEuMTYyNTU2XSBkMHYz
IHVuYWJsZSB0byBmaXh1cCBtZW1vcnkgd3JpdGUgdG8gMHhmZWEwMzA3YyBzaXplIDQ6IC0x
DQooWEVOKSBbICAgMjEuMTc2NTk2XSBkMHYzIHVuYWJsZSB0byBmaXh1cCBtZW1vcnkgd3Jp
dGUgdG8gMHhmZWEwMzA4YyBzaXplIDQ6IC0xDQooWEVOKSBbICAgMjEuMTkwNjM2XSBkMHYz
IHVuYWJsZSB0byBmaXh1cCBtZW1vcnkgd3JpdGUgdG8gMHhmZWEwMzA5YyBzaXplIDQ6IC0x
DQooWEVOKSBbICAgMjEuMjA0Njc2XSBkMHYzIHVuYWJsZSB0byBmaXh1cCBtZW1vcnkgd3Jp
dGUgdG8gMHhmZWEwMzBhYyBzaXplIDQ6IC0xDQooWEVOKSBbICAgMjEuMjE4NzIxXSBkMHYz
IHVuYWJsZSB0byBmaXh1cCBtZW1vcnkgd3JpdGUgdG8gMHhmZWEwMzBiYyBzaXplIDQ6IC0x
DQooWEVOKSBbICAgMjEuMjMyNzU2XSBkMHYzIHVuYWJsZSB0byBmaXh1cCBtZW1vcnkgd3Jp
dGUgdG8gMHhmZWEwMzBjYyBzaXplIDQ6IC0xDQooWEVOKSBbICAgMjEuMjQ2ODAyXSBkMHYz
IHVuYWJsZSB0byBmaXh1cCBtZW1vcnkgd3JpdGUgdG8gMHhmZWEwMzBkYyBzaXplIDQ6IC0x
DQpbICAgIDYuNjY5NDUzXSBhKFhFTikgWyAgIDIxLjI2MzYxMV0gZDB2MyB1bmFibGUgdG8g
Zml4dXAgbWVtb3J5IHdyaXRlIHRvIDB4ZmVhMDMwZWMgc2l6ZSA0OiAtMQ0KaGNpIDAwMDA6
MDU6MDAuMChYRU4pIFsgICAyMS4yODA0MjNdIGQwdjMgdW5hYmxlIHRvIGZpeHVwIG1lbW9y
eSB3cml0ZSB0byAweGZlYTAzMGZjIHNpemUgNDogLTENCjogZmxhZ3M6IDY0Yml0IG4oWEVO
KSBbICAgMjEuMjk3MjQxXSBkMHYzIHVuYWJsZSB0byBmaXh1cCBtZW1vcnkgd3JpdGUgdG8g
MHhmZWEwMzEwYyBzaXplIDQ6IC0xDQpjcSBzbnRmIGlsY2sgcG0gKFhFTikgWyAgIDIxLjMx
NDA1M10gZDB2MyB1bmFibGUgdG8gZml4dXAgbWVtb3J5IHdyaXRlIHRvIDB4ZmVhMDMxMWMg
c2l6ZSA0OiAtMQ0KbGVkIGNsbyBvbmx5IHBtcChYRU4pIFsgICAyMS4zMzA4NjhdIGQwdjMg
dW5hYmxlIHRvIGZpeHVwIG1lbW9yeSB3cml0ZSB0byAweGZlYTAzMTJjIHNpemUgNDogLTEN
CiBmYnMgcGlvIHNsdW0gcGEoWEVOKSBbICAgMjEuMzQ3Njc2XSBkMHYzIHVuYWJsZSB0byBm
aXh1cCBtZW1vcnkgd3JpdGUgdG8gMHhmZWEwMzEzYyBzaXplIDQ6IC0xDQpydA0KKFhFTikg
WyAgIDIxLjM2Mjc1OF0gZDB2MyB1bmFibGUgdG8gZml4dXAgbWVtb3J5IHdyaXRlIHRvIDB4
ZmVhMDMxNGMgc2l6ZSA0OiAtMQ0KKFhFTikgWyAgIDIxLjM3Njc5OV0gZDB2MyB1bmFibGUg
dG8gZml4dXAgbWVtb3J5IHdyaXRlIHRvIDB4ZmVhMDMxNWMgc2l6ZSA0OiAtMQ0KKFhFTikg
WyAgIDIxLjM5MDgzNl0gZDB2MyB1bmFibGUgdG8gZml4dXAgbWVtb3J5IHdyaXRlIHRvIDB4
ZmVhMDMxNmMgc2l6ZSA0OiAtMQ0KKFhFTikgWyAgIDIxLjQwNDg3OF0gZDB2MyB1bmFibGUg
dG8gZml4dXAgbWVtb3J5IHdyaXRlIHRvIDB4ZmVhMDMxN2Mgc2l6ZSA0OiAtMQ0KKFhFTikg
WyAgIDIxLjQxODkxNl0gZDB2MyB1bmFibGUgdG8gZml4dXAgbWVtb3J5IHdyaXRlIHRvIDB4
ZmVhMDMxOGMgc2l6ZSA0OiAtMQ0KKFhFTikgWyAgIDIxLjQzMjk1Nl0gZDB2MyB1bmFibGUg
dG8gZml4dXAgbWVtb3J5IHdyaXRlIHRvIDB4ZmVhMDMxOWMgc2l6ZSA0OiAtMQ0KKFhFTikg
WyAgIDIxLjQ0Njk5Nl0gZDB2MyB1bmFibGUgdG8gZml4dXAgbWVtb3J5IHdyaXRlIHRvIDB4
ZmVhMDMxYWMgc2l6ZSA0OiAtMQ0KKFhFTikgWyAgIDIxLjQ2MTAzNl0gZDB2MyB1bmFibGUg
dG8gZml4dXAgbWVtb3J5IHdyaXRlIHRvIDB4ZmVhMDMxYmMgc2l6ZSA0OiAtMQ0KKFhFTikg
WyAgIDIxLjQ3NTA3OF0gZDB2MyB1bmFibGUgdG8gZml4dXAgbWVtb3J5IHdyaXRlIHRvIDB4
ZmVhMDMxY2Mgc2l6ZSA0OiAtMQ0KKFhFTikgWyAgIDIxLjQ4OTExNl0gZDB2MyB1bmFibGUg
dG8gZml4dXAgbWVtb3J5IHdyaXRlIHRvIDB4ZmVhMDMxZGMgc2l6ZSA0OiAtMQ0KKFhFTikg
WyAgIDIxLjUwMzE1OF0gZDB2MyB1bmFibGUgdG8gZml4dXAgbWVtb3J5IHdyaXRlIHRvIDB4
ZmVhMDMxZWMgc2l6ZSA0OiAtMQ0KKFhFTikgWyAgIDIxLjUxNzE5NV0gZDB2MyB1bmFibGUg
dG8gZml4dXAgbWVtb3J5IHdyaXRlIHRvIDB4ZmVhMDMxZmMgc2l6ZSA0OiAtMQ0KKFhFTikg
WyAgIDIxLjUzMTIzOV0gZDB2MyB1bmFibGUgdG8gZml4dXAgbWVtb3J5IHdyaXRlIHRvIDB4
ZmVhMDMyMGMgc2l6ZSA0OiAtMQ0KWyAgICA2Ljk2ODEwOF0gc2NzaSBob3N0MDogYWhjaQ0K
KFhFTikgWyAgIDIxLjU1MTE3NF0gZDB2MyB1bmFibGUgdG8gZml4dXAgbWVtb3J5IHdyaXRl
IHRvIDB4ZmVhMDMwMDAgc2l6ZSA0OiAtMQ0KKFhFTikgWyAgIDIxLjU2NTIxMF0gZDB2MyB1
bmFibGUgdG8gZml4dXAgbWVtb3J5IHdyaXRlIHRvIDB4ZmVhMDMwMDQgc2l6ZSA0OiAtMQ0K
KFhFTikgWyAgIDIxLjU3OTI1Ml0gZDB2MyB1bmFibGUgdG8gZml4dXAgbWVtb3J5IHdyaXRl
IHRvIDB4ZmVhMDMwMDggc2l6ZSA0OiAtMQ0KKFhFTikgWyAgIDIxLjU5MzI4OV0gZDB2MyB1
bmFibGUgdG8gZml4dXAgbWVtb3J5IHJlYWQgZnJvbSAweGZlYTAzMDA4IHNpemUgNDogLTEN
CihYRU4pIFsgICAyMS42MDc1MDJdIGQwdjMgdW5hYmxlIHRvIGZpeHVwIG1lbW9yeSB3cml0
ZSB0byAweGZlYTAzMDAwIHNpemUgNDogLTENCihYRU4pIFsgICAyMS42MjE1NDRdIGQwdjMg
dW5hYmxlIHRvIGZpeHVwIG1lbW9yeSB3cml0ZSB0byAweGZlYTAzMDA0IHNpemUgNDogLTEN
CihYRU4pIFsgICAyMS42MzU1ODZdIGQwdjMgdW5hYmxlIHRvIGZpeHVwIG1lbW9yeSB3cml0
ZSB0byAweGZlYTAzMDA4IHNpemUgNDogLTENCihYRU4pIFsgICAyMS42NDk2MjddIGQwdjMg
dW5hYmxlIHRvIGZpeHVwIG1lbW9yeSByZWFkIGZyb20gMHhmZWEwMzAwOCBzaXplIDQ6IC0x
DQooWEVOKSBbICAgMjEuNjYzODM1XSBkMHYzIHVuYWJsZSB0byBmaXh1cCBtZW1vcnkgd3Jp
dGUgdG8gMHhmZWEwMzAwYyBzaXplIDQ6IC0xDQpbICAgIDcuMTAwNTY2XSBhdGExOiBTQVRB
IG1heCBVRE1BLzEzMyBhYmFyIG0yMDQ4QDB4ZmU4MDEwMDAgcG9ydCAweGZlODAxMTAwIGly
cSA1MSBscG0tcG9sIDMNClsgICAgNy4xMTcyODZdIGFoY2kgMDAwMDowNTowMC4xOiBBSENJ
IHZlcnMgMDAwMS4wMzAxLCAzMiBjb21tYW5kIHNsb3RzLCA2IEdicHMsIFNBVEEgbW9kZQ0K
WyAgICA3LjEzMzI5MV0gYWhjaSAwMDAwOjA1OjAwLjE6IDEvMSBwb3J0cyBpbXBsZW1lbnRl
ZCAocG9ydCBtYXNrIDB4MSkNClsgICAgNy4xNDYxMTddIGFoY2kgMDAwMDowNTowMC4xOiBm
bGFnczogNjRiaXQgbmNxIHNudGYgaWxjayBwbSBsZWQgY2xvIG9ubHkgcG1wIGZicyBwaW8g
c2x1bSBwYXJ0DQpbICAgIDcuMTY0MjkzXSBzY3NpIGhvc3QxOiBhaGNpDQpbICAgIDcuMTY5
OTEyXSBhdGEyOiBTQVRBIG1heCBVRE1BLzEzMyBhYmFyIG0yMDQ4QDB4ZmU4MDAwMDAgcG9y
dCAweGZlODAwMTAwIGlycSA1NCBscG0tcG9sIDMNClsgICAgNy4xODY3MjddIFJvdW5kaW5n
IGRvd24gYWxpZ25lZCBtYXhfc2VjdG9ycyBmcm9tIDQyOTQ5NjcyOTUgdG8gNDI5NDk2NzI4
OA0KWyAgICA3LjIwMDY4NF0gZGJfcm9vdDogY2Fubm90IG9wZW46IC9ldGMvdGFyZ2V0DQpb
ICAgIDcuMjA5NTIzXSBlMTAwOiBJbnRlbChSKSBQUk8vMTAwIE5ldHdvcmsgRHJpdmVyDQpb
ICAgIDcuMjE4OTQwXSBlMTAwOiBDb3B5cmlnaHQoYykgMTk5OS0yMDA2IEludGVsIENvcnBv
cmF0aW9uDQpbICAgIDcuMjMwMDQxXSBlMTAwMDogSW50ZWwoUikgUFJPLzEwMDAgTmV0d29y
ayBEcml2ZXINClsgICAgNy4yMzk5MTZdIGUxMDAwOiBDb3B5cmlnaHQgKGMpIDE5OTktMjAw
NiBJbnRlbCBDb3Jwb3JhdGlvbi4NClsgICAgNy4yNTE1MzNdIGUxMDAwZTogSW50ZWwoUikg
UFJPLzEwMDAgTmV0d29yayBEcml2ZXINClsgICAgNy4yNjE1ODBdIGUxMDAwZTogQ29weXJp
Z2h0KGMpIDE5OTkgLSAyMDE1IEludGVsIENvcnBvcmF0aW9uLg0KWyAgICA3LjI3MzU1Ml0g
c2t5MjogZHJpdmVyIHZlcnNpb24gMS4zMA0KKFhFTikgWyAgIDIxLjg2NDgxN10gZDB2MyB1
bmFibGUgdG8gZml4dXAgbWVtb3J5IHJlYWQgZnJvbSAweGZlOTEwMDBjIHNpemUgNDogLTEN
CihYRU4pIFsgICAyMS44NzkwMjhdIGQwdjMgdW5hYmxlIHRvIGZpeHVwIG1lbW9yeSB3cml0
ZSB0byAweGZlOTEwMDAwIHNpemUgNDogLTENCihYRU4pIFsgICAyMS44OTMwNzFdIGQwdjMg
dW5hYmxlIHRvIGZpeHVwIG1lbW9yeSB3cml0ZSB0byAweGZlOTEwMDA0IHNpemUgNDogLTEN
CihYRU4pIFsgICAyMS45MDcxMTJdIGQwdjMgdW5hYmxlIHRvIGZpeHVwIG1lbW9yeSB3cml0
ZSB0byAweGZlOTEwMDA4IHNpemUgNDogLTENCihYRU4pIFsgICAyMS45MjExNTNdIGQwdjMg
dW5hYmxlIHRvIGZpeHVwIG1lbW9yeSByZWFkIGZyb20gMHhmZTkxMDAwOCBzaXplIDQ6IC0x
DQooWEVOKSBbICAgMjEuOTM1MzYzXSBkMHYzIHVuYWJsZSB0byBmaXh1cCBtZW1vcnkgd3Jp
dGUgdG8gMHhmZTkxMDAwYyBzaXplIDQ6IC0xDQooWEVOKSBbICAgMjEuOTQ5NDA3XSBkMHYz
IHVuYWJsZSB0byBmaXh1cCBtZW1vcnkgd3JpdGUgdG8gMHhmZTkxMDAxYyBzaXplIDQ6IC0x
DQooWEVOKSBbICAgMjEuOTYzNDQ1XSBkMHYzIHVuYWJsZSB0byBmaXh1cCBtZW1vcnkgd3Jp
dGUgdG8gMHhmZTkxMDAyYyBzaXplIDQ6IC0xDQooWEVOKSBbICAgMjEuOTc3NDg3XSBkMHYz
IHVuYWJsZSB0byBmaXh1cCBtZW1vcnkgd3JpdGUgdG8gMHhmZTkxMDAzYyBzaXplIDQ6IC0x
DQooWEVOKSBbICAgMjEuOTkxNTIyXSBkMHYzIHVuYWJsZSB0byBmaXh1cCBtZW1vcnkgd3Jp
dGUgdG8gMHhmZTkxMDA0YyBzaXplIDQ6IC0xDQooWEVOKSBbICAgMjIuMDA1NTY1XSBkMHYz
IHVuYWJsZSB0byBmaXh1cCBtZW1vcnkgd3JpdGUgdG8gMHhmZTkxMDA1YyBzaXplIDQ6IC0x
DQooWEVOKSBbICAgMjIuMDE5NjAxXSBkMHYzIHVuYWJsZSB0byBmaXh1cCBtZW1vcnkgd3Jp
dGUgdG8gMHhmZTkxMDA2YyBzaXplIDQ6IC0xDQooWEVOKSBbICAgMjIuMDMzNjQxXSBkMHYz
IHVuYWJsZSB0byBmaXh1cCBtZW1vcnkgd3JpdGUgdG8gMHhmZTkxMDA3YyBzaXplIDQ6IC0x
DQooWEVOKSBbICAgMjIuMDQ3Njg3XSBkMHYzIHVuYWJsZSB0byBmaXh1cCBtZW1vcnkgd3Jp
dGUgdG8gMHhmZTkxMDA4YyBzaXplIDQ6IC0xDQooWEVOKSBbICAgMjIuMDYxNzI3XSBkMHYz
IHVuYWJsZSB0byBmaXh1cCBtZW1vcnkgd3JpdGUgdG8gMHhmZTkxMDA5YyBzaXplIDQ6IC0x
DQpbICAgIDcuNDg0MzkyXSBhKFhFTikgWyAgIDIyLjA3ODUzNF0gZDB2MyB1bmFibGUgdG8g
Zml4dXAgbWVtb3J5IHdyaXRlIHRvIDB4ZmU5MTAwYWMgc2l6ZSA0OiAtMQ0KdGExOiBTQVRB
IGxpbmsgZChYRU4pIFsgICAyMi4wOTUzNDldIGQwdjMgdW5hYmxlIHRvIGZpeHVwIG1lbW9y
eSB3cml0ZSB0byAweGZlOTEwMGJjIHNpemUgNDogLTENCm93biAoU1N0YXR1cyAwIFMoWEVO
KSBbICAgMjIuMTEyMTY0XSBkMHYzIHVuYWJsZSB0byBmaXh1cCBtZW1vcnkgd3JpdGUgdG8g
MHhmZTkxMDBjYyBzaXplIDQ6IC0xDQpDb250cm9sIDMwMCkNCihYRU4pIFsgICAyMi4xMjg4
MDZdIGQwdjMgdW5hYmxlIHRvIGZpeHVwIG1lbW9yeSB3cml0ZSB0byAweGZlOTEwMGRjIHNp
emUgNDogLTENCihYRU4pIFsgICAyMi4xNDI4NDRdIGQwdjMgdW5hYmxlIHRvIGZpeHVwIG1l
bW9yeSB3cml0ZSB0byAweGZlOTEwMGVjIHNpemUgNDogLTENClsgICAgNy41NjU1MTddIGEo
WEVOKSBbICAgMjIuMTU5NjU5XSBkMHYzIHVuYWJsZSB0byBmaXh1cCBtZW1vcnkgd3JpdGUg
dG8gMHhmZTkxMDBmYyBzaXplIDQ6IC0xDQp0YTI6IFNBVEEgbGluayBkKFhFTikgWyAgIDIy
LjE3NjQ3MV0gZDB2MyB1bmFibGUgdG8gZml4dXAgbWVtb3J5IHdyaXRlIHRvIDB4ZmU5MTAx
MGMgc2l6ZSA0OiAtMQ0Kb3duIChTU3RhdHVzIDAgUyhYRU4pIFsgICAyMi4xOTMyODFdIGQw
djMgdW5hYmxlIHRvIGZpeHVwIG1lbW9yeSB3cml0ZSB0byAweGZlOTEwMTFjIHNpemUgNDog
LTENCkNvbnRyb2wgMzAwKQ0KKFhFTikgWyAgIDIyLjIwOTkyMl0gZDB2MyB1bmFibGUgdG8g
Zml4dXAgbWVtb3J5IHdyaXRlIHRvIDB4ZmU5MTAxMmMgc2l6ZSA0OiAtMQ0KKFhFTikgWyAg
IDIyLjIyMzk2NF0gZDB2MyB1bmFibGUgdG8gZml4dXAgbWVtb3J5IHdyaXRlIHRvIDB4ZmU5
MTAxM2Mgc2l6ZSA0OiAtMQ0KKFhFTikgWyAgIDIyLjIzODAwMl0gZDB2MyB1bmFibGUgdG8g
Zml4dXAgbWVtb3J5IHdyaXRlIHRvIDB4ZmU5MTAxNGMgc2l6ZSA0OiAtMQ0KKFhFTikgWyAg
IDIyLjI1MjA0NF0gZDB2MyB1bmFibGUgdG8gZml4dXAgbWVtb3J5IHdyaXRlIHRvIDB4ZmU5
MTAxNWMgc2l6ZSA0OiAtMQ0KKFhFTikgWyAgIDIyLjI2NjA4NV0gZDB2MyB1bmFibGUgdG8g
Zml4dXAgbWVtb3J5IHdyaXRlIHRvIDB4ZmU5MTAxNmMgc2l6ZSA0OiAtMQ0KKFhFTikgWyAg
IDIyLjI4MDEyMV0gZDB2MyB1bmFibGUgdG8gZml4dXAgbWVtb3J5IHdyaXRlIHRvIDB4ZmU5
MTAxN2Mgc2l6ZSA0OiAtMQ0KKFhFTikgWyAgIDIyLjI5NDE2Nl0gZDB2MyB1bmFibGUgdG8g
Zml4dXAgbWVtb3J5IHdyaXRlIHRvIDB4ZmU5MTAxOGMgc2l6ZSA0OiAtMQ0KKFhFTikgWyAg
IDIyLjMwODIwMF0gZDB2MyB1bmFibGUgdG8gZml4dXAgbWVtb3J5IHdyaXRlIHRvIDB4ZmU5
MTAxOWMgc2l6ZSA0OiAtMQ0KKFhFTikgWyAgIDIyLjMyMjI0MV0gZDB2MyB1bmFibGUgdG8g
Zml4dXAgbWVtb3J5IHdyaXRlIHRvIDB4ZmU5MTAxYWMgc2l6ZSA0OiAtMQ0KKFhFTikgWyAg
IDIyLjMzNjI4MV0gZDB2MyB1bmFibGUgdG8gZml4dXAgbWVtb3J5IHdyaXRlIHRvIDB4ZmU5
MTAxYmMgc2l6ZSA0OiAtMQ0KKFhFTikgWyAgIDIyLjM1MDMyNl0gZDB2MyB1bmFibGUgdG8g
Zml4dXAgbWVtb3J5IHdyaXRlIHRvIDB4ZmU5MTAxY2Mgc2l6ZSA0OiAtMQ0KKFhFTikgWyAg
IDIyLjM2NDM2MF0gZDB2MyB1bmFibGUgdG8gZml4dXAgbWVtb3J5IHdyaXRlIHRvIDB4ZmU5
MTAxZGMgc2l6ZSA0OiAtMQ0KKFhFTikgWyAgIDIyLjM3ODQwMF0gZDB2MyB1bmFibGUgdG8g
Zml4dXAgbWVtb3J5IHdyaXRlIHRvIDB4ZmU5MTAxZWMgc2l6ZSA0OiAtMQ0KKFhFTikgWyAg
IDIyLjM5MjQ0MV0gZDB2MyB1bmFibGUgdG8gZml4dXAgbWVtb3J5IHdyaXRlIHRvIDB4ZmU5
MTAxZmMgc2l6ZSA0OiAtMQ0KWyAgICA3LjgyOTcwNV0gbW9kcHJvYmUgKDgwKSB1c2VkIGdy
ZWF0ZXN0IHN0YWNrIGRlcHRoOiAxMzkzNiBieXRlcyBsZWZ0DQpbICAgIDcuODI5OTA0XSBy
ODE2OSAwMDAwOjAzOjAwLjAgZXRoMDogUlRMODEyNUIsIGRjOjljOjUyOjI3OmFlOmM0LCBY
SUQgNjQxLCBJUlEgNTYNClsgICAgNy44NTc0ODldIHI4MTY5IDAwMDA6MDM6MDAuMCBldGgw
OiBqdW1ibyBmZWF0dXJlcyBbZnJhbWVzOiA5MTk0IGJ5dGVzLCB0eCBjaGVja3N1bW1pbmc6
IGtvXQ0KWyAgICA3Ljg3NDk1M10geGhjaV9oY2QgMDAwMDowNDowMC4zOiB4SENJIEhvc3Qg
Q29udHJvbGxlcg0KWyAgICA3Ljg4NTI4Nl0geGhjaV9oY2QgMDAwMDowNDowMC4zOiBuZXcg
VVNCIGJ1cyByZWdpc3RlcmVkLCBhc3NpZ25lZCBidXMgbnVtYmVyIDENClsgICAgNy45MDAy
MzJdIHhoY2lfaGNkIDAwMDA6MDQ6MDAuMzogaGNjIHBhcmFtcyAweDAyNjhmZmU1IGhjaSB2
ZXJzaW9uIDB4MTEwIHF1aXJrcyAweDAwMDAwMjAwMDAwMDAwMTANCihYRU4pIFsgICAyMi40
OTU4NTldIGQwdjEgdW5hYmxlIHRvIGZpeHVwIG1lbW9yeSByZWFkIGZyb20gMHhmZTVmZTAw
YyBzaXplIDQ6IC0xDQooWEVOKSBbICAgMjIuNTEwMDc3XSBkMHYxIHVuYWJsZSB0byBmaXh1
cCBtZW1vcnkgcmVhZCBmcm9tIDB4ZmU1ZmUwMWMgc2l6ZSA0OiAtMQ0KKFhFTikgWyAgIDIy
LjUyNDI5MV0gZDB2MSB1bmFibGUgdG8gZml4dXAgbWVtb3J5IHJlYWQgZnJvbSAweGZlNWZl
MDJjIHNpemUgNDogLTENCihYRU4pIFsgICAyMi41Mzg1MDBdIGQwdjEgdW5hYmxlIHRvIGZp
eHVwIG1lbW9yeSByZWFkIGZyb20gMHhmZTVmZTAzYyBzaXplIDQ6IC0xDQooWEVOKSBbICAg
MjIuNTUyNzE1XSBkMHYxIHVuYWJsZSB0byBmaXh1cCBtZW1vcnkgcmVhZCBmcm9tIDB4ZmU1
ZmUwNGMgc2l6ZSA0OiAtMQ0KKFhFTikgWyAgIDIyLjU2NjkyOF0gZDB2MSB1bmFibGUgdG8g
Zml4dXAgbWVtb3J5IHdyaXRlIHRvIDB4ZmU1ZmUwMDAgc2l6ZSA0OiAtMQ0KKFhFTikgWyAg
IDIyLjU4MDk3MF0gZDB2MSB1bmFibGUgdG8gZml4dXAgbWVtb3J5IHdyaXRlIHRvIDB4ZmU1
ZmUwMDQgc2l6ZSA0OiAtMQ0KKFhFTikgWyAgIDIyLjU5NTAwOV0gZDB2MSB1bmFibGUgdG8g
Zml4dXAgbWVtb3J5IHdyaXRlIHRvIDB4ZmU1ZmUwMDggc2l6ZSA0OiAtMQ0KKFhFTikgWyAg
IDIyLjYwOTA0OV0gZDB2MSB1bmFibGUgdG8gZml4dXAgbWVtb3J5IHJlYWQgZnJvbSAweGZl
NWZlMDA4IHNpemUgNDogLTENCihYRU4pIFsgICAyMi42MjMyNTldIGQwdjEgdW5hYmxlIHRv
IGZpeHVwIG1lbW9yeSB3cml0ZSB0byAweGZlNWZlMDEwIHNpemUgNDogLTENCihYRU4pIFsg
ICAyMi42MzcyOTldIGQwdjEgdW5hYmxlIHRvIGZpeHVwIG1lbW9yeSB3cml0ZSB0byAweGZl
NWZlMDE0IHNpemUgNDogLTENCihYRU4pIFsgICAyMi42NTEzNDJdIGQwdjEgdW5hYmxlIHRv
IGZpeHVwIG1lbW9yeSB3cml0ZSB0byAweGZlNWZlMDE4IHNpemUgNDogLTENCihYRU4pIFsg
ICAyMi42NjUzODNdIGQwdjEgdW5hYmxlIHRvIGZpeHVwIG1lbW9yeSByZWFkIGZyb20gMHhm
ZTVmZTAxOCBzaXplIDQ6IC0xDQooWEVOKSBbICAgMjIuNjc5NTkyXSBkMHYxIHVuYWJsZSB0
byBmaXh1cCBtZW1vcnkgd3JpdGUgdG8gMHhmZTVmZTAyMCBzaXplIDQ6IC0xDQooWEVOKSBb
ICAgMjIuNjkzNjMzXSBkMHYxIHVuYWJsZSB0byBmaXh1cCBtZW1vcnkgd3JpdGUgdG8gMHhm
ZTVmZTAyNCBzaXplIDQ6IC0xDQooWEVOKSBbICAgMjIuNzA3Njc2XSBkMHYxIHVuYWJsZSB0
byBmaXh1cCBtZW1vcnkgd3JpdGUgdG8gMHhmZTVmZTAyOCBzaXplIDQ6IC0xDQooWEVOKSBb
ICAgMjIuNzIxNzE3XSBkMHYxIHVuYWJsZSB0byBmaXh1cCBtZW1vcnkgcmVhZCBmcm9tIDB4
ZmU1ZmUwMjggc2l6ZSA0OiAtMQ0KKFhFTikgWyAgIDIyLjczNTkyOV0gZDB2MSB1bmFibGUg
dG8gZml4dXAgbWVtb3J5IHdyaXRlIHRvIDB4ZmU1ZmUwMzAgc2l6ZSA0OiAtMQ0KKFhFTikg
WyAgIDIyLjc0OTk3MV0gZDB2MSB1bmFibGUgdG8gZml4dXAgbWVtb3J5IHdyaXRlIHRvIDB4
ZmU1ZmUwMzQgc2l6ZSA0OiAtMQ0KKFhFTikgWyAgIDIyLjc2NDAwNl0gZDB2MSB1bmFibGUg
dG8gZml4dXAgbWVtb3J5IHdyaXRlIHRvIDB4ZmU1ZmUwMzggc2l6ZSA0OiAtMQ0KKFhFTikg
WyAgIDIyLjc3ODA0OF0gZDB2MSB1bmFibGUgdG8gZml4dXAgbWVtb3J5IHJlYWQgZnJvbSAw
eGZlNWZlMDM4IHNpemUgNDogLTENCihYRU4pIFsgICAyMi43OTIyNjBdIGQwdjEgdW5hYmxl
IHRvIGZpeHVwIG1lbW9yeSB3cml0ZSB0byAweGZlNWZlMDQwIHNpemUgNDogLTENCihYRU4p
IFsgICAyMi44MDYzMDJdIGQwdjEgdW5hYmxlIHRvIGZpeHVwIG1lbW9yeSB3cml0ZSB0byAw
eGZlNWZlMDQ0IHNpemUgNDogLTENCihYRU4pIFsgICAyMi44MjAzNDFdIGQwdjEgdW5hYmxl
IHRvIGZpeHVwIG1lbW9yeSB3cml0ZSB0byAweGZlNWZlMDQ4IHNpemUgNDogLTENCihYRU4p
IFsgICAyMi44MzQzODJdIGQwdjEgdW5hYmxlIHRvIGZpeHVwIG1lbW9yeSByZWFkIGZyb20g
MHhmZTVmZTA0OCBzaXplIDQ6IC0xDQooWEVOKSBbICAgMjIuODQ4NTk0XSBkMHYxIHVuYWJs
ZSB0byBmaXh1cCBtZW1vcnkgd3JpdGUgdG8gMHhmZTVmZTAwYyBzaXplIDQ6IC0xDQooWEVO
KSBbICAgMjIuODYyNjM2XSBkMHYxIHVuYWJsZSB0byBmaXh1cCBtZW1vcnkgd3JpdGUgdG8g
MHhmZTVmZTAxYyBzaXplIDQ6IC0xDQooWEVOKSBbICAgMjIuODc2Njc1XSBkMHYxIHVuYWJs
ZSB0byBmaXh1cCBtZW1vcnkgd3JpdGUgdG8gMHhmZTVmZTAyYyBzaXplIDQ6IC0xDQooWEVO
KSBbICAgMjIuODkwNzE2XSBkMHYxIHVuYWJsZSB0byBmaXh1cCBtZW1vcnkgd3JpdGUgdG8g
MHhmZTVmZTAzYyBzaXplIDQ6IC0xDQooWEVOKSBbICAgMjIuOTA0NzU3XSBkMHYxIHVuYWJs
ZSB0byBmaXh1cCBtZW1vcnkgd3JpdGUgdG8gMHhmZTVmZTA0YyBzaXplIDQ6IC0xDQooWEVO
KSBbICAgMjIuOTE4Nzk2XSBkMHYxIHVuYWJsZSB0byBmaXh1cCBtZW1vcnkgd3JpdGUgdG8g
MHhmZTVmZTA1YyBzaXplIDQ6IC0xDQooWEVOKSBbICAgMjIuOTMyODMyXSBkMHYxIHVuYWJs
ZSB0byBmaXh1cCBtZW1vcnkgd3JpdGUgdG8gMHhmZTVmZTA2YyBzaXplIDQ6IC0xDQooWEVO
KSBbICAgMjIuOTQ2ODc1XSBkMHYxIHVuYWJsZSB0byBmaXh1cCBtZW1vcnkgd3JpdGUgdG8g
MHhmZTVmZTA3YyBzaXplIDQ6IC0xDQooWEVOKSBbICAgMjIuOTYwOTEyXSBkMHYxIHVuYWJs
ZSB0byBmaXh1cCBtZW1vcnkgd3JpdGUgdG8gMHhmZTVmZTAwMCBzaXplIDQ6IC0xDQooWEVO
KSBbICAgMjIuOTc0OTUyXSBkMHYxIHVuYWJsZSB0byBmaXh1cCBtZW1vcnkgd3JpdGUgdG8g
MHhmZTVmZTAwNCBzaXplIDQ6IC0xDQooWEVOKSBbICAgMjIuOTg4OTk3XSBkMHYxIHVuYWJs
ZSB0byBmaXh1cCBtZW1vcnkgd3JpdGUgdG8gMHhmZTVmZTAwOCBzaXplIDQ6IC0xDQooWEVO
KSBbICAgMjMuMDAzMDM0XSBkMHYxIHVuYWJsZSB0byBmaXh1cCBtZW1vcnkgcmVhZCBmcm9t
IDB4ZmU1ZmUwMDggc2l6ZSA0OiAtMQ0KKFhFTikgWyAgIDIzLjAxNzI1MV0gZDB2MSB1bmFi
bGUgdG8gZml4dXAgbWVtb3J5IHdyaXRlIHRvIDB4ZmU1ZmUwMDAgc2l6ZSA0OiAtMQ0KKFhF
TikgWyAgIDIzLjAzMTI4N10gZDB2MSB1bmFibGUgdG8gZml4dXAgbWVtb3J5IHdyaXRlIHRv
IDB4ZmU1ZmUwMDQgc2l6ZSA0OiAtMQ0KKFhFTikgWyAgIDIzLjA0NTMyOF0gZDB2MSB1bmFi
bGUgdG8gZml4dXAgbWVtb3J5IHdyaXRlIHRvIDB4ZmU1ZmUwMDggc2l6ZSA0OiAtMQ0KKFhF
TikgWyAgIDIzLjA1OTM3MF0gZDB2MSB1bmFibGUgdG8gZml4dXAgbWVtb3J5IHJlYWQgZnJv
bSAweGZlNWZlMDA4IHNpemUgNDogLTENCihYRU4pIFsgICAyMy4wNzM1ODFdIGQwdjEgdW5h
YmxlIHRvIGZpeHVwIG1lbW9yeSB3cml0ZSB0byAweGZlNWZlMDBjIHNpemUgNDogLTENClsg
ICAgOC41MTAzNDddIHhoY2lfaGNkIDAwMDA6MDQ6MDAuMzogeEhDSSBIb3N0IENvbnRyb2xs
ZXINClsgICAgOC41MjA5MDJdIHhoY2lfaGNkIDAwMDA6MDQ6MDAuMzogbmV3IFVTQiBidXMg
cmVnaXN0ZXJlZCwgYXNzaWduZWQgYnVzIG51bWJlciAyDQpbICAgIDguNTM1NzU4XSB4aGNp
X2hjZCAwMDAwOjA0OjAwLjM6IEhvc3Qgc3VwcG9ydHMgVVNCIDMuMSBFbmhhbmNlZCBTdXBl
clNwZWVkDQpbICAgIDguNTUwMDgwXSB1c2IgdXNiMTogTmV3IFVTQiBkZXZpY2UgZm91bmQs
IGlkVmVuZG9yPTFkNmIsIGlkUHJvZHVjdD0wMDAyLCBiY2REZXZpY2U9IDYuMTENClsgICAg
OC41NjY2MDldIHVzYiB1c2IxOiBOZXcgVVNCIGRldmljZSBzdHJpbmdzOiBNZnI9MywgUHJv
ZHVjdD0yLCBTZXJpYWxOdW1iZXI9MQ0KWyAgICA4LjU4MTE2M10gdXNiIHVzYjE6IFByb2R1
Y3Q6IHhIQ0kgSG9zdCBDb250cm9sbGVyDQpbICAgIDguNTkxMDQ0XSB1c2IgdXNiMTogTWFu
dWZhY3R1cmVyOiBMaW51eCA2LjExLjAtcnQxIHhoY2ktaGNkDQpbICAgIDguNjAyNjU0XSB1
c2IgdXNiMTogU2VyaWFsTnVtYmVyOiAwMDAwOjA0OjAwLjMNClsgICAgOC42MTIzNDldIGh1
YiAxLTA6MS4wOiBVU0IgaHViIGZvdW5kDQpbICAgIDguNjE5Njc5XSBodWIgMS0wOjEuMDog
NCBwb3J0cyBkZXRlY3RlZA0KWyAgICA4LjYyNzkxNF0gdXNiIHVzYjI6IFdlIGRvbid0IGtu
b3cgdGhlIGFsZ29yaXRobXMgZm9yIExQTSBmb3IgdGhpcyBob3N0LCBkaXNhYmxpbmcgTFBN
Lg0KWyAgICA4LjY0NDEyMF0gdXNiIHVzYjI6IE5ldyBVU0IgZGV2aWNlIGZvdW5kLCBpZFZl
bmRvcj0xZDZiLCBpZFByb2R1Y3Q9MDAwMywgYmNkRGV2aWNlPSA2LjExDQpbICAgIDguNjYw
NzUyXSB1c2IgdXNiMjogTmV3IFVTQiBkZXZpY2Ugc3RyaW5nczogTWZyPTMsIFByb2R1Y3Q9
MiwgU2VyaWFsTnVtYmVyPTENClsgICAgOC42NzUzMTNdIHVzYiB1c2IyOiBQcm9kdWN0OiB4
SENJIEhvc3QgQ29udHJvbGxlcg0KWyAgICA4LjY4NTE5Ml0gdXNiIHVzYjI6IE1hbnVmYWN0
dXJlcjogTGludXggNi4xMS4wLXJ0MSB4aGNpLWhjZA0KWyAgICA4LjY5NjgwMF0gdXNiIHVz
YjI6IFNlcmlhbE51bWJlcjogMDAwMDowNDowMC4zDQpbICAgIDguNzA2NDY5XSBodWIgMi0w
OjEuMDogVVNCIGh1YiBmb3VuZA0KWyAgICA4LjcxMzkyM10gaHViIDItMDoxLjA6IDIgcG9y
dHMgZGV0ZWN0ZWQNClsgICAgOC43MjIxNzhdIHhoY2lfaGNkIDAwMDA6MDQ6MDAuNDogeEhD
SSBIb3N0IENvbnRyb2xsZXINClsgICAgOC43MzI3NDFdIHhoY2lfaGNkIDAwMDA6MDQ6MDAu
NDogbmV3IFVTQiBidXMgcmVnaXN0ZXJlZCwgYXNzaWduZWQgYnVzIG51bWJlciAzDQpbICAg
IDguNzQ3NTEwXSB4aGNpX2hjZCAwMDAwOjA0OjAwLjQ6IGhjYyBwYXJhbXMgMHgwMjY4ZmZl
NSBoY2kgdmVyc2lvbiAweDExMCBxdWlya3MgMHgwMDAwMDIwMDAwMDAwMDEwDQooWEVOKSBb
ICAgMjMuMzQzMTQ2XSBkMHYyIHVuYWJsZSB0byBmaXh1cCBtZW1vcnkgcmVhZCBmcm9tIDB4
ZmU0ZmUwMGMgc2l6ZSA0OiAtMQ0KKFhFTikgWyAgIDIzLjM1NzM2MF0gZDB2MiB1bmFibGUg
dG8gZml4dXAgbWVtb3J5IHJlYWQgZnJvbSAweGZlNGZlMDFjIHNpemUgNDogLTENCihYRU4p
IFsgICAyMy4zNzE1NzJdIGQwdjIgdW5hYmxlIHRvIGZpeHVwIG1lbW9yeSByZWFkIGZyb20g
MHhmZTRmZTAyYyBzaXplIDQ6IC0xDQooWEVOKSBbICAgMjMuMzg1NzkxXSBkMHYyIHVuYWJs
ZSB0byBmaXh1cCBtZW1vcnkgcmVhZCBmcm9tIDB4ZmU0ZmUwM2Mgc2l6ZSA0OiAtMQ0KKFhF
TikgWyAgIDIzLjQwMDAwMF0gZDB2MiB1bmFibGUgdG8gZml4dXAgbWVtb3J5IHJlYWQgZnJv
bSAweGZlNGZlMDRjIHNpemUgNDogLTENCihYRU4pIFsgICAyMy40MTQyMTVdIGQwdjIgdW5h
YmxlIHRvIGZpeHVwIG1lbW9yeSB3cml0ZSB0byAweGZlNGZlMDAwIHNpemUgNDogLTENCihY
RU4pIFsgICAyMy40MjgyNTNdIGQwdjIgdW5hYmxlIHRvIGZpeHVwIG1lbW9yeSB3cml0ZSB0
byAweGZlNGZlMDA0IHNpemUgNDogLTENCihYRU4pIFsgICAyMy40NDIyOThdIGQwdjIgdW5h
YmxlIHRvIGZpeHVwIG1lbW9yeSB3cml0ZSB0byAweGZlNGZlMDA4IHNpemUgNDogLTENCihY
RU4pIFsgICAyMy40NTYzMzddIGQwdjIgdW5hYmxlIHRvIGZpeHVwIG1lbW9yeSByZWFkIGZy
b20gMHhmZTRmZTAwOCBzaXplIDQ6IC0xDQooWEVOKSBbICAgMjMuNDcwNTUxXSBkMHYyIHVu
YWJsZSB0byBmaXh1cCBtZW1vcnkgd3JpdGUgdG8gMHhmZTRmZTAxMCBzaXplIDQ6IC0xDQoo
WEVOKSBbICAgMjMuNDg0NTg4XSBkMHYyIHVuYWJsZSB0byBmaXh1cCBtZW1vcnkgd3JpdGUg
dG8gMHhmZTRmZTAxNCBzaXplIDQ6IC0xDQooWEVOKSBbICAgMjMuNDk4NjI5XSBkMHYyIHVu
YWJsZSB0byBmaXh1cCBtZW1vcnkgd3JpdGUgdG8gMHhmZTRmZTAxOCBzaXplIDQ6IC0xDQoo
WEVOKSBbICAgMjMuNTEyNjcxXSBkMHYyIHVuYWJsZSB0byBmaXh1cCBtZW1vcnkgcmVhZCBm
cm9tIDB4ZmU0ZmUwMTggc2l6ZSA0OiAtMQ0KKFhFTikgWyAgIDIzLjUyNjg4M10gZDB2MiB1
bmFibGUgdG8gZml4dXAgbWVtb3J5IHdyaXRlIHRvIDB4ZmU0ZmUwMjAgc2l6ZSA0OiAtMQ0K
KFhFTikgWyAgIDIzLjU0MDkyMl0gZDB2MiB1bmFibGUgdG8gZml4dXAgbWVtb3J5IHdyaXRl
IHRvIDB4ZmU0ZmUwMjQgc2l6ZSA0OiAtMQ0KKFhFTikgWyAgIDIzLjU1NDk2MF0gZDB2MiB1
bmFibGUgdG8gZml4dXAgbWVtb3J5IHdyaXRlIHRvIDB4ZmU0ZmUwMjggc2l6ZSA0OiAtMQ0K
KFhFTikgWyAgIDIzLjU2OTAwMl0gZDB2MiB1bmFibGUgdG8gZml4dXAgbWVtb3J5IHJlYWQg
ZnJvbSAweGZlNGZlMDI4IHNpemUgNDogLTENCihYRU4pIFsgICAyMy41ODMyMTddIGQwdjIg
dW5hYmxlIHRvIGZpeHVwIG1lbW9yeSB3cml0ZSB0byAweGZlNGZlMDMwIHNpemUgNDogLTEN
CihYRU4pIFsgICAyMy41OTcyNTJdIGQwdjIgdW5hYmxlIHRvIGZpeHVwIG1lbW9yeSB3cml0
ZSB0byAweGZlNGZlMDM0IHNpemUgNDogLTENCihYRU4pIFsgICAyMy42MTEyOTddIGQwdjIg
dW5hYmxlIHRvIGZpeHVwIG1lbW9yeSB3cml0ZSB0byAweGZlNGZlMDM4IHNpemUgNDogLTEN
CihYRU4pIFsgICAyMy42MjUzMzVdIGQwdjIgdW5hYmxlIHRvIGZpeHVwIG1lbW9yeSByZWFk
IGZyb20gMHhmZTRmZTAzOCBzaXplIDQ6IC0xDQooWEVOKSBbICAgMjMuNjM5NTUwXSBkMHYy
IHVuYWJsZSB0byBmaXh1cCBtZW1vcnkgd3JpdGUgdG8gMHhmZTRmZTA0MCBzaXplIDQ6IC0x
DQooWEVOKSBbICAgMjMuNjUzNTg1XSBkMHYyIHVuYWJsZSB0byBmaXh1cCBtZW1vcnkgd3Jp
dGUgdG8gMHhmZTRmZTA0NCBzaXplIDQ6IC0xDQooWEVOKSBbICAgMjMuNjY3NjMwXSBkMHYy
IHVuYWJsZSB0byBmaXh1cCBtZW1vcnkgd3JpdGUgdG8gMHhmZTRmZTA0OCBzaXplIDQ6IC0x
DQooWEVOKSBbICAgMjMuNjgxNjY5XSBkMHYyIHVuYWJsZSB0byBmaXh1cCBtZW1vcnkgcmVh
ZCBmcm9tIDB4ZmU0ZmUwNDggc2l6ZSA0OiAtMQ0KKFhFTikgWyAgIDIzLjY5NTg3OV0gZDB2
MiB1bmFibGUgdG8gZml4dXAgbWVtb3J5IHdyaXRlIHRvIDB4ZmU0ZmUwMGMgc2l6ZSA0OiAt
MQ0KKFhFTikgWyAgIDIzLjcwOTkxOV0gZDB2MiB1bmFibGUgdG8gZml4dXAgbWVtb3J5IHdy
aXRlIHRvIDB4ZmU0ZmUwMWMgc2l6ZSA0OiAtMQ0KKFhFTikgWyAgIDIzLjcyMzk1OV0gZDB2
MiB1bmFibGUgdG8gZml4dXAgbWVtb3J5IHdyaXRlIHRvIDB4ZmU0ZmUwMmMgc2l6ZSA0OiAt
MQ0KKFhFTikgWyAgIDIzLjczODAwMF0gZDB2MiB1bmFibGUgdG8gZml4dXAgbWVtb3J5IHdy
aXRlIHRvIDB4ZmU0ZmUwM2Mgc2l6ZSA0OiAtMQ0KKFhFTikgWyAgIDIzLjc1MjA0MV0gZDB2
MiB1bmFibGUgdG8gZml4dXAgbWVtb3J5IHdyaXRlIHRvIDB4ZmU0ZmUwNGMgc2l6ZSA0OiAt
MQ0KKFhFTikgWyAgIDIzLjc2NjA4M10gZDB2MiB1bmFibGUgdG8gZml4dXAgbWVtb3J5IHdy
aXRlIHRvIDB4ZmU0ZmUwNWMgc2l6ZSA0OiAtMQ0KKFhFTikgWyAgIDIzLjc4MDEyMl0gZDB2
MiB1bmFibGUgdG8gZml4dXAgbWVtb3J5IHdyaXRlIHRvIDB4ZmU0ZmUwNmMgc2l6ZSA0OiAt
MQ0KKFhFTikgWyAgIDIzLjc5NDE2NF0gZDB2MiB1bmFibGUgdG8gZml4dXAgbWVtb3J5IHdy
aXRlIHRvIDB4ZmU0ZmUwN2Mgc2l6ZSA0OiAtMQ0KKFhFTikgWyAgIDIzLjgwODIwMl0gZDB2
MiB1bmFibGUgdG8gZml4dXAgbWVtb3J5IHdyaXRlIHRvIDB4ZmU0ZmUwMDAgc2l6ZSA0OiAt
MQ0KKFhFTikgWyAgIDIzLjgyMjIzOF0gZDB2MiB1bmFibGUgdG8gZml4dXAgbWVtb3J5IHdy
aXRlIHRvIDB4ZmU0ZmUwMDQgc2l6ZSA0OiAtMQ0KKFhFTikgWyAgIDIzLjgzNjI4Ml0gZDB2
MiB1bmFibGUgdG8gZml4dXAgbWVtb3J5IHdyaXRlIHRvIDB4ZmU0ZmUwMDggc2l6ZSA0OiAt
MQ0KKFhFTikgWyAgIDIzLjg1MDMxOF0gZDB2MiB1bmFibGUgdG8gZml4dXAgbWVtb3J5IHJl
YWQgZnJvbSAweGZlNGZlMDA4IHNpemUgNDogLTENCihYRU4pIFsgICAyMy44NjQ1MzVdIGQw
djIgdW5hYmxlIHRvIGZpeHVwIG1lbW9yeSB3cml0ZSB0byAweGZlNGZlMDAwIHNpemUgNDog
LTENCihYRU4pIFsgICAyMy44Nzg1NzJdIGQwdjIgdW5hYmxlIHRvIGZpeHVwIG1lbW9yeSB3
cml0ZSB0byAweGZlNGZlMDA0IHNpemUgNDogLTENCihYRU4pIFsgICAyMy44OTI2MTFdIGQw
djIgdW5hYmxlIHRvIGZpeHVwIG1lbW9yeSB3cml0ZSB0byAweGZlNGZlMDA4IHNpemUgNDog
LTENCihYRU4pIFsgICAyMy45MDY2NTJdIGQwdjIgdW5hYmxlIHRvIGZpeHVwIG1lbW9yeSBy
ZWFkIGZyb20gMHhmZTRmZTAwOCBzaXplIDQ6IC0xDQooWEVOKSBbICAgMjMuOTIwODcwXSBk
MHYyIHVuYWJsZSB0byBmaXh1cCBtZW1vcnkgd3JpdGUgdG8gMHhmZTRmZTAwYyBzaXplIDQ6
IC0xDQpbICAgIDkuMzU3NjM5XSB4aGNpX2hjZCAwMDAwOjA0OjAwLjQ6IHhIQ0kgSG9zdCBD
b250cm9sbGVyDQpbICAgIDkuMzY4MjEyXSB4aGNpX2hjZCAwMDAwOjA0OjAwLjQ6IG5ldyBV
U0IgYnVzIHJlZ2lzdGVyZWQsIGFzc2lnbmVkIGJ1cyBudW1iZXIgNA0KWyAgICA5LjM4MzA0
MF0geGhjaV9oY2QgMDAwMDowNDowMC40OiBIb3N0IHN1cHBvcnRzIFVTQiAzLjEgRW5oYW5j
ZWQgU3VwZXJTcGVlZA0KWyAgICA5LjM5NzI2N10gdXNiIHVzYjM6IE5ldyBVU0IgZGV2aWNl
IGZvdW5kLCBpZFZlbmRvcj0xZDZiLCBpZFByb2R1Y3Q9MDAwMiwgYmNkRGV2aWNlPSA2LjEx
DQpbICAgIDkuNDEzODkxXSB1c2IgdXNiMzogTmV3IFVTQiBkZXZpY2Ugc3RyaW5nczogTWZy
PTMsIFByb2R1Y3Q9MiwgU2VyaWFsTnVtYmVyPTENClsgICAgOS40Mjg0NDZdIHVzYiB1c2Iz
OiBQcm9kdWN0OiB4SENJIEhvc3QgQ29udHJvbGxlcg0KWyAgICA5LjQzODMzMF0gdXNiIHVz
YjM6IE1hbnVmYWN0dXJlcjogTGludXggNi4xMS4wLXJ0MSB4aGNpLWhjZA0KWyAgICA5LjQ0
OTk0Ml0gdXNiIHVzYjM6IFNlcmlhbE51bWJlcjogMDAwMDowNDowMC40DQpbICAgIDkuNDU5
NjgyXSBodWIgMy0wOjEuMDogVVNCIGh1YiBmb3VuZA0KWyAgICA5LjQ2NzAyMV0gaHViIDMt
MDoxLjA6IDQgcG9ydHMgZGV0ZWN0ZWQNClsgICAgOS40NzUyMjBdIHVzYiB1c2I0OiBXZSBk
b24ndCBrbm93IHRoZSBhbGdvcml0aG1zIGZvciBMUE0gZm9yIHRoaXMgaG9zdCwgZGlzYWJs
aW5nIExQTS4NClsgICAgOS40OTE0NTddIHVzYiB1c2I0OiBOZXcgVVNCIGRldmljZSBmb3Vu
ZCwgaWRWZW5kb3I9MWQ2YiwgaWRQcm9kdWN0PTAwMDMsIGJjZERldmljZT0gNi4xMQ0KWyAg
ICA5LjUwODA4OF0gdXNiIHVzYjQ6IE5ldyBVU0IgZGV2aWNlIHN0cmluZ3M6IE1mcj0zLCBQ
cm9kdWN0PTIsIFNlcmlhbE51bWJlcj0xDQpbICAgIDkuNTIyNjQ3XSB1c2IgdXNiNDogUHJv
ZHVjdDogeEhDSSBIb3N0IENvbnRyb2xsZXINClsgICAgOS41MzI1MzFdIHVzYiB1c2I0OiBN
YW51ZmFjdHVyZXI6IExpbnV4IDYuMTEuMC1ydDEgeGhjaS1oY2QNClsgICAgOS41NDQxNDVd
IHVzYiB1c2I0OiBTZXJpYWxOdW1iZXI6IDAwMDA6MDQ6MDAuNA0KWyAgICA5LjU1MzcyNl0g
aHViIDQtMDoxLjA6IFVTQiBodWIgZm91bmQNClsgICAgOS41NjExMzddIGh1YiA0LTA6MS4w
OiAyIHBvcnRzIGRldGVjdGVkDQpbICAgIDkuNTY5MzQxXSB1c2Jjb3JlOiByZWdpc3RlcmVk
IG5ldyBpbnRlcmZhY2UgZHJpdmVyIHVzYmxwDQpbICAgIDkuNTgwMzgwXSB1c2Jjb3JlOiBy
ZWdpc3RlcmVkIG5ldyBpbnRlcmZhY2UgZHJpdmVyIHVzYi1zdG9yYWdlDQpbICAgIDkuNTky
NjAwXSBpODA0MjogUE5QOiBObyBQUy8yIGNvbnRyb2xsZXIgZm91bmQuDQpbICAgIDkuNjAy
MDM1XSBpODA0MjogUHJvYmluZyBwb3J0cyBkaXJlY3RseS4NClsgICAgOS42MTEyMThdIGk4
MDQyOiBObyBjb250cm9sbGVyIGZvdW5kDQpbICAgIDkuNjE4ODAyXSBydGNfY21vcyAwMDow
MTogUlRDIGNhbiB3YWtlIGZyb20gUzQNClsgICAgOS42MjgwNDRdIHJ0Y19jbW9zIDAwOjAx
OiByZWdpc3RlcmVkIGFzIHJ0YzANClsgICAgOS42MzY5NDBdIHJ0Y19jbW9zIDAwOjAxOiBu
byBhbGFybXMsIHkzaywgMTE0IGJ5dGVzIG52cmFtDQpbICAgIDkuNjQ4MTk5XSBmYWlsIHRv
IGluaXRpYWxpemUgcHRwX2t2bQ0KWyAgICA5LjY0ODI2M10gZGV2aWNlLW1hcHBlcjogaW9j
dGw6IDQuNDguMC1pb2N0bCAoMjAyMy0wMy0wMSkgaW5pdGlhbGlzZWQ6IGRtLWRldmVsQGxp
c3RzLmxpbnV4LmRldg0KWyAgICA5LjY3MzY5MV0gYW1kX3BzdGF0ZTogVGhlIENQUEMgZmVh
dHVyZSBpcyBzdXBwb3J0ZWQgYnV0IGN1cnJlbnRseSBkaXNhYmxlZCBieSB0aGUgQklPUy4N
ClsgICAgOS42NzM2OTFdIFBsZWFzZSBlbmFibGUgaXQgaWYgeW91ciBCSU9TIGhhcyB0aGUg
Q1BQQyBvcHRpb24uDQpbICAgIDkuNzAxOTMxXSBhbWRfcHN0YXRlOiB0aGUgX0NQQyBvYmpl
Y3QgaXMgbm90IHByZXNlbnQgaW4gU0JJT1Mgb3IgQUNQSSBkaXNhYmxlZA0KWyAgICA5Ljcx
Njg1Ml0gaGlkOiByYXcgSElEIGV2ZW50cyBkcml2ZXIgKEMpIEppcmkgS29zaW5hDQpbICAg
IDkuNzI3MzAxXSB1c2Jjb3JlOiByZWdpc3RlcmVkIG5ldyBpbnRlcmZhY2UgZHJpdmVyIHVz
YmhpZA0KWyAgICA5LjczODUwMV0gdXNiaGlkOiBVU0IgSElEIGNvcmUgZHJpdmVyDQpbICAg
IDkuNzQ2OTAxXSBzbmRfaGRhX2ludGVsIDAwMDA6MDQ6MDAuMTogZW5hYmxpbmcgZGV2aWNl
ICgwMDAwIC0+IDAwMDIpDQooWEVOKSBbICAgMjQuMzM3MTI0XSAwMDAwOjA0OjAwLjE6IG5v
dCBtYXBwaW5nIEJBUiBbZmU3YzgsIGZlN2NiXSBpbnZhbGlkIHBvc2l0aW9uDQpbICAgIDku
Nzc0NDA0XSBzbmRfaGRhX2ludGVsIDAwMDA6MDQ6MDAuNjogZW5hYmxpbmcgZGV2aWNlICgw
MDAwIC0+IDAwMDIpDQooWEVOKSBbICAgMjQuMzY0ODU3XSAwMDAwOjA0OjAwLjY6IG5vdCBt
YXBwaW5nIEJBUiBbZmU3YzAsIGZlN2M3XSBpbnZhbGlkIHBvc2l0aW9uDQpbICAgIDkuODAy
NDYxXSBJbml0aWFsaXppbmcgWEZSTSBuZXRsaW5rIHNvY2tldA0KWyAgICA5LjgxMDg1MF0g
TkVUOiBSZWdpc3RlcmVkIFBGX0lORVQ2IHByb3RvY29sIGZhbWlseQ0KWyAgICA5LjgyMTgz
M10gU2VnbWVudCBSb3V0aW5nIHdpdGggSVB2Ng0KWyAgICA5LjgyMjYzNF0gc25kX2hkYV9p
bnRlbCAwMDAwOjA0OjAwLjE6IENhbm5vdCBwcm9iZSBjb2RlY3MsIGdpdmluZyB1cA0KWyAg
ICA5LjgyOTAxNF0gSShYRU4pIFsgICAyNC40MjIyODVdIGFyY2gveDg2L2h2bS92bXNpLmM6
ODg2OmQwdjEgMDAwMDowNDowMC4xOiBQSVJRIDMzMjA6IHVuc3VwcG9ydGVkIGFkZHJlc3Mg
MA0Kbi1zaXR1IE9BTSAoSU9BTShYRU4pIFsgICAyNC40NDIwNDVdIGFyY2gveDg2L2h2bS92
bXNpLmM6ODg2OmQwdjEgMDAwMDowNDowMC4xOiBQSVJRIDMzMjA6IHVuc3VwcG9ydGVkIGFk
ZHJlc3MgMA0KKSB3aXRoIElQdjYNCihYRU4pIFsgICAyNC40NjE0NTZdIGFyY2gveDg2L2h2
bS92bXNpLmM6ODg2OmQwdjEgMDAwMDowNDowMC4xOiBQSVJRIDMzMjA6IHVuc3VwcG9ydGVk
IGFkZHJlc3MgMA0KWyAgICA5LjkwMTE5N10gc2l0OiBJUHY2LCBJUHY0IGFuZCBNUExTIG92
ZXIgSVB2NCB0dW5uZWxpbmcgZHJpdmVyDQpbICAgIDkuOTEzMTI5XSBORVQ6IFJlZ2lzdGVy
ZWQgUEZfUEFDS0VUIHByb3RvY29sIGZhbWlseQ0KWyAgICA5LjkyMzI5N10gOXBuZXQ6IElu
c3RhbGxpbmcgOVAyMDAwIHN1cHBvcnQNClsgICAgOS45MzE5NTVdIEtleSB0eXBlIGRuc19y
ZXNvbHZlciByZWdpc3RlcmVkDQpbICAgIDkuOTQwOTI4XSBJUEkgc2hvcnRoYW5kIGJyb2Fk
Y2FzdDogZW5hYmxlZA0KWyAgICA5Ljk1MDgwN10gc2NoZWRfY2xvY2s6IE1hcmtpbmcgc3Rh
YmxlICg5ODA2MDA1OTM1LCAxNDQ1NjAzMjYpLT4oMTEzNjAzOTAwMjksIC0xNDA5ODIzNzY4
KQ0KWyAgICA5Ljk2NzQ4OF0gcmVnaXN0ZXJlZCB0YXNrc3RhdHMgdmVyc2lvbiAxDQpbICAg
IDkuOTc1NjM4XSBMb2FkaW5nIGNvbXBpbGVkLWluIFguNTA5IGNlcnRpZmljYXRlcw0KWyAg
ICA5Ljk4NjEyMV0gRGVtb3Rpb24gdGFyZ2V0cyBmb3IgTm9kZSAwOiBudWxsDQpbICAgIDku
OTk0NzY1XSBQTTogICBNYWdpYyBudW1iZXI6IDU6NDU1Ojg3MA0KWyAgIDEwLjAwMjkzMV0g
cHJpbnRrOiBsZWdhY3kgY29uc29sZSBbbmV0Y29uMF0gZW5hYmxlZA0KWyAgIDEwLjAxMjg2
MV0gbmV0Y29uc29sZTogbmV0d29yayBsb2dnaW5nIHN0YXJ0ZWQNClsgICAxMC4wMjI1MTdd
IGNmZzgwMjExOiBMb2FkaW5nIGNvbXBpbGVkLWluIFguNTA5IGNlcnRpZmljYXRlcyBmb3Ig
cmVndWxhdG9yeSBkYXRhYmFzZQ0KWyAgIDEwLjAzODg2M10gTG9hZGVkIFguNTA5IGNlcnQg
J3Nmb3JzaGVlOiAwMGIyOGRkZjQ3YWVmOWNlYTcnDQpbICAgMTAuMDUwMTEwXSBMb2FkZWQg
WC41MDkgY2VydCAnd2VuczogNjFjMDM4NjUxYWFiZGNmOTRiZDBhYzdmZjA2YzcyNDhkYjE4
YzYwMCcNClsgICAxMC4wNjQ1ODBdIHBsYXRmb3JtIHJlZ3VsYXRvcnkuMDogRGlyZWN0IGZp
cm13YXJlIGxvYWQgZm9yIHJlZ3VsYXRvcnkuZGIgZmFpbGVkIHdpdGggZXJyb3IgLTINClsg
ICAxMC4wNjk1ODRdIEFMU0EgZGV2aWNlIGxpc3Q6DQpbICAgMTAuMDgxODkxXSBjZmc4MDIx
MTogZmFpbGVkIHRvIGxvYWQgcmVndWxhdG9yeS5kYg0KWyAgIDEwLjA5NzY2OV0gICBObyBz
b3VuZGNhcmRzIGZvdW5kLg0KWyAgIDE2LjgzOTY1OF0geGhjaV9oY2QgMDAwMDowNDowMC40
OiBFcnJvciB3aGlsZSBhc3NpZ25pbmcgZGV2aWNlIHNsb3QgSUQ6IENvbW1hbmQgQWJvcnRl
ZA0KWyAgIDE2Ljg1NTY3M10geGhjaV9oY2QgMDAwMDowNDowMC40OiBNYXggbnVtYmVyIG9m
IGRldmljZXMgdGhpcyB4SENJIGhvc3Qgc3VwcG9ydHMgaXMgNjQuDQpbICAgMTYuODcxNzg0
XSB1c2IgdXNiMy1wb3J0NDogY291bGRuJ3QgYWxsb2NhdGUgdXNiX2RldmljZQ==

--------------bu7ekQa2prmBxjL00YZWcI1J--


From xen-devel-bounces@lists.xenproject.org Fri Apr 11 14:11:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 14:11:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.947436.1345059 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3F5x-0001sr-CP; Fri, 11 Apr 2025 14:11:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 947436.1345059; Fri, 11 Apr 2025 14:11: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 1u3F5x-0001sk-93; Fri, 11 Apr 2025 14:11:01 +0000
Received: by outflank-mailman (input) for mailman id 947436;
 Fri, 11 Apr 2025 14:11: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=67/P=W5=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u3F5w-0001se-G9
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 14:11:00 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on20624.outbound.protection.outlook.com
 [2a01:111:f403:2415::624])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c9a7c48b-16de-11f0-9ead-5ba50f476ded;
 Fri, 11 Apr 2025 16:10:58 +0200 (CEST)
Received: from MW3PR06CA0017.namprd06.prod.outlook.com (2603:10b6:303:2a::22)
 by SA1PR12MB7341.namprd12.prod.outlook.com (2603:10b6:806:2ba::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8583.42; Fri, 11 Apr
 2025 14:10:54 +0000
Received: from SJ5PEPF000001F2.namprd05.prod.outlook.com
 (2603:10b6:303:2a:cafe::5c) by MW3PR06CA0017.outlook.office365.com
 (2603:10b6:303:2a::22) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.26 via Frontend Transport; Fri,
 11 Apr 2025 14:10:54 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ5PEPF000001F2.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.8632.13 via Frontend Transport; Fri, 11 Apr 2025 14:10:54 +0000
Received: from localhost (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; Fri, 11 Apr
 2025 09:10:51 -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: c9a7c48b-16de-11f0-9ead-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=E6bvp1wTn6hD3WkHOUodv7vBosBWpjbilGhc94W8uhHqAcmkp7wIBTKkzDXKMddBSxyY6GJtnsv4RrX1dHNIgvYOg8ivsYhtk+75zmRIBf2xE8TvtcqsWgoo9UZoY5/RnLOS1WSL5Mki0V6cy18vy3EJU0eQ51O107/MhB/wHth0HRRCUjNieDHw9Ldl2QboNjYHi45tSk9Te+mrP53Nwk7ZsL+yGezYr7rv0KqID76wi2mHR54OOINNZ9LkraqdwSqn1cpuhBFwsECq/in16W6lV/YRL4+3+bwEjplM7rWf7j9uF8nvDptopnWWyy+bYKPUVNm/E7WXDTQHbZ4HDg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=k3gZr5LjNZQH+4KVqZsVsu+tUyCscGyBA+5h/coiKb0=;
 b=FXfLC3CwbZxzBMRoSqvajxBc5RRuykmoyoECm3o4n+pweWC1WcBOCY9ctpAb4ZfCfml9PS4WfaTBfTMRrsEkNYkoiS1pK1OsrW0eQwrrAMIvUPfQmpTIcpTCDk6Yb06/l13Hn/YEBtC2lcO7biPuiVAKdXsYY6kkEwkEdNoe5WVOjo4Zptk/WqmnzwjifGrb/2c+V1Hl9Zemh1+ien0UzOVz0ft2GG5wHdGmDbnPnb3USjH2ShSmGWlFtxhECOW+xvCfjTxbp3XFTpmkMwqH35+DnJgLjoS3Y/Y0AAew4piMmc90WQrWFxhcMeFaGjqMNVonmL6xkphBjYBDn6SaWQ==
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=k3gZr5LjNZQH+4KVqZsVsu+tUyCscGyBA+5h/coiKb0=;
 b=WddhZLgvUCmD4v9oa+eRqFzxFoYWBJh9JGsjmyFABCNj0GVePVhUGiz95V2LyKOYQDpsXtry48zSk5MZj3Lta7/NTB+aSu5CoG/J7WOkxJtgQn4KujDYHPyiXVsxdn/6SKktnjVLtG43rC+7NTQsX+82SCqs3U/2UDlK8G8sQ44=
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
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Fri, 11 Apr 2025 15:10:50 +0100
Message-ID: <D93VC02KYBLI.3I5OGXLY9HCZ8@amd.com>
CC: <andrew.cooper3@citrix.com>, <anthony.perard@vates.tech>,
	<marmarek@invisiblethingslab.com>, <michal.orzel@amd.com>,
	<roger.pau@citrix.com>, <sstabellini@kernel.org>,
	<xen-devel@lists.xenproject.org>, Jason Andryuk <jason.andryuk@amd.com>,
	<jgross@suse.com>
Subject: Re: [RFC PATCH] x86/xen: Fix PVH dom0 xen_hypercall detection
From: Alejandro Vallejo <agarciav@amd.com>
To: Jan Beulich <jbeulich@suse.com>
X-Mailer: aerc 0.20.1
References: <D9366FPHFS9F.2OP8KH7C8OJTF@amd.com>
 <20250410195012.363658-1-jason.andryuk@amd.com>
 <D93TJIKWB1PN.3GQOSQV3KVT9F@amd.com>
 <bdb04e97-07cd-4d31-8853-6aa5094aea0c@suse.com>
In-Reply-To: <bdb04e97-07cd-4d31-8853-6aa5094aea0c@suse.com>
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: SJ5PEPF000001F2:EE_|SA1PR12MB7341:EE_
X-MS-Office365-Filtering-Correlation-Id: c8f88668-a42e-43d3-db23-08dd7902ac3a
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:
	=?utf-8?B?cnhNNlhPMGtTaC8wK2lML0hpdjhCVTB1SnZ1c2xlMkdnZDBkUEcwSFlZY1FW?=
 =?utf-8?B?cE9kUnE2Nm04Ui9qQ3RWNWtLQkQrQlpBTHRkVVFQVXJFRTVIbm1WSWJ6U1Na?=
 =?utf-8?B?aGRqbWpSTDQweWN1cTVwUjhPRjdBQmNQME0xb2drcm9wcmVsMDdsdHJQRDYv?=
 =?utf-8?B?dDFyR1pIRXU5ZWNLU2FEQnZTNld2cENHLzRjb1ArQkIyb1VGQzRmc08rcGpy?=
 =?utf-8?B?WmVVcUplWlRKTjM2ck5aS3ZzcytLeWovc2l2VmN3dldVQjBjUHdZMWU1MzdX?=
 =?utf-8?B?ZkpqZ1p6dENPVnE1QmNsS2x2WHkwRnkrNTkrd1F1dEYxdVhZcXlDWVRSV0pQ?=
 =?utf-8?B?N0RaUWZjbzB5SXY2akpYMnpXQk16OU1SVVdCTjQ5WGdYRUQyeEo5Z2lRc0t5?=
 =?utf-8?B?Tm1rZVZlQUdjenM4MWxad2ZwSEczZXdENWhlbFVFMThScXpzM3I2QytEVE5E?=
 =?utf-8?B?ZUljdnVxNS9hRVJFait3MXN5LzhjZktZWHdtYm1FS0lEWmU1aWxHUm02OUsy?=
 =?utf-8?B?Zk95YWoxNC8zSEEvdTBoWXdYdVpPa1IvaUZpa25vdm55NkxtTEpDNFFHS0JC?=
 =?utf-8?B?MGNJR3pxMlVDSGNyaEJpR0pDL3N2TWltT203U2xWUnFRZDIvK1c2NGtRZlhZ?=
 =?utf-8?B?bHQzWHVSOUZydG5iZXQrWWJoWjJqWU4rSmVEd3l0RUZJcVpGUW1TQk5RbFlF?=
 =?utf-8?B?VDNUckVVcU5HdGtqMHplWFRRZG5IZjBqRkVpVEtLMG1YaFd2UFEvNHJpbWpV?=
 =?utf-8?B?TzJBNDRySnp2OEZSTzlLN0VEYUxRQ3ZUK0pDSzBnSDluc2JKY0pEODBlcnU2?=
 =?utf-8?B?VVdhVkxxNE1ZTmJMK2dyRHNlYWY1bU0rbTI1N0JWTGR2Q2VZbmFiYXk0ak1m?=
 =?utf-8?B?RjhPVTYzSVdMOW5adGhuMzlsaWpzdnZ6V1U5T2Znang2eGtvRnVoL21YSzYv?=
 =?utf-8?B?T0dFYnhYNDVDa01FbURRVTVZZ0swWlBMd3dEVFlqVjJjMU5sVVRJbC9DR2N5?=
 =?utf-8?B?bnRVUmNPY3Q0WWl4S0RyTTdmY3NvZjNLZmdqOWxNWXU5KzFtTDJYQ2ZtTU9K?=
 =?utf-8?B?Slg5cVBOTDVPVll0NzUwSzZCaHpkT3NYaFQ2TVg4Qyt6WGg2a0lPMDQzSVNM?=
 =?utf-8?B?cVhxU0FVMEQwVThRdWMzTkUwb2JTT3lIYjVRcDQxbEFNSFBQenhnQ2kzWlJT?=
 =?utf-8?B?b0JGVHJZd1VoR3N4ZFd1TTlWR0xhOTMvWVhzcytIZUZJYWFzOUtCbmlXRDRD?=
 =?utf-8?B?ZlBuUEN3M2xNdy9zZ2lzYnlrYXNYTkdkVVAvWHdtN0tPa1c2UkFrcDVIUE1E?=
 =?utf-8?B?OTVBMVR5Um9UTmJMRk1HOWV4VUxyYThUVUVrV0VqQ0FLREIzelRkYVF3MFlm?=
 =?utf-8?B?N1BLZjJEaHY1NmZtV2xsV3NmT09iaVVzRXRvSlB4TmtZRjNoZ1JOMlJRcTA5?=
 =?utf-8?B?cHZrSnhlYWY2UXZ2OFFiMitraGJyUCs0MkMwS2lRblc0UmZwaHlRMmN3YW5t?=
 =?utf-8?B?cTVHV3liVlI5MUZJcktSb1FwdXY0T21kL0RlTWg3UW83enhab1ZMZXRqODBZ?=
 =?utf-8?B?MTdEeTMwMHpEd0h4ZXM4WGZsd0pUY1dFcUw0cHIrYzhmbTRpZW42YTBmbzBh?=
 =?utf-8?B?eDI0WTBzQ1hVREZrNUdDZDZDQTJGSVB2NlVQUFZEN0dFYWdhdVZXM0F5bVBB?=
 =?utf-8?B?eDdkSHUrZURHSkR3cmpDdXV3OWxJWGZTeUc0bFlvNEg4ZDkvaW9Qb1p6TmdO?=
 =?utf-8?B?R01mcERGL0JaaDVvTnRsQm1QcVRWOE5SSnV5dTlyOUVuQkV2QWczK2p3UGNV?=
 =?utf-8?B?VkNRREU5ekk3MlVJTm1xcmI0aEkyOGlQc3ZaY2hYWkRkOW9ZUnUxTzE0VWRG?=
 =?utf-8?B?TW1HQVY1UEJRb3N2REtkQ0dxWmFSeEJ1WTBpeGhQb2YwdTRRdUh3cHhadVdD?=
 =?utf-8?B?d2ZVNDViNWE2bkw5SU9Ka3dKNU13Ri9GUHJlallaclA5VjRSdkp4UmtYalNL?=
 =?utf-8?B?U2RQNWVtM3RCQ2lmTFFka0YrZkNTbkd3MzJGb09ubHZoS2tCa2RUWXJqdTYz?=
 =?utf-8?Q?7wUIbf?=
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: 11 Apr 2025 14:10:54.1506
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: c8f88668-a42e-43d3-db23-08dd7902ac3a
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:
	SJ5PEPF000001F2.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB7341

On Fri Apr 11, 2025 at 2:08 PM BST, Jan Beulich wrote:
> On 11.04.2025 14:46, Alejandro Vallejo wrote:
>> On Thu Apr 10, 2025 at 8:50 PM BST, Jason Andryuk wrote:
>>> A Xen PVH dom0 on an AMD processor triple faults early in boot on
>>> 6.6.86.  CPU detection appears to fail, as the faulting instruction is
>>> vmcall in xen_hypercall_intel() and not vmmcall in xen_hypercall_amd().
>>>
>>> Detection fails because __xen_hypercall_setfunc() returns the full
>>> kernel mapped address of xen_hypercall_amd() or xen_hypercall_intel() -
>>> e.g. 0xffffffff815b93f0.  But this is compared against the rip-relative
>>> xen_hypercall_amd(%rip), which when running from identity mapping, is
>>> only 0x015b93f0.
>>>
>>> Replace the rip-relative address with just loading the actual address t=
o
>>> restore the proper comparision.
>>>
>>> This only seems to affect PVH dom0 boot.  This is probably because the
>>> XENMEM_memory_map hypercall is issued early on from the identity
>>> mappings.  With a domU, the memory map is provided via hvm_start_info
>>> and the hypercall is skipped.  The domU is probably running from the
>>> kernel high mapping when it issues hypercalls.
>>>
>>> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
>>> ---
>>> I think this sort of address mismatch would be addresed by
>>> e8fbc0d9cab6 ("x86/pvh: Call C code via the kernel virtual mapping")
>>>
>>> That could be backported instead, but it depends on a fair number of
>>> patches.
>>>
>>> Not sure on how getting a patch just into 6.6 would work.  This patch
>>> could go into upstream Linux though it's not strictly necessary when th=
e
>>> rip-relative address is a high address.
>>> ---
>>>  arch/x86/xen/xen-head.S | 2 +-
>>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/arch/x86/xen/xen-head.S b/arch/x86/xen/xen-head.S
>>> index 059f343da76d..71a0eda2da60 100644
>>> --- a/arch/x86/xen/xen-head.S
>>> +++ b/arch/x86/xen/xen-head.S
>>> @@ -117,7 +117,7 @@ SYM_FUNC_START(xen_hypercall_hvm)
>>>  	pop %ebx
>>>  	pop %eax
>>>  #else
>>> -	lea xen_hypercall_amd(%rip), %rcx
>>> +	mov $xen_hypercall_amd, %rcx
>>=20
>> (Now that this is known to be the fix upstream) This probably wants to
>> be plain lea without RIP-relative addressing, like the x86_32 branch
>> above?
>
> Why would you want to use LEA there? It's functionally identical, but the
> MOV can be encoded without ModR/M byte.
>
> Jan

It's not the using of a particular encoding that I meant, but not using
the same on both 32 and 64 bit paths. Surely whatever argument in favour
of either would hold for both 32 and 64 bits.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Fri Apr 11 14:28:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 14:28:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.947452.1345072 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3FNB-0006A8-Qk; Fri, 11 Apr 2025 14:28:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 947452.1345072; Fri, 11 Apr 2025 14:28: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 1u3FNB-0006A1-O4; Fri, 11 Apr 2025 14:28:49 +0000
Received: by outflank-mailman (input) for mailman id 947452;
 Fri, 11 Apr 2025 14:28: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=4v6j=W5=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1u3FNA-00069v-GM
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 14:28:48 +0000
Received: from NAM02-BN1-obe.outbound.protection.outlook.com
 (mail-bn1nam02on2062b.outbound.protection.outlook.com
 [2a01:111:f403:2407::62b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 464fb8e9-16e1-11f0-9ead-5ba50f476ded;
 Fri, 11 Apr 2025 16:28:46 +0200 (CEST)
Received: from BN9PR03CA0395.namprd03.prod.outlook.com (2603:10b6:408:111::10)
 by MN6PR12MB8592.namprd12.prod.outlook.com (2603:10b6:208:478::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.27; Fri, 11 Apr
 2025 14:28:42 +0000
Received: from BL02EPF0001A0FA.namprd03.prod.outlook.com
 (2603:10b6:408:111:cafe::26) by BN9PR03CA0395.outlook.office365.com
 (2603:10b6:408:111::10) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.26 via Frontend Transport; Fri,
 11 Apr 2025 14:28:42 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 BL02EPF0001A0FA.mail.protection.outlook.com (10.167.242.101) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Fri, 11 Apr 2025 14:28:42 +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, 11 Apr
 2025 09:28:42 -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, 11 Apr
 2025 09:28:41 -0500
Received: from [172.17.237.105] (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, 11 Apr 2025 09:28:40 -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: 464fb8e9-16e1-11f0-9ead-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=J9oS62osuDQP9jW2A6t/twQhgHiQjyC2EqG4wLOVQs2IxYClYo1S10A2GXfhxJZtQINLugYd+ouicRUl+tm84ERms5HHBn9LdgLfnH4vRhd9dUPAjFKRav4lEP33wZXi8LVphZrN1I9uAk1blYYAYrIw2wnqdV5dr7ucfER2riF44VTw9Jp+iUdB3I/ZeL0WpzSQuULQfCo6NPpaAJdedTbUPAekd6rwyvtQiYoH1y1D1GdBDWxfCPRlQeItq3/rM3BhmEeqt2Z6cQpy9pA5lidpdp0jOHRUIyQb7Ap6Anscms10VkgZhXg71tfAmcbDFuY3u7srCvN/iOLO5nbILA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=JdF8TtXG0mMAcfOsIIUipK7qCEU/CIXwfpBZM3xMX2s=;
 b=hNjgXr7uGUS8r649/cquXP2T9HPJxOqkeBatyGDxIP4XayMzfEwoYy7UY90ugz4tsc1lOVOQdAZzhwlYG5sD0sM062w9ASha522EGEGKantzc/tCaNicMLAB4N8SWFA0YrKN4tSiYTeVTh8/kjnrd+d9ctNgLFX+Wvha/Bvvzl/DV71es4EbgWbWQouyTq3k1vKcXtblomeHljFpc2y5hFlOM+1Cn6yVclXMpvmR/y9+EqX1ZUKe7Ym4A8kZ2JIGr3R+A4FM9UQdircALcKzxhPXZUrsLox1vh2uSQ8byhVhImGnPKqKaa2uwG4EGV1LdtGqYSQ02L3Q8GltydMc2Q==
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=JdF8TtXG0mMAcfOsIIUipK7qCEU/CIXwfpBZM3xMX2s=;
 b=Yb2zNEnWW/StdSoZCYAXUOMA/2bDWVJ+rtlaWBg3IwHkpKwKyxyo8uXjNLwVoolP3/w3YyqV6WAsUoNOlRAUe18eAjHLHFeEYrLWaDUYBmiXALZWBZBS7vmHtGSesS49kLuBpaucN1dYO8VMJgcsyhhKgNnlcIlZsYNYPgB/ZgA=
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: <8d2bfccc-37e9-4f36-8909-58c398938ea4@amd.com>
Date: Fri, 11 Apr 2025 10:28:41 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH] x86/xen: Fix PVH dom0 xen_hypercall detection
To: Ard Biesheuvel <ardb@kernel.org>, Andrew Cooper
	<andrew.cooper3@citrix.com>
CC: <agarciav@amd.com>, <jgross@suse.com>, <anthony.perard@vates.tech>,
	<marmarek@invisiblethingslab.com>, <michal.orzel@amd.com>,
	<roger.pau@citrix.com>, <sstabellini@kernel.org>,
	<xen-devel@lists.xenproject.org>
References: <D9366FPHFS9F.2OP8KH7C8OJTF@amd.com>
 <20250410195012.363658-1-jason.andryuk@amd.com>
 <84c03f50-638b-4df4-af52-8f79bf00dc20@citrix.com>
 <CAMj1kXGCSSHvokAB5bq4vJv-xPPQf1P468dvoBmpJ-0kNsm6Dg@mail.gmail.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <CAMj1kXGCSSHvokAB5bq4vJv-xPPQf1P468dvoBmpJ-0kNsm6Dg@mail.gmail.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: BL02EPF0001A0FA:EE_|MN6PR12MB8592:EE_
X-MS-Office365-Filtering-Correlation-Id: 8d67b9d9-0981-4fc2-a8a8-08dd790528f7
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?U1c3M216elpYbk84ZWFHUjkzZWxHSnJYT2dkVmx6dVhROWpoeWkvOVV3TXMz?=
 =?utf-8?B?NE5lc1NPL2JSOUVkcHF5UEZqWnlrYlAwMDdOU2RLdGtTSUkvdllVL09ZdS9S?=
 =?utf-8?B?ZmRKaVNSOFVrb3VPYWlZUHRCRkI5bGdvYUl5MTNPdDFZM3FXVmVmR0hMcHZh?=
 =?utf-8?B?L1duY3lkNlFyNGVGOUtxZ2VnU1pCVnp2RWpuR3FmdWMyWTI5c0Jwalp6c2Fo?=
 =?utf-8?B?OTl2c0RvemdjU0hCMituZ0RYK05OSHIrYjVjTlRNWmduMExjbVhHZWphZHMy?=
 =?utf-8?B?WWlIWVZnOGlrbDIwVk5KL01BRXBSM2FQSVdTRWRIbG5yVStVQS9FTjY0bzZH?=
 =?utf-8?B?ekw4bktscCt5RFlsV0ZrUFQxMUJSS1hvd2cyT3hDaUhKd2w1a1oyQjZ6ZlFi?=
 =?utf-8?B?cGVXdXRVUGRLRFNqZVJzVm52dStLMko4VG1FbEhmY0djeHJQMlo2ejNuMi9j?=
 =?utf-8?B?bUVKendpMGNPRkR1QW94cTlYdFZwQk5qRU5kb0NsR2cyOWxpYVZmRDN0OXEv?=
 =?utf-8?B?UmJvZnJzVG5VMDg4eWhEb1hGWXdmeTZzQUhFS3hQa1NYTDlOdkZQeUZ1Zy9Z?=
 =?utf-8?B?N1RGRDdzQVFESkJmY1hReGxvL2twcWwxY2NvWitWOVBjMnBKKyt0TEIwanla?=
 =?utf-8?B?RG0zZkk3cmJ5OW4rVkV3bEFpMnIxeTNRVk5FQWFhWFk4VEVKYUxhM3crZTFm?=
 =?utf-8?B?ZEhpV0FiUkE1RjdhdTRqeFhOZElWekpSdVM1MGxmNFhTUGpKUHJydlhVVUhS?=
 =?utf-8?B?N1dzTTNlV2g1bmNHUFp0TnZMUVlCcFlDSFhrY1dDajZYVjJDdTdPd21oQ09P?=
 =?utf-8?B?b2tOV1Zmc1Y1cW1UN2QwK1ZXRGpFeStWVmJmUXU3c1RzWmkrNTVraXFzN2RO?=
 =?utf-8?B?UVdTSzRQZ0UrNlJTVnpCRU9uVi9xR0l1M1dwWHowZnZGdDliWjFTSDJKMnJS?=
 =?utf-8?B?Y2xSeGhkN1dtV0hhclAxWVRhZDM1OENBZmxiYkt2TWI1MkM4azNHcnJuaXcy?=
 =?utf-8?B?OFFZMWJVREF2dDNHSUs1cFA3OUZvdDFkNzdjQ3l0Y1p0SVRPN0s5TU9Eb29a?=
 =?utf-8?B?T1lKL09Oc25EMEdNR2oyenI2S3B6VElrQ0ltdE1LMktLOGg0Z3NrZWlDVFRn?=
 =?utf-8?B?V1BNRHN3blVsMm5qRCtZNStqc2R1NkhSMjh3b2UwYktvOWxMVmRDOTlhNzZr?=
 =?utf-8?B?M0NLUWhSWlF6VzFXbFVRMGdHSGJJeFd1blVuV2VOQ3BLMUsrWU9OZGpvT01i?=
 =?utf-8?B?VHNRN0ZmM3lPSm1QR1dXRTdMWERvWVNoZDBaVW93RXpGcmp4TU85SUhudVZx?=
 =?utf-8?B?OFRzQjdRcE5GU2U1cDJNNk1TMzQzemd4NkxUbU1BN0Z2ZkRnNVdDQzVhcDhX?=
 =?utf-8?B?NmZDKytXMERiUHdsMzRTVnhVVU0vSzFISUx3UnpwYVV0Vkp0aU4yZDdlM1Q3?=
 =?utf-8?B?NTBSWXB1Q3hGekdMeGNoZnV5dzdvSjRlZFJMVU1adlNsN1NtOE1raWtmR0tv?=
 =?utf-8?B?R0NUNHpaNmhRRDF2SFowL2Z3ejIzVWMwY28rSUMrbzhibEpWRzRxY3BLd2JU?=
 =?utf-8?B?bzJqTW1PSVlCWEJqN1I0RmVpY0k2WnFYQzFrL0lqemJkanBwdDR2SmM0anVP?=
 =?utf-8?B?MU5zRWFuQUZaQ0hFOCtwK3pYMGdxYkgrWk9FVW81VHRVUzdPNVVUVSswQ0o2?=
 =?utf-8?B?UkwyZGFsclUvZGRheGRRekpoMTZJNjdtdUQxTGRiWktwTTg0dmUwa0diNlVp?=
 =?utf-8?B?Q2wrRnlJVG5saWRxek5jdUV2QkJPUW5DdzVXbDZLYlpQYlh6Zkc5V3VCcUl3?=
 =?utf-8?B?VHRVWk5QSUE2NjZSU3BtQXA5U3gyL2lzN1RqbTBmemJnYU4yM2M2RzFtV3Nk?=
 =?utf-8?B?MlBuV0xmQnhaY1ErZ05zT0RYMFJtclQ2VWtDanVsVEI1Z21FVGpXTFY4SUs4?=
 =?utf-8?B?NWFaelp0NWtGMko4SXVIM0hxRlc3T0dhbW13Nm5CWiswRzZGWTRldWxNOTg4?=
 =?utf-8?B?OHBGRFRvY0hUcmxDZEs4MUgrdDV3STU1K3QyakFJWFNjZU1zbDFkM25YUEV4?=
 =?utf-8?Q?q/s2BQ?=
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 Apr 2025 14:28:42.5126
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 8d67b9d9-0981-4fc2-a8a8-08dd790528f7
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:
	BL02EPF0001A0FA.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN6PR12MB8592



On 2025-04-11 07:35, Ard Biesheuvel wrote:
> On Thu, 10 Apr 2025 at 23:49, Andrew Cooper <andrew.cooper3@citrix.com> wrote:
>>
>> On 10/04/2025 8:50 pm, Jason Andryuk wrote:
>>> A Xen PVH dom0 on an AMD processor triple faults early in boot on
>>> 6.6.86.  CPU detection appears to fail, as the faulting instruction is
>>> vmcall in xen_hypercall_intel() and not vmmcall in xen_hypercall_amd().
>>>
>>> Detection fails because __xen_hypercall_setfunc() returns the full
>>> kernel mapped address of xen_hypercall_amd() or xen_hypercall_intel() -
>>> e.g. 0xffffffff815b93f0.  But this is compared against the rip-relative
>>> xen_hypercall_amd(%rip), which when running from identity mapping, is
>>> only 0x015b93f0.
>>>
>>> Replace the rip-relative address with just loading the actual address to
>>> restore the proper comparision.
>>>
>>> This only seems to affect PVH dom0 boot.  This is probably because the
>>> XENMEM_memory_map hypercall is issued early on from the identity
>>> mappings.  With a domU, the memory map is provided via hvm_start_info
>>> and the hypercall is skipped.  The domU is probably running from the
>>> kernel high mapping when it issues hypercalls.
>>>
>>> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
>>> ---
>>> I think this sort of address mismatch would be addresed by
>>> e8fbc0d9cab6 ("x86/pvh: Call C code via the kernel virtual mapping")
>>>
>>> That could be backported instead, but it depends on a fair number of
>>> patches.
>>
>> I've just spoken to Ard, and he thinks that it's standalone.  Should be
>> ok to backport as a fix.
>>
> 
> I've tried building and booting 6.6.y with the patch applied - GS will
> still be set to the 1:1 mapped address but that shouldn't matter,
> given that it is only used for the stack canary, and we don't do
> address comparisons on that afaik.

Yes, it seems to work - I tested with dom0 and it booted.  I removed the 
use of phys_base - the diff is included below.  Does that match what you 
did?

>>> Not sure on how getting a patch just into 6.6 would work.  This patch
>>> could go into upstream Linux though it's not strictly necessary when the
>>> rip-relative address is a high address.
>>
>> Do we know which other trees are broken?  I only found 6.6 because I was
>> messing around with other bits of CI that happen to use 6.6.
>>
> 
> I'd assume all trees that had the hypercall page removal patch
> backported to them will be broken in the same way.

Yes, I think so.  Looks like it went back to 5.10 but not to 5.4.

Ard, I can submit the stable request unless you want to.

Regards,
Jason

diff --git a/arch/x86/platform/pvh/head.S b/arch/x86/platform/pvh/head.S
index c4365a05ab83..9bf4cc04f079 100644
--- a/arch/x86/platform/pvh/head.S
+++ b/arch/x86/platform/pvh/head.S
@@ -100,7 +100,11 @@ SYM_CODE_START_LOCAL(pvh_start_xen)
         xor %edx, %edx
         wrmsr

-       call xen_prepare_pvh
+       /* Call xen_prepare_pvh() via the kernel virtual mapping */
+       leaq xen_prepare_pvh(%rip), %rax
+       addq $__START_KERNEL_map, %rax
+       ANNOTATE_RETPOLINE_SAFE
+       call *%rax

         /* startup_64 expects boot_params in %rsi. */
         mov $_pa(pvh_bootparams), %rsi



From xen-devel-bounces@lists.xenproject.org Fri Apr 11 14:57:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 14:57:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.947476.1345115 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3Foc-0006xf-Mr; Fri, 11 Apr 2025 14:57:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 947476.1345115; Fri, 11 Apr 2025 14: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 1u3Foc-0006vk-JU; Fri, 11 Apr 2025 14:57:10 +0000
Received: by outflank-mailman (input) for mailman id 947476;
 Fri, 11 Apr 2025 14:57: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=TlgU=W5=arm.com=luca.fancellu@srs-se1.protection.inumbo.net>)
 id 1u3Foc-0006ed-3s
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 14:57:10 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 3e2581e2-16e5-11f0-9ead-5ba50f476ded;
 Fri, 11 Apr 2025 16:57:09 +0200 (CEST)
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 E4935106F;
 Fri, 11 Apr 2025 07:57:08 -0700 (PDT)
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 3DF393F59E;
 Fri, 11 Apr 2025 07:57: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: 3e2581e2-16e5-11f0-9ead-5ba50f476ded
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 3/7] arm/mpu: Introduce utility functions for the pr_t type
Date: Fri, 11 Apr 2025 15:56:51 +0100
Message-Id: <20250411145655.140667-4-luca.fancellu@arm.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250411145655.140667-1-luca.fancellu@arm.com>
References: <20250411145655.140667-1-luca.fancellu@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Introduce few utility function to manipulate and handle the
pr_t type.

Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
---
 xen/arch/arm/include/asm/mpu.h | 40 ++++++++++++++++++++++++++++++++++
 1 file changed, 40 insertions(+)

diff --git a/xen/arch/arm/include/asm/mpu.h b/xen/arch/arm/include/asm/mpu.h
index 59ff22c804c1..6971507457fb 100644
--- a/xen/arch/arm/include/asm/mpu.h
+++ b/xen/arch/arm/include/asm/mpu.h
@@ -20,6 +20,46 @@
 #define NUM_MPU_REGIONS_MASK    (NUM_MPU_REGIONS - 1)
 #define MAX_MPU_REGIONS         NUM_MPU_REGIONS_MASK
 
+#ifndef __ASSEMBLY__
+
+/* Set base address of MPU protection region(pr_t). */
+static inline void pr_set_base(pr_t *pr, paddr_t base)
+{
+    pr->prbar.reg.base = (base >> MPU_REGION_SHIFT);
+}
+
+/* Set limit address of MPU protection region(pr_t). */
+static inline void pr_set_limit(pr_t *pr, paddr_t limit)
+{
+    pr->prlar.reg.limit = ((limit - 1) >> MPU_REGION_SHIFT);
+}
+
+/*
+ * Access to get base address of MPU protection region(pr_t).
+ * The base address shall be zero extended.
+ */
+static inline paddr_t pr_get_base(pr_t *pr)
+{
+    return (paddr_t)(pr->prbar.reg.base << MPU_REGION_SHIFT);
+}
+
+/*
+ * Access to get limit address of MPU protection region(pr_t).
+ * The limit address shall be concatenated with 0x3f.
+ */
+static inline paddr_t pr_get_limit(pr_t *pr)
+{
+    return (paddr_t)((pr->prlar.reg.limit << MPU_REGION_SHIFT)
+                     | ~MPU_REGION_MASK);
+}
+
+static inline bool region_is_valid(pr_t *pr)
+{
+    return pr->prlar.reg.en;
+}
+
+#endif /* __ASSEMBLY__ */
+
 #endif /* __ARM_MPU_H__ */
 
 /*
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Apr 11 14:57:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 14:57:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.947479.1345144 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3Fog-0007eZ-HS; Fri, 11 Apr 2025 14:57:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 947479.1345144; Fri, 11 Apr 2025 14:57: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 1u3Fog-0007dp-9y; Fri, 11 Apr 2025 14:57:14 +0000
Received: by outflank-mailman (input) for mailman id 947479;
 Fri, 11 Apr 2025 14:57: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=TlgU=W5=arm.com=luca.fancellu@srs-se1.protection.inumbo.net>)
 id 1u3Foe-0006ed-V7
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 14:57:12 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 3fc02e63-16e5-11f0-9ead-5ba50f476ded;
 Fri, 11 Apr 2025 16:57:12 +0200 (CEST)
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 79CA2106F;
 Fri, 11 Apr 2025 07:57:11 -0700 (PDT)
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 C5B303F59E;
 Fri, 11 Apr 2025 07:57: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: 3fc02e63-16e5-11f0-9ead-5ba50f476ded
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/7] arm/mpu: Introduce MPU memory mapping flags
Date: Fri, 11 Apr 2025 15:56:53 +0100
Message-Id: <20250411145655.140667-6-luca.fancellu@arm.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250411145655.140667-1-luca.fancellu@arm.com>
References: <20250411145655.140667-1-luca.fancellu@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Introduce the MPU memory mapping flags in asm/page.h.

Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
---
 xen/arch/arm/include/asm/page.h | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/xen/arch/arm/include/asm/page.h b/xen/arch/arm/include/asm/page.h
index 69f817d1e68a..22f7d2c6cb30 100644
--- a/xen/arch/arm/include/asm/page.h
+++ b/xen/arch/arm/include/asm/page.h
@@ -62,6 +62,7 @@
 
 #define MAIRVAL (MAIR1VAL << 32 | MAIR0VAL)
 
+#ifdef CONFIG_MMU
 /*
  * Layout of the flags used for updating the hypervisor page tables
  *
@@ -90,6 +91,30 @@
 #define _PAGE_CONTIG_BIT    8
 #define _PAGE_CONTIG        (1U << _PAGE_CONTIG_BIT)
 
+#else /* !CONFIG_MMU */
+
+/*
+ * Layout of the flags used for updating MPU memory region attributes
+ * [0:2] Memory attribute Index
+ * [3:4] Execute Never
+ * [5:6] Access Permission
+ * [7]   Region Present
+ */
+#define _PAGE_AI_BIT            0
+#define _PAGE_XN_BIT            3
+#define _PAGE_AP_BIT            5
+#define _PAGE_PRESENT_BIT       7
+#define _PAGE_AI                (7U << _PAGE_AI_BIT)
+#define _PAGE_XN                (2U << _PAGE_XN_BIT)
+#define _PAGE_RO                (2U << _PAGE_AP_BIT)
+#define _PAGE_PRESENT           (1U << _PAGE_PRESENT_BIT)
+#define PAGE_AI_MASK(x)         (((x) >> _PAGE_AI_BIT) & 0x7U)
+#define PAGE_XN_MASK(x)         (((x) >> _PAGE_XN_BIT) & 0x3U)
+#define PAGE_AP_MASK(x)         (((x) >> _PAGE_AP_BIT) & 0x3U)
+#define PAGE_RO_MASK(x)         (((x) >> _PAGE_AP_BIT) & 0x2U)
+
+#endif /* CONFIG_MMU */
+
 /*
  * _PAGE_DEVICE and _PAGE_NORMAL are convenience defines. They are not
  * meant to be used outside of this header.
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Apr 11 14:57:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 14:57:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.947478.1345138 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3Fog-0007bZ-49; Fri, 11 Apr 2025 14:57:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 947478.1345138; Fri, 11 Apr 2025 14:57: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 1u3Fog-0007bO-1A; Fri, 11 Apr 2025 14:57:14 +0000
Received: by outflank-mailman (input) for mailman id 947478;
 Fri, 11 Apr 2025 14:57: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=TlgU=W5=arm.com=luca.fancellu@srs-se1.protection.inumbo.net>)
 id 1u3Foe-0006eX-RA
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 14:57:12 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 3eff9213-16e5-11f0-9ffb-bf95429c2676;
 Fri, 11 Apr 2025 16:57:11 +0200 (CEST)
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 323BF153B;
 Fri, 11 Apr 2025 07:57:10 -0700 (PDT)
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 8181D3F59E;
 Fri, 11 Apr 2025 07:57: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: 3eff9213-16e5-11f0-9ffb-bf95429c2676
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 4/7] arm/mpu: Provide a constructor for pr_t type
Date: Fri, 11 Apr 2025 15:56:52 +0100
Message-Id: <20250411145655.140667-5-luca.fancellu@arm.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250411145655.140667-1-luca.fancellu@arm.com>
References: <20250411145655.140667-1-luca.fancellu@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Provide a function that creates a pr_t object from a memory
range and some attributes.

Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
---
 xen/arch/arm/include/asm/arm64/mpu.h | 11 +++++
 xen/arch/arm/include/asm/mpu.h       |  4 ++
 xen/arch/arm/include/asm/mpu/mm.h    |  3 ++
 xen/arch/arm/mpu/mm.c                | 73 ++++++++++++++++++++++++++++
 4 files changed, 91 insertions(+)

diff --git a/xen/arch/arm/include/asm/arm64/mpu.h b/xen/arch/arm/include/asm/arm64/mpu.h
index b4e1ecdf741d..eb0add5c6c2a 100644
--- a/xen/arch/arm/include/asm/arm64/mpu.h
+++ b/xen/arch/arm/include/asm/arm64/mpu.h
@@ -6,6 +6,17 @@
 #ifndef __ARM_ARM64_MPU_H__
 #define __ARM_ARM64_MPU_H__
 
+/*
+ * Excute never.
+ * Stage 1 EL2 translation regime.
+ * XN[1] determines whether execution of the instruction fetched from the MPU
+ * memory region is permitted.
+ * Stage 2 EL1/EL0 translation regime.
+ * XN[0] determines whether execution of the instruction fetched from the MPU
+ * memory region is permitted.
+ */
+#define XN_EL2_ENABLED  0x2
+
 #ifndef __ASSEMBLY__
 
 /*
diff --git a/xen/arch/arm/include/asm/mpu.h b/xen/arch/arm/include/asm/mpu.h
index 6971507457fb..eba5086cde97 100644
--- a/xen/arch/arm/include/asm/mpu.h
+++ b/xen/arch/arm/include/asm/mpu.h
@@ -20,6 +20,10 @@
 #define NUM_MPU_REGIONS_MASK    (NUM_MPU_REGIONS - 1)
 #define MAX_MPU_REGIONS         NUM_MPU_REGIONS_MASK
 
+/* Access permission attributes. */
+/* Read/Write at EL2, No Access at EL1/EL0. */
+#define AP_RW_EL2 0x0
+
 #ifndef __ASSEMBLY__
 
 /* Set base address of MPU protection region(pr_t). */
diff --git a/xen/arch/arm/include/asm/mpu/mm.h b/xen/arch/arm/include/asm/mpu/mm.h
index 5cabe9d111ce..9c7a01d6bd58 100644
--- a/xen/arch/arm/include/asm/mpu/mm.h
+++ b/xen/arch/arm/include/asm/mpu/mm.h
@@ -53,6 +53,9 @@ extern void read_protection_region(pr_t *pr_read, uint8_t sel);
 /* Writes the MPU region with index 'sel' to the HW */
 extern void write_protection_region(const pr_t *pr_write, uint8_t sel);
 
+/* Creates a pr_t entry for the MPU data structure */
+extern pr_t pr_of_xenaddr(paddr_t base, paddr_t limit, unsigned attr);
+
 #endif /* __ARM_MPU_MM_H__ */
 
 /*
diff --git a/xen/arch/arm/mpu/mm.c b/xen/arch/arm/mpu/mm.c
index e522ce53c357..635d1f5a2ba0 100644
--- a/xen/arch/arm/mpu/mm.c
+++ b/xen/arch/arm/mpu/mm.c
@@ -9,6 +9,7 @@
 #include <xen/types.h>
 #include <asm/mpu.h>
 #include <asm/mpu/mm.h>
+#include <asm/page.h>
 #include <asm/sysregs.h>
 
 struct page_info *frame_table;
@@ -149,6 +150,78 @@ void write_protection_region(const pr_t *pr_write, uint8_t sel)
     }
 }
 
+/*
+ * Standard entry for building up the structure of MPU memory region(pr_t).
+ * It is equivalent to mfn_to_xen_entry in MMU system.
+ * Base and limit refer to exclusive range [start, limit].
+ */
+pr_t pr_of_xenaddr(paddr_t base, paddr_t limit, unsigned attr)
+{
+    prbar_t prbar;
+    prlar_t prlar;
+    pr_t region;
+
+    /* Build up value for PRBAR_EL2. */
+    prbar = (prbar_t) {
+        .reg = {
+            .ap = AP_RW_EL2,      /* Read/Write at EL2, no access at EL1/EL0. */
+            .xn = XN_EL2_ENABLED, /* No need to execute outside .text */
+        }};
+
+    switch ( attr )
+    {
+    case MT_NORMAL_NC:
+        /*
+         * ARM ARM: Overlaying the shareability attribute (DDI
+         * 0406C.b B3-1376 to 1377)
+         *
+         * A memory region with a resultant memory type attribute of normal,
+         * and a resultant cacheability attribute of Inner non-cacheable,
+         * outer non-cacheable, must have a resultant shareability attribute
+         * of outer shareable, otherwise shareability is UNPREDICTABLE.
+         *
+         * On ARMv8 sharability is ignored and explicitly treated as outer
+         * shareable for normal inner non-cacheable, outer non-cacheable.
+         */
+        prbar.reg.sh = LPAE_SH_OUTER;
+        break;
+    case MT_DEVICE_nGnRnE:
+    case MT_DEVICE_nGnRE:
+        /*
+         * Shareability is ignored for non-normal memory, Outer is as
+         * good as anything.
+         *
+         * On ARMv8 sharability is ignored and explicitly treated as outer
+         * shareable for any device memory type.
+         */
+        prbar.reg.sh = LPAE_SH_OUTER;
+        break;
+    default:
+        /* Xen mappings are SMP coherent */
+        prbar.reg.sh = LPAE_SH_INNER;
+    }
+
+    /* Build up value for PRLAR_EL2. */
+    prlar = (prlar_t) {
+        .reg = {
+            .ns = 0,        /* Hyp mode is in secure world */
+            .ai = attr,
+            .en = 1,        /* Region enabled */
+        }};
+
+    /* Build up MPU memory region. */
+    region = (pr_t) {
+        .prbar = prbar,
+        .prlar = prlar,
+    };
+
+    /* Set base address and limit address. */
+    pr_set_base(&region, base);
+    pr_set_limit(&region, limit);
+
+    return region;
+}
+
 void __init setup_mm(void)
 {
     BUG_ON("unimplemented");
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Apr 11 14:57:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 14:57:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.947474.1345100 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3Fob-0006eq-6a; Fri, 11 Apr 2025 14:57:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 947474.1345100; Fri, 11 Apr 2025 14:57: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 1u3Fob-0006ej-1x; Fri, 11 Apr 2025 14:57:09 +0000
Received: by outflank-mailman (input) for mailman id 947474;
 Fri, 11 Apr 2025 14:57: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=TlgU=W5=arm.com=luca.fancellu@srs-se1.protection.inumbo.net>)
 id 1u3Foa-0006eX-1T
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 14:57:08 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 3bc14f62-16e5-11f0-9ffb-bf95429c2676;
 Fri, 11 Apr 2025 16:57:05 +0200 (CEST)
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 AF898106F;
 Fri, 11 Apr 2025 07:57:04 -0700 (PDT)
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 082BC3F59E;
 Fri, 11 Apr 2025 07:57: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: 3bc14f62-16e5-11f0-9ffb-bf95429c2676
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 0/7] First chunk for Arm R82 and MPU support
Date: Fri, 11 Apr 2025 15:56:48 +0100
Message-Id: <20250411145655.140667-1-luca.fancellu@arm.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Hi all,

This is the first chunk of work to support MPU and R82 on Xen, this serie
reaches the early boot stages until setup_pagetables() which is not used for MPU
but it is just to give an idea about which stage of the boot is reached.

v3 changes:
 - stated on each patch
v2 changes for this serie:
 - rebased serie on the MPU skeleton that allow compilation
 - removed some patches already merged in the MPU skeleton


Luca Fancellu (6):
  arm/mpu: Provide access to the MPU region from the C code
  arm/mpu: Introduce utility functions for the pr_t type
  arm/mpu: Provide a constructor for pr_t type
  arm/mpu: Introduce MPU memory mapping flags
  arm/mpu: Implement early_fdt_map support in MPU systems
  arm/mpu: Implement setup_mpu for MPU system

Penny Zheng (1):
  arm/mpu: Introduce MPU memory region map structure

 xen/arch/arm/include/asm/arm64/mpu.h |  62 +++++++
 xen/arch/arm/include/asm/mpu.h       |  52 ++++++
 xen/arch/arm/include/asm/mpu/mm.h    |  27 +++
 xen/arch/arm/include/asm/page.h      |  25 +++
 xen/arch/arm/mpu/mm.c                | 251 ++++++++++++++++++++++++++-
 xen/arch/arm/mpu/setup.c             |  54 +++++-
 6 files changed, 468 insertions(+), 3 deletions(-)
 create mode 100644 xen/arch/arm/include/asm/arm64/mpu.h

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Apr 11 14:57:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 14:57:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.947477.1345129 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3Fod-0007Kx-U3; Fri, 11 Apr 2025 14:57:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 947477.1345129; Fri, 11 Apr 2025 14:57: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 1u3Fod-0007Kq-QR; Fri, 11 Apr 2025 14:57:11 +0000
Received: by outflank-mailman (input) for mailman id 947477;
 Fri, 11 Apr 2025 14:57: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=TlgU=W5=arm.com=luca.fancellu@srs-se1.protection.inumbo.net>)
 id 1u3Foc-0006eX-AX
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 14:57:10 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 3d7978b6-16e5-11f0-9ffb-bf95429c2676;
 Fri, 11 Apr 2025 16:57:08 +0200 (CEST)
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 9DC3B1596;
 Fri, 11 Apr 2025 07:57:07 -0700 (PDT)
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 ED07F3F59E;
 Fri, 11 Apr 2025 07:57: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: 3d7978b6-16e5-11f0-9ffb-bf95429c2676
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/7] arm/mpu: Provide access to the MPU region from the C code
Date: Fri, 11 Apr 2025 15:56:50 +0100
Message-Id: <20250411145655.140667-3-luca.fancellu@arm.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250411145655.140667-1-luca.fancellu@arm.com>
References: <20250411145655.140667-1-luca.fancellu@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Implement some utility function in order to access the MPU regions
from the C world.

Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
---
v3 changes:
 - Moved PRBAR0_EL2/PRLAR0_EL2 to arm64 specific
 - Modified prepare_selector() to be easily made a NOP
   for Arm32, which can address up to 32 region without
   changing selector and it is also its maximum amount
   of MPU regions.
---
---
 xen/arch/arm/include/asm/arm64/mpu.h |   7 ++
 xen/arch/arm/include/asm/mpu.h       |   1 +
 xen/arch/arm/include/asm/mpu/mm.h    |  24 +++++
 xen/arch/arm/mpu/mm.c                | 125 +++++++++++++++++++++++++++
 4 files changed, 157 insertions(+)

diff --git a/xen/arch/arm/include/asm/arm64/mpu.h b/xen/arch/arm/include/asm/arm64/mpu.h
index 4d2bd7d7877f..b4e1ecdf741d 100644
--- a/xen/arch/arm/include/asm/arm64/mpu.h
+++ b/xen/arch/arm/include/asm/arm64/mpu.h
@@ -8,6 +8,13 @@
 
 #ifndef __ASSEMBLY__
 
+/*
+ * The following are needed for the case generators GENERATE_WRITE_PR_REG_CASE
+ * and GENERATE_READ_PR_REG_CASE with num==0
+ */
+#define PRBAR0_EL2 PRBAR_EL2
+#define PRLAR0_EL2 PRLAR_EL2
+
 /* Protection Region Base Address Register */
 typedef union {
     struct __packed {
diff --git a/xen/arch/arm/include/asm/mpu.h b/xen/arch/arm/include/asm/mpu.h
index e148c705b82c..59ff22c804c1 100644
--- a/xen/arch/arm/include/asm/mpu.h
+++ b/xen/arch/arm/include/asm/mpu.h
@@ -13,6 +13,7 @@
 #define MPU_REGION_SHIFT  6
 #define MPU_REGION_ALIGN  (_AC(1, UL) << MPU_REGION_SHIFT)
 #define MPU_REGION_MASK   (~(MPU_REGION_ALIGN - 1))
+#define MPU_REGION_RES0   (0xFFFULL << 52)
 
 #define NUM_MPU_REGIONS_SHIFT   8
 #define NUM_MPU_REGIONS         (_AC(1, UL) << NUM_MPU_REGIONS_SHIFT)
diff --git a/xen/arch/arm/include/asm/mpu/mm.h b/xen/arch/arm/include/asm/mpu/mm.h
index 86f33d9836b7..5cabe9d111ce 100644
--- a/xen/arch/arm/include/asm/mpu/mm.h
+++ b/xen/arch/arm/include/asm/mpu/mm.h
@@ -8,6 +8,7 @@
 #include <xen/page-size.h>
 #include <xen/types.h>
 #include <asm/mm.h>
+#include <asm/mpu.h>
 
 extern struct page_info *frame_table;
 
@@ -29,6 +30,29 @@ static inline struct page_info *virt_to_page(const void *v)
     return mfn_to_page(mfn);
 }
 
+/* Utility function to be used whenever MPU regions are modified */
+static inline void context_sync_mpu(void)
+{
+    /*
+     * ARM DDI 0600B.a, C1.7.1
+     * Writes to MPU registers are only guaranteed to be visible following a
+     * Context synchronization event and DSB operation.
+     */
+    dsb(sy);
+    isb();
+}
+
+/*
+ * The following API require context_sync_mpu() after being used to modifiy MPU
+ * regions:
+ *  - write_protection_region
+ */
+
+/* Reads the MPU region with index 'sel' from the HW */
+extern void read_protection_region(pr_t *pr_read, uint8_t sel);
+/* Writes the MPU region with index 'sel' to the HW */
+extern void write_protection_region(const pr_t *pr_write, uint8_t sel);
+
 #endif /* __ARM_MPU_MM_H__ */
 
 /*
diff --git a/xen/arch/arm/mpu/mm.c b/xen/arch/arm/mpu/mm.c
index f83ce04fef8a..e522ce53c357 100644
--- a/xen/arch/arm/mpu/mm.c
+++ b/xen/arch/arm/mpu/mm.c
@@ -8,12 +8,30 @@
 #include <xen/sizes.h>
 #include <xen/types.h>
 #include <asm/mpu.h>
+#include <asm/mpu/mm.h>
+#include <asm/sysregs.h>
 
 struct page_info *frame_table;
 
 /* EL2 Xen MPU memory region mapping table. */
 pr_t xen_mpumap[MAX_MPU_REGIONS];
 
+#define GENERATE_WRITE_PR_REG_CASE(num, pr)                                 \
+    case num:                                                               \
+    {                                                                       \
+        WRITE_SYSREG(pr->prbar.bits & ~MPU_REGION_RES0, PRBAR##num##_EL2);  \
+        WRITE_SYSREG(pr->prlar.bits & ~MPU_REGION_RES0, PRLAR##num##_EL2);  \
+        break;                                                              \
+    }
+
+#define GENERATE_READ_PR_REG_CASE(num, pr)                      \
+    case num:                                                   \
+    {                                                           \
+        pr->prbar.bits = READ_SYSREG(PRBAR##num##_EL2);         \
+        pr->prlar.bits = READ_SYSREG(PRLAR##num##_EL2);         \
+        break;                                                  \
+    }
+
 static void __init __maybe_unused build_assertions(void)
 {
     /*
@@ -24,6 +42,113 @@ static void __init __maybe_unused build_assertions(void)
     BUILD_BUG_ON(PAGE_SIZE != SZ_4K);
 }
 
+static void prepare_selector(uint8_t *sel)
+{
+    uint8_t cur_sel = *sel;
+    /*
+     * {read,write}_protection_region works using the direct access to the 0..15
+     * regions, so in order to save the isb() overhead, change the PRSELR_EL2
+     * only when needed, so when the upper 4 bits of the selector will change.
+     */
+    cur_sel &= 0xF0U;
+    if ( READ_SYSREG(PRSELR_EL2) != cur_sel )
+    {
+        WRITE_SYSREG(cur_sel, PRSELR_EL2);
+        isb();
+    }
+    *sel = *sel & 0xFU;
+}
+
+/*
+ * Armv8-R AArch64 at most supports 255 MPU protection regions.
+ * See section G1.3.18 of the reference manual for Armv8-R AArch64,
+ * PRBAR<n>_EL2 and PRLAR<n>_EL2 provide access to the EL2 MPU region
+ * determined by the value of 'n' and PRSELR_EL2.REGION as
+ * PRSELR_EL2.REGION<7:4>:n(n = 0, 1, 2, ... , 15)
+ * For example to access regions from 16 to 31 (0b10000 to 0b11111):
+ * - Set PRSELR_EL2 to 0b1xxxx
+ * - Region 16 configuration is accessible through PRBAR_EL2 and PRLAR_EL2
+ * - Region 17 configuration is accessible through PRBAR1_EL2 and PRLAR1_EL2
+ * - Region 18 configuration is accessible through PRBAR2_EL2 and PRLAR2_EL2
+ * - ...
+ * - Region 31 configuration is accessible through PRBAR15_EL2 and PRLAR15_EL2
+ */
+/*
+ * Read EL2 MPU Protection Region.
+ *
+ * @pr_read: mpu protection region returned by read op.
+ * @sel: mpu protection region selector
+ */
+void read_protection_region(pr_t *pr_read, uint8_t sel)
+{
+    /*
+     * Before accessing EL2 MPU region register PRBAR_EL2/PRLAR_EL2,
+     * make sure PRSELR_EL2 is set, as it determines which MPU region
+     * is selected.
+     */
+    prepare_selector(&sel);
+
+    switch ( sel )
+    {
+        GENERATE_READ_PR_REG_CASE(0, pr_read);
+        GENERATE_READ_PR_REG_CASE(1, pr_read);
+        GENERATE_READ_PR_REG_CASE(2, pr_read);
+        GENERATE_READ_PR_REG_CASE(3, pr_read);
+        GENERATE_READ_PR_REG_CASE(4, pr_read);
+        GENERATE_READ_PR_REG_CASE(5, pr_read);
+        GENERATE_READ_PR_REG_CASE(6, pr_read);
+        GENERATE_READ_PR_REG_CASE(7, pr_read);
+        GENERATE_READ_PR_REG_CASE(8, pr_read);
+        GENERATE_READ_PR_REG_CASE(9, pr_read);
+        GENERATE_READ_PR_REG_CASE(10, pr_read);
+        GENERATE_READ_PR_REG_CASE(11, pr_read);
+        GENERATE_READ_PR_REG_CASE(12, pr_read);
+        GENERATE_READ_PR_REG_CASE(13, pr_read);
+        GENERATE_READ_PR_REG_CASE(14, pr_read);
+        GENERATE_READ_PR_REG_CASE(15, pr_read);
+    default:
+        BUG(); /* Can't happen */
+    }
+}
+
+/*
+ * Write EL2 MPU Protection Region.
+ *
+ * @pr_write: const mpu protection region passed through write op.
+ * @sel: mpu protection region selector
+ */
+void write_protection_region(const pr_t *pr_write, uint8_t sel)
+{
+    /*
+     * Before accessing EL2 MPU region register PRBAR_EL2/PRLAR_EL2,
+     * make sure PRSELR_EL2 is set, as it determines which MPU region
+     * is selected.
+     */
+    prepare_selector(&sel);
+
+    switch ( sel )
+    {
+        GENERATE_WRITE_PR_REG_CASE(0, pr_write);
+        GENERATE_WRITE_PR_REG_CASE(1, pr_write);
+        GENERATE_WRITE_PR_REG_CASE(2, pr_write);
+        GENERATE_WRITE_PR_REG_CASE(3, pr_write);
+        GENERATE_WRITE_PR_REG_CASE(4, pr_write);
+        GENERATE_WRITE_PR_REG_CASE(5, pr_write);
+        GENERATE_WRITE_PR_REG_CASE(6, pr_write);
+        GENERATE_WRITE_PR_REG_CASE(7, pr_write);
+        GENERATE_WRITE_PR_REG_CASE(8, pr_write);
+        GENERATE_WRITE_PR_REG_CASE(9, pr_write);
+        GENERATE_WRITE_PR_REG_CASE(10, pr_write);
+        GENERATE_WRITE_PR_REG_CASE(11, pr_write);
+        GENERATE_WRITE_PR_REG_CASE(12, pr_write);
+        GENERATE_WRITE_PR_REG_CASE(13, pr_write);
+        GENERATE_WRITE_PR_REG_CASE(14, pr_write);
+        GENERATE_WRITE_PR_REG_CASE(15, pr_write);
+    default:
+        BUG(); /* Can't happen */
+    }
+}
+
 void __init setup_mm(void)
 {
     BUG_ON("unimplemented");
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Apr 11 14:57:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 14:57:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.947475.1345110 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3Foc-0006sf-D2; Fri, 11 Apr 2025 14:57:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 947475.1345110; Fri, 11 Apr 2025 14: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 1u3Foc-0006sW-81; Fri, 11 Apr 2025 14:57:10 +0000
Received: by outflank-mailman (input) for mailman id 947475;
 Fri, 11 Apr 2025 14:57: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=TlgU=W5=arm.com=luca.fancellu@srs-se1.protection.inumbo.net>)
 id 1u3Foa-0006ed-L3
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 14:57:08 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 3cbb0f05-16e5-11f0-9ead-5ba50f476ded;
 Fri, 11 Apr 2025 16:57:07 +0200 (CEST)
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 59369153B;
 Fri, 11 Apr 2025 07:57:06 -0700 (PDT)
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 4C1753F59E;
 Fri, 11 Apr 2025 07:57: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: 3cbb0f05-16e5-11f0-9ead-5ba50f476ded
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>,
	Penny Zheng <penny.zheng@arm.com>,
	Wei Chen <wei.chen@arm.com>
Subject: [PATCH v3 1/7] arm/mpu: Introduce MPU memory region map structure
Date: Fri, 11 Apr 2025 15:56:49 +0100
Message-Id: <20250411145655.140667-2-luca.fancellu@arm.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250411145655.140667-1-luca.fancellu@arm.com>
References: <20250411145655.140667-1-luca.fancellu@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Penny Zheng <Penny.Zheng@arm.com>

Introduce pr_t typedef which is a structure having the prbar
and prlar members, each being structured as the registers of
the aarch64 armv8-r architecture.

Introduce the array 'xen_mpumap' that will store a view of
the content of the MPU regions.

Introduce MAX_MPU_REGIONS macro that uses the value of
NUM_MPU_REGIONS_MASK just for clarity, because using the
latter as number of elements of the xen_mpumap array might
be misleading.

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>
---
 xen/arch/arm/include/asm/arm64/mpu.h | 44 ++++++++++++++++++++++++++++
 xen/arch/arm/include/asm/mpu.h       |  5 ++++
 xen/arch/arm/mpu/mm.c                |  4 +++
 3 files changed, 53 insertions(+)
 create mode 100644 xen/arch/arm/include/asm/arm64/mpu.h

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 000000000000..4d2bd7d7877f
--- /dev/null
+++ b/xen/arch/arm/include/asm/arm64/mpu.h
@@ -0,0 +1,44 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * mpu.h: Arm Memory Protection Unit definitions for aarch64.
+ */
+
+#ifndef __ARM_ARM64_MPU_H__
+#define __ARM_ARM64_MPU_H__
+
+#ifndef __ASSEMBLY__
+
+/* Protection Region Base Address Register */
+typedef union {
+    struct __packed {
+        unsigned long xn:2;       /* Execute-Never */
+        unsigned long ap:2;       /* Acess Permission */
+        unsigned long sh:2;       /* Sharebility */
+        unsigned long base:46;    /* Base Address */
+        unsigned long pad:12;
+    } reg;
+    uint64_t bits;
+} prbar_t;
+
+/* Protection Region Limit Address Register */
+typedef union {
+    struct __packed {
+        unsigned long en:1;     /* Region enable */
+        unsigned long ai:3;     /* Memory Attribute Index */
+        unsigned long ns:1;     /* Not-Secure */
+        unsigned long res:1;    /* Reserved 0 by hardware */
+        unsigned long limit:46; /* Limit Address */
+        unsigned long pad:12;
+    } reg;
+    uint64_t bits;
+} prlar_t;
+
+/* MPU Protection Region */
+typedef struct {
+    prbar_t prbar;
+    prlar_t prlar;
+} pr_t;
+
+#endif /* __ASSEMBLY__ */
+
+#endif /* __ARM_ARM64_MPU_H__ */
\ No newline at end of file
diff --git a/xen/arch/arm/include/asm/mpu.h b/xen/arch/arm/include/asm/mpu.h
index d4ec4248b62b..e148c705b82c 100644
--- a/xen/arch/arm/include/asm/mpu.h
+++ b/xen/arch/arm/include/asm/mpu.h
@@ -6,6 +6,10 @@
 #ifndef __ARM_MPU_H__
 #define __ARM_MPU_H__
 
+#if defined(CONFIG_ARM_64)
+# include <asm/arm64/mpu.h>
+#endif
+
 #define MPU_REGION_SHIFT  6
 #define MPU_REGION_ALIGN  (_AC(1, UL) << MPU_REGION_SHIFT)
 #define MPU_REGION_MASK   (~(MPU_REGION_ALIGN - 1))
@@ -13,6 +17,7 @@
 #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)
+#define MAX_MPU_REGIONS         NUM_MPU_REGIONS_MASK
 
 #endif /* __ARM_MPU_H__ */
 
diff --git a/xen/arch/arm/mpu/mm.c b/xen/arch/arm/mpu/mm.c
index 07c8959f4ee9..f83ce04fef8a 100644
--- a/xen/arch/arm/mpu/mm.c
+++ b/xen/arch/arm/mpu/mm.c
@@ -7,9 +7,13 @@
 #include <xen/mm.h>
 #include <xen/sizes.h>
 #include <xen/types.h>
+#include <asm/mpu.h>
 
 struct page_info *frame_table;
 
+/* EL2 Xen MPU memory region mapping table. */
+pr_t xen_mpumap[MAX_MPU_REGIONS];
+
 static void __init __maybe_unused build_assertions(void)
 {
     /*
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Apr 11 14:57:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 14:57:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.947480.1345159 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3Foj-0008Af-Op; Fri, 11 Apr 2025 14:57:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 947480.1345159; Fri, 11 Apr 2025 14:57:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3Foj-0008AX-KK; Fri, 11 Apr 2025 14:57:17 +0000
Received: by outflank-mailman (input) for mailman id 947480;
 Fri, 11 Apr 2025 14:57: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=TlgU=W5=arm.com=luca.fancellu@srs-se1.protection.inumbo.net>)
 id 1u3Foh-0006eX-DP
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 14:57:15 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 40881b03-16e5-11f0-9ffb-bf95429c2676;
 Fri, 11 Apr 2025 16:57:13 +0200 (CEST)
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 B98AC153B;
 Fri, 11 Apr 2025 07:57:12 -0700 (PDT)
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 15BFD3F59E;
 Fri, 11 Apr 2025 07:57: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: 40881b03-16e5-11f0-9ffb-bf95429c2676
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 6/7] arm/mpu: Implement early_fdt_map support in MPU systems
Date: Fri, 11 Apr 2025 15:56:54 +0100
Message-Id: <20250411145655.140667-7-luca.fancellu@arm.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250411145655.140667-1-luca.fancellu@arm.com>
References: <20250411145655.140667-1-luca.fancellu@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Implement early_fdt_map() function, that is responsible to map the
device tree blob in the early stages of the boot process, since at
this stage the MPU C data structure are not yet initialised, it is
using low level APIs to write into the MPU registers at a fixed
MPU region number.

The MPU memory management is designed to work on pages of PAGE_SIZE
in order to reuse helpers and macros already available on the Xen
memory management system.

Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
---
 xen/arch/arm/mpu/setup.c | 54 ++++++++++++++++++++++++++++++++++++++--
 1 file changed, 52 insertions(+), 2 deletions(-)

diff --git a/xen/arch/arm/mpu/setup.c b/xen/arch/arm/mpu/setup.c
index b4da77003f47..5969065250d4 100644
--- a/xen/arch/arm/mpu/setup.c
+++ b/xen/arch/arm/mpu/setup.c
@@ -1,17 +1,67 @@
 /* SPDX-License-Identifier: GPL-2.0-only */
 
+#include <xen/bootfdt.h>
 #include <xen/bug.h>
 #include <xen/init.h>
+#include <xen/libfdt/libfdt.h>
 #include <xen/mm.h>
+#include <xen/pfn.h>
 #include <xen/types.h>
+#include <asm/mpu.h>
+#include <asm/page.h>
 #include <asm/setup.h>
 
+/* Needs to be kept in sync with the regions programmed in arm64/mpu/head.S */
+#define EARLY_FDT_MAP_REGION_NUMBER 6
+
 void __init setup_pagetables(void) {}
 
 void * __init early_fdt_map(paddr_t fdt_paddr)
 {
-    BUG_ON("unimplemented");
-    return NULL;
+    /* Map at least a page containing the DTB address, exclusive range */
+    paddr_t base_paddr = round_pgdown(fdt_paddr);
+    paddr_t end_paddr = round_pgup(fdt_paddr + sizeof(struct fdt_header));
+    unsigned int flags = PAGE_HYPERVISOR_RO;
+    void *fdt_virt = (void *)fdt_paddr; /* virt == paddr for MPU */
+    pr_t fdt_region;
+
+    /*
+     * Check whether the physical FDT address is set and meets the minimum
+     * alignment requirement. Since we are relying on MIN_FDT_ALIGN to be at
+     * least 8 bytes so that we always access the magic and size fields
+     * of the FDT header after mapping the first chunk, double check if
+     * that is indeed the case.
+     */
+    BUILD_BUG_ON(MIN_FDT_ALIGN < 8);
+    if ( !fdt_paddr || fdt_paddr % MIN_FDT_ALIGN )
+        return NULL;
+
+    /* Map the device tree blob header  */
+    fdt_region = pr_of_xenaddr(base_paddr, end_paddr, PAGE_AI_MASK(flags));
+    fdt_region.prbar.reg.ap = PAGE_AP_MASK(flags);
+    fdt_region.prbar.reg.xn = PAGE_XN_MASK(flags);
+
+    write_protection_region(&fdt_region, EARLY_FDT_MAP_REGION_NUMBER);
+    context_sync_mpu();
+
+    if ( fdt_magic(fdt_virt) != FDT_MAGIC )
+        return NULL;
+
+    end_paddr = round_pgup(fdt_paddr + fdt_totalsize(fdt_virt));
+
+    /*
+     * If the mapped range is not enough, map the rest of the DTB, pr_get_limit
+     * returns an inclusive address of the range, hence the increment.
+     */
+    if ( end_paddr > (pr_get_limit(&fdt_region) + 1) )
+    {
+        pr_set_limit(&fdt_region, end_paddr);
+
+        write_protection_region(&fdt_region, EARLY_FDT_MAP_REGION_NUMBER);
+        context_sync_mpu();
+    }
+
+    return fdt_virt;
 }
 
 /*
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Apr 11 14:57:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 14:57:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.947481.1345165 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3Fok-0008F5-4w; Fri, 11 Apr 2025 14:57:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 947481.1345165; Fri, 11 Apr 2025 14: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 1u3Foj-0008El-Um; Fri, 11 Apr 2025 14:57:17 +0000
Received: by outflank-mailman (input) for mailman id 947481;
 Fri, 11 Apr 2025 14:57: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=TlgU=W5=arm.com=luca.fancellu@srs-se1.protection.inumbo.net>)
 id 1u3Foh-0006ed-N0
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 14:57:15 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 41404f74-16e5-11f0-9ead-5ba50f476ded;
 Fri, 11 Apr 2025 16:57:14 +0200 (CEST)
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 0A19E106F;
 Fri, 11 Apr 2025 07:57:14 -0700 (PDT)
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 59E9B3F59E;
 Fri, 11 Apr 2025 07:57:13 -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: 41404f74-16e5-11f0-9ead-5ba50f476ded
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 7/7] arm/mpu: Implement setup_mpu for MPU system
Date: Fri, 11 Apr 2025 15:56:55 +0100
Message-Id: <20250411145655.140667-8-luca.fancellu@arm.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250411145655.140667-1-luca.fancellu@arm.com>
References: <20250411145655.140667-1-luca.fancellu@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Implement the function setup_mpu that will logically track the MPU
regions defined by hardware registers, start introducing data
structures and functions to track the status from the C world.

The xen_mpumap_mask bitmap is used to track which MPU region are
enabled at runtime.

This function is called from setup_mm() which full implementation
will be provided in a later stage.

Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
---
v3 changes:
 - Moved PRENR_MASK define to common.
---
---
 xen/arch/arm/include/asm/mpu.h |  2 ++
 xen/arch/arm/mpu/mm.c          | 49 +++++++++++++++++++++++++++++++++-
 2 files changed, 50 insertions(+), 1 deletion(-)

diff --git a/xen/arch/arm/include/asm/mpu.h b/xen/arch/arm/include/asm/mpu.h
index eba5086cde97..77d0566f9780 100644
--- a/xen/arch/arm/include/asm/mpu.h
+++ b/xen/arch/arm/include/asm/mpu.h
@@ -20,6 +20,8 @@
 #define NUM_MPU_REGIONS_MASK    (NUM_MPU_REGIONS - 1)
 #define MAX_MPU_REGIONS         NUM_MPU_REGIONS_MASK
 
+#define PRENR_MASK  GENMASK(31, 0)
+
 /* Access permission attributes. */
 /* Read/Write at EL2, No Access at EL1/EL0. */
 #define AP_RW_EL2 0x0
diff --git a/xen/arch/arm/mpu/mm.c b/xen/arch/arm/mpu/mm.c
index 635d1f5a2ba0..e0a40489a7fc 100644
--- a/xen/arch/arm/mpu/mm.c
+++ b/xen/arch/arm/mpu/mm.c
@@ -14,6 +14,17 @@
 
 struct page_info *frame_table;
 
+/* Maximum number of supported MPU memory regions by the EL2 MPU. */
+uint8_t __ro_after_init max_xen_mpumap;
+
+/*
+ * Bitmap xen_mpumap_mask is to record the usage of EL2 MPU memory regions.
+ * Bit 0 represents MPU memory region 0, bit 1 represents MPU memory
+ * region 1, ..., and so on.
+ * If a MPU memory region gets enabled, set the according bit to 1.
+ */
+DECLARE_BITMAP(xen_mpumap_mask, MAX_MPU_REGIONS);
+
 /* EL2 Xen MPU memory region mapping table. */
 pr_t xen_mpumap[MAX_MPU_REGIONS];
 
@@ -222,9 +233,45 @@ pr_t pr_of_xenaddr(paddr_t base, paddr_t limit, unsigned attr)
     return region;
 }
 
+/*
+ * The code in this function needs to track the regions programmed in
+ * arm64/mpu/head.S
+ */
+static void __init setup_mpu(void)
+{
+    register_t prenr;
+    unsigned int i = 0;
+
+    /*
+     * MPUIR_EL2.Region[0:7] identifies the number of regions supported by
+     * the EL2 MPU.
+     */
+    max_xen_mpumap = (uint8_t)(READ_SYSREG(MPUIR_EL2) & NUM_MPU_REGIONS_MASK);
+
+    /* PRENR_EL2 has the N bit set if the N region is enabled, N < 32 */
+    prenr = (READ_SYSREG(PRENR_EL2) & PRENR_MASK);
+
+    /*
+     * Set the bitfield for regions enabled in assembly boot-time.
+     * This code works under the assumption that the code in head.S has
+     * allocated and enabled regions below 32 (N < 32).
+     */
+    while ( prenr > 0 )
+    {
+        if (prenr & 0x1)
+        {
+            set_bit(i, xen_mpumap_mask);
+            read_protection_region(&xen_mpumap[i], i);
+        }
+
+        prenr >>= 1;
+        i++;
+    }
+}
+
 void __init setup_mm(void)
 {
-    BUG_ON("unimplemented");
+    setup_mpu();
 }
 
 int modify_xen_mappings(unsigned long s, unsigned long e, unsigned int nf)
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Apr 11 15:32:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 15:32:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.947588.1345179 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3GMh-0004nS-2X; Fri, 11 Apr 2025 15:32:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 947588.1345179; Fri, 11 Apr 2025 15: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 1u3GMg-0004nL-VQ; Fri, 11 Apr 2025 15:32:22 +0000
Received: by outflank-mailman (input) for mailman id 947588;
 Fri, 11 Apr 2025 15:32: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=r/J2=W5=kernel.org=ardb@srs-se1.protection.inumbo.net>)
 id 1u3GMf-0004nF-N6
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 15:32:21 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org
 [2600:3c0a:e001:78e:0:1991:8:25])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 26582db5-16ea-11f0-9ffb-bf95429c2676;
 Fri, 11 Apr 2025 17:32:18 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 2C3544A50D
 for <xen-devel@lists.xenproject.org>; Fri, 11 Apr 2025 15:32:15 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id EAB22C4CEE2
 for <xen-devel@lists.xenproject.org>; Fri, 11 Apr 2025 15:32:15 +0000 (UTC)
Received: by mail-lf1-f45.google.com with SMTP id
 2adb3069b0e04-54954fa61c9so2712200e87.1
 for <xen-devel@lists.xenproject.org>; Fri, 11 Apr 2025 08:32: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: 26582db5-16ea-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1744385536;
	bh=qecDzYE+xh/y37TaBMAK4HUM7O6HCzXfS50lOtKKy20=;
	h=References:In-Reply-To:From:Date:Subject:To:Cc:From;
	b=FPAH74J/y8zwAFWZKQQfqbeLsiq4qPpjrxrk4F5FSlyTp11m3AZa3QGQGm2lXrtjn
	 TuESbiH1QdckFzDP82bHkrrDyOdKvWh/JSbQ9LTvtSoO6U6Sez4RzhqkAiBuNG7W/u
	 bO8pHf+EObcKIPgOL1fQa6P6Nj52RmvcJ20YPrR3QM5TfvmrAkjYFmmoEHdvUpU/y4
	 1baVUrCx3AdKgIdfu6Dpbf9uKDGZINFm20LT6qaJ1CX5f0BS//LQbfgERG5Ojc9IZF
	 K8/8wXi3M5i1zayri5eIDMac33QbQMIIYSMExp68fu44u3GNYmWHeKHebSTXNGJIGn
	 QICWuk9K1WZsA==
X-Forwarded-Encrypted: i=1; AJvYcCWrKFr96wDatnnInkkWtB1zphZra9gSbxkqA9RJKF4Maz1SF8wMvRK0FEfSVVyxH/XmQiRfyJ4Bdl4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxzSauRd/aMvrPpNJZpyNZz4Jupanrx479eTMpfYxM/Q8UHpR/d
	OjcealVorPDDU3TiP6WJT38cT523X/WDz9MbyGYtvD26eF6j3AlNRNzoU4pXl4ORU/1aqH8W4m0
	4VU8+L/2dUXeP9yUe+PgutpnwVlc=
X-Google-Smtp-Source: AGHT+IHcffy9EjRZN6cWiTG4eam2IzF6P4Zw/emfa+loK4jdqfntj3DmrBwnZHyx45V0Av1WtulyaUY4bIz89dZiIcM=
X-Received: by 2002:a05:6512:31c5:b0:545:743:cf44 with SMTP id
 2adb3069b0e04-54d4528be9bmr1203789e87.12.1744385534307; Fri, 11 Apr 2025
 08:32:14 -0700 (PDT)
MIME-Version: 1.0
References: <D9366FPHFS9F.2OP8KH7C8OJTF@amd.com> <20250410195012.363658-1-jason.andryuk@amd.com>
 <84c03f50-638b-4df4-af52-8f79bf00dc20@citrix.com> <CAMj1kXGCSSHvokAB5bq4vJv-xPPQf1P468dvoBmpJ-0kNsm6Dg@mail.gmail.com>
 <8d2bfccc-37e9-4f36-8909-58c398938ea4@amd.com>
In-Reply-To: <8d2bfccc-37e9-4f36-8909-58c398938ea4@amd.com>
From: Ard Biesheuvel <ardb@kernel.org>
Date: Fri, 11 Apr 2025 17:32:03 +0200
X-Gmail-Original-Message-ID: <CAMj1kXGQeUsWEPQjP4RMTf6y8Ua23fOsyVfm6gHEkKOKMJGPRQ@mail.gmail.com>
X-Gm-Features: ATxdqUF3SKqlDgQSzwbhzi2zfunOX3JsmGKzwfq8ojR4jx2GN1WLYoHtpwolgxc
Message-ID: <CAMj1kXGQeUsWEPQjP4RMTf6y8Ua23fOsyVfm6gHEkKOKMJGPRQ@mail.gmail.com>
Subject: Re: [RFC PATCH] x86/xen: Fix PVH dom0 xen_hypercall detection
To: Jason Andryuk <jason.andryuk@amd.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, agarciav@amd.com, jgross@suse.com, 
	anthony.perard@vates.tech, marmarek@invisiblethingslab.com, 
	michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org, 
	xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"

On Fri, 11 Apr 2025 at 16:28, Jason Andryuk <jason.andryuk@amd.com> wrote:
>
>
>
> On 2025-04-11 07:35, Ard Biesheuvel wrote:
> > On Thu, 10 Apr 2025 at 23:49, Andrew Cooper <andrew.cooper3@citrix.com> wrote:
> >>
> >> On 10/04/2025 8:50 pm, Jason Andryuk wrote:
> >>> A Xen PVH dom0 on an AMD processor triple faults early in boot on
> >>> 6.6.86.  CPU detection appears to fail, as the faulting instruction is
> >>> vmcall in xen_hypercall_intel() and not vmmcall in xen_hypercall_amd().
> >>>
> >>> Detection fails because __xen_hypercall_setfunc() returns the full
> >>> kernel mapped address of xen_hypercall_amd() or xen_hypercall_intel() -
> >>> e.g. 0xffffffff815b93f0.  But this is compared against the rip-relative
> >>> xen_hypercall_amd(%rip), which when running from identity mapping, is
> >>> only 0x015b93f0.
> >>>
> >>> Replace the rip-relative address with just loading the actual address to
> >>> restore the proper comparision.
> >>>
> >>> This only seems to affect PVH dom0 boot.  This is probably because the
> >>> XENMEM_memory_map hypercall is issued early on from the identity
> >>> mappings.  With a domU, the memory map is provided via hvm_start_info
> >>> and the hypercall is skipped.  The domU is probably running from the
> >>> kernel high mapping when it issues hypercalls.
> >>>
> >>> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
> >>> ---
> >>> I think this sort of address mismatch would be addresed by
> >>> e8fbc0d9cab6 ("x86/pvh: Call C code via the kernel virtual mapping")
> >>>
> >>> That could be backported instead, but it depends on a fair number of
> >>> patches.
> >>
> >> I've just spoken to Ard, and he thinks that it's standalone.  Should be
> >> ok to backport as a fix.
> >>
> >
> > I've tried building and booting 6.6.y with the patch applied - GS will
> > still be set to the 1:1 mapped address but that shouldn't matter,
> > given that it is only used for the stack canary, and we don't do
> > address comparisons on that afaik.
>
> Yes, it seems to work - I tested with dom0 and it booted.  I removed the
> use of phys_base - the diff is included below.  Does that match what you
> did?
>

The stable tree maintainers generally prefer the backports to be as
close to the originals as possible, and given that phys_base is
guaranteed to be 0x0, you might as well keep the subtraction.

> >>> Not sure on how getting a patch just into 6.6 would work.  This patch
> >>> could go into upstream Linux though it's not strictly necessary when the
> >>> rip-relative address is a high address.
> >>
> >> Do we know which other trees are broken?  I only found 6.6 because I was
> >> messing around with other bits of CI that happen to use 6.6.
> >>
> >
> > I'd assume all trees that had the hypercall page removal patch
> > backported to them will be broken in the same way.
>
> Yes, I think so.  Looks like it went back to 5.10 but not to 5.4.
>
> Ard, I can submit the stable request unless you want to.
>

Please go ahead.


From xen-devel-bounces@lists.xenproject.org Fri Apr 11 15:53:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 15:53:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.947603.1345189 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3Gh2-0002BS-Mv; Fri, 11 Apr 2025 15:53:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 947603.1345189; Fri, 11 Apr 2025 15: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 1u3Gh2-0002BL-JL; Fri, 11 Apr 2025 15:53:24 +0000
Received: by outflank-mailman (input) for mailman id 947603;
 Fri, 11 Apr 2025 15:53: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=vbRy=W5=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u3Gh0-0002BF-Sm
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 15:53:23 +0000
Received: from mail-10630.protonmail.ch (mail-10630.protonmail.ch
 [79.135.106.30]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1699f79e-16ed-11f0-9ffb-bf95429c2676;
 Fri, 11 Apr 2025 17:53:19 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1699f79e-16ed-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1744386797; x=1744645997;
	bh=/lQPWvbIwhsx4tizVgVKuuHOW/ThZO4jYZyRewSO0nQ=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=WpPCTGd1o/CboW/AgNwVwPUPwzi46JpTCaGJxJyJVKz+hDJofp4zFxfsIvVXWAx8h
	 2r1wFeOnUd1F7fCdUsJaOMTuNhgywS1ouBcYFvrRDbcPu0G9iPg1KOe2zYbBBI80Uy
	 1Bwye1v9IPCg/ST9z36leEA2acsYn1zre6HAWKIZ24QP3DCZ1XwufjiZvy7vYbn7EG
	 f2yDuE1Tmfh/kVra01Q+la2241nDV0T9LMa0Z9yRY3mdkCI9uogbMTK9yOLdPvk8QX
	 Mi3e+/A5cL2B4j7EMDP6w4GN1uaZriwoWCLhXkGNpDFThg3Xy+OVH+eCd2gqTT1qTs
	 0OKNoDOsIu6DQ==
Date: Fri, 11 Apr 2025 15:53:12 +0000
To: Andrew Cooper <andrew.cooper3@citrix.com>
From: Denis Mukhin <dmkhn@proton.me>
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?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: Re: [PATCH 1/3] Rework rootfs generation to make a cpio archive
Message-ID: <Z0-Vwr2two0iaVg5FoxYWjiImFDeS3tDPssc0X1D0iAcnbK2X4TpJlSRbwugx0mW2_nWjgKQ5nSioBtuRNkjLG3mhDzhuDmZCa3Mz2e5R-E=@proton.me>
In-Reply-To: <20250411105217.2141356-2-andrew.cooper3@citrix.com>
References: <20250411105217.2141356-1-andrew.cooper3@citrix.com> <20250411105217.2141356-2-andrew.cooper3@citrix.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 163903897d9af93aa4020ae0ff58fc76327dbb76
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Friday, April 11th, 2025 at 3:52 AM, Andrew Cooper <andrew.cooper3@citri=
x.com> wrote:

>=20
>=20
> Rename the script as we're going to use it for ARM64 shortly, and have it=
 take
> a tar or cpio parameter to determine the output format.
>=20
> Turn it into a proper bash script, and provide the cpio form under the ne=
w
> artefact naming scheme.
>=20
> No functional change.
>=20
> Signed-off-by: Andrew Cooper andrew.cooper3@citrix.com
>=20
> ---
> CC: Anthony PERARD anthony.perard@vates.tech
>=20
> CC: Stefano Stabellini sstabellini@kernel.org
>=20
> CC: Michal Orzel michal.orzel@amd.com
>=20
> CC: Doug Goldstein cardoe@cardoe.com
>=20
> CC: Marek Marczykowski-G=C3=B3recki marmarek@invisiblethingslab.com
>=20
> ---
> .gitlab-ci.yml | 9 +++++++-
> ...6_64-rootfs-alpine.sh =3D> alpine-rootfs.sh} | 21 +++++++++++++++++--
>=20
> 2 files changed, 27 insertions(+), 3 deletions(-)
> rename scripts/{x86_64-rootfs-alpine.sh =3D> alpine-rootfs.sh} (75%)
>=20
>=20
> diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
> index 1d2c72b268a3..916c5ae9d508 100644
> --- a/.gitlab-ci.yml
> +++ b/.gitlab-ci.yml
> @@ -42,6 +42,13 @@ linux-6.6.86-arm64:
> #
> # x86_64 artifacts
> #
> +alpine-3.18-x86_64-rootfs:
> + extends: .x86_64-artifacts
> + script:
> + - ./scripts/alpine-rootfs.sh cpio
> + variables:
> + CONTAINER: alpine:3.18-x86_64-base
> +
> linux-6.6.56-x86_64:
> extends: .x86_64-artifacts
> script: ./scripts/build-linux.sh
> @@ -62,7 +69,7 @@ x86_64-kernel-linux-6.6.56:
> x86_64-rootfs-alpine-3.18:
> extends: .x86_64-artifacts
> script:
> - - . scripts/x86_64-rootfs-alpine.sh
> + - ./scripts/alpine-rootfs.sh tar
> variables:
> CONTAINER: alpine:3.18-x86_64-base
>=20
> diff --git a/scripts/x86_64-rootfs-alpine.sh b/scripts/alpine-rootfs.sh
> similarity index 75%
> rename from scripts/x86_64-rootfs-alpine.sh
> rename to scripts/alpine-rootfs.sh
> index b70b3a54ede5..c29c92d1c682 100755
> --- a/scripts/x86_64-rootfs-alpine.sh
> +++ b/scripts/alpine-rootfs.sh
> @@ -1,4 +1,9 @@
> +#!/bin/bash
> +
> +set -eu
> +
> WORKDIR=3D"${PWD}"
> +COPYDIR=3D"${WORKDIR}/binaries"
>=20
> apk update
>=20
> @@ -56,5 +61,17 @@ passwd -d "root" root
>=20
> # Create rootfs
> cd /
> -tar cvzf "${WORKDIR}/binaries/initrd.tar.gz" \
> - bin dev etc home init lib mnt opt root sbin usr var
> +PATHS=3D"bin dev etc home init lib mnt opt root sbin usr var"
> +
> +case $1 in
> + cpio)
> + find $PATHS | cpio -o -H newc | gzip > "${COPYDIR}/rootfs.cpio.gz"
>=20
> +
> + # Print the contents for the build log
> + zcat "${COPYDIR}/rootfs.cpio.gz" | cpio -tv

Maybe allow $1 to be a filename? E. g. rootfs.cpio.gz or initrd.tar.gz.
This way $1 will contain an explicit output artifact format along with
the output filename.

What do you think?

> + ;;
> +
> + tar)
> + tar cvzf "${COPYDIR}/initrd.tar.gz" $PATHS
> + ;;

I would add the default case and error out in case of possible mis-use.

> +esac
> --
> 2.39.5


From xen-devel-bounces@lists.xenproject.org Fri Apr 11 16:19:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 16:19:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.947620.1345206 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3H5n-0000EM-Mr; Fri, 11 Apr 2025 16:18:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 947620.1345206; Fri, 11 Apr 2025 16:18: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 1u3H5n-0000EF-KI; Fri, 11 Apr 2025 16:18:59 +0000
Received: by outflank-mailman (input) for mailman id 947620;
 Fri, 11 Apr 2025 16:18: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=6P8a=W5=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u3H5l-0000E7-R3
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 16:18:58 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a5bb92cb-16f0-11f0-9ffb-bf95429c2676;
 Fri, 11 Apr 2025 18:18:54 +0200 (CEST)
Received: from [192.168.7.202] ([71.202.166.45]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53BGI8eE556627
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NO);
 Fri, 11 Apr 2025 09:18:09 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a5bb92cb-16f0-11f0-9ffb-bf95429c2676
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53BGI8eE556627
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025032001; t=1744388294;
	bh=Ko0DVDPZk1lmFb0ezN24lfEVEQfJNexfOA0BljZTyTI=;
	h=Date:Subject:To:Cc:References:From:In-Reply-To:From;
	b=HCMVPE3VUrByMrInwuaCfKprmguQQdiEPaKMoCCTWK2LUmCWRi9fEDI7gTCEM9ZJh
	 877M78JwB16h8FPAsWwuVFC0wKwAGh+MrTEDORzFRNDjA6ntRXVp9X6/6lOIl59oJ3
	 uYFB51IHSPgzXhXFMAWKx/iQZ3ZaaS6/JA9hM9lNT+/4EPW4tgiUwYY8Rkz/Hbuozo
	 ILeAs4jjcfjHKvDa1+szOGPBgVbNz2Y4TlEr9lsDpHVkczAbTCSntN3pgBgz6Bt+Fw
	 g2OEgqh6D59YEkxvIXk6+Up3koKlMZT9PzSktqzu1CxwA4/XsBT06O8aEnafCL/t1D
	 mD+w4YrYz7V2w==
Message-ID: <41eb2d08-1b2d-4ca8-bcb7-f5f4611f91a9@zytor.com>
Date: Fri, 11 Apr 2025 09:18:08 -0700
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH v1 10/15] KVM: VMX: Use WRMSRNS or its immediate form
 when available
To: Sean Christopherson <seanjc@google.com>
Cc: linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org,
        linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
        linux-edac@vger.kernel.org, kvm@vger.kernel.org,
        xen-devel@lists.xenproject.org, linux-ide@vger.kernel.org,
        linux-pm@vger.kernel.org, bpf@vger.kernel.org, llvm@lists.linux.dev,
        tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        jgross@suse.com, andrew.cooper3@citrix.com, peterz@infradead.org,
        acme@kernel.org, namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, luto@kernel.org,
        boris.ostrovsky@oracle.com, kys@microsoft.com, haiyangz@microsoft.com,
        decui@microsoft.com
References: <20250331082251.3171276-1-xin@zytor.com>
 <20250331082251.3171276-11-xin@zytor.com> <Z_hTI8ywa3rTxFaz@google.com>
Content-Language: en-US
From: Xin Li <xin@zytor.com>
Autocrypt: addr=xin@zytor.com; keydata=
 xsDNBGUPz1cBDACS/9yOJGojBFPxFt0OfTWuMl0uSgpwk37uRrFPTTLw4BaxhlFL0bjs6q+0
 2OfG34R+a0ZCuj5c9vggUMoOLdDyA7yPVAJU0OX6lqpg6z/kyQg3t4jvajG6aCgwSDx5Kzg5
 Rj3AXl8k2wb0jdqRB4RvaOPFiHNGgXCs5Pkux/qr0laeFIpzMKMootGa4kfURgPhRzUaM1vy
 bsMsL8vpJtGUmitrSqe5dVNBH00whLtPFM7IbzKURPUOkRRiusFAsw0a1ztCgoFczq6VfAVu
 raTye0L/VXwZd+aGi401V2tLsAHxxckRi9p3mc0jExPc60joK+aZPy6amwSCy5kAJ/AboYtY
 VmKIGKx1yx8POy6m+1lZ8C0q9b8eJ8kWPAR78PgT37FQWKYS1uAroG2wLdK7FiIEpPhCD+zH
 wlslo2ETbdKjrLIPNehQCOWrT32k8vFNEMLP5G/mmjfNj5sEf3IOKgMTMVl9AFjsINLHcxEQ
 6T8nGbX/n3msP6A36FDfdSEAEQEAAc0WWGluIExpIDx4aW5Aenl0b3IuY29tPsLBDQQTAQgA
 NxYhBIUq/WFSDTiOvUIqv2u9DlcdrjdRBQJlD89XBQkFo5qAAhsDBAsJCAcFFQgJCgsFFgID
 AQAACgkQa70OVx2uN1HUpgv/cM2fsFCQodLArMTX5nt9yqAWgA5t1srri6EgS8W3F+3Kitge
 tYTBKu6j5BXuXaX3vyfCm+zajDJN77JHuYnpcKKr13VcZi1Swv6Jx1u0II8DOmoDYLb1Q2ZW
 v83W55fOWJ2g72x/UjVJBQ0sVjAngazU3ckc0TeNQlkcpSVGa/qBIHLfZraWtdrNAQT4A1fa
 sWGuJrChBFhtKbYXbUCu9AoYmmbQnsx2EWoJy3h7OjtfFapJbPZql+no5AJ3Mk9eE5oWyLH+
 QWqtOeJM7kKvn/dBudokFSNhDUw06e7EoVPSJyUIMbYtUO7g2+Atu44G/EPP0yV0J4lRO6EA
 wYRXff7+I1jIWEHpj5EFVYO6SmBg7zF2illHEW31JAPtdDLDHYcZDfS41caEKOQIPsdzQkaQ
 oW2hchcjcMPAfyhhRzUpVHLPxLCetP8vrVhTvnaZUo0xaVYb3+wjP+D5j/3+hwblu2agPsaE
 vgVbZ8Fx3TUxUPCAdr/p73DGg57oHjgezsDNBGUPz1gBDAD4Mg7hMFRQqlzotcNSxatlAQNL
 MadLfUTFz8wUUa21LPLrHBkUwm8RujehJrzcVbPYwPXIO0uyL/F///CogMNx7Iwo6by43KOy
 g89wVFhyy237EY76j1lVfLzcMYmjBoTH95fJC/lVb5Whxil6KjSN/R/y3jfG1dPXfwAuZ/4N
 cMoOslWkfZKJeEut5aZTRepKKF54T5r49H9F7OFLyxrC/uI9UDttWqMxcWyCkHh0v1Di8176
 jjYRNTrGEfYfGxSp+3jYL3PoNceIMkqM9haXjjGl0W1B4BidK1LVYBNov0rTEzyr0a1riUrp
 Qk+6z/LHxCM9lFFXnqH7KWeToTOPQebD2B/Ah5CZlft41i8L6LOF/LCuDBuYlu/fI2nuCc8d
 m4wwtkou1Y/kIwbEsE/6RQwRXUZhzO6llfoN96Fczr/RwvPIK5SVMixqWq4QGFAyK0m/1ap4
 bhIRrdCLVQcgU4glo17vqfEaRcTW5SgX+pGs4KIPPBE5J/ABD6pBnUUAEQEAAcLA/AQYAQgA
 JhYhBIUq/WFSDTiOvUIqv2u9DlcdrjdRBQJlD89ZBQkFo5qAAhsMAAoJEGu9DlcdrjdR4C0L
 /RcjolEjoZW8VsyxWtXazQPnaRvzZ4vhmGOsCPr2BPtMlSwDzTlri8BBG1/3t/DNK4JLuwEj
 OAIE3fkkm+UG4Kjud6aNeraDI52DRVCSx6xff3bjmJsJJMb12mWglN6LjdF6K+PE+OTJUh2F
 dOhslN5C2kgl0dvUuevwMgQF3IljLmi/6APKYJHjkJpu1E6luZec/lRbetHuNFtbh3xgFIJx
 2RpgVDP4xB3f8r0I+y6ua+p7fgOjDLyoFjubRGed0Be45JJQEn7A3CSb6Xu7NYobnxfkwAGZ
 Q81a2XtvNS7Aj6NWVoOQB5KbM4yosO5+Me1V1SkX2jlnn26JPEvbV3KRFcwV5RnDxm4OQTSk
 PYbAkjBbm+tuJ/Sm+5Yp5T/BnKz21FoCS8uvTiziHj2H7Cuekn6F8EYhegONm+RVg3vikOpn
 gao85i4HwQTK9/D1wgJIQkdwWXVMZ6q/OALaBp82vQ2U9sjTyFXgDjglgh00VRAHP7u1Rcu4
 l75w1xInsg==
In-Reply-To: <Z_hTI8ywa3rTxFaz@google.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 4/10/2025 4:24 PM, Sean Christopherson wrote:
>> +/*
>> + * Write EAX to MSR_IA32_SPEC_CTRL.
>> + *
>> + * Choose the best WRMSR instruction based on availability.
>> + *
>> + * Replace with 'wrmsrns' and 'wrmsrns %rax, $MSR_IA32_SPEC_CTRL' once binutils support them.
>> + */
>> +.macro WRITE_EAX_TO_MSR_IA32_SPEC_CTRL
>> +	ALTERNATIVE_2 __stringify(mov $MSR_IA32_SPEC_CTRL, %ecx;		\
>> +				  xor %edx, %edx;				\
>> +				  mov %edi, %eax;				\
>> +				  ds wrmsr),					\
>> +		      __stringify(mov $MSR_IA32_SPEC_CTRL, %ecx;		\
>> +				  xor %edx, %edx;				\
>> +				  mov %edi, %eax;				\
>> +				  ASM_WRMSRNS),					\
>> +		      X86_FEATURE_WRMSRNS,					\
>> +		      __stringify(xor %_ASM_AX, %_ASM_AX;			\
>> +				  mov %edi, %eax;				\
>> +				  ASM_WRMSRNS_RAX; .long MSR_IA32_SPEC_CTRL),	\
>> +		      X86_FEATURE_MSR_IMM
>> +.endm
> This is quite hideous.  I have no objection to optimizing __vmx_vcpu_run(), but
> I would much prefer that a macro like this live in generic code, and that it be
> generic.  It should be easy enough to provide an assembly friendly equivalent to
> __native_wrmsr_constant().

Will do.


From xen-devel-bounces@lists.xenproject.org Fri Apr 11 16:54:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 16:54:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.947646.1345216 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3HeU-00032z-9q; Fri, 11 Apr 2025 16:54:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 947646.1345216; Fri, 11 Apr 2025 16:54:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3HeU-00032s-74; Fri, 11 Apr 2025 16:54:50 +0000
Received: by outflank-mailman (input) for mailman id 947646;
 Fri, 11 Apr 2025 16:54:49 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=5hfk=W5=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1u3HeT-00032m-63
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 16:54:49 +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 aaa630db-16f5-11f0-9ffb-bf95429c2676;
 Fri, 11 Apr 2025 18:54:44 +0200 (CEST)
Received: from phl-compute-11.internal (phl-compute-11.phl.internal
 [10.202.2.51])
 by mailfout.stl.internal (Postfix) with ESMTP id C5EEC1140135;
 Fri, 11 Apr 2025 12:54:42 -0400 (EDT)
Received: from phl-mailfrontend-01 ([10.202.2.162])
 by phl-compute-11.internal (MEProxy); Fri, 11 Apr 2025 12:54:42 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri,
 11 Apr 2025 12:54:41 -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: aaa630db-16f5-11f0-9ffb-bf95429c2676
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:message-id:mime-version:reply-to
	:subject:subject:to:to; s=fm2; t=1744390482; x=1744476882; bh=qH
	JIGL98KZ2ts2gjHOr2jKnBec7IucsZamn4BOj9Zjc=; b=IYodawxZOmOwihVPRb
	jIvOCGaqJPeVCPrj4hjZV1aU2YfmvjUtE0YsKUHfwYpSnwf8su7ibFO1QfA8TpIr
	uVKbYv8JG0MVP+w7zmn4iUFlcfzQZB8sGiyteJGyY8u77qd7+rMkAVQTT3PCtRYz
	jed82SEU+Nk9qYh77bEHEiOVqc+G+9X46Bqeo7qFEwVJXtaLwq5mUucP/4U1Qqfo
	3+4Fxg1ebBR6ZJqFSNW0GpcjD0xiAFc4dKS/iKzvkhHhWDv9NhJO8ZwpA74asOJU
	Sw8dZX8/u3AxVtZ0ickM3FGJENrdzTtHMTrcf+tb0MRdkIm92FWrvybod5YXOXVn
	O5TA==
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:message-id
	:mime-version:reply-to:subject:subject:to:to:x-me-proxy
	:x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1744390482; x=
	1744476882; bh=qHJIGL98KZ2ts2gjHOr2jKnBec7IucsZamn4BOj9Zjc=; b=Y
	xdqaSvt2HJ28k3EcGOn56HpG3lnOKWNBtfG5cMAgk3hzAk3k9sZ9ZF2ALYajW2iH
	UNPYOCxgqxm3ksWE88rLTMEc6INEzbv/fEb0ZHk8uvolFMg6YwTrfmxZOdOI/M9C
	zty3KcoalS3ZgnBvfeJgUPy6CHI1JBs6UTeK3Tk9VvqqYrk2qoCUfQN0s+U5b4Tx
	qON5TGTknDtoUDtb/WcH1UbJduRz9uxf6fH2a5Bi/lWvgtvABX5tUfx0VE0ayImg
	mknTUu6Vo/tGbbdPHTL85WY8ysBG/AwKOjMJ6tlts022V2DP2NH0JIc195CgvQy3
	TY/LulEyVM6F5B+l/LI7g==
X-ME-Sender: <xms:Ukn5Z8dxAKjL5wYwkqcVwtq2Ark16XuH11oyhwQZHkekeHxAyfJn-A>
    <xme:Ukn5Z-NX06tyBgJmbz6fWNvSf1LOe98ve8NcKSjQDBiLnuLczfbSIaMgRZaQkJHdg
    i0huSFHVTruXQ>
X-ME-Received: <xmr:Ukn5Z9i1luBMe-tIqly31HHFSJ54IKw3byRibqJftyTQ9O37akKHZ5aI934H6qV36022VZtIr2ARRABUqAAUAym2fX9Vq1DuPQ>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvuddvfeegucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
    pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucenucfjughrpeffhf
    fvvefukfggtggusehgtderredttdejnecuhfhrohhmpeforghrvghkucforghrtgiihihk
    ohifshhkihdqifpkrhgvtghkihcuoehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthh
    hinhhgshhlrggsrdgtohhmqeenucggtffrrghtthgvrhhnpefgtdfgvdetteffleeugfdu
    gfegjeekgfefffdvheffhfdtfeeggfeuhedtffeuleenucffohhmrghinhepqhhusggvsh
    dqohhsrdhorhhgnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhf
    rhhomhepmhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomh
    dpnhgspghrtghpthhtohepvddpmhhouggvpehsmhhtphhouhhtpdhrtghpthhtohepgigv
    nhdquggvvhgvlheslhhishhtshdrgigvnhhprhhojhgvtghtrdhorhhgpdhrtghpthhtoh
    epjhhgrhhoshhssehsuhhsvgdrtghomh
X-ME-Proxy: <xmx:Ukn5Zx_pjj8Fb4-HogY_2K7oLnrleqZBFqZknBCSt89ycgKCmxB_Uw>
    <xmx:Ukn5Z4vgInxcGSjQ0pi9jhFgs7An_Bhc125fPgHYUC6gUX5A1bFxog>
    <xmx:Ukn5Z4EZoTtac8kOhMCGU0cIb6NuaY9zFdJ6ZTyFwt4LXJYVjyrd1Q>
    <xmx:Ukn5Z3NTC_SfDyMFlY1qmWQ7ZEe6wsfjAW417_JEuf4f7EuGdnai4g>
    <xmx:Ukn5Z0sytcTFcEGB6T0nPE2--Z64y_I7Tj7kDOqDvRagFgVmO7JadvRR>
Feedback-ID: i1568416f:Fastmail
Date: Fri, 11 Apr 2025 18:54:39 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel <xen-devel@lists.xenproject.org>
Cc: =?utf-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
Subject: Linux 6.15-rc1: pvqspinlock: lock 0xffff8881029af110 has corrupted
 value 0x0!
Message-ID: <Z_lJTyVipJJEpWg2@mail-itl>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="JpRV2xOIdfUGzFwM"
Content-Disposition: inline


--JpRV2xOIdfUGzFwM
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Fri, 11 Apr 2025 18:54:39 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel <xen-devel@lists.xenproject.org>
Cc: =?utf-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
Subject: Linux 6.15-rc1: pvqspinlock: lock 0xffff8881029af110 has corrupted
 value 0x0!

Hi,

When testing 6.15-rc1 I got this warning:

    [ 1656.521169] xen-blkback: backend/vbd/92/51712: using 2 queues, proto=
col 1 (x86_64-abi) persistent grants
    [ 1656.527173] xen-blkback: backend/vbd/92/51728: using 2 queues, proto=
col 1 (x86_64-abi) persistent grants
    [ 1656.532240] xen-blkback: backend/vbd/92/51744: using 2 queues, proto=
col 1 (x86_64-abi) persistent grants
    [ 1656.537807] ------------[ cut here ]------------
    [ 1656.538131] pvqspinlock: lock 0xffff8881029af110 has corrupted value=
 0x0!
    [ 1656.538586] WARNING: CPU: 1 PID: 118 at kernel/locking/qspinlock_par=
avirt.h:504 __pv_queued_spin_unlock_slowpath+0xdc/0x120
    [ 1656.539342] Modules linked in: snd_seq_dummy snd_hrtimer vfat fat in=
tel_uncore_frequency_common intel_powerclamp snd_sof_pci_intel_mtl snd_sof_=
intel_hda_generic soundwire_intel snd_sof_intel_hda_sdw_bpt snd_sof_intel_h=
da_common snd_soc_hdac_hda snd_sof_intel_hda_mlink snd_sof_intel_hda snd_hd=
a_codec_hdmi soundwire_cadence snd_sof_pci snd_sof_xtensa_dsp snd_sof snd_s=
of_utils snd_hda_ext_core snd_soc_acpi_intel_match snd_soc_acpi_intel_sdca_=
quirks soundwire_generic_allocation snd_soc_acpi crc8 soundwire_bus snd_hda=
_codec_realtek snd_soc_sdca snd_hda_codec_generic snd_hda_scodec_component =
snd_soc_core snd_compress ac97_bus iTCO_wdt snd_pcm_dmaengine intel_pmc_bxt=
 spd5118 iTCO_vendor_support spi_nor snd_hda_intel mtd snd_intel_dspcfg mei=
_gsc_proxy snd_intel_sdw_acpi snd_hda_codec snd_hda_core intel_rapl_msr snd=
_hwdep snd_seq snd_seq_device snd_pcm snd_timer i2c_i801 snd spi_intel_pci =
processor_thermal_device_pci pcspkr processor_thermal_device processor_ther=
mal_wt_hint soundcore spi_intel e1000e i2c_smbus mei_me
    [ 1656.539419]  processor_thermal_rfim processor_thermal_rapl mei intel=
_rapl_common idma64 processor_thermal_wt_req thunderbolt processor_thermal_=
power_floor processor_thermal_mbox intel_pmc_core int340x_thermal_zone igen=
6_edac intel_hid pmt_telemetry pmt_class sparse_keymap intel_scu_pltdrv joy=
dev fuse loop xenfs nfnetlink vsock_loopback vmw_vsock_virtio_transport_com=
mon vmw_vsock_vmci_transport vsock zram vmw_vmci lz4hc_compress lz4_compres=
s dm_thin_pool dm_persistent_data dm_bio_prison dm_crypt xe drm_ttm_helper =
drm_suballoc_helper gpu_sched drm_gpuvm drm_exec drm_gpusvm i915 i2c_algo_b=
it drm_buddy nvme ttm sdhci_pci polyval_clmulni sdhci_uhs2 polyval_generic =
drm_display_helper nvme_core ghash_clmulni_intel sdhci hid_multitouch xhci_=
pci cqhci nvme_keyring sha512_ssse3 sha256_ssse3 sha1_ssse3 mmc_core intel_=
vpu xhci_hcd nvme_auth intel_vsec cec i2c_hid_acpi i2c_hid intel_pmc_mux vi=
deo typec wmi pinctrl_meteorlake serio_raw xen_acpi_processor xen_privcmd x=
en_pciback xen_blkback xen_gntalloc xen_gntdev xen_evtchn
    [ 1656.545212]  scsi_dh_rdac scsi_dh_emc scsi_dh_alua uinput
    [ 1656.551213] CPU: 1 UID: 0 PID: 118 Comm: xenbus Not tainted 6.15.0-0=
=2Erc1.1.qubes.1.fc41.x86_64 #1 PREEMPT(full)=20
    [ 1656.551845] Hardware name: Notebook V54x_6x_TU/V54x_6x_TU, BIOS Dash=
aro (coreboot+UEFI) v0.9.0 07/17/2024
    [ 1656.552425] RIP: e030:__pv_queued_spin_unlock_slowpath+0xdc/0x120
    [ 1656.552810] Code: ca 13 ed fe 90 48 83 c4 10 5b c3 cc cc cc cc 8b 05=
 e9 05 22 01 85 c0 75 ec 8b 17 48 89 fe 48 c7 c7 30 04 f9 81 e8 84 35 f8 fe=
 <0f> 0b eb d7 44 89 ca be 01 00 00 00 48 c7 c7 a0 78 48 82 e8 8c 4d
    [ 1656.553939] RSP: e02b:ffffc9004048bdd8 EFLAGS: 00010086
    [ 1656.554252] RAX: 0000000000000000 RBX: ffff8881029af110 RCX: 0000000=
000000027
    [ 1656.554673] RDX: ffff88819629cac8 RSI: 0000000000000001 RDI: ffff888=
19629cac0
    [ 1656.555102] RBP: ffff8881029af110 R08: 0000000000000000 R09: 0000000=
00000000e
    [ 1656.555524] R10: 636f6c203a6b636f R11: 6c6e697073717670 R12: 0000000=
000000001
    [ 1656.555949] R13: ffffffff80fc0290 R14: 0000000000000000 R15: 0000000=
000000000
    [ 1656.556373] FS:  0000000000000000(0000) GS:ffff888212e61000(0000) kn=
lGS:0000000000000000
    [ 1656.556841] CS:  e030 DS: 0000 ES: 0000 CR0: 0000000080050033
    [ 1656.557176] CR2: 000071b817a4067c CR3: 000000000242e000 CR4: 0000000=
000050660
    [ 1656.557592] Call Trace:
    [ 1656.557739]  <TASK>
    [ 1656.557870]  __raw_callee_save___pv_queued_spin_unlock_slowpath+0x15=
/0x30
    [ 1656.558266]  .slowpath+0x9/0x18
    [ 1656.558453]  ? xen_manage_runstate_time+0x190/0x2d0
    [ 1656.558745]  _raw_spin_unlock_irqrestore+0xe/0x40
    [ 1656.559026]  __wake_up+0x44/0x60
    [ 1656.559230]  ? __pfx_xenbus_thread+0x10/0x10
    [ 1656.559479]  process_msg+0x204/0x2e0
    [ 1656.559693]  xenbus_thread+0x165/0x200
    [ 1656.559913]  ? __pfx_autoremove_wake_function+0x10/0x10
    [ 1656.560223]  kthread+0xf9/0x240
    [ 1656.560420]  ? __pfx_kthread+0x10/0x10
    [ 1656.560637]  ret_from_fork+0x31/0x50
    [ 1656.560854]  ? __pfx_kthread+0x10/0x10
    [ 1656.561070]  ret_from_fork_asm+0x1a/0x30
    [ 1656.561306]  </TASK>
    [ 1656.561440] ---[ end trace 0000000000000000 ]---
    [ 1656.562933] xen-blkback: backend/vbd/92/51760: using 2 queues, proto=
col 1 (x86_64-abi) persistent grants


I'm not sure what exactly triggers it, it doesn't happen on every domU
startup, but I've seen it at least twice already.

Full log at https://openqa.qubes-os.org/tests/135573/logfile?filename=3Dser=
ial0.txt#line-6858

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmf5SU8ACgkQ24/THMrX
1yxUCgf+Njq+CYCA/d/RpCOrabTPY91e4x/ninadQeQ0n4BzON/Oux9TcYqxNaeZ
VQcnxTVBwFGEbUkT3b7+EsEhqWpxWgQt5zmWUg4gtMUqUqG/nN6I9KSWwN0nNykF
uKLjFEEYgthueavOSCZ52iwi39ADpppn5H7EvajzbLutqEoU4BoLmt1jR8qs3IiG
/KGSK5fRVDfH6BRgLBh+0ujRlptl6gin8JWHkokOSoAaRW2+G8YrBVuwUe19EVsV
qPsaVUlrPfz2lEHJfwa+LVA1VzrK9efOppAsZoeBgFFWn7wXagt+5qBlruTWC/E4
j1Z9BKT4mbSMcR4e27D2N8HjePRf2w==
=mQny
-----END PGP SIGNATURE-----

--JpRV2xOIdfUGzFwM--


From xen-devel-bounces@lists.xenproject.org Fri Apr 11 17:50:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 17:50:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.947675.1345243 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3IWA-00014E-GY; Fri, 11 Apr 2025 17:50:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 947675.1345243; Fri, 11 Apr 2025 17:50: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 1u3IWA-000147-DT; Fri, 11 Apr 2025 17:50:18 +0000
Received: by outflank-mailman (input) for mailman id 947675;
 Fri, 11 Apr 2025 17:50: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=cS7z=W5=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u3IW9-000141-3M
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 17:50:17 +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 6a86a7b9-16fd-11f0-9ffb-bf95429c2676;
 Fri, 11 Apr 2025 19:50:12 +0200 (CEST)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-43cfebc343dso17568205e9.2
 for <xen-devel@lists.xenproject.org>; Fri, 11 Apr 2025 10:50:11 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43f233c817dsm89338245e9.23.2025.04.11.10.50.10
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 11 Apr 2025 10:50: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: 6a86a7b9-16fd-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744393811; x=1744998611; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=BxH2vAUM7Erh8dOKek+7RFhBGWbg/ZkSLp+lC931loM=;
        b=ap4d6V3WS8BLFChxeIa+7nvUZNCPN50hojig9v7uQFdqp62Cj/MZkhmYHMCFyk4WvI
         KZWa/JZUo+fl+Zd3VfRBI8YLuZefl4jNTz9clEdefrf/asHupb0d1JQQK1QVm8yoAVGp
         g7SouRKgA9tQiLcrIK3/RA5I90Jd5wEUZVfEI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744393811; x=1744998611;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=BxH2vAUM7Erh8dOKek+7RFhBGWbg/ZkSLp+lC931loM=;
        b=gOu4Te8AGlzOVyIwKCjxtSVsXTD7kY185PgtvvyVta6lwhUBX63SzE6ecqoZAiuzHw
         EE4O6XAIz3Dq8qpArLHaMz6Pe3KR8Dh/O4vf84aq4AvgAFhthW4/owr8Fy/1S8SmrQ5e
         KWmeAZqsp6aoKZSKcHng9fF/IX4ckN6rfBvduowVPEyp18G5erhcv9HyygYVnzNQ+vYg
         e0d6Ck+bNT169JgGRDWUw+doCkfOOhl36oxRQwMTXdwZnKTLh0Y1+QJmUqoO1bdIdwwN
         4nJ3Cvr81/zSMK7w/fluHgmRybDh44pnCjoIcgx2BgSVbtiRjlEdaobA6Zm8OuuFGH+o
         efiA==
X-Gm-Message-State: AOJu0YyvlkRkVtrUQT9GDBQ55oU3P14R7aR7MeekcRicBa7oj6dIRwH5
	NlA2hvoFYXQIE7Uh4zC8R851YxugZa/lcXsbjwb4oT+KqStXmTgkxYSkqe/6Dhk=
X-Gm-Gg: ASbGncvrSNiy1jFnshXcEf+KhEVEt9b+Behcx83RUZ+YvR/MtvuxlsaK6FSBaeM37sR
	blzM5IPIiOPMbEyYgEeUYj7Y4I6K6ETeb5jLrc6ZZRUwaEQvopc09My4QncVZQ2IQxZcnZswijB
	fi9qo+dzJXLmG+ASOmhVr3HcNvLSdaQH1ll4kL2RowkNafrmrsJUFRDgb3qDwUlJ51F2HslLZRk
	3bm6ALiY175sRbbsvGHVjYjt+uAmQFMu6kQJoW4w8OurKZCl6Kz2L+i1wl6f06zyBWDeWnMdwWA
	CK0hh8BaaJwcxPrWfCnlo9Wp9ZxQkemWfcriq67CONrv5uy08W6QHRzpOsNfqCl0Veut/nsj7NS
	QHOW7aA==
X-Google-Smtp-Source: AGHT+IEXgy6k7Pw0UgOLGnNpFSw+lbLm5Wjp9WWIdz726OoKf3ysO+OMM1xXiqU673xDvBkzvTXAkw==
X-Received: by 2002:a05:600c:8489:b0:43c:fe5e:f040 with SMTP id 5b1f17b1804b1-43f3a9a70c4mr30413165e9.23.1744393811145;
        Fri, 11 Apr 2025 10:50:11 -0700 (PDT)
Message-ID: <19e76d36-41d3-4d7f-b3db-f1e17c2c30b1@citrix.com>
Date: Fri, 11 Apr 2025 18:50:10 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/3] Rework rootfs generation to make a cpio archive
To: Denis Mukhin <dmkhn@proton.me>
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?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
References: <20250411105217.2141356-1-andrew.cooper3@citrix.com>
 <20250411105217.2141356-2-andrew.cooper3@citrix.com>
 <Z0-Vwr2two0iaVg5FoxYWjiImFDeS3tDPssc0X1D0iAcnbK2X4TpJlSRbwugx0mW2_nWjgKQ5nSioBtuRNkjLG3mhDzhuDmZCa3Mz2e5R-E=@proton.me>
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: <Z0-Vwr2two0iaVg5FoxYWjiImFDeS3tDPssc0X1D0iAcnbK2X4TpJlSRbwugx0mW2_nWjgKQ5nSioBtuRNkjLG3mhDzhuDmZCa3Mz2e5R-E=@proton.me>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 11/04/2025 4:53 pm, Denis Mukhin wrote:
> On Friday, April 11th, 2025 at 3:52 AM, Andrew Cooper <andrew.cooper3@citrix.com> wrote:
>
>>
>> Rename the script as we're going to use it for ARM64 shortly, and have it take
>> a tar or cpio parameter to determine the output format.
>>
>> Turn it into a proper bash script, and provide the cpio form under the new
>> artefact naming scheme.
>>
>> No functional change.
>>
>> 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: Marek Marczykowski-Górecki marmarek@invisiblethingslab.com
>>
>> ---
>> .gitlab-ci.yml | 9 +++++++-
>> ...6_64-rootfs-alpine.sh => alpine-rootfs.sh} | 21 +++++++++++++++++--
>>
>> 2 files changed, 27 insertions(+), 3 deletions(-)
>> rename scripts/{x86_64-rootfs-alpine.sh => alpine-rootfs.sh} (75%)
>>
>>
>> diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
>> index 1d2c72b268a3..916c5ae9d508 100644
>> --- a/.gitlab-ci.yml
>> +++ b/.gitlab-ci.yml
>> @@ -42,6 +42,13 @@ linux-6.6.86-arm64:
>> #
>> # x86_64 artifacts
>> #
>> +alpine-3.18-x86_64-rootfs:
>> + extends: .x86_64-artifacts
>> + script:
>> + - ./scripts/alpine-rootfs.sh cpio
>> + variables:
>> + CONTAINER: alpine:3.18-x86_64-base
>> +
>> linux-6.6.56-x86_64:
>> extends: .x86_64-artifacts
>> script: ./scripts/build-linux.sh
>> @@ -62,7 +69,7 @@ x86_64-kernel-linux-6.6.56:
>> x86_64-rootfs-alpine-3.18:
>> extends: .x86_64-artifacts
>> script:
>> - - . scripts/x86_64-rootfs-alpine.sh
>> + - ./scripts/alpine-rootfs.sh tar
>> variables:
>> CONTAINER: alpine:3.18-x86_64-base
>>
>> diff --git a/scripts/x86_64-rootfs-alpine.sh b/scripts/alpine-rootfs.sh
>> similarity index 75%
>> rename from scripts/x86_64-rootfs-alpine.sh
>> rename to scripts/alpine-rootfs.sh
>> index b70b3a54ede5..c29c92d1c682 100755
>> --- a/scripts/x86_64-rootfs-alpine.sh
>> +++ b/scripts/alpine-rootfs.sh
>> @@ -1,4 +1,9 @@
>> +#!/bin/bash
>> +
>> +set -eu
>> +
>> WORKDIR="${PWD}"
>> +COPYDIR="${WORKDIR}/binaries"
>>
>> apk update
>>
>> @@ -56,5 +61,17 @@ passwd -d "root" root
>>
>> # Create rootfs
>> cd /
>> -tar cvzf "${WORKDIR}/binaries/initrd.tar.gz" \
>> - bin dev etc home init lib mnt opt root sbin usr var
>> +PATHS="bin dev etc home init lib mnt opt root sbin usr var"
>> +
>> +case $1 in
>> + cpio)
>> + find $PATHS | cpio -o -H newc | gzip > "${COPYDIR}/rootfs.cpio.gz"
>>
>> +
>> + # Print the contents for the build log
>> + zcat "${COPYDIR}/rootfs.cpio.gz" | cpio -tv
> Maybe allow $1 to be a filename? E. g. rootfs.cpio.gz or initrd.tar.gz.
> This way $1 will contain an explicit output artifact format along with
> the output filename.
>
> What do you think?
>
>> + ;;
>> +
>> + tar)
>> + tar cvzf "${COPYDIR}/initrd.tar.gz" $PATHS
>> + ;;
> I would add the default case and error out in case of possible mis-use.

This is bespoke tooling, used as part of Xen's GitlabCI infrastructure.

The parameter is going to last for all of about a week, until we can
retire the tests using the tarball, because they're creating routine but
intermittent test failure.

I'm not looking to over-engineer the result.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Apr 11 18:26:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 18:26:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.947712.1345321 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3J5L-0003bZ-VF; Fri, 11 Apr 2025 18:26:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 947712.1345321; Fri, 11 Apr 2025 18:26: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 1u3J5L-0003bS-Ra; Fri, 11 Apr 2025 18:26:39 +0000
Received: by outflank-mailman (input) for mailman id 947712;
 Fri, 11 Apr 2025 18:26: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=vbRy=W5=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u3J5K-0003bM-0z
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 18:26:39 +0000
Received: from mail-4316.protonmail.ch (mail-4316.protonmail.ch [185.70.43.16])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 801cdc7f-1702-11f0-9eae-5ba50f476ded;
 Fri, 11 Apr 2025 20:26:36 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 801cdc7f-1702-11f0-9eae-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1744395994; x=1744655194;
	bh=h+G4yxxZG3Ud/cdJWwKW5gZwXFbF33judLRqdRnYPb0=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=iykTupEApLNtnggyGxJvNaJpca6FncZOFuaIDJXbOM07cYOC4x6OVMZogqP+QkwZf
	 S6pSNsfvv9iKkeqN1UjsXtUmRDoDo0KdqV30NDx/mNkkEOlqxKp+3M67YSQ/+IYAOr
	 zfJ8SzYKvfNvjNlR6fCxkaC0oOvtQqhN7U8hsiO5QxKU8+tQKzxOBGEEAREdclnY2k
	 c9ClXlZDiOM56/mZ08+Xeh7CqoCkZswuBrIx7bzSQ3/tdvc4OwqfdbAXnlaTjFwES9
	 eE9cJPM6knHTGBvP7IORBFafE8K9pym5+BFlNdjUzZ0jL84HYtkdnwA8FnUxkJKAix
	 Az03oiPHMbHLA==
Date: Fri, 11 Apr 2025 18:26:30 +0000
To: Andrew Cooper <andrew.cooper3@citrix.com>
From: Denis Mukhin <dmkhn@proton.me>
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?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: Re: [PATCH 1/3] Rework rootfs generation to make a cpio archive
Message-ID: <UVVrIXXGVrVG327UTNW2FwMwRW_AWS6rXAVaTTiKVrM2H3ceA6uEuNBb2igMi7DYoEhvFaJp78t1ZnTsg74s3x25Mly-eZZHXx_i0jGSGmQ=@proton.me>
In-Reply-To: <19e76d36-41d3-4d7f-b3db-f1e17c2c30b1@citrix.com>
References: <20250411105217.2141356-1-andrew.cooper3@citrix.com> <20250411105217.2141356-2-andrew.cooper3@citrix.com> <Z0-Vwr2two0iaVg5FoxYWjiImFDeS3tDPssc0X1D0iAcnbK2X4TpJlSRbwugx0mW2_nWjgKQ5nSioBtuRNkjLG3mhDzhuDmZCa3Mz2e5R-E=@proton.me> <19e76d36-41d3-4d7f-b3db-f1e17c2c30b1@citrix.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 919094e16b741a99c6995c82a3b97d5ce9836d29
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Friday, April 11th, 2025 at 10:50 AM, Andrew Cooper <andrew.cooper3@citr=
ix.com> wrote:

>=20
>=20
> On 11/04/2025 4:53 pm, Denis Mukhin wrote:
>=20
> > On Friday, April 11th, 2025 at 3:52 AM, Andrew Cooper andrew.cooper3@ci=
trix.com wrote:
> >=20
> > > Rename the script as we're going to use it for ARM64 shortly, and hav=
e it take
> > > a tar or cpio parameter to determine the output format.
> > >=20
> > > Turn it into a proper bash script, and provide the cpio form under th=
e new
> > > artefact naming scheme.
> > >=20
> > > No functional change.
> > >=20
> > > Signed-off-by: Andrew Cooper andrew.cooper3@citrix.com
> > >=20
> > > ---
> > > CC: Anthony PERARD anthony.perard@vates.tech
> > >=20
> > > CC: Stefano Stabellini sstabellini@kernel.org
> > >=20
> > > CC: Michal Orzel michal.orzel@amd.com
> > >=20
> > > CC: Doug Goldstein cardoe@cardoe.com
> > >=20
> > > CC: Marek Marczykowski-G=C3=B3recki marmarek@invisiblethingslab.com
> > >=20
> > > ---
> > > .gitlab-ci.yml | 9 +++++++-
> > > ...6_64-rootfs-alpine.sh =3D> alpine-rootfs.sh} | 21 ++++++++++++++++=
+--
> > >=20
> > > 2 files changed, 27 insertions(+), 3 deletions(-)
> > > rename scripts/{x86_64-rootfs-alpine.sh =3D> alpine-rootfs.sh} (75%)
> > >=20
> > > diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
> > > index 1d2c72b268a3..916c5ae9d508 100644
> > > --- a/.gitlab-ci.yml
> > > +++ b/.gitlab-ci.yml
> > > @@ -42,6 +42,13 @@ linux-6.6.86-arm64:
> > > #
> > > # x86_64 artifacts
> > > #
> > > +alpine-3.18-x86_64-rootfs:
> > > + extends: .x86_64-artifacts
> > > + script:
> > > + - ./scripts/alpine-rootfs.sh cpio
> > > + variables:
> > > + CONTAINER: alpine:3.18-x86_64-base
> > > +
> > > linux-6.6.56-x86_64:
> > > extends: .x86_64-artifacts
> > > script: ./scripts/build-linux.sh
> > > @@ -62,7 +69,7 @@ x86_64-kernel-linux-6.6.56:
> > > x86_64-rootfs-alpine-3.18:
> > > extends: .x86_64-artifacts
> > > script:
> > > - - . scripts/x86_64-rootfs-alpine.sh
> > > + - ./scripts/alpine-rootfs.sh tar
> > > variables:
> > > CONTAINER: alpine:3.18-x86_64-base
> > >=20
> > > diff --git a/scripts/x86_64-rootfs-alpine.sh b/scripts/alpine-rootfs.=
sh
> > > similarity index 75%
> > > rename from scripts/x86_64-rootfs-alpine.sh
> > > rename to scripts/alpine-rootfs.sh
> > > index b70b3a54ede5..c29c92d1c682 100755
> > > --- a/scripts/x86_64-rootfs-alpine.sh
> > > +++ b/scripts/alpine-rootfs.sh
> > > @@ -1,4 +1,9 @@
> > > +#!/bin/bash
> > > +
> > > +set -eu
> > > +
> > > WORKDIR=3D"${PWD}"
> > > +COPYDIR=3D"${WORKDIR}/binaries"
> > >=20
> > > apk update
> > >=20
> > > @@ -56,5 +61,17 @@ passwd -d "root" root
> > >=20
> > > # Create rootfs
> > > cd /
> > > -tar cvzf "${WORKDIR}/binaries/initrd.tar.gz" \
> > > - bin dev etc home init lib mnt opt root sbin usr var
> > > +PATHS=3D"bin dev etc home init lib mnt opt root sbin usr var"
> > > +
> > > +case $1 in
> > > + cpio)
> > > + find $PATHS | cpio -o -H newc | gzip > "${COPYDIR}/rootfs.cpio.gz"
> > >=20
> > > +
> > > + # Print the contents for the build log
> > > + zcat "${COPYDIR}/rootfs.cpio.gz" | cpio -tv
> > > Maybe allow $1 to be a filename? E. g. rootfs.cpio.gz or initrd.tar.g=
z.
> > > This way $1 will contain an explicit output artifact format along wit=
h
> > > the output filename.
> >=20
> > What do you think?
> >=20
> > > + ;;
> > > +
> > > + tar)
> > > + tar cvzf "${COPYDIR}/initrd.tar.gz" $PATHS
> > > + ;;
> > > I would add the default case and error out in case of possible mis-us=
e.
>=20
>=20
> This is bespoke tooling, used as part of Xen's GitlabCI infrastructure.
>=20
> The parameter is going to last for all of about a week, until we can
> retire the tests using the tarball, because they're creating routine but
> intermittent test failure.

Oh, I see, thanks for the details!

>=20
> I'm not looking to over-engineer the result.
>=20
> ~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Apr 11 18:37:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 18:37:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.947726.1345331 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3JFJ-0006jk-Rj; Fri, 11 Apr 2025 18:36:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 947726.1345331; Fri, 11 Apr 2025 18:36: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 1u3JFJ-0006jd-P3; Fri, 11 Apr 2025 18:36:57 +0000
Received: by outflank-mailman (input) for mailman id 947726;
 Fri, 11 Apr 2025 18:36: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=vbRy=W5=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u3JFJ-0006jX-4X
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 18:36:57 +0000
Received: from mail-10630.protonmail.ch (mail-10630.protonmail.ch
 [79.135.106.30]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f1a1e023-1703-11f0-9eae-5ba50f476ded;
 Fri, 11 Apr 2025 20:36:55 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f1a1e023-1703-11f0-9eae-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1744396613; x=1744655813;
	bh=2ENsjGaaRV8XV8RObaKXEhsj3sVXvrMmmCYo1BwUIwQ=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=J6zbRtHxwLq6+snH78zEWl+zNKjAOCTLYgV/utPBjJbJAgYK+VlKmmZZpngA9qvOs
	 LHaR0CIyYneexpP6EnKEoji1KJdexiSkujD9e3F2d1ww8nW9nVtM8dz2f+lyJTWsYc
	 gM7qaXmLrapIY46lxm5hD7s+r3xEJmIJYjP6067HfHMhyBGEfmM6zaokSjIn30M0ET
	 d2a9t0lGtUrh5IHhRvh411uGwX3PS5/gQFs0gVLiQ6MHeN53Zr/EXhzvKV0KL4xBWu
	 y//6I5OxjUfmw6dy+gusKKhw3nwOB3TQ2mUwyVW9r99jolS9bIkYYIQV1ExG95leX+
	 wcOy2mBwLMIGg==
Date: Fri, 11 Apr 2025 18:36:46 +0000
To: Andrew Cooper <andrew.cooper3@citrix.com>
From: Denis Mukhin <dmkhn@proton.me>
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?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: Re: [PATCH 1/3] Rework rootfs generation to make a cpio archive
Message-ID: <okAnTwrHNhozl60kXBtwU0Fwn11f4cgeqg6lzYbb10_5P5vWvzpgHJ2lSF9wRB8LzC88znNxALzP29cwQupUVX-XkhjA2ikWpCYJIFAsu3E=@proton.me>
In-Reply-To: <20250411105217.2141356-2-andrew.cooper3@citrix.com>
References: <20250411105217.2141356-1-andrew.cooper3@citrix.com> <20250411105217.2141356-2-andrew.cooper3@citrix.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: dbb079f1312d5892b50dbbb026dc4f54f5a139d7
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Friday, April 11th, 2025 at 3:52 AM, Andrew Cooper <andrew.cooper3@citri=
x.com> wrote:

>=20
>=20
> Rename the script as we're going to use it for ARM64 shortly, and have it=
 take
> a tar or cpio parameter to determine the output format.
>=20
> Turn it into a proper bash script, and provide the cpio form under the ne=
w
> artefact naming scheme.
>=20
> No functional change.
>=20
> Signed-off-by: Andrew Cooper andrew.cooper3@citrix.com

Reviewed-by: Denis Mukhin <dmukhin@ford.com>

>=20
> ---
> CC: Anthony PERARD anthony.perard@vates.tech
>=20
> CC: Stefano Stabellini sstabellini@kernel.org
>=20
> CC: Michal Orzel michal.orzel@amd.com
>=20
> CC: Doug Goldstein cardoe@cardoe.com
>=20
> CC: Marek Marczykowski-G=C3=B3recki marmarek@invisiblethingslab.com
>=20
> ---
> .gitlab-ci.yml | 9 +++++++-
> ...6_64-rootfs-alpine.sh =3D> alpine-rootfs.sh} | 21 +++++++++++++++++--
>=20
> 2 files changed, 27 insertions(+), 3 deletions(-)
> rename scripts/{x86_64-rootfs-alpine.sh =3D> alpine-rootfs.sh} (75%)
>=20
>=20
> diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
> index 1d2c72b268a3..916c5ae9d508 100644
> --- a/.gitlab-ci.yml
> +++ b/.gitlab-ci.yml
> @@ -42,6 +42,13 @@ linux-6.6.86-arm64:
> #
> # x86_64 artifacts
> #
> +alpine-3.18-x86_64-rootfs:
> + extends: .x86_64-artifacts
> + script:
> + - ./scripts/alpine-rootfs.sh cpio
> + variables:
> + CONTAINER: alpine:3.18-x86_64-base
> +
> linux-6.6.56-x86_64:
> extends: .x86_64-artifacts
> script: ./scripts/build-linux.sh
> @@ -62,7 +69,7 @@ x86_64-kernel-linux-6.6.56:
> x86_64-rootfs-alpine-3.18:
> extends: .x86_64-artifacts
> script:
> - - . scripts/x86_64-rootfs-alpine.sh
> + - ./scripts/alpine-rootfs.sh tar
> variables:
> CONTAINER: alpine:3.18-x86_64-base
>=20
> diff --git a/scripts/x86_64-rootfs-alpine.sh b/scripts/alpine-rootfs.sh
> similarity index 75%
> rename from scripts/x86_64-rootfs-alpine.sh
> rename to scripts/alpine-rootfs.sh
> index b70b3a54ede5..c29c92d1c682 100755
> --- a/scripts/x86_64-rootfs-alpine.sh
> +++ b/scripts/alpine-rootfs.sh
> @@ -1,4 +1,9 @@
> +#!/bin/bash
> +
> +set -eu
> +
> WORKDIR=3D"${PWD}"
> +COPYDIR=3D"${WORKDIR}/binaries"
>=20
> apk update
>=20
> @@ -56,5 +61,17 @@ passwd -d "root" root
>=20
> # Create rootfs
> cd /
> -tar cvzf "${WORKDIR}/binaries/initrd.tar.gz" \
> - bin dev etc home init lib mnt opt root sbin usr var
> +PATHS=3D"bin dev etc home init lib mnt opt root sbin usr var"
> +
> +case $1 in
> + cpio)
> + find $PATHS | cpio -o -H newc | gzip > "${COPYDIR}/rootfs.cpio.gz"
>=20
> +
> + # Print the contents for the build log
> + zcat "${COPYDIR}/rootfs.cpio.gz" | cpio -tv
> + ;;
> +
> + tar)
> + tar cvzf "${COPYDIR}/initrd.tar.gz" $PATHS
> + ;;
> +esac
> --
> 2.39.5


From xen-devel-bounces@lists.xenproject.org Fri Apr 11 18:44:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 18:44:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.947739.1345342 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3JMV-0001PZ-KG; Fri, 11 Apr 2025 18:44:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 947739.1345342; Fri, 11 Apr 2025 18:44: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 1u3JMV-0001PS-Eh; Fri, 11 Apr 2025 18:44:23 +0000
Received: by outflank-mailman (input) for mailman id 947739;
 Fri, 11 Apr 2025 18: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=vbRy=W5=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u3JMU-0001PM-H2
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 18:44:22 +0000
Received: from mail-4322.protonmail.ch (mail-4322.protonmail.ch [185.70.43.22])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f8c8cfd1-1704-11f0-9ffb-bf95429c2676;
 Fri, 11 Apr 2025 20:44:17 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f8c8cfd1-1704-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1744397056; x=1744656256;
	bh=BThW7+7w6wnulnEZgubFcNoIIwKngiuOjWTbpvOMv8M=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=LhpKCmTrK+BIFFCFXSw5/Hh1vFWkCpRMgeDavBsXfGkg6nrLWZuyzzLXiWK+ma2ui
	 JDzMDNiMY5yI2pY86k1wKJyMullhE/xWHCIMTx1Dx1hjpkZZOYRK9KlxnT/Hy46cPl
	 lASXSH+HQQ24AbPMJWnE/XC2jgfLa240i0HN1Mc8m4YLPXXXeKOziTUCg7YnCzip2X
	 xIrhRmgrq/qEqf4OsV9jbZtjO3ul9+bzdOcQYsEMH8anXuOgFVlKSGZEcTFMYUbkG6
	 Zo3mC5FO2qbTHKEWzQoJV5YZ+vTFxfs6VKQQkA56fedIrmRFvAdJ+I1+kl7/yVNozJ
	 KVB94844CKuHw==
Date: Fri, 11 Apr 2025 18:44:08 +0000
To: Roger Pau Monne <roger.pau@citrix.com>
From: Denis Mukhin <dmkhn@proton.me>
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH 2/5] xen/io: provide helpers for multi size MMIO accesses
Message-ID: <5d2RS-duKVbdI2Bs1NEpc1A7L_qT2oDjIZ87wADa9qFuA92LOWTr4qheoTcnLVJjIJAzVvYexIQSp9XoFeoZJYz6gUFDbmEuFPoI0KUIM70=@proton.me>
In-Reply-To: <20250411105411.22334-3-roger.pau@citrix.com>
References: <20250411105411.22334-1-roger.pau@citrix.com> <20250411105411.22334-3-roger.pau@citrix.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: bc8e466475b5ec130cbabe69e72551b5140fac2f
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Friday, April 11th, 2025 at 3:54 AM, Roger Pau Monne <roger.pau@citrix.c=
om> wrote:

>=20
>=20
> Several handlers have the same necessity of reading from an MMIO region
> using 1, 2, 4 or 8 bytes accesses. So far this has been open-coded in the
> function itself. Instead provide a new handler that encapsulates the
> accesses.
>=20
> Since the added helpers are not architecture specific, introduce a new
> generic io.h header.
>=20
> No functional change intended.
>=20
> Signed-off-by: Roger Pau Monn=C3=A9 roger.pau@citrix.com
>=20
> ---
> xen/arch/x86/hvm/vmsi.c | 47 ++----------------------------
> xen/arch/x86/mm.c | 32 +++++----------------
> xen/drivers/vpci/msix.c | 47 ++----------------------------
> xen/include/xen/io.h | 63 +++++++++++++++++++++++++++++++++++++++++
> 4 files changed, 76 insertions(+), 113 deletions(-)
> create mode 100644 xen/include/xen/io.h
>=20
> diff --git a/xen/arch/x86/hvm/vmsi.c b/xen/arch/x86/hvm/vmsi.c
> index fd83abb929ec..61b89834d97d 100644
> --- a/xen/arch/x86/hvm/vmsi.c
> +++ b/xen/arch/x86/hvm/vmsi.c
> @@ -24,6 +24,7 @@
> * Will be merged it with virtual IOAPIC logic, since most is the same
> */
>=20
> +#include <xen/io.h>
>=20
> #include <xen/types.h>
>=20
> #include <xen/mm.h>
>=20
> #include <xen/xmalloc.h>
>=20
> @@ -304,28 +305,7 @@ static void adjacent_read(
>=20
> hwaddr =3D fix_to_virt(fixmap_idx) + PAGE_OFFSET(address);
>=20
> - switch ( len )
> - {
> - case 1:
> - *pval =3D readb(hwaddr);
> - break;
> -
> - case 2:
> - *pval =3D readw(hwaddr);
> - break;
> -
> - case 4:
> - *pval =3D readl(hwaddr);
> - break;
> -
> - case 8:
> - *pval =3D readq(hwaddr);
> - break;
> -
> - default:
> - ASSERT_UNREACHABLE();
> - break;
> - }
> + *pval =3D read_mmio(hwaddr, len);
> }
>=20
> static void adjacent_write(
> @@ -344,28 +324,7 @@ static void adjacent_write(
>=20
> hwaddr =3D fix_to_virt(fixmap_idx) + PAGE_OFFSET(address);
>=20
> - switch ( len )
> - {
> - case 1:
> - writeb(val, hwaddr);
> - break;
> -
> - case 2:
> - writew(val, hwaddr);
> - break;
> -
> - case 4:
> - writel(val, hwaddr);
> - break;
> -
> - case 8:
> - writeq(val, hwaddr);
> - break;
> -
> - default:
> - ASSERT_UNREACHABLE();
> - break;
> - }
> + write_mmio(hwaddr, val, len);
> }
>=20
> static int cf_check msixtbl_read(
> diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
> index 1cf236516789..989e62e7ce6f 100644
> --- a/xen/arch/x86/mm.c
> +++ b/xen/arch/x86/mm.c
> @@ -95,6 +95,7 @@
> #include <xen/guest_access.h>
>=20
> #include <xen/hypercall.h>
>=20
> #include <xen/init.h>
>=20
> +#include <xen/io.h>
>=20
> #include <xen/iocap.h>
>=20
> #include <xen/ioreq.h>
>=20
> #include <xen/irq.h>
>=20
> @@ -116,7 +117,6 @@
> #include <asm/flushtlb.h>
>=20
> #include <asm/guest.h>
>=20
> #include <asm/idt.h>
>=20
> -#include <asm/io.h>
>=20
> #include <asm/io_apic.h>
>=20
> #include <asm/ldt.h>
>=20
> #include <asm/mem_sharing.h>
>=20
> @@ -5102,7 +5102,7 @@ static void __iomem *subpage_mmio_map_page(
> static void subpage_mmio_write_emulate(
> mfn_t mfn,
> unsigned int offset,
> - const void *data,
> + unsigned long data,
> unsigned int len)
> {
> struct subpage_ro_range *entry;
> @@ -5115,7 +5115,6 @@ static void subpage_mmio_write_emulate(
>=20
> if ( test_bit(offset / MMIO_RO_SUBPAGE_GRAN, entry->ro_elems) )
>=20
> {
> - write_ignored:
> gprintk(XENLOG_WARNING,
> "ignoring write to R/O MMIO 0x%"PRI_mfn"%03x len %u\n",
> mfn_x(mfn), offset, len);
> @@ -5131,26 +5130,7 @@ static void subpage_mmio_write_emulate(
> return;
> }
>=20
> - addr +=3D offset;
> - switch ( len )
> - {
> - case 1:
> - writeb((const uint8_t)data, addr);
> - break;
> - case 2:
> - writew((const uint16_t)data, addr);
> - break;
> - case 4:
> - writel((const uint32_t)data, addr);
> - break;
> - case 8:
> - writeq((const uint64_t)data, addr);
> - break;
> - default:
> - /* mmio_ro_emulated_write() already validated the size */
> - ASSERT_UNREACHABLE();
> - goto write_ignored;
> - }
> + write_mmio(addr + offset, data, len);
> }
>=20
> #ifdef CONFIG_HVM
> @@ -5185,18 +5165,20 @@ int cf_check mmio_ro_emulated_write(
> struct x86_emulate_ctxt *ctxt)
> {
> struct mmio_ro_emulate_ctxt *mmio_ro_ctxt =3D ctxt->data;
>=20
> + unsigned long data =3D 0;
>=20
> /* Only allow naturally-aligned stores at the original %cr2 address. */
> if ( ((bytes | offset) & (bytes - 1)) || !bytes ||
> - offset !=3D mmio_ro_ctxt->cr2 )
>=20
> + offset !=3D mmio_ro_ctxt->cr2 || bytes > sizeof(data) )
>=20
> {
> gdprintk(XENLOG_WARNING, "bad access (cr2=3D%lx, addr=3D%lx, bytes=3D%u)\=
n",
> mmio_ro_ctxt->cr2, offset, bytes);
>=20
> return X86EMUL_UNHANDLEABLE;
> }
>=20
> + memcpy(&data, p_data, bytes);
> subpage_mmio_write_emulate(mmio_ro_ctxt->mfn, PAGE_OFFSET(offset),
>=20
> - p_data, bytes);
> + data, bytes);
>=20
> return X86EMUL_OKAY;
> }
> diff --git a/xen/drivers/vpci/msix.c b/xen/drivers/vpci/msix.c
> index 6bd8c55bb48e..6455f2a03a01 100644
> --- a/xen/drivers/vpci/msix.c
> +++ b/xen/drivers/vpci/msix.c
> @@ -17,6 +17,7 @@
> * License along with this program; If not, see http://www.gnu.org/license=
s/.
>=20
> */
>=20
> +#include <xen/io.h>
>=20
> #include <xen/sched.h>
>=20
> #include <xen/vpci.h>
>=20
>=20
> @@ -344,28 +345,7 @@ static int adjacent_read(const struct domain *d, con=
st struct vpci_msix *msix,
> return X86EMUL_OKAY;
> }
>=20
> - switch ( len )
> - {
> - case 1:
> - *data =3D readb(mem + PAGE_OFFSET(addr));
> - break;
> -
> - case 2:
> - *data =3D readw(mem + PAGE_OFFSET(addr));
> - break;
> -
> - case 4:
> - *data =3D readl(mem + PAGE_OFFSET(addr));
> - break;
> -
> - case 8:
> - *data =3D readq(mem + PAGE_OFFSET(addr));
> - break;
> -
> - default:
> - ASSERT_UNREACHABLE();
> - break;
> - }
> + *data =3D read_mmio(mem + PAGE_OFFSET(addr), len);
> spin_unlock(&vpci->lock);
>=20
>=20
> return X86EMUL_OKAY;
> @@ -493,28 +473,7 @@ static int adjacent_write(const struct domain *d, co=
nst struct vpci_msix *msix,
> return X86EMUL_OKAY;
> }
>=20
> - switch ( len )
> - {
> - case 1:
> - writeb(data, mem + PAGE_OFFSET(addr));
> - break;
> -
> - case 2:
> - writew(data, mem + PAGE_OFFSET(addr));
> - break;
> -
> - case 4:
> - writel(data, mem + PAGE_OFFSET(addr));
> - break;
> -
> - case 8:
> - writeq(data, mem + PAGE_OFFSET(addr));
> - break;
> -
> - default:
> - ASSERT_UNREACHABLE();
> - break;
> - }
> + write_mmio(mem + PAGE_OFFSET(addr), data, len);
> spin_unlock(&vpci->lock);
>=20
>=20
> return X86EMUL_OKAY;
> diff --git a/xen/include/xen/io.h b/xen/include/xen/io.h
> new file mode 100644
> index 000000000000..5c360ce9dee2
> --- /dev/null
> +++ b/xen/include/xen/io.h
> @@ -0,0 +1,63 @@
> +/* SPDX-License-Identifier: GPL-2.0-only /
> +/
> + * Generic helpers for doing MMIO accesses.
> + *
> + * Copyright (c) 2025 Cloud Software Group
> + */
> +#ifndef XEN_IO_H
> +#define XEN_IO_H
> +
> +#include <xen/bug.h>
>=20
> +
> +#include <asm/io.h>
>=20
> +
> +static inline uint64_t read_mmio(const volatile void __iomem *mem,
> + unsigned int size)
> +{
> + switch ( size )
> + {
> + case 1:
> + return readb(mem);
> +
> + case 2:
> + return readw(mem);
> +
> + case 4:
> + return readl(mem);
> +
> + case 8:
> + return readq(mem);

Suggest adding `default` case for MISRA compliance.=20

> + }
> +
> + ASSERT_UNREACHABLE();
> + return ~0UL;
> +}
> +
> +static inline void write_mmio(volatile void __iomem mem, uint64_t data,
> + unsigned int size)
> +{
> + switch ( size )
> + {
> + case 1:
> + writeb(data, mem);
> + break;
> +
> + case 2:
> + writew(data, mem);
> + break;
> +
> + case 4:
> + writel(data, mem);
> + break;
> +
> + case 8:
> + writeq(data, mem);
> + break;
> +
> + default:
> + ASSERT_UNREACHABLE();
> + break;
> + }
> +}
> +
> +#endif / XEN_IO_H */
> --
> 2.48.1


From xen-devel-bounces@lists.xenproject.org Fri Apr 11 18:46:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 18:46:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.947752.1345352 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3JO8-00020p-0h; Fri, 11 Apr 2025 18:46:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 947752.1345352; Fri, 11 Apr 2025 18:46:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3JO7-00020i-SV; Fri, 11 Apr 2025 18:46:03 +0000
Received: by outflank-mailman (input) for mailman id 947752;
 Fri, 11 Apr 2025 18:46: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=FIxv=W5=boeing.com=matthew.l.weber3@srs-se1.protection.inumbo.net>)
 id 1u3JO5-00020U-QN
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 18:46:02 +0000
Received: from ewa-mbsout-01.mbs.boeing.net (ewa-mbsout-01.mbs.boeing.net
 [130.76.20.194]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 34e380a1-1705-11f0-9eae-5ba50f476ded;
 Fri, 11 Apr 2025 20:45:59 +0200 (CEST)
Received: from localhost (localhost [127.0.0.1])
 by ewa-mbsout-01.mbs.boeing.net (8.15.2/8.15.2/DOWNSTREAM_MBSOUT) with SMTP id
 53BIjr7P009916; Fri, 11 Apr 2025 11:45:56 -0700
Received: from XCH16-09-04.nos.boeing.com (xch16-09-04.nos.boeing.com
 [137.137.111.49])
 by ewa-mbsout-01.mbs.boeing.net (8.15.2/8.15.2/8.15.2/UPSTREAM_MBSOUT) with
 ESMTPS id 53BIjj3F009811
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO)
 for <xen-devel@lists.xenproject.org>; Fri, 11 Apr 2025 11:45:45 -0700
Received: from XCH16-03-04.nos.boeing.com (137.137.111.13) by
 XCH16-09-04.nos.boeing.com (137.137.111.49) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.1.2507.44; Fri, 11 Apr 2025 11:45:44 -0700
Received: from XCH19-EDGE-Q02.nos.boeing.com (130.76.23.14) by
 XCH16-03-04.nos.boeing.com (137.137.111.13) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.1.2507.44 via Frontend Transport; Fri, 11 Apr 2025 11:45:44 -0700
Received: from USG02-BN3-obe.outbound.protection.office365.us (23.103.199.151)
 by boeing.com (130.76.23.14) with Microsoft SMTP Server
 (version=TLS1_2, 
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.11; Fri, 11 Apr
 2025 11:45:30 -0700
Received: from BN0P110MB2067.NAMP110.PROD.OUTLOOK.COM (2001:489a:200:19c::7)
 by BN0P110MB0984.NAMP110.PROD.OUTLOOK.COM (2001:489a:200:16c::8) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.54; Fri, 11 Apr
 2025 18:44:37 +0000
Received: from BN0P110MB2067.NAMP110.PROD.OUTLOOK.COM
 ([fe80::34e0:4442:7be9:6519]) by BN0P110MB2067.NAMP110.PROD.OUTLOOK.COM
 ([fe80::34e0:4442:7be9:6519%4]) with mapi id 15.20.8583.043; Fri, 11 Apr 2025
 18:44: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: 34e380a1-1705-11f0-9eae-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=boeing.com;
	s=boeing-s1912; t=1744397156;
	bh=qE8pHTZDOnhvQ4hbu8o0+6CiG28JwAiKzNd2gHMGdi0=;
	h=From:To:CC:Subject:Date:From;
	b=fo+7tcTxjLDPRWE81Jy1aJ94/vNqJAxavplRE6B0yi+QTje7EWKlmm74PxBgoYAI3
	 miZJzxpiKVl4pqMrBRSbROZ4pRPGgZyvRgs4VSQstRCSdoHfyU7SIgdfztQcPC8Oz8
	 nQOQK5PhsvKra9h83nV6Uerf307fRUkjCWfye/3qAKLDR5Im7inozBNf2ltWRYX4bb
	 7ciw9MVt9kuyo5tJKma6pJgULoj0Ekda2PdMbGfJhZ7FnxU2YuGVIk7lD4GXfYZeOZ
	 EqA00y/rwLGCw00vGrvodvVSuWSVBCyZOjqjCNTZtcofpM4n3Xxl5HvTgzNV9Jdi0w
	 3qrqUF2YEd4lA==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector5401; d=microsoft.com; cv=none;
 b=D4bFVE7qWGmwc7n1hfLhB/KBpF+rYymH35KEdvy7cpsnlMo8zSy8spAA5lRw+Hk7QVz+orx5mDi/gPUomQbu2PglnCdxjwCLGJxStt9BHq5DmWng6tMRNNPif9mKklOnsJuk6G/aDY4vgcqNE02RgoxAZMSEXJM6j2NZItRDkNweO3ClS0qfTU0zo92Yvjd7Gk5YjQW4Yp5elzr2Fp9QZmxXF6OaLOthVYh4r/MX/nwsXDwtjEvT9M3UAtWdFzwILnIPac3h/bqHJVMtMbxceOtOY5hs7IyFacUzgc7T/zshqyhNuvnAV8k7wSjgmVJHFEvCdbIpSCS7aErhR+bFJw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector5401;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=qE8pHTZDOnhvQ4hbu8o0+6CiG28JwAiKzNd2gHMGdi0=;
 b=BAexxMkHhwUFFJOo1uatxTrSP6P1xTZWp+Ik6as4LOKYvh14SwflN4ShBl2pCR8pdI/3+nflmU1g/Mi0f240DyfODclkJm3hk/x22LfYcRFJxkcE1iH6XgVBt/QzYgQNqb/RaVg+3wXe/uWrNtoSz0l+s6F7EPItoqHZ/+nWqNYz8wPiPRr4Pb7k2sCDze8P8/ZBpPy2BiOr48YAFAVUPG+mbSQe3nJpE+uZWusKxCrt2vNg7+ThlWTjYtfYPxGc3WuZGk0YLxMVnAo4T3d6bj3c62ZzB/Rm1O0O4t59TSD/YtIDb66RLcUcKNy1/Bv1lidiVDSwJz0igLx4C6SiOQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=boeing.com; dmarc=pass action=none header.from=boeing.com;
 dkim=pass header.d=boeing.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=boeing.onmicrosoft.com; s=selector1-boeing-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=qE8pHTZDOnhvQ4hbu8o0+6CiG28JwAiKzNd2gHMGdi0=;
 b=OOrG5V61X0P9XZ7mHrqrIRupNND2anrHs+qddZoqkdhY/OKyXH0NcvB01n27G7o62i6h5q0LgnU/H3X2LiQGNmwUOdIZ7oemazFg02joDnGxr6LPfvpAn3gjXTlnk8PJfR/hwHJGGUu4Iy8eO0p4dv63YW1Y+QF4Bmvo+ASrjTQ=
From: "Weber (US), Matthew L" <matthew.l.weber3@boeing.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: "Whitehead (US), Joshua C" <joshua.c.whitehead@boeing.com>,
        "Wood (US),
 Brian J" <brian.j.wood2@boeing.com>
Subject: NXP Layerscape SMMU IDs
Thread-Topic: NXP Layerscape SMMU IDs
Thread-Index: AdurC8k5LfOUV15qRn2MJIXu5HZ2/Q==
Date: Fri, 11 Apr 2025 18:44:37 +0000
Message-ID: <BN0P110MB20674B71640958CA7A56035AF3B6A@BN0P110MB2067.NAMP110.PROD.OUTLOOK.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=boeing.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: BN0P110MB2067:EE_|BN0P110MB0984:EE_
x-ms-office365-filtering-correlation-id: 46af1791-7c3f-4d8a-ea17-08dd7928e939
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|366016|38070700018;
x-microsoft-antispam-message-info: =?us-ascii?Q?RNt9Pxl+yAqd/OzXtscSazJeAnKFZPj2kQkb2waRguUWXhNxnDBi8lysH/+N?=
 =?us-ascii?Q?3eD54G+Qrd1xgTgAlHIflmp2NBfeAhDXvtcXH+4j/kuneeDsjpQxv+tELxIY?=
 =?us-ascii?Q?cJz37WNBu3oxnSPo8Xs2NoPAZEhcWlRS/v4ZcmyH9oldecm9phvqS0PH17MC?=
 =?us-ascii?Q?gRM4hDgFRkq2li86t0Eq41RUTQMUCTj9dStQWSwPobd6lsVSqLKyZ2q9zv5q?=
 =?us-ascii?Q?7kY5koFHRU3UFyc76ndo7qPNsy65mupN5Zw4oWgX1MsUzgAJg9ahh8IeN02F?=
 =?us-ascii?Q?f0bhWH/Z/L8nph6FPP6L7hZDC1/LfiStEhc6DX2/qSqMtysHWw+YqRXuuLfb?=
 =?us-ascii?Q?H//OFEG1l7TeOVn2H5DZxO8AjMJIOw7QrjJP8S6Ps3epgG8WTNVUsRFO90A1?=
 =?us-ascii?Q?PYGJqflmE+wWmdJAMbDywF8WfVuheP1k4pKm4JhlCInJ+KYaCg4ujrQPtGwP?=
 =?us-ascii?Q?t47RdbfD5QxQ4vCGFMhT7AHxtRwD3GhgjNqUHc8BiqTPKbN8QT8Xti/0zMp9?=
 =?us-ascii?Q?nt0Ev/FGkRVwEgZswS4JqGK8gnN2G0n03eZKzNo/S6lDmiXUDw0NfrY+06B9?=
 =?us-ascii?Q?OjRbJrOpibFnP8X3aOiSmXcQPHYKi5407j/wWAlhleeKvaPcvwnzKt3rYJ0b?=
 =?us-ascii?Q?zZOuf53jUuzv5t8Okcornria4dEH6CKwD9VL3wYy2ZPJhTHCn7n8CpoYtYMm?=
 =?us-ascii?Q?cqmRHWyKVgZpk6FJiFhMDtQNUctuFcbS2kT5X/HogmAX9pZlF1wbtMmaNp7g?=
 =?us-ascii?Q?FMweNFnsr7fORXyAj13QBmjzrTUejspDgW129lcQ/z54aO2veE4G8cfaq+FO?=
 =?us-ascii?Q?lKrkqqDfEws0kp5osY6ohHuPlBl2+9Ur73CemDpEyuQkK5YCVAm0/ES//SzE?=
 =?us-ascii?Q?IBIMhgoebac8zqE0zMLNApoo+KjJciYzdK4EOD+3qpzBotdajabYRZomTzXV?=
 =?us-ascii?Q?F3VR+Uwc+KrLAe3Gtqkh2vMNRpBr2SYsq6IQXHwEm5J0YRpXy19j5Nuts6e7?=
 =?us-ascii?Q?SoHx+Ja5jDmqnz6bf1+lhl/keRnlyq0tpoCWSRb/skbXHDKX9EqdN5n/4ThV?=
 =?us-ascii?Q?4vQzZtA4FP0vQTnMFE/WLjpObnR4R91+e5jre4jJdFVfvRnPwKlSofBXI0X6?=
 =?us-ascii?Q?IA7uAW4JOg1XN+QGFHyrBHEzmn2y7u4CXYyhB3yKmM2MBim88FY0DGFJVu5v?=
 =?us-ascii?Q?nANxrEstEmvchH4m4qvRVM9r6jNwG/EGUxI9ZBnL/ia1TDRC/MH1DdHdicK+?=
 =?us-ascii?Q?I57ffIWuP/Q9sEY6xMd7w3N+F2lNZy0ru64qbRGosUYRDzU8iHJYSxDikUoG?=
 =?us-ascii?Q?CBaruYOqV0hEeQ8pUpRNOIE3HeOyK3ocO/7Akc7PjzAk7Xed36On72KAhfKo?=
 =?us-ascii?Q?W0f6WxdakltomEauG//wL6p3J8BoGtHP1N5eeYJQPE8jEFFxuuRTJ6SIww58?=
 =?us-ascii?Q?S3Fz+EGJWEYxCyJ97D8Wz4xjfL2qTAalpvs8Bpz+1zJQPiDFjENa5iJuI7Tg?=
 =?us-ascii?Q?FTQ0gC154+PaHxo=3D?=
x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN0P110MB2067.NAMP110.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?ZwoDFysw1BKBWZ3dB7KO7R+6dRNYtuzKoMnCaL7rOr0gaPgmhh8X8GL/MSdE?=
 =?us-ascii?Q?KdMlpfOFVKtvl9m4BBJ6uIvMH8LTfMF0pJeXN77uesUw+bziXKV1WL600fWa?=
 =?us-ascii?Q?4hkU/wpgOfgUArIsR1VhetkAq01Qia3KqYeC4bJqaiZWbKybg5/9KoF50ZtL?=
 =?us-ascii?Q?JVg9uZAnlYMszYIRGGQ48N7xOYMq6Z7pQ+Nay5Rr8/znuae4UDHaxs4l5vh9?=
 =?us-ascii?Q?rkCM9hUoQpm+gqkYCq8oWz1PBRBX61omGD6o9R6+lxnAdsRppo9KaL2fpJAm?=
 =?us-ascii?Q?kdXHsBKLb5qeMrJHTV41EUc6mb1ld1kNv1suEaqmM+pk4Kw9GlEQSGLBBWww?=
 =?us-ascii?Q?tsHRn+RiaF7gc3g7G47kx0+y/s4DxEsBp93IvB+fb9SKFJz6WxFrJ3slePbv?=
 =?us-ascii?Q?TVRaSFy//m97FJyGmCRh6wPAUALlWmOA171cgl7RHRdjqg0GwKoCLs35t/OI?=
 =?us-ascii?Q?+hOhz4YFF60TudqZEXZplWZMnxXTb0XCgMLQTt9m84oJGD6xI7M7nDkZBDsh?=
 =?us-ascii?Q?RjFCQtzqGpB4UCeeaO8BiSZ8sF0DcuIUdv+kPj8LR+w+Rg4JnxPtKwuZ5luZ?=
 =?us-ascii?Q?y9qjDj2S2U+rwO7wQ7cX65yCY2LZqtb+7evKwnFIr+RLqwBlXiqlKrB930NR?=
 =?us-ascii?Q?aVzk12sShs3kw/QrNNiUw9RNug+mt/WlhMedc6XkynCJuB4f7fQbKfOGmYSw?=
 =?us-ascii?Q?yt5y7/iDrS9tkxzBH8n60qr6kc5o+HQ6Z4ZNNA5wx3Sn9qbzVBAQ/20YCjDw?=
 =?us-ascii?Q?udIU4U60K8s2qvfKOUlIeW5kVEalMk6fMGaIhe2MVitEcZK8gRg6jbOfZk1K?=
 =?us-ascii?Q?URcDoUPE7tcsYPLuBtFjSV3QbWWMXzYaCDYAc2oosBuBpNVC+bQR/qzRYhLv?=
 =?us-ascii?Q?YkjF7LExdSkqxxaRDGsc8j1+/yGpNk/YEGb1gt/dQ751nW1uS2m1GupJIohC?=
 =?us-ascii?Q?DhBMzfQ7VqBghpxPZMWx+v5lTB0JyTQ69NZKz2+DVScd151BSDuh8xThdsX0?=
 =?us-ascii?Q?Z9aXYfgD/KhMKABJD5C27mH8C++FNgq3786x6Zj5PNuKtbdPJgc1p80u+/5J?=
 =?us-ascii?Q?YtRl6Eq/GgeERWmgmplbPIAZBCOCmMiGwsloCtt/axr9BNA4vJO8xk+o9Km7?=
 =?us-ascii?Q?wsOiM/cMc33N75sHE/gau8J5fzf85entBsDH/8/cddprnxVV3YH7/1HbzDun?=
 =?us-ascii?Q?Guk7hB+C1bMFhj8wcAAc03K97nmup1Y5BAbgLvpdNviwc94VH2yawEhJaDev?=
 =?us-ascii?Q?9mK7fk5yk4XzJJu/0hLmNp3CKGOeZq2B5YXxVhqsO6dagOpMh2JMz6gvbs4Q?=
 =?us-ascii?Q?lQzv1pMRoo4U+RjG0hRE5kQ6uGp/Q6YS0ymZnPei8RWOth3WUBeIDGYHcaXs?=
 =?us-ascii?Q?0phguCNZ3K+ysdrliuY4bSoOQ0Vtea/Ju78tKIwHL99baItKgJgawAkoapfZ?=
 =?us-ascii?Q?EP6iHZo5dq/NT8UWSnhcdTO7QVZn2/z+oecIHcG5TwJEmpbCna1RRzNm/de0?=
 =?us-ascii?Q?btaRoc2ri9LMVSFCorVJSpLI6JogjImDkxWm?=
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: BN0P110MB2067.NAMP110.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-Network-Message-Id: 46af1791-7c3f-4d8a-ea17-08dd7928e939
X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Apr 2025 18:44:37.4842
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: bcf48bba-4d6f-4dee-a0d2-7df59cc36629
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN0P110MB0984
X-OriginatorOrg: boeing.com
X-TM-AS-GCONF: 00

Hello,

We're curious if anyone else has figured out NXP Layerscape Xen support to =
get at least basic domains launching with minimal IO support?

Started a recent discussion on it here:
https://community.nxp.com/t5/Layerscape/How-to-determine-LS1088A-SMMU-Maste=
rs-and-Stream-IDs/m-p/2072157#M15560

We're guessing some of the NXP specific chip/interconnect designs in Layers=
cape were carried over from the QORIQ PowerPC P/T series.  Maybe some clues=
 in that Topaz hypervisor code?  https://github.com/nxp-qoriq-yocto-sdk/hyp=
ervisor

Regards,
Matt


From xen-devel-bounces@lists.xenproject.org Fri Apr 11 19:59:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 19:59:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.947803.1345388 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3KX2-0004bI-9m; Fri, 11 Apr 2025 19:59:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 947803.1345388; Fri, 11 Apr 2025 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 1u3KX2-0004bB-7C; Fri, 11 Apr 2025 19:59:20 +0000
Received: by outflank-mailman (input) for mailman id 947803;
 Fri, 11 Apr 2025 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=cS7z=W5=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u3KX1-0004b5-Ez
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 19:59:19 +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 7329f20e-170f-11f0-9eae-5ba50f476ded;
 Fri, 11 Apr 2025 21:59:17 +0200 (CEST)
Received: by mail-wr1-x42a.google.com with SMTP id
 ffacd0b85a97d-39c0dfba946so1417446f8f.3
 for <xen-devel@lists.xenproject.org>; Fri, 11 Apr 2025 12:59:17 -0700 (PDT)
Received: from localhost.localdomain (host-92-26-98-202.as13285.net.
 [92.26.98.202]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43f23572ce4sm94448555e9.30.2025.04.11.12.59.15
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 11 Apr 2025 12:59: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: 7329f20e-170f-11f0-9eae-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744401556; x=1745006356; 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=c+hnH5laC8XFET4cC5pzAhie//+QnKI8CmY2LPWGGck=;
        b=maVt7TrBck5hb4WlSVxo6CsrCSkvMVIs9NU3KUfe6U0V8kuyvhNqjsDIr17Sa63Lw5
         ikJorOHZ4sVutxvBz0KvuDVOzFtuqzUHdDJSG3Hj8BYh3BhG5GCTRsEQ5WCjAyXrta25
         c97WMO3hYHBGrjs/bBekUP5k/J5Xs8C/tumLw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744401556; x=1745006356;
        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=c+hnH5laC8XFET4cC5pzAhie//+QnKI8CmY2LPWGGck=;
        b=u+jbqTrRpLK+Z78dUcgMMbgTJduNhXFRmBuABMOZpgO1cAAK8nd15RFs6Qyv9J5LU0
         jLe6PgULewsmaqlVuj5X2kYJY6YsDaHoGFABM8kP0m+sbsDbwG7TfzbYuMkQVxj2dSuV
         Ce5hcTpK/rTJIZoX1TptE3H42QyoxWuO5H5eE5XHqOgkEj+WpN62BirwoDRG0rU+22SX
         TC92llFGgciwdx5wBeKF5ojApb8cJewltRWAmImRj419mCrKaee0EgofDyY/JJqyA4JD
         zPAAjcsCLrLGMFydaICe8Z7dIIQeTMoblhxtVPSoiD3TOF4acV09WkoPNBCdjqkfGyde
         pWSw==
X-Gm-Message-State: AOJu0YzyY//Etq5/VsSsAxnnmm6+1crLIWQuSEsga8r47wg353TRO/4n
	Jxe+5lSquZ0b6YR45FUUfHoKDRx8Gh489iYYGBo7STRQQ4XOtw3CeDpJIWisI/vUY73BoInuxlS
	whLg=
X-Gm-Gg: ASbGnctR0jPR6xD2TNmT9qIwNUWYsPYXS1emQ4GipMEu6T+jCmMvNF7tjDiIyssb5qM
	yM7wjqK3sJ57oUICAaJF0f5FBLOVS1Ek2H84uyKe0PEkdzJwGwRuBbbcb98ZlZHuLchmcU+sFCJ
	DzgWVUC+fO80haR7hia/J1kPM86P1y0PGLjcrZZp3cxSKsmtayp3OGSSNfnWrshJw/vtRBHzcJv
	A4hzJFNNxt9bqXn3LMGdBeJogYgF0O37QNxNkShVWfnQgL9NgtIo88cuMSfx8D7BORrabhHCGTz
	814BSAx5L9rMkXTTqWybBFwPeo1Vv6ESOXLmcngl5aYI83kiz6j2PTh0ZqKPO74OyUHhLnrrqNu
	ibXNPG6X8WgudBg==
X-Google-Smtp-Source: AGHT+IFsSGj90KiuAdcCPUWX4xbif6MThlDR9w3BG85TWdKtYUYL8EJ3RAIcAcAZKnJzL3FtC6fxTg==
X-Received: by 2002:a05:6000:178e:b0:39a:d336:16 with SMTP id ffacd0b85a97d-39ea5215dc6mr3569905f8f.34.1744401556598;
        Fri, 11 Apr 2025 12:59:16 -0700 (PDT)
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?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH] Package microcode for the x86 hardware runners
Date: Fri, 11 Apr 2025 20:59:14 +0100
Message-Id: <20250411195914.2256882-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

They are all out of date, to different degrees.

Install jq into the x86_64 build container so we can parse the Github latest
release information in an acceptable way.

The resulting archive must be uncompressed, in order to work during early
boot.

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: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>

Example working in Xen:
  https://gitlab.com/xen-project/hardware/xen-staging/-/jobs/9700756054#L206
---
 .gitlab-ci.yml                             |  4 +++
 images/alpine/3.18-x86_64-build.dockerfile |  3 ++
 scripts/x86-microcode.sh                   | 42 ++++++++++++++++++++++
 3 files changed, 49 insertions(+)
 create mode 100755 scripts/x86-microcode.sh

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 3587d660aa62..63722233dc6f 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -64,6 +64,10 @@ linux-6.6.56-x86_64:
     ARGO_SHA: "ca5473a56f62e2b4d59697c8552d151391d3fec1"
     ARGOEXEC_SHA: "d900429f6640acc6f68a3d3a4c945d7da60625d8"
 
+microcode-x86:
+  extends: .x86_64-artifacts
+  script: ./scripts/x86-microcode.sh
+
 #
 # The jobs below here are legacy and being phased out.
 #
diff --git a/images/alpine/3.18-x86_64-build.dockerfile b/images/alpine/3.18-x86_64-build.dockerfile
index eac0cda4fed3..c4ff30e1f138 100644
--- a/images/alpine/3.18-x86_64-build.dockerfile
+++ b/images/alpine/3.18-x86_64-build.dockerfile
@@ -27,6 +27,9 @@ RUN <<EOF
             openssl-dev
             perl
 
+            # Microcode
+            jq
+
             # Argo build deps
             autoconf
             automake
diff --git a/scripts/x86-microcode.sh b/scripts/x86-microcode.sh
new file mode 100755
index 000000000000..cb55a3bd2d52
--- /dev/null
+++ b/scripts/x86-microcode.sh
@@ -0,0 +1,42 @@
+#!/bin/bash
+
+set -eux -o pipefail
+
+WORKDIR="${PWD}"
+COPYDIR="${WORKDIR}/binaries"
+
+ROOTDIR="${WORKDIR}/root"
+UCODEDIR="${ROOTDIR}/kernel/x86/microcode"
+mkdir -p "${UCODEDIR}"
+
+#
+# Intel microcode comes from github
+#
+curl -fsSL https://api.github.com/repos/intel/Intel-Linux-Processor-Microcode-Data-Files/releases/latest > intel-latest.json
+TARBALL_URL="$(jq -r .tarball_url intel-latest.json)"
+curl -fsSL "${TARBALL_URL}" > intel-latest.tar
+tar xf intel-latest.tar --strip-components=1
+
+(
+    cd intel-ucode
+    cat 06-97-02 # adl-*
+    cat 06-8e-09 # kbl-*
+) > "${UCODEDIR}/GenuineIntel.bin"
+
+#
+# AMD microcode comes from linux-firmware
+#
+curl -fsSLO https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/amd-ucode/microcode_amd_fam17h.bin
+curl -fsSLO https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/amd-ucode/microcode_amd_fam19h.bin
+
+(
+    cat microcode_amd_fam17h.bin # zen2-*, xilinux-*-x86_64-*
+    cat microcode_amd_fam19h.bin # zen3p-*
+) > "${UCODEDIR}/AuthenticAMD.bin"
+
+# Package everything up.  It must be uncompressed
+cd "${ROOTDIR}"
+find . | cpio -R 0:0 -H newc -o > "${COPYDIR}/ucode.cpio"
+
+# Print the contents for the build log
+cpio -tv < "${COPYDIR}/ucode.cpio"
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Apr 11 20:33:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 20:33:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.947817.1345409 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3L4A-0007fF-0l; Fri, 11 Apr 2025 20:33:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 947817.1345409; Fri, 11 Apr 2025 20:33: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 1u3L49-0007f8-T4; Fri, 11 Apr 2025 20:33:33 +0000
Received: by outflank-mailman (input) for mailman id 947817;
 Fri, 11 Apr 2025 20:33: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=5hfk=W5=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1u3L48-0007cp-RF
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 20:33:32 +0000
Received: from fhigh-a3-smtp.messagingengine.com
 (fhigh-a3-smtp.messagingengine.com [103.168.172.154])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3a00fbd8-1714-11f0-9ffb-bf95429c2676;
 Fri, 11 Apr 2025 22:33:29 +0200 (CEST)
Received: from phl-compute-11.internal (phl-compute-11.phl.internal
 [10.202.2.51])
 by mailfhigh.phl.internal (Postfix) with ESMTP id A29A11140173;
 Fri, 11 Apr 2025 16:33:28 -0400 (EDT)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-11.internal (MEProxy); Fri, 11 Apr 2025 16:33:28 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri,
 11 Apr 2025 16:33:27 -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: 3a00fbd8-1714-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:subject
	:subject:to:to; s=fm2; t=1744403608; x=1744490008; bh=4iAXFxKudp
	w79KKHm4Xqra3AFiuUM/rF5pT4LPi5aRE=; b=XC8Aoe4u9BPrN5JYKa/bepRK2A
	NWji5RJI/uVsVNMn1LTpYxKOPGszM6EWd6ftc4ZNreiGCBL2K5SwC7P8TjwrrKUl
	T5RHDL+imEHzziW3LpQby+SWIxVsypedg/IZUsKr7ACoCDbiTQQ0/c7vgFh+WaR3
	MaruKL/YUAKt1WQPZ0iEwqUn1DJw5gIvvE0RBGQX5PivPpTw5KZooecb79Wsa7Pr
	wodADV0jaVd9f1zxnBpfmazG43Zu7/ufbVsxfu0GI3NYUt+UJXj+ZRHoxA5I+WUh
	sz6X1lyX4S4QCGBqVfYNAfYJ7cP/+rOheSwNnkdCklVvCxarEUiEij2GSx6A==
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=fm2; t=1744403608; x=
	1744490008; bh=4iAXFxKudpw79KKHm4Xqra3AFiuUM/rF5pT4LPi5aRE=; b=E
	gd7UtamV+KVtvQteJw/4uarBTeV6ADUIcYffmzdesAgADvcbJ/S30olZ5EAwgLbH
	2VVr3E60cuCTWy+culJmuB2//j2rbSK9OwPLUSlbvNbtjSzcZOqqMoBe/+4oAPLK
	DI/0vu3qf7mPn0eLQVvCcnMGS8yylJ9Eg26l8t3Bn2v/rzzwhCIGY3Oup5QzFilZ
	O2KwKcPqffeHEllJnr/v8SXc9T5raswJ72tGky08PDcZVPnrhPgLNTrOfCK9LBle
	w9yyii+b+2pkhIBB36uYJtAXqBEznMGMZyI/tOvlUElkPH66kFYxqg5oIjZOrLo7
	M3sMvpWZBS6e0Fvx2q2lg==
X-ME-Sender: <xms:mHz5Z_ZmH_B3viPCVDUR6YIGepmF5wawiPgTF4GZinAp6PXx3wxJ0Q>
    <xme:mHz5Z-b2nfow7Y_FDEbVV3Qp4tDA2yUDFFjBRqBYxmjutH4cwVcxVgWT97vKMazmt
    dgisH4O9owFSQ>
X-ME-Received: <xmr:mHz5Zx8cfag1kpDConfboCaTcymbcarEcl3sdn2T2iml2hQDuducVqMYXPWRFJrfALL5Wab5FZ3zWJwWZdhI_04FHzQgKYpIbdXzmtTxOlW1LLxcHLY>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvuddvjeekucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
    pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
    gvnhhtshculddquddttddmnecujfgurhephffvvefufffkofgjfhggtgfgsehtkeertder
    tdejnecuhfhrohhmpeforghrvghkucforghrtgiihihkohifshhkihdqifpkrhgvtghkih
    cuoehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhmqeen
    ucggtffrrghtthgvrhhnpefgueduhefgvdefheehudejheefudevueeghfekhfehleegve
    duteeuiedugffgffenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhl
    fhhrohhmpehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtoh
    hmpdhnsggprhgtphhtthhopeehpdhmohguvgepshhmthhpohhuthdprhgtphhtthhopeig
    vghnqdguvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdprhgtphhtth
    hopegrnhgurhgvfidrtghoohhpvghrfeestghithhrihigrdgtohhmpdhrtghpthhtohep
    mhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdprhgtph
    htthhopegtrghrughovgestggrrhguohgvrdgtohhmpdhrtghpthhtohepshhsthgrsggv
    lhhlihhniheskhgvrhhnvghlrdhorhhg
X-ME-Proxy: <xmx:mHz5Z1o_ADjHcZlHQah2trwQhcYeMRyQAxofshDRD9wddV1g8ihhfQ>
    <xmx:mHz5Z6qZQcBi7voKTvuRS4E7izHn5KQRBl2nAFI00IdxFzGt4Un8pA>
    <xmx:mHz5Z7TFm2GEVn_GqLN-O9o8-jfx_WWVmm3kbqa883CbT7maQGy8Xw>
    <xmx:mHz5Zyp3gE8xQanH6u3JCQ95fmdsFkA1n3rLkQrEupccPF_ZMKzC4Q>
    <xmx:mHz5Zwi7b5a3yCJXNnABmG9XgRrAuEnWdqQyfuT0aTD_gQXXGKhjddPq>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v3 1/7] CI: wait for Xen to start before waiting for test to complete
Date: Fri, 11 Apr 2025 22:32:13 +0200
Message-ID: <3f1ef15b54a84573576e647314ec61ea43d4e3af.1744403499.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <cover.146eb3617cc9cf442dd4fc7a0a8950fb1bc191c8.1744403499.git-series.marmarek@invisiblethingslab.com>
References: <cover.146eb3617cc9cf442dd4fc7a0a8950fb1bc191c8.1744403499.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Add additional stage in console output parsing - wait for first message
from Xen. The message is defined via BOOT_MSG variable. This has two
effects:
- distinguishes failing Xen to load at all from later test failures
- resets timeout when Xen starts loading

The latter is especially relevant for hardware tests where firmware +
network boot may take some time before Xen starts booting. The two-stage
timeout is more robust solution than increasing the overall timeout.
The issue has been observed on some dom0pvh-hvm jobs, at least on
runners hw3 and hw11. This patch is a first stage before qubes-x86-64.sh
is switched to use expect in the next stage.

While at it, consistently use 'expect -re' for all matches. This
especially allows matching newlines ("\n"), which will become relevant
in the next patch. And document variables used in console.exp.

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
---
Changes in v3:
- split off "CI: switch qubes runners to use console.exp"
- use BOOT_MSG in more tests (all using network boot)
---
 automation/scripts/console.exp                    | 27 +++++++++++++---
 automation/scripts/qemu-alpine-x86_64.sh          |  1 +-
 automation/scripts/qemu-smoke-dom0-arm32.sh       |  1 +-
 automation/scripts/qemu-smoke-dom0-arm64.sh       |  1 +-
 automation/scripts/qemu-smoke-dom0less-arm32.sh   |  1 +-
 automation/scripts/qemu-xtf-dom0less-arm64.sh     |  1 +-
 automation/scripts/xilinx-smoke-dom0-x86_64.sh    |  1 +-
 automation/scripts/xilinx-smoke-dom0less-arm64.sh |  1 +-
 8 files changed, 29 insertions(+), 5 deletions(-)

diff --git a/automation/scripts/console.exp b/automation/scripts/console.exp
index 31ce97b91b63..c27f893dfba7 100755
--- a/automation/scripts/console.exp
+++ b/automation/scripts/console.exp
@@ -1,4 +1,17 @@
 #!/usr/bin/env expect
+#
+# Variables used by this script:
+# - TEST_TIMEOUT: timeout between each *_MSG match
+# - TEST_TIMEOUT_OVERRIDE: when set, overrides TEST_TIMEOUT
+# - TEST_LOG: save console log to this file
+# - TEST_CMD: commands that prints test system console output to stdout - in
+#   qemu tests that's usually qemu itself (with -serial stdio), in hardware
+#   tests that's a command to read serial console
+# - UBOOT_CMD (optional): command to enter at u-boot prompt
+# - BOOT_MSG (optional): initial Xen message to wait for (aka sign-of-life)
+# - LOG_MSG (optional): final console message to wait for
+# - PASSED: message to look for to consider test a success; if LOG_MSG is set,
+#   both LOG_MSG and PASSED must appear (in any order) for test to succeed
 
 if {[info exists env(TEST_TIMEOUT_OVERRIDE)]} {
     set timeout $env(TEST_TIMEOUT_OVERRIDE)
@@ -28,21 +41,25 @@ if {[info exists env(UBOOT_CMD)]} {
     send "$env(UBOOT_CMD)\r"
 }
 
+if {[info exists env(BOOT_MSG)]} {
+    expect -re "$env(BOOT_MSG)"
+}
+
 if {[info exists env(LOG_MSG)]} {
     expect {
-        "$env(PASSED)" {
-            expect "$env(LOG_MSG)"
+        -re "$env(PASSED)" {
+            expect -re "$env(LOG_MSG)"
             exit 0
         }
-        "$env(LOG_MSG)" {
-            expect "$env(PASSED)"
+        -re "$env(LOG_MSG)" {
+            expect -re "$env(PASSED)"
             exit 0
         }
     }
 }
 
 expect {
-    "$env(PASSED)" {
+    -re "$env(PASSED)" {
         exit 0
     }
 }
diff --git a/automation/scripts/qemu-alpine-x86_64.sh b/automation/scripts/qemu-alpine-x86_64.sh
index 17e2141d625e..89bdb4df7dac 100755
--- a/automation/scripts/qemu-alpine-x86_64.sh
+++ b/automation/scripts/qemu-alpine-x86_64.sh
@@ -85,6 +85,7 @@ export TEST_CMD="qemu-system-x86_64 \
     -netdev user,id=n0,tftp=binaries,bootfile=/pxelinux.0"
 
 export TEST_LOG="smoke.serial"
+export BOOT_MSG="Latest ChangeSet: "
 export LOG_MSG="Domain-0"
 export PASSED="BusyBox"
 
diff --git a/automation/scripts/qemu-smoke-dom0-arm32.sh b/automation/scripts/qemu-smoke-dom0-arm32.sh
index 0c60a66e25e3..4f50eabdef53 100755
--- a/automation/scripts/qemu-smoke-dom0-arm32.sh
+++ b/automation/scripts/qemu-smoke-dom0-arm32.sh
@@ -92,6 +92,7 @@ export TEST_CMD="./qemu-system-arm \
 
 export UBOOT_CMD="virtio scan; dhcp; tftpb 0x40000000 boot.scr; source 0x40000000"
 export TEST_LOG="${serial_log}"
+export BOOT_MSG="Latest ChangeSet: "
 export LOG_MSG="Domain-0"
 export PASSED="/ #"
 
diff --git a/automation/scripts/qemu-smoke-dom0-arm64.sh b/automation/scripts/qemu-smoke-dom0-arm64.sh
index 8774a8701232..51d037b0003e 100755
--- a/automation/scripts/qemu-smoke-dom0-arm64.sh
+++ b/automation/scripts/qemu-smoke-dom0-arm64.sh
@@ -104,6 +104,7 @@ export TEST_CMD="./binaries/qemu-system-aarch64 \
     -bios /usr/lib/u-boot/qemu_arm64/u-boot.bin"
 
 export UBOOT_CMD="virtio scan; dhcp; tftpb 0x40000000 boot.scr; source 0x40000000"
+export BOOT_MSG="Latest ChangeSet: "
 export TEST_LOG="smoke.serial"
 export LOG_MSG="Domain-0"
 export PASSED="BusyBox"
diff --git a/automation/scripts/qemu-smoke-dom0less-arm32.sh b/automation/scripts/qemu-smoke-dom0less-arm32.sh
index 0c94e662aab9..0e2c5496db51 100755
--- a/automation/scripts/qemu-smoke-dom0less-arm32.sh
+++ b/automation/scripts/qemu-smoke-dom0less-arm32.sh
@@ -144,6 +144,7 @@ export TEST_CMD="./qemu-system-arm \
     -bios /usr/lib/u-boot/qemu_arm/u-boot.bin"
 
 export UBOOT_CMD="virtio scan; dhcp; tftpb 0x40000000 boot.scr; source 0x40000000"
+export BOOT_MSG="Latest ChangeSet: "
 export TEST_LOG="${serial_log}"
 export LOG_MSG="${dom0_prompt}"
 export PASSED="${passed}"
diff --git a/automation/scripts/qemu-xtf-dom0less-arm64.sh b/automation/scripts/qemu-xtf-dom0less-arm64.sh
index 9608de6ec033..436f460c3cb6 100755
--- a/automation/scripts/qemu-xtf-dom0less-arm64.sh
+++ b/automation/scripts/qemu-xtf-dom0less-arm64.sh
@@ -61,6 +61,7 @@ export TEST_CMD="./binaries/qemu-system-aarch64 \
     -bios /usr/lib/u-boot/qemu_arm64/u-boot.bin"
 
 export UBOOT_CMD="virtio scan; dhcp; tftpb 0x40000000 boot.scr; source 0x40000000"
+export BOOT_MSG="Latest ChangeSet: "
 export TEST_LOG="smoke.serial"
 export PASSED="${passed}"
 
diff --git a/automation/scripts/xilinx-smoke-dom0-x86_64.sh b/automation/scripts/xilinx-smoke-dom0-x86_64.sh
index 7834ffbe0593..69caabe2d8ed 100755
--- a/automation/scripts/xilinx-smoke-dom0-x86_64.sh
+++ b/automation/scripts/xilinx-smoke-dom0-x86_64.sh
@@ -159,6 +159,7 @@ stty -F ${SERIAL_DEV} 57600
 
 # Capture test result and power off board before exiting.
 export PASSED="${PASS_MSG}"
+export BOOT_MSG="Latest ChangeSet: "
 export TEST_CMD="cat ${SERIAL_DEV}"
 export TEST_LOG="smoke.serial"
 
diff --git a/automation/scripts/xilinx-smoke-dom0less-arm64.sh b/automation/scripts/xilinx-smoke-dom0less-arm64.sh
index b24ad11b8cac..3e1fcf6bf93c 100755
--- a/automation/scripts/xilinx-smoke-dom0less-arm64.sh
+++ b/automation/scripts/xilinx-smoke-dom0less-arm64.sh
@@ -140,6 +140,7 @@ stty -F ${SERIAL_DEV} 115200
 
 # Capture test result and power off board before exiting.
 export PASSED="${passed}"
+export BOOT_MSG="Latest ChangeSet: "
 export LOG_MSG="Welcome to Alpine Linux"
 export TEST_CMD="cat ${SERIAL_DEV}"
 export TEST_LOG="smoke.serial"
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Fri Apr 11 20:33:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 20:33:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.947820.1345429 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3L4B-00082e-UP; Fri, 11 Apr 2025 20:33:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 947820.1345429; Fri, 11 Apr 2025 20: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 1u3L4B-000809-P7; Fri, 11 Apr 2025 20:33:35 +0000
Received: by outflank-mailman (input) for mailman id 947820;
 Fri, 11 Apr 2025 20:33: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=5hfk=W5=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1u3L4A-0007cp-W1
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 20:33:34 +0000
Received: from fout-a8-smtp.messagingengine.com
 (fout-a8-smtp.messagingengine.com [103.168.172.151])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3c6b6fc4-1714-11f0-9ffb-bf95429c2676;
 Fri, 11 Apr 2025 22:33:33 +0200 (CEST)
Received: from phl-compute-04.internal (phl-compute-04.phl.internal
 [10.202.2.44])
 by mailfout.phl.internal (Postfix) with ESMTP id B132E13801B9;
 Fri, 11 Apr 2025 16:33:32 -0400 (EDT)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-04.internal (MEProxy); Fri, 11 Apr 2025 16:33:32 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri,
 11 Apr 2025 16:33:31 -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: 3c6b6fc4-1714-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:subject
	:subject:to:to; s=fm2; t=1744403612; x=1744490012; bh=VuN3uaPC9/
	1oCBNczeJqoqUgjyO/L96skArqSOsXDoM=; b=POVy4A7s+eBzR+t68xlu1snwRn
	ij20fd4QPLg6zs1uONXC41GD7eNZtWLz0rCw1/qx4qsJnidQ4VtFIhwjIhoOf+Av
	1YmxMXkKrDDkHqXehlOzuGEwAT6UIhdtRa8Th5OZQYUoHuGO/wSxSO+bJQFNr23Y
	Fg48eHiK7f1BXAx22u+6uA12GCmjRk2KZgmfhQ0KKMs7s4dnjqfu25oOTG171DRF
	SOogtDFMoWj7OpYPr/VQoUAolIvXiuFbe4qZJ60eYG43t6JE3UbXNjrudDNyqnrv
	tbeZWEReIIzsMMFy0uV6m0yDEgQoNZ04uTbvrhJ9mckVTz2ilrlVBLu/ojVw==
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=fm2; t=1744403612; x=
	1744490012; bh=VuN3uaPC9/1oCBNczeJqoqUgjyO/L96skArqSOsXDoM=; b=d
	o1kQmZzU72aAV0Ai4batfPWoxikgip4xG/gKzK4Q1K6Kz4XMDl3g8V+pY8R6qzhj
	EKvnygQm6ZowHStVoNK9mXrPfQPmkPXlmKAflxbQGuqfvjw7Ff3I7NXHXi6Hbu0q
	k/Mxqke4eXf6t+Uq/yieoR6n0vjI67dmwpCATBE8bOzcOWEX7GFXBC151aHp2Jsu
	YCIPgo5L2vjxq9Wpbijmyf8n4Cp8uTXP/yHHh8MxSXuD81ZsL3hWVEVvMDHTKj9B
	eo9NEjiscaYn0f1gQpElsV87clFUrW4q+t3tFKJLnPNJNifCZwAO1fndM4JPdbq1
	u1vY/z7dzVPpCF/6csyFQ==
X-ME-Sender: <xms:nHz5Z9VUxcfZSEOCImbp5O-PaeEGKtaiRyYwJVqpfUC84xpM9fy2tA>
    <xme:nHz5Z9mYjosHBDbr4jrI2WGhDYq3DkkWkvXnTBGgZpoch-yddMVDk1CCMX0pF_0Kp
    ceznq0TG6nKFA>
X-ME-Received: <xmr:nHz5Z5ZidpaDerIw8HPuat5gBvkuAcO_MCb40MO5nH2a-WIIe438OxjEeq2PiHJDGiLtI8Wak1JaaOKmjB6u1SgMOFFdrZ8i4u6ILEgXZayvslbfqe4>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvuddvjeekucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
    pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
    gvnhhtshculddquddttddmnecujfgurhephffvvefufffkofgjfhggtgfgsehtkeertder
    tdejnecuhfhrohhmpeforghrvghkucforghrtgiihihkohifshhkihdqifpkrhgvtghkih
    cuoehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhmqeen
    ucggtffrrghtthgvrhhnpefgueduhefgvdefheehudejheefudevueeghfekhfehleegve
    duteeuiedugffgffenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhl
    fhhrohhmpehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtoh
    hmpdhnsggprhgtphhtthhopeehpdhmohguvgepshhmthhpohhuthdprhgtphhtthhopeig
    vghnqdguvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdprhgtphhtth
    hopegrnhgurhgvfidrtghoohhpvghrfeestghithhrihigrdgtohhmpdhrtghpthhtohep
    mhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdprhgtph
    htthhopegtrghrughovgestggrrhguohgvrdgtohhmpdhrtghpthhtohepshhsthgrsggv
    lhhlihhniheskhgvrhhnvghlrdhorhhg
X-ME-Proxy: <xmx:nHz5ZwUqJqhq7P1QdM5fKfn_MVVFK7kBHY0MgJhg9ZmTfeh4En8aeg>
    <xmx:nHz5Z3km4DBqdg_vxwDQAnnARIiHiwm69aD6JYTNr2LkiFZw4ixz_Q>
    <xmx:nHz5Z9ezcxi7dfpa0-qv5RxaF06oi1VX7Y7pmTKyNrBzDkbBc6hNeg>
    <xmx:nHz5ZxFOqAsclMvZgC3JIx_KJZxWgGxVZH5RxdUu_MvUXBKYqOusjA>
    <xmx:nHz5Z0PCfVG3-yXmZzgH56vVydAM5OG7OIoDZZ3TOqgUn7OZdjPpN2Ge>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v3 4/7] CI: write whole etc/issue for domU initrd
Date: Fri, 11 Apr 2025 22:32:16 +0200
Message-ID: <526ec153b1cabc1d5b111be27ded8d0d4da5178a.1744403499.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <cover.146eb3617cc9cf442dd4fc7a0a8950fb1bc191c8.1744403499.git-series.marmarek@invisiblethingslab.com>
References: <cover.146eb3617cc9cf442dd4fc7a0a8950fb1bc191c8.1744403499.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Upcoming changes won't unpack original rootfs anymore, so sed on
existing file cannot be used. Override the whole file instead.

No functional change intended.

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
---
 automation/scripts/qubes-x86-64.sh             | 5 ++++-
 automation/scripts/xilinx-smoke-dom0-x86_64.sh | 5 ++++-
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/automation/scripts/qubes-x86-64.sh b/automation/scripts/qubes-x86-64.sh
index 861e302d845b..dd88a1398f2b 100755
--- a/automation/scripts/qubes-x86-64.sh
+++ b/automation/scripts/qubes-x86-64.sh
@@ -182,7 +182,10 @@ ${domU_check}
 " > etc/local.d/xen.start
     chmod +x etc/local.d/xen.start
     echo "rc_verbose=yes" >> etc/rc.conf
-    sed -i -e 's/^Welcome/domU \0/' etc/issue
+    echo "domU Welcome to Alpine Linux 3.18
+Kernel \r on an \m (\l)
+
+" > etc/issue
     find . | fakeroot -i ../fakeroot-save cpio -H newc -o | gzip > ../binaries/domU-rootfs.cpio.gz
     cd ..
     rm -rf rootfs
diff --git a/automation/scripts/xilinx-smoke-dom0-x86_64.sh b/automation/scripts/xilinx-smoke-dom0-x86_64.sh
index 69caabe2d8ed..4db249530823 100755
--- a/automation/scripts/xilinx-smoke-dom0-x86_64.sh
+++ b/automation/scripts/xilinx-smoke-dom0-x86_64.sh
@@ -103,7 +103,10 @@ ${DOMU_CMD}
 " > etc/local.d/xen.start
 chmod +x etc/local.d/xen.start
 echo "rc_verbose=yes" >> etc/rc.conf
-sed -i -e 's/^Welcome/domU \0/' etc/issue
+echo "domU Welcome to Alpine Linux 3.18
+Kernel \r on an \m (\l)
+
+" > etc/issue
 copy_domU_files
 find . | cpio -H newc -o | gzip > ../binaries/domU-rootfs.cpio.gz
 cd ..
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Fri Apr 11 20:33:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 20:33:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.947819.1345423 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3L4B-0007wx-M0; Fri, 11 Apr 2025 20:33:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 947819.1345423; Fri, 11 Apr 2025 20: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 1u3L4B-0007wU-Ff; Fri, 11 Apr 2025 20:33:35 +0000
Received: by outflank-mailman (input) for mailman id 947819;
 Fri, 11 Apr 2025 20:33: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=5hfk=W5=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1u3L49-0007Qw-LR
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 20:33:33 +0000
Received: from fout-a8-smtp.messagingengine.com
 (fout-a8-smtp.messagingengine.com [103.168.172.151])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3bad7420-1714-11f0-9eae-5ba50f476ded;
 Fri, 11 Apr 2025 22:33:32 +0200 (CEST)
Received: from phl-compute-11.internal (phl-compute-11.phl.internal
 [10.202.2.51])
 by mailfout.phl.internal (Postfix) with ESMTP id 71D7B1380214;
 Fri, 11 Apr 2025 16:33:31 -0400 (EDT)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-11.internal (MEProxy); Fri, 11 Apr 2025 16:33:31 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri,
 11 Apr 2025 16:33:30 -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: 3bad7420-1714-11f0-9eae-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:subject
	:subject:to:to; s=fm2; t=1744403611; x=1744490011; bh=lZAID4WC9b
	z/x+fXcYpHLvBw3VXUpFafmp2WlqFRJQ8=; b=Nr5r5hjkWoiXWErQ2egsygf3sc
	PWCpdq/e2zmlw2tzETxtsctmiQsc5k7sVG7zlD814+lTczYwF+PkpQbnSg4PFzig
	PCQVQDcRgi6jj4A5yhWPU+GQgtAF3QeDIhk2Z+eGcM4sbafI0g3wdhpkBntDuq/8
	SIgiOozn74RkgtEu8pw3MJvjOZgL1/UU4mpfedw845vjdXqm8G9yUmtn4xNSfpYH
	9org7cJhK0I99rUAS4llN8fSR/B8Ex5A33CJg/PI3GqJPjLgzzVjgXQ/3Y1L+ZUQ
	+ILxRgExdTm+C+VFc+IUCG1AiBzH/LcjjBN8/eC35KKpvsu4zjdIlooweTLQ==
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=fm2; t=1744403611; x=
	1744490011; bh=lZAID4WC9bz/x+fXcYpHLvBw3VXUpFafmp2WlqFRJQ8=; b=b
	XCjjiyjoq3YK16rI4AbMPKZ8Ssg6kA720k57ff1POhrhr39wzV5canAIjsRMkYbl
	s4uSCRrFgzU4+cdyWR+S0QDquWQzZQSTasm/B51HJQ/IGq/kx6mtS/WHK3oMiQ7R
	0l6nzUk8IvwKqbkIJslZTjfzdBruZVVDIL+Ra28AjCZnBFEu3fYMaO6bqoDJU5df
	yXSkb8Sjnhblny/7sYqSD4pQwLYf1+UsRCJRn4unM06azn8mjDtwek5lYg7c/8nO
	FrLYtzuYvRQFoIyhzzmbKx+rrMS1hYQMvJ32CHi71Yw6kGvJrI7QPqeS7RAyLFJB
	wSA0zyTVEz1XPAeub8IoQ==
X-ME-Sender: <xms:m3z5Z2gJ3jbKZWDgZ4dANr1_XD2iim8XTngOe0CBQS5_a263d_RUMg>
    <xme:m3z5Z3CN0_xzYsrU2aRFVXREQFv5-1DF6leE9OWz16MWltsChwpa0XI1gJG34PdVS
    cHiH4ZNFySy9A>
X-ME-Received: <xmr:m3z5Z-EwxjEtEPo_Nhr_rI-PWWluTTzPdakgQ1oOr8Dn6h-potli8TgAkOxueB1xBilmiDe-haXrOlu311ytSiz1R02vUKfkOWih_od4M-oaX1reDbI>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvuddvjeekucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
    pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
    gvnhhtshculddquddttddmnecujfgurhephffvvefufffkofgjfhggtgfgsehtkeertder
    tdejnecuhfhrohhmpeforghrvghkucforghrtgiihihkohifshhkihdqifpkrhgvtghkih
    cuoehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhmqeen
    ucggtffrrghtthgvrhhnpefgueduhefgvdefheehudejheefudevueeghfekhfehleegve
    duteeuiedugffgffenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhl
    fhhrohhmpehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtoh
    hmpdhnsggprhgtphhtthhopeehpdhmohguvgepshhmthhpohhuthdprhgtphhtthhopeig
    vghnqdguvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdprhgtphhtth
    hopegrnhgurhgvfidrtghoohhpvghrfeestghithhrihigrdgtohhmpdhrtghpthhtohep
    mhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdprhgtph
    htthhopegtrghrughovgestggrrhguohgvrdgtohhmpdhrtghpthhtohepshhsthgrsggv
    lhhlihhniheskhgvrhhnvghlrdhorhhg
X-ME-Proxy: <xmx:m3z5Z_RhnLPnDc7_1VctX-X8Sj6ClJ1pqxE0glANdoKBKch1E7mUmg>
    <xmx:m3z5Zzyxyho2LXSDXJPdcpDjsUCZFmMOZbkzqT_hkI9Uirb6ucrwew>
    <xmx:m3z5Z976v2_hbpVm-emFgYdm-0CP_DTzT7VSSLanRtYYFNX7m1EFcQ>
    <xmx:m3z5ZwzWZksC0ILmeOu61Icsz3jN5MZljmSBn9nDsCYhItuVuPVdLQ>
    <xmx:m3z5Z4LJyLRspyn5hVa9hc8qgjs_EW7an6qUgvE-x0k6vRG8wOV55sG5>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v3 3/7] CI: switch qubes runners to use console.exp
Date: Fri, 11 Apr 2025 22:32:15 +0200
Message-ID: <668fb90bbc5e418f6aea85e81d90343d834a066f.1744403499.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <cover.146eb3617cc9cf442dd4fc7a0a8950fb1bc191c8.1744403499.git-series.marmarek@invisiblethingslab.com>
References: <cover.146eb3617cc9cf442dd4fc7a0a8950fb1bc191c8.1744403499.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

It appears as sometimes it takes more time for Xen even start booting,
mostly due to firmware and fetching large boot files by grub. In some
jobs the current timeout is pretty close to the actual time needed, and
sometimes (rarely for now) test fails due to timeout expiring in the
middle of dom0 booting. This will be happening more often if the
initramfs will grow (and with more complex tests).
This has been observed on some dom0pvh-hvm jobs, at least on runners hw3
and hw11.

Switch to using expect (console.exp) for more robust test output
handling. This allows waiting separately for Xen starting to boot and
then for the test to complete. For now, set both of those to 120s, which
pessimistically bumps timeout for the whole test to 240s (from 120s).

Add S3 handling to console.exp via SUSPEND_MSG + WAKEUP_CMD.

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
---
Changes in v3:
- split into two patches - generic change is in the previous one
Changes in v2:
- replace previous "ci: increase timeout for hw tests" with changing how
  console is interacted with

This needs a containers rebuild.
---
 automation/build/alpine/3.18-arm64v8.dockerfile |  1 +-
 automation/scripts/console.exp                  | 13 +++++-
 automation/scripts/qubes-x86-64.sh              | 52 ++++--------------
 3 files changed, 27 insertions(+), 39 deletions(-)

diff --git a/automation/build/alpine/3.18-arm64v8.dockerfile b/automation/build/alpine/3.18-arm64v8.dockerfile
index 19fe46f8418f..b8482d5bf43f 100644
--- a/automation/build/alpine/3.18-arm64v8.dockerfile
+++ b/automation/build/alpine/3.18-arm64v8.dockerfile
@@ -48,3 +48,4 @@ RUN apk --no-cache add \
   # qubes test deps
   openssh-client \
   fakeroot \
+  expect \
diff --git a/automation/scripts/console.exp b/automation/scripts/console.exp
index 834a08db1b95..bdb1dd982003 100755
--- a/automation/scripts/console.exp
+++ b/automation/scripts/console.exp
@@ -9,6 +9,10 @@
 #   tests that's a command to read serial console
 # - UBOOT_CMD (optional): command to enter at u-boot prompt
 # - BOOT_MSG (optional): initial Xen message to wait for (aka sign-of-life)
+# - SUSPEND_MSG (optional): message signaling system is going to sleep, it's
+#   trigger for WAKEUP_CMD (see below)
+# - WAKEUP_CMD (optional): command to execute to wakeup the system 30s after
+#   seeing SUSPEND_MSG
 # - LOG_MSG (optional): final console message to wait for
 # - PASSED: message to look for to consider test a success; if LOG_MSG is set,
 #   both LOG_MSG and PASSED must appear (in any order) for test to succeed
@@ -45,6 +49,15 @@ if {[info exists env(BOOT_MSG)]} {
     expect -re "$env(BOOT_MSG)"
 }
 
+if {[info exists env(WAKEUP_CMD)]} {
+    expect -re "$env(SUSPEND_MSG)"
+
+    # keep it suspended a bit, then wakeup
+    sleep 30
+
+    system "$env(WAKEUP_CMD)"
+}
+
 if {[info exists env(LOG_MSG)]} {
     expect {
         -re "$env(PASSED)" {
diff --git a/automation/scripts/qubes-x86-64.sh b/automation/scripts/qubes-x86-64.sh
index a964ac4b7a4e..861e302d845b 100755
--- a/automation/scripts/qubes-x86-64.sh
+++ b/automation/scripts/qubes-x86-64.sh
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-set -ex
+set -ex -o pipefail
 
 # One of:
 #  - ""             PV dom0,  PVH domU
@@ -267,52 +267,26 @@ cp -f binaries/xen $TFTP/xen
 cp -f binaries/bzImage $TFTP/vmlinuz
 cp -f binaries/dom0-rootfs.cpio.gz $TFTP/initrd-dom0
 
-# start logging the serial; this gives interactive console, don't close its
-# stdin to not close it; the 'cat' is important, plain redirection would hang
-# until somebody opens the pipe; opening and closing the pipe is used to close
-# the console
-mkfifo /tmp/console-stdin
-cat /tmp/console-stdin |\
-ssh $CONTROLLER console | tee smoke.serial | sed 's/\r//' &
-
 # start the system pointing at gitlab-ci predefined config
 ssh $CONTROLLER gitlabci poweron
-trap "ssh $CONTROLLER poweroff; : > /tmp/console-stdin" EXIT
+trap "ssh $CONTROLLER poweroff" EXIT
 
 if [ -n "$wait_and_wakeup" ]; then
-    # wait for suspend or a timeout
-    until grep "$wait_and_wakeup" smoke.serial || [ $timeout -le 0 ]; do
-        sleep 1;
-        : $((--timeout))
-    done
-    if [ $timeout -le 0 ]; then
-        echo "ERROR: suspend timeout, aborting"
-        exit 1
-    fi
-    # keep it suspended a bit, then wakeup
-    sleep 30
-    ssh $CONTROLLER wake
+    export SUSPEND_MSG="$wait_and_wakeup"
+    export WAKEUP_CMD="ssh $CONTROLLER wake"
 fi
 
-set +x
-until grep "^Welcome to Alpine Linux" smoke.serial || [ $timeout -le 0 ]; do
-    sleep 1;
-    : $((--timeout))
-done
-set -x
-
-tail -n 100 smoke.serial
-
-if [ $timeout -le 0 ]; then
-    echo "ERROR: test timeout, aborting"
-    exit 1
-fi
+export PASSED="${passed}"
+export BOOT_MSG="Latest ChangeSet: "
+export LOG_MSG="\nWelcome to Alpine Linux"
+export TEST_CMD="ssh $CONTROLLER console"
+export TEST_LOG="smoke.serial"
+export TEST_TIMEOUT="$timeout"
+./automation/scripts/console.exp | sed 's/\r\+$//'
+TEST_RESULT=$?
 
 if [ -n "$retrieve_xml" ]; then
     nc -w 10 "$SUT_ADDR" 8080 > tests-junit.xml </dev/null
 fi
 
-sleep 1
-
-(grep -q "^Welcome to Alpine Linux" smoke.serial && grep -q "${passed}" smoke.serial) || exit 1
-exit 0
+exit "$TEST_RESULT"
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Fri Apr 11 20:33:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 20:33:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.947818.1345419 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3L4B-0007tv-Ax; Fri, 11 Apr 2025 20:33:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 947818.1345419; Fri, 11 Apr 2025 20: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 1u3L4B-0007tn-7M; Fri, 11 Apr 2025 20:33:35 +0000
Received: by outflank-mailman (input) for mailman id 947818;
 Fri, 11 Apr 2025 20:33: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=5hfk=W5=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1u3L49-0007cp-GK
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 20:33:33 +0000
Received: from fout-a8-smtp.messagingengine.com
 (fout-a8-smtp.messagingengine.com [103.168.172.151])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3addbbba-1714-11f0-9ffb-bf95429c2676;
 Fri, 11 Apr 2025 22:33:31 +0200 (CEST)
Received: from phl-compute-04.internal (phl-compute-04.phl.internal
 [10.202.2.44])
 by mailfout.phl.internal (Postfix) with ESMTP id 15B6913801E9;
 Fri, 11 Apr 2025 16:33:30 -0400 (EDT)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-04.internal (MEProxy); Fri, 11 Apr 2025 16:33:30 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri,
 11 Apr 2025 16:33: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: 3addbbba-1714-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:subject
	:subject:to:to; s=fm2; t=1744403610; x=1744490010; bh=qNI+VqSEj0
	KVeZX4bXAfU5HaNIGKRMphh1Sp3jCnRHA=; b=BzyxJe66q6LlGJmm3GY41iiNJ3
	9sHcabf5OYpHCrLeqFcfBCC8G2XK3rPSindGoQHvzfIzzAH2ktjdDbnp+lZ+7Y/d
	MIfOgGCI6pQLXpN/0r7fDhEYPbVyG9ZOBWPEzLbyEWTwn1K2eFiM30r4gvbxJlT0
	AOBnRrmxu/YRGPL2Kp4o7LcjmZ2pa2cUOnxiggQO1dOI5MOekLDhuWcRfVy0VQka
	BcZkYq/TzYlfWM+eTllOr+TlV+d2iyIip1zQCbkPsndzrCcLb7QZ5s4IKz84rRXV
	qv4+VRD91dsUQWEEsT6ZI+RMewgFLueubTfQtLsnO3h3TUm2vkaLW9TuxlTA==
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=fm2; t=1744403610; x=
	1744490010; bh=qNI+VqSEj0KVeZX4bXAfU5HaNIGKRMphh1Sp3jCnRHA=; b=I
	454Pl5J2bzBUXqCPqP+lZG4QXpDjlTyV2R2Ea9dupk/m7lRYdimfdg6FezRyVknT
	N8h1BMGXdwNKQM6OyO+6tdp+wucisHMrMzG2OgA6TP+mvRms2kcSmox5uKVheswz
	38ahlpFmeLVlXUy+OVwPLB+mi098bxF29a02ao7NzVeUaZtTthKeVuWMWR3MygQR
	2+9lz+Y96QoYeMjk6HPZvcv0+6DLr0fajM3Yagdj+JguTJLERMOoo+xfAAeFX1ue
	vMKrsQBp8vfjcZOjvbi/z6L7fG+hDIZ5KqE2yiaS9YcCT/Ai4Z2i7iM7jPwxD5mT
	b9DHZNMb5s+VBUNtiC00g==
X-ME-Sender: <xms:mXz5Z5dIXIdIkKMEKchJoGgc4fuQlQpGpV7yenHyVRLSAzq4v_LQCg>
    <xme:mXz5Z3OurLDurYMjs7dQOgLUy-8hxS_IWSElbpYe-cFeu3JiwJEMut1zMTfAzb025
    vJZYaJJXi6DGw>
X-ME-Received: <xmr:mXz5ZyjxpeGeCFokwI4f2YPsnIsKY6Z1em2nRunXr-q8QQDPvOhpgo3nknBtodisa-II_O0ayGexU7KQqUKrQuBr0TfFJoxRJMbDu4LJOq_aivksnZ0>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvuddvjeekucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
    pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
    gvnhhtshculddquddttddmnecujfgurhephffvvefufffkofgjfhggtgfgsehtkeertder
    tdejnecuhfhrohhmpeforghrvghkucforghrtgiihihkohifshhkihdqifpkrhgvtghkih
    cuoehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhmqeen
    ucggtffrrghtthgvrhhnpefgueduhefgvdefheehudejheefudevueeghfekhfehleegve
    duteeuiedugffgffenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhl
    fhhrohhmpehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtoh
    hmpdhnsggprhgtphhtthhopeehpdhmohguvgepshhmthhpohhuthdprhgtphhtthhopeig
    vghnqdguvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdprhgtphhtth
    hopegrnhgurhgvfidrtghoohhpvghrfeestghithhrihigrdgtohhmpdhrtghpthhtohep
    mhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdprhgtph
    htthhopegtrghrughovgestggrrhguohgvrdgtohhmpdhrtghpthhtohepshhsthgrsggv
    lhhlihhniheskhgvrhhnvghlrdhorhhg
X-ME-Proxy: <xmx:mXz5Zy8KFXC8Z6Hrq4Rhx5tgN-lLVDwTBKQ9nnmMoViACbstvsia7w>
    <xmx:mXz5Z1tUswHM1Ox_pW-9PkZFUz07_-dAcktpQVDY64p0JIyhCWxn_w>
    <xmx:mXz5ZxFJ7wWhPK_YU-7vAGjdLaTduAb4gUYy0VUT_AUEzinz1ee0Gw>
    <xmx:mXz5Z8Pz0A4nEUj7ubuOYgGeKwXFMRiqdnHBn5Nrf2f6VjahAgy-Aw>
    <xmx:mnz5Z02xPCAQGXHsgi5ZpPlmLIOPklXeMcLwd-1B4pN5uoFAeWl2Q47N>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v3 2/7] CI: fix waiting for final test message
Date: Fri, 11 Apr 2025 22:32:14 +0200
Message-ID: <ad1db17ffa1883b1aa21a8480e4fb628a6d0c929.1744403499.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <cover.146eb3617cc9cf442dd4fc7a0a8950fb1bc191c8.1744403499.git-series.marmarek@invisiblethingslab.com>
References: <cover.146eb3617cc9cf442dd4fc7a0a8950fb1bc191c8.1744403499.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Expect normally discards initial part of its buffer after matching the
patter, before looking for the next one. If both PASSED and LOG_MSG
happen to be in the buffer at the same time, depending on their order,
only one will be matched and the waiting for the other will timeout.
Example expect -d output of this happening (parts eclipsed for brevity):

    expect: does "\r\r\r\nWelcome to Alpine Linux 3.18\r\r\r\n...\r\r\r\r\n(domU) + echo 'pci test passed'\r\r\r\r\n(domU) pci test passed\r\r\r\r..." (spawn_id exp4) match regular expression "pci test passed"? Gate "pci test passed"? gate=yes re=yes
    ...
    Gate keeper glob pattern for '\nWelcome to Alpine Linux' is '
    Welcome to Alpine Linux'. Activating booster.
    expect: does "'\r\r\r\r\n(domU) pci test passed\r\r\r\r\n(domU)  [ ok ]\r\r\r\r\n(domU)  [ ok ]\r\r\r\r\n(domU) \r\r\r\r\r\n(domU) domU Welcome to Alpine Linux 3.18\r\r\r\r\n(domU) \rKernel 6.6.56 on an x86_64 (/dev/hvc0)\r\r\r\r\n(domU) \r\r\r\r\r\n" (spawn_id exp4) match regular expression "\nWelcome to Alpine Linux"? Gate "\nWelcome to Alpine Linux"? gate=no

Fix this by using -notransfer flag to keep matched part in the buffer.

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
---
 automation/scripts/console.exp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/automation/scripts/console.exp b/automation/scripts/console.exp
index c27f893dfba7..834a08db1b95 100755
--- a/automation/scripts/console.exp
+++ b/automation/scripts/console.exp
@@ -48,11 +48,11 @@ if {[info exists env(BOOT_MSG)]} {
 if {[info exists env(LOG_MSG)]} {
     expect {
         -re "$env(PASSED)" {
-            expect -re "$env(LOG_MSG)"
+            expect -notransfer -re "$env(LOG_MSG)"
             exit 0
         }
         -re "$env(LOG_MSG)" {
-            expect -re "$env(PASSED)"
+            expect -notransfer -re "$env(PASSED)"
             exit 0
         }
     }
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Fri Apr 11 20:33:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 20:33:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.947816.1345399 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3L47-0007R9-Pa; Fri, 11 Apr 2025 20:33:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 947816.1345399; Fri, 11 Apr 2025 20:33: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 1u3L47-0007R2-MT; Fri, 11 Apr 2025 20:33:31 +0000
Received: by outflank-mailman (input) for mailman id 947816;
 Fri, 11 Apr 2025 20:33: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=5hfk=W5=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1u3L46-0007Qw-Uv
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 20:33:31 +0000
Received: from fout-a8-smtp.messagingengine.com
 (fout-a8-smtp.messagingengine.com [103.168.172.151])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 39553918-1714-11f0-9eae-5ba50f476ded;
 Fri, 11 Apr 2025 22:33:28 +0200 (CEST)
Received: from phl-compute-01.internal (phl-compute-01.phl.internal
 [10.202.2.41])
 by mailfout.phl.internal (Postfix) with ESMTP id 229421380214;
 Fri, 11 Apr 2025 16:33:27 -0400 (EDT)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-01.internal (MEProxy); Fri, 11 Apr 2025 16:33:27 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri,
 11 Apr 2025 16:33:26 -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: 39553918-1714-11f0-9eae-5ba50f476ded
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=fm2;
	 t=1744403607; x=1744490007; bh=C/hTXG+MPNyrw9iV2eCibw2i0F8RAuek
	lbURE1Ptgjc=; b=lBMvOkCXbDvLVoa+TRYGbYsePy4uk+nYMVkC3QY9s+jLlyvM
	SC04MITv7TFABVbaH7hBV+tpQztm7Nmlnb051x0HoC4eLp5aPWgP0qC4X2mfNTnN
	dScvTw0sEMrWIC0ZxCCTduTt5sMmSvHns5eEY6x5ZvNSs+cCjWrXJuDcJcGyJ5bC
	kl/XeprKAY4wApUwlIWlE18G6LzBhnslZVCPxcEnNVdC/HubJhgGVGHCsGs1fh8v
	lEkQeRjnVqU/gJJK+lny8ldujX+aiH78Rut21bvxghXRccY7NXuWxOFAcAyr9Jn2
	PFni5h3fOgnKWEujzXBKywrw6pgdfoUl7kRZ8g==
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=
	fm2; t=1744403607; x=1744490007; bh=C/hTXG+MPNyrw9iV2eCibw2i0F8R
	AueklbURE1Ptgjc=; b=RUOyfbl36v+ALKsgwftHzMdt2hT5Go2K37AT4DZ532rF
	1lT16LEcRfB6hFVOnaa2f5qvCPXVeT38nq3ewSSfTHaPYiE8CWr4c7xHYIynZcKl
	omG6qVC5agdI5g88j3nv6Gvp8XpI1a9ETRF8hiTGDTmuhU2EQUAw01gH1Ro/Knfz
	3hQguU9Pqi1bpSmGPvfcxY6etO00VyCA7ReT258f/34UljfeMNJEPGigGC7KaPXx
	g/FX964XvVtvAE2QbEjxhjAKW84iDq7L+6zJD38E6Ppw9HstyD9fARGMQhIoWRk2
	1pLsfahLMQpUxI6CF84tff8mL5yJPkXszgzDn0+4Nw==
X-ME-Sender: <xms:lnz5Z_1chf7gritI3zLu6QHOaizJXfZyX39x6k0c0zkucDrN0XrOzQ>
    <xme:lnz5Z-EBhpemVJYhyZFPKBP-hjC2B9dKPzailhDmUMKSc0jyGLpYTIm8fZYk3afBM
    Imc4cYr3Subiw>
X-ME-Received: <xmr:lnz5Z_5Ki7rMeqDzaBu6FGdXblu1M6fGazlLFEvr6eILtOA4Wc8XGDvp9mHWwTcUli4MddB7JWnGeWLwKOBn8-oNDIBljUOOKdUeBg-h5DGVH_DzjK8>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvuddvjeelucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
    pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
    gvnhhtshculddquddttddmnecujfgurhephffvvefufffkofggtgfgsehtkeertdertdej
    necuhfhrohhmpeforghrvghkucforghrtgiihihkohifshhkihdqifpkrhgvtghkihcuoe
    hmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhmqeenucgg
    tffrrghtthgvrhhnpeelkefhudelteelleelteetveeffeetffekteetjeehlefggeekle
    eghefhtdehvdenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhr
    ohhmpehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhmpd
    hnsggprhgtphhtthhopeefpdhmohguvgepshhmthhpohhuthdprhgtphhtthhopeigvghn
    qdguvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdprhgtphhtthhope
    grnhgurhgvfidrtghoohhpvghrfeestghithhrihigrdgtohhmpdhrtghpthhtohepmhgr
    rhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomh
X-ME-Proxy: <xmx:lnz5Z02Ouj2CQYAuw060a0W7hWGXTiCbNY7m8MLPaIN5edOU3FZEng>
    <xmx:lnz5ZyGJhxW6RNeKrpN214oATSbJqWuJSgzFw_hD_3d_C863gcWzZw>
    <xmx:lnz5Z1-lO3nDsI6T0tvuC2U9-DHyqGmvoXFv8prs0YfzmXdY1HhV_Q>
    <xmx:lnz5Z_lUKn0-MOLiWgMZPxMxz6k88kPaf7zqLyXPrJZZD-NyDiTM6Q>
    <xmx:l3z5Z6xDUNdSBwlA6lWPDirLI2IFg3qQmHkI8X-ZUNKqWznjWNsAnsmE>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH v3 0/7] Several CI cleanups and improvements around initrd/rootfs
Date: Fri, 11 Apr 2025 22:32:12 +0200
Message-ID: <cover.146eb3617cc9cf442dd4fc7a0a8950fb1bc191c8.1744403499.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.48.1
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Some of those patches are collected from my stubdomain test series, others are
made while getting the new runner working. This series initially included
adding Zen4 runner, but drop it in this version as there is quite enough stuff
here already, and there are few more dependencies for the new runner (fixing
some PVH issues, getting 6.12 kernel to build etc).

This series also evolved into refactoring initrd/rootfs handling and now
depends on test-artifacts changes posted by Andrew. This significantly reduces
hw test jobs time.

Marek Marczykowski-Górecki (7):
  CI: wait for Xen to start before waiting for test to complete
  CI: fix waiting for final test message
  CI: switch qubes runners to use console.exp
  CI: write whole etc/issue for domU initrd
  CI: avoid repacking initrd as part of the test job
  CI: remove now unused alpine-3.18-arm64-rootfs job and its container
  CI: save toolstack artifact as cpio.gz

 automation/build/alpine/3.18-arm64v8.dockerfile           |  1 +-
 automation/gitlab-ci/build.yaml                           | 11 +-
 automation/gitlab-ci/test.yaml                            |  6 +-
 automation/scripts/build                                  |  2 +-
 automation/scripts/console.exp                            | 40 +++-
 automation/scripts/qemu-alpine-x86_64.sh                  | 12 +-
 automation/scripts/qemu-smoke-dom0-arm32.sh               |  1 +-
 automation/scripts/qemu-smoke-dom0-arm64.sh               | 10 +-
 automation/scripts/qemu-smoke-dom0less-arm32.sh           |  1 +-
 automation/scripts/qemu-smoke-dom0less-arm64.sh           |  9 +-
 automation/scripts/qemu-xtf-dom0less-arm64.sh             |  1 +-
 automation/scripts/qubes-x86-64.sh                        | 79 ++------
 automation/scripts/xilinx-smoke-dom0-x86_64.sh            | 23 +-
 automation/scripts/xilinx-smoke-dom0less-arm64.sh         | 17 +--
 automation/tests-artifacts/alpine/3.18-arm64v8.dockerfile | 66 +-------
 15 files changed, 108 insertions(+), 171 deletions(-)
 delete mode 100644 automation/tests-artifacts/alpine/3.18-arm64v8.dockerfile

base-commit: 7bf777b42cade81d4f20f78cb85c4bc0f638de7b
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Fri Apr 11 20:33:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 20:33:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.947821.1345448 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3L4D-0008Vt-Ai; Fri, 11 Apr 2025 20:33:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 947821.1345448; Fri, 11 Apr 2025 20:33: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 1u3L4D-0008Tt-28; Fri, 11 Apr 2025 20:33:37 +0000
Received: by outflank-mailman (input) for mailman id 947821;
 Fri, 11 Apr 2025 20:33: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=5hfk=W5=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1u3L4B-0007Qw-Ot
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 20:33:35 +0000
Received: from fout-a8-smtp.messagingengine.com
 (fout-a8-smtp.messagingengine.com [103.168.172.151])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3d295e74-1714-11f0-9eae-5ba50f476ded;
 Fri, 11 Apr 2025 22:33:34 +0200 (CEST)
Received: from phl-compute-04.internal (phl-compute-04.phl.internal
 [10.202.2.44])
 by mailfout.phl.internal (Postfix) with ESMTP id F1B8E13801E9;
 Fri, 11 Apr 2025 16:33:33 -0400 (EDT)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-04.internal (MEProxy); Fri, 11 Apr 2025 16:33:33 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri,
 11 Apr 2025 16:33:32 -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: 3d295e74-1714-11f0-9eae-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:subject
	:subject:to:to; s=fm2; t=1744403613; x=1744490013; bh=NDEEL3vnp9
	1rUswoHWj1DPTJJmgLP0WDQTpqGrFuTCo=; b=kDr5k72ygdLZCZkGX7ib57cawd
	jFCLdCRzjtEby7UUs4vdGQytO6iQQz+mO/k61F/J2XicAPHt7EIn794JVZqr8xX9
	zxh3LM0err2uZOgfwZbAEKNnz/u2C/xG6aGDKoEvCXP3LjtgClb+VLGJCIFIIEPI
	+rfteppAPMpQ3MSHrcr7ZhXVCqliYzIYuGI2d9Ha+oiQe/QYJ/JevRE25O34qRMw
	Ay7tOPjYViC5SArZHCaN1xYjontoeXGXCuaWZbI/3VgmIk0OFjIqAmunCrKQJNuH
	9j0iiQM/YQX6GVLyipfcn5L7TLI7d7NDrJ7E+45Pxgpu2KRxUBET8R4mLNKg==
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=fm2; t=1744403613; x=
	1744490013; bh=NDEEL3vnp91rUswoHWj1DPTJJmgLP0WDQTpqGrFuTCo=; b=k
	TOUJzB6jUQX+DE6z7ysaEoJTXOVXLu6PGb3ZJojqunCUhwdOMOavxGLBSltSlGjH
	H1XeQXkUwwQoNxZCRs2HZRi1JDTCtjf59/V39+FFZvDUoZRib2DDEwhM1gVLcttf
	ohA9q6ppMPRXaBvL5z0LegG6aQgIsPNXbvBEPHXnR9sExcLMJD91kzoBmL+XCqSL
	zDgx07wFwP6r3sj4g9dh6/I6kqcY+jOrTrnba6n6QRsJWoIH6qNv35p4VLWCx2cD
	mCaqaVfV+LouCkqqWmaL8ERynQUYU7qCMgSJbLlu9EYmxB94bVacWSHpoosiLFhe
	Yye181zqP0iSHKTHGo9RQ==
X-ME-Sender: <xms:nXz5Z27MgfV_VUA-vHbpzN9x48v00dGIhHnA2eBGvr3d8tH5JpNlZw>
    <xme:nXz5Z_76TEfeIwTNwBywBkO3afB15F98r18Chc9bYQPyaltZ-Rrhe07Zc_JqrOFtn
    SDGgglPATPs9Q>
X-ME-Received: <xmr:nXz5Z1dqzyKZgGEcaSUoJ_rGiXtewpY4GQT_BM0tI4i1gv9Xey0D6pEXyVN2uUQDr8nVkQooc0-vhmzkabhjJywSjpoXyWSoZjyjjp927PmAy9jpebM>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvuddvjeekucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
    pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
    gvnhhtshculddquddttddmnecujfgurhephffvvefufffkofgjfhggtgfgsehtkeertder
    tdejnecuhfhrohhmpeforghrvghkucforghrtgiihihkohifshhkihdqifpkrhgvtghkih
    cuoehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhmqeen
    ucggtffrrghtthgvrhhnpefgueduhefgvdefheehudejheefudevueeghfekhfehleegve
    duteeuiedugffgffenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhl
    fhhrohhmpehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtoh
    hmpdhnsggprhgtphhtthhopeehpdhmohguvgepshhmthhpohhuthdprhgtphhtthhopeig
    vghnqdguvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdprhgtphhtth
    hopegrnhgurhgvfidrtghoohhpvghrfeestghithhrihigrdgtohhmpdhrtghpthhtohep
    mhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdprhgtph
    htthhopegtrghrughovgestggrrhguohgvrdgtohhmpdhrtghpthhtohepshhsthgrsggv
    lhhlihhniheskhgvrhhnvghlrdhorhhg
X-ME-Proxy: <xmx:nXz5ZzLd8ep7RWYaQ11PwFnTIza0278CdV7CCSgKYurmJVAcFFJABw>
    <xmx:nXz5Z6LeEdiOaIC0zViTy-iqErRS1_3KZpFlvk_npEnlFLYC9Jiehw>
    <xmx:nXz5Z0zz30c1A8UG8qyK6blP6kT-rwqtKc7uLpv_U0bEVmIpFz5pWA>
    <xmx:nXz5Z-JwnnM2L4Ptugp9t1IMCIvlnc36lGyEpHuuByyTQ8ybuYkwNg>
    <xmx:nXz5Z2CVRlq1bGXxLXnrMMHtSPRbfuZ_aBCfuByq1YFSb_lYvL8GZbun>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v3 5/7] CI: avoid repacking initrd as part of the test job
Date: Fri, 11 Apr 2025 22:32:17 +0200
Message-ID: <c7bd8aa95e8bd85f3e42ed4f07d69444f5435e25.1744403499.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <cover.146eb3617cc9cf442dd4fc7a0a8950fb1bc191c8.1744403499.git-series.marmarek@invisiblethingslab.com>
References: <cover.146eb3617cc9cf442dd4fc7a0a8950fb1bc191c8.1744403499.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The prerequisite for this is building rootfs.cpio.gz, not only
initrd.tar.gz. That's a change in the test-artifacts repository in the
"Rootfs generation" series from Andrew.

Having that, do not repack the whole initrd, but only pack modified
files and rely on Linux handling of concatenated archives.
This allows packing just test-related files (which includes the whole
toolstack), instead of the whole initrd.

DomU initrd handling is a bit more complicated thing. It's sent to the
target host as part of the dom0 initrd. For now include prepared domU
initrd as a whole in dom0's rootfs "overlay", which means compressing it
(again) each job (this takes 3s). This can be later improved by
splitting domU initrd into two parts (base + overlay) and concatenate
them in target dom0 already. For this to be useful, test-artifacts would
need to provide pre-made double-cpio version too (rootfs.cpio.gz wrapper
in yet another cpio.gz as boot/domU-initrd).

Since full initrd is not unpacked now when preparing domU (and dom0)
rootfs, a couple of minor changes are needed to how they are prepared.
This includes creating whole etc/issue file, instead of modifying
existing one, and a need to create a couple directories.

Finally, move adding "rc_verbose=yes" to /etc/rc.conf to initrd
building.

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
---
Changes in v3:
- adjust for Andrew's version of cpio rootfs artifacts
- don't require double-cpio archive for domU initrd, instead add it via
  dom0 initrd as plain cpio to avoid re-compressing the same thing
New in v2

Jobs xilinx-* are untested, as I don't have necessary access.
---
 automation/gitlab-ci/test.yaml                    |  6 +++--
 automation/scripts/qemu-alpine-x86_64.sh          |  9 +++-----
 automation/scripts/qemu-smoke-dom0-arm64.sh       |  7 ++----
 automation/scripts/qemu-smoke-dom0less-arm64.sh   |  7 ++----
 automation/scripts/qubes-x86-64.sh                | 18 +++++++---------
 automation/scripts/xilinx-smoke-dom0-x86_64.sh    | 15 ++++++-------
 automation/scripts/xilinx-smoke-dom0less-arm64.sh | 14 +++++-------
 7 files changed, 35 insertions(+), 41 deletions(-)

diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
index 59a2de28c864..3e02bf0e4d21 100644
--- a/automation/gitlab-ci/test.yaml
+++ b/automation/gitlab-ci/test.yaml
@@ -11,7 +11,9 @@
   - project: xen-project/hardware/test-artifacts
     job: linux-6.6.86-arm64
     ref: master
-  - alpine-3.18-arm64-rootfs-export
+  - project: xen-project/hardware/test-artifacts
+    job: alpine-3.18-arm64-rootfs
+    ref: master
   - qemu-system-aarch64-6.0.0-arm64-export
 
 .arm32-test-needs: &arm32-test-needs
@@ -22,7 +24,7 @@
     job: linux-6.6.56-x86_64
     ref: master
   - project: xen-project/hardware/test-artifacts
-    job: x86_64-rootfs-alpine-3.18
+    job: alpine-3.18-x86_64-rootfs
     ref: master
 
 .qemu-arm64:
diff --git a/automation/scripts/qemu-alpine-x86_64.sh b/automation/scripts/qemu-alpine-x86_64.sh
index 89bdb4df7dac..6e0a67b4018c 100755
--- a/automation/scripts/qemu-alpine-x86_64.sh
+++ b/automation/scripts/qemu-alpine-x86_64.sh
@@ -28,16 +28,15 @@ cd initrd
 find . | cpio --create --format='newc' | gzip > ../initrd.cpio.gz
 cd ..
 
-# initrd.tar.gz is Dom0 rootfs
+# Dom0 rootfs - overlay on top of rootfs.cpio.gz
 mkdir -p rootfs
 cd rootfs
-tar xvzf ../initrd.tar.gz
 mkdir proc
 mkdir run
 mkdir srv
 mkdir sys
-rm var/run
 cp -ar ../dist/install/* .
+mkdir -p root etc/local.d
 mv ../initrd.cpio.gz ./root
 cp ../bzImage ./root
 echo "name=\"test\"
@@ -60,9 +59,9 @@ xl -vvv create -c /root/test.cfg
 
 " > etc/local.d/xen.start
 chmod +x etc/local.d/xen.start
-echo "rc_verbose=yes" >> etc/rc.conf
 # rebuild Dom0 rootfs
-find . |cpio -H newc -o|gzip > ../xen-rootfs.cpio.gz
+cp ../rootfs.cpio.gz ../xen-rootfs.cpio.gz
+find . |cpio -H newc -o|gzip >> ../xen-rootfs.cpio.gz
 cd ../..
 
 cat >> binaries/pxelinux.0 << EOF
diff --git a/automation/scripts/qemu-smoke-dom0-arm64.sh b/automation/scripts/qemu-smoke-dom0-arm64.sh
index 51d037b0003e..86047ccd9e7b 100755
--- a/automation/scripts/qemu-smoke-dom0-arm64.sh
+++ b/automation/scripts/qemu-smoke-dom0-arm64.sh
@@ -29,13 +29,12 @@ cd ..
 
 mkdir -p rootfs
 cd rootfs
-tar xvzf ../initrd.tar.gz
 mkdir proc
 mkdir run
 mkdir srv
 mkdir sys
-rm var/run
 cp -ar ../dist/install/* .
+mkdir -p etc/local.d root
 mv ../initrd.cpio.gz ./root
 cp ../Image ./root
 echo "name=\"test\"
@@ -56,8 +55,8 @@ xl -vvv create -c /root/test.cfg
 
 " > etc/local.d/xen.start
 chmod +x etc/local.d/xen.start
-echo "rc_verbose=yes" >> etc/rc.conf
-find . |cpio -H newc -o|gzip > ../xen-rootfs.cpio.gz
+cp ../rootfs.cpio.gz ../xen-rootfs.cpio.gz
+find . |cpio -H newc -o|gzip >> ../xen-rootfs.cpio.gz
 cd ../..
 
 # XXX QEMU looks for "efi-virtio.rom" even if it is unneeded
diff --git a/automation/scripts/qemu-smoke-dom0less-arm64.sh b/automation/scripts/qemu-smoke-dom0less-arm64.sh
index f72d20936181..b095a5008e30 100755
--- a/automation/scripts/qemu-smoke-dom0less-arm64.sh
+++ b/automation/scripts/qemu-smoke-dom0less-arm64.sh
@@ -117,13 +117,12 @@ cd ..
 # DOM0 rootfs
 mkdir -p rootfs
 cd rootfs
-tar xzf ../binaries/initrd.tar.gz
 mkdir proc
 mkdir run
 mkdir srv
 mkdir sys
-rm var/run
 cp -ar ../binaries/dist/install/* .
+mkdir -p etc/local.d
 
 echo "#!/bin/bash
 
@@ -142,8 +141,8 @@ xl network-attach 1 type=vif
 ${dom0_check}
 " > etc/local.d/xen.start
 chmod +x etc/local.d/xen.start
-echo "rc_verbose=yes" >> etc/rc.conf
-find . | cpio -H newc -o | gzip > ../binaries/dom0-rootfs.cpio.gz
+cp ../binaries/rootfs.cpio.gz ../binaries/dom0-rootfs.cpio.gz
+find . | cpio -H newc -o | gzip >> ../binaries/dom0-rootfs.cpio.gz
 cd ..
 
 # ImageBuilder
diff --git a/automation/scripts/qubes-x86-64.sh b/automation/scripts/qubes-x86-64.sh
index dd88a1398f2b..99c2ece304f0 100755
--- a/automation/scripts/qubes-x86-64.sh
+++ b/automation/scripts/qubes-x86-64.sh
@@ -167,13 +167,11 @@ if [ -n "$domU_check" ]; then
     # DomU
     mkdir -p rootfs
     cd rootfs
-    # fakeroot is needed to preserve device nodes in rootless podman container
-    fakeroot -s ../fakeroot-save tar xzf ../binaries/initrd.tar.gz
     mkdir proc
     mkdir run
     mkdir srv
     mkdir sys
-    rm var/run
+    mkdir -p etc/local.d
     echo "#!/bin/sh
 
 echo 8 > /proc/sys/kernel/printk
@@ -181,26 +179,25 @@ echo 8 > /proc/sys/kernel/printk
 ${domU_check}
 " > etc/local.d/xen.start
     chmod +x etc/local.d/xen.start
-    echo "rc_verbose=yes" >> etc/rc.conf
     echo "domU Welcome to Alpine Linux 3.18
 Kernel \r on an \m (\l)
 
 " > etc/issue
-    find . | fakeroot -i ../fakeroot-save cpio -H newc -o | gzip > ../binaries/domU-rootfs.cpio.gz
+    cp ../binaries/rootfs.cpio.gz ../binaries/domU-rootfs.cpio.gz
+    find . | cpio -H newc -o | gzip >> ../binaries/domU-rootfs.cpio.gz
     cd ..
     rm -rf rootfs
 fi
 
-# DOM0 rootfs
+# DOM0 rootfs - this will be an overlay over alpine's initrd
 mkdir -p rootfs
 cd rootfs
-fakeroot -s ../fakeroot-save tar xzf ../binaries/initrd.tar.gz
 mkdir boot
 mkdir proc
 mkdir run
 mkdir srv
 mkdir sys
-rm var/run
+mkdir -p etc/local.d
 cp -ar ../binaries/dist/install/* .
 cp -ar ../binaries/tests .
 cp -a ../automation/scripts/run-tools-tests tests/
@@ -237,7 +234,6 @@ fi
 chmod +x etc/local.d/xen.start
 echo "$domU_config" > etc/xen/domU.cfg
 
-echo "rc_verbose=yes" >> etc/rc.conf
 echo "XENCONSOLED_TRACE=all" >> etc/default/xencommons
 echo "QEMU_XEN=/bin/false" >> etc/default/xencommons
 mkdir -p var/log/xen/console
@@ -245,7 +241,9 @@ cp ../binaries/bzImage boot/vmlinuz
 if [ -n "$domU_check" ]; then
     cp ../binaries/domU-rootfs.cpio.gz boot/initrd-domU
 fi
-find . | fakeroot -i ../fakeroot-save cpio -H newc -o | gzip > ../binaries/dom0-rootfs.cpio.gz
+# take base initrd and append test-specific files
+cp ../binaries/rootfs.cpio.gz ../binaries/dom0-rootfs.cpio.gz
+find . | cpio -H newc -o | gzip >> ../binaries/dom0-rootfs.cpio.gz
 cd ..
 
 
diff --git a/automation/scripts/xilinx-smoke-dom0-x86_64.sh b/automation/scripts/xilinx-smoke-dom0-x86_64.sh
index 4db249530823..52a0e05e3f1b 100755
--- a/automation/scripts/xilinx-smoke-dom0-x86_64.sh
+++ b/automation/scripts/xilinx-smoke-dom0-x86_64.sh
@@ -80,6 +80,7 @@ argo-exec -l -p 28333 -- /bin/echo
 "
 copy_dom0_files ()
 {
+    mkdir -p root usr/local/lib
     cp "${WORKDIR}/binaries/xen-argo.ko" "root/"
     cp -ar "${WORKDIR}/binaries/lib/"* "usr/local/lib/"
     cp "${WORKDIR}/binaries/argo-exec" "usr/local/bin/"
@@ -92,9 +93,8 @@ fi
 # Set up domU rootfs.
 mkdir -p rootfs
 cd rootfs
-tar xzf ../binaries/initrd.tar.gz
 mkdir proc run srv sys
-rm var/run
+mkdir -p etc/local.d
 echo "#!/bin/sh
 set -x
 export LD_LIBRARY_PATH=/usr/local/lib
@@ -102,23 +102,22 @@ PATH=/usr/local/bin:/usr/local/sbin:\$PATH
 ${DOMU_CMD}
 " > etc/local.d/xen.start
 chmod +x etc/local.d/xen.start
-echo "rc_verbose=yes" >> etc/rc.conf
 echo "domU Welcome to Alpine Linux 3.18
 Kernel \r on an \m (\l)
 
 " > etc/issue
 copy_domU_files
-find . | cpio -H newc -o | gzip > ../binaries/domU-rootfs.cpio.gz
+cp ../binaries/initrd.cpio.gz ../binaries/domU-rootfs.cpio.gz
+find . | cpio -H newc -o | gzip >> ../binaries/domU-rootfs.cpio.gz
 cd ..
 rm -rf rootfs
 
 # Set up dom0 rootfs.
 mkdir -p rootfs
 cd rootfs
-tar xzf ../binaries/initrd.tar.gz
 mkdir boot proc run srv sys
-rm var/run
 cp -ar ../binaries/dist/install/* .
+mkdir -p etc/local.d
 echo "#!/bin/bash
 set -x
 export LD_LIBRARY_PATH=/usr/local/lib
@@ -127,14 +126,14 @@ ${DOM0_CMD}
 " > etc/local.d/xen.start
 chmod +x etc/local.d/xen.start
 echo "${DOMU_CFG}${DOMU_CFG_EXTRA}" > etc/xen/domU.cfg
-echo "rc_verbose=yes" >> etc/rc.conf
 echo "XENCONSOLED_TRACE=all" >> etc/default/xencommons
 echo "QEMU_XEN=/bin/false" >> etc/default/xencommons
 mkdir -p var/log/xen/console
 cp ../binaries/bzImage boot/vmlinuz
 cp ../binaries/domU-rootfs.cpio.gz boot/initrd-domU
 copy_dom0_files
-find . | cpio -H newc -o | gzip > ../binaries/dom0-rootfs.cpio.gz
+cp ../binaries/rootfs.cpio.gz ../binaries/dom0-rootfs.cpio.gz
+find . | cpio -H newc -o | gzip >> ../binaries/dom0-rootfs.cpio.gz
 cd ..
 
 # Load software into TFTP server directory.
diff --git a/automation/scripts/xilinx-smoke-dom0less-arm64.sh b/automation/scripts/xilinx-smoke-dom0less-arm64.sh
index 3e1fcf6bf93c..97190d0cbb9c 100755
--- a/automation/scripts/xilinx-smoke-dom0less-arm64.sh
+++ b/automation/scripts/xilinx-smoke-dom0less-arm64.sh
@@ -41,33 +41,31 @@ fi
 # DomU
 mkdir -p rootfs
 cd rootfs
-tar xzf ../binaries/initrd.tar.gz
 mkdir proc
 mkdir run
 mkdir srv
 mkdir sys
-rm var/run
+mkdir -p etc/local.d
 echo "#!/bin/sh
 
 ${domU_check}
 /bin/sh" > etc/local.d/xen.start
 chmod +x etc/local.d/xen.start
-echo "rc_verbose=yes" >> etc/rc.conf
-find . | cpio -H newc -o | gzip > ../binaries/domU-rootfs.cpio.gz
+cp ../binaries/rootfs.cpio.gz ../binaries/domU-rootfs.cpio.gz
+find . | cpio -H newc -o | gzip >> ../binaries/domU-rootfs.cpio.gz
 cd ..
 rm -rf rootfs
 
 # DOM0 rootfs
 mkdir -p rootfs
 cd rootfs
-tar xzf ../binaries/initrd.tar.gz
 mkdir proc
 mkdir run
 mkdir srv
 mkdir sys
-rm var/run
 cp -ar ../binaries/dist/install/* .
 
+mkdir -p etc/local.d
 echo "#!/bin/bash
 
 export LD_LIBRARY_PATH=/usr/local/lib
@@ -78,8 +76,8 @@ bash /etc/init.d/xencommons start
 ${dom0_check}
 " > etc/local.d/xen.start
 chmod +x etc/local.d/xen.start
-echo "rc_verbose=yes" >> etc/rc.conf
-find . | cpio -H newc -o | gzip > ../binaries/dom0-rootfs.cpio.gz
+cp ../binaries/rootfs.cpio.gz ../binaries/dom0-rootfs.cpio.gz
+find . | cpio -H newc -o | gzip >> ../binaries/dom0-rootfs.cpio.gz
 cd ..
 
 
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Fri Apr 11 20:33:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 20:33:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.947822.1345459 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3L4G-0000Wo-SF; Fri, 11 Apr 2025 20:33:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 947822.1345459; Fri, 11 Apr 2025 20:33: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 1u3L4G-0000Wg-Nz; Fri, 11 Apr 2025 20:33:40 +0000
Received: by outflank-mailman (input) for mailman id 947822;
 Fri, 11 Apr 2025 20:33: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=5hfk=W5=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1u3L4F-0007cp-72
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 20:33:39 +0000
Received: from fout-a8-smtp.messagingengine.com
 (fout-a8-smtp.messagingengine.com [103.168.172.151])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3ee5cbc3-1714-11f0-9ffb-bf95429c2676;
 Fri, 11 Apr 2025 22:33:37 +0200 (CEST)
Received: from phl-compute-02.internal (phl-compute-02.phl.internal
 [10.202.2.42])
 by mailfout.phl.internal (Postfix) with ESMTP id D7A38138021C;
 Fri, 11 Apr 2025 16:33:36 -0400 (EDT)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-02.internal (MEProxy); Fri, 11 Apr 2025 16:33:36 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri,
 11 Apr 2025 16:33:35 -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: 3ee5cbc3-1714-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:subject
	:subject:to:to; s=fm2; t=1744403616; x=1744490016; bh=YUNGCrguCt
	aKfdk0ykLhED3S58oNoWyLOaKPEveJ8o0=; b=H7gZIBnMiR5sM1nUYeFoJnOMVC
	yL4YXMTZoWaTXoKAJQNmnei8zOOJyl8YafMOOvcvTgilhNfeoKb4Ke5ezhm9KfsV
	ZIgMc02qoYJor0qT81RDXNKvbM3fWqHqo5loHyAopPZmRSTLc8KKtrFDyaBnnJBE
	HwiCMBWld424/7QM2GuMQX6fhN1ZFcNpMHfmfFVGCQuBckEaewSEbJe/GlQMw8Bc
	XaazjIdpouY5YFfmYqE+EY6dsbBcStDL237ElqHMqKxQenSoOC3ZlhXYZKNlkudr
	WlyeqmqL4psiB2ld3QQcjyUovbIZhz98Vl6yzut12+2KboxrgquJhYO7TLww==
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=fm2; t=1744403616; x=
	1744490016; bh=YUNGCrguCtaKfdk0ykLhED3S58oNoWyLOaKPEveJ8o0=; b=m
	2BEqRh4HomZTX9T0ahPkRqAIsy7aIxJAxAAttQOf4vaWSITrAFQsqrNl4evgK5Ml
	F1wQlT94lG+VaDMfg6cjRXzbYwpzeEeIZZGnQXn915z7YbofniFKOaF+MbY4Ol3T
	R2RKWx1OhnAeWRG+jPj1ToqPkfKPKu6X32XLLveH9Kqt9GvRYb/13PFwdkD1dS9O
	VMUW2qIGxL+0uKvk9gar1HcPFw8Ib9Xv+LCIxP8+bDPP8M48dF6cIHeYxQ/cUO5f
	R1zBvC6nR29Cppu15/e+0VZBAY8ZSX3c7w1QSA9KKo/ZswoJ3TjDZhw3rb+0smfS
	auOQHvRsLkVrTFVPivPaw==
X-ME-Sender: <xms:oHz5Z0oud2TwrmkkK8nnEOasopxvs-UR8NrQZSQ4qMx0kl_5VzGU8g>
    <xme:oHz5Z6pNg_qz3TEEHUdTvACRpLzpmdWb4_DD3c9V5u8CjvVF2uHN0rFiGxc3FF3CN
    ZL698v7ZFS4Ow>
X-ME-Received: <xmr:oHz5Z5Mlx51KYttEN_HVahk2NM6gLMAatowqbUiPDVkOhIMYjmbHLeQPSZJAkgbxD0Fs9pTy2OxIjSOYxitTd3t9CeZxVszJu-CpSmkFudsAEWVQa2M>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvuddvjeelucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
    pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
    gvnhhtshculddquddttddmnecujfgurhephffvvefufffkofgjfhggtgfgsehtkeertder
    tdejnecuhfhrohhmpeforghrvghkucforghrtgiihihkohifshhkihdqifpkrhgvtghkih
    cuoehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhmqeen
    ucggtffrrghtthgvrhhnpefgueduhefgvdefheehudejheefudevueeghfekhfehleegve
    duteeuiedugffgffenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhl
    fhhrohhmpehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtoh
    hmpdhnsggprhgtphhtthhopeehpdhmohguvgepshhmthhpohhuthdprhgtphhtthhopeig
    vghnqdguvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdprhgtphhtth
    hopegrnhgurhgvfidrtghoohhpvghrfeestghithhrihigrdgtohhmpdhrtghpthhtohep
    mhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdprhgtph
    htthhopegtrghrughovgestggrrhguohgvrdgtohhmpdhrtghpthhtohepshhsthgrsggv
    lhhlihhniheskhgvrhhnvghlrdhorhhg
X-ME-Proxy: <xmx:oHz5Z7599HtPApBybawrBmFgFAZdBELvZ6bv5Thz9A_wywqPQV15fQ>
    <xmx:oHz5Zz4CflvvaRnlKUw_qDZcgN2A8ZfVOl1-BzkFd2b3vIJ2IHzPKw>
    <xmx:oHz5Z7hEuYBR_6WFSRHSLYnhUinXfBJeqY6m_rZIqabOLBnLN23xMg>
    <xmx:oHz5Z94j3Z6mVa1eX8OqrzVBu-LPr3b4MOZk746Xh-hVmR9tIKKArw>
    <xmx:oHz5ZywSloNOaeYx7ptwBSFU6oeOsNADdEw5r0LjjoI9IGPylke60P5L>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v3 7/7] CI: save toolstack artifact as cpio.gz
Date: Fri, 11 Apr 2025 22:32:19 +0200
Message-ID: <ad49ca0e3fda22639d7a00d17eda786a81b0e6f7.1744403499.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <cover.146eb3617cc9cf442dd4fc7a0a8950fb1bc191c8.1744403499.git-series.marmarek@invisiblethingslab.com>
References: <cover.146eb3617cc9cf442dd4fc7a0a8950fb1bc191c8.1744403499.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This avoids the need to re-compress it in every test job.

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
---
New in v2
---
 automation/scripts/build                          | 2 +-
 automation/scripts/qemu-alpine-x86_64.sh          | 2 +-
 automation/scripts/qemu-smoke-dom0-arm64.sh       | 2 +-
 automation/scripts/qemu-smoke-dom0less-arm64.sh   | 2 +-
 automation/scripts/qubes-x86-64.sh                | 4 +++-
 automation/scripts/xilinx-smoke-dom0-x86_64.sh    | 4 ++--
 automation/scripts/xilinx-smoke-dom0less-arm64.sh | 2 +-
 7 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/automation/scripts/build b/automation/scripts/build
index 522efe774ef3..365534895047 100755
--- a/automation/scripts/build
+++ b/automation/scripts/build
@@ -108,7 +108,7 @@ else
     # Note: Some smoke tests depending on finding binaries/xen on a full build
     # even though dist/ contains everything, while some containers don't even
     # build Xen
-    cp -r dist binaries/
+    (cd dist/install; find | cpio -o -H newc | gzip) > binaries/toolstack.cpio.gz
     cp -r tools/tests binaries/
     collect_xen_artefacts
 fi
diff --git a/automation/scripts/qemu-alpine-x86_64.sh b/automation/scripts/qemu-alpine-x86_64.sh
index 6e0a67b4018c..746fd48e6a0e 100755
--- a/automation/scripts/qemu-alpine-x86_64.sh
+++ b/automation/scripts/qemu-alpine-x86_64.sh
@@ -35,7 +35,6 @@ mkdir proc
 mkdir run
 mkdir srv
 mkdir sys
-cp -ar ../dist/install/* .
 mkdir -p root etc/local.d
 mv ../initrd.cpio.gz ./root
 cp ../bzImage ./root
@@ -61,6 +60,7 @@ xl -vvv create -c /root/test.cfg
 chmod +x etc/local.d/xen.start
 # rebuild Dom0 rootfs
 cp ../rootfs.cpio.gz ../xen-rootfs.cpio.gz
+cat ../toolstack.cpio.gz >> ../xen-rootfs.cpio.gz
 find . |cpio -H newc -o|gzip >> ../xen-rootfs.cpio.gz
 cd ../..
 
diff --git a/automation/scripts/qemu-smoke-dom0-arm64.sh b/automation/scripts/qemu-smoke-dom0-arm64.sh
index 86047ccd9e7b..a3f321b253e2 100755
--- a/automation/scripts/qemu-smoke-dom0-arm64.sh
+++ b/automation/scripts/qemu-smoke-dom0-arm64.sh
@@ -33,7 +33,6 @@ mkdir proc
 mkdir run
 mkdir srv
 mkdir sys
-cp -ar ../dist/install/* .
 mkdir -p etc/local.d root
 mv ../initrd.cpio.gz ./root
 cp ../Image ./root
@@ -56,6 +55,7 @@ xl -vvv create -c /root/test.cfg
 " > etc/local.d/xen.start
 chmod +x etc/local.d/xen.start
 cp ../rootfs.cpio.gz ../xen-rootfs.cpio.gz
+cat ../toolstack.cpio.gz >> ../xen-rootfs.cpio.gz
 find . |cpio -H newc -o|gzip >> ../xen-rootfs.cpio.gz
 cd ../..
 
diff --git a/automation/scripts/qemu-smoke-dom0less-arm64.sh b/automation/scripts/qemu-smoke-dom0less-arm64.sh
index b095a5008e30..a73cb24b7e52 100755
--- a/automation/scripts/qemu-smoke-dom0less-arm64.sh
+++ b/automation/scripts/qemu-smoke-dom0less-arm64.sh
@@ -121,7 +121,6 @@ mkdir proc
 mkdir run
 mkdir srv
 mkdir sys
-cp -ar ../binaries/dist/install/* .
 mkdir -p etc/local.d
 
 echo "#!/bin/bash
@@ -142,6 +141,7 @@ ${dom0_check}
 " > etc/local.d/xen.start
 chmod +x etc/local.d/xen.start
 cp ../binaries/rootfs.cpio.gz ../binaries/dom0-rootfs.cpio.gz
+cat ../binaries/toolstack.cpio.gz >> ../binaries/dom0-rootfs.cpio.gz
 find . | cpio -H newc -o | gzip >> ../binaries/dom0-rootfs.cpio.gz
 cd ..
 
diff --git a/automation/scripts/qubes-x86-64.sh b/automation/scripts/qubes-x86-64.sh
index 99c2ece304f0..a9696d2168c3 100755
--- a/automation/scripts/qubes-x86-64.sh
+++ b/automation/scripts/qubes-x86-64.sh
@@ -198,7 +198,6 @@ mkdir run
 mkdir srv
 mkdir sys
 mkdir -p etc/local.d
-cp -ar ../binaries/dist/install/* .
 cp -ar ../binaries/tests .
 cp -a ../automation/scripts/run-tools-tests tests/
 
@@ -232,8 +231,10 @@ else
 fi
 
 chmod +x etc/local.d/xen.start
+mkdir -p etc/xen
 echo "$domU_config" > etc/xen/domU.cfg
 
+mkdir -p etc/default
 echo "XENCONSOLED_TRACE=all" >> etc/default/xencommons
 echo "QEMU_XEN=/bin/false" >> etc/default/xencommons
 mkdir -p var/log/xen/console
@@ -243,6 +244,7 @@ if [ -n "$domU_check" ]; then
 fi
 # take base initrd and append test-specific files
 cp ../binaries/rootfs.cpio.gz ../binaries/dom0-rootfs.cpio.gz
+cat ../binaries/toolstack.cpio.gz >> ../binaries/dom0-rootfs.cpio.gz
 find . | cpio -H newc -o | gzip >> ../binaries/dom0-rootfs.cpio.gz
 cd ..
 
diff --git a/automation/scripts/xilinx-smoke-dom0-x86_64.sh b/automation/scripts/xilinx-smoke-dom0-x86_64.sh
index 52a0e05e3f1b..40f23f29582e 100755
--- a/automation/scripts/xilinx-smoke-dom0-x86_64.sh
+++ b/automation/scripts/xilinx-smoke-dom0-x86_64.sh
@@ -116,8 +116,7 @@ rm -rf rootfs
 mkdir -p rootfs
 cd rootfs
 mkdir boot proc run srv sys
-cp -ar ../binaries/dist/install/* .
-mkdir -p etc/local.d
+mkdir -p etc/local.d etc/xen etc/default
 echo "#!/bin/bash
 set -x
 export LD_LIBRARY_PATH=/usr/local/lib
@@ -133,6 +132,7 @@ cp ../binaries/bzImage boot/vmlinuz
 cp ../binaries/domU-rootfs.cpio.gz boot/initrd-domU
 copy_dom0_files
 cp ../binaries/rootfs.cpio.gz ../binaries/dom0-rootfs.cpio.gz
+cat ../binaries/toolstack.cpio.gz >> ../binaries/dom0-rootfs.cpio.gz
 find . | cpio -H newc -o | gzip >> ../binaries/dom0-rootfs.cpio.gz
 cd ..
 
diff --git a/automation/scripts/xilinx-smoke-dom0less-arm64.sh b/automation/scripts/xilinx-smoke-dom0less-arm64.sh
index 97190d0cbb9c..ab9205f29689 100755
--- a/automation/scripts/xilinx-smoke-dom0less-arm64.sh
+++ b/automation/scripts/xilinx-smoke-dom0less-arm64.sh
@@ -63,7 +63,6 @@ mkdir proc
 mkdir run
 mkdir srv
 mkdir sys
-cp -ar ../binaries/dist/install/* .
 
 mkdir -p etc/local.d
 echo "#!/bin/bash
@@ -77,6 +76,7 @@ ${dom0_check}
 " > etc/local.d/xen.start
 chmod +x etc/local.d/xen.start
 cp ../binaries/rootfs.cpio.gz ../binaries/dom0-rootfs.cpio.gz
+cat ../binaries/toolstack.cpio.gz >> ../binaries/dom0-rootfs.cpio.gz
 find . | cpio -H newc -o | gzip >> ../binaries/dom0-rootfs.cpio.gz
 cd ..
 
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Fri Apr 11 20:33:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 20:33:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.947825.1345469 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3L4I-0000mt-5w; Fri, 11 Apr 2025 20:33:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 947825.1345469; Fri, 11 Apr 2025 20:33: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 1u3L4I-0000m7-0Z; Fri, 11 Apr 2025 20:33:42 +0000
Received: by outflank-mailman (input) for mailman id 947825;
 Fri, 11 Apr 2025 20:33: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=5hfk=W5=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1u3L4H-0007Qw-54
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 20:33:41 +0000
Received: from fhigh-a3-smtp.messagingengine.com
 (fhigh-a3-smtp.messagingengine.com [103.168.172.154])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 40332cdc-1714-11f0-9eae-5ba50f476ded;
 Fri, 11 Apr 2025 22:33:39 +0200 (CEST)
Received: from phl-compute-03.internal (phl-compute-03.phl.internal
 [10.202.2.43])
 by mailfhigh.phl.internal (Postfix) with ESMTP id 09AAF1140174;
 Fri, 11 Apr 2025 16:33:39 -0400 (EDT)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-03.internal (MEProxy); Fri, 11 Apr 2025 16:33:39 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri,
 11 Apr 2025 16:33:37 -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: 40332cdc-1714-11f0-9eae-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:subject
	:subject:to:to; s=fm2; t=1744403619; x=1744490019; bh=O7uX55ccR6
	xGebFg3kRT0d2q6xGT5L2tU3KLCLv0anQ=; b=cQEJQzb3kbjuie54zfZlH5Ie7F
	FKXpp6x3zCkZmMgsb7wITuQjJF2w0ydVItdjUs6LHHVbbR6Z6NgiLTPqUkKuCI/G
	LJOvuZV/iQRdIRRLPHj6J3BEYTN73A9ipamSEA388Hx8aJE1b3ox4oH+Kn1qDea1
	Ahd/CZFOV2U+kCmZkzBQcdmnfucW+IXMe1SvDGp9hS/TOsJnJAuybi6OAUXqHcGB
	6a7UWonucr6R9NYFB2goHg16O5iLFBXYpamN8dgNZ9GApn1q27QFRTrmtwXxMN66
	DByEwIUPbNxo9gDZxKzo4JGY90D1UzLxod6Uth3gjny31mPXFt4OTjZypcBg==
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=fm2; t=1744403619; x=
	1744490019; bh=O7uX55ccR6xGebFg3kRT0d2q6xGT5L2tU3KLCLv0anQ=; b=J
	L6hwZjYnoJCqLj/gK5ic24i/dHlnCb95yDQggUSJvZhF+gJpSv1FxAN0dw6xLcac
	TrL+pLcp1pPgch5DhYDJDed+JnrOH7uxh0k42eMlt0U+jBEbFU/ZhDVtuFivp8Oi
	e5aYFWHazfIXERSwmt8dgQgQfhIydzP5aSluo3ZxBxnkp5DfLA5gfe5NpkvibSQo
	J8Ca6rUg7ye+ysnry2Em2iMcIg6nj1B2pC0j2jlPHjwcw96Wd2rykzcRA8dhwXZw
	y/BljCgpRCznBejHC8Y/r/lLtHf9pPvOU8+C9g5V7kmSaRV+g718bRQ6IgfhtkxP
	zKoEb6EZeOQ6EWiBulEPA==
X-ME-Sender: <xms:onz5Z37G-EMqnQdPDANM-bQcSBSEe_k4Jh0HWPUv21JHmB5PUy1ZEw>
    <xme:onz5Z87TX_tOJl4Qxq-nI7ccdScynFVJyaXUehTKV1GWgDeCE_WgMLNktbaY6iuIU
    AyxdoOAq_VpbQ>
X-ME-Received: <xmr:onz5Z-eaYP3CKPiMU6nIr0oSqz5bKgmXeiMevEHOz-4oHOydcv72qQ2jLGv3LSnMW0M3u79SV1M3Vw8Ru36xcCEvNVOWMMqCc6Y9fS-Mbt9QAyzNr2s>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvuddvjeekucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
    pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
    gvnhhtshculddquddttddmnecujfgurhephffvvefufffkofgjfhggtgfgsehtkeertder
    tdejnecuhfhrohhmpeforghrvghkucforghrtgiihihkohifshhkihdqifpkrhgvtghkih
    cuoehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhmqeen
    ucggtffrrghtthgvrhhnpefgueduhefgvdefheehudejheefudevueeghfekhfehleegve
    duteeuiedugffgffenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhl
    fhhrohhmpehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtoh
    hmpdhnsggprhgtphhtthhopeelpdhmohguvgepshhmthhpohhuthdprhgtphhtthhopeig
    vghnqdguvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdprhgtphhtth
    hopegrnhgurhgvfidrtghoohhpvghrfeestghithhrihigrdgtohhmpdhrtghpthhtohep
    mhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdprhgtph
    htthhopegrnhhthhhonhihrdhpvghrrghrugesvhgrthgvshdrthgvtghhpdhrtghpthht
    ohepmhhitghhrghlrdhorhiivghlsegrmhgurdgtohhmpdhrtghpthhtohepjhgsvghulh
    hitghhsehsuhhsvgdrtghomhdprhgtphhtthhopehjuhhlihgvnhesgigvnhdrohhrghdp
    rhgtphhtthhopehrohhgvghrrdhprghusegtihhtrhhigidrtghomhdprhgtphhtthhope
    hsshhtrggsvghllhhinhhisehkvghrnhgvlhdrohhrgh
X-ME-Proxy: <xmx:onz5Z4LqJBG9JVWXq7Yj9XNyuXeDziNGw_b9ormXeBfWftLT33AHyg>
    <xmx:onz5Z7JphJ-ZGTE3RpJQ2avDhdnVEvywS4TxtBKQnc2XimG8sDphKA>
    <xmx:onz5ZxyJVS_am1gpGqtkZbQPnT1tTrtllSjUeyD3SA8jkK8_ARD8VA>
    <xmx:onz5Z3IaCCFlz4SOWc0X1cB7tCmXznaNKloi1ZX6DyrPAYQ94LjoaA>
    <xmx:o3z5Z1bOBApZCmsldbRV2zbuuEPnQo8Ne7bSbBXD6Zieh7GdnorUoil2>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH test-artifacts v3 8/7] Enable CONFIG_USB_RTL8152 in kernel for hw12 runner
Date: Fri, 11 Apr 2025 22:32:20 +0200
Message-ID: <20250411203336.585215-1-marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <cover.146eb3617cc9cf442dd4fc7a0a8950fb1bc191c8.1744403499.git-series.marmarek@invisiblethingslab.com>
References: <cover.146eb3617cc9cf442dd4fc7a0a8950fb1bc191c8.1744403499.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

It uses this USB network interface.

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
---
 scripts/build-linux.sh | 1 +
 1 file changed, 1 insertion(+)

diff --git a/scripts/build-linux.sh b/scripts/build-linux.sh
index 49b5ebe..af684d6 100755
--- a/scripts/build-linux.sh
+++ b/scripts/build-linux.sh
@@ -32,6 +32,7 @@ case $UNAME in
             | grep 'XEN' \
             | grep '=m' \
             | sed 's/=m/=y/g' >> .config
+        ./scripts/config --enable USB_RTL8152
         ;;
 
     aarch64)
-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Fri Apr 11 20:37:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 20:37:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.947868.1345479 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3L7v-0003HC-Mw; Fri, 11 Apr 2025 20:37:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 947868.1345479; Fri, 11 Apr 2025 20:37: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 1u3L7v-0003H5-Jl; Fri, 11 Apr 2025 20:37:27 +0000
Received: by outflank-mailman (input) for mailman id 947868;
 Fri, 11 Apr 2025 20:37: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=cS7z=W5=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u3L7u-0003Gz-Fv
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 20:37:26 +0000
Received: from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com
 [2a00:1450:4864:20::32b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c65037a9-1714-11f0-9ffb-bf95429c2676;
 Fri, 11 Apr 2025 22:37:24 +0200 (CEST)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-43ea40a6e98so21656695e9.1
 for <xen-devel@lists.xenproject.org>; Fri, 11 Apr 2025 13:37:24 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43f2075fc99sm99736345e9.29.2025.04.11.13.37.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 11 Apr 2025 13:37:22 -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: c65037a9-1714-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744403844; x=1745008644; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=BldrPVfIQESeMIsapKQksSXRFPvAdGURowrke8ew/hQ=;
        b=lg4/9otxwtXpIYiIjJUsP1AaDLiLcPAixfZdvj+wahCslPJM5FvWUvPHgg18On0ID+
         7HJ3T4rjS5o0hujX7gwZo5FSWtYCuzdJ8ZvDMvvX0l/61GnY3ZtZXGJvXmlZquCcq7+s
         cyw9Xu4eTqRLd/odnWbUD9z9ILy/D7k6iXVEs=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744403844; x=1745008644;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=BldrPVfIQESeMIsapKQksSXRFPvAdGURowrke8ew/hQ=;
        b=NeUQL00VzOlqZNQgs1Jnv76B+TlWb9fVC5KISynmtzhomFz/82fIGV6agWpwjwwrRE
         S4LB1uAHcuVbu89brOYiuG4vN00+7/hBQ9yKJxQqMhyQm8if1CjRDnH9K0dQZDz8eAde
         ZzVc7kuDlfTNrP9B44ohbQplPhUfx6uRh/aoJSNOCPqkM6Z/c9d59zzgj0wzOdslWwo/
         hwKoMs1Kv+z6953D6oBGxxWo3GTwgr9TQPRXKVtio0PIY8zrA3p51R5r9+/i86GXdIkf
         My5k0M8Q14wBssrbm5FQ0GlUXEr3bw65KMIj1xyWpxWe4LXnNfoPqCdFVMQLaauMTI58
         Cy8g==
X-Forwarded-Encrypted: i=1; AJvYcCVRL6IwmYx1HYbCeqolNsvAcVjSRqd3XIjLrpw1OyqLn4bjHl7xGwLSYhBjyXEl/cX+FnsmEvuo7K0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwouvsXj8QR34Awl2jDY/XCiiD84IYyiYDcCD8JdHiXgVtPcajn
	33Lggi9j9UzWk8e+HnDW4omCK44AZBi5yXMuCdWi27ZMWEWqbNmezXzd66bH9Y4=
X-Gm-Gg: ASbGncvz7ea5kTX3fGP6txfeS9omPbOnOsW3X12b/sOIq/Z2DLZb0juEH6h2cdKqCmf
	xsNJsImY9LiXOuMXaJY6f/WcdVqEW85OrTauhAxieHlFj/1U/RQzoqTUghVgwEwWPw6A4qRD1j4
	pTlRRGhWIIRN0DwZ+9yISRGmP2SnaT8Lpv22MqPtmld2/FQd+9gVjtKVaoIhl7uea91acCvgX12
	EHmORXg0SGPeYYexUc4mMyaGmZx2//9Znk0vxNyl8IhfD5qvP+UOjf+PV7zIlTgJodLwLv1Yw25
	U/K2cY7EWPrbYxKC7hKv2ERYKomBHyUz6dXOHSQaKVqur8iTRWx3idc9eamLHpnSpEEX7A4IyEO
	VvNjhmw==
X-Google-Smtp-Source: AGHT+IH0QL9ucguHRKkteX//RYL6CZhIksBdPwm28e/uI1U15yPd0MwmCGPPFqt6ygOJ+MbiagncUw==
X-Received: by 2002:a05:600c:4e13:b0:43d:4686:5cfb with SMTP id 5b1f17b1804b1-43f3a9add63mr42820185e9.27.1744403843830;
        Fri, 11 Apr 2025 13:37:23 -0700 (PDT)
Message-ID: <76cbff87-3afd-43f1-a1e0-716a14074a32@citrix.com>
Date: Fri, 11 Apr 2025 21:37:22 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 1/7] CI: wait for Xen to start before waiting for test
 to complete
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, xen-devel@lists.xenproject.org
Cc: Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>
References: <cover.146eb3617cc9cf442dd4fc7a0a8950fb1bc191c8.1744403499.git-series.marmarek@invisiblethingslab.com>
 <3f1ef15b54a84573576e647314ec61ea43d4e3af.1744403499.git-series.marmarek@invisiblethingslab.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: <3f1ef15b54a84573576e647314ec61ea43d4e3af.1744403499.git-series.marmarek@invisiblethingslab.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 11/04/2025 9:32 pm, Marek Marczykowski-Górecki wrote:
> Add additional stage in console output parsing - wait for first message
> from Xen. The message is defined via BOOT_MSG variable. This has two
> effects:
> - distinguishes failing Xen to load at all from later test failures
> - resets timeout when Xen starts loading
>
> The latter is especially relevant for hardware tests where firmware +
> network boot may take some time before Xen starts booting. The two-stage
> timeout is more robust solution than increasing the overall timeout.
> The issue has been observed on some dom0pvh-hvm jobs, at least on
> runners hw3 and hw11. This patch is a first stage before qubes-x86-64.sh
> is switched to use expect in the next stage.
>
> While at it, consistently use 'expect -re' for all matches. This
> especially allows matching newlines ("\n"), which will become relevant
> in the next patch. And document variables used in console.exp.
>
> Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>

Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Fri Apr 11 20:37:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 20:37:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.947877.1345489 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3L8O-0003kV-VO; Fri, 11 Apr 2025 20:37:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 947877.1345489; Fri, 11 Apr 2025 20: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 1u3L8O-0003kO-RX; Fri, 11 Apr 2025 20:37:56 +0000
Received: by outflank-mailman (input) for mailman id 947877;
 Fri, 11 Apr 2025 20:37: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=cS7z=W5=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u3L8N-0003Gz-6d
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 20:37:55 +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 d7809178-1714-11f0-9ffb-bf95429c2676;
 Fri, 11 Apr 2025 22:37:53 +0200 (CEST)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-39c266c2dd5so1996066f8f.3
 for <xen-devel@lists.xenproject.org>; Fri, 11 Apr 2025 13:37:53 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39eae979620sm3107518f8f.52.2025.04.11.13.37.51
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 11 Apr 2025 13:37:52 -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: d7809178-1714-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744403872; x=1745008672; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=JzBENLeE+61Pc4t7dtnNaPo2e2yH9jenXq3NFXWnvOg=;
        b=AhUkkQpoHnoAbtM6rjzNvN7niUZcEN1yh+zsaxiYh5zDzAOWo2gLYMX+PeF9syVYjr
         MLMp+R+VjBRfjKLNxx3ljAi1eOd7N3zRuQJzLKfpPi+wJN4x3Y625lqTkFBzUk07Udjo
         mvusJATyYDF85NDZOo1yR9uEt5Lm2CfxhhTqQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744403872; x=1745008672;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=JzBENLeE+61Pc4t7dtnNaPo2e2yH9jenXq3NFXWnvOg=;
        b=OQQ0RGTyUOWBeyy9vDut9k0KjfsXQQLD3AqjlQGZ/2hVAdIFsV2SkX6OiHuKlHoxRk
         3IkhqZNKsUka2GLzIWVoufEurM2PwYI5ErYzeOwxuDSlOJZM1GRqaUEb/YiuooRzqn7d
         e7OSpBW0jNHFb6lNkK/ZOLk2GAfVcI6GWEqvkoT4tlai7JD8SzsRBQOZysuywQO4KLsj
         BREtn9TcoU6hD0Mb1cArFh6P9dDT60kfi7PGjOwhtpimoOk3cdJYsOGRgj7P2crLZlim
         L0l8BnWBb4t7VhUjSWEqFNRb60pqfWQcxrtVjLZehwtIuQv4dKFOMRuko6E+zR2VWbRv
         44vA==
X-Forwarded-Encrypted: i=1; AJvYcCWsxhTmBezDPf+UjYsEIUTLL2hAgA79z4nvbi5aQbbGS3ijVSUIVHTvJvx6LcJRM8e1tAou/hKz6Oo=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxwGLCREbSYm/d6M5ezFhwUsd461B+NWs9Fsp4AHHoBpGQoQoE2
	CBocA1hJJltA33B14BEDRCTxiXjp1i37mk9ldhm4vjcEmVYt6Rw6Wsh44N2Is1Y=
X-Gm-Gg: ASbGncupEgGMWsQfY2qjOvWy7s9r46ATYqhiGA/cl36c+M6qiT0eQGgZBrMcrA9WHHJ
	OwfR8Wx7NYma1zY4bSatS+Uhr18ZNHYj+fHYo9BjgpXmiwW5UA/Z43wAzNLhqKsfYeCwF3bqB8e
	psTmfqFMuRl7r4UqcEqIumjAoju2j1dD9k5zYrmwy1tOz9iTO3AnCacx2j0WxK63AZK1jzJrs33
	rTExUiT3n4Ek+yLkhFHNbOl0ZJ0yQS+YRKiPUcgVTEHWSJohSb4uyO7+Dk9levlBdjFnPg5FSqI
	dRgZr4yXc8smAZcKoAsLX8WaKqSr9n8p+zJJ5jYWYUdq9RCYbHzu0/yZm9b3tMLmBT7zT7OSc+y
	0t5JaEw==
X-Google-Smtp-Source: AGHT+IEaNCgRQGqbTgs9ZMdxnWmnLGIrTtyufmQWly/IkKrDebyAc/AomGwyOIQj1UuXjFBHnKe15A==
X-Received: by 2002:a05:6000:4205:b0:391:3cb0:3d8d with SMTP id ffacd0b85a97d-39ea5201388mr2692321f8f.19.1744403872498;
        Fri, 11 Apr 2025 13:37:52 -0700 (PDT)
Message-ID: <108d72f6-c384-4d80-b354-9115c1bb0355@citrix.com>
Date: Fri, 11 Apr 2025 21:37:51 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 2/7] CI: fix waiting for final test message
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, xen-devel@lists.xenproject.org
Cc: Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>
References: <cover.146eb3617cc9cf442dd4fc7a0a8950fb1bc191c8.1744403499.git-series.marmarek@invisiblethingslab.com>
 <ad1db17ffa1883b1aa21a8480e4fb628a6d0c929.1744403499.git-series.marmarek@invisiblethingslab.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: <ad1db17ffa1883b1aa21a8480e4fb628a6d0c929.1744403499.git-series.marmarek@invisiblethingslab.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 11/04/2025 9:32 pm, Marek Marczykowski-Górecki wrote:
> Expect normally discards initial part of its buffer after matching the
> patter, before looking for the next one. If both PASSED and LOG_MSG
> happen to be in the buffer at the same time, depending on their order,
> only one will be matched and the waiting for the other will timeout.
> Example expect -d output of this happening (parts eclipsed for brevity):
>
>     expect: does "\r\r\r\nWelcome to Alpine Linux 3.18\r\r\r\n...\r\r\r\r\n(domU) + echo 'pci test passed'\r\r\r\r\n(domU) pci test passed\r\r\r\r..." (spawn_id exp4) match regular expression "pci test passed"? Gate "pci test passed"? gate=yes re=yes
>     ...
>     Gate keeper glob pattern for '\nWelcome to Alpine Linux' is '
>     Welcome to Alpine Linux'. Activating booster.
>     expect: does "'\r\r\r\r\n(domU) pci test passed\r\r\r\r\n(domU)  [ ok ]\r\r\r\r\n(domU)  [ ok ]\r\r\r\r\n(domU) \r\r\r\r\r\n(domU) domU Welcome to Alpine Linux 3.18\r\r\r\r\n(domU) \rKernel 6.6.56 on an x86_64 (/dev/hvc0)\r\r\r\r\n(domU) \r\r\r\r\r\n" (spawn_id exp4) match regular expression "\nWelcome to Alpine Linux"? Gate "\nWelcome to Alpine Linux"? gate=no
>
> Fix this by using -notransfer flag to keep matched part in the buffer.
>
> Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>

Acked-by: Andrew Cooper <andrew.cooper3@citix.com>


From xen-devel-bounces@lists.xenproject.org Fri Apr 11 20:40:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 20:40:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.947899.1345498 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3LAy-0005No-EK; Fri, 11 Apr 2025 20:40:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 947899.1345498; Fri, 11 Apr 2025 20: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 1u3LAy-0005Nh-Bm; Fri, 11 Apr 2025 20:40:36 +0000
Received: by outflank-mailman (input) for mailman id 947899;
 Fri, 11 Apr 2025 20: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=cS7z=W5=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u3LAx-0005Nb-Gg
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 20:40:35 +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 371f13c9-1715-11f0-9ffb-bf95429c2676;
 Fri, 11 Apr 2025 22:40:33 +0200 (CEST)
Received: by mail-wr1-x432.google.com with SMTP id
 ffacd0b85a97d-391342fc0b5so1775506f8f.3
 for <xen-devel@lists.xenproject.org>; Fri, 11 Apr 2025 13:40:33 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39eaf4458a8sm3191239f8f.99.2025.04.11.13.40.32
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 11 Apr 2025 13:40:32 -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: 371f13c9-1715-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744404033; x=1745008833; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=/jhkdQYzSi2KV1XIfQ25etCfDjFCQLLMxRgqOhVmfbk=;
        b=MkF/mE4Azj/A7jbt/IoWYVQV2CakbWhx8whSY9FUO9c1ZyelxWvx0z9YTvQJ4kpcus
         2xGtASKX7RfVBZIXWH9sk8YhNhF8J7WHGaYWKN+hKnWtfKaxvF7K7N/L2LUm/XPJoBZF
         ZCtcpr+xlyRp3w5rwMHfAYUaDLeCNlpmpq+M0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744404033; x=1745008833;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=/jhkdQYzSi2KV1XIfQ25etCfDjFCQLLMxRgqOhVmfbk=;
        b=kvZvCFmu7U/hQTKtuG9/Rh4l4SrMqisQJFVZen6p3Op4u/Qp4EBRKKiN2OeMZi+zf3
         /DbWkCoe9MlB6Xylc5yX4P0gsQLoJqI8vfhyGj9P8sICW3btRLkp9n8F5ZNvUhbfw9OB
         4iJkAsC7MY+7BjEIvKw51QybPizZGg5PvfVL/SEAB4hAKyKjezeCAMSKZeOyYgxvh77k
         SWjvrMC+E+9OZHBAO5pcfQbsyQIB27b+Z7M1iDQrGwX5XOzHtgl9MoK9xYQxin6lWwgf
         Wqf6Zn4KN1NGb3jnxvRLM7KdOPgzL3hDlsQ0qn5UutVSX/t8HbDlCgMjcXAIeSa4esYy
         6t+Q==
X-Forwarded-Encrypted: i=1; AJvYcCUpyE5WU3u8VrxboL14TpzoE96V/1hjHPauxhc630YNvn5QCWJxgujO8fc/mgOFg7IM8MTvaft5+r8=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxj9dIXZ5Y9NAnhxWQc/s9SWZ+c2GhPAV0QHBy1Om8QF8FhFTwM
	FHU4EXk/BKyUDS8cZlKD8iP0IJWwrlkh/qJ7tAdXakbdTRZSQZQJDz0PYCLl9vkTWDedPvK/2O5
	sF2A=
X-Gm-Gg: ASbGnctwUg6kn3mzkL26ZCgR7CUpDuqQHByKzXqvjPJ3ESOfwZyqr6TDX79lE+vJCOj
	A3iwdhugV1bmXBEElQbERnhYmpIyeRRmDrWD/WxJSA6VJ5JmyloqriGzdK8jwVTp24STO0Au51R
	P/QdrHBFMH7DujN90PUFGPe78nKgekKuI0ufGjalxI6+h/cDcgNKYO5vrtMzS5XHUSI3Lf/QRNy
	3XayPwAGbahuccDOmvrdjr/X3UiFyWc0nGjOZuTJ2TRuSbEu2+71a18yozpegjTPpf5h5XKAW3m
	u9F0NttB8xHirXkbvxh1Q8WfYogvpWD0iRt6k+alXL64iHkoubQv0S2qfugskt2W7zzNtSUBpqH
	bZPNWmw==
X-Google-Smtp-Source: AGHT+IGd8P4AgZgVdN+aNRRRavW0QQ+G8dloJ3221pXYb6klRgveiEITpMR/TqoeYiOJiVT5zLxu0g==
X-Received: by 2002:a05:6000:1448:b0:39c:140b:feec with SMTP id ffacd0b85a97d-39ea51f4081mr4166508f8f.7.1744404032940;
        Fri, 11 Apr 2025 13:40:32 -0700 (PDT)
Message-ID: <fde17938-a7e9-4e31-9b77-77080525294e@citrix.com>
Date: Fri, 11 Apr 2025 21:40:31 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 3/7] CI: switch qubes runners to use console.exp
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, xen-devel@lists.xenproject.org
Cc: Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>
References: <cover.146eb3617cc9cf442dd4fc7a0a8950fb1bc191c8.1744403499.git-series.marmarek@invisiblethingslab.com>
 <668fb90bbc5e418f6aea85e81d90343d834a066f.1744403499.git-series.marmarek@invisiblethingslab.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: <668fb90bbc5e418f6aea85e81d90343d834a066f.1744403499.git-series.marmarek@invisiblethingslab.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 11/04/2025 9:32 pm, Marek Marczykowski-Górecki wrote:
> diff --git a/automation/scripts/console.exp b/automation/scripts/console.exp
> index 834a08db1b95..bdb1dd982003 100755
> --- a/automation/scripts/console.exp
> +++ b/automation/scripts/console.exp
> @@ -45,6 +49,15 @@ if {[info exists env(BOOT_MSG)]} {
>      expect -re "$env(BOOT_MSG)"
>  }
>  
> +if {[info exists env(WAKEUP_CMD)]} {
> +    expect -re "$env(SUSPEND_MSG)"
> +
> +    # keep it suspended a bit, then wakeup
> +    sleep 30

Do we need 30s here?  Couldn't we get away with 10?

Either way, Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Fri Apr 11 20:43:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 20:43:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.947958.1345509 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3LDY-00087r-RZ; Fri, 11 Apr 2025 20:43:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 947958.1345509; Fri, 11 Apr 2025 20:43: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 1u3LDY-00087k-Nn; Fri, 11 Apr 2025 20:43:16 +0000
Received: by outflank-mailman (input) for mailman id 947958;
 Fri, 11 Apr 2025 20:43: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=5hfk=W5=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1u3LDX-00087Z-Q0
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 20:43:15 +0000
Received: from fhigh-a3-smtp.messagingengine.com
 (fhigh-a3-smtp.messagingengine.com [103.168.172.154])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 966b037b-1715-11f0-9ffb-bf95429c2676;
 Fri, 11 Apr 2025 22:43:14 +0200 (CEST)
Received: from phl-compute-11.internal (phl-compute-11.phl.internal
 [10.202.2.51])
 by mailfhigh.phl.internal (Postfix) with ESMTP id EB5ED1140282;
 Fri, 11 Apr 2025 16:43:12 -0400 (EDT)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-11.internal (MEProxy); Fri, 11 Apr 2025 16:43:12 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri,
 11 Apr 2025 16:43:11 -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: 966b037b-1715-11f0-9ffb-bf95429c2676
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=fm2; t=1744404192;
	 x=1744490592; bh=ms9fonwwnF6/fn9N0WAjY/BQCiY5wjtYy62hczZ2QEs=; b=
	cAeF61xUMlKZJ1BsDFsYJjaX3MHVCF0n17JtasanGWHys+lDcbd9WyP0rsgzAogV
	rw+mnf933m4zV5rKgoGlxiD7ZajVQ+6hiUzOQWYcQczxctNru9wqM1h7LTWrDI8j
	CcC5Bv3LlrOWe/WN161Vj525w6WoqF1/xmdoBAwc7L2SRIerykVb1/I1rTm1ZuIs
	LRgl+aWQtG+1W0MLwViKBjq07dg0ZHc/scOhBg5pufH31FKLLo+0XqwaTl+g3vn0
	fjEm03424qLuWJ/dQ4xuH4JtKmv9BFSsJhsi8bATM7nEFnQysQdcHfacjR0WqbOR
	eE6KWe/zmaZXOgvA7A/prg==
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=fm2; t=
	1744404192; x=1744490592; bh=ms9fonwwnF6/fn9N0WAjY/BQCiY5wjtYy62
	hczZ2QEs=; b=pw0evbTROkex5XByFpqbYxihXGX7/l6iIgdq02sxADAyrP2MN3n
	s0piqb3/k1wJhWL4k6J1+QckmDeQNJ2nxY8T9eD/A8VnUDoZU97++zCebxjQAGOU
	hRxPXMBrKp1sw81dYS5IX6MOPsOYnBJw9/czFJwd/5wRD46MpvrtGQQp1LMysw8u
	dWJsGZsu4V7+XUzLqM6PoJ+eym4DeKZoC4qgUcUBmXPIcVBh9kIbGtAebtlpfHoq
	ml4Qq2PDwzF8mmsvjKFYyjvA/FEzGOYUeTw30nsm4Pmr4Q6mGQyL7nCezjgiJH38
	waapm6mSCnMytx/OEu3QLo4ChSr6/gZ0hFg==
X-ME-Sender: <xms:4H75Z5Vmqipkee03QoN590tm9H-n8HjWxe4XLuG92yVA9Z3h8SN_lQ>
    <xme:4H75Z5mnCVLRu8Bhk-l5qus6y0HRB4TPB7dGrNjmxpIAPM-KVwwt5gde2HVlCc5rP
    _gScpw5Kj8n3g>
X-ME-Received: <xmr:4H75Z1YqHMEYHnpSrKzpcoTvEhIytm7y5O1fkfQWWpbFREF9-WoBPKXXHUTSkccedx-n5DDLwj_Tnmv3nEqslhQJvsmJqsDFOg>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvuddvkedtucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
    pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
    gvnhhtshculddquddttddmnecujfgurhepfffhvfevuffkfhggtggujgesghdtreertddt
    jeenucfhrhhomhepofgrrhgvkhcuofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuc
    eomhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecu
    ggftrfgrthhtvghrnhepgfduleetfeevhfefheeiteeliefhjefhleduveetteekveettd
    dvgeeuteefjedunecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhf
    rhhomhepmhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomh
    dpnhgspghrtghpthhtohepgedpmhhouggvpehsmhhtphhouhhtpdhrtghpthhtoheprghn
    ughrvgifrdgtohhophgvrhefsegtihhtrhhigidrtghomhdprhgtphhtthhopeigvghnqd
    guvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdprhgtphhtthhopegt
    rghrughovgestggrrhguohgvrdgtohhmpdhrtghpthhtohepshhsthgrsggvlhhlihhnih
    eskhgvrhhnvghlrdhorhhg
X-ME-Proxy: <xmx:4H75Z8W2Mmdvh-_GLi6Wc-00ok8jtSQhPkBFQCXA_nz9y6GL_pLTdg>
    <xmx:4H75ZzmUrBCv4ZE4kM-_MTcOvex-7q7VcxztfouC2PPhCtl-B2XRnQ>
    <xmx:4H75Z5fuGLoXdeRGphDBKV3VMQaqWdRf2QhoYY1VCK6fD9LsMDpjaQ>
    <xmx:4H75Z9HRyvpYRXxTwVNJnJjcS2_vgddrK5W6-yFGU4Z4kxnhTv8NKQ>
    <xmx:4H75Z12HFn7w8YieSzmKG0vabO4xV8z2lyBm5OBL3NmJtOCRbZIHpyO5>
Feedback-ID: i1568416f:Fastmail
Date: Fri, 11 Apr 2025 22:43:09 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: xen-devel@lists.xenproject.org, Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH v3 3/7] CI: switch qubes runners to use console.exp
Message-ID: <Z_l-3fXeTHA6N4Z_@mail-itl>
References: <cover.146eb3617cc9cf442dd4fc7a0a8950fb1bc191c8.1744403499.git-series.marmarek@invisiblethingslab.com>
 <668fb90bbc5e418f6aea85e81d90343d834a066f.1744403499.git-series.marmarek@invisiblethingslab.com>
 <fde17938-a7e9-4e31-9b77-77080525294e@citrix.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="M+7URqF4FjX/zdFP"
Content-Disposition: inline
In-Reply-To: <fde17938-a7e9-4e31-9b77-77080525294e@citrix.com>


--M+7URqF4FjX/zdFP
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Fri, 11 Apr 2025 22:43:09 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: xen-devel@lists.xenproject.org, Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH v3 3/7] CI: switch qubes runners to use console.exp

On Fri, Apr 11, 2025 at 09:40:31PM +0100, Andrew Cooper wrote:
> On 11/04/2025 9:32 pm, Marek Marczykowski-G=C3=B3recki wrote:
> > diff --git a/automation/scripts/console.exp b/automation/scripts/consol=
e.exp
> > index 834a08db1b95..bdb1dd982003 100755
> > --- a/automation/scripts/console.exp
> > +++ b/automation/scripts/console.exp
> > @@ -45,6 +49,15 @@ if {[info exists env(BOOT_MSG)]} {
> >      expect -re "$env(BOOT_MSG)"
> >  }
> > =20
> > +if {[info exists env(WAKEUP_CMD)]} {
> > +    expect -re "$env(SUSPEND_MSG)"
> > +
> > +    # keep it suspended a bit, then wakeup
> > +    sleep 30
>=20
> Do we need 30s here?=C2=A0 Couldn't we get away with 10?

I want to be absolutely sure it got suspended (target system actually
suspends only after printing the message), and I've seen some drivers
taking a bit more time...

> Either way, Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>

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

--M+7URqF4FjX/zdFP
Content-Type: application/pgp-signature; name=signature.asc

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmf5ft0ACgkQ24/THMrX
1ywlowf/W6xtAonQYU0G4f9NiAEYVKRgXyyVIHPYmpcU06Bu2mvvDYTpqMlgTnYL
c8CEX+2b3zD95t4afTO/0yKeln0JX4772Z8WOOE851uwX/pm/J+5AyTJV3iwKXW9
PPfZmGGDhNQO0yhPtME0yQlv8h0evhuVy2gFxDsrnDMUs79Y1HyJN+zKlwHM4XTC
ClnnMpsPNJ5W5I57E35/FyrimdwoeG46MPTbpZjZnfEffc+rAH2RQyciBkzxg3JS
+n6B1O3DhyZDXJYojboOa1d3+8aLx6v+6ybQAaJhBuaL4gUheDxt0e0Eq2U/+Vut
GQhKL0E3juW2nNvjKP/+qgkdxWxcaQ==
=qn1J
-----END PGP SIGNATURE-----

--M+7URqF4FjX/zdFP--


From xen-devel-bounces@lists.xenproject.org Fri Apr 11 20:52:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 20:52:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.947969.1345519 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3LM4-0002zT-KE; Fri, 11 Apr 2025 20:52:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 947969.1345519; Fri, 11 Apr 2025 20: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 1u3LM4-0002zM-Hg; Fri, 11 Apr 2025 20:52:04 +0000
Received: by outflank-mailman (input) for mailman id 947969;
 Fri, 11 Apr 2025 20:52: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=GsCk=W5=zytor.com=hpa@srs-se1.protection.inumbo.net>)
 id 1u3LM3-0002uJ-58
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 20:52:03 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id cc66ac36-1716-11f0-9ffb-bf95429c2676;
 Fri, 11 Apr 2025 22:52:00 +0200 (CEST)
Received: from [127.0.0.1] ([76.133.66.138]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53BKokUU689207
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NO);
 Fri, 11 Apr 2025 13:50:46 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cc66ac36-1716-11f0-9ffb-bf95429c2676
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53BKokUU689207
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025032001; t=1744404648;
	bh=RSxA6WjXfzTzp9cSLSXzWSj0aQbPDgdMx3rGgv5vZFo=;
	h=Date:From:To:CC:Subject:In-Reply-To:References:From;
	b=MaUaGM8ptiyNi5JNPWt6NXDw8PAuW9ldRndGnP2Ms2a5WhDxGDZmG9wZSREChComZ
	 5WZ/ACqI8QPIApW2H+3S60a8ZuhEXXT3/4CoGujji3jvmFlwVOFHC9tj+gJU0zYj76
	 fLPUlJt1NAlnsIICrT1IBvg8ssoIvqY4BrCd0zWR2qJWd/gvqDxfJWqsioW+lcez2s
	 0OjBs72/2ECaksg5m8Zdd+dsabWYMF97MvLqFSlWKKuRnrqMJtIZxV9Y2X0uNN/Twt
	 qct8mM81m1xNoj3uyJYNXFGbNRMRc88O5YTcpLTHLdVRgYOnAL34JelLSSB8abrZsj
	 FVc2EtkpGepIg==
Date: Fri, 11 Apr 2025 13:50:45 -0700
From: "H. Peter Anvin" <hpa@zytor.com>
To: Xin Li <xin@zytor.com>, Sean Christopherson <seanjc@google.com>
CC: linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org,
        linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
        linux-edac@vger.kernel.org, kvm@vger.kernel.org,
        xen-devel@lists.xenproject.org, linux-ide@vger.kernel.org,
        linux-pm@vger.kernel.org, bpf@vger.kernel.org, llvm@lists.linux.dev,
        tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, jgross@suse.com,
        andrew.cooper3@citrix.com, peterz@infradead.org, acme@kernel.org,
        namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, luto@kernel.org,
        boris.ostrovsky@oracle.com, kys@microsoft.com, haiyangz@microsoft.com,
        decui@microsoft.com
Subject: =?US-ASCII?Q?Re=3A_=5BRFC_PATCH_v1_10/15=5D_KVM=3A_VMX=3A_Use_WR?=
 =?US-ASCII?Q?MSRNS_or_its_immediate_form_when_available?=
User-Agent: K-9 Mail for Android
In-Reply-To: <41eb2d08-1b2d-4ca8-bcb7-f5f4611f91a9@zytor.com>
References: <20250331082251.3171276-1-xin@zytor.com> <20250331082251.3171276-11-xin@zytor.com> <Z_hTI8ywa3rTxFaz@google.com> <41eb2d08-1b2d-4ca8-bcb7-f5f4611f91a9@zytor.com>
Message-ID: <39ECA4CA-9CBC-4F72-B52E-9BD06DBF9B6D@zytor.com>
MIME-Version: 1.0
Content-Type: text/plain;
 charset=utf-8
Content-Transfer-Encoding: quoted-printable

On April 11, 2025 9:18:08 AM PDT, Xin Li <xin@zytor=2Ecom> wrote:
>On 4/10/2025 4:24 PM, Sean Christopherson wrote:
>>> +/*
>>> + * Write EAX to MSR_IA32_SPEC_CTRL=2E
>>> + *
>>> + * Choose the best WRMSR instruction based on availability=2E
>>> + *
>>> + * Replace with 'wrmsrns' and 'wrmsrns %rax, $MSR_IA32_SPEC_CTRL' onc=
e binutils support them=2E
>>> + */
>>> +=2Emacro WRITE_EAX_TO_MSR_IA32_SPEC_CTRL
>>> +	ALTERNATIVE_2 __stringify(mov $MSR_IA32_SPEC_CTRL, %ecx;		\
>>> +				  xor %edx, %edx;				\
>>> +				  mov %edi, %eax;				\
>>> +				  ds wrmsr),					\
>>> +		      __stringify(mov $MSR_IA32_SPEC_CTRL, %ecx;		\
>>> +				  xor %edx, %edx;				\
>>> +				  mov %edi, %eax;				\
>>> +				  ASM_WRMSRNS),					\
>>> +		      X86_FEATURE_WRMSRNS,					\
>>> +		      __stringify(xor %_ASM_AX, %_ASM_AX;			\
>>> +				  mov %edi, %eax;				\
>>> +				  ASM_WRMSRNS_RAX; =2Elong MSR_IA32_SPEC_CTRL),	\
>>> +		      X86_FEATURE_MSR_IMM
>>> +=2Eendm
>> This is quite hideous=2E  I have no objection to optimizing __vmx_vcpu_=
run(), but
>> I would much prefer that a macro like this live in generic code, and th=
at it be
>> generic=2E  It should be easy enough to provide an assembly friendly eq=
uivalent to
>> __native_wrmsr_constant()=2E
>
>Will do=2E

This should be coming anyway, right?


From xen-devel-bounces@lists.xenproject.org Fri Apr 11 21:07:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 21:07:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.947987.1345528 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3Lb2-0007F7-Rv; Fri, 11 Apr 2025 21:07:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 947987.1345528; Fri, 11 Apr 2025 21:07: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 1u3Lb2-0007F0-PL; Fri, 11 Apr 2025 21:07:32 +0000
Received: by outflank-mailman (input) for mailman id 947987;
 Fri, 11 Apr 2025 21:07: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=cS7z=W5=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u3Lb0-0007Er-SJ
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 21:07:30 +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 fa73b4c7-1718-11f0-9eae-5ba50f476ded;
 Fri, 11 Apr 2025 23:07:30 +0200 (CEST)
Received: by mail-wr1-x435.google.com with SMTP id
 ffacd0b85a97d-3912d2c89ecso2041990f8f.2
 for <xen-devel@lists.xenproject.org>; Fri, 11 Apr 2025 14:07:30 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43f20625ea4sm98795885e9.12.2025.04.11.14.07.28
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 11 Apr 2025 14:07:28 -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: fa73b4c7-1718-11f0-9eae-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744405649; x=1745010449; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=cUPyODaUxgH7llNCICZGqe2RmVtJu2Rctix1ZWSRZwA=;
        b=fM6ec9PqvvWu8zEAE5UOTWAAwL3yxC00x9kc3acJ8EJDYZp2XeXw0GX53Nr+QTCQde
         nQ21zxw1S3G0iMGV0Q2x0JUQAcP6pNgUrDWcQVN7S/7TQC5niTEE6PAnvdtjElP3Ztsz
         qmwmJqD/gjIrA0qwoaArgFcD8/bdPK89wCIYM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744405649; x=1745010449;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=cUPyODaUxgH7llNCICZGqe2RmVtJu2Rctix1ZWSRZwA=;
        b=j/Tip0vSeHW647mJ+Thal8eIKvbZJJ3BxnHK2pVy7jaoizCFsyn7B12Ywjjih5P15K
         T33Z0/u2lY9WLZs3A8GlRJe/8h37H7mQ1/00xejJ1WbBcqoazkKi4fEexrrii2/grddM
         pM3QNun+eB3zu7EnbDaVhoVGwMFMOqKSn/cNUF0Iwyuoy6YwykRFJELOo3ALa5eSvJpG
         6paJIZqjelid2OIKOZ9RrLtAC5o4Ga5ghuryzRtVSLRPEbn4icMX2xmDgtpaOIU939l1
         SmS2zWe4p4CzV+hNmy67EbvvQav2Fmh9zNkuRzsEQTcI/b9/+PS97Qaf4qH1td0eNlHg
         gbrw==
X-Forwarded-Encrypted: i=1; AJvYcCWGLLdSW+xrJpnjv5WF8rcdPOLWgKAPQomRUfqiSyxLJzmIPFvZ/3C69f+cz5oIq2CHhVQzgx9lPfI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyH+DruyJCOUO0RJv8RytdOwCdC23r61qzM02s1zmgOnW1G94DI
	jdxki3cEKIIf5LflKHReeut2dzIl6uhUqDPiiEUcSN624eIiRaKCu6n9dJQNa8A=
X-Gm-Gg: ASbGnctH7nclTkx8YWgMRpW8AM4nNASGKVRS9zdnInLyZlhT1vLqI2+YD7T54jKByAU
	ysNmVTUsxB+sJOPQ+hu5W77k+3jBNnIA4hcS8lztc6zXdUBgPzUbZUdvCQvVvRUlXCEHS+bDvBN
	BwFwPYdIsxgwi3hIHD7ftUSos2J/krteuKWeMwrgl0EkVJxCPf9QPX8dKFicQ6I2HjV4xkNlZ3P
	E4uCbX66vCOHXQaP17AGKXplFDPZKqzIzevOm04geKmL26JjqH8DIqEMW6Ta+TyvWzy8wlUR0mS
	rj33Kes+xQpOxPslWalOSRh1AJqZRch8xxP4ccQ/b2PJ0dByJ+7YskGbmPZdkzcOv3Biu7LYH/l
	+4KwQPg==
X-Google-Smtp-Source: AGHT+IHKwmOIAc1LmotQ1LqdKfM7CvNr12Nfh2g49tDIQRVmdentMCAu4OpPgjXZhvEoSMsDjvdqLA==
X-Received: by 2002:a5d:5f43:0:b0:391:4282:f60e with SMTP id ffacd0b85a97d-39eaaea8377mr3218436f8f.32.1744405649234;
        Fri, 11 Apr 2025 14:07:29 -0700 (PDT)
Message-ID: <107fe18c-e72c-49b4-8b48-e11817f2cf9b@citrix.com>
Date: Fri, 11 Apr 2025 22:07:28 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 4/7] CI: write whole etc/issue for domU initrd
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, xen-devel@lists.xenproject.org
Cc: Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>
References: <cover.146eb3617cc9cf442dd4fc7a0a8950fb1bc191c8.1744403499.git-series.marmarek@invisiblethingslab.com>
 <526ec153b1cabc1d5b111be27ded8d0d4da5178a.1744403499.git-series.marmarek@invisiblethingslab.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: <526ec153b1cabc1d5b111be27ded8d0d4da5178a.1744403499.git-series.marmarek@invisiblethingslab.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 11/04/2025 9:32 pm, Marek Marczykowski-Górecki wrote:
> diff --git a/automation/scripts/qubes-x86-64.sh b/automation/scripts/qubes-x86-64.sh
> index 861e302d845b..dd88a1398f2b 100755
> --- a/automation/scripts/qubes-x86-64.sh
> +++ b/automation/scripts/qubes-x86-64.sh
> @@ -182,7 +182,10 @@ ${domU_check}
>  " > etc/local.d/xen.start
>      chmod +x etc/local.d/xen.start
>      echo "rc_verbose=yes" >> etc/rc.conf
> -    sed -i -e 's/^Welcome/domU \0/' etc/issue
> +    echo "domU Welcome to Alpine Linux 3.18

This 3.18 is going to go stale shortly.

Because of LOG_MSG="Welcome to Alpine Linux", the version doesn't matter.

Alpine does have /etc/os-release, but busybox's getty doesn't translate
\S. 
https://github.com/brgl/busybox/blob/abbf17abccbf832365d9acf1c280369ba7d5f8b2/libbb/login.c#L84-L86

I'd suggest just dropping the 3.18.

Otherwise, Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Fri Apr 11 21:12:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 21:12:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.947998.1345539 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3Lg3-0002OB-E2; Fri, 11 Apr 2025 21:12:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 947998.1345539; Fri, 11 Apr 2025 21: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 1u3Lg3-0002O4-Ay; Fri, 11 Apr 2025 21:12:43 +0000
Received: by outflank-mailman (input) for mailman id 947998;
 Fri, 11 Apr 2025 21: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=Pnkk=W5=google.com=jmattson@srs-se1.protection.inumbo.net>)
 id 1u3Lg1-0002Ny-TA
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 21:12:42 +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 b3be32ec-1719-11f0-9eae-5ba50f476ded;
 Fri, 11 Apr 2025 23:12:40 +0200 (CEST)
Received: by mail-ed1-x52e.google.com with SMTP id
 4fb4d7f45d1cf-5e5cbd8b19bso1084a12.1
 for <xen-devel@lists.xenproject.org>; Fri, 11 Apr 2025 14:12: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: b3be32ec-1719-11f0-9eae-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20230601; t=1744405960; x=1745010760; 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=5s9O/8O6xeMVl0tLPF60JEEeubmLlBJjqtBbS0i9ciQ=;
        b=sKTYbyasrC3gynRUNnI3QCDzFBLm3x4jka0lFChbn1ljsADBaMb51jq+auFl3emX8d
         qNo+ICXFllQKY2pGdH/2iCtaXsxjNHHHOACnt9kjSaid1qMpwJ/6geUIsOBUmWqgQEOH
         uNJM5JG+RcPawhu9L7icY489GF7JWujkXeDJiNxh4FpKuyjwC/IfBx75yDWe6jUSskh9
         jpcG+dXgTO2kJooKGS4Xy4XXnSymBKyEY8yT9NqisaJ6SOAMvCHZtepe7Ga+A9CfyFi2
         m4ctQM/Eed5FM4hWlHHFOfbvwxX17l2pCpI87iSg/MO4elvWCkt08bIs43yURUCYXijf
         e9aQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744405960; x=1745010760;
        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=5s9O/8O6xeMVl0tLPF60JEEeubmLlBJjqtBbS0i9ciQ=;
        b=lOnKU9Ddg01gKV/Wwc1QVSuewJ0V44YzNK4xH1p+12FzlvDL6n62JPTrUV/PWWcG/i
         lvi6SbaykObEEjewoQZ5luboe89us1rDjp5pwVCxhaBQhBm2S+Fh9iIBY+XGGVbtcLBf
         2IMjqr0ReXuH9FiimULkingpkoyzxBhdli68bK7XJM6fA1jR+ARHZ/X684Uk0s3Ss7q5
         bgz4Fd9hz6JsG7ukVusUdTBkXHZ7uPJsoGfnh1wH59iBk8ZgtlG3b2IwRNJL0188CaRK
         FfAVz7Rm6TIbox0VMAVEZD4RwhPyz1fFkJse92A39aI0j2D6pW3gEPOeq6bTkwZl6k1x
         u4Bw==
X-Forwarded-Encrypted: i=1; AJvYcCUUddUQX86ibOXNhLALyWl1Hq258zIoVvBxhxZUhiBlivNcsDbDavpGNGopZmhVUHbr82gWBWg6+O4=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yze8n/hxwrJZYaE5pQQsYmsKjfNDQfPWi2ecMT6bTDsyB86Vdvd
	0o4pFD9fTqlhV5CVEWiAulCov3WtffueP0tpWHS0g3fZ809E/6mL/+GS7jQpN78VMNzDTPB9s6H
	LftCCOoevBc3j+QkiuLbWHK2V5vvK3c3tNfSn
X-Gm-Gg: ASbGncsJ5b2EnoXwhinEquZy8I0Wl06un7OJeNiPl+j3XNrrxOdZfkHvJIPf6KZYBD2
	EB0QPNBWTyIlMB7XYltM82vzSkA9hnXSjBLi1oMtmMJvx+C+HY+AGIZUYcNZx9qFD9dGbIT32YB
	wAqBkcMWPE4BE5UTsjADn2Ow==
X-Google-Smtp-Source: AGHT+IG84lvI3gcXlEPRkJRlkOu8tneyZgmJwr3mqViY4ItysXFcNimZTO7gtwpNKCM01C6d/tdsOPRrFemjcCrBnfs=
X-Received: by 2002:aa7:cfd6:0:b0:5ec:13d0:4505 with SMTP id
 4fb4d7f45d1cf-5f3ea1e2b1dmr6826a12.5.1744405959793; Fri, 11 Apr 2025 14:12:39
 -0700 (PDT)
MIME-Version: 1.0
References: <20250331082251.3171276-1-xin@zytor.com> <20250331082251.3171276-11-xin@zytor.com>
 <Z_hTI8ywa3rTxFaz@google.com>
In-Reply-To: <Z_hTI8ywa3rTxFaz@google.com>
From: Jim Mattson <jmattson@google.com>
Date: Fri, 11 Apr 2025 14:12:27 -0700
X-Gm-Features: ATxdqUHkE9VKKw2s7zj6-Bzo7sFhtVG2VPQmJwr2UovOBmetGvqQ1ElvaKggsjw
Message-ID: <CALMp9eRJkzA2YXf1Dfxt3ONP+P9aTA=WPraOPJPJ6C6j677+6Q@mail.gmail.com>
Subject: Re: [RFC PATCH v1 10/15] KVM: VMX: Use WRMSRNS or its immediate form
 when available
To: Sean Christopherson <seanjc@google.com>
Cc: "Xin Li (Intel)" <xin@zytor.com>, linux-kernel@vger.kernel.org, 
	linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org, 
	virtualization@lists.linux.dev, linux-edac@vger.kernel.org, 
	kvm@vger.kernel.org, xen-devel@lists.xenproject.org, 
	linux-ide@vger.kernel.org, linux-pm@vger.kernel.org, bpf@vger.kernel.org, 
	llvm@lists.linux.dev, tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, 
	dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com, jgross@suse.com, 
	andrew.cooper3@citrix.com, peterz@infradead.org, acme@kernel.org, 
	namhyung@kernel.org, mark.rutland@arm.com, alexander.shishkin@linux.intel.com, 
	jolsa@kernel.org, irogers@google.com, adrian.hunter@intel.com, 
	kan.liang@linux.intel.com, wei.liu@kernel.org, ajay.kaher@broadcom.com, 
	alexey.amakhalov@broadcom.com, bcm-kernel-feedback-list@broadcom.com, 
	tony.luck@intel.com, pbonzini@redhat.com, vkuznets@redhat.com, 
	luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com, 
	haiyangz@microsoft.com, decui@microsoft.com
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Thu, Apr 10, 2025 at 4:24=E2=80=AFPM Sean Christopherson <seanjc@google.=
com> wrote:
>
> On Mon, Mar 31, 2025, Xin Li (Intel) wrote:
> > Signed-off-by: Xin Li (Intel) <xin@zytor.com>
> > ---
> >  arch/x86/include/asm/msr-index.h |  6 ++++++
> >  arch/x86/kvm/vmx/vmenter.S       | 28 ++++++++++++++++++++++++----
> >  2 files changed, 30 insertions(+), 4 deletions(-)
> >
> > diff --git a/arch/x86/include/asm/msr-index.h b/arch/x86/include/asm/ms=
r-index.h
> > index e6134ef2263d..04244c3ba374 100644
> > --- a/arch/x86/include/asm/msr-index.h
> > +++ b/arch/x86/include/asm/msr-index.h
> > @@ -1226,4 +1226,10 @@
> >                                               * a #GP
> >                                               */
> >
> > +/* Instruction opcode for WRMSRNS supported in binutils >=3D 2.40 */
> > +#define ASM_WRMSRNS          _ASM_BYTES(0x0f,0x01,0xc6)
> > +
> > +/* Instruction opcode for the immediate form RDMSR/WRMSRNS */
> > +#define ASM_WRMSRNS_RAX              _ASM_BYTES(0xc4,0xe7,0x7a,0xf6,0x=
c0)
> > +
> >  #endif /* _ASM_X86_MSR_INDEX_H */
> > diff --git a/arch/x86/kvm/vmx/vmenter.S b/arch/x86/kvm/vmx/vmenter.S
> > index f6986dee6f8c..9fae43723c44 100644
> > --- a/arch/x86/kvm/vmx/vmenter.S
> > +++ b/arch/x86/kvm/vmx/vmenter.S
> > @@ -64,6 +64,29 @@
> >       RET
> >  .endm
> >
> > +/*
> > + * Write EAX to MSR_IA32_SPEC_CTRL.
> > + *
> > + * Choose the best WRMSR instruction based on availability.
> > + *
> > + * Replace with 'wrmsrns' and 'wrmsrns %rax, $MSR_IA32_SPEC_CTRL' once=
 binutils support them.
> > + */
> > +.macro WRITE_EAX_TO_MSR_IA32_SPEC_CTRL
> > +     ALTERNATIVE_2 __stringify(mov $MSR_IA32_SPEC_CTRL, %ecx;         =
       \
> > +                               xor %edx, %edx;                        =
       \
> > +                               mov %edi, %eax;                        =
       \
> > +                               ds wrmsr),                             =
       \
> > +                   __stringify(mov $MSR_IA32_SPEC_CTRL, %ecx;         =
       \
> > +                               xor %edx, %edx;                        =
       \
> > +                               mov %edi, %eax;                        =
       \
> > +                               ASM_WRMSRNS),                          =
       \
> > +                   X86_FEATURE_WRMSRNS,                               =
       \
> > +                   __stringify(xor %_ASM_AX, %_ASM_AX;                =
       \
> > +                               mov %edi, %eax;                        =
       \
> > +                               ASM_WRMSRNS_RAX; .long MSR_IA32_SPEC_CT=
RL),   \
> > +                   X86_FEATURE_MSR_IMM
> > +.endm
>
> This is quite hideous.  I have no objection to optimizing __vmx_vcpu_run(=
), but
> I would much prefer that a macro like this live in generic code, and that=
 it be
> generic.  It should be easy enough to provide an assembly friendly equiva=
lent to
> __native_wrmsr_constant().

Surely, any CPU that has WRMSRNS also supports "Virtualize
IA32_SPEC_CTRL," right? Shouldn't we be using that feature rather than
swapping host and guest values with some form of WRMSR?

> > +
> >  .section .noinstr.text, "ax"
> >
> >  /**
> > @@ -123,10 +146,7 @@ SYM_FUNC_START(__vmx_vcpu_run)
> >       movl PER_CPU_VAR(x86_spec_ctrl_current), %esi
> >       cmp %edi, %esi
> >       je .Lspec_ctrl_done
> > -     mov $MSR_IA32_SPEC_CTRL, %ecx
> > -     xor %edx, %edx
> > -     mov %edi, %eax
> > -     wrmsr
> > +     WRITE_EAX_TO_MSR_IA32_SPEC_CTRL
> >
> >  .Lspec_ctrl_done:
> >
> > --
> > 2.49.0
> >
>


From xen-devel-bounces@lists.xenproject.org Fri Apr 11 21:54:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 21:54:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.948021.1345549 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3MKC-0006k3-K6; Fri, 11 Apr 2025 21:54:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 948021.1345549; Fri, 11 Apr 2025 21:54: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 1u3MKC-0006jw-Gs; Fri, 11 Apr 2025 21:54:12 +0000
Received: by outflank-mailman (input) for mailman id 948021;
 Fri, 11 Apr 2025 21:54: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=4v6j=W5=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1u3MKB-0006jq-NQ
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 21:54:11 +0000
Received: from NAM12-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam12on2061b.outbound.protection.outlook.com
 [2a01:111:f403:200a::61b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7e0b4dfa-171f-11f0-9ffb-bf95429c2676;
 Fri, 11 Apr 2025 23:54:09 +0200 (CEST)
Received: from BN0PR03CA0037.namprd03.prod.outlook.com (2603:10b6:408:e7::12)
 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.8606.36; Fri, 11 Apr
 2025 21:54:03 +0000
Received: from BL6PEPF0001AB73.namprd02.prod.outlook.com
 (2603:10b6:408:e7:cafe::c) by BN0PR03CA0037.outlook.office365.com
 (2603:10b6:408:e7::12) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.26 via Frontend Transport; Fri,
 11 Apr 2025 21:54:03 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BL6PEPF0001AB73.mail.protection.outlook.com (10.167.242.166) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Fri, 11 Apr 2025 21:54:02 +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, 11 Apr
 2025 16:54:02 -0500
Received: from [172.17.237.105] (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, 11 Apr 2025 16:54:01 -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: 7e0b4dfa-171f-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=sn41ANiPmrUx1jZvDozeBWxcnDQcFMYVGI54inOqAwqsZ0LOKo2Z4swoY42tgIGbMSnJMx6gwLemn2T1j65y+SI5UeizQbb3s3kBzy/NriPWSaIHJnH/UW5r+TTJc0y6Qhz30jUXjir6DTdP23/UlbEVm/JT/EhKLuoJZtj8Hmemt82bsBs0PWo+T4b9yTx8PkAfXPT7SkMn5MvSO9A2DF/YFWQhQK/8Q0QsHOZU012+60gBgJrij1McujphxkWM17j4A95LKIw1HMRHHUjcSLrA4Fgc4hQv3ucS8n5l5Qp1T5hgfhL6HaZ7BRMeNjJAfonBw4AF8LYcQHH4+sf//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=4yl18vg+t37mOGSn9f8IcceF0UPmnno4miT3YnFixqg=;
 b=ZUnSoTBYFd//W9M3hmlai6eIEzoJl8Nsb2MJ4CNmEQjsjjd9Gdr750RJACxG+TrTdqYC9l9+KnqP3re29h0BroWGyAuutRomhr9m2tTwr6kV2pZEeoYgo2ltPtuXaojA+vEhiFjpV/nANu8Z9zD3fFld24iIobnCGHpW5YNsWIPTeZhbCQ+HMKdTDPfiSDY3malOU8bnWTxfDheAkxdmOsv/kaXbob/vXVA314gMqug6vxz8Y9RTml7CCaFgOesge6EpFNGR0aLiSGCWHHbxY/6U99RZOYW2iDHkFbcC2gYAo7ZRYLoR5/04uTgpZU69oT1L3veyGfxHTXFpnwE5XQ==
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=4yl18vg+t37mOGSn9f8IcceF0UPmnno4miT3YnFixqg=;
 b=1CQOymh/+OOvGqMnscImf345Q0dINt/c/Iymcz3FkU/5FXv24t+dyD2PQMD0RokzTXPwY8z7DZMaNXxj1qQ1sEV1c/6AhyYBysjByKpqxJFJ76mf3ELiwolvSv9JEVAqxs+r35sDG65zDjb3RdbmuGJf59o1cabp0Z2f/tmnENM=
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: <a914e308-864a-477b-83ef-d90f8ce6e348@amd.com>
Date: Fri, 11 Apr 2025 17:54:02 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] Package microcode for the x86 hardware runners
To: Andrew Cooper <andrew.cooper3@citrix.com>, Xen-devel
	<xen-devel@lists.xenproject.org>
CC: 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?Marek_Marczykowski-G=C3=B3recki?=
	<marmarek@invisiblethingslab.com>
References: <20250411195914.2256882-1-andrew.cooper3@citrix.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <20250411195914.2256882-1-andrew.cooper3@citrix.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: BL6PEPF0001AB73:EE_|CY5PR12MB6226:EE_
X-MS-Office365-Filtering-Correlation-Id: a5ba3bba-e70f-444d-6d33-08dd79435f93
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?cWZaelpDM2owZjdUQmRBeThCOUVaWWFDaUhiQXdSWDZpZ3M4elY4VTRvL2tP?=
 =?utf-8?B?aVJNbCtQTll5UDNnSlhsSHpSMVE1RndobktSZjVHOG5ELy9UZmxoSjRBUTVv?=
 =?utf-8?B?UW1sVEJ4eXVVY0NEMEsranFkYisrS2E0alFnVzVyWTB2eHJEczRyS3lsd0tT?=
 =?utf-8?B?VkpjT2RrRkR0TXFsbk00eXhMU0Z5NEZ6OUtvVFBBdWMrSTFObmVCQktqbjkx?=
 =?utf-8?B?RnNHa293VU4xeGw4Y0U0V20zSEhTRGh5Sno1UStCYlRtRGdJZXNpdkxWdnNj?=
 =?utf-8?B?Q3hxcGtWTkJueklKZGpZM05pS2hCbkNvL3c1d0Vzd2V5bVNySmlZT0JiTHRz?=
 =?utf-8?B?M3pxb0ZMU2lvUUFBQkdGTkNXV0ZrdmNoRy91bDFtSzBEUnVicnN6a2x4VEFS?=
 =?utf-8?B?LzlYR29mbkdCc2ZHSkpnQnJSZEVGVTloalg3N0Qzck1QUXVlTStERU5KWEM0?=
 =?utf-8?B?UmNmQU9GNUlsUFQwR3lXTTc0NktKT0ZYYWJQUzk0THl6TDVjNitGdW5sV05S?=
 =?utf-8?B?SS9VZnI2amx6Z0pOc2txRlhDR053ZjNuU1l3MC8yd0RLYjJIdTJtRVBscHdJ?=
 =?utf-8?B?aHdYajhLMHJ2Qm5PdHRBV3QvWEJWRGovNE5nTnM2ZFpCVVk2Q2FtdjVrWDJD?=
 =?utf-8?B?eXZSYjZYd3l0c1czSS8yNy9FS2VlcCsybW91Ry9QaEJGVnp3LzRFZ1NJcWZF?=
 =?utf-8?B?eWFyTHJkSlZZK3dneDVsRmZRT2xkdE9zZ245czV6RmRtM2pLSkRZNEdaSU43?=
 =?utf-8?B?NGtzck15RjRiS280KzJXekJkY2RQeVoweWp2dmtEcDZhTkRqTlNNejFBMktB?=
 =?utf-8?B?ZGhrNzliOVhnMWU2QlpCU3ZxUWhRaElJajhDVDRXZVh3R2I1ZUtwemNabkZu?=
 =?utf-8?B?alFsRlhpalY3ZDd5MGdzdXVNK2JmMFJid2EySWZSWkY5bDl3RjdDWk9ZMFpK?=
 =?utf-8?B?SWkzZUd4d2RzamFQcUJ3VlUrZ1FhVXJLY3pCSVVOS3ZBeHhCYW9iMXd5QXV1?=
 =?utf-8?B?QWNIQWVlQ2dYSkNyd3g3a05uVlBjQk5FOHZHc2FDS0drLzNWMktoVUVlR2Rx?=
 =?utf-8?B?KzNyRENDRDZoRGpPcGNqZGFXZ01QNVllRlZRdS93L1NHUFM0U0xUakxiMml1?=
 =?utf-8?B?NTRvQlM2V253YjBRR2phZ1BpODlwajd3VjhLMVRBTHlhcTl6RDZrU0dlTmcw?=
 =?utf-8?B?SzJUQStIL1htc0NJTDUwZkpmdUZBSWhjUnZkQmR6amVIU3dyWnlHVkFHK1Fl?=
 =?utf-8?B?SmIvYmp2Tjl0UXhOV2RmTkpyOVlJNnRiNXI2U1B0T1VuUk40N0E4YUxaSzVH?=
 =?utf-8?B?SVU0Tmh0VXhHcUtpMThsL2kwME92RWpHMG8zWnNIaGxyZXFRRC94bXY4ZWlV?=
 =?utf-8?B?enFzeFBFR3RMM0ovSFdIclZ3RXJxTGs0dm82S21nMitQcEt4NjI4S0F3Sk1h?=
 =?utf-8?B?eGxFemQ1emc1a2NOMHlJckI5QW0vbTVTVnM4eTlpNHZpQTZsdFNWVXRKNVpT?=
 =?utf-8?B?N3NMMjEvRDZiejNRU2VvRCtGTDRXRS9oRGpaS1V4dk1ka2h3UUxhZGtPZTJF?=
 =?utf-8?B?emFBRU0rWGgzWHBlTHN3cDVFT3lIcE5GT3FKMHhUSWF4SjAyY0pZOEpKMmI3?=
 =?utf-8?B?Z1o2c1lDR0dHMTM1S0RyWjYzTXR1MmFualFzUHQ1YmFrV2RJMFlMMG1rREJ1?=
 =?utf-8?B?c244UDVzUFdFOHBOTG0zMFY3Q01ZNEhHYlBnK09nL2d5UU1FZXdncFZoTnVm?=
 =?utf-8?B?cGo1SCtTVGVOakk2dHNXa2IyZmdWN0tXdkdQMnFFY0lDQTJmT2d3NkJEeW5M?=
 =?utf-8?B?cjcvTXJIdGtLUGZwTlFiMFVibW52R2h3a1lmVjNNb2hGOVJHclFYYTNId3Bx?=
 =?utf-8?B?NllvVVJwL2t3T2gwU3MwZmR6bVhNYTg0Q1pCdEQ0SjZzN3hnV2h4OEtxcHJY?=
 =?utf-8?B?TCtlUFBiZlBCOFNBZ1Z5d3R5ckJVZzlQcGx2VWkrWmpKVXp3NVphUXcvMy8r?=
 =?utf-8?B?WEhOaWhJNXJpTTRmbFhsU0g1ayt4RHpObUNsUHM1NnVxM2V0WDhlVks4OUJN?=
 =?utf-8?Q?zF0as8?=
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)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Apr 2025 21:54:02.9276
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: a5ba3bba-e70f-444d-6d33-08dd79435f93
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:
	BL6PEPF0001AB73.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR12MB6226

On 2025-04-11 15:59, Andrew Cooper wrote:
> They are all out of date, to different degrees.
> 
> Install jq into the x86_64 build container so we can parse the Github latest
> release information in an acceptable way.
> 
> The resulting archive must be uncompressed, in order to work during early
> boot.
> 
> 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 Apr 11 22:52:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 11 Apr 2025 22:52:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.948040.1345570 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3NER-00071b-Ro; Fri, 11 Apr 2025 22:52:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 948040.1345570; Fri, 11 Apr 2025 22:52: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 1u3NER-00071U-PD; Fri, 11 Apr 2025 22:52:19 +0000
Received: by outflank-mailman (input) for mailman id 948040;
 Fri, 11 Apr 2025 22:52: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=5hfk=W5=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1u3NEP-00071O-V2
 for xen-devel@lists.xenproject.org; Fri, 11 Apr 2025 22:52:18 +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 9c853723-1727-11f0-9ffb-bf95429c2676;
 Sat, 12 Apr 2025 00:52:15 +0200 (CEST)
Received: from phl-compute-04.internal (phl-compute-04.phl.internal
 [10.202.2.44])
 by mailfhigh.phl.internal (Postfix) with ESMTP id 172541140196;
 Fri, 11 Apr 2025 18:52:14 -0400 (EDT)
Received: from phl-mailfrontend-01 ([10.202.2.162])
 by phl-compute-04.internal (MEProxy); Fri, 11 Apr 2025 18:52:14 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri,
 11 Apr 2025 18:52:12 -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: 9c853723-1727-11f0-9ffb-bf95429c2676
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=fm2; t=1744411934;
	 x=1744498334; bh=wqozk/RFam4IjYxYRXTsUpMx51UJpKLSjj8qd0C5t0c=; b=
	TTE+Tlj3r2pWXkXkhgXTgWgx1oeYhaY/PKpa4PfqllSQrKE4vulfIjyMvn02ye5W
	oeE5h897or/yo1IFtEtdw97yAlv0PO7PTgD/MG/6gJ+qen0fBgf+6GSgrTPmXdTH
	UKR59nGMayjCbKEzhmw3X0k4GSYVtsaKQtAXZQzEmU3igb7Ho8lpQIN3Hyf2hrp3
	n2G/x0GNcb+XBAQkEk9rB/Z8wPscjJInKQ93/J+p//TpDxf5lZXWlnXUJxZ6acUz
	Jlf1Q8ZUlTsUYaWjUZBRVQiqrT/7dyF3MbDpvgJ8+OkCWMU8+H7gbZU+4d/W5dLQ
	dg2PtquZDMIHIiWyQsnzeA==
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=fm2; t=
	1744411934; x=1744498334; bh=wqozk/RFam4IjYxYRXTsUpMx51UJpKLSjj8
	qd0C5t0c=; b=gLG5tJrNTXZZfrdr2liHveJAFnPXC+3cffWiBk+QHkT8ee89EID
	jBCj8DqghRCEV54Na6EWrh+ZIDi7S/TAjF7XlegwfNe4ggUiAnt/+qJcorXmjjY/
	yq50XM9fBwuqrMkY1k/w2Y9kcTf9LACtEkpBBAm5fkwnbytvrSgYTNFfx8Cny/CG
	9G/TCoI+HoC9173eJPk4Tl1w4w+XRcxvjRPuP8FCms9mkqXSEQq+2uDi+O/+pxNB
	5tgQZ3JOrId/5/9LaGSnxu7A6I+uMrYUO6E+wZ9+h5Z4V951JM8ZI4nWmKXA+FAJ
	44KvWqPBKUsWiQYJSI35kLzqWDNlERpua0g==
X-ME-Sender: <xms:HZ35Z2mtdhBuFjl0KLZ1nEMNYLvbYN7UJGJ_ZDHy9f_RKAW8DWRq9Q>
    <xme:HZ35Z91HFtWEnywI4k6SwFlnAgfVIGcu1jdqh2NkDxxabALpFEURJgFDQgDotQOzX
    BPcNBVxymyKuA>
X-ME-Received: <xmr:HZ35Z0p_KZxWCO29lRnh58ujLajX1IaCFZAB9n5H4I2AvS9t51AWZHadVpHtTiizlXblY5LNjve-6NgVj0hotmzfQ8vN-ZIAYA>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvudeftdeiucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
    pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
    gvnhhtshculddquddttddmnecujfgurhepfffhvfevuffkfhggtggujgesghdtreertddt
    jeenucfhrhhomhepofgrrhgvkhcuofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuc
    eomhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecu
    ggftrfgrthhtvghrnhepueekteetgefggfekudehteegieeljeejieeihfejgeevhfetgf
    fgteeuteetueetnecuffhomhgrihhnpehgihhthhhusgdrtghomhenucevlhhushhtvghr
    ufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhnvh
    hishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhnsggprhgtphhtthhopeegpdhmohgu
    vgepshhmthhpohhuthdprhgtphhtthhopegrnhgurhgvfidrtghoohhpvghrfeestghith
    hrihigrdgtohhmpdhrtghpthhtohepgigvnhdquggvvhgvlheslhhishhtshdrgigvnhhp
    rhhojhgvtghtrdhorhhgpdhrtghpthhtoheptggrrhguohgvsegtrghrughovgdrtghomh
    dprhgtphhtthhopehsshhtrggsvghllhhinhhisehkvghrnhgvlhdrohhrgh
X-ME-Proxy: <xmx:HZ35Z6kaI4-ZeM5cSAUXQnY26saKru_I5ArehYEK6WjBufqZX0m2iQ>
    <xmx:HZ35Z0309dnqd4I2dplvGDX7-8p0xslM6lXmhTpOfpPuHsJHUEmxyA>
    <xmx:HZ35ZxvPGEU2cs3DhxO5GH5dYWgD4wl2OiLdkazTKrb5TS_Pqzgo1w>
    <xmx:HZ35ZwUCJH9tpnHPRSWATuHEsSBaE8yZtUHUFLia3mRsyD3CF8RyVg>
    <xmx:Hp35ZxFIU84JLT6EtoRErhHvXHR5CqZweQCdsXzv_4m0uyQpVNWVQPEJ>
Feedback-ID: i1568416f:Fastmail
Date: Sat, 12 Apr 2025 00:52:10 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: xen-devel@lists.xenproject.org, Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH v3 4/7] CI: write whole etc/issue for domU initrd
Message-ID: <Z_mdGunBR9LZfGyU@mail-itl>
References: <cover.146eb3617cc9cf442dd4fc7a0a8950fb1bc191c8.1744403499.git-series.marmarek@invisiblethingslab.com>
 <526ec153b1cabc1d5b111be27ded8d0d4da5178a.1744403499.git-series.marmarek@invisiblethingslab.com>
 <107fe18c-e72c-49b4-8b48-e11817f2cf9b@citrix.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="3pUXHbnBmlYgbiql"
Content-Disposition: inline
In-Reply-To: <107fe18c-e72c-49b4-8b48-e11817f2cf9b@citrix.com>


--3pUXHbnBmlYgbiql
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Sat, 12 Apr 2025 00:52:10 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: xen-devel@lists.xenproject.org, Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH v3 4/7] CI: write whole etc/issue for domU initrd

On Fri, Apr 11, 2025 at 10:07:28PM +0100, Andrew Cooper wrote:
> On 11/04/2025 9:32 pm, Marek Marczykowski-G=C3=B3recki wrote:
> > diff --git a/automation/scripts/qubes-x86-64.sh b/automation/scripts/qu=
bes-x86-64.sh
> > index 861e302d845b..dd88a1398f2b 100755
> > --- a/automation/scripts/qubes-x86-64.sh
> > +++ b/automation/scripts/qubes-x86-64.sh
> > @@ -182,7 +182,10 @@ ${domU_check}
> >  " > etc/local.d/xen.start
> >      chmod +x etc/local.d/xen.start
> >      echo "rc_verbose=3Dyes" >> etc/rc.conf
> > -    sed -i -e 's/^Welcome/domU \0/' etc/issue
> > +    echo "domU Welcome to Alpine Linux 3.18
>=20
> This 3.18 is going to go stale shortly.
>=20
> Because of LOG_MSG=3D"Welcome to Alpine Linux", the version doesn't matte=
r.
>=20
> Alpine does have /etc/os-release, but busybox's getty doesn't translate
> \S.=C2=A0
> https://github.com/brgl/busybox/blob/abbf17abccbf832365d9acf1c280369ba7d5=
f8b2/libbb/login.c#L84-L86
>=20
> I'd suggest just dropping the 3.18.

Fine with me.

> Otherwise, Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>

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

--3pUXHbnBmlYgbiql
Content-Type: application/pgp-signature; name=signature.asc

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmf5nRoACgkQ24/THMrX
1yz4SQf/U+0PmzwfEUdzSPaQwv4F3/Dr2wujWLmv0ryISpY48NhIuepzbLy3sZ26
6k6JPMzbYQgoF2mopyK4zCJ7Q0zh08kY8jMTvUdb7jKirNaXYl2eGn4PbHSb6KUA
kuV15+QnuYAbLvs+AYXMsTKx6kd4YNd0RH8GeF6RiPvRZRYwlkiUC1GhpR4dhGI1
qlP5p15d8eqziwye+HJsNZoIUdKvwotbB4hhpfvDkA/w5tIfACEwQwZhSU1eALM2
SgJ65H1REAQJQDthM2MtbuQKWDDzLQHP4ifBAyNItkZNi7OX3NkgQXnO+ZV5Gsq/
2z/ac212s6EkFHxnZHTLwr8RrzE2Iw==
=TfXA
-----END PGP SIGNATURE-----

--3pUXHbnBmlYgbiql--


From xen-devel-bounces@lists.xenproject.org Sat Apr 12 04:29:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 12 Apr 2025 04:29:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.948084.1345581 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3SUy-00032B-Ix; Sat, 12 Apr 2025 04:29:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 948084.1345581; Sat, 12 Apr 2025 04: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 1u3SUy-00031t-DS; Sat, 12 Apr 2025 04:29:44 +0000
Received: by outflank-mailman (input) for mailman id 948084;
 Sat, 12 Apr 2025 04: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=9996=W6=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u3SUw-00031m-Ab
 for xen-devel@lists.xenproject.org; Sat, 12 Apr 2025 04:29:42 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id bf0db386-1756-11f0-9eae-5ba50f476ded;
 Sat, 12 Apr 2025 06:29:40 +0200 (CEST)
Received: from [192.168.7.202] ([71.202.166.45]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53C4Slu6870108
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NO);
 Fri, 11 Apr 2025 21:28:47 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bf0db386-1756-11f0-9eae-5ba50f476ded
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53C4Slu6870108
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025032001; t=1744432131;
	bh=FXvWlC8cZ0c5rZvfhCZWv2G6gDWGLrU6c2dfFP+ocqY=;
	h=Date:Subject:To:Cc:References:From:In-Reply-To:From;
	b=VRPOWZvbRcqn1EMY2mNRL9aN3N/c3MyZF0mdY259h4YB1tWna+5wI8moYEe13BQrV
	 Y7VxgVfWa/tVrQnCfTeJI+jR+mXuFWbKp1foVl/RfgDxEvVEcU1OReNbo3FKsyzDsS
	 IUz1Bg6FQJOpybPqDAwkpjirXvLuxVP/OGIHZ7SyeJM7r5PCYnsymYO0HJ236p08Kn
	 dkuauEUlLLatvA9E1RQNU6sG1uL18fyy/377y0CpobGu/GgaJRIVx9ZcbEtirZuNa+
	 r+lDqtaYkKQKAbzpZ2JxRaUoFWbSSsykVtmXOfUWdDZWzwmhNWRAo/oRdIU4DO6UVF
	 EXRIghMJiBfug==
Message-ID: <46f17b70-bdbb-4d6c-bf49-2384364e7fc5@zytor.com>
Date: Fri, 11 Apr 2025 21:28:46 -0700
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH v1 10/15] KVM: VMX: Use WRMSRNS or its immediate form
 when available
To: "H. Peter Anvin" <hpa@zytor.com>, Sean Christopherson <seanjc@google.com>
Cc: linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org,
        linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
        linux-edac@vger.kernel.org, kvm@vger.kernel.org,
        xen-devel@lists.xenproject.org, linux-ide@vger.kernel.org,
        linux-pm@vger.kernel.org, bpf@vger.kernel.org, llvm@lists.linux.dev,
        tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, jgross@suse.com,
        andrew.cooper3@citrix.com, peterz@infradead.org, acme@kernel.org,
        namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, bcm-kernel-feedback-list@broadcom.com,
        tony.luck@intel.com, pbonzini@redhat.com, vkuznets@redhat.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com
References: <20250331082251.3171276-1-xin@zytor.com>
 <20250331082251.3171276-11-xin@zytor.com> <Z_hTI8ywa3rTxFaz@google.com>
 <41eb2d08-1b2d-4ca8-bcb7-f5f4611f91a9@zytor.com>
 <39ECA4CA-9CBC-4F72-B52E-9BD06DBF9B6D@zytor.com>
Content-Language: en-US
From: Xin Li <xin@zytor.com>
Autocrypt: addr=xin@zytor.com; keydata=
 xsDNBGUPz1cBDACS/9yOJGojBFPxFt0OfTWuMl0uSgpwk37uRrFPTTLw4BaxhlFL0bjs6q+0
 2OfG34R+a0ZCuj5c9vggUMoOLdDyA7yPVAJU0OX6lqpg6z/kyQg3t4jvajG6aCgwSDx5Kzg5
 Rj3AXl8k2wb0jdqRB4RvaOPFiHNGgXCs5Pkux/qr0laeFIpzMKMootGa4kfURgPhRzUaM1vy
 bsMsL8vpJtGUmitrSqe5dVNBH00whLtPFM7IbzKURPUOkRRiusFAsw0a1ztCgoFczq6VfAVu
 raTye0L/VXwZd+aGi401V2tLsAHxxckRi9p3mc0jExPc60joK+aZPy6amwSCy5kAJ/AboYtY
 VmKIGKx1yx8POy6m+1lZ8C0q9b8eJ8kWPAR78PgT37FQWKYS1uAroG2wLdK7FiIEpPhCD+zH
 wlslo2ETbdKjrLIPNehQCOWrT32k8vFNEMLP5G/mmjfNj5sEf3IOKgMTMVl9AFjsINLHcxEQ
 6T8nGbX/n3msP6A36FDfdSEAEQEAAc0WWGluIExpIDx4aW5Aenl0b3IuY29tPsLBDQQTAQgA
 NxYhBIUq/WFSDTiOvUIqv2u9DlcdrjdRBQJlD89XBQkFo5qAAhsDBAsJCAcFFQgJCgsFFgID
 AQAACgkQa70OVx2uN1HUpgv/cM2fsFCQodLArMTX5nt9yqAWgA5t1srri6EgS8W3F+3Kitge
 tYTBKu6j5BXuXaX3vyfCm+zajDJN77JHuYnpcKKr13VcZi1Swv6Jx1u0II8DOmoDYLb1Q2ZW
 v83W55fOWJ2g72x/UjVJBQ0sVjAngazU3ckc0TeNQlkcpSVGa/qBIHLfZraWtdrNAQT4A1fa
 sWGuJrChBFhtKbYXbUCu9AoYmmbQnsx2EWoJy3h7OjtfFapJbPZql+no5AJ3Mk9eE5oWyLH+
 QWqtOeJM7kKvn/dBudokFSNhDUw06e7EoVPSJyUIMbYtUO7g2+Atu44G/EPP0yV0J4lRO6EA
 wYRXff7+I1jIWEHpj5EFVYO6SmBg7zF2illHEW31JAPtdDLDHYcZDfS41caEKOQIPsdzQkaQ
 oW2hchcjcMPAfyhhRzUpVHLPxLCetP8vrVhTvnaZUo0xaVYb3+wjP+D5j/3+hwblu2agPsaE
 vgVbZ8Fx3TUxUPCAdr/p73DGg57oHjgezsDNBGUPz1gBDAD4Mg7hMFRQqlzotcNSxatlAQNL
 MadLfUTFz8wUUa21LPLrHBkUwm8RujehJrzcVbPYwPXIO0uyL/F///CogMNx7Iwo6by43KOy
 g89wVFhyy237EY76j1lVfLzcMYmjBoTH95fJC/lVb5Whxil6KjSN/R/y3jfG1dPXfwAuZ/4N
 cMoOslWkfZKJeEut5aZTRepKKF54T5r49H9F7OFLyxrC/uI9UDttWqMxcWyCkHh0v1Di8176
 jjYRNTrGEfYfGxSp+3jYL3PoNceIMkqM9haXjjGl0W1B4BidK1LVYBNov0rTEzyr0a1riUrp
 Qk+6z/LHxCM9lFFXnqH7KWeToTOPQebD2B/Ah5CZlft41i8L6LOF/LCuDBuYlu/fI2nuCc8d
 m4wwtkou1Y/kIwbEsE/6RQwRXUZhzO6llfoN96Fczr/RwvPIK5SVMixqWq4QGFAyK0m/1ap4
 bhIRrdCLVQcgU4glo17vqfEaRcTW5SgX+pGs4KIPPBE5J/ABD6pBnUUAEQEAAcLA/AQYAQgA
 JhYhBIUq/WFSDTiOvUIqv2u9DlcdrjdRBQJlD89ZBQkFo5qAAhsMAAoJEGu9DlcdrjdR4C0L
 /RcjolEjoZW8VsyxWtXazQPnaRvzZ4vhmGOsCPr2BPtMlSwDzTlri8BBG1/3t/DNK4JLuwEj
 OAIE3fkkm+UG4Kjud6aNeraDI52DRVCSx6xff3bjmJsJJMb12mWglN6LjdF6K+PE+OTJUh2F
 dOhslN5C2kgl0dvUuevwMgQF3IljLmi/6APKYJHjkJpu1E6luZec/lRbetHuNFtbh3xgFIJx
 2RpgVDP4xB3f8r0I+y6ua+p7fgOjDLyoFjubRGed0Be45JJQEn7A3CSb6Xu7NYobnxfkwAGZ
 Q81a2XtvNS7Aj6NWVoOQB5KbM4yosO5+Me1V1SkX2jlnn26JPEvbV3KRFcwV5RnDxm4OQTSk
 PYbAkjBbm+tuJ/Sm+5Yp5T/BnKz21FoCS8uvTiziHj2H7Cuekn6F8EYhegONm+RVg3vikOpn
 gao85i4HwQTK9/D1wgJIQkdwWXVMZ6q/OALaBp82vQ2U9sjTyFXgDjglgh00VRAHP7u1Rcu4
 l75w1xInsg==
In-Reply-To: <39ECA4CA-9CBC-4F72-B52E-9BD06DBF9B6D@zytor.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 4/11/2025 1:50 PM, H. Peter Anvin wrote:
>>> This is quite hideous.  I have no objection to optimizing __vmx_vcpu_run(), but
>>> I would much prefer that a macro like this live in generic code, and that it be
>>> generic.  It should be easy enough to provide an assembly friendly equivalent to
>>> __native_wrmsr_constant().
>> Will do.
> This should be coming anyway, right?

Absolutely.

Totally stupid me: we have it ready to use here, but ...



From xen-devel-bounces@lists.xenproject.org Sat Apr 12 04:33:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 12 Apr 2025 04:33:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.948094.1345591 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3SYO-00067u-Uw; Sat, 12 Apr 2025 04:33:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 948094.1345591; Sat, 12 Apr 2025 04:33: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 1u3SYO-00067n-Rr; Sat, 12 Apr 2025 04:33:16 +0000
Received: by outflank-mailman (input) for mailman id 948094;
 Sat, 12 Apr 2025 04:33: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=9996=W6=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u3SYO-00067h-7F
 for xen-devel@lists.xenproject.org; Sat, 12 Apr 2025 04:33:16 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3f22e1c8-1757-11f0-9eae-5ba50f476ded;
 Sat, 12 Apr 2025 06:33:15 +0200 (CEST)
Received: from [192.168.7.202] ([71.202.166.45]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53C4WWUM871113
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NO);
 Fri, 11 Apr 2025 21:32:32 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3f22e1c8-1757-11f0-9eae-5ba50f476ded
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53C4WWUM871113
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025032001; t=1744432355;
	bh=8HY4pXq4/0sgSGqWKzYB0xMabci34z/M8SocsQbtjIc=;
	h=Date:Subject:To:Cc:References:From:In-Reply-To:From;
	b=UmkMzcYFMOohEYDvst/+wSrvJqxBWNM3y8pTlydtS9u0Vr7uRFr3Z3pCuQCca14kO
	 ACsIUaW4DWSFZQk6os5w5N7c+E5hX8uOXvMG58Zw1ACWcaqL0evKoHrKsjwK2mCmbu
	 3fbVO1XRm3rPuvtxsvqFa40+ZJdSrPdyFPMsAPCRm9EzVpscdqiU1jHIOYNpql0/Q+
	 A4rJGWpOKXJ4rM8Ry7S9QSfW5JMyxnLBqri634s7bqAxLMEVGyTj2wxY2EKLJiAwY7
	 7S3D+HGa8zlLeI3TPeDpXLNu9OHcHMD6lAYjW/h+oxH9TUSCd3g/AuG8/qoXjh0Ibr
	 awatBQNumv6Tw==
Message-ID: <fa16949e-7842-45f7-9715-1bdda13b762a@zytor.com>
Date: Fri, 11 Apr 2025 21:32:32 -0700
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH v1 10/15] KVM: VMX: Use WRMSRNS or its immediate form
 when available
To: Jim Mattson <jmattson@google.com>, Sean Christopherson <seanjc@google.com>
Cc: linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org,
        linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
        linux-edac@vger.kernel.org, kvm@vger.kernel.org,
        xen-devel@lists.xenproject.org, linux-ide@vger.kernel.org,
        linux-pm@vger.kernel.org, bpf@vger.kernel.org, llvm@lists.linux.dev,
        tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        jgross@suse.com, andrew.cooper3@citrix.com, peterz@infradead.org,
        acme@kernel.org, namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, luto@kernel.org,
        boris.ostrovsky@oracle.com, kys@microsoft.com, haiyangz@microsoft.com,
        decui@microsoft.com
References: <20250331082251.3171276-1-xin@zytor.com>
 <20250331082251.3171276-11-xin@zytor.com> <Z_hTI8ywa3rTxFaz@google.com>
 <CALMp9eRJkzA2YXf1Dfxt3ONP+P9aTA=WPraOPJPJ6C6j677+6Q@mail.gmail.com>
Content-Language: en-US
From: Xin Li <xin@zytor.com>
Autocrypt: addr=xin@zytor.com; keydata=
 xsDNBGUPz1cBDACS/9yOJGojBFPxFt0OfTWuMl0uSgpwk37uRrFPTTLw4BaxhlFL0bjs6q+0
 2OfG34R+a0ZCuj5c9vggUMoOLdDyA7yPVAJU0OX6lqpg6z/kyQg3t4jvajG6aCgwSDx5Kzg5
 Rj3AXl8k2wb0jdqRB4RvaOPFiHNGgXCs5Pkux/qr0laeFIpzMKMootGa4kfURgPhRzUaM1vy
 bsMsL8vpJtGUmitrSqe5dVNBH00whLtPFM7IbzKURPUOkRRiusFAsw0a1ztCgoFczq6VfAVu
 raTye0L/VXwZd+aGi401V2tLsAHxxckRi9p3mc0jExPc60joK+aZPy6amwSCy5kAJ/AboYtY
 VmKIGKx1yx8POy6m+1lZ8C0q9b8eJ8kWPAR78PgT37FQWKYS1uAroG2wLdK7FiIEpPhCD+zH
 wlslo2ETbdKjrLIPNehQCOWrT32k8vFNEMLP5G/mmjfNj5sEf3IOKgMTMVl9AFjsINLHcxEQ
 6T8nGbX/n3msP6A36FDfdSEAEQEAAc0WWGluIExpIDx4aW5Aenl0b3IuY29tPsLBDQQTAQgA
 NxYhBIUq/WFSDTiOvUIqv2u9DlcdrjdRBQJlD89XBQkFo5qAAhsDBAsJCAcFFQgJCgsFFgID
 AQAACgkQa70OVx2uN1HUpgv/cM2fsFCQodLArMTX5nt9yqAWgA5t1srri6EgS8W3F+3Kitge
 tYTBKu6j5BXuXaX3vyfCm+zajDJN77JHuYnpcKKr13VcZi1Swv6Jx1u0II8DOmoDYLb1Q2ZW
 v83W55fOWJ2g72x/UjVJBQ0sVjAngazU3ckc0TeNQlkcpSVGa/qBIHLfZraWtdrNAQT4A1fa
 sWGuJrChBFhtKbYXbUCu9AoYmmbQnsx2EWoJy3h7OjtfFapJbPZql+no5AJ3Mk9eE5oWyLH+
 QWqtOeJM7kKvn/dBudokFSNhDUw06e7EoVPSJyUIMbYtUO7g2+Atu44G/EPP0yV0J4lRO6EA
 wYRXff7+I1jIWEHpj5EFVYO6SmBg7zF2illHEW31JAPtdDLDHYcZDfS41caEKOQIPsdzQkaQ
 oW2hchcjcMPAfyhhRzUpVHLPxLCetP8vrVhTvnaZUo0xaVYb3+wjP+D5j/3+hwblu2agPsaE
 vgVbZ8Fx3TUxUPCAdr/p73DGg57oHjgezsDNBGUPz1gBDAD4Mg7hMFRQqlzotcNSxatlAQNL
 MadLfUTFz8wUUa21LPLrHBkUwm8RujehJrzcVbPYwPXIO0uyL/F///CogMNx7Iwo6by43KOy
 g89wVFhyy237EY76j1lVfLzcMYmjBoTH95fJC/lVb5Whxil6KjSN/R/y3jfG1dPXfwAuZ/4N
 cMoOslWkfZKJeEut5aZTRepKKF54T5r49H9F7OFLyxrC/uI9UDttWqMxcWyCkHh0v1Di8176
 jjYRNTrGEfYfGxSp+3jYL3PoNceIMkqM9haXjjGl0W1B4BidK1LVYBNov0rTEzyr0a1riUrp
 Qk+6z/LHxCM9lFFXnqH7KWeToTOPQebD2B/Ah5CZlft41i8L6LOF/LCuDBuYlu/fI2nuCc8d
 m4wwtkou1Y/kIwbEsE/6RQwRXUZhzO6llfoN96Fczr/RwvPIK5SVMixqWq4QGFAyK0m/1ap4
 bhIRrdCLVQcgU4glo17vqfEaRcTW5SgX+pGs4KIPPBE5J/ABD6pBnUUAEQEAAcLA/AQYAQgA
 JhYhBIUq/WFSDTiOvUIqv2u9DlcdrjdRBQJlD89ZBQkFo5qAAhsMAAoJEGu9DlcdrjdR4C0L
 /RcjolEjoZW8VsyxWtXazQPnaRvzZ4vhmGOsCPr2BPtMlSwDzTlri8BBG1/3t/DNK4JLuwEj
 OAIE3fkkm+UG4Kjud6aNeraDI52DRVCSx6xff3bjmJsJJMb12mWglN6LjdF6K+PE+OTJUh2F
 dOhslN5C2kgl0dvUuevwMgQF3IljLmi/6APKYJHjkJpu1E6luZec/lRbetHuNFtbh3xgFIJx
 2RpgVDP4xB3f8r0I+y6ua+p7fgOjDLyoFjubRGed0Be45JJQEn7A3CSb6Xu7NYobnxfkwAGZ
 Q81a2XtvNS7Aj6NWVoOQB5KbM4yosO5+Me1V1SkX2jlnn26JPEvbV3KRFcwV5RnDxm4OQTSk
 PYbAkjBbm+tuJ/Sm+5Yp5T/BnKz21FoCS8uvTiziHj2H7Cuekn6F8EYhegONm+RVg3vikOpn
 gao85i4HwQTK9/D1wgJIQkdwWXVMZ6q/OALaBp82vQ2U9sjTyFXgDjglgh00VRAHP7u1Rcu4
 l75w1xInsg==
In-Reply-To: <CALMp9eRJkzA2YXf1Dfxt3ONP+P9aTA=WPraOPJPJ6C6j677+6Q@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 4/11/2025 2:12 PM, Jim Mattson wrote:
> Surely, any CPU that has WRMSRNS also supports "Virtualize
> IA32_SPEC_CTRL," right? Shouldn't we be using that feature rather than
> swapping host and guest values with some form of WRMSR?

Good question, the simple answer is that they are irrelevant.


From xen-devel-bounces@lists.xenproject.org Sat Apr 12 14:05:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 12 Apr 2025 14:05:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.948247.1345613 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3bU1-0008Rh-AW; Sat, 12 Apr 2025 14:05:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 948247.1345613; Sat, 12 Apr 2025 14:05: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 1u3bU1-0008RY-5I; Sat, 12 Apr 2025 14:05:21 +0000
Received: by outflank-mailman (input) for mailman id 948247;
 Sat, 12 Apr 2025 14:05:19 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=YsqC=W6=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u3bTz-0008RO-6M
 for xen-devel@lists.xenproject.org; Sat, 12 Apr 2025 14:05:19 +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 28bf487d-17a7-11f0-9ffb-bf95429c2676;
 Sat, 12 Apr 2025 16:05:16 +0200 (CEST)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-43ce71582e9so23424385e9.1
 for <xen-devel@lists.xenproject.org>; Sat, 12 Apr 2025 07:05:16 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43f23158849sm119975865e9.0.2025.04.12.07.05.13
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sat, 12 Apr 2025 07:05: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: 28bf487d-17a7-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744466715; x=1745071515; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=3Z6fVRPX9Pt5YkoZ34E9hxS7unoAhfIreaWAiVO6kNA=;
        b=qpUHhVEEr48WqiMZWIfcmDGVz6i+w//BI6+arXoF6dViujpWiwv6D8u9tvVk9qKdU1
         QyOV+ILwZG9PlsLjMIUyNOG9Aa/wLksev4XOPpBUHnBX57XvUjMaMwp9tWOm9FxSd/Jh
         VUImraMZGwBewjOrfrIsBhTyn22SvP+39xKHg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744466715; x=1745071515;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=3Z6fVRPX9Pt5YkoZ34E9hxS7unoAhfIreaWAiVO6kNA=;
        b=TtvV+g6hpsAv07+21IhDolaCAOs5VavE0fU4xqhup4RyS5fVYpvGRt05qjfg/neTCB
         9bhsAg8NNTjiLyEBeJDrYPbZTTFnwBhOUJLxas1fCE/TL9FBC6fIHanXNl6F9BRKP7pN
         vZPMPq01LIoW/VCR6EYger9xPP0joubOejNn7N5+Gu6vpBzWsXK3BGF0OnmDD2Xj6Vw6
         0W5zZ6mOHjzmtlic9lJ45/q3ZBoplDGv9NdE0GYNW8HxcITb+sQ6FmYxof5zKQUHtwgy
         YpeZk8rbfZBMqS2WbuEf11Y7Fqar77zHxx+eQQf8+87P32+8dhddcSoZZgJpwX83mw3U
         92SA==
X-Forwarded-Encrypted: i=1; AJvYcCXmrTDiC6vbQxZLb0vENzkRqQ/J+D6AewgngNI229VaeyglKrMOiT4S76TBxJrVNendeHNCMTkb3hQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz38DOZ+fqD9vZkoAgnwHofgVjFZqCuJni+uF9rZz71qjYSbdi5
	m1FFxyC8+waU101B5uX20u4waxt7jvP6VXAyJwMq7qNLxsu9Dn0tVEyFkQim7JA=
X-Gm-Gg: ASbGncuSTrl4gI8xccBY0QcVM8ualHTPCG5VqNiLAqLDas6OKUFN0LH3xg8e06D0D5X
	U80nq3C0D4/QM8Mpt+jeZVbZGfLgjVdveVl2Yfo+ZfEljU5qrPu6wyNpcwKqNXd8CfC+awgDyCR
	51w60wloh6R7821IKeH2dHQFGumMtrYuJEE9S+nmyTm1XugJ9LSiC4dlGxk/XYYBv7sw71hID4k
	I11CwAvzCgqQ2W9zTGhb+y8d2eqSJ9UYLeKm8p4FoxGtsymE23DVCDEPR7Nru0FrESlDG68ySSD
	f8IqRxwkCqI/Hcsuq0OZw42S+Re5Eo7sHJZKdjQ0IZL8Fqay50LyYZ7Zff0z1wIYPWenfLxz02p
	URAGqRw==
X-Google-Smtp-Source: AGHT+IGqPNnYR73RZw4WdNeN2Kl4NEpYwFllR0FMwTaUdKgr/RatX3Oj/WwFYBK6lyMhxNF7DdorVg==
X-Received: by 2002:a05:600c:5494:b0:43c:f050:fed3 with SMTP id 5b1f17b1804b1-43f3a93d850mr58733745e9.11.1744466715331;
        Sat, 12 Apr 2025 07:05:15 -0700 (PDT)
Message-ID: <b1ffc4df-bd79-47ec-b80c-8bd935f5f2ed@citrix.com>
Date: Sat, 12 Apr 2025 15:05:13 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 5/7] CI: avoid repacking initrd as part of the test job
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, xen-devel@lists.xenproject.org
Cc: Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>
References: <cover.146eb3617cc9cf442dd4fc7a0a8950fb1bc191c8.1744403499.git-series.marmarek@invisiblethingslab.com>
 <c7bd8aa95e8bd85f3e42ed4f07d69444f5435e25.1744403499.git-series.marmarek@invisiblethingslab.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: <c7bd8aa95e8bd85f3e42ed4f07d69444f5435e25.1744403499.git-series.marmarek@invisiblethingslab.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 11/04/2025 9:32 pm, Marek Marczykowski-Górecki wrote:
> The prerequisite for this is building rootfs.cpio.gz, not only
> initrd.tar.gz. That's a change in the test-artifacts repository in the
> "Rootfs generation" series from Andrew.
>
> Having that, do not repack the whole initrd, but only pack modified
> files and rely on Linux handling of concatenated archives.
> This allows packing just test-related files (which includes the whole
> toolstack), instead of the whole initrd.
>
> DomU initrd handling is a bit more complicated thing. It's sent to the
> target host as part of the dom0 initrd. For now include prepared domU
> initrd as a whole in dom0's rootfs "overlay", which means compressing it
> (again) each job (this takes 3s). This can be later improved by
> splitting domU initrd into two parts (base + overlay) and concatenate
> them in target dom0 already. For this to be useful, test-artifacts would
> need to provide pre-made double-cpio version too (rootfs.cpio.gz wrapper
> in yet another cpio.gz as boot/domU-initrd).
>
> Since full initrd is not unpacked now when preparing domU (and dom0)
> rootfs, a couple of minor changes are needed to how they are prepared.
> This includes creating whole etc/issue file, instead of modifying
> existing one, and a need to create a couple directories.
>
> Finally, move adding "rc_verbose=yes" to /etc/rc.conf to initrd
> building.
>
> Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
> ---
> Changes in v3:
> - adjust for Andrew's version of cpio rootfs artifacts
> - don't require double-cpio archive for domU initrd, instead add it via
>   dom0 initrd as plain cpio to avoid re-compressing the same thing
> New in v2
>
> Jobs xilinx-* are untested, as I don't have necessary access.

I can test these.

> ---
>  automation/gitlab-ci/test.yaml                    |  6 +++--
>  automation/scripts/qemu-alpine-x86_64.sh          |  9 +++-----
>  automation/scripts/qemu-smoke-dom0-arm64.sh       |  7 ++----
>  automation/scripts/qemu-smoke-dom0less-arm64.sh   |  7 ++----
>  automation/scripts/qubes-x86-64.sh                | 18 +++++++---------
>  automation/scripts/xilinx-smoke-dom0-x86_64.sh    | 15 ++++++-------
>  automation/scripts/xilinx-smoke-dom0less-arm64.sh | 14 +++++-------
>  7 files changed, 35 insertions(+), 41 deletions(-)
>
> diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
> index 59a2de28c864..3e02bf0e4d21 100644
> --- a/automation/gitlab-ci/test.yaml
> +++ b/automation/gitlab-ci/test.yaml
> @@ -11,7 +11,9 @@
>    - project: xen-project/hardware/test-artifacts
>      job: linux-6.6.86-arm64
>      ref: master
> -  - alpine-3.18-arm64-rootfs-export
> +  - project: xen-project/hardware/test-artifacts
> +    job: alpine-3.18-arm64-rootfs
> +    ref: master
>    - qemu-system-aarch64-6.0.0-arm64-export
>  
>  .arm32-test-needs: &arm32-test-needs
> @@ -22,7 +24,7 @@
>      job: linux-6.6.56-x86_64
>      ref: master
>    - project: xen-project/hardware/test-artifacts
> -    job: x86_64-rootfs-alpine-3.18
> +    job: alpine-3.18-x86_64-rootfs
>      ref: master
>  
>  .qemu-arm64:
> diff --git a/automation/scripts/qemu-alpine-x86_64.sh b/automation/scripts/qemu-alpine-x86_64.sh
> index 89bdb4df7dac..6e0a67b4018c 100755
> --- a/automation/scripts/qemu-alpine-x86_64.sh
> +++ b/automation/scripts/qemu-alpine-x86_64.sh

There are some very poor choices of name in this script.  I'll do a prep
patch to make them consistent.

> @@ -28,16 +28,15 @@ cd initrd
>  find . | cpio --create --format='newc' | gzip > ../initrd.cpio.gz
>  cd ..
>  
> -# initrd.tar.gz is Dom0 rootfs
> +# Dom0 rootfs - overlay on top of rootfs.cpio.gz
>  mkdir -p rootfs
>  cd rootfs
> -tar xvzf ../initrd.tar.gz
>  mkdir proc
>  mkdir run
>  mkdir srv
>  mkdir sys
> -rm var/run

I'm not sure why we need to make proc, run, srv, sys in the overlay
image, but this is repeated everywhere.

srv is just a plain empty dir.  It's missing from $PATHS in the rootfs
generation, so that's easy.

proc, run and sys are more complicated, because we don't want to simply
copy them from the rootfs generation environment.

dev is also in the same boat, and what we do now seems to cause openrc
not to seed it normally, which seems unwise.

I'll see what I can do to clean this all up.

> diff --git a/automation/scripts/xilinx-smoke-dom0-x86_64.sh b/automation/scripts/xilinx-smoke-dom0-x86_64.sh
> index 4db249530823..52a0e05e3f1b 100755
> --- a/automation/scripts/xilinx-smoke-dom0-x86_64.sh
> +++ b/automation/scripts/xilinx-smoke-dom0-x86_64.sh
> @@ -80,6 +80,7 @@ argo-exec -l -p 28333 -- /bin/echo
>  "
>  copy_dom0_files ()
>  {
> +    mkdir -p root usr/local/lib
>      cp "${WORKDIR}/binaries/xen-argo.ko" "root/"
>      cp -ar "${WORKDIR}/binaries/lib/"* "usr/local/lib/"
>      cp "${WORKDIR}/binaries/argo-exec" "usr/local/bin/"

This would be better based on top of my patch to switch to the new argo,
at which point it will simply be to append argo.cpio.gz.

~Andrew


From xen-devel-bounces@lists.xenproject.org Sat Apr 12 14:19:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 12 Apr 2025 14:19:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.948264.1345626 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3bhc-0003TW-D1; Sat, 12 Apr 2025 14:19:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 948264.1345626; Sat, 12 Apr 2025 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 1u3bhc-0003TP-AV; Sat, 12 Apr 2025 14:19:24 +0000
Received: by outflank-mailman (input) for mailman id 948264;
 Sat, 12 Apr 2025 14:19: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=E+MK=W6=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1u3bhb-0003TI-Em
 for xen-devel@lists.xenproject.org; Sat, 12 Apr 2025 14:19:23 +0000
Received: from fout-a3-smtp.messagingengine.com
 (fout-a3-smtp.messagingengine.com [103.168.172.146])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 200c1e1a-17a9-11f0-9eae-5ba50f476ded;
 Sat, 12 Apr 2025 16:19:21 +0200 (CEST)
Received: from phl-compute-11.internal (phl-compute-11.phl.internal
 [10.202.2.51])
 by mailfout.phl.internal (Postfix) with ESMTP id B533A1380228;
 Sat, 12 Apr 2025 10:19:19 -0400 (EDT)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-11.internal (MEProxy); Sat, 12 Apr 2025 10:19:19 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sat,
 12 Apr 2025 10:19:18 -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: 200c1e1a-17a9-11f0-9eae-5ba50f476ded
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=fm2; t=1744467559;
	 x=1744553959; bh=kdy9YcbRixYr38eG/yxPHaxk84zlq538sH/+3WCX7eU=; b=
	krvEGEKDHDgQVApWRUDjxu2ydmqjF9vuOUoLJS0B9DloMq0+A1dyeCeU+GkCNpGk
	Zx2yA94vq7mFuM0EITJ6Oo8F2RgPOg98cvZHfaer+MiFOP+SRWgnuD79/pDj2Q1g
	7Imdl21RmiKQU1t70vpoyMEHZDyXJMyqGAOtFhEL4CzhifFqjl5Muq7qc+3Wypmj
	BzcY8sV8wXVetyj6hS0pOL2XlOBPH/qcsdB7z05BbZa3dcZ8id6T+FSm7EgOwADy
	o23BrxNuqgmHFf6MFRtFulGdGJ4Y7Cn6CtIe3qRWuzu9Nm+nSagArhtkafxQlFCw
	vxtnnEi3K0UmuZ+xwysIzg==
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=fm2; t=
	1744467559; x=1744553959; bh=kdy9YcbRixYr38eG/yxPHaxk84zlq538sH/
	+3WCX7eU=; b=cT5/w5mFgKUUShhSoIA7lc8SJr0MhNJ/PfyaDUfMH4TjZGmj6Sm
	avtPl8Amn7ty+Kylqoxh1Je+TlpNfR1Q9KZ8spnIEPIw/9MOV6d1c6AsqMQ4R/O6
	P9OExhCQeJmdpAJ/UBk3O4g3EMUW0m+Gz3hOG5F6MOdKTPnZsy5NTLxyuVbSq8gj
	00sGn5RlgJlr2qA/Mwmzh2Q76yOGvAnkNE6q601sLYezzkQ3WiFx9U4MQxs0heEY
	zyq2v93tTQjYjjGT1IEf1zEG9gpujY8bSd4BahcO479teyZSebzJj7xRsmzIELvL
	mQ7sVeockHjVtLqr4x/vGr0Z19EYz9OUT8g==
X-ME-Sender: <xms:Z3b6Z-OADuryoFLmgO_0Wi9DfrAVCea6RjGpjyPI5S0DnPu4H0-RCA>
    <xme:Z3b6Z8_uMqNM2TQ8pm_uFWNqXSDDwMyuVky2uxIq3f7zCYr0ztjA5dObOVrUctSaS
    qupOrxVFtzwSg>
X-ME-Received: <xmr:Z3b6Z1QAct8LqHZKnoYw0CeG2l5eNPlCZug_vNv2oy85cMaIZ_1phiDwwIJuKmUU5jxH84nlOYOskWGJw5Lez9QsyhizVLqfiQ>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvudegleehucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
    pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
    gvnhhtshculddquddttddmnecujfgurhepfffhvfevuffkfhggtggujgesghdtreertddt
    jeenucfhrhhomhepofgrrhgvkhcuofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuc
    eomhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecu
    ggftrfgrthhtvghrnhepgfduleetfeevhfefheeiteeliefhjefhleduveetteekveettd
    dvgeeuteefjedunecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhf
    rhhomhepmhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomh
    dpnhgspghrtghpthhtohepgedpmhhouggvpehsmhhtphhouhhtpdhrtghpthhtoheprghn
    ughrvgifrdgtohhophgvrhefsegtihhtrhhigidrtghomhdprhgtphhtthhopeigvghnqd
    guvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdprhgtphhtthhopegt
    rghrughovgestggrrhguohgvrdgtohhmpdhrtghpthhtohepshhsthgrsggvlhhlihhnih
    eskhgvrhhnvghlrdhorhhg
X-ME-Proxy: <xmx:Z3b6Z-sHKfquZQGLEatmwFQ2AQ3xFp9PL-mZDK5nrAkz3BTvVt5s-Q>
    <xmx:Z3b6Z2dFfbMuziJFz2VEbn6cHwHj-uq1FWgvJ4g_TX5GypQ2K7EiUw>
    <xmx:Z3b6Zy2zi8aCrYLh8am7djYjMfzXGjsezM_WVDqUnGfghQjAJM1GLA>
    <xmx:Z3b6Z69Jj7Iyjqs_y8ftsDQrnZ6Dy70X29pVsM5dPYJpA8l5UyUSWA>
    <xmx:Z3b6Z_vR9DOUk4UvzfTD0hMhNe4IBn4k1dnWAG8STDGKniP5EHDliAgp>
Feedback-ID: i1568416f:Fastmail
Date: Sat, 12 Apr 2025 16:19:15 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: xen-devel@lists.xenproject.org, Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH v3 5/7] CI: avoid repacking initrd as part of the test job
Message-ID: <Z_p2Y8tgLujBxGF3@mail-itl>
References: <cover.146eb3617cc9cf442dd4fc7a0a8950fb1bc191c8.1744403499.git-series.marmarek@invisiblethingslab.com>
 <c7bd8aa95e8bd85f3e42ed4f07d69444f5435e25.1744403499.git-series.marmarek@invisiblethingslab.com>
 <b1ffc4df-bd79-47ec-b80c-8bd935f5f2ed@citrix.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="uf6Cu/I+VvJoSbeU"
Content-Disposition: inline
In-Reply-To: <b1ffc4df-bd79-47ec-b80c-8bd935f5f2ed@citrix.com>


--uf6Cu/I+VvJoSbeU
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Sat, 12 Apr 2025 16:19:15 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: xen-devel@lists.xenproject.org, Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH v3 5/7] CI: avoid repacking initrd as part of the test job

On Sat, Apr 12, 2025 at 03:05:13PM +0100, Andrew Cooper wrote:
> On 11/04/2025 9:32 pm, Marek Marczykowski-G=C3=B3recki wrote:
> > @@ -28,16 +28,15 @@ cd initrd
> >  find . | cpio --create --format=3D'newc' | gzip > ../initrd.cpio.gz
> >  cd ..
> > =20
> > -# initrd.tar.gz is Dom0 rootfs
> > +# Dom0 rootfs - overlay on top of rootfs.cpio.gz
> >  mkdir -p rootfs
> >  cd rootfs
> > -tar xvzf ../initrd.tar.gz
> >  mkdir proc
> >  mkdir run
> >  mkdir srv
> >  mkdir sys
> > -rm var/run
>=20
> I'm not sure why we need to make proc, run, srv, sys in the overlay
> image, but this is repeated everywhere.
>=20
> srv is just a plain empty dir.=C2=A0 It's missing from $PATHS in the root=
fs
> generation, so that's easy.

srv is indeed likely not needed, but there is enough changes here
already.

> proc, run and sys are more complicated, because we don't want to simply
> copy them from the rootfs generation environment.

As for those mountpoints, they looks to be necessary - in a job that
failed to unpack this overlay part, openrc failed to mount those
filesystems and crashed rather badly (especially without /run...).
I'm not sure if that's something that is missing in the base archive, or
is a problem for another reason, but it seems to be necessary to have it
here, at least without changes elsewhere.
Looking at PATHS in alpine-rootfs.sh they may be simply skipped there.

> dev is also in the same boat, and what we do now seems to cause openrc
> not to seed it normally, which seems unwise.

It mounts devtmpfs there anyway, no?

> I'll see what I can do to clean this all up.
>=20
> > diff --git a/automation/scripts/xilinx-smoke-dom0-x86_64.sh b/automatio=
n/scripts/xilinx-smoke-dom0-x86_64.sh
> > index 4db249530823..52a0e05e3f1b 100755
> > --- a/automation/scripts/xilinx-smoke-dom0-x86_64.sh
> > +++ b/automation/scripts/xilinx-smoke-dom0-x86_64.sh
> > @@ -80,6 +80,7 @@ argo-exec -l -p 28333 -- /bin/echo
> >  "
> >  copy_dom0_files ()
> >  {
> > +    mkdir -p root usr/local/lib
> >      cp "${WORKDIR}/binaries/xen-argo.ko" "root/"
> >      cp -ar "${WORKDIR}/binaries/lib/"* "usr/local/lib/"
> >      cp "${WORKDIR}/binaries/argo-exec" "usr/local/bin/"
>=20
> This would be better based on top of my patch to switch to the new argo,
> at which point it will simply be to append argo.cpio.gz.
>=20
> ~Andrew

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

--uf6Cu/I+VvJoSbeU
Content-Type: application/pgp-signature; name=signature.asc

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmf6dmMACgkQ24/THMrX
1yx6yggAg5NpZyM60JavJLduFAytSjafps1HR+7tMKOBtkQGYZygWwgc+YJkrkqv
YaJER97MPxPoakSM+ySsIioyLIPU/nFKJ2Rm5sk80dDAXBhy/tq8JxjVFQqO6L8o
spUiajmwkc1ag+f2MWVQdD9pu1Oq6bnYBK+my3lr6dxlkamLxdcCUVAPI37iQCoz
X5UfFAT/BnVFsRuGZFnyXOV3wNr0WS6i76z9oo2rZK17sha0+JEJ4Km6HeQR5GNo
Arv0ES/7DvVljUOl8Gh070rKJ5u5IFEHn7nIfOZT4NOs0xIgXpZSrz51PWnrmuaH
4CCRE0htWyVCoTddUh1G1O0Wpn/bmQ==
=zurd
-----END PGP SIGNATURE-----

--uf6Cu/I+VvJoSbeU--


From xen-devel-bounces@lists.xenproject.org Sat Apr 12 16:42:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 12 Apr 2025 16:42:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.948348.1345641 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3dvn-0003uY-2Z; Sat, 12 Apr 2025 16:42:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 948348.1345641; Sat, 12 Apr 2025 16:42: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 1u3dvm-0003uR-Vm; Sat, 12 Apr 2025 16:42:10 +0000
Received: by outflank-mailman (input) for mailman id 948348;
 Sat, 12 Apr 2025 16:42: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=YsqC=W6=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u3dvk-0003uJ-Uc
 for xen-devel@lists.xenproject.org; Sat, 12 Apr 2025 16:42:08 +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 11d40223-17bd-11f0-9eae-5ba50f476ded;
 Sat, 12 Apr 2025 18:42:06 +0200 (CEST)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-43ede096d73so21948325e9.2
 for <xen-devel@lists.xenproject.org>; Sat, 12 Apr 2025 09:42:06 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43f2066d92csm122981915e9.24.2025.04.12.09.42.04
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sat, 12 Apr 2025 09:42: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: 11d40223-17bd-11f0-9eae-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744476126; x=1745080926; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=amB9wIbUskdsHmNTzZzQUPBhbBxEsnDgH1hkUEl6XC0=;
        b=lTeVj+5cy+C4eurlfkcLDjKLhwjUXDx4362WqIdiW/H/4uptakTXK+azv884wBH3qa
         i4r2VQE879o5ysUMNVqd+RBSWFAwz5FtsgQcQCHIANPftxePN+l5dVD8ti66q8zSGJDb
         OHKUMX26kUpeVViej0l8ADXf/AO1AyC8cR1as=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744476126; x=1745080926;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=amB9wIbUskdsHmNTzZzQUPBhbBxEsnDgH1hkUEl6XC0=;
        b=nnccznLrQSuJmePFrVcybmwhuM+Ud7NeXU5VT6CnIHp+3N+IfNP+LA/kaIaZ+XbCAI
         2DQcuUulcftRzV0IAqrkMBrcexgy6OxCTgMq036SxNcrPYjF2WIKKG5FODWy7TDkxlXK
         mcrOvZrFS+8mVAjxhGimIlz9nDk/LV3cF5pG82jXhkAAVV1YwI/GSzXvpghusKUJkxy9
         SuxQfJgP4+rwEu3weOvfJ+MFcL2cm2FP/exLVplafBqtYj3b3KGqAHO5Cqr3pRlaw9P6
         nkFrxU6nvv4xWgVr1NlkrKzE7CXYKOPxJx26A3QlSyjUU8EqFhSWhRFWEevX37NWZaZz
         8z4g==
X-Forwarded-Encrypted: i=1; AJvYcCVmgPJM/vJBHsyJHxfbvWcel1tlRO8PKMI8HI1hd3So/7sg9rYeNAPm8e9g+PdFL4xU4FcK+eKo4d4=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy5HzhLaCRYYTgjxh5J3RADQPCIh07OWFnKcxw6lveFFl3aXewF
	Z8iC60QBcmbjvek50f7PrZ3M3plqyYoS6pn0VtiOox6HteoVaFpf+yNM+mHVftY=
X-Gm-Gg: ASbGncs/cLAT/aDPoO3Js2XRX2NLSIHZ/JmR6fdyiu8EypgSJ7m5Dd5uv8y3Co2a33p
	JPFn6WhWrq61yHTB91V0z1foMg6I4hCvhflkqGmeEUFE42RXBAKXxMXDJZns2TchIdVDRfMHGrk
	ulOCB2vPNTtw+ET8UrUfSGp+icM6ADr2t/JyMxtV0ZKX9LjMEwf3piweah8WLDuLxVJH/IyASD/
	Q9Hd4eRAQdDPildAqHNJBa9iXL5SYTM/9mgIatLqSQAjNLEkTBtsYr4Rwob15kGJT6+dAbA53O/
	8PoJay+pfMcUTIF3qLPRWoEC/8kQI93+DraD6HnESnHytY4yzqj7YsoJ40QQN7t80kZqoNMR3ts
	hNBLRnQ==
X-Google-Smtp-Source: AGHT+IFU/yz3W7QkGTw/S9MTSGkxQyLC/rbnGY1rR/G3x8bIpqfkynp2DHEm28UoonYN0p8KS2mpqA==
X-Received: by 2002:a05:600c:a04:b0:43d:ed:acd5 with SMTP id 5b1f17b1804b1-43f3a93d4a8mr67329945e9.10.1744476125626;
        Sat, 12 Apr 2025 09:42:05 -0700 (PDT)
Message-ID: <48036676-3d7a-4bf7-b106-b23465371e31@citrix.com>
Date: Sat, 12 Apr 2025 17:42:04 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 5/7] CI: avoid repacking initrd as part of the test job
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, xen-devel@lists.xenproject.org
Cc: Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>
References: <cover.146eb3617cc9cf442dd4fc7a0a8950fb1bc191c8.1744403499.git-series.marmarek@invisiblethingslab.com>
 <c7bd8aa95e8bd85f3e42ed4f07d69444f5435e25.1744403499.git-series.marmarek@invisiblethingslab.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: <c7bd8aa95e8bd85f3e42ed4f07d69444f5435e25.1744403499.git-series.marmarek@invisiblethingslab.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 11/04/2025 9:32 pm, Marek Marczykowski-Górecki wrote:
> The prerequisite for this is building rootfs.cpio.gz, not only
> initrd.tar.gz. That's a change in the test-artifacts repository in the
> "Rootfs generation" series from Andrew.
>
> Having that, do not repack the whole initrd, but only pack modified
> files and rely on Linux handling of concatenated archives.
> This allows packing just test-related files (which includes the whole
> toolstack), instead of the whole initrd.

It's probably worth saying ", fixed subsequently)" for the toolstack, as
it's the single largest aspect.

> DomU initrd handling is a bit more complicated thing. It's sent to the
> target host as part of the dom0 initrd. For now include prepared domU
> initrd as a whole in dom0's rootfs "overlay", which means compressing it
> (again) each job (this takes 3s). This can be later improved by
> splitting domU initrd into two parts (base + overlay) and concatenate
> them in target dom0 already. For this to be useful, test-artifacts would
> need to provide pre-made double-cpio version too (rootfs.cpio.gz wrapper
> in yet another cpio.gz as boot/domU-initrd).
>
> Since full initrd is not unpacked now when preparing domU (and dom0)
> rootfs, a couple of minor changes are needed to how they are prepared.
> This includes creating whole etc/issue file, instead of modifying
> existing one, and a need to create a couple directories.
>
> Finally, move adding "rc_verbose=yes" to /etc/rc.conf to initrd
> building.

These two paragraphs are a little stale now.  etc/issue has already been
committed, and there's no initd building now I've moved arm into test
artefacts.

However, they're going to need tweaking again if I can get the rootfs
generation working more nicely, so lets hold off for now.

>
> Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
> ---
> Changes in v3:
> - adjust for Andrew's version of cpio rootfs artifacts
> - don't require double-cpio archive for domU initrd, instead add it via
>   dom0 initrd as plain cpio to avoid re-compressing the same thing
> New in v2
>
> Jobs xilinx-* are untested, as I don't have necessary access.
> ---
>  automation/gitlab-ci/test.yaml                    |  6 +++--
>  automation/scripts/qemu-alpine-x86_64.sh          |  9 +++-----
>  automation/scripts/qemu-smoke-dom0-arm64.sh       |  7 ++----
>  automation/scripts/qemu-smoke-dom0less-arm64.sh   |  7 ++----
>  automation/scripts/qubes-x86-64.sh                | 18 +++++++---------
>  automation/scripts/xilinx-smoke-dom0-x86_64.sh    | 15 ++++++-------
>  automation/scripts/xilinx-smoke-dom0less-arm64.sh | 14 +++++-------
>  7 files changed, 35 insertions(+), 41 deletions(-)

One thing that does matter now is the order of appending archives.

I've reworked this locally to be of the form:

# DomU rootfs
cp ../binaries/rootfs.cpio.gz ../binaries/domU-rootfs.cpio.gz

# test-local configuration
mkdir rootfs
...
find . | cpio -H newc -o | gzip >> ../binaries/domU-rootfs.cpio.gz


This then ends up looking rather more clean in followon patches, where
we end up with:

# Dom0 rootfs
cp ../binaries/ucode.cpio ../binaries/dom0-rootfs.cpio.gz
cat ../binaries/rootfs.cpio.gz >> ../binaries/dom0-rootfs.cpio.gz
cat ../binaries/toolstack.cpio.gz >> ../binaries/dom0-rootfs.cpio.gz
if [[ "${TEST}" == argo ]]; then
    cat ../binaries/argo.cpio.gz >> ../binaries/dom0-rootfs.cpio.gz
fi

# test-local configuration
...
find . | cpio -H newc -o | gzip >> ../binaries/dom0-rootfs.cpio.gz


> diff --git a/automation/scripts/xilinx-smoke-dom0-x86_64.sh b/automation/scripts/xilinx-smoke-dom0-x86_64.sh
> index 4db249530823..52a0e05e3f1b 100755
> --- a/automation/scripts/xilinx-smoke-dom0-x86_64.sh
> +++ b/automation/scripts/xilinx-smoke-dom0-x86_64.sh
> @@ -80,6 +80,7 @@ argo-exec -l -p 28333 -- /bin/echo
>  "
>  copy_dom0_files ()
>  {
> +    mkdir -p root usr/local/lib
>      cp "${WORKDIR}/binaries/xen-argo.ko" "root/"
>      cp -ar "${WORKDIR}/binaries/lib/"* "usr/local/lib/"
>      cp "${WORKDIR}/binaries/argo-exec" "usr/local/bin/"
> @@ -92,9 +93,8 @@ fi
>  # Set up domU rootfs.
>  mkdir -p rootfs
>  cd rootfs
> -tar xzf ../binaries/initrd.tar.gz
>  mkdir proc run srv sys
> -rm var/run
> +mkdir -p etc/local.d
>  echo "#!/bin/sh
>  set -x
>  export LD_LIBRARY_PATH=/usr/local/lib
> @@ -102,23 +102,22 @@ PATH=/usr/local/bin:/usr/local/sbin:\$PATH
>  ${DOMU_CMD}
>  " > etc/local.d/xen.start
>  chmod +x etc/local.d/xen.start
> -echo "rc_verbose=yes" >> etc/rc.conf
>  echo "domU Welcome to Alpine Linux 3.18
>  Kernel \r on an \m (\l)
>  
>  " > etc/issue
>  copy_domU_files
> -find . | cpio -H newc -o | gzip > ../binaries/domU-rootfs.cpio.gz
> +cp ../binaries/initrd.cpio.gz ../binaries/domU-rootfs.cpio.gz

Stray initrd.  Found while reworking.

I'll give the whole lot commit-by-commit full runs, when I'm done tinkering.

~Andrew


From xen-devel-bounces@lists.xenproject.org Sat Apr 12 16:55:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 12 Apr 2025 16:55:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.948365.1345650 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3e8p-0007Ny-BT; Sat, 12 Apr 2025 16:55:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 948365.1345650; Sat, 12 Apr 2025 16:55: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 1u3e8p-0007Nr-8q; Sat, 12 Apr 2025 16:55:39 +0000
Received: by outflank-mailman (input) for mailman id 948365;
 Sat, 12 Apr 2025 16:55: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=YsqC=W6=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u3e8o-0007Ni-C0
 for xen-devel@lists.xenproject.org; Sat, 12 Apr 2025 16:55:38 +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 f3b060ac-17be-11f0-9ffb-bf95429c2676;
 Sat, 12 Apr 2025 18:55:35 +0200 (CEST)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-43cebe06e9eso22858485e9.3
 for <xen-devel@lists.xenproject.org>; Sat, 12 Apr 2025 09:55:34 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39eae96c102sm5602186f8f.35.2025.04.12.09.55.33
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sat, 12 Apr 2025 09:55:33 -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: f3b060ac-17be-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744476934; x=1745081734; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=5Bk2fbldaX7E4BLzR3sE8/W+ib7ivsITT5HFQsc7Aoo=;
        b=G5Q7sS625SEkgxQyKJ3JFnPMJ0bikp7J+l4onl79mzGg3SAVW29nV8yU8zitwlP1Gq
         yjj1s+X90H6yW8RcDqloRMONAVoenZQN41Gy41uIgSBL9aC5FJrB1a+XzOCk07Ycx5+Y
         9AxSnTsFppP0Wsi7N6ulJbiI3821an6GO5TXE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744476934; x=1745081734;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=5Bk2fbldaX7E4BLzR3sE8/W+ib7ivsITT5HFQsc7Aoo=;
        b=Ic9HL35IHcysxXjHDE6bHafFqhuR3CbPmKqwORwOsCfDUgYrdlddCpMbVcXZetDMb1
         dx801qU0tYv2jv51G7oka+xOfIvdhidGgVoAsuWSXCoXPmOLEuECceYRvk7Dm2Pfx/lh
         kD+Bsb7WPaf+kP7CkzrSl0hoMn6ZU8fQeenFCHZmyKTVQ7eYBMYr6m/ab/GlHgcfTQ7H
         BZ+yqftil9Rfu3z3KOisPsIbdsTSbj9W8Sa3ZQ5Kt0lPm2JJditsphocPY0NyxNQzFfd
         9259y952lR8NKZVmfT8HeJJWwmo+W/osLzrjJHKLWF+3Rn0BI34/vbDkJmwRqiwobLxN
         sKKA==
X-Forwarded-Encrypted: i=1; AJvYcCUmsdY61ncx3TgfhjaH1gWaV2sW2H3qekbOOpNjcc7qYj/9pSypQxeyKNggE1PaH6uiNbc2dbQbfLQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyC97w1yqS8ZcMS33corHItr0+G0KsOgrx8o5dFEWwbesx+0Q8t
	S+oHH9ZQB6+oSta7bm4Z4Z4tQhfjXljGFGMH1412jDJEqrY0eb/d1Itng24MCxU=
X-Gm-Gg: ASbGncsFuZSLiayzC9u4SJGFks6Eeem2xxl2JNXJWpiXhf9YCsueUBApJfKJaolklwE
	j15kWWKYQz5TxWdiV44AgBUk1ykkFRIKWaMHFZRAFMfudmo0Uz0oB1j6KqI4l/ypEqGaZ8fvIOL
	wSPc59pm31wdgd/c8mtkdg7gf5Gg08rGo36qWrEyL/cusqnK/HfgwTZ6ksBUFPn0SUaqXJz5tzB
	WwIb458+spCZgAguznImQYk6mlpimRtG0KqvcPy8QNH4FNZ+GqiDDBGaYgMbX41SrOIaFCHZdWH
	VEp0i1mzfnmaNOp6+QJcERbG8C/+cnA6b+e/micVqINSxCwOpLGYbljpx/n2Q/DkCMLV1OAJ5yS
	wgVglng==
X-Google-Smtp-Source: AGHT+IFgnOx6WsAvvWWEwYf7tId+hL0DXnnUVFFifqm8c+3hhf9EwwHjfyTwtA8xD45Dwr6wgqIl4A==
X-Received: by 2002:a05:600c:4704:b0:43b:d0fe:b8ac with SMTP id 5b1f17b1804b1-43f3a9af837mr69696555e9.30.1744476934272;
        Sat, 12 Apr 2025 09:55:34 -0700 (PDT)
Message-ID: <187ce1a1-37bc-408b-af99-75c0c495a660@citrix.com>
Date: Sat, 12 Apr 2025 17:55:33 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 6/7] CI: remove now unused alpine-3.18-arm64-rootfs job
 and its container
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, xen-devel@lists.xenproject.org
Cc: Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>
References: <cover.146eb3617cc9cf442dd4fc7a0a8950fb1bc191c8.1744403499.git-series.marmarek@invisiblethingslab.com>
 <733860a00926d1d2d50e5914a783e5d777828442.1744403499.git-series.marmarek@invisiblethingslab.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: <733860a00926d1d2d50e5914a783e5d777828442.1744403499.git-series.marmarek@invisiblethingslab.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 11/04/2025 9:32 pm, Marek Marczykowski-Górecki wrote:
> This got moved to test-artifacts.
>
> Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>

Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Sat Apr 12 23:11:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 12 Apr 2025 23:11:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.948840.1345661 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3k0V-0007nJ-7Q; Sat, 12 Apr 2025 23:11:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 948840.1345661; Sat, 12 Apr 2025 23:11: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 1u3k0V-0007nB-3Z; Sat, 12 Apr 2025 23:11:27 +0000
Received: by outflank-mailman (input) for mailman id 948840;
 Sat, 12 Apr 2025 23:11: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=r9hs=W6=zytor.com=hpa@srs-se1.protection.inumbo.net>)
 id 1u3k0T-0007n4-6A
 for xen-devel@lists.xenproject.org; Sat, 12 Apr 2025 23:11:25 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7267e513-17f3-11f0-9eae-5ba50f476ded;
 Sun, 13 Apr 2025 01:11:22 +0200 (CEST)
Received: from [127.0.0.1] ([76.133.66.138]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53CNA8tE1265382
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NO);
 Sat, 12 Apr 2025 16:10:09 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7267e513-17f3-11f0-9eae-5ba50f476ded
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53CNA8tE1265382
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025032001; t=1744499412;
	bh=Z8ANyn5BO+4YSxFMj2ZIePI2Es9dy8Hv6toZ4ucWxdY=;
	h=Date:From:To:CC:Subject:In-Reply-To:References:From;
	b=lMBig7n3wyGQ77xYpn5pnxKVN4QM3Vkq6hDZcLvPaFwS2PWF/n09rzmm4i6ZIrSlX
	 ldJKqqxh7XGdq6n0fK1xSbkbF0eDIoNvUz2LhiGL+7mwgnCfFlBgBbxU3imjGP8GwY
	 zTU8dvf1jWNkf6+mSxkledPR0XPGAcZA1I9f+5+YiIA5YgCTj3M0isuBNWaO1BHck1
	 A5Uh/ZdjOxEnzIwdlikBQnfr1jA4LYpMjCETWZHP0OeiOO0PyexivLyItY7m/buoB1
	 Qlv5YTi1XbrFcCf8wBQrrImS7wL6ntMIDtBYRTjjMB9jzG1ZKHtxezcpa9pVk9CqYV
	 YnyFnuF53LDCw==
Date: Sat, 12 Apr 2025 16:10:06 -0700
From: "H. Peter Anvin" <hpa@zytor.com>
To: Xin Li <xin@zytor.com>, Jim Mattson <jmattson@google.com>,
        Sean Christopherson <seanjc@google.com>
CC: linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org,
        linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
        linux-edac@vger.kernel.org, kvm@vger.kernel.org,
        xen-devel@lists.xenproject.org, linux-ide@vger.kernel.org,
        linux-pm@vger.kernel.org, bpf@vger.kernel.org, llvm@lists.linux.dev,
        tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, jgross@suse.com,
        andrew.cooper3@citrix.com, peterz@infradead.org, acme@kernel.org,
        namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, luto@kernel.org,
        boris.ostrovsky@oracle.com, kys@microsoft.com, haiyangz@microsoft.com,
        decui@microsoft.com
Subject: =?US-ASCII?Q?Re=3A_=5BRFC_PATCH_v1_10/15=5D_KVM=3A_VMX=3A_Use_WR?=
 =?US-ASCII?Q?MSRNS_or_its_immediate_form_when_available?=
User-Agent: K-9 Mail for Android
In-Reply-To: <fa16949e-7842-45f7-9715-1bdda13b762a@zytor.com>
References: <20250331082251.3171276-1-xin@zytor.com> <20250331082251.3171276-11-xin@zytor.com> <Z_hTI8ywa3rTxFaz@google.com> <CALMp9eRJkzA2YXf1Dfxt3ONP+P9aTA=WPraOPJPJ6C6j677+6Q@mail.gmail.com> <fa16949e-7842-45f7-9715-1bdda13b762a@zytor.com>
Message-ID: <EAB44BB2-99BB-4D4A-8306-0235D2931E72@zytor.com>
MIME-Version: 1.0
Content-Type: text/plain;
 charset=utf-8
Content-Transfer-Encoding: quoted-printable

On April 11, 2025 9:32:32 PM PDT, Xin Li <xin@zytor=2Ecom> wrote:
>On 4/11/2025 2:12 PM, Jim Mattson wrote:
>> Surely, any CPU that has WRMSRNS also supports "Virtualize
>> IA32_SPEC_CTRL," right? Shouldn't we be using that feature rather than
>> swapping host and guest values with some form of WRMSR?
>
>Good question, the simple answer is that they are irrelevant=2E

Also, *in this specific case* IA32_SPEC_CTRL is architecturally nonseriali=
zing, i=2Ee=2E WRMSR executes as WRMSRNS anyway=2E


From xen-devel-bounces@lists.xenproject.org Sun Apr 13 13:48:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 13 Apr 2025 13:48:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.948964.1345671 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3xhS-000530-Ow; Sun, 13 Apr 2025 13:48:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 948964.1345671; Sun, 13 Apr 2025 13:48:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u3xhS-00052i-Jq; Sun, 13 Apr 2025 13:48:42 +0000
Received: by outflank-mailman (input) for mailman id 948964;
 Sun, 13 Apr 2025 13:48:41 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=hQaa=W7=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1u3xhR-00052c-LW
 for xen-devel@lists.xenproject.org; Sun, 13 Apr 2025 13:48:41 +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 00037112-186e-11f0-9eae-5ba50f476ded;
 Sun, 13 Apr 2025 15:48:38 +0200 (CEST)
Received: from phl-compute-02.internal (phl-compute-02.phl.internal
 [10.202.2.42])
 by mailfhigh.stl.internal (Postfix) with ESMTP id C0D42254009D;
 Sun, 13 Apr 2025 09:48:36 -0400 (EDT)
Received: from phl-mailfrontend-01 ([10.202.2.162])
 by phl-compute-02.internal (MEProxy); Sun, 13 Apr 2025 09:48:36 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sun,
 13 Apr 2025 09:48:35 -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: 00037112-186e-11f0-9eae-5ba50f476ded
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=fm2;
	 t=1744552116; x=1744638516; bh=65+6xqnS0v0IeL+vIucI1i3MsAbiGj9z
	Lb6pCAV3vYM=; b=anjin7aYA4VJ89goijEEvyAdCON0mVAHvsx59LZpsLgmYBsx
	ODHO5fyJWpx0hvhzc1ztCMq49yuRQZU1Y7PlbXyNZbIQ1OXNzO72gNPwnz4bQshJ
	NRXuk+L4xMj3hHMstYJSRgnrTKjT+qWUtntwcnZFmi9MUuzwySq4dDvkdh33ALZw
	7+XmZNODMIes6O9jRAJC1bahwSwfdIWdcxDoyvsL3XC6p6sLytz8QllILHZsV3wd
	zV0PsNNUqwyhHrHu/N/T3cQjBxYd4/CUzfX3IzMJ51eNdZWbLmf1ya88Qy9luhDv
	NyJMwiLokXmfsmlGssZGtfFbBtO6w5S33A7BTA==
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=
	fm2; t=1744552116; x=1744638516; bh=65+6xqnS0v0IeL+vIucI1i3MsAbi
	Gj9zLb6pCAV3vYM=; b=V+mr2BKshYHokSf1u4N6Pw/cjQKELSGlX8UVcjo2DATd
	oTyjllcqo2YQTqO4Qx9e2FxHJuHE0s8FrB8aj2Ga5NyHJRDOoJdyNmAV/oZvr5zY
	VP4EFEPU+8Q6GUA+KcUPgQ7daA7/Q6AsOGddTbObf/ePI86+SZQfrYw4L0MkQFTI
	pinkxZ0CcNX/xc9qJRnVMs7ZK9+494Dv19KSKwyDjPbVPc1kg7h4wpceOJZ/pPkq
	Y47LdRS6reKR2juQSgAISwUSvGlMBigsuvt/Q0TwB8VRGq0AbcHDYLqhblE9k7oX
	h8IM+57sC/s0udR4np1PJGLqvNEZ5rLEA64eq0IAug==
X-ME-Sender: <xms:tMD7Z69nPjafj8jTtVDDUadcmsokE4lt6QPn7kbSS5Gq54MntTBZsA>
    <xme:tMD7Z6t7A8nmQxs7km7l_Sy1JRJnaMNlBhR89F--EeRNdcrNq_SQGgPjRDL1_coR6
    cszlLjc7yOCXw>
X-ME-Received: <xmr:tMD7ZwCim_oVMxvyMFXVVaiVlG96PQlOsx-TccVu4RcL6-HEU2AXS5_L8X6xp3YxcSFwRxfJPobNWO1ngjBG3ReyzVe3BgogUOOKFxL0HD4fMydKVFQ>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvudejkedtucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
    pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
    gvnhhtshculddquddttddmnecujfgurhephffvvefufffkofggtgfgsehtkeertdertdej
    necuhfhrohhmpeforghrvghkucforghrtgiihihkohifshhkihdqifpkrhgvtghkihcuoe
    hmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhmqeenucgg
    tffrrghtthgvrhhnpeelkefhudelteelleelteetveeffeetffekteetjeehlefggeekle
    eghefhtdehvdenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhr
    ohhmpehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhmpd
    hnsggprhgtphhtthhopeehpdhmohguvgepshhmthhpohhuthdprhgtphhtthhopeigvghn
    qdguvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdprhgtphhtthhope
    grnhgurhgvfidrtghoohhpvghrfeestghithhrihigrdgtohhmpdhrtghpthhtohepmhgr
    rhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdprhgtphhtth
    hopegtrghrughovgestggrrhguohgvrdgtohhmpdhrtghpthhtohepshhsthgrsggvlhhl
    ihhniheskhgvrhhnvghlrdhorhhg
X-ME-Proxy: <xmx:tMD7ZydmsyRn3vA5x8_JP3aloF9PMDQIc8WtNlQrmHzzclzvSPxTtQ>
    <xmx:tMD7Z_NMYQh3ltbF1sXBBa5ZIFlxs6hbsf3xpJA6Se1EK1KFfZbb_w>
    <xmx:tMD7Z8mxeif3BNN9TJBNSSblM2K9_gX8hwS6TFJmpdLqsGgE74Rn2w>
    <xmx:tMD7Zxva4bCNuD2k3PcclBfUvQqjbF8EsmCDZKUBas0SLxl_m9kWvg>
    <xmx:tMD7Z8WfI5glGWCiTi_5FaezT9S0fd6Lk9xg0EXvx7P6opQrnDdup9bn>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH] CI: fix waiting for final test message (again)
Date: Sun, 13 Apr 2025 15:47:31 +0200
Message-ID: <20250413134826.1366350-1-marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.48.1
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The previous attempt has correct diagnosis, but added -notransfer flag
in a wrong place - it should be used in the first (outer) match out of
two, not the second (inner) one.

Fixes: 1e12cbd6af2c ("CI: fix waiting for final test message")
Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
---
This actually fixes the issue described in the referenced commit. When
that issue happens, it can be seen as a complete console output (up to
Alpine login prompt), but test still failed.
But that is not all the issues, sometimes it hangs really in the middle
of dom0 boot, for example with last lines as:

    [    1.816052] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
    Poking KASLR using RDRAND RDTSC...
    [    1.818089] Dynamic Preempt: voluntary
    [    1.818251] rcu: Preemptible hierarchical RCU implementation.
    [    1.818254] rcu: 	RCU event tracing is ena

and sits there for over 120s.

It's unclear to me yet whether it's a real dom0 hang, or an issue with
grabbing console output. Debugging...
---
 automation/scripts/console.exp | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/automation/scripts/console.exp b/automation/scripts/console.exp
index bdb1dd982003..fc80513dfb35 100755
--- a/automation/scripts/console.exp
+++ b/automation/scripts/console.exp
@@ -60,12 +60,12 @@ if {[info exists env(WAKEUP_CMD)]} {
 
 if {[info exists env(LOG_MSG)]} {
     expect {
-        -re "$env(PASSED)" {
-            expect -notransfer -re "$env(LOG_MSG)"
+        -notransfer -re "$env(PASSED)" {
+            expect -re "$env(LOG_MSG)"
             exit 0
         }
-        -re "$env(LOG_MSG)" {
-            expect -notransfer -re "$env(PASSED)"
+        -notransfer -re "$env(LOG_MSG)" {
+            expect -re "$env(PASSED)"
             exit 0
         }
     }
-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Sun Apr 13 22:09:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 13 Apr 2025 22:09:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.949019.1345681 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u45Va-0006FF-6d; Sun, 13 Apr 2025 22:08:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 949019.1345681; Sun, 13 Apr 2025 22:08: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 1u45Va-0006Ez-0y; Sun, 13 Apr 2025 22:08:58 +0000
Received: by outflank-mailman (input) for mailman id 949019;
 Sun, 13 Apr 2025 22:08: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=seIn=W7=m5p.com=ehem@srs-se1.protection.inumbo.net>)
 id 1u45VY-0006Er-Fd
 for xen-devel@lists.xenproject.org; Sun, 13 Apr 2025 22:08:56 +0000
Received: from mailhost.m5p.com (mailhost.m5p.com [74.104.188.4])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e1f83374-18b3-11f0-9eae-5ba50f476ded;
 Mon, 14 Apr 2025 00:08:53 +0200 (CEST)
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 53DM8hFY066692
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Sun, 13 Apr 2025 18:08:48 -0400 (EDT) (envelope-from ehem@m5p.com)
Received: (from ehem@localhost)
 by m5p.com (8.18.1/8.15.2/Submit) id 53DM8gZb066691;
 Sun, 13 Apr 2025 15:08:42 -0700 (PDT) (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: e1f83374-18b3-11f0-9eae-5ba50f476ded
Date: Sun, 13 Apr 2025 15:08:42 -0700
From: Elliott Mitchell <ehem+xen@m5p.com>
To: Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>,
        Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: Serious AMD-Vi issue
Message-ID: <Z_w16tOkcg4_tpg2@mattapan.m5p.com>
References: <ZbLDlRi0vctlhsNp@mattapan.m5p.com>
 <Z5OkQgjd4Lt_rtr0@macbook.local>
 <Z5QFf5Ipk3GHd27H@mattapan.m5p.com>
 <Z5dVgd3aF_n9Q3hZ@macbook.local>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <Z5dVgd3aF_n9Q3hZ@macbook.local>
X-Spam-Status: No, score=0.4 required=10.0 tests=KHOP_HELO_FCRDNS autolearn=no
	autolearn_force=no version=4.0.1
X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on mattapan.m5p.com

On Mon, Jan 27, 2025 at 10:44:33AM +0100, Roger Pau Monn wrote:
> On Fri, Jan 24, 2025 at 01:26:23PM -0800, Elliott Mitchell wrote:
> > 
> > In fact what seems a likely reproduction on Intel hardware is the Intel
> > sound card issue.  I notice that issue occurs when sound *starts*
> > playing.  When a sound device starts, its buffers would be empty and the
> > first DMA request would be turned around with minimal latency.  In such
> > case this matches the Samsung SATA devices handling DMA with low
> > latency.
> 
> Can you reproduce the data loss issue without using RAID in Linux?
> You can use fio with verify or similar to stress test it.

This seems rather unlikely.  The first reportter tried without software
RAID and didn't observe the issue.  If the problem occurred without
software RAID, there would be massive numbers of data loss reports.

> Can you reproduce if dom0 is PVH instead of PV?

Haven't gotten Domain 0 PVH to work yet.  I was planning to try again
when Debian updates to 4.20, but until then this isn't working.

> Can you reproduce with dom0-iommu=strict mode in the Xen command line?

Alas, this is now a definite "yes".  Took a bunch of waiting, but now
confirmed to occur with "dom0-iommu=strict".


-- 
(\___(\___(\______          --=> 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 Apr 14 06:08:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 06:08:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.949042.1345691 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4Cz4-000112-7K; Mon, 14 Apr 2025 06:07:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 949042.1345691; Mon, 14 Apr 2025 06:07: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 1u4Cz4-00010l-2E; Mon, 14 Apr 2025 06:07:54 +0000
Received: by outflank-mailman (input) for mailman id 949042;
 Mon, 14 Apr 2025 06: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=ezPI=XA=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u4Cz2-00010f-0d
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 06:07:52 +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 cb0f24e5-18f6-11f0-9eae-5ba50f476ded;
 Mon, 14 Apr 2025 08:07:49 +0200 (CEST)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-43cfba466b2so40481395e9.3
 for <xen-devel@lists.xenproject.org>; Sun, 13 Apr 2025 23:07:49 -0700 (PDT)
Received: from ?IPV6:2003:ca:b71f:2f7e:1407:af3a:2658:6d8d?
 (p200300cab71f2f7e1407af3a26586d8d.dip0.t-ipconnect.de.
 [2003:ca:b71f:2f7e:1407:af3a:2658:6d8d])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43f20625eeesm167994425e9.11.2025.04.13.23.07.48
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 13 Apr 2025 23:07: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: cb0f24e5-18f6-11f0-9eae-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744610869; x=1745215669; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=8t06gzgOdTWoDSQBxQ3cADg37uy5aKG+WMTtTlbS5sw=;
        b=EcmGU2kaqANNsR9PdAmWRgL3i5v2PIRXTDav2/txU8POaupylKNJyn+zrw2WgYkjl5
         uAZNcCF/k3MIv7EHcEvTlsLgTZsrtGHnNgCNHjDFvJ0g0KfAiPl35ygwhUtdbFJq2Von
         Mo1m+0SYRlKAG9O8Cg/6nFKnDjLFnVaysLYPQsSWlzYdhj1Qwb4c9sbHqp8b80mKnusg
         PjgpLmWyNX3Jq620ia0RLnU/ujDfWY2bbaS4QiS8t7n/fCHPYfIpfBk1zStvVGUIpvnL
         DqxReOMoYTAnxnaff3V93HLOeY1+3HCwPnevfYtCT82IaxRWCEHXYabeIy9riwpbw+5L
         r03A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744610869; x=1745215669;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=8t06gzgOdTWoDSQBxQ3cADg37uy5aKG+WMTtTlbS5sw=;
        b=uO6wi5ow4H6dRKjciBhi/y0Tx6qE2HX4XvmFD4JwQMoDRmU33/Ojb2QYiUs5+mnGwp
         b9aUSdr+a4C039u609gnZoIDSXhkf38vI2ZLjqKjtHw7t2YLA4SWUz1wME/ZL7InXSZ9
         I26AqSE35dMuGxROZt6V74BuEKZ0vNmUH2wl21U9NDrgI+QJW5n5VxUNtzzPJzblut7f
         XdvCLEi/T3HH68/zq+qFY/VdZJtSNqUABOBEa3k/9iK/X79ypoSBEk+GvGWYoqmnUZTD
         mn5yWOT0aCp1v2eTMpIP0rhvuY2YDOe0G9awUIFLvB3aTkluI9VuRm+P0evnXg5+hKZ5
         LPkA==
X-Forwarded-Encrypted: i=1; AJvYcCUNbxoadmXtOHF/KEU+VM5W41LqzbBGfqCNcumThupSl5+joEyOgEVL5t/FfylmkWeqZZwkAsjpSwQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwF7G5H7VlwG58OlOdojSeeHkGPoGTzc6BnEAW9UI38b0AdBd9a
	SMJd3bWVFrdG4HEG06urdja8j/oAjqfW+ZrCq/U2lFWcWEjz4UjJKyupXpmH1Q==
X-Gm-Gg: ASbGnctBtXyG8/QQqnG+oNfywEQT7UOLIzoa3MgIsWg0Q/FJ9OPij142xXAj35NmgVj
	B/NfM/Wil0jwnjpJhhPMjLkoCeW6deUcDWt1/JbADrTBw7JcwufmV0fQkDe3Dh0DIeXGauj5Qhf
	sC/j9wZHpFXZWdUtOJMIu7bOyr9WQw3Ur1Q8avV4DqOPfWx1nCGo9XQyPOJgtwy3R562Ah/OqF4
	x/4Uhj3ZvLdqtI0Vte6kfgPOhB0S4YNvYrjOBpsevO3yXFr3R0LmbbBuYF6PAd4Rlj6E4Ya8bkx
	T751GSiKLw50aEt4xAOpamCFV2Ievq77D/li2ubY5EtnyUGFCxgTIe++4M50BlGElHwRTRwucoA
	b4xtyoqLhJnHqLd3D1TqUU4fD07VZY51VYVruP0wM1mMeqwq2HWZwuEJEg7gKURXzZ0P0nVkOKd
	4=
X-Google-Smtp-Source: AGHT+IGsNPqZtkQYEbSRCEZfNfinEETszg6Pg2OtzlnimGPemBjrztXckh3Gg+TT3gvO271mS8LHqQ==
X-Received: by 2002:a05:600c:1d08:b0:43c:fe9f:ab90 with SMTP id 5b1f17b1804b1-43f3a9aefc4mr68691985e9.28.1744610869069;
        Sun, 13 Apr 2025 23:07:49 -0700 (PDT)
Message-ID: <bd77106c-7e5c-4e6f-98f9-faacf4f9deef@suse.com>
Date: Mon, 14 Apr 2025 08:07:47 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/5] xen/io: provide helpers for multi size MMIO accesses
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20250411105411.22334-1-roger.pau@citrix.com>
 <20250411105411.22334-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: <20250411105411.22334-3-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 11.04.2025 12:54, Roger Pau Monne wrote:
> Several handlers have the same necessity of reading from an MMIO region
> using 1, 2, 4 or 8 bytes accesses.  So far this has been open-coded in the
> function itself.  Instead provide a new handler that encapsulates the
> accesses.
> 
> Since the added helpers are not architecture specific, introduce a new
> generic io.h header.

Except that ...

> --- /dev/null
> +++ b/xen/include/xen/io.h
> @@ -0,0 +1,63 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +/*
> + * Generic helpers for doing MMIO accesses.
> + *
> + * Copyright (c) 2025 Cloud Software Group
> + */
> +#ifndef XEN_IO_H
> +#define XEN_IO_H
> +
> +#include <xen/bug.h>
> +
> +#include <asm/io.h>
> +
> +static inline uint64_t read_mmio(const volatile void __iomem *mem,
> +                                 unsigned int size)
> +{
> +    switch ( size )
> +    {
> +    case 1:
> +        return readb(mem);
> +
> +    case 2:
> +        return readw(mem);
> +
> +    case 4:
> +        return readl(mem);
> +
> +    case 8:
> +        return readq(mem);

... this and ...

> +    }
> +
> +    ASSERT_UNREACHABLE();
> +    return ~0UL;
> +}
> +
> +static inline void write_mmio(volatile void __iomem *mem, uint64_t data,
> +                              unsigned int size)
> +{
> +    switch ( size )
> +    {
> +    case 1:
> +        writeb(data, mem);
> +        break;
> +
> +    case 2:
> +        writew(data, mem);
> +        break;
> +
> +    case 4:
> +        writel(data, mem);
> +        break;
> +
> +    case 8:
> +        writeq(data, mem);
> +        break;

... this may (generally will) not work on 32-bit architectures. Add
CONFIG_64BIT conditionals? At which point return type / last parameter
type could move from uint64_t to unsigned long.

As to the top comment of the file: io.h is, to me at least, wider than
just dealing with MMIO accesses. IOW I fear that sentence may go stale
at some point, without anyone paying attention.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Apr 14 06:33:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 06:33:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.949055.1345700 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4DOC-00081P-0d; Mon, 14 Apr 2025 06:33:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 949055.1345700; Mon, 14 Apr 2025 06:33:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4DOB-00081I-U5; Mon, 14 Apr 2025 06:33:51 +0000
Received: by outflank-mailman (input) for mailman id 949055;
 Mon, 14 Apr 2025 06:33:50 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ezPI=XA=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u4DOA-00081A-Pl
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 06:33:50 +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 6b78574d-18fa-11f0-9ffb-bf95429c2676;
 Mon, 14 Apr 2025 08:33:48 +0200 (CEST)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-43edb40f357so32484275e9.0
 for <xen-devel@lists.xenproject.org>; Sun, 13 Apr 2025 23:33:47 -0700 (PDT)
Received: from ?IPV6:2003:ca:b71f:2f7e:1407:af3a:2658:6d8d?
 (p200300cab71f2f7e1407af3a26586d8d.dip0.t-ipconnect.de.
 [2003:ca:b71f:2f7e:1407:af3a:2658:6d8d])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39eaf43cb29sm9985778f8f.76.2025.04.13.23.33.46
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 13 Apr 2025 23:33: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: 6b78574d-18fa-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744612427; x=1745217227; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=JR/bqBy8MI+iMLE8/NYuOC9+CSB+cI9bJg5q7tpQHaA=;
        b=bQnxnW5if45f+gfUeYLC7B3qjeYRxEft0iyfKFUQXce2TJ8+aHKZGFWYUSMz5cfDFF
         HVqTT3J2n94IgCcXCQrTcAw7eRsbFn2bu4Jdi2+Aw2sqP+3uqgAxyw4O+zz+UJJJXP2p
         fzunKi+J20aY9DoRXy4D+gpAKOUsHIVe5YRDrQDlY1jsDQmA1GmSfOj6qLNhgOwA1gYT
         4poeuhZaW3tw0OJHRcPyzuY+4jYIPTzTNvVtq8p/CgXE0/PBQZSP3kJ0XyhZEus6IHJQ
         CroR4+v4bDvH6Qn3nx7Dl8w5X1fXMRY+65hmAlvnCtr0f10A4SdbZhLUMUuAWFeC9f8R
         VOmw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744612427; x=1745217227;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=JR/bqBy8MI+iMLE8/NYuOC9+CSB+cI9bJg5q7tpQHaA=;
        b=GvkVwxE3HF9gsVi8djm2SFg+2Q15YkjCHrUowmSH3ABUo3a0Jaa/NCjd6Wdi1JUfQx
         3EBLyWyz6zxRc4TWsVFsW2Uw/5jiS078xNLNXBXN0JXONmA7DAjKNm/xAkqOr7Iladlz
         OzB+n2gauh/YiqjFMs/t9W3hqRPYwkyJT4QAGy4tM22M/27zGoMnO+5ybvqDHWnk92RD
         GxP2hK7M12FHfYxzSpch+FqkLTZ93foFoi3nM53db+AivEc0PmcbCiET+vy+XYg3F2wB
         +D0C5sguMwkcKE0xstnJqSCR4BdZhTI1LhPTMKFUQKm7gu5npme/dxFjVod4U8xAQbpW
         u3ug==
X-Forwarded-Encrypted: i=1; AJvYcCV5t+1NxgzXvOfJGXXzvV/54xwFWnrmO0h7/kgQ5PDVM/Qx41oQgHCvCoFcGHWOtRhHM/HXC6w3WOY=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxs5Wm93N2oD92P01aKlSrYs1mnaQtP8eL29uiijtMM61WdIKdz
	+paNednnob6A07xU97yhZ9yTvVsbO/BH1iW5qaBb9aQcHVqCP1n2znuPbYTs3g==
X-Gm-Gg: ASbGncuynABiHhiiyMUrM8atkY0h9Sd9PtK/7lmBtOsPaGFmCH1bEd826tTMNLkwD87
	EvuQ199tXCkNl4FNI26q47jqc80tVNuyDNOsoGBOPXfhQlXcl4mtCtLYWFVZh1fzSYbfRdv6WTu
	vrftmcKQyH3/HNAAPkJzlYsA398ihoCbppsihx8Aoe8Xv/jxFaLXHQlNIuCeDy4VJLAvbqZ6w7U
	UwjnM6bui2grjeBwPSzL8ttSV8GLMUeU3uO145nCbuAdcWZjN9ylnC8Gv8xyp+XxatdIVI0xYdy
	G6KReIhLtH+zR28A+91zTP0YlBqikOqa3Q6eLNj8bYhZhElcGaMO9P7SraeV9YLawLEg0m+o86y
	vKHURbK2SFra6XLfeGpv8NCX3StV0iduwNPCpkqheeRNGJBkHs9524Rf39MrmmttQrcv1ubY68g
	H/PndMl4iyVw==
X-Google-Smtp-Source: AGHT+IGZkfoHHO3xJMncDruYa4SrqP98ZALvGR5h6j1FQrRWt1YbTgi15ZOHv5nepZ+zd/BSlLSiLQ==
X-Received: by 2002:a05:600c:46d0:b0:43d:209:21fd with SMTP id 5b1f17b1804b1-43f3a9b02b3mr103432455e9.30.1744612426720;
        Sun, 13 Apr 2025 23:33:46 -0700 (PDT)
Message-ID: <eaf5f71b-2c56-4bd8-a45f-35280af16466@suse.com>
Date: Mon, 14 Apr 2025 08:33:44 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 3/5] x86/hvm: fix handling of accesses to partial r/o MMIO
 pages
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20250411105411.22334-1-roger.pau@citrix.com>
 <20250411105411.22334-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: <20250411105411.22334-4-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 11.04.2025 12:54, Roger Pau Monne wrote:
> The current logic to handle accesses to MMIO pages partially read-only is
> based on the (now removed) logic used to handle accesses to the r/o MMCFG
> region(s) for PVH v1 dom0.  However that has issues when running on AMD
> hardware, as in that case the guest linear address that triggered the fault
> is not provided as part of the VM exit.  This caused
> mmio_ro_emulated_write() to always fail before calling
> subpage_mmio_write_emulate() when running on AMD and called from an HVM
> context.
> 
> Take a different approach and convert the handling of partial read-only
> MMIO page accesses into an HVM MMIO ops handler, as that's the more natural
> way to handle this kind of emulation for HVM domains.
> 
> This allows getting rid of hvm_emulate_one_mmio() and it's single cal site
> in hvm_hap_nested_page_fault().
> 
> Note a small adjustment is needed to the `pf-fixup` dom0 PVH logic: avoid
> attempting to fixup faults resulting from accesses to read-only MMIO
> regions, as handling of those accesses is now done by handle_mmio().
> 
> Fixes: 33c19df9a5a0 ('x86/PCI: intercept accesses to RO MMIO from dom0s in HVM containers')
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> ---
> The fixes tag is maybe a bit wonky, it's either this or:
> 
> 8847d6e23f97 ('x86/mm: add API for marking only part of a MMIO page read only')
> 
> However the addition of subpage r/o access handling to the existing
> mmio_ro_emulated_write() function was done based on the assumption that the
> current code was working - which turned out to not be the case for AMD,
> hence my preference for blaming the commit that actually introduced the
> broken logic.

I agree.

> ---
>  xen/arch/x86/hvm/emulate.c             | 47 +-------------
>  xen/arch/x86/hvm/hvm.c                 | 89 +++++++++++++++++++++++---

It's quite a bit of rather special code you add to this catch-all file. How
about introducing a small new one, e.g. mmio.c (to later maybe become home
to some further stuff)?

> --- a/xen/arch/x86/hvm/emulate.c
> +++ b/xen/arch/x86/hvm/emulate.c
> @@ -370,7 +370,8 @@ static int hvmemul_do_io(
>          /* If there is no suitable backing DM, just ignore accesses */
>          if ( !s )
>          {
> -            if ( is_mmio && is_hardware_domain(currd) )
> +            if ( is_mmio && is_hardware_domain(currd) &&
> +                 !rangeset_contains_singleton(mmio_ro_ranges, PFN_DOWN(addr)) )

I think this needs a brief comment - it otherwise looks misplaced here.

> @@ -585,9 +585,81 @@ static int cf_check hvm_print_line(
>      return X86EMUL_OKAY;
>  }
>  
> +static int cf_check subpage_mmio_accept(struct vcpu *v, unsigned long addr)
> +{
> +    p2m_type_t t;
> +    mfn_t mfn = get_gfn_query_unlocked(v->domain, addr, &t);
> +
> +    return !mfn_eq(mfn, INVALID_MFN) && t == p2m_mmio_direct &&
> +           !!subpage_mmio_find_page(mfn);

The !! isn't needed here, is it?

> +}
> +
> +static int cf_check subpage_mmio_read(
> +    struct vcpu *v, unsigned long addr, unsigned int len, unsigned long *data)
> +{
> +    struct domain *d = v->domain;
> +    p2m_type_t t;
> +    mfn_t mfn = get_gfn_query(d, addr, &t);
> +    struct subpage_ro_range *entry;
> +    volatile void __iomem *mem;
> +
> +    *data = ~0UL;
> +
> +    if ( mfn_eq(mfn, INVALID_MFN) || t != p2m_mmio_direct )
> +    {
> +        put_gfn(d, addr);
> +        return X86EMUL_RETRY;
> +    }
> +
> +    entry = subpage_mmio_find_page(mfn);
> +    if ( !entry )
> +    {
> +        put_gfn(d, addr);
> +        return X86EMUL_RETRY;
> +    }
> +
> +    mem = subpage_mmio_map_page(entry);
> +    if ( !mem )
> +    {
> +        put_gfn(d, addr);
> +        gprintk(XENLOG_ERR, "Failed to map page for MMIO read at %#lx\n",
> +                mfn_to_maddr(mfn) + PAGE_OFFSET(addr));

Makes me wonder whether the function parameter wouldn't better be named
"curr" and the local variable "currd", to reflect that this log message
will report appropriate context.

Would also logging the guest physical address perhaps be worthwhile here?

> +        return X86EMUL_OKAY;
> +    }
> +
> +    *data = read_mmio(mem + PAGE_OFFSET(addr), len);
> +
> +    put_gfn(d, addr);
> +    return X86EMUL_OKAY;
> +}
> +
> +static int cf_check subpage_mmio_write(
> +    struct vcpu *v, unsigned long addr, unsigned int len, unsigned long data)
> +{
> +    struct domain *d = v->domain;
> +    p2m_type_t t;
> +    mfn_t mfn = get_gfn_query(d, addr, &t);
> +
> +    if ( mfn_eq(mfn, INVALID_MFN) || t != p2m_mmio_direct )
> +    {
> +        put_gfn(d, addr);
> +        return X86EMUL_RETRY;
> +    }
> +
> +    subpage_mmio_write_emulate(mfn, PAGE_OFFSET(addr), data, len);
> +
> +    put_gfn(d, addr);
> +    return X86EMUL_OKAY;
> +}

Unlike the read path this doesn't return RETRY when subpage_mmio_find_page()
fails (indicating something must have changed after "accept" said yes).

> @@ -1981,7 +2056,9 @@ int hvm_hap_nested_page_fault(paddr_t gpa, unsigned long gla,
>       */
>      if ( (p2mt == p2m_mmio_dm) ||
>           (npfec.write_access &&
> -          (p2m_is_discard_write(p2mt) || (p2mt == p2m_ioreq_server))) )
> +          (p2m_is_discard_write(p2mt) || (p2mt == p2m_ioreq_server) ||
> +           /* MMIO entries can be r/o if the target mfn is in mmio_ro_ranges. */
> +           (p2mt == p2m_mmio_direct))) )
>      {
>          if ( !handle_mmio_with_translation(gla, gfn, npfec) )
>              hvm_inject_hw_exception(X86_EXC_GP, 0);

Aren't we handing too many things to handle_mmio_with_translation() this
way? At the very least you're losing ...

> @@ -2033,14 +2110,6 @@ int hvm_hap_nested_page_fault(paddr_t gpa, unsigned long gla,
>          goto out_put_gfn;
>      }
>  
> -    if ( (p2mt == p2m_mmio_direct) && npfec.write_access && npfec.present &&

... the .present check.

I'm also concerned of e.g. VT-x'es APIC access MFN, which is
p2m_mmio_direct.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Apr 14 06:36:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 06:36:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.949069.1345711 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4DQM-0000Af-Gg; Mon, 14 Apr 2025 06:36:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 949069.1345711; Mon, 14 Apr 2025 06: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 1u4DQM-0000AX-Cq; Mon, 14 Apr 2025 06:36:06 +0000
Received: by outflank-mailman (input) for mailman id 949069;
 Mon, 14 Apr 2025 06:36: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=ezPI=XA=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u4DQL-0000AO-7D
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 06:36:05 +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 bd013469-18fa-11f0-9eae-5ba50f476ded;
 Mon, 14 Apr 2025 08:36:04 +0200 (CEST)
Received: by mail-wr1-x42d.google.com with SMTP id
 ffacd0b85a97d-3913b539aabso2241731f8f.2
 for <xen-devel@lists.xenproject.org>; Sun, 13 Apr 2025 23:36:04 -0700 (PDT)
Received: from ?IPV6:2003:ca:b71f:2f7e:1407:af3a:2658:6d8d?
 (p200300cab71f2f7e1407af3a26586d8d.dip0.t-ipconnect.de.
 [2003:ca:b71f:2f7e:1407:af3a:2658:6d8d])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39eae96bdf9sm9818458f8f.22.2025.04.13.23.36.03
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 13 Apr 2025 23:36: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: bd013469-18fa-11f0-9eae-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744612563; x=1745217363; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=KM4P8X+rAKNBhnTRyLj1LSU2EHHuavhMOTJBzHqB6mM=;
        b=cbyNUqMAG483kvdkoVqSNaLQPdVTyrAKvTB9dkkcVb12TKMu+7F0Peip0blFeuhTyZ
         ClxuGr6SbeZIr//hkhWMnyzKZLvho0nR4AjcCG2as/ViwP0wuWEUgIZLf7RXnbFI51eC
         RtzPM+g2/wY6yVv6jnadwLfajBzRKfCilhBpW/ahvKV60Of09UWLZ8gC6qRRyT3GsCyp
         39S6QVpTVopGFYgTm21hAB1Xx22rhXLdhKGiodoQnnDkuYW+cK6NboF5LBO2tC/OaZlZ
         Ni7811MIBqmQqcH2iPEWYrlJOpqMaGQ42IBiiQpomnf8c6HzUw2algoyB7jweLVKDc67
         EVWg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744612563; x=1745217363;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=KM4P8X+rAKNBhnTRyLj1LSU2EHHuavhMOTJBzHqB6mM=;
        b=ruTr5+B02SK1VgcON0pnSufKyVsVbiq2rTuiQHsjeVZzV1U+GmhPVkfWq3DdlTpol3
         LkHXdWXLfkXSkvUOFPLPEmCSUFbANlI0UPGguBWzJt1lKs/WpQxrwp9UgM7vFQhUgEt0
         ZOMG2VwPYCw/PA6lltyOFenfNMmWV/M1SQ/RT3vle9tMcMjGvFnRIpz5aBtxLVo08br2
         AvW58uAkuUAJV0/Ju/4x2R0otubLGa5k0jl9NUGjoLD99Ius3AYaCUG2KKZ0M2luuBHW
         qumHumK8OtXbp8qAzW1LJFhezL9JmALbT6VPLXFFYrojWgXkkNqm8Yh7grI9qJH4o4U/
         PTnA==
X-Forwarded-Encrypted: i=1; AJvYcCUG1eaYX+kAgOuu6e7N9B3O882oyzbca4e4CMNiVjP1Jl/WOnxjP7sqFgbdhtBbbfAOLdn8j9SvIkU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyCmfNgdRu0aj3c/Gwm12zpe3hYCqR7DhvMcCzifucSQR5NuqW9
	SbheP7M+FtXlZ6ZU24Nb/BDOuV1TRggJQDkqX8yf7QWNs9yk6C0gAQk46QED0g==
X-Gm-Gg: ASbGncsUW8wNDq3z/wxvoOCIRyS1gzr0hUsF1kpfuqdeDG5t1qCGLeamQdspH1LkrJG
	1isb79O/oGy7KtlRwLdt6SkIc3k2sjkUNDxjHqJ8Jp0acIdqZ0MG6M7SAPk+8VYSE/LSmqsMprX
	c3i9r7PqIATeoLfrLMH/Y8OPh7bFBenVzG5HC73LI3hGEE+qqWwtdiiUulpdfDzcJ5BGeXbRiUW
	Lz55hTbY8tKWRfnOSgLZzn9Isf11o2U+VuKyUOf0cELqwRdAZHJU4RQPwK++LMneYSEtZJOU0fj
	8wI8YWd3cRmeJjyiXexRub0XycuFk+emXZRGXnLq/OH2JvJwWevGkpVuRuHqtlMX/j9+/FN6q7N
	lJKcmRhBQEVAT/Hr9kTGBfXSMvlV0cfBekVPa8Ki89tD0ouW5tRiI3B/ukeU4XVuBE1wQFz3EE3
	M=
X-Google-Smtp-Source: AGHT+IGFfo9n8pnKeCG2Wqge1J27Wwmq1YdmEoRdak6iPH1yNZyeobMNomriPS/VTAYgCHdlrJ2i+w==
X-Received: by 2002:a5d:584f:0:b0:39c:1257:c7a2 with SMTP id ffacd0b85a97d-39eaaecae92mr8234068f8f.58.1744612563573;
        Sun, 13 Apr 2025 23:36:03 -0700 (PDT)
Message-ID: <fbccd862-040c-47d5-a858-2502eb08df28@suse.com>
Date: Mon, 14 Apr 2025 08:36:02 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 4/5] x86/hvm: only register the r/o subpage ops when
 needed
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20250411105411.22334-1-roger.pau@citrix.com>
 <20250411105411.22334-5-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: <20250411105411.22334-5-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 11.04.2025 12:54, Roger Pau Monne wrote:
> MMIO operation handlers can be expensive to process, hence attempt to
> register only those that will be needed by the domain.
> 
> Subpage r/o MMIO regions are added exclusively at boot, further limit their
> addition to strictly before the initial domain gets created, so by the time
> initial domain creation happens Xen knows whether subpage is required or
> not.  This allows only registering the MMIO handler when there are
> subpage regions to handle.
> 
> 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 Apr 14 06:37:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 06:37:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.949080.1345720 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4DS7-0000jm-QC; Mon, 14 Apr 2025 06:37:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 949080.1345720; Mon, 14 Apr 2025 06: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 1u4DS7-0000jf-NW; Mon, 14 Apr 2025 06:37:55 +0000
Received: by outflank-mailman (input) for mailman id 949080;
 Mon, 14 Apr 2025 06: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=ezPI=XA=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u4DS6-0000jU-E4
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 06:37:54 +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 fd9ffa5c-18fa-11f0-9ffb-bf95429c2676;
 Mon, 14 Apr 2025 08:37:52 +0200 (CEST)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-43cf680d351so28268195e9.0
 for <xen-devel@lists.xenproject.org>; Sun, 13 Apr 2025 23:37:52 -0700 (PDT)
Received: from ?IPV6:2003:ca:b71f:2f7e:1407:af3a:2658:6d8d?
 (p200300cab71f2f7e1407af3a26586d8d.dip0.t-ipconnect.de.
 [2003:ca:b71f:2f7e:1407:af3a:2658:6d8d])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43f20a9f14csm105752055e9.1.2025.04.13.23.37.51
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 13 Apr 2025 23:37: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: fd9ffa5c-18fa-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744612672; x=1745217472; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=LwVGuxOkXG6Et+whwlTdqzC4aYYwzHMjz7sVeyBD/yc=;
        b=LW3/C+Ex0/BO4YyB7QyKgcFXtG5rswffdU/S2jakIfNSbhVEsfqiGQ5TRwEMgvJZh6
         XjEOh7MEX8ydmgcSkJclyyQdV4cXE46iVZnsMkB70BNc3R7zUhs1I3B4jBTd34rspZz5
         aKICBr6bEfq59YAF0Z8INK9BstgwtV8IbQK0H4RuuUTHm7X7raHTi7UfOEU2pa5k0t43
         Y6OvRX1ANTSw8XIrvUyfgD+C4MUaoi3GV2KEcEGFXA3CF8UfZhPifbKDU0wJOdLsG7g3
         NhUnhwpQboZBKRUWehGHM2FKBfBcmlbgV1b6a91c67Yy0i9dsAn0SDQXcoMUglefXoz6
         X3+g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744612672; x=1745217472;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=LwVGuxOkXG6Et+whwlTdqzC4aYYwzHMjz7sVeyBD/yc=;
        b=Lp8fu/ayFxDn7ETw46eg3pSvY0csH4x8Zcu+gysfFeSVn4SgFrz8AjTckETnEfVcWG
         dGPj1jQKZOicsdfqG6UgX0nWFki86BBgCnvc5TixImK5/jXJfUIleoSWPMVSDMZe9D+C
         oI53WhRtXhQcg5eqN3VmW/XUfvG20VD1ykwbyLZjGemn3bAkYrkkEmwULtNUtnoFSgy8
         7YS0nc1svg2oEfxCXqNTuYbbtnt8glFLtP9s3rXRxQvZJGXLPlHPtSUlySF7M1jG/r5G
         M0qdWvQ49R3PGycLsyb+nmQzajBG3xvlQ0LKh3NSBT/SLHOL+7zAi/12oumSLFK1i1HD
         35Xg==
X-Forwarded-Encrypted: i=1; AJvYcCW7XMaFCtgF3F0UekwXaLEwwmExvKSy4CWvL5B6HSGZDJv4W1Io+dDVMEYPxtQdxAMClBY7+IfxNDE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxSt0Nxjt1f29WcRm60P4dwe7lxTrJHk9VfnHq2+z21h1LT8+UP
	L+ZUZ2EjcAalbxYv+MbnH2X9Bl7oqKySeNFDwKbym9veQf4NY9ikjFNdN1dc7A==
X-Gm-Gg: ASbGncu9IpxmAIgyGRx38obFhoUx4i2i7Atiq2le8t/m9teMJ0QLMZyHR0WkRBf+iDm
	Qm+HcCr6Q6NLOQcOl4ZN2LZFebfp6B/oy7Zri5okZu/ywohZuMKdVt0nc5vkaveynmI4JXzwVn5
	02Pm9+DmZBje65a+AkwgTE6MtyfjVAKROGet7iC4b4DC2F88SoNyF0ocRoDNbDcjsO2eSotU/j4
	/mdefLbASZDtb1TpcliPucNEAfsdTsQFdnxYbT7OW0JjPEfZtWq5Zy59ZVtGwflheALxu6HXpu+
	y6vDeW4aSj9uT89CanoGBpCWR5CwhGPr1UZ2Ox1iltfygi644Zjhiarz+CD7JAu7D6mz+ATBeWY
	00w36UvAM/wXWcWsCo6lUIazmBsAptWjgvC8BOFWbEkuMqtHRbfhoy+uRFI7hg5SBlFXrLycuRW
	Y=
X-Google-Smtp-Source: AGHT+IG6MiEKjmB5j8Tbtg/BKEJK45adl/qjMiPo/7xgHk/SJMQtaLJMNDUrJY9X6893AA4DE1BeeQ==
X-Received: by 2002:a05:600c:3c84:b0:439:91c7:895a with SMTP id 5b1f17b1804b1-43f2ea651bcmr138989925e9.7.1744612672081;
        Sun, 13 Apr 2025 23:37:52 -0700 (PDT)
Message-ID: <07c71107-a08b-4407-bf5d-9cd4314bf9cb@suse.com>
Date: Mon, 14 Apr 2025 08:37:50 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 5/5] x86/mm: move mmio_ro_emulated_write() to PV only file
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20250411105411.22334-1-roger.pau@citrix.com>
 <20250411105411.22334-6-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: <20250411105411.22334-6-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 11.04.2025 12:54, Roger Pau Monne wrote:
> mmio_ro_emulated_write() is only used in pv/ro-page-fault.c, move the
> function to that file and make it static.
> 
> No functional change intended.
> 
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>

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

> --- a/xen/arch/x86/pv/ro-page-fault.c
> +++ b/xen/arch/x86/pv/ro-page-fault.c
> @@ -298,6 +298,14 @@ static int ptwr_do_page_fault(struct x86_emulate_ctxt *ctxt,
>   * fault handling for read-only MMIO pages
>   */
>  
> +struct mmio_ro_emulate_ctxt {
> +        unsigned long cr2;
> +        /* Used only for mmcfg case */
> +        unsigned int seg, bdf;
> +        /* Used only for non-mmcfg case */
> +        mfn_t mfn;

... the unnecessarily deep indentation corrected here.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Apr 14 07:41:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 07:41:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.949113.1345731 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4ERg-0008Ie-1Q; Mon, 14 Apr 2025 07:41:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 949113.1345731; Mon, 14 Apr 2025 07:41:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4ERf-0008IR-V0; Mon, 14 Apr 2025 07:41:31 +0000
Received: by outflank-mailman (input) for mailman id 949113;
 Mon, 14 Apr 2025 07:41: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=KQal=XA=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1u4ERf-0008Gw-9H
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 07:41:31 +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 de7a3f90-1903-11f0-9ffb-bf95429c2676;
 Mon, 14 Apr 2025 09:41:26 +0200 (CEST)
Received: from CH2PR14CA0029.namprd14.prod.outlook.com (2603:10b6:610:60::39)
 by SA1PR12MB7040.namprd12.prod.outlook.com (2603:10b6:806:24f::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.32; Mon, 14 Apr
 2025 07:41:22 +0000
Received: from CH1PEPF0000AD7A.namprd04.prod.outlook.com
 (2603:10b6:610:60:cafe::85) by CH2PR14CA0029.outlook.office365.com
 (2603:10b6:610:60::39) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.35 via Frontend Transport; Mon,
 14 Apr 2025 07:41:22 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CH1PEPF0000AD7A.mail.protection.outlook.com (10.167.244.59) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Mon, 14 Apr 2025 07:41:22 +0000
Received: from penny-System-Product-Name.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; Mon, 14 Apr 2025 02:41:20 -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: de7a3f90-1903-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=O0JuS9H30zZt6UUk0DRlGIFXgM8kaTrkq0g1d0A29qGIcoUJSVEPJ+B9ll4pxTjE80nWXJ0Acif42qqChnLvSas6axv8O5ysV7RYVAiJhoCTELLMMlwz+LHDNqSGjJeHJKvFsOU3N2ZDWiwelxWZPxwYIv96Lwt+aJCodBDCdLfRwsPdRzdVnN7+Yufv33O4Fiyr/gU222ch8dF3fR1BEU5X3CffkcNHuVmfccxw6vUMNF7byUzAiJEcfxT7ynsYweQ8v17yACgvCwx5AFK2ZNOTpJCRfysSQsSc/7X6xRvMpw5aHEU8bEZ4AXCFpfIE8NzxLyZuAKRxCd1a4sPb0g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=pvNIGetFWmpj6rnrTReRhEXzC+9BEUaQxTa7BY4QW9I=;
 b=Sb0OGpEgzxs+hhYIe4U+NdNFG89H+kxsZAjLkOFjj7t+QZ6hj3DNGY3IXzjh5Zcss48meFBlurnNgkQgJlfRUgm8yTT5+U/K5GXMhPrKWHxdi36kwxwI+yP0eMhJHCvpe0uEy57XwgsXtucJE3pXlJ+dqOfon1DkmydFpSN36PvGoJKzVR3cT8nwZHAsvuN4Vdqn4ZoAza9EGNOvb0qSFReWoyufqbOcfT5WaBC2gt7AdpVwnva73V45EUvrka6nF0dhJNerR4ry9sVcNmXJ6buLOgjlmtag0FwtYQHmXv3Qk+h1YDtsb7DiVwO4b61NvZ3HcwL2erC8mhjAj7trUw==
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=pvNIGetFWmpj6rnrTReRhEXzC+9BEUaQxTa7BY4QW9I=;
 b=QGIOK39oH0+AdqaW8mVFTN2a+hP29r2Zk5vg2RXqBMVZvyyPt+TJOQKRbS2rl8p7apc0GHsv91XoZpjBb09ieZzRoFRbAIDDZRmEgNt/HumAUorLDgqhAklh0s9KZmqILUKVZme3dKaJ/HH9/tkrt9JNtAbIZg+wx7cuA/HaYEk=
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: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.com>, Jan Beulich
	<jbeulich@suse.com>
Subject: [PATCH v4 01/15] xen/cpufreq: move "init" flag into common structure
Date: Mon, 14 Apr 2025 15:40:42 +0800
Message-ID: <20250414074056.3696888-2-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250414074056.3696888-1-Penny.Zheng@amd.com>
References: <20250414074056.3696888-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: CH1PEPF0000AD7A:EE_|SA1PR12MB7040:EE_
X-MS-Office365-Filtering-Correlation-Id: b82a5493-65ea-40b0-d0e0-08dd7b27c094
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?HphH1n+9rB5LZfne5XmtYlcWKj196NB6BTha2eRWbxO6vt+31jtYZ28+soHo?=
 =?us-ascii?Q?5q5FBk/VVXo1IaY+hzEskXreivVuOAbJcWG3MlyoB38fFEZ4CcyhTr5f96+/?=
 =?us-ascii?Q?GdESf1aIojFR2kgfI0JYqx5m79Ikpd+nFJEbTq80K93TvCHesebVqakTxDkQ?=
 =?us-ascii?Q?xkyl/968MnP3KtFswu9+HJik18k6Act7TO/NjoHREmtROy2N5MK5LCj/LNVn?=
 =?us-ascii?Q?UITMQ27rOCKBQICOG6gOVbxUKUtEgCEgxtvPLsFLRVFeftTkhnYIuQa2YuAu?=
 =?us-ascii?Q?aPrYF/4TRoxhFAxAsDSyNYc4q9kXXzcXmeidp0B/ERGpOH6Jadygv/c15bGt?=
 =?us-ascii?Q?Qzanlu2fUgiV5t1xDmz48X7zUjmVB+4Zvx04Sf+fdeB1DWdL3DN3rQGXSb4t?=
 =?us-ascii?Q?U557CRQ9Uyt/K2mQ/6H1mGx9lQKbcGHYC7y/m0Mn3VX7am25tKPg/SS9nT6e?=
 =?us-ascii?Q?CDIaFvqNQA290xs1P+vkxaA++vZe2aC9ZP0dVqCg+W65Q2Td4Mxz637PaBCQ?=
 =?us-ascii?Q?Y/pLcF2+MRCdHM1L3GF3iHLZcUFXSmXGJfOvOvLjGjAs9+/b3SKve0GwNm6y?=
 =?us-ascii?Q?A/ptERQ14tDpTtIPzThWMvQn9HEH3KPXHynqECUenPttDSbzgSIry5UwNJzc?=
 =?us-ascii?Q?yMhmU1/dQKEBaOu9zxRzWF8+RFxFKExE09BYmOmKMa8E80npm7hh5zLMsdQS?=
 =?us-ascii?Q?32J6uBeYT3wr95FdJDfnvyubCPHNj9XUWzY8hYwbvO+FXXoe+A/QGy3DugSi?=
 =?us-ascii?Q?DtBEtmWVBVn0UEmR9tOvaJTGGVgpWR2a6fd3VcPo0Z/ajYxYIaYybJfx2bfY?=
 =?us-ascii?Q?zK3snb/FkOR+RCwLnxSMLy2VpvfyTAs06GWyzIKQgNoX+oIC03xKqaTEa5cw?=
 =?us-ascii?Q?mSDRxXcrf+Wsvjob2tJGFZNKKsYGPIMgemkYBVpTTCnsBvvufkI/FC2m5oqx?=
 =?us-ascii?Q?7PCZYLPLxhdvdUiwJ/5mLi4pddmaPF/gge8Gn452JCIX9s+tQ8SdCTX/LYLE?=
 =?us-ascii?Q?Iyc120krRojFsVaZ7NOVWqoSnt/HBk3yghMj9RD6tOYQsj3q2zOUYLgryJTu?=
 =?us-ascii?Q?mST+DdcjVuQ4eY8pE2opw//wxdFslzTZ0dxRRYj5TBCiHx4QU69B96FxxJzI?=
 =?us-ascii?Q?qTPuWhOYHwamzVCeC4QW1Ajp9QEfvNMkbiZ3DDh1AHehNYBvzRisMMm5dWEc?=
 =?us-ascii?Q?e400YBJWBRjFeAPkADI5TMgKi06ln07mXdeAWbe8BVNeB+5WpidssIM0ew+i?=
 =?us-ascii?Q?ZFL+BWPilBtdwso5bKMkFB+siWz2r2u5SIxDsOUvmHROazqZHYR28i2uwdsZ?=
 =?us-ascii?Q?n7VaYGtKtg5NGNOlL+b7/rvXuPl05ysokBUjUX9hRplY3P3aLjDGArBSyxAK?=
 =?us-ascii?Q?3OqCLh7SHg5vbifr00la24vQF4x/wzYH8wy97xD3q6JrRBHM2ewc0F8F8lrb?=
 =?us-ascii?Q?lnA0he9kKeBpnhnvj+q2rjx/IdZ32t/lWcHrSdYX2i6Tz0SiJ0LSWhSKKsSH?=
 =?us-ascii?Q?Su6h9b/wWDDizpQWEGW2vs6tn1u/7u7wJLaS?=
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)(376014)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Apr 2025 07:41:22.0772
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: b82a5493-65ea-40b0-d0e0-08dd7b27c094
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:
	CH1PEPF0000AD7A.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB7040

AMD cpufreq cores will be intialized in two modes, legacy P-state mode,
and CPPC mode. So "init" flag shall be extracted from specific
"struct xen_processor_perf", and placed in the common
"struct processor_pminfo".

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
v3 -> v4:
- new commit
---
 xen/drivers/acpi/pmstat.c                 | 4 ++--
 xen/drivers/cpufreq/cpufreq.c             | 8 ++++----
 xen/include/acpi/cpufreq/processor_perf.h | 4 ++--
 3 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/xen/drivers/acpi/pmstat.c b/xen/drivers/acpi/pmstat.c
index c51b9ca358..767594908c 100644
--- a/xen/drivers/acpi/pmstat.c
+++ b/xen/drivers/acpi/pmstat.c
@@ -68,7 +68,7 @@ int do_get_pm_info(struct xen_sysctl_get_pmstat *op)
             return -ENODEV;
         if ( hwp_active() )
             return -EOPNOTSUPP;
-        if ( !pmpt || !(pmpt->perf.init & XEN_PX_INIT) )
+        if ( !pmpt || !(pmpt->init & XEN_PX_INIT) )
             return -EINVAL;
         break;
     default:
@@ -463,7 +463,7 @@ int do_pm_op(struct xen_sysctl_pm_op *op)
     case CPUFREQ_PARA:
         if ( !(xen_processor_pmbits & XEN_PROCESSOR_PM_PX) )
             return -ENODEV;
-        if ( !pmpt || !(pmpt->perf.init & XEN_PX_INIT) )
+        if ( !pmpt || !(pmpt->init & XEN_PX_INIT) )
             return -EINVAL;
         break;
     }
diff --git a/xen/drivers/cpufreq/cpufreq.c b/xen/drivers/cpufreq/cpufreq.c
index 4a103c6de9..b01ed8e294 100644
--- a/xen/drivers/cpufreq/cpufreq.c
+++ b/xen/drivers/cpufreq/cpufreq.c
@@ -209,7 +209,7 @@ int cpufreq_add_cpu(unsigned int cpu)
 
     perf = &processor_pminfo[cpu]->perf;
 
-    if ( !(perf->init & XEN_PX_INIT) )
+    if ( !(processor_pminfo[cpu]->init & XEN_PX_INIT) )
         return -EINVAL;
 
     if (!cpufreq_driver.init)
@@ -367,7 +367,7 @@ int cpufreq_del_cpu(unsigned int cpu)
 
     perf = &processor_pminfo[cpu]->perf;
 
-    if ( !(perf->init & XEN_PX_INIT) )
+    if ( !(processor_pminfo[cpu]->init & XEN_PX_INIT) )
         return -EINVAL;
 
     if (!per_cpu(cpufreq_cpu_policy, cpu))
@@ -563,7 +563,7 @@ int set_px_pminfo(uint32_t acpi_id, struct xen_processor_performance *perf)
         if ( cpufreq_verbose )
             print_PPC(pxpt->platform_limit);
 
-        if ( pxpt->init == XEN_PX_INIT )
+        if ( pmpt->init == XEN_PX_INIT )
         {
             ret = cpufreq_limit_change(cpu);
             goto out;
@@ -572,7 +572,7 @@ int set_px_pminfo(uint32_t acpi_id, struct xen_processor_performance *perf)
 
     if ( perf->flags == ( XEN_PX_PCT | XEN_PX_PSS | XEN_PX_PSD | XEN_PX_PPC ) )
     {
-        pxpt->init = XEN_PX_INIT;
+        pmpt->init = XEN_PX_INIT;
 
         ret = cpufreq_cpu_init(cpu);
         goto out;
diff --git a/xen/include/acpi/cpufreq/processor_perf.h b/xen/include/acpi/cpufreq/processor_perf.h
index 301104e16f..5f2612b15a 100644
--- a/xen/include/acpi/cpufreq/processor_perf.h
+++ b/xen/include/acpi/cpufreq/processor_perf.h
@@ -29,14 +29,14 @@ struct processor_performance {
     struct xen_processor_px *states;
     struct xen_psd_package domain_info;
     uint32_t shared_type;
-
-    uint32_t init;
 };
 
 struct processor_pminfo {
     uint32_t acpi_id;
     uint32_t id;
     struct processor_performance    perf;
+
+    uint32_t init;
 };
 
 extern struct processor_pminfo *processor_pminfo[NR_CPUS];
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Apr 14 07:41:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 07:41:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.949114.1345741 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4ERi-00004q-9O; Mon, 14 Apr 2025 07:41:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 949114.1345741; Mon, 14 Apr 2025 07:41:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4ERi-0008WP-6J; Mon, 14 Apr 2025 07:41:34 +0000
Received: by outflank-mailman (input) for mailman id 949114;
 Mon, 14 Apr 2025 07:41:33 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=KQal=XA=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1u4ERg-0008Gw-Tc
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 07:41:33 +0000
Received: from NAM12-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam12on2062a.outbound.protection.outlook.com
 [2a01:111:f403:2417::62a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e122d48c-1903-11f0-9ffb-bf95429c2676;
 Mon, 14 Apr 2025 09:41:30 +0200 (CEST)
Received: from CH0P221CA0027.NAMP221.PROD.OUTLOOK.COM (2603:10b6:610:11d::8)
 by SA3PR12MB9092.namprd12.prod.outlook.com (2603:10b6:806:37f::7) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.32; Mon, 14 Apr
 2025 07:41:26 +0000
Received: from CH1PEPF0000AD76.namprd04.prod.outlook.com
 (2603:10b6:610:11d:cafe::c8) by CH0P221CA0027.outlook.office365.com
 (2603:10b6:610:11d::8) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.35 via Frontend Transport; Mon,
 14 Apr 2025 07:41:25 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CH1PEPF0000AD76.mail.protection.outlook.com (10.167.244.53) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Mon, 14 Apr 2025 07:41:24 +0000
Received: from penny-System-Product-Name.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; Mon, 14 Apr 2025 02:41:21 -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: e122d48c-1903-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=qBFTu1gird7mucKYLZlyFSMj/3xWTaeTDuhq4Lh79E8fOiYrJ5Z0kXD0NgT6fpx1MDd6Tyt8MGwpkiNMQYmQM5a9ihRg0jZf/OAjrBqI3JE5Cy8V3TWtXsR0cNlG0JgQmThl3GkHz8iMlJD++4PxK8Vs5D+46vn2jAitYdHgW19YKiPTcqpT1UDanB9S/MmVrh2YTkj+K9wmT5/mMW1tR+20WDqeKNzRTltQNnbsvx5EJCCNTJ2I7LNbN2/R6yEFe2Ks7RiC93Rwi4Y6M/oxUDoVs9nneqHafMDcCPdp5VYOm+EpN0jatFV2BV2Yu6PLzrMdXaskU/PKVrH8ABd9UA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ArA15AsxDcV53pi24NZHesBDb6FJeO7+vzxGj359L/E=;
 b=PxU4mkUMjTz8GNvckSzuBjH7sTG4uYUkLNHo+X6TDKK+DuPpdPnrg4r8aUHhNj10/VjDny6KfwGyvSXauRXWeNtcotTcHHdcKHnZXc0gA7+f8lCgfi5EXiN0JzJvhARFGrf00PuI+HH6EB9Yr9m0vHlSIGpxvP4y6kX9+Q2Fa52bvU7rn1zWakAeC2eOi3KJy6KQH6rgKnEBCw72MsoxSgSWFtBSjNsDv0I0Bd7b4qbb0QdydKAovm7rvaI6qreoEmOFYZUgfbBGDVGzVL//VARLAGwcdba7GuHeO3OEPT7COq15LRi6MahfPibG9EZF4SzqVZDrPj5sx0GV0hWYRw==
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=ArA15AsxDcV53pi24NZHesBDb6FJeO7+vzxGj359L/E=;
 b=jRVf7wOJqF7BAIQKot63gKVH4FnI/jwGSsavG+ovLLfqACSVCvPgk76I8nW6Zgx2hY9Z2m7nUYkS8d4y8GnAkf92VY9wS+kN790CXN9XUAizv1DrjxA5jgxoQsOvy3+ji3t1Z2gspIOwyYGsboIYdnji+EAXk7ydEx1emYQkhy4=
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: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>, "Anthony
 PERARD" <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>,
	Julien Grall <julien@xen.org>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v4 02/15] xen/cpufreq: extract _PSD info from "struct xen_processor_performance"
Date: Mon, 14 Apr 2025 15:40:43 +0800
Message-ID: <20250414074056.3696888-3-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250414074056.3696888-1-Penny.Zheng@amd.com>
References: <20250414074056.3696888-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: CH1PEPF0000AD76:EE_|SA3PR12MB9092:EE_
X-MS-Office365-Filtering-Correlation-Id: 54bc6bbe-8690-4de2-4036-08dd7b27c23b
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|36860700013|376014|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?wE8ePRmw3NcLeTFuWkizkbwJycqll9CRPHOR++WHUf2xwF//NaVdEAs83oer?=
 =?us-ascii?Q?gmj7zeGclLuVvh7Vj3Y/UbX7XRHj4xvB2bQquxk+npzdP008nprmM7srFX8v?=
 =?us-ascii?Q?/YyancdnNnw18Dnz4RPI75HYKW5fLgGO9gJgYgfeOmX3Ftqll1Vw2Cl6nP6z?=
 =?us-ascii?Q?0h69u0XAH1Ldu4b65npe760Nxg70ZRT/hCWddqww6yXZDNTYbCDkvN6bxogA?=
 =?us-ascii?Q?iR1EJW6MOV6ql4bVGe4kNFAciQ2V6rp1Q5rPNDn2zwFHmGjZyo3Y3xcyK2Lv?=
 =?us-ascii?Q?IFVob2pc7ggBbtDB3Zfye+BqXKT9iX96P+YA4681jsvk9E3N25j4CEzpMaq4?=
 =?us-ascii?Q?2M8N9WhVqccJceVA5OLLCjDkX8pLew/+bPlSFbykNlhwFggXbSCimZ/aKTw/?=
 =?us-ascii?Q?A6QlPN5/rGCzvc3Jy3TGGdV1P9RZ6zWkkYOFbyxFi/FQ0y/ftUlWs9fEwJkZ?=
 =?us-ascii?Q?+ooA0BxHjzlwm3SI69QMwY/fNzi5OJmUK2CtkVPQ5KA/aEZazyA+3m4oi/2s?=
 =?us-ascii?Q?Ag2HISE2eYki6mLA/gSUhRjYUqIEsGk8qxMjhKQbeWv6zwFrsn2yfa3qOtxL?=
 =?us-ascii?Q?vKwG+skMPsbMQY/vHbj40cFBZhUrcmYNb5JmIAD0sL7hgLxjBypyTcCe/nlz?=
 =?us-ascii?Q?6YhOVHfslB5FBTV0p9x9DnUVJkQM/owBTm8YoTio4w+3DfvlhFQ22dqJXAvV?=
 =?us-ascii?Q?F+T7+8ar8gpBlm5lRTeSX8vFkchpDXo6yM/VrZVwBY9CtPme4y5xSiaRJpyb?=
 =?us-ascii?Q?5PysouGgPuQ3qkWHSfYiNbYZt2rvfANDYgzTeH6QUXwtTrOxwHzw3owjQw82?=
 =?us-ascii?Q?V8BGJbZop+qWt+EGBitXQkFTY/ajyzrgr8aUPztJqvAhEMo8rPBaU+qSQSYY?=
 =?us-ascii?Q?CRlfW1VRbhdqk7/R2CufSoCSjgqRGC8trU1x/kqIiWy+lbboa4kIPuqar9X3?=
 =?us-ascii?Q?8rFHkr0VICUfu8FqkGhK8FVv0TSxN8OuOEuMoNUwR5SA0mDIBRa4dR4M48g9?=
 =?us-ascii?Q?b+vtoIYm0C+4+OHKgQMqmlW4Fddj17vhx0HuVKK/iwZokZKKXeRG7LA3JeN2?=
 =?us-ascii?Q?XdXsNQvqwqJCa/4B5Qm2w60L+7NqODf55gUC126r4LsngF6Mmtfoeuc6Xnmx?=
 =?us-ascii?Q?2PqaCX0Jx4mHXpQFLlnSzpHqStyIM7rtJQsf2zUOd7X4LNklb91oNqyjxBea?=
 =?us-ascii?Q?/soOPQf5ZRnG1tAAtFtrKaQynpeEGNDsn/dwkxUfv3QWsXfDBaSoRDhlT539?=
 =?us-ascii?Q?IVOsYwLRNMcjae0FVGQHb9GtvmgJr/R2UGXtFuwMe+VfejiH292q+chCRcLG?=
 =?us-ascii?Q?56XQfLBPVocw0OEx7RrXgdcyfNUmtYKwJq9EMHkeDgtgjtYFwbKWzVF/uxj4?=
 =?us-ascii?Q?wJ5OmNYr97JoNHXrxWWpaPe/hbw8iVuJcVP0aQ4IvP4H/TnLhWSz5kV/n49c?=
 =?us-ascii?Q?QpjJseYHehcE0avJM8Tc6CPczvGaCZcwNUNbrx+mvABFqBjb8TuN60srehA1?=
 =?us-ascii?Q?xeefLZ/VxRMG/urW8jA716djgkIiH/q2p2V6?=
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: 14 Apr 2025 07:41:24.8457
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 54bc6bbe-8690-4de2-4036-08dd7b27c23b
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:
	CH1PEPF0000AD76.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA3PR12MB9092

Since we need to re-use _PSD info, containing "shared_type" and
"struct xen_psd_package", for CPPC mode, we move all
"#define XEN_CPUPERF_SHARED_TYPE_xxx" up as common values, and introduce
a new helper check_psd_pminfo() to wrap _PSD info check.

In cpufreq_add/del_cpu(), a new helper get_psd_info() is introduced to
extract "shared_type" and "struct xen_psd_package" from
"struct xen_processor_performance", and a few indentation get fixed at
the same time.

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
v3 -> v4:
- new commit
---
 xen/drivers/cpufreq/cpufreq.c | 107 ++++++++++++++++++++++++----------
 xen/include/public/platform.h |  10 ++--
 2 files changed, 82 insertions(+), 35 deletions(-)

diff --git a/xen/drivers/cpufreq/cpufreq.c b/xen/drivers/cpufreq/cpufreq.c
index b01ed8e294..b020ccbcf7 100644
--- a/xen/drivers/cpufreq/cpufreq.c
+++ b/xen/drivers/cpufreq/cpufreq.c
@@ -191,9 +191,31 @@ int cpufreq_limit_change(unsigned int cpu)
     return __cpufreq_set_policy(data, &policy);
 }
 
-int cpufreq_add_cpu(unsigned int cpu)
+static int get_psd_info(uint32_t init, unsigned int cpu,
+                        uint32_t *shared_type,
+                        struct xen_psd_package *domain_info)
 {
     int ret = 0;
+
+    switch ( init )
+    {
+    case XEN_PX_INIT:
+        if ( shared_type )
+            *shared_type = processor_pminfo[cpu]->perf.shared_type;
+        if ( domain_info )
+            *domain_info = processor_pminfo[cpu]->perf.domain_info;
+        break;
+    default:
+        ret = -EINVAL;
+        break;
+    }
+
+    return ret;
+}
+
+int cpufreq_add_cpu(unsigned int cpu)
+{
+    int ret;
     unsigned int firstcpu;
     unsigned int dom, domexist = 0;
     unsigned int hw_all = 0;
@@ -201,14 +223,13 @@ int cpufreq_add_cpu(unsigned int cpu)
     struct cpufreq_dom *cpufreq_dom = NULL;
     struct cpufreq_policy new_policy;
     struct cpufreq_policy *policy;
-    struct processor_performance *perf;
+    struct xen_psd_package domain_info;
+    uint32_t shared_type;
 
     /* to protect the case when Px was not controlled by xen */
     if ( !processor_pminfo[cpu] || !cpu_online(cpu) )
         return -EINVAL;
 
-    perf = &processor_pminfo[cpu]->perf;
-
     if ( !(processor_pminfo[cpu]->init & XEN_PX_INIT) )
         return -EINVAL;
 
@@ -218,10 +239,15 @@ int cpufreq_add_cpu(unsigned int cpu)
     if (per_cpu(cpufreq_cpu_policy, cpu))
         return 0;
 
-    if (perf->shared_type == CPUFREQ_SHARED_TYPE_HW)
+    ret = get_psd_info(processor_pminfo[cpu]->init, cpu,
+                       &shared_type, &domain_info);
+    if ( ret )
+        return ret;
+
+    if ( shared_type == CPUFREQ_SHARED_TYPE_HW )
         hw_all = 1;
 
-    dom = perf->domain_info.domain;
+    dom = domain_info.domain;
 
     list_for_each(pos, &cpufreq_dom_list_head) {
         cpufreq_dom = list_entry(pos, struct cpufreq_dom, node);
@@ -244,20 +270,27 @@ int cpufreq_add_cpu(unsigned int cpu)
         cpufreq_dom->dom = dom;
         list_add(&cpufreq_dom->node, &cpufreq_dom_list_head);
     } else {
+        uint32_t firstcpu_shared_type;
+        struct xen_psd_package firstcpu_domain_info;
+
         /* domain sanity check under whatever coordination type */
         firstcpu = cpumask_first(cpufreq_dom->map);
-        if ((perf->domain_info.coord_type !=
-            processor_pminfo[firstcpu]->perf.domain_info.coord_type) ||
-            (perf->domain_info.num_processors !=
-            processor_pminfo[firstcpu]->perf.domain_info.num_processors)) {
-
+        ret = get_psd_info(processor_pminfo[firstcpu]->init, firstcpu,
+                           &firstcpu_shared_type, &firstcpu_domain_info);
+        if ( ret )
+            return ret;
+
+        if ( (domain_info.coord_type != firstcpu_domain_info.coord_type) ||
+             (domain_info.num_processors !=
+              firstcpu_domain_info.num_processors) )
+        {
             printk(KERN_WARNING "cpufreq fail to add CPU%d:"
                    "incorrect _PSD(%"PRIu64":%"PRIu64"), "
                    "expect(%"PRIu64"/%"PRIu64")\n",
-                   cpu, perf->domain_info.coord_type,
-                   perf->domain_info.num_processors,
-                   processor_pminfo[firstcpu]->perf.domain_info.coord_type,
-                   processor_pminfo[firstcpu]->perf.domain_info.num_processors
+                   cpu, domain_info.coord_type,
+                   domain_info.num_processors,
+                   firstcpu_domain_info.coord_type,
+                   firstcpu_domain_info.num_processors
                 );
             return -EINVAL;
         }
@@ -304,8 +337,9 @@ int cpufreq_add_cpu(unsigned int cpu)
     if (ret)
         goto err1;
 
-    if (hw_all || (cpumask_weight(cpufreq_dom->map) ==
-                   perf->domain_info.num_processors)) {
+    if ( hw_all || (cpumask_weight(cpufreq_dom->map) ==
+                    domain_info.num_processors) )
+    {
         memcpy(&new_policy, policy, sizeof(struct cpufreq_policy));
         policy->governor = NULL;
 
@@ -354,29 +388,34 @@ err0:
 
 int cpufreq_del_cpu(unsigned int cpu)
 {
+    int ret;
     unsigned int dom, domexist = 0;
     unsigned int hw_all = 0;
     struct list_head *pos;
     struct cpufreq_dom *cpufreq_dom = NULL;
     struct cpufreq_policy *policy;
-    struct processor_performance *perf;
+    uint32_t shared_type;
+    struct xen_psd_package domain_info;
 
     /* to protect the case when Px was not controlled by xen */
     if ( !processor_pminfo[cpu] || !cpu_online(cpu) )
         return -EINVAL;
 
-    perf = &processor_pminfo[cpu]->perf;
-
     if ( !(processor_pminfo[cpu]->init & XEN_PX_INIT) )
         return -EINVAL;
 
     if (!per_cpu(cpufreq_cpu_policy, cpu))
         return 0;
 
-    if (perf->shared_type == CPUFREQ_SHARED_TYPE_HW)
+    ret = get_psd_info(processor_pminfo[cpu]->init, cpu,
+                       &shared_type, &domain_info);
+    if ( ret )
+        return ret;
+
+    if ( shared_type == CPUFREQ_SHARED_TYPE_HW )
         hw_all = 1;
 
-    dom = perf->domain_info.domain;
+    dom = domain_info.domain;
     policy = per_cpu(cpufreq_cpu_policy, cpu);
 
     list_for_each(pos, &cpufreq_dom_list_head) {
@@ -392,8 +431,8 @@ int cpufreq_del_cpu(unsigned int cpu)
 
     /* for HW_ALL, stop gov for each core of the _PSD domain */
     /* for SW_ALL & SW_ANY, stop gov for the 1st core of the _PSD domain */
-    if (hw_all || (cpumask_weight(cpufreq_dom->map) ==
-                   perf->domain_info.num_processors))
+    if ( hw_all || (cpumask_weight(cpufreq_dom->map) ==
+                    domain_info.num_processors) )
         __cpufreq_governor(policy, CPUFREQ_GOV_STOP);
 
     cpufreq_statistic_exit(cpu);
@@ -458,6 +497,17 @@ static void print_PPC(unsigned int platform_limit)
     printk("\t_PPC: %d\n", platform_limit);
 }
 
+static int check_psd_pminfo(const struct xen_processor_performance *perf)
+{
+    /* check domain coordination */
+    if ( perf->shared_type != CPUFREQ_SHARED_TYPE_ALL &&
+         perf->shared_type != CPUFREQ_SHARED_TYPE_ANY &&
+         perf->shared_type != CPUFREQ_SHARED_TYPE_HW )
+        return -EINVAL;
+
+    return 0;
+}
+
 int set_px_pminfo(uint32_t acpi_id, struct xen_processor_performance *perf)
 {
     int ret = 0, cpu;
@@ -539,14 +589,9 @@ int set_px_pminfo(uint32_t acpi_id, struct xen_processor_performance *perf)
 
     if ( perf->flags & XEN_PX_PSD )
     {
-        /* check domain coordination */
-        if ( perf->shared_type != CPUFREQ_SHARED_TYPE_ALL &&
-             perf->shared_type != CPUFREQ_SHARED_TYPE_ANY &&
-             perf->shared_type != CPUFREQ_SHARED_TYPE_HW )
-        {
-            ret = -EINVAL;
+        ret = check_psd_pminfo(perf);
+        if ( ret )
             goto out;
-        }
 
         pxpt->shared_type = perf->shared_type;
         memcpy(&pxpt->domain_info, &perf->domain_info,
diff --git a/xen/include/public/platform.h b/xen/include/public/platform.h
index 2725b8d104..67cf5eeabd 100644
--- a/xen/include/public/platform.h
+++ b/xen/include/public/platform.h
@@ -440,6 +440,11 @@ struct xen_psd_package {
     uint64_t num_processors;
 };
 
+/* Coordination type value */
+#define XEN_CPUPERF_SHARED_TYPE_HW   1 /* HW does needed coordination */
+#define XEN_CPUPERF_SHARED_TYPE_ALL  2 /* All dependent CPUs should set freq */
+#define XEN_CPUPERF_SHARED_TYPE_ANY  3 /* Freq can be set from any dependent CPU */
+
 struct xen_processor_performance {
     uint32_t flags;     /* flag for Px sub info type */
     uint32_t platform_limit;  /* Platform limitation on freq usage */
@@ -449,10 +454,7 @@ struct xen_processor_performance {
     XEN_GUEST_HANDLE(xen_processor_px_t) states;
     struct xen_psd_package domain_info;
     /* Coordination type of this processor */
-#define XEN_CPUPERF_SHARED_TYPE_HW   1 /* HW does needed coordination */
-#define XEN_CPUPERF_SHARED_TYPE_ALL  2 /* All dependent CPUs should set freq */
-#define XEN_CPUPERF_SHARED_TYPE_ANY  3 /* Freq can be set from any dependent CPU */
-    uint32_t shared_type;
+    uint32_t shared_type; /* XEN_CPUPERF_SHARED_TYPE_xxx */
 };
 typedef struct xen_processor_performance xen_processor_performance_t;
 DEFINE_XEN_GUEST_HANDLE(xen_processor_performance_t);
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Apr 14 07:41:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 07:41:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.949115.1345751 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4ERl-0000Ll-MA; Mon, 14 Apr 2025 07:41:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 949115.1345751; Mon, 14 Apr 2025 07:41: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 1u4ERl-0000Ld-IA; Mon, 14 Apr 2025 07:41:37 +0000
Received: by outflank-mailman (input) for mailman id 949115;
 Mon, 14 Apr 2025 07:41:35 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=KQal=XA=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1u4ERj-0008Gw-NE
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 07:41:35 +0000
Received: from NAM10-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam10on20625.outbound.protection.outlook.com
 [2a01:111:f403:2413::625])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e242d72c-1903-11f0-9ffb-bf95429c2676;
 Mon, 14 Apr 2025 09:41:33 +0200 (CEST)
Received: from CH2PR10CA0016.namprd10.prod.outlook.com (2603:10b6:610:4c::26)
 by SJ2PR12MB8955.namprd12.prod.outlook.com (2603:10b6:a03:542::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.34; Mon, 14 Apr
 2025 07:41:30 +0000
Received: from CH1PEPF0000AD78.namprd04.prod.outlook.com
 (2603:10b6:610:4c:cafe::6) by CH2PR10CA0016.outlook.office365.com
 (2603:10b6:610:4c::26) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.35 via Frontend Transport; Mon,
 14 Apr 2025 07:41:29 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CH1PEPF0000AD78.mail.protection.outlook.com (10.167.244.56) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Mon, 14 Apr 2025 07:41:29 +0000
Received: from penny-System-Product-Name.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; Mon, 14 Apr 2025 02:41:27 -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: e242d72c-1903-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=dMQMu38ef+sUX4uH3SVGRPk8KF+aIz8AL5ydZDYcRG1e63/CckF2LfKaZYnNQWa/DoD5eISD0zl1GYXlkxIsxa2zEzsvjt17mn4MUbvtSIdRvn77fDTtltA1LDayO6wthUgHDImBM3Fz22LqumwsleH9or73oG0iOlqtipvA2/m2wPE9mdeZaZQoKULn3vyaeLcvAnQm3T4TegSOS8GTeRMsmE3WN/vc/Bakt20/oVw0sPiJAVI/0oe+rsxHJH/5fB+u2qwkHmTSwGvHoSF4fPL8Qv0whiUJijx//EJVBV7982EjgsAxFRzAYqQaPKqfjdO1AWnAqqfP9IDZrdW+mg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=kLUcq/TmN6jDuYZQqVsZv1XniSM+qayZPJdduzw5/xc=;
 b=L/1bKH9x4e/9mAd7mymfkowk3W9j0dYy4S+QY4L6Xgf8u/3fbifBiPbpXGigzH9CHq2Lo7DRi5kHg+igKy4rRXb3vDbk0hdP9jJ9s4h8bcKe9tYAyHw21O/kiFIY1baJEdDXJ+w5TGH1//DnVnIpeTpawlYR78HNT/EqEoz2CQLhKO+p5TJcOwHDRvaV/BNsz84nGpQu/nNMN3F4pJuYeVhh00GJX/I8kdDsOBmPUv2nO8/qAtqZ6gEtKpwXnmsw7ycSi3LCel4afMEtgBOHO4LE7xAay9f6tpt8XxBh7YJbX6CXQCAK5H+4+wzMhjQiDJokFBZX1g+pR7zTbLFkgg==
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=kLUcq/TmN6jDuYZQqVsZv1XniSM+qayZPJdduzw5/xc=;
 b=WYchlDRPdNUbzNhm5f/Vv2OyCE1/A41f7UnWsaIwteExQmJ0obdS3XfTW7p1YIoKCa1yKcY0bobsa1D+pIiZJ8neXDTzzT/Xk58GiYI4p/OgrJEyfX/cI2VotAIe5RA9BVrpuIGMjPdz24y04++2lZyczADh7Fl7mdmnQENX6+o=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.com>, Jan Beulich
	<jbeulich@suse.com>
Subject: [PATCH v4 04/15] xen/cpufreq: refactor cmdline "cpufreq=xxx"
Date: Mon, 14 Apr 2025 15:40:45 +0800
Message-ID: <20250414074056.3696888-5-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250414074056.3696888-1-Penny.Zheng@amd.com>
References: <20250414074056.3696888-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: CH1PEPF0000AD78:EE_|SJ2PR12MB8955:EE_
X-MS-Office365-Filtering-Correlation-Id: aaef0c1a-0ca1-4adf-e9c3-08dd7b27c4fb
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?uYB/yuBNk1lEBknlLnzYnz4hAIIM2Zi0BMI7AcyLIsoqi3rKvFBmzNALsdsm?=
 =?us-ascii?Q?obOzVnhBTxByzyL59ZQxroacBBLKUXI0WHAiNOBJx+DVrNGqez3xiCZbd6tA?=
 =?us-ascii?Q?hzDinkLXZPBG5VjkyOSDbZjsNPQ1RaAf75v9NW5gQ0AVbt7h9Yr6Cd0zlWWo?=
 =?us-ascii?Q?9BtdnH/42W99m+GN4VahKX0AkxOESO6U9tx6U0ODrCfsqljA+7UJlybg+vHW?=
 =?us-ascii?Q?0LMygegxrXqT7NtCHP4SoTZ2e7iYtUIoxX2hIVnJsdZS/vAQZcrEtma/6+2n?=
 =?us-ascii?Q?QfOnT5NW7L6eN9wjBj1Bciw4VYBWO4yHwNzmezdnEE9z95gYbj3n1hjds4yc?=
 =?us-ascii?Q?okyyix2q3XRpwMkWbiY3p/2lKgs6CwAnmGoniuQUUpK9rg7UvSXiyamRab0Z?=
 =?us-ascii?Q?Gr4xTpqkYP21TXp4ETcuxBQl7H7i/P1O0HG67uWToBXj4a7oQltxxV7S/g8M?=
 =?us-ascii?Q?NORd39uqIHLdz0J8WLKGAe+ERB+M948B/o/KeCbQPm9bsVOJTHT5OhFqalX5?=
 =?us-ascii?Q?QXp2YqdQNg4ADhU+/7YIZaXekcVY06We+xEhKBSPDe76hmJgd3bjRg6y75AF?=
 =?us-ascii?Q?51GLqF1DeL0AcJILY5G8q2LE/g44xVrpb0LVnqVrdfiRBvT7kPUmib6k7gyC?=
 =?us-ascii?Q?PTE5vwtt24Polt0jfsN7IvdHGPGEta6cC1chgQ4ysqsyTD+daYRObFrO7HEW?=
 =?us-ascii?Q?RWCkiybdscGMKY7I7tboyJPo5VB/pY1o/fP03WLrdmXfU4mi9m544NaFzV0U?=
 =?us-ascii?Q?u2S77/y96qtCb0pbVw8RO0KMnZTRjAFg0OHzOZ5YiMCdDrwnxlA46gy2i/xy?=
 =?us-ascii?Q?ixDHxPl8Oi5v9bqXirso+/uWkKTxITwXPQN4u3MSwngGUfiK5uQvpW6ggije?=
 =?us-ascii?Q?uK+zRmnEkw6T6m14s51zIM0cQVh4FLheoNVIJvJ4OuTqucnBf0vewZg1IyDf?=
 =?us-ascii?Q?kRFbsOLLcY99c/FezFc7osU+jL7qCr/wWQPBcr7LjBaY8A0Ov3kHOR/XZKXo?=
 =?us-ascii?Q?8IPwRy5d/NQ2TrfQg1/uCtoZMtn1xfDHrprpFHywgTy3paxPAU4MkGbGIGWq?=
 =?us-ascii?Q?MHRKWp1j5lvTwUmCVszCQ8GERqHL+hrKD43sxvWRC/9uePqSMHRLLEkBlsSs?=
 =?us-ascii?Q?JODYM3fVbgtcVbXDsFtsN5bduV43njYs7JYVsVG/tteVayf/jfF1Hglhw7J6?=
 =?us-ascii?Q?Yo23bevWCp+3Ai9hj0XTTqvo0scTHMpLVnjOGtb6Op5xwXBrH4wEi//G6ULC?=
 =?us-ascii?Q?GdV9K0r5VqVxKzDv5a04pZH8FYHoI1rJK/pySnAayvueazT8KAH6OJYWz4lP?=
 =?us-ascii?Q?a9WrxATRn1+o3BvE7rkQL1dW8u2RllqjwrGRgKdCpQrOQOUJH+u826x+sQz+?=
 =?us-ascii?Q?DuaBlLY8j99aqeCdIqxXe4eQZ9w3t6FsMPROKodEFfAhbRdKss8NwadwX3l2?=
 =?us-ascii?Q?mKrpQkKrwh5ztX6loYDbBmRs4doSXsrlALO5niDEiPap2cjg66uJMoVVnU/6?=
 =?us-ascii?Q?bIgcLXOn6khEr/T97J4r0Uzb/9OTuTQWYVj6?=
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)(82310400026)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Apr 2025 07:41:29.4638
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: aaef0c1a-0ca1-4adf-e9c3-08dd7b27c4fb
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:
	CH1PEPF0000AD78.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR12MB8955

A helper function handle_cpufreq_cmdline() is introduced to tidy different
handling pathes.
We also add a new helper cpufreq_opts_contain() to ignore and warn user
redundant setting, like "cpufreq=hwp;hwp;xen"

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
v2 -> v3:
- new commit
---
v3 -> v4:
- add one single helper to do the tidy work
- ignore and warn user redundant setting
---
 xen/drivers/cpufreq/cpufreq.c | 53 +++++++++++++++++++++++++++++------
 1 file changed, 45 insertions(+), 8 deletions(-)

diff --git a/xen/drivers/cpufreq/cpufreq.c b/xen/drivers/cpufreq/cpufreq.c
index e01acc0c2d..79c6444116 100644
--- a/xen/drivers/cpufreq/cpufreq.c
+++ b/xen/drivers/cpufreq/cpufreq.c
@@ -71,6 +71,49 @@ unsigned int __initdata cpufreq_xen_cnt = 1;
 
 static int __init cpufreq_cmdline_parse(const char *s, const char *e);
 
+static bool __init cpufreq_opts_contain(enum cpufreq_xen_opt option)
+{
+    unsigned int count = cpufreq_xen_cnt;
+
+    while ( count )
+    {
+        if ( cpufreq_xen_opts[--count] == option )
+            return true;
+    }
+
+    return false;
+}
+
+static int __init handle_cpufreq_cmdline(enum cpufreq_xen_opt option)
+{
+    int ret = 0;
+
+    if ( cpufreq_opts_contain(option) )
+    {
+        const char *cpufreq_opts_str[] = { "CPUFREQ_xen", "CPUFREQ_hwp" };
+
+        printk(XENLOG_WARNING
+               "Duplicate cpufreq driver option: %s",
+               cpufreq_opts_str[option - 1]);
+        return 0;
+    }
+
+    cpufreq_controller = FREQCTL_xen;
+    cpufreq_xen_opts[cpufreq_xen_cnt++] = option;
+    switch ( option )
+    {
+    case CPUFREQ_hwp:
+    case CPUFREQ_xen:
+        xen_processor_pmbits |= XEN_PROCESSOR_PM_PX;
+        break;
+    default:
+        ret = -EINVAL;
+        break;
+    }
+
+    return ret;
+}
+
 static int __init cf_check setup_cpufreq_option(const char *str)
 {
     const char *arg = strpbrk(str, ",:;");
@@ -114,20 +157,14 @@ static int __init cf_check setup_cpufreq_option(const char *str)
 
         if ( choice > 0 || !cmdline_strcmp(str, "xen") )
         {
-            xen_processor_pmbits |= XEN_PROCESSOR_PM_PX;
-            cpufreq_controller = FREQCTL_xen;
-            cpufreq_xen_opts[cpufreq_xen_cnt++] = CPUFREQ_xen;
-            ret = 0;
+            ret = handle_cpufreq_cmdline(CPUFREQ_xen);
             if ( arg[0] && arg[1] )
                 ret = cpufreq_cmdline_parse(arg + 1, end);
         }
         else if ( IS_ENABLED(CONFIG_INTEL) && choice < 0 &&
                   !cmdline_strcmp(str, "hwp") )
         {
-            xen_processor_pmbits |= XEN_PROCESSOR_PM_PX;
-            cpufreq_controller = FREQCTL_xen;
-            cpufreq_xen_opts[cpufreq_xen_cnt++] = CPUFREQ_hwp;
-            ret = 0;
+            ret = handle_cpufreq_cmdline(CPUFREQ_hwp);
             if ( arg[0] && arg[1] )
                 ret = hwp_cmdline_parse(arg + 1, end);
         }
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Apr 14 07:41:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 07:41:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.949118.1345781 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4ERo-00014q-MA; Mon, 14 Apr 2025 07:41:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 949118.1345781; Mon, 14 Apr 2025 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 1u4ERo-00014c-HN; Mon, 14 Apr 2025 07:41:40 +0000
Received: by outflank-mailman (input) for mailman id 949118;
 Mon, 14 Apr 2025 07:41: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=KQal=XA=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1u4ERm-0008Gw-Uf
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 07:41:38 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on20603.outbound.protection.outlook.com
 [2a01:111:f403:2415::603])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e4f7a2a6-1903-11f0-9ffb-bf95429c2676;
 Mon, 14 Apr 2025 09:41:36 +0200 (CEST)
Received: from CH5PR05CA0019.namprd05.prod.outlook.com (2603:10b6:610:1f0::27)
 by BN7PPFB3F5C406F.namprd12.prod.outlook.com
 (2603:10b6:40f:fc02::6e0) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.32; Mon, 14 Apr
 2025 07:41:34 +0000
Received: from CH1PEPF0000AD77.namprd04.prod.outlook.com
 (2603:10b6:610:1f0:cafe::81) by CH5PR05CA0019.outlook.office365.com
 (2603:10b6:610:1f0::27) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.14 via Frontend Transport; Mon,
 14 Apr 2025 07:41:34 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CH1PEPF0000AD77.mail.protection.outlook.com (10.167.244.55) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Mon, 14 Apr 2025 07:41:33 +0000
Received: from penny-System-Product-Name.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; Mon, 14 Apr 2025 02:41:32 -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: e4f7a2a6-1903-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=HXXM7gonYPtLLX3r3eheWztwAk+YW1KYatB59mvJX0w9t4EauMFlpgb2XKuCcJMMLFScKSXqSL+f0SuOJmZqittYxq5IFUt4JEQbUukVbwgG8/WPRCcWi/1NWM0e0RZMsevKy+43vn+c6XB/iiHkj4RUjJDIFxh3u6jMSQLOGeTbD3fNBhWZbxMv+k9JH78ZA1VaG1ng1zaDQYT2XWnIGkgpH+0edO9sEygIeYe2ByTjXgQBuJNj/8Safhwy+WXZnJd0/iKL1V5KwfLD7zRJN0nrVhZJYFnrQTVInj4e53zzKm9eXucG6e10ZkFJ0hKbyXYXWc2XLDTCKxun6kp2Tg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=qwM1okoZi56E1zIpImVLgp1DbrCBg+nCr0izLGm2QqY=;
 b=NtyXBB9Dh1zfOjo1L5P51KarL/UWxeH92uUURBUuJe7XGM9c43LJ6hU73pzQNb8zYBt2NItaaf73DLdXqYiShdDpAQMxeJexqBweN5vkHdlb7BHGtpPY3h8gNv/KSqMIHbaXMAVPhJg5/AMfYmgbfw6BK5DiRkfVBXmIje1h2M7tEwppAfmprBr1E5vgd9nHmpHo7WXqiNshmp9rzpAE9FNjs24uW9tVWFA74Lt/27+xikjcz3BxYUkAg7mLRryk5SyLj+X4NuTdN5hVCVbLi79qCYAtGHpwnjdViE5yWEJMA3mlguPbpD3XjRdhkZ/4w8dp4HbzTf0K7psCzKjKig==
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=qwM1okoZi56E1zIpImVLgp1DbrCBg+nCr0izLGm2QqY=;
 b=BnaeyNDzAaKnoNRNnPfO1KBUmU1894JUvZoOg1VpS89MPDsIMdetCoHmoPudaru5w7sGqBpt21aQsmw8j1OvEqcKEkMm42vcgOfDYRho7jb/0ZyZZ8AGLNAvQEspOkBWMfOaZ3xdOq5qTbzb1jYLhcrcC87snMohH68PDk/ifkI=
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: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.com>, Jan Beulich
	<jbeulich@suse.com>
Subject: [PATCH v4 06/15] xen/cpufreq: disable px statistic info in amd-cppc mode
Date: Mon, 14 Apr 2025 15:40:47 +0800
Message-ID: <20250414074056.3696888-7-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250414074056.3696888-1-Penny.Zheng@amd.com>
References: <20250414074056.3696888-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: CH1PEPF0000AD77:EE_|BN7PPFB3F5C406F:EE_
X-MS-Office365-Filtering-Correlation-Id: 3e74f5c6-9d34-41be-5f6a-08dd7b27c799
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?lIqnwnCa4+Q5oLQJZE3FKUC3rFWZlEAyFZkYpWWFw6v2Q5SxW9OYFS5l+emM?=
 =?us-ascii?Q?KBZhHqHScHotaCS4uCorieNhGQdWzR/Uw+Q6ZoivJJLBVpwyxZQrh2MlTVUt?=
 =?us-ascii?Q?7T7sxpHHCUgcDaUiIRslbVnzDp/hHYwTtNQlUlELGr94arjfMqaI0fBfrVDj?=
 =?us-ascii?Q?w/XeeyXsYOlcHlGoIpA4R+mOfLR/LYewpEL6q15FT9atl6EK/Hb3pyr4CtDP?=
 =?us-ascii?Q?IDr3rnHBlC+ujrW+WjVUoL0q8MhBvrySmAc9POEQN95YD2xld1n6xpUnqdAT?=
 =?us-ascii?Q?1KHE9jLzsIomBB37qvvYjBvwTV7kUkh8fshBBGC4M26og7xtAitPgGdSmgut?=
 =?us-ascii?Q?SgGz0C7V/WpT6ahimwix+CVOE9HV0uKEhFPkFVI5BokAaRQPxo5pUbpIUEol?=
 =?us-ascii?Q?j5lDWVCrkZTzLHzGC23jpN9Z0g9skfijQu6LkiXhnum+0BUKSiAFAWlmcDBh?=
 =?us-ascii?Q?p0JXtkYEEUJ1RgkloiimZDbYl5cVvRObmOR6Ct9SoAyBST7nl6XA89OjOJ0Y?=
 =?us-ascii?Q?jSGWpJkzfz3xkjR+dQ2Z31TZ39g8NsScrBP/BkZszH7OBwelLIaSzz6zQUoo?=
 =?us-ascii?Q?CRIWgqU7o0LaGKUI4Oh1dzk7b8R+y8eIMyGr5SfTITCRATVAiW2br+DlXMTM?=
 =?us-ascii?Q?SUgxgJE1sPIEHaNyO0vIKTtALragI8IYrcmWiiPlpTM5zPgPTvLrT1l3OZ6q?=
 =?us-ascii?Q?ihtKIsC/ZNudf1b6oY0SDaLU2dPfrh+oUR8qurs/vyxI2C/i27iICA+3VZD1?=
 =?us-ascii?Q?yk3knqIGe+HQKoslWUibVCbjyiTNxvLPrDtVDlZP/kd8IlBtE9MMWPiQcFqe?=
 =?us-ascii?Q?r7b3xjPfkRLCSEN6FPVDp44L8lk2a9cApo7xKoTqFnNkkN3EOS58CSGm4htX?=
 =?us-ascii?Q?WrugOtPWLBs3+pxllCUpJ7sV+AQXi2NHLfqj6NupWfZvYJUGlm1qnE0IgtqB?=
 =?us-ascii?Q?2lbUxnf97H6+YQvgh6KamzdyS9G7PL9iGQZKvyBN/67fyeb51icCIByxBw8F?=
 =?us-ascii?Q?v3tbHXb/QcRbz9cX8xLk5k8VY1EOK4IUz4kDLJaym43I486loos9SlOeW+ba?=
 =?us-ascii?Q?pMEIMOK/76y2SsHbO3hWFzw5vbgUk911UwjR3kwGIwMYROa+/80vdMLHPtaR?=
 =?us-ascii?Q?7gxeACUfsvZSR7Wn+a+D9JjaIWM2RIGoTytV6YPwnqjHFTbS4vJaHwSU160a?=
 =?us-ascii?Q?veFzf61NAuyFhJ0DoRAb5fpSjK17nXlYO09NvxEYGaEMlUFMcYmUrE1TFF3Q?=
 =?us-ascii?Q?tY1QQHPXrNSsVwvC9M9680VrXRCcA7vjpTr5gHJG7Sp9FutUWXX1qeMJsViB?=
 =?us-ascii?Q?QX6a1csWjMgG+wA42trccaERg5ZwoxWXEF/N4j0KKFMDeVTRAjeRDIjFqQAV?=
 =?us-ascii?Q?WVj3BVgUJjVSOLS4eU4CwW+ASwceRPQy8ApSNsUMpGLU20j4t04pygbASv3v?=
 =?us-ascii?Q?8XOTM6OD+6DkVRh+O1/xov7TysPSf3CEJc4kmqzrgpsqzxuL8lehR8K46f/X?=
 =?us-ascii?Q?afhCvnfEEOnh2YuoPcITeeyvyEb2Rkv6OYMS?=
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)(82310400026)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Apr 2025 07:41:33.8511
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 3e74f5c6-9d34-41be-5f6a-08dd7b27c799
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:
	CH1PEPF0000AD77.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN7PPFB3F5C406F

We need to bypass construction of px statistic info in
cpufreq_statistic_init() for amd-cppc mode, as P-states is not necessary there.

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
v3 -> v4:
- remove unnecessary stub for cpufreq_statistic_exit()
---
 xen/drivers/cpufreq/utility.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/xen/drivers/cpufreq/utility.c b/xen/drivers/cpufreq/utility.c
index e690a484f1..b35e2eb1b6 100644
--- a/xen/drivers/cpufreq/utility.c
+++ b/xen/drivers/cpufreq/utility.c
@@ -98,6 +98,9 @@ int cpufreq_statistic_init(unsigned int cpu)
     if ( !pmpt )
         return -EINVAL;
 
+    if ( !(pmpt->init & XEN_PX_INIT) )
+        return 0;
+
     spin_lock(cpufreq_statistic_lock);
 
     pxpt = per_cpu(cpufreq_statistic_data, cpu);
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Apr 14 07:41:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 07:41:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.949117.1345771 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4ERn-0000nO-90; Mon, 14 Apr 2025 07:41:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 949117.1345771; Mon, 14 Apr 2025 07:41: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 1u4ERn-0000mr-3T; Mon, 14 Apr 2025 07:41:39 +0000
Received: by outflank-mailman (input) for mailman id 949117;
 Mon, 14 Apr 2025 07:41: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=KQal=XA=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1u4ERl-0000Ks-LO
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 07:41:37 +0000
Received: from NAM11-CO1-obe.outbound.protection.outlook.com
 (mail-co1nam11on2062f.outbound.protection.outlook.com
 [2a01:111:f403:2416::62f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e4580ce1-1903-11f0-9eae-5ba50f476ded;
 Mon, 14 Apr 2025 09:41:35 +0200 (CEST)
Received: from CH2PR10CA0013.namprd10.prod.outlook.com (2603:10b6:610:4c::23)
 by CYYPR12MB8704.namprd12.prod.outlook.com (2603:10b6:930:c2::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.32; Mon, 14 Apr
 2025 07:41:28 +0000
Received: from CH1PEPF0000AD78.namprd04.prod.outlook.com
 (2603:10b6:610:4c:cafe::d) by CH2PR10CA0013.outlook.office365.com
 (2603:10b6:610:4c::23) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.34 via Frontend Transport; Mon,
 14 Apr 2025 07:41:28 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CH1PEPF0000AD78.mail.protection.outlook.com (10.167.244.56) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Mon, 14 Apr 2025 07:41:27 +0000
Received: from penny-System-Product-Name.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; Mon, 14 Apr 2025 02:41:24 -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: e4580ce1-1903-11f0-9eae-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=NFlZlhZprM1FY2qlJX2DYIkz+ARYVuqIhRA3gvJHUqCHlR63AuWAVcZZA2BJZR4z74B9bRNbgjmIa0Lzu1S23OyQTJmuM3cUz0Il4bfyu01UahT1KkBIex4RVX20gQKWwauRzFRAlScHdZmo9XUjWyishuSar7vCtllkrdBR/x7gjwmryJlLnsVuukw1CtVEjKPP1RgfXUsptxpVtHMpLmq0wonI6M5h2DkRF5U85PjUVPcOkabt6zfgs9kyA+ggg7Z3+dhRbuvv1G+Z6Nd91rScKDN02qVgK0ixHdF3HDBM1LBqQ9b9VNAFDv1TvJwoWpe1unJyT2rGdupowMkQGQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=xfLY8s12oXwYZ9l7lkukc3hjJrdYxuzMXvdGTEfnmj4=;
 b=mbdk+/FJPeE5Crd3cN8UpE8pckSK+scI0wYKCBrud5yEOtdJhRLkLyXvjnG2i0DKesYc6cb2FXYo6WZwYrixG/IRoVoGKeCrtQq/39fgyvT7HJtzC3AUj89TilLff6J9LFBbFghHXZyOVnBSMyxYnhoSRdtdaI7t/J/VKZTm0DU58CGcZr5VEeb87esS3RQOjnsPj3qfOk245ld857xkrsM376S4pIqB3bQrIp6JL0TZ0isaLdYgBrqjyFrfhLxc4n5dnteblKsGi2WaNnEOsgAseMoCQZRLFY5lCEi28PAiKhj9aGiQMbMTeTJxA9A/piUHHgtxIbutZCLU35VPRQ==
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=xfLY8s12oXwYZ9l7lkukc3hjJrdYxuzMXvdGTEfnmj4=;
 b=S4W0zSGF3pi+OqOiV7sl8hUt9ppiwOqR6OaY+SecoUZzDEvZqIbx+3lHkuIx16Q6baFbImPgIFOfNGWyY7zEV/0G/5a7pzjXhZihcHY1Yn2Pi5yVeRxs//zDFga4Yn8qINf5H4lSARDyKUeU/uBWgr9l300Q99yAnvM7U5sDF5A=
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: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, "Julien
 Grall" <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v4 03/15] xen/x86: introduce new sub-hypercall to propagate CPPC data
Date: Mon, 14 Apr 2025 15:40:44 +0800
Message-ID: <20250414074056.3696888-4-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250414074056.3696888-1-Penny.Zheng@amd.com>
References: <20250414074056.3696888-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: CH1PEPF0000AD78:EE_|CYYPR12MB8704:EE_
X-MS-Office365-Filtering-Correlation-Id: c0d7ceb0-480e-4721-f5cc-08dd7b27c403
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|36860700013|376014|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?k2W6+VcQ6YnDiZ2msdjIGkV0Wn1BTpp0ooA47FoC7//3nBRdjScEsL0YO4O9?=
 =?us-ascii?Q?oGSJiZsSAzSRSpZf84hXeuBODkGzqRJC4tkX9arzkzstY1MJm0uAbfDNRx+j?=
 =?us-ascii?Q?FJ4y/GLDVIfruRhlXJ5rHWLG6k1EQu5R/9+vaFbEkKiJLKl/9KAj5R4Sc9H2?=
 =?us-ascii?Q?HF3CxJY4Fj8HoKGtf+rM1xdgBvEDvXbmh4pz7W79+j7DbHPrQe+B597XZnio?=
 =?us-ascii?Q?XueuJnsCayl/BqWeFjQJF0H3h2nahamFPfl0F8aiyeCAx5LNtftRByb/Msh2?=
 =?us-ascii?Q?DWwzl6bgoS04KpZD0G+sRURkjui7O6WlSAtc5VEv92kymZJQ/ytbXHnd+8qL?=
 =?us-ascii?Q?gFjuvvs1Nbj0mjo/UUvi0M7YuL1uFkHJ2jPLn0E1wIs5cDNZycpa4ZgwQjH+?=
 =?us-ascii?Q?QuB8D0CyFCGbnjaEAASOyubCOplifxKYjbVnWc/yFkB/PcUWS/RcoFcH2224?=
 =?us-ascii?Q?XVdB4AYTKroTfnGyB2U7Y7tj9XSNqRlF3KmeYa26kNM0Q9I7n9Kl8cvrxS85?=
 =?us-ascii?Q?QzCKmlCzgkHBhlbWfiszt4ob/jChBHKvJ4wD8PFy7PfClAA8RKd2H76x0tlk?=
 =?us-ascii?Q?L9Ra4k3LEN30/dvQG4lAOaQq1jdeo//GKjWf2rk5A9vc8AM3+oljuK1LHeSt?=
 =?us-ascii?Q?499Q93vQw4ssumDKZWrACFT8NF+1D+j5Cau2U7jjhpioMYVInnUuxX4jLDX1?=
 =?us-ascii?Q?IkK79xQHr0I8raXroIuXyw306Nn/UoKGKMlNJI+pO4wle6jSALUrR1Glb8ha?=
 =?us-ascii?Q?OLHHC2kMw/QJx/dG7S5FHD2LWhRYOrrcBTztQvGj421hUwaQGcmdSxvN4YWv?=
 =?us-ascii?Q?hdSVuqx3GG4o1CaNfda8xSOSjJjUWw5N1rvRh/Jgq8PmThZLF7a3a4ZkS10A?=
 =?us-ascii?Q?5/NtcMYk+nbe00+qATZwwPLKR/wwz6oEPqlh4nTRgOA71J9qevspHweUV+7v?=
 =?us-ascii?Q?kiktZV2Sf25+8gcMHmf4a5ATmB2OgZy5wjTCgibYgosQZlEb+Lz2By1XDhyj?=
 =?us-ascii?Q?Omie8ILoHuvCI0gFj12dAb8Cgm6KsFJqPGKJmEBP5ivqraS8YzsDGAG0E4Jc?=
 =?us-ascii?Q?724ZiRR3+AC8NLZCHxb9w1wfKMf9z2t0qHz7ls2PTCieZ2b0VOhSdLCxLJXD?=
 =?us-ascii?Q?yDBH/LaNEYE5P5PAVuTuuor/LvoqiYeJ5paeC+PKikMZKa09zQXOi8Zi8A+N?=
 =?us-ascii?Q?TRvdL2hjojbETvyYv7HrlWcmplV2OC7eHtV1+eH8TdZWQtIKYDQYGCoO8K8n?=
 =?us-ascii?Q?m96jhm7aXVlzfdWMdgl5ypiBYWtYlluSgAgkCbVjUqi42KIZffb3l0i7NO4L?=
 =?us-ascii?Q?t3YqWMnzFwekkrgyWuRxp11UAGImmgLMLqMEngFhGJAWXQBQJIELdyqcKNF6?=
 =?us-ascii?Q?QjteCgDxEGXtiZLrd8WpoaIwBOmJ?=
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: 14 Apr 2025 07:41:27.8388
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: c0d7ceb0-480e-4721-f5cc-08dd7b27c403
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:
	CH1PEPF0000AD78.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CYYPR12MB8704

In order to provide backward compatibility with existing governors
that represent performance as frequency, like ondemand, the _CPC
table can optionally provide processor frequency range values, Lowest
frequency and Norminal frequency, to let OS use Lowest Frequency/
Performance and Nominal Frequency/Performance as anchor points to
create linear mapping of CPPC abstract performance to CPU frequency.

As Xen is uncapable of parsing the ACPI dynamic table, we'd like to
introduce a new sub-hypercall "XEN_PM_CPPC" to propagate required CPPC
data from dom0 kernel to Xen.
In the according handler set_cppc_pminfo(), we do _CPC and _PSD
sanitization check, as both _PSD and _CPC info are necessary for correctly
initializing cpufreq cores in CPPC mode.
Users shall be warned that if we failed at this point,
no fallback scheme, like legacy P-state could be switched to.
A new flag "XEN_CPPC_INIT" is also introduced to differentiate cpufreq core
initialised in Px mode.

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
v1 -> v2:
- Remove unnecessary figure braces
- Pointer-to-const for print_CPPC and set_cppc_pminfo
- Structure allocation shall use xvzalloc()
- Unnecessary memcpy(), and change it to a (type safe) structure assignment
- Add comment for struct xen_processor_cppc, and keep the chosen fields
in the order _CPC has them
- Obey to alphabetic sorting, and prefix compat structures with ? instead
of !
---
v2 -> v3:
- Trim too long line
- Re-place set_cppc_pminfo() past set_px_pminfo()
- Fix Misra violations: Declaration and definition ought to agree
in parameter names
- Introduce a new flag XEN_PM_CPPC to reflect processor initialised in CPPC
mode
---
v3 -> v4:
- Refactor commit message
- make "acpi_id" unsigned int
- Add warning message when cpufreq_cpu_init() failed only under debug mode
- Expand "struct xen_processor_cppc" to include _PSD and shared type
- add sanity check for ACPI CPPC data
---
 xen/arch/x86/platform_hypercall.c         |   5 +
 xen/drivers/cpufreq/cpufreq.c             | 131 ++++++++++++++++++++--
 xen/include/acpi/cpufreq/processor_perf.h |   4 +-
 xen/include/public/platform.h             |  26 +++++
 xen/include/xen/pmstat.h                  |   2 +
 xen/include/xlat.lst                      |   1 +
 6 files changed, 161 insertions(+), 8 deletions(-)

diff --git a/xen/arch/x86/platform_hypercall.c b/xen/arch/x86/platform_hypercall.c
index 90abd3197f..49717e9ca9 100644
--- a/xen/arch/x86/platform_hypercall.c
+++ b/xen/arch/x86/platform_hypercall.c
@@ -572,6 +572,11 @@ ret_t do_platform_op(
             break;
         }
 
+        case XEN_PM_CPPC:
+            ret = set_cppc_pminfo(op->u.set_pminfo.id,
+                                  &op->u.set_pminfo.u.cppc_data);
+            break;
+
         default:
             ret = -EINVAL;
             break;
diff --git a/xen/drivers/cpufreq/cpufreq.c b/xen/drivers/cpufreq/cpufreq.c
index b020ccbcf7..e01acc0c2d 100644
--- a/xen/drivers/cpufreq/cpufreq.c
+++ b/xen/drivers/cpufreq/cpufreq.c
@@ -40,6 +40,7 @@
 #include <xen/domain.h>
 #include <xen/cpu.h>
 #include <xen/pmstat.h>
+#include <xen/xvmalloc.h>
 #include <asm/io.h>
 #include <asm/processor.h>
 
@@ -205,6 +206,12 @@ static int get_psd_info(uint32_t init, unsigned int cpu,
         if ( domain_info )
             *domain_info = processor_pminfo[cpu]->perf.domain_info;
         break;
+    case XEN_CPPC_INIT:
+        if ( shared_type )
+            *shared_type = processor_pminfo[cpu]->cppc_data.shared_type;
+        if ( domain_info )
+            *domain_info = processor_pminfo[cpu]->cppc_data.domain_info;
+        break;
     default:
         ret = -EINVAL;
         break;
@@ -230,7 +237,7 @@ int cpufreq_add_cpu(unsigned int cpu)
     if ( !processor_pminfo[cpu] || !cpu_online(cpu) )
         return -EINVAL;
 
-    if ( !(processor_pminfo[cpu]->init & XEN_PX_INIT) )
+    if ( !(processor_pminfo[cpu]->init & (XEN_PX_INIT | XEN_CPPC_INIT)) )
         return -EINVAL;
 
     if (!cpufreq_driver.init)
@@ -401,7 +408,7 @@ int cpufreq_del_cpu(unsigned int cpu)
     if ( !processor_pminfo[cpu] || !cpu_online(cpu) )
         return -EINVAL;
 
-    if ( !(processor_pminfo[cpu]->init & XEN_PX_INIT) )
+    if ( !(processor_pminfo[cpu]->init & (XEN_PX_INIT | XEN_CPPC_INIT)) )
         return -EINVAL;
 
     if (!per_cpu(cpufreq_cpu_policy, cpu))
@@ -497,12 +504,19 @@ static void print_PPC(unsigned int platform_limit)
     printk("\t_PPC: %d\n", platform_limit);
 }
 
-static int check_psd_pminfo(const struct xen_processor_performance *perf)
+static int check_psd_pminfo(const struct xen_processor_performance *perf,
+                            const struct xen_processor_cppc *cppc_data)
 {
+    uint32_t shared_type;
+
+    if ( !perf && !cppc_data )
+        return -EINVAL;
+
+    shared_type = perf ? perf->shared_type : cppc_data->shared_type;
     /* check domain coordination */
-    if ( perf->shared_type != CPUFREQ_SHARED_TYPE_ALL &&
-         perf->shared_type != CPUFREQ_SHARED_TYPE_ANY &&
-         perf->shared_type != CPUFREQ_SHARED_TYPE_HW )
+    if ( shared_type != CPUFREQ_SHARED_TYPE_ALL &&
+         shared_type != CPUFREQ_SHARED_TYPE_ANY &&
+         shared_type != CPUFREQ_SHARED_TYPE_HW )
         return -EINVAL;
 
     return 0;
@@ -589,7 +603,7 @@ int set_px_pminfo(uint32_t acpi_id, struct xen_processor_performance *perf)
 
     if ( perf->flags & XEN_PX_PSD )
     {
-        ret = check_psd_pminfo(perf);
+        ret = check_psd_pminfo(perf, NULL);
         if ( ret )
             goto out;
 
@@ -627,6 +641,109 @@ out:
     return ret;
 }
 
+static void print_CPPC(const struct xen_processor_cppc *cppc_data)
+{
+    printk("\t_CPC: highest_perf=%u, lowest_perf=%u, "
+           "nominal_perf=%u, lowest_nonlinear_perf=%u, "
+           "nominal_mhz=%uMHz, lowest_mhz=%uMHz\n",
+           cppc_data->cpc.highest_perf, cppc_data->cpc.lowest_perf,
+           cppc_data->cpc.nominal_perf, cppc_data->cpc.lowest_nonlinear_perf,
+           cppc_data->cpc.nominal_mhz, cppc_data->cpc.lowest_mhz);
+}
+
+int set_cppc_pminfo(unsigned int acpi_id,
+                    const struct xen_processor_cppc *cppc_data)
+{
+    int ret = 0, cpuid;
+    struct processor_pminfo *pm_info;
+
+    cpuid = get_cpu_id(acpi_id);
+    if ( cpuid < 0 || !cppc_data )
+    {
+        ret = -EINVAL;
+        goto out;
+    }
+    if ( cpufreq_verbose )
+        printk("Set CPU acpi_id(%u) cpuid(%d) CPPC State info:\n",
+               acpi_id, cpuid);
+
+    pm_info = processor_pminfo[cpuid];
+    if ( !pm_info )
+    {
+        pm_info = xvzalloc(struct processor_pminfo);
+        if ( !pm_info )
+        {
+            ret = -ENOMEM;
+            goto out;
+        }
+        processor_pminfo[cpuid] = pm_info;
+    }
+    pm_info->acpi_id = acpi_id;
+    pm_info->id = cpuid;
+
+    if ( cppc_data->flags & XEN_CPPC_PSD )
+    {
+        ret = check_psd_pminfo(NULL, cppc_data);
+        if ( ret )
+            goto out;
+    }
+
+    if ( cppc_data->flags & XEN_CPPC_CPC )
+    {
+        if ( cppc_data->cpc.highest_perf == 0 ||
+             cppc_data->cpc.highest_perf > UINT8_MAX ||
+             cppc_data->cpc.nominal_perf == 0 ||
+             cppc_data->cpc.nominal_perf > UINT8_MAX ||
+             cppc_data->cpc.lowest_nonlinear_perf == 0 ||
+             cppc_data->cpc.lowest_nonlinear_perf > UINT8_MAX ||
+             cppc_data->cpc.lowest_perf == 0 ||
+             cppc_data->cpc.lowest_perf > UINT8_MAX ||
+             cppc_data->cpc.lowest_perf >
+                cppc_data->cpc.lowest_nonlinear_perf ||
+             cppc_data->cpc.lowest_nonlinear_perf >
+                cppc_data->cpc.nominal_perf ||
+             cppc_data->cpc.nominal_perf > cppc_data->cpc.highest_perf )
+            /*
+             * Right now, Xen doesn't actually use perf values
+             * in ACPI _CPC table, warning is enough.
+             */
+            printk(XENLOG_WARNING
+                   "Broken CPPC perf values: lowest(%u), nonlinear_lowest(%u), nominal(%u), highest(%u)\n",
+                   cppc_data->cpc.lowest_perf,
+                   cppc_data->cpc.lowest_nonlinear_perf,
+                   cppc_data->cpc.nominal_perf,
+                   cppc_data->cpc.highest_perf);
+
+        /* lowest_mhz and nominal_mhz are optional value */
+        if ( (cppc_data->cpc.lowest_mhz && cppc_data->cpc.nominal_mhz) &&
+             cppc_data->cpc.lowest_mhz > cppc_data->cpc.nominal_mhz )
+            printk(XENLOG_WARNING
+                   "Broken CPPC freq values: lowest(%u), nominal(%u)\n",
+                   cppc_data->cpc.lowest_mhz,
+                   cppc_data->cpc.nominal_mhz);
+    }
+
+    if ( cppc_data->flags == (XEN_CPPC_PSD | XEN_CPPC_CPC) )
+    {
+        pm_info->cppc_data = *cppc_data;
+        if ( cpufreq_verbose )
+        {
+            print_PSD(&pm_info->cppc_data.domain_info);
+            print_CPPC(&pm_info->cppc_data);
+        }
+
+        pm_info->init = XEN_CPPC_INIT;
+        ret = cpufreq_cpu_init(cpuid);
+#ifndef NDEBUG
+        if ( ret )
+            printk(XENLOG_WARNING "No fallback scheme could be replaced now");
+#endif
+    }
+
+ out:
+    return ret;
+}
+
 static void cpufreq_cmdline_common_para(struct cpufreq_policy *new_policy)
 {
     if (usr_max_freq)
diff --git a/xen/include/acpi/cpufreq/processor_perf.h b/xen/include/acpi/cpufreq/processor_perf.h
index 5f2612b15a..f1f4f3138d 100644
--- a/xen/include/acpi/cpufreq/processor_perf.h
+++ b/xen/include/acpi/cpufreq/processor_perf.h
@@ -5,7 +5,8 @@
 #include <public/sysctl.h>
 #include <xen/acpi.h>
 
-#define XEN_PX_INIT 0x80000000U
+#define XEN_CPPC_INIT 0x40000000U
+#define XEN_PX_INIT   0x80000000U
 
 unsigned int powernow_register_driver(void);
 unsigned int get_measured_perf(unsigned int cpu, unsigned int flag);
@@ -35,6 +36,7 @@ struct processor_pminfo {
     uint32_t acpi_id;
     uint32_t id;
     struct processor_performance    perf;
+    struct xen_processor_cppc cppc_data;
 
     uint32_t init;
 };
diff --git a/xen/include/public/platform.h b/xen/include/public/platform.h
index 67cf5eeabd..0e18a86ab4 100644
--- a/xen/include/public/platform.h
+++ b/xen/include/public/platform.h
@@ -363,6 +363,7 @@ DEFINE_XEN_GUEST_HANDLE(xenpf_getidletime_t);
 #define XEN_PM_PX   1
 #define XEN_PM_TX   2
 #define XEN_PM_PDC  3
+#define XEN_PM_CPPC 4
 
 /* Px sub info type */
 #define XEN_PX_PCT   1
@@ -370,6 +371,10 @@ DEFINE_XEN_GUEST_HANDLE(xenpf_getidletime_t);
 #define XEN_PX_PPC   4
 #define XEN_PX_PSD   8
 
+/* CPPC sub info type */
+#define XEN_CPPC_PSD   1
+#define XEN_CPPC_CPC   2
+
 struct xen_power_register {
     uint32_t     space_id;
     uint32_t     bit_width;
@@ -459,6 +464,26 @@ struct xen_processor_performance {
 typedef struct xen_processor_performance xen_processor_performance_t;
 DEFINE_XEN_GUEST_HANDLE(xen_processor_performance_t);
 
+struct xen_processor_cppc {
+    uint8_t flags; /* flag for CPPC sub info type */
+    /*
+     * Subset _CPC fields useful for CPPC-compatible cpufreq
+     * driver's initialization
+     */
+    struct {
+        uint32_t highest_perf;
+        uint32_t nominal_perf;
+        uint32_t lowest_nonlinear_perf;
+        uint32_t lowest_perf;
+        uint32_t lowest_mhz;
+        uint32_t nominal_mhz;
+    } cpc;
+    struct xen_psd_package domain_info; /* _PSD */
+    /* Coordination type of this processor */
+    uint32_t shared_type;
+};
+typedef struct xen_processor_cppc xen_processor_cppc_t;
+
 struct xenpf_set_processor_pminfo {
     /* IN variables */
     uint32_t id;    /* ACPI CPU ID */
@@ -467,6 +492,7 @@ struct xenpf_set_processor_pminfo {
         struct xen_processor_power          power;/* Cx: _CST/_CSD */
         struct xen_processor_performance    perf; /* Px: _PPC/_PCT/_PSS/_PSD */
         XEN_GUEST_HANDLE(uint32)            pdc;  /* _PDC */
+        xen_processor_cppc_t                cppc_data; /* _CPC and _PSD */
     } u;
 };
 typedef struct xenpf_set_processor_pminfo xenpf_set_processor_pminfo_t;
diff --git a/xen/include/xen/pmstat.h b/xen/include/xen/pmstat.h
index 8350403e95..f30286d48e 100644
--- a/xen/include/xen/pmstat.h
+++ b/xen/include/xen/pmstat.h
@@ -7,6 +7,8 @@
 
 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);
+int set_cppc_pminfo(unsigned int acpi_id,
+                    const struct xen_processor_cppc *cppc_data);
 
 #ifdef CONFIG_COMPAT
 struct compat_processor_performance;
diff --git a/xen/include/xlat.lst b/xen/include/xlat.lst
index 3c7b6c6830..d3f87c7cc2 100644
--- a/xen/include/xlat.lst
+++ b/xen/include/xlat.lst
@@ -168,6 +168,7 @@
 !	processor_performance		platform.h
 !	processor_power			platform.h
 ?	processor_px			platform.h
+?	processor_cppc			platform.h
 !	psd_package			platform.h
 ?	xenpf_enter_acpi_sleep		platform.h
 ?	xenpf_pcpu_version		platform.h
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Apr 14 07:41:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 07:41:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.949116.1345756 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4ERm-0000Oy-1A; Mon, 14 Apr 2025 07:41:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 949116.1345756; Mon, 14 Apr 2025 07:41: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 1u4ERl-0000Ny-Pw; Mon, 14 Apr 2025 07:41:37 +0000
Received: by outflank-mailman (input) for mailman id 949116;
 Mon, 14 Apr 2025 07:41: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=KQal=XA=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1u4ERl-0000Ks-E8
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 07:41:37 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on20606.outbound.protection.outlook.com
 [2a01:111:f403:2414::606])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id deeda027-1903-11f0-9eae-5ba50f476ded;
 Mon, 14 Apr 2025 09:41:27 +0200 (CEST)
Received: from CH5PR02CA0003.namprd02.prod.outlook.com (2603:10b6:610:1ed::23)
 by MN0PR12MB6246.namprd12.prod.outlook.com (2603:10b6:208:3c2::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.32; Mon, 14 Apr
 2025 07:41:21 +0000
Received: from CH1PEPF0000AD79.namprd04.prod.outlook.com
 (2603:10b6:610:1ed:cafe::2e) by CH5PR02CA0003.outlook.office365.com
 (2603:10b6:610:1ed::23) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.35 via Frontend Transport; Mon,
 14 Apr 2025 07:41:20 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CH1PEPF0000AD79.mail.protection.outlook.com (10.167.244.57) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Mon, 14 Apr 2025 07:41:20 +0000
Received: from penny-System-Product-Name.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; Mon, 14 Apr 2025 02:41:17 -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: deeda027-1903-11f0-9eae-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=j7qIhwNTKoLnyXI5kyEG03uWRU7k3Gld9QLJKo1Rc82L2BudtxqyokrY8rlKBFM/a6b4zL+4NYRu0hYNps2Iwdu9yZAZ8ZJdBSGR6LtOiaQwtPebTAc58ALFPWQ/745n4PaWdhqkYSjp/qSi9o0qjLYjMoC2xFE2/DcGqf/E3zupJ//X+PKBrWShBYuyP21+UvESmr8Qov8sLekHE581NwEe3GEolKqTfDm5dV+FYxOCB8HaU+DYlWBsSPPD/X15eseyTSuWFkZgnwyLl1ksk5vUbkWsiwPc8FVa8cgLWvq//T+s2rWaySNK1sCoDtNH8hgK91pMJF6VN3sEdTNuNg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=9aWSOaLrDAtsZ68wXr0GvYxggqEV3GwqC9s74GUmA2Y=;
 b=pkR/MRkHNNLRo27CppXiS717O1OHBGCspSXSbWRJzk6DLHEkRoFoSuboyCVs1uPu9RLDiVyi2C1+2SsG0PoGyXr5YRP5vQpZPg7QL8rpS9izPat7iaXOay0SSc+6mfpcaANIkGcBHMy9/NblFu9u1swmWNp/JBECZQwgftOobn6vSFSH35XrOSWiwJF3P0OjsWZV1jJwExjO1JHmphtgx7UARRYc2ZMwZiLOBp/R4FzH/TBJhwz1h6Bon6lqjYJXZBov2ah5VkmK4Fhv1fQNI1+W9xE7HidNpFZMkJSg0Ai3sij5X2hiFHNQMKqTShlNRFy6y7fYOteEbg8FXExnqQ==
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=9aWSOaLrDAtsZ68wXr0GvYxggqEV3GwqC9s74GUmA2Y=;
 b=qnNbo9P9TkYCM2PaJBj2hc21xeHiVXmlcK9AiVmnU4OWCPsd056pwH296wH93RKAyVc4dC3cSOnfaIcEzA+qaGI5YvLR4W7Fo+xwn3bFfxw29cUZPIQpE5tvyJVQ/3P+pcDXVb8LTq9dhqcFTFc+PMjhgT8rjFXi1kKSVFi6Atg=
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: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>, "Anthony
 PERARD" <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>,
	Julien Grall <julien@xen.org>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>, "Juergen
 Gross" <jgross@suse.com>
Subject: [PATCH v4 00/15] amd-cppc CPU Performance Scaling Driver
Date: Mon, 14 Apr 2025 15:40:41 +0800
Message-ID: <20250414074056.3696888-1-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: CH1PEPF0000AD79:EE_|MN0PR12MB6246:EE_
X-MS-Office365-Filtering-Correlation-Id: 5797dcd2-ecb9-46f8-4df0-08dd7b27bf9e
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?eKW5+5mMMvtnGkqKx5M/LJ8GPGJxV7wWbw6LaXDyjZaiJ034uPN2i9cfOyJF?=
 =?us-ascii?Q?REZoEQFyoY85tuOZBT+oDYSS9RddfaiKf8/WL1S14eiyOq/cah+PoKS3qnLy?=
 =?us-ascii?Q?3KJjs1K2xm1xtkz+5m+yBHZ6DBP7eXrQRRj5q98TYikV2U1kyTCLoWgyRhG6?=
 =?us-ascii?Q?Y6z41NjlWQXNYOj474YjY5G48bKHXg16+1aV0I2VesODigI9miPE+dueWzVT?=
 =?us-ascii?Q?tg+EyjP+5z5uktclpkJN98u9PPPKKdDIu23pk5EcgcgAWYTfYrNTMyXYxnHm?=
 =?us-ascii?Q?EnnyRBZS1koLpqL0y+NVoh8uhRxlalnmH6Di0dPAmcRs85v8CrYPaJ6/q54M?=
 =?us-ascii?Q?lMkoIE2cgMb4qnEpTc5Akq79iYbsSgJa+GmUHM/6m3mpPH9w9joh+NPEnVKc?=
 =?us-ascii?Q?5zcog412O3fgwLAurRu6nW+PGnYDPbmAb2SbjFbaSi+dkZr/fzK4yiB9WYdF?=
 =?us-ascii?Q?xTTwoEq6h2Gk/K3Zv/aYepHeDrtCNBJ6xfhglSWVjJcaYOd8EQCekN+9kgOe?=
 =?us-ascii?Q?xnabKtFpDGrRkTt5tXXbvW098RUbJf9/yfuzeCR6z4WW0Jw2ngUypld2mWzP?=
 =?us-ascii?Q?x8AOZEEcVs5Mn0xmroA7i5OTqqgfg1rMUNhsH4jlik+vUf2P/cyyVZ18W3/A?=
 =?us-ascii?Q?REBo3bsQktIigx/0Wc1jshzMIc/fkjQMXJnGT4RRnlhWfd+ciT4YmAOjTZ8q?=
 =?us-ascii?Q?tIXqwoiO8JCTTyPvGwAbsJUtKevtVHAzuvb/ue/8breU0OHRBinSaCQClN0i?=
 =?us-ascii?Q?ZsQ9zJehamiqCk2hfAom4rIHsBFfijUFklwxzwUzkvaeeRGBFfmUkxOV4jni?=
 =?us-ascii?Q?NCR2DgS27ccEAa7O0FyWugHAcBeZJYlAnWkIPu6LtoghUKZoxDZrYK+gYuRr?=
 =?us-ascii?Q?S5xgchK0z1klqlyofs/cXLxJZsP4QJ1flmyUHP4DISFA2IvhbAKW/3G9HCDp?=
 =?us-ascii?Q?Sg7snMNQLFIpQDS7nkXtSqojFWOTN2fNq2/uMLpYpH53HbkHJHmrBzoK/TDc?=
 =?us-ascii?Q?Bry1+b48UB5iQmmHtC+eK2zszFsc/xHgeY/Em44JrLAmtjNEvkqhhCqTKdws?=
 =?us-ascii?Q?hYboxrUeSVPm6asi1+Sxu3+YDjSuwWZBIVZBC9qnyb/GdL3TBlEWG96KTkZT?=
 =?us-ascii?Q?Bm1pcHjbGSUNe83uR+W7BhU0LMQRkvcxBEzcGW/YxJ7X/zUAT0VKBnMVVreR?=
 =?us-ascii?Q?JvtNAzVJP3ClpFSNYhfg+3N7jDGhiUJXkwIwa8HsqwhqNOm2NG5n4rrsuTCG?=
 =?us-ascii?Q?k//i7mtf8NEFCeXTPDHOWzJW50UYWGTr4YmrXT/5dqcAOSdAmPKsssR1Jbsc?=
 =?us-ascii?Q?XGf8n9kmnkH0aZi83eYf/uNJ1rA/klUop2rbFI3p7XOLwP8a3EanI1eZt8BW?=
 =?us-ascii?Q?AFxdJYAoZczT50eZgKOF9oc9DQT6JQCjK4Hbe2yD6n8LDb0JfSORjjlvgdos?=
 =?us-ascii?Q?GvxN0UjkV1kK53ynFpd+2vDw53bu218MGcklcjTGHpDxXXMl1QqOrhNjhCWm?=
 =?us-ascii?Q?wuQNd2KYMW2CINOTuUHup47hO89GRjNi/+Jr?=
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)(376014)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Apr 2025 07:41:20.4461
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 5797dcd2-ecb9-46f8-4df0-08dd7b27bf9e
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:
	CH1PEPF0000AD79.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN0PR12MB6246

amd-cppc is the AMD CPU performance scaling driver that introduces a
new CPU frequency control mechanism on modern AMD APU and CPU series in
Xen. The new mechanism is based on Collaborative Processor Performance
Control (CPPC) which provides finer grain frequency management than
legacy ACPI hardware P-States. Current AMD CPU/APU platforms are using
the ACPI P-states driver to manage CPU frequency and clocks with
switching only in 3 P-states. CPPC replaces the ACPI P-states controls
and allows a flexible, low-latency interface for Xen to directly
communicate the performance hints to hardware.

amd_cppc driver has 2 operation modes: autonomous (active) mode,
and non-autonomous (passive) mode. We register different CPUFreq driver
for different modes, "amd-cppc" for passive mode and "amd-cppc-epp"
for active mode.

The passive mode leverages common governors such as *ondemand*,
*performance*, etc, to manage the performance hints. And the active mode
uses epp to provides a hint to the hardware if software wants to bias
toward performance (0x0) or energy efficiency (0xff). CPPC power algorithm
in hardware will automatically calculate the runtime workload and adjust the
realtime cpu cores frequency according to the power supply and thermal, core
voltage and some other hardware conditions.

amd-cppc is enabled on passive mode with a top-level `cpufreq=amd-cppc` option,
while users add extra `active` flag to select active mode.

With `cpufreq=amd-cppc,active`, we did a 60s sampling test to see the CPU
frequency change, through tweaking the energy_perf preference from
`xenpm set-cpufreq-cppc powersave` to `xenpm set-cpufreq-cppc performance`.
The outputs are as follows:
```
Setting CPU in powersave mode
Sampling and Outputs:
  Avg freq      2000000 KHz
  Avg freq      2000000 KHz
  Avg freq      2000000 KHz
Setting CPU in performance mode
Sampling and Outputs:
  Avg freq      4640000 KHz
  Avg freq      4220000 KHz
  Avg freq      4640000 KHz

Penny Zheng (15):
  xen/cpufreq: move "init" flag into common structure
  xen/cpufreq: extract _PSD info from "struct xen_processor_performance"
  xen/x86: introduce new sub-hypercall to propagate CPPC data
  xen/cpufreq: refactor cmdline "cpufreq=xxx"
  xen/x86: introduce "cpufreq=amd-cppc" xen cmdline
  xen/cpufreq: disable px statistic info in amd-cppc mode
  xen/cpufreq: fix core frequency calculation for AMD Family 1Ah CPUs
  xen/amd: introduce amd_process_freq() to get processor frequency
  xen/x86: introduce a new amd cppc driver for cpufreq scaling
  xen/cpufreq: only set gov NULL when cpufreq_driver.setpolicy is NULL
  xen/x86: implement EPP support for the amd-cppc driver in active mode
  tools/xenpm: Print CPPC parameters for amd-cppc driver
  tools/xenpm: fix unnecessary scaling_available_frequencies in CPPC
    mode
  tools/xenpm: remove px_cap dependency check for average frequency
  xen/xenpm: Adapt SET/GET_CPUFREQ_CPPC xen_sysctl_pm_op for amd-cppc
    driver

 docs/misc/xen-command-line.pandoc         |  13 +-
 tools/libs/ctrl/xc_pm.c                   |  45 +-
 tools/misc/xenpm.c                        |  20 +-
 xen/arch/x86/acpi/cpufreq/Makefile        |   1 +
 xen/arch/x86/acpi/cpufreq/acpi.c          |  14 +-
 xen/arch/x86/acpi/cpufreq/amd-cppc.c      | 708 ++++++++++++++++++++++
 xen/arch/x86/acpi/cpufreq/cpufreq.c       |  34 +-
 xen/arch/x86/cpu/amd.c                    |  81 ++-
 xen/arch/x86/include/asm/amd.h            |   4 +
 xen/arch/x86/include/asm/msr-index.h      |   6 +
 xen/arch/x86/platform_hypercall.c         |  16 +
 xen/drivers/acpi/pmstat.c                 |  42 +-
 xen/drivers/cpufreq/cpufreq.c             | 306 ++++++++--
 xen/drivers/cpufreq/utility.c             |  14 +
 xen/include/acpi/cpufreq/cpufreq.h        |  22 +-
 xen/include/acpi/cpufreq/processor_perf.h |  11 +-
 xen/include/public/platform.h             |  36 +-
 xen/include/public/sysctl.h               |   2 +
 xen/include/xen/pmstat.h                  |   2 +
 xen/include/xlat.lst                      |   1 +
 20 files changed, 1268 insertions(+), 110 deletions(-)
 create mode 100644 xen/arch/x86/acpi/cpufreq/amd-cppc.c

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Apr 14 07:41:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 07:41:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.949119.1345791 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4ERq-0001OU-Vq; Mon, 14 Apr 2025 07:41:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 949119.1345791; Mon, 14 Apr 2025 07:41:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4ERq-0001OL-S0; Mon, 14 Apr 2025 07:41:42 +0000
Received: by outflank-mailman (input) for mailman id 949119;
 Mon, 14 Apr 2025 07: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=KQal=XA=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1u4ERo-0000Ks-Fx
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 07:41:40 +0000
Received: from NAM12-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam12on20617.outbound.protection.outlook.com
 [2a01:111:f403:2417::617])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e5943c98-1903-11f0-9eae-5ba50f476ded;
 Mon, 14 Apr 2025 09:41:39 +0200 (CEST)
Received: from CH2PR11CA0007.namprd11.prod.outlook.com (2603:10b6:610:54::17)
 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.8632.30; Mon, 14 Apr
 2025 07:41:33 +0000
Received: from CH1PEPF0000AD74.namprd04.prod.outlook.com
 (2603:10b6:610:54:cafe::fe) by CH2PR11CA0007.outlook.office365.com
 (2603:10b6:610:54::17) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.34 via Frontend Transport; Mon,
 14 Apr 2025 07:41:32 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CH1PEPF0000AD74.mail.protection.outlook.com (10.167.244.52) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Mon, 14 Apr 2025 07:41:32 +0000
Received: from penny-System-Product-Name.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; Mon, 14 Apr 2025 02:41:29 -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: e5943c98-1903-11f0-9eae-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=T3oqFOa30hdP4N+4gViCbgU7EB0NT+XIXJ3lFuy+euEGYtpV26uf4hpoDKWSzj23G4vGsPRFKcSJNzbElmTSFse0csXuGQasS5WE1Cdd6o1Wqo5i2Lo+rw5inxVi/Y3AsB0CV5smANlSiW/M22yzxjnQBv2AOJ9Gp6+6ko+egQ5/gwLPu2Wak5UyvS+6aC1KfKcM0EzYVug+W95VGeUoatEmC/pBZlD4q/1sECL0jbeaCz0a0ialtRTvzf5r6M+Xj8Xzd4vqpVYY9CUB/RUUEeZNLQunD0Jh+QiaKQKDUC6RzOpJQ0Z+ZILcs2FXOOkWteCtFZNHpz2KNRET+yp5Mg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ID70glDsQJeZ20P/y6l6LiMzzswJ1fKt3wlzbX8dxCA=;
 b=J5FXIKwmUfnhEdFdpO3iIWolAh5E2+t+Q3Cui/Aj7rXLhKvveg5tZ7ng24X5j5zwch97fxLIe2vuV0GAH7kbdOEOiz89gkkXM3Y4rd4sJBQI1FJLSRaWIaOwkhVXr9Hg/5et4P76HG5R7dGAmM+inMDtETNcfM2ICLHWrkEWz79eaVqG4+yheGsfuD0zrCVWfK3mTLNpejARuc1+fdrC7bGLZhTIfvZZ9xDPCGD8/35BoYep9wUyuIzA+V0K7RsayLe2bUDPksX/BFATDCTkqNSaji7vPK/vV4tsF+UUZeMvyMS+MKCcjYrO8pmVHmlVsjl8JNrwZuscwQAmqb1Eqg==
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=ID70glDsQJeZ20P/y6l6LiMzzswJ1fKt3wlzbX8dxCA=;
 b=QUHRmmR4dcBst7cfbPJTrjY83PA6Z+b3Lk/RRmmkvT5Fa+3DEBEDymNYNqPWwY8FJAG/NIeIKRn9hf8J/EExPmeNgqClBPfrHFDG3l5QjOGWBPpmrvqnYjD4o6rBKDkThKVrqtgECgFbKSPAiOqOUpx0Mrm1Jn7bZdKuTIJpKkk=
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: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, "Julien
 Grall" <julien@xen.org>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v4 05/15] xen/x86: introduce "cpufreq=amd-cppc" xen cmdline
Date: Mon, 14 Apr 2025 15:40:46 +0800
Message-ID: <20250414074056.3696888-6-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250414074056.3696888-1-Penny.Zheng@amd.com>
References: <20250414074056.3696888-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: CH1PEPF0000AD74:EE_|CH3PR12MB9028:EE_
X-MS-Office365-Filtering-Correlation-Id: f820d576-0e31-42e1-41d6-08dd7b27c6a9
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?Ey86HqJz3UHQjV+t3ncm7Kpzn1E3QJWofl/92SezZxUs0GOPld3QXGiqEwFr?=
 =?us-ascii?Q?4mOyV1vfkh4s7t3NRX+iR/n3gZ4s8olahYX8qq5LPjAXpVLWf+uTylH17cOU?=
 =?us-ascii?Q?N/UzqSdvi65Wez9zwFlKjXEC+T0ZykXqsu4Q+5S5tTPNc5Wpt3dYFPMZwh8M?=
 =?us-ascii?Q?9L74FuV7h9V5i76g2xKhs02U0Z7RHK6u8dhyHjU0p799BFvXh9bIaH3CyIsH?=
 =?us-ascii?Q?yyN082WmV95k0Es9f5LqRbdoJaLVoCcXS7BzMrypT8ONXT1Z7Bjq6TUhKDka?=
 =?us-ascii?Q?6RQO6XZv+Yq/42XuFPjeiqGr9GCDN0nD+NDUGmwZxjOuh1YCIPeA8j/5WEah?=
 =?us-ascii?Q?6t/L30p0KHbiGXIt4AiR9mWCC9k1KbamRXqZGGdh9or+nsGNlB3O+sE5sDX5?=
 =?us-ascii?Q?2VqQlSN1ufql2Uhmtx96UF/8msb6LOu80dGSM8TImtU1X92T2zINez0gRPVA?=
 =?us-ascii?Q?73uhIMScurooQJlMaKO6d9oeMa2zlV19wIspaxmpU9j/3qafSTGrPblBoGPp?=
 =?us-ascii?Q?bJtV5QUv7bzyyEf2Nv6A+vlo6tdQGVW4heODF7t9RKajrkm6/E1AtfUkUpjb?=
 =?us-ascii?Q?QXzAtwAv2EmL7RMRqCPITDRIreMBkZPOYomNVDHKIgANgShgHsYaJi3jeZrp?=
 =?us-ascii?Q?5lS3TtGujYQ1r4z5/H/4p9fjl/TsFPJFU7fNEb1VCJ/hnx+YbfgLimeANhVn?=
 =?us-ascii?Q?8w/JbEtf52dQGpeOfZpMS04YzgA9Ygfkl5r1njP5STntvvSYapJ7DptjOZtI?=
 =?us-ascii?Q?TOkEFvy63+y5ow+52AbdY2QavyEozVpOJliq8YY9BnM3V8doVYXzlL8U9/eb?=
 =?us-ascii?Q?cxJDWRarKZBU4wtr1pN/gtvotIkRawUS43tnN6Xf17h8E3dfRztO9VVihA/0?=
 =?us-ascii?Q?WTH45HO/vH+lCBv+OccaHjZ+T7noHVPQee5oQ87EdkIGDl3+tEP5F/TcS/f/?=
 =?us-ascii?Q?wYQ0G/6mc3rFoxMrbZ23TTzwV0/o/mSvkbKmkCsF0EtvHjyNW6s/DMBO1TN7?=
 =?us-ascii?Q?mdFUFW3ssDpahl0FsdvHNdF2tiIoHrbOpw6dhThpVSFBemj0/HJ1ZNToyRLz?=
 =?us-ascii?Q?6+GFkJXf9VV6CPZz0hjL7LyqN9i6+2js9VJH8mwaqONFexnxOKzDiAvpxqhI?=
 =?us-ascii?Q?+3VWll7P+ZFRqObclvurJf8aPY1bWAQqbPRhA/4gK0pbU+3Y2RVlfFUS9VZA?=
 =?us-ascii?Q?doumMao8fgeq95US3kl8JBBiFPcBa+YhG0L/iTirc/dBbcz2MQgLyO62sojP?=
 =?us-ascii?Q?eTOpCxeQJ4/HOS29Hfr4+6LKQJc2E3d7WfghExdns99xVfthg5Abqa/E776d?=
 =?us-ascii?Q?C/Adcm7Ut+D/80XnAZpzntHN5dpFf3aIsayxhV/eTnN9sEmx3dVXNqV8+tK1?=
 =?us-ascii?Q?Gwyj4HOgKvp7ORgXZOzlugNInSwKj27t90kQk4YxR7vj9HHIExdaQZwj4kjU?=
 =?us-ascii?Q?+Z1C2wJ4HH3zYY9q+PhZAOyMOgrn3JQ37Afl/WGbxAz5pJzCcV2GmC7gRMKV?=
 =?us-ascii?Q?mE1qj9XVQHnRQ4mllzs6n78KSzdj0Y6CiboX?=
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: 14 Apr 2025 07:41:32.2619
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: f820d576-0e31-42e1-41d6-08dd7b27c6a9
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:
	CH1PEPF0000AD74.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB9028

Users need to set "cpufreq=amd-cppc" in xen cmdline to enable
amd-cppc driver, which selects ACPI Collaborative Performance
and Power Control (CPPC) on supported AMD hardware to provide a
finer grained frequency control mechanism.
`verbose` option can also be included to support verbose print.

When users setting "cpufreq=amd-cppc", a new amd-cppc driver
shall be registered and used. All hooks for amd-cppc driver are missing
until commit "xen/x86: introduce a new amd cppc driver for cpufreq scaling"

Xen is not expected to support both or mixed mode (CPPC & legacy PSS, _PCT,
_PPC) operations, so only one cpufreq driver gets registerd, either amd-cppc
or legacy P-states driver, which is reflected and asserted by the incompatible
flags XEN_PROCESSOR_PM_PX and XEN_PROCESSOR_PM_CPPC.

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
v1 -> v2:
- Obey to alphabetic sorting and also strict it with CONFIG_AMD
- Remove unnecessary empty comment line
- Use __initconst_cf_clobber for pre-filled structure cpufreq_driver
- Make new switch-case code apply to Hygon CPUs too
- Change ENOSYS with EOPNOTSUPP
- Blanks around binary operator
- Change all amd_/-pstate defined values to amd_/-cppc
---
v2 -> v3
- refactor too long lines
- Make sure XEN_PROCESSOR_PM_PX and XEN_PROCESSOR_PM_CPPC incompatible flags
after cpufreq register registrantion
---
v3 -> v4:
- introduce XEN_PROCESSOR_PM_CPPC in xen internal header
- complement "Hygon" in log message
- remove unnecessary if()
- grow cpufreq_xen_opts[] array
---
 docs/misc/xen-command-line.pandoc         |  7 +-
 xen/arch/x86/acpi/cpufreq/Makefile        |  1 +
 xen/arch/x86/acpi/cpufreq/acpi.c          | 14 +++-
 xen/arch/x86/acpi/cpufreq/amd-cppc.c      | 81 +++++++++++++++++++++++
 xen/arch/x86/acpi/cpufreq/cpufreq.c       | 34 +++++++++-
 xen/arch/x86/platform_hypercall.c         | 11 +++
 xen/drivers/cpufreq/cpufreq.c             | 15 ++++-
 xen/include/acpi/cpufreq/cpufreq.h        |  6 +-
 xen/include/acpi/cpufreq/processor_perf.h |  3 +
 xen/include/public/sysctl.h               |  1 +
 10 files changed, 166 insertions(+), 7 deletions(-)
 create mode 100644 xen/arch/x86/acpi/cpufreq/amd-cppc.c

diff --git a/docs/misc/xen-command-line.pandoc b/docs/misc/xen-command-line.pandoc
index 89db6e83be..9ef847a336 100644
--- a/docs/misc/xen-command-line.pandoc
+++ b/docs/misc/xen-command-line.pandoc
@@ -515,7 +515,7 @@ If set, force use of the performance counters for oprofile, rather than detectin
 available support.
 
 ### cpufreq
-> `= none | {{ <boolean> | xen } { [:[powersave|performance|ondemand|userspace][,[<maxfreq>]][,[<minfreq>]]] } [,verbose]} | dom0-kernel | hwp[:[<hdc>][,verbose]]`
+> `= none | {{ <boolean> | xen } { [:[powersave|performance|ondemand|userspace][,[<maxfreq>]][,[<minfreq>]]] } [,verbose]} | dom0-kernel | hwp[:[<hdc>][,verbose]] | amd-cppc[:[verbose]]`
 
 > Default: `xen`
 
@@ -526,7 +526,7 @@ choice of `dom0-kernel` is deprecated and not supported by all Dom0 kernels.
 * `<maxfreq>` and `<minfreq>` are integers which represent max and min processor frequencies
   respectively.
 * `verbose` option can be included as a string or also as `verbose=<integer>`
-  for `xen`.  It is a boolean for `hwp`.
+  for `xen`.  It is a boolean for `hwp` and `amd-cppc`.
 * `hwp` selects Hardware-Controlled Performance States (HWP) on supported Intel
   hardware.  HWP is a Skylake+ feature which provides better CPU power
   management.  The default is disabled.  If `hwp` is selected, but hardware
@@ -534,6 +534,9 @@ choice of `dom0-kernel` is deprecated and not supported by all Dom0 kernels.
 * `<hdc>` is a boolean to enable Hardware Duty Cycling (HDC).  HDC enables the
   processor to autonomously force physical package components into idle state.
   The default is enabled, but the option only applies when `hwp` is enabled.
+* `amd-cppc` selects ACPI Collaborative Performance and Power Control (CPPC)
+  on supported AMD hardware to provide finer grained frequency control
+  mechanism. The default is disabled.
 
 There is also support for `;`-separated fallback options:
 `cpufreq=hwp;xen,verbose`.  This first tries `hwp` and falls back to `xen` if
diff --git a/xen/arch/x86/acpi/cpufreq/Makefile b/xen/arch/x86/acpi/cpufreq/Makefile
index e7dbe434a8..a2ba34bda0 100644
--- a/xen/arch/x86/acpi/cpufreq/Makefile
+++ b/xen/arch/x86/acpi/cpufreq/Makefile
@@ -1,4 +1,5 @@
 obj-$(CONFIG_INTEL) += acpi.o
+obj-$(CONFIG_AMD) += amd-cppc.o
 obj-y += cpufreq.o
 obj-$(CONFIG_INTEL) += hwp.o
 obj-$(CONFIG_AMD) += powernow.o
diff --git a/xen/arch/x86/acpi/cpufreq/acpi.c b/xen/arch/x86/acpi/cpufreq/acpi.c
index 0c25376406..e0cea9425f 100644
--- a/xen/arch/x86/acpi/cpufreq/acpi.c
+++ b/xen/arch/x86/acpi/cpufreq/acpi.c
@@ -13,6 +13,7 @@
 
 #include <xen/errno.h>
 #include <xen/delay.h>
+#include <xen/domain.h>
 #include <xen/param.h>
 #include <xen/types.h>
 
@@ -514,5 +515,16 @@ acpi_cpufreq_driver = {
 
 int __init acpi_cpufreq_register(void)
 {
-    return cpufreq_register_driver(&acpi_cpufreq_driver);
+    int ret;
+
+    ret = cpufreq_register_driver(&acpi_cpufreq_driver);
+    if ( ret )
+        return ret;
+    /*
+     * After cpufreq driver registeration, XEN_PROCESSOR_PM_CPPC
+     * and XEN_PROCESSOR_PM_PX shall become exclusive flags
+     */
+    xen_processor_pmbits &= ~XEN_PROCESSOR_PM_CPPC;
+
+    return ret;
 }
diff --git a/xen/arch/x86/acpi/cpufreq/amd-cppc.c b/xen/arch/x86/acpi/cpufreq/amd-cppc.c
new file mode 100644
index 0000000000..8a081e5523
--- /dev/null
+++ b/xen/arch/x86/acpi/cpufreq/amd-cppc.c
@@ -0,0 +1,81 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * amd-cppc.c - AMD Processor CPPC Frequency Driver
+ *
+ * Copyright (C) 2025 Advanced Micro Devices, Inc. All Rights Reserved.
+ *
+ * Author: Penny Zheng <penny.zheng@amd.com>
+ *
+ * AMD CPPC cpufreq driver introduces a new CPU performance scaling design
+ * for AMD processors using the ACPI Collaborative Performance and Power
+ * Control (CPPC) feature which provides finer grained frequency control range.
+ */
+
+#include <xen/domain.h>
+#include <xen/init.h>
+#include <xen/param.h>
+#include <acpi/cpufreq/cpufreq.h>
+
+static bool __init amd_cppc_handle_option(const char *s, const char *end)
+{
+    int ret;
+
+    ret = parse_boolean("verbose", s, end);
+    if ( ret >= 0 )
+    {
+        cpufreq_verbose = ret;
+        return true;
+    }
+
+    return false;
+}
+
+int __init amd_cppc_cmdline_parse(const char *s, const char *e)
+{
+    do
+    {
+        const char *end = strpbrk(s, ",;");
+
+        if ( !amd_cppc_handle_option(s, end) )
+        {
+            printk(XENLOG_WARNING
+                   "cpufreq/amd-cppc: option '%.*s' not recognized\n",
+                   (int)((end ?: e) - s), s);
+
+            return -EINVAL;
+        }
+
+        s = end ? end + 1 : NULL;
+    } while ( s && s < e );
+
+    return 0;
+}
+
+static const struct cpufreq_driver __initconst_cf_clobber
+amd_cppc_cpufreq_driver =
+{
+    .name   = XEN_AMD_CPPC_DRIVER_NAME,
+};
+
+int __init amd_cppc_register_driver(void)
+{
+    int ret;
+
+    if ( !cpu_has_cppc )
+    {
+        xen_processor_pmbits &= ~XEN_PROCESSOR_PM_CPPC;
+        return -ENODEV;
+    }
+
+    ret = cpufreq_register_driver(&amd_cppc_cpufreq_driver);
+    if ( ret )
+        return ret;
+
+    /*
+     * After cpufreq driver registeration, XEN_PROCESSOR_PM_CPPC
+     * and XEN_PROCESSOR_PM_PX shall become exclusive flags
+     */
+    xen_processor_pmbits &= ~XEN_PROCESSOR_PM_PX;
+
+    return ret;
+}
diff --git a/xen/arch/x86/acpi/cpufreq/cpufreq.c b/xen/arch/x86/acpi/cpufreq/cpufreq.c
index 61e98b67bd..eac1c125a3 100644
--- a/xen/arch/x86/acpi/cpufreq/cpufreq.c
+++ b/xen/arch/x86/acpi/cpufreq/cpufreq.c
@@ -148,6 +148,10 @@ static int __init cf_check cpufreq_driver_init(void)
                 case CPUFREQ_none:
                     ret = 0;
                     break;
+                default:
+                    printk(XENLOG_WARNING
+                           "Unsupported cpufreq driver for vendor Intel\n");
+                    break;
                 }
 
                 if ( ret != -ENODEV )
@@ -157,7 +161,35 @@ static int __init cf_check cpufreq_driver_init(void)
 
         case X86_VENDOR_AMD:
         case X86_VENDOR_HYGON:
-            ret = IS_ENABLED(CONFIG_AMD) ? powernow_register_driver() : -ENODEV;
+            if ( !IS_ENABLED(CONFIG_AMD) )
+            {
+                ret = -ENODEV;
+                break;
+            }
+            ret = -ENOENT;
+
+            for ( unsigned int i = 0; i < cpufreq_xen_cnt; i++ )
+            {
+                switch ( cpufreq_xen_opts[i] )
+                {
+                case CPUFREQ_xen:
+                    ret = powernow_register_driver();
+                    break;
+                case CPUFREQ_amd_cppc:
+                    ret = amd_cppc_register_driver();
+                    break;
+                case CPUFREQ_none:
+                    ret = 0;
+                    break;
+                default:
+                    printk(XENLOG_WARNING
+                           "Unsupported cpufreq driver for vendor AMD or Hygon\n");
+                    break;
+                }
+
+                if ( ret != -ENODEV )
+                    break;
+            }
             break;
         }
     }
diff --git a/xen/arch/x86/platform_hypercall.c b/xen/arch/x86/platform_hypercall.c
index 49717e9ca9..82663011ad 100644
--- a/xen/arch/x86/platform_hypercall.c
+++ b/xen/arch/x86/platform_hypercall.c
@@ -542,6 +542,9 @@ ret_t do_platform_op(
                 ret = -ENOSYS;
                 break;
             }
+            /* Xen doesn't support mixed mode */
+            ASSERT((xen_processor_pmbits & XEN_PROCESSOR_PM_CPPC) == 0);
+
             ret = set_px_pminfo(op->u.set_pminfo.id, &op->u.set_pminfo.u.perf);
             break;
  
@@ -573,6 +576,14 @@ ret_t do_platform_op(
         }
 
         case XEN_PM_CPPC:
+            if ( !(xen_processor_pmbits & XEN_PROCESSOR_PM_CPPC) )
+            {
+                ret = -EOPNOTSUPP;
+                break;
+            }
+            /* Xen doesn't support mixed mode */
+            ASSERT((xen_processor_pmbits & XEN_PROCESSOR_PM_PX) == 0);
+
             ret = set_cppc_pminfo(op->u.set_pminfo.id,
                                   &op->u.set_pminfo.u.cppc_data);
             break;
diff --git a/xen/drivers/cpufreq/cpufreq.c b/xen/drivers/cpufreq/cpufreq.c
index 79c6444116..818668c99c 100644
--- a/xen/drivers/cpufreq/cpufreq.c
+++ b/xen/drivers/cpufreq/cpufreq.c
@@ -65,7 +65,7 @@ LIST_HEAD_READ_MOSTLY(cpufreq_governor_list);
 /* set xen as default cpufreq */
 enum cpufreq_controller cpufreq_controller = FREQCTL_xen;
 
-enum cpufreq_xen_opt __initdata cpufreq_xen_opts[2] = { CPUFREQ_xen,
+enum cpufreq_xen_opt __initdata cpufreq_xen_opts[3] = { CPUFREQ_xen,
                                                         CPUFREQ_none };
 unsigned int __initdata cpufreq_xen_cnt = 1;
 
@@ -90,7 +90,8 @@ static int __init handle_cpufreq_cmdline(enum cpufreq_xen_opt option)
 
     if ( cpufreq_opts_contain(option) )
     {
-        const char *cpufreq_opts_str[] = { "CPUFREQ_xen", "CPUFREQ_hwp" };
+        const char *cpufreq_opts_str[] = { "CPUFREQ_xen", "CPUFREQ_hwp",
+                                           "CPUFREQ_amd_cppc" };
 
         printk(XENLOG_WARNING
                "Duplicate cpufreq driver option: %s",
@@ -102,6 +103,9 @@ static int __init handle_cpufreq_cmdline(enum cpufreq_xen_opt option)
     cpufreq_xen_opts[cpufreq_xen_cnt++] = option;
     switch ( option )
     {
+    case CPUFREQ_amd_cppc:
+        xen_processor_pmbits |= XEN_PROCESSOR_PM_CPPC;
+        break;
     case CPUFREQ_hwp:
     case CPUFREQ_xen:
         xen_processor_pmbits |= XEN_PROCESSOR_PM_PX;
@@ -168,6 +172,13 @@ static int __init cf_check setup_cpufreq_option(const char *str)
             if ( arg[0] && arg[1] )
                 ret = hwp_cmdline_parse(arg + 1, end);
         }
+        else if ( IS_ENABLED(CONFIG_AMD) && choice < 0 &&
+                  !cmdline_strcmp(str, "amd-cppc") )
+        {
+            ret = handle_cpufreq_cmdline(CPUFREQ_amd_cppc);
+            if ( arg[0] && arg[1] )
+                ret = amd_cppc_cmdline_parse(arg + 1, end);
+        }
         else
             ret = -EINVAL;
 
diff --git a/xen/include/acpi/cpufreq/cpufreq.h b/xen/include/acpi/cpufreq/cpufreq.h
index a3c84143af..83050c58b2 100644
--- a/xen/include/acpi/cpufreq/cpufreq.h
+++ b/xen/include/acpi/cpufreq/cpufreq.h
@@ -28,8 +28,9 @@ enum cpufreq_xen_opt {
     CPUFREQ_none,
     CPUFREQ_xen,
     CPUFREQ_hwp,
+    CPUFREQ_amd_cppc,
 };
-extern enum cpufreq_xen_opt cpufreq_xen_opts[2];
+extern enum cpufreq_xen_opt cpufreq_xen_opts[3];
 extern unsigned int cpufreq_xen_cnt;
 struct cpufreq_governor;
 
@@ -277,4 +278,7 @@ int set_hwp_para(struct cpufreq_policy *policy,
 
 int acpi_cpufreq_register(void);
 
+int amd_cppc_cmdline_parse(const char *s, const char *e);
+int amd_cppc_register_driver(void);
+
 #endif /* __XEN_CPUFREQ_PM_H__ */
diff --git a/xen/include/acpi/cpufreq/processor_perf.h b/xen/include/acpi/cpufreq/processor_perf.h
index f1f4f3138d..1a6591d612 100644
--- a/xen/include/acpi/cpufreq/processor_perf.h
+++ b/xen/include/acpi/cpufreq/processor_perf.h
@@ -5,6 +5,9 @@
 #include <public/sysctl.h>
 #include <xen/acpi.h>
 
+/* ability bits */
+#define XEN_PROCESSOR_PM_CPPC   8
+
 #define XEN_CPPC_INIT 0x40000000U
 #define XEN_PX_INIT   0x80000000U
 
diff --git a/xen/include/public/sysctl.h b/xen/include/public/sysctl.h
index b0fec271d3..42997252ef 100644
--- a/xen/include/public/sysctl.h
+++ b/xen/include/public/sysctl.h
@@ -423,6 +423,7 @@ struct xen_set_cppc_para {
     uint32_t activity_window;
 };
 
+#define XEN_AMD_CPPC_DRIVER_NAME "amd-cppc"
 #define XEN_HWP_DRIVER_NAME "hwp"
 
 /*
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Apr 14 07:41:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 07:41:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.949120.1345797 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4ERr-0001U4-Em; Mon, 14 Apr 2025 07:41:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 949120.1345797; Mon, 14 Apr 2025 07:41: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 1u4ERr-0001Sd-B5; Mon, 14 Apr 2025 07:41:43 +0000
Received: by outflank-mailman (input) for mailman id 949120;
 Mon, 14 Apr 2025 07:41: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=KQal=XA=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1u4ERp-0008Gw-Rt
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 07:41:41 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on2062d.outbound.protection.outlook.com
 [2a01:111:f403:2414::62d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e601b433-1903-11f0-9ffb-bf95429c2676;
 Mon, 14 Apr 2025 09:41:39 +0200 (CEST)
Received: from CH2PR11CA0006.namprd11.prod.outlook.com (2603:10b6:610:54::16)
 by PH0PR12MB7982.namprd12.prod.outlook.com (2603:10b6:510:28d::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.32; Mon, 14 Apr
 2025 07:41:36 +0000
Received: from CH1PEPF0000AD74.namprd04.prod.outlook.com
 (2603:10b6:610:54:cafe::e4) by CH2PR11CA0006.outlook.office365.com
 (2603:10b6:610:54::16) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.33 via Frontend Transport; Mon,
 14 Apr 2025 07:41:35 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CH1PEPF0000AD74.mail.protection.outlook.com (10.167.244.52) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Mon, 14 Apr 2025 07:41:35 +0000
Received: from penny-System-Product-Name.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; Mon, 14 Apr 2025 02:41:33 -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: e601b433-1903-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=DsOBQKWmYWWOpsqD7clXsJ2zCRP+AFcUVGrNE60FJKaAkNIeReMYaq5kdAdjY0JmuY6ARKYBqR2OBPWCsUd1Zs0jFscEpCPxEgQ/PoaGveppz8CsSqRvY0GV/Gic6IveHU55tcDqQ+OUNfGpKrK4t2asU7ElrNY2w84IE2iJ1R2X04XHwBIoFfUsY9HZeQdmRqji6/0KMADC6qGIydgfiFi/RR0clJ27EHrJ7Ofw97LH8FWi1uolCyHDMAiK2+RMRRLBnqsfuueb9pUauHjCRN/4LcTrdIsk5sclCa8dY7zxZYFIwCUXxS4Xa8IL7OgXo898x1C6T2Or+npmMTFgIA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Me5sAYfb9Z0206IEeWjK2IPQ8kh9xFtijBTOrQZLx7s=;
 b=hgFKq9ZMla/ivXxBG+Qg7tavpQy31s4u791EFAyLCIVsPZTfg4IAsJN+HG3m5WYcMsnT8NnGzPGTJM+iqjJjlBXujZXcYJc3ZzvzYyFwra8S+Hap+87XD5ZHCW3i0+ImycgX/fNlnn36pYeENcbU+apiu6CF536EewKPxT5AUTdO/RvWTBOHNlZvJ1rc2VKFHgNNaW/XOWiv1klC/6dBWPiBSaM7d5PWtlEKgxGMEIJ3B1GMW0PZQ0cyAXBco+1nfZ2D4QIRHG8ugs4hsU3dZesnPcfoQ1/Kez2+wunqVwR0VqHxAO4xbAhCfvMY7i6UME1ArP1NLT5awP94V+tY4w==
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=Me5sAYfb9Z0206IEeWjK2IPQ8kh9xFtijBTOrQZLx7s=;
 b=KCW417IUmDL+j1l+Lq0W+oyIQ9FE8ayYQU8ItF7pth7Y/RnOXSP7nTvpnjod/G9KPyzSn+QuD0P/K/rqJKSfdOsE80aMs2t9yBDjYbo5CmbdPxBdXPKdX5iwjl7WqeBkr959derw2MVpq1GS5mRHZ2hhen7voqNd6TdVi4+qjL0=
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: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v4 07/15] xen/cpufreq: fix core frequency calculation for AMD Family 1Ah CPUs
Date: Mon, 14 Apr 2025 15:40:48 +0800
Message-ID: <20250414074056.3696888-8-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250414074056.3696888-1-Penny.Zheng@amd.com>
References: <20250414074056.3696888-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: CH1PEPF0000AD74:EE_|PH0PR12MB7982:EE_
X-MS-Office365-Filtering-Correlation-Id: 3a58ff32-fd03-4fa9-3d5f-08dd7b27c8cb
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?yb3V3iA8XiedLqm1m66klhXGpWMmqW2e9gkMCAf+EEWlkyfMN01zzidBLnEU?=
 =?us-ascii?Q?uLlFvElcpV0/JTrnJyTwEV3SlkcA3XQtUQdaWNKoSjQLeqZA9rVw6Yj3swB2?=
 =?us-ascii?Q?RhTsuAy4UfFE8TF7VHvjp9+uewL9EmG4UKhuor0jnhG6nX7FiPwBry//Kk6T?=
 =?us-ascii?Q?VwHV0+xMN7mXlNstM2Yda7A7lc3jl5jQ/413P/QalV50C0x4KdYNISAwJ3Dk?=
 =?us-ascii?Q?Ku6sL5tv35Z8May2Wz83a3LZpuoxWKZC0v5b/PVuiTVPHkntMqacEsAFl0yW?=
 =?us-ascii?Q?PgTW+4hwSIvPY3xlOxBBQWUAFLAuSzuHIAzpgw4ioWvzJmCpMBXQEx2sKAg5?=
 =?us-ascii?Q?1m++RnInSdnNjTwebENNBW3kpcSip214wEAYABphr9t/+RHVcr7z4bNmznv4?=
 =?us-ascii?Q?AZSGSR4IuwVVOLF8ivE70MJtmEmIBKbYYYdqengOdG2OJvIDDt0rVtgOezJN?=
 =?us-ascii?Q?7RHJ8neGt2qPZoV8HBSXTPSdRua7k5KbnpCg3l97fACVSA2d0mFOcjJx9bO2?=
 =?us-ascii?Q?miM5Y0eKbKcVHC8Rnrw2pnTLWIwjX8OudXMQHYDBegKaimNGbWkvU049dz9M?=
 =?us-ascii?Q?61ZefpAFGIiI3vUI0TRY45T3j7TXMsEJBz+Oi5riHacjixHbpKKb73vrV6fv?=
 =?us-ascii?Q?v17z0jTu0gUaUXmPzSMIpK5QP3qoHydFya+asVOcjgE9AisCyXJ1kQuhGO+V?=
 =?us-ascii?Q?eCjqZyQEBJvW9YOfvpmgglxrnTpe+W2Fh5RhgxuYEvbZB9ecoOqLAFLh9wRR?=
 =?us-ascii?Q?bHCHyQmLL3+mFAaKBo34KwEmInMRSnBeYWCMzKxLIlX5ilaz91eg1w3QgrDz?=
 =?us-ascii?Q?XfiWXtmm5LX5EpW5ZyPb6tb8L84FV8biZJ4Eg5Pdv0b8LUHkL0LZZONPbbNE?=
 =?us-ascii?Q?7Oq+eRXPXv2vrBCm2+Zily1qMJeNf+CWu2YvkROwovrnJK/2+p4qpXrUsk8O?=
 =?us-ascii?Q?yUMGE6dzG8M50wrb845/BLbhLy344iF9OyZ5SvhpRw+1FtURTYj3+X4+tX/G?=
 =?us-ascii?Q?9Fdaf42hcq03BDzbx+Wax28JFkf7C3/UU+LI+9vW9eta+7jlqs/63pwcs+4d?=
 =?us-ascii?Q?HSu5KBJxCESC20TbTsTQd0zAyFPhCJIJMrpRmpN909xJlIhKLVE6d9dTIVSO?=
 =?us-ascii?Q?Y3AyhDAxGnocGIGeNl34WszP14Q8lz36W+M/vGAmNw76rRRR2PyZbxN1rwYb?=
 =?us-ascii?Q?N7VObPP1jQk18SNHvsloL6E8/3x3aG7MzYx/LPOSoKvxEvF1ZtLrNnJ0h1KK?=
 =?us-ascii?Q?7jZ8UYah83LgFitmrCI+/0Yv7oSxdUathjOY7pl3ynprewPJJb2CvsrWPUH/?=
 =?us-ascii?Q?W1KExZumb9kMbAX0Cv8Smn+dwDYxF6u1IHXkpy8wMcreV/etk/dnpdILW6xJ?=
 =?us-ascii?Q?dg+Mvr1pZOwrGNjIpah7wTv16FIVjzZlDuO9aSvL0Gq3I1bdPuwtoTicvQEK?=
 =?us-ascii?Q?qHMl+vVyKttmxTFB+X1mtrosLPmH5t9q9eC3QbZBb7QpdmcYSQ7R0N/6PoKC?=
 =?us-ascii?Q?7j8b9pgsy1MC73ii1Dbyw8ReXjJWtxfgq8xh?=
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)(82310400026)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Apr 2025 07:41:35.8557
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 3a58ff32-fd03-4fa9-3d5f-08dd7b27c8cb
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:
	CH1PEPF0000AD74.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR12MB7982

AMD Family 1Ah CPU needs a different COF(Core Operating Frequency) formula,
due to a change in the PStateDef MSR layout in AMD Family 1Ah.
In AMD Family 1Ah, Core current operating frequency in MHz is calculated as
follows:
    CoreCOF = Core::X86::Msr::PStateDef[CpuFid[11:0]] * 5MHz

We introduce a helper amd_parse_freq() to parse cpu min/nominal/max core
frequency from PstateDef register, to replace the original macro FREQ(v).
amd_parse_freq() is declared as const, as it mainly consists of mathematical
conputation.

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
v2 -> v3:
- new commit
---
v3 -> v4:
 - introduce amd_parse_freq() and declare it as const
 - express if-else-arry() as switch()
---
 xen/arch/x86/cpu/amd.c | 43 +++++++++++++++++++++++++++++++++++-------
 1 file changed, 36 insertions(+), 7 deletions(-)

diff --git a/xen/arch/x86/cpu/amd.c b/xen/arch/x86/cpu/amd.c
index ce4e1df710..f93dda927e 100644
--- a/xen/arch/x86/cpu/amd.c
+++ b/xen/arch/x86/cpu/amd.c
@@ -56,6 +56,9 @@ bool __initdata amd_virt_spec_ctrl;
 
 static bool __read_mostly fam17_c6_disabled;
 
+static uint64_t attr_const amd_parse_freq(unsigned char c, uint64_t value);
+#define INVAL_FREQ_MHZ  ~(uint64_t)0
+
 static inline int rdmsr_amd_safe(unsigned int msr, unsigned int *lo,
 				 unsigned int *hi)
 {
@@ -570,12 +573,35 @@ static void amd_get_topology(struct cpuinfo_x86 *c)
                                                           : c->cpu_core_id);
 }
 
+static uint64_t amd_parse_freq(unsigned char c, uint64_t value)
+{
+	uint64_t freq = INVAL_FREQ_MHZ;
+
+	switch (c) {
+	case 0x10 ... 0x16:
+		freq = (((value & 0x3f) + 0x10) * 100) >> ((value >> 6) & 7);
+		break;
+	case 0x17 ... 0x19:
+		freq = ((value & 0xff) * 25 * 8) / ((value >> 8) & 0x3f);
+		break;
+	case 0x1A:
+		freq = (value & 0xfff) * 5;
+		break;
+	default:
+		printk(XENLOG_ERR
+		       "Unsupported cpu familly %c on cpufreq parsing", c);
+		break;
+	}
+
+	return freq;
+}
+
 void amd_log_freq(const struct cpuinfo_x86 *c)
 {
 	unsigned int idx = 0, h;
 	uint64_t hi, lo, val;
 
-	if (c->x86 < 0x10 || c->x86 > 0x19 ||
+	if (c->x86 < 0x10 || c->x86 > 0x1A ||
 	    (c != &boot_cpu_data &&
 	     (!opt_cpu_info || (c->apicid & (c->x86_num_siblings - 1)))))
 		return;
@@ -656,19 +682,22 @@ void amd_log_freq(const struct cpuinfo_x86 *c)
 	if (!(lo >> 63))
 		return;
 
-#define FREQ(v) (c->x86 < 0x17 ? ((((v) & 0x3f) + 0x10) * 100) >> (((v) >> 6) & 7) \
-		                     : (((v) & 0xff) * 25 * 8) / (((v) >> 8) & 0x3f))
 	if (idx && idx < h &&
 	    !rdmsr_safe(0xC0010064 + idx, val) && (val >> 63) &&
 	    !rdmsr_safe(0xC0010064, hi) && (hi >> 63))
 		printk("CPU%u: %lu (%lu ... %lu) MHz\n",
-		       smp_processor_id(), FREQ(val), FREQ(lo), FREQ(hi));
+		       smp_processor_id(),
+		       amd_parse_freq(c->x86, val),
+		       amd_parse_freq(c->x86, lo),
+		       amd_parse_freq(c->x86, hi));
 	else if (h && !rdmsr_safe(0xC0010064, hi) && (hi >> 63))
 		printk("CPU%u: %lu ... %lu MHz\n",
-		       smp_processor_id(), FREQ(lo), FREQ(hi));
+		       smp_processor_id(),
+		       amd_parse_freq(c->x86, lo),
+		       amd_parse_freq(c->x86, hi));
 	else
-		printk("CPU%u: %lu MHz\n", smp_processor_id(), FREQ(lo));
-#undef FREQ
+		printk("CPU%u: %lu MHz\n", smp_processor_id(),
+		       amd_parse_freq(c->x86, lo));
 }
 
 void cf_check early_init_amd(struct cpuinfo_x86 *c)
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Apr 14 07:41:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 07:41:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.949123.1345811 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4ERv-000254-St; Mon, 14 Apr 2025 07:41:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 949123.1345811; Mon, 14 Apr 2025 07: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 1u4ERv-00024o-PH; Mon, 14 Apr 2025 07:41:47 +0000
Received: by outflank-mailman (input) for mailman id 949123;
 Mon, 14 Apr 2025 07:41: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=KQal=XA=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1u4ERu-0008Gw-1L
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 07:41:46 +0000
Received: from NAM02-BN1-obe.outbound.protection.outlook.com
 (mail-bn1nam02on20617.outbound.protection.outlook.com
 [2a01:111:f403:2407::617])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e84cf65c-1903-11f0-9ffb-bf95429c2676;
 Mon, 14 Apr 2025 09:41:43 +0200 (CEST)
Received: from CH2PR11CA0030.namprd11.prod.outlook.com (2603:10b6:610:54::40)
 by PH7PR12MB9103.namprd12.prod.outlook.com (2603:10b6:510:2f5::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.31; Mon, 14 Apr
 2025 07:41:38 +0000
Received: from CH1PEPF0000AD74.namprd04.prod.outlook.com
 (2603:10b6:610:54:cafe::c8) by CH2PR11CA0030.outlook.office365.com
 (2603:10b6:610:54::40) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.34 via Frontend Transport; Mon,
 14 Apr 2025 07:41:37 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CH1PEPF0000AD74.mail.protection.outlook.com (10.167.244.52) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Mon, 14 Apr 2025 07:41:37 +0000
Received: from penny-System-Product-Name.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; Mon, 14 Apr 2025 02:41:35 -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: e84cf65c-1903-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=tW9AjRrItGT5FF6J1DcMWYzZk3r9C6uQiNdCyNR/5z09GE7DdDV5psbtSLZnlOzvvnHTlrlZD4zR321mrmkPATVOuEB15Y6QZGKexKPszfQk8/wllWDVU1tQtFLvtVKgCDKm40JQrl7iMSFkK6Zm5cvuxHj9EgB8x3gp8SZBJk4gAwGGc/R2BiimoK6RV7rhCbv0S/zeAhAwiMdR7In2qbQ6gGmKWqrTUtP9I9+s7/vBwEw7WmfeCrK7G6KfVh7HDeqo7DQPB0gYcBPENngmh6c6M/dCn52PDzGTEcNTVb/u+0EyB1Rpo+MsJazszwJbPBgfhd08FRSVne4YfJkvoA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=XN4BZakspViyeH4n1uhsJy+yyhej3a/UQkx9Wrv7CvQ=;
 b=ukYbZ1T3lALT/40uC8K007T2+xL672EFip2K0wpPvwoO3bmgFcZjRfHvqks1QZWuPw2bUp/UOwuoT+swUGXHqFQzr940ieyKz+zyBkkUdlnixd0VTHWJ6fvG4YzIrko8aORX7tnOwW4n2oGp+hKbrxx216umBcMq2qSrjOkXYHOjZCovKFKDJjQX3QBJ+M3e2gGLXxVdxCPmTQJ6EwnMjSx+1DZabnBKXLFzPUV9vbQE4VdUq3SzAdVDctolhpd/Vag/Nz4bqttyGzyzGh6TinEFjOS1MMZVYWkY+HQbGSSwQGfaYsCzdaJswOFyF5JDqOG/0AiFt2uV4DI6iy0KRg==
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=XN4BZakspViyeH4n1uhsJy+yyhej3a/UQkx9Wrv7CvQ=;
 b=Xvy9+YwYIELvYBBAQUsQokOf8w61mhYnOyzLg6quq/zbHwgcf6Knd8bSb7lnHkVgQRTVVo6gDZPn/nkFHHQwdQeF46jxMt5DHv7rJxPSwCixZyKyjQTfOmPfZEGb2Q/CodPLgiOccF1azryvHeY3HFu980EbIZ2HpdrabnyZZ4Y=
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: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v4 08/15] xen/amd: introduce amd_process_freq() to get processor frequency
Date: Mon, 14 Apr 2025 15:40:49 +0800
Message-ID: <20250414074056.3696888-9-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250414074056.3696888-1-Penny.Zheng@amd.com>
References: <20250414074056.3696888-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: CH1PEPF0000AD74:EE_|PH7PR12MB9103:EE_
X-MS-Office365-Filtering-Correlation-Id: 5af51a41-e409-4f17-086e-08dd7b27c9fa
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?6BxdMoXfkSHeGA0zKqfBAmidHXyDT9r/fUjgi+b6Y6gipHue080vMbaAYWED?=
 =?us-ascii?Q?IX2QRyexhRsxtQqLRUkwF8x8OPsAXgMTtRq8QfA6Y9WFX3fPXcDzV70IuTys?=
 =?us-ascii?Q?7Y9YhTN4fbEBcMhp47xgqr+sd2cRvn8z/Sp4OogETOLwEN6EIFGUHqRfsHDY?=
 =?us-ascii?Q?+IWEQLZyB/lga31sI5YZAL0GWkG1k8ZpQFxzgFa8xqRnxEScJ6JeVZI6BsL4?=
 =?us-ascii?Q?jnIVOGZIzxIK+nXtVm3sq12yUZlBD70rs81K7AL1Fy4y0LqS5fGfnUc9tkN/?=
 =?us-ascii?Q?jfR2rHlQwpnzWpXSIwvB72hct0bd2FmZ7tBDbq4JDjqSlihfTFNFsMBro446?=
 =?us-ascii?Q?PJ+cc9qJjPKAU/SxsMqycpbPeUYe94/CiLv3U5mFSL/+EbvBKdb0YaV0Hbcx?=
 =?us-ascii?Q?1NA9QRK6M7umU7WRbgWVRxheDvX3sye3R2D875O0xx25vukt3aJoaVhlDIE4?=
 =?us-ascii?Q?RuXgh76/xCL9U2gUqZKYMEP3nL7f9u9g1cbovf8rLmfXRgTghcpvyGbLeEKd?=
 =?us-ascii?Q?zUipBEYfRLtmOiDmWOvLgwlUBKQs2HNNKKoeL0SXOdC/sBVx/NdERPPeuN+A?=
 =?us-ascii?Q?crexY2Ws7SEYAJDBIoA9Gkgp3XwHrMY+gEH1zt0GrO9V13lIrnfG8TFx194k?=
 =?us-ascii?Q?8MbU0H6Pzf7pSU5nDLv/8yu3DMrkbGKk47au+yJTX9UD+QDpN7SGYP7I0UP6?=
 =?us-ascii?Q?JTX0BpuFPLTkGdER1O/uePWkDt76yAZd2irmLrq3OYm34c9MqDJC68m+I2CJ?=
 =?us-ascii?Q?KeamquFmcdb1PUuA2Sdjuh+QGR/vyzxbp2xXZn6h2LiaBnCT9yxUAER91gwQ?=
 =?us-ascii?Q?fFc8ynY1AnZB9ItHHQFwiAInpIQ+ASMLXMXNs13bdC4a6rEC0CwtJo+76n+5?=
 =?us-ascii?Q?2JazfZHTvzyVUkoganIqiZFYsVUiReWET+mcUtp6J0Mvr9SwXIwUEj26VW+u?=
 =?us-ascii?Q?i9ZvXs9awzA7mHDtBAq9FLPKR/alGcm0e5ZSJlHA1vw9yu65QeOSzb+wwLte?=
 =?us-ascii?Q?fJlCtu7VI+xVuQBjrj/gzT6r3sNQ3BGSetS4tiodGEfYJ33wwCY3nSvtVX2u?=
 =?us-ascii?Q?UcdsWzqjhWcQ2GEcYgRT7fRFFu6vX9hJF2ydZVhz+Ko1YkPhrGx+6Lwiz1Z6?=
 =?us-ascii?Q?pVnP9CrQTYx5okmm59SExokxGDRKhWu5D7PW21/0YormQPSoCNDJrOAS9NZQ?=
 =?us-ascii?Q?qRnDdVP/pZ3V6neudrcVstSA+9N9i0JJNqnZT1NuRZbjyQAAmWU2MsTDhKam?=
 =?us-ascii?Q?G3uS3DLnFXUmnJ/r/BY0pRBEl8JeC3dp/7va0dEWs3dnlUVJ434IPK4XIi7X?=
 =?us-ascii?Q?70koC2dKD3ksMvBh6D1zn/2D1f25wHSU9fTlPLlSHGxekDV7+59DnvTJXniU?=
 =?us-ascii?Q?DxXlMacna7Wo7fR8efKK9UQEeIVkIuzjZ/7/HNQepRlmebLwrTopUFbq+VYY?=
 =?us-ascii?Q?n7ArsGRA8LFjENCYyEeF6gvD0PaR8znwboiu7ARaKnukKEQduTcNlAxjfmcS?=
 =?us-ascii?Q?/GsnOF7Lz/GHfqWiqiB/5IopBwYm+3dszf8l?=
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: 14 Apr 2025 07:41:37.8401
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 5af51a41-e409-4f17-086e-08dd7b27c9fa
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:
	CH1PEPF0000AD74.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB9103

When _CPC table could not provide processor frequency range
values for Xen governor, we need to read processor max frequency
as anchor point.
So we extract amd cpu core frequency calculation logic from amd_log_freq(),
and wrap it as a new helper amd_process_freq().

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
v1 -> v2:
- new commit
---
v3 -> v4
- introduce amd_process_freq()
---
 xen/arch/x86/cpu/amd.c         | 60 +++++++++++++++++++++++-----------
 xen/arch/x86/include/asm/amd.h |  4 +++
 2 files changed, 45 insertions(+), 19 deletions(-)

diff --git a/xen/arch/x86/cpu/amd.c b/xen/arch/x86/cpu/amd.c
index f93dda927e..e875014de9 100644
--- a/xen/arch/x86/cpu/amd.c
+++ b/xen/arch/x86/cpu/amd.c
@@ -57,7 +57,6 @@ bool __initdata amd_virt_spec_ctrl;
 static bool __read_mostly fam17_c6_disabled;
 
 static uint64_t attr_const amd_parse_freq(unsigned char c, uint64_t value);
-#define INVAL_FREQ_MHZ  ~(uint64_t)0
 
 static inline int rdmsr_amd_safe(unsigned int msr, unsigned int *lo,
 				 unsigned int *hi)
@@ -596,14 +595,13 @@ static uint64_t amd_parse_freq(unsigned char c, uint64_t value)
 	return freq;
 }
 
-void amd_log_freq(const struct cpuinfo_x86 *c)
+void amd_process_freq(const struct cpuinfo_x86 *c,
+		      uint64_t *low_mhz, uint64_t *nom_mhz, uint64_t *hi_mhz)
 {
 	unsigned int idx = 0, h;
 	uint64_t hi, lo, val;
 
-	if (c->x86 < 0x10 || c->x86 > 0x1A ||
-	    (c != &boot_cpu_data &&
-	     (!opt_cpu_info || (c->apicid & (c->x86_num_siblings - 1)))))
+	if (c->x86 < 0x10 || c->x86 > 0x1A)
 		return;
 
 	if (c->x86 < 0x17) {
@@ -684,20 +682,21 @@ void amd_log_freq(const struct cpuinfo_x86 *c)
 
 	if (idx && idx < h &&
 	    !rdmsr_safe(0xC0010064 + idx, val) && (val >> 63) &&
-	    !rdmsr_safe(0xC0010064, hi) && (hi >> 63))
-		printk("CPU%u: %lu (%lu ... %lu) MHz\n",
-		       smp_processor_id(),
-		       amd_parse_freq(c->x86, val),
-		       amd_parse_freq(c->x86, lo),
-		       amd_parse_freq(c->x86, hi));
-	else if (h && !rdmsr_safe(0xC0010064, hi) && (hi >> 63))
-		printk("CPU%u: %lu ... %lu MHz\n",
-		       smp_processor_id(),
-		       amd_parse_freq(c->x86, lo),
-		       amd_parse_freq(c->x86, hi));
-	else
-		printk("CPU%u: %lu MHz\n", smp_processor_id(),
-		       amd_parse_freq(c->x86, lo));
+	    !rdmsr_safe(0xC0010064, hi) && (hi >> 63)) {
+		if (nom_mhz)
+			*nom_mhz = amd_parse_freq(c->x86, val);
+		if (low_mhz)
+			*low_mhz = amd_parse_freq(c->x86, lo);
+		if (hi_mhz)
+			*hi_mhz = amd_parse_freq(c->x86, hi);
+	} else if (h && !rdmsr_safe(0xC0010064, hi) && (hi >> 63)) {
+		if (low_mhz)
+			*low_mhz = amd_parse_freq(c->x86, lo);
+		if (hi_mhz)
+			*hi_mhz = amd_parse_freq(c->x86, hi);
+	} else
+		if (low_mhz)
+			*low_mhz = amd_parse_freq(c->x86, lo);
 }
 
 void cf_check early_init_amd(struct cpuinfo_x86 *c)
@@ -708,6 +707,29 @@ void cf_check early_init_amd(struct cpuinfo_x86 *c)
 	ctxt_switch_levelling(NULL);
 }
 
+void amd_log_freq(const struct cpuinfo_x86 *c)
+{
+	uint64_t low_mhz, nom_mhz, hi_mhz;
+
+	if (c != &boot_cpu_data &&
+	    (!opt_cpu_info || (c->apicid & (c->x86_num_siblings - 1))))
+		return;
+
+	low_mhz = nom_mhz = hi_mhz = INVAL_FREQ_MHZ;
+	amd_process_freq(c, &low_mhz, &nom_mhz, &hi_mhz);
+
+	if (low_mhz != INVAL_FREQ_MHZ && nom_mhz != INVAL_FREQ_MHZ &&
+	    hi_mhz != INVAL_FREQ_MHZ)
+		printk("CPU%u: %lu (%lu ... %lu) MHz\n",
+		       smp_processor_id(),
+		       low_mhz, nom_mhz, hi_mhz);
+	else if (low_mhz != INVAL_FREQ_MHZ && hi_mhz != INVAL_FREQ_MHZ)
+		printk("CPU%u: %lu ... %lu MHz\n",
+		       smp_processor_id(), low_mhz, hi_mhz);
+	else if (low_mhz != INVAL_FREQ_MHZ)
+		printk("CPU%u: %lu MHz\n", smp_processor_id(), low_mhz);
+}
+
 void amd_init_lfence(struct cpuinfo_x86 *c)
 {
 	uint64_t value;
diff --git a/xen/arch/x86/include/asm/amd.h b/xen/arch/x86/include/asm/amd.h
index 9c9599a622..9dd3592bbb 100644
--- a/xen/arch/x86/include/asm/amd.h
+++ b/xen/arch/x86/include/asm/amd.h
@@ -174,4 +174,8 @@ bool amd_setup_legacy_ssbd(void);
 void amd_set_legacy_ssbd(bool enable);
 void amd_set_cpuid_user_dis(bool enable);
 
+#define INVAL_FREQ_MHZ  ~(uint64_t)0
+void amd_process_freq(const struct cpuinfo_x86 *c, uint64_t *low_mhz,
+		      uint64_t *nom_mhz, uint64_t *hi_mhz);
+
 #endif /* __AMD_H__ */
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Apr 14 07:41:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 07:41:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.949125.1345819 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4ERx-0002Lo-9D; Mon, 14 Apr 2025 07:41:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 949125.1345819; Mon, 14 Apr 2025 07:41: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 1u4ERx-0002Ki-3S; Mon, 14 Apr 2025 07:41:49 +0000
Received: by outflank-mailman (input) for mailman id 949125;
 Mon, 14 Apr 2025 07:41: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=KQal=XA=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1u4ERv-0008Gw-JH
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 07:41:47 +0000
Received: from NAM11-CO1-obe.outbound.protection.outlook.com
 (mail-co1nam11on20624.outbound.protection.outlook.com
 [2a01:111:f403:2416::624])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e93c85b2-1903-11f0-9ffb-bf95429c2676;
 Mon, 14 Apr 2025 09:41:45 +0200 (CEST)
Received: from CH0P221CA0031.NAMP221.PROD.OUTLOOK.COM (2603:10b6:610:11d::13)
 by SA1PR12MB9471.namprd12.prod.outlook.com (2603:10b6:806:458::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.32; Mon, 14 Apr
 2025 07:41:41 +0000
Received: from CH1PEPF0000AD76.namprd04.prod.outlook.com
 (2603:10b6:610:11d:cafe::b) by CH0P221CA0031.outlook.office365.com
 (2603:10b6:610:11d::13) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.35 via Frontend Transport; Mon,
 14 Apr 2025 07:41:41 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CH1PEPF0000AD76.mail.protection.outlook.com (10.167.244.53) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Mon, 14 Apr 2025 07:41:41 +0000
Received: from penny-System-Product-Name.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; Mon, 14 Apr 2025 02:41:39 -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: e93c85b2-1903-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=W/t1RcNKfOlQuF2W8Tdsq6UDXxUGpxJBJDhC55ZMlpvpjk2/msHLHmXnAROWZ6yfzB+92zIxooEGTbKhmpB6yoe5lt/0ZQhDRJsXbzuc/PCUEXdsBctVC45LFDMZnC4QmkSOUap9aF42QQTg5qVBx1bKVPVF+hwGJizL8OwczJ6L2lgrC0EwluFr9wL6rCL3iKEyuuABKvYb4I7B8RXHbznzqZ6EdEgB5uoRdbDU82LK/eNbUKtxBz2e6xQ52l6TqVNHGLiH1mnXo0AN1LtgpJYyV8NaW2Syx+2Cq+CzmrR0yGMukr27So7RjycpRQhap4axI/zckl3yXeE+yb+OqQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=OYKj+c3hCaRMUyQyZHcVEmjkaY1O+Uy8Y1vxZ7yGoGc=;
 b=u8B8aY1FzgDL+Vi2ZfmXx/p/codOUEwnu4MXO2hxDRBqYJ8bbtMZ6pYLNYjED1hzX8Pbfe1bV595Ml27/12RZl35UWDG0w7GeURSC5W/Y1V1mo1CGazZGqdhN9blNlx+XFJz4dHUPdzriBsH2/BQ94ZyeQWmlnT89CyU/VGm+x0EDfRfFtk8i9ybJd24rxgN085OryXpTj5Fnsr8vHSDFw8y2m4cthszs/iqzzmizgUdF7Eb8GOim8iwK2V5LT/ZT52DVqnDumd0TOB/jEl4NtqzuFIkqeKXlKwfRBf8KV3Y7tzPxaTh9y0XDP1wImuqmcWiTLrl7K2NaXTnK6HF5w==
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=OYKj+c3hCaRMUyQyZHcVEmjkaY1O+Uy8Y1vxZ7yGoGc=;
 b=QXri2bFRbAaa+3Twn6ddTJdXv5zmlhapuOjFUlbV084Wpb6MVNuz8nG/gsrTVsWjdsdeqF6R0GN9sjLj8FnwssvTtsT3rtcEPWdQz8yb6aAHNHBVH1fqYs/0oV9WWLO3Do+rD6S8higeNkFUcnhtfbNddPA7TJLjANb4Zd0C3ZI=
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: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.com>, Jan Beulich
	<jbeulich@suse.com>
Subject: [PATCH v4 10/15] xen/cpufreq: only set gov NULL when cpufreq_driver.setpolicy is NULL
Date: Mon, 14 Apr 2025 15:40:51 +0800
Message-ID: <20250414074056.3696888-11-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250414074056.3696888-1-Penny.Zheng@amd.com>
References: <20250414074056.3696888-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: CH1PEPF0000AD76:EE_|SA1PR12MB9471:EE_
X-MS-Office365-Filtering-Correlation-Id: e1d8c3be-2526-4df4-16f1-08dd7b27cc18
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?QbsgT6Nu2EAlxjFoLJTubPZSMGKW2bsz0uyPrcKHSx8Q4ok8yxFmC8tBAkcX?=
 =?us-ascii?Q?Y34b2naTvoQbdK1LQRqSG0ne66fx1MIoYmn1YO6lydUkhtD7CRuC6l0oQVuZ?=
 =?us-ascii?Q?rTRsxHHrRu0PnXjKWmghKVhJFZM4pQn85s6X+vqfnQvs4Old4bVWKBgnElai?=
 =?us-ascii?Q?NGhSt9sYKkwL+TwFjt9C1nbKPZY0bLZ9w4/u8YGijyy3LaEEyhFdC6DgEg4o?=
 =?us-ascii?Q?3zvHqCVXhU8hzOHOdapKUCGEn2Pxp0aqJodl7Bz/aF/KwZ71XXLPXPIvoaVk?=
 =?us-ascii?Q?MguFI6AZcEgiV2gSSomqVZrNIyutEDSKavj1EpcnCzDeeP17b9FaORccYv3y?=
 =?us-ascii?Q?BrleMg0FWGH+N0PF1ZJDtOopqcU1mB5QtXl6SloumnWNHNwj7cVc8MuJqWFj?=
 =?us-ascii?Q?A6Fx71jqOBXVavhEfJyUIXQmU+oF4YKqv4dCaB7gwKvu80GcOEdtF43TyGOj?=
 =?us-ascii?Q?RFiRT/yix7W1BQ90hJPUqXWrqjoiD7e68Qco5RogpfVkkW/L/m0ATVaQ//8E?=
 =?us-ascii?Q?kvez22qdx8ksJERwKbPo7I9w/TNdoDDF8at8GM2bTxISkFmVh9ubn9G1BjJG?=
 =?us-ascii?Q?YXirhuoZZvwinY8qtIicBchgxxglKh87VX27K+cJeRn36gVblXjQ4luVu5PM?=
 =?us-ascii?Q?F8ab/a0gAjFirz7fK9DkFlBBpJvOh1QZUTdlnJOYzTNdZD7ACp5OUC40sOVd?=
 =?us-ascii?Q?QxQyd4ICfG/njHTr2Uso+65a2MwteZK3DC4swK9a3G5sX4pLfvGJOpQmCUuU?=
 =?us-ascii?Q?+nEwGJXTCCc8ZZUEXRE65XlBk75sVnSo8cIC/6RZRDX0tl4pjs08HmnqdgMW?=
 =?us-ascii?Q?DGKEXKHYW86yzc7oy7HKqzRxeiLSJaJ57jU2kKiMM+VNWgQSeNUCbD0MMLWL?=
 =?us-ascii?Q?mS4N7bHdn9goVSxcvnCvtehmxlcl1ETXy+lgKmm9P4yqfFU7hbHWuvKN4YvY?=
 =?us-ascii?Q?sZA4kQkc+kmC8ZHu8Mxc5no9HG/NPQCLZGZMosyXMawNLNiq5oMYqBsdpOkL?=
 =?us-ascii?Q?7JVLaN93krcWNcmH+BHmqwc2Zs4QWNZn8NhEK22GKq2JKED5XmoAv78STXGQ?=
 =?us-ascii?Q?XnxwVEQXZJKu3mwe4ZbO6sBHZ29LQxiDBxg8Z++21X0rtkf8EoQfVIRlLIun?=
 =?us-ascii?Q?7pk0fqOLhnXXI6bVwsvOJQAYyLNu3Y8SRjeKAynCwAYLlK9h5VY+42wuUGP8?=
 =?us-ascii?Q?u+nz81ITVHATFmvZPuUbEsli85bIAyOnrifgOl/tYk3wawcl02O6nEAmvAR1?=
 =?us-ascii?Q?I5jv9Yx6O7g+6ZAuTapeLSxipE71xTa08cEi+w0+JHYKezSXMlkhHicltbGy?=
 =?us-ascii?Q?5OpYjmYQuGZpmiswjTmhBUcAf6hkCEaXbE39XSLDXCtIq31o8Zh+BgoEcUgD?=
 =?us-ascii?Q?UD2RwE7BpruBwqTGHxq3fA/igJLgt4DqhJV+mIEy+doqrvJSiqEAy4PZIJ4J?=
 =?us-ascii?Q?f/1ap1zaXH5pIIzulGKxnSG+uU4GvM7a0efBiLoSX5XRoHVI0aKaBp+iCloT?=
 =?us-ascii?Q?ma58J0xeomZJYK3bniMpvjoomeCzrYjRVi80?=
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)(82310400026)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Apr 2025 07:41:41.3925
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: e1d8c3be-2526-4df4-16f1-08dd7b27cc18
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:
	CH1PEPF0000AD76.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB9471

amd-cppc on active mode bypasses the scaling governor layer, and
provides its own P-state selection algorithms in hardware. Consequently,
when it is used, the driver's -> setpolicy() callback is invoked
to register per-CPU utilization update callbacks, not the ->target()
callback.

So, only when cpufreq_driver.setpolicy is NULL, we need to deliberately
set old gov as NULL to trigger the according gov starting.

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
---
v3 -> v4:
- fix indentation and this commit is independent of all earlier patches
---
 xen/drivers/cpufreq/cpufreq.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/xen/drivers/cpufreq/cpufreq.c b/xen/drivers/cpufreq/cpufreq.c
index 818668c99c..2e392110d8 100644
--- a/xen/drivers/cpufreq/cpufreq.c
+++ b/xen/drivers/cpufreq/cpufreq.c
@@ -396,7 +396,13 @@ int cpufreq_add_cpu(unsigned int cpu)
                     domain_info.num_processors) )
     {
         memcpy(&new_policy, policy, sizeof(struct cpufreq_policy));
-        policy->governor = NULL;
+
+        /*
+         * Only when cpufreq_driver.setpolicy == NULL, we need to deliberately
+         * set old gov as NULL to trigger the according gov starting.
+         */
+        if ( cpufreq_driver.setpolicy == NULL )
+            policy->governor = NULL;
 
         cpufreq_cmdline_common_para(&new_policy);
 
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Apr 14 07:49:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 07:49:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.949174.1345830 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4EZN-0005Il-CS; Mon, 14 Apr 2025 07:49:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 949174.1345830; Mon, 14 Apr 2025 07:49: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 1u4EZN-0005Ie-9t; Mon, 14 Apr 2025 07:49:29 +0000
Received: by outflank-mailman (input) for mailman id 949174;
 Mon, 14 Apr 2025 07:49: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 1u4EZL-0005IY-FD
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 07:49: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 1u4EZH-00EiOW-2v;
 Mon, 14 Apr 2025 07:49:23 +0000
Received: from [143.198.24.140] (helo=[100.81.22.8])
 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 1u4EZH-00AZvz-1R;
 Mon, 14 Apr 2025 07:49:23 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=ll0sxhXC1mMGQmoSAuxcQQECADv7BSeHVP3hqAzxiss=; b=Ve3bSsBnPukQzCCYDY1dbkH1Ox
	4/zYZ8R06jjJLLZ61I2vl46BQpokLa4SCHpougcc2mlzXTkolFobIjmThbP8hhGgCrFKbh/1UP4f8
	ClNLJasKdJXlvJ85M9dn41X9Gu2nZLG7NSWWtJA4t8ngl6Km1i120GKQb1TrbwE89QJ4=;
Message-ID: <28db4a69-ea60-4c4d-a6e8-0dcc548a9e75@xen.org>
Date: Mon, 14 Apr 2025 16:49:18 +0900
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/5] xen/io: provide helpers for multi size MMIO accesses
Content-Language: en-GB
To: Jan Beulich <jbeulich@suse.com>, Roger Pau Monne <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20250411105411.22334-1-roger.pau@citrix.com>
 <20250411105411.22334-3-roger.pau@citrix.com>
 <bd77106c-7e5c-4e6f-98f9-faacf4f9deef@suse.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <bd77106c-7e5c-4e6f-98f9-faacf4f9deef@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

On 14/04/2025 15:07, Jan Beulich wrote:
> On 11.04.2025 12:54, Roger Pau Monne wrote:
>> Several handlers have the same necessity of reading from an MMIO region
>> using 1, 2, 4 or 8 bytes accesses.  So far this has been open-coded in the
>> function itself.  Instead provide a new handler that encapsulates the
>> accesses.
>>
>> Since the added helpers are not architecture specific, introduce a new
>> generic io.h header.
> 
> Except that ...
> 
>> --- /dev/null
>> +++ b/xen/include/xen/io.h
>> @@ -0,0 +1,63 @@
>> +/* SPDX-License-Identifier: GPL-2.0-only */
>> +/*
>> + * Generic helpers for doing MMIO accesses.
>> + *
>> + * Copyright (c) 2025 Cloud Software Group
>> + */
>> +#ifndef XEN_IO_H
>> +#define XEN_IO_H
>> +
>> +#include <xen/bug.h>
>> +
>> +#include <asm/io.h>
>> +
>> +static inline uint64_t read_mmio(const volatile void __iomem *mem,
>> +                                 unsigned int size)
>> +{
>> +    switch ( size )
>> +    {
>> +    case 1:
>> +        return readb(mem);
>> +
>> +    case 2:
>> +        return readw(mem);
>> +
>> +    case 4:
>> +        return readl(mem);
>> +
>> +    case 8:
>> +        return readq(mem);
> 
> ... this and ...
> 
>> +    }
>> +
>> +    ASSERT_UNREACHABLE();
>> +    return ~0UL;
>> +}
>> +
>> +static inline void write_mmio(volatile void __iomem *mem, uint64_t data,
>> +                              unsigned int size)
>> +{
>> +    switch ( size )
>> +    {
>> +    case 1:
>> +        writeb(data, mem);
>> +        break;
>> +
>> +    case 2:
>> +        writew(data, mem);
>> +        break;
>> +
>> +    case 4:
>> +        writel(data, mem);
>> +        break;
>> +
>> +    case 8:
>> +        writeq(data, mem);
>> +        break;
> 
> ... this may (generally will) not work on 32-bit architectures. Add
> CONFIG_64BIT conditionals? At which point return type / last parameter
> type could move from uint64_t to unsigned long.

Technically arm32 bit supports 64-bit write because we mandate LPAE. I 
see this is used by the vPCI code. Are we expecting to have any 64-bit 
access?

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Mon Apr 14 07:50:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 07:50:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.949185.1345841 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4EaR-0006kc-Mg; Mon, 14 Apr 2025 07:50:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 949185.1345841; Mon, 14 Apr 2025 07:50: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 1u4EaR-0006kV-JO; Mon, 14 Apr 2025 07:50:35 +0000
Received: by outflank-mailman (input) for mailman id 949185;
 Mon, 14 Apr 2025 07:50: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=KQal=XA=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1u4ERz-0000Ks-Gl
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 07:41:51 +0000
Received: from NAM12-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam12on2060c.outbound.protection.outlook.com
 [2a01:111:f403:200a::60c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ea552f81-1903-11f0-9eae-5ba50f476ded;
 Mon, 14 Apr 2025 09:41:47 +0200 (CEST)
Received: from CH2PR14CA0003.namprd14.prod.outlook.com (2603:10b6:610:60::13)
 by DS0PR12MB8442.namprd12.prod.outlook.com (2603:10b6:8:125::12) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.30; Mon, 14 Apr
 2025 07:41:40 +0000
Received: from CH1PEPF0000AD7A.namprd04.prod.outlook.com
 (2603:10b6:610:60:cafe::fb) by CH2PR14CA0003.outlook.office365.com
 (2603:10b6:610:60::13) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.34 via Frontend Transport; Mon,
 14 Apr 2025 07:41:39 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CH1PEPF0000AD7A.mail.protection.outlook.com (10.167.244.59) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Mon, 14 Apr 2025 07:41:39 +0000
Received: from penny-System-Product-Name.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; Mon, 14 Apr 2025 02:41:37 -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: ea552f81-1903-11f0-9eae-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=RvUWsWBL4AHCmXFb3y6ZNyjxkD/55Qf5MGEljqwAMxWVwRnJ003YWF51Cyfi5yB6Y6mP2HPqUr8NN1sr5knfSOW0TpXKtXPlRkTfBKd9i6b6zkQ6ZmkoC2hr4CYMMmPeJgNT/twOtHyKU6eSO2gy153CGIfzZ+pFtRtmOUgekqLlc9eIe0ypXvtswUA3y9IVGrW2TcrEre79Jwi4WhbRdn401s5Sw2gRQJ3gNmtf1iYQIw/s93VwcarSkJH3G7WAPN1tiAdJRd/Hf1DuI/AM7F26NcqttyiXw2EgW8jQ2IFikWMyPxlFibhmlruLOYzZsg/HyNddbFpUE1ayBabABQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=rk631RlTo98VfmfT4ziRgfHzrRt52/TQ2E4HOv/hOcw=;
 b=jMII2UT+nrQ4yWJLrsUp37ZpXvwJR1mK7VFBqs5RX0YVggs8meiHA5Lxz6K/EUhtDJI1+kUeZrqjgnloHTUU1XCIEv5uawcfbABF8tVAK9oczIMTlY1GeQEEOdFecDTmoW6+iBF6UJKYirCNj9WqoA9EN94wDEPfwh9D4OvzfvqrGbYX93oKcUK0XpH+f0tb1I4N7XaqAh4QcxKG67Bt22vqS50eWLI+GQKmZAoofUqWMXEe49dfA8o8pu+h1OUABb0utjGqeJdETW4OfA32I4jQNAkUVNy4E/j1B2mHSBn9OmFS2jgmQwpo8rpvZMDvNwDIThi0Yq5X79O9lRFKtQ==
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=rk631RlTo98VfmfT4ziRgfHzrRt52/TQ2E4HOv/hOcw=;
 b=FfSSWc0B6VsvC/64KLt62Y82QhMNf4qZP1pd1Xg11XUbVGYFw8xWHXOKDMv8FqLVAJZMXDeGwODy4y/w+qImBWy3zIOfWEEC5QlTHWSeN/9ESFVKWzMsE6uHRqwA8nTyAiiETDaxau0Mbi6xd3AqWR666k4KHSP8BKYzxwvhe58=
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: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v4 09/15] xen/x86: introduce a new amd cppc driver for cpufreq scaling
Date: Mon, 14 Apr 2025 15:40:50 +0800
Message-ID: <20250414074056.3696888-10-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250414074056.3696888-1-Penny.Zheng@amd.com>
References: <20250414074056.3696888-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: CH1PEPF0000AD7A:EE_|DS0PR12MB8442:EE_
X-MS-Office365-Filtering-Correlation-Id: 735ac579-4b0a-45dd-74dd-08dd7b27cb24
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?OTZMRk9TNmtyREh0VzJxYnd3MWZiVVlDVVpvSjRrNEVvYnA2elFhS1BtWkFz?=
 =?utf-8?B?M1ZQQ1NpRE5mZ0l6TXhMNmw1ekZCUExaR0UyT3U3T0daekl3M3AwQVJZRlEz?=
 =?utf-8?B?K09mMEsxRDVNZTNxRjExVEtyQmxTK2ZqNEx1TkdoTjRTVGVZcnp3YWV1UnYv?=
 =?utf-8?B?YmRQT0cvNCtmaVM0TFc1c0ZRV0hPMXZYNlZtUkxSUVF0TVIxRXlyNXRGYzVr?=
 =?utf-8?B?K3R0MmJhcGxYaGdXb3ZKRGxSdHBlTkxaeFc0U1hRNXh3WE8xUUdFVEpWNTBv?=
 =?utf-8?B?NjVwY1ZiMkUrenE5REpyTnlzRkNNb3JaZVBZRjE0VGVPZ1VNczVhWEVTR3No?=
 =?utf-8?B?MjJwNHhGMlpBL3J6MzRCUVRuWEc4cithTDNWR2lYS0V2VmFMaGhNMnVYMS9O?=
 =?utf-8?B?VXhLaStYR3BsQjViei9oc2dzVkpIdHhoRmQ0RUpCMmJUUXd2OWhtSHFvTVJp?=
 =?utf-8?B?bVlVKzUvU25LVW95czFSaEFzZDVuWWt4b2pPSFF3VkpQa0x4RTc2aS9JM1ZR?=
 =?utf-8?B?LzZ1TW9tL3FyS2I5UHRmNWhxaXVGWkpoclBGYmtQcjd0bjdTdzR0YWtMdEQy?=
 =?utf-8?B?WlpwQ0VDalJMais1dG05bmo4a1JOejQ5cXpwL0dRMzdCV0tIKzZXYmRNUDR2?=
 =?utf-8?B?R0lFQnpVTDhJN0dsT2RoM2Z3WVU2eGI3Zzh2RGJGd0lRNlV0VmtMUS9VeklZ?=
 =?utf-8?B?aUtQOE1XeUx3K1NGMTVwaWpsT2tja3RtWUJkSmxOU3ZPVy9TcFdNbnd5bUc4?=
 =?utf-8?B?enlXSUUrNyt6emF6a3FOaEkwc3FHOFp0Y3lPRy9tQjNyN2JOeldMczI5bGkr?=
 =?utf-8?B?UCtCdVc2TVJUZjZLSC8zTXROZUlFcmJjRFRaSTFPOWNZL1dINUpjZXlna3VL?=
 =?utf-8?B?K1kvSEk2ajRlaitIOXNnbURpT0Rkc0g1RTg4cjA1aWhhMmlpaU1tUFVkY3VH?=
 =?utf-8?B?akQ2WGlBNHl6YmVuK0JCZ0M0SERFRGJlaERXRHBPd3JOaXY4TzVTTG8zeHAx?=
 =?utf-8?B?RVU0Nkx4UTRuN2xIWjI3Z3dvTG9hdVpYOUlreVh6Y3hNMUV1V0EzVGFFTEpz?=
 =?utf-8?B?YmJteURNVVcwUmZoc2Y4aXRtYkMvU2xuTjdWenIxRTZpaDYwSGlUYnhyRGZC?=
 =?utf-8?B?OTdCaU10R016cVQ4bVZ6dHhMUU9mVGVnRmJPS1RsMmFrL0lZelVKbU1BYTA4?=
 =?utf-8?B?bFVCWThCMG9XTjM4RkFPZFlqUnFKbkxSYnE2a1BPeGo4YmJPa3dlQW8yK2Fj?=
 =?utf-8?B?WFFQUjk3Umc2RnNrclphOUJCVVhpOVM5S2I1M0FUYlg4Z2k5R2d0RG9GeEh3?=
 =?utf-8?B?ZzVPMXVPRWNFNk9Za1NZeUhiOGd5b3ExY3VublRIWG1yajNtcjlza3c2bkFJ?=
 =?utf-8?B?cmtFRDF2c29mRWMzYk1sU2RvdUEyZEZHOUJSaVcvQXpWbHF6Q1ZqclJqWjd0?=
 =?utf-8?B?TzY2U3YxNDNQT2VBR1I0NjJoY2drQU9aM2U1ZkNGclFGUTc4dFZsSUZ6ZmxM?=
 =?utf-8?B?bWYwSnZSSTBna2V6bFV4YmlZZG41RGthWm53c21LLzlYMk1Za1dCaUtYOGl4?=
 =?utf-8?B?Q3hOMkVQRjFIMDExUlNqazhwU3JtRU0rbjdSV0tINnE4RFRVcWtUTjczbWJ6?=
 =?utf-8?B?eXo4UUFuQWsweis1VGpOL3E0NS9DSk9tU3BlRjJYS2U5UGN2a3A3QUcvV3E4?=
 =?utf-8?B?MUFpejNEMlNTclkzZXpXd2RRTHFVUXoyU1J4RWJza3N3NHZjVFBhYmg0T0FE?=
 =?utf-8?B?ckVYb1NqUzVQajlXeFhZZmQ4N1FoOTM2dTEvdm0zQkNLMHZZUGNQelRFbDE0?=
 =?utf-8?B?UERjeWJYRXA1bkg1dnE4cHRUbHBZb2dSTVFSU2toc2JHRmdCQmxXcXRxUVZo?=
 =?utf-8?B?SmZIR09SNDRHenJ3ZzJuN0VpWDdFUkpxQlVyT0FaV1RKVlB3YjlXMFA4UlVG?=
 =?utf-8?B?bk9rY05XUDFqM0JBdFJ2ZmJ4U0wxTWxYTUdCMzBNOUdDb3NCdmM2eHdZSnN2?=
 =?utf-8?B?cDR2SjkzQ2lLazM4Nk11aDdNeWlmczQ2QW1NWkp0MllWZjRQVGJvMmkrclJY?=
 =?utf-8?Q?E3hapT?=
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: 14 Apr 2025 07:41:39.7958
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 735ac579-4b0a-45dd-74dd-08dd7b27cb24
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:
	CH1PEPF0000AD7A.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB8442

amd-cppc is the AMD CPU performance scaling driver that introduces a
new CPU frequency control mechanism firstly on AMD Zen based CPU series.
The new mechanism is based on Collaborative Processor Performance
Control (CPPC) which is a finer grain frequency management
than legacy ACPI hardware P-States.
Current AMD CPU platforms are using the ACPI P-states driver to
manage CPU frequency and clocks with switching only in 3 P-states.
The new amd-cppc allows a more flexible, low-latency interface for Xen
to directly communicate the performance hints to hardware.

The first version "amd-cppc" could leverage common governors such as
*ondemand*, *performance*, etc, to manage the performance hints. In the
future, we will introduce an advanced active mode to enable autonomous
performence level selection.

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
v1 -> v2:
- re-construct union caps and req to have anonymous struct instead
- avoid "else" when the earlier if() ends in an unconditional control flow statement
- Add check to avoid chopping off set bits from cast
- make pointers pointer-to-const wherever possible
- remove noisy log
- exclude families before 0x17 before CPPC-feature MSR op
- remove useless variable helpers
- use xvzalloc and XVFREE
- refactor error handling as ENABLE bit can only be cleared by reset
---
v2 -> v3:
- Move all MSR-definations to msr-index.h and follow the required style
- Refactor opening figure braces for struct/union
- Sort overlong lines throughout the series
- Make offset/res int covering underflow scenario
- Error out when amd_max_freq_mhz isn't set
- Introduce amd_get_freq(name) macro to decrease redundancy
- Supported CPU family checked ahead of smp-function
- Nominal freq shall be checked between the [min, max]
- Use APERF/MPREF to calculate current frequency
- Use amd_cppc_cpufreq_cpu_exit() to tidy error path
---
v3 -> v4:
- verbose print shall come with a CPU number
- deal with res <= 0 in amd_cppc_khz_to_perf()
- introduce a single helper amd_get_lowest_or_nominal_freq() to cover both
lowest and nominal scenario
- reduce abuse of wrmsr_safe()/rdmsr_safe() with wrmsrl()/rdmsrl()
- move cf_check from amd_cppc_write_request() to amd_cppc_write_request_msrs()
- add comment to explain why setting non_linear_lowest in passive mode
- add check to ensure perf values in
lowest <= non_linear_lowest <= nominal <= highset
- refactor comment for "data->err != 0" scenario
- use "data->err" instead of -ENODEV
- add U suffixes for all msr macro
---
 xen/arch/x86/acpi/cpufreq/amd-cppc.c | 393 +++++++++++++++++++++++++++
 xen/arch/x86/include/asm/msr-index.h |   5 +
 2 files changed, 398 insertions(+)

diff --git a/xen/arch/x86/acpi/cpufreq/amd-cppc.c b/xen/arch/x86/acpi/cpufreq/amd-cppc.c
index 8a081e5523..2fdfd17f59 100644
--- a/xen/arch/x86/acpi/cpufreq/amd-cppc.c
+++ b/xen/arch/x86/acpi/cpufreq/amd-cppc.c
@@ -14,7 +14,56 @@
 #include <xen/domain.h>
 #include <xen/init.h>
 #include <xen/param.h>
+#include <xen/percpu.h>
+#include <xen/xvmalloc.h>
 #include <acpi/cpufreq/cpufreq.h>
+#include <asm/amd.h>
+#include <asm/msr-index.h>
+
+#define amd_cppc_err(cpu, fmt, args...)                             \
+    printk(XENLOG_ERR "AMD_CPPC: CPU%u error: " fmt, cpu, ## args)
+#define amd_cppc_warn(cpu, fmt, args...)                            \
+    printk(XENLOG_WARNING "AMD_CPPC: CPU%u warning: " fmt, cpu, ## args)
+#define amd_cppc_verbose(cpu, fmt, args...)                         \
+({                                                                  \
+    if ( cpufreq_verbose )                                          \
+        printk(XENLOG_DEBUG "AMD_CPPC: CPU%u " fmt, cpu, ## args);  \
+})
+
+struct amd_cppc_drv_data
+{
+    const struct xen_processor_cppc *cppc_data;
+    union {
+        uint64_t raw;
+        struct {
+            unsigned int lowest_perf:8;
+            unsigned int lowest_nonlinear_perf:8;
+            unsigned int nominal_perf:8;
+            unsigned int highest_perf:8;
+            unsigned int :32;
+        };
+    } caps;
+    union {
+        uint64_t raw;
+        struct {
+            unsigned int max_perf:8;
+            unsigned int min_perf:8;
+            unsigned int des_perf:8;
+            unsigned int epp:8;
+            unsigned int :32;
+        };
+    } req;
+
+    int err;
+};
+
+static DEFINE_PER_CPU_READ_MOSTLY(struct amd_cppc_drv_data *,
+                                  amd_cppc_drv_data);
+/*
+ * Core max frequency read from PstateDef as anchor point
+ * for freq-to-perf transition
+ */
+static DEFINE_PER_CPU_READ_MOSTLY(uint64_t, amd_max_pxfreq_mhz);
 
 static bool __init amd_cppc_handle_option(const char *s, const char *end)
 {
@@ -51,10 +100,354 @@ int __init amd_cppc_cmdline_parse(const char *s, const char *e)
     return 0;
 }
 
+/*
+ * If CPPC lowest_freq and nominal_freq registers are exposed then we can
+ * use them to convert perf to freq and vice versa. The conversion is
+ * extrapolated as an linear function passing by the 2 points:
+ *  - (Low perf, Low freq)
+ *  - (Nominal perf, Nominal freq)
+ */
+static int amd_cppc_khz_to_perf(const struct amd_cppc_drv_data *data,
+                                unsigned int freq, uint8_t *perf)
+{
+    const struct xen_processor_cppc *cppc_data = data->cppc_data;
+    uint64_t mul, div;
+    int offset = 0, res;
+
+    if ( freq == (cppc_data->cpc.nominal_mhz * 1000) )
+    {
+        *perf = data->caps.nominal_perf;
+        return 0;
+    }
+
+    if ( freq == (cppc_data->cpc.lowest_mhz * 1000) )
+    {
+        *perf = data->caps.lowest_perf;
+        return 0;
+    }
+
+    if ( cppc_data->cpc.lowest_mhz && cppc_data->cpc.nominal_mhz &&
+         cppc_data->cpc.lowest_mhz < cppc_data->cpc.nominal_mhz )
+    {
+        mul = data->caps.nominal_perf - data->caps.lowest_perf;
+        div = cppc_data->cpc.nominal_mhz - cppc_data->cpc.lowest_mhz;
+
+        /*
+         * We don't need to convert to kHz for computing offset and can
+         * directly use nominal_mhz and lowest_mhz as the division
+         * will remove the frequency unit.
+         */
+        offset = data->caps.nominal_perf -
+                 (mul * cppc_data->cpc.nominal_mhz) / div;
+    }
+    else
+    {
+        /* Read Processor Max Speed(MHz) as anchor point */
+        mul = data->caps.highest_perf;
+        div = this_cpu(amd_max_pxfreq_mhz);
+        if ( !div || div == INVAL_FREQ_MHZ )
+            return -EINVAL;
+    }
+
+    res = offset + (mul * freq) / (div * 1000);
+    if ( res > UINT8_MAX )
+    {
+        printk_once(XENLOG_WARNING
+                    "Perf value exceeds maximum value 255: %d\n", res);
+        *perf = 0xff;
+        return 0;
+    } else if ( res < 0 )
+    {
+        printk_once(XENLOG_WARNING
+                    "Perf value smaller than minimum value 0: %d\n", res);
+        *perf = 0;
+        return 0;
+    }
+    *perf = (uint8_t)res;
+
+    return 0;
+}
+
+static int amd_get_lowest_or_nominal_freq(const struct amd_cppc_drv_data *data,
+                                          uint32_t cpc_mhz, uint8_t perf,
+                                          unsigned int *freq)
+{
+    uint64_t mul, div, res;
+
+    if ( !freq )
+        return -EINVAL;
+
+    if ( cpc_mhz )
+    {
+        /* Switch to khz */
+        *freq = cpc_mhz * 1000;
+        return 0;
+    }
+
+    /* Read Processor Max Speed(MHz) as anchor point */
+    mul = this_cpu(amd_max_pxfreq_mhz);
+    if ( mul == INVAL_FREQ_MHZ || !mul )
+    {
+        printk(XENLOG_ERR
+               "Failed to read valid processor max frequency as anchor point: %lu\n",
+               mul);
+        return -EINVAL;
+    }
+    div = data->caps.highest_perf;
+    res = (mul * perf * 1000) / div;
+
+    if ( res > UINT_MAX || !res )
+    {
+        printk(XENLOG_ERR
+               "Frequeny exceeds maximum value UINT_MAX or being zero value: %lu\n",
+               res);
+        return -EINVAL;
+    }
+    *freq = (unsigned int)res;
+
+    return 0;
+}
+
+static int amd_get_max_freq(const struct amd_cppc_drv_data *data,
+                            unsigned int *max_freq)
+{
+    unsigned int nom_freq = 0, boost_ratio;
+    int res;
+
+    res = amd_get_lowest_or_nominal_freq(data,
+                                         data->cppc_data->cpc.nominal_mhz,
+                                         data->caps.nominal_perf,
+                                         &nom_freq);
+    if ( res )
+        return res;
+
+    boost_ratio = (unsigned int)(data->caps.highest_perf /
+                                 data->caps.nominal_perf);
+    *max_freq = nom_freq * boost_ratio;
+
+    return 0;
+}
+
+static int cf_check amd_cppc_cpufreq_verify(struct cpufreq_policy *policy)
+{
+    cpufreq_verify_within_limits(policy, policy->cpuinfo.min_freq,
+                                 policy->cpuinfo.max_freq);
+
+    return 0;
+}
+
+static void cf_check amd_cppc_write_request_msrs(void *info)
+{
+    const struct amd_cppc_drv_data *data = info;
+
+    wrmsrl(MSR_AMD_CPPC_REQ, data->req.raw);
+}
+
+static void amd_cppc_write_request(unsigned int cpu, uint8_t min_perf,
+                                   uint8_t des_perf, uint8_t max_perf)
+{
+    struct amd_cppc_drv_data *data = per_cpu(amd_cppc_drv_data, cpu);
+    uint64_t prev = data->req.raw;
+
+    data->req.min_perf = min_perf;
+    data->req.max_perf = max_perf;
+    data->req.des_perf = des_perf;
+
+    if ( prev == data->req.raw )
+        return;
+
+    on_selected_cpus(cpumask_of(cpu), amd_cppc_write_request_msrs, data, 1);
+}
+
+static int cf_check amd_cppc_cpufreq_target(struct cpufreq_policy *policy,
+                                            unsigned int target_freq,
+                                            unsigned int relation)
+{
+    unsigned int cpu = policy->cpu;
+    const struct amd_cppc_drv_data *data = per_cpu(amd_cppc_drv_data, cpu);
+    uint8_t des_perf;
+    int res;
+
+    if ( unlikely(!target_freq) )
+        return 0;
+
+    res = amd_cppc_khz_to_perf(data, target_freq, &des_perf);
+    if ( res )
+        return res;
+
+    /*
+     * Setting with "lowest_nonlinear_perf" to ensure governoring
+     * performance in P-state range.
+     */
+    amd_cppc_write_request(policy->cpu, data->caps.lowest_nonlinear_perf,
+                           des_perf, data->caps.highest_perf);
+    return 0;
+}
+
+static void cf_check amd_cppc_init_msrs(void *info)
+{
+    struct cpufreq_policy *policy = info;
+    struct amd_cppc_drv_data *data = this_cpu(amd_cppc_drv_data);
+    uint64_t val;
+    unsigned int min_freq = 0, nominal_freq = 0, max_freq;
+
+    /* Package level MSR */
+    rdmsrl(MSR_AMD_CPPC_ENABLE, val);
+    /*
+     * Only when Enable bit is on, the hardware will calculate the processor’s
+     * performance capabilities and initialize the performance level fields in
+     * the CPPC capability registers.
+     */
+    if ( !(val & AMD_CPPC_ENABLE) )
+    {
+        val |= AMD_CPPC_ENABLE;
+        wrmsrl(MSR_AMD_CPPC_ENABLE, val);
+    }
+
+    rdmsrl(MSR_AMD_CPPC_CAP1, data->caps.raw);
+
+    if ( data->caps.highest_perf == 0 || data->caps.lowest_perf == 0 ||
+         data->caps.nominal_perf == 0 || data->caps.lowest_nonlinear_perf == 0 ||
+         data->caps.lowest_perf > data->caps.lowest_nonlinear_perf ||
+         data->caps.lowest_nonlinear_perf > data->caps.nominal_perf ||
+         data->caps.nominal_perf > data->caps.highest_perf )
+    {
+        amd_cppc_err(policy->cpu,
+                     "Platform malfunction, read CPPC capability highest(%u), lowest(%u), nominal(%u), lowest_nonlinear(%u) zero value\n",
+                     data->caps.highest_perf, data->caps.lowest_perf,
+                     data->caps.nominal_perf, data->caps.lowest_nonlinear_perf);
+        goto err;
+    }
+
+    amd_process_freq(cpu_data + policy->cpu,
+                     NULL, NULL, &this_cpu(amd_max_pxfreq_mhz));
+
+    data->err = amd_get_lowest_or_nominal_freq(data,
+                                               data->cppc_data->cpc.lowest_mhz,
+                                               data->caps.lowest_perf,
+                                               &min_freq);
+    if ( data->err )
+        return;
+
+    data->err = amd_get_lowest_or_nominal_freq(data,
+                                               data->cppc_data->cpc.nominal_mhz,
+                                               data->caps.nominal_perf,
+                                               &nominal_freq);
+    if ( data->err )
+        return;
+
+    data->err = amd_get_max_freq(data, &max_freq);
+    if ( data->err )
+        return;
+
+    if ( min_freq > nominal_freq || nominal_freq > max_freq )
+    {
+        amd_cppc_err(policy->cpu,
+                     "min(%u), or max(%u), or nominal(%u) freq value is incorrect\n",
+                     min_freq, max_freq, nominal_freq);
+        goto err;
+    }
+
+    policy->min = min_freq;
+    policy->max = max_freq;
+
+    policy->cpuinfo.min_freq = min_freq;
+    policy->cpuinfo.max_freq = max_freq;
+    policy->cpuinfo.perf_freq = nominal_freq;
+    /*
+     * Set after policy->cpuinfo.perf_freq, as we are taking
+     * APERF/MPERF average frequency as current frequency.
+     */
+    policy->cur = cpufreq_driver_getavg(policy->cpu, GOV_GETAVG);
+
+    return;
+
+ err:
+    /*
+     * No fallback shceme is available here, see more explanation at call
+     * site in amd_cppc_cpufreq_cpu_init().
+     */
+    data->err = -EINVAL;
+}
+
+/*
+ * AMD CPPC driver is different than legacy ACPI hardware P-State,
+ * which has a finer grain frequency range between the highest and lowest
+ * frequency. And boost frequency is actually the frequency which is mapped on
+ * highest performance ratio. The legacy P0 frequency is actually mapped on
+ * nominal performance ratio.
+ */
+static void amd_cppc_boost_init(struct cpufreq_policy *policy,
+                                const struct amd_cppc_drv_data *data)
+{
+    if ( data->caps.highest_perf <= data->caps.nominal_perf )
+        return;
+
+    policy->turbo = CPUFREQ_TURBO_ENABLED;
+}
+
+static int cf_check amd_cppc_cpufreq_cpu_exit(struct cpufreq_policy *policy)
+{
+    XVFREE(per_cpu(amd_cppc_drv_data, policy->cpu));
+
+    return 0;
+}
+
+static int cf_check amd_cppc_cpufreq_cpu_init(struct cpufreq_policy *policy)
+{
+    unsigned int cpu = policy->cpu;
+    struct amd_cppc_drv_data *data;
+    const struct cpuinfo_x86 *c = cpu_data + cpu;
+
+    data = xvzalloc(struct amd_cppc_drv_data);
+    if ( !data )
+        return -ENOMEM;
+
+    data->cppc_data = &processor_pminfo[cpu]->cppc_data;
+
+    per_cpu(amd_cppc_drv_data, cpu) = data;
+
+    /* Feature CPPC is firstly introduced on Zen2 */
+    if ( c->x86 < 0x17 )
+    {
+        printk_once("Unsupported cpu family: %x\n", c->x86);
+        return -EOPNOTSUPP;
+    }
+
+    on_selected_cpus(cpumask_of(cpu), amd_cppc_init_msrs, policy, 1);
+
+    /*
+     * The enable bit is sticky, as we need to enable it at the very first
+     * begining, before CPPC capability sanity check.
+     * If error path takes effective, not only amd-cppc cpufreq driver fails
+     * to initialize, but also we could not fall back to legacy P-states
+     * driver, irrespective of the command line specifying a fallback option.
+     */
+    if ( data->err )
+    {
+        amd_cppc_err(cpu, "Could not initialize AMD CPPC MSR properly\n");
+        amd_cppc_cpufreq_cpu_exit(policy);
+        return data->err;
+    }
+
+    policy->governor = cpufreq_opt_governor ? : CPUFREQ_DEFAULT_GOVERNOR;
+
+    amd_cppc_boost_init(policy, data);
+
+    amd_cppc_verbose(policy->cpu,
+                     "CPU initialized with amd-cppc passive mode\n");
+
+    return 0;
+}
+
 static const struct cpufreq_driver __initconst_cf_clobber
 amd_cppc_cpufreq_driver =
 {
     .name   = XEN_AMD_CPPC_DRIVER_NAME,
+    .verify = amd_cppc_cpufreq_verify,
+    .target = amd_cppc_cpufreq_target,
+    .init   = amd_cppc_cpufreq_cpu_init,
+    .exit   = amd_cppc_cpufreq_cpu_exit,
 };
 
 int __init amd_cppc_register_driver(void)
diff --git a/xen/arch/x86/include/asm/msr-index.h b/xen/arch/x86/include/asm/msr-index.h
index 22d9e76e55..3ffa613df0 100644
--- a/xen/arch/x86/include/asm/msr-index.h
+++ b/xen/arch/x86/include/asm/msr-index.h
@@ -238,6 +238,11 @@
 
 #define MSR_AMD_CSTATE_CFG                  0xc0010296U
 
+#define MSR_AMD_CPPC_CAP1                   0xc00102b0U
+#define MSR_AMD_CPPC_ENABLE                 0xc00102b1U
+#define  AMD_CPPC_ENABLE                    (_AC(1, ULL) <<  0)
+#define MSR_AMD_CPPC_REQ                    0xc00102b3U
+
 /*
  * Legacy MSR constants in need of cleanup.  No new MSRs below this comment.
  */
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Apr 14 07:52:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 07:52:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.949226.1345852 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4Ec5-000856-6y; Mon, 14 Apr 2025 07:52:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 949226.1345852; Mon, 14 Apr 2025 07:52: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 1u4Ec5-00084z-1U; Mon, 14 Apr 2025 07:52:17 +0000
Received: by outflank-mailman (input) for mailman id 949226;
 Mon, 14 Apr 2025 07:52: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=KQal=XA=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1u4ESA-0008Gw-4g
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 07:42:02 +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 edbc6620-1903-11f0-9ffb-bf95429c2676;
 Mon, 14 Apr 2025 09:41:52 +0200 (CEST)
Received: from CH2PR14CA0030.namprd14.prod.outlook.com (2603:10b6:610:60::40)
 by LV2PR12MB5968.namprd12.prod.outlook.com (2603:10b6:408:14f::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.32; Mon, 14 Apr
 2025 07:41:44 +0000
Received: from CH1PEPF0000AD7A.namprd04.prod.outlook.com
 (2603:10b6:610:60:cafe::dc) by CH2PR14CA0030.outlook.office365.com
 (2603:10b6:610:60::40) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.34 via Frontend Transport; Mon,
 14 Apr 2025 07:41:44 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CH1PEPF0000AD7A.mail.protection.outlook.com (10.167.244.59) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Mon, 14 Apr 2025 07:41:44 +0000
Received: from penny-System-Product-Name.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; Mon, 14 Apr 2025 02:41:41 -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: edbc6620-1903-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=uHncPC0xlGLtcf5N8Kl+upEIL3JetxpEEJ+Kgk3319rr6g4k1Xl0CAgSqaI7sKMTNKZjbR8HZVmmjeOqSVM9WJaOU8Oj2xtbSRKzYRRWSFLl+2UEHrKjlWTkoBxy68DFTk2P+prz8TaIAOs995jg+6J03S/rqpdyBBIDUDbKRm6/AFN0XzlMIcRU6UPCV9HzvBY2CH13+hUSj56AOI+ncqmPn34HXkrooe2EYezAYJLanYx/44ushDveR1YGatEuPj2IvPrYvYao01Ln0JZcKSpNjz8/YdvLaZuH23Re9VrdxKZCa+VoZeZ/bqzLtsLocIuqaGPWB73akzkQEjdyBw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=fANokxGaerdWPBII5E1qURuV3YfJA1bhgLqXW05YT68=;
 b=xPbOqldZPzV/tHphhI2P80zh9bqIOyRZ2hZVD+alBjuXa9RRulF6WkFovadpVy2TBXP7aKdXiigk1edVCgn1KOEWdX2PFuKKrsAJyNFoEDuvuq+Uf+COdhm8JDbqjmZWjoWFt+7vwOk7v8x3kunrKiUSnwrA3CtWjRus9vUSA+0ZIA01CxORxN6k9RxWgYBcgphXPrNXv15eC0JVt7iMCbfOZCq6Elr13cD9aqOdGgoDgU1D6UC7+cYXNmXnDHV70CKGRX5GOiHjHAUoRHkVthKP14Ngddmv/6tPIxoPdur7OJM1xgjQHFGRDgAP1TEKZOmvD1w5YMo8rPSIC5ECYw==
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=fANokxGaerdWPBII5E1qURuV3YfJA1bhgLqXW05YT68=;
 b=xTH7y6R6QfpUhwBnK+Ksx3oliMEbUA4WETbfSC5bi2Dz4OfWon4dJa8XMBoR/daw4xCwtfZ1IkCaPIhn329MlS9QfImMzjB99Q7VxDN3gOB3GVQDE6dF2IurH8EU6sH9zAaSTefZRofG6/UEKwPE6C0qumrGRtLTLhlsc9ZJqpc=
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: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, "Julien
 Grall" <julien@xen.org>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v4 11/15] xen/x86: implement EPP support for the amd-cppc driver in active mode
Date: Mon, 14 Apr 2025 15:40:52 +0800
Message-ID: <20250414074056.3696888-12-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250414074056.3696888-1-Penny.Zheng@amd.com>
References: <20250414074056.3696888-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: CH1PEPF0000AD7A:EE_|LV2PR12MB5968:EE_
X-MS-Office365-Filtering-Correlation-Id: 3cf8dadf-b36a-4952-05a7-08dd7b27cdc0
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|36860700013|1800799024|376014;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?G/LQY0YG6Wpd5Hy2kebkMNjRenfg0i1M2bvUO29bxqLznhWrIBtF2Arx83zF?=
 =?us-ascii?Q?7jXt102xCXYSVXPyk15YwbR6x9xwurjJp/TyNX37owXddy+Jsj/ngauoYhiS?=
 =?us-ascii?Q?EFMLTV56wr/E46ivqD5suwqBD6qvtcBUiXbCnxCzE1OqXmsGCaBYQxBQ3rws?=
 =?us-ascii?Q?iaKU/nCwfbXAGa4hSxMWo1PhvJ+Wo0t0iFiFdg27mpiCveXxrqxu7+TdpoVD?=
 =?us-ascii?Q?Ey9LJqjbQwa1xOSkl453SUUSkIrNgz2jbTjy4rsAw91iUSrw0utZRWzjnlle?=
 =?us-ascii?Q?bamSsxu3r51BcRbE91AccVl86MFMzPEPP0Yccu298ZVbWhURDK3w/cCCLIi9?=
 =?us-ascii?Q?JLiZtJ/ZYGRJv0bMBdebN+PxgexhBpNqL5WXR0vBWSscnIaa7oON95V1JrZf?=
 =?us-ascii?Q?/wgUZrbZxmWP+Coa6reWoCTlrIFWt5TQbjMjisHTTJmJKjekTHl1sIck2QDe?=
 =?us-ascii?Q?oIkLuRK2Ph4Xki5XlGMGWEkWShnRluG9kMLER19yQlPMW8ybyRRZSajFvQpS?=
 =?us-ascii?Q?UgrJlZEO9h2ouDGSLRbTliQ1fcSdsHkcCQGdxFfEKUyLnDSTLMl4jIkkPAsO?=
 =?us-ascii?Q?XubByWNu9XMf0iy1zOr9F39B0rWER1rljdCx/7nQkBgACMzRypA7NK95lxCP?=
 =?us-ascii?Q?EBsUWq5VqtAt7R8CS1QTZ8t+BYjg9/NMUHrl51awyl7LV2AVpW6BxkbkhpsT?=
 =?us-ascii?Q?Ram1Pzd+vk7oLU2GhaBB7fsj5YW2QB2Cf8EKx9arZuVoSvRaOyf1Q9ouTVw4?=
 =?us-ascii?Q?yOrf0kLvfoWu5At7newoSVg4WcRjBZp3SGTWteY9rX0PXAumTDuhJlYr9LmS?=
 =?us-ascii?Q?2r5IzzDpsOL1D0rhg9dgJWDRZYZ3uNybrVe5qvo/vkF7XNKVFw9bB46Bbp+S?=
 =?us-ascii?Q?bdUdM53jhDYQBIVEYGPouz6CL7ZaGSJaK2FcUz8NNfAaY6SYHjX/W+96GrNs?=
 =?us-ascii?Q?V9OuCtQfTI4ytbZtvBxZ0H/zn4xIQBHJikbGhjF1OVnt/It41dDy+rZfb1Y9?=
 =?us-ascii?Q?hJ+ROYIH8F2LVDLTMLqyJeylHKZa2+UPy864+wDLjioENDceHn6IIMtCXLbD?=
 =?us-ascii?Q?K9yDFjz0ry5XXyOTs5mOhdBGj+TY7iKPEE2BbnubLbQmMtgy/XZ9pKZTRhmf?=
 =?us-ascii?Q?C7bBxlh3088BHk6wqQofIqtwPsyi+3gl1aq0wzN67yxIYkY+aiQCqgfBpji+?=
 =?us-ascii?Q?jxo+nO2RicOFls2itA4mcHwO2DihclyBg3dZB+/IrspjiEom0w++9pKV6I2j?=
 =?us-ascii?Q?BYVGOvbqPiw2RUH8U7UqVht/Z/nHDTRTyyuewyUEdYhQAplYUZQ66+YxMhVb?=
 =?us-ascii?Q?Sr9g2/zWexNaCeOZr1DJv8YmYGelqv9ONCWTTu0q4LJQgU0/vkpvfKWng7gQ?=
 =?us-ascii?Q?caAzHhNBA7JilzZmdShxpJenP5Yo15Y89dqNc/liQz367jlCVuxVcQ11kJ8M?=
 =?us-ascii?Q?U5h/5sd6yJI6uhkLFyTlHzaXn559xZviyxmH9g4e+YuNgcGpMV0nGf+iNicn?=
 =?us-ascii?Q?SPctfxQ8eznL2utkg6L+gJOxidJAztfYd80A?=
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)(1800799024)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Apr 2025 07:41:44.1708
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 3cf8dadf-b36a-4952-05a7-08dd7b27cdc0
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:
	CH1PEPF0000AD7A.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV2PR12MB5968

amd-cppc has 2 operation modes: autonomous (active) mode,
non-autonomous (passive) mode.
In active mode, platform ignores the requestd done in the Desired
Performance Target register and takes into account only the values
set to the minimum, maximum and energy performance preference(EPP)
registers.
The EPP is used in the CCLK DPM controller to drive the frequency
that a core is going to operate during short periods of activity.
The SOC EPP targets are configured on a scale from 0 to 255 where 0
represents maximum performance and 255 represents maximum efficiency.

We implement a new AMD CPU frequency driver `amd-cppc-epp` for active mode.
It requires `active` tag for users to explicitly select active mode.
In driver `active-cppc-epp`, ->setpolicy() is hooked, not the ->target(), as
it does not depend on xen governor to do performance tuning.

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
v1 -> v2:
- Remove redundant epp_mode
- Remove pointless initializer
- Define sole caller read_epp_init_once and epp_init value to read
pre-defined BIOS epp value only once
- Combine the commit "xen/cpufreq: introduce policy type when
cpufreq_driver->setpolicy exists"
---
v2 -> v3:
- Combined with commit "x86/cpufreq: add "cpufreq=amd-cppc,active" para"
- Refactor doc about "active mode"
- Change opt_cpufreq_active to opt_active_mode
- Let caller pass epp_init when unspecified to allow the function parameter
to be of uint8_t
- Make epp_init per-cpu value
---
v3 -> v4:
- doc refinement
- use MASK_EXTR() to get epp value
- fix indentation
- replace if-else() with switch()
- combine successive comments and do refinement
- no need to introduce amd_cppc_epp_update_limit() as a wrapper
- rename cpufreq_parse_policy() with cpufreq_policy_from_governor()
- no need to use case-insensitive comparison
---
 docs/misc/xen-command-line.pandoc    |   8 +-
 xen/arch/x86/acpi/cpufreq/amd-cppc.c | 121 ++++++++++++++++++++++++++-
 xen/arch/x86/include/asm/msr-index.h |   1 +
 xen/drivers/cpufreq/utility.c        |  11 +++
 xen/include/acpi/cpufreq/cpufreq.h   |  12 +++
 xen/include/public/sysctl.h          |   1 +
 6 files changed, 149 insertions(+), 5 deletions(-)

diff --git a/docs/misc/xen-command-line.pandoc b/docs/misc/xen-command-line.pandoc
index 9ef847a336..09f5cb452f 100644
--- a/docs/misc/xen-command-line.pandoc
+++ b/docs/misc/xen-command-line.pandoc
@@ -515,7 +515,7 @@ If set, force use of the performance counters for oprofile, rather than detectin
 available support.
 
 ### cpufreq
-> `= none | {{ <boolean> | xen } { [:[powersave|performance|ondemand|userspace][,[<maxfreq>]][,[<minfreq>]]] } [,verbose]} | dom0-kernel | hwp[:[<hdc>][,verbose]] | amd-cppc[:[verbose]]`
+> `= none | {{ <boolean> | xen } { [:[powersave|performance|ondemand|userspace][,[<maxfreq>]][,[<minfreq>]]] } [,verbose]} | dom0-kernel | hwp[:[<hdc>][,verbose]] | amd-cppc[:[active][,verbose]]`
 
 > Default: `xen`
 
@@ -537,6 +537,12 @@ choice of `dom0-kernel` is deprecated and not supported by all Dom0 kernels.
 * `amd-cppc` selects ACPI Collaborative Performance and Power Control (CPPC)
   on supported AMD hardware to provide finer grained frequency control
   mechanism. The default is disabled.
+* `active` is to enable amd-cppc driver in active(autonomous) mode. In this
+  mode, users could write to energy performance preference register(epp) to
+  tell hardware if they want to bias toward performance or energy efficiency.
+  Then built-in CPPC power algorithm will calculate the runtime workload and
+  adjust cores frequency automatically according to the power supply, thermal,
+  core voltage and some other hardware conditions.
 
 There is also support for `;`-separated fallback options:
 `cpufreq=hwp;xen,verbose`.  This first tries `hwp` and falls back to `xen` if
diff --git a/xen/arch/x86/acpi/cpufreq/amd-cppc.c b/xen/arch/x86/acpi/cpufreq/amd-cppc.c
index 2fdfd17f59..3a576fd4be 100644
--- a/xen/arch/x86/acpi/cpufreq/amd-cppc.c
+++ b/xen/arch/x86/acpi/cpufreq/amd-cppc.c
@@ -30,6 +30,9 @@
         printk(XENLOG_DEBUG "AMD_CPPC: CPU%u " fmt, cpu, ## args);  \
 })
 
+static bool __ro_after_init opt_active_mode;
+static DEFINE_PER_CPU_READ_MOSTLY(uint8_t, epp_init);
+
 struct amd_cppc_drv_data
 {
     const struct xen_processor_cppc *cppc_data;
@@ -76,6 +79,13 @@ static bool __init amd_cppc_handle_option(const char *s, const char *end)
         return true;
     }
 
+    ret = parse_boolean("active", s, end);
+    if ( ret >= 0 )
+    {
+        opt_active_mode = ret;
+        return true;
+    }
+
     return false;
 }
 
@@ -244,11 +254,18 @@ static void cf_check amd_cppc_write_request_msrs(void *info)
 }
 
 static void amd_cppc_write_request(unsigned int cpu, uint8_t min_perf,
-                                   uint8_t des_perf, uint8_t max_perf)
+                                   uint8_t des_perf, uint8_t max_perf,
+                                   uint8_t epp)
 {
     struct amd_cppc_drv_data *data = per_cpu(amd_cppc_drv_data, cpu);
     uint64_t prev = data->req.raw;
 
+    if ( !opt_active_mode )
+        data->req.des_perf = des_perf;
+    else
+        data->req.des_perf = 0;
+    data->req.epp = epp;
+
     data->req.min_perf = min_perf;
     data->req.max_perf = max_perf;
     data->req.des_perf = des_perf;
@@ -259,6 +276,14 @@ static void amd_cppc_write_request(unsigned int cpu, uint8_t min_perf,
     on_selected_cpus(cpumask_of(cpu), amd_cppc_write_request_msrs, data, 1);
 }
 
+static void read_epp_init(void)
+{
+    uint64_t val;
+
+    rdmsrl(MSR_AMD_CPPC_REQ, val);
+    this_cpu(epp_init) = MASK_EXTR(val, AMD_CPPC_EPP_MASK);
+}
+
 static int cf_check amd_cppc_cpufreq_target(struct cpufreq_policy *policy,
                                             unsigned int target_freq,
                                             unsigned int relation)
@@ -280,7 +305,10 @@ static int cf_check amd_cppc_cpufreq_target(struct cpufreq_policy *policy,
      * performance in P-state range.
      */
     amd_cppc_write_request(policy->cpu, data->caps.lowest_nonlinear_perf,
-                           des_perf, data->caps.highest_perf);
+                           des_perf, data->caps.highest_perf,
+                           /* Pre-defined BIOS value for passive mode */
+                           per_cpu(epp_init, policy->cpu));
+
     return 0;
 }
 
@@ -360,6 +388,8 @@ static void cf_check amd_cppc_init_msrs(void *info)
      */
     policy->cur = cpufreq_driver_getavg(policy->cpu, GOV_GETAVG);
 
+    read_epp_init();
+
     return;
 
  err:
@@ -393,7 +423,7 @@ static int cf_check amd_cppc_cpufreq_cpu_exit(struct cpufreq_policy *policy)
     return 0;
 }
 
-static int cf_check amd_cppc_cpufreq_cpu_init(struct cpufreq_policy *policy)
+static int amd_cppc_cpufreq_init_perf(struct cpufreq_policy *policy)
 {
     unsigned int cpu = policy->cpu;
     struct amd_cppc_drv_data *data;
@@ -434,12 +464,82 @@ static int cf_check amd_cppc_cpufreq_cpu_init(struct cpufreq_policy *policy)
 
     amd_cppc_boost_init(policy, data);
 
+    return 0;
+}
+
+static int cf_check amd_cppc_cpufreq_cpu_init(struct cpufreq_policy *policy)
+{
+    int ret;
+
+    ret = amd_cppc_cpufreq_init_perf(policy);
+    if ( ret )
+        return ret;
+
     amd_cppc_verbose(policy->cpu,
                      "CPU initialized with amd-cppc passive mode\n");
 
     return 0;
 }
 
+static int cf_check amd_cppc_epp_cpu_init(struct cpufreq_policy *policy)
+{
+    int ret;
+
+    ret = amd_cppc_cpufreq_init_perf(policy);
+    if ( ret )
+        return ret;
+
+    policy->policy = cpufreq_policy_from_governor(policy->governor);
+
+    amd_cppc_verbose(policy->cpu,
+                     "CPU initialized with amd-cppc active mode\n");
+
+    return 0;
+}
+
+static int cf_check amd_cppc_epp_set_policy(struct cpufreq_policy *policy)
+{
+    const struct amd_cppc_drv_data *data = per_cpu(amd_cppc_drv_data,
+                                                   policy->cpu);
+    uint8_t max_perf, min_perf, epp;
+
+    /*
+     * Initial min/max values for CPPC Performance Controls Register.
+     * Continuous CPPC performance scale in active mode is [lowest_perf,
+     * highest_perf]
+     */
+    max_perf = data->caps.highest_perf;
+    min_perf = data->caps.lowest_perf;
+
+    /*
+     * As min_perf sets the idle frequency and max_perf sets the maximum
+     * frequency, we make min_perf equal with max_perf in performance mode
+     * and lower max_perf to the nominal perf in powersave mode, to achieve
+     * ultmost performance and efficiency in each mode.
+     */
+    switch ( policy->policy )
+    {
+    case CPUFREQ_POLICY_PERFORMANCE:
+        /* Force the epp value to be zero for performance policy */
+        epp = CPPC_ENERGY_PERF_MAX_PERFORMANCE;
+        min_perf = max_perf;
+        break;
+    case CPUFREQ_POLICY_POWERSAVE:
+        /* Force the epp value to be 0xff for powersave policy */
+        epp = CPPC_ENERGY_PERF_MAX_POWERSAVE;
+        max_perf = data->caps.nominal_perf;
+        break;
+    default:
+        epp = per_cpu(epp_init, policy->cpu);
+        break;
+    }
+
+    amd_cppc_write_request(policy->cpu, min_perf,
+                           0 /* no des_perf for epp mode */,
+                           max_perf, epp);
+    return 0;
+}
+
 static const struct cpufreq_driver __initconst_cf_clobber
 amd_cppc_cpufreq_driver =
 {
@@ -450,6 +550,16 @@ amd_cppc_cpufreq_driver =
     .exit   = amd_cppc_cpufreq_cpu_exit,
 };
 
+static const struct cpufreq_driver __initconst_cf_clobber
+amd_cppc_epp_driver =
+{
+    .name       = XEN_AMD_CPPC_EPP_DRIVER_NAME,
+    .verify     = amd_cppc_cpufreq_verify,
+    .setpolicy  = amd_cppc_epp_set_policy,
+    .init       = amd_cppc_epp_cpu_init,
+    .exit       = amd_cppc_cpufreq_cpu_exit,
+};
+
 int __init amd_cppc_register_driver(void)
 {
     int ret;
@@ -460,7 +570,10 @@ int __init amd_cppc_register_driver(void)
         return -ENODEV;
     }
 
-    ret = cpufreq_register_driver(&amd_cppc_cpufreq_driver);
+    if ( opt_active_mode )
+        ret = cpufreq_register_driver(&amd_cppc_epp_driver);
+    else
+        ret = cpufreq_register_driver(&amd_cppc_cpufreq_driver);
     if ( ret )
         return ret;
 
diff --git a/xen/arch/x86/include/asm/msr-index.h b/xen/arch/x86/include/asm/msr-index.h
index 3ffa613df0..d29d1d33aa 100644
--- a/xen/arch/x86/include/asm/msr-index.h
+++ b/xen/arch/x86/include/asm/msr-index.h
@@ -242,6 +242,7 @@
 #define MSR_AMD_CPPC_ENABLE                 0xc00102b1U
 #define  AMD_CPPC_ENABLE                    (_AC(1, ULL) <<  0)
 #define MSR_AMD_CPPC_REQ                    0xc00102b3U
+#define  AMD_CPPC_EPP_MASK                  (_AC(0xff, ULL) <<  24)
 
 /*
  * Legacy MSR constants in need of cleanup.  No new MSRs below this comment.
diff --git a/xen/drivers/cpufreq/utility.c b/xen/drivers/cpufreq/utility.c
index b35e2eb1b6..2617581125 100644
--- a/xen/drivers/cpufreq/utility.c
+++ b/xen/drivers/cpufreq/utility.c
@@ -487,3 +487,14 @@ int __cpufreq_set_policy(struct cpufreq_policy *data,
 
     return __cpufreq_governor(data, CPUFREQ_GOV_LIMITS);
 }
+
+unsigned int cpufreq_policy_from_governor(const struct cpufreq_governor *gov)
+{
+    if ( !strncmp(gov->name, "performance", CPUFREQ_NAME_LEN) )
+        return CPUFREQ_POLICY_PERFORMANCE;
+
+    if ( !strncmp(gov->name, "powersave", CPUFREQ_NAME_LEN) )
+        return CPUFREQ_POLICY_POWERSAVE;
+
+    return CPUFREQ_POLICY_UNKNOWN;
+}
diff --git a/xen/include/acpi/cpufreq/cpufreq.h b/xen/include/acpi/cpufreq/cpufreq.h
index 83050c58b2..6f31009e82 100644
--- a/xen/include/acpi/cpufreq/cpufreq.h
+++ b/xen/include/acpi/cpufreq/cpufreq.h
@@ -83,6 +83,7 @@ struct cpufreq_policy {
     int8_t              turbo;  /* tristate flag: 0 for unsupported
                                  * -1 for disable, 1 for enabled
                                  * See CPUFREQ_TURBO_* below for defines */
+    unsigned int        policy; /* CPUFREQ_POLICY_* */
 };
 DECLARE_PER_CPU(struct cpufreq_policy *, cpufreq_cpu_policy);
 
@@ -133,6 +134,17 @@ extern int cpufreq_register_governor(struct cpufreq_governor *governor);
 extern struct cpufreq_governor *__find_governor(const char *governor);
 #define CPUFREQ_DEFAULT_GOVERNOR &cpufreq_gov_dbs
 
+#define CPUFREQ_POLICY_UNKNOWN      0
+/*
+ * If cpufreq_driver->target() exists, the ->governor decides what frequency
+ * within the limits is used. If cpufreq_driver->setpolicy() exists, these
+ * two generic policies are available:
+ */
+#define CPUFREQ_POLICY_POWERSAVE    1
+#define CPUFREQ_POLICY_PERFORMANCE  2
+
+unsigned int cpufreq_policy_from_governor(const struct cpufreq_governor *gov);
+
 /* pass a target to the cpufreq driver */
 extern int __cpufreq_driver_target(struct cpufreq_policy *policy,
                                    unsigned int target_freq,
diff --git a/xen/include/public/sysctl.h b/xen/include/public/sysctl.h
index 42997252ef..fa431fd983 100644
--- a/xen/include/public/sysctl.h
+++ b/xen/include/public/sysctl.h
@@ -424,6 +424,7 @@ struct xen_set_cppc_para {
 };
 
 #define XEN_AMD_CPPC_DRIVER_NAME "amd-cppc"
+#define XEN_AMD_CPPC_EPP_DRIVER_NAME "amd-cppc-epp"
 #define XEN_HWP_DRIVER_NAME "hwp"
 
 /*
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Apr 14 07:53:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 07:53:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.949257.1345861 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4Ecy-0000f9-DE; Mon, 14 Apr 2025 07:53:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 949257.1345861; Mon, 14 Apr 2025 07: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 1u4Ecy-0000f2-AR; Mon, 14 Apr 2025 07:53:12 +0000
Received: by outflank-mailman (input) for mailman id 949257;
 Mon, 14 Apr 2025 07:53: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=KQal=XA=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1u4ES9-0008Gw-4R
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 07:42:01 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on20618.outbound.protection.outlook.com
 [2a01:111:f403:2414::618])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ee69063e-1903-11f0-9ffb-bf95429c2676;
 Mon, 14 Apr 2025 09:41:53 +0200 (CEST)
Received: from CH2PR10CA0027.namprd10.prod.outlook.com (2603:10b6:610:4c::37)
 by LV2PR12MB5821.namprd12.prod.outlook.com (2603:10b6:408:17a::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.28; Mon, 14 Apr
 2025 07:41:49 +0000
Received: from CH1PEPF0000AD78.namprd04.prod.outlook.com
 (2603:10b6:610:4c:cafe::b5) by CH2PR10CA0027.outlook.office365.com
 (2603:10b6:610:4c::37) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.34 via Frontend Transport; Mon,
 14 Apr 2025 07:41:49 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CH1PEPF0000AD78.mail.protection.outlook.com (10.167.244.56) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Mon, 14 Apr 2025 07:41:49 +0000
Received: from penny-System-Product-Name.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; Mon, 14 Apr 2025 02:41:47 -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: ee69063e-1903-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=EpWKGnbx8H0C1gEOaMKkwAmKZPMz4c/ffzsiMCO7TyfLVxHoVFnccua0cLQEiqJcL3xeEhCcCA/pLV5yPu2/z2Z9EvDQzcMLWy3xWKuClmTO/fEnbPQYVW+ZjU3tjbU8w3+zQPcaG8B2To5n691ac9sAZuWAKV42VspbDWDpOyJJkg/F3HBeYYLpPDqmaZqMBgCDutJpqJTWP6daDk4Ery7YVm62y4UegDb81NUX+THUI8Y1RlHHT1Q3kGeI0W+6NiebnGlVvrh9sqtwNU2waQoQ10epG/RioQ20ZukHENvRxx/tVPx71Q+LaOYVGEyAIKGrb2aqvEl3rCovhh3Srw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=jQ6IKFwoOiNVPqUnYMNxWzVc31zW/m6vlk2dZys3K5Q=;
 b=tMYu42lpZ7chyjhHHS7HW/yLeNpUPUdGlVVme48umsGGmkmVDYJ3ljMWabg1j+CxDg0rK2nEVpLxbeLGMFGUCCjyGnIkhAOs/KqtTJlPg3isOApVOZKhlSqFUzUOW/AZsUnVo8NXr04mtC/eHiD7RwWCNfji6n9zREobJ3D5z2X58k2SGX4tzVluaQzv42BrYWdS1oJSJZ2+bymr1GMF2pqgcFUe/hc4/3Dolxz4W59ajAaGCLcZkkEw2Nv/7XrM10ebobBHwadNYnP2DFGdAhiv2kYnBp158SnPOj4SLv8ogU93OtUdVg2vnrhfWC6cSVx8zTv5a7oGDPiLTHu3bQ==
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=jQ6IKFwoOiNVPqUnYMNxWzVc31zW/m6vlk2dZys3K5Q=;
 b=Id9zIId1p+qRHDUb9RldAz0CZCnd163Kqrg3cThKYS3YQmWvIOreA83b76A38HP39RxT8Xn6T3kWtUS+V2KeWheeWpP68W2hqHahXkKJMX7v3xat+dEB1/g+T0gihWGxAfuWK8Jfu0TBFzgXbSg/xDqNw6h1dPSiclJgjXi5D0o=
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: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.com>, Anthony PERARD
	<anthony.perard@vates.tech>
Subject: [PATCH v4 14/15] tools/xenpm: remove px_cap dependency check for average frequency
Date: Mon, 14 Apr 2025 15:40:55 +0800
Message-ID: <20250414074056.3696888-15-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250414074056.3696888-1-Penny.Zheng@amd.com>
References: <20250414074056.3696888-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: CH1PEPF0000AD78:EE_|LV2PR12MB5821:EE_
X-MS-Office365-Filtering-Correlation-Id: 678c420f-26bf-4cc7-ba00-08dd7b27d0fa
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?5SZxmmSOoZG1p3ARfzPgCl+QQf1W1JX8TAhY0qYhWUfl0XXJi01uAK0NsuHh?=
 =?us-ascii?Q?Hqpf4HVq/zUGXmqHSzrX74mc9x4KM0tFhWY7yk0r9JgdA65voi2JXxA5K7VD?=
 =?us-ascii?Q?1KBlq6mo2yWTlwJJRoX4L2Tf0o9Z1v+wk+KRkdJ8WDtNQs6Xsz9jfEVT1FIE?=
 =?us-ascii?Q?hkD+OmoJ83FViZ4jBzuaSsArXVHzZl00ufcGoBsgPlhRJaFMU1ySENs7b1Ca?=
 =?us-ascii?Q?XdCbZxk70IFu8i71u1ZX6RSzO/7AIMCuZNkLG88s+J7HOlU25Is7oQ48K6XW?=
 =?us-ascii?Q?r/51CdqBH2wiO2G2WiwP80Pn1DHleW168T93uc+erEv91lSZcjyAyPizgCNe?=
 =?us-ascii?Q?1OgH7c4HhT9bAUEKJ6iAycw0oQcm/6UZyY0lO8GzCBjl5cfc1p5nGMKfAJHK?=
 =?us-ascii?Q?qtzGdDeKPAj7rJ5DSCfjRORxISBV7g6dr9yoZDhGDwanvc3UEaFAeH8nk/Yh?=
 =?us-ascii?Q?5wnQlNN0luNCQeS3Z5bHzTy/4IeznZFrCagz7t67NdUGohV8BLuWhibg9CEP?=
 =?us-ascii?Q?A6uIg8CelcqRBC2W7LKRlV9g+qyY2Td7hzslnw/MwH+GnyG27+uFuko4t0By?=
 =?us-ascii?Q?Zi2MVFy3CzSKPO9B0uebUJ5h5ZtK5FOJk+T7jKvZp5/x2LFhruXcLyomMmFC?=
 =?us-ascii?Q?DZ4k0wYYSYiEuu/2k7Q7h4BT3IxTrrOsfIxf6HO+dfvs1BVGUAhBilZn7/Mk?=
 =?us-ascii?Q?rQif9+LBYz53gyUgXeuE/yWb+3mJoeJxejmk4p4eY4ESAtj85FT1Ng/xlaHr?=
 =?us-ascii?Q?phRBgpvZ+i5NLWPGnThTXp7rFzaUJyWrSiLHC8jkxdysqQXj1ZcXcWw7As8C?=
 =?us-ascii?Q?aViTu45D2aJnw36qtMhyqu7+ICUQGWJ5W91NJUQgLlvcAO74NlZciUe6n8ZV?=
 =?us-ascii?Q?+uXqiCwqZ2yHvUmmBHFDUQfCPNdz8nD7NNxYpWM84QdAhlpa6+kYASTp94ot?=
 =?us-ascii?Q?ihKgxHzPuBlUYiEpn/sOTNKw9avddcvR4cR01yLS/5rSoVrcjLqFfi9ip9Nc?=
 =?us-ascii?Q?DFVnl7OvT++jTUSTM67TLREARcHbe9qjRyxy2jF99U7MsrjcljUqaBwlTr/D?=
 =?us-ascii?Q?oI+vTpqwg7tP19uz/4lAHVtKi4wRvAGAc0ImVFnVj0Nmv5ELmOn36fgfDh3B?=
 =?us-ascii?Q?MwIeUI3DQyOse5aZTiWKsBXgRYvnUJFi6kOfMNvEnkbLWk4dBfLPQjfYWMw/?=
 =?us-ascii?Q?Njuid0NJe2Z92ZNJ0AZUd9Iaze3dsYr9OguPtBrk6FRQFBgXG6GFVRNHVbxU?=
 =?us-ascii?Q?z9T7ue3kNcHJQrFecGE6YTx6gXdFyj1qQG5iXjBIlea6MhNKC+sj2wCNNkDq?=
 =?us-ascii?Q?K6OD1TlKcZvSF51Nzi26Zdy3us6TDoZ//prqR5LGKa0zwtVEs9RyQvQVBkBO?=
 =?us-ascii?Q?71Q8JpEJs6lGje0Bn/XXR28assJD1MEYNPdPQbMneukg37eGWjUMCHxpeEG4?=
 =?us-ascii?Q?E0OigxnQwQE7rFETbtMNIlQJPlAfn31kUOmQmvSWG/AJHINTw1v/zAcReOux?=
 =?us-ascii?Q?uZaDP4akKL51/vxxsZQdqkmCDuQOAkF9Cs7p?=
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: 14 Apr 2025 07:41:49.5730
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 678c420f-26bf-4cc7-ba00-08dd7b27d0fa
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:
	CH1PEPF0000AD78.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV2PR12MB5821

In `xenpm start` command, the monitor of average frequency shall
not depend on the existence of legacy P-states, so removing "px_cap"
dependancy check.

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
v3 -> v4:
- new commit
---
 tools/misc/xenpm.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/misc/xenpm.c b/tools/misc/xenpm.c
index 29fffebebd..b823e5c433 100644
--- a/tools/misc/xenpm.c
+++ b/tools/misc/xenpm.c
@@ -539,7 +539,7 @@ static void signal_int_handler(int signo)
                         res / 1000000UL, 100UL * res / (double)sum_px[i]);
             }
         }
-        if ( px_cap && avgfreq[i] )
+        if ( avgfreq[i] )
             printf("  Avg freq\t%d\tKHz\n", avgfreq[i]);
     }
 
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Apr 14 07:53:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 07:53:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.949266.1345870 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4EdC-0001BO-PX; Mon, 14 Apr 2025 07:53:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 949266.1345870; Mon, 14 Apr 2025 07:53: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 1u4EdC-0001AZ-MR; Mon, 14 Apr 2025 07:53:26 +0000
Received: by outflank-mailman (input) for mailman id 949266;
 Mon, 14 Apr 2025 07:53: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=KQal=XA=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1u4ESL-0000Ks-LT
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 07:42:13 +0000
Received: from NAM11-CO1-obe.outbound.protection.outlook.com
 (mail-co1nam11on2061c.outbound.protection.outlook.com
 [2a01:111:f403:2416::61c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f1952a7b-1903-11f0-9eae-5ba50f476ded;
 Mon, 14 Apr 2025 09:41:59 +0200 (CEST)
Received: from CH2PR11CA0013.namprd11.prod.outlook.com (2603:10b6:610:54::23)
 by DM4PR12MB7528.namprd12.prod.outlook.com (2603:10b6:8:110::17) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.34; Mon, 14 Apr
 2025 07:41:51 +0000
Received: from CH1PEPF0000AD74.namprd04.prod.outlook.com
 (2603:10b6:610:54:cafe::e8) by CH2PR11CA0013.outlook.office365.com
 (2603:10b6:610:54::23) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.34 via Frontend Transport; Mon,
 14 Apr 2025 07:41:51 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CH1PEPF0000AD74.mail.protection.outlook.com (10.167.244.52) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Mon, 14 Apr 2025 07:41:51 +0000
Received: from penny-System-Product-Name.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; Mon, 14 Apr 2025 02:41:49 -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: f1952a7b-1903-11f0-9eae-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=phKIpdBRFbM1222vzf9Kq89EbGL13tRXj7ttuZ8c+6v/wqwn5ZAQMU7x7of/Ir2pIS3rWWjk6aE/tdCDpg6sPVACeN2Yr9hdpNyw+OayCaMcZsMf5WzIdrafJ/KUtudOPAhdJen4eFQqUPrNwhsO2lmEVaa77GNrdiH0W6GsqxVA/v2UlFPPemF4b5EXbF+ntkTJvgcy9PsJ3WIO7cNgu7D5g1YqXfF0vkstctonPoMZtFrw5mMbWnbONMv1T4pN7bs5UmErpxgSKk09szHvLES5I1g7og9kwYN+GBq4F3EgtnnMe9u3AhCIWQDR4cV6YaUuMyIK34yLBqeb2vmWHw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=/hKQBCnl75VVvvg8dGxR6aY0UyWkw8GIJ3S7e5wWPNo=;
 b=wMrKaOShTT32UFOIqCK4mzHV5WIo/Bi7oUkEXd9NqNs+GjRge554ZBl2/gGea8zvaWwzEs8L+vf6VyveBNsqqFIQbq1r0+KeuKsLSeWtLqgb3FK5P6wgwDgbafT1VMhhkFkaji0ahzrgSipAsS3Yir2XkGAfOtK7kwxx0s9Q7IrjAdf1V9RUX7xrbQX7lQyYWpItjuq8D9OUC8cDGEVPbWiqj/6OTPup6APbjDnlqq3p3NlFz/5lpCstFQoj48CE8S6mdo961THIVNtNO380pUMpmLB398G1dDvjVcxqw2nv3C0hO37bMk0C2R1w+DMDIoJJzkTQjSk+38ET9degfg==
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=/hKQBCnl75VVvvg8dGxR6aY0UyWkw8GIJ3S7e5wWPNo=;
 b=KXhje4o1OjSpk2IxGwq6kjj0H9bj3YScmPVUjiVUG97CMF3nuhJyqsgoxu6F0/Jni63V2x+3Ti662leUw8RuTBJhkr2hhGVfQnBTVDthmuxjxiMH/gqr7NL5BhJR1WgKVbIzmuGoev4XcOP/NcyZaACWu9C+dcW8UuIj0A7ePt4=
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: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v4 15/15] xen/xenpm: Adapt SET/GET_CPUFREQ_CPPC xen_sysctl_pm_op for amd-cppc driver
Date: Mon, 14 Apr 2025 15:40:56 +0800
Message-ID: <20250414074056.3696888-16-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250414074056.3696888-1-Penny.Zheng@amd.com>
References: <20250414074056.3696888-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: CH1PEPF0000AD74:EE_|DM4PR12MB7528:EE_
X-MS-Office365-Filtering-Correlation-Id: e6c43744-ebba-49d2-20f1-08dd7b27d22c
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?rL+MJ9KwDkH0LiIkxDf6BbUKQqHtfPfoUajdf1ryzOhM72ViDssMRursM77Z?=
 =?us-ascii?Q?UvsGWBz0NSe0CdzfsMDYBe9jCxvoPDkQDVLNJZiXXWcDE9yW+qxquX2IrG7V?=
 =?us-ascii?Q?9iMbDp9kcip8UlfmT/yUjjbEAGHbAShBSjwMcQbHswrRlTR2bHWfLYyq1UMo?=
 =?us-ascii?Q?31jMT7xt1VuekZ5BdRvyCjGzq13XNguBUI5fNTDZ48bH+nuzrVwF6NzDyEWh?=
 =?us-ascii?Q?BycaPVahwC1Uq0cljtjUFodTeQIPctwzcL15GLu/wlgtTTltK3YIdkscRZ83?=
 =?us-ascii?Q?qufkJjcjo7C2/MkzyoKeR2NgFEaC3aopwra6mbHc1EeMeOlGjuFlSEWE2kSr?=
 =?us-ascii?Q?gqb7VNeYSWlgV+GmozxEXtxls/MtMtDGZ80KLWnf+j55jM9kWjZoMhX7fSRD?=
 =?us-ascii?Q?ksGKcVmY/KXyum4kLWSLgk6rhKoORwA88t/H2VPjEyL5s3DsdUvbD9S94kPq?=
 =?us-ascii?Q?WQe3oYpw8cWx8TLqmhQQQnoa7axPDVBgQhWo9Zq/mrliZc9sCL5dvfzNzpxX?=
 =?us-ascii?Q?QHNWQB8ZjPhTeRD0tzTE5q9SgzDLtfZ2WB0qWc4PLU1uwOEjkRFSj4/JyIAy?=
 =?us-ascii?Q?v15c5KQ/nbiNZZWU6f7qbS+XrqXvbMdF2cQYN6lK9mJC8B4+1gtd1yHxwVgk?=
 =?us-ascii?Q?JH7bWlQq47vpojou9d/S/gz++IvaRyDizXEl5+ZDRYI1dJDnLknbCEk+f/0M?=
 =?us-ascii?Q?PUdCf/pNg4TYs4s+t8/RFnNhf9dC+7CuB8Q9Yjqk51rgIOg1dUAkq2/QM5kI?=
 =?us-ascii?Q?X3eYkYPWZV4BlVH8OkFvG05CMn1JiWfWUdd885FdFS8hddyAYlTWAZkVHWrD?=
 =?us-ascii?Q?zyV86Hh5KNAb/MYoAfR2Fa7ux/tmy9TfSgSB8QNA0tJww56NzL7N3oMymOpV?=
 =?us-ascii?Q?S2sFhDH6ffx+AiZRsAsD64+NXbD1IWR1J2R3Yy/SWU+rCoiahAF5O1mRV2k4?=
 =?us-ascii?Q?tGlK11VorcsJelpIhsjWIZn47yBsI74Lm61uIxVpXbw4sb3IJvNmmhzJRAEQ?=
 =?us-ascii?Q?B1l3GQ/n6st8MAGyY1JGulc632zeSR1nIUIfomFetPVTW98LaH5MM7fDpyxM?=
 =?us-ascii?Q?Yn9xoGo3M71pnXD2ggpOMDdk2b1yGTArJeOb1+3z1ogg/DcFCKkgcNcj5HKP?=
 =?us-ascii?Q?2oS6vaoZJ1GXyvzN8Ogns6L6XJ5WJiTsE/J551AlxalY3Tku/F9ywLdMlMBL?=
 =?us-ascii?Q?hbYLvGT2nMNTB+0rkkbJJIzGMRl9ibuv3K+83Yu4gfCxH4TteTSJcUOaAdKJ?=
 =?us-ascii?Q?CYd9MPBvFcc7srQ/FedP94Rmp4TVw9at3MJv6suLggXc/hrBzPUZ9YE5rYsQ?=
 =?us-ascii?Q?4k/Gyxei75nNnXlB1S4SeUUlR+yaPXLmeZtTyZwg7cHdJZZJLGcwBNwPfgZt?=
 =?us-ascii?Q?NLi5DzQB17HGCWswOFPh90p3ucdM41U/nbhprN7n9fZl2uy1Ph/eeA4cIJvG?=
 =?us-ascii?Q?NUJVryPswyFiySecqa+t6xhwzQCHedIq6pCTvbo0J20T5dPfxjbUubpkV6vy?=
 =?us-ascii?Q?IfLyX7OZsbJdB31RFfto/eAdgk1NmzC2dwbV?=
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)(82310400026)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Apr 2025 07:41:51.5901
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: e6c43744-ebba-49d2-20f1-08dd7b27d22c
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:
	CH1PEPF0000AD74.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB7528

Introduce helper set_amd_cppc_para and get_amd_cppc_para to
SET/GET CPPC-related para for amd-cppc/amd-cppc-epp driver.

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
v1 -> v2:
- Give the variable des_perf an initializer of 0
- Use the strncmp()s directly in the if()
---
v3 -> v4
- refactor comments
- remove double blank lines
- replace amd_cppc_in_use flag with XEN_PROCESSOR_PM_CPPC
---
 xen/arch/x86/acpi/cpufreq/amd-cppc.c | 121 +++++++++++++++++++++++++++
 xen/drivers/acpi/pmstat.c            |  22 ++++-
 xen/include/acpi/cpufreq/cpufreq.h   |   4 +
 3 files changed, 143 insertions(+), 4 deletions(-)

diff --git a/xen/arch/x86/acpi/cpufreq/amd-cppc.c b/xen/arch/x86/acpi/cpufreq/amd-cppc.c
index 3a576fd4be..95d04bf77a 100644
--- a/xen/arch/x86/acpi/cpufreq/amd-cppc.c
+++ b/xen/arch/x86/acpi/cpufreq/amd-cppc.c
@@ -540,6 +540,127 @@ static int cf_check amd_cppc_epp_set_policy(struct cpufreq_policy *policy)
     return 0;
 }
 
+int get_amd_cppc_para(unsigned int cpu,
+                      struct xen_cppc_para *cppc_para)
+{
+    const struct amd_cppc_drv_data *data = per_cpu(amd_cppc_drv_data, cpu);
+
+    if ( data == NULL )
+        return -ENODATA;
+
+    cppc_para->features         = 0;
+    cppc_para->lowest           = data->caps.lowest_perf;
+    cppc_para->lowest_nonlinear = data->caps.lowest_nonlinear_perf;
+    cppc_para->nominal          = data->caps.nominal_perf;
+    cppc_para->highest          = data->caps.highest_perf;
+    cppc_para->minimum          = data->req.min_perf;
+    cppc_para->maximum          = data->req.max_perf;
+    cppc_para->desired          = data->req.des_perf;
+    cppc_para->energy_perf      = data->req.epp;
+
+    return 0;
+}
+
+int set_amd_cppc_para(const struct cpufreq_policy *policy,
+                      const struct xen_set_cppc_para *set_cppc)
+{
+    unsigned int cpu = policy->cpu;
+    struct amd_cppc_drv_data *data = per_cpu(amd_cppc_drv_data, cpu);
+    uint8_t max_perf, min_perf, des_perf = 0, epp;
+
+    if ( data == NULL )
+        return -ENOENT;
+
+    /* Validate all parameters - Disallow reserved bits. */
+    if ( set_cppc->minimum > UINT8_MAX || set_cppc->maximum > UINT8_MAX ||
+         set_cppc->desired > UINT8_MAX || set_cppc->energy_perf > UINT8_MAX )
+        return -EINVAL;
+
+    /* Only allow values if params bit is set. */
+    if ( (!(set_cppc->set_params & XEN_SYSCTL_CPPC_SET_DESIRED) &&
+          set_cppc->desired) ||
+         (!(set_cppc->set_params & XEN_SYSCTL_CPPC_SET_MINIMUM) &&
+          set_cppc->minimum) ||
+         (!(set_cppc->set_params & XEN_SYSCTL_CPPC_SET_MAXIMUM) &&
+          set_cppc->maximum) ||
+         (!(set_cppc->set_params & XEN_SYSCTL_CPPC_SET_ENERGY_PERF) &&
+          set_cppc->energy_perf) )
+        return -EINVAL;
+
+    /* Activity window not supported in MSR */
+    if ( set_cppc->set_params & XEN_SYSCTL_CPPC_SET_ACT_WINDOW )
+        return -EOPNOTSUPP;
+
+    /* Return if there is nothing to do. */
+    if ( set_cppc->set_params == 0 )
+        return 0;
+
+    epp = per_cpu(epp_init, cpu);
+    /*
+     * Apply presets:
+     * XEN_SYSCTL_CPPC_SET_DESIRED reflects whether desired perf is set, which
+     * is also the flag to distiguish between passive mode and active mode.
+     * When it is set, CPPC in passive mode, only
+     * XEN_SYSCTL_CPPC_SET_PRESET_NONE could be chosen, where min_perf =
+     * lowest_nonlinear_perf to ensures performance in P-state range.
+     * when it is not set, CPPC in active mode, three different profile
+     * XEN_SYSCTL_CPPC_SET_PRESET_POWERSAVE/PERFORMANCE/BALANCE are provided,
+     * where min_perf = lowest_perf having T-state range of performance.
+     */
+    switch ( set_cppc->set_params & XEN_SYSCTL_CPPC_SET_PRESET_MASK )
+    {
+    case XEN_SYSCTL_CPPC_SET_PRESET_POWERSAVE:
+        if ( set_cppc->set_params & XEN_SYSCTL_CPPC_SET_DESIRED )
+            return -EINVAL;
+        min_perf = data->caps.lowest_perf;
+        /* Lower max frequency to nominal */
+        max_perf = data->caps.nominal_perf;
+        epp = CPPC_ENERGY_PERF_MAX_POWERSAVE;
+        break;
+
+    case XEN_SYSCTL_CPPC_SET_PRESET_PERFORMANCE:
+        if ( set_cppc->set_params & XEN_SYSCTL_CPPC_SET_DESIRED )
+            return -EINVAL;
+        /* Increase idle frequency to highest */
+        min_perf = data->caps.highest_perf;
+        max_perf = data->caps.highest_perf;
+        epp = CPPC_ENERGY_PERF_MAX_PERFORMANCE;
+        break;
+
+    case XEN_SYSCTL_CPPC_SET_PRESET_BALANCE:
+        if ( set_cppc->set_params & XEN_SYSCTL_CPPC_SET_DESIRED )
+            return -EINVAL;
+        min_perf = data->caps.lowest_perf;
+        max_perf = data->caps.highest_perf;
+        epp = CPPC_ENERGY_PERF_BALANCE;
+        break;
+
+    case XEN_SYSCTL_CPPC_SET_PRESET_NONE:
+        min_perf = data->caps.lowest_nonlinear_perf;
+        max_perf = data->caps.highest_perf;
+        break;
+
+    default:
+        return -EINVAL;
+    }
+
+    /* Further customize presets if needed */
+    if ( set_cppc->set_params & XEN_SYSCTL_CPPC_SET_MINIMUM )
+        min_perf = set_cppc->minimum;
+
+    if ( set_cppc->set_params & XEN_SYSCTL_CPPC_SET_MAXIMUM )
+        max_perf = set_cppc->maximum;
+
+    if ( set_cppc->set_params & XEN_SYSCTL_CPPC_SET_ENERGY_PERF )
+        epp = set_cppc->energy_perf;
+
+    if ( set_cppc->set_params & XEN_SYSCTL_CPPC_SET_DESIRED )
+        des_perf = set_cppc->desired;
+
+    amd_cppc_write_request(cpu, min_perf, des_perf, max_perf, epp);
+    return 0;
+}
+
 static const struct cpufreq_driver __initconst_cf_clobber
 amd_cppc_cpufreq_driver =
 {
diff --git a/xen/drivers/acpi/pmstat.c b/xen/drivers/acpi/pmstat.c
index 83cfef398e..876d82036d 100644
--- a/xen/drivers/acpi/pmstat.c
+++ b/xen/drivers/acpi/pmstat.c
@@ -257,7 +257,18 @@ static int get_cpufreq_para(struct xen_sysctl_pm_op *op)
          !strncmp(op->u.get_para.scaling_driver, XEN_HWP_DRIVER_NAME,
                   CPUFREQ_NAME_LEN) )
         ret = get_hwp_para(policy->cpu, &op->u.get_para.u.cppc_para);
-    else
+    else if ( !strncmp(op->u.get_para.scaling_driver,
+                       XEN_AMD_CPPC_DRIVER_NAME,
+                       CPUFREQ_NAME_LEN) ||
+              !strncmp(op->u.get_para.scaling_driver,
+                       XEN_AMD_CPPC_EPP_DRIVER_NAME,
+                       CPUFREQ_NAME_LEN) )
+        ret = get_amd_cppc_para(policy->cpu, &op->u.get_para.u.cppc_para);
+
+    if ( strncmp(op->u.get_para.scaling_driver, XEN_HWP_DRIVER_NAME,
+                 CPUFREQ_NAME_LEN) &&
+         strncmp(op->u.get_para.scaling_driver, XEN_AMD_CPPC_EPP_DRIVER_NAME,
+                 CPUFREQ_NAME_LEN) )
     {
         if ( !(scaling_available_governors =
                xzalloc_array(char, gov_num * CPUFREQ_NAME_LEN)) )
@@ -413,10 +424,13 @@ static int set_cpufreq_cppc(struct xen_sysctl_pm_op *op)
     if ( !policy || !policy->governor )
         return -ENOENT;
 
-    if ( !hwp_active() )
-        return -EOPNOTSUPP;
+    if ( hwp_active() )
+        return set_hwp_para(policy, &op->u.set_cppc);
+
+    if ( xen_processor_pmbits & XEN_PROCESSOR_PM_CPPC )
+        return set_amd_cppc_para(policy, &op->u.set_cppc);
 
-    return set_hwp_para(policy, &op->u.set_cppc);
+    return -EOPNOTSUPP;
 }
 
 int do_pm_op(struct xen_sysctl_pm_op *op)
diff --git a/xen/include/acpi/cpufreq/cpufreq.h b/xen/include/acpi/cpufreq/cpufreq.h
index 6f31009e82..4d786ce92b 100644
--- a/xen/include/acpi/cpufreq/cpufreq.h
+++ b/xen/include/acpi/cpufreq/cpufreq.h
@@ -292,5 +292,9 @@ int acpi_cpufreq_register(void);
 
 int amd_cppc_cmdline_parse(const char *s, const char *e);
 int amd_cppc_register_driver(void);
+int get_amd_cppc_para(unsigned int cpu,
+                      struct xen_cppc_para *cppc_para);
+int set_amd_cppc_para(const struct cpufreq_policy *policy,
+                      const struct xen_set_cppc_para *set_cppc);
 
 #endif /* __XEN_CPUFREQ_PM_H__ */
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Apr 14 07:54:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 07:54:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.949303.1345880 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4Edk-0002LL-1y; Mon, 14 Apr 2025 07:54:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 949303.1345880; Mon, 14 Apr 2025 07: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 1u4Edj-0002LE-VC; Mon, 14 Apr 2025 07:53:59 +0000
Received: by outflank-mailman (input) for mailman id 949303;
 Mon, 14 Apr 2025 07:53: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=KQal=XA=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1u4ES8-0008Gw-4P
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 07:42:00 +0000
Received: from NAM02-SN1-obe.outbound.protection.outlook.com
 (mail-sn1nam02on20616.outbound.protection.outlook.com
 [2a01:111:f403:2406::616])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ed786eb8-1903-11f0-9ffb-bf95429c2676;
 Mon, 14 Apr 2025 09:41:51 +0200 (CEST)
Received: from CH5PR02CA0009.namprd02.prod.outlook.com (2603:10b6:610:1ed::10)
 by CH2PR12MB4213.namprd12.prod.outlook.com (2603:10b6:610:a4::24)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.35; Mon, 14 Apr
 2025 07:41:48 +0000
Received: from CH1PEPF0000AD79.namprd04.prod.outlook.com
 (2603:10b6:610:1ed:cafe::bc) by CH5PR02CA0009.outlook.office365.com
 (2603:10b6:610:1ed::10) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.35 via Frontend Transport; Mon,
 14 Apr 2025 07:41:48 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CH1PEPF0000AD79.mail.protection.outlook.com (10.167.244.57) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Mon, 14 Apr 2025 07:41:47 +0000
Received: from penny-System-Product-Name.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; Mon, 14 Apr 2025 02:41:45 -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: ed786eb8-1903-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=lnh3RcOkQQsceU4x05xoKzygOJFhVcaZw3kN5PCP6PLmIaUJs8L4kIL6sa/B3vomUTAD33s788m2ckOkboq+6EaDwmQWYSTGVkWwWTRGqKb4n+chtSNMxLQjzSFx5CItfWY1Jv6NjMQ7HRhz1yfe6YY97L3i+eoU4okSWSdaE1c5DKAPXS0htGPXELh73xyLr45YP7OVDhz2zXmA2etDen2UxEDgnYZMwQhU+qPGjMGDDyI8JMLmSo6Nmt7z3r0dJstafYn4OtT+malsZM3dI5SHY11/6YpG25APghgmelHxeO1/itRzMIM1uh69SuwEgR8WnvDm3P96FB/dEvR4GQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=hhe9fWyzCuB1fTXHHmSUycGWCQAaLwTayINe6fFp1Yg=;
 b=r7HoCwAyOowxXxuF2+/WCdDu3y37iGqhhm1VajwqC0ntzDQRHPnGvNs8YdNAGwbJBirep+x2a35bIHcr/28uDNOn4JsF2CN5hUAj2vZ7/xMRpEjDKZiiwApprwjqpA8z1+gsrfQ+xv1+mrJXEPMOp/xIK+G+jXfglP6B/x98yNy/SdTKbiqVmf7LVNm/TEgg4XkC/gvfr4rGC/cK60rZe+N2qENWHCvk29f2PtqpjtnMJZmaKmFNqWn3TW49PbSwMKvdFsS+5twt+5i6N8y8s/OC+0khIzMD/HZnhTAbgpwy1Uz/0xm1XAxGAbqe0bLrk/GovmH7bzAlqvSWoEJatw==
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=hhe9fWyzCuB1fTXHHmSUycGWCQAaLwTayINe6fFp1Yg=;
 b=WgT1kJXV0WqrrRUgGrnRdp/p1qQnZaai6LwyC68XXiJogJNkkvTSbmJQJ4yj+Bq2UyAM7zc+FBzuy9vqNNfH0R/EUvEY5ULwOB47rYg5ISWh6L5U6d7nYRErhdaNBU6Sc0vgJgBl5rImHXGewBdk+kPLarxzq/plCJHmvxGpcFs=
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: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>, Jan Beulich
	<jbeulich@suse.com>
Subject: [PATCH v4 13/15] tools/xenpm: fix unnecessary scaling_available_frequencies in CPPC mode
Date: Mon, 14 Apr 2025 15:40:54 +0800
Message-ID: <20250414074056.3696888-14-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250414074056.3696888-1-Penny.Zheng@amd.com>
References: <20250414074056.3696888-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: CH1PEPF0000AD79:EE_|CH2PR12MB4213:EE_
X-MS-Office365-Filtering-Correlation-Id: c70c26d9-e38e-4568-d466-08dd7b27d004
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?iqZ7gAnz48iFXw1JAJntVANLiW6mw9tFPV5rtiYM1Tf9FNZyESDtJpxDS0WA?=
 =?us-ascii?Q?ujqMuNrmIS41i0RQB6NvqsBaAZgWuw7dd9BsHDIoPdW5LvvIZDwYAuIbCC87?=
 =?us-ascii?Q?wxD7gMzQl1+3KoTrRDXu3GzG2vJXY0fgr5kmV1qDObxogZdk3Z0gXNTVokIw?=
 =?us-ascii?Q?fashnwS006UbD6K84xXLwmdhkh1NM8zEPr3Rzx6B8h8z8N/jGl+CKoS0Gi2y?=
 =?us-ascii?Q?c2gCtOoRXpKdEpe4OSSRp4rBbyxY30PnafzfzkQP30rC5DulmW0furWkrodX?=
 =?us-ascii?Q?d9FKGgkEOG1hjMwg6CgCnqc84TgTxY3RbjG4EavWrxaSuUguKEnCqwEeYxHe?=
 =?us-ascii?Q?ec2zkg4ra1P7ztW1MpawJm06taO6nSr5EZmGKAPSEp7gpghZR6XRK1gXNbXx?=
 =?us-ascii?Q?N0VCT6ZqikeTE6oHhjj2fwqbOb0Xrki7064/9aEmYPVmQVtYWo6zn+UidON1?=
 =?us-ascii?Q?t0W5xxePX3odAPrOEv4dGGHy/ZOnzJUunzeeOnpbtwEdtgdcpatUdEsQM+/m?=
 =?us-ascii?Q?SmaJL4AdwX/dWEEnIY1rlc3gByu3MoekgDI7sv5053u5NQHjfrDLCZgXQxrU?=
 =?us-ascii?Q?pryHIw1ZEB+E3TZdUBmYAlqurZQEXm8ugllz8loN6jtQ9HNi0SYG7bgNcJwI?=
 =?us-ascii?Q?1I3DAe0VDRBljk+v5rnPCOzufvM+sE8SbeKDKy84oe+nkhF64hKwrBlE1Jk3?=
 =?us-ascii?Q?kjIhJ4ESriFhna/Qw+ekKx9/DRxHMLe4ysqs/UkVy8u6Kp2dFF7xp4mNWA4n?=
 =?us-ascii?Q?9cxt/W7M72Bc18QgGMxYEOMXyWKoNa7Q/fXFLUBprpgB54FqFlbW+JE7hUcb?=
 =?us-ascii?Q?NZgsMjZF8T2qLC9fM5SEV86SGxto38nxP+0wYkEYT0ZMDydjpvh5dmw2fXCw?=
 =?us-ascii?Q?xgdlpW3xwck1a93dnaq3Gw+vFbE4MISOhidR+WKKG03u8mmLNY6DeZLf5Y5u?=
 =?us-ascii?Q?RB7e68JUZLt/o781NHkUAZK0fKYnguQcjRgJkmIemHCdUhTlR3PU+gQqFVD7?=
 =?us-ascii?Q?0+GE8c2FGxpKHd8XAhCuCsxX7hS2wWHZ6uLoIC61V1h2AXRizSf+Pfseh/sY?=
 =?us-ascii?Q?HjIcLYoLwr611Ct/oplY2PZ2NxZMg5ROLBpKRPwm9q6x+N9seOxBerPUtJLr?=
 =?us-ascii?Q?6c3gci1jxihoKzKqqzxjepSvYiezDc2eYGquxHeCRQfRBg1DG7Ctb52riZuk?=
 =?us-ascii?Q?KmApMlHQt+P+Rx4OzIoQs0TMCe+/caaN6x/smksQJK1dDPi4RC5wJuddgaqw?=
 =?us-ascii?Q?jxV3Gf6SUeGSqR0xjiJgyEwpZaigHrjD0nvbT+CnZO5ejZECRaITyQnf4z3t?=
 =?us-ascii?Q?assrWhZeaA1sORwT3HrNZncWFZ4iPhqWMqk/O7RwgrGQ1UliZz1z+jJlehgW?=
 =?us-ascii?Q?IkmKGfiZYmpZvSoWYspw20a5pok19sbQff/hF+2dHXSttFDNDZwhlUAJb31a?=
 =?us-ascii?Q?Pb+/TUGBCQkl17wP8aM4AHiGUoZif6C6MNcQKeerq88qUnkwcfohkccm4hUt?=
 =?us-ascii?Q?l+NiOhEipaUisYbI3DFLyJE+SrsB6K9OXzvI?=
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)(82310400026)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Apr 2025 07:41:47.9771
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: c70c26d9-e38e-4568-d466-08dd7b27d004
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:
	CH1PEPF0000AD79.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR12MB4213

In `xenpm get-cpufreq-para <cpuid>`, para scaling_available_frequencies
only has meaningful value when cpufreq driver in legacy P-states mode.

So we drop the "has_num" condition check, and mirror the ->gov_num check for
both ->freq_num and ->cpu_num in xc_get_cpufreq_para().
In get_cpufreq_para(), add "freq_num" check to avoid copying data to
op->u.get_para.scaling_available_frequencies in CPPC mode.

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
v3 -> v4:
- drop the "has_num" condition check
---
 tools/libs/ctrl/xc_pm.c   | 45 +++++++++++++++++++++------------------
 xen/drivers/acpi/pmstat.c | 11 ++++++----
 2 files changed, 31 insertions(+), 25 deletions(-)

diff --git a/tools/libs/ctrl/xc_pm.c b/tools/libs/ctrl/xc_pm.c
index ff7b5ada05..2089aa41b3 100644
--- a/tools/libs/ctrl/xc_pm.c
+++ b/tools/libs/ctrl/xc_pm.c
@@ -212,34 +212,39 @@ int xc_get_cpufreq_para(xc_interface *xch, int cpuid,
     DECLARE_NAMED_HYPERCALL_BOUNCE(scaling_available_governors,
 			 user_para->scaling_available_governors,
 			 user_para->gov_num * CPUFREQ_NAME_LEN * sizeof(char), XC_HYPERCALL_BUFFER_BOUNCE_BOTH);
-    bool has_num = user_para->cpu_num && user_para->freq_num;
 
-    if ( has_num )
+    if ( (user_para->cpu_num && !user_para->affected_cpus) ||
+         (user_para->freq_num && !user_para->scaling_available_frequencies) ||
+         (user_para->gov_num && !user_para->scaling_available_governors) )
+    {
+        errno = EINVAL;
+        return -1;
+    }
+    if ( user_para->cpu_num )
     {
-        if ( (!user_para->affected_cpus)                    ||
-             (!user_para->scaling_available_frequencies)    ||
-             (user_para->gov_num && !user_para->scaling_available_governors) )
-        {
-            errno = EINVAL;
-            return -1;
-        }
         ret = xc_hypercall_bounce_pre(xch, affected_cpus);
         if ( ret )
             return ret;
+    }
+    if ( user_para->freq_num )
+    {
         ret = xc_hypercall_bounce_pre(xch, scaling_available_frequencies);
         if ( ret )
             goto unlock_2;
-        if ( user_para->gov_num )
-            ret = xc_hypercall_bounce_pre(xch, scaling_available_governors);
-        if ( ret )
-            goto unlock_3;
+    }
+    if ( user_para->gov_num )
+        ret = xc_hypercall_bounce_pre(xch, scaling_available_governors);
+    if ( ret )
+        goto unlock_3;
 
+    if ( user_para->cpu_num )
         set_xen_guest_handle(sys_para->affected_cpus, affected_cpus);
-        set_xen_guest_handle(sys_para->scaling_available_frequencies, scaling_available_frequencies);
-        if ( user_para->gov_num )
-            set_xen_guest_handle(sys_para->scaling_available_governors,
-                                 scaling_available_governors);
-    }
+    if ( user_para->freq_num )
+        set_xen_guest_handle(sys_para->scaling_available_frequencies,
+                             scaling_available_frequencies);
+    if ( user_para->gov_num )
+        set_xen_guest_handle(sys_para->scaling_available_governors,
+                             scaling_available_governors);
 
     sysctl.cmd = XEN_SYSCTL_pm_op;
     sysctl.u.pm_op.cmd = GET_CPUFREQ_PARA;
@@ -258,9 +263,7 @@ int xc_get_cpufreq_para(xc_interface *xch, int cpuid,
             user_para->gov_num  = sys_para->gov_num;
         }
 
-        if ( has_num )
-            goto unlock_4;
-        return ret;
+        goto unlock_4;
     }
     else
     {
diff --git a/xen/drivers/acpi/pmstat.c b/xen/drivers/acpi/pmstat.c
index 0e90ffcc19..83cfef398e 100644
--- a/xen/drivers/acpi/pmstat.c
+++ b/xen/drivers/acpi/pmstat.c
@@ -228,10 +228,13 @@ static int get_cpufreq_para(struct xen_sysctl_pm_op *op)
     ret = copy_to_guest(op->u.get_para.affected_cpus,
                         data, op->u.get_para.cpu_num);
 
-    for ( i = 0; i < op->u.get_para.freq_num; i++ )
-        data[i] = pmpt->perf.states[i].core_frequency * 1000;
-    ret += copy_to_guest(op->u.get_para.scaling_available_frequencies,
-                         data, op->u.get_para.freq_num);
+    if ( op->u.get_para.freq_num )
+    {
+        for ( i = 0; i < op->u.get_para.freq_num; i++ )
+            data[i] = pmpt->perf.states[i].core_frequency * 1000;
+        ret += copy_to_guest(op->u.get_para.scaling_available_frequencies,
+                             data, op->u.get_para.freq_num);
+    }
 
     xfree(data);
     if ( ret )
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Apr 14 07:54:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 07:54:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.949306.1345891 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4Edl-0002Zl-8b; Mon, 14 Apr 2025 07:54:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 949306.1345891; Mon, 14 Apr 2025 07:54: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 1u4Edl-0002Ze-5n; Mon, 14 Apr 2025 07:54:01 +0000
Received: by outflank-mailman (input) for mailman id 949306;
 Mon, 14 Apr 2025 07:53: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=KQal=XA=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1u4ES3-0008Gw-3V
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 07:41:55 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on2060e.outbound.protection.outlook.com
 [2a01:111:f403:2415::60e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ec23c13b-1903-11f0-9ffb-bf95429c2676;
 Mon, 14 Apr 2025 09:41:49 +0200 (CEST)
Received: from CH2PR12CA0019.namprd12.prod.outlook.com (2603:10b6:610:57::29)
 by SA3PR12MB9107.namprd12.prod.outlook.com (2603:10b6:806:381::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.34; Mon, 14 Apr
 2025 07:41:46 +0000
Received: from CH1PEPF0000AD75.namprd04.prod.outlook.com
 (2603:10b6:610:57:cafe::d6) by CH2PR12CA0019.outlook.office365.com
 (2603:10b6:610:57::29) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.34 via Frontend Transport; Mon,
 14 Apr 2025 07:41:46 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CH1PEPF0000AD75.mail.protection.outlook.com (10.167.244.54) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Mon, 14 Apr 2025 07:41:45 +0000
Received: from penny-System-Product-Name.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; Mon, 14 Apr 2025 02:41:44 -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: ec23c13b-1903-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=LV4oHoIy4XA5W/IVSY2nzHMNSDtRTRdPHytgDiv2MdvCJDSG/VRyul04877HHx941tO81UU1PvoirNGjCL4OFIE/Vfnc0MpeJJO1D2h/qRoUlB58JJcNmTpXqqPWpxeBc8CtpzYmuohJYiKgupkcTDPWmLb6eOaXaow4zb3BpLpKQ9TEpWrnn12ReDZweINj7y1C0rltseatBjMXaz80HcYJijkE+5qDSSOGnWHwYItvGZO3v/p0gKCh88WcfcNIceuTt4/1W1XRNpQg7ZpyWni0hmK1nYwLhL5SjYf8SF3ibOiytSMOgeUj/O5OawIrcd+TSkMoXTAxnRzD8gifiQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=c6ebRFKv3vX7UzG38NrYOBnsfCX/PInAR8PHDAJ1f2o=;
 b=jZ9FFT5o9t+52v2Xw+xgb39Go0yLLn/nAWEDaNWF9p4PR7iBYAmaxsXht4do8ry74g4oZ0nKFsyG+T/zgUyoCMhgHbWCk515V05pe/jyGktgSw4iaFdKi5tnJc3NM/KLlOVoG+vOO+n8BAmV7YHYpuiMP9Kz+fwsyKMpRIJFTKVzW8SpyHI/68fel/z+WqAdX2YTWaZmbPD2CEAVSifB2PXZguqXB8ijGXdO2k7b3aQ/+cQWoC/kpmYAGhUyix6fNeCzuqj8GnpV/b9QWUxb2xj4s3sYqmgFcYmMhXY+vdHjta01s1pHwbCfkEFNNElzVZBpp1Tm4durXQUxuZdaZA==
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=c6ebRFKv3vX7UzG38NrYOBnsfCX/PInAR8PHDAJ1f2o=;
 b=gCxzIAeTHBAvEiL+g5fp8stE6ELCo82Bwzk8TVqZ5u3ZKy+Cly00pBT+DrH4ksW3bqE1d7MGowBPTnAmDGzmhYXe2WmSrXD0388FMRuruGCK+otMRFR+kMCV/JakHaORNxDcZo0eGrKirjw/tWii4I/aNXlYsXgpKqRg1MsXC7U=
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: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Jan Beulich <jbeulich@suse.com>
Subject: [PATCH v4 12/15] tools/xenpm: Print CPPC parameters for amd-cppc driver
Date: Mon, 14 Apr 2025 15:40:53 +0800
Message-ID: <20250414074056.3696888-13-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250414074056.3696888-1-Penny.Zheng@amd.com>
References: <20250414074056.3696888-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: CH1PEPF0000AD75:EE_|SA3PR12MB9107:EE_
X-MS-Office365-Filtering-Correlation-Id: e6007686-9095-4eee-f880-08dd7b27ced4
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?5HOpSKDEB7qgtsV5DQTYhVatmpPKT4s4Ni0Em7KSV6OpFJwEGfWkykZTT+CR?=
 =?us-ascii?Q?MnjBdFaGnbRyQuLaJ9beoiuhF3V11HePOEduSrrLtAHHlhXRlDQF5oYyVUir?=
 =?us-ascii?Q?wqWzbSEQYjiU1ed3Mz1qrA2JbgVg7ZcaUjIzTWyFVnFsvW/t/3vTSo2GK/L6?=
 =?us-ascii?Q?WQaGZOgeUP3eGm26oz+Ke1a9whwWKmWURpwm8Lvk+Wtg75DgBmEBkbpHQX7Z?=
 =?us-ascii?Q?qg7bJTZ1dcbBHxMrbphMk6ZUh1Tc9Eatfbay34MxFsWLuFKEnCRNHTtQCnJc?=
 =?us-ascii?Q?zMu4jcgx5qWjNSmU8sU3URU4S3IDmQh30m8nE57HzywEBI3k4FZqi2+StPBY?=
 =?us-ascii?Q?oQ1BN9/Z01DAj3JByYT9D6gL3Fu4K8ISuL5cuexxn87hXOy4j0XL8DeRHYb+?=
 =?us-ascii?Q?fxBSnIUdYWc5eEv+rN8MC5ZQ+z5/9Lgseecwy9AcopwHxAQibZVkP/+7AoFA?=
 =?us-ascii?Q?TRK2qKmSq+CT1s+I/MB+jsteFVvH4rOs92VO336Zo8xDI10SsgOo4POmhjYL?=
 =?us-ascii?Q?jdoJQHN5C1s8NJEF63ro2cG64MYUl24Xp5l24xLoBas7DZDara+ohZ22kVd4?=
 =?us-ascii?Q?L3kaBdkGxGc1pOi5Rj4ziNJQafb7HlFCV8DXI3Amsgyuq11C71e6p3BiwJBM?=
 =?us-ascii?Q?fTL/NGOfN6OaMGtStfrf0BfAGUyOk2FR58RGuLqRsisERvJqWrAIx9bUyVRi?=
 =?us-ascii?Q?/z38GTeeXhEme3CVeLrgx50Cs1ZiG+JK/l68E+F8VApuVOT8u4LVlRijZpM1?=
 =?us-ascii?Q?0hF/9pc2RqRYYg+/bsudzom/XV4I27Gl1mUmxncDqldkVvWRhIZQvYwTUzSr?=
 =?us-ascii?Q?booUWKjRn0o1a4GM/Ab6FdFMomH+5iQTOIN/UGqcuiGD7C1ZNy1HctZ8FjQn?=
 =?us-ascii?Q?Nz5DTsiBv6zSqxFZj+iR5bh4Onqwsrx+bI+Sn6t2//5YOD3m0GIq3R8Zpq9M?=
 =?us-ascii?Q?IH2esvkugzC8252fljbgkOWKM4zPoA558UsHnxYcILULF8TYBsJM+5ZxnPaU?=
 =?us-ascii?Q?dp3m/OIGM2o0tPR76u0vDE6jo4JswqRIH+ABakjuPbvD3e9YTJDMcyIdWrUc?=
 =?us-ascii?Q?/NeM7vw2ZP5cF+Ig0GDJ6+CmGG4aHfqa9bOFuhpzCzzD1ySjthEzDeg9SfUb?=
 =?us-ascii?Q?8e22Jqs/q2ZQRNx/8BKIkxzziIl1OHmI4KFGzo/a2ymrjjiFy50JAC0GXGWR?=
 =?us-ascii?Q?+0vcmWkqL8tkUlkLjDvOZWtexdj5poeV6Ue+DO0EJpo9lQx8Z+SBKik+bfRz?=
 =?us-ascii?Q?6QaZUD2bCDM+aQYeUZv1fJHgdy3A8qbb82Z10SaXauEdq2IWvMXTizfDFMBu?=
 =?us-ascii?Q?vQRBhx2DTclVQaSLGoprVDVZnqK0W6DIJIfYFL3B9UzmCjl+zeUEYbC6WICu?=
 =?us-ascii?Q?raS+KcR+zsVFCkrQjE2/x2OKq5VR1wQ3fbmrPKUIlWpH3m67Y5i2RFkHHlok?=
 =?us-ascii?Q?fpOtZpATsF7gHDohisShVCjiYM/LDZ97SQxbV15a2DfYAK8WRP6I7MDbuNc9?=
 =?us-ascii?Q?gnd0ZNZHFV2E+J7dCuPmKJbkcfQ9qdFwHce0?=
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)(82310400026)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Apr 2025 07:41:45.9858
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: e6007686-9095-4eee-f880-08dd7b27ced4
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:
	CH1PEPF0000AD75.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA3PR12MB9107

HWP, amd-cppc, amd-cppc-epp are all the implementation
of ACPI CPPC (Collaborative Processor Performace Control),
so we introduce cppc_mode flag to print CPPC-related para.

And HWP and amd-cppc-epp are both governor-less driver,
so we introduce hw_auto flag to bypass governor-related print.

Validation check on `xenpm get-cpufreq-para` shall also consider
CPPC scenario.

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
v3 -> v4:
- Include validation check fix here
---
 tools/misc/xenpm.c        | 18 ++++++++++++++----
 xen/drivers/acpi/pmstat.c |  7 ++++---
 2 files changed, 18 insertions(+), 7 deletions(-)

diff --git a/tools/misc/xenpm.c b/tools/misc/xenpm.c
index db658ebadd..29fffebebd 100644
--- a/tools/misc/xenpm.c
+++ b/tools/misc/xenpm.c
@@ -790,9 +790,18 @@ static unsigned int calculate_activity_window(const xc_cppc_para_t *cppc,
 /* print out parameters about cpu frequency */
 static void print_cpufreq_para(int cpuid, struct xc_get_cpufreq_para *p_cpufreq)
 {
-    bool hwp = strcmp(p_cpufreq->scaling_driver, XEN_HWP_DRIVER_NAME) == 0;
+    bool cppc_mode = false, hw_auto = false;
     int i;
 
+    if ( !strcmp(p_cpufreq->scaling_driver, XEN_HWP_DRIVER_NAME) ||
+         !strcmp(p_cpufreq->scaling_driver, XEN_AMD_CPPC_DRIVER_NAME) ||
+         !strcmp(p_cpufreq->scaling_driver, XEN_AMD_CPPC_EPP_DRIVER_NAME) )
+        cppc_mode = true;
+
+    if ( !strcmp(p_cpufreq->scaling_driver, XEN_HWP_DRIVER_NAME) ||
+         !strcmp(p_cpufreq->scaling_driver, XEN_AMD_CPPC_EPP_DRIVER_NAME) )
+        hw_auto = true;
+
     printf("cpu id               : %d\n", cpuid);
 
     printf("affected_cpus        :");
@@ -800,7 +809,7 @@ static void print_cpufreq_para(int cpuid, struct xc_get_cpufreq_para *p_cpufreq)
         printf(" %d", p_cpufreq->affected_cpus[i]);
     printf("\n");
 
-    if ( hwp )
+    if ( hw_auto )
         printf("cpuinfo frequency    : base [%"PRIu32"] max [%"PRIu32"]\n",
                p_cpufreq->cpuinfo_min_freq,
                p_cpufreq->cpuinfo_max_freq);
@@ -812,7 +821,7 @@ static void print_cpufreq_para(int cpuid, struct xc_get_cpufreq_para *p_cpufreq)
 
     printf("scaling_driver       : %s\n", p_cpufreq->scaling_driver);
 
-    if ( hwp )
+    if ( cppc_mode )
     {
         const xc_cppc_para_t *cppc = &p_cpufreq->u.cppc_para;
 
@@ -838,7 +847,8 @@ static void print_cpufreq_para(int cpuid, struct xc_get_cpufreq_para *p_cpufreq)
                cppc->desired,
                cppc->desired ? "" : " hw autonomous");
     }
-    else
+
+    if ( !hw_auto )
     {
         if ( p_cpufreq->gov_num )
             printf("scaling_avail_gov    : %s\n",
diff --git a/xen/drivers/acpi/pmstat.c b/xen/drivers/acpi/pmstat.c
index 767594908c..0e90ffcc19 100644
--- a/xen/drivers/acpi/pmstat.c
+++ b/xen/drivers/acpi/pmstat.c
@@ -201,7 +201,7 @@ static int get_cpufreq_para(struct xen_sysctl_pm_op *op)
     pmpt = processor_pminfo[op->cpuid];
     policy = per_cpu(cpufreq_cpu_policy, op->cpuid);
 
-    if ( !pmpt || !pmpt->perf.states ||
+    if ( !pmpt || ((pmpt->init & XEN_PX_INIT) && !pmpt->perf.states) ||
          !policy || !policy->governor )
         return -EINVAL;
 
@@ -461,9 +461,10 @@ int do_pm_op(struct xen_sysctl_pm_op *op)
     switch ( op->cmd & PM_PARA_CATEGORY_MASK )
     {
     case CPUFREQ_PARA:
-        if ( !(xen_processor_pmbits & XEN_PROCESSOR_PM_PX) )
+        if ( !(xen_processor_pmbits & (XEN_PROCESSOR_PM_PX |
+                                       XEN_PROCESSOR_PM_CPPC)) )
             return -ENODEV;
-        if ( !pmpt || !(pmpt->init & XEN_PX_INIT) )
+        if ( !pmpt || !(pmpt->init & (XEN_PX_INIT | XEN_CPPC_INIT)) )
             return -EINVAL;
         break;
     }
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Apr 14 08:12:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 08:12:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.949343.1345901 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4Evh-0001Zq-0M; Mon, 14 Apr 2025 08:12:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 949343.1345901; Mon, 14 Apr 2025 08: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 1u4Evg-0001Zj-Tm; Mon, 14 Apr 2025 08:12:32 +0000
Received: by outflank-mailman (input) for mailman id 949343;
 Mon, 14 Apr 2025 08: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=XA/R=XA=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1u4Evf-0001Za-N7
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 08:12:31 +0000
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 (mail-am6eur05on20629.outbound.protection.outlook.com
 [2a01:111:f403:2612::629])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 352da751-1908-11f0-9ffb-bf95429c2676;
 Mon, 14 Apr 2025 10:12:29 +0200 (CEST)
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com (2603:10a6:20b:5e4::22)
 by DU0PR03MB8343.eurprd03.prod.outlook.com (2603:10a6:10:3a4::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.31; Mon, 14 Apr
 2025 08:12:26 +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.8632.030; Mon, 14 Apr 2025
 08:12: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: 352da751-1908-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=bm1Nz2B/kc1OtIud9IGp//wJoeXD8W4L6IAC6Upf0fLXInfe0JFA0j1OmUiXqCt2vbQUoH9DZ0HmFvt1O9xTzLmMFgwKMEIhPsv4Ou1TGL1MjblBATbVw7BMaqTxfwQd03yrlCJhsu2RpP4XThJhJ/POgasuDx5c7kMNUgj6ueF8R93orcSkQUorJbZ/RtXZGHzIImLFueaQ1LOUZi4g/09Z0bU4naFv91YMoQxPGaO/ECflPqywsDlZgKBtchrEjWL7oWFX1w+GWx01zULOTiQWWe5XjOCeL9CSRmIfoM1KedQGWYf3/66kyRhU3ZxkBe+TP5TVpFdiaowWgKzHRg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=jjqsOGtN0AX9PhuCyH7NEGIpTjCWtuA4RAzjPTtEQZE=;
 b=wdq9+1/UfFjAXLZi2WFGaLGsT3B6I5BTMQ/vWNGZLg9jqLc1m3MjZ43EJjHp3tPBxj16FT4kWHgQyDH1Bs5F5obyzyW6iXs7IiNreAxKxKc0NqOlPD5xFr4P+BAzz7M//MWKFQjfgEUSBA629WOkKDhQ78uyXtQtOzmqegC8gvNTphvKfg362PD8KvjGV3ACqIb1uzz/gVkGN+aG84uq4XxptyHqLlyxOTNatMBBff19P72J8pnbyzf34FPFHm5qP7OC+7tO76IK43r5YmtejzwVDloVwF+o6EqqySy+enTIpmwxPIQLC7dfKQ0ZJw7zwT8KhOmQ4Tojo1PbB6FXkA==
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=jjqsOGtN0AX9PhuCyH7NEGIpTjCWtuA4RAzjPTtEQZE=;
 b=lYKb0P9M4nu+/bNNubfJKFRxy04wKVDRzcK62FMiNTwFMYS+8Qz8nf1EyJKjeCnfXPRa6lV8IQu3kyW37HMP7UEn4/10rDw0AN6fRRcjXD1xfFTznrP0vlH9pDBXDfr4pwHlB4avSyN1bLgE2CPZWBPnnKDPVb8VO9LA4sRuZPc5yP+oRqrlRnr+cqBuB1MNep1wZKDdf6vgLNYgtq7ivLIdaOoWamxY23z/q4Eaq8vZZw9Pb1bggErIB36Dk8DTmhLQA60lU67zC1aU3L1JkRhyzkjgAcCub6mKsOp0BKv/kTwc3gk9M4L3M64pODKvJLeBAGBVaQuR4GHZJQutiA==
From: Grygorii Strashko <grygorii_strashko@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Stefano
 Stabellini <sstabellini@kernel.org>
CC: Grygorii Strashko <grygorii_strashko@epam.com>
Subject: [ImageBuilder] uboot-script-gen: fix arm64 xen u-boot image
 generation
Thread-Topic: [ImageBuilder] uboot-script-gen: fix arm64 xen u-boot image
 generation
Thread-Index: AQHbrRT0Xiz3Rqv37EutLWpfpuPiGw==
Date: Mon, 14 Apr 2025 08:12:25 +0000
Message-ID: <20250414081223.1763630-1-grygorii_strashko@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AS2PR03MB8907:EE_|DU0PR03MB8343:EE_
x-ms-office365-filtering-correlation-id: f8bb22bd-13bf-42e1-cbee-08dd7b2c176c
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?VFz2jeVEpFdczghH1BJsMdR2pXIHhvbrAVfWzSlIcDtkqdxYhcIqSf+ZxN?=
 =?iso-8859-1?Q?pwfUuiKOO6H+Agf8/vrnIjfVDPtzURWLQENidHzTdr232AjXCOlYAaFMmt?=
 =?iso-8859-1?Q?pYYpW/da8gVLr79lo75IhYg+UATPQbfReatvUVKIxM42H6dmsoFGK/nwsH?=
 =?iso-8859-1?Q?XOC5r8Na30fzHIib9rvB30ELUiEteTJmJQ3t36hPeUbWIY0Y2dDqGcSAxf?=
 =?iso-8859-1?Q?K4B6SHfZVsZEttGNd/As75ojRwcZsif2TanaI3cyuLkbuyM3Yq0tJ4cX8u?=
 =?iso-8859-1?Q?8POftkS1cEQ3RDMlrpnE3C2ws3rDNOvf9x3dN8YoQl1LqijqRE5BVfsSmb?=
 =?iso-8859-1?Q?NX/BibeB5PTwtfE/YTYP6o69ttBHoQs+l50KSBSTxJ7Imy4yHvkHDa6UqV?=
 =?iso-8859-1?Q?w7Q6gXQWrnbEljEDcqoVW2sd1ysSEfS8yLOsugQLdG06xBKXpOQZAEGQRG?=
 =?iso-8859-1?Q?fu/KI52c2RAJldItIpPo2SixeU+ecZb/y0frACPoa32/Q9JRI88M9Rd1Ry?=
 =?iso-8859-1?Q?xjWqLEe6dcjcvl95sPijC4xYJCKpZE+JmDfur/9usC9PNzmQVCX9P/7rHY?=
 =?iso-8859-1?Q?IRX+iragGDbDX6Zod9X/DX8VGE+9IBjWSyobjp+YdDhiw+A1MwoALHuKYy?=
 =?iso-8859-1?Q?fP4MRiYZI1K1/QPGAibJ3c2Fp5jfYS+U9mZCi638msCG8JHABr0kJhogpT?=
 =?iso-8859-1?Q?yvGSiYfU00PsIbpuAPdBCfg5419yqUSHKatpdN81vKcURiPT8+ClBtIOW/?=
 =?iso-8859-1?Q?DkGc1ZEy40+Fc0sjGnKu0+1MIkFxpy7oCQPBR6CC+VFQjTLy5c8YCDKcQk?=
 =?iso-8859-1?Q?Yn01wvxejfwnONmy5kau7c0GE8j/adZeBEppQGsXueAXoN2ZGapaQaKtao?=
 =?iso-8859-1?Q?G9Pdw9Mzc+6+KUaegETs7++AsVLl0GvRH26mYDjUpMg9evEGtjD3kn7/kc?=
 =?iso-8859-1?Q?slC5rYpDi3YvKGOvAx/4lJxXoVFPY7nOusD3d/ibQTBcbDXSWAOGs+UcYP?=
 =?iso-8859-1?Q?keyLoYroZVyFiQpwFhR1cQrJaBlXhQvHlt6gIDsczYzLsULzJJDxgchaVS?=
 =?iso-8859-1?Q?ERl8oYEFKEICEMztuy2LLbDaAnL8G2lfnJscP1Hkh/aQ2MV8WccyQNsTx8?=
 =?iso-8859-1?Q?xkhGAOyduJFPrD9CiwGK4gke0S/FhGHGUHS7W8lIXkESATmciRatfgfcdt?=
 =?iso-8859-1?Q?SbqSFTKwPh9uBNS2tx7eN9fySURtJrYCfA5r58/gSC270MzNqyhi2V6Ec4?=
 =?iso-8859-1?Q?tMMbY79sjk8+/je6PIfHKOCvGlStJbtofKDIDkka/ngqUU6QkxUrDlLPe/?=
 =?iso-8859-1?Q?a7iZvHtjTO6HT8F+lZMVKB4DlN7kYaBPPSN0MUjg0ohmMew2psv9y4UHxV?=
 =?iso-8859-1?Q?M3Fd/tSAdfC/cQB0JzsDB5e0zmnAuuImK3Wix3kcvy0wcTqd9akoVYFYoe?=
 =?iso-8859-1?Q?6LteKe3wQNkx05sGe8fRJvWHmArjk9IDBIrtkqWuFjNEtBctfhbgCxhyyt?=
 =?iso-8859-1?Q?uJRonrvzdX+KepOvEI0HfgKn4jf8KkQxOwwcy210enNw=3D=3D?=
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)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?14b5dxHAxzyqCZDOVxwzb7ztsScNs2TydYe5F5/52M+YsCZHoScA5gbREE?=
 =?iso-8859-1?Q?LwKXD8Jj3M2uGFwLuFfIxE2oC8uH9Yk4A/oM7a4xFpLrVfOQk25VI0IRXh?=
 =?iso-8859-1?Q?pEkj56xx2Yesh7qlfqbY6wJJrDoC2Ckyo/hdyKzm2ZgpHG243f1V5pggBv?=
 =?iso-8859-1?Q?o4jEZl8cQT1UFywYuyLwj9z0ZlwFYdOVRpcXtHcBQT1geriZdGbpylKMNl?=
 =?iso-8859-1?Q?N+3M9mMYe7k3HREY5gTcxOUCnkfEOVE2Hg4EMD+sbuX0zDBtGjHdz2l9m+?=
 =?iso-8859-1?Q?hFGUB18DelKsVR70+IaKyF69aSFbgLopZzfdx5Z/yXnXvwBVL433u3OTdE?=
 =?iso-8859-1?Q?HWTWHvl9h0p/mW3yDOFL68O9vB7gp1Qp33oJjLWqDb47hwdkE7uJdLx3Ny?=
 =?iso-8859-1?Q?RqkwnR2xRcyWAyAsc+dfkBN/sIuZuybVsf3Pro1X9yHFthHK2fYbvtvX/R?=
 =?iso-8859-1?Q?XpswtOhQApb35FIULlsz4AG5kCv+Ee5qpW7o9rek3HFUBsbYRUGmeIr2yO?=
 =?iso-8859-1?Q?GEFBdWT616IzkkX6t3ZMaXcMHNfBoi+MU8HQSoinnxWdMzoMjTNof9GkQX?=
 =?iso-8859-1?Q?c1kgKVHc1BbFTJ0dAjI6c4fJyaBVteC54TcTVRx8ipdPh9BwMUsoAbogef?=
 =?iso-8859-1?Q?eVs+GjHjDk8jEos521vtsj0xykva1xfCZ5PER6e5ITZoCbSOflogyJsIoe?=
 =?iso-8859-1?Q?DECUWV4RH/ToFzlkAQ5HKUV6kPLV7EZKiuCx7BSN1vkKyYxBD/mNPevS/V?=
 =?iso-8859-1?Q?LAcp3prG0J1lZxeYK9Agz9XyHPB3ydQ7dfjrfBu9fz9uh1nkjDxPewYmvZ?=
 =?iso-8859-1?Q?P+DCY2/WwW7RZPiVypEhzvJTiPo7ou5P4GoZ9/Kg/D9ofxXyQ1qzFwJN/3?=
 =?iso-8859-1?Q?6f9erNJrA2HzdX7h9Srt7gHUr7IlJUK+uClRMjxoQYKmMw2sN1qp6eW8h1?=
 =?iso-8859-1?Q?wz5U078/ZEguA6ySeV539is5eVvdLHANgMzXQIaYNiJaqenyJpKzp384DH?=
 =?iso-8859-1?Q?21uFZ+ZEDi5ga0LDU1/ru/zrsdKYe7Vzew8OVimogiGPETAee0MfD/HQC2?=
 =?iso-8859-1?Q?VPg7+6rVNIZ9OS0hEvs/hMG81vMKRZthf9xGYoZKxuhixP9i7U2/xyPV1L?=
 =?iso-8859-1?Q?QND9mvKO/r9xBHjAN4LEMNQCzO7KlB+kK9YUIvuI+Ifdxq0u8CGcikyXUI?=
 =?iso-8859-1?Q?4BeiBrK8BVLAbfUPw2mXvMJcPMVHwSE9mpsXVUulEHy3JdI99Ih1BA6BuV?=
 =?iso-8859-1?Q?+RIsk1ID3Cj7ORxTFjaIZam9x+gK/FFxy99cvkiOf02W8tUti0jRzjx8tq?=
 =?iso-8859-1?Q?mJ6RQCixPduwUOV1GFJ1YkbP/CKuqqo6z7E5RY9WfF1tov2c6RjwTmo/0c?=
 =?iso-8859-1?Q?odrbSSXI/rtHb9wfZ1QLir6M1Ny0RFBZl4tsyJvm+Lryxq8wbadHLv3N9U?=
 =?iso-8859-1?Q?pf0FP2/gWQblrJWxciseaIhkJycBi7TNiTunbuByYvzVVljkBqZGONz22X?=
 =?iso-8859-1?Q?KRxWsJ2IKeJsFu/Qv5s5HI8n3dmUi7VvxnZGIifMys1ixhlYYX8YCXilFZ?=
 =?iso-8859-1?Q?SBvRYoT55ljd2kX6WngHZ4lvJqf2aP5Mgum1Hg25Cd7FEKNCtrVaxA6/2j?=
 =?iso-8859-1?Q?7AQVP7p+CRMlTW5BAfuLU7+Q3dVAJd1saoiOIIFkyaqe+shLb9wcPBRw?=
 =?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: AS2PR03MB8907.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f8bb22bd-13bf-42e1-cbee-08dd7b2c176c
X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Apr 2025 08:12:25.8095
 (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: ECYDlsvUOTmDrHQJLnfdJFBMTkKAvWBOKZOMFfOr27GMrjgbO9L9gsjzvvAkO+fscE57oPqVBtyeavPUgTwUgb+H0H5GvVQBhovStJgpGaA=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR03MB8343

From: Grygorii Strashko <grygorii_strashko@epam.com>

The current code in generate_uboot_images() does not detect arm64 properly
and always generates ARM u-boot image. This causes Xen boot issues.

Fix it by searching for "ARM64" for AArch64 binary detection.

- mkimage -l xen.ub
Before:
Image Type:   ARM Linux Kernel Image (uncompressed)

After:
Image Type:   AArch64 Linux Kernel Image (uncompressed)

Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
---
 scripts/uboot-script-gen | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/scripts/uboot-script-gen b/scripts/uboot-script-gen
index a9f698f00fd1..c4d26caf5e0e 100755
--- a/scripts/uboot-script-gen
+++ b/scripts/uboot-script-gen
@@ -815,13 +815,13 @@ function linux_config()
=20
 generate_uboot_images()
 {
-    local arch=3D$(file -L $XEN | grep "ARM")
+    local arch=3D$(file -L $XEN | grep -o "ARM64")
=20
     if test "$arch"
     then
-        arch=3Darm
-    else
         arch=3Darm64
+    else
+        arch=3Darm
     fi
=20
     mkimage -A $arch -T kernel -C none -a $memaddr -e $memaddr -d $XEN "$X=
EN".ub
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Mon Apr 14 08:14:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 08:14:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.949354.1345910 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4Exe-00026B-Ap; Mon, 14 Apr 2025 08:14:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 949354.1345910; Mon, 14 Apr 2025 08:14: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 1u4Exe-000264-8B; Mon, 14 Apr 2025 08:14:34 +0000
Received: by outflank-mailman (input) for mailman id 949354;
 Mon, 14 Apr 2025 08:14: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=m6tK=XA=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1u4Exc-00025y-Ca
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 08:14:32 +0000
Received: from NAM10-BN7-obe.outbound.protection.outlook.com
 (mail-bn7nam10on2060f.outbound.protection.outlook.com
 [2a01:111:f403:2009::60f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7c7512ad-1908-11f0-9ffb-bf95429c2676;
 Mon, 14 Apr 2025 10:14:29 +0200 (CEST)
Received: from BN9PR12MB5273.namprd12.prod.outlook.com (2603:10b6:408:11e::22)
 by CYXPR12MB9388.namprd12.prod.outlook.com (2603:10b6:930:e8::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.32; Mon, 14 Apr
 2025 08:14:25 +0000
Received: from BN9PR12MB5273.namprd12.prod.outlook.com
 ([fe80::cf66:58ab:47be:4b13]) by BN9PR12MB5273.namprd12.prod.outlook.com
 ([fe80::cf66:58ab:47be:4b13%5]) with mapi id 15.20.8632.030; Mon, 14 Apr 2025
 08:14: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: 7c7512ad-1908-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=UcY778N9puR607nhqdjAYtzfUnz88jmGxUQKs2O+uVlEJgIiN8G0l8LGzF/WlkHl/1hpUzFqwn804ilxywnsqdJTa1OpXEV/2tAR2jPt5MEpoR+kFKPzFbKLrx+U6I3KFHfMS+efq9PHHExPzUvxQRllS7uGcHx6YEk+ekOIVyBNqKiUpmU/gZA/l7+sDjjqMDtrrKVyzTPE+dv8HEBanpZcMvNBqpTbjK+ipv7mqeifHIMIESzU3TaDBsh1+ayaFwDDWa6ajSQGnGI6HK3mFCTbm+E7k37ZAUH4QKmSX8/Lx1BqnZQxT+PIYw1vqMgLw3aL82rvRBIrS4w3AYyKDA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=YQXZacACADDzwhw6ZY9RVkMFNtb+/JyZ3k6RwRWqN3c=;
 b=f9N7pnuf9307P3ayT2kXOPKf2J3E1oc8F8t8CZYNRPULscbl7x2Mo84nQnJYKRmoefPTHHu7yUb5gWVCKCtX0N0AyR9Ewlj5wF76FuRZ3kGSn1iOq4oIsjB/nG5xRsE1R4PW12Dl65BUpufyKPP0BIGf3a39tgHz3QfpY1diavRc1j5mXCjmfTbBpYR8QIPH9ex+pf5XQbeVNHRIQKbQl1aSzoft91D2oH0Q+koRfLZe9Qjm7tzsr7+S4GQY8J+tSZhbHL6kvh4rzWvUVkb+JvhTlQ+2PxJxzvrc18WxP+CZO8NMoNejQv5SgliIOMVp/ONdsUGd0n91YmbVsREwGA==
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=YQXZacACADDzwhw6ZY9RVkMFNtb+/JyZ3k6RwRWqN3c=;
 b=M+DvzvkBwQG3yL9kugZJ1aSbmjADUb8vRzN6TWThAdNf4p5HalBjjxQxF4zW2F45DsEqF4wBr8t2DR2GljUbellt8mKT6Gb28a8rEIujkI/V5eIua9MbzzHxLva+UWxyjjSEaAVwihzHNE0Tm5T+zPFbrtDUzCbRJHIkOBbWGek=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <52847015-1773-46f8-b831-5f6ec4f293ac@amd.com>
Date: Mon, 14 Apr 2025 10:14:22 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 1/3] xen/arm: Move some of the functions to common file
To: Ayan Kumar Halder <ayan.kumar.halder@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>,
 Luca Fancellu <luca.fancellu@arm.com>
References: <20250411110452.3748186-1-ayan.kumar.halder@amd.com>
 <20250411110452.3748186-2-ayan.kumar.halder@amd.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <20250411110452.3748186-2-ayan.kumar.halder@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR4P281CA0186.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:ca::16) To BN9PR12MB5273.namprd12.prod.outlook.com
 (2603:10b6:408:11e::22)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN9PR12MB5273:EE_|CYXPR12MB9388:EE_
X-MS-Office365-Filtering-Correlation-Id: df3041e1-0da3-40c4-540a-08dd7b2c5ed0
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?UDhDLzN6QUFld1JUUlFlYVhiVHViUXVuZlBOc0JBVENCaDFKUVFhZ2xPOVdh?=
 =?utf-8?B?WngvWHRONU1zOXk1OXUyMHBVNlhNd0VZWFZzU0xpcXh0UjA5RXZDYlk2Ky8z?=
 =?utf-8?B?enM2TmVWeWp6TmwrZUF3bmVaa0h1Wm40OHdYcjZrNVlzY1c3YlFPU1dWVVdo?=
 =?utf-8?B?ZllkbDlzNWRuN3U1TmdVdm02SWlYOW9ncXMrS0xONGVNWjZIRkNpSXYzekgv?=
 =?utf-8?B?eUxtS2FoNkxpT1o2dHd5NEhZL0M0WlNsajlYQ2xqamxaRStha1JEK2VrcDlK?=
 =?utf-8?B?dEl5VXh6bFIrTzdwMUhRUU4wbm10a0JPTnVMaGMwemxwOHJWZHN3RXAzRWQr?=
 =?utf-8?B?Q3ZwbElhVlVLZEgxU1NOdDM5QUU3U2krOEp3bGJ0NUtFendDanEyeDFlWGc1?=
 =?utf-8?B?L3YrWlp1OXJPN1U1TzJ1L3N4ZUJHNlhPdllET0hJTEl4YlJwZEY4c1ZrZDA4?=
 =?utf-8?B?Rm01TXRaOUt2VExmMDVGT1NoUlVQZE9NQVlDdlZyYXlJUGd4YkxlWjdRa2xu?=
 =?utf-8?B?V0FJOUJsMk9zWG5YQWNMTTNDL3dBSTBkUzJQUUthRkhqdmRUcDdKV0NVdWZO?=
 =?utf-8?B?MVBBTTdsMEhNd25zM2lBUUhwOXV6blBtMTZVTUhsWGJ5alNjcVg5UnZWNWxR?=
 =?utf-8?B?QTV2YTVpVTRZVDRiQm9JdkYvOUhhM0RhRk5VS01uTjUzNndNeFdrempWSFdp?=
 =?utf-8?B?QmErWGk4dTB1UGNkREVnby9RZ2FvcC9NVUlMNmpjL3loNzVtdmdlOXNUMzhR?=
 =?utf-8?B?eG52T0E1eFFuYm1CcmQ3eEswQ3Q0cC9nenhUVW5mUHdUYjVpczVPN0o4dFdV?=
 =?utf-8?B?Z0d2b3lEeFladXhIcGVMYWREbHpaenFGZVVybW1pQ3pRa2ptWWQvcUpaWVNr?=
 =?utf-8?B?M09NVWErb3VqaVh4a3NMOWlNcnc2SkpTL3BCVXc4QU82dEdZNzZjdTB3SHFF?=
 =?utf-8?B?MUFrVTIzSldFWk5FTkVMSHFNbmlFWURKNFdDUHJkcEowK0pKT01mMTZMWUIv?=
 =?utf-8?B?ZjR4Y1VsMll3aWYxNUliUmNLbEVsbDE5MFdaZGRCQTc5TDNsYzFzQUl0NUZl?=
 =?utf-8?B?T2NWbHBUNEFmeVR3VlhxMnpkalFEU0dlY1ZseXZnSWp1dVkvbjIvZmR5enF1?=
 =?utf-8?B?eDVoS2pIOVBlMU5UYzMvRGNRVTc5MnJ3VlJiMkcvSFdJYzhHMFE0Tkd0RmRq?=
 =?utf-8?B?TjhMSVZ4cG9sbkU1b2xoUXBBQ3ByWlJoVGR1cnZsY2VOS0tndDFNUEw0Q2pQ?=
 =?utf-8?B?OVhWL3Q2Y0RqaUV0UG11cUowdDhhaUNoWjd3NElFNnMwS2tkNjZFWStsVFRh?=
 =?utf-8?B?RksrZ09PenI4eVlGRW53T0o0RVpwRkhRcHB4WGVhZyt6ZHBmdUJ2bUJsSjQ3?=
 =?utf-8?B?T2pPUkZuRWZ3cW43eE1NVlRWVUtwbWh3WU0ybzdscWFUaDd6UzFueEkwMENO?=
 =?utf-8?B?V2ZGWUVVaVFkN2FJY1pXRDh4Y1FHdzB5Ri9FZnpHT3hOZGpEblNxYmhCQUFM?=
 =?utf-8?B?Wmd0YmN5dzUvcjB4c1RQR0NnajYzeHNGS29kUUthMkVSbGxvUi9QdUFkYWNJ?=
 =?utf-8?B?a0RTSGJ3TlpjdHA3Q1Yva1Q3ZVVoQ2lLQkZadHRCY3ViWE9ydjhJRWkzc1JW?=
 =?utf-8?B?ZHRyajVueVB4SkJzTEZPMTFnMlBSditHOUlVMGNHWmtIMkZNa0tMS0Q4d01X?=
 =?utf-8?B?S3g0cjV1dXMrV2l5Y3pJWjVGeUdSbTBQM2o4T0FWOExrbGxJY1VVeTJsRkMx?=
 =?utf-8?B?MmE4Q1R3SEliSFZ1MVhnZEp1cG1ZZkdGdnBvZlRnRURGSURXdHZ5c1JZdFlr?=
 =?utf-8?B?NnUwNENuWXdKVXJrV1NEelVoWWdXSGtsbGc4azNIZ25QY1VxeEkzU2taMUxv?=
 =?utf-8?B?Um5VeDNvdklLOE9EQ3Vnd3QrMU5aYU1SQXZ2R2RnNWVJejk4QjI3N294bUl5?=
 =?utf-8?Q?UdxGxi7V79A=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN9PR12MB5273.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?WnBtUmFUMjNad1l1SVpOSmhlMVQ5VWpGeVZHOFhBUkhnc3VrNWNHK1F3bDZE?=
 =?utf-8?B?K2xGSmZWY0dRbWo5SDRlNC9WWUlJdlhnTzZuTVdIT0Q3WVZxbE9VdUhER1NY?=
 =?utf-8?B?T21wKzA3dDlzNUdkbXR1am5pVXBUUis1dzlhTmZtNmRwMkdEdUlCMDdaOU1V?=
 =?utf-8?B?SzdMZGVhNUdxcW5HdU0xWnIxN1hkSEtZN1h0d053N1Jvb1hMTk9NWDJXeUNN?=
 =?utf-8?B?VVJ5RC9ycllObjZmMWhTS2NCVnArY1FSZWhRMExJQlpxazBBelpmSXVvOGpy?=
 =?utf-8?B?THJEeGFYNFdBV05XYUFOeVhEUnNVZ2xySG5BM2dCRlRwNWM3citMZWc2Wll2?=
 =?utf-8?B?bkFhS1dVRVdGNUdBeER2R084d2dQNWlWNWxxSnlIckRyNTJpVUxmWmNQM0tJ?=
 =?utf-8?B?Y24rY1R2emtUaldKR3ZnQm1HY1hKVG1McWQ4OW5KR1g0ZlVFeXErc2h1SlJu?=
 =?utf-8?B?dzZUck50WVY1bDNibXdFM1lWNXBDVEFvVytjeHE2K0RlSm56NXRrZzRLYWpW?=
 =?utf-8?B?SWZ2MDdWNjRBRFc4K2JEVzRDNEZLdVhIckNSZGNNcmVlcXo3dE50ZlZiVU1E?=
 =?utf-8?B?WllJSjl2RFFOaisrRlpUTC9BdTd3dGNSSEFiWFFhWHQxMkFOMm9ack41NnNN?=
 =?utf-8?B?dG5scWt4WCthRzlwVFFsLzQxS1BpZ2xMWWRrSno0dUQ2QlR1blFzZjBsSFhh?=
 =?utf-8?B?TlZ3cHF4VFdxSmtaOE1VdVRmR3RDM0paUEZmOXExa0prd3R1L0h4UldxOEtI?=
 =?utf-8?B?T3EyNU5CaEpDc3lTWEFUdGpzZUk0eklnT2FIejBuT0RzZERJWldkbmpVZStv?=
 =?utf-8?B?VGxFQ2RNSHFYcUpJc0p4QU4zTWo4d1RCcWJYdEYrSkRYcyt4NklOSzVXamo4?=
 =?utf-8?B?TDMwK1BuMTYvR2xEUURxZGJPdnNvZDREb1ozSEkrSTNvSFQrSWFLeEVYMWhC?=
 =?utf-8?B?NVBEY0JMdWY5L0k0L2ZuMlVOck5vbGtFc1JZMFVaemF0cXFrNGpsS2RDa042?=
 =?utf-8?B?OE5pMkMyTnBjN05WQS9Rc0d5YUg2MktxK1c5clVVY3JDUWl3dm9DL2ZkU0lK?=
 =?utf-8?B?cjhLeE1QaUh3Sm01dFVma2pYSnF4SlMvcmFZMythUXhDTGtHdG14QjRHK1R3?=
 =?utf-8?B?ZHRUSTltdGkvZWdOR01kQmlFQTNGb1pQYVRaR3ptVW9Xa0lFUk1JRGQyRyt2?=
 =?utf-8?B?ZnhUZ1U5d1BBcndWcm9mTmp5OXZWKzMzTCt4MzZ4VlVRQUtMZE02MTRwQ3RZ?=
 =?utf-8?B?aDdMa25ONFJnNFQ0bmZmL2dFYk4rbGtBemMwbkRwRXB1SVFScjdaL2x2aVFP?=
 =?utf-8?B?ck9ORWRuYUxiMFNuVHVxdTQ0MjJIdzd3VWRhZzZiUmVFRFRDTU5GZjJUT0xs?=
 =?utf-8?B?R1RsT3dqQVN0cVhBZ09rdS9XKzJWN0NNRHZseS9HbTEvakZNMlRoeDNrOCtM?=
 =?utf-8?B?TmwweThqeTE5eWVKUndoUDRVb2FSc0IxZFZYOGhGUzZldW5rTWlmdzFoMW5G?=
 =?utf-8?B?NlBOUkhVSTE5dkhZNkZMRHllRllSMGY5ZkgwV3AvelJKZ3lxaHZKOU9rNU1F?=
 =?utf-8?B?UUF5a2NxblN4a0VwQUN1NDB5L1g0ZWNwTTFsd20yc3dqeXhNN3FSQlMyVzFW?=
 =?utf-8?B?S3JKSlh0M2VwYy90NlhuaThia2M4NFpwWStiQXc1ckhqTUp1M1Y5ejlPQXZn?=
 =?utf-8?B?NEpEVHBJd2hkZ1BlV1ZKcVlQMkUrYWprQVBQMGxRc2JPalpqMnVNci84RHV4?=
 =?utf-8?B?WUJ5dCtXRDJMS2MydTIvSWhLbWJLNWJ4dHZ4WFZQMG01TlMwZDJrcktRWkRv?=
 =?utf-8?B?UU1BT3hsd01zeG92c0x6R2FCYmdvbUp3d2VYanlrU3RiTmhpRUxRb2RoOWh0?=
 =?utf-8?B?aWJ4L1Z3VUZIS1RKMFhMaHdhVFpGSmdqaDFYS1lIanFCWWhsSERIUFhqV1ho?=
 =?utf-8?B?S0xvY3M5cXI1cjY4OUxyMjI1NWN2SHpYTmZjUGdjTmd1QTVTS2ltbzZ5VU8x?=
 =?utf-8?B?RHhVZzVmYmZ6R1RPcjBHUCtjalZnT2ZvMEdTMGpOZHYwZkpzQVp3elRXcVhB?=
 =?utf-8?B?djkxdlpTTHJOdkNURmVKdjltUGpEV2dxcVBnS1kySHNLVUNiWjNRSHp3RGNN?=
 =?utf-8?Q?MvynRPUofJTrhL1+DJeQr2SdC?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: df3041e1-0da3-40c4-540a-08dd7b2c5ed0
X-MS-Exchange-CrossTenant-AuthSource: BN9PR12MB5273.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Apr 2025 08:14:25.8235
 (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: 5tMeavXCLyY5Dx7Vslb3di9XP13JqAyHWqHWeMmci12WilkpEWcJtEZ9i7n85mq3
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CYXPR12MB9388



On 11/04/2025 13:04, Ayan Kumar Halder wrote:
> regions.inc is added to hold the common earlyboot MPU regions configuration
NIT: I mentioned this a few times already. Please use imperative mood in commit msg.

> between arm64 and arm32.
> 
> prepare_xen_region, fail_insufficient_regions() will be used by both arm32 and
> arm64. Thus, they have been moved to regions.inc.
> 
> *_PRBAR are moved to arm64/sysregs.h.
> *_PRLAR are moved to regions.inc as they are common between arm32 and arm64.
> 
> Introduce WRITE_SYSREG_ASM to write to the system registers from regions.inc.
> 
> Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
> Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>
Reviewed-by: Michal Orzel <michal.orzel@amd.com>

~Michal



From xen-devel-bounces@lists.xenproject.org Mon Apr 14 08:14:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 08:14:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.949360.1345920 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4Ey0-0002W7-JE; Mon, 14 Apr 2025 08:14:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 949360.1345920; Mon, 14 Apr 2025 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 1u4Ey0-0002VQ-GO; Mon, 14 Apr 2025 08:14:56 +0000
Received: by outflank-mailman (input) for mailman id 949360;
 Mon, 14 Apr 2025 08:14: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=XA/R=XA=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1u4Exz-00025y-FF
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 08:14:55 +0000
Received: from EUR02-AM0-obe.outbound.protection.outlook.com
 (mail-am0eur02on20613.outbound.protection.outlook.com
 [2a01:111:f403:2606::613])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8ac6ea49-1908-11f0-9ffb-bf95429c2676;
 Mon, 14 Apr 2025 10:14:53 +0200 (CEST)
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com (2603:10a6:20b:5e4::22)
 by GV1PR03MB8431.eurprd03.prod.outlook.com (2603:10a6:150:5a::6) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.31; Mon, 14 Apr
 2025 08:14:50 +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.8632.030; Mon, 14 Apr 2025
 08:14: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: 8ac6ea49-1908-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=goWX3scS/uJIWX+opt1fYrmORsLL59s3dkIdIzBCUql/Q60f/4Aiz35LVqJtC/P+JSMb2Y4cbfl5+mokhe5pTYhBPPkhDWgHVsOh26hjSfjEoP4F4BxBbqtYtTxv2BVMU/YuwsgmTXr7BQON320yvmKTdOKjc6cPl4IQYnKaqm/p8M/z1xdPPTjja9JqibhS398k/BkUvjSUuWsrMkt1M9KVMJh4DQDmr6bLmhOe8XEQtiG4E8MwNUkX39TwavXgmXMDwLsacfJnTqfz4mbkRSgfaeQ4nIXvJ3d5pkc2lGXbxFzRsDzkszIfhBpPiLkTw5fW8k9mg0aZQX5YvkRAQw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=cOE4dEhBTz83BtPEP7EAznFRjuPweK6MpHYue0uewNg=;
 b=zIEfXB8hmGIxjVbG2EFI+zdfx2WF8Knzi01MeooL6EC35yG5FPMZ3tI6Jp13LUrw0fviS8oKMD3QqP+82UOj3ibmFlg+DF3Yud9MxxQYP5IWfQsyh0d3c2eLwMU7Qj1pnEWm2CywezYSDbjdYxXjPl3948xalPcKPrHXMue4BVAefbmBiMt+Y+2VyLUizpGO+mylP9okWdnqKquoXHVZJwYOyMudreugNqI4K5HOdsCIJKnbiSwGOMTCWDvQIOgrqJ/d4GDKq+XZH5Lk1FnAvoRpxj8HM62wmx4BT3jOkvXzhkQ91wjnUw5rv5na3eAW6N7JKQ3xjftWprX0xDW/jA==
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=cOE4dEhBTz83BtPEP7EAznFRjuPweK6MpHYue0uewNg=;
 b=Huf6yf3zeYvBUBg8Cl2vg/tbKS6BtWXBFb9n1E3knQ41cGdUFlB8tsZJzbIJTfQPIp1nJlBdwV7CkHy7e0dKHFwDSgSig7x4jIilCT/MgE5M0Z5JFqws3HltoaKQttCvyIWd7K97TmBtrVP3snLSz8o1mIaEQWz9VqiC2/aLXpTFhliNvlzgJzlH8jDOhpXHQ429rLy61RpHvhCEF4B61yz3XErZy5LdCBjbqze3GtwVL1uh8xAx2cQlBsJAGz7QXGyH2o/Pz/ENNVQ2k5VX6TSSVmXaVG1xm0pw5UddeZ9wVsevxXwnVwzj6n1EgB0cUgV8cyx9Hcz8UzaFTNOCuw==
From: Grygorii Strashko <grygorii_strashko@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Stefano
 Stabellini <sstabellini@kernel.org>
CC: Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>, Grygorii Strashko
	<grygorii_strashko@epam.com>
Subject: [ImageBuilder] uboot-script-gen: add xen xsm policy loading support
Thread-Topic: [ImageBuilder] uboot-script-gen: add xen xsm policy loading
 support
Thread-Index: AQHbrRVLbOHOtwYZX0m+iXoOaHec7Q==
Date: Mon, 14 Apr 2025 08:14:50 +0000
Message-ID: <20250414081449.1763962-1-grygorii_strashko@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AS2PR03MB8907:EE_|GV1PR03MB8431:EE_
x-ms-office365-filtering-correlation-id: 6760401c-7ba0-4a42-d37c-08dd7b2c6d8d
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?nHoA6WklNg0bpOBSL5M/YL5x8gsTMQtv6zI0xaM2HxyoaEZBHr9Ym+UKej?=
 =?iso-8859-1?Q?DW+MBiavWxZltEqTMS5InkN50HgdJzFvFKfKFGabRP7mI3NDvrlLEjEfZt?=
 =?iso-8859-1?Q?AunUrq3JlQJ1udfCojqs441qWBkLd0B3la6sdI0FrTAM9TjVAsCKZZK4FK?=
 =?iso-8859-1?Q?1xGoEAIGtjBdOsDGwueUhxpnE5VrhRAzhnfnkhuTf9fgOn62ROXBZRkERP?=
 =?iso-8859-1?Q?+jHGoYnpQVM64/mZv+dB0v+WscQbzbWaqa5LLCIrDSbemN97H8HSu3apuO?=
 =?iso-8859-1?Q?E97v7Ryc3aRZahx05tzRym5JG1miRCfZBfw9oolMiTgV0l1UmKd0wjwtUf?=
 =?iso-8859-1?Q?nqH8Vw9nNw8x+1ucLzXe1PrwlXB6yp3CVsvkTxzaj1SuJGf1XhOcoxbsWg?=
 =?iso-8859-1?Q?Jqj2FJ0dR5vwD8PpZzWFgrtSZdK+nWRwDDWsSJQUAiixzyQx4F0ApHuHwG?=
 =?iso-8859-1?Q?BSGAYgB7MeA/MTVUVx6+rYVKRr83UrmXshuQfOlNBQqKtPB/yNJNX9inFH?=
 =?iso-8859-1?Q?vzhetBqEtbOL/G/TxFL4e6gkNkVC8D0432YzTGrw5DQN88jIyy71Hja2ed?=
 =?iso-8859-1?Q?nDrluCpsZsSx7fR0w9DzYfvhV+Ni8zcXkRYrwBDoU3mXhc/a7q6n2ugKBK?=
 =?iso-8859-1?Q?2jQCpCADFGGLx/XKkcbNWDoVThJhoM8aTsRVBSgTOFTVs290CIDq4pXg/0?=
 =?iso-8859-1?Q?cgfvsYKDAHMi9iFzm9WSWn0V6AVkQKYzsDlCcPeEcip3eQWNGYRu1SSjNA?=
 =?iso-8859-1?Q?V+DxJXaXL1u9RtyzNvb1ujuYxEkmygbWUstLqsW7xBz9dcd9TEJz9VDsv7?=
 =?iso-8859-1?Q?fS3b6zbjGm+/ueMRlHcFu4VKqjBpF6kQ2w3zV/z+LNjkUsf1h6bV2wjTsh?=
 =?iso-8859-1?Q?X8/6z0zmgZ88itweSxKbbrdup6218gMmaovMwk5UtkCZ9fHigl6haZVUfM?=
 =?iso-8859-1?Q?cbjzdvc5PnXdheO1S3LKlvmfibbX62nYsNodygu2IThWME3YGz6GIUrlAV?=
 =?iso-8859-1?Q?3D0ew946fDq0IOtu3pDnB5uQO8Iry86ieT6cQ13kc5zaPWIez+nIhiJDDx?=
 =?iso-8859-1?Q?8GoyKEW0Ku2RUwdGiRljxqVSBYPA0XE+UIp7lnHodZhmbk3gEtqVVD/KbW?=
 =?iso-8859-1?Q?Rf5oC0obt370cZq4aRHx5/RXoGuY8bjZj2GH0lrlEXlHdoQJOhghK2lLYd?=
 =?iso-8859-1?Q?bO3P6OuhwvrNWyVIOYyPcp0lqcrf6n/jmokWjDOQUANehuiqBRGnVNnYjy?=
 =?iso-8859-1?Q?NQ8qj+DqwCEcx9Ur3SExGACX3W0WoVlLkH3fdnUlsXEJ5/L3QxHlNSswJO?=
 =?iso-8859-1?Q?nsfRDnDmxJzhqyU+ZPLldYgQ3AVRaWeFQDSZD5fUhMp8jd6WhZd2pH4FdA?=
 =?iso-8859-1?Q?l+QR54n+QyeldwRAnSYopTkMCYnl2c58hcRfojohbPL5yfVi2gIaTeGtPD?=
 =?iso-8859-1?Q?fSOo01bx9Kjy0tZE5q8XomhaTcEeTVop2tPv+OWaqu/vDEivBYuJbdUySZ?=
 =?iso-8859-1?Q?QYnVll99XK3ofuSom1ZbNV5BePmbLmUYV0qaEmkA4vIQ=3D=3D?=
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)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?Ze8ZpmrnWhr7KgKkr5EDERsD+xoRujy1eimRAUOVOjAfHvefznHlvu0T4v?=
 =?iso-8859-1?Q?W+mXWXAAdCwagNq3dRsc45e6exicuyHC7eLPEq2MXwGXQSEx12thnjqBwt?=
 =?iso-8859-1?Q?Z+MpDNWML2q5zk7oAJRnzKWnouLCQHGu36V/p57BoVzuMmFFflt9XePeya?=
 =?iso-8859-1?Q?oX02d0CI4vcOX3GN96LWvrsGgxgLi/u65O1jZgW8j3ECXHzqv481aEAvpb?=
 =?iso-8859-1?Q?soYJQ5tMfPzye5lc2e+O/BZjBnnt5yO1fAWun1QijWKRWG7Av9TMtne4YV?=
 =?iso-8859-1?Q?PTXvaOn5nzxjhEPA5OtAny8VgTBPQGLUU4+RADihVQNk6V69CrxQac447y?=
 =?iso-8859-1?Q?PHtMCxu95g78uzvuPt5BweCe5dAaeFVWL7jrOGXZKXZfg6XTmSe20g303b?=
 =?iso-8859-1?Q?OI5yIMjRA9b7RwAYIWpiRGBamQzBWGJHbGtxdqBXh7EualhFCwCPiz+SCu?=
 =?iso-8859-1?Q?vtVzcDRe7HF4Et3aK0HI9ISJTJKOVts+KUpyq0Hj6YHW6iOf805Fod9xbU?=
 =?iso-8859-1?Q?0bQthNNLA0QXASHplZ2Asc+5EqQy7wo/epv9vDvsiKMxhgRzZvRyY0SVAo?=
 =?iso-8859-1?Q?aNEgHUu2RaP2XV5WEaegrZgNEVkh2S9TnOFJEKvTuwcbetVA07QpSxgcxy?=
 =?iso-8859-1?Q?JXlZ2xVzPi83Sl0lJXTMNWuoBTghHPM3SQt+nFuDSA1OG12C2HPkWfgZRR?=
 =?iso-8859-1?Q?dyHmyHfxL1JvhybTd5p2JgkmeO3zECdKutFE7lYxRLnaS1oIEygRX8Fo9X?=
 =?iso-8859-1?Q?UnZz6PHghSCIP/MgSnbH2AjWPAnnu05BHsuP2Irfpdsyp2eS9KUBk5y8jI?=
 =?iso-8859-1?Q?yyapeMKBoxw9Q3YRIMwkjSZ77K+1AKUlZ7ypMzhq7rwUg4C91CPBc8iUbC?=
 =?iso-8859-1?Q?jVGIqi4VrB9iqY23gCs+VDsU5NGzl8lgSvxlJ4c99fY5HZUoIwHBYLXflj?=
 =?iso-8859-1?Q?emkPNNKP6eYUnkaZgD4GE1RJXPczDRqCRxHsPwI1goNINi1tJQo3GJ65U1?=
 =?iso-8859-1?Q?5a4m9kqfUZQ2UUWHj4Fpv7VbNTinCTlSz9VS9dWVJrBi1a2eoR2g+zWgiS?=
 =?iso-8859-1?Q?Hk6ajdu7VVuAIiLnIoVoJG2tszpsICuf9K2cdIpuVsrkY4nen20tgJbsve?=
 =?iso-8859-1?Q?zN4oCQY72pzBeAW359praO6im6HOVbtJVFmjdngE6l2SyCl/cve+RL7Jx4?=
 =?iso-8859-1?Q?mFd9BhDgn5n4CS5SG2+CDB5Mv7zDL1Ur8DnzqE1AaZHAxTuG9fjZy4/Czg?=
 =?iso-8859-1?Q?VnYL0tYDnf27pB0RliF/teHxkez5t8A5+LIn12iHTzEVzQdTFXpOj8YYTS?=
 =?iso-8859-1?Q?FEgpXe90wJi7KZmAHAQXMWD4pX+kyHrlgIwCUlLbk4ZfA8hGDmAf+rfLdw?=
 =?iso-8859-1?Q?YHMoBO1QfIgbYZrVR/235Ba0ulpJy5J7zkvn7vouwNnWaDPaB/+hRPXDqQ?=
 =?iso-8859-1?Q?I5f+R8XcjwoVO8Zptvc8SQ3W8Nco6h5zRtbiOoDoQMaCV9vGbiw41VV+Nu?=
 =?iso-8859-1?Q?YYnZ6Cv+TgzR3+JF/kkv1j63d1zAmLsLHxHomUWFsgcxyL372TbunSK/TZ?=
 =?iso-8859-1?Q?mdebhBhDB7Ufb2SzAcITdFSXoJuRn4BCoDz+LFOcFtdMh/wVsbEmpjk+pD?=
 =?iso-8859-1?Q?vgrWGSpxcALQE3L1tSFPyg0Mz38x8CaN2v9DF29Xv4qCiaP/XnSmEOvw?=
 =?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: AS2PR03MB8907.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 6760401c-7ba0-4a42-d37c-08dd7b2c6d8d
X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Apr 2025 08:14:50.2800
 (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: QJTqWsw+1osbQOgVv2338NCC/rczgdPC+5mnXxvVY1jHNSF+euFrHMWnSlY/gwUvHjpEJWMfr9U2cnMH8OhFHa+V81VcYUO3WKNfx2qPusA=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR03MB8431

From: Grygorii Strashko <grygorii_strashko@epam.com>

This patch adds Xen XSM policy loading support.

The configuration file XEN_POLICY specifies Xen hypervisor
XSM policy binary to load.

Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
---
 README.md                |  2 ++
 scripts/uboot-script-gen | 33 +++++++++++++++++++++++++++++++++
 2 files changed, 35 insertions(+)

diff --git a/README.md b/README.md
index 137abef153ce..9106d2a07302 100644
--- a/README.md
+++ b/README.md
@@ -91,6 +91,8 @@ Where:
 - XEN specifies the Xen hypervisor binary to load. Note that it has to
   be a regular Xen binary, not a u-boot binary.
=20
+- XEN_POLICY specifies the Xen hypervisor XSM policy binary to load.
+
 - XEN_COLORS specifies the colors (cache coloring) to be used for Xen
   and is in the format startcolor-endcolor
=20
diff --git a/scripts/uboot-script-gen b/scripts/uboot-script-gen
index c4d26caf5e0e..343eba20e4d9 100755
--- a/scripts/uboot-script-gen
+++ b/scripts/uboot-script-gen
@@ -315,6 +315,15 @@ function xen_device_tree_editing()
     dt_set "/chosen" "#size-cells" "hex" "0x2"
     dt_set "/chosen" "xen,xen-bootargs" "str" "$XEN_CMD"
=20
+    if test "$XEN_POLICY" && test $xen_policy_addr !=3D "-"
+    then
+        local node_name=3D"xen-policy@${xen_policy_addr#0x}"
+
+        dt_mknode "/chosen" "$node_name"
+        dt_set "/chosen/$node_name" "compatible" "str_a" "xen,xsm-policy x=
en,multiboot-module multiboot,module"
+        dt_set "/chosen/$node_name" "reg" "hex" "$(split_addr_size $xen_po=
licy_addr $xen_policy_size)"
+    fi
+
     if test "$DOM0_KERNEL"
     then
         local node_name=3D"dom0@${dom0_kernel_addr#0x}"
@@ -900,6 +909,14 @@ xen_file_loading()
     kernel_addr=3D$memaddr
     kernel_path=3D$XEN
     load_file "$XEN" "host_kernel"
+
+    xen_policy_addr=3D=3D"-"
+    if test "$XEN_POLICY"
+    then
+        xen_policy_addr=3D$memaddr
+        load_file "$XEN_POLICY" "xen_policy"
+        xen_policy_size=3D$filesize
+    fi
 }
=20
 linux_file_loading()
@@ -939,6 +956,22 @@ bitstream_load_and_config()
=20
 create_its_file_xen()
 {
+    if test "$XEN_POLICY" && test $xen_policy_addr !=3D "-"
+    then
+        cat >> "$its_file" <<- EOF
+        xen_policy {
+            description =3D "Xen XSM policy binary";
+            data =3D /incbin/("$XEN_POLICY");
+            type =3D "kernel";
+            arch =3D "arm64";
+            os =3D "linux";
+            compression =3D "none";
+            load =3D <$xen_policy_addr>;
+            $fit_algo
+        };
+	EOF
+    fi
+
     if test "$DOM0_KERNEL"
     then
         if test "$ramdisk_addr" !=3D "-"
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Mon Apr 14 08:25:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 08:25:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.949382.1345930 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4F8D-00066X-Km; Mon, 14 Apr 2025 08:25:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 949382.1345930; Mon, 14 Apr 2025 08:25: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 1u4F8D-00066Q-I4; Mon, 14 Apr 2025 08:25:29 +0000
Received: by outflank-mailman (input) for mailman id 949382;
 Mon, 14 Apr 2025 08:25: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=bgKV=XA=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u4F8C-00066K-6z
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 08:25:28 +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 049fa3e0-190a-11f0-9eae-5ba50f476ded;
 Mon, 14 Apr 2025 10:25:26 +0200 (CEST)
Received: by mail-ej1-x633.google.com with SMTP id
 a640c23a62f3a-ac2bdea5a38so677796366b.0
 for <xen-devel@lists.xenproject.org>; Mon, 14 Apr 2025 01:25:26 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 a640c23a62f3a-acaa1c01e25sm872712366b.79.2025.04.14.01.25.25
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 14 Apr 2025 01:25: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: 049fa3e0-190a-11f0-9eae-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744619126; x=1745223926; 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=zoNouJ9qwR1dupNyKetrUMbNWFc3aU5QRbP7a1MsWoo=;
        b=cSh79gjxBWShp4YtqL4R4JmaEmCqElzqPzdkn4RoNr/vfsDFLW3izYiuK2m2bFr1Pg
         pii2aJjvebNMLgK10n8XJZS5udbfLcJZC/hVt89vMio166HZHWJNJTn1gWspT/w4w88I
         L//iivEPLkFik9xo+4tksIqEtLgWITcahlHDQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744619126; x=1745223926;
        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=zoNouJ9qwR1dupNyKetrUMbNWFc3aU5QRbP7a1MsWoo=;
        b=culNvemIhm1Oud4iukMsBwFDwMsINDYkptU/buAHN83OAsTeoX7QMKlJBq2Oq68Y1B
         HLzs47kt226pIwr6IfgNAqh4KdnvrvAVLunUf2jTzaaIKilJZyry1jgyQ7Ss/NtzPlnj
         KWeD8cIaIxskMrGAoeHQWsgEIBe0GDVZcGo6Vz8oWIrX2rWZ+pwrvOf5BhnBEANW+7ah
         WhDfvEQL/LbjdFHQmSXujHRuvfY0F8OL0uTCCCLYOEz6xalyWG1ioxQafs66MI2T6rQF
         zGsAq3MYB/6YTU7Zc73VvtpIRhI9NwyW+x8TIND+f3c403nX9jHAR6VkWrsrV6kkdOxx
         33bg==
X-Forwarded-Encrypted: i=1; AJvYcCUR9FBViOcKg+9WYUHFCdfjM30S5yjZMeVAXgYo7SsIl/XsyKIhEYqaiut9/c/vivRn7LpMpD6CfII=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw249v6qH5iiIJW0SHkPY4mDUzZOTVGwnYKO2YsdQRSZp/aqK8u
	tCDxAVJBh8YN/WCzyBJywxpjII42up/Fm3ducf/f/Po2tbf/PoCwNiw3BgITs+w=
X-Gm-Gg: ASbGncu02Narlibvb31sYHxtDW1V4lO+6LB43aoSGM9+09b1FITjU1ndpykvWFDTnAT
	VqrF0v1hFGNXW0ruVifrVcDMXaUd7ohFiKjZUFqchfimuM8sO1QpepW76CjeCGw45HEFNj7t57h
	lxLgoiAzf42SwlhIHu2gElydJtK6mH07YtA8ZwQVw3ioggIBfZbAzum9elybgKr8AbhHRPOumFS
	3sNQXhwjhdj5fjHLMcgE4Vl6M7chEvn7rGoVvbQFZgBMhvBdxA7reiow1aEa3t3myd0eG37pG6o
	vKRswsqYWEVZzGJfIzdj6vOPppDjoifhqprJQRMbEsC8mQ==
X-Google-Smtp-Source: AGHT+IHQripU4PhFi1j7yebfZJjdiVsfF32hLYj+IhYfzjkKUKDrxir2KE4lKjapzj2HZEXEr0TaUQ==
X-Received: by 2002:a17:906:f586:b0:ac2:b9c8:b7ba with SMTP id a640c23a62f3a-acad3446a0amr998260566b.10.1744619126004;
        Mon, 14 Apr 2025 01:25:26 -0700 (PDT)
Date: Mon, 14 Apr 2025 10:25:24 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jason Andryuk <jason.andryuk@amd.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
	xen-devel@lists.xenproject.org,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>, Xenia.Ragiadakou@amd.com,
	Alejandro.GarciaVallejo@amd.com,
	"Lira, Victor M" <VictorM.Lira@amd.com>
Subject: Re: [RFC] xen/x86: allow overlaps with non-RAM regions
Message-ID: <Z_zGdE91KwlYxu_A@macbook.lan>
References: <alpine.DEB.2.22.394.2504031755440.3529306@ubuntu-linux-20-04-desktop>
 <Z--0USril0UIhR4R@macbook.lan>
 <3c5dfd26-3c12-498b-aca4-0beac4e991a5@amd.com>
 <Z_jFSb2-efexUNlL@macbook.lan>
 <9ed89e50-c645-407d-80b4-5b78cb6e36fa@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <9ed89e50-c645-407d-80b4-5b78cb6e36fa@amd.com>

On Fri, Apr 11, 2025 at 09:45:26AM -0400, Jason Andryuk wrote:
> On 2025-04-11 03:31, Roger Pau Monné wrote:
> > Thanks Jason for getting back, I'm intrigued by this issue :).
> > 
> > On Thu, Apr 10, 2025 at 04:55:54PM -0400, Jason Andryuk wrote:
> > > On 2025-04-04 06:28, Roger Pau Monné wrote:
> > > > On Thu, Apr 03, 2025 at 06:01:42PM -0700, Stefano Stabellini wrote:
> > > > > On one Sapphire AMD x86 board, I see this:
> > > > > 
> > > > > 
> > > > > (XEN) [0000003943ca6ff2]  [00000000f0000000, 00000000f7ffffff] (reserved)
> > > > > (XEN) [00000039460886d9]  [00000000fd000000, 00000000ffffffff] (reserved)
> > > > > [...]
> > > > > (XEN) [    4.612235] 0000:02:00.0: not mapping BAR [fea00, fea03] invalid position
> > > > > 
> > > > > 
> > > > > Linux boots fine on this platform but Linux as Dom0 on Xen does not.
> > > > > This is because the pci_check_bar->is_memory_hole check fails due to the
> > > > > MMIO region overlapping with the EFI reserved region.
> > > > 
> > > > That's weird.  (Partially) the reason to not attempt to map such BAR
> > > > is that it should already be mapped, because at dom0 creation time all
> > > > reserved regions are added to the p2m (see arch_iommu_hwdom_init()).
> > > > If that's not the case we should figure out why this reserved region
> > > > is not added to dom0 p2m as part of arch_iommu_hwdom_init().
> > > 
> > > Victor discovered these regions are type 11 EfiMemoryMappedIO, but they get
> > > converted to e820 RESERVED.  The BAR points into it.
> > > 
> > > 00000f0000000-00000f7ffffff type=11 attr=800000000000100d
> > > 00000fd000000-00000fedfffff type=11 attr=800000000000100d
> > > 00000fee00000-00000fee00fff type=11 attr=8000000000000001
> > > 00000fee01000-00000ffffffff type=11 attr=800000000000100d
> > > 
> > > Xenia discovered Linux keeps small regions like this reserved, but lets
> > > larger ones (>= 256kb) become holes.  See the comment in Linux
> > > arch/x86/platform/efi/efi.c:efi_remove_e820_mmio() around line 301.
> > 
> > Right, but whatever Linux decides to do with the reserved regions
> > won't affect how Xen maps them into the p2m.  Anything that's reserved
> > in the e820 should end up identity mapped in the p2m for PVH dom0,
> > unless it's being exclusively used by Xen (see
> > dom0_setup_permissions() use of iomem_deny_access() to deny dom0
> > access to some MMIO regions).
> 
> Oh, my point was more that Baremetal Linux won't have reserved ranges in
> these regions, so there would not be any BAR conflicts.  Though I'm not sure
> if it checks.
> 
> If Xen removed them from the memory map, then pci_check_bar() ->
> is_memory_hole() would pass.

Yes, it would pass.  The underlying issue however is that such region
should already be mapped in the p2m, and hence accesses shouldn't
fault.

When building dom0:

(XEN) [    7.943830] *** Building a PVH Dom0 ***
(XEN) [    7.955960] d0: identity mappings for IOMMU:
(XEN) [    7.965494]  [00000000a0, 00000000ff] RW
(XEN) [    7.974336]  [0000009bff, 0000009fff] RW
(XEN) [    7.983172]  [00000cabc9, 00000cc14c] RW
(XEN) [    7.992049]  [00000cc389, 00000cc389] RW
(XEN) [    8.000890]  [00000cc70a, 00000cd1fe] RW
(XEN) [    8.010065]  [00000ce000, 00000cffff] RW
(XEN) [    8.018904]  [00000fd000, 00000fd2ff] RW
(XEN) [    8.027745]  [00000fd304, 00000febff] RW
(XEN) [    8.036584]  [00000fec02, 00000fedff] RW
(XEN) [    8.045546]  [00000fee01, 00000fffff] RW
(XEN) [    8.054519]  [000080f340, 00008501ff] RW

All the ranges listed here are added to the p2m, and hence the range
[0xfea00, 0xfea03] should be covered by:

(XEN) [    8.027745]  [00000fd304, 00000febff] RW

The expectation is that those mappings are never removed from dom0
p2m.

> > > The description of EfiMemoryMappedIO is a little confusing, which is
> > > probably why its use in unclear.
> > > 
> > > ```
> > > Table 7.5 Memory Type Usage before ExitBootServices()
> > > EfiMemoryMappedIO
> > > 
> > > Used by system firmware to request that a memory-mapped IO region be mapped
> > > by the OS to a virtual address so it can be accessed by EFI runtime
> > > services.
> > > 
> > > Table 7.6 Memory Type Usage after ExitBootServices()
> > > EfiMemoryMappedIO
> > > 
> > > This memory is not used by the OS. All system memory-mapped IO information
> > > should come from ACPI tables.
> > > ```
> > > 
> > > The two after ExitBootServices sentences seem contradictory.  I wonder if it
> > > should be "Ignore this memory type - All system memory-mapped IO information
> > > should come from ACPI tables".
> > 
> > Not very helpful indeed.  The description in "before
> > ExitBootServices()" seems more sensible to me: if the MMIO region is
> > used by runtime services Xen should ensure it's always mapped in the
> > dom0 p2m (which Xen should in principle already do).
> > 
> > > > Can you paste the dom0 build output when booted with `iommu=verbose
> > > > dom0=pvh,verbose`?
> > 
> > Would it be possible to see the output of a debug=y build when booted
> > with `iommu=verbose dom0=pvh,verbose` (with or without pf-fixup,
> > either is fine).
> > 
> > I'm specially interested in the ranggeset contents printed after "d0:
> > identity mappings for IOMMU:", but if possible would like to see the
> > full boot log (including Linux dom0).
> 
> Attached.
> 
> Regards,
> Jason

> (XEN) [00000039f8a5e9d8] Xen version 4.21-unstable (root@) (gcc (Alpine 12.2.1_git20220924-r10) 12.2.1 20220924) debug=y Mon Apr  7 21:19:20 UTC 2025
> (XEN) [00000039fd29ca67] Latest ChangeSet:
> (XEN) [00000039fe824ec4] build-id: 5b79e5a1e7c0b3f356c8d413924be90e6610ea62
> (XEN) [0000003a00cfcb68] Console output is synchronous.
> (XEN) [0000003a02842e16] CPU Vendor: AMD, Family 23 (0x17), Model 96 (0x60), Stepping 1 (raw 00860f01)
> (XEN) [0000003a05a066b4] BSP microcode revision: 0x0860010c
> (XEN) [0000003a077362ac] Bootloader: GRUB 2.13
> (XEN) [0000003a08e2dcdd] Command line: console=com1 com1=57600,8n1,0x3F8,4 sched=null loglvl=all guest_loglvl=all console_timestamps=boot iommu=verbose dom0=pvh,verbose,pf-fixup dom0_max_vcpus=4 dom0_mem=4G argo=1,mac-permissive=1 sync_console noreboot wow
> (XEN) [0000003a109a0624] Xen image load base address: 0xc6600000
> (XEN) [0000003a1293662b] Video information:
> (XEN) [0000003a13ebea87]  VGA is graphics mode 1920x1200, 32 bpp
> (XEN) [0000003a15e52f98] Disc information:
> (XEN) [0000003a173606a3]  Found 0 MBR signatures
> (XEN) [0000003a18b4ce18]  Found 1 EDD information structures
> (XEN) [0000003a1a8f6353] EFI RAM map:
> (XEN) [0000003a1bb9f456]  [0000000000000000, 000000000009ffff] (usable)
> (XEN) [0000003a1de8d54f]  [00000000000a0000, 00000000000fffff] (reserved)
> (XEN) [0000003a2026fad3]  [0000000000100000, 0000000009bfefff] (usable)
> (XEN) [0000003a2255f258]  [0000000009bff000, 0000000009ffffff] (reserved)
> (XEN) [0000003a249416b9]  [000000000a000000, 000000000a1fffff] (usable)
> (XEN) [0000003a26c2deaa]  [000000000a200000, 000000000a20cfff] (ACPI NVS)
> (XEN) [0000003a290124b1]  [000000000a20d000, 00000000cabc8fff] (usable)
> (XEN) [0000003a2b2ffbce]  [00000000cabc9000, 00000000cc14cfff] (reserved)
> (XEN) [0000003a2d6e36bb]  [00000000cc14d000, 00000000cc195fff] (ACPI data)
> (XEN) [0000003a2fb3feea]  [00000000cc196000, 00000000cc388fff] (ACPI NVS)
> (XEN) [0000003a31f22330]  [00000000cc389000, 00000000cc389fff] (reserved)
> (XEN) [0000003a34304f7f]  [00000000cc38a000, 00000000cc709fff] (ACPI NVS)
> (XEN) [0000003a366e8ff9]  [00000000cc70a000, 00000000cd1fefff] (reserved)
> (XEN) [0000003a38acabf9]  [00000000cd1ff000, 00000000cdffffff] (usable)
> (XEN) [0000003a3adba3f1]  [00000000ce000000, 00000000cfffffff] (reserved)
> (XEN) [0000003a3d19c902]  [00000000f0000000, 00000000f7ffffff] (reserved)
> (XEN) [0000003a3f57f2f0]  [00000000fd000000, 00000000ffffffff] (reserved)
> (XEN) [0000003a419613b2]  [0000000100000000, 000000080f33ffff] (usable)
> (XEN) [0000003a43c4eddf]  [000000080f340000, 00000008501fffff] (reserved)
[...]
> (XEN) [    7.943830] *** Building a PVH Dom0 ***
> (XEN) [    7.955960] d0: identity mappings for IOMMU:
> (XEN) [    7.965494]  [00000000a0, 00000000ff] RW
> (XEN) [    7.974336]  [0000009bff, 0000009fff] RW
> (XEN) [    7.983172]  [00000cabc9, 00000cc14c] RW
> (XEN) [    7.992049]  [00000cc389, 00000cc389] RW
> (XEN) [    8.000890]  [00000cc70a, 00000cd1fe] RW
> (XEN) [    8.010065]  [00000ce000, 00000cffff] RW
> (XEN) [    8.018904]  [00000fd000, 00000fd2ff] RW
> (XEN) [    8.027745]  [00000fd304, 00000febff] RW
> (XEN) [    8.036584]  [00000fec02, 00000fedff] RW
> (XEN) [    8.045546]  [00000fee01, 00000fffff] RW
> (XEN) [    8.054519]  [000080f340, 00008501ff] RW
> (XEN) [    8.064135] 0000:02:00.0: not mapping BAR [fea00, fea03] invalid position
> (XEN) [    8.078698] 0000:03:00.0: not mapping BAR [fe900, fe90f] invalid position
> (XEN) [    8.093260] 0000:03:00.0: not mapping BAR [fe910, fe913] invalid position
> (XEN) [    8.107815] 0000:04:00.0: not mapping BAR [fe700, fe77f] invalid position
> (XEN) [    8.122376] 0000:04:00.3: not mapping BAR [fe500, fe5ff] invalid position
> (XEN) [    8.136936] 0000:04:00.4: not mapping BAR [fe400, fe4ff] invalid position
> (XEN) [    8.151498] 0000:05:00.0: not mapping BAR [fe801, fe801] invalid position
> (XEN) [    8.166056] 0000:05:00.1: not mapping BAR [fe800, fe800] invalid position

Note those messages don't imply that the BARs are not mapped in the
dom0 p2m, for example here all the ranges listed as invalid positions
are already mapped into the p2m and covered by the range:

(XEN) [    8.027745]  [00000fd304, 00000febff] RW

> [    6.378198] nvme nvme0: pci function 0000:02:00.0
> (XEN) [   20.964789] d0v3 unable to fixup memory read from 0xfea0300c size 4: -1
> [    6.387692] a(XEN) [   20.981772] d0v3 unable to fixup memory write to 0xfea03000 size 4: -1

And here the address is somehow not populated in the p2m, despite
being listed as an identity mapped region.  I think the real issue
here is why this address is somehow unmapped from the p2m (or maybe
not even added in the first place?).  Xen does identify it as a region
that must be identity mapped.

It's a fairly wild guess, but can you try if:

https://xenbits.xen.org/gitweb/?p=xen.git;a=commit;h=e118fc98e7ae652a188d227bd7ea22f132724150

Makes a difference?  vPCI uses rangesets extensively, so the bug fixed
above could in theory cause unmap operations to remove unintended
regions, and could explain the symptoms you are seeing here.

If that commit doesn't change behavior we would need to figure out why
the identity ranges are either not properly mapped, or unexpectedly
unmapped at a later point.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Apr 14 08:38:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 08:38:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.949394.1345941 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4FKk-0000wK-KU; Mon, 14 Apr 2025 08:38:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 949394.1345941; Mon, 14 Apr 2025 08: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 1u4FKk-0000wD-HY; Mon, 14 Apr 2025 08:38:26 +0000
Received: by outflank-mailman (input) for mailman id 949394;
 Mon, 14 Apr 2025 08:38: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=m6tK=XA=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1u4FKj-0000w7-9f
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 08:38:25 +0000
Received: from NAM12-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam12on20608.outbound.protection.outlook.com
 [2a01:111:f403:2417::608])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id cdb8539b-190b-11f0-9ffb-bf95429c2676;
 Mon, 14 Apr 2025 10:38:14 +0200 (CEST)
Received: from BN9PR12MB5273.namprd12.prod.outlook.com (2603:10b6:408:11e::22)
 by MN0PR12MB6320.namprd12.prod.outlook.com (2603:10b6:208:3d3::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.32; Mon, 14 Apr
 2025 08:38:11 +0000
Received: from BN9PR12MB5273.namprd12.prod.outlook.com
 ([fe80::cf66:58ab:47be:4b13]) by BN9PR12MB5273.namprd12.prod.outlook.com
 ([fe80::cf66:58ab:47be:4b13%5]) with mapi id 15.20.8632.030; Mon, 14 Apr 2025
 08:38: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: cdb8539b-190b-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=FZ1XgOfze+dQVZ6bEIRGJFnk8KjZCnDmGl3KS4nqOoWUvB3pzKFzzn5vDweJGLEH7QgWULasPVZczJbyrwMcf6uvM23/bG2IsHI5CrcsNhTEWDNCzpaGlfumHsEGBwSUYvU9Wqh5zXn3Tz7KqKp0stx2JBDhfWLKpQITeWnyuM/klI+LETa7qnkk1zHVQtbZEb81zG+8uECthf3Pp9EqXO4VEhMa2LMnFpy6uVbMD8wew1G4dnHr7O0IhnRbgBxi5jtNCy0P/Oce2faTGu0uoCjQ4vxkBCTpgUER/297AytJA9pHU66oSZ6UjT2jjgClVGa5QEi0SyALq7qZn/aICA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=UZK1tjQsCI74AQnsWSptWmcfJCmWCypjtZwD9Dp5C9k=;
 b=yNSG9OcpUv+UlfF5T4zZWA8PbER/KfpYgerTJHXe23lS+GXocldY/7urVzSLvpcshiaZGLl98/iOrA7J1Y/uBgI2JLawt0QSjGNbugjbJpZTSLVxIi0pXWjLn8/bpD9zyireqBH70zhoBNNL9wCr/0vMcHbhq/XVzuaYD1Tk9zmvqGEazMwh68O6tXFnqOYU1rylusmXeHHrAEGyQiF2eR3chH3q3OyqcXGi6RhVIpVkEPGQntss37hio0PfqnThr+mTbtGYrr7Svor3HI1htLbx3pYyDhylxq9rpPF20JhFkyB/Q1cwTpXifAa/Fn3bCJEraixmANo5RTABnDosMA==
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=UZK1tjQsCI74AQnsWSptWmcfJCmWCypjtZwD9Dp5C9k=;
 b=p1F8wPPtGyvuCK4+EgLaUaWJvcCHhJElpO77UMijosMR3DwlekbjwAtOhx0+wLcPS6/wrnDMnkM4AIFKvq0vAxfEGDprFLV9TrIcGlPiK+omlxSTSgmxzcoIq1dVvqg7nJRSQB9l/zWRVijVwK1iiMZDVGc/H9VgEXGuhFEiSBs=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <f4c43d72-b403-4829-b490-46823391f82c@amd.com>
Date: Mon, 14 Apr 2025 10:38:07 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 2/3] xen/arm32: Create the same boot-time MPU regions
 as arm64
To: Ayan Kumar Halder <ayan.kumar.halder@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>,
 Luca Fancellu <luca.fancellu@arm.com>
References: <20250411110452.3748186-1-ayan.kumar.halder@amd.com>
 <20250411110452.3748186-3-ayan.kumar.halder@amd.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <20250411110452.3748186-3-ayan.kumar.halder@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR3P281CA0148.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:95::7) To BN9PR12MB5273.namprd12.prod.outlook.com
 (2603:10b6:408:11e::22)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN9PR12MB5273:EE_|MN0PR12MB6320:EE_
X-MS-Office365-Filtering-Correlation-Id: a229a715-6479-4279-227c-08dd7b2fb05d
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?SUdBSS9RblFNVk9EOFRpNEMraHVqckZWd1U3cmwxNjdSLzdBZHpGS202UlAr?=
 =?utf-8?B?U0xrL2NDRzNvelppSVJDK3J1OHdPdlVTTFBCbkJrTDRuNFVuN0hzK1FwaDJi?=
 =?utf-8?B?SzMxU08vcE5GckdISC9QT0lIK1M2cjNONTJpZFdxUU1BRlNEaVJVempYbXdE?=
 =?utf-8?B?c1NtZ3h3RjEwbFVVNXdkZ0dsUC9FRGt2Qm5ybTgrYU52clFvZ2dyYlFsLzQ0?=
 =?utf-8?B?eFR6SGlhNW83cWNGazYrdklLNjduMjdkbEg5eXVhc2pndmFIRXQrK0YyRUV3?=
 =?utf-8?B?cnN5TnUrb2pxYnRZUWk4RW1OTVhnYk1jbHJ6dFFSTnlqd1grMmgvelNTVjhr?=
 =?utf-8?B?bTY4K3pSek1aeWlmck4xd2o5WFdrUzJRYUROV1EybWt0bjlEbEI0QkhaSTRI?=
 =?utf-8?B?YnF1M2FQL2Y3NFowOFdBdE94Uk5jNjFreUljbkgyTnJHcW43czVsMlFlQjlX?=
 =?utf-8?B?Vi9BdGtPTE1UTTQycmpmaFl3SFN2ZVlidFRCUUY0cnowbHlTREtnVWZpWmM1?=
 =?utf-8?B?bW5OMmVJR3lyYU52aDB3ZkRZcHF1bGJvR1psakc4R2RoL0MyN0RpS0hPbGsx?=
 =?utf-8?B?N2ZKYldWQzlVeHBFcmFIb0FoNW9HMFd6RkNnTWY4QjAyQlFQNlM0UHRnT2E1?=
 =?utf-8?B?dGQvOVJsTCs1QVhKeGloYVRFSDNWNGdRYi9JcWljanR0OTVuTzBpSlFwRWFm?=
 =?utf-8?B?bnBXN2pWTGNLejdkUnRvVkExbHRCL3JFWmlhR0MzTEtmZUdibytqOWpxd3dD?=
 =?utf-8?B?OGZFcHR4NmcwaXYzbkJxWVFMK2V1Y2VJUnZnaTczcDY5Yk03Vk5ER0tCQTVG?=
 =?utf-8?B?djVWeFVmZG5weENzOEJYUmxRL2N0WUdMNDZFRGh0Rm5NZ25waCttZVBBTjZO?=
 =?utf-8?B?MFRpVm5YQ0NkUmdqTHhEYVFBWnFPTnZrMjFvZ0lCbzZaYnVBb0dMckR1a0M2?=
 =?utf-8?B?blBPdjgzQVp3VzJXN3dGbjJmWWIvN05pREZpYUlZSis5Nzh0K1A1bktKbUZj?=
 =?utf-8?B?a1M0M3Qva21jTmNtSE5NbE9sTDRQR2lJSzZLc3hTdUpwZ3VkbTRCc0piQ2ZK?=
 =?utf-8?B?ajZBb2E0U1lVbTVXeTdDYjA2UjlxU3lQRUx4TE1hU1cxNU9YRENZK3ZpREZI?=
 =?utf-8?B?V0ZwdXdCUWM5dDVYUEFXRkZaeDV4ZFZQQTdMdTRVL3RpYVdIS2UzVmVmWlVp?=
 =?utf-8?B?YzQ4VEZCN09XS3NEck5mZlBLTDFjY1g5djVVWXlaVkVLRVgyaUdzU1dnRFRZ?=
 =?utf-8?B?Qjdqc3dwRTFkRzg2Uko5N2tSTytUenNaazJvZXQwWTZMcnNJcU4rSVVlVFQ5?=
 =?utf-8?B?dXc0c1hQekdRb3lZakRnZ20rZWxDZk9PK0NCUjhDMkh2NUJEcDZ0dmFINHdq?=
 =?utf-8?B?dDFGMW0wUG1oM0EvYzlMSXA0Q0xESExyTGh3c1FxYUR2U2NySUhFeWUrNWR6?=
 =?utf-8?B?STZOUzBhZWx5U3lXd1RqZkhRdG5EaGtpRkVodmNFY0h4MndVWUJOM3dqWkht?=
 =?utf-8?B?TXBZYndoZ2QzUW4xTjNQNlJFcStZZURTK3RkUkpEVlIwK2c4VFA1b0RmTzZV?=
 =?utf-8?B?aGtEZFhQQjhUZ3IvelRjRDNacFBwbCsyVWdmNVExY0lINkJINE9GT1dFVm55?=
 =?utf-8?B?V1NvbFVsSk5YQTd1U1Y0SHp2Z1FQOHFQQnFzUVZUYmpUb00zdUU3d0l3V1U3?=
 =?utf-8?B?K0p4MXNnZG5HbnZUQWM4ZUYrbFZxMkVEWWhFS0tRNElVN0N1ZFo2TFRMZlI3?=
 =?utf-8?B?Wk9BV084OGxSV0RGNVl4UzQ2cXNoL3h3cm5qcmFyVGl1R24zNkJ5ZWdVMzZs?=
 =?utf-8?B?d0VSdmhZenB5Z0JSMUhJbGdYeEYvTzl6Yjl2a0ora3VwSkVJQ01jek1QdjJk?=
 =?utf-8?B?YnJubmh5Q3RCSlRUSm1pMElGMThjcmt0UTY3eEJxQ0pIeG1DeTFaajZFc2lL?=
 =?utf-8?Q?Tn8NoqcEuV0=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN9PR12MB5273.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?Y1JSTHhxRUdzOWJ5TERBN05kMHpzc2JqZlVjdWw3UGpJMEYzcWVxendZU1ZO?=
 =?utf-8?B?bWQ1b1NwZlNJUzhWd0YyU0VJL0lRc3BxSVNTYXBOT2JIdUJQc2hsWElrMlh6?=
 =?utf-8?B?ZVpYL2ZpRkhsRjZEUWczeU5Cd2NCZTZuYW9WMGRiRERRSnlCOTByek9mU2lk?=
 =?utf-8?B?Z1VxMHJMMThzL2ZlWUo3bHZvdEZJQXhtQXNFZ2t2ZlR4aHJJNlU1ZnRLUUh1?=
 =?utf-8?B?K0pKdmljejU5ZjZ2TmtFZlpacDFjSG9BbC9vd2paSUdZRDRwa1U4OXZYNTBK?=
 =?utf-8?B?NXM5NXdEUFBHeWs2Q3Bta1ZQdWg2ZFFkamY3K3FqM0JPVlBtOG9SZUg3ZnZI?=
 =?utf-8?B?MUpYWm0wKy9md0xEbCt1WXFJVWxEbjc3eGsvUGgwNUNReHA1SkkvUFdnVDln?=
 =?utf-8?B?RnAwYkNGNWxEbWtnZERWN3dyQ1RBK0dTcEV1NEhueWpGcFc5STB4NEQ1cmJk?=
 =?utf-8?B?UTBJODdPZGZYM0ZxMXBaeXpwMysydFpOKzB3S25mSzgvckV4Y2Vac0hvV2xY?=
 =?utf-8?B?UW9jc05icTlFWnd2eTRDRlFZcjJybW5wd0J3YjRmVmtrbDZNZzFESThsR2ZQ?=
 =?utf-8?B?V05YSlRKUkgvd3NDSm5CLzdBUTQ3WjUyRGdvMTBJWEsvYnFUV0l1OVhuQmRx?=
 =?utf-8?B?WGV2VTVldkJCY3NvTWdEME9waUY5UWk4NitPOXN1OURMUCs2L25PMjdCcUh0?=
 =?utf-8?B?NjF4YTVYQXIvOHA0d2xqK2tLc1ZQNWcvTEptdjlnSDJQWjQxaU5VZGVtQ1hF?=
 =?utf-8?B?OTVXMkY4b2UzRXd4ZThhMVVWWnRLVFRJbmY0SjdRYVZiZ1VsM3FIL3lxS1I3?=
 =?utf-8?B?djJYdnh5VGJ4YmI5U29JeXVVS0dNbHBQNnZpZFN3eWhOaHZkRlc3Zzl2TG0y?=
 =?utf-8?B?S3A1TWhDaHdvU1VQNkppRTZNNnIvVWtRdnBhWGlkRE9yZlQwbmYxK3k1MUhF?=
 =?utf-8?B?Tm4zZmRYYTVGYUVpS1lSMTdFenRhNk9EWU9UVmVQdUdTSWd4WUdtZHY2SUtL?=
 =?utf-8?B?dFZOc0szT0FaUjhmc1pNcWZzQmdPRDl2SGVEVXRMRVYrSnVHSTh0RjNsdURW?=
 =?utf-8?B?bFBRekE4b0J2Z1FDdG1kMlJHMDFKVHlrcU1qWXY4K2dZT3FNZk5kQmlSeThE?=
 =?utf-8?B?OXlKeVZsempuQVBZbFhXK254SzFKSmhpaUtURklselQyWnZlZUdtR3FxUTBl?=
 =?utf-8?B?ZXZwakhuOWhtRnFDQzZGdkdvSFNRbjMvbTNFSDVhNmNGdSs3SkU0ZVpKSDBo?=
 =?utf-8?B?LytRN0ltTFJmM2l5MW1iZHVYVWd1YnZQQnl2RkVSK1ZZY0JLM09Bd3BCdG16?=
 =?utf-8?B?QmZSdWxrTzFOMFpGeWN5WG52YXdhM0xWNFJwNFNkMWE0T0ZXam5sMHpCTjNZ?=
 =?utf-8?B?YVlIeTRZZDh1QUZWTEt0a2Joczl1dHgyTHRsbk1pMEdJN3JqTHdnVnpMNHVU?=
 =?utf-8?B?b1lTTHQ3VkdMQmN0YXVXdkExSTJ3QURCR3JZWkFIK2xoaTc0bnlHUXhzaWRy?=
 =?utf-8?B?VlVnSVMyRjBraDRKM3ptZHBOQ1JPcGRaQXJteGI2c0lWdkEzQ2JrV1k1TFRX?=
 =?utf-8?B?SUlsZHY4anRHbUs4eHQxcHdTMTdBS2l4cE05aFAzZzFacEJabWRhcnRQMnli?=
 =?utf-8?B?VXM0ZzhkMEo5MGx3ZVlKZFdRSFlMY1hvemNrLzJjZXdBZFpRVmYxZ0hlazky?=
 =?utf-8?B?Mk96Mnk3N3NHV2ZyMGM4NkxnUGRRRnRzVzI4azNsOGxZZ052MGxOdGpRWGhF?=
 =?utf-8?B?bTd5V3lNVXVRaHJFN2dzNm5QU1ZGOVVKRUI1cloySVVabjVTUElvWVBrVWZw?=
 =?utf-8?B?Q3ZwNHQycWtwN3hnbXJKNEUvWEZyU3RIN2hoUndxbVdueVI4VGNMZUdaYXZS?=
 =?utf-8?B?TUk2K2pkNlRtbWp2ZUREZjFnUHJ4bWlMVXZQNlQ3VkMzekk1SDRSRk5GS1lv?=
 =?utf-8?B?bWN5d25hVUtOYkltMFpRVERjVCtveU5EN2x0eEVmeVNha25ER1N4Mk5ySCt0?=
 =?utf-8?B?djZkb05ZeVZpSTBITXNMZksxTkVXSTR6L0VUMmRsQ3c5MGlDa2toY1pqZ0tm?=
 =?utf-8?B?aFA0c0tjWG1rcWJpUzJubUtIMHFtQ3h4dlc0ZGtNSWg2QkNHV1V0V25aRVB5?=
 =?utf-8?Q?mUF8kOEQ9lBM5MxLiL7/T+VLy?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a229a715-6479-4279-227c-08dd7b2fb05d
X-MS-Exchange-CrossTenant-AuthSource: BN9PR12MB5273.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Apr 2025 08:38:11.1040
 (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: KvaHP9EwSU8FBHvGJduPipAtvDfZnR1Kkr3u/CQb6U9JIMemxcWiZa3TMuMDOG0A
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN0PR12MB6320



On 11/04/2025 13:04, Ayan Kumar Halder wrote:
> Boot-time MPU protection regions (similar to Armv8-R AArch64) are created for
> Armv8-R AArch32.
> Also, defined *_PRBAR macros for arm32. The only difference from arm64 is that
> XN is 1-bit for arm32.
> Defined the system registers and macros in mpu/cpregs.h.
> 
> Introduced WRITE_SYSREG_ASM() to write to system registers in assembly.
It really reads odd when you write what patch does in past tense.

> 
> Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
> Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>
> ---
> Changes from
> 
> v1 -
> 
> 1. enable_mpu() now sets HMAIR{0,1} registers. This is similar to what is
> being done in enable_mmu(). All the mm related configurations happen in this
> function.
> 
> 2. Fixed some typos. 
> 
> v2 -
> 1. Include the common prepare_xen_region.inc in head.S.
> 
> 2. Define LOAD_SYSREG()/STORE_SYSREG() for arm32.
> 
> v3 -
> 1. Rename STORE_SYSREG() as WRITE_SYSREG_ASM()
> 
> 2. enable_boot_cpu_mm() is defined in head.S
> 
> v4 -
> 1. *_PRBAR is moved to arm32/sysregs.h.
> 
> 2. MPU specific CP15 system registers are defined in mpu/cpregs.h. 
> 
> v5 -
> 1. WRITE_SYSREG_ASM is enclosed within #ifdef __ASSEMBLY__
> 
> 2. enable_mpu() clobbers r0 only.
> 
> 3. Definitions in mpu/cpregs.h in enclosed within ARM_32.
> 
> 4. Removed some #ifdefs and style changes.
> 
>  xen/arch/arm/arm32/Makefile              |   1 +
>  xen/arch/arm/arm32/mpu/Makefile          |   1 +
>  xen/arch/arm/arm32/mpu/head.S            | 104 +++++++++++++++++++++++
>  xen/arch/arm/include/asm/arm32/sysregs.h |   9 ++
>  xen/arch/arm/include/asm/cpregs.h        |   2 +
>  xen/arch/arm/include/asm/mpu/cpregs.h    |  27 ++++++
>  6 files changed, 144 insertions(+)
>  create mode 100644 xen/arch/arm/arm32/mpu/Makefile
>  create mode 100644 xen/arch/arm/arm32/mpu/head.S
>  create mode 100644 xen/arch/arm/include/asm/mpu/cpregs.h
> 
> diff --git a/xen/arch/arm/arm32/Makefile b/xen/arch/arm/arm32/Makefile
> index 40a2b4803f..537969d753 100644
> --- a/xen/arch/arm/arm32/Makefile
> +++ b/xen/arch/arm/arm32/Makefile
> @@ -1,5 +1,6 @@
>  obj-y += lib/
>  obj-$(CONFIG_MMU) += mmu/
> +obj-$(CONFIG_MPU) += mpu/
>  
>  obj-$(CONFIG_EARLY_PRINTK) += debug.o
>  obj-y += domctl.o
> diff --git a/xen/arch/arm/arm32/mpu/Makefile b/xen/arch/arm/arm32/mpu/Makefile
> new file mode 100644
> index 0000000000..3340058c08
> --- /dev/null
> +++ b/xen/arch/arm/arm32/mpu/Makefile
> @@ -0,0 +1 @@
> +obj-y += head.o
> diff --git a/xen/arch/arm/arm32/mpu/head.S b/xen/arch/arm/arm32/mpu/head.S
> new file mode 100644
> index 0000000000..b2c5245e51
> --- /dev/null
> +++ b/xen/arch/arm/arm32/mpu/head.S
> @@ -0,0 +1,104 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +/*
> + * Start-of-day code for an Armv8-R-AArch32 MPU system.
> + */
> +
> +#include <asm/arm32/macros.h>
> +#include <asm/arm32/sysregs.h>
> +#include <asm/cpregs.h>
> +#include <asm/mpu.h>
> +#include <asm/mpu/regions.inc>
> +#include <asm/page.h>
> +
> +/*
> + * Set up the memory attribute type tables and 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 AArch32 architecture is
> + * IMPLEMENTATION DEFINED, we intend to turn off the Background region here.
> + *
> + * Clobbers r0
> + */
> +FUNC_LOCAL(enable_mpu)
> +    /* Set up memory attribute type tables */
> +    mov_w r0, MAIR0VAL
> +    mcr   CP32(r0, HMAIR0)
> +    mov_w r0, MAIR1VAL
> +    mcr   CP32(r0, HMAIR1)
> +
> +    mrc   CP32(r0, HSCTLR)
> +    bic   r0, r0, #SCTLR_ELx_BR       /* Disable Background region */
> +    orr   r0, r0, #SCTLR_Axx_ELx_M    /* Enable MPU */
> +    orr   r0, r0, #SCTLR_Axx_ELx_C    /* Enable D-cache */
> +    mcr   CP32(r0, HSCTLR)
> +    isb
> +
> +    ret
> +END(enable_mpu)
> +
> +/*
> + * Maps the various sections of Xen (described in xen.lds.S) as different MPU
> + * regions.
> + *
> + * Clobbers r0 - r5
> + *
> + */
> +FUNC(enable_boot_cpu_mm)
> +    /* Get the number of regions specified in MPUIR_EL2 */
> +    mrc   CP32(r5, MPUIR_EL2)
> +    and   r5, r5, #NUM_MPU_REGIONS_MASK
> +
> +    /* x0: region sel */
> +    mov   r0, #0
> +    /* Xen text section. */
> +    mov_w   r1, _stext
> +    mov_w   r2, _etext
> +    prepare_xen_region r0, r1, r2, r3, r4, r5, attr_prbar=REGION_TEXT_PRBAR
> +
> +    /* Xen read-only data section. */
> +    mov_w   r1, _srodata
> +    mov_w   r2, _erodata
> +    prepare_xen_region r0, r1, r2, r3, r4, r5, attr_prbar=REGION_RO_PRBAR
> +
> +    /* Xen read-only after init and data section. (RW data) */
> +    mov_w   r1, __ro_after_init_start
> +    mov_w   r2, __init_begin
> +    prepare_xen_region r0, r1, r2, r3, r4, r5
> +
> +    /* Xen code section. */
> +    mov_w   r1, __init_begin
> +    mov_w   r2, __init_data_begin
> +    prepare_xen_region r0, r1, r2, r3, r4, r5, attr_prbar=REGION_TEXT_PRBAR
> +
> +    /* Xen data and BSS section. */
> +    mov_w   r1, __init_data_begin
> +    mov_w   r2, __bss_end
> +    prepare_xen_region r0, r1, r2, r3, r4, r5
> +
> +#ifdef CONFIG_EARLY_PRINTK
> +    /* Xen early UART section. */
> +    mov_w   r1, CONFIG_EARLY_UART_BASE_ADDRESS
> +    mov_w   r2, (CONFIG_EARLY_UART_BASE_ADDRESS + CONFIG_EARLY_UART_SIZE)
> +    prepare_xen_region r0, r1, r2, r3, r4, r5, attr_prbar=REGION_DEVICE_PRBAR, attr_prlar=REGION_DEVICE_PRLAR
> +#endif
> +
> +    b    enable_mpu
> +END(enable_boot_cpu_mm)
> +
> +/*
> + * We don't yet support secondary CPUs bring-up. Implement a dummy helper to
> + * please the common code.
> + */
> +FUNC(enable_secondary_cpu_mm)
> +    PRINT("- SMP not enabled yet -\r\n")
> +1:  wfe
> +    b 1b
> +END(enable_secondary_cpu_mm)
> +
> +/*
> + * Local variables:
> + * mode: ASM
> + * indent-tabs-mode: nil
> + * End:
> + */
> diff --git a/xen/arch/arm/include/asm/arm32/sysregs.h b/xen/arch/arm/include/asm/arm32/sysregs.h
> index 22871999af..8d7b95d982 100644
> --- a/xen/arch/arm/include/asm/arm32/sysregs.h
> +++ b/xen/arch/arm/include/asm/arm32/sysregs.h
> @@ -20,6 +20,15 @@
>   * uses r0 as a placeholder register. */
>  #define CMD_CP32(name...)      "mcr " __stringify(CP32(r0, name)) ";"
>  
> +#define REGION_TEXT_PRBAR       0x18    /* SH=11 AP=10 XN=0 */
> +#define REGION_RO_PRBAR         0x1D    /* SH=11 AP=10 XN=1 */
> +#define REGION_DATA_PRBAR       0x19    /* SH=11 AP=00 XN=1 */
> +#define REGION_DEVICE_PRBAR     0x11    /* SH=10 AP=00 XN=1 */
> +
> +#ifdef __ASSEMBLY__
In previous patch, you had empty lines surrounding the macro.

> +#define WRITE_SYSREG_ASM(v, name) mcr CP32(v, name)
Hmm, for arm64 you surrounded msr within "". Any reason for these style changes?

> +#endif /* __ASSEMBLY__ */
Why #endif given ...

> +
>  #ifndef __ASSEMBLY__
this one?

>  
>  /* C wrappers */
> diff --git a/xen/arch/arm/include/asm/cpregs.h b/xen/arch/arm/include/asm/cpregs.h
> index aec9e8f329..a7503a190f 100644
> --- a/xen/arch/arm/include/asm/cpregs.h
> +++ b/xen/arch/arm/include/asm/cpregs.h
> @@ -1,6 +1,8 @@
>  #ifndef __ASM_ARM_CPREGS_H
>  #define __ASM_ARM_CPREGS_H
>  
> +#include <asm/mpu/cpregs.h>
> +
>  /*
>   * AArch32 Co-processor registers.
>   *
> diff --git a/xen/arch/arm/include/asm/mpu/cpregs.h b/xen/arch/arm/include/asm/mpu/cpregs.h
> new file mode 100644
> index 0000000000..e2f3b2264c
> --- /dev/null
> +++ b/xen/arch/arm/include/asm/mpu/cpregs.h
> @@ -0,0 +1,27 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +
> +#ifndef __ASM_ARM_MPU_CPREGS_H
There are already 4 header files in this directory. Why don't you look at them
to get a hint as for naming the header guards? You don't need ASM here.

> +#define __ASM_ARM_MPU_CPREGS_H
> +
> +#ifdef CONFIG_ARM_32
If you look at cpregs.h, we only use #ifdef CONFIG_ARM_32 to protect aliases.
I'd prefer to follow the same rules here.

> +
> +/* CP15 CR0: MPU Type Register */
> +#define HMPUIR          p15,4,c0,c0,4
> +
> +/* CP15 CR6: MPU Protection Region Base/Limit/Select Address Register */
> +#define HPRSELR         p15,4,c6,c2,1
> +#define PRBAR_EL2       p15,4,c6,c3,0
> +#define PRLAR_EL2       p15,4,c6,c8,1
> +
> +#define MPUIR_EL2       HMPUIR
> +#define PRSELR_EL2      HPRSELR
> +
> +#endif /* CONFIG_ARM_32 */
Emtpy line here

> +#endif /* __ASM_ARM_MPU_CPREGS_H */
> +
> +/*
> + * Local variables:
> + * mode: ASM
This is not ASM file.

~Michal



From xen-devel-bounces@lists.xenproject.org Mon Apr 14 08:41:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 08:41:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.949409.1345951 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4FNx-0003a6-64; Mon, 14 Apr 2025 08:41:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 949409.1345951; Mon, 14 Apr 2025 08:41: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 1u4FNx-0003Zz-30; Mon, 14 Apr 2025 08:41:45 +0000
Received: by outflank-mailman (input) for mailman id 949409;
 Mon, 14 Apr 2025 08:41: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=m6tK=XA=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1u4FNw-0003Zt-8c
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 08:41:44 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on2060a.outbound.protection.outlook.com
 [2a01:111:f403:2418::60a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 48b42d17-190c-11f0-9ffb-bf95429c2676;
 Mon, 14 Apr 2025 10:41:40 +0200 (CEST)
Received: from BN9PR12MB5273.namprd12.prod.outlook.com (2603:10b6:408:11e::22)
 by MN0PR12MB6320.namprd12.prod.outlook.com (2603:10b6:208:3d3::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.32; Mon, 14 Apr
 2025 08:41:36 +0000
Received: from BN9PR12MB5273.namprd12.prod.outlook.com
 ([fe80::cf66:58ab:47be:4b13]) by BN9PR12MB5273.namprd12.prod.outlook.com
 ([fe80::cf66:58ab:47be:4b13%5]) with mapi id 15.20.8632.030; Mon, 14 Apr 2025
 08:41: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: 48b42d17-190c-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=pOIo9FCXH9vAaGgPrPyVKDjQNfuiJoz+BdqROyOB8jcliZKvIHkv5XMKalDDDYHfwJSW2SRjanl3FNyqTJE4mZSCeZdtHL/cGrRsInjULx7CPAojR6jJT+K+A7aRbFnpL3bheYhvWbPWojePHov8PJ+TxYFv5Kv5PVwinIVSqlZ5BHU73hU4Tb1Xw1P2Rk3I94o9MuGIMAlwjPiDbWdA6ckHA+SftyPfupzHEsHnl5lQ1+r9kgtC0yVZwtW28sD1lSJ3r+RMuT6Z0f8lBDYO0SdY6O4IYIkiKnT84kIZqvxg0ZCNnShsqJkG+mSkKdFOUe9Xtl0ToTptWSSIZiAFUQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=T3+/Xz+dp/vwGjfe6XdW8wKB82orV7LONtNNkQciFAI=;
 b=SzCbrW0SzHH8g3Twl0SUcuhFf1VXkbYMD5+1N/PdMYGjpb+MiBw6kA87/QSQAa6ZfYgt3B7m84H9ERnFmh86WMJ+XRtYRv1yp5UvWCxxtTnQ4EdoTNEoOrWD3TVpZOUZERbNOODUGrhHm9cQnE1lSdZGTKyPdMQ4M8qk66E34fGno7aYYoBqJF6SzJlFlQvH+xEnIuWTo7/if5sIETMFw4zVDnWE/Ox7/mNyN7+O1l5JJM27VsF6ow8SOawxFYPJj2nhyIuTVm7frRmEL+rVXk2fhplliT42jWyYEOWdMES8H/rF4ac1yBGkul5FM31JFcLawPTJ4AChkRKG3jeM7Q==
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=T3+/Xz+dp/vwGjfe6XdW8wKB82orV7LONtNNkQciFAI=;
 b=VSymWHonIlbkoSQQ59WwIYeWC50S+0Y5yGT80gRhWYPz0F5DV1CAyNpV4FYtjCO9VKQiake59EIkujHTilcXQvr5I5brigD2KlhJxYmTltlgaTQwroaoM76r+F2Lk6wEKlX1bUF0Bd1rPra1Od+PMsYNlAt+1XXsf9cr26rvtAU=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <e1fce6bb-6a45-4862-8989-f7bebfc0dc17@amd.com>
Date: Mon, 14 Apr 2025 10:41:33 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 3/3] xen/arm32: mpu: Stubs to build MPU for arm32
To: Ayan Kumar Halder <ayan.kumar.halder@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>,
 Luca Fancellu <luca.fancellu@arm.com>
References: <20250411110452.3748186-1-ayan.kumar.halder@amd.com>
 <20250411110452.3748186-4-ayan.kumar.halder@amd.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <20250411110452.3748186-4-ayan.kumar.halder@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR4P281CA0280.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:e6::16) To BN9PR12MB5273.namprd12.prod.outlook.com
 (2603:10b6:408:11e::22)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN9PR12MB5273:EE_|MN0PR12MB6320:EE_
X-MS-Office365-Filtering-Correlation-Id: d33a9817-11df-489c-e747-08dd7b302ad0
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?ZDYzdWtpNU1peTc3U3dSampDZlcyNmpGL2JibGZ4eEpxVVJZUnI0UkliQkNS?=
 =?utf-8?B?OFZwamFqRkxwcG9ROFhNN3BTcG5kNUkvd0hzV3NOTERDVE5JMHZsK05QaElX?=
 =?utf-8?B?MDJwdThiY09oOXJBSHhYVzgzYWlsNHBjbUdrTE4yU1g0ME1xRzFOVVN4dTMy?=
 =?utf-8?B?Q3NQeldqdHpjaW9Cano1TjZTdmlBTVJUdjZlZlhYUzNuMWJxUDV4ZXFDR3RF?=
 =?utf-8?B?VHMyZ2phQmM3QzA2cEJpMjA0SXJFQng5QjlTeFpuWDltZTBGMCt2ZGpZUWtu?=
 =?utf-8?B?VWdsOWZ1N0U2WXBWRXFVbG1PL0l4WmFMS1ZkVHBGb0tzTHp0TmdZZXIzV0E0?=
 =?utf-8?B?SGNkWUQ4b3ZsNE5WcEdxRzFES3pyWW1IeUlpa29lOG4zT1hrdmRtVjNDNGVn?=
 =?utf-8?B?ckRSQWRrcjdzME51ZDRMU2Z0NnUvUFJUZXgxNUlqeFpnV1M5Y1pkQjd5d2JG?=
 =?utf-8?B?MlI0cTVkaTVqbzEvN1JMNGVGTjRUcjBPWW1QaDN3am5tNFAvaWdoOXk1enZz?=
 =?utf-8?B?NmpDZU9KN254MytqSzdBT2pES1N3SjNTb1FFRTlCMG5SanNMa0MydWttN0d2?=
 =?utf-8?B?Q0RrUE1VOGlzU2RyM1ppaWU2ejdvUWdQOStGeXowTFhQMDIvZ1FMeVpRZnhi?=
 =?utf-8?B?ZDFFbXFqWE9rdXVVRCt4b1RhTkhLWEV6d0tlN01FZkFkSEtiaFZYV2ptMHMr?=
 =?utf-8?B?OHdWaGt2RTV0WktLdWU4Y1pPSkR2Q09yZC80WWZLV2Urb0p6NWtBbkRkOUlV?=
 =?utf-8?B?SWJGY3BjRzVWQnRFWVNqTU5zcklTczRhQ2prVElDVXdVcFpsMzVNMWRjN01R?=
 =?utf-8?B?WU1VYXQrNkhybnNrV2FXRXg4N1o4UTZ6NGJ6cXpDalBHUUdjTmhHeWM4dElU?=
 =?utf-8?B?ZnlzaUFWTGVOMU0wZmZiK0FhYnZZRTRRbjNMcnUrZmo1bGdsVFdldEZ2d3hL?=
 =?utf-8?B?MmRGYVhWb2pFTHlCOW5PUFlVZUF0bVRKQXJ0M3V0K2xBSmdHem1BZGt5MHB0?=
 =?utf-8?B?QTBzUFdKcWN1bkRTaEt4d05pdFlLRGNzWi9MWm1nMDlQTUJNNGYwakFnOTFH?=
 =?utf-8?B?azhwRTlJTEpnZGVsZUpEb2RRcEtxN25naCtDa2x6bmkwa3NmQUw1OVdlRjZD?=
 =?utf-8?B?NGhUM3ZOK0I0Y1V6MGhhYTJ6RG84TDlJeWtNOHhURW1EUjMwc0JMTFB2RzdC?=
 =?utf-8?B?UjlJNElCWGMvb3lBUlJZcmg1TXR5dVkxV052TTB6cDhteXpaVzhJTldObmh0?=
 =?utf-8?B?dUM2RDhtZFc0QmJrRlZjemNIN1pJTW11MFVGVzNkalJtYUlaZC9nbi80OWhZ?=
 =?utf-8?B?ZCtxWlpjaFFFNDE1K0dWZWYrRTU3R2Y1NWFtSUJPcnV5OUhVd3RrY0drZCtD?=
 =?utf-8?B?SUJoczNoRVozdXVqajlNWDhhb2xacDhUZE5rTHdyZ2dPMHFLY2xaWks0NDRQ?=
 =?utf-8?B?QVQxRjRCbnRwWFJTVllKM1Q5b1o2eFRIV1Y4dklReWk0TmhvYnFQRSt4QVdC?=
 =?utf-8?B?YlV2KzR3aGFURUZTNEtPQ1J0VXNPRGVrS2dKNFB2NDVXUXBLVTByYlE3NHFW?=
 =?utf-8?B?OVBoVG5CU2IxTHc2MzV3VEdBWkhEdWNmRyswVHkzMm4xQWpHR2ZBYXNvS240?=
 =?utf-8?B?MHlMN1J2NDB4Z01tWlFNMHNaQ2FWUTBINVh4RWtxU3VtUVVXTm5MczB3RUZj?=
 =?utf-8?B?MmxOSCtLdmhXWklQSE43T3N6Z0JiZWhWOFlta2pwa0lNNndBUGhrY2E3cjFM?=
 =?utf-8?B?QUYrbWh4azl3WGdzVi8zcE12WmovRlpxQzhBTVBUcmpGL1JpQWpydm80T01I?=
 =?utf-8?B?RmdzbytmRWVGN3dSVXNxNmM5Z1lhbWJCM09DUW1sZzFXWDdqc1ZMSGtqcFhV?=
 =?utf-8?B?aEt4MUY5N0ZIUnBWRllOTzlwVlRtd2JPTFpySWRQYTgwZG1laGhNdC9ZVjZm?=
 =?utf-8?Q?O16EmaheTw0=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN9PR12MB5273.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?UktGZjUwaFFVSEZMR1NpS05sT2VvZFpBcHpmSWRDVjBpMzdNVkZwc1BLN3h1?=
 =?utf-8?B?U3NQQy82ZmQ0UUhWZ3ZiQjVZejlkVkJ5amhUWUdEQzR5WXBkVENUQ1FRd1d4?=
 =?utf-8?B?ZDQ3RCt3dStTbXRZaS9aMXh0UjRKa2dmR3FJK0NkbFhtQ004cnVDazJZckox?=
 =?utf-8?B?dzFkMnJ1blBTUHFuK0hudG1sbVhkOWtWc3RMcE9tK1J5d0dDMlRxMU1uTWs0?=
 =?utf-8?B?alF6SjR4SDgyc3dOditSTnBtQ2trU0NSWUxpb2hMUHZIcm9SNFlueWV0cGZx?=
 =?utf-8?B?eU5uaDJma1BpdnVnNXl5KzNvMU1NdWpGUUtucnpKUGh3TlZsRTc2YVpPK1Vo?=
 =?utf-8?B?ejNBWWpwbERhenphcDJRT1FvN0FpUGZ0b2R5K0dQYXI3aVJ3VUNFTGdnamNW?=
 =?utf-8?B?SUdlVUhVSE9jK2NOQ25QSmtxajlHWE9TNmc3MklhT3g1VU14RlBmTVR2cnVV?=
 =?utf-8?B?anJKeVhtanArZDlHTDMrR05tYWVlWDVNdU9xYU45bG0yZ0EvbUNGME80dCti?=
 =?utf-8?B?bGFwSS9EL29vTTRKZldTYldRMDV6cWxvSlFNRkVrM1owd1ErOGgxQnNkMlY0?=
 =?utf-8?B?QnFsNWFwOTRyTU1pWXplRWNVbTNXa2p0c0c1dXJwZ0JPV1ZQSE44OTFTWWVP?=
 =?utf-8?B?cGRqNi9YczRtRi9aQzZKRkhBK3gzUENDWDR1REN1bnl1L2duVE9oRjRjbjNJ?=
 =?utf-8?B?YXZJMkw5R3VrYzNLczRZRURWL2luMWRMRHM5N0p6MnNETnpnelJwN1hyZlJy?=
 =?utf-8?B?d1Z4Z2NBZXZTZ3RhNU9aTWVQNWZFTTFjZ1NpakZUZ2E3QjdzN3ByTXNvcUE3?=
 =?utf-8?B?bWFlY3hsbmtSWDdPbWtDZk1oRThEWVU3cnI5emloRmg3ZjBicU5oOElRYUNU?=
 =?utf-8?B?RlNDNHBLRGs2QUR6STVpcUZibnNPamNSakpUSG5xRXUwY3hCOEJjWC9Fd1By?=
 =?utf-8?B?czFDOHdaV2dKSm1TTzNUaGplRytxekVlRUJlN0kvNWNrV09uc3lHbWtzejlx?=
 =?utf-8?B?UFowME1IeFNneVFRZk5HcnEveDVncHdmUGQxWmNWeWZaME5zV0R3dytBOUt4?=
 =?utf-8?B?TWc5bU9sbHdkazhQQWx6d2ZTUW0wUVRJSXV3dCsrSk56QXJCZ3FFK1hycWZ5?=
 =?utf-8?B?allIb1Fkc01VK0thbmV2SmlCblNzNFEyWnkwNlZxcjR5MG9rWWttMzR0Sklh?=
 =?utf-8?B?SXVGL1M3a2x3L2JoRmxsVU1oVXNnSVVjeUFMSnF4QlZYZDkxUy9HclhQM2d3?=
 =?utf-8?B?VUJWbFZQWjAvVjJaa2ZEdW9TcWxkanNzeUtQMkJiRmRJM01QdnJJSk5XSU5Q?=
 =?utf-8?B?WWFUYjNPV1RzVFJ3emUybkZLbDFKdFJ3TnNuMXIxQTZLc1JTT1h0Rm5zQXVS?=
 =?utf-8?B?RHpwSXVUN0RIN0FTbXNzaHZITWQwaUZ6ZE5EOTY1d1N0NDQ1WThpamh5TU13?=
 =?utf-8?B?ZXlESW9HZHhyeVRreHpGVklicnZxaGM3T2E0SjdVUVI3eGdGbWJJS0Q0Y1RI?=
 =?utf-8?B?bGFnaitaUVF3Vy92UUZYNzVSMTFrai9FRXBFdEplaHFUZ0tKVlRwblBxckFN?=
 =?utf-8?B?TGdLcUlyQm82UldtUHNQQWpQNzJHTHFiNngrNk1zYmdocWVadmJRZ1l1VXVH?=
 =?utf-8?B?Zllpc0pHeGFmSk9oL3hONEZ0UVROZEFCdVFmTENjQTVtTmxoK2xXQmVGZlkv?=
 =?utf-8?B?djVCempaZlJ0akNPcjN5ZzF2MnVFS3lqWG0weDJkTjU5R0c4UVZiVlJQSnNL?=
 =?utf-8?B?bFd0cXNVQkIrS3RHR21VSDBScUVwMGs3YlJpc29SZzdmRmpDU1JmNStFWTdG?=
 =?utf-8?B?S0srZzVxUGhaUE5udUVKNU42UVBtejIrS05meGVBOUtzSGpCalJmR0dYam5a?=
 =?utf-8?B?ZDZodFplMGIzV2psTU1TS01BUVZQcDkxT0hYOXd6YlBadlQyRnU0SGVjOGJP?=
 =?utf-8?B?NGdMRE1rMGdGSVB3cTZnYVArekI4b3MxdTZvYmNnUFN3U1ZSUVcxcmJxL21x?=
 =?utf-8?B?OUVzZEtXNHRBVVBQQSt5TGlyRXhPNjY4WVgwT3QxZ3B0N3FzOG1wQy85SVQr?=
 =?utf-8?B?REhMZ1IyYjVRZVd6c1VmWHc1bE5zazEwUWtWNW1uanJqLzN2cmowV2RoQVB4?=
 =?utf-8?Q?uKg0vU5oy3T3hVPVI6TMskMxs?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d33a9817-11df-489c-e747-08dd7b302ad0
X-MS-Exchange-CrossTenant-AuthSource: BN9PR12MB5273.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Apr 2025 08:41:36.5890
 (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: HEQ0/RHFRIrwgFLlAPNl775OqHRsVwvXHCOnI+2t6LaU0c2RcHALOoBDRzlLy2BL
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN0PR12MB6320



On 11/04/2025 13:04, Ayan Kumar Halder wrote:
> Add stubs to enable compilation.
> 
> is_xen_heap_page() and is_xen_heap_mfn() are not implemented for arm32 MPU.
> Thus, introduce the stubs for these functions in asm/mpu/mm.h and move the
> original code to asm/mmu/mm.h (as it is used for arm32 MMU based system).
> 
> Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
> Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>
Reviewed-by: Michal Orzel <michal.orzel@amd.com>

~Michal



From xen-devel-bounces@lists.xenproject.org Mon Apr 14 08:52:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 08:52:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.949422.1345960 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4FY3-0006on-2g; Mon, 14 Apr 2025 08:52:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 949422.1345960; Mon, 14 Apr 2025 08:52:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4FY3-0006og-06; Mon, 14 Apr 2025 08:52:11 +0000
Received: by outflank-mailman (input) for mailman id 949422;
 Mon, 14 Apr 2025 08:52: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=ezPI=XA=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u4FY1-0006oa-Hj
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 08:52:09 +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 be1ce030-190d-11f0-9eae-5ba50f476ded;
 Mon, 14 Apr 2025 10:52:06 +0200 (CEST)
Received: by mail-wr1-x436.google.com with SMTP id
 ffacd0b85a97d-39129fc51f8so3457185f8f.0
 for <xen-devel@lists.xenproject.org>; Mon, 14 Apr 2025 01:52:06 -0700 (PDT)
Received: from ?IPV6:2003:ca:b71f:2f7e:5948:62cb:7cd1:ada3?
 (p200300cab71f2f7e594862cb7cd1ada3.dip0.t-ipconnect.de.
 [2003:ca:b71f:2f7e:5948:62cb:7cd1:ada3])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43f20625ea4sm172331955e9.12.2025.04.14.01.52.05
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 14 Apr 2025 01:52: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: be1ce030-190d-11f0-9eae-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744620726; x=1745225526; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=JLEITPsRGuaDBlNiL3Cg9aRDspa2iBoLM6N5LZCmTHI=;
        b=H3ugIS8sLf5nRldFKDv5qjtiqbD/fDpHo337XZe3zMxxJQI/Fmo9WBUSl3C/WvOzaB
         TZ4bGpFpAlEIPOHkk2UAFNzd7l7tT1UoOGvC07EcMdRx9qFxPyT46hzvNxk45hxF4yGi
         JT/VF5v2R30YIcY4wYngJ6qTgN6UPiA1A6ukHfIUrb3dz71k7GCjyLEBjqM62qUsWb1X
         fm3+ereOkt6w9ccvFkDrtqsv/sb52xSsJpkB3b2QBb+jvK6kh6ukEbUtNlYVspNyX/1G
         +fPOIxmQ5YrzTKMMHwkLJdPBdH+1naTMh8CQiEzPvCF7yyJHOKhpgVTzuw1KmYV/+r0x
         I9FQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744620726; x=1745225526;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=JLEITPsRGuaDBlNiL3Cg9aRDspa2iBoLM6N5LZCmTHI=;
        b=UiNsq4cgRRo+gcruAVRBakdvc2gM3iAHBTCgdzTEdjlTkY3Q6UzZVMuhKb/fU6gXL/
         2gmG9HSpwrs2Hw6SZKKNyaWOBH1RzXyxu0fpjrAyo/PKCUy6RAGwOxUjBObYFPusUViG
         w/CffDeZ2/g2gxAKcfxA2q1tdAX3rwd6qxs9I1Zz91/tawp2IldejCRZRPa0hDxM45WZ
         y4r+Zmql3bV4Sxi370uNTR6mcr7CkdWnAWSNsilDOLqv86k9ED0o9POmZXFWOhNZl/r9
         h5XVk3XQBKLeS+0q5WR4BW6eaZFrwss/zMOaMA5FNGcFzvCpTCqZvP6GNm3qGfopnDUT
         kd8A==
X-Forwarded-Encrypted: i=1; AJvYcCU6ji0eZZTXnSgIesY5jn6p72eZqUmoRRxySfF6O6PRCuj5OWqfwTQVwwDIP7Ko2rYJwM7VdQMR25Q=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzYUhBkNHe9Te6ehe9PWQ1A9MkEE/oGAE4xhbh6OTEB9p1OUoW+
	SCWSvllcXb9WWsremQvmgtvlIdhsy5KsML8+jRfKNIjVZCTfvue8vST/HkPw0Q==
X-Gm-Gg: ASbGncsiOQ/WXqL/ZhWPJx6sKXsRk2bTX5SeR0Wk+uT4AQMKeJMr2S8PVukKzqpD3Zo
	NawiaXhh02a/q6nwvBSKjrNpjGxogUui6VcPnUc3apxEjCV0ImwGVvI/GkzsCZf4pB6h/NhIfdF
	jcd2SIeY7c8afYaSx49UA7wVerswdZWk5PTokmGG4mBbpLu+73fL9G8V/afewNK0QdFWVQhqZYi
	+beF5wNvTgeiPZDFtCspSh+sKq0INUctjaVIpEScCWSEpoqccyjjv6eTvnW6b8bb5ReJfD4w97Y
	N6etv3Ilv9Q+rJ9pc6ENBMTCFu8/xgHXtQiaS/e0DrcNkUth4ot7MF8x5Oa9jThm9ctb3RdtyPj
	03VyeKEAy64QGxxUnPBmltv0uOW+T+pbOb2RmaTI1qSS9zPm9CrsY8KvRH6NHRAJ4Yw/Kjj7BW2
	I=
X-Google-Smtp-Source: AGHT+IF+ODqiNKlfUWt/Ayadib48xRMJUlvoiJZhhsSSQRcjYzBk93c6Scs93eZ68SBC3KzqCPvIlQ==
X-Received: by 2002:a05:6000:248a:b0:39b:f12c:385e with SMTP id ffacd0b85a97d-39ea52019d7mr8001118f8f.20.1744620725754;
        Mon, 14 Apr 2025 01:52:05 -0700 (PDT)
Message-ID: <2bc5ae09-34b9-48e2-840a-2d42c1138e38@suse.com>
Date: Mon, 14 Apr 2025 10:52:03 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/5] xen/io: provide helpers for multi size MMIO accesses
To: Julien Grall <julien@xen.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org,
 Roger Pau Monne <roger.pau@citrix.com>
References: <20250411105411.22334-1-roger.pau@citrix.com>
 <20250411105411.22334-3-roger.pau@citrix.com>
 <bd77106c-7e5c-4e6f-98f9-faacf4f9deef@suse.com>
 <28db4a69-ea60-4c4d-a6e8-0dcc548a9e75@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: <28db4a69-ea60-4c4d-a6e8-0dcc548a9e75@xen.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 14.04.2025 09:49, Julien Grall wrote:
> On 14/04/2025 15:07, Jan Beulich wrote:
>> On 11.04.2025 12:54, Roger Pau Monne wrote:
>>> Several handlers have the same necessity of reading from an MMIO region
>>> using 1, 2, 4 or 8 bytes accesses.  So far this has been open-coded in the
>>> function itself.  Instead provide a new handler that encapsulates the
>>> accesses.
>>>
>>> Since the added helpers are not architecture specific, introduce a new
>>> generic io.h header.
>>
>> Except that ...
>>
>>> --- /dev/null
>>> +++ b/xen/include/xen/io.h
>>> @@ -0,0 +1,63 @@
>>> +/* SPDX-License-Identifier: GPL-2.0-only */
>>> +/*
>>> + * Generic helpers for doing MMIO accesses.
>>> + *
>>> + * Copyright (c) 2025 Cloud Software Group
>>> + */
>>> +#ifndef XEN_IO_H
>>> +#define XEN_IO_H
>>> +
>>> +#include <xen/bug.h>
>>> +
>>> +#include <asm/io.h>
>>> +
>>> +static inline uint64_t read_mmio(const volatile void __iomem *mem,
>>> +                                 unsigned int size)
>>> +{
>>> +    switch ( size )
>>> +    {
>>> +    case 1:
>>> +        return readb(mem);
>>> +
>>> +    case 2:
>>> +        return readw(mem);
>>> +
>>> +    case 4:
>>> +        return readl(mem);
>>> +
>>> +    case 8:
>>> +        return readq(mem);
>>
>> ... this and ...
>>
>>> +    }
>>> +
>>> +    ASSERT_UNREACHABLE();
>>> +    return ~0UL;
>>> +}
>>> +
>>> +static inline void write_mmio(volatile void __iomem *mem, uint64_t data,
>>> +                              unsigned int size)
>>> +{
>>> +    switch ( size )
>>> +    {
>>> +    case 1:
>>> +        writeb(data, mem);
>>> +        break;
>>> +
>>> +    case 2:
>>> +        writew(data, mem);
>>> +        break;
>>> +
>>> +    case 4:
>>> +        writel(data, mem);
>>> +        break;
>>> +
>>> +    case 8:
>>> +        writeq(data, mem);
>>> +        break;
>>
>> ... this may (generally will) not work on 32-bit architectures. Add
>> CONFIG_64BIT conditionals? At which point return type / last parameter
>> type could move from uint64_t to unsigned long.
> 
> Technically arm32 bit supports 64-bit write because we mandate LPAE. I see this is used by the vPCI code. Are we expecting to have any 64-bit access?

vPCI is, I think, supposed to not see 64-bit accesses (to config space).
However, vMSI-X already may see such.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Apr 14 09:13:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 09:13:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.949438.1345971 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4Fsk-00042L-O5; Mon, 14 Apr 2025 09:13:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 949438.1345971; Mon, 14 Apr 2025 09:13:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4Fsk-00042E-Kx; Mon, 14 Apr 2025 09:13:34 +0000
Received: by outflank-mailman (input) for mailman id 949438;
 Mon, 14 Apr 2025 09:13:33 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ALkD=XA=huawei.com=ruanjinjie@srs-se1.protection.inumbo.net>)
 id 1u4Fsj-000428-DF
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 09:13:33 +0000
Received: from szxga05-in.huawei.com (szxga05-in.huawei.com [45.249.212.191])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b8f127c8-1910-11f0-9eae-5ba50f476ded;
 Mon, 14 Apr 2025 11:13:28 +0200 (CEST)
Received: from mail.maildlp.com (unknown [172.19.88.214])
 by szxga05-in.huawei.com (SkyGuard) with ESMTP id 4ZbhR32MCFz1j5vR;
 Mon, 14 Apr 2025 17:13:19 +0800 (CST)
Received: from kwepemg200008.china.huawei.com (unknown [7.202.181.35])
 by mail.maildlp.com (Postfix) with ESMTPS id CEA761A016C;
 Mon, 14 Apr 2025 17:13:23 +0800 (CST)
Received: from [10.67.109.254] (10.67.109.254) by
 kwepemg200008.china.huawei.com (7.202.181.35) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.1544.11; Mon, 14 Apr 2025 17:13:21 +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: b8f127c8-1910-11f0-9eae-5ba50f476ded
Message-ID: <f090fcbf-5593-2e37-efc7-3ec14990ab27@huawei.com>
Date: Mon, 14 Apr 2025 17:13:20 +0800
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101
 Thunderbird/102.2.0
Subject: Re: [PATCH -next v6 0/8] arm64: entry: Convert to generic irq entry
Content-Language: en-US
To: <catalin.marinas@arm.com>, <will@kernel.org>, <oleg@redhat.com>,
	<sstabellini@kernel.org>, <tglx@linutronix.de>, <peterz@infradead.org>,
	<luto@kernel.org>, <mingo@redhat.com>, <juri.lelli@redhat.com>,
	<vincent.guittot@linaro.org>, <dietmar.eggemann@arm.com>,
	<rostedt@goodmis.org>, <bsegall@google.com>, <mgorman@suse.de>,
	<vschneid@redhat.com>, <kees@kernel.org>, <aliceryhl@google.com>,
	<ojeda@kernel.org>, <samitolvanen@google.com>, <masahiroy@kernel.org>,
	<rppt@kernel.org>, <xur@google.com>, <paulmck@kernel.org>, <arnd@arndb.de>,
	<mark.rutland@arm.com>, <puranjay@kernel.org>, <broonie@kernel.org>,
	<mbenes@suse.cz>, <sudeep.holla@arm.com>, <guohanjun@huawei.com>,
	<prarit@redhat.com>, <liuwei09@cestc.cn>, <Jonathan.Cameron@huawei.com>,
	<dwmw@amazon.co.uk>, <kristina.martsenko@arm.com>, <liaochang1@huawei.com>,
	<ptosi@google.com>, <thiago.bauermann@linaro.org>, <kevin.brodsky@arm.com>,
	<Dave.Martin@arm.com>, <joey.gouly@arm.com>, <linux-kernel@vger.kernel.org>,
	<linux-arm-kernel@lists.infradead.org>, <xen-devel@lists.xenproject.org>
References: <20250213130007.1418890-1-ruanjinjie@huawei.com>
From: Jinjie Ruan <ruanjinjie@huawei.com>
In-Reply-To: <20250213130007.1418890-1-ruanjinjie@huawei.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-Originating-IP: [10.67.109.254]
X-ClientProxiedBy: dggems705-chm.china.huawei.com (10.3.19.182) To
 kwepemg200008.china.huawei.com (7.202.181.35)



On 2025/2/13 20:59, Jinjie Ruan wrote:
> Currently, x86, Riscv, Loongarch use the generic entry. Convert arm64
> to use the generic entry infrastructure from kernel/entry/*. The generic
> entry makes maintainers' work easier and codes more elegant, which will
> make PREEMPT_DYNAMIC and PREEMPT_LAZY available and remove a lot of
> duplicate code.
> 
> This patch series split the generic entry into generic irq entry and
> generic syscall entry first, and then convert arm64 to use the generic
> irq entry. arm64 will be completely converted to generic entry in another
> patch series.
> 
> The main convert steps are as follows:
> - Split generic entry into generic irq entry and generic syscall to
>   make the single patch more concentrated in switching to one thing.
> - Make arm64 easier to use irqentry_enter/exit().
> - Make arm64 closer to the PREEMPT_DYNAMIC code of generic entry.
> - Switch to generic irq entry.

Gentle Ping.

> 
> Changes in v6:
> - Rebased on 6.14 rc2 next.
> - Put the syscall bits aside and split it out.
> - Have the split patch before the arm64 changes.
> - Merge some tightly coupled patches.
> - Adjust the order of some patches to make them more reasonable.
> - Define regs_irqs_disabled() by inline function.
> - Define interrupts_enabled() in terms of regs_irqs_disabled().
> - Delete the fast_interrupts_enabled() macro.
> - irqentry_state_t -> arm64_irqentry_state_t.
> - Remove arch_exit_to_user_mode_prepare() and pull local_daif_mask() later
>   in the arm64 exit sequence
> - Update the commit message.
> 
> Changes in v5:
> - Not change arm32 and keep inerrupts_enabled() macro for gicv3 driver.
> - Move irqentry_state definition into arch/arm64/kernel/entry-common.c.
> - Avoid removing the __enter_from_*() and __exit_to_*() wrappers.
> - Update "irqentry_state_t ret/irq_state" to "state"
>   to keep it consistently.
> - Use generic irq entry header for PREEMPT_DYNAMIC after split
>   the generic entry.
> - Also refactor the ARM64 syscall code.
> - Introduce arch_ptrace_report_syscall_entry/exit(), instead of
>   arch_pre/post_report_syscall_entry/exit() to simplify code.
> - Make the syscall patches clear separation.
> - Update the commit message.
> 
> Changes in v4:
> - Rework/cleanup split into a few patches as Mark suggested.
> - Replace interrupts_enabled() macro with regs_irqs_disabled(), instead
>   of left it here.
> - Remove rcu and lockdep state in pt_regs by using temporary
>   irqentry_state_t as Mark suggested.
> - Remove some unnecessary intermediate functions to make it clear.
> - Rework preempt irq and PREEMPT_DYNAMIC code
>   to make the switch more clear.
> - arch_prepare_*_entry/exit() -> arch_pre_*_entry/exit().
> - Expand the arch functions comment.
> - Make arch functions closer to its caller.
> - Declare saved_reg in for block.
> - Remove arch_exit_to_kernel_mode_prepare(), arch_enter_from_kernel_mode().
> - Adjust "Add few arch functions to use generic entry" patch to be
>   the penultimate.
> - Update the commit message.
> - Add suggested-by.
> 
> Changes in v3:
> - Test the MTE test cases.
> - Handle forget_syscall() in arch_post_report_syscall_entry()
> - Make the arch funcs not use __weak as Thomas suggested, so move
>   the arch funcs to entry-common.h, and make arch_forget_syscall() folded
>   in arch_post_report_syscall_entry() as suggested.
> - Move report_single_step() to thread_info.h for arm64
> - Change __always_inline() to inline, add inline for the other arch funcs.
> - Remove unused signal.h for entry-common.h.
> - Add Suggested-by.
> - Update the commit message.
> 
> Changes in v2:
> - Add tested-by.
> - Fix a bug that not call arch_post_report_syscall_entry() in
>   syscall_trace_enter() if ptrace_report_syscall_entry() return not zero.
> - Refactor report_syscall().
> - Add comment for arch_prepare_report_syscall_exit().
> - Adjust entry-common.h header file inclusion to alphabetical order.
> - Update the commit message.
> 
> Jinjie Ruan (8):
>   entry: Split generic entry into generic exception and syscall entry
>   arm64: ptrace: Replace interrupts_enabled() with regs_irqs_disabled()
>   arm64: entry: Refactor the entry and exit for exceptions from EL1
>   arm64: entry: Rework arm64_preempt_schedule_irq()
>   arm64: entry: Use preempt_count() and need_resched() helper
>   arm64: entry: Refactor preempt_schedule_irq() check code
>   arm64: entry: Move arm64_preempt_schedule_irq() into
>     __exit_to_kernel_mode()
>   arm64: entry: Switch to generic IRQ entry
> 
>  MAINTAINERS                           |   1 +
>  arch/Kconfig                          |   9 +
>  arch/arm64/Kconfig                    |   1 +
>  arch/arm64/include/asm/daifflags.h    |   2 +-
>  arch/arm64/include/asm/entry-common.h |  56 ++++
>  arch/arm64/include/asm/preempt.h      |   2 -
>  arch/arm64/include/asm/ptrace.h       |  13 +-
>  arch/arm64/include/asm/xen/events.h   |   2 +-
>  arch/arm64/kernel/acpi.c              |   2 +-
>  arch/arm64/kernel/debug-monitors.c    |   2 +-
>  arch/arm64/kernel/entry-common.c      | 378 ++++++++-----------------
>  arch/arm64/kernel/sdei.c              |   2 +-
>  arch/arm64/kernel/signal.c            |   3 +-
>  include/linux/entry-common.h          | 382 +------------------------
>  include/linux/irq-entry-common.h      | 389 ++++++++++++++++++++++++++
>  kernel/entry/Makefile                 |   3 +-
>  kernel/entry/common.c                 | 176 ++----------
>  kernel/entry/syscall-common.c         | 159 +++++++++++
>  kernel/sched/core.c                   |   8 +-
>  19 files changed, 766 insertions(+), 824 deletions(-)
>  create mode 100644 arch/arm64/include/asm/entry-common.h
>  create mode 100644 include/linux/irq-entry-common.h
>  create mode 100644 kernel/entry/syscall-common.c
> 


From xen-devel-bounces@lists.xenproject.org Mon Apr 14 09:32:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 09:32:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.949451.1345982 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4GAj-0000eD-8q; Mon, 14 Apr 2025 09:32:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 949451.1345982; Mon, 14 Apr 2025 09:32: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 1u4GAj-0000e6-4A; Mon, 14 Apr 2025 09:32:09 +0000
Received: by outflank-mailman (input) for mailman id 949451;
 Mon, 14 Apr 2025 09:32: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=ezPI=XA=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u4GAi-0000dz-F5
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 09:32:08 +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 53bcb45d-1913-11f0-9eae-5ba50f476ded;
 Mon, 14 Apr 2025 11:32:05 +0200 (CEST)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-43cf848528aso33757385e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 14 Apr 2025 02:32:05 -0700 (PDT)
Received: from ?IPV6:2003:ca:b71f:2f7e:5948:62cb:7cd1:ada3?
 (p200300cab71f2f7e594862cb7cd1ada3.dip0.t-ipconnect.de.
 [2003:ca:b71f:2f7e:5948:62cb:7cd1:ada3])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39eaf43cb29sm10443853f8f.76.2025.04.14.02.32.03
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 14 Apr 2025 02:32: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: 53bcb45d-1913-11f0-9eae-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744623124; x=1745227924; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=/zJAwQGWO7yYeKuPelAIdkwx8gqTyoWrkRl42WQg1iI=;
        b=DAGyOFwvyj+tqjeIHzM3QZV8ko1vXkcjz0eCNnXpvSQ28Wi7gKOqGPPP0rAoJgz9se
         uvPGg8jgCgQee10LLleDC2u1bEqFC8RkEznyEiysL/S845pUufsHppBX1KfVAG69nJ7O
         K4YwdblUTHZrdjqLdq8bcBQj0UBTaraEMKSmdOfrmRDIhZ7MucH/49lv78Q0OLq66DoP
         f8EJmhRNpMdSs3pM5Lgi20OkYj0b172R4CdWjpVQdTACHr3JTpNTmXVrP7pHjbIeXpXP
         Yw3w1wX5CFQbPzYoPP7DP5+4WnjoTd4QejziezIOn6lxGlgdmhdQD1hngv7JoQUqjj3z
         jn8A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744623124; x=1745227924;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=/zJAwQGWO7yYeKuPelAIdkwx8gqTyoWrkRl42WQg1iI=;
        b=HsjglLJA+hZUo0F6eXyAIgQE4EX3GXVhYRAEZEyqcUDuIofxuejVUG0xbev6aNOeKY
         VFuXihjV2BLUH4jR9fhS5FtKrIuFiRB0ZZkgF7LVXCR/oQXpXXMWAnxn3eK8KzVQ818W
         dx6ziE74nD79N9u3hp6AvW9k+SAVJEgQwaU0HLC6nGwygXbPWp0YA14uDig5K7XwoZcb
         wCok8cbTdLmCLX+C3e03BfSW24TLgdyVBBjyeBb4YT46KhoGPjSmF957AhN+rXd1ZObl
         XP/Dnm4H9PGzBcAkSV8iCQk4KfobNDHfRIKXHgZvvFfVw/rHLklwcJ86s56GTsS3r7VV
         zDGQ==
X-Forwarded-Encrypted: i=1; AJvYcCX5/T3MhpsINH52l7u4+0dg5bDvtdma2/xloeQAJM76zQluDPMn9k/rt9YpSyvbQHbJyFLb7l+iXTo=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyaCyO+rLE51ERBc+9mYdbvzLE8NNxPWrIx4xmYwJRzIj5KpKX8
	RCeqo7kYrfr8mCv+2GtAjRJehhZ4cHcWgi3mVxLIBfiI2KSNSzOULYVxYMdN9A==
X-Gm-Gg: ASbGnctrwZ0ZQoC2AyhW2ck5TaQ6JRBlAkKATszL5835v4j7srVYooQLeZGlFZRd1qa
	tXaKyofOeLVQW3YGFRo4kJbv+QLSWGXICXZ6ak8l+1TWDbHCc7DWP6UjkDltCkKNfdmgrATubVN
	gjIQn0JmvXLmN//8Qwbw8ORSnFG/S+7mOGvdksvlJhlNyHMXF7+KjD3wJbGBOoHJJr0FmM3vk8J
	TAc9dMjXbHiv7pTbxMXRsvO/+ZJXhyPNSTSJN0I3S+di7eaBw6bww9vpvguDy+Y95dVDzihyavO
	M6miyfNOpwrABfEiR4clLdg/4Nlp2LVjNC+ImhAFqcu7Jp02Tk+aJ6Ib88YwARG+nck73yZG7by
	zenRSyOJXapQXdrcmG9L0xJqVjHaYSh0L6vLv09srYapYptA7zIu6KURPssgDIkOZLvs9JnNM0g
	I=
X-Google-Smtp-Source: AGHT+IESid8hvrimgTd+ToMA+b6gxajuy9w+id/Ay73GWOxKT5q94LXMyinSPfnWLcPdaVH/JR98bQ==
X-Received: by 2002:a5d:6da4:0:b0:390:e62e:f31f with SMTP id ffacd0b85a97d-39ea51d108bmr9570135f8f.3.1744623124241;
        Mon, 14 Apr 2025 02:32:04 -0700 (PDT)
Message-ID: <78fa2ed0-57a2-4990-bc9c-8fa52e41420a@suse.com>
Date: Mon, 14 Apr 2025 11:32:01 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 08/14] xen/riscv: imsic_init() implementation
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Romain Caritey <Romain.Caritey@microchip.com>, xen-devel@lists.xenproject.org
References: <cover.1744126720.git.oleksii.kurochko@gmail.com>
 <09e0fcd64f97062441a68102ead520b818150fe9.1744126720.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: <09e0fcd64f97062441a68102ead520b818150fe9.1744126720.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.04.2025 17:57, Oleksii Kurochko wrote:
> --- /dev/null
> +++ b/xen/arch/riscv/imsic.c
> @@ -0,0 +1,286 @@
> +/* SPDX-License-Identifier: MIT */
> +
> +/*
> + * xen/arch/riscv/imsic.c
> + *
> + * RISC-V Incoming MSI Controller support
> + *
> + * (c) 2023 Microchip Technology Inc.
> + * (c) 2024 Vates

No 2025 here (if already the years matter)?

> + */
> +
> +#include <xen/const.h>
> +#include <xen/device_tree.h>
> +#include <xen/errno.h>
> +#include <xen/init.h>
> +#include <xen/macros.h>
> +#include <xen/xmalloc.h>
> +
> +#include <asm/imsic.h>
> +
> +static struct imsic_config imsic_cfg;
> +
> +const struct imsic_config *imsic_get_config(void)

Does this need to return a pointer to non-const?

> +{
> +    return &imsic_cfg;
> +}
> +
> +static int __init imsic_get_parent_hartid(struct dt_device_node *node,
> +                                          unsigned int index,
> +                                          unsigned long *hartid)
> +{
> +    int res;
> +    unsigned long hart;
> +    struct dt_phandle_args args;
> +
> +    /* Try the new-style interrupts-extended first */

The comment says "first", but then ...

> +    res = dt_parse_phandle_with_args(node, "interrupts-extended",
> +                                     "#interrupt-cells", index, &args);
> +    if ( !res )
> +    {
> +        res = riscv_of_processor_hartid(args.np->parent, &hart);
> +        if ( res < 0 )
> +            return -EINVAL;
> +
> +        *hartid = hart;
> +    }
> +    return res;
> +}

... nothing else is being tried.

Also, nit: Blank line please ahead of the main "return" of a function.

Further - any particular reason to discard riscv_of_processor_hartid()'s
error code on the error path?

> +
> +

Nit: No double blank lines please (and I wish I wouldn't need to repeat
this any further).

> +static int imsic_parse_node(struct dt_device_node *node,
> +                     unsigned int *nr_parent_irqs)
> +{
> +    int rc;
> +    unsigned int tmp;
> +    paddr_t base_addr;
> +
> +    /* Find number of parent interrupts */
> +    *nr_parent_irqs = dt_number_of_irq(node);
> +    if ( !*nr_parent_irqs )
> +    {
> +        printk(XENLOG_ERR "%s: no parent irqs available\n", node->name);
> +        return -ENOENT;
> +    }
> +
> +    /* Find number of guest index bits in MSI address */
> +    rc = dt_property_read_u32(node, "riscv,guest-index-bits",
> +                              &imsic_cfg.guest_index_bits);
> +    if ( !rc )

It is confusing to store a bool return value in a local "int" variable,
just to then use it as boolean. Is the local var needed at all here?

> +        imsic_cfg.guest_index_bits = 0;
> +    tmp = BITS_PER_LONG - IMSIC_MMIO_PAGE_SHIFT;
> +    if ( tmp < imsic_cfg.guest_index_bits )
> +    {
> +        printk(XENLOG_ERR "%s: guest index bits too big\n", node->name);
> +        return -ENOENT;
> +    }
> +
> +    /* Find number of HART index bits */
> +    rc = dt_property_read_u32(node, "riscv,hart-index-bits",
> +                              &imsic_cfg.hart_index_bits);
> +    if ( !rc )
> +    {
> +        /* Assume default value */
> +        imsic_cfg.hart_index_bits = fls(*nr_parent_irqs);
> +        if ( BIT(imsic_cfg.hart_index_bits, UL) < *nr_parent_irqs )
> +            imsic_cfg.hart_index_bits++;
> +    }
> +    tmp = BITS_PER_LONG - IMSIC_MMIO_PAGE_SHIFT -
> +          imsic_cfg.guest_index_bits;

    tmp -= imsic_cfg.guest_index_bits;

? (And then similarly further down.)

> +    if ( tmp < imsic_cfg.hart_index_bits )
> +    {
> +        printk(XENLOG_ERR "%s: HART index bits too big\n", node->name);
> +        return -ENOENT;
> +    }
> +
> +    /* Find number of group index bits */
> +    rc = dt_property_read_u32(node, "riscv,group-index-bits",
> +                              &imsic_cfg.group_index_bits);
> +    if ( !rc )
> +        imsic_cfg.group_index_bits = 0;
> +    tmp = BITS_PER_LONG - IMSIC_MMIO_PAGE_SHIFT -
> +          imsic_cfg.guest_index_bits - imsic_cfg.hart_index_bits;
> +    if ( tmp < imsic_cfg.group_index_bits )
> +    {
> +        printk(XENLOG_ERR "%s: group index bits too big\n", node->name);
> +        return -ENOENT;
> +    }
> +
> +    /* Find first bit position of group index */
> +    tmp = IMSIC_MMIO_PAGE_SHIFT * 2;
> +    rc = dt_property_read_u32(node, "riscv,group-index-shift",
> +                              &imsic_cfg.group_index_shift);
> +    if ( !rc )
> +        imsic_cfg.group_index_shift = tmp;
> +    if ( imsic_cfg.group_index_shift < tmp )
> +    {
> +        printk(XENLOG_ERR "%s: group index shift too small\n", node->name);
> +        return -ENOENT;
> +    }
> +    tmp = imsic_cfg.group_index_bits + imsic_cfg.group_index_shift - 1;
> +    if ( tmp >= BITS_PER_LONG )
> +    {
> +        printk(XENLOG_ERR "%s: group index shift too big\n", node->name);
> +        return -EINVAL;
> +    }
> +
> +    /* Find number of interrupt identities */
> +    rc = dt_property_read_u32(node, "riscv,num-ids", &imsic_cfg.nr_ids);
> +    if ( !rc )
> +    {
> +        printk(XENLOG_ERR "%s: number of interrupt identities not found\n",
> +               node->name);
> +        return -ENOENT;
> +    }
> +
> +    if ( (imsic_cfg.nr_ids < IMSIC_MIN_ID) ||
> +         (imsic_cfg.nr_ids >= IMSIC_MAX_ID) ||

Something named "max" normally wants to decribe the highest valid value,
not the first out-of-range one.

> +         ((imsic_cfg.nr_ids & IMSIC_MIN_ID) != IMSIC_MIN_ID) )
> +    {
> +        printk(XENLOG_ERR "%s: invalid number of interrupt identities\n",
> +               node->name);
> +        return -EINVAL;
> +    }
> +
> +    /* Compute base address */
> +    imsic_cfg.nr_mmios = 0;
> +    rc = dt_device_get_address(node, imsic_cfg.nr_mmios, &base_addr, NULL);
> +    if (rc)

Nit: Style.

> +    {
> +        printk(XENLOG_ERR "%s: first MMIO resource not found\n", node->name);
> +        return -EINVAL;

Discarding "rc" again?

> +    }
> +
> +    imsic_cfg.base_addr = base_addr;
> +    imsic_cfg.base_addr &= ~(BIT(imsic_cfg.guest_index_bits +
> +                   imsic_cfg.hart_index_bits +
> +                   IMSIC_MMIO_PAGE_SHIFT, UL) - 1);
> +    imsic_cfg.base_addr &= ~((BIT(imsic_cfg.group_index_bits, UL) - 1) <<
> +                   imsic_cfg.group_index_shift);

Besides indentation being bogus here, why is it that you need to mask bits
off of the value read from DT? Wouldn't the expectation be that you get back
the true base address?

> +    /* Find number of MMIO register sets */
> +    imsic_cfg.nr_mmios++;
> +    while ( !dt_device_get_address(node, imsic_cfg.nr_mmios, &base_addr, NULL) )
> +        imsic_cfg.nr_mmios++;

And the base addresses of these aren't of interest? Oh, I see they're
fetched again further down.

Also - use do-while here?

> +    return 0;
> +}
> +
> +int __init imsic_init(struct dt_device_node *node)
> +{
> +    int rc;
> +    unsigned long reloff, hartid;
> +    uint32_t nr_parent_irqs, index, nr_handlers = 0;
> +    paddr_t base_addr;
> +
> +    /* Parse IMSIC node */
> +    rc = imsic_parse_node(node, &nr_parent_irqs);
> +    if ( rc )
> +        return rc;
> +
> +    /* Allocate MMIO resource array */
> +    imsic_cfg.mmios = xzalloc_array(struct imsic_mmios, imsic_cfg.nr_mmios);
> +    if ( !imsic_cfg.mmios )
> +        return -ENOMEM;
> +
> +    /* check MMIO register sets */
> +    for ( int i = 0; i < imsic_cfg.nr_mmios; i++ )

No plain int please for anything that can only be non-negative.

> +    {
> +        rc = dt_device_get_address(node, i, &imsic_cfg.mmios[i].base_addr,
> +                                   &imsic_cfg.mmios[i].size);
> +        if ( rc )
> +        {
> +            printk(XENLOG_ERR "%s:  unable to parse MMIO regset %d\n",
> +                   node->name, i);
> +            goto imsic_init_err;
> +        }
> +
> +        base_addr = imsic_cfg.mmios[i].base_addr;
> +        base_addr &= ~(BIT(imsic_cfg.guest_index_bits +
> +                   imsic_cfg.hart_index_bits +
> +                   IMSIC_MMIO_PAGE_SHIFT, UL) - 1);
> +        base_addr &= ~((BIT(imsic_cfg.group_index_bits, UL) - 1) <<
> +                   imsic_cfg.group_index_shift);

Indentation again.

> +        if ( base_addr != imsic_cfg.base_addr )
> +        {
> +            rc = -EINVAL;
> +            printk(XENLOG_ERR "%s: address mismatch for regset %d\n",
> +                   node->name, i);
> +            goto imsic_init_err;
> +        }

Oh, all of the addresses need to (sufficiently) match.

> +    }
> +
> +    /* Configure handlers for target CPUs */
> +    for ( int i = 0; i < nr_parent_irqs; i++ )
> +    {
> +        rc = imsic_get_parent_hartid(node, i, &hartid);
> +        if ( rc )
> +        {
> +            printk(XENLOG_WARNING "%s: hart ID for parent irq%d not found\n",
> +                   node->name, i);
> +            continue;
> +        }
> +
> +        if ( hartid > NR_CPUS )
> +        {
> +            printk(XENLOG_WARNING "%s: unsupported hart ID=%lu for parent irq%d\n",
> +                   node->name, hartid, i);
> +            continue;
> +        }
> +
> +        /* Find MMIO location of MSI page */
> +        index = imsic_cfg.nr_mmios;
> +        reloff = i * BIT(imsic_cfg.guest_index_bits, UL) * IMSIC_MMIO_PAGE_SZ;
> +        for ( int j = 0; imsic_cfg.nr_mmios; j++ )
> +        {
> +            if ( reloff < imsic_cfg.mmios[j].size )
> +            {
> +                index = j;
> +                break;
> +            }
> +
> +            /*
> +             * MMIO region size may not be aligned to
> +             * BIT(global->guest_index_bits) * IMSIC_MMIO_PAGE_SZ
> +             * if holes are present.
> +             */
> +            reloff -= ROUNDUP(imsic_cfg.mmios[j].size,
> +                BIT(imsic_cfg.guest_index_bits, UL) * IMSIC_MMIO_PAGE_SZ);
> +        }
> +
> +        if ( index >= imsic_cfg.nr_mmios )
> +        {
> +            printk(XENLOG_WARNING "%s: MMIO not found for parent irq%d\n",
> +                   node->name, i);
> +            continue;
> +        }
> +
> +        if ( !IS_ALIGNED(imsic_cfg.msi[hartid].base_addr + reloff, PAGE_SIZE) )
> +        {
> +            printk(XENLOG_WARNING "%s: MMIO address 0x%lx is not aligned on a page\n",
> +                   node->name, imsic_cfg.msi[hartid].base_addr + reloff);
> +            imsic_cfg.msi[hartid].offset = 0;
> +            imsic_cfg.msi[hartid].base_addr = 0;
> +            continue;
> +        }
> +
> +        imsic_cfg.mmios[index].harts[hartid] = true;
> +        imsic_cfg.msi[hartid].base_addr = imsic_cfg.mmios[index].base_addr;
> +        imsic_cfg.msi[hartid].offset = reloff;
> +        nr_handlers++;
> +    }
> +
> +    if ( !nr_handlers )
> +    {
> +        printk(XENLOG_ERR "%s: No CPU handlers found\n", node->name);
> +        rc = -ENODEV;
> +        goto imsic_init_err;
> +    }
> +
> +    return 0;
> +
> +imsic_init_err:

Labels indented by at least one blank please.

> +    xfree(imsic_cfg.mmios);

Better use XFREE() in cases like this one?

> --- /dev/null
> +++ b/xen/arch/riscv/include/asm/imsic.h
> @@ -0,0 +1,66 @@
> +/* SPDX-License-Identifier: MIT */
> +
> +/*
> + * xen/arch/riscv/imsic.h
> + *
> + * RISC-V Incoming MSI Controller support
> + *
> + * (c) 2023 Microchip Technology Inc.
> + */
> +
> +#ifndef ASM__RISCV__IMSIC_H
> +#define ASM__RISCV__IMSIC_H
> +
> +#include <xen/types.h>
> +
> +#define IMSIC_MMIO_PAGE_SHIFT   12
> +#define IMSIC_MMIO_PAGE_SZ      (1UL << IMSIC_MMIO_PAGE_SHIFT)
> +
> +#define IMSIC_MIN_ID            63
> +#define IMSIC_MAX_ID            2048
> +
> +struct imsic_msi {
> +    paddr_t base_addr;
> +    unsigned long offset;
> +};
> +
> +struct imsic_mmios {
> +    paddr_t base_addr;
> +    unsigned long size;
> +    bool harts[NR_CPUS];

An array of bool - won't a bitmap do here? Even then I wouldn't be overly
happy to see it dimensioned by NR_CPUS.

> +};
> +
> +struct imsic_config {
> +    /* base address */
> +    paddr_t base_addr;
> +
> +    /* Bits representing Guest index, HART index, and Group index */
> +    unsigned int guest_index_bits;
> +    unsigned int hart_index_bits;
> +    unsigned int group_index_bits;
> +    unsigned int group_index_shift;
> +
> +    /* imsic phandle */
> +    unsigned int phandle;
> +
> +    /* number of parent irq */
> +    unsigned int nr_parent_irqs;
> +
> +    /* number off interrupt identities */
> +    unsigned int nr_ids;
> +
> +    /* mmios */
> +    unsigned int nr_mmios;
> +    struct imsic_mmios *mmios;
> +
> +    /* MSI */
> +    struct imsic_msi msi[NR_CPUS];

You surely can avoid wasting perhaps a lot of memory by allocating this
based on the number of CPUs in use?

> +};
> +
> +struct dt_device_node;
> +int imsic_init(struct dt_device_node *n);

Misra demands that parameter names match between declaration and definition.

> +struct imsic_config;

I don't think you need this, as it's ...

> +const struct imsic_config *imsic_get_config(void);

... not used as parameter type (where its scope would otherwise be wrongly
limited).

Jan


From xen-devel-bounces@lists.xenproject.org Mon Apr 14 09:43:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 09:43:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.949472.1345990 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4GLB-0003V3-9B; Mon, 14 Apr 2025 09:42:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 949472.1345990; Mon, 14 Apr 2025 09: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 1u4GLB-0003Uw-6A; Mon, 14 Apr 2025 09:42:57 +0000
Received: by outflank-mailman (input) for mailman id 949472;
 Mon, 14 Apr 2025 09: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=KxE1=XA=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u4GLA-0003Uq-62
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 09:42:56 +0000
Received: from mail-wm1-x332.google.com (mail-wm1-x332.google.com
 [2a00:1450:4864:20::332])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d67f74cb-1914-11f0-9eae-5ba50f476ded;
 Mon, 14 Apr 2025 11:42:54 +0200 (CEST)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-43cf05f0c3eso28393935e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 14 Apr 2025 02:42:53 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39eae977513sm10323309f8f.42.2025.04.14.02.42.52
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 14 Apr 2025 02:42:52 -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: d67f74cb-1914-11f0-9eae-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744623773; x=1745228573; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=DfgZ3HijqOJ/wxKjSR7JQ1hrcW4htWHECuAzSUmIyPU=;
        b=IRti0MNjAMX1ekttHuttkWm1Rz+CKa2sZWsTRiivchluCAkS9JPwxzOh6cOKokFjjG
         hFZcJqM5kvNVjPpI10CeLJJjskbWZ3Z2cBhaT2VB5E2dl8W9GxROdlgbz5LkI25EuEqw
         26a7TLLlGKoBfd5erPf/5X6AnwxzryS9jSX8I=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744623773; x=1745228573;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=DfgZ3HijqOJ/wxKjSR7JQ1hrcW4htWHECuAzSUmIyPU=;
        b=vna4e4kU4Ahzf3SRwTHd4Ygpv7vzabZzRCOCxhScLVR3w0zjuh48QldSbjDPd0WjZG
         kAkNmEsVF9VDtwjVmQhEKOhpN+CqumbC09IO+/0yAdva543+VP2gZOi1Cw2Tp5dpnpT0
         jH8ZBByddKAVg60G7RN3mx3/nTHiTgsfrAsQmg+a/gCRX/V8QbILF7t30PUTtVsxPeG0
         a5Kz7I7H1CNiv8SbxCwtF6do17aJLemsZ34IlJfJmOCVa7G71RgDWLX3gv8+ugUpZ708
         KFOUofhcd9Ym7hf9ZO0o5MuZElN+C4K+ykQZCSE3xYyPiYQgR/RSkMHazOKDPCpsn8fZ
         msmA==
X-Forwarded-Encrypted: i=1; AJvYcCU52wWkxCmizgeKNfO+eNcuT1vxIY6RENqeIAtOxklu9yB/D5hFNTb2z2SBNW7TnIeIGKbwLelICFQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyPFBAZTx0fyhm1LVtwcnrmPbNu5XVYMr8iOP/dAU6R3ft7b5sn
	iKRqkVMBaSY3Q3+Bev3GSyGpSazmPM/Svhll+AeSHp9vyna691sdDtIf2pKE6cI=
X-Gm-Gg: ASbGnctYFAX7MyCZzusT9N5ITq5o0lQWe9X3XXC8MWrCs9giCMMv3woi0nVhw69tJzn
	hfbGcGxyyEG4D89lwU5xZ77goBvdfCsITSGpS00OYXUPm6FfBVEe5bIAV1KyuMIzm3p01KU93y7
	JssrnRXkLAlOW16o78RIbTcxj6VCf5uqHG0a2qvEezbktTmVOx77KBbZRR7huI3VCs5kzWLvWYd
	ezhqp8t3r/QsOMIgfsoEuUfcLrv8oT7uzgJ62z4IzpikCqwCDd+n+oyfW/v3/Bs94H8+p+Px0jk
	db1vQaWCsVErFjt0XexLTVN9IOMWotGGjfjX+Q5vD+yIupxilUhFgofz3P0VCf5ElQy0J1rciRM
	cTT7z/6SFhaKGAbFe
X-Google-Smtp-Source: AGHT+IFAOdrv1YOpqoo6ajfO8MlUUcZdb/MtRuAi9hVdNC8EU50jmyrH8tNayCyl02P8iK3i6pd2ew==
X-Received: by 2002:a5d:5c84:0:b0:391:4674:b136 with SMTP id ffacd0b85a97d-39ea5213d70mr7669029f8f.29.1744623773160;
        Mon, 14 Apr 2025 02:42:53 -0700 (PDT)
Message-ID: <fd8b6f0a-983d-4413-af73-422da9fad6a2@citrix.com>
Date: Mon, 14 Apr 2025 10:42:51 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] CI: fix waiting for final test message (again)
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, xen-devel@lists.xenproject.org
Cc: Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>
References: <20250413134826.1366350-1-marmarek@invisiblethingslab.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: <20250413134826.1366350-1-marmarek@invisiblethingslab.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 13/04/2025 2:47 pm, Marek Marczykowski-Górecki wrote:
> The previous attempt has correct diagnosis, but added -notransfer flag
> in a wrong place - it should be used in the first (outer) match out of
> two, not the second (inner) one.
>
> Fixes: 1e12cbd6af2c ("CI: fix waiting for final test message")
> Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>

Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>

> This actually fixes the issue described in the referenced commit. When
> that issue happens, it can be seen as a complete console output (up to
> Alpine login prompt), but test still failed.
> But that is not all the issues, sometimes it hangs really in the middle
> of dom0 boot, for example with last lines as:
>
>     [    1.816052] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
>     Poking KASLR using RDRAND RDTSC...
>     [    1.818089] Dynamic Preempt: voluntary
>     [    1.818251] rcu: Preemptible hierarchical RCU implementation.
>     [    1.818254] rcu: 	RCU event tracing is ena
>
> and sits there for over 120s.
>
> It's unclear to me yet whether it's a real dom0 hang, or an issue with
> grabbing console output. Debugging...

This is now the only failure I've been encountering, given the extensive
runs over the weekend.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Apr 14 09:51:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 09:51:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.949485.1346007 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4GTK-0006Fj-CN; Mon, 14 Apr 2025 09:51:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 949485.1346007; Mon, 14 Apr 2025 09:51:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4GTK-0006F9-7N; Mon, 14 Apr 2025 09:51:22 +0000
Received: by outflank-mailman (input) for mailman id 949485;
 Mon, 14 Apr 2025 09:51: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=qHXw=XA=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1u4GTI-0006C8-Kb
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 09:51:20 +0000
Received: from EUR03-AM7-obe.outbound.protection.outlook.com
 (mail-am7eur03on2061a.outbound.protection.outlook.com
 [2a01:111:f403:260e::61a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 03f79f7f-1916-11f0-9eae-5ba50f476ded;
 Mon, 14 Apr 2025 11:51:19 +0200 (CEST)
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by AS8PR03MB6872.eurprd03.prod.outlook.com
 (2603:10a6:20b:294::7) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.33; Mon, 14 Apr
 2025 09:51:15 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::35ac:8893:c31c:b971]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::35ac:8893:c31c:b971%4]) with mapi id 15.20.8632.030; Mon, 14 Apr 2025
 09:51:15 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 03f79f7f-1916-11f0-9eae-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ezpq3xkgoIJ3LcQ5OcA2VWMP8axnTD2P0e7WQRt7iSRfHubGFByGaQ6TWCqxlGffFkgu8KSm4z97wiQ380eZ6v+ti1CeZtqYd2b9R6qS7M1BDvpBu+zXyn71cbL6o94bjXZRoxvIoGZ0HUZuBq7CA0bwTb3tWqchGcGIwmaZLiYiJRjkhfEWr8rgwGdQ3uuIh+o59Ikw2ATKyR5z6fPuI2xcuZ9yHmwIKsZxzre6uGzcIOqH3xpT9Y7aNipU6Lt6vnc7NkBYUGqhDH229NlRigI7ZWRvqtEHT+IjqOowTEFmEntcXztsVp/71foU01EK8MQvzj4PUNPAU7gTkZcKfA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=N+vR8dRTwJ+Uk8oCJ0o0/7hbQ9YNMpt9YztKzxqFNpE=;
 b=AJ1pSWiP8qcehQ6Zg+sU257L3gKnCqwyKg2IXI445CI7ZMsjjn7vZCM4yHkKuy8QQPOqusUZHmeZHh8hgDlYOFS7Su67j8l3xxNuXm8xAA31HPasUwuv/0LWVJaeuQcWDevxln5HgIhbEmwpFIfDPScWmoyuMXg7nPZpmB8dSidX4DUVXUWd8VZGrcNidWhZkR0PjRP38OID7hm/yxFIk5j2VkZnADYnQBKoxfIpzABbYBZJdB2MGvVhDPyaxG1nkYb94dp221EMOXhsxtStlyfSsCHSOaYG37cpVzPC9hJnKPpjtVwaZskV8nHMI92GH8pB09iiVDdp4zborcqo2w==
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=N+vR8dRTwJ+Uk8oCJ0o0/7hbQ9YNMpt9YztKzxqFNpE=;
 b=cYdUNIOkXt3B6NhLw2tQMhA+FKkZbcjjBC9qsDuL/qP58J4NTubVVHDd81Y/C+k1pAzBs4od5B7Xli12fxodPETO/D/7j75j3s9w5Ro1r555ZEJvq2vJPlU0mIgc1qU0fembM/XpdAt08L/X1VwsIxOEXf6sfPS/JE9z1gnr0a29IJutCJn4ieT8vD59rucSA+3H4R30JW3E6XPvzhCEJSNn+41EnG0NtDfa0ueq/m4lqVNFcCVZWCR/rzvbKjREPNlVIkcBKaM4lNfFBG15JQJ3A6HHSPUI80I3TwGfzBJuHLiGtyRvixcISbgh1e96UtkByqS55oPNjhZMiCB1xw==
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>, 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>, Mykyta Poturai
	<Mykyta_Poturai@epam.com>
Subject: [PATCH v2 1/2] arm: vgic: Add the ability to trigger MSIs from the
 Hypervisor
Thread-Topic: [PATCH v2 1/2] arm: vgic: Add the ability to trigger MSIs from
 the Hypervisor
Thread-Index: AQHbrSLDj8+kM3eLrkyegn+x6Pj4JA==
Date: Mon, 14 Apr 2025 09:51:15 +0000
Message-ID:
 <3dba1b51984f24e36d5fbd81396ab7dd53d8ac95.1744621166.git.mykyta_poturai@epam.com>
References: <cover.1744621166.git.mykyta_poturai@epam.com>
In-Reply-To: <cover.1744621166.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_|AS8PR03MB6872:EE_
x-ms-office365-filtering-correlation-id: ed3fa4f8-0175-4168-4c3a-08dd7b39e5fd
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?350i9P1tHmLqHNSITUqD6QajRUgIrX+mfuEiivy3heQqEYHpujU3TXu7S3?=
 =?iso-8859-1?Q?guZpeKRhJweZgxXLBNJDACtLggujJVQz1OY4qfc3m92lW3ysJxSm0QnMas?=
 =?iso-8859-1?Q?IODF64ybQI7BjdiqaEi2R9nhT8pnBeJQSmfDb23FcinXZrUMXth7dE7cpK?=
 =?iso-8859-1?Q?O7bBcgerd7i5+rLw3XLIurJAgALUrgjGbI5B33yYN0Llc//woOGxkdqUXx?=
 =?iso-8859-1?Q?kZwWNS0PVgIBiLZVxxRPn8eVesmm7+FAz61nK0xVAH4wxEu/hYfhaTVBEy?=
 =?iso-8859-1?Q?g9/+EcvKHfuHhE9a0acEHQFJHWtRrsNVdtLHjSxosVUEzcPzc3Ja8wuggs?=
 =?iso-8859-1?Q?OzJp89p117i1PPoqeJdwlTfFcL8yuoYUq5Q/TvBH5M8dVHhueTtUWIwyhi?=
 =?iso-8859-1?Q?LxvR2SImWzsH+z2EHH7eClOHOrbyJ+Qv9AuARPVNU+s4Yfs+hT1Hr4mP3V?=
 =?iso-8859-1?Q?EnzCA6M3EBn+6BM0i+4M9r+BOLNo09qt/DbYdo82xYk2vyappDuQNn5s1G?=
 =?iso-8859-1?Q?MfRquipDTg/M282W4dvJuTeNKfd8u+hkT1SyFb2X9Wc9TCfsrHa62WUf8p?=
 =?iso-8859-1?Q?5j9WS6EP2fXpaVsruPHwqPUnCk2yetWFYfV/qGbxoWYa5s/NN6RznyBzfr?=
 =?iso-8859-1?Q?ZrCjGUwIyl2rkF5vpt5ldEWMD55O4J45BzWkEeghFs4nXjn0rCb/qijcBR?=
 =?iso-8859-1?Q?pCFbt+RgXjrNWxYRuo6o6M95N9bkdzOOHMG0fsP0Hkufo86bnCxoDZAusB?=
 =?iso-8859-1?Q?l+osGJgAtw2WzWlU3Hg+hFZXfE/xMv5TqNW87Q3L1z+O+mkcUvbOkFdIlp?=
 =?iso-8859-1?Q?wYIOZCHcKng2sUJVzQc3rLiuCkJW7W2ErK9ju+rZEQgp2VQBlGz3aee0VP?=
 =?iso-8859-1?Q?MxGTI+E/8v/0HHJJ3+G+jMk6ecF9V0l4PhjpiGF4MuE0XbejooTkXSpfSq?=
 =?iso-8859-1?Q?KGmdAvzy267cFX0SxklxRrZamrV3XQGOldXpK+ngZqmYm3CJtDH7jNlyW6?=
 =?iso-8859-1?Q?qtTIC5fDr9B8Olt5obaD962SRM2WipZHVvTFlf473gzTsRG9w76yuB9lre?=
 =?iso-8859-1?Q?yMsekiGtqaIViKgSkge9q5ph6lMoXpBvWSJ1Vi0GFz+g5kmZmHjmI0cmJb?=
 =?iso-8859-1?Q?veEbTFAyta2A52QJ5Vq6VYe6o0YwInDXAaJq6T9ogCv23o4iKPdD0nzOa+?=
 =?iso-8859-1?Q?fZP4aWQIAMgdQ48mjgxbQSVgFbMTsUDEuqYtq+ODlNdCQLYm7sbiv20JlU?=
 =?iso-8859-1?Q?oVOkn15TClRkwXCv3BFWu8yJFupQv5NNcPOuog6AkhqbQ6fh6nZnL1euDB?=
 =?iso-8859-1?Q?bOsdbmu6eUeeagDwEhEltHzq1ItKTOJ1jr8CtvP8EeDW8sBU4hf96j80jo?=
 =?iso-8859-1?Q?jEJtoIZaSIGAJ+kQMqFcBg64t+AvJMlZ9EnES/k5wjK1ua+EfHSnznxc7a?=
 =?iso-8859-1?Q?fP1oLSnAd9sAu5EEL2t17nJWB6UB5wmIDJ8ADLpXwp2WHOB7ZoOxothQTw?=
 =?iso-8859-1?Q?+rwiWABQ5IwRkEPiF2ExBiA5e7uwenXRsUEgp7sxtG7g=3D=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)(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?TYi35JLBSO1NTgJilvIwsxjevbQZZnt1EFeet7whPPNhsbP+3HuaWP2fG+?=
 =?iso-8859-1?Q?cuDoU4ofAFUf1VVyjKXpqppeQRrRkbVrU7nCep66rV4lGvEc8RixknDdfU?=
 =?iso-8859-1?Q?pJFso4C3MLOt/Y2rQdXlN2OdjqG45pkHJGhb946HSgcixTo6Tttn/Knc9T?=
 =?iso-8859-1?Q?EYWuhsBo1ZqobvqrCsg8LfNknP2BjYh7aYUUtrpkoJyj/DbW6GG8XrdOYK?=
 =?iso-8859-1?Q?6NRUJwsETGRCz6w8mBydlFyseeY9ZIxN2blp73i6OiBuhv0HXSv2q/CV7S?=
 =?iso-8859-1?Q?zcVjjc3cri1MO7CX0YB9jagYTpsM0jFw1TQPWZUp/yovIJsuIwS+uDbbqk?=
 =?iso-8859-1?Q?rc24gNuSZwkjxTztRIgrWttB/ZlzvRJU4WTrsXHJOfenBJtU8wHiGhVC14?=
 =?iso-8859-1?Q?MDXLxQEX/eD57aHPV5bNvWht6aU0ASPNjIblZJsRdJ8pj7EXBsvl6/VTzr?=
 =?iso-8859-1?Q?R0ai5GIr3SMIxguSO6vJzC9ZyNn2vNXVTImjdYTLwrKaikeNHZw8+72fuQ?=
 =?iso-8859-1?Q?pUIwi2fQNYBu/H8x7lro+qb/SsmbUjryuxjL4omYnQ4158vb11Zw/WsY5x?=
 =?iso-8859-1?Q?UKMp8msHspycZt7/rhlOpkUP67CG+8dCW2AyW8njcC9e1+PHxG8dUumqrc?=
 =?iso-8859-1?Q?LBjCe0URMhti66iEauahIxIlutW2Fcs7h/jWEc7t9vBukiK0FCuEpQshMD?=
 =?iso-8859-1?Q?DvuIBHi9zR0SBd/2KIwFZd6X4H2IwxzzYHLN+i7pqCQHK2Lica/8IN6YVI?=
 =?iso-8859-1?Q?F4pjE7B10UWF9vuDte5myDjuGS+AhXa8r16f2EnnfY0yhZfqgYLeQBQ4sQ?=
 =?iso-8859-1?Q?J4YstOWEDSq9JdnJEdjKFiVYmDq8SBgZGaPMPDMKBVDZl8rO3/anmMCprf?=
 =?iso-8859-1?Q?ec44B8v5PqUtp5XnIxSgOIzTuj1BjUTtX1lo9Ga1Stp3xNXfs032krQg9P?=
 =?iso-8859-1?Q?IWYafE3xEJzxhU8XEJAHmt7EzJ6LItWxrXI+bdD2rx+vkaVBhqnQLn/Fde?=
 =?iso-8859-1?Q?/eKRayRfgXh9R+L+YaV1gvKU0VX7BWH132C19XV2Kr0Vkpmfx8oPc4EUgg?=
 =?iso-8859-1?Q?2oxrNV76DokowdX1k6zped+8zbRNi/ToBbStRjm2nxzLkKXnI5dK+7zDtb?=
 =?iso-8859-1?Q?EcEdWvkIKPxtjIETau1N37Rw3+TpAyoUHNUEjYIVz2AKrdweWiB81vfDNk?=
 =?iso-8859-1?Q?SPysN+vo885OWzeL3e0kB+NA+2tghNUiCtT35moCjT41BOpp9WUwFVGvwn?=
 =?iso-8859-1?Q?suHMgLep4CswwnViZqgMUdCWcghUfiBLjrDbleFAd+xlKhh3MSFTH21RnG?=
 =?iso-8859-1?Q?tFVxgpPvPf9t+ASqgPnRjhByGi0Swh+oRlys09Biy9EJqSjSUgyeoUBiPf?=
 =?iso-8859-1?Q?XkfoeBkQ2RA1BHXEFGkQxuluHSeqYIrum8QtoOO5zuwm2iNaCoOzBEsrKQ?=
 =?iso-8859-1?Q?yxsLlM8T/DB5Kp1NZMg0CvODNxlMzp0BFrUx/IaCOMCqkqVP/mPexsZ980?=
 =?iso-8859-1?Q?tGHO0uoERsdIQMRmX00Xv4b7U481ZHJWb1w6e6guF8sQDZJ2V3DK/AAO2u?=
 =?iso-8859-1?Q?x8714GRo1xVGahhwPj0daC1pRPO0tjXNHdv6o+wfwm4unVf9tTn3+vbehe?=
 =?iso-8859-1?Q?WtnGV+woxDtdMofLGZW8bwJi2B+4H6mjE/ZN+rkY1bNr22ukzyBcdzZw?=
 =?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: ed3fa4f8-0175-4168-4c3a-08dd7b39e5fd
X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Apr 2025 09:51:15.7913
 (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: ez8qfmnrv1AQV4QRm+FRt4LeTPzMJJEROla4dUrZeUtBc80w/ApJugkVKA1hKg0af92x46I0jie+LGf0jLKx8A==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB6872

From: Mykyta Poturai <Mykyta_Poturai@epam.com>

Add the vgic_its_trigger_msi() function to the vgic interface. This
function allows to inject MSIs from the Hypervisor to the guest.
Which is useful for userspace PCI backend drivers.

Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
---
v1->v2:
* replace -1 with -ENOENT
* reduce guest memory access in vgic_its_trigger_msi
---
 xen/arch/arm/include/asm/vgic.h | 11 +++++++++++
 xen/arch/arm/vgic-v3-its.c      | 19 +++++++++++++++++++
 2 files changed, 30 insertions(+)

diff --git a/xen/arch/arm/include/asm/vgic.h b/xen/arch/arm/include/asm/vgi=
c.h
index e309dca1ad..3d8e3a8343 100644
--- a/xen/arch/arm/include/asm/vgic.h
+++ b/xen/arch/arm/include/asm/vgic.h
@@ -318,6 +318,17 @@ extern bool vgic_migrate_irq(struct vcpu *old, struct =
vcpu *new, unsigned int ir
 extern void vgic_check_inflight_irqs_pending(struct vcpu *v,
                                              unsigned int rank, uint32_t r=
);
=20
+#ifdef CONFIG_HAS_ITS
+int vgic_its_trigger_msi(struct domain *d, paddr_t doorbell_address,
+                                u32 devid, u32 eventid);
+#else
+static inline int vgic_its_trigger_msi(struct domain *d, paddr_t doorbell_=
address,
+                                u32 devid, u32 eventid)
+{
+    return -EOPNOTSUPP;
+}
+#endif /* CONFIG_HAS_ITS */
+
 #endif /* !CONFIG_NEW_VGIC */
=20
 /*** Common VGIC functions used by Xen arch code ****/
diff --git a/xen/arch/arm/vgic-v3-its.c b/xen/arch/arm/vgic-v3-its.c
index c65c1dbf52..be5bfe0d21 100644
--- a/xen/arch/arm/vgic-v3-its.c
+++ b/xen/arch/arm/vgic-v3-its.c
@@ -1484,6 +1484,25 @@ static int vgic_v3_its_init_virtual(struct domain *d=
, paddr_t guest_addr,
     return 0;
 }
=20
+int vgic_its_trigger_msi(struct domain *d, paddr_t doorbell_address,
+                                u32 devid, u32 eventid)
+{
+    struct pending_irq *pend;
+    unsigned int vcpu_id;
+
+    pend =3D gicv3_its_get_event_pending_irq(d,doorbell_address, devid, ev=
entid);
+    if ( !pend )
+        return -ENOENT;
+   =20
+    vcpu_id =3D ACCESS_ONCE(pend->lpi_vcpu_id);
+    if ( vcpu_id >=3D d->max_vcpus )
+          return -ENOENT;
+
+    vgic_inject_irq(d, d->vcpu[vcpu_id], pend->irq, true);
+
+    return 0;
+}
+
 unsigned int vgic_v3_its_count(const struct domain *d)
 {
     struct host_its *hw_its;
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Mon Apr 14 09:51:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 09:51:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.949484.1346001 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4GTK-0006CW-2j; Mon, 14 Apr 2025 09:51:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 949484.1346001; Mon, 14 Apr 2025 09:51:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4GTJ-0006CP-W5; Mon, 14 Apr 2025 09:51:21 +0000
Received: by outflank-mailman (input) for mailman id 949484;
 Mon, 14 Apr 2025 09:51: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=qHXw=XA=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1u4GTH-0006C8-Vp
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 09:51:20 +0000
Received: from EUR03-AM7-obe.outbound.protection.outlook.com
 (mail-am7eur03on2061a.outbound.protection.outlook.com
 [2a01:111:f403:260e::61a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0354b8fd-1916-11f0-9eae-5ba50f476ded;
 Mon, 14 Apr 2025 11:51:18 +0200 (CEST)
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by AS8PR03MB6872.eurprd03.prod.outlook.com
 (2603:10a6:20b:294::7) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.33; Mon, 14 Apr
 2025 09:51:15 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::35ac:8893:c31c:b971]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::35ac:8893:c31c:b971%4]) with mapi id 15.20.8632.030; Mon, 14 Apr 2025
 09:51:15 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0354b8fd-1916-11f0-9eae-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=wNJmw+NfrC6A3ho9PEa668JlI+pKOcrImiI/GflQNGacl7PV+KjzYPj3VDkrzpR6p+O4HdlL0FbEB8y/CLz3QEZzdXx1d1DL4dZmPMVUYh1xT/IIyLVhNJd+6ieebIUeLsQXZ4A46JKGdUx6ikLmXeLJtXQsH2IBsBa44NR0Chbcs8I6/xAVOoLPaEmSOgT0+m98qvLJg9DJR1Ffgh06Bgp1RuOYZw71BQ2uCm/3RZJyIoO9j1lio3lM+/ES3KVYi/JGZvmHBPInUHM4stor3lCjCawCyQSC5qoAnmsJOkhhXHp/kGlLA9EQeT9g5pNLEeoaUwQg7x5vI4dl05YAHQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=fRDfnlb0oXS7KSaR6uIMes4AmHTLuKUy4A4Q7gmmSmY=;
 b=a+O+LnOis46oJ5ey05lKxti55d0j3vBzNt+mrGNp3YGSxZnUNXHMNyDhof5jTfvcbeqVrOKxXaZ9u8OpCTB21viNoQ7KAQFOS2ZEqQQ0LAPraGYJg9MP54KMm9229/mULjXS1GDNmPSMrEBXxtRpjsP36/hjJ9oki4Njcc5wBsf5IYH8iW11x4cBiGOoLsojclfNkzv6ONqmdsGAu1QU2soxGdaAkr9sdmfl0Ybifpw3cfg6Vx8PepGjxCmoyLzYpO6YoSiCF7JddtfxFUuk/a0sFq914XS5veIbmwFDt9peK3FcTK5UsI3YtabiLu8Uh/nHrrx6VwiynVyQiGRAkg==
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=fRDfnlb0oXS7KSaR6uIMes4AmHTLuKUy4A4Q7gmmSmY=;
 b=tMNaa2xB7S/VkJzyZil15OytWaI6ELmVmOnMCktmMx7xGN5qctqR3apYKUQeRGCkswcX2ICMQdrsRHJezboenxzdZTdGw4Xm35hyFRLOQBNmb3duRDPz2e1kxH4WyOxLrLGbxYr3r5WXZvpkPa80wD3sD9haF/v7loKCplidjx9iyKdgNLHPfAlsG5/S4Xg022xMgVe80v3oD8xLRN3I+OybjPImiCoPNYMYHS0A0tpb2WxReNLqsxp3eN5k73vYYFLcIWAYE9miqNdklu159bsK/ctxuHpyg8Gakkq8110wXtT8wMtDqt3dNiYkTngHC58JhlB07etFYd4PrsqD+A==
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>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>,
	=?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>
Subject: [PATCH v2 0/2] Add support for MSI injection on Arm
Thread-Topic: [PATCH v2 0/2] Add support for MSI injection on Arm
Thread-Index: AQHbrSLDj7RBwKKgz0m9mJin+yPd5g==
Date: Mon, 14 Apr 2025 09:51:15 +0000
Message-ID: <cover.1744621166.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_|AS8PR03MB6872:EE_
x-ms-office365-filtering-correlation-id: 4f3e75e8-afbe-48b9-6fe5-08dd7b39e5ba
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?MBn1cBNZB094w15uNJctEsA1OkmR2fEnGpKKnu/k8o3jzpjiSVxG28FQuX?=
 =?iso-8859-1?Q?ZEnWk6T9mhM1Pd0GI3wx8AK3oWM4gx+xeJ8aUFAwYY1jHrQ1dCSdwfqvZs?=
 =?iso-8859-1?Q?jdaOdEWPWirUzOnADaYuVS5qKMwkUWFBGVuUR37vPu/8tBpwaUAIsOn9eX?=
 =?iso-8859-1?Q?/6OjflxEuzCaoJ1ljPP93y2CFjm2htONaXnK6W6PGdaGYvFFg6qPUJSXil?=
 =?iso-8859-1?Q?5uUgDsMlv+p2nVSQB8EBqHOa+RvTAMlXT4Wlwl7qz9iY/1q3y49HKI6cq3?=
 =?iso-8859-1?Q?hZ37WR+OMqs2Pqew8LW0x4XID0VUm14n2fYY4c2YahFjzM6+JRC+qAGs91?=
 =?iso-8859-1?Q?u4jAzsflP3GNaaV4VP3d3bC1x3+ldmBFeMTP/Nx0siliRjioLTxwTAKwXu?=
 =?iso-8859-1?Q?5KA9Fd74OwKvXMeZNUHJUi8x2UXjq29shM05O8JjpsGNINfXhNUuP/PgkX?=
 =?iso-8859-1?Q?i+ZIyAPj9DvG9Zu34MauAdPiXVg27O+H7JLIPxnxZK2BV20ucLVjemv/vx?=
 =?iso-8859-1?Q?Ddm2bI5E5y0v/t7F1NtOQeOvhm/jCUBEftAt2r5aKH2Oba5gX8YXmmDyIf?=
 =?iso-8859-1?Q?iOvLi7u4Qhot6ZxlU7Kv6SqBDAyS7SaMmG4aPxe8b55X/6feges775IDyt?=
 =?iso-8859-1?Q?GJ2CeRXmmEA7A01QD5T1OPb2y3cjhzNL1GKigqwHqZs2kQpb5pMFgs5sFG?=
 =?iso-8859-1?Q?SszIrk6teSANCrKgLocaETXBlEzEq943StH8LINct08QsMlCeyv7c1bY13?=
 =?iso-8859-1?Q?iX4VJLWz810Z5BEtlI4O21S2lMJep5303h7g7VTHhbKm6OhttB3F0X5q6G?=
 =?iso-8859-1?Q?psJOLZCfdBBolosPhW78DpNOMeguQwVbDzAXGcKEBW06DB3qOkMX9VMyrt?=
 =?iso-8859-1?Q?3PJfp0xrAi/9eKyAZgNxq8B7xmUIHQhlL7VP5O4tDLR2G3xpNnRZx0gib8?=
 =?iso-8859-1?Q?S5zrbHDklPUEduxt5MQdp53DBuYHQWVuql+50of8TFSpulxexejfiwu7P6?=
 =?iso-8859-1?Q?NOOQ3n1G6lXV55MxlOXYo9/fuY035z048JFO/PIs7Y2Lgdupc1Zm4oR3jM?=
 =?iso-8859-1?Q?s09zoxtx/+He5DxZhHe3JvJreoe7CzuDltq8LFb+biI5rC6LeMdkfcO0Bs?=
 =?iso-8859-1?Q?fH37nOQsmrbzJpFLs22wq+N9qw4IEwaaUBiE5rMkYBs5TK/h/ewSJXVDZR?=
 =?iso-8859-1?Q?8o6fu1nYDTy9Z5yDAbF151DON9gqex636DH8BIrfOHZSP2cM5PYeqPhRid?=
 =?iso-8859-1?Q?QQ6+K04Sjv0F2rJcezmsxssZ0tzCGn8Rpmu3xtC28aYU1F8rJgIrWCvOjJ?=
 =?iso-8859-1?Q?ilIJXidgqvPQ9QlV7J4ol5UJR0LumNx+yC3nDQAwHcS56hExFSmu2ZGgvz?=
 =?iso-8859-1?Q?mNzLNZhIZyVWL4KmnT8+XFQx0w+obAuEEN7nT60UZu+aUtigHPFlS9lIzf?=
 =?iso-8859-1?Q?IrHcpm4r0dGk9HK1FckXTIGfs06hnIdwD3OiBWJVf589wxPAGXNeugsTjG?=
 =?iso-8859-1?Q?cKs8jye0MYeCydqdwCCVTeu6oVXPcnnSOII4IKFSszDA=3D=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)(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?jJDr/hS4GCqp5NsWd/oWS8qdvzlOaEy65SzZRS9pVVG+swwJc2XCmv2H4M?=
 =?iso-8859-1?Q?8uPet76HVjLI23FyHLJJxB6ki2JU47A73g2vwv0cM3cW6JLU6JywNfLLP0?=
 =?iso-8859-1?Q?HRHabJNO9SsysZHPm+bwdoAaLwuI56uRDU48DAEcNHLm2Z7WeR5nDhLblD?=
 =?iso-8859-1?Q?3GtrbiFCj8tpwvb2mB8Lj5+eajExgMGPgGYk5m5Az8gSuBSPicnezduu+3?=
 =?iso-8859-1?Q?3z6Ul8GLhD+77BcEUh9tFEyNRiFflYTaWlTHbuJsPTzAfQbiHtS059lkUK?=
 =?iso-8859-1?Q?AsfIwG05rJIG+9HZDncBHo3txOnX1rcjWTKt/8O9GX5czw+9VN650UxIja?=
 =?iso-8859-1?Q?Tatxr6Xhc+HKOl2b99KQcEZLxiFuaSFsS0ewdwwQ+TqLj/vdWhMMB4U3wh?=
 =?iso-8859-1?Q?fubN0BNN26qtNu1PbdTP/FUJTsooErHe09fMCec+G0SuT0XCpaLNi2ouLw?=
 =?iso-8859-1?Q?JVeNGwbkXGcgRr9Z4wuhbNuD5DUI8wIEDQL8r47QenjhsP+4nRwO3ba2re?=
 =?iso-8859-1?Q?aY6aMfE6HjHAJDRJceeqmfBLu2yhKHWVOv+vxugk0Wp2p0DCTWrO6DYCpU?=
 =?iso-8859-1?Q?42E4gTKbE8mM5E1ltNXWP1bJ+fpbu6NKQpxYZjwvJ0/JILQdmlHboDnvC1?=
 =?iso-8859-1?Q?PcgIIww9hqE8HXDHqbFlZeB+IvDid+mIDfPLsxZ4m5pH0XDxxIfyfczxLM?=
 =?iso-8859-1?Q?ptcgH9eBVlTYfsemXD9Rjw8NXKuFXNrkX0C8SKdlVB4a2DQuoR03TEA0LH?=
 =?iso-8859-1?Q?ajtYMBE8Kktho13ZfWLhJPtVlQBuJBZQhGwOJP0Y81fWgpG2FFv3+gB5WH?=
 =?iso-8859-1?Q?2kw9Yb1ZcXT+pT4QNtcTGIM18r5qCHT4F+YEiDSM43pJRyZXmsdPrtPElb?=
 =?iso-8859-1?Q?VOuOUDoCEmFIMQ4YVtZNIEZdQx35ahPXztnjKyG6IuSUCTH3AOepEqzPUe?=
 =?iso-8859-1?Q?MNamzO640ASx4GDegHo0J4CCPdz51/t3G839KkdwG/dv6BiC02A5fmRel5?=
 =?iso-8859-1?Q?QCLhjwU7xTqwo/Ze+PkHle82Mq0Yu4tLcS9NzlPIQqF7r+BLKtaZvJ1CFw?=
 =?iso-8859-1?Q?LsW4jvT8VaqpZ4ogxkzwY6+fWVDINvFweikqkm4YmLMtZIHAFOkmvFyvwC?=
 =?iso-8859-1?Q?JdeAEpuLtlsnRPDy9Pv+qC4PklkgxabqO4opAN3FmdLNctA/lJ/nenCV8Q?=
 =?iso-8859-1?Q?EpYk35Fbc4WtxCEwwNRQ7xdVUnn5pKIlGtGGV+5qBY9aXifuAgqpLr/6mf?=
 =?iso-8859-1?Q?AxzhZffn1j0hcpJM2PEDxdknSRTgO4TNZrISAbaq0AItr0J6O2JUt1CSTt?=
 =?iso-8859-1?Q?L2PaPEdsfukMXZruW8XA8wlmdlsLGC0Y9vjaJI4QJohssNqB8EiDy7rjKg?=
 =?iso-8859-1?Q?ASaJRqGlipj4sPFpIIp1wb11kMp2vfZNrkZWzovHmCoba6XKYpQcEhB0ie?=
 =?iso-8859-1?Q?YaXuEoxR0buHH3G8NBGBjQaMbBuwiGeaDGCEm1dNLoZxAJ5rhaKsxd2yaI?=
 =?iso-8859-1?Q?FXSx/daUoo3+LA0nD7F9sv/xl9L8dOF/ZUNC9NlT14LqDUDGD3JE1ZpD/1?=
 =?iso-8859-1?Q?kXyJoeeLvyFh22P/xXM0K2p83n+qwJOT8V9oit7kWoBvj3psvexFUJdsqi?=
 =?iso-8859-1?Q?tJjp71pLjDgnhUfDJq+Rg+9stqMeOn7E4BVZLdnY9uNkPk7Z/jsgDMoQ?=
 =?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: 4f3e75e8-afbe-48b9-6fe5-08dd7b39e5ba
X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Apr 2025 09:51:15.3898
 (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: f2EjO4JYh/92r3t9DGeXNV9nexpVBeuoMgoJ/+9DKIXwxPNfEbcjKcyWUAQJFpGyTojhhvGYsE6iM3rxSpMkdw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB6872

This series adds the base support for MSI injection on Arm. This is
needed to streamline virtio-pci interrupt triggering.

With this patches, MSIs can be triggered in guests by issuing the new
DM op, inject_msi2. This op is similar to inject_msi, but it allows
to specify the source id of the MSI.

We chose the approach of adding a new DM op instead of using the pad
field of inject_msi because we have no clear way of distinguishing
between set and unset pad fields. New implementations also adds flags
field to clearly specify if the SBDF is set.

Patches were tested on QEMU with QEMU virtio-pci backends, with=20
virtio-pci patches and patches for ITS support for DomUs applied.

Branch with all relevant Xen patches:
https://github.com/Deedone/xen/tree/4.20-dev%2Bvirtio

Branch with all relevant QEMU patches:
https://github.com/Deedone/qemu/tree/virtio-msi2

Mykyta Poturai (2):
  arm: vgic: Add the ability to trigger MSIs from the Hypervisor
  xen/dm: arm: Introduce inject_msi2 DM op

 tools/include/xendevicemodel.h               | 14 ++++++++++++++
 tools/libs/devicemodel/core.c                | 20 ++++++++++++++++++++
 tools/libs/devicemodel/libxendevicemodel.map |  5 +++++
 xen/arch/arm/dm.c                            | 17 +++++++++++++++++
 xen/arch/arm/include/asm/vgic.h              | 11 +++++++++++
 xen/arch/arm/vgic-v3-its.c                   | 19 +++++++++++++++++++
 xen/arch/x86/hvm/dm.c                        | 18 ++++++++++++++++++
 xen/include/public/hvm/dm_op.h               | 18 ++++++++++++++++++
 8 files changed, 122 insertions(+)

--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Mon Apr 14 09:51:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 09:51:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.949486.1346014 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4GTK-0006RM-Qf; Mon, 14 Apr 2025 09:51:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 949486.1346014; Mon, 14 Apr 2025 09:51:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4GTK-0006P1-L2; Mon, 14 Apr 2025 09:51:22 +0000
Received: by outflank-mailman (input) for mailman id 949486;
 Mon, 14 Apr 2025 09:51: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=qHXw=XA=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1u4GTJ-0006C8-Kc
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 09:51:21 +0000
Received: from EUR03-AM7-obe.outbound.protection.outlook.com
 (mail-am7eur03on2061a.outbound.protection.outlook.com
 [2a01:111:f403:260e::61a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 04410c13-1916-11f0-9eae-5ba50f476ded;
 Mon, 14 Apr 2025 11:51:20 +0200 (CEST)
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by AS8PR03MB6872.eurprd03.prod.outlook.com
 (2603:10a6:20b:294::7) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.33; Mon, 14 Apr
 2025 09:51:16 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::35ac:8893:c31c:b971]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::35ac:8893:c31c:b971%4]) with mapi id 15.20.8632.030; Mon, 14 Apr 2025
 09:51: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: 04410c13-1916-11f0-9eae-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=NFQ5dgZrv0fkg1sFb4wfi/0HGvOyl9P5UkdgddWG4iQlO2ULIOTwKnP1h+2RpoI5SmQF11F/xpUw/6ep8LywMzzYyIpaTvEweNf1iV7+ArYsewkEHayKX01F3uLgMtPvc6DOvHXNvCZvolNEfaHNmPhZm7TLuKRtY1S6VDLhSQaBFWSS6SYAgpdDiU54E3D77gn6PCA3OlXWpj35RfaKWQMxyy/f5N6/Suz+PfOfM47NRrGXsqRDzPiRCv89yoB3hCOc8/+j3HTYT1zIVDuVDS4U5Aihu7bvoSDZ+NhwZ/DzOi0MrsOEYvBIqH9rfYxMzfM3OOLusQnXzHG32ZgbEA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=DCUrpCPZhHZRdV45SQAWMseE8AkytIb8kJ3NzO6GCss=;
 b=VlvEjAmwuwxM1DE6D1XxCSusxMZkHGkqOm7oRzD8x0L3yzz2xLuvSa+0GXSmkmAQaBMG8ESLbrY2/vh0lLgOFcim3GPMJIHPRps3xH4ngWeqgfgWwW6nf4kZdC+WQ8J10mmAprmw6xcGoxlCrjO0NuIBiPRTx3rpzG9/5iZdYtf9+D11WbrXX1xTPWruh/TzbwnDHGpi/SBR34cfmrnROo3qU2jHQWLmk2gYjiNLgnuZX77/Zi1P7fTp9dWAPFZlFo7AyDl4MtLR+oE/JOLrvh+EWlvlV9G+ySu/qqY1TI4g4CQs1BzFxWbhsy3zKeurEi3KGGw15+lX5m5kU3PAqw==
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=DCUrpCPZhHZRdV45SQAWMseE8AkytIb8kJ3NzO6GCss=;
 b=nUoWioedMYBYmsLu7u24mjZXYi8H7QZgsIMEIbUAbyCVG+Cp1efyMd6/in3XtkCgCzOY66XSa+Wr4F8DMX22RSWIsugk4+YixCU4yn8M0B3tHS8eBnhmMIb1loeT17t+T9JHgSZd0OYLMMIIufon3wvvNRZsnYVlnNPITgG2Ax1fqYc2Y3UqLqHA7mh6iPUZyrQ2Ouh/iri0BBuH272kkNfUPzf9dR8qaCkuHkxhKvCxHGXpMk+FB3ugrBV2Eo+4SGP5kERzZynXk6vN6HPLbQUhceDUQCzZxLMYl6lGfiSS/mI/x1rvrBmNcZzesAXmvIXJ0traow1ZAkoGVKMZBw==
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>, 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>, Bertrand
 Marquis <bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	=?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>, Mykyta Poturai
	<Mykyta_Poturai@epam.com>
Subject: [PATCH v2 2/2] xen/dm: arm: Introduce inject_msi2 DM op
Thread-Topic: [PATCH v2 2/2] xen/dm: arm: Introduce inject_msi2 DM op
Thread-Index: AQHbrSLDkG1zT9bAeU6MKrLu8tJrtQ==
Date: Mon, 14 Apr 2025 09:51:16 +0000
Message-ID:
 <e9e7d722eeac100048ddd5a4032e3d7af39f8c3f.1744621166.git.mykyta_poturai@epam.com>
References: <cover.1744621166.git.mykyta_poturai@epam.com>
In-Reply-To: <cover.1744621166.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_|AS8PR03MB6872:EE_
x-ms-office365-filtering-correlation-id: 00afb2a2-3706-48c0-36be-08dd7b39e640
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?HatIaZQtJ7x7qAQ9R/od3DDTYomVlrt9+1mhL5nf4KJnFZDMkuYjZ961L6?=
 =?iso-8859-1?Q?lhU2B6s3FIsA51eM/i44PkauREwOlAXBw1mz00DtsaEfioMCRThJ+nPnY6?=
 =?iso-8859-1?Q?+QR9OIgb0F7AZ7Jgkx1lBike9GO/udJSAIfkSiuwebsb9rCTVX2RWOpmH8?=
 =?iso-8859-1?Q?OfYA4B1bwXWNQffsmnVZKJV15CCsbeVjKlfph9bUJ41X5ec5rdkzL8olZJ?=
 =?iso-8859-1?Q?zM/ymuiWZFTRlL7n4HP3V6/AZ71nWBnObdqLRydPvxXr7QZOZ/GYwjd1Tr?=
 =?iso-8859-1?Q?8/Gw/j0Cihdpus1EIS3Mp0dVBs8EqhD36w4YCkoeOA/t16YdbpGSOduBOs?=
 =?iso-8859-1?Q?QhqWsoLk1Y5Rpxts6U0YhiyWRvCY0aHCSiPuYnc1Hfix5v2bygHFC9mlCh?=
 =?iso-8859-1?Q?uCjVLVMokuWGZeiO0Ejc+sCYRqb6vqOsQep/vx7OedNWQS1rxGmWKB5Zhz?=
 =?iso-8859-1?Q?2nUk7PfzWFDBwF/gkhXzee0TVlIKm6zOetdM/M/ib6XSIA0GhvGSkF47iX?=
 =?iso-8859-1?Q?7szJwUadYjohEbtqQuDOpetZNjPLRrzytLIkeVJe3tgH1uuub4WYNQXyW/?=
 =?iso-8859-1?Q?gPl/nzFQLyk5yto0FSJk/UvXsnxRa29kW+MtuRNg72jpvDgKZZPO4qAKKo?=
 =?iso-8859-1?Q?eTSK+gl+ee32v5eTEnIMtUtSMxpHEk561o3VadjJyPTOcwQOLKYgobUHVd?=
 =?iso-8859-1?Q?9SA9COTzHpdLD2IpN4Qvp4v1MWBAqHWpBBIvyDppIm0WLx29H+lEKSaHgu?=
 =?iso-8859-1?Q?P5UH7bHbCQwIqiPahUQ2PK+ZEyXCdb/wb5MuwvFrBlkdBurHsy4sl4eeAF?=
 =?iso-8859-1?Q?MWGEVR0yqr3RaFZZOqcS2GeL/F5DKPhgLav2LaKJSTE2Txc9YyoQifYLGo?=
 =?iso-8859-1?Q?ULGBny9HpOFKtH4KVebXYAJK86JU4GHueD9EGpferWJWSoQYhdkQJaCF0L?=
 =?iso-8859-1?Q?nifMfc/mxuN3M/7YBqOaVRBfyuNJurWxo3rHhW/wmN/sZ4jJ7/gTyrW3Ix?=
 =?iso-8859-1?Q?9HjJ3t/GVa+qdi0Z/98NrV5RhCmaZ+c7OTxTNwA5m3QT14T98gzjAw/em7?=
 =?iso-8859-1?Q?/IQ67RqYr8aOj8gb6XzPPtILy7ogLFrL7LCfCJmKhEVdCFpWcCh8j7NVVd?=
 =?iso-8859-1?Q?ctwyaZEPb85LdTrS38ph8cnz+GoNQBtgku7AuFdYhz4EDwS/ku/8IzR3eX?=
 =?iso-8859-1?Q?yQKQ1zdcY4dVlHt8UViSgUVAEn1MjAXvxukRLVmFiaOgyMDCBIWZjWv7BX?=
 =?iso-8859-1?Q?uLSSyx1u/x/AzeCgHsMamvdH7cDo4VlSHXmbiH+c9jp5qIIKulTN2O2Gzz?=
 =?iso-8859-1?Q?ZKKICyntRZdJD9FSPrb3TsItts+4HwVANfZxI5c3CDxmDH4shGaGmNyG7z?=
 =?iso-8859-1?Q?SWPXGL+yh6y3gsXgNisilYlwXYu1vxboef/J3+9xhzRXjwAE0S5tyj1LvB?=
 =?iso-8859-1?Q?DDtuIevO8pDpxfPkaNQd60R3UVE6lcP3+XZR8PS4QU3TbSkylQsJVOdtsH?=
 =?iso-8859-1?Q?d2DHmvoltztxh0LKCWaPLJvu1bdrEb5gG+PxhsaSLlsw=3D=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)(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?gZD94UDwIR0+ybymvK9cOSBnivzBqiLEtUHrYAryWeFiUQNcWZ5CbG8cGB?=
 =?iso-8859-1?Q?WgiRGJKvx1ZENprZTbx8icSOZZ+H0ILmxKnawhGugdHAUArP42/sxadQOl?=
 =?iso-8859-1?Q?LMu6aOodWiNo0asE9Qeyr0woq9Upsz8kzZpMCo5ZGvZUc1aJru4X1R7UoW?=
 =?iso-8859-1?Q?ehzbJuP6KWTEY10n770IoYHJ/uYIMRYRXPV4XS9BZx+SQN/Vc31JG7ccOK?=
 =?iso-8859-1?Q?ipSllhOdNFgOs91SH5ywDe/t8ecm02DSdCxR/FFnxJeHnQ5sSHu1DztLvM?=
 =?iso-8859-1?Q?t4MyyHw6ZZ0ojqqEwRpk6zOdUGRSfp8Rj+Z2Rd+Y5gqBQv/x7H32d43OcM?=
 =?iso-8859-1?Q?Hxn4Rqrz8a7guZZ/WeVkv0ojdRJuNMkjPu0FfZb5gq3dIx1XdrH2aAC9Rc?=
 =?iso-8859-1?Q?lapktyBiYjhNqtA6wYWvq+c+/fRMtBlDG2VyCLSh/g+0Je2FPjxrxgRMDU?=
 =?iso-8859-1?Q?91686uy5yafs9Hu12O1Vo8RbfVGv2BHchcQokozlyk9jiDpVl8cy4vU6zE?=
 =?iso-8859-1?Q?s8jEDkjQkBA2l0K5P/TwegOrKUDzwxh5lnlZ5pcVS8g4IwUwSVPgoJyc4G?=
 =?iso-8859-1?Q?B3cNC7HMpxa9+ZfIIFY9ahryaMdmPotN26E9drtI406DCiRnrro9QZN6e+?=
 =?iso-8859-1?Q?mYNxkt2oOgAVNkenj7ibzQLDjNn7d1geg9SodbYJF0orQmn81VuXVSMTSz?=
 =?iso-8859-1?Q?ccLTVj3ZqRMi+pHLeOLJ8H07Dn2/oXwV6A7SzNWl/G3uIIVE9GAzBeliXB?=
 =?iso-8859-1?Q?MZ3gGSo/TiGbJivZep/XJmR5iXL2NLBWOMAGlYGnSJ1wLa0xcjJWYqGmS0?=
 =?iso-8859-1?Q?cwJmMkMKHgS77CdgEKpOea8kUINMigzrXiaipTsGwh8i+XlRVK3T/DXABm?=
 =?iso-8859-1?Q?wQUGYoFUVU1ZBrxTJuhZyVARUzD9D8BTku017gX69kZ2cRop09DjP0SuDb?=
 =?iso-8859-1?Q?502tXnuG5FZxA0Q9tiPdJsYJx2thBE/cGZ2IXrbbk9fHD1Guuei7RgVTfH?=
 =?iso-8859-1?Q?q1obm7T8FcVQEXdpQUF2Ld7g78Eah+HyI09zWgoeAhLIpBTjsujAqo8aVH?=
 =?iso-8859-1?Q?lDGFbhAtshftNGvjNQrTC6BFU9srBhtW+DqaAOlB61raJw57s0+dvx9Hbi?=
 =?iso-8859-1?Q?6c5st3RWdgX2HVNn8eNKF1xrv6Z1Jc3ZEvnDx8daK45PQdJ3zZoz3gKrHr?=
 =?iso-8859-1?Q?wvLTDY9iKSF11+1ACA03bsXlD18G9B8TfN3WES144viRw/jOZI0VPtkoJB?=
 =?iso-8859-1?Q?7TksGX01QcF09D0Zz+9Ier/F23qJLgByttb7nOdgL/GTEZfXg0vQ8lHyp3?=
 =?iso-8859-1?Q?rcz/iJO+il8LxyDufMbfYlg3r5mZsTzuV4W78a4fPLrMNZa900/USkqr88?=
 =?iso-8859-1?Q?qCQAjCDsHSrRbTtF5E1V7IfhaQBjh/jNYMiYPujqx1p+FYNuqnNPyLEDYV?=
 =?iso-8859-1?Q?fNaUh/5Nid1e4FsIHO8osb1qREJBANkX/sD0y+vrZlXu+eQ/Uae1XvjKZ4?=
 =?iso-8859-1?Q?1gsfqeOn1dCn1FaZsLhb89QPzmsrixJq7XH9x4cf/uAANmz7uG1lI65HDs?=
 =?iso-8859-1?Q?OVPRblpXDXo3q+U8HQlG/qe3qcooyPdO5OPHz5eNgEnD1KcY0zaThSfigF?=
 =?iso-8859-1?Q?JkxXc+GukD5ubHWgjGhU5IkwxFPEVyDZ94ss6Ab83VJg/VxJILg8ObOg?=
 =?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: 00afb2a2-3706-48c0-36be-08dd7b39e640
X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Apr 2025 09:51:16.2252
 (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: ypg7E5VFDg85D3v9NetfqsiB3SU+P2vVTQrWtyfqQE74snVUTJnM+mqPYY7A+natRp0935CY2QNrr5sjYKFv7Q==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB6872

From: Mykyta Poturai <Mykyta_Poturai@epam.com>

Add the second version of inject_msi DM op, which allows to specify
the source_id of an MSI interrupt. This is needed for correct MSI
injection on ARM.

It would not be safe to include the source_id in the original inject_msi
in the pad field, because we have no way to know if it is set or not.

Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
---
v1->v2:
* fix warning for ignored source_id
* rework xen_dm_op_inject_msi2 struct
* rework xendevicemodel_inject_msi2 params
---
 tools/include/xendevicemodel.h               | 14 ++++++++++++++
 tools/libs/devicemodel/core.c                | 20 ++++++++++++++++++++
 tools/libs/devicemodel/libxendevicemodel.map |  5 +++++
 xen/arch/arm/dm.c                            | 17 +++++++++++++++++
 xen/arch/x86/hvm/dm.c                        | 18 ++++++++++++++++++
 xen/include/public/hvm/dm_op.h               | 18 ++++++++++++++++++
 6 files changed, 92 insertions(+)

diff --git a/tools/include/xendevicemodel.h b/tools/include/xendevicemodel.=
h
index 227e7fd810..d0847dfdc8 100644
--- a/tools/include/xendevicemodel.h
+++ b/tools/include/xendevicemodel.h
@@ -236,6 +236,20 @@ int xendevicemodel_inject_msi(
     xendevicemodel_handle *dmod, domid_t domid, uint64_t msi_addr,
     uint32_t msi_data);
=20
+/**
+ * This function injects an MSI into a guest.
+ *
+ * @parm dmod a handle to an open devicemodel interface.
+ * @parm domid the domain id to be serviced
+ * @parm msi_addr the MSI address
+ * @parm source_id the PCI SBDF of the source device
+ * @parm msi_data the MSI data
+ * @return 0 on success, -1 on failure.
+*/
+int xendevicemodel_inject_msi2(
+    xendevicemodel_handle *dmod, domid_t domid, uint64_t addr, uint32_t so=
urce_id,
+    uint32_t data);
+
 /**
  * This function enables tracking of changes in the VRAM area.
  *
diff --git a/tools/libs/devicemodel/core.c b/tools/libs/devicemodel/core.c
index 8e619eeb0a..92db92e89b 100644
--- a/tools/libs/devicemodel/core.c
+++ b/tools/libs/devicemodel/core.c
@@ -448,6 +448,26 @@ int xendevicemodel_set_irq_level(
     return xendevicemodel_op(dmod, domid, 1, &op, sizeof(op));
 }
=20
+int xendevicemodel_inject_msi2(
+    xendevicemodel_handle *dmod, domid_t domid, uint64_t addr, uint32_t so=
urce_id,
+    uint32_t data)
+{
+    uint16_t segment =3D source_id >> 16;
+    uint16_t bdf =3D source_id & 0xffff;
+    struct xen_dm_op op =3D {
+        .op =3D XEN_DMOP_inject_msi2,
+        .u.inject_msi2 =3D {
+            .addr =3D addr,
+            .data =3D data,
+            .segment =3D segment,
+            .source_id =3D bdf,
+            .flags =3D XEN_DMOP_MSI_SOURCE_ID_VALID,
+        },
+    };
+
+    return xendevicemodel_op(dmod, domid, 1, &op, sizeof(op));
+}
+
 int xendevicemodel_set_pci_link_route(
     xendevicemodel_handle *dmod, domid_t domid, uint8_t link, uint8_t irq)
 {
diff --git a/tools/libs/devicemodel/libxendevicemodel.map b/tools/libs/devi=
cemodel/libxendevicemodel.map
index f7f9e3d932..aa05768642 100644
--- a/tools/libs/devicemodel/libxendevicemodel.map
+++ b/tools/libs/devicemodel/libxendevicemodel.map
@@ -44,3 +44,8 @@ VERS_1.4 {
 		xendevicemodel_set_irq_level;
 		xendevicemodel_nr_vcpus;
 } VERS_1.3;
+
+VERS_1.5 {
+	global:
+		xendevicemodel_inject_msi2;
+} VERS_1.4;
diff --git a/xen/arch/arm/dm.c b/xen/arch/arm/dm.c
index 773a0a2592..a1340b45a3 100644
--- a/xen/arch/arm/dm.c
+++ b/xen/arch/arm/dm.c
@@ -27,6 +27,7 @@ int dm_op(const struct dmop_args *op_args)
         [XEN_DMOP_set_ioreq_server_state]           =3D sizeof(struct xen_=
dm_op_set_ioreq_server_state),
         [XEN_DMOP_destroy_ioreq_server]             =3D sizeof(struct xen_=
dm_op_destroy_ioreq_server),
         [XEN_DMOP_set_irq_level]                    =3D sizeof(struct xen_=
dm_op_set_irq_level),
+        [XEN_DMOP_inject_msi2]                      =3D sizeof(struct xen_=
dm_op_inject_msi2),
         [XEN_DMOP_nr_vcpus]                         =3D sizeof(struct xen_=
dm_op_nr_vcpus),
     };
=20
@@ -112,6 +113,22 @@ int dm_op(const struct dmop_args *op_args)
         break;
     }
=20
+    case XEN_DMOP_inject_msi2:
+    {
+        const struct xen_dm_op_inject_msi2 *data =3D &op.u.inject_msi2;
+        uint32_t pci_sbdf =3D data->segment << 16 | data->source_id;
+
+        if ( !(data->flags & XEN_DMOP_MSI_SOURCE_ID_VALID) || data->pad ||=
=20
+             data->flags & ~XEN_DMOP_MSI_SOURCE_ID_VALID )
+        {
+            rc =3D -EINVAL;
+            break;
+        }
+
+        rc =3D vgic_its_trigger_msi(d, data->addr, pci_sbdf, data->data);
+        break;
+
+    }
     case XEN_DMOP_nr_vcpus:
     {
         struct xen_dm_op_nr_vcpus *data =3D &op.u.nr_vcpus;
diff --git a/xen/arch/x86/hvm/dm.c b/xen/arch/x86/hvm/dm.c
index 462691f91d..da0a00844b 100644
--- a/xen/arch/x86/hvm/dm.c
+++ b/xen/arch/x86/hvm/dm.c
@@ -344,6 +344,7 @@ int dm_op(const struct dmop_args *op_args)
         [XEN_DMOP_set_mem_type]                     =3D sizeof(struct xen_=
dm_op_set_mem_type),
         [XEN_DMOP_inject_event]                     =3D sizeof(struct xen_=
dm_op_inject_event),
         [XEN_DMOP_inject_msi]                       =3D sizeof(struct xen_=
dm_op_inject_msi),
+        [XEN_DMOP_inject_msi2]                      =3D sizeof(struct xen_=
dm_op_inject_msi2),
         [XEN_DMOP_map_mem_type_to_ioreq_server]     =3D sizeof(struct xen_=
dm_op_map_mem_type_to_ioreq_server),
         [XEN_DMOP_remote_shutdown]                  =3D sizeof(struct xen_=
dm_op_remote_shutdown),
         [XEN_DMOP_relocate_memory]                  =3D sizeof(struct xen_=
dm_op_relocate_memory),
@@ -539,6 +540,23 @@ int dm_op(const struct dmop_args *op_args)
         break;
     }
=20
+    case XEN_DMOP_inject_msi2:
+    {
+        const struct xen_dm_op_inject_msi2 *data =3D &op.u.inject_msi2;
+
+        if ( data->pad || data->flags & ~XEN_DMOP_MSI_SOURCE_ID_VALID )
+        {
+            rc =3D -EINVAL;
+            break;
+        }
+
+        if ( data->flags & XEN_DMOP_MSI_SOURCE_ID_VALID )
+            gprintk(XENLOG_WARNING "XEN_DMOP_inject_msi2: source_id is ign=
ored\n");
+
+        rc =3D hvm_inject_msi(d, data->addr, data->data);
+        break;
+    }
+
     case XEN_DMOP_remote_shutdown:
     {
         const struct xen_dm_op_remote_shutdown *data =3D
diff --git a/xen/include/public/hvm/dm_op.h b/xen/include/public/hvm/dm_op.=
h
index 2bf0fdc1ae..4141af4300 100644
--- a/xen/include/public/hvm/dm_op.h
+++ b/xen/include/public/hvm/dm_op.h
@@ -444,6 +444,23 @@ struct xen_dm_op_nr_vcpus {
 };
 typedef struct xen_dm_op_nr_vcpus xen_dm_op_nr_vcpus_t;
=20
+#define XEN_DMOP_inject_msi2 21
+
+struct xen_dm_op_inject_msi2 {
+      /* IN - MSI data */
+      uint32_t data;
+      /* IN - next two fields form an ID of the device triggering the MSI =
*/
+      uint16_t segment; /* The segment number */
+      uint16_t source_id; /* The source ID that is local to segment (PCI B=
DF) */
+      /* IN - types of source ID */
+      uint32_t flags;
+#define XEN_DMOP_MSI_SOURCE_ID_VALID (1u << 0)
+      uint32_t pad;
+      /* IN - MSI address */
+      uint64_aligned_t addr;
+};
+typedef struct xen_dm_op_inject_msi2 xen_dm_op_inject_msi2_t;
+
 struct xen_dm_op {
     uint32_t op;
     uint32_t pad;
@@ -463,6 +480,7 @@ struct xen_dm_op {
         xen_dm_op_set_mem_type_t set_mem_type;
         xen_dm_op_inject_event_t inject_event;
         xen_dm_op_inject_msi_t inject_msi;
+        xen_dm_op_inject_msi2_t inject_msi2;
         xen_dm_op_map_mem_type_to_ioreq_server_t map_mem_type_to_ioreq_ser=
ver;
         xen_dm_op_remote_shutdown_t remote_shutdown;
         xen_dm_op_relocate_memory_t relocate_memory;
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Mon Apr 14 10:04:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 10:04:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.949524.1346031 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4GgI-0001vJ-UE; Mon, 14 Apr 2025 10:04:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 949524.1346031; Mon, 14 Apr 2025 10:04:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4GgI-0001vC-QW; Mon, 14 Apr 2025 10:04:46 +0000
Received: by outflank-mailman (input) for mailman id 949524;
 Mon, 14 Apr 2025 10:04: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=ezPI=XA=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u4GgH-0001v6-UA
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 10:04:45 +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 e3c4c55b-1917-11f0-9eae-5ba50f476ded;
 Mon, 14 Apr 2025 12:04:44 +0200 (CEST)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-43d2d952eb1so33012135e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 14 Apr 2025 03:04:44 -0700 (PDT)
Received: from ?IPV6:2003:ca:b71f:2f7e:5948:62cb:7cd1:ada3?
 (p200300cab71f2f7e594862cb7cd1ada3.dip0.t-ipconnect.de.
 [2003:ca:b71f:2f7e:5948:62cb:7cd1:ada3])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43f2338d802sm179956965e9.1.2025.04.14.03.04.43
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 14 Apr 2025 03:04:43 -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: e3c4c55b-1917-11f0-9eae-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744625084; x=1745229884; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=lZByXNsJeVL76OgNfArCw/XNKZ9DCbfDK2JLJrf2OGk=;
        b=UaOlZp4LtnL2pDKsHkYU2QSq4Gai3mzQdizeeRrzuRDtQhLjqjlDpQp73krOJ8uQzY
         5CSmCUC3p/cROLKdMNMw4zWTHCrndbGNthzQZNd8ylWIxKFgGElQUSjS4NZdWxD39PGZ
         DmcDqH7lHjXEPrffIbpXxQ/3JQWv/znyUco6cHPtnYYR/ILE6YLfK7LwwpY7EUaj/RpN
         pwelYwcrD4S7f7hlGkHr9kZofNLfabJJplJZgXIJa94F4xHW+1H8BbU3uxpAQRcfY1Md
         gUsrlPBgEKJ98ZEi/QlL+BW7bTjwapfyevFt1STU1SB1Ff6raTpj3SgqA/fq2zi5VErZ
         vQFw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744625084; x=1745229884;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=lZByXNsJeVL76OgNfArCw/XNKZ9DCbfDK2JLJrf2OGk=;
        b=ko3+WP84NNrXw7b0cZxcSB+jJLjTyKS3zBnezg61jMWkoICOQHTWW+gl4lEy4zV110
         YQRbKKVT6wpJU/ZAmCUrYtaKmq4v/3KHQR0MQVKJM+0ZmDtKEYh+fze0BFoVS39AMDtS
         Sf3Bz8LDuKS+3zCUxsC5jvCaUpzydOGQ6mjxR2CzXvi3VdC5k02LsM1wLLQwBHa8u1Hx
         EcYjYoWJNb2bmQgKsIYnPQ0Zaf+JBvScon+tA4GXZaV4pV56sjG5NX+dVDIyG4Fk5Ol9
         EPmIXRpNRIrwX4VWgHBZixLpjKk7qPxHG0uzRFnjJsfm9ennr7x7k0wFSEfSso74Ub12
         S8cA==
X-Forwarded-Encrypted: i=1; AJvYcCXBA3hjvbQJUgrwtXHqf0JqzT/jicWAT/HYTRjA7hOmlEYzOWBjvDy6S11EtcCixBbI2wwBHJ5EH1s=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwFHfq4ufxhkR6arJCdBLsVRUhbPU/p56wgMh0nBYyWxuKXE5TH
	IGVekHrsdzBOhzFBVIa4Bhc1MnHrAl6W5LG5rvkt1/HxwBAANfWu9mukesXzAA==
X-Gm-Gg: ASbGnctJ2Oxlm5hHMY/smkFr2EBS10xlZgN5jyrVBEf1kFswsVTkg89j2iWzc3n25yq
	cw99FoII/QTen1P6wIMYB5BCiIQJcnl0clIWUPi5FYIaXIgo/aYWlh+/xxi89fR+KyHlJSL10K1
	f9l2rK7CVyxaTiy3YF450euAmzYWTP6lJSSd3yK3S/pJMdHGBzjjldTXdys/EWJG38hSEz1lIw3
	cXa2IXi41NAlQkQhUnjAqdReXU2ZtnTmk5bYI8B0vDG9KzFHNXN6Lgfm4yKshuJqMrveCWvkAjp
	lTR5XwAjrwgTEmRlYmVulq6I/IDUvBSAPPPQjkPXnaVrqRxX5FAfObVLmgKYOhISG3bTAWXrZow
	BRGBMuezg+xbv+IVzWBLojSQswgkX7oq5fNCLGHkGBowPyT0MwXBBRZRro/mtSQF2mpn7mAnje5
	7HAXVcCb5ifA==
X-Google-Smtp-Source: AGHT+IHd8upMeByDfn/olWGXLzs55OeXoe6mWiwDybNxH3bRqfZ16tPeRdHpqd6fy5hAjLtA0dTs7g==
X-Received: by 2002:a05:600c:8705:b0:43c:ee62:33f5 with SMTP id 5b1f17b1804b1-43f3a9b0201mr117257715e9.27.1744625083851;
        Mon, 14 Apr 2025 03:04:43 -0700 (PDT)
Message-ID: <a7008eee-04d2-4e61-b66a-ff659e3b99db@suse.com>
Date: Mon, 14 Apr 2025 12:04:41 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 09/14] xen/riscv: aplic_init() implementation
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Romain Caritey <Romain.Caritey@microchip.com>, xen-devel@lists.xenproject.org
References: <cover.1744126720.git.oleksii.kurochko@gmail.com>
 <1d023045be49ae93d41d552f9c9a79972fa4e84b.1744126720.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: <1d023045be49ae93d41d552f9c9a79972fa4e84b.1744126720.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.04.2025 17:57, Oleksii Kurochko wrote:
> --- a/xen/arch/riscv/aplic.c
> +++ b/xen/arch/riscv/aplic.c
> @@ -9,19 +9,112 @@
>   * Copyright (c) 2024-2025 Vates
>   */
>  
> +#include <xen/device_tree.h>
>  #include <xen/errno.h>
>  #include <xen/init.h>
>  #include <xen/irq.h>
> +#include <xen/mm.h>
>  #include <xen/sections.h>
>  #include <xen/types.h>
> +#include <xen/vmap.h>
>  
> +#include <asm/aplic.h>
>  #include <asm/device.h>
> +#include <asm/imsic.h>
>  #include <asm/intc.h>
> +#include <asm/riscv_encoding.h>
> +
> +#define APLIC_DEFAULT_PRIORITY  1
> +
> +static struct aplic_priv aplic;
>  
>  static struct intc_info __ro_after_init aplic_info = {
>      .hw_version = INTC_APLIC,
>  };
>  
> +static void __init aplic_init_hw_interrupts(void)
> +{
> +    int i;
> +
> +    /* Disable all interrupts */
> +    for ( i = 0; i <= aplic_info.nr_irqs; i += 32 )
> +        aplic.regs->clrie[i] = -1U;
> +
> +    /* Set interrupt type and default priority for all interrupts */
> +    for ( i = 1; i <= aplic_info.nr_irqs; i++ )
> +    {
> +        aplic.regs->sourcecfg[i - 1] = 0;
> +        aplic.regs->target[i - 1] = APLIC_DEFAULT_PRIORITY;

A field named "target" is written with a priority value?

> +    }
> +
> +    /* Clear APLIC domaincfg */
> +    aplic.regs->domaincfg = APLIC_DOMAINCFG_IE | APLIC_DOMAINCFG_DM;

The statement doesn't like like there was any "clearing" here.

> +}
> +
> +static int __init aplic_init(void)
> +{
> +    int rc;
> +    dt_phandle imsic_phandle;
> +    uint32_t irq_range[2];
> +    const __be32 *prop;
> +    uint64_t size, paddr;
> +    struct dt_device_node *imsic_node;
> +    const struct dt_device_node *node = aplic_info.node;
> +
> +    /* check for associated imsic node */

Nit: Comment style (also elsewhere).

> +    rc = dt_property_read_u32(node, "msi-parent", &imsic_phandle);
> +    if ( !rc )
> +        panic("%s: IDC mode not supported\n", node->full_name);
> +
> +    imsic_node = dt_find_node_by_phandle(imsic_phandle);
> +    if ( !imsic_node )
> +        panic("%s: unable to find IMSIC node\n", node->full_name);
> +
> +    /* check imsic mode */
> +    rc = dt_property_read_u32_array(imsic_node, "interrupts-extended",
> +                                    irq_range, ARRAY_SIZE(irq_range));
> +    if ( rc && (rc != -EOVERFLOW) )
> +        panic("%s: unable to find interrupt-extended in %s node\n",
> +               node->full_name, imsic_node->full_name);

Why exactly is EOVERFLOW tolerable here?

> +    if ( irq_range[1] == IRQ_M_EXT )
> +        /* machine mode imsic node, ignore this aplic node */
> +        return 0;
> +
> +    rc = imsic_init(imsic_node);
> +    if ( rc )
> +        panic("%s: Failded to initialize IMSIC\n", node->full_name);
> +
> +    /* Find out number of interrupt sources */
> +    rc = dt_property_read_u32(node, "riscv,num-sources", &aplic_info.nr_irqs);
> +    if ( !rc )
> +        panic("%s: failed to get number of interrupt sources\n",
> +              node->full_name);
> +
> +    prop = dt_get_property(node, "reg", NULL);
> +    dt_get_range(&prop, node, &paddr, &size);
> +    if ( !paddr )
> +        panic("%s: first MMIO resource not found\n", node->full_name);
> +
> +    aplic.paddr_start = paddr;
> +    aplic.paddr_end = paddr + size;
> +    aplic.size = size;

Why do all three need recording? Isn't a (start,size) tuple sufficient
(and unambiguous)?

> +    aplic.regs = ioremap(paddr, size);
> +    if ( !aplic.regs )
> +        panic("%s: unable to map\n", node->full_name);
> +
> +    /* Setup initial state APLIC interrupts */
> +    aplic_init_hw_interrupts();
> +
> +    return 0;
> +}
> +
> +static const struct intc_hw_operations __ro_after_init aplic_ops = {

const or __ro_after_init?

> --- /dev/null
> +++ b/xen/arch/riscv/include/asm/aplic.h
> @@ -0,0 +1,77 @@
> +/* SPDX-License-Identifier: MIT */
> +
> +/*
> + * xen/arch/riscv/aplic.h
> + *
> + * RISC-V Advanced Platform-Level Interrupt Controller support
> + *
> + * Copyright (c) 2023 Microchip.
> + */
> +
> +#ifndef ASM__RISCV__APLIC_H
> +#define ASM__RISCV__APLIC_H
> +
> +#include <xen/types.h>
> +
> +#include <asm/imsic.h>
> +
> +#define APLIC_DOMAINCFG_IE      BIT(8, UL)
> +#define APLIC_DOMAINCFG_DM      BIT(2, UL)
> +
> +struct aplic_regs {
> +    uint32_t domaincfg;
> +    uint32_t sourcecfg[1023];
> +    uint8_t _reserved1[0xBC0];
> +
> +    uint32_t mmsiaddrcfg;
> +    uint32_t mmsiaddrcfgh;
> +    uint32_t smsiaddrcfg;
> +    uint32_t smsiaddrcfgh;
> +    uint8_t _reserved2[0x30];
> +
> +    uint32_t setip[32];
> +    uint8_t _reserved3[92];
> +
> +    uint32_t setipnum;
> +    uint8_t _reserved4[0x20];
> +
> +    uint32_t in_clrip[32];
> +    uint8_t _reserved5[92];
> +
> +    uint32_t clripnum;
> +    uint8_t _reserved6[32];
> +
> +    uint32_t setie[32];
> +    uint8_t _reserved7[92];
> +
> +    uint32_t setienum;
> +    uint8_t _reserved8[32];
> +
> +    uint32_t clrie[32];
> +    uint8_t _reserved9[92];
> +
> +    uint32_t clrienum;
> +    uint8_t _reserved10[32];
> +
> +    uint32_t setipnum_le;
> +    uint32_t setipnum_be;
> +    uint8_t _reserved11[4088];
> +
> +    uint32_t genmsi;
> +    uint32_t target[1023];
> +};
> +
> +struct aplic_priv {
> +    /* base physical address and size */
> +    paddr_t paddr_start;
> +    paddr_t paddr_end;
> +    size_t  size;
> +
> +    /* registers */
> +    volatile struct aplic_regs *regs;
> +
> +    /* imsic configuration */
> +    const struct imsic_config *imsic_cfg;
> +};
> +
> +#endif /* ASM__RISCV__APLIC_H */

Does all of this really need to live in a non-private header?

> --- a/xen/arch/riscv/include/asm/irq.h
> +++ b/xen/arch/riscv/include/asm/irq.h
> @@ -27,7 +27,6 @@
>  #define IRQ_TYPE_INVALID        DT_IRQ_TYPE_INVALID
>  
>  /* TODO */
> -#define nr_irqs 0U

How come this is simply no longer needed, i.e. without any replacement?
Hmm, looks like the only use in common code has gone away. Yet then this
still doesn't really look to belong here (especially if not mentioned in
the description).

Jan


From xen-devel-bounces@lists.xenproject.org Mon Apr 14 10:17:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 10:17:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.949541.1346041 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4GsW-0004sh-2y; Mon, 14 Apr 2025 10:17:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 949541.1346041; Mon, 14 Apr 2025 10:17: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 1u4GsW-0004sa-0I; Mon, 14 Apr 2025 10:17:24 +0000
Received: by outflank-mailman (input) for mailman id 949541;
 Mon, 14 Apr 2025 10:17: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=m6tK=XA=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1u4GsU-0004sU-BQ
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 10:17:22 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on2062e.outbound.protection.outlook.com
 [2a01:111:f403:2412::62e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a55efce1-1919-11f0-9eae-5ba50f476ded;
 Mon, 14 Apr 2025 12:17:20 +0200 (CEST)
Received: from BN9PR12MB5273.namprd12.prod.outlook.com (2603:10b6:408:11e::22)
 by SA0PR12MB4478.namprd12.prod.outlook.com (2603:10b6:806:9c::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.34; Mon, 14 Apr
 2025 10:17:16 +0000
Received: from BN9PR12MB5273.namprd12.prod.outlook.com
 ([fe80::cf66:58ab:47be:4b13]) by BN9PR12MB5273.namprd12.prod.outlook.com
 ([fe80::cf66:58ab:47be:4b13%5]) with mapi id 15.20.8632.030; Mon, 14 Apr 2025
 10:17: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: a55efce1-1919-11f0-9eae-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=mIxeIuJYhS+2D/PH6273bTvQpqhfrY8BMS9I8AoduZ5rcEJcuswCMzKFphTAm3WCBiW1yEHnqsN501FwaHWGf/HzAjZpkQds9A56uwy0kWGESoyCUZe0X2dOSTYFpKZ2mn1F5uE18SrwK0XwWK32v2lPWSc393XM90YvQpCFTwjqp3EJgJ4E8Gsww6SzGHzwvO1t1NPoe4eVtlEyExFO5PiPnSWznONNkgQVckP/+64Vsq6nxHJ2QrS1lZjMP7z7inuKQCmhWLyc6nihSc3a9U7D+Er8wwpSBDOK4MFRm/mZWh2AUrQZLOT5m56xb7OD14vS4eYP4YoHDsRBz/didA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=5euiR6XBoBo/bwRaO8bLXWl9so0RPt7EqR1RZMS50ls=;
 b=BqQeU9R28tw07BKqLjUol0WrZqylRYpEOV+0Gqb6GYtzMaV2GZOcfiPxwqlvIus7JBhIkBTBeDNrLgVI2xqCIrrqNbYncE/ABvLBHSFzf4rz2RH1aHeYi1M5w9PRV2bEWaIZPUV3gPd7ySVcUubmP5F7xSfTrELXy3lszOyKtqe2wNiuHh+Rs0yJ/DmcECDFnDzcELjrl2/Mc1zsmCAQtPvODYl4k2WdcIBMGjY0Thz2RWkktNnb6KwHy1Mcfkk3SWJSB4Y8PieG5PWHY68sOkK6yXtskZPIwnrfKCjZVqlLIM67n7yRcu+XdAz+6BxiaHltjyTxvqmeZhvsc4GIFw==
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=5euiR6XBoBo/bwRaO8bLXWl9so0RPt7EqR1RZMS50ls=;
 b=UDuK0dvFxmxfmAUnYWd0yMRktl5AuqfxYNpswjMP7hzkgkD2ZXPgu+gdAAoHo3eIqDzmRAaELUVZNFmqPEv9ZgcNPhOmwSUtEUaTNGylLb0srncCraZDznWxdIvEOEmw6nQzaFbhy0PmxcO3goIogA1Bl4BP0voRZG/Ol4p728k=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <d323425d-b266-49d6-95d4-0e1acb5e489e@amd.com>
Date: Mon, 14 Apr 2025 12:17:11 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 1/7] arm/mpu: Introduce MPU memory region map structure
To: Luca Fancellu <luca.fancellu@arm.com>, 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>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Wei Chen <wei.chen@arm.com>
References: <20250411145655.140667-1-luca.fancellu@arm.com>
 <20250411145655.140667-2-luca.fancellu@arm.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <20250411145655.140667-2-luca.fancellu@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR0P281CA0123.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:97::9) To BN9PR12MB5273.namprd12.prod.outlook.com
 (2603:10b6:408:11e::22)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN9PR12MB5273:EE_|SA0PR12MB4478:EE_
X-MS-Office365-Filtering-Correlation-Id: c77b526b-a123-4c43-a421-08dd7b3d86cf
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?UlhJdXpiMWhLd2Y3TngyeWVKNjlaQTRRREZ5aHJ6b2QzVHRvN1JxOWtRMjlo?=
 =?utf-8?B?TW81d2RhWlF1dXNtOGFoWFA5eXVCand6a2pxMmc1T3Q4UmV4M2pJMUg3WUlL?=
 =?utf-8?B?TlJWMDJvT1plUVYydllOSGZkajJpRGhBK3d5TnV4MG5venYxamlxL1R0T0Ur?=
 =?utf-8?B?ZkRzSkVQdzErdlY4bUtzZXlzRVVQWVBMSEVCMkhONjA4K25BUytMY1RFQm9W?=
 =?utf-8?B?QzBOa3ZYM2FtTTMvVCtIVVd2OTFFM2kySWZ0TzFxOFlTdDJSYTlSRVE5alVa?=
 =?utf-8?B?b01UOForK2tJL0F5YkhCVDliZU9ieTNTS2M2eTNWU3dtMlRWSlhTRnMrSUpJ?=
 =?utf-8?B?Q05SeVR4WTd2SWYxUDdzU0RLMmlMdUFTRCtza3kvZVBrVFhlRnpNcnprdTMw?=
 =?utf-8?B?SnNiOFQ4MDdISXo2KzQweDVaMlRHbzVEWCsyT0VLeTU4MU5tR3dtMUFXUWxV?=
 =?utf-8?B?OHVoZlpjVHFoVDk3bk9ybWx1QktpYW5uZTcyM2c1UWpmTTNkNlVraGtrdTF2?=
 =?utf-8?B?YTZPT2RHL1FWMDE1NHlod2hCcE5UVUNiUFNuMjRtRWZlQkV3Q2xRb1JxT2hZ?=
 =?utf-8?B?Tzh4SUFnMjZOZmtFRjZNNVgzOHZ3ejlLT01FZS9NY0FFWFNKQzE5d0tWMHgv?=
 =?utf-8?B?Z1h1ZGhIaFhHNUZnSzNCcEVKMmN1S1dqeUZhaFVzcjhZUEQ2NktuWlIvWjlB?=
 =?utf-8?B?K3Z5ZzZjSm9Wc3FvNE1wa2dCeExYV3ArZXUyNE84Q2VCcVVoL2JJSjg0OEJS?=
 =?utf-8?B?YVNOcXRUdjFBTGU2QkZrZE84cFdiQ2Z4SDN4anlnMUJFbTF1NjErVFZXQ1RR?=
 =?utf-8?B?K3B4clNnZUduSlpTTERYU0dHcUs4SzZaZldaZmlTZjJhMFk2cjJZSVFmelky?=
 =?utf-8?B?bVNmUUFBYUFIRUZPWVhSU0hhK2FWS3E0RkpwVFFGU2RTTVMrcDZQSjdwR1NV?=
 =?utf-8?B?V0ozelhERDBabkN4TXdCdG4zNDkvKys3TjFyaTY3V2Fka29Ca1NZRjBZY1VD?=
 =?utf-8?B?S3Bod3d3V0dBME5aUlBRcEg4OEFLVXFzRE1LaGw1VU94eGcvZklkWjZkOTZt?=
 =?utf-8?B?VjZDOW1TVi8wMDRKbkdvVGpidHE4d0NyZ0pDMzBwbzdoUDFRd2JOQ0dMdnJ5?=
 =?utf-8?B?MVYweXdZb2o0Q0dsQldhU1JTMHp3c3pwUkpKRnh5by85OTFVN2pHaDMvNU4r?=
 =?utf-8?B?TDNMU09xdmxVYWdEdlN4U1NsbU5ZS2RGZmV1VDhCWk1ydGtvMnJ4MStLY1hY?=
 =?utf-8?B?Nmc5Z2hJbVRYZzVFZWMvRHRYamM2YnlSU3hnMkRYcW9pcTJPOVRBNDRObk5S?=
 =?utf-8?B?TURyTTZBdnJodjhKams3aWFrbEVmcFg2a3N0aXBBbHBydGhtTXJzc3JybmNq?=
 =?utf-8?B?VlRaaGk2UXppZGJlenQzbzJXQlRWSG9NZ2pOY2RuSy9LVitGTm9HUUNpazZ2?=
 =?utf-8?B?aU93OTU0ZE1kMXQzeXU0dXp3em80MlltMFErdDh0SzJvUGFGUGVSQWM0b3pZ?=
 =?utf-8?B?Qm5RNHlqTmdYYzU3ZWRwV2xQZGZNOVdBMWZ2WEJBcUFXeERxcnJoNklJZFhn?=
 =?utf-8?B?T05ZRjlNOU1RdTc2OVFPd0IwaDhDemZQL3RmRklGODVWUHlNeGU4WmZUaVM0?=
 =?utf-8?B?eExpenc5TVlLZUJIYURPb202VG1TMFBxanlpN2N5R25DQkR5eE0wWkdiMkJo?=
 =?utf-8?B?TWk3cm1nd0FCZUVVU1pDZjVHZEQ2aG4rVEM4RDV1S0JxeGRJWFZvUWtjN1p0?=
 =?utf-8?B?UzdqbktndzZDeGNMN2N2UTVNNWpudFhaa2VSUDd2VFo1V2hKcW9BNkwwQS8r?=
 =?utf-8?B?TjlkSU5yS0t4SU5VWXBTbFVRbDhncEdjSHlqdHVScC9FQkJ3aUVKK3dkT0hl?=
 =?utf-8?B?ZkwrQnhoMlFralNicHRXbnNvN2Q1dFJMRUE1aUNwWTZxb3VuYTl0SktMUjB1?=
 =?utf-8?Q?3szvPBYOnwo=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN9PR12MB5273.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?Zzh2cnNiQUdzVWdlbmFFcUVWKzVnQWdoaDFXTWlFdnpDNmlDYzRhdjQ3eFI4?=
 =?utf-8?B?NXA5ampHYm1PdTJLWUpCeklKNHdoeW1maEl5RGJUR1JjSFlGRlh3WC9KRFE4?=
 =?utf-8?B?bWtaeTRzWit2QldnK2x2b3BjRFp4MFhscFFGcEorclR6aExnREU4WGx2MnJw?=
 =?utf-8?B?d2txSFJCLzYwQVRuQkRUaGt1VnNDNVQ5ZnIzUkxLK2lPTloxOFVScDc5RklE?=
 =?utf-8?B?dzlRMkNQbnU5dndrZzFXQXozempRZzNtMkw2UHpkNk1ZVHpHQTVHZG9oRDcy?=
 =?utf-8?B?bFRKd3dWNHRCNkZDOS9WcWxLdkZDdUJzeW55ZWhyTk91Z1FXWTN4aFh2UWRZ?=
 =?utf-8?B?WnFLTnc2M1IyRUZCNDM5NlY1RVhSTS84dmpzRVhaY3l0WjQ4TVc0a0kyQTM0?=
 =?utf-8?B?RHoxYzRFQ24yQ2FsQXNCUUlNQjU2MEswUytRSnEwTWxaNlVnZDVCYUg0R0pP?=
 =?utf-8?B?STA1TFF0VWdWc1B4bmwzMnArTEk3ZGNURDE0a1hoQXRHYS8rSDRFUkU4WW5q?=
 =?utf-8?B?d1VDLzVXNzlQRHZJQU56ZjhKcVJ2aHhWdUJNNlQvRDg2Z25RKzlVckFFUFV6?=
 =?utf-8?B?aWRVN0pnNlo0NlQvZXE5U3VOSjBzY0xlYXJuYmV4ODcwblMzSkJDZ0xIV0Zl?=
 =?utf-8?B?VFZQdllpM0ptYkp1dDRoSTJWalo4a3V4eUorVUQzL0kzdlNUcWNZL3VaaDYr?=
 =?utf-8?B?WmM2dGV4cEJFclpzWHdUZzJrZmdScCtJNStwU3pTUjBnTTBqWDl1Q25FVjZK?=
 =?utf-8?B?ZzBnM2N1d3c5ZWdxVG9zR3RCeGlyelFwU1dwN0lGanlMM2FXWkRjb2lDWW9l?=
 =?utf-8?B?N1gzMzhHMGlzNlJ5VWg2d2VFM3plWklpNlBKTytsUDMraFRLaExkOWZiKzNm?=
 =?utf-8?B?S1hrZWpaakxmbHRSWEQ5cEFkZ3JuVlgrRmFobmNxMVc2c0dBaCthRFZyNCtJ?=
 =?utf-8?B?RVcwS2RiSXRmNTQ2WkJJbGk0OFpPb0xjMW1NWW9CKzBJR2RhOEJFRDcvTlZG?=
 =?utf-8?B?RXdJNzdFSXo2S1R2d0h1OWV5Mk5laWZ5bHRiaUlaQy9kTDR5d0FPdS9yQkJP?=
 =?utf-8?B?S0l4RUJtNmtlTkxCRGlJU3JIcnRiU01YUE5nRnlnbURWR3lDTlRQRlBGNnli?=
 =?utf-8?B?VDRtYm45RE9WZkhoSWNSV3lHZURFYUd5VTFkeWliSEVvRzdDbkhzTHdxSTRN?=
 =?utf-8?B?RGlPV2V1TjBuYy9kM25tc2s0QmRJUktBUmhoVVc3N0tQdTgwVzJEM2tHV3dU?=
 =?utf-8?B?QUMyZHRqY0wvZFFyalRSenNvYkZ4MU41Tm5wNzRoVGY4N2pTcWg1aHROT3FU?=
 =?utf-8?B?T0dhbjB4d2tiVjBMZXpDM3ZVeG4zdnlXS0FSN2orS2dzMnhvaGZ3ODVyeHF1?=
 =?utf-8?B?SkViY2lML0VhWmQzRk42MXlpaWhNdHdlTGdkSWJ1dVhnMWE3UXV0SktOWE1K?=
 =?utf-8?B?OXRpQklGbXBTVE5ZSkZRd3l4ZkNuekVsOEtpK1pLemZnQTYxVjVrLzRwR1Vk?=
 =?utf-8?B?NmQyMnQxMVU1anN4ZVRHcS9JNEJnOEJ3U2VZWlZiMzlxelZUS1R6QlJqK3FH?=
 =?utf-8?B?aDBzaHViNW5CeEpFUDNIS2VxSVRZSUxTSHRyS1loU3gyTHNNR1UwdFdjNGI3?=
 =?utf-8?B?dTdOTW00ZFhrbmZLYU8vZk8wd1A3RkZBRXkzTXU4UFV5cWtOUFBSb3RSdUww?=
 =?utf-8?B?VHczOG9rM05kNjBBSXE0VmlzNHZVWmcxaUo4aXFlQ0dqYkdtMVRBdVdKL2h1?=
 =?utf-8?B?Z0F3SmVHcFJ3dWFTMzlKNFFjYnpGck5XMTZmWVhqc3RoZ3d6eEozNUZWM1ZF?=
 =?utf-8?B?YXE5M3JpSlhRUW1nUVNUSUpqbDBFRW1acWM4MURrNks2L05NcWtUaG9OWGVu?=
 =?utf-8?B?OXUxWXd1U2R4OGdPVkZycHkwT3lzWC9RN283Qzh6bXdObGJQMUdwZWR6TVRV?=
 =?utf-8?B?TCtBSnF4QW5nMTBNSmVaTk45bFdNMGJRUU1FaVJULy93SHBUUFZFMkJqWGNF?=
 =?utf-8?B?by9aTVBiUjFMenVnS044M1Q5akdBOW1wNjJVS3F2aEZTOUJIazUwd0U3QnJ6?=
 =?utf-8?B?b1k0ampzRmRJZVgxNGplRlpBQUNsOFpIc2lHL3RKT0VOZWNQQlpXOEtvQVNW?=
 =?utf-8?Q?aOkQM/fBXCt8ke+omQW2s7LrS?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c77b526b-a123-4c43-a421-08dd7b3d86cf
X-MS-Exchange-CrossTenant-AuthSource: BN9PR12MB5273.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Apr 2025 10:17:14.3296
 (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: RiWkSxOJJT6CGtJifxKCAaZulA5UlqRkaLvPKwsluKD1fdg1MDRs/jDNRbIxXjev
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR12MB4478



On 11/04/2025 16:56, Luca Fancellu wrote:
> From: Penny Zheng <Penny.Zheng@arm.com>
> 
> Introduce pr_t typedef which is a structure having the prbar
> and prlar members, each being structured as the registers of
> the aarch64 armv8-r architecture.
> 
> Introduce the array 'xen_mpumap' that will store a view of
> the content of the MPU regions.
> 
> Introduce MAX_MPU_REGIONS macro that uses the value of
> NUM_MPU_REGIONS_MASK just for clarity, because using the
> latter as number of elements of the xen_mpumap array might
> be misleading.
What should be the size of this array? I thought NUM_MPU_REGIONS indicates how
many regions there can be (i.e. 256) and this should be the size. Yet you use
MASK for size which is odd.

> 
> 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>
> ---
>  xen/arch/arm/include/asm/arm64/mpu.h | 44 ++++++++++++++++++++++++++++
>  xen/arch/arm/include/asm/mpu.h       |  5 ++++
>  xen/arch/arm/mpu/mm.c                |  4 +++
>  3 files changed, 53 insertions(+)
>  create mode 100644 xen/arch/arm/include/asm/arm64/mpu.h
> 
> 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 000000000000..4d2bd7d7877f
> --- /dev/null
> +++ b/xen/arch/arm/include/asm/arm64/mpu.h
> @@ -0,0 +1,44 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +/*
> + * mpu.h: Arm Memory Protection Unit definitions for aarch64.
NIT: Do we really see the benefit in having such generic comments? What if you
add a prototype of some function here. Will it fit into a definition scope?

> + */
> +
> +#ifndef __ARM_ARM64_MPU_H__
> +#define __ARM_ARM64_MPU_H__
> +
> +#ifndef __ASSEMBLY__
> +
> +/* Protection Region Base Address Register */
> +typedef union {
> +    struct __packed {
> +        unsigned long xn:2;       /* Execute-Never */
> +        unsigned long ap:2;       /* Acess Permission */
s/Acess/Access/

> +        unsigned long sh:2;       /* Sharebility */
s/Sharebility/Shareability/

> +        unsigned long base:46;    /* Base Address */
> +        unsigned long pad:12;
If you describe the register 1:1, why "pad" and not "res" or "res0"?

> +    } reg;
> +    uint64_t bits;
> +} prbar_t;
> +
> +/* Protection Region Limit Address Register */
> +typedef union {
> +    struct __packed {
> +        unsigned long en:1;     /* Region enable */
> +        unsigned long ai:3;     /* Memory Attribute Index */
> +        unsigned long ns:1;     /* Not-Secure */
> +        unsigned long res:1;    /* Reserved 0 by hardware */
res0 /* RES0 */

> +        unsigned long limit:46; /* Limit Address */
> +        unsigned long pad:12;
res1 /* RES0 */

> +    } reg;
> +    uint64_t bits;
> +} prlar_t;
> +
> +/* MPU Protection Region */
> +typedef struct {
> +    prbar_t prbar;
> +    prlar_t prlar;
> +} pr_t;
> +
> +#endif /* __ASSEMBLY__ */
> +
> +#endif /* __ARM_ARM64_MPU_H__ */
> \ No newline at end of file
Please add a new line at the end

Also, EMACS comment is missing.

> diff --git a/xen/arch/arm/include/asm/mpu.h b/xen/arch/arm/include/asm/mpu.h
> index d4ec4248b62b..e148c705b82c 100644
> --- a/xen/arch/arm/include/asm/mpu.h
> +++ b/xen/arch/arm/include/asm/mpu.h
> @@ -6,6 +6,10 @@
>  #ifndef __ARM_MPU_H__
>  #define __ARM_MPU_H__
>  
> +#if defined(CONFIG_ARM_64)
> +# include <asm/arm64/mpu.h>
> +#endif
> +
>  #define MPU_REGION_SHIFT  6
>  #define MPU_REGION_ALIGN  (_AC(1, UL) << MPU_REGION_SHIFT)
>  #define MPU_REGION_MASK   (~(MPU_REGION_ALIGN - 1))
> @@ -13,6 +17,7 @@
>  #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)
> +#define MAX_MPU_REGIONS         NUM_MPU_REGIONS_MASK
>  
>  #endif /* __ARM_MPU_H__ */
>  
> diff --git a/xen/arch/arm/mpu/mm.c b/xen/arch/arm/mpu/mm.c
> index 07c8959f4ee9..f83ce04fef8a 100644
> --- a/xen/arch/arm/mpu/mm.c
> +++ b/xen/arch/arm/mpu/mm.c
> @@ -7,9 +7,13 @@
>  #include <xen/mm.h>
>  #include <xen/sizes.h>
>  #include <xen/types.h>
> +#include <asm/mpu.h>
>  
>  struct page_info *frame_table;
>  
> +/* EL2 Xen MPU memory region mapping table. */
> +pr_t xen_mpumap[MAX_MPU_REGIONS];
> +
>  static void __init __maybe_unused build_assertions(void)
>  {
>      /*

~Michal



From xen-devel-bounces@lists.xenproject.org Mon Apr 14 10:18:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 10:18:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.949553.1346055 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4Gtv-0005QZ-Lu; Mon, 14 Apr 2025 10:18:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 949553.1346055; Mon, 14 Apr 2025 10:18: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 1u4Gtv-0005PY-Gy; Mon, 14 Apr 2025 10:18:51 +0000
Received: by outflank-mailman (input) for mailman id 949553;
 Mon, 14 Apr 2025 10:18: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=KxE1=XA=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u4Gtu-0005Nh-OI
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 10:18: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 dba1efe6-1919-11f0-9eae-5ba50f476ded;
 Mon, 14 Apr 2025 12:18:50 +0200 (CEST)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-43690d4605dso31780135e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 14 Apr 2025 03:18:49 -0700 (PDT)
Received: from localhost.localdomain (host-92-26-98-202.as13285.net.
 [92.26.98.202]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43f233a2f08sm171340495e9.12.2025.04.14.03.18.48
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 14 Apr 2025 03:18: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: dba1efe6-1919-11f0-9eae-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744625929; x=1745230729; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=O2OaDotK41umOfviUF7yzwa9T5+3+M0L5HXJtNxyImc=;
        b=l3SWtHuRwR4uX7z3n9QP6/jG4TOBYv1Jzf/dZGl06A2GELx+R0KZfwFnLyVDamVT4x
         CaF4SCFuGa39VLkwn6xN3ZbWwf0Wpt9nRXuBZJPr1Tj4RPwS1NzyShipiqIBuBY5nre6
         AolIuFm9EubA4OcZ3H5hRdLKDvT8TahYZK3iU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744625929; x=1745230729;
        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=O2OaDotK41umOfviUF7yzwa9T5+3+M0L5HXJtNxyImc=;
        b=KSGdtnqZwODcFc07+iNqn23UIBVlVZWRsP7Wpo1h9f5UtLCGu3BpPtiUrpiRlmy0YB
         oQklsuDPaD15qtuTUs/E4/tGojmMeeBHgOpKwpkX6ric2UOktulG7n94bK0jkoXWyvTT
         FI/bNSET1dxbcrRJCSp+rtAJCMNcBeU9C6Vx90UUfYjkWQ8VlB8Xr6higiYLcv7eJv9R
         +AYLItcaiEKpp1fSvTu307PeUt8uTLgqAOOVwIu1qMe3qXCQ1V42NkP/gpkdTH9f01H2
         xoCzFMRlVkRoeJsKTUu5MBUOkED9M18rNlcUuk+grAG7CyRsRtSjH1d9/AUXb42qUV80
         2gcg==
X-Gm-Message-State: AOJu0YwO5H1IbAhYMMV6j0pkaPQ0SnmpvWI5A3qR9O8QsKZ5KTP4I7qT
	NwN3Ot2qpDxhuwTPOo3VOqIkXAvvgMjEio88VqMQHr9ganUxTnIao4JLs/HKmymV6BFmtuM9k8G
	EWFY=
X-Gm-Gg: ASbGncshz0+qtRsG6UVC5lH1dRWqiRgt0zeLzyvpPGdOSnhnNSV8daG47P6Ed3hGGeE
	pnBjD+iLipT6Zb4yILK3OvNIJxBic2nslHsF4swsPQNqQ1PyP+QeV+iemqHx8wDprjlMGi7fy6Y
	vZj5rwBCgPcWhffPyrT2PEtK6K1a7iXsfbfm5rQYMNqnZYNoYVpw4JQIxGVV8XUt9nAzx0Q0ONl
	AaaR+M4NBQTMPHlCcbIN/OU0WZhmCaERVslVWqeH/st+oH2rp9mvFhOV3hBvsqGZYYnnpwWSDqq
	z0Y8kPNExRLTc+/C6VDV0CIAVngrvRWlbAw4x3pi+rk7egtaH/qZZhfoTOHPt2nEuLtp1THK55l
	6XtA4xyRNj1z9oQ==
X-Google-Smtp-Source: AGHT+IECBHZz8u3V6tGrc2lf+9uFOW2Cq+hmweb4PBH7kFIbq5/8KAfliEFxXNoMEwaeDrGE0JRJJg==
X-Received: by 2002:a05:600c:3acd:b0:43d:9d5:474d with SMTP id 5b1f17b1804b1-43f3a7d827emr112266815e9.0.1744625929077;
        Mon, 14 Apr 2025 03:18:49 -0700 (PDT)
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?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Jason Andryuk <jason.andryuk@amd.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>
Subject: [PATCH v2 1/7] Rename and adjust x86 containers
Date: Mon, 14 Apr 2025 11:18:37 +0100
Message-Id: <20250414101843.2348330-2-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250414101843.2348330-1-andrew.cooper3@citrix.com>
References: <20250414101843.2348330-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Insert the Alpine version as we'll need a newer version in due course, and
rename 'rootfs' to 'base' as the container really is not a rootfs on it's own.

In base, add bash.  It's added later by the rootfs generation anyway, but this
way we can write the generation script in bash too.

In build, group and sort the packages.  Drop the ones we don't need, or are
pulled in by dependencies.  Include diffutils, findutils and gawk to avoid
warnings in the kernel build.

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: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
CC: Jason Andryuk <jason.andryuk@amd.com>
CC: Daniel P. Smith <dpsmith@apertussolutions.com>
---
 .gitlab-ci.yml                                |  4 +--
 containerize                                  |  4 +--
 images/alpine/3.18-x86_64-base.dockerfile     |  6 ++++
 ...ockerfile => 3.18-x86_64-build.dockerfile} | 32 ++++++++++++-------
 images/alpine/x86_64-rootfs.dockerfile        |  4 ---
 5 files changed, 30 insertions(+), 20 deletions(-)
 create mode 100644 images/alpine/3.18-x86_64-base.dockerfile
 rename images/alpine/{x86_64-build.dockerfile => 3.18-x86_64-build.dockerfile} (54%)
 delete mode 100644 images/alpine/x86_64-rootfs.dockerfile

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 670f9621e26d..fb997cc62162 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -28,7 +28,7 @@ stages:
   tags:
     - x86_64
   variables:
-    CONTAINER: alpine:x86_64-build
+    CONTAINER: alpine:3.18-x86_64-build
 
 #
 # ARM64 artifacts
@@ -62,7 +62,7 @@ x86_64-rootfs-alpine-3.18:
   script:
     - . scripts/x86_64-rootfs-alpine.sh
   variables:
-    CONTAINER: alpine:x86_64-rootfs
+    CONTAINER: alpine:3.18-x86_64-base
 
 x86_64-argo-linux-6.6.56:
   extends: .x86_64-artifacts
diff --git a/containerize b/containerize
index 7abeb119ff6a..c23f55ead737 100755
--- a/containerize
+++ b/containerize
@@ -25,8 +25,8 @@ die() {
 BASE="registry.gitlab.com/xen-project/hardware/test-artifacts"
 case "_${CONTAINER}" in
     _alpine-3.18-arm64-build) CONTAINER="${BASE}/alpine:3.18-arm64-build" ;;
-    _alpine-x86_64-rootfs) CONTAINER="${BASE}/alpine:x86_64-rootfs" ;;
-    _alpine-x86_64-build|_) CONTAINER="${BASE}/alpine:x86_64-build" ;;
+    _alpine-3.18-x86_64-base) CONTAINER="${BASE}/alpine:3.18-x86_64-base" ;;
+    _alpine-3.18-x86_64-build|_) CONTAINER="${BASE}/alpine:3.18-x86_64-build" ;;
 esac
 
 # Use this variable to control whether root should be used
diff --git a/images/alpine/3.18-x86_64-base.dockerfile b/images/alpine/3.18-x86_64-base.dockerfile
new file mode 100644
index 000000000000..a8cb274d5821
--- /dev/null
+++ b/images/alpine/3.18-x86_64-base.dockerfile
@@ -0,0 +1,6 @@
+# syntax=docker/dockerfile:1
+FROM --platform=linux/amd64 alpine:3.18
+LABEL maintainer.name="The Xen Project"
+LABEL maintainer.email="xen-devel@lists.xenproject.org"
+
+RUN apk --no-cache add bash
diff --git a/images/alpine/x86_64-build.dockerfile b/images/alpine/3.18-x86_64-build.dockerfile
similarity index 54%
rename from images/alpine/x86_64-build.dockerfile
rename to images/alpine/3.18-x86_64-build.dockerfile
index 98969a5be1da..eac0cda4fed3 100644
--- a/images/alpine/x86_64-build.dockerfile
+++ b/images/alpine/3.18-x86_64-build.dockerfile
@@ -1,31 +1,39 @@
 # syntax=docker/dockerfile:1
 FROM --platform=linux/amd64 alpine:3.18
-LABEL maintainer.name="The Xen Project" \
-      maintainer.email="xen-devel@lists.xenproject.org"
+LABEL maintainer.name="The Xen Project"
+LABEL maintainer.email="xen-devel@lists.xenproject.org"
 
 RUN apk --no-cache add bash
 
-RUN bash -ex <<EOF
+RUN <<EOF
+#!/bin/bash
+      set -eu
+
       adduser -D user --shell /bin/bash
 
-      DEPS=(
-            musl-dev
+      DEPS=(# Base environment
             build-base
-            libc6-compat
-            linux-headers
-            bash
-            git
             curl
-            flex
+            git
+
+            # Linux build deps
             bison
+            diffutils
             elfutils-dev
+            findutils
+            flex
+            gawk
+            linux-headers
+            openssl-dev
+            perl
+
+            # Argo build deps
             autoconf
             automake
             libtool
-            openssl-dev
       )
 
-      apk add --no-cache "\${DEPS[@]}"
+      apk add --no-cache "${DEPS[@]}"
 EOF
 
 USER user
diff --git a/images/alpine/x86_64-rootfs.dockerfile b/images/alpine/x86_64-rootfs.dockerfile
deleted file mode 100644
index b912e9c1600d..000000000000
--- a/images/alpine/x86_64-rootfs.dockerfile
+++ /dev/null
@@ -1,4 +0,0 @@
-# syntax=docker/dockerfile:1
-FROM --platform=linux/amd64 alpine:3.18
-LABEL maintainer.name="The Xen Project" \
-      maintainer.email="xen-devel@lists.xenproject.org"
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Mon Apr 14 10:18:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 10:18:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.949552.1346051 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4Gtv-0005Nz-Dq; Mon, 14 Apr 2025 10:18:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 949552.1346051; Mon, 14 Apr 2025 10:18: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 1u4Gtv-0005Ns-AH; Mon, 14 Apr 2025 10:18:51 +0000
Received: by outflank-mailman (input) for mailman id 949552;
 Mon, 14 Apr 2025 10:18: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=KxE1=XA=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u4Gtu-0005Nh-2W
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 10:18:50 +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 db2115ee-1919-11f0-9eae-5ba50f476ded;
 Mon, 14 Apr 2025 12:18:49 +0200 (CEST)
Received: by mail-wr1-x42e.google.com with SMTP id
 ffacd0b85a97d-39c14016868so3787731f8f.1
 for <xen-devel@lists.xenproject.org>; Mon, 14 Apr 2025 03:18:49 -0700 (PDT)
Received: from localhost.localdomain (host-92-26-98-202.as13285.net.
 [92.26.98.202]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43f233a2f08sm171340495e9.12.2025.04.14.03.18.47
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 14 Apr 2025 03:18: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: db2115ee-1919-11f0-9eae-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744625928; x=1745230728; 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=1cb4VOug/ZvqBw0yisUMHavtruUhlAlPkD0+fd9CRM4=;
        b=gISghh5CIaMA8l8RNFv11Nkn/O4A7UTmadkjpF+F+unuW5cuz4zNEt/azn7QTg9YHJ
         h6k0FDSOQ4U+h4qTNWUCKZbrmcWVyUmLB/NUPJbBwlPEYrm8F5vjG7QDPIywm9QPDTF2
         cM1yQ8PoA3RMdlzIL1nHfYOAiCu2YsVp61Ji4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744625928; x=1745230728;
        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=1cb4VOug/ZvqBw0yisUMHavtruUhlAlPkD0+fd9CRM4=;
        b=BQX6AxVODPLyo00qY1Yunie4ef+1VUoDiG7R9HR3YHzWyCd/KQgqymSGlywosVh1gE
         beT6MSu4iRUUx3puUZsA0p3Al0OqP3szVho0F/AabcQAyZwtm523o/xR/I26ZDv6hV9S
         zQVDOgBjZsj9QH+6tBnPqZBHOVbjcOv+O8kFlimdUbhbM9f9Dm62sNNJvkufg4M6tVbW
         XH7xpm50sNkqEsTMY0N8JsAm8bt8VAv32la3Qwt8t80GDWXlZCtGIhmVUdoVbSEgRwMR
         bSez57lc5pSI6dLHr56FPaNy1pXYypMODNeQ2I1XXmmfDX3oYWLaIRkro2XRvpoWI3I4
         UJFA==
X-Gm-Message-State: AOJu0Yz1OTnUlGA1M5gr1DQcs23OHAII0BwhlopTvryA4YIGMMrX/EQS
	lNHRDZ5Tw2K47BHNzkgHDr2NhUpj4F+H4V9oshaNjj1CGVEcmZvxb7LiyacjIXQbh4wFkVXY8E8
	GyI8=
X-Gm-Gg: ASbGncuRFheE1hd1/zAaScneVqQyKndcjSgLQooBdpzSsGDnx8kCzHADwZAGSMKR7D1
	DijLVLMgIEnMo9+jjj+n2s8PZwMMNyS/FSwwyrNx1utKaOBFmirGycUlR6+Ym4YQZ3liTlBGRhh
	gVsLLdDEPi8OeY5/dZ5KudoA9r0GZZh5MvUlzBE+SpndGraprr/vojS5agg0bh27HF5FnywGRWU
	A0aDV7+OJBEeR57sx39Y7DXwmZFNSXSI6VDkw/KcM4UI8W2VfxQgWCxo+wOoPlmK8UE4P1kjIW5
	czTUp0GhAhIFmU36fPcRi1Z31m0sue+Nsi1z8unn0gqnvty9z4Q9gTxe4dUK29q8G38NsQjBAw4
	v7Pn7Or8EOmTSGg==
X-Google-Smtp-Source: AGHT+IGrzcWx8bLqV9EMO5pgzZxJTS96cWsavHwt8//9REH1sRSelv45vYe7VJafZiX+w2+cpIndJg==
X-Received: by 2002:a5d:64ce:0:b0:38d:e6b6:508b with SMTP id ffacd0b85a97d-39ea51ee650mr8479410f8f.9.1744625928221;
        Mon, 14 Apr 2025 03:18:48 -0700 (PDT)
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?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Jason Andryuk <jason.andryuk@amd.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>
Subject: [PATCH TEST-ARTEFACTS v2 0/7] Rootfs/argo cleanup and microcode support
Date: Mon, 14 Apr 2025 11:18:36 +0100
Message-Id: <20250414101843.2348330-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 series supersedes the others posted.  Only minor changes from before; see
patches for details.

See the companion Xen series for the testing using these new artefacts.

Andrew Cooper (7):
  Rename and adjust x86 containers
  Overhaul how Argo is built and packged
  Rework rootfs generation to make a cpio archive
  Shrink the rootfs substantially
  Adjust directory layout for rootfs.cpio.gz
  Provide an ARM64 rootfs too
  Package microcode for the x86 hardware runners

 .gitlab-ci.yml                                | 26 ++++-
 containerize                                  |  5 +-
 images/alpine/3.18-arm64-base.dockerfile      |  6 ++
 images/alpine/3.18-x86_64-base.dockerfile     |  6 ++
 ...ockerfile => 3.18-x86_64-build.dockerfile} | 35 ++++---
 images/alpine/x86_64-rootfs.dockerfile        |  4 -
 scripts/alpine-rootfs.sh                      | 95 +++++++++++++++++++
 scripts/build-argo.sh                         | 67 +++++++++++++
 scripts/build-linux.sh                        |  8 +-
 scripts/x86-microcode.sh                      | 42 ++++++++
 scripts/x86_64-rootfs-alpine.sh               | 60 ------------
 11 files changed, 272 insertions(+), 82 deletions(-)
 create mode 100644 images/alpine/3.18-arm64-base.dockerfile
 create mode 100644 images/alpine/3.18-x86_64-base.dockerfile
 rename images/alpine/{x86_64-build.dockerfile => 3.18-x86_64-build.dockerfile} (51%)
 delete mode 100644 images/alpine/x86_64-rootfs.dockerfile
 create mode 100755 scripts/alpine-rootfs.sh
 create mode 100755 scripts/build-argo.sh
 create mode 100755 scripts/x86-microcode.sh
 delete mode 100755 scripts/x86_64-rootfs-alpine.sh

-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Mon Apr 14 10:18:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 10:18:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.949554.1346072 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4Gtx-0005q3-1f; Mon, 14 Apr 2025 10:18:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 949554.1346072; Mon, 14 Apr 2025 10:18: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 1u4Gtw-0005pG-SJ; Mon, 14 Apr 2025 10:18:52 +0000
Received: by outflank-mailman (input) for mailman id 949554;
 Mon, 14 Apr 2025 10:18: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=KxE1=XA=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u4Gtv-0005Nh-OW
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 10:18:51 +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 dc23f48b-1919-11f0-9eae-5ba50f476ded;
 Mon, 14 Apr 2025 12:18:51 +0200 (CEST)
Received: by mail-wr1-x42a.google.com with SMTP id
 ffacd0b85a97d-39d83782ef6so3268719f8f.0
 for <xen-devel@lists.xenproject.org>; Mon, 14 Apr 2025 03:18:51 -0700 (PDT)
Received: from localhost.localdomain (host-92-26-98-202.as13285.net.
 [92.26.98.202]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43f233a2f08sm171340495e9.12.2025.04.14.03.18.49
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 14 Apr 2025 03:18:49 -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: dc23f48b-1919-11f0-9eae-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744625930; x=1745230730; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Banuvmf0avtg5GZqgl/5tNKpXlLxwAiYOanpenznEWY=;
        b=InSDfBjOi0Dp/gZZzOGM3AuiHXcMXiMuPGW11IV2QbKcniYWNYIQ06R4VPQnfg+80i
         xofDR/IbcXN4t9+8DSj2UrJ4KiPRabnHt11zKXPyAXVHJWiAStm3dzTZoat3QgTlZQAD
         KA/aEvPd6Z1ZQet+HUZV6ZN3TdT8gRQltN6DE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744625930; x=1745230730;
        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=Banuvmf0avtg5GZqgl/5tNKpXlLxwAiYOanpenznEWY=;
        b=fJl3lwPBIZD7LDdHy6IhjFD6L2sZ6vzvhMPGazJ+fUllsGJUKF35AbkTqZuqymXQRw
         hp5mb7kKPkdel464gWopNwcOjrNGV1VJns0iWBxA7Zr8z93grWNlnaPpPkCZkv3b6Yxo
         bgFlhAHlK/fSC0H8KDOjGRrgZ8i4SSPCcQjeFYMU1BEb8fR5RgfVisSZ/7GtWJii5xeO
         uf1le4ddAeAptw6xLYbAgzf3E2lsn+dUN7gztbZ7pw6XGJXewSmuJIYa4sPrDOYX+cYE
         OY43jso7pzK3lRSMoxLdhyJknwpyldzmVkDDmAjl0NX3paDMfENPBvvY0jf8pf5zORZQ
         Q1ow==
X-Gm-Message-State: AOJu0Yy21RP+8HGJl4X1lko1cudXTr5pU2bPGaGbuAlD56rsqon+Q7UV
	L5ZWN0IyxhPR+Rz0uC6AyUXioINyvPOSGFeiRzQQ4W43KVlV2wi/HT+sPG5HuFtlwO2FdADQNyT
	OPY0=
X-Gm-Gg: ASbGnctwroIEmmy8WecdKM/7vLHIr6l8AR5KCKL8K4tiPmODhzu+pFAmDUQmsBJBKOv
	0KLFW08CntNh83V+DKQBmQaPKZ7pqaUijiCczWE3dNcDZghRGTl3bm+UEDOkQL89mofOiUJC8c3
	PcsGg0jcjGfDhAa7APVAeGgPGJJYbw/YyksXSo/9lS+ZLVbKltoqdALaMDkvSi+jejV+Z3wAKMZ
	lz3ANSjPPWfD5DNSZp/dE9MMNMxIJtHKXSnG4Fj0kgaP+Lx7KIIMA+qHLaIeoC8PqW0lKRPj30Z
	VLOyIBpT3lhmSjPI1rsU2nDqlMyVlTbeCj9GslT8Rf3UTla5aVb7kKcbSM2orXSFFJew5IGDERc
	uolJT9YQtU5iF/g==
X-Google-Smtp-Source: AGHT+IEmJqI7t0Kh8X8h67YqDiQPbsg7zKhYbL8TN0p5wsbjshqI/5fQpkHN8lGUZSl8wj27xJBFyA==
X-Received: by 2002:a5d:648c:0:b0:39c:2c0b:8db4 with SMTP id ffacd0b85a97d-39d8f275fbamr12192494f8f.10.1744625929963;
        Mon, 14 Apr 2025 03:18:49 -0700 (PDT)
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?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Jason Andryuk <jason.andryuk@amd.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>
Subject: [PATCH v2 2/7] Overhaul how Argo is built and packged
Date: Mon, 14 Apr 2025 11:18:38 +0100
Message-Id: <20250414101843.2348330-3-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250414101843.2348330-1-andrew.cooper3@citrix.com>
References: <20250414101843.2348330-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Right now, the argo artefacts are a pile of files which the test has to turn
back into something which resembles a filesystem.  Furthermore, because we do
not build modules for the main kernel, it is extra important to make sure that
xen-argo.ko doesn't get out of sync.

Build argo conditionally as part of the linux artefact.  It's ~100kb all
together, compared to ~14M for the kernel.

Produce a single argo.cpio.gz with xen-argo.ko in the standard location.
Prune userspace down to just the executables and libraries.

This is cribbed from the existing scripts/x86_64-linux-argo.sh, which stays in
place in the short term until Xen can be updated to use the new scheme.

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: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
CC: Jason Andryuk <jason.andryuk@amd.com>
CC: Daniel P. Smith <dpsmith@apertussolutions.com>

v2:
 * Only build conditionally.  Argo is bust with Linux 6.12, which is needed
   for new hardware runners.
 * Parallel build of xen-argo.ko and libargo.
 * Use -print0

I tried to make MODPOST work properly, but we don't build enough of it for the
kernel, and I didn't feel like adding an extra 10 mins to the build (all
modules) just to get the metadata right.
---
 .gitlab-ci.yml         |  2 ++
 scripts/build-argo.sh  | 67 ++++++++++++++++++++++++++++++++++++++++++
 scripts/build-linux.sh |  8 ++++-
 3 files changed, 76 insertions(+), 1 deletion(-)
 create mode 100755 scripts/build-argo.sh

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index fb997cc62162..790a6d9f9896 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -47,6 +47,8 @@ linux-6.6.56-x86_64:
   script: ./scripts/build-linux.sh
   variables:
     LINUX_VERSION: 6.6.56
+    ARGO_SHA: "705a7a8a624b42e13e655d3042059b8a85cdf6a3"
+    ARGOEXEC_SHA: "d900429f6640acc6f68a3d3a4c945d7da60625d8"
 
 #
 # The jobs below here are legacy and being phased out.
diff --git a/scripts/build-argo.sh b/scripts/build-argo.sh
new file mode 100755
index 000000000000..ef7057d847d4
--- /dev/null
+++ b/scripts/build-argo.sh
@@ -0,0 +1,67 @@
+#
+# This is a partial script, sourced by build-linux.sh
+# It has expectations about the environment
+#
+
+cd "${WORKDIR}"
+
+#
+# We're going to collect everything in argo.cpio.gz.  Construct it under
+# $ARGODIR as we go.
+#
+ARGODIR="${WORKDIR}/argo-root"
+
+git clone https://github.com/OpenXT/linux-xen-argo.git --depth=1
+git -C "${WORKDIR}/linux-xen-argo" fetch origin "${ARGO_SHA}"
+git -C "${WORKDIR}/linux-xen-argo" switch --detach FETCH_HEAD
+
+# Build xen-argo.ko against the target kernel, and install it.  Install
+# linux/argo.h too because userspace needs it.
+make -j$(nproc) -C "linux-${LINUX_VERSION}" \
+     M="${WORKDIR}/linux-xen-argo/argo-linux" \
+     KBUILD_MODPOST_WARN=1 \
+     CFLAGS_MODULE="-Wno-error" \
+     modules
+install -D -m644 "${WORKDIR}/linux-xen-argo/argo-linux/xen-argo.ko" \
+     "${ARGODIR}/lib/modules/${LINUX_VERSION}/updates/xen-argo.ko"
+install -D -m644 "${WORKDIR}/linux-xen-argo/argo-linux/include/linux/argo.h" \
+     "${ARGODIR}/usr/include/linux/argo.h"
+
+# Build and install libargo, applying fixes to build in Alpine Linux
+cd "${WORKDIR}/linux-xen-argo/libargo"
+sed -e "s|AM_INIT_AUTOMAKE|AC_CONFIG_AUX_DIR(.)\nAM_INIT_AUTOMAKE|" \
+    -i configure.ac
+sed -e "s/__SOCKADDR_COMMON (sxenargo_)/sa_family_t sxenargo_family/" \
+    -e "s/__SOCKADDR_COMMON_SIZE/(sizeof (unsigned short int))/" \
+    -i src/libargo.h
+
+autoreconf --install
+./configure --prefix=/usr CPPFLAGS="-I${PWD}/../argo-linux/include"
+make -j$(nproc)
+make install DESTDIR="${ARGODIR}"
+
+# Build and install argo-exec, modifying for xilinx argo test
+cd "${WORKDIR}"
+curl -fsSLO \
+    https://raw.githubusercontent.com/OpenXT/xenclient-oe/${ARGOEXEC_SHA}/recipes-openxt/argo-exec/argo-exec/argo-exec.c
+sed -e "/#include <xen\/xen.h>/d" \
+    -e "s|ret = shuffle(s, fds\[0\], fds\[1\]);|ret = shuffle(s, 0, 1);|" \
+    -i argo-exec.c
+
+gcc -I"${ARGODIR}/usr/include" -L"${ARGODIR}/usr/lib/" \
+    argo-exec.c -o "${ARGODIR}/usr/bin/argo-exec" -largo
+
+#
+# Building is now complete.  Strip the devel components and the nointerposer
+# lib, which we don't care to deploy to the test system.
+#
+cd $ARGODIR
+rm -r usr/include usr/lib/pkgconfig
+find usr/lib -name \*nointerposer\* -delete
+find usr/lib \( -name \*.a -o -name \*.so -o -name \*.la \) -delete
+
+# Package everything up
+find . -print0 | cpio -0 -R 0:0 -H newc -o | gzip > "$COPYDIR/argo.cpio.gz"
+
+# Print the contents for the build log
+zcat "${COPYDIR}/argo.cpio.gz" | cpio -tv
diff --git a/scripts/build-linux.sh b/scripts/build-linux.sh
index 652fdba7b9d1..441b8721a490 100755
--- a/scripts/build-linux.sh
+++ b/scripts/build-linux.sh
@@ -8,7 +8,7 @@ fi
 set -ex -o pipefail
 
 WORKDIR="${PWD}"
-COPYDIR="${WORKDIR}/binaries/"
+COPYDIR="${WORKDIR}/binaries"
 UNAME=$(uname -m)
 
 # Build Linux
@@ -45,6 +45,12 @@ case $UNAME in
     x86_64)
         make -j$(nproc) bzImage
         cp arch/x86/boot/bzImage "${COPYDIR}"
+
+        # Build argo if requested
+        if [[ -n "${ARGO_SHA}" ]]; then
+            make modules_prepare
+            . "${WORKDIR}/scripts/build-argo.sh"
+        fi
         ;;
 
     aarch64)
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Mon Apr 14 10:18:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 10:18:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.949555.1346081 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4Gty-00066R-4v; Mon, 14 Apr 2025 10:18:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 949555.1346081; Mon, 14 Apr 2025 10: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 1u4Gty-00066I-29; Mon, 14 Apr 2025 10:18:54 +0000
Received: by outflank-mailman (input) for mailman id 949555;
 Mon, 14 Apr 2025 10:18: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=KxE1=XA=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u4Gtw-0005Nh-OX
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 10:18:52 +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 dca5438c-1919-11f0-9eae-5ba50f476ded;
 Mon, 14 Apr 2025 12:18:51 +0200 (CEST)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-43cfa7e7f54so25789315e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 14 Apr 2025 03:18:51 -0700 (PDT)
Received: from localhost.localdomain (host-92-26-98-202.as13285.net.
 [92.26.98.202]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43f233a2f08sm171340495e9.12.2025.04.14.03.18.50
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 14 Apr 2025 03:18: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: dca5438c-1919-11f0-9eae-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744625931; x=1745230731; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=hY27kwUeC0aHdjJMCw3sLatm4tQzjVnnxCoVdjVXbD0=;
        b=B6IuDxLqou4Xy83jA7+GhRD9EuQos3td7i2HrQAztXP74wgvwLWPYmz8pXjndN37dQ
         tZuhYgZF2PtsC8L9aj7z6toOUewfzI/M2LWt9ICBAvjsdGTt6x4OO2LwT+rXX3YEwiSC
         bURjqhBsTSqr+FsMf5XpHMdd5ZaiXgFurx9wo=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744625931; x=1745230731;
        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=hY27kwUeC0aHdjJMCw3sLatm4tQzjVnnxCoVdjVXbD0=;
        b=UJ2dtenEzsFrftLfydNgjVTgu6ygeKlgTslNP0pUWGsM3dTgPr+O/QP2TjQvnauPbL
         1tvq9N171WqLL4z8/8BJ/WyUiIOvsOpDEwDr557EuZrjlkU3EBRQYcrGSb+t8Eir0T+c
         vUs/HQ0QMZzi/P80bq/7iXuHccDfmgaMMUtCQ00YKA62mfOKEGayyZFzOjcQhfAfu3D5
         f/19exDh9glR4v0FPjAPc6Keg3Xg96fmc4psnxpHETKtseADEEF9oHijzm+MRvHZfHP2
         e160CnhG0BM5BQK63h1/LzXs7GT9v0ysOsg70n/QjMfVbl7sklDxln9KrUMaIWJeZBG8
         miKg==
X-Gm-Message-State: AOJu0YzHdasUu8BYCAqJL8HNbEtU8KlcAVXV1oI5Au1H8hcdmeyMyoHr
	F1MkmeJCMAa02wO2kBL/mLG098IM7hiaWYR3e6ymOSEZAranVYvms0ZepXYSNET94ZZzx1K8SdP
	m9FU=
X-Gm-Gg: ASbGncsXFZSsChUSgmKlRY4oCxMu5uVKD1n3yzOnfY4wPb2EIQO0tNPAWyUiD5L+D0J
	2Ljz5KOnywYWDJext8hBPT296Py6EsAPHPkaE0+HmC6AWItbE24qRWZZ1UG/Jn/VTv8CUrBqm21
	0xDKBZ2/OpPcxEH/DW5bk5YQph4AFTOtTu5RSpJr/VykGfWvhs6jRPGSILnuv6re/Z3KG8QxTeb
	6UF+HF5G5ncL6COiH007jtt/52IPyOs65IBPPfE2Vj9eJpTF5OtrFrke+0cG8HE5SxobA7SY3pV
	EgMyQSO1mbSYtedwC9SiAZo18Us0xaI9gaM0VVrHTWqrlN1nM4qtfj6OCiMN29YMuKKEFFpiKX4
	mefKF/BwW1IlI9pzk3YNKai8V
X-Google-Smtp-Source: AGHT+IHlhWTC657aAMaj6w7SXwH//jsWWtI2psvQ130N/dELSD5E/ipKReX8rEgxNL5sTAFtLI/UVA==
X-Received: by 2002:a7b:ce90:0:b0:43b:c592:7e16 with SMTP id 5b1f17b1804b1-43f337c2b5bmr112863215e9.3.1744625930811;
        Mon, 14 Apr 2025 03:18:50 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Denis Mukhin <dmukhin@ford.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?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH v2 3/7] Rework rootfs generation to make a cpio archive
Date: Mon, 14 Apr 2025 11:18:39 +0100
Message-Id: <20250414101843.2348330-4-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250414101843.2348330-1-andrew.cooper3@citrix.com>
References: <20250414101843.2348330-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Rename the script as we're going to use it for ARM64 shortly, and have it take
a tar or cpio parameter to determine the output format.

Turn it into a proper bash script, and provide the cpio form under the new
artefact naming scheme.

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Denis Mukhin <dmukhin@ford.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: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>

v2:
 * Use -print0
 * Don't dedup $PATHS.  It's going to change between cpio and tar in
   subsequent patches.
---
 .gitlab-ci.yml                                |  9 +++++++-
 ...6_64-rootfs-alpine.sh => alpine-rootfs.sh} | 21 +++++++++++++++++--
 2 files changed, 27 insertions(+), 3 deletions(-)
 rename scripts/{x86_64-rootfs-alpine.sh => alpine-rootfs.sh} (71%)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 790a6d9f9896..b7d187168df2 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -42,6 +42,13 @@ linux-6.6.86-arm64:
 #
 # x86_64 artifacts
 #
+alpine-3.18-x86_64-rootfs:
+  extends: .x86_64-artifacts
+  script:
+    - ./scripts/alpine-rootfs.sh cpio
+  variables:
+    CONTAINER: alpine:3.18-x86_64-base
+
 linux-6.6.56-x86_64:
   extends: .x86_64-artifacts
   script: ./scripts/build-linux.sh
@@ -62,7 +69,7 @@ x86_64-kernel-linux-6.6.56:
 x86_64-rootfs-alpine-3.18:
   extends: .x86_64-artifacts
   script:
-    - . scripts/x86_64-rootfs-alpine.sh
+    - ./scripts/alpine-rootfs.sh tar
   variables:
     CONTAINER: alpine:3.18-x86_64-base
 
diff --git a/scripts/x86_64-rootfs-alpine.sh b/scripts/alpine-rootfs.sh
similarity index 71%
rename from scripts/x86_64-rootfs-alpine.sh
rename to scripts/alpine-rootfs.sh
index b70b3a54ede5..75e2f8648ce5 100755
--- a/scripts/x86_64-rootfs-alpine.sh
+++ b/scripts/alpine-rootfs.sh
@@ -1,4 +1,9 @@
+#!/bin/bash
+
+set -eu
+
 WORKDIR="${PWD}"
+COPYDIR="${WORKDIR}/binaries"
 
 apk update
 
@@ -56,5 +61,17 @@ passwd -d "root" root
 
 # Create rootfs
 cd /
-tar cvzf "${WORKDIR}/binaries/initrd.tar.gz" \
-    bin dev etc home init lib mnt opt root sbin usr var
+case $1 in
+    cpio)
+        PATHS="bin dev etc home init lib mnt opt root sbin usr var"
+        find $PATHS -print0 | cpio -0 -H newc -o | gzip > "${COPYDIR}/rootfs.cpio.gz"
+
+        # Print the contents for the build log
+        zcat "${COPYDIR}/rootfs.cpio.gz" | cpio -tv
+        ;;
+
+    tar)
+        PATHS="bin dev etc home init lib mnt opt root sbin usr var"
+        tar cvzf "${COPYDIR}/initrd.tar.gz" $PATHS
+        ;;
+esac
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Mon Apr 14 10:18:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 10:18:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.949557.1346091 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4Gtz-0006Mt-C3; Mon, 14 Apr 2025 10:18:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 949557.1346091; Mon, 14 Apr 2025 10:18: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 1u4Gtz-0006Mk-95; Mon, 14 Apr 2025 10:18:55 +0000
Received: by outflank-mailman (input) for mailman id 949557;
 Mon, 14 Apr 2025 10: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=KxE1=XA=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u4Gtx-0005Nh-On
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 10:18:53 +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 dd23d9a6-1919-11f0-9eae-5ba50f476ded;
 Mon, 14 Apr 2025 12:18:52 +0200 (CEST)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-43ede096d73so29815775e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 14 Apr 2025 03:18:52 -0700 (PDT)
Received: from localhost.localdomain (host-92-26-98-202.as13285.net.
 [92.26.98.202]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43f233a2f08sm171340495e9.12.2025.04.14.03.18.50
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 14 Apr 2025 03:18: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: dd23d9a6-1919-11f0-9eae-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744625932; x=1745230732; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=wlk2C2qbHJoC+R/qrRgQwbQ441YQiHB5rm1pXRjQnSc=;
        b=sz0ZQO+H82rgAbZ7eplpczt/+u+akZusZPjcGAxJX5gCh4hIwEAtlNzn34AMcfRXT/
         5QOxAWqpA7ZqsLIaCypmE2OhsdGLYxfEQJF1V3AJkOsNnjxs3djGdHclP7oH3bc4Ag7i
         kDXtzO0wHmsWtJ4HXSk8m/nMlMCxqWG5bL/9k=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744625932; x=1745230732;
        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=wlk2C2qbHJoC+R/qrRgQwbQ441YQiHB5rm1pXRjQnSc=;
        b=TKBotqxpqyTLcUziIeLviGkztIPAOYNcxnwSeaVVSUDTj+2aj/qF0k8r2+czorhkbh
         BrvSDn3Zeffh6e9t9I+PG/NFZSw3w2cKG059QEyBPGzYMkvFPCELoT3vhsjYSa1I3MuB
         JnKCwdAf+VMlPyQ6uZP7hSrEuSOLBD2T59Lw9p5+cNY+E4Udpj5feW/XmLMa7UdDcZjV
         mFmtLIlkLlDuJCEc7SVXec/qlr8zURSliVFYswqWXGmAGL40asnHoZJkO5m6+GeO+oZL
         dz+ZMywapb5uNTjKDUsn3DA3EWY9XGeDQCv1tdk4brqegkCIeO0LuzvjBin/GG+6pt92
         /MjA==
X-Gm-Message-State: AOJu0YySjKx5hvDI9ag6cuZqT/AKyuUZi69gAdLZwaRsH3L4ajx1vzSo
	MbZ4z5YB201QErupGeewy1737JLZlTTq0aRhkVwRXEkpY6GNyvSEklnsVnToO9kfdEIPGdpJsWp
	xiTQ=
X-Gm-Gg: ASbGnctgNyMdCFyd9lWLBvfHL/noi+sB7uDQpvpCMkB4o7VJvKGkoKZB3eqKxfabWOY
	jJfDyaoxgJuRAplLqqZXZMmILR99oWTAx2sMNrqVD3jiKtBmhX5m2WOPp3liMEmb8tFN+POMh0I
	LzUIxizHC349+jK1Ra8dzmBCFupjfxos+zXswzZO8MLR0ZDrsSTJ1CC5jf800S++03UV7wjfuJO
	P+HLZ5RD1ubhXM1MP5ust14QW7ORTkSGFPlp/EJ8yOCUu/BCwKyWfm9C99K3qaBH010lxu+mfzQ
	P7ZHbZ1jZlQR+d1bayiNcWD28Q2m3ihs+32xJfg8NadzPMx8+rQqatE4CbNhmBLki8fSvZiti5f
	yeb+OE+X85LPzCg==
X-Google-Smtp-Source: AGHT+IEYbjX2/qPltvHzwBvhqVGJSlcIvueTuo9Pe0SPfLBl1RG9OOR//v0UwuHwn84+dlnokajXwQ==
X-Received: by 2002:a05:600c:46d1:b0:43d:36c:f24 with SMTP id 5b1f17b1804b1-43f3a93de33mr103346745e9.13.1744625931696;
        Mon, 14 Apr 2025 03:18:51 -0700 (PDT)
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?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH v2 4/7] Shrink the rootfs substantially
Date: Mon, 14 Apr 2025 11:18:40 +0100
Message-Id: <20250414101843.2348330-5-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250414101843.2348330-1-andrew.cooper3@citrix.com>
References: <20250414101843.2348330-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

bash, busybox, musl and zlib are all in the base container.

python3 and ncurses are in principle used by bits of Xen, but not in anything
we test in CI.  argp-standlone, curl, dbus, libfdt, libgcc and sudo aren't
used at all (for x86 at least).

libbz2 and libuuid were pulled in transitively before, and need to be included
explicitly now.

Use apk --no-cache to avoid keeping a ~2M package index on disk.

Remove the modules scan on boot.  We don't have or build any.  This removes a
chunk of warnings on boot.

This shrinks the rootfs from ~30M down to ~8M.

No practical change.

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: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
---
 scripts/alpine-rootfs.sh | 60 +++++++++++++++++++++++-----------------
 1 file changed, 34 insertions(+), 26 deletions(-)

diff --git a/scripts/alpine-rootfs.sh b/scripts/alpine-rootfs.sh
index 75e2f8648ce5..72c29e0a0a13 100755
--- a/scripts/alpine-rootfs.sh
+++ b/scripts/alpine-rootfs.sh
@@ -4,33 +4,42 @@ set -eu
 
 WORKDIR="${PWD}"
 COPYDIR="${WORKDIR}/binaries"
+UNAME=$(uname -m)
 
-apk update
+apk --no-cache update
 
-# xen runtime deps
-apk add musl
-apk add libgcc
-apk add openrc
-apk add busybox
-apk add sudo
-apk add dbus
-apk add bash
-apk add python3
-apk add zlib
-apk add lzo
-apk add ncurses
-apk add yajl
-apk add libaio
-apk add xz
-apk add util-linux
-apk add argp-standalone
-apk add libfdt
-apk add glib
-apk add pixman
-apk add curl
-apk add udev
-apk add pciutils
-apk add libelf
+PKGS=(
+    # System
+    openrc
+    udev
+    util-linux
+
+    # Xen toolstack runtime deps
+    libbz2
+    libuuid
+    lzo
+    xz
+    yajl
+
+    # QEMU
+    glib
+    libaio
+    pixman
+    )
+
+case $UNAME in
+    x86_64)
+        PKGS+=(
+            # System
+            pciutils
+
+            # QEMU
+            libelf
+            )
+        ;;
+esac
+
+apk add --no-cache "${PKGS[@]}"
 
 # Xen
 cd /
@@ -45,7 +54,6 @@ rc-update add dmesg sysinit
 rc-update add hostname boot
 rc-update add hwclock boot
 rc-update add hwdrivers sysinit
-rc-update add modules boot
 rc-update add killprocs shutdown
 rc-update add mount-ro shutdown
 rc-update add savecache shutdown
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Mon Apr 14 10:18:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 10:18:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.949558.1346095 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4Gtz-0006Pl-Mk; Mon, 14 Apr 2025 10:18:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 949558.1346095; Mon, 14 Apr 2025 10:18: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 1u4Gtz-0006PK-Hg; Mon, 14 Apr 2025 10:18:55 +0000
Received: by outflank-mailman (input) for mailman id 949558;
 Mon, 14 Apr 2025 10:18: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=KxE1=XA=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u4Gty-0005Nh-P5
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 10:18:54 +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 de1a3f6b-1919-11f0-9eae-5ba50f476ded;
 Mon, 14 Apr 2025 12:18:54 +0200 (CEST)
Received: by mail-wr1-x42c.google.com with SMTP id
 ffacd0b85a97d-39c13fa05ebso2429491f8f.0
 for <xen-devel@lists.xenproject.org>; Mon, 14 Apr 2025 03:18:54 -0700 (PDT)
Received: from localhost.localdomain (host-92-26-98-202.as13285.net.
 [92.26.98.202]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43f233a2f08sm171340495e9.12.2025.04.14.03.18.52
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 14 Apr 2025 03:18:52 -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: de1a3f6b-1919-11f0-9eae-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744625933; x=1745230733; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=sNXGZn+6xdEm7eUiN1rhPMralAe0vvaD92Ofput/+hY=;
        b=O7Za0dQQwtCKAeoPABXZyjTyy9YuTeHiysHQetb9g/Amp0bTCbrbuxQ78p1DSlo3Xa
         8NHidCS567OMV5udU2/68tf39L4PWTtpN8+58bjT4JcEpeQUhBZIda9BFl+pzAUboFLs
         eDaFoNKpRlcRXC/md3lto+CX8D8WaL0nSvgMo=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744625933; x=1745230733;
        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=sNXGZn+6xdEm7eUiN1rhPMralAe0vvaD92Ofput/+hY=;
        b=JU+azb4aVPF8lcupELhZ2w07SQEDfFxdUrdiDJuTST6mJy59n2jxCsfYvZ4ltOgyZ6
         Z7bKQxdi9EiMTMetMwWyu5nK8VyWdc+OhOrB8jl4T/UQfePN9EuQEgRrSu5L7DWNQJGV
         DxJ1zuK5AF+Vd+AXpT9T34Xtr4vEe7gEoaQi56+79MeVCNaGf4nUDYG+KfsoqoPZkA61
         1c7DU3lUg04+UYtEv/Y3hoRO6iRgXtwQ6h7kj0mpQ50lLN13uMH/q0r2sNln9KrdW3le
         j/XiF1yDsgcohNcVvWzPRzwdXNFFuVmPoG24VuL9jrVlPOz8bBAO01SYMSB1YWnK3/bL
         hyVg==
X-Gm-Message-State: AOJu0Yy3XOh581nw7tzBkY2m5/cHq/J5Im+JF2a+OgAKla7uidWCwzAB
	8U2labyEnVX3gGb4fPbVt/RYiRF9Hkauso27JTJZlsNAXZmmxwOHszjayiOwt8H/CM7/iOoUxoy
	Xd9A=
X-Gm-Gg: ASbGncsjRHqTbsRYgjpld42BwBjL5zDivxcPnoujwOVd8BqYT1N4naqv+jObaj2RCG2
	jhx89xEqNs2AZ7/qb1k3voEiEBwpfnNnDg+RI1V9bxllokmM2YB4RMA4rDbRKSdJGT3AQ2A5OXY
	9NgvGUswZCxT6nc/snnYIRufkcliMmBwpFSXVkRisxzIlhkvY3OQDh/O2ywX0WXehjR0qzEbByq
	2XL6KH19MBEUwBhJSIzxBCB9L+Nvy16gkLboTdkFMkSf29A9kSDhibaVM+gQaWyheIFVZz0mGch
	pZG5YD6ukoecDW+xvNeSx9IqYHRGpElIE8lsWnzFlinh5g0pdbqDZIs7kexlRMPo/D/lrD16uXX
	CmEdzhm2R92GpaQ==
X-Google-Smtp-Source: AGHT+IGDgWsZdwPw7zxnnU1IXbbRkiqFuoLkSDmnmlnEk9nygrtJraTF3sOh8z1bDsIdi1CEl58G9A==
X-Received: by 2002:adf:9dcb:0:b0:39e:cbd2:9211 with SMTP id ffacd0b85a97d-39ecbd292afmr5466712f8f.55.1744625933228;
        Mon, 14 Apr 2025 03:18:53 -0700 (PDT)
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?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH v2 6/7] Provide an ARM64 rootfs too
Date: Mon, 14 Apr 2025 11:18:42 +0100
Message-Id: <20250414101843.2348330-7-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250414101843.2348330-1-andrew.cooper3@citrix.com>
References: <20250414101843.2348330-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The only extra package needed is libfdt.

The older ARM64 rootfs configured modloop, networking and sysctl, but none of
this is used in any of the testing, so is omitted here for now.

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: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
---
 .gitlab-ci.yml                           | 7 +++++++
 containerize                             | 1 +
 images/alpine/3.18-arm64-base.dockerfile | 6 ++++++
 scripts/alpine-rootfs.sh                 | 7 +++++++
 4 files changed, 21 insertions(+)
 create mode 100644 images/alpine/3.18-arm64-base.dockerfile

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index b7d187168df2..d70ddd99e529 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -33,6 +33,13 @@ stages:
 #
 # ARM64 artifacts
 #
+alpine-3.18-arm64-rootfs:
+  extends: .arm64-artifacts
+  script:
+    - ./scripts/alpine-rootfs.sh cpio
+  variables:
+    CONTAINER: alpine:3.18-arm64-base
+
 linux-6.6.86-arm64:
   extends: .arm64-artifacts
   script: ./scripts/build-linux.sh
diff --git a/containerize b/containerize
index c23f55ead737..38a434ab7075 100755
--- a/containerize
+++ b/containerize
@@ -24,6 +24,7 @@ die() {
 #
 BASE="registry.gitlab.com/xen-project/hardware/test-artifacts"
 case "_${CONTAINER}" in
+    _alpine-3.18-arm64-base) CONTAINER="${BASE}/alpine:3.18-arm64-base" ;;
     _alpine-3.18-arm64-build) CONTAINER="${BASE}/alpine:3.18-arm64-build" ;;
     _alpine-3.18-x86_64-base) CONTAINER="${BASE}/alpine:3.18-x86_64-base" ;;
     _alpine-3.18-x86_64-build|_) CONTAINER="${BASE}/alpine:3.18-x86_64-build" ;;
diff --git a/images/alpine/3.18-arm64-base.dockerfile b/images/alpine/3.18-arm64-base.dockerfile
new file mode 100644
index 000000000000..ab597c75b80e
--- /dev/null
+++ b/images/alpine/3.18-arm64-base.dockerfile
@@ -0,0 +1,6 @@
+# syntax=docker/dockerfile:1
+FROM --platform=linux/arm64/v8 alpine:3.18
+LABEL maintainer.name="The Xen Project"
+LABEL maintainer.email="xen-devel@lists.xenproject.org"
+
+RUN apk --no-cache add bash
diff --git a/scripts/alpine-rootfs.sh b/scripts/alpine-rootfs.sh
index 53547b5c5282..e52908a3d588 100755
--- a/scripts/alpine-rootfs.sh
+++ b/scripts/alpine-rootfs.sh
@@ -37,6 +37,13 @@ case $UNAME in
             libelf
             )
         ;;
+
+    aarch64)
+        PKGS+=(
+            # Xen
+            libfdt
+            )
+        ;;
 esac
 
 apk add --no-cache "${PKGS[@]}"
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Mon Apr 14 10:18:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 10:18:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.949559.1346111 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4Gu2-0006uk-3C; Mon, 14 Apr 2025 10:18:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 949559.1346111; Mon, 14 Apr 2025 10: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 1u4Gu1-0006uZ-VU; Mon, 14 Apr 2025 10:18:57 +0000
Received: by outflank-mailman (input) for mailman id 949559;
 Mon, 14 Apr 2025 10: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=KxE1=XA=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u4Gu0-0006cA-Ea
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 10:18:56 +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 dd8d35ce-1919-11f0-9ffb-bf95429c2676;
 Mon, 14 Apr 2025 12:18:53 +0200 (CEST)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-43cfdc2c8c9so21765845e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 14 Apr 2025 03:18:53 -0700 (PDT)
Received: from localhost.localdomain (host-92-26-98-202.as13285.net.
 [92.26.98.202]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43f233a2f08sm171340495e9.12.2025.04.14.03.18.51
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 14 Apr 2025 03:18:52 -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: dd8d35ce-1919-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744625932; x=1745230732; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=/ALhgfa8xDZiAvk4KRkCYhHo7ZCFxaNbuuSEWDWlOxI=;
        b=hx1iT8nLetYOZcZnTYrqHr6i4nFuFaKjkDUBKiqgBbh8HNzTnI3G+xkYzXU6roc7ir
         bxyHlhk3U9VN1SKYABrxBIxaPiXIH3MxeC0ENh2Dk1DN9yu+z5JwN2lUfWrmP++/Ir2O
         +hS6JJmHPlnZp2daQIV0gegApoc33kKJK2Zc4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744625932; x=1745230732;
        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=/ALhgfa8xDZiAvk4KRkCYhHo7ZCFxaNbuuSEWDWlOxI=;
        b=bklqnJ0hEAm9gVsi95E7LRTJQkQes3ElD+UeVywnBIXzSihOCLtzO3zBur7pngwM1t
         528PrK1FWhIJNsImX38TKlSjgu7UeDoWroD/t4fVToycUiaRj7/tFS0rNdH8HooMsT2U
         zxe86AzjjQtZFk0DiVstOnEtpfsTX7QQLOZfnQ0ARtWoU1vj0a41rTe3eFXQPxTap6d4
         uQSyG5rJzXsUHe9x8DMLAW9MhEiqgEuO8oX818LhRSHwYW0I9URb+pk31Z6U9UDcoH4r
         MIW9X5tKVrn0Zq9STKaF2m9HnzNQsBiSxJLP7pVgqilTYI9+42HTQkxRQ8JHBSIgkzRF
         I+TA==
X-Gm-Message-State: AOJu0YwCiknDRdysgDR621S+Bw6XP915fyr0o8cAdfuRnmoAzm+WGib8
	CT0NVx6jpeiiih0B4mmZlFyP0PpeIlD8l9al2FAdVC+LFG72ynRfncOXacjVIfhjCQgaE5T50lF
	GNtY=
X-Gm-Gg: ASbGnctz1bV3E6+Mq9OyDNgx/NLFZML+/vUqydnsRQDvG4kbeuk6W9XbJCuSTSAE8KU
	eYAb26A4B1E9FJsfXt9SH0sHqgO36xBPN5XOGnfvT54CBLyyRFYEeBx0AuTblEtUMudwsHLsFqB
	e0qdLksmn8tLGQcI3tSENyLNPsXZj1eioXMjUlTzw/6xfYe735F0sOaj9mOhY8BprGShCBZTlJi
	OrRSH9aFaHJYPcy9QFAiTNJTfHx835L6yRG7lM0WL1A77kYUpz7Vh+Kal3otlfEo/WTUhKfn0jH
	lXRnn6xvLHG1bAXTsMQrWjvjqpC1ATeLk0b+oQ55x2i6oTEwR0iC7ElqLQKYq27kn1Ii19h/jpq
	7GWlHlGZfazs4iHjJpMRqsWyG
X-Google-Smtp-Source: AGHT+IGUOhJ8hOJ+FLCHu2qubXmKfJOTDyLGchtAUpKntvTfEbGETJQ7zhU/aAU5N7j+PXHlWs1cbw==
X-Received: by 2002:a05:600c:1911:b0:43d:526:e0ce with SMTP id 5b1f17b1804b1-43f3a9ab03bmr80051015e9.21.1744625932482;
        Mon, 14 Apr 2025 03:18:52 -0700 (PDT)
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?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH v2 5/7] Adjust directory layout for rootfs.cpio.gz
Date: Mon, 14 Apr 2025 11:18:41 +0100
Message-Id: <20250414101843.2348330-6-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250414101843.2348330-1-andrew.cooper3@citrix.com>
References: <20250414101843.2348330-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

All tests using the rootfs currently modify it with:

  mkdir proc
  mkdir run
  mkdir srv
  mkdir sys
  rm var/run

This is because the rootfs doesn't have the correct top level directories.
Furthermore, dev is currently included when it oughtn't to be.

srv is easy.  It's an empty directory and can be included in PATHS.

dev, proc, run and sys are all mount points, which OpenRC knows how to
populate on boot.  Create only the top level directories in rootfs, without
`find` recursing into them.

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: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>

v2:
 * New
---
 scripts/alpine-rootfs.sh | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/scripts/alpine-rootfs.sh b/scripts/alpine-rootfs.sh
index 72c29e0a0a13..53547b5c5282 100755
--- a/scripts/alpine-rootfs.sh
+++ b/scripts/alpine-rootfs.sh
@@ -71,8 +71,11 @@ passwd -d "root" root
 cd /
 case $1 in
     cpio)
-        PATHS="bin dev etc home init lib mnt opt root sbin usr var"
-        find $PATHS -print0 | cpio -0 -H newc -o | gzip > "${COPYDIR}/rootfs.cpio.gz"
+        {
+            PATHS="bin etc home init lib mnt opt root sbin srv usr var"
+            find $PATHS -print0
+            echo -ne "dev\0proc\0run\0sys\0"
+        } | cpio -0 -H newc -o | gzip > "${COPYDIR}/rootfs.cpio.gz"
 
         # Print the contents for the build log
         zcat "${COPYDIR}/rootfs.cpio.gz" | cpio -tv
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Mon Apr 14 10:18:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 10:18:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.949560.1346114 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4Gu2-0006xB-Eo; Mon, 14 Apr 2025 10:18:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 949560.1346114; Mon, 14 Apr 2025 10: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 1u4Gu2-0006vl-61; Mon, 14 Apr 2025 10:18:58 +0000
Received: by outflank-mailman (input) for mailman id 949560;
 Mon, 14 Apr 2025 10: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=KxE1=XA=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u4Gu1-0006cA-4U
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 10:18:57 +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 de8dd637-1919-11f0-9ffb-bf95429c2676;
 Mon, 14 Apr 2025 12:18:54 +0200 (CEST)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-43d07ca6a80so19015125e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 14 Apr 2025 03:18:54 -0700 (PDT)
Received: from localhost.localdomain (host-92-26-98-202.as13285.net.
 [92.26.98.202]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43f233a2f08sm171340495e9.12.2025.04.14.03.18.53
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 14 Apr 2025 03:18:53 -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: de8dd637-1919-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744625934; x=1745230734; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=1BxgGCRwzO7L707eY7SgfaioeTDsDFCJ+wxG6hWaDZA=;
        b=PD6w7Aojk5gPSRkkcdC7CbeF+9iWhUT9uhmGHCQWXfC2zVyuwab0EMWh6Hz5Q0I+g2
         CQXLQM4VoyyYrY36PF2Qoo46HS+vBM38A/4uWWk/odJ1qMaaVwejiTdg6HzanhoF66DK
         QhrUgPamz3pmYBNRHY+kld/g4HHx4LVVSLMqM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744625934; x=1745230734;
        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=1BxgGCRwzO7L707eY7SgfaioeTDsDFCJ+wxG6hWaDZA=;
        b=dCOBbiM3dI+da6u9sSvPTYH1v/GPYPj6yOBFwMqX53xZJ06mP3J6+nEa7PB4u29k6u
         4dIqnv3im9KIvg97Fv3OByxMY/yp262n1o8URHxKeC16FuhmbSTgoTSqnjnuj2vMWAgA
         XQVz2/Y6JfoFu5flKfebom1q2lgOrVNvSep8vxoe48swnkvMhM40fuZ/lYjNCtZOj7GA
         ZfnZZdU59ZI0DhX0xNkID3/H3bJTRDzk5ub70wCrfMqe7s3ZvBTYkd5ximU2DVwx7DXM
         EpAcnJR3uk2snPjGBvwEMWh+j8bENOBx4DIuQldMfzNINhcIAQUjBARDJxtEHsV25FpI
         vfkg==
X-Gm-Message-State: AOJu0Yz4wBFd0/7SDpOB5qP8v4SkmndSIrgtMQVuw2P+UHD7LqgUwCfU
	10GPSSZP258QOT/x7b6YDdEWGgxI7XBHto2ve3PhAvhAQtV3TCeB9XgJwCnq71RiPOLB7aNzKi4
	nvJc=
X-Gm-Gg: ASbGncvB9NOmdGCuETRp7+Q8fevzRC8tXmgP2iSmiEZsmuqxSfuaD4I6rokbiLQpsSj
	HYe8NV1HhQRKtc1lSulEHMKS146/z2yiYuCvncAVrYN1gFv7oXU/Recq639vVAsJzeoRQf4QV9V
	oNAwKF09x7j76hMbM20d3Pd5HHCd3b7vr7v8O8PvtPayWGGTqZg52NgHyBjJjc7MdE0MQ39CQyL
	grX/a6H0o493cxWxoxx7ffGC+ZFkUbBQO/puuXLOL5nS1tN29aUyjjEdWD+KZPPBnY5DXFtbOtp
	wKVhFTXEVNB4aQiuPiqyaJtd4eJ5JCtRH3dOeeq5e/upVqeOrdqBdBnQ/j04xLT3JSHqI8HMaN+
	FJ8Cveuve+YZUuw==
X-Google-Smtp-Source: AGHT+IHDf0hhLAOJettuM+qp4C4T4LENm81nifm+m3sS3bM+cfNaYx/OsGEvtN1kW3nGhYlQDLnZpA==
X-Received: by 2002:a05:600c:34c5:b0:43d:649:4e50 with SMTP id 5b1f17b1804b1-43f3a93c74cmr104465045e9.13.1744625934073;
        Mon, 14 Apr 2025 03:18:54 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jason Andryuk <jason.andryuk@amd.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?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH v2 7/7] Package microcode for the x86 hardware runners
Date: Mon, 14 Apr 2025 11:18:43 +0100
Message-Id: <20250414101843.2348330-8-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250414101843.2348330-1-andrew.cooper3@citrix.com>
References: <20250414101843.2348330-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

They are all out of date, to different degrees.

Install jq into the x86_64 build container so we can parse the Github latest
release information in an acceptable way.

The resulting archive must be uncompressed, in order to work during early
boot.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Jason Andryuk <jason.andryuk@amd.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: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
---
 .gitlab-ci.yml                             |  4 +++
 images/alpine/3.18-x86_64-build.dockerfile |  3 ++
 scripts/x86-microcode.sh                   | 42 ++++++++++++++++++++++
 3 files changed, 49 insertions(+)
 create mode 100755 scripts/x86-microcode.sh

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index d70ddd99e529..74335363d5ed 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -64,6 +64,10 @@ linux-6.6.56-x86_64:
     ARGO_SHA: "705a7a8a624b42e13e655d3042059b8a85cdf6a3"
     ARGOEXEC_SHA: "d900429f6640acc6f68a3d3a4c945d7da60625d8"
 
+microcode-x86:
+  extends: .x86_64-artifacts
+  script: ./scripts/x86-microcode.sh
+
 #
 # The jobs below here are legacy and being phased out.
 #
diff --git a/images/alpine/3.18-x86_64-build.dockerfile b/images/alpine/3.18-x86_64-build.dockerfile
index eac0cda4fed3..c4ff30e1f138 100644
--- a/images/alpine/3.18-x86_64-build.dockerfile
+++ b/images/alpine/3.18-x86_64-build.dockerfile
@@ -27,6 +27,9 @@ RUN <<EOF
             openssl-dev
             perl
 
+            # Microcode
+            jq
+
             # Argo build deps
             autoconf
             automake
diff --git a/scripts/x86-microcode.sh b/scripts/x86-microcode.sh
new file mode 100755
index 000000000000..cb55a3bd2d52
--- /dev/null
+++ b/scripts/x86-microcode.sh
@@ -0,0 +1,42 @@
+#!/bin/bash
+
+set -eux -o pipefail
+
+WORKDIR="${PWD}"
+COPYDIR="${WORKDIR}/binaries"
+
+ROOTDIR="${WORKDIR}/root"
+UCODEDIR="${ROOTDIR}/kernel/x86/microcode"
+mkdir -p "${UCODEDIR}"
+
+#
+# Intel microcode comes from github
+#
+curl -fsSL https://api.github.com/repos/intel/Intel-Linux-Processor-Microcode-Data-Files/releases/latest > intel-latest.json
+TARBALL_URL="$(jq -r .tarball_url intel-latest.json)"
+curl -fsSL "${TARBALL_URL}" > intel-latest.tar
+tar xf intel-latest.tar --strip-components=1
+
+(
+    cd intel-ucode
+    cat 06-97-02 # adl-*
+    cat 06-8e-09 # kbl-*
+) > "${UCODEDIR}/GenuineIntel.bin"
+
+#
+# AMD microcode comes from linux-firmware
+#
+curl -fsSLO https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/amd-ucode/microcode_amd_fam17h.bin
+curl -fsSLO https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/amd-ucode/microcode_amd_fam19h.bin
+
+(
+    cat microcode_amd_fam17h.bin # zen2-*, xilinux-*-x86_64-*
+    cat microcode_amd_fam19h.bin # zen3p-*
+) > "${UCODEDIR}/AuthenticAMD.bin"
+
+# Package everything up.  It must be uncompressed
+cd "${ROOTDIR}"
+find . | cpio -R 0:0 -H newc -o > "${COPYDIR}/ucode.cpio"
+
+# Print the contents for the build log
+cpio -tv < "${COPYDIR}/ucode.cpio"
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Mon Apr 14 10:36:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 10:36:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.949646.1346131 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4HAQ-0006fk-OO; Mon, 14 Apr 2025 10:35:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 949646.1346131; Mon, 14 Apr 2025 10:35: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 1u4HAQ-0006fd-LG; Mon, 14 Apr 2025 10:35:54 +0000
Received: by outflank-mailman (input) for mailman id 949646;
 Mon, 14 Apr 2025 10:35: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=JTEa=XA=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1u4HAP-0006fX-57
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 10:35:53 +0000
Received: from fhigh-b3-smtp.messagingengine.com
 (fhigh-b3-smtp.messagingengine.com [202.12.124.154])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3bb3cde2-191c-11f0-9eae-5ba50f476ded;
 Mon, 14 Apr 2025 12:35:51 +0200 (CEST)
Received: from phl-compute-11.internal (phl-compute-11.phl.internal
 [10.202.2.51])
 by mailfhigh.stl.internal (Postfix) with ESMTP id 3A543254020A;
 Mon, 14 Apr 2025 06:35:49 -0400 (EDT)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-11.internal (MEProxy); Mon, 14 Apr 2025 06:35:49 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon,
 14 Apr 2025 06:35:47 -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: 3bb3cde2-191c-11f0-9eae-5ba50f476ded
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=fm2; t=1744626949;
	 x=1744713349; bh=DAX49eePCx3O4CfAqAUMUViHZ27+XcqSMrm4WvzhXs0=; b=
	BYi3S5gvMrZBTeEnBW9LFXCSMVZQy6Lr3QOfpsRaQGtc5cslmVcGIPMrZD0kV+Om
	JRFI4iUMogN+8xR0nf8LD9tyGY3P+3k27g4kxX/U/0wuq9xJcBtzBt9dlzzl8ETY
	Jbe2rd3rnPXwIwL3HiVzCkR2QtLtWYySgk7fwjCYDyN4hGhQ/Zqs2pvnxUlr584c
	HjX8mz1K4hX3u3lDgABSjncaT+w63RJgvBKl1jlNSDkNXs5wlfD7fimAse40tE8e
	FvBQHuc1+ptLukMOmsYKZAedsaR5bh6DbkRyrwNwBb/105j/kgI3fICip4z/fXhS
	b6VjHdEpS7A0b51Sg5Y68g==
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=fm2; t=
	1744626949; x=1744713349; bh=DAX49eePCx3O4CfAqAUMUViHZ27+XcqSMrm
	4WvzhXs0=; b=lJ8zC3gMWi4nv+MRfmm4rn/PoNsp4q2j4TuCPQk4+pHKjqFJjk0
	OKnEaO4IFHCvM9XCBidYWIvHAJCeKt8FIu1KUbSy9bnnrqscxLNSw5Z1H8F2gq29
	bsOw+l5FO9c6tCvISwhTwVqk/m8mE39a80etIS9tJSU/KYbom4pzOrtS6tNGmvqO
	Y7de8ZfQVBCRh5ZzK0KqAIuJmJubkPbd/sDzA/MTtcHegrLYfACR7U7zUB/tfGy4
	AGQY7cOig6++ePA5tTpQgCyA0k7dv4OLXVkhAr09o4krurokbYRfscPZNVOGO/3a
	wKC99xv9wrZDH+Cd7UDpn9gOdtS3YTT2+bg==
X-ME-Sender: <xms:BOX8Z8KXtu5OskKmAFA6GjGn3Kl1X_lBkckS0xQP1fiek-gQ-JBM9w>
    <xme:BOX8Z8IF5RrF-0S_HK8gVGuu-PklzwZFaSCWcGVUj6Se6zpVbBf5nNQ6tHDZYZvhk
    3ZeOchXpVgNug>
X-ME-Received: <xmr:BOX8Z8sX6LhUXgJLtOsJhmKhhT-u3LxjLWLEw4BxtpXwRVRnxXQJoPdiaZnq_l-4EJigM-xYURzTrAcQJtn0hOiXA72mhqWL3g>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvvddtfedvucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
    pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
    gvnhhtshculddquddttddmnecujfgurhepfffhvfevuffkfhggtggujgesghdtreertddt
    jeenucfhrhhomhepofgrrhgvkhcuofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuc
    eomhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecu
    ggftrfgrthhtvghrnhepgfduleetfeevhfefheeiteeliefhjefhleduveetteekveettd
    dvgeeuteefjedunecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhf
    rhhomhepmhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomh
    dpnhgspghrtghpthhtohepkedpmhhouggvpehsmhhtphhouhhtpdhrtghpthhtoheprghn
    ughrvgifrdgtohhophgvrhefsegtihhtrhhigidrtghomhdprhgtphhtthhopeigvghnqd
    guvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdprhgtphhtthhopegr
    nhhthhhonhihrdhpvghrrghrugesvhgrthgvshdrthgvtghhpdhrtghpthhtohepshhsth
    grsggvlhhlihhniheskhgvrhhnvghlrdhorhhgpdhrtghpthhtohepmhhitghhrghlrdho
    rhiivghlsegrmhgurdgtohhmpdhrtghpthhtoheptggrrhguohgvsegtrghrughovgdrtg
    homhdprhgtphhtthhopehjrghsohhnrdgrnhgurhihuhhksegrmhgurdgtohhmpdhrtghp
    thhtohepughpshhmihhthhesrghpvghrthhushhsohhluhhtihhonhhsrdgtohhm
X-ME-Proxy: <xmx:BOX8Z5bvOX75lk6zqZ88CCQ9D7XCfs8p-dFlZVLizajLv1Q7hx6bMA>
    <xmx:BOX8ZzaLd_oNiQEqRoyMmQEdCmOJAYlnHJmJkBEeyKh9kMsRkRIwbA>
    <xmx:BOX8Z1Bmp7YXDsTcGCoVWF15PhLVNutNCOws05xo5jvGLfBzRhg2MA>
    <xmx:BOX8Z5YBkE_XU4tfHG5bHwCTtMAc6DhPeTIv7SkuTqfysU97EcY6GA>
    <xmx:BeX8ZxwLDoYPhhKSeUZ0WJwP7ndyELP58FVuxXnhboJ4GUbXM93XklGt>
Feedback-ID: i1568416f:Fastmail
Date: Mon, 14 Apr 2025 12:35:44 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Jason Andryuk <jason.andryuk@amd.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>
Subject: Re: [PATCH v2 2/7] Overhaul how Argo is built and packged
Message-ID: <Z_zlAKOMjbrw_5bS@mail-itl>
References: <20250414101843.2348330-1-andrew.cooper3@citrix.com>
 <20250414101843.2348330-3-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="/LQ66Il45QxuqqrP"
Content-Disposition: inline
In-Reply-To: <20250414101843.2348330-3-andrew.cooper3@citrix.com>


--/LQ66Il45QxuqqrP
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Mon, 14 Apr 2025 12:35:44 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Jason Andryuk <jason.andryuk@amd.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>
Subject: Re: [PATCH v2 2/7] Overhaul how Argo is built and packged

On Mon, Apr 14, 2025 at 11:18:38AM +0100, Andrew Cooper wrote:
> --- a/scripts/build-linux.sh
> +++ b/scripts/build-linux.sh
> @@ -8,7 +8,7 @@ fi
>  set -ex -o pipefail
> =20
>  WORKDIR=3D"${PWD}"
> -COPYDIR=3D"${WORKDIR}/binaries/"
> +COPYDIR=3D"${WORKDIR}/binaries"

Is this change intentional? It has worse failure mode if "binaries" dir
wouldn't exist for some reason...

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmf85QAACgkQ24/THMrX
1yzCaAf/VCOS8gB09Qij6p0ubfIc5gZZPtu0pGc8NJfIOKGQaQ7JgIZXHHyvJl85
fTX+0pphIDVKJOe74+EDUgvftThE4DhzmWjZm8Qjj0WpdHeSxoDPy1v4tiE7Q3UF
aTixYrqnT+rtnSdbdJDagjxdzy1hF/jOXnJkineos6nwKGEhaoJk1XuwSqm+M+aV
ZbUcXEPAdRaUVEwE+NPX7mNdkMptwLQL6Tm5torlvAcLjNCe06BTo3/cMYRJG0eT
lxtz5Ybq63GOPfqp1+jU26mq29gIjoAmtDsMnJ6mRdsvWV7+ITTXcZ8n3BacT+up
bHqQ5Jy/fWzPxI0BcfiN6Qv5tjzBPg==
=llb9
-----END PGP SIGNATURE-----

--/LQ66Il45QxuqqrP--


From xen-devel-bounces@lists.xenproject.org Mon Apr 14 10:38:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 10:38:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.949656.1346140 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4HCh-0007E0-4T; Mon, 14 Apr 2025 10:38:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 949656.1346140; Mon, 14 Apr 2025 10:38: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 1u4HCh-0007Dt-1W; Mon, 14 Apr 2025 10:38:15 +0000
Received: by outflank-mailman (input) for mailman id 949656;
 Mon, 14 Apr 2025 10:38: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=KxE1=XA=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u4HCg-0007Dl-Cg
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 10:38:14 +0000
Received: from mail-wr1-x434.google.com (mail-wr1-x434.google.com
 [2a00:1450:4864:20::434])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 907a8081-191c-11f0-9ffb-bf95429c2676;
 Mon, 14 Apr 2025 12:38:12 +0200 (CEST)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-39c1efc4577so2099984f8f.0
 for <xen-devel@lists.xenproject.org>; Mon, 14 Apr 2025 03:38:12 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43f2338d802sm180872195e9.1.2025.04.14.03.38.11
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 14 Apr 2025 03:38: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: 907a8081-191c-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744627092; x=1745231892; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Acx+KO/gVIk6/mm+QAT0M8yMwsFMyYGRi1702nboM5E=;
        b=sknx1taDTMpKYaEsg7sn0VXY8YZwC/55FqKZQLRMuynhA0RI6FgGCnS7fZwGZ8/4Ew
         0hm1xbTMNN73aF5jKU3GVzQlwKGlwLvQt1KvtwfQnioAMY5UWNoKLqdp5mpqs5wBvjpo
         8CWFkpI2dUMh6inOAQi/F1dKb8DESBc0F0sP4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744627092; x=1745231892;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Acx+KO/gVIk6/mm+QAT0M8yMwsFMyYGRi1702nboM5E=;
        b=KOidZErVFTUbU/pyTqPhPMH5cOo7Be6XvXchlaItPuhs+75IuxryewSF4b9T1IWZr3
         bNzePshUwhV+edvZ+D10ziBeecW/sm5ruNmrMBgNX2XxAWE6KrEgRi+6Q4FlYTNsXZDO
         P3snSmNf7U3ue87k4gJfF496q70X5f28NKYi/CXoTiYsmu7Z8tsu9qOgu/nbK2yee/EC
         1tMIiSgLfaOtwIdNmQTLB7JFGVkafakpWNpR+cE0nV/VXKSZz87/htYQQrbSCVq7AoKg
         jnTVOhXXGb/iXIngE4eeeXnQ55Rmfl7UvPBMIkTmJFLwQp/IKFOR+bzuJkjQMxwvLce1
         7x8A==
X-Gm-Message-State: AOJu0Yy0V24Ywt6dfeIBnoHN6JaS6HRTWuCZHHTay0alXBc3DOXOBSwL
	SZWR5GT4cVwkoFTCjHtMOWprBKWwGozDp7c9VoC2HAZdPFMO0xF+rDYgE4BLCIQ=
X-Gm-Gg: ASbGncu3Lz4yhy2o4+W0H9aoueWNwepU+dlRqXRDhXahD/DFdBGepGx/uMG8ItwS2SD
	SNnr2wxb+8zHyYuH4ayuDvOsrreTktkVm62gZENYgpzjEmBlftQMrbSuerEkgIAStsXQ9+KEZ3I
	jsZryhp7/N5eBcfkuggjo3dTBEF/z/sdFlwrPx5vPBLdI1IZirc8KUKXxdnjrVHrlZL0gIUJHzM
	ETiNQZRA9WMT7gCmvOY25JTqrfxnuDQq9q9eklFsvSjcEDM5DKq+yzAbpYqoP31GIPKgUnOBCV5
	yXfWnahc86Ez8PdAns+DaUTjqYGAyP/xsHJMEpeWyYlKIiX7ySFcW1u5mVoWdJboP4N8m2CoCl7
	JXRcefg==
X-Google-Smtp-Source: AGHT+IFv6v3JPss2LbXIo/+KKQ5Ay5Z7CpxAV4j3OH0aMSt6mnYCgNmZCGkIofJh+LQ05uRvUfZvNw==
X-Received: by 2002:a5d:584a:0:b0:391:ab2:9e80 with SMTP id ffacd0b85a97d-39ea52176ccmr8556666f8f.24.1744627091710;
        Mon, 14 Apr 2025 03:38:11 -0700 (PDT)
Message-ID: <f556fcc3-463d-4e3d-af41-335841a44c12@citrix.com>
Date: Mon, 14 Apr 2025 11:38:10 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/7] Overhaul how Argo is built and packged
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.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>,
 Jason Andryuk <jason.andryuk@amd.com>,
 "Daniel P . Smith" <dpsmith@apertussolutions.com>
References: <20250414101843.2348330-1-andrew.cooper3@citrix.com>
 <20250414101843.2348330-3-andrew.cooper3@citrix.com>
 <Z_zlAKOMjbrw_5bS@mail-itl>
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: <Z_zlAKOMjbrw_5bS@mail-itl>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 14/04/2025 11:35 am, Marek Marczykowski-Górecki wrote:
> On Mon, Apr 14, 2025 at 11:18:38AM +0100, Andrew Cooper wrote:
>> --- a/scripts/build-linux.sh
>> +++ b/scripts/build-linux.sh
>> @@ -8,7 +8,7 @@ fi
>>  set -ex -o pipefail
>>  
>>  WORKDIR="${PWD}"
>> -COPYDIR="${WORKDIR}/binaries/"
>> +COPYDIR="${WORKDIR}/binaries"
> Is this change intentional? It has worse failure mode if "binaries" dir
> wouldn't exist for some reason...

Yes it is intentional.  It causes problems when we derive new variables
from COPYDIR.

binaries/ always exists.  It's in the base repo.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Apr 14 10:46:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 10:46:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.949670.1346151 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4HKs-000245-Ue; Mon, 14 Apr 2025 10:46:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 949670.1346151; Mon, 14 Apr 2025 10:46: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 1u4HKs-00023y-Ro; Mon, 14 Apr 2025 10:46:42 +0000
Received: by outflank-mailman (input) for mailman id 949670;
 Mon, 14 Apr 2025 10:46: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 1u4HKs-00023s-4C
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 10:46: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 1u4HKr-00Enc0-1g;
 Mon, 14 Apr 2025 10:46:41 +0000
Received: from [143.198.24.140] (helo=[100.81.22.8])
 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 1u4HKr-00CuVU-04;
 Mon, 14 Apr 2025 10:46: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=YsLdd4okGbFyUMZEaXCm9PK0tHAOyH+W/fWSDrZmedM=; b=KsVxwLY9JmHKRg2RVmN5Tw6Qz/
	D1GONdQWtqbNiZufl9VeXm6VAS05l1t67T3Ax/uqVgMGDYDr5Lkv9rIhLU7KL41QGpAQER4jeutZt
	XsbkbFF42vadTFQqt0R1KBhAAE5EIbOcr/l34h7Vl0ulpEwyoy5/he4EiB3nPvZpzlKw=;
Message-ID: <98feb427-7da5-47ff-831c-2b4bcb26c4b9@xen.org>
Date: Mon, 14 Apr 2025 19:46:30 +0900
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 0/2] Add support for MSI injection on Arm
Content-Language: en-GB
To: Mykyta Poturai <Mykyta_Poturai@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Anthony PERARD <anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <cover.1744621166.git.mykyta_poturai@epam.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <cover.1744621166.git.mykyta_poturai@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Mykyta,

On 14/04/2025 18:51, Mykyta Poturai wrote:
> This series adds the base support for MSI injection on Arm. This is
> needed to streamline virtio-pci interrupt triggering.
> 
> With this patches, MSIs can be triggered in guests by issuing the new
> DM op, inject_msi2. This op is similar to inject_msi, but it allows
> to specify the source id of the MSI.
> 
> We chose the approach of adding a new DM op instead of using the pad
> field of inject_msi because we have no clear way of distinguishing
> between set and unset pad fields. New implementations also adds flags
> field to clearly specify if the SBDF is set.
> 
> Patches were tested on QEMU with

[...]

> patches for ITS support for DomUs applied.

This means this series is unusable without external patches. Given this 
is adding a new DM operations, I think it would be more sensible to have 
the vITS support merged first. Then we can look at merging this series.

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Mon Apr 14 10:55:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 10:55:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.949686.1346160 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4HTk-0005A9-Q9; Mon, 14 Apr 2025 10:55:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 949686.1346160; Mon, 14 Apr 2025 10:55: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 1u4HTk-0005A2-NQ; Mon, 14 Apr 2025 10:55:52 +0000
Received: by outflank-mailman (input) for mailman id 949686;
 Mon, 14 Apr 2025 10:55:51 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=WQ6e=XA=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1u4HTj-00059w-7L
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 10:55:51 +0000
Received: from sender4-of-o50.zoho.com (sender4-of-o50.zoho.com
 [136.143.188.50]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 05366dcd-191f-11f0-9ffb-bf95429c2676;
 Mon, 14 Apr 2025 12:55:48 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 174462813434859.3700064685022;
 Mon, 14 Apr 2025 03:55: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: 05366dcd-191f-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; t=1744628138; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=Sa6jod9clnDXltSiK3j64TYbnRi16onrxpz+pQRkJU33jt8usrYPP5VJjKM8l7wc2E1d2Xk6FhyD6xKiTj0akr0pjpPIjUYd+lHyW85TgB5Xa3BG6wTkc9hDbUA6zH7xZZGj+3H5kANZFPuy0VEgFnonQ9tCjcTELgHY5Ewbrws=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1744628138; 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=3qxW2S6Y12elxpXa9zWIVpq0Hu/W0KkQgrU1ZIN4dYM=; 
	b=nNToWZhm0sQRF4AL5Gfj20arm3h9y+AeAaHY68KWha4MdBbhZqslSZAXtgDGF3HHxjpUoKQjco0WX9p7nnndnQq3bEyny7LriwnXOa3U50NoGriadXsB9/4fmX6edYSraw53t6PkjlkWVbrLZhSqVCII/fpX0TgEc1VOs4Pl24o=
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=1744628138;
	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=3qxW2S6Y12elxpXa9zWIVpq0Hu/W0KkQgrU1ZIN4dYM=;
	b=lUHcWHSV4dKibn6lz9Kj1F3Y5T6kFZExL9rskWBkHlPcScaLf9zTFLLHKysjBrdL
	oPqyE1S9r/CAYiQKfcREDuuxxROAQTmT0S4ZsJHBKR6YUI3iqxHCDvTdiZUS3OlvyiL
	NiOOec4rF5HF8lcbD+h9Iex/aYSEHoFo9RXRZAcQ=
Message-ID: <5bd8d3a7-6f2b-4bee-9bd5-6e7679de6fee@apertussolutions.com>
Date: Mon, 14 Apr 2025 06:55:33 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/7] Overhaul how Argo is built and packged
Content-Language: en-US
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: 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?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, Jason Andryuk <jason.andryuk@amd.com>
References: <20250414101843.2348330-1-andrew.cooper3@citrix.com>
 <20250414101843.2348330-3-andrew.cooper3@citrix.com>
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
Autocrypt: addr=dpsmith@apertussolutions.com; keydata=
 xsJuBFYrueARCACPWL3r2bCSI6TrkIE/aRzj4ksFYPzLkJbWLZGBRlv7HQLvs6i/K4y/b4fs
 JDq5eL4e9BdfdnZm/b+K+Gweyc0Px2poDWwKVTFFRgxKWq9R7McwNnvuZ4nyXJBVn7PTEn/Z
 G7D08iZg94ZsnUdeXfgYdJrqmdiWA6iX9u84ARHUtb0K4r5WpLUMcQ8PVmnv1vVrs/3Wy/Rb
 foxebZNWxgUiSx+d02e3Ad0aEIur1SYXXv71mqKwyi/40CBSHq2jk9eF6zmEhaoFi5+MMMgX
 X0i+fcBkvmT0N88W4yCtHhHQds+RDbTPLGm8NBVJb7R5zbJmuQX7ADBVuNYIU8hx3dF3AQCm
 601w0oZJ0jGOV1vXQgHqZYJGHg5wuImhzhZJCRESIwf+PJxik7TJOgBicko1hUVOxJBZxoe0
 x+/SO6tn+s8wKlR1Yxy8gYN9ZRqV2I83JsWZbBXMG1kLzV0SAfk/wq0PAppA1VzrQ3JqXg7T
 MZ3tFgxvxkYqUP11tO2vrgys+InkZAfjBVMjqXWHokyQPpihUaW0a8mr40w9Qui6DoJj7+Gg
 DtDWDZ7Zcn2hoyrypuht88rUuh1JuGYD434Q6qwQjUDlY+4lgrUxKdMD8R7JJWt38MNlTWvy
 rMVscvZUNc7gxcmnFUn41NPSKqzp4DDRbmf37Iz/fL7i01y7IGFTXaYaF3nEACyIUTr/xxi+
 MD1FVtEtJncZNkRn7WBcVFGKMAf+NEeaeQdGYQ6mGgk++i/vJZxkrC/a9ZXme7BhWRP485U5
 sXpFoGjdpMn4VlC7TFk2qsnJi3yF0pXCKVRy1ukEls8o+4PF2JiKrtkCrWCimB6jxGPIG3lk
 3SuKVS/din3RHz+7Sr1lXWFcGYDENmPd/jTwr1A1FiHrSj+u21hnJEHi8eTa9029F1KRfocp
 ig+k0zUEKmFPDabpanI323O5Tahsy7hwf2WOQwTDLvQ+eqQu40wbb6NocmCNFjtRhNZWGKJS
 b5GrGDGu/No5U6w73adighEuNcCSNBsLyUe48CE0uTO7eAL6Vd+2k28ezi6XY4Y0mgASJslb
 NwW54LzSSM0uRGFuaWVsIFAuIFNtaXRoIDxkcHNtaXRoQGFwZXJ0dXNzb2x1dGlvbnMuY29t
 PsJ6BBMRCAAiBQJWK7ngAhsjBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRBTc6WbYpR8
 KrQ9AP94+xjtFfJ8gj5c7PVx06Zv9rcmFUqQspZ5wSEkvxOuQQEAg6qEsPYegI7iByLVzNEg
 7B7fUG7pqWIfMqFwFghYhQzOwU0EViu54BAIAL6MXXNlrJ5tRUf+KMBtVz1LJQZRt/uxWrCb
 T06nZjnbp2UcceuYNbISOVHGXTzu38r55YzpkEA8eURQf+5hjtvlrOiHxvpD+Z6WcpV6rrMB
 kcAKWiZTQihW2HoGgVB3gwG9dCh+n0X5OzliAMiGK2a5iqnIZi3o0SeW6aME94bSkTkuj6/7
 OmH9KAzK8UnlhfkoMg3tXW8L6/5CGn2VyrjbB/rcrbIR4mCQ+yCUlocuOjFCJhBd10AG1IcX
 OXUa/ux+/OAV9S5mkr5Fh3kQxYCTcTRt8RY7+of9RGBk10txi94dXiU2SjPbassvagvu/hEi
 twNHms8rpkSJIeeq0/cAAwUH/jV3tXpaYubwcL2tkk5ggL9Do+/Yo2WPzXmbp8vDiJPCvSJW
 rz2NrYkd/RoX+42DGqjfu8Y04F9XehN1zZAFmCDUqBMa4tEJ7kOT1FKJTqzNVcgeKNBGcT7q
 27+wsqbAerM4A0X/F/ctjYcKwNtXck1Bmd/T8kiw2IgyeOC+cjyTOSwKJr2gCwZXGi5g+2V8
 NhJ8n72ISPnOh5KCMoAJXmCF+SYaJ6hIIFARmnuessCIGw4ylCRIU/TiXK94soilx5aCqb1z
 ke943EIUts9CmFAHt8cNPYOPRd20pPu4VFNBuT4fv9Ys0iv0XGCEP+sos7/pgJ3gV3pCOric
 p15jV4PCYQQYEQgACQUCViu54AIbDAAKCRBTc6WbYpR8Khu7AP9NJrBUn94C/3PeNbtQlEGZ
 NV46Mx5HF0P27lH3sFpNrwD/dVdZ5PCnHQYBZ287ZxVfVr4Zuxjo5yJbRjT93Hl0vMY=
In-Reply-To: <20250414101843.2348330-3-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ZohoMailClient: External

On 4/14/25 06:18, Andrew Cooper wrote:
> Right now, the argo artefacts are a pile of files which the test has to turn
> back into something which resembles a filesystem.  Furthermore, because we do
> not build modules for the main kernel, it is extra important to make sure that
> xen-argo.ko doesn't get out of sync.
> 
> Build argo conditionally as part of the linux artefact.  It's ~100kb all
> together, compared to ~14M for the kernel.
> 
> Produce a single argo.cpio.gz with xen-argo.ko in the standard location.
> Prune userspace down to just the executables and libraries.
> 
> This is cribbed from the existing scripts/x86_64-linux-argo.sh, which stays in
> place in the short term until Xen can be updated to use the new scheme.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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


From xen-devel-bounces@lists.xenproject.org Mon Apr 14 11:04:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 11:04:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.949699.1346171 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4HcS-0008Dn-Jr; Mon, 14 Apr 2025 11:04:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 949699.1346171; Mon, 14 Apr 2025 11:04: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 1u4HcS-0008Dg-HA; Mon, 14 Apr 2025 11:04:52 +0000
Received: by outflank-mailman (input) for mailman id 949699;
 Mon, 14 Apr 2025 11:04: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 1u4HcR-0008DZ-A3
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 11:04: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 1u4HcQ-00Eo8v-2p;
 Mon, 14 Apr 2025 11:04:50 +0000
Received: from [143.198.24.140] (helo=[100.81.22.8])
 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 1u4HcQ-00D037-1G;
 Mon, 14 Apr 2025 11:04: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=0gP/shSGUpzC8drtdlKzLA6kHVprm2PhBn6p+p9W21k=; b=3439mjXWgc/dY7lKo5aOXAJA7y
	70gTd0gw2hEtN7Vn2y4hMyFvWYm2yVpbSJhSFYdVa8lC28dhz9XUbnQwDZPwnhXpB/KXpEkDjs0S0
	HBEy/9X37gxDOEV3I3GVha84FSKnHbccYnkaZH1LKyNWjPtf+yzODB4lMhvO0czEARH0=;
Message-ID: <44f897c3-1ff4-43cb-b0d6-ae8a84a386e6@xen.org>
Date: Mon, 14 Apr 2025 20:04:44 +0900
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/2] arm: vgic: Add the ability to trigger MSIs from
 the Hypervisor
Content-Language: en-GB
To: Mykyta Poturai <Mykyta_Poturai@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <cover.1744621166.git.mykyta_poturai@epam.com>
 <3dba1b51984f24e36d5fbd81396ab7dd53d8ac95.1744621166.git.mykyta_poturai@epam.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <3dba1b51984f24e36d5fbd81396ab7dd53d8ac95.1744621166.git.mykyta_poturai@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

On 14/04/2025 18:51, Mykyta Poturai wrote:
> From: Mykyta Poturai <Mykyta_Poturai@epam.com>
> 
> Add the vgic_its_trigger_msi() function to the vgic interface. This
> function allows to inject MSIs from the Hypervisor to the guest.
> Which is useful for userspace PCI backend drivers.
> 
> Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
> ---
> v1->v2:
> * replace -1 with -ENOENT
> * reduce guest memory access in vgic_its_trigger_msi
> ---
>   xen/arch/arm/include/asm/vgic.h | 11 +++++++++++
>   xen/arch/arm/vgic-v3-its.c      | 19 +++++++++++++++++++
>   2 files changed, 30 insertions(+)
> 
> diff --git a/xen/arch/arm/include/asm/vgic.h b/xen/arch/arm/include/asm/vgic.h
> index e309dca1ad..3d8e3a8343 100644
> --- a/xen/arch/arm/include/asm/vgic.h
> +++ b/xen/arch/arm/include/asm/vgic.h
> @@ -318,6 +318,17 @@ extern bool vgic_migrate_irq(struct vcpu *old, struct vcpu *new, unsigned int ir
>   extern void vgic_check_inflight_irqs_pending(struct vcpu *v,
>                                                unsigned int rank, uint32_t r);
>   
> +#ifdef CONFIG_HAS_ITS
> +int vgic_its_trigger_msi(struct domain *d, paddr_t doorbell_address,
> +                                u32 devid, u32 eventid);
> +#else
> +static inline int vgic_its_trigger_msi(struct domain *d, paddr_t doorbell_address,
> +                                u32 devid, u32 eventid)
> +{
> +    return -EOPNOTSUPP;
> +}
> +#endif /* CONFIG_HAS_ITS */
> +
>   #endif /* !CONFIG_NEW_VGIC */
>   
>   /*** Common VGIC functions used by Xen arch code ****/
> diff --git a/xen/arch/arm/vgic-v3-its.c b/xen/arch/arm/vgic-v3-its.c
> index c65c1dbf52..be5bfe0d21 100644
> --- a/xen/arch/arm/vgic-v3-its.c
> +++ b/xen/arch/arm/vgic-v3-its.c
> @@ -1484,6 +1484,25 @@ static int vgic_v3_its_init_virtual(struct domain *d, paddr_t guest_addr,
>       return 0;
>   }
>   
> +int vgic_its_trigger_msi(struct domain *d, paddr_t doorbell_address,
> +                                u32 devid, u32 eventid)

Looking at how this is used in the next patch, you are assuming that 
devid == sbdf. However, given there is no support for guest vITS yet, I 
don't think we took a decision on whether the device ID match the SBDF.

This goes back to what I wrote in the cover letter. It seems that there 
are more work needed to be merged before this series.

Also coding style: we use uint32_t in newer code.

> +{
> +    struct pending_irq *pend;
> +    unsigned int vcpu_id;
> +
> +    pend = gicv3_its_get_event_pending_irq(d,doorbell_address, devid, eventid);

A couple of questions:

  1. What prevents pending_irq to be freed behind our back?
  2. Going back to my point about the missing guest ITS support, it is 
unclear how virtual device will work and whether we want QEMU to inject 
interrupts which belongs to a physical device.

coding style: Missing space before the comma.

> +    if ( !pend )
> +        return -ENOENT;
> +
> +    vcpu_id = ACCESS_ONCE(pend->lpi_vcpu_id);
> +    if ( vcpu_id >= d->max_vcpus )
> +          return -ENOENT;
> +
> +    vgic_inject_irq(d, d->vcpu[vcpu_id], pend->irq, true);
> +
> +    return 0;
> +}
> +
>   unsigned int vgic_v3_its_count(const struct domain *d)
>   {
>       struct host_its *hw_its;

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Mon Apr 14 11:09:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 11:09:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.949711.1346185 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4Hgc-0000Pp-Cd; Mon, 14 Apr 2025 11:09:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 949711.1346185; Mon, 14 Apr 2025 11:09: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 1u4Hgc-0000P1-6e; Mon, 14 Apr 2025 11:09:10 +0000
Received: by outflank-mailman (input) for mailman id 949711;
 Mon, 14 Apr 2025 11:09: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=KxE1=XA=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u4Hga-0000MU-Nw
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 11:09:08 +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 e220a06e-1920-11f0-9eae-5ba50f476ded;
 Mon, 14 Apr 2025 13:09:07 +0200 (CEST)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-43cf0d787eeso47883105e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 14 Apr 2025 04:09:07 -0700 (PDT)
Received: from localhost.localdomain (host-92-26-98-202.as13285.net.
 [92.26.98.202]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43f205ecb8dsm176820405e9.7.2025.04.14.04.09.05
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 14 Apr 2025 04:09: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: e220a06e-1920-11f0-9eae-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744628946; x=1745233746; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=wBsbtJWmb5Zjdqx5uqaCyBE8HBftWoPnuYYOOu+JrK4=;
        b=K7aXmDmdfjApTyw7xTUEavAFIsO/4b1tGBpc8NQzCloYdKyI55RGk2Hap00hPEzzNk
         hrsBoE27fv0dJYEEwYK2P344UY0HTYFVcRSj7WgjgioUCS27D4aj8KlpPrVP1ZoomMJf
         0KPhNRKCNuoTkZZrWW0XLCuvVFJrpIfR5NvqY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744628946; x=1745233746;
        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=wBsbtJWmb5Zjdqx5uqaCyBE8HBftWoPnuYYOOu+JrK4=;
        b=f7L0nPphXVWBofrwuzs000Rpgw568xHkafhVrjxEViokVn7Y47elC84JCz39ppihou
         LTAmZC7BQ5Wc6EJ+TI0FXz+VR+kccDMctyy1rRmQyQZIMRicm4Ww3QivTwoJLzQpGi9H
         mJkwGyfqFlKE9cxyV1krVmnUdc0m55hAI3P0DqrfJNn8mduXaqS0qWOAbHnn9fNEGhjE
         NdbifAMYvOEXSkx3gWE6It7aO4kaeVVQN0yFBlypGmw357d5KYWfa1vyP8yLE+J3UIaS
         FrwBNFoFe6MXk0q0iE1LRA89xhPA5k7ac663K4DKoMkAV0VuIqMJfTZ8jpO5XXjUo/Hk
         RcTQ==
X-Gm-Message-State: AOJu0YwtPidPi+wRoEa868zyNbrP2gpqRkZF4aj7R19NK1js/LUPKOeC
	3l6hvZ6GQV6QBRBlVN8RD8vT7B5LFsCdZJNCrUTxwdD1g9GOlmsIb+NJt9h4YtGS1httlvnMT5w
	CknM=
X-Gm-Gg: ASbGncscMhASDKVZuyk35YS9ydmcXCNem5CFzGLeFBAa/RXfKh259vPJzN47M/jq/8D
	Ze8HVsqsnruYfR387jkHDJXz0gBYOdteMNpbhxXaPD//xKACT3tfXWDXbl6DE1ahp05rCT7g096
	kba00eT09npyeyWuDO6Ti5m6O5DlkMdJN9egKr+RBDevr0aXZMZ7cDTzdDj8ohYZlcBMB15HTWw
	IzIEmSyKsKF0+zAYLn6UzNcDHlV/x4JT26ezpXEqwfhF1sphPRB8hx0WugcTmjcNd2mN4tjSmUF
	ur+4b69q9/VajeW2zaACDL332CSFP6leRlZwIGE0vSlNZWSEIEKm5F7uKBnbgBznrhxcy0EWW6m
	Fsx67CWMITwnfMw==
X-Google-Smtp-Source: AGHT+IGRrOJO2/s0qdC9+UYnzuhqfQU7WPJnHgdOGp2ljp2CYzPrhmFz5zMHaZtxGrbYYkmHkcz7Aw==
X-Received: by 2002:a05:600c:83c6:b0:439:643a:c8d5 with SMTP id 5b1f17b1804b1-43f3a7db13dmr114462585e9.0.1744628946440;
        Mon, 14 Apr 2025 04:09:06 -0700 (PDT)
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?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH v3 1/6] CI: Rename intermediate artefacts in qemu-* scripts
Date: Mon, 14 Apr 2025 12:08:58 +0100
Message-Id: <20250414110903.2355303-2-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250414110903.2355303-1-andrew.cooper3@citrix.com>
References: <20250414110903.2355303-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Right now, we have initrd.cpio.gz as domU, and initrd.tar.gz as the base for
dom0.

Rename initrd.cpio.gz to domU-rootfs.cpio.gz, and xen-rootfs.cpio.gz to
dom0-rootfs.cpio.gz to make it clearer which is which.  Rename the VM from
test to domU.

No functional change.

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: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>

v3:
 * New

https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/1765822634
---
 automation/scripts/qemu-alpine-x86_64.sh    | 16 ++++++++--------
 automation/scripts/qemu-smoke-dom0-arm64.sh | 16 ++++++++--------
 2 files changed, 16 insertions(+), 16 deletions(-)

diff --git a/automation/scripts/qemu-alpine-x86_64.sh b/automation/scripts/qemu-alpine-x86_64.sh
index 89bdb4df7dac..569bd766d31e 100755
--- a/automation/scripts/qemu-alpine-x86_64.sh
+++ b/automation/scripts/qemu-alpine-x86_64.sh
@@ -25,7 +25,7 @@ mount -t devtmpfs devtmpfs /dev
 chmod +x initrd/init
 # DomU rootfs
 cd initrd
-find . | cpio --create --format='newc' | gzip > ../initrd.cpio.gz
+find . | cpio -H newc -o | gzip > ../domU-rootfs.cpio.gz
 cd ..
 
 # initrd.tar.gz is Dom0 rootfs
@@ -38,15 +38,15 @@ mkdir srv
 mkdir sys
 rm var/run
 cp -ar ../dist/install/* .
-mv ../initrd.cpio.gz ./root
+mv ../domU-rootfs.cpio.gz ./root
 cp ../bzImage ./root
-echo "name=\"test\"
+echo "name=\"domU\"
 memory=512
 vcpus=1
 kernel=\"/root/bzImage\"
-ramdisk=\"/root/initrd.cpio.gz\"
+ramdisk=\"/root/domU-rootfs.cpio.gz\"
 extra=\"console=hvc0 root=/dev/ram0 rdinit=/bin/sh\"
-" > root/test.cfg
+" > root/domU.cfg
 echo "#!/bin/bash
 
 set -x
@@ -56,13 +56,13 @@ bash /etc/init.d/xencommons start
 
 xl list
 
-xl -vvv create -c /root/test.cfg
+xl -vvv create -c /root/domU.cfg
 
 " > etc/local.d/xen.start
 chmod +x etc/local.d/xen.start
 echo "rc_verbose=yes" >> etc/rc.conf
 # rebuild Dom0 rootfs
-find . |cpio -H newc -o|gzip > ../xen-rootfs.cpio.gz
+find . | cpio -H newc -o | gzip > ../dom0-rootfs.cpio.gz
 cd ../..
 
 cat >> binaries/pxelinux.0 << EOF
@@ -70,7 +70,7 @@ cat >> binaries/pxelinux.0 << EOF
 
 kernel xen console=com1 console_timestamps=boot
 module bzImage console=hvc0
-module xen-rootfs.cpio.gz
+module dom0-rootfs.cpio.gz
 boot
 EOF
 
diff --git a/automation/scripts/qemu-smoke-dom0-arm64.sh b/automation/scripts/qemu-smoke-dom0-arm64.sh
index 51d037b0003e..e8e49ded245a 100755
--- a/automation/scripts/qemu-smoke-dom0-arm64.sh
+++ b/automation/scripts/qemu-smoke-dom0-arm64.sh
@@ -24,7 +24,7 @@ mount -t devtmpfs devtmpfs /dev
 /bin/sh" > initrd/init
 chmod +x initrd/init
 cd initrd
-find . | cpio --create --format='newc' | gzip > ../initrd.cpio.gz
+find . | cpio -H newc -o | gzip > ../domU-rootfs.cpio.gz
 cd ..
 
 mkdir -p rootfs
@@ -36,15 +36,15 @@ mkdir srv
 mkdir sys
 rm var/run
 cp -ar ../dist/install/* .
-mv ../initrd.cpio.gz ./root
+mv ../domU-rootfs.cpio.gz ./root
 cp ../Image ./root
-echo "name=\"test\"
+echo "name=\"domU\"
 memory=512
 vcpus=1
 kernel=\"/root/Image\"
-ramdisk=\"/root/initrd.cpio.gz\"
+ramdisk=\"/root/domU-rootfs.cpio.gz\"
 extra=\"console=hvc0 root=/dev/ram0 rdinit=/bin/sh\"
-" > root/test.cfg
+" > root/domU.cfg
 echo "#!/bin/bash
 
 export LD_LIBRARY_PATH=/usr/local/lib
@@ -52,12 +52,12 @@ bash /etc/init.d/xencommons start
 
 xl list
 
-xl -vvv create -c /root/test.cfg
+xl -vvv create -c /root/domU.cfg
 
 " > etc/local.d/xen.start
 chmod +x etc/local.d/xen.start
 echo "rc_verbose=yes" >> etc/rc.conf
-find . |cpio -H newc -o|gzip > ../xen-rootfs.cpio.gz
+find . | cpio -H newc -o | gzip > ../dom0-rootfs.cpio.gz
 cd ../..
 
 # XXX QEMU looks for "efi-virtio.rom" even if it is unneeded
@@ -78,7 +78,7 @@ MEMORY_END="0xC0000000"
 DEVICE_TREE="virt-gicv2.dtb"
 XEN="xen"
 DOM0_KERNEL="Image"
-DOM0_RAMDISK="xen-rootfs.cpio.gz"
+DOM0_RAMDISK="dom0-rootfs.cpio.gz"
 XEN_CMD="console=dtuart dom0_mem=1024M console_timestamps=boot"
 
 NUM_DOMUS=0
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Mon Apr 14 11:09:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 11:09:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.949710.1346180 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4Hgc-0000Mr-2t; Mon, 14 Apr 2025 11:09:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 949710.1346180; Mon, 14 Apr 2025 11:09: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 1u4Hgc-0000Mk-0E; Mon, 14 Apr 2025 11:09:10 +0000
Received: by outflank-mailman (input) for mailman id 949710;
 Mon, 14 Apr 2025 11:09: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=KxE1=XA=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u4Hga-0000MT-Di
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 11:09:08 +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 e1741442-1920-11f0-9ffb-bf95429c2676;
 Mon, 14 Apr 2025 13:09:06 +0200 (CEST)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-399737f4fa4so2335637f8f.0
 for <xen-devel@lists.xenproject.org>; Mon, 14 Apr 2025 04:09:06 -0700 (PDT)
Received: from localhost.localdomain (host-92-26-98-202.as13285.net.
 [92.26.98.202]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43f205ecb8dsm176820405e9.7.2025.04.14.04.09.04
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 14 Apr 2025 04:09: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: e1741442-1920-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744628945; x=1745233745; 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=oVzvFZahYgkqmI6DD9MT4SQpAMzg6jUROOrj9BaBwVQ=;
        b=Od1mvcfAo2t74qZwnK6O7SZC7B3CmwbSZqZizmkXV6wyk30ozdvmt5nyi9CPGO/D9N
         7OI+4OSP9ZdL1iX00PYAADqki4LtH4MTN1XwrkQBSKcN+9DWTcE3HzAUaU7j/haQUb2/
         5syN5Nr9ooQCCoyFZD0dLcIygcakzc09jFtaY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744628945; x=1745233745;
        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=oVzvFZahYgkqmI6DD9MT4SQpAMzg6jUROOrj9BaBwVQ=;
        b=YYZfhUs+L3tFY0bhA64N1iVeXDKS0RM7jQv4MtYGbqOkyLNYY0pNIGdbxj1G9RjenP
         5r3M1mBAkQXd6E2JV7OdGMFk/bbvTyVcyESOQxpL8vzZUeeRx9CEMfHwoim3vGglhVtk
         GeFLpRooKC89wSISg2k6xRGnTLlcmvt3fHt5QfOyb3B5V1TiIyU58nGTH95zN7O7ziQd
         3d+MhaVHblAzUQXjC/1YwqBNTFMm2E9I5Z5KaYyqsNvbjUD1z99bqpW2mLWvKkrqJJYO
         dIRhv3N/796GJBaqvVad5Uk3VoKfeAwjtQoiOJsVJcgoZ77KxJUl+AN7AEfgQHx0upBU
         7NYg==
X-Gm-Message-State: AOJu0YxsOmdKWgiZpeInuTyuEmH/NZp9zacoRwe2l15fy5gheYC9jb0l
	pvds5Y15gsRhkkZ0uidf1HFNdPPRjoSfAg7KBan8eygiQ8qLuVW/C3A/GSJYHINv+lBESTdwzXm
	KYSA=
X-Gm-Gg: ASbGncuuAR7GWvxNeqKMjrNl1cyGvPbMK5RNyImhEMwf0Xwx8eHnuEUep/xg8R5FhXz
	nnZY8m2H4jQSQw6f4cBtf8xfbQR9rApRhjc2ja043h43y4f6xGqQf9mP5rybRkoWXeH/g2k3oj0
	mMg6NGELcyHyXAshYl5GVeyUCBZxKU53s8PoNntJMojLr/TPwmX4WCPkLzUiWDuafJLnOsA6uGM
	md220U8LyLw/yhRp/Tb05Z9rVLkKoWFIDuonulVieBLdX1EUYflYZ2NZuNIIUOAx+xYYbh4hhrX
	bU2xycFu1XA9ZkSEvP0Anv4tylYRbr913ziZBaSwQb5gaJQ08jVHbP20Jmsi5pVSDLfzBQtWyAW
	MXcG3UpdX3tPlc7LJmy0995a/
X-Google-Smtp-Source: AGHT+IH+P1+WtZlssKw0YXi4VggRwBNXTrJE+mFHWTRpo1zioAWf0qe6oTSBWzrjfPk9iQvtYZdDNg==
X-Received: by 2002:a05:6000:40e1:b0:39c:1257:cd40 with SMTP id ffacd0b85a97d-39eaaedd92dmr9262002f8f.58.1744628945435;
        Mon, 14 Apr 2025 04:09:05 -0700 (PDT)
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?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Jason Andryuk <jason.andryuk@amd.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>
Subject: [PATCH v3 0/6] CI: switch to CPIO archives
Date: Mon, 14 Apr 2025 12:08:57 +0100
Message-Id: <20250414110903.2355303-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 is an amalgamation of Marek's work and mine, tested at each stage on all
hardware runners.  See patches for details.

Andrew Cooper (3):
  CI: Rename intermediate artefacts in qemu-* scripts
  CI: Switch to new argo artefact
  CI: Include microcode for x86 hardware jobs

Marek Marczykowski-Górecki (3):
  CI: avoid repacking initrd as part of the test job
  CI: remove now unused alpine-3.18-arm64-rootfs job and its container
  CI: save toolstack artifact as cpio.gz

 automation/gitlab-ci/build.yaml               | 12 +---
 automation/gitlab-ci/test.yaml                | 16 +++--
 automation/scripts/build                      |  2 +-
 automation/scripts/qemu-alpine-x86_64.sh      | 32 ++++-----
 automation/scripts/qemu-smoke-dom0-arm64.sh   | 30 ++++-----
 .../scripts/qemu-smoke-dom0less-arm64.sh      | 17 ++---
 automation/scripts/qubes-x86-64.sh            | 37 +++++------
 .../scripts/xilinx-smoke-dom0-x86_64.sh       | 50 +++++++-------
 .../scripts/xilinx-smoke-dom0less-arm64.sh    | 33 ++++------
 .../alpine/3.18-arm64v8.dockerfile            | 66 -------------------
 10 files changed, 101 insertions(+), 194 deletions(-)
 delete mode 100644 automation/tests-artifacts/alpine/3.18-arm64v8.dockerfile


base-commit: f401eae6ec446671ad79deac84421d56808d43f2
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Mon Apr 14 11:09:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 11:09:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.949712.1346193 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4Hgc-0000UH-Lu; Mon, 14 Apr 2025 11:09:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 949712.1346193; Mon, 14 Apr 2025 11:09: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 1u4Hgc-0000S2-EW; Mon, 14 Apr 2025 11:09:10 +0000
Received: by outflank-mailman (input) for mailman id 949712;
 Mon, 14 Apr 2025 11:09: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=KxE1=XA=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u4Hgb-0000MU-DQ
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 11:09:09 +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 e31b2929-1920-11f0-9eae-5ba50f476ded;
 Mon, 14 Apr 2025 13:09:09 +0200 (CEST)
Received: by mail-wr1-x42a.google.com with SMTP id
 ffacd0b85a97d-39c30d9085aso2479598f8f.1
 for <xen-devel@lists.xenproject.org>; Mon, 14 Apr 2025 04:09:08 -0700 (PDT)
Received: from localhost.localdomain (host-92-26-98-202.as13285.net.
 [92.26.98.202]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43f205ecb8dsm176820405e9.7.2025.04.14.04.09.06
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 14 Apr 2025 04:09: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: e31b2929-1920-11f0-9eae-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744628948; x=1745233748; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=bcs0mTf05pW6RsmqLWTa0rpSF3biapjjXDW/JQKGWb0=;
        b=SVPckvHlozuZ/+7j/W06TA5YvWS8qtW4XpxFkTGZvU5fxfa/ArP7hxuonGF3gMP0vP
         byZwyJxI4WApi8zfJNB2Q5SktHSE6eo8JmDNIHMYqmPUUu6P78iMFf8c1ZSsFAe3j+em
         k8qZbaVRDFjL6azg4hHMxy98mZC5UCNqBpmqs=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744628948; x=1745233748;
        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=bcs0mTf05pW6RsmqLWTa0rpSF3biapjjXDW/JQKGWb0=;
        b=uzM+0Mm6B2Am0Rmmg1p5bGPzCmB68Jxr7v5RxL6fTzWdQ627We81s8XHnWlNEZO8D/
         udt8zpC5wrnaJJJQzbhsCY1RcZ+5bLTfK7NLgaw81axaviHOI3Q3BXhO1+AnT2Lt0AU3
         v3S2Y4fnEgm6dQQqLAMpXwCuIX9m8WvgYlmaQbzDXkfoOdxrqwuAS/iO/kqAW9q3cwp4
         jf1im3cY82q7LbdyVy6i8MlDRjfilO/dkkyDBFUAWtlCxowiP/GlWPQGv3ghQ/fIxBs2
         jq5qpE8ARGCwtMcN7Uqk6bHqcmuh5OihquJBVZxMVkslyva4kK0XZJ5Ryc/qEYr3fKAJ
         CU8w==
X-Gm-Message-State: AOJu0YyGznQwRyh3mzYUJwcytIu5ukbBARWCT/lxZeq3X7q8nBVT5xSl
	ca+AWHbkJsmJEF2CPtDcBIThXrS+T+lxRv1ftTQdm2a+B2y/xKOJE9sZ/G9AFUfUwYw3gGDwWqq
	lKjU=
X-Gm-Gg: ASbGncucxAGTHm41UkQQpURQ/JE/9m5T3oHShQQX49nQqPOpv0nk3sUY3XWQ2H+PJCT
	fShsDZhxkSXJQYfprfgsNvAiR66a6QmhqurDz8QQKeGRGPYaLuvE40RoPHB3zGIEa1YI6mMcNdE
	IWwPEQjTlM/nEE9Dks2pdvm494UhX5ijw3O2TEE776bXDdSfzoR96+7jQc7SZ/Jii8ljnsgza6m
	LBqCRTo4Hdwk3x7RgLojBRmG2vrPJ9/KneW1rKFY8SvzJoi61XYDVoTgya5kVR9tLOqHMXbdMs3
	h5b8fQsdlMAZ64xQt+7Zs7mCcOu7zgMK1BLxam73BYI61zbpKLDMLObIveYcKQzkx2GxiMwcIX8
	H+D44MbqrK+gLMQ==
X-Google-Smtp-Source: AGHT+IHtaAmj4fRrSlvKNznngr25ISRl0Roii0RJOq2qhjEzvgcD98P9wOdKRiTnBj/DSjmDt9NCcw==
X-Received: by 2002:a5d:584f:0:b0:39c:1257:c7a2 with SMTP id ffacd0b85a97d-39eaaecae92mr9048984f8f.58.1744628948004;
        Mon, 14 Apr 2025 04:09:08 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	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>
Subject: [PATCH v3 2/6] CI: avoid repacking initrd as part of the test job
Date: Mon, 14 Apr 2025 12:08:59 +0100
Message-Id: <20250414110903.2355303-3-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250414110903.2355303-1-andrew.cooper3@citrix.com>
References: <20250414110903.2355303-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>

Use the new test-artifacts which provide rootfs.cpio.gz rather than
initrd.tar.gz.  rootfs.cpio.gz also has all the necessary top-level
directories, and includes the rc_verbose setting, so these modifications can
be dropped.

Having that, do not repack the whole initrd, but only pack modified
files and rely on Linux handling of concatenated archives.
This allows packing just test-related files (which includes the whole
toolstack), instead of the whole initrd.

For xilinx-smoke-dom0-x86_64.sh, this involves instructing grub not to unzip
the archive, as doing so corrupts it.

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Michal Orzel <michal.orzel@amd.com>
CC: Doug Goldstein <cardoe@cardoe.com>
CC: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>

v3:
 * Tested (bugfixed) on xilinx-* runners
 * Rearrange logic so the order of concantination is clearer (relevant for
   subsequent patches)

https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/1765676583
---
 automation/gitlab-ci/test.yaml                |  8 +++--
 automation/scripts/qemu-alpine-x86_64.sh      | 16 ++++------
 automation/scripts/qemu-smoke-dom0-arm64.sh   | 14 ++++----
 .../scripts/qemu-smoke-dom0less-arm64.sh      | 15 ++++-----
 automation/scripts/qubes-x86-64.sh            | 32 +++++++------------
 .../scripts/xilinx-smoke-dom0-x86_64.sh       | 27 ++++++++--------
 .../scripts/xilinx-smoke-dom0less-arm64.sh    | 30 +++++++----------
 7 files changed, 61 insertions(+), 81 deletions(-)

diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
index 59a2de28c864..51229cbe561d 100644
--- a/automation/gitlab-ci/test.yaml
+++ b/automation/gitlab-ci/test.yaml
@@ -11,7 +11,9 @@
   - project: xen-project/hardware/test-artifacts
     job: linux-6.6.86-arm64
     ref: master
-  - alpine-3.18-arm64-rootfs-export
+  - project: xen-project/hardware/test-artifacts
+    job: alpine-3.18-arm64-rootfs
+    ref: master
   - qemu-system-aarch64-6.0.0-arm64-export
 
 .arm32-test-needs: &arm32-test-needs
@@ -22,7 +24,7 @@
     job: linux-6.6.56-x86_64
     ref: master
   - project: xen-project/hardware/test-artifacts
-    job: x86_64-rootfs-alpine-3.18
+    job: alpine-3.18-x86_64-rootfs
     ref: master
 
 .qemu-arm64:
@@ -243,7 +245,7 @@ xilinx-smoke-dom0-x86_64-gcc-debug-argo:
       job: x86_64-kernel-linux-6.6.56
       ref: master
     - project: xen-project/hardware/test-artifacts
-      job: x86_64-rootfs-alpine-3.18
+      job: alpine-3.18-x86_64-rootfs
       ref: master
     - project: xen-project/hardware/test-artifacts
       job: x86_64-argo-linux-6.6.56
diff --git a/automation/scripts/qemu-alpine-x86_64.sh b/automation/scripts/qemu-alpine-x86_64.sh
index 569bd766d31e..c7dd12197862 100755
--- a/automation/scripts/qemu-alpine-x86_64.sh
+++ b/automation/scripts/qemu-alpine-x86_64.sh
@@ -28,16 +28,14 @@ cd initrd
 find . | cpio -H newc -o | gzip > ../domU-rootfs.cpio.gz
 cd ..
 
-# initrd.tar.gz is Dom0 rootfs
+# Dom0 rootfs
+cp rootfs.cpio.gz dom0-rootfs.cpio.gz
+
+# test-local configuration
 mkdir -p rootfs
 cd rootfs
-tar xvzf ../initrd.tar.gz
-mkdir proc
-mkdir run
-mkdir srv
-mkdir sys
-rm var/run
 cp -ar ../dist/install/* .
+mkdir -p root etc/local.d
 mv ../domU-rootfs.cpio.gz ./root
 cp ../bzImage ./root
 echo "name=\"domU\"
@@ -60,9 +58,7 @@ xl -vvv create -c /root/domU.cfg
 
 " > etc/local.d/xen.start
 chmod +x etc/local.d/xen.start
-echo "rc_verbose=yes" >> etc/rc.conf
-# rebuild Dom0 rootfs
-find . | cpio -H newc -o | gzip > ../dom0-rootfs.cpio.gz
+find . | cpio -H newc -o | gzip >> ../dom0-rootfs.cpio.gz
 cd ../..
 
 cat >> binaries/pxelinux.0 << EOF
diff --git a/automation/scripts/qemu-smoke-dom0-arm64.sh b/automation/scripts/qemu-smoke-dom0-arm64.sh
index e8e49ded245a..c0cf61ff8f7b 100755
--- a/automation/scripts/qemu-smoke-dom0-arm64.sh
+++ b/automation/scripts/qemu-smoke-dom0-arm64.sh
@@ -27,15 +27,14 @@ cd initrd
 find . | cpio -H newc -o | gzip > ../domU-rootfs.cpio.gz
 cd ..
 
+# Dom0 rootfs
+cp rootfs.cpio.gz dom0-rootfs.cpio.gz
+
+# test-local configuration
 mkdir -p rootfs
 cd rootfs
-tar xvzf ../initrd.tar.gz
-mkdir proc
-mkdir run
-mkdir srv
-mkdir sys
-rm var/run
 cp -ar ../dist/install/* .
+mkdir -p etc/local.d root
 mv ../domU-rootfs.cpio.gz ./root
 cp ../Image ./root
 echo "name=\"domU\"
@@ -56,8 +55,7 @@ xl -vvv create -c /root/domU.cfg
 
 " > etc/local.d/xen.start
 chmod +x etc/local.d/xen.start
-echo "rc_verbose=yes" >> etc/rc.conf
-find . | cpio -H newc -o | gzip > ../dom0-rootfs.cpio.gz
+find . | cpio -H newc -o | gzip >> ../dom0-rootfs.cpio.gz
 cd ../..
 
 # XXX QEMU looks for "efi-virtio.rom" even if it is unneeded
diff --git a/automation/scripts/qemu-smoke-dom0less-arm64.sh b/automation/scripts/qemu-smoke-dom0less-arm64.sh
index f72d20936181..8e939f0b7214 100755
--- a/automation/scripts/qemu-smoke-dom0less-arm64.sh
+++ b/automation/scripts/qemu-smoke-dom0less-arm64.sh
@@ -114,16 +114,14 @@ cd initrd
 find . | cpio --create --format='newc' | gzip > ../binaries/initrd
 cd ..
 
-# DOM0 rootfs
+# Dom0 rootfs
+cp binaries/rootfs.cpio.gz binaries/dom0-rootfs.cpio.gz
+
+# test-local configuration
 mkdir -p rootfs
 cd rootfs
-tar xzf ../binaries/initrd.tar.gz
-mkdir proc
-mkdir run
-mkdir srv
-mkdir sys
-rm var/run
 cp -ar ../binaries/dist/install/* .
+mkdir -p etc/local.d
 
 echo "#!/bin/bash
 
@@ -142,8 +140,7 @@ xl network-attach 1 type=vif
 ${dom0_check}
 " > etc/local.d/xen.start
 chmod +x etc/local.d/xen.start
-echo "rc_verbose=yes" >> etc/rc.conf
-find . | cpio -H newc -o | gzip > ../binaries/dom0-rootfs.cpio.gz
+find . | cpio -H newc -o | gzip >> ../binaries/dom0-rootfs.cpio.gz
 cd ..
 
 # ImageBuilder
diff --git a/automation/scripts/qubes-x86-64.sh b/automation/scripts/qubes-x86-64.sh
index c4be71464246..e2376cb51cb4 100755
--- a/automation/scripts/qubes-x86-64.sh
+++ b/automation/scripts/qubes-x86-64.sh
@@ -164,16 +164,13 @@ ${domU_extra_config}
 "
 
 if [ -n "$domU_check" ]; then
-    # DomU
+    # DomU rootfs
+    cp binaries/rootfs.cpio.gz binaries/domU-rootfs.cpio.gz
+
+    # test-local configuration
     mkdir -p rootfs
     cd rootfs
-    # fakeroot is needed to preserve device nodes in rootless podman container
-    fakeroot -s ../fakeroot-save tar xzf ../binaries/initrd.tar.gz
-    mkdir proc
-    mkdir run
-    mkdir srv
-    mkdir sys
-    rm var/run
+    mkdir -p etc/local.d
     echo "#!/bin/sh
 
 echo 8 > /proc/sys/kernel/printk
@@ -181,26 +178,22 @@ echo 8 > /proc/sys/kernel/printk
 ${domU_check}
 " > etc/local.d/xen.start
     chmod +x etc/local.d/xen.start
-    echo "rc_verbose=yes" >> etc/rc.conf
     echo "domU Welcome to Alpine Linux
 Kernel \r on an \m (\l)
 
 " > etc/issue
-    find . | fakeroot -i ../fakeroot-save cpio -H newc -o | gzip > ../binaries/domU-rootfs.cpio.gz
+    find . | cpio -H newc -o | gzip >> ../binaries/domU-rootfs.cpio.gz
     cd ..
     rm -rf rootfs
 fi
 
-# DOM0 rootfs
+# Dom0 rootfs
+cp binaries/rootfs.cpio.gz binaries/dom0-rootfs.cpio.gz
+
+# test-local configuration
 mkdir -p rootfs
 cd rootfs
-fakeroot -s ../fakeroot-save tar xzf ../binaries/initrd.tar.gz
-mkdir boot
-mkdir proc
-mkdir run
-mkdir srv
-mkdir sys
-rm var/run
+mkdir -p boot etc/local.d
 cp -ar ../binaries/dist/install/* .
 cp -ar ../binaries/tests .
 cp -a ../automation/scripts/run-tools-tests tests/
@@ -237,7 +230,6 @@ fi
 chmod +x etc/local.d/xen.start
 echo "$domU_config" > etc/xen/domU.cfg
 
-echo "rc_verbose=yes" >> etc/rc.conf
 echo "XENCONSOLED_TRACE=all" >> etc/default/xencommons
 echo "QEMU_XEN=/bin/false" >> etc/default/xencommons
 mkdir -p var/log/xen/console
@@ -245,7 +237,7 @@ cp ../binaries/bzImage boot/vmlinuz
 if [ -n "$domU_check" ]; then
     cp ../binaries/domU-rootfs.cpio.gz boot/initrd-domU
 fi
-find . | fakeroot -i ../fakeroot-save cpio -H newc -o | gzip > ../binaries/dom0-rootfs.cpio.gz
+find . | cpio -H newc -o | gzip >> ../binaries/dom0-rootfs.cpio.gz
 cd ..
 
 
diff --git a/automation/scripts/xilinx-smoke-dom0-x86_64.sh b/automation/scripts/xilinx-smoke-dom0-x86_64.sh
index 7e5382931b85..1fc52d78db16 100755
--- a/automation/scripts/xilinx-smoke-dom0-x86_64.sh
+++ b/automation/scripts/xilinx-smoke-dom0-x86_64.sh
@@ -80,6 +80,7 @@ argo-exec -l -p 28333 -- /bin/echo
 "
 copy_dom0_files ()
 {
+    mkdir -p root usr/local/lib usr/local/bin
     cp "${WORKDIR}/binaries/xen-argo.ko" "root/"
     cp -ar "${WORKDIR}/binaries/lib/"* "usr/local/lib/"
     cp "${WORKDIR}/binaries/argo-exec" "usr/local/bin/"
@@ -89,12 +90,13 @@ else
     fatal "Unknown test: ${TEST}"
 fi
 
-# Set up domU rootfs.
+# DomU rootfs
+cp binaries/rootfs.cpio.gz binaries/domU-rootfs.cpio.gz
+
+# test-local configuration
 mkdir -p rootfs
 cd rootfs
-tar xzf ../binaries/initrd.tar.gz
-mkdir proc run srv sys
-rm var/run
+mkdir -p etc/local.d
 echo "#!/bin/sh
 set -x
 export LD_LIBRARY_PATH=/usr/local/lib
@@ -102,22 +104,22 @@ PATH=/usr/local/bin:/usr/local/sbin:\$PATH
 ${DOMU_CMD}
 " > etc/local.d/xen.start
 chmod +x etc/local.d/xen.start
-echo "rc_verbose=yes" >> etc/rc.conf
 echo "domU Welcome to Alpine Linux
 Kernel \r on an \m (\l)
 
 " > etc/issue
 copy_domU_files
-find . | cpio -H newc -o | gzip > ../binaries/domU-rootfs.cpio.gz
+find . | cpio -H newc -o | gzip >> ../binaries/domU-rootfs.cpio.gz
 cd ..
 rm -rf rootfs
 
-# Set up dom0 rootfs.
+# Dom0 rootfs
+cp binaries/rootfs.cpio.gz binaries/dom0-rootfs.cpio.gz
+
+# test-local configuration
 mkdir -p rootfs
 cd rootfs
-tar xzf ../binaries/initrd.tar.gz
-mkdir boot proc run srv sys
-rm var/run
+mkdir -p boot etc/local.d
 cp -ar ../binaries/dist/install/* .
 echo "#!/bin/bash
 set -x
@@ -127,14 +129,13 @@ ${DOM0_CMD}
 " > etc/local.d/xen.start
 chmod +x etc/local.d/xen.start
 echo "${DOMU_CFG}${DOMU_CFG_EXTRA}" > etc/xen/domU.cfg
-echo "rc_verbose=yes" >> etc/rc.conf
 echo "XENCONSOLED_TRACE=all" >> etc/default/xencommons
 echo "QEMU_XEN=/bin/false" >> etc/default/xencommons
 mkdir -p var/log/xen/console
 cp ../binaries/bzImage boot/vmlinuz
 cp ../binaries/domU-rootfs.cpio.gz boot/initrd-domU
 copy_dom0_files
-find . | cpio -H newc -o | gzip > ../binaries/dom0-rootfs.cpio.gz
+find . | cpio -H newc -o | gzip >> ../binaries/dom0-rootfs.cpio.gz
 cd ..
 
 # Load software into TFTP server directory.
@@ -147,7 +148,7 @@ echo "
 net_default_server=10.0.6.1
 multiboot2 (tftp)/${TEST_BOARD}/xen ${XEN_CMDLINE} sync_console
 module2 (tftp)/${TEST_BOARD}/vmlinuz console=hvc0 root=/dev/ram0 earlyprintk=xen
-module2 (tftp)/${TEST_BOARD}/initrd-dom0
+module2 --nounzip (tftp)/${TEST_BOARD}/initrd-dom0
 boot
 " > ${TFTP}/${TEST_BOARD}/grub.cfg
 
diff --git a/automation/scripts/xilinx-smoke-dom0less-arm64.sh b/automation/scripts/xilinx-smoke-dom0less-arm64.sh
index 3e1fcf6bf93c..a3031ecab0dc 100755
--- a/automation/scripts/xilinx-smoke-dom0less-arm64.sh
+++ b/automation/scripts/xilinx-smoke-dom0less-arm64.sh
@@ -38,36 +38,31 @@ echo \"${passed}\"
 "
 fi
 
-# DomU
+# DomU rootfs
+cp binaries/rootfs.cpio.gz binaries/domU-rootfs.cpio.gz
+
+# test-local configuration
 mkdir -p rootfs
 cd rootfs
-tar xzf ../binaries/initrd.tar.gz
-mkdir proc
-mkdir run
-mkdir srv
-mkdir sys
-rm var/run
+mkdir -p etc/local.d
 echo "#!/bin/sh
 
 ${domU_check}
 /bin/sh" > etc/local.d/xen.start
 chmod +x etc/local.d/xen.start
-echo "rc_verbose=yes" >> etc/rc.conf
-find . | cpio -H newc -o | gzip > ../binaries/domU-rootfs.cpio.gz
+find . | cpio -H newc -o | gzip >> ../binaries/domU-rootfs.cpio.gz
 cd ..
 rm -rf rootfs
 
-# DOM0 rootfs
+# Dom0 rootfs
+cp binaries/rootfs.cpio.gz binaries/dom0-rootfs.cpio.gz
+
+# test-local configuration
 mkdir -p rootfs
 cd rootfs
-tar xzf ../binaries/initrd.tar.gz
-mkdir proc
-mkdir run
-mkdir srv
-mkdir sys
-rm var/run
 cp -ar ../binaries/dist/install/* .
 
+mkdir -p etc/local.d
 echo "#!/bin/bash
 
 export LD_LIBRARY_PATH=/usr/local/lib
@@ -78,8 +73,7 @@ bash /etc/init.d/xencommons start
 ${dom0_check}
 " > etc/local.d/xen.start
 chmod +x etc/local.d/xen.start
-echo "rc_verbose=yes" >> etc/rc.conf
-find . | cpio -H newc -o | gzip > ../binaries/dom0-rootfs.cpio.gz
+find . | cpio -H newc -o | gzip >> ../binaries/dom0-rootfs.cpio.gz
 cd ..
 
 
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Mon Apr 14 11:09:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 11:09:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.949713.1346210 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4Hgd-00012A-Vb; Mon, 14 Apr 2025 11:09:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 949713.1346210; Mon, 14 Apr 2025 11: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 1u4Hgd-00011r-Rz; Mon, 14 Apr 2025 11:09:11 +0000
Received: by outflank-mailman (input) for mailman id 949713;
 Mon, 14 Apr 2025 11: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=KxE1=XA=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u4Hgc-0000MU-Dj
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 11:09:10 +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 e3718eb5-1920-11f0-9eae-5ba50f476ded;
 Mon, 14 Apr 2025 13:09:09 +0200 (CEST)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-43ea40a6e98so36430705e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 14 Apr 2025 04:09:09 -0700 (PDT)
Received: from localhost.localdomain (host-92-26-98-202.as13285.net.
 [92.26.98.202]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43f205ecb8dsm176820405e9.7.2025.04.14.04.09.08
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 14 Apr 2025 04:09: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: e3718eb5-1920-11f0-9eae-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744628949; x=1745233749; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=MwMsxn6Jd7jyTrnz0TEyUCElfwL1OHRjwA8ZnK04oco=;
        b=LSJ8BL4q0PdPq0e/61LQ0TfrkCTEbfTt4jpJQk8S1aWELBcd/TZ+fumzvTS6+Dt+HQ
         grmsX7AC7A/mAmjI+lH5uvioNr3FN7004poOaqMVsFG0dTgT+Gqm2lBNXm0aTj2twMq/
         WZNxOdW1aKGB7fLxnOzctwICQoHnsDM14X8g0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744628949; x=1745233749;
        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=MwMsxn6Jd7jyTrnz0TEyUCElfwL1OHRjwA8ZnK04oco=;
        b=EAnDZYzChRGqgYVEz4/kZfQ/eJkDWIQZOiuYL+5YzcKJnpmM0SPzb68RMG+DeII6iy
         j32PC4pf/U5p5N1pNeMZ5hO4xeZVJgMHexTgLorhLYyaPMP4t/b/4WSK62uFM/1QRzFE
         f0kqRBGCYBRXRo9ThyxmvEs39Q3HNsEO5Pvo7X8LYZTcjVb1wGi5hFR90T5i4P0OnbCX
         /CuPwZjmAsFHa7V+5tAu6atgyLwuXPw1q7UGo0nRQLlXteNxfEzrakzfmXmuwKDV96Z6
         mvcXoVcmzwE7aErWdli2rRSldP6YkUXbCbh/QkD0VOlnA8tK8PWGL4V8mzK+rJNnQwWN
         oVaQ==
X-Gm-Message-State: AOJu0YzR0l+Oe/1et2qurbW+JuVORaVwjCGAi4FyDKt4lrKbS9dGjqnl
	bEf9dJdzRIBwZ/eAAcwfpkutPa3/SF297QtHx89M2FQecMvGL7IMqIxB6jOOS4iEnsXxhjlG/q8
	QbFQ=
X-Gm-Gg: ASbGnctNatGbM70J+j7Nx6BS/Oo16ea4bkv3rH7urNJ1VythK9+7f27m6mDFHeSBwoc
	Q+AfKPFsSl4sQGZM4GN7PHjYu83Ja0hHH+tqj2SrKyLIHCW62Er1Fh2+18O/MkfFDNRz5bsMbY2
	48jjDmKPCI9uKOdiy6HE+oKs9Ctzwa8KojkwM7N43zfDuxg59o1A8pbLzciIpxYWtsJJJlOH5os
	cCR2/pyN8aCe8H/ruYTjim/NAFP9n+Z9BEggMSAkOX11YlQiUlD4PwgWoBhCtGJoVXIiSeoNh26
	sRfl9xd4hjKg0jXL5YDnIHdBMH6f0bQ56qWCO6HkuJlx1yfjoDFPUGvGNfMm1T9M8NuAZIIL+Tf
	mJ2YBLfgmn639Sg==
X-Google-Smtp-Source: AGHT+IFnAY3HNdb1GkemiFAV4NeEsPcpgR1Y2eChTj17M0J4//b9qAZzHqAbfJ4PdYYIgohtWyCBrg==
X-Received: by 2002:a05:600c:500d:b0:43c:ed61:2c26 with SMTP id 5b1f17b1804b1-43f3a959599mr121393665e9.17.1744628948708;
        Mon, 14 Apr 2025 04:09:08 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	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>
Subject: [PATCH v3 3/6] CI: remove now unused alpine-3.18-arm64-rootfs job and its container
Date: Mon, 14 Apr 2025 12:09:00 +0100
Message-Id: <20250414110903.2355303-4-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250414110903.2355303-1-andrew.cooper3@citrix.com>
References: <20250414110903.2355303-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>

This got moved to test-artifacts.

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Reviewed-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: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
---
 automation/gitlab-ci/build.yaml               | 11 ----
 .../alpine/3.18-arm64v8.dockerfile            | 66 -------------------
 2 files changed, 77 deletions(-)
 delete mode 100644 automation/tests-artifacts/alpine/3.18-arm64v8.dockerfile

diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
index 40dcd31f1bce..1b82b359d01f 100644
--- a/automation/gitlab-ci/build.yaml
+++ b/automation/gitlab-ci/build.yaml
@@ -264,17 +264,6 @@
 
 # Arm test artifacts
 
-alpine-3.18-arm64-rootfs-export:
-  extends: .test-jobs-artifact-common
-  image: registry.gitlab.com/xen-project/xen/tests-artifacts/alpine:3.18-arm64v8
-  script:
-    - mkdir binaries && cp /initrd.tar.gz binaries/initrd.tar.gz
-  artifacts:
-    paths:
-      - binaries/initrd.tar.gz
-  tags:
-    - arm64
-
 qemu-system-aarch64-6.0.0-arm64-export:
   extends: .test-jobs-artifact-common
   image: registry.gitlab.com/xen-project/xen/tests-artifacts/qemu-system-aarch64:6.0.0-arm64v8
diff --git a/automation/tests-artifacts/alpine/3.18-arm64v8.dockerfile b/automation/tests-artifacts/alpine/3.18-arm64v8.dockerfile
deleted file mode 100644
index a4542f703997..000000000000
--- a/automation/tests-artifacts/alpine/3.18-arm64v8.dockerfile
+++ /dev/null
@@ -1,66 +0,0 @@
-# syntax=docker/dockerfile:1
-FROM --platform=linux/arm64/v8 alpine:3.18
-LABEL maintainer.name="The Xen Project" \
-      maintainer.email="xen-devel@lists.xenproject.org"
-
-ENV USER root
-
-RUN mkdir /build
-WORKDIR /build
-
-RUN \
-  # apk
-  apk update && \
-  \
-  # xen runtime deps
-  apk add musl && \
-  apk add openrc && \
-  apk add busybox && \
-  apk add sudo && \
-  apk add dbus && \
-  apk add bash && \
-  apk add python3 && \
-  apk add zlib && \
-  apk add ncurses && \
-  apk add yajl && \
-  apk add libaio && \
-  apk add xz && \
-  apk add util-linux && \
-  apk add argp-standalone && \
-  apk add libfdt && \
-  apk add glib && \
-  apk add pixman && \
-  apk add curl && \
-  apk add udev && \
-  \
-  # Xen
-  cd / && \
-  # Minimal ramdisk environment in case of cpio output
-  rc-update add udev && \
-  rc-update add udev-trigger && \
-  rc-update add udev-settle && \
-  rc-update add networking sysinit && \
-  rc-update add loopback sysinit && \
-  rc-update add bootmisc boot && \
-  rc-update add devfs sysinit && \
-  rc-update add dmesg sysinit && \
-  rc-update add hostname boot && \
-  rc-update add hwclock boot && \
-  rc-update add hwdrivers sysinit && \
-  rc-update add killprocs shutdown && \
-  rc-update add modloop sysinit && \
-  rc-update add modules boot && \
-  rc-update add mount-ro shutdown && \
-  rc-update add savecache shutdown && \
-  rc-update add sysctl boot && \
-  rc-update add local default && \
-  cp -a /sbin/init /init && \
-  echo "ttyS0" >> /etc/securetty && \
-  echo "hvc0" >> /etc/securetty && \
-  echo "ttyS0::respawn:/sbin/getty -L ttyS0 115200 vt100" >> /etc/inittab && \
-  echo "hvc0::respawn:/sbin/getty -L hvc0 115200 vt100" >> /etc/inittab && \
-  passwd -d "root" root && \
-  \
-  # Create rootfs
-  cd / && \
-  tar cvzf /initrd.tar.gz bin dev etc home init lib mnt opt root sbin usr var
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Mon Apr 14 11:09:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 11:09:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.949714.1346221 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4Hgf-0001Js-8L; Mon, 14 Apr 2025 11:09:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 949714.1346221; Mon, 14 Apr 2025 11:09: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 1u4Hgf-0001JY-4R; Mon, 14 Apr 2025 11:09:13 +0000
Received: by outflank-mailman (input) for mailman id 949714;
 Mon, 14 Apr 2025 11:09: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=KxE1=XA=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u4Hgd-0000MT-Vn
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 11:09:11 +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 e3e1a086-1920-11f0-9ffb-bf95429c2676;
 Mon, 14 Apr 2025 13:09:10 +0200 (CEST)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-43edecbfb94so44840465e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 14 Apr 2025 04:09:10 -0700 (PDT)
Received: from localhost.localdomain (host-92-26-98-202.as13285.net.
 [92.26.98.202]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43f205ecb8dsm176820405e9.7.2025.04.14.04.09.08
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 14 Apr 2025 04:09: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: e3e1a086-1920-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744628949; x=1745233749; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=K6OWKMegtcc/0rp9IBds/PhWoddbHwcZW0/uLjS/za0=;
        b=DkHRHtgFjFnFG7JIRxAqr9LgkWq6+kO7OeNPXn0KnezZjYAvdkDS4NrmK57tElfm46
         vlVQRLQnZ26udef+UO2zR98b/WNSm1EfUvA6sc/0Uasfry3RTPbXrInNXjvJ0oQyFPFG
         XXRHMFrduUsIS8BR8dOVFmQg2Ere9kIpL6xac=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744628949; x=1745233749;
        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=K6OWKMegtcc/0rp9IBds/PhWoddbHwcZW0/uLjS/za0=;
        b=d4uC+p+do7keC3bW9Ipuw5/gtCcZn/jOTRZaknD1wEQ+xKKQ8x/sf2WR2NzPqfwbCK
         aLs/o2Sc5uPQDunZ6yVwM4GsDJqrlH0eyJOd0Vk+2KAPMsSFKpjI++NUQpKThwaGXV1p
         YIya7jDIZMlS0DofjJVT/2Atc56/flMjIFnlZH0dyyns2opXkRci88XzRvQHxw81nj88
         r6N1PzqDu2n336/ebsbwyqcNtEw6bQIAti+AMZ8M6Ge69g7D6apQPUA2n82uMbUZYj/s
         Y8YKlUb970MN9U7kWSvLIZqLv0N02igNBe6Jh30/FMi2pYgMrzEM4UOK7/PHgU8YPP/Y
         Iwxw==
X-Gm-Message-State: AOJu0Yxac0ogS5gKwVnC/ogrNo8bSGA0/h2/KZDqI4SU1bhIpadORP8r
	+6Wx0bZn7uXzE3aMWtTgoyt5+DvIQUQd9nItY1Oyup2h3muvh0LQj9XMu+nuhqVgJScGQ8tCEAY
	r8XU=
X-Gm-Gg: ASbGncviCcgfVwQ9kOWLGf4x2hKtGjui9OPcxDrCH0gTBlc2LF4MMxBke+q0qKCasMe
	inBfMaxs2LHBh0EvJ4dTEFJOTHtmvIyYZcxcZPR3vHeq2YhXlm/0+3pSiR0Q02bCVHmWsksV7oB
	iq6ZPiI2dmjhBgltU02BpDVE2q3+w7wGYmzUtMv5yUb1IyF48o9GPKO2tGEmIShqztFXz/D+KYh
	9qy1dnYdqydWlPwlE2t/j5q8qo7F7w1f/zCY6v6Tqv3AMAC2B1ovJGh7V4wE5239llWLgW5wokZ
	XeKwvombmumRmcbcYutGfyYjSCTgdkPgk0c7kojEcbdaXy/YDG+luDN/ev03TrGfNACMCvXsRLw
	MQBN49StEi6ESWg==
X-Google-Smtp-Source: AGHT+IGtaACpohKN8NRqicAByAmOnMVvrogHealXG+qY91ryDFjecviPNuDE7Y7Pl6koWR/XwJnLwQ==
X-Received: by 2002:a05:600c:46d0:b0:43c:eeee:b713 with SMTP id 5b1f17b1804b1-43f3a9afc34mr85923695e9.20.1744628949499;
        Mon, 14 Apr 2025 04:09:09 -0700 (PDT)
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?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Jason Andryuk <jason.andryuk@amd.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>
Subject: [PATCH v3 4/6] CI: Switch to new argo artefact
Date: Mon, 14 Apr 2025 12:09:01 +0100
Message-Id: <20250414110903.2355303-5-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250414110903.2355303-1-andrew.cooper3@citrix.com>
References: <20250414110903.2355303-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The argo artefact is now a cpio archive and can be appended to dom?-rootfs
directly, rather than being part of of the overlay.  Drop the
copy_dom?_files() functions.

xen-argo.ko has moved into the standard location, so update the insmod path.

No practical change.

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: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
CC: Jason Andryuk <jason.andryuk@amd.com>
CC: Daniel P. Smith <dpsmith@apertussolutions.com>

v3:
 * Rebase over change to rootfs handling

https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/1766180593
---
 automation/gitlab-ci/test.yaml                |  2 +-
 .../scripts/xilinx-smoke-dom0-x86_64.sh       | 22 +++++++------------
 2 files changed, 9 insertions(+), 15 deletions(-)

diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
index 51229cbe561d..d46da1c43d05 100644
--- a/automation/gitlab-ci/test.yaml
+++ b/automation/gitlab-ci/test.yaml
@@ -242,7 +242,7 @@ xilinx-smoke-dom0-x86_64-gcc-debug-argo:
   needs:
     - alpine-3.18-gcc-debug
     - project: xen-project/hardware/test-artifacts
-      job: x86_64-kernel-linux-6.6.56
+      job: linux-6.6.56-x86_64
       ref: master
     - project: xen-project/hardware/test-artifacts
       job: alpine-3.18-x86_64-rootfs
diff --git a/automation/scripts/xilinx-smoke-dom0-x86_64.sh b/automation/scripts/xilinx-smoke-dom0-x86_64.sh
index 1fc52d78db16..85007dcc290a 100755
--- a/automation/scripts/xilinx-smoke-dom0-x86_64.sh
+++ b/automation/scripts/xilinx-smoke-dom0-x86_64.sh
@@ -28,8 +28,6 @@ extra = "root=/dev/ram0 console=hvc0"
 memory = 512
 '
 DOMU_CFG_EXTRA=""
-copy_domU_files () { :; }
-copy_dom0_files () { :; }
 
 # Select test variant.
 if [ "${TEST}" = "ping" ]; then
@@ -66,7 +64,7 @@ then
     PASS_MSG="TEST: Message from DOMU"
     XEN_CMD_EXTRA="argo=1,mac-permissive=1"
     DOMU_CMD="
-insmod /root/xen-argo.ko
+insmod /lib/modules/\$(uname -r)/updates/xen-argo.ko
 until false
 do
   echo \"${PASS_MSG}\"
@@ -74,24 +72,19 @@ do
 done | argo-exec -p 28333 -d 0 -- /bin/echo
 "
     DOM0_CMD="
-insmod /root/xen-argo.ko
+insmod /lib/modules/\$(uname -r)/updates/xen-argo.ko
 xl -vvv create /etc/xen/domU.cfg
 argo-exec -l -p 28333 -- /bin/echo
 "
-copy_dom0_files ()
-{
-    mkdir -p root usr/local/lib usr/local/bin
-    cp "${WORKDIR}/binaries/xen-argo.ko" "root/"
-    cp -ar "${WORKDIR}/binaries/lib/"* "usr/local/lib/"
-    cp "${WORKDIR}/binaries/argo-exec" "usr/local/bin/"
-}
-copy_domU_files () { copy_dom0_files; }
 else
     fatal "Unknown test: ${TEST}"
 fi
 
 # DomU rootfs
 cp binaries/rootfs.cpio.gz binaries/domU-rootfs.cpio.gz
+if [[ "${TEST}" == argo ]]; then
+    cat binaries/argo.cpio.gz >> binaries/domU-rootfs.cpio.gz
+fi
 
 # test-local configuration
 mkdir -p rootfs
@@ -108,13 +101,15 @@ echo "domU Welcome to Alpine Linux
 Kernel \r on an \m (\l)
 
 " > etc/issue
-copy_domU_files
 find . | cpio -H newc -o | gzip >> ../binaries/domU-rootfs.cpio.gz
 cd ..
 rm -rf rootfs
 
 # Dom0 rootfs
 cp binaries/rootfs.cpio.gz binaries/dom0-rootfs.cpio.gz
+if [[ "${TEST}" == argo ]]; then
+    cat binaries/argo.cpio.gz >> binaries/dom0-rootfs.cpio.gz
+fi
 
 # test-local configuration
 mkdir -p rootfs
@@ -134,7 +129,6 @@ echo "QEMU_XEN=/bin/false" >> etc/default/xencommons
 mkdir -p var/log/xen/console
 cp ../binaries/bzImage boot/vmlinuz
 cp ../binaries/domU-rootfs.cpio.gz boot/initrd-domU
-copy_dom0_files
 find . | cpio -H newc -o | gzip >> ../binaries/dom0-rootfs.cpio.gz
 cd ..
 
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Mon Apr 14 11:09:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 11:09:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.949715.1346230 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4Hgg-0001Zv-KS; Mon, 14 Apr 2025 11:09:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 949715.1346230; Mon, 14 Apr 2025 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 1u4Hgg-0001Zi-Fk; Mon, 14 Apr 2025 11:09:14 +0000
Received: by outflank-mailman (input) for mailman id 949715;
 Mon, 14 Apr 2025 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=KxE1=XA=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u4Hgf-0000MT-Pa
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 11:09:13 +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 e4ca6409-1920-11f0-9ffb-bf95429c2676;
 Mon, 14 Apr 2025 13:09:12 +0200 (CEST)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-43ce70f9afbso45295115e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 14 Apr 2025 04:09:12 -0700 (PDT)
Received: from localhost.localdomain (host-92-26-98-202.as13285.net.
 [92.26.98.202]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43f205ecb8dsm176820405e9.7.2025.04.14.04.09.09
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 14 Apr 2025 04:09: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: e4ca6409-1920-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744628951; x=1745233751; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=FqFVEiY9DHURRecOhH2xsVEyvFBLoIcTk7clcfsrv2I=;
        b=WFmeiskp3+vsKPgOmZxUZ+uioA4706zkv90lQ1g3rxCwB6xFJiwRJdfBqYBHMDkVTt
         0shTUdltmBw1wDbWpM0jJSpHou/FizX8J2a3wHhi1z6T+U3V1jyaOADai5IrvHcCE/3v
         lBk8Bh+6XIBCDulIGdTUmmoxnE/62l/wB8mIU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744628951; x=1745233751;
        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=FqFVEiY9DHURRecOhH2xsVEyvFBLoIcTk7clcfsrv2I=;
        b=wN5NDPE4ft+Jgj2BcBhaDL4mpDIFG5eEhYecTsLQIAF+EZ82YY5B2GcsCbbEeegWPY
         AKyqknyuOSlCnMu4WDydimf8NOE2v5qMuIU40ipG0AZ2OBWI+ESK9VWrcdMAp7x2/BdF
         9QETo1sZuxgn2RrsJToEt4MQXi2vhWBOY8XQHkcfno2/hHFQGAaoSDFhpJlXf8/JoBmq
         tTvmsUIKrw8uye/Xb6Ws/c01wRB64YWlhrTYdrb1MT9+gGRfcTaena7kBGANE6W94z/g
         qwug++P/hnRQNUHACr9K4OUQvjI61ezberobdkukzsSiq50KoMSkgkfCFWOz28XER7vG
         IG7g==
X-Gm-Message-State: AOJu0YwdurIZbOC+pLO1LIUbM/N07fxgwwBX3mph0pZoISVktPyaFBVa
	lHsmiees+KGFfYBhR7TJWJMzFJ05xNbSQcdQfiYHp54QnlJkcz5o0djzKUeOvDgtXWjrUPIfB5x
	C6nI=
X-Gm-Gg: ASbGnct2qpOOL2sGm9c6p1lFnPG6j4EVWUBJxwPFHmMQSglJs+Tu8QsfeM5a6pWlURb
	wG3XEWxN1vhMzuWKdky0qI7bYPhyCvlz4fYkwpcycPN7YXQKwviK1lhcESB7D+j65I4+7NRWLdz
	OCy5p9o+hxzTLzDC/bjai2LQ7m9jR1ky27UnrnIkJAYW0hHao7eSRPUGpB8ma6ooXtxtaEOCL/z
	tQTqGMYSGENWfI6McMnG9pjyi/v8qfB2qrbT8aTlLc4xyNOIOMwN9ncViu2OKuFbUy1AsZo/6QJ
	KtIo08EUMaSsrVNosoXtQq6qkr2nzeGzIPwlbYmFnHEakqlRZ3FFPberJDovZfAtEOYK8olPyfO
	I6uzJ5AsXfet8qA==
X-Google-Smtp-Source: AGHT+IGZ04PS5HcN2fvZn8IhAhqmw+tj3+Yj7NHz+aAhUYPXM8WPANEqvuMs2cLjpgEIY8FQQffJ9A==
X-Received: by 2002:a05:600c:1d09:b0:43b:ce3c:19d0 with SMTP id 5b1f17b1804b1-43f3a9bee1dmr64654355e9.29.1744628950945;
        Mon, 14 Apr 2025 04:09:10 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	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>
Subject: [PATCH v3 5/6] CI: save toolstack artifact as cpio.gz
Date: Mon, 14 Apr 2025 12:09:02 +0100
Message-Id: <20250414110903.2355303-6-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250414110903.2355303-1-andrew.cooper3@citrix.com>
References: <20250414110903.2355303-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>

This avoids the need to re-compress it in every test job.  This saves minutes
of wallclock time.

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Reviewed-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: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>

v3:
 * Rebase
 * Rename to xen-tools.cpio.gz to be more specific

https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/1766186423
---
 automation/scripts/build                          | 2 +-
 automation/scripts/qemu-alpine-x86_64.sh          | 2 +-
 automation/scripts/qemu-smoke-dom0-arm64.sh       | 2 +-
 automation/scripts/qemu-smoke-dom0less-arm64.sh   | 2 +-
 automation/scripts/qubes-x86-64.sh                | 4 +++-
 automation/scripts/xilinx-smoke-dom0-x86_64.sh    | 4 ++--
 automation/scripts/xilinx-smoke-dom0less-arm64.sh | 3 +--
 7 files changed, 10 insertions(+), 9 deletions(-)

diff --git a/automation/scripts/build b/automation/scripts/build
index 522efe774ef3..51effec81ddd 100755
--- a/automation/scripts/build
+++ b/automation/scripts/build
@@ -108,7 +108,7 @@ else
     # Note: Some smoke tests depending on finding binaries/xen on a full build
     # even though dist/ contains everything, while some containers don't even
     # build Xen
-    cp -r dist binaries/
+    (cd dist/install; find | cpio -o -H newc | gzip) > binaries/xen-tools.cpio.gz
     cp -r tools/tests binaries/
     collect_xen_artefacts
 fi
diff --git a/automation/scripts/qemu-alpine-x86_64.sh b/automation/scripts/qemu-alpine-x86_64.sh
index c7dd12197862..fe86caa39304 100755
--- a/automation/scripts/qemu-alpine-x86_64.sh
+++ b/automation/scripts/qemu-alpine-x86_64.sh
@@ -30,11 +30,11 @@ cd ..
 
 # Dom0 rootfs
 cp rootfs.cpio.gz dom0-rootfs.cpio.gz
+cat xen-tools.cpio.gz >> dom0-rootfs.cpio.gz
 
 # test-local configuration
 mkdir -p rootfs
 cd rootfs
-cp -ar ../dist/install/* .
 mkdir -p root etc/local.d
 mv ../domU-rootfs.cpio.gz ./root
 cp ../bzImage ./root
diff --git a/automation/scripts/qemu-smoke-dom0-arm64.sh b/automation/scripts/qemu-smoke-dom0-arm64.sh
index c0cf61ff8f7b..61dd24b9abef 100755
--- a/automation/scripts/qemu-smoke-dom0-arm64.sh
+++ b/automation/scripts/qemu-smoke-dom0-arm64.sh
@@ -29,11 +29,11 @@ cd ..
 
 # Dom0 rootfs
 cp rootfs.cpio.gz dom0-rootfs.cpio.gz
+cat xen-tools.cpio.gz >> dom0-rootfs.cpio.gz
 
 # test-local configuration
 mkdir -p rootfs
 cd rootfs
-cp -ar ../dist/install/* .
 mkdir -p etc/local.d root
 mv ../domU-rootfs.cpio.gz ./root
 cp ../Image ./root
diff --git a/automation/scripts/qemu-smoke-dom0less-arm64.sh b/automation/scripts/qemu-smoke-dom0less-arm64.sh
index 8e939f0b7214..58f11dd31038 100755
--- a/automation/scripts/qemu-smoke-dom0less-arm64.sh
+++ b/automation/scripts/qemu-smoke-dom0less-arm64.sh
@@ -116,11 +116,11 @@ cd ..
 
 # Dom0 rootfs
 cp binaries/rootfs.cpio.gz binaries/dom0-rootfs.cpio.gz
+cat binaries/xen-tools.cpio.gz >> binaries/dom0-rootfs.cpio.gz
 
 # test-local configuration
 mkdir -p rootfs
 cd rootfs
-cp -ar ../binaries/dist/install/* .
 mkdir -p etc/local.d
 
 echo "#!/bin/bash
diff --git a/automation/scripts/qubes-x86-64.sh b/automation/scripts/qubes-x86-64.sh
index e2376cb51cb4..3947027d6e4d 100755
--- a/automation/scripts/qubes-x86-64.sh
+++ b/automation/scripts/qubes-x86-64.sh
@@ -189,12 +189,12 @@ fi
 
 # Dom0 rootfs
 cp binaries/rootfs.cpio.gz binaries/dom0-rootfs.cpio.gz
+cat binaries/xen-tools.cpio.gz >> binaries/dom0-rootfs.cpio.gz
 
 # test-local configuration
 mkdir -p rootfs
 cd rootfs
 mkdir -p boot etc/local.d
-cp -ar ../binaries/dist/install/* .
 cp -ar ../binaries/tests .
 cp -a ../automation/scripts/run-tools-tests tests/
 
@@ -228,8 +228,10 @@ else
 fi
 
 chmod +x etc/local.d/xen.start
+mkdir -p etc/xen
 echo "$domU_config" > etc/xen/domU.cfg
 
+mkdir -p etc/default
 echo "XENCONSOLED_TRACE=all" >> etc/default/xencommons
 echo "QEMU_XEN=/bin/false" >> etc/default/xencommons
 mkdir -p var/log/xen/console
diff --git a/automation/scripts/xilinx-smoke-dom0-x86_64.sh b/automation/scripts/xilinx-smoke-dom0-x86_64.sh
index 85007dcc290a..1f8cc172c630 100755
--- a/automation/scripts/xilinx-smoke-dom0-x86_64.sh
+++ b/automation/scripts/xilinx-smoke-dom0-x86_64.sh
@@ -107,6 +107,7 @@ rm -rf rootfs
 
 # Dom0 rootfs
 cp binaries/rootfs.cpio.gz binaries/dom0-rootfs.cpio.gz
+cat binaries/xen-tools.cpio.gz >> binaries/dom0-rootfs.cpio.gz
 if [[ "${TEST}" == argo ]]; then
     cat binaries/argo.cpio.gz >> binaries/dom0-rootfs.cpio.gz
 fi
@@ -114,8 +115,7 @@ fi
 # test-local configuration
 mkdir -p rootfs
 cd rootfs
-mkdir -p boot etc/local.d
-cp -ar ../binaries/dist/install/* .
+mkdir -p boot etc/local.d etc/xen etc/default
 echo "#!/bin/bash
 set -x
 export LD_LIBRARY_PATH=/usr/local/lib
diff --git a/automation/scripts/xilinx-smoke-dom0less-arm64.sh b/automation/scripts/xilinx-smoke-dom0less-arm64.sh
index a3031ecab0dc..59f3fe7edb3e 100755
--- a/automation/scripts/xilinx-smoke-dom0less-arm64.sh
+++ b/automation/scripts/xilinx-smoke-dom0less-arm64.sh
@@ -56,12 +56,11 @@ rm -rf rootfs
 
 # Dom0 rootfs
 cp binaries/rootfs.cpio.gz binaries/dom0-rootfs.cpio.gz
+cat binaries/xen-tools.cpio.gz >> binaries/dom0-rootfs.cpio.gz
 
 # test-local configuration
 mkdir -p rootfs
 cd rootfs
-cp -ar ../binaries/dist/install/* .
-
 mkdir -p etc/local.d
 echo "#!/bin/bash
 
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Mon Apr 14 11:09:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 11:09:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.949716.1346241 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4Hgh-0001qV-St; Mon, 14 Apr 2025 11:09:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 949716.1346241; Mon, 14 Apr 2025 11:09: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 1u4Hgh-0001ph-P6; Mon, 14 Apr 2025 11:09:15 +0000
Received: by outflank-mailman (input) for mailman id 949716;
 Mon, 14 Apr 2025 11:09: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=KxE1=XA=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u4Hgg-0000MT-EG
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 11:09:14 +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 e556f221-1920-11f0-9ffb-bf95429c2676;
 Mon, 14 Apr 2025 13:09:12 +0200 (CEST)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-391342fc0b5so3244828f8f.3
 for <xen-devel@lists.xenproject.org>; Mon, 14 Apr 2025 04:09:12 -0700 (PDT)
Received: from localhost.localdomain (host-92-26-98-202.as13285.net.
 [92.26.98.202]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43f205ecb8dsm176820405e9.7.2025.04.14.04.09.11
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 14 Apr 2025 04:09: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: e556f221-1920-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744628952; x=1745233752; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=pEagS0fgW08lXFE5KITuwG+96XL/PoduvFNAXAg+C84=;
        b=W3YsaCBNdUtOC/Z24z9X+rwO0FAHkqUPVDvyH+imojakKykAb9lO229uoPOnIlMkU+
         B9vIH0YBK9rN/KgofhP9setHEpnLGxKdxXU8JQDPKWpSLBwSirXZf5H0+7t6eF0XyJzR
         9bbb+GCn2uoHqhUMrPDlUBFC034M2qS/5jBBo=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744628952; x=1745233752;
        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=pEagS0fgW08lXFE5KITuwG+96XL/PoduvFNAXAg+C84=;
        b=s0IpUSoWmVxEda6mSYnj9JJk+cBcjP+pgoVAc2kD68iWpVoEsiRymQTylFQ/E+Gyde
         odnhOcS3SmPNV2gSBrTk2XGgphQv5e6FdKzyZnX4E6x7DpbKRxgLisqcy7/EIR8OLqpW
         7oImwDC1gTo26NEr3SrJQ6NspmUpSnA4LspPVb6DALXUS6coAy2AnWxq69Z5EnTvv80Z
         y2lJJdZRxH728A6UxNJPGxx8EBwsLvimjxPw7UISO3aKXKcFwXzSppoqKNDzX4G+bNRP
         luFAgfd0jIvyknRX3r8uvTGxg5/Mm7F0B0byxr9ZFeYkT2MN+pzyEBawRGmx8TIxk0WM
         tbYA==
X-Gm-Message-State: AOJu0YxWkGz4DLipFZeSGIJa0jg9SjggLDVWbm+otmfGiJFnH+VNyqdN
	Ta4dQj79hto72M+OVmlKybz2uvZU5TfQ1pL6L0Op6i+u2ULVGd3IJCK0jq8B4wHt1IIDnvDTrke
	bWUI=
X-Gm-Gg: ASbGncuAYKTsZ2dq1Ra/iUTIKgue22nesCOADLYS+rviUFdW7bPRVXLj1aDtZSVltjj
	DzWlBEsAusPwh7Co74Ygxn2Bvw9iIF/53p2Uy71mp+8MlxHmUg+BYblLEQf0uCBgWWcRFTh3q9v
	aNxS06EoPSOhMvwUyL79TEAgTYIndPpk+LQYWLnpqS5CGWsb7vgyEjUkKR3wUtyTX89oIVFLErz
	LQdeuZxgviaXPEx7gbBB0AhHBM9XjisT3WeDA4/dj+lR7i6mPgp0OVh79MgwDf2QQocU0dCR6OG
	U948sGPCHQh1el/+bx5EcYXPnBKfrj5r4EEKqh48R4YdwqUWou9fRsWlWzwcFOA0dZVF3Dxafg2
	XdhivnxhMjzRG6g==
X-Google-Smtp-Source: AGHT+IHqhiI94sSItJXNuhdApx+sOZ72wahpooTvttJ5PFefRV8bjzL81523dZ8IAeMFWNO84vjWgQ==
X-Received: by 2002:a05:6000:401f:b0:391:3f4f:a172 with SMTP id ffacd0b85a97d-39eaaed1ebbmr9018066f8f.49.1744628951981;
        Mon, 14 Apr 2025 04:09:11 -0700 (PDT)
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?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH v3 6/6] CI: Include microcode for x86 hardware jobs
Date: Mon, 14 Apr 2025 12:09:03 +0100
Message-Id: <20250414110903.2355303-7-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250414110903.2355303-1-andrew.cooper3@citrix.com>
References: <20250414110903.2355303-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

All the x86 hardware runners are out of date, to varying degrees, in terms of
microcode.

Microcode must be uncompressed and prepended to the initrd in order for Xen to
be able to use it during early boot.

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: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>

v3:
 * New

https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/1766187024
---
 automation/gitlab-ci/build.yaml                | 1 +
 automation/gitlab-ci/test.yaml                 | 6 ++++++
 automation/scripts/qubes-x86-64.sh             | 3 ++-
 automation/scripts/xilinx-smoke-dom0-x86_64.sh | 3 ++-
 4 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
index 1b82b359d01f..ac5367874526 100644
--- a/automation/gitlab-ci/build.yaml
+++ b/automation/gitlab-ci/build.yaml
@@ -306,6 +306,7 @@ alpine-3.18-gcc-debug:
       CONFIG_ARGO=y
       CONFIG_UBSAN=y
       CONFIG_UBSAN_FATAL=y
+      CONFIG_UCODE_SCAN_DEFAULT=y
       CONFIG_XHCI=y
 
 debian-12-x86_64-gcc-debug:
diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
index d46da1c43d05..ef17def0120a 100644
--- a/automation/gitlab-ci/test.yaml
+++ b/automation/gitlab-ci/test.yaml
@@ -26,6 +26,9 @@
   - project: xen-project/hardware/test-artifacts
     job: alpine-3.18-x86_64-rootfs
     ref: master
+  - project: xen-project/hardware/test-artifacts
+    job: microcode-x86_64
+    ref: master
 
 .qemu-arm64:
   extends: .test-jobs-common
@@ -250,6 +253,9 @@ xilinx-smoke-dom0-x86_64-gcc-debug-argo:
     - project: xen-project/hardware/test-artifacts
       job: x86_64-argo-linux-6.6.56
       ref: master
+    - project: xen-project/hardware/test-artifacts
+      job: microcode-x86_64
+      ref: master
 
 adl-smoke-x86-64-gcc-debug:
   extends: .adl-x86-64
diff --git a/automation/scripts/qubes-x86-64.sh b/automation/scripts/qubes-x86-64.sh
index 3947027d6e4d..1f90e7002c73 100755
--- a/automation/scripts/qubes-x86-64.sh
+++ b/automation/scripts/qubes-x86-64.sh
@@ -188,7 +188,8 @@ Kernel \r on an \m (\l)
 fi
 
 # Dom0 rootfs
-cp binaries/rootfs.cpio.gz binaries/dom0-rootfs.cpio.gz
+cp binaries/ucode.cpio binaries/dom0-rootfs.cpio.gz
+cat binaries/rootfs.cpio.gz >> binaries/dom0-rootfs.cpio.gz
 cat binaries/xen-tools.cpio.gz >> binaries/dom0-rootfs.cpio.gz
 
 # test-local configuration
diff --git a/automation/scripts/xilinx-smoke-dom0-x86_64.sh b/automation/scripts/xilinx-smoke-dom0-x86_64.sh
index 1f8cc172c630..5bb44188dc3d 100755
--- a/automation/scripts/xilinx-smoke-dom0-x86_64.sh
+++ b/automation/scripts/xilinx-smoke-dom0-x86_64.sh
@@ -106,7 +106,8 @@ cd ..
 rm -rf rootfs
 
 # Dom0 rootfs
-cp binaries/rootfs.cpio.gz binaries/dom0-rootfs.cpio.gz
+cp binaries/ucode.cpio binaries/dom0-rootfs.cpio.gz
+cat binaries/rootfs.cpio.gz >> binaries/dom0-rootfs.cpio.gz
 cat binaries/xen-tools.cpio.gz >> binaries/dom0-rootfs.cpio.gz
 if [[ "${TEST}" == argo ]]; then
     cat binaries/argo.cpio.gz >> binaries/dom0-rootfs.cpio.gz
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Mon Apr 14 11:12:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 11:12:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.949800.1346251 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4Hjp-00070S-Ij; Mon, 14 Apr 2025 11:12:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 949800.1346251; Mon, 14 Apr 2025 11:12: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 1u4Hjp-00070L-Ff; Mon, 14 Apr 2025 11:12:29 +0000
Received: by outflank-mailman (input) for mailman id 949800;
 Mon, 14 Apr 2025 11:12: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=GQ8q=XA=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1u4Hjn-00070E-R9
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 11:12:28 +0000
Received: from NAM12-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam12on2062a.outbound.protection.outlook.com
 [2a01:111:f403:2417::62a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 57b16d91-1921-11f0-9eae-5ba50f476ded;
 Mon, 14 Apr 2025 13:12:25 +0200 (CEST)
Received: from PH8PR12MB7326.namprd12.prod.outlook.com (2603:10b6:510:216::7)
 by SA5PPF8DEAB7A29.namprd12.prod.outlook.com
 (2603:10b6:80f:fc04::8d4) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.33; Mon, 14 Apr
 2025 11:12:22 +0000
Received: from PH8PR12MB7326.namprd12.prod.outlook.com
 ([fe80::6d76:9c33:d230:8264]) by PH8PR12MB7326.namprd12.prod.outlook.com
 ([fe80::6d76:9c33:d230:8264%2]) with mapi id 15.20.8632.030; Mon, 14 Apr 2025
 11:12: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: 57b16d91-1921-11f0-9eae-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Qq18ypVl2D4PO1AuSuq/OiGvlPHoI79VxXOrDyA8pJDNKfzRV+4f7g+CoYDn28GvA9BfDStmImNp2hPFRKl5jeAXbA7Gbj4z0p3m6kw460iosL87xeGKagCvi3X4dSQfESdg5KXqgxgYcP3SUUM8W9abIggwPHROvpPdXf1pFYmFbZA/vwdgI17893JAJJt5Jgu+a8igTIc1ivAOKr+33YH20qFgNX1eNT7wegCmayvzJ8Ttew4Tv23PZI+xlzCUmHzqS+bvyD7W+5y4K5bZ6N+w7rtMo3YFPh0nqzLP1oxVq+U2pFNhx65GBIzQqoZyn9NexvZuJL/8gxBnIa3K+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=bz9DlLgmyWRmHsSB253/9mAeBUZ+XKDOGwv7RjvyT38=;
 b=fWaezHdh7iRLscmZav7wP8fBrAQNFzwO3vEmfTGGqnYh31aOYyHjofOSAtxqN7VZohX4al01bQ0OTZvhvKzUe0yTQ81JARuzblKlJUrYv3JiwC8HisZ3VPb1weJ6gY/cd3eJPGItJgBrcAzsKXmMh7lH6byyAosBZXgXwqbqdS7kbECsbBYTcSxJAq/CFwFW28q7NJNNTZsevMUrCEKqPTUgtQXZvMn+ZqEmWw7cm/G2xcLNmM5Sawkze0PiEWieOxlvGhbW+13zT+FKk59J8BVOvew5H0XtvbgJXWjg9+jQWC9Dy8dcXGqnOV0OUWJrpt7GYYh4ekz23ORB4hkOEQ==
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=bz9DlLgmyWRmHsSB253/9mAeBUZ+XKDOGwv7RjvyT38=;
 b=ccqRYNv7t3QuRn628Ldh6VOUdqWf8HLHwUdFD0havzvqhyL8PjBfbWoqFebbCL6PjTf6daY0jHPnJNMjqiN5Dlo48J8QsGHAO+QFjdV/QkHVwSVUqTsh6ev/xubHMbNGBIkBFkzy2cIy1kFMF5gdpFjIprZUgGxxMRlQr6H+MU0=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <0e20dc0f-ec97-4b6a-98c5-cdfcd3dfb44c@amd.com>
Date: Mon, 14 Apr 2025 12:12:18 +0100
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 2/3] xen/arm32: Create the same boot-time MPU regions
 as arm64
To: "Orzel, Michal" <michal.orzel@amd.com>,
 Ayan Kumar Halder <ayan.kumar.halder@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>,
 Luca Fancellu <luca.fancellu@arm.com>
References: <20250411110452.3748186-1-ayan.kumar.halder@amd.com>
 <20250411110452.3748186-3-ayan.kumar.halder@amd.com>
 <f4c43d72-b403-4829-b490-46823391f82c@amd.com>
Content-Language: en-GB
From: Ayan Kumar Halder <ayankuma@amd.com>
In-Reply-To: <f4c43d72-b403-4829-b490-46823391f82c@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO4P123CA0188.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:1a4::13) To PH8PR12MB7326.namprd12.prod.outlook.com
 (2603:10b6:510:216::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: PH8PR12MB7326:EE_|SA5PPF8DEAB7A29:EE_
X-MS-Office365-Filtering-Correlation-Id: 57f333e4-7fb1-4925-017d-08dd7b453a4a
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?bWt2YWswOU1VWFNlVGZqamhMYzRqVDNaRkxzbmduK3E3Yi9QeFg4M3hzS0h3?=
 =?utf-8?B?bzdjWHRWdlVEOUVxR0N2SzZvUGYvSGptSlB6aG5LU1ZlTGRnV2Z6enFXMnpB?=
 =?utf-8?B?aVozYXAybHF2a3o3MUNZZm5URFhmRFYxdTAzQ2pRcmxmK2RJTEZzZTgzYmZ6?=
 =?utf-8?B?elhyWEZMelAvang1dnJHeDR5UnNYdVl1M3pYbGU5ckd2bUNpMjBvZXhaSk5K?=
 =?utf-8?B?M0FmMlJWKy9LT3VtUTdkUUZwYkpmZFBsckFJQ1ZuUGRKUktjbHN4TTIyekM4?=
 =?utf-8?B?dVNWUDFGemc0THFSTWUwM1U1YXVDUFhrL3NiRjJvV0xzdkJzMk8wd3RYYm8z?=
 =?utf-8?B?Z3Z4amdqamg2ekV5S29FNlYrT29pRzRhTHpkTnQxcmRRQW4vV0xLYWVpNXVQ?=
 =?utf-8?B?WDBYY0tBbFFycEtPT2lDNHMwbUlwN3crd1V5THdtNUllUm5JT3FIcUxqbXha?=
 =?utf-8?B?dC9SLzJBYldzWFR5K0RqWWhKd0szZmdxWXEwaWpuMzV2UkZCY1I2WkdPQU5U?=
 =?utf-8?B?RUlpTDVpTmx1VEVyMHBnd1VLbHhQNnlwZzRZQ2xLZmtrZjQ0c2tGMTNSTHRz?=
 =?utf-8?B?Rmc2cTQ4em04UmdqQWpRdlpNNVUyV2lUUHBqOUlmbDdNTUI1UXpPRDVSdEpr?=
 =?utf-8?B?WWxxeHVSWktJbnZhaDhQdjJCcC84eGFYc3JuQjNackNQQm01dDU5RjVDcG5K?=
 =?utf-8?B?QmRLUzFlczlWWnFYTWxaa0lvUTVFdW1ZYkxKaHdwY2MwTDJYL1RBK0RBbTk4?=
 =?utf-8?B?RGFzcEJaa1huenJ6UGc4QTBCVHJ4alphRm5SdHlQcnBqSTF4Z2lmZnVUcWIz?=
 =?utf-8?B?c0lJQTgyS1UzaHFIRW01Kzh4QWdTRDBQanJPZHUweHFKK3EzbFZWa0p1ZDhi?=
 =?utf-8?B?QUkyVFJaUjJ4cmJqdCtIQWhUOS9KNDA5TGNnSlQrZ2lKWWxIU0poenEycFA4?=
 =?utf-8?B?OHBISk9pWjRlRVAyQ0dWUHJsSnFlaXA5UmJ0SDRadkMwVSs1QjZ2WktQNERG?=
 =?utf-8?B?bE1qNjg2S04wTXlHanFMVkNGampzcG5vL084amhuWXhTUXhhRXduMlhnV2tP?=
 =?utf-8?B?RVFFM0VjOTFaRWhiNm9TUXBIaGJTenNLa2tleDNtcmxyZm1hZ1FGMWFxZG5i?=
 =?utf-8?B?OHl2Q2pybWNZaXI1MXgxWWoxQlR4Y0ptSElrRS9oaVZUSXlWS2xkUmtGeTFT?=
 =?utf-8?B?ZTFSVkxFdlB2dVZvd282dDdVdUh0YmY5MVZ5YnhEc3c1QVFxMTN5NktYR3Zi?=
 =?utf-8?B?SXNKRGlFU3dvWEJGbTlmR2l3ZVUrZDVSc2JkajExTDMxbVQyM1AvNWtGOER1?=
 =?utf-8?B?dGVkUzY2d1FUQkxYb0ltYlZHTnoxKzRKOUdVVFRxYm1BY25HQmZPeVhXTTVw?=
 =?utf-8?B?Z3I0YXpmV3o2M1FyVnVuTmVJL212d2dkWVhKQmtDQ2JsY3pwRjkrL0RWQ01u?=
 =?utf-8?B?K1kwMTdPSWtPSHNqVDZPNG1XZXdDTGdYdHBvOUlkK2I2K0RaSDltOHh3aDky?=
 =?utf-8?B?blJHTStuczZsUEZIcFhiTlR1STV5UUJ0RTk0YTArWjBzeXhPOTFOcU43K3I3?=
 =?utf-8?B?L093cDBrZWx3S0ZuWlh1NGxRQzlJZ3YwcmpLTlA5Smh6TjFDRGtrcHZYeFg5?=
 =?utf-8?B?bTlQNklTdGlJT2NTTHltR011NVZONXhaUVplNWR5cytHZis4TURCTnZRSzhx?=
 =?utf-8?B?Rm9GWVdFeVQ5cWxZbVZtSXoyQTEveHhJRDUrRjVSbERJeDU2MnlCcVkzLzlz?=
 =?utf-8?B?dnlWeG5neXFWbmZaTVJ4Y1NySjRjblNTK2k2bXJOb3pCMXcybFJYODRKcXB4?=
 =?utf-8?B?dlFpdnN5NEt5K2grSDVvUEgzWk9sNnllMnZNN2h5VU5wMDZrbEUrYzMzQkw1?=
 =?utf-8?B?M1JFSGI5YlVvRmpHV2pCc3pneWsrTXI3TGNTZ0xPWkV6Ukk3Vm1EYnp0Qmts?=
 =?utf-8?Q?HLCZFLxFXW0=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?QnNQOGRkc2R2U3F2ZXdXbENCSUl2OHZBbjV3MHlna1UxbDJodjg1Qmt5RTlm?=
 =?utf-8?B?TWZ5WW53dHduUGtCUW1KTThWWXVURDZWVlV5VXR0cTVKNENHU2lucWl6VWo4?=
 =?utf-8?B?OEZObzZvVmRMRHlvVHBaVkhqRlVrMG9HWkdPaFF5NGFuZktld3drZ3hBYXpy?=
 =?utf-8?B?N25qazI4c2dFcGQvcU0xQXJhOVA1bzFhSVRudTVpSEpuV1dNTWJTMWhCTEd6?=
 =?utf-8?B?ZEtyZ2p3bXk1VThrVEpiUnhjL2g2ZzFZVFRTUDJQMERLK1JtR1dMVVdXVzIr?=
 =?utf-8?B?Ym1jN1BobHA3T2hRRkJwMHgzWG9iRHhlamtqbjBGNVMwVXhzMFVvVUJaTXRm?=
 =?utf-8?B?ODQyL01hU3JrNGl1emhxc04xR2pJc0VxRjlnS0MvRkx5QnpReVl2dnl5TFZq?=
 =?utf-8?B?bGE5OW1pVHJhWUVQdmdrTnpVWHlzRWx0bmV6dk51YTJhcjNnTFZpNzZqQ2Rx?=
 =?utf-8?B?dkRHSXdHM1F1UHFvSnlTdFZ4UzNaeVVEMGtSdW03SVdPWTJ5eDVyQ1RLeVBE?=
 =?utf-8?B?VkgrRVB2L1p4UWZuVW5KK1pjRi83ZWVYZWFKbzZvTlJLVUVjNDdweitZemhr?=
 =?utf-8?B?ek9NSSsyOVpYbjJzdjZvSUFYQzRjbUNZQWprWGlzSjlId1BHcUFXclNoQWMx?=
 =?utf-8?B?RzdjUVM3N0RmeFJkaDdiWmE1WTRYSEJvTHVMTXIzWXdtYm12S1d5ZU1jY3RD?=
 =?utf-8?B?enYwZjNmaitvampicmVoL1FtOE1ER2JCL2dlVnhPeHNSaStKbG5HdU5Dcnpq?=
 =?utf-8?B?UW9TY2pTd2RHY2MzWkhzQXJuUVlIQ2NYdWZkVDBHQ2N5RGdQRU1WcHlSejJn?=
 =?utf-8?B?bFFpVHFkRkxjSi9MQTJaSjNnbWJUQWZ5QXJGdHUvVVBmWFpQdGhSZERQTG1J?=
 =?utf-8?B?dFZrMFAyMm1pWndiVlNEaU1yMS9DZ0p5YSs3RnREL3B6aC8vbURMb1Y2QThX?=
 =?utf-8?B?WXBBKzBOUlNCbUNiTysvRGx3UXJSNEx0YnRBZS91SHI5UDljcVJUQXA4dWlh?=
 =?utf-8?B?Ukd3NlBPZFlSbkI3YWdIc2NVTUVka2xUWVBHVFhna3VGMjZ1cERwb1RRWmpo?=
 =?utf-8?B?UmZsYnluTnM1cXVpZkdGdmcrRXp0RVJnbUc3bkovVEIxMmZCY1IxVjR3NTZs?=
 =?utf-8?B?eEZtM0RBYUVBMHVjQkx4SHQwQlI2MzEvZk9hM2RodWwzaUhjNmlaWWlxaWhC?=
 =?utf-8?B?TFBEUS9Nc3hxOWRyUXlqL1huVXBZeW02KzlGditVS2N4YzhjNXkrcWcxWXNU?=
 =?utf-8?B?ZjA3NWVjVDhpblhYVHZoV1prVkFMdThoekRtdGJVRWI4MzJKVU9URUdZWnNy?=
 =?utf-8?B?aHBmYnpTcGU0UldxNUZvSjR6SFJ5MGxoTlIxcnpDODZIQ2NSNXo2WnBUVUw4?=
 =?utf-8?B?dnkySEY0UEZaUkgxRUtLWjcza3dWVlJueTlrR2RTUUV4SndmbUhaaERpd25G?=
 =?utf-8?B?dUEvbkRxdFFTd1ZPa0kza0E2UnZYR0ZQbkdyOERxNldlc040ejJCL2lqN0dk?=
 =?utf-8?B?eGFDcHM0Z1U1bWY4d3lBb21WQlVzb1dxVWZ2YlpkbHh4cGszOU05bXIvVVlD?=
 =?utf-8?B?Mzd3V0pQU0JFN3VRckhCY2g5aU5TWGJxU2NFaHZnNEVsZW9qc1o1YzdDN0tU?=
 =?utf-8?B?bEM5TmdWcFkwQ1V5Q20veUxRZHlxSHR3MmFZVjF3eWdwWnVHMktNZTRyc2NU?=
 =?utf-8?B?QXE1UkJGUitHWDJoTzNKRUtUVmFmZVVsVnFGK2hiL1ZpbVg3cW5PT2xoVHFJ?=
 =?utf-8?B?N2YyajAzZmMzNFc1Nk1vVHUrZUdrNTB2aVdrL1NZRS9KdmlaU1BNdFFvODdH?=
 =?utf-8?B?UWhsMmIveEU3eEdYR1d5d3VhMm8vT1dSdXRhcWhGTldQL2VhNU5UaUxBNXB4?=
 =?utf-8?B?bHZTVVpBRXE1ZUVOTVdNenErQkxKa2RQc0hPbHN6RTRmdG1pUms2U2Y5cU53?=
 =?utf-8?B?cjR6UnplK1V5K1l3dGc3bUxZajVid3JBOG44WVR3aldlcDlSZit2VFNxcW1j?=
 =?utf-8?B?aytnd3RlWkQrU1VLeHJXZWJybmxuOTNkZG1vU1BUbnVIbUR0d3JKcXZFbUIr?=
 =?utf-8?B?NUQxQm95SUtsVTVKSm5LQ3VWMzNhY00vMWxuRURMWWdvMWVEKytzU1ZFQWRO?=
 =?utf-8?Q?Zbw8sNdu6Or6zLaZRvRFx1j6x?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 57f333e4-7fb1-4925-017d-08dd7b453a4a
X-MS-Exchange-CrossTenant-AuthSource: PH8PR12MB7326.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Apr 2025 11:12:22.0322
 (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: kaOkJ0x86j+/9IoDqsLo97RFNBJqM+l3tu2nhSh8eJYL6JyMryK1GggujL9MtJ/8roSRUXhuvyO1FB2k2h436Q==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA5PPF8DEAB7A29

Hi Michal,

On 14/04/2025 09:38, Orzel, Michal wrote:
>
> On 11/04/2025 13:04, Ayan Kumar Halder wrote:
>> Boot-time MPU protection regions (similar to Armv8-R AArch64) are created for
>> Armv8-R AArch32.
>> Also, defined *_PRBAR macros for arm32. The only difference from arm64 is that
>> XN is 1-bit for arm32.
>> Defined the system registers and macros in mpu/cpregs.h.
>>
>> Introduced WRITE_SYSREG_ASM() to write to system registers in assembly.
> It really reads odd when you write what patch does in past tense.
I will change it.
>
>> Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
>> Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>
>> ---
>> Changes from
>>
>> v1 -
>>
>> 1. enable_mpu() now sets HMAIR{0,1} registers. This is similar to what is
>> being done in enable_mmu(). All the mm related configurations happen in this
>> function.
>>
>> 2. Fixed some typos.
>>
>> v2 -
>> 1. Include the common prepare_xen_region.inc in head.S.
>>
>> 2. Define LOAD_SYSREG()/STORE_SYSREG() for arm32.
>>
>> v3 -
>> 1. Rename STORE_SYSREG() as WRITE_SYSREG_ASM()
>>
>> 2. enable_boot_cpu_mm() is defined in head.S
>>
>> v4 -
>> 1. *_PRBAR is moved to arm32/sysregs.h.
>>
>> 2. MPU specific CP15 system registers are defined in mpu/cpregs.h.
>>
>> v5 -
>> 1. WRITE_SYSREG_ASM is enclosed within #ifdef __ASSEMBLY__
>>
>> 2. enable_mpu() clobbers r0 only.
>>
>> 3. Definitions in mpu/cpregs.h in enclosed within ARM_32.
>>
>> 4. Removed some #ifdefs and style changes.
>>
>>   xen/arch/arm/arm32/Makefile              |   1 +
>>   xen/arch/arm/arm32/mpu/Makefile          |   1 +
>>   xen/arch/arm/arm32/mpu/head.S            | 104 +++++++++++++++++++++++
>>   xen/arch/arm/include/asm/arm32/sysregs.h |   9 ++
>>   xen/arch/arm/include/asm/cpregs.h        |   2 +
>>   xen/arch/arm/include/asm/mpu/cpregs.h    |  27 ++++++
>>   6 files changed, 144 insertions(+)
>>   create mode 100644 xen/arch/arm/arm32/mpu/Makefile
>>   create mode 100644 xen/arch/arm/arm32/mpu/head.S
>>   create mode 100644 xen/arch/arm/include/asm/mpu/cpregs.h
>>
>> diff --git a/xen/arch/arm/arm32/Makefile b/xen/arch/arm/arm32/Makefile
>> index 40a2b4803f..537969d753 100644
>> --- a/xen/arch/arm/arm32/Makefile
>> +++ b/xen/arch/arm/arm32/Makefile
>> @@ -1,5 +1,6 @@
>>   obj-y += lib/
>>   obj-$(CONFIG_MMU) += mmu/
>> +obj-$(CONFIG_MPU) += mpu/
>>   
>>   obj-$(CONFIG_EARLY_PRINTK) += debug.o
>>   obj-y += domctl.o
>> diff --git a/xen/arch/arm/arm32/mpu/Makefile b/xen/arch/arm/arm32/mpu/Makefile
>> new file mode 100644
>> index 0000000000..3340058c08
>> --- /dev/null
>> +++ b/xen/arch/arm/arm32/mpu/Makefile
>> @@ -0,0 +1 @@
>> +obj-y += head.o
>> diff --git a/xen/arch/arm/arm32/mpu/head.S b/xen/arch/arm/arm32/mpu/head.S
>> new file mode 100644
>> index 0000000000..b2c5245e51
>> --- /dev/null
>> +++ b/xen/arch/arm/arm32/mpu/head.S
>> @@ -0,0 +1,104 @@
>> +/* SPDX-License-Identifier: GPL-2.0-only */
>> +/*
>> + * Start-of-day code for an Armv8-R-AArch32 MPU system.
>> + */
>> +
>> +#include <asm/arm32/macros.h>
>> +#include <asm/arm32/sysregs.h>
>> +#include <asm/cpregs.h>
>> +#include <asm/mpu.h>
>> +#include <asm/mpu/regions.inc>
>> +#include <asm/page.h>
>> +
>> +/*
>> + * Set up the memory attribute type tables and 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 AArch32 architecture is
>> + * IMPLEMENTATION DEFINED, we intend to turn off the Background region here.
>> + *
>> + * Clobbers r0
>> + */
>> +FUNC_LOCAL(enable_mpu)
>> +    /* Set up memory attribute type tables */
>> +    mov_w r0, MAIR0VAL
>> +    mcr   CP32(r0, HMAIR0)
>> +    mov_w r0, MAIR1VAL
>> +    mcr   CP32(r0, HMAIR1)
>> +
>> +    mrc   CP32(r0, HSCTLR)
>> +    bic   r0, r0, #SCTLR_ELx_BR       /* Disable Background region */
>> +    orr   r0, r0, #SCTLR_Axx_ELx_M    /* Enable MPU */
>> +    orr   r0, r0, #SCTLR_Axx_ELx_C    /* Enable D-cache */
>> +    mcr   CP32(r0, HSCTLR)
>> +    isb
>> +
>> +    ret
>> +END(enable_mpu)
>> +
>> +/*
>> + * Maps the various sections of Xen (described in xen.lds.S) as different MPU
>> + * regions.
>> + *
>> + * Clobbers r0 - r5
>> + *
>> + */
>> +FUNC(enable_boot_cpu_mm)
>> +    /* Get the number of regions specified in MPUIR_EL2 */
>> +    mrc   CP32(r5, MPUIR_EL2)
>> +    and   r5, r5, #NUM_MPU_REGIONS_MASK
>> +
>> +    /* x0: region sel */
>> +    mov   r0, #0
>> +    /* Xen text section. */
>> +    mov_w   r1, _stext
>> +    mov_w   r2, _etext
>> +    prepare_xen_region r0, r1, r2, r3, r4, r5, attr_prbar=REGION_TEXT_PRBAR
>> +
>> +    /* Xen read-only data section. */
>> +    mov_w   r1, _srodata
>> +    mov_w   r2, _erodata
>> +    prepare_xen_region r0, r1, r2, r3, r4, r5, attr_prbar=REGION_RO_PRBAR
>> +
>> +    /* Xen read-only after init and data section. (RW data) */
>> +    mov_w   r1, __ro_after_init_start
>> +    mov_w   r2, __init_begin
>> +    prepare_xen_region r0, r1, r2, r3, r4, r5
>> +
>> +    /* Xen code section. */
>> +    mov_w   r1, __init_begin
>> +    mov_w   r2, __init_data_begin
>> +    prepare_xen_region r0, r1, r2, r3, r4, r5, attr_prbar=REGION_TEXT_PRBAR
>> +
>> +    /* Xen data and BSS section. */
>> +    mov_w   r1, __init_data_begin
>> +    mov_w   r2, __bss_end
>> +    prepare_xen_region r0, r1, r2, r3, r4, r5
>> +
>> +#ifdef CONFIG_EARLY_PRINTK
>> +    /* Xen early UART section. */
>> +    mov_w   r1, CONFIG_EARLY_UART_BASE_ADDRESS
>> +    mov_w   r2, (CONFIG_EARLY_UART_BASE_ADDRESS + CONFIG_EARLY_UART_SIZE)
>> +    prepare_xen_region r0, r1, r2, r3, r4, r5, attr_prbar=REGION_DEVICE_PRBAR, attr_prlar=REGION_DEVICE_PRLAR
>> +#endif
>> +
>> +    b    enable_mpu
>> +END(enable_boot_cpu_mm)
>> +
>> +/*
>> + * We don't yet support secondary CPUs bring-up. Implement a dummy helper to
>> + * please the common code.
>> + */
>> +FUNC(enable_secondary_cpu_mm)
>> +    PRINT("- SMP not enabled yet -\r\n")
>> +1:  wfe
>> +    b 1b
>> +END(enable_secondary_cpu_mm)
>> +
>> +/*
>> + * Local variables:
>> + * mode: ASM
>> + * indent-tabs-mode: nil
>> + * End:
>> + */
>> diff --git a/xen/arch/arm/include/asm/arm32/sysregs.h b/xen/arch/arm/include/asm/arm32/sysregs.h
>> index 22871999af..8d7b95d982 100644
>> --- a/xen/arch/arm/include/asm/arm32/sysregs.h
>> +++ b/xen/arch/arm/include/asm/arm32/sysregs.h
>> @@ -20,6 +20,15 @@
>>    * uses r0 as a placeholder register. */
>>   #define CMD_CP32(name...)      "mcr " __stringify(CP32(r0, name)) ";"
>>   
>> +#define REGION_TEXT_PRBAR       0x18    /* SH=11 AP=10 XN=0 */
>> +#define REGION_RO_PRBAR         0x1D    /* SH=11 AP=10 XN=1 */
>> +#define REGION_DATA_PRBAR       0x19    /* SH=11 AP=00 XN=1 */
>> +#define REGION_DEVICE_PRBAR     0x11    /* SH=10 AP=00 XN=1 */
>> +
>> +#ifdef __ASSEMBLY__
> In previous patch, you had empty lines surrounding the macro.
I will put a empty line here.
>
>> +#define WRITE_SYSREG_ASM(v, name) mcr CP32(v, name)
> Hmm, for arm64 you surrounded msr within "". Any reason for these style changes?

In arm64, it is

"msr " __stringify(name,) #v

One needs " " to treat this as string for concatenation. Otherwise, we 
get an error.

In the case of arm32, we don't need __stringify().

Let me know if it makes sense.

>
>> +#endif /* __ASSEMBLY__ */
> Why #endif given ...
#else /* __ASSEMBLY__ */
>
>> +
>>   #ifndef __ASSEMBLY__
> this one?
remove this.
>
>>   
>>   /* C wrappers */
>> diff --git a/xen/arch/arm/include/asm/cpregs.h b/xen/arch/arm/include/asm/cpregs.h
>> index aec9e8f329..a7503a190f 100644
>> --- a/xen/arch/arm/include/asm/cpregs.h
>> +++ b/xen/arch/arm/include/asm/cpregs.h
>> @@ -1,6 +1,8 @@
>>   #ifndef __ASM_ARM_CPREGS_H
>>   #define __ASM_ARM_CPREGS_H
>>   
>> +#include <asm/mpu/cpregs.h>
>> +
>>   /*
>>    * AArch32 Co-processor registers.
>>    *
>> diff --git a/xen/arch/arm/include/asm/mpu/cpregs.h b/xen/arch/arm/include/asm/mpu/cpregs.h
>> new file mode 100644
>> index 0000000000..e2f3b2264c
>> --- /dev/null
>> +++ b/xen/arch/arm/include/asm/mpu/cpregs.h
>> @@ -0,0 +1,27 @@
>> +/* SPDX-License-Identifier: GPL-2.0-only */
>> +
>> +#ifndef __ASM_ARM_MPU_CPREGS_H
> There are already 4 header files in this directory. Why don't you look at them
> to get a hint as for naming the header guards? You don't need ASM here.

Yes, this should be

__ARM_MPU_CPREGS_H

>
>> +#define __ASM_ARM_MPU_CPREGS_H
>> +
>> +#ifdef CONFIG_ARM_32
> If you look at cpregs.h, we only use #ifdef CONFIG_ARM_32 to protect aliases.
> I'd prefer to follow the same rules here.
ok.
>
>> +
>> +/* CP15 CR0: MPU Type Register */
>> +#define HMPUIR          p15,4,c0,c0,4
>> +
>> +/* CP15 CR6: MPU Protection Region Base/Limit/Select Address Register */
>> +#define HPRSELR         p15,4,c6,c2,1
>> +#define PRBAR_EL2       p15,4,c6,c3,0
>> +#define PRLAR_EL2       p15,4,c6,c8,1
>> +
>> +#define MPUIR_EL2       HMPUIR
>> +#define PRSELR_EL2      HPRSELR
>> +
>> +#endif /* CONFIG_ARM_32 */
> Emtpy line here
ok
>
>> +#endif /* __ASM_ARM_MPU_CPREGS_H */
>> +
>> +/*
>> + * Local variables:
>> + * mode: ASM
> This is not ASM file.

Ack

- Ayan

>
> ~Michal
>


From xen-devel-bounces@lists.xenproject.org Mon Apr 14 11:12:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 11:12:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.949809.1346260 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4HkG-0007Tm-Pc; Mon, 14 Apr 2025 11:12:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 949809.1346260; Mon, 14 Apr 2025 11:12:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4HkG-0007Tf-Mz; Mon, 14 Apr 2025 11:12:56 +0000
Received: by outflank-mailman (input) for mailman id 949809;
 Mon, 14 Apr 2025 11:12: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=JTEa=XA=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1u4HkE-00070E-TG
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 11:12:54 +0000
Received: from fout-b5-smtp.messagingengine.com
 (fout-b5-smtp.messagingengine.com [202.12.124.148])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 68c9f9cd-1921-11f0-9eae-5ba50f476ded;
 Mon, 14 Apr 2025 13:12:54 +0200 (CEST)
Received: from phl-compute-04.internal (phl-compute-04.phl.internal
 [10.202.2.44])
 by mailfout.stl.internal (Postfix) with ESMTP id 646851140141;
 Mon, 14 Apr 2025 07:12:52 -0400 (EDT)
Received: from phl-mailfrontend-01 ([10.202.2.162])
 by phl-compute-04.internal (MEProxy); Mon, 14 Apr 2025 07:12:52 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon,
 14 Apr 2025 07:12:50 -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: 68c9f9cd-1921-11f0-9eae-5ba50f476ded
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=fm2; t=1744629172;
	 x=1744715572; bh=YHVwdMVjGL5QR3+dJJD3f1i/SiTiAAAKJev6o/FoUAk=; b=
	dqDh6ltbJxAA2cLDS4Z/qcC01ZTWsN+ss/D1vScdHTOLT+cdRUGWVjmi4k7U7kN4
	wzB54aQc4o7r+zcOqtoEklBqsW0g+8dBy+qOCF8YQSSaZxYK+pnwOb3uTczVpbXO
	jAZjLZXtI9ZUVoZ/Qkx+Dc3J/+455nLQCTUDenQ8TiujHT+Fol6Zkp5GY87I2Wq+
	V7lBkHDtjQeX4QSn36JelQLpEBn2zw3iKG4TtWAyuQ5IRXdstQkxriTJbnoZVWMu
	uL5BFa62rW5bGBJ+TCHoOO99j4xQursNLNu29GR4/fZkfK/cSqCIm6riL3HHqG3o
	huWEqaJ0JORwAJ6rrCWkYQ==
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=fm2; t=
	1744629172; x=1744715572; bh=YHVwdMVjGL5QR3+dJJD3f1i/SiTiAAAKJev
	6o/FoUAk=; b=Zljl5rADHdB4UVYMCWDz9uz/sX+JKdXQ2ciai7Z7o5zOg76tL9y
	XHl5vMcSG2qX30MYb8IF5jytsSXV8GiOxyV3jxH7hdZhWpwQHFvYd+ZUZl7Lqqd2
	UGWyPRN9PO7A3nFZ2oWy0U0pi60Dxmvf1hODIasORrBzXE1bP4ooq7fqf24Dypun
	J1//7L/JrxBtX88Tm01rlCQGtwOKg5X+CCI8ezOVe92fL21l1Ur4JxepjsTmMZX2
	YpEax6WRmuu5J17GdAoz3JoWKovBy3V8Y+2ee9GGMgZvmxd2jY3ANgx/bQ2IW0xE
	w9TGMPCHfUspG3Juc1l/0nzwv41UB8gO9YA==
X-ME-Sender: <xms:s-38Z5kEltDnesyVYKT4cPPjs79aY7S-ecRg_iWBsylkJJo48C9UpA>
    <xme:s-38Z02HA8tacxVwZFEmrFnMtrtH1laXPXDK1UGQg7wmFKX8G0bh8Imt7MsK-D9KY
    -5x_RMnes5aoQ>
X-ME-Received: <xmr:s-38Z_ohbBRmcu5V40J1A5Wd48y0jDd37mrKVi7c1xv4ziA-3wnOxdFjuY_h_FQ0LbHuldKy5UbvPCTtNgN1pRckI7BwyDaRug>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvvddtgedtucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
    pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
    gvnhhtshculddquddttddmnecujfgurhepfffhvfevuffkfhggtggujgesghdtreertddt
    jeenucfhrhhomhepofgrrhgvkhcuofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuc
    eomhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecu
    ggftrfgrthhtvghrnhepgfduleetfeevhfefheeiteeliefhjefhleduveetteekveettd
    dvgeeuteefjedunecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhf
    rhhomhepmhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomh
    dpnhgspghrtghpthhtohepkedpmhhouggvpehsmhhtphhouhhtpdhrtghpthhtoheprghn
    ughrvgifrdgtohhophgvrhefsegtihhtrhhigidrtghomhdprhgtphhtthhopeigvghnqd
    guvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdprhgtphhtthhopegr
    nhhthhhonhihrdhpvghrrghrugesvhgrthgvshdrthgvtghhpdhrtghpthhtohepshhsth
    grsggvlhhlihhniheskhgvrhhnvghlrdhorhhgpdhrtghpthhtohepmhhitghhrghlrdho
    rhiivghlsegrmhgurdgtohhmpdhrtghpthhtoheptggrrhguohgvsegtrghrughovgdrtg
    homhdprhgtphhtthhopehjrghsohhnrdgrnhgurhihuhhksegrmhgurdgtohhmpdhrtghp
    thhtohepughpshhmihhthhesrghpvghrthhushhsohhluhhtihhonhhsrdgtohhm
X-ME-Proxy: <xmx:s-38Z5l_7DvWl25EZixqrD93wxJ88HyAt89G1GCtfBoChbbZsCxCYg>
    <xmx:s-38Z32OpYkx4vULZBQiZlADC9ZZNurW7N8-J_rYboLNIJO73hk60Q>
    <xmx:s-38Z4uVpJug6bMUb5fecrEPHGWsSSlEJB4kEG61sTke3qTqlpwmJA>
    <xmx:s-38Z7UfMPylBxV139Y2V_ahtn1vb2-QkKhonNgmn0bdptTslGh4UQ>
    <xmx:tO38Z0_FGT1lD1SdZCy7uM8enLkZ2UQBEKK621cxUamQqKji8JsKgW6M>
Feedback-ID: i1568416f:Fastmail
Date: Mon, 14 Apr 2025 13:12:47 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Jason Andryuk <jason.andryuk@amd.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>
Subject: Re: [PATCH v2 1/7] Rename and adjust x86 containers
Message-ID: <Z_ztsNSt9xuu4GVO@mail-itl>
References: <20250414101843.2348330-1-andrew.cooper3@citrix.com>
 <20250414101843.2348330-2-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="34lndeIRtVUehhwL"
Content-Disposition: inline
In-Reply-To: <20250414101843.2348330-2-andrew.cooper3@citrix.com>


--34lndeIRtVUehhwL
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Mon, 14 Apr 2025 13:12:47 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Jason Andryuk <jason.andryuk@amd.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>
Subject: Re: [PATCH v2 1/7] Rename and adjust x86 containers

On Mon, Apr 14, 2025 at 11:18:37AM +0100, Andrew Cooper wrote:
> Insert the Alpine version as we'll need a newer version in due course, and
> rename 'rootfs' to 'base' as the container really is not a rootfs on it's=
 own.
>=20
> In base, add bash.  It's added later by the rootfs generation anyway, but=
 this
> way we can write the generation script in bash too.
>=20
> In build, group and sort the packages.  Drop the ones we don't need, or a=
re
> pulled in by dependencies.  Include diffutils, findutils and gawk to avoid
> warnings in the kernel build.
>=20
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Reviewed-by: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblethingslab.c=
om>

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

--34lndeIRtVUehhwL
Content-Type: application/pgp-signature; name=signature.asc

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmf87bAACgkQ24/THMrX
1ywmzAf9FcCVuys8eiww8qNXoONqdd5bEE/KlpIZJuLcghK6K677fvkw4GQfjdXk
Ys+VTm7JhDEDjmYCkr1P5JtVJt6PeVErmRsTSzr8CJ4XJAv+uKQYz5ZxvUbSiG2D
KKbV9RrTzEBC2vZkL4XPcBZTey5fpDZBsVZBPSjBDAHEV1HMYToDoG3TJoueGeaU
1PzVU2i/hJdvKg7QIpK77mfEaiIFLd4q7wF/saJW5bitz4Kvj1o/yLmPKM4Xqbl6
UQYpOoDIgRoiHmlOG+wDIu7zSiAhpYY0A5ttfmuorQLNeErvAILpxM5oNVn1QH8N
ceF0bWrXj0op//wK2yBvNvt3edC8RA==
=thF5
-----END PGP SIGNATURE-----

--34lndeIRtVUehhwL--


From xen-devel-bounces@lists.xenproject.org Mon Apr 14 11:14:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 11:14:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.949822.1346271 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4Hlt-00082y-51; Mon, 14 Apr 2025 11:14:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 949822.1346271; Mon, 14 Apr 2025 11:14:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4Hlt-00082r-14; Mon, 14 Apr 2025 11:14:37 +0000
Received: by outflank-mailman (input) for mailman id 949822;
 Mon, 14 Apr 2025 11: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=GQ8q=XA=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1u4Hls-00082l-8x
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 11:14:36 +0000
Received: from NAM04-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam04on2062b.outbound.protection.outlook.com
 [2a01:111:f403:240a::62b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a3b8afdf-1921-11f0-9ffb-bf95429c2676;
 Mon, 14 Apr 2025 13:14:33 +0200 (CEST)
Received: from PH8PR12MB7326.namprd12.prod.outlook.com (2603:10b6:510:216::7)
 by SA5PPF8DEAB7A29.namprd12.prod.outlook.com
 (2603:10b6:80f:fc04::8d4) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.33; Mon, 14 Apr
 2025 11:14:29 +0000
Received: from PH8PR12MB7326.namprd12.prod.outlook.com
 ([fe80::6d76:9c33:d230:8264]) by PH8PR12MB7326.namprd12.prod.outlook.com
 ([fe80::6d76:9c33:d230:8264%2]) with mapi id 15.20.8632.030; Mon, 14 Apr 2025
 11:14:29 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a3b8afdf-1921-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=GvBVftWShBU/ucnWN3PYfO34Py7tUSHGwwJsVGwLe4L2oeoQv2mBD8LBINWSbIXovlk9NTanOLBhI1ngZTrqXYSYO9wmAHjKGFkorJtuEsa2w4C9Ph++fKfdkorMZwJbbKrJK6NeobiH0bUA6KgvG8Ddh9EGTAJNJuDbRcjFEmIZA2/naSrUOwdd3dIX5qeMRxvyp/dUbRkSMB4hDosg//rI4fHbtv2a1zZx8780mlhq9+3vjM2B6/KJB5DAFLP3ivmaTD32MQaImaNVPRzQ5v89Z2QnsRpcnsQqO4nKh1hfqwbt/A94wAVRsPboJNO03LOCU+DIihKRYux8czNN/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=UQ1I39lUThBQ27pD0pcNvLay4MSkVCaFkImRGpIQA5I=;
 b=TIjFoOa41LcEa4Q68FVP2+kqynvGd5dopxdYvisMbYe3jUMRStsmy++an8c37tHWiRmdiNmRQ/eZoft79IsQ3Mza5Xij2Kd+Bt0aZxa5JM3xS/c0dWMsNR3zeKA118PVMlsMXaOUWVOjoP573loXlvWMoDIPuRoN8xWQbBYG5w6199UvVvElMbfHtXf5UxevTuA7QKn9YkuX+kbHVBRv3V547G1Qtm8uFg9UGmen1MrXk591gp3MXdR2H+LBsu9Y3A/y7abzPAhVUormEOQSLvkKKjj52cEQoZTizjLs4WPwtZJktZEnnmzmAclQTiBqaspEjfhlS3bg/weIaFAA7g==
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=UQ1I39lUThBQ27pD0pcNvLay4MSkVCaFkImRGpIQA5I=;
 b=x9QWrIDCcaMlebDHQv+wS+OFh3Rec2h5IG1ic+7aSFgM0fwqYOArRtcfBp0RbLEZeJ1Zeky9Cikwk5V82PeHmOsJsZGLOqtSTsf2bWnzVgd0p8ASVu5TsSrF3D+3BVb9skqFhizz1bIT63UeSqq0dmE0Ke55EfpC5ZfPZHD0XfQ=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <d6cf087e-e1a3-4d89-a371-3d0b8aeb6395@amd.com>
Date: Mon, 14 Apr 2025 12:14:25 +0100
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 1/3] xen/arm: Move some of the functions to common file
Content-Language: en-GB
To: Ayan Kumar Halder <ayan.kumar.halder@amd.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>,
 Luca Fancellu <luca.fancellu@arm.com>
References: <20250411110452.3748186-1-ayan.kumar.halder@amd.com>
 <20250411110452.3748186-2-ayan.kumar.halder@amd.com>
From: Ayan Kumar Halder <ayankuma@amd.com>
In-Reply-To: <20250411110452.3748186-2-ayan.kumar.halder@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO2P265CA0276.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:a1::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_|SA5PPF8DEAB7A29:EE_
X-MS-Office365-Filtering-Correlation-Id: 9b3272e8-2eeb-4973-c52d-08dd7b458629
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?NFN3NkZDK08yak5KWDdvSFM3UDI0Y2x1bGc4UzhEb1g0K3pzcHhtTmVQMm5o?=
 =?utf-8?B?ZVVod2tZZmVGQmNydTUrVWpIcVpiQkJLRWpWWVVnbS9QTTE4OURiME1MZith?=
 =?utf-8?B?djJudTl1a3BNUGdUUDJxdGNlUnBCM284d3grSksvRUt0UDVpSTE0WkxiY2Zq?=
 =?utf-8?B?OHVQYU1kR21VOVFSK0lRN1h4R2JuUGZHRmQzcEQxNjBsbkJ0UENqQlhxcmpE?=
 =?utf-8?B?bVpteW5ZRWpuS3lRM1h4QjhZNnFTQWNxcGNucnpITk54S3pzUFVjYmxVOTlN?=
 =?utf-8?B?aWlLbDZ1cUNEaGtjNWYrNXIzaHB1ZXhpRU1VZEtIb20rL0RYSko4TjFRTXhV?=
 =?utf-8?B?R0VMS2R0Y09wSk9lWXRUZTAvT1BEalRKNUlnK3ZmSk0wNmp6MkxhbC8vZjVa?=
 =?utf-8?B?cWpGQm5nRHFrcHJlNmlJR3JGS0ZKTUhnay80bzBvSkdWOVBlQi9WS0lpRnpm?=
 =?utf-8?B?VXRjcUNpKzBYZWNKdUE5NFlSZmRkNDZzc01ZQWw5aXlGSnMrRWlGZjhmNHQr?=
 =?utf-8?B?eDJiQVpEampLWEhoeSs1VkJqd0VjSEx3a3RDNm95WjBCRElOT0VKQWJXbXFZ?=
 =?utf-8?B?MGpXSGdzMWpPcU54MUlOYUQ4bW1NdkhNcDJIVmhqZjFSSWRxN20vbDdUTGZj?=
 =?utf-8?B?RG1DQVVNNkhPNTZqK1dPc081VFd2MVJ6VnFML3A3bSthUFNuRmlGTFJPbVlC?=
 =?utf-8?B?bU8vZDBCcGEwaVo5RDJ2c3R5NHJ4S2dTZUZHcVNDdkJkL0FpRnNEcnpucHMz?=
 =?utf-8?B?bXp5M0swU1pMNU9mQml4MXdyR29ldFdRZlc1WFFSNTUrdlZnc3pkMUtwTlNz?=
 =?utf-8?B?R0s0MDJTQ3JxL3RyMjdrMHYyVWEvWHFJMi9xcVAxZzNXZHRDcDJuNnRUVzlH?=
 =?utf-8?B?aTdGY1I0Y1BJMkhQbTFTNm9UZExqQ1U1UE5UYTlFbmZtWFp4Y3NiZkxEWFFJ?=
 =?utf-8?B?aHNJcXFsUUJUR1JKbHJFWng0OFFERnJRV1NibmdPTHRHanVYam52Yzc1VzRW?=
 =?utf-8?B?TXhWbVRGMXZiMEZsZ1AxeE1vcm1BTjdQck00S3JYVDJHVVVOR0NlVUlxeUMw?=
 =?utf-8?B?TDdMOVpZcUV4a0NyVTlLQkRCc21Mc1E3OWJndXE1RGk4M0ZEcDRaMUFsUGdr?=
 =?utf-8?B?UWQvemFOSDFNNWZLRWtIUEdPTUc3V1lNL3Zrd1YxMUM4S3BheWdOOEt1a1ZC?=
 =?utf-8?B?SThmZFVHVno2YlVUOGtpV3RNK2F1a0VWR0YwUmtYK0RBYjl4TUM1QmV3ZjRB?=
 =?utf-8?B?ZEtPZDZlQjQvaVdESnFGQnVpMDkwbjE5cG90L016bEFGUnVEVnlqU09jVS9h?=
 =?utf-8?B?eVpMd21ROFZqRVozalpPOGtkWDZ2Zm9NWTVjUFo5YTBwZC95RmpheXZaN2lX?=
 =?utf-8?B?dGVxb1RMRVVHVHRHa1lLdlZiamF0bkRRWTlGSVJvbHAzZ1JvbVNFdmVtWHUy?=
 =?utf-8?B?VytGT0JnR2xzdUZDVGdWMFphTSs2K0Jic1o2amlDQWhHVm5RNHJTL0hydVhO?=
 =?utf-8?B?cFVWUURvRGhvQ3lxSG5STGJSQkNZbmtVRWo4QzMyQVJnT1QrbVorVGROM3Ex?=
 =?utf-8?B?YUdnNnQyTmZvTzZMRFdYcFBaZEljbUdSRGJ0SlJZWjQzMEg3RnpaWWFTK1Zu?=
 =?utf-8?B?dWdCcUNPeUlZZXlMcHlOdTdEektTakd6aHBxdUZ1aEhDYktmWjdFVTUvT200?=
 =?utf-8?B?ZnJ4WEI2ZHpBVDFGN3ovQjYxeEprS21XTkhBMC9LOUtsMGRRd2hOaS9WWFRN?=
 =?utf-8?B?Q2xlSUxGV2g1bjVRWHZPSU1RSk9XZ0x0MXM5N2xuVS9WMzJQemxXbkVSOWNH?=
 =?utf-8?B?OTB5VVdxQm95Vk5jeEdyY1V5eXJ0YnNYcXVsOGtFc1NHdW1mR2lycGdRQVBO?=
 =?utf-8?B?a3ZodVNZTG9NNW1DU0w3YTJaN3hsSC9Mdm5OQmh1YnovU2ErNEw0UGVXZ3Ry?=
 =?utf-8?Q?2kHShoExKDI=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?NTltYk9USXlGMFdRMzZHd0g0NFdUd1hveXJPcW93QlhXNTVpaVNOYWFsa0tm?=
 =?utf-8?B?ZXNrbkNoSFRkWGZKUzJiT2RCYkJ6SlZjSmx1U05JUHZtTFVOWFRMSlJGbkRu?=
 =?utf-8?B?QkpJR2VkVW1mVHR6dFJ0SFRPMnM3aGM5UVI2TVpDbGZsSkxhNVdlTE5YaU1v?=
 =?utf-8?B?cXZQbmd4elEyZWtLVElwaUQxZzZZaUh2N3k5VkxNREduUHNpOEN6WUZ5WVlv?=
 =?utf-8?B?c2dyZmcyQ0l0VVZ3ZTdSQVFLYXpnSEMxNjMyc3hIdDdWTWk0T3dmWGdSYXdQ?=
 =?utf-8?B?cm8zclp5V3M4UlFSUlppMGUwMXN4amZXZlkwMVR4MGlvTFBmelV1WU9BZllB?=
 =?utf-8?B?djczY0k2cjc4SVlVak9KZ1N4RU5MZzdOOW9YQThvckh3Y3YzbTZQUkRIa3hM?=
 =?utf-8?B?MGd0TEhyTHNnaVpWT3FuTU5QNkVWUEJTZExZTDVJNHJqNFRyVkhVVmRyR1Fv?=
 =?utf-8?B?d0ZEOGR4NEJObVdBMDBxWDBudFdNUis2TFI2cWh3dlhPcXgwTy83WXFJVkhk?=
 =?utf-8?B?L2RsY1VFTUVOaGFDZGxxTUNjM3A1SkVTNkt0M3laeHJVTWdRSjNtQitveE9y?=
 =?utf-8?B?blgwYk4rRXpvcS90Ni8zbW84VkxiTGpSbjJ6aWN4a0xwSFpmWERRQlRwSDMr?=
 =?utf-8?B?dFFsV2hCam4rS0h1VDlLK3ZJSm90ZzkvdWMrd2FuMXN6OTRCNXhkOGlOZ1Iw?=
 =?utf-8?B?Z0JadE5PUHZReDI4NWdsTWVnZnJoTHVoWVRQWThjb3lkdTcxbEJUVXA0eVpT?=
 =?utf-8?B?MWc5cEdYZ2VkZzZIUyt2SUtnT1hlSnZibG5qUFRnQTZkMFFkazlaQ0F1M3pu?=
 =?utf-8?B?UWhzMUlsNi9sd2E3SEhLYlNqa2xVSGJKNHppR2hndy9GOXBlczVvU0g2a0xo?=
 =?utf-8?B?amJYN0tEMG5jNFVZajhLcTlSZmZFWkJ4QXh5K0VJV2FKVXhCS1hzNEF6OUQr?=
 =?utf-8?B?QlpZczdlQnJURjhVRmZheHFuVjdYSUN1cUlKVGhIVnR6K1RhUHhjV2doUFZk?=
 =?utf-8?B?VFZYTGpKY2o4QXNGR2N3SVozSURhUXNoVVF6OFJvelBUZTNaVDBBV3k3YzM5?=
 =?utf-8?B?ckVBcjM4TXl1R21sbnJUaDF6T2UxUWh0K2tPVWRVd09CTlZVRnlRaDdsanpV?=
 =?utf-8?B?cDVCYjR6R1VHRGJscWRRNkRFVlpKcWJua2ZJVml2ZmkrRTVjNW1Pb2FhSFYy?=
 =?utf-8?B?aFdoQm0xV1RJcld0aHkzbWFXaE12SWVHMnJqY2JaS2l3T3dCREtIaFNzWXBm?=
 =?utf-8?B?TjVQUTg2YXJRUFovZS94ZXAyUlVDYTlVTnVvNWxMbUJGNFRQTmdkaGRza29x?=
 =?utf-8?B?d3RhS3lpMjVQanFWaTJsVzNrdEFZN3BKN1ZSZW93bVZWcW1IZG9HMjRNZUll?=
 =?utf-8?B?cXRQRytzSkFwamkzcEp2M0dSYWtGQi9EVXk5VGNBK1FUQkFKa0hQa2hYTU1L?=
 =?utf-8?B?QUN3SkdGc1JtTjdxME1TL3F6ZEkzb1FxcmY3Y3lScHZZNTlPTUhqcDJFL3U5?=
 =?utf-8?B?R0s3b3p5VXB4cmtMMTlSYUVTQmM1YVF5dWt5ZVRUbGlQdVc5TVF3UnFVR1J5?=
 =?utf-8?B?WWlzRkhPSXRJanNjZ2MzOFI3SGFnWDJIL3F3d04veWdZdjcwNkltdENEUDJw?=
 =?utf-8?B?YXA2L04ycHYrK3VRbk81b0dpUFlrZHQvZ05ibWlOV2pMZVNiR001NnRFRE9K?=
 =?utf-8?B?Y3Y5NU5VWTdEalBrT1FEc3pNOXpheVZHWWJlTEpSWlY1cERFendkZzVwdFpk?=
 =?utf-8?B?Si9RTGZ4VXloVEhWVTlqODJtL3NoV0d3eDJhZ2hHTk9jNnE3UWRtR0QzZFl0?=
 =?utf-8?B?azhYcmhVM1laYzQ4K29uYzBnMWsrS1pRQVZsWk1adHBDUGpjaEVWRm44ZnpR?=
 =?utf-8?B?ejVXTmhBWm11eE8rUk92Y0FWR1FVM3J5KzdzbjVpeXVraDJLTmdWbUJycTVu?=
 =?utf-8?B?LzdNNGhxU01RNG9Cc0ZZUndNM0dvYWJUcW9mTFRVNm53cXB3NkJZRlNNeWNF?=
 =?utf-8?B?eTA2Q2c1cVNIYmFueGN2bzN5Q1YzRG5WYlY3Vnk1cjdPMlN5R2p2dDFlY1dW?=
 =?utf-8?B?YzZkS2k3c0NPTTZjWU5MMlBWQ2ZHU3E0SXpDenF5UGpQMjZKRS9sbWFqamlR?=
 =?utf-8?Q?8+ZvxIp9sdf5veBqXmKkKSkK2?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9b3272e8-2eeb-4973-c52d-08dd7b458629
X-MS-Exchange-CrossTenant-AuthSource: PH8PR12MB7326.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Apr 2025 11:14:29.3184
 (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: wcO8+h9c9RPtOm8rXmljDKR+U5ibmaYClMNJgrAIm8JC8+y6I/Rq5Tq9+wYauX9TjZIXue6i0HjqBKd2/R68+Q==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA5PPF8DEAB7A29

Hi,

I will keep Michal's R-b with one small change.

On 11/04/2025 12:04, Ayan Kumar Halder wrote:
> regions.inc is added to hold the common earlyboot MPU regions configuration
> between arm64 and arm32.
>
> prepare_xen_region, fail_insufficient_regions() will be used by both arm32 and
> arm64. Thus, they have been moved to regions.inc.
>
> *_PRBAR are moved to arm64/sysregs.h.
> *_PRLAR are moved to regions.inc as they are common between arm32 and arm64.
>
> Introduce WRITE_SYSREG_ASM to write to the system registers from regions.inc.
>
> Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
> Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>
> ---
>
> Changes from
>
> v1 -
>
> 1. enable_mpu() now sets HMAIR{0,1} registers. This is similar to what is
> being done in enable_mmu(). All the mm related configurations happen in this
> function.
>
> 2. Fixed some typos.
>
> v2 -
> 1. Extracted the arm64 head.S functions/macros in a common file.
>
> v3 -
> 1. Moved *_PRLAR are moved to prepare_xen_region.inc
>
> 2. enable_boot_cpu_mm() is preserved in mpu/head.S.
>
> 3. STORE_SYSREG is renamed as WRITE_SYSREG_ASM()
>
> 4. LOAD_SYSREG is removed.
>
> 5. No need to save/restore lr in enable_boot_cpu_mm(). IOW, keep it as it was
> in the original code.
>
> v4 -
> 1. Rename prepare_xen_region.inc to common.inc
>
> 2. enable_secondary_cpu_mm() is moved back to mpu/head.S.
>
> v5 -
> 1. Rename common.inc to regions.inc.
>
> 2. WRITE_SYSREG_ASM() in enclosed within #ifdef __ASSEMBLY__.
>
>   xen/arch/arm/arm64/mpu/head.S            | 78 +----------------------
>   xen/arch/arm/include/asm/arm64/sysregs.h | 13 ++++
>   xen/arch/arm/include/asm/mpu/regions.inc | 79 ++++++++++++++++++++++++
>   3 files changed, 93 insertions(+), 77 deletions(-)
>   create mode 100644 xen/arch/arm/include/asm/mpu/regions.inc
>
> diff --git a/xen/arch/arm/arm64/mpu/head.S b/xen/arch/arm/arm64/mpu/head.S
> index ed01993d85..6d336cafbb 100644
> --- a/xen/arch/arm/arm64/mpu/head.S
> +++ b/xen/arch/arm/arm64/mpu/head.S
> @@ -3,83 +3,7 @@
>    * Start-of-day code for an Armv8-R MPU system.
>    */
>   
> -#include <asm/early_printk.h>
> -#include <asm/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 */
> -#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.
> - * 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
> - * Output:
> - *  \sel: Next available region selector index.
> - * Clobbers \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)
> +#include <asm/mpu/regions.inc>
>   
>   /*
>    * Enable EL2 MPU and data cache
> diff --git a/xen/arch/arm/include/asm/arm64/sysregs.h b/xen/arch/arm/include/asm/arm64/sysregs.h
> index b593e4028b..dba0248c88 100644
> --- a/xen/arch/arm/include/asm/arm64/sysregs.h
> +++ b/xen/arch/arm/include/asm/arm64/sysregs.h
> @@ -462,6 +462,17 @@
>   #define ZCR_ELx_LEN_SIZE             9
>   #define ZCR_ELx_LEN_MASK             0x1ff
>   
> +#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 */
> +
> +#ifdef __ASSEMBLY__
> +
> +#define WRITE_SYSREG_ASM(v, name) "msr " __stringify(name,) #v
> +
> +#else /* !__ASSEMBLY__ */

change this to make it consistent as patch 2.

#else /* __ASSEMBLY__ */

- Ayan



From xen-devel-bounces@lists.xenproject.org Mon Apr 14 11:15:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 11:15:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.949838.1346281 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4Hmo-0000CH-Gc; Mon, 14 Apr 2025 11:15:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 949838.1346281; Mon, 14 Apr 2025 11:15:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4Hmo-0000CA-Co; Mon, 14 Apr 2025 11:15:34 +0000
Received: by outflank-mailman (input) for mailman id 949838;
 Mon, 14 Apr 2025 11: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=JTEa=XA=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1u4Hmn-00082l-C4
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 11:15:33 +0000
Received: from fout-b5-smtp.messagingengine.com
 (fout-b5-smtp.messagingengine.com [202.12.124.148])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c66ee0e4-1921-11f0-9ffb-bf95429c2676;
 Mon, 14 Apr 2025 13:15:31 +0200 (CEST)
Received: from phl-compute-11.internal (phl-compute-11.phl.internal
 [10.202.2.51])
 by mailfout.stl.internal (Postfix) with ESMTP id E6E4D1140162;
 Mon, 14 Apr 2025 07:15:29 -0400 (EDT)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-11.internal (MEProxy); Mon, 14 Apr 2025 07:15:30 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon,
 14 Apr 2025 07:15: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: c66ee0e4-1921-11f0-9ffb-bf95429c2676
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=fm2; t=1744629329;
	 x=1744715729; bh=RsSLBnmvKC+7cW6pj9tCcX+ncCfbYkrFfvzHM6CDIns=; b=
	bFJEn5iv5HqEsctJLqcxfoved6GhJLsKugGelxk5jftKQoXhsKB6ipsLxa101wa4
	4zlSNyaZqbgFw2UeXHKZruXqgoRQYz3o7yRTPiyf6GxqFr4I73HlRFSuO8Mb7vnZ
	VrCArJ3N3CA++uAiBYc0p1dZdF/CP1jLNrnMGjPayUDaKOHQDUq/YoChfr45/4FM
	LMk38ycqN/yd8vgzWWqz/CQw5Mchxe0jDhmNENMLcf9b0JNTxbbmjMM+NlKXs7NT
	8VEcheyOPrIXOD2Qi4mchdpjg5Cnn2fe1qphZyB+j6OWRdht5q1FqejsEHI3OTNY
	y5MVAb1/8bEDBfBOC2C17A==
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=fm2; t=
	1744629329; x=1744715729; bh=RsSLBnmvKC+7cW6pj9tCcX+ncCfbYkrFfvz
	HM6CDIns=; b=VxLrg3tcx9vYJXP0pDpU0pWR/RhRdpNnW6u76U0HOkkO3gVofW1
	OhhaD/UvziD7awQbc8C+VfU9NUQN3Jqs4qF1cWYV5jgzuJsO+TW8xnx5kZ+H3YQ0
	fa0jo1YCu74Iwq3YPtSijk0iztQ5reU1dsyB9P8L7/0EhvtGov/x0D7pHPhj5xBm
	46gOT/1j9xQ9/IXajR9G3y4qKlQTWRvkBsCIqUdTkBQXLIJxu0RtIwOQv/ykRC8N
	sH2w5xE6tLxScla8u7tmR2XoSjeY5SNasf3UNNofjM4lMHjLWXyXh3ZOzFw8/LbS
	KxGHJzv1rgsUr7kzdvQ33sUQ9MOYt2MEoeQ==
X-ME-Sender: <xms:Ue78Z8q0Sgmx2h74L-o0-tHLr_YFWom2rihKiqKaGm7lqstC77wB7Q>
    <xme:Ue78ZyqSajF_p4hBpKgGNPo5D-Mk9Ro-aTXEKds9zld7eQLr2X-vVwCZn7Mu8-Hac
    kNe-3TSqt2tUA>
X-ME-Received: <xmr:Ue78ZxNQyusWyw74zK6xu5szsIHbNlHBkvhFs0S4mxm9EeBXPiZmm4VA-YTGccDmkbeVQ-CqR-3v2vgd6l2m9TPHk7b_iGoA7g>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvvddtgedtucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
    pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
    gvnhhtshculddquddttddmnecujfgurhepfffhvfevuffkfhggtggujgesghdtreertddt
    jeenucfhrhhomhepofgrrhgvkhcuofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuc
    eomhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecu
    ggftrfgrthhtvghrnhepgfduleetfeevhfefheeiteeliefhjefhleduveetteekveettd
    dvgeeuteefjedunecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhf
    rhhomhepmhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomh
    dpnhgspghrtghpthhtohepjedpmhhouggvpehsmhhtphhouhhtpdhrtghpthhtoheprghn
    ughrvgifrdgtohhophgvrhefsegtihhtrhhigidrtghomhdprhgtphhtthhopeigvghnqd
    guvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdprhgtphhtthhopegu
    mhhukhhhihhnsehfohhrugdrtghomhdprhgtphhtthhopegrnhhthhhonhihrdhpvghrrg
    hrugesvhgrthgvshdrthgvtghhpdhrtghpthhtohepshhsthgrsggvlhhlihhniheskhgv
    rhhnvghlrdhorhhgpdhrtghpthhtohepmhhitghhrghlrdhorhiivghlsegrmhgurdgtoh
    hmpdhrtghpthhtoheptggrrhguohgvsegtrghrughovgdrtghomh
X-ME-Proxy: <xmx:Ue78Zz6WfLlrWm-FbkncwcV6__z9HDGENayZIfuJ3o5BOlk0UM2uMg>
    <xmx:Ue78Z75wc2pDEUljIOVHhnySa0d1cF6aIUsVlVpeTCWC2WRfE_dmzQ>
    <xmx:Ue78ZzhRgD7oqk2k9qpdqv7332r2QnP_GVukKvH0REhZYgjBENjdVQ>
    <xmx:Ue78Z1522MfN7vMbf2rOcNOKPQuDo8cE8ahOCg-SNOLiGIMmSTe8Kg>
    <xmx:Ue78ZyAogJyb5UsiopN3sWQGIcy925jrSJXr60cKShSqQnKH7y-lqzde>
Feedback-ID: i1568416f:Fastmail
Date: Mon, 14 Apr 2025 13:15:26 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
	Denis Mukhin <dmukhin@ford.com>,
	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 v2 3/7] Rework rootfs generation to make a cpio archive
Message-ID: <Z_zuTiYSY7qgToRd@mail-itl>
References: <20250414101843.2348330-1-andrew.cooper3@citrix.com>
 <20250414101843.2348330-4-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="5t/yxu3MjlztxTBv"
Content-Disposition: inline
In-Reply-To: <20250414101843.2348330-4-andrew.cooper3@citrix.com>


--5t/yxu3MjlztxTBv
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Mon, 14 Apr 2025 13:15:26 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
	Denis Mukhin <dmukhin@ford.com>,
	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 v2 3/7] Rework rootfs generation to make a cpio archive

On Mon, Apr 14, 2025 at 11:18:39AM +0100, Andrew Cooper wrote:
> Rename the script as we're going to use it for ARM64 shortly, and have it=
 take
> a tar or cpio parameter to determine the output format.
>=20
> Turn it into a proper bash script, and provide the cpio form under the new
> artefact naming scheme.
>=20
> No functional change.
>=20
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Reviewed-by: Denis Mukhin <dmukhin@ford.com>

Reviewed-by: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblethingslab.c=
om>

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

--5t/yxu3MjlztxTBv
Content-Type: application/pgp-signature; name=signature.asc

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmf87k4ACgkQ24/THMrX
1yyTxggAmQr2mn+JCa5Wl0nZ7al4PtEbfw9dbrA6jAR84VMSErgxzRs3lo69QsXW
yuxvCKd55XGn/ZQoGSD/G2MoNdITzTLhVtR6pduiBwYXAZFCOrIfW3Omd4cG6Agn
rilqydyXfURv4UjjmRxf3h7cjnwny1f+9jtQF+FHD3KAxmmyfsn2K07arhvaBQYn
cR7uPow1cmRtJa/ZDVPqRzssgGZ6jpXVEx8fheO7RtKZAAXbEbrqC/baITxV7jce
G23WjzK68GFQS7NuAXY4KdK+LSwu8TGd8dyzAwfhq7/jEk3RBbRgU7NBXqnTrf71
NNXgmYe2IBJAkVdhjarxROsoCDo1VA==
=VA7u
-----END PGP SIGNATURE-----

--5t/yxu3MjlztxTBv--


From xen-devel-bounces@lists.xenproject.org Mon Apr 14 11:18:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 11:18:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.949849.1346291 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4Hph-0000n2-SM; Mon, 14 Apr 2025 11:18:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 949849.1346291; Mon, 14 Apr 2025 11:18: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 1u4Hph-0000mv-PY; Mon, 14 Apr 2025 11:18:33 +0000
Received: by outflank-mailman (input) for mailman id 949849;
 Mon, 14 Apr 2025 11:18: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=ezPI=XA=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u4Hpg-0000mp-KL
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 11:18:32 +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 32530970-1922-11f0-9eae-5ba50f476ded;
 Mon, 14 Apr 2025 13:18:31 +0200 (CEST)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-4394a823036so41858655e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 14 Apr 2025 04:18:31 -0700 (PDT)
Received: from [10.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-39eaf43cdfdsm10905189f8f.61.2025.04.14.04.18.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 14 Apr 2025 04:18: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: 32530970-1922-11f0-9eae-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744629511; x=1745234311; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=0B+cNQmVAv99SuiPFISj3QcuvgbelmKU6KVzrMlLTzA=;
        b=KNKgRm8ovhiAW2gfXLUZIamlDm1w7O3Fkdz7Pf8QJkhaO3d4UQQZBCottQSzUTypwg
         mZPGgA6BSVf5Pr5xqToCWS8c+kkp9nJOBQh933kf6EgiszoBHbqRfQmB1V2OLhxTVEM0
         WzAxUArkEAJbb+Cqi7ZyzC6aQd3oZv8vt0tkYXdfblZ/DiLQEwPz20are7/0ARX+SgE4
         xOPGwO6mUISP3Vs6I9sWImLqoyyHOzB+/Ma9qcvwU/AHhA09rreGV0Y/jYN5k/3SmnD1
         e4Wc+TXQQcQYoYtMhMMte44Dye9qktzHEn6qYwdbch8/wehEDVBxLsie7NAblHYPLXv4
         fOAQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744629511; x=1745234311;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=0B+cNQmVAv99SuiPFISj3QcuvgbelmKU6KVzrMlLTzA=;
        b=BB5Ej7L5yu6uP1qNuCllWpWK+HHp11XccyITArPSfIsJG+4Sq2kwsmF85u9BZpWF/1
         GxxJ7e9phG9tBdVlUrKdHFqlBBUHizkKnDy946fqbw6rmVXdrFwplI21OkOeKkzmEbXC
         OhmTsgFOiKPgxDiK8NQDy35NvH76rNalRIAez02NrvrMyajA0rrpPxET38sdOyNn/E18
         tG+iGYdAyIN2c0gyRrb4LH8Kh5TSX/WAAOHxP+1rbK3uDuG1tlOb5WfJhvhdBpdB9i8Z
         2vZMTSjTlk6uzcOf50QWvee6ulkLjCtRZ2DXvKwiHJsxZ6/s8uc33qKsoghuSutYtFYf
         oZqQ==
X-Forwarded-Encrypted: i=1; AJvYcCXpMwAPS5FtoxkMqfEkQO2xscmo+At4TiLSryMSRG+t328Zt9DGRMs3mStmNvRa2uIfTY+uzVbkRJw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxTTpPvHuFNlejk6gk7YdPLcJJShACN6mkrRnctAj9Dx234wNyk
	vPj1Fa1k5M7dXHCu1OBFXBvKoozWf8T8UFm6ZbwMzNHj6t3wZ+X0SLhB2JCOBw==
X-Gm-Gg: ASbGnctTHO9A5KKGI1oharc4W05o9S+oy+NUCkbJhWBSEM10Ta1I16OfHn97EmJKQA2
	egUp1Hs4V5/dyZKhDcM9CC7lAuLa92b8fiogW+aGUpLOYThNXL+bUSGG75LMOyUa6yxo8insw+p
	2a5pToypZ2A5awkqoJ55TjtFQTdvS/Dlkm8/Lo9lcfa2x789CDNM4jeMR/Nnnh9jZO+rFAYq4qa
	JTjNW8waN4MsB1p09HH7WCR35kaJXNktKqKRyh3rqXsAEHgvZhDWxoxtJQIJU0HS3nrmOjJ+I5N
	lmaY1ycx31I8jnDEvRjwzDBsYM23b4zS1a6shHOkhwgi7iZCk/ptByJknpV1odfRs6yU28KynDk
	+oIzN8VEf8t+SQaoIIPba78iCbE6DCsx1UgzQ
X-Google-Smtp-Source: AGHT+IG6VC0eWD9d+ZUYSxXlvoFED6PJGCPDNa6OrgT0Kt5PJqwxo3qtpORUHnjKKDjiaum7Zifyiw==
X-Received: by 2002:a05:6000:1448:b0:38f:4d20:4a17 with SMTP id ffacd0b85a97d-39ea51f4548mr10336730f8f.13.1744629510682;
        Mon, 14 Apr 2025 04:18:30 -0700 (PDT)
Message-ID: <18678682-9107-4489-8321-29ab0e80b7d6@suse.com>
Date: Mon, 14 Apr 2025 13:18:31 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 10/15] xen/cpufreq: only set gov NULL when
 cpufreq_driver.setpolicy is NULL
To: Penny Zheng <Penny.Zheng@amd.com>
Cc: ray.huang@amd.com, xen-devel@lists.xenproject.org
References: <20250414074056.3696888-1-Penny.Zheng@amd.com>
 <20250414074056.3696888-11-Penny.Zheng@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20250414074056.3696888-11-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 14.04.2025 09:40, Penny Zheng wrote:
> amd-cppc on active mode bypasses the scaling governor layer, and
> provides its own P-state selection algorithms in hardware. Consequently,
> when it is used, the driver's -> setpolicy() callback is invoked
> to register per-CPU utilization update callbacks, not the ->target()
> callback.
> 
> So, only when cpufreq_driver.setpolicy is NULL, we need to deliberately
> set old gov as NULL to trigger the according gov starting.
> 
> Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
> Reviewed-by: Jan Beulich <jbeulich@suse.com>
> ---
> v3 -> v4:
> - fix indentation and this commit is independent of all earlier patches

I've committed this, but had to adjust for fuzz first. Would be nice if such
entirely ready (i.e. also independent) patches could be moved to the front of
the containing series.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Apr 14 11:21:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 11:21:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.949861.1346300 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4HsH-0002l3-8I; Mon, 14 Apr 2025 11:21:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 949861.1346300; Mon, 14 Apr 2025 11:21: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 1u4HsH-0002kw-5J; Mon, 14 Apr 2025 11:21:13 +0000
Received: by outflank-mailman (input) for mailman id 949861;
 Mon, 14 Apr 2025 11:21: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 1u4HsF-0002kj-PO
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 11:21: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 1u4HsF-00EoZk-0u;
 Mon, 14 Apr 2025 11:21:11 +0000
Received: from [143.198.24.140] (helo=[100.81.22.8])
 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 1u4HsE-00D5Im-2g;
 Mon, 14 Apr 2025 11:21: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=XQZ8rZqCZJyrXxMxSMY0M5BftYWjPn/PjsXN+wqNehs=; b=U9QxMM8VYaM1l6dTU0JnezEwa9
	XY46TORc2/85UKGm43Ifu+oFsWFXblAjmg921mZZu+b1rFWqmZxtLuj7hyIhJWo87+31LQpr+zHn5
	ipibVaF0liwLSj7JarbNXWXGtbnhj9NpkKcT5a04rDz+TBH7FAO9lF7ICaiMamsdDp+c=;
Message-ID: <b401f18a-f32a-46c2-8e2f-343a4eb134b8@xen.org>
Date: Mon, 14 Apr 2025 20:21:05 +0900
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 2/3] xen/arm32: Create the same boot-time MPU regions
 as arm64
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: <20250411110452.3748186-1-ayan.kumar.halder@amd.com>
 <20250411110452.3748186-3-ayan.kumar.halder@amd.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20250411110452.3748186-3-ayan.kumar.halder@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Ayan,

On 11/04/2025 20:04, Ayan Kumar Halder wrote:
> diff --git a/xen/arch/arm/include/asm/arm32/sysregs.h b/xen/arch/arm/include/asm/arm32/sysregs.h
> index 22871999af..8d7b95d982 100644
> --- a/xen/arch/arm/include/asm/arm32/sysregs.h
> +++ b/xen/arch/arm/include/asm/arm32/sysregs.h
> @@ -20,6 +20,15 @@
>    * uses r0 as a placeholder register. */
>   #define CMD_CP32(name...)      "mcr " __stringify(CP32(r0, name)) ";"
>   
> +#define REGION_TEXT_PRBAR       0x18    /* SH=11 AP=10 XN=0 */
> +#define REGION_RO_PRBAR         0x1D    /* SH=11 AP=10 XN=1 */
> +#define REGION_DATA_PRBAR       0x19    /* SH=11 AP=00 XN=1 */
> +#define REGION_DEVICE_PRBAR     0x11    /* SH=10 AP=00 XN=1 */
> +
> +#ifdef __ASSEMBLY__
> +#define WRITE_SYSREG_ASM(v, name) mcr CP32(v, name)
> +#endif /* __ASSEMBLY__ */
> +
>   #ifndef __ASSEMBLY__
>   
>   /* C wrappers */
> diff --git a/xen/arch/arm/include/asm/cpregs.h b/xen/arch/arm/include/asm/cpregs.h
> index aec9e8f329..a7503a190f 100644
> --- a/xen/arch/arm/include/asm/cpregs.h
> +++ b/xen/arch/arm/include/asm/cpregs.h
> @@ -1,6 +1,8 @@
>   #ifndef __ASM_ARM_CPREGS_H
>   #define __ASM_ARM_CPREGS_H
>   
> +#include <asm/mpu/cpregs.h>

Just to confirm, the CP registers used by the MPU will never be used for 
an other purpose on MMU systems, is that correct?

> diff --git a/xen/arch/arm/include/asm/mpu/cpregs.h b/xen/arch/arm/include/asm/mpu/cpregs.h
> new file mode 100644
> index 0000000000..e2f3b2264c
> --- /dev/null
> +++ b/xen/arch/arm/include/asm/mpu/cpregs.h
> @@ -0,0 +1,27 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +
> +#ifndef __ASM_ARM_MPU_CPREGS_H
> +#define __ASM_ARM_MPU_CPREGS_H
> +
> +#ifdef CONFIG_ARM_32

I am not sure I agree with the placement of this ifdef. Is the 
implication that 32-bit domain will never be supported on arm64? If not, 
then everything but the aliases should be available for 64-bit (like we 
already do in asm/cpregs.h).

> +
> +/* CP15 CR0: MPU Type Register */
> +#define HMPUIR          p15,4,c0,c0,4
> +
> +/* CP15 CR6: MPU Protection Region Base/Limit/Select Address Register */
> +#define HPRSELR         p15,4,c6,c2,1
> +#define PRBAR_EL2       p15,4,c6,c3,0
> +#define PRLAR_EL2       p15,4,c6,c8,1

I am a little bit surprised the registers have _EL2 in their name. By 
any chance are you using the aarch64 naming? If so, please provide the 
32-bit name and add an alias below.

> +
> +#define MPUIR_EL2       HMPUIR
> +#define PRSELR_EL2      HPRSELR

Please add a comment on top explaining why we have the aliases (see in 
cpregs.h).

> +
> +#endif /* CONFIG_ARM_32 */
> +#endif /* __ASM_ARM_MPU_CPREGS_H */
> +
> +/*
> + * Local variables:
> + * mode: ASM
> + * indent-tabs-mode: nil
> + * End:
> + */

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Mon Apr 14 11:25:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 11:25:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.949884.1346343 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4HwL-0005Bq-2l; Mon, 14 Apr 2025 11:25:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 949884.1346343; Mon, 14 Apr 2025 11:25: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 1u4HwK-0005Bj-Vd; Mon, 14 Apr 2025 11:25:24 +0000
Received: by outflank-mailman (input) for mailman id 949884;
 Mon, 14 Apr 2025 11:25: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=JTEa=XA=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1u4HwK-0005Bd-CZ
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 11:25:24 +0000
Received: from fhigh-b4-smtp.messagingengine.com
 (fhigh-b4-smtp.messagingengine.com [202.12.124.155])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 27616937-1923-11f0-9eae-5ba50f476ded;
 Mon, 14 Apr 2025 13:25:23 +0200 (CEST)
Received: from phl-compute-03.internal (phl-compute-03.phl.internal
 [10.202.2.43])
 by mailfhigh.stl.internal (Postfix) with ESMTP id BF38A2540201;
 Mon, 14 Apr 2025 07:25:21 -0400 (EDT)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-03.internal (MEProxy); Mon, 14 Apr 2025 07:25:21 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon,
 14 Apr 2025 07:25:20 -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: 27616937-1923-11f0-9eae-5ba50f476ded
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=fm2; t=1744629921;
	 x=1744716321; bh=T78yndSFkF25qy6wm7BDhLd54IBW4DKs/uPlUEyLFXc=; b=
	XGF+Ng2iyWsuULkTVFRVe4M0iUV1ApvQ+nXkkkKAOH65SX5P3HwWv93BMsK4vA7G
	OeBFmOw4EdKD9hZneUvRj58GUacPO8Po79WBBLGEpwz8k7Qu5T4ZMyGkLUc4eGgs
	gEjHak49bWsFrl/WFfBBji2o6TxnM4FuccNd+X976V40xbHfEwS/VHRtGc3muVcG
	k8zEJ/X6+P/2JMIeUVK7H9+35tRNgjYgp1oK3WyW8ijhuagDgckiHPZwW1nBb8Kg
	Fx5hwV10qeAvlQs15VREaR2MualrIzfMGB7SJWBiV9nsECkAEpRkFkFvwNTzSQwk
	7VRpIY9fKQV6OTGy0wqvtQ==
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=fm2; t=
	1744629921; x=1744716321; bh=T78yndSFkF25qy6wm7BDhLd54IBW4DKs/uP
	lUEyLFXc=; b=eMcqTjG8iLlbTpYnpNInWS145IouEtVWYmF2aEgQnr8BGLxsPwJ
	lsA3QTtR3p3OACigQH7FZrc6v4MoovE86/x7KOXhot11NDEEiEIx1vHBW9B7Vd8r
	nmolaeYNdtI1oIsfhLNjJUvQBBxOwehpXcgF7omzgUk/hP+A/vR267WQy+LCVjDy
	HneocEkqSiLV3gILeQmQBa+YqhaNC3Uhefsk/uHekFRoJm6mNaVKWN2ewL3TgdSj
	YoVF4duotUhMgz8DzBfaicdBb3qpW7g3befvJLgFUO7bIM18D03CyjnSp3MIDUWR
	WebI9bImyu4gDrLpKNdQLXWu3iPrYoEMIAQ==
X-ME-Sender: <xms:ofD8Z12_HrHvNkCwn6cm938DdTzybXGScs43zTYn6hkHy8gGSPZk2g>
    <xme:ofD8Z8Ekt2E5NBPxbphe_BycMZlqXCAfADzle4G4eHFBCe71aVlUN8hdhdDlq0DXZ
    YeuKV7zQc51FQ>
X-ME-Received: <xmr:ofD8Z15kTF2QNBNlWWaS46D6EAUDCWcCVwn30AIW-jTyksWeDtM5nVEuFab2gsU5XPcxcDavmneY7MkrjFi1wCPxYHvKi98XTA>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvvddtgeefucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
    pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
    gvnhhtshculddquddttddmnecujfgurhepfffhvfevuffkfhggtggujgesghdtreertddt
    jeenucfhrhhomhepofgrrhgvkhcuofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuc
    eomhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecu
    ggftrfgrthhtvghrnhepgfduleetfeevhfefheeiteeliefhjefhleduveetteekveettd
    dvgeeuteefjedunecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhf
    rhhomhepmhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomh
    dpnhgspghrtghpthhtohepiedpmhhouggvpehsmhhtphhouhhtpdhrtghpthhtoheprghn
    ughrvgifrdgtohhophgvrhefsegtihhtrhhigidrtghomhdprhgtphhtthhopeigvghnqd
    guvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdprhgtphhtthhopegr
    nhhthhhonhihrdhpvghrrghrugesvhgrthgvshdrthgvtghhpdhrtghpthhtohepshhsth
    grsggvlhhlihhniheskhgvrhhnvghlrdhorhhgpdhrtghpthhtohepmhhitghhrghlrdho
    rhiivghlsegrmhgurdgtohhmpdhrtghpthhtoheptggrrhguohgvsegtrghrughovgdrtg
    homh
X-ME-Proxy: <xmx:ofD8Zy2cPqv-ZLRMIlURAG-TmWUaDeSF2oZypNqXPPHmGerCSilSBA>
    <xmx:ofD8Z4GxuGV7_XCAqj6TIkfgbBE3_d8LCOzA3SDw7RLT0ZYqkFmRXA>
    <xmx:ofD8Zz8W8ECiU-a-pSnplxQm3OA1AZT6Q1d2h8f0uAnV6iNHN9rFxg>
    <xmx:ofD8Z1mk5_BL_7_Jyr7UFSPcGqrNeanc2JS3Oiyatft7eTuZC57gdw>
    <xmx:ofD8Z6Y7Q_M8xo9FhebKLcNsbhEA9Fc-S8wnANiMZ8zrpNqYc0MwZ7kJ>
Feedback-ID: i1568416f:Fastmail
Date: Mon, 14 Apr 2025 13:25:18 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>,
	Doug Goldstein <cardoe@cardoe.com>
Subject: Re: [PATCH v2 4/7] Shrink the rootfs substantially
Message-ID: <Z_zwnpmO_6VLwoMM@mail-itl>
References: <20250414101843.2348330-1-andrew.cooper3@citrix.com>
 <20250414101843.2348330-5-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="gxC3D/kKw+fomu75"
Content-Disposition: inline
In-Reply-To: <20250414101843.2348330-5-andrew.cooper3@citrix.com>


--gxC3D/kKw+fomu75
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Mon, 14 Apr 2025 13:25:18 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>,
	Doug Goldstein <cardoe@cardoe.com>
Subject: Re: [PATCH v2 4/7] Shrink the rootfs substantially

On Mon, Apr 14, 2025 at 11:18:40AM +0100, Andrew Cooper wrote:
> bash, busybox, musl and zlib are all in the base container.
>=20
> python3 and ncurses are in principle used by bits of Xen, but not in anyt=
hing
> we test in CI.  argp-standlone, curl, dbus, libfdt, libgcc and sudo aren't
> used at all (for x86 at least).
>=20
> libbz2 and libuuid were pulled in transitively before, and need to be inc=
luded
> explicitly now.
>=20
> Use apk --no-cache to avoid keeping a ~2M package index on disk.
>=20
> Remove the modules scan on boot.  We don't have or build any.  This remov=
es a
> chunk of warnings on boot.

Strictly speaking there is xen-argo.ko, but that's handled manually
anyway, so probably not worth mentioning.

> This shrinks the rootfs from ~30M down to ~8M.
>=20
> No practical change.

This also adds some preparation (the case on `uname -m`) for ARM64
rootfs, would be nice to mention it too. Especially since libfdt removed
here will be re-added for ARM.

> 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: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblethingslab.com>
> ---
>  scripts/alpine-rootfs.sh | 60 +++++++++++++++++++++++-----------------
>  1 file changed, 34 insertions(+), 26 deletions(-)
>=20
> diff --git a/scripts/alpine-rootfs.sh b/scripts/alpine-rootfs.sh
> index 75e2f8648ce5..72c29e0a0a13 100755
> --- a/scripts/alpine-rootfs.sh
> +++ b/scripts/alpine-rootfs.sh
> @@ -4,33 +4,42 @@ set -eu
> =20
>  WORKDIR=3D"${PWD}"
>  COPYDIR=3D"${WORKDIR}/binaries"
> +UNAME=3D$(uname -m)
> =20
> -apk update
> +apk --no-cache update

This is no-op, no? IIUC the only thing `apk update` does is updating the
cache, which you disabled...

> -# xen runtime deps
> -apk add musl
> -apk add libgcc
> -apk add openrc
> -apk add busybox
> -apk add sudo
> -apk add dbus
> -apk add bash
> -apk add python3
> -apk add zlib
> -apk add lzo
> -apk add ncurses
> -apk add yajl
> -apk add libaio
> -apk add xz
> -apk add util-linux
> -apk add argp-standalone
> -apk add libfdt
> -apk add glib
> -apk add pixman
> -apk add curl
> -apk add udev
> -apk add pciutils
> -apk add libelf
> +PKGS=3D(
> +    # System
> +    openrc
> +    udev
> +    util-linux
> +
> +    # Xen toolstack runtime deps
> +    libbz2
> +    libuuid
> +    lzo
> +    xz
> +    yajl
> +
> +    # QEMU
> +    glib
> +    libaio
> +    pixman
> +    )
> +
> +case $UNAME in
> +    x86_64)
> +        PKGS+=3D(
> +            # System
> +            pciutils
> +
> +            # QEMU
> +            libelf
> +            )
> +        ;;
> +esac
> +
> +apk add --no-cache "${PKGS[@]}"
> =20
>  # Xen
>  cd /
> @@ -45,7 +54,6 @@ rc-update add dmesg sysinit
>  rc-update add hostname boot
>  rc-update add hwclock boot
>  rc-update add hwdrivers sysinit
> -rc-update add modules boot
>  rc-update add killprocs shutdown
>  rc-update add mount-ro shutdown
>  rc-update add savecache shutdown
> --=20
> 2.39.5
>=20

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

--gxC3D/kKw+fomu75
Content-Type: application/pgp-signature; name=signature.asc

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmf88J4ACgkQ24/THMrX
1yzMQwf/Qs+oKkcfkjEADff2XuiEgjCFqNfFS7xrJXkr6do4jcYGc1R2tlAykWya
WMDh9jUKQL36/M5OWZtYp7rJr7uxRJOZohcEADfwWFwp4avvfBXX5HGbfByXEEPP
7yPc7QtQ9fFvUlZKuIYRsFlz9k+prMopXLIAg7ibUgTjWDT/GZmWsrktEy4yYYEd
efV/nOkcbpXeRBsRkP3YWZ8MS7JByDqUm0yvsdSoZXVm5s6fE+H0KAoz0jDbO4lJ
QJjv/0meBoyQHN3RjfqtyluUdr8QZYTJxfikUO89Ic7slBteMTX9gbuDVANhxwSx
BetPDvL8V6I1cRBkMajdMqgAmAiA4w==
=lDsL
-----END PGP SIGNATURE-----

--gxC3D/kKw+fomu75--


From xen-devel-bounces@lists.xenproject.org Mon Apr 14 11:35:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 11:35:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.949899.1346353 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4I62-0000N7-2i; Mon, 14 Apr 2025 11:35:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 949899.1346353; Mon, 14 Apr 2025 11: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 1u4I61-0000N0-VD; Mon, 14 Apr 2025 11:35:25 +0000
Received: by outflank-mailman (input) for mailman id 949899;
 Mon, 14 Apr 2025 11:35: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=KxE1=XA=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u4I61-0000Mu-5C
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 11:35: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 8dd5dfb8-1924-11f0-9eae-5ba50f476ded;
 Mon, 14 Apr 2025 13:35:24 +0200 (CEST)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-39ac8e7688aso2518285f8f.2
 for <xen-devel@lists.xenproject.org>; Mon, 14 Apr 2025 04:35:24 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39eaf445515sm10518953f8f.89.2025.04.14.04.35.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 14 Apr 2025 04:35:22 -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: 8dd5dfb8-1924-11f0-9eae-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744630523; x=1745235323; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=S4SqS9nQ4FqsgFnLIzFWParOl7LFNGdBrqQwijjIBbU=;
        b=oJlkJCLUn3ujEZ1ZWGL2hGT+K9+MTnPVP7jAdlbxbSiJ44BWnLPr/GyBUPDLo0B33T
         /6IGg7MA7ZUv0o/wux7A3TMJoQIKmrteIoEB09TVt3e7SKTZVAo6ACBwYSyStg7ao7LX
         vH3g42Raq+x5ZUQZWkh1WJ7ap8jxO51qtCasY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744630523; x=1745235323;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=S4SqS9nQ4FqsgFnLIzFWParOl7LFNGdBrqQwijjIBbU=;
        b=WaC4YB9Eu3suQCLxWrJTw6ppwyQVPXXbYODumhXUWZAVxhqPASRSyJNO7FXvqwngGQ
         OjuX7uezpwJEm8s7M+kGrDCw2SrGHCrSwkfcpUgH+0enmAnHIy17wPBP9Dduj4DOzJFY
         jdg2t8w2JQpfSh3KovnCqSqpbirXyZ94iEfOvHJ1zKwZID6NXJ2CQmT+Rly86geoCKEx
         u3W+JIaXHZeeTAI4eNb3tEYJ/Sx2MspD5eOy8ybdt5kHkqf9THKNNkuTEobh4N16nEMD
         9KgLVu5/kL9DKTMoAslNcjyBG4jTkSJGsCAhgvq0LqB3jF8VGnHyKANZU5lD/7NmkhaO
         87WA==
X-Gm-Message-State: AOJu0Yw14cFv5HzE1WX2B8pxqzYs6VT2PriVj5S6m8HUYo6OowIU79+p
	HqQTx5GEnMIPdGZsEAB61abFvHGc0wRERs5e3L4CYg0dstPS4oZjCwDrqJ3wBUI=
X-Gm-Gg: ASbGncvkIVWHWIctkZApYJFIKutxXUH1kh+h/j4+8awjzP1x++ITTJvBxkIgv7HXkxx
	iAkD9y+3hfdjkR8PMAImTqJDDujrZa2kXUOCxvLCg/d2W5n2vS6SMSExTnX8tcLh1FdfCKIIOWS
	3XXOUTNj0DH0pvp3T1rcidS/Hyw54CwNnMjLDBRkPaAmfFrN0QphQg9Z8mI/FZWewThEr2+slF7
	vBpCiFE43K5X4jCVHS06l/Pdlz4NlNgYq3QTAJRXcz11PTYeRzqMnWZ4Wy0bQkUhhSJZk0JBq41
	2HcxsKmQLZvZ8Sr9yvSv7qHSB5KnrjrIeNuRBvqZpznXeh2D2jXJbGuKCrDTbNue9HDzO+sfx6v
	dm/hsiQ==
X-Google-Smtp-Source: AGHT+IGGkuUxWnEoYVj0GSv651HpNCsSicy5MOntbO86Xo7S0HylEQmWkwHj9dNvddGO0dSsMl1fyw==
X-Received: by 2002:a05:6000:40c9:b0:39c:1258:2dc7 with SMTP id ffacd0b85a97d-39eaaec9f18mr8701015f8f.56.1744630523245;
        Mon, 14 Apr 2025 04:35:23 -0700 (PDT)
Message-ID: <d68aacb7-b192-4baf-8d03-042ca5236838@citrix.com>
Date: Mon, 14 Apr 2025 12:35:22 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 4/7] Shrink the rootfs substantially
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.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: <20250414101843.2348330-1-andrew.cooper3@citrix.com>
 <20250414101843.2348330-5-andrew.cooper3@citrix.com>
 <Z_zwnpmO_6VLwoMM@mail-itl>
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: <Z_zwnpmO_6VLwoMM@mail-itl>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 14/04/2025 12:25 pm, Marek Marczykowski-Górecki wrote:
> On Mon, Apr 14, 2025 at 11:18:40AM +0100, Andrew Cooper wrote:
>> bash, busybox, musl and zlib are all in the base container.
>>
>> python3 and ncurses are in principle used by bits of Xen, but not in anything
>> we test in CI.  argp-standlone, curl, dbus, libfdt, libgcc and sudo aren't
>> used at all (for x86 at least).
>>
>> libbz2 and libuuid were pulled in transitively before, and need to be included
>> explicitly now.
>>
>> Use apk --no-cache to avoid keeping a ~2M package index on disk.
>>
>> Remove the modules scan on boot.  We don't have or build any.  This removes a
>> chunk of warnings on boot.
> Strictly speaking there is xen-argo.ko, but that's handled manually
> anyway, so probably not worth mentioning.

Hmm, it's an awkward way around in the series, but yes.  The lack of
doing any of the normal module work in the kernel build is what causes
xen-argo.ko to be more special than I'd like.

>
>> This shrinks the rootfs from ~30M down to ~8M.
>>
>> No practical change.
> This also adds some preparation (the case on `uname -m`) for ARM64
> rootfs, would be nice to mention it too. Especially since libfdt removed
> here will be re-added for ARM.

"Factor out some x86-isms in preparation for ARM64 support."

>> 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: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
>> ---
>>  scripts/alpine-rootfs.sh | 60 +++++++++++++++++++++++-----------------
>>  1 file changed, 34 insertions(+), 26 deletions(-)
>>
>> diff --git a/scripts/alpine-rootfs.sh b/scripts/alpine-rootfs.sh
>> index 75e2f8648ce5..72c29e0a0a13 100755
>> --- a/scripts/alpine-rootfs.sh
>> +++ b/scripts/alpine-rootfs.sh
>> @@ -4,33 +4,42 @@ set -eu
>>  
>>  WORKDIR="${PWD}"
>>  COPYDIR="${WORKDIR}/binaries"
>> +UNAME=$(uname -m)
>>  
>> -apk update
>> +apk --no-cache update
> This is no-op, no? IIUC the only thing `apk update` does is updating the
> cache, which you disabled...

Lovely.  This ought to be upgrade, so we pull in updates to the packages
in the base image.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Apr 14 11:41:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 11:41:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.949911.1346362 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4IBv-0002do-Lp; Mon, 14 Apr 2025 11:41:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 949911.1346362; Mon, 14 Apr 2025 11:41: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 1u4IBv-0002dh-J3; Mon, 14 Apr 2025 11:41:31 +0000
Received: by outflank-mailman (input) for mailman id 949911;
 Mon, 14 Apr 2025 11:41: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 1u4IBu-0002db-1e
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 11:41: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 1u4IBt-00Ep7I-25;
 Mon, 14 Apr 2025 11:41:29 +0000
Received: from [143.198.24.140] (helo=[100.81.22.8])
 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 1u4IBt-00DBnQ-0D;
 Mon, 14 Apr 2025 11:41: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=IF8aZV7X3I5v5I/+XPXr7UKHWMNbyaU1EuXYq5Spy/M=; b=z1NjWOD5VjgWSlneBfIP3Ax5Ms
	Y2iVVPESNbGCpURr6e2T8D8u5mrLCpnK3zat9mL9hK4XDohQVMtHsvzTLrE8NowyhkwSjTVcrhoOK
	VixN3A8K8m1Lme0YocbBpxkRHaZBrLwwkm9IeaoMVCPHIMLHLs2aRXjOq3c1pyKLWq6s=;
Message-ID: <d58be435-fd83-42bc-9fd0-a8884f358704@xen.org>
Date: Mon, 14 Apr 2025 20:41:22 +0900
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 2/7] arm/mpu: Provide access to the MPU region from the
 C code
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: <20250411145655.140667-1-luca.fancellu@arm.com>
 <20250411145655.140667-3-luca.fancellu@arm.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20250411145655.140667-3-luca.fancellu@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Luca,

On 11/04/2025 23:56, Luca Fancellu wrote:
> Implement some utility function in order to access the MPU regions
> from the C world.
> 
> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
> ---
> v3 changes:
>   - Moved PRBAR0_EL2/PRLAR0_EL2 to arm64 specific
>   - Modified prepare_selector() to be easily made a NOP
>     for Arm32, which can address up to 32 region without
>     changing selector and it is also its maximum amount
>     of MPU regions.
> ---
> ---
>   xen/arch/arm/include/asm/arm64/mpu.h |   7 ++
>   xen/arch/arm/include/asm/mpu.h       |   1 +
>   xen/arch/arm/include/asm/mpu/mm.h    |  24 +++++
>   xen/arch/arm/mpu/mm.c                | 125 +++++++++++++++++++++++++++
>   4 files changed, 157 insertions(+)
> 
> diff --git a/xen/arch/arm/include/asm/arm64/mpu.h b/xen/arch/arm/include/asm/arm64/mpu.h
> index 4d2bd7d7877f..b4e1ecdf741d 100644
> --- a/xen/arch/arm/include/asm/arm64/mpu.h
> +++ b/xen/arch/arm/include/asm/arm64/mpu.h
> @@ -8,6 +8,13 @@
>   
>   #ifndef __ASSEMBLY__
>   
> +/*
> + * The following are needed for the case generators GENERATE_WRITE_PR_REG_CASE
> + * and GENERATE_READ_PR_REG_CASE with num==0
> + */
> +#define PRBAR0_EL2 PRBAR_EL2
> +#define PRLAR0_EL2 PRLAR_EL2

Rather than aliasing, shouldn't we just rename PR{B,L}AR_EL2 to 
PR{B,L}AR0_EL2? This would the code mixing between the two.

> +
>   /* Protection Region Base Address Register */
>   typedef union {
>       struct __packed {
> diff --git a/xen/arch/arm/include/asm/mpu.h b/xen/arch/arm/include/asm/mpu.h
> index e148c705b82c..59ff22c804c1 100644
> --- a/xen/arch/arm/include/asm/mpu.h
> +++ b/xen/arch/arm/include/asm/mpu.h
> @@ -13,6 +13,7 @@
>   #define MPU_REGION_SHIFT  6
>   #define MPU_REGION_ALIGN  (_AC(1, UL) << MPU_REGION_SHIFT)
>   #define MPU_REGION_MASK   (~(MPU_REGION_ALIGN - 1))
> +#define MPU_REGION_RES0   (0xFFFULL << 52)
>   
>   #define NUM_MPU_REGIONS_SHIFT   8
>   #define NUM_MPU_REGIONS         (_AC(1, UL) << NUM_MPU_REGIONS_SHIFT)
> diff --git a/xen/arch/arm/include/asm/mpu/mm.h b/xen/arch/arm/include/asm/mpu/mm.h
> index 86f33d9836b7..5cabe9d111ce 100644
> --- a/xen/arch/arm/include/asm/mpu/mm.h
> +++ b/xen/arch/arm/include/asm/mpu/mm.h
> @@ -8,6 +8,7 @@
>   #include <xen/page-size.h>
>   #include <xen/types.h>
>   #include <asm/mm.h>
> +#include <asm/mpu.h>
>   
>   extern struct page_info *frame_table;
>   
> @@ -29,6 +30,29 @@ static inline struct page_info *virt_to_page(const void *v)
>       return mfn_to_page(mfn);
>   }
>   
> +/* Utility function to be used whenever MPU regions are modified */
> +static inline void context_sync_mpu(void)
> +{
> +    /*
> +     * ARM DDI 0600B.a, C1.7.1
> +     * Writes to MPU registers are only guaranteed to be visible following a
> +     * Context synchronization event and DSB operation.

I know we discussed about this before. I find odd that the specification 
says "context synchronization event and DSB operation". At least to me, 
it implies "isb + dsb" not the other way around. Has this been clarified 
in newer version of the specification?

> +     */
> +    dsb(sy);
> +    isb();
> +}
> +
> +/*
> + * The following API require context_sync_mpu() after being used to modifiy MPU

typo: s/require/requires/ and s/modifiy/modify/

> + * regions:
> + *  - write_protection_region
> + */
> +
> +/* Reads the MPU region with index 'sel' from the HW */
> +extern void read_protection_region(pr_t *pr_read, uint8_t sel);

I am probably missing something. But don't you have a copy of pr_t in 
xen_mpumap? If so, can't we use the cached version to avoid accessing 
the system registers?

> +/* Writes the MPU region with index 'sel' to the HW */
> +extern void write_protection_region(const pr_t *pr_write, uint8_t sel);
> +
>   #endif /* __ARM_MPU_MM_H__ */
>   
>   /*
> diff --git a/xen/arch/arm/mpu/mm.c b/xen/arch/arm/mpu/mm.c
> index f83ce04fef8a..e522ce53c357 100644
> --- a/xen/arch/arm/mpu/mm.c
> +++ b/xen/arch/arm/mpu/mm.c
> @@ -8,12 +8,30 @@
>   #include <xen/sizes.h>
>   #include <xen/types.h>
>   #include <asm/mpu.h>
> +#include <asm/mpu/mm.h>
> +#include <asm/sysregs.h>
>   
>   struct page_info *frame_table;
>   
>   /* EL2 Xen MPU memory region mapping table. */
>   pr_t xen_mpumap[MAX_MPU_REGIONS];
>   
> +#define GENERATE_WRITE_PR_REG_CASE(num, pr)                                 \
> +    case num:                                                               \
> +    {                                                                       \
> +        WRITE_SYSREG(pr->prbar.bits & ~MPU_REGION_RES0, PRBAR##num##_EL2);  \
> +        WRITE_SYSREG(pr->prlar.bits & ~MPU_REGION_RES0, PRLAR##num##_EL2);  \
> +        break;                                                              \
> +    }
> +
> +#define GENERATE_READ_PR_REG_CASE(num, pr)                      \
> +    case num:                                                   \
> +    {                                                           \
> +        pr->prbar.bits = READ_SYSREG(PRBAR##num##_EL2);         \
> +        pr->prlar.bits = READ_SYSREG(PRLAR##num##_EL2);         \
> +        break;                                                  \
> +    }
> +
>   static void __init __maybe_unused build_assertions(void)
>   {
>       /*
> @@ -24,6 +42,113 @@ static void __init __maybe_unused build_assertions(void)
>       BUILD_BUG_ON(PAGE_SIZE != SZ_4K);
>   }
>   
> +static void prepare_selector(uint8_t *sel)
> +{
> +    uint8_t cur_sel = *sel;

Coding style: Missing newline.

> +    /*
> +     * {read,write}_protection_region works using the direct access to the 0..15
> +     * regions, so in order to save the isb() overhead, change the PRSELR_EL2
> +     * only when needed, so when the upper 4 bits of the selector will change.
> +     */
> +    cur_sel &= 0xF0U;
> +    if ( READ_SYSREG(PRSELR_EL2) != cur_sel )
> +    {
> +        WRITE_SYSREG(cur_sel, PRSELR_EL2);
> +        isb();
> +    }
> +    *sel = *sel & 0xFU;
> +}
> +
> +/*
> + * Armv8-R AArch64 at most supports 255 MPU protection regions.
> + * See section G1.3.18 of the reference manual for Armv8-R AArch64,
> + * PRBAR<n>_EL2 and PRLAR<n>_EL2 provide access to the EL2 MPU region
> + * determined by the value of 'n' and PRSELR_EL2.REGION as
> + * PRSELR_EL2.REGION<7:4>:n(n = 0, 1, 2, ... , 15)
> + * For example to access regions from 16 to 31 (0b10000 to 0b11111):
> + * - Set PRSELR_EL2 to 0b1xxxx
> + * - Region 16 configuration is accessible through PRBAR_EL2 and PRLAR_EL2
> + * - Region 17 configuration is accessible through PRBAR1_EL2 and PRLAR1_EL2
> + * - Region 18 configuration is accessible through PRBAR2_EL2 and PRLAR2_EL2
> + * - ...
> + * - Region 31 configuration is accessible through PRBAR15_EL2 and PRLAR15_EL2
> + */

I am a bit confused. This function is implemented in the common MPU 
code. Yet, then comment only refer to 64-bit. Is the code the same on 
32-bit? If not, then I think this function wants to be moved in arm64/mpu/

> +/*
> + * Read EL2 MPU Protection Region.
> + *
> + * @pr_read: mpu protection region returned by read op.
> + * @sel: mpu protection region selector
> + */

NIT: Usually we add documentation on the prototype in the header and not 
in the definition.

> +void read_protection_region(pr_t *pr_read, uint8_t sel)
> +{
> +    /*
> +     * Before accessing EL2 MPU region register PRBAR_EL2/PRLAR_EL2,
> +     * make sure PRSELR_EL2 is set, as it determines which MPU region
> +     * is selected.
> +     */
> +    prepare_selector(&sel);
> +
> +    switch ( sel )
> +    {
> +        GENERATE_READ_PR_REG_CASE(0, pr_read);
> +        GENERATE_READ_PR_REG_CASE(1, pr_read);
> +        GENERATE_READ_PR_REG_CASE(2, pr_read);
> +        GENERATE_READ_PR_REG_CASE(3, pr_read);
> +        GENERATE_READ_PR_REG_CASE(4, pr_read);
> +        GENERATE_READ_PR_REG_CASE(5, pr_read);
> +        GENERATE_READ_PR_REG_CASE(6, pr_read);
> +        GENERATE_READ_PR_REG_CASE(7, pr_read);
> +        GENERATE_READ_PR_REG_CASE(8, pr_read);
> +        GENERATE_READ_PR_REG_CASE(9, pr_read);
> +        GENERATE_READ_PR_REG_CASE(10, pr_read);
> +        GENERATE_READ_PR_REG_CASE(11, pr_read);
> +        GENERATE_READ_PR_REG_CASE(12, pr_read);
> +        GENERATE_READ_PR_REG_CASE(13, pr_read);
> +        GENERATE_READ_PR_REG_CASE(14, pr_read);
> +        GENERATE_READ_PR_REG_CASE(15, pr_read);
> +    default:
> +        BUG(); /* Can't happen */
> +    }
> +}
> +
> +/*
> + * Write EL2 MPU Protection Region.
> + *
> + * @pr_write: const mpu protection region passed through write op.
> + * @sel: mpu protection region selector
> + */
> +void write_protection_region(const pr_t *pr_write, uint8_t sel)
> +{
> +    /*
> +     * Before accessing EL2 MPU region register PRBAR_EL2/PRLAR_EL2,
> +     * make sure PRSELR_EL2 is set, as it determines which MPU region
> +     * is selected.
> +     */
> +    prepare_selector(&sel);
> +
> +    switch ( sel )
> +    {
> +        GENERATE_WRITE_PR_REG_CASE(0, pr_write);
> +        GENERATE_WRITE_PR_REG_CASE(1, pr_write);
> +        GENERATE_WRITE_PR_REG_CASE(2, pr_write);
> +        GENERATE_WRITE_PR_REG_CASE(3, pr_write);
> +        GENERATE_WRITE_PR_REG_CASE(4, pr_write);
> +        GENERATE_WRITE_PR_REG_CASE(5, pr_write);
> +        GENERATE_WRITE_PR_REG_CASE(6, pr_write);
> +        GENERATE_WRITE_PR_REG_CASE(7, pr_write);
> +        GENERATE_WRITE_PR_REG_CASE(8, pr_write);
> +        GENERATE_WRITE_PR_REG_CASE(9, pr_write);
> +        GENERATE_WRITE_PR_REG_CASE(10, pr_write);
> +        GENERATE_WRITE_PR_REG_CASE(11, pr_write);
> +        GENERATE_WRITE_PR_REG_CASE(12, pr_write);
> +        GENERATE_WRITE_PR_REG_CASE(13, pr_write);
> +        GENERATE_WRITE_PR_REG_CASE(14, pr_write);
> +        GENERATE_WRITE_PR_REG_CASE(15, pr_write);
> +    default:
> +        BUG(); /* Can't happen */
> +    }
> +}
> +
>   void __init setup_mm(void)
>   {
>       BUG_ON("unimplemented");

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Mon Apr 14 11:48:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 11:48:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.949924.1346373 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4IIb-0004Lk-CH; Mon, 14 Apr 2025 11:48:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 949924.1346373; Mon, 14 Apr 2025 11:48: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 1u4IIb-0004Ld-9Z; Mon, 14 Apr 2025 11:48:25 +0000
Received: by outflank-mailman (input) for mailman id 949924;
 Mon, 14 Apr 2025 11:48: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=YdIb=XA=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1u4IIZ-0004LX-TF
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 11:48:24 +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 5c928cd1-1926-11f0-9ffb-bf95429c2676;
 Mon, 14 Apr 2025 13:48:20 +0200 (CEST)
Received: by mail-ed1-x532.google.com with SMTP id
 4fb4d7f45d1cf-5e6c18e2c7dso7889114a12.3
 for <xen-devel@lists.xenproject.org>; Mon, 14 Apr 2025 04:48:20 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-64-225.play-internet.pl.
 [109.243.64.225]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-acaa1bb2ddasm896384766b.36.2025.04.14.04.48.18
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 14 Apr 2025 04:48:18 -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: 5c928cd1-1926-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1744631300; x=1745236100; darn=lists.xenproject.org;
        h=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=JfZWSJnE0NE7T4QEDHs8FQo1WPSW148W0ACegppMNmU=;
        b=SopOP7he+Ah/nD4UuBl4486jZAYSET+3uhtibidx+R09SYqADufnec1jsoxG62137W
         aRdgBTGYztUujtCg7NVUf7y3SSfM5Vv5/DCjBoRBdBK0UX/VRwrid1KNOdcT9IvwK4LF
         W55iscma9vKrKBW3Q3ks1jgrGiph+D2LfT376oP2H4ynym3klgroLmglYyKd1J2VYe6H
         49hy2xiq9TK8WIc/Qm3FU9mQ6ZaATti85m0jlu8Iry7Q3NNDF7XtZ8osa5/bUT4h/0Zz
         uV919Q8z/YokrgMcMuCavFK2hsWvlJJebhiKvebRjfCAn7lilkEqjyV6/eGzLyp6T0vU
         mPeg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744631300; x=1745236100;
        h=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=JfZWSJnE0NE7T4QEDHs8FQo1WPSW148W0ACegppMNmU=;
        b=HCR/z/sAil4yo7MSo7gmnZvTiaQo6EkuvnfnRif9mEegTbNlMGya3nuE45UJRKuSo1
         uveeri5eUPSY7cab5ji5G/AN+jyuuzCntUOCB+WhbRhhCuidGqcZJgIQK9FJtSzp4A7O
         ybKBbP7KihyoO+y9XXD4RGjdhpT3KaGWRqYm7Z537TpZua2SD0xw48lAUM8/v9H7yjO0
         6s9TVD4XC2uO8IdpTaWknaNNDjV+jZcAGIB3qkdknlNskDVE+WD8B7bRDf19EnVvPaaJ
         nVSBklD4lBr7/NDbjfRn40Tux7Vtkz0bdN+CJ2Zly077Ru+PMdAsRQNWPOkZuhHeElNy
         lNTA==
X-Forwarded-Encrypted: i=1; AJvYcCUuNn5Z9QTzq2DmHBUNlcAWykcc9eoVPTctbTHXkgqDGsljM/GqEn4+RAMXS4akj6Y1mRbI9bbK/VI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyXJ8QutyAQbJ8Xb/OdQJwO4k+73qzxkbkVT4nZQg54ch6IhdeH
	LZE+8jax9zHPQZjGl5CCvCQzqndhdReZkyqSYDeZXxC0m4ZmVwdj
X-Gm-Gg: ASbGnctwm7OmCGtm00E5LRQRoLQGe858gPseGDWQ7sDYwf+xb4gajX2w+bWVtLWfpN9
	2lpARjKGwVEnD96Gjj+qxTUi56+cJfEvBfX3dB7g3cRRwjNkO6b+FLyFicEWbtSJ/AH6orgm4og
	0p7BKUwpLG0OLaF6Qi/0SgHt5Ne2+XXDM1cGXeHg8CpKhCJMWm9oN90UYRsaLwy0vIhjDUpdCGt
	DAa/E+cQux65HRsfmgfcbNZppZ41K7BGUjo0YLFazHJOUMv36VEQUEbXsN30huTWTrlC/Z0p3lQ
	8WWhGLYW9xjLBE388mvmkRRj+rqZCimen69S5DNylAaQ18fqDfkCO2xwu6hNqYNcmCA2OlbTN2r
	vqC+JdXOot4Ym9m5a
X-Google-Smtp-Source: AGHT+IFEwp+ojTk1arnpufloQ9jimHCntlE37hBFlvvJSzbOHPzLG12gIkRo+EBeuoeKjxqCAiWkDQ==
X-Received: by 2002:a17:907:7b8d:b0:aca:c4d4:15a0 with SMTP id a640c23a62f3a-acad343caffmr784645066b.8.1744631299295;
        Mon, 14 Apr 2025 04:48:19 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------X1Dg8pzsxfI0bhLGsZfq0Npn"
Message-ID: <35a0256f-cb48-4e39-b60d-8ee698154e77@gmail.com>
Date: Mon, 14 Apr 2025 13:48:18 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3] xen/riscv: Increase XEN_VIRT_SIZE
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <eb20a5730b55c1731324cc3970c3a3c9ea666a85.1744214442.git.oleksii.kurochko@gmail.com>
 <a173245f-531a-434d-b3ce-1d8e35dec8ec@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <a173245f-531a-434d-b3ce-1d8e35dec8ec@suse.com>

This is a multi-part message in MIME format.
--------------X1Dg8pzsxfI0bhLGsZfq0Npn
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 4/10/25 10:48 AM, Jan Beulich wrote:
> On 09.04.2025 21:01, Oleksii Kurochko wrote:
>> --- a/xen/arch/riscv/include/asm/mm.h
>> +++ b/xen/arch/riscv/include/asm/mm.h
>> @@ -9,6 +9,7 @@
>>   #include <xen/mm-frame.h>
>>   #include <xen/pdx.h>
>>   #include <xen/pfn.h>
>> +#include <xen/sections.h>
>>   #include <xen/types.h>
>>   
>>   #include <asm/page-bits.h>
>> @@ -35,6 +36,11 @@ static inline void *maddr_to_virt(paddr_t ma)
>>       return (void *)va;
>>   }
>>   
>> +#define is_init_section(p) ({                   \
>> +    char *p_ = (char *)(unsigned long)(p);      \
>> +    (p_ >= __init_begin) && (p_ < __init_end);  \
>> +})
> I think this wants to be put in xen/sections.h, next to where __init_{begin,end}
> are declared. But first it wants making const-correct, to eliminate the potential
> of it indirectly casting away const-ness from the incoming argument.
>
> (At some point related stuff wants moving from kernel.h to sections.h, I suppose.
> And at that point they will all want to have const added.)

Sure, I'll change to 'const char *p_ = (const char*)(unsigned long)(p)'.

>> --- a/xen/arch/riscv/mm.c
>> +++ b/xen/arch/riscv/mm.c
>> @@ -31,20 +31,24 @@ unsigned long __ro_after_init phys_offset; /* = load_start - XEN_VIRT_START */
>>   #define LOAD_TO_LINK(addr) ((unsigned long)(addr) - phys_offset)
>>   
>>   /*
>> - * It is expected that Xen won't be more then 2 MB.
>> + * It is expected that Xen won't be more then XEN_VIRT_SIZE MB.
> Why "MB" when the macro already expands to MB(16)?

It should be really dropped, no need for MB in the comment.

>
>>    * The check in xen.lds.S guarantees that.
>> - * At least 3 page tables (in case of Sv39 ) are needed to cover 2 MB.
>> - * One for each page level table with PAGE_SIZE = 4 Kb.
>>    *
>> - * One L0 page table can cover 2 MB(512 entries of one page table * PAGE_SIZE).
>> + * Root page table is shared with the initial mapping and is declared
>> + * separetely. (look at stage1_pgtbl_root)
> Nit: separately
>
>>    *
>> - * It might be needed one more page table in case when Xen load address
>> - * isn't 2 MB aligned.
>> + * An amount of page tables between root page table and L0 page table
>> + * (in the case of Sv39 it covers L1 table):
>> + *   (CONFIG_PAGING_LEVELS - 2) are needed for an identity mapping and
>> + *   the same amount are needed for Xen.
>>    *
>> - * CONFIG_PAGING_LEVELS page tables are needed for the identity mapping,
>> - * except that the root page table is shared with the initial mapping
>> + * An amount of L0 page tables:
>> + *   (512 entries of one L0 page table covers 2MB == 1<<XEN_PT_LEVEL_SHIFT(1))
>> + *   XEN_VIRT_SIZE >> XEN_PT_LEVEL_SHIFT(1) are needed for Xen and
>> + *   one L0 is needed for indenity mapping.
> Nit: identity
>
> But more importantly, where's this one L0 ...
>
>>    */
>> -#define PGTBL_INITIAL_COUNT ((CONFIG_PAGING_LEVELS - 1) * 2 + 1)
>> +#define PGTBL_INITIAL_COUNT ((CONFIG_PAGING_LEVELS - 2) * 2 + \
>> +                             (XEN_VIRT_SIZE >> XEN_PT_LEVEL_SHIFT(1)))
> .... in this calculation?

L0 for identity mapping is really missed.

Thanks.

~ Oleksii

--------------X1Dg8pzsxfI0bhLGsZfq0Npn
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 4/10/25 10:48 AM, Jan Beulich wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:a173245f-531a-434d-b3ce-1d8e35dec8ec@suse.com">
      <pre wrap="" class="moz-quote-pre">On 09.04.2025 21:01, Oleksii Kurochko wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">--- a/xen/arch/riscv/include/asm/mm.h
+++ b/xen/arch/riscv/include/asm/mm.h
@@ -9,6 +9,7 @@
 #include &lt;xen/mm-frame.h&gt;
 #include &lt;xen/pdx.h&gt;
 #include &lt;xen/pfn.h&gt;
+#include &lt;xen/sections.h&gt;
 #include &lt;xen/types.h&gt;
 
 #include &lt;asm/page-bits.h&gt;
@@ -35,6 +36,11 @@ static inline void *maddr_to_virt(paddr_t ma)
     return (void *)va;
 }
 
+#define is_init_section(p) ({                   \
+    char *p_ = (char *)(unsigned long)(p);      \
+    (p_ &gt;= __init_begin) &amp;&amp; (p_ &lt; __init_end);  \
+})
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
I think this wants to be put in xen/sections.h, next to where __init_{begin,end}
are declared. But first it wants making const-correct, to eliminate the potential
of it indirectly casting away const-ness from the incoming argument.

(At some point related stuff wants moving from kernel.h to sections.h, I suppose.
And at that point they will all want to have const added.)</pre>
    </blockquote>
    <pre>Sure, I'll change to 'const char *p_ = (const char*)(unsigned long)(p)'.

</pre>
    <blockquote type="cite"
      cite="mid:a173245f-531a-434d-b3ce-1d8e35dec8ec@suse.com">
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">--- a/xen/arch/riscv/mm.c
+++ b/xen/arch/riscv/mm.c
@@ -31,20 +31,24 @@ unsigned long __ro_after_init phys_offset; /* = load_start - XEN_VIRT_START */
 #define LOAD_TO_LINK(addr) ((unsigned long)(addr) - phys_offset)
 
 /*
- * It is expected that Xen won't be more then 2 MB.
+ * It is expected that Xen won't be more then XEN_VIRT_SIZE MB.
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Why "MB" when the macro already expands to MB(16)?</pre>
    </blockquote>
    <pre>It should be really dropped, no need for MB in the comment.

</pre>
    <blockquote type="cite"
      cite="mid:a173245f-531a-434d-b3ce-1d8e35dec8ec@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">  * The check in xen.lds.S guarantees that.
- * At least 3 page tables (in case of Sv39 ) are needed to cover 2 MB.
- * One for each page level table with PAGE_SIZE = 4 Kb.
  *
- * One L0 page table can cover 2 MB(512 entries of one page table * PAGE_SIZE).
+ * Root page table is shared with the initial mapping and is declared
+ * separetely. (look at stage1_pgtbl_root)
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Nit: separately

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">  *
- * It might be needed one more page table in case when Xen load address
- * isn't 2 MB aligned.
+ * An amount of page tables between root page table and L0 page table
+ * (in the case of Sv39 it covers L1 table):
+ *   (CONFIG_PAGING_LEVELS - 2) are needed for an identity mapping and
+ *   the same amount are needed for Xen.
  *
- * CONFIG_PAGING_LEVELS page tables are needed for the identity mapping,
- * except that the root page table is shared with the initial mapping
+ * An amount of L0 page tables:
+ *   (512 entries of one L0 page table covers 2MB == 1&lt;&lt;XEN_PT_LEVEL_SHIFT(1))
+ *   XEN_VIRT_SIZE &gt;&gt; XEN_PT_LEVEL_SHIFT(1) are needed for Xen and
+ *   one L0 is needed for indenity mapping.
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Nit: identity

But more importantly, where's this one L0 ...

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">  */
-#define PGTBL_INITIAL_COUNT ((CONFIG_PAGING_LEVELS - 1) * 2 + 1)
+#define PGTBL_INITIAL_COUNT ((CONFIG_PAGING_LEVELS - 2) * 2 + \
+                             (XEN_VIRT_SIZE &gt;&gt; XEN_PT_LEVEL_SHIFT(1)))
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
.... in this calculation?</pre>
    </blockquote>
    <pre>L0 for identity mapping is really missed.

Thanks.

~ Oleksii</pre>
  </body>
</html>

--------------X1Dg8pzsxfI0bhLGsZfq0Npn--


From xen-devel-bounces@lists.xenproject.org Mon Apr 14 11:49:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 11:49:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.949936.1346383 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4IJE-0004sN-QC; Mon, 14 Apr 2025 11:49:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 949936.1346383; Mon, 14 Apr 2025 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 1u4IJE-0004sG-Kt; Mon, 14 Apr 2025 11:49:04 +0000
Received: by outflank-mailman (input) for mailman id 949936;
 Mon, 14 Apr 2025 11:49:03 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1u4IJD-0004s8-Ik
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 11:49:03 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1u4IJD-00EpLf-0O;
 Mon, 14 Apr 2025 11:49:03 +0000
Received: from [143.198.24.140] (helo=[100.81.22.8])
 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 1u4IJC-00DDfg-1u;
 Mon, 14 Apr 2025 11:49: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=4AX8NSQXOqg2Aqkf23+AI9cD0KspmvnAGYYNcjD0A/8=; b=IzCPBiM2EjOup7ehPZ5yX0m8pz
	GR45ulPCjHDf6pueFA31xyBhm3JAJPeBzgN/i/qnIsWW/xGxDCmzzJTw7wHDNg5sUE1lOQPf+t2Jf
	pgNTxV9dHafY7cZLpHHqN/4hQ6vliU3GQcjCgEsdGVUXWHwvZ+EdMiCYUHi7ZIX0tpDk=;
Message-ID: <64f32855-e33d-4d89-9066-e63f0f1cce94@xen.org>
Date: Mon, 14 Apr 2025 20:48:56 +0900
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 5/7] arm/mpu: Introduce MPU memory mapping flags
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: <20250411145655.140667-1-luca.fancellu@arm.com>
 <20250411145655.140667-6-luca.fancellu@arm.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20250411145655.140667-6-luca.fancellu@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Luca,

On 11/04/2025 23:56, Luca Fancellu wrote:
> Introduce the MPU memory mapping flags in asm/page.h.
> 
> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
> ---
>   xen/arch/arm/include/asm/page.h | 25 +++++++++++++++++++++++++
>   1 file changed, 25 insertions(+)
> 
> diff --git a/xen/arch/arm/include/asm/page.h b/xen/arch/arm/include/asm/page.h
> index 69f817d1e68a..22f7d2c6cb30 100644
> --- a/xen/arch/arm/include/asm/page.h
> +++ b/xen/arch/arm/include/asm/page.h
> @@ -62,6 +62,7 @@
>   
>   #define MAIRVAL (MAIR1VAL << 32 | MAIR0VAL)
>   
> +#ifdef CONFIG_MMU
>   /*
>    * Layout of the flags used for updating the hypervisor page tables
>    *
> @@ -90,6 +91,30 @@
>   #define _PAGE_CONTIG_BIT    8
>   #define _PAGE_CONTIG        (1U << _PAGE_CONTIG_BIT)
>   
> +#else /* !CONFIG_MMU */
> +
> +/*
> + * Layout of the flags used for updating MPU memory region attributes
> + * [0:2] Memory attribute Index
> + * [3:4] Execute Never
> + * [5:6] Access Permission

I am rather confused why we are splitting Execute Never from the Access 
Permission. I guess you tried to match the HW, but it also means we need 
to duplicate a lot of define between the MMU and MPU code.

Instead, I would rather try to re-use the existing ones and ignore the 
ones we don't need (e.g. BLOCK_BIT and CONTIG).

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Mon Apr 14 11:52:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 11:52:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.949959.1346392 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4IMb-00086e-4p; Mon, 14 Apr 2025 11:52:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 949959.1346392; Mon, 14 Apr 2025 11:52: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 1u4IMb-00086X-2C; Mon, 14 Apr 2025 11:52:33 +0000
Received: by outflank-mailman (input) for mailman id 949959;
 Mon, 14 Apr 2025 11:52: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=KxE1=XA=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u4IMa-00086O-EQ
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 11:52:32 +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 f19e0e25-1926-11f0-9ffb-bf95429c2676;
 Mon, 14 Apr 2025 13:52:30 +0200 (CEST)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-43d0618746bso32295925e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 14 Apr 2025 04:52:30 -0700 (PDT)
Received: from localhost.localdomain (host-92-26-98-202.as13285.net.
 [92.26.98.202]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39eae96c123sm11099913f8f.36.2025.04.14.04.52.28
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 14 Apr 2025 04:52:29 -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: f19e0e25-1926-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744631549; x=1745236349; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=0n3tqYwZF1Dn/iihDQJAJlOGSgzTjHg8bzM4sIRzbcM=;
        b=M/j1b9xFZ44FgByqzO5xR6AoXtzLxotBK/lyOwJrxPJCoBuD19PkkDfcRPrJ+3PInP
         i3rMwGxCI59u8+Iowjo17ZH4jYikyEOb9eOO0p8UgRipknT1jqEgE5y7+h4rTngIfW1T
         EdGLzEI0/T9Id+zToW5RLOsSomizVr3kJtXzQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744631549; x=1745236349;
        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=0n3tqYwZF1Dn/iihDQJAJlOGSgzTjHg8bzM4sIRzbcM=;
        b=vfVpBhWjotN3bR77PHRLTGL42F7xAOEOmByjwN/21KUSftxaXEKRW41BD323gagUFC
         bcUwpgp11F91qNLIGToLd9P7HuCXYYkFf4oaqBmgMhOzYo7YglBbfJnBHwglmYIbKhO3
         SosrvpamwlLv8siYHGt2oyOtdR6Qj3UPQZuO9uw5x/nFfaZPbbWSAgf9IOY5OELHlqxK
         t8PFaJxg3nC2D6chP4GbWNLJqGuIXDYsyuP5IvJ/zZ7KloZIVGRQlnbKf3snOHTtcV7C
         rgMj5xWWUUIMHV+G5TkN54F3ZtERlcjhh7F1dtSxPrQMZ/sw9+XH/c2creewAhnJ0XHu
         XY+w==
X-Gm-Message-State: AOJu0YwLDsOzFExSYRMKgBuOSvVKU4nnhxhv77pJMaBXKaon+CKhUpvV
	9mlF2zMvpc9GFbgX1SD2M1lpYJA6p3bP+TqvCpUHtDOSHo8+Tbup+8YK99QMDPFX4zaEF4AOmmB
	saSA=
X-Gm-Gg: ASbGncvU+fV23ZolkEo6VsExhdC7pbbhBefCsNk8sFvwjrO8JX8fm7Km7HciEozAzqb
	9BZWG+f4VnGFZ2BEbgWkzZoygOT5j0QBS+wLpoloSNADlUrQgZkKmQOg271ngPvGsJWZbfPC6ab
	El3d9CP4dwjCgo0BsdeXw1rwAcWL7T9TA7PQYh25r60xU9TJaSfqglY1A/kIULG1KwIxpsjrYXq
	iMsIPLr++fXfRsZydbbeRBVW0/uvrkn4EcpjZLmv9jgpSDmMZ+vX48668f3ofVx03IADisf5tyq
	3MwVMxxGAa7VpqhlnsNSRgqZDrtXvSLxQPGfsoiWG5mvGCelgF1Aiqb0D7nDub028YVKYExTTX6
	EhY3LnihaBCuwqw==
X-Google-Smtp-Source: AGHT+IH2NDdWIpHMEVJ14kGKU7RlilwWD5YfOnSTjM00pL91i5eecFvFzdc/QbtpHAW7ylClHIzSQA==
X-Received: by 2002:a05:6000:22c8:b0:391:2d97:7d0e with SMTP id ffacd0b85a97d-39eaaebd2d7mr9881974f8f.42.1744631549460;
        Mon, 14 Apr 2025 04:52:29 -0700 (PDT)
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?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH v2.1 4/7] Shrink the rootfs substantially
Date: Mon, 14 Apr 2025 12:52:26 +0100
Message-Id: <20250414115226.2357714-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250414101843.2348330-5-andrew.cooper3@citrix.com>
References: <20250414101843.2348330-5-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

bash, busybox, musl and zlib are all in the base container.

python3 and ncurses are in principle used by bits of Xen, but not in anything
we test in CI.  argp-standlone, curl, dbus, libfdt, libgcc and sudo aren't
used at all (for x86 at least).

libbz2 and libuuid were pulled in transitively before, and need to be included
explicitly now.

Use apk --no-cache to avoid keeping a ~2M package index on disk.  Use apk
upgrade in case there are changes to the base container.

Remove the modules scan on boot.  We don't have or build any (except argo, and
that's handled specially).  This removes a chunk of warnings on boot.

This shrinks the rootfs from ~30M down to ~8M.

Factor out some x86-isms in preparation for ARM64 support.

No practical change.

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: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>

v2.1:
 * Extend commit message
 * Use apk upgrade

https://gitlab.com/xen-project/hardware/test-artifacts/-/jobs/9713228239
https://gitlab.com/xen-project/hardware/test-artifacts/-/jobs/9713228242
---
 scripts/alpine-rootfs.sh | 60 +++++++++++++++++++++++-----------------
 1 file changed, 34 insertions(+), 26 deletions(-)

diff --git a/scripts/alpine-rootfs.sh b/scripts/alpine-rootfs.sh
index 75e2f8648ce5..b01de9709d02 100755
--- a/scripts/alpine-rootfs.sh
+++ b/scripts/alpine-rootfs.sh
@@ -4,33 +4,42 @@ set -eu
 
 WORKDIR="${PWD}"
 COPYDIR="${WORKDIR}/binaries"
+UNAME=$(uname -m)
 
-apk update
+apk --no-cache upgrade
 
-# xen runtime deps
-apk add musl
-apk add libgcc
-apk add openrc
-apk add busybox
-apk add sudo
-apk add dbus
-apk add bash
-apk add python3
-apk add zlib
-apk add lzo
-apk add ncurses
-apk add yajl
-apk add libaio
-apk add xz
-apk add util-linux
-apk add argp-standalone
-apk add libfdt
-apk add glib
-apk add pixman
-apk add curl
-apk add udev
-apk add pciutils
-apk add libelf
+PKGS=(
+    # System
+    openrc
+    udev
+    util-linux
+
+    # Xen toolstack runtime deps
+    libbz2
+    libuuid
+    lzo
+    xz
+    yajl
+
+    # QEMU
+    glib
+    libaio
+    pixman
+    )
+
+case $UNAME in
+    x86_64)
+        PKGS+=(
+            # System
+            pciutils
+
+            # QEMU
+            libelf
+            )
+        ;;
+esac
+
+apk add --no-cache "${PKGS[@]}"
 
 # Xen
 cd /
@@ -45,7 +54,6 @@ rc-update add dmesg sysinit
 rc-update add hostname boot
 rc-update add hwclock boot
 rc-update add hwdrivers sysinit
-rc-update add modules boot
 rc-update add killprocs shutdown
 rc-update add mount-ro shutdown
 rc-update add savecache shutdown
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Mon Apr 14 11:54:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 11:54:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.949970.1346402 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4IOU-0000CQ-FX; Mon, 14 Apr 2025 11:54:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 949970.1346402; Mon, 14 Apr 2025 11:54: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 1u4IOU-0000CJ-Cu; Mon, 14 Apr 2025 11:54:30 +0000
Received: by outflank-mailman (input) for mailman id 949970;
 Mon, 14 Apr 2025 11:54: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=GQ8q=XA=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1u4IOT-0000C9-JZ
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 11:54:29 +0000
Received: from NAM11-CO1-obe.outbound.protection.outlook.com
 (mail-co1nam11on20614.outbound.protection.outlook.com
 [2a01:111:f403:2416::614])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 373ca5c4-1927-11f0-9eae-5ba50f476ded;
 Mon, 14 Apr 2025 13:54:28 +0200 (CEST)
Received: from PH8PR12MB7326.namprd12.prod.outlook.com (2603:10b6:510:216::7)
 by CH2PR12MB4085.namprd12.prod.outlook.com (2603:10b6:610:79::9) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.33; Mon, 14 Apr
 2025 11:54:23 +0000
Received: from PH8PR12MB7326.namprd12.prod.outlook.com
 ([fe80::6d76:9c33:d230:8264]) by PH8PR12MB7326.namprd12.prod.outlook.com
 ([fe80::6d76:9c33:d230:8264%2]) with mapi id 15.20.8632.030; Mon, 14 Apr 2025
 11:54: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: 373ca5c4-1927-11f0-9eae-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Z2+feU4ppJOlHAihiV2c1iarOWjjsm+6qa6Gs2fdOkan0/6PNR1WH1kZO/+LnniZY+gxCZVJss9HUsxoXXc96nWeqqNGEDoyh1CQrHs7rGgFe4IUFSlf+lYDRSmOffrk3dKKFfI+K3Zri4q1kamZmst8wg+Bnc8zUQbSbhhL3UF8BreSgr88+/HK1qjwRci7vvdogBDyAObMUBW/cVj7+8t6NJO0BaPa09tl8akv9UB1UR++ZieMWd4F1xdghw2PuYgm7N+qJ8dqPXJNzgw9u2cYiUOKAMih0+iMxhtWzBp6FFq706KomCyDB1IBlXvbCdviR+B6YrvxkfxbllQZ4A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=uv+jy1ynXd4Z5tbf9QOragjUmw77qhcQMxNTZ3LsQbY=;
 b=np+n0S7SXm7ZsEhMKmANFj7dbRenUn6zdu8F7AyGTqRs2bGpgkcf81VkuBUUatYzZj/WXbN1V8Yflf1jXfWuDatBU+I1O5kgJbpIK5esX6/lP84v2lzPq1jkk0mKpuJzTyZCK1O5PK2Q6gdyuNqUbYjwg8yJrRnzAfr6ODlo2k+AcAlSTJyl/4AO15fZ+GzsMSlYrY/bbE5QyMsU8XNhmZrzwStePAYCHgShHoz7uIPUasuPo0weIsgcoX38c1fLWvzM1I4x3fSJIqFVepdONFE0D2Qq21yO6BzKfE8KFJgvq+HbvSpM0R27tlBkWyfr8i0aVcMvXC/rgH/Ety7ANw==
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=uv+jy1ynXd4Z5tbf9QOragjUmw77qhcQMxNTZ3LsQbY=;
 b=yYtEVcH7wpZ98ytShL8N1a6bXwEvmPbDSkQ1iqDE3VJLb2xMOkTSmHxM1D1As6HoycBDi+wgV3tfRBJDx8tLT5YgaYNB1m+n3J5u/sboaQQ83N0yi9X+EUxKMZnPLakOYEC6iZE6UvdPIWZMpWUiqD/qzBbmmw6Pu8fEF86mvTk=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <614002cc-4dfe-44f7-8ab5-ff7d4f1e694f@amd.com>
Date: Mon, 14 Apr 2025 12:54:19 +0100
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 2/3] xen/arm32: Create the same boot-time MPU regions
 as arm64
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>,
 Luca Fancellu <luca.fancellu@arm.com>
References: <20250411110452.3748186-1-ayan.kumar.halder@amd.com>
 <20250411110452.3748186-3-ayan.kumar.halder@amd.com>
 <b401f18a-f32a-46c2-8e2f-343a4eb134b8@xen.org>
From: Ayan Kumar Halder <ayankuma@amd.com>
In-Reply-To: <b401f18a-f32a-46c2-8e2f-343a4eb134b8@xen.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0504.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:1ab::23) To PH8PR12MB7326.namprd12.prod.outlook.com
 (2603:10b6:510:216::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: PH8PR12MB7326:EE_|CH2PR12MB4085:EE_
X-MS-Office365-Filtering-Correlation-Id: 79d9c1ed-24bf-4aef-a55a-08dd7b4b1912
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?dlIvS3k5YzEwSGMvT1dJZFEwUHhKMEF4MWprQ01SSlhFL0x5NkJHcDN4ekx6?=
 =?utf-8?B?dEczbnFSWk9jYjdheDdaU2daYjl2RlRWVzIzU1U3SXgyWFBrZStGUjI3SjM2?=
 =?utf-8?B?eXNuMldUNjNEcmV0RzNZSXBrL1R3aGljVkJNQmQ0dnhmdTZzM2YvMlZCb0wz?=
 =?utf-8?B?NGpmbkZlT0UrU3VNM3JKeDU2TXJGQnYxcHdMYlk0VG5xZGpDZVlmd1NiMTND?=
 =?utf-8?B?NENBMDE1ck5nYnBCb000eGN3SjFNdVY5ZEdSc3NHMUFtM04vL0U3N1RmT1pv?=
 =?utf-8?B?ZUs2c0dpcEhRS0ttVkN6QmxDaWw3L0ZsNHovTENiVEt6NFNJWS9vcHF3OVp6?=
 =?utf-8?B?YVVoMmpHN0w5WDI0RWpLamhqRjlaUjRwelQwV0J3VWxJd2NNZUlDVm02UnU4?=
 =?utf-8?B?dnpJdUk0TFBRdVpJaHp2dWlHN25pWEJIS1g5V0crNTJibWw1bDFWRDlDRWRI?=
 =?utf-8?B?UGFZZms0RXpZbEIyRWxtQUZlbnZrQ09EVVNrMllLdVF4VThSNzRKUDNETXVS?=
 =?utf-8?B?cHRaTWlYVENOM2xHNzc4RHJuMEthdVVxM3R5K3A5V1JqUGV5OStFOE5HRjJv?=
 =?utf-8?B?LzdxclNBa3l0NGthRXpPMlFab01CV05OYTByWjRrdXovWXdNQjJtZ2lCRUJX?=
 =?utf-8?B?eG16dmFIMURUOE92SVk3Q2hSKy94cVZHTDFmcnpjZ1I5aW04RVQ5YkY1dUV0?=
 =?utf-8?B?VkJoTE1jcWJ3TllJOGFLNlNRWVphWWk4ZStTVG9oM1lyM0dpRUlTUXpTVG9L?=
 =?utf-8?B?U21IejU1WHRxNTF6bTZHZ3czcXBZS09HOW9JT3VxZUJRQTBiYlU4T0pZWnJF?=
 =?utf-8?B?YVNqWWhIcWxmNEtKMnZ5WUgzWS94YUl6cTNicElVWW9NVmVzZDRaMW5kcUZu?=
 =?utf-8?B?KzZ1Y0RKeGU3MFhScGRtMENLUzQ3Y2RUQnNoZmppNnpqMnNOaDRNNllOYnRK?=
 =?utf-8?B?UDdGSjk0S1FuNkRUSVhjTEFaaUNWV1piRnFMRlpZMFBQenhnck9wZ1c3Q2tQ?=
 =?utf-8?B?aGlVMS80WFllci9sZ1JMUlhNSGlxdFlxRDgxQWFrV1kyUDhGNE0yNE9GOWRw?=
 =?utf-8?B?eWo1NERJV1NETkdIdU5iUENpazg1aDV6ejR1YXhLS3VhbG1WUGJqbUFUaTNt?=
 =?utf-8?B?akpCOXpFZzY0L0UwMXVIMVY2QWQyeHBTaHZkTUNIc0RZaFVLamQ2bWpNNVJn?=
 =?utf-8?B?OEtGN2R4c0VUTDdpamJZMC9YL0IwUTNYeFI1a3BVTmQyenhhNkxlMXd4dnBu?=
 =?utf-8?B?VGNUNjNtRXlsdUhmSU42bHBCU1Y5WGJIRlFiSnVMZkkvVUk0eTNUYk12S001?=
 =?utf-8?B?Q2gwbS83Zndsc2lWS3JQaytsMXR4bjNxMkJBR1MyNnp6VmRJWGk2WXd3MjJl?=
 =?utf-8?B?aGRXQ2FLZ2FMNEF5c2xsaHNkZDFrNEtQUFhLajFtU09JeUhhbE9aeVBFQXVo?=
 =?utf-8?B?WUQ3WEtZcHRnL1ZRS096YXFjejRuY3hDQUFIMjFLOFFwWXFNaHBMTUk2S2c4?=
 =?utf-8?B?SEdBSnNwcENCdXRBNE9Sc0c1Qk1YMEI0aWFGbDJaVkxyRG9IZExNRzBMaTdG?=
 =?utf-8?B?K0ZGbGhnWGZOWnNVZnpOa081V3IxUWR1RHB1SWRtQjNwT01lUlJGendTblRE?=
 =?utf-8?B?azBwbkgzb3Y0ZmtIYXBFOU1ab1BwYUE0YmR0bzE2OE1lb0tkbkNQbE5mN1Fr?=
 =?utf-8?B?ejZ0c1lTcm5VQythVjQvNlVreE1aR2tkU3JWSHBSOFF0S2J2VXlyWHR3aXBE?=
 =?utf-8?B?SEg1eFJPZ29CL3NYakN3Skt4cUdVVG5OMnlnTG0vN05SL0FqV0VnRVJldU1M?=
 =?utf-8?B?TTlVTHNkMFFncTBBWS9DSU1BeWZJQVppZVBPRzZMNCtGYzc0RG8vS2V1dUpE?=
 =?utf-8?B?S1QxYndwUlpNWW9yc1pnRGtFR1Q2YUtqeEdyYVR1VUFodGdnakxSYmtkaTFI?=
 =?utf-8?Q?UXhAoLU1DW0=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)(366016)(376014)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?ZDl5RGxsVHJEWlBwTitxaTF6UGgwemxpelJBczJtYU43UFpJakhUTGFMWHlY?=
 =?utf-8?B?NEIvZTYvYklWWjluTFBGRG42UkNtQk5veFdLNEhBR0hQZ1ZOdWNEMFNnd0Yw?=
 =?utf-8?B?am1IM1JGaE1RSTJDMFI0V3htUmtOclk0bHYvdVdPOHBybGpNdVJQUjdWbjRM?=
 =?utf-8?B?QU1LcXdhSFBmYnNCSkgyajlQT3FRUUUwNmFhVVJteWFXRkdKSE5TUWcyM0Va?=
 =?utf-8?B?RHVObXkxTys0SWY1RjliNW5GMjhGaStHRnVZaUM2L3o1RlVMYklCYnNLdXJw?=
 =?utf-8?B?ZTQ2N1NOTVMreWJzTWkxVDNSd1h3MVNsVlM3SXY5RmVJbzc3cEdUaUl3Zjh5?=
 =?utf-8?B?aWRBbXU3N0xSMytjblNyMjRaRkg5dkhrU1VxaDRUWDhrUE9QZkNoVlVNWEM5?=
 =?utf-8?B?d2tuakZMVkdDS3FFa2VSUmxnV3RJYUYwQmtNV0c4OXZuVkJqME5vYmJVSU5C?=
 =?utf-8?B?M0oyYllnSnFTMk9BSjdGSmtZYUJrTmcxSWo4V0kwQTU0RTRlaTNCS3ZpdUhE?=
 =?utf-8?B?dnpDeldsaGJxWVI4cW9vOEh6MXFBMlVDdVhSR01LaWxta1hXY1pqVjBhMlgz?=
 =?utf-8?B?ZDdPVHR6TUlyNUhDSis3OVNKc2gweFFneUtXbUV5blgvSXFaVWhlUGpZOTVm?=
 =?utf-8?B?S1QwZHFXMGRZc3NRdmhtTU9DVXM2cFRCRHpOaDcvazdZYUlDdk90TTAxOFJD?=
 =?utf-8?B?VWF6YnAvWTh3OEtkK3g0S2FaTFNlMFpJRjBBa1I5SE9kY1lEVG1mNGRVaWY4?=
 =?utf-8?B?bEZ2aStrRUE3amd0b1g3anBYdlI5NmROejk5dURFTjRGaEFqUU1zM25XK281?=
 =?utf-8?B?VUlEU2NiQ1JvRnVWWVJQc0k0UjhmaUIrSnlWUkVjMmwyOTlNelNvTDFzNGY5?=
 =?utf-8?B?bFlSaEhYRGVrKzhXTGZzM0lKak1XNGM0RXNyb1JrSWQ0djhuTUU0SzV6ZG4z?=
 =?utf-8?B?UXRzUkxPZng3SW95Z3d4UWl3ZTNXRWVCcjBRcDlpbHROb0lhUjczam5BVHgx?=
 =?utf-8?B?eGJQOHZDeTlMbnYzOTBIZGlkcHhmNHZYeFphSUlrR1pSVHFZVjFOem5kb01u?=
 =?utf-8?B?Vi9FOGJLK29XZWZGOWRVVVpDSUxyM2lmK2o5UHBEWjZkUGlqSmYyeEwvMjMx?=
 =?utf-8?B?elFiZ25zUE02ejB4REkyenJ3N1VGSm1DcHhQZUtZeExoaHFlMjNOcFBwWG9Q?=
 =?utf-8?B?YjRJQVBTeERSZG03UXJBWHZ3ejUwcHBsYW14MmViR3A5THR5ZDU2dGZuc0hN?=
 =?utf-8?B?VFJzeG14N012TjY5YllKR3dCbHlib2JGOUJqUm0vSmc0WXBIZXc1RE5nRXdu?=
 =?utf-8?B?cUs3MlFpTmYvY295V2pxZlhrRU51QzAxWGI5aVVVUXg5UXZSeTRUUnBHRlhY?=
 =?utf-8?B?aGNoSkZHcHV4OFIwNzRrbmRXaWQyNmhLNFl6dXQvZW1USWhtME9nU0t2VUhy?=
 =?utf-8?B?MitpU3ZFbzJFcjJCNml2NzY4WkdtQVJVWm02bEFrNGw0SzBGdXVKNzlKQlRt?=
 =?utf-8?B?VkJNODN5VnVzcmhwWVloOFhRMjlVbS81RWRsZWRSYnI5WHJ5SVgwS2tvVkx5?=
 =?utf-8?B?QnluYU5iVVZHQ1BTdmZlVmtoL0dHUUp6ZlQ2SlcxNk1uSkgzMzdLMVI4eFNn?=
 =?utf-8?B?VkNVMmNLS1U0WlQ5Z0pmd2JEVUVoajJlaVBpYnNuQXMrUnIwNFJkVHNBYmFW?=
 =?utf-8?B?SU1DK0V0VlZsUkZSL0RxLzVTS292OUR6SW1vQXhVZVN4cjdENUJyK0JCSDNV?=
 =?utf-8?B?NlRKVFFMYThac1Y3VzNUOWpPeUo4QXVMNDFTeDJrUkRDcVE5YXpsWDQ2bHdM?=
 =?utf-8?B?c0kyMllyTVJoWFNsS1R0L3FqbEpGa0N5MXhuYzEzeDVaaEFwNGcwNVNHOHV0?=
 =?utf-8?B?U2szeTV6ckxYWnZyWHgyM3V4SjlnVGpBeStlK1dHa2FCZFF1cklZN2dXYjhL?=
 =?utf-8?B?Ym8wNitPV0llYUFBT1BEVnBrenFsanJwNlU2RUsrRGYyVDYyai8wd1FpZnZk?=
 =?utf-8?B?Lzl2bitmR2YyK3VNNng4a2xhSk5KcUlVVktob2lCZWJuZHpYdUY5ZjBnTVk4?=
 =?utf-8?B?ZC9NbGpraS8yKysyY2lqdDl4VjVzT3hKenhJaWRZZzNuc0JWZnJnbjRoSFRZ?=
 =?utf-8?Q?4ojFYP4SmJ2ErP1jmCr9Y1ZOF?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 79d9c1ed-24bf-4aef-a55a-08dd7b4b1912
X-MS-Exchange-CrossTenant-AuthSource: PH8PR12MB7326.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Apr 2025 11:54:23.2696
 (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: RO3yBR/MTY4Mh6/MtQ9q6zHuiuryOa1UicTCnnGZb13NiM9H51Uruvy2qgq9u+V7Rm0YeC1W1Q75u8Z1Ly1JJQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR12MB4085


On 14/04/2025 12:21, Julien Grall wrote:
> Hi Ayan,

Hi Julien,

A few clarifications.

>
> On 11/04/2025 20:04, Ayan Kumar Halder wrote:
>> diff --git a/xen/arch/arm/include/asm/arm32/sysregs.h 
>> b/xen/arch/arm/include/asm/arm32/sysregs.h
>> index 22871999af..8d7b95d982 100644
>> --- a/xen/arch/arm/include/asm/arm32/sysregs.h
>> +++ b/xen/arch/arm/include/asm/arm32/sysregs.h
>> @@ -20,6 +20,15 @@
>>    * uses r0 as a placeholder register. */
>>   #define CMD_CP32(name...)      "mcr " __stringify(CP32(r0, name)) ";"
>>   +#define REGION_TEXT_PRBAR       0x18    /* SH=11 AP=10 XN=0 */
>> +#define REGION_RO_PRBAR         0x1D    /* SH=11 AP=10 XN=1 */
>> +#define REGION_DATA_PRBAR       0x19    /* SH=11 AP=00 XN=1 */
>> +#define REGION_DEVICE_PRBAR     0x11    /* SH=10 AP=00 XN=1 */
>> +
>> +#ifdef __ASSEMBLY__
>> +#define WRITE_SYSREG_ASM(v, name) mcr CP32(v, name)
>> +#endif /* __ASSEMBLY__ */
>> +
>>   #ifndef __ASSEMBLY__
>>     /* C wrappers */
>> diff --git a/xen/arch/arm/include/asm/cpregs.h 
>> b/xen/arch/arm/include/asm/cpregs.h
>> index aec9e8f329..a7503a190f 100644
>> --- a/xen/arch/arm/include/asm/cpregs.h
>> +++ b/xen/arch/arm/include/asm/cpregs.h
>> @@ -1,6 +1,8 @@
>>   #ifndef __ASM_ARM_CPREGS_H
>>   #define __ASM_ARM_CPREGS_H
>>   +#include <asm/mpu/cpregs.h>
>
> Just to confirm, the CP registers used by the MPU will never be used 
> for an other purpose on MMU systems, is that correct?
Yes, this is correct. The registers are specific to PMSAv8-32 which will 
not be present on MMU systems.
>
>> diff --git a/xen/arch/arm/include/asm/mpu/cpregs.h 
>> b/xen/arch/arm/include/asm/mpu/cpregs.h
>> new file mode 100644
>> index 0000000000..e2f3b2264c
>> --- /dev/null
>> +++ b/xen/arch/arm/include/asm/mpu/cpregs.h
>> @@ -0,0 +1,27 @@
>> +/* SPDX-License-Identifier: GPL-2.0-only */
>> +
>> +#ifndef __ASM_ARM_MPU_CPREGS_H
>> +#define __ASM_ARM_MPU_CPREGS_H
>> +
>> +#ifdef CONFIG_ARM_32
>
> I am not sure I agree with the placement of this ifdef. Is the 
> implication that 32-bit domain will never be supported on arm64? If 
> not, then everything but the aliases should be available for 64-bit 
> (like we already do in asm/cpregs.h).
Yes, I will enclose the alias only.
>
>> +
>> +/* CP15 CR0: MPU Type Register */
>> +#define HMPUIR          p15,4,c0,c0,4
>> +
>> +/* CP15 CR6: MPU Protection Region Base/Limit/Select Address 
>> Register */
>> +#define HPRSELR         p15,4,c6,c2,1
>> +#define PRBAR_EL2       p15,4,c6,c3,0
>> +#define PRLAR_EL2       p15,4,c6,c8,1
>
> I am a little bit surprised the registers have _EL2 in their name. By 
> any chance are you using the aarch64 naming? 
yes.
> If so, please provide the 32-bit name and add an alias below.

yes, sorry this is a bit mixed up. I did not understand the purpose for 
defining alias , so I used the common name.

I will use HPRBAR and HPRLAR here and ....

>
>> +
>> +#define MPUIR_EL2       HMPUIR
>> +#define PRSELR_EL2      HPRSELR

#define PRBAR_EL2 HPRBAR

#define PRLAR_EL2 HPRLAR

>
> Please add a comment on top explaining why we have the aliases (see in 
> cpregs.h).

Actually, that comment (in asm/cpregs.h) did not make sense to me

"/* Aliases of AArch64 names for use in common code when building for 
AArch32 */"

Do you mean the common code is used for building both AArch64 and AArch32 ?

If so, then the comment I should put here

/* Aliases of AArch32 names for use in common code */

Does this sound correct ?

- Ayan

>
>> +
>> +#endif /* CONFIG_ARM_32 */
>> +#endif /* __ASM_ARM_MPU_CPREGS_H */
>> +
>> +/*
>> + * Local variables:
>> + * mode: ASM
>> + * indent-tabs-mode: nil
>> + * End:
>> + */
>
> Cheers,
>


From xen-devel-bounces@lists.xenproject.org Mon Apr 14 11:57:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 11:57:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.949983.1346413 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4IRZ-0000mZ-UP; Mon, 14 Apr 2025 11:57:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 949983.1346413; Mon, 14 Apr 2025 11:57: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 1u4IRZ-0000mS-Qi; Mon, 14 Apr 2025 11:57:41 +0000
Received: by outflank-mailman (input) for mailman id 949983;
 Mon, 14 Apr 2025 11:57:40 +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 1u4IRY-0000m6-M2
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 11:57:40 +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 1u4IRY-00EpXY-0x;
 Mon, 14 Apr 2025 11:57:40 +0000
Received: from [143.198.24.140] (helo=[100.81.22.8])
 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 1u4IRX-00DGdS-2e;
 Mon, 14 Apr 2025 11:57: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>
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=VWXJh8tyxh2o3qgGrn+0nILB7QDtbSeXHz0k95U6BQA=; b=jkqFc/QLICsqF7bBS6NfvFPSS+
	grsZ1wm8U8nbRKr5zxF2AaJmcWibBuV6McLMNe4jPxi5ClYKozRu62E0FbI9oVrhZIeUVBGl7ll/F
	ggkiu9P0hsdiOBcw8FZHOHuoXONHU691LoEnGlEpANoyOVVvBk0CApt3PLUBsytQkSjE=;
Message-ID: <4f95b625-3013-4750-a5c9-67d346ee8c3b@xen.org>
Date: Mon, 14 Apr 2025 20:57:34 +0900
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 6/7] arm/mpu: Implement early_fdt_map support in MPU
 systems
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: <20250411145655.140667-1-luca.fancellu@arm.com>
 <20250411145655.140667-7-luca.fancellu@arm.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20250411145655.140667-7-luca.fancellu@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Luca,

On 11/04/2025 23:56, Luca Fancellu wrote:
> Implement early_fdt_map() function, that is responsible to map the
> device tree blob in the early stages of the boot process, since at
> this stage the MPU C data structure are not yet initialised, it is
> using low level APIs to write into the MPU registers at a fixed
> MPU region number.
> 
> The MPU memory management is designed to work on pages of PAGE_SIZE
> in order to reuse helpers and macros already available on the Xen
> memory management system.
> 
> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
> ---
>   xen/arch/arm/mpu/setup.c | 54 ++++++++++++++++++++++++++++++++++++++--
>   1 file changed, 52 insertions(+), 2 deletions(-)
> 
> diff --git a/xen/arch/arm/mpu/setup.c b/xen/arch/arm/mpu/setup.c
> index b4da77003f47..5969065250d4 100644
> --- a/xen/arch/arm/mpu/setup.c
> +++ b/xen/arch/arm/mpu/setup.c
> @@ -1,17 +1,67 @@
>   /* SPDX-License-Identifier: GPL-2.0-only */
>   
> +#include <xen/bootfdt.h>
>   #include <xen/bug.h>
>   #include <xen/init.h>
> +#include <xen/libfdt/libfdt.h>
>   #include <xen/mm.h>
> +#include <xen/pfn.h>
>   #include <xen/types.h>
> +#include <asm/mpu.h>
> +#include <asm/page.h>
>   #include <asm/setup.h>
>   
> +/* Needs to be kept in sync with the regions programmed in arm64/mpu/head.S */

This is common code. So you will need to keep in sync for both 32-bit 
and 64-bit. That said, someone modifying head.S will not necessarily 
remember that this needs to be kept in sync. Such comment would be more 
effective in head.S just after the last section.

However, the number of regions mapped can change. So I am not sure why 
we are...

> +#define EARLY_FDT_MAP_REGION_NUMBER 6

... hardcoding to 6 rather than using the next available region.

> +
>   void __init setup_pagetables(void) {}
>   
>   void * __init early_fdt_map(paddr_t fdt_paddr)
>   {
> -    BUG_ON("unimplemented");
> -    return NULL;
> +    /* Map at least a page containing the DTB address, exclusive range */
> +    paddr_t base_paddr = round_pgdown(fdt_paddr);

NIT:  IIRC, the minimum for the MPU is 64-byte. So is there any reason 
we are enforcing a bigger alignment?

> +    paddr_t end_paddr = round_pgup(fdt_paddr + sizeof(struct fdt_header));
> +    unsigned int flags = PAGE_HYPERVISOR_RO;
> +    void *fdt_virt = (void *)fdt_paddr; /* virt == paddr for MPU */
> +    pr_t fdt_region;
> +
> +    /*
> +     * Check whether the physical FDT address is set and meets the minimum
> +     * alignment requirement. Since we are relying on MIN_FDT_ALIGN to be at
> +     * least 8 bytes so that we always access the magic and size fields
> +     * of the FDT header after mapping the first chunk, double check if
> +     * that is indeed the case.
> +     */
> +    BUILD_BUG_ON(MIN_FDT_ALIGN < 8);
> +    if ( !fdt_paddr || fdt_paddr % MIN_FDT_ALIGN )
> +        return NULL;
> +
> +    /* Map the device tree blob header  */
> +    fdt_region = pr_of_xenaddr(base_paddr, end_paddr, PAGE_AI_MASK(flags));
> +    fdt_region.prbar.reg.ap = PAGE_AP_MASK(flags);
> +    fdt_region.prbar.reg.xn = PAGE_XN_MASK(flags);
> +
> +    write_protection_region(&fdt_region, EARLY_FDT_MAP_REGION_NUMBER);
> +    context_sync_mpu();
> +
> +    if ( fdt_magic(fdt_virt) != FDT_MAGIC )
> +        return NULL;
> +
> +    end_paddr = round_pgup(fdt_paddr + fdt_totalsize(fdt_virt));
> +
> +    /*
> +     * If the mapped range is not enough, map the rest of the DTB, pr_get_limit
> +     * returns an inclusive address of the range, hence the increment.
> +     */
> +    if ( end_paddr > (pr_get_limit(&fdt_region) + 1) )
> +    {
> +        pr_set_limit(&fdt_region, end_paddr);
> +
> +        write_protection_region(&fdt_region, EARLY_FDT_MAP_REGION_NUMBER);
> +        context_sync_mpu();
> +    }
> +
> +    return fdt_virt;
>   }
>   
>   /*

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Mon Apr 14 11:57:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 11:57:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.949985.1346422 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4IRj-00015A-83; Mon, 14 Apr 2025 11:57:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 949985.1346422; Mon, 14 Apr 2025 11:57: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 1u4IRj-000150-52; Mon, 14 Apr 2025 11:57:51 +0000
Received: by outflank-mailman (input) for mailman id 949985;
 Mon, 14 Apr 2025 11:57: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=B3Nx=XA=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u4IRi-000145-1U
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 11:57:50 +0000
Received: from NAM10-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam10on2061f.outbound.protection.outlook.com
 [2a01:111:f403:2413::61f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ae6b2d06-1927-11f0-9eae-5ba50f476ded;
 Mon, 14 Apr 2025 13:57:48 +0200 (CEST)
Received: from DM6PR07CA0125.namprd07.prod.outlook.com (2603:10b6:5:330::7) by
 IA0PR12MB7580.namprd12.prod.outlook.com (2603:10b6:208:43b::6) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.8632.32; Mon, 14 Apr 2025 11:57:40 +0000
Received: from DS3PEPF000099E0.namprd04.prod.outlook.com
 (2603:10b6:5:330:cafe::e0) by DM6PR07CA0125.outlook.office365.com
 (2603:10b6:5:330::7) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.34 via Frontend Transport; Mon,
 14 Apr 2025 11:57:40 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 DS3PEPF000099E0.mail.protection.outlook.com (10.167.17.203) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Mon, 14 Apr 2025 11:57:39 +0000
Received: from localhost (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; Mon, 14 Apr
 2025 06:57:38 -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: ae6b2d06-1927-11f0-9eae-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=hCa6tgDkOKqHgbv9AHbwrZn4jFrrYeuoCApdR9i8lpYJlbh05QMorDRysq8kL1rlTyybeL/VVF83ws/DsUa7O/PYIGsbuVSPb+79VvlAVkOUd5h+ejraszhx+A3WpwQ5y7XhVjYZUfGOQfn7N7D3piqNc+m6DT/IhLj4ZaKB9euugS+a/fjFjz1227NrIQpXUdKRgmIR7Jrj4+hKdzuviN13isjQUJPPXkgHBv+6vkc5T/UhHDRqLb7LiBTSqJzJ6Q+cx4/vpy6iTSNbQvdLZg7KECWc653OHCo81wGKs/2vL9d95noA/qlLNSbxLFz8cwW3RS8rKOdyDcR/exLXdQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=hlS8vG82HDJzm97BmOHzZQ4g7l4H7Ov7PT9dnb4Rn6k=;
 b=VBQ6tvCha6jaXy/k66vhAke3Gk6Ofm75cqfU7bka0GugAzHR2V23TbzJl6b+B21XRomOD7rs3zXuYZJA72g0UPXmAUqtxOQpdeBkZsmAM11TVe+3krccXGST2V/dsmyFWifyqZztry1f+S4LYZYhKf+CkNhqJfcp5NTrvQKqga5IxvxisDy4ahwxkd67km3XlywE6hdZbum3cd3185LphvBjPfu50k47rNT4gBYZ0xUKlUAZQDbD9C6vNIMqwxuEp+2lh6IbbY7Ev7/7nJGFDANM56a7C5Rm5sZnady/6PsbgnquiTJBBkG6lHDR7X60xp88Kj3joyzZHO7BifibJw==
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=hlS8vG82HDJzm97BmOHzZQ4g7l4H7Ov7PT9dnb4Rn6k=;
 b=boIyNP9RT3UpVD/COSOepxgmuQBAKtNwxqgH92fSVvehCEotIQphSYF+4BDEu4rHeUY7r/g7z97E61rUoF18Na9SK1fP9F7GgW0WEIE7BX40xEpzG1O8vgoRVE6RMqZuX0I4h4B28Joc9xliwnhv4EOiRauUiDT/YOaLfuauh6Q=
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
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Mon, 14 Apr 2025 12:57:37 +0100
Message-ID: <D96CDMX3B877.3MD1OKAJ6JJ3E@amd.com>
CC: Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>, Xen-devel
	<xen-devel-bounces@lists.xenproject.org>
Subject: Re: [ImageBuilder] uboot-script-gen: add xen xsm policy loading
 support
From: Alejandro Vallejo <agarciav@amd.com>
To: Grygorii Strashko <grygorii_strashko@epam.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, "Stefano
 Stabellini" <sstabellini@kernel.org>
X-Mailer: aerc 0.20.1
References: <20250414081449.1763962-1-grygorii_strashko@epam.com>
In-Reply-To: <20250414081449.1763962-1-grygorii_strashko@epam.com>
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: DS3PEPF000099E0:EE_|IA0PR12MB7580:EE_
X-MS-Office365-Filtering-Correlation-Id: af10f1b1-ccfb-48f9-6ea3-08dd7b4b8e82
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|82310400026|36860700013|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?WmhIcnNRbmVLSGFseXhLaVBYNTV6TncvOEJLNXR1TnlzQjhtVFFscnpCSjVU?=
 =?utf-8?B?d09MNVd5cldtSnN6Slc0bzE4c2FjOHY4WEMyY2dCTjNGZnRlQ01EYzlDbm1i?=
 =?utf-8?B?UVZpdnJwR09qMVlpa243d2xxS1IzSGRxVGk1TUtxWE9mREtEOHVSa2dhTitI?=
 =?utf-8?B?ZlJQZS9UYXQxQ2wvWHNBZmhRbFJWaUFlUU1JR0xVRndldnA5ME5wNlFYVVRT?=
 =?utf-8?B?VjJOdmdPRUdHUkVDUjR2bE5HZy9FNncxYUpBMVgxV09tWDdiMDQrQ1Z3MFk3?=
 =?utf-8?B?bzhwV0wzdFBIVDc0SmUraVR2OFJxWElSdHRrV0hrR09LV0M1dVh3czN6Q1VK?=
 =?utf-8?B?K2lUSUkzSHVpYXZpM0g5aEI3Y01mc1N1ejRGejRzcCtXNDJWZVB4cGxRNGZQ?=
 =?utf-8?B?V3Y3TkJmd0ZtL1h4SUVadlNUWFYyYW5sakNEQ0M1V2NkVE5BTXRhRVpzYXJU?=
 =?utf-8?B?bi9jTVlNMHh2RVMxdmhCWnRtWXFmaEt3SDFVVnUxdXJwQmc1TktMLzY4encv?=
 =?utf-8?B?eTRJMlB0VnpQOTFYb09Cc3dBd3lUN25ydzNjbzFoZm5KSFpaNjFwWmp6WWI0?=
 =?utf-8?B?V2tlQ0FQM3U1VUgzTFBIVFRuSEs1WkZsWEpNYWwrTG4rZTJPZjdBSEwydytP?=
 =?utf-8?B?elVKTTcvZUFVRUZHVzcrdDl1dDlVRW43R1NsbUhmSTRmT3BCdW5XRGxPQ2xX?=
 =?utf-8?B?S1h2b0VuZWJSRmQrcHdPQTZ3dFlXYTZtVXN0aWUzbCt2V2g2YlZ1ZXBxTmY5?=
 =?utf-8?B?TzB0ZEdEbHJteElaNm9OSUJmQzR0b3lGcXRrTjlRYXQ2TGVyRzROWng4UWE5?=
 =?utf-8?B?aWJwY2dNamdLRTFKejZGcWFYWkkvMGNxb2VNRVlLL01SMWRveUVqSm1hWmVS?=
 =?utf-8?B?MGFYK2ZCOTJ0bXF2eTFEM0t3ZUVBNEF2K0JVR21zOGRHdWR2TU9nNFBwWEF3?=
 =?utf-8?B?TVR4RUFRaW0vT0lHSlRlTFJ2UElqTGJoUFV6YXNtZEZNdzJFVWdDcTY4OTlq?=
 =?utf-8?B?aWo0VTQ1UHNwR2RlenVMRzY4VnZiU0hYc1R4di9uZnZBZTdlNFNBUlVCZTU5?=
 =?utf-8?B?OHllS1JBLzd5V0Z1V2MrQnpkTGxHLy9GbjZ3YUpSV0htZjdrVDErdXFLL1hy?=
 =?utf-8?B?Skc4WXZMV2FGRC9QVEt2VXJMWXlRZzlFUlR6ZGYwVnY4L0MzVThKRTN0azBE?=
 =?utf-8?B?UEV6aGpleFFKTDNjdlpoMzVqZlJhd1I0UWNLN3BwVW5IdGl0eDdrMGE4UFFH?=
 =?utf-8?B?Y3lTazlFRUlyQ0N5L1AvS01lVGZVK2pwd1plS2JhWHdUMWJwRDh3YnpNY0hk?=
 =?utf-8?B?SkVyNFp5QXFUSjRrdVFNS3d1MUpVcHNidVBrN1VIc3Bra1k2MTlKcEJlYmxV?=
 =?utf-8?B?UUN1VjFHWElza2ZBd2N2QzRSRTFidjU2amNxdU54TDdlRlZMNW02U3o5TlRP?=
 =?utf-8?B?SFppcGFBckxlUTVPVFhpL2pnc1JENWNCd3YySm5ZbzAyc1h6N3BJREdYa2Ni?=
 =?utf-8?B?ajZCV2VMT0c5cDZLOTQzVUVZNU9XbkpMWUJTMVk1SG94MHVMb212QmUzd0Y5?=
 =?utf-8?B?ZzZoQ1ZCdWVRV29qYktyTHVZaEhnTWQ2MnEzVGpmWmdQR0xvY2REZVVGNGZC?=
 =?utf-8?B?WHJzaEhoQjQyc05lWlYwd29JalhBMExZV2MrOU05K3dwN1VtRjRJVWQ2N3Bt?=
 =?utf-8?B?SjBtUzJBc2hPUDZUV3J5eHR4MElrdDZGKzF3RW9MSUZ6QmdmSUVPaFhrMUFF?=
 =?utf-8?B?c1htdEViQ01TbSttbDRVZDR6S2kyZVBUV1VZQldrakVjSllBZU9QaE1ZQjAr?=
 =?utf-8?B?Yno1WlQyS1VSUS9BU3hMWHB5QzdFVGNPdzljMUxWak9lcmFqQ3JxT3J3SDZo?=
 =?utf-8?B?dWVPTnlkK3VOOEtzR3ZqbjR4Y1hsUkYxdU1QcGNKS09QMWdxODNnZUxsZThQ?=
 =?utf-8?B?OTJ2NW1JUkNrQ1M5ZUpVSVVrOURiTkU3ZWd0Nlo5NnlEYk1pK01IV01XWEpU?=
 =?utf-8?B?dWk5YncrSkZWTEZaNHZLV1Z4emZRTU5KSFd5NFhVa1YvbGVHeHh3WXlJd2hz?=
 =?utf-8?Q?WnViSV?=
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)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Apr 2025 11:57:39.9217
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: af10f1b1-ccfb-48f9-6ea3-08dd7b4b8e82
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:
	DS3PEPF000099E0.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PR12MB7580

As a general question, why using "test" so much, rather than

   if [ -n "$FOO" -a "FOO" =3D=3D ABC ]

Using test seems far harder to read than it needs to be, and single
brackets are perfectly valid POSIX shell.

On Mon Apr 14, 2025 at 9:14 AM BST, Grygorii Strashko wrote:
> From: Grygorii Strashko <grygorii_strashko@epam.com>
>
> This patch adds Xen XSM policy loading support.
>
> The configuration file XEN_POLICY specifies Xen hypervisor
> XSM policy binary to load.
>
> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
> ---
>  README.md                |  2 ++
>  scripts/uboot-script-gen | 33 +++++++++++++++++++++++++++++++++
>  2 files changed, 35 insertions(+)
>
> diff --git a/README.md b/README.md
> index 137abef153ce..9106d2a07302 100644
> --- a/README.md
> +++ b/README.md
> @@ -91,6 +91,8 @@ Where:
>  - XEN specifies the Xen hypervisor binary to load. Note that it has to
>    be a regular Xen binary, not a u-boot binary.
> =20
> +- XEN_POLICY specifies the Xen hypervisor XSM policy binary to load.
> +
>  - XEN_COLORS specifies the colors (cache coloring) to be used for Xen
>    and is in the format startcolor-endcolor
> =20
> diff --git a/scripts/uboot-script-gen b/scripts/uboot-script-gen
> index c4d26caf5e0e..343eba20e4d9 100755
> --- a/scripts/uboot-script-gen
> +++ b/scripts/uboot-script-gen
> @@ -315,6 +315,15 @@ function xen_device_tree_editing()
>      dt_set "/chosen" "#size-cells" "hex" "0x2"
>      dt_set "/chosen" "xen,xen-bootargs" "str" "$XEN_CMD"
> =20
> +    if test "$XEN_POLICY" && test $xen_policy_addr !=3D "-"

If XEN_POLICY is a binary, shouldn't it be "test -f" ? Same later on.

Also, missing quotes around $xen_policy_addr

> +    then
> +        local node_name=3D"xen-policy@${xen_policy_addr#0x}"
> +
> +        dt_mknode "/chosen" "$node_name"
> +        dt_set "/chosen/$node_name" "compatible" "str_a" "xen,xsm-policy=
 xen,multiboot-module multiboot,module"
> +        dt_set "/chosen/$node_name" "reg" "hex" "$(split_addr_size $xen_=
policy_addr $xen_policy_size)"
> +    fi
> +
>      if test "$DOM0_KERNEL"

test -f?
g
>      then
>          local node_name=3D"dom0@${dom0_kernel_addr#0x}"
> @@ -900,6 +909,14 @@ xen_file_loading()
>      kernel_addr=3D$memaddr
>      kernel_path=3D$XEN
>      load_file "$XEN" "host_kernel"
> +
> +    xen_policy_addr=3D=3D"-"

Do you mean =3D ?

> +    if test "$XEN_POLICY"
> +    then
> +        xen_policy_addr=3D$memaddr
> +        load_file "$XEN_POLICY" "xen_policy"
> +        xen_policy_size=3D$filesize
> +    fi
>  }
> =20
>  linux_file_loading()
> @@ -939,6 +956,22 @@ bitstream_load_and_config()
> =20
>  create_its_file_xen()
>  {
> +    if test "$XEN_POLICY" && test $xen_policy_addr !=3D "-"
> +    then
> +        cat >> "$its_file" <<- EOF
> +        xen_policy {
> +            description =3D "Xen XSM policy binary";
> +            data =3D /incbin/("$XEN_POLICY");
> +            type =3D "kernel";
> +            arch =3D "arm64";
> +            os =3D "linux";
> +            compression =3D "none";
> +            load =3D <$xen_policy_addr>;
> +            $fit_algo
> +        };
> +	EOF
> +    fi
> +
>      if test "$DOM0_KERNEL"
>      then
>          if test "$ramdisk_addr" !=3D "-"

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Mon Apr 14 12:04:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 12:04:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.950014.1346433 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4IXh-0004DL-0E; Mon, 14 Apr 2025 12:04:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 950014.1346433; Mon, 14 Apr 2025 12:04: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 1u4IXg-0004DE-Tj; Mon, 14 Apr 2025 12:04:00 +0000
Received: by outflank-mailman (input) for mailman id 950014;
 Mon, 14 Apr 2025 12:03: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 1u4IXf-0004AK-K8
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 12:03: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 1u4IXf-00Epik-0I;
 Mon, 14 Apr 2025 12:03:59 +0000
Received: from [143.198.24.140] (helo=[100.81.22.8])
 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 1u4IXe-00DIZN-29;
 Mon, 14 Apr 2025 12:03:59 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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=23AunWhcPaxmWWt9h3GmQTb3myy7/7Zs++h/aE1DJ7k=; b=wxZ8mPZJxRO5x5bCWYN3QNiNuf
	TYRSo2nEQHodrFmHdgGZLkfUbRdMqZAuoU4njIyhOxbNRnWcTijoU1Jo+/ld8hTDbIK8jpMISMheK
	Ry6crkCPSzsQKcfuB+mPIRqTxT4mBe/q75Q5xQluE3Bh8GSpO3pJ5arF4LdDjaTqgxtM=;
Message-ID: <b691741d-85de-4120-8077-07df50948525@xen.org>
Date: Mon, 14 Apr 2025 21:03:52 +0900
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 2/3] xen/arm32: Create the same boot-time MPU regions
 as arm64
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: 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: <20250411110452.3748186-1-ayan.kumar.halder@amd.com>
 <20250411110452.3748186-3-ayan.kumar.halder@amd.com>
 <b401f18a-f32a-46c2-8e2f-343a4eb134b8@xen.org>
 <614002cc-4dfe-44f7-8ab5-ff7d4f1e694f@amd.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <614002cc-4dfe-44f7-8ab5-ff7d4f1e694f@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi Ayan,

On 14/04/2025 20:54, Ayan Kumar Halder wrote:
> 
> On 14/04/2025 12:21, Julien Grall wrote:
>> Hi Ayan,
> 
> Hi Julien,
> 
> A few clarifications.
> 
>>
>> On 11/04/2025 20:04, Ayan Kumar Halder wrote:
>>> diff --git a/xen/arch/arm/include/asm/arm32/sysregs.h b/xen/arch/arm/ 
>>> include/asm/arm32/sysregs.h
>>> index 22871999af..8d7b95d982 100644
>>> --- a/xen/arch/arm/include/asm/arm32/sysregs.h
>>> +++ b/xen/arch/arm/include/asm/arm32/sysregs.h
>>> @@ -20,6 +20,15 @@
>>>    * uses r0 as a placeholder register. */
>>>   #define CMD_CP32(name...)      "mcr " __stringify(CP32(r0, name)) ";"
>>>   +#define REGION_TEXT_PRBAR       0x18    /* SH=11 AP=10 XN=0 */
>>> +#define REGION_RO_PRBAR         0x1D    /* SH=11 AP=10 XN=1 */
>>> +#define REGION_DATA_PRBAR       0x19    /* SH=11 AP=00 XN=1 */
>>> +#define REGION_DEVICE_PRBAR     0x11    /* SH=10 AP=00 XN=1 */
>>> +
>>> +#ifdef __ASSEMBLY__
>>> +#define WRITE_SYSREG_ASM(v, name) mcr CP32(v, name)
>>> +#endif /* __ASSEMBLY__ */
>>> +
>>>   #ifndef __ASSEMBLY__
>>>     /* C wrappers */
>>> diff --git a/xen/arch/arm/include/asm/cpregs.h b/xen/arch/arm/ 
>>> include/asm/cpregs.h
>>> index aec9e8f329..a7503a190f 100644
>>> --- a/xen/arch/arm/include/asm/cpregs.h
>>> +++ b/xen/arch/arm/include/asm/cpregs.h
>>> @@ -1,6 +1,8 @@
>>>   #ifndef __ASM_ARM_CPREGS_H
>>>   #define __ASM_ARM_CPREGS_H
>>>   +#include <asm/mpu/cpregs.h>
>>
>> Just to confirm, the CP registers used by the MPU will never be used 
>> for an other purpose on MMU systems, is that correct?
> Yes, this is correct. The registers are specific to PMSAv8-32 which will 
> not be present on MMU systems.

I am not entirely sure this is answering my question. I was asking 
whether the encoding could be re-used for a non-MPU specific register in 
the future? IOW, is the encoding reserved for PMSAv8-32 only?

>>
>>> diff --git a/xen/arch/arm/include/asm/mpu/cpregs.h b/xen/arch/arm/ 
>>> include/asm/mpu/cpregs.h
>>> new file mode 100644
>>> index 0000000000..e2f3b2264c
>>> --- /dev/null
>>> +++ b/xen/arch/arm/include/asm/mpu/cpregs.h
>>> @@ -0,0 +1,27 @@
>>> +/* SPDX-License-Identifier: GPL-2.0-only */
>>> +
>>> +#ifndef __ASM_ARM_MPU_CPREGS_H
>>> +#define __ASM_ARM_MPU_CPREGS_H
>>> +
>>> +#ifdef CONFIG_ARM_32
>>
>> I am not sure I agree with the placement of this ifdef. Is the 
>> implication that 32-bit domain will never be supported on arm64? If 
>> not, then everything but the aliases should be available for 64-bit 
>> (like we already do in asm/cpregs.h).
> Yes, I will enclose the alias only.
>>
>>> +
>>> +/* CP15 CR0: MPU Type Register */
>>> +#define HMPUIR          p15,4,c0,c0,4
>>> +
>>> +/* CP15 CR6: MPU Protection Region Base/Limit/Select Address 
>>> Register */
>>> +#define HPRSELR         p15,4,c6,c2,1
>>> +#define PRBAR_EL2       p15,4,c6,c3,0
>>> +#define PRLAR_EL2       p15,4,c6,c8,1
>>
>> I am a little bit surprised the registers have _EL2 in their name. By 
>> any chance are you using the aarch64 naming? 
> yes.
>> If so, please provide the 32-bit name and add an alias below.
> 
> yes, sorry this is a bit mixed up. I did not understand the purpose for 
> defining alias , so I used the common name.
> 
> I will use HPRBAR and HPRLAR here and ....
> 
>>
>>> +
>>> +#define MPUIR_EL2       HMPUIR
>>> +#define PRSELR_EL2      HPRSELR
> 
> #define PRBAR_EL2 HPRBAR
> 
> #define PRLAR_EL2 HPRLAR
> 
>>
>> Please add a comment on top explaining why we have the aliases (see in 
>> cpregs.h).
> 
> Actually, that comment (in asm/cpregs.h) did not make sense to me
> 
> "/* Aliases of AArch64 names for use in common code when building for 
> AArch32 */"
> 
> Do you mean the common code is used for building both AArch64 and AArch32 ?

The goal of the comment is to explain why we are defining AArch64. So I 
think...

 > > If so, then the comment I should put here
> 
> /* Aliases of AArch32 names for use in common code */
> 
> Does this sound correct ?

it wants to be s/AArch32/AArch64/ in your proposed comment.

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Mon Apr 14 12:06:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 12:06:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.950029.1346444 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4IZn-0005Kb-BV; Mon, 14 Apr 2025 12:06:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 950029.1346444; Mon, 14 Apr 2025 12: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 1u4IZn-0005KU-7Q; Mon, 14 Apr 2025 12:06:11 +0000
Received: by outflank-mailman (input) for mailman id 950029;
 Mon, 14 Apr 2025 12: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=m6tK=XA=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1u4IZm-0005KO-8T
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 12:06:10 +0000
Received: from NAM10-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam10on20612.outbound.protection.outlook.com
 [2a01:111:f403:2413::612])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d8bc44c9-1928-11f0-9eae-5ba50f476ded;
 Mon, 14 Apr 2025 14:06:08 +0200 (CEST)
Received: from BN9PR12MB5273.namprd12.prod.outlook.com (2603:10b6:408:11e::22)
 by PH0PR12MB5678.namprd12.prod.outlook.com (2603:10b6:510:14e::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.29; Mon, 14 Apr
 2025 12:06:04 +0000
Received: from BN9PR12MB5273.namprd12.prod.outlook.com
 ([fe80::cf66:58ab:47be:4b13]) by BN9PR12MB5273.namprd12.prod.outlook.com
 ([fe80::cf66:58ab:47be:4b13%5]) with mapi id 15.20.8632.030; Mon, 14 Apr 2025
 12:06: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: d8bc44c9-1928-11f0-9eae-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=gLBdcMg+vedskUeWEqoNMr+qQhr6SV5DHM19tYxLuVAOyS+5SwrvPwZrpQ5tl+Q1YopvcK62uI/n0WI9adUCBR/J1iHLh21YEZ2ujSK2FC5KyWwEdg36+exkHjWlRLgHp5xVoz1v8Tyle24zTNvs55uvjVhnhsckDfNNMe5ZjXDJ62uL9gCxx7H2YDR9Uskj6O9hi3I1ZEEs0I3wbF+WuS/ZfLQFWQB6pse4y74tzkw2cSWrbY2AX2eJ8nsYP72CB5w6TNWmswEQu46cNdVebJmxjGib0tWcj2m4G56l6OqaxIMdxZDGMZJbj0xe+fVPMhISWCbRmQLNm7VY9hO+Pw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=EkUYjbZyUBb/mXB+lZuHjunoIC3RntRvcNqu4J+48uA=;
 b=YXCrEXAbPCKZhjm3gE0ahCxYwr5UgrZ9PiluCZHkc4CPA0f6YqvaSUrdc9EVusYGvxTLtPep6S1fgALX7NcgRmKvFHccAx3hB59gyxfFVBmo7xU6i2XCW7ggKd8n9WU73HcyQJVjqFp5wSNhZvqKuDzdcAO1WZafGaq4KWLf+ZzcEWlA5IU8+4sb9X6cNJXsxHz/iK76bbWt6wl3B7ES1ecym4KUKyvc6jWiLEEBL89O3O9QOzGqMkbLBQ/OaR91j8YWBPUj787G8qtJaM9DyUGE8VJyc8LTOmWElkcAr8YDaZ3UIJkBSsolPSMQ0f9jVCBxDXm0dG83SJ6NOzGuQg==
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=EkUYjbZyUBb/mXB+lZuHjunoIC3RntRvcNqu4J+48uA=;
 b=wwrX/lCnVI6BlWbvi6AvOxGRY4wCuaC73YNzIGiIqPufDc/sF42CzY6SkvJLoSfMFM4f13fyjKOKWy+aiNwHyhbtIPeTAdtiWJrgjVd0WyZzXbhxyNTGcfF8tmdg/7hz/dp0J9BnT3AoJHWFrah9/CpuN06NPrz6qVeMV3KiTVk=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <73ff4d70-0558-4fe8-9007-f4dee673f0e8@amd.com>
Date: Mon, 14 Apr 2025 14:06:00 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 2/3] xen/arm32: Create the same boot-time MPU regions
 as arm64
To: Ayan Kumar Halder <ayankuma@amd.com>,
 Ayan Kumar Halder <ayan.kumar.halder@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>,
 Luca Fancellu <luca.fancellu@arm.com>
References: <20250411110452.3748186-1-ayan.kumar.halder@amd.com>
 <20250411110452.3748186-3-ayan.kumar.halder@amd.com>
 <f4c43d72-b403-4829-b490-46823391f82c@amd.com>
 <0e20dc0f-ec97-4b6a-98c5-cdfcd3dfb44c@amd.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <0e20dc0f-ec97-4b6a-98c5-cdfcd3dfb44c@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR4P281CA0039.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:c7::18) To BN9PR12MB5273.namprd12.prod.outlook.com
 (2603:10b6:408:11e::22)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN9PR12MB5273:EE_|PH0PR12MB5678:EE_
X-MS-Office365-Filtering-Correlation-Id: 9bdcee18-0203-431a-f4f7-08dd7b4cbac4
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?VnpFdk1EZkJnYVhlaWUvVE40cjRjazFUWjBNV0FCYWF0TXpoQUhQTXg0Nzda?=
 =?utf-8?B?d21IaC9naTQ5azRGZHM3bkNMVDFiczFlWFUyeTVBSjR1dWU4N2N6UG1LdFJL?=
 =?utf-8?B?R2NuYS80RXIxVWU2bDdXUDJWbXI0OHdoZzRyci9OM3NncWUycFprMmFrUHps?=
 =?utf-8?B?dHhhbVU1T29JOTdOaGh0Y2cxTHI5VEhKU3I1Q0xOemJ5akgrbVB4UHZyWXFI?=
 =?utf-8?B?YzVQeitIUllzTG80c0l0SXdyS2JIZ0YxVWFwaVlZS0RlOXF1RjFLZDhVYVZL?=
 =?utf-8?B?QXhQbGIwa3Q0SVdoQWRIZ0R6aTBwemFhZWx0ZFJNYS9lL1RWMXNZUzNpYytC?=
 =?utf-8?B?Sk1scElkSnVJTGpsYzV5QWRtclNjbVJkR2xVc0tFOUpjRWlaL29zYlhqMTNC?=
 =?utf-8?B?MXd1S1UzV0ppZnJhUjJhd0VMZ205TzQ5MkxFMjNZSzJDUk5jTThjckt5R0lY?=
 =?utf-8?B?eE1lc0ZkU2FzVmZYSWROcEh2NXNPcURQbVVpTkdyR3l3aUZHSGJ0V2NpSlk1?=
 =?utf-8?B?cS9JSkNhdFUxTTZTdUFZb1pvQTdCUTJwbEFMOXh1bWJmMm1SSjVxMEd4aXdD?=
 =?utf-8?B?YTl5NVFwY3JJME1Jc2VhbE55TFhhaGNrdWxjYUEwRWovbnViS0RjaTZOUkpo?=
 =?utf-8?B?VS83bHdZVElnVEJRSDg1eCs2R0s1VGJjLzZ4cFpHSytHMmJkRmNFVVBzWXNa?=
 =?utf-8?B?RUtIMWtjYzJwQ200TXJsT0VTMTdMYVM2ZXlyNzNwWEU0TXUxOFNOdnQrSlA1?=
 =?utf-8?B?UWdVaTFLZFNaaUdyL0NhTjVhWVVaZ3ZHSC9rVi9lQlVCWXc5aHRYN2JKQkZO?=
 =?utf-8?B?YTFvZUlUcDUralNNZi90VmdqaGdleVBZVW1vc3ZVdmQ5Q0lPK3U3OXFHYU5o?=
 =?utf-8?B?YmhXaWJFcU43azNkYWhqNFRWUlBUdWc1eWpCZzU3Zm82bFMwM1g4QU1zNXcy?=
 =?utf-8?B?S1RpL2IyajAzQllFd1crZlA3VFNvQkNHRjc5VWhKdkdpT3FNNUhVZ2tWR1dX?=
 =?utf-8?B?NkRhVHR2YnNqdkViL1RmdWNIbUV0WHlZZE52UWdjQkV6ZzFPc3F0Q0d3UkVP?=
 =?utf-8?B?UlRaVVRpbmMwR1I5aFFsN0tJUXhuRTMzQ2VLMW9JMXg3cEpNM2h4RVZNOTBa?=
 =?utf-8?B?VVJ0OW9uSzZvTzk0VzJac2pKNWtGN05SRG1RdXRnWTgraUlBZlZ3NGVoS3Nq?=
 =?utf-8?B?N2s0TTJHbks1elBxVk0vQUZGNDdSVjBremdmenRkbXh6NUN3dEFFUUsyQjRa?=
 =?utf-8?B?RjN0Uy9BVGV2Qi9hcE5iRnpkQnp2TUR2VUxtMlV5SVErRkN0TFpLcU44bnQy?=
 =?utf-8?B?bWg0RzFia0hGcFBCbnI5WURDbUlpK3VFNDBoZFprWDhPaGRyTlJtb0llRmZx?=
 =?utf-8?B?TXFrOW9yVDVsS1VDNlFlcW1BUll0YjdzWllGcUJYVnE0akcrcHNaOHhqUTFo?=
 =?utf-8?B?cjZBZEp6SmovQ1dKcWF2cDFHbThTWmZsbmZvdHJqUXpaanFpUDBrU1ZjN3Zu?=
 =?utf-8?B?YUdZaC9lOERMUTFOVEt2YVZpVDV4MzgxaFVRZTVhYkxPZzZyeFowYVJza2Zs?=
 =?utf-8?B?ZVBNNUF1V0V5ZDlhODQzcVJab2hXUUFFMFFGUUt3VXJoMkJESThzYm52YUhR?=
 =?utf-8?B?VDliYUxoUi9VNFhtNEEzSEo2My8zNGdNWnZwQm9ScmpodkhlZ1V1NmNWdjg3?=
 =?utf-8?B?YkNjZ3RmZXN5S01ueXVFbW9DQU4zVUFaZmNUaERJb0FZQ1VHaVVkMndmdks4?=
 =?utf-8?B?MmN6MEYycHlRVGgxaHBrYzJnRHhPbHpLdE91UVRlMHp3ejNhMi9kVEUwWVY4?=
 =?utf-8?B?T3dsWHo0OXllVXBrTEZtUDJIWXpWLzhJcEppdjlabkZtWnRPUEtEUVJGem9W?=
 =?utf-8?B?QTdhK3lEdXMzVmd2WFVnakt2RVgxSlRiKzNpQjJwWlJLM3FwQnEwdGZMUGln?=
 =?utf-8?Q?FE0ESAGiLLs=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN9PR12MB5273.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?NDNNTmJCWEU3eGYySEkvOVlIcHZGcGw0WjZRR2xBaHQzVEw1VmplekJCeUJX?=
 =?utf-8?B?UnQvT0dqaHhra1NRdlpyUXlwT0pXblVlbGNSRHMvSlMyalVDb3dJdDhPWW9w?=
 =?utf-8?B?TFdIZ3prSDhUYlU0c0Z4aTVUWTdUaEpXM2Q1SVcydytISlFodnMrcnFnMGlz?=
 =?utf-8?B?QkNDUEJmVGJXeWl4OTBqUjIySmVzTmhNL0p5bE9vcm1aN1NMRFZHYitZNnRw?=
 =?utf-8?B?bFduTTQ0bEpRc2t4Z2lFK0tBZk11bUp3UUEvT3pMWWkxR1IwcXhSR28wdG5D?=
 =?utf-8?B?M0xEc3lUdWtFNmhUbzRCb2dCaEpUUEs5QU42RHRYRnZHQUg0RTJoOTBvODdk?=
 =?utf-8?B?dDVpU1YzRllzMS8va0xBWDl2MUtPYks0d3paMmpjTkswTjhmV3RPWlZIRW4x?=
 =?utf-8?B?T25ERk9GT0xvOTY1QWprUVhCWWtlUHJyM3BLOFdCRXhDMVU2NHg2bkNUKzEx?=
 =?utf-8?B?a0FoUDlsaU1CL25lS05STFVXNGQxL3JsZGtTVENsVm9kRmhLeXE5clBsL3ho?=
 =?utf-8?B?TzFoSk9HeTl5YzYwaTJ0T2I2eWxvb1hMVFJIVHNscGxPUXlhVnlJZU1XM3Br?=
 =?utf-8?B?M2x1NytITFkyWVFhb1ljTVlpN3dpdW84cXhETFJSTkh4RDR2bkQ4blp1TFJr?=
 =?utf-8?B?UHkzcnpVTUR3YjYyZmN3OXpQalRQMlRCWS9lSGRNc2tQbDFOYkN3Z2V0L25j?=
 =?utf-8?B?Ynk3amdIRE5CUkk2WGk2OTRpaE4xeXBzVTcxSlRFYk5hSkd0V3h1VzRTSHBW?=
 =?utf-8?B?eFh3VVM1eXpWTnk1aWZ1RjJPUUJ3aG5xZUJQc3htZkxROWpUakJseFl6L1Zr?=
 =?utf-8?B?ZDRzZjlXNmdwZllXazMxb1A5bFpPSDRjQWM5YjJaeWZvM3lmcHNOWGxuOVhr?=
 =?utf-8?B?NXJlSEx5WUEyeEYwd3JtWWRnL2tFUC9HL2ZRWUpIbENadUp3ODNPMkVGR0dy?=
 =?utf-8?B?V3RWYWt6TGZLMlZCNlRTTnJSYklxUzVrTktVRWJuYmVZVzYxZWIvZFdlL3Ir?=
 =?utf-8?B?aExWcnVXT2Y3T3N6Ujdlby9hKytwbUZ4S01pVHlvcGhiUmR4aFFteFBqaVR1?=
 =?utf-8?B?QytodXZGQjl6dWJjaXBlVGN0dnJ5Wmo1TDI0RXZqN05vc3ZWUU12ZWc2WDdx?=
 =?utf-8?B?MDd5MFdIKzhRTktQeUpZdk9FQ1JrSEt2cmFNc1hGeWdKREt0ZlRyV1JWdUg1?=
 =?utf-8?B?d1poaDIzRHVnV0k0R09yRzVDME5CcFl4QWtNTWd6R3ZYbU85MWFPRUl4aHVm?=
 =?utf-8?B?bW5jM1JudXJ4MktnZWpia0RiYnlrTTFvNjFRRDBTeVpTMUx1SW41NnFDQkd4?=
 =?utf-8?B?L05uQ3lZQkwrVFI1NHByQk4rSCtxT1VxM1pHNTg4dVFxVkVJYk4zcWloS0pJ?=
 =?utf-8?B?REZMN20zVkJQM2xwdTBsRDcySk05VSsxM2pFNU1yRkpwdEZlVnRoZEJ6Qlll?=
 =?utf-8?B?Sy9uMXFrZVZjd2d1R0VZb3lKQ1VkeS9FSWM3Z2drVDR5dzhQR2JzTVIvQ1M2?=
 =?utf-8?B?VDZQY3llU1BlanVNb0loZnR0WTdsbURvZG1VczZJcDg1eEhTT3FENjJ4ZWIv?=
 =?utf-8?B?MjB6YlVaUWh1N3d0K3BiYjNsdjlQZ1gzZXRyWlhxQmN3VFNwRDl5bjFLTmd4?=
 =?utf-8?B?R05Ib255Q1NES3kranNOSXp3WTRFUGpPTHpwRlZUbS90ZE5xS2szajRtdkdx?=
 =?utf-8?B?aWR0RU5LdmxCdTNyRUlKWTQrQ25WTUJoaFR5cGtTekxNTTZUSXhHeS9WRGJm?=
 =?utf-8?B?SEUxVUJOb2YyU211UGQ2cmh2WkRzR3NUNFg1d3hwU091UlRnSm1lbHBIUk1S?=
 =?utf-8?B?Um9LK0pnVXRWOEZaL0xwazUvTkRQZkRYTEJ3TFBuMVFOdytLMmNPT1RVbFR0?=
 =?utf-8?B?UWZ3dWhpMUFrUjRoejJ1SWUyK2JvRlR4TzBBZCtTajh1WnBncnlVcnVrbFc3?=
 =?utf-8?B?d3l2UW14aXdWR251ZmsyQzFWWVhPbDgrdG85bGV5TmNNbkliM1hPL2p1RklJ?=
 =?utf-8?B?OTBZZG1Yc1I5YndXaTl1alhaV3Y1bjNqUFpieFoyTjdPaVhQKzUvTFpqTXMv?=
 =?utf-8?B?UjUzZW4rc216Vjlwemt3R1hTOFhpelVaUkZROHpRTzh5eGN3NkNnOHpqb0pL?=
 =?utf-8?Q?QOtMioM16wBDsQi4/+sQR1nAF?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9bdcee18-0203-431a-f4f7-08dd7b4cbac4
X-MS-Exchange-CrossTenant-AuthSource: BN9PR12MB5273.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Apr 2025 12:06:03.9763
 (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: oxn9ZOhUIOCSLWkgHPSQd4gn5WqfSUES89TWEgV5tjNAvQUJpEc5SPex7lrjVGiP
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR12MB5678



On 14/04/2025 13:12, Ayan Kumar Halder wrote:
> Hi Michal,
> 
> On 14/04/2025 09:38, Orzel, Michal wrote:
>>
>> On 11/04/2025 13:04, Ayan Kumar Halder wrote:
>>> Boot-time MPU protection regions (similar to Armv8-R AArch64) are created for
>>> Armv8-R AArch32.
>>> Also, defined *_PRBAR macros for arm32. The only difference from arm64 is that
>>> XN is 1-bit for arm32.
>>> Defined the system registers and macros in mpu/cpregs.h.
>>>
>>> Introduced WRITE_SYSREG_ASM() to write to system registers in assembly.
>> It really reads odd when you write what patch does in past tense.
> I will change it.
>>
>>> Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
>>> Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>
>>> ---
>>> Changes from
>>>
>>> v1 -
>>>
>>> 1. enable_mpu() now sets HMAIR{0,1} registers. This is similar to what is
>>> being done in enable_mmu(). All the mm related configurations happen in this
>>> function.
>>>
>>> 2. Fixed some typos.
>>>
>>> v2 -
>>> 1. Include the common prepare_xen_region.inc in head.S.
>>>
>>> 2. Define LOAD_SYSREG()/STORE_SYSREG() for arm32.
>>>
>>> v3 -
>>> 1. Rename STORE_SYSREG() as WRITE_SYSREG_ASM()
>>>
>>> 2. enable_boot_cpu_mm() is defined in head.S
>>>
>>> v4 -
>>> 1. *_PRBAR is moved to arm32/sysregs.h.
>>>
>>> 2. MPU specific CP15 system registers are defined in mpu/cpregs.h.
>>>
>>> v5 -
>>> 1. WRITE_SYSREG_ASM is enclosed within #ifdef __ASSEMBLY__
>>>
>>> 2. enable_mpu() clobbers r0 only.
>>>
>>> 3. Definitions in mpu/cpregs.h in enclosed within ARM_32.
>>>
>>> 4. Removed some #ifdefs and style changes.
>>>
>>>   xen/arch/arm/arm32/Makefile              |   1 +
>>>   xen/arch/arm/arm32/mpu/Makefile          |   1 +
>>>   xen/arch/arm/arm32/mpu/head.S            | 104 +++++++++++++++++++++++
>>>   xen/arch/arm/include/asm/arm32/sysregs.h |   9 ++
>>>   xen/arch/arm/include/asm/cpregs.h        |   2 +
>>>   xen/arch/arm/include/asm/mpu/cpregs.h    |  27 ++++++
>>>   6 files changed, 144 insertions(+)
>>>   create mode 100644 xen/arch/arm/arm32/mpu/Makefile
>>>   create mode 100644 xen/arch/arm/arm32/mpu/head.S
>>>   create mode 100644 xen/arch/arm/include/asm/mpu/cpregs.h
>>>
>>> diff --git a/xen/arch/arm/arm32/Makefile b/xen/arch/arm/arm32/Makefile
>>> index 40a2b4803f..537969d753 100644
>>> --- a/xen/arch/arm/arm32/Makefile
>>> +++ b/xen/arch/arm/arm32/Makefile
>>> @@ -1,5 +1,6 @@
>>>   obj-y += lib/
>>>   obj-$(CONFIG_MMU) += mmu/
>>> +obj-$(CONFIG_MPU) += mpu/
>>>   
>>>   obj-$(CONFIG_EARLY_PRINTK) += debug.o
>>>   obj-y += domctl.o
>>> diff --git a/xen/arch/arm/arm32/mpu/Makefile b/xen/arch/arm/arm32/mpu/Makefile
>>> new file mode 100644
>>> index 0000000000..3340058c08
>>> --- /dev/null
>>> +++ b/xen/arch/arm/arm32/mpu/Makefile
>>> @@ -0,0 +1 @@
>>> +obj-y += head.o
>>> diff --git a/xen/arch/arm/arm32/mpu/head.S b/xen/arch/arm/arm32/mpu/head.S
>>> new file mode 100644
>>> index 0000000000..b2c5245e51
>>> --- /dev/null
>>> +++ b/xen/arch/arm/arm32/mpu/head.S
>>> @@ -0,0 +1,104 @@
>>> +/* SPDX-License-Identifier: GPL-2.0-only */
>>> +/*
>>> + * Start-of-day code for an Armv8-R-AArch32 MPU system.
>>> + */
>>> +
>>> +#include <asm/arm32/macros.h>
>>> +#include <asm/arm32/sysregs.h>
>>> +#include <asm/cpregs.h>
>>> +#include <asm/mpu.h>
>>> +#include <asm/mpu/regions.inc>
>>> +#include <asm/page.h>
>>> +
>>> +/*
>>> + * Set up the memory attribute type tables and 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 AArch32 architecture is
>>> + * IMPLEMENTATION DEFINED, we intend to turn off the Background region here.
>>> + *
>>> + * Clobbers r0
>>> + */
>>> +FUNC_LOCAL(enable_mpu)
>>> +    /* Set up memory attribute type tables */
>>> +    mov_w r0, MAIR0VAL
>>> +    mcr   CP32(r0, HMAIR0)
>>> +    mov_w r0, MAIR1VAL
>>> +    mcr   CP32(r0, HMAIR1)
>>> +
>>> +    mrc   CP32(r0, HSCTLR)
>>> +    bic   r0, r0, #SCTLR_ELx_BR       /* Disable Background region */
>>> +    orr   r0, r0, #SCTLR_Axx_ELx_M    /* Enable MPU */
>>> +    orr   r0, r0, #SCTLR_Axx_ELx_C    /* Enable D-cache */
>>> +    mcr   CP32(r0, HSCTLR)
>>> +    isb
>>> +
>>> +    ret
>>> +END(enable_mpu)
>>> +
>>> +/*
>>> + * Maps the various sections of Xen (described in xen.lds.S) as different MPU
>>> + * regions.
>>> + *
>>> + * Clobbers r0 - r5
>>> + *
>>> + */
>>> +FUNC(enable_boot_cpu_mm)
>>> +    /* Get the number of regions specified in MPUIR_EL2 */
>>> +    mrc   CP32(r5, MPUIR_EL2)
>>> +    and   r5, r5, #NUM_MPU_REGIONS_MASK
>>> +
>>> +    /* x0: region sel */
>>> +    mov   r0, #0
>>> +    /* Xen text section. */
>>> +    mov_w   r1, _stext
>>> +    mov_w   r2, _etext
>>> +    prepare_xen_region r0, r1, r2, r3, r4, r5, attr_prbar=REGION_TEXT_PRBAR
>>> +
>>> +    /* Xen read-only data section. */
>>> +    mov_w   r1, _srodata
>>> +    mov_w   r2, _erodata
>>> +    prepare_xen_region r0, r1, r2, r3, r4, r5, attr_prbar=REGION_RO_PRBAR
>>> +
>>> +    /* Xen read-only after init and data section. (RW data) */
>>> +    mov_w   r1, __ro_after_init_start
>>> +    mov_w   r2, __init_begin
>>> +    prepare_xen_region r0, r1, r2, r3, r4, r5
>>> +
>>> +    /* Xen code section. */
>>> +    mov_w   r1, __init_begin
>>> +    mov_w   r2, __init_data_begin
>>> +    prepare_xen_region r0, r1, r2, r3, r4, r5, attr_prbar=REGION_TEXT_PRBAR
>>> +
>>> +    /* Xen data and BSS section. */
>>> +    mov_w   r1, __init_data_begin
>>> +    mov_w   r2, __bss_end
>>> +    prepare_xen_region r0, r1, r2, r3, r4, r5
>>> +
>>> +#ifdef CONFIG_EARLY_PRINTK
>>> +    /* Xen early UART section. */
>>> +    mov_w   r1, CONFIG_EARLY_UART_BASE_ADDRESS
>>> +    mov_w   r2, (CONFIG_EARLY_UART_BASE_ADDRESS + CONFIG_EARLY_UART_SIZE)
>>> +    prepare_xen_region r0, r1, r2, r3, r4, r5, attr_prbar=REGION_DEVICE_PRBAR, attr_prlar=REGION_DEVICE_PRLAR
>>> +#endif
>>> +
>>> +    b    enable_mpu
>>> +END(enable_boot_cpu_mm)
>>> +
>>> +/*
>>> + * We don't yet support secondary CPUs bring-up. Implement a dummy helper to
>>> + * please the common code.
>>> + */
>>> +FUNC(enable_secondary_cpu_mm)
>>> +    PRINT("- SMP not enabled yet -\r\n")
>>> +1:  wfe
>>> +    b 1b
>>> +END(enable_secondary_cpu_mm)
>>> +
>>> +/*
>>> + * Local variables:
>>> + * mode: ASM
>>> + * indent-tabs-mode: nil
>>> + * End:
>>> + */
>>> diff --git a/xen/arch/arm/include/asm/arm32/sysregs.h b/xen/arch/arm/include/asm/arm32/sysregs.h
>>> index 22871999af..8d7b95d982 100644
>>> --- a/xen/arch/arm/include/asm/arm32/sysregs.h
>>> +++ b/xen/arch/arm/include/asm/arm32/sysregs.h
>>> @@ -20,6 +20,15 @@
>>>    * uses r0 as a placeholder register. */
>>>   #define CMD_CP32(name...)      "mcr " __stringify(CP32(r0, name)) ";"
>>>   
>>> +#define REGION_TEXT_PRBAR       0x18    /* SH=11 AP=10 XN=0 */
>>> +#define REGION_RO_PRBAR         0x1D    /* SH=11 AP=10 XN=1 */
>>> +#define REGION_DATA_PRBAR       0x19    /* SH=11 AP=00 XN=1 */
>>> +#define REGION_DEVICE_PRBAR     0x11    /* SH=10 AP=00 XN=1 */
>>> +
>>> +#ifdef __ASSEMBLY__
>> In previous patch, you had empty lines surrounding the macro.
> I will put a empty line here.
>>
>>> +#define WRITE_SYSREG_ASM(v, name) mcr CP32(v, name)
>> Hmm, for arm64 you surrounded msr within "". Any reason for these style changes?
> 
> In arm64, it is
> 
> "msr " __stringify(name,) #v
> 
> One needs " " to treat this as string for concatenation. Otherwise, we 
> get an error.
> 
> In the case of arm32, we don't need __stringify().
> 
> Let me know if it makes sense.
It does. Thanks for providing the reasoning.

~Michal



From xen-devel-bounces@lists.xenproject.org Mon Apr 14 12:12:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 12:12:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.950050.1346480 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4Ifd-00087t-6a; Mon, 14 Apr 2025 12:12:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 950050.1346480; Mon, 14 Apr 2025 12: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 1u4Ifd-00087m-3t; Mon, 14 Apr 2025 12:12:13 +0000
Received: by outflank-mailman (input) for mailman id 950050;
 Mon, 14 Apr 2025 12:12: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 1u4Ifc-00087f-3I
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 12:12: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 1u4Ifb-00Epy6-2e;
 Mon, 14 Apr 2025 12:12:11 +0000
Received: from [143.198.24.140] (helo=[100.81.22.8])
 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 1u4Ifb-00DKyC-1O;
 Mon, 14 Apr 2025 12:12: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=d/ombLP1E1s+LgCWkSj5TbfMyRGdVPCmWTVbtvpBtPw=; b=rTn7hUIsUSfAcECGPNQCLrUnod
	5uD+66bViJtqk6VHY+B+PhQ11s1mchysg0fksCGaDUPZTCEOsfUIKfvbfgdgBlg9PpQM7BXaVtu2t
	oFDs1fOONGuJvdEvhQXzZVPb1br3XENmDJm2GLqyXx3qxGdDo3sbH0jIVxETn5WlnnnM=;
Message-ID: <923a2fc0-4eeb-4e09-a56d-7471a56fe3bf@xen.org>
Date: Mon, 14 Apr 2025 21:12:05 +0900
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 7/7] arm/mpu: Implement setup_mpu for MPU system
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: <20250411145655.140667-1-luca.fancellu@arm.com>
 <20250411145655.140667-8-luca.fancellu@arm.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20250411145655.140667-8-luca.fancellu@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Luca,

On 11/04/2025 23:56, Luca Fancellu wrote:
> Implement the function setup_mpu that will logically track the MPU
> regions defined by hardware registers, start introducing data
> structures and functions to track the status from the C world.
> 
> The xen_mpumap_mask bitmap is used to track which MPU region are
> enabled at runtime.
> 
> This function is called from setup_mm() which full implementation
> will be provided in a later stage.
> 
> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
> ---
> v3 changes:
>   - Moved PRENR_MASK define to common.
> ---
> ---
>   xen/arch/arm/include/asm/mpu.h |  2 ++
>   xen/arch/arm/mpu/mm.c          | 49 +++++++++++++++++++++++++++++++++-
>   2 files changed, 50 insertions(+), 1 deletion(-)
> 
> diff --git a/xen/arch/arm/include/asm/mpu.h b/xen/arch/arm/include/asm/mpu.h
> index eba5086cde97..77d0566f9780 100644
> --- a/xen/arch/arm/include/asm/mpu.h
> +++ b/xen/arch/arm/include/asm/mpu.h
> @@ -20,6 +20,8 @@
>   #define NUM_MPU_REGIONS_MASK    (NUM_MPU_REGIONS - 1)
>   #define MAX_MPU_REGIONS         NUM_MPU_REGIONS_MASK
>   
> +#define PRENR_MASK  GENMASK(31, 0)
> +
>   /* Access permission attributes. */
>   /* Read/Write at EL2, No Access at EL1/EL0. */
>   #define AP_RW_EL2 0x0
> diff --git a/xen/arch/arm/mpu/mm.c b/xen/arch/arm/mpu/mm.c
> index 635d1f5a2ba0..e0a40489a7fc 100644
> --- a/xen/arch/arm/mpu/mm.c
> +++ b/xen/arch/arm/mpu/mm.c
> @@ -14,6 +14,17 @@
>   
>   struct page_info *frame_table;
>   
> +/* Maximum number of supported MPU memory regions by the EL2 MPU. */
 > +uint8_t __ro_after_init max_xen_mpumap;

Are this variable and ...

> +
> +/*
> + * Bitmap xen_mpumap_mask is to record the usage of EL2 MPU memory regions.
> + * Bit 0 represents MPU memory region 0, bit 1 represents MPU memory
> + * region 1, ..., and so on.
> + * If a MPU memory region gets enabled, set the according bit to 1.
> + */
> +DECLARE_BITMAP(xen_mpumap_mask, MAX_MPU_REGIONS);

... this one meant to be global? If yes, then they need to have a 
declaration in the header. If not, then you want to add 'static'.

 > +
>   /* EL2 Xen MPU memory region mapping table. */
>   pr_t xen_mpumap[MAX_MPU_REGIONS];
>   
> @@ -222,9 +233,45 @@ pr_t pr_of_xenaddr(paddr_t base, paddr_t limit, unsigned attr)
>       return region;
>   }
>   
> +/*
> + * The code in this function needs to track the regions programmed in
> + * arm64/mpu/head.S
> + */
> +static void __init setup_mpu(void)
> +{
> +    register_t prenr;
> +    unsigned int i = 0;
> +
> +    /*
> +     * MPUIR_EL2.Region[0:7] identifies the number of regions supported by
> +     * the EL2 MPU.
> +     */
> +    max_xen_mpumap = (uint8_t)(READ_SYSREG(MPUIR_EL2) & NUM_MPU_REGIONS_MASK);
> +
> +    /* PRENR_EL2 has the N bit set if the N region is enabled, N < 32 */
> +    prenr = (READ_SYSREG(PRENR_EL2) & PRENR_MASK);
> +
> +    /*
> +     * Set the bitfield for regions enabled in assembly boot-time.
> +     * This code works under the assumption that the code in head.S has
> +     * allocated and enabled regions below 32 (N < 32).
> +     
This is a bit fragile. I think it would be better if the bitmap is set 
by head.S as we add the regions. Same for ...

> +    while ( prenr > 0 )
> +    {
> +        if (prenr & 0x1)
> +        {
> +            set_bit(i, xen_mpumap_mask);
> +            read_protection_region(&xen_mpumap[i], i);

... xen_mpumap.

> +        }
> +
> +        prenr >>= 1;
> +        i++;
> +    }
> +}
> +
>   void __init setup_mm(void)
>   {
> -    BUG_ON("unimplemented");
> +    setup_mpu();
 >   }>
>   int modify_xen_mappings(unsigned long s, unsigned long e, unsigned int nf)

Cheers,


-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Mon Apr 14 12:24:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 12:24:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.950074.1346492 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4IrS-0003ne-EE; Mon, 14 Apr 2025 12:24:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 950074.1346492; Mon, 14 Apr 2025 12:24: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 1u4IrS-0003nX-9i; Mon, 14 Apr 2025 12:24:26 +0000
Received: by outflank-mailman (input) for mailman id 950074;
 Mon, 14 Apr 2025 12:24: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=B3Nx=XA=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u4IrR-0003nM-2X
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 12:24:25 +0000
Received: from NAM02-SN1-obe.outbound.protection.outlook.com
 (mail-sn1nam02on2060b.outbound.protection.outlook.com
 [2a01:111:f403:2406::60b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6532a534-192b-11f0-9eae-5ba50f476ded;
 Mon, 14 Apr 2025 14:24:23 +0200 (CEST)
Received: from PH2PEPF00003855.namprd17.prod.outlook.com (2603:10b6:518:1::75)
 by DM4PR12MB6446.namprd12.prod.outlook.com (2603:10b6:8:be::7) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.8632.32; Mon, 14 Apr 2025 12:24:16 +0000
Received: from CY4PEPF0000E9DC.namprd05.prod.outlook.com
 (2a01:111:f403:f912::5) by PH2PEPF00003855.outlook.office365.com
 (2603:1036:903:48::3) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.32 via Frontend Transport; Mon,
 14 Apr 2025 12:24:16 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CY4PEPF0000E9DC.mail.protection.outlook.com (10.167.241.75) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Mon, 14 Apr 2025 12:24:16 +0000
Received: from localhost (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; Mon, 14 Apr
 2025 07:24:14 -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: 6532a534-192b-11f0-9eae-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=sJ+ZNIwKx6FuSzPj2ijXpqRFWLHv04E52WmMPQ/FIzUB59dHtp4+xoBwFf/O5nxDPx/dbHsHaUz45czKhhtxtMQyoWlqm/6IpgDIegYxX0sZmMFv5P272nkUwRjhgXDfWa2Ur3ZT75r2lGOQICWilUHR2jG30uLNdIM9VnxpL5IRcZKuv5GJyBkCP7CkgGSCZBQqBOg1go8vdyBCQ11+VBKMunRnRVcsKCXVCE86XJvnzsNDVm6ZmnWutw0Vr+h7S9ioxp+hx6B38mOJXqJvD7nN41S8OwEjjwIfWZUzfdLZfxMIhoWCqiMizXNULve7H/dpDe5ETAu7iH4A2Cf7+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=qPBFSCkPwEyt4xEun8kkvsk1OUxcEL0E95EMZNUr4lU=;
 b=ft5NI1YpnBjm8WPJTv0Tbnz8J7i6nidu/9v0Mc5OVp/75CG2t6QvoEgv5O/mN3Pz0zBF4Flok5ntPggjVAyOJNuaDB8DTc936VIMTGMEzqctGnS1RG4FGJ/vkiB5hVdi8ewMlpC66s/qPT+r9XsYQNHF7RaciIb5ngYy+Ygz2aYDEpu5Qb8Uchs0pUslOY7pY5wfd5xm9XuJ3FW7i+9c5FJ3bMkapCKIcld2N3nXLWj71NHzVI6JzL4OV6/1IZt/OPPoeaOB4X5tBHWU3Sf0/9IfDupmTCzlrLh/Bvcg/E55xHNPrUSsx6wM1N7Uyvj6GYF77R2IIwUkIhee8ygqjQ==
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=qPBFSCkPwEyt4xEun8kkvsk1OUxcEL0E95EMZNUr4lU=;
 b=hLUUAknIOp3u5ckRt2ijsgEAeVzxmLidvPbLvoA7r4RHsw8/GMoAEB7Ey7wAOdfYyn4XTexIHr8eu44kXGli3t5MVu40FIVnDB0h30b3/gBENvA/OV1HX/YhebmnlWOijwW8gGb3xY8xWGVeldKQyB9mwkMkM2cdotxPhqbgsPQ=
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
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Mon, 14 Apr 2025 13:24:13 +0100
Message-ID: <D96CXZZ6WYJE.L6WOZA0T3ABF@amd.com>
From: Alejandro Vallejo <agarciav@amd.com>
To: Alejandro Vallejo <agarciav@amd.com>, Grygorii Strashko
	<grygorii_strashko@epam.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>, Stefano Stabellini <sstabellini@kernel.org>
CC: Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>, Xen-devel
	<xen-devel-bounces@lists.xenproject.org>
Subject: Re: [ImageBuilder] uboot-script-gen: add xen xsm policy loading
 support
X-Mailer: aerc 0.20.1
References: <20250414081449.1763962-1-grygorii_strashko@epam.com>
 <D96CDMX3B877.3MD1OKAJ6JJ3E@amd.com>
In-Reply-To: <D96CDMX3B877.3MD1OKAJ6JJ3E@amd.com>
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: CY4PEPF0000E9DC:EE_|DM4PR12MB6446:EE_
X-MS-Office365-Filtering-Correlation-Id: 59209f09-7903-4e6a-8cac-08dd7b4f45e2
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?YkNhWXRublhLZ284aGF3alVsUmNwY01Pd0R5QS8vdDFIOExCQU83aHF1MFIr?=
 =?utf-8?B?S091ZHZKSms2Yllidy9TbjZKUjhrM2wzSndtbWVETldLc0RyTWtjQTJDWVpI?=
 =?utf-8?B?czdXZFdPTW9hK2xtMklodlZSS3BtNC9TNk5nWXVQTXRVNWNIVVZqOWVSdzVi?=
 =?utf-8?B?Uzlrb2RsWXAvSjBFSFRvOTZMcHVLekFPSVh2MGM1ckkzV0ZhTkVyQ3lydWZ2?=
 =?utf-8?B?dmZDbWhZdEdnZTJLNnRsVXNkQS9zS0svSlFzcngxc1hvbTQzanB0Tkx4RmtE?=
 =?utf-8?B?N3pmZzYraFYrRzViR1QxdVdjSThmV3JFSU1ncExVbWJXdW1BTk5OeVhlTS93?=
 =?utf-8?B?Y21zQ0V5OUpnSGFCRG9yT3Y1SUNSTENCWEJ4bWR1ckplVlRYb201YVYxRmox?=
 =?utf-8?B?RCtFUEdib2Y1a00xcFl6MXZlM3dreEVqWXUranViK3ovYzZwamllMnFFM1p4?=
 =?utf-8?B?Rm5MY3VuQmdJMjkzczkxMW5sc3lZY2NUM0tBRHFSenpuWllSN3d1MWJSNHVE?=
 =?utf-8?B?cXJXUFVya3JTS0FSWjJ2Zm9pWU5QVytXNE0rdm5JYkRQUDJHNXlKNjdJVVZi?=
 =?utf-8?B?TDhNdVJMek84Q1VzbHgwdDZVN0xMOVg4THJXNUdCQjMwSXJQT0FoU2txcWxR?=
 =?utf-8?B?M05aN1NuRVpTTmxZNk5BaGZGaTA4VUZDTDN2U2JoTnhESEQ0OWs0NHRnbkxF?=
 =?utf-8?B?Z0pMZnJac3BNWXBuSVh1QTI5dkcvL3hMZ0VkY0FBOCtEaGI1WVBISzNjODhp?=
 =?utf-8?B?QlJJNzE2cERpODEvSmU1U1pIUWl6VGVuYnF3VmVpN3c3Z1Z4Y2wyKzNTTStJ?=
 =?utf-8?B?Z3dRa1oyZWFCeWtRblcrRlE0Z0dselhreHRJbnozNUM1V0tSSEFPd3hSK1Zu?=
 =?utf-8?B?bGZyYUswQmJlaTh4L1RzUnN2NE0vZ2NoTnpvRWw4d0lhM2pWNTVtb0hLVTNz?=
 =?utf-8?B?TldEMGVXTGIzakFucXRwQ0dzUkx1VEFqU1lJdVc0azZPNkh5bGxrNzNXejV5?=
 =?utf-8?B?cXZDUjUxNWJKMG9Fa0tXbnMwUmo5cnc4STg5Q1RaeC9SNVA3aHFQMVkxWEs2?=
 =?utf-8?B?VjhQWmlSb3lKZ1dXUGdPUitvMDdBTmxZclg1b0IxSUVkUGRDODBacDYzOEFT?=
 =?utf-8?B?d0NMazB0R0wwWUR1cWNMMkI0Q1Q1T0JVakNIU3lEN1NjNzdUZFhkRXp5dVRy?=
 =?utf-8?B?UU05SUtwRmowUzJKUDllc1RHekwxazhYODhqODZXZmE3d1Z5dkg4OHRyTWxN?=
 =?utf-8?B?YU1yaWE4V1FFTWFFektuelZCNGpBcldwVlNoQnRFQ1RDcXNPdGxUWlhkZUxB?=
 =?utf-8?B?cHovRUROTDROU0trSnBNRTVLQTJ5M3hpLzBTR3V4bW9PQ3BwZXh2OU1EVmZ4?=
 =?utf-8?B?WlVVRFdRL2VDM054SDV3ZTVHS2pGS1N0MTlKRXF0RlFMQTZkNi9nTE1lc0la?=
 =?utf-8?B?eElUc0NGeFhxVFYrb3lpOWI3bEgrMytrd1dhUFA0cU4vbERtb0JEVjFUWklC?=
 =?utf-8?B?bWpZSHQ4ZFE4QVovRWQrcFJkZXdRTGFlODVUT2JkNlludVZXNy9wTnZadTRh?=
 =?utf-8?B?QmJVbC84Q29uUXBwdlprYzFsbEMveXJ4NSsxSjBlZTgvMHlYWk8zd0JMWUFD?=
 =?utf-8?B?WS9DVUVSNElCZmNJNGNJSng4RHRNYUVrM3hDd005cEpMWWZxZXJOeEJlcmww?=
 =?utf-8?B?a20xeE1CZStNZlhXWCtmc3RMdWtSMXVZUmRuRDlrKzJlN1J1bndSWk9aaXk0?=
 =?utf-8?B?V1B4ejcxeTJ4ZUFTWlAydmJDeS84VlBaOW5lMmxpdEs5RkFkc3ZCeEZ5SjQx?=
 =?utf-8?B?bk5Kbk9mQ0FzRTh5RlFabTlzNHdIOHErS1diRUxYWFFmdy9HQjRUUzZMc2VE?=
 =?utf-8?B?UzdOeStLUWhKSHNEcWtxRHFZRHlUcDhtUGM0cFZhM0pPTEZlZUNmTmVpNWxo?=
 =?utf-8?B?dmFIU0E1ZkpFNEg3ZlVyQThrekhVd0dyNFN5R0pnTXRGaWQvVCswUGIrTmtj?=
 =?utf-8?B?NFFvd3IzbzMxUTQ3SWZQSURYZWg4TlZwOTBKTm91RFNDbFNTNmNNa0lpaTkw?=
 =?utf-8?Q?2vjs4t?=
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)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Apr 2025 12:24:16.0180
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 59209f09-7903-4e6a-8cac-08dd7b4f45e2
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:
	CY4PEPF0000E9DC.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB6446

On Mon Apr 14, 2025 at 12:57 PM BST, Alejandro Vallejo wrote:
> As a general question, why using "test" so much, rather than
>
>    if [ -n "$FOO" -a "FOO" =3D=3D ABC ]
>
> Using test seems far harder to read than it needs to be, and single
> brackets are perfectly valid POSIX shell.
>
> On Mon Apr 14, 2025 at 9:14 AM BST, Grygorii Strashko wrote:
>> From: Grygorii Strashko <grygorii_strashko@epam.com>
>>
>> This patch adds Xen XSM policy loading support.
>>
>> The configuration file XEN_POLICY specifies Xen hypervisor
>> XSM policy binary to load.
>>
>> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
>> ---
>>  README.md                |  2 ++
>>  scripts/uboot-script-gen | 33 +++++++++++++++++++++++++++++++++
>>  2 files changed, 35 insertions(+)
>>
>> diff --git a/README.md b/README.md
>> index 137abef153ce..9106d2a07302 100644
>> --- a/README.md
>> +++ b/README.md
>> @@ -91,6 +91,8 @@ Where:
>>  - XEN specifies the Xen hypervisor binary to load. Note that it has to
>>    be a regular Xen binary, not a u-boot binary.
>> =20
>> +- XEN_POLICY specifies the Xen hypervisor XSM policy binary to load.
>> +
>>  - XEN_COLORS specifies the colors (cache coloring) to be used for Xen
>>    and is in the format startcolor-endcolor
>> =20
>> diff --git a/scripts/uboot-script-gen b/scripts/uboot-script-gen
>> index c4d26caf5e0e..343eba20e4d9 100755
>> --- a/scripts/uboot-script-gen
>> +++ b/scripts/uboot-script-gen
>> @@ -315,6 +315,15 @@ function xen_device_tree_editing()
>>      dt_set "/chosen" "#size-cells" "hex" "0x2"
>>      dt_set "/chosen" "xen,xen-bootargs" "str" "$XEN_CMD"
>> =20
>> +    if test "$XEN_POLICY" && test $xen_policy_addr !=3D "-"
>
> If XEN_POLICY is a binary, shouldn't it be "test -f" ? Same later on.

On the absent flag:

Nevermind, I see you're using "-n" implicitly instead. I'd rather it be
less opaque, but it does function. I do think most uses of test "$FOO"
would be better off with an explicit -f or -n. But that's a separate
matter.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Mon Apr 14 12:26:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 12:26:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.950086.1346501 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4It9-0004KW-NU; Mon, 14 Apr 2025 12:26:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 950086.1346501; Mon, 14 Apr 2025 12:26: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 1u4It9-0004KP-KZ; Mon, 14 Apr 2025 12:26:11 +0000
Received: by outflank-mailman (input) for mailman id 950086;
 Mon, 14 Apr 2025 12:26: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=GQ8q=XA=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1u4It8-0004KJ-7g
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 12:26:10 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on20617.outbound.protection.outlook.com
 [2a01:111:f403:2415::617])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a3eefecd-192b-11f0-9eae-5ba50f476ded;
 Mon, 14 Apr 2025 14:26:08 +0200 (CEST)
Received: from PH8PR12MB7326.namprd12.prod.outlook.com (2603:10b6:510:216::7)
 by SA1PR12MB7341.namprd12.prod.outlook.com (2603:10b6:806:2ba::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.27; Mon, 14 Apr
 2025 12:26:05 +0000
Received: from PH8PR12MB7326.namprd12.prod.outlook.com
 ([fe80::6d76:9c33:d230:8264]) by PH8PR12MB7326.namprd12.prod.outlook.com
 ([fe80::6d76:9c33:d230:8264%2]) with mapi id 15.20.8632.030; Mon, 14 Apr 2025
 12:26: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: a3eefecd-192b-11f0-9eae-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=QoB9c9KX2HFikFDkIE++GAzSSLSgadzYtOXmDtfusI9H46JHxj1IjiI+lk4ZgfqcjRbFvqv1MF1I7Fx5WXMIfYlWc+74VDYdwhifnrIH4n+UpwVQlabfgNldxTBL1orh9/X0eHSgXvEJ4k1prfLER+hG6qBloMZjZKLzmfLjJOo0EiEHAoJtJCHbMRWpuGmVK6AMcwDN0+S4NOVMI7U5SmLdAs+IRKkVCQUEqwarTqeC8npoMjiIHy89AInI+m9ZFhw+JZzlcSGLOSm61IsJnwq9sOL9CFGm/4IV1gUks+Rghc1ONf6NaPQRq0uOHosCnJHm29qoIcUuJSsWhab1ug==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=RHzsGsCORBlb9iwJ4qw91vDhh+7Q/xXW+GRvfi96BTg=;
 b=xNVHyEs9DTzCdxGKd9eKRvhF03BUzaF7mWOmrcLAWR3qHw/TV2SWBwFOtgvNdVe5Ngxf1JXLpp++YYWIkCHT5biGXSBFBbtTXbc3WN/07CacWJlQFUkvLa2zAKMGOh/aqFgwfA8mNbZCqvNw1O76FRf8pRo2zTQvv0+RnMsU1HTeiyQmvPDXdx+lvmi+Yvx3Mbaou6j17NP5c1sx7JZShyPIx4UI9JPYgJ/ta/TPyaJXps/+qz/sJFuEPGBO/w30tCZ/OyZFt8j0uZgIPuNYBjYCv8DZK9Np/KGxn2Ndz+Kk330T5jXxgXgT9PehRJmCIS7e17klerK0u1Yr5bx+8g==
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=RHzsGsCORBlb9iwJ4qw91vDhh+7Q/xXW+GRvfi96BTg=;
 b=QQP5gQH9ggoSuZIJrGDRs3j3ubXGhfC8NcRn6+d25/3+Q/KbpoosoZw0OOsD3H5a+NIzVSIDaIKwhT0DbYsMVCCgC2RCYImuQsGKfu2BqOUJ8xzRev2H+xPj8bA3VKhvXsWcejRPz7aqcKN5EuRUkGNGQ+P+HXbVODUea+P+nfU=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <3541a84e-5279-4139-884b-61d35b3ccfd2@amd.com>
Date: Mon, 14 Apr 2025 13:26:00 +0100
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 2/3] xen/arm32: Create the same boot-time MPU regions
 as arm64
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>,
 Luca Fancellu <luca.fancellu@arm.com>
References: <20250411110452.3748186-1-ayan.kumar.halder@amd.com>
 <20250411110452.3748186-3-ayan.kumar.halder@amd.com>
 <b401f18a-f32a-46c2-8e2f-343a4eb134b8@xen.org>
 <614002cc-4dfe-44f7-8ab5-ff7d4f1e694f@amd.com>
 <b691741d-85de-4120-8077-07df50948525@xen.org>
From: Ayan Kumar Halder <ayankuma@amd.com>
In-Reply-To: <b691741d-85de-4120-8077-07df50948525@xen.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0588.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:295::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_|SA1PR12MB7341:EE_
X-MS-Office365-Filtering-Correlation-Id: 5a2e2a71-d9e5-4d30-42aa-08dd7b4f866c
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?TzdsQndMVDlrS3RZSnJ4eUdQNzJvZ3k1endOMkYweXVncnpxSndza3N4a2ti?=
 =?utf-8?B?SFlqVzlmSmk2TWNybXBpaUZCT29jRk5TNDgyRU51UGxabWtRSTlIbjFqejZv?=
 =?utf-8?B?ZVpkVjY3S0lOUUpwRThYbFV2QlFXWHAxQUhYclVXNkxDZU5YWDJ3aHVqc3lw?=
 =?utf-8?B?Wks2VGJJUTFYWFVWRDhzSUxsNXFqZkJId3hROEhuMGNNNWhXYXlBN3o3Qkcy?=
 =?utf-8?B?aFphU0lDTWdNa29GL2wrclpTNGFkUjNmZ0RBaDZudi85ZWFkdzI3VVJ2Q3dS?=
 =?utf-8?B?RElpdlh1WEVKTllVVjdkaFA1QjZuenhjNXBhVVRub3VYR3RiMjh5czUvOGhr?=
 =?utf-8?B?NEd2WDBYWXFlV1VIcGlneEhpOXdLRkEvUTNuRC8yZUNLeEpZdXZ2d01vY0w1?=
 =?utf-8?B?OFZ6QVVuUnV5QUVYeHVmTm1pVytjMU1CcGphQU0xYUxtZVZieGUwOE9LTktG?=
 =?utf-8?B?RXhSckpXc1Fyd241OTE3QzV3UHgzVjdpZldnVm4xSTVybDQ1ZFp2b013OUVU?=
 =?utf-8?B?L1JJVktCTXF3ZG81NGdqMG4zU0psWU8zZnZlK1N0NXNmcXN0REt1M2VTZUhz?=
 =?utf-8?B?RnhLeFNLYml4L0drYjhmTmdCY3l6QXU3dU44blpZUityVWpNYlppTURQOCtI?=
 =?utf-8?B?OENVRjY4NjhJR3MzUmpiaGw0WmY3bUVQcjIxUmZONzRBOC9MVWNTY0RvTTVR?=
 =?utf-8?B?d3l0QVVMZi8wS0lSbWJ6R29LdU4zT0k4dnZZWGtDeWFpM1MyWExDSHRuRVdC?=
 =?utf-8?B?Q2QvbGdBYjhEMlBzMmQyVzdHdnpxS3E1amZCQkVyaGZ0YlFDSHVndFVkTEJh?=
 =?utf-8?B?eVpMdGxXbXJSeElIQ1FqV2NsbFhYVzVKc0xTcEh5aSt3ZFFtcTVGU2xxOVlE?=
 =?utf-8?B?RjZENnZSZ1VUeWxOcDBCNE9tcUNPN3c2ck1rNzZ2TXkvNEk3NU83YmY1d3Vh?=
 =?utf-8?B?Y3FlUGJtZkc1dmF5eFhBVGYzSjlCQ1IyQWo3V2s0eVFyazFIWDNqSnA2eHZF?=
 =?utf-8?B?UXE2M0JBMWR0QWx6NEwzVTRaa2FKNi9tKzBuVWVwSUZyYzd2ODY1a1hMZUxM?=
 =?utf-8?B?UGhDL3I3bEZWd3EyaE5yOTg5OGRsRDcwdG9qV3ZGc0VrSlpUbGw2bXRZa1Rs?=
 =?utf-8?B?SG1jMzdxUkZDTnp2ZVNON0hYV0FBbXFxdXZ2ZWlMR1pyeUpwL1lRdWFVOXpI?=
 =?utf-8?B?TndhZEpCU3dNb3hUZmdRQU93Y1dhV3FvcTNzeUlObUVTMTI1UjVmSjFheDRy?=
 =?utf-8?B?NFdOL25ydGlJSGJCZ2d0dmtsUGtRTEl5RnB0TkFGbmtZNmlERVZNOXg0RExG?=
 =?utf-8?B?VUppeEZrQ1lPSzhwaUVWcWc3a2orQWhPSjRJLzMxR1d5N3dWUEVqTnF0Nzk4?=
 =?utf-8?B?a1Z3MDhsaE9mRUpSaThFL3NCcVpnSDRFaXRHSEZaano1V1FwT09ZTEJQTHV1?=
 =?utf-8?B?RWsrMkQwdmpzQnFCYzVNUDB6azJIbnhxYTJudC9tVmNWUW16NDNmTDRabm9L?=
 =?utf-8?B?eURzNnJKMzVFWnA5bE5SaWkraGxPamw2UjRla2wwd3J2T052L2ZSaHdybm9W?=
 =?utf-8?B?dHlZSkFrZUppZklXNUF6L1M0UmtBQldlVWYydXVqZkdKR3Q0dE9ibWpyN0ZB?=
 =?utf-8?B?ZVJ5blFuREJyL1U0a2tWdlVZeWlYNit4cXVkSHdMU2lqWnBTOWJFVlBrczgr?=
 =?utf-8?B?dnNHU01qalY5QkxLdWRxUXZzcDIwTjJTWFZzMW0rbVV5MDgzUGR0T1dWbnlB?=
 =?utf-8?B?Qm9oRDZTamF4b0dwWlB0SGpuc3pJVDRhTDVtSFlKaUlJa2UrbkprdXdsaFhQ?=
 =?utf-8?B?VXVvZmkwZzgyVWVKVjlsWVdxQlRWMmg1a2xOWGVoV1MweVJMRmo0MElHTDRL?=
 =?utf-8?B?Vk0vM1RXSFFLRkI5dFJUT0dxZXlmdmM5cUEvVFVHc2ZHYkZ1em1TcDVoSURH?=
 =?utf-8?Q?WDXWAoFyqOM=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)(376014)(1800799024)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?NXl0L3d0SGd1b1lJUTh5SEt3Z3NLdXpNelY4ZlJWdGxNNkZWRFZBSXlnbzJy?=
 =?utf-8?B?a29hb29OSmZiRTZ5ZUpoZU5DTW5UZUlKSEFObWJ4ZTdGRCtmTjgrZjczWUwz?=
 =?utf-8?B?M1ByVlI0UjJ4RDJxTG1mcWJqSmkxN3A5NWpvMy9XRVNZQThwTW1Vd1pKWmdW?=
 =?utf-8?B?dXZmVVVJb1pLSkZyVFpsTGFYaitzcEo4RmQxSnUwVUdIaWhMalgrbTlicGRi?=
 =?utf-8?B?THZ6U0RqY3dxMUFCa2grcTdZbkJNSmRGSlMwWG5rSUUvdWphOHNJU0pSaVJY?=
 =?utf-8?B?R0FrSTJLYjdSZmtSajNzOFZIaEhIQTFINm5sak9RQUI5RnVBQ1hFSWthcWtB?=
 =?utf-8?B?U1hsTUtMTjJVNmt2MmJCZEhEbXF4YlRrL25qYWFYbG5GUmdsR2VOM3dBTmhN?=
 =?utf-8?B?bkdNb1FQallYUDM2SXR3TlYvbGUvdGVxSXZrVkJRQ21yejJXblNYNHNVcUJP?=
 =?utf-8?B?aTJWcThxNmdtRWFzeG1GMFlyak05T3BHdFR1bnVDV1hCLzJUQVB0VzdXK1F3?=
 =?utf-8?B?eWVJZE1WVDcxRzVIM2tFa01Sc2pYUSsvT0pvVHNaVXdmN25ubmtIMlVlMTdK?=
 =?utf-8?B?RlFrUDlHdElwZ3hVdWJ4Q2M1RGhEWE1KVFd2a2svYXdzd25KN3RvUUlkYTJw?=
 =?utf-8?B?aUcxT0RnZEZuc3NNdlVyVzNGaTdZYnpzTjJYTmlucURBT2pPMEU3UDcyRVNF?=
 =?utf-8?B?dUFteGlpeWpqUS9NWGcxa1MzNEpJRWV6OEk4QXZ0TU1od1lDeVB6SklUY0xN?=
 =?utf-8?B?YmZySEJSeU5PWk42OWNJSGRpZStvY0FkdGFaVTNmK2lZamZKVjlTbWZRUWZU?=
 =?utf-8?B?eTEyZUlWQ1RQbFNjVHhBNFJtYXNITU8vaWV1MTkrL3NlNHdKc285bnF0Z1Vx?=
 =?utf-8?B?dHd0L1p0a1J6TnlzT2xNeXFmeUdrVWlRR2RnQUpIQXhkSGNnUGpoNG9JOXox?=
 =?utf-8?B?SmJFRGJOWmxFTFRvb20zV05HODRYVjg1dU1RMUZhdisvUVNCdDJyU2ZrZTVj?=
 =?utf-8?B?MVUrZlh5NVhXb1RuS3R2UGFZMFlWVC9vTnVTNFcrUy82YnZpVXhsUVJqMzdT?=
 =?utf-8?B?R1ExellxdjRUU1kwOWxpSlVjQkFBbDNlSUFQVUJUTElRUG9oKzdheldRYWJx?=
 =?utf-8?B?YWk5OUppSE5mWnlqTWh4REVvL2t5Q29FeHk5MERpVHRpa24vZDBndkRqL0w1?=
 =?utf-8?B?c1dHR0cwUDRHQ0xSTkZIaUYyWlJhMEt1WWgvbVJMUWh0b2x5SllsYlVvRU8z?=
 =?utf-8?B?Wmc2SzhWTGJLN00rc0tTSTFlZkVEVUFMY2dvNzNDaUdIN01zWmhOdUZ3eVBo?=
 =?utf-8?B?eWVGWmJhS2d4VWF4RG8vQndGL0Q4R2lNY2hacFd5c0dqNk43RTkxT3EvMmxj?=
 =?utf-8?B?NFNVUFg4dnprSWF2VmYydUl6SWl3QW91Z1hDcmM1ZS9Bd2JVSGk2TkZ6K25n?=
 =?utf-8?B?Z0dtaFh1RUxOaVhPMUwydGV6YitHSWRRYldWOHdXSmM2M0wwNjdmVjlrYnk3?=
 =?utf-8?B?b0c1WFRVaDNqMkZvdEtjeU5jSkd4SnZTZ0tpVjhqK3g5c0pic3MyZm5zUUtx?=
 =?utf-8?B?dDNpRkg1WjhsZitHRFZoTUp4Y1ZDZWZmM21IZE8wdU5rQU1RSGcySkZqSXNu?=
 =?utf-8?B?UzhXelkvZXkyU0psekhRc3ByZi9XWUVVRlgwYU1EUHd1Rk1scUpDUmptaHRZ?=
 =?utf-8?B?MFZ0NU9vd0lGWWpQOGxiV1dLN2poMTJvcitVMVVFb2ZLNXZKZlBsbVN4WFc5?=
 =?utf-8?B?VVNWUitZeWJJbi8xdmFtVHNnNk9QQjFteWduTG5YQTk4bFNEQUJLN0poYTIw?=
 =?utf-8?B?NkVuekdkYWpweUpucWQvZ2FMblRmNStFN2ZjY3RRdU9mVGV0RG5GODZESXNE?=
 =?utf-8?B?MHBGdEVpMkRIUkpDYjlZaC9TRkVJYVlJaWpxbjRObm5TYWlxUGpPcE4wTDZM?=
 =?utf-8?B?WStMbVpLa2ErbW8xL1UyVFM3cjFjNjJQUVdpaG5rbEo1N1c0QkRXalE3eGNG?=
 =?utf-8?B?TDdBbnE2VjUxNEZ3NDVwYU83amZMSzBnTjVETkcySTMrQ3RFQmx1cHlXVnRL?=
 =?utf-8?B?bFRJSUZmeUtlTUppNnprQ3NMdUdJSWF0dHdUcHJuYzZHOVo4eTFkRmZMUTR1?=
 =?utf-8?Q?t5mWRMAzMs0X/7srtp/UAnuqT?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 5a2e2a71-d9e5-4d30-42aa-08dd7b4f866c
X-MS-Exchange-CrossTenant-AuthSource: PH8PR12MB7326.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Apr 2025 12:26:04.7067
 (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: 5+Q+Cs2qXc4ysjaEtHswMejwsUbEd5hXIDaEKFX8K/sePFx0CLxI7r5xN5+ZwAHngSJvhC3IvP1R3VMP2PkOGA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB7341


On 14/04/2025 13:03, Julien Grall wrote:
> Hi Ayan,
Hi Julien,
>
> On 14/04/2025 20:54, Ayan Kumar Halder wrote:
>>
>> On 14/04/2025 12:21, Julien Grall wrote:
>>> Hi Ayan,
>>
>> Hi Julien,
>>
>> A few clarifications.
>>
>>>
>>> On 11/04/2025 20:04, Ayan Kumar Halder wrote:
>>>> diff --git a/xen/arch/arm/include/asm/arm32/sysregs.h 
>>>> b/xen/arch/arm/ include/asm/arm32/sysregs.h
>>>> index 22871999af..8d7b95d982 100644
>>>> --- a/xen/arch/arm/include/asm/arm32/sysregs.h
>>>> +++ b/xen/arch/arm/include/asm/arm32/sysregs.h
>>>> @@ -20,6 +20,15 @@
>>>>    * uses r0 as a placeholder register. */
>>>>   #define CMD_CP32(name...)      "mcr " __stringify(CP32(r0, name)) 
>>>> ";"
>>>>   +#define REGION_TEXT_PRBAR       0x18    /* SH=11 AP=10 XN=0 */
>>>> +#define REGION_RO_PRBAR         0x1D    /* SH=11 AP=10 XN=1 */
>>>> +#define REGION_DATA_PRBAR       0x19    /* SH=11 AP=00 XN=1 */
>>>> +#define REGION_DEVICE_PRBAR     0x11    /* SH=10 AP=00 XN=1 */
>>>> +
>>>> +#ifdef __ASSEMBLY__
>>>> +#define WRITE_SYSREG_ASM(v, name) mcr CP32(v, name)
>>>> +#endif /* __ASSEMBLY__ */
>>>> +
>>>>   #ifndef __ASSEMBLY__
>>>>     /* C wrappers */
>>>> diff --git a/xen/arch/arm/include/asm/cpregs.h b/xen/arch/arm/ 
>>>> include/asm/cpregs.h
>>>> index aec9e8f329..a7503a190f 100644
>>>> --- a/xen/arch/arm/include/asm/cpregs.h
>>>> +++ b/xen/arch/arm/include/asm/cpregs.h
>>>> @@ -1,6 +1,8 @@
>>>>   #ifndef __ASM_ARM_CPREGS_H
>>>>   #define __ASM_ARM_CPREGS_H
>>>>   +#include <asm/mpu/cpregs.h>
>>>
>>> Just to confirm, the CP registers used by the MPU will never be used 
>>> for an other purpose on MMU systems, is that correct?
>> Yes, this is correct. The registers are specific to PMSAv8-32 which 
>> will not be present on MMU systems.
>
> I am not entirely sure this is answering my question. I was asking 
> whether the encoding could be re-used for a non-MPU specific register 
> in the future? IOW, is the encoding reserved for PMSAv8-32 only?
yes, these registers encoding are reserved for PMSAv8-32 only.
>
>>>
>>>> diff --git a/xen/arch/arm/include/asm/mpu/cpregs.h b/xen/arch/arm/ 
>>>> include/asm/mpu/cpregs.h
>>>> new file mode 100644
>>>> index 0000000000..e2f3b2264c
>>>> --- /dev/null
>>>> +++ b/xen/arch/arm/include/asm/mpu/cpregs.h
>>>> @@ -0,0 +1,27 @@
>>>> +/* SPDX-License-Identifier: GPL-2.0-only */
>>>> +
>>>> +#ifndef __ASM_ARM_MPU_CPREGS_H
>>>> +#define __ASM_ARM_MPU_CPREGS_H
>>>> +
>>>> +#ifdef CONFIG_ARM_32
>>>
>>> I am not sure I agree with the placement of this ifdef. Is the 
>>> implication that 32-bit domain will never be supported on arm64? If 
>>> not, then everything but the aliases should be available for 64-bit 
>>> (like we already do in asm/cpregs.h).
>> Yes, I will enclose the alias only.
>>>
>>>> +
>>>> +/* CP15 CR0: MPU Type Register */
>>>> +#define HMPUIR          p15,4,c0,c0,4
>>>> +
>>>> +/* CP15 CR6: MPU Protection Region Base/Limit/Select Address 
>>>> Register */
>>>> +#define HPRSELR         p15,4,c6,c2,1
>>>> +#define PRBAR_EL2       p15,4,c6,c3,0
>>>> +#define PRLAR_EL2       p15,4,c6,c8,1
>>>
>>> I am a little bit surprised the registers have _EL2 in their name. 
>>> By any chance are you using the aarch64 naming? 
>> yes.
>>> If so, please provide the 32-bit name and add an alias below.
>>
>> yes, sorry this is a bit mixed up. I did not understand the purpose 
>> for defining alias , so I used the common name.
>>
>> I will use HPRBAR and HPRLAR here and ....
>>
>>>
>>>> +
>>>> +#define MPUIR_EL2       HMPUIR
>>>> +#define PRSELR_EL2      HPRSELR
>>
>> #define PRBAR_EL2 HPRBAR
>>
>> #define PRLAR_EL2 HPRLAR
>>
>>>
>>> Please add a comment on top explaining why we have the aliases (see 
>>> in cpregs.h).
>>
>> Actually, that comment (in asm/cpregs.h) did not make sense to me
>>
>> "/* Aliases of AArch64 names for use in common code when building for 
>> AArch32 */"
>>
>> Do you mean the common code is used for building both AArch64 and 
>> AArch32 ?
>
> The goal of the comment is to explain why we are defining AArch64. So 
> I think...
>
> > > If so, then the comment I should put here
>>
>> /* Aliases of AArch32 names for use in common code */
>>
>> Does this sound correct ?
>
> it wants to be s/AArch32/AArch64/ in your proposed comment.

ok.

Now I understand. We are using AArch64 names in the common code. :)

- Ayan

>
> Cheers,
>


From xen-devel-bounces@lists.xenproject.org Mon Apr 14 12:27:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 12:27:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.950098.1346511 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4Iu8-0004sH-0B; Mon, 14 Apr 2025 12:27:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 950098.1346511; Mon, 14 Apr 2025 12:27:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4Iu7-0004sA-TY; Mon, 14 Apr 2025 12:27:11 +0000
Received: by outflank-mailman (input) for mailman id 950098;
 Mon, 14 Apr 2025 12: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=XA/R=XA=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1u4Iu6-0004rx-DR
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 12:27:10 +0000
Received: from AM0PR02CU008.outbound.protection.outlook.com
 (mail-westeuropeazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c201::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c853e948-192b-11f0-9eae-5ba50f476ded;
 Mon, 14 Apr 2025 14:27:08 +0200 (CEST)
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com (2603:10a6:20b:5e4::22)
 by DBBPR03MB7451.eurprd03.prod.outlook.com (2603:10a6:10:20e::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.32; Mon, 14 Apr
 2025 12:27:06 +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.8632.030; Mon, 14 Apr 2025
 12:27: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: c853e948-192b-11f0-9eae-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=xJWoW+8N9UgXVwvSIBGK2+qICPj+b9xmXRk9LSvaBNe2SdGr9i3ti1xk1vO9aQ8u5WGeZpgAoN7AGtUHlrYkUc6LJP0b7evcUrWK0qP/E/xf9JS3MmzWF/DvziEpDkOwVKzcxwofUzsjQILRRErBlmPvH0xjcvZbSAnJDcpUqIa5bN7eqL6Huo3Q6EgLdO4rlq0eX+iHUHefB/CqqWMFR0OtCioDNip5NWl09gB8Mh0mJ/QnUxezQV4giQEzlhdaqD6k7yJKqq/y2xri2jukLB8U4gGk83rvCiwP1D3z/flSV7kAnqEmHqLTNqIkfoGZpRyFN/YmVOkiUE8l97txWg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=4oJkubyYY4TP5/Ikx8RQ0uDYFaiFiKmKIqsfApSp/IU=;
 b=WxzBKfWkiNk+MGJRwhYaLzObCyfnubPRa1aSrjEHi1JmgjFqZyMm98k/tyuvCxiks3CAETtHfe4Z/zxuhZbhRL6C4h/SyT36z0srFE9bxQCMM97jXic50XO9jnoRrqsNWHtArbVb4fkyw25pMjufkCppAWk2E07Uz5FV96OfIIT8pcJgaD18q1WEw8DgeyMxKk+whPWCULlfx8ksxnw18oj02ld0m0DxkER2J8BvtfIYzWKbtZgpnN9K8DLaKGAb2U4+rmtAhA2Qs9tvVMcqCMlpWyb2j6bBJCFwgQAg8uodekomRJcf1VsmVLs7YwdlW55ecEQlK4EbJ/V54o7ReA==
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=4oJkubyYY4TP5/Ikx8RQ0uDYFaiFiKmKIqsfApSp/IU=;
 b=uS5DdsAtQJd/4BqB89uofQrwUJnOCKQBiPyigLM07KQv3YJEZL3QLvuteLfSRCeh/uH/4MyUVE/IW1sD+XqeaqTTe0iU9FM/do2YTSK4hGdwFZydvPGvlHFPVWgSIDhA1AJREb5xnhMmriznrjED402NaF0M9hEPtTDwCm/qakjm/GjiqdHdhraCUvrXKyfaYea2WEby0Dw7ZXHaTOZUFY7+fPibM++kGWyP/0WHD70el3+foNJ9HZ8eH5OouMMllDlmtPBnGJKSMUd2byyPn2/rsfAFErq1L5VtMG0k75O0E2RAHVAgPm1tgB9lPkWPOrCoBr45IYj/VlaZTpHhrw==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <be2aecbf-c8f9-4069-b42a-8f9d354be7f1@epam.com>
Date: Mon, 14 Apr 2025 15:27:02 +0300
User-Agent: Mozilla Thunderbird
Subject: Re: [ImageBuilder] uboot-script-gen: add xen xsm policy loading
 support
To: Alejandro Vallejo <agarciav@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Stefano Stabellini <sstabellini@kernel.org>
Cc: Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>,
 Xen-devel <xen-devel-bounces@lists.xenproject.org>
References: <20250414081449.1763962-1-grygorii_strashko@epam.com>
 <D96CDMX3B877.3MD1OKAJ6JJ3E@amd.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <D96CDMX3B877.3MD1OKAJ6JJ3E@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR4P281CA0346.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:f4::10) To AS2PR03MB8907.eurprd03.prod.outlook.com
 (2603:10a6:20b:5e4::22)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AS2PR03MB8907:EE_|DBBPR03MB7451:EE_
X-MS-Office365-Filtering-Correlation-Id: 3271e3a8-35f1-472a-4933-08dd7b4fab1d
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?QThSeXV6WUNNZEJhbmVYTzM1VjhLR2drYkwxUS9RT2NTblN1TTF6K2c4NUti?=
 =?utf-8?B?cFJvV1BuSXZtTjh1L3libkpzRkVOUVd5MURuYjg3MEdpa1ZBT0ZzbHhJUHY2?=
 =?utf-8?B?ZzRhSFB4SXNZZ29FdEVXVUJCZENzWGI3dHJHanc0T3ZIblNibTRSMzBTdi9k?=
 =?utf-8?B?K29CSzZ4WXR2YXpTNGU3WlhNNU81ZFFHeU14SkkvMnVuOW9uOHBKdVV6S3hP?=
 =?utf-8?B?cEdrUFNRVWRpZXoybW9sK2tTaU1wOHpvemJTRWtzc21lQnZkcVJtRHN3Z0pm?=
 =?utf-8?B?RCtpcVB5Qm1GQ2k5akRuYldWZ1BNQ1Z6a2JNVm93MUZ1K2RnTHpKcGR0V2g2?=
 =?utf-8?B?VWlTbW1mKy9oL25VN0d3SEVnM09aaktQL0VzeHFLYWJDaFpyWWROTlV2SDVk?=
 =?utf-8?B?eGNJUmlKT2pwczZNNElTZ1A3UzJhdFFoVjZvRXJ4Yzl4SjhTRCtwRG13Nzlr?=
 =?utf-8?B?SkZCYVhsSTlPbnI5YmdrbmQrNWJ4TnFBZHZENG96Ti9INzZFVUlqTzZINHVI?=
 =?utf-8?B?WTRvRC9ObHdjVmRZZkZKSTJLMGowblh3eFFoRFVzVm8vVUdrRUtWUGUxZUky?=
 =?utf-8?B?OVVrRGV5eExMSXNkVllwSUJTTHQrM1dLQm9zRWhUVmdtOU5kcWVyUlJ1MmU4?=
 =?utf-8?B?Ri9MMzlKSkx4L2hleitwbXRGblJsMG5uRnpqeGpPcElDS2ZkTmd6NmdGKzJV?=
 =?utf-8?B?a3p4OWRmMlpTTllOUVFYaXpnWmlkemt0WWlUZFhwdkxQL1o2TUtOTnVaaG1U?=
 =?utf-8?B?QlEwSEh5Ymk2c1dqYWF6YnlxK21UVGIrSmV0dkhOdTNYWksyUkhwU3dOeEkv?=
 =?utf-8?B?eVFpVm9TVEdnaTZkUDArdE9HZ3ViVFhDNXpBbnNKMVQzMmE5VCtzTnZhT3Ex?=
 =?utf-8?B?d2JnSGRXdlpPMzBha24vMXIxU2szcnJhbEFEMDN3QitYMHVrb2RwZVRlUnFw?=
 =?utf-8?B?Z3A2UlhNclhiNmlTLytZdEVJenE4YTNOSWxGL1dac0kydE5aYjRwUFdtakpK?=
 =?utf-8?B?dVhFN3hhaFlHR1VzSytCcTJ0RHZ5UEJaelpraXJ1OUMxQTlxVy9DSHgwM2dK?=
 =?utf-8?B?d0U5YWkvc2xQbmxobUdsSTdVV3A4S2JWOXZ1aFYwVklCdVlLVnhnTXF5Ykw4?=
 =?utf-8?B?bE9peVkzbHo3Y0pXYkQ2cUUwT3YxVnhTSDRTdzltZnFBNVpydG02WGY3WWhY?=
 =?utf-8?B?NXlkd1BmT1RJNlVqMWRub1E3MW5QRGNoYW1ZdGVlTzhFQnB2bURSbHNZeVQy?=
 =?utf-8?B?YWpuakhHUDl3Q1F2aXZzb0hqWkJBZ2kzazVZUitYVm1KdUJqQ3lseE0zZkhh?=
 =?utf-8?B?VUx0Q3VZZ2VUYnMrNXcvK2F2NGdlTENVYmlqeEk2Qk1VTVMwTGgvUFF5amU2?=
 =?utf-8?B?NVB5eFhhNHhPcmJLTHpxZDJXMjE0Ty9YNWZXR3kvWmtvL1c4U2ttTDZ0K1BK?=
 =?utf-8?B?TjJVSGNPdmZJeHl2M1ZNZWdkdWF0dGtycTJ4bkpkRG1JUE0xOFoxaWFpVDF2?=
 =?utf-8?B?SDl0TVdlUEdnaTU2SmFTaUZvSmV6OUJsWk4xLzM5RVp0VVFSL0R4dXdPYlAw?=
 =?utf-8?B?cE0vWE9pSDFpZzlydE5kaXNxdFYyVWY2ZUhQa1VLWld3dU10Sm5EQ3BDNnRz?=
 =?utf-8?B?K2xqaEZySWduNis2NXQ0aHBmWFFpOXBSdjFQY2prd0hJM2ZwQTFRb3d3K1ll?=
 =?utf-8?B?YkF3NUM4RlFXQW84ZE9RaHJDbGREOUNNbEZadGVzREtkczFvK2N1bDRXeUNK?=
 =?utf-8?B?WVowV0MvV0RBZ3VFWkpXWWFXdHZDTklabWZJU3E5WEJWQ0FLUTFkZmoyOWc5?=
 =?utf-8?B?bG9SeUFGTnh3aUJtazYwd0FvaDFGTmJNa1NWN2NGUkZuQ0Q0YTBRd3RJR0F5?=
 =?utf-8?B?M2dPT3ZNR0dySTEzdlJJVTFWbDBTdGVLdFgxbmtyMHh2aGVuTnBxMExsSmQz?=
 =?utf-8?Q?I/sKWTl9vJ8=3D?=
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?eEp2QVRrdk5Ud3hIU055Y3QrREdKNTZUcHBiZEh5d3BJK3h5eS9OVzZ5a2M3?=
 =?utf-8?B?d3AralluaGhuNVBrNnFoTUpta1hIWUUzeEU1Y2ljN1NobGJjM3hIS3lrZW9i?=
 =?utf-8?B?b24yeWxmSjUycm1hYWpzSnJEOWhTV3M0MkZrcnl3WTJOOEQzajB6UzNEYTZI?=
 =?utf-8?B?em9LMERaNlRFajVxNTc2U2tnMmpxdjlJalE5UE1oL2xnYXFKay9KMzR4RnJU?=
 =?utf-8?B?VXBjdWlkdHg2anhXdU1WRzJjdnA5VllGUHczczhHS015d1hyS0xnaEl2b00v?=
 =?utf-8?B?VWdkcU8wbGRmSDNhVE1oTzN3NEhYUGFpMzAvTGZ4SFJJd1RZdFVUOVhZZDJu?=
 =?utf-8?B?RXY5WkJSamZCU21OTWpZck5NRGgwVy8vTXIwd3NaN1I5SWsrNlAvVEdtU3pQ?=
 =?utf-8?B?QXJSczBJQXkwclF4cjZEbjRLUW1rbDRnT0lBR3hqNnVxMDNlbWZ6S25ld2p5?=
 =?utf-8?B?bXlBc0xLVDFVbHhTaDRjOGcvOHRRRU1PdXJHZEJTVTduQW1MQmorYTRtNDUx?=
 =?utf-8?B?QmlaVE5SVnZJK29OWUgwVEZWSjB4UFVTL0R5cGlOTjhRREhoeG5oMG9YV3Uy?=
 =?utf-8?B?WStVRThhMkR2QnFlQlQ5MWlDZzZkaHJqTWZqVU1uVkhhemhPREZXNWFwMWFO?=
 =?utf-8?B?NXNJUE1LeHIrQ3NKY00rMjZXcm04NWlEREJTcjF3OFZqUHJDeEwycTE1MW5U?=
 =?utf-8?B?b2k5Slp4Sm1SMXdCSjVncVNabnJGdG9VR1J3Y2JIVldZNVkwN2h0RUtla0ta?=
 =?utf-8?B?Q2FaU3l5L3Vla05MM052a2M0WjZKNnJXcXNFN2pGd2ZyOVF5WlorSlZ3NlZ5?=
 =?utf-8?B?eWd6akZST0cxMzFjQzkwUWxkTUJtNTA5ZTdsbkJ5QmJlUzJLNEFhL20vYjFK?=
 =?utf-8?B?R0tlcGF0L3NFTkNJd3Z6aE5vVTRVOE5sd2RzUmxQSWZzSTFiaVBJY2hQK3dV?=
 =?utf-8?B?Vlgxb2lVT3pWbGpMRDJtbldUdTIyZHZRR2V1UnlGd2J0UzNBUHA1YUwyZFUv?=
 =?utf-8?B?SldxNjNjbXUyeFFNLzd4bWV3ZlFJdml1OTNIRXZFcGxsMGFTSzV1b2FDTkU1?=
 =?utf-8?B?eWlSR3hMZ2JPYXBjclJzWlZJZVFRa05vWm44LzdFaUY0RTQrbmFDMUFvZ3pE?=
 =?utf-8?B?bWlmUzI3Tm9YL3h5OTEwSWoxV1djcDloem9EbitRYXg5dHZ4ZHE4SzVNV0xN?=
 =?utf-8?B?cklvN0tyV1cwbzhKa1h3OFdqYXZxTnlBUUdocldqelJNeFllaVM0NVliczI2?=
 =?utf-8?B?bUwyWlp6NHBrUGJxZ3VvTEFHOGRSMS9YRzlMemdBdUVKRVllR1NzcUNiWGF6?=
 =?utf-8?B?bzRkT2hGTVpZTzVZdGZFUXc4Mk5ZRE12dHVCZWZSamkxaTdlWTYreWxNbVhM?=
 =?utf-8?B?aUJiamRDa1lrMHIyckNwUmkrRTQzcGRMR01pQnl6RDc4VUJ3RFFWOG1ubmFw?=
 =?utf-8?B?bmw1UG11VWJsRW0xSTZzL0lDZE9HNEdJMHJ0VU10b0duZk1oZEFtdE1FeU42?=
 =?utf-8?B?ZEFWR2hKTU1VRGJwZEVKZFF2b3NJL2ZLK2l5aUIyNGVKT0RMbHduTEVCS3RG?=
 =?utf-8?B?RXZDMTlmVUE5djdHQjVodnB4angyTHFxb0ZVWmRvdVhHcmdHbVBTbnl0L3Vi?=
 =?utf-8?B?T1hxNnZwWUN0ZEllRDdzaFEraEthSUlTQWNDOUVNU1NaSVYyM2piOEkyQjh3?=
 =?utf-8?B?ZVkrZDBQN2tEaTBhYkNpdGVpL0Q0WkUyR2hKaXlvOTdUV0NXRDRzdXpxaUFJ?=
 =?utf-8?B?cVhCRUtKMXZ0OW45bS92SjZDYkpia2JCVk5xT095a3AvMmlMOUs1UXV5ek9Y?=
 =?utf-8?B?Y3czZ3dDTitLVldwYVVvZEJQK2NjMjdTeXd3WUtldjNNMitHc1NKbHRJbHl6?=
 =?utf-8?B?b3hGNzcwU0JFUkZweEE2allIaTFzUnQwM1l5WGhKaDBVQ1FxNDVmdXdLSmtp?=
 =?utf-8?B?YmxzOU1vS0ovNXJhZlM0elp3T0M4czd2NE5xM1V0NVVEcGlOaHkrOE8zOVRs?=
 =?utf-8?B?WDIva0JNNTJQK1RlRFRLd2pmWStMQmlmR3lPMkZqZWlMZFViajFQOWtENXpp?=
 =?utf-8?B?bmx6M0JSL3NkV2Y4SnovWlhpTmxVSG9ucUQ5Sld2dGlSdHdZNklSL1dUMUw4?=
 =?utf-8?B?dWV2K0hxWTRZcG5Qak8vYStCREpwYVJTZlUxVkxnR3JKUnV3dGVLUzY5QTRD?=
 =?utf-8?B?TkE9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 3271e3a8-35f1-472a-4933-08dd7b4fab1d
X-MS-Exchange-CrossTenant-AuthSource: AS2PR03MB8907.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Apr 2025 12:27:06.1751
 (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: GU/ZUoHM8l6enCdHD5Agzo4Pafaq6p1ZIZenDYs4IZJcxJzIqHxbYCPb0/vTyGaZoFvIhly0VZvqOgBww0oeMP9LFV8ZzlVFHfT2/M5O2m8=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR03MB7451

Hi Alejandro,

On 14.04.25 14:57, Alejandro Vallejo wrote:
> As a general question, why using "test" so much, rather than
> 
>     if [ -n "$FOO" -a "FOO" == ABC ]
> 
> Using test seems far harder to read than it needs to be, and single
> brackets are perfectly valid POSIX shell.
> 
> On Mon Apr 14, 2025 at 9:14 AM BST, Grygorii Strashko wrote:
>> From: Grygorii Strashko <grygorii_strashko@epam.com>
>>
>> This patch adds Xen XSM policy loading support.
>>
>> The configuration file XEN_POLICY specifies Xen hypervisor
>> XSM policy binary to load.
>>
>> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
>> ---
>>   README.md                |  2 ++
>>   scripts/uboot-script-gen | 33 +++++++++++++++++++++++++++++++++
>>   2 files changed, 35 insertions(+)
>>
>> diff --git a/README.md b/README.md
>> index 137abef153ce..9106d2a07302 100644
>> --- a/README.md
>> +++ b/README.md
>> @@ -91,6 +91,8 @@ Where:
>>   - XEN specifies the Xen hypervisor binary to load. Note that it has to
>>     be a regular Xen binary, not a u-boot binary.
>>   
>> +- XEN_POLICY specifies the Xen hypervisor XSM policy binary to load.
>> +
>>   - XEN_COLORS specifies the colors (cache coloring) to be used for Xen
>>     and is in the format startcolor-endcolor
>>   
>> diff --git a/scripts/uboot-script-gen b/scripts/uboot-script-gen
>> index c4d26caf5e0e..343eba20e4d9 100755
>> --- a/scripts/uboot-script-gen
>> +++ b/scripts/uboot-script-gen
>> @@ -315,6 +315,15 @@ function xen_device_tree_editing()
>>       dt_set "/chosen" "#size-cells" "hex" "0x2"
>>       dt_set "/chosen" "xen,xen-bootargs" "str" "$XEN_CMD"
>>   
>> +    if test "$XEN_POLICY" && test $xen_policy_addr != "-"
> 
> If XEN_POLICY is a binary, shouldn't it be "test -f" ? Same later on.

You're right. I'll update it as below...

> 
> Also, missing quotes around $xen_policy_addr
> 
>> +    then
>> +        local node_name="xen-policy@${xen_policy_addr#0x}"
>> +
>> +        dt_mknode "/chosen" "$node_name"
>> +        dt_set "/chosen/$node_name" "compatible" "str_a" "xen,xsm-policy xen,multiboot-module multiboot,module"
>> +        dt_set "/chosen/$node_name" "reg" "hex" "$(split_addr_size $xen_policy_addr $xen_policy_size)"
>> +    fi
>> +
>>       if test "$DOM0_KERNEL"
> 
> test -f?
> g
>>       then
>>           local node_name="dom0@${dom0_kernel_addr#0x}"
>> @@ -900,6 +909,14 @@ xen_file_loading()
>>       kernel_addr=$memaddr
>>       kernel_path=$XEN
>>       load_file "$XEN" "host_kernel"
>> +
>> +    xen_policy_addr=="-"
> 
> Do you mean = ?
> 
>> +    if test "$XEN_POLICY"
>> +    then

I'll add here:

             check_file_type "${XEN_POLICY}" "SE Linux policy"

and fix other comments.

>> +        xen_policy_addr=$memaddr
>> +        load_file "$XEN_POLICY" "xen_policy"
>> +        xen_policy_size=$filesize
>> +    fi
>>   }
>>   
>>   linux_file_loading()
>> @@ -939,6 +956,22 @@ bitstream_load_and_config()
>>   
>>   create_its_file_xen()
>>   {
>> +    if test "$XEN_POLICY" && test $xen_policy_addr != "-"
>> +    then
>> +        cat >> "$its_file" <<- EOF
>> +        xen_policy {
>> +            description = "Xen XSM policy binary";
>> +            data = /incbin/("$XEN_POLICY");
>> +            type = "kernel";
>> +            arch = "arm64";
>> +            os = "linux";
>> +            compression = "none";
>> +            load = <$xen_policy_addr>;
>> +            $fit_algo
>> +        };
>> +	EOF
>> +    fi
>> +
>>       if test "$DOM0_KERNEL"
>>       then
>>           if test "$ramdisk_addr" != "-"

Thanks for your review.

-- 
Best regards,
-grygorii


From xen-devel-bounces@lists.xenproject.org Mon Apr 14 12:28:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 12:28:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.950113.1346521 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4Iva-0005Tp-FP; Mon, 14 Apr 2025 12:28:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 950113.1346521; Mon, 14 Apr 2025 12: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 1u4Iva-0005Ti-BU; Mon, 14 Apr 2025 12:28:42 +0000
Received: by outflank-mailman (input) for mailman id 950113;
 Mon, 14 Apr 2025 12:28: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=ezPI=XA=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u4IvY-0005Sp-LV
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 12:28:40 +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 fe28158a-192b-11f0-9ffb-bf95429c2676;
 Mon, 14 Apr 2025 14:28:38 +0200 (CEST)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-39ac8e7688aso2557414f8f.2
 for <xen-devel@lists.xenproject.org>; Mon, 14 Apr 2025 05:28:38 -0700 (PDT)
Received: from [10.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-43f2338dc13sm181331845e9.3.2025.04.14.05.28.37
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 14 Apr 2025 05:28:37 -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: fe28158a-192b-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744633718; x=1745238518; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=b4AXk87WmGHddqtEoL6iJ4qpl0Sv5bTI/OIcAg8UUWM=;
        b=dJRbyMIITxQPCnyRf/DYULjQSCjUexwxapDmcZe5i3xWxGWtLI6I0vlqFY7EsG79N+
         mOmGDFQrASsky4+E8lDyHsGYDB6KOnI4wNWyDrOVBQ1iZ1vKeAxYc++1Mf38uw/dtZjB
         8iYcE44+DI/Tf9ZGszSxiTbBwa/aH6j+kUIxp/Rd70JBzaLkjfSTQofJhfpGEfG/s1dN
         1vzbpgPtUQsus1hWvDE/WyxPn2MGfyhyKnUEaglTe9g+xyocRKIrNYyVgRrjWVeQvAEQ
         FTBVsQBhPBoGT+WCi8ydGf9SCVpjVOqDchp7ix5N6xUFSpZNSfJrUAoX6yYzwBQGrArT
         K4Vw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744633718; x=1745238518;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=b4AXk87WmGHddqtEoL6iJ4qpl0Sv5bTI/OIcAg8UUWM=;
        b=VSljKvT1HYIWZyVISSgP3/MbpUnABNkvehcEPTaOKnizRS8PZCEE7oYjjoX6rPVuk/
         ibGtHxLVBHIkYoxNHq+dBed17+UzpTNkHqHoQ8IoIzsEdQYRpoyB8kqFjvABJfGdNE8q
         /j9mYwt4i26nKFOZx3y4/LMfwqAeMv2xfmcctKM3UxEuUfMmeV+mCuo0R8XtqlzeJ2VW
         JspB/g6YzMGpc+m38gAlvINtjRcZw+oW0tmge1cuD0g+muJjkdZCAIE042jWhQUdYc2L
         CRtjD/fCcc1aZz3c5klfcRSzfm4CxY7UFRbV1ULStSkFUSALboac32UijE2pvVoFSRpg
         B1eQ==
X-Forwarded-Encrypted: i=1; AJvYcCWNSOk+kMqpl5ERibLSwGQmztx8ea+R++zo7ZJ+CPAlnohK3HxhmaakipY8myEwuWla+eL17lir9xY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxJ2COBrZkDcwI3exTCKDHQB3BkKRCAXAoMyY/JWkeuy8Nvc8K0
	jWsIQlFb9ia+zPrxQBqEWCTxVzKKfcPo80Ef+W9IxUKFJdqt76FW55Hb+0Toig==
X-Gm-Gg: ASbGncsbGL5PyU0DbUexht8UpZgu6jaLZBTcPrpPfP7XEA0PirQXosLlmUMGNuS/l68
	mZzJBvdwyEF1siBk6LzZreofcdOKdKasUBIJf6x2B/46KuWLyfWZPQUAvmnfD+wZ01LRTD7SvYX
	fuqSTKH8p4KELZG8NbUoRxiVgsnjT3sloWROx1xdJtikl4XnMmrjlHCwpNWtLDEFugG4SgeaDS9
	Qo4Dq+C+05Ln2MdAUfGsgUGGNw4u89eY4W106TgS8PJFLWdvJkwpqykN9GRj+yitGGKca9fxiz+
	pHW2NBiUVjfiDntPZ1SS7D8Al4czM3VNUghBJDO7Am/brYp/92SlS9z0uDL8Hw2qF2qrPFJzlBg
	c+HjZTJGbkyOXR9+7rCd/+2R0rQ==
X-Google-Smtp-Source: AGHT+IG/QtjPxc20xekzsvxuCIPna/NhU48hum2N75mXD4IZvoItk3+3WQKhVgym/YW/ZpvAReraJQ==
X-Received: by 2002:adf:9dc5:0:b0:39e:cbc7:ad38 with SMTP id ffacd0b85a97d-39ecbc87f34mr5904717f8f.32.1744633718250;
        Mon, 14 Apr 2025 05:28:38 -0700 (PDT)
Message-ID: <9fc56d3f-ee76-4536-b0a1-e906a07c5c27@suse.com>
Date: Mon, 14 Apr 2025 14:28:39 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3] xen/riscv: Increase XEN_VIRT_SIZE
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <eb20a5730b55c1731324cc3970c3a3c9ea666a85.1744214442.git.oleksii.kurochko@gmail.com>
 <a173245f-531a-434d-b3ce-1d8e35dec8ec@suse.com>
 <35a0256f-cb48-4e39-b60d-8ee698154e77@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: <35a0256f-cb48-4e39-b60d-8ee698154e77@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 14.04.2025 13:48, Oleksii Kurochko wrote:
> 
> On 4/10/25 10:48 AM, Jan Beulich wrote:
>> On 09.04.2025 21:01, Oleksii Kurochko wrote:
>>> --- a/xen/arch/riscv/include/asm/mm.h
>>> +++ b/xen/arch/riscv/include/asm/mm.h
>>> @@ -9,6 +9,7 @@
>>>   #include <xen/mm-frame.h>
>>>   #include <xen/pdx.h>
>>>   #include <xen/pfn.h>
>>> +#include <xen/sections.h>
>>>   #include <xen/types.h>
>>>   
>>>   #include <asm/page-bits.h>
>>> @@ -35,6 +36,11 @@ static inline void *maddr_to_virt(paddr_t ma)
>>>       return (void *)va;
>>>   }
>>>   
>>> +#define is_init_section(p) ({                   \
>>> +    char *p_ = (char *)(unsigned long)(p);      \
>>> +    (p_ >= __init_begin) && (p_ < __init_end);  \
>>> +})
>> I think this wants to be put in xen/sections.h, next to where __init_{begin,end}
>> are declared. But first it wants making const-correct, to eliminate the potential
>> of it indirectly casting away const-ness from the incoming argument.
>>
>> (At some point related stuff wants moving from kernel.h to sections.h, I suppose.
>> And at that point they will all want to have const added.)
> 
> Sure, I'll change to 'const char *p_ = (const char*)(unsigned long)(p)'.

And hopefully without forgetting the blank ahead of the *.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Apr 14 12:47:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 12:47:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.950132.1346530 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4JDe-0002zr-Th; Mon, 14 Apr 2025 12:47:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 950132.1346530; Mon, 14 Apr 2025 12:47:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4JDe-0002zk-R0; Mon, 14 Apr 2025 12:47:22 +0000
Received: by outflank-mailman (input) for mailman id 950132;
 Mon, 14 Apr 2025 12:47: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=KxE1=XA=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u4JDc-0002ze-Tc
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 12:47:20 +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 998b11ca-192e-11f0-9ffb-bf95429c2676;
 Mon, 14 Apr 2025 14:47:18 +0200 (CEST)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-4394a0c65fcso43207805e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 14 Apr 2025 05:47:18 -0700 (PDT)
Received: from localhost.localdomain (host-92-26-98-202.as13285.net.
 [92.26.98.202]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43f2075fc78sm180090265e9.27.2025.04.14.05.47.17
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 14 Apr 2025 05:47: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: 998b11ca-192e-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744634838; x=1745239638; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Vs3IPx0ubAvNTGKDP4dRKmTeeyajfpGQqvzCmhAlrNc=;
        b=OZNdx8bA5JnJ/YAFT5LcETkGvbH0o3iAq5NOaIj8QQZtUpjEnSZZobMQ+38SEBByh/
         +Mr93INpaKTBec6h7P+hgW1ZfoJBzA0yHIbEIzVlQtcZ2tAE4ejP5p+m3gtJ5ziNrIGx
         hkvhE9nzMl70Nyw8MVIMmvG+QWrMp9JVflLsk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744634838; x=1745239638;
        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=Vs3IPx0ubAvNTGKDP4dRKmTeeyajfpGQqvzCmhAlrNc=;
        b=H1qoobz3+egPQX3lR5BaEuaDdZ+HOJkHHRPwV794yK5GSjSRcFEMMiz30cIpg9YdN4
         TnEdMDswFxq7Bn5FY99D0JRaDZylhIFaJ7/4Cy5R7hrAutd6svIOlVCn5WPAe7/ENpFk
         F7QSgkRs5kiwcWFZCdn4FRwQdzxfoCVWV+STA8Gnjn7JzADJRK7iFbHP1VX9Rq/rlRm/
         e46gyMFpF3n1Wn+gHxukRJ5UUZTl8ILu1df3V9Mf3a+bD9J9SmJPfWsCm4qQ6/5H21wS
         2E0y8ivQfikML8hBTRxChAwzBFtoSnL5fLYzds3sG2ruOCwuP/yE/OH1CVTXuvTiowAW
         6gJQ==
X-Gm-Message-State: AOJu0Yy5O8qoQb4YZhEPLzm0koBE2fCUIkl5a14yGKfl3wbTQgv+KPSX
	y3scbR4LFTy/fS23j58CMIih2bmi3qlVekk2iL9ZF3xh6pSuBlGqRd8ctGtcteLO7fSpr/ybIRn
	WhQ8=
X-Gm-Gg: ASbGnctme8e7uSoNAm63OFUTaYH7mE/Zz+quc8DAxJjNBu0k8LnwaYpgb+e36O/n6uz
	BuTFaAG8Ctyb7Ajcg4+l3VxqlzrB4XcnsHV4Lv3LhFMm2N8GEwTJG6+fjKB2JYXjl0KSEXw30r+
	mQkmg/+6GTRHuBT1Q3YYVRcclWXVI/WMFas6aknkzgMPqJSsnvFlmsEQjdJJQsNoH6DkeWIA9pp
	tfaQ6DcX1PO/hEpsFXaTO0mV0v3+KXy3pYs/QezDUa2BPQEREehYP0N07OWIyuCFMMjcLyWMyuM
	+6uB6lPiFhf0l5/0sWDe0ZjMITFLH5ri6YO/uW80Pe4oCBdYQgFrdYHzVE4hIbTwmp9Z8KNSjvF
	zFWJR7Am0CvMLCOB1xi+2kqoB
X-Google-Smtp-Source: AGHT+IE08BXgF9+pyb8u67iHj4m4DOnmtiVuA4OE8q2DgHvIDM7e10AqKTbORFgBKdPFgdsEXJ6zpA==
X-Received: by 2002:a05:6000:2507:b0:39c:1257:cc25 with SMTP id ffacd0b85a97d-39eaaed2d1cmr10607975f8f.56.1744634837735;
        Mon, 14 Apr 2025 05:47:17 -0700 (PDT)
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?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH RFC 7/6] CI: Adjust how domU is packaged in dom0
Date: Mon, 14 Apr 2025 13:47:15 +0100
Message-Id: <20250414124715.2358883-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250414110903.2355303-1-andrew.cooper3@citrix.com>
References: <20250414110903.2355303-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Package domU in /boot for dom0 and insert into the uncompressed part of dom0's
rootfs, rather than recompressing it as part of the overlay.

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: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>

A little RFC.  It wants extending to the other tests too.
---
 automation/scripts/qubes-x86-64.sh | 16 ++++++++++++----
 1 file changed, 12 insertions(+), 4 deletions(-)

diff --git a/automation/scripts/qubes-x86-64.sh b/automation/scripts/qubes-x86-64.sh
index 1f90e7002c73..7ce077dfeaee 100755
--- a/automation/scripts/qubes-x86-64.sh
+++ b/automation/scripts/qubes-x86-64.sh
@@ -185,10 +185,22 @@ Kernel \r on an \m (\l)
     find . | cpio -H newc -o | gzip >> ../binaries/domU-rootfs.cpio.gz
     cd ..
     rm -rf rootfs
+
+    # Package domU kernel+rootfs in /boot for dom0 (uncompressed)
+    mkdir -p rootfs/boot
+    cd rootfs
+    cp ../binaries/bzImage boot/vmlinuz
+    cp ../binaries/domU-rootfs.cpio.gz boot/
+    find . | cpio -H newc -o > ../binaries/domU-in-dom0.cpio
+    cd ..
+    rm -rf rootfs
 fi
 
 # Dom0 rootfs
 cp binaries/ucode.cpio binaries/dom0-rootfs.cpio.gz
+if [ -e binaries/domU-in-dom0.cpio ]; then
+    cat binaries/domU-in-dom0.cpio >> binaries/dom0-rootfs.cpio.gz
+fi
 cat binaries/rootfs.cpio.gz >> binaries/dom0-rootfs.cpio.gz
 cat binaries/xen-tools.cpio.gz >> binaries/dom0-rootfs.cpio.gz
 
@@ -236,10 +248,6 @@ mkdir -p etc/default
 echo "XENCONSOLED_TRACE=all" >> etc/default/xencommons
 echo "QEMU_XEN=/bin/false" >> etc/default/xencommons
 mkdir -p var/log/xen/console
-cp ../binaries/bzImage boot/vmlinuz
-if [ -n "$domU_check" ]; then
-    cp ../binaries/domU-rootfs.cpio.gz boot/initrd-domU
-fi
 find . | cpio -H newc -o | gzip >> ../binaries/dom0-rootfs.cpio.gz
 cd ..
 
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Mon Apr 14 13:23:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 13:23:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.950158.1346544 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4JmB-0004nc-JC; Mon, 14 Apr 2025 13:23:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 950158.1346544; Mon, 14 Apr 2025 13:23: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 1u4JmB-0004nV-GX; Mon, 14 Apr 2025 13:23:03 +0000
Received: by outflank-mailman (input) for mailman id 950158;
 Mon, 14 Apr 2025 13:23: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=nQQY=XA=arm.com=ryan.roberts@srs-se1.protection.inumbo.net>)
 id 1u4Jm9-0004nP-Os
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 13:23:01 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 94f25b7f-1933-11f0-9ffb-bf95429c2676;
 Mon, 14 Apr 2025 15:22:58 +0200 (CEST)
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 3AE831007;
 Mon, 14 Apr 2025 06:22:56 -0700 (PDT)
Received: from [10.57.86.225] (unknown [10.57.86.225])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 093363F66E;
 Mon, 14 Apr 2025 06:22: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: 94f25b7f-1933-11f0-9ffb-bf95429c2676
Message-ID: <5b0609c9-95ee-4e48-bb6d-98f57c5d2c31@arm.com>
Date: Mon, 14 Apr 2025 14:22:53 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 0/5] Fix lazy mmu mode
Content-Language: en-GB
To: Alexander Gordeev <agordeev@linux.ibm.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
 "David S. Miller" <davem@davemloft.net>,
 Andreas Larsson <andreas@gaisler.com>, Juergen Gross <jgross@suse.com>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 "H. Peter Anvin" <hpa@zytor.com>,
 "Matthew Wilcox (Oracle)" <willy@infradead.org>,
 Catalin Marinas <catalin.marinas@arm.com>, linux-mm@kvack.org,
 sparclinux@vger.kernel.org, xen-devel@lists.xenproject.org,
 linux-kernel@vger.kernel.org
References: <20250303141542.3371656-1-ryan.roberts@arm.com>
 <912c7a32-b39c-494f-a29c-4865cd92aeba@agordeev.local>
From: Ryan Roberts <ryan.roberts@arm.com>
In-Reply-To: <912c7a32-b39c-494f-a29c-4865cd92aeba@agordeev.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 10/04/2025 17:07, Alexander Gordeev wrote:
> On Mon, Mar 03, 2025 at 02:15:34PM +0000, Ryan Roberts wrote:
> 
> Hi Ryan,
> 
>> I'm planning to implement lazy mmu mode for arm64 to optimize vmalloc. As part
>> of that, I will extend lazy mmu mode to cover kernel mappings in vmalloc table
>> walkers. While lazy mmu mode is already used for kernel mappings in a few
>> places, this will extend it's use significantly.
>>
>> Having reviewed the existing lazy mmu implementations in powerpc, sparc and x86,
>> it looks like there are a bunch of bugs, some of which may be more likely to
>> trigger once I extend the use of lazy mmu.
> 
> Do you have any idea about generic code issues as result of not adhering to
> the originally stated requirement:
> 
>   /*
>    ...
>    * the PTE updates which happen during this window.  Note that using this
>    * interface requires that read hazards be removed from the code.  A read
>    * hazard could result in the direct mode hypervisor case, since the actual
>    * write to the page tables may not yet have taken place, so reads though
>    * a raw PTE pointer after it has been modified are not guaranteed to be
>    * up to date.
>    ...
>    */
> 
> I tried to follow few code paths and at least this one does not look so good:
> 
> copy_pte_range(..., src_pte, ...)
> 	ret = copy_nonpresent_pte(..., src_pte, ...)
> 		try_restore_exclusive_pte(..., src_pte, ...)	// is_device_exclusive_entry(entry)
> 			restore_exclusive_pte(..., ptep, ...)
> 				set_pte_at(..., ptep, ...)
> 					set_pte(ptep, pte);	// save in lazy mmu mode
> 
> 	// ret == -ENOENT
> 
> 	ptent = ptep_get(src_pte);				// lazy mmu save is not observed
> 	ret = copy_present_ptes(..., ptent, ...);		// wrong ptent used
> 
> I am not aware whether the effort to "read hazards be removed from the code"
> has ever been made and the generic code is safe in this regard.
> 
> What is your take on this?

Hmm, that looks like a bug to me, at least based on the stated requirements.
Although this is not a "read through a raw PTE *pointer*", it is a ptep_get().
The arch code can override that so I guess it has an opportunity to flush. But I
don't think any arches are currently doing that.

Probably the simplest fix is to add arch_flush_lazy_mmu_mode() before the
ptep_get()?

It won't be a problem in practice for arm64, since the pgtables are always
updated immediately. I just want to use these hooks to defer/batch barriers in
certain cases.

And this is a pre-existing issue for the arches that use lazy mmu with
device-exclusive mappings, which my extending lazy mmu into vmalloc won't
exacerbate.

Would you be willing/able to submit a fix?

Thanks,
Ryan


> 
> Thanks!



From xen-devel-bounces@lists.xenproject.org Mon Apr 14 13:26:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 13:26:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.950170.1346555 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4JpY-0005LE-1n; Mon, 14 Apr 2025 13:26:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 950170.1346555; Mon, 14 Apr 2025 13: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 1u4JpX-0005L7-VK; Mon, 14 Apr 2025 13:26:31 +0000
Received: by outflank-mailman (input) for mailman id 950170;
 Mon, 14 Apr 2025 13: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=SLdQ=XA=kernel.org=sashal@srs-se1.protection.inumbo.net>)
 id 1u4JpX-0005Kz-I7
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 13:26:31 +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 1252f7e6-1934-11f0-9ffb-bf95429c2676;
 Mon, 14 Apr 2025 15:26:29 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by nyc.source.kernel.org (Postfix) with ESMTP id 92221A49E2E;
 Mon, 14 Apr 2025 13:20:59 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 83826C4CEE9;
 Mon, 14 Apr 2025 13:26: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: 1252f7e6-1934-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1744637187;
	bh=l/yHk582AK4bFUjbv7xQMGDY1aE4V/qkqvcLDCRbGaQ=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=i7RqHdGGZFXeZP/xoo5V+rC5KVLI2awn3q9FyLvRK94OQP6c2pF7M8WmzEHeq4cup
	 xLItGCJaiXkslKifphH/N9smCSRpJYlUjz5l95xbaTSrVdlVM7RKOoUj6dFPLLhWwK
	 fQuKi5MclnS55oplNXIlXNu94oX14erEis9Kk6oGaaBE54YQtlhOAzQmRjEkF/W13K
	 cw976vw28trSBaLi7wlAr7F9BYUxcn7DGIeHrlYPUzGk4HZtyMujBOVHSppCHY0nhO
	 t5enRW++ZheScNttojFZBoY1z7Fx2tHdAkZsbPX0PWboOztWpm6oDCEOJLtwGF58lL
	 36z9AlgGhvQHw==
From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org,
	stable@vger.kernel.org
Cc: Jason Andryuk <jason.andryuk@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Juergen Gross <jgross@suse.com>,
	Sasha Levin <sashal@kernel.org>,
	sstabellini@kernel.org,
	xen-devel@lists.xenproject.org
Subject: [PATCH AUTOSEL 6.14 07/34] xen: Change xen-acpi-processor dom0 dependency
Date: Mon, 14 Apr 2025 09:25:43 -0400
Message-Id: <20250414132610.677644-7-sashal@kernel.org>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250414132610.677644-1-sashal@kernel.org>
References: <20250414132610.677644-1-sashal@kernel.org>
MIME-Version: 1.0
X-stable: review
X-Patchwork-Hint: Ignore
X-stable-base: Linux 6.14.2
Content-Transfer-Encoding: 8bit

From: Jason Andryuk <jason.andryuk@amd.com>

[ Upstream commit 0f2946bb172632e122d4033e0b03f85230a29510 ]

xen-acpi-processor functions under a PVH dom0 with only a
xen_initial_domain() runtime check.  Change the Kconfig dependency from
PV dom0 to generic dom0 to reflect that.

Suggested-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
Reviewed-by: Juergen Gross <jgross@suse.com>
Tested-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Juergen Gross <jgross@suse.com>
Message-ID: <20250331172913.51240-1-jason.andryuk@amd.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/xen/Kconfig | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/xen/Kconfig b/drivers/xen/Kconfig
index f7d6f47971fdf..24f485827e039 100644
--- a/drivers/xen/Kconfig
+++ b/drivers/xen/Kconfig
@@ -278,7 +278,7 @@ config XEN_PRIVCMD_EVENTFD
 
 config XEN_ACPI_PROCESSOR
 	tristate "Xen ACPI processor"
-	depends on XEN && XEN_PV_DOM0 && X86 && ACPI_PROCESSOR && CPU_FREQ
+	depends on XEN && XEN_DOM0 && X86 && ACPI_PROCESSOR && CPU_FREQ
 	default m
 	help
 	  This ACPI processor uploads Power Management information to the Xen
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Mon Apr 14 13:27:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 13:27:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.950179.1346565 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4Jq4-0005qG-9N; Mon, 14 Apr 2025 13:27:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 950179.1346565; Mon, 14 Apr 2025 13:27: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 1u4Jq4-0005q9-6E; Mon, 14 Apr 2025 13:27:04 +0000
Received: by outflank-mailman (input) for mailman id 950179;
 Mon, 14 Apr 2025 13:27: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=SLdQ=XA=kernel.org=sashal@srs-se1.protection.inumbo.net>)
 id 1u4Jq3-0005dp-Dd
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 13:27:03 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 25c374d5-1934-11f0-9eae-5ba50f476ded;
 Mon, 14 Apr 2025 15:27:02 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 63F9E43D97;
 Mon, 14 Apr 2025 13:26:59 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9A5AFC4CEE9;
 Mon, 14 Apr 2025 13:26: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: 25c374d5-1934-11f0-9eae-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1744637220;
	bh=NWePQQGyiJB1lF8JMRapZucVYoCavkai+t/0v9AbqlY=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=l+pxZj910uDVMYGVoXgeSt6ylbUY2TEQVHUEb0poqS0RrjNHnstveM/2So0R1d1QF
	 TqEdiAif+GwmH7FAL8v5pWJCYWsXfA+GeDj1Rpj/GlK4p3rBKLx7gOK9Unsl1WCdiC
	 0XESDuSesw3wtUtcBnn6kG/fdZBYAphtr1/eJhPCdHSm9xGGUtoJmGxifrZ3Jvuw0e
	 YA3NUvcqL84xwspG4Wy8faJkSkW8W/E0/lCkKLH62V/r2VzvXHusDoiYsf5Pnwwl5f
	 0JraiCnW+Jd2W/ZtJISR9EanNsAdLGcfN1uQgpgdVAnd2ilMWRgIhWQ9xKEvx3uRHb
	 jDHOzP6SHRvcg==
From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org,
	stable@vger.kernel.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Jason Andryuk <jason.andryuk@amd.com>,
	Juergen Gross <jgross@suse.com>,
	Sasha Levin <sashal@kernel.org>,
	tglx@linutronix.de,
	mingo@redhat.com,
	bp@alien8.de,
	dave.hansen@linux.intel.com,
	x86@kernel.org,
	xen-devel@lists.xenproject.org
Subject: [PATCH AUTOSEL 6.14 21/34] x86/xen: disable CPU idle and frequency drivers for PVH dom0
Date: Mon, 14 Apr 2025 09:25:57 -0400
Message-Id: <20250414132610.677644-21-sashal@kernel.org>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250414132610.677644-1-sashal@kernel.org>
References: <20250414132610.677644-1-sashal@kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
X-stable: review
X-Patchwork-Hint: Ignore
X-stable-base: Linux 6.14.2
Content-Transfer-Encoding: 8bit

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

[ Upstream commit 64a66e2c3b3113dc78a6124e14825d68ddc2e188 ]

When running as a PVH dom0 the ACPI tables exposed to Linux are (mostly)
the native ones, thus exposing the C and P states, that can lead to
attachment of CPU idle and frequency drivers.  However the entity in
control of the CPU C and P states is Xen, as dom0 doesn't have a full view
of the system load, neither has all CPUs assigned and identity pinned.

Like it's done for classic PV guests, prevent Linux from using idle or
frequency state drivers when running as a PVH dom0.

On an AMD EPYC 7543P system without this fix a Linux PVH dom0 will keep the
host CPUs spinning at 100% even when dom0 is completely idle, as it's
attempting to use the acpi_idle driver.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>
Signed-off-by: Juergen Gross <jgross@suse.com>
Message-ID: <20250407101842.67228-1-roger.pau@citrix.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 arch/x86/xen/enlighten_pvh.c | 19 ++++++++++++++++++-
 1 file changed, 18 insertions(+), 1 deletion(-)

diff --git a/arch/x86/xen/enlighten_pvh.c b/arch/x86/xen/enlighten_pvh.c
index 0e3d930bcb89e..9d25d9373945c 100644
--- a/arch/x86/xen/enlighten_pvh.c
+++ b/arch/x86/xen/enlighten_pvh.c
@@ -1,5 +1,7 @@
 // SPDX-License-Identifier: GPL-2.0
 #include <linux/acpi.h>
+#include <linux/cpufreq.h>
+#include <linux/cpuidle.h>
 #include <linux/export.h>
 #include <linux/mm.h>
 
@@ -123,8 +125,23 @@ static void __init pvh_arch_setup(void)
 {
 	pvh_reserve_extra_memory();
 
-	if (xen_initial_domain())
+	if (xen_initial_domain()) {
 		xen_add_preferred_consoles();
+
+		/*
+		 * Disable usage of CPU idle and frequency drivers: when
+		 * running as hardware domain the exposed native ACPI tables
+		 * causes idle and/or frequency drivers to attach and
+		 * malfunction.  It's Xen the entity that controls the idle and
+		 * frequency states.
+		 *
+		 * For unprivileged domains the exposed ACPI tables are
+		 * fabricated and don't contain such data.
+		 */
+		disable_cpuidle();
+		disable_cpufreq();
+		WARN_ON(xen_set_default_idle());
+	}
 }
 
 void __init xen_pvh_init(struct boot_params *boot_params)
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Mon Apr 14 13:28:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 13:28:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.950191.1346574 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4JrK-0006PV-IJ; Mon, 14 Apr 2025 13:28:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 950191.1346574; Mon, 14 Apr 2025 13:28:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4JrK-0006PO-FE; Mon, 14 Apr 2025 13:28:22 +0000
Received: by outflank-mailman (input) for mailman id 950191;
 Mon, 14 Apr 2025 13:28: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=SLdQ=XA=kernel.org=sashal@srs-se1.protection.inumbo.net>)
 id 1u4JrJ-0006PB-07
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 13:28:21 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 542670ae-1934-11f0-9eae-5ba50f476ded;
 Mon, 14 Apr 2025 15:28:19 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id AD3C149E69;
 Mon, 14 Apr 2025 13:28:17 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id D9B62C4CEE9;
 Mon, 14 Apr 2025 13:28:16 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 542670ae-1934-11f0-9eae-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1744637298;
	bh=NWePQQGyiJB1lF8JMRapZucVYoCavkai+t/0v9AbqlY=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=ge36wmR4yAi4AGHlHJiT12u649BnPzG41SbaeLyp5lMpauvYH3agePKI2QgRPLFcL
	 glKgTBcE6PVVp5n9cKV8EMasgQxKPWvpz2xQeLeCXuoqMnUFwChHAZeF39a4nSmIqm
	 anLxLW9kQoasM4vyvcBthmlBryYgIIL+qKQCOhFFvxrNa/gfUhT0qtqQ+VmLhjHzYH
	 jTHqZoSH5jJdBV7fPD4eBvUkB2szjimsw9lQ5VYmu9vXergWvET80TWWgbPvqwYrVP
	 TNCIxa6ug+nDuAylo6swrONWdZFlg/wdF/6Y0BTDKy5WSaX15kRA80r42CDUCH4gOJ
	 /jPSutK9+I/Sg==
From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org,
	stable@vger.kernel.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Jason Andryuk <jason.andryuk@amd.com>,
	Juergen Gross <jgross@suse.com>,
	Sasha Levin <sashal@kernel.org>,
	tglx@linutronix.de,
	mingo@redhat.com,
	bp@alien8.de,
	dave.hansen@linux.intel.com,
	x86@kernel.org,
	xen-devel@lists.xenproject.org
Subject: [PATCH AUTOSEL 6.13 21/34] x86/xen: disable CPU idle and frequency drivers for PVH dom0
Date: Mon, 14 Apr 2025 09:27:15 -0400
Message-Id: <20250414132729.679254-21-sashal@kernel.org>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250414132729.679254-1-sashal@kernel.org>
References: <20250414132729.679254-1-sashal@kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
X-stable: review
X-Patchwork-Hint: Ignore
X-stable-base: Linux 6.13.11
Content-Transfer-Encoding: 8bit

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

[ Upstream commit 64a66e2c3b3113dc78a6124e14825d68ddc2e188 ]

When running as a PVH dom0 the ACPI tables exposed to Linux are (mostly)
the native ones, thus exposing the C and P states, that can lead to
attachment of CPU idle and frequency drivers.  However the entity in
control of the CPU C and P states is Xen, as dom0 doesn't have a full view
of the system load, neither has all CPUs assigned and identity pinned.

Like it's done for classic PV guests, prevent Linux from using idle or
frequency state drivers when running as a PVH dom0.

On an AMD EPYC 7543P system without this fix a Linux PVH dom0 will keep the
host CPUs spinning at 100% even when dom0 is completely idle, as it's
attempting to use the acpi_idle driver.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>
Signed-off-by: Juergen Gross <jgross@suse.com>
Message-ID: <20250407101842.67228-1-roger.pau@citrix.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 arch/x86/xen/enlighten_pvh.c | 19 ++++++++++++++++++-
 1 file changed, 18 insertions(+), 1 deletion(-)

diff --git a/arch/x86/xen/enlighten_pvh.c b/arch/x86/xen/enlighten_pvh.c
index 0e3d930bcb89e..9d25d9373945c 100644
--- a/arch/x86/xen/enlighten_pvh.c
+++ b/arch/x86/xen/enlighten_pvh.c
@@ -1,5 +1,7 @@
 // SPDX-License-Identifier: GPL-2.0
 #include <linux/acpi.h>
+#include <linux/cpufreq.h>
+#include <linux/cpuidle.h>
 #include <linux/export.h>
 #include <linux/mm.h>
 
@@ -123,8 +125,23 @@ static void __init pvh_arch_setup(void)
 {
 	pvh_reserve_extra_memory();
 
-	if (xen_initial_domain())
+	if (xen_initial_domain()) {
 		xen_add_preferred_consoles();
+
+		/*
+		 * Disable usage of CPU idle and frequency drivers: when
+		 * running as hardware domain the exposed native ACPI tables
+		 * causes idle and/or frequency drivers to attach and
+		 * malfunction.  It's Xen the entity that controls the idle and
+		 * frequency states.
+		 *
+		 * For unprivileged domains the exposed ACPI tables are
+		 * fabricated and don't contain such data.
+		 */
+		disable_cpuidle();
+		disable_cpufreq();
+		WARN_ON(xen_set_default_idle());
+	}
 }
 
 void __init xen_pvh_init(struct boot_params *boot_params)
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Mon Apr 14 13:29:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 13:29:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.950203.1346585 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4Js2-0006xp-U2; Mon, 14 Apr 2025 13:29:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 950203.1346585; Mon, 14 Apr 2025 13: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 1u4Js2-0006xi-Qs; Mon, 14 Apr 2025 13:29:06 +0000
Received: by outflank-mailman (input) for mailman id 950203;
 Mon, 14 Apr 2025 13:29: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=SLdQ=XA=kernel.org=sashal@srs-se1.protection.inumbo.net>)
 id 1u4Js1-0006i9-Ho
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 13:29:05 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6e5531a6-1934-11f0-9ffb-bf95429c2676;
 Mon, 14 Apr 2025 15:29:03 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 9E24149E69;
 Mon, 14 Apr 2025 13:29:01 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4A75BC4CEE2;
 Mon, 14 Apr 2025 13:29: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: 6e5531a6-1934-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1744637342;
	bh=l/yHk582AK4bFUjbv7xQMGDY1aE4V/qkqvcLDCRbGaQ=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=KrBrHki09t/XeHMKDHJ0dbkexa1w1WT2syR/TOaF/70CoSpZjA7Mv4wlGkRXHPw/Q
	 pEgrQAky9eOe9zFUFCtVUyjsm9HE3kHLR4FKMe8w+2vb1Wm4X9Q9yNy/rCdzj8V7yx
	 1AiwbT1sonXbCF8zz5AoWKNxarfsPcd3oUPimbuujyA4wr5fRm632mWxoq84fz8kWq
	 CMS1YZm5Y9APOKyTTncx7WnkkemMZ5+TBolTWyp+9kRqy0BjTdUcHAC5X7edPWCi81
	 6arHjKOBlg2HwSDl4sqKFUEuyQ46uKoIPE+uFhSU2dDc3kEae7E7hktdgT5WL4YKx4
	 Mzu8ixil5MmYw==
From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org,
	stable@vger.kernel.org
Cc: Jason Andryuk <jason.andryuk@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Juergen Gross <jgross@suse.com>,
	Sasha Levin <sashal@kernel.org>,
	sstabellini@kernel.org,
	xen-devel@lists.xenproject.org
Subject: [PATCH AUTOSEL 6.12 06/30] xen: Change xen-acpi-processor dom0 dependency
Date: Mon, 14 Apr 2025 09:28:23 -0400
Message-Id: <20250414132848.679855-6-sashal@kernel.org>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250414132848.679855-1-sashal@kernel.org>
References: <20250414132848.679855-1-sashal@kernel.org>
MIME-Version: 1.0
X-stable: review
X-Patchwork-Hint: Ignore
X-stable-base: Linux 6.12.23
Content-Transfer-Encoding: 8bit

From: Jason Andryuk <jason.andryuk@amd.com>

[ Upstream commit 0f2946bb172632e122d4033e0b03f85230a29510 ]

xen-acpi-processor functions under a PVH dom0 with only a
xen_initial_domain() runtime check.  Change the Kconfig dependency from
PV dom0 to generic dom0 to reflect that.

Suggested-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
Reviewed-by: Juergen Gross <jgross@suse.com>
Tested-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Juergen Gross <jgross@suse.com>
Message-ID: <20250331172913.51240-1-jason.andryuk@amd.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/xen/Kconfig | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/xen/Kconfig b/drivers/xen/Kconfig
index f7d6f47971fdf..24f485827e039 100644
--- a/drivers/xen/Kconfig
+++ b/drivers/xen/Kconfig
@@ -278,7 +278,7 @@ config XEN_PRIVCMD_EVENTFD
 
 config XEN_ACPI_PROCESSOR
 	tristate "Xen ACPI processor"
-	depends on XEN && XEN_PV_DOM0 && X86 && ACPI_PROCESSOR && CPU_FREQ
+	depends on XEN && XEN_DOM0 && X86 && ACPI_PROCESSOR && CPU_FREQ
 	default m
 	help
 	  This ACPI processor uploads Power Management information to the Xen
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Mon Apr 14 13:30:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 13:30:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.950215.1346594 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4JtB-0008Rg-6U; Mon, 14 Apr 2025 13:30:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 950215.1346594; Mon, 14 Apr 2025 13: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 1u4JtB-0008RZ-3W; Mon, 14 Apr 2025 13:30:17 +0000
Received: by outflank-mailman (input) for mailman id 950215;
 Mon, 14 Apr 2025 13: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=SLdQ=XA=kernel.org=sashal@srs-se1.protection.inumbo.net>)
 id 1u4Jt9-0008RR-Mz
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 13:30:15 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9828928e-1934-11f0-9ffb-bf95429c2676;
 Mon, 14 Apr 2025 15:30:13 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id B78EA614BD;
 Mon, 14 Apr 2025 13:29:57 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id E59F4C4CEE9;
 Mon, 14 Apr 2025 13:30: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: 9828928e-1934-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1744637412;
	bh=MM1HcIrsCsuD7/pRkw4M1fx7Lt6v9Lafl9o4yzNx0YI=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=Fvj7LxQ38qE0XlL1bfG5zv3oXhfBN2WgnmuHK1zA16vIntFoOYiz5sJvhMxUhdjmK
	 8lUfMmhvMfc0wbqdTd7kW/GvTaADRU7dUo9pTzTgLFf4Na4kxxMUgVoJ2k7gl2fNyv
	 JheqPQ92waJAnf4lLGx+mfXpJBmjlk4h/oVZktnEDWMIosiQJzH2y8mep7SF3Gq3A0
	 SQ7K3CwdHYGiOcYlZ8jICd1kwplPV8k4F7IpjEi7nMjUhOrt7chDId4Sh0iHTgnmmM
	 +pqmDl5iMK6r5bx3Yjdt3E6O5MKmOUgMzlFO74sahrvZ+ISC8hZCuWNCFUX0+2v81W
	 h43iRY/k1z8Sg==
From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org,
	stable@vger.kernel.org
Cc: Jason Andryuk <jason.andryuk@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Juergen Gross <jgross@suse.com>,
	Sasha Levin <sashal@kernel.org>,
	sstabellini@kernel.org,
	xen-devel@lists.xenproject.org
Subject: [PATCH AUTOSEL 6.6 06/24] xen: Change xen-acpi-processor dom0 dependency
Date: Mon, 14 Apr 2025 09:29:39 -0400
Message-Id: <20250414132957.680250-6-sashal@kernel.org>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250414132957.680250-1-sashal@kernel.org>
References: <20250414132957.680250-1-sashal@kernel.org>
MIME-Version: 1.0
X-stable: review
X-Patchwork-Hint: Ignore
X-stable-base: Linux 6.6.87
Content-Transfer-Encoding: 8bit

From: Jason Andryuk <jason.andryuk@amd.com>

[ Upstream commit 0f2946bb172632e122d4033e0b03f85230a29510 ]

xen-acpi-processor functions under a PVH dom0 with only a
xen_initial_domain() runtime check.  Change the Kconfig dependency from
PV dom0 to generic dom0 to reflect that.

Suggested-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
Reviewed-by: Juergen Gross <jgross@suse.com>
Tested-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Juergen Gross <jgross@suse.com>
Message-ID: <20250331172913.51240-1-jason.andryuk@amd.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/xen/Kconfig | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/xen/Kconfig b/drivers/xen/Kconfig
index d43153fec18ea..af5c214b22069 100644
--- a/drivers/xen/Kconfig
+++ b/drivers/xen/Kconfig
@@ -278,7 +278,7 @@ config XEN_PRIVCMD_IRQFD
 
 config XEN_ACPI_PROCESSOR
 	tristate "Xen ACPI processor"
-	depends on XEN && XEN_PV_DOM0 && X86 && ACPI_PROCESSOR && CPU_FREQ
+	depends on XEN && XEN_DOM0 && X86 && ACPI_PROCESSOR && CPU_FREQ
 	default m
 	help
 	  This ACPI processor uploads Power Management information to the Xen
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Mon Apr 14 13:30:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 13:30:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.950225.1346604 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4Jtp-0000zb-Ek; Mon, 14 Apr 2025 13:30:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 950225.1346604; Mon, 14 Apr 2025 13: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 1u4Jtp-0000zQ-CK; Mon, 14 Apr 2025 13:30:57 +0000
Received: by outflank-mailman (input) for mailman id 950225;
 Mon, 14 Apr 2025 13:30:57 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=SLdQ=XA=kernel.org=sashal@srs-se1.protection.inumbo.net>)
 id 1u4Jqm-0005dp-20
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 13:27:48 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org
 [2600:3c0a:e001:78e:0:1991:8:25])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 40c743f1-1934-11f0-9eae-5ba50f476ded;
 Mon, 14 Apr 2025 15:27:47 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 3445E43D97;
 Mon, 14 Apr 2025 13:27:45 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id D4C27C4CEE9;
 Mon, 14 Apr 2025 13:27: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: 40c743f1-1934-11f0-9eae-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1744637266;
	bh=l/yHk582AK4bFUjbv7xQMGDY1aE4V/qkqvcLDCRbGaQ=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=Z2L9lq3upqVI+SAI17zW0a2ntUNGZv0kQhs3tOeVXAaigbfeKB33pFawJWZKXxeg2
	 v/heFzy8VosVo1JS4t4MDRrCRbmbF6KSdS5kkJ0MCD2kqZoVS1sJmJD2kAO3YmvCDv
	 HC1MJzq3YuRPTjrZc906aNGS28lpAHZB4epAVTMLlON+giRJ9mFBiC+5vpFznTEPRB
	 lmNFILTayYMTS2bzM9faSqUWPri8YIpXEmKFR6t06SxEy43i1v06/JXBzdm34K+WOd
	 WxDI7BtY1r+3xdhytQFdeVvv1JM+E4upHBVQezYqpNN8FCvHGPj6Eg6ut4NDBYknPD
	 I7rnuijhwO/8w==
From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org,
	stable@vger.kernel.org
Cc: Jason Andryuk <jason.andryuk@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Juergen Gross <jgross@suse.com>,
	Sasha Levin <sashal@kernel.org>,
	sstabellini@kernel.org,
	xen-devel@lists.xenproject.org
Subject: [PATCH AUTOSEL 6.13 07/34] xen: Change xen-acpi-processor dom0 dependency
Date: Mon, 14 Apr 2025 09:27:01 -0400
Message-Id: <20250414132729.679254-7-sashal@kernel.org>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250414132729.679254-1-sashal@kernel.org>
References: <20250414132729.679254-1-sashal@kernel.org>
MIME-Version: 1.0
X-stable: review
X-Patchwork-Hint: Ignore
X-stable-base: Linux 6.13.11
Content-Transfer-Encoding: 8bit

From: Jason Andryuk <jason.andryuk@amd.com>

[ Upstream commit 0f2946bb172632e122d4033e0b03f85230a29510 ]

xen-acpi-processor functions under a PVH dom0 with only a
xen_initial_domain() runtime check.  Change the Kconfig dependency from
PV dom0 to generic dom0 to reflect that.

Suggested-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
Reviewed-by: Juergen Gross <jgross@suse.com>
Tested-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Juergen Gross <jgross@suse.com>
Message-ID: <20250331172913.51240-1-jason.andryuk@amd.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/xen/Kconfig | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/xen/Kconfig b/drivers/xen/Kconfig
index f7d6f47971fdf..24f485827e039 100644
--- a/drivers/xen/Kconfig
+++ b/drivers/xen/Kconfig
@@ -278,7 +278,7 @@ config XEN_PRIVCMD_EVENTFD
 
 config XEN_ACPI_PROCESSOR
 	tristate "Xen ACPI processor"
-	depends on XEN && XEN_PV_DOM0 && X86 && ACPI_PROCESSOR && CPU_FREQ
+	depends on XEN && XEN_DOM0 && X86 && ACPI_PROCESSOR && CPU_FREQ
 	default m
 	help
 	  This ACPI processor uploads Power Management information to the Xen
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Mon Apr 14 13:31:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 13:31:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.950227.1346615 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4Jtu-0001NL-Lb; Mon, 14 Apr 2025 13:31:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 950227.1346615; Mon, 14 Apr 2025 13:31: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 1u4Jtu-0001N9-Ie; Mon, 14 Apr 2025 13:31:02 +0000
Received: by outflank-mailman (input) for mailman id 950227;
 Mon, 14 Apr 2025 13:31: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=SLdQ=XA=kernel.org=sashal@srs-se1.protection.inumbo.net>)
 id 1u4Jtt-0008RR-D7
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 13:31:01 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b3745fe5-1934-11f0-9ffb-bf95429c2676;
 Mon, 14 Apr 2025 15:30:59 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 94D7E43A34;
 Mon, 14 Apr 2025 13:30:57 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 42287C4CEE2;
 Mon, 14 Apr 2025 13: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: b3745fe5-1934-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1744637458;
	bh=v7Iw0f8SmGD/dvTFvJTtjO3m7ciPzRNBNSs1CGo4oYE=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=ZvSMlhijMlmxL6OvRLiCsZCIUY2r9D/sAJZv9YyDriIofRMV8fyZ7bZrUfrMQq1pZ
	 13gG89uk9W6q3x/nJISM7nmcnau/trV0nnchspMh/P68CpRQnzfXOxtIjFL3kWyCLS
	 Wu+boTkb01wDhd9mt9ZeTeEvvMwidQF0wJORS+o+gvL5tPCpTBDJDiBZgK6eU3IBRq
	 DhDhgKIgL1Uh5LsMsBltrnNjlx0PT2NlsbcfjXKcSMn3oPdRFYZWuT9OZGwAf3YGoy
	 L56vq9vpqcyVvR7YwJhbmL3qMMbCT04Ns3D54oH4t57Ro5IGLCA1INXXD3xP2D/Mpa
	 uMKhS/83HLsgA==
From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org,
	stable@vger.kernel.org
Cc: Jason Andryuk <jason.andryuk@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Juergen Gross <jgross@suse.com>,
	Sasha Levin <sashal@kernel.org>,
	sstabellini@kernel.org,
	xen-devel@lists.xenproject.org
Subject: [PATCH AUTOSEL 6.1 04/17] xen: Change xen-acpi-processor dom0 dependency
Date: Mon, 14 Apr 2025 09:30:35 -0400
Message-Id: <20250414133048.680608-4-sashal@kernel.org>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250414133048.680608-1-sashal@kernel.org>
References: <20250414133048.680608-1-sashal@kernel.org>
MIME-Version: 1.0
X-stable: review
X-Patchwork-Hint: Ignore
X-stable-base: Linux 6.1.134
Content-Transfer-Encoding: 8bit

From: Jason Andryuk <jason.andryuk@amd.com>

[ Upstream commit 0f2946bb172632e122d4033e0b03f85230a29510 ]

xen-acpi-processor functions under a PVH dom0 with only a
xen_initial_domain() runtime check.  Change the Kconfig dependency from
PV dom0 to generic dom0 to reflect that.

Suggested-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
Reviewed-by: Juergen Gross <jgross@suse.com>
Tested-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Juergen Gross <jgross@suse.com>
Message-ID: <20250331172913.51240-1-jason.andryuk@amd.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/xen/Kconfig | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/xen/Kconfig b/drivers/xen/Kconfig
index d5d7c402b6511..ab135c3e43410 100644
--- a/drivers/xen/Kconfig
+++ b/drivers/xen/Kconfig
@@ -271,7 +271,7 @@ config XEN_PRIVCMD
 
 config XEN_ACPI_PROCESSOR
 	tristate "Xen ACPI processor"
-	depends on XEN && XEN_PV_DOM0 && X86 && ACPI_PROCESSOR && CPU_FREQ
+	depends on XEN && XEN_DOM0 && X86 && ACPI_PROCESSOR && CPU_FREQ
 	default m
 	help
 	  This ACPI processor uploads Power Management information to the Xen
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Mon Apr 14 13:31:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 13:31:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.950235.1346625 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4Ju9-0002kT-Sd; Mon, 14 Apr 2025 13:31:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 950235.1346625; Mon, 14 Apr 2025 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 1u4Ju9-0002kM-Pe; Mon, 14 Apr 2025 13:31:17 +0000
Received: by outflank-mailman (input) for mailman id 950235;
 Mon, 14 Apr 2025 13:31: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=SLdQ=XA=kernel.org=sashal@srs-se1.protection.inumbo.net>)
 id 1u4JsQ-0006PB-Ml
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 13:29:30 +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 7e21784b-1934-11f0-9eae-5ba50f476ded;
 Mon, 14 Apr 2025 15:29:29 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by nyc.source.kernel.org (Postfix) with ESMTP id B30A9A450CD;
 Mon, 14 Apr 2025 13:24:00 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3201FC4CEED;
 Mon, 14 Apr 2025 13:29: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: 7e21784b-1934-11f0-9eae-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1744637368;
	bh=NWePQQGyiJB1lF8JMRapZucVYoCavkai+t/0v9AbqlY=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=X/yzEKYSwL5Xz/o4DkJ0BmYsjtfGV2qiBOtb48skCKtxXTfnBEa3R47zQ+6UR2Slc
	 iXozYQoKqcL7Td8/9vpyc69Uo1vL92/HCVYOtPTzKTxTsUSx+ra5u5LIOTveKL87Vp
	 BB91M+zgNc4+IYpLwj2jYNIQLPpIV3EXzYykjJqX35k714TD5o3X8ELaJGv2zoPNWM
	 +CMZRiE6sSHm4MToT0kxvmSfE0rhZCIk+8s65LIuFKnO6qJ+XCNNtxMhYfw773NdTQ
	 iX1gcjlct5u1u4Ki2rucWdjN0JG7wtn08dFFW7ERRH56RLSjtCaomGlLhsImVXnb+g
	 nY5+8Z3nwQUaQ==
From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org,
	stable@vger.kernel.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Jason Andryuk <jason.andryuk@amd.com>,
	Juergen Gross <jgross@suse.com>,
	Sasha Levin <sashal@kernel.org>,
	tglx@linutronix.de,
	mingo@redhat.com,
	bp@alien8.de,
	dave.hansen@linux.intel.com,
	x86@kernel.org,
	xen-devel@lists.xenproject.org
Subject: [PATCH AUTOSEL 6.12 17/30] x86/xen: disable CPU idle and frequency drivers for PVH dom0
Date: Mon, 14 Apr 2025 09:28:34 -0400
Message-Id: <20250414132848.679855-17-sashal@kernel.org>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250414132848.679855-1-sashal@kernel.org>
References: <20250414132848.679855-1-sashal@kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
X-stable: review
X-Patchwork-Hint: Ignore
X-stable-base: Linux 6.12.23
Content-Transfer-Encoding: 8bit

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

[ Upstream commit 64a66e2c3b3113dc78a6124e14825d68ddc2e188 ]

When running as a PVH dom0 the ACPI tables exposed to Linux are (mostly)
the native ones, thus exposing the C and P states, that can lead to
attachment of CPU idle and frequency drivers.  However the entity in
control of the CPU C and P states is Xen, as dom0 doesn't have a full view
of the system load, neither has all CPUs assigned and identity pinned.

Like it's done for classic PV guests, prevent Linux from using idle or
frequency state drivers when running as a PVH dom0.

On an AMD EPYC 7543P system without this fix a Linux PVH dom0 will keep the
host CPUs spinning at 100% even when dom0 is completely idle, as it's
attempting to use the acpi_idle driver.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>
Signed-off-by: Juergen Gross <jgross@suse.com>
Message-ID: <20250407101842.67228-1-roger.pau@citrix.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 arch/x86/xen/enlighten_pvh.c | 19 ++++++++++++++++++-
 1 file changed, 18 insertions(+), 1 deletion(-)

diff --git a/arch/x86/xen/enlighten_pvh.c b/arch/x86/xen/enlighten_pvh.c
index 0e3d930bcb89e..9d25d9373945c 100644
--- a/arch/x86/xen/enlighten_pvh.c
+++ b/arch/x86/xen/enlighten_pvh.c
@@ -1,5 +1,7 @@
 // SPDX-License-Identifier: GPL-2.0
 #include <linux/acpi.h>
+#include <linux/cpufreq.h>
+#include <linux/cpuidle.h>
 #include <linux/export.h>
 #include <linux/mm.h>
 
@@ -123,8 +125,23 @@ static void __init pvh_arch_setup(void)
 {
 	pvh_reserve_extra_memory();
 
-	if (xen_initial_domain())
+	if (xen_initial_domain()) {
 		xen_add_preferred_consoles();
+
+		/*
+		 * Disable usage of CPU idle and frequency drivers: when
+		 * running as hardware domain the exposed native ACPI tables
+		 * causes idle and/or frequency drivers to attach and
+		 * malfunction.  It's Xen the entity that controls the idle and
+		 * frequency states.
+		 *
+		 * For unprivileged domains the exposed ACPI tables are
+		 * fabricated and don't contain such data.
+		 */
+		disable_cpuidle();
+		disable_cpufreq();
+		WARN_ON(xen_set_default_idle());
+	}
 }
 
 void __init xen_pvh_init(struct boot_params *boot_params)
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Mon Apr 14 13:31:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 13:31:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.950245.1346634 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4JuV-0003KP-3E; Mon, 14 Apr 2025 13:31:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 950245.1346634; Mon, 14 Apr 2025 13:31: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 1u4JuV-0003KG-0j; Mon, 14 Apr 2025 13:31:39 +0000
Received: by outflank-mailman (input) for mailman id 950245;
 Mon, 14 Apr 2025 13: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=SLdQ=XA=kernel.org=sashal@srs-se1.protection.inumbo.net>)
 id 1u4JuT-0001jv-QQ
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 13:31:37 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c9c3f3b7-1934-11f0-9eae-5ba50f476ded;
 Mon, 14 Apr 2025 15:31:37 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 09DA143961;
 Mon, 14 Apr 2025 13:31:35 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id B3D8FC4CEE2;
 Mon, 14 Apr 2025 13:31: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: c9c3f3b7-1934-11f0-9eae-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1744637495;
	bh=egGOFBMP/rOXw5Cxs3Jz8pNNyapuAC8uiWGLwRvlxuM=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=nyU8GyhTxBLNkDxjdbShnLzkoPzWJk77s+8Ki8zeiSGTnd2Q/OWLHrGoAx/Osrk5j
	 XpefLpsy4xZ4H47WZGoNdiewl/ZfZD/vloottH0eLm4CUGCD7jk/wySzVQ7MoPp6U7
	 qlNDAJFNIg+VqC67AIeJjt7qJDtJWg/Bqe44op2Oak4OzoVFPn+WIvHJowaD/w7EWy
	 FnfMN1mVI5j5C0roMBYa3W0uxlB1MEX8+RVqAXV69XFh+cpbvOnIJyX2qElOyxoqCA
	 C946ha060Yv8mKUFm/zfqUbHuDAeSwgbRgddztwR0t1LhvDhjiNSJupKu9PwGRsa7p
	 MJ9QP58Aqz7pw==
From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org,
	stable@vger.kernel.org
Cc: Jason Andryuk <jason.andryuk@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Juergen Gross <jgross@suse.com>,
	Sasha Levin <sashal@kernel.org>,
	sstabellini@kernel.org,
	xen-devel@lists.xenproject.org
Subject: [PATCH AUTOSEL 5.15 04/15] xen: Change xen-acpi-processor dom0 dependency
Date: Mon, 14 Apr 2025 09:31:14 -0400
Message-Id: <20250414133126.680846-4-sashal@kernel.org>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250414133126.680846-1-sashal@kernel.org>
References: <20250414133126.680846-1-sashal@kernel.org>
MIME-Version: 1.0
X-stable: review
X-Patchwork-Hint: Ignore
X-stable-base: Linux 5.15.180
Content-Transfer-Encoding: 8bit

From: Jason Andryuk <jason.andryuk@amd.com>

[ Upstream commit 0f2946bb172632e122d4033e0b03f85230a29510 ]

xen-acpi-processor functions under a PVH dom0 with only a
xen_initial_domain() runtime check.  Change the Kconfig dependency from
PV dom0 to generic dom0 to reflect that.

Suggested-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
Reviewed-by: Juergen Gross <jgross@suse.com>
Tested-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Juergen Gross <jgross@suse.com>
Message-ID: <20250331172913.51240-1-jason.andryuk@amd.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/xen/Kconfig | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/xen/Kconfig b/drivers/xen/Kconfig
index 1b2c3aca6887c..474b0173323a6 100644
--- a/drivers/xen/Kconfig
+++ b/drivers/xen/Kconfig
@@ -241,7 +241,7 @@ config XEN_PRIVCMD
 
 config XEN_ACPI_PROCESSOR
 	tristate "Xen ACPI processor"
-	depends on XEN && XEN_PV_DOM0 && X86 && ACPI_PROCESSOR && CPU_FREQ
+	depends on XEN && XEN_DOM0 && X86 && ACPI_PROCESSOR && CPU_FREQ
 	default m
 	help
 	  This ACPI processor uploads Power Management information to the Xen
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Mon Apr 14 13:38:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 13:38:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.950262.1346645 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4K0b-00049J-PB; Mon, 14 Apr 2025 13:37:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 950262.1346645; Mon, 14 Apr 2025 13:37:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4K0b-00049C-MH; Mon, 14 Apr 2025 13:37:57 +0000
Received: by outflank-mailman (input) for mailman id 950262;
 Mon, 14 Apr 2025 13:37: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=B3Nx=XA=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u4K0a-000496-DS
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 13:37:56 +0000
Received: from NAM12-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam12on20613.outbound.protection.outlook.com
 [2a01:111:f403:2417::613])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id aa159395-1935-11f0-9eae-5ba50f476ded;
 Mon, 14 Apr 2025 15:37:54 +0200 (CEST)
Received: from SA0PR11CA0032.namprd11.prod.outlook.com (2603:10b6:806:d0::7)
 by IA1PR12MB8285.namprd12.prod.outlook.com (2603:10b6:208:3f6::19) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.32; Mon, 14 Apr
 2025 13:37:46 +0000
Received: from SN1PEPF0002636D.namprd02.prod.outlook.com
 (2603:10b6:806:d0:cafe::45) by SA0PR11CA0032.outlook.office365.com
 (2603:10b6:806:d0::7) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.32 via Frontend Transport; Mon,
 14 Apr 2025 13:37:46 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SN1PEPF0002636D.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.8655.12 via Frontend Transport; Mon, 14 Apr 2025 13:37:45 +0000
Received: from localhost (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; Mon, 14 Apr
 2025 08:37:44 -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: aa159395-1935-11f0-9eae-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=R2DJJDCGRJdUixkxAKyKSp2Hg9FeH80fcJ/Ypbf7jEpRFX9BTsbXfNjqegVfv7DNbu9w5Rfj2qhi+eJJ/Fb5PoPUhsuo+T2GmygGzz7ZSVR2eTP6QATG6Zq/Tqg1hfED8QB26trdaVG3qHcFkuvQC32SSriKiMXUDHDNctjQKbcyWw/lpvQnjkGCJAxKLMReqgJ6ps9Dsf/NiKvsowekJh6bWhmGkDPX0GY4Zd5T1m1Ehx4VzUe+989juhcU2K/oALu9+TVS4DKbz1wHQ10Pr3m8bYGn0RaGE0Lg4eVr1DsnhaWBXkTMW/KA6H/hzlhd0lDCmIlvnfLiYIg5/VGksw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=v1ADJvy8ZyG3htA2/I/CSmhaoL1GG8yBZDf7AzyfySc=;
 b=C2B32GgfxfLndyTZurXzyBXbfpB1q1hGj/xui7/OXv8rMy81CNBO6QY1UF3WoBRwigXd0z73jV8h59ojWeg779DkdICjurl/xjbQizIOCEFX/wO3a5U21q2XE6Qw31itdtsmJOf18/F1DS8ycIXVXqUmC3uOGzR6g6/6c8br3XL6c7K+b07ayoMBLjySRjs2ltltwJyuvaojS2IBZsgieeFP1yg2JluBQtr8eqrwrrJ4O0cgLtw1AXuxa8Hko8kUWylgRqp9pKwCnrefKGnp4XQtDVG6fR2peln3MwNt78PpN4EQ/T+Mk5d660ORet5Mr+5QbbEZVAVV13GzFmpUVw==
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=v1ADJvy8ZyG3htA2/I/CSmhaoL1GG8yBZDf7AzyfySc=;
 b=ZTRyATJssS0oMV9EU3GppOUHRo8EwlD64I3XAQGeg5oc9H9VzhfUIuzgGAHKnQk/XS8EEg2gF91BRWZzh1XKYisXizQvfr1P09ij3jYKFMisrGAIaGeZbAqiL98AwSckWcdbAec9vZ2PkPmTMrsGWcgXk3Nj1V1A57SdvU44oD8=
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
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Mon, 14 Apr 2025 14:37:42 +0100
Message-ID: <D96EI9O4XII2.195QNQNT1T3FG@amd.com>
From: Alejandro Vallejo <agarciav@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Jason Andryuk <jason.andryuk@amd.com>, Xenia Ragiadakou
	<xenia.ragiadakou@amd.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, =?utf-8?q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v3 08/16] x86/hyperlaunch: Add helpers to locate
 multiboot modules
X-Mailer: aerc 0.20.1
References: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-9-agarciav@amd.com>
 <fe282aa0-fe2d-49b8-a2aa-325c9825304b@suse.com>
In-Reply-To: <fe282aa0-fe2d-49b8-a2aa-325c9825304b@suse.com>
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: SN1PEPF0002636D:EE_|IA1PR12MB8285:EE_
X-MS-Office365-Filtering-Correlation-Id: 506c17af-8b50-4c12-ec17-08dd7b598a2c
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?TkRkU25LNVBKQS9aQ2ZkMkg3L1dVTGRiV2lWTkRlOEE4c0FqbFVMMC8rZjlL?=
 =?utf-8?B?aG0wTTFmL3M3WlR1cGZMUllEeHVDanVpR01UcjZNWFk1KzlIRmdhazJhdG5H?=
 =?utf-8?B?Mkg0WnN1YnJJZWRzbnhQYTgybTVHV21RZVkwYjg0Y20zQ1g4aTJMQUc1dzAw?=
 =?utf-8?B?NWFiYzVWVWRoZmRNZ2l2QmRzT3djaEQ4TDF1UHcxbkQwUVZFb2ZzMlQ1K0Jq?=
 =?utf-8?B?WlVnVGlWU1g1ZmVRTHBRcDVWbFRjT01JKytnRlNFNGNyek43eUxhY3Nla2p2?=
 =?utf-8?B?Mng0MFp3ZEZyek9ZeVRwNmx5ZFFSYm5nRzR4bUU1amZUaWpYRXJVeFVoSFNv?=
 =?utf-8?B?Q3UyY1hQNzVKREhIUStDQmk2QWpEdllnOHNPWTAwUHR4OENPZERCWVZXWkNJ?=
 =?utf-8?B?ZWFHUlEzWUNYRUpxL0c4Zmp3TTRQdjhZbzBiL09UdHlwTWI5REFSRTQzM1VK?=
 =?utf-8?B?TEVhMEoxd050NGQyZ0FzU0dRR2VSNjhrdHZHNENrMGRDWUZnV3A5WDFvYVBV?=
 =?utf-8?B?VWRISE0yVUZlb3NtQ1hkcG44NlNkSmtERC95clVUaGUwYkVDSkozeExiUTly?=
 =?utf-8?B?TzhRMEZqYksvZnpWc2puUTlnVXVoMnB2Y3YrUWl6MnI1UC9GMkRpL05KVGZ1?=
 =?utf-8?B?RXhHSElVZ1R6RkZRS0UvUVl3QmJzN3VOVW5sN2c3bXlXUTBESjRQazE2RWo5?=
 =?utf-8?B?dDRvamM3U3RuZDI0UVBSNmQ5VDY0anl6bVVteldrYy83SWpQckVuSmJEYXk2?=
 =?utf-8?B?M2gxdGxYL1B6VmhxSlRjYVpSek9FbjBSSlhsVkpNSzFBVlhXWG45N3ZNNy8w?=
 =?utf-8?B?TStNNDNXN2lYVzNvMW9mRXlvU2lFQWw1SWV4WVJPWGJPclcvSE5Ea2k5eFlQ?=
 =?utf-8?B?NlVOcHptZ2p1bWVLajZ2SmdpWDFHc1dmNzdZOXlJTVMzVFQ5QW54S2tDSTVQ?=
 =?utf-8?B?bGxKV2pTeDVtUlk1QklreTZwRmI1WkZBQ00wWFFwbEIySHlJWnVZajgwdFRP?=
 =?utf-8?B?U2xRME45Tjk5dTU4TmR0dS84TFlUVlFqK1RTSlI4aWczbWo3cENJdytOcHcz?=
 =?utf-8?B?anBSbmtXc3F6RkUxbWx1WmdPNkNLSmFIZEhMZjlJRlZtMzJmV1I2UkRoajlM?=
 =?utf-8?B?clYxOHFvLzNIUHRSMUlPc3JnanRmUjhtMWFLWjFjUVp6K0p4amZRbGF3QkNi?=
 =?utf-8?B?bmRqVDN6OFh6d2xiVytadFRCZGlGSHNvS2t6UTBXa0JndHZMbzR3bDhsS0dj?=
 =?utf-8?B?T0FpV1BwOWdnTDA3ODVMMkx4TmlEZjViTmFsQjdqSytFcU40T2VucWtXQ0s0?=
 =?utf-8?B?L2luaGFVbXVnaTM3SGJUSFZlc2pBRERhQ05zT0psVUlNVHZQMzNrSkllMCtS?=
 =?utf-8?B?b0w0UWZub25PaGFldXpvZUs4Vkg1eVRLSS90ZmtzN25RNDZNWjdOSFE4b1Qr?=
 =?utf-8?B?c0Z1KzFiZzhTRTlXMWxNVFNQc29GWU5OQnd6UHRrYlhUZHpBeElHWmZUcXlK?=
 =?utf-8?B?eUVMaG52VVBUVzl3bzFGU2dKV2Y4bWp2T1J5VUcvZFd6UC9ocW5FanJQd0lU?=
 =?utf-8?B?QmUvYzdYVzVyYnpuakY1eS9TVHE0NHVSWFl0VWx2RDBwZ2hha05NWjNYNG4v?=
 =?utf-8?B?NmQySEVVSW5nd290NTNRbVoraTVrSTFyV0NsS3o0M29aRDRhYmIvR0o1QlZJ?=
 =?utf-8?B?OWZncWx4WnJtZFlmSnhuWFZsRVVyL3BQVDAvYXc2YkdlMjNRbkE1T29nQWd6?=
 =?utf-8?B?TWJQUjF4bHdiZzhaK2VRbWJDTGpuckQrRmc3VHo5UE1GWWRGdGxaY3hDNERS?=
 =?utf-8?B?RU1POGdMcWJ5ZUtWcDY0WTVvN3ZudTNCc1RnQVRXcWdnRmh5RThLYjVFdzg5?=
 =?utf-8?B?Nm9vK0NrZTArUHBubldGa3F3RkdaZmhVWnR1YTI3VWxueURaRXJBM2dqTWpG?=
 =?utf-8?B?aXUrY0VJazdybDBXWko0QUptUHl1R2xJbURYTGFRTGE0M0ZJTy8xdkZ5c2lK?=
 =?utf-8?B?ZkxLUmIraGthaWg3VFRQYkhqSHpvQXlEMFBzeFdYWlRmYUozeGtIbVNjb0la?=
 =?utf-8?Q?yaXTJy?=
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: 14 Apr 2025 13:37:45.6202
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 506c17af-8b50-4c12-ec17-08dd7b598a2c
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:
	SN1PEPF0002636D.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB8285

On Thu Apr 10, 2025 at 11:42 AM BST, Jan Beulich wrote:
> On 08.04.2025 18:07, Alejandro Vallejo wrote:
>> --- a/xen/arch/x86/domain-builder/fdt.c
>> +++ b/xen/arch/x86/domain-builder/fdt.c
>> @@ -13,6 +13,148 @@
>> =20
>>  #include "fdt.h"
>> =20
>> +/*
>> + * Unpacks a "reg" property into its address and size constituents.
>> + *
>> + * @param prop          Pointer to an FDT "reg" property.
>> + * @param address_cells Number of 4-octet cells that make up an "addres=
s".
>> + * @param size_cells    Number of 4-octet cells that make up a "size".
>> + * @param p_addr[out]   Address encoded in the property.
>> + * @param p_size[out]   Size encoded in the property.
>> + * @returns             -EINVAL on malformed property, 0 otherwise.
>> + */
>> +static int __init read_fdt_prop_as_reg(const struct fdt_property *prop,
>> +                                       int address_cells, int size_cell=
s,
>> +                                       uint64_t *p_addr, uint64_t *p_si=
ze)
>> +{
>> +    const fdt32_t *cell =3D (const fdt32_t *)prop->data;
>> +    uint64_t addr, size;
>> +
>> +    if ( fdt32_to_cpu(prop->len) !=3D
>> +         (address_cells + size_cells) * sizeof(*cell) )
>> +    {
>> +        printk("  Cannot read reg %lu+%lu from prop len %u\n",
>> +            address_cells * sizeof(*cell), size_cells * sizeof(*cell),
>> +            fdt32_to_cpu(prop->len));
>> +        return -EINVAL;
>> +    }
>> +
>> +    switch ( address_cells ) {
>
> Nit: Brace on its own line please.

Sure

>
>> +    case 1:
>> +        addr =3D fdt32_to_cpu(*cell);
>> +        break;
>> +    case 2:
>> +        addr =3D fdt64_to_cpu(*(const fdt64_t *)cell);
>> +        break;
>> +    default:
>> +        printk("  unsupported sized address_cells\n");
>
> Depending on how likely this or ...
>
>> +        return -EINVAL;
>> +    }
>> +
>> +    cell +=3D address_cells;
>> +    switch ( size_cells ) {
>> +    case 1:
>> +        size =3D fdt32_to_cpu(*cell);
>> +        break;
>> +    case 2:
>> +        size =3D fdt64_to_cpu(*(const fdt64_t *)cell);
>> +        break;
>> +    default:
>> +        printk("  unsupported sized size_cells\n");
>
> ... this path is to be hit, perhaps also log the bogus size? Then again, =
this
> being passed in, isn't it an internal error if the wrong size makes it he=
re?
> I.e. rather use ASSERT_UNREACHABLE()?

*_cells are DTB properties, so it's more of an input error.

Ack to log the sizes, will do.

>
>> +        return -EINVAL;
>> +    }
>> +
>> +    *p_addr =3D addr;
>> +    *p_size =3D size;
>> +
>> +    return 0;
>> +}
>
> The function as a whole looks somewhat similar to fdt_get_reg_prop(). Wha=
t's
> the deal?

The latter shouldn't be there. It's leftover from code motion and a
merge.

>
>> +/*
>> + * Locate a multiboot module given its node offset in the FDT.
>> + *
>> + * The module location may be given via either FDT property:
>> + *     * reg =3D <address, size>
>> + *         * Mutates `bi` to append the module.
>> + *     * module-index =3D <idx>
>> + *         * Leaves `bi` unchanged.
>> + *
>> + * @param fdt           Pointer to the full FDT.
>> + * @param node          Offset for the module node.
>> + * @param address_cells Number of 4-octet cells that make up an "addres=
s".
>> + * @param size_cells    Number of 4-octet cells that make up a "size".
>> + * @param bi[inout]     Xen's representation of the boot parameters.
>> + * @return              -EINVAL on malformed nodes, otherwise
>> + *                      index inside `bi->mods`
>> + */
>> +int __init fdt_read_multiboot_module(const void *fdt, int node,
>> +                                     int address_cells, int size_cells,
>> +                                     struct boot_info *bi)
>
> Functions without callers and non-static ones without declarations are
> disliked by Misra.

Can't do much about it if I want them to stand alone in a single patch.
Otherwise the following ones become quite unwieldy to look at. All I can
say is that this function becomes static and with a caller on the next
patch.

>
>> +{
>> +    const struct fdt_property *prop;
>> +    uint64_t addr, size;
>> +    int ret;
>> +    int idx;
>> +
>> +    ASSERT(!fdt_node_check_compatible(fdt, node, "multiboot,module"));
>> +
>> +    /* Location given as a `module-index` property. */
>> +    prop =3D fdt_get_property(fdt, node, "module-index", NULL);
>> +
>> +    if ( prop )
>> +    {
>> +        if ( fdt_get_property(fdt, node, "reg", NULL) )
>> +        {
>> +            printk("  Location of multiboot,module defined multiple tim=
es\n");
>> +            return -EINVAL;
>> +        }
>> +        return fdt_cell_as_u32((const fdt32_t *)prop->data);
>
> No concerns here of there being less than 4 bytes of data?

v4 moves the property accessors earlier so this is a safe access.

>
>> +    }
>> +
>> +    /* Otherwise location given as a `reg` property. */
>> +    prop =3D fdt_get_property(fdt, node, "reg", NULL);
>> +
>> +    if ( !prop )
>> +    {
>> +        printk("  No location for multiboot,module\n");
>> +        return -EINVAL;
>> +    }
>> +    if ( fdt_get_property(fdt, node, "module-index", NULL) )
>> +    {
>> +        printk("  Location of multiboot,module defined multiple times\n=
");
>> +        return -EINVAL;
>> +    }
>> +
>> +    ret =3D read_fdt_prop_as_reg(prop, address_cells, size_cells, &addr=
, &size);
>> +
>> +    if ( ret < 0 )
>> +    {
>> +        printk("  Failed reading reg for multiboot,module\n");
>> +        return -EINVAL;
>> +    }
>> +
>> +    idx =3D bi->nr_modules + 1;
>
> This at least looks like an off-by-one. If the addition of 1 is really
> intended, I think it needs commenting on.

Seems to be, yes. The underlying array is a bit bizarre. It's sizes as
MAX_NR_BOOTMODS + 1, with the first one being the DTB itself. I guess
the intent was to take it into account, but bi->nr_modules is
initialised to the number of multiboot modules, so it SHOULD be already
taking it into account.

Also, the logic for bounds checking seems... off (because of the + 1 I
mentioned before). Or at least confusing, so I've moved to using
ARRAY_SIZE(bi->mods) rather than explicitly comparing against
MAX_NR_BOOTMODS.

The array is MAX_NR_BOOTMODS + 1 in length, so it's just more cognitive
load than I'm comfortable with.

>
>> +    if ( idx > MAX_NR_BOOTMODS )
>> +    {
>> +        /*
>> +         * MAX_NR_BOOTMODS cannot exceed the max for MB1, represented b=
y 32bits,
>> +         * thus the cast down to a u32 will be safe due to the prior ch=
eck.
>> +         */
>> +        BUILD_BUG_ON(MAX_NR_BOOTMODS >=3D (uint64_t)UINT32_MAX);
>
> Because of idx being a signed quantity, isn't INT_MAX the required upper
> bound? The latest then the somewhat odd cast should also be possible to
> drop.

It is, yes. Having a theoretical limit of 2**31-1 rather than 2**32-1 doesn=
't worry
me in the slightest.

>
>> +        printk("  idx %d exceeds maximum boot modules\n", idx);
>
> Perhaps include STR(MAX_NR_BOOTMODS) as well?
I'll print ARRAY_SIZE(bi->mods) instead. Otherwise it will be very
confusing.

>
>> --- a/xen/include/xen/libfdt/libfdt-xen.h
>> +++ b/xen/include/xen/libfdt/libfdt-xen.h
>> @@ -13,6 +13,63 @@kkk
>> =20
>>  #include <xen/libfdt/libfdt.h>
>> =20
>> +static inline int __init fdt_cell_as_u32(const fdt32_t *cell)
>
> Why plain int here, but ...
>
>> +{
>> +    return fdt32_to_cpu(*cell);
>> +}
>> +
>> +static inline uint64_t  __init fdt_cell_as_u64(const fdt32_t *cell)
>
> ... a fixed-width and unsigned type here? Question is whether the former
> helper is really warranted.
>
> Also nit: Stray double blank.
>
>> +{
>> +    return ((uint64_t)fdt32_to_cpu(cell[0]) << 32) | fdt32_to_cpu(cell[=
1]);
>
> That is - uniformly big endian?

These helpers are disappearing, so it doesn't matter. This is basically
an open coded:

  fdt64_to_cpu(*(const fdt64_t *)fdt32)

And, yes. DTBs are standardised as having big-endian properties, for
better or worse :/

>
>> +}
>
> Marking such relatively generic inline functions __init is also somewhat
> risky.=20

They were originally in domain-builder/fdt.c and moved here as a result
of a request to have them on libfdt. libfdt proved to be somewhat
annoying because it would be hard to distinguish accessors for the
flattened and the unflattened tree.

I'd personally have them in domain-builder instead, where they are used.
Should they be needed somewhere else, we can always fator them out
somewhere else.

Thoughts?

>
>> +/*
>> + * Property: reg
>> + *
>> + * Defined in Section 2.3.6 of the Device Tree Specification is the "re=
g"
>> + * standard property. The property is a prop-encoded-array that is enco=
ded as
>> + * an arbitrary number of (address, size) pairs.  We only extract a sin=
gle
>> + * pair since that is what is used in practice.
>> + */
>> +static inline int __init fdt_get_reg_prop(
>> +    const void *fdt, int node, unsigned int addr_cells, unsigned int si=
ze_cells,
>> +    uint64_t *addr, uint64_t *size)
>> +{
>> +    int ret;
>> +    const struct fdt_property *prop;
>> +    fdt32_t *cell;
>> +
>> +    /* FDT spec max size is 4 (128bit int), but largest arch int size i=
s 64 */
>> +    if ( size_cells > 2 || addr_cells > 2 )
>> +        return -EINVAL;
>> +
>> +    prop =3D fdt_get_property(fdt, node, "reg", &ret);
>> +    if ( !prop || ret < sizeof(u32) )
>
> No uses of u32 et al in new code please. Question anyway is whether this =
isn't
> meant to be sizeof(*cell) like you have it ...
>
>> +        return ret < 0 ? ret : -EINVAL;
>> +
>> +    if ( fdt32_to_cpu(prop->len) !=3D
>> +	 ((size_cells + addr_cells) * sizeof(*cell)) )
>
> ... here. Or maybe it's to be sizeof(prop->len)?
>
> Also nit: Hard tab slipped in.
>
>> +        return -EINVAL;
>> +
>> +    cell =3D (fdt32_t *)prop->data;
>> +
>> +    /* read address field */
>> +    if ( addr_cells =3D=3D 1 )
>> +        *addr =3D fdt_cell_as_u32(cell);
>> +    else
>> +        *addr =3D fdt_cell_as_u64(cell);
>> +
>> +    cell +=3D addr_cells;
>> +
>> +    /* read size field */
>> +    if ( size_cells =3D=3D 1 )
>> +        *size =3D fdt_cell_as_u32(cell);
>> +    else
>> +        *size =3D fdt_cell_as_u64(cell);
>> +
>> +    return 0;
>> +}
>
> Does this really want/need to be an inline function?
>
> Jan

This function is gone in v4.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Mon Apr 14 13:51:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 13:51:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.950290.1346655 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4KDl-0000qW-4D; Mon, 14 Apr 2025 13:51:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 950290.1346655; Mon, 14 Apr 2025 13:51: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 1u4KDk-0000qP-WA; Mon, 14 Apr 2025 13:51:32 +0000
Received: by outflank-mailman (input) for mailman id 950290;
 Mon, 14 Apr 2025 13:51: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=LA9o=XA=suse.de=tzimmermann@srs-se1.protection.inumbo.net>)
 id 1u4KDj-0000qJ-2M
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 13:51:31 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 909b0822-1937-11f0-9ffb-bf95429c2676;
 Mon, 14 Apr 2025 15:51:29 +0200 (CEST)
Received: from imap1.dmz-prg2.suse.org (unknown [10.150.64.97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id 43B451F812;
 Mon, 14 Apr 2025 13:51:28 +0000 (UTC)
Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 0A472136A7;
 Mon, 14 Apr 2025 13:51:28 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap1.dmz-prg2.suse.org with ESMTPSA id oG7/AOAS/We6BQAAD6G6ig
 (envelope-from <tzimmermann@suse.de>); Mon, 14 Apr 2025 13:51:28 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 909b0822-1937-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa;
	t=1744638688; 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=v5o1jrP68r7wTT/wB97zJmtcAIb58PoJZS1sfRVdP9c=;
	b=Nhx+fyPbhPetg4eaWXXZ8shhxTZ8SVwW5hU16yKi8Shj293IPJjyPxPmGQV6nZ2XpOHtVy
	biZC4JdUQ9k3pWCc3d2VK2Gseg7jnfRYcsec2x5QLbCJhc33IxbJhTbeAxfUeKl/WyjRRg
	1D6nLzJWdwYme17hfcsJlXpqBaRyKm8=
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de;
	s=susede2_ed25519; t=1744638688;
	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=v5o1jrP68r7wTT/wB97zJmtcAIb58PoJZS1sfRVdP9c=;
	b=yDjPBNT1gGOppDZ/9qi6QOcrvIkS5cTFhCPONBq55AH7vRQ5LFDvbHOvDZXsQpkhtqSBag
	6CmGL31yVFepeACA==
Authentication-Results: smtp-out2.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa;
	t=1744638688; 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=v5o1jrP68r7wTT/wB97zJmtcAIb58PoJZS1sfRVdP9c=;
	b=Nhx+fyPbhPetg4eaWXXZ8shhxTZ8SVwW5hU16yKi8Shj293IPJjyPxPmGQV6nZ2XpOHtVy
	biZC4JdUQ9k3pWCc3d2VK2Gseg7jnfRYcsec2x5QLbCJhc33IxbJhTbeAxfUeKl/WyjRRg
	1D6nLzJWdwYme17hfcsJlXpqBaRyKm8=
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de;
	s=susede2_ed25519; t=1744638688;
	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=v5o1jrP68r7wTT/wB97zJmtcAIb58PoJZS1sfRVdP9c=;
	b=yDjPBNT1gGOppDZ/9qi6QOcrvIkS5cTFhCPONBq55AH7vRQ5LFDvbHOvDZXsQpkhtqSBag
	6CmGL31yVFepeACA==
From: Thomas Zimmermann <tzimmermann@suse.de>
To: airlied@gmail.com,
	simona@ffwll.ch,
	mripard@kernel.org,
	maarten.lankhorst@linux.intel.com
Cc: dri-devel@lists.freedesktop.org,
	Thomas Zimmermann <tzimmermann@suse.de>,
	Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>,
	xen-devel@lists.xenproject.org
Subject: [PATCH 07/11] drm/xen: Test for imported buffers with drm_gem_is_imported()
Date: Mon, 14 Apr 2025 15:48:14 +0200
Message-ID: <20250414134821.568225-7-tzimmermann@suse.de>
X-Mailer: git-send-email 2.49.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Level: 
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)[];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	FROM_EQ_ENVFROM(0.00)[];
	ARC_NA(0.00)[];
	MIME_TRACE(0.00)[0:+];
	FROM_HAS_DN(0.00)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.de:email,suse.de:mid,imap1.dmz-prg2.suse.org:helo];
	FREEMAIL_TO(0.00)[gmail.com,ffwll.ch,kernel.org,linux.intel.com];
	RCVD_TLS_ALL(0.00)[];
	RCVD_COUNT_TWO(0.00)[2];
	RCPT_COUNT_SEVEN(0.00)[8];
	FUZZY_BLOCKED(0.00)[rspamd.com];
	TO_DN_SOME(0.00)[];
	DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519];
	FREEMAIL_ENVRCPT(0.00)[gmail.com]
X-Spam-Score: -2.80
X-Spam-Flag: NO

Instead of testing import_attach for imported GEM buffers, invoke
drm_gem_is_imported() to do the test. The helper tests the dma_buf
itself while import_attach is just an artifact of the import. Prepares
to make import_attach optional.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Cc: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Cc: xen-devel@lists.xenproject.org
---
 drivers/gpu/drm/xen/xen_drm_front_gem.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/xen/xen_drm_front_gem.c b/drivers/gpu/drm/xen/xen_drm_front_gem.c
index 63112ed975c4..62a83c36fce8 100644
--- a/drivers/gpu/drm/xen/xen_drm_front_gem.c
+++ b/drivers/gpu/drm/xen/xen_drm_front_gem.c
@@ -203,7 +203,7 @@ void xen_drm_front_gem_free_object_unlocked(struct drm_gem_object *gem_obj)
 {
 	struct xen_gem_object *xen_obj = to_xen_gem_obj(gem_obj);
 
-	if (xen_obj->base.import_attach) {
+	if (drm_gem_is_imported(&xen_obj->base)) {
 		drm_prime_gem_destroy(&xen_obj->base, xen_obj->sgt_imported);
 		gem_free_pages_array(xen_obj);
 	} else {
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Mon Apr 14 13:53:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 13:53:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.950301.1346664 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4KFq-0001xR-Du; Mon, 14 Apr 2025 13:53:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 950301.1346664; Mon, 14 Apr 2025 13: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 1u4KFq-0001xK-BD; Mon, 14 Apr 2025 13:53:42 +0000
Received: by outflank-mailman (input) for mailman id 950301;
 Mon, 14 Apr 2025 13: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=bgKV=XA=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u4KFp-0001wy-1g
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 13:53:41 +0000
Received: from mail-pg1-x531.google.com (mail-pg1-x531.google.com
 [2607:f8b0:4864:20::531])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id de1ce9ba-1937-11f0-9eae-5ba50f476ded;
 Mon, 14 Apr 2025 15:53:40 +0200 (CEST)
Received: by mail-pg1-x531.google.com with SMTP id
 41be03b00d2f7-af91fc1fa90so4003474a12.0
 for <xen-devel@lists.xenproject.org>; Mon, 14 Apr 2025 06:53:40 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 98e67ed59e1d1-306df3ffc38sm11085485a91.40.2025.04.14.06.53.36
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 14 Apr 2025 06:53:37 -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: de1ce9ba-1937-11f0-9eae-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744638818; x=1745243618; 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=yF3TQI9kFpPlllrK3uiAM8glsQvPwTQUXhruOt8PHMI=;
        b=U7EOVqidnRfQF6nQitZtE4V2oBeafxwI/Xbg/WT5FB9TceVHi0l7+4xx6/x1hI8MEa
         7OYQiBteQuXzMZ/U/MWFieUrGiP6RWHoGndWzeavRKNoy15pHit2rSuYUFlw25w5sDh9
         g0/2+lZF75WRoShM971q8uwekuz0wWbstwDi8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744638818; x=1745243618;
        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=yF3TQI9kFpPlllrK3uiAM8glsQvPwTQUXhruOt8PHMI=;
        b=bCcyvy0HeID4Vqpb5EsadDAFFuy488hqWyZFEL8XISdItWhbWAe1x+x93mZWz3HO2c
         Vat/0rkrSHWtN4CisdrWujyZH3IRh8QB2aIYvGtD7WfQDj2xdUFBC0RKPgshIYcOcLHW
         4jHQcX99rxwpe3ts3JWJBNNe3JabvqGep5Pt0R5jWquuVfrMfzFXbeRdDYAsJ99c5lVI
         brfKXyJrGMhzHnjNTIHAmrvEGgfESMzQdW/dpVmpS9lAv0Jdnf/b7WWgg4bVLd88UNEY
         UhzbJJ+mpe7fL4E16sLvnT3Txoy/p2kloyK3QR5pDcxcmbJEryDJMoWz5nnIWM+CUuW7
         tvLw==
X-Forwarded-Encrypted: i=1; AJvYcCW5g0CxutcRnTIY0FQO18nVIr43N2gldntoFIwdxISjh8CYES6x6Ok6aUTxJUCq/RVkbIEr3rfSdaE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzK8akj4W0Cr59sgfIZ35F8hHHPwpAKIZMXcuN9G7g8SA7Qqdm0
	1XIaneZFpAld7gbeZvyu3FxdyYvqKtDSAP0WvRuZL/o1tyPYmLRYzFLPgQ0pF1M=
X-Gm-Gg: ASbGncvgZ0hayO4y6YV+X7V4emxAeF5EDm0DEqs4k8jPo06kbNFv+mjeMipDTzXccCf
	74Z8TGUIRry+nNpoL4sE+ZiAdhrSy5YUa+EKVdLzrBOHduRLX1pDLe0Zjho1uMb14i97FsrlZTe
	vgFiBrba4pPpGeWO86OTyad+46llLnE7SmvDmAZuxp0IsyCoTjlbZ60O8n6OZY6jK4+sZBKOJLX
	Xe+M/4TxNEp97zMypgK0v3oyEdWvygX32kl8XVLDghkM7Wl+99PrKrLxakTv80lqf2priWWXVjw
	8zu52DFonNbAiVmXYk/Msa/q3bkyb6AofWTq9qzVieqJLg==
X-Google-Smtp-Source: AGHT+IGBCo8s/124k9FxEnVk7VVQnYaWP6obtft0y9kFZrBTaJF+alE1n1I5vlX95WXIbClyluDWuA==
X-Received: by 2002:a17:90b:4d0c:b0:2fc:c262:ef4b with SMTP id 98e67ed59e1d1-30823645d5dmr19991048a91.18.1744638818081;
        Mon, 14 Apr 2025 06:53:38 -0700 (PDT)
Date: Mon, 14 Apr 2025 15:53:32 +0200
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/5] x86/hvm: fix handling of accesses to partial r/o
 MMIO pages
Message-ID: <Z_0TXKMe6tfrYR9T@macbook.lan>
References: <20250411105411.22334-1-roger.pau@citrix.com>
 <20250411105411.22334-4-roger.pau@citrix.com>
 <eaf5f71b-2c56-4bd8-a45f-35280af16466@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <eaf5f71b-2c56-4bd8-a45f-35280af16466@suse.com>

On Mon, Apr 14, 2025 at 08:33:44AM +0200, Jan Beulich wrote:
> On 11.04.2025 12:54, Roger Pau Monne wrote:
> > The current logic to handle accesses to MMIO pages partially read-only is
> > based on the (now removed) logic used to handle accesses to the r/o MMCFG
> > region(s) for PVH v1 dom0.  However that has issues when running on AMD
> > hardware, as in that case the guest linear address that triggered the fault
> > is not provided as part of the VM exit.  This caused
> > mmio_ro_emulated_write() to always fail before calling
> > subpage_mmio_write_emulate() when running on AMD and called from an HVM
> > context.
> > 
> > Take a different approach and convert the handling of partial read-only
> > MMIO page accesses into an HVM MMIO ops handler, as that's the more natural
> > way to handle this kind of emulation for HVM domains.
> > 
> > This allows getting rid of hvm_emulate_one_mmio() and it's single cal site
> > in hvm_hap_nested_page_fault().
> > 
> > Note a small adjustment is needed to the `pf-fixup` dom0 PVH logic: avoid
> > attempting to fixup faults resulting from accesses to read-only MMIO
> > regions, as handling of those accesses is now done by handle_mmio().
> > 
> > Fixes: 33c19df9a5a0 ('x86/PCI: intercept accesses to RO MMIO from dom0s in HVM containers')
> > Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> > ---
> > The fixes tag is maybe a bit wonky, it's either this or:
> > 
> > 8847d6e23f97 ('x86/mm: add API for marking only part of a MMIO page read only')
> > 
> > However the addition of subpage r/o access handling to the existing
> > mmio_ro_emulated_write() function was done based on the assumption that the
> > current code was working - which turned out to not be the case for AMD,
> > hence my preference for blaming the commit that actually introduced the
> > broken logic.
> 
> I agree.
> 
> > ---
> >  xen/arch/x86/hvm/emulate.c             | 47 +-------------
> >  xen/arch/x86/hvm/hvm.c                 | 89 +++++++++++++++++++++++---
> 
> It's quite a bit of rather special code you add to this catch-all file. How
> about introducing a small new one, e.g. mmio.c (to later maybe become home
> to some further stuff)?

Yes, I didn't find any suitable place, I was also considering
hvm/io.c or hvm/intercept.c, but none looked very good TBH.

The main benefit of placing it in hvm.c is that the functions can all
be static and confined to hvm.c as it's only user.

> > --- a/xen/arch/x86/hvm/emulate.c
> > +++ b/xen/arch/x86/hvm/emulate.c
> > @@ -370,7 +370,8 @@ static int hvmemul_do_io(
> >          /* If there is no suitable backing DM, just ignore accesses */
> >          if ( !s )
> >          {
> > -            if ( is_mmio && is_hardware_domain(currd) )
> > +            if ( is_mmio && is_hardware_domain(currd) &&
> > +                 !rangeset_contains_singleton(mmio_ro_ranges, PFN_DOWN(addr)) )
> 
> I think this needs a brief comment - it otherwise looks misplaced here.
> 
> > @@ -585,9 +585,81 @@ static int cf_check hvm_print_line(
> >      return X86EMUL_OKAY;
> >  }
> >  
> > +static int cf_check subpage_mmio_accept(struct vcpu *v, unsigned long addr)
> > +{
> > +    p2m_type_t t;
> > +    mfn_t mfn = get_gfn_query_unlocked(v->domain, addr, &t);
> > +
> > +    return !mfn_eq(mfn, INVALID_MFN) && t == p2m_mmio_direct &&
> > +           !!subpage_mmio_find_page(mfn);
> 
> The !! isn't needed here, is it?

IIRC clang complained about conversion from pointer to integer without
a cast, but maybe that was before adding the further conditions here.

> > +}
> > +
> > +static int cf_check subpage_mmio_read(
> > +    struct vcpu *v, unsigned long addr, unsigned int len, unsigned long *data)
> > +{
> > +    struct domain *d = v->domain;
> > +    p2m_type_t t;
> > +    mfn_t mfn = get_gfn_query(d, addr, &t);
> > +    struct subpage_ro_range *entry;
> > +    volatile void __iomem *mem;
> > +
> > +    *data = ~0UL;
> > +
> > +    if ( mfn_eq(mfn, INVALID_MFN) || t != p2m_mmio_direct )
> > +    {
> > +        put_gfn(d, addr);
> > +        return X86EMUL_RETRY;
> > +    }
> > +
> > +    entry = subpage_mmio_find_page(mfn);
> > +    if ( !entry )
> > +    {
> > +        put_gfn(d, addr);
> > +        return X86EMUL_RETRY;
> > +    }
> > +
> > +    mem = subpage_mmio_map_page(entry);
> > +    if ( !mem )
> > +    {
> > +        put_gfn(d, addr);
> > +        gprintk(XENLOG_ERR, "Failed to map page for MMIO read at %#lx\n",
> > +                mfn_to_maddr(mfn) + PAGE_OFFSET(addr));
> 
> Makes me wonder whether the function parameter wouldn't better be named
> "curr" and the local variable "currd", to reflect that this log message
> will report appropriate context.

Sure, can adjust.

> Would also logging the guest physical address perhaps be worthwhile here?

Possibly, my first apporahc was to print gfn -> mfn, but ended up
copying the same message from  subpage_mmio_write_emulate() for
symmetry reasons.

> > +        return X86EMUL_OKAY;
> > +    }
> > +
> > +    *data = read_mmio(mem + PAGE_OFFSET(addr), len);
> > +
> > +    put_gfn(d, addr);
> > +    return X86EMUL_OKAY;
> > +}
> > +
> > +static int cf_check subpage_mmio_write(
> > +    struct vcpu *v, unsigned long addr, unsigned int len, unsigned long data)
> > +{
> > +    struct domain *d = v->domain;
> > +    p2m_type_t t;
> > +    mfn_t mfn = get_gfn_query(d, addr, &t);
> > +
> > +    if ( mfn_eq(mfn, INVALID_MFN) || t != p2m_mmio_direct )
> > +    {
> > +        put_gfn(d, addr);
> > +        return X86EMUL_RETRY;
> > +    }
> > +
> > +    subpage_mmio_write_emulate(mfn, PAGE_OFFSET(addr), data, len);
> > +
> > +    put_gfn(d, addr);
> > +    return X86EMUL_OKAY;
> > +}
> 
> Unlike the read path this doesn't return RETRY when subpage_mmio_find_page()
> fails (indicating something must have changed after "accept" said yes).

Yeah, I've noticed this, but didn't feel like modifying
subpage_mmio_write_emulate() for this.  The list of partial r/o MMIO
pages cannot change after system boot, so accept returning yes and not
finding a page here would likely warrant an ASSERT_UNRECHABLE().

Would you like me to modify subpage_mmio_write_emulate to make it
return an error code?

> > @@ -1981,7 +2056,9 @@ int hvm_hap_nested_page_fault(paddr_t gpa, unsigned long gla,
> >       */
> >      if ( (p2mt == p2m_mmio_dm) ||
> >           (npfec.write_access &&
> > -          (p2m_is_discard_write(p2mt) || (p2mt == p2m_ioreq_server))) )
> > +          (p2m_is_discard_write(p2mt) || (p2mt == p2m_ioreq_server) ||
> > +           /* MMIO entries can be r/o if the target mfn is in mmio_ro_ranges. */
> > +           (p2mt == p2m_mmio_direct))) )
> >      {
> >          if ( !handle_mmio_with_translation(gla, gfn, npfec) )
> >              hvm_inject_hw_exception(X86_EXC_GP, 0);
> 
> Aren't we handing too many things to handle_mmio_with_translation() this
> way? At the very least you're losing ...
> 
> > @@ -2033,14 +2110,6 @@ int hvm_hap_nested_page_fault(paddr_t gpa, unsigned long gla,
> >          goto out_put_gfn;
> >      }
> >  
> > -    if ( (p2mt == p2m_mmio_direct) && npfec.write_access && npfec.present &&
> 
> ... the .present check.

Isn't the p2mt == p2m_mmio_direct check already ensuring the entry is
present?  Otherwise it's type would be p2m_invalid or p2m_mmio_dm?

It did seem to me the other checks in this function already assume
that by having a valid type the entry is present.

> I'm also concerned of e.g. VT-x'es APIC access MFN, which is
> p2m_mmio_direct.

But that won't go into hvm_hap_nested_page_fault() when using
cpu_has_vmx_virtualize_apic_accesses (and thus having an APIC page
mapped as p2m_mmio_direct)?

It would instead be an EXIT_REASON_APIC_ACCESS vmexit which is handled
differently?

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Apr 14 13:57:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 13:57:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.950314.1346674 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4KJC-0002Wy-TG; Mon, 14 Apr 2025 13:57:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 950314.1346674; Mon, 14 Apr 2025 13: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 1u4KJC-0002Wr-QT; Mon, 14 Apr 2025 13:57:10 +0000
Received: by outflank-mailman (input) for mailman id 950314;
 Mon, 14 Apr 2025 13: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=B3Nx=XA=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u4KJB-0002Wl-D7
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 13:57:09 +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 59d8b5d9-1938-11f0-9eae-5ba50f476ded;
 Mon, 14 Apr 2025 15:57:07 +0200 (CEST)
Received: from CH0PR04CA0066.namprd04.prod.outlook.com (2603:10b6:610:74::11)
 by IA1PR12MB7566.namprd12.prod.outlook.com (2603:10b6:208:42e::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.35; Mon, 14 Apr
 2025 13:57:02 +0000
Received: from CH2PEPF0000009A.namprd02.prod.outlook.com
 (2603:10b6:610:74:cafe::98) by CH0PR04CA0066.outlook.office365.com
 (2603:10b6:610:74::11) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.34 via Frontend Transport; Mon,
 14 Apr 2025 13:57:02 +0000
Received: from SATLEXMB04.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.8655.12 via Frontend Transport; Mon, 14 Apr 2025 13:57:01 +0000
Received: from localhost (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; Mon, 14 Apr
 2025 08:57:00 -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: 59d8b5d9-1938-11f0-9eae-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=BJqIgcnrLhemk/hpqOaittUiRxnKO8ly25oS21JTl/k9ggJnQbAseX9AGhYd2GNUjsrTlub0o367a+hOcX5mruo36d10ElLF+c/YueiIWZzGdEXxBbOEnH0/gJQ1OV83EvtouecK1p861XON6d/Ie33d/ZEN8WRm+QLSfPJ+KDwvaAXK88o1uqsPBe1VDn6AZyxKCxE9MEzdCHZOiudqeBV4gs+Fb+ptco1dvLylp9Owxe5+kwj8NCdwUKpju9g6ICCQus6CwOY2U+vjBJFLV6w8rxoRCXDN9rR1VwkMD8Wbu5IGJuQ1AfUUjb0AApNFEtHOtAjuc32I/Ecmc/JD8g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=sbNS90GH77QgcvCP4HBUX642LcmofTaBSVyHvAa3zBY=;
 b=AhOmC8EWxXThyyAQLVAdbAqbyUd37Ht3kh09/c/aptGOT90ruPeUz9CNaWc4bXifUzodkRK4+yTboWEPonVspWRDMV0ldq6pnW2FTipHag9gqVkceTn/BmqkKgEOCbglTkrX6N6kEuEZ48QaMdZjCdXN+lheziMl28Sp0tFWykdldfERKg6AkrzWnFmIaNuq2Kkdkv3JgA3zbb/BBpuFQL3GkYTa44+fvEjmz6msiDgQdMYK0tPXjudxcABdQhpFsCBTLDn8vtEj8fdnLvg0WD5o3bDJs/4gGmZ3CFxiMJHt73g6s6ZEuygmvVNPSV430ss+JEGU89HA+zyFFiVpKg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=proton.me 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=sbNS90GH77QgcvCP4HBUX642LcmofTaBSVyHvAa3zBY=;
 b=roh+p+9oYE6GR6zPsSbDZV3/XDMG2ew+2Y8weDnpKHiWSU+TpiGUkvovt+pvBHEMr76gcu4qAszAOhxUdkOGA5datzsXQMxE0nnnorbp/lHx086tH7JtLwAmS6Pfp2+UUZ/qHk7BC+uws0u4yj2H0Pv+rl8Llt2aJifV2fzIDeM=
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
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Mon, 14 Apr 2025 14:56:58 +0100
Message-ID: <D96EX0QNDA51.1KN145E8H1PCI@amd.com>
CC: <xen-devel@lists.xenproject.org>, "Daniel P. Smith"
	<dpsmith@apertussolutions.com>, Jason Andryuk <jason.andryuk@amd.com>, "Xenia
 Ragiadakou" <xenia.ragiadakou@amd.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Michal Orzel <michal.orzel@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>
Subject: Re: [PATCH v3 09/16] x86/hyperlaunch: locate dom0 kernel with
 hyperlaunch
From: Alejandro Vallejo <agarciav@amd.com>
To: Denis Mukhin <dmkhn@proton.me>
X-Mailer: aerc 0.20.1
References: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-10-agarciav@amd.com>
 <DSF977mG3NYzAt3ivBQ4eG8vpcpUtHkruh1kwWNMEpmV4YretAAOz5B3bIdJox_2MxVZvoKvrQ3Xwx8z_MMHHM-lj7JYUx00v79nQcuu6ic=@proton.me>
In-Reply-To: <DSF977mG3NYzAt3ivBQ4eG8vpcpUtHkruh1kwWNMEpmV4YretAAOz5B3bIdJox_2MxVZvoKvrQ3Xwx8z_MMHHM-lj7JYUx00v79nQcuu6ic=@proton.me>
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: CH2PEPF0000009A:EE_|IA1PR12MB7566:EE_
X-MS-Office365-Filtering-Correlation-Id: 98d919d5-6626-4462-41ea-08dd7b5c3b6b
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?V0xJRmJIMjJxdjhrVFBxTU1WWjNqcDFKQTJiWmNoWmNadER2Z01lQmZUWUxZ?=
 =?utf-8?B?TU8rZzlkcDduZmpiRi9EK2lOcy9BZGR5UTNxSzlldTJ4VkpacC9OTzlUcVph?=
 =?utf-8?B?MDhtOStyZWQzdyt5TFNuN21TZ1A0ZFlXaFg2T0xXSFMvQ1BlNlFLR0hRYUpD?=
 =?utf-8?B?aTJYOWlkeEJmcmFXaXlVU0syNTVBMC8zTkh2SmFnSndmQWFZQml1a1FWQ2JF?=
 =?utf-8?B?UG1TamhMMW5nci9mY1NjTDQwZjV2UW03c24rRC9GbDJqdDNLTDVuSHcvZjZI?=
 =?utf-8?B?dnhXSDhFQUt5SXVzalpXZkpLT2U3V2g1N2hucWQxMzJuT2dENEd2N2dMcW9V?=
 =?utf-8?B?UjhYUG5GZFhnSmsxaUVHa0NmblpJZ01aMlk5Y1JkcncyUldoSmNyRkFHSmtY?=
 =?utf-8?B?SjZjY2c3QndYSVFDVDBQV1MzcXZTMWd5cDA0VUhTcW5pTHcxajZNcEFlQzZ4?=
 =?utf-8?B?eElINmlvajFZWkEzSy9TTldYaSt4ZDZHTWs2RmVBd0dZYm00OGk3a3RKd3oy?=
 =?utf-8?B?cWkzSmRaZ3ZlME9mQm0vbTBPRks4Qi9DdG5iaEhEcGRYdjB3bXN4ZXR2MkZ0?=
 =?utf-8?B?YWJIQitWQ3lnVUVxRG9NeldOREQvLzhlS2pydGFKWkYxVE9DS1lnay9ONlR5?=
 =?utf-8?B?Um1PMVlzRzhQNjdqenNBUGFaeDMrL3ZCaFVXRmVGVE96MGFMc1JQQVA2Yndu?=
 =?utf-8?B?ckZubXBGWE1jV1Q5VlE3UERqOTRLaU5oWjJJTmRtc1pnN2xML2hidWk4Q3dw?=
 =?utf-8?B?ZmNUcG0vdlE4bk1UU2c3VFBoMUtSK2VWbk9tSmhQWHNNNnpwK3FiM1VVbnFP?=
 =?utf-8?B?RjRKWGdQUHdSSDRBSUlFNWtqTFJJL29LSXJBNFk3amU4YVgyNVVSYzFMbTlW?=
 =?utf-8?B?QnRRcmgvNzAxVHQyVnRDeUdVOHI3YW05SEdHb1M3cmJvZzNHRFZIQjNLR0FD?=
 =?utf-8?B?akcyM3NkUjRwUFNPUTYxRGlHanZnU1pVTGowUTI0V1lMVkhJbUZvaWNMYUJs?=
 =?utf-8?B?VmVGSXRwWmxKbmdJcGR5UHJSeXAwb2pxVjZaa3lnZjFoOWx5SS9oN3RLSEFV?=
 =?utf-8?B?WmgzOHRHRVBlaWJ5QWpocm5ZWHk0Y1hOU2JZZDU5QkxWR3ZSdjI4MlY4Sld1?=
 =?utf-8?B?VHprVExQZEVhQkxxMWJZaGNpNnRPUktvS3BiT1BqaDloZ2JlWUtCT1VnL0t0?=
 =?utf-8?B?NmlXOEJjUjBaWXdFeUs1aUQ0QVRjMklQZWJ4dENLTE1EVXRoMlF6Z3JTcml3?=
 =?utf-8?B?ZFpTMXB3dnQ0Nk5sUjVmbFNsTlplWkEyUWZRbWU2TWp5L244ekVrN05BNzJY?=
 =?utf-8?B?enRGcGVyenZGTVltQlJnZ2FlQUt5WEhTKzJCUjAyOStqUjgrcllIS05rZnVl?=
 =?utf-8?B?bGFEamJuSC96YzJUcEhham5zR092NXJ0QjBseVl4V2JPSnBCdS85TmZ1NWNr?=
 =?utf-8?B?c3ZJa3VMOXNTYytSeWZpZ3o1RjlqZUR4U1JmMVlwV0FYZzlicEFoelhYSmI4?=
 =?utf-8?B?OFovUkhxWTRtNWR0dzZkcWI5UHhVcE9NTjJxRTJZbEsxN3VRYUNDOVlseDhu?=
 =?utf-8?B?REhRTVRuQ1FkZmRRdkFPd2lmeUJSTHhnYzFMdHVWYTNmSXNuRGFqZGlXR0pQ?=
 =?utf-8?B?d3QxTGk1bHFYZUFaZk52UDdHU0lkZ3BwWmJMUW5tdHc2OFlxSmsxUkQ1T1hG?=
 =?utf-8?B?S2hMcVZienk2OVltdjFtR2RPWENsRFFBVXdXVmRoa3RFMXdjVk11WEtVVFho?=
 =?utf-8?B?SHU1bHRNLzRobFJ2ZWFQN0hNcDVqdkJ4RUhwSVptVlZ4SDY2T21Jczh1RURy?=
 =?utf-8?B?S1h3dld5OVJpOTN6TGFpd20xSmw5Q25lK2UzakRKWXpibVNuNnVPK3Y2T0dM?=
 =?utf-8?B?YjhRbXVyUUNUSVE3bmxnRVFiWUxUdURacHErK3QwUkV2Y3BjZWhza21iWnVN?=
 =?utf-8?B?dVVleEZsUmptTGg0WEtiTUVoR3V4TklBU1NhbjJTdlo4bUZ6N09BU3lFSVE4?=
 =?utf-8?B?OCtCSjVBbkVzdGwxUERNTUdjMEQxbkVXSmlQTVovYkNqY1U3bVhBN2NNWUtQ?=
 =?utf-8?Q?0Sgvbn?=
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: 14 Apr 2025 13:57:01.9946
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 98d919d5-6626-4462-41ea-08dd7b5c3b6b
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:
	CH2PEPF0000009A.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB7566

On Wed Apr 9, 2025 at 10:24 PM BST, Denis Mukhin wrote:
> On Tuesday, April 8th, 2025 at 9:07 AM, Alejandro Vallejo <agarciav@amd.c=
om> wrote:
>
>>=20
>>=20
>> From: "Daniel P. Smith" dpsmith@apertussolutions.com
>>=20
>>=20
>> Look for a subnode of type `multiboot,kernel` within a domain node. If
>> found, locate it using the multiboot module helper to generically ensure
>> it lives in the module list. If the bootargs property is present and
>> there was not an MB1 string, then use the command line from the device
>> tree definition.
>>=20
>> Signed-off-by: Daniel P. Smith dpsmith@apertussolutions.com
>>=20
>> Signed-off-by: Jason Andryuk jason.andryuk@amd.com
>>=20
>> Signed-off-by: Alejandro Vallejo agarciav@amd.com
>>=20
>> ---
>> v3:
>> * Add const to fdt
>> * Remove idx =3D=3D NULL checks
>> * Add BUILD_BUG_ON for MAX_NR_BOOTMODS fitting in a uint32_t
>> * Remove trailing ) from printks
>> * Return ENODATA for missing kernel
>> * Re-work "max domains" warning and print limit
>> * fdt_cell_as_u32/directly return values
>> * Remove "pairs" looping from fdt_get_reg_prop() and only grab 1.
>> * Use addr_cells and size_cells
>> ---
>> xen/arch/x86/domain-builder/core.c | 11 ++++++
>> xen/arch/x86/domain-builder/fdt.c | 57 ++++++++++++++++++++++++++++++
>> xen/arch/x86/setup.c | 5 ---
>> 3 files changed, 68 insertions(+), 5 deletions(-)
>>=20
>> diff --git a/xen/arch/x86/domain-builder/core.c b/xen/arch/x86/domain-bu=
ilder/core.c
>> index c50eff34fb..eda7fa7a8f 100644
>> --- a/xen/arch/x86/domain-builder/core.c
>> +++ b/xen/arch/x86/domain-builder/core.c
>> @@ -59,6 +59,17 @@ void __init builder_init(struct boot_info *bi)
>>=20
>> printk(XENLOG_INFO " Number of domains: %d\n", bi->nr_domains);
>>=20
>> }
>> + else
>> + {
>> + unsigned int i;
>> +
>> + /* Find first unknown boot module to use as Dom0 kernel */
>> + printk("Falling back to using first boot module as dom0\n");
>> + i =3D first_boot_module_index(bi, BOOTMOD_UNKNOWN);
>> + bi->mods[i].type =3D BOOTMOD_KERNEL;
>>=20
>> + bi->domains[0].kernel =3D &bi->mods[i];
>>=20
>> + bi->nr_domains =3D 1;
>>=20
>> + }
>> }
>>=20
>> /*
>> diff --git a/xen/arch/x86/domain-builder/fdt.c b/xen/arch/x86/domain-bui=
lder/fdt.c
>> index 9ebc8fd0e4..a037c8b6cb 100644
>> --- a/xen/arch/x86/domain-builder/fdt.c
>> +++ b/xen/arch/x86/domain-builder/fdt.c
>> @@ -155,6 +155,52 @@ int __init fdt_read_multiboot_module(const void *fd=
t, int node,
>> return idx;
>> }
>>=20
>> +static int __init process_domain_node(
>> + struct boot_info *bi, const void *fdt, int dom_node)
>> +{
>> + int node;
>> + struct boot_domain *bd =3D &bi->domains[bi->nr_domains];
>>=20
>> + const char *name =3D fdt_get_name(fdt, dom_node, NULL) ?: "unknown";
>> + int address_cells =3D fdt_address_cells(fdt, dom_node);
>> + int size_cells =3D fdt_size_cells(fdt, dom_node);
>> +
>> + fdt_for_each_subnode(node, fdt, dom_node)
>> + {
>> + if ( fdt_node_check_compatible(fdt, node, "multiboot,kernel") =3D=3D 0=
 )
>> + {
>> + int idx;
>> +
>> + if ( bd->kernel )
>>=20
>> + {
>> + printk(XENLOG_ERR "Duplicate kernel module for domain %s\n",
>
> Looks like it should be XENLOG_WARNING since the loop continues.

Fair point.

>
> Also, I would use either Capitalized or lower case messages everywhere
> for consistency.

That's related to those leading spaces. The lowercases end up
immediately under the configuration message so it's easier to bind them
visually as "hyperlaunch-related".

    (XEN) Hyperlaunch configuration:
    (XEN)   something
    (XEN)   failed processing kernel module for domain %s

>
>> + name);
>> + continue;
>> + }
>> +
>> + idx =3D fdt_read_multiboot_module(fdt, node, address_cells,
>> + size_cells, bi);
>> + if ( idx < 0 )
>> + {
>> + printk(" failed processing kernel module for domain %s\n",
>
> I think this printout should have XENLOG_ERR in it since it's on the
> error code path.

All of these should have a XENLOG_X so they can be skipped when _INFO
is itself filtered out.

>
>> + name);
>> + return idx;
>> + }
>> +
>> + printk(" kernel: boot module %d\n", idx);
>> + bi->mods[idx].type =3D BOOTMOD_KERNEL;
>>=20
>> + bd->kernel =3D &bi->mods[idx];
>>=20
>> + }
>> + }
>> +
>> + if ( !bd->kernel )
>>=20
>> + {
>> + printk(XENLOG_ERR "ERR: no kernel assigned to domain\n");
>
> Drop "ERR" since it is already XENLOG_ERR level?

ERR: is printed though, whereas XENLOG_ERR is not. That's meant to make
it visually clear that's _really_ not meant to happen.

>
>> + return -ENODATA;
>> + }
>> +
>> + return 0;
>> +}
>> +
>> static int __init find_hyperlaunch_node(const void *fdt)
>> {
>> int hv_node =3D fdt_path_offset(fdt, "/chosen/hypervisor");
>> @@ -217,9 +263,20 @@ int __init walk_hyperlaunch_fdt(struct boot_info *b=
i)
>>=20
>> fdt_for_each_subnode(node, fdt, hv_node)
>> {
>> + if ( bi->nr_domains >=3D MAX_NR_BOOTDOMS )
>>=20
>> + {
>> + printk(XENLOG_WARNING
>> + "WARN: only creating first %u domains\n", MAX_NR_BOOTDOMS);
>
> Drop "WARN" since it is already XENLOG_WARNING level?

Same rationale as above.

>
>> + break;
>> + }
>> +
>> ret =3D fdt_node_check_compatible(fdt, node, "xen,domain");
>> if ( ret =3D=3D 0 )
>> + {
>> + if ( (ret =3D process_domain_node(bi, fdt, node)) < 0 )
>> + break;
>> bi->nr_domains++;
>>=20
>> + }
>> }
>>=20
>> /* Until multi-domain construction is added, throw an error /
>> diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
>> index e5d78bcb48..00e8c8a2a3 100644
>> --- a/xen/arch/x86/setup.c
>> +++ b/xen/arch/x86/setup.c
>> @@ -1284,11 +1284,6 @@ void asmlinkage __init noreturn __start_xen(void)
>>=20
>> builder_init(bi);
>>=20
>> - / Find first unknown boot module to use as Dom0 kernel */
>> - i =3D first_boot_module_index(bi, BOOTMOD_UNKNOWN);
>> - bi->mods[i].type =3D BOOTMOD_KERNEL;
>>=20
>> - bi->domains[0].kernel =3D &bi->mods[i];
>>=20
>> -
>> if ( pvh_boot )
>> {
>> /* pvh_init() already filled in e820_raw */
>> --
>> 2.43.0

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Mon Apr 14 13:59:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 13:59:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.950328.1346684 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4KL1-00037N-Af; Mon, 14 Apr 2025 13:59:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 950328.1346684; Mon, 14 Apr 2025 13:59:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4KL1-00037G-7p; Mon, 14 Apr 2025 13:59:03 +0000
Received: by outflank-mailman (input) for mailman id 950328;
 Mon, 14 Apr 2025 13:59: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=B3Nx=XA=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u4KKz-000378-Om
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 13:59:01 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on20605.outbound.protection.outlook.com
 [2a01:111:f403:2412::605])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9c318acf-1938-11f0-9ffb-bf95429c2676;
 Mon, 14 Apr 2025 15:58:59 +0200 (CEST)
Received: from CH0P221CA0016.NAMP221.PROD.OUTLOOK.COM (2603:10b6:610:11c::18)
 by CH3PR12MB8509.namprd12.prod.outlook.com (2603:10b6:610:157::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.35; Mon, 14 Apr
 2025 13:58:54 +0000
Received: from CH2PEPF000000A0.namprd02.prod.outlook.com
 (2603:10b6:610:11c:cafe::5e) by CH0P221CA0016.outlook.office365.com
 (2603:10b6:610:11c::18) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.35 via Frontend Transport; Mon,
 14 Apr 2025 13:58:54 +0000
Received: from SATLEXMB04.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.8655.12 via Frontend Transport; Mon, 14 Apr 2025 13:58:54 +0000
Received: from localhost (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; Mon, 14 Apr
 2025 08:58:52 -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: 9c318acf-1938-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=MBrQFPeTp2Ij8psBv0GNxFriMoEARRmMleDV4Qsg1Fxp+ZCLGwIuGuY2sSZ9QQw5gQlHN3pECdtJSyLQ4S1HQaAlXOO4Ha4wYzt/VFoG2HQGbQvieCMV6sFTuAA9SkZsA1qwkMbvF+GBXeJbsi7qMrpMqjcG7R77FzekfRgwX+vcTwz+Trj0zkkNbMiaGk4I2exrSmAiDtD+ZUoiZNzTu7M7asWLgXsLYXYWSnYJaIGrgFdjRvU8G9u4+teSlxnqCdsxLOYm5XrO0AAZxkEQ0DjEVNAYgd5KZ+LZzd8GGhxxi57bnrxca+odTqDTy435y5OpOdJmyeKDT+Lsd/fH4A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=sy597cODJ56+FOhqRWzJ1gQXGTJKR+k+qSI6Gh93lO4=;
 b=SPye6g24xVvBclyayiqfAiqpA+PDfRMo2hr7Wl1tT5bJHzSxzmuwhM3534d2PifKVkR7vFau2UYz//s8KAOxQoR7xvvxgYcCKt/jCJpt9Bh5FApqh8CK6lJrzDWLa1WPOeOAS3GsPsWvX7sVxKU6uLAhFXXrjyKFo+nZfvFem+fXKhP0x0297vX7CLKCH6J4plfmUQKg5c4bJIpG8BZSNxzYaN9Moy0LYFls4dsXj4SWJ1F2BEPdoVZ7+vVIuh3fEwk0QHyVzOvB6e5oEStsDQzgu0lgqMczsivPLsA8YQCMRqWTzu9k1HVbH+ABT59QlF5DJeSr2zh22AU3j/S3WQ==
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=sy597cODJ56+FOhqRWzJ1gQXGTJKR+k+qSI6Gh93lO4=;
 b=Y9hpojLeZYcgm/4b0JXkSsuYkMmbGwz4H9azwJPzY/suDkx+Xpi1Bq5igTrV4F3aawE9oKYLYOzccN/7QQb6s4kvyTgd2WmGVgtm341bCNgttsfm0fMHvapMEy35BkiMYiv1mtnwXlVZrjhrP8sxbpXi+Wc/1tZqdHvGVzpBVhs=
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
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Mon, 14 Apr 2025 14:58:51 +0100
Message-ID: <D96EYGKI9INQ.2W2TCBO8XHGST@amd.com>
CC: "Daniel P. Smith" <dpsmith@apertussolutions.com>, Jason Andryuk
	<jason.andryuk@amd.com>, Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	"Stefano Stabellini" <sstabellini@kernel.org>, Michal Orzel
	<michal.orzel@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>
Subject: Re: [PATCH v3 09/16] x86/hyperlaunch: locate dom0 kernel with
 hyperlaunch
From: Alejandro Vallejo <agarciav@amd.com>
To: Jan Beulich <jbeulich@suse.com>
X-Mailer: aerc 0.20.1
References: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-10-agarciav@amd.com>
 <09e1b9f3-6660-4cdd-9bcf-af075f95bb63@suse.com>
In-Reply-To: <09e1b9f3-6660-4cdd-9bcf-af075f95bb63@suse.com>
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: CH2PEPF000000A0:EE_|CH3PR12MB8509:EE_
X-MS-Office365-Filtering-Correlation-Id: 7a6a20b3-6be9-41d6-f3ad-08dd7b5c7e4e
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?V1Awdzd4ajBHRFp0elBzSmdnaTFEL2l1R2dyS3BkOTBBYWxkRjJPaGdhVGh0?=
 =?utf-8?B?cjBNbjVJMXhzZkJ3SjBmMjhmSHhQT3dRQVZEWWh6d2J5R01tMmEvOHkraGQz?=
 =?utf-8?B?UytUNTBJS3FVUEZJWVVGQk5jd3VtQmZQZ28yMG5BVXora2gxanVBcGhzMXBY?=
 =?utf-8?B?K0kwamhMYWIrdS8yZWtJR29kQ3lldlc1NkMyUzBwYnB5U3JRSWt4TE95b3V5?=
 =?utf-8?B?bTlqeWJOM3JlYUR0VDQ4MzBGeGF4bGdLMEJ2dnlYcURUdFY1TUVZbEIyR29w?=
 =?utf-8?B?UUdUZVZNQ1plY0M1dFVHMFc5T3BlNDVzNk1OVUFOWXc5UUdJQ0VlUmkxTmFn?=
 =?utf-8?B?SFo5c1hCM0FCOEszeFBERm9zdXBnTytOVDFEdTAxQ1ordm9WRXRjanlnWHNn?=
 =?utf-8?B?ZlBWMzVDNEswMzRvSWRUS0x5cGUyOEpncTNMLzN1SEh2QXowb3hYVU5QK09j?=
 =?utf-8?B?aVRCRXNuUlhSa3JlUEpLTjZ1MG5LK21EQ2ROQ0F1NVl6QWZ0RnJIY3VPMU9u?=
 =?utf-8?B?UXRJOWhmQStaYmlIMGpXU3RLeDZnamtYYTVuOEJIU0dPZUg0Z0ZnZ2wyc1Vw?=
 =?utf-8?B?VGVoM3Ztalc1MVRiYURoQmZMbWhDSHJpb1FOVkRWViswTzA2cFhLWjRwU1lZ?=
 =?utf-8?B?UmRXVWNsa1JYZURhT2V1a1NZVFNZOXVCYjlXL3BQQmJjckYrMk9UUy9IbFJE?=
 =?utf-8?B?U2lTeWxtcVJBVEJaVzU1eldtSkpBcWJaeTFuOUhVQkZydDEzeEVkNUNjOTZv?=
 =?utf-8?B?YjRXOVgvc280VTI4cjhzVEtsUDlCZS9tOXNKZ0l6ZkhUVGUwNGx4K1BpeGht?=
 =?utf-8?B?L0VnNENDMkhNMW8wU0YwR3ZZaFRhQlptVURLUTRRQWFyYUZScENtamVWVHNp?=
 =?utf-8?B?R09uOUl6L1liZVVzRGR2VjVEdnk3bVljdXZwcllJbnBSaTB3REp3cTh5VElv?=
 =?utf-8?B?WFZxMFBjcHd4ZnZqMTFDNkJKV0FWU2hUa25VS29nUXJrVC9HTUNISS95MHlS?=
 =?utf-8?B?bVNNVktZNWZMUjhpUmJZb3JsemdITTQ0b21mQ0RFQ3ZvQk4wZmNaR01uTUVX?=
 =?utf-8?B?WDljN043YTN6QTAvQ3B0NXc3OWtnR1ZpNjgvN2wwU1VkdHRVRG9NWGsyZHp5?=
 =?utf-8?B?U1lmRDZ4Y1VtbmwwdGljbjVOQk9jTXdWQ0NmaDdzZ2VUTndPeEY0bkVhWDQw?=
 =?utf-8?B?NWR2Uk03R2EzVHA1WVRxaTJzTXMrUis0OWJtTUdnM285UklSTUZldTRCYmRt?=
 =?utf-8?B?SmlOd1UvbWlrbmVkY2ZqMUxzRDkraUhMVUdqSEZ0ZHJndjl4UVFxK2s5bjFF?=
 =?utf-8?B?TktXdkhadnA5U3NLMSs0Wlo5VGpYV2RXb3hrdjVOeE80d0ZzK0R1RkJJeXlM?=
 =?utf-8?B?VlFHcDBIRG1kTWllQi9NdDcwaXk1UzRGaWE1aXZmcC9Lbm12OE1JaENXWkVa?=
 =?utf-8?B?SFR1dWRBWFBaVGtWZnFtMnRPRDNJQkY2K1hkdm1EcmlUbzJjUndWMUZWdk9o?=
 =?utf-8?B?cmlBa0pPTmg5YnRBcTB0bmhtQ0owekMwMGM4QkEwS2k5blFJaURsREV6L29B?=
 =?utf-8?B?ZlcxNmxMTDZJRlVUcFBYWUlHNVExQVhEYWpDdVdydUdwZnh4SzRacUxoUkkx?=
 =?utf-8?B?MUdyZnRMUzNoWVU4bE5ZNjhyOEsyU3kwOXdWbHpyVnlMQlJIekQzTGZ6TjMy?=
 =?utf-8?B?OWtDQm5qL2pPYkxQQ1Fjb1UwVWZyZThVclBhNE1EQ1FOMGticXlBV2NVcTha?=
 =?utf-8?B?WiszdHhFSXIzekJzOVBTWDZVM3k4dmtGNU9Ib2ZNODZ3UGZCZ1NiSjgyUzhz?=
 =?utf-8?B?Y0Y3QS9oM0h5cnMzaDNQd1ZLV2NMYnJMS1VCK1h6VkM4Q2tMK1dsRFgyNDNJ?=
 =?utf-8?B?dDBobk1VeldmdytiKzRvbWREMTZVb2orM01sb1NjcVZhMGNFZjQyYjk1Kzgz?=
 =?utf-8?B?SHlNQUQ2Ukp1QlBOWWhtdVlMOXhtQmh5U1Q2NVZ5YmRLVlFkSmIrbnkvQ1hU?=
 =?utf-8?B?UHpxclZKNGJSZUowNkJsVEswdXZsbmZJeENPRWl0M0ZMWHlYMU1KLzRpd2Vq?=
 =?utf-8?Q?9virur?=
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: 14 Apr 2025 13:58:54.2164
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 7a6a20b3-6be9-41d6-f3ad-08dd7b5c7e4e
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:
	CH2PEPF000000A0.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB8509

On Thu Apr 10, 2025 at 11:58 AM BST, Jan Beulich wrote:
> On 08.04.2025 18:07, Alejandro Vallejo wrote:
>> From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
>>=20
>> Look for a subnode of type `multiboot,kernel` within a domain node. If
>> found, locate it using the multiboot module helper to generically ensure
>> it lives in the module list. If the bootargs property is present and
>> there was not an MB1 string, then use the command line from the device
>> tree definition.
>>=20
>> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
>> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
>> Signed-off-by: Alejandro Vallejo <agarciav@amd.com>
>> ---
>> v3:
>>     * Add const to fdt
>>     * Remove idx =3D=3D NULL checks
>>     * Add BUILD_BUG_ON for MAX_NR_BOOTMODS fitting in a uint32_t
>
> At least this one looks to rather belong into patch 08?

Urg, yes. Sorry. There was a lot of code motion when I factored out the
helpers.

>
>> --- a/xen/arch/x86/domain-builder/fdt.c
>> +++ b/xen/arch/x86/domain-builder/fdt.c
>> @@ -155,6 +155,52 @@ int __init fdt_read_multiboot_module(const void *fd=
t, int node,
>>      return idx;
>>  }
>> =20
>> +static int __init process_domain_node(
>> +    struct boot_info *bi, const void *fdt, int dom_node)
>> +{
>> +    int node;
>> +    struct boot_domain *bd =3D &bi->domains[bi->nr_domains];
>> +    const char *name =3D fdt_get_name(fdt, dom_node, NULL) ?: "unknown"=
;
>> +    int address_cells =3D fdt_address_cells(fdt, dom_node);
>> +    int size_cells =3D fdt_size_cells(fdt, dom_node);
>
> Oh, okay - regarding my earlier comment elsewhere: If the sizes come from=
 DT,
> then of course ASSERT_UNREACHABLE() can't be used at the place where bogu=
s
> ones are rejected.
>
>> +    fdt_for_each_subnode(node, fdt, dom_node)
>> +    {
>> +        if ( fdt_node_check_compatible(fdt, node, "multiboot,kernel") =
=3D=3D 0 )
>> +        {
>
> When the loop body is merely an if() with a non-negligible body, invertin=
g
> the condition and using "continue" is usually better. Much like you do ..=
.

This becomes a chain of if conditions later on, one per property.

>
>> +            int idx;
>> +
>> +            if ( bd->kernel )
>> +            {
>> +                printk(XENLOG_ERR "Duplicate kernel module for domain %=
s\n",
>> +                       name);
>> +                continue;
>
> ... here already.
>
> Jan

Cheers,
Alejandro



From xen-devel-bounces@lists.xenproject.org Mon Apr 14 14:05:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 14:05:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.950341.1346694 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4KR6-0006M8-VS; Mon, 14 Apr 2025 14:05:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 950341.1346694; Mon, 14 Apr 2025 14: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 1u4KR6-0006M1-Sm; Mon, 14 Apr 2025 14:05:20 +0000
Received: by outflank-mailman (input) for mailman id 950341;
 Mon, 14 Apr 2025 14:05: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=VMrm=XA=linux.ibm.com=agordeev@srs-se1.protection.inumbo.net>)
 id 1u4KR6-0006Lv-A4
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 14:05:20 +0000
Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com
 [148.163.156.1]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7e7b1f8f-1939-11f0-9eae-5ba50f476ded;
 Mon, 14 Apr 2025 16:05:18 +0200 (CEST)
Received: from pps.filterd (m0360083.ppops.net [127.0.0.1])
 by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 53EA4ATV027370;
 Mon, 14 Apr 2025 14:04:44 GMT
Received: from ppma11.dal12v.mail.ibm.com
 (db.9e.1632.ip4.static.sl-reverse.com [50.22.158.219])
 by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 46109f167h-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Mon, 14 Apr 2025 14:04:44 +0000 (GMT)
Received: from pps.filterd (ppma11.dal12v.mail.ibm.com [127.0.0.1])
 by ppma11.dal12v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 53EDcZPO016703;
 Mon, 14 Apr 2025 14:04:42 GMT
Received: from smtprelay05.fra02v.mail.ibm.com ([9.218.2.225])
 by ppma11.dal12v.mail.ibm.com (PPS) with ESMTPS id 460571x6a5-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Mon, 14 Apr 2025 14:04:42 +0000
Received: from smtpav04.fra02v.mail.ibm.com (smtpav04.fra02v.mail.ibm.com
 [10.20.54.103])
 by smtprelay05.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id
 53EE4f4G48300418
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Mon, 14 Apr 2025 14:04:41 GMT
Received: from smtpav04.fra02v.mail.ibm.com (unknown [127.0.0.1])
 by IMSVA (Postfix) with ESMTP id 212F720043;
 Mon, 14 Apr 2025 14:04:41 +0000 (GMT)
Received: from smtpav04.fra02v.mail.ibm.com (unknown [127.0.0.1])
 by IMSVA (Postfix) with ESMTP id 30D1920040;
 Mon, 14 Apr 2025 14:04:40 +0000 (GMT)
Received: from li-008a6a4c-3549-11b2-a85c-c5cc2836eea2.ibm.com (unknown
 [9.171.13.82]) by smtpav04.fra02v.mail.ibm.com (Postfix) with ESMTPS;
 Mon, 14 Apr 2025 14:04:40 +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: 7e7b1f8f-1939-11f0-9eae-5ba50f476ded
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=mR/z8wqlahqEQEIdoTwi+iagtqGDJe
	kWvs0xnEoJMPE=; b=DpyD6Udw88tqaPr0fYcs3CazdQ5QWENJPynzyhJZnbNOi5
	zY0G9Hu7PEsJ3TjJG7rVrb/GbHvfITN3AIbtoLh/H0aKWaZX+1eKMHjVLpwTeAUE
	lRbqHvx0K9kSyQT0HXlbLRn1suq7p1N21lpak5cyhNJDX+1kLb81jLSzQe19TM2X
	xKrKJV6i/xFFC2mKilEeszzr+tgbhoVNSPBwhEulRvMdF1Ct68oZPbXVDMaG0p/U
	WXYRkSiwc4AJlRENzE7s4q7aNYIHCvE9+ZUHe6U9seSlEUrtTlhISJ0ht+Fdm4uA
	x4K+2XDTVTvm98SnPR0wm7k4SM2+vbROYs8t7LSA==
Date: Mon, 14 Apr 2025 16:04:38 +0200
From: Alexander Gordeev <agordeev@linux.ibm.com>
To: Ryan Roberts <ryan.roberts@arm.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
        "David S. Miller" <davem@davemloft.net>,
        Andreas Larsson <andreas@gaisler.com>, Juergen Gross <jgross@suse.com>,
        Boris Ostrovsky <boris.ostrovsky@oracle.com>,
        Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>,
        Borislav Petkov <bp@alien8.de>,
        Dave Hansen <dave.hansen@linux.intel.com>,
        "H. Peter Anvin" <hpa@zytor.com>,
        "Matthew Wilcox (Oracle)" <willy@infradead.org>,
        Catalin Marinas <catalin.marinas@arm.com>, linux-mm@kvack.org,
        sparclinux@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2 0/5] Fix lazy mmu mode
Message-ID: <Z/0V9r6rjEjSH3fh@li-008a6a4c-3549-11b2-a85c-c5cc2836eea2.ibm.com>
References: <20250303141542.3371656-1-ryan.roberts@arm.com>
 <912c7a32-b39c-494f-a29c-4865cd92aeba@agordeev.local>
 <5b0609c9-95ee-4e48-bb6d-98f57c5d2c31@arm.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <5b0609c9-95ee-4e48-bb6d-98f57c5d2c31@arm.com>
X-TM-AS-GCONF: 00
X-Proofpoint-GUID: Xm9MkOqhRW8-TUfXNY7yPIc4SjJFzfI0
X-Proofpoint-ORIG-GUID: Xm9MkOqhRW8-TUfXNY7yPIc4SjJFzfI0
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1095,Hydra:6.0.680,FMLib:17.12.68.34
 definitions=2025-04-14_04,2025-04-10_01,2024-11-22_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0
 suspectscore=0 phishscore=0 bulkscore=0 adultscore=0 priorityscore=1501
 mlxlogscore=999 malwarescore=0 clxscore=1015 spamscore=0 mlxscore=0
 lowpriorityscore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.19.0-2502280000 definitions=main-2504140102

On Mon, Apr 14, 2025 at 02:22:53PM +0100, Ryan Roberts wrote:
> On 10/04/2025 17:07, Alexander Gordeev wrote:
> >> I'm planning to implement lazy mmu mode for arm64 to optimize vmalloc. As part
> >> of that, I will extend lazy mmu mode to cover kernel mappings in vmalloc table
> >> walkers. While lazy mmu mode is already used for kernel mappings in a few
> >> places, this will extend it's use significantly.
> >>
> >> Having reviewed the existing lazy mmu implementations in powerpc, sparc and x86,
> >> it looks like there are a bunch of bugs, some of which may be more likely to
> >> trigger once I extend the use of lazy mmu.
> > 
> > Do you have any idea about generic code issues as result of not adhering to
> > the originally stated requirement:
> > 
> >   /*
> >    ...
> >    * the PTE updates which happen during this window.  Note that using this
> >    * interface requires that read hazards be removed from the code.  A read
> >    * hazard could result in the direct mode hypervisor case, since the actual
> >    * write to the page tables may not yet have taken place, so reads though
> >    * a raw PTE pointer after it has been modified are not guaranteed to be
> >    * up to date.
> >    ...
> >    */
> > 
> > I tried to follow few code paths and at least this one does not look so good:
> > 
> > copy_pte_range(..., src_pte, ...)
> > 	ret = copy_nonpresent_pte(..., src_pte, ...)
> > 		try_restore_exclusive_pte(..., src_pte, ...)	// is_device_exclusive_entry(entry)
> > 			restore_exclusive_pte(..., ptep, ...)
> > 				set_pte_at(..., ptep, ...)
> > 					set_pte(ptep, pte);	// save in lazy mmu mode
> > 
> > 	// ret == -ENOENT
> > 
> > 	ptent = ptep_get(src_pte);				// lazy mmu save is not observed
> > 	ret = copy_present_ptes(..., ptent, ...);		// wrong ptent used
> > 
> > I am not aware whether the effort to "read hazards be removed from the code"
> > has ever been made and the generic code is safe in this regard.
> > 
> > What is your take on this?
> 
> Hmm, that looks like a bug to me, at least based on the stated requirements.
> Although this is not a "read through a raw PTE *pointer*", it is a ptep_get().
> The arch code can override that so I guess it has an opportunity to flush. But I
> don't think any arches are currently doing that.
> 
> Probably the simplest fix is to add arch_flush_lazy_mmu_mode() before the
> ptep_get()?

Which would completely revert the very idea of the lazy mmu mode?
(As one would flush on every PTE page table iteration).

> It won't be a problem in practice for arm64, since the pgtables are always
> updated immediately. I just want to use these hooks to defer/batch barriers in
> certain cases.
> 
> And this is a pre-existing issue for the arches that use lazy mmu with
> device-exclusive mappings, which my extending lazy mmu into vmalloc won't
> exacerbate.
> 
> Would you be willing/able to submit a fix?

Well, we have a dozen of lazy mmu cases and I would guess it is not the
only piece of code that seems affected. I was thinking about debug feature
that could help spotting all troubled locations.

Then we could assess and decide if it is feasible to fix. Just turning the
code above into the PTE read-modify-update pattern is quite an exercise...

> Thanks,
> Ryan


From xen-devel-bounces@lists.xenproject.org Mon Apr 14 14:11:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 14:11:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.950355.1346704 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4KXE-0000VL-Jt; Mon, 14 Apr 2025 14:11:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 950355.1346704; Mon, 14 Apr 2025 14:11: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 1u4KXE-0000VE-H8; Mon, 14 Apr 2025 14:11:40 +0000
Received: by outflank-mailman (input) for mailman id 950355;
 Mon, 14 Apr 2025 14:11: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=nQQY=XA=arm.com=ryan.roberts@srs-se1.protection.inumbo.net>)
 id 1u4KXD-0000V8-Ik
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 14:11:39 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 60aa1aaf-193a-11f0-9eae-5ba50f476ded;
 Mon, 14 Apr 2025 16:11:37 +0200 (CEST)
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 13DDB1007;
 Mon, 14 Apr 2025 07:11:35 -0700 (PDT)
Received: from [10.57.86.225] (unknown [10.57.86.225])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 5B3583F59E;
 Mon, 14 Apr 2025 07:11:32 -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: 60aa1aaf-193a-11f0-9eae-5ba50f476ded
Message-ID: <0eae5a1a-70fe-49ab-bd3e-565dcd4e97cf@arm.com>
Date: Mon, 14 Apr 2025 15:11:30 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 0/5] Fix lazy mmu mode
Content-Language: en-GB
To: Alexander Gordeev <agordeev@linux.ibm.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
 "David S. Miller" <davem@davemloft.net>,
 Andreas Larsson <andreas@gaisler.com>, Juergen Gross <jgross@suse.com>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 "H. Peter Anvin" <hpa@zytor.com>,
 "Matthew Wilcox (Oracle)" <willy@infradead.org>,
 Catalin Marinas <catalin.marinas@arm.com>, linux-mm@kvack.org,
 sparclinux@vger.kernel.org, xen-devel@lists.xenproject.org,
 linux-kernel@vger.kernel.org
References: <20250303141542.3371656-1-ryan.roberts@arm.com>
 <912c7a32-b39c-494f-a29c-4865cd92aeba@agordeev.local>
 <5b0609c9-95ee-4e48-bb6d-98f57c5d2c31@arm.com>
 <Z/0V9r6rjEjSH3fh@li-008a6a4c-3549-11b2-a85c-c5cc2836eea2.ibm.com>
From: Ryan Roberts <ryan.roberts@arm.com>
In-Reply-To: <Z/0V9r6rjEjSH3fh@li-008a6a4c-3549-11b2-a85c-c5cc2836eea2.ibm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 14/04/2025 15:04, Alexander Gordeev wrote:
> On Mon, Apr 14, 2025 at 02:22:53PM +0100, Ryan Roberts wrote:
>> On 10/04/2025 17:07, Alexander Gordeev wrote:
>>>> I'm planning to implement lazy mmu mode for arm64 to optimize vmalloc. As part
>>>> of that, I will extend lazy mmu mode to cover kernel mappings in vmalloc table
>>>> walkers. While lazy mmu mode is already used for kernel mappings in a few
>>>> places, this will extend it's use significantly.
>>>>
>>>> Having reviewed the existing lazy mmu implementations in powerpc, sparc and x86,
>>>> it looks like there are a bunch of bugs, some of which may be more likely to
>>>> trigger once I extend the use of lazy mmu.
>>>
>>> Do you have any idea about generic code issues as result of not adhering to
>>> the originally stated requirement:
>>>
>>>   /*
>>>    ...
>>>    * the PTE updates which happen during this window.  Note that using this
>>>    * interface requires that read hazards be removed from the code.  A read
>>>    * hazard could result in the direct mode hypervisor case, since the actual
>>>    * write to the page tables may not yet have taken place, so reads though
>>>    * a raw PTE pointer after it has been modified are not guaranteed to be
>>>    * up to date.
>>>    ...
>>>    */
>>>
>>> I tried to follow few code paths and at least this one does not look so good:
>>>
>>> copy_pte_range(..., src_pte, ...)
>>> 	ret = copy_nonpresent_pte(..., src_pte, ...)
>>> 		try_restore_exclusive_pte(..., src_pte, ...)	// is_device_exclusive_entry(entry)
>>> 			restore_exclusive_pte(..., ptep, ...)
>>> 				set_pte_at(..., ptep, ...)
>>> 					set_pte(ptep, pte);	// save in lazy mmu mode
>>>
>>> 	// ret == -ENOENT
>>>
>>> 	ptent = ptep_get(src_pte);				// lazy mmu save is not observed
>>> 	ret = copy_present_ptes(..., ptent, ...);		// wrong ptent used
>>>
>>> I am not aware whether the effort to "read hazards be removed from the code"
>>> has ever been made and the generic code is safe in this regard.
>>>
>>> What is your take on this?
>>
>> Hmm, that looks like a bug to me, at least based on the stated requirements.
>> Although this is not a "read through a raw PTE *pointer*", it is a ptep_get().
>> The arch code can override that so I guess it has an opportunity to flush. But I
>> don't think any arches are currently doing that.
>>
>> Probably the simplest fix is to add arch_flush_lazy_mmu_mode() before the
>> ptep_get()?
> 
> Which would completely revert the very idea of the lazy mmu mode?
> (As one would flush on every PTE page table iteration).

Well yes, but this is a pretty rare path, I'm guessing?

> 
>> It won't be a problem in practice for arm64, since the pgtables are always
>> updated immediately. I just want to use these hooks to defer/batch barriers in
>> certain cases.
>>
>> And this is a pre-existing issue for the arches that use lazy mmu with
>> device-exclusive mappings, which my extending lazy mmu into vmalloc won't
>> exacerbate.
>>
>> Would you be willing/able to submit a fix?
> 
> Well, we have a dozen of lazy mmu cases and I would guess it is not the
> only piece of code that seems affected. I was thinking about debug feature
> that could help spotting all troubled locations.
> 
> Then we could assess and decide if it is feasible to fix. Just turning the
> code above into the PTE read-modify-update pattern is quite an exercise...
> 
>> Thanks,
>> Ryan



From xen-devel-bounces@lists.xenproject.org Mon Apr 14 14:18:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 14:18:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.950412.1346758 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4Kda-0003fJ-9Z; Mon, 14 Apr 2025 14:18:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 950412.1346758; Mon, 14 Apr 2025 14:18: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 1u4Kda-0003fB-5T; Mon, 14 Apr 2025 14:18:14 +0000
Received: by outflank-mailman (input) for mailman id 950412;
 Mon, 14 Apr 2025 14:18:13 +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 1u4KdY-0003eG-V4
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 14:18:12 +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 1u4KdY-00EtTd-1q;
 Mon, 14 Apr 2025 14:18:12 +0000
Received: from [2a01:e0a:1da:8420:b77:bd5:6e45:7633] (helo=l14..)
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1u4KdY-00F14n-0t;
 Mon, 14 Apr 2025 14:18: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=xenproject.org; s=20200302mail; h=Content-Transfer-Encoding:MIME-Version:
	Message-Id:Date:Subject:Cc:To:From;
	bh=2TRvNZpz+JhX9kS2Q7J1oFd+thWzi4Dn8OH/vUQM944=; b=vFXS6pW1zZ7KN0C2fjRNhd5H/B
	HMCRgeTZpmmAP7181tIcNjkpJ7AWL9adZ4ZOyM6GBTaK9CqxUWIdu41llj41BTVPnnUk8l5hhQjna
	+2hTAVCNxm8nxiy1mvu+S76GcdCKtAX5wc51kW94YUwejpdQ/rRF/CqT2S+kp6KgAi2Y=;
From: Anthony PERARD <anthony@xenproject.org>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [XEN PATCH] tools/tests: Fix newly introduced Makefile
Date: Mon, 14 Apr 2025 16:17:14 +0200
Message-Id: <20250414141714.10166-1-anthony@xenproject.org>
X-Mailer: git-send-email 2.39.5
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Anthony PERARD <anthony.perard@vates.tech>

Fix few issue with this new directory:
- clean generated files
- and ignore those generated files
- include the dependency files generated by `gcc`.
- rework prerequisites:
  "test-rangeset.o" also needs the generated files "list.h" and
  "rangeset.h". Technically, both only needs "harness.h" which needs
  the generated headers, but that's a bit simpler and the previous
  point will add the dependency on "harness.h" automatically.

This last point fix an issue where `make` might decide to build
"test-rangeset.o" before the other files are ready.

Fixes: 7bf777b42cad ("tootls/tests: introduce unit tests for rangesets")
Signed-off-by: Anthony PERARD <anthony.perard@vates.tech>
---

Make doesn't needs the *.h to generated the .c. So removing that
prerequisite means make can generate all 3 at the same time.
---
 tools/tests/rangeset/.gitignore | 4 ++++
 tools/tests/rangeset/Makefile   | 8 ++++++--
 2 files changed, 10 insertions(+), 2 deletions(-)
 create mode 100644 tools/tests/rangeset/.gitignore

diff --git a/tools/tests/rangeset/.gitignore b/tools/tests/rangeset/.gitignore
new file mode 100644
index 0000000000..cdeb778535
--- /dev/null
+++ b/tools/tests/rangeset/.gitignore
@@ -0,0 +1,4 @@
+/list.h
+/rangeset.c
+/rangeset.h
+/test-rangeset
diff --git a/tools/tests/rangeset/Makefile b/tools/tests/rangeset/Makefile
index 70076eff34..3dafcbd054 100644
--- a/tools/tests/rangeset/Makefile
+++ b/tools/tests/rangeset/Makefile
@@ -12,7 +12,7 @@ run: $(TARGET)
 
 .PHONY: clean
 clean:
-	$(RM) -- *.o $(TARGET) $(DEPS_RM)
+	$(RM) -- *.o $(TARGET) $(DEPS_RM) list.h rangeset.h rangeset.c
 
 .PHONY: distclean
 distclean: clean
@@ -32,7 +32,7 @@ rangeset.h: $(XEN_ROOT)/xen/include/xen/rangeset.h
 list.h rangeset.h:
 	sed -e '/#include/d' <$< >$@
 
-rangeset.c: $(XEN_ROOT)/xen/common/rangeset.c list.h rangeset.h
+rangeset.c: $(XEN_ROOT)/xen/common/rangeset.c
 	# Remove includes and add the test harness header
 	sed -e '/#include/d' -e '1s/^/#include "harness.h"/' <$< >$@
 
@@ -42,5 +42,9 @@ CFLAGS += $(CFLAGS_xeninclude)
 
 LDFLAGS += $(APPEND_LDFLAGS)
 
+test-rangeset.o rangeset.o: list.h rangeset.h
+
 test-rangeset: rangeset.o test-rangeset.o
 	$(CC) $^ -o $@ $(LDFLAGS)
+
+-include $(DEPS_INCLUDE)
-- 
Anthony PERARD



From xen-devel-bounces@lists.xenproject.org Mon Apr 14 14:18:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 14:18:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.950411.1346747 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4KdW-0003Pv-UO; Mon, 14 Apr 2025 14:18:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 950411.1346747; Mon, 14 Apr 2025 14:18: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 1u4KdW-0003Po-RM; Mon, 14 Apr 2025 14:18:10 +0000
Received: by outflank-mailman (input) for mailman id 950411;
 Mon, 14 Apr 2025 14:18: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=VMrm=XA=linux.ibm.com=agordeev@srs-se1.protection.inumbo.net>)
 id 1u4KdV-0003PQ-C0
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 14:18:09 +0000
Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com
 [148.163.156.1]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 482a78ca-193b-11f0-9ffb-bf95429c2676;
 Mon, 14 Apr 2025 16:18:06 +0200 (CEST)
Received: from pps.filterd (m0356517.ppops.net [127.0.0.1])
 by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 53EAKA71029133;
 Mon, 14 Apr 2025 14:17:54 GMT
Received: from pps.reinject (localhost [127.0.0.1])
 by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 460nc4bs6s-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Mon, 14 Apr 2025 14:17:54 +0000 (GMT)
Received: from m0356517.ppops.net (m0356517.ppops.net [127.0.0.1])
 by pps.reinject (8.18.0.8/8.18.0.8) with ESMTP id 53EEDPx6027591;
 Mon, 14 Apr 2025 14:17:53 GMT
Received: from ppma23.wdc07v.mail.ibm.com
 (5d.69.3da9.ip4.static.sl-reverse.com [169.61.105.93])
 by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 460nc4bs6k-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Mon, 14 Apr 2025 14:17:53 +0000 (GMT)
Received: from pps.filterd (ppma23.wdc07v.mail.ibm.com [127.0.0.1])
 by ppma23.wdc07v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 53ECwxMl017183;
 Mon, 14 Apr 2025 14:17:52 GMT
Received: from smtprelay07.fra02v.mail.ibm.com ([9.218.2.229])
 by ppma23.wdc07v.mail.ibm.com (PPS) with ESMTPS id 46040kpeha-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Mon, 14 Apr 2025 14:17:52 +0000
Received: from smtpav04.fra02v.mail.ibm.com (smtpav04.fra02v.mail.ibm.com
 [10.20.54.103])
 by smtprelay07.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id
 53EEHorV51577248
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Mon, 14 Apr 2025 14:17:50 GMT
Received: from smtpav04.fra02v.mail.ibm.com (unknown [127.0.0.1])
 by IMSVA (Postfix) with ESMTP id 2CE2320043;
 Mon, 14 Apr 2025 14:17:50 +0000 (GMT)
Received: from smtpav04.fra02v.mail.ibm.com (unknown [127.0.0.1])
 by IMSVA (Postfix) with ESMTP id 2BFC320040;
 Mon, 14 Apr 2025 14:17:49 +0000 (GMT)
Received: from li-008a6a4c-3549-11b2-a85c-c5cc2836eea2.ibm.com (unknown
 [9.171.13.82]) by smtpav04.fra02v.mail.ibm.com (Postfix) with ESMTPS;
 Mon, 14 Apr 2025 14:17:49 +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: 482a78ca-193b-11f0-9ffb-bf95429c2676
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=J1d9DTJcE/z+4d1uC+sEutnQDyUt9v
	5FZ9je4Eup1Ko=; b=ah561KinZjNqF6zq76DxnVBTSvamBRxYEhr7Z+gu/wYeYJ
	j7dAB+GRAIBgfgcT4RReFRSB7Mggil+evOZs4y5hwzSYaWE4QeQ1gjZ+HGRkUdNu
	pwXrRfEYgphoKE29KKWj5DPPBxTAdadEXNR3p1tOzlSCoHUJ64LwlntS5prWHWM/
	ypBEt8HygnTXrT6MFoIK9aXcP6Apa1XfK3rhxUyJOl2bhpNUByVTq6q6beBiPmV1
	wjohaUUBJj7eE9ivNowExDlwR07lfFYP7j7RrqeB2X+koXmdx0GpvTziQRFy8s24
	0VxXFpeXm2aqdcwNxTwNhj/bC9jcAny5HST8QorQ==
Date: Mon, 14 Apr 2025 16:17:47 +0200
From: Alexander Gordeev <agordeev@linux.ibm.com>
To: Nicholas Piggin <npiggin@gmail.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
        Andrey Ryabinin <ryabinin.a.a@gmail.com>,
        Hugh Dickins <hughd@google.com>, Guenter Roeck <linux@roeck-us.net>,
        Juergen Gross <jgross@suse.com>, Jeremy Fitzhardinge <jeremy@goop.org>,
        linux-kernel@vger.kernel.org, linux-mm@kvack.org,
        kasan-dev@googlegroups.com, sparclinux@vger.kernel.org,
        xen-devel@lists.xenproject.org, linuxppc-dev@lists.ozlabs.org,
        linux-s390@vger.kernel.org
Subject: Re: [PATCH v1 2/4] mm: Cleanup apply_to_pte_range() routine
Message-ID: <Z/0ZC7HcSmoOEglw@li-008a6a4c-3549-11b2-a85c-c5cc2836eea2.ibm.com>
References: <cover.1744037648.git.agordeev@linux.ibm.com>
 <93102722541b1daf541fce9fb316a1a2614d8c86.1744037648.git.agordeev@linux.ibm.com>
 <D93LW58FLXOS.2U8X0CO2H9H5S@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <D93LW58FLXOS.2U8X0CO2H9H5S@gmail.com>
X-TM-AS-GCONF: 00
X-Proofpoint-GUID: u44-EjcfNgIEy_4sPtFf7SZelDSyFVJd
X-Proofpoint-ORIG-GUID: DiJ-rrsNSTwxXUpWJqT680rFpek1uPzj
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1095,Hydra:6.0.680,FMLib:17.12.68.34
 definitions=2025-04-14_04,2025-04-10_01,2024-11-22_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 bulkscore=0
 priorityscore=1501 mlxscore=0 spamscore=0 adultscore=0 mlxlogscore=844
 phishscore=0 clxscore=1015 lowpriorityscore=0 suspectscore=0
 impostorscore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.19.0-2502280000 definitions=main-2504140102

On Fri, Apr 11, 2025 at 04:46:58PM +1000, Nicholas Piggin wrote:
> On Tue Apr 8, 2025 at 1:11 AM AEST, Alexander Gordeev wrote:
> > Reverse 'create' vs 'mm == &init_mm' conditions and move
> > page table mask modification out of the atomic context.
> >
> > Signed-off-by: Alexander Gordeev <agordeev@linux.ibm.com>
> > ---
> >  mm/memory.c | 28 +++++++++++++++++-----------
> >  1 file changed, 17 insertions(+), 11 deletions(-)
> >
> > diff --git a/mm/memory.c b/mm/memory.c
> > index 2d8c265fc7d6..f0201c8ec1ce 100644
> > --- a/mm/memory.c
> > +++ b/mm/memory.c
> > @@ -2915,24 +2915,28 @@ static int apply_to_pte_range(struct mm_struct *mm, pmd_t *pmd,
> >  				     pte_fn_t fn, void *data, bool create,
> >  				     pgtbl_mod_mask *mask)
> >  {
> > +	int err = create ? -ENOMEM : -EINVAL;
> 
> Could you make this a new variable instead of reusing
> existing err? 'const int pte_err' or something?

Will do, when/if repost.

...

> > @@ -2944,12 +2948,14 @@ static int apply_to_pte_range(struct mm_struct *mm, pmd_t *pmd,
> >  			}
> >  		} while (addr += PAGE_SIZE, addr != end);
> >  	}
> > -	*mask |= PGTBL_PTE_MODIFIED;
> >  
> >  	arch_leave_lazy_mmu_mode();
> >  
> >  	if (mm != &init_mm)
> >  		pte_unmap_unlock(mapped_pte, ptl);
> > +
> > +	*mask |= PGTBL_PTE_MODIFIED;
> 
> This is done just because we might as well? Less work in critical
> section?

Yes.

Thanks!


From xen-devel-bounces@lists.xenproject.org Mon Apr 14 14:21:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 14:21:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.950461.1346767 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4Kh0-0006mp-Ol; Mon, 14 Apr 2025 14:21:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 950461.1346767; Mon, 14 Apr 2025 14:21:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4Kh0-0006mi-Ly; Mon, 14 Apr 2025 14:21:46 +0000
Received: by outflank-mailman (input) for mailman id 950461;
 Mon, 14 Apr 2025 14: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=JTEa=XA=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1u4Kgz-0006gm-Fm
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 14:21:45 +0000
Received: from fhigh-b6-smtp.messagingengine.com
 (fhigh-b6-smtp.messagingengine.com [202.12.124.157])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c9b7f9cd-193b-11f0-9eae-5ba50f476ded;
 Mon, 14 Apr 2025 16:21:43 +0200 (CEST)
Received: from phl-compute-12.internal (phl-compute-12.phl.internal
 [10.202.2.52])
 by mailfhigh.stl.internal (Postfix) with ESMTP id 092E525402F3;
 Mon, 14 Apr 2025 10:21:42 -0400 (EDT)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-12.internal (MEProxy); Mon, 14 Apr 2025 10:21:42 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon,
 14 Apr 2025 10:21:40 -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: c9b7f9cd-193b-11f0-9eae-5ba50f476ded
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=fm2; t=1744640501;
	 x=1744726901; bh=Mbt7L1xWIl5Ld+tmGpuhRHYWq5CPpb5A8BVIw8O6Yxk=; b=
	BmLNj1IWkJNmQBakWgV0eOVlTnyAKscVCgjz5OfXRi3IfahNz45MPrajZ3NcAOWT
	ysrYxxn7QBnvinOLey2VQ4tLkr+ay4hTWe1tw4/tdhdX+yKypJaJfomxMhTTgT/D
	lLIzOlDB7MdysJCq7Vax2i5QWyM0E0g4lknh1Q9pRlk98Tw9jinte/zrbYikpvyd
	PEX8DtsOHC9zgVQ9dbKaRxGt0ad12Cq7v2VoppKhpWy/IaI/x345yq3xp9VuT5Dj
	Wbi0xpKE7cpamOGWZfHGX/HGmhVoQ1TOu+6QRvVfBUOmlzAwy+cG6S828yJffJkZ
	X74XqEygnPMw53fdeYg5ug==
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=fm2; t=
	1744640501; x=1744726901; bh=Mbt7L1xWIl5Ld+tmGpuhRHYWq5CPpb5A8BV
	Iw8O6Yxk=; b=n9X+XYDDlcgmqi9ZlzgIKmvDg5rMpX6w5kGYmVSIAYwwPEETFL1
	3AannwupRA21URGceezoObryTCUNx05jHwMrxm88OsKZ1EYOgvpGREiw9+Nc5Bsf
	4AVs6nc5g5WVtm8ZZglfKmApphJcmJ7TfwFM+vmXnMMKZuToa4JsRO3XV/PLFRIS
	exxTAxWWK2fDFoJToxT500kYugHtws6mvW2yxy8UuaZY+MKq5/Mo8k+abGrUbDm5
	T0qFKvrQ3+kQwHtZVNuNomgwBhf3L0mwqA9yZJuUAlp8/McxL5u8bE6E546CqJL/
	+O0HizW2w0pW1YRb4YeBv6aV2nWzLmyhN4Q==
X-ME-Sender: <xms:9Rn9ZyItP0LNYFsvUb8WyyW1jYw1yrC9HCn-hvmQcU9ln06cM3jSVA>
    <xme:9Rn9Z6LfwFY_GNlQhSJqUQ-YiWTBGTPowysdyCcU81-RpgG8fbBRd98n6fiib2D4t
    a8AcN6l2Jnaow>
X-ME-Received: <xmr:9Rn9Zyscw9Vm1SOnUqNcPH40vIKBKxolF85jbXina3-f36UAr7wB0cdqOUpUAdY3rFz8CUOjpVm-V7K5O9uiA0h1rbCe8KY9XQ>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvvddtjeejucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
    pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
    gvnhhtshculddquddttddmnecujfgurhepfffhvfevuffkfhggtggujgesghdtreertddt
    jeenucfhrhhomhepofgrrhgvkhcuofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuc
    eomhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecu
    ggftrfgrthhtvghrnhepgfduleetfeevhfefheeiteeliefhjefhleduveetteekveettd
    dvgeeuteefjedunecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhf
    rhhomhepmhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomh
    dpnhgspghrtghpthhtohepiedpmhhouggvpehsmhhtphhouhhtpdhrtghpthhtoheprghn
    ughrvgifrdgtohhophgvrhefsegtihhtrhhigidrtghomhdprhgtphhtthhopeigvghnqd
    guvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdprhgtphhtthhopegr
    nhhthhhonhihrdhpvghrrghrugesvhgrthgvshdrthgvtghhpdhrtghpthhtohepshhsth
    grsggvlhhlihhniheskhgvrhhnvghlrdhorhhgpdhrtghpthhtohepmhhitghhrghlrdho
    rhiivghlsegrmhgurdgtohhmpdhrtghpthhtoheptggrrhguohgvsegtrghrughovgdrtg
    homh
X-ME-Proxy: <xmx:9Rn9Z3YM6dWow6XPAj35MYONG2hC1w3dMwz7mIjlVpqzZZwyCPnaww>
    <xmx:9Rn9Z5YWeIJpfGO4IkVbTSXtMBBIiNfaiNA8S7GpQCmCx-NU8I8ICA>
    <xmx:9Rn9ZzD-mtiorCUgoqhYvvCIV_Cly133JBsjs_reK83-ZeNNt78J-Q>
    <xmx:9Rn9Z_brOuFNrGj2MVc1g45F4YDtTb0QjT6r-Tnsk4sdEX9NGFwWIQ>
    <xmx:9Rn9Z2tDcNGX9TNmvttxMlZQvY4N8qcs9j_bpk-ZkCM689HL3Ba4FyRw>
Feedback-ID: i1568416f:Fastmail
Date: Mon, 14 Apr 2025 16:21:38 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>,
	Doug Goldstein <cardoe@cardoe.com>
Subject: Re: [PATCH v2 5/7] Adjust directory layout for rootfs.cpio.gz
Message-ID: <Z_0Z8ottaFVxxlu1@mail-itl>
References: <20250414101843.2348330-1-andrew.cooper3@citrix.com>
 <20250414101843.2348330-6-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="xR1UuYPl7b5TtVyB"
Content-Disposition: inline
In-Reply-To: <20250414101843.2348330-6-andrew.cooper3@citrix.com>


--xR1UuYPl7b5TtVyB
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Mon, 14 Apr 2025 16:21:38 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>,
	Doug Goldstein <cardoe@cardoe.com>
Subject: Re: [PATCH v2 5/7] Adjust directory layout for rootfs.cpio.gz

On Mon, Apr 14, 2025 at 11:18:41AM +0100, Andrew Cooper wrote:
> All tests using the rootfs currently modify it with:
>=20
>   mkdir proc
>   mkdir run
>   mkdir srv
>   mkdir sys
>   rm var/run
>=20
> This is because the rootfs doesn't have the correct top level directories.
> Furthermore, dev is currently included when it oughtn't to be.
>=20
> srv is easy.  It's an empty directory and can be included in PATHS.
>=20
> dev, proc, run and sys are all mount points, which OpenRC knows how to
> populate on boot.  Create only the top level directories in rootfs, witho=
ut
> `find` recursing into them.
>=20
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Reviewed-by: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblethingslab.c=
om>

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmf9GfIACgkQ24/THMrX
1ywC3Qf+PcQDHTlDkI9WWEw7kIE6kA3MdpOHcvx4W36K1D8J8rARqHuqIC33J+q2
TgggXKY9S2nI22aTol20fIjI1JxioOiN1V90EPrk8tSySJfZxDJuxqvHn61Wz8Tv
MgXXajxKFcUZ/+/vYPKpLBQ/UhMkSfFDjYOz57WDi9l9WU51DUjoVT4cHQ5GS2Y5
XPy7j3aJeIB32aez5jVRjuKe+7MO+HqNIfsUdMPaR+Q5et9R0F/4U4ahPScEz6Sy
bbHMk0+KK2NaRBzBxsyaCGeMUCyPrFlFF16wEuQ2wT92/JJt45Pqev4r7Vlf3849
5mpDrIx9Wd2GQJsylHaEDAsD5+zciA==
=DChZ
-----END PGP SIGNATURE-----

--xR1UuYPl7b5TtVyB--


From xen-devel-bounces@lists.xenproject.org Mon Apr 14 14:22:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 14:22:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.950473.1346776 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4Khd-0007bC-0G; Mon, 14 Apr 2025 14:22:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 950473.1346776; Mon, 14 Apr 2025 14:22: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 1u4Khc-0007b5-Tw; Mon, 14 Apr 2025 14:22:24 +0000
Received: by outflank-mailman (input) for mailman id 950473;
 Mon, 14 Apr 2025 14:22: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=JTEa=XA=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1u4Khb-0007Yi-4g
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 14:22:23 +0000
Received: from fout-b7-smtp.messagingengine.com
 (fout-b7-smtp.messagingengine.com [202.12.124.150])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e0a867e3-193b-11f0-9eae-5ba50f476ded;
 Mon, 14 Apr 2025 16:22:22 +0200 (CEST)
Received: from phl-compute-04.internal (phl-compute-04.phl.internal
 [10.202.2.44])
 by mailfout.stl.internal (Postfix) with ESMTP id BBD7911400B4;
 Mon, 14 Apr 2025 10:22:20 -0400 (EDT)
Received: from phl-mailfrontend-01 ([10.202.2.162])
 by phl-compute-04.internal (MEProxy); Mon, 14 Apr 2025 10:22:20 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon,
 14 Apr 2025 10:22:19 -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: e0a867e3-193b-11f0-9eae-5ba50f476ded
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=fm2; t=1744640540;
	 x=1744726940; bh=7HskunbLaLDVeUAl7RZ/zpIES69yBWZlfA2EVwQb9TE=; b=
	N4mRN1OPPFUi2A/JP4fHS2YA6ko1fuUTG2/Av6ouIloUSdStm8CVig8TCMbTvvzZ
	amN1YvT6g9wXZqCcL1dOlwOYIhSefhymgeSCZs/DJZHUcQOenFm55tUNF8NRcSlk
	FMsUCnnQqgX6tvEQRwB9rFJeSyxKX9e+go5bydLZ+bVm6aVv6mA0aLUIrMak3X1t
	vksDEPvmLwEdaHvuCqP7xwpqczNaTw+YQLiaz4tgtWPlx551eHKlLlzu0K6jYRq3
	8iiRDWXBCgqZ8LIWhL1l+cscNlJRUP9UAdhcQVmoBOL6Uq1pP9jZxr9Yz7ariz+a
	4gjtQuMThaGr/cQBYalAcg==
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=fm2; t=
	1744640540; x=1744726940; bh=7HskunbLaLDVeUAl7RZ/zpIES69yBWZlfA2
	EVwQb9TE=; b=gHAo+kxOgoFgWnTB4BGbYNL7vJcJ9jMUkDaDWHoVZLdtGWQ/waU
	rBgXSXTCRAq33TKhd6bOtr0NF6nEqXQHKbau+lJwFeznvUPHphv78ugkVs4+URks
	6Fa4+Pd4kvWv9nrGW797R7FBKQiVqfrB3j2nalG1IrDJO+FZ0u1c6b8BheSe7Icb
	V3oQgkG/qS9gfHQcePlTPWNckCnlf9V+k+YBBAaUAANI/mc3IKuQYngnXBcUG/hu
	zRmCu0GG1LwS7JE95MkgsRsqBCFRVZLEkAcvBOFezU2Tnfd20Wp1uwn3hfF9NvCR
	9bBQnaCTnvy2ecC25Eud1uLkxmMPbXCoxXw==
X-ME-Sender: <xms:HBr9Z0G24uUVB9Dwl1jRHd9UplYgGdVN2Ym-Y6jw0TJBT3DwuqWxJA>
    <xme:HBr9Z9UbKDtlcqR_djuVV_ewzkFv4Azx7liHDWyN1gJe-_t9z6hEMeMTO47l8KGmu
    5mMSnGnz2AWQA>
X-ME-Received: <xmr:HBr9Z-KP0Y6z76AqJl6MWv3XsCE0xwXtk_A6__fEUTXkbFUfpI3_ob18ZDRazQyxBLmUqBRyNlLemXV1dB1fG4fSZ80Lkq9qvw>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvvddtjeejucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
    pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
    gvnhhtshculddquddttddmnecujfgurhepfffhvfevuffkfhggtggujgesghdtreertddt
    jeenucfhrhhomhepofgrrhgvkhcuofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuc
    eomhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecu
    ggftrfgrthhtvghrnhepgfduleetfeevhfefheeiteeliefhjefhleduveetteekveettd
    dvgeeuteefjedunecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhf
    rhhomhepmhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomh
    dpnhgspghrtghpthhtohepiedpmhhouggvpehsmhhtphhouhhtpdhrtghpthhtoheprghn
    ughrvgifrdgtohhophgvrhefsegtihhtrhhigidrtghomhdprhgtphhtthhopeigvghnqd
    guvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdprhgtphhtthhopegr
    nhhthhhonhihrdhpvghrrghrugesvhgrthgvshdrthgvtghhpdhrtghpthhtohepshhsth
    grsggvlhhlihhniheskhgvrhhnvghlrdhorhhgpdhrtghpthhtohepmhhitghhrghlrdho
    rhiivghlsegrmhgurdgtohhmpdhrtghpthhtoheptggrrhguohgvsegtrghrughovgdrtg
    homh
X-ME-Proxy: <xmx:HBr9Z2G7uvtq-CKLJzvv-4gkdZh1cnbk1i1wtapb3qbowrqhMgnQZA>
    <xmx:HBr9Z6WyigouH9OEzJDqzmMexUrNQpv9hTIgrDioH47Odv4CcwxJiw>
    <xmx:HBr9Z5PqkGCeCbsFYAMNOh1mRmeaqPsVrLRBTmjh3jK38jR-R9LXnQ>
    <xmx:HBr9Zx2ElXwEBylTdM8BX7oZ2NiUI23hIetpE37k0N2nc-6MPcseIQ>
    <xmx:HBr9Z4o6IvJO1Qz2Am-wwwb2YvvArlqTCtHucu8m9T1LsA8C-74sj8o4>
Feedback-ID: i1568416f:Fastmail
Date: Mon, 14 Apr 2025 16:22:17 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>,
	Doug Goldstein <cardoe@cardoe.com>
Subject: Re: [PATCH v2.1 4/7] Shrink the rootfs substantially
Message-ID: <Z_0aGT-YW-EeVPnb@mail-itl>
References: <20250414101843.2348330-5-andrew.cooper3@citrix.com>
 <20250414115226.2357714-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="FvLreH1ddAa5vxOm"
Content-Disposition: inline
In-Reply-To: <20250414115226.2357714-1-andrew.cooper3@citrix.com>


--FvLreH1ddAa5vxOm
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Mon, 14 Apr 2025 16:22:17 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>,
	Doug Goldstein <cardoe@cardoe.com>
Subject: Re: [PATCH v2.1 4/7] Shrink the rootfs substantially

On Mon, Apr 14, 2025 at 12:52:26PM +0100, Andrew Cooper wrote:
> bash, busybox, musl and zlib are all in the base container.
>=20
> python3 and ncurses are in principle used by bits of Xen, but not in anyt=
hing
> we test in CI.  argp-standlone, curl, dbus, libfdt, libgcc and sudo aren't
> used at all (for x86 at least).
>=20
> libbz2 and libuuid were pulled in transitively before, and need to be inc=
luded
> explicitly now.
>=20
> Use apk --no-cache to avoid keeping a ~2M package index on disk.  Use apk
> upgrade in case there are changes to the base container.
>=20
> Remove the modules scan on boot.  We don't have or build any (except argo=
, and
> that's handled specially).  This removes a chunk of warnings on boot.
>=20
> This shrinks the rootfs from ~30M down to ~8M.
>=20
> Factor out some x86-isms in preparation for ARM64 support.
>=20
> No practical change.
>=20
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Reviewed-by: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblethingslab.c=
om>

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmf9GhkACgkQ24/THMrX
1yxtpQf/a1SO2RhBh9N6yMD9jJNJqIZjD7OrjtmxqQH4sN+e5K3z7xLANuqKo6eI
VWd8+mAmMRGubq/KrNl4RgkBIaSyhjpyUtIJJjmxqc8PQTX+hP+WAaTIDCBM5uKz
88WR0VPc6t/9F48zOTCrdHdxb69HBZh4KnwBwXaTAWBdDZpJ9DicyumLH0vhAbzN
pl7h5v+M7BR+r1l/rny2+9v67EoEV1jpDXSTtRzpze/8x6jI7EGzOekkW97yYqeu
va8e9xAb6kf8URJvlusXL/lGVVBUXnPO0RmPD5YitAkmxCmurlh1XT1D80HbxsWH
orEh5fwwHZEuwwObOUHN28O0iSyaDg==
=TR81
-----END PGP SIGNATURE-----

--FvLreH1ddAa5vxOm--


From xen-devel-bounces@lists.xenproject.org Mon Apr 14 14:23:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 14:23:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.950490.1346797 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4Kip-0000JC-Hg; Mon, 14 Apr 2025 14:23:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 950490.1346797; Mon, 14 Apr 2025 14:23: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 1u4Kip-0000J5-E2; Mon, 14 Apr 2025 14:23:39 +0000
Received: by outflank-mailman (input) for mailman id 950490;
 Mon, 14 Apr 2025 14:23: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=B3Nx=XA=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u4Kin-0008UW-Vs
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 14:23:38 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on20601.outbound.protection.outlook.com
 [2a01:111:f403:2415::601])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0ca43d90-193c-11f0-9ffb-bf95429c2676;
 Mon, 14 Apr 2025 16:23:36 +0200 (CEST)
Received: from SJ0PR03CA0338.namprd03.prod.outlook.com (2603:10b6:a03:39c::13)
 by IA1PR12MB6353.namprd12.prod.outlook.com (2603:10b6:208:3e3::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.32; Mon, 14 Apr
 2025 14:23:29 +0000
Received: from CO1PEPF000044F8.namprd21.prod.outlook.com
 (2603:10b6:a03:39c:cafe::17) by SJ0PR03CA0338.outlook.office365.com
 (2603:10b6:a03:39c::13) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.34 via Frontend Transport; Mon,
 14 Apr 2025 14:23:29 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CO1PEPF000044F8.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.8678.4 via Frontend Transport; Mon, 14 Apr 2025 14:23:28 +0000
Received: from localhost (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; Mon, 14 Apr
 2025 09:23:26 -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: 0ca43d90-193c-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=jDi9yO2iI5QXGXwlxFWQB/lQlskYgJ2sUOAFgcvsrcLNTnQTOpCSknQ30fqNfcogsSwslUuKOscTRU2D2wb1xU5YJf7pq3604TA5kSWZ1o5psxVJzplbr4u9Qq1lyXK7yBKRTTb1XWSUZ5ZwaZETJuHggHbM7koeptlSMTic4SJeLaraXf6S7LpULxNntLQTkaHZSkQfSgs94cdxu4u4JIk++YpcYHqWzXwreqb/huXE7fHut6SjJ8g3WnmZFJ8vRVfwEJKMkVSnLXs3+mZSy9hsRoe7rhWo+1U3apZPKnQiXq2+mtufz69SPvZVwIiKURNRFpuU+cE98X/nsfTIbw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Pp9xxz8ykLGzTW+jm5pxYvxvYog1N8ZMeDHRKQyyLHM=;
 b=X6rD1mtmkS6LguWvSO2dV1HDs1avans1F36O+gnOFR5GGU8hv9Y345fPHkbO+EdqOUYUnLm3ZcHtRnQLfeus9O3oLnjMicbYLFLaFy0rMQHP2//ZlgBYYDeQ0DlNtTZcr+w4RUIRqhEyftsnLveU578G20Yw9CqX8sUpTm/6fqMisHK7vEU/tr61Q94J2hWglWcMo19d/EHemW3KmBZv9RB1zzVLlM7BtdAxnz/32J4HE5azVVgyfAkGqQ6ERMR8Ujs90NZHHyndY4HJmlIk0OYC+R64owiyTkHxes+FAB8aRyxofnwrsnuDGxyx/zLMN061gYtfgcwOuEzF1lQQ/Q==
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=Pp9xxz8ykLGzTW+jm5pxYvxvYog1N8ZMeDHRKQyyLHM=;
 b=rQRLIV5+o4EE+ug0rLsUuTUYL5zsaRjnHWgBt3nbSH5Mbv1IuhFd8cDXvbrb44FDL5/zSfC1OIJ0viy73qCyPeZoFxhBylcwETgm5DVL5Y9DN4QobqwzzqTvgYqeBcQ69ffuJXnwvhy6RhKQs247AqIxZtLtpnTq+FXRvxgnVZg=
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
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Mon, 14 Apr 2025 15:23:25 +0100
Message-ID: <D96FH9LMHYXJ.2BDEIEANJSYVD@amd.com>
Subject: Re: [PATCH v3 10/16] x86/hyperlaunch: obtain cmdline from device
 tree
From: Alejandro Vallejo <agarciav@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "Daniel P. Smith" <dpsmith@apertussolutions.com>, Jason Andryuk
	<jason.andryuk@amd.com>, Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	"Stefano Stabellini" <sstabellini@kernel.org>, Michal Orzel
	<michal.orzel@amd.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Julien Grall
	<julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
	<xen-devel@lists.xenproject.org>
X-Mailer: aerc 0.20.1
References: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-11-agarciav@amd.com>
 <dccb3dd3-eac8-40b4-8ffb-a0ccb688ac0e@suse.com>
In-Reply-To: <dccb3dd3-eac8-40b4-8ffb-a0ccb688ac0e@suse.com>
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: CO1PEPF000044F8:EE_|IA1PR12MB6353:EE_
X-MS-Office365-Filtering-Correlation-Id: 708cd3e4-156c-49d4-72a8-08dd7b5fed2e
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?Z3ZaS09lcTJ1TnVXKzdvV0pPZ2JQVjA3YVpidGE4dWZHeTBqM0RxUjRuczVS?=
 =?utf-8?B?NExRWkVDQXp0UHcrc3FZNW5nN3ZZcmVhL0RuVlhjK2dtY2dFK05xdG9hN1V4?=
 =?utf-8?B?MEZ6eGFORDNIZGx0Vk5xZzV1VTlPa0FNV01OampWYlBNcTkrMUk5TmxZY0RW?=
 =?utf-8?B?Rm9iOVM4aUJ1ZVdTNUd5TEpNSWZaQ0w3SjdKdDFEWFQ2d2J5NExBdVF6eHBk?=
 =?utf-8?B?WE9Cc2creGhZYjF6TXMxOG5OTWdrbFdheUsyWGJmUGNtS0hhUmQrOU5hNSt2?=
 =?utf-8?B?MmFCa2hxUzZURDVGYVRwRlpWNWRnc2FxVkZSRzRNNVZkZHJlNlV0NVhqRkN4?=
 =?utf-8?B?RDhYRWlHMWlHd1llUFhFT0J4bEtUUFRvcDhRVXNCN2JIbS8rcDBkUGFBdmxU?=
 =?utf-8?B?TVVuV0kvUE9aTCtzOXZqeGM3blFHRWdZdW0xek9VM09xc0Fab2tqdG9tUjZK?=
 =?utf-8?B?VG4zRXVnQlo3c1dQbmlWWjB3emswK2xBQk5idytvQXZITktRYjhJNnUwLzF4?=
 =?utf-8?B?RFR1ZVJDYTdKVFVtT3p3MWFwNzVITm42d09PbmJrcEpvb2w3MTRIK3FBZ3Q4?=
 =?utf-8?B?L3lNYUg5Nm5kVnFGYVowbnRFcE0rS1NXbzVuaGJUQ1daaWlYZDFURkNScDBB?=
 =?utf-8?B?cnc3Zzdidmdqa0tlNWZ3Mys0T3YwcUJEamVUbFZBQThXSFBqb3kvUU9Zak85?=
 =?utf-8?B?NUNVRmFsaW5VU1RmM04vOFVHcHBnT3NUaHVjejdhY003b3lPTldVamZFRElL?=
 =?utf-8?B?MmtGQkVUL1FYTFNvbDhNNmNPVHRKOXBrT0ZvZmVtcXR0UjBCenUvMHcwelVU?=
 =?utf-8?B?NjlEaFBpZVNEdVdEYVVrSGlKWElKSUtLdmZaUjNhOGgvZEVvdGpCRHU5dWRD?=
 =?utf-8?B?bFRRdFFlVHU3TzhZcVVqSkRaTnNQQ29qOTdsbDlFQkRXcUhpdXU3aEQ3TnVL?=
 =?utf-8?B?WVNobHUrVS9ya3Y1dTMyTWljS2RueGRwRzQwaUU0aWpqREx0dzNKVWhid2Y5?=
 =?utf-8?B?MnUvclpqRGlrckgxMXBlUWQ4N1VRTzdPRjdsc0xuTEU5dkxXVWQwZE5VdjlR?=
 =?utf-8?B?YXAzZEw0RzRCWDV4T01GSGJzeEZ0MkFMZEM1VXNZV2RXWjh5MkI3ZmN3WWJr?=
 =?utf-8?B?dVEwWTRyMDdPQlJYQ3BIS1Z3QWFXZGJXQzBVeWhxc2RZQitNQWo1N0hscXlj?=
 =?utf-8?B?Y0NhTWkvT1hIcVRUUFg3dm4zRTRKUkZhdmVYTDZ2VHl3THRFY2UzR1M0Ujhm?=
 =?utf-8?B?NDFnaGI4S1N3N2NPbDVRYkhhL2lEOCtQa0JGZWZGUTFvbG5wZjFKRDVwYit4?=
 =?utf-8?B?VThmcmNUOXZvQjlrUjh1NnpHbVRyeWQxeFN5V1VVUGpTZkVQZ0oyWjJyNWxo?=
 =?utf-8?B?ZERPa3RYakoyWFRzWTBlMTJWSXovTk42VjlmZEpxL1pQUzlmQ1Z4VTBCZnY0?=
 =?utf-8?B?SVlSZ0h2blhjVHcyT01xaWQzVnFWdUlVUHRsUFQ5TjR2L1dwWEtET0pBbXpI?=
 =?utf-8?B?NnY4OExpa0ZBSURLMmdjV1prS2RPS0N4VnZTRzdEKzArVUhUWmFtcFB1c3Jk?=
 =?utf-8?B?dWJXUUd3cTZ6RXJYSlF4RkFwRkdUYTVucGgzL3FxdGJMNWhBc2VKbE1FaGg0?=
 =?utf-8?B?WGxka21Od2c4Y1ZZNUQxdHJlbG9uckRDY01qSS9xRG96c2lTUUVvbHNKeU9P?=
 =?utf-8?B?eFVQbkQrK214WGZkZ0FGb1dWSjFOakdJdmZyeUxtczB1akwxYXdQTWRIRzds?=
 =?utf-8?B?VGtna0FHSXo4UTZTK3ByNVdPZG9HcWpKOVY0ejJ4ZEJGbDlWdkxoRDdEWFlh?=
 =?utf-8?B?a2RsNzZ5UUdOYXBhVHhBalhETFVna0Vrbkxtb1lrSHRQM3QrZVNTY2lMR2Z0?=
 =?utf-8?B?M0JHaVErVzM2ZXJQQmRFei8xaExjVm4xVnorRkxyeGZDUTZ6VkpWZnNrWlZt?=
 =?utf-8?B?UFJMZWxCYmpVMGpZR0FOQXZPS2hCOW5GcnNWNDZvem0vQ0p1YW94SkxsUjc0?=
 =?utf-8?B?WHZ1S0FpMndINHpMQThmVEZ3bk9kK0FQYUtubm11UjU5bVJhS2ttTFlaeUNB?=
 =?utf-8?Q?fYT6jA?=
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: 14 Apr 2025 14:23:28.6286
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 708cd3e4-156c-49d4-72a8-08dd7b5fed2e
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:
	CO1PEPF000044F8.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB6353

On Thu Apr 10, 2025 at 12:12 PM BST, Jan Beulich wrote:
> On 08.04.2025 18:07, Alejandro Vallejo wrote:
>> --- a/xen/arch/x86/domain-builder/core.c
>> +++ b/xen/arch/x86/domain-builder/core.c
>> @@ -8,9 +8,37 @@
>>  #include <xen/lib.h>
>> =20
>>  #include <asm/bootinfo.h>
>> +#include <asm/setup.h>
>> =20
>>  #include "fdt.h"
>> =20
>> +size_t __init builder_get_cmdline_size(struct boot_info *bi, int offset=
)
>> +{
>> +#ifdef CONFIG_DOMAIN_BUILDER
>> +    const void *fdt =3D bootstrap_map_bm(&bi->mods[HYPERLAUNCH_MODULE_I=
DX]);
>> +    int size =3D fdt_cmdline_prop_size(fdt, offset);
>> +
>> +    bootstrap_unmap();
>> +    return size < 0 ? 0 : size;
>
> Use max() instead of open-coding it?

Sure. On an unrelated matter, I've also removed the ifdef and relied on
DCE for v4 for this and the next helper.

>
>> --- a/xen/arch/x86/domain-builder/fdt.c
>> +++ b/xen/arch/x86/domain-builder/fdt.c
>> @@ -189,6 +189,12 @@ static int __init process_domain_node(
>>              printk("  kernel: boot module %d\n", idx);
>>              bi->mods[idx].type =3D BOOTMOD_KERNEL;
>>              bd->kernel =3D &bi->mods[idx];
>> +
>> +            /* If bootloader didn't set cmdline, see if FDT provides on=
e. */
>> +            if ( bd->kernel->cmdline_pa &&
>> +                 !((char *)__va(bd->kernel->cmdline_pa))[0] )
>> +                bd->kernel->fdt_cmdline =3D fdt_get_prop_offset(
>> +                    fdt, node, "bootargs", &bd->kernel->cmdline_pa);
>
> Somewhat orthogonal question: Should there perhaps be a way for the boot =
loader
> provided cmdline to go at the tail of the DT provided one?

That would preclude the bootloader fully overriding what's on the DT.
One can always just copy the cmdline in the DT to the bootloader and
adjust whatever is necessary there for testing. Adding append behaviour
sounds more like a hindrance rather than helpful. To me at least.

>
>> --- a/xen/arch/x86/domain-builder/fdt.h
>> +++ b/xen/arch/x86/domain-builder/fdt.h
>> @@ -12,6 +12,31 @@ struct boot_info;
>>  #define HYPERLAUNCH_MODULE_IDX 0
>> =20
>>  #ifdef CONFIG_DOMAIN_BUILDER
>> +
>> +static inline int __init fdt_cmdline_prop_size(const void *fdt, int off=
set)
>> +{
>> +    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 =3D
>> +        fdt_get_property_by_offset(fdt, offset, &ret);
>> +
>> +    if ( ret < 0 )
>> +        return ret;
>> +
>> +    ASSERT(size > ret);
>> +
>> +    return strlcpy(cmdline, prop->data, ret);
>> +}
>
> What's the rationale for these to be separate functions, rather then the =
code
> being integrated into their sole callers? Especially for the former the e=
xtra
> layer feels excessive.

I've moved them onto domain-builder/fdt.c (where I believe they were
originally?) for v4.

>
>> --- a/xen/arch/x86/include/asm/domain-builder.h
>> +++ b/xen/arch/x86/include/asm/domain-builder.h
>> @@ -3,6 +3,10 @@
>> =20
>>  struct boot_info;
>> =20
>> +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);
>
> No __init on declarations please.

Ack.

>
>> --- a/xen/arch/x86/setup.c
>> +++ b/xen/arch/x86/setup.c
>> @@ -984,7 +984,10 @@ static size_t __init domain_cmdline_size(
>>  {
>>      size_t s =3D bi->kextra ? strlen(bi->kextra) : 0;
>> =20
>> -    s +=3D bd->kernel->cmdline_pa ? strlen(__va(bd->kernel->cmdline_pa)=
) : 0;
>> +    if ( bd->kernel->fdt_cmdline )
>> +        s +=3D builder_get_cmdline_size(bi, bd->kernel->cmdline_pa);
>> +    else
>> +        s +=3D strlen(__va(bd->kernel->cmdline_pa));
>
> Why's the check lost for bd->kernel->cmdline_pa being non-zero?

Shouldn't have been, indeed.
>
>> @@ -1047,9 +1050,12 @@ static struct domain *__init create_dom0(struct b=
oot_info *bi)
>>          if ( !(cmdline =3D xzalloc_array(char, cmdline_size)) )
>>              panic("Error allocating cmdline buffer for %pd\n", d);
>> =20
>> -        if ( bd->kernel->cmdline_pa )
>> +        if ( bd->kernel->fdt_cmdline )
>> +            builder_get_cmdline(
>> +                bi, bd->kernel->cmdline_pa, cmdline, cmdline_size);
>> +        else
>
> Same here.

Ack.

>
>>              strlcpy(cmdline,
>> -                    cmdline_cook(__va(bd->kernel->cmdline_pa), bi->load=
er),
>> +                    cmdline_cook(__va(bd->kernel->cmdline_pa),bi->loade=
r),
>
> The change to this line is bogus altogether.

Ugh, yes.

>
>> --- a/xen/include/xen/libfdt/libfdt-xen.h
>> +++ b/xen/include/xen/libfdt/libfdt-xen.h
>> @@ -23,6 +23,29 @@ static inline uint64_t  __init fdt_cell_as_u64(const =
fdt32_t *cell)
>>      return ((uint64_t)fdt32_to_cpu(cell[0]) << 32) | fdt32_to_cpu(cell[=
1]);
>>  }
>> =20
>> +static inline bool __init fdt_get_prop_offset(
>> +    const void *fdt, int node, const char *name, unsigned long *offset)
>> +{
>> +    int ret, poffset;
>> +    const char *pname;
>> +
>> +    fdt_for_each_property_offset(poffset, fdt, node)
>> +    {
>> +        fdt_getprop_by_offset(fdt, poffset, &pname, &ret);
>> +
>> +        if ( ret < 0 )
>> +            continue;
>> +
>> +        if ( strcmp(pname, name) =3D=3D 0 )
>> +        {
>> +            *offset =3D poffset;
>
> Variable naming looks backwards here.
>
> Jan

I think the leading p stands for "property" (for the sake of giving it a
name). But I see how that might be confusing when interpreted with a
Hungarian notation lens.

I'll invert it. It doesn't matter which is which, after all.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Mon Apr 14 14:23:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 14:23:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.950489.1346787 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4Kij-0008Un-9u; Mon, 14 Apr 2025 14:23:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 950489.1346787; Mon, 14 Apr 2025 14:23:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4Kij-0008Ug-6x; Mon, 14 Apr 2025 14:23:33 +0000
Received: by outflank-mailman (input) for mailman id 950489;
 Mon, 14 Apr 2025 14:23: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=JTEa=XA=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1u4Kih-0008UW-Ej
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 14:23:31 +0000
Received: from fhigh-b6-smtp.messagingengine.com
 (fhigh-b6-smtp.messagingengine.com [202.12.124.157])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 08afdf74-193c-11f0-9ffb-bf95429c2676;
 Mon, 14 Apr 2025 16:23:29 +0200 (CEST)
Received: from phl-compute-01.internal (phl-compute-01.phl.internal
 [10.202.2.41])
 by mailfhigh.stl.internal (Postfix) with ESMTP id CE4F72540357;
 Mon, 14 Apr 2025 10:23:27 -0400 (EDT)
Received: from phl-mailfrontend-01 ([10.202.2.162])
 by phl-compute-01.internal (MEProxy); Mon, 14 Apr 2025 10:23:28 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon,
 14 Apr 2025 10:23:26 -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: 08afdf74-193c-11f0-9ffb-bf95429c2676
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=fm2; t=1744640607;
	 x=1744727007; bh=CpJrLx5acj21e4lYyniSM+Z+z3MKb2tvuLP7wJWy1dA=; b=
	UfAHWMCyAMMvL0Q8imTgn4jZ91+4LXaZH8M/XMIap1ICs1uLMxlEiPTDFKPus7hR
	ofpf25RTQ5cN2KwTzIsxQ/nrgP/iRYi3if5956SnaWF06b5SpZqneEg5sG60Wt8t
	i7f2SebB6sxgqZiPoiCUUf5Mg+XCnE8XBkBbbTYlVb0c8Wd9wKOvVxU8EGAT3toj
	3QHU3XgdfGc3OUvCd0iANJmIZKnfZDBCt93k63HsGpcDhpPpsys2Vnx5Ap+PpalX
	BOyRJY6uxNo2AopJ2FUUX36bikFMDiuwrfpiWMni2wSlOimIpavN6MRqZLzhsDt0
	2OeWTnixH09NimDjA2KJbA==
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=fm2; t=
	1744640607; x=1744727007; bh=CpJrLx5acj21e4lYyniSM+Z+z3MKb2tvuLP
	7wJWy1dA=; b=xYcVmO75D5GKHL6/xB5IC+QDwNfAnSv8w0eEUaAjkJ1zj7hBNcx
	RdQ/eRb094EG9QO3F3qCLCV3nPdMP7yUqOwQLCGUpaH3ssXkvqa3vnDNRkdmYA/G
	Y5aGgvIRUkQOk+jnvD8buu4W6sVaq0Gj4OJh4ltAf87CRY2lW6A/AB7WtEqZ6lP7
	kqcCtFQzNK/0hiWoOb3cDsc6jRyvwrZD/jNJ3+b/r4IOWJDKP+nNwBrQ8Ovv3BeV
	tVPBYipMe7rSGS59AagcheYcyGBEFyuAuWUYyO2gBh1z8ILmGooH5/weaAXjf2jm
	t/dkCAoW0AWQoTxXVJOhY+s+hD+GmVuNHsA==
X-ME-Sender: <xms:Xxr9ZwNNuxcZCes7y5deps8gJGdlqW5kK0kJY7Hg5WdYMlWoZl_6Bw>
    <xme:Xxr9Z2-YqkJ3ZePRYTSuGC7oTBLAgBAjiSxAvfhLXf8CD7vHKu4qrfR0GXKuZA7-t
    VaNK8rtnYsOPA>
X-ME-Received: <xmr:Xxr9Z3T5SmcxIHwvDgoSsSEg0Hjb5oYWEJ5YixCiAtIp8mM2hgpzcAfJs8pHrQhY4LUiyqitenV2dMB1gNU8aBZlsUnr8b7wtg>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvvddtjeelucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
    pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
    gvnhhtshculddquddttddmnecujfgurhepfffhvfevuffkfhggtggujgesghdtreertddt
    jeenucfhrhhomhepofgrrhgvkhcuofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuc
    eomhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecu
    ggftrfgrthhtvghrnhepgfduleetfeevhfefheeiteeliefhjefhleduveetteekveettd
    dvgeeuteefjedunecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhf
    rhhomhepmhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomh
    dpnhgspghrtghpthhtohepiedpmhhouggvpehsmhhtphhouhhtpdhrtghpthhtoheprghn
    ughrvgifrdgtohhophgvrhefsegtihhtrhhigidrtghomhdprhgtphhtthhopeigvghnqd
    guvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdprhgtphhtthhopegr
    nhhthhhonhihrdhpvghrrghrugesvhgrthgvshdrthgvtghhpdhrtghpthhtohepshhsth
    grsggvlhhlihhniheskhgvrhhnvghlrdhorhhgpdhrtghpthhtohepmhhitghhrghlrdho
    rhiivghlsegrmhgurdgtohhmpdhrtghpthhtoheptggrrhguohgvsegtrghrughovgdrtg
    homh
X-ME-Proxy: <xmx:Xxr9Z4va3Sp1gQXAHamK2EsFs9vNgjS0DugkgaGh_cnCSzj0QzzYpw>
    <xmx:Xxr9Z4ezNtFmikM43hxCzNNyzGVK4JJZqx2Jbrr-_Sj4MS2I9NkZBg>
    <xmx:Xxr9Z81W8EzFXbYNmN0yI_jIIdWvA20o30QqRcfJ9x6i5wYW3Zhhmg>
    <xmx:Xxr9Z8-06u3_gXlD4xy_sVlCLGmnIC76z5YadlCc0Zxq6gtkQm08ww>
    <xmx:Xxr9Z0z1f7eIo3Syr4341sY-1Ef41Phww2FATo2CSfspNuNF-woiwWjU>
Feedback-ID: i1568416f:Fastmail
Date: Mon, 14 Apr 2025 16:23:24 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>,
	Doug Goldstein <cardoe@cardoe.com>
Subject: Re: [PATCH v2 6/7] Provide an ARM64 rootfs too
Message-ID: <Z_0aXI4blnpek86T@mail-itl>
References: <20250414101843.2348330-1-andrew.cooper3@citrix.com>
 <20250414101843.2348330-7-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="UUc2FnNDIN9wif9Z"
Content-Disposition: inline
In-Reply-To: <20250414101843.2348330-7-andrew.cooper3@citrix.com>


--UUc2FnNDIN9wif9Z
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Mon, 14 Apr 2025 16:23:24 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>,
	Doug Goldstein <cardoe@cardoe.com>
Subject: Re: [PATCH v2 6/7] Provide an ARM64 rootfs too

On Mon, Apr 14, 2025 at 11:18:42AM +0100, Andrew Cooper wrote:
> The only extra package needed is libfdt.
>=20
> The older ARM64 rootfs configured modloop, networking and sysctl, but non=
e of
> this is used in any of the testing, so is omitted here for now.
>=20
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Reviewed-by: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblethingslab.c=
om>

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmf9GlwACgkQ24/THMrX
1yyMkAgAgGS2Oa/4B8l5ECw09JChrvPtI6gR/117TebHK7q9ueccNyoeiX+pu0sS
vUnxT97HcLCxbLSE+3rZSMaKKNyF0OF4znfAYXZpdOTdpu5Z5/wLcMsbdormy9mm
tOLRyHT9UuAOHN/jfWWx5Nlht3R91YzcbrXwwfsYK1Hu4mHEZt5ybqrXk+BHYZEp
nLyTPe1YhAp87v8L08zJbCiTVw/5322hMTk709gL3fLzbFPJOpjlb+AYn+qKwbVd
MdkQnDbMlzxEtTLRA4y9yt0GPa0Cu6jw0kG4a+P4WvHBLDGCdmdVmrGBi4azlX1Y
U+y4swgyd1/ezNZSLmH1jC8qAMqq2A==
=svLQ
-----END PGP SIGNATURE-----

--UUc2FnNDIN9wif9Z--


From xen-devel-bounces@lists.xenproject.org Mon Apr 14 14:50:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 14:50:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.950522.1346806 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4L8v-0007W4-NX; Mon, 14 Apr 2025 14:50:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 950522.1346806; Mon, 14 Apr 2025 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 1u4L8v-0007Vx-Kh; Mon, 14 Apr 2025 14:50:37 +0000
Received: by outflank-mailman (input) for mailman id 950522;
 Mon, 14 Apr 2025 14:50: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=YdIb=XA=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1u4L8u-0007Vp-FX
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 14:50:36 +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 d24a5b25-193f-11f0-9eae-5ba50f476ded;
 Mon, 14 Apr 2025 16:50:35 +0200 (CEST)
Received: by mail-ed1-x532.google.com with SMTP id
 4fb4d7f45d1cf-5e5e63162a0so7306993a12.3
 for <xen-devel@lists.xenproject.org>; Mon, 14 Apr 2025 07:50:35 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-64-225.play-internet.pl.
 [109.243.64.225]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-acaa1ccd255sm910312666b.156.2025.04.14.07.50.33
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 14 Apr 2025 07:50:33 -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: d24a5b25-193f-11f0-9eae-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1744642234; x=1745247034; darn=lists.xenproject.org;
        h=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=ssKW7qnqudOt5C98+v8q6rM8aAHHrH+UyYnvLLgTX8U=;
        b=SbWA9Ty7U8IcCD1AUu0jsRXtEjPVKlIjV0pV2VNvfCVzDNkJih0FsHAVH8bm9p+ksI
         X3R6FtBJDvP24wmhqLrvgfeHZYYkCFMso5QwDZ1nhMx2iLnJMcUCh73HiNWdeQlazYi1
         Un78xquxEJeypb3RaNn7COKDjXOXYSeYIc4jwJDY8BTFXMInytNqz65uADRYgHO4o61v
         ueEsRpOUE8k7C0fSvFNdKcBCYtylk8bnykzDFjVRV3qj6QY0EbQFZjJLoXsch1JLEtnP
         GeRBht1YgopsDWOdnA3CIez4F6xgpp6NK/J3yzR2WMcnJq1F1ftQ8l6xkKGOs+Y2n/1S
         k4wA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744642234; x=1745247034;
        h=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=ssKW7qnqudOt5C98+v8q6rM8aAHHrH+UyYnvLLgTX8U=;
        b=OwmnD6KlWUmhFuvUX+DxQMdnfamI2b/QUEQmfuRdkjPsY6BihzD/VkvZSaG+ZNiCC7
         BUud/hTEQPc3khkAY3oK7StJHcepd/AczSQTbxbCGy7EPENpa9fusS0D4FAbLfZsLPA2
         n5UTCrVGODPNqhZelvUYatLOVQxR4ilTfumzRMLdpPk8+csipbK7c8fraL5OFDohMDn6
         jxQw7+Wv4cCLRcyVbZtrQq4k6LsZsYPy4ETIEbQAcXeMRo2Odct51Ph3tEXrSux+IlVI
         2KVnbeYd9RIen7toLEzEgB5sYs4ny8TafknarFq70KpOrjm1Yd6VEhiIAVxksfY7mMr7
         pNSw==
X-Forwarded-Encrypted: i=1; AJvYcCW+InS63g2DwXpzUZexX1IqUYBpDb/Qb3vxhUNkuJ3j2reszi5mP3OM3/IDHimwga20KxRsJtrJ5fE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyWzm+U4AUA+fqlzMQrO37sn1VzYNYdf4A4G21of+DVLhZsE00T
	whDteyiiEmYUYcvaXVt7TclEKewS0vyrKCpXGeIstp1ZDoErMQN5
X-Gm-Gg: ASbGnctyMLHVhTQKUzcMdcdg8tr76dCky6KCtPWm1v/+k71XbSSride2/DhCSduofe8
	U33UN1wFCSoenjSNGOquACn0tGqpqSbpzYbQUv33gyHUEKj9laN1BCZA/vJ2q1X2cr76rZiITvW
	T9zsC7RIgXQZRC3xaGZ7Oay33KKUO87fygQ4ZFwRFTjEzXFbQbPNVkdTXxGOBTGXHqXxOEcWWGW
	Rq20DU4XZKJZoP+FaFgALZZaCcU0iEZONMjrKM7kLSjg3Cz/do97nu6KgZznvf0nZp2u3FrgG23
	e63KvIsYRXnXDdachdufYZhPHrBovFva8qkkQ6RNEVdfhfB3yc9klfjUBwjmlEWfcsRIIBYxfNv
	rgA6HI36LaJoE2cr5
X-Google-Smtp-Source: AGHT+IGtmczYQE2lLO/Swp2K6JUtF5S6Nrpq2iEg9+A5Yci3N77obqbyzsh9pHd7VA9g4kSe773q1g==
X-Received: by 2002:a17:907:3d0e:b0:ac7:ec75:c65b with SMTP id a640c23a62f3a-acad34dd659mr1171271866b.36.1744642234150;
        Mon, 14 Apr 2025 07:50:34 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------yo4C76a0szgaZfAxZHH92FIz"
Message-ID: <cedc9b5f-0a90-433c-957c-ecd2f6f26e7d@gmail.com>
Date: Mon, 14 Apr 2025 16:50:33 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 01/14] xen/riscv: implement get_s_time()
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1744126720.git.oleksii.kurochko@gmail.com>
 <e503aee3ef743210a8188a7da9e70a169dec1287.1744126720.git.oleksii.kurochko@gmail.com>
 <7f26a9cb-a685-4a2a-a470-8c5e94ddc31e@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <7f26a9cb-a685-4a2a-a470-8c5e94ddc31e@suse.com>

This is a multi-part message in MIME format.
--------------yo4C76a0szgaZfAxZHH92FIz
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 4/10/25 2:52 PM, Jan Beulich wrote:
> On 08.04.2025 17:57, Oleksii Kurochko wrote:
>> @@ -23,6 +24,11 @@ static inline cycles_t get_cycles(void)
>>       return csr_read(CSR_TIME);
>>   }
>>   
>> +static inline s_time_t ticks_to_ns(uint64_t ticks)
>> +{
>> +    return muldiv64(ticks, SECONDS(1), 1000 * cpu_khz);
>> +}
> Why the extra multiplication by 1000? I.e. why not
> "muldiv64(ticks, MILLISECONDS(1), cpu_khz)", getting away with just one
> multiplication and a reduced risk of encountering intermediate overflow
> (affecting only hypothetical above 4THz CPUs then)?

Multiplication by 1000 was needed to convert khz to hz, but yes, your option
would be better.

>
>> --- a/xen/arch/riscv/time.c
>> +++ b/xen/arch/riscv/time.c
>> @@ -4,10 +4,17 @@
>>   #include <xen/init.h>
>>   #include <xen/lib.h>
>>   #include <xen/sections.h>
>> +#include <xen/types.h>
>>   
>>   unsigned long __ro_after_init cpu_khz; /* CPU clock frequency in kHz. */
>>   uint64_t __ro_after_init boot_clock_cycles;
>>   
>> +s_time_t get_s_time(void)
>> +{
>> +    uint64_t ticks = get_cycles() - boot_clock_cycles;
>> +    return ticks_to_ns(ticks);
> Nit: Blank line between declaration(s) and statement(s) please, as well as
> ahead of the main "return" of a function.
>
> Happy to make both adjustments upon committing, so long as you agree; then:
> Reviewed-by: Jan Beulich<jbeulich@suse.com>

I'll be happy with that.

Thank you very much.

~ Oleksii

--------------yo4C76a0szgaZfAxZHH92FIz
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 4/10/25 2:52 PM, Jan Beulich wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:7f26a9cb-a685-4a2a-a470-8c5e94ddc31e@suse.com">
      <pre wrap="" class="moz-quote-pre">On 08.04.2025 17:57, Oleksii Kurochko wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">@@ -23,6 +24,11 @@ static inline cycles_t get_cycles(void)
     return csr_read(CSR_TIME);
 }
 
+static inline s_time_t ticks_to_ns(uint64_t ticks)
+{
+    return muldiv64(ticks, SECONDS(1), 1000 * cpu_khz);
+}
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Why the extra multiplication by 1000? I.e. why not
"muldiv64(ticks, MILLISECONDS(1), cpu_khz)", getting away with just one
multiplication and a reduced risk of encountering intermediate overflow
(affecting only hypothetical above 4THz CPUs then)?</pre>
    </blockquote>
    <pre>Multiplication by 1000 was needed to convert khz to hz, but yes, your option
would be better.

</pre>
    <blockquote type="cite"
      cite="mid:7f26a9cb-a685-4a2a-a470-8c5e94ddc31e@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">--- a/xen/arch/riscv/time.c
+++ b/xen/arch/riscv/time.c
@@ -4,10 +4,17 @@
 #include &lt;xen/init.h&gt;
 #include &lt;xen/lib.h&gt;
 #include &lt;xen/sections.h&gt;
+#include &lt;xen/types.h&gt;
 
 unsigned long __ro_after_init cpu_khz; /* CPU clock frequency in kHz. */
 uint64_t __ro_after_init boot_clock_cycles;
 
+s_time_t get_s_time(void)
+{
+    uint64_t ticks = get_cycles() - boot_clock_cycles;
+    return ticks_to_ns(ticks);
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Nit: Blank line between declaration(s) and statement(s) please, as well as
ahead of the main "return" of a function.

Happy to make both adjustments upon committing, so long as you agree; then:
Reviewed-by: Jan Beulich <a class="moz-txt-link-rfc2396E" href="mailto:jbeulich@suse.com">&lt;jbeulich@suse.com&gt;</a></pre>
    </blockquote>
    <pre>I'll be happy with that.

Thank you very much.

~ Oleksii</pre>
  </body>
</html>

--------------yo4C76a0szgaZfAxZHH92FIz--


From xen-devel-bounces@lists.xenproject.org Mon Apr 14 14:51:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 14:51:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.950534.1346818 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4L9u-0001X1-36; Mon, 14 Apr 2025 14:51:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 950534.1346818; Mon, 14 Apr 2025 14: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 1u4L9t-0001WW-U2; Mon, 14 Apr 2025 14:51:37 +0000
Received: by outflank-mailman (input) for mailman id 950534;
 Mon, 14 Apr 2025 14:51: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=Bm2T=XA=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1u4L9s-0007Vp-GS
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 14:51:36 +0000
Received: from EUR03-DBA-obe.outbound.protection.outlook.com
 (mail-dbaeur03on2061b.outbound.protection.outlook.com
 [2a01:111:f403:260d::61b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f522c8ba-193f-11f0-9eae-5ba50f476ded;
 Mon, 14 Apr 2025 16:51:33 +0200 (CEST)
Received: from PAZP264CA0096.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:1fb::11)
 by AS8PR08MB6472.eurprd08.prod.outlook.com (2603:10a6:20b:336::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.33; Mon, 14 Apr
 2025 14:51:30 +0000
Received: from AM4PEPF00025F9B.EURPRD83.prod.outlook.com
 (2603:10a6:102:1fb:cafe::cb) by PAZP264CA0096.outlook.office365.com
 (2603:10a6:102:1fb::11) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.34 via Frontend Transport; Mon,
 14 Apr 2025 14:51:30 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) 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.8678.4
 via Frontend Transport; Mon, 14 Apr 2025 14:51:30 +0000
Received: from DB7PR08MB2987.eurprd08.prod.outlook.com (2603:10a6:5:1c::25) by
 GV1PR08MB8741.eurprd08.prod.outlook.com (2603:10a6:150:85::10) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.8632.27; Mon, 14 Apr 2025 14:50:55 +0000
Received: from DB7PR08MB2987.eurprd08.prod.outlook.com
 ([fe80::d53f:b16d:70a5:8668]) by DB7PR08MB2987.eurprd08.prod.outlook.com
 ([fe80::d53f:b16d:70a5:8668%4]) with mapi id 15.20.8632.030; Mon, 14 Apr 2025
 14:50: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: f522c8ba-193f-11f0-9eae-5ba50f476ded
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=aIrgXBIqxKO4U1vPOPDhh01aw5EBgFX5/hZKutzV+rVhCsJbJtO2Vb5W7HiBzU1Py56HwoWwa+sUvqjbIfojkdjACzMSoVYSQzAbQEyS2ZPMiiJYNE86GjKcVVn8FgIa7hTWo0BSZCemtv42A6bU8brbbNXru7kXx+4n/Q0fl7i/oAuFiNCiBWgf49TSS98tnSuPfld788klIlqZswCuzJ8b+FTgL6UrUEYpNDcALMsqolghAAH+0ObFJ8XaQA9eYo2NfVOQtEDxaMeoKp4rtQvD09aWeHljvHkSAIpGia10zma0/g4jgnXfXpafyTZao4NxI4tN0WLiivZRc2RM/w==
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=IZ9JwRmV2mBzMtx9v9RYjZunck0Kd8DU6/udbxMQ77s=;
 b=cqqPYO2qebtApw3M+kQSOP4OT1Ln+e/jpz4aRb/urKVwc/LxbcVDyAAGFdzVBD1TlnwBnreKz+DfiZc0uG4itRLfnjd5F37515M1PVQBpDz4MiOQ2dQxolYvvW9evEcT4/N+l0RGs1Hf6cWkd3+u0UbDgX/g4W0zRreVw8ioeBKuXb/WNRDL0sftFUgvXjV02EysgT7I4Rxga9pUpai138HdHEb00l+Dvde1wwJ9WIunrXiQ8YZtGixFtET2uy0ssJ88ISlApTybuXQUb+mubYhS2cK7d4ztPnwoQbMts8QuaXCXqQkAV76kmvZ2/w94mIj2s40N7tMwOe380M3x8Q==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=amd.com smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=IZ9JwRmV2mBzMtx9v9RYjZunck0Kd8DU6/udbxMQ77s=;
 b=rI6+OSFNMWWOA4yZcYgu42lzWvUm7z9QHyGGVgD+Z3+aSrMXFRU8GXzy3R9fws11y1yxT7n1VJHT0NqcWpsDpC7nnaEZuWIJielD7RX3VZx9TFuEKIt0RRvzJDjg8KmZyqpp0z1ilgmqyHsw3Lq+xWuZ/yxOcmgOiRTNZgBj+18=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=eA0J4ybIqdup5ZAv2R1c/6OxBsoZHxk3u2VytZoJyXi43G9R6smTHbN/0JeU6cg80FbxjPwJe+GwaUpvxlUeXTYWry2otroNCHNfCRj26VrhLkoL54EXT0Om+1l2CEM/jdtRxBqhh1ya7q/FD7E2TsxobaeMIx+xgwfDWKrUZ6WUck9mzykHGTTVvVaGQtxa762Zhr4t86BRGP0XCbPgCTJzLtvcbmv8SZJ7sX6GC5U9Kh7nUTxE4JCFv+9WqpSHKv/DrhjaFs/gel+fveXZ6fzGWbQUnGxiiTs3EeagHf9wq1TuIzvIldIXPi7avdOBR1ukNCEglmB8avynGiXcVQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=IZ9JwRmV2mBzMtx9v9RYjZunck0Kd8DU6/udbxMQ77s=;
 b=vApjAEu3uNtgqLAJsK7SA9pTJkzwXin0VkjcveToZlHHpHN6hr/xLVH6kw/DSKrjGQPyXZm5uBlNf9z0ZbQu6Y5pYmP4HFOA9tT4QgSeL5iuwDaVcLF/oqH7/y3z/vRmrMG9yoWfZRuNe4Ao2mURnlRfQ3564Du+Ulfr8hLx96uPdhNyvlISAC6EbtAhQmglui7OczgA/w3tpEKQ+5RpXPCXI/Zw/fOn2JDn8rj2dPnDmgFv/3RONdqOdpvbBm2sNQ9z7PWHclOjxgaXEBk+1bz6mQd7A3VLZGqAqTfF3ouWC0qj1U9PiMcsteTdd9hzyD2EfWOnymOIe/LsekXq7A==
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=IZ9JwRmV2mBzMtx9v9RYjZunck0Kd8DU6/udbxMQ77s=;
 b=rI6+OSFNMWWOA4yZcYgu42lzWvUm7z9QHyGGVgD+Z3+aSrMXFRU8GXzy3R9fws11y1yxT7n1VJHT0NqcWpsDpC7nnaEZuWIJielD7RX3VZx9TFuEKIt0RRvzJDjg8KmZyqpp0z1ilgmqyHsw3Lq+xWuZ/yxOcmgOiRTNZgBj+18=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: "Orzel, Michal" <michal.orzel@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>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Wei Chen <Wei.Chen@arm.com>
Subject: Re: [PATCH v3 1/7] arm/mpu: Introduce MPU memory region map structure
Thread-Topic: [PATCH v3 1/7] arm/mpu: Introduce MPU memory region map
 structure
Thread-Index: AQHbqvIQP3h8YyZqYkSDv4tGWZWI7LOi9uCAgABMVgA=
Date: Mon, 14 Apr 2025 14:50:54 +0000
Message-ID: <FCB86533-FFE9-4A79-AC8F-E2DBA2B1F553@arm.com>
References: <20250411145655.140667-1-luca.fancellu@arm.com>
 <20250411145655.140667-2-luca.fancellu@arm.com>
 <d323425d-b266-49d6-95d4-0e1acb5e489e@amd.com>
In-Reply-To: <d323425d-b266-49d6-95d4-0e1acb5e489e@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.400.131.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DB7PR08MB2987:EE_|GV1PR08MB8741:EE_|AM4PEPF00025F9B:EE_|AS8PR08MB6472:EE_
X-MS-Office365-Filtering-Correlation-Id: b526f507-0bbf-4c0b-7934-08dd7b63d763
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?ZQoDSMnIRHUSwAEBPi3kqlocaCwureBePocm4jfxqrvA/9ZDWaxUJ6qwoVSB?=
 =?us-ascii?Q?LA/rVBJlZdsAVKNuRxJtRmEEGU4KFLW+31UaDKJMSnvxijHsRWbhLw/ZD0i8?=
 =?us-ascii?Q?EW00NLURb3loVpnJ4eGkj9MBQP6waHcg1Gk+l1N982APbEIVy5pLPQVtq0dR?=
 =?us-ascii?Q?sganJly5FkgnIj5nwh7IXvI3TayuCHB6yNSnkrp/lou7YeC4EQ/jHN25XX+i?=
 =?us-ascii?Q?ceQF5UHNULz7pCJiFyxVEyTCS/xOoKycEg0mgLFWaAAd2qpd6OhLEcMtr2tQ?=
 =?us-ascii?Q?5+h0vRGFEBDtfMxbv8hkwuBbZDLc3Z/wXvNZRaC4FzRC1+Duyjm1tDjQfREB?=
 =?us-ascii?Q?u3Sxw5+y/C4ggLAN/MJfyLlamX00bSEVxKaYfdY6DyXCZP1EIzAnk8Ns7lre?=
 =?us-ascii?Q?COqVQl9Yd4nuuLKzVK/T7U8GErN4A1oM27buNdu6cx+2HL5Vwrx05b7tXsKs?=
 =?us-ascii?Q?ygpx2jkbGgTk9D5VekHJmBt6vRNiuxZgIuofK2yYMlpEYTcfyUjDICZnVBKX?=
 =?us-ascii?Q?PhxEO4RDEbZvCZSsyQOJB+vawt9uMHeWZyFwkgXVfUHq9CX14Uf5sXGKsHKJ?=
 =?us-ascii?Q?Q6rQu6zQT5K5we2LCyXmhV0nfYRFi1ZncR8v0ypTKvsUnXOs7MVsJbsSb+s0?=
 =?us-ascii?Q?LjnrXdjAR+oG6ILlJ1LO9Y6Pu/bmO8qDPpJnU7vKL8HhWgHzyVdnRctK4mH7?=
 =?us-ascii?Q?t0Bxnq1M8vnOB65p/nqHB+EQD9tyMkE1jVsPCOACa47d8dx4QCDSS2Bg36Sv?=
 =?us-ascii?Q?LLb/+Ud+hwPNvW36eR7QP9ABE4lcUZaAXHuEWE7bOAD2N9nRsEROhImMUo0P?=
 =?us-ascii?Q?WdvHDvQAhMkuKEJAsVt0qTcaePTJI5q17KhONzx02xInM3plU0FYYKi/TpcY?=
 =?us-ascii?Q?rvwDLantjZNZbF6l5eeVQ5w8ksi7Gho8dlKs3BFCvgRbY1iGD2B2pNjNzMFr?=
 =?us-ascii?Q?GONeqRSqdrHt4MLTmxxwwOgRThsX7x3TorRKKzhDyNLP0NJRJF4eB93qNC72?=
 =?us-ascii?Q?G4bq6JFBA5DPdo5G+f9OC+fMhOkfJ261a2szuXGgRUNhF8sOin+p2Yk/EWLN?=
 =?us-ascii?Q?ppMYE2e3/J2fDFFCSSqTZpxxVBZxfe4jQcc80xnTy1n0pxjW8paigiLdWDt3?=
 =?us-ascii?Q?g+Rzm23OMl0Kj0fqd5NCWoX72OrkwpuBGviyWvXOQzY0Jjq7qKv6rc9H99uy?=
 =?us-ascii?Q?bGmb5ZAZ3IOt3n/z5xAO8U3TBPIcjNg6WnUWUtHc+hH7/kmsAh/FESfMTBhI?=
 =?us-ascii?Q?eXI29rnaip+EkaMGoJWQVJNj1KsG9P/DIBzECiJ6rhLVeF+5A2FSdgr3w4ZE?=
 =?us-ascii?Q?yvH4qV5RQuAl/EUHQDoJ3xtxiJAo4ELeqRlkmgcPoqMMTU9omEsXW7ReGqMJ?=
 =?us-ascii?Q?arVwmvQR/E3e9piaucaWKlYvK3h9r9JbwUnLNhOF60EhD+Lh+s6VYGiBDz+V?=
 =?us-ascii?Q?0kKw8ObToIY7Zj5w42+Al4xX3d/E961IowuLFPqdppRX4cFAFUh+2w=3D=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB7PR08MB2987.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: <1CDE58025A897C40BFBC4654EF04AD90@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR08MB8741
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AM4PEPF00025F9B.EURPRD83.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	47f0ce16-8edd-4231-3796-08dd7b63c26a
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|35042699022|14060799003|82310400026|36860700013|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?TmwA+eTPFtzhuFTIam5eiHEbHIT+U7IbNuRK02lu2IMCaZHYZkXz16VQMyXG?=
 =?us-ascii?Q?uk39TJQrrIuWR3oaR56K5fECPST67cOafkLKHlM4vVareGMDz3p2qoYjcv5m?=
 =?us-ascii?Q?95Wdy3uIhvyOjeUiEANyzuyu0oafCeOXY9P0Iik7Qet5HSEq5LG0JE71BIH0?=
 =?us-ascii?Q?21KrLg8o+WxKK54OV0tYmQCX4Cz+xDYLxSDujXo2Mm8dyKUWDtD7u/xmMRGk?=
 =?us-ascii?Q?WOw9TMTJxmgxk7OmsVssHufTwgfzWHuiDrC1cFiOeq83+DZ7g+stmy+e5iEC?=
 =?us-ascii?Q?HcM8Jc2Az2+XGavAwz5kEIrz4rXeOYmqqG89eo+AHWNSHvDjXBdHBSDg2YM8?=
 =?us-ascii?Q?fdoa65ss5OaN9HcNhUN6oRahCxraVbrDqGTk23URgkABMXHg4D8TLYDpsOMX?=
 =?us-ascii?Q?yTZA8hby11f0aBBNduw2QM1vjrX8Y9DCmGZTBgxDytyKX7tyBytpWRsyvfQH?=
 =?us-ascii?Q?jkoKxx/vse+pNSlgLQPv8vRlBiPDyADljgoSqFnbeflRIKd5kobdJprGzj7Z?=
 =?us-ascii?Q?BoKkc5PhsaR3Qtdau8UmKb2wJRRqASQ0Ot47P4CyUjssz/4S2K8v4/6rlSEL?=
 =?us-ascii?Q?4gZUs39Klj/FYo+PphV/eiRkDOLvTL0nsC3bP+vzHsu2BA1E/D36f1Kh+Meo?=
 =?us-ascii?Q?2sL1yE5B6l/9S/RuBVsz9YmuyY2wuq85W5XcY7WuCt7iK62x50CPQTVqrFUN?=
 =?us-ascii?Q?O7ri8lXJbsuzFSLiEjEOK4IXWNolbRAC9vTBmrF6H2xLdZFnM9vG8IhctNFj?=
 =?us-ascii?Q?rBXGc5C6R533c8SJ9u2sFa5beYpbwaf/YAxNm+5EeQpM5D5dccIduWRNGvF/?=
 =?us-ascii?Q?RyCZ88dLJ4i2Z4sEKn+dzj3ywPbQQ3MJxf+h0cPtvDH9h6u5OfXbcAJgL0j1?=
 =?us-ascii?Q?o39w/DN+i26fyoRGAZPjrsW+8jHJouTGV4ZgT8vog86viIy7iTjtFRsiaopt?=
 =?us-ascii?Q?1+4hE3Y1oenRE1FBVk4YiTQYJjNX8iwDwnNCvfQeIrqYuiGRlloEsa4TUyz+?=
 =?us-ascii?Q?UX9n40nsuCxeMZaClHl4Q0w5ofHKwFBMAS0ScH0n/5oo4cCasJCXmfH8LpXr?=
 =?us-ascii?Q?Goebg4EQ/pmPhIZPTNX3eqbUKIv5G7iCyTTvPii8dC/4bbmUC++VZXLZSnxo?=
 =?us-ascii?Q?XI7//6TN0GQmXLrTZppx5rWPPamVTqQT7g2B/otyASqsEvi5RGheQTL0iaZl?=
 =?us-ascii?Q?QrMIdF0KXXY0lWrrCgc/erxWehR7Cag1nAqQUBaP89zsAWyg6ga9tqOg9Z0A?=
 =?us-ascii?Q?+gocNhKT9k8AoC/Y//8EcJe83z7hU3KB1UKDMA+nZCBREbcFo/lHYnu/+f6b?=
 =?us-ascii?Q?zDxxGGBdG2O0lKWqin+ld624IE1zShQ6jqQ7TmUntuGl+GfH0kaIVtV2f2Fg?=
 =?us-ascii?Q?q/9tVoemedibAPYHdT3UI9usurBhNXNcsEDFapY98Db68tqg0zI6LhDSVPL5?=
 =?us-ascii?Q?dT8M43qqn16+i/KWPL1yGy9G3bEV2E86R3+XDfBsZcaJA2Hgp+VvOKfiIElH?=
 =?us-ascii?Q?nMlmzkrv3F1VL2XKMlGEXvZVRe/eBBhNoNp1?=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(376014)(35042699022)(14060799003)(82310400026)(36860700013)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Apr 2025 14:51:30.1219
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: b526f507-0bbf-4c0b-7934-08dd7b63d763
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AM4PEPF00025F9B.EURPRD83.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB6472

Hi Michal,

> On 14 Apr 2025, at 11:17, Orzel, Michal <michal.orzel@amd.com> wrote:
>=20
>=20
>=20
> On 11/04/2025 16:56, Luca Fancellu wrote:
>> From: Penny Zheng <Penny.Zheng@arm.com>
>>=20
>> Introduce pr_t typedef which is a structure having the prbar
>> and prlar members, each being structured as the registers of
>> the aarch64 armv8-r architecture.
>>=20
>> Introduce the array 'xen_mpumap' that will store a view of
>> the content of the MPU regions.
>>=20
>> Introduce MAX_MPU_REGIONS macro that uses the value of
>> NUM_MPU_REGIONS_MASK just for clarity, because using the
>> latter as number of elements of the xen_mpumap array might
>> be misleading.
> What should be the size of this array? I thought NUM_MPU_REGIONS indicate=
s how
> many regions there can be (i.e. 256) and this should be the size. Yet you=
 use
> MASK for size which is odd.

So the maximum number of regions for aarch64 armv8-r are 255, MPUIR_EL2.REG=
ION is an
8 bit field advertising the number of region supported.

Is it better if I use just the below?

#define MAX_MPU_REGIONS 255

>=20
>>=20
>> 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>
>> ---
>> xen/arch/arm/include/asm/arm64/mpu.h | 44 ++++++++++++++++++++++++++++
>> xen/arch/arm/include/asm/mpu.h       |  5 ++++
>> xen/arch/arm/mpu/mm.c                |  4 +++
>> 3 files changed, 53 insertions(+)
>> create mode 100644 xen/arch/arm/include/asm/arm64/mpu.h
>>=20
>> 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 000000000000..4d2bd7d7877f
>> --- /dev/null
>> +++ b/xen/arch/arm/include/asm/arm64/mpu.h
>> @@ -0,0 +1,44 @@
>> +/* SPDX-License-Identifier: GPL-2.0-only */
>> +/*
>> + * mpu.h: Arm Memory Protection Unit definitions for aarch64.
> NIT: Do we really see the benefit in having such generic comments? What i=
f you
> add a prototype of some function here. Will it fit into a definition scop=
e?

I can remove the comment, but I would say that if I put some function proto=
type here
it should be related to arm64, being this file under arm64.

>=20
>> + */
>> +
>> +#ifndef __ARM_ARM64_MPU_H__
>> +#define __ARM_ARM64_MPU_H__
>> +
>> +#ifndef __ASSEMBLY__
>> +
>> +/* Protection Region Base Address Register */
>> +typedef union {
>> +    struct __packed {
>> +        unsigned long xn:2;       /* Execute-Never */
>> +        unsigned long ap:2;       /* Acess Permission */
> s/Acess/Access/
>=20
>> +        unsigned long sh:2;       /* Sharebility */
> s/Sharebility/Shareability/
>=20
>> +        unsigned long base:46;    /* Base Address */
>> +        unsigned long pad:12;
> If you describe the register 1:1, why "pad" and not "res" or "res0"?
>=20
>> +    } reg;
>> +    uint64_t bits;
>> +} prbar_t;
>> +
>> +/* Protection Region Limit Address Register */
>> +typedef union {
>> +    struct __packed {
>> +        unsigned long en:1;     /* Region enable */
>> +        unsigned long ai:3;     /* Memory Attribute Index */
>> +        unsigned long ns:1;     /* Not-Secure */
>> +        unsigned long res:1;    /* Reserved 0 by hardware */
> res0 /* RES0 */
>=20
>> +        unsigned long limit:46; /* Limit Address */
>> +        unsigned long pad:12;
> res1 /* RES0 */
>=20
>> +    } reg;
>> +    uint64_t bits;
>> +} prlar_t;
>> +
>> +/* MPU Protection Region */
>> +typedef struct {
>> +    prbar_t prbar;
>> +    prlar_t prlar;
>> +} pr_t;
>> +
>> +#endif /* __ASSEMBLY__ */
>> +
>> +#endif /* __ARM_ARM64_MPU_H__ */
>> \ No newline at end of file
> Please add a new line at the end
>=20
> Also, EMACS comment is missing.

Thanks I will fix all these findings

Cheers,
Luca



From xen-devel-bounces@lists.xenproject.org Mon Apr 14 14:54:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 14:54:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.950548.1346827 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4LCl-0002Jq-EQ; Mon, 14 Apr 2025 14:54:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 950548.1346827; Mon, 14 Apr 2025 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 1u4LCl-0002Jj-Bm; Mon, 14 Apr 2025 14:54:35 +0000
Received: by outflank-mailman (input) for mailman id 950548;
 Mon, 14 Apr 2025 14:54:33 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=B3Nx=XA=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u4LCj-0002Jd-Gy
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 14:54:33 +0000
Received: from NAM12-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam12on20608.outbound.protection.outlook.com
 [2a01:111:f403:200a::608])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 55f796f2-1940-11f0-9ffb-bf95429c2676;
 Mon, 14 Apr 2025 16:54:17 +0200 (CEST)
Received: from CH5PR04CA0024.namprd04.prod.outlook.com (2603:10b6:610:1f4::9)
 by IA1PR12MB7710.namprd12.prod.outlook.com (2603:10b6:208:422::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.33; Mon, 14 Apr
 2025 14:54:07 +0000
Received: from CH2PEPF000000A0.namprd02.prod.outlook.com
 (2603:10b6:610:1f4:cafe::6f) by CH5PR04CA0024.outlook.office365.com
 (2603:10b6:610:1f4::9) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.35 via Frontend Transport; Mon,
 14 Apr 2025 14:54:07 +0000
Received: from SATLEXMB04.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.8655.12 via Frontend Transport; Mon, 14 Apr 2025 14:54:07 +0000
Received: from localhost (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; Mon, 14 Apr
 2025 09:54:05 -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: 55f796f2-1940-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=bT6NmHq7zxT1/7EEgrgOx3EMF8eB3R7VkwW1QmUFOSycQRqqf8yzwjrh3KtsbEHcU/FxvZuT1s+G3fAId4qTAU/Mftgmgx/4ZCoeLJmgOnbXh+OVEg3RjrmncBtFWwNKiRC4Q+LZ3J8oB2fU1ATRhQweiXit6FXVd0PLjXcYGVIQXMLrZF86KNtA30eKDZD2Ta0eQQ+6RNj3mvhh4De3s6pQx7a3WaXUAbXyBERSSf9htF5HBS8L8VvhpDxrd8QoynD/jNsBQb51C5YhHihRlpp2e7cAVb2Vnb5D3mFvGNLsaEZhsNQSXgtXahzNZpakGoeCfrwy3PtqkUxCPjyfBw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=jb/hnyHFNdmRYRtM5XdCo8TvkhaFEljRLZwprbWEQSc=;
 b=Vb4KikXrxOxh+mnXME9ySCh5JnhrbNwVzvspinIRO8q3jCF0RltfRyK2ul0HgIoIDPFCnxMFeRTN+25X3E0J1rXaQH7qVZPTsfvkH9PK3V48I0lw8bE2eEwZQi4YEJP8xt2FTBBblXXyzcm+qVcariZmG7O0evuEgQ29mbQ0/YmKoCpZTRir7j1u4/pfzQSnlr5aZFH/VFw8kTdl/1hFwLzoZET542tCoIIDm72gEC5S/dMxggArqGIGWhxs2hKCqbs+5Bfnqjmrf/zDl/Bqq+TZWUB6Tiz4zriMs2UATECvDojQCOz+GOZMi6BjPqSFVMeJSTq2lPH5EWrnd3DWYg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=proton.me 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=jb/hnyHFNdmRYRtM5XdCo8TvkhaFEljRLZwprbWEQSc=;
 b=4RtlAUEkzB1KiIVx1falGLGaGZNOSjRWPvifeVbqOcJOvIUVJtS3BZfg+VvIpfRs6G/X4yED8GRq/UKlc/mOKLVJR9LI4B9lOUit2vh3dewwZsmkRouU19HPswYSR0h5PEwBnXhMExMTek2sekYtkij9woqMVp+7wu5PNqXXRfI=
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
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Mon, 14 Apr 2025 15:54:04 +0100
Message-ID: <D96G4QICTBWX.193DL39JIUJ9K@amd.com>
CC: <xen-devel@lists.xenproject.org>, "Daniel P. Smith"
	<dpsmith@apertussolutions.com>, Jason Andryuk <jason.andryuk@amd.com>, "Xenia
 Ragiadakou" <xenia.ragiadakou@amd.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Michal Orzel <michal.orzel@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>, Julien Grall
	<julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>
Subject: Re: [PATCH v3 10/16] x86/hyperlaunch: obtain cmdline from device
 tree
From: Alejandro Vallejo <agarciav@amd.com>
To: Denis Mukhin <dmkhn@proton.me>
X-Mailer: aerc 0.20.1
References: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-11-agarciav@amd.com>
 <AOApTL7inEgfBXUrdPTzjM3e6XyK-nDlfQz5j7gpcrOIHEJfLC9sXSTgbSthCSkzDqjRK8vAY-_5yDSXiKSEnEkoBvDIvCU9Rw-ZbsIZRh4=@proton.me>
In-Reply-To: <AOApTL7inEgfBXUrdPTzjM3e6XyK-nDlfQz5j7gpcrOIHEJfLC9sXSTgbSthCSkzDqjRK8vAY-_5yDSXiKSEnEkoBvDIvCU9Rw-ZbsIZRh4=@proton.me>
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: CH2PEPF000000A0:EE_|IA1PR12MB7710:EE_
X-MS-Office365-Filtering-Correlation-Id: 5cb620fb-b3fc-44ce-5732-08dd7b64353d
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?UDVtUXVjTEh5d2tYYTJqaVRzMTdaNnd3dHBYQUFGVXd5VTZVZjZMZ3JiM1BH?=
 =?utf-8?B?WWpuTTdwdVdZR3k0cndrKzZoWmtsODF0RUVzT1k5SWxWQUQrVGcrM2FvRGpx?=
 =?utf-8?B?WFNqZEZ3OVNMYUpiVXIxU0xZMEtOdEt2djNXcldsT3J1NWVzVDcxaW9oVnpy?=
 =?utf-8?B?VkVrQkNkVXRjdTFrYjdQZjRCZzZSWi92M3VnUkovdkMyZUFNcFhCQlpiQWg5?=
 =?utf-8?B?NHQ4STFmeVQvTDM4cHFVQU1Fb0sxT2xPam9wVjhUcFZzOU5jTnp0RkNrbnNn?=
 =?utf-8?B?Q05UWDBneTFUQWlVSjEyQmRuaUxLcHVhTGdBeURPeTcyRFVDTEE3dUsySmdO?=
 =?utf-8?B?NE1mOW8raUVpSUhwQlorQnJvNGlBbjd1ZXRHeTVpVVZZQjZYc0g4UGwzY0My?=
 =?utf-8?B?Z29tVUI1aXhnMEY0dGVQMkpsd0k3dzVab1N0Z05tQTBqVmNSOWh3OG9nYXAw?=
 =?utf-8?B?QUJCV1Q4dmhSdnN5RU5UdktrdGxsTTBJS01ZeVFvN09BaG9FNWVsRFhUNERh?=
 =?utf-8?B?QTAwMmk2eFV6N1A1SzgzNXJSMjZ2SDh1ek8rdmRFREZYazA1RW5KanAzeTVi?=
 =?utf-8?B?ZmJ4NjMxT3kwcS8xdGZlZVN5SVNlZU4zdldOcldvUlhIKy94dEdEdjVpYlVy?=
 =?utf-8?B?a3NBOHpWU0RGd1IyUjY3YVZRQWdsSWNaaU5oZEpteVBiQy9zajhPdUtXZWsz?=
 =?utf-8?B?T21NNFNEQi9FR2ZkMkN6MG1QSkZCVWFNcFhzTHdpL0x2TmRGc2tqdHdHMUlY?=
 =?utf-8?B?eEFKUEpoNEd0L0ViUVJmc2NyM3VDWEZhODVWSElCcjR5bituYnpLbHNvRktH?=
 =?utf-8?B?UlIvOE1ER0ZpVXhncy9UMUtWM1lQaW9POUhhLzV0bUY3T3hPeWNsK0oxNjk4?=
 =?utf-8?B?Uitxei9GWFV0SDBlVzJZcm1jRDk5akFIdXBNQmlDTEJyMkNIRzJndllHY2hv?=
 =?utf-8?B?WWQ0eTUzeEU5cjRudjkvbEJnYjBiai8vM0pvMU1sVkoyWDQ5bHlhTjdxS0x6?=
 =?utf-8?B?NkNJK3VCK1kycUdYMi9wK05OcHBzZ2lpcWRNL1RlVWhVNVp1YWpJTWdCZytY?=
 =?utf-8?B?NWh4UzM2ZUI0T2c5bkZzVXNzS1RXMnBtRDQxRzhxaE4xSUc5Rlh2OStqTVNJ?=
 =?utf-8?B?SEE4b2ZlRGhHWkl2K1krQlRIZFhlaWQrUXdiTmMrWXYwUjR6TDQyRnNGcVJu?=
 =?utf-8?B?M1ZLRnF3SC9NdlNMcHR1bGlTekQ5ZHdwdUNNWjIwbU1kdkUzbzNBV25BbkhQ?=
 =?utf-8?B?L3dIM1luOU5wbWZ5OGduTUgzaVNLcUpzUmIvZTBTekp5L21QdDVtdTBTUmZQ?=
 =?utf-8?B?MFVHK1RudDlxbnNPcnJkTmNMT1d0d2VBUE9JclQzcjlwQlNlK293UVI5S2My?=
 =?utf-8?B?SCtxMGc5VUx4UzcxTDVKMFRQeVRyNzdEZk4zL01mTEx6UzZPSldPQndNWHU0?=
 =?utf-8?B?azNOWkladXZCTUszRFdFbVMxRjBNam9aY1FUVkd6Wm91ZllIQWpCdjY5a0RK?=
 =?utf-8?B?SCtCTXBYdjZLT2Z1ZlBkWGxMbnVSOVQ2UWJQUDRPM1NTdTJjOE9GUUFKN29J?=
 =?utf-8?B?Mi9iTGRGRXVvUTJYWXQzZ1FZd3poZXFKOGJaSHN2M0xwZUx3RFRrVmdLcEZw?=
 =?utf-8?B?L2FIdVZBY2cvTlhDenZyWFRjSVc5OVg0bFUwVzRyUHUvN0xUOFNWYkpDMnB0?=
 =?utf-8?B?dlhmbXFrZ0JuU2xZc3F1S2lsRm9xMitaL1dLV0JPTENtVWs5M3NFYkhxNkVh?=
 =?utf-8?B?TFovM0ZXQUh0TUpXR3RBWHdET1QwV2Y5OW9aTmo5SGEwZXd5ZVA0Sk5PdE1V?=
 =?utf-8?B?NnY2T3BOL3VyR243dDl0ektzUDBFYXdpMnphdXRMYnJNQ2hWM3NVSTZtZ3I0?=
 =?utf-8?B?YmZzYU9KZ0swSTErWlBvM2E0a0V1ZDRXU1JhSmRvTmx2cFNXS05VR1M5Q2Rs?=
 =?utf-8?B?azgrREVwaEIwdzd3ejVKUkh6OVNCS2xmbmphbzRkVlR5QktlSXBYMW44WU9Q?=
 =?utf-8?B?WUk5ckJGSTZqeC9oSVRITklWR05tMnJieTd6bGRqN2s3ZWhWeHZSNENwUk01?=
 =?utf-8?Q?tn1tTr?=
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: 14 Apr 2025 14:54:07.6011
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 5cb620fb-b3fc-44ce-5732-08dd7b64353d
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:
	CH2PEPF000000A0.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB7710

On Wed Apr 9, 2025 at 11:04 PM BST, Denis Mukhin wrote:
> On Tuesday, April 8th, 2025 at 9:07 AM, Alejandro Vallejo <agarciav@amd.c=
om> wrote:
>
>>=20
>>=20
>> From: "Daniel P. Smith" dpsmith@apertussolutions.com
>>=20
>>=20
>> Add support to read the command line from the hyperlauunch device tree.
>> The device tree command line is located in the "bootargs" property of th=
e
>> "multiboot,kernel" node.
>>=20
>> A boot loader command line, e.g. a grub module string field, takes
>> precendence ove the device tree one since it is easier to modify.
>>=20
>> Signed-off-by: Daniel P. Smith dpsmith@apertussolutions.com
>>=20
>> Signed-off-by: Jason Andryuk jason.andryuk@amd.com
>>=20
>> ---
>> v3:
>> * Rename to fdt_get_prop_offset()
>> * Remove size_t cast from builder_get_cmdline_size()
>> * fdt_get_prop_offset() use strcmp()
>> * fdt_get_prop_offset() return bool
>> ---
>> xen/arch/x86/domain-builder/core.c | 28 +++++++++++++++++++++++
>> xen/arch/x86/domain-builder/fdt.c | 6 +++++
>> xen/arch/x86/domain-builder/fdt.h | 25 ++++++++++++++++++++
>> xen/arch/x86/include/asm/bootinfo.h | 6 +++--
>> xen/arch/x86/include/asm/domain-builder.h | 4 ++++
>> xen/arch/x86/setup.c | 12 +++++++---
>> xen/include/xen/libfdt/libfdt-xen.h | 23 +++++++++++++++++++
>> 7 files changed, 99 insertions(+), 5 deletions(-)
>>=20
>> diff --git a/xen/arch/x86/domain-builder/core.c b/xen/arch/x86/domain-bu=
ilder/core.c
>> index eda7fa7a8f..510a74a675 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>
>>=20
>>=20
>> #include <asm/bootinfo.h>
>>=20
>> +#include <asm/setup.h>
>>=20
>>=20
>> #include "fdt.h"
>>=20
>> +size_t __init builder_get_cmdline_size(struct boot_info *bi, int offset=
)
>> +{
>> +#ifdef CONFIG_DOMAIN_BUILDER
>> + const void *fdt =3D bootstrap_map_bm(&bi->mods[HYPERLAUNCH_MODULE_IDX]=
);
>>=20
>> + int size =3D fdt_cmdline_prop_size(fdt, offset);
>> +
>> + bootstrap_unmap();
>> + return size < 0 ? 0 : 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 =3D bootstrap_map_bm(&bi->mods[HYPERLAUNCH_MODULE_IDX]=
);
>>=20
>> + int ret =3D 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-bui=
lder/fdt.c
>> index a037c8b6cb..bc9903a9de 100644
>> --- a/xen/arch/x86/domain-builder/fdt.c
>> +++ b/xen/arch/x86/domain-builder/fdt.c
>> @@ -189,6 +189,12 @@ static int __init process_domain_node(
>> printk(" kernel: boot module %d\n", idx);
>> bi->mods[idx].type =3D BOOTMOD_KERNEL;
>>=20
>> bd->kernel =3D &bi->mods[idx];
>>=20
>> +
>> + /* If bootloader didn't set cmdline, see if FDT provides one. */
>> + if ( bd->kernel->cmdline_pa &&
>>=20
>> + !((char *)__va(bd->kernel->cmdline_pa))[0] )
>>=20
>> + bd->kernel->fdt_cmdline =3D fdt_get_prop_offset(
>>=20
>> + fdt, node, "bootargs", &bd->kernel->cmdline_pa);
>>=20
>> }
>> }
>>=20
>> diff --git a/xen/arch/x86/domain-builder/fdt.h b/xen/arch/x86/domain-bui=
lder/fdt.h
>> index e8769dc51c..91f665c8fd 100644
>> --- a/xen/arch/x86/domain-builder/fdt.h
>> +++ b/xen/arch/x86/domain-builder/fdt.h
>> @@ -12,6 +12,31 @@ struct boot_info;
>> #define HYPERLAUNCH_MODULE_IDX 0
>>=20
>> #ifdef CONFIG_DOMAIN_BUILDER
>> +
>> +static inline int __init fdt_cmdline_prop_size(const void *fdt, int off=
set)
>> +{
>> + 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 =3D
>> + fdt_get_property_by_offset(fdt, offset, &ret);
>> +
>> + if ( ret < 0 )
>> + return ret;
>> +
>> + ASSERT(size > ret);
>>=20
>> +
>> + return strlcpy(cmdline, prop->data, ret);
>>=20
>> +}
>> +
>> int has_hyperlaunch_fdt(const 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 1e3d582e45..5b2c93b1ef 100644
>> --- a/xen/arch/x86/include/asm/bootinfo.h
>> +++ b/xen/arch/x86/include/asm/bootinfo.h
>> @@ -35,11 +35,13 @@ struct boot_module {
>>=20
>> /
>> * 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;
>>=20
>> /
>> * A boot module may need decompressing by Xen. Headroom is an estimate o=
f
>> diff --git a/xen/arch/x86/include/asm/domain-builder.h b/xen/arch/x86/in=
clude/asm/domain-builder.h
>> index b6d9ba94de..7518b6ddf3 100644
>> --- a/xen/arch/x86/include/asm/domain-builder.h
>> +++ b/xen/arch/x86/include/asm/domain-builder.h
>> @@ -3,6 +3,10 @@
>>=20
>> struct boot_info;
>>=20
>> +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);
>>=20
>> #endif
>> diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
>> index 00e8c8a2a3..ca4415d020 100644
>> --- a/xen/arch/x86/setup.c
>> +++ b/xen/arch/x86/setup.c
>> @@ -984,7 +984,10 @@ static size_t __init domain_cmdline_size(
>> {
>> size_t s =3D bi->kextra ? strlen(bi->kextra) : 0;
>>=20
>>=20
>> - s +=3D bd->kernel->cmdline_pa ? strlen(__va(bd->kernel->cmdline_pa)) :=
 0;
>>=20
>> + if ( bd->kernel->fdt_cmdline )
>>=20
>> + s +=3D builder_get_cmdline_size(bi, bd->kernel->cmdline_pa);
>>=20
>> + else
>> + s +=3D strlen(__va(bd->kernel->cmdline_pa));
>>=20
>>=20
>> if ( s =3D=3D 0 )
>> return s;
>> @@ -1047,9 +1050,12 @@ static struct domain *__init create_dom0(struct b=
oot_info *bi)
>> if ( !(cmdline =3D xzalloc_array(char, cmdline_size)) )
>> panic("Error allocating cmdline buffer for %pd\n", d);
>>=20
>> - if ( bd->kernel->cmdline_pa )
>>=20
>> + if ( bd->kernel->fdt_cmdline )
>>=20
>> + builder_get_cmdline(
>> + bi, bd->kernel->cmdline_pa, cmdline, cmdline_size);
>>=20
>> + else
>> strlcpy(cmdline,
>> - cmdline_cook(__va(bd->kernel->cmdline_pa), bi->loader),
>>=20
>> + cmdline_cook(__va(bd->kernel->cmdline_pa),bi->loader),
>
> Add extra space before bi->loader?

Yes, was a spurious diff.

>
>>=20
>> cmdline_size);
>>=20
>> if ( bi->kextra )
>>=20
>> diff --git a/xen/include/xen/libfdt/libfdt-xen.h b/xen/include/xen/libfd=
t/libfdt-xen.h
>> index 2259c09a6a..e473fbaf0c 100644
>> --- a/xen/include/xen/libfdt/libfdt-xen.h
>> +++ b/xen/include/xen/libfdt/libfdt-xen.h
>> @@ -23,6 +23,29 @@ static inline uint64_t __init fdt_cell_as_u64(const f=
dt32_t *cell)
>> return ((uint64_t)fdt32_to_cpu(cell[0]) << 32) | fdt32_to_cpu(cell[1]);
>> }
>>=20
>> +static inline bool __init fdt_get_prop_offset(
>> + const void *fdt, int node, const char *name, unsigned long *offset)
>> +{
>> + int ret, poffset;
>> + const char *pname;
>> +
>> + fdt_for_each_property_offset(poffset, fdt, node)
>> + {
>> + fdt_getprop_by_offset(fdt, poffset, &pname, &ret);
>
> Return value is not checked.

The pointer itself is ignored, but the error code is placed in "ret"
(when there is an error). Hence the ret < 0 that follows this.

>
>> +
>> + if ( ret < 0 )
>> + continue;
>> +
>> + if ( strcmp(pname, name) =3D=3D 0 )
>
> I got an impression that the preferred form is=20
>    if ( !strcmp(pname, name) )

It varies per file. Doesn't matter much, but sure. Will change.

>
>> + {
>> + offset =3D poffset;
>> + return true;
>> + }
>> + }
>> +
>> + return false;
>> +}
>> +
>> /
>> * Property: reg
>> *
>> --
>> 2.43.0

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Mon Apr 14 15:01:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 15:01:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.950564.1346837 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4LJO-000490-AU; Mon, 14 Apr 2025 15:01:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 950564.1346837; Mon, 14 Apr 2025 15:01: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 1u4LJO-00048s-6L; Mon, 14 Apr 2025 15:01:26 +0000
Received: by outflank-mailman (input) for mailman id 950564;
 Mon, 14 Apr 2025 15:01: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=m6tK=XA=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1u4LJN-00048m-0I
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 15:01:25 +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 53cff488-1941-11f0-9eae-5ba50f476ded;
 Mon, 14 Apr 2025 17:01:23 +0200 (CEST)
Received: from BN9PR12MB5273.namprd12.prod.outlook.com (2603:10b6:408:11e::22)
 by MN6PR12MB8470.namprd12.prod.outlook.com (2603:10b6:208:46d::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.34; Mon, 14 Apr
 2025 15:01:11 +0000
Received: from BN9PR12MB5273.namprd12.prod.outlook.com
 ([fe80::cf66:58ab:47be:4b13]) by BN9PR12MB5273.namprd12.prod.outlook.com
 ([fe80::cf66:58ab:47be:4b13%5]) with mapi id 15.20.8632.030; Mon, 14 Apr 2025
 15:01: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: 53cff488-1941-11f0-9eae-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=LLqqCA2vduWnFXtHCVS1+suG9zW48ukq3bCsTFd+o+V8ZgTkAQJR1BSu17bt8QClGw/MBW2cICgU3oErAdQRoloBtz1A38niZDO7iXjimy1a9v7DHvHATBlCZ3ZAbKLswDSMt//56EJ3dW1QWhcT6bu21NsQgl1QYulf0hUDN5/K8hUEgV1KHTfSadL7Y+RciDHP1bArGga+86RJgj5slLejfapB79E6KBp8myTcPai4TeMHxRRzzk8FqrwvyY3+L6bOOL6GLm09C4WNncPQSSk+ZZAlhabHx3jDQdcxR1aUIhOOrK/mUDNzhkTIY9pz049YBCSa/itKkRnl+UQ3Xw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=30Gw0EOu8RcewQf3B3k1hxG965TJxUvi9TbFYyyZxl4=;
 b=ac4rQTAvEOW4LeacAWsxqxPf8hXCHezZ7oGhHlJ+Vns0BEAeKQgVSQSYsOCSA+C5eQvRcgpnpLwVIubHctZU7cA7+NM8Tw3sPyTW3pBLzESb0wlzfyMNjyJSJqOGYbFHHBYCALD02aUBGkMK7eTBcFAeFRFwZeaAAwRuxN/CZPRTZl/kS+G5KC6oiI6umnkCT2Vdnow3VJaW95CBoGO8zZS+ug4Oj6xlRnGvlfZJD5yKFxDKWx8J0KpDnCp/wvtqkcoNVyHrh6ktUmTT3UXqRTnFU92UxHe1OBmM0JHAxc/+XFmF8EDftwAL7Wxq80Lp+b2Lr1DfLsrQR6JUPN+J/A==
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=30Gw0EOu8RcewQf3B3k1hxG965TJxUvi9TbFYyyZxl4=;
 b=O63cwa53kHohPHNgIP8Hji4N7GGAOMwENvN3amzDN8wgPmJqhRjKZy5XOOKwju7gDRLkcTxyZJ2AXtlKx0A76zU+/YMnzzQ1kEc4VD78c0FUdRyGNowo7Tz4rFLOIhEi66xf86yvzASZrmFBjKe6IS00KGWG5bAfxmU1wgg8JU0=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <d85090b5-43f4-41dd-a423-ada90d572001@amd.com>
Date: Mon, 14 Apr 2025 17:01:07 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 1/7] arm/mpu: Introduce MPU memory region map structure
To: Luca Fancellu <Luca.Fancellu@arm.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>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Wei Chen <Wei.Chen@arm.com>
References: <20250411145655.140667-1-luca.fancellu@arm.com>
 <20250411145655.140667-2-luca.fancellu@arm.com>
 <d323425d-b266-49d6-95d4-0e1acb5e489e@amd.com>
 <FCB86533-FFE9-4A79-AC8F-E2DBA2B1F553@arm.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <FCB86533-FFE9-4A79-AC8F-E2DBA2B1F553@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR4P281CA0252.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:f5::17) To BN9PR12MB5273.namprd12.prod.outlook.com
 (2603:10b6:408:11e::22)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN9PR12MB5273:EE_|MN6PR12MB8470:EE_
X-MS-Office365-Filtering-Correlation-Id: 9dd14393-8387-4464-612c-08dd7b65315c
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|366016|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?U1pNNGllR2d3N1BiUnRkMms1b0gzY2Nla3c5NFZMbSs5REUwcURVb3BkR3c5?=
 =?utf-8?B?UHJPaG1hOCtBK2lseXUyT0QxVHRwd0FTbGNOSHZsVW4rWFEvK08wSmRvd0c1?=
 =?utf-8?B?RHMzSHBtZ2lxc1lKQlMrWEQ2MCt1MC9kZzI2aFhmTlJpMHppUlFpVWloMHR0?=
 =?utf-8?B?UmVQT0Y5dkVPYWxYMFZDOTh3SGFSQSsxQjBUeHZNYTVZTDB1anJlZitSaUta?=
 =?utf-8?B?eVNnOVJuU09JZnZOMk9PaCtZY3pkOG5ydDBkZk9MNC92RFdGT05RSUdMMWgx?=
 =?utf-8?B?NzB4bzZhTnRaQWx0SU9DY0Q4UzBRc3Q1MFdCTlBGK3VlUGJCWFdEM1RBNTIz?=
 =?utf-8?B?WEV6ZUVMb1dEMWxPUG5qaFNyeXZwME9aK3czclBMY3JoaEQrL1hpUjg4VTBl?=
 =?utf-8?B?VjBRNlF0eHhPckJlSUhhOTQyV3lFT3FjSGRLdVdIZDZMaVN2L1pOWE9HMkZn?=
 =?utf-8?B?NkQ5TFBrK09wSXdXakZEdDY5QzZ4ZFY0QTRvN3llSTFjT1A1VkRoeHBvYWRW?=
 =?utf-8?B?a3BqcEkrdlMySDlKVm4zeURLUzNCdmZwcFY5dGJhR1l2VWVNVVEwWlVYYTN0?=
 =?utf-8?B?VUJDR0pRRXZvY3dJekVpK25NSmJjR1VMOTljQ2kvaDErbXN5UTd5bm1CQmZl?=
 =?utf-8?B?ckE5MkJpUWZrdGdROFhESzgrUTRyL25aMTI2WjJDQnkzOGJTZS9ibWVKU2p2?=
 =?utf-8?B?cm55b1dWME0rREFSZlpqTlpPUzArbjUrR2FHSzZ5ZFN6eXN1dWF2ZFp2R1RW?=
 =?utf-8?B?QmU4a1JXNGRtT1FJdWtwMmUvclRYbnYrRDM1emFIek56KzdmTWFFeDRmSUZs?=
 =?utf-8?B?NW4xTGtBMS91WWVwa2dWYmx4RjNvYXdpdFBOZGdlcVJrYlZrblRPczJWMHhh?=
 =?utf-8?B?RWwrdXQrWWxJMjBSQWVHSkV6dmhQZUJlU042aFo4M1ljaVZ4Vmx6aTVQdGVJ?=
 =?utf-8?B?dFBJNGk2eGZGSlFURjZQWE1xbnhZQndsb2pUZ2FUc1hyOGdHSzNnSjBHeHVM?=
 =?utf-8?B?WFBGU2NzRXl6bTNUVnR0Z3BLR1M4ODByRjNNN2RVOWo0YWxiTGlRZzhEMEQ2?=
 =?utf-8?B?VGJpckJkQk11dEhnZGczc3llZlBmTGhZdjZqeFNuZ3pMZmV1OXRYMjZ5VGVw?=
 =?utf-8?B?LzZMc3pQMzhkR2hIYzlHYlJuK1E1VG5NNlNwd2pGZm0wVWF0QU51Zy9UdmRs?=
 =?utf-8?B?RlV4YUtySGRwYUoyRGNWbHIyOFZnVUpvRU82Mi8vWllYcU56WWtSL1UvSnhv?=
 =?utf-8?B?ajN5MkNDbzZlMWFvRmtNanRQS25RZXoxNEgxZU96a3hONWNMNXZ5VWNaL01a?=
 =?utf-8?B?enZtQ010MlRaa0NzMUg2NDZTSVh3K09jOUF6T29NMzlJU2x1aXBobzhCL2s5?=
 =?utf-8?B?MjBYUXY1VmxmNGRYRXpMcHVjTDJaRW5OR3NxOGhPais0UitDdk45TXVzR3pZ?=
 =?utf-8?B?UkZldVBQcldpSlpmYzhxaityNVBZbjlkLzBsN3F1clJXc3ByUmIxRHFGNVRj?=
 =?utf-8?B?VHdQVDNTNEFETFRhMDhuQlBBMVcyTndpdEVWbGRUTHVaVnFJUmZzRloveDk1?=
 =?utf-8?B?OU80cG9BamZBbzJqQVlwNCtRVCtEWS9Hc2tFU2VVSkRVMUY4YmIzSUFHd3Rz?=
 =?utf-8?B?WEVGdWNwRHVPbHo3bWF5MG1UeG1Xdlp1bVJ1S0FodmNFUlBaQTBHZ2tBbVZp?=
 =?utf-8?B?UWpOaEs2VFRjRmJBSXR5Z1JSRzhHSURLanhMaVlPc3RGNWZNR1g3SXlvRTdP?=
 =?utf-8?B?a1hDOXRReCsyVDhxcHE0UVFmYVMrSHRvVVRCUlZMN2t5cUJ2YTdnNEpaWlRZ?=
 =?utf-8?B?MTRsWXNmUkdYdVc3cExNR2U3M01ZTmVVRnptSkNZcGFYYmhHQm9odWhqZGtp?=
 =?utf-8?B?UTlZdCt1TkczUG1wT3N2c3QrUlppTzVUN3hFNkh1WkV2NmRrckVwWEo1b3ZO?=
 =?utf-8?Q?+8TVY1/GTpE=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN9PR12MB5273.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?YWhUUlpyS2RqN0Q3dnZPanNoaGFxeUdMck10cU9Cbkh0QXRSRHRMc1VkS2JQ?=
 =?utf-8?B?dmhycHNiMGRuZUhZSml0WGxkb1FqYTRiUndPNDR0U25WNzEwSFlBWjBNSDZG?=
 =?utf-8?B?TTMzcXVTL055VGlSYjBNc0daUWk4c05PWTcrMkxnTytDNThNcmZNb3QrWWRl?=
 =?utf-8?B?bmoybTY3Z0c5cVBFZ254eDlPUG52MkdYVXNqWUdsQ3dMVU4rZEZTUDhFVEtG?=
 =?utf-8?B?ZSt6cW51QjMvQ2JFV3lvNEcwS0lBRUVMZHdxdmtxam5JQmYyQ1NjbW9PNHVX?=
 =?utf-8?B?NXNqY2hPOVNsWTZadUJ4UVR6VlpjZ3MzQXQwOFc0ZGpGcDRhc1FyYU53UzFU?=
 =?utf-8?B?UUpKUVJvQ1dKdlVpUjZCZDhqd2VTUk13NmJJZTkzcGhOWHhjZVNkOTdPVitC?=
 =?utf-8?B?eWJOOHlDc2dTRGVZVytCMzBmZjN5aVFxckNHSHRrb210V0FrVVJ4ekZ1YVJq?=
 =?utf-8?B?N09WNk5wMXc2K0RIZHBVcGZHSTJiNXBBL1o2VHF3R0R1TUNJVE9NTHVJYlRh?=
 =?utf-8?B?enlRY2dLOHd2QnFJbTRNRVJVZFFOOVRUcEpPSmxURi9yMkcxVmFUU3VDMjRB?=
 =?utf-8?B?a0NXbEVlUEVhWDF4aFNQN0QwMVlzVVQwTHV2Z2tOUWh5Z05vbjNyUDF2UlFN?=
 =?utf-8?B?VWxXVjlGRUpCUlovMS9XVml3N2hNaWRWOWdhVE9aUFBoT0JoTjVSMEFvTGlm?=
 =?utf-8?B?NDl2dmNjUlZCYktJaFlUQmJISGJNT29xazNYVDYvTVh6YW9PZldQYlAzaXA4?=
 =?utf-8?B?OE54ZE44S2NRV3dIWXBpcUtVWVZCSis4aERyLytpejFKV1NabWZsTkg3dDZM?=
 =?utf-8?B?NTM4N3FzKzQ1cVpOOHI5TjdJSUw1K0d4c0QxR29UamFKdU1GU0xreFVHYTN6?=
 =?utf-8?B?WEhUWG5EMVJ3WngwVXhubStuRU1PSHpvYThiRWs4NEdCcFFMRHE0Qk9PTDN5?=
 =?utf-8?B?TjZYK2owTkVuMEdSaXhaSVFFa3ZuSStVZHlPM0NIUHdoTEpJRkErZEFVSXNK?=
 =?utf-8?B?aFhJSDlRZUE3cmNiZnUzSnhmcjZUYXdaUzMvNnNjRWxmYWJxQ3pBZ3Y0UEpE?=
 =?utf-8?B?OVZXNThwUVB3ZEgrQWp1Y1Y4ZTFOL0xZcWhZRko4eEZWNkROWWgyREQ0aVlO?=
 =?utf-8?B?d0k3NTFjSm5mTlhHdmhjLzFLYlFub3FkR0hyNTM2VDNzc1VWRno4RUQ5WTRK?=
 =?utf-8?B?Mi96NVBOK2svVnBIZWlMWEt4elYwUjh3allHZHduMEIwWU04VlRkNGc2WFF4?=
 =?utf-8?B?Mkk5amtxU1JUbnhZM3VxSDdEN042Qy9ldXF4dlcwbFFtd01PVTYzMzZaeTFC?=
 =?utf-8?B?TzJYa0doNXpBTjFTMWF2Q2dVV0FJU3dLSnZzVTFmRG44U3YzSkQ4ejhaanBp?=
 =?utf-8?B?Nk9zQitlWlJLY1pQOUt0T3RtUEJ0TEFROVBuTlFobWs4Y21uS2pZdDRhVDdW?=
 =?utf-8?B?SUJKM0VEQXcxb1M3N1hud04zaUJpRS8rOHBiUUh3QTFPeVh6TEpIT2dHQmJh?=
 =?utf-8?B?dXlLcWJqWHFxWXp6emxmczhlTHRBQ2ZQYmNxMlpQVC9mcndsLzBTVTBiQmZo?=
 =?utf-8?B?WnovbjVFdXVNSm5nbjhSUkVGOXB2Zlk1azNCQmJQM1JTVm93cVV3RXpDemNB?=
 =?utf-8?B?VTY4NlNmdFVLWnB5R1RqRVlPNk43VGF4d1ZhcUFnaUJ0OGd4cWRpRVZlUDdk?=
 =?utf-8?B?TWI1NEZnbGxodGZRUHpvRFFncUM5MzkyYUc5Mld3RkFXYXJVZ3ZlOFg2THVh?=
 =?utf-8?B?a1JGQ1p0dGJKVkFFSGlUYVpLMGE4TDlZZEZEN2E3ZHpMVWdSd3BUUjJSb0cz?=
 =?utf-8?B?TytGK2xvazJMVlpoL2xYQm1keWNtMVhncHg5VFd5QVNIU2dWUzNjRFBzaUxW?=
 =?utf-8?B?dWNxQWFLRXc3YXBQU3hIVW5vT3NZMnRibCtKYm5zaWlMWkVpWWl3QnhwVC9p?=
 =?utf-8?B?QU9RZkVUYXdHVkM3MmFjQzZBSWY5N2JiK3ErbkFsTnVJeDBpYnQ4UEI5UGdu?=
 =?utf-8?B?dU1LUEJCaW1za1doVWl3d05rUmtLa1RRRVpBTjhjUVhmc29BMEYrRyswK2NZ?=
 =?utf-8?B?eWZvUW5Da2ozM29Ud0NkaExaT05nTTZyTWhBVmRBdm5ULy9NdzdkSW1BR1lj?=
 =?utf-8?Q?VnbWKLfcfJUWyXBww3fIWGwVj?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9dd14393-8387-4464-612c-08dd7b65315c
X-MS-Exchange-CrossTenant-AuthSource: BN9PR12MB5273.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Apr 2025 15:01:10.8768
 (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: jzuMtSD0skvLM2NtEl29DQyY8bW//DnkIaAV2eYoKmCZ/wYkAPDA+k0Xyar1cSl7
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN6PR12MB8470



On 14/04/2025 16:50, Luca Fancellu wrote:
> Hi Michal,
> 
>> On 14 Apr 2025, at 11:17, Orzel, Michal <michal.orzel@amd.com> wrote:
>>
>>
>>
>> On 11/04/2025 16:56, Luca Fancellu wrote:
>>> From: Penny Zheng <Penny.Zheng@arm.com>
>>>
>>> Introduce pr_t typedef which is a structure having the prbar
>>> and prlar members, each being structured as the registers of
>>> the aarch64 armv8-r architecture.
>>>
>>> Introduce the array 'xen_mpumap' that will store a view of
>>> the content of the MPU regions.
>>>
>>> Introduce MAX_MPU_REGIONS macro that uses the value of
>>> NUM_MPU_REGIONS_MASK just for clarity, because using the
>>> latter as number of elements of the xen_mpumap array might
>>> be misleading.
>> What should be the size of this array? I thought NUM_MPU_REGIONS indicates how
>> many regions there can be (i.e. 256) and this should be the size. Yet you use
>> MASK for size which is odd.
> 
> So the maximum number of regions for aarch64 armv8-r are 255, MPUIR_EL2.REGION is an
> 8 bit field advertising the number of region supported.
So there can be max 255 regions. Ok.

> 
> Is it better if I use just the below?
> 
> #define MAX_MPU_REGIONS 255
If there are 255 regions, what NUM_MPU_REGIONS macro is for which stores 256?
These two macros confuse me. Or is it that by your macro you want to denote the
max region number? In that case, the macro should be named MAX_MPU_REGION_NR or
alike.

> 
>>
>>>
>>> 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>
>>> ---
>>> xen/arch/arm/include/asm/arm64/mpu.h | 44 ++++++++++++++++++++++++++++
>>> xen/arch/arm/include/asm/mpu.h       |  5 ++++
>>> xen/arch/arm/mpu/mm.c                |  4 +++
>>> 3 files changed, 53 insertions(+)
>>> create mode 100644 xen/arch/arm/include/asm/arm64/mpu.h
>>>
>>> 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 000000000000..4d2bd7d7877f
>>> --- /dev/null
>>> +++ b/xen/arch/arm/include/asm/arm64/mpu.h
>>> @@ -0,0 +1,44 @@
>>> +/* SPDX-License-Identifier: GPL-2.0-only */
>>> +/*
>>> + * mpu.h: Arm Memory Protection Unit definitions for aarch64.
>> NIT: Do we really see the benefit in having such generic comments? What if you
>> add a prototype of some function here. Will it fit into a definition scope?
> 
> I can remove the comment, but I would say that if I put some function prototype here
> it should be related to arm64, being this file under arm64.
Sorry, I don't see why you mention arm64 here. It is under arm64 directory, so
it's clear. I was referring to the word "definition".

~Michal



From xen-devel-bounces@lists.xenproject.org Mon Apr 14 15:03:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 15:03:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.950576.1346847 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4LLp-0005Ab-Lf; Mon, 14 Apr 2025 15:03:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 950576.1346847; Mon, 14 Apr 2025 15:03:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4LLp-0005AT-J2; Mon, 14 Apr 2025 15:03:57 +0000
Received: by outflank-mailman (input) for mailman id 950576;
 Mon, 14 Apr 2025 15:03: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=B3Nx=XA=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u4LLo-0005AN-Rd
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 15:03:56 +0000
Received: from NAM12-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam12on2062e.outbound.protection.outlook.com
 [2a01:111:f403:2417::62e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id aeb72fb3-1941-11f0-9eae-5ba50f476ded;
 Mon, 14 Apr 2025 17:03:55 +0200 (CEST)
Received: from SJ0PR03CA0094.namprd03.prod.outlook.com (2603:10b6:a03:333::9)
 by DS2PR12MB9638.namprd12.prod.outlook.com (2603:10b6:8:27b::13) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.28; Mon, 14 Apr
 2025 15:03:52 +0000
Received: from SJ1PEPF00001CE2.namprd05.prod.outlook.com
 (2603:10b6:a03:333:cafe::ce) by SJ0PR03CA0094.outlook.office365.com
 (2603:10b6:a03:333::9) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.33 via Frontend Transport; Mon,
 14 Apr 2025 15:03:52 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ1PEPF00001CE2.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.8655.12 via Frontend Transport; Mon, 14 Apr 2025 15:03:52 +0000
Received: from localhost (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; Mon, 14 Apr
 2025 10:03:50 -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: aeb72fb3-1941-11f0-9eae-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=yrdEEVmi8laaT+4rG8NPq1UkeR9FkIdcI5R+QEiowVx4lzHlPVutw63NHDF2Kpv2cBEFbdS19hWVMHl/0wJJ6VwA3cFR4afcx7Sr03MUXsA2c73wg1TUAZq+VaBWbQ5B5ZHkqZl4IMHFThMJ/Z7RzDibvzgoehWu8jJATpT7MAhx8qEspBFfKU948FZqmOVMZv2GZn583TTN+z7dsNxVJfgzpuH+IZq/hOv8GHKWoo/I1Ab0YWCjrCsoPzunRpvbdVB8XMa4AkfQwhy/shmzKIQ5oN8EBgTbuUUB3V8P++CEuEtR3jGuLQ0KscPs1uKYKepzZRrCxJci3Sf1nrkozQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=aTDo9S43f3q/LJBo+YY+ewFAiai3I1RtUbULLsKPaGk=;
 b=S+B04SssKDziUfewm5P/2nV2RbBOKz8f4DAy4Tj35s+4GBveoapyGLo+01KSFJbIv9Bwgzc5PcfXgF6vjKyZmpo4YO2KXVTZ8ns6cpcI58IWbeF14gBGEqrLh2nvYAwzYcl4TjUpGim8lqCZgcWY5tzwlXDrvif7ezFFl5tGeiL2ui6kw0wqDaQ1tbNoOG6+mfDzQhmrCKyO9WGWCr7rGt2pzhsz2uFsVFnPxHkL/Sq5/QRG+d8hYm45HQbwsvT7kBVkTNX3OHbCJi3ldt2qEJRViqB360ZRKZFHSa5nmWeGiPclL4gU3nVZbrRUWcfxt8HgN6RovUctzjCPqkHhng==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=proton.me 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=aTDo9S43f3q/LJBo+YY+ewFAiai3I1RtUbULLsKPaGk=;
 b=sFUhyWIyGEtZdQSt1yc3c4gErB21ilWb+TBJ7nQRZLaSAD/Jxl3pVBhJ8PfqmLUFEIkq+XgtzLy37GvZPTGmUUSgSYOQ9QUgjkYX8o35mMOxVDewGsRIyqUNMb4zeH+42C+b6aMTzeYYzjFQ+CaTtHgQvccJURiKGMnMiYUujxk=
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
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Mon, 14 Apr 2025 16:03:49 +0100
Message-ID: <D96GC75DZ896.Z4BJTB49L330@amd.com>
CC: <xen-devel@lists.xenproject.org>, "Daniel P. Smith"
	<dpsmith@apertussolutions.com>, Jason Andryuk <jason.andryuk@amd.com>, "Xenia
 Ragiadakou" <xenia.ragiadakou@amd.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Michal Orzel <michal.orzel@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>
Subject: Re: [PATCH v3 11/16] x86/hyperlaunch: locate dom0 initrd with
 hyperlaunch
From: Alejandro Vallejo <agarciav@amd.com>
To: Denis Mukhin <dmkhn@proton.me>
X-Mailer: aerc 0.20.1
References: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-12-agarciav@amd.com>
 <7yfsIOlu7485oxHgd2L0b32KqzOfx7cJg8-ZwVb41T2NljBamLliFUysp7IM4fSh-DvmZD1H-9Gh2pjpSdIrXkUbbo3pxRV3h3P2TglHJlA=@proton.me>
In-Reply-To: <7yfsIOlu7485oxHgd2L0b32KqzOfx7cJg8-ZwVb41T2NljBamLliFUysp7IM4fSh-DvmZD1H-9Gh2pjpSdIrXkUbbo3pxRV3h3P2TglHJlA=@proton.me>
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: SJ1PEPF00001CE2:EE_|DS2PR12MB9638:EE_
X-MS-Office365-Filtering-Correlation-Id: 494471e0-443b-46c8-db93-08dd7b6591d4
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?dTdDOUg4QjRVUFV4aUtEemNiMnBNSzVzd2cyUVRFQkt5V3gzWEMwby9Xb3Iz?=
 =?utf-8?B?bFpvM29qRUw2czFtTVk2ZHhiOXk2RDM1eDRtMHhKSVRQbUR2V0ViMnZjVkxQ?=
 =?utf-8?B?T1Y2Z212VWxBTnBOSDJlQTNFNCt3Tlh1ZGRDQkRsNGRWZ0JiNENCejVYOFp1?=
 =?utf-8?B?TUdTOURHaWhxRm5QRkNxMkZuT2RtU0RGUTFOdEtDb1FHMnFrUkdGQW5jZVo3?=
 =?utf-8?B?TXJXL0tob21RTkxzL1NFOGJaZzVkam5HVUo2Q0lHdzZJRnhRNjdSMHlGOFhn?=
 =?utf-8?B?emJUTU92dXUxb2lZTDQvWkdXd2lvbGZBVVFPZmV5L1RpU2g1RysveDRDQlNp?=
 =?utf-8?B?dlBoUi9NZDMzc25BcjNTK0htSFowWXVKS3hZbVFPNlRWY3JyU0NPSzdWWm1o?=
 =?utf-8?B?dWcvSTMvd2dLV0hTbWt3WEhLVDgzRkM1WHNqV2xEMHUvd3U0NlAwRTFWZ0xx?=
 =?utf-8?B?SG9SdExaM25iVGxMTEtjOUttUlRDQmpIRmg2Y0tpWGFOOUZCYUQ5cHdZaGIz?=
 =?utf-8?B?UHNQREgrSUhiYlFyNzNZVENqYjM5V3QxbmQrZm9ZS1oyZHJ6TTRVZ2ptRjZh?=
 =?utf-8?B?dm1yS0Z5cW9Ec2gwL3RmdU1EQURCYVl1NFJVUnFLUnA4TVJIdzAyRzVwNVB1?=
 =?utf-8?B?U0V1WE9LdWN1ZVBKcTZQUWlCNVF5MmM4SG8rZlpSS0I4UGJrU0FWcWlxaEJI?=
 =?utf-8?B?R050QWtxWWNyTURPbjErVTdLbnFOVjFKR3RlYVQrTCtsTmF3RU9UT3dNdFg4?=
 =?utf-8?B?eWQ4M0Mza0ZKbFJ2bE9DWWFzQXB3UXdYV25iT1Y0SkEyQkg4YkpydGdKaUMr?=
 =?utf-8?B?MGlOYi9lWWhVSTZtVUhvSGhhZk1SdzlLWGtRSzFhbnFSQkQzR0dGaWZ3TjFI?=
 =?utf-8?B?VkNLVXFKTXdpTkUyK2d4dFFWTTY5Vi91SnF0SkFLOE5mcVBZWktwVUxhYmNN?=
 =?utf-8?B?czdxV01Qbm1JUWFTTjRVRGRyek15TURmMEJUb0M2TGJBNzBIQm9nLzVEbS9h?=
 =?utf-8?B?QlZ3WHBzNVVXMkVlclZTbktRNjBicE1aLzRXZmZEaHF3MitwakJ3UmNJcWVO?=
 =?utf-8?B?bDBoWEtCV1lhVE1vcDlUMVVpRGNUclpINE9xQnJkQ1hHVUlXUnRJVDdKcmpF?=
 =?utf-8?B?U1F2cnhLZEY1N0JrQ01NRFViZkFvcHlXdnY3bUIySnpzVzM0SnlKR29JUEhC?=
 =?utf-8?B?b0lwSDhDaFlNRU5QeWtmcG5rQmJ6T2xSMVkxZWNOeE1zYlFQY3QzbktRZFFF?=
 =?utf-8?B?eDJKQmdwTzM3eTBqZktJb2I0Ukh0eXgwZ0dGaTFiVTAxRnplMUxUUnJuaHUr?=
 =?utf-8?B?QnQ5aVY3LzNVY2pwVW93NlNud3BxYWRaazlpR2E1MFlqU3o5ajgvY1Z3RWVp?=
 =?utf-8?B?aWxodHpKSWJaQXpEaWwvZTdrTkZLaXc1KzJVcmlMd2tibzJ6eGprL2xCYVgy?=
 =?utf-8?B?dEV5ajY0WVZDamJDejdBbkUxTFRueUcvQy9hK0hha3Y1TVFpVnVMK3JuTzBi?=
 =?utf-8?B?VWZ6WkRHRkVzMFV0bDQwbVp4alB0bE14dlplaG1XMkVFNDdoazlNSkoyTVJL?=
 =?utf-8?B?T3l5RndBUFBCQVdKV2Z2WEQ3d3hjZnJ3YXlZdHdveU81bG1SREU2U25nZTZV?=
 =?utf-8?B?OGRFaEJtVHFDSjZZc0dxdE53SmVUSjR5SFI2RHpKZ21uMUdBVXlnVzI1OUpx?=
 =?utf-8?B?UkxDNTB1ZVR0UGZ3QW1FNTM0enpLL3oyNFhLMHNCa0o3eUFHdS9hV28vQ0dv?=
 =?utf-8?B?cFc5SHFDYTBFSlROSGQ0YVM1dEZpRDRRWW5rZVFYSDE2UElRa1h4OHZXRnhM?=
 =?utf-8?B?ZXJ1N0ZhR0tBTWZKNXlBanFHbWJuQWxLRkxBaTdya1ltQzV3dXlha3EzeGhF?=
 =?utf-8?B?SjRRSWQzcU1xZkliaitqT3JHSm9mbTlHUGMydzdOa1Y4U2hEK09LUFMyNGhD?=
 =?utf-8?B?bzRNeXpyMVo4cGVzUTU5SHA1WklydERrNWE0cCtnQTBXcDIxMjRxTEdUakZ2?=
 =?utf-8?B?TEgzem1sWWQrWjNwbEN3RmpLOE8rZkhYZjdLeEpMbHMwWEdpZisvVjQ1eXRD?=
 =?utf-8?Q?Xwc6Jf?=
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: 14 Apr 2025 15:03:52.3631
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 494471e0-443b-46c8-db93-08dd7b6591d4
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:
	SJ1PEPF00001CE2.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS2PR12MB9638

On Wed Apr 9, 2025 at 11:07 PM BST, Denis Mukhin wrote:
> On Tuesday, April 8th, 2025 at 9:07 AM, Alejandro Vallejo <agarciav@amd.c=
om> wrote:
>
>>=20
>>=20
>> From: "Daniel P. Smith" dpsmith@apertussolutions.com
>>=20
>>=20
>> Look for a subnode of type `multiboot,ramdisk` within a domain node and
>> parse via the fdt_read_multiboot_module() helper. After a successful
>> helper call, the module index is returned and the module is guaranteed
>> to be in the module list.
>>=20
>> Fix unused typo in adjacent comment.
>>=20
>> Signed-off-by: Daniel P. Smith dpsmith@apertussolutions.com
>>=20
>> Signed-off-by: Jason Andryuk jason.andryuk@amd.com
>>=20
>> Signed-off-by: Alejandro Vallejo agarciav@amd.com
>>=20
>> ---
>> v3:
>> * Reworded commit message to state the helper postconditions.
>> * Wrapped long line
>> * Fix ramdisk -> module rename
>>=20
>> * Move ramdisk parsing from later patch
>> * Remove initrdidx indent
>> ---
>> xen/arch/x86/domain-builder/fdt.c | 29 +++++++++++++++++++++++++++++
>> xen/arch/x86/setup.c | 4 ++--
>> 2 files changed, 31 insertions(+), 2 deletions(-)
>>=20
>> diff --git a/xen/arch/x86/domain-builder/fdt.c b/xen/arch/x86/domain-bui=
lder/fdt.c
>> index bc9903a9de..0f5fd01557 100644
>> --- a/xen/arch/x86/domain-builder/fdt.c
>> +++ b/xen/arch/x86/domain-builder/fdt.c
>> @@ -195,6 +195,35 @@ static int __init process_domain_node(
>> !((char *)__va(bd->kernel->cmdline_pa))[0] )
>>=20
>> bd->kernel->fdt_cmdline =3D fdt_get_prop_offset(
>>=20
>> fdt, node, "bootargs", &bd->kernel->cmdline_pa);
>>=20
>> +
>> + continue;
>> + }
>> + else if ( fdt_node_check_compatible(fdt, node,
>> + "multiboot,ramdisk") =3D=3D 0 )
>> + {
>> + int idx;
>> +
>> + if ( bd->module )
>>=20
>> + {
>> + printk(XENLOG_ERR "Duplicate ramdisk module for domain %s)\n",
>
> I would start the message with lower case so it is consistent with the ot=
her one.

As mentioned before, this is due to how it's meant to be rendered. This
is a standalone message, hence the uppercase (consistent with the
duplicate kernel).

Will change the XENLOG_ERR into XENLOG_WARNING though.

>
>> + name);
>> + continue;
>> + }
>> +
>> + idx =3D fdt_read_multiboot_module(fdt, node, address_cells,
>> + size_cells,bi);
>> + if ( idx < 0 )
>> + {
>> + printk(" failed processing ramdisk module for domain %s\n",
>> + name);
>
> Prepend the log message with XENLOG_ERR ?

Indeed.

>
>> + return -EINVAL;
>> + }
>> +
>> + printk(" ramdisk: boot module %d\n", idx);
>> + bi->mods[idx].type =3D BOOTMOD_RAMDISK;
>>=20
>> + bd->module =3D &bi->mods[idx];
>>=20
>> +
>> + continue;
>> }
>> }
>>=20
>> diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
>> index ca4415d020..3dfa81b48c 100644
>> --- a/xen/arch/x86/setup.c
>> +++ b/xen/arch/x86/setup.c
>> @@ -2149,11 +2149,11 @@ void asmlinkage __init noreturn __start_xen(void=
)
>> * 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 ini=
trd
>> + * any remaining unclaimed boot modules, and report them as unused init=
rd
>> * candidates.
>> */
>> initrdidx =3D first_boot_module_index(bi, BOOTMOD_UNKNOWN);
>> - if ( initrdidx < MAX_NR_BOOTMODS )
>> + if ( !bi->hyperlaunch_enabled && initrdidx < MAX_NR_BOOTMODS )
>>=20
>> {
>> bi->mods[initrdidx].type =3D BOOTMOD_RAMDISK;
>>=20
>> bi->domains[0].module =3D &bi->mods[initrdidx];
>>=20
>> --
>> 2.43.0

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Mon Apr 14 15:05:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 15:05:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.950588.1346856 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4LMv-0005gC-UX; Mon, 14 Apr 2025 15:05:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 950588.1346856; Mon, 14 Apr 2025 15:05: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 1u4LMv-0005g5-RJ; Mon, 14 Apr 2025 15:05:05 +0000
Received: by outflank-mailman (input) for mailman id 950588;
 Mon, 14 Apr 2025 15: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=ezPI=XA=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u4LMu-0005fz-HP
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 15:05: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 d732ca55-1941-11f0-9ffb-bf95429c2676;
 Mon, 14 Apr 2025 17:05:02 +0200 (CEST)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-43cef035a3bso32422005e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 14 Apr 2025 08:05:02 -0700 (PDT)
Received: from [10.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-43f20625592sm181899245e9.10.2025.04.14.08.05.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 14 Apr 2025 08:05: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: d732ca55-1941-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744643102; x=1745247902; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=10HvP2AvrbKid+VqXPQLkxNVZRQw5YvJvqRZW+lYFKw=;
        b=PfpL1yTjpPvkQ3+11DCEJNaaLCv+z/8wAAElO5q9s3L6l282q/B8NsEj1MPsSxnTzU
         LCRmAytjQzm/AeauSJ0yanb5CbTFWEuZF+gaIa873QD9OhJTXkiJLh0Aoboe/8854Q1h
         Lf8MVkRmkLk0X0P6l23mLbnNKrcXoa/oQgdSLpJN1B5rIrdLA2J6m9nzTR5HDvnqvcG3
         cbKqblf3H+1CjseHAh1FHXKKlcQhO2wjbXwtnzLWndoLTjTnLT3ArYVvL1fuzXxDriXD
         psJhmN0tfn/3SptCfFkqnk+ifWkV251+ouQVI/Zm2mrLins54pOzTuHa+IxXkA38lnSC
         iY2A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744643102; x=1745247902;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=10HvP2AvrbKid+VqXPQLkxNVZRQw5YvJvqRZW+lYFKw=;
        b=dD9O37c8t9IaKv9tRCsO2ugbQWUqsKRlNnm3h9hDKWAVyQVJHEv4HDAJ79D03KKRMf
         xnH9mzOq7HRlcg2ETa311fcWeYIf9Xv+W42S64TczOhXy8RcKFJRXp2++AtXCFp5zgyp
         CnUt2v4cm9Eiug9m1ti3F32zNSLcFR+34+XaOHT2B3zXr5vne1roD8OPPsDWLzDh8c8v
         /T1ACPFeV+zN8vefHQykNyEdA4u1aOemV+f5OiduqqCkX7jj9RFqYhpgpeCa1p+SZBJB
         uU2yGO4TiReyM39OiqSqGSL2Ff0XD7n2z5/aT1DfFZ17H+0TLMuIyZ4sflU9q/nsaqha
         tc9g==
X-Forwarded-Encrypted: i=1; AJvYcCU4q9omErtpu8j3J20A02g2g4gCweGN3RIeuSj83XflIM06naHEnElL/Z+0TYegfBOHaN0XfLzORsw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxbCrCYWTO1bC1EDq2echEhcfKLOXjzxga7VPsfgRqz/32rQtSp
	GVDLrw8YB9VG46MGs8Ap8ylISAnAAaLyzL5C5MyvQdet9ccXTj8CXxqLG89OAg==
X-Gm-Gg: ASbGncti5cSYZj7j6UdU9/X84uGaHG0a9hJEo8JGb5obs6kr1oP73s/WhDnQ2rSG5+U
	pX4GEYedM++d4IDlsqE3m9sX0Scpe/JLEYoFvYeU2t8C5LzPvIAkQcknCwxh0qGKRueBNv4TkGv
	Mi+KX4EM/xdkVCRKVS9rRKMv/n92NhRIcQWgfFbGAIJ/MCTqst3BgPHnnuEEB/B0334SurN6GAP
	O/9PCAt1iVKkKQPnMHqW5/VK7wSWVQtPhBwE/FjaqzZB+q1unIz0GL8h0ryQqzmFZkqa7itfM7j
	aUPEiVRxr+Y9VSz7Ccc3DjP8An2b9a5muW6V9xvlS8Gyu1MxBR4cq7L8V6V7dzLWeWpi2e5YnQ7
	Co1svj+AlhDcRX0HsfExfLjnNgQ==
X-Google-Smtp-Source: AGHT+IEpd4v6mazVBuJkZrHBoMZai40BSoUmHIdSCdM4Kzdg6y1iJO+yV8iF7NyI6ueJVBL6NTYMdg==
X-Received: by 2002:a05:600c:a43:b0:43d:bb9:ad00 with SMTP id 5b1f17b1804b1-43f3a959edemr116396215e9.15.1744643101095;
        Mon, 14 Apr 2025 08:05:01 -0700 (PDT)
Message-ID: <3d2aa870-a1cb-4e33-841d-aee7b6b6db83@suse.com>
Date: Mon, 14 Apr 2025 17:05:02 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 08/16] x86/hyperlaunch: Add helpers to locate multiboot
 modules
To: Alejandro Vallejo <agarciav@amd.com>
Cc: Jason Andryuk <jason.andryuk@amd.com>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Michal Orzel <michal.orzel@amd.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Julien Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 xen-devel@lists.xenproject.org,
 "consulting@bugseng.com" <consulting@bugseng.com>
References: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-9-agarciav@amd.com>
 <fe282aa0-fe2d-49b8-a2aa-325c9825304b@suse.com>
 <D96EI9O4XII2.195QNQNT1T3FG@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: <D96EI9O4XII2.195QNQNT1T3FG@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 14.04.2025 15:37, Alejandro Vallejo wrote:
> On Thu Apr 10, 2025 at 11:42 AM BST, Jan Beulich wrote:
>> On 08.04.2025 18:07, Alejandro Vallejo wrote:
>>> +/*
>>> + * Locate a multiboot module given its node offset in the FDT.
>>> + *
>>> + * The module location may be given via either FDT property:
>>> + *     * reg = <address, size>
>>> + *         * Mutates `bi` to append the module.
>>> + *     * module-index = <idx>
>>> + *         * Leaves `bi` unchanged.
>>> + *
>>> + * @param fdt           Pointer to the full FDT.
>>> + * @param node          Offset for the module node.
>>> + * @param address_cells Number of 4-octet cells that make up an "address".
>>> + * @param size_cells    Number of 4-octet cells that make up a "size".
>>> + * @param bi[inout]     Xen's representation of the boot parameters.
>>> + * @return              -EINVAL on malformed nodes, otherwise
>>> + *                      index inside `bi->mods`
>>> + */
>>> +int __init fdt_read_multiboot_module(const void *fdt, int node,
>>> +                                     int address_cells, int size_cells,
>>> +                                     struct boot_info *bi)
>>
>> Functions without callers and non-static ones without declarations are
>> disliked by Misra.
> 
> Can't do much about it if I want them to stand alone in a single patch.
> Otherwise the following ones become quite unwieldy to look at. All I can
> say is that this function becomes static and with a caller on the next
> patch.

Which means you need to touch this again anyway. Perhaps we need a Misra
deviation for __maybe_unused functions / data, in which case you could
use that here and strip it along with making the function static. Cc-ing
Bugseng folks.

>>> +    /* Otherwise location given as a `reg` property. */
>>> +    prop = fdt_get_property(fdt, node, "reg", NULL);
>>> +
>>> +    if ( !prop )
>>> +    {
>>> +        printk("  No location for multiboot,module\n");
>>> +        return -EINVAL;
>>> +    }
>>> +    if ( fdt_get_property(fdt, node, "module-index", NULL) )
>>> +    {
>>> +        printk("  Location of multiboot,module defined multiple times\n");
>>> +        return -EINVAL;
>>> +    }
>>> +
>>> +    ret = read_fdt_prop_as_reg(prop, address_cells, size_cells, &addr, &size);
>>> +
>>> +    if ( ret < 0 )
>>> +    {
>>> +        printk("  Failed reading reg for multiboot,module\n");
>>> +        return -EINVAL;
>>> +    }
>>> +
>>> +    idx = bi->nr_modules + 1;
>>
>> This at least looks like an off-by-one. If the addition of 1 is really
>> intended, I think it needs commenting on.
> 
> Seems to be, yes. The underlying array is a bit bizarre. It's sizes as
> MAX_NR_BOOTMODS + 1, with the first one being the DTB itself. I guess
> the intent was to take it into account, but bi->nr_modules is
> initialised to the number of multiboot modules, so it SHOULD be already
> taking it into account.
> 
> Also, the logic for bounds checking seems... off (because of the + 1 I
> mentioned before). Or at least confusing, so I've moved to using
> ARRAY_SIZE(bi->mods) rather than explicitly comparing against
> MAX_NR_BOOTMODS.
> 
> The array is MAX_NR_BOOTMODS + 1 in length, so it's just more cognitive
> load than I'm comfortable with.

If I'm not mistaken the +1 is inherited from the modules array we had in
the past, where we wanted 1 extra slot for Xen itself. Hence before you
move to using ARRAY_SIZE() everywhere it needs to really be clear what
the +1 here is used for.

>>> --- a/xen/include/xen/libfdt/libfdt-xen.h
>>> +++ b/xen/include/xen/libfdt/libfdt-xen.h
>>> @@ -13,6 +13,63 @@kkk
>>>  
>>>  #include <xen/libfdt/libfdt.h>
>>>  
>>> +static inline int __init fdt_cell_as_u32(const fdt32_t *cell)
>>
>> Why plain int here, but ...
>>
>>> +{
>>> +    return fdt32_to_cpu(*cell);
>>> +}
>>> +
>>> +static inline uint64_t  __init fdt_cell_as_u64(const fdt32_t *cell)
>>
>> ... a fixed-width and unsigned type here? Question is whether the former
>> helper is really warranted.
>>
>> Also nit: Stray double blank.
>>
>>> +{
>>> +    return ((uint64_t)fdt32_to_cpu(cell[0]) << 32) | fdt32_to_cpu(cell[1]);
>>
>> That is - uniformly big endian?
> 
> These helpers are disappearing, so it doesn't matter. This is basically
> an open coded:
> 
>   fdt64_to_cpu(*(const fdt64_t *)fdt32)
> 
> And, yes. DTBs are standardised as having big-endian properties, for
> better or worse :/
> 
>>
>>> +}
>>
>> Marking such relatively generic inline functions __init is also somewhat
>> risky. 
> 
> They were originally in domain-builder/fdt.c and moved here as a result
> of a request to have them on libfdt. libfdt proved to be somewhat
> annoying because it would be hard to distinguish accessors for the
> flattened and the unflattened tree.
> 
> I'd personally have them in domain-builder instead, where they are used.
> Should they be needed somewhere else, we can always fator them out
> somewhere else.
> 
> Thoughts?

As long as they're needed only by domain-builder, it's probably fine to have
them just there.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Apr 14 15:05:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 15:05:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.950589.1346867 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4LN2-0005x5-9g; Mon, 14 Apr 2025 15:05:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 950589.1346867; Mon, 14 Apr 2025 15:05:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4LN2-0005wy-5h; Mon, 14 Apr 2025 15:05:12 +0000
Received: by outflank-mailman (input) for mailman id 950589;
 Mon, 14 Apr 2025 15:05:10 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=YdIb=XA=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1u4LN0-0005AN-N9
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 15:05:10 +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 da85e723-1941-11f0-9eae-5ba50f476ded;
 Mon, 14 Apr 2025 17:05:08 +0200 (CEST)
Received: by mail-wr1-x436.google.com with SMTP id
 ffacd0b85a97d-39c0e0bc733so3838560f8f.1
 for <xen-devel@lists.xenproject.org>; Mon, 14 Apr 2025 08:05:07 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-64-225.play-internet.pl.
 [109.243.64.225]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-acaa1bb3548sm918035966b.5.2025.04.14.08.05.04
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 14 Apr 2025 08:05: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: da85e723-1941-11f0-9eae-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1744643107; x=1745247907; darn=lists.xenproject.org;
        h=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=j0byfp7Rqg8Q+pED+Y9wuf++L9wQ5yzjkxPMim1JtiU=;
        b=CSY+dRev1hgmPDSQsCqhaUD8OTrNX2xtaDf18u9TVnQei5qLRar5kpV687X1YfVB/j
         iVRK/w3bWRYL+IHXCyj0gQTmRW+c2kwKNFLvI7HZLMErYVEAuMz8QDoCB93ewgXQ55sD
         EZ9Os2pljRiW0MkgLcFrdaIgrrjZG2z2/j2Apkpe2mH6EqhNhhdkbIIzTLGApEfEXW7f
         NvfHS//qiJKnWyFDY1lnz/XJvBszzBjY+4ujww9M5qTRa00eL4G5qZTfomCSYUhnxO0h
         21kcC1yJAOJ2+cbU2xGC9RJVSJhj3KOYqkGwH4LVya4reNevxiQSOWXy/jdNTCLK3P2b
         1oSQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744643107; x=1745247907;
        h=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=j0byfp7Rqg8Q+pED+Y9wuf++L9wQ5yzjkxPMim1JtiU=;
        b=rjMAp6P3XuPusQW4zvNImuj4ldhpV7QWHi5CgWQ+YXEO18D9NtdSjBrcbpvB9kZuym
         zlBEJ+e7jOYXQIFYqhco7LhOUOFI5NlVIxHPop60MCAy9/hMhrSt6ekiREsqJjSVfkQD
         X0aLB4Y3C5Fs6+FEted4B72xLwhuGuyMPVUAA/GMJDWpn175+JB/EoYFl52ElFd26Stn
         jlfFJ+Q7MnLGln5nOZY2f6uTDRGmC20/+q+6d43BaqNYUlrhAkpombnE5mkNB4OGvwr7
         ZuAD1UMZNe3RFPJb9pFBmVG8aBidMMgguW3Z2gNoELflzUjoOdtDLjWv+CtjoUCi1EBj
         5OBg==
X-Forwarded-Encrypted: i=1; AJvYcCUruQJ5v7AynmFk4Ls4NUkPYvvsNQLJYFd2/dbaowNohKhoPWlwIP/t2r+t66Bn7kW5fpVLli7Ov60=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyvsyfwK8fWFp8g96Km9Bi5/6cLvsgJrOsGg7pl6Ijcz6R/hO7d
	gCepuAL9pXbBOSGCA3H8WuDQ9B1Ixv4P+K9A+I+tmf3vKWvveD57
X-Gm-Gg: ASbGncsS7Yw6qMhHDKqx/iKtGSFuElJ6nOrBHM7TkdzJ4qZwTO6XqVK3l6z/RXiDwz5
	tXrGU7ibD0L2Rw5T6SiRQUYH3/8hCdJPcU7mhu+cy53+Cf6u3L2eZeuRdg7soVYCd3aBEHUhFx5
	VuCknJNMPHACrwbrmZpET+AcgI+iZ/V3hQjLB3NwcYepnZKB1SIqxrgF9FXZoxJo7LW2MOxoKs4
	OOGdtL7aw/Wn2may/iBsL+h2AmzFo8/DPeCTldcRvH4SojOFTntv3q8vAgj8f1zFEiudZXDOcvz
	rQTebOGBFka/FyNXK2Al8ywUdP1kzTE1gHTHMinuX30P8SjgW5nk1QauCN57+0qj7TXSqmZ14kB
	9c49jHiUPZFDszb30
X-Google-Smtp-Source: AGHT+IHUrd9mB2qRaOgWgaHSQmymZY6nQJOFd9XZsrmxFtpzP8ez9JaxmSQBvhHMd09IuC6min1S8A==
X-Received: by 2002:a05:6000:1867:b0:39c:1429:fa57 with SMTP id ffacd0b85a97d-39ea51f42ccmr10609415f8f.3.1744643107051;
        Mon, 14 Apr 2025 08:05:07 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------RzsczeltER0pW6JLHs0ZZMOZ"
Message-ID: <127265c3-b572-4763-932a-4bb1d53af0b9@gmail.com>
Date: Mon, 14 Apr 2025 17:05:04 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 02/14] xen/riscv: introduce smp_clear_cpu_maps()
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1744126720.git.oleksii.kurochko@gmail.com>
 <ce3460b3857cca9e6f3072a8ddd50b31cb46b855.1744126720.git.oleksii.kurochko@gmail.com>
 <18277077-2cf0-466f-8bde-f7955806bcb2@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <18277077-2cf0-466f-8bde-f7955806bcb2@suse.com>

This is a multi-part message in MIME format.
--------------RzsczeltER0pW6JLHs0ZZMOZ
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 4/10/25 3:10 PM, Jan Beulich wrote:
> On 08.04.2025 17:57, Oleksii Kurochko wrote:
>> Initialize cpu_{possible, online, present}_map by using smp_clear_cpu_maps().
>>
>> Drop DEFINE_PER_CPU(unsigned int, cpu_id) from stubs.c as this variable isn't
>> expected to be used in RISC-V at all.
>>
>> Move declaration of cpu_{possible,online,present}_map from stubs.c to smpboot.c
>> as now smpboot.c is now introduced.
>> Other defintions keep in stubs.c as they are not initialized and not needed, at
>> the moment.
>>
>> Signed-off-by: Oleksii Kurochko<oleksii.kurochko@gmail.com>
>> ---
>>   xen/arch/riscv/Makefile          |  1 +
>>   xen/arch/riscv/include/asm/smp.h |  2 ++
>>   xen/arch/riscv/setup.c           |  2 ++
>>   xen/arch/riscv/smpboot.c         | 15 +++++++++++++++
>>   xen/arch/riscv/stubs.c           |  6 ------
>>   5 files changed, 20 insertions(+), 6 deletions(-)
>>   create mode 100644 xen/arch/riscv/smpboot.c
>>
>> diff --git a/xen/arch/riscv/Makefile b/xen/arch/riscv/Makefile
>> index 0c6c4a38a3..f551bf32a2 100644
>> --- a/xen/arch/riscv/Makefile
>> +++ b/xen/arch/riscv/Makefile
>> @@ -10,6 +10,7 @@ obj-y += sbi.o
>>   obj-y += setup.o
>>   obj-y += shutdown.o
>>   obj-y += smp.o
>> +obj-y += smpboot.o
>>   obj-y += stubs.o
>>   obj-y += time.o
>>   obj-y += traps.o
>> diff --git a/xen/arch/riscv/include/asm/smp.h b/xen/arch/riscv/include/asm/smp.h
>> index 5e170b57b3..188c033718 100644
>> --- a/xen/arch/riscv/include/asm/smp.h
>> +++ b/xen/arch/riscv/include/asm/smp.h
>> @@ -26,6 +26,8 @@ static inline void set_cpuid_to_hartid(unsigned long cpuid,
>>   
>>   void setup_tp(unsigned int cpuid);
>>   
>> +void smp_clear_cpu_maps(void);
>> +
>>   #endif
>>   
>>   /*
>> diff --git a/xen/arch/riscv/setup.c b/xen/arch/riscv/setup.c
>> index 4e416f6e44..7f68f3f5b7 100644
>> --- a/xen/arch/riscv/setup.c
>> +++ b/xen/arch/riscv/setup.c
>> @@ -72,6 +72,8 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
>>   
>>       remove_identity_mapping();
>>   
>> +    smp_clear_cpu_maps();
>> +
>>       set_processor_id(0);
>>   
>>       set_cpuid_to_hartid(0, bootcpu_id);
>> diff --git a/xen/arch/riscv/smpboot.c b/xen/arch/riscv/smpboot.c
>> new file mode 100644
>> index 0000000000..0f4dcc28e1
>> --- /dev/null
>> +++ b/xen/arch/riscv/smpboot.c
>> @@ -0,0 +1,15 @@
>> +#include <xen/cpumask.h>
>> +#include <xen/init.h>
>> +
>> +cpumask_t cpu_online_map;
>> +cpumask_t cpu_present_map;
>> +cpumask_t cpu_possible_map;
> __read_mostly for all of them, perhaps (if CPU hotplug isn't expected to
> be supported) even __ro_after_init for the latter two?

We have been living without CPU hotplug support for a long time in the downstream
branch, but I can't say whether it is expected to be supported in the future or not.
To ensure we can add such an option later without changing the attributes of
cpu_online_map variable, I prefer to use|__read_mostly| here and __ro_after_init for
cpu_possible_map.

>
> As to cpu_possible_map - do you predict that you'll actually use it? Arm
> does (and instead has only a fake cpu_present_map), but on x86 we get away
> without.

I checked how it is used now in downstream latest branch and it isn't really used
only during initialization smp_clear_cpu_maps() and smp_prepare_cpus() so we can
skip it for RISC-V too.

>
>> +void __init smp_clear_cpu_maps(void)
>> +{
>> +    cpumask_clear(&cpu_possible_map);
>> +    cpumask_clear(&cpu_online_map);
> What's the point of these? All three maps start out fully zeroed.

It could be really dropped. I saw your patch for Arm, I'll align the current
patch with that changes.


>
>> +    cpumask_set_cpu(0, &cpu_possible_map);
>> +    cpumask_set_cpu(0, &cpu_online_map);
> These are contradicting the name of the function. The somewhat equivalent
> function we have on x86 is smp_prepare_boot_cpu().
>
>> +    cpumask_copy(&cpu_present_map, &cpu_possible_map);
> Another cpumask_set_cpu() is probably cheaper here then.

What do you mean by cheaper here?

~ Oleksii

--------------RzsczeltER0pW6JLHs0ZZMOZ
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 4/10/25 3:10 PM, Jan Beulich wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:18277077-2cf0-466f-8bde-f7955806bcb2@suse.com">
      <pre wrap="" class="moz-quote-pre">On 08.04.2025 17:57, Oleksii Kurochko wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">Initialize cpu_{possible, online, present}_map by using smp_clear_cpu_maps().

Drop DEFINE_PER_CPU(unsigned int, cpu_id) from stubs.c as this variable isn't
expected to be used in RISC-V at all.

Move declaration of cpu_{possible,online,present}_map from stubs.c to smpboot.c
as now smpboot.c is now introduced.
Other defintions keep in stubs.c as they are not initialized and not needed, at
the moment.

Signed-off-by: Oleksii Kurochko <a class="moz-txt-link-rfc2396E" href="mailto:oleksii.kurochko@gmail.com">&lt;oleksii.kurochko@gmail.com&gt;</a>
---
 xen/arch/riscv/Makefile          |  1 +
 xen/arch/riscv/include/asm/smp.h |  2 ++
 xen/arch/riscv/setup.c           |  2 ++
 xen/arch/riscv/smpboot.c         | 15 +++++++++++++++
 xen/arch/riscv/stubs.c           |  6 ------
 5 files changed, 20 insertions(+), 6 deletions(-)
 create mode 100644 xen/arch/riscv/smpboot.c

diff --git a/xen/arch/riscv/Makefile b/xen/arch/riscv/Makefile
index 0c6c4a38a3..f551bf32a2 100644
--- a/xen/arch/riscv/Makefile
+++ b/xen/arch/riscv/Makefile
@@ -10,6 +10,7 @@ obj-y += sbi.o
 obj-y += setup.o
 obj-y += shutdown.o
 obj-y += smp.o
+obj-y += smpboot.o
 obj-y += stubs.o
 obj-y += time.o
 obj-y += traps.o
diff --git a/xen/arch/riscv/include/asm/smp.h b/xen/arch/riscv/include/asm/smp.h
index 5e170b57b3..188c033718 100644
--- a/xen/arch/riscv/include/asm/smp.h
+++ b/xen/arch/riscv/include/asm/smp.h
@@ -26,6 +26,8 @@ static inline void set_cpuid_to_hartid(unsigned long cpuid,
 
 void setup_tp(unsigned int cpuid);
 
+void smp_clear_cpu_maps(void);
+
 #endif
 
 /*
diff --git a/xen/arch/riscv/setup.c b/xen/arch/riscv/setup.c
index 4e416f6e44..7f68f3f5b7 100644
--- a/xen/arch/riscv/setup.c
+++ b/xen/arch/riscv/setup.c
@@ -72,6 +72,8 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
 
     remove_identity_mapping();
 
+    smp_clear_cpu_maps();
+
     set_processor_id(0);
 
     set_cpuid_to_hartid(0, bootcpu_id);
diff --git a/xen/arch/riscv/smpboot.c b/xen/arch/riscv/smpboot.c
new file mode 100644
index 0000000000..0f4dcc28e1
--- /dev/null
+++ b/xen/arch/riscv/smpboot.c
@@ -0,0 +1,15 @@
+#include &lt;xen/cpumask.h&gt;
+#include &lt;xen/init.h&gt;
+
+cpumask_t cpu_online_map;
+cpumask_t cpu_present_map;
+cpumask_t cpu_possible_map;
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
__read_mostly for all of them, perhaps (if CPU hotplug isn't expected to
be supported) even __ro_after_init for the latter two?</pre>
    </blockquote>
    <pre>We have been living without CPU hotplug support for a long time in the downstream
branch, but I can't say whether it is expected to be supported in the future or not.
To ensure we can add such an option later without changing the attributes of
cpu_online_map variable, I prefer to use <code data-start="311"
    data-end="326">__read_mostly</code> here and __ro_after_init for
cpu_possible_map.

</pre>
    <blockquote type="cite"
      cite="mid:18277077-2cf0-466f-8bde-f7955806bcb2@suse.com">
      <pre wrap="" class="moz-quote-pre">

As to cpu_possible_map - do you predict that you'll actually use it? Arm
does (and instead has only a fake cpu_present_map), but on x86 we get away
without.</pre>
    </blockquote>
    <pre>I checked how it is used now in downstream latest branch and it isn't really used
only during initialization smp_clear_cpu_maps() and smp_prepare_cpus() so we can
skip it for RISC-V too.</pre>
    <blockquote type="cite"
      cite="mid:18277077-2cf0-466f-8bde-f7955806bcb2@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+void __init smp_clear_cpu_maps(void)
+{
+    cpumask_clear(&amp;cpu_possible_map);
+    cpumask_clear(&amp;cpu_online_map);
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
What's the point of these? All three maps start out fully zeroed.</pre>
    </blockquote>
    <pre>It could be really dropped. I saw your patch for Arm, I'll align the current
patch with that changes.
</pre>
    <p><br>
    </p>
    <blockquote type="cite"
      cite="mid:18277077-2cf0-466f-8bde-f7955806bcb2@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+    cpumask_set_cpu(0, &amp;cpu_possible_map);
+    cpumask_set_cpu(0, &amp;cpu_online_map);
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
These are contradicting the name of the function. The somewhat equivalent
function we have on x86 is smp_prepare_boot_cpu().

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+    cpumask_copy(&amp;cpu_present_map, &amp;cpu_possible_map);
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Another cpumask_set_cpu() is probably cheaper here then.</pre>
    </blockquote>
    <pre>What do you mean by cheaper here?
</pre>
    <pre>~ Oleksii
</pre>
  </body>
</html>

--------------RzsczeltER0pW6JLHs0ZZMOZ--


From xen-devel-bounces@lists.xenproject.org Mon Apr 14 15:08:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 15:08:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.950607.1346876 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4LQ3-000774-MD; Mon, 14 Apr 2025 15:08:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 950607.1346876; Mon, 14 Apr 2025 15:08: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 1u4LQ3-00076x-JV; Mon, 14 Apr 2025 15:08:19 +0000
Received: by outflank-mailman (input) for mailman id 950607;
 Mon, 14 Apr 2025 15:08:17 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Bm2T=XA=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1u4LQ1-00075D-MF
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 15:08:17 +0000
Received: from PA4PR04CU001.outbound.protection.outlook.com
 (mail-francecentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20a::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4aba874b-1942-11f0-9eae-5ba50f476ded;
 Mon, 14 Apr 2025 17:08:16 +0200 (CEST)
Received: from AS9PR06CA0215.eurprd06.prod.outlook.com (2603:10a6:20b:45e::22)
 by PAWPR08MB9591.eurprd08.prod.outlook.com (2603:10a6:102:2ef::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.30; Mon, 14 Apr
 2025 15:08:14 +0000
Received: from AM3PEPF0000A796.eurprd04.prod.outlook.com
 (2603:10a6:20b:45e:cafe::a6) by AS9PR06CA0215.outlook.office365.com
 (2603:10a6:20b:45e::22) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.33 via Frontend Transport; Mon,
 14 Apr 2025 15:08:14 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AM3PEPF0000A796.mail.protection.outlook.com (10.167.16.101) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.12
 via Frontend Transport; Mon, 14 Apr 2025 15:08:12 +0000
Received: from DB7PR08MB2987.eurprd08.prod.outlook.com (2603:10a6:5:1c::25) by
 PA4PR08MB6237.eurprd08.prod.outlook.com (2603:10a6:102:f3::8) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.8632.34; Mon, 14 Apr 2025 15:07:40 +0000
Received: from DB7PR08MB2987.eurprd08.prod.outlook.com
 ([fe80::d53f:b16d:70a5:8668]) by DB7PR08MB2987.eurprd08.prod.outlook.com
 ([fe80::d53f:b16d:70a5:8668%4]) with mapi id 15.20.8632.030; Mon, 14 Apr 2025
 15:07: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: 4aba874b-1942-11f0-9eae-5ba50f476ded
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=LD38OKN8nSf92ahu9KytxkfhQUXfTOdWTEwis0t8SLGMOhaFwHsoJlyJ0aEmLkhKeeUkn8EOGSp9H+WSxHgqsYDLrlmtpu7FAjKVA6rLWLhSIlc6R7lEE7Z4kRxj2NnFCcNYfmdodSNxBQfR/7S+kBzUaqqMjIoGzB1zFkrD5wyLxBB8R8OPIEcQKftbJEXesZZM6t/ZEF2V3A3R7rAUvzQMxW2nkrXrHT+/gOhSSmKHTqCfe7j6TtxmUAs+BqzrCAasOrEnIoRBR7+F6JKf6QZxOwmwFV9DUmzBJw6wVSO1zIrbK+U8VOgnHLAnI+vxnghITa0swyUczw8vWPrdYA==
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=HlK/Yp40klvIOQCZp3dUv6AIYU8qiTsge96UMtFKoBE=;
 b=Hu9uE+5T5WUweSlEurTeJxbNb0mbYposUc2JDJ6Y8hfdQzWab3dYQZ4q/Cd2R4GoS8Zo8b8sGBclWHmgd3N7FoFVCbigoKNMNO5Qth8xIq6oHAp49EfkmfNq2zWnjikKIdn31knaBmQ4ooV0MZzkINHZ6bxKN84fbC4gAgzDtVJrSKMsnO3FmCH1BhXyVHlmaUqieCd97UrG6edgtUrtsDIDcnq7xClzk9ISF+RAoye8skduqzddVKgyyCEss8FKtG1SFlMgnApwlR/utry+YAUC/RnOruTPuJu93hOfTH8pzTRGUi/ncDCdjRGeZvgyuz1Yn6VtGhdUGdKmWuDd+A==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=xen.org smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=HlK/Yp40klvIOQCZp3dUv6AIYU8qiTsge96UMtFKoBE=;
 b=E1xw8tRpxEDwb0QrYLAuhHppSItNq0LlzOHpKtB37T3pS/GklrfPGbwJZ5kSv2tueXSYlNJoHhlUM/ah1QNskl/LFqBN9HNPt3fYiwbMS6b1ewhsOpByp+03PC7/o4QKeOg9he9ZUzqEoLq8JEyN6tcWnwNkS1WabzLYa7Voeqg=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=LtOMoq4WHjNLJygq/DyLW5GAiLvdC1grfFnHL9Ou+mtS+laZKCDUS2uc09hZEuoO4R8Dq80iQ2YcAPtCuLJUHBbKIzBLi6fqG/ynFUU1ksiolQlzfooFz6CRqd/3gw0NrH8akEoNFoS093efDIxQ9CxPRHcQtAGQHpUmROJrd6BvUEhq992/Wucqb/pxQQssa7FWc/BvNLCU3/Y8qGtk/jAaXbHv/dDoR4vz2GMkc+55ZqDQ5QwdoOfoEYvSzg+ZJjZIVoP1ZVM2AF4+sHPFPh4NHlYNgxHTQYrjL6cOUke1t1JbjniNPJ1Ste9WTSvMnXmnGdebTeLQPAQDjL8Vsg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=HlK/Yp40klvIOQCZp3dUv6AIYU8qiTsge96UMtFKoBE=;
 b=d8cFZjVd8Z8Ssj4EJ8386Ze7alshguTVoofaCcS6psxAxVY/1A9nOcbXZJ3D15rBgPSU6aaibasiwFGGbmyWMBIQa1YTeIVMujoLIPGuix4L5n0VI+SR59bdZ7WfapJfD5rrbr7naTqFokvRnIH5DHPD4H4YFR/4BkJxAyjmsmHWJfGNDcDGaJ/yL7aca60iJXK9HqX6Gm6qIqJiWIQAxaPOeejQpd1TXkYUMr6hr4qvM8IudZZMhhw1/0DGUleImYsio4aaqoCeXzB77o2NcfDRgPllixpcaCYpCDSIaBjkMk0CIbyJOaLwZhebgv/NSjQHGbw3wZZjAy0wDcV6DQ==
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=HlK/Yp40klvIOQCZp3dUv6AIYU8qiTsge96UMtFKoBE=;
 b=E1xw8tRpxEDwb0QrYLAuhHppSItNq0LlzOHpKtB37T3pS/GklrfPGbwJZ5kSv2tueXSYlNJoHhlUM/ah1QNskl/LFqBN9HNPt3fYiwbMS6b1ewhsOpByp+03PC7/o4QKeOg9he9ZUzqEoLq8JEyN6tcWnwNkS1WabzLYa7Voeqg=
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 v3 2/7] arm/mpu: Provide access to the MPU region from the
 C code
Thread-Topic: [PATCH v3 2/7] arm/mpu: Provide access to the MPU region from
 the C code
Thread-Index: AQHbqvIQLPZqfCHfmUu6hn1OCHotk7OjDmYAgAA5foA=
Date: Mon, 14 Apr 2025 15:07:40 +0000
Message-ID: <1A24757A-ECCB-4080-B370-DA44D469CC7D@arm.com>
References: <20250411145655.140667-1-luca.fancellu@arm.com>
 <20250411145655.140667-3-luca.fancellu@arm.com>
 <d58be435-fd83-42bc-9fd0-a8884f358704@xen.org>
In-Reply-To: <d58be435-fd83-42bc-9fd0-a8884f358704@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.400.131.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DB7PR08MB2987:EE_|PA4PR08MB6237:EE_|AM3PEPF0000A796:EE_|PAWPR08MB9591:EE_
X-MS-Office365-Filtering-Correlation-Id: b948be89-2ab4-40e9-09d6-08dd7b662cee
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?UkdhNEt6VWFraGs3c2JwTTVKUEt1aHhFUWdvM05xMWZRQXk4dHBkZ3VEYWV6?=
 =?utf-8?B?Qm40Z1FzaCtldFFrZnJmTnN5Mmt2VmxzUTVrREFpOStEdXcrcHVPZ3VkeGU3?=
 =?utf-8?B?cHZCcG16WlN0bDZ2ZTc0emhZcmV3MENvazIzNFR2d0d0cjBKWFAvNWJhUkF3?=
 =?utf-8?B?R2JCWVM4VzZtK1JYY3RyZzArNmRPa1RtQmZhV0VERlRuUzZ0ZzVQN3dTeVZO?=
 =?utf-8?B?bUg5K0hZVy9NcHVPZFUzbnBoYzNPNGdocXplT2tWUzJDVjFaZHJTQUNoTzJV?=
 =?utf-8?B?N2h2T0Zxa0dOaGVGVHN4cTdCcllJZmg0VUlocDJiNmQrYzhYZ0RWaXUyMFk1?=
 =?utf-8?B?REpuU0Y0VzVaWmo1WmoxNVBVRTJlKzVSeVFsckoyS1JKWURzUnRrRU1HMDg3?=
 =?utf-8?B?cjl5UmM2TFRUeTFJaU9VbzVWZElTWlAyRHAydlFodFQ0MmxLWGxGOEV2Z3do?=
 =?utf-8?B?UEhoUmtsSGc2bmZYbCs4bzh2ZU1aVVErUG9TZTdmSUFBbGpic09BS2RmMzRa?=
 =?utf-8?B?Q1lyKzllc05nUWI3TFZxUWVieHI2RXljZVhkSU9JWnMxZFpTeUp1YVlBWEMr?=
 =?utf-8?B?THB6bjNJbXlXaGlBVzUwTFVSbi9ZbHFpY24xS3FZOG9sNU9nMDBwbFdHSEtE?=
 =?utf-8?B?ZnZqbkY1eE9BTjM0aUc3Q01JbUViTTZpSXRIeTVmQXV6V2ExY2tjT1cwa2V4?=
 =?utf-8?B?UEZDeE1jaFpCb0E5QXFPQ3BNWGZ6QlBkNVI1cTJDS0xJS21ERDI4ODkrVkEr?=
 =?utf-8?B?MnFJb01pRDhyc3Vvc3pkbHdScHpuUm1ucHRXMmJtM0xjV2syTmJ5MEtUWFRr?=
 =?utf-8?B?T0prd2VaZlBwa0xXZ0FsVDZ5RkVGMkVKWlEyYTlhSHZUM2dPRnhiRFIvQU5h?=
 =?utf-8?B?UWl4N3ZJazVvck9LRGhmTTZxbkFPVDhQNThaYXFJYVFsaWVySzd6ZG1yQUZm?=
 =?utf-8?B?SnpiQmQwVTlhUTJvQUo5cmJOWlQ2TVJjQVR4UHR4dXQ4bE56eDdySjZCWWxa?=
 =?utf-8?B?dk4vT204Z0VvaG84dzF3aTM4cGh5UUpjbDZFd3cvMGZrU256SEhVaDJabDdB?=
 =?utf-8?B?VXNkbVBaWUJqZm40OHpXOEt6MUZIVS9ZeGRIWEZ0UDJDSklQUm1kUHZkMnJO?=
 =?utf-8?B?eEFoNGQrUUkrbldvQjIvVFRwM3o3RWlFejlrTUViTStWZGxGOElQYVBsWFRK?=
 =?utf-8?B?cHErMENMOTBzVjFkUW1JRWtLZzRDM29SbHhobzhrUEJGM2VwTjZlVXRDSDdU?=
 =?utf-8?B?UWxpY2YySVlKanJna2tMTFlDZlFZUjdZQ1VORjYrZXNLSm1ramk3R3k2M01n?=
 =?utf-8?B?VnkrNXNlU1BFSlgyN0owQ09BZDVJSjRSVE5UVTZiTDlPcnQyalhudFZRT1Rn?=
 =?utf-8?B?WHJ0eUMwMlBSRnNsZFBzaExkTkF4bXlFNWpQTnQzQ0hhRXdQM0g2Ri84a3pn?=
 =?utf-8?B?VitENVhBL3JGbGdiem1vYlNGaE9uUHhRdlcrdmJ6S1BySmpBbWZGNlU0T0xG?=
 =?utf-8?B?U3ZQMDlGU2VrRWRUTkNiR2I2c25hVm1TWUcwTGRkUHl0ejlUZlFNQm9QR0xM?=
 =?utf-8?B?L0d2K1hvaU9COTdrSUdYN0E3WDdZTWtZY3l6eVh6WXgxUVg5MzdabllySHA3?=
 =?utf-8?B?amZIZ2ZJSkZBWjFmN0R4cXZWK0xJMHMybWw4M1BZTTJkRHBRSEZ5UnFJR0p3?=
 =?utf-8?B?c28wV1UvMERCT1piMXNsZVh0Q0tSRm5ya05JUnl2c1FIUVdBeTFFYjZ5T3NL?=
 =?utf-8?B?aWVHTi8yMnZLeUJOdU9BODREL01VVGtPQWx1aTE1NG01SWxGWHRyRzRySTV3?=
 =?utf-8?B?bGNwZS9KQVBhTzVrdDg1UHArdUJrdlJMOFBJMG04RkM3QmthdU91azQ4Wktw?=
 =?utf-8?B?Q2VnalVac2Z5VHpiZnhQSGNsVjhST2dRcGR1WTMzZjR0MENuQ3JjNXJoS3Fq?=
 =?utf-8?B?V2g2Ync1UzhvQ0loeFFDV3BqWnFES3lSeXJjbXVkWllkbFRpa2Q1dWhWRjhM?=
 =?utf-8?B?RlRiandIRExnPT0=?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB7PR08MB2987.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: <41E90E78F100734487C519594958E387@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR08MB6237
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AM3PEPF0000A796.eurprd04.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	cde5f7f6-e746-44e4-fe89-08dd7b661987
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|35042699022|14060799003|82310400026|36860700013|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?SW5iR0p6dUh2YjhiMmJHWHQwL3pRNHBtVDlTV2VmU21VOE91bk5PSzZJNHZ2?=
 =?utf-8?B?d1BYQXphS2RqeHdueW9raEp2NjVKcHk0emRzazFQTXczSjBORFFIVGVoR2ti?=
 =?utf-8?B?VkJoR3JSRTk3Rjg4UlNnL3ZCK1J3eU9EbXFyY0hzTW81TTFxeXk2czZhNUxp?=
 =?utf-8?B?SGV0U1VFL2FXT2UrQ3B5WmZFNk1BYUpvZnUrSmVPZVZPb0tSQnpZRVpkTFFY?=
 =?utf-8?B?a1VEb24rK2YzRENING1BZXJ3UjloY1BvQkd3Z1BpWDhSZGlQZW1UWk04WHpw?=
 =?utf-8?B?c3hETmJVSnhxN2RTUFpnYVpLbjFWdXRTMW1yTFJEejBSRndnTUtYVzg1YmZL?=
 =?utf-8?B?Z0pOOHdqR0tzNmRNeGNhWEEzWmdFQWJKeFpSRGl2cSsrcGNyUDVqUFUwMjZt?=
 =?utf-8?B?b2pFQ0xscXZrTVdZaktnNUg3MXdPeXMzQ0t2VFpXWFJQYloweUpDM0ZuNnVF?=
 =?utf-8?B?bUswYkloRVBYQmtXRis4K0lJTnJ0QmZuS1NFWDdvWWhDSU9TbmRnYzlma05O?=
 =?utf-8?B?TXVHd20zUkxZemtZOUhlN3loNFhuTE4wa2U1TmMwWGVNRWQvQ3I4ZHdxS2ty?=
 =?utf-8?B?MndlUWZ3YzRyTkZpbE4xSHRTdyt4dXZaMFN1clVPM1hLMGNEUjdMajN6UUli?=
 =?utf-8?B?V2FtY0hZbHhNMmFqbGpmbHVpOEhzLzZhUGRxTDJKYlpTVWhEK1BrbWMraHRy?=
 =?utf-8?B?ZFpWWHZUT0ZFbHc0NHljdUtEZlgwT1BMSmpCY05kSm16ZFZmalNuTmYxaGhP?=
 =?utf-8?B?WUkrRElaSUIyZWRUcm8rUllSWmE3Z29OQVhhMks4WlZaYjRvSEpsWTlHaW9n?=
 =?utf-8?B?cDUwZ0xySW1zb1U2UXY2eVZVWkJ4TUNvVk1sUTh0OENWNWh5aHZrUFNPV2c1?=
 =?utf-8?B?RnhjUjR0YW1uUVo0VEFHempSTE9MRmlUZnI1c0tSUThFZldnRDAxb3h4WnFC?=
 =?utf-8?B?MDU4Rnc4alMyWkZvdHM0ZnQyQzV2MjVBSExsQUVMK1k0WDZGRTA0a2trMy85?=
 =?utf-8?B?a0NUb0UzNDJCRzNWYU1JRElJZVRLQU5LZzVOc3F1YXJFVGw2VGE4TmtOeUYx?=
 =?utf-8?B?VnpKZ29OQUpOTFR4V1VjWXFFbDRXcW5rZm5EMVpzWkcxVzczRUxHS0dtT2pY?=
 =?utf-8?B?NVlpSmlXZ1Qvb1hvRFFheVBWSHpOWHlkNWorT05MREUrYmNZZXJockJWRHJP?=
 =?utf-8?B?OXR1aW5FWVJLVFNCTitLZXlIVTB1dnhoQTZIWTBydm1Db3hIaElGS2N0V2RQ?=
 =?utf-8?B?YmUrSng3ajRRMUZPVE1VbXhWV3lsbGVVZkdybnZabjNnUFc3ZGhOc1g0ZkJl?=
 =?utf-8?B?VzlWcEMrUDZQcDBpTnh6elZSQnRodDdsMHFkYUZhWFh1dG96Zkd1dTNsRFF4?=
 =?utf-8?B?dkFtOS9iRDh6S2NuZnpNdExlVkJwaURNWDNGMUx0WXR2TktHZjFmd2k0Qzc2?=
 =?utf-8?B?c2JHK0trcEtSZTBzUjBiK1RqYnE2czNPSVZzMHgyWVBkT0w2dXdlZXprYVl5?=
 =?utf-8?B?dysxdWRGaFFmSklRK2pwZW5FWkRVMEo3djlWNEdhVUZJRlEyZVlKYTZaa000?=
 =?utf-8?B?MkFtZzJDa3IzcGpYZCt1VEFRcmhxSUc4RFhqanJWdVZRNy9TYnNBTjNleVZp?=
 =?utf-8?B?ekZncElqZGNGemNzRkI0RHhxQ21iYkVsWDkzNVVzdldYbVprZjhSTlExeE5V?=
 =?utf-8?B?OTVzdVFWQ0hyMzM1MDhvN1hZRmJReXRFdnk3eGgyS3pSTk9PN2o3OFhwd1Rz?=
 =?utf-8?B?ZGY5UFVzaGNrcEQwOTBsR2tYYStDNHF2b3BsZ2JONERwUkFRdjdiU2hCM20r?=
 =?utf-8?B?bmY3c3lHci9idkNqOU5iZkc2WXVNbG82Yk1BODdIUkdRQlkvN2FtZjlKZHl3?=
 =?utf-8?B?N1l4ei9mVnJhZVRadFo5YjJVckQ2MUI4TGFMN0tyRnlIK3JjeldZQ2hDL0pS?=
 =?utf-8?B?VDJqK21QUG1QaE9xYnh1czZucjhMcm44cGY4QVZxN29qSGg3Uk1DQUk0bGVz?=
 =?utf-8?B?T3RjeTh1Q2ZWekR3N1I3Ky9QNFZIV0lMcDlwUzdmMUQzcmxiVUcrdXpCZkpv?=
 =?utf-8?Q?QTcwh7?=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(376014)(35042699022)(14060799003)(82310400026)(36860700013)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Apr 2025 15:08:12.6375
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: b948be89-2ab4-40e9-09d6-08dd7b662cee
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AM3PEPF0000A796.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR08MB9591

SEkgSnVsaWVuLA0KDQo+IE9uIDE0IEFwciAyMDI1LCBhdCAxMjo0MSwgSnVsaWVuIEdyYWxsIDxq
dWxpZW5AeGVuLm9yZz4gd3JvdGU6DQo+IA0KPiBIaSBMdWNhLA0KPiANCj4gT24gMTEvMDQvMjAy
NSAyMzo1NiwgTHVjYSBGYW5jZWxsdSB3cm90ZToNCj4+IEltcGxlbWVudCBzb21lIHV0aWxpdHkg
ZnVuY3Rpb24gaW4gb3JkZXIgdG8gYWNjZXNzIHRoZSBNUFUgcmVnaW9ucw0KPj4gZnJvbSB0aGUg
QyB3b3JsZC4NCj4+IFNpZ25lZC1vZmYtYnk6IEx1Y2EgRmFuY2VsbHUgPGx1Y2EuZmFuY2VsbHVA
YXJtLmNvbT4NCj4+IC0tLQ0KPj4gdjMgY2hhbmdlczoNCj4+ICAtIE1vdmVkIFBSQkFSMF9FTDIv
UFJMQVIwX0VMMiB0byBhcm02NCBzcGVjaWZpYw0KPj4gIC0gTW9kaWZpZWQgcHJlcGFyZV9zZWxl
Y3RvcigpIHRvIGJlIGVhc2lseSBtYWRlIGEgTk9QDQo+PiAgICBmb3IgQXJtMzIsIHdoaWNoIGNh
biBhZGRyZXNzIHVwIHRvIDMyIHJlZ2lvbiB3aXRob3V0DQo+PiAgICBjaGFuZ2luZyBzZWxlY3Rv
ciBhbmQgaXQgaXMgYWxzbyBpdHMgbWF4aW11bSBhbW91bnQNCj4+ICAgIG9mIE1QVSByZWdpb25z
Lg0KPj4gLS0tDQo+PiAtLS0NCj4+ICB4ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vYXJtNjQvbXB1
LmggfCAgIDcgKysNCj4+ICB4ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vbXB1LmggICAgICAgfCAg
IDEgKw0KPj4gIHhlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9tcHUvbW0uaCAgICB8ICAyNCArKysr
Kw0KPj4gIHhlbi9hcmNoL2FybS9tcHUvbW0uYyAgICAgICAgICAgICAgICB8IDEyNSArKysrKysr
KysrKysrKysrKysrKysrKysrKysNCj4+ICA0IGZpbGVzIGNoYW5nZWQsIDE1NyBpbnNlcnRpb25z
KCspDQo+PiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL2FybTY0L21wdS5o
IGIveGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL2FybTY0L21wdS5oDQo+PiBpbmRleCA0ZDJiZDdk
Nzg3N2YuLmI0ZTFlY2RmNzQxZCAxMDA2NDQNCj4+IC0tLSBhL3hlbi9hcmNoL2FybS9pbmNsdWRl
L2FzbS9hcm02NC9tcHUuaA0KPj4gKysrIGIveGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL2FybTY0
L21wdS5oDQo+PiBAQCAtOCw2ICs4LDEzIEBADQo+PiAgICAjaWZuZGVmIF9fQVNTRU1CTFlfXw0K
Pj4gICsvKg0KPj4gKyAqIFRoZSBmb2xsb3dpbmcgYXJlIG5lZWRlZCBmb3IgdGhlIGNhc2UgZ2Vu
ZXJhdG9ycyBHRU5FUkFURV9XUklURV9QUl9SRUdfQ0FTRQ0KPj4gKyAqIGFuZCBHRU5FUkFURV9S
RUFEX1BSX1JFR19DQVNFIHdpdGggbnVtPT0wDQo+PiArICovDQo+PiArI2RlZmluZSBQUkJBUjBf
RUwyIFBSQkFSX0VMMg0KPj4gKyNkZWZpbmUgUFJMQVIwX0VMMiBQUkxBUl9FTDINCj4gDQo+IFJh
dGhlciB0aGFuIGFsaWFzaW5nLCBzaG91bGRuJ3Qgd2UganVzdCByZW5hbWUgUFJ7QixMfUFSX0VM
MiB0byBQUntCLEx9QVIwX0VMMj8gVGhpcyB3b3VsZCB0aGUgY29kZSBtaXhpbmcgYmV0d2VlbiB0
aGUgdHdvLg0KDQpQUntCLEx9QVIwX0VMeCBkb2VzIG5vdCBleGlzdHMgcmVhbGx5LCB0aGUgUFJ7
QixMfUFSPG4+X0VMeCBleGlzdHMgZm9yIG49MS4uMTUsIGhlcmUgSeKAmW0gb25seSB1c2luZyB0
aGlzIOKAnGFsaWFz4oCdIGZvciB0aGUgZ2VuZXJhdG9yLA0KYnV0IFBSe0IsTH1BUl9FTDIgYXJl
IHRoZSByZWFsIHJlZ2lzdGVyLg0KDQo+IA0KPj4gKw0KPj4gIC8qIFByb3RlY3Rpb24gUmVnaW9u
IEJhc2UgQWRkcmVzcyBSZWdpc3RlciAqLw0KPj4gIHR5cGVkZWYgdW5pb24gew0KPj4gICAgICBz
dHJ1Y3QgX19wYWNrZWQgew0KPj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9pbmNsdWRlL2Fz
bS9tcHUuaCBiL3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9tcHUuaA0KPj4gaW5kZXggZTE0OGM3
MDViODJjLi41OWZmMjJjODA0YzEgMTAwNjQ0DQo+PiAtLS0gYS94ZW4vYXJjaC9hcm0vaW5jbHVk
ZS9hc20vbXB1LmgNCj4+ICsrKyBiL3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9tcHUuaA0KPj4g
QEAgLTEzLDYgKzEzLDcgQEANCj4+ICAjZGVmaW5lIE1QVV9SRUdJT05fU0hJRlQgIDYNCj4+ICAj
ZGVmaW5lIE1QVV9SRUdJT05fQUxJR04gIChfQUMoMSwgVUwpIDw8IE1QVV9SRUdJT05fU0hJRlQp
DQo+PiAgI2RlZmluZSBNUFVfUkVHSU9OX01BU0sgICAofihNUFVfUkVHSU9OX0FMSUdOIC0gMSkp
DQo+PiArI2RlZmluZSBNUFVfUkVHSU9OX1JFUzAgICAoMHhGRkZVTEwgPDwgNTIpDQo+PiAgICAj
ZGVmaW5lIE5VTV9NUFVfUkVHSU9OU19TSElGVCAgIDgNCj4+ICAjZGVmaW5lIE5VTV9NUFVfUkVH
SU9OUyAgICAgICAgIChfQUMoMSwgVUwpIDw8IE5VTV9NUFVfUkVHSU9OU19TSElGVCkNCj4+IGRp
ZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vbXB1L21tLmggYi94ZW4vYXJjaC9h
cm0vaW5jbHVkZS9hc20vbXB1L21tLmgNCj4+IGluZGV4IDg2ZjMzZDk4MzZiNy4uNWNhYmU5ZDEx
MWNlIDEwMDY0NA0KPj4gLS0tIGEveGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL21wdS9tbS5oDQo+
PiArKysgYi94ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vbXB1L21tLmgNCj4+IEBAIC04LDYgKzgs
NyBAQA0KPj4gICNpbmNsdWRlIDx4ZW4vcGFnZS1zaXplLmg+DQo+PiAgI2luY2x1ZGUgPHhlbi90
eXBlcy5oPg0KPj4gICNpbmNsdWRlIDxhc20vbW0uaD4NCj4+ICsjaW5jbHVkZSA8YXNtL21wdS5o
Pg0KPj4gICAgZXh0ZXJuIHN0cnVjdCBwYWdlX2luZm8gKmZyYW1lX3RhYmxlOw0KPj4gIEBAIC0y
OSw2ICszMCwyOSBAQCBzdGF0aWMgaW5saW5lIHN0cnVjdCBwYWdlX2luZm8gKnZpcnRfdG9fcGFn
ZShjb25zdCB2b2lkICp2KQ0KPj4gICAgICByZXR1cm4gbWZuX3RvX3BhZ2UobWZuKTsNCj4+ICB9
DQo+PiAgKy8qIFV0aWxpdHkgZnVuY3Rpb24gdG8gYmUgdXNlZCB3aGVuZXZlciBNUFUgcmVnaW9u
cyBhcmUgbW9kaWZpZWQgKi8NCj4+ICtzdGF0aWMgaW5saW5lIHZvaWQgY29udGV4dF9zeW5jX21w
dSh2b2lkKQ0KPj4gK3sNCj4+ICsgICAgLyoNCj4+ICsgICAgICogQVJNIERESSAwNjAwQi5hLCBD
MS43LjENCj4+ICsgICAgICogV3JpdGVzIHRvIE1QVSByZWdpc3RlcnMgYXJlIG9ubHkgZ3VhcmFu
dGVlZCB0byBiZSB2aXNpYmxlIGZvbGxvd2luZyBhDQo+PiArICAgICAqIENvbnRleHQgc3luY2hy
b25pemF0aW9uIGV2ZW50IGFuZCBEU0Igb3BlcmF0aW9uLg0KPiANCj4gSSBrbm93IHdlIGRpc2N1
c3NlZCBhYm91dCB0aGlzIGJlZm9yZS4gSSBmaW5kIG9kZCB0aGF0IHRoZSBzcGVjaWZpY2F0aW9u
IHNheXMgImNvbnRleHQgc3luY2hyb25pemF0aW9uIGV2ZW50IGFuZCBEU0Igb3BlcmF0aW9uIi4g
QXQgbGVhc3QgdG8gbWUsIGl0IGltcGxpZXMgImlzYiArIGRzYiIgbm90IHRoZSBvdGhlciB3YXkg
YXJvdW5kLiBIYXMgdGhpcyBiZWVuIGNsYXJpZmllZCBpbiBuZXdlciB2ZXJzaW9uIG9mIHRoZSBz
cGVjaWZpY2F0aW9uPw0KDQp1bmZvcnR1bmF0ZWx5IG5vLCBJ4oCZbSBsb29raW5nIGludG8gdGhl
IGxhdGVzdCBvbmUgKEFybcKuIEFyY2hpdGVjdHVyZSBSZWZlcmVuY2UgTWFudWFsIFN1cHBsZW1l
bnQgQXJtdjgsIGZvciBSLXByb2ZpbGUgQUFyY2g2NCBhcmNoaXRlY3R1cmUgMDYwMEIuYSkgYnV0
IGl0IGhhcyB0aGUgc2FtZSB3b3JkaW5nLCBob3dldmVyDQpJIHNwb2tlIGludGVybmFsbHkgd2l0
aCBDb3J0ZXgtUiBhcmNoaXRlY3RzIGFuZCB0aGV5IHRvbGQgbWUgdG8gdXNlIERTQitJU0INCg0K
PiANCj4+ICsgICAgICovDQo+PiArICAgIGRzYihzeSk7DQo+PiArICAgIGlzYigpOw0KPj4gK30N
Cj4+ICsNCj4+ICsvKg0KPj4gKyAqIFRoZSBmb2xsb3dpbmcgQVBJIHJlcXVpcmUgY29udGV4dF9z
eW5jX21wdSgpIGFmdGVyIGJlaW5nIHVzZWQgdG8gbW9kaWZpeSBNUFUNCj4gDQo+IHR5cG86IHMv
cmVxdWlyZS9yZXF1aXJlcy8gYW5kIHMvbW9kaWZpeS9tb2RpZnkvDQo+IA0KPj4gKyAqIHJlZ2lv
bnM6DQo+PiArICogIC0gd3JpdGVfcHJvdGVjdGlvbl9yZWdpb24NCj4+ICsgKi8NCj4+ICsNCj4+
ICsvKiBSZWFkcyB0aGUgTVBVIHJlZ2lvbiB3aXRoIGluZGV4ICdzZWwnIGZyb20gdGhlIEhXICov
DQo+PiArZXh0ZXJuIHZvaWQgcmVhZF9wcm90ZWN0aW9uX3JlZ2lvbihwcl90ICpwcl9yZWFkLCB1
aW50OF90IHNlbCk7DQo+IA0KPiBJIGFtIHByb2JhYmx5IG1pc3Npbmcgc29tZXRoaW5nLiBCdXQg
ZG9uJ3QgeW91IGhhdmUgYSBjb3B5IG9mIHByX3QgaW4geGVuX21wdW1hcD8gSWYgc28sIGNhbid0
IHdlIHVzZSB0aGUgY2FjaGVkIHZlcnNpb24gdG8gYXZvaWQgYWNjZXNzaW5nIHRoZSBzeXN0ZW0g
cmVnaXN0ZXJzPw0KDQpUaGlzIEFQSSBpcyBtZWFudCB0byByZWFkL3dyaXRlIHJlZ2lzdGVycywg
bGFzdCBwYXRjaCB1c2VzIGl0IHRvIHBvcHVsYXRlIHhlbl9tcHVtYXAsIGFsb25nIHRoZSB0cmVl
IGl0IGlzIGFsc28gdXNlZCBpbiBkdW1wX2h5cF93YWxrLCBwcm9iYWJseSBnaXZlbiB5b3VyIGNv
bW1lbnQgdG8gdGhlDQpsYXN0IHBhdGNoLCBpZiB3ZSBuZWVkIHRvIHVwZGF0ZSB0aGUgeGVuX21w
dW1hcCBmcm9tIHRoZSBhc20gY29kZSwgdGhpcyBjb3VsZCBjaGFuZ2UuDQoNCj4gDQo+PiArLyog
V3JpdGVzIHRoZSBNUFUgcmVnaW9uIHdpdGggaW5kZXggJ3NlbCcgdG8gdGhlIEhXICovDQo+PiAr
ZXh0ZXJuIHZvaWQgd3JpdGVfcHJvdGVjdGlvbl9yZWdpb24oY29uc3QgcHJfdCAqcHJfd3JpdGUs
IHVpbnQ4X3Qgc2VsKTsNCj4+ICsNCj4+ICAjZW5kaWYgLyogX19BUk1fTVBVX01NX0hfXyAqLw0K
Pj4gICAgLyoNCj4+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vbXB1L21tLmMgYi94ZW4vYXJj
aC9hcm0vbXB1L21tLmMNCj4+IGluZGV4IGY4M2NlMDRmZWY4YS4uZTUyMmNlNTNjMzU3IDEwMDY0
NA0KPj4gLS0tIGEveGVuL2FyY2gvYXJtL21wdS9tbS5jDQo+PiArKysgYi94ZW4vYXJjaC9hcm0v
bXB1L21tLmMNCj4+IEBAIC04LDEyICs4LDMwIEBADQo+PiAgI2luY2x1ZGUgPHhlbi9zaXplcy5o
Pg0KPj4gICNpbmNsdWRlIDx4ZW4vdHlwZXMuaD4NCj4+ICAjaW5jbHVkZSA8YXNtL21wdS5oPg0K
Pj4gKyNpbmNsdWRlIDxhc20vbXB1L21tLmg+DQo+PiArI2luY2x1ZGUgPGFzbS9zeXNyZWdzLmg+
DQo+PiAgICBzdHJ1Y3QgcGFnZV9pbmZvICpmcmFtZV90YWJsZTsNCj4+ICAgIC8qIEVMMiBYZW4g
TVBVIG1lbW9yeSByZWdpb24gbWFwcGluZyB0YWJsZS4gKi8NCj4+ICBwcl90IHhlbl9tcHVtYXBb
TUFYX01QVV9SRUdJT05TXTsNCj4+ICArI2RlZmluZSBHRU5FUkFURV9XUklURV9QUl9SRUdfQ0FT
RShudW0sIHByKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4+ICsgICAgY2Fz
ZSBudW06ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXA0KPj4gKyAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+PiArICAgICAgICBXUklU
RV9TWVNSRUcocHItPnByYmFyLmJpdHMgJiB+TVBVX1JFR0lPTl9SRVMwLCBQUkJBUiMjbnVtIyNf
RUwyKTsgIFwNCj4+ICsgICAgICAgIFdSSVRFX1NZU1JFRyhwci0+cHJsYXIuYml0cyAmIH5NUFVf
UkVHSU9OX1JFUzAsIFBSTEFSIyNudW0jI19FTDIpOyAgXA0KPj4gKyAgICAgICAgYnJlYWs7ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcDQo+PiArICAgIH0NCj4+ICsNCj4+ICsjZGVmaW5lIEdFTkVSQVRFX1JFQURfUFJfUkVHX0NB
U0UobnVtLCBwcikgICAgICAgICAgICAgICAgICAgICAgXA0KPj4gKyAgICBjYXNlIG51bTogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+PiArICAg
IHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwNCj4+ICsgICAgICAgIHByLT5wcmJhci5iaXRzID0gUkVBRF9TWVNSRUcoUFJCQVIjI251
bSMjX0VMMik7ICAgICAgICAgXA0KPj4gKyAgICAgICAgcHItPnBybGFyLmJpdHMgPSBSRUFEX1NZ
U1JFRyhQUkxBUiMjbnVtIyNfRUwyKTsgICAgICAgICBcDQo+PiArICAgICAgICBicmVhazsgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4+ICsgICAg
fQ0KPj4gKw0KPj4gIHN0YXRpYyB2b2lkIF9faW5pdCBfX21heWJlX3VudXNlZCBidWlsZF9hc3Nl
cnRpb25zKHZvaWQpDQo+PiAgew0KPj4gICAgICAvKg0KPj4gQEAgLTI0LDYgKzQyLDExMyBAQCBz
dGF0aWMgdm9pZCBfX2luaXQgX19tYXliZV91bnVzZWQgYnVpbGRfYXNzZXJ0aW9ucyh2b2lkKQ0K
Pj4gICAgICBCVUlMRF9CVUdfT04oUEFHRV9TSVpFICE9IFNaXzRLKTsNCj4+ICB9DQo+PiAgK3N0
YXRpYyB2b2lkIHByZXBhcmVfc2VsZWN0b3IodWludDhfdCAqc2VsKQ0KPj4gK3sNCj4+ICsgICAg
dWludDhfdCBjdXJfc2VsID0gKnNlbDsNCj4gDQo+IENvZGluZyBzdHlsZTogTWlzc2luZyBuZXds
aW5lLg0KDQp3aWxsIGZpeA0KDQo+IA0KPj4gKyAgICAvKg0KPj4gKyAgICAgKiB7cmVhZCx3cml0
ZX1fcHJvdGVjdGlvbl9yZWdpb24gd29ya3MgdXNpbmcgdGhlIGRpcmVjdCBhY2Nlc3MgdG8gdGhl
IDAuLjE1DQo+PiArICAgICAqIHJlZ2lvbnMsIHNvIGluIG9yZGVyIHRvIHNhdmUgdGhlIGlzYigp
IG92ZXJoZWFkLCBjaGFuZ2UgdGhlIFBSU0VMUl9FTDINCj4+ICsgICAgICogb25seSB3aGVuIG5l
ZWRlZCwgc28gd2hlbiB0aGUgdXBwZXIgNCBiaXRzIG9mIHRoZSBzZWxlY3RvciB3aWxsIGNoYW5n
ZS4NCj4+ICsgICAgICovDQo+PiArICAgIGN1cl9zZWwgJj0gMHhGMFU7DQo+PiArICAgIGlmICgg
UkVBRF9TWVNSRUcoUFJTRUxSX0VMMikgIT0gY3VyX3NlbCApDQo+PiArICAgIHsNCj4+ICsgICAg
ICAgIFdSSVRFX1NZU1JFRyhjdXJfc2VsLCBQUlNFTFJfRUwyKTsNCj4+ICsgICAgICAgIGlzYigp
Ow0KPj4gKyAgICB9DQo+PiArICAgICpzZWwgPSAqc2VsICYgMHhGVTsNCj4+ICt9DQo+PiArDQo+
PiArLyoNCj4+ICsgKiBBcm12OC1SIEFBcmNoNjQgYXQgbW9zdCBzdXBwb3J0cyAyNTUgTVBVIHBy
b3RlY3Rpb24gcmVnaW9ucy4NCj4+ICsgKiBTZWUgc2VjdGlvbiBHMS4zLjE4IG9mIHRoZSByZWZl
cmVuY2UgbWFudWFsIGZvciBBcm12OC1SIEFBcmNoNjQsDQo+PiArICogUFJCQVI8bj5fRUwyIGFu
ZCBQUkxBUjxuPl9FTDIgcHJvdmlkZSBhY2Nlc3MgdG8gdGhlIEVMMiBNUFUgcmVnaW9uDQo+PiAr
ICogZGV0ZXJtaW5lZCBieSB0aGUgdmFsdWUgb2YgJ24nIGFuZCBQUlNFTFJfRUwyLlJFR0lPTiBh
cw0KPj4gKyAqIFBSU0VMUl9FTDIuUkVHSU9OPDc6ND46bihuID0gMCwgMSwgMiwgLi4uICwgMTUp
DQo+PiArICogRm9yIGV4YW1wbGUgdG8gYWNjZXNzIHJlZ2lvbnMgZnJvbSAxNiB0byAzMSAoMGIx
MDAwMCB0byAwYjExMTExKToNCj4+ICsgKiAtIFNldCBQUlNFTFJfRUwyIHRvIDBiMXh4eHgNCj4+
ICsgKiAtIFJlZ2lvbiAxNiBjb25maWd1cmF0aW9uIGlzIGFjY2Vzc2libGUgdGhyb3VnaCBQUkJB
Ul9FTDIgYW5kIFBSTEFSX0VMMg0KPj4gKyAqIC0gUmVnaW9uIDE3IGNvbmZpZ3VyYXRpb24gaXMg
YWNjZXNzaWJsZSB0aHJvdWdoIFBSQkFSMV9FTDIgYW5kIFBSTEFSMV9FTDINCj4+ICsgKiAtIFJl
Z2lvbiAxOCBjb25maWd1cmF0aW9uIGlzIGFjY2Vzc2libGUgdGhyb3VnaCBQUkJBUjJfRUwyIGFu
ZCBQUkxBUjJfRUwyDQo+PiArICogLSAuLi4NCj4+ICsgKiAtIFJlZ2lvbiAzMSBjb25maWd1cmF0
aW9uIGlzIGFjY2Vzc2libGUgdGhyb3VnaCBQUkJBUjE1X0VMMiBhbmQgUFJMQVIxNV9FTDINCj4+
ICsgKi8NCj4gDQo+IEkgYW0gYSBiaXQgY29uZnVzZWQuIFRoaXMgZnVuY3Rpb24gaXMgaW1wbGVt
ZW50ZWQgaW4gdGhlIGNvbW1vbiBNUFUgY29kZS4gWWV0LCB0aGVuIGNvbW1lbnQgb25seSByZWZl
ciB0byA2NC1iaXQuIElzIHRoZSBjb2RlIHRoZSBzYW1lIG9uIDMyLWJpdD8gSWYgbm90LCB0aGVu
IEkgdGhpbmsgdGhpcyBmdW5jdGlvbiB3YW50cyB0byBiZSBtb3ZlZCBpbiBhcm02NC9tcHUvDQoN
CknigJlsbCB0cnkgdG8gcmV3b3JkIHRoZSBjb21tZW50IHJlbW92aW5nIHRoZSBhcm02NC1vbmx5
IHBhcnRzDQoNCj4gDQo+PiArLyoNCj4+ICsgKiBSZWFkIEVMMiBNUFUgUHJvdGVjdGlvbiBSZWdp
b24uDQo+PiArICoNCj4+ICsgKiBAcHJfcmVhZDogbXB1IHByb3RlY3Rpb24gcmVnaW9uIHJldHVy
bmVkIGJ5IHJlYWQgb3AuDQo+PiArICogQHNlbDogbXB1IHByb3RlY3Rpb24gcmVnaW9uIHNlbGVj
dG9yDQo+PiArICovDQo+IA0KPiBOSVQ6IFVzdWFsbHkgd2UgYWRkIGRvY3VtZW50YXRpb24gb24g
dGhlIHByb3RvdHlwZSBpbiB0aGUgaGVhZGVyIGFuZCBub3QgaW4gdGhlIGRlZmluaXRpb24uDQoN
CknigJlsbCBjaGFuZ2UNCg0KPiANCj4+ICt2b2lkIHJlYWRfcHJvdGVjdGlvbl9yZWdpb24ocHJf
dCAqcHJfcmVhZCwgdWludDhfdCBzZWwpDQo+PiArew0KPj4gKyAgICAvKg0KPj4gKyAgICAgKiBC
ZWZvcmUgYWNjZXNzaW5nIEVMMiBNUFUgcmVnaW9uIHJlZ2lzdGVyIFBSQkFSX0VMMi9QUkxBUl9F
TDIsDQo+PiArICAgICAqIG1ha2Ugc3VyZSBQUlNFTFJfRUwyIGlzIHNldCwgYXMgaXQgZGV0ZXJt
aW5lcyB3aGljaCBNUFUgcmVnaW9uDQo+PiArICAgICAqIGlzIHNlbGVjdGVkLg0KPj4gKyAgICAg
Ki8NCj4+ICsgICAgcHJlcGFyZV9zZWxlY3Rvcigmc2VsKTsNCj4+ICsNCj4+ICsgICAgc3dpdGNo
ICggc2VsICkNCj4+ICsgICAgew0KPj4gKyAgICAgICAgR0VORVJBVEVfUkVBRF9QUl9SRUdfQ0FT
RSgwLCBwcl9yZWFkKTsNCj4+ICsgICAgICAgIEdFTkVSQVRFX1JFQURfUFJfUkVHX0NBU0UoMSwg
cHJfcmVhZCk7DQo+PiArICAgICAgICBHRU5FUkFURV9SRUFEX1BSX1JFR19DQVNFKDIsIHByX3Jl
YWQpOw0KPj4gKyAgICAgICAgR0VORVJBVEVfUkVBRF9QUl9SRUdfQ0FTRSgzLCBwcl9yZWFkKTsN
Cj4+ICsgICAgICAgIEdFTkVSQVRFX1JFQURfUFJfUkVHX0NBU0UoNCwgcHJfcmVhZCk7DQo+PiAr
ICAgICAgICBHRU5FUkFURV9SRUFEX1BSX1JFR19DQVNFKDUsIHByX3JlYWQpOw0KPj4gKyAgICAg
ICAgR0VORVJBVEVfUkVBRF9QUl9SRUdfQ0FTRSg2LCBwcl9yZWFkKTsNCj4+ICsgICAgICAgIEdF
TkVSQVRFX1JFQURfUFJfUkVHX0NBU0UoNywgcHJfcmVhZCk7DQo+PiArICAgICAgICBHRU5FUkFU
RV9SRUFEX1BSX1JFR19DQVNFKDgsIHByX3JlYWQpOw0KPj4gKyAgICAgICAgR0VORVJBVEVfUkVB
RF9QUl9SRUdfQ0FTRSg5LCBwcl9yZWFkKTsNCj4+ICsgICAgICAgIEdFTkVSQVRFX1JFQURfUFJf
UkVHX0NBU0UoMTAsIHByX3JlYWQpOw0KPj4gKyAgICAgICAgR0VORVJBVEVfUkVBRF9QUl9SRUdf
Q0FTRSgxMSwgcHJfcmVhZCk7DQo+PiArICAgICAgICBHRU5FUkFURV9SRUFEX1BSX1JFR19DQVNF
KDEyLCBwcl9yZWFkKTsNCj4+ICsgICAgICAgIEdFTkVSQVRFX1JFQURfUFJfUkVHX0NBU0UoMTMs
IHByX3JlYWQpOw0KPj4gKyAgICAgICAgR0VORVJBVEVfUkVBRF9QUl9SRUdfQ0FTRSgxNCwgcHJf
cmVhZCk7DQo+PiArICAgICAgICBHRU5FUkFURV9SRUFEX1BSX1JFR19DQVNFKDE1LCBwcl9yZWFk
KTsNCj4+ICsgICAgZGVmYXVsdDoNCj4+ICsgICAgICAgIEJVRygpOyAvKiBDYW4ndCBoYXBwZW4g
Ki8NCj4+ICsgICAgfQ0KPj4gK30NCj4+ICsNCj4+ICsvKg0KPj4gKyAqIFdyaXRlIEVMMiBNUFUg
UHJvdGVjdGlvbiBSZWdpb24uDQo+PiArICoNCj4+ICsgKiBAcHJfd3JpdGU6IGNvbnN0IG1wdSBw
cm90ZWN0aW9uIHJlZ2lvbiBwYXNzZWQgdGhyb3VnaCB3cml0ZSBvcC4NCj4+ICsgKiBAc2VsOiBt
cHUgcHJvdGVjdGlvbiByZWdpb24gc2VsZWN0b3INCj4+ICsgKi8NCj4+ICt2b2lkIHdyaXRlX3By
b3RlY3Rpb25fcmVnaW9uKGNvbnN0IHByX3QgKnByX3dyaXRlLCB1aW50OF90IHNlbCkNCj4+ICt7
DQo+PiArICAgIC8qDQo+PiArICAgICAqIEJlZm9yZSBhY2Nlc3NpbmcgRUwyIE1QVSByZWdpb24g
cmVnaXN0ZXIgUFJCQVJfRUwyL1BSTEFSX0VMMiwNCj4+ICsgICAgICogbWFrZSBzdXJlIFBSU0VM
Ul9FTDIgaXMgc2V0LCBhcyBpdCBkZXRlcm1pbmVzIHdoaWNoIE1QVSByZWdpb24NCj4+ICsgICAg
ICogaXMgc2VsZWN0ZWQuDQo+PiArICAgICAqLw0KPj4gKyAgICBwcmVwYXJlX3NlbGVjdG9yKCZz
ZWwpOw0KPj4gKw0KPj4gKyAgICBzd2l0Y2ggKCBzZWwgKQ0KPj4gKyAgICB7DQo+PiArICAgICAg
ICBHRU5FUkFURV9XUklURV9QUl9SRUdfQ0FTRSgwLCBwcl93cml0ZSk7DQo+PiArICAgICAgICBH
RU5FUkFURV9XUklURV9QUl9SRUdfQ0FTRSgxLCBwcl93cml0ZSk7DQo+PiArICAgICAgICBHRU5F
UkFURV9XUklURV9QUl9SRUdfQ0FTRSgyLCBwcl93cml0ZSk7DQo+PiArICAgICAgICBHRU5FUkFU
RV9XUklURV9QUl9SRUdfQ0FTRSgzLCBwcl93cml0ZSk7DQo+PiArICAgICAgICBHRU5FUkFURV9X
UklURV9QUl9SRUdfQ0FTRSg0LCBwcl93cml0ZSk7DQo+PiArICAgICAgICBHRU5FUkFURV9XUklU
RV9QUl9SRUdfQ0FTRSg1LCBwcl93cml0ZSk7DQo+PiArICAgICAgICBHRU5FUkFURV9XUklURV9Q
Ul9SRUdfQ0FTRSg2LCBwcl93cml0ZSk7DQo+PiArICAgICAgICBHRU5FUkFURV9XUklURV9QUl9S
RUdfQ0FTRSg3LCBwcl93cml0ZSk7DQo+PiArICAgICAgICBHRU5FUkFURV9XUklURV9QUl9SRUdf
Q0FTRSg4LCBwcl93cml0ZSk7DQo+PiArICAgICAgICBHRU5FUkFURV9XUklURV9QUl9SRUdfQ0FT
RSg5LCBwcl93cml0ZSk7DQo+PiArICAgICAgICBHRU5FUkFURV9XUklURV9QUl9SRUdfQ0FTRSgx
MCwgcHJfd3JpdGUpOw0KPj4gKyAgICAgICAgR0VORVJBVEVfV1JJVEVfUFJfUkVHX0NBU0UoMTEs
IHByX3dyaXRlKTsNCj4+ICsgICAgICAgIEdFTkVSQVRFX1dSSVRFX1BSX1JFR19DQVNFKDEyLCBw
cl93cml0ZSk7DQo+PiArICAgICAgICBHRU5FUkFURV9XUklURV9QUl9SRUdfQ0FTRSgxMywgcHJf
d3JpdGUpOw0KPj4gKyAgICAgICAgR0VORVJBVEVfV1JJVEVfUFJfUkVHX0NBU0UoMTQsIHByX3dy
aXRlKTsNCj4+ICsgICAgICAgIEdFTkVSQVRFX1dSSVRFX1BSX1JFR19DQVNFKDE1LCBwcl93cml0
ZSk7DQo+PiArICAgIGRlZmF1bHQ6DQo+PiArICAgICAgICBCVUcoKTsgLyogQ2FuJ3QgaGFwcGVu
ICovDQo+PiArICAgIH0NCj4+ICt9DQo+PiArDQo+PiAgdm9pZCBfX2luaXQgc2V0dXBfbW0odm9p
ZCkNCj4+ICB7DQo+PiAgICAgIEJVR19PTigidW5pbXBsZW1lbnRlZCIpOw0KPiANCj4gQ2hlZXJz
LA0KPiANCj4gLS0gDQo+IEp1bGllbiBHcmFsbA0KPiANCg0K


From xen-devel-bounces@lists.xenproject.org Mon Apr 14 15:09:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 15:09:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.950622.1346886 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4LRc-0008BL-4D; Mon, 14 Apr 2025 15:09:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 950622.1346886; Mon, 14 Apr 2025 15:09: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 1u4LRc-0008BE-1c; Mon, 14 Apr 2025 15:09:56 +0000
Received: by outflank-mailman (input) for mailman id 950622;
 Mon, 14 Apr 2025 15:09: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=ezPI=XA=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u4LRb-0008B6-7L
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 15:09:55 +0000
Received: from mail-wm1-x32d.google.com (mail-wm1-x32d.google.com
 [2a00:1450:4864:20::32d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 85083865-1942-11f0-9eae-5ba50f476ded;
 Mon, 14 Apr 2025 17:09:54 +0200 (CEST)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-43cfb6e9031so41898925e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 14 Apr 2025 08:09:54 -0700 (PDT)
Received: from [10.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-39eadda64ecsm11388782f8f.0.2025.04.14.08.09.52
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 14 Apr 2025 08:09:53 -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: 85083865-1942-11f0-9eae-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744643393; x=1745248193; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=NJtt1jxB48D/JO2bQTwBbcO1KJf2k5h3pE8VfmVChIA=;
        b=PyyHDYHgUlfj+QknK9VQBYOscU4ZcAJORTkHbj4+2mHOL9SRhm8mJw/hY6k0ASYZ7C
         aqkR7iHlOTeV/5GrLWwawG3KDL3CL8vtwPWWeheIbs/Z1t7XGnXBqGSVUaWphI1YXOC3
         MqL41W0wmBgjQ+zyiJDHxYofH7VgalR67LnURpMk7JKwmLoKv3jL+2jhK4KSSDZ+QHSa
         REAhQ5hGasuZPZJPfBTo6mp7g2qnZH5+rSd5GfzvCnp+i3Y+nqzZBBOSIY/1n5vIPUYZ
         3g2ivurNH8YiZ0Cvuq3R5jsJ0ZGdLVvB9R5pbF+AG81LRm+f0T8pnL0CZT88NL5hggJw
         3R4A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744643393; x=1745248193;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=NJtt1jxB48D/JO2bQTwBbcO1KJf2k5h3pE8VfmVChIA=;
        b=II9OnhtRy+2U604cKF+c0CLczPo0MPpeSCIsu7Me6umbjKyQrnenJx0rrPJJ1iJqs/
         rWUer1WBttMM5fqL8wBlCy0fJ6arsAwDUykU6SRma1CdtBpws0Dn2QSRtkk6YA0lp0pJ
         r/OT7srcLkKjN8vnJPG1jmnipJZgz0Vl4/S3pRwrHhW56PQPfzQMcK20RXG5rCmsPH8H
         F7iOAQ5zVFaVS61dPRWd8MS83Ba/LdAexH3n8MjzFo7c+3TcMqgACIh2gG1C9B97svrh
         23MOOC1CuVsCOZvzYuaucdkJuZQK0xPAzIRsih3VZEt/jMnSJwlgNQmqQ9vk6VafWRB8
         UPTQ==
X-Forwarded-Encrypted: i=1; AJvYcCX/2UONWjurEmPc809klcMluJ9xYXR3gdXNowAOGhaiF0FYDmGZ+vQhztM9LIkOH8LxqQ3WjZJgBGE=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx0b673vye1izcMy2M6Z69/k96ZW9nZrWj+VgL+pp+W+5jQlGB/
	c3w2NCdY2WhEhszkePKDGwkfbuhSPBExpOLEk5YoEO0nqkPAsJTdPqbrTg4hYg==
X-Gm-Gg: ASbGncvppauo4/Yjcd1taJTfCyz8WLaJTK5cy5KyfLmcjq6q+MURZ3AmmcKXCt/Wbij
	i/aEabY0zZdpwOglTXeMvvAewQosxTeW52WkjnCobo7dOwqGhy+Xb1z5J0DWPtynJeaX4ET1g6f
	9HkQvhnSqT4R7fpV7p0G1hE59j5k6Vs6QvKgyCeXrkM/aPVIGNfbs7HATbLYLi/uPKDwaeSuT7e
	aet5Vkp+vSK1MQCybWYlJL/OIl3ovYsEAcA3WzTPVBBYS1s77a4QAQf1eIb6nMACVYaLml06CMK
	nAS8GEf/E1XBC2TOQ2XwDe+PqYLDqHWmmouHQ24ha/nE6my0Mv1Kgwuyeb3AlLxueVXL1vtoiIi
	DVxElznzxQK6Gp7nx+WIgHJtrpA==
X-Google-Smtp-Source: AGHT+IEFUvmjKVpQRz3M5/DfYwQnw/EAR1WcdoHHdmIAPpgNROhaI+jqbhpE1r4kjQ4ej4ARLegljQ==
X-Received: by 2002:a5d:588a:0:b0:39a:c9b3:e1d7 with SMTP id ffacd0b85a97d-39ea634bf9amr8889132f8f.29.1744643393401;
        Mon, 14 Apr 2025 08:09:53 -0700 (PDT)
Message-ID: <b4a41f93-18f8-4e36-a4b5-b17b31aff2a5@suse.com>
Date: Mon, 14 Apr 2025 17:09:54 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 10/16] x86/hyperlaunch: obtain cmdline from device tree
To: Alejandro Vallejo <agarciav@amd.com>
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Jason Andryuk <jason.andryuk@amd.com>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Michal Orzel <michal.orzel@amd.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Julien Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 xen-devel@lists.xenproject.org
References: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-11-agarciav@amd.com>
 <dccb3dd3-eac8-40b4-8ffb-a0ccb688ac0e@suse.com>
 <D96FH9LMHYXJ.2BDEIEANJSYVD@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: <D96FH9LMHYXJ.2BDEIEANJSYVD@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 14.04.2025 16:23, Alejandro Vallejo wrote:
> On Thu Apr 10, 2025 at 12:12 PM BST, Jan Beulich wrote:
>> On 08.04.2025 18:07, Alejandro Vallejo wrote:
>>> --- a/xen/arch/x86/domain-builder/fdt.c
>>> +++ b/xen/arch/x86/domain-builder/fdt.c
>>> @@ -189,6 +189,12 @@ 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] )
>>> +                bd->kernel->fdt_cmdline = fdt_get_prop_offset(
>>> +                    fdt, node, "bootargs", &bd->kernel->cmdline_pa);
>>
>> Somewhat orthogonal question: Should there perhaps be a way for the boot loader
>> provided cmdline to go at the tail of the DT provided one?
> 
> That would preclude the bootloader fully overriding what's on the DT.
> One can always just copy the cmdline in the DT to the bootloader and
> adjust whatever is necessary there for testing. Adding append behaviour
> sounds more like a hindrance rather than helpful. To me at least.

Well. This is why I have been pushing for all options to also have a
"negative" form. This way you can override whatever specifically you
need to override, without re-typing the entire (perhaps long) cmdline
from DT.

Also, I didn't mean that to necessarily be the one-and-only behavior.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Apr 14 15:13:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 15:13:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.950636.1346897 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4LV9-00023Z-Jr; Mon, 14 Apr 2025 15:13:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 950636.1346897; Mon, 14 Apr 2025 15:13: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 1u4LV9-00023S-Fs; Mon, 14 Apr 2025 15:13:35 +0000
Received: by outflank-mailman (input) for mailman id 950636;
 Mon, 14 Apr 2025 15:13: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=ezPI=XA=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u4LV8-00023M-Cq
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 15:13:34 +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 0733f0b0-1943-11f0-9ffb-bf95429c2676;
 Mon, 14 Apr 2025 17:13:32 +0200 (CEST)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-4394a0c65fcso45373725e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 14 Apr 2025 08:13:32 -0700 (PDT)
Received: from [10.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-43f20a897b6sm108713885e9.1.2025.04.14.08.13.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 14 Apr 2025 08:13:31 -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: 0733f0b0-1943-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744643612; x=1745248412; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=glLrtcBIJfemlL+di4dRWTK237buUWLFpTyZJFXBbTY=;
        b=bX0Df3SIITdlum9MI0TJ/QR3I6Rz2Vr3oADlVUZhiG0B87j9Oimv6h7mu0LJzq/WdO
         TLOUBxKOdMnl9XXJRsZRtczlsbCvZfMOgWdqENh8hqGHRTouosdzM4KUizN/Gqdb2gkS
         Mh9b1Wx6gWBMzr6qQ3HU9al5fxKYwcGCFXgKKJDiyivaI5c4nJQYkXQV/p92Jr1AEhBT
         2IE1joIDnmgnb2UEDR+lkPtlCINYduWcC8bFI2vjeWKNDdcHHVAe/ir2O1jMwFhjBAMn
         kBOxG28Pp75MU1WQb+aCFqHw3CMeLzdLcPhkm8CcRRBklf6mrA/XfR4jH/pHZRBWAvNy
         oI4Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744643612; x=1745248412;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=glLrtcBIJfemlL+di4dRWTK237buUWLFpTyZJFXBbTY=;
        b=C4bKDqL7BvzyTL0JKt47GEPhDZKu0Q3dCWRYPc/eu6rOm7to+vodQXfeZFg8U9arbr
         qneQrJnhUXltJHKgKMIH2T0VEphX3pylBGXJTtlE6OxrBEHa7W5PmAtg79se8L91Ps+V
         xxjsUWrqJKeEPfhKLNCyHNlGLcLjBxD0D1WPNnjttSjsjY/V5gDxNW7F47+gEdXqFpyw
         /AmCREnnCJQQNzIeev3CEq13ry4uIxuK0Lh3iO++DK/6VIo/FKaJ8+KMyUxEsrd7Dhw2
         VoFoy9o4jddObRwLUg6YLkBDPyqYaWPkKq88LE/D4jQqqX6asj5oxcJOtpiRYkaPaPi2
         Flmw==
X-Forwarded-Encrypted: i=1; AJvYcCWuL2KTS5QcC5VRpKHtXKtJBiNTkS+gAuyvH2gq/PUCrbOR75GQ3uBt2PlvC3mh9vJ1L0RIDkgMW5U=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyJcj90ABTl8k6okriLVcNBK1fKhIUnEto5p3gIN9m7E1Tlxws3
	0Ys7MhoalR4UNgJ6S8Km1oaj50pdGNTPtx5hDdARumHrbYAxK6i8eM1a033wUw==
X-Gm-Gg: ASbGncsfNdOPpzldJjWMIS3JaUeuf/CZgOLmg1WzcLRRGW5RBq5fZC/Prl2+fXS5Qy+
	PBvbrIRQgwS7dautvhjfic1wyL4hNN4T9e0kOV6OWlnVNI+4epVu5UxLPfmLQUFx62tuKHy9lCj
	25aAvi0imEfe5mQ/UqNP9xQm4tIwWsw4Nk4p/cP/4K7ONUOD3s1YfouQBnv7i+yqK66C5HyRgXU
	wJ6C1G6IzzF05QfAm4XIawkMioJ5qG+QBl5njBjx37X7ovBGiC92PLmaz0Tw1TSSZDA2eG/qhJw
	H3iv1pHWIlF9430OUPEEG1M352/Pcq5jXdCWoVQy7xlLNJx/k/YjTUK89B7FEgCzhj+ts57Eher
	fnCVYB18sSMhWX/MlI01C0WxgGw==
X-Google-Smtp-Source: AGHT+IFtMzAJEGMIQ3O+EERHY5ePNeZI6o47bAYZGuIYiy76gMtRD6XsavcuYmYE0YJZDP+GGyp5Ig==
X-Received: by 2002:a05:600c:5107:b0:43d:3df:42d8 with SMTP id 5b1f17b1804b1-43f3a925ba8mr97366025e9.6.1744643611670;
        Mon, 14 Apr 2025 08:13:31 -0700 (PDT)
Message-ID: <21a06f22-0efe-4a82-be6c-dd3b744c28ff@suse.com>
Date: Mon, 14 Apr 2025 17:13:32 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 02/14] xen/riscv: introduce smp_clear_cpu_maps()
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1744126720.git.oleksii.kurochko@gmail.com>
 <ce3460b3857cca9e6f3072a8ddd50b31cb46b855.1744126720.git.oleksii.kurochko@gmail.com>
 <18277077-2cf0-466f-8bde-f7955806bcb2@suse.com>
 <127265c3-b572-4763-932a-4bb1d53af0b9@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: <127265c3-b572-4763-932a-4bb1d53af0b9@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 14.04.2025 17:05, Oleksii Kurochko wrote:
> On 4/10/25 3:10 PM, Jan Beulich wrote:
>> On 08.04.2025 17:57, Oleksii Kurochko wrote:
>>> +void __init smp_clear_cpu_maps(void)
>>> +{
>>> +    cpumask_clear(&cpu_possible_map);
>>> +    cpumask_clear(&cpu_online_map);
>> What's the point of these? All three maps start out fully zeroed.
> 
> It could be really dropped. I saw your patch for Arm, I'll align the current
> patch with that changes.
> 
>>> +    cpumask_set_cpu(0, &cpu_possible_map);
>>> +    cpumask_set_cpu(0, &cpu_online_map);
>> These are contradicting the name of the function. The somewhat equivalent
>> function we have on x86 is smp_prepare_boot_cpu().
>>
>>> +    cpumask_copy(&cpu_present_map, &cpu_possible_map);
>> Another cpumask_set_cpu() is probably cheaper here then.
> 
> What do you mean by cheaper here?

Less code to execute to achieve the same effect.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Apr 14 15:18:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 15:18:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.950657.1346907 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4LZj-0004BZ-3I; Mon, 14 Apr 2025 15:18:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 950657.1346907; Mon, 14 Apr 2025 15:18: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 1u4LZi-0004BS-Vv; Mon, 14 Apr 2025 15:18:18 +0000
Received: by outflank-mailman (input) for mailman id 950657;
 Mon, 14 Apr 2025 15:18: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=Bm2T=XA=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1u4LZh-0004BK-Hg
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 15:18:17 +0000
Received: from EUR03-AM7-obe.outbound.protection.outlook.com
 (mail-am7eur03on20613.outbound.protection.outlook.com
 [2a01:111:f403:260e::613])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id af0e381c-1943-11f0-9eae-5ba50f476ded;
 Mon, 14 Apr 2025 17:18:15 +0200 (CEST)
Received: from AS4P195CA0043.EURP195.PROD.OUTLOOK.COM (2603:10a6:20b:65a::11)
 by PAXPR08MB7442.eurprd08.prod.outlook.com (2603:10a6:102:2b8::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.32; Mon, 14 Apr
 2025 15:18:10 +0000
Received: from AMS0EPF000001A7.eurprd05.prod.outlook.com
 (2603:10a6:20b:65a:cafe::70) by AS4P195CA0043.outlook.office365.com
 (2603:10a6:20b:65a::11) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.34 via Frontend Transport; Mon,
 14 Apr 2025 15:18:10 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AMS0EPF000001A7.mail.protection.outlook.com (10.167.16.234) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.12
 via Frontend Transport; Mon, 14 Apr 2025 15:18:08 +0000
Received: from DB7PR08MB2987.eurprd08.prod.outlook.com (2603:10a6:5:1c::25) by
 AS2PR08MB9392.eurprd08.prod.outlook.com (2603:10a6:20b:594::16) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.34; Mon, 14 Apr
 2025 15:17:36 +0000
Received: from DB7PR08MB2987.eurprd08.prod.outlook.com
 ([fe80::d53f:b16d:70a5:8668]) by DB7PR08MB2987.eurprd08.prod.outlook.com
 ([fe80::d53f:b16d:70a5:8668%4]) with mapi id 15.20.8632.030; Mon, 14 Apr 2025
 15:17: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: af0e381c-1943-11f0-9eae-5ba50f476ded
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=v00PYA6EWHVfVg8k+woAi/qXTqZGXX2TXQGt5vdwrghgYe31rXJ5ts4OVt06aTXUzvyM+heIirRhXRRnRplNgCD8gIXfiFfvJWzma3jBHkEOjRE4HkdI/uj/uU/gG/GkARGfZu9dNHKdBbVZzRZSidvlV6ijPkpZGFZGyThOqvX4Zl+Lgb6PYI2hrX+giE7DbN7x1s/rO2GHNsMTnFZ8ZZuT4QS8vsae6IimJ6S7RFGSUfgT3fIxieb6zVkGjG39ZqcfO+NHvkgji4SYZM/Gzo62gGmMVa+L8/yxWX11nteRNQluj6DUPVQ/GPQIa341zO92gItyCQndNw+nUIH1YQ==
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=f+MA1cxj9Cc9vtjGDIpAVEEuIDJnU63CRrVmp05o6aI=;
 b=ec8/nif+CughualCpYQEeFvfn/dz3Yr7FtBeVB1T3n9UZf6emvgXETLiTJOASxdGLHTiqm5Hm0z5uStUTGClDnYN34LCveuQHxhiRha91Ez+4rbnZ3MwnsH7EOEp6mwxJCt44oU7mkXSTSyfRSBaL7fSKgOaDHB8+2GKaaSObGv0a0EEroNLBRtTlu2evAJJBHaVKi7vDG1/EIEiLaZ4SnHnjhU0vGzaMvMN2bwAH2/y1awEEZWKzk/ubWmosWrDIxT3zJgFew2udXeGl4UjBs7BDxfh3PU+bRTAJES9iomsojpO0Xb6vMzzzEhNqTcb/zS3CXDM9nVnZQTjHkdtyA==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=xen.org smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=f+MA1cxj9Cc9vtjGDIpAVEEuIDJnU63CRrVmp05o6aI=;
 b=USGFJkR2hBFJuo6k5KjRG1aEAvLwCaT0Lm7VxJYhTYAOB9rWt+vYAkLONiaTNTr1eSmVY2O55k3RUPKZg70Z3uXPsaM47nWjkbxImjz2XAZTU9K1cX5OojBEe8Yqjaa5qtlXdHLCCSe6H0yooW51zX4DgtoVNEKwPR6dDdM7ms4=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=lhQVoRIUN6ZShbwnEa7HYAR6F6lvMD5NvB/ryPPuNpHZ0imElfQC/D+BXKTXqll3/unx9x9NnVKsunYlAGa14MINDUZm74XwMHWGrt0dns9apbAmpZFIcLt5FFNaoi7mqS9z8gRYvmwysvOEfHwKe8bfGMRZ7HepeRK5rPvq/14vaTMRnJmVzPWjl6u5pnegdeYby6YSDIxnzb9oL5bQRfnLd1DX6q35+sHtmYuWYYqcBkH7WRb1eEfL9fAgfeN6+GS+/VV+APcA5Svy7+vekXFKfC7LNF2HnqOG7kUYnHQcwXjAQumbiL2br+HJnCBwcEUqeOxnmKLtr0q9x4mD4w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-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+MA1cxj9Cc9vtjGDIpAVEEuIDJnU63CRrVmp05o6aI=;
 b=ILUwLfvnwPzj4ia7tD5NW9iFluNkydFcodwzcwrSLXGI75JNca2OpZ5dCOTg8vH/pSPFfLfyxjF4tSxRnLyCDfucreLy15IqEig1/PbcifC8NmX3E9qOMcToU+EGwtm/5JCv1jrqkvH2JdAiV8qMt2rYTGS6BtWF7ppmF9qneu8iejmeCI+/mOt84YavUkM3Y5UEJN0vand6hMfBhzpKxIPFjORj9rG8JjVU1RocFEzBiGsUkpfs0VmzYKZy1Ywa5bhXzjK7Gl/mAb/PQ3zwuwchw606dyI/VlK9zkyDFGMinKxmQcXQKNTDsa2RyJBRawn3QU0F82lDXPEUJkrUWA==
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=f+MA1cxj9Cc9vtjGDIpAVEEuIDJnU63CRrVmp05o6aI=;
 b=USGFJkR2hBFJuo6k5KjRG1aEAvLwCaT0Lm7VxJYhTYAOB9rWt+vYAkLONiaTNTr1eSmVY2O55k3RUPKZg70Z3uXPsaM47nWjkbxImjz2XAZTU9K1cX5OojBEe8Yqjaa5qtlXdHLCCSe6H0yooW51zX4DgtoVNEKwPR6dDdM7ms4=
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 v3 7/7] arm/mpu: Implement setup_mpu for MPU system
Thread-Topic: [PATCH v3 7/7] arm/mpu: Implement setup_mpu for MPU system
Thread-Index: AQHbqvIOcqFIKG0Dnkidmosr/dM7hLOjFvuAgAAzsIA=
Date: Mon, 14 Apr 2025 15:17:36 +0000
Message-ID: <4771188E-B307-4452-A900-2ACACC1CE333@arm.com>
References: <20250411145655.140667-1-luca.fancellu@arm.com>
 <20250411145655.140667-8-luca.fancellu@arm.com>
 <923a2fc0-4eeb-4e09-a56d-7471a56fe3bf@xen.org>
In-Reply-To: <923a2fc0-4eeb-4e09-a56d-7471a56fe3bf@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.400.131.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DB7PR08MB2987:EE_|AS2PR08MB9392:EE_|AMS0EPF000001A7:EE_|PAXPR08MB7442:EE_
X-MS-Office365-Filtering-Correlation-Id: faf8263e-0e69-4201-1d78-08dd7b678ff9
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?cTVUWG5VaU9kREQyeHJMTXZhbHNWcjhEeGR2c2NQcUlCcXlVRXkrQlJNSVBU?=
 =?utf-8?B?b3dSMDd3UlV4c3FGK2lVa2hxYmwrRnh1cnFlbzFJNWZzM2Z2WHl2enA5emsv?=
 =?utf-8?B?YmlCaDcrcXZBMlNYYXJnTmIzaFV6SjdZRm1Fa244YWZjM2xVdkRKMU4rR2x2?=
 =?utf-8?B?SVJBMzNjWWVvZGNTVEJ1T3VLNGV6MmZzWElJVE5MeXZzT2pyUm42dXM5dzRu?=
 =?utf-8?B?RWMvZUgvUElSek0wY3J5VzY2eU9lV2t0WkphbGFWYVNyMEJudUxLT2o1cWNG?=
 =?utf-8?B?WnBGdDBROG43RXg0MVdJNlY5OUlqVGRqcUMwajlOY3Z5UDNLclNJbEljNDRP?=
 =?utf-8?B?TGJ3WU1zeVpDVFNldW93ZEJvRFdHTDFGRmR2Z0g1aGhmc2xjanRTWkxwNWZ5?=
 =?utf-8?B?UXlJSEdidDQ4K3duc3pLc2E3OHZoQUJ2TFZwZlBmYi9LMm9SMGEybndTUkxW?=
 =?utf-8?B?MFErdWlreGJmSkc2RlZ1ckhvRUhsZzNpOG5tN0ZIcm9JNVZ6QUpPODFXOTRZ?=
 =?utf-8?B?V2R0UlpueE9mU3ZEUzJEOGtzMTRRa2ZxUkJNT2NGZjlTanFhVTNobFRuUlpi?=
 =?utf-8?B?aUYybEllZXNHM3BpQTREbktSWHdXYVpJVHIxekJrYWVpZHY1Qm01ZjJFRGtY?=
 =?utf-8?B?TDdNQ0ZQRG9ZbmZiT2dUQzJnV0MzSzFKZk1BeFBrdkxtcHQ5c2hlNzh6MmlT?=
 =?utf-8?B?U0NoOWwwYUlGVi82RjVrTjlTWUEyM3gyVU9NNm51dmsrc2ZDaDlHdzZGd0dz?=
 =?utf-8?B?N0Y2Wmp5RE0yOGpGdW1tbzhmQmdnaDJ6VlFyYnZHcGFyK3ZvdHREMjBGZnhU?=
 =?utf-8?B?L1k3YmRYdlhja05EaHhlSndYa1IwNm92Z3BlZzQ1cE5OcmdUbWdzcUllMzM4?=
 =?utf-8?B?by9wdlRxZ2JYdSs0d2IwTjJyZ1Y5ZDdRb1k0UTAvUGszbnlRVjUwY21HcXpR?=
 =?utf-8?B?NDM4d05ZT2RHV082TGV2U1FKcW5KTkdTdDlmb0dKdTRPWHNTRVZKK0pHM3Vl?=
 =?utf-8?B?R0VPZ0lBNzhSeThWT0I2RmVEWlZGVjVPQnpqaVZXc2NpNnZkNk9kcXNQK1ZC?=
 =?utf-8?B?NUFhaUlIRE1tUTBPTldBM0VZaFFQenhTcFBTdDdjRDdwUjRmNFVOdVFHazA5?=
 =?utf-8?B?NDEraEpKN3VhTWM0NmxDWTFHMzZpL1h2b09EQU5oSnBRT01MclhXTGJVdEJk?=
 =?utf-8?B?dm5tWjRHMS9ndGU0d1ZJYjFqbWhodndrbXVENGlqMUJJTmdiSk9OclZXa0d4?=
 =?utf-8?B?d3NiOXhmZEZYTVFPNExOWUhMUWJTNmQwNHo2UWpvOUR1bkVCTXdBd0xKOUxL?=
 =?utf-8?B?NWJPU0xzb0tLeFhJZk4yOS9pQ0JlOThrK2ZoU1lUdGhwUEQxMnA1WEE2YldF?=
 =?utf-8?B?OE15WGpYaGpUb1BwZE15TWVnOW9VMUN4UDQyaGFsR01OSmhOVkZNYkxyTU1v?=
 =?utf-8?B?SWxXNWg2VEk5bXlxQkhycnpzbU9xQ2tkZENwelVLa2ZwY2l6QXVzbWlFdFYy?=
 =?utf-8?B?U1BCdWZJVVhFWitHcW9QWStOQzhPOWE3bHBsLzB5UVBoaW9GSHRaQTBnVW4x?=
 =?utf-8?B?YUhVanY2MlpvZ0RuT2R0WFhhekN3bXZBdElTekx0RE5kL0Vxc1hUaGZrbnhL?=
 =?utf-8?B?bzQ3cXVmdThhNHBmdFVGTWdLZGFlYkVObXljOTZqWmNELzA0UEl6VVZyQVFR?=
 =?utf-8?B?UXMzU09MdGcrMjlacFUzTW45VkREZzQvblR1U1Exa1VkNU5qaVBPbzRLMmtV?=
 =?utf-8?B?SVYzMUdGZVVPanQ2Q2RrLzhXS0tDM2xJUGN5SDRzYjJRbnBSa0VKN3NRVlFr?=
 =?utf-8?B?N0pmTmlzTlRkV0RSSVh4UENYdHhEV3RKU0tZYmpvMmtaVDNwQzdXWHAwMzh5?=
 =?utf-8?B?RjlGN3V3c3hoOGpWMEdFU3F6Vk4ydXZpTDZldHloOU9CZ3VyN1YvTjdNK0hs?=
 =?utf-8?B?blYxM2NpWmdVeVd6dW1oSC9CZ1Byc081MFdCOUJZaTBSaERtUmwvY2dqUHBI?=
 =?utf-8?B?RWs5SEUzZmpBPT0=?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB7PR08MB2987.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: <23241DB27576D246A6C512A932622146@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR08MB9392
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AMS0EPF000001A7.eurprd05.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	1bd3ceb7-a160-42b2-b849-08dd7b677cd1
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|14060799003|1800799024|35042699022|82310400026|36860700013|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?N20rZVRzQ3hldHNTMmhVVTZVRUo4TW5KcEdGa3l3L2pnc3JUVjJCaWdRK1dj?=
 =?utf-8?B?UG5zaXFDOUJySWlNR0MraG9hNFlkSjdIeFFCUDVWK29sNGptQjJhdmZlQUNS?=
 =?utf-8?B?QldhQUl6eWczN3J5WWhSNlltS3BJeXFuOVB2TnE1OTVjNVBLK3llSlpNV2hP?=
 =?utf-8?B?ZndXZFZjTmRoOU5sWVo5SUJ3R2RhVVcxcWhxaWR0WHFkdjBNTHZTajhOZGtj?=
 =?utf-8?B?ZEVWUUJYTk5VVlIwWHNsK2FQVTlZSlNNdG5WMHZJUkNPSVFZazljUzA0UjdJ?=
 =?utf-8?B?LzNpMzRCQzk1blN1S0V6Wkl3b25NOHR0WnpxcmZTcXZZOE9Fb28xNzNuZlJI?=
 =?utf-8?B?cEN0YVYrQVhIdUdzalBMZmoxRFRuN1UwQnNZK3Q5dEhVQXduTWhpQTFVYUxu?=
 =?utf-8?B?ZG00Rnh3MWMxYzRMZ0RFQW9JaTczc3h5WTNtVWZnUlZmVkV5bC9OSzI1dGNY?=
 =?utf-8?B?N0ZWNzJQTXhvbGRLdVVOc1hyOUhrYWs4UnRUUS95NTZ3NnRLZGtBbHp6d3J3?=
 =?utf-8?B?RGp2WU5Mb3hpODVnS0szT3RRR09VTVNOUXlxczdlcXEzRGpOUFNBTnF5YkNo?=
 =?utf-8?B?UjBFdFJROGYrY3pHVk1nSDlJNkVPcGN0R2k5dVZXQlJ3U2ljNmVFWVJ6cEVi?=
 =?utf-8?B?OGNJa1ZXazUvNjJNc3pVVm5PVzZxcDRLWHkvMEhLa1B0c0lVVlV4WnNpQWQ0?=
 =?utf-8?B?b3JoY240YmFCMEZNLzhmeGdQeEZQZDljZlhGelRyTi9yTy93YWFjaEp6Vk1H?=
 =?utf-8?B?U0FBQ3ZJcmQ1anp2YnpSaDZ4RjhkaFJaUzhMeWhmbHNFN0RITU9TQVh3bmNj?=
 =?utf-8?B?UCtrLy9WV3BHSUJxaDhyVG9xR3p2Tzl6L3hNeW1hQmVtNXZ4bG9EUHZwYzdl?=
 =?utf-8?B?YVA2YUFQWXRIRXZpWXFGUUV3K202cGkyOEd3bVBpZTJqbWE5TUFLVnRPZFZy?=
 =?utf-8?B?ZG5MUGVWWTkyZEVPWTZudFF3NE5FOStZQTU4Sy82TTJyMVBtcndxckFqUzZy?=
 =?utf-8?B?ZzhLRno2TEsxOWhCR2tQaHhnU3NoQU1MMnJYcVpVWTI4d1RrNnhDMXR6TXJ5?=
 =?utf-8?B?Z25TVkY5YW9HaEdMbjEzRW1pRjJSRXBzc3UvcjV5SXVkclR1Yjd6c2l4dGZ2?=
 =?utf-8?B?a3BxNll4cnd4b1BidG56TVJEWTdhSGVTc2RJWENSVGFVSDRmT1F5dWthbGpS?=
 =?utf-8?B?cUR0QStndzNHdEUxakZZWGlkbW9kL0lreWZlWnM2NVM2VFpLQWtCUFlLdmF0?=
 =?utf-8?B?am44emJXOUFmSFVyV1dCQVNweGE3YzRkbHp6R3BQdGM2QW12dHluY0VhQ3hk?=
 =?utf-8?B?bHlYY1VzdEo0bXdpaW9RS3p5UjNmd05NeDdLemMzVnFaSndyM3FneWMrR2Qx?=
 =?utf-8?B?VklCVk1uM2RUUTY1S0JyY0RrZXJtakdyUEh4Wm82TU9qTkVZSGIrZ25CUFR6?=
 =?utf-8?B?S01RYTIrWFoxdlgzckg0bFBCbWl0bkNobm5KeEdzYmJJZDk2Y3ZlQTg5TXB6?=
 =?utf-8?B?V2J5OWsvSEhpeE9velZvY0QzZkhwaUJ5QktjYk5leG05akVNNE1ieUdJU1RH?=
 =?utf-8?B?S2pkWDZ6eEFFczZvMkNoc3ljNlAxSGZpc3pNVCtHd04rMmdQaUtxUm15NjRX?=
 =?utf-8?B?elVWUGpYMzN1QkFkREtVRkZlNTZIQU5ZQkNCU092QlVqVisvSVdmMlVJaUl0?=
 =?utf-8?B?aENvbFNreW5vK1F3RVp5OUFvY3M5RHd4RjlDMVNkQ1RjdEc3bmxaSjB3cjRo?=
 =?utf-8?B?TGc1elo5ZHBIZVFudmtLbEN2VUpWRGRTa2xBWVhVTCtlRlI4Qnh6ZmxQMVpz?=
 =?utf-8?B?ZU1qb1QvWWhyRFRoMFUwcy82NFJuV2pWRmFrOTVuU0J1eFBDc0htenc0MmJQ?=
 =?utf-8?B?bmhnUlFUYUJNNURJczNHUmRGd3FWT0dxdUUxT2ZPNCtwQ1h5cTZQSEVqV2x4?=
 =?utf-8?B?ckFlN0dLYkxuNFNWRHRWQWR1ejlVRzdaa2pYR3NMNEg3S0tURG9WcDdYRkdH?=
 =?utf-8?B?TllqdU9Ia20vajVFOExhNzdBOVp0MkdpSVNIWU5uZk9NSmVUKzFmTHMwZjVh?=
 =?utf-8?Q?Pj/Ma2?=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(14060799003)(1800799024)(35042699022)(82310400026)(36860700013)(376014)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Apr 2025 15:18:08.2856
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: faf8263e-0e69-4201-1d78-08dd7b678ff9
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AMS0EPF000001A7.eurprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR08MB7442

SEkgSnVsaWVuLA0KDQo+IE9uIDE0IEFwciAyMDI1LCBhdCAxMzoxMiwgSnVsaWVuIEdyYWxsIDxq
dWxpZW5AeGVuLm9yZz4gd3JvdGU6DQo+IA0KPiBIaSBMdWNhLA0KPiANCj4gT24gMTEvMDQvMjAy
NSAyMzo1NiwgTHVjYSBGYW5jZWxsdSB3cm90ZToNCj4+IEltcGxlbWVudCB0aGUgZnVuY3Rpb24g
c2V0dXBfbXB1IHRoYXQgd2lsbCBsb2dpY2FsbHkgdHJhY2sgdGhlIE1QVQ0KPj4gcmVnaW9ucyBk
ZWZpbmVkIGJ5IGhhcmR3YXJlIHJlZ2lzdGVycywgc3RhcnQgaW50cm9kdWNpbmcgZGF0YQ0KPj4g
c3RydWN0dXJlcyBhbmQgZnVuY3Rpb25zIHRvIHRyYWNrIHRoZSBzdGF0dXMgZnJvbSB0aGUgQyB3
b3JsZC4NCj4+IFRoZSB4ZW5fbXB1bWFwX21hc2sgYml0bWFwIGlzIHVzZWQgdG8gdHJhY2sgd2hp
Y2ggTVBVIHJlZ2lvbiBhcmUNCj4+IGVuYWJsZWQgYXQgcnVudGltZS4NCj4+IFRoaXMgZnVuY3Rp
b24gaXMgY2FsbGVkIGZyb20gc2V0dXBfbW0oKSB3aGljaCBmdWxsIGltcGxlbWVudGF0aW9uDQo+
PiB3aWxsIGJlIHByb3ZpZGVkIGluIGEgbGF0ZXIgc3RhZ2UuDQo+PiBTaWduZWQtb2ZmLWJ5OiBM
dWNhIEZhbmNlbGx1IDxsdWNhLmZhbmNlbGx1QGFybS5jb20+DQo+PiAtLS0NCj4+IHYzIGNoYW5n
ZXM6DQo+PiAgLSBNb3ZlZCBQUkVOUl9NQVNLIGRlZmluZSB0byBjb21tb24uDQo+PiAtLS0NCj4+
IC0tLQ0KPj4gIHhlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9tcHUuaCB8ICAyICsrDQo+PiAgeGVu
L2FyY2gvYXJtL21wdS9tbS5jICAgICAgICAgIHwgNDkgKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrLQ0KPj4gIDIgZmlsZXMgY2hhbmdlZCwgNTAgaW5zZXJ0aW9ucygrKSwgMSBkZWxl
dGlvbigtKQ0KPj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9tcHUuaCBi
L3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9tcHUuaA0KPj4gaW5kZXggZWJhNTA4NmNkZTk3Li43
N2QwNTY2Zjk3ODAgMTAwNjQ0DQo+PiAtLS0gYS94ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vbXB1
LmgNCj4+ICsrKyBiL3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9tcHUuaA0KPj4gQEAgLTIwLDYg
KzIwLDggQEANCj4+ICAjZGVmaW5lIE5VTV9NUFVfUkVHSU9OU19NQVNLICAgIChOVU1fTVBVX1JF
R0lPTlMgLSAxKQ0KPj4gICNkZWZpbmUgTUFYX01QVV9SRUdJT05TICAgICAgICAgTlVNX01QVV9S
RUdJT05TX01BU0sNCj4+ICArI2RlZmluZSBQUkVOUl9NQVNLICBHRU5NQVNLKDMxLCAwKQ0KPj4g
Kw0KPj4gIC8qIEFjY2VzcyBwZXJtaXNzaW9uIGF0dHJpYnV0ZXMuICovDQo+PiAgLyogUmVhZC9X
cml0ZSBhdCBFTDIsIE5vIEFjY2VzcyBhdCBFTDEvRUwwLiAqLw0KPj4gICNkZWZpbmUgQVBfUldf
RUwyIDB4MA0KPj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9tcHUvbW0uYyBiL3hlbi9hcmNo
L2FybS9tcHUvbW0uYw0KPj4gaW5kZXggNjM1ZDFmNWEyYmEwLi5lMGE0MDQ4OWE3ZmMgMTAwNjQ0
DQo+PiAtLS0gYS94ZW4vYXJjaC9hcm0vbXB1L21tLmMNCj4+ICsrKyBiL3hlbi9hcmNoL2FybS9t
cHUvbW0uYw0KPj4gQEAgLTE0LDYgKzE0LDE3IEBADQo+PiAgICBzdHJ1Y3QgcGFnZV9pbmZvICpm
cmFtZV90YWJsZTsNCj4+ICArLyogTWF4aW11bSBudW1iZXIgb2Ygc3VwcG9ydGVkIE1QVSBtZW1v
cnkgcmVnaW9ucyBieSB0aGUgRUwyIE1QVS4gKi8NCj4gPiArdWludDhfdCBfX3JvX2FmdGVyX2lu
aXQgbWF4X3hlbl9tcHVtYXA7DQo+IA0KPiBBcmUgdGhpcyB2YXJpYWJsZSBhbmQgLi4uDQo+IA0K
Pj4gKw0KPj4gKy8qDQo+PiArICogQml0bWFwIHhlbl9tcHVtYXBfbWFzayBpcyB0byByZWNvcmQg
dGhlIHVzYWdlIG9mIEVMMiBNUFUgbWVtb3J5IHJlZ2lvbnMuDQo+PiArICogQml0IDAgcmVwcmVz
ZW50cyBNUFUgbWVtb3J5IHJlZ2lvbiAwLCBiaXQgMSByZXByZXNlbnRzIE1QVSBtZW1vcnkNCj4+
ICsgKiByZWdpb24gMSwgLi4uLCBhbmQgc28gb24uDQo+PiArICogSWYgYSBNUFUgbWVtb3J5IHJl
Z2lvbiBnZXRzIGVuYWJsZWQsIHNldCB0aGUgYWNjb3JkaW5nIGJpdCB0byAxLg0KPj4gKyAqLw0K
Pj4gK0RFQ0xBUkVfQklUTUFQKHhlbl9tcHVtYXBfbWFzaywgTUFYX01QVV9SRUdJT05TKTsNCj4g
DQo+IC4uLiB0aGlzIG9uZSBtZWFudCB0byBiZSBnbG9iYWw/IElmIHllcywgdGhlbiB0aGV5IG5l
ZWQgdG8gaGF2ZSBhIGRlY2xhcmF0aW9uIGluIHRoZSBoZWFkZXIuIElmIG5vdCwgdGhlbiB5b3Ug
d2FudCB0byBhZGQgJ3N0YXRpYycuDQoNCnllcyB0aGV5IGFyZSBtZWFudCB0byBiZSBnbG9iYWws
IEnigJlsbCBhZGQgYSBkZWNsYXJhdGlvbiBpbiB0aGUgaGVhZGVyLg0KDQo+IA0KPiA+ICsNCj4+
ICAvKiBFTDIgWGVuIE1QVSBtZW1vcnkgcmVnaW9uIG1hcHBpbmcgdGFibGUuICovDQo+PiAgcHJf
dCB4ZW5fbXB1bWFwW01BWF9NUFVfUkVHSU9OU107DQo+PiAgQEAgLTIyMiw5ICsyMzMsNDUgQEAg
cHJfdCBwcl9vZl94ZW5hZGRyKHBhZGRyX3QgYmFzZSwgcGFkZHJfdCBsaW1pdCwgdW5zaWduZWQg
YXR0cikNCj4+ICAgICAgcmV0dXJuIHJlZ2lvbjsNCj4+ICB9DQo+PiAgKy8qDQo+PiArICogVGhl
IGNvZGUgaW4gdGhpcyBmdW5jdGlvbiBuZWVkcyB0byB0cmFjayB0aGUgcmVnaW9ucyBwcm9ncmFt
bWVkIGluDQo+PiArICogYXJtNjQvbXB1L2hlYWQuUw0KPj4gKyAqLw0KPj4gK3N0YXRpYyB2b2lk
IF9faW5pdCBzZXR1cF9tcHUodm9pZCkNCj4+ICt7DQo+PiArICAgIHJlZ2lzdGVyX3QgcHJlbnI7
DQo+PiArICAgIHVuc2lnbmVkIGludCBpID0gMDsNCj4+ICsNCj4+ICsgICAgLyoNCj4+ICsgICAg
ICogTVBVSVJfRUwyLlJlZ2lvblswOjddIGlkZW50aWZpZXMgdGhlIG51bWJlciBvZiByZWdpb25z
IHN1cHBvcnRlZCBieQ0KPj4gKyAgICAgKiB0aGUgRUwyIE1QVS4NCj4+ICsgICAgICovDQo+PiAr
ICAgIG1heF94ZW5fbXB1bWFwID0gKHVpbnQ4X3QpKFJFQURfU1lTUkVHKE1QVUlSX0VMMikgJiBO
VU1fTVBVX1JFR0lPTlNfTUFTSyk7DQo+PiArDQo+PiArICAgIC8qIFBSRU5SX0VMMiBoYXMgdGhl
IE4gYml0IHNldCBpZiB0aGUgTiByZWdpb24gaXMgZW5hYmxlZCwgTiA8IDMyICovDQo+PiArICAg
IHByZW5yID0gKFJFQURfU1lTUkVHKFBSRU5SX0VMMikgJiBQUkVOUl9NQVNLKTsNCj4+ICsNCj4+
ICsgICAgLyoNCj4+ICsgICAgICogU2V0IHRoZSBiaXRmaWVsZCBmb3IgcmVnaW9ucyBlbmFibGVk
IGluIGFzc2VtYmx5IGJvb3QtdGltZS4NCj4+ICsgICAgICogVGhpcyBjb2RlIHdvcmtzIHVuZGVy
IHRoZSBhc3N1bXB0aW9uIHRoYXQgdGhlIGNvZGUgaW4gaGVhZC5TIGhhcw0KPj4gKyAgICAgKiBh
bGxvY2F0ZWQgYW5kIGVuYWJsZWQgcmVnaW9ucyBiZWxvdyAzMiAoTiA8IDMyKS4NCj4+ICsgICAg
IA0KPiBUaGlzIGlzIGEgYml0IGZyYWdpbGUuIEkgdGhpbmsgaXQgd291bGQgYmUgYmV0dGVyIGlm
IHRoZSBiaXRtYXAgaXMgc2V0IGJ5IGhlYWQuUyBhcyB3ZSBhZGQgdGhlIHJlZ2lvbnMuIFNhbWUg
Zm9yIC4uLg0KDQpTbywgSSB3YXMgdHJ5aW5nIHRvIGF2b2lkIHRoYXQgYmVjYXVzZSBpbiB0aGF0
IGNhc2Ugd2UgbmVlZCB0byBwbGFjZSB4ZW5fbXB1bWFwIG91dCBvZiB0aGUgQlNTIGFuZCBzdGFy
dA0KbWFuaXB1bGF0aW5nIHRoZSBiaXRtYXAgZnJvbSBhc20sIGluc3RlYWQgSSB3YXMgaG9waW5n
IHRvIHVzZSB0aGUgQyBjb2RlLCBJIHVuZGVyc3RhbmQgdGhhdCBpZiBzb21lb25lDQp3YW50cyB0
byBoYXZlIG1vcmUgdGhhbiAzMSByZWdpb24gYXMgYm9vdCByZWdpb24gdGhpcyBtaWdodCBicmVh
aywgYnV0IGl04oCZcyBhbHNvIGEgYml0IHVubGlrZWx5Pw0KDQpTbyBJIHdhcyBiYWxhbmNpbmcg
dGhlIHByb3MgdG8gbWFuaXB1bGF0ZSBldmVyeXRoaW5nIGZyb20gdGhlIEMgd29ybGQgYWdhaW5z
dCB0aGUgY29ucyAoYm9vdCByZWdpb24gPiAzMSkuDQoNCklzIGl0IHN0aWxsIHlvdXIgcHJlZmVy
cmVkIHdheSB0byBoYW5kbGUgZXZlcnl0aGluZyBmcm9tIGFzbT8NCg0KQ2hlZXJzLA0KTHVjYQ0K
DQo=


From xen-devel-bounces@lists.xenproject.org Mon Apr 14 15:21:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 15:21:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.950672.1346917 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4Ld2-0006Va-JX; Mon, 14 Apr 2025 15:21:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 950672.1346917; Mon, 14 Apr 2025 15: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 1u4Ld2-0006VT-Gq; Mon, 14 Apr 2025 15:21:44 +0000
Received: by outflank-mailman (input) for mailman id 950672;
 Mon, 14 Apr 2025 15:21: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=Bm2T=XA=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1u4Ld1-0006V5-3D
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 15:21:43 +0000
Received: from outbound.mail.protection.outlook.com
 (mail-francesouthazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c207::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 28864107-1944-11f0-9ffb-bf95429c2676;
 Mon, 14 Apr 2025 17:21:38 +0200 (CEST)
Received: from AS4P195CA0047.EURP195.PROD.OUTLOOK.COM (2603:10a6:20b:65a::24)
 by DU0PR08MB8445.eurprd08.prod.outlook.com (2603:10a6:10:407::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.31; Mon, 14 Apr
 2025 15:21:34 +0000
Received: from AM3PEPF0000A796.eurprd04.prod.outlook.com
 (2603:10a6:20b:65a:cafe::4d) by AS4P195CA0047.outlook.office365.com
 (2603:10a6:20b:65a::24) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.35 via Frontend Transport; Mon,
 14 Apr 2025 15:21:34 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AM3PEPF0000A796.mail.protection.outlook.com (10.167.16.101) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.12
 via Frontend Transport; Mon, 14 Apr 2025 15:21:32 +0000
Received: from DB7PR08MB2987.eurprd08.prod.outlook.com (2603:10a6:5:1c::25) by
 AS2PR08MB9392.eurprd08.prod.outlook.com (2603:10a6:20b:594::16) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.34; Mon, 14 Apr
 2025 15:21:00 +0000
Received: from DB7PR08MB2987.eurprd08.prod.outlook.com
 ([fe80::d53f:b16d:70a5:8668]) by DB7PR08MB2987.eurprd08.prod.outlook.com
 ([fe80::d53f:b16d:70a5:8668%4]) with mapi id 15.20.8632.030; Mon, 14 Apr 2025
 15:21: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: 28864107-1944-11f0-9ffb-bf95429c2676
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=C0e1vRTn3150nxlNbDlsPfNQcLo36OneZiXwW8Zmcaptv9OwXRy7lif6g2pxUxWr6VswEwhg1A/G42PxnLKsk3vnAIhNHgL0ZCi8P3TjlcJiN16Krg4IN9wuLpJTlt1UA/4F/+cDRX7MICjtgGjm8tmv8FJ0OJcG83k49+OGdYYmyS2KQxoq3IWBxkqQRAHChRCrf2R6O4JQrG2UZY4HgFsdpTQcArsOHojHM65/yZHR7hc1cCM4M60FxeBHUlIvBXbUJHBLG1efGXEAXOndUYvPENpw2VtDTlaaBdUtEHIN3SCyQAA0TK5e4Juebu+kmuK26Om5vb1QGrpoYSl6iw==
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=dJtGkPvDkxhK6OHak/6MJ9rzmbPmzya5BKyZyO8mUIY=;
 b=H/xaxA1suAFYIWWD+PrGLyOiQKTW5xUJ1m6OgzlSX46fb+PXvNwRLRXwWDgPARsAAS4hzQaxNqjoYcmkEIXsTiA9UQxG+c2rBKUOsSjGC6rX7T3I19YH8vFDW7Ck7L8g3NgOD/PAcPHfu7lEj4ZDE979UD0hvIqVo4z/BRDIlh2xQlPp0ouu4V+iKEfBA6QF0O55+VjxY/NNGrCR3QMfgktLxiId4oW9xhcYjIKm4wpcGW0Zh5/B0fw7q+iQNyBK+100AW+uG6SL3p7RF/xIOuQ9J7a1U5j7DBCvT97hEYY9/Q6SptRd9z7rYoyArfHvKuX7dMdEffxekLVSON05jw==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=amd.com smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=dJtGkPvDkxhK6OHak/6MJ9rzmbPmzya5BKyZyO8mUIY=;
 b=pO7FIirRVn7jxTNmd90CfSUf4nb7LLOuNAIGVg6FWkggeekZwwYv5IHotg7b86YA5K9+3zgYn23GmtEaAr6mV00Zpf9arRlGzSWBTKCZ7j52c7x7j2Y7psfyFmteSP2TF8o3oQofvx8GSjQnZK4oilG4YV8rXzDplCjZGmISXdU=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=uzrQBe5k2hXZpB9twZv73Tb5ncZgouCSQEzmjyq/6GMDgBO5toW6BClUMe/PcOkHn3YMBTd5iNoHm+cJqtCshZb1d0Dgnf6aFqoQb3qhSNymfxFJAXuukk7LROxoAyJWCjreKZN4vPdKvpcOcPXjv7PWE8dd8awS1E9EHoH1Lj7SjK3DeZgjuwF4aorDVhgnBF4TtRWcm9ZkvVojLFmIxhLtrOu4gpdi/dF4oHQP51nAsg5ozvAXbwdSzMHzRo90vbJnt8MROflftkDbI9Ja9NYY1xp/ANo5fjAgG7zJ4CgGBPrqpWZuKgCh3YE6KLqzuvj9nj+E999rGCSQVFWoPA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=dJtGkPvDkxhK6OHak/6MJ9rzmbPmzya5BKyZyO8mUIY=;
 b=gb0JqsF+qXYwe7lfKvIxJ7T8CizARMCGXsLZB/LspRjPIYUbMf0ZH8y90+Z4c2Ua9nDtl4AO7CeL8n+kyb3DzEbJZbpU4tNgLmwFF0+0sTS14ufnHHwtwuv0LLuIT+qjYAzACgO5XiiRTxKR1D5W2rnuwJ1OcbMf7fwfazS4SV2a9JSsFoZl6X2vDjHd2tzsDjONdU946LkgrHKh7PNRoihr8BwHZf18KMcpriEv3KK6/adQpMSCTcmDBGLkn/Vkt2QAIPsTraO29R7lF2uyy1mak1jbgfnjM5gxcey5hDk2wSaH8wxe2Yfcgzbo98bI/3sNNxaqILFmxUNeklyN6w==
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=dJtGkPvDkxhK6OHak/6MJ9rzmbPmzya5BKyZyO8mUIY=;
 b=pO7FIirRVn7jxTNmd90CfSUf4nb7LLOuNAIGVg6FWkggeekZwwYv5IHotg7b86YA5K9+3zgYn23GmtEaAr6mV00Zpf9arRlGzSWBTKCZ7j52c7x7j2Y7psfyFmteSP2TF8o3oQofvx8GSjQnZK4oilG4YV8rXzDplCjZGmISXdU=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: "Orzel, Michal" <Michal.Orzel@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>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Wei Chen <Wei.Chen@arm.com>
Subject: Re: [PATCH v3 1/7] arm/mpu: Introduce MPU memory region map structure
Thread-Topic: [PATCH v3 1/7] arm/mpu: Introduce MPU memory region map
 structure
Thread-Index: AQHbqvIQP3h8YyZqYkSDv4tGWZWI7LOi9uCAgABMVgCAAAL/gIAABWmA
Date: Mon, 14 Apr 2025 15:21:00 +0000
Message-ID: <D1EF4CFC-9DB2-4A1C-8224-AC349F132FCB@arm.com>
References: <20250411145655.140667-1-luca.fancellu@arm.com>
 <20250411145655.140667-2-luca.fancellu@arm.com>
 <d323425d-b266-49d6-95d4-0e1acb5e489e@amd.com>
 <FCB86533-FFE9-4A79-AC8F-E2DBA2B1F553@arm.com>
 <d85090b5-43f4-41dd-a423-ada90d572001@amd.com>
In-Reply-To: <d85090b5-43f4-41dd-a423-ada90d572001@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.400.131.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DB7PR08MB2987:EE_|AS2PR08MB9392:EE_|AM3PEPF0000A796:EE_|DU0PR08MB8445:EE_
X-MS-Office365-Filtering-Correlation-Id: 7b68747b-ef36-48f7-2089-08dd7b6809bf
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?TnBYY21EVmlYRnpvaGFadFFSUGxiUCtrODl3bTBpTVRoOVdkU1pJaCtVK1Zn?=
 =?utf-8?B?TVpXRHRGVXJta2FKZVltb1pVMXpSQVdHVDNNcjl4dzk1SFRBeHFFU0VCa3NZ?=
 =?utf-8?B?Y3I0dlFyZFZqeFM0UFg5RWNjS2l2Z1JsSmdjQmRRMXh2Qk9Ka050NGhWV0x4?=
 =?utf-8?B?UWxMNjNuQjIybGU4RmNQKyt4SkRCZ1Z1QVo5S2x2Q3VleDVFYjV1OGhwYlBL?=
 =?utf-8?B?ZVJDU0RDRjFLWWR0RGczYXNXQkdaWDJTcVc5Z2dnUzVMSjUwbGFXYnE5S0lh?=
 =?utf-8?B?V2pyM1VxSDk0WDNuTjVDNFhsMzltUjFjUUVOTktDTS9WaVpwRU90SmN4VHVV?=
 =?utf-8?B?cXJ4UFlqR2xhNEhSRlhsNldiOFpGeDJsNmVWVkxtQks2bjZZS1pudTJQTURV?=
 =?utf-8?B?bnhlSmNwOS9RdE9ob0YvV1NqS0NpZjFOaGFQQVJzTWo1ekEwQzU3M1BtK3Iz?=
 =?utf-8?B?ZThrdUpNdXpNeU93WENKUkp2c0hyWUIwakxsOXhxYWozWnRVN1dxcjRCUHNY?=
 =?utf-8?B?RnRGeHBzek5nMzl2ZEFlWllCaERGQkRkTVRsenhqWExjem5lb3UzUTJ2R05J?=
 =?utf-8?B?b0pyNEtYRmtWVVk3ZU11cnBac3VCcEhSQlVMeGkrdVRIc0FJdENQRUQzVk9N?=
 =?utf-8?B?Zm9iZHk4SU1DRlFZbEUrSlNscHpyQVQyQ3pYUnkrMWN5VTNMUFpvUnI0TTFl?=
 =?utf-8?B?STJ6MWZtekk3MWdVZHROMi9XWWlsRnJTRW8zUHRYTjBpK1UvenUrQnRXRXpB?=
 =?utf-8?B?SXZCR3JzQzVGMERJRzVwNzAxMWtpbVlDQUoxMFZob3NLOE1scTgxM2xZMUh5?=
 =?utf-8?B?NVY0MkxnT1Q2UFJvVWxWSjEwUlgzbEV2YlZlLzNuSDQxZkRGejJHU2dwWjV3?=
 =?utf-8?B?NUVLd0FXcTZEU2NqUlJBSGFTbVZicmFTV3BUdG5iYlR1RzM3UElCdmd2V3BV?=
 =?utf-8?B?bmhtVmxyMlY3WVh1VjRRRTErL3h2bE1KSUVCUXlncHZsM1BzamFpNHVvVGw3?=
 =?utf-8?B?TjI5UnZsK25JVWwycUpjZU5CN2NwT3h3TXY2MXIxbnYwR1J5Mi9KcWpmRGFO?=
 =?utf-8?B?TE1jU0pLUnFBMUpwTG1NdW5Sejc0Sk5hTXpwcDJVeWkwd1VOaVozM0Q1cTQ5?=
 =?utf-8?B?Sk9JRldCbUxVSGsvWUFWMUhiZGM0UzVRNjhpK0kzek5uQW1ZM2pldTlBd2Qv?=
 =?utf-8?B?MGpRcFhoYUJyZFZScjlQVnBUdXgwNlRKb0t3NlBUdEhpeXpXYWNyY0prckpH?=
 =?utf-8?B?dWJ1U3RwZTJ5b29GVzA2a3B0UDh4eDhERy9sNWlvaTgwMFE2QTFGR24xbnZB?=
 =?utf-8?B?bzlKdTZGZU11YnRDSXVwRjJTUFZTTWVSaStnSWF4MW9td1J5amE3bnlROUJD?=
 =?utf-8?B?dUVOZ0dEZndBVWRuVTJWWWJ0VjVhQi9zWi9NeEJxdlNvQWRVcVh4RE9aMUUw?=
 =?utf-8?B?eWd2RjFYZE5jVnBiUDFWV1dLZjgxU2RORkNHYS9IR3N1Q21OT2VlRWU4VEVz?=
 =?utf-8?B?SVhUZlRydzdGY2hnSkZiY3JRemN4UHFnSU9HUC91UUNkbUdXNmVneEhoK1Ux?=
 =?utf-8?B?YnZxODV2alhFRmpiaXh2SnRBSi9yREtVTTUwQmlCM0FGcU9WNXMwRk1oWTlv?=
 =?utf-8?B?V3FGQnJzM281N3J3NUkvemQ2OTV5emxxRDlRaUlPZVlmVkNndTRTR0NMbjB4?=
 =?utf-8?B?bndMbVVRZTkxQlNtV2F1OFBWQ002ek5OdFprQXE3Z2FybkpDUktEOFg3OXZm?=
 =?utf-8?B?SXpDS2didnhNcFNRUEsvU01MNDc2dUJrUUR5ajhhUExuNkw4ci83eGJPT0hn?=
 =?utf-8?B?SVpZc3NXS3l0VFhnUk82UjNMWHplMEltNjF0eEZoZnZXdjNBblRDZm94UmdY?=
 =?utf-8?B?QVdSejBHdFF3RkdUcXB2Q2hXOE55cTMxaGVzSGRlamt5NnowcFF3ZUtNcmly?=
 =?utf-8?B?aE1DeVRLZmZaZURPekJMVkxQVkVwQVdnMHd6L01tRDk5QzJReW5TU3Bsb2JN?=
 =?utf-8?B?elpVcUpPOG5BPT0=?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB7PR08MB2987.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: <9DC720B0F9F0C340A69D8D98F48D308B@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR08MB9392
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AM3PEPF0000A796.eurprd04.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	6dbc0670-4a34-433f-8ed8-08dd7b67f65d
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|35042699022|14060799003|36860700013|82310400026|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?b1YwRnl1K0FmMGd5cEJIdVFlWXhmZ1J4eWkzRmd3SzBIMTNRMjF4K0dpTklG?=
 =?utf-8?B?YnlhVHIzOTNTNXJmRWZPWmVManNWOUtkeEY2bUdZTFNuVWNxUzg2YW5QdjZF?=
 =?utf-8?B?dGM2REJZTzFTcEttdHFJdWFVb3hsNDJwNkkwTFdWTHo0L3U5T0VpbDVxVE5s?=
 =?utf-8?B?QmUvMnpTTzAyYnFFR3pEZGhVRVloSHh4WDRqVHFPKzFyWkZ6VTIzb1Q4K2l0?=
 =?utf-8?B?Z0p2S3lFTXZ4NDJuSERpWUU3M3o5dHZsMmJxT01TODIrNWJsK1MwZ3dsVktF?=
 =?utf-8?B?ZnRVbXQzRXUvbGk4L3JQWkoyd05OSU5UY0l2dDdOL3ZCVVQ5RnBGeXFYajlR?=
 =?utf-8?B?WkxLdUtBa20xcW14Mmk3Vlg5Y0hUaEtnYnovK042NTRvb3V4T01ZbGJ2bVlD?=
 =?utf-8?B?R1d1R2p3V2RXdWsycEhqUlVEVFhSV0p5aGNERGFxY3VBWXJ5QmJuRmVudEVG?=
 =?utf-8?B?TmUrY1VEVnB0b21ETE5ERXkwWE4veDhMalBOUXpPcHlaQ21qUG9VOWNERkNK?=
 =?utf-8?B?U0Ftd3BpTENBUS9xVzFybmorZ091Tks1MnFtLzNEZkhWQ09taGg2WFJCemxh?=
 =?utf-8?B?UXExWmxZVTVRT0JnM203OEVDMWVYeU8yc1ZpLzhVajRpUy9iL0lRcWVOeStn?=
 =?utf-8?B?VytFVFlyUTB2WTFiYklSTnFScUExUFhQMEsyWStQZ2lWOXZuQjB4MnM5L2U3?=
 =?utf-8?B?WjZTN2lnTjZrNDRVakdxTEMxVTdCbkVWU3ZsR3dXYTlydXQxdi9pRUg1Mno3?=
 =?utf-8?B?Q0V1QmZPbVNRRFJpSmlaZ25YOS9lNDJYQXczSUwyRytjSmRxcFY2cEtldTRJ?=
 =?utf-8?B?VWMvWk9Jc25Mc2hWRUhQRHU0N1krdGNZajArL2t5M2pCdFpDQXFpS1RsMGEy?=
 =?utf-8?B?UXJJVDNBWXpmc3RpTlA3MS9WZExEcG1SWnVYZ2g0T3BIY0F6VWMzZHFkeEZo?=
 =?utf-8?B?K20zZk1lREFYLzdLZndtMXpvWEVDS1JQOE1zT1I1eXFTa2ptN3U4bjg5QzVh?=
 =?utf-8?B?b1MrOVY4QlY5UDlVR0ZMc2E4b09kdU50ZGN5K3RJbVJMT1lpaGpGL0Y4OERG?=
 =?utf-8?B?NUI3cUVQc0kyaEZaMmd5WlF0NnRxMmVMNDk5aWZUWTUvRi9RbkJYTzF5RWky?=
 =?utf-8?B?WnZPaTE3ekFkc2FmK1dnNVJ5dWp2TjY0ZG1hUm1lUkpBenQzcmQrZWRzZjJp?=
 =?utf-8?B?alFnY21CZmpmNWp2ejJLczZZS1V6RmpDdFBJTnZtbzNQbElRTStFUVFGc3pU?=
 =?utf-8?B?L0phUWpqREJBelJUWmUwM0dhT2w2V0tJMnZNK3dSOERTTy8vRVBnMmNPdzVz?=
 =?utf-8?B?ei9sMGpIb2NkNzR5RHJrcjBubUZqUllnRGdZOUd6RStGWVVmdGt1WFVvekY1?=
 =?utf-8?B?WW1Qb1pjU0diVE9wVjYvY2FyYkZETDg2UXUxNXg1eEh5bTBvbEE0elB6OVdJ?=
 =?utf-8?B?RjRoNDVIM0FEZXZYUkFiNmdwd0JXd1ZwQ3lvU3ZkdTRSSUF5RGVBL1ZDMkZN?=
 =?utf-8?B?UERBRDBSN25UdnIzTWtMNGExWjJzTUxGcnNiOTdwNy9TZFBZV0ExMFBwaFMz?=
 =?utf-8?B?MFdQSkVMNG9ZY1VlQ2ZhVTJRUTVaRUQ2Q1VocThQTEF4YlRaMDIxS3o5RnBJ?=
 =?utf-8?B?bDVNa2FRSEJRZ1VrNHYxZFZWMTludlVsYmtqb05hNllHRXo1YU1oR2lxZFBz?=
 =?utf-8?B?bE9TUGZxdDRFQ0RhRjNjdVhtUjE3Z3ROV25xUmY3dzhTeE9tYzNJdWRMNm1h?=
 =?utf-8?B?NEg0T1ppM3JveVI3NzhzS05XVFdWMTMxQjVTV2x2MzI2c1NsZUIwQkdjSnZa?=
 =?utf-8?B?RzVWRjdOd05ESWpLMXBNNDEwRVljR2VyR2ppTTR6M1E0REgwSXY2ZVVsZkM3?=
 =?utf-8?B?cys1ZllrL05Ebis3aFhmZ1NLYmZxSlZmVkRzSmR4T0pDc0MxZmVsYzRnVzBS?=
 =?utf-8?B?S05OOXBMek9YVEdEcXc3clZaVXlzWU00UzhSeG16TU1UbGoyaHVjSEhEYzJW?=
 =?utf-8?B?QWZUZGlxc01ndW5OSmhla2UxOTROMDFRaFJwNVNXTjFNUGdnZTlhOXpLbTF2?=
 =?utf-8?Q?zG9oPS?=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(376014)(35042699022)(14060799003)(36860700013)(82310400026)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Apr 2025 15:21:32.6033
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 7b68747b-ef36-48f7-2089-08dd7b6809bf
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AM3PEPF0000A796.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB8445

SGkgTWljaGFsLA0KDQo+IE9uIDE0IEFwciAyMDI1LCBhdCAxNjowMSwgT3J6ZWwsIE1pY2hhbCA8
TWljaGFsLk9yemVsQGFtZC5jb20+IHdyb3RlOg0KPiANCj4gDQo+IA0KPiBPbiAxNC8wNC8yMDI1
IDE2OjUwLCBMdWNhIEZhbmNlbGx1IHdyb3RlOg0KPj4gSGkgTWljaGFsLA0KPj4gDQo+Pj4gT24g
MTQgQXByIDIwMjUsIGF0IDExOjE3LCBPcnplbCwgTWljaGFsIDxtaWNoYWwub3J6ZWxAYW1kLmNv
bT4gd3JvdGU6DQo+Pj4gDQo+Pj4gDQo+Pj4gDQo+Pj4gT24gMTEvMDQvMjAyNSAxNjo1NiwgTHVj
YSBGYW5jZWxsdSB3cm90ZToNCj4+Pj4gRnJvbTogUGVubnkgWmhlbmcgPFBlbm55LlpoZW5nQGFy
bS5jb20+DQo+Pj4+IA0KPj4+PiBJbnRyb2R1Y2UgcHJfdCB0eXBlZGVmIHdoaWNoIGlzIGEgc3Ry
dWN0dXJlIGhhdmluZyB0aGUgcHJiYXINCj4+Pj4gYW5kIHBybGFyIG1lbWJlcnMsIGVhY2ggYmVp
bmcgc3RydWN0dXJlZCBhcyB0aGUgcmVnaXN0ZXJzIG9mDQo+Pj4+IHRoZSBhYXJjaDY0IGFybXY4
LXIgYXJjaGl0ZWN0dXJlLg0KPj4+PiANCj4+Pj4gSW50cm9kdWNlIHRoZSBhcnJheSAneGVuX21w
dW1hcCcgdGhhdCB3aWxsIHN0b3JlIGEgdmlldyBvZg0KPj4+PiB0aGUgY29udGVudCBvZiB0aGUg
TVBVIHJlZ2lvbnMuDQo+Pj4+IA0KPj4+PiBJbnRyb2R1Y2UgTUFYX01QVV9SRUdJT05TIG1hY3Jv
IHRoYXQgdXNlcyB0aGUgdmFsdWUgb2YNCj4+Pj4gTlVNX01QVV9SRUdJT05TX01BU0sganVzdCBm
b3IgY2xhcml0eSwgYmVjYXVzZSB1c2luZyB0aGUNCj4+Pj4gbGF0dGVyIGFzIG51bWJlciBvZiBl
bGVtZW50cyBvZiB0aGUgeGVuX21wdW1hcCBhcnJheSBtaWdodA0KPj4+PiBiZSBtaXNsZWFkaW5n
Lg0KPj4+IFdoYXQgc2hvdWxkIGJlIHRoZSBzaXplIG9mIHRoaXMgYXJyYXk/IEkgdGhvdWdodCBO
VU1fTVBVX1JFR0lPTlMgaW5kaWNhdGVzIGhvdw0KPj4+IG1hbnkgcmVnaW9ucyB0aGVyZSBjYW4g
YmUgKGkuZS4gMjU2KSBhbmQgdGhpcyBzaG91bGQgYmUgdGhlIHNpemUuIFlldCB5b3UgdXNlDQo+
Pj4gTUFTSyBmb3Igc2l6ZSB3aGljaCBpcyBvZGQuDQo+PiANCj4+IFNvIHRoZSBtYXhpbXVtIG51
bWJlciBvZiByZWdpb25zIGZvciBhYXJjaDY0IGFybXY4LXIgYXJlIDI1NSwgTVBVSVJfRUwyLlJF
R0lPTiBpcyBhbg0KPj4gOCBiaXQgZmllbGQgYWR2ZXJ0aXNpbmcgdGhlIG51bWJlciBvZiByZWdp
b24gc3VwcG9ydGVkLg0KPiBTbyB0aGVyZSBjYW4gYmUgbWF4IDI1NSByZWdpb25zLiBPay4NCj4g
DQo+PiANCj4+IElzIGl0IGJldHRlciBpZiBJIHVzZSBqdXN0IHRoZSBiZWxvdz8NCj4+IA0KPj4g
I2RlZmluZSBNQVhfTVBVX1JFR0lPTlMgMjU1DQo+IElmIHRoZXJlIGFyZSAyNTUgcmVnaW9ucywg
d2hhdCBOVU1fTVBVX1JFR0lPTlMgbWFjcm8gaXMgZm9yIHdoaWNoIHN0b3JlcyAyNTY/DQo+IFRo
ZXNlIHR3byBtYWNyb3MgY29uZnVzZSBtZS4gT3IgaXMgaXQgdGhhdCBieSB5b3VyIG1hY3JvIHlv
dSB3YW50IHRvIGRlbm90ZSB0aGUNCj4gbWF4IHJlZ2lvbiBudW1iZXI/IEluIHRoYXQgY2FzZSwg
dGhlIG1hY3JvIHNob3VsZCBiZSBuYW1lZCBNQVhfTVBVX1JFR0lPTl9OUiBvcg0KPiBhbGlrZS4N
Cg0KSSBrbm93LCBOVU1fTVBVX1JFR0lPTlMgc2hvdWxkIGhhdmUgYSBkaWZmZXJlbnQgbmFtZSBh
cyBpdOKAmXMgYSBiaXQgbWlzbGVhZGluZywgb2sNCknigJlsbCBuYW1lIHRoZSBtYWNybyBJIHVz
ZSBoZXJlIGFzIE1BWF9NUFVfUkVHSU9OX05SLg0KDQpDaGVlcnMsDQpMdWNhDQoNCg==


From xen-devel-bounces@lists.xenproject.org Mon Apr 14 15:24:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 15:24:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.950688.1346926 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4Lfn-0007OL-0o; Mon, 14 Apr 2025 15:24:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 950688.1346926; Mon, 14 Apr 2025 15:24: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 1u4Lfm-0007OE-UV; Mon, 14 Apr 2025 15:24:34 +0000
Received: by outflank-mailman (input) for mailman id 950688;
 Mon, 14 Apr 2025 15:24: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=ezPI=XA=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u4Lfm-0007O7-4g
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 15:24:34 +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 906d2c63-1944-11f0-9eae-5ba50f476ded;
 Mon, 14 Apr 2025 17:24:32 +0200 (CEST)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-43ce71582e9so36855525e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 14 Apr 2025 08:24:32 -0700 (PDT)
Received: from [10.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-39ed15caa5asm6250250f8f.20.2025.04.14.08.24.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 14 Apr 2025 08:24:31 -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: 906d2c63-1944-11f0-9eae-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744644271; x=1745249071; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=S2Bg57abRsYJnw7FLVHBRr+Ur9F4YGxcQQ1uE7JnfJ0=;
        b=SMSsQKnwxct9hbIaZVoPkLS0FvxwzurTPXYEo/qfyuyg1LLLKbgpzok5LehlPa9u2q
         YDg6rUXRIZRPwMb+T9OdgBlQgcoi/7MEDh2Ra/zhGZRaOK7drrI5rWVuFuPB0kryD9OQ
         dDoLszIfjmAG4lU6C5SsBWBLxYmiE+E+KAXxIcp/Mxpe7TmDSS4ia1JQrN3fR9h15v09
         0D8XJKh8pqY24oys6vSXhnM/x70jbFIMWTPB1yGYUBEJL4J9zIb+o0+/3B2tvVW0iMAQ
         EjOAJEXDG8tdxKdXiaoHrq4u/FxsGBZ2xZ38dK37HOqjG8MesQ2LM2j8ee8oBjTyvMlk
         bEIw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744644271; x=1745249071;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=S2Bg57abRsYJnw7FLVHBRr+Ur9F4YGxcQQ1uE7JnfJ0=;
        b=R1aL+Z/DBVcPgd9DPSQmXUV6PjLarNfEqgpm/8E/Z5OO4gEo56Btj/PHkFVup/Xna3
         ega3sxfRDhYV6w9MW+XRSCn8whNlPleHnumY3kysedp0vtytDzQnaYw9xAi2c5oB+iFB
         C0vEJhRIxwmLbi8pSTWuP6PR5W796YPTS3bcscxnv18O3XgKrJt5LsI8dxU0ryHDN/GU
         i+ZrloZxYeRbP2OI7wuQaepM384P5dYOa2U83IGieuXf63C+yxUYLxJ5wde/s0MlKsh+
         ChAtqHRNojJHjBKQhCUHtDLbQXP+YC0wO3K4QVZsQ4bPQxYrUAKsPPr2eM4kir4dNBYB
         8pcg==
X-Forwarded-Encrypted: i=1; AJvYcCXtRGmOsdInrCiKOYTQ7XPcysjXX8pMMO1Jip76LfdLG7iHSOzQd/LofHlQcgnhjaqzI1KIPo1OOgQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy5WwC2q4YRA/TfwAVTN0K9YzMD5LDLlrOMjLuRdQiWeRZECSmH
	s2tdlwgYX/URw5HF9OKil7GSl6dudexKc2N+0x5Vld58a9onaRcOE3wSDhz93g==
X-Gm-Gg: ASbGnctNhPJUpioHIIyXGBekeq8OhMEHrzuF/tR5EGKImq+b7REt0ArBvJQknlZZ1p5
	W3wlACkkjqzAffxjCuIZmgx1FQ+CFPuFmIo6YflFoC4V3TfyE4eMZgTbFhfiKtJFJHftONYNomK
	KbczKeC+GL54fWOnqjde4cKnLngQXEpZ1A9VLPeoUmpPo6XFKspMYihmRwqQkN8IvjcOCHrWfFI
	RocCfENRuiaDK5m/VCGJ+wv+2cp2XNpMF7AP8D1Khz/pWjmfpMvWq8cgA2rzXq3HEiNlE3Iub90
	m8AhkC9iY2hQsHpVeTNb7AvNBAamqm0Dr+qA7CtygXru8ZzoV2yiRVGBeob9PJhLVYCBOIF14UE
	p/UazJ9ZppiZYDtdnmwXkRcWXjA==
X-Google-Smtp-Source: AGHT+IHGNNnRRFsa3MEG48WM2YS+EYBQL0LoEEYP6G9+eICGq/tjEa3/6Q8cS/PYwxeIq7zSE/4OCg==
X-Received: by 2002:a05:600c:8705:b0:43d:97ea:2f4 with SMTP id 5b1f17b1804b1-43f3a93d9e7mr120840225e9.12.1744644271423;
        Mon, 14 Apr 2025 08:24:31 -0700 (PDT)
Message-ID: <c92d5665-0940-40b5-8cbb-81889adf40c5@suse.com>
Date: Mon, 14 Apr 2025 17:24:32 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 3/5] x86/hvm: fix handling of accesses to partial r/o MMIO
 pages
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: <20250411105411.22334-1-roger.pau@citrix.com>
 <20250411105411.22334-4-roger.pau@citrix.com>
 <eaf5f71b-2c56-4bd8-a45f-35280af16466@suse.com>
 <Z_0TXKMe6tfrYR9T@macbook.lan>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <Z_0TXKMe6tfrYR9T@macbook.lan>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 14.04.2025 15:53, Roger Pau Monné wrote:
> On Mon, Apr 14, 2025 at 08:33:44AM +0200, Jan Beulich wrote:
>> On 11.04.2025 12:54, Roger Pau Monne wrote:
>>> ---
>>>  xen/arch/x86/hvm/emulate.c             | 47 +-------------
>>>  xen/arch/x86/hvm/hvm.c                 | 89 +++++++++++++++++++++++---
>>
>> It's quite a bit of rather special code you add to this catch-all file. How
>> about introducing a small new one, e.g. mmio.c (to later maybe become home
>> to some further stuff)?
> 
> Yes, I didn't find any suitable place, I was also considering
> hvm/io.c or hvm/intercept.c, but none looked very good TBH.
> 
> The main benefit of placing it in hvm.c is that the functions can all
> be static and confined to hvm.c as it's only user.

I understand that. Still, if we went by that criteria, we'd best put all of
our code in a single file ;-)

>>> +static int cf_check subpage_mmio_write(
>>> +    struct vcpu *v, unsigned long addr, unsigned int len, unsigned long data)
>>> +{
>>> +    struct domain *d = v->domain;
>>> +    p2m_type_t t;
>>> +    mfn_t mfn = get_gfn_query(d, addr, &t);
>>> +
>>> +    if ( mfn_eq(mfn, INVALID_MFN) || t != p2m_mmio_direct )
>>> +    {
>>> +        put_gfn(d, addr);
>>> +        return X86EMUL_RETRY;
>>> +    }
>>> +
>>> +    subpage_mmio_write_emulate(mfn, PAGE_OFFSET(addr), data, len);
>>> +
>>> +    put_gfn(d, addr);
>>> +    return X86EMUL_OKAY;
>>> +}
>>
>> Unlike the read path this doesn't return RETRY when subpage_mmio_find_page()
>> fails (indicating something must have changed after "accept" said yes).
> 
> Yeah, I've noticed this, but didn't feel like modifying
> subpage_mmio_write_emulate() for this.  The list of partial r/o MMIO
> pages cannot change after system boot, so accept returning yes and not
> finding a page here would likely warrant an ASSERT_UNRECHABLE().
> 
> Would you like me to modify subpage_mmio_write_emulate to make it
> return an error code?

I'd be happy with the two paths being in sync in whichever way that's
achieved. The argument you give equally holds for the read path, after
all.

>>> @@ -1981,7 +2056,9 @@ int hvm_hap_nested_page_fault(paddr_t gpa, unsigned long gla,
>>>       */
>>>      if ( (p2mt == p2m_mmio_dm) ||
>>>           (npfec.write_access &&
>>> -          (p2m_is_discard_write(p2mt) || (p2mt == p2m_ioreq_server))) )
>>> +          (p2m_is_discard_write(p2mt) || (p2mt == p2m_ioreq_server) ||
>>> +           /* MMIO entries can be r/o if the target mfn is in mmio_ro_ranges. */
>>> +           (p2mt == p2m_mmio_direct))) )
>>>      {
>>>          if ( !handle_mmio_with_translation(gla, gfn, npfec) )
>>>              hvm_inject_hw_exception(X86_EXC_GP, 0);
>>
>> Aren't we handing too many things to handle_mmio_with_translation() this
>> way? At the very least you're losing ...
>>
>>> @@ -2033,14 +2110,6 @@ int hvm_hap_nested_page_fault(paddr_t gpa, unsigned long gla,
>>>          goto out_put_gfn;
>>>      }
>>>  
>>> -    if ( (p2mt == p2m_mmio_direct) && npfec.write_access && npfec.present &&
>>
>> ... the .present check.
> 
> Isn't the p2mt == p2m_mmio_direct check already ensuring the entry is
> present?  Otherwise it's type would be p2m_invalid or p2m_mmio_dm?

Yes (to the 1st question), it kind of is.

> It did seem to me the other checks in this function already assume
> that by having a valid type the entry is present.

Except for the code above, where we decided to play safe. AT the very least
if you drop such a check, please say a justifying word in the description.

>> I'm also concerned of e.g. VT-x'es APIC access MFN, which is
>> p2m_mmio_direct.
> 
> But that won't go into hvm_hap_nested_page_fault() when using
> cpu_has_vmx_virtualize_apic_accesses (and thus having an APIC page
> mapped as p2m_mmio_direct)?
> 
> It would instead be an EXIT_REASON_APIC_ACCESS vmexit which is handled
> differently?

All true as long as things work as expected (potentially including the guest
also behaving as expected). Also this was explicitly only an example I could
readily think of. I'm simply wary of handle_mmio_with_translation() now
getting things to handle it's not meant to ever see.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Apr 14 15:56:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 15:56:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.950712.1346951 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4MB0-0000Bb-6M; Mon, 14 Apr 2025 15:56:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 950712.1346951; Mon, 14 Apr 2025 15:56: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 1u4MB0-0000AW-2a; Mon, 14 Apr 2025 15:56:50 +0000
Received: by outflank-mailman (input) for mailman id 950712;
 Mon, 14 Apr 2025 15:56: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=YdIb=XA=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1u4MAy-0008KQ-OJ
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 15:56:48 +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 1217939f-1949-11f0-9eae-5ba50f476ded;
 Mon, 14 Apr 2025 17:56:47 +0200 (CEST)
Received: by mail-ed1-x532.google.com with SMTP id
 4fb4d7f45d1cf-5e5c7d6b96fso8327622a12.3
 for <xen-devel@lists.xenproject.org>; Mon, 14 Apr 2025 08:56:47 -0700 (PDT)
Received: from fedora.. (user-109-243-64-225.play-internet.pl.
 [109.243.64.225]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-acaa1cb4288sm951760866b.96.2025.04.14.08.56.45
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 14 Apr 2025 08:56: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: 1217939f-1949-11f0-9eae-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1744646207; x=1745251007; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=7xXk8n5tiuPiaJ2LAGcxcApCGF2bFVEp873eW1/6Bqs=;
        b=Cnpdu2GucD+Gxs61H7bNWvwsoA91HiQUXcsj8ZDxte8IVuykDnU+EhN+NdVYO1sPAY
         kbg48pwsP+W3vCoI0YFMa1MB66gbnhN89hmaciNqCSvU72FaKHZnYKHk5OsPreHb3Dm4
         dsZwWGGiBnAJHkqQxZbxyB7uF7jGz4gSjoExGb9a15pEthPivN8r9CbeiXeh0Z4AYvBa
         U5t/RvR8Wc0o2z38ydJfFyc30M6PXjyUdot+EcFTAe8bOaIMZ7fH+o9S54LkDfixp2BM
         9XfLJ1ol4StHzXzUmccl7AsLH4r4vEQmTse1+jcw2USEwavIPvUFqTsNcnL/0Q9VeTFx
         qb+w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744646207; x=1745251007;
        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=7xXk8n5tiuPiaJ2LAGcxcApCGF2bFVEp873eW1/6Bqs=;
        b=bfcCUp0rkQOutAxg34B5VRZo3+mHwRWl008uOSeE4Be9giaX8K9IOzSUKkJgPdAwgO
         CNc7F282/rnLcdktjmlfFdsHpDcd9EcIQdF4xSsX0fRHsyrY5fbQ/6MZ0WA8sh2xqg9I
         ESCLAmV99jDgl3lqJcaskvzqXXHDpEMN8miFlBOxO0fsdMzFHof7XwJGMizAPeWT/NGq
         BHS4TDbcSz6TLsGKMyQxcMGatGYU7y0XILtY4mQbxpGBPCe+O7XAjN7GtKkCHBP0oUH6
         lfhCfLM8nL9c9Ug87MNwdFhXQaCG6DFKs9Jy7YHBTiw/EQsFOaWs6pZUEOcAeC6/8BIo
         qN2g==
X-Gm-Message-State: AOJu0YwFDEMGkXFl5uebhoPOsbLl2VdYkWHYGpM/dlzXAmp4qGbTyqen
	aLFWTt68bhJPypvFT/nKFtK1Pe3J6KqgXepKMMxcl5trnukRAgcTPASKcg==
X-Gm-Gg: ASbGnct1EdXc1i08NvmNY3JElmIgcuBCWO2KROeCWpLEbQBeUuVlzH637kwKlBnc0Wx
	XiYEJ2nY2lflveB+AHsqLdr0HSSHrqdsxJMlPAFv3piUUiGilLx01x95rY4Hwo5PtWsZSuugwn0
	d/4OM/L6fLwRwmICiuRdfhRmTrI6wiRin2NC1kMN/RB8LgP7pnUPPvspVuA+PV2NNWKNaNO2zGn
	9MOalfRhySz7spLggS0bgG7jth7A/Us7u2ZmRf25KrKuETSOIGBBXNh/vi3/NZOeuQx78fxLG9k
	G5igxbPyN5eW2ipbfy8pi/24WjxWpEkrxrbOvyAgxzuSqYAppICf2JZmHJJ6jgdqkKQTOD86opm
	SuKHThvb8mngMGjYpITpK
X-Google-Smtp-Source: AGHT+IFouBH0yq3agxvOsTISd3+AK5jSrx3hH9W+fwnU0fTwrzZR3ITlBYr5zXc9VWJoi9nJ5X6fPA==
X-Received: by 2002:a17:906:dc94:b0:ac7:3a23:569c with SMTP id a640c23a62f3a-acad34468e4mr1329138866b.1.1744646206456;
        Mon, 14 Apr 2025 08:56:46 -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>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v2 2/8] xen/common: dom0less: make some parts of Arm's CONFIG_DOM0LESS common
Date: Mon, 14 Apr 2025 17:56:35 +0200
Message-ID: <c31977cb20be408ac695ec44edaa6e058e6ec10f.1744626032.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <cover.1744626032.git.oleksii.kurochko@gmail.com>
References: <cover.1744626032.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Move some parts of Arm's Dom0Less code to be reused by other architectures.
At the moment, RISC-V is going to reuse these parts.

Move dom0less-build.h from the Arm-specific directory to asm-generic
as these header is expected to be the same across acrhictectures with
some updates: add the following declaration of construct_domU(),
arch_xen_domctl_createdomain() and arch_create_domus() as there are
some parts which are still architecture-specific.

Introduce HAS_DOM0LESS to provide ability to enable generic Dom0less
code for an architecture.

Relocate the CONFIG_DOM0LESS configuration to the common with adding
"depends on HAS_DOM0LESS" to not break builds for architectures which
don't support CONFIG_DOM0LESS config, especically it would be useful
to not provide stubs for  construct_domU(), arch_xen_domctl_createdomain()
and arch_create_domus() in case of *-randconfig which may set
CONFIG_DOM0LESS=y.

Move is_dom0less_mode() function to the common code, as it depends on
boot modules that are already part of the common code.

Move create_domUs() function to the common code with some updates:
- Add function arch_xen_domctl_createdomain() as structure
  xen_domctl_createdomain may have some arch-spicific information and
  initialization.
- Add arch_create_domus() to cover parsing of arch-specific features,
  for example, SVE (Scalar Vector Extension ) exists only in Arm.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in v2:
 - Convert 'depends on Arm' to 'depends on HAS_DOM0LESS' for
   CONFIG_DOM0LESS_BOOT.
 - Change 'default Arm' to 'default y' for CONFIG_DOM0LESS_BOOT as there is
   dependency on HAS_DOM0LESS.
 - Introduce HAS_DOM0LESS and enable it for Arm.
 - Update the commit message.
---
 xen/arch/arm/Kconfig                      |   9 +-
 xen/arch/arm/dom0less-build.c             | 270 ++++++----------------
 xen/arch/arm/include/asm/Makefile         |   1 +
 xen/arch/arm/include/asm/dom0less-build.h |  32 ---
 xen/common/Kconfig                        |  12 +
 xen/common/device-tree/Makefile           |   1 +
 xen/common/device-tree/dom0less-build.c   | 161 +++++++++++++
 xen/include/asm-generic/dom0less-build.h  |  40 ++++
 8 files changed, 287 insertions(+), 239 deletions(-)
 delete mode 100644 xen/arch/arm/include/asm/dom0less-build.h
 create mode 100644 xen/common/device-tree/dom0less-build.c
 create mode 100644 xen/include/asm-generic/dom0less-build.h

diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
index 565f288331..060389c3c8 100644
--- a/xen/arch/arm/Kconfig
+++ b/xen/arch/arm/Kconfig
@@ -15,6 +15,7 @@ config ARM
 	select GENERIC_UART_INIT
 	select HAS_ALTERNATIVE if HAS_VMAP
 	select HAS_DEVICE_TREE
+	select HAS_DOM0LESS
 	select HAS_UBSAN
 
 config ARCH_DEFCONFIG
@@ -119,14 +120,6 @@ config GICV2
 	  Driver for the ARM Generic Interrupt Controller v2.
 	  If unsure, say Y
 
-config DOM0LESS_BOOT
-	bool "Dom0less boot support" if EXPERT
-	default y
-	help
-	  Dom0less boot support enables Xen to create and start domU guests during
-	  Xen boot without the need of a control domain (Dom0), which could be
-	  present anyway.
-
 config GICV3
 	bool "GICv3 driver"
 	depends on !NEW_VGIC
diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
index bd15563750..7ec3f85795 100644
--- a/xen/arch/arm/dom0less-build.c
+++ b/xen/arch/arm/dom0less-build.c
@@ -20,38 +20,6 @@
 #include <asm/static-memory.h>
 #include <asm/static-shmem.h>
 
-bool __init is_dom0less_mode(void)
-{
-    struct bootmodules *mods = &bootinfo.modules;
-    struct bootmodule *mod;
-    unsigned int i;
-    bool dom0found = false;
-    bool domUfound = false;
-
-    /* Look into the bootmodules */
-    for ( i = 0 ; i < mods->nr_mods ; i++ )
-    {
-        mod = &mods->module[i];
-        /* Find if dom0 and domU kernels are present */
-        if ( mod->kind == BOOTMOD_KERNEL )
-        {
-            if ( mod->domU == false )
-            {
-                dom0found = true;
-                break;
-            }
-            else
-                domUfound = true;
-        }
-    }
-
-    /*
-     * If there is no dom0 kernel but at least one domU, then we are in
-     * dom0less mode
-     */
-    return ( !dom0found && domUfound );
-}
-
 #ifdef CONFIG_VGICV2
 static int __init make_gicv2_domU_node(struct kernel_info *kinfo)
 {
@@ -869,8 +837,8 @@ static inline int domain_p2m_set_allocation(struct domain *d, uint64_t mem,
 }
 #endif /* CONFIG_ARCH_PAGING_MEMPOOL */
 
-static int __init construct_domU(struct domain *d,
-                                 const struct dt_device_node *node)
+int __init construct_domU(struct domain *d,
+                          const struct dt_device_node *node)
 {
     struct kernel_info kinfo = KERNEL_INFO_INIT;
     const char *dom0less_enhanced;
@@ -965,188 +933,92 @@ static int __init construct_domU(struct domain *d,
     return alloc_xenstore_params(&kinfo);
 }
 
-void __init create_domUs(void)
-{
-    struct dt_device_node *node;
-    const char *dom0less_iommu;
-    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)
-    {
-        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,
-            /*
-             * The default of 1023 should be sufficient for guests because
-             * on ARM we don't bind physical interrupts to event channels.
-             * The only use of the evtchn port is inter-domain communications.
-             * 1023 is also the default value used in libxl.
-             */
-            .max_evtchn_port = 1023,
-            .max_grant_frames = -1,
-            .max_maptrack_frames = -1,
-            .grant_opts = XEN_DOMCTL_GRANT_version(opt_gnttab_max_version),
-        };
-        unsigned int flags = 0U;
-        uint32_t val;
-        int rc;
-
-        if ( !dt_device_is_compatible(node, "xen,domain") )
-            continue;
-
-        if ( (max_init_domid + 1) >= DOMID_FIRST_RESERVED )
-            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") )
-        {
-            if ( !(flags & CDF_staticmem) )
-                panic("direct-map is not valid for domain %s without static allocation.\n",
-                      dt_node_name(node));
-
-            flags |= CDF_directmap;
-        }
 
-        if ( !dt_property_read_u32(node, "cpus", &d_cfg.max_vcpus) )
-            panic("Missing property 'cpus' for domain %s\n",
-                  dt_node_name(node));
-
-        if ( !dt_property_read_string(node, "passthrough", &dom0less_iommu) &&
-             !strcmp(dom0less_iommu, "enabled") )
-            iommu = true;
+struct xen_domctl_createdomain __init arch_xen_domctl_createdomain(void)
+{
+    struct xen_domctl_createdomain d_cfg = {
+        .arch.gic_version = XEN_DOMCTL_CONFIG_GIC_NATIVE,
+        .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.
+            * The only use of the evtchn port is inter-domain communications.
+            * 1023 is also the default value used in libxl.
+            */
+        .max_evtchn_port = 1023,
+        .max_grant_frames = -1,
+        .max_maptrack_frames = -1,
+        .grant_opts = XEN_DOMCTL_GRANT_version(opt_gnttab_max_version),
+    };
+
+    return d_cfg;
+}
 
-        if ( iommu_enabled &&
-             (iommu || dt_find_compatible_node(node, NULL,
-                                               "multiboot,device-tree")) )
-            d_cfg.flags |= XEN_DOMCTL_CDF_iommu;
+void __init arch_create_domus(struct dt_device_node *node,
+                       struct xen_domctl_createdomain *d_cfg,
+                       unsigned int flags)
+{
+    uint32_t val;
 
-        if ( !dt_property_read_u32(node, "nr_spis", &d_cfg.arch.nr_spis) )
-        {
-            int vpl011_virq = GUEST_VPL011_SPI;
-
-            d_cfg.arch.nr_spis = VGIC_DEF_NR_SPIS;
-
-            /*
-             * The VPL011 virq is GUEST_VPL011_SPI, unless direct-map is
-             * set, in which case it'll match the hardware.
-             *
-             * Since the domain is not yet created, we can't use
-             * d->arch.vpl011.irq. So the logic to find the vIRQ has to
-             * be hardcoded.
-             * The logic here shall be consistent with the one in
-             * domain_vpl011_init().
-             */
-            if ( flags & CDF_directmap )
-            {
-                vpl011_virq = serial_irq(SERHND_DTUART);
-                if ( vpl011_virq < 0 )
-                    panic("Error getting IRQ number for this serial port %d\n",
-                          SERHND_DTUART);
-            }
+    if ( !dt_property_read_u32(node, "nr_spis", &d_cfg->arch.nr_spis) )
+    {
+        int vpl011_virq = GUEST_VPL011_SPI;
 
-            /*
-             * vpl011 uses one emulated SPI. If vpl011 is requested, make
-             * sure that we allocate enough SPIs for it.
-             */
-            if ( dt_property_read_bool(node, "vpl011") )
-                d_cfg.arch.nr_spis = MAX(d_cfg.arch.nr_spis,
-                                         vpl011_virq - 32 + 1);
-        }
+        d_cfg->arch.nr_spis = VGIC_DEF_NR_SPIS;
 
-        /* Get the optional property domain-cpupool */
-        cpupool_node = dt_parse_phandle(node, "domain-cpupool", 0);
-        if ( cpupool_node )
+        /*
+         * The VPL011 virq is GUEST_VPL011_SPI, unless direct-map is
+         * set, in which case it'll match the hardware.
+         *
+         * Since the domain is not yet created, we can't use
+         * d->arch.vpl011.irq. So the logic to find the vIRQ has to
+         * be hardcoded.
+         * The logic here shall be consistent with the one in
+         * domain_vpl011_init().
+         */
+        if ( flags & CDF_directmap )
         {
-            int pool_id = btcpupools_get_domain_pool_id(cpupool_node);
-            if ( pool_id < 0 )
-                panic("Error getting cpupool id from domain-cpupool (%d)\n",
-                      pool_id);
-            d_cfg.cpupool_id = pool_id;
+            vpl011_virq = serial_irq(SERHND_DTUART);
+            if ( vpl011_virq < 0 )
+                panic("Error getting IRQ number for this serial port %d\n",
+                        SERHND_DTUART);
         }
 
-        if ( dt_property_read_u32(node, "max_grant_version", &val) )
-            d_cfg.grant_opts = XEN_DOMCTL_GRANT_version(val);
+        /*
+         * vpl011 uses one emulated SPI. If vpl011 is requested, make
+         * sure that we allocate enough SPIs for it.
+         */
+        if ( dt_property_read_bool(node, "vpl011") )
+            d_cfg->arch.nr_spis = MAX(d_cfg->arch.nr_spis,
+                                      vpl011_virq - 32 + 1);
+    }
 
-        if ( dt_property_read_u32(node, "max_grant_frames", &val) )
-        {
-            if ( val > INT32_MAX )
-                panic("max_grant_frames (%"PRIu32") overflow\n", val);
-            d_cfg.max_grant_frames = val;
-        }
+    if ( dt_get_property(node, "sve", &val) )
+    {
+#ifdef CONFIG_ARM64_SVE
+        unsigned int sve_vl_bits;
+        bool ret = false;
 
-        if ( dt_property_read_u32(node, "max_maptrack_frames", &val) )
+        if ( !val )
         {
-            if ( val > INT32_MAX )
-                panic("max_maptrack_frames (%"PRIu32") overflow\n", val);
-            d_cfg.max_maptrack_frames = val;
+            /* Property found with no value, means max HW VL supported */
+            ret = sve_domctl_vl_param(-1, &sve_vl_bits);
         }
-
-        if ( dt_get_property(node, "sve", &val) )
+        else
         {
-#ifdef CONFIG_ARM64_SVE
-            unsigned int sve_vl_bits;
-            bool ret = false;
-
-            if ( !val )
-            {
-                /* Property found with no value, means max HW VL supported */
-                ret = sve_domctl_vl_param(-1, &sve_vl_bits);
-            }
+            if ( dt_property_read_u32(node, "sve", &val) )
+                ret = sve_domctl_vl_param(val, &sve_vl_bits);
             else
-            {
-                if ( dt_property_read_u32(node, "sve", &val) )
-                    ret = sve_domctl_vl_param(val, &sve_vl_bits);
-                else
-                    panic("Error reading 'sve' property\n");
-            }
+                panic("Error reading 'sve' property\n");
+        }
 
-            if ( ret )
-                d_cfg.arch.sve_vl = sve_encode_vl(sve_vl_bits);
-            else
-                panic("SVE vector length error\n");
+        if ( ret )
+            d_cfg->arch.sve_vl = sve_encode_vl(sve_vl_bits);
+        else
+            panic("SVE vector length error\n");
 #else
-            panic("'sve' property found, but CONFIG_ARM64_SVE not selected\n");
+        panic("'sve' property found, but CONFIG_ARM64_SVE not selected\n");
 #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
-         * domain_create() with a domid > 0. (domid == 0 is reserved for Dom0)
-         */
-        d = domain_create(++max_init_domid, &d_cfg, flags);
-        if ( IS_ERR(d) )
-            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);
-
-        rc = construct_domU(d, node);
-        if ( rc )
-            panic("Could not set up domain %s (rc = %d)\n",
-                  dt_node_name(node), rc);
     }
 }
 
diff --git a/xen/arch/arm/include/asm/Makefile b/xen/arch/arm/include/asm/Makefile
index 4a4036c951..831c914cce 100644
--- a/xen/arch/arm/include/asm/Makefile
+++ b/xen/arch/arm/include/asm/Makefile
@@ -1,6 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0-only
 generic-y += altp2m.h
 generic-y += device.h
+generic-y += dom0less-build.h
 generic-y += hardirq.h
 generic-y += iocap.h
 generic-y += paging.h
diff --git a/xen/arch/arm/include/asm/dom0less-build.h b/xen/arch/arm/include/asm/dom0less-build.h
deleted file mode 100644
index 5864944bda..0000000000
--- a/xen/arch/arm/include/asm/dom0less-build.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-only */
-
-#ifndef __ASM_DOM0LESS_BUILD_H_
-#define __ASM_DOM0LESS_BUILD_H_
-
-#include <xen/stdbool.h>
-
-#ifdef CONFIG_DOM0LESS_BOOT
-
-void create_domUs(void);
-bool is_dom0less_mode(void);
-
-#else /* !CONFIG_DOM0LESS_BOOT */
-
-static inline void create_domUs(void) {}
-static inline bool is_dom0less_mode(void)
-{
-    return false;
-}
-
-#endif /* CONFIG_DOM0LESS_BOOT */
-
-#endif /* __ASM_DOM0LESS_BUILD_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 06ae9751aa..2fd79aea5b 100644
--- a/xen/common/Kconfig
+++ b/xen/common/Kconfig
@@ -12,6 +12,15 @@ config CORE_PARKING
 	bool
 	depends on NR_CPUS > 1
 
+config DOM0LESS_BOOT
+	bool "Dom0less boot support" if EXPERT
+	depends on HAS_DOM0LESS
+	default y
+	help
+	  Dom0less boot support enables Xen to create and start domU guests during
+	  Xen boot without the need of a control domain (Dom0), which could be
+	  present anyway.
+
 config GRANT_TABLE
 	bool "Grant table support" if EXPERT
 	default y
@@ -73,6 +82,9 @@ config HAS_COMPAT
 config HAS_DEVICE_TREE
 	bool
 
+config HAS_DOM0LESS
+	bool
+
 config HAS_DIT # Data Independent Timing
 	bool
 
diff --git a/xen/common/device-tree/Makefile b/xen/common/device-tree/Makefile
index 7c549be38a..f3dafc9b81 100644
--- a/xen/common/device-tree/Makefile
+++ b/xen/common/device-tree/Makefile
@@ -1,5 +1,6 @@
 obj-y += bootfdt.init.o
 obj-y += bootinfo.init.o
 obj-y += device-tree.o
+obj-$(CONFIG_DOM0LESS_BOOT) += dom0less-build.o
 obj-$(CONFIG_OVERLAY_DTB) += dt-overlay.o
 obj-y += intc.o
diff --git a/xen/common/device-tree/dom0less-build.c b/xen/common/device-tree/dom0less-build.c
new file mode 100644
index 0000000000..19bfa5e005
--- /dev/null
+++ b/xen/common/device-tree/dom0less-build.c
@@ -0,0 +1,161 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+#include <xen/bootfdt.h>
+#include <xen/device_tree.h>
+#include <xen/domain.h>
+#include <xen/err.h>
+#include <xen/init.h>
+#include <xen/iommu.h>
+#include <xen/llc-coloring.h>
+#include <xen/sched.h>
+#include <xen/stdbool.h>
+#include <xen/types.h>
+
+#include <public/domctl.h>
+
+#include <asm/dom0less-build.h>
+#include <asm/setup.h>
+
+bool __init is_dom0less_mode(void)
+{
+    struct bootmodules *mods = &bootinfo.modules;
+    struct bootmodule *mod;
+    unsigned int i;
+    bool dom0found = false;
+    bool domUfound = false;
+
+    /* Look into the bootmodules */
+    for ( i = 0 ; i < mods->nr_mods ; i++ )
+    {
+        mod = &mods->module[i];
+        /* Find if dom0 and domU kernels are present */
+        if ( mod->kind == BOOTMOD_KERNEL )
+        {
+            if ( mod->domU == false )
+            {
+                dom0found = true;
+                break;
+            }
+            else
+                domUfound = true;
+        }
+    }
+
+    /*
+     * If there is no dom0 kernel but at least one domU, then we are in
+     * dom0less mode
+     */
+    return ( !dom0found && domUfound );
+}
+
+void __init create_domUs(void)
+{
+    struct dt_device_node *node;
+    const char *dom0less_iommu;
+    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)
+    {
+        struct domain *d;
+        struct xen_domctl_createdomain d_cfg = arch_xen_domctl_createdomain();
+        unsigned int flags = 0U;
+        uint32_t val;
+        int rc;
+
+        if ( !dt_device_is_compatible(node, "xen,domain") )
+            continue;
+
+        if ( (max_init_domid + 1) >= DOMID_FIRST_RESERVED )
+            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") )
+        {
+            if ( !(flags & CDF_staticmem) )
+                panic("direct-map is not valid for domain %s without static allocation.\n",
+                      dt_node_name(node));
+
+            flags |= CDF_directmap;
+        }
+
+        if ( !dt_property_read_u32(node, "cpus", &d_cfg.max_vcpus) )
+            panic("Missing property 'cpus' for domain %s\n",
+                  dt_node_name(node));
+
+        if ( !dt_property_read_string(node, "passthrough", &dom0less_iommu) &&
+             !strcmp(dom0less_iommu, "enabled") )
+            iommu = true;
+
+        if ( iommu_enabled &&
+             (iommu || dt_find_compatible_node(node, NULL,
+                                               "multiboot,device-tree")) )
+            d_cfg.flags |= XEN_DOMCTL_CDF_iommu;
+
+        /* Get the optional property domain-cpupool */
+        cpupool_node = dt_parse_phandle(node, "domain-cpupool", 0);
+        if ( cpupool_node )
+        {
+            int pool_id = btcpupools_get_domain_pool_id(cpupool_node);
+            if ( pool_id < 0 )
+                panic("Error getting cpupool id from domain-cpupool (%d)\n",
+                      pool_id);
+            d_cfg.cpupool_id = pool_id;
+        }
+
+        if ( dt_property_read_u32(node, "max_grant_version", &val) )
+            d_cfg.grant_opts = XEN_DOMCTL_GRANT_version(val);
+
+        if ( dt_property_read_u32(node, "max_grant_frames", &val) )
+        {
+            if ( val > INT32_MAX )
+                panic("max_grant_frames (%"PRIu32") overflow\n", val);
+            d_cfg.max_grant_frames = val;
+        }
+
+        if ( dt_property_read_u32(node, "max_maptrack_frames", &val) )
+        {
+            if ( val > INT32_MAX )
+                panic("max_maptrack_frames (%"PRIu32") overflow\n", val);
+            d_cfg.max_maptrack_frames = val;
+        }
+
+        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");
+
+        arch_create_domus(node, &d_cfg, flags);
+
+        /*
+         * The variable max_init_domid is initialized with zero, so here it's
+         * very important to use the pre-increment operator to call
+         * domain_create() with a domid > 0. (domid == 0 is reserved for Dom0)
+         */
+        d = domain_create(++max_init_domid, &d_cfg, flags);
+        if ( IS_ERR(d) )
+            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);
+
+        rc = construct_domU(d, node);
+        if ( rc )
+            panic("Could not set up domain %s (rc = %d)\n",
+                  dt_node_name(node), rc);
+    }
+}
diff --git a/xen/include/asm-generic/dom0less-build.h b/xen/include/asm-generic/dom0less-build.h
new file mode 100644
index 0000000000..a6985bc20a
--- /dev/null
+++ b/xen/include/asm-generic/dom0less-build.h
@@ -0,0 +1,40 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+#ifndef __ASM_GENERIC_DOM0LESS_BUILD_H__
+#define __ASM_GENERIC_DOM0LESS_BUILD_H__
+
+#include <xen/stdbool.h>
+
+#ifdef CONFIG_DOM0LESS_BOOT
+
+#include <public/domctl.h>
+
+void create_domUs(void);
+bool is_dom0less_mode(void);
+
+int construct_domU(struct domain *d, const struct dt_device_node *node);
+
+struct xen_domctl_createdomain arch_xen_domctl_createdomain(void);
+void arch_create_domus(struct dt_device_node *node,
+                       struct xen_domctl_createdomain *d_cfg,
+                       unsigned int flags);
+
+#else /* !CONFIG_DOM0LESS_BOOT */
+
+static inline void create_domUs(void) {}
+static inline bool is_dom0less_mode(void)
+{
+    return false;
+}
+
+#endif /* CONFIG_DOM0LESS_BOOT */
+
+#endif /* __ASM_GENERIC_DOM0LESS_BUILD_H__ */
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Mon Apr 14 15:56:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 15:56:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.950710.1346937 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4MAy-0008LR-KZ; Mon, 14 Apr 2025 15:56:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 950710.1346937; Mon, 14 Apr 2025 15: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 1u4MAy-0008LJ-Gf; Mon, 14 Apr 2025 15:56:48 +0000
Received: by outflank-mailman (input) for mailman id 950710;
 Mon, 14 Apr 2025 15: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=YdIb=XA=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1u4MAx-0008KQ-7D
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 15:56:47 +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 111d7fc9-1949-11f0-9eae-5ba50f476ded;
 Mon, 14 Apr 2025 17:56:46 +0200 (CEST)
Received: by mail-ed1-x534.google.com with SMTP id
 4fb4d7f45d1cf-5e673822f76so8014363a12.2
 for <xen-devel@lists.xenproject.org>; Mon, 14 Apr 2025 08:56:46 -0700 (PDT)
Received: from fedora.. (user-109-243-64-225.play-internet.pl.
 [109.243.64.225]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-acaa1cb4288sm951760866b.96.2025.04.14.08.56.43
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 14 Apr 2025 08:56:44 -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: 111d7fc9-1949-11f0-9eae-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1744646205; x=1745251005; 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=ETiBESeGTm9MUdoy0xDORs08NZ0Zq11I/D1ugx1sF7I=;
        b=WhEktMqOZ+08kHy6I2V7/vOOtaswUKIH8ogrF2v1uRZWd5b9MJFD1P49sJw5akaJyT
         nku9+6spqxNqjKvbD1QdhCjibfSCuvX7LFtmj3vzVHyvcidIFRTAoKh955tPYRNGGWKe
         zf0k7TSPGAevucCump5SVux3cmHseerF/6xqkxofUGqT7N44QLnbkB+QzZj+b+cRUFSc
         1tmeKD3E+j8PVsJzjyvnMwxd+gj/7PEI7JmbGwRAoaDNf3i2KbOI8jBuLrrIJuGQ3ofu
         2ZCGZUQygKnnLaxu6HRg39FYrI3/fUjGTOGYYk0M8yEJgUh0vqJ+nmvHbfrbIQ9oyT1B
         txFw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744646205; x=1745251005;
        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=ETiBESeGTm9MUdoy0xDORs08NZ0Zq11I/D1ugx1sF7I=;
        b=LJ3ov+aZ25DTAodLCBIef8WdN5ZTLp1h02Iip+PU+ATI4VCbiGcUqbruFf74Fb2DYS
         hgWt9IojVrCwT+1NzFAUzFZ7DvPK5aBfeBmbxpdPi8Tq9RAbeLF2YN/TQhy1B5ocRxa5
         KfojIvdEyP0Iv5kTUr+dZS8Z27BADgXk3ioWFA/VX7gHQD0pm2WgMFHccuHaGC08qfZX
         cQL6h/Zf6Cs9mTGxNdHJRhhhthqHmXFaTdlv6s01NnV9X3yIYI8+vbI5i8aGpQGGJ392
         HwvkftrH2pazzphAzpQUyAJ+m5uW+pBi2ae3IKvc2TTyueW9f8CXXkEVAjvFDhwQ+Jak
         W1VQ==
X-Gm-Message-State: AOJu0YxnCV3MoLxAEik8ztMNwyg0NFmZIjOR+hUFnTZugDWwG/U0zrCM
	a+vjX595Z7WzBZFW9t3Y2wIZwueHsMrCOOXu84JuyvUs5Skwe2iWRiFFeA==
X-Gm-Gg: ASbGncsXTa/CckuRJfX6/b9vqLuckLEiaRySZdfXDy4eKjGR7eg3j7lbd/Zd3ahPJbf
	Hhxm/GmuwfuS3REuzSc14ZZsvwHOnfi4MzXAB2ast59pQWb+m5uFYUBz8Gf06FHgfXk4JWhJCjQ
	AG4gYJ8IPVZ3500+WhJ4w/7h7NEL4CCFirWPeiviYh8LnVhs2Zt/uzddTwYYMIyvgxUK7EJn6BW
	5iPDAZDw8l9yQwGhINjGLpQpHqRCdh980arH6DGbR9067CJKLs5dKCEoWkD86QrFwt40uX/xPdU
	zyi3mbyBCqDFnMVa1RlnIiDIAWLKrDL5QM62U7ohqYoUJHGz+G5SqgnB3smKngRR91qZEJ9Q7G+
	8TPGjdCD65A==
X-Google-Smtp-Source: AGHT+IF0Yt+nkgx1DVu+uyWPjoIuk+yCuVg7IQ6FA/R9Q0gOPVz98OXPdpRBseNZ2ewszrQZyw4vDQ==
X-Received: by 2002:a17:907:944e:b0:ac7:efee:d256 with SMTP id a640c23a62f3a-acad36d08a5mr1066659566b.59.1744646204825;
        Mon, 14 Apr 2025 08:56:44 -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>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v2 0/8] Move parts of Arm's Dom0less to common code
Date: Mon, 14 Apr 2025 17:56:33 +0200
Message-ID: <cover.1744626032.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.49.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Some parts of Arm's Dom0less solution could be moved to common code as they are
not truly Arm-specific.

Most of the code is moved as is, with only minor changes introduced to provide
abstractions that hide Arm-specific details, while maintaining functional
equivalence with original Arm's code.

There are several open questions:
1. Probably, the introduced headers currently placed in asm-generic should
   instead reside in the xen/include folder.
2. Perhaps the introduced *.c files should always be placed elsewhere. They
   have been put in device-tree common as they somewhat depend on device tree
   functionality.
3. The u64 and u32 types are widely used in the code where device tree
   functionality is implemented because these types are used in device tree
   function arguments.
   Should this be reworked to use uint32_t and uint64_t instead? If so, will it
   also be necessary to change the type of variables passed to dt-related
   functions, or should the argument types of device tree functions be updated
   too? For example:
   ```
    u64 mem;
    ...
    rc = dt_property_read_u64(node, "memory", &mem);
   ```
   where dt_property_read_u64 is declared as:
     bool dt_property_read_u64(... , u64 *out_value);
4. Instead of providing init_intc_phandle() (see the patch: [1]), perhaps it
   would be better to add a for loop in domain_handle_dtb_bootmodule()?
   Something like:
   ```
    bool is_intc_phandle_inited = false;
    for ( unsigned int i = 0; i < ARRAY_SIZE(intc_names_array); i++ )
    {
        if ( dt_node_cmp(name, intc_names_array[i]) == 0 )
        {
            uint32_t phandle_intc = fdt_get_phandle(pfdt, node_next);

            if ( phandle_intc != 0 )
                kinfo->phandle_intc = phandle_intc;

            is_intc_phandle_inited = true;
            break;
        }
    }

    if ( is_intc_phandle_inited ) continue;
  ```

[1]] [PATCH v1 9/9] xen/common: dom0less: introduce common dom0less-build.c

---
Changes in v2:
- Update cover letter message.
- Rebase on top of the current staging.
- Drop patches:
   - asm-generic: move Arm's static-memory.h to asm-generic
   - asm-generic: move Arm's static-shmem.h to asm-generic
  as in the nearest future there is no real users of STATIC_MEMORY and
  STATIC_SHMEM.
- Add new cleanup patch:
  [PATCH v2 1/8] xen/arm: drop declaration of handle_device_interrupts()
- All other changes are patch specific. Please check them seprately for each
  patch
---

Oleksii Kurochko (8):
  xen/arm: drop declaration of handle_device_interrupts()
  xen/common: dom0less: make some parts of Arm's CONFIG_DOM0LESS common
  asm-generic: move parts of Arm's asm/kernel.h to common code
  arm/static-shmem.h: drop inclusion of asm/setup.h
  asm-generic: move some parts of Arm's domain_build.h to common
  xen/common: dom0less: introduce common kernel.c
  xen/common: dom0less: introduce common domain-build.c
  xen/common: dom0less: introduce common dom0less-build.c

 xen/arch/arm/Kconfig                      |  10 +-
 xen/arch/arm/acpi/domain_build.c          |   4 +-
 xen/arch/arm/dom0less-build.c             | 997 +++-------------------
 xen/arch/arm/domain_build.c               | 411 +--------
 xen/arch/arm/include/asm/Makefile         |   1 +
 xen/arch/arm/include/asm/dom0less-build.h |  32 -
 xen/arch/arm/include/asm/domain_build.h   |  31 +-
 xen/arch/arm/include/asm/kernel.h         | 126 +--
 xen/arch/arm/include/asm/static-memory.h  |   2 +-
 xen/arch/arm/include/asm/static-shmem.h   |   2 +-
 xen/arch/arm/kernel.c                     | 234 +----
 xen/arch/arm/static-memory.c              |   1 +
 xen/arch/arm/static-shmem.c               |   3 +-
 xen/common/Kconfig                        |  19 +
 xen/common/device-tree/Makefile           |   3 +
 xen/common/device-tree/dom0less-build.c   | 891 +++++++++++++++++++
 xen/common/device-tree/domain-build.c     | 404 +++++++++
 xen/common/device-tree/dt-overlay.c       |   4 +-
 xen/common/device-tree/kernel.c           | 242 ++++++
 xen/include/asm-generic/dom0less-build.h  |  82 ++
 xen/include/xen/fdt-domain-build.h        |  77 ++
 xen/include/xen/fdt-kernel.h              | 146 ++++
 22 files changed, 2013 insertions(+), 1709 deletions(-)
 delete mode 100644 xen/arch/arm/include/asm/dom0less-build.h
 create mode 100644 xen/common/device-tree/dom0less-build.c
 create mode 100644 xen/common/device-tree/domain-build.c
 create mode 100644 xen/common/device-tree/kernel.c
 create mode 100644 xen/include/asm-generic/dom0less-build.h
 create mode 100644 xen/include/xen/fdt-domain-build.h
 create mode 100644 xen/include/xen/fdt-kernel.h

-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Mon Apr 14 15:56:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 15:56:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.950713.1346967 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4MB1-0000bu-Lg; Mon, 14 Apr 2025 15:56:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 950713.1346967; Mon, 14 Apr 2025 15: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 1u4MB1-0000bn-HJ; Mon, 14 Apr 2025 15:56:51 +0000
Received: by outflank-mailman (input) for mailman id 950713;
 Mon, 14 Apr 2025 15: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=YdIb=XA=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1u4MAz-0008KQ-Un
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 15:56:50 +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 12d08264-1949-11f0-9eae-5ba50f476ded;
 Mon, 14 Apr 2025 17:56:48 +0200 (CEST)
Received: by mail-ej1-x62a.google.com with SMTP id
 a640c23a62f3a-ac3b12e8518so758593166b.0
 for <xen-devel@lists.xenproject.org>; Mon, 14 Apr 2025 08:56:48 -0700 (PDT)
Received: from fedora.. (user-109-243-64-225.play-internet.pl.
 [109.243.64.225]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-acaa1cb4288sm951760866b.96.2025.04.14.08.56.46
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 14 Apr 2025 08:56: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: 12d08264-1949-11f0-9eae-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1744646208; x=1745251008; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=KlvlGdP3RguuAXd8DMZPpi8Btp1s7EmOSfOIyUOydDM=;
        b=Vq+u11x3W61bB+PQKMU3082sX/rVEEBzlsQDgAj1j+hHuUq+dn4LyN6usn/HNDS0OI
         CPl6GFWxTEJPR5UYTO5zYm3nO3NXAxAjPVF8fzlVuMGU2hclVZaNhAFn4PF3NdOpAoXa
         INYBxp0jhnMhZ+qc0pon3AOPLR5lN27yQ5NQjgIHmSPEjBC1kHMDA/41TLJCGszFX2nd
         2BOSfZMo70YpyPeV04UgZSSa9imESD3aHL+6wNbqOl1Uf+khQqj9Y1X3wyOVSEpJxLmy
         dNIb6KUWusZkF2pqPrTWNgxe0EcdLYwJ5e2R0idHhw4+ZSQrm6Gne4wIfFWuFy9WFQ3t
         OHFw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744646208; x=1745251008;
        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=KlvlGdP3RguuAXd8DMZPpi8Btp1s7EmOSfOIyUOydDM=;
        b=lr7/VzR5bthAac7uGENBA2aEWmj6gGhWiRHwqn4bx4JFPV2bor+t08cbu5zZkk175j
         /mMNK+fOI5w6dNp5S/vx68aa0ig9ceVI6ZunrjBb+ACy+V6Cu559dLPAYdr3zzHS+xhK
         Z+fMrG7jIyPsc4GrUEoSW6cJV4uQpdfmmHG1zBEywg4scrizLy6qAZoMKuE0Zv16qr7L
         9yNV60Q71GANZbBUxXdqkwQI93D7qG0I+FIoS7PjlbVlaVRTdiM4ct0HSi8wvokTGm8C
         U2PcQxTXGqhksIrwnvGbYiv5J1GQI3tCObQAqKkeEPKG5NWDf39qWI+9lo97SEdCGnYU
         V6Kg==
X-Gm-Message-State: AOJu0YwC3J/IQ9u5j3LyZNuW6LlD7H/DgfIOg1g/XVUcp9JP/PyklMxB
	wuZ1gfsFeNAgN5SrERthkRwJ8feJbcgmQHlbn1hZOSUyGpm8+1GcqkPDgA==
X-Gm-Gg: ASbGncsaXGvAsjlTxendvMSKlxDO5MZax3PLN6CvoEsk1Lbcr5mMf0YJqYuEL5VycUN
	8bxJU468CXAzslmPlJ+2QF+OOkf4Yp8qEugMTXcF4x8B3MtE8mwDVS3NMiO82WPWovJKd+JkJDq
	l33O5SZRuzB4nPSo8H5cy+6WrXWgZKeKHWNfaFXYCGhqiG5Fl9B56/1qnLNGCUCrZHk4jdrst41
	t/ZMmZdXnZLAOE6p44sWwd77kugY7z8/xOqJ4kI8TD+wxbR0ghE8o5h51aps0+AiIRPkpaq8AGQ
	OLuDkeS9G0b3SKgv2IomTjAzTvmzWa+t4U9CCaIvL0HPXG3kjb33raH86CQbAotz7ARL1Z1tqMu
	igOYIWeGInYe4JCTF64Qf
X-Google-Smtp-Source: AGHT+IHTRv40vtlxklxwQ9vtvsCn5SJzxQaoWzyWTeW2GornEf3GHlek7Owtttibq6wkI/jVDDg+7w==
X-Received: by 2002:a17:907:94d0:b0:ac2:fd70:ddcc with SMTP id a640c23a62f3a-acad36a452fmr930081566b.47.1744646207727;
        Mon, 14 Apr 2025 08:56:47 -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>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v2 3/8] asm-generic: move parts of Arm's asm/kernel.h to common code
Date: Mon, 14 Apr 2025 17:56:36 +0200
Message-ID: <aac54b6dfa97b578498a709b782a32959450deae.1744626032.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <cover.1744626032.git.oleksii.kurochko@gmail.com>
References: <cover.1744626032.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Move the following parts to common with the following changes:
- struct kernel_info:
  - Create arch_kernel_info for arch specific kernel information.
    At the moment, it contains domain_type for Arm.
  - Rename vpl011 to vuart to have more generic name suitable for other archs.
  - s/phandle_gic/phandle_intc to have more generic name suitable for other
    archs.
  - Make text_offset of zimage structure available for RISCV_64.
- Wrap by `#ifdef KERNEL_INFO_SHM_MEM_INIT` definition of KERNEL_SHM_MEM_INIT
  and wrap by `#ifndef KERNEL_INFO_INIT` definition of KERNEL_INFO_INIT to have
  ability to override KERNEL_INFO_SHM_MEM_INIT for arch in case it doesn't
  want to use generic one.
- Move DOM0LESS_* macros to dom0less-build.h.
- Move all others parts of Arm's kernel.h to xen/fdt-kernel.h.

Because of the changes in struct kernel_info the correspondent parts of Arm's
code are updated.

As part of this patch the following clean up happens:
- Drop asm/setup.h from asm/kernel.h as nothing depends from it.
  Add inclusion of asm/setup.h for a code which uses device_tree_get_reg() to
  avoid compilation issues for CONFIG_STATIC_MEMORY and CONFIG_STATIC_SHM.
- Drop inclusion of asm/kernel.h everywhere except xen/fdt-kernel.h.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in v2:
 - Introduce xen/fdt-kernel.h.
 - Move DOM0LESS_* macros to dom0less-build.h.
 - Move the rest in asm-generic/kernel.h to xen/fdt-kernel.h.
 - Drop inclusion of asm/kernel.h everywhere except xen/fdt-kernel.h.
 - Wrap by #if __has_include(....) the member of kernel_info structure:
     struct arch_kernel_info arch.
 - Update the commit message.
---
 xen/arch/arm/acpi/domain_build.c         |   2 +-
 xen/arch/arm/dom0less-build.c            |  29 ++---
 xen/arch/arm/domain_build.c              |  12 +-
 xen/arch/arm/include/asm/domain_build.h  |   2 +-
 xen/arch/arm/include/asm/kernel.h        | 126 +--------------------
 xen/arch/arm/include/asm/static-memory.h |   2 +-
 xen/arch/arm/include/asm/static-shmem.h  |   2 +-
 xen/arch/arm/kernel.c                    |  13 ++-
 xen/arch/arm/static-memory.c             |   1 +
 xen/arch/arm/static-shmem.c              |   1 +
 xen/common/device-tree/dt-overlay.c      |   2 +-
 xen/include/asm-generic/dom0less-build.h |  28 +++++
 xen/include/xen/fdt-kernel.h             | 133 +++++++++++++++++++++++
 13 files changed, 198 insertions(+), 155 deletions(-)
 create mode 100644 xen/include/xen/fdt-kernel.h

diff --git a/xen/arch/arm/acpi/domain_build.c b/xen/arch/arm/acpi/domain_build.c
index 2ce75543d0..f9ca8b47e5 100644
--- a/xen/arch/arm/acpi/domain_build.c
+++ b/xen/arch/arm/acpi/domain_build.c
@@ -10,6 +10,7 @@
  */
 
 #include <xen/compile.h>
+#include <xen/fdt-kernel.h>
 #include <xen/mm.h>
 #include <xen/sched.h>
 #include <xen/acpi.h>
@@ -18,7 +19,6 @@
 #include <xen/device_tree.h>
 #include <xen/libfdt/libfdt.h>
 #include <acpi/actables.h>
-#include <asm/kernel.h>
 #include <asm/domain_build.h>
 
 /* Override macros from asm/page.h to make them work with mfn_t */
diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
index 7ec3f85795..5810083951 100644
--- a/xen/arch/arm/dom0less-build.c
+++ b/xen/arch/arm/dom0less-build.c
@@ -1,6 +1,7 @@
 /* SPDX-License-Identifier: GPL-2.0-only */
 #include <xen/device_tree.h>
 #include <xen/domain_page.h>
+#include <xen/fdt-kernel.h>
 #include <xen/err.h>
 #include <xen/event.h>
 #include <xen/grant_table.h>
@@ -60,11 +61,11 @@ static int __init make_gicv2_domU_node(struct kernel_info *kinfo)
     if (res)
         return res;
 
-    res = fdt_property_cell(fdt, "linux,phandle", kinfo->phandle_gic);
+    res = fdt_property_cell(fdt, "linux,phandle", kinfo->phandle_intc);
     if (res)
         return res;
 
-    res = fdt_property_cell(fdt, "phandle", kinfo->phandle_gic);
+    res = fdt_property_cell(fdt, "phandle", kinfo->phandle_intc);
     if (res)
         return res;
 
@@ -131,11 +132,11 @@ static int __init make_gicv3_domU_node(struct kernel_info *kinfo)
     if (res)
         return res;
 
-    res = fdt_property_cell(fdt, "linux,phandle", kinfo->phandle_gic);
+    res = fdt_property_cell(fdt, "linux,phandle", kinfo->phandle_intc);
     if (res)
         return res;
 
-    res = fdt_property_cell(fdt, "phandle", kinfo->phandle_gic);
+    res = fdt_property_cell(fdt, "phandle", kinfo->phandle_intc);
     if (res)
         return res;
 
@@ -196,7 +197,7 @@ static int __init make_vpl011_uart_node(struct kernel_info *kinfo)
         return res;
 
     res = fdt_property_cell(fdt, "interrupt-parent",
-                            kinfo->phandle_gic);
+                            kinfo->phandle_intc);
     if ( res )
         return res;
 
@@ -482,10 +483,10 @@ static int __init domain_handle_dtb_bootmodule(struct domain *d,
          */
         if ( dt_node_cmp(name, "gic") == 0 )
         {
-            uint32_t phandle_gic = fdt_get_phandle(pfdt, node_next);
+            uint32_t phandle_intc = fdt_get_phandle(pfdt, node_next);
 
-            if ( phandle_gic != 0 )
-                kinfo->phandle_gic = phandle_gic;
+            if ( phandle_intc != 0 )
+                kinfo->phandle_intc = phandle_intc;
             continue;
         }
 
@@ -528,7 +529,7 @@ static int __init prepare_dtb_domU(struct domain *d, struct kernel_info *kinfo)
     int addrcells, sizecells;
     int ret, fdt_size = DOMU_DTB_SIZE;
 
-    kinfo->phandle_gic = GUEST_PHANDLE_GIC;
+    kinfo->phandle_intc = GUEST_PHANDLE_GIC;
     kinfo->gnttab_start = GUEST_GNTTAB_BASE;
     kinfo->gnttab_size = GUEST_GNTTAB_SIZE;
 
@@ -590,7 +591,7 @@ static int __init prepare_dtb_domU(struct domain *d, struct kernel_info *kinfo)
     /*
      * domain_handle_dtb_bootmodule has to be called before the rest of
      * the device tree is generated because it depends on the value of
-     * the field phandle_gic.
+     * the field phandle_intc.
      */
     if ( kinfo->dtb_bootmodule )
     {
@@ -607,7 +608,7 @@ static int __init prepare_dtb_domU(struct domain *d, struct kernel_info *kinfo)
     if ( ret )
         goto err;
 
-    if ( kinfo->vpl011 )
+    if ( kinfo->vuart )
     {
         ret = -EINVAL;
 #ifdef CONFIG_SBSA_VUART_CONSOLE
@@ -860,7 +861,7 @@ int __init construct_domU(struct domain *d,
     printk("*** LOADING DOMU cpus=%u memory=%#"PRIx64"KB ***\n",
            d->max_vcpus, mem);
 
-    kinfo.vpl011 = dt_property_read_bool(node, "vpl011");
+    kinfo.vuart = dt_property_read_bool(node, "vpl011");
 
     rc = dt_property_read_string(node, "xen,enhanced", &dom0less_enhanced);
     if ( rc == -EILSEQ ||
@@ -895,7 +896,7 @@ int __init construct_domU(struct domain *d,
 
 #ifdef CONFIG_ARM_64
     /* type must be set before allocate memory */
-    d->arch.type = kinfo.type;
+    d->arch.type = kinfo.arch.type;
 #endif
     if ( !dt_find_property(node, "xen,static-mem", NULL) )
         allocate_memory(d, &kinfo);
@@ -913,7 +914,7 @@ int __init construct_domU(struct domain *d,
      * tree node in prepare_dtb_domU, so initialization on related variables
      * shall be done first.
      */
-    if ( kinfo.vpl011 )
+    if ( kinfo.vuart )
     {
         rc = domain_vpl011_init(d, NULL);
         if ( rc < 0 )
diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index 634333cdde..a19914f836 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -1,6 +1,7 @@
 /* SPDX-License-Identifier: GPL-2.0-only */
 #include <xen/init.h>
 #include <xen/compile.h>
+#include <xen/fdt-kernel.h>
 #include <xen/lib.h>
 #include <xen/llc-coloring.h>
 #include <xen/mm.h>
@@ -20,7 +21,6 @@
 #include <xen/vmap.h>
 #include <xen/warning.h>
 #include <asm/device.h>
-#include <asm/kernel.h>
 #include <asm/setup.h>
 #include <asm/tee/tee.h>
 #include <asm/pci.h>
@@ -747,7 +747,7 @@ static int __init fdt_property_interrupts(const struct kernel_info *kinfo,
         return res;
 
     res = fdt_property_cell(kinfo->fdt, "interrupt-parent",
-                            kinfo->phandle_gic);
+                            kinfo->phandle_intc);
 
     return res;
 }
@@ -2026,7 +2026,7 @@ static int __init prepare_dtb_hwdom(struct domain *d, struct kernel_info *kinfo)
 
     ASSERT(dt_host && (dt_host->sibling == NULL));
 
-    kinfo->phandle_gic = dt_interrupt_controller->phandle;
+    kinfo->phandle_intc = dt_interrupt_controller->phandle;
     fdt = device_tree_flattened;
 
     new_size = fdt_totalsize(fdt) + DOM0_FDT_EXTRA_SIZE;
@@ -2196,13 +2196,13 @@ int __init construct_domain(struct domain *d, struct kernel_info *kinfo)
 
 #ifdef CONFIG_ARM_64
     /* if aarch32 mode is not supported at EL1 do not allow 32-bit domain */
-    if ( !(cpu_has_el1_32) && kinfo->type == DOMAIN_32BIT )
+    if ( !(cpu_has_el1_32) && kinfo->arch.type == DOMAIN_32BIT )
     {
         printk("Platform does not support 32-bit domain\n");
         return -EINVAL;
     }
 
-    if ( is_sve_domain(d) && (kinfo->type == DOMAIN_32BIT) )
+    if ( is_sve_domain(d) && (kinfo->arch.type == DOMAIN_32BIT) )
     {
         printk("SVE is not available for 32-bit domain\n");
         return -EINVAL;
@@ -2317,7 +2317,7 @@ int __init construct_hwdom(struct kernel_info *kinfo)
 
 #ifdef CONFIG_ARM_64
     /* type must be set before allocate_memory */
-    d->arch.type = kinfo->type;
+    d->arch.type = kinfo->arch.type;
 #endif
     find_gnttab_region(d, kinfo);
     if ( is_domain_direct_mapped(d) )
diff --git a/xen/arch/arm/include/asm/domain_build.h b/xen/arch/arm/include/asm/domain_build.h
index 38546de477..7136857ce4 100644
--- a/xen/arch/arm/include/asm/domain_build.h
+++ b/xen/arch/arm/include/asm/domain_build.h
@@ -1,8 +1,8 @@
 #ifndef __ASM_DOMAIN_BUILD_H__
 #define __ASM_DOMAIN_BUILD_H__
 
+#include <xen/fdt-kernel.h>
 #include <xen/sched.h>
-#include <asm/kernel.h>
 
 typedef __be32 gic_interrupt_t[3];
 typedef bool (*alloc_domheap_mem_cb)(struct domain *d, struct page_info *pg,
diff --git a/xen/arch/arm/include/asm/kernel.h b/xen/arch/arm/include/asm/kernel.h
index bdc96f4c18..cfeab792c7 100644
--- a/xen/arch/arm/include/asm/kernel.h
+++ b/xen/arch/arm/include/asm/kernel.h
@@ -6,137 +6,15 @@
 #ifndef __ARCH_ARM_KERNEL_H__
 #define __ARCH_ARM_KERNEL_H__
 
-#include <xen/device_tree.h>
 #include <asm/domain.h>
-#include <asm/setup.h>
 
-/*
- * List of possible features for dom0less domUs
- *
- * DOM0LESS_ENHANCED_NO_XS:  Notify the OS it is running on top of Xen. All the
- *                           default features (excluding Xenstore) will be
- *                           available. Note that an OS *must* not rely on the
- *                           availability of Xen features if this is not set.
- * DOM0LESS_XENSTORE:        Xenstore will be enabled for the VM. The
- *                           xenstore page allocation is done by Xen at
- *                           domain creation. This feature can't be
- *                           enabled without the DOM0LESS_ENHANCED_NO_XS.
- * DOM0LESS_XS_LEGACY        Xenstore will be enabled for the VM, the
- *                           xenstore page allocation will happen in
- *                           init-dom0less. This feature can't be enabled
- *                           without the DOM0LESS_ENHANCED_NO_XS.
- * DOM0LESS_ENHANCED:        Notify the OS it is running on top of Xen. All the
- *                           default features (including Xenstore) will be
- *                           available. Note that an OS *must* not rely on the
- *                           availability of Xen features if this is not set.
- * DOM0LESS_ENHANCED_LEGACY: Same as before, but using DOM0LESS_XS_LEGACY.
- */
-#define DOM0LESS_ENHANCED_NO_XS  BIT(0, U)
-#define DOM0LESS_XENSTORE        BIT(1, U)
-#define DOM0LESS_XS_LEGACY       BIT(2, U)
-#define DOM0LESS_ENHANCED_LEGACY (DOM0LESS_ENHANCED_NO_XS | DOM0LESS_XS_LEGACY)
-#define DOM0LESS_ENHANCED        (DOM0LESS_ENHANCED_NO_XS | DOM0LESS_XENSTORE)
-
-struct kernel_info {
+struct arch_kernel_info
+{
 #ifdef CONFIG_ARM_64
     enum domain_type type;
 #endif
-
-    struct domain *d;
-
-    void *fdt; /* flat device tree */
-    paddr_t unassigned_mem; /* RAM not (yet) assigned to a bank */
-    struct meminfo mem;
-#ifdef CONFIG_STATIC_SHM
-    struct shared_meminfo shm_mem;
-#endif
-
-    /* kernel entry point */
-    paddr_t entry;
-
-    /* grant table region */
-    paddr_t gnttab_start;
-    paddr_t gnttab_size;
-
-    /* boot blob load addresses */
-    const struct bootmodule *kernel_bootmodule, *initrd_bootmodule, *dtb_bootmodule;
-    const char* cmdline;
-    paddr_t dtb_paddr;
-    paddr_t initrd_paddr;
-
-    /* Enable pl011 emulation */
-    bool vpl011;
-
-    /* Enable/Disable PV drivers interfaces */
-    uint16_t dom0less_feature;
-
-    /* GIC phandle */
-    uint32_t phandle_gic;
-
-    /* loader to use for this kernel */
-    void (*load)(struct kernel_info *info);
-    /* loader specific state */
-    union {
-        struct {
-            paddr_t kernel_addr;
-            paddr_t len;
-#ifdef CONFIG_ARM_64
-            paddr_t text_offset; /* 64-bit Image only */
-#endif
-            paddr_t start; /* Must be 0 for 64-bit Image */
-        } zimage;
-    };
 };
 
-static inline struct membanks *kernel_info_get_mem(struct kernel_info *kinfo)
-{
-    return container_of(&kinfo->mem.common, struct membanks, common);
-}
-
-static inline const struct membanks *
-kernel_info_get_mem_const(const struct kernel_info *kinfo)
-{
-    return container_of(&kinfo->mem.common, const struct membanks, common);
-}
-
-#ifdef CONFIG_STATIC_SHM
-#define KERNEL_INFO_SHM_MEM_INIT                \
-    .shm_mem.common.max_banks = NR_SHMEM_BANKS, \
-    .shm_mem.common.type = STATIC_SHARED_MEMORY,
-#else
-#define KERNEL_INFO_SHM_MEM_INIT
-#endif
-
-#define KERNEL_INFO_INIT                        \
-{                                               \
-    .mem.common.max_banks = NR_MEM_BANKS,       \
-    .mem.common.type = MEMORY,                  \
-    KERNEL_INFO_SHM_MEM_INIT                    \
-}
-
-/*
- * Probe the kernel to detemine its type and select a loader.
- *
- * Sets in info:
- *  ->type
- *  ->load hook, and sets loader specific variables ->zimage
- */
-int kernel_probe(struct kernel_info *info, const struct dt_device_node *domain);
-
-/*
- * Loads the kernel into guest RAM.
- *
- * Expects to be set in info when called:
- *  ->mem
- *  ->fdt
- *
- * Sets in info:
- *  ->entry
- *  ->dtb_paddr
- *  ->initrd_paddr
- */
-void kernel_load(struct kernel_info *info);
-
 #endif /* #ifdef __ARCH_ARM_KERNEL_H__ */
 
 /*
diff --git a/xen/arch/arm/include/asm/static-memory.h b/xen/arch/arm/include/asm/static-memory.h
index 804166e541..a32a3c6553 100644
--- a/xen/arch/arm/include/asm/static-memory.h
+++ b/xen/arch/arm/include/asm/static-memory.h
@@ -3,8 +3,8 @@
 #ifndef __ASM_STATIC_MEMORY_H_
 #define __ASM_STATIC_MEMORY_H_
 
+#include <xen/fdt-kernel.h>
 #include <xen/pfn.h>
-#include <asm/kernel.h>
 
 #ifdef CONFIG_STATIC_MEMORY
 
diff --git a/xen/arch/arm/include/asm/static-shmem.h b/xen/arch/arm/include/asm/static-shmem.h
index 94eaa9d500..a4f853805a 100644
--- a/xen/arch/arm/include/asm/static-shmem.h
+++ b/xen/arch/arm/include/asm/static-shmem.h
@@ -3,8 +3,8 @@
 #ifndef __ASM_STATIC_SHMEM_H_
 #define __ASM_STATIC_SHMEM_H_
 
+#include <xen/fdt-kernel.h>
 #include <xen/types.h>
-#include <asm/kernel.h>
 #include <asm/setup.h>
 
 #ifdef CONFIG_STATIC_SHM
diff --git a/xen/arch/arm/kernel.c b/xen/arch/arm/kernel.c
index 6eaf9e2b06..5482cf4239 100644
--- a/xen/arch/arm/kernel.c
+++ b/xen/arch/arm/kernel.c
@@ -6,6 +6,7 @@
  */
 #include <xen/domain_page.h>
 #include <xen/errno.h>
+#include <xen/fdt-kernel.h>
 #include <xen/guest_access.h>
 #include <xen/gunzip.h>
 #include <xen/init.h>
@@ -16,7 +17,7 @@
 #include <xen/vmap.h>
 
 #include <asm/byteorder.h>
-#include <asm/kernel.h>
+#include <asm/domain_build.h>
 #include <asm/setup.h>
 
 #define UIMAGE_MAGIC          0x27051956
@@ -101,7 +102,7 @@ static paddr_t __init kernel_zimage_place(struct kernel_info *info)
     paddr_t load_addr;
 
 #ifdef CONFIG_ARM_64
-    if ( (info->type == DOMAIN_64BIT) && (info->zimage.start == 0) )
+    if ( (info->arch.type == DOMAIN_64BIT) && (info->zimage.start == 0) )
         return mem->bank[0].start + info->zimage.text_offset;
 #endif
 
@@ -371,10 +372,10 @@ static int __init kernel_uimage_probe(struct kernel_info *info,
     switch ( uimage.arch )
     {
     case IH_ARCH_ARM:
-        info->type = DOMAIN_32BIT;
+        info->arch.type = DOMAIN_32BIT;
         break;
     case IH_ARCH_ARM64:
-        info->type = DOMAIN_64BIT;
+        info->arch.type = DOMAIN_64BIT;
         break;
     default:
         printk(XENLOG_ERR "Unsupported uImage arch type %d\n", uimage.arch);
@@ -444,7 +445,7 @@ static int __init kernel_zimage64_probe(struct kernel_info *info,
 
     info->load = kernel_zimage_load;
 
-    info->type = DOMAIN_64BIT;
+    info->arch.type = DOMAIN_64BIT;
 
     return 0;
 }
@@ -496,7 +497,7 @@ static int __init kernel_zimage32_probe(struct kernel_info *info,
     info->load = kernel_zimage_load;
 
 #ifdef CONFIG_ARM_64
-    info->type = DOMAIN_32BIT;
+    info->arch.type = DOMAIN_32BIT;
 #endif
 
     return 0;
diff --git a/xen/arch/arm/static-memory.c b/xen/arch/arm/static-memory.c
index d4585c5a06..e0f76afcd8 100644
--- a/xen/arch/arm/static-memory.c
+++ b/xen/arch/arm/static-memory.c
@@ -2,6 +2,7 @@
 
 #include <xen/sched.h>
 
+#include <asm/setup.h>
 #include <asm/static-memory.h>
 
 static bool __init append_static_memory_to_bank(struct domain *d,
diff --git a/xen/arch/arm/static-shmem.c b/xen/arch/arm/static-shmem.c
index e8d4ca3ba3..14ae48fb1e 100644
--- a/xen/arch/arm/static-shmem.c
+++ b/xen/arch/arm/static-shmem.c
@@ -6,6 +6,7 @@
 #include <xen/sched.h>
 
 #include <asm/domain_build.h>
+#include <asm/setup.h>
 #include <asm/static-memory.h>
 #include <asm/static-shmem.h>
 
diff --git a/xen/common/device-tree/dt-overlay.c b/xen/common/device-tree/dt-overlay.c
index 97fb99eaaa..81107cb48d 100644
--- a/xen/common/device-tree/dt-overlay.c
+++ b/xen/common/device-tree/dt-overlay.c
@@ -6,8 +6,8 @@
  * Written by Vikram Garhwal <vikram.garhwal@amd.com>
  *
  */
-#include <asm/domain_build.h>
 #include <xen/dt-overlay.h>
+#include <xen/fdt-kernel.h>
 #include <xen/guest_access.h>
 #include <xen/iocap.h>
 #include <xen/libfdt/libfdt.h>
diff --git a/xen/include/asm-generic/dom0less-build.h b/xen/include/asm-generic/dom0less-build.h
index a6985bc20a..7092f7fc7e 100644
--- a/xen/include/asm-generic/dom0less-build.h
+++ b/xen/include/asm-generic/dom0less-build.h
@@ -8,6 +8,34 @@
 
 #include <public/domctl.h>
 
+/*
+ * List of possible features for dom0less domUs
+ *
+ * DOM0LESS_ENHANCED_NO_XS:  Notify the OS it is running on top of Xen. All the
+ *                           default features (excluding Xenstore) will be
+ *                           available. Note that an OS *must* not rely on the
+ *                           availability of Xen features if this is not set.
+ * DOM0LESS_XENSTORE:        Xenstore will be enabled for the VM. The
+ *                           xenstore page allocation is done by Xen at
+ *                           domain creation. This feature can't be
+ *                           enabled without the DOM0LESS_ENHANCED_NO_XS.
+ * DOM0LESS_XS_LEGACY        Xenstore will be enabled for the VM, the
+ *                           xenstore page allocation will happen in
+ *                           init-dom0less. This feature can't be enabled
+ *                           without the DOM0LESS_ENHANCED_NO_XS.
+ * DOM0LESS_ENHANCED:        Notify the OS it is running on top of Xen. All the
+ *                           default features (including Xenstore) will be
+ *                           available. Note that an OS *must* not rely on the
+ *                           availability of Xen features if this is not set.
+ * DOM0LESS_ENHANCED_LEGACY: Same as before, but using DOM0LESS_XS_LEGACY.
+
+ */
+#define DOM0LESS_ENHANCED_NO_XS  BIT(0, U)
+#define DOM0LESS_XENSTORE        BIT(1, U)
+#define DOM0LESS_XS_LEGACY       BIT(2, U)
+#define DOM0LESS_ENHANCED_LEGACY (DOM0LESS_ENHANCED_NO_XS | DOM0LESS_XS_LEGACY)
+#define DOM0LESS_ENHANCED        (DOM0LESS_ENHANCED_NO_XS | DOM0LESS_XENSTORE)
+
 void create_domUs(void);
 bool is_dom0less_mode(void);
 
diff --git a/xen/include/xen/fdt-kernel.h b/xen/include/xen/fdt-kernel.h
new file mode 100644
index 0000000000..c81e759423
--- /dev/null
+++ b/xen/include/xen/fdt-kernel.h
@@ -0,0 +1,133 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * For Kernel image loading.
+ *
+ * Copyright (C) 2011 Citrix Systems, Inc.
+ */
+#ifndef __XEN_FDT_KERNEL_H__
+#define __XEN_FDT_KERNEL_H__
+
+#include <xen/bootfdt.h>
+#include <xen/device_tree.h>
+#include <xen/types.h>
+
+#if __has_include(<asm/kernel.h>)
+#   include <asm/kernel.h>
+#endif
+
+struct kernel_info {
+    struct domain *d;
+
+    void *fdt; /* flat device tree */
+    paddr_t unassigned_mem; /* RAM not (yet) assigned to a bank */
+    struct meminfo mem;
+#ifdef CONFIG_STATIC_SHM
+    struct shared_meminfo shm_mem;
+#endif
+
+    /* kernel entry point */
+    paddr_t entry;
+
+    /* grant table region */
+    paddr_t gnttab_start;
+    paddr_t gnttab_size;
+
+    /* boot blob load addresses */
+    const struct bootmodule *kernel_bootmodule, *initrd_bootmodule, *dtb_bootmodule;
+    const char* cmdline;
+    paddr_t dtb_paddr;
+    paddr_t initrd_paddr;
+
+    /* Enable uart emulation */
+    bool vuart;
+
+    /* Enable/Disable PV drivers interfaces */
+    uint16_t dom0less_feature;
+
+    /* Interrupt controller phandle */
+    uint32_t phandle_intc;
+
+    /* loader to use for this kernel */
+    void (*load)(struct kernel_info *info);
+
+    /* loader specific state */
+    union {
+        struct {
+            paddr_t kernel_addr;
+            paddr_t len;
+#if defined(CONFIG_ARM_64) || defined(CONFIG_RISCV_64)
+            paddr_t text_offset; /* 64-bit Image only */
+#endif
+            paddr_t start; /* Must be 0 for 64-bit Image */
+        } zimage;
+    };
+
+#if __has_include(<asm/kernel.h>)
+    struct arch_kernel_info arch;
+#endif
+};
+
+static inline struct membanks *kernel_info_get_mem(struct kernel_info *kinfo)
+{
+    return container_of(&kinfo->mem.common, struct membanks, common);
+}
+
+static inline const struct membanks *
+kernel_info_get_mem_const(const struct kernel_info *kinfo)
+{
+    return container_of(&kinfo->mem.common, const struct membanks, common);
+}
+
+#ifndef KERNEL_INFO_SHM_MEM_INIT
+
+#ifdef CONFIG_STATIC_SHM
+#define KERNEL_INFO_SHM_MEM_INIT .shm_mem.common.max_banks = NR_SHMEM_BANKS,
+#else
+#define KERNEL_INFO_SHM_MEM_INIT
+#endif
+
+#endif /* KERNEL_INFO_SHM_MEM_INIT */
+
+#ifndef KERNEL_INFO_INIT
+
+#define KERNEL_INFO_INIT                        \
+{                                               \
+    .mem.common.max_banks = NR_MEM_BANKS,       \
+    KERNEL_INFO_SHM_MEM_INIT                    \
+}
+
+#endif /* KERNEL_INFO_INIT */
+
+/*
+ * Probe the kernel to detemine its type and select a loader.
+ *
+ * Sets in info:
+ *  ->type
+ *  ->load hook, and sets loader specific variables ->zimage
+ */
+int kernel_probe(struct kernel_info *info, const struct dt_device_node *domain);
+
+/*
+ * Loads the kernel into guest RAM.
+ *
+ * Expects to be set in info when called:
+ *  ->mem
+ *  ->fdt
+ *
+ * Sets in info:
+ *  ->entry
+ *  ->dtb_paddr
+ *  ->initrd_paddr
+ */
+void kernel_load(struct kernel_info *info);
+
+#endif /* __XEN_FDT_KERNEL_H__ */
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Mon Apr 14 15:56:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 15:56:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.950711.1346948 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4MAz-00008A-Vr; Mon, 14 Apr 2025 15:56:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 950711.1346948; Mon, 14 Apr 2025 15:56: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 1u4MAz-00007v-RD; Mon, 14 Apr 2025 15:56:49 +0000
Received: by outflank-mailman (input) for mailman id 950711;
 Mon, 14 Apr 2025 15:56: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=YdIb=XA=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1u4MAy-0008LI-LV
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 15:56:48 +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 119cce06-1949-11f0-9ffb-bf95429c2676;
 Mon, 14 Apr 2025 17:56:46 +0200 (CEST)
Received: by mail-ej1-x636.google.com with SMTP id
 a640c23a62f3a-ac2a81e41e3so808862266b.1
 for <xen-devel@lists.xenproject.org>; Mon, 14 Apr 2025 08:56:46 -0700 (PDT)
Received: from fedora.. (user-109-243-64-225.play-internet.pl.
 [109.243.64.225]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-acaa1cb4288sm951760866b.96.2025.04.14.08.56.44
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 14 Apr 2025 08:56: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: 119cce06-1949-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1744646206; x=1745251006; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=4Lq5mEW6mI18WMUBH5O3rO4qgR6VSRrIO7ZvgOMZ7TA=;
        b=j6Hqv32Pe9SiuH/rKZ2faDSILfZrgmUIrCvH1cTz5oteciSciZw8eZnZq30UyjIt3n
         sc2cF2h/k4va+iEGgoMtXQpYq6CQr97IlygxZXucEwBvy9c8mWnjQze26zuXJAi1pbn8
         E9LbX2hYld5A+MPxLVokr9LI6J/wtl4BmJoMG34Bjsvi+UfvM97TYM5lLS8haxCLXe08
         zfei5qj3N7gSiCBj0CWkJvzBILifGNceQ/JCKQyYgMKgo9Y9G1b3VTI9wY55fwEbS3RA
         ze/RASOqPkjLfeYTAgq5yRVhkJDZMA69SNllxVNgqNtWg/qHbnPwTH5OF1fjr+U0kJK4
         itng==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744646206; x=1745251006;
        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=4Lq5mEW6mI18WMUBH5O3rO4qgR6VSRrIO7ZvgOMZ7TA=;
        b=rrHTA7hkTV5w9hwgDuS4Zt0+VTcvErpoHhxFENFUu7TEm0OxVOy1w/18Gs2N+TNeSQ
         HVZuGtWhGQKaSVSbVBPx8mwX1y2YyhP5R9ZMMxZQkY4K3f48mv94yTjX+1r1wOmtz4zw
         4QLSCFsSo4EvhpwXYUoJRAEzB9r4VaS4dqby9bCYgrlHU/oGIXVgRLF0CwruN/mqdcbq
         rdA6Y7bRA1dOgbKypRiGLxcbgrw/ah2GoDBOyPsPTr8wZFUEX7WQYiou25l/Kwdzv+YW
         rDJne9B++PNVHVSeiMEIvK1zN9stHHO6yE+Sb2LmhnGIj9xavQ/cS1kAMZIZf/ZtWxSj
         5mBA==
X-Gm-Message-State: AOJu0YwNIb5caOOMvpBcz081wulmJuVHvGW2Iiju3Z1VSwoQpNyObpZe
	dbAKC/Kjr2DfBLvw0eEew6m24mXES1G8LliyC5nL5HPINxwinEV5YF7LTw==
X-Gm-Gg: ASbGncvc7wsGdtL9cZWfwIG7UQ1b8xxw6gbxw72sv9OAElHpKB+UgvwKN7o00cHhQH9
	oLeOMYUhwveG0RlskhKiwPlEIsiKxR+AEZtyVsPwXdbIpznfa46mDp6C7aJkOVleHcjh1tzZ6YV
	+Kf4gSH5It8eMCxnJJ7ktqJoydfA4syich+Du7zvPwkE4SjeWoLgVMwn+PxqkrINMfvS4zM3kwY
	6f4eLIqieMuNortSwMc+DE2cgzjOLHNglzY9YE0YwtStD8jukFdfeYYbVm82IYw16xiMJW0ks1S
	psLh7dncHbdcs/8btFhBRF7kuCDSNTk5iaUGA7gZMbvL2thQn6WPgNBSOxe3K0PuVTiSBzw5YBN
	H+lmvDgdzMacIRV0oJXos
X-Google-Smtp-Source: AGHT+IGdJchHJ7P4CPTBsMcZjyAW+4qwRb+NegY1OFv/HcLj0sn/mAXf+megG2Ra8AGAsBOFPrHCGw==
X-Received: by 2002:a17:906:6a25:b0:ac3:17bb:34fc with SMTP id a640c23a62f3a-acad36d89f6mr984525966b.52.1744646205570;
        Mon, 14 Apr 2025 08:56:45 -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>
Subject: [PATCH v2 1/8] xen/arm: drop declaration of handle_device_interrupts()
Date: Mon, 14 Apr 2025 17:56:34 +0200
Message-ID: <ec1bfe540b4588c749fcdc932bd93da96db1d8a2.1744626032.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <cover.1744626032.git.oleksii.kurochko@gmail.com>
References: <cover.1744626032.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

There is no any users of handle_device_interrupts() thereby it
could be dropped.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in V2:
- New patch.
---
 xen/arch/arm/include/asm/domain_build.h | 11 -----------
 1 file changed, 11 deletions(-)

diff --git a/xen/arch/arm/include/asm/domain_build.h b/xen/arch/arm/include/asm/domain_build.h
index 134290853c..38546de477 100644
--- a/xen/arch/arm/include/asm/domain_build.h
+++ b/xen/arch/arm/include/asm/domain_build.h
@@ -27,17 +27,6 @@ void evtchn_allocate(struct domain *d);
 
 unsigned int get_allocation_size(paddr_t size);
 
-/*
- * handle_device_interrupts retrieves the interrupts configuration from
- * a device tree node and maps those interrupts to the target domain.
- *
- * Returns:
- *   < 0 error
- *   0   success
- */
-int handle_device_interrupts(struct domain *d, struct dt_device_node *dev,
-                             bool need_mapping);
-
 /*
  * Helper to write an interrupts with the GIC format
  * This code is assuming the irq is an PPI.
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Mon Apr 14 15:56:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 15:56:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.950714.1346977 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4MB2-0000r8-SG; Mon, 14 Apr 2025 15:56:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 950714.1346977; Mon, 14 Apr 2025 15:56: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 1u4MB2-0000qx-OM; Mon, 14 Apr 2025 15:56:52 +0000
Received: by outflank-mailman (input) for mailman id 950714;
 Mon, 14 Apr 2025 15:56: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=YdIb=XA=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1u4MB1-0008LI-II
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 15:56:51 +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 13899891-1949-11f0-9ffb-bf95429c2676;
 Mon, 14 Apr 2025 17:56:50 +0200 (CEST)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-abbd96bef64so931326766b.3
 for <xen-devel@lists.xenproject.org>; Mon, 14 Apr 2025 08:56:50 -0700 (PDT)
Received: from fedora.. (user-109-243-64-225.play-internet.pl.
 [109.243.64.225]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-acaa1cb4288sm951760866b.96.2025.04.14.08.56.47
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 14 Apr 2025 08:56: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: 13899891-1949-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1744646209; x=1745251009; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=biW/0L6vulzOGgUZkJVlWvo9rwiN4vFTilKp0PPEU6k=;
        b=fV2YKndCMGdv8s2r2VAVgGvK9UNFr2M4eeH4xuYTBPE88Ul+sdX/scrtgngt0ka+Vy
         A6AMzX9j8+VsbjiTXkK7OQdFIvgwMzLzaEOgIOuUDI4xQAEBtps6XjzmMMCztWrjAhQY
         sToMSqComRYi8aziJgeQlCScTgnvaLG7gR8iUAZ0iriD8RATBVSJuTDlGUb4eV/df0C9
         kSpFBJjbCID2GS+aXrYVZQ4wSurSW+rBPlEv/unTQ6cS/x+mMVlRcL6HqSuTYK8IQXej
         62rN/KEsVrEsk8UkANn+SSfB5/HpcSAYWXZrkKhj/98cVBrfb2CvqTdTvxwlsvzYbgIP
         3pOA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744646209; x=1745251009;
        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=biW/0L6vulzOGgUZkJVlWvo9rwiN4vFTilKp0PPEU6k=;
        b=ey//pClvkm7sqB/DRc+Bq95/OccRNLSkxcUdjnIFGi0K5oGDk1f3Xx9PmdbFMqemVh
         WMkljyDwdHtmXfgShxSeEp8Ws4oFOu5bffpPj3ybpTtOWrs9NTzxnBQ5mXR79g5ewptk
         VRcqhQ5de40ds/8Qfn6YoW5JzphdFCCwEMDg22SbsIreZYjvP7UJsvrWMAqPNSGBAy56
         b249GXQZ9jKS0/Ofy3GNfI0J0JdEunQhlV6ZklficlQ9exPnXIm072Csrf4LI9j2SPDM
         UN8HwCePifRaqpBQTU34ut3Rlj45v8iT/MV9DMIMGG2gSr6Dx4D01lsFSRoRe7uoaDe/
         8Jgg==
X-Gm-Message-State: AOJu0YxezawntTNdmGyIVKCKSQx6niYyj1NXVJrSt3TGT2cNmmZrgHPD
	4VHOddk1Uagl0IjU9h3VEAXDVkmT0LMCXyGvdcyf082r5/UqZHPesScEzw==
X-Gm-Gg: ASbGncv5tUxJZQErzSNRPIpC86mc3YAAzYu5ttOkpt2zo972ZtNpLJd/5z9fCszvbuk
	ryPWG4vPbsryF2BtgdmfKpB0sVNgQL3Fb7GwJdOwDw/bCbD/OM+kLnmXQv6BSIba7pbWjIZUaF2
	5WweUbXS/jrMsQBpvT8sqdQZj+cmjWomyBa+ZSxUSvPVr7cxJxeSR9bAELG+NHGu2IOzxsOGUvl
	1ddIqKojoFelGOrAb2rya4iUB+E7DHso/oxVV5Y3vYzTBk2gXVGW4lhYTRa1QJaMVfw5BR/eHeF
	++iMtDdgDCPNH6B0nwEoo0NBgZ7rM9/meEtecEUaES4qWfBHA3cGsvM1qVNsVpAYQxt370/qhZZ
	VFu/xTyshkw==
X-Google-Smtp-Source: AGHT+IG4/0yxABSmXWjkum4i1iaahql5lRZoMC/3qZoz0LCLoqDSmONznruxyWC97BQZbKdCT+n5IA==
X-Received: by 2002:a17:907:3ea7:b0:aca:a1c9:d155 with SMTP id a640c23a62f3a-acad3430e5dmr1038809366b.11.1744646208500;
        Mon, 14 Apr 2025 08:56:48 -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>
Subject: [PATCH v2 4/8] arm/static-shmem.h: drop inclusion of asm/setup.h
Date: Mon, 14 Apr 2025 17:56:37 +0200
Message-ID: <96e1f798ff19bcee73e613ae9b74056cc37eb5c3.1744626032.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <cover.1744626032.git.oleksii.kurochko@gmail.com>
References: <cover.1744626032.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Nothing is dependent from asm/setup.h in asm/static-shmem.h so inclusion of
asm/setup.h is droped.

After this drop the following compilation error related to impicit declaration
of the following functions device_tree_get_reg and map_device_irqs_to_domain,
device_tree_get_u32 occur during compilation of dom0less-build.c ( as they are
declared in asm/setup.h ).

Add inclusion of <asm/setup.h> in dt-overlay.c as it is using handle_device()
declared in <asm/setup.h>.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in V2:
 - Nothing changed. Only rebase.
---
 xen/arch/arm/dom0less-build.c       | 1 +
 xen/common/device-tree/dt-overlay.c | 2 ++
 2 files changed, 3 insertions(+)

diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
index 5810083951..122739061c 100644
--- a/xen/arch/arm/dom0less-build.c
+++ b/xen/arch/arm/dom0less-build.c
@@ -18,6 +18,7 @@
 #include <asm/arm64/sve.h>
 #include <asm/dom0less-build.h>
 #include <asm/domain_build.h>
+#include <asm/setup.h>
 #include <asm/static-memory.h>
 #include <asm/static-shmem.h>
 
diff --git a/xen/common/device-tree/dt-overlay.c b/xen/common/device-tree/dt-overlay.c
index 81107cb48d..d184186c01 100644
--- a/xen/common/device-tree/dt-overlay.c
+++ b/xen/common/device-tree/dt-overlay.c
@@ -13,6 +13,8 @@
 #include <xen/libfdt/libfdt.h>
 #include <xen/xmalloc.h>
 
+#include <asm/setup.h>
+
 #define DT_OVERLAY_MAX_SIZE KB(500)
 
 static LIST_HEAD(overlay_tracker);
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Mon Apr 14 15:56:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 15:56:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.950715.1346988 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4MB4-00018e-D7; Mon, 14 Apr 2025 15:56:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 950715.1346988; Mon, 14 Apr 2025 15: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 1u4MB4-00018V-76; Mon, 14 Apr 2025 15:56:54 +0000
Received: by outflank-mailman (input) for mailman id 950715;
 Mon, 14 Apr 2025 15: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=YdIb=XA=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1u4MB3-0008LI-3P
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 15:56:53 +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 1455e5e2-1949-11f0-9ffb-bf95429c2676;
 Mon, 14 Apr 2025 17:56:51 +0200 (CEST)
Received: by mail-ej1-x62c.google.com with SMTP id
 a640c23a62f3a-ac289147833so904633266b.2
 for <xen-devel@lists.xenproject.org>; Mon, 14 Apr 2025 08:56:51 -0700 (PDT)
Received: from fedora.. (user-109-243-64-225.play-internet.pl.
 [109.243.64.225]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-acaa1cb4288sm951760866b.96.2025.04.14.08.56.48
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 14 Apr 2025 08:56:49 -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: 1455e5e2-1949-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1744646210; x=1745251010; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=TZ8ilnGbjlP1yuQbeojo9A7mCx6DCnxf3o5NdQt6Z4Y=;
        b=QpF1Q+8KVaS5WatA6PkW/XlgIaLS6R7TqcHNh7MaAtaji1dMMSmz4HWGNCyMfAewWZ
         7JCYdR722FGXZSZOiPgZgedIH4cDYliryZo09/20kb8pRdwQRPIRNoLuDHlLNS9NrrZK
         xJOBtDUCEQZlaoHQi+HgsnQjIRjk8ruW3xHtGMVePZ9Nz9oYKoUOYaZd8dhFUi2TdKu7
         UQxCiQ9Q/qHmIITlJcaIT7MuLdvvzlx3yIyS2sUocTTKoOlsPeNtqcmZ11E9jmVBsV61
         B5SSozr55om/Tvac43L0Fw7faWZ93nVDieozcZ2u9d2V0EtV44Mv+24qtrFdPRW1nDj7
         P3YQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744646210; x=1745251010;
        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=TZ8ilnGbjlP1yuQbeojo9A7mCx6DCnxf3o5NdQt6Z4Y=;
        b=s2YW58BmLI0I6MlQ/qIgTVLlPsSNc9C+QEFapBo9cWooC+2TNoDsj0cQ9WtweTWR9U
         B/u5H2W7Dq8YsKkuqWQrNaYnVDU0WgkRxVGfRKki48aJAIDrlQf/qa1QUY6kIllRJwqv
         UwH88kivqlqBe5ii+b99ptKytiXCaPC9sDFKRyVYIu0WdWYkdeV00Eb9x5JCQfOhABuq
         mU28sqt92t1nsu+4FTSAHj994jdQe1e9Quc1MofHegFEjPKX9AQQB5+LjL6DTRHQwVlS
         ePpKCZiKM9PZMRU3DkrbZbtlGA+bwdMcvKdIImL7n6/Zpdh/rQ7Yv24TYMJdDpYomGg1
         +0Hg==
X-Gm-Message-State: AOJu0Yw9FgeBMjN3jh0cZQeU0IdxEbDLVbqwgrdqUJTrt2WRs9XjvV06
	pqq7Ot3c0pgr/Z4pdL26mGHxU4Wq2zqhz/Mf8bt25fzK9tEyqXxii+Ne3g==
X-Gm-Gg: ASbGnctYWZPuMXO8K0/uETpXofEtYVGvA9EzOUvR9natLWDvjjtyBZHHQNg6/uLyxPR
	T9rqNJfqiyylDVm3JmurWgcjtyxnNZaCGHJldhY4OMrZ6i+BRdwwwdLiSRmH7Fyi4invG2oWo3V
	y+4Uk1F0795YSVpqlQDKWHGCGT3Y8CqOaJ3VuDMwmkoy5wkzjhZvAj1/TjrJgo+L3ENOyTmqyA0
	Xsr8MJWSnwu9V20ETTkTx6sMuOKDxT/EZx5hW1Moa18sGOjcz5dEuHKu7Pd2gbnLQAA5zUtms2q
	uBYXToZ9xSmGJkOBZYXRcWNaofC6+uHlSJUg1KpHyiWT16V3iJG3vMLmbbnazB+4xh4dCwthxuv
	vAcOmow0qI6EpqqvOK2uM
X-Google-Smtp-Source: AGHT+IG0C0ZurGkiwvr+LZl7qZuXUegCn9ZRSjOc7uzRpnyAXHlFf7rk+YLGhIy5MyPirggeRe76Gw==
X-Received: by 2002:a17:907:3d0e:b0:ac4:5fd:6e29 with SMTP id a640c23a62f3a-acad34d8a60mr1232191666b.26.1744646210030;
        Mon, 14 Apr 2025 08:56:50 -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>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v2 5/8] asm-generic: move some parts of Arm's domain_build.h to common
Date: Mon, 14 Apr 2025 17:56:38 +0200
Message-ID: <1c67078147c4a89e46f253f040bef5046fac9ca9.1744626032.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <cover.1744626032.git.oleksii.kurochko@gmail.com>
References: <cover.1744626032.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Nothing changed. Only some functions declaration are moved to xen/include/
headers as they are expected to be used by common code of domain builing
or dom0less.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 Chnages in v2:
  - Add missed declaration of construct_hwdom().
  - Drop unnessary blank line.
  - Introduce xen/fdt-domain-build.h and move parts of Arm's domain_build.h to
    it.
  - Update the commit message.
---
 xen/arch/arm/acpi/domain_build.c        |  2 +-
 xen/arch/arm/dom0less-build.c           |  2 +-
 xen/arch/arm/domain_build.c             |  2 +-
 xen/arch/arm/include/asm/domain_build.h | 18 +---------
 xen/arch/arm/kernel.c                   |  2 +-
 xen/arch/arm/static-shmem.c             |  2 +-
 xen/include/xen/fdt-domain-build.h      | 46 +++++++++++++++++++++++++
 7 files changed, 52 insertions(+), 22 deletions(-)
 create mode 100644 xen/include/xen/fdt-domain-build.h

diff --git a/xen/arch/arm/acpi/domain_build.c b/xen/arch/arm/acpi/domain_build.c
index f9ca8b47e5..2b0768b7d5 100644
--- a/xen/arch/arm/acpi/domain_build.c
+++ b/xen/arch/arm/acpi/domain_build.c
@@ -10,6 +10,7 @@
  */
 
 #include <xen/compile.h>
+#include <xen/fdt-domain-build.h>
 #include <xen/fdt-kernel.h>
 #include <xen/mm.h>
 #include <xen/sched.h>
@@ -19,7 +20,6 @@
 #include <xen/device_tree.h>
 #include <xen/libfdt/libfdt.h>
 #include <acpi/actables.h>
-#include <asm/domain_build.h>
 
 /* Override macros from asm/page.h to make them work with mfn_t */
 #undef virt_to_mfn
diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
index 122739061c..ca78cff655 100644
--- a/xen/arch/arm/dom0less-build.c
+++ b/xen/arch/arm/dom0less-build.c
@@ -1,6 +1,7 @@
 /* SPDX-License-Identifier: GPL-2.0-only */
 #include <xen/device_tree.h>
 #include <xen/domain_page.h>
+#include <xen/fdt-domain-build.h>
 #include <xen/fdt-kernel.h>
 #include <xen/err.h>
 #include <xen/event.h>
@@ -17,7 +18,6 @@
 
 #include <asm/arm64/sve.h>
 #include <asm/dom0less-build.h>
-#include <asm/domain_build.h>
 #include <asm/setup.h>
 #include <asm/static-memory.h>
 #include <asm/static-shmem.h>
diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index a19914f836..75f048f58c 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -1,6 +1,7 @@
 /* SPDX-License-Identifier: GPL-2.0-only */
 #include <xen/init.h>
 #include <xen/compile.h>
+#include <xen/fdt-domain-build.h>
 #include <xen/fdt-kernel.h>
 #include <xen/lib.h>
 #include <xen/llc-coloring.h>
@@ -30,7 +31,6 @@
 #include <asm/arm64/sve.h>
 #include <asm/cpufeature.h>
 #include <asm/dom0less-build.h>
-#include <asm/domain_build.h>
 #include <asm/static-shmem.h>
 #include <xen/event.h>
 
diff --git a/xen/arch/arm/include/asm/domain_build.h b/xen/arch/arm/include/asm/domain_build.h
index 7136857ce4..5f9b063be1 100644
--- a/xen/arch/arm/include/asm/domain_build.h
+++ b/xen/arch/arm/include/asm/domain_build.h
@@ -5,27 +5,11 @@
 #include <xen/sched.h>
 
 typedef __be32 gic_interrupt_t[3];
-typedef bool (*alloc_domheap_mem_cb)(struct domain *d, struct page_info *pg,
-                                     unsigned int order, void *extra);
-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 construct_hwdom(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);
-int make_cpus_node(const struct domain *d, void *fdt);
-int make_hypervisor_node(struct domain *d, const struct kernel_info *kinfo,
-                         int addrcells, int sizecells);
-int make_memory_node(const struct kernel_info *kinfo, int addrcells,
-                     int sizecells, const struct membanks *mem);
 int make_psci_node(void *fdt);
-int make_timer_node(const struct kernel_info *kinfo);
 void evtchn_allocate(struct domain *d);
 
-unsigned int get_allocation_size(paddr_t size);
+int construct_hwdom(struct kernel_info *kinfo);
 
 /*
  * Helper to write an interrupts with the GIC format
diff --git a/xen/arch/arm/kernel.c b/xen/arch/arm/kernel.c
index 5482cf4239..164f417e75 100644
--- a/xen/arch/arm/kernel.c
+++ b/xen/arch/arm/kernel.c
@@ -6,6 +6,7 @@
  */
 #include <xen/domain_page.h>
 #include <xen/errno.h>
+#include <xen/fdt-domain-build.h>
 #include <xen/fdt-kernel.h>
 #include <xen/guest_access.h>
 #include <xen/gunzip.h>
@@ -17,7 +18,6 @@
 #include <xen/vmap.h>
 
 #include <asm/byteorder.h>
-#include <asm/domain_build.h>
 #include <asm/setup.h>
 
 #define UIMAGE_MAGIC          0x27051956
diff --git a/xen/arch/arm/static-shmem.c b/xen/arch/arm/static-shmem.c
index 14ae48fb1e..07ebd8b41f 100644
--- a/xen/arch/arm/static-shmem.c
+++ b/xen/arch/arm/static-shmem.c
@@ -1,11 +1,11 @@
 /* SPDX-License-Identifier: GPL-2.0-only */
 
 #include <xen/device_tree.h>
+#include <xen/fdt-domain-build.h>
 #include <xen/libfdt/libfdt.h>
 #include <xen/rangeset.h>
 #include <xen/sched.h>
 
-#include <asm/domain_build.h>
 #include <asm/setup.h>
 #include <asm/static-memory.h>
 #include <asm/static-shmem.h>
diff --git a/xen/include/xen/fdt-domain-build.h b/xen/include/xen/fdt-domain-build.h
new file mode 100644
index 0000000000..41454e75ca
--- /dev/null
+++ b/xen/include/xen/fdt-domain-build.h
@@ -0,0 +1,46 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+#ifndef __XEN_FDT_DOMAIN_BUILD_H__
+#define __XEN_FDT_DOMAIN_BUILD_H__
+
+#include <xen/bootfdt.h>
+#include <xen/device_tree.h>
+#include <xen/fdt-kernel.h>
+#include <xen/types.h>
+
+#if __has_include(<asm/domain_build.h>)
+#   include <asm/domain_build.h>
+#endif
+
+struct domain;
+struct page_info;
+struct membanks;
+
+typedef bool (*alloc_domheap_mem_cb)(struct domain *d, struct page_info *pg,
+                                     unsigned int order, void *extra);
+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 make_chosen_node(const struct kernel_info *kinfo);
+int make_cpus_node(const struct domain *d, void *fdt);
+int make_hypervisor_node(struct domain *d, const struct kernel_info *kinfo,
+                         int addrcells, int sizecells);
+int make_memory_node(const struct kernel_info *kinfo, int addrcells,
+                     int sizecells, const struct membanks *mem);
+int make_timer_node(const struct kernel_info *kinfo);
+
+unsigned int get_allocation_size(paddr_t size);
+
+#endif /* __XEN_FDT_DOMAIN_BUILD_H__ */
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Mon Apr 14 15:56:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 15:56:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.950716.1346991 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4MB4-0001Bd-L1; Mon, 14 Apr 2025 15:56:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 950716.1346991; Mon, 14 Apr 2025 15: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 1u4MB4-0001AM-G8; Mon, 14 Apr 2025 15:56:54 +0000
Received: by outflank-mailman (input) for mailman id 950716;
 Mon, 14 Apr 2025 15:56: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=YdIb=XA=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1u4MB3-0008KQ-4Q
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 15:56:53 +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 14c5f803-1949-11f0-9eae-5ba50f476ded;
 Mon, 14 Apr 2025 17:56:52 +0200 (CEST)
Received: by mail-ed1-x536.google.com with SMTP id
 4fb4d7f45d1cf-5e6c18e2c7dso8470894a12.3
 for <xen-devel@lists.xenproject.org>; Mon, 14 Apr 2025 08:56:52 -0700 (PDT)
Received: from fedora.. (user-109-243-64-225.play-internet.pl.
 [109.243.64.225]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-acaa1cb4288sm951760866b.96.2025.04.14.08.56.50
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 14 Apr 2025 08:56: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: 14c5f803-1949-11f0-9eae-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1744646211; x=1745251011; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=8ZZ/u0hxjggT9kUQsInM8UwdJHGGhdTplVjxpUlrRZk=;
        b=QHaZhUwjCxxz3GyKnxMKs8NUkScPzUNNFQDJSvVszHDW99aDzlSVGQccG1Zr+2ZdI/
         A+UOixBhmkdIGLcfGU3o671Y7pTVCzUOdS5g38AI2BXo7+DCyuGhytnUCua/pQa6suxs
         XQiRMYzbjf+YpktwvOjruya2QWKTRAWGAmkIm8IdvA5c5mP743wYdH5Wy5YQnZh8X/TZ
         WPYodScLcOjmnRfBKrGfjvvGRlxW+IBlVmTt+f6MAFyclqUBoPgYn43nQ+hLj500k9TX
         fuIMMBDn5EqFZ+eS182GsaTLkfNa0r0y28TL/ZTNBBLR7UXslUo65eXiOxSFdeU5jdjg
         fbIg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744646211; x=1745251011;
        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=8ZZ/u0hxjggT9kUQsInM8UwdJHGGhdTplVjxpUlrRZk=;
        b=kKqGMCgMzVYTS9acDZJNnXbHHBl7IDSwF0RXoO6vMGXe13EGGc3MZdsigIPpCHanXJ
         XDT7pVD1UBf50yJuZPZYgY9pi6gci7XIZxT4lcTmAxL48/Ljn116UJt8/d0k7z7zFGxg
         +pa5Y/Tm0axBjywz+bXfwMiBYug5USZD2h866mTnb8mdc0IAfA8OMojKKU2s33iZUe4e
         /76vNIvgfjQHIZfahFhY7G4jlQztE06bw0OZI0/wf+LIigHLOxCSZV++DK32hKMLkxn8
         bfkA+VdjfR4QXZhYpzhU+uRPwPQAPI1z3QIhZbWtmUC2SsWE2srD10Px3JDyzM2wVuQQ
         PDDA==
X-Gm-Message-State: AOJu0Yxo+OWSM9wxS7+RrtwZQWpYSPVVSNOaDvMF8f+VVnF/QdsFvIaD
	ICG7d20zPaX+jQvPpkqArQn3nWQdrzcfx6EGw+ZJireKwge6nzcnECeu4w==
X-Gm-Gg: ASbGncvUgcJ1jClhBA6KFGT5+nyDNv/gnNfPLazkZN61lNeWhrA4yYzNjczAsy7dHdl
	AMGnrKYUvnwBKKGGopBu6vvDHvS/E3eqvVKLbpipX5I7GOeLB1lByuz/2h1X1MEK9YZN3efu+tg
	I90H+5UOtPJ5exwJAGaoiJLKTe6vM56CzxMszt6UDBFcz2yuy9lSzZ0hhCfobblyl4IYNZ2iez7
	SKWO+O6QuPcNdjvyBfyCFzrz/lYE6dElHwZhU8HrhGoNyEtbP/maFXK/WMs0Lx+HsARR869t4Yv
	Anqmn45XiObtk4a3U5Hc6dQD96jlI0oPeO+QXtYPBIYtVygwrDTowaVqkizRtK7UoMHQpY81Gi4
	Vthk7gNlIHg==
X-Google-Smtp-Source: AGHT+IEeNfVxBgh4tiqFXnMpNZk7El2K59Ap6eo71j00Ua28M7HCHIXAxo/7YFQ1dSrQkC+kkdkEzw==
X-Received: by 2002:a17:907:fd0e:b0:aca:de15:f2ad with SMTP id a640c23a62f3a-acade15fc19mr899424566b.60.1744646211037;
        Mon, 14 Apr 2025 08:56:51 -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>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v2 6/8] xen/common: dom0less: introduce common kernel.c
Date: Mon, 14 Apr 2025 17:56:39 +0200
Message-ID: <beb65be894965d74eac803baac1a9c72caee2b16.1744626032.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <cover.1744626032.git.oleksii.kurochko@gmail.com>
References: <cover.1744626032.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The following functions don't have arch specific things so it is moved to
common:
- kernel_prboe()
- kernel_load()
- output_length()

Functions necessary for dom0less are only moved.

The following changes are done:
- Swap __init and return type of kernel_decompress() function to be
  consistent with defintions of functions in other files. The same
  for output_length().
- Wrap by "ifdef CONFIG_ARM" the call of kernel_uimage_probe() in
  kernel_probe() as uImage isn't really used nowadays thereby leave
  kernel_uimage_probe() call here just for compatability with Arm code.
- Introduce kernel_zimage_probe() to cover the case that arch can have
  different zimage header.
- Add ASSERT() for kernel_load() to check that it argument isn't NULL.
- Make kernel_uimage_probe() non-static in Arm's code as it is used in
  common/kernel.c.

Introduce CONFIG_DOMAIN_BUILD_HELPERS to not provide stubs for archs
which don't provide enough functionality to enable it.
Select CONFIG_DOMAIN_BUILD_HELPERS for CONFIG_ARM as only Arm supports
it, at the moment.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Change in v2:
 - Drop inclusion of asm/kernel.h in kernel.c as everything necessary has
   been moved to xen/fdt-kernel.h.
---
 xen/arch/arm/Kconfig            |   1 +
 xen/arch/arm/kernel.c           | 221 +----------------------------
 xen/common/Kconfig              |   9 +-
 xen/common/device-tree/Makefile |   1 +
 xen/common/device-tree/kernel.c | 242 ++++++++++++++++++++++++++++++++
 xen/include/xen/fdt-kernel.h    |  13 ++
 6 files changed, 271 insertions(+), 216 deletions(-)
 create mode 100644 xen/common/device-tree/kernel.c

diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
index 060389c3c8..d63c0dc669 100644
--- a/xen/arch/arm/Kconfig
+++ b/xen/arch/arm/Kconfig
@@ -11,6 +11,7 @@ config ARM_64
 
 config ARM
 	def_bool y
+	select DOMAIN_BUILD_HELPERS
 	select FUNCTION_ALIGNMENT_4B
 	select GENERIC_UART_INIT
 	select HAS_ALTERNATIVE if HAS_VMAP
diff --git a/xen/arch/arm/kernel.c b/xen/arch/arm/kernel.c
index 164f417e75..1a5ae4b95c 100644
--- a/xen/arch/arm/kernel.c
+++ b/xen/arch/arm/kernel.c
@@ -161,105 +161,6 @@ static void __init kernel_zimage_load(struct kernel_info *info)
     iounmap(kernel);
 }
 
-static __init uint32_t output_length(char *image, unsigned long image_len)
-{
-    return *(uint32_t *)&image[image_len - 4];
-}
-
-static __init int kernel_decompress(struct bootmodule *mod, uint32_t offset)
-{
-    char *output, *input;
-    char magic[2];
-    int rc;
-    unsigned int kernel_order_out;
-    paddr_t output_size;
-    struct page_info *pages;
-    mfn_t mfn;
-    int i;
-    paddr_t addr = mod->start;
-    paddr_t size = mod->size;
-
-    if ( size < offset )
-        return -EINVAL;
-
-    /*
-     * It might be that gzip header does not appear at the start address
-     * (e.g. in case of compressed uImage) so take into account offset to
-     * gzip header.
-     */
-    addr += offset;
-    size -= offset;
-
-    if ( size < 2 )
-        return -EINVAL;
-
-    copy_from_paddr(magic, addr, sizeof(magic));
-
-    /* only gzip is supported */
-    if ( !gzip_check(magic, size) )
-        return -EINVAL;
-
-    input = ioremap_cache(addr, size);
-    if ( input == NULL )
-        return -EFAULT;
-
-    output_size = output_length(input, size);
-    kernel_order_out = get_order_from_bytes(output_size);
-    pages = alloc_domheap_pages(NULL, kernel_order_out, 0);
-    if ( pages == NULL )
-    {
-        iounmap(input);
-        return -ENOMEM;
-    }
-    mfn = page_to_mfn(pages);
-    output = vmap_contig(mfn, 1 << kernel_order_out);
-
-    rc = perform_gunzip(output, input, size);
-    clean_dcache_va_range(output, output_size);
-    iounmap(input);
-    vunmap(output);
-
-    if ( rc )
-    {
-        free_domheap_pages(pages, kernel_order_out);
-        return rc;
-    }
-
-    mod->start = page_to_maddr(pages);
-    mod->size = output_size;
-
-    /*
-     * Need to free pages after output_size here because they won't be
-     * freed by discard_initial_modules
-     */
-    i = PFN_UP(output_size);
-    for ( ; i < (1 << kernel_order_out); i++ )
-        free_domheap_page(pages + i);
-
-    /*
-     * When using static heap feature, don't give bootmodules memory back to
-     * the heap allocator
-     */
-    if ( using_static_heap )
-        return 0;
-
-    /*
-     * When freeing the kernel, we need to pass the module start address and
-     * size as they were before taking an offset to gzip header into account,
-     * so that the entire region will be freed.
-     */
-    addr -= offset;
-    size += offset;
-
-    /*
-     * Free the original kernel, update the pointers to the
-     * decompressed kernel
-     */
-    fw_unreserved_regions(addr, addr + size, init_domheap_pages, 0);
-
-    return 0;
-}
-
 /*
  * Uimage CPU Architecture Codes
  */
@@ -272,8 +173,8 @@ static __init int kernel_decompress(struct bootmodule *mod, uint32_t offset)
 /*
  * Check if the image is a uImage and setup kernel_info
  */
-static int __init kernel_uimage_probe(struct kernel_info *info,
-                                      struct bootmodule *mod)
+int __init kernel_uimage_probe(struct kernel_info *info,
+                               struct bootmodule *mod)
 {
     struct {
         __be32 magic;   /* Image Header Magic Number */
@@ -503,130 +404,20 @@ static int __init kernel_zimage32_probe(struct kernel_info *info,
     return 0;
 }
 
-int __init kernel_probe(struct kernel_info *info,
-                        const struct dt_device_node *domain)
+int __init kernel_zimage_probe(struct kernel_info *info, paddr_t addr,
+                               paddr_t size)
 {
-    struct bootmodule *mod = NULL;
-    struct bootcmdline *cmd = NULL;
-    struct dt_device_node *node;
-    u64 kernel_addr, initrd_addr, dtb_addr, size;
     int rc;
 
-    /*
-     * We need to initialize start to 0. This field may be populated during
-     * kernel_xxx_probe() if the image has a fixed entry point (for e.g.
-     * uimage.ep).
-     * We will use this to determine if the image has a fixed entry point or
-     * the load address should be used as the start address.
-     */
-    info->entry = 0;
-
-    /* domain is NULL only for the hardware domain */
-    if ( domain == NULL )
-    {
-        ASSERT(is_hardware_domain(info->d));
-
-        mod = boot_module_find_by_kind(BOOTMOD_KERNEL);
-
-        info->kernel_bootmodule = mod;
-        info->initrd_bootmodule = boot_module_find_by_kind(BOOTMOD_RAMDISK);
-
-        cmd = boot_cmdline_find_by_kind(BOOTMOD_KERNEL);
-        if ( cmd )
-            info->cmdline = &cmd->cmdline[0];
-    }
-    else
-    {
-        const char *name = NULL;
-
-        dt_for_each_child_node(domain, node)
-        {
-            if ( dt_device_is_compatible(node, "multiboot,kernel") )
-            {
-                u32 len;
-                const __be32 *val;
-
-                val = dt_get_property(node, "reg", &len);
-                dt_get_range(&val, node, &kernel_addr, &size);
-                mod = boot_module_find_by_addr_and_kind(
-                        BOOTMOD_KERNEL, kernel_addr);
-                info->kernel_bootmodule = mod;
-            }
-            else if ( dt_device_is_compatible(node, "multiboot,ramdisk") )
-            {
-                u32 len;
-                const __be32 *val;
-
-                val = dt_get_property(node, "reg", &len);
-                dt_get_range(&val, node, &initrd_addr, &size);
-                info->initrd_bootmodule = boot_module_find_by_addr_and_kind(
-                        BOOTMOD_RAMDISK, initrd_addr);
-            }
-            else if ( dt_device_is_compatible(node, "multiboot,device-tree") )
-            {
-                uint32_t len;
-                const __be32 *val;
-
-                val = dt_get_property(node, "reg", &len);
-                if ( val == NULL )
-                    continue;
-                dt_get_range(&val, node, &dtb_addr, &size);
-                info->dtb_bootmodule = boot_module_find_by_addr_and_kind(
-                        BOOTMOD_GUEST_DTB, dtb_addr);
-            }
-            else
-                continue;
-        }
-        name = dt_node_name(domain);
-        cmd = boot_cmdline_find_by_name(name);
-        if ( cmd )
-            info->cmdline = &cmd->cmdline[0];
-    }
-    if ( !mod || !mod->size )
-    {
-        printk(XENLOG_ERR "Missing kernel boot module?\n");
-        return -ENOENT;
-    }
-
-    printk("Loading %pd kernel from boot module @ %"PRIpaddr"\n",
-           info->d, info->kernel_bootmodule->start);
-    if ( info->initrd_bootmodule )
-        printk("Loading ramdisk from boot module @ %"PRIpaddr"\n",
-               info->initrd_bootmodule->start);
-
-    /*
-     * uImage header always appears at the top of the image (even compressed),
-     * so it needs to be probed first. Note that in case of compressed uImage,
-     * kernel_decompress is called from kernel_uimage_probe making the function
-     * self-containing (i.e. fall through only in case of a header not found).
-     */
-    rc = kernel_uimage_probe(info, mod);
-    if ( rc != -ENOENT )
-        return rc;
-
-    /*
-     * If it is a gzip'ed image, 32bit or 64bit, uncompress it.
-     * At this point, gzip header appears (if at all) at the top of the image,
-     * so pass 0 as an offset.
-     */
-    rc = kernel_decompress(mod, 0);
-    if ( rc && rc != -EINVAL )
-        return rc;
-
 #ifdef CONFIG_ARM_64
-    rc = kernel_zimage64_probe(info, mod->start, mod->size);
+    rc = kernel_zimage64_probe(info, addr, size);
     if (rc < 0)
 #endif
-        rc = kernel_zimage32_probe(info, mod->start, mod->size);
+        rc = kernel_zimage32_probe(info, addr, size);
 
     return rc;
 }
 
-void __init kernel_load(struct kernel_info *info)
-{
-    info->load(info);
-}
-
 /*
  * Local variables:
  * mode: C
diff --git a/xen/common/Kconfig b/xen/common/Kconfig
index 2fd79aea5b..b2f915c429 100644
--- a/xen/common/Kconfig
+++ b/xen/common/Kconfig
@@ -14,13 +14,20 @@ config CORE_PARKING
 
 config DOM0LESS_BOOT
 	bool "Dom0less boot support" if EXPERT
-	depends on HAS_DOM0LESS
+	depends on HAS_DOM0LESS && DOMAIN_BUILD_HELPERS
 	default y
 	help
 	  Dom0less boot support enables Xen to create and start domU guests during
 	  Xen boot without the need of a control domain (Dom0), which could be
 	  present anyway.
 
+config DOMAIN_BUILD_HELPERS
+	bool
+	help
+	  Introduce functions necessary for working with domain creation, kernel,
+	  etc. As an examples, these type of functions are going to be used by
+	  CONFIG_DOM0LESS_BOOT.
+
 config GRANT_TABLE
 	bool "Grant table support" if EXPERT
 	default y
diff --git a/xen/common/device-tree/Makefile b/xen/common/device-tree/Makefile
index f3dafc9b81..e88a4d5799 100644
--- a/xen/common/device-tree/Makefile
+++ b/xen/common/device-tree/Makefile
@@ -4,3 +4,4 @@ obj-y += device-tree.o
 obj-$(CONFIG_DOM0LESS_BOOT) += dom0less-build.o
 obj-$(CONFIG_OVERLAY_DTB) += dt-overlay.o
 obj-y += intc.o
+obj-$(CONFIG_DOMAIN_BUILD_HELPERS) += kernel.o
diff --git a/xen/common/device-tree/kernel.c b/xen/common/device-tree/kernel.c
new file mode 100644
index 0000000000..1bf3bbf64e
--- /dev/null
+++ b/xen/common/device-tree/kernel.c
@@ -0,0 +1,242 @@
+#include <xen/bootfdt.h>
+#include <xen/device_tree.h>
+#include <xen/fdt-kernel.h>
+#include <xen/errno.h>
+#include <xen/gunzip.h>
+#include <xen/init.h>
+#include <xen/lib.h>
+#include <xen/mm.h>
+#include <xen/pfn.h>
+#include <xen/sched.h>
+#include <xen/types.h>
+#include <xen/vmap.h>
+
+#include <asm/page.h>
+#include <asm/setup.h>
+
+static uint32_t __init output_length(char *image, unsigned long image_len)
+{
+    return *(uint32_t *)&image[image_len - 4];
+}
+
+int __init kernel_decompress(struct bootmodule *mod, uint32_t offset)
+{
+    char *output, *input;
+    char magic[2];
+    int rc;
+    unsigned int kernel_order_out;
+    paddr_t output_size;
+    struct page_info *pages;
+    mfn_t mfn;
+    int i;
+    paddr_t addr = mod->start;
+    paddr_t size = mod->size;
+
+    if ( size < offset )
+        return -EINVAL;
+
+    /*
+     * It might be that gzip header does not appear at the start address
+     * (e.g. in case of compressed uImage) so take into account offset to
+     * gzip header.
+     */
+    addr += offset;
+    size -= offset;
+
+    if ( size < 2 )
+        return -EINVAL;
+
+    copy_from_paddr(magic, addr, sizeof(magic));
+
+    /* only gzip is supported */
+    if ( !gzip_check(magic, size) )
+        return -EINVAL;
+
+    input = ioremap_cache(addr, size);
+    if ( input == NULL )
+        return -EFAULT;
+
+    output_size = output_length(input, size);
+    kernel_order_out = get_order_from_bytes(output_size);
+    pages = alloc_domheap_pages(NULL, kernel_order_out, 0);
+    if ( pages == NULL )
+    {
+        iounmap(input);
+        return -ENOMEM;
+    }
+    mfn = page_to_mfn(pages);
+    output = vmap_contig(mfn, 1 << kernel_order_out);
+
+    rc = perform_gunzip(output, input, size);
+    clean_dcache_va_range(output, output_size);
+    iounmap(input);
+    vunmap(output);
+
+    if ( rc )
+    {
+        free_domheap_pages(pages, kernel_order_out);
+        return rc;
+    }
+
+    mod->start = page_to_maddr(pages);
+    mod->size = output_size;
+
+    /*
+     * Need to free pages after output_size here because they won't be
+     * freed by discard_initial_modules
+     */
+    i = PFN_UP(output_size);
+    for ( ; i < (1 << kernel_order_out); i++ )
+        free_domheap_page(pages + i);
+
+    /*
+     * When using static heap feature, don't give bootmodules memory back to
+     * the heap allocator
+     */
+    if ( using_static_heap )
+        return 0;
+
+    /*
+     * When freeing the kernel, we need to pass the module start address and
+     * size as they were before taking an offset to gzip header into account,
+     * so that the entire region will be freed.
+     */
+    addr -= offset;
+    size += offset;
+
+    /*
+     * Free the original kernel, update the pointers to the
+     * decompressed kernel
+     */
+    fw_unreserved_regions(addr, addr + size, init_domheap_pages, 0);
+
+    return 0;
+}
+
+int __init kernel_probe(struct kernel_info *info,
+                        const struct dt_device_node *domain)
+{
+    struct bootmodule *mod = NULL;
+    struct bootcmdline *cmd = NULL;
+    struct dt_device_node *node;
+    u64 kernel_addr, initrd_addr, dtb_addr, size;
+    int rc;
+
+    /*
+     * We need to initialize start to 0. This field may be populated during
+     * kernel_xxx_probe() if the image has a fixed entry point (for e.g.
+     * uimage.ep).
+     * We will use this to determine if the image has a fixed entry point or
+     * the load address should be used as the start address.
+     */
+    info->entry = 0;
+
+    /* domain is NULL only for the hardware domain */
+    if ( domain == NULL )
+    {
+        ASSERT(is_hardware_domain(info->d));
+
+        mod = boot_module_find_by_kind(BOOTMOD_KERNEL);
+
+        info->kernel_bootmodule = mod;
+        info->initrd_bootmodule = boot_module_find_by_kind(BOOTMOD_RAMDISK);
+
+        cmd = boot_cmdline_find_by_kind(BOOTMOD_KERNEL);
+        if ( cmd )
+            info->cmdline = &cmd->cmdline[0];
+    }
+    else
+    {
+        const char *name = NULL;
+
+        dt_for_each_child_node(domain, node)
+        {
+            if ( dt_device_is_compatible(node, "multiboot,kernel") )
+            {
+                u32 len;
+                const __be32 *val;
+
+                val = dt_get_property(node, "reg", &len);
+                dt_get_range(&val, node, &kernel_addr, &size);
+                mod = boot_module_find_by_addr_and_kind(
+                        BOOTMOD_KERNEL, kernel_addr);
+                info->kernel_bootmodule = mod;
+            }
+            else if ( dt_device_is_compatible(node, "multiboot,ramdisk") )
+            {
+                u32 len;
+                const __be32 *val;
+
+                val = dt_get_property(node, "reg", &len);
+                dt_get_range(&val, node, &initrd_addr, &size);
+                info->initrd_bootmodule = boot_module_find_by_addr_and_kind(
+                        BOOTMOD_RAMDISK, initrd_addr);
+            }
+            else if ( dt_device_is_compatible(node, "multiboot,device-tree") )
+            {
+                uint32_t len;
+                const __be32 *val;
+
+                val = dt_get_property(node, "reg", &len);
+                if ( val == NULL )
+                    continue;
+                dt_get_range(&val, node, &dtb_addr, &size);
+                info->dtb_bootmodule = boot_module_find_by_addr_and_kind(
+                        BOOTMOD_GUEST_DTB, dtb_addr);
+            }
+            else
+                continue;
+        }
+        name = dt_node_name(domain);
+        cmd = boot_cmdline_find_by_name(name);
+        if ( cmd )
+            info->cmdline = &cmd->cmdline[0];
+    }
+    if ( !mod || !mod->size )
+    {
+        printk(XENLOG_ERR "Missing kernel boot module?\n");
+        return -ENOENT;
+    }
+
+    printk("Loading %pd kernel from boot module @ %"PRIpaddr"\n",
+           info->d, info->kernel_bootmodule->start);
+    if ( info->initrd_bootmodule )
+        printk("Loading ramdisk from boot module @ %"PRIpaddr"\n",
+               info->initrd_bootmodule->start);
+
+    /*
+     * uImage isn't really used nowadays thereby leave kernel_uimage_probe()
+     * call here just for compatability with Arm code.
+     */
+#ifdef CONFIG_ARM
+    /*
+     * uImage header always appears at the top of the image (even compressed),
+     * so it needs to be probed first. Note that in case of compressed uImage,
+     * kernel_decompress is called from kernel_uimage_probe making the function
+     * self-containing (i.e. fall through only in case of a header not found).
+     */
+    rc = kernel_uimage_probe(info, mod);
+    if ( rc != -ENOENT )
+        return rc;
+#endif
+
+    /*
+     * If it is a gzip'ed image, 32bit or 64bit, uncompress it.
+     * At this point, gzip header appears (if at all) at the top of the image,
+     * so pass 0 as an offset.
+     */
+    rc = kernel_decompress(mod, 0);
+    if ( rc && rc != -EINVAL )
+        return rc;
+
+    rc = kernel_zimage_probe(info, mod->start, mod->size);
+
+    return rc;
+}
+
+void __init kernel_load(struct kernel_info *info)
+{
+    ASSERT(info && info->load);
+
+    info->load(info);
+}
diff --git a/xen/include/xen/fdt-kernel.h b/xen/include/xen/fdt-kernel.h
index c81e759423..d85324c867 100644
--- a/xen/include/xen/fdt-kernel.h
+++ b/xen/include/xen/fdt-kernel.h
@@ -121,6 +121,19 @@ int kernel_probe(struct kernel_info *info, const struct dt_device_node *domain);
  */
 void kernel_load(struct kernel_info *info);
 
+int kernel_decompress(struct bootmodule *mod, uint32_t offset);
+
+int kernel_zimage_probe(struct kernel_info *info, paddr_t addr, paddr_t size);
+
+/*
+ * uImage isn't really used nowadays thereby leave kernel_uimage_probe()
+ * call here just for compatability with Arm code.
+ */
+#ifdef CONFIG_ARM
+struct bootmodule;
+int kernel_uimage_probe(struct kernel_info *info, struct bootmodule *mod);
+#endif
+
 #endif /* __XEN_FDT_KERNEL_H__ */
 
 /*
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Mon Apr 14 15:56:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 15:56:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.950717.1347007 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4MB7-0001h5-6g; Mon, 14 Apr 2025 15:56:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 950717.1347007; Mon, 14 Apr 2025 15:56: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 1u4MB7-0001gr-2Q; Mon, 14 Apr 2025 15:56:57 +0000
Received: by outflank-mailman (input) for mailman id 950717;
 Mon, 14 Apr 2025 15:56: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=YdIb=XA=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1u4MB5-0008LI-Mv
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 15:56:55 +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 159654b7-1949-11f0-9ffb-bf95429c2676;
 Mon, 14 Apr 2025 17:56:53 +0200 (CEST)
Received: by mail-ej1-x62a.google.com with SMTP id
 a640c23a62f3a-ac298c8fa50so726759766b.1
 for <xen-devel@lists.xenproject.org>; Mon, 14 Apr 2025 08:56:53 -0700 (PDT)
Received: from fedora.. (user-109-243-64-225.play-internet.pl.
 [109.243.64.225]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-acaa1cb4288sm951760866b.96.2025.04.14.08.56.51
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 14 Apr 2025 08:56: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: 159654b7-1949-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1744646212; x=1745251012; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ACPMjXk9mJ90kJc+Qerlr9VRihJ7jzc3C4qF/ym8lGA=;
        b=ZDcLvQi51+oNWUGqKFUxk84BS3lpt79kTyeDZTsgP/eZYZwKC9NakAYbVy1WKHgyjo
         Vqs9RdnZVLsLwZ+NdqieRo5+13NIaIODcsASK+HYl4VSQ/4/YLh37OBVBqkAFl0XgaO1
         5qyeKe54otU+lIIAbQNuzFSrXCj0JW54qLSt7YR4n8A7lPklKusdfFblrtL8cxuvgTbb
         DVKVTl0TEz+NP3EzKoTBYKTvIBjDh3CQXo7p0JHA5N2IQtWCUFwBKaD/vaGfixfqP8lp
         aGvP/QcQCU3sH4rhjU5mMb09PPNwJi8zPyo/H4kXOBpJSNuISsrXk7oi6Ql/hDk3ZvB9
         c/8g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744646212; x=1745251012;
        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=ACPMjXk9mJ90kJc+Qerlr9VRihJ7jzc3C4qF/ym8lGA=;
        b=MJLprTmFgLt2F6FS6/ADr+Ug/9akhKYXw+enmBplx5QCYtMkl+q9iC+QjLdCabyzGi
         BIb3FUTpHT4e/skhemVjwKvcv6pNxNpdWk1Tpj95fmsLwfOkcT8n9Ym8xe/lD4dlq1hl
         mIIRNeqVH8bc0BJyGxAcmKQnqnzW/zLynSoaeBf85yobLCuTw6yr8W2tHQkKUTMf60j/
         mmgWVAdBFlVBXrdtBWe1TFFP3Gr6qZcllBkHvan/Vl49AY3Gp47Gf4aCUuAnUqck4Pea
         tmVQp65oafSnV68O04yBAW3JoqieBCs97K2da12DW6tWa2JVtJF4asEiPx9I+8ikaJbJ
         xlDw==
X-Gm-Message-State: AOJu0YwYDx3wqrvtYt7cdYZhFarIJ68XZ7EN7KtQeVY89V1MlVbYUGYc
	iRV1RCmTItJGoDVTREqJNsGeIJCFqslBUCo4+bRsXyT0XVzj7Ztv75XcUA==
X-Gm-Gg: ASbGncvOK39ClHER4S0Cp+t9dLAG0r2XF1ibwVqEfnVKvbMfB1AT6viYC5+BrW2arif
	cH0oRzU5h9yPqM3lYCCnlHqUagGlruJ93Jk4VzmMZzklfiedfJJrc7L92TBeQubwxGxx+E2JdJc
	p/TNBLKhWJdmAzDu8iPqrBs9pv4bs7gmf0bGNBK+On1JCGIJeWaXtTs2+oXGwHEfuEDJUS0hjc+
	B0KyMrwUfg7twvfE+J0sDaCcjgavL3e6cMq3GRrcPddDZSpLA5HyIL1s+Ek8TI9NcO/vuAqLXNb
	hIsbBcqABEhdU3BXadkYY5GkOIgI9+2ZJvmUClu9yG+DVD1512izZZefbD2UKNyd4jK8+bIjtiu
	t24Q8C04lXA==
X-Google-Smtp-Source: AGHT+IF3SjysRv98H53A6BxgnPvW1cPNx51aBxIe/73BMU9A3UizkVh7JtB2ITkhTVvrKw0+c17kzQ==
X-Received: by 2002:a17:906:cec5:b0:aca:d63b:3ebe with SMTP id a640c23a62f3a-acad63b4519mr961042466b.21.1744646212270;
        Mon, 14 Apr 2025 08:56:52 -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>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v2 7/8] xen/common: dom0less: introduce common domain-build.c
Date: Mon, 14 Apr 2025 17:56:40 +0200
Message-ID: <9dbf651ce177a7292f80879373e86a51305f216e.1744626032.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <cover.1744626032.git.oleksii.kurochko@gmail.com>
References: <cover.1744626032.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Some functions of Arm's domain_build.c could be reused by dom0less or other
features connected to domain construction/build.

The following functions are moved to common:
- get_allocation_size().
- allocate_domheap_memory().
- guest_map_pages().
- allocate_bank_memory().
- add_hwdom_free_regions().
- find_unallocated_memory().
- allocate_memory().
- dtb_load().
- initrd_load().

Prototype of dtb_load() and initrd_load() is updated to recieve a pointer
to copy_to_guest_phys() as some archs require
copy_to_guest_phys_fluch_dcache().

Update arm/include/asm/Makefile to generate  domain-build.h for Arm as it is
used by domain-build.c.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Change in v2:
 - Use xen/fdt-domain-build.h instead of asm/domain_build.h.
---
 xen/arch/arm/domain_build.c           | 397 +------------------------
 xen/common/device-tree/Makefile       |   1 +
 xen/common/device-tree/domain-build.c | 404 ++++++++++++++++++++++++++
 xen/include/xen/fdt-domain-build.h    |  33 ++-
 4 files changed, 439 insertions(+), 396 deletions(-)
 create mode 100644 xen/common/device-tree/domain-build.c

diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index 75f048f58c..86fcaefa26 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -119,18 +119,6 @@ struct vcpu *__init alloc_dom0_vcpu0(struct domain *dom0)
     return vcpu_create(dom0, 0);
 }
 
-unsigned int __init get_allocation_size(paddr_t size)
-{
-    /*
-     * get_order_from_bytes returns the order greater than or equal to
-     * the given size, but we need less than or equal. Adding one to
-     * the size pushes an evenly aligned size into the next order, so
-     * we can then unconditionally subtract 1 from the order which is
-     * returned.
-     */
-    return get_order_from_bytes(size + 1) - 1;
-}
-
 /*
  * Insert the given pages into a memory bank, banks are ordered by address.
  *
@@ -417,98 +405,6 @@ static void __init allocate_memory_11(struct domain *d,
     }
 }
 
-bool __init allocate_domheap_memory(struct domain *d, paddr_t tot_size,
-                                    alloc_domheap_mem_cb cb, void *extra)
-{
-    unsigned int max_order = UINT_MAX;
-
-    while ( tot_size > 0 )
-    {
-        unsigned int order = get_allocation_size(tot_size);
-        struct page_info *pg;
-
-        order = min(max_order, order);
-
-        pg = alloc_domheap_pages(d, order, 0);
-        if ( !pg )
-        {
-            /*
-             * If we can't allocate one page, then it is unlikely to
-             * succeed in the next iteration. So bail out.
-             */
-            if ( !order )
-                return false;
-
-            /*
-             * If we can't allocate memory with order, then it is
-             * unlikely to succeed in the next iteration.
-             * Record the order - 1 to avoid re-trying.
-             */
-            max_order = order - 1;
-            continue;
-        }
-
-        if ( !cb(d, pg, order, extra) )
-            return false;
-
-        tot_size -= (1ULL << (PAGE_SHIFT + order));
-    }
-
-    return true;
-}
-
-static bool __init guest_map_pages(struct domain *d, struct page_info *pg,
-                                   unsigned int order, void *extra)
-{
-    gfn_t *sgfn = (gfn_t *)extra;
-    int res;
-
-    BUG_ON(!sgfn);
-    res = guest_physmap_add_page(d, *sgfn, page_to_mfn(pg), order);
-    if ( res )
-    {
-        dprintk(XENLOG_ERR, "Failed map pages to DOMU: %d", res);
-        return false;
-    }
-
-    *sgfn = gfn_add(*sgfn, 1UL << order);
-
-    return true;
-}
-
-bool __init allocate_bank_memory(struct kernel_info *kinfo, gfn_t sgfn,
-                                 paddr_t tot_size)
-{
-    struct membanks *mem = kernel_info_get_mem(kinfo);
-    struct domain *d = kinfo->d;
-    struct membank *bank;
-
-    /*
-     * allocate_bank_memory can be called with a tot_size of zero for
-     * the second memory bank. It is not an error and we can safely
-     * avoid creating a zero-size memory bank.
-     */
-    if ( tot_size == 0 )
-        return true;
-
-    bank = &mem->bank[mem->nr_banks];
-    bank->start = gfn_to_gaddr(sgfn);
-    bank->size = tot_size;
-
-    /*
-     * Allocate pages from the heap until tot_size is zero and map them to the
-     * guest using guest_map_pages, passing the starting gfn as extra parameter
-     * for the map operation.
-     */
-    if ( !allocate_domheap_memory(d, tot_size, guest_map_pages, &sgfn) )
-        return false;
-
-    mem->nr_banks++;
-    kinfo->unassigned_mem -= bank->size;
-
-    return true;
-}
-
 /*
  * When PCI passthrough is available we want to keep the
  * "linux,pci-domain" in sync for every host bridge.
@@ -899,226 +795,6 @@ int __init add_ext_regions(unsigned long s_gfn, unsigned long e_gfn,
     return 0;
 }
 
-static int __init add_hwdom_free_regions(unsigned long s_gfn,
-                                         unsigned long e_gfn, void *data)
-{
-    struct membanks *free_regions = data;
-    paddr_t start, size;
-    paddr_t s = pfn_to_paddr(s_gfn);
-    paddr_t e = pfn_to_paddr(e_gfn);
-    unsigned int i, j;
-
-    if ( free_regions->nr_banks >= free_regions->max_banks )
-        return 0;
-
-    /*
-     * Both start and size of the free region should be 2MB aligned to
-     * potentially allow superpage mapping.
-     */
-    start = (s + SZ_2M - 1) & ~(SZ_2M - 1);
-    if ( start > e )
-        return 0;
-
-    /*
-     * e is actually "end-1" because it is called by rangeset functions
-     * which are inclusive of the last address.
-     */
-    e += 1;
-    size = (e - start) & ~(SZ_2M - 1);
-
-    /* Find the insert position (descending order). */
-    for ( i = 0; i < free_regions->nr_banks ; i++ )
-        if ( size > free_regions->bank[i].size )
-            break;
-
-    /* Move the other banks to make space. */
-    for ( j = free_regions->nr_banks; j > i ; j-- )
-    {
-        free_regions->bank[j].start = free_regions->bank[j - 1].start;
-        free_regions->bank[j].size = free_regions->bank[j - 1].size;
-    }
-
-    free_regions->bank[i].start = start;
-    free_regions->bank[i].size = size;
-    free_regions->nr_banks++;
-
-    return 0;
-}
-
-/*
- * Find unused regions of Host address space which can be exposed to domain
- * using the host memory layout. In order to calculate regions we exclude every
- * region passed in mem_banks from the Host RAM.
- */
-static int __init find_unallocated_memory(const struct kernel_info *kinfo,
-                                          const struct membanks *mem_banks[],
-                                          unsigned int nr_mem_banks,
-                                          struct membanks *free_regions,
-                                          int (*cb)(unsigned long s_gfn,
-                                                    unsigned long e_gfn,
-                                                    void *data))
-{
-    const struct membanks *mem = bootinfo_get_mem();
-    struct rangeset *unalloc_mem;
-    paddr_t start, end;
-    unsigned int i, j;
-    int res;
-
-    ASSERT(domain_use_host_layout(kinfo->d));
-
-    unalloc_mem = rangeset_new(NULL, NULL, 0);
-    if ( !unalloc_mem )
-        return -ENOMEM;
-
-    /* Start with all available RAM */
-    for ( i = 0; i < mem->nr_banks; i++ )
-    {
-        start = mem->bank[i].start;
-        end = mem->bank[i].start + mem->bank[i].size;
-        res = rangeset_add_range(unalloc_mem, PFN_DOWN(start),
-                                 PFN_DOWN(end - 1));
-        if ( res )
-        {
-            printk(XENLOG_ERR "Failed to add: %#"PRIpaddr"->%#"PRIpaddr"\n",
-                   start, end);
-            goto out;
-        }
-    }
-
-    /* Remove all regions listed in mem_banks */
-    for ( i = 0; i < nr_mem_banks; i++ )
-        for ( j = 0; j < mem_banks[i]->nr_banks; j++ )
-        {
-            start = mem_banks[i]->bank[j].start;
-
-            /* Shared memory banks can contain INVALID_PADDR as start */
-            if ( INVALID_PADDR == start )
-                continue;
-
-            end = mem_banks[i]->bank[j].start + mem_banks[i]->bank[j].size;
-            res = rangeset_remove_range(unalloc_mem, PFN_DOWN(start),
-                                        PFN_DOWN(end - 1));
-            if ( res )
-            {
-                printk(XENLOG_ERR
-                       "Failed to add: %#"PRIpaddr"->%#"PRIpaddr", error %d\n",
-                       start, end, res);
-                goto out;
-            }
-        }
-
-    start = 0;
-    end = (1ULL << p2m_ipa_bits) - 1;
-    res = rangeset_report_ranges(unalloc_mem, PFN_DOWN(start), PFN_DOWN(end),
-                                 cb, free_regions);
-    if ( res )
-        free_regions->nr_banks = 0;
-    else if ( !free_regions->nr_banks )
-        res = -ENOENT;
-
-out:
-    rangeset_destroy(unalloc_mem);
-
-    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 = GUEST_RAM_BANKS;
-    struct membanks *hwdom_free_mem = 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) )
-    {
-        struct membanks *gnttab = membanks_xzalloc(1, MEMORY);
-        /*
-         * Exclude the following regions:
-         * 1) Remove reserved memory
-         * 2) Grant table assigned to hwdom
-         */
-        const struct membanks *mem_banks[] = {
-            bootinfo_get_reserved_mem(),
-            gnttab,
-        };
-
-        if ( !gnttab )
-            goto fail;
-
-        gnttab->nr_banks = 1;
-        gnttab->bank[0].start = kinfo->gnttab_start;
-        gnttab->bank[0].size = kinfo->gnttab_size;
-
-        hwdom_free_mem = membanks_xzalloc(NR_MEM_BANKS, MEMORY);
-        if ( !hwdom_free_mem )
-            goto fail;
-
-        if ( find_unallocated_memory(kinfo, mem_banks, ARRAY_SIZE(mem_banks),
-                                     hwdom_free_mem, add_hwdom_free_regions) )
-            goto fail;
-
-        nr_banks = hwdom_free_mem->nr_banks;
-        xfree(gnttab);
-    }
-
-    for ( i = 0; kinfo->unassigned_mem > 0 && nr_banks > 0; i++, nr_banks-- )
-    {
-        paddr_t bank_start, bank_size;
-
-        if ( is_hardware_domain(d) )
-        {
-            bank_start = hwdom_free_mem->bank[i].start;
-            bank_size = hwdom_free_mem->bank[i].size;
-        }
-        else
-        {
-            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];
-        }
-
-        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_free_mem);
-    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)
 {
@@ -2058,75 +1734,6 @@ static int __init prepare_dtb_hwdom(struct domain *d, struct kernel_info *kinfo)
     return -EINVAL;
 }
 
-static void __init dtb_load(struct kernel_info *kinfo)
-{
-    unsigned long left;
-
-    printk("Loading %pd DTB to 0x%"PRIpaddr"-0x%"PRIpaddr"\n",
-           kinfo->d, kinfo->dtb_paddr,
-           kinfo->dtb_paddr + fdt_totalsize(kinfo->fdt));
-
-    left = copy_to_guest_phys_flush_dcache(kinfo->d, kinfo->dtb_paddr,
-                                           kinfo->fdt,
-                                           fdt_totalsize(kinfo->fdt));
-
-    if ( left != 0 )
-        panic("Unable to copy the DTB to %pd memory (left = %lu bytes)\n",
-              kinfo->d, left);
-    xfree(kinfo->fdt);
-}
-
-static void __init initrd_load(struct kernel_info *kinfo)
-{
-    const struct bootmodule *mod = kinfo->initrd_bootmodule;
-    paddr_t load_addr = kinfo->initrd_paddr;
-    paddr_t paddr, len;
-    int node;
-    int res;
-    __be32 val[2];
-    __be32 *cellp;
-    void __iomem *initrd;
-
-    if ( !mod || !mod->size )
-        return;
-
-    paddr = mod->start;
-    len = mod->size;
-
-    printk("Loading %pd initrd from %"PRIpaddr" to 0x%"PRIpaddr"-0x%"PRIpaddr"\n",
-           kinfo->d, paddr, load_addr, load_addr + len);
-
-    /* Fix up linux,initrd-start and linux,initrd-end in /chosen */
-    node = fdt_path_offset(kinfo->fdt, "/chosen");
-    if ( node < 0 )
-        panic("Cannot find the /chosen node\n");
-
-    cellp = (__be32 *)val;
-    dt_set_cell(&cellp, ARRAY_SIZE(val), load_addr);
-    res = fdt_setprop_inplace(kinfo->fdt, node, "linux,initrd-start",
-                              val, sizeof(val));
-    if ( res )
-        panic("Cannot fix up \"linux,initrd-start\" property\n");
-
-    cellp = (__be32 *)val;
-    dt_set_cell(&cellp, ARRAY_SIZE(val), load_addr + len);
-    res = fdt_setprop_inplace(kinfo->fdt, node, "linux,initrd-end",
-                              val, sizeof(val));
-    if ( res )
-        panic("Cannot fix up \"linux,initrd-end\" property\n");
-
-    initrd = ioremap_wc(paddr, len);
-    if ( !initrd )
-        panic("Unable to map the %pd initrd\n", kinfo->d);
-
-    res = copy_to_guest_phys_flush_dcache(kinfo->d, load_addr,
-                                          initrd, len);
-    if ( res != 0 )
-        panic("Unable to copy the initrd in the %pd memory\n", kinfo->d);
-
-    iounmap(initrd);
-}
-
 /*
  * Allocate the event channel PPIs and setup the HVM_PARAM_CALLBACK_IRQ.
  * The allocated IRQ will be found in d->arch.evtchn_irq.
@@ -2219,8 +1826,8 @@ int __init construct_domain(struct domain *d, struct kernel_info *kinfo)
      */
     kernel_load(kinfo);
     /* initrd_load will fix up the fdt, so call it before dtb_load */
-    initrd_load(kinfo);
-    dtb_load(kinfo);
+    initrd_load(kinfo, copy_to_guest_phys_flush_dcache);
+    dtb_load(kinfo, copy_to_guest_phys_flush_dcache);
 
     memset(regs, 0, sizeof(*regs));
 
diff --git a/xen/common/device-tree/Makefile b/xen/common/device-tree/Makefile
index e88a4d5799..831b91399b 100644
--- a/xen/common/device-tree/Makefile
+++ b/xen/common/device-tree/Makefile
@@ -1,6 +1,7 @@
 obj-y += bootfdt.init.o
 obj-y += bootinfo.init.o
 obj-y += device-tree.o
+obj-$(CONFIG_DOMAIN_BUILD_HELPERS) += domain-build.o
 obj-$(CONFIG_DOM0LESS_BOOT) += dom0less-build.o
 obj-$(CONFIG_OVERLAY_DTB) += dt-overlay.o
 obj-y += intc.o
diff --git a/xen/common/device-tree/domain-build.c b/xen/common/device-tree/domain-build.c
new file mode 100644
index 0000000000..69257a15ba
--- /dev/null
+++ b/xen/common/device-tree/domain-build.c
@@ -0,0 +1,404 @@
+#include <xen/bootfdt.h>
+#include <xen/fdt-domain-build.h>
+#include <xen/init.h>
+#include <xen/lib.h>
+#include <xen/libfdt/libfdt.h>
+#include <xen/mm.h>
+#include <xen/sched.h>
+#include <xen/sizes.h>
+#include <xen/types.h>
+#include <xen/vmap.h>
+
+#include <asm/p2m.h>
+
+bool __init allocate_domheap_memory(struct domain *d, paddr_t tot_size,
+                                    alloc_domheap_mem_cb cb, void *extra)
+{
+    unsigned int max_order = UINT_MAX;
+
+    while ( tot_size > 0 )
+    {
+        unsigned int order = get_allocation_size(tot_size);
+        struct page_info *pg;
+
+        order = min(max_order, order);
+
+        pg = alloc_domheap_pages(d, order, 0);
+        if ( !pg )
+        {
+            /*
+             * If we can't allocate one page, then it is unlikely to
+             * succeed in the next iteration. So bail out.
+             */
+            if ( !order )
+                return false;
+
+            /*
+             * If we can't allocate memory with order, then it is
+             * unlikely to succeed in the next iteration.
+             * Record the order - 1 to avoid re-trying.
+             */
+            max_order = order - 1;
+            continue;
+        }
+
+        if ( !cb(d, pg, order, extra) )
+            return false;
+
+        tot_size -= (1ULL << (PAGE_SHIFT + order));
+    }
+
+    return true;
+}
+
+static bool __init guest_map_pages(struct domain *d, struct page_info *pg,
+                                   unsigned int order, void *extra)
+{
+    gfn_t *sgfn = (gfn_t *)extra;
+    int res;
+
+    BUG_ON(!sgfn);
+    res = guest_physmap_add_page(d, *sgfn, page_to_mfn(pg), order);
+    if ( res )
+    {
+        dprintk(XENLOG_ERR, "Failed map pages to DOMU: %d", res);
+        return false;
+    }
+
+    *sgfn = gfn_add(*sgfn, 1UL << order);
+
+    return true;
+}
+
+bool __init allocate_bank_memory(struct kernel_info *kinfo, gfn_t sgfn,
+                                 paddr_t tot_size)
+{
+    struct membanks *mem = kernel_info_get_mem(kinfo);
+    struct domain *d = kinfo->d;
+    struct membank *bank;
+
+    /*
+     * allocate_bank_memory can be called with a tot_size of zero for
+     * the second memory bank. It is not an error and we can safely
+     * avoid creating a zero-size memory bank.
+     */
+    if ( tot_size == 0 )
+        return true;
+
+    bank = &mem->bank[mem->nr_banks];
+    bank->start = gfn_to_gaddr(sgfn);
+    bank->size = tot_size;
+
+    /*
+     * Allocate pages from the heap until tot_size is zero and map them to the
+     * guest using guest_map_pages, passing the starting gfn as extra parameter
+     * for the map operation.
+     */
+    if ( !allocate_domheap_memory(d, tot_size, guest_map_pages, &sgfn) )
+        return false;
+
+    mem->nr_banks++;
+    kinfo->unassigned_mem -= bank->size;
+
+    return true;
+}
+
+static int __init add_hwdom_free_regions(unsigned long s_gfn,
+                                         unsigned long e_gfn, void *data)
+{
+    struct membanks *free_regions = data;
+    paddr_t start, size;
+    paddr_t s = pfn_to_paddr(s_gfn);
+    paddr_t e = pfn_to_paddr(e_gfn);
+    unsigned int i, j;
+
+    if ( free_regions->nr_banks >= free_regions->max_banks )
+        return 0;
+
+    /*
+     * Both start and size of the free region should be 2MB aligned to
+     * potentially allow superpage mapping.
+     */
+    start = (s + SZ_2M - 1) & ~(SZ_2M - 1);
+    if ( start > e )
+        return 0;
+
+    /*
+     * e is actually "end-1" because it is called by rangeset functions
+     * which are inclusive of the last address.
+     */
+    e += 1;
+    size = (e - start) & ~(SZ_2M - 1);
+
+    /* Find the insert position (descending order). */
+    for ( i = 0; i < free_regions->nr_banks ; i++ )
+        if ( size > free_regions->bank[i].size )
+            break;
+
+    /* Move the other banks to make space. */
+    for ( j = free_regions->nr_banks; j > i ; j-- )
+    {
+        free_regions->bank[j].start = free_regions->bank[j - 1].start;
+        free_regions->bank[j].size = free_regions->bank[j - 1].size;
+    }
+
+    free_regions->bank[i].start = start;
+    free_regions->bank[i].size = size;
+    free_regions->nr_banks++;
+
+    return 0;
+}
+
+/*
+ * Find unused regions of Host address space which can be exposed to domain
+ * using the host memory layout. In order to calculate regions we exclude every
+ * region passed in mem_banks from the Host RAM.
+ */
+int __init find_unallocated_memory(const struct kernel_info *kinfo,
+                                   const struct membanks *mem_banks[],
+                                   unsigned int nr_mem_banks,
+                                   struct membanks *free_regions,
+                                   int (*cb)(unsigned long s_gfn,
+                                             unsigned long e_gfn,
+                                             void *data))
+{
+    const struct membanks *mem = bootinfo_get_mem();
+    struct rangeset *unalloc_mem;
+    paddr_t start, end;
+    unsigned int i, j;
+    int res;
+
+    ASSERT(domain_use_host_layout(kinfo->d));
+
+    unalloc_mem = rangeset_new(NULL, NULL, 0);
+    if ( !unalloc_mem )
+        return -ENOMEM;
+
+    /* Start with all available RAM */
+    for ( i = 0; i < mem->nr_banks; i++ )
+    {
+        start = mem->bank[i].start;
+        end = mem->bank[i].start + mem->bank[i].size;
+        res = rangeset_add_range(unalloc_mem, PFN_DOWN(start),
+                                 PFN_DOWN(end - 1));
+        if ( res )
+        {
+            printk(XENLOG_ERR "Failed to add: %#"PRIpaddr"->%#"PRIpaddr"\n",
+                   start, end);
+            goto out;
+        }
+    }
+
+    /* Remove all regions listed in mem_banks */
+    for ( i = 0; i < nr_mem_banks; i++ )
+        for ( j = 0; j < mem_banks[i]->nr_banks; j++ )
+        {
+            start = mem_banks[i]->bank[j].start;
+
+            /* Shared memory banks can contain INVALID_PADDR as start */
+            if ( INVALID_PADDR == start )
+                continue;
+
+            end = mem_banks[i]->bank[j].start + mem_banks[i]->bank[j].size;
+            res = rangeset_remove_range(unalloc_mem, PFN_DOWN(start),
+                                        PFN_DOWN(end - 1));
+            if ( res )
+            {
+                printk(XENLOG_ERR
+                       "Failed to add: %#"PRIpaddr"->%#"PRIpaddr", error %d\n",
+                       start, end, res);
+                goto out;
+            }
+        }
+
+    start = 0;
+    end = (1ULL << p2m_ipa_bits) - 1;
+    res = rangeset_report_ranges(unalloc_mem, PFN_DOWN(start), PFN_DOWN(end),
+                                 cb, free_regions);
+    if ( res )
+        free_regions->nr_banks = 0;
+    else if ( !free_regions->nr_banks )
+        res = -ENOENT;
+
+out:
+    rangeset_destroy(unalloc_mem);
+
+    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 = GUEST_RAM_BANKS;
+    struct membanks *hwdom_free_mem = 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) )
+    {
+        struct membanks *gnttab = xzalloc_flex_struct(struct membanks, bank, 1);
+        /*
+         * Exclude the following regions:
+         * 1) Remove reserved memory
+         * 2) Grant table assigned to hwdom
+         */
+        const struct membanks *mem_banks[] = {
+            bootinfo_get_reserved_mem(),
+            gnttab,
+        };
+
+        if ( !gnttab )
+            goto fail;
+
+        gnttab->nr_banks = 1;
+        gnttab->bank[0].start = kinfo->gnttab_start;
+        gnttab->bank[0].size = kinfo->gnttab_size;
+
+        hwdom_free_mem = xzalloc_flex_struct(struct membanks, bank,
+                                             NR_MEM_BANKS);
+        if ( !hwdom_free_mem )
+            goto fail;
+
+        hwdom_free_mem->max_banks = NR_MEM_BANKS;
+
+        if ( find_unallocated_memory(kinfo, mem_banks, ARRAY_SIZE(mem_banks),
+                                     hwdom_free_mem, add_hwdom_free_regions) )
+            goto fail;
+
+        nr_banks = hwdom_free_mem->nr_banks;
+        xfree(gnttab);
+    }
+
+    for ( i = 0; kinfo->unassigned_mem > 0 && nr_banks > 0; i++, nr_banks-- )
+    {
+        paddr_t bank_start, bank_size;
+
+        if ( is_hardware_domain(d) )
+        {
+            bank_start = hwdom_free_mem->bank[i].start;
+            bank_size = hwdom_free_mem->bank[i].size;
+        }
+        else
+        {
+            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];
+        }
+
+        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_free_mem);
+    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);
+}
+
+/* Copy data to guest physical address, then clean the region. */
+typedef unsigned long (*copy_to_guest_phys_cb)(struct domain *d,
+                                               paddr_t gpa,
+                                               void *buf,
+                                               unsigned int len);
+
+void __init dtb_load(struct kernel_info *kinfo,
+                     copy_to_guest_phys_cb copy_to_guest)
+{
+    unsigned long left;
+
+    printk("Loading %pd DTB to 0x%"PRIpaddr"-0x%"PRIpaddr"\n",
+           kinfo->d, kinfo->dtb_paddr,
+           kinfo->dtb_paddr + fdt_totalsize(kinfo->fdt));
+
+    left = copy_to_guest(kinfo->d, kinfo->dtb_paddr,
+                         kinfo->fdt,
+                         fdt_totalsize(kinfo->fdt));
+
+    if ( left != 0 )
+        panic("Unable to copy the DTB to %pd memory (left = %lu bytes)\n",
+              kinfo->d, left);
+    xfree(kinfo->fdt);
+}
+
+void __init initrd_load(struct kernel_info *kinfo,
+                        copy_to_guest_phys_cb copy_to_guest)
+{
+    const struct bootmodule *mod = kinfo->initrd_bootmodule;
+    paddr_t load_addr = kinfo->initrd_paddr;
+    paddr_t paddr, len;
+    int node;
+    int res;
+    __be32 val[2];
+    __be32 *cellp;
+    void __iomem *initrd;
+
+    if ( !mod || !mod->size )
+        return;
+
+    paddr = mod->start;
+    len = mod->size;
+
+    printk("Loading %pd initrd from %"PRIpaddr" to 0x%"PRIpaddr"-0x%"PRIpaddr"\n",
+           kinfo->d, paddr, load_addr, load_addr + len);
+
+    /* Fix up linux,initrd-start and linux,initrd-end in /chosen */
+    node = fdt_path_offset(kinfo->fdt, "/chosen");
+    if ( node < 0 )
+        panic("Cannot find the /chosen node\n");
+
+    cellp = (__be32 *)val;
+    dt_set_cell(&cellp, ARRAY_SIZE(val), load_addr);
+    res = fdt_setprop_inplace(kinfo->fdt, node, "linux,initrd-start",
+                              val, sizeof(val));
+    if ( res )
+        panic("Cannot fix up \"linux,initrd-start\" property\n");
+
+    cellp = (__be32 *)val;
+    dt_set_cell(&cellp, ARRAY_SIZE(val), load_addr + len);
+    res = fdt_setprop_inplace(kinfo->fdt, node, "linux,initrd-end",
+                              val, sizeof(val));
+    if ( res )
+        panic("Cannot fix up \"linux,initrd-end\" property\n");
+
+    initrd = ioremap_wc(paddr, len);
+    if ( !initrd )
+        panic("Unable to map the hwdom initrd\n");
+
+    res = copy_to_guest(kinfo->d, load_addr,
+                        initrd, len);
+    if ( res != 0 )
+        panic("Unable to copy the initrd in the hwdom memory\n");
+
+    iounmap(initrd);
+}
diff --git a/xen/include/xen/fdt-domain-build.h b/xen/include/xen/fdt-domain-build.h
index 41454e75ca..0af2b927fc 100644
--- a/xen/include/xen/fdt-domain-build.h
+++ b/xen/include/xen/fdt-domain-build.h
@@ -5,6 +5,7 @@
 #include <xen/bootfdt.h>
 #include <xen/device_tree.h>
 #include <xen/fdt-kernel.h>
+#include <xen/mm.h>
 #include <xen/types.h>
 
 #if __has_include(<asm/domain_build.h>)
@@ -32,7 +33,37 @@ int make_memory_node(const struct kernel_info *kinfo, int addrcells,
                      int sizecells, const struct membanks *mem);
 int make_timer_node(const struct kernel_info *kinfo);
 
-unsigned int get_allocation_size(paddr_t size);
+
+static inline int get_allocation_size(paddr_t size)
+{
+    /*
+     * get_order_from_bytes returns the order greater than or equal to
+     * the given size, but we need less than or equal. Adding one to
+     * the size pushes an evenly aligned size into the next order, so
+     * we can then unconditionally subtract 1 from the order which is
+     * returned.
+     */
+    return get_order_from_bytes(size + 1) - 1;
+}
+
+typedef unsigned long (*copy_to_guest_phys_cb)(struct domain *d,
+                                               paddr_t gpa,
+                                               void *buf,
+                                               unsigned int len);
+
+void initrd_load(struct kernel_info *kinfo,
+                 copy_to_guest_phys_cb copy_to_guest);
+
+void dtb_load(struct kernel_info *kinfo,
+              copy_to_guest_phys_cb copy_to_guest);
+
+int find_unallocated_memory(const struct kernel_info *kinfo,
+                            const struct membanks *mem_banks[],
+                            unsigned int nr_mem_banks,
+                            struct membanks *free_regions,
+                            int (*cb)(unsigned long s_gfn,
+                                      unsigned long e_gfn,
+                                      void *data));
 
 #endif /* __XEN_FDT_DOMAIN_BUILD_H__ */
 
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Mon Apr 14 15:57:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 15:57:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.950719.1347017 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4MB9-00024h-Rt; Mon, 14 Apr 2025 15:56:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 950719.1347017; Mon, 14 Apr 2025 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 1u4MB9-00024N-Km; Mon, 14 Apr 2025 15:56:59 +0000
Received: by outflank-mailman (input) for mailman id 950719;
 Mon, 14 Apr 2025 15:56: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=YdIb=XA=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1u4MB7-0008KQ-Es
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 15:56:57 +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 165b9b8a-1949-11f0-9eae-5ba50f476ded;
 Mon, 14 Apr 2025 17:56:54 +0200 (CEST)
Received: by mail-ej1-x62a.google.com with SMTP id
 a640c23a62f3a-ac289147833so904644866b.2
 for <xen-devel@lists.xenproject.org>; Mon, 14 Apr 2025 08:56:54 -0700 (PDT)
Received: from fedora.. (user-109-243-64-225.play-internet.pl.
 [109.243.64.225]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-acaa1cb4288sm951760866b.96.2025.04.14.08.56.52
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 14 Apr 2025 08:56:52 -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: 165b9b8a-1949-11f0-9eae-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1744646214; x=1745251014; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=dc1pgFJf0G84e6oD2r9vhEyJ/iTT6BHM7/kWkDBbrBE=;
        b=dKVRurjCZ83HpPFOKKUAYV5YHd9X2gFrNmIgMVN/JsmjMksoXgSeCgCSU6Jk8tYu8o
         YMchGi0w7ZAh50I2mGSd9Ai7wT9JsQl18ATQDCPfjXy0Caj3cLUj20/5QWOkYs9B0SNa
         mxwy8pdKs6pqZNz+hjf432KVm+YrFDm5elPzXfR8K9pWoRmdnAVIX56cp02GkI4cZh4J
         qDAjjg8l2sSNRATW9mrCZAYEWfIrm/FsOGQiNQDhKOztLODkHx0tAuJ29lvyjaYoaOCM
         Mxur0Ds4vUAGq7EpkYmbWiQADqadgZ78xh6hsp+uWDM1yiSSIP3e7Kp2KROBGoTrrPl4
         DLCA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744646214; x=1745251014;
        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=dc1pgFJf0G84e6oD2r9vhEyJ/iTT6BHM7/kWkDBbrBE=;
        b=bN3tGSo9ByyGccj+ZZh9B1Fn551sckAIRDob+0eeQnaPzn1XL1Qox0suhppyHZ+Vd6
         OsUulp1cxepZZO/biFX0viB/gjpJir4MMrgnaj6eXFO890g8HxHpUkoNWC51nzuHbRun
         UsdgUJxJvQ+d8r5WpzUsNy4gVxiEmrsi5Fo+XGhPEkAKrVVlr2v0EhqFBtKCDBczQfL5
         4sbajp0DJ3jUC56YMpxMzZf/Q5fhpYdK6wsZn46q0+8/JWFd36i19N6BAqDIPZ0h4rgZ
         U8Uu2qMfbWuV+WMpXMvWWgBaO7LJZILxoq0cK8krSeNUxnY2n7e/ZmLUW0sGHnLgZG1x
         2hlA==
X-Gm-Message-State: AOJu0Yxy4+v1DM7BXbH/nB3aeVMtN8qJblpVUL61VbaVp9UtVywXL1NA
	7FSPtkPmVmVr5UqAtQKSoINT82MIFVFzPzG0ODHnFDwuuvIGEt21dXHgyw==
X-Gm-Gg: ASbGncsyBThcFUNCXQmONuKKdkQ0bpRuUNTfUb6ljuqZ5yGhb0pJxrxH3VeZ3W8Jor9
	Ys4g2h1vUxlraTN4na6kVBeg9cxsv2wv2KyOqYnHyi9Z57lJ4zxL3jqTi2BpHeDPHIFX72zssiv
	exaxpoW9jcEfRLIbnGzh9wg66hwxUJrcg706GfaysNEtdAvnpLJB30i/WEWwHUeLGst+SY+fGwo
	R0XBH/WnA4a9sQ+4p4Lptl2ZkZbIODu4IMvGTeQbbQEnsIOHsJ8BGhftgHXsOp3yxPwuYx/Ksbu
	yc/Fxkvbh9bURMGMSJcEX9ZglknCJW+lBVAxqK+n5s7f79HOoqkvCmsgP/vTQsLvg6Pdbz3qdbO
	s1A+EpzaHDg==
X-Google-Smtp-Source: AGHT+IGCasdmzz8rTJ2FsuF3O1m7X9brnOvutE7iSnFgTffy1w92B0xGksV0jWLJ9pd36jVPcwOJ5w==
X-Received: by 2002:a17:906:c14a:b0:ac7:81b0:62c8 with SMTP id a640c23a62f3a-acad34d94a8mr1030484266b.31.1744646213503;
        Mon, 14 Apr 2025 08:56:53 -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>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v2 8/8] xen/common: dom0less: introduce common dom0less-build.c
Date: Mon, 14 Apr 2025 17:56:41 +0200
Message-ID: <034190a9d2cfc98306b47dbfe4a70937f5820562.1744626032.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <cover.1744626032.git.oleksii.kurochko@gmail.com>
References: <cover.1744626032.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Part of Arm's dom0less-build.c could be common between architectures which are
using device tree files to create guest domains. Thereby move some parts of
Arm's dom0less-build.c to common code with minor changes.

As a part of theses changes the following changes are introduced:
- Introduce make_arch_nodes() to cover arch-specific nodes. For example, in
  case of Arm, it is PSCI and vpl011 nodes.
- Introduce set_domain_type() to abstract a way how setting of domain type
  happens. For example, RISC-V won't have this member of arch_domain structure
  as vCPUs will always have the same bitness as hypervisor. In case of Arm, it
  is possible that Arm64 could create 32-bit and 64-bit domains.
- Introduce init_vuart() to cover details of virtual uart initialization.
- Introduce init_intc_phandle() to cover some details of interrupt controller
  phandle initialization. As an example, RISC-V could have different name for
  interrupt controller node ( APLIC, PLIC, IMSIC, etc ) but the code in
  domain_handle_dtb_bootmodule() could handle only one interrupt controller
  node name.
- s/make_gic_domU_node/make_intc_domU_node as GIC is Arm specific naming and
  add prototype of make_intc_domU_node() to dom0less-build.h

The following functions are moved to xen/common/device-tree:
- Functions which are moved as is:
  - domain_p2m_pages().
  - handle_passthrough_prop().
  - handle_prop_pfdt().
  - scan_pfdt_node().
  - check_partial_fdt().
- Functions which are moved with some minor changes:
  - alloc_xenstore_evtchn():
    - ifdef-ing by CONFIG_HVM accesses to hvm.params.
  - prepare_dtb_domU():
    - ifdef-ing access to gnttab_{start,size} by CONFIG_GRANT_TABLE.
    - s/make_gic_domU_node/make_intc_domU_node.
    - Add call of make_arch_nodes().
- domain_handle_dtb_bootmodule():
  - hide details of interrupt controller phandle initialization by calling
    init_intc_phandle().
  - Update the comment above init_intc_phandle(): s/gic/interrupt controller.
- construct_domU():
  - ifdef-ing by CONFIG_HVM accesses to hvm.params.
  - Call init_vuart() to hide Arm's vpl011_init() details there.
  - Add call of set_domain_type() instead of setting kinfo->arch.type explicitly.

Some parts of dom0less-build.c are wraped by #ifdef CONFIG_STATIC_{SHMEM,MEMORY}
as not all archs support these configs.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Change in v2:
 - Wrap by #ifdef CONFIG_STATIC_* inclusions of <asm/static-memory.h> and
   <asm/static-shmem.h>. Wrap also the code which uses something from the
   mentioned headers.
 - Add handling of legacy case in construct_domU().
 - Use xen/fdt-kernel.h and xen/fdt-domain-build.h instead of asm/*.
 - Update the commit message.
---
 xen/arch/arm/dom0less-build.c            | 721 ++--------------------
 xen/common/device-tree/dom0less-build.c  | 730 +++++++++++++++++++++++
 xen/include/asm-generic/dom0less-build.h |  14 +
 3 files changed, 779 insertions(+), 686 deletions(-)

diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
index ca78cff655..463c38ae6c 100644
--- a/xen/arch/arm/dom0less-build.c
+++ b/xen/arch/arm/dom0less-build.c
@@ -147,7 +147,7 @@ static int __init make_gicv3_domU_node(struct kernel_info *kinfo)
 }
 #endif
 
-static int __init make_gic_domU_node(struct kernel_info *kinfo)
+int __init make_intc_domU_node(struct kernel_info *kinfo)
 {
     switch ( kinfo->d->arch.vgic.version )
     {
@@ -213,729 +213,62 @@ static int __init make_vpl011_uart_node(struct kernel_info *kinfo)
 }
 #endif
 
-/*
- * Scan device tree properties for passthrough specific information.
- * Returns < 0 on error
- *         0 on success
- */
-static int __init handle_passthrough_prop(struct kernel_info *kinfo,
-                                          const struct fdt_property *xen_reg,
-                                          const struct fdt_property *xen_path,
-                                          bool xen_force,
-                                          uint32_t address_cells,
-                                          uint32_t size_cells)
-{
-    const __be32 *cell;
-    unsigned int i, len;
-    struct dt_device_node *node;
-    int res;
-    paddr_t mstart, size, gstart;
-
-    /* xen,reg specifies where to map the MMIO region */
-    cell = (const __be32 *)xen_reg->data;
-    len = fdt32_to_cpu(xen_reg->len) / ((address_cells * 2 + size_cells) *
-                                        sizeof(uint32_t));
-
-    for ( i = 0; i < len; i++ )
-    {
-        device_tree_get_reg(&cell, address_cells, size_cells,
-                            &mstart, &size);
-        gstart = dt_next_cell(address_cells, &cell);
-
-        if ( gstart & ~PAGE_MASK || mstart & ~PAGE_MASK || size & ~PAGE_MASK )
-        {
-            printk(XENLOG_ERR
-                   "DomU passthrough config has not page aligned addresses/sizes\n");
-            return -EINVAL;
-        }
-
-        res = iomem_permit_access(kinfo->d, paddr_to_pfn(mstart),
-                                  paddr_to_pfn(PAGE_ALIGN(mstart + size - 1)));
-        if ( res )
-        {
-            printk(XENLOG_ERR "Unable to permit to dom%d access to"
-                   " 0x%"PRIpaddr" - 0x%"PRIpaddr"\n",
-                   kinfo->d->domain_id,
-                   mstart & PAGE_MASK, PAGE_ALIGN(mstart + size) - 1);
-            return res;
-        }
-
-        res = map_regions_p2mt(kinfo->d,
-                               gaddr_to_gfn(gstart),
-                               PFN_DOWN(size),
-                               maddr_to_mfn(mstart),
-                               p2m_mmio_direct_dev);
-        if ( res < 0 )
-        {
-            printk(XENLOG_ERR
-                   "Failed to map %"PRIpaddr" to the guest at%"PRIpaddr"\n",
-                   mstart, gstart);
-            return -EFAULT;
-        }
-    }
-
-    /*
-     * If xen_force, we let the user assign a MMIO region with no
-     * associated path.
-     */
-    if ( xen_path == NULL )
-        return xen_force ? 0 : -EINVAL;
-
-    /*
-     * xen,path specifies the corresponding node in the host DT.
-     * Both interrupt mappings and IOMMU settings are based on it,
-     * as they are done based on the corresponding host DT node.
-     */
-    node = dt_find_node_by_path(xen_path->data);
-    if ( node == NULL )
-    {
-        printk(XENLOG_ERR "Couldn't find node %s in host_dt!\n",
-               xen_path->data);
-        return -EINVAL;
-    }
-
-    res = map_device_irqs_to_domain(kinfo->d, node, true, NULL);
-    if ( res < 0 )
-        return res;
-
-    res = iommu_add_dt_device(node);
-    if ( res < 0 )
-        return res;
-
-    /* If xen_force, we allow assignment of devices without IOMMU protection. */
-    if ( xen_force && !dt_device_is_protected(node) )
-        return 0;
-
-    return iommu_assign_dt_device(kinfo->d, node);
-}
-
-static int __init handle_prop_pfdt(struct kernel_info *kinfo,
-                                   const void *pfdt, int nodeoff,
-                                   uint32_t address_cells, uint32_t size_cells,
-                                   bool scan_passthrough_prop)
-{
-    void *fdt = kinfo->fdt;
-    int propoff, nameoff, res;
-    const struct fdt_property *prop, *xen_reg = NULL, *xen_path = NULL;
-    const char *name;
-    bool found, xen_force = false;
-
-    for ( propoff = fdt_first_property_offset(pfdt, nodeoff);
-          propoff >= 0;
-          propoff = fdt_next_property_offset(pfdt, propoff) )
-    {
-        if ( !(prop = fdt_get_property_by_offset(pfdt, propoff, NULL)) )
-            return -FDT_ERR_INTERNAL;
-
-        found = false;
-        nameoff = fdt32_to_cpu(prop->nameoff);
-        name = fdt_string(pfdt, nameoff);
-
-        if ( scan_passthrough_prop )
-        {
-            if ( dt_prop_cmp("xen,reg", name) == 0 )
-            {
-                xen_reg = prop;
-                found = true;
-            }
-            else if ( dt_prop_cmp("xen,path", name) == 0 )
-            {
-                xen_path = prop;
-                found = true;
-            }
-            else if ( dt_prop_cmp("xen,force-assign-without-iommu",
-                                  name) == 0 )
-            {
-                xen_force = true;
-                found = true;
-            }
-        }
-
-        /*
-         * Copy properties other than the ones above: xen,reg, xen,path,
-         * and xen,force-assign-without-iommu.
-         */
-        if ( !found )
-        {
-            res = fdt_property(fdt, name, prop->data, fdt32_to_cpu(prop->len));
-            if ( res )
-                return res;
-        }
-    }
-
-    /*
-     * Only handle passthrough properties if both xen,reg and xen,path
-     * are present, or if xen,force-assign-without-iommu is specified.
-     */
-    if ( xen_reg != NULL && (xen_path != NULL || xen_force) )
-    {
-        res = handle_passthrough_prop(kinfo, xen_reg, xen_path, xen_force,
-                                      address_cells, size_cells);
-        if ( res < 0 )
-        {
-            printk(XENLOG_ERR "Failed to assign device to %pd\n", kinfo->d);
-            return res;
-        }
-    }
-    else if ( (xen_path && !xen_reg) || (xen_reg && !xen_path && !xen_force) )
-    {
-        printk(XENLOG_ERR "xen,reg or xen,path missing for %pd\n",
-               kinfo->d);
-        return -EINVAL;
-    }
-
-    /* FDT_ERR_NOTFOUND => There is no more properties for this node */
-    return ( propoff != -FDT_ERR_NOTFOUND ) ? propoff : 0;
-}
-
-static int __init scan_pfdt_node(struct kernel_info *kinfo, const void *pfdt,
-                                 int nodeoff,
-                                 uint32_t address_cells, uint32_t size_cells,
-                                 bool scan_passthrough_prop)
-{
-    int rc = 0;
-    void *fdt = kinfo->fdt;
-    int node_next;
-
-    rc = fdt_begin_node(fdt, fdt_get_name(pfdt, nodeoff, NULL));
-    if ( rc )
-        return rc;
-
-    rc = handle_prop_pfdt(kinfo, pfdt, nodeoff, address_cells, size_cells,
-                          scan_passthrough_prop);
-    if ( rc )
-        return rc;
-
-    address_cells = device_tree_get_u32(pfdt, nodeoff, "#address-cells",
-                                        DT_ROOT_NODE_ADDR_CELLS_DEFAULT);
-    size_cells = device_tree_get_u32(pfdt, nodeoff, "#size-cells",
-                                     DT_ROOT_NODE_SIZE_CELLS_DEFAULT);
-
-    node_next = fdt_first_subnode(pfdt, nodeoff);
-    while ( node_next > 0 )
-    {
-        rc = scan_pfdt_node(kinfo, pfdt, node_next, address_cells, size_cells,
-                            scan_passthrough_prop);
-        if ( rc )
-            return rc;
-
-        node_next = fdt_next_subnode(pfdt, node_next);
-    }
-
-    return fdt_end_node(fdt);
-}
-
-static int __init check_partial_fdt(void *pfdt, size_t size)
-{
-    int res;
-
-    if ( fdt_magic(pfdt) != FDT_MAGIC )
-    {
-        dprintk(XENLOG_ERR, "Partial FDT is not a valid Flat Device Tree");
-        return -EINVAL;
-    }
-
-    res = fdt_check_header(pfdt);
-    if ( res )
-    {
-        dprintk(XENLOG_ERR, "Failed to check the partial FDT (%d)", res);
-        return -EINVAL;
-    }
-
-    if ( fdt_totalsize(pfdt) > size )
-    {
-        dprintk(XENLOG_ERR, "Partial FDT totalsize is too big");
-        return -EINVAL;
-    }
-
-    return 0;
-}
-
-static int __init domain_handle_dtb_bootmodule(struct domain *d,
-                                               struct kernel_info *kinfo)
-{
-    void *pfdt;
-    int res, node_next;
-
-    pfdt = ioremap_cache(kinfo->dtb_bootmodule->start,
-                         kinfo->dtb_bootmodule->size);
-    if ( pfdt == NULL )
-        return -EFAULT;
-
-    res = check_partial_fdt(pfdt, kinfo->dtb_bootmodule->size);
-    if ( res < 0 )
-        goto out;
-
-    for ( node_next = fdt_first_subnode(pfdt, 0);
-          node_next > 0;
-          node_next = fdt_next_subnode(pfdt, node_next) )
-    {
-        const char *name = fdt_get_name(pfdt, node_next, NULL);
-
-        if ( name == NULL )
-            continue;
-
-        /*
-         * Only scan /gic /aliases /passthrough, ignore the rest.
-         * They don't have to be parsed in order.
-         *
-         * Take the GIC phandle value from the special /gic node in the
-         * DTB fragment.
-         */
-        if ( dt_node_cmp(name, "gic") == 0 )
-        {
-            uint32_t phandle_intc = fdt_get_phandle(pfdt, node_next);
-
-            if ( phandle_intc != 0 )
-                kinfo->phandle_intc = phandle_intc;
-            continue;
-        }
-
-        if ( dt_node_cmp(name, "aliases") == 0 )
-        {
-            res = scan_pfdt_node(kinfo, pfdt, node_next,
-                                 DT_ROOT_NODE_ADDR_CELLS_DEFAULT,
-                                 DT_ROOT_NODE_SIZE_CELLS_DEFAULT,
-                                 false);
-            if ( res )
-                goto out;
-            continue;
-        }
-        if ( dt_node_cmp(name, "passthrough") == 0 )
-        {
-            res = scan_pfdt_node(kinfo, pfdt, node_next,
-                                 DT_ROOT_NODE_ADDR_CELLS_DEFAULT,
-                                 DT_ROOT_NODE_SIZE_CELLS_DEFAULT,
-                                 true);
-            if ( res )
-                goto out;
-            continue;
-        }
-    }
-
- out:
-    iounmap(pfdt);
-
-    return res;
-}
-
-/*
- * The max size for DT is 2MB. However, the generated DT is small (not including
- * domU passthrough DT nodes whose size we account separately), 4KB are enough
- * for now, but we might have to increase it in the future.
- */
-#define DOMU_DTB_SIZE 4096
-static int __init prepare_dtb_domU(struct domain *d, struct kernel_info *kinfo)
+int __init make_arch_nodes(struct kernel_info *kinfo)
 {
-    int addrcells, sizecells;
-    int ret, fdt_size = DOMU_DTB_SIZE;
-
-    kinfo->phandle_intc = GUEST_PHANDLE_GIC;
-    kinfo->gnttab_start = GUEST_GNTTAB_BASE;
-    kinfo->gnttab_size = GUEST_GNTTAB_SIZE;
-
-    addrcells = GUEST_ROOT_ADDRESS_CELLS;
-    sizecells = GUEST_ROOT_SIZE_CELLS;
-
-    /* Account for domU passthrough DT size */
-    if ( kinfo->dtb_bootmodule )
-        fdt_size += kinfo->dtb_bootmodule->size;
-
-    /* Cap to max DT size if needed */
-    fdt_size = min(fdt_size, SZ_2M);
-
-    kinfo->fdt = xmalloc_bytes(fdt_size);
-    if ( kinfo->fdt == NULL )
-        return -ENOMEM;
-
-    ret = fdt_create(kinfo->fdt, fdt_size);
-    if ( ret < 0 )
-        goto err;
-
-    ret = fdt_finish_reservemap(kinfo->fdt);
-    if ( ret < 0 )
-        goto err;
-
-    ret = fdt_begin_node(kinfo->fdt, "");
-    if ( ret < 0 )
-        goto err;
-
-    ret = fdt_property_cell(kinfo->fdt, "#address-cells", addrcells);
-    if ( ret )
-        goto err;
-
-    ret = fdt_property_cell(kinfo->fdt, "#size-cells", sizecells);
-    if ( ret )
-        goto err;
-
-    ret = make_chosen_node(kinfo);
-    if ( ret )
-        goto err;
+    int ret;
 
     ret = make_psci_node(kinfo->fdt);
     if ( ret )
-        goto err;
-
-    ret = make_cpus_node(d, kinfo->fdt);
-    if ( ret )
-        goto err;
-
-    ret = make_memory_node(kinfo, addrcells, sizecells,
-                           kernel_info_get_mem(kinfo));
-    if ( ret )
-        goto err;
-
-    ret = make_resv_memory_node(kinfo, addrcells, sizecells);
-    if ( ret )
-        goto err;
-
-    /*
-     * domain_handle_dtb_bootmodule has to be called before the rest of
-     * the device tree is generated because it depends on the value of
-     * the field phandle_intc.
-     */
-    if ( kinfo->dtb_bootmodule )
-    {
-        ret = domain_handle_dtb_bootmodule(d, kinfo);
-        if ( ret )
-            goto err;
-    }
-
-    ret = make_gic_domU_node(kinfo);
-    if ( ret )
-        goto err;
-
-    ret = make_timer_node(kinfo);
-    if ( ret )
-        goto err;
+        return -EINVAL;
 
     if ( kinfo->vuart )
     {
-        ret = -EINVAL;
 #ifdef CONFIG_SBSA_VUART_CONSOLE
         ret = make_vpl011_uart_node(kinfo);
 #endif
         if ( ret )
-            goto err;
-    }
-
-    if ( kinfo->dom0less_feature & DOM0LESS_ENHANCED_NO_XS )
-    {
-        ret = make_hypervisor_node(d, kinfo, addrcells, sizecells);
-        if ( ret )
-            goto err;
+            return -EINVAL;
     }
 
-    ret = fdt_end_node(kinfo->fdt);
-    if ( ret < 0 )
-        goto err;
-
-    ret = fdt_finish(kinfo->fdt);
-    if ( ret < 0 )
-        goto err;
-
     return 0;
-
-  err:
-    printk("Device tree generation failed (%d).\n", ret);
-    xfree(kinfo->fdt);
-
-    return -EINVAL;
 }
 
-static int __init alloc_xenstore_evtchn(struct domain *d)
+/* TODO: make arch.type generic ? */
+#ifdef CONFIG_ARM_64
+void __init set_domain_type(struct domain *d, struct kernel_info *kinfo)
 {
-    evtchn_alloc_unbound_t alloc;
-    int rc;
-
-    alloc.dom = d->domain_id;
-    alloc.remote_dom = hardware_domain->domain_id;
-    rc = evtchn_alloc_unbound(&alloc, 0);
-    if ( rc )
-    {
-        printk("Failed allocating event channel for domain\n");
-        return rc;
-    }
-
-    d->arch.hvm.params[HVM_PARAM_STORE_EVTCHN] = alloc.port;
-
-    return 0;
+    /* type must be set before allocate memory */
+    d->arch.type = kinfo->arch.type;
 }
-
-#define XENSTORE_PFN_OFFSET 1
-static int __init alloc_xenstore_page(struct domain *d)
+#else
+void __init set_domain_type(struct domain *d, struct kernel_info *kinfo)
 {
-    struct page_info *xenstore_pg;
-    struct xenstore_domain_interface *interface;
-    mfn_t mfn;
-    gfn_t gfn;
-    int rc;
-
-    if ( (UINT_MAX - d->max_pages) < 1 )
-    {
-        printk(XENLOG_ERR "%pd: Over-allocation for d->max_pages by 1 page.\n",
-               d);
-        return -EINVAL;
-    }
-
-    d->max_pages += 1;
-    xenstore_pg = alloc_domheap_page(d, MEMF_bits(32));
-    if ( xenstore_pg == NULL && is_64bit_domain(d) )
-        xenstore_pg = alloc_domheap_page(d, 0);
-    if ( xenstore_pg == NULL )
-        return -ENOMEM;
-
-    mfn = page_to_mfn(xenstore_pg);
-    if ( !mfn_x(mfn) )
-        return -ENOMEM;
-
-    if ( !is_domain_direct_mapped(d) )
-        gfn = gaddr_to_gfn(GUEST_MAGIC_BASE +
-                           (XENSTORE_PFN_OFFSET << PAGE_SHIFT));
-    else
-        gfn = gaddr_to_gfn(mfn_to_maddr(mfn));
-
-    rc = guest_physmap_add_page(d, gfn, mfn, 0);
-    if ( rc )
-    {
-        free_domheap_page(xenstore_pg);
-        return rc;
-    }
-
-    d->arch.hvm.params[HVM_PARAM_STORE_PFN] = gfn_x(gfn);
-    interface = map_domain_page(mfn);
-    interface->connection = XENSTORE_RECONNECT;
-    unmap_domain_page(interface);
-
-    return 0;
+    /* Nothing to do */
 }
+#endif
 
-static int __init alloc_xenstore_params(struct kernel_info *kinfo)
+int __init init_vuart(struct domain *d, struct kernel_info *kinfo,
+                      const struct dt_device_node *node)
 {
-    struct domain *d = kinfo->d;
     int rc = 0;
 
-    if ( kinfo->dom0less_feature & (DOM0LESS_XENSTORE | DOM0LESS_XS_LEGACY) )
-    {
-        ASSERT(hardware_domain);
-        rc = alloc_xenstore_evtchn(d);
-        if ( rc < 0 )
-            return rc;
-        d->arch.hvm.params[HVM_PARAM_STORE_PFN] = ~0ULL;
-    }
-
-    if ( kinfo->dom0less_feature & DOM0LESS_XENSTORE )
-    {
-        rc = alloc_xenstore_page(d);
-        if ( rc < 0 )
-            return rc;
-    }
-
-    return rc;
-}
-
-static void __init domain_vcpu_affinity(struct domain *d,
-                                        const struct dt_device_node *node)
-{
-    struct dt_device_node *np;
-
-    dt_for_each_child_node(node, np)
-    {
-        const char *hard_affinity_str = NULL;
-        uint32_t val;
-        int rc;
-        struct vcpu *v;
-        cpumask_t affinity;
-
-        if ( !dt_device_is_compatible(np, "xen,vcpu") )
-            continue;
-
-        if ( !dt_property_read_u32(np, "id", &val) )
-            panic("Invalid xen,vcpu node for domain %s\n", dt_node_name(node));
-
-        if ( val >= d->max_vcpus )
-            panic("Invalid vcpu_id %u for domain %s, max_vcpus=%u\n", val,
-                  dt_node_name(node), d->max_vcpus);
-
-        v = d->vcpu[val];
-        rc = dt_property_read_string(np, "hard-affinity", &hard_affinity_str);
-        if ( rc < 0 )
-            continue;
-
-        cpumask_clear(&affinity);
-        while ( *hard_affinity_str != '\0' )
-        {
-            unsigned int start, end;
-
-            start = simple_strtoul(hard_affinity_str, &hard_affinity_str, 0);
-
-            if ( *hard_affinity_str == '-' )    /* Range */
-            {
-                hard_affinity_str++;
-                end = simple_strtoul(hard_affinity_str, &hard_affinity_str, 0);
-            }
-            else                /* Single value */
-                end = start;
-
-            if ( end >= nr_cpu_ids )
-                panic("Invalid pCPU %u for domain %s\n", end, dt_node_name(node));
-
-            for ( ; start <= end; start++ )
-                cpumask_set_cpu(start, &affinity);
-
-            if ( *hard_affinity_str == ',' )
-                hard_affinity_str++;
-            else if ( *hard_affinity_str != '\0' )
-                break;
-        }
-
-        rc = vcpu_set_hard_affinity(v, &affinity);
-        if ( rc )
-            panic("vcpu%d: failed (rc=%d) to set hard affinity for domain %s\n",
-                  v->vcpu_id, rc, dt_node_name(node));
-    }
-}
-
-#ifdef CONFIG_ARCH_PAGING_MEMPOOL
-static unsigned long __init domain_p2m_pages(unsigned long maxmem_kb,
-                                             unsigned int smp_cpus)
-{
-    /*
-     * Keep in sync with libxl__get_required_paging_memory().
-     * 256 pages (1MB) per vcpu, plus 1 page per MiB of RAM for the P2M map,
-     * plus 128 pages to cover extended regions.
-     */
-    unsigned long memkb = 4 * (256 * smp_cpus + (maxmem_kb / 1024) + 128);
-
-    BUILD_BUG_ON(PAGE_SIZE != SZ_4K);
-
-    return DIV_ROUND_UP(memkb, 1024) << (20 - PAGE_SHIFT);
-}
-
-static int __init domain_p2m_set_allocation(struct domain *d, uint64_t mem,
-                                            const struct dt_device_node *node)
-{
-    unsigned long p2m_pages;
-    uint32_t p2m_mem_mb;
-    int rc;
-
-    rc = dt_property_read_u32(node, "xen,domain-p2m-mem-mb", &p2m_mem_mb);
-    /* If xen,domain-p2m-mem-mb is not specified, use the default value. */
-    p2m_pages = rc ?
-                p2m_mem_mb << (20 - PAGE_SHIFT) :
-                domain_p2m_pages(mem, d->max_vcpus);
-
-    spin_lock(&d->arch.paging.lock);
-    rc = p2m_set_allocation(d, p2m_pages, NULL);
-    spin_unlock(&d->arch.paging.lock);
-
-    return rc;
-}
-#else /* !CONFIG_ARCH_PAGING_MEMPOOL */
-static inline int domain_p2m_set_allocation(struct domain *d, uint64_t mem,
-                                            const struct dt_device_node *node)
-{
-    return 0;
-}
-#endif /* CONFIG_ARCH_PAGING_MEMPOOL */
-
-int __init construct_domU(struct domain *d,
-                          const struct dt_device_node *node)
-{
-    struct kernel_info kinfo = KERNEL_INFO_INIT;
-    const char *dom0less_enhanced;
-    int rc;
-    u64 mem;
-
-    rc = dt_property_read_u64(node, "memory", &mem);
-    if ( !rc )
-    {
-        printk("Error building DomU: cannot read \"memory\" property\n");
-        return -EINVAL;
-    }
-    kinfo.unassigned_mem = (paddr_t)mem * SZ_1K;
-
-    rc = domain_p2m_set_allocation(d, mem, node);
-    if ( rc != 0 )
-        return rc;
-
-    printk("*** LOADING DOMU cpus=%u memory=%#"PRIx64"KB ***\n",
-           d->max_vcpus, mem);
-
-    kinfo.vuart = dt_property_read_bool(node, "vpl011");
-
-    rc = dt_property_read_string(node, "xen,enhanced", &dom0less_enhanced);
-    if ( rc == -EILSEQ ||
-         rc == -ENODATA ||
-         (rc == 0 && !strcmp(dom0less_enhanced, "enabled")) )
-    {
-        if ( hardware_domain )
-            kinfo.dom0less_feature = DOM0LESS_ENHANCED;
-        else
-            panic("At the moment, Xenstore support requires dom0 to be present\n");
-    }
-    else if ( rc == 0 && !strcmp(dom0less_enhanced, "legacy") )
-    {
-        if ( hardware_domain )
-            kinfo.dom0less_feature = DOM0LESS_ENHANCED_LEGACY;
-        else
-            panic("At the moment, Xenstore support requires dom0 to be present\n");
-    }
-    else if ( rc == 0 && !strcmp(dom0less_enhanced, "no-xenstore") )
-        kinfo.dom0less_feature = DOM0LESS_ENHANCED_NO_XS;
-
-    if ( vcpu_create(d, 0) == NULL )
-        return -ENOMEM;
-
-    d->max_pages = ((paddr_t)mem * SZ_1K) >> PAGE_SHIFT;
-
-    kinfo.d = d;
-
-    rc = kernel_probe(&kinfo, node);
-    if ( rc < 0 )
-        return rc;
-
-#ifdef CONFIG_ARM_64
-    /* type must be set before allocate memory */
-    d->arch.type = kinfo.arch.type;
-#endif
-    if ( !dt_find_property(node, "xen,static-mem", NULL) )
-        allocate_memory(d, &kinfo);
-    else if ( !is_domain_direct_mapped(d) )
-        allocate_static_memory(d, &kinfo, node);
-    else
-        assign_static_memory_11(d, &kinfo, node);
-
-    rc = process_shm(d, &kinfo, node);
-    if ( rc < 0 )
-        return rc;
+    kinfo->vuart = dt_property_read_bool(node, "vpl011");
 
     /*
      * Base address and irq number are needed when creating vpl011 device
      * tree node in prepare_dtb_domU, so initialization on related variables
      * shall be done first.
      */
-    if ( kinfo.vuart )
+    if ( kinfo->vuart )
     {
         rc = domain_vpl011_init(d, NULL);
         if ( rc < 0 )
             return rc;
     }
 
-    rc = prepare_dtb_domU(d, &kinfo);
-    if ( rc < 0 )
-        return rc;
-
-    rc = construct_domain(d, &kinfo);
-    if ( rc < 0 )
-        return rc;
-
-    domain_vcpu_affinity(d, node);
-
-    return alloc_xenstore_params(&kinfo);
+    return rc;
 }
 
-
 struct xen_domctl_createdomain __init arch_xen_domctl_createdomain(void)
 {
     struct xen_domctl_createdomain d_cfg = {
@@ -1024,6 +357,22 @@ void __init arch_create_domus(struct dt_device_node *node,
     }
 }
 
+int __init init_intc_phandle(struct kernel_info *kinfo, const char *name,
+                             const int node_next, const void *pfdt)
+{
+    if ( dt_node_cmp(name, "gic") == 0 )
+    {
+        uint32_t phandle_intc = fdt_get_phandle(pfdt, node_next);
+
+        if ( phandle_intc != 0 )
+            kinfo->phandle_intc = phandle_intc;
+
+        return 0;
+    }
+
+    return 1;
+}
+
 /*
  * Local variables:
  * mode: C
diff --git a/xen/common/device-tree/dom0less-build.c b/xen/common/device-tree/dom0less-build.c
index 19bfa5e005..9ee0e25deb 100644
--- a/xen/common/device-tree/dom0less-build.c
+++ b/xen/common/device-tree/dom0less-build.c
@@ -2,19 +2,36 @@
 #include <xen/bootfdt.h>
 #include <xen/device_tree.h>
 #include <xen/domain.h>
+#include <xen/domain_page.h>
 #include <xen/err.h>
+#include <xen/event.h>
+#include <xen/fdt-domain-build.h>
+#include <xen/fdt-kernel.h>
 #include <xen/init.h>
+#include <xen/iocap.h>
 #include <xen/iommu.h>
+#include <xen/libfdt/libfdt.h>
 #include <xen/llc-coloring.h>
+#include <xen/sizes.h>
 #include <xen/sched.h>
 #include <xen/stdbool.h>
 #include <xen/types.h>
+#include <xen/vmap.h>
 
 #include <public/domctl.h>
+#include <public/io/xs_wire.h>
 
 #include <asm/dom0less-build.h>
 #include <asm/setup.h>
 
+#ifdef CONFIG_STATIC_MEMORY
+#include <asm/static-memory.h>
+#endif
+
+#ifdef CONFIG_STATIC_SHM
+#include <asm/static-shmem.h>
+#endif
+
 bool __init is_dom0less_mode(void)
 {
     struct bootmodules *mods = &bootinfo.modules;
@@ -159,3 +176,716 @@ void __init create_domUs(void)
                   dt_node_name(node), rc);
     }
 }
+
+/*
+ * Scan device tree properties for passthrough specific information.
+ * Returns < 0 on error
+ *         0 on success
+ */
+static int __init handle_passthrough_prop(struct kernel_info *kinfo,
+                                          const struct fdt_property *xen_reg,
+                                          const struct fdt_property *xen_path,
+                                          bool xen_force,
+                                          uint32_t address_cells,
+                                          uint32_t size_cells)
+{
+    const __be32 *cell;
+    unsigned int i, len;
+    struct dt_device_node *node;
+    int res;
+    paddr_t mstart, size, gstart;
+
+    /* xen,reg specifies where to map the MMIO region */
+    cell = (const __be32 *)xen_reg->data;
+    len = fdt32_to_cpu(xen_reg->len) / ((address_cells * 2 + size_cells) *
+                                        sizeof(uint32_t));
+
+    for ( i = 0; i < len; i++ )
+    {
+        device_tree_get_reg(&cell, address_cells, size_cells,
+                            &mstart, &size);
+        gstart = dt_next_cell(address_cells, &cell);
+
+        if ( gstart & ~PAGE_MASK || mstart & ~PAGE_MASK || size & ~PAGE_MASK )
+        {
+            printk(XENLOG_ERR
+                   "DomU passthrough config has not page aligned addresses/sizes\n");
+            return -EINVAL;
+        }
+
+        res = iomem_permit_access(kinfo->d, paddr_to_pfn(mstart),
+                                  paddr_to_pfn(PAGE_ALIGN(mstart + size - 1)));
+        if ( res )
+        {
+            printk(XENLOG_ERR "Unable to permit to dom%d access to"
+                   " 0x%"PRIpaddr" - 0x%"PRIpaddr"\n",
+                   kinfo->d->domain_id,
+                   mstart & PAGE_MASK, PAGE_ALIGN(mstart + size) - 1);
+            return res;
+        }
+
+        res = map_regions_p2mt(kinfo->d,
+                               gaddr_to_gfn(gstart),
+                               PFN_DOWN(size),
+                               maddr_to_mfn(mstart),
+                               p2m_mmio_direct_dev);
+        if ( res < 0 )
+        {
+            printk(XENLOG_ERR
+                   "Failed to map %"PRIpaddr" to the guest at%"PRIpaddr"\n",
+                   mstart, gstart);
+            return -EFAULT;
+        }
+    }
+
+    /*
+     * If xen_force, we let the user assign a MMIO region with no
+     * associated path.
+     */
+    if ( xen_path == NULL )
+        return xen_force ? 0 : -EINVAL;
+
+    /*
+     * xen,path specifies the corresponding node in the host DT.
+     * Both interrupt mappings and IOMMU settings are based on it,
+     * as they are done based on the corresponding host DT node.
+     */
+    node = dt_find_node_by_path(xen_path->data);
+    if ( node == NULL )
+    {
+        printk(XENLOG_ERR "Couldn't find node %s in host_dt!\n",
+               xen_path->data);
+        return -EINVAL;
+    }
+
+    res = map_device_irqs_to_domain(kinfo->d, node, true, NULL);
+    if ( res < 0 )
+        return res;
+
+    res = iommu_add_dt_device(node);
+    if ( res < 0 )
+        return res;
+
+    /* If xen_force, we allow assignment of devices without IOMMU protection. */
+    if ( xen_force && !dt_device_is_protected(node) )
+        return 0;
+
+    return iommu_assign_dt_device(kinfo->d, node);
+}
+
+static int __init handle_prop_pfdt(struct kernel_info *kinfo,
+                                   const void *pfdt, int nodeoff,
+                                   uint32_t address_cells, uint32_t size_cells,
+                                   bool scan_passthrough_prop)
+{
+    void *fdt = kinfo->fdt;
+    int propoff, nameoff, res;
+    const struct fdt_property *prop, *xen_reg = NULL, *xen_path = NULL;
+    const char *name;
+    bool found, xen_force = false;
+
+    for ( propoff = fdt_first_property_offset(pfdt, nodeoff);
+          propoff >= 0;
+          propoff = fdt_next_property_offset(pfdt, propoff) )
+    {
+        if ( !(prop = fdt_get_property_by_offset(pfdt, propoff, NULL)) )
+            return -FDT_ERR_INTERNAL;
+
+        found = false;
+        nameoff = fdt32_to_cpu(prop->nameoff);
+        name = fdt_string(pfdt, nameoff);
+
+        if ( scan_passthrough_prop )
+        {
+            if ( dt_prop_cmp("xen,reg", name) == 0 )
+            {
+                xen_reg = prop;
+                found = true;
+            }
+            else if ( dt_prop_cmp("xen,path", name) == 0 )
+            {
+                xen_path = prop;
+                found = true;
+            }
+            else if ( dt_prop_cmp("xen,force-assign-without-iommu",
+                                  name) == 0 )
+            {
+                xen_force = true;
+                found = true;
+            }
+        }
+
+        /*
+         * Copy properties other than the ones above: xen,reg, xen,path,
+         * and xen,force-assign-without-iommu.
+         */
+        if ( !found )
+        {
+            res = fdt_property(fdt, name, prop->data, fdt32_to_cpu(prop->len));
+            if ( res )
+                return res;
+        }
+    }
+
+    /*
+     * Only handle passthrough properties if both xen,reg and xen,path
+     * are present, or if xen,force-assign-without-iommu is specified.
+     */
+    if ( xen_reg != NULL && (xen_path != NULL || xen_force) )
+    {
+        res = handle_passthrough_prop(kinfo, xen_reg, xen_path, xen_force,
+                                      address_cells, size_cells);
+        if ( res < 0 )
+        {
+            printk(XENLOG_ERR "Failed to assign device to %pd\n", kinfo->d);
+            return res;
+        }
+    }
+    else if ( (xen_path && !xen_reg) || (xen_reg && !xen_path && !xen_force) )
+    {
+        printk(XENLOG_ERR "xen,reg or xen,path missing for %pd\n",
+               kinfo->d);
+        return -EINVAL;
+    }
+
+    /* FDT_ERR_NOTFOUND => There is no more properties for this node */
+    return ( propoff != -FDT_ERR_NOTFOUND ) ? propoff : 0;
+}
+
+static int __init scan_pfdt_node(struct kernel_info *kinfo, const void *pfdt,
+                                 int nodeoff,
+                                 uint32_t address_cells, uint32_t size_cells,
+                                 bool scan_passthrough_prop)
+{
+    int rc = 0;
+    void *fdt = kinfo->fdt;
+    int node_next;
+
+    rc = fdt_begin_node(fdt, fdt_get_name(pfdt, nodeoff, NULL));
+    if ( rc )
+        return rc;
+
+    rc = handle_prop_pfdt(kinfo, pfdt, nodeoff, address_cells, size_cells,
+                          scan_passthrough_prop);
+    if ( rc )
+        return rc;
+
+    address_cells = device_tree_get_u32(pfdt, nodeoff, "#address-cells",
+                                        DT_ROOT_NODE_ADDR_CELLS_DEFAULT);
+    size_cells = device_tree_get_u32(pfdt, nodeoff, "#size-cells",
+                                     DT_ROOT_NODE_SIZE_CELLS_DEFAULT);
+
+    node_next = fdt_first_subnode(pfdt, nodeoff);
+    while ( node_next > 0 )
+    {
+        rc = scan_pfdt_node(kinfo, pfdt, node_next, address_cells, size_cells,
+                            scan_passthrough_prop);
+        if ( rc )
+            return rc;
+
+        node_next = fdt_next_subnode(pfdt, node_next);
+    }
+
+    return fdt_end_node(fdt);
+}
+
+static int __init check_partial_fdt(void *pfdt, size_t size)
+{
+    int res;
+
+    if ( fdt_magic(pfdt) != FDT_MAGIC )
+    {
+        dprintk(XENLOG_ERR, "Partial FDT is not a valid Flat Device Tree");
+        return -EINVAL;
+    }
+
+    res = fdt_check_header(pfdt);
+    if ( res )
+    {
+        dprintk(XENLOG_ERR, "Failed to check the partial FDT (%d)", res);
+        return -EINVAL;
+    }
+
+    if ( fdt_totalsize(pfdt) > size )
+    {
+        dprintk(XENLOG_ERR, "Partial FDT totalsize is too big");
+        return -EINVAL;
+    }
+
+    return 0;
+}
+
+static int __init domain_handle_dtb_bootmodule(struct domain *d,
+                                               struct kernel_info *kinfo)
+{
+    void *pfdt;
+    int res, node_next;
+
+    pfdt = ioremap_cache(kinfo->dtb_bootmodule->start,
+                         kinfo->dtb_bootmodule->size);
+    if ( pfdt == NULL )
+        return -EFAULT;
+
+    res = check_partial_fdt(pfdt, kinfo->dtb_bootmodule->size);
+    if ( res < 0 )
+        goto out;
+
+    for ( node_next = fdt_first_subnode(pfdt, 0);
+          node_next > 0;
+          node_next = fdt_next_subnode(pfdt, node_next) )
+    {
+        const char *name = fdt_get_name(pfdt, node_next, NULL);
+
+        if ( name == NULL )
+            continue;
+
+        /*
+         * Only scan /$(interrupt_controller) /aliases /passthrough,
+         * ignore the rest.
+         * They don't have to be parsed in order.
+         *
+         * Take the interrupt controller phandle value from the special
+         * interrupt controller node in the DTB fragment.
+         */
+        if ( init_intc_phandle(kinfo, name, node_next, pfdt) == 0 )
+            continue;
+
+        if ( dt_node_cmp(name, "aliases") == 0 )
+        {
+            res = scan_pfdt_node(kinfo, pfdt, node_next,
+                                 DT_ROOT_NODE_ADDR_CELLS_DEFAULT,
+                                 DT_ROOT_NODE_SIZE_CELLS_DEFAULT,
+                                 false);
+            if ( res )
+                goto out;
+            continue;
+        }
+        if ( dt_node_cmp(name, "passthrough") == 0 )
+        {
+            res = scan_pfdt_node(kinfo, pfdt, node_next,
+                                 DT_ROOT_NODE_ADDR_CELLS_DEFAULT,
+                                 DT_ROOT_NODE_SIZE_CELLS_DEFAULT,
+                                 true);
+            if ( res )
+                goto out;
+            continue;
+        }
+    }
+
+ out:
+    iounmap(pfdt);
+
+    return res;
+}
+
+/*
+ * The max size for DT is 2MB. However, the generated DT is small (not including
+ * domU passthrough DT nodes whose size we account separately), 4KB are enough
+ * for now, but we might have to increase it in the future.
+ */
+#define DOMU_DTB_SIZE 4096
+static int __init prepare_dtb_domU(struct domain *d, struct kernel_info *kinfo)
+{
+    int addrcells, sizecells;
+    int ret, fdt_size = DOMU_DTB_SIZE;
+
+    kinfo->phandle_intc = GUEST_PHANDLE_GIC;
+
+#ifdef CONFIG_GRANT_TABLE
+    kinfo->gnttab_start = GUEST_GNTTAB_BASE;
+    kinfo->gnttab_size = GUEST_GNTTAB_SIZE;
+#endif
+
+    addrcells = GUEST_ROOT_ADDRESS_CELLS;
+    sizecells = GUEST_ROOT_SIZE_CELLS;
+
+    /* Account for domU passthrough DT size */
+    if ( kinfo->dtb_bootmodule )
+        fdt_size += kinfo->dtb_bootmodule->size;
+
+    /* Cap to max DT size if needed */
+    fdt_size = min(fdt_size, SZ_2M);
+
+    kinfo->fdt = xmalloc_bytes(fdt_size);
+    if ( kinfo->fdt == NULL )
+        return -ENOMEM;
+
+    ret = fdt_create(kinfo->fdt, fdt_size);
+    if ( ret < 0 )
+        goto err;
+
+    ret = fdt_finish_reservemap(kinfo->fdt);
+    if ( ret < 0 )
+        goto err;
+
+    ret = fdt_begin_node(kinfo->fdt, "");
+    if ( ret < 0 )
+        goto err;
+
+    ret = fdt_property_cell(kinfo->fdt, "#address-cells", addrcells);
+    if ( ret )
+        goto err;
+
+    ret = fdt_property_cell(kinfo->fdt, "#size-cells", sizecells);
+    if ( ret )
+        goto err;
+
+    ret = make_chosen_node(kinfo);
+    if ( ret )
+        goto err;
+
+    ret = make_cpus_node(d, kinfo->fdt);
+    if ( ret )
+        goto err;
+
+    ret = make_memory_node(kinfo, addrcells, sizecells,
+                           kernel_info_get_mem(kinfo));
+    if ( ret )
+        goto err;
+
+#ifdef CONFIG_STATIC_SHM
+    ret = make_resv_memory_node(kinfo, addrcells, sizecells);
+    if ( ret )
+        goto err;
+#endif
+
+    /*
+     * domain_handle_dtb_bootmodule has to be called before the rest of
+     * the device tree is generated because it depends on the value of
+     * the field phandle_intc.
+     */
+    if ( kinfo->dtb_bootmodule )
+    {
+        ret = domain_handle_dtb_bootmodule(d, kinfo);
+        if ( ret )
+            goto err;
+    }
+
+    ret = make_intc_domU_node(kinfo);
+    if ( ret )
+        goto err;
+
+    ret = make_timer_node(kinfo);
+    if ( ret )
+        goto err;
+
+    if ( kinfo->dom0less_feature & DOM0LESS_ENHANCED_NO_XS )
+    {
+        ret = make_hypervisor_node(d, kinfo, addrcells, sizecells);
+        if ( ret )
+            goto err;
+    }
+
+    ret = make_arch_nodes(kinfo);
+    if ( ret )
+        goto err;
+
+    ret = fdt_end_node(kinfo->fdt);
+    if ( ret < 0 )
+        goto err;
+
+    ret = fdt_finish(kinfo->fdt);
+    if ( ret < 0 )
+        goto err;
+
+    return 0;
+
+  err:
+    printk("Device tree generation failed (%d).\n", ret);
+    xfree(kinfo->fdt);
+
+    return -EINVAL;
+}
+
+static int __init alloc_xenstore_evtchn(struct domain *d)
+{
+    evtchn_alloc_unbound_t alloc;
+    int rc;
+
+    alloc.dom = d->domain_id;
+    alloc.remote_dom = hardware_domain->domain_id;
+    rc = evtchn_alloc_unbound(&alloc, 0);
+    if ( rc )
+    {
+        printk("Failed allocating event channel for domain\n");
+        return rc;
+    }
+
+#ifdef CONFIG_HVM
+    d->arch.hvm.params[HVM_PARAM_STORE_EVTCHN] = alloc.port;
+#endif
+
+    return 0;
+}
+
+#define XENSTORE_PFN_OFFSET 1
+static int __init alloc_xenstore_page(struct domain *d)
+{
+    struct page_info *xenstore_pg;
+    struct xenstore_domain_interface *interface;
+    mfn_t mfn;
+    gfn_t gfn;
+    int rc;
+
+    if ( (UINT_MAX - d->max_pages) < 1 )
+    {
+        printk(XENLOG_ERR "%pd: Over-allocation for d->max_pages by 1 page.\n",
+               d);
+        return -EINVAL;
+    }
+
+    d->max_pages += 1;
+    xenstore_pg = alloc_domheap_page(d, MEMF_bits(32));
+    if ( xenstore_pg == NULL && is_64bit_domain(d) )
+        xenstore_pg = alloc_domheap_page(d, 0);
+    if ( xenstore_pg == NULL )
+        return -ENOMEM;
+
+    mfn = page_to_mfn(xenstore_pg);
+    if ( !mfn_x(mfn) )
+        return -ENOMEM;
+
+    if ( !is_domain_direct_mapped(d) )
+        gfn = gaddr_to_gfn(GUEST_MAGIC_BASE +
+                           (XENSTORE_PFN_OFFSET << PAGE_SHIFT));
+    else
+        gfn = gaddr_to_gfn(mfn_to_maddr(mfn));
+
+    rc = guest_physmap_add_page(d, gfn, mfn, 0);
+    if ( rc )
+    {
+        free_domheap_page(xenstore_pg);
+        return rc;
+    }
+
+#ifdef CONFIG_HVM
+    d->arch.hvm.params[HVM_PARAM_STORE_PFN] = gfn_x(gfn);
+#endif
+    interface = map_domain_page(mfn);
+    interface->connection = XENSTORE_RECONNECT;
+    unmap_domain_page(interface);
+
+    return 0;
+}
+
+static int __init alloc_xenstore_params(struct kernel_info *kinfo)
+{
+    struct domain *d = kinfo->d;
+    int rc = 0;
+
+    if ( kinfo->dom0less_feature & (DOM0LESS_XENSTORE | DOM0LESS_XS_LEGACY) )
+    {
+        ASSERT(hardware_domain);
+        rc = alloc_xenstore_evtchn(d);
+        if ( rc < 0 )
+            return rc;
+
+#ifdef CONFIG_HVM
+        d->arch.hvm.params[HVM_PARAM_STORE_PFN] = ~0ULL;
+#endif
+    }
+
+    if ( kinfo->dom0less_feature & DOM0LESS_XENSTORE )
+    {
+        rc = alloc_xenstore_page(d);
+        if ( rc < 0 )
+            return rc;
+    }
+
+    return rc;
+}
+
+
+static void __init domain_vcpu_affinity(struct domain *d,
+                                        const struct dt_device_node *node)
+{
+    struct dt_device_node *np;
+
+    dt_for_each_child_node(node, np)
+    {
+        const char *hard_affinity_str = NULL;
+        uint32_t val;
+        int rc;
+        struct vcpu *v;
+        cpumask_t affinity;
+
+        if ( !dt_device_is_compatible(np, "xen,vcpu") )
+            continue;
+
+        if ( !dt_property_read_u32(np, "id", &val) )
+            panic("Invalid xen,vcpu node for domain %s\n", dt_node_name(node));
+
+        if ( val >= d->max_vcpus )
+            panic("Invalid vcpu_id %u for domain %s, max_vcpus=%u\n", val,
+                  dt_node_name(node), d->max_vcpus);
+
+        v = d->vcpu[val];
+        rc = dt_property_read_string(np, "hard-affinity", &hard_affinity_str);
+        if ( rc < 0 )
+            continue;
+
+        cpumask_clear(&affinity);
+        while ( *hard_affinity_str != '\0' )
+        {
+            unsigned int start, end;
+
+            start = simple_strtoul(hard_affinity_str, &hard_affinity_str, 0);
+
+            if ( *hard_affinity_str == '-' )    /* Range */
+            {
+                hard_affinity_str++;
+                end = simple_strtoul(hard_affinity_str, &hard_affinity_str, 0);
+            }
+            else                /* Single value */
+                end = start;
+
+            if ( end >= nr_cpu_ids )
+                panic("Invalid pCPU %u for domain %s\n", end, dt_node_name(node));
+
+            for ( ; start <= end; start++ )
+                cpumask_set_cpu(start, &affinity);
+
+            if ( *hard_affinity_str == ',' )
+                hard_affinity_str++;
+            else if ( *hard_affinity_str != '\0' )
+                break;
+        }
+
+        rc = vcpu_set_hard_affinity(v, &affinity);
+        if ( rc )
+            panic("vcpu%d: failed (rc=%d) to set hard affinity for domain %s\n",
+                  v->vcpu_id, rc, dt_node_name(node));
+    }
+}
+
+#ifdef CONFIG_ARCH_PAGING_MEMPOOL
+static unsigned long __init domain_p2m_pages(unsigned long maxmem_kb,
+                                             unsigned int smp_cpus)
+{
+    /*
+     * Keep in sync with libxl__get_required_paging_memory().
+     * 256 pages (1MB) per vcpu, plus 1 page per MiB of RAM for the P2M map,
+     * plus 128 pages to cover extended regions.
+     */
+    unsigned long memkb = 4 * (256 * smp_cpus + (maxmem_kb / 1024) + 128);
+
+    BUILD_BUG_ON(PAGE_SIZE != SZ_4K);
+
+    return DIV_ROUND_UP(memkb, 1024) << (20 - PAGE_SHIFT);
+}
+
+static int __init domain_p2m_set_allocation(struct domain *d, uint64_t mem,
+                                            const struct dt_device_node *node)
+{
+    unsigned long p2m_pages;
+    uint32_t p2m_mem_mb;
+    int rc;
+
+    rc = dt_property_read_u32(node, "xen,domain-p2m-mem-mb", &p2m_mem_mb);
+    /* If xen,domain-p2m-mem-mb is not specified, use the default value. */
+    p2m_pages = rc ?
+                p2m_mem_mb << (20 - PAGE_SHIFT) :
+                domain_p2m_pages(mem, d->max_vcpus);
+
+    spin_lock(&d->arch.paging.lock);
+    rc = p2m_set_allocation(d, p2m_pages, NULL);
+    spin_unlock(&d->arch.paging.lock);
+
+    return rc;
+}
+#else /* !CONFIG_ARCH_PAGING_MEMPOOL */
+static inline int domain_p2m_set_allocation(struct domain *d, uint64_t mem,
+                                            const struct dt_device_node *node)
+{
+    return 0;
+}
+#endif /* CONFIG_ARCH_PAGING_MEMPOOL */
+
+
+int __init construct_domU(struct domain *d,
+                          const struct dt_device_node *node)
+{
+    struct kernel_info kinfo = KERNEL_INFO_INIT;
+    const char *dom0less_enhanced;
+    int rc;
+    u64 mem;
+
+    rc = dt_property_read_u64(node, "memory", &mem);
+    if ( !rc )
+    {
+        printk("Error building DomU: cannot read \"memory\" property\n");
+        return -EINVAL;
+    }
+    kinfo.unassigned_mem = (paddr_t)mem * SZ_1K;
+
+    rc = domain_p2m_set_allocation(d, mem, node);
+    if ( rc != 0 )
+        return rc;
+
+    printk("*** LOADING DOMU cpus=%u memory=%#"PRIx64"KB ***\n",
+           d->max_vcpus, mem);
+
+    rc = dt_property_read_string(node, "xen,enhanced", &dom0less_enhanced);
+    if ( rc == -EILSEQ ||
+         rc == -ENODATA ||
+         (rc == 0 && !strcmp(dom0less_enhanced, "enabled")) )
+    {
+        if ( hardware_domain )
+            kinfo.dom0less_feature = DOM0LESS_ENHANCED;
+        else
+            panic("At the moment, Xenstore support requires dom0 to be present\n");
+    }
+    else if ( rc == 0 && !strcmp(dom0less_enhanced, "legacy") )
+    {
+        if ( hardware_domain )
+            kinfo.dom0less_feature = DOM0LESS_ENHANCED_LEGACY;
+        else
+            panic("At the moment, Xenstore support requires dom0 to be present\n");
+    }
+    else if ( rc == 0 && !strcmp(dom0less_enhanced, "no-xenstore") )
+        kinfo.dom0less_feature = DOM0LESS_ENHANCED_NO_XS;
+
+    if ( vcpu_create(d, 0) == NULL )
+        return -ENOMEM;
+
+    d->max_pages = ((paddr_t)mem * SZ_1K) >> PAGE_SHIFT;
+
+    kinfo.d = d;
+
+    rc = kernel_probe(&kinfo, node);
+    if ( rc < 0 )
+        return rc;
+
+    set_domain_type(d, &kinfo);
+
+    if ( !dt_find_property(node, "xen,static-mem", NULL) )
+        allocate_memory(d, &kinfo);
+#ifdef CONFIG_STATIC_MEMORY
+    else if ( !is_domain_direct_mapped(d) )
+        allocate_static_memory(d, &kinfo, node);
+    else
+        assign_static_memory_11(d, &kinfo, node);
+#endif
+
+#ifdef CONFIG_STATIC_SHM
+    rc = process_shm(d, &kinfo, node);
+    if ( rc < 0 )
+        return rc;
+#endif
+
+    rc = init_vuart(d, &kinfo, node);
+    if ( rc < 0 )
+        return rc;
+
+    rc = prepare_dtb_domU(d, &kinfo);
+    if ( rc < 0 )
+        return rc;
+
+    rc = construct_domain(d, &kinfo);
+    if ( rc < 0 )
+        return rc;
+
+    domain_vcpu_affinity(d, node);
+
+    return alloc_xenstore_params(&kinfo);
+}
diff --git a/xen/include/asm-generic/dom0less-build.h b/xen/include/asm-generic/dom0less-build.h
index 7092f7fc7e..901cd0eb7b 100644
--- a/xen/include/asm-generic/dom0less-build.h
+++ b/xen/include/asm-generic/dom0less-build.h
@@ -36,6 +36,9 @@
 #define DOM0LESS_ENHANCED_LEGACY (DOM0LESS_ENHANCED_NO_XS | DOM0LESS_XS_LEGACY)
 #define DOM0LESS_ENHANCED        (DOM0LESS_ENHANCED_NO_XS | DOM0LESS_XENSTORE)
 
+struct kernel_info;
+struct dt_device_node;
+
 void create_domUs(void);
 bool is_dom0less_mode(void);
 
@@ -46,6 +49,17 @@ void arch_create_domus(struct dt_device_node *node,
                        struct xen_domctl_createdomain *d_cfg,
                        unsigned int flags);
 
+int init_vuart(struct domain *d, struct kernel_info *kinfo,
+               const struct dt_device_node *node);
+
+int make_intc_domU_node(struct kernel_info *kinfo);
+int make_arch_nodes(struct kernel_info *kinfo);
+
+void set_domain_type(struct domain *d, struct kernel_info *kinfo);
+
+int init_intc_phandle(struct kernel_info *kinfo, const char *name,
+                      const int node_next, const void *pfdt);
+
 #else /* !CONFIG_DOM0LESS_BOOT */
 
 static inline void create_domUs(void) {}
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Mon Apr 14 15:57:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 15:57:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.950722.1347027 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4MBB-0002Ml-I5; Mon, 14 Apr 2025 15:57:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 950722.1347027; Mon, 14 Apr 2025 15:57: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 1u4MBB-0002Ls-79; Mon, 14 Apr 2025 15:57:01 +0000
Received: by outflank-mailman (input) for mailman id 950722;
 Mon, 14 Apr 2025 15:57: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=YdIb=XA=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1u4MBA-0008KQ-FT
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 15:57:00 +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 189d5def-1949-11f0-9eae-5ba50f476ded;
 Mon, 14 Apr 2025 17:56:58 +0200 (CEST)
Received: by mail-ej1-x634.google.com with SMTP id
 a640c23a62f3a-ac289147833so904669066b.2
 for <xen-devel@lists.xenproject.org>; Mon, 14 Apr 2025 08:56:58 -0700 (PDT)
Received: from fedora.. (user-109-243-64-225.play-internet.pl.
 [109.243.64.225]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-acaa1ccd1b9sm940683166b.147.2025.04.14.08.56.56
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 14 Apr 2025 08:56:57 -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: 189d5def-1949-11f0-9eae-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1744646218; x=1745251018; 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=A9dXdGg45Qgc2Gjf4NhwJNWU+j8wV5npfJCoRjaHCxk=;
        b=jK7bcnWRVzMMOMq9QCufySD9P440+j6GfzJLdMYuLdhN/w4i/ZgWMzmqxeVZebcLlV
         wUDFX3B0X6K/o19UzB4vFWBzInbo52W21in71KIOzc/gyb1vj352dOEVmRjbJegRT+n4
         AABYBxS2JD7lTlTsXm+JJZhxq8jJt+VQqMJuQluoV5BHR3HTVC5jkz9gxgrxBPwrTVJI
         OrciBXUcc4XLEOg5OMvxJrPgyxPZo6dWTm2BG++EoJfFSLM3qY1Gzbgrj/h2ieYwCatE
         slf+PpHm+iboWQLaXFmeO3uiBnDyUwhR7TBQdx9mxIu+TJbrAAcYObTjdlREPxbzse0f
         ffNQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744646218; x=1745251018;
        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=A9dXdGg45Qgc2Gjf4NhwJNWU+j8wV5npfJCoRjaHCxk=;
        b=E9BGUQLrEmERRGUDf+66RjYczp8K/PXRBhfnxeRPc76mtk6ygWzSYuslqAS1hAQCiB
         Hdpa40zUMzsO6uDTKIMhvP9ycWK64jCpSeHN7Tokgry2395tsDg2SH1MXt1djpvphNxE
         D/RNDgFnElqq9NvA0wtAAnZHZzPY9ddpXOhkJ3pTryZWLN9yRNcfLmDfzSIFqgSRLwPU
         PGPfM9HW6FDNr1f8XjYcB8O9a149eFHxOTqqGjn1LZcedppyV1qG/DlgcT1YgWClOw5N
         b7n04gtr2gAmHnsAKzXYcl9Wgx4je++QGGCr5gFyrAHvfCymC2bx5YUXmDsOSwSVK7G9
         i8cg==
X-Gm-Message-State: AOJu0YzKZF3mg324l8HAzG3Evlmmbn71KoAdlkm7iqlNCH95OD7nnax3
	YxzJS97dFb4musIk1TzV7l/p8WMatlVvO2bf+XH2SE79qPIBwUrcbRSotg==
X-Gm-Gg: ASbGncu/7gTrOvaW7f3iGqbuEuhwW5oockbyUWg/ClR+vqFuxxwhrInmrDuYzjAFG3S
	quDDyjMGIgqnBu73l6tQ41dWfhSYXXX0DOh/Zm330lP0itLR9CfP1/NglOaLEq1+GBzwmY9Jsg/
	/qMF2lksE6qVNORZEvtv57cqiShw7xPKydpPsFKHgVeHL5SJ7ZVT6zcFasv04iaJzXRwRZ35902
	2WItYDYXPjMIaiNij8vohWmpnMTGLZnIh2Y5uTS/JQ7hRBQW1n4+G5O+uh3jZtKMf0c3MClne/4
	MBaE4TiU3zH8x3l+XB/ip0tf8teIc0D19KHFZSgsK2+ZZ8bCQo1+xV4kNEBHRx+Aq8hOGRh5Cc3
	sdfUprs925noM765p/6LB
X-Google-Smtp-Source: AGHT+IG7LNmuW/Yp9UP6y6R5BPBbgVvTdhwjobuPssvWJbi3/z8wGJC59MjSEDdsiv8yZqQ1pA9zqA==
X-Received: by 2002:a17:906:c44b:b0:aca:d66d:cd0d with SMTP id a640c23a62f3a-acad66dcdd4mr913946266b.30.1744646217516;
        Mon, 14 Apr 2025 08:56:57 -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>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v4] xen/riscv: Increase XEN_VIRT_SIZE
Date: Mon, 14 Apr 2025 17:56:54 +0200
Message-ID: <0815b65aa0b526b85c737f5923148b119cc4104f.1744639515.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.49.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

A randconfig job failed with the following issue:
  riscv64-linux-gnu-ld: Xen too large for early-boot assumptions

The reason is that enabling the UBSAN config increased the size of
the Xen binary.

Increase XEN_VIRT_SIZE to reserve enough space, allowing both UBSAN
and GCOV to be enabled together, with some slack for future growth.

Additionally, add checks to verify that XEN_VIRT_START is 1GB-aligned
and XEN_VIRT_SIZE is 2MB-aligned to reduce the number of page tables
needed for the initial mapping. In the future, when 2MB mappings are
used for .text (rx), .rodata (r), and .data (rw), this will also help
reduce TLB pressure.

Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in v4:
 - Move is_init_section() to xen/sections.h. Add const for
   declaration of `p` variable inside is_init_section() and
   for the cast.
 - Update the comment above ASSERT() with .init* section range:
   s/[__init_begin, __init_end]/[__init_begin, __init_end).
 - Update ASSERT condition:
   s/"system_state != SYS_STATE_active"/"system_state < SYS_STATE_active".
 - Drop MB after XEN_VIRT_SIZE in the comment above PGTBL_INITIAL_COUNT
   as XEN_VIRT_SIZE expands to MB(16).
 - Fix typos:
   s/separetely/separately
   s/indenity/identity
 - Add lost L0 table for identity mapping to PGTBL_INITIAL_COUNT.
 - Move checks to alignment checks of XEN_VIRT_SIZE and XEN_VIRT_SIZE
   closer to the definition of PGTBL_INITIAL_COUNT.
 - Update the commit message.
---
Changes in v3:
 - Add ASSERT which checks .init* sections range. When Xen ends boot
   init* sections are going to be released.
 - Introduce is_init_section() macros.
 - Correct fixmap end address in RISCV-64 layour table.
 - Update ASSERT() which checks that `va` is in Xen virtual address
   range and drop BUILD_BUG_ON() as it isn't necessary anymore with
   the way how the ASSERT() looks now.
 - Add ASSERT() which checks that XEN_VIRT_START is 1gb aligned and
   add ASSERT() which checks that XEN_VIRT_SIZE is 2mb aligned.
   It helps us to reduce an amount of PGTBL_INITIAL_COUNT.
 - Update PGTBL_INITIAL_COUNT and the comment above.
 - Update the commit message.
---
Changes in v2:
 - Incerease XEN_VIRT_SIZE to 16 Mb to cover also the case if 2M mappings will
   be used for .text (rx), .rodata(r), and .data (rw).
 - Update layout table in config.h.
 - s/xen_virt_starn_vpn/xen_virt_start_vpn
 - Update BUILD_BUG_ON(... != MB(8)) check to "... > GB(1)".
 - Update definition of PGTBL_INITIAL_COUNT and the comment above.
---
 xen/arch/riscv/include/asm/config.h |  8 ++++----
 xen/arch/riscv/include/asm/mm.h     | 15 ++++++++++++---
 xen/arch/riscv/mm.c                 | 28 +++++++++++++++++++---------
 xen/include/xen/sections.h          |  4 ++++
 4 files changed, 39 insertions(+), 16 deletions(-)

diff --git a/xen/arch/riscv/include/asm/config.h b/xen/arch/riscv/include/asm/config.h
index 7141bd9e46..5eba626f27 100644
--- a/xen/arch/riscv/include/asm/config.h
+++ b/xen/arch/riscv/include/asm/config.h
@@ -41,11 +41,11 @@
  * Start addr          | End addr         | Slot       | area description
  * ============================================================================
  *                   .....                 L2 511          Unused
- *  0xffffffffc0a00000  0xffffffffc0bfffff L2 511          Fixmap
+ *  0xffffffffc1800000  0xffffffffc19fffff L2 511          Fixmap
  *                   ..... ( 2 MB gap )
- *  0xffffffffc0400000  0xffffffffc07fffff L2 511          FDT
+ *  0xffffffffc1200000  0xffffffffc15fffff L2 511          FDT
  *                   ..... ( 2 MB gap )
- *  0xffffffffc0000000  0xffffffffc01fffff L2 511          Xen
+ *  0xffffffffc0000000  0xffffffffc0ffffff L2 511          Xen
  *                   .....                 L2 510          Unused
  *  0x3200000000        0x7f7fffffff       L2 200-509      Direct map
  *                   .....                 L2 199          Unused
@@ -78,7 +78,7 @@
 
 #define GAP_SIZE                MB(2)
 
-#define XEN_VIRT_SIZE           MB(2)
+#define XEN_VIRT_SIZE           MB(16)
 
 #define BOOT_FDT_VIRT_START     (XEN_VIRT_START + XEN_VIRT_SIZE + GAP_SIZE)
 #define BOOT_FDT_VIRT_SIZE      MB(4)
diff --git a/xen/arch/riscv/include/asm/mm.h b/xen/arch/riscv/include/asm/mm.h
index 4035cd400a..ef8b35d7c2 100644
--- a/xen/arch/riscv/include/asm/mm.h
+++ b/xen/arch/riscv/include/asm/mm.h
@@ -9,6 +9,7 @@
 #include <xen/mm-frame.h>
 #include <xen/pdx.h>
 #include <xen/pfn.h>
+#include <xen/sections.h>
 #include <xen/types.h>
 
 #include <asm/page-bits.h>
@@ -43,13 +44,21 @@ static inline void *maddr_to_virt(paddr_t ma)
  */
 static inline unsigned long virt_to_maddr(unsigned long va)
 {
+    const unsigned long xen_size = (unsigned long)(_end - _start);
+    const unsigned long xen_virt_start = _AC(XEN_VIRT_START, UL);
+    const unsigned long xen_virt_end = xen_virt_start + xen_size - 1;
+
     if ((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)) ==
-           (_AC(XEN_VIRT_START, UL) >> (PAGETABLE_ORDER + PAGE_SHIFT)));
+    ASSERT((va >= xen_virt_start) && (va <= xen_virt_end));
+
+    /*
+    * The .init* sections will be freed when Xen completes booting,
+    * so the [__init_begin, __init_end) range must be excluded.
+    */
+    ASSERT((system_state < SYS_STATE_active) || !is_init_section(va));
 
     /* phys_offset = load_start - XEN_VIRT_START */
     return phys_offset + va;
diff --git a/xen/arch/riscv/mm.c b/xen/arch/riscv/mm.c
index f2bf279bac..ee30ed7ff5 100644
--- a/xen/arch/riscv/mm.c
+++ b/xen/arch/riscv/mm.c
@@ -31,20 +31,30 @@ unsigned long __ro_after_init phys_offset; /* = load_start - XEN_VIRT_START */
 #define LOAD_TO_LINK(addr) ((unsigned long)(addr) - phys_offset)
 
 /*
- * It is expected that Xen won't be more then 2 MB.
+ * It is expected that Xen won't be more then XEN_VIRT_SIZE.
  * The check in xen.lds.S guarantees that.
- * At least 3 page tables (in case of Sv39 ) are needed to cover 2 MB.
- * One for each page level table with PAGE_SIZE = 4 Kb.
  *
- * One L0 page table can cover 2 MB(512 entries of one page table * PAGE_SIZE).
+ * Root page table is shared with the initial mapping and is declared
+ * separately. (look at stage1_pgtbl_root)
  *
- * It might be needed one more page table in case when Xen load address
- * isn't 2 MB aligned.
+ * An amount of page tables between root page table and L0 page table
+ * (in the case of Sv39 it covers L1 table):
+ *   (CONFIG_PAGING_LEVELS - 2) are needed for an identity mapping and
+ *   the same amount are needed for Xen.
  *
- * CONFIG_PAGING_LEVELS page tables are needed for the identity mapping,
- * except that the root page table is shared with the initial mapping
+ * An amount of L0 page tables:
+ *   (512 entries of one L0 page table covers 2MB == 1<<XEN_PT_LEVEL_SHIFT(1))
+ *   XEN_VIRT_SIZE >> XEN_PT_LEVEL_SHIFT(1) are needed for Xen and
+ *   one L0 is needed for identity mapping.
  */
-#define PGTBL_INITIAL_COUNT ((CONFIG_PAGING_LEVELS - 1) * 2 + 1)
+#define PGTBL_INITIAL_COUNT ((CONFIG_PAGING_LEVELS - 2) * 2 + \
+                             (XEN_VIRT_SIZE >> XEN_PT_LEVEL_SHIFT(1)) + 1)
+
+/* Changing these checks can require an update of PGTBL_INITIAL_COUNT */
+_Static_assert(IS_ALIGNED(XEN_VIRT_START, GB(1)),
+               "XEN_VIRT_START should be 1gb aligned");
+_Static_assert(IS_ALIGNED(XEN_VIRT_SIZE, MB(2)),
+               "XEN_VIRT_SIZE should be 2mb aligned");
 
 pte_t __section(".bss.page_aligned") __aligned(PAGE_SIZE)
 stage1_pgtbl_root[PAGETABLE_ENTRIES];
diff --git a/xen/include/xen/sections.h b/xen/include/xen/sections.h
index f2fac8d7fa..fe49d7d0e6 100644
--- a/xen/include/xen/sections.h
+++ b/xen/include/xen/sections.h
@@ -7,6 +7,10 @@
 
 /* SAF-0-safe */
 extern char __init_begin[], __init_end[];
+#define is_init_section(p) ({                           \
+    const char *p_ = (const char *)(unsigned long)(p);  \
+    (p_ >= __init_begin) && (p_ < __init_end);          \
+})
 
 /*
  * Some data is expected to be written rarely (if at all).
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Mon Apr 14 16:13:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 16:13:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.950851.1347036 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4MRD-00027i-S2; Mon, 14 Apr 2025 16:13:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 950851.1347036; Mon, 14 Apr 2025 16:13: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 1u4MRD-00027b-PK; Mon, 14 Apr 2025 16:13:35 +0000
Received: by outflank-mailman (input) for mailman id 950851;
 Mon, 14 Apr 2025 16:13: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=bgKV=XA=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u4MRC-00025t-AI
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 16:13:34 +0000
Received: from mail-pf1-x42f.google.com (mail-pf1-x42f.google.com
 [2607:f8b0:4864:20::42f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 68da9e30-194b-11f0-9eae-5ba50f476ded;
 Mon, 14 Apr 2025 18:13:33 +0200 (CEST)
Received: by mail-pf1-x42f.google.com with SMTP id
 d2e1a72fcca58-736b98acaadso4110690b3a.1
 for <xen-devel@lists.xenproject.org>; Mon, 14 Apr 2025 09:13:33 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 d2e1a72fcca58-73bd21c3216sm6788856b3a.49.2025.04.14.09.13.29
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 14 Apr 2025 09:13: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: 68da9e30-194b-11f0-9eae-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744647211; x=1745252011; 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=UJ0GSz50psXZ6Qkbtw+qeabZSAAWO1ieKNoZcck1NFQ=;
        b=WtnCVbt4+SniaSSO+MhQTQuG096CWVpMT5V0QV+FIPhPR/YYUuAVPHcVUhH+LPrIen
         SvNY7gUPd3CDFy2A6mjJ8MeTwdmiESPpT2j8zvOvVYcQeu0VNAF5iaiTgOOpegTEmEB4
         +He9doYQOXwnS2Rj7kZrSx+d/nH6ytgW9Nw6k=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744647211; x=1745252011;
        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=UJ0GSz50psXZ6Qkbtw+qeabZSAAWO1ieKNoZcck1NFQ=;
        b=bu92hIyZvPovHmtfpsVgXO8eHnh4zXRoQBvYbdlRYx+G0XZBrX+xve2aq8uOUtCUdS
         OZQMz+p/ZIOIkEwr2XHJ4SsALO8W9X2Va9od7IHCno+youoUabnfI8R5BgoQwgOtqhqE
         lQi7gkE9WLVcY9onmzkIloU55g0ojnCl9JI3BMxBNcaea52ubPFs9wlbHerQALzp7cwc
         RB7YgmPH1xucMvgoRB7lEejdMm5BZB+7LuL/kDhMgUAFERm3MSIzZtSY8GDkHrI98cql
         fQbFyzaHR0w6SLuO/HRwlOi094OENY+/Bq4gF/el21SJPmSf+4jXpl//CCQUC0b1a/xo
         5fVA==
X-Forwarded-Encrypted: i=1; AJvYcCU+xgWFHYfIJjDcCmOz0Bckudgfy4NUJzc7w94tznKFl6xNSqPIrPKR16Aw/ulzOxANvI9jFXUODNE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzPUOF8j87ms4L56ZHI48+CGKpCmoDHpWt6HJTniPrAxGyQu7aR
	NQbdmoqCkqHcyrrqRmI9WPRNZy6V53fV4tbRY2e9ffpJztSNbk9nKbhWMWe+skc=
X-Gm-Gg: ASbGnct7qcVO/XcvKpPqCvcu4yE/xpx3m7fZ2W99byju02iV5xcmUh7JW3F+vdG9hqy
	82ICKWwsUT3QKoJ0jMHirZ6qTMHTIsm+VaktxDMDkRsTLxvwCX/73BaVMxcSVSVgBy863Lye/Q7
	K08217aheyGxaGO7ydddErUEh0FEK3JX7NTIsTMZ0x94wDdNPVaVB0bdlW1Vvp0BiO3buzGeuEM
	EU025cVteMTSJ1Ra1FFX8vlwSnO5XQeMB7TPkPjXNieLpVYNI/8r+dMDQdF/VlfPt8Ya5aDB0hq
	QKilF+RwdcSsV/S70H2ZATOxD1f6PtR2p2w8ASlONqGTZQ==
X-Google-Smtp-Source: AGHT+IE8csoloJildedsvpCu33UgrhoVpF6oddk3tOjJYU6F8D4R/R1Tx9Vin5zQTH3wPSVyoQhcjg==
X-Received: by 2002:a05:6a00:22cd:b0:736:a8db:93bb with SMTP id d2e1a72fcca58-73bd119ea62mr17061285b3a.5.1744647211114;
        Mon, 14 Apr 2025 09:13:31 -0700 (PDT)
Date: Mon, 14 Apr 2025 18:13:25 +0200
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/5] x86/hvm: fix handling of accesses to partial r/o
 MMIO pages
Message-ID: <Z_00JReo7Ji7RwkD@macbook.lan>
References: <20250411105411.22334-1-roger.pau@citrix.com>
 <20250411105411.22334-4-roger.pau@citrix.com>
 <eaf5f71b-2c56-4bd8-a45f-35280af16466@suse.com>
 <Z_0TXKMe6tfrYR9T@macbook.lan>
 <c92d5665-0940-40b5-8cbb-81889adf40c5@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <c92d5665-0940-40b5-8cbb-81889adf40c5@suse.com>

On Mon, Apr 14, 2025 at 05:24:32PM +0200, Jan Beulich wrote:
> On 14.04.2025 15:53, Roger Pau Monné wrote:
> > On Mon, Apr 14, 2025 at 08:33:44AM +0200, Jan Beulich wrote:
> >> On 11.04.2025 12:54, Roger Pau Monne wrote:
> >>> @@ -1981,7 +2056,9 @@ int hvm_hap_nested_page_fault(paddr_t gpa, unsigned long gla,
> >>>       */
> >>>      if ( (p2mt == p2m_mmio_dm) ||
> >>>           (npfec.write_access &&
> >>> -          (p2m_is_discard_write(p2mt) || (p2mt == p2m_ioreq_server))) )
> >>> +          (p2m_is_discard_write(p2mt) || (p2mt == p2m_ioreq_server) ||
> >>> +           /* MMIO entries can be r/o if the target mfn is in mmio_ro_ranges. */
> >>> +           (p2mt == p2m_mmio_direct))) )
> >>>      {
> >>>          if ( !handle_mmio_with_translation(gla, gfn, npfec) )
> >>>              hvm_inject_hw_exception(X86_EXC_GP, 0);
> >>
> >> Aren't we handing too many things to handle_mmio_with_translation() this
> >> way? At the very least you're losing ...
> >>
> >>> @@ -2033,14 +2110,6 @@ int hvm_hap_nested_page_fault(paddr_t gpa, unsigned long gla,
> >>>          goto out_put_gfn;
> >>>      }
> >>>  
> >>> -    if ( (p2mt == p2m_mmio_direct) && npfec.write_access && npfec.present &&
> >>
> >> ... the .present check.
> > 
> > Isn't the p2mt == p2m_mmio_direct check already ensuring the entry is
> > present?  Otherwise it's type would be p2m_invalid or p2m_mmio_dm?
> 
> Yes (to the 1st question), it kind of is.
> 
> > It did seem to me the other checks in this function already assume
> > that by having a valid type the entry is present.
> 
> Except for the code above, where we decided to play safe. AT the very least
> if you drop such a check, please say a justifying word in the description.

I've added:

"As part of the fix r/o MMIO accesses are now handled by
handle_mmio_with_translation(), re-using the same logic that was used
for other read-only types part of p2m_is_discard_write().  The page
present check is dropped as type p2m_mmio_direct must have the
present bit set in the PTE."

Let me know if you think that's enough.

> >> I'm also concerned of e.g. VT-x'es APIC access MFN, which is
> >> p2m_mmio_direct.
> > 
> > But that won't go into hvm_hap_nested_page_fault() when using
> > cpu_has_vmx_virtualize_apic_accesses (and thus having an APIC page
> > mapped as p2m_mmio_direct)?
> > 
> > It would instead be an EXIT_REASON_APIC_ACCESS vmexit which is handled
> > differently?
> 
> All true as long as things work as expected (potentially including the guest
> also behaving as expected). Also this was explicitly only an example I could
> readily think of. I'm simply wary of handle_mmio_with_translation() now
> getting things to handle it's not meant to ever see.

How was access to MMIO r/o regions supposed to be handled before
33c19df9a5a0 (~2015)?  I see that setting r/o MMIO p2m entries was
added way before to p2m_type_to_flags() and ept_p2m_type_to_flags()
(~2010), yet I can't figure out how writes would be handled back then
that didn't result in a p2m fault and crashing of the domain.

I'm happy to look at other ways to handling this, but given there's
current logic for handling accesses to read-only regions in
hvm_hap_nested_page_fault() I think re-using that was the best way to
also handle accesses to MMIO read-only regions.

Arguably it would already be the case that for other reasons Xen would
need to emulate an instruction that accesses a read-only MMIO region?

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Apr 14 16:19:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 16:19:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.950863.1347047 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4MWo-000479-En; Mon, 14 Apr 2025 16:19:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 950863.1347047; Mon, 14 Apr 2025 16:19: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 1u4MWo-000472-BN; Mon, 14 Apr 2025 16:19:22 +0000
Received: by outflank-mailman (input) for mailman id 950863;
 Mon, 14 Apr 2025 16:19:21 +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 1u4MWn-00046w-2Q
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 16:19:21 +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 1u4MWm-00ExLW-15;
 Mon, 14 Apr 2025 16:19:20 +0000
Received: from [2a01:e0a:1da:8420:b77:bd5:6e45:7633] (helo=l14)
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1u4MWm-00G1om-08;
 Mon, 14 Apr 2025 16:19:20 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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=svbV5NyPXDi1/wdYVbuJQdvd/CAfioHIogm1myljxiM=; b=DMTKakYO7e7NRxgeHOQ4+Aet5m
	B5Zaix8nbPdhDQeGDzi+JRTKRIgmJu6UmZ1fOKKGkHHOegQzHWyjFV7d8le31l/sSAQHoO2rV7rg/
	cCq2u6JNoDtsVePmr9hZV6F8kW3sDE/OC1z8kRNXAII1PMk/QyDNQy2uqIbDNiLwLC9w=;
Date: Mon, 14 Apr 2025 18:19:18 +0200
From: Anthony PERARD <anthony@xenproject.org>
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>,
	Marek =?iso-8859-1?Q?Marczykowski-G=F3recki?= <marmarek@invisiblethingslab.com>
Subject: Re: [PATCH v3 1/6] CI: Rename intermediate artefacts in qemu-*
 scripts
Message-ID: <Z_01hhSZzgcsrYp8@l14>
References: <20250414110903.2355303-1-andrew.cooper3@citrix.com>
 <20250414110903.2355303-2-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20250414110903.2355303-2-andrew.cooper3@citrix.com>

On Mon, Apr 14, 2025 at 12:08:58PM +0100, Andrew Cooper wrote:
> Right now, we have initrd.cpio.gz as domU, and initrd.tar.gz as the base for
> dom0.
> 
> Rename initrd.cpio.gz to domU-rootfs.cpio.gz, and xen-rootfs.cpio.gz to
> dom0-rootfs.cpio.gz to make it clearer which is which.  Rename the VM from
> test to domU.
> 
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

This also rename some long option into short options without an
explanation, but the change looks fine. (I usually prefer long options
in scripts because it means you don't need to check `man` to figure out
what a command line does.)

Reviewed-by: Anthony PERARD <anthony.perard@vates.tech>

Thanks,

-- 
Anthony PERARD


From xen-devel-bounces@lists.xenproject.org Mon Apr 14 16:45:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 16:45:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.950876.1347056 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4MwD-0003m6-F6; Mon, 14 Apr 2025 16:45:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 950876.1347056; Mon, 14 Apr 2025 16:45: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 1u4MwD-0003lz-Bt; Mon, 14 Apr 2025 16:45:37 +0000
Received: by outflank-mailman (input) for mailman id 950876;
 Mon, 14 Apr 2025 16:45: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=GQ8q=XA=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1u4MwB-0003ls-Vv
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 16:45:36 +0000
Received: from NAM10-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam10on20617.outbound.protection.outlook.com
 [2a01:111:f403:2413::617])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e15633f7-194f-11f0-9ffb-bf95429c2676;
 Mon, 14 Apr 2025 18:45:33 +0200 (CEST)
Received: from DS0PR17CA0006.namprd17.prod.outlook.com (2603:10b6:8:191::22)
 by DM4PR12MB5721.namprd12.prod.outlook.com (2603:10b6:8:5c::10) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.33; Mon, 14 Apr
 2025 16:45:29 +0000
Received: from DS1PEPF00017092.namprd03.prod.outlook.com
 (2603:10b6:8:191:cafe::31) by DS0PR17CA0006.outlook.office365.com
 (2603:10b6:8:191::22) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.35 via Frontend Transport; Mon,
 14 Apr 2025 16:45:29 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 DS1PEPF00017092.mail.protection.outlook.com (10.167.17.135) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Mon, 14 Apr 2025 16:45: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, 14 Apr
 2025 11:45:28 -0500
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, 14 Apr
 2025 11:45:27 -0500
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; Mon, 14 Apr 2025 11:45:27 -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: e15633f7-194f-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=xhlOTckHh2r13EZyMvmcQqUdpk6zf+aMLBot3cLV8vke22B1ZQrbkN0ISVEgC6PCEixyJ1S7AyBWZe2Zw8ehEblHzpFzmPjBfpnxZq7+/3dqMjXgAPPsHF/UJfpPE0rXl0QN3oUctRYzKho6XA4uUDDI43tz5z5blPVwzgJr9Z12v4iwPjKrWpRXNp1pqYnrhHdW10Lyut4BNuLHlEuYEdS/eQ6kBIwybzyn6d/tLa/6tFqXDvfV0S+NOs03OPuCblxyu+sVnXirKJfpwaXOCD9o5WfiH3eHtcG61iKEKcdzD/ma4r220Wxp4O8jV3cwNieT9Z6p8CqL4gl2elbwHQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=u9unBZdwjbbEUf+nFJKh5FsGSQRLBVuXBLaW4BB2FZk=;
 b=zWfOzRGIQMpRB992vO4pQ/yak/vw0zzDcM55h0NbUYsAIZ/k3Hu7lFvz7sPJdyhQpjiXD3HMwnqFKlhjOIMtJz7lnsTFQ2kEmS5AFScpzCogbdm7zOiNl46pz/4k8mvUqjYcTPDoOlDVRaNm8c+VXZik8H4D2niA+6qiU+EIf/mPEqhM1j8LF3gp+df4/w+bWutJ7rK4a/utwT6UcaTCD/gujGF632ZK7fS6zDqX09YCE/W0fNWKf1e7tv3s31C8ZLRxWDS5/vBuCK4+bP/JEfXddOmTAzicD4wQvhxfeCmmU54WDWlU8Qx3l/5Lq77Xe3HwliNnPKZRshxRAc6IWg==
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=u9unBZdwjbbEUf+nFJKh5FsGSQRLBVuXBLaW4BB2FZk=;
 b=foXRQBlZ6074ingXzseZb7qwByUEphET58b4NvZmRW+VK+AJlGkZ9W+zKZ1GenVqqvHmPVvmFEqowHUjmBMx+aoBXVAimunhu0YumJpditdKpTs5YZnKt90H1a8Yah9tLyzcCH8FUt2s44q021PKTbfKFBtf2261qD8vTV79fUg=
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 v7 0/3] Enable early bootup of Armv8-R AArch32 systems
Date: Mon, 14 Apr 2025 17:45:11 +0100
Message-ID: <20250414164514.588373-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: DS1PEPF00017092:EE_|DM4PR12MB5721:EE_
X-MS-Office365-Filtering-Correlation-Id: dd469ed1-0da0-496e-b1d7-08dd7b73c379
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|36860700013|376014|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?RXTrHXHCgRLh7FZOSGxPmFXRl6AsGqMi/cuxrUNMoHF4zE+Ufv4V1088RrYD?=
 =?us-ascii?Q?xVs7Enwbr6I7CFd8/KzXKsUjK5hQe244mz6BAIzPijgEjI6CjPQmDkX1Zv8O?=
 =?us-ascii?Q?I2D1XKUGBzG+t03wFTOzqSR9mLD0l0OeWWvRtqTfpESsG0k0TzapDdFaZp6E?=
 =?us-ascii?Q?6uF+V+337eznX1NHI2N83JhroGKH6P1gG1/leDca67xKJGmQYv7t3C0N/h/a?=
 =?us-ascii?Q?zVtU6G6z37vGKsvDvq4IpanmF3iJtZ1au37mwXWpPYmYW+0g2C/qRQHCS8CX?=
 =?us-ascii?Q?9QEKVE+fkB7MsNKF26Vc/ui1PeCHRV86v5X0DEZka6qe4UwenS1gJyC25yXv?=
 =?us-ascii?Q?a+Jir/NT5UeyHr26j506ySR8qpYZNCWj7iYnAaTeGgTV+yWmkZfTY6h3QBB1?=
 =?us-ascii?Q?DCTf7+/lL0Jl+9m0ANZv6e8ZlPpABHQeVUYTy/LICdkRy8wsOV6gqF1yMwID?=
 =?us-ascii?Q?mpFyVY07VgLHPBeSgnBT1F87Oow+eoPJh0S7QSoP+jElzwDVfcz0FoW7ztYd?=
 =?us-ascii?Q?LWhpYpUhDRvCq2Tu+oR60V9aBvZvRTH/pq86BVenZ4/bk9kZBv6rn6qU8b1X?=
 =?us-ascii?Q?xQfzadqh7fg4Z9g0xAcdRrIu2cnExrO710HjGwag48eC+vrXN0b92WXwrZpZ?=
 =?us-ascii?Q?Y11qBtIKyrWoNTv3/fzYg1EcQ+fhbHWntcYF+AnuUXek8zCzu3tRQ7VIzfU5?=
 =?us-ascii?Q?IJZP45RZHEGC6Mq4KQCguruwb3bv8JP/gdyVwQQMwoPCsT/LnUpZP3KHP5XP?=
 =?us-ascii?Q?soLLKQ2bNKudW2LGJoQpPB3GwaNEqQyLcpYcxbWnEK1zzrURoqH6OrBQfiub?=
 =?us-ascii?Q?vQ/LcKVXJohDIZwuwxjVqy99jnBJ4YAoxdJdVTmk3WBr6slJsQMH186obcMe?=
 =?us-ascii?Q?8TNDQU34fQ41c+6fqM6Fr0uqMtvx7m0+WrvmhCfh7uD5dtOplBRf4ZYryQB8?=
 =?us-ascii?Q?oafiFYjSB7y8+RKFOdyLXxuVXxVQryPvxtvppyaIB4tzdpWVbHS26ScaSTTm?=
 =?us-ascii?Q?BgVCLT99VJVuPSCtElU6p6Axg3wVhSFXhoYEQSWuvIGOldLrH/Nwdk3ueqag?=
 =?us-ascii?Q?T6Va0GqtEyhB2dsGudPtOPF44OqqIa7Rp/FcrjZrLaSMTJ7bSCWp+WPQtCBZ?=
 =?us-ascii?Q?KUgkb1fBJFs8kQFlKkdxexknz0v0zUDgxHXcUX1lVlGbJ/Ib1MjZPxssNK7v?=
 =?us-ascii?Q?Pwv4jXBjzKuq9V2WmIuYs/oVcoBfNachhPsluyF4revKSVnqgbFkbAeJ/pG4?=
 =?us-ascii?Q?zK7fhWAouBnHkVUFu77b+kPSeAowjL2WQAa5ua+otI3MHxXFe7ZVCb6IIW7u?=
 =?us-ascii?Q?KDuX+cMJ7/NeYEbY6ImUloTkjRFe11nmKju/+NkEXa9jZQu+NRAPKNWMjdo5?=
 =?us-ascii?Q?XNODAHbYUmV4XHZS/b4esgE3k3styM3i9+AfE4KL0a4eRlHUwGF+E6dJ2MTE?=
 =?us-ascii?Q?DcT+/uXI4fIMCsuYbf7i2AyAE1Ob8kOKAJxNkMQwMNnV2cbLOhd3nmgPqyfk?=
 =?us-ascii?Q?HW2qSYPZcwAhpQplLa/+I+1safZQHM0eQxP7?=
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: 14 Apr 2025 16:45:28.6528
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: dd469ed1-0da0-496e-b1d7-08dd7b73c379
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:
	DS1PEPF00017092.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB5721

Enable early booting of Armv8-R AArch32 based systems.

Added Luca's R-b in all the patches.
Added Michal's R-b in patch 1 and 3.

Ayan Kumar Halder (3):
  xen/arm: Move some of the functions to common file
  xen/arm32: Create the same boot-time MPU regions as arm64
  xen/arm32: mpu: Stubs to build MPU for arm32

 xen/arch/arm/arm32/Makefile              |   1 +
 xen/arch/arm/arm32/mpu/Makefile          |   3 +
 xen/arch/arm/arm32/mpu/head.S            | 104 +++++++++++++++++++++++
 xen/arch/arm/arm32/mpu/p2m.c             |  19 +++++
 xen/arch/arm/arm32/mpu/smpboot.c         |  26 ++++++
 xen/arch/arm/arm64/mpu/head.S            |  78 +----------------
 xen/arch/arm/include/asm/arm32/sysregs.h |  13 ++-
 xen/arch/arm/include/asm/arm64/sysregs.h |  13 +++
 xen/arch/arm/include/asm/cpregs.h        |   2 +
 xen/arch/arm/include/asm/mm.h            |   9 +-
 xen/arch/arm/include/asm/mmu/mm.h        |   7 ++
 xen/arch/arm/include/asm/mpu/cpregs.h    |  32 +++++++
 xen/arch/arm/include/asm/mpu/mm.h        |   5 ++
 xen/arch/arm/include/asm/mpu/regions.inc |  79 +++++++++++++++++
 xen/arch/arm/mpu/Makefile                |   1 +
 xen/arch/arm/mpu/domain_page.c           |  45 ++++++++++
 16 files changed, 350 insertions(+), 87 deletions(-)
 create mode 100644 xen/arch/arm/arm32/mpu/Makefile
 create mode 100644 xen/arch/arm/arm32/mpu/head.S
 create mode 100644 xen/arch/arm/arm32/mpu/p2m.c
 create mode 100644 xen/arch/arm/arm32/mpu/smpboot.c
 create mode 100644 xen/arch/arm/include/asm/mpu/cpregs.h
 create mode 100644 xen/arch/arm/include/asm/mpu/regions.inc
 create mode 100644 xen/arch/arm/mpu/domain_page.c

-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Mon Apr 14 16:45:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 16:45:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.950877.1347067 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4MwJ-00041C-QO; Mon, 14 Apr 2025 16:45:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 950877.1347067; Mon, 14 Apr 2025 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 1u4MwJ-000415-Nf; Mon, 14 Apr 2025 16:45:43 +0000
Received: by outflank-mailman (input) for mailman id 950877;
 Mon, 14 Apr 2025 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=GQ8q=XA=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1u4MwI-0003ls-9p
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 16:45:42 +0000
Received: from NAM02-SN1-obe.outbound.protection.outlook.com
 (mail-sn1nam02on20624.outbound.protection.outlook.com
 [2a01:111:f403:2406::624])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e5771f0f-194f-11f0-9ffb-bf95429c2676;
 Mon, 14 Apr 2025 18:45:40 +0200 (CEST)
Received: from SJ0PR13CA0072.namprd13.prod.outlook.com (2603:10b6:a03:2c4::17)
 by SA1PR12MB9492.namprd12.prod.outlook.com (2603:10b6:806:459::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.30; Mon, 14 Apr
 2025 16:45:36 +0000
Received: from SJ1PEPF00001CEB.namprd03.prod.outlook.com
 (2603:10b6:a03:2c4:cafe::a5) by SJ0PR13CA0072.outlook.office365.com
 (2603:10b6:a03:2c4::17) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.8 via Frontend Transport; Mon,
 14 Apr 2025 16:45:35 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 SJ1PEPF00001CEB.mail.protection.outlook.com (10.167.242.27) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Mon, 14 Apr 2025 16:45:35 +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, 14 Apr
 2025 11:45:34 -0500
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, 14 Apr
 2025 11:45:34 -0500
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; Mon, 14 Apr 2025 11:45:33 -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: e5771f0f-194f-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=YkLGeK8NvI9E04+WsEcBjcNKijn9i3zcwOwyfxkmlGg4PW5Ii3+SOVr4TJFkro+657El1mGG2YyEpy/hn9fYZw+GpxMg3kP+uyxBSx6o01gGEABq5HZPwqafH2lcA3fKIWZD9xKjXI3u6YxbFHCHH7bQw3iq9f8bror6pGTDnXBvrPkMALdxr7ongtMvrdEJvBcklZt04EPXbD3St14Beq91Y8s2sYWrvSbxu+YM0qcQPYR3dbOcWaGrXG7IZ7R1FvcKl+ac/EQ79rcJBUqvbykZ70c1XdbEd0InFzduFDqTc2UaFdUSqKTEBi36cdXgEoZAyRtnWsbrw4PZmPCN8w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ZuwCRj4OOUZ4a9010l9+6ShDpNXekNIhaBCOz4phGPQ=;
 b=yA5TjKbhe1ki5VlJhTlQU9E2cB0LV0mMM2dBvpOq+QsT9K7Eo95sI1YaXfmMbrC+I4x8I+TZ/jWdRMiF7wuCcY19OGUwKTV9xtP8CgEwH+fxxQSBZSzWl48FU2jAeNtcTcj8uXGjKzPUgjhcCIZi5168Y2H5FgTthMSPp9FEZD6mLOhEPe8bAg4e8WWzJbe/b7uT7iLOEwzB03i4sq2i6TP8LNLLBE+gLNkIuGd8DCHVUBkmZrSvM7k2RkvXS7s6q0UMZjXvkNfHutRG2f7BO0TwrNQL0EYgoglBwN3/tdFPvzlaiTrxoSr7vyv4kHjmQUeXBHBtaVowrUd8xMqdbA==
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=ZuwCRj4OOUZ4a9010l9+6ShDpNXekNIhaBCOz4phGPQ=;
 b=lzVdwo0q/sHo4VQe0Pvja4vI8PJ3re6zOa9WFlZiFIpGsnKnX4DHUkk5yCYFD1y0f1mIaUUMenI+7iUT3Kys/5fShvnBkkCLDYA1rZ/PX8u5/ZLOFGub+Uk/aFRLsh6xp3LE7lS36Bx0W3sMBbeiHegbAg/3/fPmHyt7rfqbcYo=
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>
Subject: [PATCH v7 1/3] xen/arm: Move some of the functions to common file
Date: Mon, 14 Apr 2025 17:45:12 +0100
Message-ID: <20250414164514.588373-2-ayan.kumar.halder@amd.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20250414164514.588373-1-ayan.kumar.halder@amd.com>
References: <20250414164514.588373-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: SJ1PEPF00001CEB:EE_|SA1PR12MB9492:EE_
X-MS-Office365-Filtering-Correlation-Id: 04d68a0e-0f7c-4593-952b-08dd7b73c771
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|36860700013|376014|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?uf8G5axzb8Wg51YjAODCrwi2/Aw3FNdB95akj5W+qqRVFaMSUvz+F2wo/SFk?=
 =?us-ascii?Q?E1uqcduvJeQD6YNhKpq4H3IIhGlw6GmgdQg1lohjNxQk+IyBiM/9XnUdJNQi?=
 =?us-ascii?Q?2rt5eZtWn3hGD4wOP4yUS8uPo2kR1aUnDdKVeobYxOGkh4Fallr/Xg3YSnbR?=
 =?us-ascii?Q?23YmYhGmWnK/TjZT83v2yfShX8hXWGPrkMo8pN3ccMY+3oFAI6IG7NePIAKr?=
 =?us-ascii?Q?EwaH2X/VfPlFY2PcVShLbXmbAqtNNRA9KPORJXhZVCVOvbOsGOBh3ejbLmyi?=
 =?us-ascii?Q?p3PL9kYo8j4H5Yf4MXyOs2nC85Vh0VmU+U/OL+ioCgugs/McTXxYgTdxHkd2?=
 =?us-ascii?Q?w5WtlGFRMRuGDKB/rfLhV99WWTZK6aXw4D50DI5auW1IVJzim/5pxHc2vvEI?=
 =?us-ascii?Q?FpWufJFA7Tirgkrj9Op2/eHfzRUwCwG4ZiGHpjg4QeBcSIYK3sFsokNRUvix?=
 =?us-ascii?Q?9cjs2C1M/Jm3Ak39m4LIQTX9jD7K3IgS6pOdi4cQmzgR8PCvD3I2OQ5YEbwg?=
 =?us-ascii?Q?xqxVj/qDQCGwxsXE2VZ9he9kEjgLNeuc1BJQhcnJP+aB1eyvhoKhgyXaiCcc?=
 =?us-ascii?Q?FoyDtvc9D4F3u2JUoSfhBmwAHFu8sHzbUJ/3AGcJB51dUqQW1g4Zsn63Vosm?=
 =?us-ascii?Q?lIc7dXQVRCNcxnSfVW88KRNZtPg+nMRxtMpnP3jtFTV+DveNjIgn31nz2WB7?=
 =?us-ascii?Q?Iahpp8IFUpoiRLGPy+8Jk6bLbVDcTY/34bWDdv+up6VhbEFRdHi9O6lWpXLV?=
 =?us-ascii?Q?9SBuGQ6hF8M76pSs3/W0XA6/0iVQ3AdON28xdy67uOO0QsBYCOtmYBD0tLdf?=
 =?us-ascii?Q?+FCEBXJtZP2zOcXSM5BIWppp8DnxbNeamqLktLteubllflUxDWCLQ1R0w+cw?=
 =?us-ascii?Q?yZ07TyUq9X0mvwfXrtIXAMYLq3zTmPcchaQoMdyLeVS8UlrJUhiLCEiEvo2/?=
 =?us-ascii?Q?4A9hIKRPOkDTFUkxQH2z7ug62yPmBRTXMLepeotu6y1O67+bSFilR76YCrxs?=
 =?us-ascii?Q?Khek4hPdFHDYbSLnkG+Bynf90ScIKom/pWmf/ai5XYctoLrawtetYQYrTr+E?=
 =?us-ascii?Q?enAKKE963Qs+JwgxMLuv2vyB63zQvamxgKx/KDK5t01pxMGs0wZYlhmFoiLf?=
 =?us-ascii?Q?jYNDLpmIj9FMh+4+QmMasuQo/gmHO1DI81xh2qVpEScgMOXfh0L6r8U0xp2v?=
 =?us-ascii?Q?HshhwByFyFcwm/folBatgQF3Ygb40ywib5jwRHpS0D8QtmvCcXZEh7/qwksQ?=
 =?us-ascii?Q?MLZSywtml+A+GGnpKuGcXBT5j1LVsLh8Gu/wHmb+nU3UHtUA2L4zPrYvNS6A?=
 =?us-ascii?Q?E8tWMm/0Hfk74odulF5Ksy+sbos+4kN9f1sfPGQMnFpRVclpJ4alM5tsqwb3?=
 =?us-ascii?Q?jO4WwTf7NzUuEN8c1K7iOR5B9cMh1Dsu6os0Ca7SRjRng9PTaRavD9vlcyqw?=
 =?us-ascii?Q?Frnx+Hnp89U7AklrFSjvKPPHSJqrS2SsglK2F4SUMMfMSsDtgnrNsl8ZtzZO?=
 =?us-ascii?Q?0Ov25zUYSXbCZ977WfFLAgjosjpvnCc7Qz0k?=
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: 14 Apr 2025 16:45:35.2637
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 04d68a0e-0f7c-4593-952b-08dd7b73c771
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:
	SJ1PEPF00001CEB.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB9492

regions.inc is added to hold the common earlyboot MPU regions configurations
between arm64 and arm32.

prepare_xen_region, fail_insufficient_regions() will be used by both arm32 and
arm64. Thus, they have been moved to regions.inc.

*_PRBAR are moved to arm64/sysregs.h.
*_PRLAR are moved to regions.inc as they are common between arm32 and arm64.

Introduce WRITE_SYSREG_ASM to write to the system registers from regions.inc.

Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>
Reviewed-by: Michal Orzel <michal.orzel@amd.com>
Tested-by: Luca Fancellu <luca.fancellu@arm.com>
---

Changes from

v1 -

1. enable_mpu() now sets HMAIR{0,1} registers. This is similar to what is
being done in enable_mmu(). All the mm related configurations happen in this
function.

2. Fixed some typos.

v2 -
1. Extracted the arm64 head.S functions/macros in a common file.

v3 -
1. Moved *_PRLAR are moved to prepare_xen_region.inc

2. enable_boot_cpu_mm() is preserved in mpu/head.S.

3. STORE_SYSREG is renamed as WRITE_SYSREG_ASM()

4. LOAD_SYSREG is removed.

5. No need to save/restore lr in enable_boot_cpu_mm(). IOW, keep it as it was
in the original code.

v4 - 
1. Rename prepare_xen_region.inc to common.inc

2. enable_secondary_cpu_mm() is moved back to mpu/head.S. 

v5 -
1. Rename common.inc to regions.inc.

2. WRITE_SYSREG_ASM() in enclosed within #ifdef __ASSEMBLY__.

v6 -
1. Add Michal's R-b and Luca's T-b.

 xen/arch/arm/arm64/mpu/head.S            | 78 +----------------------
 xen/arch/arm/include/asm/arm64/sysregs.h | 13 ++++
 xen/arch/arm/include/asm/mpu/regions.inc | 79 ++++++++++++++++++++++++
 3 files changed, 93 insertions(+), 77 deletions(-)
 create mode 100644 xen/arch/arm/include/asm/mpu/regions.inc

diff --git a/xen/arch/arm/arm64/mpu/head.S b/xen/arch/arm/arm64/mpu/head.S
index ed01993d85..6d336cafbb 100644
--- a/xen/arch/arm/arm64/mpu/head.S
+++ b/xen/arch/arm/arm64/mpu/head.S
@@ -3,83 +3,7 @@
  * Start-of-day code for an Armv8-R MPU system.
  */
 
-#include <asm/early_printk.h>
-#include <asm/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 */
-#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.
- * 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
- * Output:
- *  \sel: Next available region selector index.
- * Clobbers \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)
+#include <asm/mpu/regions.inc>
 
 /*
  * Enable EL2 MPU and data cache
diff --git a/xen/arch/arm/include/asm/arm64/sysregs.h b/xen/arch/arm/include/asm/arm64/sysregs.h
index b593e4028b..7440d495e4 100644
--- a/xen/arch/arm/include/asm/arm64/sysregs.h
+++ b/xen/arch/arm/include/asm/arm64/sysregs.h
@@ -462,6 +462,17 @@
 #define ZCR_ELx_LEN_SIZE             9
 #define ZCR_ELx_LEN_MASK             0x1ff
 
+#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 */
+
+#ifdef __ASSEMBLY__
+
+#define WRITE_SYSREG_ASM(v, name) "msr " __stringify(name,) #v
+
+#else /* __ASSEMBLY__ */
+
 /* Access to system registers */
 
 #define WRITE_SYSREG64(v, name) do {                    \
@@ -481,6 +492,8 @@
 #define WRITE_SYSREG_LR(v, index)  WRITE_SYSREG(v, ICH_LR_REG(index))
 #define READ_SYSREG_LR(index)      READ_SYSREG(ICH_LR_REG(index))
 
+#endif /* !__ASSEMBLY__ */
+
 #endif /* _ASM_ARM_ARM64_SYSREGS_H */
 
 /*
diff --git a/xen/arch/arm/include/asm/mpu/regions.inc b/xen/arch/arm/include/asm/mpu/regions.inc
new file mode 100644
index 0000000000..47868a1526
--- /dev/null
+++ b/xen/arch/arm/include/asm/mpu/regions.inc
@@ -0,0 +1,79 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <asm/mpu.h>
+#include <asm/sysregs.h>
+
+/* Backgroud region enable/disable */
+#define SCTLR_ELx_BR    BIT(17, UL)
+
+#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.
+ * 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
+ * Output:
+ *  sel: Next available region selector index.
+ * Clobbers 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
+
+    WRITE_SYSREG_ASM(\sel, PRSELR_EL2)
+    isb
+    WRITE_SYSREG_ASM(\prbar, PRBAR_EL2)
+    WRITE_SYSREG_ASM(\prlar, PRLAR_EL2)
+    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)
+
+/*
+ * Local variables:
+ * mode: ASM
+ * indent-tabs-mode: nil
+ * End:
+ */
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Mon Apr 14 16:51:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 16:51:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.950904.1347082 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4N2K-0007NL-Ln; Mon, 14 Apr 2025 16:51:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 950904.1347082; Mon, 14 Apr 2025 16:51: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 1u4N2K-0007MI-HS; Mon, 14 Apr 2025 16:51:56 +0000
Received: by outflank-mailman (input) for mailman id 950904;
 Mon, 14 Apr 2025 16: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=GQ8q=XA=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1u4Mx1-0003ls-Lw
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 16:46:27 +0000
Received: from NAM04-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam04on20625.outbound.protection.outlook.com
 [2a01:111:f403:2408::625])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 00cbdb30-1950-11f0-9ffb-bf95429c2676;
 Mon, 14 Apr 2025 18:46:26 +0200 (CEST)
Received: from DM6PR07CA0055.namprd07.prod.outlook.com (2603:10b6:5:74::32) by
 IA1PR12MB7517.namprd12.prod.outlook.com (2603:10b6:208:41a::19) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.32; Mon, 14 Apr
 2025 16:46:20 +0000
Received: from DS1PEPF0001708F.namprd03.prod.outlook.com
 (2603:10b6:5:74:cafe::28) by DM6PR07CA0055.outlook.office365.com
 (2603:10b6:5:74::32) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.33 via Frontend Transport; Mon,
 14 Apr 2025 16:46:20 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 DS1PEPF0001708F.mail.protection.outlook.com (10.167.17.139) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Mon, 14 Apr 2025 16:46:19 +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, 14 Apr
 2025 11:46:19 -0500
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, 14 Apr
 2025 11:46:18 -0500
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; Mon, 14 Apr 2025 11:46:17 -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: 00cbdb30-1950-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=r2Ss3YpbaX2r/31bF47lv3jwZZlIGmbBpue2MxX/wuZ/R8OTdQU1O18n+s8oMvAc+Acs7njsIAjc4tOyNDVD0+W+JPODvgPH3bxYV8wSuVB0j+eXHH5c4U7t2iqYIzgqsOarIE7AMaysbKpyec787+jHD7zbL0d1Q3THBcbhmsnAd4KjFm6O6HVS1ZLwWbsiWBJsyOuRBgX6ZX2c30WaHr635SIbkq96cy0dRBKfozYqcfIbAjGamV/CuXN3627l6sQpFj05xlInleT5q+GulFqwPew8jJBhrOgz0jljHAhCtpWt/pbqQQ975SsbeYqd0RSn6NRRmdm93yw0/jXiqQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=jPXfW0xKjKPyqHJAGBnbbDaBbiWamWXqAsxKqj91BhA=;
 b=QhU3u8IZuAbyOjM0LDz82UQpAE2ZvZVDpoPpnrh9N/QHHb81izkp3WXw0i0sMNVZAlgahvnTcq+x2lve6nKg/jJFErCBR0dbhULZXefO3Ur0zEb5Rs+fgiSmE1r6ImcdhD219nYKZAZ9XYPaibxFodh04r/8fMI9QBMX9Fqda9LA8eiK61woKDQOIZHYvspOFa16nCv57hVzTA0D+QYkg1yzdvxpf5YKpl1Dk0zlEzHbbc3vJMeAhVcvQDjnG6eQGz3s5C4xV296vDWRlMi6cnKLBa944OA3jqdrWBafTbNPqWkJJcqnCWSu0mFX7DfW9awvsoLJMjxGyhgmiTPi3g==
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=jPXfW0xKjKPyqHJAGBnbbDaBbiWamWXqAsxKqj91BhA=;
 b=XRvD8q8p3XiPVG9AzJBPIdL+ASA88+zL7+3qAMmRVc5xNAQm86MTA3D3XMJQC7Bf4KBtD5dWicdkoZxsf7MlvHR2WGJ043H7LMvfLT0fTX6vTz/Fx71Gz9o7aAPgEfbpj8LrC26AW5QzPMEi6ktjhe3f8HoeIh1094/2dFUKxds=
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>, Luca Fancellu <luca.fancellu@arm.com>
Subject: [PATCH v7 3/3] xen/arm32: mpu: Stubs to build MPU for arm32
Date: Mon, 14 Apr 2025 17:45:14 +0100
Message-ID: <20250414164514.588373-4-ayan.kumar.halder@amd.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20250414164514.588373-1-ayan.kumar.halder@amd.com>
References: <20250414164514.588373-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: DS1PEPF0001708F:EE_|IA1PR12MB7517:EE_
X-MS-Office365-Filtering-Correlation-Id: c95b6a67-e794-4456-b78e-08dd7b73e20a
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?0wkXQu5cACHti+AAXt0zUw900QM+d8nhjryWCSdTMXlHNIduPImX9wlknkCD?=
 =?us-ascii?Q?X+T1JreHtTWfR6I1OLKoODYXSxaEKsCyeoc3rvXJnHr1vfP7CbteRbUrfAgq?=
 =?us-ascii?Q?o4G4L4PXqsuM0uloLg8JC0QdPs6EFTUhJRwuBOqmpQYhvT+r+g9rtoy27XaV?=
 =?us-ascii?Q?MmWPM7UY0zGmxvsfL2RUEu+64qgf1/YD86MEXzL6ZjXQ8gyOHkl9cQuHiqhT?=
 =?us-ascii?Q?4wmOjOQi+dFMDNB+jjAZlhKy5WfgfesxkJBv8cR3boDcKvgOq7KrmOV6BRk9?=
 =?us-ascii?Q?4QeQ4drJblhk2uOgv6xxPepTc1WEoVG2mKEJiSyy/e/JkVn8uF1Cmee3rKow?=
 =?us-ascii?Q?pI3QSBViSul6+O9GsBKLPEAo6OMU9ApCLry9t693q8fcKWUjLQphPxxu/gYZ?=
 =?us-ascii?Q?V08sR37DgEGS9oPnKXmZOnIyp0Z45Kv8nNHa+KYJNSkNrKVQHHfRtFLd2MpE?=
 =?us-ascii?Q?FDX42WMHcqhnG/aChwA5V7UvI468tP0/BcbvjfuD9kmqhW0IqYziTjbZZVvq?=
 =?us-ascii?Q?6oMbCb0PVAVqzuBriOcmLA1A+byNdIMd9EqPze3I/0/Sj7njgGeErCsFQ7g5?=
 =?us-ascii?Q?GYuI6X+NkmEXWMPkBJv+jRvMoLloL4EbLEoLQpA7vbZDfpRgNZDHnmtrZRdc?=
 =?us-ascii?Q?nj7Qs8Gjbvshnp2uQFMQ1qWEwX1X7t5XSIc4bCVwM1K5mPsRDRggLmeuCM1d?=
 =?us-ascii?Q?egDJPoAzLgA0BtwjvgAcEn1tOwwUvQW4yh9jqdXQtmWzw6JWTClkq/e9IvM+?=
 =?us-ascii?Q?uz4HGER8Aw0mHdtFcAz3eLkkIEsdSKUcSJ+TN5ypqDjod4+aygVbiSdfn4XK?=
 =?us-ascii?Q?vS8CosrT0d5j6mcMJNWed5v8BjK/eZU5bqKZqr9uFhJjfcLN3OA6Wo3au1ed?=
 =?us-ascii?Q?/7gjzKb66fbOhIZHgmscnujOiFiW8LlFE+I/NvkLSSLMpL2HZ7C64G6XmV2X?=
 =?us-ascii?Q?aKca9nvqHVQLATc58fEmXpMLy1MH9ItgVEIKPOZsogKGDMx9dTp3FpqABUTW?=
 =?us-ascii?Q?FEY7HiqXdNZmUo5pJIxytBvLEqw1PgkyCBHUZFafSRXoXsMv0FGydbwriz8J?=
 =?us-ascii?Q?TxSlpQppAZCI2gOIlG2gSbFuERnpkZ8ftM5JAkLuij0fN2O/1/ImQa63Z1Du?=
 =?us-ascii?Q?zdTa8AjsxPByOiUiKKVu46wRVXrWAS0WNfVT70Mpe1DIuYK0nyZIhJ3FbVvt?=
 =?us-ascii?Q?FeHOgjnffrp4zmaD9wqtZZvO1Ic3lS9hxg7CVgah7Se4KWYjRhv+3g9py21u?=
 =?us-ascii?Q?CKaNRBtfF93FgFrdVR40dH1ya6uvjjmZ6usa4ay2rkuAo+/TQg6zAmsvNVAE?=
 =?us-ascii?Q?3XxVvgu2ht7clUwrUeZLUhJ+XhZrNLwIFo2QGMXHhv0ViTk8l4/xmz19kkbr?=
 =?us-ascii?Q?Dsbf//FZ/W+6tUQAqhRRs/KA7Tchd6U1Wef/b5xq6Y/H3yXOuKfCbENOwlgT?=
 =?us-ascii?Q?U7FXkGRCdf200NdCQhsdYvMvQIl+rz0jzz1kl0SjWjSWOtI/+lfE+a9EZTSb?=
 =?us-ascii?Q?9jNbzX65YeDW4yymWHEmvLZBTrGgJtCqQCrwGnbcjfcbnLsyG2v/bue3nA?=
 =?us-ascii?Q?=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: 14 Apr 2025 16:46:19.9349
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: c95b6a67-e794-4456-b78e-08dd7b73e20a
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:
	DS1PEPF0001708F.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB7517

Add stubs to enable compilation.

is_xen_heap_page() and is_xen_heap_mfn() are not implemented for arm32 MPU.
Thus, introduce the stubs for these functions in asm/mpu/mm.h and move the
original code to asm/mmu/mm.h (as it is used for arm32 MMU based system).

Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>
Reviewed-by: Michal Orzel <michal.orzel@amd.com>
Tested-by: Luca Fancellu <luca.fancellu@arm.com>
---
Changes from :-

v1, v2 -
1. New patch introduced in v3.
2. Should be applied on top of
https://patchwork.kernel.org/project/xen-devel/cover/20250316192445.2376484-1-luca.fancellu@arm.com/

v3 -
1. Add stubs for map_domain_page() and similar functions.

2. 'BUG_ON("unimplemented")' is kept in all the stubs.

v4 - 
1. is_xen_heap_mfn() macros are defined across mpu/mm.h (ARM32 specific)
, mmu/mm.h (ARM32 specific) and asm/mm.h (ARM64 specific)

2. s/(void*)0/NULL

v5 -
1. Add the headers for smpboot.c, domain_page.c and p2m.c.

2. Inclusion of headers and makefile entries are sorted alphabetically.

3. Update the commit message and style changes.

v6 -
1. Add R-b and T-b.
 
 xen/arch/arm/arm32/mpu/Makefile   |  2 ++
 xen/arch/arm/arm32/mpu/p2m.c      | 19 +++++++++++++
 xen/arch/arm/arm32/mpu/smpboot.c  | 26 ++++++++++++++++++
 xen/arch/arm/include/asm/mm.h     |  9 +------
 xen/arch/arm/include/asm/mmu/mm.h |  7 +++++
 xen/arch/arm/include/asm/mpu/mm.h |  5 ++++
 xen/arch/arm/mpu/Makefile         |  1 +
 xen/arch/arm/mpu/domain_page.c    | 45 +++++++++++++++++++++++++++++++
 8 files changed, 106 insertions(+), 8 deletions(-)
 create mode 100644 xen/arch/arm/arm32/mpu/p2m.c
 create mode 100644 xen/arch/arm/arm32/mpu/smpboot.c
 create mode 100644 xen/arch/arm/mpu/domain_page.c

diff --git a/xen/arch/arm/arm32/mpu/Makefile b/xen/arch/arm/arm32/mpu/Makefile
index 3340058c08..cf0540aecc 100644
--- a/xen/arch/arm/arm32/mpu/Makefile
+++ b/xen/arch/arm/arm32/mpu/Makefile
@@ -1 +1,3 @@
 obj-y += head.o
+obj-y += p2m.o
+obj-y += smpboot.o
diff --git a/xen/arch/arm/arm32/mpu/p2m.c b/xen/arch/arm/arm32/mpu/p2m.c
new file mode 100644
index 0000000000..3d9abe4400
--- /dev/null
+++ b/xen/arch/arm/arm32/mpu/p2m.c
@@ -0,0 +1,19 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <asm/p2m.h>
+#include <xen/bug.h>
+#include <xen/init.h>
+
+void __init setup_virt_paging(void)
+{
+    BUG_ON("unimplemented");
+}
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/xen/arch/arm/arm32/mpu/smpboot.c b/xen/arch/arm/arm32/mpu/smpboot.c
new file mode 100644
index 0000000000..5090f443f5
--- /dev/null
+++ b/xen/arch/arm/arm32/mpu/smpboot.c
@@ -0,0 +1,26 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <xen/bug.h>
+#include <xen/errno.h>
+#include <xen/mm.h>
+#include <xen/stdbool.h>
+
+int prepare_secondary_mm(int cpu)
+{
+    BUG_ON("unimplemented");
+    return -EINVAL;
+}
+
+void update_boot_mapping(bool enable)
+{
+    BUG_ON("unimplemented");
+}
+
+/*
+ * 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 fbffaccef4..5b67c0f8bb 100644
--- a/xen/arch/arm/include/asm/mm.h
+++ b/xen/arch/arm/include/asm/mm.h
@@ -170,14 +170,7 @@ struct page_info
 #define _PGC_need_scrub   _PGC_allocated
 #define PGC_need_scrub    PGC_allocated
 
-#ifdef CONFIG_ARM_32
-#define is_xen_heap_page(page) is_xen_heap_mfn(page_to_mfn(page))
-#define is_xen_heap_mfn(mfn) ({                                 \
-    unsigned long mfn_ = mfn_x(mfn);                            \
-    (mfn_ >= mfn_x(directmap_mfn_start) &&                      \
-     mfn_ < mfn_x(directmap_mfn_end));                          \
-})
-#else
+#ifdef CONFIG_ARM_64
 #define is_xen_heap_page(page) ((page)->count_info & PGC_xen_heap)
 #define is_xen_heap_mfn(mfn) \
     (mfn_valid(mfn) && is_xen_heap_page(mfn_to_page(mfn)))
diff --git a/xen/arch/arm/include/asm/mmu/mm.h b/xen/arch/arm/include/asm/mmu/mm.h
index caba987edc..7f4d59137d 100644
--- a/xen/arch/arm/include/asm/mmu/mm.h
+++ b/xen/arch/arm/include/asm/mmu/mm.h
@@ -27,6 +27,13 @@ extern unsigned long directmap_base_pdx;
 })
 
 #ifdef CONFIG_ARM_32
+#define is_xen_heap_page(page) is_xen_heap_mfn(page_to_mfn(page))
+#define is_xen_heap_mfn(mfn) ({                                 \
+    unsigned long mfn_ = mfn_x(mfn);                            \
+    (mfn_ >= mfn_x(directmap_mfn_start) &&                      \
+     mfn_ < mfn_x(directmap_mfn_end));                          \
+})
+
 /**
  * Find the virtual address corresponding to a machine address
  *
diff --git a/xen/arch/arm/include/asm/mpu/mm.h b/xen/arch/arm/include/asm/mpu/mm.h
index 86f33d9836..bfd840fa5d 100644
--- a/xen/arch/arm/include/asm/mpu/mm.h
+++ b/xen/arch/arm/include/asm/mpu/mm.h
@@ -13,6 +13,11 @@ extern struct page_info *frame_table;
 
 #define virt_to_maddr(va) ((paddr_t)((vaddr_t)(va) & PADDR_MASK))
 
+#ifdef CONFIG_ARM_32
+#define is_xen_heap_page(page) ({ BUG_ON("unimplemented"); false; })
+#define is_xen_heap_mfn(mfn) ({ BUG_ON("unimplemented"); false; })
+#endif
+
 /* On MPU systems there is no translation, ma == va. */
 static inline void *maddr_to_virt(paddr_t ma)
 {
diff --git a/xen/arch/arm/mpu/Makefile b/xen/arch/arm/mpu/Makefile
index 21bbc517b5..c7e3aa4d87 100644
--- a/xen/arch/arm/mpu/Makefile
+++ b/xen/arch/arm/mpu/Makefile
@@ -1,3 +1,4 @@
+obj-$(CONFIG_ARM_32) += domain_page.o
 obj-y += mm.o
 obj-y += p2m.o
 obj-y += setup.init.o
diff --git a/xen/arch/arm/mpu/domain_page.c b/xen/arch/arm/mpu/domain_page.c
new file mode 100644
index 0000000000..df5e06b6db
--- /dev/null
+++ b/xen/arch/arm/mpu/domain_page.c
@@ -0,0 +1,45 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <xen/bug.h>
+#include <xen/domain_page.h>
+#include <xen/mm-frame.h>
+#include <xen/types.h>
+
+void *map_domain_page_global(mfn_t mfn)
+{
+    BUG_ON("unimplemented");
+    return NULL;
+}
+
+/* Map a page of domheap memory */
+void *map_domain_page(mfn_t mfn)
+{
+    BUG_ON("unimplemented");
+    return NULL;
+}
+
+/* Release a mapping taken with map_domain_page() */
+void unmap_domain_page(const void *ptr)
+{
+    BUG_ON("unimplemented");
+}
+
+mfn_t domain_page_map_to_mfn(const void *ptr)
+{
+    BUG_ON("unimplemented");
+    return INVALID_MFN;
+}
+
+void unmap_domain_page_global(const void *va)
+{
+    BUG_ON("unimplemented");
+}
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Mon Apr 14 16:51:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 16:51:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.950903.1347077 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4N2K-0007LB-Fi; Mon, 14 Apr 2025 16:51:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 950903.1347077; Mon, 14 Apr 2025 16:51: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 1u4N2K-0007L4-B0; Mon, 14 Apr 2025 16:51:56 +0000
Received: by outflank-mailman (input) for mailman id 950903;
 Mon, 14 Apr 2025 16: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=GQ8q=XA=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1u4Mwy-0003ls-Ch
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 16:46:24 +0000
Received: from NAM12-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam12on2060a.outbound.protection.outlook.com
 [2a01:111:f403:2417::60a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fec1014e-194f-11f0-9ffb-bf95429c2676;
 Mon, 14 Apr 2025 18:46:22 +0200 (CEST)
Received: from DS7PR05CA0082.namprd05.prod.outlook.com (2603:10b6:8:57::23) 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.8632.27; Mon, 14 Apr 2025 16:46:16 +0000
Received: from DS1PEPF0001708E.namprd03.prod.outlook.com
 (2603:10b6:8:57:cafe::c) by DS7PR05CA0082.outlook.office365.com
 (2603:10b6:8:57::23) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.14 via Frontend Transport; Mon,
 14 Apr 2025 16:46:16 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 DS1PEPF0001708E.mail.protection.outlook.com (10.167.17.134) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Mon, 14 Apr 2025 16:46:16 +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, 14 Apr
 2025 11:46:16 -0500
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, 14 Apr
 2025 11:46:15 -0500
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; Mon, 14 Apr 2025 11:46:14 -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: fec1014e-194f-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=fyouC0F1VOJPrYxwNG9BIiDftSAGZl2JdkovJLtWUwBDEFos7mSFwlk+vw5ahoGmel/AEmkQldyL1fN4ft84H0vzp24EWIJMOce5Ox9xREvmSxDG9dJPB1beU09qAA5YQfut6KCv2xzNHFcZhtDUsLDsKmH2FLRDSgXSF/6lpnbt/A/3oD7CKtEk+7OXKMzSz7eGnA6eX7viwIxErO4Fals7vt2mxfH44SHtnVCiXPj1Us0Do/Jc2d/zK2u/mMi1GeKoEoXnIqdhW2k4kTe8ecW95x3ELqO8xtRZwg9heuTESVjzhIxxO3z0VxdN2Yf7oWgYyvnhhZSjtGW0Z/klvw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=KNIWLC11mww1ctAKkkxjTtOLEi7G6fnYwxxAr4py6UM=;
 b=h+SWg9Vb1QZP/UaODgcPtfB1aAQvBI0+rm/50929WDAc9ZTArdJYjNda+tX6Dz2CWAzWIDZ2iAPjBpu86+97eNfue4sxk7mat1cA/Ty7cMycJX6rnPrzJrJ1pZe3d6y4XsIpmhjXdkIRRYa0Jgnycky8qNPfislx4RkFx9zJTB+soCIVNDvO6iiLLly16Eymw3tlZo6FD+CzAerIbPLbdFXAY4K4XGFhNtB286FtMlDaWmmZEaEbKonkWS5j02L1Alw9Aq0zgNiRhcEkezwU8RWFsi3+tywzdrjjqeKLU+fyhGvoD0oMXeOkbMZb/3ERkj7zBvhI9/DmTA6WmStv3A==
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=KNIWLC11mww1ctAKkkxjTtOLEi7G6fnYwxxAr4py6UM=;
 b=IgK+ZK8LswMi2LK67SsZCpWiuRD/1L1W9cBsh53UDIOnJKABwIfgovRD+h0ANdsCpRU5IaSghBuLABmbvbngXl28U3eYO+awIlJL+Ibutj85IoyKrFPNkAYV9WFn5pIVs5/sDAihh4x8GzA/W4DFErtWQKuHoFKWKI3aB2svw+U=
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>, Luca Fancellu <luca.fancellu@arm.com>
Subject: [PATCH v7 2/3] xen/arm32: Create the same boot-time MPU regions as arm64
Date: Mon, 14 Apr 2025 17:45:13 +0100
Message-ID: <20250414164514.588373-3-ayan.kumar.halder@amd.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20250414164514.588373-1-ayan.kumar.halder@amd.com>
References: <20250414164514.588373-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: DS1PEPF0001708E:EE_|DS7PR12MB9525:EE_
X-MS-Office365-Filtering-Correlation-Id: c6ab11f8-a117-4af2-0d7d-08dd7b73e011
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?AfF9FriVU48jUW3H4JKW2A432M8zrp7NGpvY1r50FK1At5zWIjsqRQ7TvIdF?=
 =?us-ascii?Q?gcYRu9lUur3bPBBpTsRRpU9rWHWuG3+k5ZVdmJFB3soiEMfZ2CTGVWPEqy3p?=
 =?us-ascii?Q?b0ShxtkppE9its+PkMq2hkJBS2PLxVaj8cz1xFJYMx6ChIzecmMdsjdNFzyi?=
 =?us-ascii?Q?jmA1tU8aBPAZ6Xnk1N87EFkT6WGCHs7kTJkTBiIEDYr9XHhRyfxll0XrIBHr?=
 =?us-ascii?Q?u5OYyzepVC3XUcJQj1nxR7ZXkWpG/L4amPSdcNltpEEZAithrBQDDt9x+Abn?=
 =?us-ascii?Q?Nkj/NeWHwupM7LqwUaU04+8RNPf/LAuEfB5SXOCVLLf6lXFRUd7gKaEIXXcd?=
 =?us-ascii?Q?WzxzGKH2CbRFqR3PgU4meRPIHeKhtC+qmYp8v8jJAoGzbxpNgx0IG1ljZ2K6?=
 =?us-ascii?Q?mNq/O5sw4N1oZcL+FOxTt8hCzEADZ34RqiyHEo+GyoTLR7VSdpsq6dTl4WRu?=
 =?us-ascii?Q?/Y27S4g9TTx/FFiYXOJpO5KvX9rV0pxljN7/TXFyMGliXMLbya66ZbL0tCn4?=
 =?us-ascii?Q?GKL44YkgWhCwmU1P5Q3Nt0Pr4+Cs5jHEuUdOGjCdE+mQdGk1mjDcP7wEP36L?=
 =?us-ascii?Q?k5uYsVn/gZ7U3kSu2YcqPqXBtwKdF4NbbI20vFtmI7h5PfvfwLdikF479ILV?=
 =?us-ascii?Q?06KYfRp3ctfU+kO02L29bHQ3tznCa0Fmh7JNE6RrU5ODQHN04hDcEVbd4qLQ?=
 =?us-ascii?Q?SIyqIJa1jsNihzeF4QHWgp/VKFwGj0x0tkBSW3TP7l7qTOLb7Ebn14HEIkxx?=
 =?us-ascii?Q?JEoh5U9dwo6g04MliWwxj8fM761MdV0LI0dtT2YMGKSKf+OrHwkGcjmfxPx2?=
 =?us-ascii?Q?s7zpE/n6MZeTZNbJcT1Wzem5sFxpxyzw5siq4JsGIn9xlLXXy15+Tiq/aRyE?=
 =?us-ascii?Q?MpPqQ1CbTjiuuF0H30qJG2+myFEgrnoqtJwT+PXBRZISFkyb2Yg4bQlOuRJ7?=
 =?us-ascii?Q?aJVeEYcGv7whQIIT89GoqrXG4gLn04ctkZqgUYHUBsXmouSL1VvOs9hE7JAo?=
 =?us-ascii?Q?cn8co7CaKRBU6MyJWS+uWCB0NsWwfaX9KZhyIYCoKby+a89iyJohrs1K8MFQ?=
 =?us-ascii?Q?EB7ogVjkqxKo/7MeRYphZkM2gHFg6Y02nYEv9dplgKu45IIrIUfl6732Xwht?=
 =?us-ascii?Q?hfAxZR3UXLZNRYmoy5p9X31C2SUEsjuKdO9YloUULoaldANpED6OOf7pzd7+?=
 =?us-ascii?Q?xdNhoR/pCuNEEcoqdpHgXVp7Hr70Cv0rfTDOZ8VppSQidLUjOdrN8V/f7yKc?=
 =?us-ascii?Q?XtcPddudJv/aPExb/hvcFCFRbqDUwmzgDQs5+zR/5L/pUAVI80PFe4+8VaSe?=
 =?us-ascii?Q?7L4OzBzb7w0Je2Kp+bnYU1cpMhpw7CahEHyHtpy1wDEHMVqsbOAF5rDdOtMl?=
 =?us-ascii?Q?STypmptmUYZ+MCfSostJ15JttMlGPhunY5Lo23+Z0lCpA3UFALGjNsltR9BX?=
 =?us-ascii?Q?7bfTDDRa9Rk8FX2kp+S6mzhsEnSSsfQGUlVzv/2F/ecmvdG2mULYaLfpnebJ?=
 =?us-ascii?Q?hsACMLJDH/tXTLeDMXzg5i/DvTcDAScwvgDl?=
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);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Apr 2025 16:46:16.6366
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: c6ab11f8-a117-4af2-0d7d-08dd7b73e011
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:
	DS1PEPF0001708E.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB9525

Create Boot-time MPU protection regions (similar to Armv8-R AArch64) for
Armv8-R AArch32.
Also, defined *_PRBAR macros for arm32. The only difference from arm64 is that
XN is 1-bit for arm32.
Define the system registers and macros in mpu/cpregs.h.

Introduce WRITE_SYSREG_ASM() to write to system registers in assembly.

Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>
Tested-by: Luca Fancellu <luca.fancellu@arm.com>
---
Changes from

v1 -

1. enable_mpu() now sets HMAIR{0,1} registers. This is similar to what is
being done in enable_mmu(). All the mm related configurations happen in this
function.

2. Fixed some typos. 

v2 -
1. Include the common prepare_xen_region.inc in head.S.

2. Define LOAD_SYSREG()/STORE_SYSREG() for arm32.

v3 -
1. Rename STORE_SYSREG() as WRITE_SYSREG_ASM()

2. enable_boot_cpu_mm() is defined in head.S

v4 -
1. *_PRBAR is moved to arm32/sysregs.h.

2. MPU specific CP15 system registers are defined in mpu/cpregs.h. 

v5 -
1. WRITE_SYSREG_ASM is enclosed within #ifdef __ASSEMBLY__

2. enable_mpu() clobbers r0 only.

3. Definitions in mpu/cpregs.h in enclosed within ARM_32.

4. Removed some #ifdefs and style changes.

v6 -
1. Coding style issues.

2. Kept Luca's R-b and T-b as the changes should not impact the behavior.

3. Added alias and renamed the sysregs as it is named in the specs.

 xen/arch/arm/arm32/Makefile              |   1 +
 xen/arch/arm/arm32/mpu/Makefile          |   1 +
 xen/arch/arm/arm32/mpu/head.S            | 104 +++++++++++++++++++++++
 xen/arch/arm/include/asm/arm32/sysregs.h |  13 ++-
 xen/arch/arm/include/asm/cpregs.h        |   2 +
 xen/arch/arm/include/asm/mpu/cpregs.h    |  32 +++++++
 6 files changed, 151 insertions(+), 2 deletions(-)
 create mode 100644 xen/arch/arm/arm32/mpu/Makefile
 create mode 100644 xen/arch/arm/arm32/mpu/head.S
 create mode 100644 xen/arch/arm/include/asm/mpu/cpregs.h

diff --git a/xen/arch/arm/arm32/Makefile b/xen/arch/arm/arm32/Makefile
index 40a2b4803f..537969d753 100644
--- a/xen/arch/arm/arm32/Makefile
+++ b/xen/arch/arm/arm32/Makefile
@@ -1,5 +1,6 @@
 obj-y += lib/
 obj-$(CONFIG_MMU) += mmu/
+obj-$(CONFIG_MPU) += mpu/
 
 obj-$(CONFIG_EARLY_PRINTK) += debug.o
 obj-y += domctl.o
diff --git a/xen/arch/arm/arm32/mpu/Makefile b/xen/arch/arm/arm32/mpu/Makefile
new file mode 100644
index 0000000000..3340058c08
--- /dev/null
+++ b/xen/arch/arm/arm32/mpu/Makefile
@@ -0,0 +1 @@
+obj-y += head.o
diff --git a/xen/arch/arm/arm32/mpu/head.S b/xen/arch/arm/arm32/mpu/head.S
new file mode 100644
index 0000000000..b2c5245e51
--- /dev/null
+++ b/xen/arch/arm/arm32/mpu/head.S
@@ -0,0 +1,104 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Start-of-day code for an Armv8-R-AArch32 MPU system.
+ */
+
+#include <asm/arm32/macros.h>
+#include <asm/arm32/sysregs.h>
+#include <asm/cpregs.h>
+#include <asm/mpu.h>
+#include <asm/mpu/regions.inc>
+#include <asm/page.h>
+
+/*
+ * Set up the memory attribute type tables and 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 AArch32 architecture is
+ * IMPLEMENTATION DEFINED, we intend to turn off the Background region here.
+ *
+ * Clobbers r0
+ */
+FUNC_LOCAL(enable_mpu)
+    /* Set up memory attribute type tables */
+    mov_w r0, MAIR0VAL
+    mcr   CP32(r0, HMAIR0)
+    mov_w r0, MAIR1VAL
+    mcr   CP32(r0, HMAIR1)
+
+    mrc   CP32(r0, HSCTLR)
+    bic   r0, r0, #SCTLR_ELx_BR       /* Disable Background region */
+    orr   r0, r0, #SCTLR_Axx_ELx_M    /* Enable MPU */
+    orr   r0, r0, #SCTLR_Axx_ELx_C    /* Enable D-cache */
+    mcr   CP32(r0, HSCTLR)
+    isb
+
+    ret
+END(enable_mpu)
+
+/*
+ * Maps the various sections of Xen (described in xen.lds.S) as different MPU
+ * regions.
+ *
+ * Clobbers r0 - r5
+ *
+ */
+FUNC(enable_boot_cpu_mm)
+    /* Get the number of regions specified in MPUIR_EL2 */
+    mrc   CP32(r5, MPUIR_EL2)
+    and   r5, r5, #NUM_MPU_REGIONS_MASK
+
+    /* x0: region sel */
+    mov   r0, #0
+    /* Xen text section. */
+    mov_w   r1, _stext
+    mov_w   r2, _etext
+    prepare_xen_region r0, r1, r2, r3, r4, r5, attr_prbar=REGION_TEXT_PRBAR
+
+    /* Xen read-only data section. */
+    mov_w   r1, _srodata
+    mov_w   r2, _erodata
+    prepare_xen_region r0, r1, r2, r3, r4, r5, attr_prbar=REGION_RO_PRBAR
+
+    /* Xen read-only after init and data section. (RW data) */
+    mov_w   r1, __ro_after_init_start
+    mov_w   r2, __init_begin
+    prepare_xen_region r0, r1, r2, r3, r4, r5
+
+    /* Xen code section. */
+    mov_w   r1, __init_begin
+    mov_w   r2, __init_data_begin
+    prepare_xen_region r0, r1, r2, r3, r4, r5, attr_prbar=REGION_TEXT_PRBAR
+
+    /* Xen data and BSS section. */
+    mov_w   r1, __init_data_begin
+    mov_w   r2, __bss_end
+    prepare_xen_region r0, r1, r2, r3, r4, r5
+
+#ifdef CONFIG_EARLY_PRINTK
+    /* Xen early UART section. */
+    mov_w   r1, CONFIG_EARLY_UART_BASE_ADDRESS
+    mov_w   r2, (CONFIG_EARLY_UART_BASE_ADDRESS + CONFIG_EARLY_UART_SIZE)
+    prepare_xen_region r0, r1, r2, r3, r4, r5, attr_prbar=REGION_DEVICE_PRBAR, attr_prlar=REGION_DEVICE_PRLAR
+#endif
+
+    b    enable_mpu
+END(enable_boot_cpu_mm)
+
+/*
+ * We don't yet support secondary CPUs bring-up. Implement a dummy helper to
+ * please the common code.
+ */
+FUNC(enable_secondary_cpu_mm)
+    PRINT("- SMP not enabled yet -\r\n")
+1:  wfe
+    b 1b
+END(enable_secondary_cpu_mm)
+
+/*
+ * Local variables:
+ * mode: ASM
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/xen/arch/arm/include/asm/arm32/sysregs.h b/xen/arch/arm/include/asm/arm32/sysregs.h
index 22871999af..ef1a870fd6 100644
--- a/xen/arch/arm/include/asm/arm32/sysregs.h
+++ b/xen/arch/arm/include/asm/arm32/sysregs.h
@@ -20,7 +20,16 @@
  * uses r0 as a placeholder register. */
 #define CMD_CP32(name...)      "mcr " __stringify(CP32(r0, name)) ";"
 
-#ifndef __ASSEMBLY__
+#define REGION_TEXT_PRBAR       0x18    /* SH=11 AP=10 XN=0 */
+#define REGION_RO_PRBAR         0x1D    /* SH=11 AP=10 XN=1 */
+#define REGION_DATA_PRBAR       0x19    /* SH=11 AP=00 XN=1 */
+#define REGION_DEVICE_PRBAR     0x11    /* SH=10 AP=00 XN=1 */
+
+#ifdef __ASSEMBLY__
+
+#define WRITE_SYSREG_ASM(v, name) mcr CP32(v, name)
+
+#else /* __ASSEMBLY__ */
 
 /* C wrappers */
 #define READ_CP32(name...) ({                                   \
@@ -84,7 +93,7 @@
 /* MVFR2 is not defined on ARMv7 */
 #define MVFR2_MAYBE_UNDEFINED
 
-#endif /* __ASSEMBLY__ */
+#endif /* !__ASSEMBLY__ */
 
 #endif /* __ASM_ARM_ARM32_SYSREGS_H */
 /*
diff --git a/xen/arch/arm/include/asm/cpregs.h b/xen/arch/arm/include/asm/cpregs.h
index aec9e8f329..a7503a190f 100644
--- a/xen/arch/arm/include/asm/cpregs.h
+++ b/xen/arch/arm/include/asm/cpregs.h
@@ -1,6 +1,8 @@
 #ifndef __ASM_ARM_CPREGS_H
 #define __ASM_ARM_CPREGS_H
 
+#include <asm/mpu/cpregs.h>
+
 /*
  * AArch32 Co-processor registers.
  *
diff --git a/xen/arch/arm/include/asm/mpu/cpregs.h b/xen/arch/arm/include/asm/mpu/cpregs.h
new file mode 100644
index 0000000000..d5cd0e04d5
--- /dev/null
+++ b/xen/arch/arm/include/asm/mpu/cpregs.h
@@ -0,0 +1,32 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#ifndef __ARM_MPU_CPREGS_H
+#define __ARM_MPU_CPREGS_H
+
+/* CP15 CR0: MPU Type Register */
+#define HMPUIR          p15,4,c0,c0,4
+
+/* CP15 CR6: MPU Protection Region Base/Limit/Select Address Register */
+#define HPRSELR         p15,4,c6,c2,1
+#define HPRBAR          p15,4,c6,c3,0
+#define HPRLAR          p15,4,c6,c8,1
+
+/* Aliases of AArch64 names for use in common code */
+#ifdef CONFIG_ARM_32
+/* Alphabetically... */
+#define MPUIR_EL2       HMPUIR
+#define PRBAR_EL2       HPRBAR
+#define PRLAR_EL2       HPRLAR
+#define PRSELR_EL2      HPRSELR
+#endif /* CONFIG_ARM_32 */
+
+#endif /* __ARM_MPU_CPREGS_H */
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Mon Apr 14 16:57:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 16:57:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.950930.1347098 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4N7h-0008Vd-Ep; Mon, 14 Apr 2025 16:57:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 950930.1347098; Mon, 14 Apr 2025 16:57: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 1u4N7h-0008VW-Ar; Mon, 14 Apr 2025 16:57:29 +0000
Received: by outflank-mailman (input) for mailman id 950930;
 Mon, 14 Apr 2025 16:57:28 +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 1u4N7g-0008VP-GC
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 16:57:28 +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 1u4N7f-00EyIu-2u;
 Mon, 14 Apr 2025 16:57:27 +0000
Received: from [2a01:e0a:1da:8420:b77:bd5:6e45:7633] (helo=l14)
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1u4N7f-00GJiv-1v;
 Mon, 14 Apr 2025 16:57: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=xenproject.org; s=20200302mail; h=In-Reply-To:Content-Transfer-Encoding:
	Content-Type:MIME-Version:References:Message-ID:Subject:Cc:To:From:Date;
	bh=vYEY+HR6qgtd6JjfOtYgs7C/AAwqxupyDV4G4O2eBfc=; b=iPTqBY/82X4hTFlTFFqhdJdT0M
	qiRwBjelZ57ZQQnwhuEXGeEhm3NEgZMHVtT+i2lJqnvciVICmMX0lyBlddy7PPZmbfIsg6LqJ4Q+5
	kO6fzZ7EoetW46SYtBhmpz7Gen+YaxcHLmubQsDbP/9uhCduLtG5DASuXdN6fWkfw27k=;
Date: Mon, 14 Apr 2025 18:57:25 +0200
From: Anthony PERARD <anthony@xenproject.org>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
	Marek =?iso-8859-1?Q?Marczykowski-G=F3recki?= <marmarek@invisiblethingslab.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>,
	Doug Goldstein <cardoe@cardoe.com>
Subject: Re: [PATCH v3 2/6] CI: avoid repacking initrd as part of the test job
Message-ID: <Z_0-dX2FkS6TCv-U@l14>
References: <20250414110903.2355303-1-andrew.cooper3@citrix.com>
 <20250414110903.2355303-3-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <20250414110903.2355303-3-andrew.cooper3@citrix.com>

On Mon, Apr 14, 2025 at 12:08:59PM +0100, Andrew Cooper wrote:
> From: Marek Marczykowski-Grecki <marmarek@invisiblethingslab.com>
> 
> Use the new test-artifacts which provide rootfs.cpio.gz rather than
> initrd.tar.gz.  rootfs.cpio.gz also has all the necessary top-level
> directories, and includes the rc_verbose setting, so these modifications can
> be dropped.
> 
> Having that, do not repack the whole initrd, but only pack modified
> files and rely on Linux handling of concatenated archives.
> This allows packing just test-related files (which includes the whole
> toolstack), instead of the whole initrd.
> 
> For xilinx-smoke-dom0-x86_64.sh, this involves instructing grub not to unzip
> the archive, as doing so corrupts it.
> 
> Signed-off-by: Marek Marczykowski-Grecki <marmarek@invisiblethingslab.com>
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

This patch seems to depends on the other patch series for
"test-artifacts" repo.

I've tried to compare the rootfs fs generated by this repo, and the one
generated in the "test-artifacts" repo, and I think there's a few
changes, at least for the arm64 rootfs as the changes have probably
already sailed for x86_64, namely:

    Those don't exist in the new rootfs:
        rc-update add networking sysinit
        rc-update add modloop sysinit
        rc-update add modules boot
        rc-update add sysctl boot
    There's `echo > /etc/modules` been added.

But I guess none of those matter, as it already works on x86_64 tests.

Overall, looks good, more common code between tests!

Reviewed-by: Anthony PERARD <anthony.perard@vates.tech>

Thanks,

-- 
Anthony PERARD


From xen-devel-bounces@lists.xenproject.org Mon Apr 14 16:58:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 16:58:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.950939.1347107 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4N8E-0000Yl-MB; Mon, 14 Apr 2025 16:58:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 950939.1347107; Mon, 14 Apr 2025 16:58: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 1u4N8E-0000Yc-IX; Mon, 14 Apr 2025 16:58:02 +0000
Received: by outflank-mailman (input) for mailman id 950939;
 Mon, 14 Apr 2025 16:58:01 +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 1u4N8D-0000YU-2D
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 16:58:01 +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 1u4N8C-00EyJU-2H;
 Mon, 14 Apr 2025 16:58:00 +0000
Received: from [2a01:e0a:1da:8420:b77:bd5:6e45:7633] (helo=l14)
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1u4N8C-00GJrm-1I;
 Mon, 14 Apr 2025 16: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=In-Reply-To:Content-Transfer-Encoding:
	Content-Type:MIME-Version:References:Message-ID:Subject:Cc:To:From:Date;
	bh=QDBNyrOki4VVdkTzrDXnmVSkOdnWjHz8q50pLsj96Ew=; b=3GFesXgblOpS7Dsymj2SMwujTF
	5NencoTLsb83O4yoXkVD94hSD5ze7Fq+ZwrMxgmadVPKm5gzVVoxJ45PnZF7rdTKWAxS5eKk/jHqE
	guCzWmBY4XBBH4tv2z7QqLuhW32ZmKkJ347tilZa1rPnin4DPPJWL8g6F3EkOd/CadT8=;
Date: Mon, 14 Apr 2025 18:57:58 +0200
From: Anthony PERARD <anthony@xenproject.org>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
	Marek =?iso-8859-1?Q?Marczykowski-G=F3recki?= <marmarek@invisiblethingslab.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>,
	Doug Goldstein <cardoe@cardoe.com>
Subject: Re: [PATCH v3 3/6] CI: remove now unused alpine-3.18-arm64-rootfs
 job and its container
Message-ID: <Z_0-lvABpxaclFeA@l14>
References: <20250414110903.2355303-1-andrew.cooper3@citrix.com>
 <20250414110903.2355303-4-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <20250414110903.2355303-4-andrew.cooper3@citrix.com>

On Mon, Apr 14, 2025 at 12:09:00PM +0100, Andrew Cooper wrote:
> From: Marek Marczykowski-Grecki <marmarek@invisiblethingslab.com>
> 
> This got moved to test-artifacts.
> 
> Signed-off-by: Marek Marczykowski-Grecki <marmarek@invisiblethingslab.com>
> Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>

Acked-by: Anthony PERARD <anthony.perard@vates.tech>

Thanks,

-- 
Anthony PERARD


From xen-devel-bounces@lists.xenproject.org Mon Apr 14 17:06:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 17:06:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.950954.1347117 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4NGF-0003cC-D0; Mon, 14 Apr 2025 17:06:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 950954.1347117; Mon, 14 Apr 2025 17:06:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4NGF-0003c5-9w; Mon, 14 Apr 2025 17:06:19 +0000
Received: by outflank-mailman (input) for mailman id 950954;
 Mon, 14 Apr 2025 17:06:17 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=B3Nx=XA=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u4NGD-0003bw-Q3
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 17:06:17 +0000
Received: from NAM10-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam10on20614.outbound.protection.outlook.com
 [2a01:111:f403:2413::614])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c57dfe7f-1952-11f0-9ffb-bf95429c2676;
 Mon, 14 Apr 2025 19:06:15 +0200 (CEST)
Received: from MW4PR04CA0323.namprd04.prod.outlook.com (2603:10b6:303:82::28)
 by DM4PR12MB6400.namprd12.prod.outlook.com (2603:10b6:8:b9::8) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.8632.32; Mon, 14 Apr 2025 17:06:09 +0000
Received: from BY1PEPF0001AE1C.namprd04.prod.outlook.com
 (2603:10b6:303:82:cafe::ed) by MW4PR04CA0323.outlook.office365.com
 (2603:10b6:303:82::28) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.34 via Frontend Transport; Mon,
 14 Apr 2025 17:06:09 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BY1PEPF0001AE1C.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.8655.12 via Frontend Transport; Mon, 14 Apr 2025 17:06:09 +0000
Received: from localhost (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; Mon, 14 Apr
 2025 12:06: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: c57dfe7f-1952-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=CqZAGD6I+QdJMogp9Pbo7aw9s9VOy2TfzdB6OqYu/atMy/izXAreRKaFw9QGmPt7i6Zxs/OLMeFQqSyWBKU+VPvjXbuEPFn8OkoeWzXFMhomy8e1NB3MKMAWBJL1dwYjxwZQ4uS1W0AaEH5XKkS8FJH7LuQ/vH2krF/D48X64YBDBhzAC9xHqiN6UUBEh6/eCttnN/u/CwZ4sjSZWRcGaDxUxSw/oghHvLOf6jLpyxL6JLfc0UWaokm5GLjEMOqa3+OIGkbIUyFkuRm6Usk56GJs0BhupHUgDlAslqwKOPkta2aMC3cC+3yn5GTqTSJu0jLcB9V+acLHjGvWTecMmQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=w0+MIl3LtTlQ3iANrOXLb54UQZ8lH+NafCNh5Dkkvn8=;
 b=gAx04wMVl/36iv4oYbsl6F3Nurxo/xsndh2iwu7LyVrLtj9so7QbnOYFmY3gGclucM8EwNzGuDt9FJKY9XrBB3kgGQAdrnVxMwX15ULWTjtCx1gkafsIrVClOvoK7swhd3T/0gLQKd94l26qvti4GFFOziaQsxQcWJ0B0929IL+ZxBVobbO34+LPvBwU4LKZpiBmeaQ8RWz4eedaE/MpA7MgiBFeE9vlgAACzzXiaRmsyp/k44WlCBQu/Y4/2Cd3mDcWg23V649aCJaFxM1HOHlr27uPvaS8naIHN7p/m5CE63Ol9ITERmQVVmF0A8eoC72BGaHg3K0nQWEM2AFjOA==
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=w0+MIl3LtTlQ3iANrOXLb54UQZ8lH+NafCNh5Dkkvn8=;
 b=yX2nuey8MHIx1Apz2yKD9BoN2Q3zm8wCq+0DSmng0qqgBIS3yoS16f3KZ0obKe5vqF7yOeMTQ9tdIwYVE3aHfa2fBAUy6mnHii68STB08KXc9BrFTnJ1K5HU67qioHnbwnMRLuLrf9GSDST9KVBH74l3d7cU3T1V/2nInU5sJYs=
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
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Mon, 14 Apr 2025 18:06:02 +0100
Message-ID: <D96IXRWYOGUM.Z5A9K2NCCBQY@amd.com>
CC: "Daniel P. Smith" <dpsmith@apertussolutions.com>, Jason Andryuk
	<jason.andryuk@amd.com>, Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	"Stefano Stabellini" <sstabellini@kernel.org>, Michal Orzel
	<michal.orzel@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>
Subject: Re: [PATCH v3 11/16] x86/hyperlaunch: locate dom0 initrd with
 hyperlaunch
From: Alejandro Vallejo <agarciav@amd.com>
To: Jan Beulich <jbeulich@suse.com>
X-Mailer: aerc 0.20.1
References: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-12-agarciav@amd.com>
 <b3018b0d-e0e8-440e-9f02-363a7bd0378f@suse.com>
In-Reply-To: <b3018b0d-e0e8-440e-9f02-363a7bd0378f@suse.com>
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: BY1PEPF0001AE1C:EE_|DM4PR12MB6400:EE_
X-MS-Office365-Filtering-Correlation-Id: c861fb08-d26d-44fd-dbab-08dd7b76a6d8
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?NmhickNZRm5vaWNYbEcxNHh6VTYvczFQemdSSWE0QzBxZlFpbWxzTm9UaEVQ?=
 =?utf-8?B?MGhsd2M1WDJkczcvUjJlMW9PN2xVSDJqTXNhN1hNdFNBM3pVK242RWZWeDhG?=
 =?utf-8?B?TnF6ZTV5VkxHaHM3em82MmZiMXNDQmFYb3p0MVVZNzFUVllGaW9NeHRIZUVp?=
 =?utf-8?B?L1VXbFgyMHF1U2R2cyszUTM1WGtwU0VDcFhPY3BkQlVEbVVYUi96Vm9xZUtP?=
 =?utf-8?B?SElOWjdxa2VBM2VRbTBCSzhwQmVaRklFZ25UbG5qb1JvSjZZSTFQTUFDQ3p1?=
 =?utf-8?B?Z0RvblJCbmVLYlhkNEJwODlZWHVtdTE5UExVZ2UwaGV0dlJQbEM3dDBFOEtD?=
 =?utf-8?B?VWhjbmRCZnZwaFNSalRDZ24rdmhCQ0IwdWpLOVFwL1NRbHpadWUwUk9MZ0Y0?=
 =?utf-8?B?aWovQklvUFJjY1VIR2lmOXpVUFUxeFRtRWZMV1VnMDJtR1cxRWhnRmNFUUdI?=
 =?utf-8?B?QlIzZEw3TXVWRU1iWjVvOUExU3NmUXV4UmpmMDVzZFR4TkZFMzJXZG55WG5T?=
 =?utf-8?B?enREcWE5d1pldVhMcFRlQndielJTOUZJN0NuVmpneStXN0JEeW9tWXNMekJk?=
 =?utf-8?B?Sk85dE5CcWltSFlmMnl0Z21YOUpycnAwTUkrZHNiRUltcEdLRWVBdXhYU1lM?=
 =?utf-8?B?SE5CSnhvS0JyUnJNeWFpVHpIb0pMb0JoR1d1eXl2dm5GNGQ3cnkwbzVHNHFn?=
 =?utf-8?B?Q0R1QTBhUVBURkxXMW04N1VTeVBWZ3JlM3VWV3dheXVBdnEwYWdEeHpIbFVI?=
 =?utf-8?B?Z0hKT1F2c3UzcXdqVWhFbDBFbWppQ2pzaVo5LzZaYWZSY05LK0hMMDdxQnk3?=
 =?utf-8?B?OS9UVVB5WjJnWiszRUM5aEhiUWUranZrRHFwTjlvRGNmbU1Ib0NhQjA4eUNG?=
 =?utf-8?B?eW5wYXZaQmdNY1V5NjFlWmRqK1V1OUN6WU9sZEtObDV2TFhic1lvdllPMzl0?=
 =?utf-8?B?Vm83RXRiUS92K215ek1CWm84LzNRWUd3R1RqRHlheXNSUHY1dStCZ0hBTG44?=
 =?utf-8?B?WElOTjg3UmNsdnRrZjYxSFJpeGJzUXU4dDI3Qmc0Y1l5dE51QnA2WnVEbDFK?=
 =?utf-8?B?blZ2TDJ3aHVPYTFnaENIYXRIWW5FcFoxQ2cyaW56ZlJOZ081NEIwcnJaMkJM?=
 =?utf-8?B?U2xMWUhxcHFRd2VjMmtWMHBTV2tXNFVWcmJ6RUsxRmJFbkJ5SWhGa1BTZ2NM?=
 =?utf-8?B?Q3k2SXpBcTlwNmgwT3VIdkxBOXRTemt3SDFyMUR6bERoNDJYMDlOdVg0cGs1?=
 =?utf-8?B?NkFtM2h4SEwxdWZmUVdBNUViTHFic2dkV3o4bzZLS1U2SW1pNVgxNndhWloy?=
 =?utf-8?B?ZGV4UjlHaDk1SjR6SFBENXU1S0pRVXpBdTRFcVMyaEkwSWhYU3B0aU9SMVBK?=
 =?utf-8?B?NXZQOFpwSGR3NDhCWTdSYjhJSlQ0SERta3lvbVo3ZEpzK1dKc3oxbDZEM3U0?=
 =?utf-8?B?N1FBN00yY1hFcU1jVWhCN1pZNTI3bjFVcldaK0RaTTAxSG5OczlxakhwVkoy?=
 =?utf-8?B?MU9pdS94Njc0Qm1zN1BBOFVVSzFlaVpLT2hkNDYwbWlySUdYV2FKZWNBZDU2?=
 =?utf-8?B?TkZvUUhtRERmeGhrOWhneU1IU3ZwMzM2K3pkVElCbUtLUjNKR29tQXdLeDI5?=
 =?utf-8?B?ZFZrQlBEOW1QL1Q5MXN6UGtraHRYNEN3VFNhdjFsc1BiVGhxQ1NUWGh0ZXVj?=
 =?utf-8?B?L240Y05YWDlkMGNKM2ZIOHB6U3FIOFRyTHpjTnVNZTRiajdpT1B6cGY2d2Rw?=
 =?utf-8?B?M3RCTFRnOWR1eEFha0NhZ3NZNlRhNlNxeEluWDNYZU02dXR1YkR6VEhaQ0hj?=
 =?utf-8?B?dGZIMXZpenlTeE53VzNnMGxudUd6ajcxRy85djBGcGxQNGRvd29iWkVGV2Fo?=
 =?utf-8?B?N1crVWt1V05xclllK01pQ2Z0SGZnRU5OZTV5MFBSRnljQmZQcGtSMDJsR3Fw?=
 =?utf-8?B?UmZKSzh5RUxIL3UwdnNQczYzZ21VWldiVUd3VHF1ZFhPdE5YWGZSVWdncWYv?=
 =?utf-8?B?TzRsdUwzTEg1MnpORlV3WlJRQWppbFdoZnlOY0Q3bkdNb0NMMGxYUE1BR05i?=
 =?utf-8?Q?y//RP/?=
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: 14 Apr 2025 17:06:09.0658
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: c861fb08-d26d-44fd-dbab-08dd7b76a6d8
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:
	BY1PEPF0001AE1C.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB6400

On Thu Apr 10, 2025 at 12:34 PM BST, Jan Beulich wrote:
> On 08.04.2025 18:07, Alejandro Vallejo wrote:
>> --- a/xen/arch/x86/domain-builder/fdt.c
>> +++ b/xen/arch/x86/domain-builder/fdt.c
>> @@ -195,6 +195,35 @@ static int __init process_domain_node(
>>                   !((char *)__va(bd->kernel->cmdline_pa))[0] )
>>                  bd->kernel->fdt_cmdline =3D fdt_get_prop_offset(
>>                      fdt, node, "bootargs", &bd->kernel->cmdline_pa);
>> +
>> +            continue;
>
> With this ...
>
>> +        }
>> +        else if ( fdt_node_check_compatible(fdt, node,
>
> ... no need for "else" here?

Sure

>
>> +                                            "multiboot,ramdisk") =3D=3D=
 0 )
>> +        {
>> +            int idx;
>> +
>> +            if ( bd->module )
>> +            {
>> +                printk(XENLOG_ERR "Duplicate ramdisk module for domain =
%s)\n",
>
> Stray ')' in the string literal.

Ack.

>
>> +                       name);
>> +                continue;
>> +            }
>> +
>> +            idx =3D fdt_read_multiboot_module(fdt, node, address_cells,
>> +                                            size_cells,bi);
>> +            if ( idx < 0 )
>> +            {
>> +                printk("  failed processing ramdisk module for domain %=
s\n",
>> +                       name);
>> +                return -EINVAL;
>> +            }
>
> Along the lines of what Denis has said - please be consistent about log
> messages: XENLOG_* or not, preferably no capital at the start, initial
> blank padding. May apply elsewhere in the series as well.

I don't mind dropping that and making everything flat (uppercase + no
padding), but there is some consistency. Albeit, it is true the
rationale is somewhat obscure.

ATM the consistency is: "padding spaces + lowercase" when giving extra
information on hyperlaunch. It ends up creating a hyperlaunch block in
`dmesg` with a "Hyperlaunch detected" line on top so it's easier to
know what lines are hyperlaunch related and which ones aren't.

Do you have a preference for a specific reporting style?

>
>> +            printk("  ramdisk: boot module %d\n", idx);
>> +            bi->mods[idx].type =3D BOOTMOD_RAMDISK;
>> +            bd->module =3D &bi->mods[idx];
>
> The field's named "module" now, but that now ends up inconsistent with
> naming used elsewhere, as is pretty noticeable here.

Well, yes. It is confusing. Also, the DTB is called multiboot,ramdisk,
because multiboot,module is already used to detect what nodes are
expressed as multiboot,modules. I'm considering going back and calling
them ramdisk again. If anything, to avoid the ambiguity between
domain modules and multiboot modules. e.g: a kernel is a multiboot
module, but not a domain module.

>
>> +            continue;
>
> This isn't strictly needed, is it, ...
>
>>          }
>>      }
>
> ... considering we're at the bottom of the loop?

Indeed

>
> Jan

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Mon Apr 14 17:24:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 17:24:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.950972.1347126 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4NXq-0000aN-SE; Mon, 14 Apr 2025 17:24:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 950972.1347126; Mon, 14 Apr 2025 17:24: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 1u4NXq-0000aG-PR; Mon, 14 Apr 2025 17:24:30 +0000
Received: by outflank-mailman (input) for mailman id 950972;
 Mon, 14 Apr 2025 17:24:29 +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 1u4NXp-0000a2-3y
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 17:24:29 +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 1u4NXo-00Ez19-1W;
 Mon, 14 Apr 2025 17:24:28 +0000
Received: from [2a01:e0a:1da:8420:b77:bd5:6e45:7633] (helo=l14)
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1u4NXo-00GcMN-0b;
 Mon, 14 Apr 2025 17:24: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=xenproject.org; s=20200302mail; h=In-Reply-To:Content-Type:MIME-Version:
	References:Message-ID:Subject:Cc:To:From:Date;
	bh=Z6B4SuUnXlh8AZkWQmhmNfI33gMUs3151/jJOuELimw=; b=I095L5k93DE1eqfsR0Z/PxyUYQ
	GrGteHcF1HZYr1UL0rUzwK6DHoHEdNP+h7dTbz8uMKTMJClZBXXgqs+zG61T1qdNxsI1HkHkSwKiP
	ss7aQ3GzUcpm4motP7E8igT0sLHol3gnCDPL4kpAyd3g5M9zEPqo67CXmvXAi84ac/Oo=;
Date: Mon, 14 Apr 2025 19:24:26 +0200
From: Anthony PERARD <anthony@xenproject.org>
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>,
	Marek =?iso-8859-1?Q?Marczykowski-G=F3recki?= <marmarek@invisiblethingslab.com>,
	Jason Andryuk <jason.andryuk@amd.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>
Subject: Re: [PATCH v3 4/6] CI: Switch to new argo artefact
Message-ID: <Z_1EyjnMwIudRszF@l14>
References: <20250414110903.2355303-1-andrew.cooper3@citrix.com>
 <20250414110903.2355303-5-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20250414110903.2355303-5-andrew.cooper3@citrix.com>

On Mon, Apr 14, 2025 at 12:09:01PM +0100, Andrew Cooper wrote:
> diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
> index 51229cbe561d..d46da1c43d05 100644
> --- a/automation/gitlab-ci/test.yaml
> +++ b/automation/gitlab-ci/test.yaml
> @@ -242,7 +242,7 @@ xilinx-smoke-dom0-x86_64-gcc-debug-argo:
>    needs:
>      - alpine-3.18-gcc-debug
>      - project: xen-project/hardware/test-artifacts
> -      job: x86_64-kernel-linux-6.6.56
> +      job: linux-6.6.56-x86_64
>        ref: master
>      - project: xen-project/hardware/test-artifacts
>        job: alpine-3.18-x86_64-rootfs


Don't you need to remove the dependency on "x86_64-argo-linux-6.6.56"
which is just out of context, as I think this is now part of
"linux-6.6.56-x86_64" job.

Besides that:
Reviewed-by: Anthony PERARD <anthony.perard@vates.tech>

Thanks,

-- 
Anthony PERARD


From xen-devel-bounces@lists.xenproject.org Mon Apr 14 17:25:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 17:25:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.950983.1347136 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4NZF-000162-67; Mon, 14 Apr 2025 17:25:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 950983.1347136; Mon, 14 Apr 2025 17: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 1u4NZF-00015v-38; Mon, 14 Apr 2025 17:25:57 +0000
Received: by outflank-mailman (input) for mailman id 950983;
 Mon, 14 Apr 2025 17:25: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=KxE1=XA=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u4NZD-00015n-Bv
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 17:25:55 +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 84c0c074-1955-11f0-9eae-5ba50f476ded;
 Mon, 14 Apr 2025 19:25:54 +0200 (CEST)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-43cfdc2c8c9so25036535e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 14 Apr 2025 10:25:54 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39eae963fccsm11494988f8f.3.2025.04.14.10.25.52
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 14 Apr 2025 10:25:52 -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: 84c0c074-1955-11f0-9eae-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744651553; x=1745256353; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=FUIzQD6p6HQ+GYIBiHA+cwCINAwcLx8RmSgULC9rwiQ=;
        b=loc6Air33RBpuZ0+p0aJVXHWpkei0bCmzPDs8w22EdtAKa8p0lT9nZ/n7UDFWexdPX
         wek3v8M1EvKBJxkENfD4bywRjtbwj6M632pbXD19a2bnmEzVdbnL+m0l27jSJCCi+aqK
         ZQGeFOlTbvEjpdMVH1R6j27eI3XlfxD6KXriA=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744651553; x=1745256353;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=FUIzQD6p6HQ+GYIBiHA+cwCINAwcLx8RmSgULC9rwiQ=;
        b=ij+tCEkLxCt4oaCkZ0PbXS5Jz8qEXdmEqLpBS2ZrvoIWeR2tvn+wEn95b6S8v7GKAP
         K/iFUFEVedPZqs3ZtU/gBZb5uh932gKdAU05sl8dohNQY6QXeIlVtGTiAML9n0Ln6Don
         lR8OPl0hi3KFu405y+BM347sZyFrYu0lbI5DQPxkuya9VcBbFgeDLSwoeMUXmh0Fs7Ut
         tmPn4QqxH3nuqVZxZdszBDUkp6UOdDU0XmzPbKZKf1TrI36sOFIb36eD/GIYTTBE3+vQ
         fPMCF1EuOpTaxoJ9ask69kGiTCWbFYiUbrfGkuElkE30Pl4AjbTRyTMQ8JuXbLdNZ/ZL
         MyaQ==
X-Gm-Message-State: AOJu0Yzu1jxOEqwiYEIQodYR7H+feu0hFP7mpda4o4Gq4RPvsEUcuA4R
	Pv4OXG2jBStJ8fiNiSx+xUvhkUi97m+m7H6Cy9/D5itqj8WJQC9/vyf69rJpsnY=
X-Gm-Gg: ASbGnctPPRZS0iiuIaV7Nx9cMM/qfUhgOvHYysq1+jCEz+BRx03+U/tl2vMxuDdzRo6
	/WtpvIf2mSxgIt+wU3NiuSzG/8f2C51ojdXXFKsfalfMPE+23SAbS76+BnlWNhvrLfDW57gRyDw
	QbIAhx309fXu0ofhEGnJo1iNnKhxEZQ00hE8vToHO6wzX5ZMTIsRyULLeScICimCdxzeoKDX53W
	4gX+t6gaigIM8q0DY0oBbZUcsGI1bmTx/gimiOUTpnNcOLLuKPiEe6aIqkvWvUB817x7buxvRY+
	euEy0mVnuiCHfxk9rUnT5egFjYNmBheWcucL4c3Jj1buqsq2pGw4yB1V+DC9mYPJat7BQFfyiPO
	Fc9QDCw==
X-Google-Smtp-Source: AGHT+IFdZRqZSqIAJRRJLH9tid8qkMuVAWpworf0ljyEj7lQMP1OehQ0flMyy9wpphLppXWZCB+Fgw==
X-Received: by 2002:a05:600c:1f14:b0:43d:94:2d1e with SMTP id 5b1f17b1804b1-43f3a93fa6bmr116418525e9.13.1744651553312;
        Mon, 14 Apr 2025 10:25:53 -0700 (PDT)
Message-ID: <f8920620-3e2c-4421-b2ec-726145733265@citrix.com>
Date: Mon, 14 Apr 2025 18:25:52 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 4/6] CI: Switch to new argo artefact
To: Anthony PERARD <anthony@xenproject.org>
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?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, Jason Andryuk <jason.andryuk@amd.com>,
 "Daniel P . Smith" <dpsmith@apertussolutions.com>
References: <20250414110903.2355303-1-andrew.cooper3@citrix.com>
 <20250414110903.2355303-5-andrew.cooper3@citrix.com> <Z_1EyjnMwIudRszF@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: <Z_1EyjnMwIudRszF@l14>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 14/04/2025 6:24 pm, Anthony PERARD wrote:
> On Mon, Apr 14, 2025 at 12:09:01PM +0100, Andrew Cooper wrote:
>> diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
>> index 51229cbe561d..d46da1c43d05 100644
>> --- a/automation/gitlab-ci/test.yaml
>> +++ b/automation/gitlab-ci/test.yaml
>> @@ -242,7 +242,7 @@ xilinx-smoke-dom0-x86_64-gcc-debug-argo:
>>    needs:
>>      - alpine-3.18-gcc-debug
>>      - project: xen-project/hardware/test-artifacts
>> -      job: x86_64-kernel-linux-6.6.56
>> +      job: linux-6.6.56-x86_64
>>        ref: master
>>      - project: xen-project/hardware/test-artifacts
>>        job: alpine-3.18-x86_64-rootfs
>
> Don't you need to remove the dependency on "x86_64-argo-linux-6.6.56"
> which is just out of context, as I think this is now part of
> "linux-6.6.56-x86_64" job.

Yes.  Sorry, this was a bad rebase taking out my "ref:
andrewcoop-test"'s through the series.

>
> Besides that:
> Reviewed-by: Anthony PERARD <anthony.perard@vates.tech>

Thanks.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Apr 14 17:27:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 17:27:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.950996.1347146 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4Nam-0001fH-E4; Mon, 14 Apr 2025 17:27:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 950996.1347146; Mon, 14 Apr 2025 17: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 1u4Nam-0001f7-BS; Mon, 14 Apr 2025 17:27:32 +0000
Received: by outflank-mailman (input) for mailman id 950996;
 Mon, 14 Apr 2025 17:27: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=B3Nx=XA=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u4Nak-0001ec-8I
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 17:27:30 +0000
Received: from NAM04-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam04on20616.outbound.protection.outlook.com
 [2a01:111:f403:240a::616])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id baa520c6-1955-11f0-9ffb-bf95429c2676;
 Mon, 14 Apr 2025 19:27:25 +0200 (CEST)
Received: from SN7PR04CA0038.namprd04.prod.outlook.com (2603:10b6:806:120::13)
 by DM6PR12MB4153.namprd12.prod.outlook.com (2603:10b6:5:212::22) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.29; Mon, 14 Apr
 2025 17:27:18 +0000
Received: from SN1PEPF0002636C.namprd02.prod.outlook.com
 (2603:10b6:806:120:cafe::54) by SN7PR04CA0038.outlook.office365.com
 (2603:10b6:806:120::13) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.34 via Frontend Transport; Mon,
 14 Apr 2025 17:27:18 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SN1PEPF0002636C.mail.protection.outlook.com (10.167.241.137) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Mon, 14 Apr 2025 17:27:18 +0000
Received: from localhost (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; Mon, 14 Apr
 2025 12:27:16 -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: baa520c6-1955-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=kM99XIj02TX9N89pffEVuY4loT0OANsVYdkuTi/o/5pTKb/qV5CoTKUBjOnMwhiKK0YsxMqSY+LtEj3uVV/+aF10DMtn7vhBQdGqNqMknFXW3usH8dLjcDo2oA5Sd2epAy6tHz3bP6TO3XJCWWyN5xETPhgKFCNuoApJFkxexdwD6kBi/V5nUH4wJjgIN3ZNzwHyMKnLkQQE4MQquEUnWG9g03IhCNHc+fymwI6WRAEk4nsbB1cdGNoGFd5RIrPuof0ooFRTL33HZxdAzUlDI2+rupLApybuRyTtK1kt/Qy48bYjcNiMltPk04ILJbnSgKs/JFWZ/jf5YpyKd5vSjg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=9D/VHH+3jIcuMbjxTn/E8UCJN1HiyWgTHG2f3o1OSCA=;
 b=GmPJeCIyajMZnAj4Q8gVUmQ7f24oJBvTb5AK4Xazc83Y2np7xFODDOvufS8/MRgeFO7jMhdZJksah3/GkMjk84r6jRMHa08048f9KXqVe/uxg615LCIrhadUrIwxrBwlAWAPoddruZVEGy304rWcreKaATWgB3zTaaWS55mhnOnT3JA9pidOj73v40GxTWF/W4q77g1S5il4KED6g2Lh0ThcoGyUeCZ07M1Pi0FEywUpZLCVo1VzbvtF9w2xBx0mo2Bj4/qanOu1tRPmGpQbtboejqucD5JuUwJeGb3q9KlEYfa7pq+4hLmdQTm5kmhbLaVd4t1Pw4FjUKY2QZQF2Q==
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=9D/VHH+3jIcuMbjxTn/E8UCJN1HiyWgTHG2f3o1OSCA=;
 b=1DCV+SutrJyXQlAy870n1yi2+wnmcC6wK49qTYZDzorw6F3fjQAUoOI250fLRrLjlfhsN97LKAedPM7Ac1gVxb3kVW6iPGEZpQf05gnNyNmmrSi35KkcqibSeGWb1Z3ah24m+9FvoVpmTdFKglp/EL3Eq4PB6kZT1z6x1nZRzmo=
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
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Mon, 14 Apr 2025 18:27:15 +0100
Message-ID: <D96JE0Q8U026.2FWWHTWUUMTPE@amd.com>
To: Alejandro Vallejo <agarciav@amd.com>, Jan Beulich <jbeulich@suse.com>
CC: "Daniel P. Smith" <dpsmith@apertussolutions.com>, Jason Andryuk
	<jason.andryuk@amd.com>, Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	"Stefano Stabellini" <sstabellini@kernel.org>, Michal Orzel
	<michal.orzel@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>, Xen-devel
	<xen-devel-bounces@lists.xenproject.org>
Subject: Re: [PATCH v3 11/16] x86/hyperlaunch: locate dom0 initrd with
 hyperlaunch
From: Alejandro Vallejo <agarciav@amd.com>
X-Mailer: aerc 0.20.1
References: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-12-agarciav@amd.com>
 <b3018b0d-e0e8-440e-9f02-363a7bd0378f@suse.com>
 <D96IXRWYOGUM.Z5A9K2NCCBQY@amd.com>
In-Reply-To: <D96IXRWYOGUM.Z5A9K2NCCBQY@amd.com>
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: SN1PEPF0002636C:EE_|DM6PR12MB4153:EE_
X-MS-Office365-Filtering-Correlation-Id: c62ac2f2-8eb8-493d-500a-08dd7b799b6c
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?N3ZQcGJobjZiQWgvUDJQaGhDVFpwK0xUVUxSdE9LbzJIT2xXMXN3MXo1TWdt?=
 =?utf-8?B?TkVDdmhFRnNSdGZUOWgrK2NuZG1zQmVtQ2RBcXBDalFsYTVnSUtTTnhCWG9J?=
 =?utf-8?B?a3F1NnFSTTJEQythN1FZTnVGMGNlYTlpVzNEMDNQMVBIN0hDMUxJWEhwRE16?=
 =?utf-8?B?VFlwUzhwaXRzbXJQVTE4OE5hWEFBWE1rZVBFMDRicHg5N1lnRWRBeGM4VEtP?=
 =?utf-8?B?NEI4UllGWGVCaFhQRTU2L21QRXNVMmovdjhPNlIyOXRmNVZUYlJuUWFYbGtC?=
 =?utf-8?B?bmd4Zm4zenFHM0JKV3hCVXZxSjU3QkNkVDBFRm9TK2FYQXRQUXpkcjByeTJy?=
 =?utf-8?B?dTljYTMwNk4zSlRaQkZIeURyWCs1anBEbkZxRTd0WTNCanRZWi9JTDI5WlY3?=
 =?utf-8?B?N3BQTjRWSW9pYWk0QU1tS0hEVHcrSC9NQjRLSGZHY0FhbGcyZEFMcitmWkRY?=
 =?utf-8?B?V2pEMU5pZ29yVG9wdTdJNmxWNnlXVXVZTUs3cDNUbzhodFlwZEsxWStNbmNO?=
 =?utf-8?B?VzV0NVhJTFY2SGowN2xBY2Q2Q0p1NENtenhWWWhsSWZ4eElyMnplMVY1eVdG?=
 =?utf-8?B?K1NUVGljNU9hRjVkQkJpRjBLM0I5UU9vWlozS3dMaW1EZWoyaWRDYkZ6YkpV?=
 =?utf-8?B?bDJkeHZnOVFGaEloR3JxY0Y0UlpMNlZXVWYyYno4c0M0UWRFeTFHZlhYRjRM?=
 =?utf-8?B?SWNyU0xJbHA3NFprend4QVNnUmMzOCtmYTJtbVYzSmJ2UWhJWmFoSFVrWUxr?=
 =?utf-8?B?WXVLdjVEOTg3RGNQLzlWREtsVkE5c1lTS3dCNEdqcWdDQ3d5N3ZZVkYrWDRX?=
 =?utf-8?B?ekh1OHZhTjdpZEpvQnhXdTBZbG9DR096aFdFR3pqRkN6SEtTa1hVUUgyRmY2?=
 =?utf-8?B?cGJZdFRsd3Y2b3psQjZzc1lWZlkwUHdmWDNlVGRKTktiTUVIak5sbUFidDB1?=
 =?utf-8?B?eTMyOGJSVkpTQTY5d2ZWRU1HRW1ySUlTUktrS1d4T0FQL0lOdEhsVDFwcHpj?=
 =?utf-8?B?UEJYdFFidHJ6SC83eGQraHlKYUpZYnI4clRBMXd3RDZqNE9jNXhhYVEyU3Fs?=
 =?utf-8?B?RGJzN3Y5Y3ROejBZQlZTNXkvZDROVmlMb0VDOTV3QWVxeWs4ZUFVVUVVbUNT?=
 =?utf-8?B?WGxXY3FLT2JMLzdXeGhCTHlzS1JaL0JycnN5TWd4RmQ2QkUxcDQvVmhvM21R?=
 =?utf-8?B?Y0VOVks4Ti8zVWZLS0tvN2VBT0VBNkF0OTJHVGVPS1p5U3FIeTZzN1pqRGlP?=
 =?utf-8?B?c25VUmFWUU1NZlhDTXFXamtKVHo4eXpNdSsrK0UxQlJxRDg3WG8xWm03SjRF?=
 =?utf-8?B?bFB3U0tLMmNNZ2IwNGV0dG50aksvR3FDVGdPL0c3Y3RWWFpNVTlRU3lKb29S?=
 =?utf-8?B?VVlLSnVZbGREYkwySjdvZ0IycEk3T2o0TGxETzJ4bG03SVFjVXV3TDhTNjU4?=
 =?utf-8?B?alJHUUZIekh5blZiKytrc2ZQQytuZUNkQUdpRml3aDRjbllLaDFMYmtJbThl?=
 =?utf-8?B?QWVPRHlJUVZ6b09oZ1hQL21QYTBieHNLbFl4WnJScU9UU3ZtZmlWbHFBS25i?=
 =?utf-8?B?dC9pRHBKU1orQkdBSHoyYzZtT2g4U2NDNzRmeVpGckJkMFptbGpTcmc0STlh?=
 =?utf-8?B?N2FmTmU5dlhjelpDeXFQT1k5NFFtaW1janhLOFVkazRMOGoxOXI2YnJiQTlV?=
 =?utf-8?B?MVdOUGRyUi96cFpzRm1DeGQ5TG55K1padkpWdkxwWjlCemdCc1pwNnk4MU5t?=
 =?utf-8?B?NmhRTkdXTDJXQVBucTVqaVFrZkV3VnBEK3VyNDZYTFcxSThaa3ljalNPc3M4?=
 =?utf-8?B?T3RTSHB1Q2c2RlpBVG9OU3B1NU01ZDExZGY2TDZNaU1HSGJXajhCRmNtNGlx?=
 =?utf-8?B?L3JaUE9tT1c3N2FVMXVxLzFLSmNMTzJrdmJhUGNRMFVHZHNQZFdUNkw4UGs5?=
 =?utf-8?B?MnFmdkxhS2w4N2VzOEVTRGNMOHROY21OelNRRnU4WFJLRmk0ZHU5KzlNVE5R?=
 =?utf-8?B?NkhZV3BpUkplOEp4VWJqQXhnU3pwTkh2anFlQ2F0OTl3Mmpkc3U5endZM2Fs?=
 =?utf-8?Q?BNOdCb?=
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: 14 Apr 2025 17:27:18.4679
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: c62ac2f2-8eb8-493d-500a-08dd7b799b6c
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:
	SN1PEPF0002636C.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4153

On Mon Apr 14, 2025 at 6:06 PM BST, Alejandro Vallejo wrote:
> On Thu Apr 10, 2025 at 12:34 PM BST, Jan Beulich wrote:
>> On 08.04.2025 18:07, Alejandro Vallejo wrote:
>>
>>> +            printk("  ramdisk: boot module %d\n", idx);
>>> +            bi->mods[idx].type =3D BOOTMOD_RAMDISK;
>>> +            bd->module =3D &bi->mods[idx];
>>
>> The field's named "module" now, but that now ends up inconsistent with
>> naming used elsewhere, as is pretty noticeable here.
>
> Well, yes. It is confusing. Also, the DTB is called multiboot,ramdisk,
> because multiboot,module is already used to detect what nodes are
> expressed as multiboot,modules. I'm considering going back and calling
> them ramdisk again. If anything, to avoid the ambiguity between
> domain modules and multiboot modules. e.g: a kernel is a multiboot
> module, but not a domain module.

Particularly when misc/arm/device-tree/booting.txt already states that
the initrd for dom0 ought to be provided with the "multiboot,ramdisk"
string in the "compatible" prop.  Deviating from that is just going to
make it far more annoying to unify arm and x86 in the future.  And
calling those ramdisks anything but ramdisk internally is just plain
confusing (as evidenced in the current series).

So... how frontally opposed would you be to restoring the ramdisk
nomenclature? Also, for ease of rebasing future patches it'd be far
nicer to go back to ramdisk rather than reinventing some new name.

I'm for the time being leaving things as they are (because it is a pain
to change these things) until we settle on something.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Mon Apr 14 17:29:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 17:29:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.951008.1347157 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4Ncj-0002EO-Q1; Mon, 14 Apr 2025 17:29:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 951008.1347157; Mon, 14 Apr 2025 17:29: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 1u4Ncj-0002EH-MG; Mon, 14 Apr 2025 17:29:33 +0000
Received: by outflank-mailman (input) for mailman id 951008;
 Mon, 14 Apr 2025 17:29: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=KxE1=XA=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u4Nci-0002E9-N4
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 17:29:32 +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 069a6596-1956-11f0-9eae-5ba50f476ded;
 Mon, 14 Apr 2025 19:29:31 +0200 (CEST)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-43d04dc73b7so47553725e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 14 Apr 2025 10:29:31 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43f233a2a13sm180941335e9.10.2025.04.14.10.29.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 14 Apr 2025 10:29: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: 069a6596-1956-11f0-9eae-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744651771; x=1745256571; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=R9CaE9Jjuz4sTEOU81Mn38hbKic4iVV4jbRNDLyRxYg=;
        b=IzvqiYIv6um1lilALBa1VlC09nroVdbnTKi0OgKpnZGMTyoS0iVkok2FdVR9KC+rL7
         VYuftNYQ1sPbkTBsi17S/rmJqFhxNF4guB/NKn84h5f0JoJM87yPRpnq7vuMq0AQjcIt
         Orc2cvy1u+rxA+Ekq4vl2hl3jzFv6fVU++Fu0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744651771; x=1745256571;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=R9CaE9Jjuz4sTEOU81Mn38hbKic4iVV4jbRNDLyRxYg=;
        b=tcriQSsp24ludqqHqsh7+0KbW5A1V94eqUV/tPYXJMcxIeScXDxsxXa+L6WYA76c6A
         bYc2JG5ql5uhtiP+AoCzsAjD1wg7iNOcum1qWbH0tv9R7Er9HGDLEkOD6uYt3ZnER800
         yN7QnpIELgC4VCZ+vDT9BCNcFhSW5c5ydN3Np8eH7ZaFU2n0kOAtxb48ss0DJ0GEb0sG
         z67Y8DEX4VQVnfJvwnFsebM2VwCiaa+AFDPfIqHyyUR/d89VE/8pDToMzm51LVerq7tb
         MZWWZZfBi0cBvViOUs/Wh3p1GkKNYkvHdrSmPjXdyQayFaB7fPlHaFCltJAHdoap49Hy
         GExw==
X-Gm-Message-State: AOJu0Yw9pwbAK2Wnu9kOgztYDuYS2Bj4NkEQr9E6mM9p30r6ylFiGJxp
	SoHSs9OWEePqrHdAogP3n2PXVVefmnw2qlarKnyN2Fy10YxO5I9bebCLZrC7Y5Q=
X-Gm-Gg: ASbGncv1xaRBLAgobVqSSxjy58ZIlHFaWITIgn9oeHpoiGJUalgFRYbwCKodCliuMkJ
	HwMTIQpwKRIwd65/dzvxsF8slnf7NBh25655GBr5NYcFDqTYeLlOOoAcus9RxV//c22/NWa/JAY
	xheqH1sTklMA4Vw8QHuV+5bBPm/WRhHdR9NDyTWtl1vzTWAfpHpHwO3Gl2njmgqiVU1gW+3Ukbj
	pM8scEuUljMHk1shW16JecZrjbevW3CQ0VoWcnk5FTYYZWlUiKoki/6j/qn0B120ikdS2eSLV1N
	rEiqYd+HV/TvVYq665kC1GrX+04aMsn1Vioawxs9wQmyo+wfuwChBPcOcRHTVtKEHJnBxx55VdS
	x4/nf9g==
X-Google-Smtp-Source: AGHT+IGfBHaH5kpBPtjLBJ31++qQOIPA20539x4C2hIptA/H2+a2o0zdDulx6BtKc+lZvMy6sPBM4w==
X-Received: by 2002:a05:600c:5107:b0:43c:fcb1:528a with SMTP id 5b1f17b1804b1-43f3a93379dmr106409215e9.6.1744651771197;
        Mon, 14 Apr 2025 10:29:31 -0700 (PDT)
Message-ID: <58ca1f1d-a050-4f63-ad0f-a50bb72fee8a@citrix.com>
Date: Mon, 14 Apr 2025 18:29:29 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 2/6] CI: avoid repacking initrd as part of the test job
To: Anthony PERARD <anthony@xenproject.org>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, Anthony PERARD
 <anthony.perard@vates.tech>, Stefano Stabellini <sstabellini@kernel.org>,
 Michal Orzel <michal.orzel@amd.com>, Doug Goldstein <cardoe@cardoe.com>
References: <20250414110903.2355303-1-andrew.cooper3@citrix.com>
 <20250414110903.2355303-3-andrew.cooper3@citrix.com> <Z_0-dX2FkS6TCv-U@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: <Z_0-dX2FkS6TCv-U@l14>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 14/04/2025 5:57 pm, Anthony PERARD wrote:
> On Mon, Apr 14, 2025 at 12:08:59PM +0100, Andrew Cooper wrote:
>> From: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
>>
>> Use the new test-artifacts which provide rootfs.cpio.gz rather than
>> initrd.tar.gz.  rootfs.cpio.gz also has all the necessary top-level
>> directories, and includes the rc_verbose setting, so these modifications can
>> be dropped.
>>
>> Having that, do not repack the whole initrd, but only pack modified
>> files and rely on Linux handling of concatenated archives.
>> This allows packing just test-related files (which includes the whole
>> toolstack), instead of the whole initrd.
>>
>> For xilinx-smoke-dom0-x86_64.sh, this involves instructing grub not to unzip
>> the archive, as doing so corrupts it.
>>
>> Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> This patch seems to depends on the other patch series for
> "test-artifacts" repo.

Yes, there's a large interlink, although the other series is fully
committed now.

>
> I've tried to compare the rootfs fs generated by this repo, and the one
> generated in the "test-artifacts" repo, and I think there's a few
> changes, at least for the arm64 rootfs as the changes have probably
> already sailed for x86_64, namely:
>
>     Those don't exist in the new rootfs:
>         rc-update add networking sysinit
>         rc-update add modloop sysinit
>         rc-update add modules boot
>         rc-update add sysctl boot
>     There's `echo > /etc/modules` been added.
>
> But I guess none of those matter, as it already works on x86_64 tests.

Those changes are discussed in the other series, in the relevant patches.

modules is deliberately removed; we don't build them (properly), and the
scan on boot puts errors onto the console.  Emptying /etc/modules is to
remove af_packet and ipv6, again because we don't have those as modules
(we build ipv6 in).

Modloop seems to be scanning other devices for filesystems.  networking
depends on sysctl, but I can't see any of them being used, and the arm64
tests work fine without them

>
> Overall, looks good, more common code between tests!

Indeed.  We can always put them back in if they turn out to be needed.

> Reviewed-by: Anthony PERARD <anthony.perard@vates.tech>

Thanks.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Apr 14 17:31:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 17:31:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.951024.1347167 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4Ned-00045s-89; Mon, 14 Apr 2025 17:31:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 951024.1347167; Mon, 14 Apr 2025 17: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 1u4Ned-00045l-3Y; Mon, 14 Apr 2025 17:31:31 +0000
Received: by outflank-mailman (input) for mailman id 951024;
 Mon, 14 Apr 2025 17:31:29 +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 1u4Neb-00045f-QM
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 17:31:29 +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 1u4Neb-00EzGF-0o;
 Mon, 14 Apr 2025 17:31:29 +0000
Received: from [2a01:e0a:1da:8420:b77:bd5:6e45:7633] (helo=l14)
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1u4Nea-00Gisf-38;
 Mon, 14 Apr 2025 17:31: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=xenproject.org; s=20200302mail; h=In-Reply-To:Content-Transfer-Encoding:
	Content-Type:MIME-Version:References:Message-ID:Subject:Cc:To:From:Date;
	bh=7vBP87AQHBwF7BZkrDZvb3KzLzNDnmDw0FEyopppzy8=; b=u2shGrhqytdDlaSKPhYkGCW7G+
	jNhWzD+Yr9wq/1rqnuNgArvPIn1ESQsrAhJgUovazEDmyCWuoeY6q0LP5nHLC+KpTGnnHYPGfSS66
	guwavqjwlFPWnDUYMlVR2paxyraybC74wlxriFCZw4UQFk+048ryyhLdvgcTZIVGiyu8=;
Date: Mon, 14 Apr 2025 19:31:27 +0200
From: Anthony PERARD <anthony@xenproject.org>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
	Marek =?iso-8859-1?Q?Marczykowski-G=F3recki?= <marmarek@invisiblethingslab.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>,
	Doug Goldstein <cardoe@cardoe.com>
Subject: Re: [PATCH v3 5/6] CI: save toolstack artifact as cpio.gz
Message-ID: <Z_1GbyULSIjE6vj3@l14>
References: <20250414110903.2355303-1-andrew.cooper3@citrix.com>
 <20250414110903.2355303-6-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <20250414110903.2355303-6-andrew.cooper3@citrix.com>

On Mon, Apr 14, 2025 at 12:09:02PM +0100, Andrew Cooper wrote:
> From: Marek Marczykowski-Grecki <marmarek@invisiblethingslab.com>
> 
> This avoids the need to re-compress it in every test job.  This saves minutes
> of wallclock time.
> 
> Signed-off-by: Marek Marczykowski-Grecki <marmarek@invisiblethingslab.com>
> Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>

Reviewed-by: Anthony PERARD <anthony.perard@vates.tech>

Thanks,

-- 
Anthony PERARD


From xen-devel-bounces@lists.xenproject.org Mon Apr 14 17:34:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 17:34:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.951036.1347177 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4NhS-0004g8-JB; Mon, 14 Apr 2025 17:34:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 951036.1347177; Mon, 14 Apr 2025 17:34: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 1u4NhS-0004g1-GH; Mon, 14 Apr 2025 17:34:26 +0000
Received: by outflank-mailman (input) for mailman id 951036;
 Mon, 14 Apr 2025 17:34: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=JTEa=XA=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1u4NhQ-0004fv-Nf
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 17:34:24 +0000
Received: from fhigh-b8-smtp.messagingengine.com
 (fhigh-b8-smtp.messagingengine.com [202.12.124.159])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b3d799ba-1956-11f0-9eae-5ba50f476ded;
 Mon, 14 Apr 2025 19:34:23 +0200 (CEST)
Received: from phl-compute-05.internal (phl-compute-05.phl.internal
 [10.202.2.45])
 by mailfhigh.stl.internal (Postfix) with ESMTP id C1AFC2540303;
 Mon, 14 Apr 2025 13:34:21 -0400 (EDT)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-05.internal (MEProxy); Mon, 14 Apr 2025 13:34:21 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon,
 14 Apr 2025 13:34:20 -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: b3d799ba-1956-11f0-9eae-5ba50f476ded
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=fm2; t=1744652061;
	 x=1744738461; bh=1RAz5KmrtapVqSH1EEqiyRb+ejXjn7NcblKFbTaTJLs=; b=
	fOIlJoR06I33ZlPrVjhdM+F0y1k9MYfXtrYPCnhZJJqDXNOG4r+wEqLbJPDivvIm
	2ANt2qvbkRBDv2gwsPzXuadbIzHWG0hlJyfuwMDYPGFL78nAq6PP1x32Lm7VBSI9
	cPpxGW2PXgQXsYvv5tkvOMD1AG/8gRvEjw/+pMd2P+q5QudWDnQev6ZPdgbNsZ6D
	qtAr9nzaDSyaeOK6CpGNfz6D9GTDW9b3el7JUjhx02lfrGepFoQJFIi4dSUzEV5+
	nXfL07ULajd9LcHHrA235SACvenQ6rQ1+Zrk9uX+COoRxUQewIbHr9BfI2Q+cuwl
	yXMI4euSXfsB4V2H3hzreg==
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=fm2; t=
	1744652061; x=1744738461; bh=1RAz5KmrtapVqSH1EEqiyRb+ejXjn7NcblK
	FbTaTJLs=; b=hAx4p3EH/AkhSd8tLR6ljk1WXka/RUCcanPBuTReOAIk541U1fz
	7lA7OnEBwmhdy5HiXlFoRmNyWjMsoDpU9PlvzCe/dRO/Zh5i1YsCC4PyqSW3Pjyl
	DLtTpLZ0W0RNvnMoI+v/UnWpeOjlvxGE3NSZPCHm4G8ZQVMH2GNbeneQH8DUp/Pw
	iHUHceY9vcNHHgHmRBi5OyQBMUNZ4PVoeSVQEBmMaPXNNzptw5y6OFop0uyJS8XI
	ssmTAQ3evVaUXOivXlWdIFIgbmu8ktBz2/HA/xHJnTA0BrmkTvdW1qhq6hy2yLGZ
	YO3SAUumSotMxw8FXqboCWxfgyZWmsaJhTg==
X-ME-Sender: <xms:HUf9ZyU6KY6yxE0eRa8GRxJaXOs_qUqSeaqzXgYDWR-Ocbvmy8F0vA>
    <xme:HUf9Z-kb3Ylzlsm6pfXtnWs9ASBPkT7IesxpkmjTRji5i1tDwUKjPdjsvSU8Pg6vr
    4_JacwCfVsQww>
X-ME-Received: <xmr:HUf9Z2aQZBpq92qv5CJOlDPMm7d6-yCbJ1l3ZmPMdzuZpgmhBIDCeBD7GT3jej2pc0-AoR4QCZGsRWo8N7VAlgT2acGi54QsxQ>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvvdduudejucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
    pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
    gvnhhtshculddquddttddmnecujfgurhepfffhvfevuffkfhggtggujgesghdtreertddt
    jeenucfhrhhomhepofgrrhgvkhcuofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuc
    eomhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecu
    ggftrfgrthhtvghrnhepgfduleetfeevhfefheeiteeliefhjefhleduveetteekveettd
    dvgeeuteefjedunecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhf
    rhhomhepmhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomh
    dpnhgspghrtghpthhtohepiedpmhhouggvpehsmhhtphhouhhtpdhrtghpthhtoheprghn
    ughrvgifrdgtohhophgvrhefsegtihhtrhhigidrtghomhdprhgtphhtthhopeigvghnqd
    guvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdprhgtphhtthhopegr
    nhhthhhonhihrdhpvghrrghrugesvhgrthgvshdrthgvtghhpdhrtghpthhtohepshhsth
    grsggvlhhlihhniheskhgvrhhnvghlrdhorhhgpdhrtghpthhtohepmhhitghhrghlrdho
    rhiivghlsegrmhgurdgtohhmpdhrtghpthhtoheptggrrhguohgvsegtrghrughovgdrtg
    homh
X-ME-Proxy: <xmx:HUf9Z5WLeG256QXl3kp3cg9bZY8XwCz6c2MmXfLt12s_UfpVSTwQDg>
    <xmx:HUf9Z8kQWwknwxYGlyqd6pK3p58F3BBUCU-as4GxMq1nlkDDqSL4cQ>
    <xmx:HUf9Z-dXDRWogmD-ptTiILWhD-tME71-FLI94ph6zivF4MA8s-tspw>
    <xmx:HUf9Z-GIOcFNA6tuSAgQu1egZ-sMRgUWa8gBJKUtkkAi_ZiR8JI9Bg>
    <xmx:HUf9Z27GLaXBp1eZ81tQSAfjpK0tz_DgORbZuzCuFEslLbALsnO5utR4>
Feedback-ID: i1568416f:Fastmail
Date: Mon, 14 Apr 2025 19:34:17 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>,
	Doug Goldstein <cardoe@cardoe.com>
Subject: Re: [PATCH RFC 7/6] CI: Adjust how domU is packaged in dom0
Message-ID: <Z_1HGkdHM549yqu8@mail-itl>
References: <20250414110903.2355303-1-andrew.cooper3@citrix.com>
 <20250414124715.2358883-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="I9ctgYq1LSuAgd4g"
Content-Disposition: inline
In-Reply-To: <20250414124715.2358883-1-andrew.cooper3@citrix.com>


--I9ctgYq1LSuAgd4g
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Mon, 14 Apr 2025 19:34:17 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>,
	Doug Goldstein <cardoe@cardoe.com>
Subject: Re: [PATCH RFC 7/6] CI: Adjust how domU is packaged in dom0

On Mon, Apr 14, 2025 at 01:47:15PM +0100, Andrew Cooper wrote:
> Package domU in /boot for dom0 and insert into the uncompressed part of d=
om0's
> rootfs, rather than recompressing it as part of the overlay.
>=20
> 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: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblethingslab.com>
>=20
> A little RFC.  It wants extending to the other tests too.
> ---
>  automation/scripts/qubes-x86-64.sh | 16 ++++++++++++----
>  1 file changed, 12 insertions(+), 4 deletions(-)
>=20
> diff --git a/automation/scripts/qubes-x86-64.sh b/automation/scripts/qube=
s-x86-64.sh
> index 1f90e7002c73..7ce077dfeaee 100755
> --- a/automation/scripts/qubes-x86-64.sh
> +++ b/automation/scripts/qubes-x86-64.sh
> @@ -185,10 +185,22 @@ Kernel \r on an \m (\l)
>      find . | cpio -H newc -o | gzip >> ../binaries/domU-rootfs.cpio.gz
>      cd ..
>      rm -rf rootfs
> +
> +    # Package domU kernel+rootfs in /boot for dom0 (uncompressed)
> +    mkdir -p rootfs/boot
> +    cd rootfs
> +    cp ../binaries/bzImage boot/vmlinuz
> +    cp ../binaries/domU-rootfs.cpio.gz boot/

This changes the name of domU rootfs - was initrd-domU, yet the domU.cfg
is not updated.

> +    find . | cpio -H newc -o > ../binaries/domU-in-dom0.cpio
> +    cd ..
> +    rm -rf rootfs
>  fi
> =20
>  # Dom0 rootfs
>  cp binaries/ucode.cpio binaries/dom0-rootfs.cpio.gz
> +if [ -e binaries/domU-in-dom0.cpio ]; then
> +    cat binaries/domU-in-dom0.cpio >> binaries/dom0-rootfs.cpio.gz
> +fi
>  cat binaries/rootfs.cpio.gz >> binaries/dom0-rootfs.cpio.gz
>  cat binaries/xen-tools.cpio.gz >> binaries/dom0-rootfs.cpio.gz
> =20
> @@ -236,10 +248,6 @@ mkdir -p etc/default
>  echo "XENCONSOLED_TRACE=3Dall" >> etc/default/xencommons
>  echo "QEMU_XEN=3D/bin/false" >> etc/default/xencommons
>  mkdir -p var/log/xen/console
> -cp ../binaries/bzImage boot/vmlinuz
> -if [ -n "$domU_check" ]; then
> -    cp ../binaries/domU-rootfs.cpio.gz boot/initrd-domU
> -fi
>  find . | cpio -H newc -o | gzip >> ../binaries/dom0-rootfs.cpio.gz
>  cd ..
> =20
> --=20
> 2.39.5
>=20

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmf9RxoACgkQ24/THMrX
1yxCGAgAgoUUHDraxKm6p9sosgnRpoSot+KJQXyyCNFNUuXs/A+gH4pr3RYVjuah
6VyEdymRNCH35cC7StYhY/sep1qMqiPrFBLtHPFQo3QgmwMY8lgDWv/PNo65vQeF
+l3915nf+scHxek+4hbTH1UjSjxs65CiI5HrTr7Fsz1B5HKqLNA5ybAxpRB57UX/
0gW0rSWK90+9xDk2Yvp65e8j/CWi6e97hFd4OJAXcXSBCeq4iCI9BzBUFuZdrjZ9
93eENl48TBKSbdeTnpXjWWwVxrQNTYWUnrNUVYZ0CRQAHxTC/6UW2Ppl7fS7j1d+
3llPtaNBORTdW3ByKQEdc+Yj86lNOA==
=2Yad
-----END PGP SIGNATURE-----

--I9ctgYq1LSuAgd4g--


From xen-devel-bounces@lists.xenproject.org Mon Apr 14 17:45:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 17:45:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.951048.1347187 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4NsE-0000FF-HP; Mon, 14 Apr 2025 17:45:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 951048.1347187; Mon, 14 Apr 2025 17:45: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 1u4NsE-0000F8-E6; Mon, 14 Apr 2025 17:45:34 +0000
Received: by outflank-mailman (input) for mailman id 951048;
 Mon, 14 Apr 2025 17:45:33 +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 1u4NsC-0000F2-W2
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 17:45:32 +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 1u4NsC-00EzdP-1a;
 Mon, 14 Apr 2025 17:45:32 +0000
Received: from [2a01:e0a:1da:8420:b77:bd5:6e45:7633] (helo=l14)
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1u4NsC-00Gx2A-0d;
 Mon, 14 Apr 2025 17:45:32 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=In-Reply-To:Content-Type:MIME-Version:
	References:Message-ID:Subject:Cc:To:From:Date;
	bh=YJ479cbZTBAhBAiHOFwCpLnbNTSMn3nwNWM/z0lyndA=; b=wZudPI8+YA2cVW6zDxqAw8rqGi
	dUyvLJ3dDHFjB0/1CYBmUXpbvN4dgr+QfY1aXDBONj/t5c5HeTFm8Kp4ojIP15UE3F8UPhzjj3mYB
	QDeuLcxzi+DLhngbiCWF01gSyMeiZQrw3Xw60W5FbTN2m5Aau6TgUKsr8WPuYEB/r6FQ=;
Date: Mon, 14 Apr 2025 19:45:30 +0200
From: Anthony PERARD <anthony@xenproject.org>
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>,
	Marek =?iso-8859-1?Q?Marczykowski-G=F3recki?= <marmarek@invisiblethingslab.com>
Subject: Re: [PATCH v3 6/6] CI: Include microcode for x86 hardware jobs
Message-ID: <Z_1JuudeZAXihzwb@l14>
References: <20250414110903.2355303-1-andrew.cooper3@citrix.com>
 <20250414110903.2355303-7-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20250414110903.2355303-7-andrew.cooper3@citrix.com>

On Mon, Apr 14, 2025 at 12:09:03PM +0100, Andrew Cooper wrote:
> diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
> index 1b82b359d01f..ac5367874526 100644
> --- a/automation/gitlab-ci/build.yaml
> +++ b/automation/gitlab-ci/build.yaml
> @@ -306,6 +306,7 @@ alpine-3.18-gcc-debug:
>        CONFIG_ARGO=y
>        CONFIG_UBSAN=y
>        CONFIG_UBSAN_FATAL=y
> +      CONFIG_UCODE_SCAN_DEFAULT=y

Is there a change that this patch series gets backported? Because that
new Kconfig option won't exist.

Othewise, patch looks fine:
Reviewed-by: Anthony PERARD <anthony.perard@vates.tech>

Thanks,

-- 
Anthony PERARD


From xen-devel-bounces@lists.xenproject.org Mon Apr 14 17:47:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 17:47:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.951058.1347196 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4Ntr-0000nU-Qm; Mon, 14 Apr 2025 17:47:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 951058.1347196; Mon, 14 Apr 2025 17:47:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4Ntr-0000nN-OC; Mon, 14 Apr 2025 17:47:15 +0000
Received: by outflank-mailman (input) for mailman id 951058;
 Mon, 14 Apr 2025 17:47:13 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=KxE1=XA=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u4Ntp-0000nF-RC
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 17:47:13 +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 7c906ffe-1958-11f0-9ffb-bf95429c2676;
 Mon, 14 Apr 2025 19:47:08 +0200 (CEST)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-43d04ea9d9aso23234385e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 14 Apr 2025 10:47:08 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43f206332d9sm183888295e9.13.2025.04.14.10.47.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 14 Apr 2025 10:47: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: 7c906ffe-1958-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744652828; x=1745257628; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=D+ZTLK5F4QVm4cBK91Izai1MfaPaGvYckIVB8q61zuc=;
        b=q4oE+Rm28MkNZQ2xQvTcbH0ZF2l+tyx1GrwSYKtKmkSVKryzqFXm9MGkMfm4xlgziw
         VwleRAS8h580DSrUHEeJ4puqmpSLNu+4WQedXs9WEVcW7rrSHiUEZXyKQQ7bhPPsw2iW
         kd53KGZB9RvenevsIhqcShn40bf2t6eJclWGo=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744652828; x=1745257628;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=D+ZTLK5F4QVm4cBK91Izai1MfaPaGvYckIVB8q61zuc=;
        b=MWk1PZlK0E7/W0ZIBd8P5yWUax1oVEe/VGUoqvt3tSf0YNudNv6z9ZncBAaOigQfOq
         mmLPhFOEq5asRE1bM/IvTENFRHRjnX2UHofEA/MGwvP0zFywp+TxoCNTAWBmLxOesl3C
         udGCvXYHw0TP5kaPQOOaI7QaDmdoJyB5czMPl/DZq5dla8YzFo3OJ8om4VbxBbx9aS74
         j6NgOuq9ymTMe6Pwca2LAz0PcP6XHFsEL4j6Wxb8kwn0eS0csfUDkIxcgJKUhArpbN1s
         YZMctVrF/Dzn1EY3/JGq+tJbwBOAfoOzSuWIzMqspUb7TdMKR/Qb+zazKurhpvkloFVe
         qvig==
X-Gm-Message-State: AOJu0YypCxfGkgHb8dPgfyOmBDPyOF14nADzRw2wuG14cMWbjWQiQ/R1
	o8RJWjv5TUqm+6NC/I4bUSHp9eswm8Oo8ZSyiFhKiRIDmbe3xYU7Ml2JBFoV4YY=
X-Gm-Gg: ASbGncv7+bJDr2v8F5n100NMFP8eKevXOz5Pkk9NIy5dT9lTRY5OlaovYibhepkafgh
	W5DyU9ca22e7M/QbzKnxjF5r8zKTbA57xwFPPT8o8hwN+pGmpYovWkqbNSNa8JM0+rzOcuKDfq5
	VCQUYOxbqnUkWsBZLg578nYWgj2jWkBkyovsY0cz+aYgpTEqKvhJazfCjGgZ6TjS0BM0lLm4guK
	ifY/XmZJzQs1y9TJ/Z+9fem7xVGZd2KI8FVQaXkOr2JuL5Zmn+kRfSPsf6H+YSIybGgJ8NhaI+L
	EXMLfRkIk/rzXhqdA2k2IfNFsS3VNOAYH65gLzFUHwhKqpL63DXwF7sWbjde1gLWg2+TzbE6aO1
	Brq0nNQ==
X-Google-Smtp-Source: AGHT+IFaDO2xIi4Yj5rfEf+6nj7BF5o/eAKXslRPECIMjhNNbCZKs6CTaWT9c0CRkbIkuFwr1rJe1w==
X-Received: by 2002:a05:600c:4f83:b0:43d:47e:3205 with SMTP id 5b1f17b1804b1-43f3a93d78amr114342985e9.11.1744652828124;
        Mon, 14 Apr 2025 10:47:08 -0700 (PDT)
Message-ID: <e0bfbfa1-4130-420c-8db3-4ac520ac49de@citrix.com>
Date: Mon, 14 Apr 2025 18:47:07 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 6/6] CI: Include microcode for x86 hardware jobs
To: Anthony PERARD <anthony@xenproject.org>
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?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
References: <20250414110903.2355303-1-andrew.cooper3@citrix.com>
 <20250414110903.2355303-7-andrew.cooper3@citrix.com> <Z_1JuudeZAXihzwb@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: <Z_1JuudeZAXihzwb@l14>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 14/04/2025 6:45 pm, Anthony PERARD wrote:
> On Mon, Apr 14, 2025 at 12:09:03PM +0100, Andrew Cooper wrote:
>> diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
>> index 1b82b359d01f..ac5367874526 100644
>> --- a/automation/gitlab-ci/build.yaml
>> +++ b/automation/gitlab-ci/build.yaml
>> @@ -306,6 +306,7 @@ alpine-3.18-gcc-debug:
>>        CONFIG_ARGO=y
>>        CONFIG_UBSAN=y
>>        CONFIG_UBSAN_FATAL=y
>> +      CONFIG_UCODE_SCAN_DEFAULT=y
> Is there a change

DYM "chance" ?

>  that this patch series gets backported? Because that
> new Kconfig option won't exist.

Yes, I do intend to backport this whole series in due course, and yes,
I'm aware.

> Othewise, patch looks fine:
> Reviewed-by: Anthony PERARD <anthony.perard@vates.tech>

Thanks.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Apr 14 17:49:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 17:49:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.951070.1347207 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4Nw2-0001LF-6W; Mon, 14 Apr 2025 17:49:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 951070.1347207; Mon, 14 Apr 2025 17:49: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 1u4Nw2-0001L8-3F; Mon, 14 Apr 2025 17:49:30 +0000
Received: by outflank-mailman (input) for mailman id 951070;
 Mon, 14 Apr 2025 17:49: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=JTcu=XA=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u4Nw0-0001L2-Rs
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 17:49:29 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id cd7d9dae-1958-11f0-9ffb-bf95429c2676;
 Mon, 14 Apr 2025 19:49:26 +0200 (CEST)
Received: from [192.168.7.202] ([71.202.166.45]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53EHmldx2305377
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NO);
 Mon, 14 Apr 2025 10:48:48 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cd7d9dae-1958-11f0-9ffb-bf95429c2676
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53EHmldx2305377
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025032001; t=1744652930;
	bh=pCf6zl5WWMLk499XrU3ze5XCG4TXFPjHsQDAk9yq3ts=;
	h=Date:Subject:To:Cc:References:From:In-Reply-To:From;
	b=OWsAVJsJQtReNkvBxn4n90Jw5b4hgpiiMsQMj1kLj82PEd0mx8nuHiF2kM8Mvx3Xw
	 LqxRXhBr5R0xxDPh57nO2hOouAGBLY3AKdZeqNoPCmA97JPCWtZ0UYmnsK+6p053w2
	 lqlg5oeia/VCC2I4n1QOzlzq2Q+EByucHb13DRq32ZiCSS+Txt0R8+YpBvAIWB7Gct
	 FuwsCZqp8vL1531axOppQPBxHdE0eB7iOltYssLVQ7RMeDVsVCMmRKTPxkgHRBImAx
	 dIJ72y7yKeVu96cbY7s+wNxgXc4DZJO3Heom3U0XoQS1v8gYW+MgQaG/x5uDeQr3y+
	 wlW0XdVD1zBrA==
Message-ID: <0cad1e0b-2bfd-4258-90cd-8d319bf0e74a@zytor.com>
Date: Mon, 14 Apr 2025 10:48:47 -0700
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH v1 10/15] KVM: VMX: Use WRMSRNS or its immediate form
 when available
To: "H. Peter Anvin" <hpa@zytor.com>, Jim Mattson <jmattson@google.com>,
        Sean Christopherson <seanjc@google.com>
Cc: linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org,
        linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
        linux-edac@vger.kernel.org, kvm@vger.kernel.org,
        xen-devel@lists.xenproject.org, linux-ide@vger.kernel.org,
        linux-pm@vger.kernel.org, bpf@vger.kernel.org, llvm@lists.linux.dev,
        tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, jgross@suse.com,
        andrew.cooper3@citrix.com, peterz@infradead.org, acme@kernel.org,
        namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, luto@kernel.org,
        boris.ostrovsky@oracle.com, kys@microsoft.com, haiyangz@microsoft.com,
        decui@microsoft.com
References: <20250331082251.3171276-1-xin@zytor.com>
 <20250331082251.3171276-11-xin@zytor.com> <Z_hTI8ywa3rTxFaz@google.com>
 <CALMp9eRJkzA2YXf1Dfxt3ONP+P9aTA=WPraOPJPJ6C6j677+6Q@mail.gmail.com>
 <fa16949e-7842-45f7-9715-1bdda13b762a@zytor.com>
 <EAB44BB2-99BB-4D4A-8306-0235D2931E72@zytor.com>
Content-Language: en-US
From: Xin Li <xin@zytor.com>
Autocrypt: addr=xin@zytor.com; keydata=
 xsDNBGUPz1cBDACS/9yOJGojBFPxFt0OfTWuMl0uSgpwk37uRrFPTTLw4BaxhlFL0bjs6q+0
 2OfG34R+a0ZCuj5c9vggUMoOLdDyA7yPVAJU0OX6lqpg6z/kyQg3t4jvajG6aCgwSDx5Kzg5
 Rj3AXl8k2wb0jdqRB4RvaOPFiHNGgXCs5Pkux/qr0laeFIpzMKMootGa4kfURgPhRzUaM1vy
 bsMsL8vpJtGUmitrSqe5dVNBH00whLtPFM7IbzKURPUOkRRiusFAsw0a1ztCgoFczq6VfAVu
 raTye0L/VXwZd+aGi401V2tLsAHxxckRi9p3mc0jExPc60joK+aZPy6amwSCy5kAJ/AboYtY
 VmKIGKx1yx8POy6m+1lZ8C0q9b8eJ8kWPAR78PgT37FQWKYS1uAroG2wLdK7FiIEpPhCD+zH
 wlslo2ETbdKjrLIPNehQCOWrT32k8vFNEMLP5G/mmjfNj5sEf3IOKgMTMVl9AFjsINLHcxEQ
 6T8nGbX/n3msP6A36FDfdSEAEQEAAc0WWGluIExpIDx4aW5Aenl0b3IuY29tPsLBDQQTAQgA
 NxYhBIUq/WFSDTiOvUIqv2u9DlcdrjdRBQJlD89XBQkFo5qAAhsDBAsJCAcFFQgJCgsFFgID
 AQAACgkQa70OVx2uN1HUpgv/cM2fsFCQodLArMTX5nt9yqAWgA5t1srri6EgS8W3F+3Kitge
 tYTBKu6j5BXuXaX3vyfCm+zajDJN77JHuYnpcKKr13VcZi1Swv6Jx1u0II8DOmoDYLb1Q2ZW
 v83W55fOWJ2g72x/UjVJBQ0sVjAngazU3ckc0TeNQlkcpSVGa/qBIHLfZraWtdrNAQT4A1fa
 sWGuJrChBFhtKbYXbUCu9AoYmmbQnsx2EWoJy3h7OjtfFapJbPZql+no5AJ3Mk9eE5oWyLH+
 QWqtOeJM7kKvn/dBudokFSNhDUw06e7EoVPSJyUIMbYtUO7g2+Atu44G/EPP0yV0J4lRO6EA
 wYRXff7+I1jIWEHpj5EFVYO6SmBg7zF2illHEW31JAPtdDLDHYcZDfS41caEKOQIPsdzQkaQ
 oW2hchcjcMPAfyhhRzUpVHLPxLCetP8vrVhTvnaZUo0xaVYb3+wjP+D5j/3+hwblu2agPsaE
 vgVbZ8Fx3TUxUPCAdr/p73DGg57oHjgezsDNBGUPz1gBDAD4Mg7hMFRQqlzotcNSxatlAQNL
 MadLfUTFz8wUUa21LPLrHBkUwm8RujehJrzcVbPYwPXIO0uyL/F///CogMNx7Iwo6by43KOy
 g89wVFhyy237EY76j1lVfLzcMYmjBoTH95fJC/lVb5Whxil6KjSN/R/y3jfG1dPXfwAuZ/4N
 cMoOslWkfZKJeEut5aZTRepKKF54T5r49H9F7OFLyxrC/uI9UDttWqMxcWyCkHh0v1Di8176
 jjYRNTrGEfYfGxSp+3jYL3PoNceIMkqM9haXjjGl0W1B4BidK1LVYBNov0rTEzyr0a1riUrp
 Qk+6z/LHxCM9lFFXnqH7KWeToTOPQebD2B/Ah5CZlft41i8L6LOF/LCuDBuYlu/fI2nuCc8d
 m4wwtkou1Y/kIwbEsE/6RQwRXUZhzO6llfoN96Fczr/RwvPIK5SVMixqWq4QGFAyK0m/1ap4
 bhIRrdCLVQcgU4glo17vqfEaRcTW5SgX+pGs4KIPPBE5J/ABD6pBnUUAEQEAAcLA/AQYAQgA
 JhYhBIUq/WFSDTiOvUIqv2u9DlcdrjdRBQJlD89ZBQkFo5qAAhsMAAoJEGu9DlcdrjdR4C0L
 /RcjolEjoZW8VsyxWtXazQPnaRvzZ4vhmGOsCPr2BPtMlSwDzTlri8BBG1/3t/DNK4JLuwEj
 OAIE3fkkm+UG4Kjud6aNeraDI52DRVCSx6xff3bjmJsJJMb12mWglN6LjdF6K+PE+OTJUh2F
 dOhslN5C2kgl0dvUuevwMgQF3IljLmi/6APKYJHjkJpu1E6luZec/lRbetHuNFtbh3xgFIJx
 2RpgVDP4xB3f8r0I+y6ua+p7fgOjDLyoFjubRGed0Be45JJQEn7A3CSb6Xu7NYobnxfkwAGZ
 Q81a2XtvNS7Aj6NWVoOQB5KbM4yosO5+Me1V1SkX2jlnn26JPEvbV3KRFcwV5RnDxm4OQTSk
 PYbAkjBbm+tuJ/Sm+5Yp5T/BnKz21FoCS8uvTiziHj2H7Cuekn6F8EYhegONm+RVg3vikOpn
 gao85i4HwQTK9/D1wgJIQkdwWXVMZ6q/OALaBp82vQ2U9sjTyFXgDjglgh00VRAHP7u1Rcu4
 l75w1xInsg==
In-Reply-To: <EAB44BB2-99BB-4D4A-8306-0235D2931E72@zytor.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 4/12/2025 4:10 PM, H. Peter Anvin wrote:
> Also,*in this specific case* IA32_SPEC_CTRL is architecturally nonserializing, i.e. WRMSR executes as WRMSRNS anyway.

While the immediate form WRMSRNS could be faster because the MSR index
is available *much* earlier in the pipeline, right?


From xen-devel-bounces@lists.xenproject.org Mon Apr 14 17:56:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 17:56:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.951085.1347217 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4O2S-0004LF-Sn; Mon, 14 Apr 2025 17:56:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 951085.1347217; Mon, 14 Apr 2025 17:56: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 1u4O2S-0004L8-Q6; Mon, 14 Apr 2025 17:56:08 +0000
Received: by outflank-mailman (input) for mailman id 951085;
 Mon, 14 Apr 2025 17: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=JTEa=XA=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1u4O2R-0004L2-AU
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 17:56:07 +0000
Received: from fhigh-b8-smtp.messagingengine.com
 (fhigh-b8-smtp.messagingengine.com [202.12.124.159])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bac73af3-1959-11f0-9ffb-bf95429c2676;
 Mon, 14 Apr 2025 19:56:03 +0200 (CEST)
Received: from phl-compute-09.internal (phl-compute-09.phl.internal
 [10.202.2.49])
 by mailfhigh.stl.internal (Postfix) with ESMTP id DA8AE25403B7;
 Mon, 14 Apr 2025 13:56:01 -0400 (EDT)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-09.internal (MEProxy); Mon, 14 Apr 2025 13:56:02 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon,
 14 Apr 2025 13:55:59 -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: bac73af3-1959-11f0-9ffb-bf95429c2676
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=fm2; t=1744653361;
	 x=1744739761; bh=E2vAnQ2nWIORvuBrKUPST8gjtXEElzj8oljLr0bXZH4=; b=
	h/PzIIacovfHBE5dO7uzyYPFpJN+Q4v7Ymb9zWH6ggukOFiLeOZIaFRQLmn6A/hu
	qPjpm4Xn8RalP3z6Yh48mkZ4NzIrg4mb/Zq+aL1PMLZ9LCQVEJIYLawBP7MpzZzJ
	FLwmmUuhuDi3XkmHBJiCpeTiuibGfpKv5+oQ7MkZAgk87Pwa07TxdCEsy3Zla19K
	BF1w5qHsb4+ye4/DwNdR58YEV1cxn4BhQj+xPHXYwZwyED6E5EF10fXhDjDjrVa8
	38oYlH4t1lWWcmIdjzSXd8BSE0lZkT6S2RhaLgIZCziH2FANmMvSh5z3Bc5cj9Rh
	oHcVR5TV1lmSRCnVmkRxpw==
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=fm2; t=
	1744653361; x=1744739761; bh=E2vAnQ2nWIORvuBrKUPST8gjtXEElzj8olj
	Lr0bXZH4=; b=jDzkN99G6IovQwIZCceMmsxMd2Id881TYtL7GouoSf4KQkRS1PE
	+xuGw2Zv5XHZpCG+c7h1iczOBxyenHkJPBSQsQP3wCQ6LkoqL7cMeSOoY/JcP1VD
	CQJ7f18dDfv6ohbJz5rwxUOceDf2Fh0EsS3IMBdVnxmJdNPaTyhbpQiz+wTwuWkM
	rLT8PUvM4TCm85hGw3D4TMhVJZMWR4G7f0DHhFEg2egMVchOudtkzGbl5uK6yyA2
	V+GjoC+hg7w4pkchwnlDpAiizsA4ATrV9VnypXuzGzdlPxIvJq/YX7S28ohzpvkC
	QQe2Kt+Qwln5RY/+1Jq3O91xeop/XSVslLg==
X-ME-Sender: <xms:MUz9ZweljTIhKi9b6gdS-_r8HAcY0UUiQDZ8JkXtFYfGHMEbOxeH0Q>
    <xme:MUz9ZyOq_USGx_CpwKKUiWsLtSQQWBBZ4Y9tIc4EfbteBCPQOWywHRy5vWPZOgNAC
    ZWG3inW5El33Q>
X-ME-Received: <xmr:MUz9Zxg7gXC3Fw6g1bOpbMgExk6opnkQHpSAhbrdU17j-Q4ptXMj19craS7An2fPvo2nE9pgCuYDOCgdbRsenWuAeRoHtdmtYA>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvvdduvdduucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
    pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
    gvnhhtshculddquddttddmnecujfgurhepfffhvfevuffkfhggtggujgesghdtreertddt
    jeenucfhrhhomhepofgrrhgvkhcuofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuc
    eomhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecu
    ggftrfgrthhtvghrnhepgfduleetfeevhfefheeiteeliefhjefhleduveetteekveettd
    dvgeeuteefjedunecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhf
    rhhomhepmhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomh
    dpnhgspghrtghpthhtohepjedpmhhouggvpehsmhhtphhouhhtpdhrtghpthhtoheprghn
    ughrvgifrdgtohhophgvrhefsegtihhtrhhigidrtghomhdprhgtphhtthhopegrnhhthh
    honhihseigvghnphhrohhjvggtthdrohhrghdprhgtphhtthhopeigvghnqdguvghvvghl
    sehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdprhgtphhtthhopegrnhhthhhonh
    ihrdhpvghrrghrugesvhgrthgvshdrthgvtghhpdhrtghpthhtohepshhsthgrsggvlhhl
    ihhniheskhgvrhhnvghlrdhorhhgpdhrtghpthhtohepmhhitghhrghlrdhorhiivghlse
    grmhgurdgtohhmpdhrtghpthhtoheptggrrhguohgvsegtrghrughovgdrtghomh
X-ME-Proxy: <xmx:MUz9Z18lIZEP7rAV1qEznJ3Kk2RHYhSEH-hazpla6akEUgD83Ocdpg>
    <xmx:MUz9Z8sHiKQ6xMjebDHmcqi42rQT-uUzBCyzAWTrA7ijZirvCvhmKw>
    <xmx:MUz9Z8FP9v6I-rOXVkZrttV7zmjblwcbwk_-pZ0NT5xVvwwD_g7OhA>
    <xmx:MUz9Z7PsEDHiGV-gqwsYSdyYmxd-FVRD6oncUBfKa7MU2dj4ZeXIdg>
    <xmx:MUz9ZyUsMCXqAwAy3gl0Tm6vCqzhfzE5YJfrnMWpATJbE5uqgb3M_a99>
Feedback-ID: i1568416f:Fastmail
Date: Mon, 14 Apr 2025 19:55:57 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Anthony PERARD <anthony@xenproject.org>,
	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 v3 6/6] CI: Include microcode for x86 hardware jobs
Message-ID: <Z_1MLobG_FyndTg4@mail-itl>
References: <20250414110903.2355303-1-andrew.cooper3@citrix.com>
 <20250414110903.2355303-7-andrew.cooper3@citrix.com>
 <Z_1JuudeZAXihzwb@l14>
 <e0bfbfa1-4130-420c-8db3-4ac520ac49de@citrix.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="3VLxp8zmwVXi9/Zg"
Content-Disposition: inline
In-Reply-To: <e0bfbfa1-4130-420c-8db3-4ac520ac49de@citrix.com>


--3VLxp8zmwVXi9/Zg
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Mon, 14 Apr 2025 19:55:57 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Anthony PERARD <anthony@xenproject.org>,
	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 v3 6/6] CI: Include microcode for x86 hardware jobs

On Mon, Apr 14, 2025 at 06:47:07PM +0100, Andrew Cooper wrote:
> On 14/04/2025 6:45 pm, Anthony PERARD wrote:
> > On Mon, Apr 14, 2025 at 12:09:03PM +0100, Andrew Cooper wrote:
> >> diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/bu=
ild.yaml
> >> index 1b82b359d01f..ac5367874526 100644
> >> --- a/automation/gitlab-ci/build.yaml
> >> +++ b/automation/gitlab-ci/build.yaml
> >> @@ -306,6 +306,7 @@ alpine-3.18-gcc-debug:
> >>        CONFIG_ARGO=3Dy
> >>        CONFIG_UBSAN=3Dy
> >>        CONFIG_UBSAN_FATAL=3Dy
> >> +      CONFIG_UCODE_SCAN_DEFAULT=3Dy
> > Is there a change
>=20
> DYM "chance" ?
>=20
> >  that this patch series gets backported? Because that
> > new Kconfig option won't exist.
>=20
> Yes, I do intend to backport this whole series in due course, and yes,
> I'm aware.

A more backport-friendly way would be add ucode=3Dscan to xen cmdline.

> > Othewise, patch looks fine:
> > Reviewed-by: Anthony PERARD <anthony.perard@vates.tech>
>=20
> Thanks.
>=20
> ~Andrew

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

--3VLxp8zmwVXi9/Zg
Content-Type: application/pgp-signature; name=signature.asc

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmf9TC0ACgkQ24/THMrX
1yzbCQf/TWg+sP0fVOEnCGGQSW7bW1DS7I8x8ApLaJyz2XrtBI5GSP8t8ai+/o/Q
3Bi4Jiy6ufzeqoUD300ePH/eCDHnybw139bsRssZjR+W2FxumKhp/f/BMmogM6FH
TObPoaxSHPn/Qxw4wTvITFArlN+FH/tEH2T63j4Iu/I3kDrbbDanmaiPY/LVhtJx
RVN2ZXper6zGMwhfzRHO7nT5Gj4wXmPFBlYwVGEFGezWjk/myG845wrMxuy9vz2Y
887yNvBKnLcDLwn/A2UMLE1TGBUiheekxRWlNEMaG4MlkbXFGXM+gKQns8xX4kcj
DD+jilwxx+M3H8/9mQJFOl9Y5tRtdA==
=jacF
-----END PGP SIGNATURE-----

--3VLxp8zmwVXi9/Zg--


From xen-devel-bounces@lists.xenproject.org Mon Apr 14 17:57:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 17:57:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.951096.1347226 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4O43-0004sh-6N; Mon, 14 Apr 2025 17:57:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 951096.1347226; Mon, 14 Apr 2025 17:57: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 1u4O43-0004sa-3c; Mon, 14 Apr 2025 17:57:47 +0000
Received: by outflank-mailman (input) for mailman id 951096;
 Mon, 14 Apr 2025 17:57: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=Dta6=XA=hotmail.com=dcb314@srs-se1.protection.inumbo.net>)
 id 1u4O42-0004sS-2t
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 17:57:46 +0000
Received: from MRWPR03CU001.outbound.protection.outlook.com
 (mail-francesouthazolkn190110001.outbound.protection.outlook.com
 [2a01:111:f403:d207::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f729ab7a-1959-11f0-9ffb-bf95429c2676;
 Mon, 14 Apr 2025 19:57:44 +0200 (CEST)
Received: from AS8PR02MB10217.eurprd02.prod.outlook.com
 (2603:10a6:20b:63e::17) by AS2PR02MB10374.eurprd02.prod.outlook.com
 (2603:10a6:20b:545::21) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.33; Mon, 14 Apr
 2025 17:57:41 +0000
Received: from AS8PR02MB10217.eurprd02.prod.outlook.com
 ([fe80::58c3:9b65:a6fb:b655]) by AS8PR02MB10217.eurprd02.prod.outlook.com
 ([fe80::58c3:9b65:a6fb:b655%7]) with mapi id 15.20.8632.030; Mon, 14 Apr 2025
 17:57: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: f729ab7a-1959-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ljJtg35ZLPw/HSHxhU8H5lxouC70c2fbV6D380ktGw1rsUkszOIAwhrFxtMimIzSIf6vYfHfnKWf1yzuJbRvn8acGtTSylUvoeVel97j3E/01mgeUC/x31pPDGPNn9PdOmsBzgtDBwBg4z966TvieKL7lDPe5wM1NzvpOSCMwyBNDPCUEu5TnA9aikWPOaJibX3aqPndjiORI1STACo2528DyHorKvwbcvFBh9Mo0tl3pTAoKv1czCgfhemvxHlLNVJ8Yqe+CTzasUQnmEMrzOFydagHj7MH97E1SgMu+hhNjg3cRmSNw2ZikHvavI1k8Y9YRV3ITwI56mJDYoLr/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=Kai0UgTYPyvlFlO/J0jfVcAaIfZPhexchYdyJmtwQbk=;
 b=YGUAzcnHoBfSqhSBdqvvEuwgiZA9j1GKhY9KuTDqKn+if3LkwRxnT9PdskRIOpj2yEc5M+ZdeGtHgeExEtb21mmJul3nNpYJM/BqotAbuApw+D3MT6gla6wah/MQGyRjlqMpsePYrfgWH2eck6xnE78CSwalBwRVFgHR0zrMSXbsanaiYjhjpDwakOWCv1GXvGMiTIFAFW//pP3G9G9i9Fi8/tsrZUmGhMk7TnuEWT5xcOP+uvcRkQoO4AGh5l0y9cT8/wWF04cQMnIQAJJCRQxCjz3PHWOTxptNtFuWJzJxf1lEbBC7rTtMQS4QKAiwWCWLkZaBGp6L/fj0cGn3GA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none;
 dkim=none; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hotmail.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Kai0UgTYPyvlFlO/J0jfVcAaIfZPhexchYdyJmtwQbk=;
 b=tHqgWEv14YSHEDMl9DVvCyzveSQDCSOms59bxNiOiL8H28EAeP7Ahd2IPFhNWPHLY918xke/tEuLMCkCY+HWukYhWRibRD3zfEhlUJaYqCkzgV3+MiHOfdPcIoUuHkCjV5sXRm/7sugj9HwGhlgtrog7fwkkB8hofaVMdKVS95W+1TFECbBVWNZJFitakzXE3+oph7jCmBtZ04ctuLj7Pv/+DPWX3umhX3sU1dycgOmK5toAa6DWWZhka/zS0Kupv4S4aWEObe2eiwmz2wmNVWCCIYCOPzjCZjA4zAVtckxf+oJZ1MTJ+fjJ7qF+gPi/uQXOlcxsuiSfwrofauOqNw==
From: David Binderman <dcb314@hotmail.com>
To: "jgross@suse.com" <jgross@suse.com>, "sstabellini@kernel.org"
	<sstabellini@kernel.org>, "oleksandr_tyshchenko@epam.com"
	<oleksandr_tyshchenko@epam.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>, Linux Kernel Mailing List
	<linux-kernel@vger.kernel.org>
Subject: linux-6.15-rc2/drivers/xen/balloon.c:346: Possible int/long mixup
Thread-Topic: linux-6.15-rc2/drivers/xen/balloon.c:346: Possible int/long
 mixup
Thread-Index: AQHbrWZTlrpkrx2gg0SWv5xq+subcg==
Date: Mon, 14 Apr 2025 17:57:41 +0000
Message-ID:
 <AS8PR02MB1021776B93FEF6D425C7223389CB32@AS8PR02MB10217.eurprd02.prod.outlook.com>
Accept-Language: en-GB, en-US
Content-Language: en-GB
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
x-ms-exchange-messagesentrepresentingtype: 1
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AS8PR02MB10217:EE_|AS2PR02MB10374:EE_
x-ms-office365-filtering-correlation-id: 2838e0d5-97ff-430c-2fee-08dd7b7dd9cb
x-microsoft-antispam:
 BCL:0;ARA:14566002|7092599003|19110799003|15030799003|15080799006|461199028|8062599003|8060799006|3412199025|440099028|21999032|102099032;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?9KEpoXN0OIAabFtfiO6Ud3abovtlN8cBIyI85vnAh/7fZBi8vRtA9WSi5m?=
 =?iso-8859-1?Q?Jdmd6P3p4qBKK4Z2we+iRS3NEtKDFuTvJAmPC7/f+goaHN1NXmkG3t7Mc0?=
 =?iso-8859-1?Q?aqoHth3EMZ41hUf+/ntMtL/6nKjGIrPQUC3R0EcvniVOkMpHkeMXPdLf71?=
 =?iso-8859-1?Q?Y5KHiW6fQRI1ZRVwqTsbaNTtHWSb8aMmlpFeHxwPZrt22srLlemGCA3ZjL?=
 =?iso-8859-1?Q?mSznN92vK5crJl8NDSjDF0gUHkKA2qwQEj1zgN4e9kMHzsiDDs/kxdez6U?=
 =?iso-8859-1?Q?wUBsOl2pZ3ve+zSlj+J+o8divHJqsmXAJTLHP8DhTRVST0i3aIStPZpQBM?=
 =?iso-8859-1?Q?k7QOdmABMM9pfJRWBnMwLCYtwRu2kLv9wmTAcE0qaXpqH2/GlQ2YwZ27ag?=
 =?iso-8859-1?Q?g00Xf4PDDHJmC2CuOB/thTLIAkvteEusMjnkBNu9DeOGau/n0s1WPoS8E9?=
 =?iso-8859-1?Q?X7d1qAjyAQOvzcr6nshd0dsd/JQlwHwhzBOUJqxGDPFGihabJic+FsJPTL?=
 =?iso-8859-1?Q?L/B9woXQxLq7iz1SklXyhy6hUNW3F2zulEm8kFWSbRP5y9AQ8VDV+SweL1?=
 =?iso-8859-1?Q?pGmPPkcyY7J9KPpsymiQ4JC4igphnR9r72zHyDnJjuDnBvs4EcFJfPXRKV?=
 =?iso-8859-1?Q?TKmKdb3Zxu4BRrHD5ZgRhc4qs8bdJ2pvIZcHdL/TsPJbI+pMc8vY1G846/?=
 =?iso-8859-1?Q?1g3nOlKWmtfYDiyATkwsQHYJ4ZWUm7xsQeINUGAEzx3rlQV18Ju3nvNXuF?=
 =?iso-8859-1?Q?i67rbXiaAoLeZT+XjrpY+vOTRhaJgxdf6ZfrfWzLtsumeT5Mi1sBs7/XRf?=
 =?iso-8859-1?Q?+8iwyC4pMeG0uKMxdAG77BrNTXw48/WmewckNEBtqLEz72QbrKjOYYK2s3?=
 =?iso-8859-1?Q?MjhPBumV3NYnEk2VRqJJYjQs0VhO5UfUL6pCrf/Z4DIeDJE62MDRcSUxRk?=
 =?iso-8859-1?Q?VxcQ6F4AaK/mp5ifP5c7Nx1mmA5zB3zr/cToLtlgNJW5G4ZR1P31nS/ZYr?=
 =?iso-8859-1?Q?vNTIJd697SsDMhZHoq+5FsM2Xtzp2etEwYvtKbGCUeGV0QqUm0yQwHLGNQ?=
 =?iso-8859-1?Q?9qFwFxuHl1HcjXwq143PumXsig2uFkydAhH4vnUNbIifasgjTIGgs7CPwm?=
 =?iso-8859-1?Q?lBT6U1HiRo1P7QdUJ1ili4X1f326uutA34fInMVwzZ+7G3sa9xcNTv0bdO?=
 =?iso-8859-1?Q?WK9xHvksPNoMyg=3D=3D?=
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?/JkNyDEdXDk3TKgi9aeSGuFcR02deHBSsFf+shsRuFPC0tUddNadn8LjRc?=
 =?iso-8859-1?Q?2YBB17miKez0Zsk519dDqaZ7R7Ubq62YRD1Hn88dc8NpK6CvcMPkh8YtLj?=
 =?iso-8859-1?Q?FsjubJ0yd2n3N0YdJIFDjuvD/2tApzgDXBlQ2uUfEms1N/Bv9jbL8mukv+?=
 =?iso-8859-1?Q?7zlcKggoY8TSkR4JWVHyS4ZX7GbUzNsnLJekLHW/P5pXg++ns8DsViZFBl?=
 =?iso-8859-1?Q?okabTGTQePtOjjS7Djglyrxd+RzwFxaEVuSo0+gKu0jPcAOoRrKYC440sa?=
 =?iso-8859-1?Q?Wmex6Ox/Bze+jIfrcrxl4DI/btIPuY+Q//vlu5MztZ3WEYSnzofVTNN4MS?=
 =?iso-8859-1?Q?0fX3Jy+sSKHCSeR9NZDg+a74/jIowU3rccDBJFHtCsQuLyR6yMXJWnFDyN?=
 =?iso-8859-1?Q?3r44TYqVEQEYhH8lwpHdR+DJZKyxYcrmmbMHHETzgJajBNMgN61AQe00P/?=
 =?iso-8859-1?Q?WzYJ3NEdQVUf7zCTfe8AS2/xjFhMcZ+UJ1FgEWh9/HU2mT146Krvu30syL?=
 =?iso-8859-1?Q?vxhumCyssKWsHV0oavKvATHMxtEZKruiCrFEKbs0TBhmpmHOhCighzf+FQ?=
 =?iso-8859-1?Q?3PeK8fPzQkWtb9UHJOr0Di2Yym4669p/7ut19mcv3YWjhQVjhWYo2YWOTW?=
 =?iso-8859-1?Q?JHrAEzIDOBCWapRtxY/D+XhU4LpPEoU+b++AVyAqg0aXPtNL+VYR9Fkn7B?=
 =?iso-8859-1?Q?8TtGNz0Z7bKsQ03TvFmnqZroDbOY25mKE7pS6MQW1IMBTlqMDv3OW1cFUy?=
 =?iso-8859-1?Q?4orJcDaoHQN5kTsMjXerjSA9sInuLKP2LHg4g7W5JsCZQ3giqLsuOHJDUm?=
 =?iso-8859-1?Q?YcDqZus/dXX6t3/B0gNX4wnTRF17GOwmwMys9+FGFJivKlmndTrNPw7/6o?=
 =?iso-8859-1?Q?WbRrwUaV0CoYVHnuTcSJg0S+t24C98gMmrZoS0TYM8tigyrH0n/Nm9mbb3?=
 =?iso-8859-1?Q?hpgnOzDUq5VyaIYkhSRV1l5DjFMzrzKxO1RQZDcN1OZMc4kcYYngQqv6xk?=
 =?iso-8859-1?Q?qFqF5y3pJuxr5sirDUNUBOVKGXhGtSHj+Gfm18/hoWuEU0McQNvvwy+YKH?=
 =?iso-8859-1?Q?lV8bXpg48TZXG61Ic7Vjymaar6bXp1q9KfO0hYtLWmxhRKEEuyWR4T31b/?=
 =?iso-8859-1?Q?xxgke6fNWKHK+S2aIo9oWbRB4D2rmeijuo1sadtIi4UQREb9RghFNuvuFJ?=
 =?iso-8859-1?Q?p8rNQV2uezQ2t1WTnTPEoFcVz6TanLGOPqOZIaB8rIiNpfhKoHros3EOBT?=
 =?iso-8859-1?Q?zpoIm9vHm0weTVHw0B0Q=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: sct-15-20-4755-11-msonline-outlook-ab7de.templateTenant
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AS8PR02MB10217.eurprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000
X-MS-Exchange-CrossTenant-Network-Message-Id: 2838e0d5-97ff-430c-2fee-08dd7b7dd9cb
X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Apr 2025 17:57:41.0969
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa
X-MS-Exchange-CrossTenant-rms-persistedconsumerorg: 00000000-0000-0000-0000-000000000000
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR02MB10374

Hello there,=0A=
=0A=
Static analyser cppcheck says:=0A=
=0A=
linux-6.15-rc2/drivers/xen/balloon.c:346:24: style: int result is assigned =
to long variable. If the variable is long to avoid loss of information, the=
n you have loss of information. [truncLongCastAssignment]=0A=
=0A=
Source code is=0A=
=0A=
    unsigned long i, size =3D (1 << order);=0A=
=0A=
Maybe better code:=0A=
=0A=
    unsigned long i, size =3D (1UL << order);=0A=
=0A=
Regards=0A=
=0A=
David Binderman=0A=
=0A=


From xen-devel-bounces@lists.xenproject.org Mon Apr 14 18:01:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 18:01:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.951108.1347237 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4O7X-000733-L7; Mon, 14 Apr 2025 18:01:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 951108.1347237; Mon, 14 Apr 2025 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 1u4O7X-00072w-IS; Mon, 14 Apr 2025 18:01:23 +0000
Received: by outflank-mailman (input) for mailman id 951108;
 Mon, 14 Apr 2025 18:01:22 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=B3Nx=XA=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u4O7W-0006sm-4b
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 18:01:22 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on20615.outbound.protection.outlook.com
 [2a01:111:f403:2414::615])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 76b61413-195a-11f0-9ffb-bf95429c2676;
 Mon, 14 Apr 2025 20:01:19 +0200 (CEST)
Received: from SJ0PR13CA0047.namprd13.prod.outlook.com (2603:10b6:a03:2c2::22)
 by IA0PPF44635DB8D.namprd12.prod.outlook.com
 (2603:10b6:20f:fc04::bcc) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.35; Mon, 14 Apr
 2025 18:01:15 +0000
Received: from SJ1PEPF00001CDE.namprd05.prod.outlook.com
 (2603:10b6:a03:2c2:cafe::f9) by SJ0PR13CA0047.outlook.office365.com
 (2603:10b6:a03:2c2::22) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.8 via Frontend Transport; Mon,
 14 Apr 2025 18:01:15 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ1PEPF00001CDE.mail.protection.outlook.com (10.167.242.6) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Mon, 14 Apr 2025 18:01:14 +0000
Received: from localhost (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; Mon, 14 Apr
 2025 13:01:12 -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: 76b61413-195a-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=w2Px/0X2Ql3aqAtNrMN5dJzU06Lt072QJ5wkSJrFu3UTey8p0+0Un0Hk8RvcJS63fRVpUQr9F5I0MVD5mmijwl1fVFxjKHnsi4D1zx2qaF9PbxxONzXeXpguEH/3rcmz2thr3wiDM6stxvc6r5mMeca7P7vW2wD/CFxp0egFdG4VPZoPrClF1QeqDBc02kg4DP0xNcSBvXTf/9vBvU720VDbeL08FSy4BWq5Z5IAdKrtaoEL/KehQ5EijyhC9xRbbQgBKStwN3uMQSmJIVuAbPMzZXpDXCYhRQaJlrSLMwKYFcyp2zIiO/83pTJ93IKa1bJOlTScx9JsZh0eb08c/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=fN5ymXQoYah6472IumIDgZsMt8kkI5QK2ON77HR7ZOQ=;
 b=UWBxkchFxzw0/muadiTsUjGy/UjQpR5++3qWO9+Bli81QV1YmHjmKES0V7PdVvKJ/djIN9/Ngj/ZjyHgRkodZuCBVU+UrU+38KqBeCyj16TDQVMjdbvylMpvBasQ5F7shD9tYg0kTOtBKn+lW4V5gOzsXUoycKjax0XKUtxrfQ0F0Yn7uS8vlqxSY71MAMpWiKwqADhTOQLh5HK1yTD5B5lQ9Uxayrlk60lv44WzEgR2coLA2gzvCCbgCmypyE7VTBUKnFaIt9g/39+xL8412PX8wyn6z0BIBsfx+X1ktStPrq6fVaNLLeV674wcOzCkZGmZZQraXl8UyYIGcxzTdQ==
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=fN5ymXQoYah6472IumIDgZsMt8kkI5QK2ON77HR7ZOQ=;
 b=PCFX6uMtFC5ALAAUn1wrBK14iZ24OrdtuwQLJf+T51iSBibvKJUZtNBxNr103Uobxf2mpXNm91NPE8Zim0X+8nNwrAmO9By6u1bUHPnK6iAQW4U1s+6E6L4CnWJP5OxFaYcviUeU635NdGxC46tkj/ocrGVY/kgQkqJH6/I0ihM=
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
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Mon, 14 Apr 2025 19:01:11 +0100
Message-ID: <D96K3ZYDCY4D.11Q4T2TZLNNEU@amd.com>
CC: Jason Andryuk <jason.andryuk@amd.com>, Xenia Ragiadakou
	<xenia.ragiadakou@amd.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, =?utf-8?q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, <xen-devel@lists.xenproject.org>,
	"consulting@bugseng.com" <consulting@bugseng.com>
Subject: Re: [PATCH v3 08/16] x86/hyperlaunch: Add helpers to locate
 multiboot modules
From: Alejandro Vallejo <agarciav@amd.com>
To: Jan Beulich <jbeulich@suse.com>
X-Mailer: aerc 0.20.1
References: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-9-agarciav@amd.com>
 <fe282aa0-fe2d-49b8-a2aa-325c9825304b@suse.com>
 <D96EI9O4XII2.195QNQNT1T3FG@amd.com>
 <3d2aa870-a1cb-4e33-841d-aee7b6b6db83@suse.com>
In-Reply-To: <3d2aa870-a1cb-4e33-841d-aee7b6b6db83@suse.com>
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: SJ1PEPF00001CDE:EE_|IA0PPF44635DB8D:EE_
X-MS-Office365-Filtering-Correlation-Id: ad48c50c-09c6-481f-0e1a-08dd7b7e5913
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?K2N4bHRtLzU3VjF1bjRnWER0YUV6M2tXUDRXOCtWcnNsUWFGaVpEb2dVWmpN?=
 =?utf-8?B?bVhMVmNpL29nR0FjcnMvMEdOSExiWDY1M3NHOGxYZi9BUnNaSGpOYVJEalVz?=
 =?utf-8?B?RThyNnZWR043bStSOWVpNlVWQVZYd25Yck1ramptblJOYXRXSXdTQldoTDhG?=
 =?utf-8?B?RXZVMW0wT2JwVDJYeHBQd2U5YzI2cnlKYXhVWHMwc0JrTG1vbEdSOXZuaEJI?=
 =?utf-8?B?UG5PSGhyODZpdTJ4MHVCVHpRWTROWjJCaTU3L2RlSFhPUFdtd05rM3FvOXAz?=
 =?utf-8?B?UUsxa000dWhnUmRibFIzMTlZZ3FxdXlMa3RtZWpaUjhSaHhTL3dTWGJ5YWgz?=
 =?utf-8?B?eXVpQVlmRnRZV0s2ZWZXeVhLelJkanV4ZDBVNXBKRzlHOTZzdVFQVzNNOU5j?=
 =?utf-8?B?R3lVQWJ6N3VGL05oVDZDay9iOHRMNnVUVmdxTXZBWGNjdWkxOHBUMjFObjNq?=
 =?utf-8?B?Z0ZmejJnMDJjYk9iTElMVnJod05NdGtsb1c2NnhCcjMwdkc3N1ozaFNNNFBJ?=
 =?utf-8?B?Q0M2SjZ0d2tPUXRpWjJKVk9Eam5hblZmTEJZSk10akNMUWVIWmpBa0haL0pL?=
 =?utf-8?B?VHhqTHNDWFMvNjVRdHB4WFI3MDBoSkJvc0VjdGgwdnV4MkZSOWE1cGgxazFu?=
 =?utf-8?B?QmlZWmhscnJKS2krT3YxWjN5blJpQVgxREtURmJ2Ty9ZZ1lTK1BJZDV3U3JK?=
 =?utf-8?B?Ni9jclpWU3daQ1h2cEpiUTJGTHlGcDRCd1BHNmhXOEh4d3NNckFPdU0zdGQ1?=
 =?utf-8?B?bGtyZHN5eUFQWUNPMjh3L3lXaWhWLy9yZHBLRlo2NE9LblhaRVNHaWE0aDFU?=
 =?utf-8?B?VGpCNXJ0T3FzU1pJQkV3MHZGZ3hhS1F3OGNmNERYbXE0WkJlL0V0OE1RRnY2?=
 =?utf-8?B?YVhpcUdpK1E5VzdNbDNQTjB1aVhZcklZYllRWXpVbzBYOU03Q1ZsL1VlM2c4?=
 =?utf-8?B?SFA5cEc4ZVBTRTEvZUlkdXlDR1kvM1pNOVNBcFo3eWxCcURTVWFZQnBQd1BU?=
 =?utf-8?B?Y251aUJjcjR3cGVFc092dEk3Y2pKUFlkeFQxNWYxZm4yakp6MUJvVm11VnlM?=
 =?utf-8?B?VW5UR3U3UVdDWEVsS3h6Rk9wUWI0aGljazlwWmdXVlROM2xtWG9TR0JkQks1?=
 =?utf-8?B?cjJ3SERsWUhFOTVkbEhpajRib2psYVFqbTdCN1hoZjNUTURKbHliQlcwSVhp?=
 =?utf-8?B?UENZQlpBMzJjWEc1bml2SmU2QmtScjdKaCtQMFpENzJ1NGcxMEV0bXY5Z05N?=
 =?utf-8?B?bExZSURDR0tsSXNlbFdGUVM2aStkQk04Nm9zRDEwYi9oZXpPZ0xhVjlRM1Qv?=
 =?utf-8?B?UHJGZ0JBL21VN3g5QVA1Wk5PdGVrbHBJOWlWNzYxbU9VT2NyWFFVZEhEeERV?=
 =?utf-8?B?aHVVOEx5QmpYclc5bm0wNEtteEcvNnUwMHRKbCtYalFmbERReTdjRmdBcVlo?=
 =?utf-8?B?U1Z5Si9FYXJLMFNvNHppazU0OXNBZ2VmckhwQTVUTTVJQ2o0L3BFQVBSWmto?=
 =?utf-8?B?WmFrT01NSGJHWkZVR2s0TEtoR0EzbmRqaGlpRFdFTWFHc08rYSt2OHZzTVZ0?=
 =?utf-8?B?c092Q2huR3gwL3lGY2dCek5ycFM2aitscENUMnZ5TlRsSmRTK0NLaTF5bFM5?=
 =?utf-8?B?bFphM2JNWWNNMTVUSUdvMWMzQW5NUEJaMVF4RVNuV0JRTEZYWWQ3M0d2QnRF?=
 =?utf-8?B?MVpqNGhHQW5uOGJ3cndRa1NqdFRuZHZGR3R6Uk9pYi81amw3OCtMbS85d2tM?=
 =?utf-8?B?R2o1bjYzdHAxV0laYVlTZEFZaTVWSWFtWWtSOHJzdnY0NndtQ0tiR3lwbjVX?=
 =?utf-8?B?d2dpYUYvUjBOMEdZcmpkU3BEYmd4bHFhZUdlODFhVUlUM1BTYjRVZDZYcGJI?=
 =?utf-8?B?SlFQRmZBcEhqY0lncEF3Y3doNUxrTzJ0cThDazJHWGN6cGxHRnJxUmUyTzhT?=
 =?utf-8?B?Ti9sdk5WSHNremtFSjlLNS9wSFVrNGdVOVJmMWd5N1FjWmt4UVhZSjlGeGNw?=
 =?utf-8?B?c3ZJaFBKaXc2NElKRFFlL3RIQ29qNjBNMk0vOXI2a205UkhXU0haYzVoTXV1?=
 =?utf-8?Q?/4MHSs?=
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: 14 Apr 2025 18:01:14.5588
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: ad48c50c-09c6-481f-0e1a-08dd7b7e5913
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:
	SJ1PEPF00001CDE.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PPF44635DB8D

On Mon Apr 14, 2025 at 4:05 PM BST, Jan Beulich wrote:
> On 14.04.2025 15:37, Alejandro Vallejo wrote:
>> On Thu Apr 10, 2025 at 11:42 AM BST, Jan Beulich wrote:
>>> On 08.04.2025 18:07, Alejandro Vallejo wrote:
>>>> +/*
>>>> + * Locate a multiboot module given its node offset in the FDT.
>>>> + *
>>>> + * The module location may be given via either FDT property:
>>>> + *     * reg =3D <address, size>
>>>> + *         * Mutates `bi` to append the module.
>>>> + *     * module-index =3D <idx>
>>>> + *         * Leaves `bi` unchanged.
>>>> + *
>>>> + * @param fdt           Pointer to the full FDT.
>>>> + * @param node          Offset for the module node.
>>>> + * @param address_cells Number of 4-octet cells that make up an "addr=
ess".
>>>> + * @param size_cells    Number of 4-octet cells that make up a "size"=
.
>>>> + * @param bi[inout]     Xen's representation of the boot parameters.
>>>> + * @return              -EINVAL on malformed nodes, otherwise
>>>> + *                      index inside `bi->mods`
>>>> + */
>>>> +int __init fdt_read_multiboot_module(const void *fdt, int node,
>>>> +                                     int address_cells, int size_cell=
s,
>>>> +                                     struct boot_info *bi)
>>>
>>> Functions without callers and non-static ones without declarations are
>>> disliked by Misra.
>>=20
>> Can't do much about it if I want them to stand alone in a single patch.
>> Otherwise the following ones become quite unwieldy to look at. All I can
>> say is that this function becomes static and with a caller on the next
>> patch.
>
> Which means you need to touch this again anyway. Perhaps we need a Misra
> deviation for __maybe_unused functions / data, in which case you could
> use that here and strip it along with making the function static. Cc-ing
> Bugseng folks.

It's a transient violation, sure. Do we care about transient MISRA
violations though? I understand the importance of bisectability, but
AUIU MISRA compliance matters to the extent that that the tip is
compliant rather than the intermediate steps?

Another option would be to fold them this patch and the next together
after both get their R-by. As I said, I assumed you'd rather see them in
isolation for purposes of review.

>
>>>> +    /* Otherwise location given as a `reg` property. */
>>>> +    prop =3D fdt_get_property(fdt, node, "reg", NULL);
>>>> +
>>>> +    if ( !prop )
>>>> +    {
>>>> +        printk("  No location for multiboot,module\n");
>>>> +        return -EINVAL;
>>>> +    }
>>>> +    if ( fdt_get_property(fdt, node, "module-index", NULL) )
>>>> +    {
>>>> +        printk("  Location of multiboot,module defined multiple times=
\n");
>>>> +        return -EINVAL;
>>>> +    }
>>>> +
>>>> +    ret =3D read_fdt_prop_as_reg(prop, address_cells, size_cells, &ad=
dr, &size);
>>>> +
>>>> +    if ( ret < 0 )
>>>> +    {
>>>> +        printk("  Failed reading reg for multiboot,module\n");
>>>> +        return -EINVAL;
>>>> +    }
>>>> +
>>>> +    idx =3D bi->nr_modules + 1;
>>>
>>> This at least looks like an off-by-one. If the addition of 1 is really
>>> intended, I think it needs commenting on.
>>=20
>> Seems to be, yes. The underlying array is a bit bizarre. It's sizes as
>> MAX_NR_BOOTMODS + 1, with the first one being the DTB itself. I guess
>> the intent was to take it into account, but bi->nr_modules is
>> initialised to the number of multiboot modules, so it SHOULD be already
>> taking it into account.
>>=20
>> Also, the logic for bounds checking seems... off (because of the + 1 I
>> mentioned before). Or at least confusing, so I've moved to using
>> ARRAY_SIZE(bi->mods) rather than explicitly comparing against
>> MAX_NR_BOOTMODS.
>>=20
>> The array is MAX_NR_BOOTMODS + 1 in length, so it's just more cognitive
>> load than I'm comfortable with.
>
> If I'm not mistaken the +1 is inherited from the modules array we had in
> the past, where we wanted 1 extra slot for Xen itself. Hence before you
> move to using ARRAY_SIZE() everywhere it needs to really be clear what
> the +1 here is used for.

Ew.  Ok, just looked at the code in multiboot_fill_boot_info and indeed
the arrangement is for all multiboot modules to be in front, and Xen to
be appended. But bi->nr_modules only lists multiboot modules, so
increasing that value is therefore not enough (or
next_boot_module_index() would fail).

I need to have a proper read on how this is all stitched together.  I
may simply swap BOOTMOD_XEN with the next entry on append. Though my
preference would be to _not_ have Xen as part of the module list to
begin with. Before boot_info that was probably a place as good as any,
but this would be much better off in a dedicated field.

I don't see much in terms of usage though. Why is it being added at all?

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Mon Apr 14 18:01:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 18:01:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.951110.1347247 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4O7m-0007Vi-0q; Mon, 14 Apr 2025 18:01:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 951110.1347247; Mon, 14 Apr 2025 18:01:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4O7l-0007Vb-Ti; Mon, 14 Apr 2025 18:01:37 +0000
Received: by outflank-mailman (input) for mailman id 951110;
 Mon, 14 Apr 2025 18:01: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=KxE1=XA=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u4O7k-0007Rd-2i
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 18:01:36 +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 8121d13d-195a-11f0-9eae-5ba50f476ded;
 Mon, 14 Apr 2025 20:01:35 +0200 (CEST)
Received: by mail-wr1-x42c.google.com with SMTP id
 ffacd0b85a97d-399749152b4so2509767f8f.3
 for <xen-devel@lists.xenproject.org>; Mon, 14 Apr 2025 11:01:35 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39eae96cf1asm11820785f8f.39.2025.04.14.11.01.34
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 14 Apr 2025 11:01: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: 8121d13d-195a-11f0-9eae-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744653695; x=1745258495; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=3ewjUxNJ4N4IJRWi354QXmEENDpMbqQXNCGsBxm5HXo=;
        b=FUdoNxbA8jt4KrdiwZ17jDLyAvu/Dv93SuNl7pP3hsUSUGAIgCdS5+tIXt3L2Nq8Hh
         0NdbH1zL2bYaZbVwmfgF7gqNkhiSPT5n71HO14Sek/R6jB0EwhBe3O1RVhtmQKjW86ES
         SSKqjYGfDAIiiqH15P/Svo7BnCpZL+SRN2fYQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744653695; x=1745258495;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=3ewjUxNJ4N4IJRWi354QXmEENDpMbqQXNCGsBxm5HXo=;
        b=M1uv6akN9ZpFhj37baEqwRo+xHlztCQHHRQJ6iSay2W36PDaxraBSs+gHeq1MuN89A
         EpkMAkFf9a963kVKsxnVV73mcHWe1VFQ6M/yBPn7KGBFOtFBAlwyKvzXFBdUJDwW0fLj
         pigeriorQvH+bQujMxbcba55JrubFF2W4vrolxCYo9YAGZzaUJTiSvjgmAY5wg9vnUo7
         RhcNWTaFsyI7oyS2D9D2ZVtwule+iTiw19jwnA2YTH63B1cAgl2j12DgpFYYl5427YkK
         3wu+AwIAtal2Itt1r1o04wFiSMRREOXUVwx4tmKWOSnbReDKwP4QtsvaLVI7KpuGfVhd
         KjEQ==
X-Forwarded-Encrypted: i=1; AJvYcCXdf4T0D8vOnVno5q6+XrsoU5WM5Y0SSEp96aNKJFPJTOj0ebF5i1TfMuneRQnZCJyATIzNMW2cDbc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxUI3ObLpfn1pFRmjQxtvCrFk9/GgActaps5yCHbL15AOT6PIsY
	/lidM7rHU7/Cu24VS2m9JpQRu4Pl9vVX9+YLkmmEp5xL8ZMrs+toU4XueBKew3s=
X-Gm-Gg: ASbGncuJa4YP0ibMRI8ZerwjTNoy6rQxbCxQ6wNwqn2F6qpb9qsqkqTAsEPHNT7li3/
	igckfgb45vPTacYZ5qzbI+OXxSRMI8k/VwbdCZ3uEAuIHUAbkGJtN5zDbpsd11yV7TZ1IaM+CVK
	6zqP5P8jGailgV4YCKnLxJsn8try8FGuwdxC9C4107ndMDLQoEAwVNbPBs0Kew4RKLkCmy5W0LQ
	qaTKpbdowKqUQF6AbNtnyATsYWbWFXRN3rVkjayPemkhMwrOK8EexcAtnpBRDwleKu3gX+PGiP2
	G5LvHy65QHIvmaT17fxNsPXGcq2kLXUgevc5coPXnBq6U2bT+2Ry4RUq1kQ6OtbYN/fluWAiwEV
	HTVdPEg==
X-Google-Smtp-Source: AGHT+IEN+EpmQaN9MBqeLMogGYTS6d8DqvxHZukKX/x7iTqbUe739OnqzUawM8G3fw3PDX3dYmIlKw==
X-Received: by 2002:a5d:64aa:0:b0:39c:1257:febb with SMTP id ffacd0b85a97d-39eaaed6048mr11179717f8f.59.1744653694742;
        Mon, 14 Apr 2025 11:01:34 -0700 (PDT)
Message-ID: <cc480b65-c1b7-4384-8d18-8a0cd6e7cfea@citrix.com>
Date: Mon, 14 Apr 2025 19:01:33 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 6/6] CI: Include microcode for x86 hardware jobs
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>
Cc: Anthony PERARD <anthony@xenproject.org>,
 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: <20250414110903.2355303-1-andrew.cooper3@citrix.com>
 <20250414110903.2355303-7-andrew.cooper3@citrix.com> <Z_1JuudeZAXihzwb@l14>
 <e0bfbfa1-4130-420c-8db3-4ac520ac49de@citrix.com> <Z_1MLobG_FyndTg4@mail-itl>
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: <Z_1MLobG_FyndTg4@mail-itl>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 14/04/2025 6:55 pm, Marek Marczykowski-Górecki wrote:
> On Mon, Apr 14, 2025 at 06:47:07PM +0100, Andrew Cooper wrote:
>> On 14/04/2025 6:45 pm, Anthony PERARD wrote:
>>> On Mon, Apr 14, 2025 at 12:09:03PM +0100, Andrew Cooper wrote:
>>>> diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
>>>> index 1b82b359d01f..ac5367874526 100644
>>>> --- a/automation/gitlab-ci/build.yaml
>>>> +++ b/automation/gitlab-ci/build.yaml
>>>> @@ -306,6 +306,7 @@ alpine-3.18-gcc-debug:
>>>>        CONFIG_ARGO=y
>>>>        CONFIG_UBSAN=y
>>>>        CONFIG_UBSAN_FATAL=y
>>>> +      CONFIG_UCODE_SCAN_DEFAULT=y
>>> Is there a change
>> DYM "chance" ?
>>
>>>  that this patch series gets backported? Because that
>>> new Kconfig option won't exist.
>> Yes, I do intend to backport this whole series in due course, and yes,
>> I'm aware.
> A more backport-friendly way would be add ucode=scan to xen cmdline.

Yeah, but they're too long already IMO.

Needing to override defaults to make our CI system useful is a good hint
that the defaults are wrong.

Same for console_timestamps, which isn't even deployed consistently
across the testing.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Apr 14 18:07:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 18:07:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.951135.1347257 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4ODH-0000kx-JD; Mon, 14 Apr 2025 18:07:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 951135.1347257; Mon, 14 Apr 2025 18:07:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4ODH-0000kq-GP; Mon, 14 Apr 2025 18:07:19 +0000
Received: by outflank-mailman (input) for mailman id 951135;
 Mon, 14 Apr 2025 18:07:18 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=B3Nx=XA=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u4ODG-0000kk-HA
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 18:07:18 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on20604.outbound.protection.outlook.com
 [2a01:111:f403:2412::604])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4b433e9f-195b-11f0-9ffb-bf95429c2676;
 Mon, 14 Apr 2025 20:07:16 +0200 (CEST)
Received: from SA9PR11CA0028.namprd11.prod.outlook.com (2603:10b6:806:6e::33)
 by CH3PR12MB8712.namprd12.prod.outlook.com (2603:10b6:610:171::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.35; Mon, 14 Apr
 2025 18:07:12 +0000
Received: from SA2PEPF00003F68.namprd04.prod.outlook.com
 (2603:10b6:806:6e:cafe::19) by SA9PR11CA0028.outlook.office365.com
 (2603:10b6:806:6e::33) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.34 via Frontend Transport; Mon,
 14 Apr 2025 18:07:12 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SA2PEPF00003F68.mail.protection.outlook.com (10.167.248.43) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Mon, 14 Apr 2025 18:07:11 +0000
Received: from localhost (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; Mon, 14 Apr
 2025 13:07:10 -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: 4b433e9f-195b-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=vbnHBa5bVI2wN6Fa9qBrgkTK/0EIQyvIWwBrg2z3WW80opyVNd7FP1ZsDp4ocRi2NtgxAN6GQKZHcn+TEV5WzHKi/BRmwo8/kbPZ67r8hpZHYWBdAe31FHA/8mkzBNcIi2HPQvkwF1NBvXHhmZNnvp3mZKE8+PEC+QvxSkfZ2g95EGzJbwxTubeHiEP/w/S87T3wH0X6G7kpnpIjaOBlW/xPpG4SLESPzaFVFusyYgcEi5Nsx5KkHDKEeEla8iKh2XM7TbWHot3Q/VYQAE+BmHZrvO2ibDlSH4ZK5H2LN+jILCRx84UVJjh3cgymUPbqGisb65V4Hm3M1WoGfAJUQQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Hf09YEopIvj7NIqtHntTQdWrSXyNFqTOf64vLvzhdjc=;
 b=opGiWmJXIgtoWS/RV53O9xRnvsetqXnmJEhB2o25vE7ZnSTmWeLym6WjHqovYgTE17YSHb/MbVFlHt3KZdM2GCDvSFqAFh8xNX7wpqA89MpkEq7yEnvJkklj69G8kUS+1fjy3fLl9tIwR43xFsvJdzHxirU83zrb9npqeBuDEMpFX46YU0hZSWOjivBd+KoCqkU7//KayOA60apcndrUIV9HPKOYxiOfuZahOKd7xGz/nymwHyV7XYluhoy3o1ThQSSjYIgtVbIr6VxnzJoho4zwhzqmwJdWLGTn0vdZyIdGxjIuIV+E+erwUT8TqBBI+EMoisiZOdr9UeY9Jl7rrA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=proton.me 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=Hf09YEopIvj7NIqtHntTQdWrSXyNFqTOf64vLvzhdjc=;
 b=KHqujrn/Jnc04v9ofV9VDHfyJ0HP4ge+xqXl6lXiP/YyOV5IxAVxLYAlnVW2kX+JszYubPeypolw1VB4oYZmv4SFkE2fi3SQeyzKMHVERpx62IGaX4/tUDaesSFYU8UFeJiXvuPL2yDlI7rlwZgZi8AmoxK4q8jJekVvbZ5Nzuk=
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
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Mon, 14 Apr 2025 19:07:09 +0100
Message-ID: <D96K8KED132J.3C79EPWZM813D@amd.com>
CC: <xen-devel@lists.xenproject.org>, "Daniel P. Smith"
	<dpsmith@apertussolutions.com>, Jason Andryuk <jason.andryuk@amd.com>, "Xenia
 Ragiadakou" <xenia.ragiadakou@amd.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Michal Orzel <michal.orzel@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>, Julien Grall
	<julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>
Subject: Re: [PATCH v3 12/16] x86/hyperlaunch: add domain id parsing to
 domain config
From: Alejandro Vallejo <agarciav@amd.com>
To: Denis Mukhin <dmkhn@proton.me>
X-Mailer: aerc 0.20.1
References: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-13-agarciav@amd.com>
 <tRYKTDKcoIBHId12LOD4EHCmAF-AN3V3PmkMqmyIjYCqQJ3TS_0ctt3WMCq1Ez3W7oIGxwU3UsAioyP9T9fMCO78_61AI01oYEknYF_h1_I=@proton.me>
In-Reply-To: <tRYKTDKcoIBHId12LOD4EHCmAF-AN3V3PmkMqmyIjYCqQJ3TS_0ctt3WMCq1Ez3W7oIGxwU3UsAioyP9T9fMCO78_61AI01oYEknYF_h1_I=@proton.me>
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: SA2PEPF00003F68:EE_|CH3PR12MB8712:EE_
X-MS-Office365-Filtering-Correlation-Id: 12a8eede-79c7-4411-6ee1-08dd7b7f2e0a
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?WDZPSHdpWTdFcjBjU2RtNWJ0dUJBL2FyYXBaa1FCTW82YUdMazJBZ2hEODNJ?=
 =?utf-8?B?S2g2RExuOUk1MjRLdy9PTkFSdFJBeEJocW9qSkNmT3RkMWFYTTU0bzZMcDV5?=
 =?utf-8?B?bGNDZGNPK2JqS1R4c09oUmN3N2hmMFdEKytmZWUzQzFzc3c4S29jcWxKVGJp?=
 =?utf-8?B?Yzl2VEpFT0hiVWJreWZHc2R4SmlPODVQRFpTYjVQQno4T1ZGTTNVd0dYOUg3?=
 =?utf-8?B?UllHMTNYbEJGQitHVEw3Rk9adFQzUVBpdFJDdzRMVFVwWU94ZmlIbE9FQXZO?=
 =?utf-8?B?QllrK0lxTlc0czVVNXNZMlYzNUtkMU9zdDhVelZJYWZzUVo0eXVBSWF3ZkFS?=
 =?utf-8?B?TkZDQTBBK2NMQjdRaW5IOEZHemQrVHp1OFRaY2IxcXdLK0RkT3dpakU5NlZV?=
 =?utf-8?B?NzJ5RUZCUkFCR0F5RlIxaXNEaGZybXJ1S3BydWhkdExVMUpyYXNERXA4MHFP?=
 =?utf-8?B?WmxuMlAzeVdZMnU4RThsRDJKSFFHeEc3VlF5bHlaNGwvMjc3ckV6TmhhZUR2?=
 =?utf-8?B?U25tcjZFWlVOQmFBbkVtaFlmRjNqUGZPWHFSVW4zZ0VKeDVKRGc0NGo3TU1q?=
 =?utf-8?B?S1doeFplK1VHNytSenRRVFZudVVwblNzMm5RVjVQYkg0WFIrenNFam43U3R4?=
 =?utf-8?B?L3JPMGdhSExMVlgxMUVmeU5BZ25TZWpteDJ5TFgrdnM5b0R1YTZhSk9GYUVj?=
 =?utf-8?B?eCtUbmFTTFNES3h3UUg0K1VBd3ZBVDltNW12UlNaVHorbVRITEY3QVZGNm8v?=
 =?utf-8?B?dGEwS25HOVg4dUtFM0U2RXdnZ1piZXFRTzJrT1cxQ2JqK0ZlWFJjNEFVU09O?=
 =?utf-8?B?dkRvcW40VFRjK2lpQTBTWElNV3pDTUJrSlJsWkRBUG0wRk1BbkVlbWJvbFpU?=
 =?utf-8?B?OGszNzVzd2F5WHJpeFl3UER1OFdEblA5UXFVL01YYU0xRjdtbzdKQ0VCWE5U?=
 =?utf-8?B?eVJRL1VzbGRpSlE1aTNwamVZU29XblArUXhIWVhMTHRXVUZJR2JlYVdwZ0t0?=
 =?utf-8?B?ZmtaNTFyakd6VE40dWpBZUd0ZUM0OVBzT29XbHo2VXQrc1pHYmtmSFpUSHlT?=
 =?utf-8?B?YVpFTUxCeVdZenJ2YUR1Y2tQdnI0SUNqQXZ1WnhZeGJteG9kZGVRWE9NVW1a?=
 =?utf-8?B?TDRPU2RVTTIyMmtmNG8rYlNZN3d3TkxsVXpDWXFrc2xuMmljamwwWW5KRUdB?=
 =?utf-8?B?WlhHNmhWK09CRFBXMU5YZGt6cTIrc2YySFhyNTdFQnNSS0ZUSC9SdXVxVXc3?=
 =?utf-8?B?c1JDRSsxeTRndms0RlNsb0J5eWdIT2F5V3BLcTRxN0UrcjMxSUYrMUlBMWlu?=
 =?utf-8?B?b3FRK0tydXg4N29EWWtpZmxSRmFoMGtUeHU1dkNjVFptMzVkSjRCU254bkJU?=
 =?utf-8?B?OGhnR1pGT2txTXFRRjZQaWllRHZSREdMYTFzWk9LWkUxRzlUOFduRno5Nlha?=
 =?utf-8?B?SU1pRnJGMWhnN2M0K3dUSjVJT3JPS3pHNGpXZXliRkdLZ05LajBwWnErRmRG?=
 =?utf-8?B?RUlTVVpRcyttVS9XVVY4MXRhZTlUa251SzR5aE91WUU4Ulk4blRkWkNiUHhS?=
 =?utf-8?B?YmEzRDI2TU9qMHNGMU5EOVJoMHNoN3VldEs2bW9rVHpSbGhFejhtQXVvQzVw?=
 =?utf-8?B?T2NwTURNRmI4d05uY1JWVXhnaHY4ODRMZkRiU2xjZFV6YVVPWGw4WnptdjR1?=
 =?utf-8?B?Yjd3MkVhZWw4SzNVL1hhYXdEcWNvcXJmQzJWSnVUeE5kVDNjOWRtT0FGRWxj?=
 =?utf-8?B?dHByNVExenY1VTZzT053ZTBNUUJXeWZCTTV0ZU1nSTF4VGw5T2JvSDlWZndj?=
 =?utf-8?B?RmNMQUx3RmlvUTFkMGIzSTlOZk5ZSkFiZ2ZwM1I4ZDA1SFF5ZkFFcW0wcGh6?=
 =?utf-8?B?M3R1bUl1SkhKeDFvMzBoRUZhYW1ObSs0eVJMRGpqdFQwUVBESWF4NE5PbEVM?=
 =?utf-8?B?NE02aXkzNlhPMGo2bXE3VmJPcnI1N1p3NWN0YlNTMFYwSFdjTU9oL1VtT1hX?=
 =?utf-8?B?clJVaGF4REZaV29rNTdFS3hGaXBaQjhNRnRndDNuS3BUbUVzdEl0K3N5R2ZI?=
 =?utf-8?Q?e/EsYm?=
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: 14 Apr 2025 18:07:11.9195
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 12a8eede-79c7-4411-6ee1-08dd7b7f2e0a
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:
	SA2PEPF00003F68.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB8712

On Wed Apr 9, 2025 at 11:15 PM BST, Denis Mukhin wrote:
> On Tuesday, April 8th, 2025 at 9:07 AM, Alejandro Vallejo <agarciav@amd.c=
om> wrote:
>
>>=20
>>=20
>> From: "Daniel P. Smith" dpsmith@apertussolutions.com
>>=20
>>=20
>> 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.
>>=20
>> Signed-off-by: Daniel P. Smith dpsmith@apertussolutions.com
>>=20
>> ---
>> v3:
>> * Remove ramdisk parsing
>> * Add missing xen/errno.h include
>> ---
>> xen/arch/x86/domain-builder/fdt.c | 39 ++++++++++++++++++++++++++++-
>> xen/arch/x86/setup.c | 5 ++--
>> xen/include/xen/libfdt/libfdt-xen.h | 11 ++++++++
>> 3 files changed, 52 insertions(+), 3 deletions(-)
>>=20
>> diff --git a/xen/arch/x86/domain-builder/fdt.c b/xen/arch/x86/domain-bui=
lder/fdt.c
>> index 0f5fd01557..4c6aafe195 100644
>> --- a/xen/arch/x86/domain-builder/fdt.c
>> +++ b/xen/arch/x86/domain-builder/fdt.c
>> @@ -8,6 +8,7 @@
>> #include <xen/libfdt/libfdt.h>
>>=20
>>=20
>> #include <asm/bootinfo.h>
>>=20
>> +#include <asm/guest.h>
>>=20
>> #include <asm/page.h>
>>=20
>> #include <asm/setup.h>
>>=20
>>=20
>> @@ -158,12 +159,42 @@ int __init fdt_read_multiboot_module(const void *f=
dt, int node,
>> static int __init process_domain_node(
>> struct boot_info *bi, const void *fdt, int dom_node)
>> {
>> - int node;
>> + int node, property;
>> struct boot_domain *bd =3D &bi->domains[bi->nr_domains];
>>=20
>> const char *name =3D fdt_get_name(fdt, dom_node, NULL) ?: "unknown";
>> int address_cells =3D fdt_address_cells(fdt, dom_node);
>> int size_cells =3D fdt_size_cells(fdt, dom_node);
>>=20
>> + fdt_for_each_property_offset(property, fdt, dom_node)
>> + {
>> + const struct fdt_property *prop;
>> + const char prop_name;
>> + int name_len;
>> +
>> + prop =3D fdt_get_property_by_offset(fdt, property, NULL);
>> + if ( !prop )
>> + continue; / silently skip */
>> +
>> + prop_name =3D fdt_get_string(fdt, fdt32_to_cpu(prop->nameoff), &name_l=
en);
>>=20
>> +
>> + if ( strncmp(prop_name, "domid", name_len) =3D=3D 0 )
>> + {
>> + uint32_t val =3D DOMID_INVALID;
>> + if ( fdt_prop_as_u32(prop, &val) !=3D 0 )
>> + {
>> + printk(" failed processing domain id for domain %s\n", name);
>
> Add XENLOG_ERR ?

Yes, and...

>
>> + return -EINVAL;
>> + }
>> + if ( val >=3D DOMID_FIRST_RESERVED )
>>=20
>> + {
>> + printk(" invalid domain id for domain %s\n", name);
>
> Add XENLOG_ERR ?

... yes.

>
>> + return -EINVAL;
>> + }
>> + bd->domid =3D (domid_t)val;
>>=20
>> + printk(" domid: %d\n", bd->domid);
>>=20
>> + }
>> + }
>> +
>> fdt_for_each_subnode(node, fdt, dom_node)
>> {
>> if ( fdt_node_check_compatible(fdt, node, "multiboot,kernel") =3D=3D 0 )
>> @@ -233,6 +264,12 @@ static int __init process_domain_node(
>> return -ENODATA;
>> }
>>=20
>> + if ( bd->domid =3D=3D DOMID_INVALID )
>>=20
>> + bd->domid =3D get_initial_domain_id();
>>=20
>> + else if ( bd->domid !=3D get_initial_domain_id() )
>>=20
>> + printk(XENLOG_WARNING
>> + "WARN: Booting without initial domid not supported.\n");
>
> Drop WARN since the log message is XENLOG_WARNING level already?

As mentioned elsewhere, the point of those prefixes are to be readable.

Though I'm starting to get urges to rewrite many of this error handlers
as asserts, on the basis that "why do we think it's ok to boot with
malformed DTBs"? A safe system that doesn't boot is more helpful than an
unsafe one that boots everything except a critical component for you to
find later on.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Mon Apr 14 18:36:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 18:36:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.951151.1347267 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4Oex-0000OB-SD; Mon, 14 Apr 2025 18:35:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 951151.1347267; Mon, 14 Apr 2025 18:35: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 1u4Oex-0000O4-O4; Mon, 14 Apr 2025 18:35:55 +0000
Received: by outflank-mailman (input) for mailman id 951151;
 Mon, 14 Apr 2025 18:35:55 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=B3Nx=XA=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u4Oex-0000Ny-39
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 18:35:55 +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 4b1c5ab2-195f-11f0-9eae-5ba50f476ded;
 Mon, 14 Apr 2025 20:35:53 +0200 (CEST)
Received: from MN2PR19CA0009.namprd19.prod.outlook.com (2603:10b6:208:178::22)
 by CY3PR12MB9607.namprd12.prod.outlook.com (2603:10b6:930:103::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.34; Mon, 14 Apr
 2025 18:35:47 +0000
Received: from BL02EPF0002992E.namprd02.prod.outlook.com
 (2603:10b6:208:178:cafe::2f) by MN2PR19CA0009.outlook.office365.com
 (2603:10b6:208:178::22) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.33 via Frontend Transport; Mon,
 14 Apr 2025 18:35:47 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BL02EPF0002992E.mail.protection.outlook.com (10.167.249.59) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Mon, 14 Apr 2025 18:35:47 +0000
Received: from localhost (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; Mon, 14 Apr
 2025 13:35:45 -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: 4b1c5ab2-195f-11f0-9eae-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=HQXj4O6pGyoF1I6b5kQYk5ap7JDh+8FbCyrV8Oj9FIYMY3gt34e+qsVp1CZL8ywH60iaX4YWTzJMYNCLa3PYOJU9i0bue5cyiIUiC+Epd866sbtNy03dwwULP8YBICPeFASG3e76f624MBiYnPgudRqw2VAZQWa3c46mOWFZmkaYa/1XhSqkR5X4pnhLMVxBlOsiZUGXiW8IAtGv57EV4gf58p52rkML/l3V7oD44V1AbLHQmMI2G5ZL2giEf81+vgCgrRyjP0baP+cY63JLLO9QemOEtg/d9WCA5DJSMhvTdEV61sBJV7jdC0+iMoGMhi//XwyVzm9UhPACOoP6PA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=j2xn3W946iG4qq5hfboD3hHxp8YySCs//TPq+BUPxtI=;
 b=h+f5Cn6etQrJchkrcD0s+tKRpii1NsYXxjVahoa1RZCJK24KJ8T4Pf7z9Eb0pb/T/rmvgFFJYs+IyRsV8fRZLyHljEgyZ1vtJUo/9mXCbKUGYPNFH4dhDw259mYirKVu11Li0l++DQut1s1TjCdJeeyqAyDtfdkRveToPlPIijI9gTxeHInkYDXii9OlfNjZQyIsGrii2wwK3wHmlrFlSq1N2YToEqeK3SbN2ZEEIW2ox6DzP1ebGEltYA7u+SyzxP4hhERAkpPadGzOL/p0mFxQX4RqitAwUbIZE1h7XkNYg4+VUI/jVQkPFOFu8WvYQM+l4BBsufGMTGeSo1piqg==
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=j2xn3W946iG4qq5hfboD3hHxp8YySCs//TPq+BUPxtI=;
 b=Fub9O8omqBrwWst6MBJx8swW86XhLcmQsQaixEEMcANDHYZiXUB71CMxvQbxEevYctSRGR/qmZxIvP49YHzdf+CAqwFeIGmQIabdMinWYCk87m/E+tro/EOhkDmkQFZYWdxlv1Zawxa+4SVeSmdD8nHRG18oBb1ScEBcT0jG2xQ=
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
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Mon, 14 Apr 2025 19:35:44 +0100
Message-ID: <D96KUGJTQO7F.39OKDX33SSKYH@amd.com>
CC: "Daniel P. Smith" <dpsmith@apertussolutions.com>, Jason Andryuk
	<jason.andryuk@amd.com>, Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	"Stefano Stabellini" <sstabellini@kernel.org>, Michal Orzel
	<michal.orzel@amd.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Julien Grall
	<julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
	<xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v3 12/16] x86/hyperlaunch: add domain id parsing to
 domain config
From: Alejandro Vallejo <agarciav@amd.com>
To: Jan Beulich <jbeulich@suse.com>
X-Mailer: aerc 0.20.1
References: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-13-agarciav@amd.com>
 <6ce79cc0-1fec-4ad9-834e-680ef1f81549@suse.com>
In-Reply-To: <6ce79cc0-1fec-4ad9-834e-680ef1f81549@suse.com>
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: BL02EPF0002992E:EE_|CY3PR12MB9607:EE_
X-MS-Office365-Filtering-Correlation-Id: b986d15e-b4c8-45c8-2753-08dd7b832ca3
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?bnRIRHdjWHRvdGtrTnpua1ViOSs5a1hFckhFOHlRVlczd1ZHMno1Y3VlQkxr?=
 =?utf-8?B?MGxMRno1VFErVklma1lwUTJQTE5rWEFVa0RqV01oR2dOSTJmOXBYaDVmTjRU?=
 =?utf-8?B?eUM2Yjc0bDZuSldRd3k1U0IwQUhQeWZxYmVxWkVtVCtHd0V0eGpwWkpZOEcx?=
 =?utf-8?B?TEtGZU00cy9qaENNTjluVHBPTzlKM1U2MUdxb3hCVXpDb0szVlVhY1lQTElY?=
 =?utf-8?B?UzB1V0Q1bStMVlc5RXVpM3V0WTQvcUlYVTYrVmx3NzZ5SGx2VS83UEJ6aFBL?=
 =?utf-8?B?RVlXcUJqTFFRbm9BU3p4UHE2ekZyYVV5b29UazlBTEhCejJIaTArWmVCU3Nt?=
 =?utf-8?B?cUttaWduRnhGME9HWEViTFUyOEgxR2YvdkhUMHdWcEhyUFhJVkNmUFB6MVRz?=
 =?utf-8?B?VnY1STJ1VEVzTE9naDZJY3VNdFpOT1JIZm1aZmJ5N3V4bm1jUjZUR0ErcFpN?=
 =?utf-8?B?V3dGZFc3enNGV25uVktlbUZ0V3VSSmlpK3pHTGFjQ3E2MWJTMXQ2aW50ZUpV?=
 =?utf-8?B?SjQ2c3FqT29oeGUvVm5KTG9HYzlmTmYyclVMR1RMQUpGcy9qZkZiRmVXQ0lN?=
 =?utf-8?B?TWUzTTlTNXp0R09MclV5U3UzMkJsMTZ5M3BTNjcyWExUSElWR21zYk9xbFJF?=
 =?utf-8?B?N1BWQUs5Z1BETWVjb1UveFdSZENvRTBrYTNCTDB5bkk0VEZkNTZZRjZzNmZk?=
 =?utf-8?B?MDMzbHo5NFBxMmtLMTM1Y1IxY3RFY1dZSFBNQWhsRmlldmJ6UXdDSjhuS3J2?=
 =?utf-8?B?QUpkVkhPSW9GejZpd2VNNGdkTnBML0dJQXdjR2ZRd2FWelB0UXdLRU9Fbkh5?=
 =?utf-8?B?bGV4VElnUFdIR3RBRldjam5IUUNxM1BxcG9oLzFEVE50MG9TdS9jK0VDUTlD?=
 =?utf-8?B?ZHhodFB3N2hMakI0a21BeG9KY3BOMEpCY2ZnN2QxTGdFWXYrUUZ2OFlLKzM4?=
 =?utf-8?B?dEZSbnpTSVZpS2pLWldMMmx6ZFA4cVpZS1EvdVYrOWgvTWUzR3Jyc245djlH?=
 =?utf-8?B?dUpKWWRHL1FLWUJFdmlHbFpBdjRBMnd3ejgrRXdXTHcyRHFpeGNxNENqQkZX?=
 =?utf-8?B?b1RoeTM3aUo0R1FDeXlwRm5kaEV4VXlLTHZ1clhkK2dwNWFidXM3bVQrenN5?=
 =?utf-8?B?SmlzSVVNbmZQMlNVbjVCdjg1VkJJMk41K0pWSENXZ1pCWXZHaTN2RXFmT0lG?=
 =?utf-8?B?cVhWWHVzeWw3bzNaUVlhQUR0bEs0K2oyVjJuQWx4eGErblNpMGd6MVNyUXRX?=
 =?utf-8?B?NU9HWjRRUDBPb2pDQmFWT2RCSVV2TGNKamJJTXNZbUUvVEgrRlFOdGExUzBJ?=
 =?utf-8?B?MlZxVThPTEszNWdlSjlPeUROTHFXbngzdFNPZWpjZHpVT2tlWjN2bTc0dTJM?=
 =?utf-8?B?REV6dUxiOGRVTVZSUlMwSVhUaXhrc1JSY0xnMjNjL2tXQUwydjhsaDN2MGtT?=
 =?utf-8?B?Qzdha3NhZlRpd2RpcGJHOEdQRVRSajlZbmFvU0o1VmRrZ0VzWlR1QlQyNDhZ?=
 =?utf-8?B?TFYzb25iYUdNTFFTSjcxZE1QSEc4VVZ5b2RZaXg0OHdPSTRUNFVHV0lpVWN3?=
 =?utf-8?B?MGhsOVgxQXlPcVAzeVlDS0FjQy9zZ01icjJ0bG1kTUhDMnZyZ0JIcVNWaGZj?=
 =?utf-8?B?ckZNMFI3c0J2d3E5VCtaalJaMmRnQXVTUDNjaWZQNzE1eGV2dC9qSlNUdHF6?=
 =?utf-8?B?ZnEzZk5PWFNKQXZ3bUhQSEtpaERUK1dLUDNHWWhoajJKeFhyL1llNEgwVThW?=
 =?utf-8?B?ZEU3NjAwRFM0UXN4elk0K2RrQzVDb1pEamVqL2hSTWVwbWQrVXhLa2hiLzVy?=
 =?utf-8?B?aTRjZEdSS0RvdzkwNGFrK2ZSaXBMZ3A3YUxieldXck90RW55L0l0Mm1iekl2?=
 =?utf-8?B?bFpnYkhZMDZRa0s4eTNMZ05idGQ4N1BobjM1d2VFR0tZWk04WncxT0dEc29s?=
 =?utf-8?B?Si9yU0FKSjVxZ0dpQkpiQ3h0VCtaakxkNXlxc1ZIVk5RR1RNQTViUGZmakJh?=
 =?utf-8?B?d0ZvYjVGRnBoVHJZaTFWVUg0WC9ZZzVtM05BS2dRby9peC9WNTZhTUZtZW5t?=
 =?utf-8?Q?UvXQoe?=
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: 14 Apr 2025 18:35:47.5831
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: b986d15e-b4c8-45c8-2753-08dd7b832ca3
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:
	BL02EPF0002992E.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY3PR12MB9607

On Thu Apr 10, 2025 at 12:49 PM BST, Jan Beulich wrote:
> On 08.04.2025 18:07, Alejandro Vallejo wrote:
>> From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
>>=20
>> 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.
>
> Nit: Odd splitting of lines.

Fixed

>
>> --- a/xen/arch/x86/domain-builder/fdt.c
>> +++ b/xen/arch/x86/domain-builder/fdt.c
>> @@ -8,6 +8,7 @@
>>  #include <xen/libfdt/libfdt.h>
>> =20
>>  #include <asm/bootinfo.h>
>> +#include <asm/guest.h>
>
> What is this needed for?

get_initial_domain_id(), but that ought to come from xen/domain.h instead.

Fixed.

>
>> @@ -158,12 +159,42 @@ int __init fdt_read_multiboot_module(const void *f=
dt, int node,
>>  static int __init process_domain_node(
>>      struct boot_info *bi, const void *fdt, int dom_node)
>>  {
>> -    int node;
>> +    int node, property;
>>      struct boot_domain *bd =3D &bi->domains[bi->nr_domains];
>>      const char *name =3D fdt_get_name(fdt, dom_node, NULL) ?: "unknown"=
;
>>      int address_cells =3D fdt_address_cells(fdt, dom_node);
>>      int size_cells =3D fdt_size_cells(fdt, dom_node);
>> =20
>> +    fdt_for_each_property_offset(property, fdt, dom_node)
>> +    {
>> +        const struct fdt_property *prop;
>> +        const char *prop_name;
>> +        int name_len;
>> +
>> +        prop =3D fdt_get_property_by_offset(fdt, property, NULL);
>> +        if ( !prop )
>> +            continue; /* silently skip */
>> +
>> +        prop_name =3D fdt_get_string(fdt, fdt32_to_cpu(prop->nameoff), =
&name_len);
>> +
>> +        if ( strncmp(prop_name, "domid", name_len) =3D=3D 0 )
>> +        {
>> +            uint32_t val =3D DOMID_INVALID;
>> +            if ( fdt_prop_as_u32(prop, &val) !=3D 0 )
>
> Nit: Blank line please between declaration(s) and statement(s).

Ack.

>
>> +            {
>> +                printk("  failed processing domain id for domain %s\n",=
 name);
>> +                return -EINVAL;
>> +            }
>> +            if ( val >=3D DOMID_FIRST_RESERVED )
>> +            {
>> +                printk("  invalid domain id for domain %s\n", name);
>> +                return -EINVAL;
>> +            }
>> +            bd->domid =3D (domid_t)val;
>
> And a conflict with other domains' IDs will not be complained about?

Hmmm... sure, I can iterate the domlist and check.

>
>> +            printk("  domid: %d\n", bd->domid);
>
> If the error messages log "name" for (I suppose) disambiguation, why woul=
d
> the success message here not also do so?
>
>> @@ -233,6 +264,12 @@ static int __init process_domain_node(
>>          return -ENODATA;
>>      }
>> =20
>> +    if ( bd->domid =3D=3D DOMID_INVALID )
>> +        bd->domid =3D get_initial_domain_id();
>> +    else if ( bd->domid !=3D get_initial_domain_id() )
>> +        printk(XENLOG_WARNING
>> +               "WARN: Booting without initial domid not supported.\n");
>
> I'm not a native speaker, but (or perhaps because of that) "without" feel=
s
> wrong here.

It's probably the compound effect of without and "not supported". The
statement is correct, but it's arguably a bit obtuse.

I'll replace it with "WARN: Unsupported boot with missing initial domid.".

As for the first branch of that clause... I'm not sure we want to
support running with DTs that are missing the domid property.

>
> Also nit: No full stops please at the end of log messages, at least in th=
e
> common case.

Ack

>
> Is the resolving of DOMID_INVALID invalid really needed both here and ...
>
>> --- a/xen/arch/x86/setup.c
>> +++ b/xen/arch/x86/setup.c
>> @@ -1033,8 +1033,9 @@ static struct domain *__init create_dom0(struct bo=
ot_info *bi)
>>      if ( iommu_enabled )
>>          dom0_cfg.flags |=3D XEN_DOMCTL_CDF_iommu;
>> =20
>> -    /* Create initial domain.  Not d0 for pvshim. */
>> -    bd->domid =3D get_initial_domain_id();
>> +    if ( bd->domid =3D=3D DOMID_INVALID )
>> +        /* Create initial domain.  Not d0 for pvshim. */
>> +        bd->domid =3D get_initial_domain_id();
>
> ... here?

I'll rationatise all that on v4.

>
>> @@ -23,6 +24,16 @@ static inline uint64_t  __init fdt_cell_as_u64(const =
fdt32_t *cell)
>>      return ((uint64_t)fdt32_to_cpu(cell[0]) << 32) | fdt32_to_cpu(cell[=
1]);
>>  }
>> =20
>> +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;
>> +
>> +    *val =3D fdt_cell_as_u32((fdt32_t *)prop->data);
>> +    return 0;
>> +}
>
> Path 08 looks to (partly) open-code this. Perhaps better to introduce alr=
eady
> there?

Already done.

Cheers,
Alejandro



From xen-devel-bounces@lists.xenproject.org Mon Apr 14 18:45:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 18:45:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.951166.1347277 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4OoB-0003Qn-Qv; Mon, 14 Apr 2025 18:45:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 951166.1347277; Mon, 14 Apr 2025 18:45:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4OoB-0003Qg-NE; Mon, 14 Apr 2025 18:45:27 +0000
Received: by outflank-mailman (input) for mailman id 951166;
 Mon, 14 Apr 2025 18:45: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=B3Nx=XA=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u4OoA-0003Qa-SM
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 18:45:26 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on20623.outbound.protection.outlook.com
 [2a01:111:f403:2412::623])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9eb11b5a-1960-11f0-9ffb-bf95429c2676;
 Mon, 14 Apr 2025 20:45:24 +0200 (CEST)
Received: from SJ0PR05CA0031.namprd05.prod.outlook.com (2603:10b6:a03:33f::6)
 by CY8PR12MB8215.namprd12.prod.outlook.com (2603:10b6:930:77::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.31; Mon, 14 Apr
 2025 18:45:17 +0000
Received: from SJ1PEPF000023CB.namprd02.prod.outlook.com
 (2603:10b6:a03:33f:cafe::a0) by SJ0PR05CA0031.outlook.office365.com
 (2603:10b6:a03:33f::6) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.10 via Frontend Transport; Mon,
 14 Apr 2025 18:45:16 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ1PEPF000023CB.mail.protection.outlook.com (10.167.244.5) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Mon, 14 Apr 2025 18:45:16 +0000
Received: from localhost (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; Mon, 14 Apr
 2025 13:45:12 -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: 9eb11b5a-1960-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=R9WxEnKVA2sP7if9xwvXtViBu7nXrBtXAYBzg0qBcUREyRMD+x4fNxu+3wWOK2HBWhCYGz2BXp1wM4Bk9+M575TmBcMbJzoT748njlkV/vKOx2D9qVOew9+XhhGsVgJHk7y4y4ypETfezxPpw/jQjntcIX/OJ2uuCbPPBHpwwO5S3rtscgIu1vazc355d8a7la4A0gVNhhAqJFo+dZb2Sw1eBfQGWMdIZgJ0saHmBbY7R08oVw7vPnLvLiiLIVIEYqTH8GoeCfSc9+mlXjTVc3W6Hq+aVcr0+5XLkYHmrrj5JnpeifXKaQKUPj7ohd9o5Du/mlluWSL18ZMhGiPNIQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Pu5GyWWSYbNyXmv+d+nKhn8sEiyrOnMKh8oNuetT1No=;
 b=mQYCVGIf1Bl4kdMUKwuvCP8aWrCQywVBho8E2KGrvTz5V5svdNXzCJYi2lrg0aVW6onqp8odFnLfg1xMV7WiMcbBIAyClbXW6I8ppwzMtsB1DvJWcZxATgtglEcfWnSfi6KiJCr+YZlMZObAzY70toInFhlUyfDdNWAAfwEF4MRXPZZVV+wAFvCT059uK3WHicw2aog0CS73Q0lV+JYmJtbGUrfJlE+3clx+YoSmW+eyin1YJYjDelxr2RWJkYkhFz8E0l9OfPyQgFfgwDPqVB7wF2eNt8IcknJmqpqO27JOEwkfqQwj+FI9mVh/oQkqincZnKO6Lrn5v98JBdP4fg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=proton.me 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=Pu5GyWWSYbNyXmv+d+nKhn8sEiyrOnMKh8oNuetT1No=;
 b=J+BxOeOcNgXcdAZJSPtZ+mdBsr+NF4Wt6ZnuaqOfoxqf97WXtYycrLrBuHjuqonbxzKl3HsqebP/yydyU9e7iwq6DrSG22mW6dFV7b59LcciQYFelN0sQQRWntgUmoilVRNP80zC0USo+anySJf28hoFArXaE3ekQPuED4pbRgM=
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
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Mon, 14 Apr 2025 19:45:11 +0100
Message-ID: <D96L1OXNGDGW.24AIUUW51EP3E@amd.com>
CC: <xen-devel@lists.xenproject.org>, "Daniel P. Smith"
	<dpsmith@apertussolutions.com>, Jason Andryuk <jason.andryuk@amd.com>, "Xenia
 Ragiadakou" <xenia.ragiadakou@amd.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Michal Orzel <michal.orzel@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>
Subject: Re: [PATCH v3 13/16] x86/hyperlaunch: specify dom0 mode with device
 tree
From: Alejandro Vallejo <agarciav@amd.com>
To: Denis Mukhin <dmkhn@proton.me>
X-Mailer: aerc 0.20.1
References: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-14-agarciav@amd.com>
 <zz01k2KPjivL5-avbZJmfIKFKTodzbdL80XbXNBdrZP_7Kk9oips4Ox0aG-MYZUe74V8Rm5gHDbLjdUNlZLzmYD0MboIVY5XeUq_DmYXz6s=@proton.me>
In-Reply-To: <zz01k2KPjivL5-avbZJmfIKFKTodzbdL80XbXNBdrZP_7Kk9oips4Ox0aG-MYZUe74V8Rm5gHDbLjdUNlZLzmYD0MboIVY5XeUq_DmYXz6s=@proton.me>
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: SJ1PEPF000023CB:EE_|CY8PR12MB8215:EE_
X-MS-Office365-Filtering-Correlation-Id: 95e32a44-e418-4699-fb71-08dd7b847f7f
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?VnNKdlBFUWdjd0xGRE9WUlVVa1g1UWJJTVlmTFlSSlAyNldGMzFEcFE0NUZJ?=
 =?utf-8?B?VHRPa01xVGtVeVpxT3FmcDJkeXd5bkhSNXhwenZrQzMvSmVJd3d4YlJpSVhE?=
 =?utf-8?B?cTkwUUdzbFM5SFpiRE5sS0FjNGRaci9QcE9QckJWWWNObDNxbFh3aml2WlFZ?=
 =?utf-8?B?QlB6NUkyMmxReTE4UFl6SVgyRVBxRjhDMXhpNEdWcFJvcFY3NkcreHM3aDRa?=
 =?utf-8?B?bDYxMWlYMjBrYkNKRmFrUWhjSGt3TjhxeGg4TTlwbFp1TFA3Y0VEZGZvaVBU?=
 =?utf-8?B?Rmxwc09CTC85Y1RmQkp0VHAyQThjcThhUFdZVFBXc2d4T1pWRUplSnVUU2xK?=
 =?utf-8?B?WXcyaEp3akVmajFkS0RuWmNGa291RlRxL3Nmell4Ty9tU2xiUElWdWVKc2w2?=
 =?utf-8?B?U3VmSkZFNlp3MlNKS1RqaWgwWkk2Z3JreUZKZk1mOXc1UjVleTdERnVoMElH?=
 =?utf-8?B?WlNpTGp2ZXYwYjZ5L0RyNW4wV1JWUHh4QnRXTW1Va1ZzeWdPcjlIUFZzSzUw?=
 =?utf-8?B?cUUwc29Za0JMemVEeXI0RlovcHo4d01JTDF0V01PQ3I5d2tqUmQwdEhPdE1T?=
 =?utf-8?B?T1FUck5MZEYrUmU4clBwS2U4OSttQi85UlVGMnNMT2tSV1UxU3laNmEvcmp2?=
 =?utf-8?B?a1ZDNnVhRGZqVjBZR1ZRTjhyUmVndm9IQTY5OTBLRk5RWmR6V2ptNVBadFNn?=
 =?utf-8?B?MXhvTlpSYkJyZnJMY05QSC8zWmd3MjBoSXNKTVNzRUx4YVcyMzg4STg4TkFJ?=
 =?utf-8?B?c01CdE1SbEEzQk1sbzUxNTErVmJQTUhuMUE5bjFMdDQ2aUtyYTZSVU52c3BN?=
 =?utf-8?B?NHZXbEZBYjl2WHREMkxVS1hzeXk2Q0s3dHpjdDZzYVppTkZsQS9Zd20wWWtw?=
 =?utf-8?B?TGNnbUVMT2MySnNGaTk4bmo5V3UxZXpMeEhBbjNqT2luSk1TeVRORXgyWVZn?=
 =?utf-8?B?aEpiZll6UFlDajVMMlRkQnBob1JITWhXWGRudGF1ZzhCeFY4eFY4SWJTTGVa?=
 =?utf-8?B?VmJHUVZybkNEOXpneFhTTGszc0RuQlloU2d2N0lhTzgxTzhOZ3dOSjRFUDNt?=
 =?utf-8?B?bGVRY1VoZHRtVGQyYjI1SVZMSCtKNWIyVmxPYUJHa1p4ZWJveEJUUVpIcnA3?=
 =?utf-8?B?dnozbGpRUDJyODE4emI0LytnRlVHY1ZnNTFKTGFGWDJnQVJwL1VVeHppU01F?=
 =?utf-8?B?VjNtMVRDdXRIb0tqS0lzTUk1UFRKQWF3TnYzTmZWbE9ndDJSVjVtNFF4VmYr?=
 =?utf-8?B?Wk5lVmM2aWJ2NmxVb0FoaTZWRlJCMHZqQk92Ym03MTdHYW1HZGwrY2ZYMzda?=
 =?utf-8?B?S0NQTnBha0Z4cVVwQ0lZWnRXeTIwaHBBZmxBdk02WE45SlE1cFVMaFM5V2pk?=
 =?utf-8?B?VWFuM2E5dWVtckRUUGVTNTN0b0hBbFV5bzJ2SkR4ZFhDWVErL2JHUHJQK0Ns?=
 =?utf-8?B?Y2kxcGViQksxTFFyUDVGcmVESlBadWkzMVJSSHZLemRpald6aFByQjNPV2Rp?=
 =?utf-8?B?cVhlaWdVZjAza0VIWVp0WU1SL3RUc2JxTEpxZkhJZXBNR1RLSCsrZ2szR1Jz?=
 =?utf-8?B?Y01QRWVqZWxzMzY3MDdQaDkzVjc2Y2NhSExPYkhuMVBpUGFaVEpLWlRTRzZK?=
 =?utf-8?B?VzIwL2hNaExQN09XS1pYQW8yek9lMm1IYlIrdkE1MEttWWVYRXZreXMxaFpO?=
 =?utf-8?B?K3M0QUhrcVZ4cERtazl6dUZkWEwwdkpQUVptbnBsNFNOSnYzcWw2a1Yvd29H?=
 =?utf-8?B?aHBlOGpub1Z2b0JvcGM5Tkx3TmZSbGRVZ3NLaExwb1drdkRkMVY4OHh6am1o?=
 =?utf-8?B?TE1mSCs3aXU3dTBjVVZCZGp5VTlqejAzVExoK2lrcHR1N1Z1STBqS21LaFpD?=
 =?utf-8?B?ZE00c3p4ZWgzaDNueElyVzdwNUZ4YThLbmExR0F5aGZjV3NTQ0wvU3RJOWxj?=
 =?utf-8?B?b3o3YUI1NmhITUIxRzBCMmpnWTU2eWtESTJoUXlFd3VOZFNQODFoR3dEUXE5?=
 =?utf-8?B?WDZVMXBLYTlGVENtV0c2eG0xN1ZPVWJIeDE2OU5xU0ZWcWdQalk5MzNSZ3Vh?=
 =?utf-8?Q?NDRExt?=
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: 14 Apr 2025 18:45:16.0065
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 95e32a44-e418-4699-fb71-08dd7b847f7f
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:
	SJ1PEPF000023CB.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR12MB8215

On Wed Apr 9, 2025 at 11:24 PM BST, Denis Mukhin wrote:
> On Tuesday, April 8th, 2025 at 9:07 AM, Alejandro Vallejo <agarciav@amd.c=
om> wrote:
>
>>=20
>>=20
>> From: "Daniel P. Smith" dpsmith@apertussolutions.com
>>=20
>>=20
>> Enable selecting the mode in which the domain will be built and ran. Thi=
s
>> includes:
>>=20
>> - 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)
>>=20
>> In the device tree, this will be represented as a bit map that will be c=
arried
>> through into struct boot_domain.
>>=20
>> Signed-off-by: Daniel P. Smith dpsmith@apertussolutions.com
>>=20
>> Reviewed-by: Jason Andryuk jason.andryuk@amd.com
>>=20
>> ---
>> xen/arch/x86/domain-builder/fdt.c | 19 +++++++++++++++++++
>> xen/arch/x86/include/asm/boot-domain.h | 5 +++++
>> xen/arch/x86/setup.c | 3 ++-
>> 3 files changed, 26 insertions(+), 1 deletion(-)
>>=20
>> diff --git a/xen/arch/x86/domain-builder/fdt.c b/xen/arch/x86/domain-bui=
lder/fdt.c
>> index 4c6aafe195..da65f6a5a0 100644
>> --- a/xen/arch/x86/domain-builder/fdt.c
>> +++ b/xen/arch/x86/domain-builder/fdt.c
>> @@ -193,6 +193,25 @@ static int __init process_domain_node(
>> bd->domid =3D (domid_t)val;
>>=20
>> printk(" domid: %d\n", bd->domid);
>>=20
>> }
>> + else if ( strncmp(prop_name, "mode", name_len) =3D=3D 0 )
>> + {
>> + if ( fdt_prop_as_u32(prop, &bd->mode) !=3D 0 )
>>=20
>> + {
>> + printk(" failed processing mode for domain %s\n", name);
>> + return -EINVAL;
>> + }
>> +
>> + printk(" mode: ");
>> + if ( !(bd->mode & BUILD_MODE_PARAVIRT) )
>>=20
>> + {
>> + if ( bd->mode & BUILD_MODE_ENABLE_DM )
>>=20
>> + printk("HVM\n");
>> + else
>> + printk("PVH\n");
>> + }
>> + else
>> + printk("PV\n");
>> + }
>> }
>
> I would re-write so the positive condition is processed first, e.g.:
>
>     if ( bd->mode & BUILD_MODE_PARAVIRT )
>         printk("PV\n");
>     else if ( bd->mode & BUILD_MODE_ENABLE_DM )
>         printk("HVM\n");
>     else
>         printk("PVH\n");
>
> I think it will reduce indentation and make code block a bit easier to re=
ad.
>

For sure. You're absolutely right.

> Also, if there are more uses for printing string representation of a
> boot module mode in the future, perhaps move it to a separate function?
>
> What do you think?

If there's more existing cases I'm happy to unify them, but otherwise
I'd rather keep the code inlined to avoid too much indirection.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Mon Apr 14 18:50:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 18:50:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.951178.1347287 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4Osa-00040k-CF; Mon, 14 Apr 2025 18:50:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 951178.1347287; Mon, 14 Apr 2025 18:50: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 1u4Osa-00040d-7v; Mon, 14 Apr 2025 18:50:00 +0000
Received: by outflank-mailman (input) for mailman id 951178;
 Mon, 14 Apr 2025 18:49: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=B3Nx=XA=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u4OsY-00040X-A0
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 18:49:58 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on2060e.outbound.protection.outlook.com
 [2a01:111:f403:2412::60e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3fd97788-1961-11f0-9eae-5ba50f476ded;
 Mon, 14 Apr 2025 20:49:53 +0200 (CEST)
Received: from MW4P222CA0013.NAMP222.PROD.OUTLOOK.COM (2603:10b6:303:114::18)
 by CY3PR12MB9580.namprd12.prod.outlook.com (2603:10b6:930:10a::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.34; Mon, 14 Apr
 2025 18:49:47 +0000
Received: from MWH0EPF000971E4.namprd02.prod.outlook.com
 (2603:10b6:303:114:cafe::1e) by MW4P222CA0013.outlook.office365.com
 (2603:10b6:303:114::18) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.32 via Frontend Transport; Mon,
 14 Apr 2025 18:49:47 +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.8655.12 via Frontend Transport; Mon, 14 Apr 2025 18:49:47 +0000
Received: from localhost (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; Mon, 14 Apr
 2025 13:49:45 -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: 3fd97788-1961-11f0-9eae-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ItHcRcSiEdV7rFxXk0VlsGAGWiIV3JAsN9aXpCOalgy6Nm3lwqX0bu+aYfV4AqujxAGy57CZ3mXtEa+BGAc0N91Lf7RQKOj2LP477nM12SC59Ns5D8m667yOWhEBh8I8L2SrShJhGTRqa46fUQC6hjlQxojo9YEMDhWU0PL9l86O3tE1V6QvvxOTLt+oDUSdspnt9I7m61+ExiXl2SuXfZQDIOh0QQXqljA39EDgQ9UMHW3iBuxNJgo9ZiKwvrUIcGA46Go6uDqVqVNGC80ly2HnIaGOJlW/OFVaY3XwXTdPp5otYZIJrEwTqzg9Z/WqxUIDSztCw2/x80ftJ6TQ1Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=X0fCgidODmrtr/KHRxx3HA7jcd3zgRrqJ+P4GihRsZk=;
 b=JGLzEhsGUS3be0cQqHj5IeKmUUMb6+s+79CjsUOk63MVFGS3jKzdFNxpkwfe4G2pcs/v4vd29SVSN0LBCQAyDEPMcDPHR06MXCaAtkXlu4vNBpPfUQP0c/00lJ5pmxao5oj3zX74vyN+tPerlerobnPViI8Wk+slduJAJsnwStywejhOFAlOplqpnEdLcAaRk6yZ/Mt8haaK2evKTjLyrFKhsKEmOChkQXt6SW5Ru/LDuZdghTziqJrjk8wouhAtPlnVX2ub+hO31eHA+Sf3hlwwNdjO+le//hSTIC96opYRdiZgM7GEmiv70nqPuX5NEFdR8itC96aaCMwkeS/ToA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=proton.me 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=X0fCgidODmrtr/KHRxx3HA7jcd3zgRrqJ+P4GihRsZk=;
 b=sla2nOcCAdt4rMmdKX8ojfwr7fq8c75UdYHkKqGsVGJ3w5ufs8MklCeVHkNipOP70G4NEj2gbA7lHoI7hOvmEjoi7Sf/5K3UUTLNKlezlUxfLcXIyq6Fkb5i2SJCQOHOuVra4x5wKvLX97/LtrTFsA/r+CeqvBWOYgPtXDsYi+E=
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
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Mon, 14 Apr 2025 19:49:44 +0100
Message-ID: <D96L565G0EQ8.3UCWWVYASK6PO@amd.com>
CC: <xen-devel@lists.xenproject.org>, "Daniel P. Smith"
	<dpsmith@apertussolutions.com>, Jason Andryuk <jason.andryuk@amd.com>, "Xenia
 Ragiadakou" <xenia.ragiadakou@amd.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Michal Orzel <michal.orzel@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>, Julien Grall
	<julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>
Subject: Re: [PATCH v3 14/16] x86/hyperlaunch: add memory parsing to domain
 config
From: Alejandro Vallejo <agarciav@amd.com>
To: Denis Mukhin <dmkhn@proton.me>
X-Mailer: aerc 0.20.1
References: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-15-agarciav@amd.com>
 <TxTotB0Qk4oGMxQq7xnU0hcsO0Xa-v6515dblFbD6DVV7X4ZzKsjjNfi7t0jk0Uibpwq11d7rblyA09C47qJ_r7a0t698E4kNouT-iNwOqU=@proton.me>
In-Reply-To: <TxTotB0Qk4oGMxQq7xnU0hcsO0Xa-v6515dblFbD6DVV7X4ZzKsjjNfi7t0jk0Uibpwq11d7rblyA09C47qJ_r7a0t698E4kNouT-iNwOqU=@proton.me>
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: MWH0EPF000971E4:EE_|CY3PR12MB9580:EE_
X-MS-Office365-Filtering-Correlation-Id: 65d35bf9-d810-4e86-b6dd-08dd7b852139
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?SzNYM0ROYk5rWFRyWmxWT1lHUWFHeG9LbWlRWkF6Vi93ZkpqSVU2ZmpEQWdM?=
 =?utf-8?B?R1ZRVlhNSFR2YUJBMW1CblVtdXJRL3owRk8wOG5Iakk0REFsRkVySmU3WGhj?=
 =?utf-8?B?eCtwMFRsRWJCWXBHZmYxSHBhMzB4QWJCUGZSWVNPUythNm1LWWtZMllIMjRF?=
 =?utf-8?B?UFJ4MjNhVVNtdCttS011akJCSkVocXhsQzAraytnNDhaR21qSmVFbGxDNmpz?=
 =?utf-8?B?clpYeFFxallIWEZRdE4zak1wNG80M21BeHRTYjFzdTZRcTdwM2pYYlNYQXQv?=
 =?utf-8?B?NGpaUnEwQ2dUeUF4QWZPTjJBK1hzN0JDZ1cwTFNpQTVzZGVUdm9UVTlpTDkv?=
 =?utf-8?B?bThIblcxSWlHb1FyUXNTZkcrSE1FbzRtU3hFTWF2eldmcXh2SEFjK3JWd2pl?=
 =?utf-8?B?a0pIYTJyMGMyQnlTME43MFUyVzA4MVZYUytKSVFSWjJSRnFzVGNyU0RhYVNj?=
 =?utf-8?B?NFRPdkxHdHQzYWY2QUQ5N1ZJek9GV1FodlNrbkxxcE5tcnpmMFFjajZkdExq?=
 =?utf-8?B?dE1RYUwwQ0VDNkZFWjdsa3BQWmFEdXJwdVdkdWwyWHhyVS9qN0NtZ2EwTWJL?=
 =?utf-8?B?eHNoSVQyaFZzSGNUVXhvditMVXFPQzh4M2VuM2U3NUxST2JKZDhVTzFYbUc1?=
 =?utf-8?B?Mm85MURNSmtReU5SRHhqMDBtMTM4L3Vkc3V1WjBTbEplYkJrUVZBZS9jVjVQ?=
 =?utf-8?B?czE2UUx5VnVwbFkybEh2UkpXcFNyNTUxRzFiR2JMcVN2cHJOY0p6cWhaM254?=
 =?utf-8?B?UVFiQ0w2WXBkbkRmb0dJWUFBOVFKNE13NE1mNDZHcnk0cGlSNnRTN0t2YlN5?=
 =?utf-8?B?ZHpPa1Z4ZmRnS3VLZzRsMnd5WmN3RDVIN0srK1NOdEJheTdsZjU4YVN5Q21L?=
 =?utf-8?B?TGt6NzdKc3pCWmFMMlJvVGx1M2c4RmEyN3YwWlBvcjJ5dVZ3ck9jTGh4Qk1L?=
 =?utf-8?B?NjMrZm1GMEZmRWdFeWlyNmxzbHdySi9qNDFTQThVdmNDMHV5Y21mUUFSVEZR?=
 =?utf-8?B?dkhzb2lVcDBGMnpKWWE4TnJ5OTZWQ2REcjlJQlR3MmxkK0YzR2s4aXpZeHI5?=
 =?utf-8?B?R3FFa3VaTXJKNHhXQjFQaEgrdWdCRHRTTlMrZEdRTlZiUDBOVjR2eWFidFZM?=
 =?utf-8?B?Mlp1eWUxZmlqdzFidXJIem9rTko0VEZPRHUvQ2ttQUo5dEMzclMvUXZrS0h5?=
 =?utf-8?B?akFheDA3ZTRhOTArajU3SlljSThFYWNHQ2ZFODRmblYvOSs5ZG9OS2haVkNH?=
 =?utf-8?B?VkdIeUsvUWtFbXAyYWlJMjlCcjFyeWFrUjBGd3RIRTNBSjk0VU9tbkFpUnBL?=
 =?utf-8?B?VlpzT1ovKy8yc3lldWtxOWQyLytibnV6UVhWU2RWT0x3WHZ0ZWlJSmJ0ZVQw?=
 =?utf-8?B?Mm9PMEZrNlY1dTU5bWtKMTd3NGlnR0VkaHlWdU81d01kM2pyUklkYzF2cFlN?=
 =?utf-8?B?SjNzSXJKMmZ5eHdpZXk0NG5nNEpzU1VQU2tlZGQyYUtycEt5QnV4c05ib0sr?=
 =?utf-8?B?a3hjd2xhVmlocXhCelBrR0pMTHI0c05ZR0Q4RzIxcC9CemFPWmNPanlIMk51?=
 =?utf-8?B?WlFuVzh5RlduaDU1NWxQRXpYYjBSUjdaaDc1QzdWaWZZdDNYczFhby8xZWxG?=
 =?utf-8?B?dDBSNHY3WkZxaFJaSXVKNlpORUFDOEI4NEFvRE1VUnVFa2hIYUxGT0MvWFR1?=
 =?utf-8?B?NUNSc0N5YW1zMHV2Q3lqNHJNQnIvNGR1Z0l1aS9tNHlJYjErWnErZkJuQms5?=
 =?utf-8?B?bUtxSnBncDQ2SnMxdnRPK3gzRjlSb1RtS3FHRmRDem1vQTBkbElZUDlCVFZi?=
 =?utf-8?B?L0xFanNEZGtrc0pnVGNkd1BXeVExZnFuZ2QxYWo3NHpzcEpHTkZTaXYwMlVC?=
 =?utf-8?B?MHN3RjRDYUZYVjdYcEVVM0RBYVk0TDMwcUI0UDdvYU5uZFJMSVVQZG9vemRa?=
 =?utf-8?B?WWp0TWYvTldaT3V0WTRFVzBzMkYyTTJCb1o0VGlwdUJtT3lGY0dJSzdXTDdB?=
 =?utf-8?B?S1FkWWMrQXFsWmRHKzVJS29rMXJpU0NzU1pTNGtIQU5VRVJRRWoxSTM3ZnQr?=
 =?utf-8?Q?7zlFyD?=
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: 14 Apr 2025 18:49:47.2900
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 65d35bf9-d810-4e86-b6dd-08dd7b852139
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: CY3PR12MB9580

On Wed Apr 9, 2025 at 11:29 PM BST, Denis Mukhin wrote:
> On Tuesday, April 8th, 2025 at 9:07 AM, Alejandro Vallejo <agarciav@amd.c=
om> wrote:
>
>>=20
>>=20
>> From: "Daniel P. Smith" dpsmith@apertussolutions.com
>>=20
>>=20
>> Add three properties, memory, mem-min, and mem-max, to the domain node d=
evice
>> tree parsing to define the memory allocation for a domain. All three fie=
lds are
>> expressed in kb and written as a u64 in the device tree entries.
>>=20
>> Signed-off-by: Daniel P. Smith dpsmith@apertussolutions.com
>>=20
>> Reviewed-by: Jason Andryuk jason.andryuk@amd.com
>>=20
>> ---
>> xen/arch/x86/dom0_build.c | 8 ++++++
>> xen/arch/x86/domain-builder/fdt.c | 34 ++++++++++++++++++++++++++
>> xen/arch/x86/include/asm/boot-domain.h | 4 +++
>> xen/include/xen/libfdt/libfdt-xen.h | 10 ++++++++
>> 4 files changed, 56 insertions(+)
>>=20
>> diff --git a/xen/arch/x86/dom0_build.c b/xen/arch/x86/dom0_build.c
>> index 0b467fd4a4..36fb090643 100644
>> --- a/xen/arch/x86/dom0_build.c
>> +++ b/xen/arch/x86/dom0_build.c
>> @@ -627,6 +627,14 @@ int __init construct_dom0(const struct boot_domain =
bd)
>>=20
>> process_pending_softirqs();
>>=20
>> + / If param dom0_size was not set and HL config provided memory size */
>> + if ( !get_memsize(&dom0_size, LONG_MAX) && bd->mem_pages )
>>=20
>> + dom0_size.nr_pages =3D bd->mem_pages;
>>=20
>> + if ( !get_memsize(&dom0_min_size, LONG_MAX) && bd->min_pages )
>>=20
>> + dom0_size.nr_pages =3D bd->min_pages;
>>=20
>> + if ( !get_memsize(&dom0_max_size, LONG_MAX) && bd->max_pages )
>>=20
>> + dom0_size.nr_pages =3D bd->max_pages;
>>=20
>> +
>> if ( is_hvm_domain(d) )
>> rc =3D 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-bui=
lder/fdt.c
>> index da65f6a5a0..338b4838c2 100644
>> --- a/xen/arch/x86/domain-builder/fdt.c
>> +++ b/xen/arch/x86/domain-builder/fdt.c
>> @@ -6,6 +6,7 @@
>> #include <xen/init.h>
>>=20
>> #include <xen/lib.h>
>>=20
>> #include <xen/libfdt/libfdt.h>
>>=20
>> +#include <xen/sizes.h>
>>=20
>>=20
>> #include <asm/bootinfo.h>
>>=20
>> #include <asm/guest.h>
>>=20
>> @@ -212,6 +213,39 @@ static int __init process_domain_node(
>> else
>> printk("PV\n");
>> }
>> + else if ( strncmp(prop_name, "memory", name_len) =3D=3D 0 )
>> + {
>> + uint64_t kb;
>> + if ( fdt_prop_as_u64(prop, &kb) !=3D 0 )
>> + {
>> + printk(" failed processing memory for domain %s\n", name);
>> + return -EINVAL;
>> + }
>> + bd->mem_pages =3D PFN_DOWN(kb * SZ_1K);
>
> Perhaps use shorter form of KB(kb) (KB() from include/xen/config.h)?
>
> What do you think?

Sure.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Mon Apr 14 18:59:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 18:59:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.951190.1347297 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4P1o-0006z8-78; Mon, 14 Apr 2025 18:59:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 951190.1347297; Mon, 14 Apr 2025 18:59: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 1u4P1o-0006z1-3m; Mon, 14 Apr 2025 18:59:32 +0000
Received: by outflank-mailman (input) for mailman id 951190;
 Mon, 14 Apr 2025 18: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=B3Nx=XA=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u4P1m-0006yt-8m
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 18:59:30 +0000
Received: from NAM12-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam12on2061a.outbound.protection.outlook.com
 [2a01:111:f403:2417::61a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 96ba51e4-1962-11f0-9eae-5ba50f476ded;
 Mon, 14 Apr 2025 20:59:28 +0200 (CEST)
Received: from BN9PR03CA0531.namprd03.prod.outlook.com (2603:10b6:408:131::26)
 by MN0PR12MB5882.namprd12.prod.outlook.com (2603:10b6:208:37a::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.32; Mon, 14 Apr
 2025 18:59:23 +0000
Received: from MN1PEPF0000ECDB.namprd02.prod.outlook.com
 (2603:10b6:408:131:cafe::ca) by BN9PR03CA0531.outlook.office365.com
 (2603:10b6:408:131::26) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.34 via Frontend Transport; Mon,
 14 Apr 2025 18:59:23 +0000
Received: from SATLEXMB04.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.8655.12 via Frontend Transport; Mon, 14 Apr 2025 18:59:23 +0000
Received: from localhost (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; Mon, 14 Apr
 2025 13:59:21 -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: 96ba51e4-1962-11f0-9eae-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=k3UjrMk17lg7t/iCzv1jWTPrNIew/KHnf2Y87fjq5hFyOEEoMIp1qn3kWtERM0CTQ/kK12uLmuY4Xxlrp0aaig/QlEruEuU3Do2I1vQ0justvY00evZKlDNVL+oyGVPIk7wcycicTGbIsRzzBbTV3ngNSJiqXEaWezKJpiQZ9yOvSgzIW1IMGfCa9c2AInLq/jiWUAb5yjBQzz21K1nBUNgGamNuANWJ3bHmv0XGjO2teQVxIbgUkcOH6Ew156oz6Pd+w48SxQWlXoRUoUCYq4aKGE//Dw5gSE3cBQHvhpmNI2pKumDuIVfI57s4uhkaDrBZAwfCN/G299RnZaZXWg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=U+kUEEgJlwdl3Tb1dK+FcrO+rHmP2LGO2wJVEO9Kz6M=;
 b=Pc7MJ16IWUzrpiWha1F319n56+NKyvL3UcwmE6U3oumdqZDPbvG6947rYbRFbE+KXu4VNfb0/dLx33ZLRGsUl3SJ4v3fh6bZcpdpCYJo9gLXLCxpiEYdPIqbB7MVGJoAKYP2TA+dKes4A/7ReppQVrvhHfF9M09FwexYKGzGrOWjF2POcmezamxk5AaXyFk9Xohx6S44LW6vngRdsyQBeraZENIkHpPX1A14TS/oJaDwNzPchrixo5XClOx+W/vMRgky/iStdmfN78preY5rPW4Cmsov5B9KowVkolmmscuOZpYQ9HK4AZy1x1kOIGQ/4DNtZzVDLwNcC2noG8dNRA==
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=U+kUEEgJlwdl3Tb1dK+FcrO+rHmP2LGO2wJVEO9Kz6M=;
 b=w3i7o07maquH2iAcokc8T+W8Fs0/hoLGNZX1G59rSeHyKTdtGlful2b0njwt5yFN6JxxFEnfz7bAzTqOZaEVPHiMU2AYSo4VDy9O7VqOSIA4F6Xz4v/2pctny/WS5FVwoiBrbdcXGv6+OUlVRBcyDkjMG6emEYhdwv0Hq9+WGv4=
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
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Mon, 14 Apr 2025 19:59:19 +0100
Message-ID: <D96LCIN71OHH.3CVCYBOYFRYSE@amd.com>
From: Alejandro Vallejo <agarciav@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "Daniel P. Smith" <dpsmith@apertussolutions.com>, Jason Andryuk
	<jason.andryuk@amd.com>, Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	"Stefano Stabellini" <sstabellini@kernel.org>, Michal Orzel
	<michal.orzel@amd.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Julien Grall
	<julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
	<xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v3 14/16] x86/hyperlaunch: add memory parsing to domain
 config
X-Mailer: aerc 0.20.1
References: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-15-agarciav@amd.com>
 <e78824bc-3b0a-406e-80ac-5a67b127254f@suse.com>
In-Reply-To: <e78824bc-3b0a-406e-80ac-5a67b127254f@suse.com>
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: MN1PEPF0000ECDB:EE_|MN0PR12MB5882:EE_
X-MS-Office365-Filtering-Correlation-Id: e269051c-bc63-4690-899e-08dd7b86789c
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|36860700013|1800799024|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?eWt2MUhKbG9jVUs0dFhwR0toWVhoSHVYRjU4TGRwd1Q3a1QvWVN0TW1qc3hU?=
 =?utf-8?B?NDlHUXhPNTJoTmtrdklsZzB6VE5TSWl1bXpxUVNNaTJIZUw4QlQxMktvRlZv?=
 =?utf-8?B?cVM1dXdhblJDRjk2TVhucDVvSmI3Zm15anMrd0J2a3d4Y1o5TmF1T3h4RGVZ?=
 =?utf-8?B?M3ZvNzdGMUxVUDJLQTRvUUxUcDJqWWQ1ZHAzZkV3WDQ3SGw3a0E3Y1VVazdT?=
 =?utf-8?B?UndZbWJVZVVzUXdBMkF2NHIxMW5Fd2l5MzY4KzBMN213ekliUXFUeWpCa0Qw?=
 =?utf-8?B?UW9CQStrWkx4U0J2RlZCZFA3QlQ4cWN3alpqQS9mR2I0Ny9YQW5rRVQzbGEw?=
 =?utf-8?B?VTd0enNyNTMwSW5yUDBZSHltOEdkUXowbDlCSEU3M2pFSzhzSy9qMkc1SGoy?=
 =?utf-8?B?dHlGQWZKSHpLcmNmUitiNjZVR2JHanp3OExhL1hhQ1pvOEY5ODVNYVBldEt1?=
 =?utf-8?B?UXJFNFdFTXdoeWhyK2VYeU5Tb2tFY1NzVTd1cUc5aS92M1JCdXAvZnl4bm43?=
 =?utf-8?B?eU9oWHRQUWhkbDRXMVZ3SnU4NzRPQkJ5Ym5jRUJLNDVtUUcwR0tvbk5KRklT?=
 =?utf-8?B?enNZSnkzMmlvWm9iOTdNUmtTL2ZrWHZrNzArbS9WOS9pYlpXM1JwcEpIWkFN?=
 =?utf-8?B?bmw2eDI3RVBMa0t0NHNSNmJzaDNHVUNzcmg0TzdWZm1PcFQxRWVwWGJJRENp?=
 =?utf-8?B?emI4clJzOVZ0M1pkV3hZVTdaZlRZOHpNSGozSldxT3IySlRKYmFSSUlXcnQv?=
 =?utf-8?B?eFVUcTR2Rlc1ZEdVVmR5c0V0bGVXU1AzczlmQzZOZ2owQ05qK2Q3eEd0MXUz?=
 =?utf-8?B?WmRCVFp0eXdmakJXMHh4KzVmRmVyZWFWN0haS2kzV2NZZGhLdVRTNmRxZ3JC?=
 =?utf-8?B?bkNlcmxlWC9nSU9SYnh3VlJzcVk3M0dwRjVhRTFZZml6MXN5cnVvNHBkZ1hz?=
 =?utf-8?B?cU9BZk04aEc1aG1pei8veFVIQ0lyTk90ZjMyM01Ucjg1Wis3eTF1YUtPZ1ZD?=
 =?utf-8?B?aFZnNDdFL0JBdzArOE03SnAyZnJ1TTZlbHVjZzZUek5pQnpKWUhJaFdQdkVH?=
 =?utf-8?B?VlNDRkIxVU5TNmV1MTFmRkVuK2dHb1NBS1M3MFBzQWVqSXcxbGVxWU0yM3Zu?=
 =?utf-8?B?b2IwQVJ2QkJmN2xHbGxxd1o3QjlXV3dKSVlTaFNIeTVFNGdxRGtycUVYcnBM?=
 =?utf-8?B?YThqSEdvUXhnWTRIdmV3MVB2YUowVWNjQTZ1NFJIbUpKYjh0dUNWYmNCaXVa?=
 =?utf-8?B?dG1PUUNFTmRFYXlHODA2UDY3SlVGUDdxZy9xTjE4dGp1YzVKSE1uYTA4dkFw?=
 =?utf-8?B?RWhkN2Q3UURBbm41TWpVcG0zdnZvZ2VpaXNybS84MytrNjZ2SnJLeXNtREhx?=
 =?utf-8?B?dm94OHk3UFZURGtyU1YyazdTV0ZjYzdudUJrd3NqWk9XU2NKT2d5Z21TVC9q?=
 =?utf-8?B?OEhqYzRocEtiYVUwOW9LWFZCWitkTmpMdDdHcTlqc1ZSUXFDK1puMGRhSVh6?=
 =?utf-8?B?OXlRcGx1Rm5TYWlMeGtVbExybkFua0lFZDh4STlQY3JqVHVJanJrbHJMRUNG?=
 =?utf-8?B?T2xVeUtyVGVTd09hMkVwRHU1bys4S2tyeDJnRGN4b3p1elRSWGZKVTVuajRa?=
 =?utf-8?B?TVhnWGlyMzBNSnA5RXpjaFVNTmt0cHlRbnVmS0pXbFRtZ0JnQ3BGNzhHLzBD?=
 =?utf-8?B?bkFKSUxTZE9ZTWNJOHRsWjllMy9ncmRNVnFqZ0xmcU9VY09lMEcxZ2FodVZv?=
 =?utf-8?B?bE4rVEthaDRtUGtIVGdaLzVpVHVVOFJGUTNFR2JVd3ZBYnJDYTNHamJjNEh6?=
 =?utf-8?B?RVNrOW51UU1HcWZma1oxYmRmTSsxeExnZ00zOGxkd0ZENk5XQTBzWDFnMmp6?=
 =?utf-8?B?aGhmUkFoc3dweTdMUVA2dnM2UnpJdDk3QTRUTUNpY0xNMEFaZ1VSd3JBaS9v?=
 =?utf-8?B?UWVITmlNamlQV0hEcUY2WFhUWDQ4MU5rYUhsNFZPM0VuSi94UHk2S0VoOHdJ?=
 =?utf-8?B?ck5wTG4yQ0g1QS9PL3p5YmhicGl3UW1PVjloTlZsNmRoSGZZVkZ1MVFpMXFC?=
 =?utf-8?Q?n9+PB3?=
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)(1800799024)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Apr 2025 18:59:23.5524
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: e269051c-bc63-4690-899e-08dd7b86789c
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:
	MN1PEPF0000ECDB.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN0PR12MB5882

On Thu Apr 10, 2025 at 1:03 PM BST, Jan Beulich wrote:
> On 08.04.2025 18:07, Alejandro Vallejo wrote:
>> @@ -212,6 +213,39 @@ static int __init process_domain_node(
>>              else
>>                  printk("PV\n");
>>          }
>> +        else if ( strncmp(prop_name, "memory", name_len) =3D=3D 0 )
>> +        {
>> +            uint64_t kb;
>> +            if ( fdt_prop_as_u64(prop, &kb) !=3D 0 )
>
> Nit (you know what I have to say here, and again below.)

Ack

>
>> +            {
>> +                printk("  failed processing memory for domain %s\n", na=
me);
>> +                return -EINVAL;
>
> Any reason to override fdt_prop_as_u64()'s return value here?

Mostly to avoid needing to recover the error code. I'll just do it.

>
>> +            }
>> +            bd->mem_pages =3D PFN_DOWN(kb * SZ_1K);
>> +            printk("  memory: %ld kb\n", kb);
>> +        }
>> +        else if ( strncmp(prop_name, "mem-min", name_len) =3D=3D 0 )
>> +        {
>> +            uint64_t kb;
>> +            if ( fdt_prop_as_u64(prop, &kb) !=3D 0 )
>> +            {
>> +                printk("  failed processing memory for domain %s\n", na=
me);
>> +                return -EINVAL;
>> +            }
>> +            bd->min_pages =3D PFN_DOWN(kb * SZ_1K);
>> +            printk("  min memory: %ld kb\n", kb);
>> +        }
>> +        else if ( strncmp(prop_name, "mem-max", name_len) =3D=3D 0 )
>> +        {
>> +            uint64_t kb;
>> +            if ( fdt_prop_as_u64(prop, &kb) !=3D 0 )
>> +            {
>> +                printk("  failed processing memory for domain %s\n", na=
me);
>
> All three error messages being identical doesn't help diagnosing issues.

Indeed. Will add the prop that trigger each.

>
>> --- a/xen/include/xen/libfdt/libfdt-xen.h
>> +++ b/xen/include/xen/libfdt/libfdt-xen.h
>> @@ -34,6 +34,16 @@ static inline int __init fdt_prop_as_u32(
>>      return 0;
>>  }
>> =20
>> +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;
>> +
>> +    *val =3D fdt_cell_as_u64((fdt32_t *)prop->data);
>
> Please avoid casting away const. Looks like I overlooked this in
> fdt_prop_as_u32() that was introduced by an earlier patch.

As part of v4 I moved this and fdt_prop_as_u32() earlier to patch8 and
already adjusted accordingly.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Mon Apr 14 19:07:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 19:07:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.951206.1347307 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4P9c-0001Wo-2f; Mon, 14 Apr 2025 19:07:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 951206.1347307; Mon, 14 Apr 2025 19:07: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 1u4P9b-0001Wh-Ud; Mon, 14 Apr 2025 19:07:35 +0000
Received: by outflank-mailman (input) for mailman id 951206;
 Mon, 14 Apr 2025 19:07: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=B3Nx=XA=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u4P9b-0001Wb-Bj
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 19:07:35 +0000
Received: from NAM11-CO1-obe.outbound.protection.outlook.com
 (mail-co1nam11on20609.outbound.protection.outlook.com
 [2a01:111:f403:2416::609])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b6e9eeaf-1963-11f0-9ffb-bf95429c2676;
 Mon, 14 Apr 2025 21:07:32 +0200 (CEST)
Received: from MW4PR04CA0086.namprd04.prod.outlook.com (2603:10b6:303:6b::31)
 by DM4PR12MB6158.namprd12.prod.outlook.com (2603:10b6:8:a9::20) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.35; Mon, 14 Apr
 2025 19:07:26 +0000
Received: from SA2PEPF000015C8.namprd03.prod.outlook.com
 (2603:10b6:303:6b:cafe::ed) by MW4PR04CA0086.outlook.office365.com
 (2603:10b6:303:6b::31) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.33 via Frontend Transport; Mon,
 14 Apr 2025 19:07:25 +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.8655.12 via Frontend Transport; Mon, 14 Apr 2025 19:07:25 +0000
Received: from localhost (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; Mon, 14 Apr
 2025 14:07:23 -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: b6e9eeaf-1963-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=xDVTBaYCCEK5ZhlJptVTodBsPTNo3iDIR7pVjbj0MivTIX2hoIbvOnaU9ODhRNMQbLKhY61X9VsR/6zTYLEcXT5ZPqG/SFKIo+x3ew7g58LiP6vRk/2GPIvwZxqXCNTVDARJJFWoICoUq64sDDVR5ma2FcbSup7hfVcnUiM5DAK0M1vJMo4IRieN+hSm+I4DHmayWp1TGDjm7J5X0DmfY9SbOgY0UuZh7m9iwv8Jf6XfOJ7piLw6useR7W6DiIvXzgBo4oJ91XayoW6eEDuL17hPTAb9dm7LRpbGRmLqP9bGR0UINzjf2Ml450G4N0VlZjr/aJFKxMOB5wJj2Zkayw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=oyCsLHQFCpBibuXbJ1peHhzdWTdryealwUTECrri2Wk=;
 b=MX3l7BC11lk9VIWjTRtMg2PmFFIGiWHhp5Oknwk79jRJl6ciXEtdEMBayo0heLHVCn3uT6cLb5eBnCEGZ3uRmP1lqDTmAlE2YdvTPpBdln8Y9eES3I6VHgEz9fZZNPMMidFWDbP5ILjVkqDxh9UnREAADzdbpe9mh2/6BYoSkzpvp+1dwIXP4UJ1UXU1G84qfgfbBA3hKy1cPoZ/i6uh6YaDaeQ3cxWgvKNvY4y097sjFb0+63uigT0Nf8/qLfKl9MlIC+ApjNYk3MT/uJEkNhUF3+XzCe8BaBsZvgPpCT9jjjgJKQopIrQ4i72F/NyNGW9jQ4lanCF1fLvgXnOGcA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=proton.me 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=oyCsLHQFCpBibuXbJ1peHhzdWTdryealwUTECrri2Wk=;
 b=uW5iJEkXAXeUzbxLpcVSyB83S8nDwjPnZZNfKkpteRKETODGTLjVhObkKj10wk6Zx7VqhE/71eB8hwtkQg5SU8MpuAA9D7SstyV/7za7avE/UGuKRk7s1ehe3kmTv+VM/k28zMbrhFupPIZ15ChBZE7n69jM+85P0NztkomfZ3Q=
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
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Mon, 14 Apr 2025 20:07:22 +0100
Message-ID: <D96LIOHGXKWM.3QKLDSITTYZKX@amd.com>
CC: <xen-devel@lists.xenproject.org>, "Daniel P. Smith"
	<dpsmith@apertussolutions.com>, Jason Andryuk <jason.andryuk@amd.com>, "Xenia
 Ragiadakou" <xenia.ragiadakou@amd.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Michal Orzel <michal.orzel@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>
Subject: Re: [PATCH v3 15/16] x86/hyperlaunch: add max vcpu parsing of
 hyperlaunch device tree
From: Alejandro Vallejo <agarciav@amd.com>
To: Denis Mukhin <dmkhn@proton.me>
X-Mailer: aerc 0.20.1
References: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-16-agarciav@amd.com>
 <TdrpNKrM0AYES6ERgO3fA6Z3f2DZeLdzMe63W1n0cQ7jfW5vTDUSWqENVVDcP6gbncwd3M07DSWjiYeU3mK2JG53eehLldAT9mz5m3bChY8=@proton.me>
In-Reply-To: <TdrpNKrM0AYES6ERgO3fA6Z3f2DZeLdzMe63W1n0cQ7jfW5vTDUSWqENVVDcP6gbncwd3M07DSWjiYeU3mK2JG53eehLldAT9mz5m3bChY8=@proton.me>
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: SA2PEPF000015C8:EE_|DM4PR12MB6158:EE_
X-MS-Office365-Filtering-Correlation-Id: faf8c463-7568-4809-4453-08dd7b879807
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?TjdSQUtoamkzaXg2YmNUekZnQldLQUNYenZRbnI0QjdBRldnaCtORHlJZFlo?=
 =?utf-8?B?aWREbGZWRWdVaGtRUCtHYlhrK3ZLYXVZNklqK0p2bEh0MXZVNkZJczhuQzlu?=
 =?utf-8?B?MmErSWhWRjk0eHpJcWJLK29FeDVqZGlxMmlKWEx0aWZ6QllrdDA0VTRzd2xP?=
 =?utf-8?B?alFjVEZsUWI5eU1ualNqbmxrVlhYVFZseDNWRlFJMVFyRWI4cGJmMFc0WHcy?=
 =?utf-8?B?YWlBMDRDVFZtckNtRXBPdDFQK0c3ZVFwNkdCbWdJdlBtRWJnY1lmc2hvbjFF?=
 =?utf-8?B?UWM4V0RWVDVGdXpmK2FrKzVFVmI5VHF0STA4MDFscXVOTlBnRGNoWHBxZWxv?=
 =?utf-8?B?ZVZhVjNiK1NZQk15NVM2TGJHMkhRTFc0cVlWUlRPcWpXVDczaFR2YldOcG9U?=
 =?utf-8?B?a1A0OTNFd0NTZGw5TE9ZWmwvZ3JSU0ZHNDd4TFZxTWFhM0hrUW1KeWREbWhP?=
 =?utf-8?B?aEtNQ2czKzZGL2xETkE5WjZ4T28wNzRUQVRKMFljL2o3bU93UzNRT2dFODF4?=
 =?utf-8?B?ME9tQllUTzZBVy92QmpLemQ0bjBRQXhtbWc3d3BhdmlhWXoxN01BWElnMlNH?=
 =?utf-8?B?TG93MGFSWFVnQW8rbW5rR1BPT2tidHBKUkdlVEhsaDVzdXNSS1kyZmVCbkFV?=
 =?utf-8?B?K1VpOXFzMzM4V0RaQStGUW4rcnpVZ1ErYlpsTnRYbGtsdkRHWmE3Z0xZdU5k?=
 =?utf-8?B?eHhsVE92U3dBaldlbzhDeHpUQjJIREw0aVhuYk4wK1ZsZURXZXkwZ2VENXVv?=
 =?utf-8?B?VkZlanB0a1ZHTy9GUUdOVEVEWldQTG9pQldzM2NvOWhrbXNZVFYwaEN6RSs2?=
 =?utf-8?B?emliL3RpKy9ZSVM1dVpPb3MvZTA3S1VYMytuamJxakJubk1QS2Q1ZHpINGRn?=
 =?utf-8?B?aVdvMldqR2VVZlp1M2VKd2loZklBa09xaUcyVVIwaUJPSEtMKzU3aTNrYWJv?=
 =?utf-8?B?OVRmTVd6MlhPSjQvR1FLZGdtK3NxL2d0K0U2eGZEK2lxTEpPclFTWEZES3FN?=
 =?utf-8?B?MXNDcjhJeUxVb3ZiQmEycExTUXJwdUMzaU5ET05jbmZmWmVvKzN6UlJDS0hG?=
 =?utf-8?B?TGxlRUxNL3JrY01QTGswTldmbXlsVzdhT0pyVUREY1QrbUltbThMRGx6MjZC?=
 =?utf-8?B?bk9EL3NQSW55b0U3aHllTTN1RUpDTHg5bDQ0S2pMMjBieE4zdE9VUHp2Z1BH?=
 =?utf-8?B?RURSclh6azlLSXh1S2puL2xzRnR6NlU5Y2xiM1JOb09YY0locUxodFc0ZzNj?=
 =?utf-8?B?VGlXdlpOMkJvVzNNSlNGYmxaN3lycUNhRnR4allFSWZDL2g3dmVxM0lJeUhG?=
 =?utf-8?B?SkJVNkFvamV6QmNaUHpvdnJ5UVZEMlJZUEcyQm1DQSt4d251WCtMN3l5VnZ0?=
 =?utf-8?B?OUpuOTE3QUZFNndUNVVaRWY4NURtWXVMTjNyc09mTDdkWWtWMzVrNm1lMDdi?=
 =?utf-8?B?YkFOZkJ6aVVqU0NOb2gvSGVtQ0lReFVzR2xnYmdERUN0aERIMDJKWkdicjFl?=
 =?utf-8?B?NHRSQmJ1enlUc2NXbjN4N0xLWGlrVmp1RnJRUG5BRE9TZ2F4dHkyV2MrOS9F?=
 =?utf-8?B?ZnpoYWU2OVIyQzdQR2s4YXVxQmVxeEZKK0taZHM4L0ljLzRKSTZrUE00WUR3?=
 =?utf-8?B?NjhwbVJKN1FsOE9VWFRvMnplaWxZSGhJMzJGZ1kzMEZDazI0Nm5IUUEzb3li?=
 =?utf-8?B?RFVFWkZad2VNSUxnM0FRalF5ZWdqVGFjNWZ2WW1rKzlZdmd6VHBXMC92Zi90?=
 =?utf-8?B?QmlKa1lxZEVRajdOSDE0NTdCNkVPZ0sxUTRieVUwdGZyZ0lEMi9FczBqUVJD?=
 =?utf-8?B?bHE5WEcxdFh4aFRNWUROazRNOHdwcDExZGdyc2RDYk9NQm1RK2tIQklPbGNQ?=
 =?utf-8?B?TkhpR1EvY1gvU1owZ1BoaFd6d2RTLzZQSEhqVE9pR21KRUhTMlowcFJSOUMw?=
 =?utf-8?B?bU41cEh5RnhJbmc2L1hBcTVicmNaMllBNGRPZXJITHhOZkZvbzBRdWlIYUxt?=
 =?utf-8?B?SXk0Ky9ISk96MW5LR1lnVnArVmRzU1c3VGNzcWtJK3Y3aGhjTEVkYzY1MmZX?=
 =?utf-8?Q?hmdEu1?=
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)(82310400026)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Apr 2025 19:07:25.7111
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: faf8c463-7568-4809-4453-08dd7b879807
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: DM4PR12MB6158

On Wed Apr 9, 2025 at 11:33 PM BST, Denis Mukhin wrote:
> On Tuesday, April 8th, 2025 at 9:07 AM, Alejandro Vallejo <agarciav@amd.c=
om> wrote:
>
>>=20
>>=20
>> From: "Daniel P. Smith" dpsmith@apertussolutions.com
>>=20
>>=20
>> 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.
>>=20
>> Signed-off-by: Daniel P. Smith dpsmith@apertussolutions.com
>>=20
>> Reviewed-by: Jason Andryuk jason.andryuk@amd.com
>>=20
>> ---
>> xen/arch/x86/dom0_build.c | 3 +++
>> xen/arch/x86/domain-builder/fdt.c | 11 +++++++++++
>> xen/arch/x86/include/asm/boot-domain.h | 2 ++
>> 3 files changed, 16 insertions(+)
>>=20
>> diff --git a/xen/arch/x86/dom0_build.c b/xen/arch/x86/dom0_build.c
>> index 36fb090643..7b3e31a08f 100644
>> --- a/xen/arch/x86/dom0_build.c
>> +++ b/xen/arch/x86/dom0_build.c
>> @@ -635,6 +635,9 @@ int __init construct_dom0(const struct boot_domain *=
bd)
>> if ( !get_memsize(&dom0_max_size, LONG_MAX) && bd->max_pages )
>>=20
>> dom0_size.nr_pages =3D bd->max_pages;
>>=20
>>=20
>> + if ( opt_dom0_max_vcpus_max =3D=3D UINT_MAX && bd->max_vcpus )
>>=20
>> + opt_dom0_max_vcpus_max =3D bd->max_vcpus;
>>=20
>> +
>> if ( is_hvm_domain(d) )
>> rc =3D 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-bui=
lder/fdt.c
>> index 338b4838c2..5fcb767bdd 100644
>> --- a/xen/arch/x86/domain-builder/fdt.c
>> +++ b/xen/arch/x86/domain-builder/fdt.c
>> @@ -246,6 +246,17 @@ static int __init process_domain_node(
>> bd->max_pages =3D PFN_DOWN(kb * SZ_1K);
>>=20
>> printk(" max memory: %ld kb\n", kb);
>> }
>> + else if ( strncmp(prop_name, "cpus", name_len) =3D=3D 0 )
>> + {
>> + uint32_t val =3D UINT_MAX;
>> + if ( fdt_prop_as_u32(prop, &val) !=3D 0 )
>> + {
>> + printk(" failed processing max_vcpus for domain %s\n", name);
>
> Suggest adding XENLOG_ERR to the error message.

And XENLOG_INFO to the one below.

Ack.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Mon Apr 14 19:08:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 19:08:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.951149.1347322 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4PAs-00025q-Ja; Mon, 14 Apr 2025 19:08:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 951149.1347322; Mon, 14 Apr 2025 19:08:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4PAs-00025i-G6; Mon, 14 Apr 2025 19:08:54 +0000
Received: by outflank-mailman (input) for mailman id 951149;
 Mon, 14 Apr 2025 18: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=aOmN=XA=nppct.ru=sdl@srs-se1.protection.inumbo.net>)
 id 1u4Odw-0000NA-UA
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 18:34:54 +0000
Received: from mail.nppct.ru (mail.nppct.ru [195.133.245.4])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 25321077-195f-11f0-9ffb-bf95429c2676;
 Mon, 14 Apr 2025 20:34:49 +0200 (CEST)
Received: from mail.nppct.ru (localhost [127.0.0.1])
 by mail.nppct.ru (Postfix) with ESMTP id 8FFA31C0E8B
 for <xen-devel@lists.xenproject.org>; Mon, 14 Apr 2025 21:34:38 +0300 (MSK)
Received: from mail.nppct.ru ([127.0.0.1])
 by mail.nppct.ru (mail.nppct.ru [127.0.0.1]) (amavisd-new, port 10026)
 with ESMTP id nm-4p_ZHJHya for <xen-devel@lists.xenproject.org>;
 Mon, 14 Apr 2025 21:34:34 +0300 (MSK)
Received: from localhost.localdomain (unknown [87.249.24.51])
 by mail.nppct.ru (Postfix) with ESMTPSA id 9EB5A1C08C3;
 Mon, 14 Apr 2025 21:34:15 +0300 (MSK)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 25321077-195f-11f0-9ffb-bf95429c2676
Authentication-Results: mail.nppct.ru (amavisd-new); dkim=pass (1024-bit key)
	reason="pass (just generated, assumed good)" header.d=nppct.ru
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=nppct.ru; h=
	content-transfer-encoding:mime-version:x-mailer:message-id:date
	:date:subject:subject:to:from:from; s=dkim; t=1744655674; x=
	1745519675; bh=s2YUvKONZpYv6BeESkipXTOMCM3/ZgRQk8zLNK4GcdM=; b=M
	OaTYnc/HQEO/PMwboMK+lWs/8VUDiRjPLpHBrTI0m5QUvdCVdVaHL6PpSvBrHl2e
	VbtW5TkXXKB1aM+938SKNRlF4bPYmG2QpIBRwC7X2pxzmJZCVZO43fk8Zs5XiBPP
	7Y3G33QkaVxLWCueFHo3aOPy2U9BsdtmG+rsQ/Gdc4=
X-Virus-Scanned: Debian amavisd-new at mail.nppct.ru
From: Alexey Nepomnyashih <sdl@nppct.ru>
To: Juergen Gross <jgross@suse.com>
Cc: Alexey Nepomnyashih <sdl@nppct.ru>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	"David S. Miller" <davem@davemloft.net>,
	Eric Dumazet <edumazet@google.com>,
	Jakub Kicinski <kuba@kernel.org>,
	Paolo Abeni <pabeni@redhat.com>,
	Alexei Starovoitov <ast@kernel.org>,
	Daniel Borkmann <daniel@iogearbox.net>,
	Jesper Dangaard Brouer <hawk@kernel.org>,
	John Fastabend <john.fastabend@gmail.com>,
	xen-devel@lists.xenproject.org,
	netdev@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	bpf@vger.kernel.org,
	lvc-project@linuxtesting.org,
	stable@vger.kernel.org
Subject: [PATCH] xen-netfront: handle NULL returned by xdp_convert_buff_to_frame()
Date: Mon, 14 Apr 2025 18:34:01 +0000
Message-ID: <20250414183403.265943-1-sdl@nppct.ru>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The function xdp_convert_buff_to_frame() may return NULL if it fails
to correctly convert the XDP buffer into an XDP frame due to memory
constraints, internal errors, or invalid data. Failing to check for NULL
may lead to a NULL pointer dereference if the result is used later in
processing, potentially causing crashes, data corruption, or undefined
behavior.

Found by Linux Verification Center (linuxtesting.org) with SVACE.

Cc: stable@vger.kernel.org # v5.9+
Fixes: 6c5aa6fc4def ("xen networking: add basic XDP support for xen-netfront")
Signed-off-by: Alexey Nepomnyashih <sdl@nppct.ru>
---
 drivers/net/xen-netfront.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/net/xen-netfront.c b/drivers/net/xen-netfront.c
index 8425226c09f0..e99561de3cda 100644
--- a/drivers/net/xen-netfront.c
+++ b/drivers/net/xen-netfront.c
@@ -987,6 +987,10 @@ static u32 xennet_run_xdp(struct netfront_queue *queue, struct page *pdata,
 	case XDP_TX:
 		get_page(pdata);
 		xdpf = xdp_convert_buff_to_frame(xdp);
+		if (unlikely(!xdpf)) {
+			trace_xdp_exception(queue->info->netdev, prog, act);
+			break;
+		}
 		err = xennet_xdp_xmit(queue->info->netdev, 1, &xdpf, 0);
 		if (unlikely(!err))
 			xdp_return_frame_rx_napi(xdpf);
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Mon Apr 14 19:08:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 19:08:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.950969.1347317 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4PAs-00022f-BR; Mon, 14 Apr 2025 19:08:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 950969.1347317; Mon, 14 Apr 2025 19:08:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4PAs-00022Y-7t; Mon, 14 Apr 2025 19:08:54 +0000
Received: by outflank-mailman (input) for mailman id 950969;
 Mon, 14 Apr 2025 17: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=rghC=XA=gmail.com=francescolavra.fl@srs-se1.protection.inumbo.net>)
 id 1u4NMw-0006cg-US
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 17:13:15 +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 bfc1808e-1953-11f0-9eae-5ba50f476ded;
 Mon, 14 Apr 2025 19:13:14 +0200 (CEST)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-43edb40f357so39128505e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 14 Apr 2025 10:13:14 -0700 (PDT)
Received: from ?IPv6:2001:b07:5d29:f42d:74f6:abb7:53c9:817c?
 ([2001:b07:5d29:f42d:74f6:abb7:53c9:817c])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43f204c500bsm191180875e9.0.2025.04.14.10.13.10
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 14 Apr 2025 10:13: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: bfc1808e-1953-11f0-9eae-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1744650793; x=1745255593; darn=lists.xenproject.org;
        h=mime-version:user-agent:content-transfer-encoding:in-reply-to:date
         :cc:to:from:subject:message-id:from:to:cc:subject:date:message-id
         :reply-to;
        bh=AhLhCv09lRa1OLV+bmnI0sicXwTDVpYEF9Itb4YCx/Y=;
        b=O3OHAtCaMkPn20hIvxWUWumklbC1k4Tpb5SGk1WrH3tAB2fVpOefuvROSkx2soZ1Qy
         q8ETJ1YL+n4mdB1bXC7Ifcaol8rnZJsUl33m4J4w8/s44wGbGs+Hwf+rnPHP4a/GWr5v
         HLaF2Z66wEqrDRVqIP0rtd4onE6R7ba9qoRXBocrOb88hMNVkI4ihTAwct8/aXM1ybia
         KgT8vGuTKm5TLZY3U2Z1cH8dx90Up+DZcpEKH7kPQ9IoDUHaSH+McxoxJWKu8PnwFU4E
         eY9jLDsf+lRMKKBsMhZIAc7o4INVoHwF1A4mYtZhpl6mkJUZCOwdz/IhatmTtGE3OkC7
         s6yg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744650793; x=1745255593;
        h=mime-version:user-agent:content-transfer-encoding:in-reply-to:date
         :cc:to:from:subject:message-id:x-gm-message-state:from:to:cc:subject
         :date:message-id:reply-to;
        bh=AhLhCv09lRa1OLV+bmnI0sicXwTDVpYEF9Itb4YCx/Y=;
        b=NaYhgxSawpkQmFsfWY7BWCQUMpqNEHgLAaKMoqeFVpy9gt44Fl1jvLyKT315dJZrK5
         nHLMJKKp5z4w1bsR/EncYnlhrWsD3VlWFeb2HenT62+/BZcNUp1KoIsP0Z+5xBgt5VNj
         hBfCmBFZENimmmjx5FO+pGTCct6XCjnKbMWqSm3auN+0Exk1O0ww94eY5D8dLura0Xd1
         Q/bgsV+6+ViEH4b7VlGWbrwE9cPqVmy5E/HOB/2CMf5UHOwIa6IryY5Jk4CAdTac1I8Y
         +g5R143Xcdo8opmCrrCXrtwhoQBioRR2d2KFoKXQwU+BE4D1cDqPkAtV5D4Gvv1BM/Nv
         NL6w==
X-Forwarded-Encrypted: i=1; AJvYcCVoffCMmWJUEJ4TRxF7TUYLOUY7msmlJzIsqq3pY1Ew/c89K45xztJszUD+Bo5yTugz90+91yt8R1c=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwVvUeX/l5LygwkXZM0Lh3cu1VxWJqH2MY+NRMT3r2nNpi1a8Pw
	DabYe1iGWGlHnyfjjqkkIHe0WBPcgM8PgwHhnL2ONv0WRyYBGRTb
X-Gm-Gg: ASbGncvFVW/R4up7E+OUxOR3YC4AxTz2fL2mtMc1kkb9ibskw8l8X2Ps8nnW0V6DbgY
	GFZ0KTTYZEC0BvDy5V2ZEvmn+rl1ColKic/2iP+1e54a/i4ZhT1Bs5aj6YdWsHR33loYKTShNAQ
	Lh0mOeBfdOwn+aUYm6I21/nUp3IOiWadbYDPwQEWknGPufR3sLzxNgMEjdW3AJm4E5E/4cErpjn
	Ql9qZjB04zlSiPR4RF5qV+0sSTMueCPzdHK58MVYpeztTszFqZkAnkIhOkigQDI+lfpDrgjuliM
	AZ2s709naDqhMI21Qtqz2iiuS1Tl4CkVt6PPJ1alUSuvYFYdpSeLWZdJLl/zcIALnDwP0nvwDDW
	n2S4/HRPc0hXhYXmT3wJJbg==
X-Google-Smtp-Source: AGHT+IFaPusiZQT0QiFcyLJp0TXK65g3+z16rgMNv9l2dKvCZ0RLPJLCBzoBrYTr6CV/HfnsWx9kLw==
X-Received: by 2002:a05:600c:8519:b0:43d:300f:fa51 with SMTP id 5b1f17b1804b1-43f3a93ebb3mr115773795e9.9.1744650792986;
        Mon, 14 Apr 2025 10:13:12 -0700 (PDT)
Message-ID: <0f4f2ed70829fffb2eb816e34e26be22681705a5.camel@gmail.com>
Subject: Re: [RFC PATCH v1 13/15] x86/msr: Use the alternatives mechanism to
 read MSR
From: Francesco Lavra <francescolavra.fl@gmail.com>
To: xin@zytor.com
Cc: acme@kernel.org, adrian.hunter@intel.com, ajay.kaher@broadcom.com, 
 alexander.shishkin@linux.intel.com, alexey.amakhalov@broadcom.com, 
 andrew.cooper3@citrix.com, bcm-kernel-feedback-list@broadcom.com, 
 boris.ostrovsky@oracle.com, bp@alien8.de, bpf@vger.kernel.org, 
 dave.hansen@linux.intel.com, decui@microsoft.com, haiyangz@microsoft.com, 
 hpa@zytor.com, irogers@google.com, jgross@suse.com, jolsa@kernel.org, 
 kan.liang@linux.intel.com, kvm@vger.kernel.org, kys@microsoft.com, 
 linux-edac@vger.kernel.org, linux-hyperv@vger.kernel.org, 
 linux-ide@vger.kernel.org, linux-kernel@vger.kernel.org, 
 linux-perf-users@vger.kernel.org, linux-pm@vger.kernel.org,
 llvm@lists.linux.dev,  luto@kernel.org, mark.rutland@arm.com,
 mingo@redhat.com, namhyung@kernel.org,  pbonzini@redhat.com,
 peterz@infradead.org, seanjc@google.com, tglx@linutronix.de, 
 tony.luck@intel.com, virtualization@lists.linux.dev, vkuznets@redhat.com, 
 wei.liu@kernel.org, x86@kernel.org, xen-devel@lists.xenproject.org
Date: Mon, 14 Apr 2025 19:13:09 +0200
In-Reply-To: <20250331082251.3171276-14-xin@zytor.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.46.4-2 
MIME-Version: 1.0

On 2025-03-31 at 8:22, Xin Li (Intel) wrote:
> diff --git a/arch/x86/xen/xen-asm.S b/arch/x86/xen/xen-asm.S
> index e672632b1cc0..6e7a9daa03d4 100644
> --- a/arch/x86/xen/xen-asm.S
> +++ b/arch/x86/xen/xen-asm.S
> @@ -399,3 +399,37 @@ SYM_CODE_END(xen_entry_SYSCALL_compat)
>  	RET
>  SYM_FUNC_END(asm_xen_write_msr)
>  EXPORT_SYMBOL_GPL(asm_xen_write_msr)
> +
> +/*
> + * The prototype of the Xen C code:
> + * 	struct { u64 val, bool done } xen_do_read_msr(u32 msr)
> + */
> +SYM_FUNC_START(asm_xen_read_msr)
> +	ENDBR
> +	FRAME_BEGIN
> +	XEN_SAVE_CALLEE_REGS_FOR_MSR
> +	mov %ecx, %edi		/* MSR number */
> +	call xen_do_read_msr
> +	test %dl, %dl		/* %dl=3D1, i.e., ZF=3D0, meaning
> successfully done */
> +	XEN_RESTORE_CALLEE_REGS_FOR_MSR
> +	jnz 2f
> +
> +1:	rdmsr
> +	_ASM_EXTABLE_FUNC_REWIND(1b, -5, FRAME_OFFSET /
> (BITS_PER_LONG / 8))
> +	shl $0x20, %rdx
> +	or %rdx, %rax
> +	/*
> +	 * The top of the stack points directly at the return
> address;
> +	 * back up by 5 bytes from the return address.
> +	 */

This works only if this function has been called directly (e.g. via
`call asm_xen_write_msr`), but doesn't work with alternative call types
(like indirect calls). Not sure why one might want to use an indirect
call to invoke asm_xen_write_msr, but this creates a hidden coupling
between caller and callee.
I don't have a suggestion on how to get rid of this coupling, other
than setting ipdelta in _ASM_EXTABLE_FUNC_REWIND() to 0 and adjusting
the _ASM_EXTABLE_TYPE entries at the call sites to consider the
instruction that follows the function call (instead of the call
instruction) as the faulting instruction (which seems pretty ugly, at
least because what follows the function call could be an instruction
that might itself fault). But you may want to make this caveat explicit
in the comment.


From xen-devel-bounces@lists.xenproject.org Mon Apr 14 19:09:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 19:09:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.951228.1347337 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4PBD-0002s2-SB; Mon, 14 Apr 2025 19:09:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 951228.1347337; Mon, 14 Apr 2025 19:09: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 1u4PBD-0002rs-PC; Mon, 14 Apr 2025 19:09:15 +0000
Received: by outflank-mailman (input) for mailman id 951228;
 Mon, 14 Apr 2025 19:09: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=32Qc=XA=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1u4PBC-0002ZC-1O
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 19:09:14 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f363b820-1963-11f0-9eae-5ba50f476ded;
 Mon, 14 Apr 2025 21:09:12 +0200 (CEST)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id ADCD34EE3C14;
 Mon, 14 Apr 2025 21:09:11 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f363b820-1963-11f0-9eae-5ba50f476ded
Authentication-Results: bugseng.com; arc=none smtp.remote-ip=162.55.131.47
ARC-Seal: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; cv=none; t=1744657751;
	b=DEEUJizZ1LpqiHDWEfCdkn5b0ma6TCTmdB37RV/7MSwV1pOWwgt0G7RDQzfsx97k4niF
	 r42KqYPz9/IXVNh5rW0cLRQPI52eu7yzfr2qo6fM5GDVEs1paGx1mWz2zYLmlbhF5CQSv
	 yul9heuL8pJOrrBqwnDn6VbXtOzypobTATBy0H19EML+UCf8s8CkbVM9EVORdhYZp0UiQ
	 JyMpEtUcYS71ncHakg6x9/chjQ4OHu1lW6Tmb9PckasfeYrCSj6j389jgCtzu4Qa9PE73
	 7nnSFkF07ycUjFg7AIXyN4fsUBA3d4UkAanIOK3mY9q/GNNTefNGtpIOtdjigdh1DSSQv
	 Ehteim3bxcPH8Rx/pnddPV8G3+o3y8MHtXWeRY8vcTU/exNmCI/fDmGqrty1p1o6aZPuJ
	 3R6f99vwBqXLPC0fVuyq6eTIYklUgF0OG/5+JLPAeyqar1vWh06vvnicq7I5DB/dGtznP
	 wmGsjgK6J3jKCrFgqrD6Qbf3xraBCu/lbw9dFMmCY5AKwPFZSVLAT8QE2HlLl4nzyCdjh
	 MbEQx1TKz1aL46hZ1mFWmWCDMKfFVMKtMrR0mG/jWYnFcajs1ceZqeovvuPN4rUw3Rc57
	 2OCMPTImaoJTYLdQC6s/Pa5FTwYY4+Nh8IkuWtj11Va9iRO1hLJjzgO1SRsKZck=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1744657751;
	h=DKIM-Signature:MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:
	 References:Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=obLVzBishn44rrIqlR8qQtY8ZY5QviDNYe9TAS8H07I=;
	b=m0BrZGig+SDdWgV3E92xSsUvdWzWzfxaT6AIuFG9G2N8IdJNpMQ862aisCI3sd5eIeNa
	 TXIg2gjQG6voaWpspPA17PquO4bj6I/DJaRZx6S/f7kY8fN4vbaYSSw1mJj8D4yDkVq7d
	 r9ClE9eUOIPj7/08wgd3xRvRO9mb3+0BOguCePo8/qP2016lAzP7z5nGtrU39iiyTEt9R
	 V4Ud1jyau7zmoMaPgaWFo6mXYo/WCJBspuQXL+y2dQ1c+P/MshtH8+EL2rtVdhHHBanod
	 Q85k4DT2SU/g1VRwCsHnOeBJZHmvy3QTcsErbzYOcIkcvPEfzVDfOoi4x4SilJ4K1rQhE
	 phSNsRDBFy2Z/xTrYlZXeKHwelTSmVbx6YUwiJ0LnWbiDcdW32OZoPEFAU9vCYq5S4S1P
	 nQvGrY1eKmUVPHDfQ78gd2MgYh6zc2L/Gc8f7eIAyUD7fEFIp9qj8KT1HART9+H86aTWM
	 PBDiVBDGvyr6QSJYX1YSUoDfJP1hqhF3iqVE/8erHtM3kArrAXyJ6DdOrPZ3V1MidMhR1
	 H6pIhia6di1XszUO/LTUfcHNChLyfZUnbQHWXxASm/bbWRhFYE+6rM/BuNFJB2zVDDoMA
	 Xi83y4ozjv0AaGeMG56e0nZT00Nn1JHv0KSwlEYrqYaIZEOospFY51vQVUXhIwI=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1744657751; bh=zHqx5XqrXub69fFu0ibfCDExIyovSoUMYjXFUxNl16I=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=cRujBOvsy3cciOgpyK8AlbzlGICNjiwm+O+d+MOrut/XY0DpDg+dNpn9xYndBx0JN
	 vltcR5EP3NmQ5ENc1M51OFdLVfkUvMSkb8Rupwbpfn/tM582GbUYKUuVlNgbFnRjoj
	 eW1AJTN6FZD2DtkWNbuUjfo/S8Kz/vSFnuviooG/BR7O/SzbPXkz6M99YJpBaPOKvG
	 JIcRP8FXJ5SEOAlup/HbuOvCkk27mXpthu5wqdfE2NwKmUEftnYc+kwetvHJYx+/Xt
	 NqrsKUEc1eRrb6bBqwBfj9wLLtbTfsTmZKX4OuH41pugKGiPHMsOct6Zy6vAaeQrPY
	 AL1emHux+RAqg==
MIME-Version: 1.0
Date: Mon, 14 Apr 2025 21:09:11 +0200
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Alejandro Vallejo <agarciav@amd.com>, Jason Andryuk
 <jason.andryuk@amd.com>, Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Michal Orzel
 <michal.orzel@amd.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 xen-devel@lists.xenproject.org, consulting@bugseng.com
Subject: Re: [PATCH v3 08/16] x86/hyperlaunch: Add helpers to locate multiboot
 modules
In-Reply-To: <3d2aa870-a1cb-4e33-841d-aee7b6b6db83@suse.com>
References: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-9-agarciav@amd.com>
 <fe282aa0-fe2d-49b8-a2aa-325c9825304b@suse.com>
 <D96EI9O4XII2.195QNQNT1T3FG@amd.com>
 <3d2aa870-a1cb-4e33-841d-aee7b6b6db83@suse.com>
Message-ID: <a9bc6ee3736774558301dda06fb959a0@bugseng.com>
X-Sender: nicola.vetrini@bugseng.com
Organization: BUGSENG s.r.l.
Content-Type: text/plain; charset=US-ASCII;
 format=flowed
Content-Transfer-Encoding: 7bit

On 2025-04-14 17:05, Jan Beulich wrote:
> On 14.04.2025 15:37, Alejandro Vallejo wrote:
>> On Thu Apr 10, 2025 at 11:42 AM BST, Jan Beulich wrote:
>>> On 08.04.2025 18:07, Alejandro Vallejo wrote:
>>>> +/*
>>>> + * Locate a multiboot module given its node offset in the FDT.
>>>> + *
>>>> + * The module location may be given via either FDT property:
>>>> + *     * reg = <address, size>
>>>> + *         * Mutates `bi` to append the module.
>>>> + *     * module-index = <idx>
>>>> + *         * Leaves `bi` unchanged.
>>>> + *
>>>> + * @param fdt           Pointer to the full FDT.
>>>> + * @param node          Offset for the module node.
>>>> + * @param address_cells Number of 4-octet cells that make up an 
>>>> "address".
>>>> + * @param size_cells    Number of 4-octet cells that make up a 
>>>> "size".
>>>> + * @param bi[inout]     Xen's representation of the boot 
>>>> parameters.
>>>> + * @return              -EINVAL on malformed nodes, otherwise
>>>> + *                      index inside `bi->mods`
>>>> + */
>>>> +int __init fdt_read_multiboot_module(const void *fdt, int node,
>>>> +                                     int address_cells, int 
>>>> size_cells,
>>>> +                                     struct boot_info *bi)
>>> 
>>> Functions without callers and non-static ones without declarations 
>>> are
>>> disliked by Misra.
>> 
>> Can't do much about it if I want them to stand alone in a single 
>> patch.
>> Otherwise the following ones become quite unwieldy to look at. All I 
>> can
>> say is that this function becomes static and with a caller on the next
>> patch.
> 
> Which means you need to touch this again anyway. Perhaps we need a 
> Misra
> deviation for __maybe_unused functions / data, in which case you could
> use that here and strip it along with making the function static. 
> Cc-ing
> Bugseng folks.
> 

There is already an exception for __maybe_unused on labels (Rule 2.6). 
In principle it could be easily extended to encompass unused functions 
(which are verified by another rule), with a suitable rationale.

>>>> +    /* Otherwise location given as a `reg` property. */
>>>> +    prop = fdt_get_property(fdt, node, "reg", NULL);
>>>> +
>>>> +    if ( !prop )
>>>> +    {
>>>> +        printk("  No location for multiboot,module\n");
>>>> +        return -EINVAL;
>>>> +    }
>>>> +    if ( fdt_get_property(fdt, node, "module-index", NULL) )
>>>> +    {
>>>> +        printk("  Location of multiboot,module defined multiple 
>>>> times\n");
>>>> +        return -EINVAL;
>>>> +    }
>>>> +
>>>> +    ret = read_fdt_prop_as_reg(prop, address_cells, size_cells, 
>>>> &addr, &size);
>>>> +
>>>> +    if ( ret < 0 )
>>>> +    {
>>>> +        printk("  Failed reading reg for multiboot,module\n");
>>>> +        return -EINVAL;
>>>> +    }
>>>> +
>>>> +    idx = bi->nr_modules + 1;
>>> 
>>> This at least looks like an off-by-one. If the addition of 1 is 
>>> really
>>> intended, I think it needs commenting on.
>> 
>> Seems to be, yes. The underlying array is a bit bizarre. It's sizes as
>> MAX_NR_BOOTMODS + 1, with the first one being the DTB itself. I guess
>> the intent was to take it into account, but bi->nr_modules is
>> initialised to the number of multiboot modules, so it SHOULD be 
>> already
>> taking it into account.
>> 
>> Also, the logic for bounds checking seems... off (because of the + 1 I
>> mentioned before). Or at least confusing, so I've moved to using
>> ARRAY_SIZE(bi->mods) rather than explicitly comparing against
>> MAX_NR_BOOTMODS.
>> 
>> The array is MAX_NR_BOOTMODS + 1 in length, so it's just more 
>> cognitive
>> load than I'm comfortable with.
> 
> If I'm not mistaken the +1 is inherited from the modules array we had 
> in
> the past, where we wanted 1 extra slot for Xen itself. Hence before you
> move to using ARRAY_SIZE() everywhere it needs to really be clear what
> the +1 here is used for.
> 
>>>> --- a/xen/include/xen/libfdt/libfdt-xen.h
>>>> +++ b/xen/include/xen/libfdt/libfdt-xen.h
>>>> @@ -13,6 +13,63 @@kkk
>>>> 
>>>>  #include <xen/libfdt/libfdt.h>
>>>> 
>>>> +static inline int __init fdt_cell_as_u32(const fdt32_t *cell)
>>> 
>>> Why plain int here, but ...
>>> 
>>>> +{
>>>> +    return fdt32_to_cpu(*cell);
>>>> +}
>>>> +
>>>> +static inline uint64_t  __init fdt_cell_as_u64(const fdt32_t *cell)
>>> 
>>> ... a fixed-width and unsigned type here? Question is whether the 
>>> former
>>> helper is really warranted.
>>> 
>>> Also nit: Stray double blank.
>>> 
>>>> +{
>>>> +    return ((uint64_t)fdt32_to_cpu(cell[0]) << 32) | 
>>>> fdt32_to_cpu(cell[1]);
>>> 
>>> That is - uniformly big endian?
>> 
>> These helpers are disappearing, so it doesn't matter. This is 
>> basically
>> an open coded:
>> 
>>   fdt64_to_cpu(*(const fdt64_t *)fdt32)
>> 
>> And, yes. DTBs are standardised as having big-endian properties, for
>> better or worse :/
>> 
>>> 
>>>> +}
>>> 
>>> Marking such relatively generic inline functions __init is also 
>>> somewhat
>>> risky.
>> 
>> They were originally in domain-builder/fdt.c and moved here as a 
>> result
>> of a request to have them on libfdt. libfdt proved to be somewhat
>> annoying because it would be hard to distinguish accessors for the
>> flattened and the unflattened tree.
>> 
>> I'd personally have them in domain-builder instead, where they are 
>> used.
>> Should they be needed somewhere else, we can always fator them out
>> somewhere else.
>> 
>> Thoughts?
> 
> As long as they're needed only by domain-builder, it's probably fine to 
> have
> them just there.
> 
> Jan

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


From xen-devel-bounces@lists.xenproject.org Mon Apr 14 19:12:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 19:12:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.951251.1347347 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4PEM-0004uu-Er; Mon, 14 Apr 2025 19:12:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 951251.1347347; Mon, 14 Apr 2025 19:12: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 1u4PEM-0004un-CA; Mon, 14 Apr 2025 19:12:30 +0000
Received: by outflank-mailman (input) for mailman id 951251;
 Mon, 14 Apr 2025 19:12: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=B3Nx=XA=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u4PEL-0004uh-7n
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 19:12:29 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on2062a.outbound.protection.outlook.com
 [2a01:111:f403:2412::62a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 665782d2-1964-11f0-9ffb-bf95429c2676;
 Mon, 14 Apr 2025 21:12:26 +0200 (CEST)
Received: from DM6PR11CA0033.namprd11.prod.outlook.com (2603:10b6:5:190::46)
 by CY5PR12MB6383.namprd12.prod.outlook.com (2603:10b6:930:3d::12) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.34; Mon, 14 Apr
 2025 19:12:20 +0000
Received: from DS3PEPF000099E1.namprd04.prod.outlook.com
 (2603:10b6:5:190:cafe::7e) by DM6PR11CA0033.outlook.office365.com
 (2603:10b6:5:190::46) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.34 via Frontend Transport; Mon,
 14 Apr 2025 19:12:20 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 DS3PEPF000099E1.mail.protection.outlook.com (10.167.17.196) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Mon, 14 Apr 2025 19:12:20 +0000
Received: from localhost (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; Mon, 14 Apr
 2025 14:12:18 -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: 665782d2-1964-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=LxrJnQ4FGTlpR5o25I+oefC87vpXeBdesxfIYfD/kscRV5S+tB5ti0dMV2BieiEYLsRSAeK6X5uhjRG63bMwZrgZaKMePxwE1Iz4C2EeQp/tfMYJh4fi3KvUXlIrWspuhedRMkoC/dd1bEVq1oAsMDgBZbS/cVvcRV6SyfTeWCP6qfq/XyWszIsbIUY2fxng5V1eC6tsCYrIC7CyD/P4yPJ07s4x1gFW6IS/YnHAWBvyIUzvkgds2RK/K5bSIV7S7FZticGmcU8ShnHDmGqsFl0qFOdTuDUk3jWRhX6PDhaUkDmaP9O9nmCjXqsL92s/gDNg8KLKHMHDtLLL6mmDvw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=3/dBCQNIEY1Zf5BiUnfHn+bavnDnFJgkzYF7mcfJGSs=;
 b=plDJ8nfhUsL/c6quk3UlUXt6sKiD49KqUxeOhOexEoL/dPZrdf7S+dZXeFLuk7uMXcM2n7ASJERiJrTiBofDk0QrVj4uC/kkUXhUkZarNXGGSYPPYWvR+sKQpmttC4PNsghhil+Uw6pR90LQ/9sap0aYmZjrLogEeV1NZUtGdWVTTb8UrwO/0xCu7vcjOYg1EDTbTcjiLBODkAJ65BaWxrsK305ANSwmsjwDYjk9sF8DOAzGVEOMJ5sg6kdYIfQdbr1opsm8B5ZRplg7xl29rR/lLzK3hU5t32BDBGX/9FbjC0DGuHK12/K5SHF016QubjfLQB2WWlpm2VHLoIQegw==
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=3/dBCQNIEY1Zf5BiUnfHn+bavnDnFJgkzYF7mcfJGSs=;
 b=1qhFOGDOE2BlAUpeJQcaMoUMap9D9v/iymOtJAMEKTJ6DKZ3fjLseutLTkqB+bJhcC/qzqMG51NUrWV8Boa9ToLeLQvElGI6WmvGVOMthrWqwlAPnUmh54lLaqDWFQ3cHqX/6gahUbXH3g8FVLnwbS0kDqh1zrL/w+qtriv/jkY=
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
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Mon, 14 Apr 2025 20:12:17 +0100
Message-ID: <D96LMFYIE1I7.HKMK9UZR2KIV@amd.com>
CC: "Daniel P. Smith" <dpsmith@apertussolutions.com>, Jason Andryuk
	<jason.andryuk@amd.com>, Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	"Stefano Stabellini" <sstabellini@kernel.org>, Michal Orzel
	<michal.orzel@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>
Subject: Re: [PATCH v3 15/16] x86/hyperlaunch: add max vcpu parsing of
 hyperlaunch device tree
From: Alejandro Vallejo <agarciav@amd.com>
To: Jan Beulich <jbeulich@suse.com>
X-Mailer: aerc 0.20.1
References: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-16-agarciav@amd.com>
 <c1e5af91-8f84-458d-a9b8-ab9758b5cbce@suse.com>
In-Reply-To: <c1e5af91-8f84-458d-a9b8-ab9758b5cbce@suse.com>
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: DS3PEPF000099E1:EE_|CY5PR12MB6383:EE_
X-MS-Office365-Filtering-Correlation-Id: eee1f85d-51a3-4d58-6bfe-08dd7b8847ae
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?dTlpZkxLb3RxZXd6azFLRm8zSUVhcGVKeittdzRKYXVYSXd6bk1CTFZzMWZX?=
 =?utf-8?B?SUlCQXEwS0E0dmhnSU1ZTW0vVkc0YlFkSTFDanU0bnJ1OEVNZjJEWk1WeUhY?=
 =?utf-8?B?YWRCU0dwZHkzMTQyQWtvY21Pcm9FZWJyS0grYUhYZU5rQnc2a09zdVR5NTdq?=
 =?utf-8?B?Wi9zMllVYU01Wm5PRzRNdTVTUFVyODFjVTRITjFOM1ZVKyt6K2lFcXd1enhp?=
 =?utf-8?B?WW0zMzArWkR4dTVOZXo5MmRvSXVoMFF4azhUL2dyUmVRd09PMjl5Sjl3MVE2?=
 =?utf-8?B?MkF4cnY2NUg3Z2d0RnVPQVVyYldDNnlYRkx5K2ZHYXRSdHRsUC9MalhkQktp?=
 =?utf-8?B?NW5Wc1Zxa0xVREFKak9GNjJuNzBQZng5NkVMTGRLSk9NRXlFUk1hNW5oSzN4?=
 =?utf-8?B?OHAvZVRaNVJsMVBGUDRpNVlQVHNWQldVRVlNMmIreEduT2g3aGx6aFVCL2NQ?=
 =?utf-8?B?MUhhQytUdElSTHhiSTExL1dMOW1pY0k4L1pKRWl2UUFGbWdpNFpQczNZRmZm?=
 =?utf-8?B?MGE1N29HU2MxSlUwUHgxenVlUGkzejVEa04ybTRKZlczb09qSnk1VTV5cy9E?=
 =?utf-8?B?QU5BbVhONUZoUWRXVGlnbHB1djkzaDRVZ0Z1WVdZLzR6b2NoNFlJQUp5SlFm?=
 =?utf-8?B?SFVCeGxZMEZXMUpmOGtaQ3ROOVl4OXcvQ3NyakJZNlE0RnE5SU95ZTFBK3Jq?=
 =?utf-8?B?enhROFZTSWtBTnIrc1hKMW1RSkN1dHBVWTQrM3F6bEhSSXRJSVlia0FMWTBo?=
 =?utf-8?B?WXZlTHVmZTBVZ0ZxZEVQWVhCa1Y2M3VsWE1EZUgvajJxZUgyRStzajhLTmxh?=
 =?utf-8?B?aUgzcGtXUVk3Z0hpVFJ2UXhsYXBpbjIrWTlIQUNpc0NqUnd5WGVtVnZzSjRi?=
 =?utf-8?B?Q3dEbzJWWnNPOGdEdDY2bUZOeDRNZUZIa051MU1rK3FEWE53ZndwcUd1NU1U?=
 =?utf-8?B?SFpyaHpSbjZRTk90dzVoeEQwTW9RSWpKbnZVS2lFRGlERysrQVZCZWc2YUtH?=
 =?utf-8?B?ckNpMGR2c1VNNmVCa3ZpOVNOMi9tQlBYdU9QVkRLY3JJNTdOSWlYd3ZuYkgv?=
 =?utf-8?B?eFF6MUd3VzFUSHZHM1JJUy9rSTNtSFlCYXRQR3N0YlhCaHZRL1U1d0VYK3FQ?=
 =?utf-8?B?ZHB1ZEtsRnR6L3FQMVRMOFhzY3VkTWtEcmhkNWtqMDZTZ3FIRmtJa2tqRi91?=
 =?utf-8?B?MmRkd2NUcHUyMTZCam9mbGVjcFZvZ0svU0NZZnBWY0pTUUxCUnUxcTZuM2c2?=
 =?utf-8?B?QWhGaWQreVU2b2QwY3kzWWZVNEN6ZkpTUGs1aXRJcFErdWVqVm9ncVpLUERY?=
 =?utf-8?B?NUx0NlFRTHVDU3BpUFQwU0ZyOTdra1NHUXgrcndrcW9tNGZOUmVHcmpscDhi?=
 =?utf-8?B?TDYyYzlzUUVsVnc0aXc4Qks2dW01NzVaREFUV0lWZkZGNHpIUmhUYkRpVjVW?=
 =?utf-8?B?SWlJYndyWHpqTzdlUmxoaGtVTnc1THhRREJWcFRLN1NnR0JEU2dtbjMwWVhD?=
 =?utf-8?B?Z09DRjY1ZGpkbFlBSHhHOGQ3RnN6WGhhUGZQMWNEZWJKczVzeExkWE9TRzFW?=
 =?utf-8?B?Z0xMUkY2RDVoUkVMa1B1elJEK0JycDFXQ3pNMVl5ZXFPWUZScm96V0RzRlhO?=
 =?utf-8?B?K0VONDhMbW5FRmYzTFA2d056RFAwNHRtZDR2NHZ2UWgxYVFaU2gvbXk2bk1o?=
 =?utf-8?B?d3JFN1UwV3c1bWUvNkdwTW1JV1MxMXdRV2wzdDVSNldSbXp4cVllM0ZaU2hr?=
 =?utf-8?B?ZzlGS3VRUDB2L1Y5cGRLbDUrOW90WmRhTWVIWlh2VWVSdEtQMTQyNVowU3B6?=
 =?utf-8?B?WU9QK2NHWXUrUzI4cDVMdFRtaHpqcE5Wa2RBa1lUaENPYlBsclcxbTl6YSs5?=
 =?utf-8?B?VGdaYURobFlnMzBUR3ZoTEhjTTJ6ODR3eWhhSmJKYXIxZEs4dEk4THZmUldU?=
 =?utf-8?B?NTFhMTRkUCtWcmRxZjh6d0JjQThNbDdXRVBuTlY0SkpkaUJsdGhGWGUxaUZI?=
 =?utf-8?B?akVGU1pVd0t6Nmw4b1JYam1Zakc0VHBPSnJQaE9HaTN1djI2c0lhTzEveFZX?=
 =?utf-8?Q?nc+AU3?=
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)(376014)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Apr 2025 19:12:20.3922
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: eee1f85d-51a3-4d58-6bfe-08dd7b8847ae
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:
	DS3PEPF000099E1.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR12MB6383

On Thu Apr 10, 2025 at 1:08 PM BST, Jan Beulich wrote:
> On 08.04.2025 18:07, Alejandro Vallejo wrote:
>> From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
>>=20
>> 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
>
> Nit: vcpus

Ack, and same below

>
>> --- a/xen/arch/x86/domain-builder/fdt.c
>> +++ b/xen/arch/x86/domain-builder/fdt.c
>> @@ -246,6 +246,17 @@ static int __init process_domain_node(
>>              bd->max_pages =3D PFN_DOWN(kb * SZ_1K);
>>              printk("  max memory: %ld kb\n", kb);
>>          }
>> +        else if ( strncmp(prop_name, "cpus", name_len) =3D=3D 0 )
>> +        {
>> +            uint32_t val =3D UINT_MAX;
>> +            if ( fdt_prop_as_u32(prop, &val) !=3D 0 )
>
> And again the same nit.
>
>> +            {
>> +                printk("  failed processing max_vcpus for domain %s\n",=
 name);
>
> There's no "max_vcpus" being processed here; that purely ...
>
>> +                return -EINVAL;
>> +            }
>> +            bd->max_vcpus =3D val;
>
> ... the internal name we use for the struct field etc. The user observing=
 the
> message ought to be able to easily associate it back with the DT item.
>
> Jan

Very true. I agree, and will change accordingly.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Mon Apr 14 19:17:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 19:17:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.951266.1347357 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4PJC-000690-1w; Mon, 14 Apr 2025 19:17:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 951266.1347357; Mon, 14 Apr 2025 19:17: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 1u4PJB-00068t-UI; Mon, 14 Apr 2025 19:17:29 +0000
Received: by outflank-mailman (input) for mailman id 951266;
 Mon, 14 Apr 2025 19:17: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=B3Nx=XA=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u4PJA-00068m-CY
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 19:17:28 +0000
Received: from NAM10-BN7-obe.outbound.protection.outlook.com
 (mail-bn7nam10on2061b.outbound.protection.outlook.com
 [2a01:111:f403:2009::61b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 18e89a62-1965-11f0-9ffb-bf95429c2676;
 Mon, 14 Apr 2025 21:17:26 +0200 (CEST)
Received: from DS7PR03CA0347.namprd03.prod.outlook.com (2603:10b6:8:55::6) by
 DS0PR12MB7828.namprd12.prod.outlook.com (2603:10b6:8:14b::12) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.8632.32; Mon, 14 Apr 2025 19:17:22 +0000
Received: from DS3PEPF000099DC.namprd04.prod.outlook.com
 (2603:10b6:8:55:cafe::16) by DS7PR03CA0347.outlook.office365.com
 (2603:10b6:8:55::6) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.35 via Frontend Transport; Mon,
 14 Apr 2025 19:17:22 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 DS3PEPF000099DC.mail.protection.outlook.com (10.167.17.198) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Mon, 14 Apr 2025 19:17:22 +0000
Received: from localhost (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; Mon, 14 Apr
 2025 14:17:18 -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: 18e89a62-1965-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ENM5zhwn3Nm/XAtdab2F1nRAzuY2CuEnAm50+B2unETrB6t/AbocmAGPF6We3MY3nuIsFY+p95I45keyMpjv8a55MWr6lD+2JLoAdbL8fthWkLI5OKDP3o8DzcHSWPvoMiN10AJnUqiGC9ku5SpozaWOfgpAtX199bScJZBQm8pii0KRmdXgEbDZpIgT79KTWUBcfiPx0ponymQ/+w8TPaxxQor5E8W55ZoZxjAFjKc4r5Rg9JtA+28XFw70VvRu9IxpWVWA/COmnfBVlOGb3LtH36ubHnROiRYaFVQ8MQkFICxwVe98MwelfhUSAR2n6hA2OTGyWEv8ACYSh/BlZw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=bjAOBhNyX5YRiLgxwAXCZ7r6HCtqpl8OfSZMeL+z7lA=;
 b=eJRb7tuaX+51j4odFRp9UeY8uvBLGMYjfovUoiTKrsgYQ4x+WM4QAmKh+7/qsgieN+8osaEYFCVOsDoZpelVwu6XaZx7uATvzVh7mZpROuyjgg2xGjpaOsmxgiw+DW6lCGaOd/0V0d4vQmRbcc6nYUcp1ea6A85hYIvLPXJD3JVpsOfMFBUNBU+BkWAAO/l9vArDqg06X3F2ZnyE9t5hvtgr8Kzk2BOoni9OfI/3LqIMAtyS0Cz1Mca6y/z7HVIx+DZl6iXZyA6Fy+tQQ2reIzBmDa3jZSRgcKw3/2pi6sZetLmwAq75eDfUKO/KWCaS7I5FqkXBdxa34a70uc4I4A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=proton.me 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=bjAOBhNyX5YRiLgxwAXCZ7r6HCtqpl8OfSZMeL+z7lA=;
 b=sU/IdT8jdxLesZFNLovNWWX3SUDMpOGJXMVY4FKH6RG04E6wEt35Q1ePtPfek3K0PbvjbpUtm6kn6Rhs98yU55sxSx5w5Lbp7311GnRtieHqgqzYCUnpEF753y2KLw0lYOiJ7A6HHVD3WMe5oAQ0chF4ivELb16DbncACYmTODU=
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
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Mon, 14 Apr 2025 20:17:17 +0100
Message-ID: <D96LQ9OQ467M.1ATID4WAG2COB@amd.com>
CC: <xen-devel@lists.xenproject.org>, "Daniel P. Smith"
	<dpsmith@apertussolutions.com>, Jason Andryuk <jason.andryuk@amd.com>, "Xenia
 Ragiadakou" <xenia.ragiadakou@amd.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Michal Orzel <michal.orzel@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>
Subject: Re: [PATCH v3 16/16] x86/hyperlaunch: add capabilities to boot
 domain
From: Alejandro Vallejo <agarciav@amd.com>
To: Denis Mukhin <dmkhn@proton.me>
X-Mailer: aerc 0.20.1
References: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-17-agarciav@amd.com>
 <qMw3Q37efKWp7_jJqwDD6Y3Pt0d0qdCxZDIWzgsMg1LehShPFTIOeJnqBq74lOcTERdwsLTcTazRd2zR0k-_S9TeE-ymcU3S2PH6_o9QRCU=@proton.me>
In-Reply-To: <qMw3Q37efKWp7_jJqwDD6Y3Pt0d0qdCxZDIWzgsMg1LehShPFTIOeJnqBq74lOcTERdwsLTcTazRd2zR0k-_S9TeE-ymcU3S2PH6_o9QRCU=@proton.me>
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: DS3PEPF000099DC:EE_|DS0PR12MB7828:EE_
X-MS-Office365-Filtering-Correlation-Id: e8ad30cd-f318-4118-0861-08dd7b88fba2
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|1800799024|36860700013|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?bURraitXamJsUFFvU0hyWVZQc1ppcHJhMXRyZm9STEU1MUxTb0VvdVBDTlJE?=
 =?utf-8?B?dzl2SVdUTXFDRlI5Sjh1UC9lWHFHb1ZpMlJLbVY0bExJa0xaV0F4U09hVmpx?=
 =?utf-8?B?RjlSVUk2OXRSZFR3Q3JaVlZFaTRxamJPQmNzMWRYQXYrQ0FrTXlHR1Nrc0d5?=
 =?utf-8?B?TnIxWkkxVE9ldno3NGJjd0RURnA0NHpPNVBNQWNFSlZhN2g2UFBra3VCclhl?=
 =?utf-8?B?R3UyT1JSSm8vZ3kzaW5UMHlKa3B5c0pwYXg2SUd1Z2s2d09vYkVscFFWMUhr?=
 =?utf-8?B?NXBQTzVOeXhmM29NNzVCNk9xUU5aWU9qbWVWWkFtaGdicjZGNnhRT2p6M3Vj?=
 =?utf-8?B?Q09yZVZzaUltZXpvTDRGZ2N1NGt3enI4MS96WWZ3MHFpQ29JRzRXUCt4VWpO?=
 =?utf-8?B?bjJqQlhnMkhmSGtPVkZPSThJZmloVmF1eStYcGYwZ0U0TkI5dytYcjZDOXgy?=
 =?utf-8?B?RTR6eXIzaFI3dlUxZ2ljNXVtSUQ5aUZnU1Y4VkdYL2V0OThuVnpwczNSSDVF?=
 =?utf-8?B?cnhWa2d6K2RubmIrbSt3T2Zpc21BUEQxc1lWaTFGNzVNQlBhb0tHVkRtQ0xK?=
 =?utf-8?B?bGNYdUVzaVQwRXFtd25aVURaNmN1UXpLUXBnK1NTR0NkS2ZudC8xRlY2d1Fr?=
 =?utf-8?B?MlNsaTJBNGQvV3V0bVB0dk9HSkowVkExYWlPeTd1c29kTGRtS2ljb20rQW1w?=
 =?utf-8?B?VXVKRXMza0NFV3ZlT1plaGF0K051NStmMGhNdjFnU2IrOURyenBBWVV6ME4z?=
 =?utf-8?B?V1J6THRuMlR2SHlVdy8wUkRyRXdUZGErMzZrNWNibkNGNjVIN05jWCtYc0Qv?=
 =?utf-8?B?RHlyUFpJcWxuNXBUMGMxd1dnZVZhS2ZsNFRqRUN4bGliV2pzK3lqTlZBRStI?=
 =?utf-8?B?K0pVT1ZXY2JLRnp3MW5GVjdsU2NKcWxoKzF3QytzdEdKNENDMlF3VCswOXBY?=
 =?utf-8?B?RkltRmhKQTc4ZFYrZU92NUF6di9ibmxML25qa3NsNzBKSlYvV09SbU83cWlS?=
 =?utf-8?B?dkNycGNVMnV1WnQ4Q0dMenhDNkJsVTk1SDF4N0Y4VmhUU3hRZS9hRjBGMlFq?=
 =?utf-8?B?YTdwRFBzV1Q0SE1jd29HZjJOTDl2cWt3bmcxQUNEWnVDVnhpeVlIN0JDQVBM?=
 =?utf-8?B?Y0h1ODVtRjF4MTdWVjNBaFlNb2cxUWpRM3NYM0I3ck5zd0JRaHJzTVpOOHhm?=
 =?utf-8?B?R25TVDltVUgxK3JYdU9UWk9XdGloOEJYTW1kak04ZmVFYjNaR1UzYndCSUFW?=
 =?utf-8?B?c1VNVzU4RVNVdnRvRGtTc3JScXpXUGY1OVd4MUVlTWQwQS9YcG84M3lWd0hI?=
 =?utf-8?B?ODdmb0tLYVE5ZVFEVjdvR2lqNXpsVWF4N0twWUoyR2FLSjhEeCt0b1JXbEpO?=
 =?utf-8?B?bStxN2RZSkZBUkdvRktFaC9aOWxLZmoxNG5MbVZWaUxEMnppYjhRdnFhbEFj?=
 =?utf-8?B?akNCQ1hmT0NTYlY3bnRhOThkRC9PQzloQ1BOWGhWZk5GakF5Z09sRUVVWW1P?=
 =?utf-8?B?UDF2ZUVQSG84NkpTV1grRTVuZEhUYkhXU0dtSmlvQyttZWthb2JEdHBXV2Nw?=
 =?utf-8?B?bllSZXNwTDJnc0RCTmVFR2xsRHpnNTV6dU1GbDFkeDJDNmFkbm5pVTltcXFD?=
 =?utf-8?B?cmh1WGtUbXh5NUljOUxIbUlDbHpWRE92M0xhMENWcnFJbDVOY0RkVHk0ckc3?=
 =?utf-8?B?YzQzOHZ5ZDhWbGJLL0FhWEpvSC9rSTkwb1hjQW85QTByazlRWlB5eU5zNmVX?=
 =?utf-8?B?czhzTG9tVjYzc2NIanBnVkRpdGNRc2RZdU9qRlFJZHV3emp6aG5DbFIrcStv?=
 =?utf-8?B?TE04cVJDQm1LSFZvZldzNUU0WHJqZXQ0WUJ6L3RjcmNKeStJVEY3RHdBK2xl?=
 =?utf-8?B?WHllZTdhV3hYNmFDeW5Hcm1yMStUTjdJNkN2bng5VVQ1a1pkS0dERGhYbkhK?=
 =?utf-8?B?VG9JKzA1OGdtR1F3c0FaR1RyWkQ4WmN2WDNhb2M3VWxzSGU3K2F5VUhqV1Ru?=
 =?utf-8?B?d0dGRVdNcTJqYVFuQ0dhT3ZVbTF0VXJLQ0wwTWRLY0x0Q3NaUHBOM09ZWWtX?=
 =?utf-8?Q?8Hliih?=
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);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Apr 2025 19:17:22.3009
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: e8ad30cd-f318-4118-0861-08dd7b88fba2
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:
	DS3PEPF000099DC.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB7828

On Wed Apr 9, 2025 at 11:39 PM BST, Denis Mukhin wrote:
> On Tuesday, April 8th, 2025 at 9:07 AM, Alejandro Vallejo <agarciav@amd.c=
om> wrote:
>
>>=20
>>=20
>> From: "Daniel P. Smith" dpsmith@apertussolutions.com
>>=20
>>=20
>> Introduce the ability to assign capabilities to a domain via its definit=
ion in
>> device tree. The first capability enabled to select is the control domai=
n
>> capability. The capability property is a bitfield in both the device tre=
e and
>> `struct boot_domain`.
>>=20
>> Signed-off-by: Daniel P. Smith dpsmith@apertussolutions.com
>>=20
>> Reviewed-by: Jason Andryuk jason.andryuk@amd.com
>>=20
>> Signed-off-by: Jason Andryuk jason.andryuk@amd.com
>>=20
>> ---
>> xen/arch/x86/domain-builder/core.c | 1 +
>> xen/arch/x86/domain-builder/fdt.c | 12 ++++++++++++
>> xen/arch/x86/include/asm/boot-domain.h | 4 ++++
>> xen/arch/x86/setup.c | 6 +++++-
>> 4 files changed, 22 insertions(+), 1 deletion(-)
>>=20
>> diff --git a/xen/arch/x86/domain-builder/core.c b/xen/arch/x86/domain-bu=
ilder/core.c
>> index 510a74a675..6ab4e6fe53 100644
>> --- a/xen/arch/x86/domain-builder/core.c
>> +++ b/xen/arch/x86/domain-builder/core.c
>> @@ -96,6 +96,7 @@ void __init builder_init(struct boot_info *bi)
>> i =3D first_boot_module_index(bi, BOOTMOD_UNKNOWN);
>> bi->mods[i].type =3D BOOTMOD_KERNEL;
>>=20
>> bi->domains[0].kernel =3D &bi->mods[i];
>>=20
>> + bi->domains[0].capabilities |=3D BUILD_CAPS_CONTROL;
>>=20
>> bi->nr_domains =3D 1;
>>=20
>> }
>> }
>> diff --git a/xen/arch/x86/domain-builder/fdt.c b/xen/arch/x86/domain-bui=
lder/fdt.c
>> index 5fcb767bdd..dbfbcffb0a 100644
>> --- a/xen/arch/x86/domain-builder/fdt.c
>> +++ b/xen/arch/x86/domain-builder/fdt.c
>> @@ -257,6 +257,18 @@ static int __init process_domain_node(
>> bd->max_vcpus =3D val;
>>=20
>> printk(" max vcpus: %d\n", bd->max_vcpus);
>>=20
>> }
>> + else if ( strncmp(prop_name, "capabilities", name_len) =3D=3D 0 )
>> + {
>> + if ( fdt_prop_as_u32(prop, &bd->capabilities) !=3D 0 )
>>=20
>> + {
>> + printk(" failed processing domain id for domain %s\n", name);
>
> Suggest adding XENLOG_ERR to the error message.

Yes, and the message itself seems bogus. The dangers of copy-paste...

Will fix both.

>
>> + return -EINVAL;
>> + }
>> + printk(" caps: ");
>> + if ( bd->capabilities & BUILD_CAPS_CONTROL )
>>=20
>> + printk("c");
>
> Perhaps wrap string generation into a separate function?
>
> That will help if the number of capabilities will grow over time
> and if there will be a need to use string representation somewhere else
> in the code.
>
> Thoughts?

If/when such other code appears I'm happy to unify them, but until then
I'd rather reduce indirection if possible and keep it inlined.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Mon Apr 14 19:19:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 19:19:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.951278.1347367 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4PLB-0007Cg-Bi; Mon, 14 Apr 2025 19:19:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 951278.1347367; Mon, 14 Apr 2025 19:19: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 1u4PLB-0007CZ-8n; Mon, 14 Apr 2025 19:19:33 +0000
Received: by outflank-mailman (input) for mailman id 951278;
 Mon, 14 Apr 2025 19:19:31 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Cm6X=XA=gmail.com=sultanovandriy@srs-se1.protection.inumbo.net>)
 id 1u4PL9-0007CT-Mq
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 19:19:31 +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 634a0931-1965-11f0-9ffb-bf95429c2676;
 Mon, 14 Apr 2025 21:19:29 +0200 (CEST)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-39129fc51f8so4124572f8f.0
 for <xen-devel@lists.xenproject.org>; Mon, 14 Apr 2025 12:19:29 -0700 (PDT)
Received: from localhost.localdomain
 (cpc92320-cmbg19-2-0-cust1786.5-4.cable.virginm.net. [82.13.70.251])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43f2338d7d8sm191595335e9.4.2025.04.14.12.19.28
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 14 Apr 2025 12:19:28 -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: 634a0931-1965-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1744658369; x=1745263169; 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=wUVedLR3IklmNHQn/oHUU9IKWZjTMqNBtu4pfnH5moE=;
        b=d/QGwzjki+IlEyLkLk9hvCXXmUVR+eEGob3w8aJxlGvuPn8Q3gja+NxEX178R6C1ip
         MJHVs2JchM9qNiiyk0OYK/JAuZS23A7FPM5KSCVPmrxmlLQgMcFJwT+1HXko2AOTcHPw
         QEwPG7r+aS403a92ifvhRR1H/TqBs7zQlA+v+nT5S5J5npl/hicLJNych7b7McznPSHL
         77bZQ4/crl3nuxwECWbIxPJakuyNVuBhAhHTECPixs75Yu5x1U7kDTA9Paq/vRu3AYry
         3u+lDuua1OBn7bewfKqqx7zo7UUAT5dkuNC6SKtV/aHB3/qF/aZP9jIHhhYjDB8cLEQH
         XC6A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744658369; x=1745263169;
        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=wUVedLR3IklmNHQn/oHUU9IKWZjTMqNBtu4pfnH5moE=;
        b=pfUrWHlHPFS9tsL5rWuOMsMXpIyYlbbk05zh1A3dKjirPZNyQGs5py4wUIMJK7h8E/
         sj8aaiTyvzYLmXU9jTEgNL1lYCjcF0CeCVT3JpgIotJceilC6M+3xrSxi8rzfX8zKSMc
         Xtlss0ixg1RgSA6NN5IQ6iMgeA5rG/DwsOY/ZsU5GKqSSU3sJFK+M1O+qnTZJftuN7qZ
         0b8aI5OXpGTnEjGalahznerl3fDUQ8L7MYXSZvAt6SZXRWR5nxCnmn3WSjHKztm1hd0s
         f30nJKK2GOmhgnc5L+RUOZbeIofIOVhZKQ9MLdHtyTRadDSIobHAWGlRoFO9rwtFMvsC
         h4fA==
X-Gm-Message-State: AOJu0YysjNVNJje/ccRarPPGQ9f5K56An+FJs5dC1xxCs8fxpCvEHRT7
	ZnYu+PIWNoFk66pjGSXM4qFDsS+OR7HhsQUSGy+t2IT5fx56hZD8rClHZhMGghM=
X-Gm-Gg: ASbGnctWNVU2mlDWbmxnFfSux4RAjcX7JNQnKygJVf8zbHaLm7/m4mdRKz0TzE4xh9R
	4hmAdLw6kMt+T1AlW382mOPQmZUFbpIyT13sxZIQcuOHpldqwUdE01ywsBbkEtWZKB7ZNvQ+Bdt
	aUKYl0kQucproR9hbhv3C2HEMrBFTN6Si7GKqgUU40DYDxjPuMfxK9BQ9CZGOgE0tXm9+M3akV0
	y1ncPo0qPeKO9H/LntZH6bGML38SWB78dYPrPzEsl1rx6CZ4QHABiOdtOd8HDPRr7c/W2/8+KkB
	wSYIAAQm9LlmmXwXCOm2sWgYFrUUIjicK51PmmAyd/R+ZMLgEReYzDZ80D/vmi9jMObBmSsz0Np
	l5DVGXVGUsgs+0vztjZbdhNrVpUfPcOYb1uor6EkoGso=
X-Google-Smtp-Source: AGHT+IHJ4dKSq8dTBXBrg4ET9Fy4F2E0JNUQLooT+CnZ6usUe6iPl2LtwooOkFi7x3HWEz+Le4h0gg==
X-Received: by 2002:a05:6000:144f:b0:39c:cc7:3c62 with SMTP id ffacd0b85a97d-39eaaecaddamr11999578f8f.51.1744658368806;
        Mon, 14 Apr 2025 12:19:28 -0700 (PDT)
From: Andrii Sultanov <sultanovandriy@gmail.com>
X-Google-Original-From: Andrii Sultanov <andriy.sultanov@vates.tech>
To: xen-devel@lists.xenproject.org
Cc: Andrii Sultanov <andriy.sultanov@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>
Subject: [PATCH v4 0/3] drivers: Simplify handling of pci_sbdf_t in passthrough/amd
Date: Mon, 14 Apr 2025 20:19:15 +0100
Message-ID: <cover.1744657012.git.andriy.sultanov@vates.tech>
X-Mailer: git-send-email 2.49.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Step-by-step, use pci_sbdf_t directly where appropriate instead of
handling seg and bdf separately. This removes conversions, reduces code
size and simplifies code in general.

Andrii Sultanov (3):
  drivers: Change amd_iommu struct to contain pci_sbdf_t, simplify code
  drivers: Change find_iommu_for_device function to take pci_sbdf_t,
    simplify code
  drivers: Make ioapic_sbdf and hpet_sbdf contain pci_sbdf_t

 xen/drivers/passthrough/amd/iommu.h         | 11 +--
 xen/drivers/passthrough/amd/iommu_acpi.c    | 58 ++++++++--------
 xen/drivers/passthrough/amd/iommu_cmd.c     | 10 +--
 xen/drivers/passthrough/amd/iommu_detect.c  | 18 ++---
 xen/drivers/passthrough/amd/iommu_init.c    | 39 +++++------
 xen/drivers/passthrough/amd/iommu_intr.c    | 76 ++++++++++-----------
 xen/drivers/passthrough/amd/iommu_map.c     |  6 +-
 xen/drivers/passthrough/amd/pci_amd_iommu.c | 50 +++++++-------
 8 files changed, 130 insertions(+), 138 deletions(-)

-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Mon Apr 14 19:19:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 19:19:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.951279.1347376 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4PLE-0007RT-IN; Mon, 14 Apr 2025 19:19:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 951279.1347376; Mon, 14 Apr 2025 19:19:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4PLE-0007RM-FQ; Mon, 14 Apr 2025 19:19:36 +0000
Received: by outflank-mailman (input) for mailman id 951279;
 Mon, 14 Apr 2025 19:19: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=Cm6X=XA=gmail.com=sultanovandriy@srs-se1.protection.inumbo.net>)
 id 1u4PLC-0007CT-Do
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 19:19:34 +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 64b6c695-1965-11f0-9ffb-bf95429c2676;
 Mon, 14 Apr 2025 21:19:32 +0200 (CEST)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-43cfa7e7f54so30439365e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 14 Apr 2025 12:19:32 -0700 (PDT)
Received: from localhost.localdomain
 (cpc92320-cmbg19-2-0-cust1786.5-4.cable.virginm.net. [82.13.70.251])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43f2338d7d8sm191595335e9.4.2025.04.14.12.19.30
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 14 Apr 2025 12:19: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: 64b6c695-1965-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1744658371; x=1745263171; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=smpq33YBQUj2U9M4sBMPyRuTGch+igmDVUKI47oPltc=;
        b=PDNXq1uBWtju6dAAxk4cRdp9x9Dvxvw9/0+R0WzcQDE7YA8Q2HkjXZdfB5B0RMatPG
         eAt6vJfaHjqhH2MPiorkWPgo76M5+ZZi1IL3D9Nw5SotxjR6xtg0KoHUcpAZrKoD3p1Y
         tvi7fGr15V7Vei4xULR/GZSImHdLUXPsQzF6qyOj32i27UDOFrP2txgRw/xZM3j2xelu
         UDVn2jPRXlcRl3Hp8aOz78nmkpc3ar4c6DeI2RcOPzeMT3KXFr8qU3Y3N9G0XUkTjDIv
         gbbq86AC2E4qCRN819tlmXKRgXHm5JXpR5yAt0RrY4FuvEHBL7d7li4z3gliaxbSi5xF
         VAhA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744658371; x=1745263171;
        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=smpq33YBQUj2U9M4sBMPyRuTGch+igmDVUKI47oPltc=;
        b=n4ZiuIAsnUGUNveYV3rY9DQV12SuQXPYXnq1Ge5C2hEEfepjUSaEZcJEoDUh3QpIAF
         UxJyF33uaxA9iIY0IgyBqMPpZDcG6zFkXPhStbsHcOVCWPC9Xr2JlDulkCxn2j6WcCrr
         8Cei8sUn3VXAcpmY5Ce72NEHFg05GZjQBXs5E3/Zo+6oAP7sdMxql052kI5NJuptD9gG
         Q/F4suBRDcxgXoiFuAWUOnuNT4bm1N0+VVmaiPTR+fUpbHQ2a5Fp6aaqK+J9DVekah8e
         Ij9+41+eTmW/ryINuKFGAUYUxwWcloFydOBWDr65S60ZiCRhalvqQJMiaY1pwHc4L+oC
         llBg==
X-Gm-Message-State: AOJu0YwRNImcO+4PYP45oo9xiLDqsS7dM+W54v0otMjqy/ftLpdk+VlN
	lhEyQEF2TOD8N9PzUQYIyAfUiCV6LeWmv0sb7sRBBc/SNkNxfvnGJ5DzniA+CEc=
X-Gm-Gg: ASbGnctpmOczqQLp791ElePz5Ejql5UShs8NN8phYh446PAGqeZnLP3cFiBV2OS1GHe
	qjAXfsaUh8ogH3r4JKnDcMc5Up+sMM2M64M5aJqbVgV9UnIzWIqRldyupnl0+82GhVc43U4kJAp
	DDLZSO8ID4RmthqtM5vq+GDwzF8AO2u75NGJ8l0PEfHOKY4tKMrQT+A0xeOYT/iwkwjP9tZyXzV
	6eMQKphHhXzOf/WFtqsluOHuWTg6Y8dBJzsoWSGbi/X57+tduk37pScBfB2/3VZQn6iFP20NtDB
	YpBsHrQFk8H2n6TJRsutXzfnEVLVs0CQNZGssp/dZXPs1e7lBzrnlnz5PjTVnJBYGLxIYgNRoJh
	Tb8fVPLcd8+PHWmEidVlHKL6VUfjGEdXhMkMXB4fXIPE=
X-Google-Smtp-Source: AGHT+IHv6ihT6Xt9oidfPnj6qev6UMx7kMGd8hRenSPUOS8o4DXrd2/OtvjSUH4UNAle7j5xqGFRfQ==
X-Received: by 2002:a05:600c:58d7:b0:43b:bb72:1dce with SMTP id 5b1f17b1804b1-43f9988a8b5mr4241075e9.5.1744658370949;
        Mon, 14 Apr 2025 12:19:30 -0700 (PDT)
From: Andrii Sultanov <sultanovandriy@gmail.com>
X-Google-Original-From: Andrii Sultanov <andriy.sultanov@vates.tech>
To: xen-devel@lists.xenproject.org
Cc: Andrii Sultanov <sultanovandriy@gmail.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v4 1/3] drivers: Change amd_iommu struct to contain pci_sbdf_t, simplify code
Date: Mon, 14 Apr 2025 20:19:16 +0100
Message-ID: <40f504017d71c16a3e2bc8945ac5e674a3e791ed.1744657012.git.andriy.sultanov@vates.tech>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <cover.1744657012.git.andriy.sultanov@vates.tech>
References: <cover.1744657012.git.andriy.sultanov@vates.tech>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Andrii Sultanov <sultanovandriy@gmail.com>

Following on from 250d87dc3ff9 ("x86/msi: Change __msi_set_enable() to
take pci_sbdf_t"), make struct amd_iommu contain pci_sbdf_t directly
instead of specifying seg+bdf separately and regenerating sbdf_t from them,
which simplifies code.

Bloat-o-meter reports:
add/remove: 0/0 grow/shrink: 4/13 up/down: 121/-377 (-256)
Function                                     old     new   delta
_einittext                                 22028   22092     +64
amd_iommu_prepare                            853     897     +44
__mon_lengths                               2928    2936      +8
_invalidate_all_devices                      133     138      +5
_hvm_dpci_msi_eoi                            157     155      -2
build_info                                   752     744      -8
amd_iommu_add_device                         856     844     -12
amd_iommu_msi_enable                          33      20     -13
update_intremap_entry_from_msi_msg           879     859     -20
amd_iommu_msi_msg_update_ire                 472     448     -24
send_iommu_command                           251     224     -27
amd_iommu_get_supported_ivhd_type             86      54     -32
amd_iommu_detect_one_acpi                    918     886     -32
iterate_ivrs_mappings                        169     129     -40
flush_command_buffer                         460     417     -43
set_iommu_interrupt_handler                  421     377     -44
enable_iommu                                1745    1665     -80

Resolves: https://gitlab.com/xen-project/xen/-/issues/198

Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
Signed-off-by: Andrii Sultanov <sultanovandriy@gmail.com>

---
Changes in V4:
* Dropped references to the order of seg/bdf in the commit message
* Dropped unnecessary detail from the commit message
* Reverted to a macro usage in one case where it was mistakenly dropped
* Folded several separate seg+bdf comparisons into a single one between
  sbdf_t, folded separate assignments with a macro.
* More code size improvements with the changes, so I've refreshed the
  bloat-o-meter report

Changes in V3:
* Dropped the union with seg+bdf/pci_sbdf_t to avoid aliasing, renamed
  all users appropriately

Changes in V2:
* Split single commit into several patches
* Added the commit title of the referenced patch
* Dropped brackets around &(iommu->sbdf) and &(sbdf)
---
 xen/drivers/passthrough/amd/iommu.h         |  4 +--
 xen/drivers/passthrough/amd/iommu_acpi.c    | 16 +++++-----
 xen/drivers/passthrough/amd/iommu_cmd.c     |  8 ++---
 xen/drivers/passthrough/amd/iommu_detect.c  | 18 +++++------
 xen/drivers/passthrough/amd/iommu_init.c    | 35 ++++++++++-----------
 xen/drivers/passthrough/amd/iommu_intr.c    | 29 ++++++++---------
 xen/drivers/passthrough/amd/iommu_map.c     |  4 +--
 xen/drivers/passthrough/amd/pci_amd_iommu.c | 22 ++++++-------
 8 files changed, 67 insertions(+), 69 deletions(-)

diff --git a/xen/drivers/passthrough/amd/iommu.h b/xen/drivers/passthrough/amd/iommu.h
index 00e81b4b2a..ba541f7943 100644
--- a/xen/drivers/passthrough/amd/iommu.h
+++ b/xen/drivers/passthrough/amd/iommu.h
@@ -77,8 +77,8 @@ struct amd_iommu {
     struct list_head list;
     spinlock_t lock; /* protect iommu */
 
-    u16 seg;
-    u16 bdf;
+    pci_sbdf_t sbdf;
+
     struct msi_desc msi;
 
     u16 cap_offset;
diff --git a/xen/drivers/passthrough/amd/iommu_acpi.c b/xen/drivers/passthrough/amd/iommu_acpi.c
index 5bdbfb5ba8..025d9be40f 100644
--- a/xen/drivers/passthrough/amd/iommu_acpi.c
+++ b/xen/drivers/passthrough/amd/iommu_acpi.c
@@ -58,7 +58,7 @@ static void __init add_ivrs_mapping_entry(
     uint16_t bdf, uint16_t alias_id, uint8_t flags, unsigned int ext_flags,
     bool alloc_irt, struct amd_iommu *iommu)
 {
-    struct ivrs_mappings *ivrs_mappings = get_ivrs_mappings(iommu->seg);
+    struct ivrs_mappings *ivrs_mappings = get_ivrs_mappings(iommu->sbdf.seg);
 
     ASSERT( ivrs_mappings != NULL );
 
@@ -70,7 +70,7 @@ static void __init add_ivrs_mapping_entry(
     ivrs_mappings[bdf].device_flags = flags;
 
     /* Don't map an IOMMU by itself. */
-    if ( iommu->bdf == bdf )
+    if ( iommu->sbdf.bdf == bdf )
         return;
 
     /* Allocate interrupt remapping table if needed. */
@@ -96,7 +96,7 @@ static void __init add_ivrs_mapping_entry(
 
             if ( !ivrs_mappings[alias_id].intremap_table )
                 panic("No memory for %pp's IRT\n",
-                      &PCI_SBDF(iommu->seg, alias_id));
+                      &PCI_SBDF(iommu->sbdf.seg, alias_id));
         }
     }
 
@@ -112,7 +112,7 @@ static struct amd_iommu * __init find_iommu_from_bdf_cap(
     struct amd_iommu *iommu;
 
     for_each_amd_iommu ( iommu )
-        if ( (iommu->seg == seg) && (iommu->bdf == bdf) &&
+        if ( (iommu->sbdf.seg == seg) && (iommu->sbdf.bdf == bdf) &&
              (iommu->cap_offset == cap_offset) )
             return iommu;
 
@@ -297,13 +297,13 @@ static int __init register_range_for_iommu_devices(
     /* reserve unity-mapped page entries for devices */
     for ( bdf = rc = 0; !rc && bdf < ivrs_bdf_entries; bdf++ )
     {
-        if ( iommu != find_iommu_for_device(iommu->seg, bdf) )
+        if ( iommu != find_iommu_for_device(iommu->sbdf.seg, bdf) )
             continue;
 
-        req = get_ivrs_mappings(iommu->seg)[bdf].dte_requestor_id;
-        rc = reserve_unity_map_for_device(iommu->seg, bdf, base, length,
+        req = get_ivrs_mappings(iommu->sbdf.seg)[bdf].dte_requestor_id;
+        rc = reserve_unity_map_for_device(iommu->sbdf.seg, bdf, base, length,
                                           iw, ir, false) ?:
-             reserve_unity_map_for_device(iommu->seg, req, base, length,
+             reserve_unity_map_for_device(iommu->sbdf.seg, req, base, length,
                                           iw, ir, false);
     }
 
diff --git a/xen/drivers/passthrough/amd/iommu_cmd.c b/xen/drivers/passthrough/amd/iommu_cmd.c
index 83c525b84f..eefd626161 100644
--- a/xen/drivers/passthrough/amd/iommu_cmd.c
+++ b/xen/drivers/passthrough/amd/iommu_cmd.c
@@ -40,7 +40,7 @@ static void send_iommu_command(struct amd_iommu *iommu,
                      IOMMU_RING_BUFFER_PTR_MASK) )
     {
         printk_once(XENLOG_ERR "AMD IOMMU %pp: no cmd slot available\n",
-                    &PCI_SBDF(iommu->seg, iommu->bdf));
+                    &iommu->sbdf);
         cpu_relax();
     }
 
@@ -85,7 +85,7 @@ static void flush_command_buffer(struct amd_iommu *iommu,
             threshold |= threshold << 1;
             printk(XENLOG_WARNING
                    "AMD IOMMU %pp: %scompletion wait taking too long\n",
-                   &PCI_SBDF(iommu->seg, iommu->bdf),
+                   &iommu->sbdf,
                    timeout_base ? "iotlb " : "");
             timeout = 0;
         }
@@ -95,7 +95,7 @@ static void flush_command_buffer(struct amd_iommu *iommu,
     if ( !timeout )
         printk(XENLOG_WARNING
                "AMD IOMMU %pp: %scompletion wait took %lums\n",
-               &PCI_SBDF(iommu->seg, iommu->bdf),
+               &iommu->sbdf,
                timeout_base ? "iotlb " : "",
                (NOW() - start) / 10000000);
 }
@@ -300,7 +300,7 @@ void amd_iommu_flush_iotlb(u8 devfn, const struct pci_dev *pdev,
     if ( !iommu_has_cap(iommu, PCI_CAP_IOTLB_SHIFT) )
         return;
 
-    req_id = get_dma_requestor_id(iommu->seg, PCI_BDF(pdev->bus, devfn));
+    req_id = get_dma_requestor_id(iommu->sbdf.seg, PCI_BDF(pdev->bus, devfn));
     queueid = req_id;
     maxpend = pdev->ats.queue_depth & 0xff;
 
diff --git a/xen/drivers/passthrough/amd/iommu_detect.c b/xen/drivers/passthrough/amd/iommu_detect.c
index cede44e651..72cc554b08 100644
--- a/xen/drivers/passthrough/amd/iommu_detect.c
+++ b/xen/drivers/passthrough/amd/iommu_detect.c
@@ -162,8 +162,8 @@ int __init amd_iommu_detect_one_acpi(
     spin_lock_init(&iommu->lock);
     INIT_LIST_HEAD(&iommu->ats_devices);
 
-    iommu->seg = ivhd_block->pci_segment_group;
-    iommu->bdf = ivhd_block->header.device_id;
+    iommu->sbdf = PCI_SBDF(ivhd_block->pci_segment_group,
+                           ivhd_block->header.device_id);
     iommu->cap_offset = ivhd_block->capability_offset;
     iommu->mmio_base_phys = ivhd_block->base_address;
 
@@ -210,16 +210,16 @@ int __init amd_iommu_detect_one_acpi(
     /* override IOMMU HT flags */
     iommu->ht_flags = ivhd_block->header.flags;
 
-    bus = PCI_BUS(iommu->bdf);
-    dev = PCI_SLOT(iommu->bdf);
-    func = PCI_FUNC(iommu->bdf);
+    bus = PCI_BUS(iommu->sbdf.bdf);
+    dev = PCI_SLOT(iommu->sbdf.bdf);
+    func = PCI_FUNC(iommu->sbdf.bdf);
 
-    rt = get_iommu_capabilities(iommu->seg, bus, dev, func,
+    rt = get_iommu_capabilities(iommu->sbdf.seg, bus, dev, func,
                                 iommu->cap_offset, iommu);
     if ( rt )
         goto out;
 
-    rt = get_iommu_msi_capabilities(iommu->seg, bus, dev, func, iommu);
+    rt = get_iommu_msi_capabilities(iommu->sbdf.seg, bus, dev, func, iommu);
     if ( rt )
         goto out;
 
@@ -228,10 +228,10 @@ int __init amd_iommu_detect_one_acpi(
     if ( !iommu->domid_map )
         goto out;
 
-    rt = pci_ro_device(iommu->seg, bus, PCI_DEVFN(dev, func));
+    rt = pci_ro_device(iommu->sbdf.seg, bus, PCI_DEVFN(dev, func));
     if ( rt )
         printk(XENLOG_ERR "Could not mark config space of %pp read-only (%d)\n",
-               &PCI_SBDF(iommu->seg, iommu->bdf), rt);
+               &iommu->sbdf, rt);
 
     list_add_tail(&iommu->list, &amd_iommu_head);
     rt = 0;
diff --git a/xen/drivers/passthrough/amd/iommu_init.c b/xen/drivers/passthrough/amd/iommu_init.c
index bb25b55c85..58d657060a 100644
--- a/xen/drivers/passthrough/amd/iommu_init.c
+++ b/xen/drivers/passthrough/amd/iommu_init.c
@@ -409,9 +409,7 @@ static void iommu_reset_log(struct amd_iommu *iommu,
 
 static void amd_iommu_msi_enable(struct amd_iommu *iommu, int flag)
 {
-    pci_sbdf_t sbdf = { .seg = iommu->seg, .bdf = iommu->bdf };
-
-    __msi_set_enable(sbdf, iommu->msi.msi_attrib.pos, flag);
+    __msi_set_enable(iommu->sbdf, iommu->msi.msi_attrib.pos, flag);
 }
 
 static void cf_check iommu_msi_unmask(struct irq_desc *desc)
@@ -566,7 +564,7 @@ static void cf_check parse_event_log_entry(struct amd_iommu *iommu, u32 entry[])
 
         printk(XENLOG_ERR "AMD-Vi: %s: %pp d%u addr %016"PRIx64
                " flags %#x%s%s%s%s%s%s%s%s%s%s\n",
-               code_str, &PCI_SBDF(iommu->seg, device_id),
+               code_str, &PCI_SBDF(iommu->sbdf.seg, device_id),
                domain_id, addr, flags,
                (flags & 0xe00) ? " ??" : "",
                (flags & 0x100) ? " TR" : "",
@@ -583,8 +581,8 @@ static void cf_check parse_event_log_entry(struct amd_iommu *iommu, u32 entry[])
             amd_iommu_print_entries(iommu, device_id, daddr_to_dfn(addr));
 
         for ( bdf = 0; bdf < ivrs_bdf_entries; bdf++ )
-            if ( get_dma_requestor_id(iommu->seg, bdf) == device_id )
-                pci_check_disable_device(iommu->seg, PCI_BUS(bdf),
+            if ( get_dma_requestor_id(iommu->sbdf.seg, bdf) == device_id )
+                pci_check_disable_device(iommu->sbdf.seg, PCI_BUS(bdf),
                                          PCI_DEVFN(bdf));
     }
     else
@@ -643,7 +641,7 @@ static void cf_check parse_ppr_log_entry(struct amd_iommu *iommu, u32 entry[])
     struct pci_dev *pdev;
 
     pcidevs_lock();
-    pdev = pci_get_real_pdev(PCI_SBDF(iommu->seg, device_id));
+    pdev = pci_get_real_pdev(PCI_SBDF(iommu->sbdf.seg, device_id));
     pcidevs_unlock();
 
     if ( pdev )
@@ -752,12 +750,11 @@ static bool __init set_iommu_interrupt_handler(struct amd_iommu *iommu)
     }
 
     pcidevs_lock();
-    iommu->msi.dev = pci_get_pdev(NULL, PCI_SBDF(iommu->seg, iommu->bdf));
+    iommu->msi.dev = pci_get_pdev(NULL, iommu->sbdf);
     pcidevs_unlock();
     if ( !iommu->msi.dev )
     {
-        AMD_IOMMU_WARN("no pdev for %pp\n",
-                       &PCI_SBDF(iommu->seg, iommu->bdf));
+        AMD_IOMMU_WARN("no pdev for %pp\n", &iommu->sbdf);
         return 0;
     }
 
@@ -779,7 +776,7 @@ static bool __init set_iommu_interrupt_handler(struct amd_iommu *iommu)
         hw_irq_controller *handler;
         u16 control;
 
-        control = pci_conf_read16(PCI_SBDF(iommu->seg, iommu->bdf),
+        control = pci_conf_read16(iommu->sbdf,
                                   iommu->msi.msi_attrib.pos + PCI_MSI_FLAGS);
 
         iommu->msi.msi.nvec = 1;
@@ -843,22 +840,22 @@ static void amd_iommu_erratum_746_workaround(struct amd_iommu *iommu)
          (boot_cpu_data.x86_model > 0x1f) )
         return;
 
-    pci_conf_write32(PCI_SBDF(iommu->seg, iommu->bdf), 0xf0, 0x90);
-    value = pci_conf_read32(PCI_SBDF(iommu->seg, iommu->bdf), 0xf4);
+    pci_conf_write32(iommu->sbdf, 0xf0, 0x90);
+    value = pci_conf_read32(iommu->sbdf, 0xf4);
 
     if ( value & (1 << 2) )
         return;
 
     /* Select NB indirect register 0x90 and enable writing */
-    pci_conf_write32(PCI_SBDF(iommu->seg, iommu->bdf), 0xf0, 0x90 | (1 << 8));
+    pci_conf_write32(iommu->sbdf, 0xf0, 0x90 | (1 << 8));
 
-    pci_conf_write32(PCI_SBDF(iommu->seg, iommu->bdf), 0xf4, value | (1 << 2));
+    pci_conf_write32(iommu->sbdf, 0xf4, value | (1 << 2));
     printk(XENLOG_INFO
            "AMD-Vi: Applying erratum 746 workaround for IOMMU at %pp\n",
-           &PCI_SBDF(iommu->seg, iommu->bdf));
+           &iommu->sbdf);
 
     /* Clear the enable writing bit */
-    pci_conf_write32(PCI_SBDF(iommu->seg, iommu->bdf), 0xf0, 0x90);
+    pci_conf_write32(iommu->sbdf, 0xf0, 0x90);
 }
 
 static void enable_iommu(struct amd_iommu *iommu)
@@ -1095,7 +1092,7 @@ static int __init amd_iommu_init_one(struct amd_iommu *iommu, bool intr)
         goto error_out;
 
     /* Make sure that the device table has been successfully allocated. */
-    ivrs_mappings = get_ivrs_mappings(iommu->seg);
+    ivrs_mappings = get_ivrs_mappings(iommu->sbdf.seg);
     if ( !IVRS_MAPPINGS_DEVTAB(ivrs_mappings) )
         goto error_out;
 
@@ -1363,7 +1360,7 @@ static bool __init amd_sp5100_erratum28(void)
 
 static int __init amd_iommu_prepare_one(struct amd_iommu *iommu)
 {
-    int rc = alloc_ivrs_mappings(iommu->seg);
+    int rc = alloc_ivrs_mappings(iommu->sbdf.seg);
 
     if ( !rc )
         rc = map_iommu_mmio_region(iommu);
diff --git a/xen/drivers/passthrough/amd/iommu_intr.c b/xen/drivers/passthrough/amd/iommu_intr.c
index 9abdc38053..a7347fcbad 100644
--- a/xen/drivers/passthrough/amd/iommu_intr.c
+++ b/xen/drivers/passthrough/amd/iommu_intr.c
@@ -132,7 +132,7 @@ static int get_intremap_requestor_id(int seg, int bdf)
 static unsigned int alloc_intremap_entry(const struct amd_iommu *iommu,
                                          unsigned int bdf, unsigned int nr)
 {
-    const struct ivrs_mappings *ivrs_mappings = get_ivrs_mappings(iommu->seg);
+    const struct ivrs_mappings *ivrs_mappings = get_ivrs_mappings(iommu->sbdf.seg);
     unsigned long *inuse = ivrs_mappings[bdf].intremap_inuse;
     unsigned int nr_ents =
         intremap_table_entries(ivrs_mappings[bdf].intremap_table, iommu);
@@ -167,7 +167,7 @@ static union irte_ptr get_intremap_entry(const struct amd_iommu *iommu,
                                          unsigned int bdf, unsigned int index)
 {
     union irte_ptr table = {
-        .ptr = get_ivrs_mappings(iommu->seg)[bdf].intremap_table
+        .ptr = get_ivrs_mappings(iommu->sbdf.seg)[bdf].intremap_table
     };
 
     ASSERT(table.ptr && (index < intremap_table_entries(table.ptr, iommu)));
@@ -184,7 +184,7 @@ static void free_intremap_entry(const struct amd_iommu *iommu,
                                 unsigned int bdf, unsigned int index)
 {
     union irte_ptr entry = get_intremap_entry(iommu, bdf, index);
-    struct ivrs_mappings *ivrs = get_ivrs_mappings(iommu->seg);
+    struct ivrs_mappings *ivrs = get_ivrs_mappings(iommu->sbdf.seg);
 
     if ( iommu->ctrl.ga_en )
     {
@@ -281,8 +281,8 @@ static int update_intremap_entry_from_ioapic(
     unsigned int dest, offset;
     bool fresh = false;
 
-    req_id = get_intremap_requestor_id(iommu->seg, bdf);
-    lock = get_intremap_lock(iommu->seg, req_id);
+    req_id = get_intremap_requestor_id(iommu->sbdf.seg, bdf);
+    lock = get_intremap_lock(iommu->sbdf.seg, req_id);
 
     delivery_mode = rte->delivery_mode;
     vector = rte->vector;
@@ -419,10 +419,10 @@ static int update_intremap_entry_from_msi_msg(
     unsigned int dest, offset, i;
     bool fresh = false;
 
-    req_id = get_dma_requestor_id(iommu->seg, bdf);
-    alias_id = get_intremap_requestor_id(iommu->seg, bdf);
+    req_id = get_dma_requestor_id(iommu->sbdf.seg, bdf);
+    alias_id = get_intremap_requestor_id(iommu->sbdf.seg, bdf);
 
-    lock = get_intremap_lock(iommu->seg, req_id);
+    lock = get_intremap_lock(iommu->sbdf.seg, req_id);
     spin_lock_irqsave(lock, flags);
 
     if ( msg == NULL )
@@ -486,10 +486,10 @@ static int update_intremap_entry_from_msi_msg(
      */
 
     if ( ( req_id != alias_id ) &&
-         get_ivrs_mappings(iommu->seg)[alias_id].intremap_table != NULL )
+         get_ivrs_mappings(iommu->sbdf.seg)[alias_id].intremap_table != NULL )
     {
-        BUG_ON(get_ivrs_mappings(iommu->seg)[req_id].intremap_table !=
-               get_ivrs_mappings(iommu->seg)[alias_id].intremap_table);
+        BUG_ON(get_ivrs_mappings(iommu->sbdf.seg)[req_id].intremap_table !=
+               get_ivrs_mappings(iommu->sbdf.seg)[alias_id].intremap_table);
     }
 
     return fresh;
@@ -498,16 +498,17 @@ static int update_intremap_entry_from_msi_msg(
 static struct amd_iommu *_find_iommu_for_device(int seg, int bdf)
 {
     struct amd_iommu *iommu;
+    pci_sbdf_t sbdf = PCI_SBDF(seg, bdf);
 
     for_each_amd_iommu ( iommu )
-        if ( iommu->seg == seg && iommu->bdf == bdf )
+        if ( iommu->sbdf.sbdf == sbdf.sbdf )
             return NULL;
 
     iommu = find_iommu_for_device(seg, bdf);
     if ( iommu )
         return iommu;
 
-    AMD_IOMMU_DEBUG("No IOMMU for MSI dev = %pp\n", &PCI_SBDF(seg, bdf));
+    AMD_IOMMU_DEBUG("No IOMMU for MSI dev = %pp\n", &sbdf);
     return ERR_PTR(-EINVAL);
 }
 
@@ -730,7 +731,7 @@ static void dump_intremap_table(const struct amd_iommu *iommu,
         if ( ivrs_mapping )
         {
             printk("  %pp:\n",
-                   &PCI_SBDF(iommu->seg, ivrs_mapping->dte_requestor_id));
+                   &PCI_SBDF(iommu->sbdf.seg, ivrs_mapping->dte_requestor_id));
             ivrs_mapping = NULL;
         }
 
diff --git a/xen/drivers/passthrough/amd/iommu_map.c b/xen/drivers/passthrough/amd/iommu_map.c
index dde393645a..d28c475650 100644
--- a/xen/drivers/passthrough/amd/iommu_map.c
+++ b/xen/drivers/passthrough/amd/iommu_map.c
@@ -558,14 +558,14 @@ void amd_iommu_print_entries(const struct amd_iommu *iommu, unsigned int dev_id,
 
     if ( !dt[dev_id].tv )
     {
-        printk("%pp: no root\n", &PCI_SBDF(iommu->seg, dev_id));
+        printk("%pp: no root\n", &PCI_SBDF(iommu->sbdf.seg, dev_id));
         return;
     }
 
     pt_mfn = _mfn(dt[dev_id].pt_root);
     level = dt[dev_id].paging_mode;
     printk("%pp root @ %"PRI_mfn" (%u levels) dfn=%"PRI_dfn"\n",
-           &PCI_SBDF(iommu->seg, dev_id), mfn_x(pt_mfn), level, dfn_x(dfn));
+           &PCI_SBDF(iommu->sbdf.seg, dev_id), mfn_x(pt_mfn), level, dfn_x(dfn));
 
     while ( level )
     {
diff --git a/xen/drivers/passthrough/amd/pci_amd_iommu.c b/xen/drivers/passthrough/amd/pci_amd_iommu.c
index d00697edb3..6b58e3380b 100644
--- a/xen/drivers/passthrough/amd/pci_amd_iommu.c
+++ b/xen/drivers/passthrough/amd/pci_amd_iommu.c
@@ -43,7 +43,7 @@ struct amd_iommu *find_iommu_for_device(int seg, int bdf)
     {
         unsigned int bd0 = bdf & ~PCI_FUNC(~0);
 
-        if ( ivrs_mappings[bd0].iommu && ivrs_mappings[bd0].iommu->bdf != bdf )
+        if ( ivrs_mappings[bd0].iommu && ivrs_mappings[bd0].iommu->sbdf.bdf != bdf )
         {
             struct ivrs_mappings tmp = ivrs_mappings[bd0];
 
@@ -121,7 +121,7 @@ static bool use_ats(
 {
     return !ivrs_dev->block_ats &&
            iommu_has_cap(iommu, PCI_CAP_IOTLB_SHIFT) &&
-           pci_ats_device(iommu->seg, pdev->bus, pdev->devfn);
+           pci_ats_device(iommu->sbdf.seg, pdev->bus, pdev->devfn);
 }
 
 static int __must_check amd_iommu_setup_domain_device(
@@ -147,17 +147,17 @@ static int __must_check amd_iommu_setup_domain_device(
     if ( rc )
         return rc;
 
-    req_id = get_dma_requestor_id(iommu->seg, pdev->sbdf.bdf);
-    ivrs_dev = &get_ivrs_mappings(iommu->seg)[req_id];
+    req_id = get_dma_requestor_id(iommu->sbdf.seg, pdev->sbdf.bdf);
+    ivrs_dev = &get_ivrs_mappings(iommu->sbdf.seg)[req_id];
     sr_flags = (iommu_hwdom_passthrough && is_hardware_domain(domain)
                 ? 0 : SET_ROOT_VALID)
                | (ivrs_dev->unity_map ? SET_ROOT_WITH_UNITY_MAP : 0);
 
     /* get device-table entry */
-    req_id = get_dma_requestor_id(iommu->seg, PCI_BDF(bus, devfn));
+    req_id = get_dma_requestor_id(iommu->sbdf.seg, PCI_BDF(bus, devfn));
     table = iommu->dev_table.buffer;
     dte = &table[req_id];
-    ivrs_dev = &get_ivrs_mappings(iommu->seg)[req_id];
+    ivrs_dev = &get_ivrs_mappings(iommu->sbdf.seg)[req_id];
 
     if ( domain != dom_io )
     {
@@ -275,7 +275,7 @@ static int __must_check amd_iommu_setup_domain_device(
     ASSERT(pcidevs_locked());
 
     if ( use_ats(pdev, iommu, ivrs_dev) &&
-         !pci_ats_enabled(iommu->seg, bus, pdev->devfn) )
+         !pci_ats_enabled(iommu->sbdf.seg, bus, pdev->devfn) )
     {
         if ( devfn == pdev->devfn )
             enable_ats_device(pdev, &iommu->ats_devices);
@@ -418,12 +418,12 @@ static void amd_iommu_disable_domain_device(const struct domain *domain,
 
     ASSERT(pcidevs_locked());
 
-    if ( pci_ats_device(iommu->seg, bus, pdev->devfn) &&
-         pci_ats_enabled(iommu->seg, bus, pdev->devfn) )
+    if ( pci_ats_device(iommu->sbdf.seg, bus, pdev->devfn) &&
+         pci_ats_enabled(iommu->sbdf.seg, bus, pdev->devfn) )
         disable_ats_device(pdev);
 
     BUG_ON ( iommu->dev_table.buffer == NULL );
-    req_id = get_dma_requestor_id(iommu->seg, PCI_BDF(bus, devfn));
+    req_id = get_dma_requestor_id(iommu->sbdf.seg, PCI_BDF(bus, devfn));
     table = iommu->dev_table.buffer;
     dte = &table[req_id];
 
@@ -578,7 +578,7 @@ static int cf_check amd_iommu_add_device(u8 devfn, struct pci_dev *pdev)
         return -EINVAL;
 
     for_each_amd_iommu(iommu)
-        if ( pdev->seg == iommu->seg && pdev->sbdf.bdf == iommu->bdf )
+        if ( pdev->sbdf.sbdf == iommu->sbdf.sbdf )
             return is_hardware_domain(pdev->domain) ? 0 : -ENODEV;
 
     iommu = find_iommu_for_device(pdev->seg, pdev->sbdf.bdf);
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Mon Apr 14 19:19:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 19:19:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.951280.1347382 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4PLE-0007Wh-U3; Mon, 14 Apr 2025 19:19:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 951280.1347382; Mon, 14 Apr 2025 19:19:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4PLE-0007VU-Qp; Mon, 14 Apr 2025 19:19:36 +0000
Received: by outflank-mailman (input) for mailman id 951280;
 Mon, 14 Apr 2025 19: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=Cm6X=XA=gmail.com=sultanovandriy@srs-se1.protection.inumbo.net>)
 id 1u4PLE-0007CT-1m
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 19:19:36 +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 65d23c50-1965-11f0-9ffb-bf95429c2676;
 Mon, 14 Apr 2025 21:19:34 +0200 (CEST)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-39c1ef4ae3aso2900468f8f.1
 for <xen-devel@lists.xenproject.org>; Mon, 14 Apr 2025 12:19:34 -0700 (PDT)
Received: from localhost.localdomain
 (cpc92320-cmbg19-2-0-cust1786.5-4.cable.virginm.net. [82.13.70.251])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43f2338d7d8sm191595335e9.4.2025.04.14.12.19.31
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 14 Apr 2025 12:19:32 -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: 65d23c50-1965-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1744658373; x=1745263173; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=U8fAlN7MedeJyXYROFCeGDxxaxouXin+yB8wL9eRK1Y=;
        b=l7ADo9j6C/1Nq/sv7ckGK4j1EA9BoNqh7MIZlmsxWnrTf8cbvsxIQ7e0CVNSx1W9Lh
         zfzqyQCARxBYB4z3X3E7h3L7EiSf7k3YuyvuAgkBESbfdrn5VVFKgaDDWkY6R9Rwe4gO
         wcXge4Bltv9zx1J0eTJbRUNmrN9FraNL6ciNeTZdxZlgieAclQMJu4beIZsQSUiiiOnA
         7cXUL01e4aDtREUO/2d4h7R2M6CPaaxKqeTf6wuHmP/S+85by3fkQqxQntTNrlu/NIhk
         X0onwTKmQFkFzMTpxqJkULTIxdnlscle1NBmMzQY7mExDl1d6awrO2gzeKX6LdJqA+Bd
         qU8A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744658373; x=1745263173;
        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=U8fAlN7MedeJyXYROFCeGDxxaxouXin+yB8wL9eRK1Y=;
        b=J0W0QjN6fCKGXKWmBlV876sIpQabYE+e1uWvyxXDPGkJXEd/A6Q2Vrwwds2uHwPzjO
         VcohYwQ1bxZ3ZKI1fAxotRjpvaPQzgta4C705eNMk2Vm2apyxt1qCmMYMByL6mpRSj97
         /hTOI3/sMpr/41B2POWz0uUDCeiyA4wFmzxGC12ODauChUT/5SRidPLAkr/wd4rnLSCz
         jNnbY+vqASns7o+dCokb879+0JzB3tsXJsuSYH2q8OdUE0U2Mde0Bg9iNBedi3wCHvcO
         ADJkGjOhusxw8IZA0Gv1LnHq5psgHRayv8PAQVA0V85/MkN43+eVOiFbVg2BNm+CGo6H
         jXcg==
X-Gm-Message-State: AOJu0Yx/240EY/BcxDZLX+A5STBHJsnq+hd5tgWFrXNuMSGsjnXCiijo
	2VlzpQA0kxWEn5RMjgTawonvkBaMdK90YqzeoouO3oq4tbqSaCSs1uYgpRoIvTc=
X-Gm-Gg: ASbGncuDr1uWCxco1fB8W5A+eTo4Y81C0FasYGmwPUHkyrM8oPHVzDCA48Roli8bqWS
	dXhJ98rwtqGX7pqLqDFKM29SNffmIhYWaWiryBoufZT7Eaampp9/a/JKoqhuT+w4Iz3V8BUKMFk
	zGR7GNz2aZh15xjuKOzNNnSLv5QJm6HL5jMGARTDSInf9Vmnnp7yPyxyHtYNGK3cVe+MysE1qHq
	wrv8aSMVD9X7JcybMKxtsfi5vdcVWUtc6IAIUfwErYFged0MGsmzEHoUQYRqxzNTWpyM9TS/G70
	iHBOcEB+ktF+XuHK8zysCq223FevzXrd6oYkzGKC/fPXM/YY8xdaWIUR41MWPwS7angOgQkCuht
	PbqaFVxpl7mMS73KkYVsG3h9sAQXpwNgc36yaWrG8yJg=
X-Google-Smtp-Source: AGHT+IHgU/EFmtScILyYMFknO2qDxs0tw2UuG6kK1Duk9VV3AKU0mpJ0HnYJM3mdpB8UmiYTsrRpaA==
X-Received: by 2002:a5d:64e7:0:b0:39b:3c96:80df with SMTP id ffacd0b85a97d-39edc3057ddmr447971f8f.11.1744658372446;
        Mon, 14 Apr 2025 12:19:32 -0700 (PDT)
From: Andrii Sultanov <sultanovandriy@gmail.com>
X-Google-Original-From: Andrii Sultanov <andriy.sultanov@vates.tech>
To: xen-devel@lists.xenproject.org
Cc: Andrii Sultanov <sultanovandriy@gmail.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v4 2/3] drivers: Change find_iommu_for_device function to take pci_sbdf_t, simplify code
Date: Mon, 14 Apr 2025 20:19:17 +0100
Message-ID: <34125ae23ff54f55637f25afb7972374c87172cd.1744657012.git.andriy.sultanov@vates.tech>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <cover.1744657012.git.andriy.sultanov@vates.tech>
References: <cover.1744657012.git.andriy.sultanov@vates.tech>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Andrii Sultanov <sultanovandriy@gmail.com>

Following a similar change to amd_iommu struct, change the
find_iommu_for_device function to take pci_sbdf_t as a single parameter.
This removes conversions in the majority of cases.

Bloat-o-meter reports (on top of the first patch in the series):
add/remove: 0/0 grow/shrink: 12/11 up/down: 95/-95 (0)
Function                                     old     new   delta
amd_iommu_get_supported_ivhd_type             54      86     +32
parse_ivrs_table                            3955    3966     +11
amd_iommu_assign_device                      271     282     +11
__mon_lengths                               2928    2936      +8
update_intremap_entry_from_msi_msg           859     864      +5
iov_supports_xt                              270     275      +5
amd_setup_hpet_msi                           232     237      +5
amd_iommu_domain_destroy                      46      51      +5
_hvm_dpci_msi_eoi                            155     160      +5
find_iommu_for_device                        242     246      +4
amd_iommu_ioapic_update_ire                  572     575      +3
allocate_domain_resources                     82      83      +1
amd_iommu_read_ioapic_from_ire               347     344      -3
reassign_device                              843     838      -5
amd_iommu_remove_device                      352     347      -5
amd_iommu_get_reserved_device_memory         521     516      -5
amd_iommu_flush_iotlb                        359     354      -5
amd_iommu_add_device                         844     839      -5
amd_iommu_setup_domain_device               1478    1472      -6
build_info                                   752     744      -8
amd_iommu_detect_one_acpi                    886     876     -10
register_range_for_device                    297     281     -16
parse_ivmd_block                            1339    1312     -27

Signed-off-by: Andrii Sultanov <sultanovandriy@gmail.com>

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

---
Changes in V4:
* After amendments to the previous commit which increased improvements
  there, this commit now does not improve code size anymore (but still
  simplifies code), so I've updated the bloat-o-meter report.

Changes in V3:
* Amended commit message
* As the previous patch dropped the aliasing of seg and bdf, renamed users of
  amd_iommu as appropriate.

Changes in V2:
* Split single commit into several patches
* Dropped brackets around &(iommu->sbdf) and &(sbdf)
* Dropped most of the hunk in _invalidate_all_devices - it was
  bloat-equivalent to the existing code - just convert with PCI_SBDF
  instead
* Dropped the hunk in get_intremap_requestor_id (iommu_intr.c) and
  amd_iommu_get_reserved_device_memory (iommu_map.c) as they were only
  increasing the code size.
* Kept "/* XXX */" where appropriate
* Fixed a slip-up in register_range_for_iommu_devices where iommu->sbdf
  replaced the usage of *different* seg and bdf.
---
 xen/drivers/passthrough/amd/iommu.h         |  2 +-
 xen/drivers/passthrough/amd/iommu_acpi.c    | 14 +++++-----
 xen/drivers/passthrough/amd/iommu_cmd.c     |  2 +-
 xen/drivers/passthrough/amd/iommu_init.c    |  4 +--
 xen/drivers/passthrough/amd/iommu_intr.c    | 17 ++++++------
 xen/drivers/passthrough/amd/iommu_map.c     |  2 +-
 xen/drivers/passthrough/amd/pci_amd_iommu.c | 30 ++++++++++-----------
 7 files changed, 35 insertions(+), 36 deletions(-)

diff --git a/xen/drivers/passthrough/amd/iommu.h b/xen/drivers/passthrough/amd/iommu.h
index ba541f7943..2599800e6a 100644
--- a/xen/drivers/passthrough/amd/iommu.h
+++ b/xen/drivers/passthrough/amd/iommu.h
@@ -240,7 +240,7 @@ void amd_iommu_flush_intremap(struct amd_iommu *iommu, uint16_t bdf);
 void amd_iommu_flush_all_caches(struct amd_iommu *iommu);
 
 /* find iommu for bdf */
-struct amd_iommu *find_iommu_for_device(int seg, int bdf);
+struct amd_iommu *find_iommu_for_device(pci_sbdf_t sbdf);
 
 /* interrupt remapping */
 bool cf_check iov_supports_xt(void);
diff --git a/xen/drivers/passthrough/amd/iommu_acpi.c b/xen/drivers/passthrough/amd/iommu_acpi.c
index 025d9be40f..9e4fbee953 100644
--- a/xen/drivers/passthrough/amd/iommu_acpi.c
+++ b/xen/drivers/passthrough/amd/iommu_acpi.c
@@ -239,17 +239,17 @@ static int __init register_range_for_device(
     unsigned int bdf, paddr_t base, paddr_t limit,
     bool iw, bool ir, bool exclusion)
 {
-    int seg = 0; /* XXX */
-    struct ivrs_mappings *ivrs_mappings = get_ivrs_mappings(seg);
+    pci_sbdf_t sbdf = { .seg = 0 /* XXX */, .bdf = bdf };
+    struct ivrs_mappings *ivrs_mappings = get_ivrs_mappings(sbdf.seg);
     struct amd_iommu *iommu;
     u16 req;
     int rc = 0;
 
-    iommu = find_iommu_for_device(seg, bdf);
+    iommu = find_iommu_for_device(sbdf);
     if ( !iommu )
     {
         AMD_IOMMU_WARN("IVMD: no IOMMU for device %pp - ignoring constrain\n",
-                       &PCI_SBDF(seg, bdf));
+                       &sbdf);
         return 0;
     }
     req = ivrs_mappings[bdf].dte_requestor_id;
@@ -263,9 +263,9 @@ static int __init register_range_for_device(
         paddr_t length = limit + PAGE_SIZE - base;
 
         /* reserve unity-mapped page entries for device */
-        rc = reserve_unity_map_for_device(seg, bdf, base, length, iw, ir,
+        rc = reserve_unity_map_for_device(sbdf.seg, bdf, base, length, iw, ir,
                                           false) ?:
-             reserve_unity_map_for_device(seg, req, base, length, iw, ir,
+             reserve_unity_map_for_device(sbdf.seg, req, base, length, iw, ir,
                                           false);
     }
     else
@@ -297,7 +297,7 @@ static int __init register_range_for_iommu_devices(
     /* reserve unity-mapped page entries for devices */
     for ( bdf = rc = 0; !rc && bdf < ivrs_bdf_entries; bdf++ )
     {
-        if ( iommu != find_iommu_for_device(iommu->sbdf.seg, bdf) )
+        if ( iommu != find_iommu_for_device(PCI_SBDF(iommu->sbdf.seg, bdf)) )
             continue;
 
         req = get_ivrs_mappings(iommu->sbdf.seg)[bdf].dte_requestor_id;
diff --git a/xen/drivers/passthrough/amd/iommu_cmd.c b/xen/drivers/passthrough/amd/iommu_cmd.c
index eefd626161..6b80c57f44 100644
--- a/xen/drivers/passthrough/amd/iommu_cmd.c
+++ b/xen/drivers/passthrough/amd/iommu_cmd.c
@@ -288,7 +288,7 @@ void amd_iommu_flush_iotlb(u8 devfn, const struct pci_dev *pdev,
     if ( !pci_ats_enabled(pdev->seg, pdev->bus, pdev->devfn) )
         return;
 
-    iommu = find_iommu_for_device(pdev->seg, pdev->sbdf.bdf);
+    iommu = find_iommu_for_device(pdev->sbdf);
 
     if ( !iommu )
     {
diff --git a/xen/drivers/passthrough/amd/iommu_init.c b/xen/drivers/passthrough/amd/iommu_init.c
index 58d657060a..3f6d2f5db5 100644
--- a/xen/drivers/passthrough/amd/iommu_init.c
+++ b/xen/drivers/passthrough/amd/iommu_init.c
@@ -1540,13 +1540,13 @@ static void invalidate_all_domain_pages(void)
 static int cf_check _invalidate_all_devices(
     u16 seg, struct ivrs_mappings *ivrs_mappings)
 {
-    unsigned int bdf; 
+    unsigned int bdf;
     u16 req_id;
     struct amd_iommu *iommu;
 
     for ( bdf = 0; bdf < ivrs_bdf_entries; bdf++ )
     {
-        iommu = find_iommu_for_device(seg, bdf);
+        iommu = find_iommu_for_device(PCI_SBDF(seg, bdf));
         req_id = ivrs_mappings[bdf].dte_requestor_id;
         if ( iommu )
         {
diff --git a/xen/drivers/passthrough/amd/iommu_intr.c b/xen/drivers/passthrough/amd/iommu_intr.c
index a7347fcbad..16075cd5a1 100644
--- a/xen/drivers/passthrough/amd/iommu_intr.c
+++ b/xen/drivers/passthrough/amd/iommu_intr.c
@@ -337,7 +337,7 @@ void cf_check amd_iommu_ioapic_update_ire(
     /* get device id of ioapic devices */
     bdf = ioapic_sbdf[idx].bdf;
     seg = ioapic_sbdf[idx].seg;
-    iommu = find_iommu_for_device(seg, bdf);
+    iommu = find_iommu_for_device(PCI_SBDF(seg, bdf));
     if ( !iommu )
     {
         AMD_IOMMU_WARN("failed to find IOMMU for IO-APIC @ %04x:%04x\n",
@@ -383,7 +383,7 @@ unsigned int cf_check amd_iommu_read_ioapic_from_ire(
 
     seg = ioapic_sbdf[idx].seg;
     bdf = ioapic_sbdf[idx].bdf;
-    iommu = find_iommu_for_device(seg, bdf);
+    iommu = find_iommu_for_device(PCI_SBDF(seg, bdf));
     if ( !iommu )
         return val;
     req_id = get_intremap_requestor_id(seg, bdf);
@@ -495,16 +495,15 @@ static int update_intremap_entry_from_msi_msg(
     return fresh;
 }
 
-static struct amd_iommu *_find_iommu_for_device(int seg, int bdf)
+static struct amd_iommu *_find_iommu_for_device(pci_sbdf_t sbdf)
 {
     struct amd_iommu *iommu;
-    pci_sbdf_t sbdf = PCI_SBDF(seg, bdf);
 
     for_each_amd_iommu ( iommu )
         if ( iommu->sbdf.sbdf == sbdf.sbdf )
             return NULL;
 
-    iommu = find_iommu_for_device(seg, bdf);
+    iommu = find_iommu_for_device(sbdf);
     if ( iommu )
         return iommu;
 
@@ -524,7 +523,7 @@ int cf_check amd_iommu_msi_msg_update_ire(
     bdf = pdev ? pdev->sbdf.bdf : hpet_sbdf.bdf;
     seg = pdev ? pdev->seg : hpet_sbdf.seg;
 
-    iommu = _find_iommu_for_device(seg, bdf);
+    iommu = _find_iommu_for_device(PCI_SBDF(seg, bdf));
     if ( IS_ERR_OR_NULL(iommu) )
         return PTR_ERR(iommu);
 
@@ -661,8 +660,8 @@ bool __init cf_check iov_supports_xt(void)
         if ( idx == MAX_IO_APICS )
             return false;
 
-        if ( !find_iommu_for_device(ioapic_sbdf[idx].seg,
-                                    ioapic_sbdf[idx].bdf) )
+        if ( !find_iommu_for_device(PCI_SBDF(ioapic_sbdf[idx].seg,
+                                             ioapic_sbdf[idx].bdf)) )
         {
             AMD_IOMMU_WARN("no IOMMU for IO-APIC %#x (ID %x)\n",
                            apic, IO_APIC_ID(apic));
@@ -691,7 +690,7 @@ int __init cf_check amd_setup_hpet_msi(struct msi_desc *msi_desc)
         return -ENODEV;
     }
 
-    iommu = find_iommu_for_device(hpet_sbdf.seg, hpet_sbdf.bdf);
+    iommu = find_iommu_for_device(PCI_SBDF(hpet_sbdf.seg, hpet_sbdf.bdf));
     if ( !iommu )
         return -ENXIO;
 
diff --git a/xen/drivers/passthrough/amd/iommu_map.c b/xen/drivers/passthrough/amd/iommu_map.c
index d28c475650..320a2dc64c 100644
--- a/xen/drivers/passthrough/amd/iommu_map.c
+++ b/xen/drivers/passthrough/amd/iommu_map.c
@@ -717,7 +717,7 @@ int cf_check amd_iommu_get_reserved_device_memory(
             pcidevs_unlock();
 
             if ( pdev )
-                iommu = find_iommu_for_device(seg, bdf);
+                iommu = find_iommu_for_device(sbdf);
             if ( !iommu )
                 continue;
         }
diff --git a/xen/drivers/passthrough/amd/pci_amd_iommu.c b/xen/drivers/passthrough/amd/pci_amd_iommu.c
index 6b58e3380b..3a14770855 100644
--- a/xen/drivers/passthrough/amd/pci_amd_iommu.c
+++ b/xen/drivers/passthrough/amd/pci_amd_iommu.c
@@ -32,35 +32,35 @@ static bool __read_mostly init_done;
 
 static const struct iommu_init_ops _iommu_init_ops;
 
-struct amd_iommu *find_iommu_for_device(int seg, int bdf)
+struct amd_iommu *find_iommu_for_device(pci_sbdf_t sbdf)
 {
-    struct ivrs_mappings *ivrs_mappings = get_ivrs_mappings(seg);
+    struct ivrs_mappings *ivrs_mappings = get_ivrs_mappings(sbdf.seg);
 
-    if ( !ivrs_mappings || bdf >= ivrs_bdf_entries )
+    if ( !ivrs_mappings || sbdf.bdf >= ivrs_bdf_entries )
         return NULL;
 
-    if ( unlikely(!ivrs_mappings[bdf].iommu) && likely(init_done) )
+    if ( unlikely(!ivrs_mappings[sbdf.bdf].iommu) && likely(init_done) )
     {
-        unsigned int bd0 = bdf & ~PCI_FUNC(~0);
+        unsigned int bd0 = sbdf.bdf & ~PCI_FUNC(~0);
 
-        if ( ivrs_mappings[bd0].iommu && ivrs_mappings[bd0].iommu->sbdf.bdf != bdf )
+        if ( ivrs_mappings[bd0].iommu && ivrs_mappings[bd0].iommu->sbdf.bdf != sbdf.bdf )
         {
             struct ivrs_mappings tmp = ivrs_mappings[bd0];
 
             tmp.iommu = NULL;
             if ( tmp.dte_requestor_id == bd0 )
-                tmp.dte_requestor_id = bdf;
-            ivrs_mappings[bdf] = tmp;
+                tmp.dte_requestor_id = sbdf.bdf;
+            ivrs_mappings[sbdf.bdf] = tmp;
 
             printk(XENLOG_WARNING "%pp not found in ACPI tables;"
-                   " using same IOMMU as function 0\n", &PCI_SBDF(seg, bdf));
+                   " using same IOMMU as function 0\n", &sbdf);
 
             /* write iommu field last */
-            ivrs_mappings[bdf].iommu = ivrs_mappings[bd0].iommu;
+            ivrs_mappings[sbdf.bdf].iommu = ivrs_mappings[bd0].iommu;
         }
     }
 
-    return ivrs_mappings[bdf].iommu;
+    return ivrs_mappings[sbdf.bdf].iommu;
 }
 
 /*
@@ -107,7 +107,7 @@ static bool any_pdev_behind_iommu(const struct domain *d,
         if ( pdev == exclude )
             continue;
 
-        if ( find_iommu_for_device(pdev->seg, pdev->sbdf.bdf) == iommu )
+        if ( find_iommu_for_device(pdev->sbdf) == iommu )
             return true;
     }
 
@@ -468,7 +468,7 @@ static int cf_check reassign_device(
     struct amd_iommu *iommu;
     int rc;
 
-    iommu = find_iommu_for_device(pdev->seg, pdev->sbdf.bdf);
+    iommu = find_iommu_for_device(pdev->sbdf);
     if ( !iommu )
     {
         AMD_IOMMU_WARN("failed to find IOMMU: %pp cannot be assigned to %pd\n",
@@ -581,7 +581,7 @@ static int cf_check amd_iommu_add_device(u8 devfn, struct pci_dev *pdev)
         if ( pdev->sbdf.sbdf == iommu->sbdf.sbdf )
             return is_hardware_domain(pdev->domain) ? 0 : -ENODEV;
 
-    iommu = find_iommu_for_device(pdev->seg, pdev->sbdf.bdf);
+    iommu = find_iommu_for_device(pdev->sbdf);
     if ( unlikely(!iommu) )
     {
         /* Filter bridge devices. */
@@ -666,7 +666,7 @@ static int cf_check amd_iommu_remove_device(u8 devfn, struct pci_dev *pdev)
     if ( !pdev->domain )
         return -EINVAL;
 
-    iommu = find_iommu_for_device(pdev->seg, pdev->sbdf.bdf);
+    iommu = find_iommu_for_device(pdev->sbdf);
     if ( !iommu )
     {
         AMD_IOMMU_WARN("failed to find IOMMU: %pp cannot be removed from %pd\n",
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Mon Apr 14 19:19:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 19:19:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.951281.1347398 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4PLH-0007wQ-9c; Mon, 14 Apr 2025 19:19:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 951281.1347398; Mon, 14 Apr 2025 19: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 1u4PLH-0007wH-51; Mon, 14 Apr 2025 19:19:39 +0000
Received: by outflank-mailman (input) for mailman id 951281;
 Mon, 14 Apr 2025 19:19: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=Cm6X=XA=gmail.com=sultanovandriy@srs-se1.protection.inumbo.net>)
 id 1u4PLF-0007CT-Ji
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 19:19:37 +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 66c15be7-1965-11f0-9ffb-bf95429c2676;
 Mon, 14 Apr 2025 21:19:35 +0200 (CEST)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-43cf628cb14so40434975e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 14 Apr 2025 12:19:35 -0700 (PDT)
Received: from localhost.localdomain
 (cpc92320-cmbg19-2-0-cust1786.5-4.cable.virginm.net. [82.13.70.251])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43f2338d7d8sm191595335e9.4.2025.04.14.12.19.33
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 14 Apr 2025 12:19:33 -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: 66c15be7-1965-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1744658374; x=1745263174; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=eOZLBmLdDNNQBE1g2oN3Ah/Zn4iigA5H0Wb1R8V4BP4=;
        b=OKTkGaIq6UeD7wHlEFc1iKGLNZq/gVP0lAcVdPCzW/ebjgeNQ1rU/LKynjLkI1NT7E
         LBLsD9BpM0MeWEg8MIJTS+ZOJd7t74jRqno0oc9I6uk30682oHTR6AlETGauO3MFYQuo
         XFAqCrims0ivYhoFX0WePGCOdQAR09khlKidwP2nbKCDAG1YrfqJZ/d4qT/baFXCAtTr
         FCjuf71cTrURjIt1jyT+kLz6Cj8bUUmZ/cWGLSoDhkIbZEQy2Jr9DXTrythlrF0p41XF
         X8Hu5OEQWVUZpg7T83AckazO/8C+WATWT1BJ3T0+bFyeALbPuPXejc5Ajp8mChcoZBoT
         3fxw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744658374; x=1745263174;
        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=eOZLBmLdDNNQBE1g2oN3Ah/Zn4iigA5H0Wb1R8V4BP4=;
        b=Jjz3gFBiuGMhVMa+HSBDqGj0Sv4w3awvlYed+ZCkuyE01C8nCXhqEZCBxBD9WIzX2F
         Ta+yIHKBSlZXrWS/5D8erALQ+zl0kL3P7YPzkJVYFcAwdoWmPPJjE2+hsFh1TfYDQkKz
         uKYV0QUZIQgE5hO0LqvxFE9k5d/051T7a7DhK6Q492Ltz//3pyXIseLYCXu0lT7I07JR
         ZaiJNCKz2yBedFhM0I6MzJp8Q+qBbNPO9BEaIlC1QB4BevT46DWgjgTttYr05aaeZhSc
         4mJ6EmFY7te4YkXVgn/Uw5+Lod2cdFLsRd/La18GJNY9COxnrZvdlRE6VfiJyt65X7LB
         Bj2g==
X-Gm-Message-State: AOJu0YyziRG5luC7wYZMZBbB+bCij5RG9BUcIDnKzA/tlkBumYY1I1jt
	2E+Rbo/+1He1bzp/Py4xroDjXSi/zsuh0S5OjyX7S4XLkhgBtxobo5T9/PsInRM=
X-Gm-Gg: ASbGncto8CzDSeQyHtUNe3v3iimzxsrXq98xaO4T8jpUGdXYge/GS/msdU77mP1+CQw
	jP27V4w1xAD0X5xTWPs5EJpGLtXZPOjeDcN8yiqUXu4xT9xjVEWjfHBuzplTzRYAe2LE60rREHB
	aY8ENtQATFmMYOnBoIgXpTw4SoyDylXfs0AExTulUgZU3tUTM1oAqZxPmTAfvDgYERLUufDMdVe
	aztQXC6DzmJr+odW9nwkUt8lZL9DGLfVVDAN76gS+HzNIqlc+cr5roa8TyJqouu+lbPWF3ZlUCl
	OrxgTmGmf+zV0OThZtfyggIfv5z6d1fJvU4cD+2/XUSXMjN6RWrqAMxSIwWhHe/xBh1dvInkYkm
	iDtIyjjh+LNViLHbpdXRLmVc4OvamBNm2VYiTYcoPeCA=
X-Google-Smtp-Source: AGHT+IFIOytdl3oFMHljn4el0w9uBIeWdnXY9fe6fJQL82iVB/9uohqTnsLwC1Py0h3dh9fK4+mvLg==
X-Received: by 2002:a05:600c:4f03:b0:43d:186d:a4bf with SMTP id 5b1f17b1804b1-43f94c8a866mr5688945e9.0.1744658374064;
        Mon, 14 Apr 2025 12:19:34 -0700 (PDT)
From: Andrii Sultanov <sultanovandriy@gmail.com>
X-Google-Original-From: Andrii Sultanov <andriy.sultanov@vates.tech>
To: xen-devel@lists.xenproject.org
Cc: Andrii Sultanov <sultanovandriy@gmail.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v4 3/3] drivers: Make ioapic_sbdf and hpet_sbdf contain pci_sbdf_t
Date: Mon, 14 Apr 2025 20:19:18 +0100
Message-ID: <af7536c3234bc7a9d048b4cb1d45f084b4343bdb.1744657012.git.andriy.sultanov@vates.tech>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <cover.1744657012.git.andriy.sultanov@vates.tech>
References: <cover.1744657012.git.andriy.sultanov@vates.tech>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Andrii Sultanov <sultanovandriy@gmail.com>

Following a similar change to amd_iommu struct, make two more structs
take pci_sbdf_t directly instead of seg and bdf separately. This lets us
drop several conversions from the latter to the former and simplifies
several comparisons and assignments.

Bloat-o-meter reports:
add/remove: 0/0 grow/shrink: 1/10 up/down: 256/-320 (-64)
Function                                     old     new   delta
_einittext                                 22092   22348    +256
parse_ivrs_hpet                              248     245      -3
amd_iommu_detect_one_acpi                    876     868      -8
iov_supports_xt                              275     264     -11
amd_iommu_read_ioapic_from_ire               344     332     -12
amd_setup_hpet_msi                           237     224     -13
amd_iommu_ioapic_update_ire                  575     555     -20
reserve_unity_map_for_device                 453     424     -29
_hvm_dpci_msi_eoi                            160     128     -32
amd_iommu_get_supported_ivhd_type             86      30     -56
parse_ivrs_table                            3966    3830    -136

Signed-off-by: Andrii Sultanov <sultanovandriy@gmail.com>

---
Changes in V4:
* Folded several separate seg+bdf comparisons and assignments into one
  with sbdf_t
* With reshuffling in the prior commits, this commit is no longer
  neutral in terms of code size

Changes in V3:
* Dropped aliasing of seg and bdf, renamed users.

Changes in V2:
* Split single commit into several patches
* Change the format specifier to %pp in amd_iommu_ioapic_update_ire
---
 xen/drivers/passthrough/amd/iommu.h      |  5 +--
 xen/drivers/passthrough/amd/iommu_acpi.c | 30 +++++++---------
 xen/drivers/passthrough/amd/iommu_intr.c | 44 +++++++++++-------------
 3 files changed, 37 insertions(+), 42 deletions(-)

diff --git a/xen/drivers/passthrough/amd/iommu.h b/xen/drivers/passthrough/amd/iommu.h
index 2599800e6a..52f748310b 100644
--- a/xen/drivers/passthrough/amd/iommu.h
+++ b/xen/drivers/passthrough/amd/iommu.h
@@ -262,7 +262,7 @@ int cf_check amd_setup_hpet_msi(struct msi_desc *msi_desc);
 void cf_check amd_iommu_dump_intremap_tables(unsigned char key);
 
 extern struct ioapic_sbdf {
-    u16 bdf, seg;
+    pci_sbdf_t sbdf;
     u8 id;
     bool cmdline;
     u16 *pin_2_idx;
@@ -273,7 +273,8 @@ unsigned int ioapic_id_to_index(unsigned int apic_id);
 unsigned int get_next_ioapic_sbdf_index(void);
 
 extern struct hpet_sbdf {
-    u16 bdf, seg, id;
+    pci_sbdf_t sbdf;
+    uint16_t id;
     enum {
         HPET_NONE,
         HPET_CMDL,
diff --git a/xen/drivers/passthrough/amd/iommu_acpi.c b/xen/drivers/passthrough/amd/iommu_acpi.c
index 9e4fbee953..14845766e6 100644
--- a/xen/drivers/passthrough/amd/iommu_acpi.c
+++ b/xen/drivers/passthrough/amd/iommu_acpi.c
@@ -707,8 +707,7 @@ static int __init cf_check parse_ivrs_ioapic(const char *str)
         }
     }
 
-    ioapic_sbdf[idx].bdf = PCI_BDF(bus, dev, func);
-    ioapic_sbdf[idx].seg = seg;
+    ioapic_sbdf[idx].sbdf = PCI_SBDF( seg, PCI_BDF(bus, dev, func) );
     ioapic_sbdf[idx].id = id;
     ioapic_sbdf[idx].cmdline = true;
 
@@ -734,8 +733,7 @@ static int __init cf_check parse_ivrs_hpet(const char *str)
         return -EINVAL;
 
     hpet_sbdf.id = id;
-    hpet_sbdf.bdf = PCI_BDF(bus, dev, func);
-    hpet_sbdf.seg = seg;
+    hpet_sbdf.sbdf = PCI_SBDF( seg, PCI_BDF(bus, dev, func) );
     hpet_sbdf.init = HPET_CMDL;
 
     return 0;
@@ -748,6 +746,7 @@ static u16 __init parse_ivhd_device_special(
 {
     u16 dev_length, bdf;
     unsigned int apic, idx;
+    pci_sbdf_t sbdf;
 
     dev_length = sizeof(*special);
     if ( header_length < (block_length + dev_length) )
@@ -757,6 +756,7 @@ static u16 __init parse_ivhd_device_special(
     }
 
     bdf = special->used_id;
+    sbdf = PCI_SBDF(seg, bdf);
     if ( bdf >= ivrs_bdf_entries )
     {
         AMD_IOMMU_ERROR("IVHD: invalid Device_Entry Dev_Id %#x\n", bdf);
@@ -764,7 +764,7 @@ static u16 __init parse_ivhd_device_special(
     }
 
     AMD_IOMMU_DEBUG("IVHD Special: %pp variety %#x handle %#x\n",
-                    &PCI_SBDF(seg, bdf), special->variety, special->handle);
+                    &sbdf, special->variety, special->handle);
     add_ivrs_mapping_entry(bdf, bdf, special->header.data_setting, 0, true,
                            iommu);
 
@@ -780,8 +780,7 @@ static u16 __init parse_ivhd_device_special(
          */
         for ( idx = 0; idx < nr_ioapic_sbdf; idx++ )
         {
-            if ( ioapic_sbdf[idx].bdf == bdf &&
-                 ioapic_sbdf[idx].seg == seg &&
+            if ( ioapic_sbdf[idx].sbdf.sbdf == sbdf.sbdf &&
                  ioapic_sbdf[idx].cmdline )
                 break;
         }
@@ -790,7 +789,7 @@ static u16 __init parse_ivhd_device_special(
             AMD_IOMMU_DEBUG("IVHD: Command line override present for IO-APIC %#x"
                             "(IVRS: %#x devID %pp)\n",
                             ioapic_sbdf[idx].id, special->handle,
-                            &PCI_SBDF(seg, bdf));
+                            &sbdf);
             break;
         }
 
@@ -805,8 +804,7 @@ static u16 __init parse_ivhd_device_special(
                                 special->handle);
             else if ( idx != MAX_IO_APICS && ioapic_sbdf[idx].pin_2_idx )
             {
-                if ( ioapic_sbdf[idx].bdf == bdf &&
-                     ioapic_sbdf[idx].seg == seg )
+                if ( ioapic_sbdf[idx].sbdf.sbdf == sbdf.sbdf )
                     AMD_IOMMU_WARN("IVHD: duplicate IO-APIC %#x entries\n",
                                     special->handle);
                 else
@@ -827,8 +825,7 @@ static u16 __init parse_ivhd_device_special(
                 }
 
                 /* set device id of ioapic */
-                ioapic_sbdf[idx].bdf = bdf;
-                ioapic_sbdf[idx].seg = seg;
+                ioapic_sbdf[idx].sbdf = sbdf;
                 ioapic_sbdf[idx].id = special->handle;
 
                 ioapic_sbdf[idx].pin_2_idx = xmalloc_array(
@@ -862,13 +859,12 @@ static u16 __init parse_ivhd_device_special(
             AMD_IOMMU_DEBUG("IVHD: Command line override present for HPET %#x "
                             "(IVRS: %#x devID %pp)\n",
                             hpet_sbdf.id, special->handle,
-                            &PCI_SBDF(seg, bdf));
+                            &sbdf);
             break;
         case HPET_NONE:
             /* set device id of hpet */
             hpet_sbdf.id = special->handle;
-            hpet_sbdf.bdf = bdf;
-            hpet_sbdf.seg = seg;
+            hpet_sbdf.sbdf = sbdf;
             hpet_sbdf.init = HPET_IVHD;
             break;
         default:
@@ -1139,9 +1135,9 @@ static int __init cf_check parse_ivrs_table(struct acpi_table_header *table)
                 return -ENXIO;
         }
 
-        if ( !ioapic_sbdf[idx].seg &&
+        if ( !ioapic_sbdf[idx].sbdf.seg &&
              /* SB IO-APIC is always on this device in AMD systems. */
-             ioapic_sbdf[idx].bdf == PCI_BDF(0, 0x14, 0) )
+             ioapic_sbdf[idx].sbdf.bdf == PCI_BDF(0, 0x14, 0) )
             sb_ioapic = 1;
 
         if ( ioapic_sbdf[idx].pin_2_idx )
diff --git a/xen/drivers/passthrough/amd/iommu_intr.c b/xen/drivers/passthrough/amd/iommu_intr.c
index 16075cd5a1..b788675be2 100644
--- a/xen/drivers/passthrough/amd/iommu_intr.c
+++ b/xen/drivers/passthrough/amd/iommu_intr.c
@@ -323,7 +323,8 @@ void cf_check amd_iommu_ioapic_update_ire(
     unsigned int apic, unsigned int pin, uint64_t rte)
 {
     struct IO_APIC_route_entry new_rte;
-    int seg, bdf, rc;
+    pci_sbdf_t sbdf;
+    int rc;
     struct amd_iommu *iommu;
     unsigned int idx;
 
@@ -335,20 +336,18 @@ void cf_check amd_iommu_ioapic_update_ire(
     new_rte.raw = rte;
 
     /* get device id of ioapic devices */
-    bdf = ioapic_sbdf[idx].bdf;
-    seg = ioapic_sbdf[idx].seg;
-    iommu = find_iommu_for_device(PCI_SBDF(seg, bdf));
+    sbdf = ioapic_sbdf[idx].sbdf;
+    iommu = find_iommu_for_device(sbdf);
     if ( !iommu )
     {
-        AMD_IOMMU_WARN("failed to find IOMMU for IO-APIC @ %04x:%04x\n",
-                       seg, bdf);
+        AMD_IOMMU_WARN("failed to find IOMMU for IO-APIC @ %pp\n", &sbdf);
         __ioapic_write_entry(apic, pin, true, new_rte);
         return;
     }
 
     /* Update interrupt remapping entry */
     rc = update_intremap_entry_from_ioapic(
-             bdf, iommu, &new_rte,
+             sbdf.bdf, iommu, &new_rte,
              &ioapic_sbdf[idx].pin_2_idx[pin]);
 
     if ( rc )
@@ -369,7 +368,8 @@ unsigned int cf_check amd_iommu_read_ioapic_from_ire(
     unsigned int offset;
     unsigned int val = __io_apic_read(apic, reg);
     unsigned int pin = (reg - 0x10) / 2;
-    uint16_t seg, bdf, req_id;
+    pci_sbdf_t sbdf;
+    uint16_t req_id;
     const struct amd_iommu *iommu;
     union irte_ptr entry;
 
@@ -381,12 +381,11 @@ unsigned int cf_check amd_iommu_read_ioapic_from_ire(
     if ( offset >= INTREMAP_MAX_ENTRIES )
         return val;
 
-    seg = ioapic_sbdf[idx].seg;
-    bdf = ioapic_sbdf[idx].bdf;
-    iommu = find_iommu_for_device(PCI_SBDF(seg, bdf));
+    sbdf = ioapic_sbdf[idx].sbdf;
+    iommu = find_iommu_for_device(sbdf);
     if ( !iommu )
         return val;
-    req_id = get_intremap_requestor_id(seg, bdf);
+    req_id = get_intremap_requestor_id(sbdf.seg, sbdf.bdf);
     entry = get_intremap_entry(iommu, req_id, offset);
 
     if ( !(reg & 1) )
@@ -515,15 +514,15 @@ int cf_check amd_iommu_msi_msg_update_ire(
     struct msi_desc *msi_desc, struct msi_msg *msg)
 {
     struct pci_dev *pdev = msi_desc->dev;
-    int bdf, seg, rc;
+    pci_sbdf_t sbdf;
+    int rc;
     struct amd_iommu *iommu;
     unsigned int i, nr = 1;
     u32 data;
 
-    bdf = pdev ? pdev->sbdf.bdf : hpet_sbdf.bdf;
-    seg = pdev ? pdev->seg : hpet_sbdf.seg;
+    sbdf = pdev ? pdev->sbdf : hpet_sbdf.sbdf;
 
-    iommu = _find_iommu_for_device(PCI_SBDF(seg, bdf));
+    iommu = _find_iommu_for_device(sbdf);
     if ( IS_ERR_OR_NULL(iommu) )
         return PTR_ERR(iommu);
 
@@ -532,7 +531,7 @@ int cf_check amd_iommu_msi_msg_update_ire(
 
     if ( msi_desc->remap_index >= 0 && !msg )
     {
-        update_intremap_entry_from_msi_msg(iommu, bdf, nr,
+        update_intremap_entry_from_msi_msg(iommu, sbdf.bdf, nr,
                                            &msi_desc->remap_index,
                                            NULL, NULL);
 
@@ -543,7 +542,7 @@ int cf_check amd_iommu_msi_msg_update_ire(
     if ( !msg )
         return 0;
 
-    rc = update_intremap_entry_from_msi_msg(iommu, bdf, nr,
+    rc = update_intremap_entry_from_msi_msg(iommu, sbdf.bdf, nr,
                                             &msi_desc->remap_index,
                                             msg, &data);
     if ( rc > 0 )
@@ -660,8 +659,7 @@ bool __init cf_check iov_supports_xt(void)
         if ( idx == MAX_IO_APICS )
             return false;
 
-        if ( !find_iommu_for_device(PCI_SBDF(ioapic_sbdf[idx].seg,
-                                             ioapic_sbdf[idx].bdf)) )
+        if ( !find_iommu_for_device(ioapic_sbdf[idx].sbdf) )
         {
             AMD_IOMMU_WARN("no IOMMU for IO-APIC %#x (ID %x)\n",
                            apic, IO_APIC_ID(apic));
@@ -690,14 +688,14 @@ int __init cf_check amd_setup_hpet_msi(struct msi_desc *msi_desc)
         return -ENODEV;
     }
 
-    iommu = find_iommu_for_device(PCI_SBDF(hpet_sbdf.seg, hpet_sbdf.bdf));
+    iommu = find_iommu_for_device(hpet_sbdf.sbdf);
     if ( !iommu )
         return -ENXIO;
 
-    lock = get_intremap_lock(hpet_sbdf.seg, hpet_sbdf.bdf);
+    lock = get_intremap_lock(hpet_sbdf.sbdf.seg, hpet_sbdf.sbdf.bdf);
     spin_lock_irqsave(lock, flags);
 
-    msi_desc->remap_index = alloc_intremap_entry(iommu, hpet_sbdf.bdf, 1);
+    msi_desc->remap_index = alloc_intremap_entry(iommu, hpet_sbdf.sbdf.bdf, 1);
     if ( msi_desc->remap_index >= INTREMAP_MAX_ENTRIES )
     {
         msi_desc->remap_index = -1;
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Mon Apr 14 19:31:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 14 Apr 2025 19:31:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.951338.1347430 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4PWv-0005pk-Mb; Mon, 14 Apr 2025 19:31:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 951338.1347430; Mon, 14 Apr 2025 19:31: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 1u4PWv-0005pd-Jp; Mon, 14 Apr 2025 19:31:41 +0000
Received: by outflank-mailman (input) for mailman id 951338;
 Mon, 14 Apr 2025 19: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=B3Nx=XA=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u4PWt-0005pX-TF
 for xen-devel@lists.xenproject.org; Mon, 14 Apr 2025 19:31:39 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on2060f.outbound.protection.outlook.com
 [2a01:111:f403:2415::60f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 14b82d72-1967-11f0-9eae-5ba50f476ded;
 Mon, 14 Apr 2025 21:31:38 +0200 (CEST)
Received: from BYAPR21CA0005.namprd21.prod.outlook.com (2603:10b6:a03:114::15)
 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.8632.32; Mon, 14 Apr
 2025 19:31:33 +0000
Received: from SJ1PEPF000026C3.namprd04.prod.outlook.com
 (2603:10b6:a03:114:cafe::c7) by BYAPR21CA0005.outlook.office365.com
 (2603:10b6:a03:114::15) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.11 via Frontend Transport; Mon,
 14 Apr 2025 19:31:32 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ1PEPF000026C3.mail.protection.outlook.com (10.167.244.100) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Mon, 14 Apr 2025 19:31:32 +0000
Received: from localhost (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; Mon, 14 Apr
 2025 14:31:30 -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: 14b82d72-1967-11f0-9eae-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=fie2ck1cfvbltV+ZRWrLc62TOW5j2t6wbuZhKA22W+zRYNPIfyrKiomfYXcLmr15JeNs4oQrktpHCkWSsvd9BCm+9LXcRqmJRwmgvFXczG7FNPgNvw5CjNg8bW8TA1I7YTNO84TZBozv8zscMY1oNxYscKmG8uusA83jV2Czoqz1uGYYALpoErbezW7z6XnQAvKsyzA3nvZ/nfK60/xJEMtjEOD78WGTaWvSLUno4I1ixhjPulIF7riM3k+Dd83gKb1CqkUH6XZ8BtOb9t75/ChrPigXjFi7ODNL6WVWHTcC875VFiqXyVEVq7LII9QPs+p0cj+foTRaJeWKx3sY4A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=NedxB70gyIinom5R3Vejt0xl8WoqeM9u1PaHTk0lkoc=;
 b=QZZViK5RV/ZgU51nYtPVOttAcU9Nzit4TKAHfvnt2vp8jx1ADqpnGr0F9pEKTJB5JRSrstK7GikAOXDgwE2uBDkir+EYycsd2YVbZkSc1e+HknYPoiCDWiinVTeXiappiewC3NXMkerlccbfFDonay6bLl7AHRxMQwHuPJq3tsj/bx7MdWeuaJP71NayuNAFkLZ9sxc+rNtIvDOBJ2dZ/2UqTU7o565dtI9yeOsDOBFK641/rwjmHcIv80oN9MwBDqow3Hcanm+d9eu3z8waSfI28Ch5SJPyZ38NTSjbsq7VPzQ/EvQKV37r7QeHq+KYfsmW6APN+uzsnAr67+Mw/g==
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=NedxB70gyIinom5R3Vejt0xl8WoqeM9u1PaHTk0lkoc=;
 b=OBp5wy4Hf0v+7gFVlZEpiUiHVs05sS+f4QQt5xMOURCUhNxMTt9SVVyCG5XaVe4N9pZU/Ywco+sefbY80vB5bbIGgZqtyJYaoTOifIYit8tXhgv2H+v4RbDUh6fJnKrxIMn7v9C1SIleDQ3NPRB/Tq9+5bV1OmcPVCj8vjDpewk=
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
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Mon, 14 Apr 2025 20:31:29 +0100
Message-ID: <D96M14WZ37ZW.D7AAHJ3RMV9D@amd.com>
CC: "Daniel P. Smith" <dpsmith@apertussolutions.com>, Xenia Ragiadakou
	<xenia.ragiadakou@amd.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@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>
Subject: Re: [PATCH v3 16/16] x86/hyperlaunch: add capabilities to boot
 domain
From: Alejandro Vallejo <agarciav@amd.com>
To: Jan Beulich <jbeulich@suse.com>, Jason Andryuk <jason.andryuk@amd.com>
X-Mailer: aerc 0.20.1
References: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-17-agarciav@amd.com>
 <93bad6aa-57a8-427d-a0f6-924f03f0db34@suse.com>
In-Reply-To: <93bad6aa-57a8-427d-a0f6-924f03f0db34@suse.com>
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: SJ1PEPF000026C3:EE_|PH0PR12MB7907:EE_
X-MS-Office365-Filtering-Correlation-Id: 8fcb2e12-b77a-4ab0-d7df-08dd7b8af62a
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?cFF0N1ExbTJ5aVcvZ1kzWTh4TEZwam5uMFVVMGVRZzBmZENYaGk1NDBYWFh4?=
 =?utf-8?B?Ky82MlFqalVPUmRQS3VrcmNYeW9heWszNW9OVFlxSVhyRjlBczN0THozbjNV?=
 =?utf-8?B?aVhYV004Q3lmWUVMSmlXSGhMUmZPMnRnU0NLUXNxQTYxM1VxK05oQTVnOUxD?=
 =?utf-8?B?a2RLVXlrSXpRVWNCa2FqblhmWC93Wk1VWTlQT0hsUFJEVUtaZFgwOEhLK0t0?=
 =?utf-8?B?SFdzV1JHbk0yQ1ZvUEJRQXBEVFBoZ0hoYjNGRHFFMzZ0azdBNEFzSlZ0Nm8r?=
 =?utf-8?B?K3FER0srNXM4THgvTkx1RG1INjBlZ1BvVjVwd1JubFY5RFJBYVJLWjdLVzdP?=
 =?utf-8?B?TVViOWJyQTI2VE9aU1NUY3cxK0MrUFlwMi9FOVZLWFRoT21lcWFoUmZLR25m?=
 =?utf-8?B?dEFLQWJ5Q3NwYXZUNkUrZ3NyNXpuMk80N3lPZzlyTzRrWnNBck1HWHhINlNo?=
 =?utf-8?B?Q2JqVG5xeWZXOVZjckh2TFE0dDVCQ0JvTEhYTmswRVlXRlcvVnpwZEN3RU5w?=
 =?utf-8?B?a0JQTkJLa0EwNSsxcUxGNWVjRXJKRmRSbHVOQkRQaHQxQmo1cTJMVWp2cXdT?=
 =?utf-8?B?SmlNZXI3MjJ1aTMxN2l4a2daMk9SUm5WWlMwalZVQ0cvcEw1VW9QRTlGRm0v?=
 =?utf-8?B?YWh0WmlnZGg5ZlVlT2ZyZXd5Ny84dXREekhpay84SVVEMXRUYzZ1VXJkWFJH?=
 =?utf-8?B?cXE4THBmbjI0Q2VzLzBzbVNUVkY2QlNiR1RDdVhlVDU2WURKNS8yenNZNkRk?=
 =?utf-8?B?dlVsTFVqUUY3a3kwRG9naHMva2hlOUhrM2FaRG9PVUVKd0Uwa2VOd3NsaHgv?=
 =?utf-8?B?TVJrbnE0WWxZc1NjMlluT1lSSHpNY2JvZnhUN1kzQWhkK0JSbURNWDI1Nksr?=
 =?utf-8?B?N0l4VjhnblY4SDBKRStZWHJXczMrSXY1U3pIamtkU3BaSUUzaHZ5QllIUDR1?=
 =?utf-8?B?dnljMWJJNHdKaFYxT3pRbng4VFQzdkZ5VHY0eFhxN0Jybkl3dGZldHBpbmhh?=
 =?utf-8?B?QXlWS00rREFWYnBkcFhHa2RZdVI3ZHg2MkdITmtiQ0Z2ODBJTXpmQzZJR2pN?=
 =?utf-8?B?bEpHaUpwVDNZY1FFSVpGcDVzcXY0Y2NiS29uUk5QV016Umh4UHVxK0VTVWJy?=
 =?utf-8?B?dkhFTWxsdG12NisyWVBkSVQ1OHBEeUFLdUVVM0hCNWh1SEM5LzRCN28vNllG?=
 =?utf-8?B?K3hDMFNkREtNNU9ibjVRa1hvREhEMmhCUGUxcmV6aXlDWHR5Y01QR0hYazli?=
 =?utf-8?B?M1VlUi91Wm5HWFZ1TWNTYjU2QStUYWk2YkVIYUZDQ3g2ak1qTm1ONkNCaVMr?=
 =?utf-8?B?d1JoMDJucWVDeWxnM3Jzd1MzTzJ3WFBLWFphamJZSlJDdEw5bWpqS3I3SzRh?=
 =?utf-8?B?eTVpQUg1b2VBSkNkL1BqelZzVHZMbWFqeWJZdWxRcWE1V1NDV25lNHRLR2dF?=
 =?utf-8?B?bEIrdnVsQ0VOa0hocG5XZy9vZ25Nd3RBK2I2dUhxT2JVOTN1ZXJhSlZ3NzA4?=
 =?utf-8?B?YkJyWkphVzFCb2VPSDNPQUU5czNIV1dNOE1wVWhXWmR2TXc2eWp2ZnBIQ1FG?=
 =?utf-8?B?SDlyVUVkUnljMU1tUGhlMmF3bC80OG9uOGV0ZkRBUVZqRUx2MHRhVEpKbURI?=
 =?utf-8?B?Q2sxNUl0R3RpcXA0N3pCUEo4NTRYc3UvSlV3b1grUjNDdTFIUmFWTUVaSUc3?=
 =?utf-8?B?bk1zb1FGbldCZzZra3VyL2l6c3NRRHhvTHU5bFBXaGxwN1JLMjM5aTEvVHJi?=
 =?utf-8?B?M2Jjb2EwQWsrZU9CSjYxRlkwM1l3cnBNTTZ1UkZnNHVkcThacVE0aVpneDRE?=
 =?utf-8?B?MjZKdDVvYXBnbUJJTHdiQ25hc2krKzIzTzVxbjU4UkFEUERpVW9GVUJMbDB3?=
 =?utf-8?B?SGNKeHlEcWRmclY5R0laQlE4d3NWZU80VTBiRFJyUGRWZ2xmR1pINTV5N1d0?=
 =?utf-8?B?RFFyZXB5OFpBQUxoWCsyMy9hODFrUmFUb0pZb3NFSVZvRlYrSWN5RDg4OUZK?=
 =?utf-8?B?ekxITzV1Tm53UnZGSnRMbnBzM212Tk8zbXR6VDg0N2JLRzI3L2liZmJkaDZK?=
 =?utf-8?Q?HBv+Ei?=
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: 14 Apr 2025 19:31:32.0777
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 8fcb2e12-b77a-4ab0-d7df-08dd7b8af62a
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:
	SJ1PEPF000026C3.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR12MB7907

On Thu Apr 10, 2025 at 1:18 PM BST, Jan Beulich wrote:
> On 08.04.2025 18:07, Alejandro Vallejo wrote:
>> From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
>>=20
>> Introduce the ability to assign capabilities to a domain via its definit=
ion in
>> device tree. The first capability enabled to select is the control domai=
n
>> capability. The capability property is a bitfield in both the device tre=
e and
>> `struct boot_domain`.
>>=20
>> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
>> Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>
>> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
>
> The R-b feels kind of redundant with the subsequent S-o-b.

I'll drop it.

>
>> --- a/xen/arch/x86/domain-builder/fdt.c
>> +++ b/xen/arch/x86/domain-builder/fdt.c
>> @@ -257,6 +257,18 @@ static int __init process_domain_node(
>>              bd->max_vcpus =3D val;
>>              printk("  max vcpus: %d\n", bd->max_vcpus);
>>          }
>> +        else if ( strncmp(prop_name, "capabilities", name_len) =3D=3D 0=
 )
>> +        {
>> +            if ( fdt_prop_as_u32(prop, &bd->capabilities) !=3D 0 )
>> +            {
>> +                printk("  failed processing domain id for domain %s\n",=
 name);
>> +                return -EINVAL;
>> +            }
>> +            printk("  caps: ");
>> +            if ( bd->capabilities & BUILD_CAPS_CONTROL )
>> +                printk("c");
>> +            printk("\n");
>> +        }
>
> Like for the other patch: What about other bits being set in the value re=
ad?

I take it that the non-worded suggestion is to have a mask of reserved
bits for each case and check they are not set (giving a warning if they are=
)?

>
>> --- a/xen/arch/x86/setup.c
>> +++ b/xen/arch/x86/setup.c
>> @@ -1006,6 +1006,7 @@ static struct domain *__init create_dom0(struct bo=
ot_info *bi)
>>  {
>>      char *cmdline =3D NULL;
>>      size_t cmdline_size;
>> +    unsigned int create_flags =3D 0;
>>      struct xen_domctl_createdomain dom0_cfg =3D {
>>          .flags =3D IS_ENABLED(CONFIG_TBOOT) ? XEN_DOMCTL_CDF_s3_integri=
ty : 0,
>>          .max_evtchn_port =3D -1,
>> @@ -1037,7 +1038,10 @@ static struct domain *__init create_dom0(struct b=
oot_info *bi)
>>      if ( bd->domid =3D=3D DOMID_INVALID )
>>          /* Create initial domain.  Not d0 for pvshim. */
>>          bd->domid =3D get_initial_domain_id();
>> -    d =3D domain_create(bd->domid, &dom0_cfg, pv_shim ? 0 : CDF_privile=
ged);
>> +    if ( bd->capabilities & BUILD_CAPS_CONTROL )
>> +        create_flags |=3D CDF_privileged;
>
> Seeing that builder_init() in the non-DT case sets the new bit unconditio=
nally,
> isn't the shim's only domain suddenly getting CDF_privileged set this way=
? Oh,
> no, you then ...
>
>> +    d =3D domain_create(bd->domid, &dom0_cfg,
>> +                      pv_shim ? 0 : create_flags);
>
> ... hide the flag here. Any reason to have the intermediate variable in t=
he
> first place

Well, the logic would end up fairly convoluted otherwise. As things
stand this can be encoded in an if-else fashion with 2 calls, but
there's 2 capability flags coming that need integrating together.

This is just avoiding further code motion down the line.

> (can't resist: when there's already a wall of local variables here)?

Heh :). Point taken.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Tue Apr 15 00:26:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 00:26:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.951637.1347481 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4U89-0003vE-Im; Tue, 15 Apr 2025 00:26:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 951637.1347481; Tue, 15 Apr 2025 00:26: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 1u4U89-0003v7-Fj; Tue, 15 Apr 2025 00:26:25 +0000
Received: by outflank-mailman (input) for mailman id 951637;
 Tue, 15 Apr 2025 00:26:23 +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 1u4U87-0003v1-Tv
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 00:26:23 +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 1u4U87-00FAYN-1O;
 Tue, 15 Apr 2025 00:26:23 +0000
Received: from [143.198.24.140] (helo=[100.81.22.8])
 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 1u4U86-007Ruy-2z;
 Tue, 15 Apr 2025 00:26:23 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=2r8v3fmarfxRA8wCDhjSWp6jRVrj22y6cAOlTHJRqa8=; b=oq/NfzN2lF8Wzuv5SWJOPj2Cv1
	g/Iu1fEYBwjsBv1nzFzvKI6ltqjPrI6aJBuJyuRH1hi3ZCxuxgzyzAYLGgmTrB9doO6zAxhHDHa+6
	KXLY+yW53YvNQHAvCpndF8kYD8v/3nCjAgdqpOJWW6w/J78afVp7fT1V2M/yWAUIlHxs=;
Message-ID: <6a681c92-8c61-43f5-b266-b0306bc0b1ce@xen.org>
Date: Tue, 15 Apr 2025 09:26:14 +0900
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 2/7] arm/mpu: Provide access to the MPU region from the
 C code
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>
References: <20250411145655.140667-1-luca.fancellu@arm.com>
 <20250411145655.140667-3-luca.fancellu@arm.com>
 <d58be435-fd83-42bc-9fd0-a8884f358704@xen.org>
 <1A24757A-ECCB-4080-B370-DA44D469CC7D@arm.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <1A24757A-ECCB-4080-B370-DA44D469CC7D@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi Luca,

On 15/04/2025 00:07, Luca Fancellu wrote:
> HI Julien,
> 
>> On 14 Apr 2025, at 12:41, Julien Grall <julien@xen.org> wrote:
>>
>> Hi Luca,
>>
>> On 11/04/2025 23:56, Luca Fancellu wrote:
>>> Implement some utility function in order to access the MPU regions
>>> from the C world.
>>> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
>>> ---
>>> v3 changes:
>>>   - Moved PRBAR0_EL2/PRLAR0_EL2 to arm64 specific
>>>   - Modified prepare_selector() to be easily made a NOP
>>>     for Arm32, which can address up to 32 region without
>>>     changing selector and it is also its maximum amount
>>>     of MPU regions.
>>> ---
>>> ---
>>>   xen/arch/arm/include/asm/arm64/mpu.h |   7 ++
>>>   xen/arch/arm/include/asm/mpu.h       |   1 +
>>>   xen/arch/arm/include/asm/mpu/mm.h    |  24 +++++
>>>   xen/arch/arm/mpu/mm.c                | 125 +++++++++++++++++++++++++++
>>>   4 files changed, 157 insertions(+)
>>> diff --git a/xen/arch/arm/include/asm/arm64/mpu.h b/xen/arch/arm/include/asm/arm64/mpu.h
>>> index 4d2bd7d7877f..b4e1ecdf741d 100644
>>> --- a/xen/arch/arm/include/asm/arm64/mpu.h
>>> +++ b/xen/arch/arm/include/asm/arm64/mpu.h
>>> @@ -8,6 +8,13 @@
>>>     #ifndef __ASSEMBLY__
>>>   +/*
>>> + * The following are needed for the case generators GENERATE_WRITE_PR_REG_CASE
>>> + * and GENERATE_READ_PR_REG_CASE with num==0
>>> + */
>>> +#define PRBAR0_EL2 PRBAR_EL2
>>> +#define PRLAR0_EL2 PRLAR_EL2
>>
>> Rather than aliasing, shouldn't we just rename PR{B,L}AR_EL2 to PR{B,L}AR0_EL2? This would the code mixing between the two.
> 
> PR{B,L}AR0_ELx does not exists really, the PR{B,L}AR<n>_ELx exists for n=1..15, here I’m only using this “alias” for the generator,
> but PR{B,L}AR_EL2 are the real register.

In this case, can PR{B,L}AR0_EL2 defined in mm.c so they are not used 
anywhere else?

> 
>>
>>> +
>>>   /* Protection Region Base Address Register */
>>>   typedef union {
>>>       struct __packed {
>>> diff --git a/xen/arch/arm/include/asm/mpu.h b/xen/arch/arm/include/asm/mpu.h
>>> index e148c705b82c..59ff22c804c1 100644
>>> --- a/xen/arch/arm/include/asm/mpu.h
>>> +++ b/xen/arch/arm/include/asm/mpu.h
>>> @@ -13,6 +13,7 @@
>>>   #define MPU_REGION_SHIFT  6
>>>   #define MPU_REGION_ALIGN  (_AC(1, UL) << MPU_REGION_SHIFT)
>>>   #define MPU_REGION_MASK   (~(MPU_REGION_ALIGN - 1))
>>> +#define MPU_REGION_RES0   (0xFFFULL << 52)
>>>     #define NUM_MPU_REGIONS_SHIFT   8
>>>   #define NUM_MPU_REGIONS         (_AC(1, UL) << NUM_MPU_REGIONS_SHIFT)
>>> diff --git a/xen/arch/arm/include/asm/mpu/mm.h b/xen/arch/arm/include/asm/mpu/mm.h
>>> index 86f33d9836b7..5cabe9d111ce 100644
>>> --- a/xen/arch/arm/include/asm/mpu/mm.h
>>> +++ b/xen/arch/arm/include/asm/mpu/mm.h
>>> @@ -8,6 +8,7 @@
>>>   #include <xen/page-size.h>
>>>   #include <xen/types.h>
>>>   #include <asm/mm.h>
>>> +#include <asm/mpu.h>
>>>     extern struct page_info *frame_table;
>>>   @@ -29,6 +30,29 @@ static inline struct page_info *virt_to_page(const void *v)
>>>       return mfn_to_page(mfn);
>>>   }
>>>   +/* Utility function to be used whenever MPU regions are modified */
>>> +static inline void context_sync_mpu(void)
>>> +{
>>> +    /*
>>> +     * ARM DDI 0600B.a, C1.7.1
>>> +     * Writes to MPU registers are only guaranteed to be visible following a
>>> +     * Context synchronization event and DSB operation.
>>
>> I know we discussed about this before. I find odd that the specification says "context synchronization event and DSB operation". At least to me, it implies "isb + dsb" not the other way around. Has this been clarified in newer version of the specification?
> 
> unfortunately no, I’m looking into the latest one (Arm® Architecture Reference Manual Supplement Armv8, for R-profile AArch64 architecture 0600B.a) but it has the same wording, however
> I spoke internally with Cortex-R architects and they told me to use DSB+ISB

So you didn't speak with the ArmV8-R architects? Asking because we are 
writing code for ArmV8-R (so not only Cortex-R).

In any case, I still think this is something that needs to be clarified
in the specification. So people that don't have access to the Arm 
internal architects know the correct sequence. Is this something you can 
follow-up on?

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Tue Apr 15 00:28:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 00:28:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.951648.1347492 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4UA5-0004Sd-VW; Tue, 15 Apr 2025 00:28:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 951648.1347492; Tue, 15 Apr 2025 00:28:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4UA5-0004SW-R9; Tue, 15 Apr 2025 00:28:25 +0000
Received: by outflank-mailman (input) for mailman id 951648;
 Tue, 15 Apr 2025 00:28:25 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=wZ1T=XB=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u4UA5-0004SQ-7G
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 00:28: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 89eb5cfa-1990-11f0-9eae-5ba50f476ded;
 Tue, 15 Apr 2025 02:28:23 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id BF3675C0438;
 Tue, 15 Apr 2025 00:26:04 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 991C1C4CEEA;
 Tue, 15 Apr 2025 00:28: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: 89eb5cfa-1990-11f0-9eae-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1744676901;
	bh=VP3WQcHfbKts9B1V6W3uonouAjbwEcxuS4Gb6j/bm4Q=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=Yqb3nmF9HF61Mori0sen1SW4k2qKtoR/UIlxVDFT1Mgoz57fXapvyHe63eNd0ISTi
	 CEa4GY+iCDX328ebR1KWBWJX2kzkEvnmlxeG/95Go5tlsotGcKv4m+CeFY/QAjyt5k
	 zMEuIeIHg9b9Z5SgBDv74XOk/zU03l+/Xm5g5P+9wEmSj9wNXUfqI1lr2mDYdc82ix
	 50RLzN7PDsmoeY5ATRegQZnGbDyiyMzgeJ8In8agyOUZdWMLTEDbliwJJO3EvmUYvf
	 g67GpIKylDBRreNHLQbGsHfgOUDtU0vINUA2yAfub8CfRGdf9/yy8pgvD2F5Yqzpsd
	 D3B+7aB+4qJWg==
Date: Mon, 14 Apr 2025 17:28:15 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Alejandro Vallejo <agarciav@amd.com>
cc: Denis Mukhin <dmkhn@proton.me>, xen-devel@lists.xenproject.org, 
    "Daniel P. Smith" <dpsmith@apertussolutions.com>, 
    Jason Andryuk <jason.andryuk@amd.com>, 
    Xenia Ragiadakou <xenia.ragiadakou@amd.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Michal Orzel <michal.orzel@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>, 
    Julien Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>
Subject: Re: [PATCH v3 12/16] x86/hyperlaunch: add domain id parsing to domain
 config
In-Reply-To: <D96K8KED132J.3C79EPWZM813D@amd.com>
Message-ID: <alpine.DEB.2.22.394.2504141726250.8008@ubuntu-linux-20-04-desktop>
References: <20250408160802.49870-1-agarciav@amd.com> <20250408160802.49870-13-agarciav@amd.com> <tRYKTDKcoIBHId12LOD4EHCmAF-AN3V3PmkMqmyIjYCqQJ3TS_0ctt3WMCq1Ez3W7oIGxwU3UsAioyP9T9fMCO78_61AI01oYEknYF_h1_I=@proton.me> <D96K8KED132J.3C79EPWZM813D@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, 14 Apr 2025, Alejandro Vallejo wrote:
> Though I'm starting to get urges to rewrite many of this error handlers
> as asserts, on the basis that "why do we think it's ok to boot with
> malformed DTBs"? A safe system that doesn't boot is more helpful than an
> unsafe one that boots everything except a critical component for you to
> find later on.

It is totally OK to panic on boot if a malformed DTB was passed.  See
the number of panics in xen/arch/arm/dom0less-build.c.


From xen-devel-bounces@lists.xenproject.org Tue Apr 15 00:41:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 00:41:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.951660.1347500 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4UMl-0000pR-0j; Tue, 15 Apr 2025 00:41:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 951660.1347500; Tue, 15 Apr 2025 00: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 1u4UMk-0000pK-UN; Tue, 15 Apr 2025 00:41:30 +0000
Received: by outflank-mailman (input) for mailman id 951660;
 Tue, 15 Apr 2025 00:41: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 1u4UMj-0000pE-JF
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 00:41: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 1u4UMj-00FAvy-03;
 Tue, 15 Apr 2025 00:41:29 +0000
Received: from [143.198.24.140] (helo=[100.81.22.8])
 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 1u4UMi-007rVL-0m;
 Tue, 15 Apr 2025 00:41: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=T/nSxo0GFS84KDM4AxHN+8vc9NnQXnsoRW/ZdiXHhys=; b=wDxUdcMz+y/rhQpbrASq6Vnlom
	sqwOYdC4HhVYMQkXTiEzofJ0BAUjigxCSBaBk0Uy7T9Gq0g9dMAT3R2ydupiDxUUZ9HqqoxXKxsQg
	ppPLKXuZr0J2jVH4Y6QTtjWExnvCh4mTmbnvCI1uKFy5SinQvenumm4APCyjjIVzvjnk=;
Message-ID: <fcacc6b6-ea4b-4917-ac46-5264ac3e4039@xen.org>
Date: Tue, 15 Apr 2025 09:41:21 +0900
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 7/7] arm/mpu: Implement setup_mpu for MPU system
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>
References: <20250411145655.140667-1-luca.fancellu@arm.com>
 <20250411145655.140667-8-luca.fancellu@arm.com>
 <923a2fc0-4eeb-4e09-a56d-7471a56fe3bf@xen.org>
 <4771188E-B307-4452-A900-2ACACC1CE333@arm.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <4771188E-B307-4452-A900-2ACACC1CE333@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi Luca,

On 15/04/2025 00:17, Luca Fancellu wrote:
> HI Julien,
> 
>> On 14 Apr 2025, at 13:12, Julien Grall <julien@xen.org> wrote:
>>
>> Hi Luca,
>>
>> On 11/04/2025 23:56, Luca Fancellu wrote:
>>> Implement the function setup_mpu that will logically track the MPU
>>> regions defined by hardware registers, start introducing data
>>> structures and functions to track the status from the C world.
>>> The xen_mpumap_mask bitmap is used to track which MPU region are
>>> enabled at runtime.
>>> This function is called from setup_mm() which full implementation
>>> will be provided in a later stage.
>>> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
>>> ---
>>> v3 changes:
>>>   - Moved PRENR_MASK define to common.
>>> ---
>>> ---
>>>   xen/arch/arm/include/asm/mpu.h |  2 ++
>>>   xen/arch/arm/mpu/mm.c          | 49 +++++++++++++++++++++++++++++++++-
>>>   2 files changed, 50 insertions(+), 1 deletion(-)
>>> diff --git a/xen/arch/arm/include/asm/mpu.h b/xen/arch/arm/include/asm/mpu.h
>>> index eba5086cde97..77d0566f9780 100644
>>> --- a/xen/arch/arm/include/asm/mpu.h
>>> +++ b/xen/arch/arm/include/asm/mpu.h
>>> @@ -20,6 +20,8 @@
>>>   #define NUM_MPU_REGIONS_MASK    (NUM_MPU_REGIONS - 1)
>>>   #define MAX_MPU_REGIONS         NUM_MPU_REGIONS_MASK
>>>   +#define PRENR_MASK  GENMASK(31, 0)
>>> +
>>>   /* Access permission attributes. */
>>>   /* Read/Write at EL2, No Access at EL1/EL0. */
>>>   #define AP_RW_EL2 0x0
>>> diff --git a/xen/arch/arm/mpu/mm.c b/xen/arch/arm/mpu/mm.c
>>> index 635d1f5a2ba0..e0a40489a7fc 100644
>>> --- a/xen/arch/arm/mpu/mm.c
>>> +++ b/xen/arch/arm/mpu/mm.c
>>> @@ -14,6 +14,17 @@
>>>     struct page_info *frame_table;
>>>   +/* Maximum number of supported MPU memory regions by the EL2 MPU. */
>>> +uint8_t __ro_after_init max_xen_mpumap;
>>
>> Are this variable and ...
>>
>>> +
>>> +/*
>>> + * Bitmap xen_mpumap_mask is to record the usage of EL2 MPU memory regions.
>>> + * Bit 0 represents MPU memory region 0, bit 1 represents MPU memory
>>> + * region 1, ..., and so on.
>>> + * If a MPU memory region gets enabled, set the according bit to 1.
>>> + */
>>> +DECLARE_BITMAP(xen_mpumap_mask, MAX_MPU_REGIONS);
>>
>> ... this one meant to be global? If yes, then they need to have a declaration in the header. If not, then you want to add 'static'.
> 
> yes they are meant to be global, I’ll add a declaration in the header.
> 
>>
>>> +
>>>   /* EL2 Xen MPU memory region mapping table. */
>>>   pr_t xen_mpumap[MAX_MPU_REGIONS];
>>>   @@ -222,9 +233,45 @@ pr_t pr_of_xenaddr(paddr_t base, paddr_t limit, unsigned attr)
>>>       return region;
>>>   }
>>>   +/*
>>> + * The code in this function needs to track the regions programmed in
>>> + * arm64/mpu/head.S
>>> + */
>>> +static void __init setup_mpu(void)
>>> +{
>>> +    register_t prenr;
>>> +    unsigned int i = 0;
>>> +
>>> +    /*
>>> +     * MPUIR_EL2.Region[0:7] identifies the number of regions supported by
>>> +     * the EL2 MPU.
>>> +     */
>>> +    max_xen_mpumap = (uint8_t)(READ_SYSREG(MPUIR_EL2) & NUM_MPU_REGIONS_MASK);
>>> +
>>> +    /* PRENR_EL2 has the N bit set if the N region is enabled, N < 32 */
>>> +    prenr = (READ_SYSREG(PRENR_EL2) & PRENR_MASK);
>>> +
>>> +    /*
>>> +     * Set the bitfield for regions enabled in assembly boot-time.
>>> +     * This code works under the assumption that the code in head.S has
>>> +     * allocated and enabled regions below 32 (N < 32).
>>> +
>> This is a bit fragile. I think it would be better if the bitmap is set by head.S as we add the regions. Same for ...
> 
> So, I was trying to avoid that because in that case we need to place xen_mpumap out of the BSS and start
> manipulating the bitmap from asm, instead I was hoping to use the C code, I understand that if someone
> wants to have more than 31 region as boot region this might break, but it’s also a bit unlikely?

The 31 is only part of the problem. The other problem is there is at 
least one other places in Xen (i.e. as early_fdt_map()) which will also 
create an entry in the MPU before setup_mm()/setup_mpu() is called. I am 
a bit concerned that the assumption is going to spread and yet we have 
no way to programmatically check if this will be broken.

Furthermore, right now, you are hardcoding the slot used and updating 
the MPU. But if you had the bitmap updated, you could just look up for a 
free slot.

> 
> So I was balancing the pros to manipulate everything from the C world against the cons (boot region > 31).
> 
> Is it still your preferred way to handle everything from asm?

Yes. I don't think the change in asm will be large and this would allow 
to remove other assumptions (like in the FDT mapping code).

As a side note, I noticed that the MPU entries are not cleared before we 
enable the MPU. Is there anything in the boot protocol that guarantee 
all the entries will be invalid? If not, then I think we need to clear 
the entries.

Otherwise, your current logic doesn't work. That said, I think it would 
still be necessary even if we get rid of your logic because we don't 
know the content of the MPU entries.

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Tue Apr 15 06:06:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 06:06:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.951917.1347527 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4ZQo-0001tg-Ex; Tue, 15 Apr 2025 06:06:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 951917.1347527; Tue, 15 Apr 2025 06: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 1u4ZQo-0001tZ-Ab; Tue, 15 Apr 2025 06:06:02 +0000
Received: by outflank-mailman (input) for mailman id 951917;
 Tue, 15 Apr 2025 06: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=ai1O=XB=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u4ZQm-0001tT-Sb
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 06:06:01 +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 b34e4928-19bf-11f0-9eae-5ba50f476ded;
 Tue, 15 Apr 2025 08:05:58 +0200 (CEST)
Received: by mail-wr1-x42f.google.com with SMTP id
 ffacd0b85a97d-3913958ebf2so4524065f8f.3
 for <xen-devel@lists.xenproject.org>; Mon, 14 Apr 2025 23:05:58 -0700 (PDT)
Received: from [10.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-43f36558b21sm148163895e9.18.2025.04.14.23.05.57
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 14 Apr 2025 23:05:57 -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: b34e4928-19bf-11f0-9eae-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744697158; x=1745301958; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ZUNOt4EhV9FfWY4vo0xFRNPFQhGXwy9DFCI0tMVJXkM=;
        b=R5vIT7f3XaV3rebID2xpvf/OanGJQHRgB7aj1RpERvRHRhI+gMvaEtAZcELhYYswXo
         UwMF0I0NGSZSHYamBaHDT7uauxPeTxyeiG2dIkWCR6fCsjosNzB92eJjvLvS8rsuyqte
         UMMhnfox5e/TVChJDoEZYFgIyK3u0sZtAWoX24G95oNw14u0JzvZ7JJ78LHcZ1PWjshn
         RRiKViAqZ68Rcf7xWjLGCTAtRQibUvq8eupPP6Gpvn0sDUZeJ6PugTBubD9Zsizedhtj
         hiL1t9YNuFcBvGsCFwH1dtaTPwnru75sTFjFpjGZvWqSqVEfS1l1TFa4ofzJTjRqdM+u
         Xqtg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744697158; x=1745301958;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ZUNOt4EhV9FfWY4vo0xFRNPFQhGXwy9DFCI0tMVJXkM=;
        b=WMaKE9VXGh7sr1Wfe3oolRZtoMgfaY72XHj2UiwiGvHxivtftftnoXKZG8HMc23htM
         UMxNIeGJ+3LMr0GxzQSOoN9WSdOlU3z2afwEPpBiJnKDmdF+i09y1jHFZLTZcTItkH+i
         aV4Ni67M6SNc2xIVdogdIRV4zz3Kg8W0/alMzivTQjmrLrTl9KIGcxfBXIFBL34UU6Ql
         u7EHCCBh07SlI39OTwckqzyC4EjtgKSGAyXBCBFhrpSZ7GlcKVLxHOfpCbo4o2gjHImJ
         d+tocQCndXyaKif5Mfl4zjpiqo998zTG8J6zQjcVm4kslm7CX/yCpn/foxlSXc6sxltK
         p7qA==
X-Forwarded-Encrypted: i=1; AJvYcCUDceyS4Ehoix0UWXyuBK9moq54mi28vh9cOSbPIOVv4AZeQtrf1gsqvCMKK0xH5VaAqsMhO0Q48zE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxHyU/upkBC3xzRAfGdg7iizgBbPXiSCj9x4r+iMvhLuob2yr9e
	t47XZI2DHtkTshQu7pX/amXkES5w7sbvFJfESujWy3eBLbP+jDILJXha7nNFCQ==
X-Gm-Gg: ASbGncv9tG0Uj+Idyjmtd7iT32uoytUhxUcGL6SHDjTVkybhDE+4U0JbwEhIwEqt0/C
	vxmHcfQXoUBnxKgEVq6TZVStr/FoqwwaDM2LoUqh+ILEVPou5ztYKaTq/sZvVaNMMoXcUSKTggg
	FrWvgbOtFxZhyrGvMcNntZQ1wwUVrPd/oM0ud9nJ2lqo1n+8zuBRyKdt0n7oqRytdakxtxvv8o9
	wA2efoi4/GraqRNBk6uBEwSn4bea08AmJm11Mlu0CSQ9/r2NLvfveSWPr8trPYJB9wm87WOPILg
	mqKC2JzUi6N8W4GsU7b8CH4PwBgkPIk6MJXkz89yLbDVDpESz4zUpOJjPUhZKFy0Xzd4It+H8wG
	9a/on34+ckOPa20pPH0c3LHFLuw==
X-Google-Smtp-Source: AGHT+IGf9urRi3ji9AG/IMdXp5P2nIGMruR6Pp1yHrCxAHr+GSM+uYO1kIOvsypYMZWkhhCoIRWQkQ==
X-Received: by 2002:a05:6000:1acf:b0:38d:d0ca:fbad with SMTP id ffacd0b85a97d-39ea51f46d0mr12046448f8f.14.1744697158148;
        Mon, 14 Apr 2025 23:05:58 -0700 (PDT)
Message-ID: <ea28d057-5fd5-4cc2-8833-5427015a4190@suse.com>
Date: Tue, 15 Apr 2025 08:05:56 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 08/16] x86/hyperlaunch: Add helpers to locate multiboot
 modules
To: Alejandro Vallejo <agarciav@amd.com>
Cc: Jason Andryuk <jason.andryuk@amd.com>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Michal Orzel <michal.orzel@amd.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Julien Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 xen-devel@lists.xenproject.org,
 "consulting@bugseng.com" <consulting@bugseng.com>
References: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-9-agarciav@amd.com>
 <fe282aa0-fe2d-49b8-a2aa-325c9825304b@suse.com>
 <D96EI9O4XII2.195QNQNT1T3FG@amd.com>
 <3d2aa870-a1cb-4e33-841d-aee7b6b6db83@suse.com>
 <D96K3ZYDCY4D.11Q4T2TZLNNEU@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: <D96K3ZYDCY4D.11Q4T2TZLNNEU@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 14.04.2025 20:01, Alejandro Vallejo wrote:
> On Mon Apr 14, 2025 at 4:05 PM BST, Jan Beulich wrote:
>> On 14.04.2025 15:37, Alejandro Vallejo wrote:
>>> On Thu Apr 10, 2025 at 11:42 AM BST, Jan Beulich wrote:
>>>> On 08.04.2025 18:07, Alejandro Vallejo wrote:
>>>>> +/*
>>>>> + * Locate a multiboot module given its node offset in the FDT.
>>>>> + *
>>>>> + * The module location may be given via either FDT property:
>>>>> + *     * reg = <address, size>
>>>>> + *         * Mutates `bi` to append the module.
>>>>> + *     * module-index = <idx>
>>>>> + *         * Leaves `bi` unchanged.
>>>>> + *
>>>>> + * @param fdt           Pointer to the full FDT.
>>>>> + * @param node          Offset for the module node.
>>>>> + * @param address_cells Number of 4-octet cells that make up an "address".
>>>>> + * @param size_cells    Number of 4-octet cells that make up a "size".
>>>>> + * @param bi[inout]     Xen's representation of the boot parameters.
>>>>> + * @return              -EINVAL on malformed nodes, otherwise
>>>>> + *                      index inside `bi->mods`
>>>>> + */
>>>>> +int __init fdt_read_multiboot_module(const void *fdt, int node,
>>>>> +                                     int address_cells, int size_cells,
>>>>> +                                     struct boot_info *bi)
>>>>
>>>> Functions without callers and non-static ones without declarations are
>>>> disliked by Misra.
>>>
>>> Can't do much about it if I want them to stand alone in a single patch.
>>> Otherwise the following ones become quite unwieldy to look at. All I can
>>> say is that this function becomes static and with a caller on the next
>>> patch.
>>
>> Which means you need to touch this again anyway. Perhaps we need a Misra
>> deviation for __maybe_unused functions / data, in which case you could
>> use that here and strip it along with making the function static. Cc-ing
>> Bugseng folks.
> 
> It's a transient violation, sure. Do we care about transient MISRA
> violations though? I understand the importance of bisectability, but
> AUIU MISRA compliance matters to the extent that that the tip is
> compliant rather than the intermediate steps?

Thing is that quite a few rules are blocking now. I haven't checked whether
the one here (already) is; if it isn't, we can't exclude it will be by the
time this patch is committed. If then the next patch isn't committed
together with it, we'd face a CI failure.

> Another option would be to fold them this patch and the next together
> after both get their R-by. As I said, I assumed you'd rather see them in
> isolation for purposes of review.

As it looks it's all plain code additions, so reviewability would merely
mildly suffer from patch size. But afaict there would be no loss of clarity.

>>>>> +    /* Otherwise location given as a `reg` property. */
>>>>> +    prop = fdt_get_property(fdt, node, "reg", NULL);
>>>>> +
>>>>> +    if ( !prop )
>>>>> +    {
>>>>> +        printk("  No location for multiboot,module\n");
>>>>> +        return -EINVAL;
>>>>> +    }
>>>>> +    if ( fdt_get_property(fdt, node, "module-index", NULL) )
>>>>> +    {
>>>>> +        printk("  Location of multiboot,module defined multiple times\n");
>>>>> +        return -EINVAL;
>>>>> +    }
>>>>> +
>>>>> +    ret = read_fdt_prop_as_reg(prop, address_cells, size_cells, &addr, &size);
>>>>> +
>>>>> +    if ( ret < 0 )
>>>>> +    {
>>>>> +        printk("  Failed reading reg for multiboot,module\n");
>>>>> +        return -EINVAL;
>>>>> +    }
>>>>> +
>>>>> +    idx = bi->nr_modules + 1;
>>>>
>>>> This at least looks like an off-by-one. If the addition of 1 is really
>>>> intended, I think it needs commenting on.
>>>
>>> Seems to be, yes. The underlying array is a bit bizarre. It's sizes as
>>> MAX_NR_BOOTMODS + 1, with the first one being the DTB itself. I guess
>>> the intent was to take it into account, but bi->nr_modules is
>>> initialised to the number of multiboot modules, so it SHOULD be already
>>> taking it into account.
>>>
>>> Also, the logic for bounds checking seems... off (because of the + 1 I
>>> mentioned before). Or at least confusing, so I've moved to using
>>> ARRAY_SIZE(bi->mods) rather than explicitly comparing against
>>> MAX_NR_BOOTMODS.
>>>
>>> The array is MAX_NR_BOOTMODS + 1 in length, so it's just more cognitive
>>> load than I'm comfortable with.
>>
>> If I'm not mistaken the +1 is inherited from the modules array we had in
>> the past, where we wanted 1 extra slot for Xen itself. Hence before you
>> move to using ARRAY_SIZE() everywhere it needs to really be clear what
>> the +1 here is used for.
> 
> Ew.  Ok, just looked at the code in multiboot_fill_boot_info and indeed
> the arrangement is for all multiboot modules to be in front, and Xen to
> be appended. But bi->nr_modules only lists multiboot modules, so
> increasing that value is therefore not enough (or
> next_boot_module_index() would fail).
> 
> I need to have a proper read on how this is all stitched together.  I
> may simply swap BOOTMOD_XEN with the next entry on append. Though my
> preference would be to _not_ have Xen as part of the module list to
> begin with. Before boot_info that was probably a place as good as any,
> but this would be much better off in a dedicated field.
> 
> I don't see much in terms of usage though. Why is it being added at all?

For hyperlaunch I fear it's you who needs to answer this question. For
pre-hyperlaunch it's (primarily?) for consider_modules(), iirc. See two
of the three comments ahead of its non-recursive invocations.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 15 06:12:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 06:12:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.951929.1347537 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4ZWx-0003UF-2l; Tue, 15 Apr 2025 06:12:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 951929.1347537; Tue, 15 Apr 2025 06:12: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 1u4ZWx-0003U8-01; Tue, 15 Apr 2025 06:12:23 +0000
Received: by outflank-mailman (input) for mailman id 951929;
 Tue, 15 Apr 2025 06:12: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=ai1O=XB=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u4ZWw-0003U2-66
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 06:12: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 97454d33-19c0-11f0-9eae-5ba50f476ded;
 Tue, 15 Apr 2025 08:12:21 +0200 (CEST)
Received: by mail-wr1-x429.google.com with SMTP id
 ffacd0b85a97d-38f2f391864so2882947f8f.3
 for <xen-devel@lists.xenproject.org>; Mon, 14 Apr 2025 23:12:21 -0700 (PDT)
Received: from [10.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-39eae9640fdsm12996679f8f.7.2025.04.14.23.12.20
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 14 Apr 2025 23:12:20 -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: 97454d33-19c0-11f0-9eae-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744697540; x=1745302340; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Cazy3gUj8mUNe484tHWK7n2hEwkLXx1amQlFPBuKfaY=;
        b=L3p0jRxcs2w67cQtP8tV5XAK0ER4H4yHhID6Y5RlRl6s98FB9/Vv2eByah++6SHxXG
         i7RvwcfL53VPw/YTU2U/zJSVj4kGz8RYaD2id5V6Tvnhno2165yrzhdvb8pT28XUo4ft
         aS2jMoSD5c25AUlSss+Hue5XV+dZXlSKVXyzvHFsvI2v9iUlCgYUNSQftB2AqJsqwkxc
         /ofwQdW8Ays99EzL8S8+qFu6ARaYeIk3TJnLOarbm52iIs3bzlHvAunE1v7zt0FPKqi3
         6VvkJDaErDl2MVjoHTDK6NmfIi5Jb178RqRmHZavKN5f95+L/RSuCZgxJTfpyjmkEulG
         r67A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744697540; x=1745302340;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Cazy3gUj8mUNe484tHWK7n2hEwkLXx1amQlFPBuKfaY=;
        b=m/2A/BXwR9ZrCuL2pRMv7ou4eQQMsnYvEZuorCyPRVD4Yx7JzrGAMKX2noIZx7OrzA
         ICFNbi5QRDXY0S3t1Cqn6EBNhW5BTCeqjV0NmMFBOJ8sULv7Kkz2trkg4sQEAeDQy4Yg
         g6BslEui9KZGcmKviQiGOyXtaWpa1TM2uRxVZF9h6+cyldtYFHgNhz5FNNFdYG9wgiCi
         179F3AiN5B+K1zDY3fljrciJJ/RLNqc05YGsluKp3vhl6r1gvN5yekeHRxJlYhNe1sOt
         8nAZLyBpx4hgs1T36lwSW0wxdiiDRn/+aO290Fp/4RgLqV+sGD7Wm1WwwEYynPfeaNeu
         H8sQ==
X-Forwarded-Encrypted: i=1; AJvYcCXVGWkjl9TzvxEwVnR/YWBxEdBvCT1Kz7zcZ613ApL00bcaeSsA8rvryEqW3hMXNPXC4UWQ3UDCsk0=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx+c1Nqrub6Uj3eemWFir0EFGnmOJn2X56Ip0Wyv32OuIxExOCu
	cFNNSWNOa+D7HvsdHxNgptXxg/I/urlSRCMQvUXUJzQ1AePBypzhZdKGUBjdYA==
X-Gm-Gg: ASbGncsZEQHnTd2is0lA7P6xU5p5mhbUn9/TiyKc0RzKbz889ODriP07p5mJYuyGCKy
	iRl+oQAtB6776dmsGRQi8zN7Z7Ec5giHxzCgsj3KF5LWYwoDPDynjnomPqULBDSa1pybVs1y50F
	3IBimVUqMqhZw8FpuR/u6AfeYFxTzk2ilXp+dAYCTIMpdZLldaYvOIcFfeh1FCNaTOpyREvgvuW
	hZLdOGfUhr3sbtPxSp2mFSqhF6/jK7MDpszSo0pFCzRx04sjX/zgDLsBcDdzUOFHVYXM5gD77sd
	RUKI5F4d1Laxar95HRf4nFR38dKQ/gCHmsRhHFQVKZP7fc43/b71u1A2u9NA8gwFrnTLSzjOme+
	mJ3agWAZyljnEV/yIBhypFlUexA==
X-Google-Smtp-Source: AGHT+IEmVw30DPuFhCvXtESIWOqd/amnBn/49z+OtHDROXXOe4HMBlZ9MHO8BUpE53YG8Z63/oyXqQ==
X-Received: by 2002:a5d:64c8:0:b0:390:f738:246b with SMTP id ffacd0b85a97d-39ea51f58f3mr11563877f8f.15.1744697540677;
        Mon, 14 Apr 2025 23:12:20 -0700 (PDT)
Message-ID: <93e8be80-ed6b-48ef-8e14-e8ae880b5cf7@suse.com>
Date: Tue, 15 Apr 2025 08:12:19 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 11/16] x86/hyperlaunch: locate dom0 initrd with
 hyperlaunch
To: Alejandro Vallejo <agarciav@amd.com>
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Jason Andryuk <jason.andryuk@amd.com>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Michal Orzel <michal.orzel@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: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-12-agarciav@amd.com>
 <b3018b0d-e0e8-440e-9f02-363a7bd0378f@suse.com>
 <D96IXRWYOGUM.Z5A9K2NCCBQY@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: <D96IXRWYOGUM.Z5A9K2NCCBQY@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 14.04.2025 19:06, Alejandro Vallejo wrote:
> On Thu Apr 10, 2025 at 12:34 PM BST, Jan Beulich wrote:
>> On 08.04.2025 18:07, Alejandro Vallejo wrote:
>>> --- a/xen/arch/x86/domain-builder/fdt.c
>>> +++ b/xen/arch/x86/domain-builder/fdt.c
>>> @@ -195,6 +195,35 @@ static int __init process_domain_node(
>>>                   !((char *)__va(bd->kernel->cmdline_pa))[0] )
>>>                  bd->kernel->fdt_cmdline = fdt_get_prop_offset(
>>>                      fdt, node, "bootargs", &bd->kernel->cmdline_pa);
>>> +
>>> +            continue;
>>
>> With this ...
>>
>>> +        }
>>> +        else if ( fdt_node_check_compatible(fdt, node,
>>
>> ... no need for "else" here?
> 
> Sure
> 
>>
>>> +                                            "multiboot,ramdisk") == 0 )
>>> +        {
>>> +            int idx;
>>> +
>>> +            if ( bd->module )
>>> +            {
>>> +                printk(XENLOG_ERR "Duplicate ramdisk module for domain %s)\n",

For context below, note this message.

>>> +                       name);
>>> +                continue;
>>> +            }
>>> +
>>> +            idx = fdt_read_multiboot_module(fdt, node, address_cells,
>>> +                                            size_cells,bi);
>>> +            if ( idx < 0 )
>>> +            {
>>> +                printk("  failed processing ramdisk module for domain %s\n",
>>> +                       name);
>>> +                return -EINVAL;
>>> +            }
>>
>> Along the lines of what Denis has said - please be consistent about log
>> messages: XENLOG_* or not, preferably no capital at the start, initial
>> blank padding. May apply elsewhere in the series as well.
> 
> I don't mind dropping that and making everything flat (uppercase + no
> padding), but there is some consistency. Albeit, it is true the
> rationale is somewhat obscure.

Obscure or not - it might be fine if stated that way sufficiently
prominently, such that future additions here then will adhere to that
model.

> ATM the consistency is: "padding spaces + lowercase" when giving extra
> information on hyperlaunch. It ends up creating a hyperlaunch block in
> `dmesg` with a "Hyperlaunch detected" line on top so it's easier to
> know what lines are hyperlaunch related and which ones aren't.
> 
> Do you have a preference for a specific reporting style?

XENLOG_* or not want to be consistent, no matter what. Generally I think
that log messages shouldn't start with capitals, unless it's e.g. an
acronym. The padding to help grouping would be fine with me if, as said,
properly spelled as the scheme to use.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 15 06:17:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 06:17:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.951941.1347546 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4Zbd-0004nv-IU; Tue, 15 Apr 2025 06:17:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 951941.1347546; Tue, 15 Apr 2025 06:17: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 1u4Zbd-0004no-Fj; Tue, 15 Apr 2025 06:17:13 +0000
Received: by outflank-mailman (input) for mailman id 951941;
 Tue, 15 Apr 2025 06:17: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=mbqe=XB=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1u4Zbc-0004mw-1X
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 06:17:12 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on20621.outbound.protection.outlook.com
 [2a01:111:f403:2415::621])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 424800d6-19c1-11f0-9ffb-bf95429c2676;
 Tue, 15 Apr 2025 08:17:09 +0200 (CEST)
Received: from BN9PR12MB5273.namprd12.prod.outlook.com (2603:10b6:408:11e::22)
 by LV8PR12MB9134.namprd12.prod.outlook.com (2603:10b6:408:180::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.33; Tue, 15 Apr
 2025 06:17:05 +0000
Received: from BN9PR12MB5273.namprd12.prod.outlook.com
 ([fe80::cf66:58ab:47be:4b13]) by BN9PR12MB5273.namprd12.prod.outlook.com
 ([fe80::cf66:58ab:47be:4b13%5]) with mapi id 15.20.8632.036; Tue, 15 Apr 2025
 06:17: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: 424800d6-19c1-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=leSzKzVDxX25vVCAcE7VTNF1PMl9oup5CV+gYT9Y6rKOKUR9d28Rl11ARjSe2CC5CCqmv3SBSYZBzoxtYK+U6CZ913GUhFNu2TWtWE4JqUdLkop1E5/XpK8LKy5CiSng39cqyGIUvPKkstvUc8XyKHS0ufmaa/j85CNVg7wYZSUKBWRZaSj6BK9IHXUYqispLySDxlsuBMkJbOMAPpK2odCRnxh61rv3uFa+5XDIywWYdykCjB0afNDKcMf4c4e+Us9H3Yvg5WSpG/Syb8U6Yp3DQ4jiDvFXk30RTTXxgyqJBDTlu+Egx86jjO6QrHADqlL51n/apNoBNbDUm/oiWA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=LOumO4VpLPUn91AvwhNi8nzir0dcLkg4zI2wljtJbm4=;
 b=CjcWqlOtOrQrDmBZz9TYFYb4EQKSv7E8qCbWTfTRh0isKDOYhP/8w3m4Hfofki+zvXRrfpB3hS89upSMDbpDNhYCSRozMzBlbAkU4zbfXNFS+KcEy3mIPNGh7LRH/ypkipRiq04A4wQk7osjfbPcevzVKmbJuXksYfBH3wNUrkMHHhkQLfT+X0c589gC9PHKYzB9xt8wa6stLZxVIePSaJuSg6OGBTUL2zLdEjqTebVM6OHNC39pG/+WsfW5gzqu3ALR5zZJAchK8tywU5fwvqlUSomwJN1nIrko13Xy21LXyN0IaKhU3G4OJ5grRBUT+sD2cN0JR0Dx0yCOt4y6PA==
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=LOumO4VpLPUn91AvwhNi8nzir0dcLkg4zI2wljtJbm4=;
 b=y1XJSGHa52eBZf0Ppk1GJBLHwpKcIsW9Cf0chimAWzVX7Wf5U/Wn037R2H3kwyuC9JDawsjnD8RasQZt1nsXZ+tw2W1x0UwlqQA+Men8Kc+kW/UsfiGl3uC1rXtETAGjcEHvHG3ZqoQPCMRPVjbJ9EI15I3nuiNWM8DlDq+1y+g=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <07125c67-6f62-4580-ac8f-4cdea6fce91d@amd.com>
Date: Tue, 15 Apr 2025 08:17:02 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v7 2/3] xen/arm32: Create the same boot-time MPU regions
 as arm64
To: Ayan Kumar Halder <ayan.kumar.halder@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>,
 Luca Fancellu <luca.fancellu@arm.com>
References: <20250414164514.588373-1-ayan.kumar.halder@amd.com>
 <20250414164514.588373-3-ayan.kumar.halder@amd.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <20250414164514.588373-3-ayan.kumar.halder@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR2P281CA0125.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:9d::19) To BN9PR12MB5273.namprd12.prod.outlook.com
 (2603:10b6:408:11e::22)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN9PR12MB5273:EE_|LV8PR12MB9134:EE_
X-MS-Office365-Filtering-Correlation-Id: 32c45875-7be7-4c02-eb65-08dd7be5250b
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?eGlnV1lzVmVPSjZ5UjEwVWdRKzVxNG1vVlI5cVRnYjd5czZnTWFKY3hteWpP?=
 =?utf-8?B?cHA3UFp3a0Z6MnZlbmpoakpobFZ4anR5b3Bvc1ZyQTQzTVFkREpSdmprVkln?=
 =?utf-8?B?R2pLUGVQalFxYUM5QTdkMXg5K1RBYWxqSFZJdTBBM2I3aThEUUh2V3ZzbExy?=
 =?utf-8?B?UEV0d0dBUm5FRXhQQTU2Y2RyYXkrWTg4aGN5NHVRd0VOd0Vsblp2WVNqYTVW?=
 =?utf-8?B?dFBvTXRLS1VOL0pUdE8vRjdtenhpdkJjeVB6aHgzUTZyOEtzQ1IweE50dldT?=
 =?utf-8?B?ZTFvOWpzaysveTlVSU5jZVRvVlpqTzl4V0pTZGVnN3QyQWJoOHdacGhtTkdH?=
 =?utf-8?B?Q25mK2JXTG5RTnZzR242ak9HNWVoS3FmQmtNTjNDTFdTQmVwcVQ5STdFMFo0?=
 =?utf-8?B?ZXRMUjU0ZzFlOHovYTE2NEZIR3l0VVc5dTNvTHU5aUlGWlhseUZnU2lqa0FH?=
 =?utf-8?B?ZFY4aWpmRllmU2NCaVZtL3lUdGQ0Uk5lTVVrdTI4aTFqY3dqN2xVSDFsTUhN?=
 =?utf-8?B?MWlFclQ0ZUMxUzRzNHJMTWRjMUNCRWdxSzAzZEtFbThNM2VqRjk0MTh5LzBo?=
 =?utf-8?B?bHVxTndONm5ESHZPWFNDeE41cEhHejk1YTF3QzdGZ1Q3UjlabVdCSzdMaFkw?=
 =?utf-8?B?MW50VFVaSVRDZzhzVGliY2tKY3FpSE5Zb3JLSHlKNWFSRFEwTFBscnExbW96?=
 =?utf-8?B?RVBWVWRKakdBM3ZSQWJqWlBtOGl2S3Z1c2Y5dmtySDFHYXI4M0ZUV0JiYmVS?=
 =?utf-8?B?b0xqaUdZYUdKSmlad01iMXc0ZFB2aWNXSkdlRTdxNjlEYU1Zd0NSaldXd2tt?=
 =?utf-8?B?K3dtb2Z6TmNjcU1QdFNTVi9TbzlZYlF6RTIvcFFPOExJNzY3TGJiWHp6cm5F?=
 =?utf-8?B?MXJwVzFUd0tVVkdSRDNRQW9PamVEUXh2a2FwVitQTXdkVjFRMDRCSXJabkRu?=
 =?utf-8?B?M1N5Q2ttQmlqdzhNazcxUTZLSHJIQWYvaE9ZdlZlS3hQcUtHb1BpTWtpckls?=
 =?utf-8?B?Z3ZteVlYVWtyMzRJYWRMZHFrY2lQYitjWERBU1hlcENRTFk2YkYweE5CRUhs?=
 =?utf-8?B?TVo1ZFhKaFVPVjQwM0ROT014Q3puYVl2cVgvZE9NZXRVRXFLQmhUUGtFUjBP?=
 =?utf-8?B?ZFEyb0M4VXhRTGRvS1d0d0JXb0JqYk1mUWlyRDRHdU5UU3FFSW1lNm41SDIv?=
 =?utf-8?B?dUpYajVPY1o4UlB2L0hpVGlpcFBBQm53R21ZVFRMZ3IzcnBWZFhYV2o5bnZH?=
 =?utf-8?B?TG1qWGlFNmRJLzBPd0VlQ01QZ1RGd2htandEakJ4YmQ4S2taR3lzTVJVQzVt?=
 =?utf-8?B?Nk9SOFFTR0hBck4xa1NsTnNWUFVUUnh4MXY0TWppTjBZYmQ4aUMzL29ySW43?=
 =?utf-8?B?ZGtuNWJLVmVodkV1ZWM3ZVBqQVR4aXh0VTVFa2tFM3hySERWVGZpK1NzSG0z?=
 =?utf-8?B?ODhvd3dOUFNLZnFkVU8ycldaN2cyZUtseUROMjdjeE9qdWg2YWszVGlhUlYy?=
 =?utf-8?B?ZGxLOGF5Q3JjWWV6NXFsSmJFZy9xWTlRYzhoUmpOclo0cU5iSVVGc1pWWHBG?=
 =?utf-8?B?QWJwR0tzV3FXRHh5UUd1UHRreGRUWTVEWTRVOWtGRjhDMFVBYUpVaUppdTlR?=
 =?utf-8?B?ZFVwWGRQZ1EyZ0gzWWhpTHRTYnoxRUQ4WjVoN0thSk9UTjJWREZvT05ObHJY?=
 =?utf-8?B?OEtmd2tTK2U1VHJ5bG9qNitzRkljYXVkd3hpeHBBcGhEdEVHOUg5UVlUVE52?=
 =?utf-8?B?bVFzUzZURERCTnlYdzFKanVxeVF5UkdTSkZzNG9xK25nVzBWN0RYSHNCcHl3?=
 =?utf-8?B?djZWbzFUNEFZTC90eWQxRFMwK08yTmpiMjMxNmpyM3ZlK1dCN1ZQN0RiZHNG?=
 =?utf-8?B?NmwvTlNkdmJGSVg3YkEyNEF1MXo3QmNyTDZ2akNmcUV4N2N4clBuY2N6cnF4?=
 =?utf-8?Q?y+kxj3dWUmk=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN9PR12MB5273.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?SkVMK1RPU1B3N0wrUDVzZ0QzeDhINkVqYU5qVmtScmtXV204c21Bb1lVS1E5?=
 =?utf-8?B?OHR0NHp2TGlEaWpwcVZ3YStWQzlFVEt1em04RWl2Z09kVzVlbWVNM1FwdzRY?=
 =?utf-8?B?MlBQdG9BY2puM0Vrai9aNmxDWEFXSlUvbEh6M2lXYkpsQVBycDhuREpoV29h?=
 =?utf-8?B?RGhmaFd2ZmpvbVpuQkkwdll3dGJDcjd2M3ptM2xPY1Y2dHlFZi9PTHNNQXdq?=
 =?utf-8?B?Y2o5QldjUE5WcXpJTFRGTnVFMFRxaWZsZjNqZWhET0VTQnVKbWhicEhXclBM?=
 =?utf-8?B?MmtsUTUyVXFJcDg5T1FENDNrVFVPVGhVUlFSS2t6WStjZ0dnSEZKMlYwNk5p?=
 =?utf-8?B?c083Y0JCaHpncmFlaHVZOXdFWk5qTzI1ZUZLTlN4NlpiUCtTcXhHMWE1RjRN?=
 =?utf-8?B?QjJ6bnVNREVoMmxlY1pKVVZaKzZqaUJuUnArWUc5WmJkalNraUIweGRBWEVI?=
 =?utf-8?B?b2k0YjJ0eUtlQTJTZFl4V3lEaHh4RldMMzhiSm9ZU25VcmsvaHNLRjVBMytJ?=
 =?utf-8?B?SWdvdVdiYlR1Q1hGaDJ3YnRrc1hEUHBFY2xqSHQ3U3hvaXBsL1VwZEVaMXNH?=
 =?utf-8?B?SFhhNk80TS9aWUpQZ050MmY0NmVLNUVzUERXeTZML3kxL0VQdkwxMXBWc1Fy?=
 =?utf-8?B?M2F3N2VZUjAybi9QcDdxcjBEeDZQRzRFTGthTGQvYjhld2Rib1RyVG0reVhp?=
 =?utf-8?B?U3QrRGVYY0VESGNFQnU1TXhkRitsQ1B1aGFnSzFoWGZ6bTIwMlpIa3pGWXZn?=
 =?utf-8?B?N3RKWkNURXB0NWNGUjJGZFZIUTZtcllRZ1NqYmQ3Mm52OFh1V29YL1ZTUjhp?=
 =?utf-8?B?MDdROThITVY0dnZnZXphZEZPd05OTkh1YnNRK0ZOSnZBQWhhc1ZIcmZMMXV6?=
 =?utf-8?B?cFFFNkFCV0E0MWgxelo0UDh2UVhXTmtQVmErc0R6anZITmNuWEZ3UFVrblp6?=
 =?utf-8?B?QTYrbk1LenRuYzd4Q1EzWHhZK3lIVndhZVdKcExobDgzMENSbVVmVklZK1Bm?=
 =?utf-8?B?b3FYRVIvL1dWRDBuNlVOa05iRndMSFRJZXVpOGFmOEgzdzFOUmplaWpsQXBz?=
 =?utf-8?B?SlNDaWJyOEp4bUE4SkR0YWhCdFFZSk15S0dXeVJLaUt3aVdCRitOZlBISnlK?=
 =?utf-8?B?TEQ3RXVRZXBHcXQ2RExXd3Y3TS9UTGMwZzEyNEE3UzVmR00zSmh0bUZYeUVP?=
 =?utf-8?B?WGVlVVJtM0J6dUVtYlpQMVlFRHVXbkx0QllXZ0FJRnYrenNiMDAxWE83c1FO?=
 =?utf-8?B?Q0x1eGZtWXpFaElKbmxGRjN0VVhmOFlENWV4eGpFS2tHSzl4eTNlVlRldllP?=
 =?utf-8?B?WTI4V0l2MnNhdDZrM0V6VzF1ZVdJelRkZlc1VzVneXV3dGN4VjBvQ28ydzZM?=
 =?utf-8?B?ci9NN1hMZHNSeHNBcWhJOW5CRUNSZlNKU3FjTWJ0eGtSMEpvUWU0TlplbWJi?=
 =?utf-8?B?UHNzQm9vd0NiZFZmUnlMZWZubHVQT2ZZcUlyL2tpY0taanNib2U0NVRMM3FB?=
 =?utf-8?B?aVFBemV5RmNlOXNFRHdQKys0bU41TDk4YnE0NTExYlBmSDdQcS9KaFpnQzRD?=
 =?utf-8?B?bkV4M3lBMjFjS0lQM294VnQ2dVlmajBJWHRIZlZnQnl1cEFCdlN0M3Y4Z3lK?=
 =?utf-8?B?Y08xZUkybG43Mlc5bDN0aGtpUnlJK01oSFhPZjNhZk9YNW5OSFg4YmlzY05X?=
 =?utf-8?B?aFMwdG4xamt3Z0tKN2lWN3AzRnNnYXdxVDErMG5YRUxGanUyRG1CVzBhTGZj?=
 =?utf-8?B?d3ZJZkNMMCtXSmorUjBBSG9VQ2ptdW5KUEQwSUVUYS9KTjZFYk02NEZrRzNq?=
 =?utf-8?B?TXJOMnVPMitHYlhZK2ZIVElPNS92ZXNJaVFjT3FSZWY2OUY0VTBSTHlMTCtO?=
 =?utf-8?B?V1QrK3FNZEdrQ1FZQXR5V2JYaVkxdW14M05BNVkveFZJRFZWRlVXaHRuNmN1?=
 =?utf-8?B?dHJnMVNlY1lrVFN2YnBWanhmeitic3VBMW9VVXgrQzhmRnFMdTkralF1alRB?=
 =?utf-8?B?dEt5cGxCMXhlR2JsT1grdEJnN0VDNkt3MVhzZjZzTEFkTnhKQ1Vrakk0Wi9S?=
 =?utf-8?B?ZWwvdFh6WjQ3Y2ppSXJWRTFSWEdRTThHR0h0ODAyWTZQOURKUmlZaDNzWDJO?=
 =?utf-8?Q?qHe2/k6uX+3Wq7c/cn4/sDOGm?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 32c45875-7be7-4c02-eb65-08dd7be5250b
X-MS-Exchange-CrossTenant-AuthSource: BN9PR12MB5273.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Apr 2025 06:17:05.7537
 (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: FR9lr2ICmbom9oo4BKcXOzMnF6F9bKJSU/DmGQbgsWg2CCUlKBiiOS4ytw4Ht7bH
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR12MB9134



On 14/04/2025 18:45, Ayan Kumar Halder wrote:
> Create Boot-time MPU protection regions (similar to Armv8-R AArch64) for
> Armv8-R AArch32.
> Also, defined *_PRBAR macros for arm32. The only difference from arm64 is that
> XN is 1-bit for arm32.
> Define the system registers and macros in mpu/cpregs.h.
> 
> Introduce WRITE_SYSREG_ASM() to write to system registers in assembly.
> 
> Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
> Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>
> Tested-by: Luca Fancellu <luca.fancellu@arm.com>
> ---
> Changes from
> 
> v1 -
> 
> 1. enable_mpu() now sets HMAIR{0,1} registers. This is similar to what is
> being done in enable_mmu(). All the mm related configurations happen in this
> function.
> 
> 2. Fixed some typos. 
> 
> v2 -
> 1. Include the common prepare_xen_region.inc in head.S.
> 
> 2. Define LOAD_SYSREG()/STORE_SYSREG() for arm32.
> 
> v3 -
> 1. Rename STORE_SYSREG() as WRITE_SYSREG_ASM()
> 
> 2. enable_boot_cpu_mm() is defined in head.S
> 
> v4 -
> 1. *_PRBAR is moved to arm32/sysregs.h.
> 
> 2. MPU specific CP15 system registers are defined in mpu/cpregs.h. 
> 
> v5 -
> 1. WRITE_SYSREG_ASM is enclosed within #ifdef __ASSEMBLY__
> 
> 2. enable_mpu() clobbers r0 only.
> 
> 3. Definitions in mpu/cpregs.h in enclosed within ARM_32.
> 
> 4. Removed some #ifdefs and style changes.
> 
> v6 -
> 1. Coding style issues.
> 
> 2. Kept Luca's R-b and T-b as the changes should not impact the behavior.
Note for the future: Especially for T-b, it's better to drop the tags because
the series has not been tested in its current shape.

Reviewed-by: Michal Orzel <michal.orzel@amd.com>

~Michal



From xen-devel-bounces@lists.xenproject.org Tue Apr 15 06:17:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 06:17:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.951950.1347557 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4Zc4-0005Ii-SV; Tue, 15 Apr 2025 06:17:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 951950.1347557; Tue, 15 Apr 2025 06: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 1u4Zc4-0005Ib-Pl; Tue, 15 Apr 2025 06:17:40 +0000
Received: by outflank-mailman (input) for mailman id 951950;
 Tue, 15 Apr 2025 06:17: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=ai1O=XB=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u4Zc2-0004mw-Uo
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 06:17:38 +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 539c4c5b-19c1-11f0-9ffb-bf95429c2676;
 Tue, 15 Apr 2025 08:17:37 +0200 (CEST)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-4394a0c65fcso51145815e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 14 Apr 2025 23:17:37 -0700 (PDT)
Received: from [10.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-39eae96c05asm12923546f8f.26.2025.04.14.23.17.36
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 14 Apr 2025 23:17:36 -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: 539c4c5b-19c1-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744697856; x=1745302656; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=LT+uYDWoZLHJWXbLNqpr+7CFPWW48Foa4LcV1ZbmmP8=;
        b=MwLvndDOiWNb/zlTCEpHPlcMJXX6jYIZ5sdg+CUFygz9Z9HhTS0Vc8f/lfNI1Nt8Z1
         b2PH/XdE/7xx2Zsok6oYLJuw0roU5MoBkVno2eG9594X1sNaWdNXyAZMhPPvVwgZ5d31
         A5haBu29JeqJCAme9Fsw13YROn64FNx+Y7CTvSHjQOqTObO8FhQgrwSZC4AEEy75uRee
         AU5jUmWwCWlTfH1lv+sUEs8S1WJb8AOB11g3Ima5hM0jyTuk2tnMMY9pdIzgzU+xoMzK
         PL7fKPbk/p20IKX50xaA/e4QMf0hPuZx1qQLo3/31omq+6HfL9ImdRWV77nOXLk4FHs4
         DqtA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744697856; x=1745302656;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=LT+uYDWoZLHJWXbLNqpr+7CFPWW48Foa4LcV1ZbmmP8=;
        b=LvcYsw5yiL+ITo857XquKXxX3uIczkzYoNXShPeXlmVEqvqXaNiimzbhqZX7X7E3r7
         aiTUf6T0CwQ3c99GTIAnS1JVqzyGkYNCtEc28Que08eHiLNBXFqlB8gykSTUw/7B+Z/Q
         SaO8SqTzNnb8lnCZrIBKQXvMevM0zldU7963qko1NrO+EiuGiqBdWV3QXycMfwsTTW4a
         Jj9NPdTLBwLZgsINe8v13cV1HT8cLfFwzc6+6EKCmhAwzJcGzyYLhczXUfWskrRyK2N1
         LJLQ5fCuSERx2M5eta1Rq0ly0elqpvlvEdYFrkj/DmMl5sN6IpXn5uSPKBwmps74ulyh
         gRZg==
X-Forwarded-Encrypted: i=1; AJvYcCVaGOLzRTBCu7wVZeXwRz5tmfBpVwujL/y1FwpPsxDIvWJRe0XZPJprx6+4UqKtOcqK7vz8eoQMoFw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YybLxR3h3TJI1oDQl3IP2eLM7RkUJyJEzkuw24m7u2Ad5B5wfHx
	YVP9byHrJNKKc+ZestbJfAnge6pWIdXr9D97/GAZXG9i6L2ceRPiWCZ8zQshrA==
X-Gm-Gg: ASbGncvipewyb8I8ZLp6vNfyWAGjT8kLpPZb190hBs4Sg4r0ysQuZSDo28BLkcn0a91
	KcT5njzxPkq5V4br+e2Ml2pZQUeI3vN5BUBWP3k+ff13H1PhqU7+cwDRjNZVsSIo4votvkoXu5e
	jNQEavuZrVjfGp4/ExhmFW3D55dHCqdKtqhWE1+SqJlr6c8sYRwejPCvn7EULqlt7frdrXYKaKF
	68OSEze9xRcieeMShN/7vBX6ptJ96z1X0v5KJ4DUKxb868scqL7DXsNrUT7o3EfLE/i9bJ7orFD
	61iEU0JDN6nmi3QDFXxBGwlE4mbWhelN5yiNNFDOqAgm+WD++yWdU6Noftf/HegKuz1hV71Bcdx
	q0/20evXpy/tKd2DAgoabSD2Auw==
X-Google-Smtp-Source: AGHT+IFXImdgCtUgbqED6CdlV2m36z+YGvRnffysknQgPaX3lmNRGWoSluEYc/sY37y7aOzzHyZdBg==
X-Received: by 2002:a05:600c:1d83:b0:43c:f3e4:d6f7 with SMTP id 5b1f17b1804b1-43f3a9afdeamr150603665e9.31.1744697856642;
        Mon, 14 Apr 2025 23:17:36 -0700 (PDT)
Message-ID: <60363eb4-cb35-4077-b964-0c321c495a19@suse.com>
Date: Tue, 15 Apr 2025 08:17:35 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 11/16] x86/hyperlaunch: locate dom0 initrd with
 hyperlaunch
To: Alejandro Vallejo <agarciav@amd.com>
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Jason Andryuk <jason.andryuk@amd.com>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Michal Orzel <michal.orzel@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: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-12-agarciav@amd.com>
 <b3018b0d-e0e8-440e-9f02-363a7bd0378f@suse.com>
 <D96IXRWYOGUM.Z5A9K2NCCBQY@amd.com> <D96JE0Q8U026.2FWWHTWUUMTPE@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: <D96JE0Q8U026.2FWWHTWUUMTPE@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 14.04.2025 19:27, Alejandro Vallejo wrote:
> On Mon Apr 14, 2025 at 6:06 PM BST, Alejandro Vallejo wrote:
>> On Thu Apr 10, 2025 at 12:34 PM BST, Jan Beulich wrote:
>>> On 08.04.2025 18:07, Alejandro Vallejo wrote:
>>>
>>>> +            printk("  ramdisk: boot module %d\n", idx);
>>>> +            bi->mods[idx].type = BOOTMOD_RAMDISK;
>>>> +            bd->module = &bi->mods[idx];
>>>
>>> The field's named "module" now, but that now ends up inconsistent with
>>> naming used elsewhere, as is pretty noticeable here.
>>
>> Well, yes. It is confusing. Also, the DTB is called multiboot,ramdisk,
>> because multiboot,module is already used to detect what nodes are
>> expressed as multiboot,modules. I'm considering going back and calling
>> them ramdisk again. If anything, to avoid the ambiguity between
>> domain modules and multiboot modules. e.g: a kernel is a multiboot
>> module, but not a domain module.
> 
> Particularly when misc/arm/device-tree/booting.txt already states that
> the initrd for dom0 ought to be provided with the "multiboot,ramdisk"
> string in the "compatible" prop.  Deviating from that is just going to
> make it far more annoying to unify arm and x86 in the future.  And
> calling those ramdisks anything but ramdisk internally is just plain
> confusing (as evidenced in the current series).

Yet the limitation of this is quite obvious: How would you express
multiple such items? Have many "ramdisk"s? Even if some of them serve
an entirely different purpose? See how Linux has gone to tuck together
multiple CPIOs, as they can have only one thing called "ramdisk"
(which, aiui, now no longer truly is).

> So... how frontally opposed would you be to restoring the ramdisk
> nomenclature? Also, for ease of rebasing future patches it'd be far
> nicer to go back to ramdisk rather than reinventing some new name.

Well, I fear I wouldn't ack such a patch. If everyone else agrees
that "ramdisk" is the best of all names (or at least getting close),
I'd perhaps mumble over, but let it go in.

(Only partly as a joke: If we dislike "module", how about "blob" or
some such?)

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 15 06:20:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 06:20:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.951966.1347567 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4Zed-00076q-9I; Tue, 15 Apr 2025 06:20:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 951966.1347567; Tue, 15 Apr 2025 06:20: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 1u4Zed-00076j-5R; Tue, 15 Apr 2025 06:20:19 +0000
Received: by outflank-mailman (input) for mailman id 951966;
 Tue, 15 Apr 2025 06:20: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=mbqe=XB=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1u4Zeb-00076d-Ud
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 06:20:17 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on2060c.outbound.protection.outlook.com
 [2a01:111:f403:2412::60c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b11b2666-19c1-11f0-9ffb-bf95429c2676;
 Tue, 15 Apr 2025 08:20:15 +0200 (CEST)
Received: from BN9PR12MB5273.namprd12.prod.outlook.com (2603:10b6:408:11e::22)
 by LV3PR12MB9356.namprd12.prod.outlook.com (2603:10b6:408:20c::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.32; Tue, 15 Apr
 2025 06:20:11 +0000
Received: from BN9PR12MB5273.namprd12.prod.outlook.com
 ([fe80::cf66:58ab:47be:4b13]) by BN9PR12MB5273.namprd12.prod.outlook.com
 ([fe80::cf66:58ab:47be:4b13%5]) with mapi id 15.20.8632.036; Tue, 15 Apr 2025
 06:20:10 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b11b2666-19c1-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=pnFEeav797WKBme6IDnSzsXwTu0sYMbrFAZBQIyyS2yiE96zB07odTmntuf71CHEiLlW69QuUbXF5nxVWawJ/xAU1Jtb27kLF8cI8wvmW1/vj3Em72YJoTQdKS8EgdYJbDVaeXSF9qo3zatClpQzPiAAlbe6hYHIFhxfy9fVWHWfhXn/LPlCluIm1hrGg6FCHWa7uHj0gQ5JshsmEjheg2OKZ6E9qnhkePs3CzfxSIOrG9P+dJHuQNRBZVmU+XrR865XNZNJ0YR1O0UvBk6zaevpCkjJ4sKILl3r1JzjukwNa+WKpxGO5q7oE2CeBw5cPKP67P1tm8GnQ6jvzfdW0w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=UKob0HwFJmBHhrRE47Bo4dQdBsq+8eR39upUjcpBgQs=;
 b=gG/kivv1/cbgcsko1EIeobhecvQN4+5bn69eauOGh8wcXZEVCc6QsUHw+yaV74Ag8w+afIoRheS2XA89dk13DhEYfNgF/66nczRfiEdqCfvMvJSV6mRQ5+1ZVM91CuoGMwH5JI6qHj4Ep+6pab+PQsJ7Pd8GeW0uJNPXTLFHp3ARSSlGa7Ho8kz7nWvGYsClhbvc5WdCRIjJLK/mx8P16Xm/szvntk1buKqIw2wdPT9pLMfK1b4+nV/2O6Idaw5BSjgwwxVTyDJI56Cvd34Ly2k9OxSe+HvQVmIFdRQ1Vh1ILCR0ov2TlNtgVHdWGhR8/B5IBJuhfG3OESP00+P8KQ==
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=UKob0HwFJmBHhrRE47Bo4dQdBsq+8eR39upUjcpBgQs=;
 b=bbz39wkRkFrNtRHweea/L7Zi191XTVFxiRONx4bJOLoaBj9UiNDcTRyGi4Nb2EDver+ELdv2zPzBSkmLdvPrcM8pNLKiUk/OVzDAXGv9qP5nNzkP+MUK8yqza+qOc8avGngF8JK7cJa64M8/UgfHlSjFMPA7UqpyV6Lbewp9Xsw=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <63dd5390-c143-491c-a727-0dc00220391f@amd.com>
Date: Tue, 15 Apr 2025 08:20:07 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v7 1/3] xen/arm: Move some of the functions to common file
To: Ayan Kumar Halder <ayan.kumar.halder@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>,
 Luca Fancellu <luca.fancellu@arm.com>
References: <20250414164514.588373-1-ayan.kumar.halder@amd.com>
 <20250414164514.588373-2-ayan.kumar.halder@amd.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <20250414164514.588373-2-ayan.kumar.halder@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR3P281CA0132.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:94::12) To BN9PR12MB5273.namprd12.prod.outlook.com
 (2603:10b6:408:11e::22)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN9PR12MB5273:EE_|LV3PR12MB9356:EE_
X-MS-Office365-Filtering-Correlation-Id: e1f1bb44-3f7a-4577-ef4e-08dd7be59363
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?VkdBd3hpZk1LQ2NQSW9iRFVlWk43dGhteHV6SW1zWHVHcUpMYXBGSktISitv?=
 =?utf-8?B?cHk4R3dpU1dLVkhPamZRdlFOZndaalEvcHdiNncwd25yQjIzcG45Y2VlYzRS?=
 =?utf-8?B?ZHlmbWtTNjdCMXhhWHFBdWZUd0J1UFBzSkdxZ1Y4ejZtMDJsNENhc2lYanRH?=
 =?utf-8?B?NFJLcDFMdmMwMzM1Mno2V3h3K3h1STBNY3puQXJEL0k3d1RqTXpPdnBSQ1JI?=
 =?utf-8?B?V1E4aGdHdXFZbmtoU21ROEZQZ2ZYWHBwelRPRElZZWwrNFFQcWNCbzlBK2Ur?=
 =?utf-8?B?bHA1SXgzbFJ2WWFYNmxweDYyYnBZSEx0emh0NE85Nm54WXJHN1FURW1MRmdV?=
 =?utf-8?B?QmNSa2Y2aU56Yi92SlBGQ1pJUHcxOXRJcnAwdlJkMm1oVUZvVDAxTFp4Nmdh?=
 =?utf-8?B?NFB2bVI3Sy85WGE4eVpNbnFJYWxoVmFUWkl5VUtyK2ZzaHpRZ3RjTUZkNkZX?=
 =?utf-8?B?bTNLUWRwSExQWnJ6TkxmemJjWGRDbmQxR3UySlYxSW1adytaa3AyUFExV3c4?=
 =?utf-8?B?RGRkUXhmeE0zZFdIRVdxMlBCbytyQWxSc3Z3UlFGMHJGR1hKSENrMGV0M1Nj?=
 =?utf-8?B?SzNYMzkrVWtOWGF6SE5nQ3NXNE03cFN0SFk1dkRMUjY2QWdqMXdSZnZ4aWlB?=
 =?utf-8?B?dThYc3hQbVNnNDhjT0VkTWJJNXg4a0VMODEzejFMZlZIaDcxTXpnN1ZqYTJD?=
 =?utf-8?B?eE9DTmVicEhBR0ZoUTZLNDRrYXM5aE5WUHV3QTQvVVdTTE5ZMFc1NDNyU3Iv?=
 =?utf-8?B?Vmw2WHhRdmZvNFBham9SRmJQaEZFREttNU1lWWJ2RDZwdDZueXNLdXJHSHFO?=
 =?utf-8?B?WU9vN2lxaC9IUE5JSm9Jc0FsUGswV2xTeHhGenRSWFVrV1ZHT2ZkdjJtS3Jh?=
 =?utf-8?B?VUdEdHdWa3RBQ0VodG8wNGUwc05tdmNvQkNFSXlXQzI0ZGxyK004L3dsejJZ?=
 =?utf-8?B?R293c3hMa2xKU25jRzI3NXhSSUkwUkp2TWdoR3RicXRVeG80bDhYQmgzekJk?=
 =?utf-8?B?bmFWS1RVT2lQL2JQeEsyTUpTQzRSdHEyKzJNUzYrOTdxcmFBL1hpRnk4WkFJ?=
 =?utf-8?B?enVuS0NjYUFCU2Q1MGFXZUR2SWxhWE5LUW90dFVxazd5TnBoSzRvbjRVeTVi?=
 =?utf-8?B?Rndsd0tNc1Y3NW5GVWJ0V2hrVFp1REE5MWdNVTk4a2Y4eTVuTkIzM1ZoTzdy?=
 =?utf-8?B?WHF4c2NZSGJUc2JLZnZ3SWpkYjVGUXBnRm1xZTNuWkl6MVV1NG5ETnlnb0dz?=
 =?utf-8?B?Z0JSNDkzZWRnTXFhY1owc1lQVGRUTzBCV1RSd1NGb0tjTEh2R0NDUWdrbnpW?=
 =?utf-8?B?UU5uVTlVcXlHZ0JXMy8wMWh3aTNJL2dveTdOeVV6dFBmdzlhbXdYN2dUSkNk?=
 =?utf-8?B?dk5aOG5MWXB1ZlNvV3hTTGgzZjZ3TXZSWDlibHRaUHZrekFiUStMUHp5anNl?=
 =?utf-8?B?MCtzYTVBaTNuMXVXRXZ4dktaRzRHZ01uT09BSGhvT0xBOGdiZUI3N2pkQUFV?=
 =?utf-8?B?azhIbFRXVnlITzU1c0JFbTFMQmRJakpwUk5uTmsrb2lkZFJ4aWFNRkladk5C?=
 =?utf-8?B?bG1KeFE5aXlNYXlNbXJISVV6STRuRkJ1TVdOdlZWQkV0cnQ0akdBcHk1RmtK?=
 =?utf-8?B?S3N3dXVieE9VRzhPL1l6VUJQTTdFbUdJUVBCVW9CRnpWVkptU3AvaVhDdStO?=
 =?utf-8?B?QXpwVko0K2ZNTE9CTzg5bVd5THI5Uk8yakwrY3hpNWNhMnpNdVVaYlhHNU5Y?=
 =?utf-8?B?ZmhHaDFHME1vYXAza0JiRkVWdW9reE83c014OEY2QVlVRVJxcEtyL3BORjZt?=
 =?utf-8?B?eEZXdjdUR2ZhMEhteFBHSmJoZ2huNEU5VERhV0RxR096cEFJMkxPM0tSd0hq?=
 =?utf-8?B?SnljUHNqK3UrMUV0UytoZHZMcHhLUmZvZ2QzelN0YUVhbmc9PQ==?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN9PR12MB5273.namprd12.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?cmpPTS9uazgxVTgyWUw4SHRqbzdhWXRaUzhIOXVTbGc5MVlGcHo1bHNFN0hQ?=
 =?utf-8?B?enUxSHg2WWwvWTMwVzJ0anZqZENwT00rNTJyZjhCWWtQU3U0aVBESVMzVElv?=
 =?utf-8?B?UUJ6YXl1RzlWMEI2U0cramZPc0hHLzJtN3BXOEVzUFNuUlV5YkwzM2M1bk1u?=
 =?utf-8?B?d1k1VFgwblM1eEZOT3lGWjBWQVBFQndpbk9rdEVDWUpCVXBINnMxL2Vud1Vy?=
 =?utf-8?B?OW5zVkdsTU1HbDNJRHRCYWs0UjFlcUhyUEZoQmFIbmpqaHV0c3dZbklJRzlk?=
 =?utf-8?B?MUhTLy9hK3pjT2pMQ1lrRHhIZFN1NDJVQU5UQ3NoeWQzL1Faa0tMRXZ3ZDR1?=
 =?utf-8?B?d1MyWVIxVGE3cVp3OWh0NktpTXhja1Q2eUNwSmxOUS9tT0Y3cW81VG4wbDZB?=
 =?utf-8?B?Qmg3M1hWRWlmNmh5YytOTTkyNXN3WXVhQ0ZwZ1RPcksvcXFHNVpKZE9rdzlo?=
 =?utf-8?B?bCtsWXFGczA3cmhBRlhwb1ZlOE5VM1lxVkFJSjBKcWFIS2t4cEZ4THp4WTZs?=
 =?utf-8?B?Nnc4emdVcXp6aGUvYzg0c1BkYURKNFdEcnVrQ0FMMmVIK21vMzM1NmxQb0pv?=
 =?utf-8?B?ZmRSQUh0c1kyKzBLWThOVEJaeS9FV01NNXFYSFpCcFJ1SEdadlB5WEFwbUlY?=
 =?utf-8?B?MlBZS2F4VEhzNEszLytMM1doTC9SQmhvYVhrV1g1dVpZenNlalMzbE9PQ21x?=
 =?utf-8?B?T1FUNzI0ajZidnVlNm1GTTFTK1k2V0JrYS95WGlDcW1RdkFtWjlDdGRZVSsz?=
 =?utf-8?B?WEdnazFUdHR2VU83Sm1OS2p6OWh1SFJVYk9XampURXdiUWRDTHRqUEhlT0Zm?=
 =?utf-8?B?VURrUUM0cmtCYzhxWDFDc1pqVXhzVkhBVjVkWUd4b2Vya1huWHpzS21Fdi9y?=
 =?utf-8?B?cnhHSk45bEs1dy9yK2ZKTy9RZXZvTEhOVzV1aVZTdWc1cGZlUW5GeEI5RFBG?=
 =?utf-8?B?YjdVNHIvOTRTTkxVdWVkNEsyeVh6Vkx5UGsraUIxWlFvY1lJMVpDb3VlOWxO?=
 =?utf-8?B?ZnVYZmxnUlRoWWVaMUEzWHhlMXZJZExvU1FOejY2Z1VaS1cxUlZ5YU5INnNs?=
 =?utf-8?B?bm42NTd0eVhKbkZPTzh5TmZ3U20yWVBScXRSSktvb3NwVktNMnhpOEZVZjJW?=
 =?utf-8?B?WGU1VXJ0dFN6MGFvRnB5U04yZlI2eXJMMHY3YXp1WVFIeVQ1b1BwYzA2ZnVP?=
 =?utf-8?B?MUE4bFlsYVpuREtQa0IrKzNUTzVRd0MyMnlueFV4eGQ4MkFSR2o4SU84a1RH?=
 =?utf-8?B?c0IrLzlSMVZEU0E3NElHNzdiSm1xdlBRUDR6QjkvWHRqaGsvM1Ayb0FmdUsw?=
 =?utf-8?B?Y3N0RytiRHJRNkpkek1BYlY3NklSYm9tcHNxQ05pWGpPallKei9PaVBUMW8y?=
 =?utf-8?B?VmRDeDZzTzBjaXcxMEtOTWNUSmtaL1hqamJuOHQxU1gveWtYYjczOHpXdFlG?=
 =?utf-8?B?amVrQkZJbElzN3lrSGhXcXNra3c0azR5LzBjOUJzNCtacEZKaDlQTFcvejdW?=
 =?utf-8?B?bFlyRVhGSGM1RFhtZWh6NmFUOXRINE1PdzFEQUN1UitCNUI0d0hQS0FmTUhx?=
 =?utf-8?B?RFh5c3pCMDk4M3ZWb1U2OC9NYjJMZ0NmUXNDUVl1eHh0b0dkQXNqUVhPODFJ?=
 =?utf-8?B?YWgraU1nalR0SUJZWDc5eWlhTng4WnM1amZHYUU1cjluUVlydWd2T2toa09P?=
 =?utf-8?B?VlBDY2dGTGU0YWxBU1lLaklIN3VBSWppc0xWUDVGWStEbTBxbHRYL0xIMVlQ?=
 =?utf-8?B?R2VyYWNwUS9WWFhsZnNTTXhmdHJuM21vZGtBMmpNQno1L3NYVlJiYi9mb1hI?=
 =?utf-8?B?Y0FwWUgwbmoxdk5yYVVGcTBNeUF2VVd0MTFwV3QxL0FrMkNWcjIrejNybU9l?=
 =?utf-8?B?dytuTG1jVGFQNUtFZGRiUlgrVTBsMGZ1RmFnUENMdkx1cS90K01uZG1acFM2?=
 =?utf-8?B?RG1PL0Z0dEN6ODdkMXFYU3hqTXliQmZDcDBmSmQ3bzQwM2w5RkxuSmkvbTk1?=
 =?utf-8?B?d2JlWnU1blkvaHhYeFNYdk4xUTJHUjU5RjhPOHJ1dWxvcDhLODZwckR3Vk1K?=
 =?utf-8?B?RU1WOG8yOWxrQlU5S0s0VUhzeTJkNkkwbEYzTGt0d3VtUEVkZXpWelJ4czFv?=
 =?utf-8?Q?38EyuOVG4Gp9jQWnTnatvUSQe?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e1f1bb44-3f7a-4577-ef4e-08dd7be59363
X-MS-Exchange-CrossTenant-AuthSource: BN9PR12MB5273.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Apr 2025 06:20:10.9117
 (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: tuofOUiAmFvcmyDeYcDk3becwVdg4+7GySo2gHW7XnnyGjA8qyIgtQBvM56rCdea
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV3PR12MB9356



On 14/04/2025 18:45, Ayan Kumar Halder wrote:
> regions.inc is added to hold the common earlyboot MPU regions configurations
> between arm64 and arm32.
> 
> prepare_xen_region, fail_insufficient_regions() will be used by both arm32 and
> arm64. Thus, they have been moved to regions.inc.
Despite my numerous remarks about the commit message style, you did not change
it in this patch even though you were respinning the series. For the future,
please fix remarks in all the patches.

The series is now reviewed. I'll wait a day before committing.

~Michal



From xen-devel-bounces@lists.xenproject.org Tue Apr 15 06:22:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 06:22:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.951978.1347576 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4ZgF-0000Uy-IL; Tue, 15 Apr 2025 06:21:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 951978.1347576; Tue, 15 Apr 2025 06:21: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 1u4ZgF-0000Ur-Fp; Tue, 15 Apr 2025 06:21:59 +0000
Received: by outflank-mailman (input) for mailman id 951978;
 Tue, 15 Apr 2025 06:21: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=ai1O=XB=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u4ZgE-0000Ul-6z
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 06:21:58 +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 ee05ac98-19c1-11f0-9ffb-bf95429c2676;
 Tue, 15 Apr 2025 08:21:56 +0200 (CEST)
Received: by mail-wr1-x429.google.com with SMTP id
 ffacd0b85a97d-39c266c1389so3549076f8f.1
 for <xen-devel@lists.xenproject.org>; Mon, 14 Apr 2025 23:21:56 -0700 (PDT)
Received: from [10.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-39eae97751fsm12998531f8f.41.2025.04.14.23.21.54
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 14 Apr 2025 23:21: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: ee05ac98-19c1-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744698116; x=1745302916; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=U0WvTMLlZ7ODWafUTkGT1oj4PGSwjmhL5jvwgSbdXn0=;
        b=gXTp8yno1DVuO6HgXx6DxCxXeH4+PtpD27mW1uG+WzSVGpJlHb791K+s1A/c0Mt02Q
         7CWwC1HSOEdHnOk96ggWdz7np+r/C8rr3S7uGOBDeKe0bCdKh2QQ+Ra/0Pelz5THOnz+
         lU9DBoFlO8WPYVilSbXml0wPZe3cKMnfMf1yoZD1pbt0AEGuHzTdit5L29v2YH0cBPK5
         f4be43jF64h2nF0qyLt8UJyidLeUfFquXw47FkQH18EdnHQ7/swDJalUuYRE8cBuLT/W
         XwdFYBYisfEp0xNUcyGr8dEyad4cb5TU0Et2E4f6xxGM4dWXDRlAX9UWa/MOdZYqFbq/
         YQgA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744698116; x=1745302916;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=U0WvTMLlZ7ODWafUTkGT1oj4PGSwjmhL5jvwgSbdXn0=;
        b=AEecd5FLQBE5hkiZ3mee83qaTZRNAIWZKBwATTgSOVzJgBmQnqjlM88OqglZYrVEqJ
         vBFDRsP46ihfzxE2K81msRIP0HMDRWoDexN/mX7vARKI+PhaU2mQ6pkbXw75deA0Rtic
         /1COx1DxvqppW7j2+GkGryGIVil0md/gazSVLd+SI29MFGFegcIzVzrl/VL+hbTXdrCV
         Yhw0wzAyfEtXFhtdbDh7BXMV2JSQhvo2sASnXBQ2558TPq80ufBCIsQxod92XZ7KAbxb
         0m0vsInI+HknuwZwXzu5YuaSd3buFmfBeMLpLz/uANQOChvG+J4wO5vA2jlebPUS9Smn
         LdDw==
X-Gm-Message-State: AOJu0YzCHrwZIjHbc+5XgOyOfov+QB1jefj/bUbdEGoQRKssZl7a2zyK
	Jsjqa9KVOQ0bDEknItOz9zl/EPCeXFatccUrjLZehm389kTEojm8M/t1n35OZg==
X-Gm-Gg: ASbGncvgXs/fS+2AXn4JOKFzwy6D32pikr4UxPjTsYWNLZSjbZtqImP7ljs3Ox1sVuy
	/o6B1gBHOuZuhJ3fJse/es0BN/HBXgGSIaXSmHHueHTXlK3ma2olSPoA0g3hgp2VVrWK0HTo1UJ
	3U1CadTLfgxhaQj3XNT0G6SYAcGzKavxXFhqY59hAz9TRET+M5AQGDV6SUynnmz21yrthB6RHQd
	p6+0yAyWU4yffRSLFPTZcnB/yUz2gjR2whDyUJO4D9W6ApWvL/Sn4Deexmor5aTb4n1BUswEszT
	UJ+ljtn1fEnOc+GpeGx5G/f4dmS/qEyihWPJUFqjysCEIJGPlzFjGjh2PzfjvGqXXxEV8S2rd4n
	CYxF6AbosIelBwXf1LpHIa1pLDQ==
X-Google-Smtp-Source: AGHT+IEWmXCl+EDyWma54qKl1TOsql6ONjXbcQMfTnlYHIU2vFLdXfjGrsIEK9fuTF4X8cSeaE/bbg==
X-Received: by 2002:a5d:5987:0:b0:39c:dcc:f589 with SMTP id ffacd0b85a97d-39ea51f5b87mr10738153f8f.20.1744698115656;
        Mon, 14 Apr 2025 23:21:55 -0700 (PDT)
Message-ID: <1e86b0e1-fa1d-49b3-8718-db43099772c2@suse.com>
Date: Tue, 15 Apr 2025 08:21:54 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 12/16] x86/hyperlaunch: add domain id parsing to domain
 config
To: Alejandro Vallejo <agarciav@amd.com>
Cc: xen-devel@lists.xenproject.org,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Jason Andryuk <jason.andryuk@amd.com>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Michal Orzel <michal.orzel@amd.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Julien Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Denis Mukhin <dmkhn@proton.me>
References: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-13-agarciav@amd.com>
 <tRYKTDKcoIBHId12LOD4EHCmAF-AN3V3PmkMqmyIjYCqQJ3TS_0ctt3WMCq1Ez3W7oIGxwU3UsAioyP9T9fMCO78_61AI01oYEknYF_h1_I=@proton.me>
 <D96K8KED132J.3C79EPWZM813D@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: <D96K8KED132J.3C79EPWZM813D@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 14.04.2025 20:07, Alejandro Vallejo wrote:
> On Wed Apr 9, 2025 at 11:15 PM BST, Denis Mukhin wrote:
>> On Tuesday, April 8th, 2025 at 9:07 AM, Alejandro Vallejo <agarciav@amd.com> wrote:
>>> @@ -233,6 +264,12 @@ static int __init process_domain_node(
>>> return -ENODATA;
>>> }
>>>
>>> + if ( bd->domid == DOMID_INVALID )
>>>
>>> + bd->domid = get_initial_domain_id();
>>>
>>> + else if ( bd->domid != get_initial_domain_id() )
>>>
>>> + printk(XENLOG_WARNING
>>> + "WARN: Booting without initial domid not supported.\n");
>>
>> Drop WARN since the log message is XENLOG_WARNING level already?
> 
> As mentioned elsewhere, the point of those prefixes are to be readable.

This, however, imo is a matter of consistency across the codebase, not just
within hyperlaunch. Plus (again imo) if anything, prefixes that are part of
the log output should contain proper words ("Warning:" or "Error:"), and
they shouldn't needlessly "shout" (i.e. "FATAL:" is okay-ish to be all caps,
but the others aren't).

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 15 06:27:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 06:27:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.952021.1347602 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4Zm0-0001xD-Ew; Tue, 15 Apr 2025 06:27:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 952021.1347602; Tue, 15 Apr 2025 06:27: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 1u4Zm0-0001x6-CG; Tue, 15 Apr 2025 06:27:56 +0000
Received: by outflank-mailman (input) for mailman id 952021;
 Tue, 15 Apr 2025 06:27: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=ai1O=XB=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u4Zlz-0001wr-BG
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 06:27:55 +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 c37f480b-19c2-11f0-9eae-5ba50f476ded;
 Tue, 15 Apr 2025 08:27:54 +0200 (CEST)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-43cf257158fso36237735e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 14 Apr 2025 23:27:54 -0700 (PDT)
Received: from [10.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-39eaf43cf42sm13253207f8f.64.2025.04.14.23.27.52
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 14 Apr 2025 23:27:53 -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: c37f480b-19c2-11f0-9eae-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744698474; x=1745303274; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=RdrnSi/Vd4fjZDRiajwwQokME9zz6KZPZcHritbxGd8=;
        b=GCjboNsAsuiVP3oMxZgs30WfRtlmFxMXmQnl81cLFDHW/GrCOkDDMJ0Kh9+JI5AwnM
         tjqVZfjnxEjep4MzNbEG0+RYsyNS7WP++QSFUprrkGl9gpQfLKb4vftOAxkTSStHNUaa
         /G505BML6OTDMOraVWzNLpdo/gXVewAQ8fnicNDMKXc+35ex2DfOal9kUkqgeeoM23ry
         YNFHUbYVMCVKDsPe5i53vsKbjUloGG/QQ2k2cL41tr5bjX05g8lIC/cBBd6I1X0Wz28O
         euK045e8OqU22CL0ntUqIBXdYR8KbUhhk3fCrJeVwqIJMqtOLLWryyqwjk/IaGvpZBzE
         KXmA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744698474; x=1745303274;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=RdrnSi/Vd4fjZDRiajwwQokME9zz6KZPZcHritbxGd8=;
        b=Elryswrm42KeOUgl6JzK4JWcwFROT2Td5+U8jh7EaOwjzil2/tlLATOWrzNfc63Qre
         IiOeU/zvRO65lSWltPb348UbW8zTAs6NA5HTKKxAw5ttYpSVtMSi/iKeaWgNiJu2bM5g
         pYEiwnInzGMYX34yCDjBdKPhnazeBjkCRtdFM3taf4nJibM3I2ty5wom5Xy95XBCXi92
         BvpdXOGzlGP/Ox7NrClA0qCrfjWubT688A8wBPVSgtuxtTnLb/4lSCnP9QZb+4TZFfQN
         rAl0U2cfjwXvBvR4pqT3o9xymCFwI4EOJbclRUmWm9RuakD4ekdr13kOQ9JdQNY90Yg1
         8qSQ==
X-Forwarded-Encrypted: i=1; AJvYcCXdoJRLqP4vbVt4MFkuW9G8RcABAz74akj/yh5fH2YeJ6mieTnFInfYCgjY8WGWhb9IK1fSSm/gxwE=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw9Uqqc/qGbx2SsC7TmD3HipTGSCN6U8AG35iHWiafR//KhG4To
	XJm5tg+xCcyI2KsRpt1+2RnvPqPLycf7BU7kTEjzDZO2Z5QpOXpU0V0EndMsyw==
X-Gm-Gg: ASbGncvXrRTbaPKjrLAgfY2D2cgntCwPPTCs+ZSq/ubQQNGBAI7GlRlbGqKzRrCEDZp
	lF0ethpsY/AsZl4B8NXYDf9PkLMFlfWZpv25Y4LpC+sEHa2eCb9iQJ9IiPs4HDOZmuCzsz/QYb9
	nJCMpK3UpEdepTSQQgDwBNhIyZkS5S4RfI7Ob77+zmoytyJtm79LFb5FJsraO4BKHPPSERyykXo
	f1Kh7ayzekA3kNJQArUhiMR7QcpYd1Eo7Wd3vqKLhmOEV2lRgSGXTT4qj4/oRUpjTy/pPLcobqf
	kImQdZSlSpwsT/eLcolRFO+B+IKAKVcFvkeES3X0lXGnEGv4Wc4+xXeAjigvTycXeqaeo4wx4Ja
	xHZIhE/1UIifSiyYdhc+UBc0PJw==
X-Google-Smtp-Source: AGHT+IGZiZGwlNzANQL16XcGwCynvcr0pQSJnpUNhYfp+skO5ZhvX3iIEiaSSAJnVD4qq942zEySAw==
X-Received: by 2002:a05:600c:1c8e:b0:43c:f85d:1245 with SMTP id 5b1f17b1804b1-43f3a958fe5mr115510695e9.17.1744698473779;
        Mon, 14 Apr 2025 23:27:53 -0700 (PDT)
Message-ID: <1235d73d-ec62-4223-a92f-7a19d802c306@suse.com>
Date: Tue, 15 Apr 2025 08:27:52 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 12/16] x86/hyperlaunch: add domain id parsing to domain
 config
To: Alejandro Vallejo <agarciav@amd.com>
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Jason Andryuk <jason.andryuk@amd.com>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Michal Orzel <michal.orzel@amd.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Julien Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 xen-devel@lists.xenproject.org
References: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-13-agarciav@amd.com>
 <6ce79cc0-1fec-4ad9-834e-680ef1f81549@suse.com>
 <D96KUGJTQO7F.39OKDX33SSKYH@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: <D96KUGJTQO7F.39OKDX33SSKYH@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 14.04.2025 20:35, Alejandro Vallejo wrote:
> On Thu Apr 10, 2025 at 12:49 PM BST, Jan Beulich wrote:
>> On 08.04.2025 18:07, Alejandro Vallejo wrote:
>>> From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
>>> @@ -158,12 +159,42 @@ int __init fdt_read_multiboot_module(const void *fdt, int node,
>>>  static int __init process_domain_node(
>>>      struct boot_info *bi, const 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) ?: "unknown";
>>>      int address_cells = fdt_address_cells(fdt, dom_node);
>>>      int size_cells = fdt_size_cells(fdt, dom_node);
>>>  
>>> +    fdt_for_each_property_offset(property, fdt, dom_node)
>>> +    {
>>> +        const struct fdt_property *prop;
>>> +        const char *prop_name;
>>> +        int name_len;
>>> +
>>> +        prop = fdt_get_property_by_offset(fdt, property, NULL);
>>> +        if ( !prop )
>>> +            continue; /* silently skip */
>>> +
>>> +        prop_name = fdt_get_string(fdt, fdt32_to_cpu(prop->nameoff), &name_len);
>>> +
>>> +        if ( strncmp(prop_name, "domid", name_len) == 0 )
>>> +        {
>>> +            uint32_t val = DOMID_INVALID;
>>> +            if ( fdt_prop_as_u32(prop, &val) != 0 )
>>> +            {
>>> +                printk("  failed processing domain id for domain %s\n", name);
>>> +                return -EINVAL;
>>> +            }
>>> +            if ( val >= DOMID_FIRST_RESERVED )
>>> +            {
>>> +                printk("  invalid domain id for domain %s\n", name);
>>> +                return -EINVAL;
>>> +            }
>>> +            bd->domid = (domid_t)val;
>>
>> And a conflict with other domains' IDs will not be complained about?
> 
> Hmmm... sure, I can iterate the domlist and check.

Well, just to clarify: The checking doesn't necessarily need to happen here
and now. It may also happen as domains are actually created. Yet then I
think a pointer there (in a code comment) would be helpful here.

>>> @@ -233,6 +264,12 @@ static int __init process_domain_node(
>>>          return -ENODATA;
>>>      }
>>>  
>>> +    if ( bd->domid == DOMID_INVALID )
>>> +        bd->domid = get_initial_domain_id();
>>> +    else if ( bd->domid != get_initial_domain_id() )
>>> +        printk(XENLOG_WARNING
>>> +               "WARN: Booting without initial domid not supported.\n");
>>
>> I'm not a native speaker, but (or perhaps because of that) "without" feels
>> wrong here.
> 
> It's probably the compound effect of without and "not supported". The
> statement is correct, but it's arguably a bit obtuse.
> 
> I'll replace it with "WARN: Unsupported boot with missing initial domid.".

But that still doesn't fit the check, which compares the given ID (i.e.
there's nothing "missing" here) with the expected one. The "no ID given"
is handled by the plain if() that's first.

> As for the first branch of that clause... I'm not sure we want to
> support running with DTs that are missing the domid property.

This I can't really judge on.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 15 06:38:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 06:38:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.952048.1347612 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4ZwP-0005BY-FE; Tue, 15 Apr 2025 06:38:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 952048.1347612; Tue, 15 Apr 2025 06: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 1u4ZwP-0005BR-Cg; Tue, 15 Apr 2025 06:38:41 +0000
Received: by outflank-mailman (input) for mailman id 952048;
 Tue, 15 Apr 2025 06:38:39 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ai1O=XB=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u4ZwN-0005BL-Rn
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 06:38:39 +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 4356cb8d-19c4-11f0-9eae-5ba50f476ded;
 Tue, 15 Apr 2025 08:38:38 +0200 (CEST)
Received: by mail-wr1-x42f.google.com with SMTP id
 ffacd0b85a97d-3912fdddf8fso4121320f8f.1
 for <xen-devel@lists.xenproject.org>; Mon, 14 Apr 2025 23:38:38 -0700 (PDT)
Received: from [10.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-39eae963f2bsm13465826f8f.18.2025.04.14.23.38.37
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 14 Apr 2025 23:38:37 -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: 4356cb8d-19c4-11f0-9eae-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744699118; x=1745303918; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=QGsc9ohzQ+jFOw1phaOx5A5zWdCF/Jc01ofBHhvwoBE=;
        b=KH/N6NChmcFPNpRFW5zASyj56PE/4nJQ+Xb/1ONLmhnIJSElfVj1ppcW/SmnKTAwTn
         Aw1zHwX7kP3guk5vnoFFZusd2mVlxVrqMzk+vfcK36CUkGsGOiJAeC09oZXJTkDcIETo
         Q7uzmDvTkUj2my0ELB3rhSqg5B7F4nI3vIxOYS6bl4FcN4SSBd/9NVuaXbgEvkFOMN/4
         dY7xMcZSVIPWLx2rbQONu9y+DIr2CESB7rtZNBnwTFdMEPkIiOdkgqp3KgSuRUVbpXeM
         fuiH9Mb48IxHuOrH5/MW5RWFnc5MIabEM8EqOV9xMggGItW3PbUre30ckBooYALb/ASe
         PHrA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744699118; x=1745303918;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=QGsc9ohzQ+jFOw1phaOx5A5zWdCF/Jc01ofBHhvwoBE=;
        b=Og0W3nyuNhf9LqmcKjzb3HKBwn23vHG7ChKPU8Ga9Pa5PPM6GrrOymnwets+WJq256
         ibA8iLoLHoymz7W7Oht0Nr+CYwD698b8S1COZB8CMK7whSLTKrZvT+s32x6Ug8P/5UN2
         wFXUq+/bcdqCim/ZnkLVb0gfJjj/c+F73PHaSzq0XvMDqmKyeHyEfumCAf0mt2qYz80l
         wrp3FhJnCFU5joUWOAuL5LWUggqt5YUxUyLHX8F/70COg5l+n4SKGO+fcGOVgY1xZ33A
         P0ZtT/+pdyLFmGYd3pvVJWNukHt5wxtTrn1VGs5cUOgnuwkZCJ8XZTo/cGspTmiHowof
         8udA==
X-Forwarded-Encrypted: i=1; AJvYcCUv6L9HJgGmjRJQVQlxwrnFsN8/MYcvV16i2v8iVJJxKkdDwSkXWa6rjGfjb2V3AOuxQKOj8rD2iRU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyyLvRC9OKV2R2yTL/9EnI75+PVykZVit2lcN7WEdTF2GSPklFd
	PlNUdIAGEfgtJjw5Dxbc3DZ4lJolRrW5iW99Z7UQKVRkDov0hVeHvy1LVwrjGg==
X-Gm-Gg: ASbGncv6+drhyw61Iwdb5jCFVLKXv+8Wt8MPw9Gua2mTan6gbT3v7lNsWI2Li1/4lbO
	dcb2GoLg6qWmKVlX78hd2NsjlVXPgkrj+nrt8Qu7XQVf3Y1Y26ux5eRwjC9F7KV1qedBvlderMp
	5LYGAJrW4MKt4iZqUTbmuoyjqQdunM420g8J1aDkkraG8GMviDVcvR2w9KJvVGYysTt4Dw1M26A
	4GMmmFu3QFSl5Q7wsLtIW7+l5OHH37oUusR9Qsc/C0jNcupLH1Rw6K7bJ2TF6nShhaAyR+9UPfj
	z7xCyL7m2UxVg3sYvOXZxu/CQkiUYfGXB+UQXdiWhtotquZOcnu2Ls6ULHA2jJKwBmDx1sXBh/F
	Xv7CSzBgcua2qtMYf3uJCQmCEZw==
X-Google-Smtp-Source: AGHT+IEVulrVV7MX/X3UqpvXBeR2h/phekkl0kt6skWmkULPWJEctiexPJeH2p7TQdEuxiEAqCnJiQ==
X-Received: by 2002:a5d:47cb:0:b0:39c:1efb:eec9 with SMTP id ffacd0b85a97d-39edc30c5bbmr1559381f8f.13.1744699117761;
        Mon, 14 Apr 2025 23:38:37 -0700 (PDT)
Message-ID: <2b269381-d002-4aa5-bad4-8c677b8a4b0d@suse.com>
Date: Tue, 15 Apr 2025 08:38:36 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 16/16] x86/hyperlaunch: add capabilities to boot domain
To: Alejandro Vallejo <agarciav@amd.com>
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Michal Orzel <michal.orzel@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, Jason Andryuk <jason.andryuk@amd.com>
References: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-17-agarciav@amd.com>
 <93bad6aa-57a8-427d-a0f6-924f03f0db34@suse.com>
 <D96M14WZ37ZW.D7AAHJ3RMV9D@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: <D96M14WZ37ZW.D7AAHJ3RMV9D@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 14.04.2025 21:31, Alejandro Vallejo wrote:
> On Thu Apr 10, 2025 at 1:18 PM BST, Jan Beulich wrote:
>> On 08.04.2025 18:07, Alejandro Vallejo wrote:
>>> --- a/xen/arch/x86/domain-builder/fdt.c
>>> +++ b/xen/arch/x86/domain-builder/fdt.c
>>> @@ -257,6 +257,18 @@ static int __init process_domain_node(
>>>              bd->max_vcpus = val;
>>>              printk("  max vcpus: %d\n", bd->max_vcpus);
>>>          }
>>> +        else if ( strncmp(prop_name, "capabilities", name_len) == 0 )
>>> +        {
>>> +            if ( fdt_prop_as_u32(prop, &bd->capabilities) != 0 )
>>> +            {
>>> +                printk("  failed processing domain id for domain %s\n", name);
>>> +                return -EINVAL;
>>> +            }
>>> +            printk("  caps: ");
>>> +            if ( bd->capabilities & BUILD_CAPS_CONTROL )
>>> +                printk("c");
>>> +            printk("\n");
>>> +        }
>>
>> Like for the other patch: What about other bits being set in the value read?
> 
> I take it that the non-worded suggestion is to have a mask of reserved
> bits for each case and check they are not set (giving a warning if they are)?

Whether a warning is sufficient I can't tell. I would have expected such to be
outright rejected.

>>> --- a/xen/arch/x86/setup.c
>>> +++ b/xen/arch/x86/setup.c
>>> @@ -1006,6 +1006,7 @@ static struct domain *__init create_dom0(struct boot_info *bi)
>>>  {
>>>      char *cmdline = NULL;
>>>      size_t cmdline_size;
>>> +    unsigned 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,
>>> @@ -1037,7 +1038,10 @@ static struct domain *__init create_dom0(struct boot_info *bi)
>>>      if ( bd->domid == DOMID_INVALID )
>>>          /* Create initial domain.  Not d0 for pvshim. */
>>>          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;
>>
>> Seeing that builder_init() in the non-DT case sets the new bit unconditionally,
>> isn't the shim's only domain suddenly getting CDF_privileged set this way? Oh,
>> no, you then ...
>>
>>> +    d = domain_create(bd->domid, &dom0_cfg,
>>> +                      pv_shim ? 0 : create_flags);
>>
>> ... hide the flag here. Any reason to have the intermediate variable in the
>> first place
> 
> Well, the logic would end up fairly convoluted otherwise. As things
> stand this can be encoded in an if-else fashion with 2 calls, but
> there's 2 capability flags coming that need integrating together.
> 
> This is just avoiding further code motion down the line.

Is it?

-    d = domain_create(bd->domid, &dom0_cfg, pv_shim ? 0 : CDF_privileged);
+    d = domain_create(bd->domid, &dom0_cfg,
+                      ((bd->capabilities & BUILD_CAPS_CONTROL) && !pv_shim
+                       ? CDF_privileged : 0));

isn't really worse (imo), but is highlighting the problem more clearly: Why
would the shim have BUILD_CAPS_CONTROL set in the first place? Without that
the statement would remain pretty similar to what it was before.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 15 06:55:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 06:55:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.952069.1347623 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4aCT-0002B3-Qq; Tue, 15 Apr 2025 06:55:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 952069.1347623; Tue, 15 Apr 2025 06: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 1u4aCT-0002Aw-NH; Tue, 15 Apr 2025 06:55:17 +0000
Received: by outflank-mailman (input) for mailman id 952069;
 Tue, 15 Apr 2025 06:55: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=ai1O=XB=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u4aCR-0002An-U2
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 06:55:15 +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 949241f8-19c6-11f0-9ffb-bf95429c2676;
 Tue, 15 Apr 2025 08:55:13 +0200 (CEST)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-39149bccb69so5077700f8f.2
 for <xen-devel@lists.xenproject.org>; Mon, 14 Apr 2025 23:55:13 -0700 (PDT)
Received: from [10.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-39eae97751fsm13077921f8f.41.2025.04.14.23.55.12
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 14 Apr 2025 23:55: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: 949241f8-19c6-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744700113; x=1745304913; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=gVd76tjTv5/XUW3W/5Md6xJyV/ZhfKtKIm9FZyTKt9g=;
        b=A8OFApkPqokrHdshWIjx2U6yHvL8DwIf6p2FPhevWHHeNN2TmFXvssVhIBmHdUUA/i
         V8tX47NPCMF13oNT/Tcd2WrLiP4twh6YWeT5aueHnmx4s16BcK7i3T14xQ4GrSoMWYBI
         jy4oKGHUQCfyzab8IXgwMxGzwEPNb5qun4We9CCmc+M8+rjwOdNQoThXZVCrDN7iZSIq
         25UxWLGXp4XPEAqMR90h75LdXwDze+AiOUM2GfObMiNSTXQxUFiCfGUJkGDPilpHahXH
         KeeJP7NxdeTGHiEkhhJrEgefynhpkpq6p4sv7SAU06ep9JStpSCA/Hgx9Z+Qow9Mh0D4
         oypQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744700113; x=1745304913;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=gVd76tjTv5/XUW3W/5Md6xJyV/ZhfKtKIm9FZyTKt9g=;
        b=d3QFo5RT/FkXh3zDVtl6Tt5b/PYjqRK/UtGMcjnc7StpRHGinIpMcULh7uUIcufrwH
         M6m2xWaAMWQ8c2Pi4Q61Y15yKTmNVe95Cq0RXCP+NqlFwO2R5VLrBgtbFEfqNa0G3xSY
         VH4PIg40gJgd5V/VXkH3clZArU4U0L9FiUAYkTjkK9oe1mNjhxRx9AIFDzmhwBSi1DdO
         Y+3i027QHaWtvVd6JZcXsU53PB8cZ4f5Fc4eAxofJwwGnGp/QQxglFfE9vSTuqMz7DE1
         uCwozXfyAHQfqcdOKiBZTsGYdhyeeJ6ePZ/zRTnVU1EBaO11Cky6aT6YAQOvwwa31xIX
         n75w==
X-Forwarded-Encrypted: i=1; AJvYcCX3WjHPt5uE+DW32z/9AwtzaulLWq8afFgQY74pfFQyZO5EFcieeiBoJeMfhfw7Nw9t/wI+RUwIb5Q=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyhP9JVJb+Eqrfm2pDG3DR+9XU32/afkgvbYqd3YDQxqvD/khKR
	YL+a36yp55ewBBrdxN2wkxEinuIG5n7NKWlae6ryj8B5pWw5pPXTkJ3Cg1qT2g==
X-Gm-Gg: ASbGnctQHoqBJxgchiaoZNeF6JmcqVqh0C7NnzrLR0x0sheRjrHJ+9ts4ei4s65pmdy
	7nXeHPhlCmUp2e0XOB3C0073nrZ73GDcQiCwQ0GO9FozZ+uX6P1ukVzIYeTcSSVN5opuZcj7U0g
	IArewl/Xp+KorZA8woLbTNw+uJnglOaKBiZ6PInHarT8lQMKVnlPgw4cSr4tih77cElJq0JmX07
	Mh6M1bK383nLBrqZyLGDeOOv+S3vhy1YkPnBzrAbfUnxm8s+AP5RMgizCwKMAtQidlffDZy8ZMY
	Y3uvCTvd+IzEQdAqMorS07/x+XVuDbJpZwCoUuloNJBbT6xtP2OU9PO0vvMycVtv95lGtYj5Grg
	eSLaSgOC8jWO5fJgnysW6w39pGQ==
X-Google-Smtp-Source: AGHT+IGB+msyiasKsP6rPoLzITW40AtpkR9+FyARS3qGHU5XdM65GDzO6PiLjM2S55QaZjGC/SWHBg==
X-Received: by 2002:a5d:5f52:0:b0:39c:12ce:67d with SMTP id ffacd0b85a97d-39ea51d0fd7mr12234943f8f.9.1744700113107;
        Mon, 14 Apr 2025 23:55:13 -0700 (PDT)
Message-ID: <47fc3dad-3f7b-4a9b-89c1-99e79a048ad9@suse.com>
Date: Tue, 15 Apr 2025 08:55:12 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v7 0/3] Enable early bootup of Armv8-R AArch32 systems
To: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 xen-devel@lists.xenproject.org
References: <20250414164514.588373-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: <20250414164514.588373-1-ayan.kumar.halder@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 14.04.2025 18:45, Ayan Kumar Halder wrote:
> Enable early booting of Armv8-R AArch32 based systems.
> 
> Added Luca's R-b in all the patches.
> Added Michal's R-b in patch 1 and 3.
> 
> Ayan Kumar Halder (3):
>   xen/arm: Move some of the functions to common file
>   xen/arm32: Create the same boot-time MPU regions as arm64
>   xen/arm32: mpu: Stubs to build MPU for arm32
> 
>  xen/arch/arm/arm32/Makefile              |   1 +
>  xen/arch/arm/arm32/mpu/Makefile          |   3 +
>  xen/arch/arm/arm32/mpu/head.S            | 104 +++++++++++++++++++++++
>  xen/arch/arm/arm32/mpu/p2m.c             |  19 +++++
>  xen/arch/arm/arm32/mpu/smpboot.c         |  26 ++++++
>  xen/arch/arm/arm64/mpu/head.S            |  78 +----------------
>  xen/arch/arm/include/asm/arm32/sysregs.h |  13 ++-
>  xen/arch/arm/include/asm/arm64/sysregs.h |  13 +++
>  xen/arch/arm/include/asm/cpregs.h        |   2 +
>  xen/arch/arm/include/asm/mm.h            |   9 +-
>  xen/arch/arm/include/asm/mmu/mm.h        |   7 ++
>  xen/arch/arm/include/asm/mpu/cpregs.h    |  32 +++++++
>  xen/arch/arm/include/asm/mpu/mm.h        |   5 ++
>  xen/arch/arm/include/asm/mpu/regions.inc |  79 +++++++++++++++++
>  xen/arch/arm/mpu/Makefile                |   1 +
>  xen/arch/arm/mpu/domain_page.c           |  45 ++++++++++
>  16 files changed, 350 insertions(+), 87 deletions(-)
>  create mode 100644 xen/arch/arm/arm32/mpu/Makefile
>  create mode 100644 xen/arch/arm/arm32/mpu/head.S
>  create mode 100644 xen/arch/arm/arm32/mpu/p2m.c
>  create mode 100644 xen/arch/arm/arm32/mpu/smpboot.c
>  create mode 100644 xen/arch/arm/include/asm/mpu/cpregs.h
>  create mode 100644 xen/arch/arm/include/asm/mpu/regions.inc
>  create mode 100644 xen/arch/arm/mpu/domain_page.c

Even if we have files of this name elsewhere, it would imo be nice if new ones
still used dash(es) instead of underscore(s) in their names.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 15 06:55:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 06:55:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.952075.1347632 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4aCr-0002ZM-1a; Tue, 15 Apr 2025 06:55:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 952075.1347632; Tue, 15 Apr 2025 06:55:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4aCq-0002ZF-UX; Tue, 15 Apr 2025 06:55:40 +0000
Received: by outflank-mailman (input) for mailman id 952075;
 Tue, 15 Apr 2025 06:55: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=pN+4=XB=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1u4aCq-0002Rv-GW
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 06:55:40 +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 a4317dd2-19c6-11f0-9eae-5ba50f476ded;
 Tue, 15 Apr 2025 08:55:39 +0200 (CEST)
Received: by mail-ej1-x633.google.com with SMTP id
 a640c23a62f3a-ac29af3382dso838374666b.2
 for <xen-devel@lists.xenproject.org>; Mon, 14 Apr 2025 23:55:39 -0700 (PDT)
Received: from ?IPV6:2003:e5:873d:1a00:8e99:ce06:aa4a:2e7b?
 (p200300e5873d1a008e99ce06aa4a2e7b.dip0.t-ipconnect.de.
 [2003:e5:873d:1a00:8e99:ce06:aa4a:2e7b])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-acaa1999d96sm1025891866b.0.2025.04.14.23.55.38
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 14 Apr 2025 23:55:38 -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: a4317dd2-19c6-11f0-9eae-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744700139; x=1745304939; 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=mH1iHo0oVHEl3wNf7M0lyymD0sny8Au9BwF+SaQ+0yY=;
        b=KVzF1daEwl9ka49pThLhdHI+NWKa0YNW64+4PLTP2YIO8q+eqrMI4810xRqOTuLSQi
         1cC5Z6SkIebGWXGJKecCsZxxK1xP4LaWEOcegCHvh5O3Ko/ocM3RIcYgvKFYHRtWh/gk
         zR4gwGliwWxmgLCOQ4BExU73Ek7vFKrOo3lljyhUz8zFQarGZSfbl/VE4m5ibASx3PPC
         gtJM6yvFINO/2MWXdyWqHtZplD55s4lv905o9bUc4mdpt1iHW7F6DEqfEAok+AFDnPzP
         CRXUOF0QalyI+wegMHebnTwAxPO4k5rRRuuHBV2mSbCYFsSnhnY3XfoHK2HjOKznpJCK
         8Cnw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744700139; x=1745304939;
        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=mH1iHo0oVHEl3wNf7M0lyymD0sny8Au9BwF+SaQ+0yY=;
        b=LW0AkV0aa7O8cB94HloX4vche77mNtC6/NYFe76JhWMOQwLAItL4vQ3zd0AnxD0AOf
         iZlozSUqlcpvybp/AxJaAgV8EaB9kenQJTGensJYCojbhGPTKrtjgN3+Lix3H+eHdIWk
         I5ahEyQRw2JDPKqbuW5xHdbvEfCkmMGMzAk5jS9W2SfY0CcG2bb+/KOvnVJchA17PBA1
         30QrwdYj0POAISoDKN98vMoU1bZ0ADvITF2LDKbbqgE77MW7E94F6QnTwWO30FcqZ9Z5
         MQki7bYvUgo2De9+Hyc56yVVQkJIIkE8jFHkbn6gJaE6vaC5rxHPQR5vKOU+f18KWhB0
         XPhw==
X-Forwarded-Encrypted: i=1; AJvYcCVdcToBbRS63caHR3ES9eP8XBkoaDoQBzx1CDgAC5XiUtZZBR+YR+YYkwAiUfkDvy6ID/WZIluqIbI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxFNxMesQJa8xaUpX0sYWFxM38mujrmzcWmYQOzDmhZAM/fuP7U
	ROlVez89IVidQMGi8rJL4iGv8n+fhy8UXeqMZzjmKkLLvexRzKXFi7phvHG4FM4=
X-Gm-Gg: ASbGnct/DGi/UIqPRWQs14I2vu78Lj/Xksv80DT5f/+A62Zgcfbkv9DkD+cIApoIcJg
	it5oujP1aeMao4ersZFRyEfmdIz1LXSzMlsO+E/mHY795A5eImTDwRtcmwKcrIJga5LJ2Y93eX9
	//9U0LvTZ5RwMN83tfxSQUv9IrE2IiEHAFfldhLug7AvB/O7Uc4aa6DfDhOjtifSg1X9tLulBDA
	oLlBdgB3VpI/hDDIiRIDiblIPoJ86Hb4hAptAGf9FTJkPklhDRInscptkr3GJhSv0UKynR1PRkC
	7IjhFzjGbZLxP+IApsOqTtvAKY8/EG0lP+JlmA5pPCVZCjUd0ck6jmZFeWJ9W02YXDsJEKKbfee
	Sou9zwhZlVYQ2sNQopC7TT50zqJ2MSPTQ5Eerrgiyvb98Dr1MNPKPXDKwWpwrTcvC/g==
X-Google-Smtp-Source: AGHT+IHfwJashPa+nqtOMRp7LD73ka/YQaxjrS0ijQc96PctD+DEkKhFe9nYhZU4EUJUkHAUKH06Sw==
X-Received: by 2002:a17:907:60d4:b0:ac8:16fb:a291 with SMTP id a640c23a62f3a-acad34869edmr1535103466b.18.1744700139191;
        Mon, 14 Apr 2025 23:55:39 -0700 (PDT)
Message-ID: <49dc22ee-ad72-4c01-bab9-37f405e947d6@suse.com>
Date: Tue, 15 Apr 2025 08:55:38 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: linux-6.15-rc2/drivers/xen/balloon.c:346: Possible int/long mixup
To: David Binderman <dcb314@hotmail.com>,
 "sstabellini@kernel.org" <sstabellini@kernel.org>,
 "oleksandr_tyshchenko@epam.com" <oleksandr_tyshchenko@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
References: <AS8PR02MB1021776B93FEF6D425C7223389CB32@AS8PR02MB10217.eurprd02.prod.outlook.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: <AS8PR02MB1021776B93FEF6D425C7223389CB32@AS8PR02MB10217.eurprd02.prod.outlook.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------wY5A2zixIF1bIvSO7tvogJP6"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------wY5A2zixIF1bIvSO7tvogJP6
Content-Type: multipart/mixed; boundary="------------L80Zs1i0UKD0f1eNCgIODbzW";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: David Binderman <dcb314@hotmail.com>,
 "sstabellini@kernel.org" <sstabellini@kernel.org>,
 "oleksandr_tyshchenko@epam.com" <oleksandr_tyshchenko@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Message-ID: <49dc22ee-ad72-4c01-bab9-37f405e947d6@suse.com>
Subject: Re: linux-6.15-rc2/drivers/xen/balloon.c:346: Possible int/long mixup
References: <AS8PR02MB1021776B93FEF6D425C7223389CB32@AS8PR02MB10217.eurprd02.prod.outlook.com>
In-Reply-To: <AS8PR02MB1021776B93FEF6D425C7223389CB32@AS8PR02MB10217.eurprd02.prod.outlook.com>

--------------L80Zs1i0UKD0f1eNCgIODbzW
Content-Type: multipart/mixed; boundary="------------rNOgDUQkUSyo2kvvHmbYIPcQ"

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

T24gMTQuMDQuMjUgMTk6NTcsIERhdmlkIEJpbmRlcm1hbiB3cm90ZToNCj4gSGVsbG8gdGhl
cmUsDQo+IA0KPiBTdGF0aWMgYW5hbHlzZXIgY3BwY2hlY2sgc2F5czoNCj4gDQo+IGxpbnV4
LTYuMTUtcmMyL2RyaXZlcnMveGVuL2JhbGxvb24uYzozNDY6MjQ6IHN0eWxlOiBpbnQgcmVz
dWx0IGlzIGFzc2lnbmVkIHRvIGxvbmcgdmFyaWFibGUuIElmIHRoZSB2YXJpYWJsZSBpcyBs
b25nIHRvIGF2b2lkIGxvc3Mgb2YgaW5mb3JtYXRpb24sIHRoZW4geW91IGhhdmUgbG9zcyBv
ZiBpbmZvcm1hdGlvbi4gW3RydW5jTG9uZ0Nhc3RBc3NpZ25tZW50XQ0KPiANCj4gU291cmNl
IGNvZGUgaXMNCj4gDQo+ICAgICAgdW5zaWduZWQgbG9uZyBpLCBzaXplID0gKDEgPDwgb3Jk
ZXIpOw0KPiANCj4gTWF5YmUgYmV0dGVyIGNvZGU6DQo+IA0KPiAgICAgIHVuc2lnbmVkIGxv
bmcgaSwgc2l6ZSA9ICgxVUwgPDwgb3JkZXIpOw0KPiANCg0KV2hpbGUgSSBhZ3JlZSB0aGlz
IHdvdWxkIGJlIGJldHRlciwgdGhlcmUgaXMgbm8gcmVhbCBmYWlsdXJlIHBvc3NpYmxlDQpo
ZXJlLiBGb3IgdGhpcyB0byBjYXVzZSBwcm9ibGVtcyB5b3UnZCBuZWVkIHRvIGhvdHBsdWcg
MTZUQiBvZiBtZW1vcnkNCmluIG9uZSBzaW5nbGUgYmxvY2suDQoNCk5ldmVydGhlbGVzcyB0
aGFua3MgZm9yIHRoZSBub3RpY2UuDQoNCg0KSnVlcmdlbg0K
--------------rNOgDUQkUSyo2kvvHmbYIPcQ
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-----

--------------rNOgDUQkUSyo2kvvHmbYIPcQ--

--------------L80Zs1i0UKD0f1eNCgIODbzW--

--------------wY5A2zixIF1bIvSO7tvogJP6
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/Ey8FAmf+AuoFAwAAAAAACgkQsN6d1ii/Ey/n
kQf/ZtJmR+LeWcIyGU04l61IaqpD67A1ASh+lM+EKBzUAzhmQ1zp2W3s3OPlg/altaQuRys/XNX9
J7R0fhFKlHT8ihOiIIF4uIcaqICAKKiivrxH6yFyWnn1dPyPiz1Xe4C/GmFjagfj/xcCVkymIwgx
6gL51sENPyqbLNzK+sOHDgZOBXfqAaiAl+B1RYtu1HXh9tk8YWbEXkAXXye15VHkYG9urOkZY4f6
oanrsUNR3844AB1SJQ73cKRzv+v/EVXsgqPRTmdII4Ei6jMs2HCiHPKhko1v12yxz1r44JiTjJ4v
eOhfStPjwByvrCJ3+QPg9G/d0fsEXkpc82MZ5sUR+g==
=KJKF
-----END PGP SIGNATURE-----

--------------wY5A2zixIF1bIvSO7tvogJP6--


From xen-devel-bounces@lists.xenproject.org Tue Apr 15 06:57:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 06:57:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.952091.1347643 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4aEp-0003Ga-Fj; Tue, 15 Apr 2025 06:57:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 952091.1347643; Tue, 15 Apr 2025 06: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 1u4aEp-0003GT-Cz; Tue, 15 Apr 2025 06:57:43 +0000
Received: by outflank-mailman (input) for mailman id 952091;
 Tue, 15 Apr 2025 06: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=6T3Z=XB=zytor.com=hpa@srs-se1.protection.inumbo.net>)
 id 1u4aEo-0003GN-Cd
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 06:57:42 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e9186be5-19c6-11f0-9ffb-bf95429c2676;
 Tue, 15 Apr 2025 08:57:36 +0200 (CEST)
Received: from [127.0.0.1] ([76.133.66.138]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53F6unIB2639618
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NO);
 Mon, 14 Apr 2025 23:56:50 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e9186be5-19c6-11f0-9ffb-bf95429c2676
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53F6unIB2639618
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025032001; t=1744700212;
	bh=tEL///cSukVzcGZZ+2nvW1x1tC0cDrQQQifctHJH11o=;
	h=Date:From:To:CC:Subject:In-Reply-To:References:From;
	b=YCTksIhBMy5xplKGhKrpvDh+Gt4mtL5UACeLF4lslUD1VbrgQuefYVuMy0mei/Q60
	 vdGgLY87TG/KgIIPPcUrpz6SBT/6R3SCkZ+mQgyRjw0lb2t8Z6V/DQuBdKKBVkDe+6
	 dRzEAkOrIYGAMUNvTt4/aZ57QFtr4kcQPeum8uV8El7RCdX3ykwKs8rLpr1awvDFX1
	 umsqFcRaAuHx6n2uvOGXI6BLdb5fvTagOGQLqqGtBW5qmxwGylfYFOFTGabqO9jMtD
	 +PmCyVIUbPX92wEig0ZdnACF2Cws0xiPBLd5Sq9WMGFTT/VPR9E/iDGKXpwNHIR5BM
	 tHMRkCne6bI6g==
Date: Mon, 14 Apr 2025 23:56:47 -0700
From: "H. Peter Anvin" <hpa@zytor.com>
To: Xin Li <xin@zytor.com>, Jim Mattson <jmattson@google.com>,
        Sean Christopherson <seanjc@google.com>
CC: linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org,
        linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
        linux-edac@vger.kernel.org, kvm@vger.kernel.org,
        xen-devel@lists.xenproject.org, linux-ide@vger.kernel.org,
        linux-pm@vger.kernel.org, bpf@vger.kernel.org, llvm@lists.linux.dev,
        tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, jgross@suse.com,
        andrew.cooper3@citrix.com, peterz@infradead.org, acme@kernel.org,
        namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, luto@kernel.org,
        boris.ostrovsky@oracle.com, kys@microsoft.com, haiyangz@microsoft.com,
        decui@microsoft.com
Subject: =?US-ASCII?Q?Re=3A_=5BRFC_PATCH_v1_10/15=5D_KVM=3A_VMX=3A_Use_WR?=
 =?US-ASCII?Q?MSRNS_or_its_immediate_form_when_available?=
User-Agent: K-9 Mail for Android
In-Reply-To: <0cad1e0b-2bfd-4258-90cd-8d319bf0e74a@zytor.com>
References: <20250331082251.3171276-1-xin@zytor.com> <20250331082251.3171276-11-xin@zytor.com> <Z_hTI8ywa3rTxFaz@google.com> <CALMp9eRJkzA2YXf1Dfxt3ONP+P9aTA=WPraOPJPJ6C6j677+6Q@mail.gmail.com> <fa16949e-7842-45f7-9715-1bdda13b762a@zytor.com> <EAB44BB2-99BB-4D4A-8306-0235D2931E72@zytor.com> <0cad1e0b-2bfd-4258-90cd-8d319bf0e74a@zytor.com>
Message-ID: <D212FABE-38FE-45D3-A082-CA819CCFFF95@zytor.com>
MIME-Version: 1.0
Content-Type: text/plain;
 charset=utf-8
Content-Transfer-Encoding: quoted-printable

On April 14, 2025 10:48:47 AM PDT, Xin Li <xin@zytor=2Ecom> wrote:
>On 4/12/2025 4:10 PM, H=2E Peter Anvin wrote:
>> Also,*in this specific case* IA32_SPEC_CTRL is architecturally nonseria=
lizing, i=2Ee=2E WRMSR executes as WRMSRNS anyway=2E
>
>While the immediate form WRMSRNS could be faster because the MSR index
>is available *much* earlier in the pipeline, right?

Yes, but then it would be redundant with the virtualization support=2E


From xen-devel-bounces@lists.xenproject.org Tue Apr 15 07:01:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 07:01:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.952106.1347653 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4aId-0005cF-Ti; Tue, 15 Apr 2025 07:01:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 952106.1347653; Tue, 15 Apr 2025 07:01: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 1u4aId-0005bN-Qx; Tue, 15 Apr 2025 07:01:39 +0000
Received: by outflank-mailman (input) for mailman id 952106;
 Tue, 15 Apr 2025 07:01: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=Ubua=XB=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1u4aIc-0005XY-S1
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 07:01:38 +0000
Received: from EUR02-AM0-obe.outbound.protection.outlook.com
 (mail-am0eur02on20605.outbound.protection.outlook.com
 [2a01:111:f403:2606::605])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7662acb9-19c7-11f0-9ffb-bf95429c2676;
 Tue, 15 Apr 2025 09:01:33 +0200 (CEST)
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com (2603:10a6:20b:5e4::22)
 by DU0PR03MB9397.eurprd03.prod.outlook.com (2603:10a6:10:418::9) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.32; Tue, 15 Apr
 2025 07:01:30 +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.8632.030; Tue, 15 Apr 2025
 07:01: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: 7662acb9-19c7-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=qFuYu+mJ3TNgxWIPAu1pgtw4VyVNQSKm7IvOIdRc3o9Tt3Y6quHV3ZswYoWUUPOiR9gkBJZAyep8Cs2qBHZFiOaPrqEhenAxFX2JhOzop+6kkltYG5gEIY+VAfPx9nEBn/A+1fddf86n5Sv+bhIMnizeSmynjQAirk5eyFug9dSAWbpHLBYP80Z98BR4Kiu+k/IYWw+osTC3JJ3RbKKukfd12tJ9b7fmVRMYqmvNtdB4fqQyVOfVMd9sZOPmAsi4doy+XRMQMhhENPjR5kHhahrea+Zi9Xeo+LB3vW33sANSTULqxtKwA0SMsMq28VsnXL+KP+PLIvJhMctpqw0jew==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ed65JedvtLixGMrjW7VTHPtzpGPSaax4H5aGaB13iL8=;
 b=DHFDAikZ1TREnnO+SgGkYdTxrfPds6hluL0qtpV6Av+ZqKdprEWh5JIeGqh5+pR4vsopP9Ia8yAJq+c5EeiR2AsGYQnaXkMemlV+/I1B4YlVCC9hoVXb3ZGY67HFVoI45vLR/bkJf20Pd55MdEOTes0JhU0bjj7PbHb1z4XQFKFJ9oNpOBMEGzD2A4JX+bMcdnVGQEnT0EvCA7C4DrTms465KI7/MtdME04PkfYAmTmOpV/5cuhcvogKroyNOrBoQl3k+NhOxgbHDdcKCvevNFv+RcrWCsLx6SN1oHdGDLMcSA5b4Yxuz0Y2ujhhWjYwJ+RwbLEUKTSLof/sr4Ijtw==
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=ed65JedvtLixGMrjW7VTHPtzpGPSaax4H5aGaB13iL8=;
 b=eLFwanCq82qhMOtpmCltIvq0xTvedAmEIVosBwGtKb21WLny7xKPpo9pxGjoc2jBjhB4Y4eFVj6YrFEeD+XT5NJcBUapLQ7I/LH1UNkxSnv710kL9nxfOuf/xQaPR7aCGlR45zjghQtAktlWd3cMWPPCHXf7DRzarRf+Q8s9v3N5P9dC72lGMP1jforaQDzI8V0faxd4ZPv3+mxfSs3PdCH+7B+GFRpw381Y7uoBtcVBLnIeOtiF52g3ObS5oYP1iA3b+qoMsau54goILcMfhc5sK0/feqtTMsPtlj6psVs1ZwQFoC2UaVS/yTPkZJL/AYtOqrPwV4DuOXzo5/QNEQ==
From: Grygorii Strashko <grygorii_strashko@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Stefano
 Stabellini <sstabellini@kernel.org>
CC: Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>, Alejandro Vallejo
	<agarciav@amd.com>, Grygorii Strashko <grygorii_strashko@epam.com>
Subject: [ImageBuilder v2] uboot-script-gen: add xen xsm policy loading
 support
Thread-Topic: [ImageBuilder v2] uboot-script-gen: add xen xsm policy loading
 support
Thread-Index: AQHbrdQ23X0WxR72F0K7gBcSDAVLlQ==
Date: Tue, 15 Apr 2025 07:01:29 +0000
Message-ID: <20250415070128.1938253-1-grygorii_strashko@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AS2PR03MB8907:EE_|DU0PR03MB9397:EE_
x-ms-office365-filtering-correlation-id: 62cc0094-2b32-4269-bb2a-08dd7beb58c6
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?d1Et/N3d6paRx4ppl0asyM/l2FLyb3TF5f9X5DTb1HYHXY2zmCydm1f6Fn?=
 =?iso-8859-1?Q?kaHTnCz8poJu+oKn2/CtNyN122uVnXyv2T7M+Pp52WlTP83xJWRGbqBs82?=
 =?iso-8859-1?Q?z8YLLVylGwKj6gJPNGnyUoRKTRaYXm4nN5SWceD1A4UFMrGTsZJj9tBHQ+?=
 =?iso-8859-1?Q?/6sTYmvsZRtzeyWl/XdPTj397I8O077IKxevzHYZU9nOLBXT1SlXOQECfb?=
 =?iso-8859-1?Q?jHaukfKyLF1+GsUUd8A9nIj89xMVVF9ofeOm3fhf211ZOSPPthrWKwfec4?=
 =?iso-8859-1?Q?E2AO7mXdz4W9ifqZ5RPgeg/2FunF9QKdTk8/eAiTGS9fOerWID2QhWGL9Y?=
 =?iso-8859-1?Q?faZCrFAVzjeHM65S6YvrIVcqY+Jpekdu5X+eQ9Z/RjCW0HCT6m3wimUvtv?=
 =?iso-8859-1?Q?xGPhEAgqSjye3/70zP/aJyV61/XEo+p01MI3SeGEcCSso5NVcpogctMvbQ?=
 =?iso-8859-1?Q?+pz6OvPoBWNNGlt79BQJvCrX0xEkrk71+GS6HJX3TqNlFI2gdZdX7djFNi?=
 =?iso-8859-1?Q?0e6UZ5rD/vxO9PKzniG/nrfhtJqfvZWcc6x79gD4kILUESQKi6FPiLSYjv?=
 =?iso-8859-1?Q?HnOclgr4grkOPPaQobZdkRsgwFYX4cW9nAmYzL+bcVYMX1U2gfWC6mvIvv?=
 =?iso-8859-1?Q?4568MDiPM4Z2EVcEkvvhWWhDG9MDPQQr7NJzBAnrmcEP8DeeF7WTIAHXMu?=
 =?iso-8859-1?Q?A8yX9yjMhEA3NOdYp47kenb5QzhDhz9mkffqMyyHNiZEbf4xAOn0bGtezJ?=
 =?iso-8859-1?Q?7eKH6fIS9GfVW6jNPaOYzaP25zyhFtwo3dYe/ZRB/w0+ST0ZQz22mSYO9W?=
 =?iso-8859-1?Q?V2eRbTXZCtguLpjYFxj+/xIKt8cpcKPjCcWVgC4nG/wUTetskGucpIe+dB?=
 =?iso-8859-1?Q?cZQmYY6fAQvNzVmjmLo5CBSfIf3IxT0QhvA1oDksBg/6v3HlDCU+lecDXg?=
 =?iso-8859-1?Q?UsnBhkXDjjEfnSyz7bh3CU1/UhEJj2ERaEHTW+27pbnvQkUV2RHb9RKT1L?=
 =?iso-8859-1?Q?bZLqJM4BXWcckLI4L+wto0OXUOM+N7C3L2zLWpCD+Qk1wLMq+SXh9xDicQ?=
 =?iso-8859-1?Q?az5FGy0OcXcgnUKvB8QJnoUR1fT+UTlxwio5O13KZWfUv/PEMfp4oLDANd?=
 =?iso-8859-1?Q?iF9hpBo+uP40VsWVcrFGZQRnNC9AkQKpdMPLGEHUkx0Gius1MagvSnVOvr?=
 =?iso-8859-1?Q?hRLly1IZVWdopvhnWO7Sb5OqvMXBs1rXL5UNwgaqCRnsULclOjWWkLEhX6?=
 =?iso-8859-1?Q?+BEyewRT8uoDUAIe4L2xL07vDrcHboAjUQV97k7CoW6meGYYWlZS3SJ7Vw?=
 =?iso-8859-1?Q?3sHzM6e/4P/0TiaPf+XbT61+sVm0Lw+7zx7TH7ynxVKZIXEDkt/FYLE6Gh?=
 =?iso-8859-1?Q?l+1z7UO9rS4vGwyXPcmSd4Vmyb2RpwzCHiARBP2fKvSegVEiO8l/bdE5mk?=
 =?iso-8859-1?Q?GgjPVjLaPIFzXVfzYq6I+u/FJVKkzD7Giqlvp1o8KqnG/RqeHw6dx93HGe?=
 =?iso-8859-1?Q?LtG3SZ1jNQxn+EWKCTW4JMPbVpr9/IRRzeRfZFrBqoww=3D=3D?=
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)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?ltJctMfObRdkSzBynK76gqpMex0P8be+corhUYMqDTAcRqxURQSashTyer?=
 =?iso-8859-1?Q?FNyTc3+1sGLr4IbSgy3E7pfjJQ+oDl+CzZQY01R71RUwld22avGRB9RIpo?=
 =?iso-8859-1?Q?5C5sUEEdZywNUPLbRg2ubCdAEN7JKfcYHkWwTlqGCI517eVUg5XbuAywUK?=
 =?iso-8859-1?Q?Rm1dE+AREZtS54LDEtxu3Vt0h4vRbqXc5pUHom6VkrEk98jVTajN1r6lRg?=
 =?iso-8859-1?Q?TlhVh+Y/z0Qy+ttosYzxYVKSuMJGaVP4i0vRNRdIBkHE7aGFGgFRjedqT1?=
 =?iso-8859-1?Q?Q4Auo2aHQcEY5xSsgiW+zxaqleozvQxg7hMGg8vRM4HIOmfrNy/zzM6RdI?=
 =?iso-8859-1?Q?GoCATv1c0MVdKiq+4SQmQ28RfsJ92gfST2iU521yW7O/fKse523AJzcLGQ?=
 =?iso-8859-1?Q?+i2M70S7KUZgcvLiQHYR1pL9cvPoZNl2RH/UoInFo2EWI+LsW5OWSuui9N?=
 =?iso-8859-1?Q?tpJRuiKayeCfGfIAJmbHqwvDvIlyftiQItjVSpm3qQvcI9Nz3wpUmW83i4?=
 =?iso-8859-1?Q?GL/0yF+cH1DPHCDnV5K5mqT333YLHSCaECIHvWrwhXYIcWwKGBLet9++b/?=
 =?iso-8859-1?Q?4YetdA1e3lSPJ4Us2218tEHrRi1oPNmJjwI9PRJIkUdKPvtjabDtHVYZv1?=
 =?iso-8859-1?Q?HEPTc2NLDx7Txt/FNejyIjNsriAEHXCREZZmCk41H3qAQjcyIriuBOD95/?=
 =?iso-8859-1?Q?Xy+4cJIUYDs+m41azCYqumRU33Kavlp7bCw+dL526W0s6wvvMXOudl4m0R?=
 =?iso-8859-1?Q?uam0Xc4I2AwdhbzWcjmdPiA1EQklDm9aT912HFcRt4Az1nUGuSdvlA1ul3?=
 =?iso-8859-1?Q?3bRT0L8SQRjqY+XllXyfS2lUzUxYfe4yLW/XmRrlGbJpXCwi+FEQsTKUKL?=
 =?iso-8859-1?Q?xKxfTAPqm4MKuvlMwPwomWlwkJySbbv85Exv+fdwZjsDK0yhuTDz+OZo1a?=
 =?iso-8859-1?Q?DLAiVuer0xUYtxheEL+Ylo9/tD5UE5Vt7tYhuOdJXGEGcv1a1vwvhz9fKC?=
 =?iso-8859-1?Q?HSSVZyZvBqBud/1fE9p5OS0mfETiJY8ubO+guzSM43ydMNhbRrsdsCHfH2?=
 =?iso-8859-1?Q?Nyw5wK/CDGKX+ZM+wo46+fCmBgpo1FvqnoJkAtifwLnJl5Qg5b+cvNs0zX?=
 =?iso-8859-1?Q?sgTTXTRdnj+KAEFVzYJ4SkRsAlIxNiEf1gGp1ihgyi8Mz99xjec6ANI5EH?=
 =?iso-8859-1?Q?DegLQDUeYc1s/9NTzmJkdWgXkJs9MEQjO0KQYvaUbBPgLtjvBMC+HZ5iZz?=
 =?iso-8859-1?Q?wcJakD63YqrEozru7DpmEbuSIXvwONs6CYiP87WYOd8FP5jK9Fb5hIlqqQ?=
 =?iso-8859-1?Q?mbI+h7W+RhmSHAnqC47FmAwAuD2Xd24vJmR8f3uu7isU8xgghHAeKo1+C8?=
 =?iso-8859-1?Q?BG7FB/RT8Bbcn9/zkBR8jMmX8J8HqB0vWysKo9eRhqqb3Rwr/MUo7ScEog?=
 =?iso-8859-1?Q?SYQvAuOYo/8nPq5EY6K9dqr57wpR75t5A1i0kIUDPq1c6YLhWt2o84eWF5?=
 =?iso-8859-1?Q?PDfPZUajVF7PTgdCYGtNtlCwdsQVO0lSP2zx79wMS069Ed/BHoYRmSzbTA?=
 =?iso-8859-1?Q?Kz3QL63KKsje0EuECRd+avlx6yFnHQMB88o6DcJX7eV8xd1BK5NNPdTRYK?=
 =?iso-8859-1?Q?FCtQwNt3tPn0PK3K90qj6r2e2RlOcJcnfMj1bOB0Zt0sPF6tbHLc2oxQ?=
 =?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: AS2PR03MB8907.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 62cc0094-2b32-4269-bb2a-08dd7beb58c6
X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Apr 2025 07:01:29.3279
 (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: teOZMG27cE4PWvZeNXqnF3bvWkhlDXcsnQUjyZ64nEI4xmeGHxHLhN/XfqtFFheJGF9eh+O7cfacMXqvv5J8mhr/gxUtWIB3oqXv4sWkxxY=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR03MB9397

From: Grygorii Strashko <grygorii_strashko@epam.com>

This patch adds Xen XSM policy loading support.

The configuration file XEN_POLICY specifies Xen hypervisor
XSM policy binary to load.

Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
---
changes in v2:
- fix conditional statements for XEN_POLICY
- add XSM policy binary check

 README.md                |  2 ++
 scripts/uboot-script-gen | 34 ++++++++++++++++++++++++++++++++++
 2 files changed, 36 insertions(+)

diff --git a/README.md b/README.md
index 137abef153ce..9106d2a07302 100644
--- a/README.md
+++ b/README.md
@@ -91,6 +91,8 @@ Where:
 - XEN specifies the Xen hypervisor binary to load. Note that it has to
   be a regular Xen binary, not a u-boot binary.
=20
+- XEN_POLICY specifies the Xen hypervisor XSM policy binary to load.
+
 - XEN_COLORS specifies the colors (cache coloring) to be used for Xen
   and is in the format startcolor-endcolor
=20
diff --git a/scripts/uboot-script-gen b/scripts/uboot-script-gen
index c4d26caf5e0e..208eafdecfeb 100755
--- a/scripts/uboot-script-gen
+++ b/scripts/uboot-script-gen
@@ -315,6 +315,15 @@ function xen_device_tree_editing()
     dt_set "/chosen" "#size-cells" "hex" "0x2"
     dt_set "/chosen" "xen,xen-bootargs" "str" "$XEN_CMD"
=20
+    if test -n "$XEN_POLICY" && test "$xen_policy_addr" !=3D "-"
+    then
+        local node_name=3D"xen-policy@${xen_policy_addr#0x}"
+
+        dt_mknode "/chosen" "$node_name"
+        dt_set "/chosen/$node_name" "compatible" "str_a" "xen,xsm-policy x=
en,multiboot-module multiboot,module"
+        dt_set "/chosen/$node_name" "reg" "hex" "$(split_addr_size $xen_po=
licy_addr $xen_policy_size)"
+    fi
+
     if test "$DOM0_KERNEL"
     then
         local node_name=3D"dom0@${dom0_kernel_addr#0x}"
@@ -900,6 +909,15 @@ xen_file_loading()
     kernel_addr=3D$memaddr
     kernel_path=3D$XEN
     load_file "$XEN" "host_kernel"
+
+    xen_policy_addr=3D"-"
+    if test -n "$XEN_POLICY"
+    then
+        check_file_type "${XEN_POLICY}" "SE Linux policy"
+        xen_policy_addr=3D$memaddr
+        load_file "$XEN_POLICY" "xen_policy"
+        xen_policy_size=3D$filesize
+    fi
 }
=20
 linux_file_loading()
@@ -939,6 +957,22 @@ bitstream_load_and_config()
=20
 create_its_file_xen()
 {
+    if test -n "$XEN_POLICY" && test "$xen_policy_addr" !=3D "-"
+    then
+        cat >> "$its_file" <<- EOF
+        xen_policy {
+            description =3D "Xen XSM policy binary";
+            data =3D /incbin/("$XEN_POLICY");
+            type =3D "kernel";
+            arch =3D "arm64";
+            os =3D "linux";
+            compression =3D "none";
+            load =3D <$xen_policy_addr>;
+            $fit_algo
+        };
+	EOF
+    fi
+
     if test "$DOM0_KERNEL"
     then
         if test "$ramdisk_addr" !=3D "-"
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Tue Apr 15 07:05:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 07:05:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.952120.1347663 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4aM8-0006rm-CT; Tue, 15 Apr 2025 07:05:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 952120.1347663; Tue, 15 Apr 2025 07: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 1u4aM8-0006rf-9h; Tue, 15 Apr 2025 07:05:16 +0000
Received: by outflank-mailman (input) for mailman id 952120;
 Tue, 15 Apr 2025 07: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=Xs7D=XB=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u4aM5-0006rY-CD
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 07:05:14 +0000
Received: from mail-10628.protonmail.ch (mail-10628.protonmail.ch
 [79.135.106.28]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f8d080ba-19c7-11f0-9eae-5ba50f476ded;
 Tue, 15 Apr 2025 09:05:11 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f8d080ba-19c7-11f0-9eae-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1744700710; x=1744959910;
	bh=vUMWoyIye/a6gsm/yX2JyP9ot09HNMrcEvx2SGShXek=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=RrQV6eMqao4+5+kFh6VlLNbWI8G4jr+UYIk96MTkYk/6ViJ3f2VUnSkAoEeCQiJNX
	 xx6/+ygL9UNjB1L+I8smPehfA/FUdY4rVdsA2miWyNnKKB1pKsJsyTqVffS1N5spVC
	 QrkuvVeLFAzu0mi8wj9trpzUBv6fReIn0f9MGi6TtaMOdEZbFZAF79mx2WAVBPUDTp
	 vISO003x9E3q/dn0zgkrXIQIQi8MKzrfj97wpydHxzwEEEKLwZ3cQkJiGAMyjj2Duo
	 iO8GinVHp3HeAn6CIzK8weev7qA6q/R699kshxtaUC+kEAnKG3AaVNpufQ7ITcU4SV
	 p8n64wGp3Sp7g==
Date: Tue, 15 Apr 2025 07:05:07 +0000
To: Andrii Sultanov <sultanovandriy@gmail.com>
From: dmkhn@proton.me
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>, =?utf-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Subject: Re: [PATCH v4 3/3] drivers: Make ioapic_sbdf and hpet_sbdf contain pci_sbdf_t
Message-ID: <Z/4FH68RJtMp34qU@starscream>
In-Reply-To: <af7536c3234bc7a9d048b4cb1d45f084b4343bdb.1744657012.git.andriy.sultanov@vates.tech>
References: <cover.1744657012.git.andriy.sultanov@vates.tech> <af7536c3234bc7a9d048b4cb1d45f084b4343bdb.1744657012.git.andriy.sultanov@vates.tech>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 8b9c3038f4a2b704db04344a9fe36331e1650b18
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Mon, Apr 14, 2025 at 08:19:18PM +0100, Andrii Sultanov wrote:
> From: Andrii Sultanov <sultanovandriy@gmail.com>
>=20
> Following a similar change to amd_iommu struct, make two more structs
> take pci_sbdf_t directly instead of seg and bdf separately. This lets us
> drop several conversions from the latter to the former and simplifies
> several comparisons and assignments.
>=20
> Bloat-o-meter reports:
> add/remove: 0/0 grow/shrink: 1/10 up/down: 256/-320 (-64)
> Function                                     old     new   delta
> _einittext                                 22092   22348    +256
> parse_ivrs_hpet                              248     245      -3
> amd_iommu_detect_one_acpi                    876     868      -8
> iov_supports_xt                              275     264     -11
> amd_iommu_read_ioapic_from_ire               344     332     -12
> amd_setup_hpet_msi                           237     224     -13
> amd_iommu_ioapic_update_ire                  575     555     -20
> reserve_unity_map_for_device                 453     424     -29
> _hvm_dpci_msi_eoi                            160     128     -32
> amd_iommu_get_supported_ivhd_type             86      30     -56
> parse_ivrs_table                            3966    3830    -136
>=20
> Signed-off-by: Andrii Sultanov <sultanovandriy@gmail.com>
>=20
> ---
> Changes in V4:
> * Folded several separate seg+bdf comparisons and assignments into one
>   with sbdf_t
> * With reshuffling in the prior commits, this commit is no longer
>   neutral in terms of code size
>=20
> Changes in V3:
> * Dropped aliasing of seg and bdf, renamed users.
>=20
> Changes in V2:
> * Split single commit into several patches
> * Change the format specifier to %pp in amd_iommu_ioapic_update_ire
> ---
>  xen/drivers/passthrough/amd/iommu.h      |  5 +--
>  xen/drivers/passthrough/amd/iommu_acpi.c | 30 +++++++---------
>  xen/drivers/passthrough/amd/iommu_intr.c | 44 +++++++++++-------------
>  3 files changed, 37 insertions(+), 42 deletions(-)
>=20
> diff --git a/xen/drivers/passthrough/amd/iommu.h b/xen/drivers/passthroug=
h/amd/iommu.h
> index 2599800e6a..52f748310b 100644
> --- a/xen/drivers/passthrough/amd/iommu.h
> +++ b/xen/drivers/passthrough/amd/iommu.h
> @@ -262,7 +262,7 @@ int cf_check amd_setup_hpet_msi(struct msi_desc *msi_=
desc);
>  void cf_check amd_iommu_dump_intremap_tables(unsigned char key);
>=20
>  extern struct ioapic_sbdf {
> -    u16 bdf, seg;
> +    pci_sbdf_t sbdf;
>      u8 id;
>      bool cmdline;
>      u16 *pin_2_idx;
> @@ -273,7 +273,8 @@ unsigned int ioapic_id_to_index(unsigned int apic_id)=
;
>  unsigned int get_next_ioapic_sbdf_index(void);
>=20
>  extern struct hpet_sbdf {
> -    u16 bdf, seg, id;
> +    pci_sbdf_t sbdf;
> +    uint16_t id;
>      enum {
>          HPET_NONE,
>          HPET_CMDL,
> diff --git a/xen/drivers/passthrough/amd/iommu_acpi.c b/xen/drivers/passt=
hrough/amd/iommu_acpi.c
> index 9e4fbee953..14845766e6 100644
> --- a/xen/drivers/passthrough/amd/iommu_acpi.c
> +++ b/xen/drivers/passthrough/amd/iommu_acpi.c
> @@ -707,8 +707,7 @@ static int __init cf_check parse_ivrs_ioapic(const ch=
ar *str)
>          }
>      }
>=20
> -    ioapic_sbdf[idx].bdf =3D PCI_BDF(bus, dev, func);
> -    ioapic_sbdf[idx].seg =3D seg;
> +    ioapic_sbdf[idx].sbdf =3D PCI_SBDF( seg, PCI_BDF(bus, dev, func) );

PCI_SBDF() is a variadic macro, so, IMO, the line above can be simplified a=
s:

       ioapic_sbdf[idx].sbdf =3D PCI_SBDF( seg, bus, dev, func );

Ex: pdev_type() in xen/drivers/passthrough/pci.c

Can you please double check in the modified code?

>      ioapic_sbdf[idx].id =3D id;
>      ioapic_sbdf[idx].cmdline =3D true;
>=20
> @@ -734,8 +733,7 @@ static int __init cf_check parse_ivrs_hpet(const char=
 *str)
>          return -EINVAL;
>=20
>      hpet_sbdf.id =3D id;
> -    hpet_sbdf.bdf =3D PCI_BDF(bus, dev, func);
> -    hpet_sbdf.seg =3D seg;
> +    hpet_sbdf.sbdf =3D PCI_SBDF( seg, PCI_BDF(bus, dev, func) );

                        ^^
                        e.g. here it can be simplified too.

>      hpet_sbdf.init =3D HPET_CMDL;
>=20
>      return 0;
> @@ -748,6 +746,7 @@ static u16 __init parse_ivhd_device_special(
>  {
>      u16 dev_length, bdf;
>      unsigned int apic, idx;
> +    pci_sbdf_t sbdf;
>=20
>      dev_length =3D sizeof(*special);
>      if ( header_length < (block_length + dev_length) )
> @@ -757,6 +756,7 @@ static u16 __init parse_ivhd_device_special(
>      }
>=20
>      bdf =3D special->used_id;
> +    sbdf =3D PCI_SBDF(seg, bdf);
>      if ( bdf >=3D ivrs_bdf_entries )
>      {
>          AMD_IOMMU_ERROR("IVHD: invalid Device_Entry Dev_Id %#x\n", bdf);
> @@ -764,7 +764,7 @@ static u16 __init parse_ivhd_device_special(
>      }
>=20
>      AMD_IOMMU_DEBUG("IVHD Special: %pp variety %#x handle %#x\n",
> -                    &PCI_SBDF(seg, bdf), special->variety, special->hand=
le);
> +                    &sbdf, special->variety, special->handle);
>      add_ivrs_mapping_entry(bdf, bdf, special->header.data_setting, 0, tr=
ue,
>                             iommu);
>=20
> @@ -780,8 +780,7 @@ static u16 __init parse_ivhd_device_special(
>           */
>          for ( idx =3D 0; idx < nr_ioapic_sbdf; idx++ )
>          {
> -            if ( ioapic_sbdf[idx].bdf =3D=3D bdf &&
> -                 ioapic_sbdf[idx].seg =3D=3D seg &&
> +            if ( ioapic_sbdf[idx].sbdf.sbdf =3D=3D sbdf.sbdf &&
>                   ioapic_sbdf[idx].cmdline )
>                  break;
>          }
> @@ -790,7 +789,7 @@ static u16 __init parse_ivhd_device_special(
>              AMD_IOMMU_DEBUG("IVHD: Command line override present for IO-=
APIC %#x"
>                              "(IVRS: %#x devID %pp)\n",
>                              ioapic_sbdf[idx].id, special->handle,
> -                            &PCI_SBDF(seg, bdf));
> +                            &sbdf);
>              break;
>          }
>=20
> @@ -805,8 +804,7 @@ static u16 __init parse_ivhd_device_special(
>                                  special->handle);
>              else if ( idx !=3D MAX_IO_APICS && ioapic_sbdf[idx].pin_2_id=
x )
>              {
> -                if ( ioapic_sbdf[idx].bdf =3D=3D bdf &&
> -                     ioapic_sbdf[idx].seg =3D=3D seg )
> +                if ( ioapic_sbdf[idx].sbdf.sbdf =3D=3D sbdf.sbdf )
>                      AMD_IOMMU_WARN("IVHD: duplicate IO-APIC %#x entries\=
n",
>                                      special->handle);
>                  else
> @@ -827,8 +825,7 @@ static u16 __init parse_ivhd_device_special(
>                  }
>=20
>                  /* set device id of ioapic */
> -                ioapic_sbdf[idx].bdf =3D bdf;
> -                ioapic_sbdf[idx].seg =3D seg;
> +                ioapic_sbdf[idx].sbdf =3D sbdf;
>                  ioapic_sbdf[idx].id =3D special->handle;
>=20
>                  ioapic_sbdf[idx].pin_2_idx =3D xmalloc_array(
> @@ -862,13 +859,12 @@ static u16 __init parse_ivhd_device_special(
>              AMD_IOMMU_DEBUG("IVHD: Command line override present for HPE=
T %#x "
>                              "(IVRS: %#x devID %pp)\n",
>                              hpet_sbdf.id, special->handle,
> -                            &PCI_SBDF(seg, bdf));
> +                            &sbdf);
>              break;
>          case HPET_NONE:
>              /* set device id of hpet */
>              hpet_sbdf.id =3D special->handle;
> -            hpet_sbdf.bdf =3D bdf;
> -            hpet_sbdf.seg =3D seg;
> +            hpet_sbdf.sbdf =3D sbdf;
>              hpet_sbdf.init =3D HPET_IVHD;
>              break;
>          default:
> @@ -1139,9 +1135,9 @@ static int __init cf_check parse_ivrs_table(struct =
acpi_table_header *table)
>                  return -ENXIO;
>          }
>=20
> -        if ( !ioapic_sbdf[idx].seg &&
> +        if ( !ioapic_sbdf[idx].sbdf.seg &&
>               /* SB IO-APIC is always on this device in AMD systems. */
> -             ioapic_sbdf[idx].bdf =3D=3D PCI_BDF(0, 0x14, 0) )
> +             ioapic_sbdf[idx].sbdf.bdf =3D=3D PCI_BDF(0, 0x14, 0) )

Looks like something like the following should work:

          if ( ioapic_sbdf[idx].sbdf.sbdf =3D=3D PCI_SBDF(0, 0, 0x14, 0).sb=
df )

What do you think?

>              sb_ioapic =3D 1;
>=20
>          if ( ioapic_sbdf[idx].pin_2_idx )
> diff --git a/xen/drivers/passthrough/amd/iommu_intr.c b/xen/drivers/passt=
hrough/amd/iommu_intr.c
> index 16075cd5a1..b788675be2 100644
> --- a/xen/drivers/passthrough/amd/iommu_intr.c
> +++ b/xen/drivers/passthrough/amd/iommu_intr.c
> @@ -323,7 +323,8 @@ void cf_check amd_iommu_ioapic_update_ire(
>      unsigned int apic, unsigned int pin, uint64_t rte)
>  {
>      struct IO_APIC_route_entry new_rte;
> -    int seg, bdf, rc;
> +    pci_sbdf_t sbdf;
> +    int rc;
>      struct amd_iommu *iommu;
>      unsigned int idx;
>=20
> @@ -335,20 +336,18 @@ void cf_check amd_iommu_ioapic_update_ire(
>      new_rte.raw =3D rte;
>=20
>      /* get device id of ioapic devices */
> -    bdf =3D ioapic_sbdf[idx].bdf;
> -    seg =3D ioapic_sbdf[idx].seg;
> -    iommu =3D find_iommu_for_device(PCI_SBDF(seg, bdf));
> +    sbdf =3D ioapic_sbdf[idx].sbdf;
> +    iommu =3D find_iommu_for_device(sbdf);
>      if ( !iommu )
>      {
> -        AMD_IOMMU_WARN("failed to find IOMMU for IO-APIC @ %04x:%04x\n",
> -                       seg, bdf);
> +        AMD_IOMMU_WARN("failed to find IOMMU for IO-APIC @ %pp\n", &sbdf=
);
>          __ioapic_write_entry(apic, pin, true, new_rte);
>          return;
>      }
>=20
>      /* Update interrupt remapping entry */
>      rc =3D update_intremap_entry_from_ioapic(
> -             bdf, iommu, &new_rte,
> +             sbdf.bdf, iommu, &new_rte,
>               &ioapic_sbdf[idx].pin_2_idx[pin]);
>=20
>      if ( rc )
> @@ -369,7 +368,8 @@ unsigned int cf_check amd_iommu_read_ioapic_from_ire(
>      unsigned int offset;
>      unsigned int val =3D __io_apic_read(apic, reg);
>      unsigned int pin =3D (reg - 0x10) / 2;
> -    uint16_t seg, bdf, req_id;
> +    pci_sbdf_t sbdf;
> +    uint16_t req_id;
>      const struct amd_iommu *iommu;
>      union irte_ptr entry;
>=20
> @@ -381,12 +381,11 @@ unsigned int cf_check amd_iommu_read_ioapic_from_ir=
e(
>      if ( offset >=3D INTREMAP_MAX_ENTRIES )
>          return val;
>=20
> -    seg =3D ioapic_sbdf[idx].seg;
> -    bdf =3D ioapic_sbdf[idx].bdf;
> -    iommu =3D find_iommu_for_device(PCI_SBDF(seg, bdf));
> +    sbdf =3D ioapic_sbdf[idx].sbdf;
> +    iommu =3D find_iommu_for_device(sbdf);
>      if ( !iommu )
>          return val;
> -    req_id =3D get_intremap_requestor_id(seg, bdf);
> +    req_id =3D get_intremap_requestor_id(sbdf.seg, sbdf.bdf);
>      entry =3D get_intremap_entry(iommu, req_id, offset);
>=20
>      if ( !(reg & 1) )
> @@ -515,15 +514,15 @@ int cf_check amd_iommu_msi_msg_update_ire(
>      struct msi_desc *msi_desc, struct msi_msg *msg)
>  {
>      struct pci_dev *pdev =3D msi_desc->dev;
> -    int bdf, seg, rc;
> +    pci_sbdf_t sbdf;
> +    int rc;
>      struct amd_iommu *iommu;
>      unsigned int i, nr =3D 1;
>      u32 data;
>=20
> -    bdf =3D pdev ? pdev->sbdf.bdf : hpet_sbdf.bdf;
> -    seg =3D pdev ? pdev->seg : hpet_sbdf.seg;
> +    sbdf =3D pdev ? pdev->sbdf : hpet_sbdf.sbdf;
>=20
> -    iommu =3D _find_iommu_for_device(PCI_SBDF(seg, bdf));
> +    iommu =3D _find_iommu_for_device(sbdf);
>      if ( IS_ERR_OR_NULL(iommu) )
>          return PTR_ERR(iommu);
>=20
> @@ -532,7 +531,7 @@ int cf_check amd_iommu_msi_msg_update_ire(
>=20
>      if ( msi_desc->remap_index >=3D 0 && !msg )
>      {
> -        update_intremap_entry_from_msi_msg(iommu, bdf, nr,
> +        update_intremap_entry_from_msi_msg(iommu, sbdf.bdf, nr,
>                                             &msi_desc->remap_index,
>                                             NULL, NULL);
>=20
> @@ -543,7 +542,7 @@ int cf_check amd_iommu_msi_msg_update_ire(
>      if ( !msg )
>          return 0;
>=20
> -    rc =3D update_intremap_entry_from_msi_msg(iommu, bdf, nr,
> +    rc =3D update_intremap_entry_from_msi_msg(iommu, sbdf.bdf, nr,
>                                              &msi_desc->remap_index,
>                                              msg, &data);
>      if ( rc > 0 )
> @@ -660,8 +659,7 @@ bool __init cf_check iov_supports_xt(void)
>          if ( idx =3D=3D MAX_IO_APICS )
>              return false;
>=20
> -        if ( !find_iommu_for_device(PCI_SBDF(ioapic_sbdf[idx].seg,
> -                                             ioapic_sbdf[idx].bdf)) )
> +        if ( !find_iommu_for_device(ioapic_sbdf[idx].sbdf) )
>          {
>              AMD_IOMMU_WARN("no IOMMU for IO-APIC %#x (ID %x)\n",
>                             apic, IO_APIC_ID(apic));
> @@ -690,14 +688,14 @@ int __init cf_check amd_setup_hpet_msi(struct msi_d=
esc *msi_desc)
>          return -ENODEV;
>      }
>=20
> -    iommu =3D find_iommu_for_device(PCI_SBDF(hpet_sbdf.seg, hpet_sbdf.bd=
f));
> +    iommu =3D find_iommu_for_device(hpet_sbdf.sbdf);
>      if ( !iommu )
>          return -ENXIO;
>=20
> -    lock =3D get_intremap_lock(hpet_sbdf.seg, hpet_sbdf.bdf);
> +    lock =3D get_intremap_lock(hpet_sbdf.sbdf.seg, hpet_sbdf.sbdf.bdf);
>      spin_lock_irqsave(lock, flags);
>=20
> -    msi_desc->remap_index =3D alloc_intremap_entry(iommu, hpet_sbdf.bdf,=
 1);
> +    msi_desc->remap_index =3D alloc_intremap_entry(iommu, hpet_sbdf.sbdf=
.bdf, 1);
>      if ( msi_desc->remap_index >=3D INTREMAP_MAX_ENTRIES )
>      {
>          msi_desc->remap_index =3D -1;
> --
> 2.49.0
>=20
>=20

Thanks,
Denis



From xen-devel-bounces@lists.xenproject.org Tue Apr 15 07:15:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 07:15:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.952136.1347672 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4aWF-0001St-EG; Tue, 15 Apr 2025 07:15:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 952136.1347672; Tue, 15 Apr 2025 07: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 1u4aWF-0001Sm-BR; Tue, 15 Apr 2025 07:15:43 +0000
Received: by outflank-mailman (input) for mailman id 952136;
 Tue, 15 Apr 2025 07:15: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=0g1d=XB=gmail.com=sultanovandriy@srs-se1.protection.inumbo.net>)
 id 1u4aWE-0001Sg-Pe
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 07:15:42 +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 6ec0e22d-19c9-11f0-9ffb-bf95429c2676;
 Tue, 15 Apr 2025 09:15:38 +0200 (CEST)
Received: by mail-wr1-x429.google.com with SMTP id
 ffacd0b85a97d-3912d2c89ecso4847640f8f.2
 for <xen-devel@lists.xenproject.org>; Tue, 15 Apr 2025 00:15:38 -0700 (PDT)
Received: from [192.168.0.18]
 (cpc92320-cmbg19-2-0-cust1786.5-4.cable.virginm.net. [82.13.70.251])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43f205ecb20sm201342685e9.3.2025.04.15.00.15.36
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 15 Apr 2025 00:15:37 -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: 6ec0e22d-19c9-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1744701338; x=1745306138; 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=oxMl+RWxGC5UTsVMe/Vr9iHGIjVeuA3hV/bTpsB/Vok=;
        b=GhHDzHsVV7mZkfsmv61Unk1bDMsFZqi+rzjdn2RmXJIiMaRF/ejWx3TwtrSSvCTNuB
         aD3prv1z6H4cWE8fAW9HYthh4cVGN0qIZEZqXrFNM3ffu0/IDMZxaEOuxnu/EVbFLHok
         51TOM1Gbim8R+whjHnMVsqc0C+QGKsfVNGbCrzgHykFtzxhpyohSfmRSypGr1qB5E8OM
         qKYN1kwooGquPyH0fKdUwuEnib4lfPHfSTV+uKcMx+uxzm2xaBsxNqJytgZAiJwqRmXj
         igVSFVr2dZ4mc72kTmR3JPtk4eNzNO29BbJQEodiB/zGGDWFKSl1AIjNszFQhpnbcw0I
         BvEg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744701338; x=1745306138;
        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=oxMl+RWxGC5UTsVMe/Vr9iHGIjVeuA3hV/bTpsB/Vok=;
        b=bHedbCsLCVIFEa0yPunvw6RElTZy1Q3RE/Pb7J/qmnOX6eO5ltvl/hUsZT66CzKKKL
         ulOdnPRlJ8PQA0jE+gRxBdc95fxVWNn4v9NmIh84qBHAfHK7X/Qx5eXn9IKiiJZ84tKO
         UZNzrH5Hvsva2/yj/V5WSmMdJUwXx5T0LmIYpMpoYtro4tJKYA5mBgiGEs2UCStWeDQt
         pOuiPdidQWp51Fr468/0WOKrM+WVGY4YMov1T73pgZPe0M1AzmpZqiroqTx8hFDztnJQ
         VhQpfvXoZ9Vyb/pEIf6RShIvnuNW1r+kNkmugf29VVLUunlaNnmIH1etZilMID5u/hXO
         P21g==
X-Gm-Message-State: AOJu0Yy+Db6pLQWzF4E+vt4XqDTG36r8C3cpgh1Q2kfveOeCVle0psV6
	THk1BoLQ3n6Mqp90/DbcMvIso2/tqDV6WQo20BzEV5qES6MeUt0m
X-Gm-Gg: ASbGncuADy37YbvoYh7C4Tem4SNmhHDtTNUCg+TapMRgJU3qvDoDAJC8fIamuegmd7R
	MQ/m+nX6ndXTmRgRa6nUGLDWavY0S1uWaVFLMPNomG5E1QFmdQLlw1A51j1ZSjWKop5Cpd1r2aA
	r1NpZ4ssXX6D7Q5bIdHMQJ8KcHM7EzNcrPpBi0xCKgVrdk86rZ9FRUGtyKpXcFWofq9gaQx+XHN
	b/uD2kladW8aC8JT8H0+ONmNJSapOjptnRcbdES3aqu9YKmeJJBS8TFvGIZLX/hpRahZ3D0Ku/Z
	c92/BNc+Z4DSz/KdHNih9oauLrAOlvPkGelW3QDRfk1vrrRFjj9ITjTg9feteJXYOBIry1a43cx
	BCJ1ulwjzoOZp5DzLiya/fOEpGiWQ2Rw=
X-Google-Smtp-Source: AGHT+IGqlNCUmoxPVFelFlZ6YPysFg2Y5wBQIq333q+6w6pm/RobNZxzvncpmdquf24FnAKPohSMuQ==
X-Received: by 2002:a05:6000:400f:b0:39c:dfa:d33e with SMTP id ffacd0b85a97d-39ea52154a0mr12395415f8f.23.1744701337762;
        Tue, 15 Apr 2025 00:15:37 -0700 (PDT)
Message-ID: <d2ced4d6-b5d0-4cc4-94c7-74c7f6045575@gmail.com>
Date: Tue, 15 Apr 2025 08:15:35 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 3/3] drivers: Make ioapic_sbdf and hpet_sbdf contain
 pci_sbdf_t
To: dmkhn@proton.me
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <cover.1744657012.git.andriy.sultanov@vates.tech>
 <af7536c3234bc7a9d048b4cb1d45f084b4343bdb.1744657012.git.andriy.sultanov@vates.tech>
 <Z/4FH68RJtMp34qU@starscream>
Content-Language: en-US
From: Andriy Sultanov <sultanovandriy@gmail.com>
In-Reply-To: <Z/4FH68RJtMp34qU@starscream>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 4/15/25 8:05 AM, dmkhn@proton.me wrote:

>> --- a/xen/drivers/passthrough/amd/iommu_acpi.c
>> +++ b/xen/drivers/passthrough/amd/iommu_acpi.c
>> @@ -707,8 +707,7 @@ static int __init cf_check parse_ivrs_ioapic(const char *str)
>>           }
>>       }
>>
>> -    ioapic_sbdf[idx].bdf = PCI_BDF(bus, dev, func);
>> -    ioapic_sbdf[idx].seg = seg;
>> +    ioapic_sbdf[idx].sbdf = PCI_SBDF( seg, PCI_BDF(bus, dev, func) );
> PCI_SBDF() is a variadic macro, so, IMO, the line above can be simplified as:
>
>         ioapic_sbdf[idx].sbdf = PCI_SBDF( seg, bus, dev, func );
>
> Ex: pdev_type() in xen/drivers/passthrough/pci.c
>
> Can you please double check in the modified code?
>
>>       ioapic_sbdf[idx].id = id;
>>       ioapic_sbdf[idx].cmdline = true;
>>
>> @@ -734,8 +733,7 @@ static int __init cf_check parse_ivrs_hpet(const char *str)
>>           return -EINVAL;
>>
>>       hpet_sbdf.id = id;
>> -    hpet_sbdf.bdf = PCI_BDF(bus, dev, func);
>> -    hpet_sbdf.seg = seg;
>> +    hpet_sbdf.sbdf = PCI_SBDF( seg, PCI_BDF(bus, dev, func) );
>                          ^^
>                          e.g. here it can be simplified too.
You are right, PCI_SBDF(sef, bus, dev, func) works here and above. Will 
resend.
>> @@ -1139,9 +1135,9 @@ static int __init cf_check parse_ivrs_table(struct acpi_table_header *table)
>>                   return -ENXIO;
>>           }
>>
>> -        if ( !ioapic_sbdf[idx].seg &&
>> +        if ( !ioapic_sbdf[idx].sbdf.seg &&
>>                /* SB IO-APIC is always on this device in AMD systems. */
>> -             ioapic_sbdf[idx].bdf == PCI_BDF(0, 0x14, 0) )
>> +             ioapic_sbdf[idx].sbdf.bdf == PCI_BDF(0, 0x14, 0) )
> Looks like something like the following should work:
>
>            if ( ioapic_sbdf[idx].sbdf.sbdf == PCI_SBDF(0, 0, 0x14, 0).sbdf )
>
> What do you think?

Will replace this one as well.

Thank you!




From xen-devel-bounces@lists.xenproject.org Tue Apr 15 07:32:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 07:32:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.952150.1347682 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4amg-0006pS-Oq; Tue, 15 Apr 2025 07:32:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 952150.1347682; Tue, 15 Apr 2025 07:32:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4amg-0006pL-MK; Tue, 15 Apr 2025 07:32:42 +0000
Received: by outflank-mailman (input) for mailman id 952150;
 Tue, 15 Apr 2025 07:32: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=ai1O=XB=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u4amf-0006pF-Vi
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 07:32:41 +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 cf3b95cc-19cb-11f0-9ffb-bf95429c2676;
 Tue, 15 Apr 2025 09:32:39 +0200 (CEST)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-43d0c18e84eso25859715e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 15 Apr 2025 00:32:39 -0700 (PDT)
Received: from [10.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-43f205ecc73sm201873445e9.8.2025.04.15.00.32.38
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 15 Apr 2025 00:32:38 -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: cf3b95cc-19cb-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744702359; x=1745307159; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=wgUNWilhxhevH0Ne6XLOjuE4u5zJle7bLantVl5dpkU=;
        b=N9wz1LxwBDwIDmB9Wrf5F9df1BuvD654CZHfYUnGrHfEI4bpLu9VnlPG6kr637LPzg
         sc3EmJp9ZGvyAqQoYhDvpkDmEqqby0fzAPsbS1yS3U/+nzlqAIG8GWkA4p+yo/bqilYw
         gpfxmwWnoCd7UFusg5lp8GjRSrdbGS2Ni00zretEZqeIKKwunQkWe40dc2oJ32fM8oWE
         dhm9TjhfN/6TT4huHahyVOgt+lHcSwaCQQm2Vbu1Msqtkfl4S3SKvchSwe+SmOusEao6
         +1NgganV/E6flsSD/HUBhUuSoSA4Ib0xSgzi8mzpjSXAw9XwAED3QLQ3sed1fI5EoB9P
         ByKA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744702359; x=1745307159;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=wgUNWilhxhevH0Ne6XLOjuE4u5zJle7bLantVl5dpkU=;
        b=PVC3pchmBrYf/HKlDWaztkv2r6UYcfcfE1NLwwr4JcAAT01MeoUdadbB+KVEm36lMM
         oms3LiBzsMOd/gf8fy9Jvm+1JJYOLxb46gtZyB9KuXt+0e7ekXgEXgK3AwvAUBCVJtvY
         2MPECiOC2MFV5Re9hW+SJo6bmh8VOpw8CeIXjnkcWt09Yn/Ehaf3USHOckJq9G2Bb96W
         85P5lRpEKZIAVgb9oV2qcmpeTkFWoH2vivvgO33cO9CwpSI71uctAo1v4+EmYE/blcpj
         M7qUDSZbgCDwDBh4+D95w9NIsmhlDgFNw3J2QxOi6+3lS1S2bhigRrIp9S66iScr/2Qb
         KsJA==
X-Forwarded-Encrypted: i=1; AJvYcCWFi4KPi6gfK8AE0gSTEI2diF7N5i4eXNt5rzaKoWgBAgmEEvxPEA9oxyh3RaDu0jBCgt0RwLNpM1c=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy7GuGhrPkUKVtqfpUlH57+J4jqA4tugFMNRMeAtq74W9vFHewC
	do/m8uYIYbvk888V33F5kRIY0I7Nad2hIm6EYyYOoFrbnDBc+j9DXV+9C2ArLQ==
X-Gm-Gg: ASbGncshu+OPMhQaLazlCakcr4q7o69+hvNp/uNvaWIba5/K/mI+xC5CEgrs5tIFTH1
	el4NoCvS50bYhZ4UE7/q8TjOrEXI+wU/Yz3kBzXEnnUNaf+dzgDOLhO16zov3OwImW/DQ9cXcPT
	Lnr1bDM4a6J9q1cwJJEnJUB3pwPFrmagbk8hjJ1BWFdpDYXMm/1beEx4Xda+Lq+DCCIeD4mzHk5
	ui7nY/wHfZ1HHSjT2FGf0fSvUmFBPLuApTMHLN46nUn0ljlT3587HWymZqY2cmjI3xMpgcEcSOy
	Xzs3YmPMKuzik7fHVp9BrWd6+hGu0fYZvci+KeztYVPPVpcZys/Qpv7q9pUDZmQrjiFxROjG0uu
	so9YoTwhfGHJxM4vscazrE4oLjA==
X-Google-Smtp-Source: AGHT+IHfgV9IeGc/ncY0d/NGjL44jlAkdp6XPYH7YIXLGy+fS9c1+zUU6ExC383jRKuaK9Ae+1mPBQ==
X-Received: by 2002:a05:600c:3591:b0:43d:54a:221c with SMTP id 5b1f17b1804b1-43f3a959e43mr137253295e9.18.1744702358957;
        Tue, 15 Apr 2025 00:32:38 -0700 (PDT)
Message-ID: <7c3c91d9-4de8-4910-b26e-8782a0f0d364@suse.com>
Date: Tue, 15 Apr 2025 09:32:37 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 3/5] x86/hvm: fix handling of accesses to partial r/o MMIO
 pages
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: <20250411105411.22334-1-roger.pau@citrix.com>
 <20250411105411.22334-4-roger.pau@citrix.com>
 <eaf5f71b-2c56-4bd8-a45f-35280af16466@suse.com>
 <Z_0TXKMe6tfrYR9T@macbook.lan>
 <c92d5665-0940-40b5-8cbb-81889adf40c5@suse.com>
 <Z_00JReo7Ji7RwkD@macbook.lan>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <Z_00JReo7Ji7RwkD@macbook.lan>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 14.04.2025 18:13, Roger Pau Monné wrote:
> On Mon, Apr 14, 2025 at 05:24:32PM +0200, Jan Beulich wrote:
>> On 14.04.2025 15:53, Roger Pau Monné wrote:
>>> On Mon, Apr 14, 2025 at 08:33:44AM +0200, Jan Beulich wrote:
>>>> On 11.04.2025 12:54, Roger Pau Monne wrote:
>>>>> @@ -1981,7 +2056,9 @@ int hvm_hap_nested_page_fault(paddr_t gpa, unsigned long gla,
>>>>>       */
>>>>>      if ( (p2mt == p2m_mmio_dm) ||
>>>>>           (npfec.write_access &&
>>>>> -          (p2m_is_discard_write(p2mt) || (p2mt == p2m_ioreq_server))) )
>>>>> +          (p2m_is_discard_write(p2mt) || (p2mt == p2m_ioreq_server) ||
>>>>> +           /* MMIO entries can be r/o if the target mfn is in mmio_ro_ranges. */
>>>>> +           (p2mt == p2m_mmio_direct))) )
>>>>>      {
>>>>>          if ( !handle_mmio_with_translation(gla, gfn, npfec) )
>>>>>              hvm_inject_hw_exception(X86_EXC_GP, 0);
>>>>
>>>> Aren't we handing too many things to handle_mmio_with_translation() this
>>>> way? At the very least you're losing ...
>>>>
>>>>> @@ -2033,14 +2110,6 @@ int hvm_hap_nested_page_fault(paddr_t gpa, unsigned long gla,
>>>>>          goto out_put_gfn;
>>>>>      }
>>>>>  
>>>>> -    if ( (p2mt == p2m_mmio_direct) && npfec.write_access && npfec.present &&
>>>>
>>>> ... the .present check.
>>>
>>> Isn't the p2mt == p2m_mmio_direct check already ensuring the entry is
>>> present?  Otherwise it's type would be p2m_invalid or p2m_mmio_dm?
>>
>> Yes (to the 1st question), it kind of is.
>>
>>> It did seem to me the other checks in this function already assume
>>> that by having a valid type the entry is present.
>>
>> Except for the code above, where we decided to play safe. AT the very least
>> if you drop such a check, please say a justifying word in the description.
> 
> I've added:
> 
> "As part of the fix r/o MMIO accesses are now handled by
> handle_mmio_with_translation(), re-using the same logic that was used
> for other read-only types part of p2m_is_discard_write().  The page
> present check is dropped as type p2m_mmio_direct must have the
> present bit set in the PTE."
> 
> Let me know if you think that's enough.

That's fine; it's even more verbose than I was hoping for.

Independently (i.e. not for this patch) we may want to actually assert
that npfec.present is set for P2M types where we demand that to always
be the case. (I wouldn't be too surprised if we actually found such an
assertion to trigger.)

>>>> I'm also concerned of e.g. VT-x'es APIC access MFN, which is
>>>> p2m_mmio_direct.
>>>
>>> But that won't go into hvm_hap_nested_page_fault() when using
>>> cpu_has_vmx_virtualize_apic_accesses (and thus having an APIC page
>>> mapped as p2m_mmio_direct)?
>>>
>>> It would instead be an EXIT_REASON_APIC_ACCESS vmexit which is handled
>>> differently?
>>
>> All true as long as things work as expected (potentially including the guest
>> also behaving as expected). Also this was explicitly only an example I could
>> readily think of. I'm simply wary of handle_mmio_with_translation() now
>> getting things to handle it's not meant to ever see.
> 
> How was access to MMIO r/o regions supposed to be handled before
> 33c19df9a5a0 (~2015)?  I see that setting r/o MMIO p2m entries was
> added way before to p2m_type_to_flags() and ept_p2m_type_to_flags()
> (~2010), yet I can't figure out how writes would be handled back then
> that didn't result in a p2m fault and crashing of the domain.

Was that handled at all before said change? mmio_ro_do_page_fault() was
(and still is) invoked for the hardware domain only, and quite likely
the need for handling (discarding) writes for PVHv1 had been overlooked
until someone was hit by the lack thereof.

> I'm happy to look at other ways to handling this, but given there's
> current logic for handling accesses to read-only regions in
> hvm_hap_nested_page_fault() I think re-using that was the best way to
> also handle accesses to MMIO read-only regions.
> 
> Arguably it would already be the case that for other reasons Xen would
> need to emulate an instruction that accesses a read-only MMIO region?

Aiui hvm_translate_get_page() will yield HVMTRANS_bad_gfn_to_mfn for
p2m_mmio_direct (after all, "direct" means we expect no emulation is
needed; while arguably wrong for the introspection case, I'm not sure
that and pass-through actually go together). Hence it's down to
hvmemul_linear_mmio_access() -> hvmemul_phys_mmio_access() ->
hvmemul_do_mmio_buffer() -> hvmemul_do_io_buffer() -> hvmemul_do_io(),
which means that if hvm_io_intercept() can't handle it, the access
will be forwarded to the responsible DM, or be "processed" by the
internal null handler.

Given this, perhaps what you do is actually fine. At the same time
note how several functions in hvm/emulate.c simply fail upon
encountering p2m_mmio_direct. These are all REP handlers though, so
the main emulator would then try emulating the insn the non-REP way.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 15 07:34:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 07:34:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.952161.1347692 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4aok-0007MU-4o; Tue, 15 Apr 2025 07:34:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 952161.1347692; Tue, 15 Apr 2025 07: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 1u4aok-0007MN-29; Tue, 15 Apr 2025 07:34:50 +0000
Received: by outflank-mailman (input) for mailman id 952161;
 Tue, 15 Apr 2025 07:34: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=Xs7D=XB=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u4aoh-0007MA-ML
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 07:34:48 +0000
Received: from mail-4322.protonmail.ch (mail-4322.protonmail.ch [185.70.43.22])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 17cbbf22-19cc-11f0-9ffb-bf95429c2676;
 Tue, 15 Apr 2025 09:34:41 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 17cbbf22-19cc-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=5qw2wwrvczbdzgf2rpfip7mrnq.protonmail; t=1744702479; x=1744961679;
	bh=p8Al5BkiU4fITEoE2EBWyFpPIrjqNzc5NaFXBei/bfc=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=Qu7D/mdUWIZz+gSawPbFths46fPHC0JeNZjdgnJollKFUGWzOFlVcv59u/gSI53d5
	 /MfOm54Bz7ysDaT3hZPWChsn6XY+Et8xZOAiRxFSL5Bofe6RomGBHdqrXmhgBEtQd2
	 IHMqQpEY43ErcYugnqX2j3Nl534XkiYG/iCzO4Kv467d+U70LEJdA9znCKpKPkjit+
	 hCDU9bLsJfpFCs0mCPcP+X1LnIaBC6XDYVownvFYn9oq0bcdRbACTcPyqPsPgkiu66
	 ykCY8LceWeFVb9TBeeI6ypJFCu+735NcvOD7MHLaRSdStgXNmbVAFIKFn0u5pai+LI
	 gP8Q+kbYnUCOg==
Date: Tue, 15 Apr 2025 07:34:37 +0000
To: Andrii Sultanov <sultanovandriy@gmail.com>
From: dmkhn@proton.me
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>, =?utf-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Subject: Re: [PATCH v4 1/3] drivers: Change amd_iommu struct to contain pci_sbdf_t, simplify code
Message-ID: <Z/4MCopF/j5357Mf@starscream>
In-Reply-To: <40f504017d71c16a3e2bc8945ac5e674a3e791ed.1744657012.git.andriy.sultanov@vates.tech>
References: <cover.1744657012.git.andriy.sultanov@vates.tech> <40f504017d71c16a3e2bc8945ac5e674a3e791ed.1744657012.git.andriy.sultanov@vates.tech>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 8ef8c707fcb0dd97eba4a6b1f7f8a72dafb9ee17
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Mon, Apr 14, 2025 at 08:19:16PM +0100, Andrii Sultanov wrote:
> From: Andrii Sultanov <sultanovandriy@gmail.com>
>=20
> Following on from 250d87dc3ff9 ("x86/msi: Change __msi_set_enable() to
> take pci_sbdf_t"), make struct amd_iommu contain pci_sbdf_t directly
> instead of specifying seg+bdf separately and regenerating sbdf_t from the=
m,
> which simplifies code.
>=20
> Bloat-o-meter reports:
> add/remove: 0/0 grow/shrink: 4/13 up/down: 121/-377 (-256)
> Function                                     old     new   delta
> _einittext                                 22028   22092     +64
> amd_iommu_prepare                            853     897     +44
> __mon_lengths                               2928    2936      +8
> _invalidate_all_devices                      133     138      +5
> _hvm_dpci_msi_eoi                            157     155      -2
> build_info                                   752     744      -8
> amd_iommu_add_device                         856     844     -12
> amd_iommu_msi_enable                          33      20     -13
> update_intremap_entry_from_msi_msg           879     859     -20
> amd_iommu_msi_msg_update_ire                 472     448     -24
> send_iommu_command                           251     224     -27
> amd_iommu_get_supported_ivhd_type             86      54     -32
> amd_iommu_detect_one_acpi                    918     886     -32
> iterate_ivrs_mappings                        169     129     -40
> flush_command_buffer                         460     417     -43
> set_iommu_interrupt_handler                  421     377     -44
> enable_iommu                                1745    1665     -80
>=20
> Resolves: https://gitlab.com/xen-project/xen/-/issues/198
>=20
> Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Signed-off-by: Andrii Sultanov <sultanovandriy@gmail.com>
>=20
> ---
> Changes in V4:
> * Dropped references to the order of seg/bdf in the commit message
> * Dropped unnecessary detail from the commit message
> * Reverted to a macro usage in one case where it was mistakenly dropped
> * Folded several separate seg+bdf comparisons into a single one between
>   sbdf_t, folded separate assignments with a macro.
> * More code size improvements with the changes, so I've refreshed the
>   bloat-o-meter report
>=20
> Changes in V3:
> * Dropped the union with seg+bdf/pci_sbdf_t to avoid aliasing, renamed
>   all users appropriately
>=20
> Changes in V2:
> * Split single commit into several patches
> * Added the commit title of the referenced patch
> * Dropped brackets around &(iommu->sbdf) and &(sbdf)
> ---
>  xen/drivers/passthrough/amd/iommu.h         |  4 +--
>  xen/drivers/passthrough/amd/iommu_acpi.c    | 16 +++++-----
>  xen/drivers/passthrough/amd/iommu_cmd.c     |  8 ++---
>  xen/drivers/passthrough/amd/iommu_detect.c  | 18 +++++------
>  xen/drivers/passthrough/amd/iommu_init.c    | 35 ++++++++++-----------
>  xen/drivers/passthrough/amd/iommu_intr.c    | 29 ++++++++---------
>  xen/drivers/passthrough/amd/iommu_map.c     |  4 +--
>  xen/drivers/passthrough/amd/pci_amd_iommu.c | 22 ++++++-------
>  8 files changed, 67 insertions(+), 69 deletions(-)
>=20
> diff --git a/xen/drivers/passthrough/amd/iommu.h b/xen/drivers/passthroug=
h/amd/iommu.h
> index 00e81b4b2a..ba541f7943 100644
> --- a/xen/drivers/passthrough/amd/iommu.h
> +++ b/xen/drivers/passthrough/amd/iommu.h
> @@ -77,8 +77,8 @@ struct amd_iommu {
>      struct list_head list;
>      spinlock_t lock; /* protect iommu */
>=20
> -    u16 seg;
> -    u16 bdf;
> +    pci_sbdf_t sbdf;
> +
>      struct msi_desc msi;
>=20
>      u16 cap_offset;
> diff --git a/xen/drivers/passthrough/amd/iommu_acpi.c b/xen/drivers/passt=
hrough/amd/iommu_acpi.c
> index 5bdbfb5ba8..025d9be40f 100644
> --- a/xen/drivers/passthrough/amd/iommu_acpi.c
> +++ b/xen/drivers/passthrough/amd/iommu_acpi.c
> @@ -58,7 +58,7 @@ static void __init add_ivrs_mapping_entry(
>      uint16_t bdf, uint16_t alias_id, uint8_t flags, unsigned int ext_fla=
gs,
>      bool alloc_irt, struct amd_iommu *iommu)
>  {
> -    struct ivrs_mappings *ivrs_mappings =3D get_ivrs_mappings(iommu->seg=
);
> +    struct ivrs_mappings *ivrs_mappings =3D get_ivrs_mappings(iommu->sbd=
f.seg);
>=20
>      ASSERT( ivrs_mappings !=3D NULL );
>=20
> @@ -70,7 +70,7 @@ static void __init add_ivrs_mapping_entry(
>      ivrs_mappings[bdf].device_flags =3D flags;
>=20
>      /* Don't map an IOMMU by itself. */
> -    if ( iommu->bdf =3D=3D bdf )
> +    if ( iommu->sbdf.bdf =3D=3D bdf )
>          return;
>=20
>      /* Allocate interrupt remapping table if needed. */
> @@ -96,7 +96,7 @@ static void __init add_ivrs_mapping_entry(
>=20
>              if ( !ivrs_mappings[alias_id].intremap_table )
>                  panic("No memory for %pp's IRT\n",
> -                      &PCI_SBDF(iommu->seg, alias_id));
> +                      &PCI_SBDF(iommu->sbdf.seg, alias_id));
>          }
>      }
>=20
> @@ -112,7 +112,7 @@ static struct amd_iommu * __init find_iommu_from_bdf_=
cap(
>      struct amd_iommu *iommu;
>=20
>      for_each_amd_iommu ( iommu )
> -        if ( (iommu->seg =3D=3D seg) && (iommu->bdf =3D=3D bdf) &&
> +        if ( (iommu->sbdf.seg =3D=3D seg) && (iommu->sbdf.bdf =3D=3D bdf=
) &&

Perhaps something like

           if ( (iommu->sbdf.sbdf =3D=3D PCI_SBDF(seg, bdf).sbdf &&

?

>               (iommu->cap_offset =3D=3D cap_offset) )
>              return iommu;
>=20
> @@ -297,13 +297,13 @@ static int __init register_range_for_iommu_devices(
>      /* reserve unity-mapped page entries for devices */
>      for ( bdf =3D rc =3D 0; !rc && bdf < ivrs_bdf_entries; bdf++ )
>      {
> -        if ( iommu !=3D find_iommu_for_device(iommu->seg, bdf) )
> +        if ( iommu !=3D find_iommu_for_device(iommu->sbdf.seg, bdf) )
>              continue;
>=20
> -        req =3D get_ivrs_mappings(iommu->seg)[bdf].dte_requestor_id;
> -        rc =3D reserve_unity_map_for_device(iommu->seg, bdf, base, lengt=
h,
> +        req =3D get_ivrs_mappings(iommu->sbdf.seg)[bdf].dte_requestor_id=
;
> +        rc =3D reserve_unity_map_for_device(iommu->sbdf.seg, bdf, base, =
length,
>                                            iw, ir, false) ?:
> -             reserve_unity_map_for_device(iommu->seg, req, base, length,
> +             reserve_unity_map_for_device(iommu->sbdf.seg, req, base, le=
ngth,
>                                            iw, ir, false);
>      }
>=20
> diff --git a/xen/drivers/passthrough/amd/iommu_cmd.c b/xen/drivers/passth=
rough/amd/iommu_cmd.c
> index 83c525b84f..eefd626161 100644
> --- a/xen/drivers/passthrough/amd/iommu_cmd.c
> +++ b/xen/drivers/passthrough/amd/iommu_cmd.c
> @@ -40,7 +40,7 @@ static void send_iommu_command(struct amd_iommu *iommu,
>                       IOMMU_RING_BUFFER_PTR_MASK) )
>      {
>          printk_once(XENLOG_ERR "AMD IOMMU %pp: no cmd slot available\n",
> -                    &PCI_SBDF(iommu->seg, iommu->bdf));
> +                    &iommu->sbdf);
>          cpu_relax();
>      }
>=20
> @@ -85,7 +85,7 @@ static void flush_command_buffer(struct amd_iommu *iomm=
u,
>              threshold |=3D threshold << 1;
>              printk(XENLOG_WARNING
>                     "AMD IOMMU %pp: %scompletion wait taking too long\n",
> -                   &PCI_SBDF(iommu->seg, iommu->bdf),
> +                   &iommu->sbdf,
>                     timeout_base ? "iotlb " : "");
>              timeout =3D 0;
>          }
> @@ -95,7 +95,7 @@ static void flush_command_buffer(struct amd_iommu *iomm=
u,
>      if ( !timeout )
>          printk(XENLOG_WARNING
>                 "AMD IOMMU %pp: %scompletion wait took %lums\n",
> -               &PCI_SBDF(iommu->seg, iommu->bdf),
> +               &iommu->sbdf,
>                 timeout_base ? "iotlb " : "",
>                 (NOW() - start) / 10000000);
>  }
> @@ -300,7 +300,7 @@ void amd_iommu_flush_iotlb(u8 devfn, const struct pci=
_dev *pdev,
>      if ( !iommu_has_cap(iommu, PCI_CAP_IOTLB_SHIFT) )
>          return;
>=20
> -    req_id =3D get_dma_requestor_id(iommu->seg, PCI_BDF(pdev->bus, devfn=
));
> +    req_id =3D get_dma_requestor_id(iommu->sbdf.seg, PCI_BDF(pdev->bus, =
devfn));
>      queueid =3D req_id;
>      maxpend =3D pdev->ats.queue_depth & 0xff;
>=20
> diff --git a/xen/drivers/passthrough/amd/iommu_detect.c b/xen/drivers/pas=
sthrough/amd/iommu_detect.c
> index cede44e651..72cc554b08 100644
> --- a/xen/drivers/passthrough/amd/iommu_detect.c
> +++ b/xen/drivers/passthrough/amd/iommu_detect.c
> @@ -162,8 +162,8 @@ int __init amd_iommu_detect_one_acpi(
>      spin_lock_init(&iommu->lock);
>      INIT_LIST_HEAD(&iommu->ats_devices);
>=20
> -    iommu->seg =3D ivhd_block->pci_segment_group;
> -    iommu->bdf =3D ivhd_block->header.device_id;
> +    iommu->sbdf =3D PCI_SBDF(ivhd_block->pci_segment_group,
> +                           ivhd_block->header.device_id);
>      iommu->cap_offset =3D ivhd_block->capability_offset;
>      iommu->mmio_base_phys =3D ivhd_block->base_address;
>=20
> @@ -210,16 +210,16 @@ int __init amd_iommu_detect_one_acpi(
>      /* override IOMMU HT flags */
>      iommu->ht_flags =3D ivhd_block->header.flags;
>=20
> -    bus =3D PCI_BUS(iommu->bdf);
> -    dev =3D PCI_SLOT(iommu->bdf);
> -    func =3D PCI_FUNC(iommu->bdf);
> +    bus =3D PCI_BUS(iommu->sbdf.bdf);
> +    dev =3D PCI_SLOT(iommu->sbdf.bdf);
> +    func =3D PCI_FUNC(iommu->sbdf.bdf);
>=20
> -    rt =3D get_iommu_capabilities(iommu->seg, bus, dev, func,
> +    rt =3D get_iommu_capabilities(iommu->sbdf.seg, bus, dev, func,

I would update signature of get_iommu_capabilities() so it takes pci_sbdf_t
as an agument instead of disaggregated PCI address. I think it will simplif=
y
the code futher.

>                                  iommu->cap_offset, iommu);
>      if ( rt )
>          goto out;
>=20
> -    rt =3D get_iommu_msi_capabilities(iommu->seg, bus, dev, func, iommu)=
;
> +    rt =3D get_iommu_msi_capabilities(iommu->sbdf.seg, bus, dev, func, i=
ommu);

... and same idea for get_iommu_msi_capabilities()

What do you think?

>      if ( rt )
>          goto out;
>=20
> @@ -228,10 +228,10 @@ int __init amd_iommu_detect_one_acpi(
>      if ( !iommu->domid_map )
>          goto out;
>=20
> -    rt =3D pci_ro_device(iommu->seg, bus, PCI_DEVFN(dev, func));
> +    rt =3D pci_ro_device(iommu->sbdf.seg, bus, PCI_DEVFN(dev, func));

There's not so many users of pci_ro_device(). I think it makes sense to upd=
ate
pci_ro_device() to something like:

    int pci_ro_device(pci_sbdf_t pciaddr);

But probably in a separate code change.

>      if ( rt )
>          printk(XENLOG_ERR "Could not mark config space of %pp read-only =
(%d)\n",
> -               &PCI_SBDF(iommu->seg, iommu->bdf), rt);
> +               &iommu->sbdf, rt);
>=20
>      list_add_tail(&iommu->list, &amd_iommu_head);
>      rt =3D 0;
> diff --git a/xen/drivers/passthrough/amd/iommu_init.c b/xen/drivers/passt=
hrough/amd/iommu_init.c
> index bb25b55c85..58d657060a 100644
> --- a/xen/drivers/passthrough/amd/iommu_init.c
> +++ b/xen/drivers/passthrough/amd/iommu_init.c
> @@ -409,9 +409,7 @@ static void iommu_reset_log(struct amd_iommu *iommu,
>=20
>  static void amd_iommu_msi_enable(struct amd_iommu *iommu, int flag)
>  {
> -    pci_sbdf_t sbdf =3D { .seg =3D iommu->seg, .bdf =3D iommu->bdf };
> -
> -    __msi_set_enable(sbdf, iommu->msi.msi_attrib.pos, flag);
> +    __msi_set_enable(iommu->sbdf, iommu->msi.msi_attrib.pos, flag);
>  }
>=20
>  static void cf_check iommu_msi_unmask(struct irq_desc *desc)
> @@ -566,7 +564,7 @@ static void cf_check parse_event_log_entry(struct amd=
_iommu *iommu, u32 entry[])
>=20
>          printk(XENLOG_ERR "AMD-Vi: %s: %pp d%u addr %016"PRIx64
>                 " flags %#x%s%s%s%s%s%s%s%s%s%s\n",
> -               code_str, &PCI_SBDF(iommu->seg, device_id),
> +               code_str, &PCI_SBDF(iommu->sbdf.seg, device_id),
>                 domain_id, addr, flags,
>                 (flags & 0xe00) ? " ??" : "",
>                 (flags & 0x100) ? " TR" : "",
> @@ -583,8 +581,8 @@ static void cf_check parse_event_log_entry(struct amd=
_iommu *iommu, u32 entry[])
>              amd_iommu_print_entries(iommu, device_id, daddr_to_dfn(addr)=
);
>=20
>          for ( bdf =3D 0; bdf < ivrs_bdf_entries; bdf++ )
> -            if ( get_dma_requestor_id(iommu->seg, bdf) =3D=3D device_id =
)
> -                pci_check_disable_device(iommu->seg, PCI_BUS(bdf),
> +            if ( get_dma_requestor_id(iommu->sbdf.seg, bdf) =3D=3D devic=
e_id )
> +                pci_check_disable_device(iommu->sbdf.seg, PCI_BUS(bdf),
>                                           PCI_DEVFN(bdf));
>      }
>      else
> @@ -643,7 +641,7 @@ static void cf_check parse_ppr_log_entry(struct amd_i=
ommu *iommu, u32 entry[])
>      struct pci_dev *pdev;
>=20
>      pcidevs_lock();
> -    pdev =3D pci_get_real_pdev(PCI_SBDF(iommu->seg, device_id));
> +    pdev =3D pci_get_real_pdev(PCI_SBDF(iommu->sbdf.seg, device_id));
>      pcidevs_unlock();
>=20
>      if ( pdev )
> @@ -752,12 +750,11 @@ static bool __init set_iommu_interrupt_handler(stru=
ct amd_iommu *iommu)
>      }
>=20
>      pcidevs_lock();
> -    iommu->msi.dev =3D pci_get_pdev(NULL, PCI_SBDF(iommu->seg, iommu->bd=
f));
> +    iommu->msi.dev =3D pci_get_pdev(NULL, iommu->sbdf);
>      pcidevs_unlock();
>      if ( !iommu->msi.dev )
>      {
> -        AMD_IOMMU_WARN("no pdev for %pp\n",
> -                       &PCI_SBDF(iommu->seg, iommu->bdf));
> +        AMD_IOMMU_WARN("no pdev for %pp\n", &iommu->sbdf);
>          return 0;
>      }
>=20
> @@ -779,7 +776,7 @@ static bool __init set_iommu_interrupt_handler(struct=
 amd_iommu *iommu)
>          hw_irq_controller *handler;
>          u16 control;
>=20
> -        control =3D pci_conf_read16(PCI_SBDF(iommu->seg, iommu->bdf),
> +        control =3D pci_conf_read16(iommu->sbdf,
>                                    iommu->msi.msi_attrib.pos + PCI_MSI_FL=
AGS);
>=20
>          iommu->msi.msi.nvec =3D 1;
> @@ -843,22 +840,22 @@ static void amd_iommu_erratum_746_workaround(struct=
 amd_iommu *iommu)
>           (boot_cpu_data.x86_model > 0x1f) )
>          return;
>=20
> -    pci_conf_write32(PCI_SBDF(iommu->seg, iommu->bdf), 0xf0, 0x90);
> -    value =3D pci_conf_read32(PCI_SBDF(iommu->seg, iommu->bdf), 0xf4);
> +    pci_conf_write32(iommu->sbdf, 0xf0, 0x90);
> +    value =3D pci_conf_read32(iommu->sbdf, 0xf4);
>=20
>      if ( value & (1 << 2) )
>          return;
>=20
>      /* Select NB indirect register 0x90 and enable writing */
> -    pci_conf_write32(PCI_SBDF(iommu->seg, iommu->bdf), 0xf0, 0x90 | (1 <=
< 8));
> +    pci_conf_write32(iommu->sbdf, 0xf0, 0x90 | (1 << 8));
>=20
> -    pci_conf_write32(PCI_SBDF(iommu->seg, iommu->bdf), 0xf4, value | (1 =
<< 2));
> +    pci_conf_write32(iommu->sbdf, 0xf4, value | (1 << 2));
>      printk(XENLOG_INFO
>             "AMD-Vi: Applying erratum 746 workaround for IOMMU at %pp\n",
> -           &PCI_SBDF(iommu->seg, iommu->bdf));
> +           &iommu->sbdf);
>=20
>      /* Clear the enable writing bit */
> -    pci_conf_write32(PCI_SBDF(iommu->seg, iommu->bdf), 0xf0, 0x90);
> +    pci_conf_write32(iommu->sbdf, 0xf0, 0x90);
>  }
>=20
>  static void enable_iommu(struct amd_iommu *iommu)
> @@ -1095,7 +1092,7 @@ static int __init amd_iommu_init_one(struct amd_iom=
mu *iommu, bool intr)
>          goto error_out;
>=20
>      /* Make sure that the device table has been successfully allocated. =
*/
> -    ivrs_mappings =3D get_ivrs_mappings(iommu->seg);
> +    ivrs_mappings =3D get_ivrs_mappings(iommu->sbdf.seg);
>      if ( !IVRS_MAPPINGS_DEVTAB(ivrs_mappings) )
>          goto error_out;
>=20
> @@ -1363,7 +1360,7 @@ static bool __init amd_sp5100_erratum28(void)
>=20
>  static int __init amd_iommu_prepare_one(struct amd_iommu *iommu)
>  {
> -    int rc =3D alloc_ivrs_mappings(iommu->seg);
> +    int rc =3D alloc_ivrs_mappings(iommu->sbdf.seg);
>=20
>      if ( !rc )
>          rc =3D map_iommu_mmio_region(iommu);
> diff --git a/xen/drivers/passthrough/amd/iommu_intr.c b/xen/drivers/passt=
hrough/amd/iommu_intr.c
> index 9abdc38053..a7347fcbad 100644
> --- a/xen/drivers/passthrough/amd/iommu_intr.c
> +++ b/xen/drivers/passthrough/amd/iommu_intr.c
> @@ -132,7 +132,7 @@ static int get_intremap_requestor_id(int seg, int bdf=
)
>  static unsigned int alloc_intremap_entry(const struct amd_iommu *iommu,
>                                           unsigned int bdf, unsigned int =
nr)
>  {
> -    const struct ivrs_mappings *ivrs_mappings =3D get_ivrs_mappings(iomm=
u->seg);
> +    const struct ivrs_mappings *ivrs_mappings =3D get_ivrs_mappings(iomm=
u->sbdf.seg);
>      unsigned long *inuse =3D ivrs_mappings[bdf].intremap_inuse;
>      unsigned int nr_ents =3D
>          intremap_table_entries(ivrs_mappings[bdf].intremap_table, iommu)=
;
> @@ -167,7 +167,7 @@ static union irte_ptr get_intremap_entry(const struct=
 amd_iommu *iommu,
>                                           unsigned int bdf, unsigned int =
index)
>  {
>      union irte_ptr table =3D {
> -        .ptr =3D get_ivrs_mappings(iommu->seg)[bdf].intremap_table
> +        .ptr =3D get_ivrs_mappings(iommu->sbdf.seg)[bdf].intremap_table
>      };
>=20
>      ASSERT(table.ptr && (index < intremap_table_entries(table.ptr, iommu=
)));
> @@ -184,7 +184,7 @@ static void free_intremap_entry(const struct amd_iomm=
u *iommu,
>                                  unsigned int bdf, unsigned int index)
>  {
>      union irte_ptr entry =3D get_intremap_entry(iommu, bdf, index);
> -    struct ivrs_mappings *ivrs =3D get_ivrs_mappings(iommu->seg);
> +    struct ivrs_mappings *ivrs =3D get_ivrs_mappings(iommu->sbdf.seg);
>=20
>      if ( iommu->ctrl.ga_en )
>      {
> @@ -281,8 +281,8 @@ static int update_intremap_entry_from_ioapic(
>      unsigned int dest, offset;
>      bool fresh =3D false;
>=20
> -    req_id =3D get_intremap_requestor_id(iommu->seg, bdf);
> -    lock =3D get_intremap_lock(iommu->seg, req_id);
> +    req_id =3D get_intremap_requestor_id(iommu->sbdf.seg, bdf);
> +    lock =3D get_intremap_lock(iommu->sbdf.seg, req_id);
>=20
>      delivery_mode =3D rte->delivery_mode;
>      vector =3D rte->vector;
> @@ -419,10 +419,10 @@ static int update_intremap_entry_from_msi_msg(
>      unsigned int dest, offset, i;
>      bool fresh =3D false;
>=20
> -    req_id =3D get_dma_requestor_id(iommu->seg, bdf);
> -    alias_id =3D get_intremap_requestor_id(iommu->seg, bdf);
> +    req_id =3D get_dma_requestor_id(iommu->sbdf.seg, bdf);
> +    alias_id =3D get_intremap_requestor_id(iommu->sbdf.seg, bdf);
>=20
> -    lock =3D get_intremap_lock(iommu->seg, req_id);
> +    lock =3D get_intremap_lock(iommu->sbdf.seg, req_id);
>      spin_lock_irqsave(lock, flags);
>=20
>      if ( msg =3D=3D NULL )
> @@ -486,10 +486,10 @@ static int update_intremap_entry_from_msi_msg(
>       */
>=20
>      if ( ( req_id !=3D alias_id ) &&
> -         get_ivrs_mappings(iommu->seg)[alias_id].intremap_table !=3D NUL=
L )
> +         get_ivrs_mappings(iommu->sbdf.seg)[alias_id].intremap_table !=
=3D NULL )
>      {
> -        BUG_ON(get_ivrs_mappings(iommu->seg)[req_id].intremap_table !=3D
> -               get_ivrs_mappings(iommu->seg)[alias_id].intremap_table);
> +        BUG_ON(get_ivrs_mappings(iommu->sbdf.seg)[req_id].intremap_table=
 !=3D
> +               get_ivrs_mappings(iommu->sbdf.seg)[alias_id].intremap_tab=
le);
>      }
>=20
>      return fresh;
> @@ -498,16 +498,17 @@ static int update_intremap_entry_from_msi_msg(
>  static struct amd_iommu *_find_iommu_for_device(int seg, int bdf)
>  {
>      struct amd_iommu *iommu;
> +    pci_sbdf_t sbdf =3D PCI_SBDF(seg, bdf);
>=20
>      for_each_amd_iommu ( iommu )
> -        if ( iommu->seg =3D=3D seg && iommu->bdf =3D=3D bdf )
> +        if ( iommu->sbdf.sbdf =3D=3D sbdf.sbdf )
>              return NULL;
>=20
>      iommu =3D find_iommu_for_device(seg, bdf);
>      if ( iommu )
>          return iommu;
>=20
> -    AMD_IOMMU_DEBUG("No IOMMU for MSI dev =3D %pp\n", &PCI_SBDF(seg, bdf=
));
> +    AMD_IOMMU_DEBUG("No IOMMU for MSI dev =3D %pp\n", &sbdf);
>      return ERR_PTR(-EINVAL);
>  }
>=20
> @@ -730,7 +731,7 @@ static void dump_intremap_table(const struct amd_iomm=
u *iommu,
>          if ( ivrs_mapping )
>          {
>              printk("  %pp:\n",
> -                   &PCI_SBDF(iommu->seg, ivrs_mapping->dte_requestor_id)=
);
> +                   &PCI_SBDF(iommu->sbdf.seg, ivrs_mapping->dte_requesto=
r_id));
>              ivrs_mapping =3D NULL;
>          }
>=20
> diff --git a/xen/drivers/passthrough/amd/iommu_map.c b/xen/drivers/passth=
rough/amd/iommu_map.c
> index dde393645a..d28c475650 100644
> --- a/xen/drivers/passthrough/amd/iommu_map.c
> +++ b/xen/drivers/passthrough/amd/iommu_map.c
> @@ -558,14 +558,14 @@ void amd_iommu_print_entries(const struct amd_iommu=
 *iommu, unsigned int dev_id,
>=20
>      if ( !dt[dev_id].tv )
>      {
> -        printk("%pp: no root\n", &PCI_SBDF(iommu->seg, dev_id));
> +        printk("%pp: no root\n", &PCI_SBDF(iommu->sbdf.seg, dev_id));
>          return;
>      }
>=20
>      pt_mfn =3D _mfn(dt[dev_id].pt_root);
>      level =3D dt[dev_id].paging_mode;
>      printk("%pp root @ %"PRI_mfn" (%u levels) dfn=3D%"PRI_dfn"\n",
> -           &PCI_SBDF(iommu->seg, dev_id), mfn_x(pt_mfn), level, dfn_x(df=
n));
> +           &PCI_SBDF(iommu->sbdf.seg, dev_id), mfn_x(pt_mfn), level, dfn=
_x(dfn));
>=20
>      while ( level )
>      {
> diff --git a/xen/drivers/passthrough/amd/pci_amd_iommu.c b/xen/drivers/pa=
ssthrough/amd/pci_amd_iommu.c
> index d00697edb3..6b58e3380b 100644
> --- a/xen/drivers/passthrough/amd/pci_amd_iommu.c
> +++ b/xen/drivers/passthrough/amd/pci_amd_iommu.c
> @@ -43,7 +43,7 @@ struct amd_iommu *find_iommu_for_device(int seg, int bd=
f)
>      {
>          unsigned int bd0 =3D bdf & ~PCI_FUNC(~0);
>=20
> -        if ( ivrs_mappings[bd0].iommu && ivrs_mappings[bd0].iommu->bdf !=
=3D bdf )
> +        if ( ivrs_mappings[bd0].iommu && ivrs_mappings[bd0].iommu->sbdf.=
bdf !=3D bdf )
>          {
>              struct ivrs_mappings tmp =3D ivrs_mappings[bd0];
>=20
> @@ -121,7 +121,7 @@ static bool use_ats(
>  {
>      return !ivrs_dev->block_ats &&
>             iommu_has_cap(iommu, PCI_CAP_IOTLB_SHIFT) &&
> -           pci_ats_device(iommu->seg, pdev->bus, pdev->devfn);
> +           pci_ats_device(iommu->sbdf.seg, pdev->bus, pdev->devfn);

Same idea about updating signature to take pci_sbdf_t.

>  }
>=20
>  static int __must_check amd_iommu_setup_domain_device(
> @@ -147,17 +147,17 @@ static int __must_check amd_iommu_setup_domain_devi=
ce(
>      if ( rc )
>          return rc;
>=20
> -    req_id =3D get_dma_requestor_id(iommu->seg, pdev->sbdf.bdf);
> -    ivrs_dev =3D &get_ivrs_mappings(iommu->seg)[req_id];
> +    req_id =3D get_dma_requestor_id(iommu->sbdf.seg, pdev->sbdf.bdf);
> +    ivrs_dev =3D &get_ivrs_mappings(iommu->sbdf.seg)[req_id];
>      sr_flags =3D (iommu_hwdom_passthrough && is_hardware_domain(domain)
>                  ? 0 : SET_ROOT_VALID)
>                 | (ivrs_dev->unity_map ? SET_ROOT_WITH_UNITY_MAP : 0);
>=20
>      /* get device-table entry */
> -    req_id =3D get_dma_requestor_id(iommu->seg, PCI_BDF(bus, devfn));
> +    req_id =3D get_dma_requestor_id(iommu->sbdf.seg, PCI_BDF(bus, devfn)=
);
>      table =3D iommu->dev_table.buffer;
>      dte =3D &table[req_id];
> -    ivrs_dev =3D &get_ivrs_mappings(iommu->seg)[req_id];
> +    ivrs_dev =3D &get_ivrs_mappings(iommu->sbdf.seg)[req_id];
>=20
>      if ( domain !=3D dom_io )
>      {
> @@ -275,7 +275,7 @@ static int __must_check amd_iommu_setup_domain_device=
(
>      ASSERT(pcidevs_locked());
>=20
>      if ( use_ats(pdev, iommu, ivrs_dev) &&
> -         !pci_ats_enabled(iommu->seg, bus, pdev->devfn) )
> +         !pci_ats_enabled(iommu->sbdf.seg, bus, pdev->devfn) )

... and same for pci_ats_enabled()

>      {
>          if ( devfn =3D=3D pdev->devfn )
>              enable_ats_device(pdev, &iommu->ats_devices);
> @@ -418,12 +418,12 @@ static void amd_iommu_disable_domain_device(const s=
truct domain *domain,
>=20
>      ASSERT(pcidevs_locked());
>=20
> -    if ( pci_ats_device(iommu->seg, bus, pdev->devfn) &&
> -         pci_ats_enabled(iommu->seg, bus, pdev->devfn) )
> +    if ( pci_ats_device(iommu->sbdf.seg, bus, pdev->devfn) &&
> +         pci_ats_enabled(iommu->sbdf.seg, bus, pdev->devfn) )
>          disable_ats_device(pdev);
>=20
>      BUG_ON ( iommu->dev_table.buffer =3D=3D NULL );
> -    req_id =3D get_dma_requestor_id(iommu->seg, PCI_BDF(bus, devfn));
> +    req_id =3D get_dma_requestor_id(iommu->sbdf.seg, PCI_BDF(bus, devfn)=
);
>      table =3D iommu->dev_table.buffer;
>      dte =3D &table[req_id];
>=20
> @@ -578,7 +578,7 @@ static int cf_check amd_iommu_add_device(u8 devfn, st=
ruct pci_dev *pdev)
>          return -EINVAL;
>=20
>      for_each_amd_iommu(iommu)
> -        if ( pdev->seg =3D=3D iommu->seg && pdev->sbdf.bdf =3D=3D iommu-=
>bdf )
> +        if ( pdev->sbdf.sbdf =3D=3D iommu->sbdf.sbdf )
>              return is_hardware_domain(pdev->domain) ? 0 : -ENODEV;
>=20
>      iommu =3D find_iommu_for_device(pdev->seg, pdev->sbdf.bdf);
> --
> 2.49.0
>=20
>=20



From xen-devel-bounces@lists.xenproject.org Tue Apr 15 07:35:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 07:35:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.952168.1347702 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4ap7-0007pu-Fc; Tue, 15 Apr 2025 07:35:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 952168.1347702; Tue, 15 Apr 2025 07:35: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 1u4ap7-0007pn-Co; Tue, 15 Apr 2025 07:35:13 +0000
Received: by outflank-mailman (input) for mailman id 952168;
 Tue, 15 Apr 2025 07:35: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=ai1O=XB=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u4ap5-0007MA-QN
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 07:35:11 +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 2907ef95-19cc-11f0-9ffb-bf95429c2676;
 Tue, 15 Apr 2025 09:35:10 +0200 (CEST)
Received: by mail-wr1-x42d.google.com with SMTP id
 ffacd0b85a97d-39129fc51f8so4510154f8f.0
 for <xen-devel@lists.xenproject.org>; Tue, 15 Apr 2025 00:35:10 -0700 (PDT)
Received: from [10.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-39eae963f2bsm13605934f8f.18.2025.04.15.00.35.09
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 15 Apr 2025 00:35: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: 2907ef95-19cc-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744702509; x=1745307309; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=aHLuiSvU39IWNE25P00QpFu+SBJyFPyPfxZqkeuSJXc=;
        b=SeOmxU6ea6B//yX56ndmTKNsod3FrxYYkfGgKAfQMmA4eMIEtNhkmhG1XmKLmX2XM8
         vj1hyiPg3P+HqptjL0SQhNeqd66fIOWo8O/8eWLdGGTh4Dzy0lg4MmvngUeik02/RcAa
         MLabuwKTKbddP21WVTX92ZcL8mZ0mfYpJli7OOki0P7+zuCjtZKawn+GMaxI1yecPSjD
         4/7ywGMs7MeoYICSj8y2LYViR9WyP81Ikc63yFhEYDFUfKo0GvX76VCYGJjePAqQBrod
         1zadhD4f3fZ9S0uaxgIV2InggDHtTeJCiwkqY9EyqVWLzoRZI6/S8JCTymLxjKUnd//7
         ISGg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744702509; x=1745307309;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=aHLuiSvU39IWNE25P00QpFu+SBJyFPyPfxZqkeuSJXc=;
        b=erVeFp1NVA10byGjtN3iuUfGUV38/8QiDFMikVqrJH+VD3cBZc5AAvVnydHwMAToo4
         hSAibSGj0U32BkuKInnebkFcikBF+5oSn8NQrj86wniD0N8HlmMSJTj7JZc14P7sKdmQ
         yJqvnadjw0UsBGzFHuaretL2fRNCcCNZqC5ADHj1/IOGJ1STlVBfjzTitPU5Y/xDhgiJ
         PiS48At+3UfbmFDrst+dmROXBG+L+m3Dhh35WInH7QcjMX7v/PkOOapv3xHwzitGXG7q
         mn1H6awOWlZNOw7qT7Bfug5wfn2YQ9MSYydZQ+VbknTZZ/gok78GRzC3q/i/M91MFrou
         TYjg==
X-Gm-Message-State: AOJu0YwBFqD3fdTFsjpLTme3DppbAumrLaHOIYTCVrE3xI/ooUTPdvLI
	Zl4uMLz4PfFoF0/Mi5Xl5np4DLlJ0IromghldXxD0Nnv6/cD8Ekvi0W/eS6PEg==
X-Gm-Gg: ASbGncuqv8Tw0I06N6PU3CrTFgKv9QiBKY9Ku28IfaQcfBQgXgQgnUuqRIruDGKW63P
	VCdXj3tf/glgPiCnLnMl8ZiU0cdiVQvu322FuxR9YxjIZKCF1AyR86jmI3x417/t6Wbzd32Ul1h
	RRZmP3JvME79KuiUvJQgR3z6Rx0D6IWeWq+E69fFc5jL33xDcax0AgysMWQzg3YAU29mHKti20Q
	jnTEYylQr2CWCF3SZtnL5vDJWCURuycSbzfx8eugYO7St9d13TXPYQ0QEJtC2kqpdHnls/hShAh
	Z6LF2QaFZ6uPlmK9O3mVrwYm88mw3x/iqa+3G4qatU+FltLa59/OJ7/J9bG66R6Mlq+20UjMb0A
	LutuAJRa5nMHicIliHJRobkODDHGii0ZuQ93y
X-Google-Smtp-Source: AGHT+IFVmYfVvU1wMfA89CtDjkuB+ca/nd9ePQ8xoBDGB8wEgAfzyG7Ssz7pXCKNa6RJg9KrEhFjQw==
X-Received: by 2002:a5d:5f96:0:b0:391:ba6:c069 with SMTP id ffacd0b85a97d-39eaaebeb38mr13616173f8f.44.1744702509660;
        Tue, 15 Apr 2025 00:35:09 -0700 (PDT)
Message-ID: <a5622d64-3867-48ad-a8c8-147c231f6c7e@suse.com>
Date: Tue, 15 Apr 2025 09:35:08 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 3/3] drivers: Make ioapic_sbdf and hpet_sbdf contain
 pci_sbdf_t
To: Andriy Sultanov <sultanovandriy@gmail.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>, dmkhn@proton.me
References: <cover.1744657012.git.andriy.sultanov@vates.tech>
 <af7536c3234bc7a9d048b4cb1d45f084b4343bdb.1744657012.git.andriy.sultanov@vates.tech>
 <Z/4FH68RJtMp34qU@starscream>
 <d2ced4d6-b5d0-4cc4-94c7-74c7f6045575@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: <d2ced4d6-b5d0-4cc4-94c7-74c7f6045575@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 15.04.2025 09:15, Andriy Sultanov wrote:
> On 4/15/25 8:05 AM, dmkhn@proton.me wrote:
>>> --- a/xen/drivers/passthrough/amd/iommu_acpi.c
>>> +++ b/xen/drivers/passthrough/amd/iommu_acpi.c
>>> @@ -707,8 +707,7 @@ static int __init cf_check parse_ivrs_ioapic(const char *str)
>>>           }
>>>       }
>>>
>>> -    ioapic_sbdf[idx].bdf = PCI_BDF(bus, dev, func);
>>> -    ioapic_sbdf[idx].seg = seg;
>>> +    ioapic_sbdf[idx].sbdf = PCI_SBDF( seg, PCI_BDF(bus, dev, func) );
>> PCI_SBDF() is a variadic macro, so, IMO, the line above can be simplified as:
>>
>>         ioapic_sbdf[idx].sbdf = PCI_SBDF( seg, bus, dev, func );
>>
>> Ex: pdev_type() in xen/drivers/passthrough/pci.c
>>
>> Can you please double check in the modified code?
>>
>>>       ioapic_sbdf[idx].id = id;
>>>       ioapic_sbdf[idx].cmdline = true;
>>>
>>> @@ -734,8 +733,7 @@ static int __init cf_check parse_ivrs_hpet(const char *str)
>>>           return -EINVAL;
>>>
>>>       hpet_sbdf.id = id;
>>> -    hpet_sbdf.bdf = PCI_BDF(bus, dev, func);
>>> -    hpet_sbdf.seg = seg;
>>> +    hpet_sbdf.sbdf = PCI_SBDF( seg, PCI_BDF(bus, dev, func) );
>>                          ^^
>>                          e.g. here it can be simplified too.
> You are right, PCI_SBDF(sef, bus, dev, func) works here and above. Will 
> resend.

And please also drop the stray blanks immediately next to the parentheses.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 15 07:38:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 07:38:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.952186.1347712 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4asL-000056-TG; Tue, 15 Apr 2025 07:38:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 952186.1347712; Tue, 15 Apr 2025 07:38: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 1u4asL-00004w-QY; Tue, 15 Apr 2025 07:38:33 +0000
Received: by outflank-mailman (input) for mailman id 952186;
 Tue, 15 Apr 2025 07:38: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=ai1O=XB=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u4asK-0008WV-E7
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 07:38:32 +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 a0ea8c69-19cc-11f0-9eae-5ba50f476ded;
 Tue, 15 Apr 2025 09:38:31 +0200 (CEST)
Received: by mail-wr1-x433.google.com with SMTP id
 ffacd0b85a97d-39d83782ef6so3991868f8f.0
 for <xen-devel@lists.xenproject.org>; Tue, 15 Apr 2025 00:38:31 -0700 (PDT)
Received: from [10.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-39eae9780a0sm13439902f8f.50.2025.04.15.00.38.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 15 Apr 2025 00:38: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: a0ea8c69-19cc-11f0-9eae-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744702711; x=1745307511; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=N1GyCT/cs4goAAz2N8zXEg1cflt+E4Km7OSUcxdDr4I=;
        b=V3b94+rgpPLX9MYyfNJ/7zmOUHhM4F6mGtZ0YhPVRg6qrcAOK/u6AF/FaVonT6iAO8
         CqMHPyeUU++Ini607jWXb5XclCM5ZyByin2T3V27LbcPB6QdEnp0Sgtt1ofNgRIc0EYC
         HOsD4ha9I7CHtzdETpj0gvBHqlni8kos4zBukGEsdnJ2zBHT8ZJOPaf6hQtRRZc7UVmj
         izOwn8Esy4lVOVBoWd5VJsI8hyz62crIL2HgkDZcleoDRl2ndpfXhNQ/Ufhy0NABViTK
         N2lNWfQBVKBLq838Sf3i8mUQxnARxigv1rpi22hK80i5lPdyEldImEfcNBA+iH1lme79
         zg8g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744702711; x=1745307511;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=N1GyCT/cs4goAAz2N8zXEg1cflt+E4Km7OSUcxdDr4I=;
        b=B41HhZlqJ5KM4TyScvlzX5JzfUZQFJ9nmkOg+sqhSveN11IsRJSUo2aUdIYrb4WGae
         hSXTTHgpLFBoauJ5SwS6jXXXIezMifhxk2/pwcaZfdKZwx5SXe7AEY8DfjnvGjbydDO7
         24+hdrMkh+KnuPYcl5rJBce2wdChxrs/5al3YvVY3Fd/FeLeZFWTz08NMZaAF7EBIYWT
         KfA+Za0vyVrmCNk/WemxRTG72HkT5MdoTi/emP87xb5bOqk60buRDFnKofPkDjXre7mC
         qxnq5tG9eZBrHHKHik/Iz6sQOOdsGKjqM4PDAqoN31+gy2GxCLasE2p+ey6EoYQOi7kZ
         vu2Q==
X-Gm-Message-State: AOJu0YxBl7r+dp6qJxL17sG0K9+k2xC4QjGZ0zZH4kYA3Cv8izFvyQw5
	IdgGkNlFfQD+PCUPQZnmhusJg/jkwtW/lLsqmMw+47FFGQHxWVunOAJ+UxQCC+Wc1lCkf/gucH0
	=
X-Gm-Gg: ASbGncsjLrvvLjJR5G3tTSiBWMHnMtbKUjtWb5ImUs+IV7zG/qUbJadl7Sf8UdtC53C
	QDvBLY3Yt8BfahkUNBhwCoMm0jVe9Ue2t45s/IudiOymxEFn1dAtZMxC/A5B/3Jm3OkBZpu0aB7
	c1y8+nxf0smwf0zmOXEkjYeW3zABmqyXIt2mNZSnRWupcxX5uI7oLBpaNYw9d1oY9kw3GGNPb1j
	lZk2W3WUdvpyHlxHlIz9FBOKlIdjXL994Kx973SgFwTdHIPBlzkwp0cKqR9HvSKJKmF7cc9PGt1
	qrXR2BhZfOOuvZ9zl30HoWtIeF3e3mXLi23maSVbDjnC4HH/7agfUvdKLTAA94E5GrYqtC/bBDk
	en0DpqnQbQDOTNKIQpEK8peNDKQ==
X-Google-Smtp-Source: AGHT+IGE4TiMtaJoUM1eSoQr3ECtSjC3DyVm/Xe/vglFsFrXiIzrwa43xTf/wMYoMLSfhMGggMdAng==
X-Received: by 2002:a05:6000:220c:b0:39c:266b:feec with SMTP id ffacd0b85a97d-39edc306e8cmr1710572f8f.7.1744702710811;
        Tue, 15 Apr 2025 00:38:30 -0700 (PDT)
Message-ID: <291d4115-a493-4bf5-8667-a730f76647a4@suse.com>
Date: Tue, 15 Apr 2025 09:38:29 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 1/3] drivers: Change amd_iommu struct to contain
 pci_sbdf_t, simplify code
To: dmkhn@proton.me
Cc: xen-devel@lists.xenproject.org, Andrew Cooper
 <andrew.cooper3@citrix.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Andrii Sultanov <sultanovandriy@gmail.com>
References: <cover.1744657012.git.andriy.sultanov@vates.tech>
 <40f504017d71c16a3e2bc8945ac5e674a3e791ed.1744657012.git.andriy.sultanov@vates.tech>
 <Z/4MCopF/j5357Mf@starscream>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <Z/4MCopF/j5357Mf@starscream>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 15.04.2025 09:34, dmkhn@proton.me wrote:
> On Mon, Apr 14, 2025 at 08:19:16PM +0100, Andrii Sultanov wrote:
>> --- a/xen/drivers/passthrough/amd/pci_amd_iommu.c
>> +++ b/xen/drivers/passthrough/amd/pci_amd_iommu.c
>> @@ -43,7 +43,7 @@ struct amd_iommu *find_iommu_for_device(int seg, int bdf)
>>      {
>>          unsigned int bd0 = bdf & ~PCI_FUNC(~0);
>>
>> -        if ( ivrs_mappings[bd0].iommu && ivrs_mappings[bd0].iommu->bdf != bdf )
>> +        if ( ivrs_mappings[bd0].iommu && ivrs_mappings[bd0].iommu->sbdf.bdf != bdf )
>>          {
>>              struct ivrs_mappings tmp = ivrs_mappings[bd0];
>>
>> @@ -121,7 +121,7 @@ static bool use_ats(
>>  {
>>      return !ivrs_dev->block_ats &&
>>             iommu_has_cap(iommu, PCI_CAP_IOTLB_SHIFT) &&
>> -           pci_ats_device(iommu->seg, pdev->bus, pdev->devfn);
>> +           pci_ats_device(iommu->sbdf.seg, pdev->bus, pdev->devfn);
> 
> Same idea about updating signature to take pci_sbdf_t.

Perhaps both this and ...

>> @@ -147,17 +147,17 @@ static int __must_check amd_iommu_setup_domain_device(
>>      if ( rc )
>>          return rc;
>>
>> -    req_id = get_dma_requestor_id(iommu->seg, pdev->sbdf.bdf);
>> -    ivrs_dev = &get_ivrs_mappings(iommu->seg)[req_id];
>> +    req_id = get_dma_requestor_id(iommu->sbdf.seg, pdev->sbdf.bdf);
>> +    ivrs_dev = &get_ivrs_mappings(iommu->sbdf.seg)[req_id];
>>      sr_flags = (iommu_hwdom_passthrough && is_hardware_domain(domain)
>>                  ? 0 : SET_ROOT_VALID)
>>                 | (ivrs_dev->unity_map ? SET_ROOT_WITH_UNITY_MAP : 0);
>>
>>      /* get device-table entry */
>> -    req_id = get_dma_requestor_id(iommu->seg, PCI_BDF(bus, devfn));
>> +    req_id = get_dma_requestor_id(iommu->sbdf.seg, PCI_BDF(bus, devfn));
>>      table = iommu->dev_table.buffer;
>>      dte = &table[req_id];
>> -    ivrs_dev = &get_ivrs_mappings(iommu->seg)[req_id];
>> +    ivrs_dev = &get_ivrs_mappings(iommu->sbdf.seg)[req_id];
>>
>>      if ( domain != dom_io )
>>      {
>> @@ -275,7 +275,7 @@ static int __must_check amd_iommu_setup_domain_device(
>>      ASSERT(pcidevs_locked());
>>
>>      if ( use_ats(pdev, iommu, ivrs_dev) &&
>> -         !pci_ats_enabled(iommu->seg, bus, pdev->devfn) )
>> +         !pci_ats_enabled(iommu->sbdf.seg, bus, pdev->devfn) )
> 
> ... and same for pci_ats_enabled()

... this would best take a pointer to a const pdev (if that works out).

And yes, there's a lot of similar cleanup to be done in this area. I don't
think we can demand Andrii to do it all in one go.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 15 07:50:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 07:50:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.952205.1347726 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4b41-0003zg-Uo; Tue, 15 Apr 2025 07:50:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 952205.1347726; Tue, 15 Apr 2025 07: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 1u4b41-0003zZ-QQ; Tue, 15 Apr 2025 07:50:37 +0000
Received: by outflank-mailman (input) for mailman id 952205;
 Tue, 15 Apr 2025 07:50: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=Xs7D=XB=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u4b40-0003zT-Vl
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 07:50:37 +0000
Received: from mail-10629.protonmail.ch (mail-10629.protonmail.ch
 [79.135.106.29]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4feecb46-19ce-11f0-9ffb-bf95429c2676;
 Tue, 15 Apr 2025 09:50:34 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4feecb46-19ce-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1744703433; x=1744962633;
	bh=0uA0gSuZ8ehKVnuRHD7qwXsnzRgMhsN53ojlh5hil8U=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=cnam2zPPeVeU7ictPVFRvLS1jcml2E/tZ9ZPZavpNtS4vt1YROkScwf8Qbx0a/7pQ
	 D66Shy6JRHxMJMvO01VIE2klExkKzTxogXPVLkG+B5qti+iNsV8Wx/e10iwJuhD/yR
	 z4SHcTJPt9ksbemu973ucWXySysLl87/18cuLBh6imuKRnZVMpofwqRg6s7QfrDupB
	 6ubnZoUHdvIGWK39ZFE93kEHH6mkix927Vu+7T4CkIA6wwOinG4FPJcNMStI9lJUiD
	 2hyMehOP2CW7Qd6VpqZ0OZgCBFMJSHJlZI1RZ+vsMbZnPQloiZRYu+gtsqb6hTCGjq
	 R66ZzVApJ0Fkg==
Date: Tue, 15 Apr 2025 07:50:28 +0000
To: Andrii Sultanov <sultanovandriy@gmail.com>
From: dmkhn@proton.me
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>, =?utf-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Subject: Re: [PATCH v4 2/3] drivers: Change find_iommu_for_device function to take pci_sbdf_t, simplify code
Message-ID: <Z/4PweTE6AoZOccf@starscream>
In-Reply-To: <34125ae23ff54f55637f25afb7972374c87172cd.1744657012.git.andriy.sultanov@vates.tech>
References: <cover.1744657012.git.andriy.sultanov@vates.tech> <34125ae23ff54f55637f25afb7972374c87172cd.1744657012.git.andriy.sultanov@vates.tech>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: ab18dae08dfa34f3da365ce1da5e4dea9f01eadf
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Mon, Apr 14, 2025 at 08:19:17PM +0100, Andrii Sultanov wrote:
> From: Andrii Sultanov <sultanovandriy@gmail.com>
>=20
> Following a similar change to amd_iommu struct, change the
> find_iommu_for_device function to take pci_sbdf_t as a single parameter.
> This removes conversions in the majority of cases.
>=20
> Bloat-o-meter reports (on top of the first patch in the series):
> add/remove: 0/0 grow/shrink: 12/11 up/down: 95/-95 (0)
> Function                                     old     new   delta
> amd_iommu_get_supported_ivhd_type             54      86     +32
> parse_ivrs_table                            3955    3966     +11
> amd_iommu_assign_device                      271     282     +11
> __mon_lengths                               2928    2936      +8
> update_intremap_entry_from_msi_msg           859     864      +5
> iov_supports_xt                              270     275      +5
> amd_setup_hpet_msi                           232     237      +5
> amd_iommu_domain_destroy                      46      51      +5
> _hvm_dpci_msi_eoi                            155     160      +5
> find_iommu_for_device                        242     246      +4
> amd_iommu_ioapic_update_ire                  572     575      +3
> allocate_domain_resources                     82      83      +1
> amd_iommu_read_ioapic_from_ire               347     344      -3
> reassign_device                              843     838      -5
> amd_iommu_remove_device                      352     347      -5
> amd_iommu_get_reserved_device_memory         521     516      -5
> amd_iommu_flush_iotlb                        359     354      -5
> amd_iommu_add_device                         844     839      -5
> amd_iommu_setup_domain_device               1478    1472      -6
> build_info                                   752     744      -8
> amd_iommu_detect_one_acpi                    886     876     -10
> register_range_for_device                    297     281     -16
> parse_ivmd_block                            1339    1312     -27
>=20
> Signed-off-by: Andrii Sultanov <sultanovandriy@gmail.com>
>=20
> Acked-by: Jan Beulich <jbeulich@suse.com>

Looks good to me:

Reviewed-by: Denis Mukhin <dmukhin@ford.com>
>=20
> ---
> Changes in V4:
> * After amendments to the previous commit which increased improvements
>   there, this commit now does not improve code size anymore (but still
>   simplifies code), so I've updated the bloat-o-meter report.
>=20
> Changes in V3:
> * Amended commit message
> * As the previous patch dropped the aliasing of seg and bdf, renamed user=
s of
>   amd_iommu as appropriate.
>=20
> Changes in V2:
> * Split single commit into several patches
> * Dropped brackets around &(iommu->sbdf) and &(sbdf)
> * Dropped most of the hunk in _invalidate_all_devices - it was
>   bloat-equivalent to the existing code - just convert with PCI_SBDF
>   instead
> * Dropped the hunk in get_intremap_requestor_id (iommu_intr.c) and
>   amd_iommu_get_reserved_device_memory (iommu_map.c) as they were only
>   increasing the code size.
> * Kept "/* XXX */" where appropriate
> * Fixed a slip-up in register_range_for_iommu_devices where iommu->sbdf
>   replaced the usage of *different* seg and bdf.
> ---
>  xen/drivers/passthrough/amd/iommu.h         |  2 +-
>  xen/drivers/passthrough/amd/iommu_acpi.c    | 14 +++++-----
>  xen/drivers/passthrough/amd/iommu_cmd.c     |  2 +-
>  xen/drivers/passthrough/amd/iommu_init.c    |  4 +--
>  xen/drivers/passthrough/amd/iommu_intr.c    | 17 ++++++------
>  xen/drivers/passthrough/amd/iommu_map.c     |  2 +-
>  xen/drivers/passthrough/amd/pci_amd_iommu.c | 30 ++++++++++-----------
>  7 files changed, 35 insertions(+), 36 deletions(-)
>=20
> diff --git a/xen/drivers/passthrough/amd/iommu.h b/xen/drivers/passthroug=
h/amd/iommu.h
> index ba541f7943..2599800e6a 100644
> --- a/xen/drivers/passthrough/amd/iommu.h
> +++ b/xen/drivers/passthrough/amd/iommu.h
> @@ -240,7 +240,7 @@ void amd_iommu_flush_intremap(struct amd_iommu *iommu=
, uint16_t bdf);
>  void amd_iommu_flush_all_caches(struct amd_iommu *iommu);
>=20
>  /* find iommu for bdf */
> -struct amd_iommu *find_iommu_for_device(int seg, int bdf);
> +struct amd_iommu *find_iommu_for_device(pci_sbdf_t sbdf);
>=20
>  /* interrupt remapping */
>  bool cf_check iov_supports_xt(void);
> diff --git a/xen/drivers/passthrough/amd/iommu_acpi.c b/xen/drivers/passt=
hrough/amd/iommu_acpi.c
> index 025d9be40f..9e4fbee953 100644
> --- a/xen/drivers/passthrough/amd/iommu_acpi.c
> +++ b/xen/drivers/passthrough/amd/iommu_acpi.c
> @@ -239,17 +239,17 @@ static int __init register_range_for_device(
>      unsigned int bdf, paddr_t base, paddr_t limit,
>      bool iw, bool ir, bool exclusion)
>  {
> -    int seg =3D 0; /* XXX */
> -    struct ivrs_mappings *ivrs_mappings =3D get_ivrs_mappings(seg);
> +    pci_sbdf_t sbdf =3D { .seg =3D 0 /* XXX */, .bdf =3D bdf };
> +    struct ivrs_mappings *ivrs_mappings =3D get_ivrs_mappings(sbdf.seg);
>      struct amd_iommu *iommu;
>      u16 req;
>      int rc =3D 0;
>=20
> -    iommu =3D find_iommu_for_device(seg, bdf);
> +    iommu =3D find_iommu_for_device(sbdf);
>      if ( !iommu )
>      {
>          AMD_IOMMU_WARN("IVMD: no IOMMU for device %pp - ignoring constra=
in\n",
> -                       &PCI_SBDF(seg, bdf));
> +                       &sbdf);
>          return 0;
>      }
>      req =3D ivrs_mappings[bdf].dte_requestor_id;
> @@ -263,9 +263,9 @@ static int __init register_range_for_device(
>          paddr_t length =3D limit + PAGE_SIZE - base;
>=20
>          /* reserve unity-mapped page entries for device */
> -        rc =3D reserve_unity_map_for_device(seg, bdf, base, length, iw, =
ir,
> +        rc =3D reserve_unity_map_for_device(sbdf.seg, bdf, base, length,=
 iw, ir,
>                                            false) ?:
> -             reserve_unity_map_for_device(seg, req, base, length, iw, ir=
,
> +             reserve_unity_map_for_device(sbdf.seg, req, base, length, i=
w, ir,
>                                            false);
>      }
>      else
> @@ -297,7 +297,7 @@ static int __init register_range_for_iommu_devices(
>      /* reserve unity-mapped page entries for devices */
>      for ( bdf =3D rc =3D 0; !rc && bdf < ivrs_bdf_entries; bdf++ )
>      {
> -        if ( iommu !=3D find_iommu_for_device(iommu->sbdf.seg, bdf) )
> +        if ( iommu !=3D find_iommu_for_device(PCI_SBDF(iommu->sbdf.seg, =
bdf)) )
>              continue;
>=20
>          req =3D get_ivrs_mappings(iommu->sbdf.seg)[bdf].dte_requestor_id=
;
> diff --git a/xen/drivers/passthrough/amd/iommu_cmd.c b/xen/drivers/passth=
rough/amd/iommu_cmd.c
> index eefd626161..6b80c57f44 100644
> --- a/xen/drivers/passthrough/amd/iommu_cmd.c
> +++ b/xen/drivers/passthrough/amd/iommu_cmd.c
> @@ -288,7 +288,7 @@ void amd_iommu_flush_iotlb(u8 devfn, const struct pci=
_dev *pdev,
>      if ( !pci_ats_enabled(pdev->seg, pdev->bus, pdev->devfn) )
>          return;
>=20
> -    iommu =3D find_iommu_for_device(pdev->seg, pdev->sbdf.bdf);
> +    iommu =3D find_iommu_for_device(pdev->sbdf);
>=20
>      if ( !iommu )
>      {
> diff --git a/xen/drivers/passthrough/amd/iommu_init.c b/xen/drivers/passt=
hrough/amd/iommu_init.c
> index 58d657060a..3f6d2f5db5 100644
> --- a/xen/drivers/passthrough/amd/iommu_init.c
> +++ b/xen/drivers/passthrough/amd/iommu_init.c
> @@ -1540,13 +1540,13 @@ static void invalidate_all_domain_pages(void)
>  static int cf_check _invalidate_all_devices(
>      u16 seg, struct ivrs_mappings *ivrs_mappings)
>  {
> -    unsigned int bdf;
> +    unsigned int bdf;
>      u16 req_id;
>      struct amd_iommu *iommu;
>=20
>      for ( bdf =3D 0; bdf < ivrs_bdf_entries; bdf++ )
>      {
> -        iommu =3D find_iommu_for_device(seg, bdf);
> +        iommu =3D find_iommu_for_device(PCI_SBDF(seg, bdf));
>          req_id =3D ivrs_mappings[bdf].dte_requestor_id;
>          if ( iommu )
>          {
> diff --git a/xen/drivers/passthrough/amd/iommu_intr.c b/xen/drivers/passt=
hrough/amd/iommu_intr.c
> index a7347fcbad..16075cd5a1 100644
> --- a/xen/drivers/passthrough/amd/iommu_intr.c
> +++ b/xen/drivers/passthrough/amd/iommu_intr.c
> @@ -337,7 +337,7 @@ void cf_check amd_iommu_ioapic_update_ire(
>      /* get device id of ioapic devices */
>      bdf =3D ioapic_sbdf[idx].bdf;
>      seg =3D ioapic_sbdf[idx].seg;
> -    iommu =3D find_iommu_for_device(seg, bdf);
> +    iommu =3D find_iommu_for_device(PCI_SBDF(seg, bdf));
>      if ( !iommu )
>      {
>          AMD_IOMMU_WARN("failed to find IOMMU for IO-APIC @ %04x:%04x\n",
> @@ -383,7 +383,7 @@ unsigned int cf_check amd_iommu_read_ioapic_from_ire(
>=20
>      seg =3D ioapic_sbdf[idx].seg;
>      bdf =3D ioapic_sbdf[idx].bdf;
> -    iommu =3D find_iommu_for_device(seg, bdf);
> +    iommu =3D find_iommu_for_device(PCI_SBDF(seg, bdf));
>      if ( !iommu )
>          return val;
>      req_id =3D get_intremap_requestor_id(seg, bdf);
> @@ -495,16 +495,15 @@ static int update_intremap_entry_from_msi_msg(
>      return fresh;
>  }
>=20
> -static struct amd_iommu *_find_iommu_for_device(int seg, int bdf)
> +static struct amd_iommu *_find_iommu_for_device(pci_sbdf_t sbdf)
>  {
>      struct amd_iommu *iommu;
> -    pci_sbdf_t sbdf =3D PCI_SBDF(seg, bdf);
>=20
>      for_each_amd_iommu ( iommu )
>          if ( iommu->sbdf.sbdf =3D=3D sbdf.sbdf )
>              return NULL;
>=20
> -    iommu =3D find_iommu_for_device(seg, bdf);
> +    iommu =3D find_iommu_for_device(sbdf);
>      if ( iommu )
>          return iommu;
>=20
> @@ -524,7 +523,7 @@ int cf_check amd_iommu_msi_msg_update_ire(
>      bdf =3D pdev ? pdev->sbdf.bdf : hpet_sbdf.bdf;
>      seg =3D pdev ? pdev->seg : hpet_sbdf.seg;
>=20
> -    iommu =3D _find_iommu_for_device(seg, bdf);
> +    iommu =3D _find_iommu_for_device(PCI_SBDF(seg, bdf));
>      if ( IS_ERR_OR_NULL(iommu) )
>          return PTR_ERR(iommu);
>=20
> @@ -661,8 +660,8 @@ bool __init cf_check iov_supports_xt(void)
>          if ( idx =3D=3D MAX_IO_APICS )
>              return false;
>=20
> -        if ( !find_iommu_for_device(ioapic_sbdf[idx].seg,
> -                                    ioapic_sbdf[idx].bdf) )
> +        if ( !find_iommu_for_device(PCI_SBDF(ioapic_sbdf[idx].seg,
> +                                             ioapic_sbdf[idx].bdf)) )
>          {
>              AMD_IOMMU_WARN("no IOMMU for IO-APIC %#x (ID %x)\n",
>                             apic, IO_APIC_ID(apic));
> @@ -691,7 +690,7 @@ int __init cf_check amd_setup_hpet_msi(struct msi_des=
c *msi_desc)
>          return -ENODEV;
>      }
>=20
> -    iommu =3D find_iommu_for_device(hpet_sbdf.seg, hpet_sbdf.bdf);
> +    iommu =3D find_iommu_for_device(PCI_SBDF(hpet_sbdf.seg, hpet_sbdf.bd=
f));
>      if ( !iommu )
>          return -ENXIO;
>=20
> diff --git a/xen/drivers/passthrough/amd/iommu_map.c b/xen/drivers/passth=
rough/amd/iommu_map.c
> index d28c475650..320a2dc64c 100644
> --- a/xen/drivers/passthrough/amd/iommu_map.c
> +++ b/xen/drivers/passthrough/amd/iommu_map.c
> @@ -717,7 +717,7 @@ int cf_check amd_iommu_get_reserved_device_memory(
>              pcidevs_unlock();
>=20
>              if ( pdev )
> -                iommu =3D find_iommu_for_device(seg, bdf);
> +                iommu =3D find_iommu_for_device(sbdf);
>              if ( !iommu )
>                  continue;
>          }
> diff --git a/xen/drivers/passthrough/amd/pci_amd_iommu.c b/xen/drivers/pa=
ssthrough/amd/pci_amd_iommu.c
> index 6b58e3380b..3a14770855 100644
> --- a/xen/drivers/passthrough/amd/pci_amd_iommu.c
> +++ b/xen/drivers/passthrough/amd/pci_amd_iommu.c
> @@ -32,35 +32,35 @@ static bool __read_mostly init_done;
>=20
>  static const struct iommu_init_ops _iommu_init_ops;
>=20
> -struct amd_iommu *find_iommu_for_device(int seg, int bdf)
> +struct amd_iommu *find_iommu_for_device(pci_sbdf_t sbdf)
>  {
> -    struct ivrs_mappings *ivrs_mappings =3D get_ivrs_mappings(seg);
> +    struct ivrs_mappings *ivrs_mappings =3D get_ivrs_mappings(sbdf.seg);
>=20
> -    if ( !ivrs_mappings || bdf >=3D ivrs_bdf_entries )
> +    if ( !ivrs_mappings || sbdf.bdf >=3D ivrs_bdf_entries )
>          return NULL;
>=20
> -    if ( unlikely(!ivrs_mappings[bdf].iommu) && likely(init_done) )
> +    if ( unlikely(!ivrs_mappings[sbdf.bdf].iommu) && likely(init_done) )
>      {
> -        unsigned int bd0 =3D bdf & ~PCI_FUNC(~0);
> +        unsigned int bd0 =3D sbdf.bdf & ~PCI_FUNC(~0);
>=20
> -        if ( ivrs_mappings[bd0].iommu && ivrs_mappings[bd0].iommu->sbdf.=
bdf !=3D bdf )
> +        if ( ivrs_mappings[bd0].iommu && ivrs_mappings[bd0].iommu->sbdf.=
bdf !=3D sbdf.bdf )
>          {
>              struct ivrs_mappings tmp =3D ivrs_mappings[bd0];
>=20
>              tmp.iommu =3D NULL;
>              if ( tmp.dte_requestor_id =3D=3D bd0 )
> -                tmp.dte_requestor_id =3D bdf;
> -            ivrs_mappings[bdf] =3D tmp;
> +                tmp.dte_requestor_id =3D sbdf.bdf;
> +            ivrs_mappings[sbdf.bdf] =3D tmp;
>=20
>              printk(XENLOG_WARNING "%pp not found in ACPI tables;"
> -                   " using same IOMMU as function 0\n", &PCI_SBDF(seg, b=
df));
> +                   " using same IOMMU as function 0\n", &sbdf);
>=20
>              /* write iommu field last */
> -            ivrs_mappings[bdf].iommu =3D ivrs_mappings[bd0].iommu;
> +            ivrs_mappings[sbdf.bdf].iommu =3D ivrs_mappings[bd0].iommu;
>          }
>      }
>=20
> -    return ivrs_mappings[bdf].iommu;
> +    return ivrs_mappings[sbdf.bdf].iommu;
>  }
>=20
>  /*
> @@ -107,7 +107,7 @@ static bool any_pdev_behind_iommu(const struct domain=
 *d,
>          if ( pdev =3D=3D exclude )
>              continue;
>=20
> -        if ( find_iommu_for_device(pdev->seg, pdev->sbdf.bdf) =3D=3D iom=
mu )
> +        if ( find_iommu_for_device(pdev->sbdf) =3D=3D iommu )
>              return true;
>      }
>=20
> @@ -468,7 +468,7 @@ static int cf_check reassign_device(
>      struct amd_iommu *iommu;
>      int rc;
>=20
> -    iommu =3D find_iommu_for_device(pdev->seg, pdev->sbdf.bdf);
> +    iommu =3D find_iommu_for_device(pdev->sbdf);
>      if ( !iommu )
>      {
>          AMD_IOMMU_WARN("failed to find IOMMU: %pp cannot be assigned to =
%pd\n",
> @@ -581,7 +581,7 @@ static int cf_check amd_iommu_add_device(u8 devfn, st=
ruct pci_dev *pdev)
>          if ( pdev->sbdf.sbdf =3D=3D iommu->sbdf.sbdf )
>              return is_hardware_domain(pdev->domain) ? 0 : -ENODEV;
>=20
> -    iommu =3D find_iommu_for_device(pdev->seg, pdev->sbdf.bdf);
> +    iommu =3D find_iommu_for_device(pdev->sbdf);
>      if ( unlikely(!iommu) )
>      {
>          /* Filter bridge devices. */
> @@ -666,7 +666,7 @@ static int cf_check amd_iommu_remove_device(u8 devfn,=
 struct pci_dev *pdev)
>      if ( !pdev->domain )
>          return -EINVAL;
>=20
> -    iommu =3D find_iommu_for_device(pdev->seg, pdev->sbdf.bdf);
> +    iommu =3D find_iommu_for_device(pdev->sbdf);
>      if ( !iommu )
>      {
>          AMD_IOMMU_WARN("failed to find IOMMU: %pp cannot be removed from=
 %pd\n",
> --
> 2.49.0
>=20
>=20



From xen-devel-bounces@lists.xenproject.org Tue Apr 15 07:56:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 07:56:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.952222.1347737 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4b9H-00060G-LA; Tue, 15 Apr 2025 07:56:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 952222.1347737; Tue, 15 Apr 2025 07:56: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 1u4b9H-000609-Ge; Tue, 15 Apr 2025 07:56:03 +0000
Received: by outflank-mailman (input) for mailman id 952222;
 Tue, 15 Apr 2025 07:56: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=JN3i=XB=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1u4b9G-0005zx-2f
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 07:56:02 +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 0f7695fc-19cf-11f0-9ffb-bf95429c2676;
 Tue, 15 Apr 2025 09:55:56 +0200 (CEST)
Received: from AM0PR01CA0111.eurprd01.prod.exchangelabs.com
 (2603:10a6:208:168::16) by AM9PR08MB6099.eurprd08.prod.outlook.com
 (2603:10a6:20b:286::18) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.32; Tue, 15 Apr
 2025 07:55:50 +0000
Received: from AMS0EPF000001B2.eurprd05.prod.outlook.com
 (2603:10a6:208:168:cafe::63) by AM0PR01CA0111.outlook.office365.com
 (2603:10a6:208:168::16) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.32 via Frontend Transport; Tue,
 15 Apr 2025 07:55:48 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AMS0EPF000001B2.mail.protection.outlook.com (10.167.16.166) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.12
 via Frontend Transport; Tue, 15 Apr 2025 07:55:49 +0000
Received: from DB7PR08MB2987.eurprd08.prod.outlook.com (2603:10a6:5:1c::25) by
 AS2PR08MB9474.eurprd08.prod.outlook.com (2603:10a6:20b:5e9::21) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.34; Tue, 15 Apr
 2025 07:55:17 +0000
Received: from DB7PR08MB2987.eurprd08.prod.outlook.com
 ([fe80::d53f:b16d:70a5:8668]) by DB7PR08MB2987.eurprd08.prod.outlook.com
 ([fe80::d53f:b16d:70a5:8668%4]) with mapi id 15.20.8632.030; Tue, 15 Apr 2025
 07:55: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: 0f7695fc-19cf-11f0-9ffb-bf95429c2676
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=pxfv9bblthxMq/mmOkSFvCX0ko3V7HhV8MaPgCHWI6fHQXHjqeQIz06zOYh45LMHZPmiLM/gyyoOPR5WvU1DmR/x8WH1RuUBKYSoIgND1qdvhzPDJ9+gJh+cEfNfs63ejGnCevHcVN7G6uSdVsqEHfYxPv6sbSxJGP4hkbD32G5gXT2WWBv9Ek/9w0NBtZk95cNqrwdH6kr535pXYyoDIdF0BQCTV9FZDCVtt+LbHSGcJnSxFwzTzjXxoA++sF5QvOWXNmxfyZe5n0omLjqYjmyfOstf0Frqb8Qowsi0rAoVzVBqrR8VHuyU3OdRYcAHYZxN2wS9MOfotn01l3sV4g==
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=/2fKqZ5wnNPzUBs4RD7wTwKYGvs3QOO9TxGt/wG8g08=;
 b=STsHQhkiqYVia/kyjRIfg2MrU9+zhq2Sb8hCHSKxzNraMmebQ4kF5+N/gyX9jmYaH+j1zEBUfX+Gl0B8UeS8EDLJ1Fzf5qzbATgIU85KgGP8R7ao65VFXDG26fNUA42UTb86zlHMqcd9KJi58I/I1zUEI/baAbJytBtJgkbcCyvdiOaYK5srj1bF8acuXRA8SBS98UWt8COv9c29uxbYhL5cK9+jAjsa6dENW/owVkAwiV37gwyRNcyY8y7Fa0KIrEv++EXlqzHvZAa3VDYqksHlZbYv3ATgurDkSVaFxYpF5+zlN3pVImNeLJnKPxA88F4BlTHMD6ixdgQXdGG2jw==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=xen.org smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=/2fKqZ5wnNPzUBs4RD7wTwKYGvs3QOO9TxGt/wG8g08=;
 b=ISsSnblHvvxMGGLU4GoilifI+xDJeGSKvl2aD7xkzdoOwW+xqqeYtXz88uWPr3HcXnpq3iyxrTI+aLZbhIASVc0lS2dv1zZC10wARdtvHVla+N3BQOcaF0wnaP3S3amNK2eDpynn0weQjVqIqLPVYF9uajaXQgAT1kdEmPNhqJk=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=vDDjOA6m+AqvZ38NVh7VmlrzjRWTAT/2nh5ZGw7AGOrzq4NDxmLlK+tvEbHYZ6Hg+vR/fO5BacQFnkiOL1WsVLWGhT1iyFW6q4SqaXkJWRs98NRj9ZgUPkiqBwZYnWlkLXb4KggOcNFHo/DmB6pfb7qycejg0Rr9jKDkfebU8gBJ42RJVcCCnxIoSg9ROReSxd2XsYpjpz1gNS5lqpvhbTZpsfISKahaWDtUFI53m2wVUVfiPInA0mKxbYRTXVAn7Tul7X0rfuImfDvd8dLIfyfjNU10G9UuFODQ1O9sBTBzU5I1Zj6kNOqqhQ78eVmPp/dYjRcZVtxPwbAqz5IvKA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=/2fKqZ5wnNPzUBs4RD7wTwKYGvs3QOO9TxGt/wG8g08=;
 b=GDeGhgUWs9/uThmwXm4pRSTwv316vh2DOkf20Be68/OAp9OrlU43dP+fib1G8sxqCHVqyTq8eTxkWAg/pFGjxhdhzfaVCgsmqqtiBJz6rs0DBrVKi0vaBbqoPnuca/3RfXWQJeRkKzFAT/7+6YfZPyFBJSGqEfrGVnSU7Ya3quEW5FQ89Xhb4ebS0wr8iW60pELpI7h/RdSK5qb1uWuFb2HgItRvQjkjDJLlXCrIGPKbyYGjdkoBXFjDojqv9rig9H1q5vMFHkrYXIdAVAJ4G22mXc/lk6KlrUJoi9q0HjRwaOfj7zckb9RAP6vKj5ncZNzbSi7ZbuwkDUevyxeP/Q==
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=/2fKqZ5wnNPzUBs4RD7wTwKYGvs3QOO9TxGt/wG8g08=;
 b=ISsSnblHvvxMGGLU4GoilifI+xDJeGSKvl2aD7xkzdoOwW+xqqeYtXz88uWPr3HcXnpq3iyxrTI+aLZbhIASVc0lS2dv1zZC10wARdtvHVla+N3BQOcaF0wnaP3S3amNK2eDpynn0weQjVqIqLPVYF9uajaXQgAT1kdEmPNhqJk=
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 v3 7/7] arm/mpu: Implement setup_mpu for MPU system
Thread-Topic: [PATCH v3 7/7] arm/mpu: Implement setup_mpu for MPU system
Thread-Index: AQHbqvIOcqFIKG0Dnkidmosr/dM7hLOjFvuAgAAzsICAAJ2ngIAAeRkA
Date: Tue, 15 Apr 2025 07:55:16 +0000
Message-ID: <A053DC71-B301-4D64-8EDB-C225E2ED3FA7@arm.com>
References: <20250411145655.140667-1-luca.fancellu@arm.com>
 <20250411145655.140667-8-luca.fancellu@arm.com>
 <923a2fc0-4eeb-4e09-a56d-7471a56fe3bf@xen.org>
 <4771188E-B307-4452-A900-2ACACC1CE333@arm.com>
 <fcacc6b6-ea4b-4917-ac46-5264ac3e4039@xen.org>
In-Reply-To: <fcacc6b6-ea4b-4917-ac46-5264ac3e4039@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.400.131.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DB7PR08MB2987:EE_|AS2PR08MB9474:EE_|AMS0EPF000001B2:EE_|AM9PR08MB6099:EE_
X-MS-Office365-Filtering-Correlation-Id: 5858de2b-8714-4688-1862-08dd7bf2f051
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?bmFMSjByR0VxblF0eSsvdmFXM29MTDhkQVhMV2FsN2crSmptYUt6T3RxS3lL?=
 =?utf-8?B?cmk1eCtCUlVrWHk1cTl0VElLNWpEYXhKbUlyc3d0Zy9oU0xoSUhWZlpnWm9o?=
 =?utf-8?B?M0sxT3NuL3p5T1ROWE5uS3BSM2pNdTNkTzkwQUZNRHkxUk55c2t0R2lFQk1h?=
 =?utf-8?B?dWxHN0hWMzEyZW0zNVBFNTBuVWx0S3JpUmNJWlpvTDk0Ky85QjNTY3ZYelFS?=
 =?utf-8?B?UWtGZjNGUlR5T3RWaUZDTDVxd25OZS9rKzRLYmYvUXcxR3hmOGxkUURhZzZC?=
 =?utf-8?B?aFR2bFE0SkM2NHVUZUprbmZGUVVIblI5ODM3eS9EVUk2RzZkcVRmQVZyOFdJ?=
 =?utf-8?B?N09Zb3ZnTmNTZGJYdDhydnFnMjA4cnhLRHlFUEdqaXZvKzJIdFVBbm5KeXQv?=
 =?utf-8?B?eVhkRys2VU9wenhXWG9MQ2FRNlBVakVlRmVzQUp1S05jcmhORk00VVJZK1Ru?=
 =?utf-8?B?RmxMWk9wS29UMHFoL0F6b0h4U2VNRHU3V3dQMmU1VTBveU9kMUREdGlOdVJ1?=
 =?utf-8?B?bHZkdjJTTEx6bVArbkxvd3RDczl3cXZodlRGMjZDNzJXVFdxYTJRWlZqZHBZ?=
 =?utf-8?B?UlZyblU1cmxEMkFKakQvZzU0RVhLOXZrWkVwYjRnRlhMWUhpZ3RGTFNGRXBK?=
 =?utf-8?B?ZUdvNUdyUzdYWDFUaHliVmo3Rkc5S2x0Q3hwN3ZtR1pjVzI2VFB6czk0dlha?=
 =?utf-8?B?bzZEcGhSWmRXV0tRd0ZBNUR5NjhtUmFJcFAwRzF2ZVQ5ZEJVdXJOTHM4VE9v?=
 =?utf-8?B?NmtYWnRMTmJZR1VxVkY1QTYzN1BiZlZDQjU2ZlFpakdhYWtyNnMzb0t2TFhz?=
 =?utf-8?B?WWh2UkU2RzNxcDY5YTlNY3YxUit1ajNuZFNuZ1hlVjBKei90RGlMZDFUcGVi?=
 =?utf-8?B?a3JwNmwxYzFvVC9yNHUzMUwvMFlVV1MweHdqNkg0bi9XRmxLOXNZL1RYN2hP?=
 =?utf-8?B?TTk2U3Q2QjJhQy9VYU9rZHAybXVYWWtIK2dPU3BZcWx0L3AyQWR6TDdVYTJ1?=
 =?utf-8?B?OEtZWTBWUFlObEhqN2tFOVBtb004dHBaNFM1amlKeHoxcFhKamJYTnluLzNI?=
 =?utf-8?B?NDF1bDEwREVqS1JxNmY0SkVMNFYzM094bGE5b2swWE01SDRVRkY5T0wrMkov?=
 =?utf-8?B?NTAzRlRwTFBFZTRRT2hWL29PU2ZyRHF2QVJGc1UxeDRtcXlQb1RhVTZqc1ZJ?=
 =?utf-8?B?T0o3bFpPRWhubTJWbTY1RitqNlpwd0NUcjlHTElNK0ZhbGhFVHJ5ajZlcUNj?=
 =?utf-8?B?ZjZUd2ZodG0vUFprUm5mWDE2Y0gyOHYvb1pTR255b0xad1lUeUl0b3I3YTRT?=
 =?utf-8?B?ZkxqelN5MEJIQk5aME00Y0JFdWV0TkJUVXJRK3ZXbk9KdnV3aGJVclcvMzlI?=
 =?utf-8?B?T3M2MFV6aUdCVWR2aCt4TzBzSlJKdk5LWFYxOGl3WTdKY3E1Y2xSQUJPZ3FG?=
 =?utf-8?B?QkJLL0k2bkRCVzhkdm1WMEFkdXhuYlFMWkpxd3B1Y1N3VWlFeTdtU0plcHZs?=
 =?utf-8?B?b1RmZy9kdmExZnhwZFF3OVhDQ0s5RmZSVXRMSmc3RkdpM0pwVklueDl4YUlL?=
 =?utf-8?B?allRajhCZWt4a3JKZ3NKcjBLZzdUTU9peGdudUM2bkRnYXFxV1o2TkxkOE9m?=
 =?utf-8?B?Mk9VOGl0bUhheHpTUmo2bFd6bDMzY3hWdTUzV2NuUVUrZnJGa2xNUElaR00w?=
 =?utf-8?B?RFNaL0I3dERDLzZIMS9pYUtZUHdaM0hGZUxUdjdwZCsxeWlMdFVFVnNqRHVZ?=
 =?utf-8?B?dS8zZjNtS2ZHTk5hYzE2ckxuUjFGRm5VZmUrYzVPanAwTTZqN3p3TE1tQlhR?=
 =?utf-8?B?MkZBdnpZcDhpQUQ5akhJZ0JVSXVuSFFQVSs4UWs2RW41TDZqTkx1Vjk1V1Mv?=
 =?utf-8?B?cS9UZG4yeEdJd2hIZ3A2cGFHMDQ4NXY4ZFZEK1o4a3lnRkduby9JT1cwaWNm?=
 =?utf-8?B?aktMR1VBNTR5eGpXZGJweHh2OW04aWk1cXFBNDdEWDY5N0N6NmVDbHdoNGRw?=
 =?utf-8?B?dVl6dU90WmNRPT0=?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB7PR08MB2987.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: <9973B1466AB8EB48BE599C4166B48289@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR08MB9474
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AMS0EPF000001B2.eurprd05.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	e26ec59d-5dbc-4bd0-fa02-08dd7bf2dc89
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|35042699022|82310400026|14060799003|36860700013|1800799024|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?OTVtWkpHRWRjaTdOZDM0NVd0eUpZNmpRTDZ6YVhjenVpVmIwRzZoN0t3Ukxl?=
 =?utf-8?B?Ums5Q2cwRlgwdnFIL21YQkg3V21KVHBRb1lhUTR4ZHRmKzNRV1JqQjBjRDZK?=
 =?utf-8?B?azhxV1h1d2ppMFdZUmRDclNVOG5GcTFaRDQxTDJMWXdSSExjdEVCbHpDemRO?=
 =?utf-8?B?Sjg0SzluUThRR0RZMFVrTzc3NHhZTURHWVpRcmJjQVo5NlYwZVo5S3dEOTJr?=
 =?utf-8?B?MURyYkE3UTFveTBzS3lmK0tjT0YzYzJuRFhLNHJVb2R3dkdEclRac0NQYWc4?=
 =?utf-8?B?UTlXS3VZbDJuY2FSRlVUekVtTDFGWWlvajN3YW14M21Ib2hXTXVyOE82SFdn?=
 =?utf-8?B?anhrMXNpS0dHcXFlYURNL3NWQlNMYS8wWGMxZkY3WU1hbk54RDZiZ2FGNUxN?=
 =?utf-8?B?ckRLMmFKd2JZSXJkeHIrb1Rvbkh0dVB4VDdRUzhYaCs3VlF5TTRSR3N3Njdj?=
 =?utf-8?B?Q0pjZDhPdWFKQ2FwSFY5V0x0QitDSk9pS0VqckdGaWw3a3JTald0RHc4Y0Rn?=
 =?utf-8?B?RWFEVEtyTDhQRHd5MUVTcW9MOWZlcFpsWGYreWNib2RFeU4zR1RJSW9UTU1C?=
 =?utf-8?B?aGRHa3pzMVBRVXNZRXlzMnVBOGh6V0dBTmlOeXZrVUxldjQ1V1lRTGJ1WldQ?=
 =?utf-8?B?QlQ3TDdDN2VBVmEzcUtDQ2d0aUd0VllvTVgwY3QwKzB5UjgvS2s2TTA3MjJQ?=
 =?utf-8?B?M3RyYk9KMjlmSHpKeUFQWlJMMXhhVGM1Nmc3cHRLODg2MUJCOEQwdHBGbkZC?=
 =?utf-8?B?Z2JjUGF6U2VEM1p5L204dWJ2K0dPSDVLVExQSnJoalRCeGgzWWt0VUs0am9i?=
 =?utf-8?B?aFdxV05Kc2dXTG9kTURjWkV6Z2dmaWtKSThRTEg5SGNteTlDejZMeUpid1Zt?=
 =?utf-8?B?ZnJqMWhnQVlDbWJyQmtrS2d2Nmx4R29UYlc0Ti82dDNDaldMRHNMYWxBZng5?=
 =?utf-8?B?cHB2SU1xbG0xcDdib1k0UFI2S1ZjRGRVNVdHbjUwZjAraEx3NTdXWFhJbGhT?=
 =?utf-8?B?WGNmYk9PS1VNZUlnbm1Lc1h5WDdhYXBMd090NURQZXAyOGZnS0Y4NXhwRVY0?=
 =?utf-8?B?bmNxUWJ6ZHZCOXdCb05WWEh2RVUzenZmYUNvZlVyQWNZQWw4RmtnZDkyZ2Rq?=
 =?utf-8?B?YmNZMVpRSVVjYzFkZlRKemxpVlhsY1pibVAycDBaeFZzMkoxMGZqNVB5UnA4?=
 =?utf-8?B?dUdYR3hPR0tpNENMZUkrZVlNN3MwSGN4R0NiUkhEenRhSjBFK2MwOHhqa1Va?=
 =?utf-8?B?a2RjYVRlR0VPdVRoSW1Kck5DVFFlZWZCd2hYYUpvZ08ra2dQaEUxdUxLM2ZF?=
 =?utf-8?B?N2ZsbGlQeUwrM0ZnK1dRWnRrdGZuUmtsWGU0SDFNSXNzeEd5eWhzQWhZT2ZC?=
 =?utf-8?B?MnRpbDFBa0VvZmFlaGFyLzROZ08yY2FtaDVaVzFzTTFPUklYYzhHdTBYVVFD?=
 =?utf-8?B?dG5Ebnp4ekV3UHNocGIreXdrbE5LSDFsUlRnekh1M05HTC9EVUJHMzV2MVB6?=
 =?utf-8?B?WjdDTXZHOTl3NVVMemRDZkRlRVhlajJKN1ByKzV1Z0I1cG91d2RTZTRYSVg5?=
 =?utf-8?B?NG1UcGVmNzFlTGpuaC81OUZzN01oYmxCZUFjMmJIZ0ZWRGE2NGNUWHFLajEy?=
 =?utf-8?B?djRiMnBycUNsbGgyMDk5bGNCcC9NWm90dUFRNnNCVWo0SzBsbUtIRENPRDda?=
 =?utf-8?B?bDNPZUFSSzFmUFZoSzZHaFBuQVl6T29ZWXNld2xSSXFJY1pXa0xDWk9qQ04y?=
 =?utf-8?B?dkMrQzI3SWNvcnhncm1HNG9NTUFLTWFPZEw2MCs2VVNobkxVM1dHYm9UbnFM?=
 =?utf-8?B?NFdweWZBUERqVC9hc1hEMzJvd0c5OTcxc25ycXJKK1BBT1Uya25qVUE1OVdz?=
 =?utf-8?B?Z2pzajZyZzlicmEzREpxcUJXaUxialZaaHZxbFRpdXc0YmFubEdNVFNSL1dZ?=
 =?utf-8?B?M0sxNjZaMlM3SDFaVFllVUh2Q3pmaWFRUXRMMWZQTzlEUGxPRkxobjlzZ2ZZ?=
 =?utf-8?B?T1NpSjFTZ0tEb2QwR1ZlVHczTnN0eStPZDY2ZUlpNGRRR0dHSXpyOUNZRVBv?=
 =?utf-8?Q?wIu5/p?=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(35042699022)(82310400026)(14060799003)(36860700013)(1800799024)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Apr 2025 07:55:49.9689
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 5858de2b-8714-4688-1862-08dd7bf2f051
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AMS0EPF000001B2.eurprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR08MB6099

SGkgSnVsaWVuLA0KDQo+Pj4+ICtzdGF0aWMgdm9pZCBfX2luaXQgc2V0dXBfbXB1KHZvaWQpDQo+
Pj4+ICt7DQo+Pj4+ICsgICAgcmVnaXN0ZXJfdCBwcmVucjsNCj4+Pj4gKyAgICB1bnNpZ25lZCBp
bnQgaSA9IDA7DQo+Pj4+ICsNCj4+Pj4gKyAgICAvKg0KPj4+PiArICAgICAqIE1QVUlSX0VMMi5S
ZWdpb25bMDo3XSBpZGVudGlmaWVzIHRoZSBudW1iZXIgb2YgcmVnaW9ucyBzdXBwb3J0ZWQgYnkN
Cj4+Pj4gKyAgICAgKiB0aGUgRUwyIE1QVS4NCj4+Pj4gKyAgICAgKi8NCj4+Pj4gKyAgICBtYXhf
eGVuX21wdW1hcCA9ICh1aW50OF90KShSRUFEX1NZU1JFRyhNUFVJUl9FTDIpICYgTlVNX01QVV9S
RUdJT05TX01BU0spOw0KPj4+PiArDQo+Pj4+ICsgICAgLyogUFJFTlJfRUwyIGhhcyB0aGUgTiBi
aXQgc2V0IGlmIHRoZSBOIHJlZ2lvbiBpcyBlbmFibGVkLCBOIDwgMzIgKi8NCj4+Pj4gKyAgICBw
cmVuciA9IChSRUFEX1NZU1JFRyhQUkVOUl9FTDIpICYgUFJFTlJfTUFTSyk7DQo+Pj4+ICsNCj4+
Pj4gKyAgICAvKg0KPj4+PiArICAgICAqIFNldCB0aGUgYml0ZmllbGQgZm9yIHJlZ2lvbnMgZW5h
YmxlZCBpbiBhc3NlbWJseSBib290LXRpbWUuDQo+Pj4+ICsgICAgICogVGhpcyBjb2RlIHdvcmtz
IHVuZGVyIHRoZSBhc3N1bXB0aW9uIHRoYXQgdGhlIGNvZGUgaW4gaGVhZC5TIGhhcw0KPj4+PiAr
ICAgICAqIGFsbG9jYXRlZCBhbmQgZW5hYmxlZCByZWdpb25zIGJlbG93IDMyIChOIDwgMzIpLg0K
Pj4+PiArDQo+Pj4gVGhpcyBpcyBhIGJpdCBmcmFnaWxlLiBJIHRoaW5rIGl0IHdvdWxkIGJlIGJl
dHRlciBpZiB0aGUgYml0bWFwIGlzIHNldCBieSBoZWFkLlMgYXMgd2UgYWRkIHRoZSByZWdpb25z
LiBTYW1lIGZvciAuLi4NCj4+IFNvLCBJIHdhcyB0cnlpbmcgdG8gYXZvaWQgdGhhdCBiZWNhdXNl
IGluIHRoYXQgY2FzZSB3ZSBuZWVkIHRvIHBsYWNlIHhlbl9tcHVtYXAgb3V0IG9mIHRoZSBCU1Mg
YW5kIHN0YXJ0DQo+PiBtYW5pcHVsYXRpbmcgdGhlIGJpdG1hcCBmcm9tIGFzbSwgaW5zdGVhZCBJ
IHdhcyBob3BpbmcgdG8gdXNlIHRoZSBDIGNvZGUsIEkgdW5kZXJzdGFuZCB0aGF0IGlmIHNvbWVv
bmUNCj4+IHdhbnRzIHRvIGhhdmUgbW9yZSB0aGFuIDMxIHJlZ2lvbiBhcyBib290IHJlZ2lvbiB0
aGlzIG1pZ2h0IGJyZWFrLCBidXQgaXTigJlzIGFsc28gYSBiaXQgdW5saWtlbHk/DQo+IA0KPiBU
aGUgMzEgaXMgb25seSBwYXJ0IG9mIHRoZSBwcm9ibGVtLiBUaGUgb3RoZXIgcHJvYmxlbSBpcyB0
aGVyZSBpcyBhdCBsZWFzdCBvbmUgb3RoZXIgcGxhY2VzIGluIFhlbiAoaS5lLiBhcyBlYXJseV9m
ZHRfbWFwKCkpIHdoaWNoIHdpbGwgYWxzbyBjcmVhdGUgYW4gZW50cnkgaW4gdGhlIE1QVSBiZWZv
cmUgc2V0dXBfbW0oKS9zZXR1cF9tcHUoKSBpcyBjYWxsZWQuIEkgYW0gYSBiaXQgY29uY2VybmVk
IHRoYXQgdGhlIGFzc3VtcHRpb24gaXMgZ29pbmcgdG8gc3ByZWFkIGFuZCB5ZXQgd2UgaGF2ZSBu
byB3YXkgdG8gcHJvZ3JhbW1hdGljYWxseSBjaGVjayBpZiB0aGlzIHdpbGwgYmUgYnJva2VuLg0K
DQpJZiB3ZSB3b3VsZCBsaWtlIHRvIGZpbmQgd2F5cywgd2UgY291bGQgY2hlY2sgZXZlbnR1YWxs
eSBmb3IgY2xhc2hlcyBvbiBlbmFibGVkIE1QVSByZWdpb25zOw0Kc28gdGhlIG9ubHkgcGFydCB3
aGVyZSBhIHJlZ2lvbiBpcyBjcmVhdGVkIGluIHRoZSBDIHdvcmxkIHdpdGhvdXQgdGhlIGFzc2lz
dGFuY2Ugb2YgeGVuX21wdW1hcCBpcyBlYXJseV9mZHRfbWFwKCksDQphc3NlcnRzIGV0YyBjb3Vs
ZCBiZSB1c2VkIGluIG9uZSBvciBib3RoIHNldHVwX21wdSBhbmQgZWFybHlfZmR0X21hcCB0byBw
cmV2ZW50IGJyZWFrYWdlLg0KDQo+IA0KPiBGdXJ0aGVybW9yZSwgcmlnaHQgbm93LCB5b3UgYXJl
IGhhcmRjb2RpbmcgdGhlIHNsb3QgdXNlZCBhbmQgdXBkYXRpbmcgdGhlIE1QVS4gQnV0IGlmIHlv
dSBoYWQgdGhlIGJpdG1hcCB1cGRhdGVkLCB5b3UgY291bGQganVzdCBsb29rIHVwIGZvciBhIGZy
ZWUgc2xvdC4NCg0Kb2YgY291cnNlLCBidXQgc3RpbGwgdGhlIGVhcmx5IERUQiBtYXAgaXMgdGVt
cG9yYXJ5IGFuZCBpdCB3aWxsIGJlIGdvbmUgYWZ0ZXIgYm9vdCwgc28gaXQgd29u4oCZdCBpbXBh
Y3QgbXVjaCB1bmxlc3MgSeKAmW0NCm1pc3Npbmcgc29tZXRoaW5nLiANCg0KPiANCj4+IFNvIEkg
d2FzIGJhbGFuY2luZyB0aGUgcHJvcyB0byBtYW5pcHVsYXRlIGV2ZXJ5dGhpbmcgZnJvbSB0aGUg
QyB3b3JsZCBhZ2FpbnN0IHRoZSBjb25zIChib290IHJlZ2lvbiA+IDMxKS4NCj4+IElzIGl0IHN0
aWxsIHlvdXIgcHJlZmVycmVkIHdheSB0byBoYW5kbGUgZXZlcnl0aGluZyBmcm9tIGFzbT8NCj4g
DQo+IFllcy4gSSBkb24ndCB0aGluayB0aGUgY2hhbmdlIGluIGFzbSB3aWxsIGJlIGxhcmdlIGFu
ZCB0aGlzIHdvdWxkIGFsbG93IHRvIHJlbW92ZSBvdGhlciBhc3N1bXB0aW9ucyAobGlrZSBpbiB0
aGUgRkRUIG1hcHBpbmcgY29kZSkuDQoNCm5vdCBsYXJnZSwgYnV0IHN0aWxsIHNvbWV0aGluZyB0
byBiZSBtYWludGFpbmVkLCB3ZSB3aWxsIG5lZWQgYXJtNjQvYXJtMzIgY29kZSB0byBzZXQvY2xl
YXIgYml0cyBvbiB0aGUgYml0bWFwDQooY2F1c2luZyBkdXBsaWNhdGlvbiB3aXRoIGJpdG9wcy5j
KSwgY29kZSB0byBzYXZlIHRoaW5ncyBvbiB0aGUgeGVuX21wdW1hcCwgY29kZSB0byBjbGVhbi9p
bnZhbGlkYXRlIGRjYWNoZSBmb3IgdGhlIGVudHJpZXMgaW4geGVuX21wdW1hcCBhbmQgZmluYWxs
eSB3ZSB3aWxsIG5lZWQgdG8ga2VlcCB0aGUgY29kZSBhbGlnbmVkIHRvIHRoZSBpbXBsZW1lbnRh
dGlvbiBvZiB0aGUgYml0bWFwDQood2hpY2ggaXMgZmFpcmx5IHN0YWJsZSwgYnV0IHN0aWxsIG5l
ZWRzIHRvIGJlIHRha2VuIGludG8gYWNjb3VudCkuDQoNCj4gDQo+IEFzIGEgc2lkZSBub3RlLCBJ
IG5vdGljZWQgdGhhdCB0aGUgTVBVIGVudHJpZXMgYXJlIG5vdCBjbGVhcmVkIGJlZm9yZSB3ZSBl
bmFibGUgdGhlIE1QVS4gSXMgdGhlcmUgYW55dGhpbmcgaW4gdGhlIGJvb3QgcHJvdG9jb2wgdGhh
dCBndWFyYW50ZWUgYWxsIHRoZSBlbnRyaWVzIHdpbGwgYmUgaW52YWxpZD8gSWYgbm90LCB0aGVu
IEkgdGhpbmsgd2UgbmVlZCB0byBjbGVhciB0aGUgZW50cmllcy4NCj4gDQo+IE90aGVyd2lzZSwg
eW91ciBjdXJyZW50IGxvZ2ljIGRvZXNuJ3Qgd29yay4gVGhhdCBzYWlkLCBJIHRoaW5rIGl0IHdv
dWxkIHN0aWxsIGJlIG5lY2Vzc2FyeSBldmVuIGlmIHdlIGdldCByaWQgb2YgeW91ciBsb2dpYyBi
ZWNhdXNlIHdlIGRvbid0IGtub3cgdGhlIGNvbnRlbnQgb2YgdGhlIE1QVSBlbnRyaWVzLg0KDQpU
aGUgUFJMQVIuRU4gYml0IHJlc2V0cyB0byB6ZXJvIG9uIGEgd2FybSByZXNldCwgc28gYW55IHJl
Z2lvbiB3aWxsIGJlIGFsd2F5cyBkaXNhYmxlZCB1bmxlc3MgcHJvZ3JhbW1lZCwgSSB0aG91Z2h0
IGl0IGlzIGVub3VnaC4NCg0KQ2hlZXJzLA0KTHVjYQ0KDQo=


From xen-devel-bounces@lists.xenproject.org Tue Apr 15 07:56:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 07:56:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.952226.1347746 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4b9a-0006KQ-RW; Tue, 15 Apr 2025 07:56:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 952226.1347746; Tue, 15 Apr 2025 07: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 1u4b9a-0006KF-OD; Tue, 15 Apr 2025 07:56:22 +0000
Received: by outflank-mailman (input) for mailman id 952226;
 Tue, 15 Apr 2025 07:56: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=0g1d=XB=gmail.com=sultanovandriy@srs-se1.protection.inumbo.net>)
 id 1u4b9Z-0005zx-Ia
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 07:56:21 +0000
Received: from mail-wm1-x329.google.com (mail-wm1-x329.google.com
 [2a00:1450:4864:20::329])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1d7c5541-19cf-11f0-9ffb-bf95429c2676;
 Tue, 15 Apr 2025 09:56:19 +0200 (CEST)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-43ce71582e9so42255475e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 15 Apr 2025 00:56:19 -0700 (PDT)
Received: from [192.168.0.18]
 (cpc92320-cmbg19-2-0-cust1786.5-4.cable.virginm.net. [82.13.70.251])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43f235b050fsm205717085e9.40.2025.04.15.00.56.17
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 15 Apr 2025 00:56: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: 1d7c5541-19cf-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1744703779; x=1745308579; 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=D3qT7lZ6wYNs5aL82TRAFgnicl/JTUH1PYLikDCBGHo=;
        b=XxIED8W7+rhyLAJzUtbeZH0drHTcsL3wYV/CaKM4e07zntRVEvXMtHBHI1OQa8vnBk
         FTLYmfaUIKwzbH9u5MHQ/hW4JVKSM34Kz6faYTnNvN83Mi0j8BcKhkXa0yuID8dciL91
         51uwBt60OuMjn0cvumEiz2dXJFCbu9PO9vC1qT9ZDOpzdcYwbwJ5pE/qptRcKHIALwB1
         8LwlWSqorOCv5bVZGBBTC3CtPFesLhJViu/Q7Q9DIa46EHY3xi82fcDYmXxXXzz34nWu
         KLLri3w1GgGTrofPRjf8Ay+6HDB316JQ9dLY+rlFVvX3kKxVlk9TbPCADfpeo9Tr7lr8
         qtXA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744703779; x=1745308579;
        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=D3qT7lZ6wYNs5aL82TRAFgnicl/JTUH1PYLikDCBGHo=;
        b=jW8vqo6SDKAxpRWBmuNu2I8jGjZIPafRsJA5ds1snc7wu4BUjHaAe5VLhS+ikor4fN
         3n+rRalxPEJGhs9Rdbep9q8e5j6GxsyNkTjsYVHf/XoOi/hRriTD2XCpeDEmLs/gKjk7
         nktFAHfYE73X1HSR+RKWDryg4nrDNaR/avynMQ2nIUO7FEeuee01zvtwQdQKuLUK2JmA
         LC4ioKfPkKQHRsqKep7A/Mw82XEBTFlcnwOn3b6pFemHMx4nw06kXm5zi8NexipS5B3G
         FhlkkYUGKpiiqXB2zBQ7KxhtJpWErbPaiwXwYoIUb8NnYRTQtxazxIb8Ie88yVyJ6QAL
         Wzyw==
X-Gm-Message-State: AOJu0Yxtau9srxd2Z8NRglxLq2JEbBY0h3f8tjGuRA1IlpOhbccPq4o6
	MIwRbOikygXKyOIno8iYJsfJrT411XIGPdSMGXwHwgR2UXIPGqBd
X-Gm-Gg: ASbGnctE/qL5PibQAaGykvmFUGPoG+xL5sfUycsNLR+NUjuTb7nN4WpI61ccu7Rv4gn
	lYDozM5Sd6SDOo2xvUQgOqNLKFHkbpWI4BMopz3OLbhfxpVdj3aBMk1s8e4cfNVYtBmQ94OMwp+
	iUP9hZr6e/HRLYJQR83gGVclwfV504innh+hvW3xAlbwBTpjykZjcpSxS3SSfdefeck+d1J6M0f
	HtMozmN7X+6KQ8U1Ot1leD0yuEf4iIJfQKObkHiOtL2IaFyJohPUFzpl2AMF2LmQhht2YZxPMWY
	g6ZLljQ3ojAwa02/SoviB9zRzXsHZF8jYMaPKxYYOTTKeDWoKYp9oabvBr8A82gxaWxqXnGeVfs
	oI6OLDZSXyauo3sW14iUUiilzZ9JT1FM=
X-Google-Smtp-Source: AGHT+IEgyAzCH1F9qaK+EcUTcKfvapWzlndZ412BNEkZGFER8PURicE6QuBF+5vBnqWkQWet/zU0kQ==
X-Received: by 2002:a5d:64a9:0:b0:39c:2264:43ea with SMTP id ffacd0b85a97d-39ea51d36a4mr12068312f8f.3.1744703778303;
        Tue, 15 Apr 2025 00:56:18 -0700 (PDT)
Message-ID: <0fd070a8-8045-4df1-a1d6-c9701e3deba1@gmail.com>
Date: Tue, 15 Apr 2025 08:56:16 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 1/3] drivers: Change amd_iommu struct to contain
 pci_sbdf_t, simplify code
To: dmkhn@proton.me
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <cover.1744657012.git.andriy.sultanov@vates.tech>
 <40f504017d71c16a3e2bc8945ac5e674a3e791ed.1744657012.git.andriy.sultanov@vates.tech>
 <Z/4MCopF/j5357Mf@starscream>
Content-Language: en-US
From: Andriy Sultanov <sultanovandriy@gmail.com>
In-Reply-To: <Z/4MCopF/j5357Mf@starscream>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 4/15/25 8:34 AM, dmkhn@proton.me wrote:
> On Mon, Apr 14, 2025 at 08:19:16PM +0100, Andrii Sultanov wrote:
>> From: Andrii Sultanov <sultanovandriy@gmail.com>
>>
>> Following on from 250d87dc3ff9 ("x86/msi: Change __msi_set_enable() to
>> take pci_sbdf_t"), make struct amd_iommu contain pci_sbdf_t directly
>> instead of specifying seg+bdf separately and regenerating sbdf_t from them,
>> which simplifies code.
>>
>> Bloat-o-meter reports:
>> add/remove: 0/0 grow/shrink: 4/13 up/down: 121/-377 (-256)
>> Function                                     old     new   delta
>> _einittext                                 22028   22092     +64
>> amd_iommu_prepare                            853     897     +44
>> __mon_lengths                               2928    2936      +8
>> _invalidate_all_devices                      133     138      +5
>> _hvm_dpci_msi_eoi                            157     155      -2
>> build_info                                   752     744      -8
>> amd_iommu_add_device                         856     844     -12
>> amd_iommu_msi_enable                          33      20     -13
>> update_intremap_entry_from_msi_msg           879     859     -20
>> amd_iommu_msi_msg_update_ire                 472     448     -24
>> send_iommu_command                           251     224     -27
>> amd_iommu_get_supported_ivhd_type             86      54     -32
>> amd_iommu_detect_one_acpi                    918     886     -32
>> iterate_ivrs_mappings                        169     129     -40
>> flush_command_buffer                         460     417     -43
>> set_iommu_interrupt_handler                  421     377     -44
>> enable_iommu                                1745    1665     -80
>>
>> Resolves: https://gitlab.com/xen-project/xen/-/issues/198
>>
>> Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
>> Signed-off-by: Andrii Sultanov <sultanovandriy@gmail.com>
>>
>> ---
>> Changes in V4:
>> * Dropped references to the order of seg/bdf in the commit message
>> * Dropped unnecessary detail from the commit message
>> * Reverted to a macro usage in one case where it was mistakenly dropped
>> * Folded several separate seg+bdf comparisons into a single one between
>>    sbdf_t, folded separate assignments with a macro.
>> * More code size improvements with the changes, so I've refreshed the
>>    bloat-o-meter report
>>
>> Changes in V3:
>> * Dropped the union with seg+bdf/pci_sbdf_t to avoid aliasing, renamed
>>    all users appropriately
>>
>> Changes in V2:
>> * Split single commit into several patches
>> * Added the commit title of the referenced patch
>> * Dropped brackets around &(iommu->sbdf) and &(sbdf)
>> ---
>>   xen/drivers/passthrough/amd/iommu.h         |  4 +--
>>   xen/drivers/passthrough/amd/iommu_acpi.c    | 16 +++++-----
>>   xen/drivers/passthrough/amd/iommu_cmd.c     |  8 ++---
>>   xen/drivers/passthrough/amd/iommu_detect.c  | 18 +++++------
>>   xen/drivers/passthrough/amd/iommu_init.c    | 35 ++++++++++-----------
>>   xen/drivers/passthrough/amd/iommu_intr.c    | 29 ++++++++---------
>>   xen/drivers/passthrough/amd/iommu_map.c     |  4 +--
>>   xen/drivers/passthrough/amd/pci_amd_iommu.c | 22 ++++++-------
>>   8 files changed, 67 insertions(+), 69 deletions(-)
>>
>> diff --git a/xen/drivers/passthrough/amd/iommu.h b/xen/drivers/passthrough/amd/iommu.h
>> index 00e81b4b2a..ba541f7943 100644
>> --- a/xen/drivers/passthrough/amd/iommu.h
>> +++ b/xen/drivers/passthrough/amd/iommu.h
>> @@ -77,8 +77,8 @@ struct amd_iommu {
>>       struct list_head list;
>>       spinlock_t lock; /* protect iommu */
>>
>> -    u16 seg;
>> -    u16 bdf;
>> +    pci_sbdf_t sbdf;
>> +
>>       struct msi_desc msi;
>>
>>       u16 cap_offset;
>> diff --git a/xen/drivers/passthrough/amd/iommu_acpi.c b/xen/drivers/passthrough/amd/iommu_acpi.c
>> index 5bdbfb5ba8..025d9be40f 100644
>> --- a/xen/drivers/passthrough/amd/iommu_acpi.c
>> +++ b/xen/drivers/passthrough/amd/iommu_acpi.c
>> @@ -58,7 +58,7 @@ static void __init add_ivrs_mapping_entry(
>>       uint16_t bdf, uint16_t alias_id, uint8_t flags, unsigned int ext_flags,
>>       bool alloc_irt, struct amd_iommu *iommu)
>>   {
>> -    struct ivrs_mappings *ivrs_mappings = get_ivrs_mappings(iommu->seg);
>> +    struct ivrs_mappings *ivrs_mappings = get_ivrs_mappings(iommu->sbdf.seg);
>>
>>       ASSERT( ivrs_mappings != NULL );
>>
>> @@ -70,7 +70,7 @@ static void __init add_ivrs_mapping_entry(
>>       ivrs_mappings[bdf].device_flags = flags;
>>
>>       /* Don't map an IOMMU by itself. */
>> -    if ( iommu->bdf == bdf )
>> +    if ( iommu->sbdf.bdf == bdf )
>>           return;
>>
>>       /* Allocate interrupt remapping table if needed. */
>> @@ -96,7 +96,7 @@ static void __init add_ivrs_mapping_entry(
>>
>>               if ( !ivrs_mappings[alias_id].intremap_table )
>>                   panic("No memory for %pp's IRT\n",
>> -                      &PCI_SBDF(iommu->seg, alias_id));
>> +                      &PCI_SBDF(iommu->sbdf.seg, alias_id));
>>           }
>>       }
>>
>> @@ -112,7 +112,7 @@ static struct amd_iommu * __init find_iommu_from_bdf_cap(
>>       struct amd_iommu *iommu;
>>
>>       for_each_amd_iommu ( iommu )
>> -        if ( (iommu->seg == seg) && (iommu->bdf == bdf) &&
>> +        if ( (iommu->sbdf.seg == seg) && (iommu->sbdf.bdf == bdf) &&
> Perhaps something like
>
>             if ( (iommu->sbdf.sbdf == PCI_SBDF(seg, bdf).sbdf &&
>
> ?
>
>>                (iommu->cap_offset == cap_offset) )
>>               return iommu;
>>
>> @@ -297,13 +297,13 @@ static int __init register_range_for_iommu_devices(
>>       /* reserve unity-mapped page entries for devices */
>>       for ( bdf = rc = 0; !rc && bdf < ivrs_bdf_entries; bdf++ )
>>       {
>> -        if ( iommu != find_iommu_for_device(iommu->seg, bdf) )
>> +        if ( iommu != find_iommu_for_device(iommu->sbdf.seg, bdf) )
>>               continue;
>>
>> -        req = get_ivrs_mappings(iommu->seg)[bdf].dte_requestor_id;
>> -        rc = reserve_unity_map_for_device(iommu->seg, bdf, base, length,
>> +        req = get_ivrs_mappings(iommu->sbdf.seg)[bdf].dte_requestor_id;
>> +        rc = reserve_unity_map_for_device(iommu->sbdf.seg, bdf, base, length,
>>                                             iw, ir, false) ?:
>> -             reserve_unity_map_for_device(iommu->seg, req, base, length,
>> +             reserve_unity_map_for_device(iommu->sbdf.seg, req, base, length,
>>                                             iw, ir, false);
>>       }
>>
>> diff --git a/xen/drivers/passthrough/amd/iommu_cmd.c b/xen/drivers/passthrough/amd/iommu_cmd.c
>> index 83c525b84f..eefd626161 100644
>> --- a/xen/drivers/passthrough/amd/iommu_cmd.c
>> +++ b/xen/drivers/passthrough/amd/iommu_cmd.c
>> @@ -40,7 +40,7 @@ static void send_iommu_command(struct amd_iommu *iommu,
>>                        IOMMU_RING_BUFFER_PTR_MASK) )
>>       {
>>           printk_once(XENLOG_ERR "AMD IOMMU %pp: no cmd slot available\n",
>> -                    &PCI_SBDF(iommu->seg, iommu->bdf));
>> +                    &iommu->sbdf);
>>           cpu_relax();
>>       }
>>
>> @@ -85,7 +85,7 @@ static void flush_command_buffer(struct amd_iommu *iommu,
>>               threshold |= threshold << 1;
>>               printk(XENLOG_WARNING
>>                      "AMD IOMMU %pp: %scompletion wait taking too long\n",
>> -                   &PCI_SBDF(iommu->seg, iommu->bdf),
>> +                   &iommu->sbdf,
>>                      timeout_base ? "iotlb " : "");
>>               timeout = 0;
>>           }
>> @@ -95,7 +95,7 @@ static void flush_command_buffer(struct amd_iommu *iommu,
>>       if ( !timeout )
>>           printk(XENLOG_WARNING
>>                  "AMD IOMMU %pp: %scompletion wait took %lums\n",
>> -               &PCI_SBDF(iommu->seg, iommu->bdf),
>> +               &iommu->sbdf,
>>                  timeout_base ? "iotlb " : "",
>>                  (NOW() - start) / 10000000);
>>   }
>> @@ -300,7 +300,7 @@ void amd_iommu_flush_iotlb(u8 devfn, const struct pci_dev *pdev,
>>       if ( !iommu_has_cap(iommu, PCI_CAP_IOTLB_SHIFT) )
>>           return;
>>
>> -    req_id = get_dma_requestor_id(iommu->seg, PCI_BDF(pdev->bus, devfn));
>> +    req_id = get_dma_requestor_id(iommu->sbdf.seg, PCI_BDF(pdev->bus, devfn));
>>       queueid = req_id;
>>       maxpend = pdev->ats.queue_depth & 0xff;
>>
>> diff --git a/xen/drivers/passthrough/amd/iommu_detect.c b/xen/drivers/passthrough/amd/iommu_detect.c
>> index cede44e651..72cc554b08 100644
>> --- a/xen/drivers/passthrough/amd/iommu_detect.c
>> +++ b/xen/drivers/passthrough/amd/iommu_detect.c
>> @@ -162,8 +162,8 @@ int __init amd_iommu_detect_one_acpi(
>>       spin_lock_init(&iommu->lock);
>>       INIT_LIST_HEAD(&iommu->ats_devices);
>>
>> -    iommu->seg = ivhd_block->pci_segment_group;
>> -    iommu->bdf = ivhd_block->header.device_id;
>> +    iommu->sbdf = PCI_SBDF(ivhd_block->pci_segment_group,
>> +                           ivhd_block->header.device_id);
>>       iommu->cap_offset = ivhd_block->capability_offset;
>>       iommu->mmio_base_phys = ivhd_block->base_address;
>>
>> @@ -210,16 +210,16 @@ int __init amd_iommu_detect_one_acpi(
>>       /* override IOMMU HT flags */
>>       iommu->ht_flags = ivhd_block->header.flags;
>>
>> -    bus = PCI_BUS(iommu->bdf);
>> -    dev = PCI_SLOT(iommu->bdf);
>> -    func = PCI_FUNC(iommu->bdf);
>> +    bus = PCI_BUS(iommu->sbdf.bdf);
>> +    dev = PCI_SLOT(iommu->sbdf.bdf);
>> +    func = PCI_FUNC(iommu->sbdf.bdf);
>>
>> -    rt = get_iommu_capabilities(iommu->seg, bus, dev, func,
>> +    rt = get_iommu_capabilities(iommu->sbdf.seg, bus, dev, func,
> I would update signature of get_iommu_capabilities() so it takes pci_sbdf_t
> as an agument instead of disaggregated PCI address. I think it will simplify
> the code futher.
>
>>                                   iommu->cap_offset, iommu);
>>       if ( rt )
>>           goto out;
>>
>> -    rt = get_iommu_msi_capabilities(iommu->seg, bus, dev, func, iommu);
>> +    rt = get_iommu_msi_capabilities(iommu->sbdf.seg, bus, dev, func, iommu);
> ... and same idea for get_iommu_msi_capabilities()
>
> What do you think?
>
>>       if ( rt )
>>           goto out;
>>
>> @@ -228,10 +228,10 @@ int __init amd_iommu_detect_one_acpi(
>>       if ( !iommu->domid_map )
>>           goto out;
>>
>> -    rt = pci_ro_device(iommu->seg, bus, PCI_DEVFN(dev, func));
>> +    rt = pci_ro_device(iommu->sbdf.seg, bus, PCI_DEVFN(dev, func));
> There's not so many users of pci_ro_device(). I think it makes sense to update
> pci_ro_device() to something like:
>
>      int pci_ro_device(pci_sbdf_t pciaddr);
>
> But probably in a separate code change.
>
>>       if ( rt )
>>           printk(XENLOG_ERR "Could not mark config space of %pp read-only (%d)\n",
>> -               &PCI_SBDF(iommu->seg, iommu->bdf), rt);
>> +               &iommu->sbdf, rt);
>>
>>       list_add_tail(&iommu->list, &amd_iommu_head);
>>       rt = 0;
>> diff --git a/xen/drivers/passthrough/amd/iommu_init.c b/xen/drivers/passthrough/amd/iommu_init.c
>> index bb25b55c85..58d657060a 100644
>> --- a/xen/drivers/passthrough/amd/iommu_init.c
>> +++ b/xen/drivers/passthrough/amd/iommu_init.c
>> @@ -409,9 +409,7 @@ static void iommu_reset_log(struct amd_iommu *iommu,
>>
>>   static void amd_iommu_msi_enable(struct amd_iommu *iommu, int flag)
>>   {
>> -    pci_sbdf_t sbdf = { .seg = iommu->seg, .bdf = iommu->bdf };
>> -
>> -    __msi_set_enable(sbdf, iommu->msi.msi_attrib.pos, flag);
>> +    __msi_set_enable(iommu->sbdf, iommu->msi.msi_attrib.pos, flag);
>>   }
>>
>>   static void cf_check iommu_msi_unmask(struct irq_desc *desc)
>> @@ -566,7 +564,7 @@ static void cf_check parse_event_log_entry(struct amd_iommu *iommu, u32 entry[])
>>
>>           printk(XENLOG_ERR "AMD-Vi: %s: %pp d%u addr %016"PRIx64
>>                  " flags %#x%s%s%s%s%s%s%s%s%s%s\n",
>> -               code_str, &PCI_SBDF(iommu->seg, device_id),
>> +               code_str, &PCI_SBDF(iommu->sbdf.seg, device_id),
>>                  domain_id, addr, flags,
>>                  (flags & 0xe00) ? " ??" : "",
>>                  (flags & 0x100) ? " TR" : "",
>> @@ -583,8 +581,8 @@ static void cf_check parse_event_log_entry(struct amd_iommu *iommu, u32 entry[])
>>               amd_iommu_print_entries(iommu, device_id, daddr_to_dfn(addr));
>>
>>           for ( bdf = 0; bdf < ivrs_bdf_entries; bdf++ )
>> -            if ( get_dma_requestor_id(iommu->seg, bdf) == device_id )
>> -                pci_check_disable_device(iommu->seg, PCI_BUS(bdf),
>> +            if ( get_dma_requestor_id(iommu->sbdf.seg, bdf) == device_id )
>> +                pci_check_disable_device(iommu->sbdf.seg, PCI_BUS(bdf),
>>                                            PCI_DEVFN(bdf));
>>       }
>>       else
>> @@ -643,7 +641,7 @@ static void cf_check parse_ppr_log_entry(struct amd_iommu *iommu, u32 entry[])
>>       struct pci_dev *pdev;
>>
>>       pcidevs_lock();
>> -    pdev = pci_get_real_pdev(PCI_SBDF(iommu->seg, device_id));
>> +    pdev = pci_get_real_pdev(PCI_SBDF(iommu->sbdf.seg, device_id));
>>       pcidevs_unlock();
>>
>>       if ( pdev )
>> @@ -752,12 +750,11 @@ static bool __init set_iommu_interrupt_handler(struct amd_iommu *iommu)
>>       }
>>
>>       pcidevs_lock();
>> -    iommu->msi.dev = pci_get_pdev(NULL, PCI_SBDF(iommu->seg, iommu->bdf));
>> +    iommu->msi.dev = pci_get_pdev(NULL, iommu->sbdf);
>>       pcidevs_unlock();
>>       if ( !iommu->msi.dev )
>>       {
>> -        AMD_IOMMU_WARN("no pdev for %pp\n",
>> -                       &PCI_SBDF(iommu->seg, iommu->bdf));
>> +        AMD_IOMMU_WARN("no pdev for %pp\n", &iommu->sbdf);
>>           return 0;
>>       }
>>
>> @@ -779,7 +776,7 @@ static bool __init set_iommu_interrupt_handler(struct amd_iommu *iommu)
>>           hw_irq_controller *handler;
>>           u16 control;
>>
>> -        control = pci_conf_read16(PCI_SBDF(iommu->seg, iommu->bdf),
>> +        control = pci_conf_read16(iommu->sbdf,
>>                                     iommu->msi.msi_attrib.pos + PCI_MSI_FLAGS);
>>
>>           iommu->msi.msi.nvec = 1;
>> @@ -843,22 +840,22 @@ static void amd_iommu_erratum_746_workaround(struct amd_iommu *iommu)
>>            (boot_cpu_data.x86_model > 0x1f) )
>>           return;
>>
>> -    pci_conf_write32(PCI_SBDF(iommu->seg, iommu->bdf), 0xf0, 0x90);
>> -    value = pci_conf_read32(PCI_SBDF(iommu->seg, iommu->bdf), 0xf4);
>> +    pci_conf_write32(iommu->sbdf, 0xf0, 0x90);
>> +    value = pci_conf_read32(iommu->sbdf, 0xf4);
>>
>>       if ( value & (1 << 2) )
>>           return;
>>
>>       /* Select NB indirect register 0x90 and enable writing */
>> -    pci_conf_write32(PCI_SBDF(iommu->seg, iommu->bdf), 0xf0, 0x90 | (1 << 8));
>> +    pci_conf_write32(iommu->sbdf, 0xf0, 0x90 | (1 << 8));
>>
>> -    pci_conf_write32(PCI_SBDF(iommu->seg, iommu->bdf), 0xf4, value | (1 << 2));
>> +    pci_conf_write32(iommu->sbdf, 0xf4, value | (1 << 2));
>>       printk(XENLOG_INFO
>>              "AMD-Vi: Applying erratum 746 workaround for IOMMU at %pp\n",
>> -           &PCI_SBDF(iommu->seg, iommu->bdf));
>> +           &iommu->sbdf);
>>
>>       /* Clear the enable writing bit */
>> -    pci_conf_write32(PCI_SBDF(iommu->seg, iommu->bdf), 0xf0, 0x90);
>> +    pci_conf_write32(iommu->sbdf, 0xf0, 0x90);
>>   }
>>
>>   static void enable_iommu(struct amd_iommu *iommu)
>> @@ -1095,7 +1092,7 @@ static int __init amd_iommu_init_one(struct amd_iommu *iommu, bool intr)
>>           goto error_out;
>>
>>       /* Make sure that the device table has been successfully allocated. */
>> -    ivrs_mappings = get_ivrs_mappings(iommu->seg);
>> +    ivrs_mappings = get_ivrs_mappings(iommu->sbdf.seg);
>>       if ( !IVRS_MAPPINGS_DEVTAB(ivrs_mappings) )
>>           goto error_out;
>>
>> @@ -1363,7 +1360,7 @@ static bool __init amd_sp5100_erratum28(void)
>>
>>   static int __init amd_iommu_prepare_one(struct amd_iommu *iommu)
>>   {
>> -    int rc = alloc_ivrs_mappings(iommu->seg);
>> +    int rc = alloc_ivrs_mappings(iommu->sbdf.seg);
>>
>>       if ( !rc )
>>           rc = map_iommu_mmio_region(iommu);
>> diff --git a/xen/drivers/passthrough/amd/iommu_intr.c b/xen/drivers/passthrough/amd/iommu_intr.c
>> index 9abdc38053..a7347fcbad 100644
>> --- a/xen/drivers/passthrough/amd/iommu_intr.c
>> +++ b/xen/drivers/passthrough/amd/iommu_intr.c
>> @@ -132,7 +132,7 @@ static int get_intremap_requestor_id(int seg, int bdf)
>>   static unsigned int alloc_intremap_entry(const struct amd_iommu *iommu,
>>                                            unsigned int bdf, unsigned int nr)
>>   {
>> -    const struct ivrs_mappings *ivrs_mappings = get_ivrs_mappings(iommu->seg);
>> +    const struct ivrs_mappings *ivrs_mappings = get_ivrs_mappings(iommu->sbdf.seg);
>>       unsigned long *inuse = ivrs_mappings[bdf].intremap_inuse;
>>       unsigned int nr_ents =
>>           intremap_table_entries(ivrs_mappings[bdf].intremap_table, iommu);
>> @@ -167,7 +167,7 @@ static union irte_ptr get_intremap_entry(const struct amd_iommu *iommu,
>>                                            unsigned int bdf, unsigned int index)
>>   {
>>       union irte_ptr table = {
>> -        .ptr = get_ivrs_mappings(iommu->seg)[bdf].intremap_table
>> +        .ptr = get_ivrs_mappings(iommu->sbdf.seg)[bdf].intremap_table
>>       };
>>
>>       ASSERT(table.ptr && (index < intremap_table_entries(table.ptr, iommu)));
>> @@ -184,7 +184,7 @@ static void free_intremap_entry(const struct amd_iommu *iommu,
>>                                   unsigned int bdf, unsigned int index)
>>   {
>>       union irte_ptr entry = get_intremap_entry(iommu, bdf, index);
>> -    struct ivrs_mappings *ivrs = get_ivrs_mappings(iommu->seg);
>> +    struct ivrs_mappings *ivrs = get_ivrs_mappings(iommu->sbdf.seg);
>>
>>       if ( iommu->ctrl.ga_en )
>>       {
>> @@ -281,8 +281,8 @@ static int update_intremap_entry_from_ioapic(
>>       unsigned int dest, offset;
>>       bool fresh = false;
>>
>> -    req_id = get_intremap_requestor_id(iommu->seg, bdf);
>> -    lock = get_intremap_lock(iommu->seg, req_id);
>> +    req_id = get_intremap_requestor_id(iommu->sbdf.seg, bdf);
>> +    lock = get_intremap_lock(iommu->sbdf.seg, req_id);
>>
>>       delivery_mode = rte->delivery_mode;
>>       vector = rte->vector;
>> @@ -419,10 +419,10 @@ static int update_intremap_entry_from_msi_msg(
>>       unsigned int dest, offset, i;
>>       bool fresh = false;
>>
>> -    req_id = get_dma_requestor_id(iommu->seg, bdf);
>> -    alias_id = get_intremap_requestor_id(iommu->seg, bdf);
>> +    req_id = get_dma_requestor_id(iommu->sbdf.seg, bdf);
>> +    alias_id = get_intremap_requestor_id(iommu->sbdf.seg, bdf);
>>
>> -    lock = get_intremap_lock(iommu->seg, req_id);
>> +    lock = get_intremap_lock(iommu->sbdf.seg, req_id);
>>       spin_lock_irqsave(lock, flags);
>>
>>       if ( msg == NULL )
>> @@ -486,10 +486,10 @@ static int update_intremap_entry_from_msi_msg(
>>        */
>>
>>       if ( ( req_id != alias_id ) &&
>> -         get_ivrs_mappings(iommu->seg)[alias_id].intremap_table != NULL )
>> +         get_ivrs_mappings(iommu->sbdf.seg)[alias_id].intremap_table != NULL )
>>       {
>> -        BUG_ON(get_ivrs_mappings(iommu->seg)[req_id].intremap_table !=
>> -               get_ivrs_mappings(iommu->seg)[alias_id].intremap_table);
>> +        BUG_ON(get_ivrs_mappings(iommu->sbdf.seg)[req_id].intremap_table !=
>> +               get_ivrs_mappings(iommu->sbdf.seg)[alias_id].intremap_table);
>>       }
>>
>>       return fresh;
>> @@ -498,16 +498,17 @@ static int update_intremap_entry_from_msi_msg(
>>   static struct amd_iommu *_find_iommu_for_device(int seg, int bdf)
>>   {
>>       struct amd_iommu *iommu;
>> +    pci_sbdf_t sbdf = PCI_SBDF(seg, bdf);
>>
>>       for_each_amd_iommu ( iommu )
>> -        if ( iommu->seg == seg && iommu->bdf == bdf )
>> +        if ( iommu->sbdf.sbdf == sbdf.sbdf )
>>               return NULL;
>>
>>       iommu = find_iommu_for_device(seg, bdf);
>>       if ( iommu )
>>           return iommu;
>>
>> -    AMD_IOMMU_DEBUG("No IOMMU for MSI dev = %pp\n", &PCI_SBDF(seg, bdf));
>> +    AMD_IOMMU_DEBUG("No IOMMU for MSI dev = %pp\n", &sbdf);
>>       return ERR_PTR(-EINVAL);
>>   }
>>
>> @@ -730,7 +731,7 @@ static void dump_intremap_table(const struct amd_iommu *iommu,
>>           if ( ivrs_mapping )
>>           {
>>               printk("  %pp:\n",
>> -                   &PCI_SBDF(iommu->seg, ivrs_mapping->dte_requestor_id));
>> +                   &PCI_SBDF(iommu->sbdf.seg, ivrs_mapping->dte_requestor_id));
>>               ivrs_mapping = NULL;
>>           }
>>
>> diff --git a/xen/drivers/passthrough/amd/iommu_map.c b/xen/drivers/passthrough/amd/iommu_map.c
>> index dde393645a..d28c475650 100644
>> --- a/xen/drivers/passthrough/amd/iommu_map.c
>> +++ b/xen/drivers/passthrough/amd/iommu_map.c
>> @@ -558,14 +558,14 @@ void amd_iommu_print_entries(const struct amd_iommu *iommu, unsigned int dev_id,
>>
>>       if ( !dt[dev_id].tv )
>>       {
>> -        printk("%pp: no root\n", &PCI_SBDF(iommu->seg, dev_id));
>> +        printk("%pp: no root\n", &PCI_SBDF(iommu->sbdf.seg, dev_id));
>>           return;
>>       }
>>
>>       pt_mfn = _mfn(dt[dev_id].pt_root);
>>       level = dt[dev_id].paging_mode;
>>       printk("%pp root @ %"PRI_mfn" (%u levels) dfn=%"PRI_dfn"\n",
>> -           &PCI_SBDF(iommu->seg, dev_id), mfn_x(pt_mfn), level, dfn_x(dfn));
>> +           &PCI_SBDF(iommu->sbdf.seg, dev_id), mfn_x(pt_mfn), level, dfn_x(dfn));
>>
>>       while ( level )
>>       {
>> diff --git a/xen/drivers/passthrough/amd/pci_amd_iommu.c b/xen/drivers/passthrough/amd/pci_amd_iommu.c
>> index d00697edb3..6b58e3380b 100644
>> --- a/xen/drivers/passthrough/amd/pci_amd_iommu.c
>> +++ b/xen/drivers/passthrough/amd/pci_amd_iommu.c
>> @@ -43,7 +43,7 @@ struct amd_iommu *find_iommu_for_device(int seg, int bdf)
>>       {
>>           unsigned int bd0 = bdf & ~PCI_FUNC(~0);
>>
>> -        if ( ivrs_mappings[bd0].iommu && ivrs_mappings[bd0].iommu->bdf != bdf )
>> +        if ( ivrs_mappings[bd0].iommu && ivrs_mappings[bd0].iommu->sbdf.bdf != bdf )
>>           {
>>               struct ivrs_mappings tmp = ivrs_mappings[bd0];
>>
>> @@ -121,7 +121,7 @@ static bool use_ats(
>>   {
>>       return !ivrs_dev->block_ats &&
>>              iommu_has_cap(iommu, PCI_CAP_IOTLB_SHIFT) &&
>> -           pci_ats_device(iommu->seg, pdev->bus, pdev->devfn);
>> +           pci_ats_device(iommu->sbdf.seg, pdev->bus, pdev->devfn);
> Same idea about updating signature to take pci_sbdf_t.
>
>>   }
>>
>>   static int __must_check amd_iommu_setup_domain_device(
>> @@ -147,17 +147,17 @@ static int __must_check amd_iommu_setup_domain_device(
>>       if ( rc )
>>           return rc;
>>
>> -    req_id = get_dma_requestor_id(iommu->seg, pdev->sbdf.bdf);
>> -    ivrs_dev = &get_ivrs_mappings(iommu->seg)[req_id];
>> +    req_id = get_dma_requestor_id(iommu->sbdf.seg, pdev->sbdf.bdf);
>> +    ivrs_dev = &get_ivrs_mappings(iommu->sbdf.seg)[req_id];
>>       sr_flags = (iommu_hwdom_passthrough && is_hardware_domain(domain)
>>                   ? 0 : SET_ROOT_VALID)
>>                  | (ivrs_dev->unity_map ? SET_ROOT_WITH_UNITY_MAP : 0);
>>
>>       /* get device-table entry */
>> -    req_id = get_dma_requestor_id(iommu->seg, PCI_BDF(bus, devfn));
>> +    req_id = get_dma_requestor_id(iommu->sbdf.seg, PCI_BDF(bus, devfn));
>>       table = iommu->dev_table.buffer;
>>       dte = &table[req_id];
>> -    ivrs_dev = &get_ivrs_mappings(iommu->seg)[req_id];
>> +    ivrs_dev = &get_ivrs_mappings(iommu->sbdf.seg)[req_id];
>>
>>       if ( domain != dom_io )
>>       {
>> @@ -275,7 +275,7 @@ static int __must_check amd_iommu_setup_domain_device(
>>       ASSERT(pcidevs_locked());
>>
>>       if ( use_ats(pdev, iommu, ivrs_dev) &&
>> -         !pci_ats_enabled(iommu->seg, bus, pdev->devfn) )
>> +         !pci_ats_enabled(iommu->sbdf.seg, bus, pdev->devfn) )
> ... and same for pci_ats_enabled()
>
>>       {
>>           if ( devfn == pdev->devfn )
>>               enable_ats_device(pdev, &iommu->ats_devices);
>> @@ -418,12 +418,12 @@ static void amd_iommu_disable_domain_device(const struct domain *domain,
>>
>>       ASSERT(pcidevs_locked());
>>
>> -    if ( pci_ats_device(iommu->seg, bus, pdev->devfn) &&
>> -         pci_ats_enabled(iommu->seg, bus, pdev->devfn) )
>> +    if ( pci_ats_device(iommu->sbdf.seg, bus, pdev->devfn) &&
>> +         pci_ats_enabled(iommu->sbdf.seg, bus, pdev->devfn) )
>>           disable_ats_device(pdev);
>>
>>       BUG_ON ( iommu->dev_table.buffer == NULL );
>> -    req_id = get_dma_requestor_id(iommu->seg, PCI_BDF(bus, devfn));
>> +    req_id = get_dma_requestor_id(iommu->sbdf.seg, PCI_BDF(bus, devfn));
>>       table = iommu->dev_table.buffer;
>>       dte = &table[req_id];
>>
>> @@ -578,7 +578,7 @@ static int cf_check amd_iommu_add_device(u8 devfn, struct pci_dev *pdev)
>>           return -EINVAL;
>>
>>       for_each_amd_iommu(iommu)
>> -        if ( pdev->seg == iommu->seg && pdev->sbdf.bdf == iommu->bdf )
>> +        if ( pdev->sbdf.sbdf == iommu->sbdf.sbdf )
>>               return is_hardware_domain(pdev->domain) ? 0 : -ENODEV;
>>
>>       iommu = find_iommu_for_device(pdev->seg, pdev->sbdf.bdf);
>> --
>> 2.49.0
>>
>>
I'll leave pci_ats_device and similar functions from directories above 
passthrough/amd for the next cleanup in a separate patch. Will change 
local functions like get_iommu.*_capabilities and resend.


Thank you!



From xen-devel-bounces@lists.xenproject.org Tue Apr 15 07:58:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 07:58:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.952246.1347756 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4bBA-000779-9B; Tue, 15 Apr 2025 07:58:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 952246.1347756; Tue, 15 Apr 2025 07:58: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 1u4bBA-000772-5x; Tue, 15 Apr 2025 07:58:00 +0000
Received: by outflank-mailman (input) for mailman id 952246;
 Tue, 15 Apr 2025 07:57: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=Xs7D=XB=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u4bB7-00076k-Hh
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 07:57:58 +0000
Received: from mail-4316.protonmail.ch (mail-4316.protonmail.ch [185.70.43.16])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 54ffeee6-19cf-11f0-9ffb-bf95429c2676;
 Tue, 15 Apr 2025 09:57:52 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 54ffeee6-19cf-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1744703871; x=1744963071;
	bh=oEH7nePpt4B7CtrSrvTMhCw4jjpkMYzl1UwBaoOGLrw=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=Fx0SqhiBRCa6NFe/iXPeXqKbDUVvGzgTz5aeRMZoDqyiuqkOx/h5h+JwOlsfSGQjF
	 Ug8qdOwNm0zXztZJQN9aLGnwR2IMZx56d/c3O/VSvFzpV0/Y2zlWBCyt7CA/aprdah
	 VAdE5ypnNNSZJUP10IbPl/u5O0UdtDb/x1kVELBQoDa9lD5xlwnXR6pssjhPl3tI9p
	 7YYRWhRCvKxkkS8vBgrL4KLnw0n7tfavZ6Z+tH5kBJYP0MT4Nj131ukBdpfVorYh7+
	 7P3Hto0tGy41/azUY09ejQev9yyuxNbiokg9Tj3WLUdygj90cjVbZqCZsyx4157Z58
	 A8LuvMy3+Disg==
Date: Tue, 15 Apr 2025 07:57:47 +0000
To: Anthony PERARD <anthony@xenproject.org>
From: dmkhn@proton.me
Cc: xen-devel@lists.xenproject.org, Roger Pau Monne <roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>
Subject: Re: [XEN PATCH] tools/tests: Fix newly introduced Makefile
Message-ID: <Z/4ReIhBSOtUHYZ4@starscream>
In-Reply-To: <20250414141714.10166-1-anthony@xenproject.org>
References: <20250414141714.10166-1-anthony@xenproject.org>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 92c8dbca102a7b4aa11bc74741833df8f107b130
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Mon, Apr 14, 2025 at 04:17:14PM +0200, Anthony PERARD wrote:
> From: Anthony PERARD <anthony.perard@vates.tech>
>=20
> Fix few issue with this new directory:
> - clean generated files
> - and ignore those generated files
> - include the dependency files generated by `gcc`.
> - rework prerequisites:
>   "test-rangeset.o" also needs the generated files "list.h" and
>   "rangeset.h". Technically, both only needs "harness.h" which needs
>   the generated headers, but that's a bit simpler and the previous
>   point will add the dependency on "harness.h" automatically.
>=20
> This last point fix an issue where `make` might decide to build
> "test-rangeset.o" before the other files are ready.
>=20
> Fixes: 7bf777b42cad ("tootls/tests: introduce unit tests for rangesets")
> Signed-off-by: Anthony PERARD <anthony.perard@vates.tech>

Reviewed-by: Denis Mukhin <dmukhin@ford.com>

> ---
>=20
> Make doesn't needs the *.h to generated the .c. So removing that
> prerequisite means make can generate all 3 at the same time.
> ---
>  tools/tests/rangeset/.gitignore | 4 ++++
>  tools/tests/rangeset/Makefile   | 8 ++++++--
>  2 files changed, 10 insertions(+), 2 deletions(-)
>  create mode 100644 tools/tests/rangeset/.gitignore
>=20
> diff --git a/tools/tests/rangeset/.gitignore b/tools/tests/rangeset/.giti=
gnore
> new file mode 100644
> index 0000000000..cdeb778535
> --- /dev/null
> +++ b/tools/tests/rangeset/.gitignore
> @@ -0,0 +1,4 @@
> +/list.h
> +/rangeset.c
> +/rangeset.h
> +/test-rangeset
> diff --git a/tools/tests/rangeset/Makefile b/tools/tests/rangeset/Makefil=
e
> index 70076eff34..3dafcbd054 100644
> --- a/tools/tests/rangeset/Makefile
> +++ b/tools/tests/rangeset/Makefile
> @@ -12,7 +12,7 @@ run: $(TARGET)
>=20
>  .PHONY: clean
>  clean:
> -=09$(RM) -- *.o $(TARGET) $(DEPS_RM)
> +=09$(RM) -- *.o $(TARGET) $(DEPS_RM) list.h rangeset.h rangeset.c
>=20
>  .PHONY: distclean
>  distclean: clean
> @@ -32,7 +32,7 @@ rangeset.h: $(XEN_ROOT)/xen/include/xen/rangeset.h
>  list.h rangeset.h:
>  =09sed -e '/#include/d' <$< >$@
>=20
> -rangeset.c: $(XEN_ROOT)/xen/common/rangeset.c list.h rangeset.h
> +rangeset.c: $(XEN_ROOT)/xen/common/rangeset.c
>  =09# Remove includes and add the test harness header
>  =09sed -e '/#include/d' -e '1s/^/#include "harness.h"/' <$< >$@
>=20
> @@ -42,5 +42,9 @@ CFLAGS +=3D $(CFLAGS_xeninclude)
>=20
>  LDFLAGS +=3D $(APPEND_LDFLAGS)
>=20
> +test-rangeset.o rangeset.o: list.h rangeset.h
> +
>  test-rangeset: rangeset.o test-rangeset.o
>  =09$(CC) $^ -o $@ $(LDFLAGS)
> +
> +-include $(DEPS_INCLUDE)
> --
> Anthony PERARD
>=20
>=20



From xen-devel-bounces@lists.xenproject.org Tue Apr 15 08:05:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 08:05:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.952268.1347766 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4bIm-00024E-5W; Tue, 15 Apr 2025 08:05:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 952268.1347766; Tue, 15 Apr 2025 08:05: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 1u4bIm-000247-1n; Tue, 15 Apr 2025 08:05:52 +0000
Received: by outflank-mailman (input) for mailman id 952268;
 Tue, 15 Apr 2025 08:05: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=JN3i=XB=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1u4bIk-000241-Ut
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 08:05:51 +0000
Received: from EUR02-AM0-obe.outbound.protection.outlook.com
 (mail-am0eur02on20622.outbound.protection.outlook.com
 [2a01:111:f403:2606::622])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 71913cd9-19d0-11f0-9eae-5ba50f476ded;
 Tue, 15 Apr 2025 10:05:50 +0200 (CEST)
Received: from VI1PR04CA0096.eurprd04.prod.outlook.com (2603:10a6:803:64::31)
 by GV1PR08MB8428.eurprd08.prod.outlook.com (2603:10a6:150:81::5) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.33; Tue, 15 Apr
 2025 08:05:46 +0000
Received: from AM4PEPF00025F97.EURPRD83.prod.outlook.com
 (2603:10a6:803:64:cafe::61) by VI1PR04CA0096.outlook.office365.com
 (2603:10a6:803:64::31) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.34 via Frontend Transport; Tue,
 15 Apr 2025 08:05:46 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AM4PEPF00025F97.mail.protection.outlook.com (10.167.16.6) with Microsoft SMTP
 Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8678.4 via
 Frontend Transport; Tue, 15 Apr 2025 08:05:45 +0000
Received: from DB7PR08MB2987.eurprd08.prod.outlook.com (2603:10a6:5:1c::25) by
 VI1PR08MB5407.eurprd08.prod.outlook.com (2603:10a6:803:132::11) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.32; Tue, 15 Apr
 2025 08:05:11 +0000
Received: from DB7PR08MB2987.eurprd08.prod.outlook.com
 ([fe80::d53f:b16d:70a5:8668]) by DB7PR08MB2987.eurprd08.prod.outlook.com
 ([fe80::d53f:b16d:70a5:8668%4]) with mapi id 15.20.8632.030; Tue, 15 Apr 2025
 08:05: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: 71913cd9-19d0-11f0-9eae-5ba50f476ded
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=B8tqpv8v4mYrWgWu2nCvEjTlo8tV865OAyQ5owHnzvl4CYeFJAq67WCqMiP8HwWoyIBHroso7lyex239ATNvRKhjUP0WIkJZrEJw8IFoHfwhjcarO4gUvVhPG0tbPaDhah5uyCS8ny48v7GU+epA22pOa5vJmALfixhQNUVtnzK9yukEby0/gYX+Cna3BHsEug670uZMJBT8Giry/Oio9N9eOaC4FyvlK2U1lzf9EARwTYA34qmkWvVOy/24jzozGkpf8pMnlHBx6iksBM5AGXVpvLJc5lY1BzAM6TaGakFtmc8z/aB5gwmzvDPX5xpFggPmrrObz4215fNUXRmEDg==
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=DaWDn4iDDlTEs0Pclth1cnKrwDbmmXYItFew+jw/xMg=;
 b=UE2xFghgZasIXVKIwaFkQK9ujAyRmLqkvMCKusUigN88i8q9kcv6S2t5mqwYDQNPHPs0yja9tXI/rfvrhZrXX0xkSdhHT6OHSOONKBAITgqfmrrAmvg05UGlkmqGTAiJ+UL8uQmWFbzRGl1FwsRMCuuMWqmL/2SDxLlor1B9JJtCKIu0NAHpxcyZpCN2ezHv5TAzhmiFi6j4C67OZvkGWD3Twfx6VUUhLdGZ8UO7TKihhZSe5Nww5FHpmzGHWDqCPXT9Gxac/JRx9gKKWhaNMRCAoxnalHcJFjqhihgpxZmSz60xdumabwfQtyJIzJ5fcX/ewDJnwUOZu0ik2Zzi0A==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=amd.com smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=DaWDn4iDDlTEs0Pclth1cnKrwDbmmXYItFew+jw/xMg=;
 b=Yv9dMgyTx8DrsvJPLUYHF7Yx8TYV2AYgjGR9k4YWx6EoVPC3g/633XLsCTSUXOzQMM+YgXO4FgXvrAkvhpplCZlHGIx7RB1xnu6Lgyf4ieoK0HRpz0kbQoIzkq25nWeeoW8SzfuaTg84hmzmQTtwbanNApu52isKdWkfnNFFoCQ=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=tNxTKawULkSRywT3Kk9jq7Ui4qDSKGdHNNXTouF16ZqYH9rHfXK/GsF2QgZN2X5Ak5hUWBFagPf3bN2e/bhN6vrMB8pE79b3UZA3d8SpPAsMiLMWEVX2v4SCf7mq7TDp3UJ8soxi54JNYi2UWJDSeMncU2+26TCXk4gSpsXr2MbSLHPf0QzjIYss94wWMkBqmloMp6GWQBrG976K7UQ0yo7Vmlp88/laY22qg6TZawTLeVrEOTLaXtG7BJvWRdlhKtf9ALsX95A58HXODd8KW3OZ7LJ3wCmCLIH4LKiEjlYmAq0VTgjP6jIqUzF521ozSfOG7UocLsbGhbfajsIxcA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=DaWDn4iDDlTEs0Pclth1cnKrwDbmmXYItFew+jw/xMg=;
 b=rSkn8+YrDHmv1B0MPIpjr5ivcVM4lG8jUqmxBZgZBNSZWHZ8vCP73jIL2FUAbvRxy48oHSNtng2xKx/DJzChAMiLDt9m8/zaBViMF5DESfIFcrRxWgCgyiJLN4NxGzv1W9M1vWw6nqswRpG9UhBUjJTkCnEMwJO5M7MkFOIZdxBVykOu6X8BRYp35DQ0PtV6dC4zR9TF+/padjM9RfLQgmsIyZkW1zyAkfSRNNfDkIFFba3KffGg/qyYlKXmSTeZlode+KBgfI1H2iPVbFdH+Jn7QFQ5tJMHMrlrnz15Q6/ltRMKjl0zxRh/cuvR09/COOUpSN8F2n3WlxcLMdI9Wg==
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=DaWDn4iDDlTEs0Pclth1cnKrwDbmmXYItFew+jw/xMg=;
 b=Yv9dMgyTx8DrsvJPLUYHF7Yx8TYV2AYgjGR9k4YWx6EoVPC3g/633XLsCTSUXOzQMM+YgXO4FgXvrAkvhpplCZlHGIx7RB1xnu6Lgyf4ieoK0HRpz0kbQoIzkq25nWeeoW8SzfuaTg84hmzmQTtwbanNApu52isKdWkfnNFFoCQ=
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 v7 0/3] Enable early bootup of Armv8-R AArch32 systems
Thread-Topic: [PATCH v7 0/3] Enable early bootup of Armv8-R AArch32 systems
Thread-Index: AQHbrVy2FcewxX2o4E+UbqBiK1+l+LOkX1uA
Date: Tue, 15 Apr 2025 08:05:11 +0000
Message-ID: <E38BD6F3-8A62-4FF0-8CAC-E35F4B518CDA@arm.com>
References: <20250414164514.588373-1-ayan.kumar.halder@amd.com>
In-Reply-To: <20250414164514.588373-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.400.131.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DB7PR08MB2987:EE_|VI1PR08MB5407:EE_|AM4PEPF00025F97:EE_|GV1PR08MB8428:EE_
X-MS-Office365-Filtering-Correlation-Id: 7b290ecd-199e-4d6e-ed42-08dd7bf4530b
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?ekhOdDhpUzJCaHhVb0t3Y2JlcVM0Y0UvenI5dk90V3NMTXFMVFhDMTJoTFps?=
 =?utf-8?B?bldnNFFQUDBnem1vc01mUzJkbHRGVTFEdmR3SVBKYmpnQjlQcjg3b2dJeDhW?=
 =?utf-8?B?TW5QZ2ZzOFJ0cFN1cVJEaStIOHpacndqMU5Wb1pqQUVSVU1hTlQveWwzeDdS?=
 =?utf-8?B?ZW1VYnk1cDFFKzFlNFBZY3RmYWpxN1JJSDZsYkJTU3JyV2VJMWpHcGxWTjhh?=
 =?utf-8?B?bkt0ZTdXSklsaUZWUzZRcDJqZzZ0dFFRa0I0ell6alBZb3Rwbmtud0tqY21Z?=
 =?utf-8?B?K3hnU2xmZVVyZlRBY1FsQS9PSmdsM0FycUdjKytya3Q2Yk5zOEJ2c1hFcXRF?=
 =?utf-8?B?bUNRVjdCMGZWSVBwaHB2eFIxQkp5VUNqRWcybTc0UkdFNHpXT3lnQkMyRXVw?=
 =?utf-8?B?bVlVeFBFSjY2NWw0eTI3eXBMMXZyZUNQelhiTExGUkhNcEhJMjl6VmtPalZ3?=
 =?utf-8?B?MDdIeEJNUWc1cE9rQ3ZCMTU3c2xLdUV5OUR5bHRzYklLUklwSnlJN3QyVmc2?=
 =?utf-8?B?b1doTldkVnFKTnRrSG5nZnFwbjBiZm9rYStQMmRJQnF0NUhpMjZQQmtOOStp?=
 =?utf-8?B?RlQvVS9BbENXTnlQL2tacXBUdmM5WVNRb1lkSzg3TXRtYlVvdUd4ZHNUTGRN?=
 =?utf-8?B?aGd6endHM0FDbkxzNDZWWW5ZK3IzdStkSUUweHZ3aTEySEh0NUMranVCV2hz?=
 =?utf-8?B?VG9zRzI1cklNSVEvNXV5bkNpc3kzeWxLU0Zza2pPbWxDNXFnN1J5ZG1JVnEz?=
 =?utf-8?B?clc0TG5odXRIeDEzR1JJQmYzM2tiKzNJVFVkOVY0aTN6ZDdlZXkrbFdxbXhx?=
 =?utf-8?B?OTlSU1NpanFlNi9Gdlo0aTJzaDQ0SXVQYm5pM3h1TDN4ck1EUFdSVFcvdkRw?=
 =?utf-8?B?QW0ycWtmRnpUVWRXWWMvWjQva25OSWRzMTRNR05rb2o4VXpPQ0k2bGV2S3hk?=
 =?utf-8?B?emxsclZzM2dla1U4eDlESm5iK0VITzVWeGFxTmNiOWVxQ3NJUE96b0hPS2Rs?=
 =?utf-8?B?eklBcHJkTjM2K1g0OWFiYkxCWXhKdWVSWmRPZW9EOHJpNUhYZWhxNzlydElh?=
 =?utf-8?B?L2dmZlArOEZZcFhVZmpSU29QbHBnZTlCaXJRMTI3UXJsTFFTUDV1aVVxWWsw?=
 =?utf-8?B?dVBKY2ZNM3ZjU2h2RnpvVS9PVGQ1cWt3OWlqNlhtRnVyT2E5cTI3MXQ4T2Z0?=
 =?utf-8?B?WDNnTjM5Q1BIRk53djFDV1NEWGtpK3NqdUg2VitHNTlIbnFrQWV0c2pKTUpY?=
 =?utf-8?B?VkpIamtBV1RjTVQ5ME1DaDdsN1N6TVNuSDZtVWd0NzQvczhkbWtUWVVKWUhB?=
 =?utf-8?B?ZTg4aGVWYTE5RHFyUWQzTWZNYWJFbG1ycktVci94cVBxU3JLbzlaTVMvUjdi?=
 =?utf-8?B?dVhzViswS05CK3hMemF5ZFFrY1RzdndtVkUrZkVMWkdnZVB3eklxMUd5WmFr?=
 =?utf-8?B?dW95Tk4rYWFFRXo2RHIxNTEwejlFL2tOSXRGdkJHNmVtMUMyNHoydi9OUDZy?=
 =?utf-8?B?QWgwK0ptRzhoRU9IQ0FoYUpxRFR1Z0pXWERIYmhLS0s3SGg3c1ZGY1g2cGhX?=
 =?utf-8?B?MkYyTGhyY3NGOUtrc1VyTUlsQVpmT2pYZHVGOFFxVzZJVDVTQmEzaXEzWUVY?=
 =?utf-8?B?aTQzdDRiODJxVjZYMCt2WVNDRmtqL3YxT2hGY21pbVF6NjZwcHZJS29GU0FB?=
 =?utf-8?B?T0VKV2M2Mkp4OVhxWUgxNWJwWVkzelBjVFZsVDdCc0Z3ZDUwdlpKdFJ1ZWRl?=
 =?utf-8?B?SU5ia2N2SHNFN2hJTlZqbGVwVlQ2Yk1JeFFIYnFJb2JDTmtoMHVrdXpTaGlC?=
 =?utf-8?B?Z2grcy9WNkRUdjlQdnFSYkhTcUlvaXgzSTcvRGZFMDl3d2xlNE8zWTBua24r?=
 =?utf-8?B?T291Q3Q2U0Yzb3pxMmdTOXErWlRKeFNpM2JEMGFLa2dxNWpHNWNjUXlGYmox?=
 =?utf-8?B?Njc2QVc0VjVRWWlpSTliaU9rWVJDYzNQMWdCaXV1ZTVmcWpBQTlVYnByQ0NT?=
 =?utf-8?B?OVpLeFVMd21RPT0=?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB7PR08MB2987.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: <997BA78F72E7044787E72EA1AF62174D@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR08MB5407
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AM4PEPF00025F97.EURPRD83.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	18acdc00-4393-48c0-c813-08dd7bf43ed6
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|82310400026|35042699022|14060799003|36860700013|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?S1ZKNk04MjRVMXZpZkNXSXY3SFRMcjQ5L1J5d3lCV2hJUi9vQVJYSHdyZ2pL?=
 =?utf-8?B?WUhONzQweTNqZU1MTGxwZVFENWpxUUM0NWlFYnViS3JBNTFZTnAya0lrRlhK?=
 =?utf-8?B?cXZzTDBoYms0aVlVL2pnOUJ6VUdnSjl0b25CSElZYTdxSXpIWldyOE0rem8w?=
 =?utf-8?B?TWV2RlBGakFlWXphdDVCR2ZTbnkyVjNZMVpXZGtlNG5HSHY0T24ybXBCTEh6?=
 =?utf-8?B?NUZyamNsdmRZRmN1UjRLaW9ucEYvazhtb2RzVGdJbDlBMHUyOTZyby9MZWQv?=
 =?utf-8?B?K3FiNEoyMVZ0NEZQdXRmUFMyY2Q1U1RmT0tWVU4rMXBuTERnMURhTXpGS01S?=
 =?utf-8?B?SGJyNXo5RTdmNFk1M0lWV2VybGxqRG9raHZ0TVlyUEpob1psZ3RCeURoa3Rw?=
 =?utf-8?B?dTh1STdvQjMvRVVjeWRieFZ3NUo4TEhpWTFNVnhwSzR4OUtVSDVLOFdxTGJh?=
 =?utf-8?B?L3loUXhvbFdnQ21ITDkrVEt1c1k3QSt6YVYyelNReTJxRmRPeHJKY0xROU05?=
 =?utf-8?B?eURVZkRmOVVPZVZHTDBsR0pXa0ZLdzFVbU9LTlJUbXpTZTJjUlFJdW1JaTJM?=
 =?utf-8?B?R1hybzArZ2kxeEt0ZHd0RlBabmlsWnBWdWFJcFl0aWdUWFpRcVpRSWxKd2ty?=
 =?utf-8?B?TlkyZDdUTkZsOUtOVlozTXZaelFvV0hxTlJTTTM4Y3cwcTUwdlkwK2l5VjE3?=
 =?utf-8?B?QVZHbVZUMTYxRzFuM21jZEFpN2FxdDNNVGQwbzZUN1c1SVpDSlRhMTdwajdH?=
 =?utf-8?B?TnVud0VaK0psditNb3pzMlNIVFlXRWtSc2xkaG1uWVlPMUVGeEtUQU5HWFNB?=
 =?utf-8?B?TXk5SHpqTUR0YUJvL3E2eDJoSDFwYjM5cTk5WHhiN21vejNIQndWeDk2eWty?=
 =?utf-8?B?eU5yUTFxM3ZTcUtRV3VndjNCZUR2clBpTnZNUHppNWJpQzdqbWxUQnBmRXF4?=
 =?utf-8?B?aWx4OUtqL1MycVFzM0lGd0pZNUVtanNCcWVFM2xCVTVFbVJaTU9vQ01mYVh2?=
 =?utf-8?B?d0ZSUWRGZTlFb2xMczZ4UG5lRklDOVZ5NkVrTENFdndQK3NQS1dVK0FYOHZ0?=
 =?utf-8?B?cnBlWlRianBmL1g5T0pTeG1MSXBPWE9TdWlaT3F6TEYycGhuVjB2bDhIMDlY?=
 =?utf-8?B?VzhFd1kvSERLTzZqWDJVTHoyRjhRL0o2SVpRZnpXUEtxTTVJN0xyUzd0S1Ny?=
 =?utf-8?B?emxhb0Z1NEZBV01ZYUcxY3pIYi9JMUF4UHRIOXdBRUFBdTRvUUJUU2twVDRr?=
 =?utf-8?B?bmtMeDRleUlhdGRtV1V0K29HRTBabmxReldnc0Q0L05WWm1TWWN6MFh0cWpJ?=
 =?utf-8?B?SXpnWkR1Tm5EcCtLWGxseWR2SWZpREViOHE5bEhXTmgvanZONW9mZzhVT0xs?=
 =?utf-8?B?c3FJT0V6aGJoelBvR004RWsxNkhGc3dZNExTbmdWR0tvMVZCT3VzZlJTOGR1?=
 =?utf-8?B?RjhtbVZ0d0N3SU1Qcml6cDcyb2VLRStQVElJb0ZtMHBLcEZ0MVpMd1RZbi9O?=
 =?utf-8?B?Wi83RWNCMWYzTXQ1S2xVRnBPcGtxdjJWL3l4eVlGWHVnc0w0RWxNdGsrMHlU?=
 =?utf-8?B?RDRVam5Sa3k0MkJ6U3lKZ0FwcThsWW9TQVBQUW51TldCR0o2akc2bSsvMzkr?=
 =?utf-8?B?WTk2eFE4d2R4VjdkWDNwWEpBWllyclpkZmZZb1NibUdNL25XemltNVQrTStN?=
 =?utf-8?B?WlVoYkUxR2Q0VHRBZmFQS1dMSnVvbmRVNFFjdWJNQ0VneElyYXJpVTIyOUVs?=
 =?utf-8?B?Q3NyeTRYMWM1c0RyRm9jdHFCTXJVZE9nak5OSFJaS01iUTF0eEZtOUhLdFR6?=
 =?utf-8?B?emxSNlB1VEpyaEd1UEs1T01lVituQ09TcldodTJrTXo4REQ0U1VjdUQxb3dk?=
 =?utf-8?B?aWlnU0RHWkhISW4rWEpWdm1xSHIrUUUzVzN2MXFiVDY3V09YMGw2dC90Zmtw?=
 =?utf-8?B?VVBLc0YrOTVWbHoweE54dEJqbS9nOHpuZmM4RVVlTW00bUtZZXB2ZU1kUUxB?=
 =?utf-8?B?WnRHck9XbERmQm1oaXY3enBBSHR5bXY5U3BHYTMvcTB1a00zNHNHd1FvMkE3?=
 =?utf-8?Q?z47kiV?=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(376014)(82310400026)(35042699022)(14060799003)(36860700013)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Apr 2025 08:05:45.1105
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 7b290ecd-199e-4d6e-ed42-08dd7bf4530b
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AM4PEPF00025F97.EURPRD83.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR08MB8428

SGkgQXlhbiwNCg0KPiBPbiAxNCBBcHIgMjAyNSwgYXQgMTc6NDUsIEF5YW4gS3VtYXIgSGFsZGVy
IDxheWFuLmt1bWFyLmhhbGRlckBhbWQuY29tPiB3cm90ZToNCj4gDQo+IEVuYWJsZSBlYXJseSBi
b290aW5nIG9mIEFybXY4LVIgQUFyY2gzMiBiYXNlZCBzeXN0ZW1zLg0KPiANCj4gQWRkZWQgTHVj
YSdzIFItYiBpbiBhbGwgdGhlIHBhdGNoZXMuDQo+IEFkZGVkIE1pY2hhbCdzIFItYiBpbiBwYXRj
aCAxIGFuZCAzLg0KPiANCj4gQXlhbiBLdW1hciBIYWxkZXIgKDMpOg0KPiAgeGVuL2FybTogTW92
ZSBzb21lIG9mIHRoZSBmdW5jdGlvbnMgdG8gY29tbW9uIGZpbGUNCj4gIHhlbi9hcm0zMjogQ3Jl
YXRlIHRoZSBzYW1lIGJvb3QtdGltZSBNUFUgcmVnaW9ucyBhcyBhcm02NA0KPiAgeGVuL2FybTMy
OiBtcHU6IFN0dWJzIHRvIGJ1aWxkIE1QVSBmb3IgYXJtMzINCj4gDQoNCknigJl2ZSB0ZXN0ZWQg
YWdhaW4gdGhlIHNlcmllIHdpdGggdGhlIGxhdGVzdCBjaGFuZ2UsIG5vIGlzc3VlczoNCg0KVGVz
dGVkLWJ5OiBMdWNhIEZhbmNlbGx1IDxsdWNhLmZhbmNlbGx1QGFybS5jb20+DQoNCg0K


From xen-devel-bounces@lists.xenproject.org Tue Apr 15 08:09:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 08:09:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.952280.1347776 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4bMR-0002du-L4; Tue, 15 Apr 2025 08:09:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 952280.1347776; Tue, 15 Apr 2025 08:09: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 1u4bMR-0002dn-HM; Tue, 15 Apr 2025 08:09:39 +0000
Received: by outflank-mailman (input) for mailman id 952280;
 Tue, 15 Apr 2025 08:09: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=JN3i=XB=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1u4bMQ-0002dh-AQ
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 08:09:38 +0000
Received: from EUR05-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur05on20623.outbound.protection.outlook.com
 [2a01:111:f403:2613::623])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f69232f5-19d0-11f0-9ffb-bf95429c2676;
 Tue, 15 Apr 2025 10:09:33 +0200 (CEST)
Received: from AS4P191CA0012.EURP191.PROD.OUTLOOK.COM (2603:10a6:20b:5d5::11)
 by DB5PR08MB10233.eurprd08.prod.outlook.com (2603:10a6:10:4aa::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.33; Tue, 15 Apr
 2025 08:09:30 +0000
Received: from AM4PEPF00025F9C.EURPRD83.prod.outlook.com
 (2603:10a6:20b:5d5:cafe::b1) by AS4P191CA0012.outlook.office365.com
 (2603:10a6:20b:5d5::11) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.36 via Frontend Transport; Tue,
 15 Apr 2025 08:09:30 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AM4PEPF00025F9C.mail.protection.outlook.com (10.167.16.11) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8678.4
 via Frontend Transport; Tue, 15 Apr 2025 08:09:28 +0000
Received: from DB7PR08MB2987.eurprd08.prod.outlook.com (2603:10a6:5:1c::25) by
 VI1PR08MB5405.eurprd08.prod.outlook.com (2603:10a6:803:12f::11) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.32; Tue, 15 Apr
 2025 08:08:55 +0000
Received: from DB7PR08MB2987.eurprd08.prod.outlook.com
 ([fe80::d53f:b16d:70a5:8668]) by DB7PR08MB2987.eurprd08.prod.outlook.com
 ([fe80::d53f:b16d:70a5:8668%4]) with mapi id 15.20.8632.030; Tue, 15 Apr 2025
 08:08: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: f69232f5-19d0-11f0-9ffb-bf95429c2676
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=N2Nicq9j83ZjtCMZQoFgIE3oxFBVHZ10L/f3Kc3O3X1qoHrUnh+/KX+UrNbyYopnwZ8t8koLb4nr+hqFvtUxzKQKAxT7B+txW/SiICX9a8DOYcBzMRNPqQYP+B5pD3awmmCLR94RLr4ufBfsHgNd2cM5Kz5QcWOTtaewRPO2yWbuxBS6mWKdVAGoNnjHawxc0nrz2ll8OZBpLl1iy+IkyMBTThS0qQcFSd3W8QlxBcuf+q/OT0qpdXwcAgcfINhQz8A/HsXpiUurBihl/IRWUogsK9SLJhMIyZ25k6w8lodXGYF1b4pmStWBll1cJh09+Z7mWU36O76RSmb0KP5Vhg==
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=ZKGb6NygjL8lFl5nXyYcS71WTk3eOUwMF+6mEdFecqw=;
 b=y7WS4Il1MlEE4SmEM38T89CvLt58AM0M6vzNSI8kThU1rP5ies1Pu+doaQFU2Qff8UJuOF0ne1dsxjnGsEpFrzm0ZR1Xq1GDU+I5kPcnqX7zPPAEKKIGMj4M79MZMhbY2+h/4qYWW4tkiIbgXmQ/PlyKXI4r/jpS3qAln7LXI+hKucaejTwAlLekz/BrccOm+bdZQFEajVnba7zorwTuO1oQE6t+AHFIMATCswkZevsYT7wBJsuo/2W2nQyFXzu3LM1p7+JNuqYT0Iglm4AKecZGW8UIlLg9D6mOTB26yX6dNv7XonIqez/AgiXkxVi8n6BhhOCOi/JokkDfFhwu2g==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=xen.org smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ZKGb6NygjL8lFl5nXyYcS71WTk3eOUwMF+6mEdFecqw=;
 b=JNe+ySs5/Q6MVC9Cyc7WzVmt1CRZeBNpKkfVudCAcfEg/FR24uPiPoB0FcxJLoyFZ6Lm8YoROqvw4iJOXy12KRXl3eCZ3U0L4kfLPBz1mT/K+fNtS7g3y4X9gEBP4MFt/gVvrClb7mpK+PkyQEwEshwSRBIo0VScS0QcGwWQmRU=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=d0Cn7p6O732AGoB43xD0EMn00kj7Dj8DvdFEB2ZqsEfVgpQHf2NfovwfvKzb6sZ+j2/+qn76ZlKS6SWTbdfOfTRip8nP4GIz3QPctpio6drPAklofOxxWSTrMHXbCpyiX2rJqSd7Hl+dBueuACrqBLosOIRn6dqvXbdq5f/BN3gw8w4X3NNdVDsZPhdvAbFiW7o8WzWgiEZZSIiAYCmhESm3ed7g3HxdZMKkbE746Q2J16PmYPYlJ/ei5M7sqNdG1VqZtMgxKgDG3C3XlhzaWSpSfe8vDTnzRF3Xa6X7H2GHmlWyh2wSfRlKrpF66SfvUkFm0r3JeWsHH0gej0jxiQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ZKGb6NygjL8lFl5nXyYcS71WTk3eOUwMF+6mEdFecqw=;
 b=AkqUa4nQFpGw5GNoEjiwn3mIJvSX110e3hUNduBAB3dUiGW9ptfEqTAz9j1dy0FKdobS2SgUNPAPGg9h8t3fnEkFfbq/peKqgT5CEKYDYDq74PDiNkY0hIvtP4hVKEzlvM6SHfef5aRc7bBtdtwAVNNP5ubUdBBAIr3NyTrJAN4Ba6BrOmI7rAjdTNqwRC0YnraHbNWBQLH4FdK8O2HclkicQKCpcP36F4QwnMl+yBlcegW+GRVCNqCJOEXhLnPsPp4Spcwzl2Es+N3CZfkOc5EugocCUe/Z0L/tObvtvjiNB2+id/dcAUCeoQnhiLYM3OtZ2hk4gLEHJ21jyINl3Q==
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=ZKGb6NygjL8lFl5nXyYcS71WTk3eOUwMF+6mEdFecqw=;
 b=JNe+ySs5/Q6MVC9Cyc7WzVmt1CRZeBNpKkfVudCAcfEg/FR24uPiPoB0FcxJLoyFZ6Lm8YoROqvw4iJOXy12KRXl3eCZ3U0L4kfLPBz1mT/K+fNtS7g3y4X9gEBP4MFt/gVvrClb7mpK+PkyQEwEshwSRBIo0VScS0QcGwWQmRU=
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 v3 2/7] arm/mpu: Provide access to the MPU region from the
 C code
Thread-Topic: [PATCH v3 2/7] arm/mpu: Provide access to the MPU region from
 the C code
Thread-Index: AQHbqvIQLPZqfCHfmUu6hn1OCHotk7OjDmYAgAA5foCAAJw1AIAAgSKA
Date: Tue, 15 Apr 2025 08:08:55 +0000
Message-ID: <72B2783C-AF90-4154-8EF9-4F81A0A537B2@arm.com>
References: <20250411145655.140667-1-luca.fancellu@arm.com>
 <20250411145655.140667-3-luca.fancellu@arm.com>
 <d58be435-fd83-42bc-9fd0-a8884f358704@xen.org>
 <1A24757A-ECCB-4080-B370-DA44D469CC7D@arm.com>
 <6a681c92-8c61-43f5-b266-b0306bc0b1ce@xen.org>
In-Reply-To: <6a681c92-8c61-43f5-b266-b0306bc0b1ce@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.400.131.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DB7PR08MB2987:EE_|VI1PR08MB5405:EE_|AM4PEPF00025F9C:EE_|DB5PR08MB10233:EE_
X-MS-Office365-Filtering-Correlation-Id: 84188507-3933-45ba-6ea9-08dd7bf4d872
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?VEZRSWpQSUM4TGFuUTZkNTlYL0Z5cUh3MFRnaXhtdEFGUjNxZTlqTXc3Vkg1?=
 =?utf-8?B?Mm96M0U3Zy82a3Y3c0V2UG9uNEtCWGttbVZQaXhNc1h6ZkcyNjdmWmY3d2U0?=
 =?utf-8?B?NlM1RDNoRDgvWGVUVStPakp6dUV6L1RnLzduelgyeGRrcjhubU5keG9LY24z?=
 =?utf-8?B?YXJyTXptMEgzS3dxRzhTMFNDc2RZWTZPSHo4MlRCRXZYakxQMmp4d3Q1alN6?=
 =?utf-8?B?K1NVZTZmeG9KS0V0dW5EVFJrWXkwbzhMYjVHbllydm9KQ0VUQlU4bi9CWDdu?=
 =?utf-8?B?b1cvT2ZaTmFlMGRPdnVCaVVNbWVvRkQzNU9iVWMwQkVxcTBkbTlXdXVwSlRp?=
 =?utf-8?B?d09kTDl3UHYwcTVlUzBldkRNeEpBclVld1l1MUhXL2VMWDJOTGRtSmUrQUMz?=
 =?utf-8?B?VlZnT0dVZjkrRGFDSS9DOE41R1I0V3llcFFnaldWbEV4MUZuUU1vRG4rc0JC?=
 =?utf-8?B?eUFWRFdYVWFJL0Ywdm1MUFlKaVhNRjI2OFZjNDlhb3NtdTdOelFDcTlmZWJK?=
 =?utf-8?B?bXpKT0R6Q1ZNM3lJaHg3OExkRjZSYm9kVTVHYkMrYW9VaVErSDB4dXA2bU5I?=
 =?utf-8?B?aURFZ2pCMmRyMkNpVzZ3bGt5RVZVemJSRlBmL3U5VDBoaGh1cUlJTkNNZ3JL?=
 =?utf-8?B?dE4yditCSVp0VU5XVk4wZ0QxS2NpT2d2cEM1blZQcHFHd1VYZVJ6dE9CeHlN?=
 =?utf-8?B?ZjFvNUwrSzlLR1dpUW1wbllXM2hBVlNTaEtXd3lDUzF6MVI0QjQ1aldON1J3?=
 =?utf-8?B?VUV3TjJLQ1hHNndHcWhodDkzbFhrUTkrZ2I2U3UzWnFwN2E5S042RTl1aW1t?=
 =?utf-8?B?UVA3OGdKQ2daUm9VdHZhU1BPS1RoVjZKdXlwSktxeDlRKzlZKzU0bVZhWDQ2?=
 =?utf-8?B?MUo0c2RaWXphUUd4emtrQ2xwR2Z3ZTQ2NVBTTGZSRFBQczUwSEw0aVFHeDYy?=
 =?utf-8?B?d2szUi9aeVBxQXdxOStkSzlwTVpqT3NiRmpqSmhPMnZzcUxHS3pmaktsSlpV?=
 =?utf-8?B?UXFUWlFhaHN6UExYWjlKazlEMmd6ZnRBTmh2dmhCaWJldGpMRjJmSTFqWS9n?=
 =?utf-8?B?NkxBMVhlRm1SUlVUMWhSUElxK3ZJV2JPSlo4akQydTBFb0tJQ09PVVFXQk4r?=
 =?utf-8?B?MjZtVDF2Mk83YXVSQUUxQXNHV0NEbGNPMHRIRUtySkNIQTNIVlZDaFQ2bTB1?=
 =?utf-8?B?clkxOUZ0eURvRDNFUWFXM1JYSmt5b1RMMS9RVlJJNW52eGxjVVVFdTVDbW9P?=
 =?utf-8?B?d05BYkptS3VVWDNhQi9WQWNqRTFROTBnRHlXRjFjU3NnK3VPNTZPSTg3VTVY?=
 =?utf-8?B?VWpkcVFUUjBMWmlsZUtYS1Vram9peGFldDNvRDJVN0FFUm1Lc2ZkV1pZS3NI?=
 =?utf-8?B?TzRuU2lWbm5jNmxmdzVXNGVRQUdEcVdBbTAza293T1A5TXBXNzhnbDNUdTFR?=
 =?utf-8?B?VEpQU01jYTZOSkFCVWQvdWVnWHJCdkMyK1MrT0p3alNUZ1Y3YWdoMWliNW9U?=
 =?utf-8?B?MlowcVJPRTJUUGVLcjBaWnBGcXptWkxTaHN3TzNVS2FtTXA0NjNQdFpSYnNj?=
 =?utf-8?B?eGxsby90UEFYMkRjMnN3MHR6ejhiYWpzNmcrYnlrV3NBc1ArTFZjWkh2L3Y1?=
 =?utf-8?B?VzFBd1c5MlVmVWwxZnNFZXBKVDVBaUtkaTVmT3M4U0JzQmJGWHNKZFFUenlM?=
 =?utf-8?B?WXNTNG5SeStvVGtkMFdJVzBYS0VJUVNpbitwRHlmeGtlU2xZbHZkMm54d3Jv?=
 =?utf-8?B?dGdSTld1TFhPY0lnK1QrZkM4KzhlK0RMWFdXaVpscGJBendEWnBkeDF4NU1l?=
 =?utf-8?B?WWJxdWw1eUhjUmtTUDBhTVZ0VVRNaDk5czcwcFNNYm9tVmdaMFhGY3g4Nm42?=
 =?utf-8?B?dTlQOXg2N2NpK0ZGTnFqWnBDY3pUVjB6Q2lBekJwZzNLQXZXalNQTWUyVzVl?=
 =?utf-8?B?N3FQVEpRM0FodzlPak1FYXVBMWhtWHhyaG8xbmlhMjJFUHg2QnF2akRUbWpS?=
 =?utf-8?B?NXJXM0ROSkpnPT0=?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB7PR08MB2987.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: <63909C7F893D474EB5A29F1765DF265B@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR08MB5405
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AM4PEPF00025F9C.EURPRD83.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	b301babc-c6df-4382-1e0c-08dd7bf4c453
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|35042699022|36860700013|14060799003|1800799024|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?cmphOEp6dzdOUDNiTWk1V01MQ2YxVFZETVBsd1g3RmxydXNsNGRtczBaeVcw?=
 =?utf-8?B?dkt4cUE3Unc3WEZTa0pXamdLN3RKbnBhb1lPVHVhMythbUJ2RysxTG52aHVV?=
 =?utf-8?B?SitwWmVoR0FFU1Y0enVCU3VuZU5hWDNBZElzV3lmUmx6L1ZuYVdENjhDUTBW?=
 =?utf-8?B?ZlhKNjNaN0FDYzF0ZStWTE9yamZEaFRPNXptSTFjWVliNjRZcytjeWpUcEla?=
 =?utf-8?B?R01EME5jYXZtV1JtVXphYUxud0xZbDh4YVNXZE1adTJBSVJZVDRLOEZBZHIv?=
 =?utf-8?B?Z1h5Q3ovRVVCNXg0QUpHak9kbGtOMjdLU2lrTUpERUl0dWl6eWQ4aThmemkr?=
 =?utf-8?B?NnZnc1VNT1Z1akRpQXgyOVVUMXpKVmxPcWxGbjRDd2FmdDJkem8wNU4zOG4y?=
 =?utf-8?B?RWl0QW1UaDhCS2lIOTNSZllRU3BHS1FMMzNhbGFLOTZxdzdzZjM2NWVDem9C?=
 =?utf-8?B?Z2JqZzQ1S1MydzNwZkgydVhpRVhkUnZQYjQ2SmxZdjhYTUh1Zk01L1UwSjly?=
 =?utf-8?B?MDlQQzM2NW8rYWpMZVQ0MmdxMWFWNk9HdUV6MEpPQUZzVUxNSFdRMm5NOVVW?=
 =?utf-8?B?OHJSWkJIVGV4OXhXSmJiQjViSmVacCtsOFRiM0NaU0xWYUN3MHNvQmJCRHNi?=
 =?utf-8?B?SW4zdzZtb1M5eXlPVmZKTlk2K3Fja3lqSFdIaGxqejJVb2hsTGJkb3JqY08x?=
 =?utf-8?B?N0VQbkJQSkZJMVU3Q0N1RWo4dkNBTlpic0xmWktlZ1NiUk9kSlY2c0tnbElO?=
 =?utf-8?B?eWxkM3ZPODRqbm4zd0dWK0V0czBOSWlLakVLNk1BTThyVWhSVThKT0VscXRI?=
 =?utf-8?B?MEJMR0xnR0ptSG00UlhFRWc3b1pncC9oWUh4RnY3NDR1a2tDazQrOE1UVGJJ?=
 =?utf-8?B?dmRtY1M3MldhRVlOTG4vWkdoVlAyb3ZmUk5yck14QnA2cmNKMEZ0bVZlcm5a?=
 =?utf-8?B?eVdHT2t6WTZoWVo4OEZwK2FTZ1M3UEc5ZllUQ2xWaklwSkFCSjNWc1d5T3BL?=
 =?utf-8?B?Vjg2cW1iUTVlVHV1UGRiU2tuaDBONTlRVitUOGo2MGRjTnViVERTeXk2Y203?=
 =?utf-8?B?Y3JONENrRTVFSGplT1JuV3UvS2JOTGZsY1N1VDBqRmhENTJlVVBRQ3hJYVhi?=
 =?utf-8?B?bFhDOCt5RWFPdjFzb1cwR0JEelNIOUJhU2FqVE9uSkwxaUpJcGpjNzlVTlVI?=
 =?utf-8?B?d2J3dlFteC9PRFhJc3ZwVlFubnFOVXJSdlR6TTNGdy9mOElYOVZZa014eE5L?=
 =?utf-8?B?YTRqZmE0YmdpeENML2htbE9XeCtjU3M1OHhVRFNCNnpXZEMzVGNFTWp2Sk1R?=
 =?utf-8?B?elV3ekVpOThMZmczenBLU2RQRXgxanQyWXpMNUJMYzZBZ1FVYXNIRHlRVmpH?=
 =?utf-8?B?ME52UnNSVTYzZHZhVm9Fbk5pZGlQbW5RRUZPUThNZ1BWMHNTMHg4MWIwN0Nl?=
 =?utf-8?B?OFhQMDBJSzlDUm83YUg3c2NNOVRRNmJXbS81YTdVRGNidk43TnlYbjVLMWFV?=
 =?utf-8?B?bDlPckZINVd2R1hBTk1CaUExQUxlMVBQck5xby9Fd0FBTFYrQkhwRi8yUFk4?=
 =?utf-8?B?Y1l2MXMxOW9VblZVVzl5TkhQTkMxVnh4QUx6MjVYTEwveVh1MTJpNW9waXhq?=
 =?utf-8?B?TldSZGZ0UHJzaDg5RjhIWHo1eVpJZnpIK3FQd1dOQjM2Mk9RdWtSekJpTW5D?=
 =?utf-8?B?YlBMYTVqRHFKWlppV0x0a0Q2dFhBTnVWdVNTUHdabWVTNjVWb09ZaHFOSElt?=
 =?utf-8?B?cFlpdm85QytGZlh0T3g3bGdiKzA4Nk5wYm84QVdzSWVCUmZtQndZaWVLSk9C?=
 =?utf-8?B?WVZYek1YOTdKVHNCMGpMWmsxbGJFbHVBWWhQNW1vTVZWUVRxeGtQNjRFWExL?=
 =?utf-8?B?T1hycExYaTY3NGYyNmJQWEhYdHRHVGErNmgxWUhTSjJxT2VBb1owblgxVTVq?=
 =?utf-8?B?T2M2SW9COU5KUGhwSUpzbnI4aFkxcFM3RHRyaXJtdzRObHVGVU9HSlpTSlBW?=
 =?utf-8?B?ZDZmOHdEL0JLRkxCN3hKL2tGbVJUcHRFc2YvejlHMGMxV1JUcS9UMmZrOVNL?=
 =?utf-8?Q?VSNyJd?=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(35042699022)(36860700013)(14060799003)(1800799024)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Apr 2025 08:09:28.9306
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 84188507-3933-45ba-6ea9-08dd7bf4d872
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AM4PEPF00025F9C.EURPRD83.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB5PR08MB10233

SGkgSnVsaWVuLA0KDQo+Pj4+ICArLyoNCj4+Pj4gKyAqIFRoZSBmb2xsb3dpbmcgYXJlIG5lZWRl
ZCBmb3IgdGhlIGNhc2UgZ2VuZXJhdG9ycyBHRU5FUkFURV9XUklURV9QUl9SRUdfQ0FTRQ0KPj4+
PiArICogYW5kIEdFTkVSQVRFX1JFQURfUFJfUkVHX0NBU0Ugd2l0aCBudW09PTANCj4+Pj4gKyAq
Lw0KPj4+PiArI2RlZmluZSBQUkJBUjBfRUwyIFBSQkFSX0VMMg0KPj4+PiArI2RlZmluZSBQUkxB
UjBfRUwyIFBSTEFSX0VMMg0KPj4+IA0KPj4+IFJhdGhlciB0aGFuIGFsaWFzaW5nLCBzaG91bGRu
J3Qgd2UganVzdCByZW5hbWUgUFJ7QixMfUFSX0VMMiB0byBQUntCLEx9QVIwX0VMMj8gVGhpcyB3
b3VsZCB0aGUgY29kZSBtaXhpbmcgYmV0d2VlbiB0aGUgdHdvLg0KPj4gUFJ7QixMfUFSMF9FTHgg
ZG9lcyBub3QgZXhpc3RzIHJlYWxseSwgdGhlIFBSe0IsTH1BUjxuPl9FTHggZXhpc3RzIGZvciBu
PTEuLjE1LCBoZXJlIEnigJltIG9ubHkgdXNpbmcgdGhpcyDigJxhbGlhc+KAnSBmb3IgdGhlIGdl
bmVyYXRvciwNCj4+IGJ1dCBQUntCLEx9QVJfRUwyIGFyZSB0aGUgcmVhbCByZWdpc3Rlci4NCj4g
DQo+IEluIHRoaXMgY2FzZSwgY2FuIFBSe0IsTH1BUjBfRUwyIGRlZmluZWQgaW4gbW0uYyBzbyB0
aGV5IGFyZSBub3QgdXNlZCBhbnl3aGVyZSBlbHNlPw0KDQpTbyB0aGlzIHdhcyB0aGUgY2FzZSBp
biBteSBwcmV2aW91cyBzZXJpZSwgYnV0IEF5YW4gYXNrZWQgbWUgdG8gcHV0IHRoZW0gaW4NCmhl
cmUgYmVjYXVzZSBQUkJBUl9FTDIgaXMgYXJtNjQgc3BlY2lmaWMsIG5vdCBzdXJlIG5vdywgc2hh
bGwgd2UgbW92ZSBpdCBiYWNrDQphbmQgcHJvdGVjdCBpdCB3aXRoIENPTkZJR19BUk1fNjQ/DQoN
Cj4+Pj4gDQo+Pj4+ICB9DQo+Pj4+ICArLyogVXRpbGl0eSBmdW5jdGlvbiB0byBiZSB1c2VkIHdo
ZW5ldmVyIE1QVSByZWdpb25zIGFyZSBtb2RpZmllZCAqLw0KPj4+PiArc3RhdGljIGlubGluZSB2
b2lkIGNvbnRleHRfc3luY19tcHUodm9pZCkNCj4+Pj4gK3sNCj4+Pj4gKyAgICAvKg0KPj4+PiAr
ICAgICAqIEFSTSBEREkgMDYwMEIuYSwgQzEuNy4xDQo+Pj4+ICsgICAgICogV3JpdGVzIHRvIE1Q
VSByZWdpc3RlcnMgYXJlIG9ubHkgZ3VhcmFudGVlZCB0byBiZSB2aXNpYmxlIGZvbGxvd2luZyBh
DQo+Pj4+ICsgICAgICogQ29udGV4dCBzeW5jaHJvbml6YXRpb24gZXZlbnQgYW5kIERTQiBvcGVy
YXRpb24uDQo+Pj4gDQo+Pj4gSSBrbm93IHdlIGRpc2N1c3NlZCBhYm91dCB0aGlzIGJlZm9yZS4g
SSBmaW5kIG9kZCB0aGF0IHRoZSBzcGVjaWZpY2F0aW9uIHNheXMgImNvbnRleHQgc3luY2hyb25p
emF0aW9uIGV2ZW50IGFuZCBEU0Igb3BlcmF0aW9uIi4gQXQgbGVhc3QgdG8gbWUsIGl0IGltcGxp
ZXMgImlzYiArIGRzYiIgbm90IHRoZSBvdGhlciB3YXkgYXJvdW5kLiBIYXMgdGhpcyBiZWVuIGNs
YXJpZmllZCBpbiBuZXdlciB2ZXJzaW9uIG9mIHRoZSBzcGVjaWZpY2F0aW9uPw0KPj4gdW5mb3J0
dW5hdGVseSBubywgSeKAmW0gbG9va2luZyBpbnRvIHRoZSBsYXRlc3Qgb25lIChBcm3CriBBcmNo
aXRlY3R1cmUgUmVmZXJlbmNlIE1hbnVhbCBTdXBwbGVtZW50IEFybXY4LCBmb3IgUi1wcm9maWxl
IEFBcmNoNjQgYXJjaGl0ZWN0dXJlIDA2MDBCLmEpIGJ1dCBpdCBoYXMgdGhlIHNhbWUgd29yZGlu
ZywgaG93ZXZlcg0KPj4gSSBzcG9rZSBpbnRlcm5hbGx5IHdpdGggQ29ydGV4LVIgYXJjaGl0ZWN0
cyBhbmQgdGhleSB0b2xkIG1lIHRvIHVzZSBEU0IrSVNCDQo+IA0KPiBTbyB5b3UgZGlkbid0IHNw
ZWFrIHdpdGggdGhlIEFybVY4LVIgYXJjaGl0ZWN0cz8gQXNraW5nIGJlY2F1c2Ugd2UgYXJlIHdy
aXRpbmcgY29kZSBmb3IgQXJtVjgtUiAoc28gbm90IG9ubHkgQ29ydGV4LVIpLg0KPiANCj4gSW4g
YW55IGNhc2UsIEkgc3RpbGwgdGhpbmsgdGhpcyBpcyBzb21ldGhpbmcgdGhhdCBuZWVkcyB0byBi
ZSBjbGFyaWZpZWQNCj4gaW4gdGhlIHNwZWNpZmljYXRpb24uIFNvIHBlb3BsZSB0aGF0IGRvbid0
IGhhdmUgYWNjZXNzIHRvIHRoZSBBcm0gaW50ZXJuYWwgYXJjaGl0ZWN0cyBrbm93IHRoZSBjb3Jy
ZWN0IHNlcXVlbmNlLiBJcyB0aGlzIHNvbWV0aGluZyB5b3UgY2FuIGZvbGxvdy11cCBvbj8NCg0K
WWVzIEkgd2lsbCBmb2xsb3cgdXAgdGhpcyBvbmUNCg0KQ2hlZXJzLA0KTHVjYQ==


From xen-devel-bounces@lists.xenproject.org Tue Apr 15 08:34:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 08:34:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.952303.1347791 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4bkT-0001bh-NV; Tue, 15 Apr 2025 08:34:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 952303.1347791; Tue, 15 Apr 2025 08:34: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 1u4bkT-0001ba-Kk; Tue, 15 Apr 2025 08:34:29 +0000
Received: by outflank-mailman (input) for mailman id 952303;
 Tue, 15 Apr 2025 08:34: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=OGoX=XB=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u4bkS-0001bU-0q
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 08:34:28 +0000
Received: from mail-pl1-x62e.google.com (mail-pl1-x62e.google.com
 [2607:f8b0:4864:20::62e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6c4081fe-19d4-11f0-9ffb-bf95429c2676;
 Tue, 15 Apr 2025 10:34:19 +0200 (CEST)
Received: by mail-pl1-x62e.google.com with SMTP id
 d9443c01a7336-22438c356c8so58385135ad.1
 for <xen-devel@lists.xenproject.org>; Tue, 15 Apr 2025 01:34:19 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 d9443c01a7336-22ac7ccb32esm111471335ad.232.2025.04.15.01.34.16
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 15 Apr 2025 01:34: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: 6c4081fe-19d4-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744706058; x=1745310858; 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=4hiuMvneI3AqnaIuOADhkB1rAJc9G6yK7WStBQlLMKA=;
        b=CtVlNp8q6YOBrBwAG+rfiFgb2q7V63H+MlKv8dH/V5vbGzzOfB0OlAOdfpwEr5Jfte
         FanNywYIrc8v1RHp6RapXFBSnmMJ891wYsNkWFG/4puvEvYNgZJdWMpof7BDlEcw/u7Z
         Uqgj93zmILzNavzu+WtEK7ypJoE4t+YVAWLbg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744706058; x=1745310858;
        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=4hiuMvneI3AqnaIuOADhkB1rAJc9G6yK7WStBQlLMKA=;
        b=gQDaT/zgoGXw321mpkRuZs2ffqya+0J/gHcFf7zuSVQa5MDbD6PWuj12rEGWdcYfwe
         fgcdhjJs4+/hbDd/d3FDD6Yz8nb5hfNbUVck0uyhKi3Ov5AwNTqNBJWvr1/941K1suia
         Vm1YxhTuZjA+lqZ+v6bF4ZtOjA2Ee7x4iYXZcfa07ea1bE+IMr9l/A+/zcHBZkD7igi9
         EAg8TlPDzbDHrqPol1g516GRhDhFeEsObrXO08cr4CrfMlGrh0P42a82cdMBOAsVjJH8
         1qy5Gaj/D/oayFjMUsilM1i8ZEz8yNlx1ZRd+zx2KjSAEqxXC4wQnhE9UTmXEPcKAtR6
         r0yQ==
X-Forwarded-Encrypted: i=1; AJvYcCU2mm04KjALUIw6j1dg24JQB0e6sP8nvduDiry5LB8nL8LzalU/HTwfEsXAJMGiHD2nPsc9vQE3/Jc=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw1BOo7iCuvYcSu+8oYLc/GzpHI+KVXzIPjCjikc6uCokxZ+Nr3
	AeANAAl6LQtkVBRd7ETJsNnbRhAOJXFdJD2PL7E5N4/1VI6sexeXd1g6C61Ky/Q=
X-Gm-Gg: ASbGncuxOEsDUdJrK/tFcxim8A1Ep3yK51vycpCIJzkYz+4Z7H1aofEhEK1ziucLtuJ
	qd0XU1gySVkB0KgE+t51BGQ6yEwIRSDqcFX5e5XiAgMoHSRDmufvQml+YHcHpaZaw0NIFNKOu0K
	z7YvCmHQjypyFSL9BYYqi0Q45QluaWbcAFE3AMxB7G5dywHbrLW4ClwqyvA4bI9Y+bXyEZoJcNn
	VTcprkhjCzfdQ8OwrAPeEO+nYwf7W02eHbNA6khmddbGA3zAQQ7J7NcmbkZCjgERyPsiSeQXihv
	gdAyjUR+lpkL7k/WkiJWIAWtLdWeDAcwR3SIK+coUfSlkumXrg4ATZh0
X-Google-Smtp-Source: AGHT+IE/giGOf8zs636Gr2XujZhxTroOKRFMMFk3ZvqmNZ0GX2BWMdfv14Ab5hg9W8U4efJotXd0MA==
X-Received: by 2002:a17:902:e883:b0:224:1005:7280 with SMTP id d9443c01a7336-22bea500191mr239640385ad.38.1744706058130;
        Tue, 15 Apr 2025 01:34:18 -0700 (PDT)
Date: Tue, 15 Apr 2025 10:34:12 +0200
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/5] x86/hvm: fix handling of accesses to partial r/o
 MMIO pages
Message-ID: <Z_4aBL7JhTv_oxWR@macbook.lan>
References: <20250411105411.22334-1-roger.pau@citrix.com>
 <20250411105411.22334-4-roger.pau@citrix.com>
 <eaf5f71b-2c56-4bd8-a45f-35280af16466@suse.com>
 <Z_0TXKMe6tfrYR9T@macbook.lan>
 <c92d5665-0940-40b5-8cbb-81889adf40c5@suse.com>
 <Z_00JReo7Ji7RwkD@macbook.lan>
 <7c3c91d9-4de8-4910-b26e-8782a0f0d364@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <7c3c91d9-4de8-4910-b26e-8782a0f0d364@suse.com>

On Tue, Apr 15, 2025 at 09:32:37AM +0200, Jan Beulich wrote:
> On 14.04.2025 18:13, Roger Pau Monné wrote:
> > On Mon, Apr 14, 2025 at 05:24:32PM +0200, Jan Beulich wrote:
> >> On 14.04.2025 15:53, Roger Pau Monné wrote:
> >>> On Mon, Apr 14, 2025 at 08:33:44AM +0200, Jan Beulich wrote:
> >>>> On 11.04.2025 12:54, Roger Pau Monne wrote:
> Independently (i.e. not for this patch) we may want to actually assert
> that npfec.present is set for P2M types where we demand that to always
> be the case. (I wouldn't be too surprised if we actually found such an
> assertion to trigger.)
> 
> >>>> I'm also concerned of e.g. VT-x'es APIC access MFN, which is
> >>>> p2m_mmio_direct.
> >>>
> >>> But that won't go into hvm_hap_nested_page_fault() when using
> >>> cpu_has_vmx_virtualize_apic_accesses (and thus having an APIC page
> >>> mapped as p2m_mmio_direct)?
> >>>
> >>> It would instead be an EXIT_REASON_APIC_ACCESS vmexit which is handled
> >>> differently?
> >>
> >> All true as long as things work as expected (potentially including the guest
> >> also behaving as expected). Also this was explicitly only an example I could
> >> readily think of. I'm simply wary of handle_mmio_with_translation() now
> >> getting things to handle it's not meant to ever see.
> > 
> > How was access to MMIO r/o regions supposed to be handled before
> > 33c19df9a5a0 (~2015)?  I see that setting r/o MMIO p2m entries was
> > added way before to p2m_type_to_flags() and ept_p2m_type_to_flags()
> > (~2010), yet I can't figure out how writes would be handled back then
> > that didn't result in a p2m fault and crashing of the domain.
> 
> Was that handled at all before said change?

Not really AFAICT, hence me wondering how where write accesses to r/o
MMIO regions supposed to be handled by (non-priv) domains.  Was the
expectation that those writes trigger an p2m violation thus crashing
the domain?

> mmio_ro_do_page_fault() was
> (and still is) invoked for the hardware domain only, and quite likely
> the need for handling (discarding) writes for PVHv1 had been overlooked
> until someone was hit by the lack thereof.

I see, I didn't realize r/o MMIO was only handled for PV hardware
domains only.  I could arguably do the same for HVM in
hvm_hap_nested_page_fault().

Not sure whether the subpage stuff is supposed to be functional for
domains different than the hardware domain?  It seems to be available
to the hanrdware domain only for PV guests, while for HVM is available
for both PV and HVM domains:

is_hardware_domain(currd) || subpage_mmio_write_accept(mfn, gla)

In hvm_hap_nested_page_fault().

> > I'm happy to look at other ways to handling this, but given there's
> > current logic for handling accesses to read-only regions in
> > hvm_hap_nested_page_fault() I think re-using that was the best way to
> > also handle accesses to MMIO read-only regions.
> > 
> > Arguably it would already be the case that for other reasons Xen would
> > need to emulate an instruction that accesses a read-only MMIO region?
> 
> Aiui hvm_translate_get_page() will yield HVMTRANS_bad_gfn_to_mfn for
> p2m_mmio_direct (after all, "direct" means we expect no emulation is
> needed; while arguably wrong for the introspection case, I'm not sure
> that and pass-through actually go together). Hence it's down to
> hvmemul_linear_mmio_access() -> hvmemul_phys_mmio_access() ->
> hvmemul_do_mmio_buffer() -> hvmemul_do_io_buffer() -> hvmemul_do_io(),
> which means that if hvm_io_intercept() can't handle it, the access
> will be forwarded to the responsible DM, or be "processed" by the
> internal null handler.
> 
> Given this, perhaps what you do is actually fine. At the same time
> note how several functions in hvm/emulate.c simply fail upon
> encountering p2m_mmio_direct. These are all REP handlers though, so
> the main emulator would then try emulating the insn the non-REP way.

I'm open to alternative ways of handling such accesses, just used what
seemed more natural in the context of hvm_hap_nested_page_fault().

Emulation of r/o MMIO accesses failing wouldn't be an issue from Xen's
perspective, that would "just" result in the guest getting a #GP
injected.

Would you like me to add some of your reasoning above to the commit
message?

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Apr 15 08:43:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 08:43:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.952316.1347801 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4btJ-0004Lq-HK; Tue, 15 Apr 2025 08:43:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 952316.1347801; Tue, 15 Apr 2025 08:43: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 1u4btJ-0004Lj-EU; Tue, 15 Apr 2025 08:43:37 +0000
Received: by outflank-mailman (input) for mailman id 952316;
 Tue, 15 Apr 2025 08:43: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=OGoX=XB=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u4btH-0004Ld-BM
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 08:43:35 +0000
Received: from mail-pl1-x62d.google.com (mail-pl1-x62d.google.com
 [2607:f8b0:4864:20::62d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b6b430e1-19d5-11f0-9eae-5ba50f476ded;
 Tue, 15 Apr 2025 10:43:34 +0200 (CEST)
Received: by mail-pl1-x62d.google.com with SMTP id
 d9443c01a7336-2279915e06eso55717155ad.1
 for <xen-devel@lists.xenproject.org>; Tue, 15 Apr 2025 01:43:34 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 d9443c01a7336-22ac7cb5441sm112177195ad.197.2025.04.15.01.43.31
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 15 Apr 2025 01:43:32 -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: b6b430e1-19d5-11f0-9eae-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744706612; x=1745311412; 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=/5q7zbVMSA5FjtNMLBKr/5qkFYevIkeKZgreXUzzV+M=;
        b=VkNDbbivIE1sl2gd5DmSjWu7lsTd0imtL3RLyi4m1s9zJr71zN3jZdh0gZVGQvsd6v
         5T95NWdjm+BCFigShDf78TVzupHkgqjwQZ9qzOMdHGuxenHkTg5imWOyjjXEOHr9BHBy
         2tP9zkbDs1J5YJ93q6KpgjgkH/gN8YjaZaB4E=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744706612; x=1745311412;
        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=/5q7zbVMSA5FjtNMLBKr/5qkFYevIkeKZgreXUzzV+M=;
        b=OulDBXScsTtv3/evU6cwDkfowymgZNZ+1+Nmjy5ByrpCsvSUWQKb3Llm9tHKCBgcoz
         lAKA8cTK9C7MGCD4HEMYy10GJD6cr62Qp2jJFu80WpKOal6w0l5q+Jq1Gevr8qeyy86U
         GubwXg/MvV4hByVUnr/H6s7CYK1RuFgeumj1gVWTyo7sscAD5WyBqUeN2FK5FEb3iqGx
         P361hQQ9H4LzaNkXiRJ3iWQvozA28GSG/PBtKUpbJ16jh34sGBOMGRMzSnsR3iiIvfy0
         yniMD2ZfbwJL7DIF5St90nXj+FKXiCXSsQ2smffW33lUMPxnDBvdYg+7fjoYzxJOgBlt
         DQSw==
X-Gm-Message-State: AOJu0YwVIa1nRS35+DpZdtJlx0RCM8vzZnGet6u06kM627m/4yiM02If
	EjiH1c90pw49wsI2zfzep6VVrRU1al4z0u1MhAqVxoD30YPQTYykiubeeOPyrU1gq4/F3Nnhny/
	u
X-Gm-Gg: ASbGncvLhwCy0I+iooCyd4zqIT+6lyFzJN5yAcOhZY7fe9ap6HrWt+e6grgcdPyi0eJ
	Z478a2fan4lYzTXhgdl5blV6EKIEj0OdFn7YgxO/k1vUzNRmWZaM/LzSNGY3z4z8IlCAfmmY+Du
	DZhb3Ja/3KDgrzHraMwjfQ0gCWVzNb7RiG8aAAzRnUW93/vJ/4Xc1MMw5bWAAf4zkP3IgP1uVre
	ZzkhR2sRQEdpvxP4mG68oBEB1DeOhzc6lU8jRZFdIR9rTfKyRHgw9h82Nvod6nTyRBPasZAEa4T
	Fxbv7c/66CZXgKNWa5rfJzUHhq+YwlsOM0XEeWdGPssE5Q==
X-Google-Smtp-Source: AGHT+IEPIrdGio01C9xaA6V+7AEKKFEgu4kl1rpgsdARILfoi6ALrfgGEm1mMlQubMPSCMquwuo7Cg==
X-Received: by 2002:a17:902:cec4:b0:224:e33:889b with SMTP id d9443c01a7336-22bea4ade03mr240729125ad.12.1744706612541;
        Tue, 15 Apr 2025 01:43:32 -0700 (PDT)
Date: Tue, 15 Apr 2025 10:43:24 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Anthony PERARD <anthony@xenproject.org>
Cc: xen-devel@lists.xenproject.org,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: Re: [XEN PATCH] tools/tests: Fix newly introduced Makefile
Message-ID: <Z_4cLBroEtnmD3sD@macbook.lan>
References: <20250414141714.10166-1-anthony@xenproject.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <20250414141714.10166-1-anthony@xenproject.org>

On Mon, Apr 14, 2025 at 04:17:14PM +0200, Anthony PERARD wrote:
> From: Anthony PERARD <anthony.perard@vates.tech>
> 
> Fix few issue with this new directory:
> - clean generated files
> - and ignore those generated files
> - include the dependency files generated by `gcc`.
> - rework prerequisites:
>   "test-rangeset.o" also needs the generated files "list.h" and
>   "rangeset.h". Technically, both only needs "harness.h" which needs
>   the generated headers, but that's a bit simpler and the previous
>   point will add the dependency on "harness.h" automatically.
> 
> This last point fix an issue where `make` might decide to build
> "test-rangeset.o" before the other files are ready.

Oh, I see, yes, test-rangeset.o wasn't dependent on the generated
files.

> 
> Fixes: 7bf777b42cad ("tootls/tests: introduce unit tests for rangesets")
> Signed-off-by: Anthony PERARD <anthony.perard@vates.tech>

Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>

> ---
> 
> Make doesn't needs the *.h to generated the .c. So removing that
> prerequisite means make can generate all 3 at the same time.
> ---
>  tools/tests/rangeset/.gitignore | 4 ++++
>  tools/tests/rangeset/Makefile   | 8 ++++++--
>  2 files changed, 10 insertions(+), 2 deletions(-)
>  create mode 100644 tools/tests/rangeset/.gitignore
> 
> diff --git a/tools/tests/rangeset/.gitignore b/tools/tests/rangeset/.gitignore
> new file mode 100644
> index 0000000000..cdeb778535
> --- /dev/null
> +++ b/tools/tests/rangeset/.gitignore
> @@ -0,0 +1,4 @@
> +/list.h
> +/rangeset.c
> +/rangeset.h
> +/test-rangeset
> diff --git a/tools/tests/rangeset/Makefile b/tools/tests/rangeset/Makefile
> index 70076eff34..3dafcbd054 100644
> --- a/tools/tests/rangeset/Makefile
> +++ b/tools/tests/rangeset/Makefile
> @@ -12,7 +12,7 @@ run: $(TARGET)
>  
>  .PHONY: clean
>  clean:
> -	$(RM) -- *.o $(TARGET) $(DEPS_RM)
> +	$(RM) -- *.o $(TARGET) $(DEPS_RM) list.h rangeset.h rangeset.c
>  
>  .PHONY: distclean
>  distclean: clean
> @@ -32,7 +32,7 @@ rangeset.h: $(XEN_ROOT)/xen/include/xen/rangeset.h
>  list.h rangeset.h:
>  	sed -e '/#include/d' <$< >$@
>  
> -rangeset.c: $(XEN_ROOT)/xen/common/rangeset.c list.h rangeset.h
> +rangeset.c: $(XEN_ROOT)/xen/common/rangeset.c
>  	# Remove includes and add the test harness header
>  	sed -e '/#include/d' -e '1s/^/#include "harness.h"/' <$< >$@
>  
> @@ -42,5 +42,9 @@ CFLAGS += $(CFLAGS_xeninclude)
>  
>  LDFLAGS += $(APPEND_LDFLAGS)
>  
> +test-rangeset.o rangeset.o: list.h rangeset.h
> +
>  test-rangeset: rangeset.o test-rangeset.o
>  	$(CC) $^ -o $@ $(LDFLAGS)
> +
> +-include $(DEPS_INCLUDE)

This include is likely also needed by vpci/Makefile?

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Apr 15 09:25:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 09:25:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.952335.1347811 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4cXk-0004fa-Ih; Tue, 15 Apr 2025 09:25:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 952335.1347811; Tue, 15 Apr 2025 09: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 1u4cXk-0004fT-Fe; Tue, 15 Apr 2025 09:25:24 +0000
Received: by outflank-mailman (input) for mailman id 952335;
 Tue, 15 Apr 2025 09:25: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=OGoX=XB=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u4cXj-0004fN-8B
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 09:25:23 +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 8e253a8b-19db-11f0-9eae-5ba50f476ded;
 Tue, 15 Apr 2025 11:25:22 +0200 (CEST)
Received: by mail-ed1-x532.google.com with SMTP id
 4fb4d7f45d1cf-5e5cd420781so10403003a12.2
 for <xen-devel@lists.xenproject.org>; Tue, 15 Apr 2025 02:25:22 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 4fb4d7f45d1cf-5f36ee54ff7sm6335838a12.15.2025.04.15.02.25.21
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 15 Apr 2025 02:25:21 -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: 8e253a8b-19db-11f0-9eae-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744709122; x=1745313922; 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=bj7+jgdHRC+qY+aWF+rUsDWrAOqhBYGYclz5yeDtUbA=;
        b=nB68DHF43jRmXDv91Fl4OJlb8Cqp0OhxX+ZJlT3PVWEGSp3zSecbh7eZV6aBnvKg9B
         CC6H0QfVTRM8vJoyF4OV1cp7YLj+/yDh5wE+Z+OuFSinpb80GUMH8FIiiUWcyH9DUFnw
         poeBd1YuUJsR1t90XTQOdaNKhDnKTmn4SsXQo=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744709122; x=1745313922;
        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=bj7+jgdHRC+qY+aWF+rUsDWrAOqhBYGYclz5yeDtUbA=;
        b=e0GZJCjjvG3onkN934LPkdtduZP+p414Rq2FWTyKoUHlm92aUi8LPN4vl1odhd8eN2
         mJ9UvFwGQ8JFxrc+MQEkWRgfPJssjTAa4+pPE2b/bec7MtYefzoNc0i++gUoByRwbuA5
         ZCcpe9Au7yqmTO+IHhio67IuZMRg0jvhYEOcSlVlhByKrzmR74Ok212Q8syfZISnmp0h
         Ac48epH3R4AqDnj2Ch0+3pmCuAjg+d4SDOOFuWb9p4AbQhRnFBwFw+bEShJR3jr76go/
         YVYjBBZ4w2dh/YOxAaRSRoyRD+j7b1UmyIYOZYyQ6kzT2AavtYdm7N3MxKqmU8ZdptRx
         M79w==
X-Gm-Message-State: AOJu0Yx47NurkGoXNhyUE8Hu+9o+nqfon3/J8B1hECBxuPp7AtByPuDU
	P0x9UGvg+eUhom9s+ivDiGA/yMHpvWmayqa1L6k0/xCy1zkZPxDqa7d/x2axJvo=
X-Gm-Gg: ASbGncsslj6AdQlgn3L/qYmnCvGjaFJbcUrvaoRINNPEdTu29uC2sMMLf8teIKfbEns
	xBMR+ETbRgFwTW6QeOL3EmeTTeW+9rvOfB7/P3g5mkoVRAS2NEAO5+PxcPsoH0pfB5GxV2TAF1l
	EkbDJbZyc5/JukK1O3re2bo72Tm8fqqQjFioaxfa5tLiEHVaDvZ+Px6GCxj5AJlhXyjHddMoNee
	JexDcZwUslE333RzvtPadjGpBSEHr3J8poL3A/VXTvYBAbAqKmKq2WHSbZhATrKTACo5nMYzPhB
	dv4RAihnqJndpbuxkcO1aqGQWbZCVUlugOKCV4+RmEynlg==
X-Google-Smtp-Source: AGHT+IEzCBD7KHoC4XLKkEBNqDyCUVaw3wvnSUn7LTHWro1XX3rAv3Kni1Lb5aDFGwcxS2PnHjJR0g==
X-Received: by 2002:a05:6402:5187:b0:5de:dfd0:9d20 with SMTP id 4fb4d7f45d1cf-5f36ff07331mr13074304a12.24.1744709121672;
        Tue, 15 Apr 2025 02:25:21 -0700 (PDT)
Date: Tue, 15 Apr 2025 11:25:20 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jiqian Chen <Jiqian.Chen@amd.com>
Cc: xen-devel@lists.xenproject.org, Huang Rui <ray.huang@amd.com>
Subject: Re: [PATCH v2 2/8] vpci/header: Emulate legacy capability list for
 host
Message-ID: <Z_4mAAm-gCmZTJub@macbook.lan>
References: <20250409064528.405573-1-Jiqian.Chen@amd.com>
 <20250409064528.405573-3-Jiqian.Chen@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <20250409064528.405573-3-Jiqian.Chen@amd.com>

On Wed, Apr 09, 2025 at 02:45:22PM +0800, Jiqian Chen wrote:
> Current logic of init_header() only emulates legacy capability list
> for guest, expand it to emulate for host too. So that it will be
> easy to hide a capability whose initialization fails and no need
> to distinguish host or guest.

It might be best if the initial code movement of the logic in
init_header() into it's own separate function was done as a
non-functional change, and a later patch added support for dom0.

It's easier to then spot the differences that you are adding to
support dom0.

> Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
> ---
> cc: "Roger Pau Monné" <roger.pau@citrix.com>
> ---
> v1->v2 changes:
> new patch
> 
> Best regards,
> Jiqian Chen.
> ---
>  xen/drivers/vpci/header.c | 139 ++++++++++++++++++++------------------
>  1 file changed, 74 insertions(+), 65 deletions(-)
> 
> diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c
> index ef6c965c081c..0910eb940e23 100644
> --- a/xen/drivers/vpci/header.c
> +++ b/xen/drivers/vpci/header.c
> @@ -745,6 +745,76 @@ static int bar_add_rangeset(const struct pci_dev *pdev, struct vpci_bar *bar,
>      return !bar->mem ? -ENOMEM : 0;
>  }
>  
> +/* These capabilities can be exposed to the guest, that vPCI can handle. */
> +static const unsigned int guest_supported_caps[] = {
> +    PCI_CAP_ID_MSI,
> +    PCI_CAP_ID_MSIX,
> +};

Is there a reason this needs to be defined outside of the function
scope?  So far it's only used by vpci_init_capability_list().

> +
> +static int vpci_init_capability_list(struct pci_dev *pdev)
> +{
> +    int rc;
> +    bool mask_cap_list = false;
> +    bool is_hwdom = is_hardware_domain(pdev->domain);
> +    const unsigned int *caps = is_hwdom ? NULL : guest_supported_caps;
> +    const unsigned int n = is_hwdom ? 0 : ARRAY_SIZE(guest_supported_caps);
> +
> +    if ( pci_conf_read16(pdev->sbdf, PCI_STATUS) & PCI_STATUS_CAP_LIST )
> +    {
> +        unsigned int next, ttl = 48;
> +
> +        next = pci_find_next_cap_ttl(pdev->sbdf, PCI_CAPABILITY_LIST,
> +                                     caps, n, &ttl);
> +
> +        rc = vpci_add_register(pdev->vpci, vpci_read_val, NULL,
> +                               PCI_CAPABILITY_LIST, 1,
> +                               (void *)(uintptr_t)next);
> +        if ( rc )
> +            return rc;
> +
> +        next &= ~3;
> +
> +        if ( !next && !is_hwdom )
> +            /*
> +             * If we don't have any supported capabilities to expose to the
> +             * guest, mask the PCI_STATUS_CAP_LIST bit in the status register.
> +             */
> +            mask_cap_list = true;
> +
> +        while ( next && ttl )
> +        {
> +            unsigned int pos = next;
> +
> +            next = pci_find_next_cap_ttl(pdev->sbdf, pos + PCI_CAP_LIST_NEXT,
> +                                         caps, n, &ttl);
> +
> +            rc = vpci_add_register(pdev->vpci, vpci_hw_read8, NULL,
> +                                   pos + PCI_CAP_LIST_ID, 1, NULL);

There's no need to add this handler for the hardware domain, that's
already the default behavior in that case.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Apr 15 09:33:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 09:33:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.952349.1347822 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4cff-0007GQ-As; Tue, 15 Apr 2025 09:33:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 952349.1347822; Tue, 15 Apr 2025 09: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 1u4cff-0007GJ-6t; Tue, 15 Apr 2025 09:33:35 +0000
Received: by outflank-mailman (input) for mailman id 952349;
 Tue, 15 Apr 2025 09:33:34 +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 1u4cfe-0007G8-9B
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 09:33:34 +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 1u4cfd-00GvyC-2k;
 Tue, 15 Apr 2025 09:33:33 +0000
Received: from [2a01:e0a:1da:8420:b77:bd5:6e45:7633] (helo=l14)
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1u4cfd-001cP8-15;
 Tue, 15 Apr 2025 09:33: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=xenproject.org; s=20200302mail; h=In-Reply-To:Content-Transfer-Encoding:
	Content-Type:MIME-Version:References:Message-ID:Subject:Cc:To:From:Date;
	bh=7hehi1Eoc3aDwo8LczDZjj9RIm3LPB6mehqNwGGqHRA=; b=4/AQ+aqMmOd5SCkd8Zf83kP0kY
	MLhdvslq2BuT7pnYSTfG7ZU6sDi1BHz6jP7brUvnawDvmFRA5+UQx/JHk9tdiJsovTBJeRmYcgwII
	+rJ/f1Oksn/JP01urMfxh1LBYTfyT0fXdmu5KeNrK2ysTeVLO3xo5S4Ed4Bn+nCS8eb4=;
Date: Tue, 15 Apr 2025 11:33:31 +0200
From: Anthony PERARD <anthony@xenproject.org>
To: Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>
Cc: xen-devel@lists.xenproject.org,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: Re: [XEN PATCH] tools/tests: Fix newly introduced Makefile
Message-ID: <Z_4n62dJ6qNhI5bD@l14>
References: <20250414141714.10166-1-anthony@xenproject.org>
 <Z_4cLBroEtnmD3sD@macbook.lan>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <Z_4cLBroEtnmD3sD@macbook.lan>

On Tue, Apr 15, 2025 at 10:43:24AM +0200, Roger Pau Monn wrote:
> On Mon, Apr 14, 2025 at 04:17:14PM +0200, Anthony PERARD wrote:
> > From: Anthony PERARD <anthony.perard@vates.tech>
> > +
> > +-include $(DEPS_INCLUDE)
> 
> This include is likely also needed by vpci/Makefile?

No, because we don't build any object there, and build the binary
directly from source, for some reason. So there's no deps files been
generated.

Cheers,

-- 
Anthony PERARD


From xen-devel-bounces@lists.xenproject.org Tue Apr 15 09:41:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 09:41:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.952400.1347848 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4cnQ-0002PY-CV; Tue, 15 Apr 2025 09:41:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 952400.1347848; Tue, 15 Apr 2025 09:41:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4cnQ-0002PR-9p; Tue, 15 Apr 2025 09:41:36 +0000
Received: by outflank-mailman (input) for mailman id 952400;
 Tue, 15 Apr 2025 09:41: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=ai1O=XB=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u4cnO-0002PL-CH
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 09:41:34 +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 ce5849bf-19dd-11f0-9ffb-bf95429c2676;
 Tue, 15 Apr 2025 11:41:29 +0200 (CEST)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-43edb40f357so44380785e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 15 Apr 2025 02:41:29 -0700 (PDT)
Received: from [10.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-43f207aed49sm202751635e9.34.2025.04.15.02.41.27
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 15 Apr 2025 02:41:28 -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: ce5849bf-19dd-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744710088; x=1745314888; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=3CjwdWudMBWN99I+63GmUOAeSL/JTI8q0sSUCNDFfg0=;
        b=QpWNAJeEZcSq2lIl+rMCIAPXBYlv4ViirmZGWE/x4XkJz0eZKVFQJqObbVlnHb2HLs
         87zn3K8kuglGslhdljKFxFyRsgPR2KkLXvMZ6s8kUOWi8d+qLUamukc54vPiriKksx01
         Att/r0xTvE1cg/HDwVrrNdpLt9DePBVVAgef7BLCq0sahbxKCyPBxkALUHNRVy+1lkVi
         rKOTCifRJuAC3NWu72VblIV2GH4xagLUCy9nrK2bsZABDeG0BReoy4Poj0OgH6AFxcRV
         jTgLYyiA0YsGXKJupNp/zKCrETl0Xc0yfuYjGFuvhFBBDyi5mn14nVwGbdo+14JIixe5
         aemA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744710088; x=1745314888;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=3CjwdWudMBWN99I+63GmUOAeSL/JTI8q0sSUCNDFfg0=;
        b=ppIyWvgFp49DBIlXZiKKa2vvBUN8I3CWrGpKcegnvSdU6G9BFxhfFlg9npmzKejaCj
         wDPuS0Y/B68SDezkmkPUGQhG2K/K5K6YMM2YD5WJs14QnWcxJ7fajdEs4Kydq52zyrCz
         Re5SW9GA+9jZi8tUoN3tnO000sw2JUidcWkf4d3VrHN3NscmEwAyEZW6ktB6K3wAyUOl
         rGUuFTN23s8hDKMSy17ucLU+SKQ4sr7c8GP+wEcVdsrCq3Wx/XCp0bNJkkOHsVAn80vE
         KA9JJJacbV6XExkb0Fq2Z+rMXlEGdc1Brxw+OwPqRQs5We1KzLIvCX+3JFozXDr91vt+
         1M6A==
X-Forwarded-Encrypted: i=1; AJvYcCUHBoUnJK+k2dGUdTlxGtsiiGUIVaeptaoEjgTEVt028NoMEgZJFQLlkPvWd31lMf1S2/OTPqA8rcM=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy/GDSAyYqY5uRw1GM7wgVwEgObQrTSE38fQm2BPJJIkoRG4Zwr
	hX77XNmswNCYYvDI1d3Tm22bOJSXZqFCvYRh7Gx2MohXz2SEEyDlbjNqMlfYCA==
X-Gm-Gg: ASbGncv0cHnv8QcN1BwgIv7QdlYy9Nn7RQzJk5AGR0xt0jCaQt01L/W53jq4POAMhsx
	O8PIIvHbPKePgx+S3/qPk0tVEqL/Y9sH85t26Yg2v9r3m8U17svBZpA9KmL1WzD2dlWRKvVFsGj
	L5TOxHqZwCjGLxoKiK2FOYRpvIQxMIwT7qebl+bog+YeAq29gbStbDwJRWmV07ObRX1gswkP+1H
	ms4z3f4ZQ8AofDsAsZ3ZJbcZbor/cjBK4QhWsUGEhNX7ujNb+ka0JjeNdZ3Vz4C5Wr1HJUPxEyW
	w7xltv6RtPfPzH3aBGiETHXnrOP0X3oDoVwy98ZPuOW4QTj8l90lvD8+D9Ojo6ReCfb/X1pSAH2
	oOrk61+7r7oRg/RHp6bNaPUzr7Q==
X-Google-Smtp-Source: AGHT+IGfzInVEnAnkwYAdcl2cV+6fgiyX0HHHQCgYomXJMcNLL3KRh8ucGUzwIhaB30ZYw+ElJlrOQ==
X-Received: by 2002:a5d:6d8e:0:b0:390:e889:d1cf with SMTP id ffacd0b85a97d-39eaaebc66emr11148491f8f.37.1744710088372;
        Tue, 15 Apr 2025 02:41:28 -0700 (PDT)
Message-ID: <4dd5ada8-32e7-4b94-b2a4-51b20e09eb79@suse.com>
Date: Tue, 15 Apr 2025 11:41:27 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 3/5] x86/hvm: fix handling of accesses to partial r/o MMIO
 pages
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,
 Marek Marczykowski <marmarek@invisiblethingslab.com>
References: <20250411105411.22334-1-roger.pau@citrix.com>
 <20250411105411.22334-4-roger.pau@citrix.com>
 <eaf5f71b-2c56-4bd8-a45f-35280af16466@suse.com>
 <Z_0TXKMe6tfrYR9T@macbook.lan>
 <c92d5665-0940-40b5-8cbb-81889adf40c5@suse.com>
 <Z_00JReo7Ji7RwkD@macbook.lan>
 <7c3c91d9-4de8-4910-b26e-8782a0f0d364@suse.com>
 <Z_4aBL7JhTv_oxWR@macbook.lan>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <Z_4aBL7JhTv_oxWR@macbook.lan>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 15.04.2025 10:34, Roger Pau Monné wrote:
> On Tue, Apr 15, 2025 at 09:32:37AM +0200, Jan Beulich wrote:
>> On 14.04.2025 18:13, Roger Pau Monné wrote:
>>> On Mon, Apr 14, 2025 at 05:24:32PM +0200, Jan Beulich wrote:
>>>> On 14.04.2025 15:53, Roger Pau Monné wrote:
>>>>> On Mon, Apr 14, 2025 at 08:33:44AM +0200, Jan Beulich wrote:
>>>>>> I'm also concerned of e.g. VT-x'es APIC access MFN, which is
>>>>>> p2m_mmio_direct.
>>>>>
>>>>> But that won't go into hvm_hap_nested_page_fault() when using
>>>>> cpu_has_vmx_virtualize_apic_accesses (and thus having an APIC page
>>>>> mapped as p2m_mmio_direct)?
>>>>>
>>>>> It would instead be an EXIT_REASON_APIC_ACCESS vmexit which is handled
>>>>> differently?
>>>>
>>>> All true as long as things work as expected (potentially including the guest
>>>> also behaving as expected). Also this was explicitly only an example I could
>>>> readily think of. I'm simply wary of handle_mmio_with_translation() now
>>>> getting things to handle it's not meant to ever see.
>>>
>>> How was access to MMIO r/o regions supposed to be handled before
>>> 33c19df9a5a0 (~2015)?  I see that setting r/o MMIO p2m entries was
>>> added way before to p2m_type_to_flags() and ept_p2m_type_to_flags()
>>> (~2010), yet I can't figure out how writes would be handled back then
>>> that didn't result in a p2m fault and crashing of the domain.
>>
>> Was that handled at all before said change?
> 
> Not really AFAICT, hence me wondering how where write accesses to r/o
> MMIO regions supposed to be handled by (non-priv) domains.  Was the
> expectation that those writes trigger an p2m violation thus crashing
> the domain?

I think so, yes. Devices with such special areas weren't (aren't?) supposed
to be handed to DomU-s.

>> mmio_ro_do_page_fault() was
>> (and still is) invoked for the hardware domain only, and quite likely
>> the need for handling (discarding) writes for PVHv1 had been overlooked
>> until someone was hit by the lack thereof.
> 
> I see, I didn't realize r/o MMIO was only handled for PV hardware
> domains only.  I could arguably do the same for HVM in
> hvm_hap_nested_page_fault().
> 
> Not sure whether the subpage stuff is supposed to be functional for
> domains different than the hardware domain?  It seems to be available
> to the hanrdware domain only for PV guests, while for HVM is available
> for both PV and HVM domains:

DYM Dom0 and DomU here?

> is_hardware_domain(currd) || subpage_mmio_write_accept(mfn, gla)
> 
> In hvm_hap_nested_page_fault().

See the three XHCI_SHARE_* modes. When it's XHCI_SHARE_ANY, even DomU-s
would require this handling. It looks like a mistake that we permit the
path to be taken for DomU-s even when the mode is XHCI_SHARE_HWDOM. It
also looks like a mistake that the PV path has remained Dom0-only, even
in the XHCI_SHARE_ANY case. Cc-ing Marek once again ...

>>> I'm happy to look at other ways to handling this, but given there's
>>> current logic for handling accesses to read-only regions in
>>> hvm_hap_nested_page_fault() I think re-using that was the best way to
>>> also handle accesses to MMIO read-only regions.
>>>
>>> Arguably it would already be the case that for other reasons Xen would
>>> need to emulate an instruction that accesses a read-only MMIO region?
>>
>> Aiui hvm_translate_get_page() will yield HVMTRANS_bad_gfn_to_mfn for
>> p2m_mmio_direct (after all, "direct" means we expect no emulation is
>> needed; while arguably wrong for the introspection case, I'm not sure
>> that and pass-through actually go together). Hence it's down to
>> hvmemul_linear_mmio_access() -> hvmemul_phys_mmio_access() ->
>> hvmemul_do_mmio_buffer() -> hvmemul_do_io_buffer() -> hvmemul_do_io(),
>> which means that if hvm_io_intercept() can't handle it, the access
>> will be forwarded to the responsible DM, or be "processed" by the
>> internal null handler.
>>
>> Given this, perhaps what you do is actually fine. At the same time
>> note how several functions in hvm/emulate.c simply fail upon
>> encountering p2m_mmio_direct. These are all REP handlers though, so
>> the main emulator would then try emulating the insn the non-REP way.
> 
> I'm open to alternative ways of handling such accesses, just used what
> seemed more natural in the context of hvm_hap_nested_page_fault().
> 
> Emulation of r/o MMIO accesses failing wouldn't be an issue from Xen's
> perspective, that would "just" result in the guest getting a #GP
> injected.

That's not the part I'm worried about. What worries me is that we open up
another (or better: we're widening a) way to hit the emulator in the first
place. (Plus, as said, the issue with the not really tidy P2M type system.)

> Would you like me to add some of your reasoning above to the commit
> message?

While I'd still be a little hesitant as to ack-ing of the result, I think
that's all I'm really asking for, yes.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 15 09:42:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 09:42:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.952415.1347858 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4coQ-0002zZ-Qq; Tue, 15 Apr 2025 09:42:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 952415.1347858; Tue, 15 Apr 2025 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 1u4coQ-0002zS-Ns; Tue, 15 Apr 2025 09:42:38 +0000
Received: by outflank-mailman (input) for mailman id 952415;
 Tue, 15 Apr 2025 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=OGoX=XB=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u4coP-0002zD-RD
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 09:42:37 +0000
Received: from mail-pf1-x42e.google.com (mail-pf1-x42e.google.com
 [2607:f8b0:4864:20::42e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f67acadc-19dd-11f0-9eae-5ba50f476ded;
 Tue, 15 Apr 2025 11:42:37 +0200 (CEST)
Received: by mail-pf1-x42e.google.com with SMTP id
 d2e1a72fcca58-736b98acaadso4791351b3a.1
 for <xen-devel@lists.xenproject.org>; Tue, 15 Apr 2025 02:42:37 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 d2e1a72fcca58-73bd1fe6b4esm8077195b3a.0.2025.04.15.02.42.34
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 15 Apr 2025 02:42:35 -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: f67acadc-19dd-11f0-9eae-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744710155; x=1745314955; 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=c8uyRkZg7HCiC0XTq1yi8oVmOZHsOsRgynksx7DJLv8=;
        b=Yx5+nVeK5lNrSzmz3o6RBtSEBuRpP3tmMuI7JR2nSBFc84v3uXQ5/5bb3oLtAe8TiW
         /29fben8bJ5IcMTUzLI92tVXW24ub+ArMMMBPB16Ol98zZKAa+WRbcTE7ySTI0g32zbK
         /uxLcY1uvNYyVZh4wvoTP0uaCHdi5NM6GMd+o=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744710155; x=1745314955;
        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=c8uyRkZg7HCiC0XTq1yi8oVmOZHsOsRgynksx7DJLv8=;
        b=JI2Vgr72l5Qw51ZDmrw585a+1EPIKQPnsZaMGIUOM01xELiwWVkeJRZ95M3rAxiaXX
         3RrzRPWvLa3NQqDbH0pLyGAXnznAXV6QoNIulCtmbDazFc9LTlTWVnyRv4Yh4CY94Xte
         ED/HbMq7YruJhr9vXyPkl3YCXxsvsDFKGvS89m+HKJ4TM0cJUkX83BUI6WJIvHeQRIsT
         MlE68BKas7YSd3HnHmBOFg7OOc+3RSJr3kKS6zQDQ9VsX3yAIIj3C1g7sRfqldQgLD2h
         b22vtif/wg8aL+aYgY7S70nhJFWZ2k2E+zeKf7lgI74iC2vmas8zwyKwIVpgUyteuzO7
         /D8Q==
X-Gm-Message-State: AOJu0YwFrX7Y8/5CF7ib5fNf/NkcIOlHN+MPEqT1x1u6TSZIIwe6uqTW
	2SYiUTfsABXw3+p7ThjqZlFd+JIs0DEr0zcmmmKDhNs+BESU0Uda4bXrvwHG2P8=
X-Gm-Gg: ASbGncu4ABZNT9o+BBC+PK/MeGWneb6STt+/pIaEM4QXF75V9MdABZL0ATEULMjkYIa
	hYOkKvfy6nZ2tbGbDFO8XX/hpRE+B50QgxrCezLft2cCuO6gskJthkwIpVsSOJmVTpUBavOXTcd
	mjVjrRhdrMKp3lPPXdgFoCY/d1X2a9PPI+ekJ1LdJnkSPG3/c82TBa6MTkHL9bAfjUhgwMlRoUh
	V/3WiUvfwoRTw4+tQq71nhju5sGYcXy6amh5qHJSeR9cuaAxfEZHY/lK9OhMP4ulAO9FzmFlZ5Y
	H4FFlzp98azUM5tX0f9FR/rpBuMEprOZjC9sE7CuJudiMw==
X-Google-Smtp-Source: AGHT+IHfWLWKlU9AxILLcyPUIHqp12ThhM8buDvvroUBZTQCxchGKzo+Fjv8AUfFAhbte+kAp5Hpow==
X-Received: by 2002:a05:6a21:339d:b0:1f5:8678:1832 with SMTP id adf61e73a8af0-201797a1866mr20990869637.11.1744710155578;
        Tue, 15 Apr 2025 02:42:35 -0700 (PDT)
Date: Tue, 15 Apr 2025 11:42:30 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jiqian Chen <Jiqian.Chen@amd.com>
Cc: xen-devel@lists.xenproject.org, Huang Rui <ray.huang@amd.com>
Subject: Re: [PATCH v2 3/8] vpci/header: Emulate extended capability list for
 host
Message-ID: <Z_4qBjte-STlLIum@macbook.lan>
References: <20250409064528.405573-1-Jiqian.Chen@amd.com>
 <20250409064528.405573-4-Jiqian.Chen@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <20250409064528.405573-4-Jiqian.Chen@amd.com>

On Wed, Apr 09, 2025 at 02:45:23PM +0800, Jiqian Chen wrote:
> Add a new function to emulate extended capability list for host,
> and call it in init_header(). So that, it will be easy to hide
> a capability whose initialization fails.
> 
> As for the extended capability list of guest, keep hiding it.
> 
> Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
> ---
> cc: "Roger Pau Monné" <roger.pau@citrix.com>
> ---
> v1->v2 changes:
> new patch
> 
> Best regards,
> Jiqian Chen.
> ---
>  xen/drivers/vpci/header.c | 44 ++++++++++++++++++++++++++++++++-------
>  1 file changed, 36 insertions(+), 8 deletions(-)
> 
> diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c
> index 0910eb940e23..6833d456566b 100644
> --- a/xen/drivers/vpci/header.c
> +++ b/xen/drivers/vpci/header.c
> @@ -815,6 +815,39 @@ static int vpci_init_capability_list(struct pci_dev *pdev)
>      return rc;
>  }
>  
> +static int vpci_init_ext_capability_list(struct pci_dev *pdev)
> +{
> +    int rc;
> +    u32 header;

uint32_t would be preferred.

> +    unsigned int pos = 0x100U, ttl = 480;
> +
> +    if ( !is_hardware_domain(pdev->domain) )
> +    {
> +        /* Extended capabilities read as zero, write ignore */
> +        rc = vpci_add_register(pdev->vpci, vpci_read_val, NULL,
> +                               pos, 4, (void *)0);
> +        if ( rc )
> +            return rc;

I think you want to unconditionally return here, otherwise you will
most likely add a duplicated handler over "pos" when going inside the
loop below?

Also for domU we don't want to expose any extended capabilities yet.

> +    }
> +
> +    while ( pos && ttl-- )
> +    {
> +        header = pci_conf_read32(pdev->sbdf, pos);
> +
> +        rc = vpci_add_register(pdev->vpci, vpci_read_val, NULL,

You don't want to pass NULL here, as that would prevent dom0 from
writing to the register, you instead want to pass vpci_hw_write32 I
think.

> +                               pos, 4, (void *)(uintptr_t)header);
> +        if ( rc )
> +            return rc;
> +
> +        if ( (header == 0) || (header == -1) )
> +            return 0;
> +
> +        pos = PCI_EXT_CAP_NEXT(header);

Don't you need to check that pos >= 0x100?  Possibly done in the while
loop condition: while ( pos >= 0x100 && ... )

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Apr 15 09:49:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 09:49:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.952429.1347868 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4cup-0003dN-F7; Tue, 15 Apr 2025 09:49:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 952429.1347868; Tue, 15 Apr 2025 09: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 1u4cup-0003dG-Bt; Tue, 15 Apr 2025 09:49:15 +0000
Received: by outflank-mailman (input) for mailman id 952429;
 Tue, 15 Apr 2025 09:49: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=ai1O=XB=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u4cuo-0003dA-6Q
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 09:49:14 +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 e251591e-19de-11f0-9ffb-bf95429c2676;
 Tue, 15 Apr 2025 11:49:12 +0200 (CEST)
Received: by mail-wr1-x42f.google.com with SMTP id
 ffacd0b85a97d-3913958ebf2so4701397f8f.3
 for <xen-devel@lists.xenproject.org>; Tue, 15 Apr 2025 02:49:12 -0700 (PDT)
Received: from [10.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-43f20625592sm205418325e9.10.2025.04.15.02.49.10
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 15 Apr 2025 02:49: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: e251591e-19de-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744710551; x=1745315351; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=PpZHgBn5hw3UIf2qEEE8zreim0QjF0JCfQqrEIjsV9k=;
        b=AwOjLQS0lCkMN/EgdEJ0wuQA8tzQAiB341rtCWKXNvblXucCl1CFLXHrgexQzyJnxT
         dA+/oKbv20FxQfMRA8rTVZwQTTVQa7j0bvdj0pD800NlYMCAeO6J7YbMFeZG9EO8EYJ/
         0nPF4EE8Y/eZc1v3VC4aWgtEozl2MKUi0jIFdJrZAXGDfAWezUdRKHsEBq8/bQ+wUGYU
         5qUf/F3r/zSsnqHo4DfiFKjGxo39Hk5FDhW4k+oNBjlCVxZviqVv/a9tlwusCqBMprbk
         HDGYtUwxly+XNb/X+0y5TVF2WUYCx8zRU3FaUZ4KI7Nk6zpIhaZTkMMaDjggDC2KnNF5
         P+aw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744710551; x=1745315351;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=PpZHgBn5hw3UIf2qEEE8zreim0QjF0JCfQqrEIjsV9k=;
        b=A1Xh9bqFefRFYNePtRT3sforYmsNMZmbia/CP6BVJUFvNigvZqHC/KqkpoO9i0uDL8
         +x5/REgRMQvPJqjXpISPTllkXjwdQKpIi+J5BTWni3su1PX3NAI5ch/O7xmyIUbRCyCt
         zX795tpkGc2Jtxt/PHfqaZHu1YKCBos46t0M5x76cZTNnIw+ELbZKyhOtg9KU+e67l+n
         /chD6HDXT2EuF5vaByRUEeCzsMPl4S/fogGk878BSDKz3eI1EmyJ8IOo3zVv+YhtHDrB
         gdfy8C3efhWxcj0y4CXgPrmrZkARZ+f2IAKygLQI0JkNhBY4sa1P9a7c7jlV2UlOcjPd
         Mmvw==
X-Forwarded-Encrypted: i=1; AJvYcCVV7B5F7Y5R0Ti3yytJ3HVKf5q/UdpHS6i8UahuYN/GyNGvrdG3DtqFzgqC2czWzbpiJrT5wNmX3f0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyOUNleYLpDMzVoMg9kHpfaHHVwGpP0BzzEUo6+r8d30jfL4+sY
	RFTWqIYyvDF/Jn2ZsgpmrD0PrODs+FKzPHj3CLVMBwglpyXuAVT+ImRY1Cd3VA==
X-Gm-Gg: ASbGncsBdOcCi4K+qWdF/Up//aX6qS/XGvlhoDPL9oiJ8RMYTqv1VZFrJja7StQBLhF
	1UUAaY/0TxOkFqtab6bc4agyBb+M60xpKWJhnm/a2oAXWQYINWLCo28Ohqv5nZlp8W/BCKRhohP
	eaalrNDukb1QgXy0WUJqGrKApzb8wpqEb/B798kpvIiNwklh0/4r5DdYcA9lLaanOwnc1V3QfsS
	TID8ohJnYFfzRYtocShkY0S5YLO+JQDVFi5FwJmuSaYYRqdVLL9S769rIM6j3/3w22/yiM423V6
	RmmlyOLbbtnpWM3Hadax/7fQmMSjjXucuYALkWGkGZ0MPNGQTO7gsiSYJ6Xpz0x/5Gsy/uKX2FM
	j1HHx2y7NUQccW+AAZRXhGvxTtFPLzBXmn4LE
X-Google-Smtp-Source: AGHT+IH4qUe7Xw/UQuCk7ZMH7VCXJezvF8Ia9xlWeeMnwBBslrDwQ5qSWuy4J7ZnD/OYH5uTWRtfwQ==
X-Received: by 2002:a5d:64cd:0:b0:39c:268b:8b66 with SMTP id ffacd0b85a97d-39eaaebab7bmr13205299f8f.43.1744710551425;
        Tue, 15 Apr 2025 02:49:11 -0700 (PDT)
Message-ID: <dd4dd741-b063-4619-a893-a9c02c0ca791@suse.com>
Date: Tue, 15 Apr 2025 11:49:10 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 3/8] vpci/header: Emulate extended capability list for
 host
To: Jiqian Chen <Jiqian.Chen@amd.com>
Cc: Huang Rui <ray.huang@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
References: <20250409064528.405573-1-Jiqian.Chen@amd.com>
 <20250409064528.405573-4-Jiqian.Chen@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: <20250409064528.405573-4-Jiqian.Chen@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 09.04.2025 08:45, Jiqian Chen wrote:
> --- a/xen/drivers/vpci/header.c
> +++ b/xen/drivers/vpci/header.c
> @@ -815,6 +815,39 @@ static int vpci_init_capability_list(struct pci_dev *pdev)
>      return rc;
>  }
>  
> +static int vpci_init_ext_capability_list(struct pci_dev *pdev)
> +{
> +    int rc;
> +    u32 header;
> +    unsigned int pos = 0x100U, ttl = 480;
> +
> +    if ( !is_hardware_domain(pdev->domain) )
> +    {
> +        /* Extended capabilities read as zero, write ignore */
> +        rc = vpci_add_register(pdev->vpci, vpci_read_val, NULL,
> +                               pos, 4, (void *)0);
> +        if ( rc )
> +            return rc;
> +    }
> +
> +    while ( pos && ttl-- )
> +    {
> +        header = pci_conf_read32(pdev->sbdf, pos);
> +
> +        rc = vpci_add_register(pdev->vpci, vpci_read_val, NULL,
> +                               pos, 4, (void *)(uintptr_t)header);
> +        if ( rc )
> +            return rc;
> +
> +        if ( (header == 0) || (header == -1) )
> +            return 0;

I realize pci_find_next_ext_capability() also has such a check, but even
there it's not really clear to me why compare not only against 0, but also
again -1 (aka ~0).

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 15 10:04:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 10:04:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.952444.1347877 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4d9N-00009P-L4; Tue, 15 Apr 2025 10:04:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 952444.1347877; Tue, 15 Apr 2025 10: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 1u4d9N-00009I-ID; Tue, 15 Apr 2025 10:04:17 +0000
Received: by outflank-mailman (input) for mailman id 952444;
 Tue, 15 Apr 2025 10: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=OGoX=XB=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u4d9M-00009C-SS
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 10:04:16 +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 f6defdea-19e0-11f0-9eae-5ba50f476ded;
 Tue, 15 Apr 2025 12:04:05 +0200 (CEST)
Received: by mail-ej1-x634.google.com with SMTP id
 a640c23a62f3a-ac3b12e8518so893670266b.0
 for <xen-devel@lists.xenproject.org>; Tue, 15 Apr 2025 03:04:05 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 a640c23a62f3a-acaa1ccc135sm1069658566b.157.2025.04.15.03.04.04
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 15 Apr 2025 03:04:04 -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: f6defdea-19e0-11f0-9eae-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744711445; x=1745316245; 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=gpPBqdbVg5LstLE2FO9qS/9lR3THiGzgfVosT1uJr7I=;
        b=nfiMPUuqwoae94N+iqHT62y84+Ld5dHbiEdEVotCznKF3RoVtK3YwEng3JIRv9tguS
         7VmMwvLEgCOIQE+iuDnLsAjQ0sAf3aSPPLVayKXwdv5MoV8e7YlZaoJMkewsMQo2nhs5
         r/zpYgoKoK3TXRNzzcfF/OMLM+lJIY8ur4EXk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744711445; x=1745316245;
        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=gpPBqdbVg5LstLE2FO9qS/9lR3THiGzgfVosT1uJr7I=;
        b=L0wib2odx2T7v5nEhL8K0wdt5txNRoE1IUcYhcGlecgtGO3yc6AOTsdNxqRIwPk6bO
         Iw9yO3imTcnSGt0eNZSYGFEguGkUYm+DW+sLx1ynghTdeonosEZ3slQdfkWqyXgHm/BQ
         PH7Jd8VjeiyMfmISXhxFHDCg2PUA0SN8RLUHDFGZam7OCKObNfe/ohOXyTcnvyx80LTM
         /zJH0P1EZy73kHs+jEgmJgn4bin3YOopfkZ/vlGkDfM4Sr45QbdSt2KTjWWy7fqr4n3+
         vBeB6OkCFdkeiRN0ZPtjdqr73LDKyJMJuqOVwa2/QZictNlQ5wsdE3rXoz64zg9GMGmB
         7gtw==
X-Forwarded-Encrypted: i=1; AJvYcCVBMQkt9PUcL4DW1ouBRO75vyAYEzlbYlahx92lIglPU+0abuiHwNZ4HAWcKsiRtBtMD1Lh8Ubqa3A=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyZMC8cqxaRReyOrSAhc5Rw79FmWxB6GWpcsuoUo9TRrhwnuOaT
	4ONRiw3bIqUDD4/yxWNXGquWshTB6UR+aoNVIvHvGZTAtLxRztKJI0QyLiGuXw0=
X-Gm-Gg: ASbGncvBfyqh6PdLugxDyAABHpbTVoB0UBRcanPxMGra0wrhX755s4MCHHg15JBnN+l
	OLtnRf6dTElDJohvtEedmsDWFCYrEA/fjvE39gxCajo79RlNUMNST7gfdbv/tm5PW4ILuPglXZX
	7tA0DQUMShmKebH3prYFQQdLbdhs5eTvNn6u4DDuPVJN2xSkuxOaHSUXZ6bG00VYyAVQslYxsO3
	0G4dlz6ROwVCZ8337xrxxat5wYxjEPOeti47ZWl2iJqvoAofPdTuyYZIGxJ/9ubyquytrglxytN
	3A0cMR0Hg3eg+LW/r2ttdEZ7/VNevIv+pwFdpl7prv/XiA==
X-Google-Smtp-Source: AGHT+IFUOYLmAHomVvTtFMO/m85cHIk0QOzpGzS+Gg+9RDAM9uU3gf6f/5d29+sSvR83i+d2g9hnDw==
X-Received: by 2002:a17:907:9715:b0:ac7:c79d:f8ce with SMTP id a640c23a62f3a-acad36d7acbmr1291226966b.57.1744711444779;
        Tue, 15 Apr 2025 03:04:04 -0700 (PDT)
Date: Tue, 15 Apr 2025 12:04:03 +0200
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,
	Marek Marczykowski <marmarek@invisiblethingslab.com>
Subject: Re: [PATCH 3/5] x86/hvm: fix handling of accesses to partial r/o
 MMIO pages
Message-ID: <Z_4vE1qHlvGliqXY@macbook.lan>
References: <20250411105411.22334-1-roger.pau@citrix.com>
 <20250411105411.22334-4-roger.pau@citrix.com>
 <eaf5f71b-2c56-4bd8-a45f-35280af16466@suse.com>
 <Z_0TXKMe6tfrYR9T@macbook.lan>
 <c92d5665-0940-40b5-8cbb-81889adf40c5@suse.com>
 <Z_00JReo7Ji7RwkD@macbook.lan>
 <7c3c91d9-4de8-4910-b26e-8782a0f0d364@suse.com>
 <Z_4aBL7JhTv_oxWR@macbook.lan>
 <4dd5ada8-32e7-4b94-b2a4-51b20e09eb79@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <4dd5ada8-32e7-4b94-b2a4-51b20e09eb79@suse.com>

On Tue, Apr 15, 2025 at 11:41:27AM +0200, Jan Beulich wrote:
> On 15.04.2025 10:34, Roger Pau Monné wrote:
> > On Tue, Apr 15, 2025 at 09:32:37AM +0200, Jan Beulich wrote:
> >> On 14.04.2025 18:13, Roger Pau Monné wrote:
> >>> On Mon, Apr 14, 2025 at 05:24:32PM +0200, Jan Beulich wrote:
> >>>> On 14.04.2025 15:53, Roger Pau Monné wrote:
> >>>>> On Mon, Apr 14, 2025 at 08:33:44AM +0200, Jan Beulich wrote:
> >>>>>> I'm also concerned of e.g. VT-x'es APIC access MFN, which is
> >>>>>> p2m_mmio_direct.
> >>>>>
> >>>>> But that won't go into hvm_hap_nested_page_fault() when using
> >>>>> cpu_has_vmx_virtualize_apic_accesses (and thus having an APIC page
> >>>>> mapped as p2m_mmio_direct)?
> >>>>>
> >>>>> It would instead be an EXIT_REASON_APIC_ACCESS vmexit which is handled
> >>>>> differently?
> >>>>
> >>>> All true as long as things work as expected (potentially including the guest
> >>>> also behaving as expected). Also this was explicitly only an example I could
> >>>> readily think of. I'm simply wary of handle_mmio_with_translation() now
> >>>> getting things to handle it's not meant to ever see.
> >>>
> >>> How was access to MMIO r/o regions supposed to be handled before
> >>> 33c19df9a5a0 (~2015)?  I see that setting r/o MMIO p2m entries was
> >>> added way before to p2m_type_to_flags() and ept_p2m_type_to_flags()
> >>> (~2010), yet I can't figure out how writes would be handled back then
> >>> that didn't result in a p2m fault and crashing of the domain.
> >>
> >> Was that handled at all before said change?
> > 
> > Not really AFAICT, hence me wondering how where write accesses to r/o
> > MMIO regions supposed to be handled by (non-priv) domains.  Was the
> > expectation that those writes trigger an p2m violation thus crashing
> > the domain?
> 
> I think so, yes. Devices with such special areas weren't (aren't?) supposed
> to be handed to DomU-s.

Oh, I see.  That makes stuff a bit clearer.  I think we would then
also want to add some checks to {ept_}p2m_type_to_flags()?

I wonder why handling of mmio_ro_ranges was added to the HVM p2m code
in ~2010 then.  If mmio_ro_ranges is only supposed to be relevant for
the hardware domain in ~2010 an HVM dom0 was not even in sight?

Sorry to ask so many questions, I'm a bit confused about how this
was/is supposed to work.

> >> mmio_ro_do_page_fault() was
> >> (and still is) invoked for the hardware domain only, and quite likely
> >> the need for handling (discarding) writes for PVHv1 had been overlooked
> >> until someone was hit by the lack thereof.
> > 
> > I see, I didn't realize r/o MMIO was only handled for PV hardware
> > domains only.  I could arguably do the same for HVM in
> > hvm_hap_nested_page_fault().
> > 
> > Not sure whether the subpage stuff is supposed to be functional for
> > domains different than the hardware domain?  It seems to be available
> > to the hanrdware domain only for PV guests, while for HVM is available
> > for both PV and HVM domains:
> 
> DYM Dom0 and DomU here?

Indeed, sorry.

> > is_hardware_domain(currd) || subpage_mmio_write_accept(mfn, gla)
> > 
> > In hvm_hap_nested_page_fault().
> 
> See the three XHCI_SHARE_* modes. When it's XHCI_SHARE_ANY, even DomU-s
> would require this handling. It looks like a mistake that we permit the
> path to be taken for DomU-s even when the mode is XHCI_SHARE_HWDOM.

Arguable a domU will never get the device assigned in the first place
unless the share mode is set to XHCI_SHARE_ANY.  For the other modes
the device is hidden, and hence couldn't be assigned to a domU anyway.

> It
> also looks like a mistake that the PV path has remained Dom0-only, even
> in the XHCI_SHARE_ANY case. Cc-ing Marek once again ...
> 
> >>> I'm happy to look at other ways to handling this, but given there's
> >>> current logic for handling accesses to read-only regions in
> >>> hvm_hap_nested_page_fault() I think re-using that was the best way to
> >>> also handle accesses to MMIO read-only regions.
> >>>
> >>> Arguably it would already be the case that for other reasons Xen would
> >>> need to emulate an instruction that accesses a read-only MMIO region?
> >>
> >> Aiui hvm_translate_get_page() will yield HVMTRANS_bad_gfn_to_mfn for
> >> p2m_mmio_direct (after all, "direct" means we expect no emulation is
> >> needed; while arguably wrong for the introspection case, I'm not sure
> >> that and pass-through actually go together). Hence it's down to
> >> hvmemul_linear_mmio_access() -> hvmemul_phys_mmio_access() ->
> >> hvmemul_do_mmio_buffer() -> hvmemul_do_io_buffer() -> hvmemul_do_io(),
> >> which means that if hvm_io_intercept() can't handle it, the access
> >> will be forwarded to the responsible DM, or be "processed" by the
> >> internal null handler.
> >>
> >> Given this, perhaps what you do is actually fine. At the same time
> >> note how several functions in hvm/emulate.c simply fail upon
> >> encountering p2m_mmio_direct. These are all REP handlers though, so
> >> the main emulator would then try emulating the insn the non-REP way.
> > 
> > I'm open to alternative ways of handling such accesses, just used what
> > seemed more natural in the context of hvm_hap_nested_page_fault().
> > 
> > Emulation of r/o MMIO accesses failing wouldn't be an issue from Xen's
> > perspective, that would "just" result in the guest getting a #GP
> > injected.
> 
> That's not the part I'm worried about. What worries me is that we open up
> another (or better: we're widening a) way to hit the emulator in the first
> place. (Plus, as said, the issue with the not really tidy P2M type system.)

But the hit would be limited to domains having r/o p2m_mmio_direct
entries in the p2m, as otherwise the path would be unreachable?

> > Would you like me to add some of your reasoning above to the commit
> > message?
> 
> While I'd still be a little hesitant as to ack-ing of the result, I think
> that's all I'm really asking for, yes.

As said before - I'm happy to consider suggestions here, I don't want
to fix this with yet another bodge that will cause us further issues
down the road.  What I proposed seemed like the most natural way to
handle those accesses IMO, but I'm not an expert on the emulator.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Apr 15 10:07:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 10:07:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.952455.1347888 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4dCM-0000ik-20; Tue, 15 Apr 2025 10:07:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 952455.1347888; Tue, 15 Apr 2025 10:07: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 1u4dCL-0000ib-VQ; Tue, 15 Apr 2025 10:07:21 +0000
Received: by outflank-mailman (input) for mailman id 952455;
 Tue, 15 Apr 2025 10:07: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=QN48=XB=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1u4dCK-0000iT-1L
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 10:07:20 +0000
Received: from NAM10-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam10on20628.outbound.protection.outlook.com
 [2a01:111:f403:2413::628])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6919900b-19e1-11f0-9eae-5ba50f476ded;
 Tue, 15 Apr 2025 12:07:18 +0200 (CEST)
Received: from PH7PR12MB5854.namprd12.prod.outlook.com (2603:10b6:510:1d5::20)
 by PH7PR12MB7283.namprd12.prod.outlook.com (2603:10b6:510:20a::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.28; Tue, 15 Apr
 2025 10:07:14 +0000
Received: from PH7PR12MB5854.namprd12.prod.outlook.com
 ([fe80::bd58:fa72:e622:dd76]) by PH7PR12MB5854.namprd12.prod.outlook.com
 ([fe80::bd58:fa72:e622:dd76%5]) with mapi id 15.20.8632.030; Tue, 15 Apr 2025
 10:07: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: 6919900b-19e1-11f0-9eae-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=DY20FHChHt3ULmhKmIvloLj05ewA+VvkaCABTZLFDgjZ/Tzs0LaMPJxr78PMB+fng33zb9g9mGub2KPS/Rv+UOsnft4E+KqNcE8W3jMkZoOKv5J5+HQFfZSp55JhpdfYDYOC8Ussc3apop0xvgMArEm/UA56z+VCLJPb9AFEEbJVrOJPIl9aOwDKWOK468JBH7jjwoQnaHz7PDRU7WpOlQrfB25lHiMbqUX3z86TmSVNn6EhLkTB8N3sD3lyzRXWRtEv7GKiU8WeSDwZRHsOoxvfUo9N8T5/mZMFjaXme4gRV4/cIl/QxsaCvkhymWiU20MpAMBodCDRGPPncYWLjg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=dYOjWiU60g2a07AsV7j0wwyduqrQKjoZR1glfNH/6NA=;
 b=xE1+QOLCfORtqHwEwopjVzmlXyuLQXPPsxb2Uz9CLAuXTggGAGRJBCQ/3Ui6GspmZjK5632iBcKbXW9dpgTj4xNDXjCMJURY496X/Qwt/xHQRF+BUpAPCE0FYDLvF0dHQOrrY7UiKCgnIrYuqrV4Q4rNIvs+x3W5UFKQ7BdNVSFiy6crgo/OksqKOaQ05MxbpBN1oPdcNew2PSdjg0UBzHsx5l8jte1D7kH3xaxsD/NbKbQ6DYOAyDoJoTu6hbOSe36fg+jhCQnS0beq+y0UYdDrU0LCeHxlVg7iv/AEoVc7eZglSv2uy5qf6d6sRFSuQU3UoGsR3TCOqoQiv0F+6A==
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=dYOjWiU60g2a07AsV7j0wwyduqrQKjoZR1glfNH/6NA=;
 b=CsLCGe1kUsHUfm5aefWFEFpbHv28tcEhos+x+YhWfFpWJ86TuM4aEgTHaFf75wbhaF1440af0DrczMCn+MpfjK9XfmdZ9CH71Tj6/GBrA8ZpTciSAC6mZW96Dzitwy0bhk7cbmAJur8kFrOURNYsZ64Nc2JCA00rs1Lk5CTff0U=
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>, "Huang,
 Ray" <Ray.Huang@amd.com>, "Chen, Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [PATCH v2 2/8] vpci/header: Emulate legacy capability list for
 host
Thread-Topic: [PATCH v2 2/8] vpci/header: Emulate legacy capability list for
 host
Thread-Index: AQHbqRsaTINnyZcO4ESL6xMBZUfUtLOkfmYAgACPYIA=
Date: Tue, 15 Apr 2025 10:07:14 +0000
Message-ID:
 <PH7PR12MB58546CF210C99C8B835FFC4AE7B22@PH7PR12MB5854.namprd12.prod.outlook.com>
References: <20250409064528.405573-1-Jiqian.Chen@amd.com>
 <20250409064528.405573-3-Jiqian.Chen@amd.com> <Z_4mAAm-gCmZTJub@macbook.lan>
In-Reply-To: <Z_4mAAm-gCmZTJub@macbook.lan>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-exchange-imapappendstamp: PH7PR12MB5854.namprd12.prod.outlook.com
 (15.20.8632.030)
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: PH7PR12MB5854:EE_|PH7PR12MB7283:EE_
x-ms-office365-filtering-correlation-id: 3e7bce8b-d30b-41d8-8d5f-08dd7c054bf3
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?QVp3R2trWGs0ZE90dVNVcVhWUnFGaGlhWWV3cXYvWm81c29vMXROUEVOazFH?=
 =?utf-8?B?L0tuOEpjOXp1ckxJZWtadTVjdHdFS09zVzk1YllnNnJ6Y2U2Z2VEQmhYbjcz?=
 =?utf-8?B?RFdxelF1YmRuVW84RlIyYXRyaENTd2xYbWpNOEtFRW9ueFpyQkQ0Mi9uMFpG?=
 =?utf-8?B?bVRFeVFFRFE4ek04cWYwMkhJTVprbFNWVkxjMGlXd2FFRUc5T3JwNTdKL1p6?=
 =?utf-8?B?OFJqQktzREdHVGQvVDQ0SXRFMHJmZWNJV2JEd2VQeGNuWHNJVWR3WjVlcFJj?=
 =?utf-8?B?WDVvS0l6VXFFeE1xb0xSdk4vVHZ3bTJ6ZmQ1WnVDQjcvV1pXa3lpYmMwbXlk?=
 =?utf-8?B?WjNqYjU3R1Y5MnErcTYrRkhLQmowanNNbDhydVF0ZXNId3BXY0w2dkNZM251?=
 =?utf-8?B?WTBPbkw2QUF3aUdHc1pZMlVXTHRQTlk5YkkvNCs0ckRrdzNNZGFHZ0FpRVZT?=
 =?utf-8?B?NXBlaGxHYUhON2NqNjJBVDYwMjJVazRDNlkyYkFTbGpCYnY4UVBJdW56MEZk?=
 =?utf-8?B?NmQ2NmlwNkFKNmdDK1FRQVo2YTdyUm9GSkpEZ2RyTExIb0todzd2c2VjVzEv?=
 =?utf-8?B?TUVRT3krTEtNVS9ZUWloYXhNZkFXUkhSSWU2Y3ZFenNzc0FOeU1MMjI2UVBi?=
 =?utf-8?B?RmV5TE1JVlhBVzBLWHo1dDBESldXK2FoU0RZa25pTGRYNnVSdjJwNGU4dTdl?=
 =?utf-8?B?bFlxRTl2SHdBalMrWnZzazE2aDlDSjJ4eEJPci9rQi9VVmJMcDZlcnpwSkpm?=
 =?utf-8?B?bjArd2ZQREpOTE9QYnhwWHlSN1QxTUZVdzl4amNuK0VpZzdkbmVvZ00xNXMz?=
 =?utf-8?B?VFlMTmtxSjFRM0lLVkQrbFRhUGJUdVN4WmxFM0FjVHJIQ2NRTE5oNURGYW1k?=
 =?utf-8?B?Um9Kb3duNWtBWTdVVEs5YVRBa0hJQ3BFYnNicVRhdmtoZndLNFFraDgyRHVz?=
 =?utf-8?B?RUdTNXVtaUNjZzNpQ1E0RXZFSG84dGJvaExCNnNCK0VJbTNPeVJpblJSMjJL?=
 =?utf-8?B?aTMvcjQ3dWRzdDFRMVhRclY4L2FDOFo0c0tDMk02MXhHQlA0dDF4ZFpLQ0JZ?=
 =?utf-8?B?RlB6NFlPcmdnNG1MN3hTWm1GSGx3dm1BN3lSUC9FTi8zQTg4NWZXQXpHd05F?=
 =?utf-8?B?TG8xRkVzVENOdC9aSEsyTnhEWnc1NkNRdDFEelY4amFzT0NNTVZJcWwvQlV1?=
 =?utf-8?B?Um9hc1c3SjB2U0dEcGI1RGlkYUcxdDdSaEg1Z3B6dnkvdDIwZ0Z0dXFNR2sr?=
 =?utf-8?B?bW1ublA3bHA5Z0dDUnUwYlBsWjZwNkt4TWtPbytEOXBOQjBHTEJkOHpDM1Iw?=
 =?utf-8?B?MS9EbWlzeUV6bDBjUld5NXFyYmNTbHdMblhBa3o1OS95S0FZRlJzQlcraHBB?=
 =?utf-8?B?WXpZRU0yWXpiNThZdS9JWGtGQmJZSTl3bVMwODRkVjNOWXFMb0RMRmlianZt?=
 =?utf-8?B?aGo2WjFIdzQrNGZrQ3k1SWNXcFY1Nm5hdnV3S3VLTUNhMmZ2WTZoRGdxcm10?=
 =?utf-8?B?RHpyL2tuVEpSSXFIRjRXdzY3Y1VjOVp2TDhXbHlxM3NUbjArQUNLOUNZcTNS?=
 =?utf-8?B?R1ZnREdTVjBBZWtiY29nQ0pyMTVTN3RDZ0pZMDQyN1lsdFBmSzdQSUFwejRq?=
 =?utf-8?B?cUE3bEg3WU95N1o5V1JMQmxlaUFYUS9oL0x3dGpoTW03V3YyNzkzWmsxcW4r?=
 =?utf-8?B?ZXo1M3BvLzZ5cDMwR1VHSU1YZjFqSDdnMWJUN0F5QWkzMkNBZmZQMnk1ODNH?=
 =?utf-8?B?WEY0clBUS0VId2lVZklOWXowNEdrbGtqRXZrVGlwSC9aR1hMNWVvVkdDUXU5?=
 =?utf-8?B?d3hLalhtcGV2QkM4Q1NJOS9scXV6UVpqTVNqamwvY1JtN1dFNVo5NmhYc2U2?=
 =?utf-8?B?Y0dmRkZqSzhaZXNEWmFoejJKNGlIRkd3Wmp4TEI1SlN6TGJ2WWJMa04xTWdM?=
 =?utf-8?B?TVNtS2ViNDkrR2Z6Kzl5bDN4RzlvNnU1TjUybjloUlE1RFV1SncrRHJmMldy?=
 =?utf-8?B?SDQwNVN5Wm1RPT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH7PR12MB5854.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?d1FYVjlHOCtNRWtJNkp1MlV5d0k3VlNibzRMbFV6VkRweG4zV3NhZ3ZST2NV?=
 =?utf-8?B?TUdyUVZ6c1V5bDJobmxwdVR4ZE13YjJtY2pkS2c4ZmJwSlpzVmttajl1UVNl?=
 =?utf-8?B?MkNiUXRJeEI5dHJzcWM0Q3FvZGhtbjErTjVVNzBRWTd0cWFKR0xmTW8wM1Ft?=
 =?utf-8?B?V1Z3c1NaelRjazJTVjNZOGthTjFqWUZPaFlyRlRRRFR5NytUUGtUanNPZWkr?=
 =?utf-8?B?TUlQdlJ2b2E1V2lwTSt6NDR0MXcrSkFZa3NRRFBtVndVMG1qeFd5aVFsb0lR?=
 =?utf-8?B?SDNkNkJFWmxHTmcrU2h4d1JuOGo0TGhheFo0Ylk0U0VoVStHVGp3R3EwZ08r?=
 =?utf-8?B?K0FGWVFxSXhxZnBIaitZWFZMZ0xpOUl1WFFrM0hJdVdBdVpNSThsMEtsVWpi?=
 =?utf-8?B?UXZ1SGVWZ3R1K2VTbldmNWlSRElyZTJZQlR3OUhYZXZLaWNhRXQrMG5OZTcr?=
 =?utf-8?B?L05qd0xlbnhXUVhnZWVOdXFqMTd6dHI1M3Y1ZXBnb25OWmhXa0VUc1lFNEdk?=
 =?utf-8?B?SVZpdVZKWUVkU0xPeE80dFRWbCt2OURiVDJKWjVaVjErd1ZFWEZkS0tzemVv?=
 =?utf-8?B?ZzlEZDUzVXZVbnlocE5qREhFZ2I3OEovdUVkNzVqcFR1RlZUQ1dZUWwzZVpP?=
 =?utf-8?B?aGNIKzFSaDZXVE0wMHZsZDZXWVJkNEJ6MEVjM1Yzd3E4cDlld0lYREJYNmVX?=
 =?utf-8?B?UTlxUy9oUC94bkc3WGc1M3IwQjRBdXVIUllNclYwUHRsbk1XWUtYelk0Mm5C?=
 =?utf-8?B?c09tbXVrWjFVVFgwRGx6V0NQSkY3alVqTXJCWldFbFNrS0R2WEVKUDUrVDNY?=
 =?utf-8?B?MGsvZm1qWVpsSGZHZHBLK2hmY2kxeWpGTERtRVNXSjQ0QWJWemRBMzkvSVVx?=
 =?utf-8?B?eEJYK3dWMkJJZ1Fkc3U0U2ozcEhnVmJLem5VWjdUUldIYkRST21mUWkrQitF?=
 =?utf-8?B?MlhrcUh3VFc1a3hsSm9vSzJSZDdJRHU1K29vSFVVSzhOUWFRL1BNT0I3M0pP?=
 =?utf-8?B?MFFHbWI3dlc1R1doWE5UMGJxN3BITDAzZWlYU0hWQUNmRDVQZk1iVFUxT2pN?=
 =?utf-8?B?dk02VWk3TU9iVTd1NjBSdmdMS2MvYVpSMldCblFZamVITE4wSW1sV2ttbkFV?=
 =?utf-8?B?STV2bnBxYVozOGxKQVVqWnUwOXZFRG84dDhlR0didDZLWjBQa0g3ZnYzamNF?=
 =?utf-8?B?V2xjeDZ0RGVGL1hjeWxtbEYyL0JDck9DeFZhSlVTYW85UVlkUUZ1bnN6a3VN?=
 =?utf-8?B?bXBVNTNpK0xKMnk3WEZZV3RQS3BOcHJ5NEVMdDF4bE90b3pLQzRQd0lPRUFu?=
 =?utf-8?B?ODdvdVhxeTJvbFpmR0ZreXF4cC9ZeTRTOUJPbVNJVEh6a3ZRUWtoTjZKOW5w?=
 =?utf-8?B?cFdEQXJ1bWZ0R3FYYW5wZXIzVk1GaW02ZVlzYnVLYUlCcEU1eVA3YUl3T0hp?=
 =?utf-8?B?NXJzODY5Nk8yM3h5aVB2RTJYUnpCTnhDOW5rOUxraWtTUU5mWkRmUUFMYS95?=
 =?utf-8?B?Ky9ndWRjbWJsR2tMaGQxbW02bDd1b3h6bSs3VXdnVlVqL2NYZ2NSc2tYQ0Rp?=
 =?utf-8?B?MDFjYmxlZWJUMTVMU0tDblBtcmRXWmZMZWxmVTBMOUc4cnFCQ1hTVTFmdW9H?=
 =?utf-8?B?WUxESUhYUDFIdnRXUEorOVJsQjFDMzYvdnlOTG1uNXdyZWJJaVRRVWVFc25T?=
 =?utf-8?B?aVZGbHBpVnlTS3N6SlllR2hnVDEzRTA5eCtzQ1d4ZUJwY0FCanRrKzVpWjFJ?=
 =?utf-8?B?dkh5NE8wZVFEZ1lyenp0d2ZUNE40V1cyQjFXK2kyZGZDNnRNdGN4TzVRZUtr?=
 =?utf-8?B?ZFNxRDYwRUxhSTd0b25RQWVKSkZlV1JVdEVEaGhYU0h1UWJaRXhEV3F3a2w4?=
 =?utf-8?B?SDVxRnRZQ05qZDIrNUhUTjlaN2IvV1Y3dHE1VnVISmc2OVQ3Q21DRkxvMXVa?=
 =?utf-8?B?YTMwdUhPWDdieUd6cHFPVC80R3F6U2VlaEFKd0ZNT0pWQ2NqaUpIdXNkSlcy?=
 =?utf-8?B?UXgwTnMydGhaWDNXTXRuYzlxTjNQVnF6NXQzMjc5TXo3YzdnWXdXNTduSEx6?=
 =?utf-8?B?bkRXb1FXMWxJRnpaaWVuZTlkN0llV0taVlZZOG9vN0xNQzNibExEVlphQ2Qz?=
 =?utf-8?Q?YCUI=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <CD30199974ACEA43B8DA8DF7E0D3AC49@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: PH7PR12MB5854.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 3e7bce8b-d30b-41d8-8d5f-08dd7c054bf3
X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Apr 2025 10:07:14.7097
 (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: Ey9OF6WKBoGFF9OzXyHiwIiI/9BsK0tIcMo3Zo6lrDV2VZ+Vlhwu9bD1lKhkmv3DSFI3hEm/80XRxzWKqD+NeQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB7283

T24gMjAyNS80LzE1IDE3OjI1LCBSb2dlciBQYXUgTW9ubsOpIHdyb3RlOg0KPiBPbiBXZWQsIEFw
ciAwOSwgMjAyNSBhdCAwMjo0NToyMlBNICswODAwLCBKaXFpYW4gQ2hlbiB3cm90ZToNCj4+IEN1
cnJlbnQgbG9naWMgb2YgaW5pdF9oZWFkZXIoKSBvbmx5IGVtdWxhdGVzIGxlZ2FjeSBjYXBhYmls
aXR5IGxpc3QNCj4+IGZvciBndWVzdCwgZXhwYW5kIGl0IHRvIGVtdWxhdGUgZm9yIGhvc3QgdG9v
LiBTbyB0aGF0IGl0IHdpbGwgYmUNCj4+IGVhc3kgdG8gaGlkZSBhIGNhcGFiaWxpdHkgd2hvc2Ug
aW5pdGlhbGl6YXRpb24gZmFpbHMgYW5kIG5vIG5lZWQNCj4+IHRvIGRpc3Rpbmd1aXNoIGhvc3Qg
b3IgZ3Vlc3QuDQo+IA0KPiBJdCBtaWdodCBiZSBiZXN0IGlmIHRoZSBpbml0aWFsIGNvZGUgbW92
ZW1lbnQgb2YgdGhlIGxvZ2ljIGluDQo+IGluaXRfaGVhZGVyKCkgaW50byBpdCdzIG93biBzZXBh
cmF0ZSBmdW5jdGlvbiB3YXMgZG9uZSBhcyBhDQo+IG5vbi1mdW5jdGlvbmFsIGNoYW5nZSwgYW5k
IGEgbGF0ZXIgcGF0Y2ggYWRkZWQgc3VwcG9ydCBmb3IgZG9tMC4NCj4gDQo+IEl0J3MgZWFzaWVy
IHRvIHRoZW4gc3BvdCB0aGUgZGlmZmVyZW5jZXMgdGhhdCB5b3UgYXJlIGFkZGluZyB0bw0KPiBz
dXBwb3J0IGRvbTAuDQpHb3QgaXQsIEkgd2lsbCByZS1hcnJhbmdlIG15IHBhdGNoIGluIG5leHQg
dmVyc2lvbi4NCg0KPiANCj4+IFNpZ25lZC1vZmYtYnk6IEppcWlhbiBDaGVuIDxKaXFpYW4uQ2hl
bkBhbWQuY29tPg0KPj4gLS0tDQo+PiBjYzogIlJvZ2VyIFBhdSBNb25uw6kiIDxyb2dlci5wYXVA
Y2l0cml4LmNvbT4NCj4+IC0tLQ0KPj4gdjEtPnYyIGNoYW5nZXM6DQo+PiBuZXcgcGF0Y2gNCj4+
DQo+PiBCZXN0IHJlZ2FyZHMsDQo+PiBKaXFpYW4gQ2hlbi4NCj4+IC0tLQ0KPj4gIHhlbi9kcml2
ZXJzL3ZwY2kvaGVhZGVyLmMgfCAxMzkgKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0t
LS0tLS0NCj4+ICAxIGZpbGUgY2hhbmdlZCwgNzQgaW5zZXJ0aW9ucygrKSwgNjUgZGVsZXRpb25z
KC0pDQo+Pg0KPj4gZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3ZwY2kvaGVhZGVyLmMgYi94ZW4v
ZHJpdmVycy92cGNpL2hlYWRlci5jDQo+PiBpbmRleCBlZjZjOTY1YzA4MWMuLjA5MTBlYjk0MGUy
MyAxMDA2NDQNCj4+IC0tLSBhL3hlbi9kcml2ZXJzL3ZwY2kvaGVhZGVyLmMNCj4+ICsrKyBiL3hl
bi9kcml2ZXJzL3ZwY2kvaGVhZGVyLmMNCj4+IEBAIC03NDUsNiArNzQ1LDc2IEBAIHN0YXRpYyBp
bnQgYmFyX2FkZF9yYW5nZXNldChjb25zdCBzdHJ1Y3QgcGNpX2RldiAqcGRldiwgc3RydWN0IHZw
Y2lfYmFyICpiYXIsDQo+PiAgICAgIHJldHVybiAhYmFyLT5tZW0gPyAtRU5PTUVNIDogMDsNCj4+
ICB9DQo+PiAgDQo+PiArLyogVGhlc2UgY2FwYWJpbGl0aWVzIGNhbiBiZSBleHBvc2VkIHRvIHRo
ZSBndWVzdCwgdGhhdCB2UENJIGNhbiBoYW5kbGUuICovDQo+PiArc3RhdGljIGNvbnN0IHVuc2ln
bmVkIGludCBndWVzdF9zdXBwb3J0ZWRfY2Fwc1tdID0gew0KPj4gKyAgICBQQ0lfQ0FQX0lEX01T
SSwNCj4+ICsgICAgUENJX0NBUF9JRF9NU0lYLA0KPj4gK307DQo+IA0KPiBJcyB0aGVyZSBhIHJl
YXNvbiB0aGlzIG5lZWRzIHRvIGJlIGRlZmluZWQgb3V0c2lkZSBvZiB0aGUgZnVuY3Rpb24NCj4g
c2NvcGU/ICBTbyBmYXIgaXQncyBvbmx5IHVzZWQgYnkgdnBjaV9pbml0X2NhcGFiaWxpdHlfbGlz
dCgpLg0KQmVjYXVzZSwgZm9yIGRvbTAgSSBkb24ndCBuZWVkIHRvIHBhc3MgdGhpcyBhcnJheSwg
c28gSSBuZWVkIHRvIHNldCBiZWxvdyBwYXJhbWV0ZXIgImNhcHMiIHRvIGJlIE5VTEwgb3IgZ3Vl
c3Rfc3VwcG9ydGVkX2NhcHMgYWNjb3JkaW5nIHRvIHRoZSB0eXBlIG9mIGRvbWFpbi4NCklmIGlu
c2lkZSB0aGUgZnVuY3Rpb24sIEkgY2FuJ3QgdG8gZG8gdGhhdCBzaW5jZSAiY2FwcyIgaXMgY29u
c3QsIEkgdGhpbmsuDQpEbyB5b3UgaGF2ZSBhbnkgc3VnZ2VzdGlvbnM/DQoNCj4gDQo+PiArDQo+
PiArc3RhdGljIGludCB2cGNpX2luaXRfY2FwYWJpbGl0eV9saXN0KHN0cnVjdCBwY2lfZGV2ICpw
ZGV2KQ0KPj4gK3sNCj4+ICsgICAgaW50IHJjOw0KPj4gKyAgICBib29sIG1hc2tfY2FwX2xpc3Qg
PSBmYWxzZTsNCj4+ICsgICAgYm9vbCBpc19od2RvbSA9IGlzX2hhcmR3YXJlX2RvbWFpbihwZGV2
LT5kb21haW4pOw0KPj4gKyAgICBjb25zdCB1bnNpZ25lZCBpbnQgKmNhcHMgPSBpc19od2RvbSA/
IE5VTEwgOiBndWVzdF9zdXBwb3J0ZWRfY2FwczsNCj4+ICsgICAgY29uc3QgdW5zaWduZWQgaW50
IG4gPSBpc19od2RvbSA/IDAgOiBBUlJBWV9TSVpFKGd1ZXN0X3N1cHBvcnRlZF9jYXBzKTsNCj4+
ICsNCj4+ICsgICAgaWYgKCBwY2lfY29uZl9yZWFkMTYocGRldi0+c2JkZiwgUENJX1NUQVRVUykg
JiBQQ0lfU1RBVFVTX0NBUF9MSVNUICkNCj4+ICsgICAgew0KPj4gKyAgICAgICAgdW5zaWduZWQg
aW50IG5leHQsIHR0bCA9IDQ4Ow0KPj4gKw0KPj4gKyAgICAgICAgbmV4dCA9IHBjaV9maW5kX25l
eHRfY2FwX3R0bChwZGV2LT5zYmRmLCBQQ0lfQ0FQQUJJTElUWV9MSVNULA0KPj4gKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXBzLCBuLCAmdHRsKTsNCj4+ICsNCj4+ICsg
ICAgICAgIHJjID0gdnBjaV9hZGRfcmVnaXN0ZXIocGRldi0+dnBjaSwgdnBjaV9yZWFkX3ZhbCwg
TlVMTCwNCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUENJX0NBUEFCSUxJVFlf
TElTVCwgMSwNCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQgKikodWlu
dHB0cl90KW5leHQpOw0KPj4gKyAgICAgICAgaWYgKCByYyApDQo+PiArICAgICAgICAgICAgcmV0
dXJuIHJjOw0KPj4gKw0KPj4gKyAgICAgICAgbmV4dCAmPSB+MzsNCj4+ICsNCj4+ICsgICAgICAg
IGlmICggIW5leHQgJiYgIWlzX2h3ZG9tICkNCj4+ICsgICAgICAgICAgICAvKg0KPj4gKyAgICAg
ICAgICAgICAqIElmIHdlIGRvbid0IGhhdmUgYW55IHN1cHBvcnRlZCBjYXBhYmlsaXRpZXMgdG8g
ZXhwb3NlIHRvIHRoZQ0KPj4gKyAgICAgICAgICAgICAqIGd1ZXN0LCBtYXNrIHRoZSBQQ0lfU1RB
VFVTX0NBUF9MSVNUIGJpdCBpbiB0aGUgc3RhdHVzIHJlZ2lzdGVyLg0KPj4gKyAgICAgICAgICAg
ICAqLw0KPj4gKyAgICAgICAgICAgIG1hc2tfY2FwX2xpc3QgPSB0cnVlOw0KPj4gKw0KPj4gKyAg
ICAgICAgd2hpbGUgKCBuZXh0ICYmIHR0bCApDQo+PiArICAgICAgICB7DQo+PiArICAgICAgICAg
ICAgdW5zaWduZWQgaW50IHBvcyA9IG5leHQ7DQo+PiArDQo+PiArICAgICAgICAgICAgbmV4dCA9
IHBjaV9maW5kX25leHRfY2FwX3R0bChwZGV2LT5zYmRmLCBwb3MgKyBQQ0lfQ0FQX0xJU1RfTkVY
VCwNCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhcHMsIG4s
ICZ0dGwpOw0KPj4gKw0KPj4gKyAgICAgICAgICAgIHJjID0gdnBjaV9hZGRfcmVnaXN0ZXIocGRl
di0+dnBjaSwgdnBjaV9od19yZWFkOCwgTlVMTCwNCj4+ICsgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHBvcyArIFBDSV9DQVBfTElTVF9JRCwgMSwgTlVMTCk7DQo+IA0KPiBUaGVy
ZSdzIG5vIG5lZWQgdG8gYWRkIHRoaXMgaGFuZGxlciBmb3IgdGhlIGhhcmR3YXJlIGRvbWFpbiwg
dGhhdCdzDQo+IGFscmVhZHkgdGhlIGRlZmF1bHQgYmVoYXZpb3IgaW4gdGhhdCBjYXNlLg0KQnV0
IGlmIG5vdCwgSSBoYXZlIG5vIGhhbmRsZXIgdG8gcmVtb3ZlIGZyb20gY2FwYWJpbGl0eSBsaXN0
IGluIG5leHQgcGF0Y2gncyBoaWRpbmcgZnVuY3Rpb24gdnBjaV9jYXBhYmlsaXR5X21hc2soKSwN
CnRoZW4gSSBjYW4ndCBzdWNjZXNzIHRvIGhpZGUgaXQuDQoNCj4gDQo+IFRoYW5rcywgUm9nZXIu
DQoNCi0tIA0KQmVzdCByZWdhcmRzLA0KSmlxaWFuIENoZW4uDQo=


From xen-devel-bounces@lists.xenproject.org Tue Apr 15 10:07:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 10:07:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.952458.1347898 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4dCa-00013H-E2; Tue, 15 Apr 2025 10:07:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 952458.1347898; Tue, 15 Apr 2025 10:07: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 1u4dCa-000138-BF; Tue, 15 Apr 2025 10:07:36 +0000
Received: by outflank-mailman (input) for mailman id 952458;
 Tue, 15 Apr 2025 10:07: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=ai1O=XB=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u4dCY-000119-OF
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 10:07:34 +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 72527328-19e1-11f0-9ffb-bf95429c2676;
 Tue, 15 Apr 2025 12:07:32 +0200 (CEST)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-43cf06eabdaso51320935e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 15 Apr 2025 03:07:32 -0700 (PDT)
Received: from [10.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-43f233a2f64sm202425975e9.16.2025.04.15.03.07.31
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 15 Apr 2025 03:07:31 -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: 72527328-19e1-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744711652; x=1745316452; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=EdKbKBUarX8IRtK9PoQ+DxM9G6nXsdYKh0cPrIiWhBo=;
        b=Iy46Va0HnmwWi3ZJqJrJYHa+2D8cLnwabqjlK3etozgY+Nje+CdiVU3qKD7X7HE2AV
         H7GOdpB7O89a45NTPe+rZOw5RQelAz6QY0heS2x575a/TcpLStG94xBMn2QNumr405kh
         WlxiU6EmaO+kkjDLN0lGpRntWyBLsYpX1XExg3am16WoLt5lODBaBN9CK2ZVX9IdtJk5
         LayAm3uDLsXTI7LnwydcFs6lT+8odZ7FySqzVaPCoSG9n2n7l1wYRbNgunUmKsk/wALN
         ba8kLFv83ZTB9VBUsCXBLd9cfJ+V8cpS/It/Eae6CaS4J6nzkws3GRiDgxmph8JwlDJ3
         1Tig==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744711652; x=1745316452;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=EdKbKBUarX8IRtK9PoQ+DxM9G6nXsdYKh0cPrIiWhBo=;
        b=AuoIkTL7NCtlfmQFX5TC5oR372uOThFT8eNTH0p3QtPeCYB4O/BMOSVrVJjvDc7y/i
         ftk1FctLKKkXUWAA6nJhcJTNkPu9QFzBYxx25UuCBsqM7c8HO3ZihWuNfJHvK3jwXoc7
         m4HzrQ7bj0TMAhvxxxBt/IEdv0gv3oj/lwCYTm7FBz+6BLz7iS3eTwL58Pbj2AvgXeK2
         E4XsvNSJFAxbzSvwWGbcfpSdF7HG4o/SICSWudn6t9cBgIzCY5w21XxfjR1dMNC4jRxw
         lztVW3ccSYnUWu0X3t/PQ8JLK6NBBRMXh/M0qZDz6XzubiqqobWdUS62lz9Q5TIcN82M
         Qxdg==
X-Forwarded-Encrypted: i=1; AJvYcCUcj2pi9zPN/4Ad6nQFgW3dmTZrct6IO3wSGOlxyYqXt3NIpVHpbv9IdCNF50+NOlgwnpLWCIHTGKA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxtacX4rUS596MQhWjHlOkUsaizjTgpHcLOPmmdCpiyk5qdfdV3
	UDKdibiW85dzR49pd+gVeAJIj5zoIf1vwZYryQUXfbmbuBtA/P/x3cFyojDD7A==
X-Gm-Gg: ASbGncu+jxQR4+dJ37KLL2dHaD6p5oA4ZeBT6OqfoCkQYa9dnSnF0WOyn/9rAJnt9qn
	2KzwJoT7J8gSpGgb7xuqP9EnYn6r7Wi4yU7Va3Hw4+swzC22G58oxiyIu3hDmBsIA0TNoZqBcwu
	kkizGIePpkBnqUWwl38rHuRHZvpVYf+PCMMfEfgg5akhkpx/g9xPcf9Z6APl/FsoCWXm0r0BM9c
	6O7wxgA8sMec7JBgKuVV0muFcsrOWcF5+swvj9XOYbqb2gtxe9fGZl2Zfi4u7y1c5t/ohC7ub99
	47m+DOvRRntlIKEypJktzfRhFH6QMV9Elhspem/xZH6S5emlbNHmWzHmQ43rEM1JDp0/vpoGtkl
	bBfDf+2qBDOADkwXB13TM30TplYcK4ntWItQs
X-Google-Smtp-Source: AGHT+IGlr3CF3+B9t64PgIeaADf1cM0KeeV4hsKRtjqL/1bh92KC6gGVEjJtDNPCEpK2lrDc7i6zOg==
X-Received: by 2002:a05:600c:1d83:b0:43c:f3e4:d6f7 with SMTP id 5b1f17b1804b1-43f3a9afdeamr159238685e9.31.1744711651993;
        Tue, 15 Apr 2025 03:07:31 -0700 (PDT)
Message-ID: <6ea52f30-7aa4-494b-9719-9fdffc56e3c8@suse.com>
Date: Tue, 15 Apr 2025 12:07:30 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4] xen/riscv: Increase XEN_VIRT_SIZE
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <0815b65aa0b526b85c737f5923148b119cc4104f.1744639515.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: <0815b65aa0b526b85c737f5923148b119cc4104f.1744639515.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 14.04.2025 17:56, Oleksii Kurochko wrote:
> --- a/xen/arch/riscv/mm.c
> +++ b/xen/arch/riscv/mm.c
> @@ -31,20 +31,30 @@ unsigned long __ro_after_init phys_offset; /* = load_start - XEN_VIRT_START */
>  #define LOAD_TO_LINK(addr) ((unsigned long)(addr) - phys_offset)
>  
>  /*
> - * It is expected that Xen won't be more then 2 MB.
> + * It is expected that Xen won't be more then XEN_VIRT_SIZE.
>   * The check in xen.lds.S guarantees that.
> - * At least 3 page tables (in case of Sv39 ) are needed to cover 2 MB.
> - * One for each page level table with PAGE_SIZE = 4 Kb.
>   *
> - * One L0 page table can cover 2 MB(512 entries of one page table * PAGE_SIZE).
> + * Root page table is shared with the initial mapping and is declared
> + * separately. (look at stage1_pgtbl_root)
>   *
> - * It might be needed one more page table in case when Xen load address
> - * isn't 2 MB aligned.
> + * An amount of page tables between root page table and L0 page table
> + * (in the case of Sv39 it covers L1 table):
> + *   (CONFIG_PAGING_LEVELS - 2) are needed for an identity mapping and
> + *   the same amount are needed for Xen.
>   *
> - * CONFIG_PAGING_LEVELS page tables are needed for the identity mapping,
> - * except that the root page table is shared with the initial mapping
> + * An amount of L0 page tables:
> + *   (512 entries of one L0 page table covers 2MB == 1<<XEN_PT_LEVEL_SHIFT(1))
> + *   XEN_VIRT_SIZE >> XEN_PT_LEVEL_SHIFT(1) are needed for Xen and
> + *   one L0 is needed for identity mapping.
>   */
> -#define PGTBL_INITIAL_COUNT ((CONFIG_PAGING_LEVELS - 1) * 2 + 1)
> +#define PGTBL_INITIAL_COUNT ((CONFIG_PAGING_LEVELS - 2) * 2 + \
> +                             (XEN_VIRT_SIZE >> XEN_PT_LEVEL_SHIFT(1)) + 1)

I'm still struggling here. In the original expression, the +1 was to cover
the root page table, wasn't it? By now subtracting 2 from
CONFIG_PAGING_LEVELS, you reduce the overall result by 2. One of these two
is accounted for by the Xen size calculation now. Where's the other one?
Or are you suggesting that for some (not obvious to me) reason we
previously calculated one too many?

> +/* Changing these checks can require an update of PGTBL_INITIAL_COUNT */
> +_Static_assert(IS_ALIGNED(XEN_VIRT_START, GB(1)),
> +               "XEN_VIRT_START should be 1gb aligned");
> +_Static_assert(IS_ALIGNED(XEN_VIRT_SIZE, MB(2)),
> +               "XEN_VIRT_SIZE should be 2mb aligned");

Why would you need to open-code BUILD_BUG_ON() here? See the various
build_assertions() functions we've accumulated.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 15 10:08:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 10:08:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.952480.1347908 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4dDs-0001oS-Ot; Tue, 15 Apr 2025 10:08:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 952480.1347908; Tue, 15 Apr 2025 10:08:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4dDs-0001oL-Lj; Tue, 15 Apr 2025 10:08:56 +0000
Received: by outflank-mailman (input) for mailman id 952480;
 Tue, 15 Apr 2025 10:08:56 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ai1O=XB=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u4dDs-0001oF-2k
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 10:08:56 +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 a2e8cd1b-19e1-11f0-9ffb-bf95429c2676;
 Tue, 15 Apr 2025 12:08:54 +0200 (CEST)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-43cf06eabdaso51333955e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 15 Apr 2025 03:08:54 -0700 (PDT)
Received: from [10.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-39eaf445713sm13506574f8f.85.2025.04.15.03.08.53
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 15 Apr 2025 03:08:53 -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: a2e8cd1b-19e1-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744711733; x=1745316533; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=xmHX8X/LjWjBg8XOYxVC0gMXzq+dbKWZsKIZNOr7yzo=;
        b=b4lsTSHBxuFiRt1Jelsx3P+z7/ryLUYnM1js0sI5TfPgpn/Ha3rgII+rjJzD/vQx28
         1i6hNvU3TRmgaZef6Tz7xE+O0Z8mh+3j425Fa7IgtCV609SxuLsZQNBN+pg9vLCbcUYI
         jjcXeRDXRXaSgcown28tQysqxtbxhpduq9BkBCU6SqkymmNOlnOqRu7mqN/yepKJc0eO
         MEPxzJuAcCZ6Q9gfVZfYKxnYprab0hDmBKuvyegvO+1V2DIgKBD9eYTTq1sSzyYv09pi
         ywP+UitxFhI7rMGpRCzHkFBzBJ4x65eZvFLv4EsNEJVGezJ4OITGYLRvnhIp3UL2xgm8
         TIFg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744711733; x=1745316533;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=xmHX8X/LjWjBg8XOYxVC0gMXzq+dbKWZsKIZNOr7yzo=;
        b=rWCQ1KWkw1mbwDgHvAdyEKalYHUbq9rjOuMUSjdZrOgC+Q9XDynl29/hBHhZKLLWCp
         TMkG55SIUw1Tc0brS+bWn4PGumkQt5byITR7An7/7fwCvpRlpCRxQlQNzKYx22lZggKi
         qCEDfjgOnCB/jDgq3vNZSb4cfEgvA4oebygLjT8LXMdRK7HOGtHIjZ4y0qiGng3Xwln6
         MXs/1e/c8f2J3oi18WyOcnr7WatKSd/hiLPD2G77dobej0VTgQ2ijqV9B57Zao74Zgql
         /oI5jQnMAfB6cP4Jv5yEstlpjMGSxNYy/I0ObqJb+Oy7WJSXrEpSMnU+7CPgZzjmQr6C
         ekLQ==
X-Gm-Message-State: AOJu0Yybuiua3jqzBaeNnurO7VmPuFvsEF/uyIqBacyvVmpX3ImQixT5
	5AG5MLUjb9+ujOsCxB+6v0pXMbzKQcvKtgdERVCzvdIzgONbKq1ctLIhxi+ehw==
X-Gm-Gg: ASbGncu3ahtRMWDlaToOWWoCgT0auRhy9kMcVp7dBPQ+xe9G6hUJ1gDoIdVyQwSxfRV
	VnhCZjY7bR7FbWQ23u1TF7rm1VjLbKbq/RgCUFbCGIBnPLXzlr6ePNI5oXGJ6MWlrenLPINXRNX
	yz9GQg8oZ1nPnIABkKDFj075jCVpClP7VRLOxKgqWy/8pKFgewf2d0GMOD8zQI5T8eZcXciiM/r
	BKW+2Xp9jVavecOYzwcVxaCwdJ6XzlWflcVPG9W51h/+7LuNcbIv3/gNVyVUCT7fYJ9si9zyFSs
	kRTjuyeIf7BCBbMS+1WYZb3XTSqtRAbEgPK9r/aNigsHrk9KCrbnQrmEZHPl+xD+1ZIPp7zqAF9
	QbgQQJ3hCt9hBnQ/O4hbMNfH2QA==
X-Google-Smtp-Source: AGHT+IEQh3EyJp/diCWwO9J0Nn5AG4cIp0qUEDmEto6yGu1cy4b3yjRmkkpBf0EISzamdvSdvuql4w==
X-Received: by 2002:a05:6000:2906:b0:391:3049:d58d with SMTP id ffacd0b85a97d-39e9f3dbcc5mr11526561f8f.0.1744711733616;
        Tue, 15 Apr 2025 03:08:53 -0700 (PDT)
Message-ID: <43993568-030f-4182-9346-162d48099b7b@suse.com>
Date: Tue, 15 Apr 2025 12:08:52 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/8] vpci/header: Emulate legacy capability list for
 host
To: "Chen, Jiqian" <Jiqian.Chen@amd.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 "Huang, Ray" <Ray.Huang@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <20250409064528.405573-1-Jiqian.Chen@amd.com>
 <20250409064528.405573-3-Jiqian.Chen@amd.com> <Z_4mAAm-gCmZTJub@macbook.lan>
 <PH7PR12MB58546CF210C99C8B835FFC4AE7B22@PH7PR12MB5854.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: <PH7PR12MB58546CF210C99C8B835FFC4AE7B22@PH7PR12MB5854.namprd12.prod.outlook.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 15.04.2025 12:07, Chen, Jiqian wrote:
> On 2025/4/15 17:25, Roger Pau Monné wrote:
>> On Wed, Apr 09, 2025 at 02:45:22PM +0800, Jiqian Chen wrote:
>>> --- a/xen/drivers/vpci/header.c
>>> +++ b/xen/drivers/vpci/header.c
>>> @@ -745,6 +745,76 @@ static int bar_add_rangeset(const struct pci_dev *pdev, struct vpci_bar *bar,
>>>      return !bar->mem ? -ENOMEM : 0;
>>>  }
>>>  
>>> +/* These capabilities can be exposed to the guest, that vPCI can handle. */
>>> +static const unsigned int guest_supported_caps[] = {
>>> +    PCI_CAP_ID_MSI,
>>> +    PCI_CAP_ID_MSIX,
>>> +};
>>
>> Is there a reason this needs to be defined outside of the function
>> scope?  So far it's only used by vpci_init_capability_list().
> Because, for dom0 I don't need to pass this array, so I need to set below parameter "caps" to be NULL or guest_supported_caps according to the type of domain.
> If inside the function, I can't to do that since "caps" is const, I think.

Why would the more narrow scope of the array affect how it can be used?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 15 10:09:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 10:09:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.952481.1347919 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4dDw-00023Q-2S; Tue, 15 Apr 2025 10:09:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 952481.1347919; Tue, 15 Apr 2025 10:09: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 1u4dDv-00023H-Sq; Tue, 15 Apr 2025 10:08:59 +0000
Received: by outflank-mailman (input) for mailman id 952481;
 Tue, 15 Apr 2025 10:08: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 1u4dDu-00022j-Hr
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 10:08: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 1u4dDu-00Gx12-0D;
 Tue, 15 Apr 2025 10:08:58 +0000
Received: from [143.198.24.140] (helo=[100.81.22.8])
 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 1u4dDt-0031HY-1n;
 Tue, 15 Apr 2025 10:08: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=30+nHoXhM1HKJD5jVk3ExrRCsBsij7f6Aozhhh9di/E=; b=No6ZJTd0IPDPJzHOfCM+qUVmyV
	xJn4qd2m+1Ipji63L/yZMYSxvdHZqNZqcBqGrtpZyQRdpgL+NBy6khEbSUdbm3vVjUNBMWcK2YPQ3
	XH0eZQyxEJokjPZwvzMpO1H2D3HMQrszAOgN2bPgVzyeNxLjtx6T5PuypKrbG21478Rw=;
Message-ID: <a9dac3d6-fc12-4caf-b61e-d189d3deaaf9@xen.org>
Date: Tue, 15 Apr 2025 19:08:51 +0900
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 2/7] arm/mpu: Provide access to the MPU region from the
 C code
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>
References: <20250411145655.140667-1-luca.fancellu@arm.com>
 <20250411145655.140667-3-luca.fancellu@arm.com>
 <d58be435-fd83-42bc-9fd0-a8884f358704@xen.org>
 <1A24757A-ECCB-4080-B370-DA44D469CC7D@arm.com>
 <6a681c92-8c61-43f5-b266-b0306bc0b1ce@xen.org>
 <72B2783C-AF90-4154-8EF9-4F81A0A537B2@arm.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <72B2783C-AF90-4154-8EF9-4F81A0A537B2@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit



On 15/04/2025 17:08, Luca Fancellu wrote:
> Hi Julien,
> 
>>>>>   +/*
>>>>> + * The following are needed for the case generators GENERATE_WRITE_PR_REG_CASE
>>>>> + * and GENERATE_READ_PR_REG_CASE with num==0
>>>>> + */
>>>>> +#define PRBAR0_EL2 PRBAR_EL2
>>>>> +#define PRLAR0_EL2 PRLAR_EL2
>>>>
>>>> Rather than aliasing, shouldn't we just rename PR{B,L}AR_EL2 to PR{B,L}AR0_EL2? This would the code mixing between the two.
>>> PR{B,L}AR0_ELx does not exists really, the PR{B,L}AR<n>_ELx exists for n=1..15, here I’m only using this “alias” for the generator,
>>> but PR{B,L}AR_EL2 are the real register.
>>
>> In this case, can PR{B,L}AR0_EL2 defined in mm.c so they are not used anywhere else?
> 
> So this was the case in my previous serie, but Ayan asked me to put them in
> here because PRBAR_EL2 is arm64 specific, not sure now, shall we move it back
> and protect it with CONFIG_ARM_64?

Yes. I don't thikn PRBAR0_EL2 should be exposed.

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Tue Apr 15 10:10:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 10:10:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.952504.1347928 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4dFM-0003me-8r; Tue, 15 Apr 2025 10:10:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 952504.1347928; Tue, 15 Apr 2025 10: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 1u4dFM-0003mX-6K; Tue, 15 Apr 2025 10:10:28 +0000
Received: by outflank-mailman (input) for mailman id 952504;
 Tue, 15 Apr 2025 10: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=OGoX=XB=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u4dFL-0003mN-0b
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 10:10:27 +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 d9cb5790-19e1-11f0-9eae-5ba50f476ded;
 Tue, 15 Apr 2025 12:10:26 +0200 (CEST)
Received: by mail-ed1-x531.google.com with SMTP id
 4fb4d7f45d1cf-5e5cded3e2eso8554032a12.0
 for <xen-devel@lists.xenproject.org>; Tue, 15 Apr 2025 03:10:26 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 a640c23a62f3a-acaa1cb40e3sm1050151866b.122.2025.04.15.03.10.24
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 15 Apr 2025 03:10: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: d9cb5790-19e1-11f0-9eae-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744711826; x=1745316626; 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=gY43497sSxUtdzpZ2hM8DobKNxC8/fxSO4K8OtOWh18=;
        b=I9sU8YY8yY1YKfZ1NoGDE17b/4b0LpXjQ9xDiyh6TCiutLmdrtN8p+f0hdwIK5FQHv
         xO9jE+J/+O2kGDt30F7oo93O+pWHrE8EON74+2hnzoT0UfZfa1z2NDZOVEkdeebC/jAU
         qosoGzL5KrGn528x79K7dVnPegVsKEdzBijdI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744711826; x=1745316626;
        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=gY43497sSxUtdzpZ2hM8DobKNxC8/fxSO4K8OtOWh18=;
        b=srbSp+K8tA2aCZwQ1H1dKtYMGMQJ4wDrIHDq1MhI0jAjm+8G2RFg8bDYSWAzC2tJ/D
         rN9TCsdefV53b0acKkIz9ODJm7A9vWm4LE8q7S+/tKXR7fAZJIEgaFfTT9xav0rkebOf
         1kyij+9H0QNacGTiDjZGkKoZsmpn4wlbqRYsNSf+HSs5HGQdBlW6jfXcVg9geAvYzZLn
         iHDoI7C1A8fS6D014lbabomtGdk1Ys32OF9KIuF/uTdY6LeiNqvknYHMJn4RviDvVtZ6
         10/FoyHqGYNrCxM5lhhE+srJJFw7HlWVQiESnCYIWjqHpvjZH+V1wgHi0CsXlE0B2nxK
         b5Yw==
X-Gm-Message-State: AOJu0Yx4PeJGEERZfbL+3Zaaqb/Qz9XF3W2amYucbqn4LbyjigAeS61d
	0zx6B/dsrBmrXzNENRHGoZsuUuHZoAMvNZzZcEbXWDGrsrNk2+YsSIQOhrVQo9k=
X-Gm-Gg: ASbGncsN1UKfcZs8UeGYhaJaEMskxS1Ng6hoUOMBlyVeOEKp8fpLKuRknPSLXpi6Tlq
	iop6SpGTrrRdPpJyID9Q8NbtyhbcWxvl0QA1Iqg13vTb73UvqEzsG0uox4Cu5iUY/vwpXi1GksU
	1suZQwYCh+YhbC118oL+UB4v3jZfMGANVHqZPGMemIvXuF2+NHXdzj9IkQbyQD6XsMXniZ4qWms
	fFIYiq8BiLH8DxWjFTpB5bm5c1zqODAPFdM9zUm08d2jTD0iT/4NWtfhMzkbTZro1eqtvKtZS6H
	hkNMfk7qXL2epSrs+/kUfXBY300PVnDVlL+XfyZpt4PxDw==
X-Google-Smtp-Source: AGHT+IGNagXJsLWL0AwxJS+PThdmTAQHhspaXhGliosb16F2UnzZ8O6wCUBtvfuDNkP+11BewYW7hw==
X-Received: by 2002:a17:907:724c:b0:aca:a357:d5f7 with SMTP id a640c23a62f3a-acad343c75amr1640513866b.3.1744711825519;
        Tue, 15 Apr 2025 03:10:25 -0700 (PDT)
Date: Tue, 15 Apr 2025 12:10:24 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jiqian Chen <Jiqian.Chen@amd.com>
Cc: xen-devel@lists.xenproject.org, Huang Rui <ray.huang@amd.com>
Subject: Re: [PATCH v2 2/8] vpci/header: Emulate legacy capability list for
 host
Message-ID: <Z_4wkFn1VvBe_6Eh@macbook.lan>
References: <20250409064528.405573-1-Jiqian.Chen@amd.com>
 <20250409064528.405573-3-Jiqian.Chen@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <20250409064528.405573-3-Jiqian.Chen@amd.com>

On Wed, Apr 09, 2025 at 02:45:22PM +0800, Jiqian Chen wrote:
> Current logic of init_header() only emulates legacy capability list
> for guest, expand it to emulate for host too. So that it will be
> easy to hide a capability whose initialization fails and no need
> to distinguish host or guest.
> 
> Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
> ---
> cc: "Roger Pau Monné" <roger.pau@citrix.com>
> ---
> v1->v2 changes:
> new patch
> 
> Best regards,
> Jiqian Chen.
> ---
>  xen/drivers/vpci/header.c | 139 ++++++++++++++++++++------------------
>  1 file changed, 74 insertions(+), 65 deletions(-)
> 
> diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c
> index ef6c965c081c..0910eb940e23 100644
> --- a/xen/drivers/vpci/header.c
> +++ b/xen/drivers/vpci/header.c
> @@ -745,6 +745,76 @@ static int bar_add_rangeset(const struct pci_dev *pdev, struct vpci_bar *bar,
>      return !bar->mem ? -ENOMEM : 0;
>  }
>  
> +/* These capabilities can be exposed to the guest, that vPCI can handle. */
> +static const unsigned int guest_supported_caps[] = {
> +    PCI_CAP_ID_MSI,
> +    PCI_CAP_ID_MSIX,
> +};
> +
> +static int vpci_init_capability_list(struct pci_dev *pdev)
> +{
> +    int rc;
> +    bool mask_cap_list = false;
> +    bool is_hwdom = is_hardware_domain(pdev->domain);
> +    const unsigned int *caps = is_hwdom ? NULL : guest_supported_caps;
> +    const unsigned int n = is_hwdom ? 0 : ARRAY_SIZE(guest_supported_caps);
> +
> +    if ( pci_conf_read16(pdev->sbdf, PCI_STATUS) & PCI_STATUS_CAP_LIST )
> +    {
> +        unsigned int next, ttl = 48;
> +
> +        next = pci_find_next_cap_ttl(pdev->sbdf, PCI_CAPABILITY_LIST,
> +                                     caps, n, &ttl);
> +
> +        rc = vpci_add_register(pdev->vpci, vpci_read_val, NULL,
> +                               PCI_CAPABILITY_LIST, 1,
> +                               (void *)(uintptr_t)next);
> +        if ( rc )
> +            return rc;
> +
> +        next &= ~3;
> +
> +        if ( !next && !is_hwdom )
> +            /*
> +             * If we don't have any supported capabilities to expose to the
> +             * guest, mask the PCI_STATUS_CAP_LIST bit in the status register.
> +             */
> +            mask_cap_list = true;
> +
> +        while ( next && ttl )
> +        {
> +            unsigned int pos = next;
> +
> +            next = pci_find_next_cap_ttl(pdev->sbdf, pos + PCI_CAP_LIST_NEXT,
> +                                         caps, n, &ttl);
> +
> +            rc = vpci_add_register(pdev->vpci, vpci_hw_read8, NULL,
> +                                   pos + PCI_CAP_LIST_ID, 1, NULL);
> +            if ( rc )
> +                return rc;
> +
> +            rc = vpci_add_register(pdev->vpci, vpci_read_val, NULL,
> +                                   pos + PCI_CAP_LIST_NEXT, 1,
> +                                   (void *)(uintptr_t)next);
> +            if ( rc )
> +                return rc;
> +
> +            next &= ~3;
> +        }
> +    }
> +
> +    /* Utilize rsvdp_mask to hide PCI_STATUS_CAP_LIST from the guest. */
> +    rc = vpci_add_register_mask(pdev->vpci, vpci_hw_read16, vpci_hw_write16,
> +                                PCI_STATUS, 2, NULL,
> +                                PCI_STATUS_RO_MASK &
> +                                    ~(mask_cap_list ? PCI_STATUS_CAP_LIST : 0),
> +                                PCI_STATUS_RW1C_MASK,
> +                                mask_cap_list ? PCI_STATUS_CAP_LIST : 0,
> +                                PCI_STATUS_RSVDZ_MASK);

One further remark I've forgot to make on the previous reply: I'm
unsure we want to do this for dom0, as we in general allow dom0
unfiltered write access (unless it's for accesses mediated by Xen).

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Apr 15 10:11:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 10:11:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.952519.1347938 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4dGZ-0005j8-I5; Tue, 15 Apr 2025 10:11:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 952519.1347938; Tue, 15 Apr 2025 10:11: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 1u4dGZ-0005j1-FE; Tue, 15 Apr 2025 10:11:43 +0000
Received: by outflank-mailman (input) for mailman id 952519;
 Tue, 15 Apr 2025 10:11: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=QN48=XB=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1u4dGX-0005it-ST
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 10:11:41 +0000
Received: from NAM10-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam10on20629.outbound.protection.outlook.com
 [2a01:111:f403:2413::629])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0571aad1-19e2-11f0-9eae-5ba50f476ded;
 Tue, 15 Apr 2025 12:11:40 +0200 (CEST)
Received: from PH7PR12MB5854.namprd12.prod.outlook.com (2603:10b6:510:1d5::20)
 by DS7PR12MB8083.namprd12.prod.outlook.com (2603:10b6:8:e4::21) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.34; Tue, 15 Apr
 2025 10:11:34 +0000
Received: from PH7PR12MB5854.namprd12.prod.outlook.com
 ([fe80::bd58:fa72:e622:dd76]) by PH7PR12MB5854.namprd12.prod.outlook.com
 ([fe80::bd58:fa72:e622:dd76%5]) with mapi id 15.20.8632.030; Tue, 15 Apr 2025
 10:11: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: 0571aad1-19e2-11f0-9eae-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=RqpN6pTWJqfMcRLIKrQG6VioiZiezGDd+nEQak+Q7sco80KuDNq56viiVZmOWDO7VpV3GqqHFeOoXtcKkH7bK690Fg4FWPOKyaKup6qnCUNyWM7gO9bpXuMBwDsdSgtyvcs/rufO6w4Ae4CwTuQRWsvDHQvvr3vbxydkfNowzQPRJUHKJ9oMOcYqliDpDuY8NO2a0HMzphr3gu/BCy2xvl59wpng40Y/GFsPhO+FfmTwAfuqoZzGI2EZVx1/FB6nZqaZcZ7ZAd4+PGcgkiRhc7Puz16ehs9Eqx6akE/ib5uHZnlX6Yu76Fdkms9+q+uFkAi/icbETPv6BVTGhEVrtg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=n4bC8xlr8ORFdCzjUXiyhyV6v1K44E4uc7nRO0M+M3g=;
 b=tdjCK8F/FUxLYrEkQ8z8kYFOefcon2fJDeKT0YxGhP1rbaclVcCDuU3rEXBP3yRMMK8Ftgfzg6/Ovkvy3UFPWSpFPWXJVeLwnnDz40XbZMpDVQdzwHzzVPfYpoGz/26zSCDnpAFQuAbA8hkL6W+3dUebj3SbUhKBkJLlf2SrgxJWnFvDFv6J0zq1Jao2JvgWgdWgEOIS8uqpJQH5tNq4UpmIUbIbE8VlskxQGyd0pv/pW1uQlpEIl+eb3Ht65IjbCtTyTgIiQO2gtaG4jPN3hChSNCLxDR8PW7RopbbFvH0I7BDcWaWXCf7SXeosln+yHBJItyOXDqpykm9TpiCi0A==
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=n4bC8xlr8ORFdCzjUXiyhyV6v1K44E4uc7nRO0M+M3g=;
 b=Rpn08KQ12uIL5lYG/4XtzAd0XX9tFms8iyhpExoCs7qSXg829v5ixQWm7meI3hwxQRmIriCBHUAqfF/oC28VL/B9rd8ZM7fvSpwi0QUmpCgyytyGNh8Y929ShcP2DNAXt2LrA4r6SPK/8xR3H3ROVP5K26fm4sMqhKnu0HYu2yg=
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>, "Huang,
 Ray" <Ray.Huang@amd.com>, "Chen, Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [PATCH v2 3/8] vpci/header: Emulate extended capability list for
 host
Thread-Topic: [PATCH v2 3/8] vpci/header: Emulate extended capability list for
 host
Thread-Index: AQHbqRsbo3LVuEnuFEu9nspfZtmL8rOkgzIAgACNGIA=
Date: Tue, 15 Apr 2025 10:11:34 +0000
Message-ID:
 <PH7PR12MB5854861A59ACA2E132EA5DF4E7B22@PH7PR12MB5854.namprd12.prod.outlook.com>
References: <20250409064528.405573-1-Jiqian.Chen@amd.com>
 <20250409064528.405573-4-Jiqian.Chen@amd.com> <Z_4qBjte-STlLIum@macbook.lan>
In-Reply-To: <Z_4qBjte-STlLIum@macbook.lan>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-exchange-imapappendstamp: PH7PR12MB5854.namprd12.prod.outlook.com
 (15.20.8632.030)
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: PH7PR12MB5854:EE_|DS7PR12MB8083:EE_
x-ms-office365-filtering-correlation-id: 886df4f8-3b23-4822-a701-08dd7c05e6fd
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?OEd1ZGFheUI4Yis0clN1Y09aUjZJeS8ySnhaaXpReWdZZ0pvU0VpaEQ5Qmxt?=
 =?utf-8?B?azZCMkY4YldaSnVKcUFTMWw5bXQyOHRmaHBxa04xcndYYlpTLzVFL2JWWmxk?=
 =?utf-8?B?Y3JLQ3c2eGpPeTZITkNHMTFrRTFpR0JtRlZncVREQkp0ZFBkUkhXeTN3Mmwz?=
 =?utf-8?B?MXd0NHN5THI0NTRPRzNmQ1BJVUFEaWZyUHZIZEQ4VXF3cXdHTUtKZU5xRU0x?=
 =?utf-8?B?L0lhTitQOUdQZEVtYzhOaXRjMTlIRkViVWRDTWthVWFYY0J1VlZNWFAraFpD?=
 =?utf-8?B?bng4TlQvODNwRklqRWMzK3NrU1Zna3Ivcm9NR2I0czhQZGdWZDUwc013d0R6?=
 =?utf-8?B?aEpTVFF5T0JRY2ZWbjN6U0d4VjlPVWpJUkt2Rm8xdFVQV0RjNzN5NGRiQlZD?=
 =?utf-8?B?L0h5Mm1rOXZFRGJGaU1qbitwaFZwcDlMMGNSMEdQSXpBT0lxV0k1VmtXYkwv?=
 =?utf-8?B?QVNROXdyYmh6TURMNnlxVk9kS0ozWUowSUNBZUx2TXVtbHRSdXFKSVdQYVNF?=
 =?utf-8?B?c0lBYlY1S25XL0VrMmErMkxtTUpEaW4xMzUrbGtta1lyTVl5cU1NQ3BucHpY?=
 =?utf-8?B?U1V2ZDJpMVlxQ3puVzRKeXNQVHArbWtzeVE1VHBpejltOWtCN1o3NGh6TXZP?=
 =?utf-8?B?bFZoZkJ3L1daNkptamJRcHVVc3EzenY3R1RvWERLNTFRZGEvcDl5aFo3VXdY?=
 =?utf-8?B?RFN6dEQwemUzTDhGZ2c1dnV5dENiNFM3MHBoVmFSOUpjUHVqc3FTL3RQMmw2?=
 =?utf-8?B?dm5kdjZlL1FaQjVXbk53NE9xaDRnL3BZSFBmdFhpTlQ5MGJiNkd3RTFMYy9Z?=
 =?utf-8?B?ZXBLazJyOW5UYm9xQis2OFc5Y3ErbmxGZTg2Z2RodDJvSyt5WmhCak1uT2V0?=
 =?utf-8?B?cXJTUTdaejFjT2F5dVlkbE9qSy9kRlFseDJERnBNek00TndsWVZuZVk5TmdI?=
 =?utf-8?B?WFNiSGIwVjdqQ05oek9kTmh6THJFTEUwUHZWUkFKaklUMEJzanpzRkYvVzkv?=
 =?utf-8?B?OU9Ed24yd3FkSHBUOEF0TEVtM2JjSXBzVmlBYURmWEFOQ3hJb2NQZWgyUnFh?=
 =?utf-8?B?S25GaW9MRHhmVzUvWTNQa3oxM25rR0JxNmVydkhSMVROL1dTbUU2dzNTTFhO?=
 =?utf-8?B?WXZBNGw1MUJiQ296NGxyQ3c5RFI4UzFRZkRCUitaOElZaDVPTURvcmhyMFVs?=
 =?utf-8?B?NjZzZzNWRnFmMXZSSE1ZQ0JWaElVenZlMi8wSTZ0ekpUNVFuTHJvdzQwK2Ro?=
 =?utf-8?B?QVhXUUpvYm9iNHFBKzIrcERkbkMvQnltU0hUTjQ0bmhYb0JueUt4cEZIUEdu?=
 =?utf-8?B?R1BsRktJbmRSWTNXemdENUZpejNwWmYzd3VvSGtzRkpDREt0L1RjbU9adjdz?=
 =?utf-8?B?MUF5eFM1ejlINHRTT1dvMmlxS2FtNTZ0VmQ1MU9JYWY3dXdGM0Z0N29XdGVW?=
 =?utf-8?B?WlhGOW5ycVNkSVZnS3JOaGtCTG53VTlIUWprdkxXNHozNmx1dTArVm9aUkpW?=
 =?utf-8?B?ZFp2WkhoYzRQWERPQXR2Q0V1TkEzQjErelRtaFAzdVF3SlgySlp5cHpPdTNN?=
 =?utf-8?B?cXpTSFhaVmo4b2VBUktSRUtoR3Y1alRCSWxnL0hCQnB2Nmh3YlNEeExlSEx4?=
 =?utf-8?B?TkJ6MDlPMjZ5cVNkb0tGSUcyeldsZ0RhdmNSUndHcmxENmtldlEzMkUxRkU0?=
 =?utf-8?B?UmtEcHgzbE4zek5rQWcxSHhVdDh0dTZERmhPdVhDVEd5NDdNdFFjSlJMaW5R?=
 =?utf-8?B?SC9PckF2QkFtUmNpQy90cWI5MVJINlkvQlJDeEE2WHJrRlFOdzNvZmRQRDBI?=
 =?utf-8?B?TXBQeXpmdVhWb2tDa2FxbnBiWW1ZY3V2dENwT3lXemVVY0hDM3FZQkVLNmZl?=
 =?utf-8?B?NUFXMkpIcTh3VzhPUjBic1lYbUpsUitkeVBsaVJwQ1owb3RsajE0Y2RSc29V?=
 =?utf-8?B?djFPS0gzbXEycVpJcnl6NjVva0FkM2JKc2hoNjVVVkZEeFRQYmVhRUl4NHkx?=
 =?utf-8?Q?3s2w8N76iq9q5opZiW031h6r2pDvA8=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH7PR12MB5854.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?TkVzeXlqemp1dEl1d3FreGhGWGRiS2o4NDVTVnd6dzZwYStrU2NDN2l0dUl3?=
 =?utf-8?B?NkZhVmgwWEdFdVBvWVQwNTh1QStzVXlDVnduVHU3TEU0UTJKNTRmZmhhcHpR?=
 =?utf-8?B?VG80Vzd5U3E2QzgvUEc2RURaOFVEVUtEVE1OTnRFYXRyK25vNENWK2cvMkxR?=
 =?utf-8?B?Sk5HM1RlY0JhUk9GTW9FVEZqUE5Kd3F0MzNyL0NRUWtjV3BiNG1LOW9haDBL?=
 =?utf-8?B?TDR6TUNhL2lvT2N1UkFIMDYxTnVrRStCTEJ6bFpEYzlqMTZFOHZNUEJzS08r?=
 =?utf-8?B?SkVsUy9wS21TWWp5QWZqZGowem9udlF2RDdSNWFkYStHWmdUaHIvR3M1MjZL?=
 =?utf-8?B?VTdscUU1WjNId3VheEpHTDVhdVA2T25OKzZucDkxUEdDdDY4Zm85WkpsNHJQ?=
 =?utf-8?B?Y0RLMmE3dklMUWJqNFJuTG1xNkI3YzhNSWo0NlBaeTZrTEdFQm5VWGhYUXlx?=
 =?utf-8?B?REVZeGhhNmpCK3dLa3phK1JEaTVkRkNncVg3VlhMSTJIZkR4MlBxTUgrNm1a?=
 =?utf-8?B?V3hMSmdRclpiOStJNVhYdDlqc2tqYktZLzkraFArYzJIRHdSODlkRDZOTXFk?=
 =?utf-8?B?M3d0L0NRMTRjaVY1RW5iZFFabnNBYncvUzQ5cWxkaHZVNldudUtab0ppT0d3?=
 =?utf-8?B?U0JOSDNVR0x5MjhHZS9mNDgrUVlwc2hRMlNnWTRFcFN6ZWhVQmFlZW1zR056?=
 =?utf-8?B?YU1Za1pSRHBzMFdWcXNtUDZ1aVFqN3IrQU5WN05xZTBQT3hUSHlWQTFhWUJo?=
 =?utf-8?B?OVlETGtzdzBTYkhjbkZXRU1NRkp2TW9JVjFSTVlaTHAvK2s2SExGVU5PRi8v?=
 =?utf-8?B?RmVkSU1WbyttTVAwamlrWXNUc0oxS3JoYkFlMVNmUjVnQ3FvUzJIbFNkaTJU?=
 =?utf-8?B?czZsRW1xeHZOUjlwUlFFTzhWZzNyOG05T0trTVVGNkZTcTZQVjNkTUR5ck1T?=
 =?utf-8?B?L05IR1VWREdQV1ArMUZTREJ5Nm9ROXRPU29HUnpvZWFUREpJRTY3aGJFUW5v?=
 =?utf-8?B?U3RNeFYyWFR5Kzd5ZDArNnN6ZityL3ZmT1dBTWNHREJYU2ZDWVFlQVVPeHhZ?=
 =?utf-8?B?U2VCRTlnMWtuVmQ5MWd3d2lKaVBTODdXd01LN1RHRXAyMCtRdkZqVGZUdVUw?=
 =?utf-8?B?QmxVb0RDR25vNjkzdFZMZGRva3lEaERER2NBalhxWE40NitMZThxbTAxenl1?=
 =?utf-8?B?cXNQZ2kvM2lxeFNiZzlheW9hQTBQYW9tQktIUUJMamh4amo0dUlzSitvV0Q5?=
 =?utf-8?B?Mk85MkRneGs0c3VUSGRWZjJNaERDY24wK29EbUZhd1dRV3U5aktPWVZxWDNQ?=
 =?utf-8?B?a3FVRytoUjZydEpxSW9CZ05QdFJNYW5aWWFKSk1YeFNxcENBOGJOZlhPR2lR?=
 =?utf-8?B?TkYrOG5yTE1SR3ZyRGd0djFQTGJTeHhOMjBsUUNweHEra2oxbk00TURDVFJi?=
 =?utf-8?B?bGhkTU9Zc1BheWF1amQxcFV6Q3lncjJpNURZMHdqMEE5UGtMVDlRZHlXb293?=
 =?utf-8?B?aE5LdTRmKzV4M01CaWpUTlFmcDc3dUt3dDNtWWIxOHRGWEVXSkQ1STNuZXZ5?=
 =?utf-8?B?UUJjN0k5MmtBcXAxVzlPamttNVh2Mk15UnRZaFEwQXpVR1RsdmRDYmJoQVB1?=
 =?utf-8?B?eDl2elE5ZG1yWHV6b3dkNHpuZGRkV0g5QVRjYzRNU0t0dmJweDFZZ0pJdVlQ?=
 =?utf-8?B?YkkrNGgvSExTTnBkZUZTaVJmRjBWMHZSYmlBMVRnZ3VoWXRYZjJmVjlJdllD?=
 =?utf-8?B?YjVRMzR0dC9vaVVkWWhvd1VoQ0hCcitLWHVXSDFENFpzaTJzOUFTTHc1V0U2?=
 =?utf-8?B?clBBdG5JWUorNU5zaTFxbnZZSXdNVk5ySTdYeFo3WStUUENQTjU4RTUvUFFz?=
 =?utf-8?B?RWJDVDY1U1lENjI4OHNsMmhSQXduZWQvT3ZOcUphZ3Zwc2MyMGt6VmEzVXJ3?=
 =?utf-8?B?bklReE9tVW1KdVRTQ2QyaGp5TjlFYUR0WlVRdzBtNTgwZUV4bE1oa0IxekVx?=
 =?utf-8?B?K0x1SkhUclBXcTVjQjFOZ1RNNkZIMU5Eajg3SHpGdXBJRHdlNytCS01uQUd4?=
 =?utf-8?B?LzQxQkYvQTJla3A0WEpqZmFKbmkzR2VzS1A0cnJqamNuUXM4S2xEMCsvcHFr?=
 =?utf-8?Q?o93Y=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <CFB5C070139C4E4E8B49A0B220F66C3C@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: PH7PR12MB5854.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 886df4f8-3b23-4822-a701-08dd7c05e6fd
X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Apr 2025 10:11:34.8180
 (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: TKoDpoQbbFLzsbJYMRkjDF7JCrMti86GI+9h3uKEfeZpTXRk9RsI0aggg8DSKFvussPOrPAI/ZNcIgaUQUIcZA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB8083

T24gMjAyNS80LzE1IDE3OjQyLCBSb2dlciBQYXUgTW9ubsOpIHdyb3RlOg0KPiBPbiBXZWQsIEFw
ciAwOSwgMjAyNSBhdCAwMjo0NToyM1BNICswODAwLCBKaXFpYW4gQ2hlbiB3cm90ZToNCj4+IEFk
ZCBhIG5ldyBmdW5jdGlvbiB0byBlbXVsYXRlIGV4dGVuZGVkIGNhcGFiaWxpdHkgbGlzdCBmb3Ig
aG9zdCwNCj4+IGFuZCBjYWxsIGl0IGluIGluaXRfaGVhZGVyKCkuIFNvIHRoYXQsIGl0IHdpbGwg
YmUgZWFzeSB0byBoaWRlDQo+PiBhIGNhcGFiaWxpdHkgd2hvc2UgaW5pdGlhbGl6YXRpb24gZmFp
bHMuDQo+Pg0KPj4gQXMgZm9yIHRoZSBleHRlbmRlZCBjYXBhYmlsaXR5IGxpc3Qgb2YgZ3Vlc3Qs
IGtlZXAgaGlkaW5nIGl0Lg0KPj4NCj4+IFNpZ25lZC1vZmYtYnk6IEppcWlhbiBDaGVuIDxKaXFp
YW4uQ2hlbkBhbWQuY29tPg0KPj4gLS0tDQo+PiBjYzogIlJvZ2VyIFBhdSBNb25uw6kiIDxyb2dl
ci5wYXVAY2l0cml4LmNvbT4NCj4+IC0tLQ0KPj4gdjEtPnYyIGNoYW5nZXM6DQo+PiBuZXcgcGF0
Y2gNCj4+DQo+PiBCZXN0IHJlZ2FyZHMsDQo+PiBKaXFpYW4gQ2hlbi4NCj4+IC0tLQ0KPj4gIHhl
bi9kcml2ZXJzL3ZwY2kvaGVhZGVyLmMgfCA0NCArKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKy0tLS0tLS0NCj4+ICAxIGZpbGUgY2hhbmdlZCwgMzYgaW5zZXJ0aW9ucygrKSwgOCBkZWxl
dGlvbnMoLSkNCj4+DQo+PiBkaWZmIC0tZ2l0IGEveGVuL2RyaXZlcnMvdnBjaS9oZWFkZXIuYyBi
L3hlbi9kcml2ZXJzL3ZwY2kvaGVhZGVyLmMNCj4+IGluZGV4IDA5MTBlYjk0MGUyMy4uNjgzM2Q0
NTY1NjZiIDEwMDY0NA0KPj4gLS0tIGEveGVuL2RyaXZlcnMvdnBjaS9oZWFkZXIuYw0KPj4gKysr
IGIveGVuL2RyaXZlcnMvdnBjaS9oZWFkZXIuYw0KPj4gQEAgLTgxNSw2ICs4MTUsMzkgQEAgc3Rh
dGljIGludCB2cGNpX2luaXRfY2FwYWJpbGl0eV9saXN0KHN0cnVjdCBwY2lfZGV2ICpwZGV2KQ0K
Pj4gICAgICByZXR1cm4gcmM7DQo+PiAgfQ0KPj4gIA0KPj4gK3N0YXRpYyBpbnQgdnBjaV9pbml0
X2V4dF9jYXBhYmlsaXR5X2xpc3Qoc3RydWN0IHBjaV9kZXYgKnBkZXYpDQo+PiArew0KPj4gKyAg
ICBpbnQgcmM7DQo+PiArICAgIHUzMiBoZWFkZXI7DQo+IA0KPiB1aW50MzJfdCB3b3VsZCBiZSBw
cmVmZXJyZWQuDQo+IA0KPj4gKyAgICB1bnNpZ25lZCBpbnQgcG9zID0gMHgxMDBVLCB0dGwgPSA0
ODA7DQo+PiArDQo+PiArICAgIGlmICggIWlzX2hhcmR3YXJlX2RvbWFpbihwZGV2LT5kb21haW4p
ICkNCj4+ICsgICAgew0KPj4gKyAgICAgICAgLyogRXh0ZW5kZWQgY2FwYWJpbGl0aWVzIHJlYWQg
YXMgemVybywgd3JpdGUgaWdub3JlICovDQo+PiArICAgICAgICByYyA9IHZwY2lfYWRkX3JlZ2lz
dGVyKHBkZXYtPnZwY2ksIHZwY2lfcmVhZF92YWwsIE5VTEwsDQo+PiArICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHBvcywgNCwgKHZvaWQgKikwKTsNCj4+ICsgICAgICAgIGlmICggcmMg
KQ0KPj4gKyAgICAgICAgICAgIHJldHVybiByYzsNCj4gDQo+IEkgdGhpbmsgeW91IHdhbnQgdG8g
dW5jb25kaXRpb25hbGx5IHJldHVybiBoZXJlLCBvdGhlcndpc2UgeW91IHdpbGwNCj4gbW9zdCBs
aWtlbHkgYWRkIGEgZHVwbGljYXRlZCBoYW5kbGVyIG92ZXIgInBvcyIgd2hlbiBnb2luZyBpbnNp
ZGUgdGhlDQo+IGxvb3AgYmVsb3c/DQpPaCwgaXQncyBteSBiYWQuDQpJIHNob3VsZCByZXR1cm4g
aGVyZSBmb3IgYW55IHJjLg0KDQo+IA0KPiBBbHNvIGZvciBkb21VIHdlIGRvbid0IHdhbnQgdG8g
ZXhwb3NlIGFueSBleHRlbmRlZCBjYXBhYmlsaXRpZXMgeWV0Lg0KPiANCj4+ICsgICAgfQ0KPj4g
Kw0KPj4gKyAgICB3aGlsZSAoIHBvcyAmJiB0dGwtLSApDQo+PiArICAgIHsNCj4+ICsgICAgICAg
IGhlYWRlciA9IHBjaV9jb25mX3JlYWQzMihwZGV2LT5zYmRmLCBwb3MpOw0KPj4gKw0KPj4gKyAg
ICAgICAgcmMgPSB2cGNpX2FkZF9yZWdpc3RlcihwZGV2LT52cGNpLCB2cGNpX3JlYWRfdmFsLCBO
VUxMLA0KPiANCj4gWW91IGRvbid0IHdhbnQgdG8gcGFzcyBOVUxMIGhlcmUsIGFzIHRoYXQgd291
bGQgcHJldmVudCBkb20wIGZyb20NCj4gd3JpdGluZyB0byB0aGUgcmVnaXN0ZXIsIHlvdSBpbnN0
ZWFkIHdhbnQgdG8gcGFzcyB2cGNpX2h3X3dyaXRlMzIgSQ0KPiB0aGluay4NCldpbGwgY2hhbmdl
IGluIG5leHQgdmVyc2lvbi4NCg0KPiANCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcG9zLCA0LCAodm9pZCAqKSh1aW50cHRyX3QpaGVhZGVyKTsNCj4+ICsgICAgICAgIGlmICgg
cmMgKQ0KPj4gKyAgICAgICAgICAgIHJldHVybiByYzsNCj4+ICsNCj4+ICsgICAgICAgIGlmICgg
KGhlYWRlciA9PSAwKSB8fCAoaGVhZGVyID09IC0xKSApDQo+PiArICAgICAgICAgICAgcmV0dXJu
IDA7DQo+PiArDQo+PiArICAgICAgICBwb3MgPSBQQ0lfRVhUX0NBUF9ORVhUKGhlYWRlcik7DQo+
IA0KPiBEb24ndCB5b3UgbmVlZCB0byBjaGVjayB0aGF0IHBvcyA+PSAweDEwMD8gIFBvc3NpYmx5
IGRvbmUgaW4gdGhlIHdoaWxlDQo+IGxvb3AgY29uZGl0aW9uOiB3aGlsZSAoIHBvcyA+PSAweDEw
MCAmJiAuLi4gKQ0KWWVzLCB3aWxsIGNoYW5nZSBpbiBuZXh0IHZlcnNpb24uDQoNCj4gDQo+IFRo
YW5rcywgUm9nZXIuDQoNCi0tIA0KQmVzdCByZWdhcmRzLA0KSmlxaWFuIENoZW4uDQo=


From xen-devel-bounces@lists.xenproject.org Tue Apr 15 10:18:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 10:18:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.952535.1347948 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4dMp-0006Qb-9I; Tue, 15 Apr 2025 10:18:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 952535.1347948; Tue, 15 Apr 2025 10:18: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 1u4dMp-0006QU-6k; Tue, 15 Apr 2025 10:18:11 +0000
Received: by outflank-mailman (input) for mailman id 952535;
 Tue, 15 Apr 2025 10:18: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=ai1O=XB=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u4dMn-0006QM-7G
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 10:18:09 +0000
Received: from mail-wr1-x430.google.com (mail-wr1-x430.google.com
 [2a00:1450:4864:20::430])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ec323df0-19e2-11f0-9ffb-bf95429c2676;
 Tue, 15 Apr 2025 12:18:06 +0200 (CEST)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-39c266c2dd5so4699414f8f.3
 for <xen-devel@lists.xenproject.org>; Tue, 15 Apr 2025 03:18:06 -0700 (PDT)
Received: from [10.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-44034fca7a3sm9628375e9.0.2025.04.15.03.18.05
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 15 Apr 2025 03:18: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: ec323df0-19e2-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744712286; x=1745317086; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ccFFN7xYdyBsfOIRZ+yKWcCLP+nNbLtMrWrHyTQVYiM=;
        b=SVp9vhzk0QFSIAdzsygQBvXR1FBL3wY70PzdxY7R8g78Ip5vTix/3JzTTXnA4BmsQg
         krSQv5NSHW467DPdkR79igntk/Zg5UIBLj18Xz2u5qrIm7Cgmn4UoEPf/H12D2esj8sM
         VzBd3LnVAkh5URNhK8ZUFT0Ke+RcyGvbwR00jMwJnNv9dLpMZSCaPKraBqF5jT8+gU40
         p8kALuvSRb0w1WcHHfDYrkhLaewbDwf+4w4ArN48lBpa8Gp6qFmcCdxcL3QvFtovu6x9
         UxChdFs9nfgDkez29lIuqNzuOfc0emCqeigvqDIxHjTqpi8Xormn81iBDPnEil+86OfD
         VXqQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744712286; x=1745317086;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ccFFN7xYdyBsfOIRZ+yKWcCLP+nNbLtMrWrHyTQVYiM=;
        b=glL1S7OPHc2svxH1rE/W5YqEy1WOQ6OM0kAj8CxtvDm7ysIKNkV+GI8TqWMj2oD/yk
         nixXzr3FzHcj0vfA8tcxQ9viWm/sXChFjeQKvnCbhnAMUWHuR+tGqn+taES2qmB6JHNd
         VA+yPMv2GgKKCIZUaPSjtKoMP2PMaXNyYY+6A39zz8Nz4b4DuCLew2gnWV9U8K+/F0uC
         stxLUvk+3nwZl33o5ZRCu3joOtJzXRKDhNTqVIv5992h2eHZmuOyd/RUg1cM9nCIe9tY
         Cp4GwQLTRbaXWabaTxcJlJotZ8acjzad3/babEwJAPMOtIQ3BnNqGO4Uc9XaiKWMlrYY
         pfgw==
X-Forwarded-Encrypted: i=1; AJvYcCVlrkTD/Gz5340LeL5bYAn7duiWWJZHJiohp68XqJGhfnKY3ybih+HGcu9RBR0lZgzWxdKEO5WZG3E=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywbiqmbsnht8JdnFmtyDTyWEJJBCr+RAyG3ARw2VIuAAmMfu6NO
	qltPGyUuA335lZOLFdE4pW+y/daA/Bww6nSC9Qv80IVYTR0WTuUCGik9b9UJEQ==
X-Gm-Gg: ASbGncvpgydsyhv+cYild1gz+pkiolQAvDGfMikxmisOaPlT/VLKcSo4I+Yi5+vNx9S
	4xr6FVxvtbdhBqXKPLH8GHV42jGA0+fw3/haXHd6Kc30GnoX47NxE9O7rg+PDBae7lAcM5s/172
	sLHWTzHX2CTl0hjD5VF9WA3nZbTHxjXUXdc/REWvM1KCUBNwhvujdVPZ5HfAg4J+AzbO/T6yshS
	BUH4hhYl9pd0N8yjU92COjRPiJMeDc9/KVMNzOaVISVTiDr0YQ1232ISTFVsMqHByUPRTCRU8nX
	sAw5fhst0GDCWiDfORZHpYwVCaSdCym8H8FZARV8iCJP+YxAau02nl6g3Q+eOdPrCITcG0vhF7A
	byNHMzAKRingO9BA1Wr8YxmWB4Q==
X-Google-Smtp-Source: AGHT+IFpDhNdu1Gat5igIPlohlnF6BFx0rIBcQG8G0tR3b5tgTO3I1C2CjfJFlM7o70/R48GUUXNWw==
X-Received: by 2002:a05:6000:4305:b0:391:ccf:2d17 with SMTP id ffacd0b85a97d-39e9f3cced7mr12179815f8f.0.1744712285869;
        Tue, 15 Apr 2025 03:18:05 -0700 (PDT)
Message-ID: <0c74e9c9-c01d-4213-af01-cc287d1ef76b@suse.com>
Date: Tue, 15 Apr 2025 12:18:04 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 3/5] x86/hvm: fix handling of accesses to partial r/o MMIO
 pages
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,
 Marek Marczykowski <marmarek@invisiblethingslab.com>
References: <20250411105411.22334-1-roger.pau@citrix.com>
 <20250411105411.22334-4-roger.pau@citrix.com>
 <eaf5f71b-2c56-4bd8-a45f-35280af16466@suse.com>
 <Z_0TXKMe6tfrYR9T@macbook.lan>
 <c92d5665-0940-40b5-8cbb-81889adf40c5@suse.com>
 <Z_00JReo7Ji7RwkD@macbook.lan>
 <7c3c91d9-4de8-4910-b26e-8782a0f0d364@suse.com>
 <Z_4aBL7JhTv_oxWR@macbook.lan>
 <4dd5ada8-32e7-4b94-b2a4-51b20e09eb79@suse.com>
 <Z_4vE1qHlvGliqXY@macbook.lan>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <Z_4vE1qHlvGliqXY@macbook.lan>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 15.04.2025 12:04, Roger Pau Monné wrote:
> On Tue, Apr 15, 2025 at 11:41:27AM +0200, Jan Beulich wrote:
>> On 15.04.2025 10:34, Roger Pau Monné wrote:
>>> On Tue, Apr 15, 2025 at 09:32:37AM +0200, Jan Beulich wrote:
>>>> On 14.04.2025 18:13, Roger Pau Monné wrote:
>>>>> On Mon, Apr 14, 2025 at 05:24:32PM +0200, Jan Beulich wrote:
>>>>>> On 14.04.2025 15:53, Roger Pau Monné wrote:
>>>>>>> On Mon, Apr 14, 2025 at 08:33:44AM +0200, Jan Beulich wrote:
>>>>>>>> I'm also concerned of e.g. VT-x'es APIC access MFN, which is
>>>>>>>> p2m_mmio_direct.
>>>>>>>
>>>>>>> But that won't go into hvm_hap_nested_page_fault() when using
>>>>>>> cpu_has_vmx_virtualize_apic_accesses (and thus having an APIC page
>>>>>>> mapped as p2m_mmio_direct)?
>>>>>>>
>>>>>>> It would instead be an EXIT_REASON_APIC_ACCESS vmexit which is handled
>>>>>>> differently?
>>>>>>
>>>>>> All true as long as things work as expected (potentially including the guest
>>>>>> also behaving as expected). Also this was explicitly only an example I could
>>>>>> readily think of. I'm simply wary of handle_mmio_with_translation() now
>>>>>> getting things to handle it's not meant to ever see.
>>>>>
>>>>> How was access to MMIO r/o regions supposed to be handled before
>>>>> 33c19df9a5a0 (~2015)?  I see that setting r/o MMIO p2m entries was
>>>>> added way before to p2m_type_to_flags() and ept_p2m_type_to_flags()
>>>>> (~2010), yet I can't figure out how writes would be handled back then
>>>>> that didn't result in a p2m fault and crashing of the domain.
>>>>
>>>> Was that handled at all before said change?
>>>
>>> Not really AFAICT, hence me wondering how where write accesses to r/o
>>> MMIO regions supposed to be handled by (non-priv) domains.  Was the
>>> expectation that those writes trigger an p2m violation thus crashing
>>> the domain?
>>
>> I think so, yes. Devices with such special areas weren't (aren't?) supposed
>> to be handed to DomU-s.
> 
> Oh, I see.  That makes stuff a bit clearer.  I think we would then
> also want to add some checks to {ept_}p2m_type_to_flags()?
> 
> I wonder why handling of mmio_ro_ranges was added to the HVM p2m code
> in ~2010 then.  If mmio_ro_ranges is only supposed to be relevant for
> the hardware domain in ~2010 an HVM dom0 was not even in sight?

I fear because I was wrong with what I said in the earlier reply: There's
one exception - the MSI-X tables of devices. DomU-s (and even Dom0) aren't
supposed to access them directly, but we'd permit reads (which, at least
back at the time, were also required to keep qemu working).

> Sorry to ask so many questions, I'm a bit confused about how this
> was/is supposed to work.

No worries - as you can see, I'm not getting it quite straight either.

>>>> mmio_ro_do_page_fault() was
>>>> (and still is) invoked for the hardware domain only, and quite likely
>>>> the need for handling (discarding) writes for PVHv1 had been overlooked
>>>> until someone was hit by the lack thereof.
>>>
>>> I see, I didn't realize r/o MMIO was only handled for PV hardware
>>> domains only.  I could arguably do the same for HVM in
>>> hvm_hap_nested_page_fault().
>>>
>>> Not sure whether the subpage stuff is supposed to be functional for
>>> domains different than the hardware domain?  It seems to be available
>>> to the hanrdware domain only for PV guests, while for HVM is available
>>> for both PV and HVM domains:
>>
>> DYM Dom0 and DomU here?
> 
> Indeed, sorry.
> 
>>> is_hardware_domain(currd) || subpage_mmio_write_accept(mfn, gla)
>>>
>>> In hvm_hap_nested_page_fault().
>>
>> See the three XHCI_SHARE_* modes. When it's XHCI_SHARE_ANY, even DomU-s
>> would require this handling. It looks like a mistake that we permit the
>> path to be taken for DomU-s even when the mode is XHCI_SHARE_HWDOM.
> 
> Arguable a domU will never get the device assigned in the first place
> unless the share mode is set to XHCI_SHARE_ANY.  For the other modes
> the device is hidden, and hence couldn't be assigned to a domU anyway.

Correct. Yet then we permit a code path to be taken which is supposedly
unnecessary, but potentially (if something went wrong) harmful.

>>>>> I'm happy to look at other ways to handling this, but given there's
>>>>> current logic for handling accesses to read-only regions in
>>>>> hvm_hap_nested_page_fault() I think re-using that was the best way to
>>>>> also handle accesses to MMIO read-only regions.
>>>>>
>>>>> Arguably it would already be the case that for other reasons Xen would
>>>>> need to emulate an instruction that accesses a read-only MMIO region?
>>>>
>>>> Aiui hvm_translate_get_page() will yield HVMTRANS_bad_gfn_to_mfn for
>>>> p2m_mmio_direct (after all, "direct" means we expect no emulation is
>>>> needed; while arguably wrong for the introspection case, I'm not sure
>>>> that and pass-through actually go together). Hence it's down to
>>>> hvmemul_linear_mmio_access() -> hvmemul_phys_mmio_access() ->
>>>> hvmemul_do_mmio_buffer() -> hvmemul_do_io_buffer() -> hvmemul_do_io(),
>>>> which means that if hvm_io_intercept() can't handle it, the access
>>>> will be forwarded to the responsible DM, or be "processed" by the
>>>> internal null handler.
>>>>
>>>> Given this, perhaps what you do is actually fine. At the same time
>>>> note how several functions in hvm/emulate.c simply fail upon
>>>> encountering p2m_mmio_direct. These are all REP handlers though, so
>>>> the main emulator would then try emulating the insn the non-REP way.
>>>
>>> I'm open to alternative ways of handling such accesses, just used what
>>> seemed more natural in the context of hvm_hap_nested_page_fault().
>>>
>>> Emulation of r/o MMIO accesses failing wouldn't be an issue from Xen's
>>> perspective, that would "just" result in the guest getting a #GP
>>> injected.
>>
>> That's not the part I'm worried about. What worries me is that we open up
>> another (or better: we're widening a) way to hit the emulator in the first
>> place. (Plus, as said, the issue with the not really tidy P2M type system.)
> 
> But the hit would be limited to domains having r/o p2m_mmio_direct
> entries in the p2m, as otherwise the path would be unreachable?

I fear I don't follow - all you look for in the newly extended conditional
is the type being p2m_mmio_direct. There's no r/o-ness being checked for
until we'd make it through the emulator and into subpage_mmio_accept().

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 15 10:18:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 10:18:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.952541.1347957 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4dN7-0006m4-Gq; Tue, 15 Apr 2025 10:18:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 952541.1347957; Tue, 15 Apr 2025 10:18: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 1u4dN7-0006lx-DR; Tue, 15 Apr 2025 10:18:29 +0000
Received: by outflank-mailman (input) for mailman id 952541;
 Tue, 15 Apr 2025 10:18: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=QN48=XB=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1u4dN6-0006QM-CH
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 10:18:28 +0000
Received: from NAM10-BN7-obe.outbound.protection.outlook.com
 (mail-bn7nam10on20631.outbound.protection.outlook.com
 [2a01:111:f403:2009::631])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f502d85f-19e2-11f0-9ffb-bf95429c2676;
 Tue, 15 Apr 2025 12:18:22 +0200 (CEST)
Received: from PH7PR12MB5854.namprd12.prod.outlook.com (2603:10b6:510:1d5::20)
 by CH3PR12MB8332.namprd12.prod.outlook.com (2603:10b6:610:131::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.35; Tue, 15 Apr
 2025 10:18:14 +0000
Received: from PH7PR12MB5854.namprd12.prod.outlook.com
 ([fe80::bd58:fa72:e622:dd76]) by PH7PR12MB5854.namprd12.prod.outlook.com
 ([fe80::bd58:fa72:e622:dd76%5]) with mapi id 15.20.8632.030; Tue, 15 Apr 2025
 10:18: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: f502d85f-19e2-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=cZe3WBu596uuiNest2dlWUBctcmcVR8z0WraQgiMDmKAMGNXqxeHgzq41EvL0YZMigoePJyjkqwLnkHU4mMo1lKhy4YPPrZuqIMnWHBlyWXb6nNnsiszogCFoO047Llsn7ziKboZPYkXEC/jfRWRSgOWDEVLkrBBZ5qeFc+U2Rd67iJMU7qQc/ft4eKbCOM5euKSeaFMs+usc3U0A7vDwTWPQ8cZ7nK3pMkQMc5pu5ebTbJqnDq81kZJ2THJ4YMWjxPYqehtsuX1wnZwYw7QAwrwXC2tjy0EZJjuOB+ILygCfhgKsINsbO2rC4mU1QOYtczImDGmeNMsIuJXWGOKQQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=A6hJg+3qnJdwjTZv/XR2qzAqDEM7dahl/c/NPI0Ac5w=;
 b=KDbInL8moOmQQzUQ/R7GrfLK4vuU/UTxLZ/+nZQknVTdxsU+1Kz0anJr65tlCWyOzLk7wub2uUbI/IhOqBNdtWsEUdo6Wqsjj1hsFTFN1v0maMfln6PAmzEi9A+6Bdxmav+fR2z5gqOw9JGyPGe/E+7X/xcwxpXIvdGiDpg+UInPy/b7vmMQbh3eVdo7wfGWIuYitbBbTtdGZxEvYp4v+w4KlKe/tqC8fflmkijqFpcQ6ehIbM6ZqCCW0y0SArRPuDRuCJnxlEuhifKqC/pp6Xmpr/4UIBx7WTtb1CLROyvDPLngiAbbyfRZPeVPwBRlV9oMW2j8KnLh5cTTH2Fq1A==
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=A6hJg+3qnJdwjTZv/XR2qzAqDEM7dahl/c/NPI0Ac5w=;
 b=G+WZ8QjooHVL4C70Blhg/rVc4RyheUITCFYOqXekYC4EG2epQuP4X04IfhT8J5l938jrmZQ8HLPizY65/WUcuiKOAWoX5j6p0BtZSSIC3OCH/KDSIpjj3/4SFlXY3KSIfUhWwTpHCDGwRp+97glawBuVPI+CNGqkQdp4NIXA8/4=
From: "Chen, Jiqian" <Jiqian.Chen@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, "Huang,
 Ray" <Ray.Huang@amd.com>, "Chen, Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [PATCH v2 3/8] vpci/header: Emulate extended capability list for
 host
Thread-Topic: [PATCH v2 3/8] vpci/header: Emulate extended capability list for
 host
Thread-Index: AQHbqRsbo3LVuEnuFEu9nspfZtmL8rOkhQ8AgACNiwA=
Date: Tue, 15 Apr 2025 10:18:13 +0000
Message-ID:
 <PH7PR12MB5854D4F8AB6F4E56E67DE757E7B22@PH7PR12MB5854.namprd12.prod.outlook.com>
References: <20250409064528.405573-1-Jiqian.Chen@amd.com>
 <20250409064528.405573-4-Jiqian.Chen@amd.com>
 <dd4dd741-b063-4619-a893-a9c02c0ca791@suse.com>
In-Reply-To: <dd4dd741-b063-4619-a893-a9c02c0ca791@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-exchange-imapappendstamp: PH7PR12MB5854.namprd12.prod.outlook.com
 (15.20.8632.030)
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: PH7PR12MB5854:EE_|CH3PR12MB8332:EE_
x-ms-office365-filtering-correlation-id: eb40a5f0-decb-4696-8a4b-08dd7c06d4da
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?UUhtZ0pCaHhKaEZyM1pWN0NLV1VOdlczRG1lTHhhOXN5Qy9lajVZY2I2a0Nz?=
 =?utf-8?B?d1hPelkrN01qZ1F3aThyRkppVi9VK255czAwWWozcHl2a0EvTm9HdWpxOHlt?=
 =?utf-8?B?S2hsd3RBUG5Xd3A1MDZwYVBSaE95UERZVjdpNEV2UDYrdkVpV3ZmNVZ0MjNt?=
 =?utf-8?B?TnhaRjhGdWpKd0pIRUNSMkdRV1dHRThrZjZQdFc4NWFVTHhJdHZqU2I0LzRY?=
 =?utf-8?B?WU9xNzJURVMxdkt5UXpJMHlhMDloTWVZRVJsb1ZQK25FUDF4MEVDUFEwZFEv?=
 =?utf-8?B?WGw3UURiWnFMb1drV1RVaXVlRTlNT2tVbEx3RjhaczIzWHRSVXdKS2J3NG0w?=
 =?utf-8?B?VzRKelROVExjS2psZVdxcVBiejVvZ1J4UzZLR3N5eVQrTWFVenJ6aWRiZmtC?=
 =?utf-8?B?V21scHBsOHJ3OGJNV0U4NWt1MU5OM3VEV2wva3lUb0VrL25pempHYS85VU9J?=
 =?utf-8?B?MmZzUnlxYmlxdVl5djM1MDJPWm5FclpVOEYvenpUMGFJMVpTVnZ2T2x6Qjdm?=
 =?utf-8?B?KzJ0dXQwdW8zdFl5NDA4YXh0Q2xsdTNNM1pndzVwMlc5UnNoa3l4Mlo5U2dI?=
 =?utf-8?B?WlRxTmFvUVQ5cXhsdE1UdVdVcDV5ZERNZEhVVlVQOEppZDB2OU45NW85c2o5?=
 =?utf-8?B?dG42UlRRbzRzZnY0a1NiNkNXNjJRbDMxTGJOUGJBYzJTcTI5OFRlWUxGSkxa?=
 =?utf-8?B?YmhzdW5rUEdwMlcxWHQ3dDJqS2JoV3ZVRmJJK2NRTjdTTyt1YThqZmg3YmpS?=
 =?utf-8?B?c0VFdjBqSGFXbm4yS3N6OXVhSWp0SW1OZC9GTVhQSHFVaEJhNWxzUitTaVFE?=
 =?utf-8?B?bUJ3OWtuVzl3bnJoNnBrbk1pcHV6WGxDbG1sbERIMitBVThyNnFrcGJxK3o1?=
 =?utf-8?B?d3lVaityR2M5ZGE1QWtKSkZ2ckQzQ0krQzZobUtneCtvWlF1Qjl5SXNPazNt?=
 =?utf-8?B?cVNWTVdFNFgycER4Y0V4YmdoNUk0cjkzbVpjZldwZjVNWWNhODdyS25VNHg1?=
 =?utf-8?B?WlNzeHFna001Yy9Gem1CWCt3R3p0SVZaTCtoV20xOGZLMEcxSDE2VTVjb3hT?=
 =?utf-8?B?RUZQWCtHZWFoU2FwNTkzVjFDZ1NOQVN0MGxNVE10ME9FMmlrRjIzeGZmeFFQ?=
 =?utf-8?B?ZUdtc2pBWmVab3NGemhlcTFtMndkQXZYcG5KaG9UNnkvSXJ5VG5lVkNvcUo1?=
 =?utf-8?B?dHZzanlJQ0xxN0lvem9ZMk9qa2lsZ283VDh3YmRKc25BaFNlNHV3T2lVSTh4?=
 =?utf-8?B?OFhPWmwzbGVCZUt3NWZDWE9TaHpFU0QvMVdOQVN0RmRsUTRTNmVLQWV1NUw3?=
 =?utf-8?B?dTZteHVMNmJkOUkzbEQ3V3pvT2pINXV3Q0hSeEc2dXZVMkMzTjNZdGNxSGYy?=
 =?utf-8?B?TE1hUm5hUzdBQXZpVXJkRlRPWkl4Tk9PVThZbXVtS3pzdmJBOUNNREx6S29N?=
 =?utf-8?B?MVo0czIzOEV6UXQzWmwyT3FjQlEzZjAvTmNyMUVtVFBva2UxcFRac296ZGNS?=
 =?utf-8?B?V1lMZ3plMzZjdTBZdHdqNlJ3TWlnblZ5VHR0dk9uWEVEU0Z0VUVUWXRKQW1T?=
 =?utf-8?B?MFZyVXRicUZRc0VSeFNjM1FxaW5wdTZrVEdmSTVENjZzTzF4eFdodjh2SDE1?=
 =?utf-8?B?MzdFbWFmcnBDLzlLQmNKamFOeExyc1FXSHgzcEw0ckVlK0cwSmVXWE9VWEY0?=
 =?utf-8?B?Nk5WbUJHRUlOSFA0djhvWk4xQXlZWm4yQ3NtZkZYYUQ4alA5YlhCK2x2V0pG?=
 =?utf-8?B?aVNINnQxclhiSk8veHIwdy93ZVROVXB5WWdHN0JOY05PYmx0L01HdW9zNmFR?=
 =?utf-8?B?SERZZFFybXRLODBobUpsZWxGZGw4LzU0OWhxQkcvSC9xMWRSdkZaUXoyUEk0?=
 =?utf-8?B?eWNyY0lFVXdockZQMFR4OG9zL0NGRDJIYkhqMTF2NldUK3lmNDhadVlGNnFk?=
 =?utf-8?B?aDNwU1VmcERBZGVTQXZsQ3dhN015RDZocXkycm5oYi9NNTlyd2Z5bS9OZW41?=
 =?utf-8?Q?xAB8S37eNIhdlG3k9hm75LMuTKQN4M=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH7PR12MB5854.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?R0FHNTBSOXhxcm1yUzZQZEFUOWl0M2dWT3F1TEl4YWt3N2p3Vy94ZFVTWFgr?=
 =?utf-8?B?aXBUMVIzMFBPcDYwUVNBa2krak1GRXJVZmVybVNGZDlscFZJN3J4Um55QnJv?=
 =?utf-8?B?MDVSdEJ3cVYzczBnU2RjZ2ppbWN0d0h6VDJtZy9xTldjcXRXQmdjKzFHdmww?=
 =?utf-8?B?b01BTzdKaTZzTlc3ZWpCTkYzZW1uak54SmcyemhmNlh5WVlqajVUSllzeWpy?=
 =?utf-8?B?MDJ5SDFMY3pIekg0bVJ0NThhdDNGTEgwQjJTOGZobm9BVWlLRFord3JvalhK?=
 =?utf-8?B?OHp2ek1Mbkt6aEZjd09acjUrUWozSENHVlNhZEhha2taR01jNHEyWjJ6Q2VE?=
 =?utf-8?B?c3hNRHRYL01XekFKM3JZTU9PeE1seEJFVmxqMjB0YWlLVk04Q0RnQlF3Rndt?=
 =?utf-8?B?Y1NIZTkweFF3OE5JWnhIUnNtZGJ0czZjRldqQVhacVBnbFYyVkZUbUpyUHNI?=
 =?utf-8?B?WUV1STV5dmg3ZFQxajIraVU1UnZWei9VWDNObHA0ODdjV2cxRllPMVhxUXNV?=
 =?utf-8?B?WDhIeTBKN0ZmV0VSTFMxLyt2bFhVdnBURWJPOXF1WWJjOVFtM3M5dENFYXIz?=
 =?utf-8?B?YW1rWWpPZHdnWmRQeWRyT1NCVm5tdmJMSUJDZkd4ekJiZUtPYUcrL25aalR2?=
 =?utf-8?B?SzlFYlVyS0FCbjUwd2NZZXV1N2VxY0JqZXozT3JGV2UwMmFoUHNiY2JwZWo5?=
 =?utf-8?B?a2NlalZKREZEMDhaYXhnUVlDbmZJakw4Tzkzbmc4aUhyUHB6ekZ3YnBjL0Za?=
 =?utf-8?B?ZVRuNHViUlBwVDVMQ0drMlAzVjU1V1VqOXZjdmlYS29LZXp5R0djTUpxSUVq?=
 =?utf-8?B?b3VkcHVxUi9RNlVnOGkxODd4TDBNSzRkNUk5UnpGb3kwUWZrcnF1WUhKVTMy?=
 =?utf-8?B?bmxWU04rZ3VleEQ4OGxXMWdzODNMZnV6ck02U24wQkp3ZHVLMG5ZZ1BISVAy?=
 =?utf-8?B?eFRkSE95UjJObXBtVjJvZC9kSmdnMkZQOWhPd1hXdW9XMmYxRk5DQS80TDVo?=
 =?utf-8?B?MUdCZjlDb20rRDlMSHhWZHVrMGd1Sk1nd0dzeng3eXFtMUlVOUVXaTNyWndq?=
 =?utf-8?B?cnFTWWdMSHVVSVg4dE5tSFpEbDVlTXhheUUwd3MxOXlQbHhTWVlBRW1HOE1F?=
 =?utf-8?B?VnlWeHVrazJHSlJLekxQdFJVQlRLQWRMS25TRUFSSG91R3BUV2J0YXBRbkZt?=
 =?utf-8?B?QTV6aEFaN1U2dkRKSmUvcHdoS2dVNVRIQVVFQ3J3SGx5TmRnNmVHZjNxQ2Ro?=
 =?utf-8?B?Mmd3bU15OENTTlBwSUxBU0hYM05KMi9BbVJzOWE3Rm8xWStnODkwSmFZTGNm?=
 =?utf-8?B?eGpoR2Foc0pLZ3RCcFNjTW42b3FsdzhhYncrcHdyL2xZWFZiL1dyOWJOOTBE?=
 =?utf-8?B?NTZIUHV2cW1mUXp2VTNYdExqQlNXQ0pUMTNpTHRCbEIvSkg5a1dhQnI1THU5?=
 =?utf-8?B?cXZ5YktoUE5lUk1RMGFsVTFwZldrWUEwQ1ZZcEp5TVJOblFNL3Q2WktKWjdE?=
 =?utf-8?B?NkwyWlFWODYzVXJtTC9lOTYvbGdKc0VEVWh5WW8wTVl3MDdrMDVEMkJBdVlV?=
 =?utf-8?B?aks3V3dkdWZFZEwzdzJDVUh2L2tOU2hxQ1VFL0w0S21zK0R2UUgyMEZ4WWdP?=
 =?utf-8?B?Y2gwU3pnK3RuU3M2RmY1eHlMSFEraVRKUjd1NFdScC9rSDNQT1VUei9iRXRa?=
 =?utf-8?B?MGwwTnB6VG9KUHEvVjJWN0dGOGZrNzRWY1NTc2ZvNTZ4b3lHTG12RWVTbVB3?=
 =?utf-8?B?YkM2Vll2dkl0c2FQZndydzZvL3hiOGI2bU5oSUNXK2tKZ2pHemFaMVpLZDFE?=
 =?utf-8?B?cy9qTzRkTlVaU3hYM3J0eVhnV2M2bS90MnZQNUVyZ1BxWWg0c28wRldjeWdu?=
 =?utf-8?B?emZyZEVoUFlnSml2SzR2dHY2c3lVbExLYjRCYzg0UWFMZkFTK0JiNTVOYVlF?=
 =?utf-8?B?Ym5yQ1ltNW1rM2lZRTB4Qm1Ba3MzTkJid2huYW05ZGd5eFJudlN4TmZ3OUJi?=
 =?utf-8?B?V0FCTGlyS284dDliQmtOQmcxYXUvMXJZVGxEeXZ2ckpMc3Y4MktmV3BGWng3?=
 =?utf-8?B?dFVhWWxWZ2lxMWpqWHVDQjk4cmh3OERCYXFxWHFoRmFWWUNwNW1OUGlaODRn?=
 =?utf-8?Q?mYRA=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <A712916451C14C42BB555A56429835AA@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: PH7PR12MB5854.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: eb40a5f0-decb-4696-8a4b-08dd7c06d4da
X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Apr 2025 10:18:13.8716
 (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: RqnV5NQi2Usn7/AmIc8kVBZiKbEyl2++1Lp+9gjKyodbEGBpxF9Y9XJPmisWoz8OUsDCCiFfHwlrDRlq58lFzA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB8332

T24gMjAyNS80LzE1IDE3OjQ5LCBKYW4gQmV1bGljaCB3cm90ZToNCj4gT24gMDkuMDQuMjAyNSAw
ODo0NSwgSmlxaWFuIENoZW4gd3JvdGU6DQo+PiAtLS0gYS94ZW4vZHJpdmVycy92cGNpL2hlYWRl
ci5jDQo+PiArKysgYi94ZW4vZHJpdmVycy92cGNpL2hlYWRlci5jDQo+PiBAQCAtODE1LDYgKzgx
NSwzOSBAQCBzdGF0aWMgaW50IHZwY2lfaW5pdF9jYXBhYmlsaXR5X2xpc3Qoc3RydWN0IHBjaV9k
ZXYgKnBkZXYpDQo+PiAgICAgIHJldHVybiByYzsNCj4+ICB9DQo+PiAgDQo+PiArc3RhdGljIGlu
dCB2cGNpX2luaXRfZXh0X2NhcGFiaWxpdHlfbGlzdChzdHJ1Y3QgcGNpX2RldiAqcGRldikNCj4+
ICt7DQo+PiArICAgIGludCByYzsNCj4+ICsgICAgdTMyIGhlYWRlcjsNCj4+ICsgICAgdW5zaWdu
ZWQgaW50IHBvcyA9IDB4MTAwVSwgdHRsID0gNDgwOw0KPj4gKw0KPj4gKyAgICBpZiAoICFpc19o
YXJkd2FyZV9kb21haW4ocGRldi0+ZG9tYWluKSApDQo+PiArICAgIHsNCj4+ICsgICAgICAgIC8q
IEV4dGVuZGVkIGNhcGFiaWxpdGllcyByZWFkIGFzIHplcm8sIHdyaXRlIGlnbm9yZSAqLw0KPj4g
KyAgICAgICAgcmMgPSB2cGNpX2FkZF9yZWdpc3RlcihwZGV2LT52cGNpLCB2cGNpX3JlYWRfdmFs
LCBOVUxMLA0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3MsIDQsICh2b2lk
ICopMCk7DQo+PiArICAgICAgICBpZiAoIHJjICkNCj4+ICsgICAgICAgICAgICByZXR1cm4gcmM7
DQo+PiArICAgIH0NCj4+ICsNCj4+ICsgICAgd2hpbGUgKCBwb3MgJiYgdHRsLS0gKQ0KPj4gKyAg
ICB7DQo+PiArICAgICAgICBoZWFkZXIgPSBwY2lfY29uZl9yZWFkMzIocGRldi0+c2JkZiwgcG9z
KTsNCj4+ICsNCj4+ICsgICAgICAgIHJjID0gdnBjaV9hZGRfcmVnaXN0ZXIocGRldi0+dnBjaSwg
dnBjaV9yZWFkX3ZhbCwgTlVMTCwNCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cG9zLCA0LCAodm9pZCAqKSh1aW50cHRyX3QpaGVhZGVyKTsNCj4+ICsgICAgICAgIGlmICggcmMg
KQ0KPj4gKyAgICAgICAgICAgIHJldHVybiByYzsNCj4+ICsNCj4+ICsgICAgICAgIGlmICggKGhl
YWRlciA9PSAwKSB8fCAoaGVhZGVyID09IC0xKSApDQo+PiArICAgICAgICAgICAgcmV0dXJuIDA7
DQo+IA0KPiBJIHJlYWxpemUgcGNpX2ZpbmRfbmV4dF9leHRfY2FwYWJpbGl0eSgpIGFsc28gaGFz
IHN1Y2ggYSBjaGVjaywgYnV0IGV2ZW4NCj4gdGhlcmUgaXQncyBub3QgcmVhbGx5IGNsZWFyIHRv
IG1lIHdoeSBjb21wYXJlIG5vdCBvbmx5IGFnYWluc3QgMCwgYnV0IGFsc28NCj4gYWdhaW4gLTEg
KGFrYSB+MCkuDQpUaGFuayB5b3UgZm9yIHJhaXNpbmcgdGhpcyBxdWVzdGlvbi4NCldoZW4gSSBj
b2RlZCB0aGlzIHBhcnQsIEkgYWxzbyBoYWQgdGhpcyBjb25mdXNlIHNpbmNlIHBjaV9maW5kX25l
eHRfZXh0X2NhcGFiaWxpdHkoKSBoYXMgdGhpcyBjaGVjaywNCnNvIEkgY2hvc2UgdG8ga2VlcCB0
aGUgc2FtZSBjaGVjay4NCkRvIHlvdSB0aGluayBJIG5lZWQgdG8gcmVtb3ZlIHRoaXMgLTEgY2hl
Y2s/DQoNCj4gDQo+IEphbg0KDQotLSANCkJlc3QgcmVnYXJkcywNCkppcWlhbiBDaGVuLg0K


From xen-devel-bounces@lists.xenproject.org Tue Apr 15 10:20:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 10:20:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.952558.1347968 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4dPQ-0001I6-Tm; Tue, 15 Apr 2025 10:20:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 952558.1347968; Tue, 15 Apr 2025 10: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 1u4dPQ-0001Hi-Qk; Tue, 15 Apr 2025 10:20:52 +0000
Received: by outflank-mailman (input) for mailman id 952558;
 Tue, 15 Apr 2025 10: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=ai1O=XB=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u4dPQ-0001HZ-82
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 10:20:52 +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 4e1f85e3-19e3-11f0-9eae-5ba50f476ded;
 Tue, 15 Apr 2025 12:20:51 +0200 (CEST)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-4394a823036so53276845e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 15 Apr 2025 03:20:51 -0700 (PDT)
Received: from [10.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-43f2338db88sm206530655e9.6.2025.04.15.03.20.49
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 15 Apr 2025 03:20:49 -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: 4e1f85e3-19e3-11f0-9eae-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744712450; x=1745317250; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=dyL62BBdKEUUdeZTFEVZEa5BEIOvNS4mcc26VHnkdIs=;
        b=IUMJCNsBiwd/7moblYkhO8NbKJ0MygJkWQ7cWQUsZxV869K3ak7IrUp7KSCkw7vn2s
         gbBzo8ovTNpXmNVWvc8ZRbyZFuLFfXh7o5wLYY99BLpwrghnaQAb5KdQxqQqnRlZ/VBG
         DTHCtyEtUlB8xCzJ99mF/V7Y1glJTFeZl6tltpXKRg0A9Pewowz4yNH/vRlWbTQZlZwc
         IUMNo9+4n7fIo8wlIHs++nR1XfiNfh407yf+tkvJiMJi7kItsoBtFtI4zJtgyiafnxWn
         7p0VgDQ5A3Ayepa4SwPfdsfVkLyDNfb4qa7ETU1LLGj3iWhKBCECDxOslR4nE0zlGN98
         kmKQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744712450; x=1745317250;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=dyL62BBdKEUUdeZTFEVZEa5BEIOvNS4mcc26VHnkdIs=;
        b=vNaTpJVfkOLtXAGuqR53Wc4QsyQ4gYNrgI/RrKIhkesgg3dihFtisxPb1LBMh4KHPo
         TKfABWynuVzSVsSvN6SuQScp/0qcfSRczJV/RLRq2M6wY5wHCtL82qneJgL3TMCJaCkL
         glJmKA+rEvQonl9WuwsZhS8xy+Z1pH5LR/tPW8WVSfjb9eBQye313pw3y15Q9LuF94nC
         LqrEbWEgV+axkCuF6lUJ0N1fX7yiLtOIICcVnwjFxIeguW5TAt/oSvOQpFTAxuDJQrlP
         5efkg5LOF5yHWshqJzmFIKHnHKqnUxjGHX1gyqvjrzC7FmSMdo7MbXMdDeIhWpqLpTRz
         +E/Q==
X-Forwarded-Encrypted: i=1; AJvYcCU09vC9YLs1oXVVx1OShfR1BSVk179EoqMLp4i+QQ5Ww+Vk++hLklEoxTKb3QXCeQjz3OmEpgr1IPA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwV3xJzE1GOf7prul7N/2+p3HR7XzXft8as4Ve3C00gjfM5XNPg
	232RRPBmbIQ8y5fmwrI8F9CeIQRn0335oKgJFYeY/DJmAeSyGWibxCOAb/T2tg==
X-Gm-Gg: ASbGncvnL9saqQoINgIBcnuBLXeZVnDMuCL/r93/rwzQU5IvoQeyJhSU4A/onjKHhvJ
	BfM49cso9uU8Wh6X6nlnXNUGLsghwbb1NvqviilktLE46QKTwBurHZBti1DhuEot+JX/Sqt8WFG
	oe0fOOiHFiz5bsj3rMUZ4M5UaQicl5Ie5ytNWv0FkKsSrQhId+T9yzun8jqKlt+EeXMuWFgAFgg
	shYlWoAYvF5QsM/o85uRCY2VDlAz+576lIC2P39l9q81TVmCZ3LxE1Zu0zjFuG8bn0Z6M+AXeRT
	LPa9Rze6RXdqvS96EzXjZXXlJCDcsP1nl+hpoaAO2V9uAF3uWaYRfsW5NwIcgDuuGeOFG5KEYAI
	jmcpCTf4YW6dqlalEchyd1jXC6w==
X-Google-Smtp-Source: AGHT+IFhvtTUKnkHFGuURnhb46hUwv0E25fV4Y9gI2d2xccdX5fhtV0GWlXSe2Fq7EEItJcY57Q8Rg==
X-Received: by 2002:a05:600c:3b93:b0:43c:f64c:44a4 with SMTP id 5b1f17b1804b1-43f3a93ce18mr121868855e9.8.1744712450258;
        Tue, 15 Apr 2025 03:20:50 -0700 (PDT)
Message-ID: <27303692-2e7a-4fdd-9d66-712cc9932575@suse.com>
Date: Tue, 15 Apr 2025 12:20:49 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 3/8] vpci/header: Emulate extended capability list for
 host
To: "Chen, Jiqian" <Jiqian.Chen@amd.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 "Huang, Ray" <Ray.Huang@amd.com>
References: <20250409064528.405573-1-Jiqian.Chen@amd.com>
 <20250409064528.405573-4-Jiqian.Chen@amd.com>
 <dd4dd741-b063-4619-a893-a9c02c0ca791@suse.com>
 <PH7PR12MB5854D4F8AB6F4E56E67DE757E7B22@PH7PR12MB5854.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: <PH7PR12MB5854D4F8AB6F4E56E67DE757E7B22@PH7PR12MB5854.namprd12.prod.outlook.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 15.04.2025 12:18, Chen, Jiqian wrote:
> On 2025/4/15 17:49, Jan Beulich wrote:
>> On 09.04.2025 08:45, Jiqian Chen wrote:
>>> --- a/xen/drivers/vpci/header.c
>>> +++ b/xen/drivers/vpci/header.c
>>> @@ -815,6 +815,39 @@ static int vpci_init_capability_list(struct pci_dev *pdev)
>>>      return rc;
>>>  }
>>>  
>>> +static int vpci_init_ext_capability_list(struct pci_dev *pdev)
>>> +{
>>> +    int rc;
>>> +    u32 header;
>>> +    unsigned int pos = 0x100U, ttl = 480;
>>> +
>>> +    if ( !is_hardware_domain(pdev->domain) )
>>> +    {
>>> +        /* Extended capabilities read as zero, write ignore */
>>> +        rc = vpci_add_register(pdev->vpci, vpci_read_val, NULL,
>>> +                               pos, 4, (void *)0);
>>> +        if ( rc )
>>> +            return rc;
>>> +    }
>>> +
>>> +    while ( pos && ttl-- )
>>> +    {
>>> +        header = pci_conf_read32(pdev->sbdf, pos);
>>> +
>>> +        rc = vpci_add_register(pdev->vpci, vpci_read_val, NULL,
>>> +                               pos, 4, (void *)(uintptr_t)header);
>>> +        if ( rc )
>>> +            return rc;
>>> +
>>> +        if ( (header == 0) || (header == -1) )
>>> +            return 0;
>>
>> I realize pci_find_next_ext_capability() also has such a check, but even
>> there it's not really clear to me why compare not only against 0, but also
>> again -1 (aka ~0).
> Thank you for raising this question.
> When I coded this part, I also had this confuse since pci_find_next_ext_capability() has this check,
> so I chose to keep the same check.
> Do you think I need to remove this -1 check?

Unless you can explain why it's needed (perhaps by figuring out why the other
one is there), I'd say - yes.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 15 10:21:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 10:21:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.952561.1347978 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4dPY-0001k8-8K; Tue, 15 Apr 2025 10:21:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 952561.1347978; Tue, 15 Apr 2025 10:21:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4dPY-0001k1-5Y; Tue, 15 Apr 2025 10:21:00 +0000
Received: by outflank-mailman (input) for mailman id 952561;
 Tue, 15 Apr 2025 10:20: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 1u4dPW-0001be-M4
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 10:20: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 1u4dPW-00GxIz-0o;
 Tue, 15 Apr 2025 10:20:58 +0000
Received: from [143.198.24.140] (helo=[100.81.22.8])
 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 1u4dPV-003UjR-2M;
 Tue, 15 Apr 2025 10:20: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=sa6mUBCe1n9ojq5qON03yW2GTv5plXKt1J/oxDFyhlo=; b=Up7ZhJx7QxzU06z++BRLJHL29B
	r6VP1ctH+tuEDU8ujYRbdeMMs3rLrx7g3CPR4ihO9NV1pjRpztIuKadq2/XKGZvjm3cQxteOg+R00
	ipgGdXPu31w5MQJtCR9gyR9VuqzKPHV6YWkks+W0OpCgxU2dpLAorx1BpJxflQZ8gxbs=;
Message-ID: <9eec0359-e9e9-4d38-abc0-3cde6eb94e3b@xen.org>
Date: Tue, 15 Apr 2025 19:20:50 +0900
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 7/7] arm/mpu: Implement setup_mpu for MPU system
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>
References: <20250411145655.140667-1-luca.fancellu@arm.com>
 <20250411145655.140667-8-luca.fancellu@arm.com>
 <923a2fc0-4eeb-4e09-a56d-7471a56fe3bf@xen.org>
 <4771188E-B307-4452-A900-2ACACC1CE333@arm.com>
 <fcacc6b6-ea4b-4917-ac46-5264ac3e4039@xen.org>
 <A053DC71-B301-4D64-8EDB-C225E2ED3FA7@arm.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <A053DC71-B301-4D64-8EDB-C225E2ED3FA7@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi Luca,

On 15/04/2025 16:55, Luca Fancellu wrote:
> Hi Julien,
> 
>>>>> +static void __init setup_mpu(void)
>>>>> +{
>>>>> +    register_t prenr;
>>>>> +    unsigned int i = 0;
>>>>> +
>>>>> +    /*
>>>>> +     * MPUIR_EL2.Region[0:7] identifies the number of regions supported by
>>>>> +     * the EL2 MPU.
>>>>> +     */
>>>>> +    max_xen_mpumap = (uint8_t)(READ_SYSREG(MPUIR_EL2) & NUM_MPU_REGIONS_MASK);
>>>>> +
>>>>> +    /* PRENR_EL2 has the N bit set if the N region is enabled, N < 32 */
>>>>> +    prenr = (READ_SYSREG(PRENR_EL2) & PRENR_MASK);
>>>>> +
>>>>> +    /*
>>>>> +     * Set the bitfield for regions enabled in assembly boot-time.
>>>>> +     * This code works under the assumption that the code in head.S has
>>>>> +     * allocated and enabled regions below 32 (N < 32).
>>>>> +
>>>> This is a bit fragile. I think it would be better if the bitmap is set by head.S as we add the regions. Same for ...
>>> So, I was trying to avoid that because in that case we need to place xen_mpumap out of the BSS and start
>>> manipulating the bitmap from asm, instead I was hoping to use the C code, I understand that if someone
>>> wants to have more than 31 region as boot region this might break, but it’s also a bit unlikely?
>>
>> The 31 is only part of the problem. The other problem is there is at least one other places in Xen (i.e. as early_fdt_map()) which will also create an entry in the MPU before setup_mm()/setup_mpu() is called. I am a bit concerned that the assumption is going to spread and yet we have no way to programmatically check if this will be broken.
> 
> If we would like to find ways, we could check eventually for clashes on enabled MPU regions;
> so the only part where a region is created in the C world without the assistance of xen_mpumap is early_fdt_map(),
> asserts etc could be used in one or both setup_mpu and early_fdt_map to prevent breakage.
 > >>
>> Furthermore, right now, you are hardcoding the slot used and updating the MPU. But if you had the bitmap updated, you could just look up for a free slot.
> 
> of course, but still the early DTB map is temporary and it will be gone after boot, so it won’t impact much unless I’m
> missing something.

It doesn't really matter whether the region is temporary or not. My 
concern is you are making assumption that are difficult to track (they 
are not documented where a developper would most likely look at).

So if we still want to hardcode the value, then this should be 
documented in head.S and probably in a layout.h (or similar) so there is 
a single place where the MPU layout is described.

> 
>>
>>> So I was balancing the pros to manipulate everything from the C world against the cons (boot region > 31).
>>> Is it still your preferred way to handle everything from asm?
>>
>> Yes. I don't think the change in asm will be large and this would allow to remove other assumptions (like in the FDT mapping code).
> 
> not large, but still something to be maintained, we will need arm64/arm32 code to set/clear bits on the bitmap
> (causing duplication with bitops.c), code to save things on the xen_mpumap, code to clean/invalidate dcache for the entries in xen_mpumap and finally we will need to keep the code aligned to the implementation of the bitmap
> (which is fairly stable, but still needs to be taken into account).

I understand the changes and risks, but I still think this is the right 
approach. Let see what the other maintainers think.

> 
>>
>> As a side note, I noticed that the MPU entries are not cleared before we enable the MPU. Is there anything in the boot protocol that guarantee all the entries will be invalid? If not, then I think we need to clear the entries.
>>
>> Otherwise, your current logic doesn't work. That said, I think it would still be necessary even if we get rid of your logic because we don't know the content of the MPU entries.
> 
> The PRLAR.EN bit resets to zero on a warm reset, so any region will be always disabled unless programmed, I thought it is enough.

This is only telling me the state PRLAR.EN when the CPU is initially 
turn on. This doesn't tell me the value of the bit when jumping in Xen.

I am making the difference because there might be another software 
running at EL2 before jumping into Xen (e.g. bootloader, or even a 
previous Xen if we were using Kexec) which could use the MPU.

So I am looking for some details on how the expected state of the system 
when jumping to an OS/hypervisor. For a comparison, on the MMU side, we 
have the Linux arm64 Image protocol that will specific how
a bootloader needs to configure the system.

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Tue Apr 15 10:24:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 10:24:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.952585.1347987 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4dSS-0002ci-ML; Tue, 15 Apr 2025 10:24:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 952585.1347987; Tue, 15 Apr 2025 10:24: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 1u4dSS-0002cb-Jk; Tue, 15 Apr 2025 10:24:00 +0000
Received: by outflank-mailman (input) for mailman id 952585;
 Tue, 15 Apr 2025 10:23: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=QN48=XB=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1u4dSR-0002cV-Ez
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 10:23:59 +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 bd310758-19e3-11f0-9eae-5ba50f476ded;
 Tue, 15 Apr 2025 12:23:58 +0200 (CEST)
Received: from PH7PR12MB5854.namprd12.prod.outlook.com (2603:10b6:510:1d5::20)
 by CH3PR12MB8332.namprd12.prod.outlook.com (2603:10b6:610:131::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.35; Tue, 15 Apr
 2025 10:23:54 +0000
Received: from PH7PR12MB5854.namprd12.prod.outlook.com
 ([fe80::bd58:fa72:e622:dd76]) by PH7PR12MB5854.namprd12.prod.outlook.com
 ([fe80::bd58:fa72:e622:dd76%5]) with mapi id 15.20.8632.030; Tue, 15 Apr 2025
 10:23: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: bd310758-19e3-11f0-9eae-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ocXSyALyKkipIPDB7Ih5U7zEMPUfNIieCVFtxculrN5qUpubG+zzCCOnnfQMHyHSxNKk/U+7j0gZHhtmShzTXHfPWeI5LvbqFnUOhRkWXHCiYiW2mRPMsaj12XHGwl922zhunpwkvTHIfZA3pzGYfE4rhBqnmGO1D/7TiKjXoYl3iL3UPg/8nyjZZaMVBPniJt5bBRAi8kdd1NnQXlo2VN7S+kV9cS9JCpnUOf7AB8BjUTDPZmF7lKtJALDkxPluJ99JK4kZWY25nb2C+l9BoTZS8z+Wtt5q0XgACBQJAsLU7+Yvt7FyJBPFhol80cLf0bMMtw1QwRsQ7w4EkquW5w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=wLC6A8T5ZtkHX5tkyLa2QuC5hT2TVObbHEjLESTidjM=;
 b=g8YqCrjBTSGVDN4IgeSaUFSBD4g9NzMSpUC3/1D1/PKYX8H6UJIhr8ZH+4kBe+Cmjq0LicKzMUC3e0HXOkEPDT9qcKj4Gfi+z3W37to11A8PMy4k/WLYOqSnSVo8bftj2IoH5frWFcIiTDgSKJypZ5b7Y+xrSTk9vAEV3NxMFT1zq7hwzeRjpdHz9sObK/tH0o48NbtXgCRvygLwAk1A8K5X3zInprWO/5YuJ6Si8B37DTrH+qS0xBtQVrIH+AYl/eGOus3ztN6pPVOceY7oIskGCWXwmtBfmO6OE6AYSEZ6UutMyLCGJo3Z1123aFjMptXyv2xcy30D+iX5/pVZPA==
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=wLC6A8T5ZtkHX5tkyLa2QuC5hT2TVObbHEjLESTidjM=;
 b=x8UEyvwEBiMr5xBIPOo44+MTQ9xxqtNSUNzpmbFuzRZCZre9tc40O3VmjWSb1+6cMnW7Miy7TIOd6CiABLhstt970XH36VBAz0/jtI/OGT8ZRl75BiYFqXD6EMhKon02Q+30FkH4QH5RQDOfLmOYQ5hXYx++miTCeptSth3BNBA=
From: "Chen, Jiqian" <Jiqian.Chen@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, "Huang, Ray"
	<Ray.Huang@amd.com>, "Chen, Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [PATCH v2 2/8] vpci/header: Emulate legacy capability list for
 host
Thread-Topic: [PATCH v2 2/8] vpci/header: Emulate legacy capability list for
 host
Thread-Index: AQHbqRsaTINnyZcO4ESL6xMBZUfUtLOkfmYAgACPYID//3zKAIAAiTCA
Date: Tue, 15 Apr 2025 10:23:53 +0000
Message-ID:
 <PH7PR12MB5854A3953963F171834CCB28E7B22@PH7PR12MB5854.namprd12.prod.outlook.com>
References: <20250409064528.405573-1-Jiqian.Chen@amd.com>
 <20250409064528.405573-3-Jiqian.Chen@amd.com> <Z_4mAAm-gCmZTJub@macbook.lan>
 <PH7PR12MB58546CF210C99C8B835FFC4AE7B22@PH7PR12MB5854.namprd12.prod.outlook.com>
 <43993568-030f-4182-9346-162d48099b7b@suse.com>
In-Reply-To: <43993568-030f-4182-9346-162d48099b7b@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-exchange-imapappendstamp: PH7PR12MB5854.namprd12.prod.outlook.com
 (15.20.8632.030)
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: PH7PR12MB5854:EE_|CH3PR12MB8332:EE_
x-ms-office365-filtering-correlation-id: bf24c335-c12a-4ae4-baa1-08dd7c079f80
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?a0FjbW9ITlpKbVhPd1JuV2lybWMwNEhGK3pSUEZHM3hrdkkrUkdBbHRZWXNa?=
 =?utf-8?B?QUVHLy8zRjRoTStsZVVZZWtqMk9aSEtjeHcrYldLMUIvUkprcTVrU2tsVmtC?=
 =?utf-8?B?dmpvRHV0Ykg5K2xDRk5ab1crU3JtZ2R1S2cwZXlVR0kwcWNIZ2V4ZmN1ZGRU?=
 =?utf-8?B?R2lWS3ZERnFCYklaUXRYVnRjUndaYjlSZVVVVXhqNTE3a1VQQmYzcHcvUVlj?=
 =?utf-8?B?dzhMcnErTEd0WVBXM0J4TXJVdlBkVzBBS2VlQVN4NjZ6K1ZsWit5cUtSVUxB?=
 =?utf-8?B?TUtqU3RiVHY2bFl6WUMvRlVRMzVLMkh0cVJZMWlLRDJIVkhjSHdMZHgrMTVF?=
 =?utf-8?B?Nk53Z3djWUFHSmFmcUlXRStTemVGaERScGhnckxoekNpMXBTVWQ0MnNqaHdi?=
 =?utf-8?B?bWhxSkptUDRuNmlMZjV2M25HMHBGUmJVTWR1cnpOQk5ZaW1UR3JKR0xobUVH?=
 =?utf-8?B?N09TWFFTT3h4cU9YUldCeWVUTmMxSHZXa1NUWUpjYjkvU1FCaDQvWWVLaXlM?=
 =?utf-8?B?STF2N1J3S0JtQ284RHNzOWMwNHRVZnYxc1crT0x2ci9RZU1jVDkrSm9qd3lO?=
 =?utf-8?B?SG9KOGFVMW9pK3FxTlRmUmZpS2FWOGdxNDFBdjFGT0RFUE9CUFJzcllkMm81?=
 =?utf-8?B?b2ZNS2IxWk1DME4zS3JGak5oTmxyMkh5STVNMUZFMXFmSmRUa2hBN0JCQzFI?=
 =?utf-8?B?dmdUdWdlaEtReWs3b0VhQ2Z5STBSbFllYVo5eFJEOE9QZ1d0R21pWGNGN0VN?=
 =?utf-8?B?RmNBTkJma0xncFd0K3IyTUJ2M3l5b2dhUi92QmJibGp0bUV2a3MxUU1pY21U?=
 =?utf-8?B?eVNCcDNoL3lVQlAzTkY5TWJSUkh3eUYyb01lNkZsb0ZPMlRCY3haWWNNYmEz?=
 =?utf-8?B?NTNQTGliS2x4eENQWUV6V3ZSZUhMMGtZanZjdFRuQ3ZCRXdnL2NzUUtSZmsw?=
 =?utf-8?B?ZVk1bVB0aldUM0IydERMVjkyRnM5emdRUWlBVFVSaWNNYlF3Qi94bjZDOHFx?=
 =?utf-8?B?bUVjQmVvblNRWU8rQnY0SFZsN1grSmJ4OXppQ0FnVmVXVnNGazBXdTlUN2FW?=
 =?utf-8?B?S3Z0N3RFclNHUmVUT05DanVJN1ZJZjZHb05uZU9IRG5xVGRQb0FrTnlaMFpR?=
 =?utf-8?B?Y2RNQ1VkWnByV1NweXRCQUE3UVMwaVY2OUVaYlYrOGQ3UjdNVEk4eUJVM3cx?=
 =?utf-8?B?bW1Qb2x5VlRvVktWYndhbjQzVjczeWlGRFBYNVc0eXlaSFhBVmUwZlhCdUNa?=
 =?utf-8?B?UXpLSGJGcU9vSjl5cjlaVFJ4clFzazQ2ckhrMjBndE5kVFA3Yy9XV3VjQXpN?=
 =?utf-8?B?QWIyQ0tEUVdQVFpvUGhDUVdaLzNPelZrWU1Fd0ZqaHJlcXRDVWd2WUxmbGYr?=
 =?utf-8?B?SXpxVnVTODRCL3lTM1ZHV29vVG5jZlI0UjVtTTlId3ZGaWZWRjVJdTA1Mi9L?=
 =?utf-8?B?QkJDUDhuUXhwWUM1K0VEbU9zUEdBRzB0RDF2WXI3R2ZIMERLQ1FrSEc0Q2dX?=
 =?utf-8?B?a09oK0I2emhmRE5US3ZaV09rRENZTWpwSDNzcEFqSTJpT2l0aTl1dGgvb0or?=
 =?utf-8?B?STNDamlFT1BSN3AvQ3d4dExJNlVJRHZxVmJSNUdXQmJNb0p1UDk1QWhBeHhF?=
 =?utf-8?B?TEp6MUw2Z2d3dnd4c2hBY1lmSkNsMmZETU1yUTErbHdncGJxUW9lK0IzL2hz?=
 =?utf-8?B?a0pkaHJ3L1J3WTNNekx6bGhUVVRnZGh4TlJIU2doZ1JWUStBRXJyRnJQTkpx?=
 =?utf-8?B?Q0FaT01EU095cXRJajBwdWhFZStLcTg4MU9hbCsrc0QrM0RzZ25wNzdRNS9R?=
 =?utf-8?B?SVBzaGxnWDhkNHBLQldraEhoSWlCTmZ6VGxKUFJDZ1pZcGhxVlJWYzhJVjN2?=
 =?utf-8?B?SWVQcnZ1UmhLL2xrR1ZUOEoxY0YyNnR6enBCbFFkWk1IRk1UZUdWUlR1OVdD?=
 =?utf-8?B?dkRmY3VsRm9lMkdRS2hXNkc5a2tGNDhlTVVBa05kZjJsaENldzVTM0FFZlBh?=
 =?utf-8?Q?YEUJ0FsE+kDUXVkMXg0EYcptF1eg64=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH7PR12MB5854.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?a2QrOFl3OTZHclFFMFJpS1I1QnprS2U4ZGNyanFac1h1ZCs0MElHbXBaZ3Zk?=
 =?utf-8?B?aFBHQThZZWNXazdRMkJOdFFEQXlLVmE1QXlLYkdscEN3cTJLN0VGcEpiQksx?=
 =?utf-8?B?b21ia21rVlJob2loVWxWbW45UHpNL3E2ZUlGVWhZdUF3VDlrVDZvcHlRb2hj?=
 =?utf-8?B?SmdJSFRYNUlIVElnbGJYQlJnNHFyVlVIRlR3RVF6RWF5d3lxSjgrTDE5Szln?=
 =?utf-8?B?VC9xMDZMeHBJeGhERjN3RktTV3NFcjRtMjNCeG02OURnY3YyVFhkSjBaZkRI?=
 =?utf-8?B?VlJkVTFwR1ZuRlR2aGNodzVmTWJ1TlJUbEp5aTBSdzFCWW9TL1Z1VVBOVWM0?=
 =?utf-8?B?YWZjYlptK1lrNHI5RTFWMmVFTUNoRXVUcHc2RFppS1o3ekk1eWh2UFQ0NHZL?=
 =?utf-8?B?b2JkODc3c3FTMjFzcTNQWmQ1OU5ENmlVMTIxTDV2MWp2cVV5dU53YUl6S0xY?=
 =?utf-8?B?MkY5OVJ6R0NZUExlQ3JCbzRYWjhaTXZYQ0N4SFpOMkRvZHRseVlETVU3bHZG?=
 =?utf-8?B?RUxNWURtdzdEMFJlL2pBT0ZZQStXZTVvb25yZnM2b0s4L0pSbGRUUll2ZFJZ?=
 =?utf-8?B?TkptUEZjWHo0d1g1b0owZlNDZ20yYTA3VHU3STZ2MWh1YU9Kc0lXN1J6WEN5?=
 =?utf-8?B?enVXaTMzNGo2V1pydU54MEZIbkduazdrN2lVczBuNmttWXZseE1CdjY2aFo3?=
 =?utf-8?B?eDREdE9odldPQ1RIdXBzYnR0N2F6NGFGaVVIdmwxNS9NZkZJOXVBOWtjd2dS?=
 =?utf-8?B?Y1VKRW1aRUJ2dTY4c1kwRTFVOFBsanF3V0UzMHlXRy8ycHBVbW9ldkJQVFlI?=
 =?utf-8?B?Y1ZRa2k1TEVJMm9LMTViZTNhVTg1WTNvVFJNL3ZWbXE4anBKUjZWaFZBRkxx?=
 =?utf-8?B?Q1dHL0syaERLdG1KRXl6cDFOTjBlVjIvM0UrclpMcTVHSXVpcUhRYjFVSjJm?=
 =?utf-8?B?cGJUZGVNMk5ocjJhZmF5RWVqRzYwSm02cFI2REtsK1p6Y0ZTTUk4bTJJRE40?=
 =?utf-8?B?bkZRR1JYNGRJc1hkU05qUDA5aUNpYUVlYUVmWFNRWlNQTXEzSk5BTFNiN01Y?=
 =?utf-8?B?dEZjYjJYUC9ERjkvbmZ5eGRLMk53aVNSbEF0b1BhWHlSRXhwZERyOWpSVVNo?=
 =?utf-8?B?VldSV3Q5UXo0a0VjZGFlYUsraWdWSmJYbEdQYXBYUFR4Y0dLTVc0QndtdGlz?=
 =?utf-8?B?YklYQVk3NFpaa3JaVkowNGd4VDNQU002dnROUnpsOUdVM293bm5JTlFVWEhZ?=
 =?utf-8?B?T0RsOWlvaVB3c1N3b29RYjI3UWlWLzMrQUljdHpSTzBqelk1VVowamdHb25w?=
 =?utf-8?B?UGdRNHoyOWMvcnR2Z2xnRnRKZnJIcGNjWkJZQXlGaGxrbVRQOHczOUlBdE45?=
 =?utf-8?B?bzJWRzNjdnVWakF5RzhobDBGYWI3dWt3eGtiSlFlRysydS9XUlR2S3MzMWEv?=
 =?utf-8?B?Qk05bFhoak5SWmpCQ2cvbXh5YnRZSkJ3TVp0OXNkMmltRVpZN09zOTM1ZmRJ?=
 =?utf-8?B?RDFIOTF1czR4VC9hNW5XVGtGNmQ5Y0xXNlRoMWdqTzF3OXFOVnBPTXd0Q3U4?=
 =?utf-8?B?emFwTFJrQWo5ZDYyajI2dENBZnI0SlhkVWV2eGNEMHl2N3pzcER5dExZdGRw?=
 =?utf-8?B?QWxzYi9neURrbk9OaGFYUVRKMHJkWVhEUUh3bWxLRGV6RGNtc0FTYXdtRU90?=
 =?utf-8?B?WDNHTlNtMFZQNGxBQjE4VWJTeTl6TlhIT2V5bE5UNmJlQVNNcjk4TWZ5QXZi?=
 =?utf-8?B?SE51Q0ZxYUZlOUZRNW5nNkwvam9oNzloQWtKM3ljNUNGV0dmMlRBNmVZbmJn?=
 =?utf-8?B?d3FtTXdPdlk2cTBTVE9PUlRZcDQvUCtMbktKTXgvRDRjN1NTYmVXTHVncGdw?=
 =?utf-8?B?RnlqMDhUN2Roc0pHU3E4UDhEWlBjMWF6cWxiRWdtT0VPZWNzZ2RuQmp5M3Ba?=
 =?utf-8?B?QUhkREEvM2pvWWpqek45ZjNndFpVclI0RnJQb1RMd1NxS2hzU3RSNUxaMUl6?=
 =?utf-8?B?RGZySnVpK21EUHlHQ1pzU1ZJNnltS1U4WjExRUFtMFRFWFJPQ0pWUUpLUHg1?=
 =?utf-8?B?MDlWYUJjaXE5U3FNdzFrbVFoWjRJV01LeWpwMXN2VkdSRVd1aW1ra0hzM1pL?=
 =?utf-8?Q?FpYQ=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <1CECFC32D39E78438EB1A4EAB4D0DDB9@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: PH7PR12MB5854.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: bf24c335-c12a-4ae4-baa1-08dd7c079f80
X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Apr 2025 10:23:53.8480
 (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: PDgDdrubIAcRfj1+RVkcAvkKIgHSDKoP1/Puz7qTQqr7ghRvwkQvgEk8hWZY6HjyDfPqm52GwaS0mrIztKWfXA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB8332

T24gMjAyNS80LzE1IDE4OjA4LCBKYW4gQmV1bGljaCB3cm90ZToNCj4gT24gMTUuMDQuMjAyNSAx
MjowNywgQ2hlbiwgSmlxaWFuIHdyb3RlOg0KPj4gT24gMjAyNS80LzE1IDE3OjI1LCBSb2dlciBQ
YXUgTW9ubsOpIHdyb3RlOg0KPj4+IE9uIFdlZCwgQXByIDA5LCAyMDI1IGF0IDAyOjQ1OjIyUE0g
KzA4MDAsIEppcWlhbiBDaGVuIHdyb3RlOg0KPj4+PiAtLS0gYS94ZW4vZHJpdmVycy92cGNpL2hl
YWRlci5jDQo+Pj4+ICsrKyBiL3hlbi9kcml2ZXJzL3ZwY2kvaGVhZGVyLmMNCj4+Pj4gQEAgLTc0
NSw2ICs3NDUsNzYgQEAgc3RhdGljIGludCBiYXJfYWRkX3Jhbmdlc2V0KGNvbnN0IHN0cnVjdCBw
Y2lfZGV2ICpwZGV2LCBzdHJ1Y3QgdnBjaV9iYXIgKmJhciwNCj4+Pj4gICAgICByZXR1cm4gIWJh
ci0+bWVtID8gLUVOT01FTSA6IDA7DQo+Pj4+ICB9DQo+Pj4+ICANCj4+Pj4gKy8qIFRoZXNlIGNh
cGFiaWxpdGllcyBjYW4gYmUgZXhwb3NlZCB0byB0aGUgZ3Vlc3QsIHRoYXQgdlBDSSBjYW4gaGFu
ZGxlLiAqLw0KPj4+PiArc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBndWVzdF9zdXBwb3J0ZWRf
Y2Fwc1tdID0gew0KPj4+PiArICAgIFBDSV9DQVBfSURfTVNJLA0KPj4+PiArICAgIFBDSV9DQVBf
SURfTVNJWCwNCj4+Pj4gK307DQo+Pj4NCj4+PiBJcyB0aGVyZSBhIHJlYXNvbiB0aGlzIG5lZWRz
IHRvIGJlIGRlZmluZWQgb3V0c2lkZSBvZiB0aGUgZnVuY3Rpb24NCj4+PiBzY29wZT8gIFNvIGZh
ciBpdCdzIG9ubHkgdXNlZCBieSB2cGNpX2luaXRfY2FwYWJpbGl0eV9saXN0KCkuDQo+PiBCZWNh
dXNlLCBmb3IgZG9tMCBJIGRvbid0IG5lZWQgdG8gcGFzcyB0aGlzIGFycmF5LCBzbyBJIG5lZWQg
dG8gc2V0IGJlbG93IHBhcmFtZXRlciAiY2FwcyIgdG8gYmUgTlVMTCBvciBndWVzdF9zdXBwb3J0
ZWRfY2FwcyBhY2NvcmRpbmcgdG8gdGhlIHR5cGUgb2YgZG9tYWluLg0KPj4gSWYgaW5zaWRlIHRo
ZSBmdW5jdGlvbiwgSSBjYW4ndCB0byBkbyB0aGF0IHNpbmNlICJjYXBzIiBpcyBjb25zdCwgSSB0
aGluay4NCj4gDQo+IFdoeSB3b3VsZCB0aGUgbW9yZSBuYXJyb3cgc2NvcGUgb2YgdGhlIGFycmF5
IGFmZmVjdCBob3cgaXQgY2FuIGJlIHVzZWQ/DQpTb3JyeSwgSSBoYXZlIHRob3VnaHQgYWJvdXQg
aXQgYWdhaW4gYW5kIGl0IGNhbiBiZSBwdXQgaXQgaW5zaWRlIHRoZSBmdW5jdGlvbi4gSSB3aWxs
IGNoYW5nZSBpbiB0aGUgbmV4dCB2ZXJzaW9uLg0KDQo+IA0KPiBKYW4NCg0KLS0gDQpCZXN0IHJl
Z2FyZHMsDQpKaXFpYW4gQ2hlbi4NCg==


From xen-devel-bounces@lists.xenproject.org Tue Apr 15 10:30:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 10:30:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.952596.1347998 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4dYE-0003Dl-BD; Tue, 15 Apr 2025 10:29:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 952596.1347998; Tue, 15 Apr 2025 10:29: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 1u4dYE-0003De-7R; Tue, 15 Apr 2025 10:29:58 +0000
Received: by outflank-mailman (input) for mailman id 952596;
 Tue, 15 Apr 2025 10:29: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=1sCo=XB=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1u4dYC-0003DY-Dh
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 10:29:56 +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 9191eeb9-19e4-11f0-9ffb-bf95429c2676;
 Tue, 15 Apr 2025 12:29:53 +0200 (CEST)
Received: by mail-ed1-x532.google.com with SMTP id
 4fb4d7f45d1cf-5ed1ac116e3so8070766a12.3
 for <xen-devel@lists.xenproject.org>; Tue, 15 Apr 2025 03:29:54 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-64-225.play-internet.pl.
 [109.243.64.225]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-acaa1cb40d8sm1067152066b.111.2025.04.15.03.29.52
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 15 Apr 2025 03:29:52 -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: 9191eeb9-19e4-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1744712993; x=1745317793; darn=lists.xenproject.org;
        h=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=7UZOIQuRW8kOYrrVpaVXmmwpUYwsfv3+ju+hWdlLjQE=;
        b=Sf4JB9eY2tZl0cX3fMe4QQt3z+eQnaLSndOPvdnetmnarWKDR/nLqYbDUNe9tZdpN9
         lrCNP7k9I5i4B+I7eJ0nqm0CMxGpQI3j+6Lqw/3ZcLB0g85I0xA43CDwzdElO9YwlQyf
         6kUFAljqGIHDYMZ0ksOKjUfeZl8OgPKysaJtwrIh7GVCQ5d/gV1CuC02wTZr6stU98iU
         TNVm9581VZ4q3JBdfBtmkBAQjm+5pHsq3U7dtbUrzuSo+gKCcd6OK2qWoPDT58uyhZBb
         /hXniALMwLfdGHabYUESUn2vj1RJmwvvsmByePTNFkmlVusvfjqN9asD91O9PVEVZkWm
         Gq7g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744712993; x=1745317793;
        h=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=7UZOIQuRW8kOYrrVpaVXmmwpUYwsfv3+ju+hWdlLjQE=;
        b=YoSBvi9wN57Ovj1EPcBPVKmP4vlY4wSP+pCkAYIIXYzTO+VZEREizarM6hvyLKBD8v
         5yP+MS4RKj+RvjF8DsoVY5boNuo0J5en4JzYLTO1LZOVQ+wNvTNToP4M8LNgnH7i1pU0
         6LJ3NnaoeuC1ugbHVDv42xuDzRp6PMHa6UumSZbM7/Vopnvo+Lf9cvAzJ0fckY5EW3SX
         emqRC3sc7Ew+rAU5DoppOy9DGUPTREKXlmexn0aahzAsVAg1SoHJKdZGyFr3WJjXZOzi
         5oh4BBdvgF4tg+jgv6KRH9+4xO9jAP0lru/FRvmaMPvkn8xcnKagwyRVKWR0HUXwHe6D
         shRA==
X-Forwarded-Encrypted: i=1; AJvYcCWhfxidCqbHfyl6OjKshh0qCFJeiFPIIWtrChd2ISDWEKcJRozcDUUp+WN1X07HhRo+4fAyiu46yNE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxYuiWM/d8T7yDU2n/si93NfY87wuQaucHozNKPIsprsv+1Dc22
	uiipIGpiDX3O5ldnQvG8Ov2O+h2IlhhmGY42XMnh38ySy4ELXB0Z
X-Gm-Gg: ASbGncvRUR23Xb+5GAOBEySb9rUeVOunKZA+WnLXapbOWKpsFyNKO1l1oJWrXfeMVuA
	xLs4XF2L2Wbc8XAet8yd9mu6xI0HOcVcw4Mr6/KvDmzp92fIBtx5Dy7+otJmucu/xm8H3/uxTAB
	vNleWspkIFqs95NLFkvnX5M7xeQAareyrFZiI/y8kPNZYzopS4AwjUXs22tJYYHHKfbcN3RwMLV
	Jo/EwcrtGqqyccMmvVpsOJxqjswkdsU2huV3bevLdsYM/fDIi9A13CoihMMjOtSyFEfmI35OXQX
	7SmX8YBSxtxxhcG1XrXZ5m716kh4vz9D9feUtm/rXN4wzaF9JUqmNgy/5MlvvmwqkazXQsDokr2
	bLBbKJAnaLWo2smiGSKGa2VIkppY=
X-Google-Smtp-Source: AGHT+IF6dNPMe7U52EeRNx3DMb/RF47pI8eJsWBXDnTSm+hDy1NjZ7lXBu/Vsa4pQOE21/J862pjmw==
X-Received: by 2002:a17:907:25cb:b0:ac4:3d8:2e90 with SMTP id a640c23a62f3a-acad3489538mr1342518166b.13.1744712993111;
        Tue, 15 Apr 2025 03:29:53 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------9zjEHGfWx3C45ZpsOmsI0P4B"
Message-ID: <f315bc11-c537-4dca-9e62-a6d3f02733e4@gmail.com>
Date: Tue, 15 Apr 2025 12:29:51 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 03/14] xen/riscv: introduce ioremap()
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1744126720.git.oleksii.kurochko@gmail.com>
 <6d91eeabe2735de93bfcf2a2420e2059a8f35e52.1744126720.git.oleksii.kurochko@gmail.com>
 <84089b6d-efeb-4613-85b9-eb10d11d7338@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <84089b6d-efeb-4613-85b9-eb10d11d7338@suse.com>

This is a multi-part message in MIME format.
--------------9zjEHGfWx3C45ZpsOmsI0P4B
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 4/10/25 5:13 PM, Jan Beulich wrote:
> On 08.04.2025 17:57, Oleksii Kurochko wrote:
>> Based on RISC-V unpriviliged spec ( Version 20240411 ):
>> ```
>> For implementations that conform to the RISC-V Unix Platform Specification,
>> I/O devices and DMA operations are required to access memory coherently and
>> via strongly ordered I/O channels. Therefore, accesses to regular main memory
>> regions that are concurrently accessed by external devices can also use the
>> standard synchronization mechanisms. Implementations that do not conform
>> to the Unix Platform Specification and/or in which devices do not access
>> memory coherently will need to use mechanisms
>> (which are currently platform-specific or device-specific) to enforce
>> coherency.
>>
>> I/O regions in the address space should be considered non-cacheable
>> regions in the PMAs for those regions. Such regions can be considered coherent
>> by the PMA if they are not cached by any agent.
>> ```
>> and [1]:
>> ```
>> The current riscv linux implementation requires SOC system to support
>> memory coherence between all I/O devices and CPUs. But some SOC systems
>> cannot maintain the coherence and they need support cache clean/invalid
>> operations to synchronize data.
>>
>> Current implementation is no problem with SiFive FU540, because FU540
>> keeps all IO devices and DMA master devices coherence with CPU. But to a
>> traditional SOC vendor, it may already have a stable non-coherency SOC
>> system, the need is simply to replace the CPU with RV CPU and rebuild
>> the whole system with IO-coherency is very expensive.
>> ```
>>
>> and the fact that all known ( to me ) CPUs that support the H-extension
>> and that ones is going to be supported by Xen have memory coherency
>> between all I/O devices and CPUs, so it is currently safe to use the
>> PAGE_HYPERVISOR attribute.
>> However, in cases where a platform does not support memory coherency, it
>> should support CMO extensions and Svpbmt. In this scenario, updates to
>> ioremap will be necessary.
>> For now, a compilation error will be generated to ensure that the need to
>> update ioremap() is not overlooked.
>>
>> [1]https://patchwork.kernel.org/project/linux-riscv/patch/1555947870-23014-1-git-send-email-guoren@kernel.org/
> But MMIO access correctness isn't just a matter of coherency. There may not
> be any caching involved in most cases, or else you may observe significantly
> delayed or even dropped (folded with later ones) writes, and reads may be
> serviced from the cache instead of going to actual MMIO. Therefore ...
>
>> --- a/xen/arch/riscv/Kconfig
>> +++ b/xen/arch/riscv/Kconfig
>> @@ -15,6 +15,18 @@ config ARCH_DEFCONFIG
>>   	string
>>   	default "arch/riscv/configs/tiny64_defconfig"
>>   
>> +config HAS_SVPBMT
>> +	bool
>> +	help
>> +	  This config enables usage of Svpbmt ISA-extension ( Supervisor-mode:
>> +	  page-based memory types).
>> +
>> +	  The memory type for a page contains a combination of attributes
>> +	  that indicate the cacheability, idempotency, and ordering
>> +	  properties for access to that page.
>> +
>> +	  The Svpbmt extension is only available on 64-bit cpus.
> ... I kind of expect this extension (or anything else that there might be) will need
> making use of.

In cases where the Svpbmt extension isn't available, PMA (Physical Memory Attributes)
is used to control which memory regions are cacheable, non-cacheable, readable, writable,
etc. PMA is configured in M-mode by the firmware (e.g., OpenSBI), as is done in Andes
cores, or it can be fixed at design time, as in SiFive cores.

In the case of QEMU, I assume it is QEMU's responsibility to properly emulate accesses
to device memory regions. Since QEMU does not appear to provide registers for configuring
PMA, it seems that PMA is not emulated. Additionally, QEMU does not emulate caches.

Based on that, I expect that it is the responsibility of the firmware or the hardware
itself to provide the correct PMA configuration.

I want to note that even Svpbmt is available PMA settings could be used or be ovewritten
by Svpbmt's attribute value.

I will update the commit message  for more clearness.

>
>> @@ -548,3 +549,21 @@ void clear_fixmap(unsigned int map)
>>                                 FIXMAP_ADDR(map) + PAGE_SIZE) != 0 )
>>           BUG();
>>   }
>> +
>> +void *ioremap(paddr_t pa, size_t len)
>> +{
>> +    mfn_t mfn = _mfn(PFN_DOWN(pa));
>> +    unsigned int offs = pa & (PAGE_SIZE - 1);
>> +    unsigned int nr = PFN_UP(offs + len);
>> +
>> +#ifdef CONFIG_HAS_SVPBMT
>> +    #error "an introduction of PAGE_HYPERVISOR_IOREMAP is needed for __vmap()"
>> +#endif
> While, as per above, I don't think this can stay, just in case: As indicated
> earlier, pre-processor directives want to have the # in the first column.

I think it can be safely dropped now, and|PAGE_HYPERVISOR_IOREMAP| could be introduced
and simply PTE's PMBT bits can be ignored in|pt_update_entry()| if Svpbmt isn't implemented.

~ Oleksii

--------------9zjEHGfWx3C45ZpsOmsI0P4B
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 4/10/25 5:13 PM, Jan Beulich wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:84089b6d-efeb-4613-85b9-eb10d11d7338@suse.com">
      <pre wrap="" class="moz-quote-pre">On 08.04.2025 17:57, Oleksii Kurochko wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">Based on RISC-V unpriviliged spec ( Version 20240411 ):
```
For implementations that conform to the RISC-V Unix Platform Specification,
I/O devices and DMA operations are required to access memory coherently and
via strongly ordered I/O channels. Therefore, accesses to regular main memory
regions that are concurrently accessed by external devices can also use the
standard synchronization mechanisms. Implementations that do not conform
to the Unix Platform Specification and/or in which devices do not access
memory coherently will need to use mechanisms
(which are currently platform-specific or device-specific) to enforce
coherency.

I/O regions in the address space should be considered non-cacheable
regions in the PMAs for those regions. Such regions can be considered coherent
by the PMA if they are not cached by any agent.
```
and [1]:
```
The current riscv linux implementation requires SOC system to support
memory coherence between all I/O devices and CPUs. But some SOC systems
cannot maintain the coherence and they need support cache clean/invalid
operations to synchronize data.

Current implementation is no problem with SiFive FU540, because FU540
keeps all IO devices and DMA master devices coherence with CPU. But to a
traditional SOC vendor, it may already have a stable non-coherency SOC
system, the need is simply to replace the CPU with RV CPU and rebuild
the whole system with IO-coherency is very expensive.
```

and the fact that all known ( to me ) CPUs that support the H-extension
and that ones is going to be supported by Xen have memory coherency
between all I/O devices and CPUs, so it is currently safe to use the
PAGE_HYPERVISOR attribute.
However, in cases where a platform does not support memory coherency, it
should support CMO extensions and Svpbmt. In this scenario, updates to
ioremap will be necessary.
For now, a compilation error will be generated to ensure that the need to
update ioremap() is not overlooked.

[1] <a class="moz-txt-link-freetext" href="https://patchwork.kernel.org/project/linux-riscv/patch/1555947870-23014-1-git-send-email-guoren@kernel.org/">https://patchwork.kernel.org/project/linux-riscv/patch/1555947870-23014-1-git-send-email-guoren@kernel.org/</a>
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
But MMIO access correctness isn't just a matter of coherency. There may not
be any caching involved in most cases, or else you may observe significantly
delayed or even dropped (folded with later ones) writes, and reads may be
serviced from the cache instead of going to actual MMIO. Therefore ...

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">--- a/xen/arch/riscv/Kconfig
+++ b/xen/arch/riscv/Kconfig
@@ -15,6 +15,18 @@ config ARCH_DEFCONFIG
 	string
 	default "arch/riscv/configs/tiny64_defconfig"
 
+config HAS_SVPBMT
+	bool
+	help
+	  This config enables usage of Svpbmt ISA-extension ( Supervisor-mode:
+	  page-based memory types).
+
+	  The memory type for a page contains a combination of attributes
+	  that indicate the cacheability, idempotency, and ordering
+	  properties for access to that page.
+
+	  The Svpbmt extension is only available on 64-bit cpus.
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
... I kind of expect this extension (or anything else that there might be) will need
making use of.</pre>
    </blockquote>
    <pre data-start="65" data-end="389" class="">In cases where the Svpbmt extension isn't available, PMA (Physical Memory Attributes)
is used to control which memory regions are cacheable, non-cacheable, readable, writable,
etc. PMA is configured in M-mode by the firmware (e.g., OpenSBI), as is done in Andes
cores, or it can be fixed at design time, as in SiFive cores.

In the case of QEMU, I assume it is QEMU's responsibility to properly emulate accesses
to device memory regions. Since QEMU does not appear to provide registers for configuring
PMA, it seems that PMA is not emulated. Additionally, QEMU does not emulate caches.</pre>
    <pre data-start="653" data-end="787" class="">Based on that, I expect that it is the responsibility of the firmware or the hardware
itself to provide the correct PMA configuration.

I want to note that even Svpbmt is available PMA settings could be used or be ovewritten
by Svpbmt's attribute value.

I will update the commit message  for more clearness.

</pre>
    <blockquote type="cite"
      cite="mid:84089b6d-efeb-4613-85b9-eb10d11d7338@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">@@ -548,3 +549,21 @@ void clear_fixmap(unsigned int map)
                               FIXMAP_ADDR(map) + PAGE_SIZE) != 0 )
         BUG();
 }
+
+void *ioremap(paddr_t pa, size_t len)
+{
+    mfn_t mfn = _mfn(PFN_DOWN(pa));
+    unsigned int offs = pa &amp; (PAGE_SIZE - 1);
+    unsigned int nr = PFN_UP(offs + len);
+
+#ifdef CONFIG_HAS_SVPBMT
+    #error "an introduction of PAGE_HYPERVISOR_IOREMAP is needed for __vmap()"
+#endif
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
While, as per above, I don't think this can stay, just in case: As indicated
earlier, pre-processor directives want to have the # in the first column.</pre>
    </blockquote>
    <pre>I think it can be safely dropped now, and <code
    data-start="107" data-end="132">PAGE_HYPERVISOR_IOREMAP</code> could be introduced
and simply PTE's PMBT bits can be ignored in <code data-start="175"
    data-end="194">pt_update_entry()</code> if Svpbmt isn't implemented.</pre>
    <pre>~ Oleksii
</pre>
  </body>
</html>

--------------9zjEHGfWx3C45ZpsOmsI0P4B--


From xen-devel-bounces@lists.xenproject.org Tue Apr 15 10:36:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 10:36:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.952613.1348008 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4def-0006VQ-3v; Tue, 15 Apr 2025 10:36:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 952613.1348008; Tue, 15 Apr 2025 10:36: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 1u4def-0006VJ-1B; Tue, 15 Apr 2025 10:36:37 +0000
Received: by outflank-mailman (input) for mailman id 952613;
 Tue, 15 Apr 2025 10:36: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=1sCo=XB=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1u4dee-0006VD-8p
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 10:36:36 +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 8114adde-19e5-11f0-9eae-5ba50f476ded;
 Tue, 15 Apr 2025 12:36:35 +0200 (CEST)
Received: by mail-ed1-x52c.google.com with SMTP id
 4fb4d7f45d1cf-5e5deb6482cso11904379a12.1
 for <xen-devel@lists.xenproject.org>; Tue, 15 Apr 2025 03:36:35 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-64-225.play-internet.pl.
 [109.243.64.225]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-acaa1ccd1adsm1078152066b.145.2025.04.15.03.36.33
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 15 Apr 2025 03:36: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: 8114adde-19e5-11f0-9eae-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1744713395; x=1745318195; darn=lists.xenproject.org;
        h=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=jypqxtRVX8BKAPKoCA6QODwtLQQaK9bwgEnU1HMYWbw=;
        b=EHwYOeiJix3jZTlpzfJZ6udFV5TMGIb24ETWKRDAfpah0GHlQ7E9fSqcdiX2f1v18S
         7gUyhRPvZq/jj65mHp/tYVdhwEHHByFRVZlsVsNrRYddb2O7DHRFPQ21ivU60stU+SiT
         RgN2pd1Wloje6F9vwUdqXo0vowYDdkMM44GvIlgKaaj0ADBP6UrrQB1EOAVv+FpXFF1N
         VVyAfj3rseg8TQKCrIq2sbc2NBqJkvsP2pfKFYPXVfMxx/hZxJ1rZE23091GkXy1W1TX
         AblD+exLgrkekRVg87phSqaofKULaiF62WsCp9j4H2QBWZp/wNsRgffdEDRVnBnBmxzU
         2PnA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744713395; x=1745318195;
        h=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=jypqxtRVX8BKAPKoCA6QODwtLQQaK9bwgEnU1HMYWbw=;
        b=uxwsgrbzdtJQanMAdP7NXD31MxczyOgR2Yq2NVXDfTypSPq17HFoJGlemCb+HhBRir
         aHykoivSDiPBPzxnZLGi9VKGffm9y1UxPWByWnAhAZzaOfcoxBq6hYUXNRsuSfvMXHYO
         7JKalkiQg3ia0sTpdcfvQsJP6qZEG27PVIy3fOBM7xlJN9cQrfW7Ft+AQp2d9ZCmLZDh
         +GPW2Uyv4ejhKUM7eRURKujnZnLIxjffKaepklJ8a6K8W/QKiR0sUHJxTHIl7VeWEPYB
         aYWtIPsU+2qGOWczJdKfj7or9g1sJJs3Xzg9l9hKw6CqhNe3B2IOwUtMIOfQ2gU7vnkt
         y4Vg==
X-Forwarded-Encrypted: i=1; AJvYcCUpBmEGh6O0TF/RI/0qC1TyE+r0e+c4Ic0c6JHkKc0f3HhKYAoCpNsVV7x9k/AlHEpsRbcq/5wgRVc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzT0ZSJZlvA0rqqJF9lBmJ7LTE4RVyn/ixIGbhhVUAXa07tLc8m
	fSv5s9nos+eP3QLRNVGcL0hKZVl5zvw+TgpgiLiz7p1MOWwepFwI
X-Gm-Gg: ASbGncvEP8DiXYNZhPXG1T1t/l+Ab822go90zBNdi1EycMkgLHB4QmRwN6DgRXOvAxR
	tHfTLgG3zBFQbH4vTNU+z/kEuLlcEwpL5C2deBvYwSqmAvc8/L7Di/pFIeNTUKfqGCS8TnQ/2wf
	MC4movLCIhranCYNYn9C8gFjqH8QCARgc++EgF7NPz2FNQ/162dFSg3bge9xtlFhomg8dnhKZEJ
	oGwmUtmKnCF9CYVtMTLvWfUEEVUhITTf10PHZQvUWp/LbNpHM8Va79dqbdUoJJUZh0CFIQY4sk7
	VZ5BZOYjZNjXCrL1uO8b0f9ZPyA1Z4xLZUxXoiyYdWkL4udk/4IJh6HLjPu0PadPEb1wewKazgc
	Z1GxGIosTAMyglRYE
X-Google-Smtp-Source: AGHT+IHhU0PW0oJeqobY4cmjhqnGrL4i/fSgX+jVwJB9eYjXsy0U8amwuHzLFAaew7yGxrPXrSm7Kw==
X-Received: by 2002:a17:906:9f8a:b0:ac6:f5b5:36e0 with SMTP id a640c23a62f3a-acb168aeeefmr269651466b.19.1744713394444;
        Tue, 15 Apr 2025 03:36:34 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------Zc0EeoTIfgGOJP9ZlqxoOzHO"
Message-ID: <c307b7c1-3266-4916-a6ce-e5b34fcbf4fd@gmail.com>
Date: Tue, 15 Apr 2025 12:36:33 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 04/14] xen/riscv: introduce init_IRQ()
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1744126720.git.oleksii.kurochko@gmail.com>
 <dff8b0a4a83fbd2b84c3427093a63fcee8a7122f.1744126720.git.oleksii.kurochko@gmail.com>
 <f9e118ff-85fb-4bde-b313-740b1ea7ae4f@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <f9e118ff-85fb-4bde-b313-740b1ea7ae4f@suse.com>

This is a multi-part message in MIME format.
--------------Zc0EeoTIfgGOJP9ZlqxoOzHO
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 4/10/25 5:25 PM, Jan Beulich wrote:
> On 08.04.2025 17:57, Oleksii Kurochko wrote:
>> --- a/xen/arch/riscv/include/asm/irq.h
>> +++ b/xen/arch/riscv/include/asm/irq.h
>> @@ -3,6 +3,28 @@
>>   #define ASM__RISCV__IRQ_H
>>   
>>   #include <xen/bug.h>
>> +#include <xen/device_tree.h>
>> +
>> +#define NR_IRQS 1024
>> +
>> +/*
>> + * TODO: Should IRQ_TYPE_* be moved to xen/irq.h and wrapped into
>> + * #ifdef CONFIG_HAS_DEVICE_TREE?
>> + */
> Wouldn't that be more like asm-generic/dt-irq.h (or irq-dt.h)? The field where
> these values are stored is an arch-specific one, after all.

It would be much better. Thanks!

~ Oleksii

--------------Zc0EeoTIfgGOJP9ZlqxoOzHO
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 4/10/25 5:25 PM, Jan Beulich wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:f9e118ff-85fb-4bde-b313-740b1ea7ae4f@suse.com">
      <pre wrap="" class="moz-quote-pre">On 08.04.2025 17:57, Oleksii Kurochko wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">--- a/xen/arch/riscv/include/asm/irq.h
+++ b/xen/arch/riscv/include/asm/irq.h
@@ -3,6 +3,28 @@
 #define ASM__RISCV__IRQ_H
 
 #include &lt;xen/bug.h&gt;
+#include &lt;xen/device_tree.h&gt;
+
+#define NR_IRQS 1024
+
+/*
+ * TODO: Should IRQ_TYPE_* be moved to xen/irq.h and wrapped into
+ * #ifdef CONFIG_HAS_DEVICE_TREE?
+ */
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Wouldn't that be more like asm-generic/dt-irq.h (or irq-dt.h)? The field where
these values are stored is an arch-specific one, after all.</pre>
    </blockquote>
    <pre>It would be much better. Thanks!

~ Oleksii
</pre>
  </body>
</html>

--------------Zc0EeoTIfgGOJP9ZlqxoOzHO--


From xen-devel-bounces@lists.xenproject.org Tue Apr 15 10:36:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 10:36:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.952616.1348018 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4det-0006nT-Al; Tue, 15 Apr 2025 10:36:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 952616.1348018; Tue, 15 Apr 2025 10:36: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 1u4det-0006nM-7g; Tue, 15 Apr 2025 10:36:51 +0000
Received: by outflank-mailman (input) for mailman id 952616;
 Tue, 15 Apr 2025 10:36: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=ai1O=XB=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u4des-0006mW-Fr
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 10:36:50 +0000
Received: from mail-wm1-x335.google.com (mail-wm1-x335.google.com
 [2a00:1450:4864:20::335])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 87d58ebd-19e5-11f0-9ffb-bf95429c2676;
 Tue, 15 Apr 2025 12:36:46 +0200 (CEST)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-43690d4605dso42123415e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 15 Apr 2025 03:36:47 -0700 (PDT)
Received: from [10.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-43f20626c19sm212013025e9.15.2025.04.15.03.36.46
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 15 Apr 2025 03:36: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: 87d58ebd-19e5-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744713407; x=1745318207; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=+3mcrs+9oCkr0jPdfGdb0DzrO1ayJiO9Mhb+3ehe/TE=;
        b=SSQCyLZFOia39ej2JFx9lnN4Z5GQ9tV95MRvAScygJJO66yvwok80JoSUiooKrmD1J
         5VyD9XYV90xNLWxINhuxeHXG0h/f+1Hcc1+sDkY0Cn62u86geXts0HVlZa9EuWJkQLmX
         Ryii3B2cb0yNC/GNMmRbvvoPXTOgBCYsoRl9Ls3M37aoJ55CWAjSxsj/rxtSXh1AORoS
         JwFv7mhLDDBgemkxspTZPD6PG3S4bDv/FW0jBxD56bvDIb9pzEp8X4TqLlX/pGDUTM2B
         ATcBB6BYUDH5roKII0nMKZNpA1PhugCWOUq7nTgdlKn6ixwV/9COBG1Sd+frxJGfwRik
         fffw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744713407; x=1745318207;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=+3mcrs+9oCkr0jPdfGdb0DzrO1ayJiO9Mhb+3ehe/TE=;
        b=SGlAP+lTqUMiv2sNbNC8dKpMCPim6fgSO+UDYnc7ES9QTIFkR/IDvdO5pBXl28TQfY
         BnCcxKQlUKbWAR4kUjGl2jhc11DF4LoM8kZCxH+M6bBNPbWK3BRwQvgHY4U43jdqn4A5
         x/X8yt6RtFNJPmG4xCYKQ/kcszSfZqU6KLZV+eP9+Edy8RnkLavpd10MU/KJ0gGsYEe/
         mmHZasbPXcgGeUXeyfjq+MRzDN51b+4ynHqzeWpXeG9Ccq5ZZNHSGZbOVKpfGvtBcCDY
         nehLXiufj07Sw8t55anTCAxUOdiK9NEkOJ8WxjsvHzSKt8kYM9WIwZvBN4pzyLcaBZIR
         cgQA==
X-Forwarded-Encrypted: i=1; AJvYcCV5ajlldiRAHps/kAr9SpB3t9KUUenhtyPIUW495Yz+xq0fSmibkVR4BSLal2ADNF4vEY4xkLluL+s=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxL01SZo5plJVWBXGM9NR6tLRF9B8ol5xlWNGcsd9uNZZUKnMKa
	okF4zbFvBiDXUyavpGu9dH/KfmFljd333Ep66Xaam/C5ItAzgDe7R45sUGtV9Q==
X-Gm-Gg: ASbGncsxWbMn1AhQuAcdiYHf7hE/miWYMMrsbQw+fGTHwlp+pywrI7x9m8yb/HNBwL9
	ISZQ0hjQ6BfSBEysY/avZM8fWleZwA9gKzRcPZqSPkFym+Aypls05uO7AJ/18lTLjnHzuyPm0O2
	cXeBYvLqd67lJpHRIdVEjCTF0XNId0cXVy50wcBCwVVrfTkmkmHvExJZ6AC5aN9dKwohNVPBgSy
	JltOSVlNpBlIOpZ1oxlJ1TpYER2N6xzX5yQN3DHVea3WEdzkUJp2m5QaxbP6VEK11KTptWkrjjF
	iIG1uJ0ut64DRYdM3KjxApoJhy/QQ/60nD95FjBpz2rCdFHFlV83gFNFkBCBzMYETt9SYp8/S1h
	fn5VyqlY4UDlfZjXXtAM+8gg/Lg==
X-Google-Smtp-Source: AGHT+IGEgXVO7f7QBp8Fb63WlQPcSjwCJgfSUNqIZBrbla1xlMTm47XdCCD+OIuPY3j7iL3WLRrJkA==
X-Received: by 2002:a05:600c:810b:b0:43c:f61e:6ea8 with SMTP id 5b1f17b1804b1-43f3a926c29mr136842065e9.2.1744713406682;
        Tue, 15 Apr 2025 03:36:46 -0700 (PDT)
Message-ID: <8e35673e-6207-4b6f-9fb4-96f9bcbd9c74@suse.com>
Date: Tue, 15 Apr 2025 12:36:45 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 1/3] drivers: Change amd_iommu struct to contain
 pci_sbdf_t, simplify code
To: Andrii Sultanov <sultanovandriy@gmail.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: <cover.1744657012.git.andriy.sultanov@vates.tech>
 <40f504017d71c16a3e2bc8945ac5e674a3e791ed.1744657012.git.andriy.sultanov@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: <40f504017d71c16a3e2bc8945ac5e674a3e791ed.1744657012.git.andriy.sultanov@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 14.04.2025 21:19, Andrii Sultanov wrote:
> @@ -578,7 +578,7 @@ static int cf_check amd_iommu_add_device(u8 devfn, struct pci_dev *pdev)
>          return -EINVAL;
>  
>      for_each_amd_iommu(iommu)
> -        if ( pdev->seg == iommu->seg && pdev->sbdf.bdf == iommu->bdf )
> +        if ( pdev->sbdf.sbdf == iommu->sbdf.sbdf )

Not for this patch (optionally for a prereq one) we may want to gain sbdf_eq(),
much like we have mfn_eq() and friends.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 15 10:40:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 10:40:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.952637.1348029 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4diF-0008Vz-RR; Tue, 15 Apr 2025 10:40:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 952637.1348029; Tue, 15 Apr 2025 10:40: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 1u4diF-0008Vs-Mq; Tue, 15 Apr 2025 10:40:19 +0000
Received: by outflank-mailman (input) for mailman id 952637;
 Tue, 15 Apr 2025 10:40: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=hH2Z=XB=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1u4diE-0008Vm-KB
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 10:40:18 +0000
Received: from fout-b3-smtp.messagingengine.com
 (fout-b3-smtp.messagingengine.com [202.12.124.146])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 04a71d7e-19e6-11f0-9eae-5ba50f476ded;
 Tue, 15 Apr 2025 12:40:16 +0200 (CEST)
Received: from phl-compute-12.internal (phl-compute-12.phl.internal
 [10.202.2.52])
 by mailfout.stl.internal (Postfix) with ESMTP id 5CA3A11402E6;
 Tue, 15 Apr 2025 06:40:15 -0400 (EDT)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-12.internal (MEProxy); Tue, 15 Apr 2025 06:40:15 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue,
 15 Apr 2025 06:40:14 -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: 04a71d7e-19e6-11f0-9eae-5ba50f476ded
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=fm2; t=1744713615;
	 x=1744800015; bh=3QI00x+H5wZTnrF69vSppg9W+nDIPR5j+TnbKBDihJA=; b=
	b2Vl6ojs71mSvv8cTuJYarJns4Sw+vE+I/Vv2ZYV5v9DW0GdrumWqikGfCn+1D0D
	TXZUITim3sv9+Ut5Zd2PLUSGrbJWSNSKJ9hrJk8ThY5+U1bz9ce9HQOhFZBmLS9j
	vroYYC/70WpMCMmtUfvVhKM9bCwbHgWC3LkY8JjnqF4xUatfEyeGI2BDRWdmFR1b
	1yEqHBsjhIyHNYTUdiRHU3Zubg02BTISlQgK+bfkX1U9IWV3NVG64nSEPHZuUcz/
	Pd72L4YWfB+OAez15vv/3h3fNY7vK/jW9YvIwTUHVO8MGZQsPC+hfZTq2trB+08V
	Ar5yF/d95mIdZ8Sr+5jtrQ==
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=fm2; t=
	1744713615; x=1744800015; bh=3QI00x+H5wZTnrF69vSppg9W+nDIPR5j+Tn
	bKBDihJA=; b=qw9y/hvRY/9zeICGN9IyYw+ZV+LS/jME+FGKyxfbP80ogb5mMU0
	YjnC7e4RSD4MctqRlCghACylFwXc4+/58IlawQETy+sAG4JyiScfiSxr2H+wkYLn
	m/KpgaKAIXunGpBbiaxcXDvGXKCtvstuOGWINyvw/ttqGIR0s4hZK361svi88NtS
	pMIQTYS11MqPAiVw5c/Vrx96LPME8998sLZQLoWsV3WlW4sHAuc8j0XxsV4SAc9b
	DPNJGNUWlfK+crNXhBu4tW01IM6B+ip46qsISBPp7BUkdOYz0rGd//vl5m3L7ZrX
	e+sSKnMdbNvqKkC6LSDHiflBGkAL91JUAUQ==
X-ME-Sender: <xms:jzf-Zzw46zuW3nMHpAuy8YIZP36TVgeUdNasc0_20JuYFTlYkWkeuA>
    <xme:jzf-Z7T18v42c3kGKCDhyS6arWXFNCTUH3P-yVkwioCgpKsyho3eHLu2uP_JPkMhg
    yybB-8S1lkK_w>
X-ME-Received: <xmr:jzf-Z9WtgmcUsx_-nPlvHpriKm8SAuuDg_ZibeiYdd4nrxpcrErga0djnxUaCq4F4BiMnvPk08Q6oKz2l5p3V-8LVLe0MBsDRg>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvvdefvdejucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
    pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
    gvnhhtshculddquddttddmnecujfgurhepfffhvfevuffkfhggtggujgesghdtreertddt
    jeenucfhrhhomhepofgrrhgvkhcuofgrrhgtiiihkhhofihskhhiuceomhgrrhhmrghrvg
    hksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghr
    nhepgfekuddtffettefhieeuheffkeeuffelvdffuddtteetledtveekfeekleehjefgne
    cuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhm
    rghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdpnhgspghrtghpth
    htohepgedpmhhouggvpehsmhhtphhouhhtpdhrtghpthhtohepjhgsvghulhhitghhsehs
    uhhsvgdrtghomhdprhgtphhtthhopehrohhgvghrrdhprghusegtihhtrhhigidrtghomh
    dprhgtphhtthhopegrnhgurhgvfidrtghoohhpvghrfeestghithhrihigrdgtohhmpdhr
    tghpthhtohepgigvnhdquggvvhgvlheslhhishhtshdrgigvnhhprhhojhgvtghtrdhorh
    hg
X-ME-Proxy: <xmx:jzf-Z9jNELZX51SUMBwWrbak_1KlhON7X4CM7WhABr8O-mEJZcco6A>
    <xmx:jzf-Z1B5e-2YoZN3oHd7eLlzUVab7-lcnFsRoCffSYIQT2JHrfP32Q>
    <xmx:jzf-Z2IjN8Mo0IAxjAeB5x8mWg0aQvzf2AieVippp2RaBZFkDgYAmw>
    <xmx:jzf-Z0CuObWAy67LTT5_qbw7bDKgbfm3RLpJ375xk51ckg48MhzKrQ>
    <xmx:jzf-Zy6IOURDE_8MBUKrGhQVUn4g289J52XDZ2RwiWNBit_ZKYvlnRH3>
Feedback-ID: i1568416f:Fastmail
Date: Tue, 15 Apr 2025 12:40:11 +0200
From: Marek Marczykowski <marmarek@invisiblethingslab.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH 3/5] x86/hvm: fix handling of accesses to partial r/o
 MMIO pages
Message-ID: <Z_43iyD0Sod4uTN2@mail-itl>
References: <20250411105411.22334-4-roger.pau@citrix.com>
 <eaf5f71b-2c56-4bd8-a45f-35280af16466@suse.com>
 <Z_0TXKMe6tfrYR9T@macbook.lan>
 <c92d5665-0940-40b5-8cbb-81889adf40c5@suse.com>
 <Z_00JReo7Ji7RwkD@macbook.lan>
 <7c3c91d9-4de8-4910-b26e-8782a0f0d364@suse.com>
 <Z_4aBL7JhTv_oxWR@macbook.lan>
 <4dd5ada8-32e7-4b94-b2a4-51b20e09eb79@suse.com>
 <Z_4vE1qHlvGliqXY@macbook.lan>
 <0c74e9c9-c01d-4213-af01-cc287d1ef76b@suse.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="4rqauA1srzC8XHdr"
Content-Disposition: inline
In-Reply-To: <0c74e9c9-c01d-4213-af01-cc287d1ef76b@suse.com>


--4rqauA1srzC8XHdr
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Tue, 15 Apr 2025 12:40:11 +0200
From: Marek Marczykowski <marmarek@invisiblethingslab.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH 3/5] x86/hvm: fix handling of accesses to partial r/o
 MMIO pages

On Tue, Apr 15, 2025 at 12:18:04PM +0200, Jan Beulich wrote:
> On 15.04.2025 12:04, Roger Pau Monn=C3=A9 wrote:
> > On Tue, Apr 15, 2025 at 11:41:27AM +0200, Jan Beulich wrote:
> >> On 15.04.2025 10:34, Roger Pau Monn=C3=A9 wrote:
> >>> On Tue, Apr 15, 2025 at 09:32:37AM +0200, Jan Beulich wrote:
> >>>> On 14.04.2025 18:13, Roger Pau Monn=C3=A9 wrote:
> >>>>> On Mon, Apr 14, 2025 at 05:24:32PM +0200, Jan Beulich wrote:
> >>>>>> On 14.04.2025 15:53, Roger Pau Monn=C3=A9 wrote:
> >>>>>>> On Mon, Apr 14, 2025 at 08:33:44AM +0200, Jan Beulich wrote:
> >>>>>>>> I'm also concerned of e.g. VT-x'es APIC access MFN, which is
> >>>>>>>> p2m_mmio_direct.
> >>>>>>>
> >>>>>>> But that won't go into hvm_hap_nested_page_fault() when using
> >>>>>>> cpu_has_vmx_virtualize_apic_accesses (and thus having an APIC page
> >>>>>>> mapped as p2m_mmio_direct)?
> >>>>>>>
> >>>>>>> It would instead be an EXIT_REASON_APIC_ACCESS vmexit which is ha=
ndled
> >>>>>>> differently?
> >>>>>>
> >>>>>> All true as long as things work as expected (potentially including=
 the guest
> >>>>>> also behaving as expected). Also this was explicitly only an examp=
le I could
> >>>>>> readily think of. I'm simply wary of handle_mmio_with_translation(=
) now
> >>>>>> getting things to handle it's not meant to ever see.
> >>>>>
> >>>>> How was access to MMIO r/o regions supposed to be handled before
> >>>>> 33c19df9a5a0 (~2015)?  I see that setting r/o MMIO p2m entries was
> >>>>> added way before to p2m_type_to_flags() and ept_p2m_type_to_flags()
> >>>>> (~2010), yet I can't figure out how writes would be handled back th=
en
> >>>>> that didn't result in a p2m fault and crashing of the domain.
> >>>>
> >>>> Was that handled at all before said change?
> >>>
> >>> Not really AFAICT, hence me wondering how where write accesses to r/o
> >>> MMIO regions supposed to be handled by (non-priv) domains.  Was the
> >>> expectation that those writes trigger an p2m violation thus crashing
> >>> the domain?
> >>
> >> I think so, yes. Devices with such special areas weren't (aren't?) sup=
posed
> >> to be handed to DomU-s.
> >=20
> > Oh, I see.  That makes stuff a bit clearer.  I think we would then
> > also want to add some checks to {ept_}p2m_type_to_flags()?
> >=20
> > I wonder why handling of mmio_ro_ranges was added to the HVM p2m code
> > in ~2010 then.  If mmio_ro_ranges is only supposed to be relevant for
> > the hardware domain in ~2010 an HVM dom0 was not even in sight?
>=20
> I fear because I was wrong with what I said in the earlier reply: There's
> one exception - the MSI-X tables of devices. DomU-s (and even Dom0) aren't
> supposed to access them directly, but we'd permit reads (which, at least
> back at the time, were also required to keep qemu working).

And there is also a case where some devices have other registers on the
same page as MSI-X tables. But this case is handled specially in the
MSI-X code, not via sub-page R/O API.

> > Sorry to ask so many questions, I'm a bit confused about how this
> > was/is supposed to work.
>=20
> No worries - as you can see, I'm not getting it quite straight either.
>=20
> >>>> mmio_ro_do_page_fault() was
> >>>> (and still is) invoked for the hardware domain only, and quite likely
> >>>> the need for handling (discarding) writes for PVHv1 had been overloo=
ked
> >>>> until someone was hit by the lack thereof.
> >>>
> >>> I see, I didn't realize r/o MMIO was only handled for PV hardware
> >>> domains only.  I could arguably do the same for HVM in
> >>> hvm_hap_nested_page_fault().
> >>>
> >>> Not sure whether the subpage stuff is supposed to be functional for
> >>> domains different than the hardware domain?  It seems to be available
> >>> to the hanrdware domain only for PV guests, while for HVM is available
> >>> for both PV and HVM domains:
> >>
> >> DYM Dom0 and DomU here?
> >=20
> > Indeed, sorry.

I'm not sure about the PV case and domU. I think I tested it at some
iteration, but it isn't configuration that I care much about. If it
doesn't work (and fixing it would make it even more complex), IMO we can
simply adjust documentation of XHCI_SHARE_ANY to say it works only with
HVM domU.

The domU case exists mostly (only?) to enable automated testing. I do a
lot of that on laptops, which have only a single USB controller (no way
to plug any extra one), and I need that USB controller in a domU for
several tests. In fact, the XHCI console is a debugging feature in the
first place. So, the domU part doesn't need security support, can
require extra hoops to jump through etc.

> >>> is_hardware_domain(currd) || subpage_mmio_write_accept(mfn, gla)
> >>>
> >>> In hvm_hap_nested_page_fault().
> >>
> >> See the three XHCI_SHARE_* modes. When it's XHCI_SHARE_ANY, even DomU-s
> >> would require this handling. It looks like a mistake that we permit the
> >> path to be taken for DomU-s even when the mode is XHCI_SHARE_HWDOM.
> >=20
> > Arguable a domU will never get the device assigned in the first place
> > unless the share mode is set to XHCI_SHARE_ANY.  For the other modes
> > the device is hidden, and hence couldn't be assigned to a domU anyway.
>=20
> Correct. Yet then we permit a code path to be taken which is supposedly
> unnecessary, but potentially (if something went wrong) harmful.

Since the XHCI_SHARE_ANY case is rare (and not security-supported),
maybe there should be a global variable guarding this part? It would be
set to true only if XHCI_SHARE_ANY is used (or some future use of this
subpage-ro API with a domU). Then, that code would still be potentially
reachable for all domUs (if XHCI_SHARE_ANY is used), but that's still
better?
Anyway, I'm still not sure what the concern is. What is the (not purely
theoretical) case where domU gains access to the emulator, where without
this feature it wouldn't have it already? Any HVM can hit the emulator
already, regardless of this feature, no?

> >>>>> I'm happy to look at other ways to handling this, but given there's
> >>>>> current logic for handling accesses to read-only regions in
> >>>>> hvm_hap_nested_page_fault() I think re-using that was the best way =
to
> >>>>> also handle accesses to MMIO read-only regions.
> >>>>>
> >>>>> Arguably it would already be the case that for other reasons Xen wo=
uld
> >>>>> need to emulate an instruction that accesses a read-only MMIO regio=
n?
> >>>>
> >>>> Aiui hvm_translate_get_page() will yield HVMTRANS_bad_gfn_to_mfn for
> >>>> p2m_mmio_direct (after all, "direct" means we expect no emulation is
> >>>> needed; while arguably wrong for the introspection case, I'm not sure
> >>>> that and pass-through actually go together). Hence it's down to
> >>>> hvmemul_linear_mmio_access() -> hvmemul_phys_mmio_access() ->
> >>>> hvmemul_do_mmio_buffer() -> hvmemul_do_io_buffer() -> hvmemul_do_io(=
),
> >>>> which means that if hvm_io_intercept() can't handle it, the access
> >>>> will be forwarded to the responsible DM, or be "processed" by the
> >>>> internal null handler.
> >>>>
> >>>> Given this, perhaps what you do is actually fine. At the same time
> >>>> note how several functions in hvm/emulate.c simply fail upon
> >>>> encountering p2m_mmio_direct. These are all REP handlers though, so
> >>>> the main emulator would then try emulating the insn the non-REP way.
> >>>
> >>> I'm open to alternative ways of handling such accesses, just used what
> >>> seemed more natural in the context of hvm_hap_nested_page_fault().
> >>>
> >>> Emulation of r/o MMIO accesses failing wouldn't be an issue from Xen's
> >>> perspective, that would "just" result in the guest getting a #GP
> >>> injected.
> >>
> >> That's not the part I'm worried about. What worries me is that we open=
 up
> >> another (or better: we're widening a) way to hit the emulator in the f=
irst
> >> place. (Plus, as said, the issue with the not really tidy P2M type sys=
tem.)
> >=20
> > But the hit would be limited to domains having r/o p2m_mmio_direct
> > entries in the p2m, as otherwise the path would be unreachable?
>=20
> I fear I don't follow - all you look for in the newly extended conditional
> is the type being p2m_mmio_direct. There's no r/o-ness being checked for
> until we'd make it through the emulator and into subpage_mmio_accept().

But EPT violation can be hit on p2m_mmio_direct page only if it's a
write and the page is read-only, no? Is there any other case that exists
today?

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

--4rqauA1srzC8XHdr
Content-Type: application/pgp-signature; name=signature.asc

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmf+N4sACgkQ24/THMrX
1yyRvwf/VKD94EZl++2o6AR8vMk7Rh5dFwOvlcwfyZ1VTrVNbFA3Gi03Li2sseYI
Vv1f7DHlpJmhjAvz/5eAkDGn9vhKLzp9C53AkYqrVDrFCJOhEjDQ95y8dhFPptRY
dHzrrwWRell8WqtvlZHj2CkX35vbV6UPbm+c1hsUBsIWgp7rR8WQdK01YQ/uZZem
lSVT7UU6VcOoNDHC+KPnGcILY8GwQP6bm8/NIywMMUqPbULpd0Uw24MTTeuM59AM
04kEYSHGQ4IaPtPXVX+xRKt4TzFoV7SpqS3BJgz0Tj2IZQP/wS2Rztx4sddTcJ1m
mbr0hE9Ydm5QMPHrgxbx2O1LTcwxcw==
=gDib
-----END PGP SIGNATURE-----

--4rqauA1srzC8XHdr--


From xen-devel-bounces@lists.xenproject.org Tue Apr 15 10:47:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 10:47:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.952652.1348037 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4dpA-0002Dn-FM; Tue, 15 Apr 2025 10:47:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 952652.1348037; Tue, 15 Apr 2025 10: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 1u4dpA-0002Dg-Cl; Tue, 15 Apr 2025 10:47:28 +0000
Received: by outflank-mailman (input) for mailman id 952652;
 Tue, 15 Apr 2025 10:47: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=OGoX=XB=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u4dp9-0002Da-1B
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 10:47:27 +0000
Received: from mail-pl1-x62f.google.com (mail-pl1-x62f.google.com
 [2607:f8b0:4864:20::62f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0456f1ee-19e7-11f0-9eae-5ba50f476ded;
 Tue, 15 Apr 2025 12:47:25 +0200 (CEST)
Received: by mail-pl1-x62f.google.com with SMTP id
 d9443c01a7336-2295d78b45cso75278255ad.0
 for <xen-devel@lists.xenproject.org>; Tue, 15 Apr 2025 03:47:26 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 d9443c01a7336-22ac7b8b2ccsm114491095ad.70.2025.04.15.03.47.22
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 15 Apr 2025 03:47: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: 0456f1ee-19e7-11f0-9eae-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744714044; x=1745318844; 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=i8ggSNG4Ain+nVBtLmQKrY6ENfgBxO5nmTN1kEbu23I=;
        b=UiiIkrBcMUXWsdNrLKnejdtQWzHoGaYt1x1YQAF9/hVv7+OLWFvJsbWN4Ma9nrQgBO
         ruYM7+a7NdibwPMB7GRHISN9IIZI8F/OoW0FWzynOBZVGHRVxGZZtko0PLbp6N+HDkWM
         PM27v2i+qg1dmWH1lhgHXMNUqpKBv8TPU0iwc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744714044; x=1745318844;
        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=i8ggSNG4Ain+nVBtLmQKrY6ENfgBxO5nmTN1kEbu23I=;
        b=cE+eMzI+j9Q539C13i3ylDlPNVrsnCpK0FKYiEanYBy4F2/oG67VOdwNhBxb7v3beg
         f2C5KmCxHCHgXNFBE6j7ymRhab/1Cf7dF8d5B2Hj2oEFTwQAeiVCvc6yVR4sH02NKdA0
         n8CLiLsI64JnK3rQqJoKJ51q66mcla/ou9UILzwmjqVAb2djD99ZFlMscKYrahyfWjNu
         aCn9/Kg78h4qXGW/gf+fJyBcjI4P+cgfsG42Vmme+exIzGSicYU/hC2xGZ5vG83HNBZ8
         QNzuwA5gy6znx5AyCZQ2hZ31tzwGBEQy6L/aTM/YKKgCU36213w5WgfWHNyACl0y2J8L
         l28Q==
X-Gm-Message-State: AOJu0YwKkVgnbtuV9tTqR1Meyv+hlADoNin9O82nIYTCh/DscEVniPcy
	2hRdpdqUtgzeOYkdiSCReacdAvo/pguLMCCg8QxzgG6mVStyz3Xwi4x3BAigvuQ=
X-Gm-Gg: ASbGncvAeujL+bL5JrWmGTY2LhdG+MvwluEhcEDbDXaIrqDx/w0vFGlcOjCCpFOKtE7
	bxSHgnswppmFtMiDofphtyQeYS2TCSUknnSQflAApSpnmr76FoobXqdLq00hVvW+HY3+7q9C6vF
	2l/eSPOIeB7BOkroROIzcGIyPhI3PZMRlMf9sljOVOa4s7/svVZ1/oyCU6/9j9WtkB9jEWIMz9K
	MlMIC1+BTqoJMULdKIPNmr5aKKKkcdh2OeGJtHr/FM6xCrbal3WT4p96qpcZUmsVrRxQMf5xUrx
	oyi4bzIUtqiKDc+n0MQJCXfy4dbKrJiWVrWT+wIks+lQyQ==
X-Google-Smtp-Source: AGHT+IEmLbh5IDTYF/5LL7fOBUg3vJkRKdxLbaa1/KSmhEKsTRCtAYbEnu20kQKns6gKSIT61sNd1A==
X-Received: by 2002:a17:903:1a2b:b0:21f:c67:a68a with SMTP id d9443c01a7336-22bea4c6c69mr239420195ad.31.1744714044464;
        Tue, 15 Apr 2025 03:47:24 -0700 (PDT)
Date: Tue, 15 Apr 2025 12:47:19 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jiqian Chen <Jiqian.Chen@amd.com>
Cc: xen-devel@lists.xenproject.org, Huang Rui <ray.huang@amd.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH v2 4/8] vpci: Hide capability when it fails to initialize
Message-ID: <Z_45NzpRLkfLveug@macbook.lan>
References: <20250409064528.405573-1-Jiqian.Chen@amd.com>
 <20250409064528.405573-5-Jiqian.Chen@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <20250409064528.405573-5-Jiqian.Chen@amd.com>

On Wed, Apr 09, 2025 at 02:45:24PM +0800, Jiqian Chen wrote:
> When vpci fails to initialize a capability of a device, it just
> return error instead of catching and processing exception. That
> makes the entire device unusable.
> 
> So, refactor REGISTER_VPCI_INIT to contain more capability specific
> information, and use new functions to hide capability when
> initialization fails in vpci_assign_device().
> 
> Those new functions remove the failed legacy/extended capability
> from the emulated legacy/extended capability list.

I think this needs to be at least 2 different changes.

First change adds the usage of REGISTER_VPCI_{LEGACY,EXTENDED}_CAP()
helpers, while second change introduces the masking of capabilities on
initialization failure.

Otherwise review is a bit complicated.

> What's more, change the definition of init_header() since it is
> not a capability and it is needed for all devices' PCI config space.
> 
> Note: call vpci_make_msix_hole() in the end of init_msix() since the
> change of sequence of init_header() and init_msix().
> 
> Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
> ---
> cc: "Roger Pau Monné" <roger.pau@citrix.com>
> cc: Andrew Cooper <andrew.cooper3@citrix.com>
> cc: Anthony PERARD <anthony.perard@vates.tech>
> cc: Michal Orzel <michal.orzel@amd.com>
> cc: Jan Beulich <jbeulich@suse.com>
> cc: Julien Grall <julien@xen.org>
> cc: Stefano Stabellini <sstabellini@kernel.org>
> ---
> v1->v2 changes:
> * Removed the "priorities" of initializing capabilities since it isn't used anymore.
> * Added new function vpci_capability_mask() and vpci_ext_capability_mask() to remove failed capability from list.
> * Called vpci_make_msix_hole() in the end of init_msix().
> 
> Best regards,
> Jiqian Chen.
> ---
>  xen/drivers/vpci/header.c  |   3 +-
>  xen/drivers/vpci/msi.c     |   2 +-
>  xen/drivers/vpci/msix.c    |   8 +-
>  xen/drivers/vpci/rebar.c   |   2 +-
>  xen/drivers/vpci/vpci.c    | 175 +++++++++++++++++++++++++++++++------
>  xen/include/xen/pci_regs.h |   1 +
>  xen/include/xen/vpci.h     |  26 ++++--
>  xen/include/xen/xen.lds.h  |   2 +-
>  8 files changed, 179 insertions(+), 40 deletions(-)
> 
> diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c
> index 6833d456566b..51a67d76ad8a 100644
> --- a/xen/drivers/vpci/header.c
> +++ b/xen/drivers/vpci/header.c
> @@ -848,7 +848,7 @@ static int vpci_init_ext_capability_list(struct pci_dev *pdev)
>      return 0;
>  }
>  
> -static int cf_check init_header(struct pci_dev *pdev)
> +int vpci_init_header(struct pci_dev *pdev)
>  {
>      uint16_t cmd;
>      uint64_t addr, size;
> @@ -1044,7 +1044,6 @@ static int cf_check init_header(struct pci_dev *pdev)
>      pci_conf_write16(pdev->sbdf, PCI_COMMAND, cmd);
>      return rc;
>  }
> -REGISTER_VPCI_INIT(init_header, VPCI_PRIORITY_MIDDLE);
>  
>  /*
>   * Local variables:
> diff --git a/xen/drivers/vpci/msi.c b/xen/drivers/vpci/msi.c
> index 66e5a8a116be..ca89ae9b9c22 100644
> --- a/xen/drivers/vpci/msi.c
> +++ b/xen/drivers/vpci/msi.c
> @@ -270,7 +270,7 @@ static int cf_check init_msi(struct pci_dev *pdev)
>  
>      return 0;
>  }
> -REGISTER_VPCI_INIT(init_msi, VPCI_PRIORITY_LOW);
> +REGISTER_VPCI_LEGACY_CAP(PCI_CAP_ID_MSI, init_msi);
>  
>  void vpci_dump_msi(void)
>  {
> diff --git a/xen/drivers/vpci/msix.c b/xen/drivers/vpci/msix.c
> index 6bd8c55bb48e..6537374c79a0 100644
> --- a/xen/drivers/vpci/msix.c
> +++ b/xen/drivers/vpci/msix.c
> @@ -751,9 +751,13 @@ static int cf_check init_msix(struct pci_dev *pdev)
>      pdev->vpci->msix = msix;
>      list_add(&msix->next, &d->arch.hvm.msix_tables);
>  
> -    return 0;
> +    spin_lock(&pdev->vpci->lock);
> +    rc = vpci_make_msix_hole(pdev);
> +    spin_unlock(&pdev->vpci->lock);
> +
> +    return rc
>  }
> -REGISTER_VPCI_INIT(init_msix, VPCI_PRIORITY_HIGH);
> +REGISTER_VPCI_LEGACY_CAP(PCI_CAP_ID_MSIX, init_msix);
>  
>  /*
>   * Local variables:
> diff --git a/xen/drivers/vpci/rebar.c b/xen/drivers/vpci/rebar.c
> index 793937449af7..79858e5dc92f 100644
> --- a/xen/drivers/vpci/rebar.c
> +++ b/xen/drivers/vpci/rebar.c
> @@ -118,7 +118,7 @@ static int cf_check init_rebar(struct pci_dev *pdev)
>  
>      return 0;
>  }
> -REGISTER_VPCI_INIT(init_rebar, VPCI_PRIORITY_LOW);
> +REGISTER_VPCI_EXTEND_CAP(PCI_EXT_CAP_ID_REBAR, init_rebar);
>  
>  /*
>   * Local variables:
> diff --git a/xen/drivers/vpci/vpci.c b/xen/drivers/vpci/vpci.c
> index 1e6aa5d799b9..f1f125bfdab1 100644
> --- a/xen/drivers/vpci/vpci.c
> +++ b/xen/drivers/vpci/vpci.c
> @@ -35,9 +35,25 @@ struct vpci_register {
>      uint32_t rsvdz_mask;
>  };
>  
> +static int vpci_register_cmp(const struct vpci_register *r1,
> +                             const struct vpci_register *r2)
> +{
> +    /* Return 0 if registers overlap. */
> +    if ( r1->offset < r2->offset + r2->size &&
> +         r2->offset < r1->offset + r1->size )
> +        return 0;
> +    if ( r1->offset < r2->offset )
> +        return -1;
> +    if ( r1->offset > r2->offset )
> +        return 1;
> +
> +    ASSERT_UNREACHABLE();
> +    return 0;
> +}
> +
>  #ifdef __XEN__
> -extern vpci_register_init_t *const __start_vpci_array[];
> -extern vpci_register_init_t *const __end_vpci_array[];
> +extern vpci_capability_t *const __start_vpci_array[];
> +extern vpci_capability_t *const __end_vpci_array[];
>  #define NUM_VPCI_INIT (__end_vpci_array - __start_vpci_array)
>  
>  #ifdef CONFIG_HAS_VPCI_GUEST_SUPPORT
> @@ -83,6 +99,133 @@ static int assign_virtual_sbdf(struct pci_dev *pdev)
>  
>  #endif /* CONFIG_HAS_VPCI_GUEST_SUPPORT */
>  
> +static void vpci_capability_mask(struct pci_dev *pdev,
> +                                 const unsigned int cap)
> +{
> +    const unsigned int size = 1;
> +    const unsigned int offset = pci_find_cap_offset(pdev->sbdf, cap);
> +    const struct vpci_register r = { .offset = offset, .size = size };
> +    struct vpci_register *rm;
> +    struct vpci *vpci = pdev->vpci;
> +
> +    spin_lock(&vpci->lock);
> +    list_for_each_entry ( rm, &vpci->handlers, node )
> +    {
> +        int cmp = vpci_register_cmp(&r, rm);
> +
> +        if ( !cmp && rm->offset == offset && rm->size == size )
> +        {
> +            struct vpci_register *pre = list_entry(rm->node.prev,
> +                                                   struct vpci_register,
> +                                                   node);
> +            struct vpci_register *next = list_entry(rm->node.next,
> +                                                    struct vpci_register,
> +                                                    node);
> +
> +            pre->private = next->private;
> +
> +            /* PCI_CAP_LIST_ID register of current capability */
> +            list_del(&rm->node);
> +            /* PCI_CAP_LIST_NEXT register of current capability */
> +            list_del(&next->node);
> +            spin_unlock(&vpci->lock);

Are you sure this works as intended?  The list is sorted, so if there
further handlers in between the two capabilities, like when handling
MSI capability, the next handler in the list won't point to the next
capability list handler.

> +
> +            xfree(rm);
> +            xfree(next);
> +            return;
> +        }
> +        if ( cmp <= 0 )
> +            break;
> +    }
> +    spin_unlock(&vpci->lock);
> +}
> +
> +static void vpci_ext_capability_mask(struct pci_dev *pdev,
> +                                     const unsigned int cap)
> +{
> +    const unsigned int size = 4;
> +    const unsigned int offset = pci_find_ext_capability(pdev->sbdf, cap);
> +    const struct vpci_register r = { .offset = offset, .size = size };
> +    struct vpci_register *rm;
> +    struct vpci *vpci = pdev->vpci;
> +
> +    spin_lock(&vpci->lock);
> +    list_for_each_entry ( rm, &vpci->handlers, node )
> +    {
> +        int cmp = vpci_register_cmp(&r, rm);
> +
> +        if ( !cmp && rm->offset == offset && rm->size == size )
> +        {
> +            struct vpci_register *pre;
> +            u32 pre_header, header = (u32)(uintptr_t)rm->private;
> +
> +            if ( offset == 0x100U && PCI_EXT_CAP_NEXT(header) == 0 )

It would be safer to check for next < 0x100 rather than explicitly
0.

> +            {
> +                rm->private = (void *)(uintptr_t)0;
> +                spin_unlock(&vpci->lock);
> +                return;
> +            }
> +            else if ( offset == 0x100U )

There's no need for the else branch, as the previous if has a return.

> +            {
> +                pre = rm;
> +                rm = list_entry(rm->node.next, struct vpci_register, node);
> +                pre->private = rm->private;
> +            }
> +            else
> +            {
> +                pre = list_entry(rm->node.prev, struct vpci_register, node);
> +                pre_header = (u32)(uintptr_t)pre->private;
> +                pre->private =
> +                    (void *)(uintptr_t)((pre_header & !PCI_EXT_CAP_NEXT_MASK) |

I think you want ~PCI_EXT_CAP_NEXT_MASK rather than !PCI_EXT_CAP_NEXT_MASK?

> +                                        (header & PCI_EXT_CAP_NEXT_MASK));
> +            }
> +            list_del(&rm->node);
> +            spin_unlock(&vpci->lock);
> +            xfree(rm);
> +            return;

Kind of the same complaint I had on the previous patch, this seems to
assume that capability handlers are always consecutive in the list of
handlers, which I don't think it's the case.

> +        }
> +        if ( cmp <= 0 )
> +            break;
> +    }
> +    spin_unlock(&vpci->lock);
> +}
> +
> +static void vpci_init_capabilities(struct pci_dev *pdev)
> +{
> +    for ( unsigned int i = 0; i < NUM_VPCI_INIT; i++ )
> +    {
> +        const vpci_capability_t *capability = __start_vpci_array[i];
> +        const unsigned int cap = capability->id;
> +        const bool is_ext = capability->is_ext;
> +        unsigned int pos;
> +        int rc;
> +
> +        if ( !is_hardware_domain(pdev->domain) && is_ext )
> +            continue;
> +
> +        if ( is_ext )
> +            pos = pci_find_ext_capability(pdev->sbdf, cap);
> +        else
> +            pos = pci_find_cap_offset(pdev->sbdf, cap);
> +
> +        if ( !pos )
> +            continue;
> +
> +        rc = capability->init(pdev);
> +
> +        if ( rc )
> +        {
> +            printk(XENLOG_WARNING "%pd %pp: %s cap %u init fail rc=%d, mask it\n",
> +                   pdev->domain, &pdev->sbdf,
> +                   is_ext ? "extended" : "legacy", cap, rc);
> +            if ( is_ext )
> +                vpci_ext_capability_mask(pdev, cap);
> +            else
> +                vpci_capability_mask(pdev, cap);
> +        }
> +    }
> +}
> +
>  void vpci_deassign_device(struct pci_dev *pdev)
>  {
>      unsigned int i;
> @@ -128,7 +271,6 @@ void vpci_deassign_device(struct pci_dev *pdev)
>  
>  int vpci_assign_device(struct pci_dev *pdev)
>  {
> -    unsigned int i;
>      const unsigned long *ro_map;
>      int rc = 0;
>  
> @@ -159,12 +301,11 @@ int vpci_assign_device(struct pci_dev *pdev)
>          goto out;
>  #endif
>  
> -    for ( i = 0; i < NUM_VPCI_INIT; i++ )
> -    {
> -        rc = __start_vpci_array[i](pdev);
> -        if ( rc )
> -            break;
> -    }
> +    rc = vpci_init_header(pdev);
> +    if ( rc )
> +        goto out;

If you use the out label here you can remove the __maybe_unused
attribute from it.

> +
> +    vpci_init_capabilities(pdev);
>  
>   out: __maybe_unused;
>      if ( rc )
> @@ -174,22 +315,6 @@ int vpci_assign_device(struct pci_dev *pdev)
>  }
>  #endif /* __XEN__ */
>  
> -static int vpci_register_cmp(const struct vpci_register *r1,
> -                             const struct vpci_register *r2)
> -{
> -    /* Return 0 if registers overlap. */
> -    if ( r1->offset < r2->offset + r2->size &&
> -         r2->offset < r1->offset + r1->size )
> -        return 0;
> -    if ( r1->offset < r2->offset )
> -        return -1;
> -    if ( r1->offset > r2->offset )
> -        return 1;
> -
> -    ASSERT_UNREACHABLE();
> -    return 0;
> -}
> -
>  /* Dummy hooks, writes are ignored, reads return 1's */
>  static uint32_t cf_check vpci_ignored_read(
>      const struct pci_dev *pdev, unsigned int reg, void *data)
> diff --git a/xen/include/xen/pci_regs.h b/xen/include/xen/pci_regs.h
> index 27b4f44eedf3..5fe6653fded4 100644
> --- a/xen/include/xen/pci_regs.h
> +++ b/xen/include/xen/pci_regs.h
> @@ -449,6 +449,7 @@
>  #define PCI_EXT_CAP_ID(header)		((header) & 0x0000ffff)
>  #define PCI_EXT_CAP_VER(header)		(((header) >> 16) & 0xf)
>  #define PCI_EXT_CAP_NEXT(header)	(((header) >> 20) & 0xffc)
> +#define PCI_EXT_CAP_NEXT_MASK		0xFFC00000U
>  
>  #define PCI_EXT_CAP_ID_ERR	1
>  #define PCI_EXT_CAP_ID_VC	2
> diff --git a/xen/include/xen/vpci.h b/xen/include/xen/vpci.h
> index 807401b2eaa2..5016ded64d89 100644
> --- a/xen/include/xen/vpci.h
> +++ b/xen/include/xen/vpci.h
> @@ -13,11 +13,11 @@ typedef uint32_t vpci_read_t(const struct pci_dev *pdev, unsigned int reg,
>  typedef void vpci_write_t(const struct pci_dev *pdev, unsigned int reg,
>                            uint32_t val, void *data);
>  
> -typedef int vpci_register_init_t(struct pci_dev *dev);
> -
> -#define VPCI_PRIORITY_HIGH      "1"
> -#define VPCI_PRIORITY_MIDDLE    "5"
> -#define VPCI_PRIORITY_LOW       "9"
> +typedef struct {
> +    unsigned int id;
> +    bool is_ext;
> +    int (*init)(struct pci_dev *pdev);
> +} vpci_capability_t;
>  
>  #define VPCI_ECAM_BDF(addr)     (((addr) & 0x0ffff000) >> 12)
>  
> @@ -29,9 +29,19 @@ typedef int vpci_register_init_t(struct pci_dev *dev);
>   */
>  #define VPCI_MAX_VIRT_DEV       (PCI_SLOT(~0) + 1)
>  
> -#define REGISTER_VPCI_INIT(x, p)                \
> -  static vpci_register_init_t *const x##_entry  \
> -               __used_section(".data.vpci." p) = (x)
> +#define REGISTER_VPCI_CAP(cap, x, ext) \
> +  static vpci_capability_t x##_t = { \
> +        .id = (cap), \
> +        .init = (x), \
> +        .is_ext = (ext), \
> +  }; \
> +  static vpci_capability_t *const x##_entry  \
> +               __used_section(".data.vpci.") = &(x##_t)
> +
> +#define REGISTER_VPCI_LEGACY_CAP(cap, x) REGISTER_VPCI_CAP(cap, x, false)
> +#define REGISTER_VPCI_EXTEND_CAP(cap, x) REGISTER_VPCI_CAP(cap, x, true)

Nit: I would use EXTENDED here, there's no need to keep both defines
the same length.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Apr 15 10:50:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 10:50:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.952666.1348047 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4dri-0003ed-0v; Tue, 15 Apr 2025 10:50:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 952666.1348047; Tue, 15 Apr 2025 10: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 1u4drh-0003eV-Tl; Tue, 15 Apr 2025 10:50:05 +0000
Received: by outflank-mailman (input) for mailman id 952666;
 Tue, 15 Apr 2025 10: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=ai1O=XB=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u4drh-0003WV-Dz
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 10:50:05 +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 62a42c9f-19e7-11f0-9ffb-bf95429c2676;
 Tue, 15 Apr 2025 12:50:03 +0200 (CEST)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-43cec5cd73bso36526815e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 15 Apr 2025 03:50:03 -0700 (PDT)
Received: from [10.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-39eaf43ccd8sm14031451f8f.72.2025.04.15.03.50.02
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 15 Apr 2025 03:50: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: 62a42c9f-19e7-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744714203; x=1745319003; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Yy54S/trDAtLHWlpfeSQ55qPsceiWwmVkkcTriPDLj0=;
        b=eEQCbJMbLznQV34zGq4k5f3o2Cch4Kq9a++JMcuRQHXP7b4WmZq7OX3hEin2iidowY
         H7jRaB1hVKi35RRHIfeqp5OdufAxWDgRyNbOSqOC9uD1td8SQUriliy9eHuQ1Il3O0eY
         DtVhiJSZxtzG6jE7FFYwDVDu9eCmvL0GNRQEWfpUWUrX8M/OqxlYrmvO/NYrP9xl1PB8
         ugrHisDHOnDW3sxCbl4dbLRHRKVbUHLYnICfvWWoCXDXEeNLXHXF3cwO0M3hEG3jJDxn
         djwk4amR0OHvfiayfGAnWxBEwSg7KLJHsx0cFXTwRE7HgVGY+LbEOYCTb3HzgxY7NQDL
         YGVg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744714203; x=1745319003;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Yy54S/trDAtLHWlpfeSQ55qPsceiWwmVkkcTriPDLj0=;
        b=KgXPmBFejbMGN8R9xp+h2IpOpgdfcCvYYdSmGWqLr3fP2DBfGZtGpxW0dVf3HHpS3S
         Ga6HXcYS5sF5En/nxAUWfqhJYsn18hwSfASbewnxH73oNuVxUJEeRhDiJVG9jePwO9mv
         bq3Mz9YIp4CBx2Zf7tinWvv6QG+ZtJhTi/UfXAWnql4fA+4tCFyAaP678HeQTNunCvcD
         u99VbY0tyVKxOVx9Mju7MEvZMEwfGtscU9WVYfdpQzlliIaX9da4loBLdZc5zEsyQe2+
         eqdBibS9feQHKMxl9IuH3uEfpDj+d3pF8y7BALyh3FVmXSnWkPhZ7Fd/2d5LoeO7bpu3
         T6gg==
X-Forwarded-Encrypted: i=1; AJvYcCW2U4IbNQorGqKWubUZ32H9iTAVzOa285MHmpmsbgNisrO2Ie7hwr1h5Au2nu3LjaCVMVbVkHjqci0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxOYisOrgZnVDvjapKo3fmCkkm2qsTVITYuGPsSXsvcIpSaYhNZ
	K5Z9Uh64oFuLrLYMzoPtfhMxyrvO4yBg+hr4+XEyrEPVaNgN8gZI8OFKn0EuaA==
X-Gm-Gg: ASbGncs9z2QibvUhyKTWX411rzFEepV6CT4IWn5O1MAWsiZnEaJp2onrEgDG4rwbzKS
	iRqIBNSn0lJ7dXWTeiWxIJyLa0PvKPCPRajrZPbVfMYK7ngXzyBiX53VUlGOuv9bvAHWZKPJvvR
	UkdloZKnmSBwKORWBo3neGAJ8HjGLcvA6ZY9txifa/2Ty/Y5Oq+4e3woWl0vAolebjnY4EQqERr
	lXU3G0IA4lzeica+itHgjN6sJjVupAd19evaJACGELN68cXb+G/tschWvWM9VUnxlumOeVg5aVz
	r9PE6Tfbon4tW3Bo41QE0/Cntp9PQi2vs3+wg68xTyUB+Up7m1ZLyKNCE5ayS37IOVhCB9TVD3Q
	Oeg2ux67VffXUet6ZR4qml5ItGg==
X-Google-Smtp-Source: AGHT+IEf45lhk0MKIgVnERcYOnmcJBD0N4P6JT4O1a3dXp1My+/rkfaboFDtXJpEV46ldslv87Xt8g==
X-Received: by 2002:a05:6000:18af:b0:391:4743:6dc2 with SMTP id ffacd0b85a97d-39ea52120e2mr12872496f8f.25.1744714202755;
        Tue, 15 Apr 2025 03:50:02 -0700 (PDT)
Message-ID: <b526ed97-62cf-49c3-8e74-9cc04fc228bc@suse.com>
Date: Tue, 15 Apr 2025 12:50:01 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 3/5] x86/hvm: fix handling of accesses to partial r/o MMIO
 pages
To: Marek Marczykowski <marmarek@invisiblethingslab.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20250411105411.22334-4-roger.pau@citrix.com>
 <eaf5f71b-2c56-4bd8-a45f-35280af16466@suse.com>
 <Z_0TXKMe6tfrYR9T@macbook.lan>
 <c92d5665-0940-40b5-8cbb-81889adf40c5@suse.com>
 <Z_00JReo7Ji7RwkD@macbook.lan>
 <7c3c91d9-4de8-4910-b26e-8782a0f0d364@suse.com>
 <Z_4aBL7JhTv_oxWR@macbook.lan>
 <4dd5ada8-32e7-4b94-b2a4-51b20e09eb79@suse.com>
 <Z_4vE1qHlvGliqXY@macbook.lan>
 <0c74e9c9-c01d-4213-af01-cc287d1ef76b@suse.com> <Z_43iyD0Sod4uTN2@mail-itl>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <Z_43iyD0Sod4uTN2@mail-itl>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 15.04.2025 12:40, Marek Marczykowski wrote:
> On Tue, Apr 15, 2025 at 12:18:04PM +0200, Jan Beulich wrote:
>> On 15.04.2025 12:04, Roger Pau Monné wrote:
>>> On Tue, Apr 15, 2025 at 11:41:27AM +0200, Jan Beulich wrote:
>>>> On 15.04.2025 10:34, Roger Pau Monné wrote:
>>>>> Emulation of r/o MMIO accesses failing wouldn't be an issue from Xen's
>>>>> perspective, that would "just" result in the guest getting a #GP
>>>>> injected.
>>>>
>>>> That's not the part I'm worried about. What worries me is that we open up
>>>> another (or better: we're widening a) way to hit the emulator in the first
>>>> place. (Plus, as said, the issue with the not really tidy P2M type system.)
>>>
>>> But the hit would be limited to domains having r/o p2m_mmio_direct
>>> entries in the p2m, as otherwise the path would be unreachable?
>>
>> I fear I don't follow - all you look for in the newly extended conditional
>> is the type being p2m_mmio_direct. There's no r/o-ness being checked for
>> until we'd make it through the emulator and into subpage_mmio_accept().
> 
> But EPT violation can be hit on p2m_mmio_direct page only if it's a
> write and the page is read-only, no? Is there any other case that exists
> today?

Today and if everything works as it should - yes, I think so.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 15 10:50:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 10:50:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.952677.1348058 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4dsM-0004SA-8q; Tue, 15 Apr 2025 10:50:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 952677.1348058; Tue, 15 Apr 2025 10:50: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 1u4dsM-0004S3-5p; Tue, 15 Apr 2025 10:50:46 +0000
Received: by outflank-mailman (input) for mailman id 952677;
 Tue, 15 Apr 2025 10:50: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=OGoX=XB=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u4dsK-0004Mu-Tu
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 10:50:44 +0000
Received: from mail-pg1-x52c.google.com (mail-pg1-x52c.google.com
 [2607:f8b0:4864:20::52c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 79d40cb1-19e7-11f0-9ffb-bf95429c2676;
 Tue, 15 Apr 2025 12:50:43 +0200 (CEST)
Received: by mail-pg1-x52c.google.com with SMTP id
 41be03b00d2f7-af519c159a8so4870362a12.3
 for <xen-devel@lists.xenproject.org>; Tue, 15 Apr 2025 03:50:42 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 98e67ed59e1d1-306df082446sm12750012a91.12.2025.04.15.03.50.39
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 15 Apr 2025 03:50: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: 79d40cb1-19e7-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744714241; x=1745319041; 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=orUiddAWGqqJ2jqhlpE4dvAvEpegBbvAGNvKefmkx54=;
        b=DkLQFTeSGggPshUbHY5+J3GFsp0UIl7UcQgScPuAwuHSOpek/hYos07otin5cKAIp9
         qfZvtvBwIAfQDw2eMeJi3J7k8E3IHVJJR1O/Yn6a2Kv4l1p73BzcnfF/Ecdr6q57E8aX
         DbpE1gVRpPD27MIOGmMps05vbCT3WCLhAJqPQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744714241; x=1745319041;
        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=orUiddAWGqqJ2jqhlpE4dvAvEpegBbvAGNvKefmkx54=;
        b=oR9p063lU8dO4/ChTTHhXqzP/P0Sk/OH0mwf8pHiB4iTr7L1L2eUZfD+5azyKEue/p
         P8iHxHldT51WvANicqyksew+cTU9gKAn53N46p+39aQgGDN+Q/rkIKDqH2RgeUazvnSh
         mJG3Ebnkp5su+avlKNzqLO2yJmFf8U59TTiMYnvrJYboOhx1N3r+VbEaBdtZwUOHQiZM
         ax9SRlaOhq5aisrZcfNPJjX1Z6QyLViEsP4aGsnBz1Wp5tXE1kdEYYFAx3Hbzmco0o6f
         YHDfSNf3lB2en4tLNeeEh1p8ojKgg4p3uC/kEHe7r27mAHjkNLjlxSYh21vzGu06ypVD
         eRTw==
X-Gm-Message-State: AOJu0Yx0Z9iJC8GC2+3nkrPsbDW4A3AkXbrOZ/OORMpBU5vm2WQuDRTX
	p35OouE2Sqt6p3R2Oa8pP0TfVNny2s/LMhvzr/RSZ7iQlIehH0MZz13kO4UMnfA=
X-Gm-Gg: ASbGncvw7wMJHvDAisz4etzA1OJBs+UROLOL4U032/QpgbNbxWYgWKm68LR9Ck2+GsX
	QKNTXKzxglsuLUtlhT+oA/hjsq6/RhPJT3BEikIDtfux5KQ032Lax5Avw64HlSNmMQNAsE5yk1D
	FshIVh0b8zYiCt2RD7CR7gP7m0BxFTOQ4OiPvjsR2mYE7Rqq7nOCbJYkCcfJTR1pWSbMRy+vc1/
	kMGdkTzm38P8aWRl9kAO1j5LWeRYNM6bUV0udDuMHhvu54bdm97qzg/myNw20HHAgrlbzdyP6Qw
	kH6q8YJkTHA6b3K0Iuw80kYNbTyxxYFCwfZYWCkeQwC6hQ==
X-Google-Smtp-Source: AGHT+IHcJ1lFSqbxYG7dXud6aFx4GIknsscn1yJH/n6gIrPrI55scyz3Flapd9t+JuzBB01pfmDwgg==
X-Received: by 2002:a17:90b:3d45:b0:2fe:a545:4c85 with SMTP id 98e67ed59e1d1-3082367f641mr20706532a91.27.1744714241418;
        Tue, 15 Apr 2025 03:50:41 -0700 (PDT)
Date: Tue, 15 Apr 2025 12:50:36 +0200
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>,
	"Huang, Ray" <Ray.Huang@amd.com>
Subject: Re: [PATCH v2 2/8] vpci/header: Emulate legacy capability list for
 host
Message-ID: <Z_45_Jcz4ZxQHsG2@macbook.lan>
References: <20250409064528.405573-1-Jiqian.Chen@amd.com>
 <20250409064528.405573-3-Jiqian.Chen@amd.com>
 <Z_4mAAm-gCmZTJub@macbook.lan>
 <PH7PR12MB58546CF210C99C8B835FFC4AE7B22@PH7PR12MB5854.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: <PH7PR12MB58546CF210C99C8B835FFC4AE7B22@PH7PR12MB5854.namprd12.prod.outlook.com>

On Tue, Apr 15, 2025 at 10:07:14AM +0000, Chen, Jiqian wrote:
> On 2025/4/15 17:25, Roger Pau Monné wrote:
> > On Wed, Apr 09, 2025 at 02:45:22PM +0800, Jiqian Chen wrote:
> >> +static int vpci_init_capability_list(struct pci_dev *pdev)
> >> +{
> >> +    int rc;
> >> +    bool mask_cap_list = false;
> >> +    bool is_hwdom = is_hardware_domain(pdev->domain);
> >> +    const unsigned int *caps = is_hwdom ? NULL : guest_supported_caps;
> >> +    const unsigned int n = is_hwdom ? 0 : ARRAY_SIZE(guest_supported_caps);
> >> +
> >> +    if ( pci_conf_read16(pdev->sbdf, PCI_STATUS) & PCI_STATUS_CAP_LIST )
> >> +    {
> >> +        unsigned int next, ttl = 48;
> >> +
> >> +        next = pci_find_next_cap_ttl(pdev->sbdf, PCI_CAPABILITY_LIST,
> >> +                                     caps, n, &ttl);
> >> +
> >> +        rc = vpci_add_register(pdev->vpci, vpci_read_val, NULL,
> >> +                               PCI_CAPABILITY_LIST, 1,
> >> +                               (void *)(uintptr_t)next);
> >> +        if ( rc )
> >> +            return rc;
> >> +
> >> +        next &= ~3;
> >> +
> >> +        if ( !next && !is_hwdom )
> >> +            /*
> >> +             * If we don't have any supported capabilities to expose to the
> >> +             * guest, mask the PCI_STATUS_CAP_LIST bit in the status register.
> >> +             */
> >> +            mask_cap_list = true;
> >> +
> >> +        while ( next && ttl )
> >> +        {
> >> +            unsigned int pos = next;
> >> +
> >> +            next = pci_find_next_cap_ttl(pdev->sbdf, pos + PCI_CAP_LIST_NEXT,
> >> +                                         caps, n, &ttl);
> >> +
> >> +            rc = vpci_add_register(pdev->vpci, vpci_hw_read8, NULL,
> >> +                                   pos + PCI_CAP_LIST_ID, 1, NULL);
> > 
> > There's no need to add this handler for the hardware domain, that's
> > already the default behavior in that case.
> But if not, I have no handler to remove from capability list in next patch's hiding function vpci_capability_mask(),
> then I can't success to hide it.

Oh, I see, I have further comments on that approach, see the comments
on the followup patches.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Apr 15 11:02:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 11:02:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.952838.1348068 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4e3u-00085M-9q; Tue, 15 Apr 2025 11:02:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 952838.1348068; Tue, 15 Apr 2025 11: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 1u4e3u-00085F-60; Tue, 15 Apr 2025 11:02:42 +0000
Received: by outflank-mailman (input) for mailman id 952838;
 Tue, 15 Apr 2025 11:02: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=ai1O=XB=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u4e3s-000859-Hr
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 11:02:40 +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 251be8bc-19e9-11f0-9eae-5ba50f476ded;
 Tue, 15 Apr 2025 13:02:39 +0200 (CEST)
Received: by mail-wr1-x42c.google.com with SMTP id
 ffacd0b85a97d-39141ffa9fcso6982332f8f.0
 for <xen-devel@lists.xenproject.org>; Tue, 15 Apr 2025 04:02:39 -0700 (PDT)
Received: from [10.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-39eae96c184sm14076569f8f.30.2025.04.15.04.02.37
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 15 Apr 2025 04:02:38 -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: 251be8bc-19e9-11f0-9eae-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744714959; x=1745319759; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=TQm7wvdMIXO+oDlmAwu2bSzT5keCo/+caFKTgJug5IE=;
        b=Iz+eebu2QmwKQaV0ftAzdCtXbhSUW4TtKkb+VVuO1L3Z9AVxLRIly1Ei2fusmmVq3A
         qZ9sTLGFwTH6V8oLqFb11ivsLf5TC86rwotxIsCdannmYFyExsiRNUzr02jmKdnlnZNu
         ppZzIt2olvYKommHpcMa5PT4M79Sw8Lx3eLMNtZLcFy+kVJ7dU+EVBzeWmmqfk7cr3pF
         lht1+Ix6NV37ZLjHOLNCCnMFS+BSMWjOfzVPtj+DMh+nmm2AWpK3fFksuto3Wn4NhR2l
         +ja08r7J2PvEpRq6nvKGxErbkOPBMoDwCchIgFBZb0COJfX3snEcHySbKAEt/hJ+LdSE
         EyFQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744714959; x=1745319759;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=TQm7wvdMIXO+oDlmAwu2bSzT5keCo/+caFKTgJug5IE=;
        b=qedSwiiA7DYusrIpJpmyRY9DqK5jZH+juZX8Z/yzRNlFW4uoSu0TrXUMZCKwVw6Hct
         snf/Jfxr0/xSmQWH1ahj3yQdipSzO05hugd3MRkL0oZx+JP+9m/U9a4JVSjj+oP3drrY
         jsrQm25JHR91yR5IjVxmkhsNEjpkxgX807DLvPe1o/6ZfUkRdb2WIGH7Kw16mlriEcg1
         +i6CLs64jh12yseWP0L0JVe+4YFMMeLKsV/kDIUAp9DySBwXZf2mUrSFKzcxuqolC7xm
         QWLYp9AWsS3fhZPr1kak/GSw+0XPD0QjVd17xGo/TnktpSaVWYg6cHzSfzLvaIbx4a6R
         4u8w==
X-Forwarded-Encrypted: i=1; AJvYcCWc61fT7KmT4teUlXZX+mIGfhQULQh0hAZXD5B32T2Tn5YvM9owPDccytXq19ejhqp7sSosUnmdnus=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyxMb00pBi6IWafR8mqRbivnRgmiTMqdIvSXSWAwAl60d0PwVyh
	sxAHje0pSjxPBt6KAsX2HouzyHYZkU0bLB3h2hwnUMi1TSQa9hHwszjhUUgiqQ==
X-Gm-Gg: ASbGncvUDzOAvhnsMBsJkHBtUhjdpLpF+2DdqOQAa8LRxol8A2MtFmrN9hTPpRlDXqq
	bJjx+PZ45QMs4Y8ngkBL2IqWk3gPSVrmV0rczfpjuI8DODfvNuJTcFSXrllduH1hms6j6Cl0zku
	DkArb/vRkvG22Jd3Z01qkRQRLqEhSGP/477lrwgpZkxsDkHOmbFYbL3RoV8YAUDHkgAn9bPelng
	+Vgt5NwsJr1WC4+8DFHjmMPraDKwh8F+i57hZzShHMt5XzpOdIMQjkcKwtzyxTdg58V6r9pagX3
	SPOFMxPt85TBppzsEa2IwymjKQcSk1v3BZZGQqP6N21h3GdqmocmjUjapGV+/c/IxdKFqzI0Ipg
	WPziN4Gpu9XpvK6iKhqj08zPlJA==
X-Google-Smtp-Source: AGHT+IHgauErYHXhwllQ2xjqFw2JSlFpo42RR1zDyxCBdhkXRBPI0QKaeSBYTjMwIR/5MieIPAh/fA==
X-Received: by 2002:a5d:5f52:0:b0:38d:badf:9df5 with SMTP id ffacd0b85a97d-39ea51f46dfmr11385123f8f.17.1744714958515;
        Tue, 15 Apr 2025 04:02:38 -0700 (PDT)
Message-ID: <6b226b72-11a4-4004-b42d-0e280de83539@suse.com>
Date: Tue, 15 Apr 2025 13:02:37 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 03/14] xen/riscv: introduce ioremap()
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1744126720.git.oleksii.kurochko@gmail.com>
 <6d91eeabe2735de93bfcf2a2420e2059a8f35e52.1744126720.git.oleksii.kurochko@gmail.com>
 <84089b6d-efeb-4613-85b9-eb10d11d7338@suse.com>
 <f315bc11-c537-4dca-9e62-a6d3f02733e4@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: <f315bc11-c537-4dca-9e62-a6d3f02733e4@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 15.04.2025 12:29, Oleksii Kurochko wrote:
> 
> On 4/10/25 5:13 PM, Jan Beulich wrote:
>> On 08.04.2025 17:57, Oleksii Kurochko wrote:
>>> Based on RISC-V unpriviliged spec ( Version 20240411 ):
>>> ```
>>> For implementations that conform to the RISC-V Unix Platform Specification,
>>> I/O devices and DMA operations are required to access memory coherently and
>>> via strongly ordered I/O channels. Therefore, accesses to regular main memory
>>> regions that are concurrently accessed by external devices can also use the
>>> standard synchronization mechanisms. Implementations that do not conform
>>> to the Unix Platform Specification and/or in which devices do not access
>>> memory coherently will need to use mechanisms
>>> (which are currently platform-specific or device-specific) to enforce
>>> coherency.
>>>
>>> I/O regions in the address space should be considered non-cacheable
>>> regions in the PMAs for those regions. Such regions can be considered coherent
>>> by the PMA if they are not cached by any agent.
>>> ```
>>> and [1]:
>>> ```
>>> The current riscv linux implementation requires SOC system to support
>>> memory coherence between all I/O devices and CPUs. But some SOC systems
>>> cannot maintain the coherence and they need support cache clean/invalid
>>> operations to synchronize data.
>>>
>>> Current implementation is no problem with SiFive FU540, because FU540
>>> keeps all IO devices and DMA master devices coherence with CPU. But to a
>>> traditional SOC vendor, it may already have a stable non-coherency SOC
>>> system, the need is simply to replace the CPU with RV CPU and rebuild
>>> the whole system with IO-coherency is very expensive.
>>> ```
>>>
>>> and the fact that all known ( to me ) CPUs that support the H-extension
>>> and that ones is going to be supported by Xen have memory coherency
>>> between all I/O devices and CPUs, so it is currently safe to use the
>>> PAGE_HYPERVISOR attribute.
>>> However, in cases where a platform does not support memory coherency, it
>>> should support CMO extensions and Svpbmt. In this scenario, updates to
>>> ioremap will be necessary.
>>> For now, a compilation error will be generated to ensure that the need to
>>> update ioremap() is not overlooked.
>>>
>>> [1]https://patchwork.kernel.org/project/linux-riscv/patch/1555947870-23014-1-git-send-email-guoren@kernel.org/
>> But MMIO access correctness isn't just a matter of coherency. There may not
>> be any caching involved in most cases, or else you may observe significantly
>> delayed or even dropped (folded with later ones) writes, and reads may be
>> serviced from the cache instead of going to actual MMIO. Therefore ...
>>
>>> --- a/xen/arch/riscv/Kconfig
>>> +++ b/xen/arch/riscv/Kconfig
>>> @@ -15,6 +15,18 @@ config ARCH_DEFCONFIG
>>>   	string
>>>   	default "arch/riscv/configs/tiny64_defconfig"
>>>   
>>> +config HAS_SVPBMT
>>> +	bool
>>> +	help
>>> +	  This config enables usage of Svpbmt ISA-extension ( Supervisor-mode:
>>> +	  page-based memory types).
>>> +
>>> +	  The memory type for a page contains a combination of attributes
>>> +	  that indicate the cacheability, idempotency, and ordering
>>> +	  properties for access to that page.
>>> +
>>> +	  The Svpbmt extension is only available on 64-bit cpus.
>> ... I kind of expect this extension (or anything else that there might be) will need
>> making use of.
> 
> In cases where the Svpbmt extension isn't available, PMA (Physical Memory Attributes)
> is used to control which memory regions are cacheable, non-cacheable, readable, writable,
> etc. PMA is configured in M-mode by the firmware (e.g., OpenSBI), as is done in Andes
> cores, or it can be fixed at design time, as in SiFive cores.

How would things work if there was a need to map a RAM page uncacheable (via
ioremap() or otherwise)?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 15 11:06:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 11:06:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.953536.1348078 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4e7H-0001wC-Oe; Tue, 15 Apr 2025 11:06:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 953536.1348078; Tue, 15 Apr 2025 11: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 1u4e7H-0001w5-KL; Tue, 15 Apr 2025 11:06:11 +0000
Received: by outflank-mailman (input) for mailman id 953536;
 Tue, 15 Apr 2025 11:06: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=OGoX=XB=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u4e7G-0001uT-98
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 11:06:10 +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 a1524cac-19e9-11f0-9ffb-bf95429c2676;
 Tue, 15 Apr 2025 13:06:07 +0200 (CEST)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-ac2a9a74d9cso1040331566b.1
 for <xen-devel@lists.xenproject.org>; Tue, 15 Apr 2025 04:06:08 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 a640c23a62f3a-acaa1ccd293sm1069872766b.150.2025.04.15.04.06.07
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 15 Apr 2025 04:06: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: a1524cac-19e9-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744715167; x=1745319967; 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=AjQLZblPzPrKpRkeBz0nnZ5xA2VMF9dphkm+mAAG5SM=;
        b=aE/wiLVFYQNSemHeLfrgm3sbwH/Qn2Pov7BZK7ZkohL638r9t8g8lOoqzbtP0TAEXA
         YyARl+JfJAVAO7T4e3GXkW1YtLhOFHGPncjVvEA4DeBRy/aET2gLEgz6MjaTBRp1ztmN
         /63FTwTRcr4AC652AoFVGRHzyJ1OYXQeKV7o8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744715167; x=1745319967;
        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=AjQLZblPzPrKpRkeBz0nnZ5xA2VMF9dphkm+mAAG5SM=;
        b=bgUJOn6eHKLH79LfvAhn3uNTXPYy56Ihunb2J8ATT3F24PGWgIPqM9FOZTGp8zLM63
         w/Pz7AE1sU/4qpznV3yMxrZ9E/tcpxl5hY15Z3KKq4H0PuDSopjyhNJwXHs+QnJMl7Pi
         TKaH+Py6RVtj8GFBYVDqT2dcjDhPoQ5cwwWuiTyycsRPEffmQP4VyH64QfbcV3RCMs1v
         poaIeKoRdWeYuJGRMdnFI28PeumdIXmBRAtVRx3+9yjWI/DysQ/rWTGwaL5Nw6b5YVzY
         lBgpoUjiTB+gS2eoGztvtsPaFaViV1N9eDQ4/h1g99iuII+tNZ9kxGv7VfAiJi5093s7
         SATw==
X-Gm-Message-State: AOJu0YxLmUcQoBVPBhO0MTaElVA04/BLqQVl4hsfu2GryNRcnc11kTzQ
	pFu7VjXgYcmOf3CYrQ0Bqzj0BqTojQ0hTMpI13Wzw/GdNSQnXeSy+oy/3ZdcECk=
X-Gm-Gg: ASbGnctaAb1OP8ivVJxYUscauWtu4dltkNIrfRLcsyYVwkfD1jlqNbuOZY5qBXg+x6o
	x1OS/bx+ItCwi9uLXahUTFzbtn8GxutvsyKimCvxQsc9AtzR3SW+WUqmaDUdFtBTNg1qlQ+lODb
	SqJFN7b7HEUb5e7sX3fFT2DFKoBl3Un79zS23OdKZbHtzHU/FrOEC8R/tBXVxokwWmF2bo1gvAk
	13S224ehwFcS0uPe1wNpph6LrB1oPUluCfg1lJ7jNezZfuG+h1SMqvVyt8z1RrmsaAHmsh37ELZ
	HPo4rdf93r6JkrBPmTqaoCvZ9f7nDfwtaAQvIgYJUP/7JA==
X-Google-Smtp-Source: AGHT+IFEAj2eQ15rAWd1H6HaL9qN6aRmvUWltjNWFfsmNbvfapiX3oIP0Xtov1RQbY/b2S5Qm6wktg==
X-Received: by 2002:a17:907:9624:b0:ac3:773:62a7 with SMTP id a640c23a62f3a-acad34d94camr1400018466b.31.1744715167573;
        Tue, 15 Apr 2025 04:06:07 -0700 (PDT)
Date: Tue, 15 Apr 2025 13:06:06 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jiqian Chen <Jiqian.Chen@amd.com>
Cc: xen-devel@lists.xenproject.org, Huang Rui <ray.huang@amd.com>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: Re: [PATCH v2 5/8] vpci: Refactor vpci_remove_register to remove
 matched registers
Message-ID: <Z_49nsZbVU6F2tu0@macbook.lan>
References: <20250409064528.405573-1-Jiqian.Chen@amd.com>
 <20250409064528.405573-6-Jiqian.Chen@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <20250409064528.405573-6-Jiqian.Chen@amd.com>

On Wed, Apr 09, 2025 at 02:45:25PM +0800, Jiqian Chen wrote:
> vpci_remove_register() only supports removing a register in a time,
> but the follow-on changes need to remove all registers within a
> range. And it is only used for test. So, refactor it to support
> removing all matched registers in a calling time.
> 
> And it is no matter to remove a non exist register, so remove the
> __must_check prefix.
> 
> Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
> ---
> cc: "Roger Pau Monné" <roger.pau@citrix.com>
> cc: Anthony PERARD <anthony.perard@vates.tech>
> ---
> v1->v2 changes:
> new patch
> 
> Best regards,
> Jiqian Chen.
> ---
>  tools/tests/vpci/main.c |  4 ++--
>  xen/drivers/vpci/vpci.c | 23 ++++++++++++-----------
>  xen/include/xen/vpci.h  |  4 ++--
>  3 files changed, 16 insertions(+), 15 deletions(-)
> 
> diff --git a/tools/tests/vpci/main.c b/tools/tests/vpci/main.c
> index 33223db3eb77..ca72877d60cd 100644
> --- a/tools/tests/vpci/main.c
> +++ b/tools/tests/vpci/main.c
> @@ -132,10 +132,10 @@ static void vpci_write32_mask(const struct pci_dev *pdev, unsigned int reg,
>                                    rsvdz_mask))
>  
>  #define VPCI_REMOVE_REG(off, size)                                          \
> -    assert(!vpci_remove_register(test_pdev.vpci, off, size))
> +    assert(!vpci_remove_registers(test_pdev.vpci, off, size))
>  
>  #define VPCI_REMOVE_INVALID_REG(off, size)                                  \
> -    assert(vpci_remove_register(test_pdev.vpci, off, size))
> +    assert(vpci_remove_registers(test_pdev.vpci, off, size))
>  
>  /* Read a 32b register using all possible sizes. */
>  void multiread4_check(unsigned int reg, uint32_t val)
> diff --git a/xen/drivers/vpci/vpci.c b/xen/drivers/vpci/vpci.c
> index f1f125bfdab1..115d3c5f0c84 100644
> --- a/xen/drivers/vpci/vpci.c
> +++ b/xen/drivers/vpci/vpci.c
> @@ -418,34 +418,35 @@ int vpci_add_register_mask(struct vpci *vpci, vpci_read_t *read_handler,
>      return 0;
>  }
>  
> -int vpci_remove_register(struct vpci *vpci, unsigned int offset,
> -                         unsigned int size)
> +int vpci_remove_registers(struct vpci *vpci, unsigned int offset,
> +                          unsigned int size)
>  {
>      const struct vpci_register r = { .offset = offset, .size = size };
>      struct vpci_register *rm;
> +    int rc = -ENOENT;

Thinking about this, not sure returning ENOENT makes much sense now,
as the (new) purpose of the function is to zap all handlers from a
range, without possibly prior knowledge whether there are any
handlers in the range.

>  
>      spin_lock(&vpci->lock);
>      list_for_each_entry ( rm, &vpci->handlers, node )
>      {
>          int cmp = vpci_register_cmp(&r, rm);
>  
> -        /*
> -         * NB: do not use a switch so that we can use break to
> -         * get out of the list loop earlier if required.
> -         */
> -        if ( !cmp && rm->offset == offset && rm->size == size )
> +        if ( !cmp )
>          {
> +            struct vpci_register *prev =
> +                list_entry(rm->node.prev, struct vpci_register, node);
> +
>              list_del(&rm->node);
> -            spin_unlock(&vpci->lock);
>              xfree(rm);
> -            return 0;
> +            rm = prev;
> +            rc = 0;

I think you want some extra checks here to ensure you are not removing
partially overlapping registers.  IOW, you need to assert the register
in rm is fully contained inside the range to zap.

It might be best to simply not use vpci_register_cmp(), and instead
open code the comparison here to ensure "rm" is fuly contained inside
the [offset, offset + size - 1] range.  You will need to return an
error if there's a partially overlapping register.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Apr 15 11:10:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 11:10:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.953620.1348088 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4eBm-0004O4-BO; Tue, 15 Apr 2025 11:10:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 953620.1348088; Tue, 15 Apr 2025 11:10: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 1u4eBm-0004Nx-7H; Tue, 15 Apr 2025 11:10:50 +0000
Received: by outflank-mailman (input) for mailman id 953620;
 Tue, 15 Apr 2025 11:10: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=JN3i=XB=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1u4eBk-0004Nl-IL
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 11:10:48 +0000
Received: from PA4PR04CU001.outbound.protection.outlook.com
 (mail-francecentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20a::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 47832fb0-19ea-11f0-9eae-5ba50f476ded;
 Tue, 15 Apr 2025 13:10:46 +0200 (CEST)
Received: from AM9P195CA0022.EURP195.PROD.OUTLOOK.COM (2603:10a6:20b:21f::27)
 by DBBPR08MB10699.eurprd08.prod.outlook.com (2603:10a6:10:52f::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.32; Tue, 15 Apr
 2025 11:10:41 +0000
Received: from AM1PEPF000252DD.eurprd07.prod.outlook.com
 (2603:10a6:20b:21f:cafe::19) by AM9P195CA0022.outlook.office365.com
 (2603:10a6:20b:21f::27) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.33 via Frontend Transport; Tue,
 15 Apr 2025 11:10:40 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AM1PEPF000252DD.mail.protection.outlook.com (10.167.16.55) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.12
 via Frontend Transport; Tue, 15 Apr 2025 11:10:39 +0000
Received: from DB7PR08MB2987.eurprd08.prod.outlook.com (2603:10a6:5:1c::25) by
 PAWPR08MB11204.eurprd08.prod.outlook.com (2603:10a6:102:469::14) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.35; Tue, 15 Apr
 2025 11:10:06 +0000
Received: from DB7PR08MB2987.eurprd08.prod.outlook.com
 ([fe80::d53f:b16d:70a5:8668]) by DB7PR08MB2987.eurprd08.prod.outlook.com
 ([fe80::d53f:b16d:70a5:8668%4]) with mapi id 15.20.8632.030; Tue, 15 Apr 2025
 11:10: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: 47832fb0-19ea-11f0-9eae-5ba50f476ded
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=m9fDLxK0yfEP20VB999hajEZE5djtHlnk/7fWMyP5+qGiKWMlcLKG+2LvWL5MvQH4BsXueiChENOjFh0Dhvf0vbM4fonQDZVF6oaRM3yFakAi2r6uWkT8j9RMRpPHSoMp3oTf+LD8tBORM2Hlw6V2vYJWpriYikF16LdMUeHLiBwqjon1ASeTt3CWujjpumW8mENpMpyJCS+/EQt42M8yQa96urt97lewJ4CcKL0PHrTDwCz+gQ5IvSrLPcdMlmuHClOj9XZ8aFJDEG6iRoeHlKFFoQmb28b51eC+EPSK4UKmEwslPLHfSiwk0SGyrufOxIHo4YKMiqhXWXmbd+gjQ==
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=wcCK8iqlyIcEIn3IY3AHEPQLB09ABwqhkUzFqcAHqrY=;
 b=aeaCLSXoGirpSLbcQVUtJkyenC6MWa2vB7G+qagXwFU0h0Lh9QCk7DzloG198BF3ncDbJNeeHh+4RMIopoeggo60GqArk3FKF0lFPZJGfTRt18AsLRFzBjv/ygGTlJP/T/I1O9+lC1jBe71TvVWSGMJOJzOMu6K+ZGrnltzE9pD+MLuLmTcjiHYAn0qFNdU9CpemA00ThEYDHNeeEetpMme/6BN+kJx8fp0UKLSseqrpIioZwi0M3ZzL2pMeJ5SvwF3qyG3AJyGDMEmVdfkv4iZma2m2z/uAk7jkZiRcts4wbhbBYxM0tdgGt05iTCslm/QWlRK3ZKzjHDnTaPcFcA==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=xen.org smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=wcCK8iqlyIcEIn3IY3AHEPQLB09ABwqhkUzFqcAHqrY=;
 b=mu86oYCX15dNRAnxidmfiC15hAgO/oqte0imsrrmQTn5w+N78vcBcuND02PCrEt6lMum6B+QX41zt385QIiC2L2YM93XhI7EipP3EzKj4SJSCb2X+g2IRE5/Uuf2NW0k13f16LMqZbmqEBa38eQokY1PNEI3nmf4DDkTbjUzVtg=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=yY1pTQGs/QJaocIrA5ld0OYk/cNix1GOxdImqnYZpkgpOf421DjipZ4V8jehTqnfZwtnd5SwiyRU8o5+6UsG3JSxL/OO6v5xSQLkctRclknZKqS3PyhBKH6yKBpMYuwIrPvI/wDn/bxIgqmM8hlppcE/vhk+gvuUX0u8sw7pTLdc0p/ByTsrXFYWht4eFIyCiTNuOz+Y8E0mUuVchTanlhRf2qk8tGl9Srv+JFgB8Tl/Ryvh7wuB5gX0sMb2xhyWuxWeVgH5bdkvZwBPKO8oc/C+SMZ8jV7YvbRf+R3V6D0QS7EuhBzmryalW2MpqSh10D7KZje21Q154uxsc0Safw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=wcCK8iqlyIcEIn3IY3AHEPQLB09ABwqhkUzFqcAHqrY=;
 b=MX6Fyzu6k4pHh/f9x1AU7i9J3pcKufImS8H0Fnl0EU4AEtCWs7nSSPPEbLZmg0ibiLUIERFetMyuFTKt0HTEfnxZrSLiTMALLCnTSg+8Q9+djypEcVvTKxol8FsLcxpOMYDEXzO2Cv6MLEtgTRdh9tjBRvoAN9O0BQqentHDlCCtu34+nwWAPFhjqWQSdtIkHfTJnTn+8lS1fb3isCRcbAT90/wpN/hb/AYc7YBjF3v+s2sZdmNECNYd7Qi94qq6pyoYiZWDNTKqE1dWoQSWZHqAyJCvJ0PTpkthR6bAd0Lu08UYFSKdHwWCRfELj2J/Bivw3wHgq8u6pDy/31IVMQ==
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=wcCK8iqlyIcEIn3IY3AHEPQLB09ABwqhkUzFqcAHqrY=;
 b=mu86oYCX15dNRAnxidmfiC15hAgO/oqte0imsrrmQTn5w+N78vcBcuND02PCrEt6lMum6B+QX41zt385QIiC2L2YM93XhI7EipP3EzKj4SJSCb2X+g2IRE5/Uuf2NW0k13f16LMqZbmqEBa38eQokY1PNEI3nmf4DDkTbjUzVtg=
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 v3 7/7] arm/mpu: Implement setup_mpu for MPU system
Thread-Topic: [PATCH v3 7/7] arm/mpu: Implement setup_mpu for MPU system
Thread-Index:
 AQHbqvIOcqFIKG0Dnkidmosr/dM7hLOjFvuAgAAzsICAAJ2ngIAAeRkAgAAozwCAAA2fgA==
Date: Tue, 15 Apr 2025 11:10:05 +0000
Message-ID: <0CED25FD-5706-420A-BDB7-EB36BB7FEE71@arm.com>
References: <20250411145655.140667-1-luca.fancellu@arm.com>
 <20250411145655.140667-8-luca.fancellu@arm.com>
 <923a2fc0-4eeb-4e09-a56d-7471a56fe3bf@xen.org>
 <4771188E-B307-4452-A900-2ACACC1CE333@arm.com>
 <fcacc6b6-ea4b-4917-ac46-5264ac3e4039@xen.org>
 <A053DC71-B301-4D64-8EDB-C225E2ED3FA7@arm.com>
 <9eec0359-e9e9-4d38-abc0-3cde6eb94e3b@xen.org>
In-Reply-To: <9eec0359-e9e9-4d38-abc0-3cde6eb94e3b@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.400.131.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DB7PR08MB2987:EE_|PAWPR08MB11204:EE_|AM1PEPF000252DD:EE_|DBBPR08MB10699:EE_
X-MS-Office365-Filtering-Correlation-Id: 5cabe30f-ac47-4cc8-048b-08dd7c0e27a0
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?QU1UcGM0cDRKaTN0bUFIOVNPM3IvbFZUbkNvaFZjTVZ6elZibGN5WlpYQndZ?=
 =?utf-8?B?SHB3UmN5bS9aVDM0QkxDNFZFL3BsOEJHUkxUYjNQTVY4VllFRWhYb3NwVnFX?=
 =?utf-8?B?bnJaRmVsRnkxU2hNMWtqOGN6V3ZqSzRvQ2ZrWmJtZ25tZWJrR1NDRkJsNFIz?=
 =?utf-8?B?YUFZdGovc3lGRkNtb2pqQ3FyUDFycFRYVjVMVGRBbCtXVnc4MGFpeGM4SkVr?=
 =?utf-8?B?QmlaWnZOVDRBSlk5eXVmdjdrTUs2cnpycE8wd2tuZnRzVW1Td29SSEtoTTVE?=
 =?utf-8?B?MXZ5dWFaY0dTOW43VUpTZHpEWXlyT1NvWVNxUXRXN3I3SUtNTEJwNWVvbENP?=
 =?utf-8?B?bXdNRjZuMDlHc0JsRm1SQVhIZThWL2wxSzVpUmhKVEN5ZWJ3YnAxWE9RcUxU?=
 =?utf-8?B?S2xlelJvTE53WE4rK2VWcjBoMnVtOHNIcXpKYmtXS0FFcW1RWlc1Y0ZsSm9a?=
 =?utf-8?B?ekVhMnl1RkFudlFpdjZJdmExMlFoVjY2dG5ScnAwSitralpmVHRoK1htUU5v?=
 =?utf-8?B?RDVkTFVCMldKSE1VREZBN2xEOS80YnpSTE1VeVZQVjJ4Rnd2QXlYSlgxN0NM?=
 =?utf-8?B?ZHJsUGYwRzMvaWdEREd0MllRR3FidmNJMndESVhFZnVnSUs5dFVRUEFFbEE5?=
 =?utf-8?B?TUNpR2FpdExkMXNjNGhMQ0l5bzVnN3JCOEEvTHpVZGNkVjdhVEY1SVdaeEF3?=
 =?utf-8?B?NHQwNEpVd21nZVZERWZqeFpDSlc3K1I5YVQ1SVVjMG9yNS93YnMvRk5BSmx1?=
 =?utf-8?B?NmVJLzkyV3dtOXJ3ZzZBeGJmZ1lpK0RSOHFXRDVPNGl5SGxXUzlWdWd1RG5y?=
 =?utf-8?B?VEkyTFI2bmhHcjZxWW9sTXRhTlhudnFNa3BuUXk2bVU0NnJKNzZ3NFlsbG92?=
 =?utf-8?B?L2pTRlBEZWEvNjYwbWpPaUlLNjdWREVxbVBaTXlBeEgyVkJaNUwyYm1vZ05K?=
 =?utf-8?B?Ly9XS3A5UEcxUTd1bmlJU0M0Uk1ZajZ2QlJxR1Z1OWJDRTl6ZDZjOEJNYWFi?=
 =?utf-8?B?TGs3K0syME8renk3NjBEV3F5ZUcvcncyZlFKTmJBaGtuVGNJeVVXN3ppOFYw?=
 =?utf-8?B?S1lNL0IwaUxKR01NRUt3RnZ3clJGR0dFR2dSK2RZd0hqdEtZc3RDREF3Y0JS?=
 =?utf-8?B?LzVsSFRTSzJ0Q0pRYmk0aVFaMGh1U3hLVk1LckZCYVNRVmpNclZjM3pZQUFt?=
 =?utf-8?B?a3pjMWgxdGR3UXVsSWNkYWJXMHlyMlNBcnFRdUl4SERCSnYvcVR2cml5bjQw?=
 =?utf-8?B?L1lXNFlzNEUzdFNzWDdaN1UyM1Rxa0Z6RVAyYjllVGloWXBjSkF2dXZVVzVL?=
 =?utf-8?B?YS85VSsxZ0RubW9yam5PazUxZnpLemRaUVBrQSswajdiZHQ3aHB2V3p3TFFR?=
 =?utf-8?B?MXdYM3VkNDRYSE55dUwyUitqOWRnR2c3YkdxU1M3UW90aXJLZ20xY09sWGFZ?=
 =?utf-8?B?YXgrbHloNGlWLzR1V3RoaTd3emVxeVgwTGl1Kzl5TmZMbnJxNEhpY0E1cDBR?=
 =?utf-8?B?OHQyZ3l0TCs3TFUvRlVlZGh4enFVNWFHWDZQYng5UU1hYVM0bG5aUXRIMnVG?=
 =?utf-8?B?RTZyN25LZVRheGQ5d29Jb0IwVlJxTmxHY1NRaFMxdXF2TXJIMzI4TklGMU43?=
 =?utf-8?B?cE0rdnhMN2w5WG5IS0RpT3h4KzZiUG9hNklaSm5ZQ3dFVTRtT1BxRm9vRm5i?=
 =?utf-8?B?YlVucnh1VEpPMUlWOW51aVdITVBNOWhjV3hCd1hhOWFPK0RFckpBUWRFU0Zy?=
 =?utf-8?B?REdRN1NYOFpaclQwM2RDaS9kZlN3cFViblJiTXVPRU1xVG9SWGZLbGNlQ3Zk?=
 =?utf-8?B?N1B0MElqTVNXSjErNHEybXZpQzlSOVFDK0FFZXFRZHgxR1FIT0thbXh2anAv?=
 =?utf-8?B?MlhnY1pCMnNhelhhbzV6WEFzRDE0UWVDZVpueTV6d1dJNE42TWNReVp0U21I?=
 =?utf-8?B?cGJVbzY2TW9ZWGtXb1dFUTdUUUNqOVVOS3htRVRvSFUwSTNWWXNpL1dDVEtp?=
 =?utf-8?B?RXNLSXZ6dHV3PT0=?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB7PR08MB2987.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: <C72C2CAFB2D5B540900CE74C36E42324@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR08MB11204
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AM1PEPF000252DD.eurprd07.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	dd47ba10-874d-45f4-2cf9-08dd7c0e13b3
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|14060799003|1800799024|376014|82310400026|36860700013|35042699022|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?TnN3b2p0enJGTkFTcktpOFNaM21YREQ2WG5YaE5WdVFRejlsQ2JqMVFWRFRO?=
 =?utf-8?B?cUNpanY1SVlTb3lmZWd0MVltQmZWZDNQNG5Id2dwdDFQTmNMVjJ0d1pWL21Z?=
 =?utf-8?B?cGxBd09BWTJOczJNc2JGUFdoMU81cThPNDI5Q2dTUzhHNlhzeGlTUWZSNzgw?=
 =?utf-8?B?MG5yaVN5TTNCSWZiaDFNbTc3a1RQNHB2VitzRXJGOWQrendyaDNxMWxvVTJt?=
 =?utf-8?B?ZzdPQkNjTzZldFN6UjlBMHZPbXAwa0J2S0tNRzFVUWNXNVh0N3ZSSXZ4ZFNI?=
 =?utf-8?B?b1FLaWVkdEhzSHBBd09KM0RHaXh2eGhNMDd4dGFqeUw4cU9rdDAzL3dScXB4?=
 =?utf-8?B?WWFxUnQwM01LZHNIT05mcVEwamFrM1dOV2QxYjhqcGNEOEQvWVl5cU0xaElO?=
 =?utf-8?B?dktoN2duLzlOdWlEVEN0QW9IK2gxUExQbU5rQ2l5YkJabGxmSkJyMFZXb3Zr?=
 =?utf-8?B?dXRpdmo4a0YwTTdJQ2NPZzRDYkVRelJzYlhHZXl2cU83ZDJxL3FaQ2QzNFJ0?=
 =?utf-8?B?c3UxQ0pzM2pQOTVFeW91WWtKQ0NYc0J1bGYrR0w1cEx2SDlzTHV0Zkx6aEph?=
 =?utf-8?B?c1N1TURoYzNFSTlidXFKdk5seXFGcU1rYWd2NENsYTJGNzdMSWdpNkVqRE1O?=
 =?utf-8?B?Z3prMXZjNjQ1Rm54Nm9RQTR1aFNEb1VoQUlqeHU0bDQ3RlZ4YzdYbnNvNFNQ?=
 =?utf-8?B?Q2JHWHlUWkU2elQyZTFoSTUwQmhTMEhJVVhZcVluRE9qblJyYjhKTjZEUG1C?=
 =?utf-8?B?dEIrbHVjbHdRRmUrUUVCWjFtUEozc1dXRmwrMTdTMGVOYzZWdjN2MDdWVU9u?=
 =?utf-8?B?YWlaTTdXRXF5cWZxTjJwNDhaWUlEd1RGNWVKYTJBZkNxWHNteWVyWVNCUjlz?=
 =?utf-8?B?dUtUS040K3Q2b3pReDJHT3Fjck8vR2tmbVQzdklITnIzUXdCM0hub0pHT084?=
 =?utf-8?B?RG5XOFFONlFONU5xNWM3ZGlheXJCUXBoUGI3MzN2QkZ2UVp4M1JXU1NBU09q?=
 =?utf-8?B?RmlwTGYxY3JNTHZhbnNrbnRGcjRDY3BXVXMyNElYWkk3NEk5TGxDdGNZcE5w?=
 =?utf-8?B?WG51VVhkUlZhNzRReXVuRTZON2ZhWFdxSVg1amdKSW5DbVBHSS9zWnYyOVJi?=
 =?utf-8?B?NE1nRlJ1bnFIMWtQL1R2emRIUUtRd1o0RDJ5N092TjR1TmtpWExYK1dZbytx?=
 =?utf-8?B?SEJaVHlvMEs0WFk1YTZsbUJkaGdnR056em5jUDNFbUg3MmZ5ZEt5NlR1WnVN?=
 =?utf-8?B?UjNnNzdMU3JTZzhKdzE2aEFtdlpFQXViaHVTc2NxQS9iTzdxNXZ3OWhLNTNQ?=
 =?utf-8?B?SWtkOXhoWk1zQitZRkpXTUhRaSsyK3VETzhrK0ZpQXN0aGJmTjh6dHFHc1NC?=
 =?utf-8?B?WERiOEFyMXN6UElHOGdjN29jeEc5SW9QenNveExwUE5nN3FrUk56RitHeG9H?=
 =?utf-8?B?MGlDTU1yUm9DaXFNWUxNTnM4R0ZyOUJNQVJ0L0hlQUFOWWRtMkpqd0l5cHBv?=
 =?utf-8?B?V2VLUHFvWTdxTUpydmNiMXZrWFVqb0I1WGVhdVVGNHd3YXpGQ2xTSGhyNUhk?=
 =?utf-8?B?anV3VjdpdFRibkJNeUhUYWJJdWlzMU1YTFl3VUZDbUVIRjdia05pRzA4aE9U?=
 =?utf-8?B?Y0VRYUVia3RPZlB4YnZyREEweEgwUEZkVytBMk1TYThzZUNFL1oxMU9LeHRK?=
 =?utf-8?B?ZlE5YkNqQjJGSFh0dUZRRDVyTmw0RGRvbmdJbnppdmQ0SUk4YTVka3crOExN?=
 =?utf-8?B?MFdhemRiRHNabURVZjdyZjB5Q2VvSHNVWmN5NXFmd0ZmTlBMc3hjZWRHcHYv?=
 =?utf-8?B?dmlaVStBYUFOYmpQM2RnOFk2eEhwTWtrcnlYbkZldVJJeElES3hDRCtGelZF?=
 =?utf-8?B?RVJrQ0FMMmdjSmZUK1E3a1I5Mkhra1F6ZTJ4UG9iK3VwTFJrYU53WXdySlRI?=
 =?utf-8?B?MUQwczM4bFg0RHJsaU0rVVU2M0lrWmcxdnRCbUg2cGZzRmVCUUI1aWFpdzRG?=
 =?utf-8?B?VmRPUTJGN3IrL293ZVhER1JXQmdVR0dDZUFid0duS1gzcDlpWm5JZHdRUmlH?=
 =?utf-8?Q?ocaUy7?=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(14060799003)(1800799024)(376014)(82310400026)(36860700013)(35042699022)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Apr 2025 11:10:39.1569
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 5cabe30f-ac47-4cc8-048b-08dd7c0e27a0
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AM1PEPF000252DD.eurprd07.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR08MB10699

SGkgSnVsaWVuLA0KDQo+IE9uIDE1IEFwciAyMDI1LCBhdCAxMToyMCwgSnVsaWVuIEdyYWxsIDxq
dWxpZW5AeGVuLm9yZz4gd3JvdGU6DQo+IA0KPiBIaSBMdWNhLA0KPiANCj4gT24gMTUvMDQvMjAy
NSAxNjo1NSwgTHVjYSBGYW5jZWxsdSB3cm90ZToNCj4+IEhpIEp1bGllbiwNCj4+Pj4+PiArc3Rh
dGljIHZvaWQgX19pbml0IHNldHVwX21wdSh2b2lkKQ0KPj4+Pj4+ICt7DQo+Pj4+Pj4gKyAgICBy
ZWdpc3Rlcl90IHByZW5yOw0KPj4+Pj4+ICsgICAgdW5zaWduZWQgaW50IGkgPSAwOw0KPj4+Pj4+
ICsNCj4+Pj4+PiArICAgIC8qDQo+Pj4+Pj4gKyAgICAgKiBNUFVJUl9FTDIuUmVnaW9uWzA6N10g
aWRlbnRpZmllcyB0aGUgbnVtYmVyIG9mIHJlZ2lvbnMgc3VwcG9ydGVkIGJ5DQo+Pj4+Pj4gKyAg
ICAgKiB0aGUgRUwyIE1QVS4NCj4+Pj4+PiArICAgICAqLw0KPj4+Pj4+ICsgICAgbWF4X3hlbl9t
cHVtYXAgPSAodWludDhfdCkoUkVBRF9TWVNSRUcoTVBVSVJfRUwyKSAmIE5VTV9NUFVfUkVHSU9O
U19NQVNLKTsNCj4+Pj4+PiArDQo+Pj4+Pj4gKyAgICAvKiBQUkVOUl9FTDIgaGFzIHRoZSBOIGJp
dCBzZXQgaWYgdGhlIE4gcmVnaW9uIGlzIGVuYWJsZWQsIE4gPCAzMiAqLw0KPj4+Pj4+ICsgICAg
cHJlbnIgPSAoUkVBRF9TWVNSRUcoUFJFTlJfRUwyKSAmIFBSRU5SX01BU0spOw0KPj4+Pj4+ICsN
Cj4+Pj4+PiArICAgIC8qDQo+Pj4+Pj4gKyAgICAgKiBTZXQgdGhlIGJpdGZpZWxkIGZvciByZWdp
b25zIGVuYWJsZWQgaW4gYXNzZW1ibHkgYm9vdC10aW1lLg0KPj4+Pj4+ICsgICAgICogVGhpcyBj
b2RlIHdvcmtzIHVuZGVyIHRoZSBhc3N1bXB0aW9uIHRoYXQgdGhlIGNvZGUgaW4gaGVhZC5TIGhh
cw0KPj4+Pj4+ICsgICAgICogYWxsb2NhdGVkIGFuZCBlbmFibGVkIHJlZ2lvbnMgYmVsb3cgMzIg
KE4gPCAzMikuDQo+Pj4+Pj4gKw0KPj4+Pj4gVGhpcyBpcyBhIGJpdCBmcmFnaWxlLiBJIHRoaW5r
IGl0IHdvdWxkIGJlIGJldHRlciBpZiB0aGUgYml0bWFwIGlzIHNldCBieSBoZWFkLlMgYXMgd2Ug
YWRkIHRoZSByZWdpb25zLiBTYW1lIGZvciAuLi4NCj4+Pj4gU28sIEkgd2FzIHRyeWluZyB0byBh
dm9pZCB0aGF0IGJlY2F1c2UgaW4gdGhhdCBjYXNlIHdlIG5lZWQgdG8gcGxhY2UgeGVuX21wdW1h
cCBvdXQgb2YgdGhlIEJTUyBhbmQgc3RhcnQNCj4+Pj4gbWFuaXB1bGF0aW5nIHRoZSBiaXRtYXAg
ZnJvbSBhc20sIGluc3RlYWQgSSB3YXMgaG9waW5nIHRvIHVzZSB0aGUgQyBjb2RlLCBJIHVuZGVy
c3RhbmQgdGhhdCBpZiBzb21lb25lDQo+Pj4+IHdhbnRzIHRvIGhhdmUgbW9yZSB0aGFuIDMxIHJl
Z2lvbiBhcyBib290IHJlZ2lvbiB0aGlzIG1pZ2h0IGJyZWFrLCBidXQgaXTigJlzIGFsc28gYSBi
aXQgdW5saWtlbHk/DQo+Pj4gDQo+Pj4gVGhlIDMxIGlzIG9ubHkgcGFydCBvZiB0aGUgcHJvYmxl
bS4gVGhlIG90aGVyIHByb2JsZW0gaXMgdGhlcmUgaXMgYXQgbGVhc3Qgb25lIG90aGVyIHBsYWNl
cyBpbiBYZW4gKGkuZS4gYXMgZWFybHlfZmR0X21hcCgpKSB3aGljaCB3aWxsIGFsc28gY3JlYXRl
IGFuIGVudHJ5IGluIHRoZSBNUFUgYmVmb3JlIHNldHVwX21tKCkvc2V0dXBfbXB1KCkgaXMgY2Fs
bGVkLiBJIGFtIGEgYml0IGNvbmNlcm5lZCB0aGF0IHRoZSBhc3N1bXB0aW9uIGlzIGdvaW5nIHRv
IHNwcmVhZCBhbmQgeWV0IHdlIGhhdmUgbm8gd2F5IHRvIHByb2dyYW1tYXRpY2FsbHkgY2hlY2sg
aWYgdGhpcyB3aWxsIGJlIGJyb2tlbi4NCj4+IElmIHdlIHdvdWxkIGxpa2UgdG8gZmluZCB3YXlz
LCB3ZSBjb3VsZCBjaGVjayBldmVudHVhbGx5IGZvciBjbGFzaGVzIG9uIGVuYWJsZWQgTVBVIHJl
Z2lvbnM7DQo+PiBzbyB0aGUgb25seSBwYXJ0IHdoZXJlIGEgcmVnaW9uIGlzIGNyZWF0ZWQgaW4g
dGhlIEMgd29ybGQgd2l0aG91dCB0aGUgYXNzaXN0YW5jZSBvZiB4ZW5fbXB1bWFwIGlzIGVhcmx5
X2ZkdF9tYXAoKSwNCj4+IGFzc2VydHMgZXRjIGNvdWxkIGJlIHVzZWQgaW4gb25lIG9yIGJvdGgg
c2V0dXBfbXB1IGFuZCBlYXJseV9mZHRfbWFwIHRvIHByZXZlbnQgYnJlYWthZ2UuDQo+ID4gPj4N
Cj4+PiBGdXJ0aGVybW9yZSwgcmlnaHQgbm93LCB5b3UgYXJlIGhhcmRjb2RpbmcgdGhlIHNsb3Qg
dXNlZCBhbmQgdXBkYXRpbmcgdGhlIE1QVS4gQnV0IGlmIHlvdSBoYWQgdGhlIGJpdG1hcCB1cGRh
dGVkLCB5b3UgY291bGQganVzdCBsb29rIHVwIGZvciBhIGZyZWUgc2xvdC4NCj4+IG9mIGNvdXJz
ZSwgYnV0IHN0aWxsIHRoZSBlYXJseSBEVEIgbWFwIGlzIHRlbXBvcmFyeSBhbmQgaXQgd2lsbCBi
ZSBnb25lIGFmdGVyIGJvb3QsIHNvIGl0IHdvbuKAmXQgaW1wYWN0IG11Y2ggdW5sZXNzIEnigJlt
DQo+PiBtaXNzaW5nIHNvbWV0aGluZy4NCj4gDQo+IEl0IGRvZXNuJ3QgcmVhbGx5IG1hdHRlciB3
aGV0aGVyIHRoZSByZWdpb24gaXMgdGVtcG9yYXJ5IG9yIG5vdC4gTXkgY29uY2VybiBpcyB5b3Ug
YXJlIG1ha2luZyBhc3N1bXB0aW9uIHRoYXQgYXJlIGRpZmZpY3VsdCB0byB0cmFjayAodGhleSBh
cmUgbm90IGRvY3VtZW50ZWQgd2hlcmUgYSBkZXZlbG9wcGVyIHdvdWxkIG1vc3QgbGlrZWx5IGxv
b2sgYXQpLg0KPiANCj4gU28gaWYgd2Ugc3RpbGwgd2FudCB0byBoYXJkY29kZSB0aGUgdmFsdWUs
IHRoZW4gdGhpcyBzaG91bGQgYmUgZG9jdW1lbnRlZCBpbiBoZWFkLlMgYW5kIHByb2JhYmx5IGlu
IGEgbGF5b3V0LmggKG9yIHNpbWlsYXIpIHNvIHRoZXJlIGlzIGEgc2luZ2xlIHBsYWNlIHdoZXJl
IHRoZSBNUFUgbGF5b3V0IGlzIGRlc2NyaWJlZC4NCg0KU3VyZSwgSeKAmW0gZmluZSB3aXRoIGRv
Y3VtZW50aW5nIGV2ZXJ5dGhpbmcsIGxldOKAmXMgc2VlIC4uLg0KDQo+IA0KPj4+IA0KPj4+PiBT
byBJIHdhcyBiYWxhbmNpbmcgdGhlIHByb3MgdG8gbWFuaXB1bGF0ZSBldmVyeXRoaW5nIGZyb20g
dGhlIEMgd29ybGQgYWdhaW5zdCB0aGUgY29ucyAoYm9vdCByZWdpb24gPiAzMSkuDQo+Pj4+IElz
IGl0IHN0aWxsIHlvdXIgcHJlZmVycmVkIHdheSB0byBoYW5kbGUgZXZlcnl0aGluZyBmcm9tIGFz
bT8NCj4+PiANCj4+PiBZZXMuIEkgZG9uJ3QgdGhpbmsgdGhlIGNoYW5nZSBpbiBhc20gd2lsbCBi
ZSBsYXJnZSBhbmQgdGhpcyB3b3VsZCBhbGxvdyB0byByZW1vdmUgb3RoZXIgYXNzdW1wdGlvbnMg
KGxpa2UgaW4gdGhlIEZEVCBtYXBwaW5nIGNvZGUpLg0KPj4gbm90IGxhcmdlLCBidXQgc3RpbGwg
c29tZXRoaW5nIHRvIGJlIG1haW50YWluZWQsIHdlIHdpbGwgbmVlZCBhcm02NC9hcm0zMiBjb2Rl
IHRvIHNldC9jbGVhciBiaXRzIG9uIHRoZSBiaXRtYXANCj4+IChjYXVzaW5nIGR1cGxpY2F0aW9u
IHdpdGggYml0b3BzLmMpLCBjb2RlIHRvIHNhdmUgdGhpbmdzIG9uIHRoZSB4ZW5fbXB1bWFwLCBj
b2RlIHRvIGNsZWFuL2ludmFsaWRhdGUgZGNhY2hlIGZvciB0aGUgZW50cmllcyBpbiB4ZW5fbXB1
bWFwIGFuZCBmaW5hbGx5IHdlIHdpbGwgbmVlZCB0byBrZWVwIHRoZSBjb2RlIGFsaWduZWQgdG8g
dGhlIGltcGxlbWVudGF0aW9uIG9mIHRoZSBiaXRtYXANCj4+ICh3aGljaCBpcyBmYWlybHkgc3Rh
YmxlLCBidXQgc3RpbGwgbmVlZHMgdG8gYmUgdGFrZW4gaW50byBhY2NvdW50KS4NCj4gDQo+IEkg
dW5kZXJzdGFuZCB0aGUgY2hhbmdlcyBhbmQgcmlza3MsIGJ1dCBJIHN0aWxsIHRoaW5rIHRoaXMg
aXMgdGhlIHJpZ2h0IGFwcHJvYWNoLiBMZXQgc2VlIHdoYXQgdGhlIG90aGVyIG1haW50YWluZXJz
IHRoaW5rLg0KDQp3aGF0IHRoZSBvdGhlciBtYWludGFpbmVycyB0aGlua3MgYWJvdXQgdGhpcyBv
bmUuIA0KDQo+IA0KPj4+IA0KPj4+IEFzIGEgc2lkZSBub3RlLCBJIG5vdGljZWQgdGhhdCB0aGUg
TVBVIGVudHJpZXMgYXJlIG5vdCBjbGVhcmVkIGJlZm9yZSB3ZSBlbmFibGUgdGhlIE1QVS4gSXMg
dGhlcmUgYW55dGhpbmcgaW4gdGhlIGJvb3QgcHJvdG9jb2wgdGhhdCBndWFyYW50ZWUgYWxsIHRo
ZSBlbnRyaWVzIHdpbGwgYmUgaW52YWxpZD8gSWYgbm90LCB0aGVuIEkgdGhpbmsgd2UgbmVlZCB0
byBjbGVhciB0aGUgZW50cmllcy4NCj4+PiANCj4+PiBPdGhlcndpc2UsIHlvdXIgY3VycmVudCBs
b2dpYyBkb2Vzbid0IHdvcmsuIFRoYXQgc2FpZCwgSSB0aGluayBpdCB3b3VsZCBzdGlsbCBiZSBu
ZWNlc3NhcnkgZXZlbiBpZiB3ZSBnZXQgcmlkIG9mIHlvdXIgbG9naWMgYmVjYXVzZSB3ZSBkb24n
dCBrbm93IHRoZSBjb250ZW50IG9mIHRoZSBNUFUgZW50cmllcy4NCj4+IFRoZSBQUkxBUi5FTiBi
aXQgcmVzZXRzIHRvIHplcm8gb24gYSB3YXJtIHJlc2V0LCBzbyBhbnkgcmVnaW9uIHdpbGwgYmUg
YWx3YXlzIGRpc2FibGVkIHVubGVzcyBwcm9ncmFtbWVkLCBJIHRob3VnaHQgaXQgaXMgZW5vdWdo
Lg0KPiANCj4gVGhpcyBpcyBvbmx5IHRlbGxpbmcgbWUgdGhlIHN0YXRlIFBSTEFSLkVOIHdoZW4g
dGhlIENQVSBpcyBpbml0aWFsbHkgdHVybiBvbi4gVGhpcyBkb2Vzbid0IHRlbGwgbWUgdGhlIHZh
bHVlIG9mIHRoZSBiaXQgd2hlbiBqdW1waW5nIGluIFhlbi4NCj4gDQo+IEkgYW0gbWFraW5nIHRo
ZSBkaWZmZXJlbmNlIGJlY2F1c2UgdGhlcmUgbWlnaHQgYmUgYW5vdGhlciBzb2Z0d2FyZSBydW5u
aW5nIGF0IEVMMiBiZWZvcmUganVtcGluZyBpbnRvIFhlbiAoZS5nLiBib290bG9hZGVyLCBvciBl
dmVuIGEgcHJldmlvdXMgWGVuIGlmIHdlIHdlcmUgdXNpbmcgS2V4ZWMpIHdoaWNoIGNvdWxkIHVz
ZSB0aGUgTVBVLg0KPiANCj4gU28gSSBhbSBsb29raW5nIGZvciBzb21lIGRldGFpbHMgb24gaG93
IHRoZSBleHBlY3RlZCBzdGF0ZSBvZiB0aGUgc3lzdGVtIHdoZW4ganVtcGluZyB0byBhbiBPUy9o
eXBlcnZpc29yLiBGb3IgYSBjb21wYXJpc29uLCBvbiB0aGUgTU1VIHNpZGUsIHdlIGhhdmUgdGhl
IExpbnV4IGFybTY0IEltYWdlIHByb3RvY29sIHRoYXQgd2lsbCBzcGVjaWZpYyBob3cNCj4gYSBi
b290bG9hZGVyIG5lZWRzIHRvIGNvbmZpZ3VyZSB0aGUgc3lzdGVtLg0KDQpPayBJIG5vdyB1bmRl
cnN0YW5kIHRoZSBxdWVzdGlvbiwgc28gSSB0aGluayB3ZSBzdGlsbCBjb3VsZCB1c2UgdGhlIExp
bnV4IGFybTY0IEltYWdlIHByb3RvY29sLCBidXQgd2Ugd2lsbCBuZWVkIHRvIGRlZmluZSB3aGF0
IHdlIGV4cGVjdCBmb3IgdGhlIE1QVSwgaXMgZG9jcy9taXNjL2FybS9ib290aW5nLnR4dA0KdGhl
IHJpZ2h0IHBsYWNlIGZvciBpdD8gU2hhbGwgd2Ugc3RhcnQgYSBkaWZmZXJlbnQgdGhyZWFkPw0K
DQpTbyBJIGNvdWxkIHVzZSB5b3VyIGhlbHAgdG8gZGVmaW5lIGl0IGluIHRoZSBiZXN0IHdheSBw
b3NzaWJsZSwgc2luY2UgdW5mb3J0dW5hdGVseSB3ZSBkb27igJl0IGhhdmUgYW55dGhpbmcgYXZh
aWxhYmxlLg0KVGhlIG9ubHkgaW1wbGVtZW50YXRpb24gb2YgYSBib290bG9hZGVyIGlzIHRoZSBi
b290LXdyYXBwZXItYWFyY2g2NCB3aGljaCBrZWVwcyB0aGUgTVBVIG9mZiwgSS9EIGNhY2hlIG9m
Zi4NCg0KU28gc2hhbGwgd2UgYWRkIGluIHRoZSAiRmlybXdhcmUvYm9vdGxvYWRlciByZXF1aXJl
bWVudHPigJ0gdGhhdCBvbiBBcm12OC1SIHdlIHNob3VsZCBlbnRlciBYZW4gd2l0aCBNUFUgb2Zm
IGFuZCBEIGNhY2hlIG9mZiwNClhlbiBzaGFsbCB1c2Ugc3Bpbi10YWJsZSBhcyBlbmFibGUgbWV0
aG9kIGZvciB0aGUgQ1BVcz8NCg0KV2Ugc2hvdWxkIGNsZWFyIGFsbCB0aGUgYXZhaWxhYmxlIE1Q
VSByZWdpb24gYmVmb3JlIGVuYWJsaW5nIHRoZSBNUFUgdGhlbi4NCg0KUGxlYXNlIGxldCBtZSBr
bm93IHlvdXIgdGhvdWdodHMuDQoNCkNoZWVycywNCkx1Y2ENCg0K


From xen-devel-bounces@lists.xenproject.org Tue Apr 15 11:11:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 11:11:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.953632.1348097 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4eCT-0005C1-Jf; Tue, 15 Apr 2025 11:11:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 953632.1348097; Tue, 15 Apr 2025 11:11: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 1u4eCT-0005Bu-Gj; Tue, 15 Apr 2025 11:11:33 +0000
Received: by outflank-mailman (input) for mailman id 953632;
 Tue, 15 Apr 2025 11:11: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=1sCo=XB=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1u4eCS-0004Nl-6b
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 11:11:32 +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 621379b2-19ea-11f0-9eae-5ba50f476ded;
 Tue, 15 Apr 2025 13:11:31 +0200 (CEST)
Received: by mail-ej1-x633.google.com with SMTP id
 a640c23a62f3a-ac7bd86f637so1256342666b.1
 for <xen-devel@lists.xenproject.org>; Tue, 15 Apr 2025 04:11:31 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-64-225.play-internet.pl.
 [109.243.64.225]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-acaa1ccd262sm1082883666b.136.2025.04.15.04.11.29
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 15 Apr 2025 04:11:29 -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: 621379b2-19ea-11f0-9eae-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1744715490; x=1745320290; darn=lists.xenproject.org;
        h=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=OlLkZi8dzBXUJ+OMNFVmRzlev+bJ8+E4B1Co6/3jaLE=;
        b=b6nchOtMS59Y4RxbmEDbLsQiR9bPMtlLcZ/iMkRV6nZeuaQORvEG6AVZd7KXk3iEk7
         khNHr6WTLQNeYdMJYjvtsUrKTeeEVzTL6ZwXT/R+L1SbaeERlo4oTcUgnoU0Q+06mi3a
         fX1Fr4HZJE0piu4QNmwQ4HGc0HQp4m5kZ4W8rxYXAsnvt5qpw46usQUArHfHfBHjcWvh
         xVqHgQAsgosECBqgxsLGxcVSo1vbQhZ/kpJZz728IPZKBUQAd2XnlminlNuygTRAQD1T
         WjKykdE8a2rG03oyTh4O2xvk9cH5OK4xpScqlI8avQCTGzeLKH+HLOuQTBEdMDHunrl5
         NoJQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744715490; x=1745320290;
        h=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=OlLkZi8dzBXUJ+OMNFVmRzlev+bJ8+E4B1Co6/3jaLE=;
        b=YT1FYshePItZHNutfmRdS5xA1eZWdHRwDz7yLpsaMrwiaEqVFn/uYnHgpPfpMVhxf3
         ds6r1t01MrA3jZFcxCp6GIZnwbCFvNGvxVFkO3txsuPlOQCj0dYXuxPLdgQ9i4CvI1yT
         qwWRGkQ2HPrLaoyeKkuZ2sD+ifFOpgI4SGXmvj/NIf5tM994AAEQEozWmOea142tmh9M
         dc8hgUPus6NeeduV2VisZqsT0hS060GE/6ZJrGaGL8C6U1gu+YByIpm3sXFsXfNL0LCu
         4r8uyf1oxAVWpvAkB/SoJqDzqmhJzfZXnWXmjUXphGmBKxWIY7ZLHuz06k4MiCH6Xua4
         9reg==
X-Forwarded-Encrypted: i=1; AJvYcCVlnCvTXS+PVV5PV3sMe2fDhZRNRLlhq6bzXNxVHdZ38UqKtkaeSmA++tdwkvjLZDgnLKuEcINYg6o=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxwXKhbzB+ZaZWjWybgyKw55iQuhEzdJz9yAedvlGQ29RZZmPBC
	W8Q0Vp1DiYORHcL78v87J8nqzDLeJCyLf1dgcAPyk9bbsUnEDnEq
X-Gm-Gg: ASbGncutrOJnr/6PaZxmpZ5v6GTAt2solnEYQ0/ABv/PauARAh8IvqFZkwUV8i0yyrg
	RLiiv7zAwKJR5bLJMhO+LoL0x8+4U3Vu7mgW23KbvSCnCnyBfd+RVrh6JNMPUBDTNfrkFNC5bPO
	efDac8o4XzH8G6vD/15CLBQhVPrOdFBgXCWPBCp2EtDZ0Bp3XyYzzP4DnKYV4E6tw5hLYu6ZKF0
	Qxi/j9m7a3qjjVQgpauQymOHjZhE+W4MoOE/yJ+wXVM19Lwwc6iHae1IOUUtmvLzc6rGZS+/otB
	eIPf1VLrUtiYiybqlhN/WWLgFREGOd79SNQisgFF3RgMRu8UJXWDZzSiEkG0l5JU2O3JKKGlPEg
	/jak5+p/yI/PQbSMo
X-Google-Smtp-Source: AGHT+IFYyu/G/ANLrcBK6FAoYKFn3uaheg0YWlGmj8WUA6ghYS1wxzwpxth3ZPuhNe2b/KsXp8RBJg==
X-Received: by 2002:a17:907:8688:b0:abf:48df:bf07 with SMTP id a640c23a62f3a-acb166c9e62mr278353266b.15.1744715490072;
        Tue, 15 Apr 2025 04:11:30 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------WT7fz8BB3YdWm7JzDmyQtgpB"
Message-ID: <16139d54-fc6f-4ecb-9b3e-ea1e110a1f0d@gmail.com>
Date: Tue, 15 Apr 2025 13:11:28 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 05/14] xen/riscv: introduce platform_get_irq()
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Romain Caritey <Romain.Caritey@microchip.com>, xen-devel@lists.xenproject.org
References: <cover.1744126720.git.oleksii.kurochko@gmail.com>
 <6c6e7482cc3b0332f5724c80bf16931fe2d793ae.1744126720.git.oleksii.kurochko@gmail.com>
 <31de00cb-b3b4-4d15-a128-930dc1c7ccdf@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <31de00cb-b3b4-4d15-a128-930dc1c7ccdf@suse.com>

This is a multi-part message in MIME format.
--------------WT7fz8BB3YdWm7JzDmyQtgpB
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 4/10/25 5:35 PM, Jan Beulich wrote:
> On 08.04.2025 17:57, Oleksii Kurochko wrote:
>> @@ -21,6 +22,22 @@ static struct intc_info __ro_after_init aplic_info = {
>>       .hw_version = INTC_APLIC,
>>   };
>>   
>> +static int aplic_irq_xlate(const uint32_t *intspec, unsigned int intsize,
> As you start adding functions calling indirectly, please consider adding cf_check
> right away, even if right now this has no effect on RISC-V. That'll save you from
> going through the entire RISC-V subtree later on to find them all.

Sure. I thought that it is a feature for x86 as I haven't seen such attribute for
Arm and RISC-V in GCC manuals.

>
>> +                           unsigned int *out_hwirq,
>> +                           unsigned int *out_type)
>> +{
>> +    if ( intsize < 2 )
>> +        return -EINVAL;
>> +
>> +    /* Mapping 1:1 */
>> +    *out_hwirq = intspec[0];
>> +
>> +    if ( out_type )
>> +        *out_type = intspec[1] & IRQ_TYPE_SENSE_MASK;
>> +
>> +    return 0;
>> +}
>> +
>>   static int __init aplic_preinit(struct dt_device_node *node, const void *dat)
>>   {
>>       if ( aplic_info.node )
>> @@ -35,6 +52,8 @@ static int __init aplic_preinit(struct dt_device_node *node, const void *dat)
>>   
>>       aplic_info.node = node;
>>   
>> +    dt_irq_xlate = aplic_irq_xlate;
>> +
>>       return 0;
>>   }
>>   
>> --- a/xen/arch/riscv/include/asm/irq.h
>> +++ b/xen/arch/riscv/include/asm/irq.h
>> @@ -47,6 +47,9 @@ static inline void arch_move_irqs(struct vcpu *v)
>>       BUG_ON("unimplemented");
>>   }
>>   
>> +struct dt_device_node;
>> +int platform_get_irq(const struct dt_device_node *device, int index);
> And I assume callers of this will appear later in the series.

Yes, it will be called ns16550_uart_dt_init() when CONFIG_NS16550 will be enabled for RISC-V.

>
>> --- a/xen/arch/riscv/irq.c
>> +++ b/xen/arch/riscv/irq.c
>> @@ -7,11 +7,52 @@
>>    */
>>   
>>   #include <xen/bug.h>
>> +#include <xen/device_tree.h>
>> +#include <xen/errno.h>
>>   #include <xen/init.h>
>>   #include <xen/irq.h>
>>   
>>   static irq_desc_t irq_desc[NR_IRQS];
>>   
>> +static bool irq_validate_new_type(unsigned int curr, unsigned int new)
>> +{
>> +    return (curr == IRQ_TYPE_INVALID || curr == new );
>> +}
>> +
>> +static int irq_set_type(unsigned int irq, unsigned int type)
>> +{
>> +    unsigned long flags;
>> +    struct irq_desc *desc = irq_to_desc(irq);
>> +    int ret = -EBUSY;
>> +
>> +    spin_lock_irqsave(&desc->lock, flags);
>> +
>> +    if ( !irq_validate_new_type(desc->arch.type, type) )
>> +        goto err;
>> +
>> +    desc->arch.type = type;
>> +
>> +    ret = 0;
>> +
>> +err:
> Labels indented by at least one blank please.
>
>> +    spin_unlock_irqrestore(&desc->lock, flags);
>> +
>> +    return ret;
>> +}
>> +
>> +int platform_get_irq(const struct dt_device_node *device, int index)
>> +{
>> +    struct dt_irq dt_irq;
>> +
>> +    if ( dt_device_get_irq(device, index, &dt_irq) )
>> +        return -1;
>> +
>> +    if ( irq_set_type(dt_irq.irq, dt_irq.type) )
>> +        return -1;
> Can you please return proper -E... values, perhaps ones coming back from the
> functions called?

Sure, I will use -EINVAL. (or ,perhaps, it  will be better to introduce ret and
return what dt_device_get_irq()/irq_set_type() returns in the case of failure.

~ Oleksii

--------------WT7fz8BB3YdWm7JzDmyQtgpB
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 4/10/25 5:35 PM, Jan Beulich wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:31de00cb-b3b4-4d15-a128-930dc1c7ccdf@suse.com">
      <pre wrap="" class="moz-quote-pre">On 08.04.2025 17:57, Oleksii Kurochko wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">@@ -21,6 +22,22 @@ static struct intc_info __ro_after_init aplic_info = {
     .hw_version = INTC_APLIC,
 };
 
+static int aplic_irq_xlate(const uint32_t *intspec, unsigned int intsize,
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
As you start adding functions calling indirectly, please consider adding cf_check
right away, even if right now this has no effect on RISC-V. That'll save you from
going through the entire RISC-V subtree later on to find them all.</pre>
    </blockquote>
    <pre>Sure. I thought that it is a feature for x86 as I haven't seen such attribute for
Arm and RISC-V in GCC manuals.

</pre>
    <blockquote type="cite"
      cite="mid:31de00cb-b3b4-4d15-a128-930dc1c7ccdf@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+                           unsigned int *out_hwirq,
+                           unsigned int *out_type)
+{
+    if ( intsize &lt; 2 )
+        return -EINVAL;
+
+    /* Mapping 1:1 */
+    *out_hwirq = intspec[0];
+
+    if ( out_type )
+        *out_type = intspec[1] &amp; IRQ_TYPE_SENSE_MASK;
+
+    return 0;
+}
+
 static int __init aplic_preinit(struct dt_device_node *node, const void *dat)
 {
     if ( aplic_info.node )
@@ -35,6 +52,8 @@ static int __init aplic_preinit(struct dt_device_node *node, const void *dat)
 
     aplic_info.node = node;
 
+    dt_irq_xlate = aplic_irq_xlate;
+
     return 0;
 }
 
--- a/xen/arch/riscv/include/asm/irq.h
+++ b/xen/arch/riscv/include/asm/irq.h
@@ -47,6 +47,9 @@ static inline void arch_move_irqs(struct vcpu *v)
     BUG_ON("unimplemented");
 }
 
+struct dt_device_node;
+int platform_get_irq(const struct dt_device_node *device, int index);
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
And I assume callers of this will appear later in the series.</pre>
    </blockquote>
    <pre>Yes, it will be called ns16550_uart_dt_init() when CONFIG_NS16550 will be enabled for RISC-V.

</pre>
    <blockquote type="cite"
      cite="mid:31de00cb-b3b4-4d15-a128-930dc1c7ccdf@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">--- a/xen/arch/riscv/irq.c
+++ b/xen/arch/riscv/irq.c
@@ -7,11 +7,52 @@
  */
 
 #include &lt;xen/bug.h&gt;
+#include &lt;xen/device_tree.h&gt;
+#include &lt;xen/errno.h&gt;
 #include &lt;xen/init.h&gt;
 #include &lt;xen/irq.h&gt;
 
 static irq_desc_t irq_desc[NR_IRQS];
 
+static bool irq_validate_new_type(unsigned int curr, unsigned int new)
+{
+    return (curr == IRQ_TYPE_INVALID || curr == new );
+}
+
+static int irq_set_type(unsigned int irq, unsigned int type)
+{
+    unsigned long flags;
+    struct irq_desc *desc = irq_to_desc(irq);
+    int ret = -EBUSY;
+
+    spin_lock_irqsave(&amp;desc-&gt;lock, flags);
+
+    if ( !irq_validate_new_type(desc-&gt;arch.type, type) )
+        goto err;
+
+    desc-&gt;arch.type = type;
+
+    ret = 0;
+
+err:
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Labels indented by at least one blank please.

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+    spin_unlock_irqrestore(&amp;desc-&gt;lock, flags);
+
+    return ret;
+}
+
+int platform_get_irq(const struct dt_device_node *device, int index)
+{
+    struct dt_irq dt_irq;
+
+    if ( dt_device_get_irq(device, index, &amp;dt_irq) )
+        return -1;
+
+    if ( irq_set_type(dt_irq.irq, dt_irq.type) )
+        return -1;
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Can you please return proper -E... values, perhaps ones coming back from the
functions called?</pre>
    </blockquote>
    <pre>Sure, I will use -EINVAL. (or ,perhaps, it  will be better to introduce ret and
return what dt_device_get_irq()/irq_set_type() returns in the case of failure.

</pre>
    <pre>~ Oleksii
</pre>
  </body>
</html>

--------------WT7fz8BB3YdWm7JzDmyQtgpB--


From xen-devel-bounces@lists.xenproject.org Tue Apr 15 11:12:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 11:12:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.953651.1348108 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4eDo-0006JP-2X; Tue, 15 Apr 2025 11:12:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 953651.1348108; Tue, 15 Apr 2025 11:12:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4eDn-0006JG-UU; Tue, 15 Apr 2025 11:12:55 +0000
Received: by outflank-mailman (input) for mailman id 953651;
 Tue, 15 Apr 2025 11:12: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=ai1O=XB=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u4eDm-0006J3-Rh
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 11:12:54 +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 93860b41-19ea-11f0-9eae-5ba50f476ded;
 Tue, 15 Apr 2025 13:12:53 +0200 (CEST)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-43d07ca6a80so25784835e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 15 Apr 2025 04:12:53 -0700 (PDT)
Received: from [10.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-43f204c500bsm214506275e9.0.2025.04.15.04.12.52
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 15 Apr 2025 04:12:52 -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: 93860b41-19ea-11f0-9eae-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744715573; x=1745320373; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=jDdI8MdXwll1K4LJK1H0y7rVkGm3Yd4SWMdwH75ZV1g=;
        b=C9Kci9EB8SF6lhJsXeJ/GommEJdu6f9Y8ue/AxeO7MUOLW0vJFFy/+MDT+rnJQ6EKk
         4ENMlB0HWHuPn8jZpqn7UFSBb601bFivYMCv5RVFGaHE3LKtKQC0odQPRAzX2ZjhMcgb
         kq+Vbi6b8cToPbbyfJAhRSog2vK2bRzzlh5nbcePwkTCOGY5kQqJxuzOuBrd/y02g7p9
         4CHgzk8JKDdUjwk1pE2LRMs8jMhT6Q/a3ISqLLiviOd2vC5tt7Sm0JfbI938wqtQegfq
         OIeIwoWS4hhZH9kRh8gI5k4iVdRbvYUiFefPtPg2IrtOYTBD5MLAFq0XgSdE9ez+dO8q
         bZFA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744715573; x=1745320373;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=jDdI8MdXwll1K4LJK1H0y7rVkGm3Yd4SWMdwH75ZV1g=;
        b=wpq+DUXdLajlSohI7HhBG3ttl+xuIX3MdO1neRdbvQMTpqbWF+PMDujLCq+91HYD++
         Cxm7EnTnpEd1GP5g0CRZjAFUlDqo5nF9I6idGhFvxCeVk8sHT5Djs+i1pi0zQI151dDa
         V/W5AvQzwe4JAMc0Qy51zcI23oWwXD8vscaszu/4BGiOefS3SmRXHITqbOOUgcS3zme5
         dqrc9X8cx03CAKkHNmWc4V/7vvERIaLEtBsOs/qCwIVXB0fRJ0pd9GolgPQR1VJ3MQEP
         vhwpxyDq4zhTs1ITNFR2P9V3gyEvhdRvgWNZSHGrWURQfJ/QqxhQ9H2giPCbiY12JAAe
         NtrA==
X-Forwarded-Encrypted: i=1; AJvYcCWtRBdpGNC/+nqDU0jIH8xDBeOmSr0iOfEF0C/+zeDYeDSkSkk1aA3elNwc4WPzhDC1NDOp0zMfCcA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxOgJejMF+Fgg1GjW5njMu6+v0hpyRNO5RHJVQQVmfcd7Lnptmj
	cBWkfWPA1crhc/kmhEqKhIZ5z4zFTfNU9mCaMS09xPE+f47vZTISkO1tgulQvg==
X-Gm-Gg: ASbGncu1O2OtybT7Jjl+FeOz3bYjwMXPqVPQ8ZhCH3qjBxd1BF95LrTlBbRkmnCjSBw
	wtdFeRl32KsVkPnt6trfedBpCgkiV/PQ0WiGapYiqGxQ/qswGW33qJattmGyw9hGAEthpyCNcj/
	hCH31oETyX/zz8OAU4VHJCahmFNcWIY/0//YZVzIHL+XXDDK4tMXvcO1c1g1gMPlteOvuKE8K8T
	THNThAD/txP92brYW6AqU9HVRtMJyKInw7bL0eHMDnOWKUnEdn3G6b2HJvp8yJQIYrSWOGh/sfi
	EnIdj8i6j2vPJO40GALz60TovSB2pEkpBoXggYt3Hjdi0WO4R89g/4LNYOg7kWCF7txcaGrPGdu
	M7MNvuNJsOhsOBLqUXNNxlu6T0A==
X-Google-Smtp-Source: AGHT+IEyNTMio2FiflKOuRaRu0N3PgiccXYuUcw+9K538QVDKI5zFZDeITfMBPcvG69HSMfRQNVr9A==
X-Received: by 2002:a05:600c:500e:b0:43d:7588:667b with SMTP id 5b1f17b1804b1-43f3a93ca20mr168528415e9.10.1744715573161;
        Tue, 15 Apr 2025 04:12:53 -0700 (PDT)
Message-ID: <8f2f9dab-a7db-42a5-a359-ef45a64cd065@suse.com>
Date: Tue, 15 Apr 2025 13:12:52 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 3/3] drivers: Make ioapic_sbdf and hpet_sbdf contain
 pci_sbdf_t
To: Andrii Sultanov <sultanovandriy@gmail.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: <cover.1744657012.git.andriy.sultanov@vates.tech>
 <af7536c3234bc7a9d048b4cb1d45f084b4343bdb.1744657012.git.andriy.sultanov@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: <af7536c3234bc7a9d048b4cb1d45f084b4343bdb.1744657012.git.andriy.sultanov@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 14.04.2025 21:19, Andrii Sultanov wrote:
> @@ -748,6 +746,7 @@ static u16 __init parse_ivhd_device_special(
>  {
>      u16 dev_length, bdf;
>      unsigned int apic, idx;
> +    pci_sbdf_t sbdf;

Why does bdf need keeping around here?

> @@ -335,20 +336,18 @@ void cf_check amd_iommu_ioapic_update_ire(
>      new_rte.raw = rte;
>  
>      /* get device id of ioapic devices */
> -    bdf = ioapic_sbdf[idx].bdf;
> -    seg = ioapic_sbdf[idx].seg;
> -    iommu = find_iommu_for_device(PCI_SBDF(seg, bdf));
> +    sbdf = ioapic_sbdf[idx].sbdf;
> +    iommu = find_iommu_for_device(sbdf);
>      if ( !iommu )
>      {
> -        AMD_IOMMU_WARN("failed to find IOMMU for IO-APIC @ %04x:%04x\n",
> -                       seg, bdf);
> +        AMD_IOMMU_WARN("failed to find IOMMU for IO-APIC @ %pp\n", &sbdf);

Hmm, this one's somewhat questionable: An IO-APIC isn't a PCI device, so
making its "coordinates" look like one can be confusing.

> @@ -369,7 +368,8 @@ unsigned int cf_check amd_iommu_read_ioapic_from_ire(
>      unsigned int offset;
>      unsigned int val = __io_apic_read(apic, reg);
>      unsigned int pin = (reg - 0x10) / 2;
> -    uint16_t seg, bdf, req_id;
> +    pci_sbdf_t sbdf;
> +    uint16_t req_id;
>      const struct amd_iommu *iommu;
>      union irte_ptr entry;
>  
> @@ -381,12 +381,11 @@ unsigned int cf_check amd_iommu_read_ioapic_from_ire(
>      if ( offset >= INTREMAP_MAX_ENTRIES )
>          return val;
>  
> -    seg = ioapic_sbdf[idx].seg;
> -    bdf = ioapic_sbdf[idx].bdf;
> -    iommu = find_iommu_for_device(PCI_SBDF(seg, bdf));
> +    sbdf = ioapic_sbdf[idx].sbdf;
> +    iommu = find_iommu_for_device(sbdf);
>      if ( !iommu )
>          return val;
> -    req_id = get_intremap_requestor_id(seg, bdf);
> +    req_id = get_intremap_requestor_id(sbdf.seg, sbdf.bdf);
>      entry = get_intremap_entry(iommu, req_id, offset);
>  
>      if ( !(reg & 1) )

Is a local variable here warranted in the first place?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 15 11:23:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 11:23:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.953669.1348117 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4eNk-0000IW-UZ; Tue, 15 Apr 2025 11:23:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 953669.1348117; Tue, 15 Apr 2025 11: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 1u4eNk-0000IP-Rz; Tue, 15 Apr 2025 11:23:12 +0000
Received: by outflank-mailman (input) for mailman id 953669;
 Tue, 15 Apr 2025 11: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=ai1O=XB=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u4eNi-0000IE-Vu
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 11:23:10 +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 0224577a-19ec-11f0-9eae-5ba50f476ded;
 Tue, 15 Apr 2025 13:23:09 +0200 (CEST)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-43d0618746bso41879105e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 15 Apr 2025 04:23:09 -0700 (PDT)
Received: from [10.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-43f23572c38sm207139645e9.32.2025.04.15.04.23.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 15 Apr 2025 04:23: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: 0224577a-19ec-11f0-9eae-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744716188; x=1745320988; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=/i5hE4OADgvjPStn1D42+mVG0FXCCZTURSG3ANRzQkE=;
        b=TIJNn+4PzWBFQPsoghhsO7roIa+jcebck1EKlW3x9PUVOmWQmn+BNbi5SdcA1jVbBR
         IGKZdB2hPLAMeD+2bcNTrnRL4mjDEwbtPyquNN8Wr7RMq72IgqHHsmmX79mE/qXs1VQd
         jLVWg9YzvEz29mzcoZWVBYCBxetdo3OMTQ48rVcKmd3mLrpbo5gtX21bRzTD5q4DrmQ4
         zgn84wu8/vdGY58nF6ypMTNjao6621plivHKWuQbEgiiOQGm1vvKaMF37dk6On8bIuWd
         tppNicHJTMdPqMGmI53gzRZjZk71sFkamTd2iH0y5H7wpjTlZaE8pyyQFQ0L4BO1X8qT
         tBuw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744716188; x=1745320988;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=/i5hE4OADgvjPStn1D42+mVG0FXCCZTURSG3ANRzQkE=;
        b=VBoKpF2idIkNq89YC2RlkDFIJyHnS01O5HuzdfeXtF2nOPJefKtynFHGelObzSVCZ5
         0JumUIISKPl7oJQJz8bWc6BCxG2aTX8HZhAuEgrs/xkk8P8ISlhCqRetRSkQdoG9mqgi
         5GVSEAltzYKYPNx7se4qT9Q4W+MJlAS1JxhsgawKS4PE6dBEWQJeDrC/UIKgHlHeDk4N
         mzeYcDbju45dE5t1MAalQUD+kfGwR6kl/HByMLNPqSWGfogaP/3Bh0pJuBpY0J+GA1m/
         ox12+OmaAugrPvi5R1SIHfbr9tGaHlDPx1DUw99XMJCbpyMoHy3VKG4wpJawAQIzhz28
         DqpQ==
X-Forwarded-Encrypted: i=1; AJvYcCWGh0X3a/mdcdyT5iPqrCn3LCTqufMA7fQtg5DlUh0eMUWvmSK1J2cQMJkZfrKUDpoufvDE3FQmPpA=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx/fmyipAt9M6zKXBoJdIRKZCI+bkhUkThVzHsYEMLE+2XMVio4
	jwfP1mtiM1jgfFQYC93SxoQE6/5QvDo4oJJUNnBi+KaTLOTb47yRoD7WZeGhpg==
X-Gm-Gg: ASbGncvbo0PPdu++wMBC0lMRQ+2doiw+0uzkPPsUihGA6UEeLwSWu/EcSgPN8ONir88
	Tm96VtYwu2wzZX5wBC+Djtfu98lk/SehpznQVDWuTUUMYkllZl3Xv50jft0qcbhTBOuX/qLvu1+
	RknjDTzrTR2jC57iJcSiMYfL0OkElhK8QOSAhCad6BznLMGKLepww0R36DYAXPMOMO6oE8KqvNZ
	9b04n5qRunvTBrayOlp0foc+jwmHYvO01nBbrwVp20iXpBWuYFv0B+63sFaC0SFuuDPboaZF2Mo
	QgCpRiV4BBKrWMmulMhcHgyuc6059yTmaAVQlSmcIWHkoN0nltsuU99ZI0LplIkxEjyG9M7hjHm
	E8GI5tvUVYvVlvGSyUh0vMjDTXrcgz4X8hzLv
X-Google-Smtp-Source: AGHT+IEOOg7sk9jlC8aYAivLEqasAEGiX7jCiLOTrNfm4KQfOcFwHbTBUm6Uc/LwJzjVs17KLwB8jw==
X-Received: by 2002:a05:600c:5494:b0:43d:10c:2f60 with SMTP id 5b1f17b1804b1-43f3a9ab0c2mr117201425e9.24.1744716188127;
        Tue, 15 Apr 2025 04:23:08 -0700 (PDT)
Message-ID: <664560b3-400d-485c-b50b-0614f0a3e49e@suse.com>
Date: Tue, 15 Apr 2025 13:23:06 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 05/14] xen/riscv: introduce platform_get_irq()
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Romain Caritey <Romain.Caritey@microchip.com>, xen-devel@lists.xenproject.org
References: <cover.1744126720.git.oleksii.kurochko@gmail.com>
 <6c6e7482cc3b0332f5724c80bf16931fe2d793ae.1744126720.git.oleksii.kurochko@gmail.com>
 <31de00cb-b3b4-4d15-a128-930dc1c7ccdf@suse.com>
 <16139d54-fc6f-4ecb-9b3e-ea1e110a1f0d@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: <16139d54-fc6f-4ecb-9b3e-ea1e110a1f0d@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 15.04.2025 13:11, Oleksii Kurochko wrote:
> On 4/10/25 5:35 PM, Jan Beulich wrote:
>> On 08.04.2025 17:57, Oleksii Kurochko wrote:
>>> @@ -21,6 +22,22 @@ static struct intc_info __ro_after_init aplic_info = {
>>>       .hw_version = INTC_APLIC,
>>>   };
>>>   
>>> +static int aplic_irq_xlate(const uint32_t *intspec, unsigned int intsize,
>> As you start adding functions calling indirectly, please consider adding cf_check
>> right away, even if right now this has no effect on RISC-V. That'll save you from
>> going through the entire RISC-V subtree later on to find them all.
> 
> Sure. I thought that it is a feature for x86 as I haven't seen such attribute for
> Arm and RISC-V in GCC manuals.

And that looks to be correct. I was under the (admittedly vague) impression
Arm64 had something equivalent in hardware, which then merely needs enabling
in the compiler. Not sure about RISC-V, but seeing the endless flow of
patches enabling new extensions in binutils, it would perhaps even be
surprising if nothing along these lines was already in the works somewhere.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 15 11:25:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 11:25:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.953679.1348128 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4eQF-00013Z-Br; Tue, 15 Apr 2025 11:25:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 953679.1348128; Tue, 15 Apr 2025 11: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 1u4eQF-00013S-7m; Tue, 15 Apr 2025 11:25:47 +0000
Received: by outflank-mailman (input) for mailman id 953679;
 Tue, 15 Apr 2025 11:25: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=mbqe=XB=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1u4eQD-00013M-Eq
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 11:25:45 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on2062e.outbound.protection.outlook.com
 [2a01:111:f403:2415::62e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5b512903-19ec-11f0-9ffb-bf95429c2676;
 Tue, 15 Apr 2025 13:25:39 +0200 (CEST)
Received: from BN9PR12MB5273.namprd12.prod.outlook.com (2603:10b6:408:11e::22)
 by DS0PR12MB9398.namprd12.prod.outlook.com (2603:10b6:8:1b3::19) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.31; Tue, 15 Apr
 2025 11:25:36 +0000
Received: from BN9PR12MB5273.namprd12.prod.outlook.com
 ([fe80::cf66:58ab:47be:4b13]) by BN9PR12MB5273.namprd12.prod.outlook.com
 ([fe80::cf66:58ab:47be:4b13%5]) with mapi id 15.20.8632.036; Tue, 15 Apr 2025
 11:25: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: 5b512903-19ec-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=byfxC0yYTNv4oW9FmBGU9AVZE8dhZorAC6iMC0n1iekkrFqzZfnJeN+i7tMqpVJf9MgIBneKOb2SZwkEaCYYKmwX+pTrz1ZEWusGjtqEcrbrscmQo3+cDTP5S7cw08drWZpbrrTh/Tc4quVEMEIckr65Peg2qJI/XJZUWHC8V5zoDb9wOMP188WwgbWChJr3YtVhhyfl6KTEIffEWWC+oubvuDLsrAVKpdglMyD/q6sOYGICs5eAa4GGHDJtgw4JhLxYLNOYV2DTKrr6N9Xoay68oUvBeKu5KQjsLcI8e/wBAeMqcdDjJVdBJ/ZYaQ4TVhpm8A++EAiER6m9MS42/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=aF0X0EOR7KbMeuIcbzNNJTOzpB6njaxE1Lpwg1TlxSs=;
 b=l73jRp5aC1mHlssdl9Yfl/1PjAX/EVSgajAsJwfeQ1OdbzFIlsRCIZpJt9B53BUwSCOnbgB4nNz5Y1eTftLgR59WLNazII0JiJksozkkg2BKyxP2p0Rlec2u90m5kBUJ5+28f2kOKsWtJLvmA6dhT+hC27Tjlz6aKVvjAIiIEpyCpfddma+9ia2tK3JM4SWS2+YgmLCPXd07ivdIfd/GjuLhOjf6IkolVAXH5OEk9Wjjz6tNRNRijPK7UemmUG9x5YFaMvUKzPIxvKIKWTuq9iTGRzl290jMblgTbMin/hJ2acKMevAA896HZdqDyK3fEz9u1vS/hnzXe+3HJ0vZLg==
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=aF0X0EOR7KbMeuIcbzNNJTOzpB6njaxE1Lpwg1TlxSs=;
 b=CPt2ZoCMfseGx2r8KgiVwK91zfy9tjUid/qRNH5CS7sP4aUUd2vVTVZqWV5rqiI2REC7Xhl1I5n3oZih/Jf3GyrFNG8uS0dXQAK+WCXmN84uanVOPyCcGP3KNDz2rSn0QC1O0ahBhJ5pWWTd7H6G/zqCx+8z2nza7sknu7tOb2M=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <105b0e9c-6991-445f-af36-6e76a916a15a@amd.com>
Date: Tue, 15 Apr 2025 13:25:33 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 7/7] arm/mpu: Implement setup_mpu for MPU system
To: Luca Fancellu <Luca.Fancellu@arm.com>, 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>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <20250411145655.140667-1-luca.fancellu@arm.com>
 <20250411145655.140667-8-luca.fancellu@arm.com>
 <923a2fc0-4eeb-4e09-a56d-7471a56fe3bf@xen.org>
 <4771188E-B307-4452-A900-2ACACC1CE333@arm.com>
 <fcacc6b6-ea4b-4917-ac46-5264ac3e4039@xen.org>
 <A053DC71-B301-4D64-8EDB-C225E2ED3FA7@arm.com>
 <9eec0359-e9e9-4d38-abc0-3cde6eb94e3b@xen.org>
 <0CED25FD-5706-420A-BDB7-EB36BB7FEE71@arm.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <0CED25FD-5706-420A-BDB7-EB36BB7FEE71@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: FR3P281CA0049.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:4a::22) To BN9PR12MB5273.namprd12.prod.outlook.com
 (2603:10b6:408:11e::22)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN9PR12MB5273:EE_|DS0PR12MB9398:EE_
X-MS-Office365-Filtering-Correlation-Id: 517b0357-3cc4-4f3a-2ae9-08dd7c103e40
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?MExnTHMyYUhMVXVpVXovNDhadEZCYXM4MURZeGJRZzZBRnBuV1ZCTXYvcWE1?=
 =?utf-8?B?T05ZL0xRQjdKa1l5M3QyNTBMVC91ZHFISXdrQitWSUlaWmtuWEcxNGZDUHg5?=
 =?utf-8?B?d0NadENPd2N2TDRoclZ1amQ1SjBKM2cxS0dKOVdoVW1yNCtZc05ITFNhNzhk?=
 =?utf-8?B?VkYwTkNDT2RxbU15K0FxbkNSV0hheXVrTG9pVkVLS04rWG85WnFDNXlBbEJ5?=
 =?utf-8?B?ODFVWk1HdXA4R05xeUFqQzlKZytUMVY0YWlYM3pWcFhKWXdSWkhvd1dkV01j?=
 =?utf-8?B?bjc0c2pteVdvUUZQTUFNSCthWG5FSlo2MlVUajFMWWJRQ21tQm9DWUVvbDZh?=
 =?utf-8?B?cmVYWG94L01oQUc1MUl0QldGakVmaDNkRDlHZmlPVHRxclRUdDV4amg5aklX?=
 =?utf-8?B?QW1wQXRzRVFiOTR4Rk5tNkN2U00xc21nTE55YXdQTUdpRW5ZYmxWQ0IwZi9C?=
 =?utf-8?B?SGU5UzVRQWY4NVZ3KytjcU9QRWFMZDVSdFRpTXE0ME8xNjdxdHY1WmFMYnFi?=
 =?utf-8?B?SmM1WlZTSEw3dXdreW83ZXNZU2g5L2J4TTZTbm1Gc3N2aUZBbUM4eEFUNFNM?=
 =?utf-8?B?a3owUnVGQ2RnY2RmWlJ5SkZiTVRZdW8vaHdHbE5hOFo0SGRtY3dHUm1UMllP?=
 =?utf-8?B?K2JEMnVmR2UxVGRuU2VvNHN2U2VYZHZvRDFnY1NHd1JpRlNTUThJSGtTZDhs?=
 =?utf-8?B?L3EwbWlvWE8rcnhKcVhxcDVIQzNhY3R4dkx1QTc3TERPMVJxT2NKOTYrWmdk?=
 =?utf-8?B?RjJUb1dpbVgwRW41SnBkMzBrUklkRkgrV3RZZnZOUExrbVEvUkkxbFNTRXZl?=
 =?utf-8?B?ay9abkF0VTdReVRldnBEVzNyZDdtUk52RjJpd3BDcUhjeFhIWlJ5ODNxaTdZ?=
 =?utf-8?B?Y3ViWTU1QmtJaUpQWWpuTEs0WXFQb2N3cnRvMkpLaTFUWjQrOGdLRWloOURQ?=
 =?utf-8?B?VmhLTzJHNjJmdHkySXhoS2NQaFY4dEsxYTVETGZPWGJYOVFHSHBpUlIrY043?=
 =?utf-8?B?RDNGL0xVZE5FY0pWSURsZmpLdmFtVHNWUEhEalE4ak01RTQzQjBBZ3lQblpp?=
 =?utf-8?B?QndEWGxPNUhZQ3FKMWt0TlIrOWxoT1ZMZGxIRURnakNVamwzMjI3QlNFSldX?=
 =?utf-8?B?amZOelRLS1BoLys1L2xnaGxQVDN0djkzbk9jQkdtVzhEbzNGVENuNHY4azNp?=
 =?utf-8?B?WlRDN3Z1UDYzQTdYQkdGOUQvdUpEUTE4ajNaa2hLYUp0d3BGVDJGSGd3bG5J?=
 =?utf-8?B?QjZrNnJHZFN3Rk44ckpVRDM3azEwQzRzdjc4dzV5RGxPeDVyU0t6RTg3QVB0?=
 =?utf-8?B?UzcrTFhvRlp0YnRvZTgyR0hWSSttTWVjazhQZFRKRWdVbnEwbnlHUFNONHpD?=
 =?utf-8?B?V2gydk5jbFFhemlTREJnYVkvNjcvaVp0SFNncnJ2RnBEdzJFRkRCbVF0Z1l5?=
 =?utf-8?B?RGh1K3JNcjJvQmtBU1RyVkM2Mmttek1TTzd1akx4ZEZ0R3NSWDEwTjl4a3B6?=
 =?utf-8?B?UUppdE00SjZkcjg1c0lPQTRZK2Z6NitacmYzeE8wenBOdzc3Q3RjZjNxS3Ra?=
 =?utf-8?B?MG5Kb2RIWEVZU3Z0dCtadFFrRkw2c2ZURWllcFNtQWppK2UrY1V1RUIzV2Yx?=
 =?utf-8?B?VUR1MXEwRFArSzRJakdmbVJHd3R6ZTVQUHZmODIyUStiVnp2ZDR0M0g2Q3Bi?=
 =?utf-8?B?alN3cG1LdW9XQ3Bjc25UWVVqbXBkanFGWDBTZ2JHa2RDSzBaSXFoZnNXWUpz?=
 =?utf-8?B?L2NuOTdIQ1dHL2F2d1lHSDVDYVN4VEExZlpEOVE0SmJWQWh2M3NvaVZMQXgz?=
 =?utf-8?B?STdEa3BWRWh1S1ZELzd2V1pFL0ZXZ3BkZVA3b1BSVjZJQ2RhbXRKM0dzcUZz?=
 =?utf-8?B?WElpeGpiVDVXeU1rdFF5WWowdGk1dVdvWWcwNks2MHo0SFVjV1lJc0ordFk2?=
 =?utf-8?Q?LJpFMJ1bSAQ=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN9PR12MB5273.namprd12.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?em9JNmVoVVY5cWhoU3N1bDZlMFp0WmtFUWdKWW5JRGhqNHY2aFpIUDRTYWhF?=
 =?utf-8?B?VGVVTUpoNyt0aTZnOVpzS1lCd3ZXQXR3aHVkSEN6RVZFU2dNMHduZTJ4dU9m?=
 =?utf-8?B?czNyWlVkcWplZEMrdnFnY3lJVEtzVk56L21KelF4aUhtTVErL3M2V3ZXM05p?=
 =?utf-8?B?dlZ2VkErTlBkeU9NU3c1Y0hoR2o4ZC9ZemxSVWx3TkY4ZXZKeEtxT01GZDRV?=
 =?utf-8?B?TmNIZHJ2ekthSjJmaXJPa0pKRjhsSlByRDJtT2l2dGlTWWRpOHJ0YjhqN0Fn?=
 =?utf-8?B?Y0t5bnZSZWpxc3Q2Y3BPMWU1YnBvbmwyQVVmREdOa3A5eno0RzZSMGdscFp4?=
 =?utf-8?B?M2ZZbkw1K1FOdjdJRlNveElWRnBEYi9HNkxxdFRkd1pLU2RzelpDUzhLWENC?=
 =?utf-8?B?d1lEREk1NitLWkZzY1dDVHZtSlh5alBERURFUmdSWExnUE5iUWlSNGhzMXhj?=
 =?utf-8?B?QVhBMVRRMi9scy9QYi8vbkF6NDM1YlUzT0tDUUtsa0JMVEIwTE05Q1VyVjl0?=
 =?utf-8?B?K0tDRG5VbE81ZFBlaDhod2FSS2hkV1RmN1JJd3FFMTJZc0dsV1dnSEg5dWhX?=
 =?utf-8?B?UjBuOE9UdzdnRDh4bk9XdSt0NGdNM2xHMGF2WkdMVER0dVFKT2lqL3k3ckpC?=
 =?utf-8?B?cTBQTjJDYVpTVm4ycjNuTGl3OTNoeUJVZ0tSRHByNnJqNXFlZm5ESjJJWC8v?=
 =?utf-8?B?VFE3OGQ3MFNvSlNPU1l3dXBOQ2xUK21YVVRTVW9Bd0NET0dKUjd5UWZxVWk4?=
 =?utf-8?B?UjQ2a0czTFhkUkNqVGEwUDUvYlZGeTNWMERzTHpsMGZ0NnFrNTNudDh2Q21u?=
 =?utf-8?B?OGNzeHRtQmM0NWNkOUlXaGZyMWxRNnZ5ck1QUWVzYWhGOHpNMlBERUIvcEdO?=
 =?utf-8?B?WXluYzNvLzVUTjdFODZIS2ZtTzAvR0t1L002TmIwYzhiVzRKZjd5cTZkR1Jh?=
 =?utf-8?B?Rm40KzB4anduTzJSMGdoT3B2TUVRYXJFckZXck9jVXVOSVJNZ1gyOW9NcU1Z?=
 =?utf-8?B?UWk2Qm1vWnVWekVycFhTclNVekdSVHY0aEtISnJqb21ab20za2N0UFQ1eWYr?=
 =?utf-8?B?YVdMM0JHb0lkTTI0cGF1K3NoNTQvbXdiRzVoNnU5cExKZFpJbjJxUGd1YnJB?=
 =?utf-8?B?dWFyMllwemhqbFNubXRMUUxrUlJXSjFHVWp1Z3hBWXNOVGUvQVF3UlcyWmxS?=
 =?utf-8?B?bVZyVThXWG92K1NkdkpVU2ZqcVdhZ1pjc0d4UitxdEdKMFl1WWg2Y2VhNmxa?=
 =?utf-8?B?MWxWYlBPN2h4RXNMTFNlRTM0aHdjTXNldmU4Nnl0TmtwV0k5dDlZN3FyR3lJ?=
 =?utf-8?B?a01POEJONnhkWUMxLyt4emZZYVB1T1ZjeE1kQ29kR2czMmt0akE4bmFsaGZD?=
 =?utf-8?B?eUJra3FTWHEwV1NkdGZRUDBXeEhxYnhyMFRQYnhLTWxRd3hOSzNFdEQxRTE2?=
 =?utf-8?B?Sm4zTzhEaDJXZDJPUHVlL1MyRU1PQ3Z3SmtXTkJVWWlTaExGdUFRcmFUcHZu?=
 =?utf-8?B?NHBwWE9JTi8vU0Q0RCtsTHg3akd6OVVyYzYzOUl6VVJUSFJoY2VNdkxFWWhI?=
 =?utf-8?B?OHNURVJDbXMzOGpzSm4rSWZuM1I2VTZhbmt6YzBLSFNyTGtsZm5xU0tkc1RX?=
 =?utf-8?B?Qlhma2RCYnd3NGNmNzVid1Vmc2N5R2ZCRTU0K3NNemxmQ1RoVzZvZ2ZqNWhp?=
 =?utf-8?B?dU9kaXRGVTh0OWUrN2pnWERDSTQrTFBXYVNkRWJnZ2J3cEl3b3FPTzd0ZThh?=
 =?utf-8?B?SERObStkeFhTSC96dkxJdzhaTG5STncwamw0V25iZWk5Y0FKYWdVbEU2YW5z?=
 =?utf-8?B?WFV6MjQ1MnNOOUVzZzU5OWR3N09SNUU2a1RzOFM1OGFaMktwM3Jkc3RxcG9k?=
 =?utf-8?B?c1VBaVJVblhlMmhkTVJVOWRIQTVTVnR2R2N4UWd6L0V6MnNpT0VYN2ZHNUFB?=
 =?utf-8?B?NTZUUmtzSjNuRWFkbkdVbnNacVdsQkJLSnErT0E0WURQYzJpdzJMZkRBZW9Y?=
 =?utf-8?B?SkFKQXlCNmdBb0xxeEYwaG13MWc3aXZSdmMvbVZpa0hIQjVJR0tMdkNZTlJZ?=
 =?utf-8?B?ZEp2MnJ5WTJKcG13YjI4bVlPa2RNZVE1M3pBME5CSDVuMXphVEt3WG5sM0o0?=
 =?utf-8?Q?I/lM911IjoIEiJ6sNtdyEkF1T?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 517b0357-3cc4-4f3a-2ae9-08dd7c103e40
X-MS-Exchange-CrossTenant-AuthSource: BN9PR12MB5273.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Apr 2025 11:25:36.4002
 (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: oZL4WPKHvUIYrS9WEKf8s5FyVfJyuKjRA3f/C4kbbNoW9n87l9V/UHGRy8IN6OQS
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB9398



On 15/04/2025 13:10, Luca Fancellu wrote:
> Hi Julien,
> 
>> On 15 Apr 2025, at 11:20, Julien Grall <julien@xen.org> wrote:
>>
>> Hi Luca,
>>
>> On 15/04/2025 16:55, Luca Fancellu wrote:
>>> Hi Julien,
>>>>>>> +static void __init setup_mpu(void)
>>>>>>> +{
>>>>>>> +    register_t prenr;
>>>>>>> +    unsigned int i = 0;
>>>>>>> +
>>>>>>> +    /*
>>>>>>> +     * MPUIR_EL2.Region[0:7] identifies the number of regions supported by
>>>>>>> +     * the EL2 MPU.
>>>>>>> +     */
>>>>>>> +    max_xen_mpumap = (uint8_t)(READ_SYSREG(MPUIR_EL2) & NUM_MPU_REGIONS_MASK);
>>>>>>> +
>>>>>>> +    /* PRENR_EL2 has the N bit set if the N region is enabled, N < 32 */
>>>>>>> +    prenr = (READ_SYSREG(PRENR_EL2) & PRENR_MASK);
>>>>>>> +
>>>>>>> +    /*
>>>>>>> +     * Set the bitfield for regions enabled in assembly boot-time.
>>>>>>> +     * This code works under the assumption that the code in head.S has
>>>>>>> +     * allocated and enabled regions below 32 (N < 32).
>>>>>>> +
>>>>>> This is a bit fragile. I think it would be better if the bitmap is set by head.S as we add the regions. Same for ...
>>>>> So, I was trying to avoid that because in that case we need to place xen_mpumap out of the BSS and start
>>>>> manipulating the bitmap from asm, instead I was hoping to use the C code, I understand that if someone
>>>>> wants to have more than 31 region as boot region this might break, but it’s also a bit unlikely?
>>>>
>>>> The 31 is only part of the problem. The other problem is there is at least one other places in Xen (i.e. as early_fdt_map()) which will also create an entry in the MPU before setup_mm()/setup_mpu() is called. I am a bit concerned that the assumption is going to spread and yet we have no way to programmatically check if this will be broken.
>>> If we would like to find ways, we could check eventually for clashes on enabled MPU regions;
>>> so the only part where a region is created in the C world without the assistance of xen_mpumap is early_fdt_map(),
>>> asserts etc could be used in one or both setup_mpu and early_fdt_map to prevent breakage.
>>>>>
>>>> Furthermore, right now, you are hardcoding the slot used and updating the MPU. But if you had the bitmap updated, you could just look up for a free slot.
>>> of course, but still the early DTB map is temporary and it will be gone after boot, so it won’t impact much unless I’m
>>> missing something.
>>
>> It doesn't really matter whether the region is temporary or not. My concern is you are making assumption that are difficult to track (they are not documented where a developper would most likely look at).
>>
>> So if we still want to hardcode the value, then this should be documented in head.S and probably in a layout.h (or similar) so there is a single place where the MPU layout is described.
> 
> Sure, I’m fine with documenting everything, let’s see ...
> 
>>
>>>>
>>>>> So I was balancing the pros to manipulate everything from the C world against the cons (boot region > 31).
>>>>> Is it still your preferred way to handle everything from asm?
>>>>
>>>> Yes. I don't think the change in asm will be large and this would allow to remove other assumptions (like in the FDT mapping code).
>>> not large, but still something to be maintained, we will need arm64/arm32 code to set/clear bits on the bitmap
>>> (causing duplication with bitops.c), code to save things on the xen_mpumap, code to clean/invalidate dcache for the entries in xen_mpumap and finally we will need to keep the code aligned to the implementation of the bitmap
>>> (which is fairly stable, but still needs to be taken into account).
>>
>> I understand the changes and risks, but I still think this is the right approach. Let see what the other maintainers think.
> 
> what the other maintainers thinks about this one. 
I read the thread and my opinion is that we should do that in ASM even it if
means more code and possible duplication. From maintainer perspective this is
easier to handle than assumptions which are more error prone and difficult to
change in the future.

> 
>>
>>>>
>>>> As a side note, I noticed that the MPU entries are not cleared before we enable the MPU. Is there anything in the boot protocol that guarantee all the entries will be invalid? If not, then I think we need to clear the entries.
>>>>
>>>> Otherwise, your current logic doesn't work. That said, I think it would still be necessary even if we get rid of your logic because we don't know the content of the MPU entries.
>>> The PRLAR.EN bit resets to zero on a warm reset, so any region will be always disabled unless programmed, I thought it is enough.
>>
>> This is only telling me the state PRLAR.EN when the CPU is initially turn on. This doesn't tell me the value of the bit when jumping in Xen.
>>
>> I am making the difference because there might be another software running at EL2 before jumping into Xen (e.g. bootloader, or even a previous Xen if we were using Kexec) which could use the MPU.
>>
>> So I am looking for some details on how the expected state of the system when jumping to an OS/hypervisor. For a comparison, on the MMU side, we have the Linux arm64 Image protocol that will specific how
>> a bootloader needs to configure the system.
> 
> Ok I now understand the question, so I think we still could use the Linux arm64 Image protocol, but we will need to define what we expect for the MPU, is docs/misc/arm/booting.txt
> the right place for it? Shall we start a different thread?
Please start a new thread for documenting booting protocol for ARMv8-R.

~Michal



From xen-devel-bounces@lists.xenproject.org Tue Apr 15 11:30:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 11:30:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.953695.1348138 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4eUi-0002cH-VJ; Tue, 15 Apr 2025 11:30:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 953695.1348138; Tue, 15 Apr 2025 11:30: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 1u4eUi-0002cA-SF; Tue, 15 Apr 2025 11:30:24 +0000
Received: by outflank-mailman (input) for mailman id 953695;
 Tue, 15 Apr 2025 11:30:24 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=moIN=XB=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u4eUi-0002c4-0O
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 11:30:24 +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 00f1ae75-19ed-11f0-9eae-5ba50f476ded;
 Tue, 15 Apr 2025 13:30:17 +0200 (CEST)
Received: from DM6PR08CA0045.namprd08.prod.outlook.com (2603:10b6:5:1e0::19)
 by SN7PR12MB7450.namprd12.prod.outlook.com (2603:10b6:806:29a::13) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.32; Tue, 15 Apr
 2025 11:30:12 +0000
Received: from CY4PEPF0000EDD1.namprd03.prod.outlook.com
 (2603:10b6:5:1e0:cafe::f9) by DM6PR08CA0045.outlook.office365.com
 (2603:10b6:5:1e0::19) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.15 via Frontend Transport; Tue,
 15 Apr 2025 11:30:11 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CY4PEPF0000EDD1.mail.protection.outlook.com (10.167.241.197) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Tue, 15 Apr 2025 11:30:11 +0000
Received: from localhost (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, 15 Apr
 2025 06:30:09 -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: 00f1ae75-19ed-11f0-9eae-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=jX+/5NCTi6MMGdMIkI+NbXL/z0hreaZxI0j0vi2pWx5eZCfBsGswhEio016nMUWdPcsEPQl8ycohvhnlO7yfvL5Pe3TUe79ANQZqEfUEpvw7LYnQ7WQmWaOvZCHRZ2b/Cn+xrddblFM93/DdpKIuqxpm+mI4s+4fazGb6jSwsvhdlOJzHJ2AihyECHTPwXEy3FMRd7qj3BScrKZHO1yKGHh8jo5vdg+kqFKfIKJ2UkHSwaAq9PGC+4wHb+4y6cDkqLJ2UR17/ZxHIEH7LbYGRdYAvx3fCxBiGnHcRN6oGPl7jO2I2kzXyAgpwjccQZ3H9GZMRSqb/rcbWRCqMYpVlQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=bdTQNjf+VgUX7VAhqcNa0cFGyH1w/Dfx1UHX/MDtVpo=;
 b=hP6epBNcvD/pG3pT6F2PeTbPT4N3FRjdZz8nitbBusg7YKMX+vlN3wUNnZs1GYoRiXmXSGLhN5uFIORwBO0c3/5n7/N0a8t44WIX3QctkgDOzSe7VC98jEvaiLV2oQGrvm5xn8R7rY393i3Gg9mFqsm+RDTDCzsvPXOfyoSdbCAqeHmvCj2feCUmi+lT9cAVjF/gwkmUT01IL8o/5nJiTxcdRvcmUZXFfrNavbEd9RlAjUqCHPuOl60KfXTBbMIBtWEMJGiTbQsYTRUFCE0YT4FsVz1raa0sXawocUuL5W8iUom4JC15avaGmO8TTQV6497dOvq3oH+p8XmmXCA2bw==
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=bdTQNjf+VgUX7VAhqcNa0cFGyH1w/Dfx1UHX/MDtVpo=;
 b=B5oExZlzCgMOo6iDhmNfex/LJwhtU229f7HDG5togsn9t2x5oNxbSAIQJKa/bV/l3BKtqQy7jF0dyVHfNKtggDlOIOUVTvsTvxXsYAnpr6MMpcrBkJNCLSJh/YQMWUyaH1fjH83WMQuDu5QG/4URaDIVGe0q+Kvt9EwCD1NfSHI=
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
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Tue, 15 Apr 2025 12:30:08 +0100
Message-ID: <D976F4QPLMB9.2AZGDR11JD5OI@amd.com>
CC: Jason Andryuk <jason.andryuk@amd.com>, Xenia Ragiadakou
	<xenia.ragiadakou@amd.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, =?utf-8?q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, <xen-devel@lists.xenproject.org>,
	"consulting@bugseng.com" <consulting@bugseng.com>
Subject: Re: [PATCH v3 08/16] x86/hyperlaunch: Add helpers to locate
 multiboot modules
From: Alejandro Vallejo <agarciav@amd.com>
To: Jan Beulich <jbeulich@suse.com>
X-Mailer: aerc 0.20.1
References: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-9-agarciav@amd.com>
 <fe282aa0-fe2d-49b8-a2aa-325c9825304b@suse.com>
 <D96EI9O4XII2.195QNQNT1T3FG@amd.com>
 <3d2aa870-a1cb-4e33-841d-aee7b6b6db83@suse.com>
 <D96K3ZYDCY4D.11Q4T2TZLNNEU@amd.com>
 <ea28d057-5fd5-4cc2-8833-5427015a4190@suse.com>
In-Reply-To: <ea28d057-5fd5-4cc2-8833-5427015a4190@suse.com>
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: CY4PEPF0000EDD1:EE_|SN7PR12MB7450:EE_
X-MS-Office365-Filtering-Correlation-Id: 96b16d25-0523-4c14-32c6-08dd7c10e265
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?ck9PekdqR3J1Z0xTeGpLbmZmYkc5c2pLWC9KdU5keTlvcTlNc2NtYUlDWWE5?=
 =?utf-8?B?ZzVSZ1BpNlRaMzYyUk9DYnFBL0thWmc0RU5ocUh0dURvNG4xWW9YOVhNK0hG?=
 =?utf-8?B?byt6UkRvVUJ1eldsZ2ZBTmhCZTBrVWtCamRnTmUvREwyQWJkdWcxY3FTNG5Y?=
 =?utf-8?B?amZWMlBDNFFHRjlsQkcwVDdlMHByei9udVpNamdCYkN2OUN0UUlQZmFZM1R1?=
 =?utf-8?B?VkNHZzZWZlNnZFBDQ21jRFZWSnd1Z2c5WHdOWmpKYXA2aVh4T0JtWm5MejNJ?=
 =?utf-8?B?Yisxa3gzZW9mOHNNeDh3Si95OUVpUVhBREtSNDhVemV0MFI5akN3OWJ3MGIw?=
 =?utf-8?B?MHZZTGZHOVhKdUMwMGdHdTJTWkFNejhoTWxTZ1A0aW96L2FDNzVNaWswNXVM?=
 =?utf-8?B?b29aTHpUQ0tzWTNQaDFnZ2trNndJbmViQ3YyNWlHUVdVajIxUktzNjM3eVRE?=
 =?utf-8?B?d0l1UEJtaThqRFNoZzFoZUVUWUppUitqWUNrNGVXRDhtdXZnMko5VDF5NGRo?=
 =?utf-8?B?Y1NCNnVUNUhSMEhxQ2x3eko5cm1HVUJtZGJpZTRXTE9KR29EZWJhdURGY3Bw?=
 =?utf-8?B?Qklna0Iwc3IxYlBlNjJKVVlOeEJ5M1ZOVk8vRjVDbGRNTFZMcVFVQU5UVUUv?=
 =?utf-8?B?UDg4UFRyblJocjFtcEd4bnR2RDhJdXEwaWRpc2NLL2FLcU9lYmtmbzI4Mms0?=
 =?utf-8?B?NjIwSitxS05hdXZRTnVBbk44cFhsQWhiK3hNRFM3ZDVnN1Joekkwc2pZd05x?=
 =?utf-8?B?STdXajNLdFh3c0djL3htcEJwa3BxUDJST08yRk1OMFF4aWlReGpjbjNURFVh?=
 =?utf-8?B?L2orZU9lTnhIMExOampBYkJGWTkyMmhwTGIyWTVzanBaRzZmUVN2b282eFdW?=
 =?utf-8?B?MVR6NldGS0k2QWdsekE5V0gyb2tMbUJKNzJuK1k1ZTZ2K2FWNURPaU5nUnda?=
 =?utf-8?B?TmhWTUsxajRGb2g0cnJNTzlLUGsxcGhCcjJKV1hrU3l3bWVIQkJwenFzOUU1?=
 =?utf-8?B?VWtlS2cvVEZWLzRvSnF2dEFPY1ZpMDNkdUJKaThZS09aWHZucjU0YXdLaURK?=
 =?utf-8?B?SW9xTEVqRHZBSmNVNDdVSzBkNUg3VWVjNWlvMDZyTXorcXc0dmpZYXdCY2pu?=
 =?utf-8?B?bGJxdE5YQUtnTTR6T0UyUy9IN1ZoUVFQekh4U0RtVENpc3ZPV2t1U2daZEhI?=
 =?utf-8?B?Q1k3cURHeitmdjh0THlZM2FaSnVBWTlFRjQ0ZDllc3pIbTRlUDhqNHl5blJo?=
 =?utf-8?B?MFFmTC9LRkRoeHYzMEJPLzRRK1cyNmorOGptNGI5T1BDZTgzZVFiaUE4aUJV?=
 =?utf-8?B?TjhibWpkZnI4WW1Ia1FRUEFVVk1aTkdYN0xJSkdleG83VUVHWkppK3NiNDlE?=
 =?utf-8?B?Y29CYkFTSm40SXg3VklQcXd3S3BIREVsMExvOUF1REVzaXBIZXVBWWdsSFhP?=
 =?utf-8?B?Qm5paUNXOUR0OUFNWTBTMmhZdDhZRklpTE1DT3N2aXpPNVl1WHdBYzRib0Zk?=
 =?utf-8?B?dnNXUmhQeXBaeng0bTlIcWI0TXgvWjdRdDQzRnJKamdOQzE2OHlkRzJ2ZHFa?=
 =?utf-8?B?NVhSbmUvclQwSms2N0pic2E0SjdEQzVxaWo1WTlIazBPRk9FVGV3T1ZpdXdG?=
 =?utf-8?B?SWxSMVlOKzRSbFQ0d1BtOXB2UUNoQWhsS1NHQ3I4b3IyY29iTzdGUlhkVm1p?=
 =?utf-8?B?KzllNkl6SXdCTE5oUDMvNGtsbTh1YzVOU1NFYmdTOWY3bWV4Y1pETlBmdnNK?=
 =?utf-8?B?cENjazRsa2NqZmFvVjVWR0Q2NlBnS0JTNGFQTU9vdExCQWxWNGFoUmlva2ZX?=
 =?utf-8?B?N3czc2dIZldicGJzUnVwR2dsanVWc2ljMTZvelBMYU9KMkVTQm04MjN4THNk?=
 =?utf-8?B?QUN4SFN2VERWbE1yd3BVOGtWNmg4NUpMNkdGS1RmNDVWeHhWR1lCVjlyODFS?=
 =?utf-8?B?bWRkdVRYMGFQYXpOTE5NV0JKV0pPb0ZjWitBS0h3aHFad1hVenZrVmhLUWlE?=
 =?utf-8?B?RllDNG5pZjkzd2E3OTk3dEp6bFYySVdsMUVnRCt4NzlydkxhZUxXQ0F0ZjBB?=
 =?utf-8?Q?dTyZg/?=
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: 15 Apr 2025 11:30:11.5144
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 96b16d25-0523-4c14-32c6-08dd7c10e265
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:
	CY4PEPF0000EDD1.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR12MB7450

On Tue Apr 15, 2025 at 7:05 AM BST, Jan Beulich wrote:
> On 14.04.2025 20:01, Alejandro Vallejo wrote:
>> On Mon Apr 14, 2025 at 4:05 PM BST, Jan Beulich wrote:
>>> On 14.04.2025 15:37, Alejandro Vallejo wrote:
>>>> On Thu Apr 10, 2025 at 11:42 AM BST, Jan Beulich wrote:
>>>>> On 08.04.2025 18:07, Alejandro Vallejo wrote:
>>>>>> +/*
>>>>>> + * Locate a multiboot module given its node offset in the FDT.
>>>>>> + *
>>>>>> + * The module location may be given via either FDT property:
>>>>>> + *     * reg =3D <address, size>
>>>>>> + *         * Mutates `bi` to append the module.
>>>>>> + *     * module-index =3D <idx>
>>>>>> + *         * Leaves `bi` unchanged.
>>>>>> + *
>>>>>> + * @param fdt           Pointer to the full FDT.
>>>>>> + * @param node          Offset for the module node.
>>>>>> + * @param address_cells Number of 4-octet cells that make up an "ad=
dress".
>>>>>> + * @param size_cells    Number of 4-octet cells that make up a "siz=
e".
>>>>>> + * @param bi[inout]     Xen's representation of the boot parameters=
.
>>>>>> + * @return              -EINVAL on malformed nodes, otherwise
>>>>>> + *                      index inside `bi->mods`
>>>>>> + */
>>>>>> +int __init fdt_read_multiboot_module(const void *fdt, int node,
>>>>>> +                                     int address_cells, int size_ce=
lls,
>>>>>> +                                     struct boot_info *bi)
>>>>>
>>>>> Functions without callers and non-static ones without declarations ar=
e
>>>>> disliked by Misra.
>>>>
>>>> Can't do much about it if I want them to stand alone in a single patch=
.
>>>> Otherwise the following ones become quite unwieldy to look at. All I c=
an
>>>> say is that this function becomes static and with a caller on the next
>>>> patch.
>>>
>>> Which means you need to touch this again anyway. Perhaps we need a Misr=
a
>>> deviation for __maybe_unused functions / data, in which case you could
>>> use that here and strip it along with making the function static. Cc-in=
g
>>> Bugseng folks.
>>=20
>> It's a transient violation, sure. Do we care about transient MISRA
>> violations though? I understand the importance of bisectability, but
>> AUIU MISRA compliance matters to the extent that that the tip is
>> compliant rather than the intermediate steps?
>
> Thing is that quite a few rules are blocking now. I haven't checked wheth=
er
> the one here (already) is; if it isn't, we can't exclude it will be by th=
e
> time this patch is committed. If then the next patch isn't committed
> together with it, we'd face a CI failure.
>
>> Another option would be to fold them this patch and the next together
>> after both get their R-by. As I said, I assumed you'd rather see them in
>> isolation for purposes of review.
>
> As it looks it's all plain code additions, so reviewability would merely
> mildly suffer from patch size. But afaict there would be no loss of clari=
ty.
>
>>>>>> +    /* Otherwise location given as a `reg` property. */
>>>>>> +    prop =3D fdt_get_property(fdt, node, "reg", NULL);
>>>>>> +
>>>>>> +    if ( !prop )
>>>>>> +    {
>>>>>> +        printk("  No location for multiboot,module\n");
>>>>>> +        return -EINVAL;
>>>>>> +    }
>>>>>> +    if ( fdt_get_property(fdt, node, "module-index", NULL) )
>>>>>> +    {
>>>>>> +        printk("  Location of multiboot,module defined multiple tim=
es\n");
>>>>>> +        return -EINVAL;
>>>>>> +    }
>>>>>> +
>>>>>> +    ret =3D read_fdt_prop_as_reg(prop, address_cells, size_cells, &=
addr, &size);
>>>>>> +
>>>>>> +    if ( ret < 0 )
>>>>>> +    {
>>>>>> +        printk("  Failed reading reg for multiboot,module\n");
>>>>>> +        return -EINVAL;
>>>>>> +    }
>>>>>> +
>>>>>> +    idx =3D bi->nr_modules + 1;
>>>>>
>>>>> This at least looks like an off-by-one. If the addition of 1 is reall=
y
>>>>> intended, I think it needs commenting on.
>>>>
>>>> Seems to be, yes. The underlying array is a bit bizarre. It's sizes as
>>>> MAX_NR_BOOTMODS + 1, with the first one being the DTB itself. I guess
>>>> the intent was to take it into account, but bi->nr_modules is
>>>> initialised to the number of multiboot modules, so it SHOULD be alread=
y
>>>> taking it into account.
>>>>
>>>> Also, the logic for bounds checking seems... off (because of the + 1 I
>>>> mentioned before). Or at least confusing, so I've moved to using
>>>> ARRAY_SIZE(bi->mods) rather than explicitly comparing against
>>>> MAX_NR_BOOTMODS.
>>>>
>>>> The array is MAX_NR_BOOTMODS + 1 in length, so it's just more cognitiv=
e
>>>> load than I'm comfortable with.
>>>
>>> If I'm not mistaken the +1 is inherited from the modules array we had i=
n
>>> the past, where we wanted 1 extra slot for Xen itself. Hence before you
>>> move to using ARRAY_SIZE() everywhere it needs to really be clear what
>>> the +1 here is used for.
>>=20
>> Ew.  Ok, just looked at the code in multiboot_fill_boot_info and indeed
>> the arrangement is for all multiboot modules to be in front, and Xen to
>> be appended. But bi->nr_modules only lists multiboot modules, so
>> increasing that value is therefore not enough (or
>> next_boot_module_index() would fail).
>>=20
>> I need to have a proper read on how this is all stitched together.  I
>> may simply swap BOOTMOD_XEN with the next entry on append. Though my
>> preference would be to _not_ have Xen as part of the module list to
>> begin with. Before boot_info that was probably a place as good as any,
>> but this would be much better off in a dedicated field.
>>=20
>> I don't see much in terms of usage though. Why is it being added at all?
>
> For hyperlaunch I fear it's you who needs to answer this question. For
> pre-hyperlaunch it's (primarily?) for consider_modules(), iirc. See two
> of the three comments ahead of its non-recursive invocations.
>
> Jan

There's no specific need for it on hyperlaunch AFAIK. Fixing
consider_modules to not require Xen being on the list of modules is easy
enough on both arm and x86 (it's a matter of passing the boot_info in
full rather than array + size), but I fear there may be more instances of
such checks.

I'll let it be for the time being and take a mental note to untangle
it later on. For this I'll simply ensure the append logic maintains Xen
at the back, as a sentinel of sorts for the module list, and document
that behaviour in the boot_info itself.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Tue Apr 15 11:38:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 11:38:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.953709.1348156 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4ec5-0004Tm-SO; Tue, 15 Apr 2025 11:38:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 953709.1348156; Tue, 15 Apr 2025 11:38: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 1u4ec5-0004Tf-OT; Tue, 15 Apr 2025 11:38:01 +0000
Received: by outflank-mailman (input) for mailman id 953709;
 Tue, 15 Apr 2025 11:38: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=moIN=XB=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u4ec4-0004TR-LI
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 11:38:00 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on20618.outbound.protection.outlook.com
 [2a01:111:f403:2414::618])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 12e15804-19ee-11f0-9ffb-bf95429c2676;
 Tue, 15 Apr 2025 13:37:56 +0200 (CEST)
Received: from PH7P221CA0073.NAMP221.PROD.OUTLOOK.COM (2603:10b6:510:328::30)
 by DS7PR12MB6069.namprd12.prod.outlook.com (2603:10b6:8:9f::13) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.34; Tue, 15 Apr
 2025 11:37:53 +0000
Received: from SA2PEPF000015C9.namprd03.prod.outlook.com
 (2603:10b6:510:328:cafe::ef) by PH7P221CA0073.outlook.office365.com
 (2603:10b6:510:328::30) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.33 via Frontend Transport; Tue,
 15 Apr 2025 11:37:52 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SA2PEPF000015C9.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.8655.12 via Frontend Transport; Tue, 15 Apr 2025 11:37:52 +0000
Received: from localhost (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, 15 Apr
 2025 06:37:50 -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: 12e15804-19ee-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=GaJBJLDcLOQnnEGsxkZQZbwnNxkNBkTURig3WnfYLPmKIkhtJieBbEcioSW3lAQQd50fo5yRZCZHVmcXSJTfJ4cLKrmhEwtF56NfKoxTMPcTET4lKJ7CofqtCInmBzi2hE75CICQeyDNgjJF09chwPJ2T1uMKTq3lCgz5YvlaSTKpLwDaSnpzTF2Qve8pSaRK1k4XkgMi/GThlhGGILb8uFj/pwbS9l2Ud3DCvWAXn6tWwkVw5YmGR5DGDNvtP0lTrREt5RxK1EloeFneXMZsaaHFdEhXW0NSOCyGrfn1a4nLKJhKYbzB139twP48xcgywyxQQ2ExesiNbNrKntFCA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=j2yb35nhrlCXpfZJSny/65bIuzSJP1s+/Zo+2Q3mgBw=;
 b=C3EoO+tl6a0NYIUXEcSVPgvEp0KpR49MEOXRXPk78RtTGKCRhiLGKwAWsiBReVFiIqvTmx3egb8jqWZfx7a2i/+EhcLOay9Ek6gyygaW8mvuD4uJ1+ga5bym0U+SJOXihjsXIPNYgUT1U9UEnOJXdj4Ks9Sz0fU4tU0rundOqSmwLBEl8PbGvpNgaDJyY/0MSJUqp5ZQXb4ytpufBVDuxQjR1BNWpGa1ReMpECc7/X5D0nWAyHTs/swKMuX4TGjVxzAqZp4prwWggHC0O8qFjsHkNJrNrePaX8TbYW+EtfmtZYIf66JL/zkCZhyO7bIOQFOzMRHJ7VXqLxI8fKrA9w==
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=j2yb35nhrlCXpfZJSny/65bIuzSJP1s+/Zo+2Q3mgBw=;
 b=dLol2KKXxZxJgLhYi9G23YbM4NefSmntGAGb8VsaeSIImqQYVkZxeGbaeHi5ZsBwciijVtmioFaZD2xxJ/wF6WwxIm4yakIt9JV3F7lImbop8y4OhDjseh0EkfU7aeSOinOxPZfeqFnDFwvlWowYrU9GUDWMXYPtw0MRpqoH7WU=
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
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Tue, 15 Apr 2025 12:37:49 +0100
Message-ID: <D976L0UZ7GJJ.2IKE0CKO5Z7EC@amd.com>
From: Alejandro Vallejo <agarciav@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: <xen-devel@lists.xenproject.org>, "Daniel P. Smith"
	<dpsmith@apertussolutions.com>, Jason Andryuk <jason.andryuk@amd.com>, "Xenia
 Ragiadakou" <xenia.ragiadakou@amd.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Michal Orzel <michal.orzel@amd.com>, "Andrew
 Cooper" <andrew.cooper3@citrix.com>, =?utf-8?q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Denis Mukhin <dmkhn@proton.me>
Subject: Re: [PATCH v3 12/16] x86/hyperlaunch: add domain id parsing to
 domain config
X-Mailer: aerc 0.20.1
References: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-13-agarciav@amd.com>
 <tRYKTDKcoIBHId12LOD4EHCmAF-AN3V3PmkMqmyIjYCqQJ3TS_0ctt3WMCq1Ez3W7oIGxwU3UsAioyP9T9fMCO78_61AI01oYEknYF_h1_I=@proton.me> <D96K8KED132J.3C79EPWZM813D@amd.com> <1e86b0e1-fa1d-49b3-8718-db43099772c2@suse.com>
In-Reply-To: <1e86b0e1-fa1d-49b3-8718-db43099772c2@suse.com>
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: SA2PEPF000015C9:EE_|DS7PR12MB6069:EE_
X-MS-Office365-Filtering-Correlation-Id: c0c1ccf5-5606-4528-5a63-08dd7c11f54a
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?b2NDSm5aZlBDeG9XS1dBc3E0R1VJOWE0UFd0blVSMm5mV0tFNm9EdlFyVkxH?=
 =?utf-8?B?R3R1RU9COGZUMUZ2M2lOOXZENzcrWGVzZXVVRzMrOEh2WHV6eUVDTGdLZ0Zo?=
 =?utf-8?B?ZXU1RnZNWGNqSW9odTR0ZEROS0dmL2dRVVVwOXNXSkNJeVVwRS8zUjR4a28w?=
 =?utf-8?B?emJ6Y2haZHdUL0RHbnBNbGhNUlJsallhaVBTOWpZTTZlVWhJekpxNEFRR3Iy?=
 =?utf-8?B?TWRJN0xuODhWTG5uTEhBd3VBYi9iZ0gxdGtQVGxhL1J3RmFwWlJKK1BCUXVX?=
 =?utf-8?B?b1dPS3BLQjBWVjJ0MUk3M2RUZEk5NWR2S2RUdnpPQm1wYmpndkNQSGVYRzBF?=
 =?utf-8?B?QWRYd1ZxaTl1NGo1TWtWcWZCYm9zRkY5N1VFYXJId1RMbFgrbGRaamlaOFRL?=
 =?utf-8?B?aDNBT2ZISURHY2dQU01tbGt5bkp4TUE4NU14NEFDUkQxdWZZY1VYa2Y1MUc5?=
 =?utf-8?B?d3NXOC9FL212Y3cwRWZGNjNCVUpta2NoWnoyOVQ5VDlEVHlFQjh6UCt5ZDF6?=
 =?utf-8?B?NStQTndCR0U3Y3lkUU5kaWJ3MEs0N3hubjZzTnBwUjZvSUU3NVRla1ljd2tB?=
 =?utf-8?B?N3czUEJ0NXZ3KzVLcE02K09pZmdQOU1KT1dSRUlIWFZ5Tzd6WmU2a3pxQnFt?=
 =?utf-8?B?QkR1c0VkUkIvV2xYYWIyaEVyRVUwbVE1UHJEcU80L1dseXZLalNuMHh0NEJN?=
 =?utf-8?B?YSszOUdMbkZZVkgzUEJFMndBUnhkSXVyekNwTEJrSkpHS0RtcWY3eGJ2VVdE?=
 =?utf-8?B?QUE2WHRLRnQ4dHpkREM4YVNRVFNaUDhLMk03ZmJ3d0Z3ZVhNS2NVS1ZnNFdm?=
 =?utf-8?B?UjdaVXBhQlJyVkhlL2ZqbGlYTER3eVZWVHAzRC9NOG0vYXcvWEVpUldVc002?=
 =?utf-8?B?cHhpeFdLS1Q5YXFLQ0ppRnZBNFlmRzMxMUVUUUJpcHMrSldKdmM2MjJaMEV4?=
 =?utf-8?B?TDZGd25kYmJpUnQxaVl6UkVzZ2Zpb3FWbHRZMHQ2WW9zNTlsd2t4bndnWXgv?=
 =?utf-8?B?ZXB6VCtzTFJUT1NOYVNpclIxYWZUdXZySGJBc1lSUG5iRjZPMU1vc2gvamRx?=
 =?utf-8?B?WTNqT0VidzVEYWEvWlpkOWJBeml5Q3VXSFI3WlRnVEJtY3Y4Z3g5ak4wWUt4?=
 =?utf-8?B?L2Y0SkNZNnBxUnJuMWxEY20vQU5uQVNXUlczRHVtOFMzalBQRjRLb2RseUtV?=
 =?utf-8?B?YnFWR1AvNmJVYWtBNURiWUdFbVFiS1pydUVoek56T2p0UWVUVjg3OFVzd0hl?=
 =?utf-8?B?Ny9MQ0lyY1J0Z2JYdkVOMXB5SW4wM1k5eUwvTFVTVEhKWGptWHBIQWc0Zytr?=
 =?utf-8?B?OUk3aXU2YnVrTUNpTUV3QUNhNENXSnBRV0huRFRDQjdhWUNRUVNmYWtRNzNh?=
 =?utf-8?B?cGdJdEk2R0h4anc2bkNFSVlYWm51RDBoczFjcHpKL1NFN1AvOGt3QjFrNmF1?=
 =?utf-8?B?emh4WTF6VThYQWd1RzVxR01YbHdRRWsvcnlFakhHWVkxUUlpVXUxS3NMMk93?=
 =?utf-8?B?T2l5SVNFcCt1UlpKUmx5UDkxSkczdVJ1WksrOTJsalJkWjJ5S3VCWFJMandx?=
 =?utf-8?B?Yzg4dzVXOUo1Lys5MUpFb1ArL0M3N1J0ZnB5Tmc4dTczOFllbFBqZkg2VXFI?=
 =?utf-8?B?SGJYazdTTXVSVFFoMUFzTnQ3SDcwQ1hhdHhRdEh3ZEtORkpWdUNIN1FiOEFC?=
 =?utf-8?B?eC9YT3phU2xHMzc4YkRmQ3V1WE1qS080MzI2Ty9mblk3eTJOSXB1RCsvbW5N?=
 =?utf-8?B?QnJYaDdxZXFKTkkzYnlNNFNqb2NiM0J5Z0N5ZVhsRU9PR21PMlpCbHJDOWFq?=
 =?utf-8?B?cDhQWTlidnRYR0VMVlM0Z2Z4d3JTSUs2amhZZTFZZzdia2hrUzhqSUQyS3R2?=
 =?utf-8?B?ZXR6K3FsV0xtL1lHMXdCeWQyY2tQNkxBQTRscHRiNEIveGFzNXh5V1BTelJV?=
 =?utf-8?B?eUdrUEVITVZ2S25sWGRaVHN6UFFudDlxbmlyRWVodjNZc3M1Uk9PNXpwMjFC?=
 =?utf-8?B?Q3Vmb0cxb01rK2RWc3JZMzFMTTgrcnNSbWFWc0NSWnB0MlVpYzJ6c0xGcElR?=
 =?utf-8?Q?Fuzs/f?=
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: 15 Apr 2025 11:37:52.7432
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: c0c1ccf5-5606-4528-5a63-08dd7c11f54a
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:
	SA2PEPF000015C9.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB6069

On Tue Apr 15, 2025 at 7:21 AM BST, Jan Beulich wrote:
> On 14.04.2025 20:07, Alejandro Vallejo wrote:
>> On Wed Apr 9, 2025 at 11:15 PM BST, Denis Mukhin wrote:
>>> On Tuesday, April 8th, 2025 at 9:07 AM, Alejandro Vallejo <agarciav@amd=
.com> wrote:
>>>> @@ -233,6 +264,12 @@ static int __init process_domain_node(
>>>> return -ENODATA;
>>>> }
>>>>
>>>> + if ( bd->domid =3D=3D DOMID_INVALID )
>>>>
>>>> + bd->domid =3D get_initial_domain_id();
>>>>
>>>> + else if ( bd->domid !=3D get_initial_domain_id() )
>>>>
>>>> + printk(XENLOG_WARNING
>>>> + "WARN: Booting without initial domid not supported.\n");
>>>
>>> Drop WARN since the log message is XENLOG_WARNING level already?
>>=20
>> As mentioned elsewhere, the point of those prefixes are to be readable.
>
> This, however, imo is a matter of consistency across the codebase, not ju=
st
> within hyperlaunch.

I agree. There is precedent though for certain printks to have a
collective pattern for ease of reading (e.g: spec_ctrl.c when printing
mitigations). With I'm merely justifying the 2 spaces followed by
lowercase.

I did try to remove them and it was strictly harder to know what they
referred to.

> Plus (again imo) if anything, prefixes that are part of
> the log output should contain proper words ("Warning:" or "Error:"), and
> they shouldn't needlessly "shout" (i.e. "FATAL:" is okay-ish to be all ca=
ps,
> but the others aren't).
>
> Jan

Right. I'm happy to rewrite them as "Warning: ..." and "Error: ..."

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Tue Apr 15 11:59:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 11:59:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.953725.1348165 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4ewl-0000Xu-HR; Tue, 15 Apr 2025 11:59:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 953725.1348165; Tue, 15 Apr 2025 11:59: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 1u4ewl-0000Xn-Er; Tue, 15 Apr 2025 11:59:23 +0000
Received: by outflank-mailman (input) for mailman id 953725;
 Tue, 15 Apr 2025 11:59: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=moIN=XB=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u4ewj-0000Xh-AU
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 11:59:21 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on20614.outbound.protection.outlook.com
 [2a01:111:f403:2412::614])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0ee139dc-19f1-11f0-9eae-5ba50f476ded;
 Tue, 15 Apr 2025 13:59:19 +0200 (CEST)
Received: from SA1P222CA0081.NAMP222.PROD.OUTLOOK.COM (2603:10b6:806:35e::7)
 by DS0PR12MB9725.namprd12.prod.outlook.com (2603:10b6:8:226::24) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.34; Tue, 15 Apr
 2025 11:59:12 +0000
Received: from SA2PEPF00001509.namprd04.prod.outlook.com
 (2603:10b6:806:35e:cafe::10) by SA1P222CA0081.outlook.office365.com
 (2603:10b6:806:35e::7) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.35 via Frontend Transport; Tue,
 15 Apr 2025 11:59:12 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SA2PEPF00001509.mail.protection.outlook.com (10.167.242.41) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Tue, 15 Apr 2025 11:59:11 +0000
Received: from localhost (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, 15 Apr
 2025 06:59:10 -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: 0ee139dc-19f1-11f0-9eae-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Q+cOAThzlMgPLwLDj5R98nURces2nP9lnRgUadspLAqX1PahgootI9p6A6io9VI0yse0A7fZlgFUFK1UGfx5GRCPR9oZwQQNxZQglcjnhnIg1TY8f1t1BwpHsiINe0vvQCardgS6GUI+p4h3GLtv/7PNLKIKdwaya+hT7jof05mbV3O+OoV8tJWPLPDpb1BdVDZwwA4OOs8R0yG2e0/YQghB9dv9fFzZd6LqY3lG5Rb4OvZClQFvOTfQMVM7h5BSTHvNtP1hV5yOxp2zUDQB24sag+S4+BRSi3jrMtbbDA/7rH98IR27ybgRsUtTANmKZskH4xzigF/8Y1VmsuYorg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ExV+xGI3EJ/S5vot5B2WCL40GqYWjUIaIdeNRue2KKE=;
 b=o4dRwG/RITaURSYI1iPit9JviSlFX0LvDfFI+P5Ya5A1JdCpi3ys/RaWtg/w1iU/NK3ALwUWsHpmLtTL4Tx2UVj5557+klf+FK10p99rcCDZdeYsYZQUHfh728wFnavkmvgb67Wu6wf7U4OZvritlPpEVdWydd7wNys0OOGAbBv/VHTYVTNdmLfb6aM3iTndJPcGnPrwb7i1viag1wDLqhDE6eFiKReiQHW2ORX1ud19DqXCSnDzEnK4vhItOlBYUtlOPVGWp4orlYlv3dzjAQ2kQIVGQNWgKyzd0oIwmQpER8IP3Pja8jdse6Pn9IhowrVTD5xA0PKmWNm7S1MieQ==
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=ExV+xGI3EJ/S5vot5B2WCL40GqYWjUIaIdeNRue2KKE=;
 b=bJ8tjw+fG3TW0FlnCG4TEljY8+/vFFNI7VCEOtmhuZ4dBizgAM93WeqTp9c5mh72sOASRq8uv1c9jsg71I65trCWK/bqGYbpc9sL8ldJ/ozqbv2o3FUrx0VvXf4jl9YUCgDSr9IjCMBuaTHMWQ9kly9fAA+6cXwMYxzdrq2QSvA=
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
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Tue, 15 Apr 2025 12:59:09 +0100
Message-ID: <D9771CIVB3IR.TAKEYOHRCY30@amd.com>
CC: "Daniel P. Smith" <dpsmith@apertussolutions.com>, Jason Andryuk
	<jason.andryuk@amd.com>, Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	"Stefano Stabellini" <sstabellini@kernel.org>, Michal Orzel
	<michal.orzel@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>
Subject: Re: [PATCH v3 11/16] x86/hyperlaunch: locate dom0 initrd with
 hyperlaunch
From: Alejandro Vallejo <agarciav@amd.com>
To: Jan Beulich <jbeulich@suse.com>
X-Mailer: aerc 0.20.1
References: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-12-agarciav@amd.com>
 <b3018b0d-e0e8-440e-9f02-363a7bd0378f@suse.com>
 <D96IXRWYOGUM.Z5A9K2NCCBQY@amd.com> <D96JE0Q8U026.2FWWHTWUUMTPE@amd.com>
 <60363eb4-cb35-4077-b964-0c321c495a19@suse.com>
In-Reply-To: <60363eb4-cb35-4077-b964-0c321c495a19@suse.com>
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: SA2PEPF00001509:EE_|DS0PR12MB9725:EE_
X-MS-Office365-Filtering-Correlation-Id: 199e08a5-374d-4fb4-b06b-08dd7c14ef98
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|1800799024|36860700013|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?MnFqbXNXRlZkVWRkc2JLRjZQbnhPQ3BsaVF6cnp0NnFtSEFXZGdiSVNqVC83?=
 =?utf-8?B?ODFoR1IzdDhHNWlSMk94a25JV2V2VGlIaGh2a3lSMnR1ekNLWnBvMjdmVUN0?=
 =?utf-8?B?UmQwZGhZR0w4KzQwcnBEQUQvREVKRlA4Tm82U1o4cjUvKzVtMjYrb05UdCt1?=
 =?utf-8?B?ZzJWNHVCVUVralZrOHFnMHRuRkxrNkpwZjYyWHhlUHY0NkdUTEVlOWg1d2s5?=
 =?utf-8?B?cjRucnZ4cWdRekR2WFBmOXVHaSs4akNDL2orWmdUbVQ1M3YvdkNCNHl1ZzlW?=
 =?utf-8?B?T3R6UHdvdUx5MXg1cFMwTHNTWDFvMmg2WW55KzJRQjI5bzZDbCswakZaN1I5?=
 =?utf-8?B?dTdkWnNGbHpwNkFwc3F1RFdkUGFZZ1pidEhBNkZSUnNsU2VBaEx5eldhZTEv?=
 =?utf-8?B?TUhnL0pRTUtjVU4rQXZaQUk1WFVpVkJwUnltNFgrMTJROW1zUHRhRlJUc3VC?=
 =?utf-8?B?SUFuZnNuWmxkSVJDZVhRR3c1bS9rTWxyVGVuWVQzdGI5VzM4M2xtT1JObVJn?=
 =?utf-8?B?LytudTdLM25CZHFlSnJ6VDN3SXRKN3lOd1FtSEVLUk1xdUhBVmtJUWVTZVEw?=
 =?utf-8?B?YTFaL2NoNUpNSVZQSDlDWmR4aCswYm10cGJOcHRCalRycjB3NU9INERZVVFD?=
 =?utf-8?B?TnFwN3VJT2hmazNBOTlJMWgwV2RkTUVtb0VsbXNyY1JiZksreWxyazVzQzla?=
 =?utf-8?B?dmZKUmtBNzNCUXlHcmxZSWc2S2hRbHVYcE15YUdYcFdLYUlZdExkYUN6TmhC?=
 =?utf-8?B?ZHVwMjFkMEhQSWI2bUd5Zk50UGswVk96dFErNmdReDJvWFNXMnJSVGpNeExM?=
 =?utf-8?B?WXVYd2RJMUM3eDRqdlMzMWhQbHdYWXlpWU55RXd3aHJCY0NOZ0lVakozRnJh?=
 =?utf-8?B?dllySkRWdEpieDMvVDNBbHFENTl0bnpVTXlpRUlEdEk4ZmFleTVPc1d5MjBE?=
 =?utf-8?B?TWxFTmlBaUw1d3lpaGtsSVNDUHBBUmluellSWWVMTk05T2xubmhZZ3NCS1Vz?=
 =?utf-8?B?anQ5QnJCSmIwNFBNZVkrVHB3T0Y3aEZBMjBla2p1Si83NDhERG40OWwxdVZk?=
 =?utf-8?B?SExhMXJReEI4K0V2Q0k1YitveGlXeXpjcjRDT0xzb3F4UXFnQjQ1dmR0a3Fw?=
 =?utf-8?B?SGZMMnF3alpZYlgyUVU5ZTMxTzg0c1dsNmwxbktZTVpyMTFUTTFQa05wN3Vt?=
 =?utf-8?B?M2VHWkhuekVZMVBJNU1NSk5uRDloclE5bVFTWWxtQ2szaWFxbzdXQlVnL3NU?=
 =?utf-8?B?YzBEdytKQWdqc2xhbVNEU2RWMUV5MkFIS1doRy8zbFdTMnFxajF6Mk9FVldx?=
 =?utf-8?B?VEFWSmhBR01IZmo4ang0ZGFOSXprWWFubW5rS0htUlMyNHRFVXhKSkF1Q0N1?=
 =?utf-8?B?S01qR1pMSkl2N2lka2haK1p2VU83NjR4WDNUMUFYaGM4ZTQzTkZERWZoUEg2?=
 =?utf-8?B?V3A5ZWhlR1Q2QklYY3hNM3pIRkw5L3NVL2JGVEVudVVxbXZIU1E5MkpFRTRN?=
 =?utf-8?B?SVAySXFmL29JV0tvOEt5U212R2w0RGNVQnF4ZitVVGhzMFVjR3VJSjJYOElD?=
 =?utf-8?B?MEFxWGQ3ZTVlN1prdE8rYUxQaWw0UXZoN2NKczA2dlNEVDNsVWorVU1odXU4?=
 =?utf-8?B?RDM3UElIMjJYN05FM3ZwRVA1Qnc3U3Mzb1M0QzhtWXFxR3VERXNMTm1yWnNi?=
 =?utf-8?B?NXF1Z2VWckhqZUhleVVsQ2pOUXBScDhIWlpaNHJ3SWV5eDVQVnNMM2t0WDYr?=
 =?utf-8?B?NHBqVXpZWHpITWNqRW9mcjhoZThvaHMzZTFhUFZaRHFtby9HaFJiQWd6blNj?=
 =?utf-8?B?TXN0eWgzTG9mTW5DUmxKNTlkU1dpcUpzL1F3dXgwbGtJeFdvNVRERUxHMmt5?=
 =?utf-8?B?Si9xZkJHTnZRdWNKWklGdXdkRFlxUWhEbVJOYkwyN3U4N1UyaUgwRVRmemxN?=
 =?utf-8?B?THROT016RHNrWGVCdnJUV05KNHlhbzc3eG9hM1R1bEYvYzFmUUNtZE1Ja1hi?=
 =?utf-8?B?a2tzSXRybEhXUmc3NENubGlyUkYxY2tPMC9UdkdMWlJsK2xldTUyK2dzYkVD?=
 =?utf-8?Q?Xu88gx?=
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);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Apr 2025 11:59:11.6804
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 199e08a5-374d-4fb4-b06b-08dd7c14ef98
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:
	SA2PEPF00001509.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB9725

On Tue Apr 15, 2025 at 7:17 AM BST, Jan Beulich wrote:
> On 14.04.2025 19:27, Alejandro Vallejo wrote:
>> On Mon Apr 14, 2025 at 6:06 PM BST, Alejandro Vallejo wrote:
>>> On Thu Apr 10, 2025 at 12:34 PM BST, Jan Beulich wrote:
>>>> On 08.04.2025 18:07, Alejandro Vallejo wrote:
>>>>
>>>>> +            printk("  ramdisk: boot module %d\n", idx);
>>>>> +            bi->mods[idx].type =3D BOOTMOD_RAMDISK;
>>>>> +            bd->module =3D &bi->mods[idx];
>>>>
>>>> The field's named "module" now, but that now ends up inconsistent with
>>>> naming used elsewhere, as is pretty noticeable here.
>>>
>>> Well, yes. It is confusing. Also, the DTB is called multiboot,ramdisk,
>>> because multiboot,module is already used to detect what nodes are
>>> expressed as multiboot,modules. I'm considering going back and calling
>>> them ramdisk again. If anything, to avoid the ambiguity between
>>> domain modules and multiboot modules. e.g: a kernel is a multiboot
>>> module, but not a domain module.
>>=20
>> Particularly when misc/arm/device-tree/booting.txt already states that
>> the initrd for dom0 ought to be provided with the "multiboot,ramdisk"
>> string in the "compatible" prop.  Deviating from that is just going to
>> make it far more annoying to unify arm and x86 in the future.  And
>> calling those ramdisks anything but ramdisk internally is just plain
>> confusing (as evidenced in the current series).
>
> Yet the limitation of this is quite obvious: How would you express
> multiple such items?

With multiple such nodes.

  initrd1 {
      compatible =3D "multiboot,ramdisk", "multiboot,module"
      module-idx =3D <2>
  };
  initrd2 {
      compatible =3D "multiboot,ramdisk", "multiboot,module"
      module-idx =3D <3>
  };

as is done in dom0less. This is not a hypothetical, it's already
comitted.

> Have many "ramdisk"s?

As many as I require. If I was booting Xen(dom0+initrd) on
Xen(hyperlaunch), that'd be 2 (with Xen passed as the kernel).

> Even if some of them serve an entirely different purpose?

The purpose of a ramdisk/initrd is of no concern to the hypervisor. They ar=
e
specially crafted blobs consumed by kernels for purposes of bootstrap.

> See how Linux has gone to tuck together multiple CPIOs, as they can
> have only one thing called "ramdisk" (which, aiui, now no longer truly
> is).

That's an internal Linux matter. If they need 1, we'll pass 1. We do
need several such blobs, because some OSs do need them. Namely, Xen. And
AFAICS we call them modules mostly because (a) Xen does not have the
module infrastructure that Linux has, which would causes ambiguities and
(b) is typically loaded via multiboot, which does call each blob a
module.

>
>> So... how frontally opposed would you be to restoring the ramdisk
>> nomenclature? Also, for ease of rebasing future patches it'd be far
>> nicer to go back to ramdisk rather than reinventing some new name.
>
> Well, I fear I wouldn't ack such a patch. If everyone else agrees
> that "ramdisk" is the best of all names (or at least getting close),
> I'd perhaps mumble over, but let it go in.

Ok... When I send v4 I'll do so keeping the "module" rename. Meanwhile,
I'll try to think of some options. Calling Xen's modules and the booted
kernel modules the same way is just way too confusing.

I take it you have the same dislike for initrd as you do for ramdisk?

>
> (Only partly as a joke: If we dislike "module", how about "blob" or
> some such?)

Better not. Blob makes "kernel" sound like an adjective: Kernel blob.

There might be some other suitable word. I'll think about it.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Tue Apr 15 12:05:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 12:05:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.953746.1348175 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4f2O-0003Ad-EO; Tue, 15 Apr 2025 12:05:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 953746.1348175; Tue, 15 Apr 2025 12:05:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4f2O-0003AW-Bk; Tue, 15 Apr 2025 12:05:12 +0000
Received: by outflank-mailman (input) for mailman id 953746;
 Tue, 15 Apr 2025 12:05: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=moIN=XB=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u4f2N-0003AQ-KM
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 12:05:11 +0000
Received: from NAM02-DM3-obe.outbound.protection.outlook.com
 (mail-dm3nam02on2060e.outbound.protection.outlook.com
 [2a01:111:f403:2405::60e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e0349a31-19f1-11f0-9eae-5ba50f476ded;
 Tue, 15 Apr 2025 14:05:10 +0200 (CEST)
Received: from CH2PR04CA0015.namprd04.prod.outlook.com (2603:10b6:610:52::25)
 by SA3PR12MB8022.namprd12.prod.outlook.com (2603:10b6:806:307::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.35; Tue, 15 Apr
 2025 12:05:03 +0000
Received: from CH1PEPF0000AD7E.namprd04.prod.outlook.com
 (2603:10b6:610:52:cafe::8b) by CH2PR04CA0015.outlook.office365.com
 (2603:10b6:610:52::25) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.36 via Frontend Transport; Tue,
 15 Apr 2025 12:05:03 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CH1PEPF0000AD7E.mail.protection.outlook.com (10.167.244.87) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Tue, 15 Apr 2025 12:05:03 +0000
Received: from localhost (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, 15 Apr
 2025 07:05:01 -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: e0349a31-19f1-11f0-9eae-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=lUZlHaxhLu6CgDVi7nBluj9xr6WlvE/HjjM1hUd6GuTWp8HmZOHh4sZOvi6IkPIdgVKP/u8OLQ4MMGQhmpePbCQcTlPmp/wqzixIbGNJW/5LFGj8h8ZUy5ACgI4IcmiR+heaJLURHr+zPkhzFWg5C/12UNc5FTA0WEq1btJRlXwujnvQ4oTPHWRbn41DUcziKbBGEYL52Fc8zjIPbyrFViD0MelwZ1lr9O86ewq5TQSRh4dubjy4PO1fGkyHgHXfcK8X1xgE7VOM9Pcn6V4FyUYOvbGMwh+SGRuZME1i2znmx5zUz9jUtAJfLRvrL8HI0G+WcyDJPqbQPQbWqwnulQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=pt8cr6tCOMgT0yokO7uoWMtfj1MPWDXknFgNHtF+tmU=;
 b=trrPXZiYOi9xIHctVjKdXhwDSngJmAh3OrBBGw2hyvfIFGgHplxK8DH8zYjlfzHU31A9CjG7pkySuoI4Z4ULFUzyaeF41aOBvC8gMrOCAChYAYQVmfQizFtf0vOUa0nffFIscjIhmoDN8LIbDfpDY/9Nyh1xyRKmdDS2XmWVDGc96orZyPBgpKUNN3qFqLMDg5ra3kagjDdvareDQarfCkk6Ufn4HEncXG763uIu4ELptdl47DTtIx735IdD0D0sJeaSZkUPknEO7XDvcIOf15SqcpyvM9LneiOofSUU6Zu4g1KG189JacIlcQKS1wzzTlg1f66dFUCHRMDN9x7+sA==
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=pt8cr6tCOMgT0yokO7uoWMtfj1MPWDXknFgNHtF+tmU=;
 b=M2kscHh34BnTzX8S8EMf8y2J5UinizLaCiMJRrg05k/tsK0hRSpnseu7qOuTIkI6Latcj1+GSk/RNIJ/7KEZaNkcTAon1o4QiIG7Xn38KlCGjonOCrpNziRgcAV2zF5CV46mmF/GEI6nIiuYygKN67IG2sWi5Rd2SF6X6rV0bMM=
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
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Tue, 15 Apr 2025 13:05:00 +0100
Message-ID: <D9775TTK4FZG.3E5KDTZHDHVE@amd.com>
CC: "Daniel P. Smith" <dpsmith@apertussolutions.com>, Jason Andryuk
	<jason.andryuk@amd.com>, Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	"Stefano Stabellini" <sstabellini@kernel.org>, Michal Orzel
	<michal.orzel@amd.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Julien Grall
	<julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
	<xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v3 12/16] x86/hyperlaunch: add domain id parsing to
 domain config
From: Alejandro Vallejo <agarciav@amd.com>
To: Jan Beulich <jbeulich@suse.com>
X-Mailer: aerc 0.20.1
References: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-13-agarciav@amd.com>
 <6ce79cc0-1fec-4ad9-834e-680ef1f81549@suse.com>
 <D96KUGJTQO7F.39OKDX33SSKYH@amd.com>
 <1235d73d-ec62-4223-a92f-7a19d802c306@suse.com>
In-Reply-To: <1235d73d-ec62-4223-a92f-7a19d802c306@suse.com>
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: CH1PEPF0000AD7E:EE_|SA3PR12MB8022:EE_
X-MS-Office365-Filtering-Correlation-Id: 0cd7c304-12dd-4f95-476e-08dd7c15c117
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?cTdlWlFUc2UrSTFucXp2bDIvdUtIc2N1VzBNYkJ6Qk9Yd0g0RHRFbk9Td1JL?=
 =?utf-8?B?OHVnWHlhK1JNMnVhaEhyZWxvS3dMUHhrTzl2N2JoUElIeTJzV2dvQ0VJbURR?=
 =?utf-8?B?d3Z3d2pBbVdOZEhCODBmcG9VdEx5QndCRzh1VW5zMzFIbVVOZTE4cTlzeXQ3?=
 =?utf-8?B?eFo1bENpS1JZb055S2Q3UUtHU0UzT2VhMmFURS9CVmRvYjJHMTZMYm5ScHIv?=
 =?utf-8?B?UDhOOEwrODNObzBBem4rWEFWMlZJMnlqaFN3cXdZMU96a3laUEJmNzQzaURY?=
 =?utf-8?B?aXRmanFQbnQ4ek1HRlE1eTZaam15aHk1aFl4ankrc1JVT3l1MTZkY1dWbllo?=
 =?utf-8?B?YTF2VHN1eUw2MElRMXIvbmJqZVhwYWxpSXBDdElDdHczUlAwVWU5a2g4UUpI?=
 =?utf-8?B?U2hubFNPTHhyazdSK09tbWg5d0F2T2dYS0hERmpNZ2Z6R3FqV0E4MjRLTkVJ?=
 =?utf-8?B?L3pMSlNMK1lyRVhyOTNlVzNhaXZEOVMrUUNTLzBLODkyKzhBNy9sNlRPZ3Fn?=
 =?utf-8?B?c2xZNDFYU2RMWUpkdm54WDBGc3FFUkUyR3ArM1l0elhjeVhYU1VwM0JwY0pX?=
 =?utf-8?B?UkovRnMwajlYdEVISlBqSFFiejhkbXZIVVkycGJRMFRwUVdSbHRJcm9OQ3hy?=
 =?utf-8?B?RC9UUmZNbHB4Snk5T1NBcHVHSEltcGNPVXpyQ21nRkZkOHhiL3Bib1IyRTVG?=
 =?utf-8?B?bERsTFhQUzZVMmZqVXN2dGtaSDNyRnQwTU04UUhaSVJpNzlGOTl5VjZQNEpa?=
 =?utf-8?B?UjBPd3FzT29rS2Y2OC96YTFNYlNFVWhsb29Vc1NBNEt1dFdkU0ZMLzhSY3Zn?=
 =?utf-8?B?LytLZS93SkpLa3QydEtQVnFabkZzKzhqWldGbVRJa3NYcndaV0wwMHZFQjFJ?=
 =?utf-8?B?Z0s4QWF3VEh3ak5DdEhqOVcvd25QQmtndnIzMWRoNzJvU0VjbzdwNTQ5UFhD?=
 =?utf-8?B?NDFQMXIySHZ4dmVud0lReWFoa1VMV3FtWjdxdXY5cTNHUnFZQm4rdUJXb3JJ?=
 =?utf-8?B?cGwyM2JRZXJ5MUxnT2FOZExkY3ZkU0h1Mk5keHhQYkJZNDc4SDJJUS9BZVRw?=
 =?utf-8?B?TnRINzdYS3o1SmVQUlowT1p3ODBGWDBUKzNhTzF5by9Hd0d0WERFSTY5Mzgr?=
 =?utf-8?B?aFErK1AvZVZzZDhHTThFZXVwUjZsTFV6cmQyNWJ5WEo4cGJRNVNYOXJ0YmFB?=
 =?utf-8?B?Z1RubGhZSG0yUzVKNkRyT1ZCa2tJRTNPcXR4dFZ3ZDR5dVRHNkgyRThnQlIv?=
 =?utf-8?B?MXJwY0NxVDZzQzc0dzkyTWFzMDZwU08wZjhKVEdwdmt1K0lBU3N3QkxBajB1?=
 =?utf-8?B?N05oc0owYlNMM1M0dUFtb1FxenNJaDI4dEtlams0clQzRkNFR2QzMzN1V21R?=
 =?utf-8?B?ek94YitLcXpTZzRBQ21adkNJbVpOaHpPb2FpWHpsWGU2QlVLQnRtb3FXbHFH?=
 =?utf-8?B?VGcxaDZhbjdic3B6K0pYUkI5TWRWTWxMQzExai9oc3pJdGU4YzM1NE5sQ2ZM?=
 =?utf-8?B?d1FtVWtackxJSjRxb3I5cjFCSzB6bDNTa2dWZDhndlQvTVJTR3czQUU3c1hi?=
 =?utf-8?B?RnZ0TnptM3lLTVQxNHd1MHA5NTNxRTFUNnVYMmNqYjQzWTZuTXhkeHZlM3lu?=
 =?utf-8?B?R1h2bWtQdlEzMEtwWWp5WVE3dlRWbnJjQzRYQ2JZaUtSL095U1BZUFlidWdY?=
 =?utf-8?B?ZVRJdkF2TWpvTUZ2ekp0c3BFNWxOdWkzUU5NU0NKTVNCWFJWQ0ZRN3VLTGV6?=
 =?utf-8?B?d2NESkF1WHc2MzZCOW4yK1I2clZCTFl0YXpOMjN0a0NsWjZmaThRRHd2SXQx?=
 =?utf-8?B?dDJ4TjhoVWNNSDByb0RDUVQwVmFVTUNibG9WeCsvazY4MHpFcUhFZTloUmNL?=
 =?utf-8?B?NFp0MW9jbERtM0NUcFppbnZiWlZwWWtaR1lMYnEwZ0FmVDhzNG43d2luMk9n?=
 =?utf-8?B?M0J0WFJHUXJOZ0ZtNXBBaTkzOE9OdzVOc0s3ckZ3MmpjdEtYdWhNbUdjODhF?=
 =?utf-8?B?VEh5YUVMRi94MmpSNUZSb1BQb2xTOFd6VTNJNEVQKzFLNlVXb0wzRmhYVy9B?=
 =?utf-8?Q?pEOPOK?=
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: 15 Apr 2025 12:05:03.1539
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 0cd7c304-12dd-4f95-476e-08dd7c15c117
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:
	CH1PEPF0000AD7E.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA3PR12MB8022

On Tue Apr 15, 2025 at 7:27 AM BST, Jan Beulich wrote:
> On 14.04.2025 20:35, Alejandro Vallejo wrote:
>> On Thu Apr 10, 2025 at 12:49 PM BST, Jan Beulich wrote:
>>> On 08.04.2025 18:07, Alejandro Vallejo wrote:
>>>> From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
>>>> @@ -158,12 +159,42 @@ int __init fdt_read_multiboot_module(const void =
*fdt, int node,
>>>>  static int __init process_domain_node(
>>>>      struct boot_info *bi, const void *fdt, int dom_node)
>>>>  {
>>>> -    int node;
>>>> +    int node, property;
>>>>      struct boot_domain *bd =3D &bi->domains[bi->nr_domains];
>>>>      const char *name =3D fdt_get_name(fdt, dom_node, NULL) ?: "unknow=
n";
>>>>      int address_cells =3D fdt_address_cells(fdt, dom_node);
>>>>      int size_cells =3D fdt_size_cells(fdt, dom_node);
>>>> =20
>>>> +    fdt_for_each_property_offset(property, fdt, dom_node)
>>>> +    {
>>>> +        const struct fdt_property *prop;
>>>> +        const char *prop_name;
>>>> +        int name_len;
>>>> +
>>>> +        prop =3D fdt_get_property_by_offset(fdt, property, NULL);
>>>> +        if ( !prop )
>>>> +            continue; /* silently skip */
>>>> +
>>>> +        prop_name =3D fdt_get_string(fdt, fdt32_to_cpu(prop->nameoff)=
, &name_len);
>>>> +
>>>> +        if ( strncmp(prop_name, "domid", name_len) =3D=3D 0 )
>>>> +        {
>>>> +            uint32_t val =3D DOMID_INVALID;
>>>> +            if ( fdt_prop_as_u32(prop, &val) !=3D 0 )
>>>> +            {
>>>> +                printk("  failed processing domain id for domain %s\n=
", name);
>>>> +                return -EINVAL;
>>>> +            }
>>>> +            if ( val >=3D DOMID_FIRST_RESERVED )
>>>> +            {
>>>> +                printk("  invalid domain id for domain %s\n", name);
>>>> +                return -EINVAL;
>>>> +            }
>>>> +            bd->domid =3D (domid_t)val;
>>>
>>> And a conflict with other domains' IDs will not be complained about?
>>=20
>> Hmmm... sure, I can iterate the domlist and check.
>
> Well, just to clarify: The checking doesn't necessarily need to happen he=
re
> and now. It may also happen as domains are actually created. Yet then I
> think a pointer there (in a code comment) would be helpful here.

That'd be fairly unsafe. In the case of parallel boot it'd be
indeterminate which VMs end up running if they happen to have a domid
clash. It's better to detect the error earlier and crash before any get
to start up.

>
>>>> @@ -233,6 +264,12 @@ static int __init process_domain_node(
>>>>          return -ENODATA;
>>>>      }
>>>> =20
>>>> +    if ( bd->domid =3D=3D DOMID_INVALID )
>>>> +        bd->domid =3D get_initial_domain_id();
>>>> +    else if ( bd->domid !=3D get_initial_domain_id() )
>>>> +        printk(XENLOG_WARNING
>>>> +               "WARN: Booting without initial domid not supported.\n"=
);
>>>
>>> I'm not a native speaker, but (or perhaps because of that) "without" fe=
els
>>> wrong here.
>>=20
>> It's probably the compound effect of without and "not supported". The
>> statement is correct, but it's arguably a bit obtuse.
>>=20
>> I'll replace it with "WARN: Unsupported boot with missing initial domid.=
".
>
> But that still doesn't fit the check, which compares the given ID (i.e.
> there's nothing "missing" here) with the expected one. The "no ID given"
> is handled by the plain if() that's first.

It's not that the domid is missing from the node, but that the domid in
the node doesn't match the initial domid. Maybe s/domid/domain, then?

  "Warning: Unsupported boot with missing initial domain"

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Tue Apr 15 12:11:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 12:11:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.953760.1348185 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4f88-0004tF-1o; Tue, 15 Apr 2025 12:11:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 953760.1348185; Tue, 15 Apr 2025 12:11: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 1u4f87-0004t8-Uo; Tue, 15 Apr 2025 12:11:07 +0000
Received: by outflank-mailman (input) for mailman id 953760;
 Tue, 15 Apr 2025 12:11: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=JN3i=XB=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1u4f86-0004t2-AN
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 12:11:06 +0000
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 (mail-db8eur05on2062f.outbound.protection.outlook.com
 [2a01:111:f403:2614::62f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b330ba9d-19f2-11f0-9eae-5ba50f476ded;
 Tue, 15 Apr 2025 14:11:03 +0200 (CEST)
Received: from DUZPR01CA0094.eurprd01.prod.exchangelabs.com
 (2603:10a6:10:4bb::20) 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.8632.36; Tue, 15 Apr
 2025 12:11:00 +0000
Received: from DB3PEPF0000885F.eurprd02.prod.outlook.com
 (2603:10a6:10:4bb:cafe::eb) by DUZPR01CA0094.outlook.office365.com
 (2603:10a6:10:4bb::20) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.36 via Frontend Transport; Tue,
 15 Apr 2025 12:10:54 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DB3PEPF0000885F.mail.protection.outlook.com (10.167.242.10) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.12
 via Frontend Transport; Tue, 15 Apr 2025 12:10:58 +0000
Received: from DB7PR08MB2987.eurprd08.prod.outlook.com (2603:10a6:5:1c::25) by
 AS2PR08MB10376.eurprd08.prod.outlook.com (2603:10a6:20b:545::7) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.35; Tue, 15 Apr
 2025 12:10:25 +0000
Received: from DB7PR08MB2987.eurprd08.prod.outlook.com
 ([fe80::d53f:b16d:70a5:8668]) by DB7PR08MB2987.eurprd08.prod.outlook.com
 ([fe80::d53f:b16d:70a5:8668%4]) with mapi id 15.20.8632.030; Tue, 15 Apr 2025
 12:10: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: b330ba9d-19f2-11f0-9eae-5ba50f476ded
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=D9e2QfON9UXIX0HbYOSGa7JSN9I+OlCsTVfGp4coUvfGOxTNpmFjWOvpNqa2V2SXNv1MgJ0fDTkpdFPzeLKPW2Eh6Fb031kHkSQtlikDDCFxDGVZAgbXyDVRPxPrcBmQf5AlfUzCSbzEmetDEr/KSR2xxaFdde++bWBuwPtQUdHxne1uRt3nizYQJH2BCXbWgDJt5+5TmmQ2ha4qqeKRXtQG1tBqMzlFxSIL4KFFGZN5P/Sr7AXRoTJzIrxzhoT2wjj1ErFdbusbOQK0F88Z+IlwxkBxSSuYhMk+2vMFzorYKndYjvDVxLKJnfbG+qJLZ74wNAcYST21bV4Ej23k1A==
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=maXQIFrepbcnWNUy7X+0V7vl3j2FxLUceEItRnrI7XM=;
 b=V+Un2fz45151rA58QIGmId5Gu44q4yDBFBRsA60OWuM75wFje4S/fpI05A9RiADOQwhs4eDN+nHeVDRKroh7+IdyafCtu6VV7QlwHXRJ7TOuqD+EZv24Rk0m72423kXub9DZeoW5Zrjb8GaQMu6Ac10Z1wvRHeubwu0ox2+/Z3TUwzV1FLTxQl8wGeRjpiYB5mk8dMcYNlAmh+vKCBFIT1ShStKasH5ZLzWJG0F3cT+t9y//DpyzYozURxC0ndlTPl8nL6tau7CxXQ85jofnzU+XZ+w6fA57TURR5oWLeSxXdU+lraawickrplxin4fTWIXN+bJ5hmmCfxFemaORlg==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=arm.com;
 dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com;
 dkim=pass (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=maXQIFrepbcnWNUy7X+0V7vl3j2FxLUceEItRnrI7XM=;
 b=cLq/cqLDafwzb8RTc0wsF8xhgMfPgWuTSxWlIt4Ul6/44cBWRph7gqrMWCStn2G9P8nbo5hVHNk6hAHbExWT/VnMNSUpCkK87yR1rR7QSm4Pk4EEmLSeVqGcsPmXevsf0FdjeWnDromLxadVh6gmapdkapfU1cKKgBYyo96rolw=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=MjDPlLh+uT7PtY9Ux+sp1GjnpgC1+mUXl2RVQsqVvgCkOxIDqqnE26DJe21O3SalVoVSO9xtNRZLVhaawZkNakjmDzUZuZiQsnSSO2FkaHYnhbwaOPiPpq7Npa1jQt4kToUFn9jkwnL7Y6lUiKTgY56DtXJ+nAD1X8VqbDOhLjW83ju8JykXRv0nYWm4Fr+wPJBGEtCk6E8Ic3Q2vc8FsaVM0cRL18NIodC5ZnLqaJHtzSZsdOme6Dg03azQn7oomXkPVwi8i+h0j1G92qsB3kiQpjky/IFUnWkd0A5LtTvMFfutBLIvwrknwKnRhYppL7jtPGcMwJ+lbbR111P4ew==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=maXQIFrepbcnWNUy7X+0V7vl3j2FxLUceEItRnrI7XM=;
 b=lDzNhojcN/7X0pWnlM4VEiQ3I4bMM66eUng6XE1WCQL771G7Cjk7GzwxzqkWgEQ0nJJn7bb51BeuFH0icJU0rfRfkotKWeJb4shligxtEOIQqU8l+iPljsGgQAtRWZwUtr1cRstATGSE8YQL4v/tnzZLROAqXKI6yH06HzHKkUXLQZZUN9XzRV/L5u1DEujZ8U/rdZXPKFQhIEbc/ByhShozWV1i6K5ZmgL2fz6/shOPaVdrMI6YTjZv93XcrB1q4gi8gMDSOPjeyO6Mjij9URLRKtukW+KvsZrJDQP4d/PWJ7hlqaRL6sEUZs1OF5k4M8sl6b6vMnSB+bkHVioosg==
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=maXQIFrepbcnWNUy7X+0V7vl3j2FxLUceEItRnrI7XM=;
 b=cLq/cqLDafwzb8RTc0wsF8xhgMfPgWuTSxWlIt4Ul6/44cBWRph7gqrMWCStn2G9P8nbo5hVHNk6hAHbExWT/VnMNSUpCkK87yR1rR7QSm4Pk4EEmLSeVqGcsPmXevsf0FdjeWnDromLxadVh6gmapdkapfU1cKKgBYyo96rolw=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Stefano Stabellini <sstabellini@kernel.org>, Bertrand Marquis
	<Bertrand.Marquis@arm.com>, Julien Grall <julien@xen.org>, "Orzel, Michal"
	<michal.orzel@amd.com>, Ayan Kumar Halder <ayan.kumar.halder@amd.com>
Subject: Xen Armv8-R booting protocol
Thread-Topic: Xen Armv8-R booting protocol
Thread-Index: AQHbrf9e2Q3ZtL+0AUaAx8EjnSV7Wg==
Date: Tue, 15 Apr 2025 12:10:24 +0000
Message-ID: <F10A37DE-4F3B-4A18-BAB7-B95616516A2A@arm.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3826.400.131.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DB7PR08MB2987:EE_|AS2PR08MB10376:EE_|DB3PEPF0000885F:EE_|AS4PR08MB7856:EE_
X-MS-Office365-Filtering-Correlation-Id: 6ac851e0-ec58-4d24-ed94-08dd7c169509
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?U3NpelM3UlJWcE9KaGtSL2F2MXZoMG0zYzBXSzV6eFRIdExEYkNSWFd1OFVn?=
 =?utf-8?B?V3RiMDlLU0hPWDhLODVFRkFmMWFSVDVva1VNUlB2cStrTWZaZDU3L3BXRWFq?=
 =?utf-8?B?YnR1M0crbkg4Y2kwSHoreFVDQlpWbkZVK0xGc083c1YrRGdJcXZQbXpPTlBR?=
 =?utf-8?B?QkRLbHM4SVpVVGtQeUlWWENzMHA0cjlpVlRsRmJMTXVLbEg5L3pZKzVITzY5?=
 =?utf-8?B?RHBoenQybEU4b0ZSVmlJTWYxUHpMY09YWlBVSVBvc08zdktQNGU2cjJLUDFV?=
 =?utf-8?B?SlJ2UE93WjBGWDROVktHbktsdVlkYnpwQ1cxZGUyZHVWNFdjZEdHeFk0VGs1?=
 =?utf-8?B?R1F2VGEyemVtM0FrOTVheG5PczdOamx1VktGNndXTEVTUkRyRXFjTDVzdGdN?=
 =?utf-8?B?WmdmNU55bms3RzNSdGdIRUd6OUQ1NHMxRHBHWHNiSUpVWUVIUXZEVHRsL0p5?=
 =?utf-8?B?c2I5cWV4ZXRhTHorb3NlQkZDN1M1RHFZQmJhVitFY005bFNKcGkzamJjdFpU?=
 =?utf-8?B?ZXgxTnUwdmtGVzlrcTBTUHVMWW9ZUmVMekJKQmVHL0lzRUJlTVJhZ01ZRFNN?=
 =?utf-8?B?YVRod0Q4V0c5blowYUFucnBkWktxektGVnI5NUVsNHlvWGRJdnJIRHR3aTZ4?=
 =?utf-8?B?UHdvSXFRQzgrWDBkK0ViUjgzSmk1UVFYYkl6REgxaXpUWjE3WFZxb1R3Qmo4?=
 =?utf-8?B?NWJ6KzUvemhnVFBqWUZFQzBwNktwRTRCS3ZoQUtFK1M3UVMvRWJsTk5QZGNo?=
 =?utf-8?B?NHF3UlBIaDB1QW9UQ1J4WG9qSCtWdFd3Uk91dk5hY3V1ZVlZL292dStFUFJQ?=
 =?utf-8?B?NzRjcVdvQTdYZlBvU1hMZGpHZi9wT21qWUV2bm8raW53eXplNXlmc085Ukd1?=
 =?utf-8?B?NHlsN1pxWkxENTZDZ3E2UlJ4bFZVelhONUI1QnVFdUR2VEZQTmgyS0JrRlZt?=
 =?utf-8?B?Q1d1Zkt1UDc1QWpBL0JlQnU0N0xycXhJYUZhc2c4WSs2Sm5OaWpXQW1oaTU5?=
 =?utf-8?B?UlI1Qzg4a09SSEhnZGNBR1NGYU5jRW96cnlBcWx1S3UrQUMvYUxhUUVES1Yz?=
 =?utf-8?B?cStDajB5dmFqcWRtSlFQanVKSU5NT21EWExDbmp0UzdVVDRrQi92M1dyakZu?=
 =?utf-8?B?aDNDc0FUbVA1WDVBc1BwZ2ZDbHNmb3ZHaittcGU2L1BnRWZKQWo5dDF6M0JK?=
 =?utf-8?B?NHV1UVl2bVFDczE4MnVZRFRNNDUvUEp5RWZqZXk0SlJ6a1orc1VYamx0MHFO?=
 =?utf-8?B?L0R1Zi9LVFNrOXhZZkZnUTRBZ1FMcjV6aTNYOCtDK1FiQ3J1Rmw5dEhmZExS?=
 =?utf-8?B?MEROVE5QeTZzeVlDYlFMRnQ5YW8weW5SYUNmRzE3SkJQKzZ1UWxIUHRVU2hm?=
 =?utf-8?B?Y21RR1g0RFBpUHdvQ3ZzTHJWcDhiUWU0R2FMeVo5OUwxdUNqN3FvOEpQWTVm?=
 =?utf-8?B?dWhwaDQva0w5clpHak02c1FqSUIwV2RXY3ZHdytZN0dHWU9tcWc4bnkwQXlK?=
 =?utf-8?B?ZFpDSmpFT1hoaEFzMGJkaTNhellyZHBiazY1YUROV2NLQzUrMnVXQ294TVhq?=
 =?utf-8?B?bk16bnIwK3RkNExnK3YzT0VIa2xxWVNrUStBU2kzMHBKVlN1SDJqaFJPRFIv?=
 =?utf-8?B?N0xLVng4NmI5MEIrbDhhMERYMkNvVndlMndLOWZuR3RKVDhzemhCMlQ5QmN2?=
 =?utf-8?B?VFdZbGZqanJ2YmRBMHRoQzE4czcxTVZzZHAwdEl4UGpwelVUU3BWVW82V29V?=
 =?utf-8?B?eFlUb3Z4K255RGhWRmttTlN0OHRVNFJnQW1MQnIxSmdYa0E5endpTTBtNkRy?=
 =?utf-8?B?SHl5MG5COEViUWxYaDJzUHRKbUJONXBiR0dNbU81NzR0L2JiVVlMVGNXNXBi?=
 =?utf-8?B?OHV6ZEZKMGRRbUkrc3ZiWlpVZVFBcElBQXlFMVZkYVFNd2RVRHJZL0YxMlZB?=
 =?utf-8?B?Qm1BV3lPWnIzME16WG1MRHArMEhTZzVqRWZEQ3JORHFYeXNqQTg0M052UWYw?=
 =?utf-8?Q?yeAYHPw2GLj6lZtAcSEv71NvRCQRDc=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB7PR08MB2987.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: <987667777EDE8B4D9AE31F0DCA4D087A@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR08MB10376
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB3PEPF0000885F.eurprd02.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	20a68947-5c3f-4617-f937-08dd7c1680d0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|14060799003|376014|1800799024|82310400026|35042699022;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?c1FiWTVLMTNnNXlYVGRvY0JhdWRKME9nRGJPQ2RtOGZCZFg3dU5ZS1VvT2U5?=
 =?utf-8?B?Q3AwUk1iTXJsVkZiS3FEZkFmcmEvYzQ4cncvS1ZQT1hwTStzTE85VzY4WW94?=
 =?utf-8?B?VnJvSkwvR3NRNTVXVzNYQjAyalg5aWdsRVJqQzdzbkEvNlBpR2xXSWR0S3ly?=
 =?utf-8?B?M2JnaTM2R1YraGFPK2Z4SkxCTnNURncvejBrYXNXcFhPdWlER0F6WlliQmxH?=
 =?utf-8?B?bzc4b1ZDcVNtaWd6K0ZERFI2dERZVUppOE80Qm5mM09VK0oxTHRMdFUwcEd6?=
 =?utf-8?B?ZU9pcUpmN0lhUVAyYkVUb293WFlvRm8rcDB3TFJxNVpDUDhKUlAwSS9yRWJU?=
 =?utf-8?B?SFRjNytRNkJzcFN2NXVnWW9DZjNIUmFLY3Bobk9MRTdEZERla21vUktqMi9R?=
 =?utf-8?B?clJYYjM0ZFEvTkNuZ3NRNHRSOWU2cDI2RDlycjZ1ZC81a3FtRWJlSzFhcGNu?=
 =?utf-8?B?ME1DOWplMHB4clpraGphMTcwNUE4WnU4TjgvTldLN0FQdm5hRk1IZ1hSVWhJ?=
 =?utf-8?B?WmdoL3k0Q2VOcFYvSzZ4bzRRSTNHL3BKc0YvM3Jvd09UUFU3LzI2QmhzL3Rj?=
 =?utf-8?B?SXh4R0xIQUxZWVhHL2xmMWtCSWN2QnNsQ3JGYzY1OVN3Yms1Q2ZpL2loUlBL?=
 =?utf-8?B?bWYvVXFzeHVUbGRqcHdQdmxka1VpSWZoa09QUFRCbmtYR3lCMU1UTzFicDIv?=
 =?utf-8?B?Kzk3bkR1YnhLS2k3cTFMWlh3dElnWFBzMW1MSDJmeGx4c3JkRk92WWo2Um9t?=
 =?utf-8?B?ejUxNTdEUkR3RnQzSUVzV0JrcGdxS2d6R0szMmJmRW8xRE1YeCtNWVRTREVJ?=
 =?utf-8?B?SUZZclgzZkRvWlJKOG1wL0J1c3h5NHhmRUMrOVFRU0hPYmo0bkhoMVJkeGx3?=
 =?utf-8?B?MTlEczFyTytvd0QvNnhteGcxZ3hSQjhBNllZNFdnNHZsY3VkdE9IVkpOMlVS?=
 =?utf-8?B?RHE5RzRlY2QwVFBUSzg2SlJsNmhyVkJFZlpkR3ZLLzRiNDJwWUFiaFQwMDY4?=
 =?utf-8?B?ejNpV05kUlFITVR5OWo2QWNxaEx0a0VGZ0JELzdPSDgzbUx0ODd6a01uSVpo?=
 =?utf-8?B?UDEzbU94K1lOVjNwdTRJdkZyRi9UMTBTQ2J6UER1WHRxMTlQbTBOckdOeEh2?=
 =?utf-8?B?NXRLeXdkTHhRQ2JiS1NqMUpBYmVYWVZWem5PRnpTaVF5OERRM2svK1k0ZXRr?=
 =?utf-8?B?YWpGNVpGY2wybVU2TDlRRnZpeU5vWE55MVc3d0taSnFCdDg4SSt6Z1pPMlNs?=
 =?utf-8?B?WGdHdkIyUVpWYkZXbllZYkJqMG4waFdjZytGakNleFJIZTFPS3c5dmljSnJr?=
 =?utf-8?B?MVhCQVFzeE84KzZRUkMxSlRuNFdiNmNyaFg2WDhNcGRUSUhvSnRXdkFNZFJL?=
 =?utf-8?B?ZmwrcUd0MVFLMmV0RCtJKy9PVjJ1bFU2dExTY2x1ZW8wUWJDZndEN1VRM21q?=
 =?utf-8?B?cXhtcjN5QjRqTWZmN0tHdEdaNVBmOFVvbU1NdUVVTFRMbEVZRHQvQWQ3eVZG?=
 =?utf-8?B?WW1WWjdEOWxjZWc3RnJIczQzSGk2VGRQZERSa25Ed09ld3hVdFAzclBDVENL?=
 =?utf-8?B?aFd3MjEvcEdXRVR0TmFLbk4rRTJLTHkxREt5M3VYaUN5L2JRc1pKR2FXT2N2?=
 =?utf-8?B?SHhJNndZSGFpUHdyS0dHdGp4b3lmVW9UMjdqUUV5TWdlV013RmxhTVBqR2ha?=
 =?utf-8?B?ajhJMkdQNFJ5VWROby80aVIvckhsUWZIQURvTWljUGRyQTAvOXEwNmNKdlV4?=
 =?utf-8?B?NnQzTmNzQkhCd2FNcnBYYmtpRTJqUVIycmNsaHhYQXIyVDdGSzRuTFBZb2FG?=
 =?utf-8?B?dkhrN2R1QUFMMEM4Wnc5VytRbHp5UXkzdmxzSkUyTVFReFd4TWR0dEVhQVJX?=
 =?utf-8?B?RVlBSDhsZUdsMXdQVVBiUG1IcWQ1ak5UOHJGUytUUjQ5UUcvcEgwVjRYN1FO?=
 =?utf-8?B?dFVocVpEM2Y3T3FkdFFDU01xTzBjNVFEWmxrekZUSHYxTkN0NkR2UHRUTE5m?=
 =?utf-8?B?Ums3Rld0RWhuVFJ0dGRTWmhGdFpSTVBNRm52aXY0c3dJbVcvakRIZ1hwcTJw?=
 =?utf-8?B?dXpQUSsveWlVeVdqeXJBVFo2MzBWKzArakhDZz09?=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(14060799003)(376014)(1800799024)(82310400026)(35042699022);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Apr 2025 12:10:58.6965
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 6ac851e0-ec58-4d24-ed94-08dd7c169509
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DB3PEPF0000885F.eurprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS4PR08MB7856

SGkgYWxsLA0KDQpJ4oCZdmUgc3RhcnRlZCB0aGlzIHRocmVhZCB0byB0YWxrIGFib3V0IGEgcG9z
c2libGUgWGVuIGJvb3RpbmcgcHJvdG9jb2wgd2hlbiBydW5uaW5nIG9uIEFybXY4LVIsDQpjdXJy
ZW50bHkgWGVuIHVzZXMgdGhlIExpbnV4IGJvb3QgcHJvdG9jb2wgYW5kIHNvbWUgb3RoZXIgcmVx
dWlyZW1lbnRzIHN0YXRlZCBpbiBkb2NzL21pc2MvYXJtL2Jvb3RpbmcudHh0Lg0KDQpVbmZvcnR1
bmF0ZWx5IHdlIGRvbuKAmXQgaGF2ZSBhbnl0aGluZyBhbHJlYWR5IGF2YWlsYWJsZSBmb3IgQXJt
djgtUiwgdGhlIG9ubHkgaW1wbGVtZW50YXRpb24gb2YgYSBib290bG9hZGVyDQppcyB0aGUgYm9v
dC13cmFwcGVyLWFhcmNoNjQgd2hpY2gga2VlcHMgdGhlIE1QVSBvZmYsIEkvRCBjYWNoZSBvZmYu
DQoNClNvIG15IHByb3Bvc2FsIGlzIHRvIGFkZCBhZGRpdGlvbmFsIHJlcXVpcmVtZW50cyBpbiBv
dXIgZG9jcy9taXNjL2FybS9ib290aW5nLnR4dCBmb3IgdGhlIGNhc2Ugd2hlcmUgWGVuIGlzDQpz
dGFydGVkIG9uIEFybXY4LVIsIHVuZGVyICJGaXJtd2FyZS9ib290bG9hZGVyIHJlcXVpcmVtZW50
c+KAnS4NCg0KZGlmZiAtLWdpdCBhL2RvY3MvbWlzYy9hcm0vYm9vdGluZy50eHQgYi9kb2NzL21p
c2MvYXJtL2Jvb3RpbmcudHh0DQppbmRleCAyMWFlNzQ4MzdkY2MuLjM5ZjAyOTE1M2UzOCAxMDA2
NDQNCi0tLSBhL2RvY3MvbWlzYy9hcm0vYm9vdGluZy50eHQNCisrKyBiL2RvY3MvbWlzYy9hcm0v
Ym9vdGluZy50eHQNCkBAIC02Miw2ICs2MiwxNCBAQCBYZW4gcmVsaWVzIG9uIHNvbWUgc2V0dGlu
Z3MgdGhlIGZpcm13YXJlIGhhcyB0byBjb25maWd1cmUgaW4gRUwzIGJlZm9yZSBzdGFydGluZw0K
IA0KICogVGhlIGJpdCBTQ1JfRUwzLkhDRSAocmVzcC4gU0NSLkhDRSBmb3IgMzItYml0IEFSTSkg
bXVzdCBiZSBzZXQgdG8gMS4NCiANCitXaGVuIFhlbiBydW5zIG9uIEFybXY4LVIsIHRoZSBoaWdo
ZXN0IGV4Y2VwdGlvbiBsZXZlbCBpcyBFTDIgYW5kIHRoZSBvbmx5DQorYXZhaWxhYmxlIG1vZGUg
aXMgc2VjdXJlLCBoZW5jZSB0aGUgYWJvdmUgcmVxdWlyZW1lbnRzIG5lZWRzIHRvIGJlIGFkanVz
dGVkIHRvDQordGhpcyBjYXNlOg0KKw0KKyogWGVuIG11c3QgYmUgZW50ZXJlZCBpbiBTIEVMMiBt
b2RlLg0KKw0KKyogWGVuIG11c3QgYmUgZW50ZXJlZCB3aXRoIE1QVSBvZmYgYW5kIGRhdGEgY2Fj
aGUgZGlzYWJsZWQgKFNDVExSX0VMMi5NIGJpdCBhbmQNCisgIFNDVExSX0VMMi5DIHNldCB0byAw
KS4NCiANCiBbMV0gbGludXgvRG9jdW1lbnRhdGlvbi9hcm0vYm9vdGluZy5yc3QNCiBMYXRlc3Qg
dmVyc2lvbjogaHR0cDovL2dpdC5rZXJuZWwub3JnL2NnaXQvbGludXgva2VybmVsL2dpdC90b3J2
YWxkcy9saW51eC5naXQvdHJlZS9Eb2N1bWVudGF0aW9uL2FyY2gvYXJtL2Jvb3RpbmcucnN0DQoN
ClBsZWFzZSBsZXQgbWUga25vdyB5b3VyIHRob3VnaHRzLg0KDQpDaGVlcnMsDQpMdWNhDQoNCg==


From xen-devel-bounces@lists.xenproject.org Tue Apr 15 12:22:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 12:22:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.953774.1348196 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4fIw-0007o6-0Y; Tue, 15 Apr 2025 12:22:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 953774.1348196; Tue, 15 Apr 2025 12:22:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4fIv-0007nz-TO; Tue, 15 Apr 2025 12:22:17 +0000
Received: by outflank-mailman (input) for mailman id 953774;
 Tue, 15 Apr 2025 12:22: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=moIN=XB=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u4fIu-0007nt-0q
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 12:22:16 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on2062c.outbound.protection.outlook.com
 [2a01:111:f403:2415::62c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 42552151-19f4-11f0-9eae-5ba50f476ded;
 Tue, 15 Apr 2025 14:22:13 +0200 (CEST)
Received: from MN0PR02CA0029.namprd02.prod.outlook.com (2603:10b6:208:530::32)
 by MW6PR12MB8865.namprd12.prod.outlook.com (2603:10b6:303:23b::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.34; Tue, 15 Apr
 2025 12:22:08 +0000
Received: from BL02EPF00021F6E.namprd02.prod.outlook.com
 (2603:10b6:208:530:cafe::d7) by MN0PR02CA0029.outlook.office365.com
 (2603:10b6:208:530::32) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.18 via Frontend Transport; Tue,
 15 Apr 2025 12:22:08 +0000
Received: from SATLEXMB04.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.8655.12 via Frontend Transport; Tue, 15 Apr 2025 12:22:08 +0000
Received: from localhost (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, 15 Apr
 2025 07:22: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: 42552151-19f4-11f0-9eae-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=uC0KxWtJiZEhWogMkVaKS3ZpkvjzR0Ycb+GZWayi61zHWKAT+HFyIttaZFz5/0x5oYyQawmMb3mVj3AB7VEvH4zVsisYhIHNMh/3iUMgatlPa1hSmXQuC4HShqMqL0hZne8YPf9grus4uP8CMA7njGJ3aGYNn58UsmPL3AStAy1ajrKZah3AaN/qHDLTwLO1WqrOY1F/TUXqR3iEOqc9/QJQ+zukjD8ViAqPxrwxvXkCBIS7LL/eSx/q3iZDf3Eelgb4dJ0zARvVCpL9F+/zY309b9KpAGotfyGAnBF01zeQUWe8OA71/XQkleALfF3FcpSLXvtxV0tYotgNN1kylQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Y4oLhbG+2YnehDsmZwj+uRcPVWI8k8GPJD2dGDiForo=;
 b=tIhL6JrtHlFZp9BQ3STboDjZXSYA7PCAAYm2P7k1CvU3qlBRfVXQ3WSozRBGyQ8jfu7R8tMlzg/EPB0XHRvakdL+Kjzi1kIr93ZdSPHomCqte1KFfEW5/vqV2k4SfdreKM2bacZS6viUbxIS5zt7ZI8B/dN+gMiZqi8YO1/EkbGBm2Vbl+eoQ4HwKYUF2Cbddthnwfsct7chav5WkHmqKMldqJtKOC8F4ic70XSYS1InJdXf/HP4ZlCLqoyxlBv4ZB0+eFOOdqQuQoJXudD2v4rGcQgkELaMeYL7rVktkA0Id9gnncn1v8HpDw04772fAyXmwCtqdSpx3SOLztRVVQ==
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=Y4oLhbG+2YnehDsmZwj+uRcPVWI8k8GPJD2dGDiForo=;
 b=utO+L1HAnSHjwHjK8cK1DmAULVtxeTgDnct3RMboHlmTWrArNXaJDftFqPRyqTTWjh0iO1L2HdbYO7E1NGTMSBIjlrcZjTUv2iyePYOpzP6FlICAXhdIpm5bvzVb6g3tBkVvrnObb7ZDqI/7GsKn/wYdbwePm5osfKVakga0NY8=
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
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Tue, 15 Apr 2025 13:22:05 +0100
Message-ID: <D977IWWCSWMK.2JV329ZHXLA2J@amd.com>
Subject: Re: [PATCH v3 16/16] x86/hyperlaunch: add capabilities to boot
 domain
From: Alejandro Vallejo <agarciav@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "Daniel P. Smith" <dpsmith@apertussolutions.com>, Xenia Ragiadakou
	<xenia.ragiadakou@amd.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@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>, Jason Andryuk
	<jason.andryuk@amd.com>
X-Mailer: aerc 0.20.1
References: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-17-agarciav@amd.com>
 <93bad6aa-57a8-427d-a0f6-924f03f0db34@suse.com>
 <D96M14WZ37ZW.D7AAHJ3RMV9D@amd.com>
 <2b269381-d002-4aa5-bad4-8c677b8a4b0d@suse.com>
In-Reply-To: <2b269381-d002-4aa5-bad4-8c677b8a4b0d@suse.com>
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: BL02EPF00021F6E:EE_|MW6PR12MB8865:EE_
X-MS-Office365-Filtering-Correlation-Id: 3c8366e7-f3a3-4e72-f3f5-08dd7c1823fb
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|36860700013|1800799024|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?TzN0YTBjOEV6MGJINHRKS0oyTUd4RFdYRUQ5M092R3NTUTlOUHRUZnlwVzRO?=
 =?utf-8?B?MThqd1o5eVlQUmJjaEl1Vk0wSkROYVNXaVRuRnpKNmptOUlQTG1KdlVWNUxE?=
 =?utf-8?B?Qzl6Yk04Y3VteS9zMzhXMGpZTEZpcmt1Y0pobGlMd0s5RGpOTG9HTVNGOHJk?=
 =?utf-8?B?UlhERkFUYXQ2UDJwdXhaT050S2pMeVdIZVpic2FHaVFIbSt6UWN0Q1NjTmVB?=
 =?utf-8?B?dU5KMXlmSnhkbFhTQ1NmRlcyQVJVclMwWkpQTXNMMkEzZktaZjZzM2xoUXpE?=
 =?utf-8?B?T3dYbUc0RWFJclh1eUFXbU5COFJqYTFCWHo3SFI1OFpNbDNXTnRRM1NOb1Zm?=
 =?utf-8?B?QnNGQkRMNFp2WkJhMEdjZzBycmRQU0o5bTQ3TkpCMU9qNjkzemcwVldrYzVp?=
 =?utf-8?B?emg4b3pYbHMxeVlxU1NpRlBWeGZPN3JsK3pjd3JWOGl2dWVpK3BKTnlkQ1F6?=
 =?utf-8?B?VDNsMHZzaktXb0t6K2JpWUZCZ2J2WVVXSTZZODFDUFJXNnZvZFExZHBlWnNV?=
 =?utf-8?B?bytjVWE5bVhUNkErUmhCKzFtNGtrUmpKOXZBQ1p6NEJ6SVBrcVlWRW1CZ0R1?=
 =?utf-8?B?M1FtY3dLRFNaOXpRUFdYaWJlNzJTc1hyVVlrRWJMYnNmNWtVOUdwVUZnVm5v?=
 =?utf-8?B?OTV5Wi9uTGJIelpDZGV4bzlER3VrNHJ3c24wMTJhdjJJV1VQSHR5Zlp2UUhC?=
 =?utf-8?B?Q01Ubi9WOWxVb3oxRGN6N1VwUGsvZFdBY0MvWXIwSENYNUxUS1Vhd0RQaFpR?=
 =?utf-8?B?bkRGb1BDNVErL3JaenVpWnU0NnhJTzA2ZlhKZ2E4OXplYkdCN0ZGeTN1dDlJ?=
 =?utf-8?B?OFJZYmRVbE5ybHlnaXBlTVJJN0daRjhTRVhEWEVLU2I0OWVTdEpQdTVMQVd4?=
 =?utf-8?B?LzYwYi9JMHI2ejExN2QzTENiL0NsS0dtUlg3VHc2U3RTcjBVLy9kckRqMnlu?=
 =?utf-8?B?SjhZNWliT2xvQUNROEMxcjQwclZjejdnNmx2NVF6UFZkTGcyeHFzWUJrQ1BS?=
 =?utf-8?B?ZzhEc0tTS3E3eFlITFplUjE2anJ0d0RQdThpRWVTc1U4Wk5TQ2N4Q0xEY0Yr?=
 =?utf-8?B?enZUaVdJQmtTcmpPWjNwNE9wUnBCb0pST3cyYXNMM3huZ05KRnNDOWpyQkhV?=
 =?utf-8?B?TDZrSE9xaUdSUmc0azh3cFJsd09lQS9oc1g1U1l5UXhpTWo3WEwxMmltamtR?=
 =?utf-8?B?bWttVXpDQitOQ3Jycnl5SGE0TGgzSXd2ZktIU2p1QUwxdUJVMWV5L05ZTzRE?=
 =?utf-8?B?WkU0SnRETUFKRWpydzZ6ZnRRbzlxRjVxOEpUYVdtZE0zZ3dFcHZxajhNOHJz?=
 =?utf-8?B?OHkxazg3cnZoWHJFNmcxWUg5ZHpYbFc1OXVkUWU4eHY3ZWxtTlcxNHdiYmtm?=
 =?utf-8?B?djZ2T0plZFp1SWlpWnZTRCt4dVprcEY1VFVWQ09Bc2dNVTFndlE2UEFjaHZy?=
 =?utf-8?B?UWhGUHB4YkxrQVprWlhySTFqSlN5SEhNNkNMYlVQZ09la3F5RXIxUWJ3U1N4?=
 =?utf-8?B?WFNkd3pwUTRyRm03bExHS0pKTTVLVEFuY2xRK29LVnhCMSs4dXMxbGpZSHEv?=
 =?utf-8?B?SUo4S1ZGaVA5WnIvc0lydktzY3FHWmp1aDdrTXNmdjRDMjRwbC90bEhGR0x5?=
 =?utf-8?B?clMxYVZEZzZVTGtlUmhCRCtzQ0dieWFqeTZ0RFhhSmxtOVZRcEZNbzFBNUw4?=
 =?utf-8?B?VU02UnBtQzRzOVg2YzhBWFh2U0hNVVcyWEd5ZUg1eHhhaTFLRVBjWTg1T0pj?=
 =?utf-8?B?QnkrQjZ4RUZUWjlPcXBNN0pQQTh2YkhsK3dxT3FpM1o0c01OSjlCRVhjTVRN?=
 =?utf-8?B?RFV3cmV3Wk1PNCtGN3EzNjZ6TDRSVmd6bUJtQnRwenlIaUhoNkNIbktYODZP?=
 =?utf-8?B?UCtaVCt5ZXAvZmsyU3JwQnc2SzFxd0h3UXY1VnQrMEJWeXB6YWkydjBZV2No?=
 =?utf-8?B?QWVYUTBKWExmOEJWYi81MmMvQXI2djVDZ1ZSN0ZLZGRaZUJUOFM3YUpTZ1Jt?=
 =?utf-8?B?dlJud3lxbUcxMDZMWGlDdTBKMStIakFkYWwyWVMyOGYyYmZJbXdIU0pobmdC?=
 =?utf-8?Q?8rp1wE?=
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)(1800799024)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Apr 2025 12:22:08.0783
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 3c8366e7-f3a3-4e72-f3f5-08dd7c1823fb
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:
	BL02EPF00021F6E.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW6PR12MB8865

On Tue Apr 15, 2025 at 7:38 AM BST, Jan Beulich wrote:
> On 14.04.2025 21:31, Alejandro Vallejo wrote:
>> On Thu Apr 10, 2025 at 1:18 PM BST, Jan Beulich wrote:
>>> On 08.04.2025 18:07, Alejandro Vallejo wrote:
>>>> --- a/xen/arch/x86/domain-builder/fdt.c
>>>> +++ b/xen/arch/x86/domain-builder/fdt.c
>>>> @@ -257,6 +257,18 @@ static int __init process_domain_node(
>>>>              bd->max_vcpus =3D val;
>>>>              printk("  max vcpus: %d\n", bd->max_vcpus);
>>>>          }
>>>> +        else if ( strncmp(prop_name, "capabilities", name_len) =3D=3D=
 0 )
>>>> +        {
>>>> +            if ( fdt_prop_as_u32(prop, &bd->capabilities) !=3D 0 )
>>>> +            {
>>>> +                printk("  failed processing domain id for domain %s\n=
", name);
>>>> +                return -EINVAL;
>>>> +            }
>>>> +            printk("  caps: ");
>>>> +            if ( bd->capabilities & BUILD_CAPS_CONTROL )
>>>> +                printk("c");
>>>> +            printk("\n");
>>>> +        }
>>>
>>> Like for the other patch: What about other bits being set in the value =
read?
>>=20
>> I take it that the non-worded suggestion is to have a mask of reserved
>> bits for each case and check they are not set (giving a warning if they =
are)?
>
> Whether a warning is sufficient I can't tell. I would have expected such =
to be
> outright rejected.
>
>>>> --- a/xen/arch/x86/setup.c
>>>> +++ b/xen/arch/x86/setup.c
>>>> @@ -1006,6 +1006,7 @@ static struct domain *__init create_dom0(struct =
boot_info *bi)
>>>>  {
>>>>      char *cmdline =3D NULL;
>>>>      size_t cmdline_size;
>>>> +    unsigned int create_flags =3D 0;
>>>>      struct xen_domctl_createdomain dom0_cfg =3D {
>>>>          .flags =3D IS_ENABLED(CONFIG_TBOOT) ? XEN_DOMCTL_CDF_s3_integ=
rity : 0,
>>>>          .max_evtchn_port =3D -1,
>>>> @@ -1037,7 +1038,10 @@ static struct domain *__init create_dom0(struct=
 boot_info *bi)
>>>>      if ( bd->domid =3D=3D DOMID_INVALID )
>>>>          /* Create initial domain.  Not d0 for pvshim. */
>>>>          bd->domid =3D get_initial_domain_id();
>>>> -    d =3D domain_create(bd->domid, &dom0_cfg, pv_shim ? 0 : CDF_privi=
leged);
>>>> +    if ( bd->capabilities & BUILD_CAPS_CONTROL )
>>>> +        create_flags |=3D CDF_privileged;
>>>
>>> Seeing that builder_init() in the non-DT case sets the new bit uncondit=
ionally,
>>> isn't the shim's only domain suddenly getting CDF_privileged set this w=
ay? Oh,
>>> no, you then ...
>>>
>>>> +    d =3D domain_create(bd->domid, &dom0_cfg,
>>>> +                      pv_shim ? 0 : create_flags);
>>>
>>> ... hide the flag here. Any reason to have the intermediate variable in=
 the
>>> first place
>>=20
>> Well, the logic would end up fairly convoluted otherwise. As things
>> stand this can be encoded in an if-else fashion with 2 calls, but
>> there's 2 capability flags coming that need integrating together.
>>=20
>> This is just avoiding further code motion down the line.
>
> Is it?
>
> -    d =3D domain_create(bd->domid, &dom0_cfg, pv_shim ? 0 : CDF_privileg=
ed);
> +    d =3D domain_create(bd->domid, &dom0_cfg,
> +                      ((bd->capabilities & BUILD_CAPS_CONTROL) && !pv_sh=
im
> +                       ? CDF_privileged : 0));
>
> isn't really worse (imo),

Not sure I agree. Long conditions on ternary operators makes the
control flow harder to follow.

A nicer alternative that also removes the auxiliary variable is to have
a helper to convert from bootcaps to whatever createdomainflags are
required. That'd extend naturally for more bits.

> but is highlighting the problem more clearly: Why
> would the shim have BUILD_CAPS_CONTROL set in the first place? Without th=
at
> the statement would remain pretty similar to what it was before.

If the commandline is parsed early enough (I see the early parse path in
head.S?) it would be better to add this logic to builder_init() and
prevent the capability from reaching the boot_domain in the first place.

Then there's no exception for the pv shim.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Tue Apr 15 12:47:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 12:47:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.953792.1348206 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4fgp-0003Rj-Vl; Tue, 15 Apr 2025 12:46:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 953792.1348206; Tue, 15 Apr 2025 12:46: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 1u4fgp-0003Rc-SX; Tue, 15 Apr 2025 12:46:59 +0000
Received: by outflank-mailman (input) for mailman id 953792;
 Tue, 15 Apr 2025 12:46: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=ai1O=XB=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u4fgo-0003RD-EI
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 12:46:58 +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 ad63111e-19f7-11f0-9ffb-bf95429c2676;
 Tue, 15 Apr 2025 14:46:40 +0200 (CEST)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-43cef035a3bso39325645e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 15 Apr 2025 05:46:40 -0700 (PDT)
Received: from [10.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-39eaf44571fsm14020031f8f.84.2025.04.15.05.46.39
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 15 Apr 2025 05:46:39 -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: ad63111e-19f7-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744721200; x=1745326000; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=6qtk1M0Fbp8pQPfS1SbanRIc9qjjYjDd3s/DuciWMk4=;
        b=bALzM/Q4fFJowHN01Y9MFdlh70RgbO3u/dyX2fcOcXj7XpSn5RORDMUTQnIDqW9ZVX
         gDNvl51MetbmFTF6tmlWJ4SFw7xJLMJPkOpMFgs01zy6j+C2RKWmab7y/IEyeUE8uD4I
         INF7yHWOq3a1R21nWcP+DpiWDghOjpsR+fPkHzNuLD9Bk7tkwQDwUnXA45MJRHdz+7YP
         TXKz/c+PhbHAJyD6gi1kHzKYGx0vXBrOA4Hfdr0S/2Wi8LYMcJeNxtTxPicYJA1qvw1V
         A90HOYNn+7erFD9x1l0gRKXW4QJqtGdoraCT1WAtGVwYoGmV6uyX5Ejd3OIhpzhrDZEF
         7NnQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744721200; x=1745326000;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=6qtk1M0Fbp8pQPfS1SbanRIc9qjjYjDd3s/DuciWMk4=;
        b=UcVvW60dHtMFHY1awanHykPd2ejcw8eagZ9aKoxH3XzQMnm58STdJ4O9f80s5GQ+8I
         ce6rwzXM53OWfS4yEnUK1nA1tqlDNIZ8qaja5ThutgK9rZfxnseObvNKRjxWoJEgy75I
         SuTVhfa5Jcm2ZeXdszxZFUcnANbZDg56pGyoqy539HAQvHHmMQ1G4cFvGybUlySCTCy2
         tk7I1CLMuloEOlxWXwViJbq0ItFtDyl1AWDSzB/FlsNNETlYMYJQa9P09S/s8gN6HDcJ
         obRvwjRz6OSJ3rdIUdGzrswGfYYXf4+x2S3FK3xU2cvxLY3OOiHZbqUb5CvbM2JdXQhL
         4mxQ==
X-Forwarded-Encrypted: i=1; AJvYcCUtHqmvP2TqPsokTibakb2jpdIrSGf26F8YNYM0jLMny1E/p+fCnuJE/FKjK9F1eF/AgiVrn0Ip4sk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyNqiBtXAlNdQxzmfXGDij6Tr764nuqSXtx426j6fqu338OYJXq
	r1UWH10PXVr01aS0XOLdMZXOw/gUo2YNydZVsyCERYqFIRDAOgkZiikRIWacYA==
X-Gm-Gg: ASbGnctHS7nD4+fYI7IS95RLo1/nKynmEK1e9yuNUGP+AvknJP5OyBS7A70IxUIRZ7h
	I8feqs9ViOeubvBGYTRo4vHbxjO7R0XA3zPw7fgV2HpdiNflOFpFy2PQ4nf+ItDbtCA9hgdzmxQ
	4DKDR7uw+6b/C3a5AuHADhv6Q6vTH58zDp50N9Bv4CWF9AK21LS9tPrjH18gwnzTQGeVaIZisQO
	TQ87l4fuNWzem/EzL9NvKu8cfN4btBrrXjTB9sEap6dhlNU1dsIAnApgqxPIF+e5XTA1lguP3la
	IbmQJJ0FFOKV+c246gMuSiDpihb8GWPgJQOT0uxDMXqBYqINNPdgfrAXxswcbGHknB9FhkKdVBH
	1MQg1hTFGLkmV5wFD53x4mRfABw==
X-Google-Smtp-Source: AGHT+IE2JBd2gUdQr8gAwcIkZOWfTwJSCRN8JRvJ8fzxuKUrKIR+k9cTdyDZWiVHZTU+7zqMeot2OQ==
X-Received: by 2002:a05:600c:1d1f:b0:43d:94:cfe6 with SMTP id 5b1f17b1804b1-43f3a959ffamr149052575e9.16.1744721199927;
        Tue, 15 Apr 2025 05:46:39 -0700 (PDT)
Message-ID: <35075d73-ec3c-4e8f-b7ed-657b604904bd@suse.com>
Date: Tue, 15 Apr 2025 14:46:38 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 10/14] xen/riscv: implementation of aplic and imsic
 operations
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Romain Caritey <Romain.Caritey@microchip.com>, xen-devel@lists.xenproject.org
References: <cover.1744126720.git.oleksii.kurochko@gmail.com>
 <74a07ed7c596bbcf581010685e01bfdfa19164f5.1744126720.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: <74a07ed7c596bbcf581010685e01bfdfa19164f5.1744126720.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.04.2025 17:57, Oleksii Kurochko wrote:
> Introduce interrupt controller descriptor for host APLIC to describe
> the low-lovel hardare. It includes implementation of the following functions:
>  - aplic_irq_startup()
>  - aplic_irq_shutdown()
>  - aplic_irq_enable()
>  - aplic_irq_disable()
>  - aplic_irq_ack()
>  - aplic_host_irq_end()
>  - aplic_set_irq_affinity()
> 
> As APLIC is used in MSI mode it requires to enable/disable interrupts not
> only for APLIC but also for IMSIC. Thereby for the purpose of
> aplic_irq_{enable,disable}() it is introduced imsic_irq_{enable,disable)().
> 
> For the purpose of aplic_set_irq_affinity() aplic_get_cpu_from_mask() is
> introduced to get hart id.
> 
> Also, introduce additional interrupt controller h/w operations and
> host_irq_type for APLIC:
>  - aplic_host_irq_type
>  - aplic_set_irq_priority()
>  - aplic_set_irq_type()

Yet these two functions nor the hooks they're used to populate are entirely
unused here. Since they're also outside of the common IRQ handling machinery,
it's unclear how one would sanely ack such a change.

> --- a/xen/arch/riscv/aplic.c
> +++ b/xen/arch/riscv/aplic.c
> @@ -15,6 +15,7 @@
>  #include <xen/irq.h>
>  #include <xen/mm.h>
>  #include <xen/sections.h>
> +#include <xen/spinlock.h>
>  #include <xen/types.h>
>  #include <xen/vmap.h>
>  
> @@ -110,9 +111,173 @@ static int __init aplic_init(void)
>      return 0;
>  }
>  
> -static const struct intc_hw_operations __ro_after_init aplic_ops = {
> +static void aplic_set_irq_type(struct irq_desc *desc, unsigned int type)
> +{
> +    unsigned int irq = desc->irq - 1;

Why this adjustment by 1 (and yet both items being named "irq")?

> +    spin_lock(&aplic.lock);
> +    switch(type) {
> +        case IRQ_TYPE_EDGE_RISING:

Nit (style): Missing blanks, brace on its own line, case labels indented
like their containing switch().

> +            aplic.regs->sourcecfg[irq] = APLIC_SOURCECFG_SM_EDGE_RISE;
> +            break;
> +        case IRQ_TYPE_EDGE_FALLING:

Blank lines please between non-fall-through case blocks.

> +            aplic.regs->sourcecfg[irq] = APLIC_SOURCECFG_SM_EDGE_FALL;
> +            break;
> +        case IRQ_TYPE_LEVEL_HIGH:
> +            aplic.regs->sourcecfg[irq] = APLIC_SOURCECFG_SM_LEVEL_HIGH;
> +            break;
> +        case IRQ_TYPE_LEVEL_LOW:
> +            aplic.regs->sourcecfg[irq] = APLIC_SOURCECFG_SM_LEVEL_LOW;
> +            break;
> +        default:
> +            aplic.regs->sourcecfg[irq] = APLIC_SOURCECFG_SM_INACTIVE;
> +            break;

Is the default: label legitimate to be reached?

> +    }
> +    spin_unlock(&aplic.lock);
> +}
> +
> +static void aplic_set_irq_priority(struct irq_desc *desc,
> +                                   unsigned int priority)
> +{
> +    /* No priority, do nothing */
> +}

Since the function dopes nothing, wouldn't it be better to omit it and have
the (future) caller check for a NULL pointer ahead of making the (indirect)
call? Same remark for other handlers (below) which also do nothing.

> +static void aplic_irq_enable(struct irq_desc *desc)
> +{
> +    unsigned long flags;
> +
> +    /*
> +     * TODO: Currently, APLIC is supported only with MSI interrupts.
> +     *       If APLIC without MSI interrupts is required in the future,
> +     *       this function will need to be updated accordingly.
> +     */
> +    ASSERT(aplic.imsic_cfg->is_used);

Such an extra field, used only for assertions, is pretty odd. Can't you
use any of the other fields to achieve the same effect?

> +    ASSERT(spin_is_locked(&desc->lock));

If this lock (which is an IRQ-safe one) is necessarily held, ...

> +    spin_lock_irqsave(&aplic.lock, flags);

... you can use just spin_lock() here.

> +    clear_bit(_IRQ_DISABLED, &desc->status);

Why an atomic bitop when desc is locked? (And yes, I ought to raise the same
question on Arm code also doing so.)

I'm uncertain about this bit setting anyway - on x86 we would only fiddle
with it for IRQs not in use, not while enabling/disabling one.

In any event this can be done outside of the APLIC-locked region, I think.

> +    /* enable interrupt in IMSIC */

May I remind you of Xen comment style?

> +    imsic_irq_enable(desc->irq);
> +
> +    /* enable interrupt in APLIC */
> +    aplic.regs->setienum = desc->irq;

Are you sure you want to use plain assignments for MMIO accesses? I'd have
expected writel() to be used here. (And only later I realized that I didn't
spot the same already higher up from here.)

>From the vague understanding I've gained so far: Isn't the APLIC closer to
the CPU and the IMSIC closer to the device? If so, wouldn't you want to
enable at the APLIC before enabling at the IMSIC? But of course that also
depends on what exactly happens in the window while one is already enabled
and the other is still disabled. (Later) From the code you add to imsic.c
it looks like it's the other way around, as the IMSIC is accessed through
CSRs.

> +    spin_unlock_irqrestore(&aplic.lock, flags);
> +}
> +
> +static void aplic_irq_disable(struct irq_desc *desc)
> +{
> +    unsigned long flags;
> +
> +    /*
> +     * TODO: Currently, APLIC is supported only with MSI interrupts.
> +     *       If APLIC without MSI interrupts is required in the future,
> +     *       this function will need to be updated accordingly.
> +     */
> +    ASSERT(aplic.imsic_cfg->is_used);
> +
> +    ASSERT(spin_is_locked(&desc->lock));
> +
> +    spin_lock_irqsave(&aplic.lock, flags);
> +
> +    set_bit(_IRQ_DISABLED, &desc->status);
> +
> +    /* disable interrupt in APLIC */
> +    aplic.regs->clrienum = desc->irq;
> +
> +    /* disable interrupt in IMSIC */
> +    imsic_irq_disable(desc->irq);
> +
> +    spin_unlock_irqrestore(&aplic.lock, flags);
> +}
> +
> +static unsigned int aplic_irq_startup(struct irq_desc *desc)
> +{
> +    aplic_irq_enable(desc);
> +
> +    return 0;
> +}
> +
> +static void aplic_irq_shutdown(struct irq_desc *desc)
> +{
> +    aplic_irq_disable(desc);
> +}

You don't really need a separate hook function here, do you?

> +static void aplic_irq_ack(struct irq_desc *desc)
> +{
> +    /* nothing to do */
> +}
> +
> +static void aplic_host_irq_end(struct irq_desc *desc)

What's the "host" in the identifier about?

> +{
> +    /* nothing to do */
> +}
> +
> +static unsigned int aplic_get_cpu_from_mask(const cpumask_t *cpumask)
> +{
> +    unsigned int cpu;

No real need for this variable?

> +    cpumask_t possible_mask;
> +
> +    cpumask_and(&possible_mask, cpumask, &cpu_possible_map);
> +    cpu = cpumask_any(&possible_mask);

Why would you use cpu_possible_map here? That includes any offline CPUs.
I think you need to use cpu_online_map here.

> +    return cpu;
> +}
> +
> +static void aplic_set_irq_affinity(struct irq_desc *desc, const cpumask_t *mask)
> +{
> +    unsigned int cpu;
> +    uint64_t group_index, base_ppn;
> +    uint32_t hhxw, lhxw ,hhxs, value;
> +    const struct imsic_config *imsic = aplic.imsic_cfg;
> +
> +    /*
> +     * TODO: Currently, APLIC is supported only with MSI interrupts.
> +     *       If APLIC without MSI interrupts is required in the future,
> +     *       this function will need to be updated accordingly.
> +     */
> +    ASSERT(aplic.imsic_cfg->is_used);

Use the local variable you have made yourself?

> +    ASSERT(!cpumask_empty(mask));
> +
> +    spin_lock(&aplic.lock);

Aiui the lock can be acquired quite a bit later. It ought to be needed only
around the actual write to the hardware register.

> +    cpu = cpuid_to_hartid(aplic_get_cpu_from_mask(mask));
> +    hhxw = imsic->group_index_bits;
> +    lhxw = imsic->hart_index_bits;
> +    hhxs = imsic->group_index_shift - IMSIC_MMIO_PAGE_SHIFT * 2;
> +    base_ppn = imsic->msi[cpu].base_addr >> IMSIC_MMIO_PAGE_SHIFT;
> +
> +    /* update hart and EEID in the target register */
> +    group_index = (base_ppn >> (hhxs + 12)) & (BIT(hhxw, UL) - 1);

What's this magic 12 in here? Not IMSIC_MMIO_PAGE_SHIFT I suppose?

> +    value = desc->irq;
> +    value |= cpu << APLIC_TARGET_HART_IDX_SHIFT;
> +    value |= group_index << (lhxw + APLIC_TARGET_HART_IDX_SHIFT) ;
> +    aplic.regs->target[desc->irq - 1] = value;
> +
> +    spin_unlock(&aplic.lock);
> +}
> +
> +static hw_irq_controller aplic_host_irq_type = {

const?

> --- a/xen/arch/riscv/imsic.c
> +++ b/xen/arch/riscv/imsic.c
> @@ -14,12 +14,68 @@
>  #include <xen/errno.h>
>  #include <xen/init.h>
>  #include <xen/macros.h>
> +#include <xen/spinlock.h>
>  #include <xen/xmalloc.h>
>  
>  #include <asm/imsic.h>
>  
>  static struct imsic_config imsic_cfg;
>  
> +#define imsic_csr_set(c, v)     \
> +do {                            \
> +    csr_write(CSR_SISELECT, c); \
> +    csr_set(CSR_SIREG, v);      \
> +} while (0)
> +
> +#define imsic_csr_clear(c, v)   \
> +do {                            \
> +    csr_write(CSR_SISELECT, c); \
> +    csr_clear(CSR_SIREG, v);    \
> +} while (0)
> +
> +static void imsic_local_eix_update(unsigned long base_id, unsigned long num_id,
> +                                   bool pend, bool val)
> +{
> +    unsigned long i, isel, ireg;

These can be constrained to inside the outer loop below.

> +    unsigned long id = base_id, last_id = base_id + num_id;
> +
> +    while ( id < last_id )
> +    {
> +        isel = id / __riscv_xlen;
> +        isel *= __riscv_xlen / IMSIC_EIPx_BITS;
> +        isel += (pend) ? IMSIC_EIP0 : IMSIC_EIE0;

Nit: Why the parentheses?

> +        ireg = 0;
> +        for ( i = id & (__riscv_xlen - 1);
> +              (id < last_id) && (i < __riscv_xlen);
> +              i++, id++ )
> +            ireg |= (1 << i);

I wonder if this calculation really needs a loop. Afaict it's just a
consecutive set of bits you mean to set.

> +        if ( val )
> +            imsic_csr_set(isel, ireg);
> +        else
> +            imsic_csr_clear(isel, ireg);
> +    }
> +}
> +
> +void imsic_irq_enable(unsigned int hwirq)
> +{
> +    unsigned long flags;
> +
> +    spin_lock_irqsave(&imsic_cfg.lock, flags);
> +    imsic_local_eix_update(hwirq, 1, false, true);

No subtraction of 1 here? Also, why "hwirq" and not just "irq"?

> +    spin_unlock_irqrestore(&imsic_cfg.lock, flags);
> +}
> +
> +void imsic_irq_disable(unsigned int hwirq)
> +{
> +    unsigned long flags;
> +
> +    spin_lock_irqsave(&imsic_cfg.lock, flags);
> +    imsic_local_eix_update(hwirq, 1, false, false);
> +    spin_unlock_irqrestore(&imsic_cfg.lock, flags);
> +}
> +
>  const struct imsic_config *imsic_get_config(void)
>  {
>      return &imsic_cfg;
> @@ -277,6 +333,13 @@ int __init imsic_init(struct dt_device_node *node)
>          goto imsic_init_err;
>      }
>  
> +    spin_lock_init(&imsic_cfg.lock);
> +
> +    /* Enable local interrupt delivery */
> +    imsic_ids_local_delivery(true);

What's this? I can't find the function/macro here, nor in patch 08, nor in
staging.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 15 12:47:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 12:47:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.953802.1348215 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4fhU-0003w3-6z; Tue, 15 Apr 2025 12:47:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 953802.1348215; Tue, 15 Apr 2025 12:47: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 1u4fhU-0003vw-3z; Tue, 15 Apr 2025 12:47:40 +0000
Received: by outflank-mailman (input) for mailman id 953802;
 Tue, 15 Apr 2025 12:47: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=OGoX=XB=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u4fhS-0003RD-Vy
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 12:47:39 +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 ccf59e6d-19f7-11f0-9ffb-bf95429c2676;
 Tue, 15 Apr 2025 14:47:33 +0200 (CEST)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-43edb40f357so45994205e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 15 Apr 2025 05:47:33 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 5b1f17b1804b1-43f37a78fe8sm159393475e9.40.2025.04.15.05.47.32
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 15 Apr 2025 05:47:32 -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: ccf59e6d-19f7-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744721253; x=1745326053; 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=qG3Y5oqjyXuqRRg3FXeK2kr+BB67j/TDORm84MNIPBI=;
        b=FZdGt/HIMfv5N3NvCB08xfm35nWf8wa1NIYcJFX5sTFCZ3IRvxJBwGudPxiFIR+rcZ
         Gi9G/RfB5wXQLUNMFMRedHkrXZtnpp/2Y9WFcZQzuGXslaGA8Wg/48x/ZE2fxDRnsRpb
         FpZ1ND3te8mV3aOjQfk0gMvryicOUPxS4xZGw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744721253; x=1745326053;
        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=qG3Y5oqjyXuqRRg3FXeK2kr+BB67j/TDORm84MNIPBI=;
        b=V9ecdY/YNKvSq9uuTWePPwOFbuUs9nB31XUv4481cbtNaShW8F6ntgYeKwGSJF1s/5
         0rg2O+Os7q66z0l2IQvVfYBaYfoh0dKp6B1wKH23PrJt9IpDxiPh9bbfDZ7gyCiNWy4u
         Wrn5iGV9dS1h9mYC5oBt+ksE5BdMXdOvl/BU4FRPuoQ4FQoyHhzZ8y1Zybk2YiqTUt+h
         g80JtjE6lSATBokkfL/rrv0+IZiF8NNIVup3wSGcIjUw1f7DTF41SbIhsbLN8XtD56K0
         pnkDEKmTw8Q6vY0Ea7+wdAqZ4AAC+jdGiefPm+Sr4CXLnTTkJ5zG2O9tccDFoNnT2WZT
         4Xzw==
X-Forwarded-Encrypted: i=1; AJvYcCW7X0ugGtlryIO+8HbYJ/ffgxEH5IzvnHJs8er1IGJ0GFgl9eSwvB9z31usWO0Mr0+3s8cJJ252klU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzfjjJRa57JFg8rHAjGFkCp1KgFwp9ed3diJ44pRUDehABmYHzm
	ZRMzQ1tiS4b/Ftu5jrPVM1jGTJHXN3oSQ/LpK/dBvP0WxatjuUf4g1mIgdQUCrA=
X-Gm-Gg: ASbGncvSl8dDJ03PyJ2r79IKdylkNEOTNcSuMbUGnwpOIu7+kzKwhFbTJV8+IjUf8Pg
	WOBCOvcT+0YzXzj5e3h7XEJDnL2niwXvgcAPVYdPAK1p8fBKSCYizZ95HxkEVysBN14RKc8aAEd
	WPI1muLRIzYJ6Ulxi72QLjZq7u18poyaiIoOOmHJMIL5dd5bgMBq64rYAyVuycCI909q+qGX183
	rq2lkyhGmMnb5ITfhDf2e1gUGF1Qim7rEbxWprIGgCd0opQkd5aG6TWGiIeoEPCuqaZixTkg2iz
	Tue7ix4/kHAISiNxOWimG8/Tg8hrGXNWnogkHtE8fz/aHWY2nUrEoZBl
X-Google-Smtp-Source: AGHT+IHCWglDnDg3a1k+hQFVGeDk1PiV2LFUOj4gOrFjGGonKrNOpZn/jdB3fI5mRykxQ8X23tlu0g==
X-Received: by 2002:a05:600c:1f14:b0:43d:94:2d1e with SMTP id 5b1f17b1804b1-43f3a93fa6bmr143272685e9.13.1744721253028;
        Tue, 15 Apr 2025 05:47:33 -0700 (PDT)
Date: Tue, 15 Apr 2025 14:47:28 +0200
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,
	Marek Marczykowski <marmarek@invisiblethingslab.com>
Subject: Re: [PATCH 3/5] x86/hvm: fix handling of accesses to partial r/o
 MMIO pages
Message-ID: <Z_5DKdVBG52mTN0U@macbook.lan>
References: <20250411105411.22334-4-roger.pau@citrix.com>
 <eaf5f71b-2c56-4bd8-a45f-35280af16466@suse.com>
 <Z_0TXKMe6tfrYR9T@macbook.lan>
 <c92d5665-0940-40b5-8cbb-81889adf40c5@suse.com>
 <Z_00JReo7Ji7RwkD@macbook.lan>
 <7c3c91d9-4de8-4910-b26e-8782a0f0d364@suse.com>
 <Z_4aBL7JhTv_oxWR@macbook.lan>
 <4dd5ada8-32e7-4b94-b2a4-51b20e09eb79@suse.com>
 <Z_4vE1qHlvGliqXY@macbook.lan>
 <0c74e9c9-c01d-4213-af01-cc287d1ef76b@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <0c74e9c9-c01d-4213-af01-cc287d1ef76b@suse.com>

On Tue, Apr 15, 2025 at 12:18:04PM +0200, Jan Beulich wrote:
> On 15.04.2025 12:04, Roger Pau Monné wrote:
> > On Tue, Apr 15, 2025 at 11:41:27AM +0200, Jan Beulich wrote:
> >> On 15.04.2025 10:34, Roger Pau Monné wrote:
> >>> On Tue, Apr 15, 2025 at 09:32:37AM +0200, Jan Beulich wrote:
> >>>> On 14.04.2025 18:13, Roger Pau Monné wrote:
> >>>>> On Mon, Apr 14, 2025 at 05:24:32PM +0200, Jan Beulich wrote:
> >>>>>> On 14.04.2025 15:53, Roger Pau Monné wrote:
> >>>>>>> On Mon, Apr 14, 2025 at 08:33:44AM +0200, Jan Beulich wrote:
> >>>>>>>> I'm also concerned of e.g. VT-x'es APIC access MFN, which is
> >>>>>>>> p2m_mmio_direct.
> >>>>>>>
> >>>>>>> But that won't go into hvm_hap_nested_page_fault() when using
> >>>>>>> cpu_has_vmx_virtualize_apic_accesses (and thus having an APIC page
> >>>>>>> mapped as p2m_mmio_direct)?
> >>>>>>>
> >>>>>>> It would instead be an EXIT_REASON_APIC_ACCESS vmexit which is handled
> >>>>>>> differently?
> >>>>>>
> >>>>>> All true as long as things work as expected (potentially including the guest
> >>>>>> also behaving as expected). Also this was explicitly only an example I could
> >>>>>> readily think of. I'm simply wary of handle_mmio_with_translation() now
> >>>>>> getting things to handle it's not meant to ever see.
> >>>>>
> >>>>> How was access to MMIO r/o regions supposed to be handled before
> >>>>> 33c19df9a5a0 (~2015)?  I see that setting r/o MMIO p2m entries was
> >>>>> added way before to p2m_type_to_flags() and ept_p2m_type_to_flags()
> >>>>> (~2010), yet I can't figure out how writes would be handled back then
> >>>>> that didn't result in a p2m fault and crashing of the domain.
> >>>>
> >>>> Was that handled at all before said change?
> >>>
> >>> Not really AFAICT, hence me wondering how where write accesses to r/o
> >>> MMIO regions supposed to be handled by (non-priv) domains.  Was the
> >>> expectation that those writes trigger an p2m violation thus crashing
> >>> the domain?
> >>
> >> I think so, yes. Devices with such special areas weren't (aren't?) supposed
> >> to be handed to DomU-s.
> > 
> > Oh, I see.  That makes stuff a bit clearer.  I think we would then
> > also want to add some checks to {ept_}p2m_type_to_flags()?
> > 
> > I wonder why handling of mmio_ro_ranges was added to the HVM p2m code
> > in ~2010 then.  If mmio_ro_ranges is only supposed to be relevant for
> > the hardware domain in ~2010 an HVM dom0 was not even in sight?
> 
> I fear because I was wrong with what I said in the earlier reply: There's
> one exception - the MSI-X tables of devices. DomU-s (and even Dom0) aren't
> supposed to access them directly, but we'd permit reads (which, at least
> back at the time, were also required to keep qemu working).

Hm, but reads to the MSI-X table for HVM domains will go through QEMU,
and hence not hit the r/o MMIO path, because the MSI-X table will
never be mapped to an HVM guest p2m?

Reads from QEMU are indeed different, but those where always made from
a PV domain.  As said above - HVM guests never got to see the native
MSI-X table at all.

> >>>>> I'm happy to look at other ways to handling this, but given there's
> >>>>> current logic for handling accesses to read-only regions in
> >>>>> hvm_hap_nested_page_fault() I think re-using that was the best way to
> >>>>> also handle accesses to MMIO read-only regions.
> >>>>>
> >>>>> Arguably it would already be the case that for other reasons Xen would
> >>>>> need to emulate an instruction that accesses a read-only MMIO region?
> >>>>
> >>>> Aiui hvm_translate_get_page() will yield HVMTRANS_bad_gfn_to_mfn for
> >>>> p2m_mmio_direct (after all, "direct" means we expect no emulation is
> >>>> needed; while arguably wrong for the introspection case, I'm not sure
> >>>> that and pass-through actually go together). Hence it's down to
> >>>> hvmemul_linear_mmio_access() -> hvmemul_phys_mmio_access() ->
> >>>> hvmemul_do_mmio_buffer() -> hvmemul_do_io_buffer() -> hvmemul_do_io(),
> >>>> which means that if hvm_io_intercept() can't handle it, the access
> >>>> will be forwarded to the responsible DM, or be "processed" by the
> >>>> internal null handler.
> >>>>
> >>>> Given this, perhaps what you do is actually fine. At the same time
> >>>> note how several functions in hvm/emulate.c simply fail upon
> >>>> encountering p2m_mmio_direct. These are all REP handlers though, so
> >>>> the main emulator would then try emulating the insn the non-REP way.
> >>>
> >>> I'm open to alternative ways of handling such accesses, just used what
> >>> seemed more natural in the context of hvm_hap_nested_page_fault().
> >>>
> >>> Emulation of r/o MMIO accesses failing wouldn't be an issue from Xen's
> >>> perspective, that would "just" result in the guest getting a #GP
> >>> injected.
> >>
> >> That's not the part I'm worried about. What worries me is that we open up
> >> another (or better: we're widening a) way to hit the emulator in the first
> >> place. (Plus, as said, the issue with the not really tidy P2M type system.)
> > 
> > But the hit would be limited to domains having r/o p2m_mmio_direct
> > entries in the p2m, as otherwise the path would be unreachable?
> 
> I fear I don't follow - all you look for in the newly extended conditional
> is the type being p2m_mmio_direct. There's no r/o-ness being checked for
> until we'd make it through the emulator and into subpage_mmio_accept().

Well, it's a write page-fault of a type with p2m_mmio_direct.  What
about limiting the path even further by checking for mmio_ro_ranges:

    if ( (p2mt == p2m_mmio_dm) ||
         (npfec.write_access &&
          (p2m_is_discard_write(p2mt) || (p2mt == p2m_ioreq_server) ||
           /* MMIO entries can be r/o if the target mfn is in mmio_ro_ranges. */
           (p2mt == p2m_mmio_direct &&
            rangeset_contains_singleton(mmio_ro_ranges, mfn_x(mfn))))) )
    {

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Apr 15 12:49:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 12:49:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.953815.1348225 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4fjB-0004Vp-IU; Tue, 15 Apr 2025 12:49:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 953815.1348225; Tue, 15 Apr 2025 12: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 1u4fjB-0004Vi-Fs; Tue, 15 Apr 2025 12:49:25 +0000
Received: by outflank-mailman (input) for mailman id 953815;
 Tue, 15 Apr 2025 12:49: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=miIs=XB=bounce.vates.tech=bounce-md_30504962.67fe55cd.v1-146e237133204c16874ef6b3e76394f6@srs-se1.protection.inumbo.net>)
 id 1u4fj9-0004Va-Q0
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 12:49:23 +0000
Received: from mail177-19.suw61.mandrillapp.com
 (mail177-19.suw61.mandrillapp.com [198.2.177.19])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0b21025b-19f8-11f0-9ffb-bf95429c2676;
 Tue, 15 Apr 2025 14:49:18 +0200 (CEST)
Received: from pmta14.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail177-19.suw61.mandrillapp.com (Mailchimp) with ESMTP id 4ZcP9n0wqZzVr
 for <xen-devel@lists.xenproject.org>; Tue, 15 Apr 2025 12:49:17 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 146e237133204c16874ef6b3e76394f6; Tue, 15 Apr 2025 12:49: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: 0b21025b-19f8-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1744721357; x=1744991357;
	bh=T+uWR1U245kDgORs/TtU3d1QO19OpHqdcUn8ysTT48g=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=CTsz1fQCDZHGiT8RGYKIOcDNN+TCj43f6SJIuz/ItSk6yv+tTw3hqgxpeZMX8cxqZ
	 pefAg+rdii1u9x5Px4JPAE6VDjuPUYuN7Bn+kn+fUGvW+VpPH1OJWUywo70O4KsZ3B
	 UmltnVftEuXCcKlfwoEstfNDtPHj26um2dd1UDNazSQVYwKukgsl5xiRduURNgSbau
	 C8QtnulHSmGtaycHWpWbcqpPpBQaPo4jEEFvFRRI2prMJVPIP/bSOwJ4chodUV/Os5
	 Fujk8gZWQ4tJna/uypTiYqTX6rqwK6AbTMM2VAHaoN5IuDZ2Yq8a4Y1xyGYs6H5keg
	 FmHSshX3bSEgQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1744721357; x=1744981857; i=teddy.astie@vates.tech;
	bh=T+uWR1U245kDgORs/TtU3d1QO19OpHqdcUn8ysTT48g=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=bYWSzIzbfwoxtD9PD25MBljyZYOZ6l3f/ius07Srgm4AZq5NDpPsZJPsOtaiqC/8+
	 LXO9ayb73aR67T4KAwPQXARaa4v4/Ku3R1+hU7uFtwSRXCBSmWAAVwbFRrurmmOR6E
	 LSFFrWMpCLPT4BeFzu8FxLAJ7DSKWbzPqRWaShX3krf1my9EmDp0eUJaieMgx2ZLql
	 uSCYdyIOmGyh561OFwQe3XcJ0RL9qOEUFrTNgqzdf/6sRsYiO8by1v4lgSY0z7IZPw
	 DnQ8MohnxKhhdLnsX+Aw5Ji3dMbMse+nL8GW0oMPDH99n5cF1XCA8UzQBca0F7aS27
	 TvrTotekN7HnQ==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[PATCH]=20x86/shadow:=20Fix=20UBSAN=20in=20hvm=5Femulate=5Finsn=5Ffetch?=
X-Mailer: git-send-email 2.47.2
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1744721356145
To: xen-devel@lists.xenproject.org
Cc: "Teddy Astie" <teddy.astie@vates.tech>, "Jan Beulich" <jbeulich@suse.com>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "Tim Deegan" <tim@xen.org>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>
Message-Id: <91bd66eae876b940b09b3b650a21614e42ab0469.1744721279.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.146e237133204c16874ef6b3e76394f6?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250415:md
Date: Tue, 15 Apr 2025 12:49:17 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

UBSAN complains when trying memcpy with a NULL pointer even if it's going to
copy zero bytes (which are the only cases where a NULL pointer is used).
Fix this by only doing the memcpy if the pointer is non-NULL.

(XEN) ================================================================================
(XEN) UBSAN: Undefined behaviour in arch/x86/mm/shadow/hvm.c:168:5
(XEN) null pointer passed as argument 1, declared with nonnull attribute
(XEN) ----[ Xen-4.21-unstable  x86_64  debug=y ubsan=y  Not tainted ]----
(XEN) CPU:    0
(XEN) RIP:    e008:[<ffff82d0402f789c>] common/ubsan/ubsan.c#ubsan_epilogue+0xa/0xd2
(XEN) RFLAGS: 0000000000010046   CONTEXT: hypervisor (d1v0)
(XEN) rax: ffff82d040a82eb0   rbx: ffff83021b6e7808   rcx: 000000000000c458
(XEN) rdx: ffff83021b6e7fd0   rsi: 000000000000000a   rdi: ffff83021b6e7808
(XEN) rbp: ffff83021b6e77f8   rsp: ffff83021b6e77e8   r8:  00000000ffffffff
(XEN) r9:  00000000ffffffff   r10: 0000000000000000   r11: 0000000000000000
(XEN) r12: 000000000000004d   r13: 0000000000000000   r14: ffff82d040a82eb0
(XEN) r15: 00000000002ffddc   cr0: 0000000080050033   cr4: 00000000001526e0
(XEN) cr3: 000000021b7f4000   cr2: 0000000000000000
(XEN) fsb: 0000000000000000   gsb: 0000000000000000   gss: 0000000000000000
(XEN) ds: 0000   es: 0000   fs: 0000   gs: 0000   ss: 0000   cs: e008
(XEN) Xen code around <ffff82d0402f789c> (common/ubsan/ubsan.c#ubsan_epilogue+0xa/0xd2):
(XEN)  89 e5 41 54 53 48 89 fb <0f> 0b 48 8d 3d 1b cf 36 00 e8 b4 94 00 00 48 85
(XEN) Xen stack trace from rsp=ffff83021b6e77e8:
(XEN)    ffff82d040a82ea0 000000000000004d ffff83021b6e7820 ffff82d0402f8435
(XEN)    0000000000000202 ffff83021b6e7d25 0000000000000000 ffff83021b6e7858
(XEN)    ffff82d040455cb6 00000000002ffddc ffff83021b6e7ef8 ffff83021fbf1010
(XEN)    0000000000000000 0000000000000000 ffff83021b6e7bd8 ffff82d0405b562b
(XEN)    ffffffff00200033 ffffffff0020874b 00007cfde4918743 ffff83021b6e7af0
(XEN)    0000000000000003 000000000000000a 0000000000000000 0000000440661f40
(XEN)    ffffffff00000000 0000000000000000 00007cfd000000e8 ffff83021b6e79a8
(XEN)    ffff83021b6e7980 ffff82d040d3fa90 00000000a00000e8 ffff82d0406904a0
(XEN)    ffff83021b6e7cd8 ffff8302159963f0 ffff83021b6e7998 ffff82d04052f592
(XEN)    fffffffa0000000a ffff83021b6e7b21 393082d040661f40 0000001000000033
(XEN)    ffffffff00307b39 ffffffffe491868b ffffffff00200d00 00007cfde491867b
(XEN)    ffff83021b6e7bb8 0000000000000003 0000000000000001 0000000000000000
(XEN)    0000000000000000 0000000000000067 ffff8302159963f0 aaaaaaaaaaaaaaaa
(XEN)    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa
(XEN)    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ffff83021b7fc008
(XEN)    00000000000002ff ffff8302159963f0 0000000000000000 ffff830215994000
(XEN)    0000000715994000 0000000000000000 0000000000000003 0000000000000000
(XEN)    0000000000000000 8086000000008086 0000000000000000 0000000000000000
(XEN)    0000000400000002 00000000002ffddc 0000000000000000 8086000000008086
(XEN)    0000000000000000 0000000000000000 ffffffffffffffff 000000000000001f
(XEN) Xen call trace:
(XEN)    [<ffff82d0402f789c>] R common/ubsan/ubsan.c#ubsan_epilogue+0xa/0xd2
(XEN)    [<ffff82d0402f8435>] F __ubsan_handle_nonnull_arg+0x7c/0xb3
(XEN)    [<ffff82d040455cb6>] F arch/x86/mm/shadow/hvm.c#hvm_emulate_insn_fetch+0xfb/0x100
(XEN)    [<ffff82d0405b562b>] F x86_emulate+0x17f6b/0x3b8e3
(XEN)    [<ffff82d0405dce4f>] F x86_emulate_wrapper+0x87/0x216
(XEN)    [<ffff82d040489847>] F arch/x86/mm/shadow/guest_4.c#sh_page_fault__guest_4+0x908/0x3b34
(XEN)    [<ffff82d0403ca3ac>] F vmx_vmexit_handler+0x1691/0x3439
(XEN)    [<ffff82d040204683>] F vmx_asm_vmexit_handler+0x103/0x220
(XEN)
(XEN) ================================================================================

Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
---
 xen/arch/x86/mm/shadow/hvm.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/xen/arch/x86/mm/shadow/hvm.c b/xen/arch/x86/mm/shadow/hvm.c
index 114957a3e1..298dd0f229 100644
--- a/xen/arch/x86/mm/shadow/hvm.c
+++ b/xen/arch/x86/mm/shadow/hvm.c
@@ -165,7 +165,8 @@ hvm_emulate_insn_fetch(unsigned long offset,
                         hvm_access_insn_fetch, sh_ctxt);
 
     /* Hit the cache. Simple memcpy. */
-    memcpy(p_data, &sh_ctxt->insn_buf[insn_off], bytes);
+    if ( p_data )
+        memcpy(p_data, &sh_ctxt->insn_buf[insn_off], bytes);
     return X86EMUL_OKAY;
 }
 
-- 
2.47.2



 | Vates

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Tue Apr 15 12:53:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 12:53:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.953834.1348237 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4fmp-0006qG-6x; Tue, 15 Apr 2025 12:53:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 953834.1348237; Tue, 15 Apr 2025 12: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 1u4fmp-0006q9-2s; Tue, 15 Apr 2025 12:53:11 +0000
Received: by outflank-mailman (input) for mailman id 953834;
 Tue, 15 Apr 2025 12: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=ai1O=XB=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u4fmn-0006q3-Oq
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 12:53:09 +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 9318ba59-19f8-11f0-9ffb-bf95429c2676;
 Tue, 15 Apr 2025 14:53:06 +0200 (CEST)
Received: by mail-wr1-x435.google.com with SMTP id
 ffacd0b85a97d-39c1ef4ae3aso3365538f8f.1
 for <xen-devel@lists.xenproject.org>; Tue, 15 Apr 2025 05:53:06 -0700 (PDT)
Received: from [10.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-43f2075fca5sm216279375e9.32.2025.04.15.05.53.04
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 15 Apr 2025 05:53: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: 9318ba59-19f8-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744721585; x=1745326385; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=dnszDQn5Xo6ChQ0rXoeOfKQrt7j2g43pgFTe4oRVQFU=;
        b=C164j6rEXmv50ID9zWJ6DMCk9XUIXFpRtqPZCCUGzFaIbOaXVWlQ3rI86J9xv1twmS
         DdKHdogym90oObqTV8CkJGxdUrAlsKhSWnOCUV4POQg1pWnwQ+LJdQ8/5ELN0Ch1iCT2
         +S2Ki6pUgQ/Wozux+D3Soff2oU1WsXV7pKybf7YVlyWHourB+GsPwfbWsevZBW5AkzHz
         +nMaY29vFOzxUgIRw96EURDLel2oR24247L9aIavQenVHctbEyZMdk9WTN2K2IpzKUdc
         OrBDekyXTJZnQBy3tEEVuQ6kOvYjDI6gBcHSpHwrUgQ/eLBoXalaTRvODUr7N8iHKG+j
         e+LQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744721585; x=1745326385;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=dnszDQn5Xo6ChQ0rXoeOfKQrt7j2g43pgFTe4oRVQFU=;
        b=eRYEjy1xDc2/yM6ZjBH7ImWQz+3SMcaLKuW8I2ZA4bQL34+kmuvbskGzDgjDlSkqn+
         DsGw66fScY7XExUbVwtLenDLxjOjPfigr0AILLWritpglGTDxJWkkv5u0afceZD2w4FF
         YjKmAH6vH+9H8dapXrDqM1InVitN2i4pTGv8j5AyZwROqawlPOBT7GdJZElrmXJjVumL
         6+DZ0txktQ1KiGh3BHdjuyG+RFoGnRl1zQPC89YAoXpvwFwTp5ItIw8bZNc71ZcoO1j8
         k8114+e27ztjB5m8Ajx9pzVMS+bpUaGEUCrg74UDFZm4hgk9VYDJbY6FlEINjAKpMpwl
         j0mA==
X-Forwarded-Encrypted: i=1; AJvYcCV+agcahnQaSg/ZEKCyzbakfpd5E9Dvq5s2OMSkmLFve8CzyL/KhRBN1WCIVbOeJUxgHpIYQLS97ak=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwOeE7m76VYvMWy2hJot9HJmX0Ic4r/KuvpMmI+J4SDYnk8ANhZ
	bMok7yeH+KTgpPM6PJxLRDAds6mgJPN5ip1XaNJ/jmGQHYMSyR9ihBsgTtI1ew==
X-Gm-Gg: ASbGncuwb+fY01MuynXk8uQWnvU4b8PHZqRyY9/pebgE6+ie7LQZxVdtoaZKBpnNUGC
	gjNoRkaIXyDxBObbr6Xk4FJrA3ftVQ67AnbRerNH7ZRWclFAwKjx06Y0jE1nEMUOCPOS3eyBur5
	a1hgaLB+7soHGWiknUN/0GMyo4ftzBAF8pVhOFFNQwDfREimJAvBkqvIcKXIa8JddAYVzFWYmVj
	i52X6N+7K5vBlaOydPuO0BBBQIIYqQjJScAqmbeoMTUsCQwvPlzL2/e4Qfbnt5usCymKamgmtIg
	O9QkWRnC1lTNWF0jTecE56IM+tu+U2CHWrixd3uhSwi5E7Nd/TMxhYG1uDjd/04PEas05P3j+Rn
	xtrH4LP0nv3nd3j5eSxkl6yaRqg==
X-Google-Smtp-Source: AGHT+IGGt0/uQSUgIgDOQBmgVAA0mNKASPZFhzqPeQ+tdQK7nCBhly1KFXcMi6tZqgJVRjmKTwpKZA==
X-Received: by 2002:a5d:64e7:0:b0:39b:3c96:80df with SMTP id ffacd0b85a97d-39edc3057ddmr2781404f8f.11.1744721585360;
        Tue, 15 Apr 2025 05:53:05 -0700 (PDT)
Message-ID: <f9ba3402-ede8-4852-b3fc-041fa04d9253@suse.com>
Date: Tue, 15 Apr 2025 14:53:04 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 3/5] x86/hvm: fix handling of accesses to partial r/o MMIO
 pages
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,
 Marek Marczykowski <marmarek@invisiblethingslab.com>
References: <20250411105411.22334-4-roger.pau@citrix.com>
 <eaf5f71b-2c56-4bd8-a45f-35280af16466@suse.com>
 <Z_0TXKMe6tfrYR9T@macbook.lan>
 <c92d5665-0940-40b5-8cbb-81889adf40c5@suse.com>
 <Z_00JReo7Ji7RwkD@macbook.lan>
 <7c3c91d9-4de8-4910-b26e-8782a0f0d364@suse.com>
 <Z_4aBL7JhTv_oxWR@macbook.lan>
 <4dd5ada8-32e7-4b94-b2a4-51b20e09eb79@suse.com>
 <Z_4vE1qHlvGliqXY@macbook.lan>
 <0c74e9c9-c01d-4213-af01-cc287d1ef76b@suse.com>
 <Z_5DKdVBG52mTN0U@macbook.lan>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <Z_5DKdVBG52mTN0U@macbook.lan>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 15.04.2025 14:47, Roger Pau Monné wrote:
> On Tue, Apr 15, 2025 at 12:18:04PM +0200, Jan Beulich wrote:
>> On 15.04.2025 12:04, Roger Pau Monné wrote:
>>> On Tue, Apr 15, 2025 at 11:41:27AM +0200, Jan Beulich wrote:
>>>> On 15.04.2025 10:34, Roger Pau Monné wrote:
>>>>> On Tue, Apr 15, 2025 at 09:32:37AM +0200, Jan Beulich wrote:
>>>>>> On 14.04.2025 18:13, Roger Pau Monné wrote:
>>>>>>> On Mon, Apr 14, 2025 at 05:24:32PM +0200, Jan Beulich wrote:
>>>>>>>> On 14.04.2025 15:53, Roger Pau Monné wrote:
>>>>>>>>> On Mon, Apr 14, 2025 at 08:33:44AM +0200, Jan Beulich wrote:
>>>>>>>>>> I'm also concerned of e.g. VT-x'es APIC access MFN, which is
>>>>>>>>>> p2m_mmio_direct.
>>>>>>>>>
>>>>>>>>> But that won't go into hvm_hap_nested_page_fault() when using
>>>>>>>>> cpu_has_vmx_virtualize_apic_accesses (and thus having an APIC page
>>>>>>>>> mapped as p2m_mmio_direct)?
>>>>>>>>>
>>>>>>>>> It would instead be an EXIT_REASON_APIC_ACCESS vmexit which is handled
>>>>>>>>> differently?
>>>>>>>>
>>>>>>>> All true as long as things work as expected (potentially including the guest
>>>>>>>> also behaving as expected). Also this was explicitly only an example I could
>>>>>>>> readily think of. I'm simply wary of handle_mmio_with_translation() now
>>>>>>>> getting things to handle it's not meant to ever see.
>>>>>>>
>>>>>>> How was access to MMIO r/o regions supposed to be handled before
>>>>>>> 33c19df9a5a0 (~2015)?  I see that setting r/o MMIO p2m entries was
>>>>>>> added way before to p2m_type_to_flags() and ept_p2m_type_to_flags()
>>>>>>> (~2010), yet I can't figure out how writes would be handled back then
>>>>>>> that didn't result in a p2m fault and crashing of the domain.
>>>>>>
>>>>>> Was that handled at all before said change?
>>>>>
>>>>> Not really AFAICT, hence me wondering how where write accesses to r/o
>>>>> MMIO regions supposed to be handled by (non-priv) domains.  Was the
>>>>> expectation that those writes trigger an p2m violation thus crashing
>>>>> the domain?
>>>>
>>>> I think so, yes. Devices with such special areas weren't (aren't?) supposed
>>>> to be handed to DomU-s.
>>>
>>> Oh, I see.  That makes stuff a bit clearer.  I think we would then
>>> also want to add some checks to {ept_}p2m_type_to_flags()?
>>>
>>> I wonder why handling of mmio_ro_ranges was added to the HVM p2m code
>>> in ~2010 then.  If mmio_ro_ranges is only supposed to be relevant for
>>> the hardware domain in ~2010 an HVM dom0 was not even in sight?
>>
>> I fear because I was wrong with what I said in the earlier reply: There's
>> one exception - the MSI-X tables of devices. DomU-s (and even Dom0) aren't
>> supposed to access them directly, but we'd permit reads (which, at least
>> back at the time, were also required to keep qemu working).
> 
> Hm, but reads to the MSI-X table for HVM domains will go through QEMU,
> and hence not hit the r/o MMIO path, because the MSI-X table will
> never be mapped to an HVM guest p2m?

Right, just wanted to be on the safe side there.

>>>>>>> I'm happy to look at other ways to handling this, but given there's
>>>>>>> current logic for handling accesses to read-only regions in
>>>>>>> hvm_hap_nested_page_fault() I think re-using that was the best way to
>>>>>>> also handle accesses to MMIO read-only regions.
>>>>>>>
>>>>>>> Arguably it would already be the case that for other reasons Xen would
>>>>>>> need to emulate an instruction that accesses a read-only MMIO region?
>>>>>>
>>>>>> Aiui hvm_translate_get_page() will yield HVMTRANS_bad_gfn_to_mfn for
>>>>>> p2m_mmio_direct (after all, "direct" means we expect no emulation is
>>>>>> needed; while arguably wrong for the introspection case, I'm not sure
>>>>>> that and pass-through actually go together). Hence it's down to
>>>>>> hvmemul_linear_mmio_access() -> hvmemul_phys_mmio_access() ->
>>>>>> hvmemul_do_mmio_buffer() -> hvmemul_do_io_buffer() -> hvmemul_do_io(),
>>>>>> which means that if hvm_io_intercept() can't handle it, the access
>>>>>> will be forwarded to the responsible DM, or be "processed" by the
>>>>>> internal null handler.
>>>>>>
>>>>>> Given this, perhaps what you do is actually fine. At the same time
>>>>>> note how several functions in hvm/emulate.c simply fail upon
>>>>>> encountering p2m_mmio_direct. These are all REP handlers though, so
>>>>>> the main emulator would then try emulating the insn the non-REP way.
>>>>>
>>>>> I'm open to alternative ways of handling such accesses, just used what
>>>>> seemed more natural in the context of hvm_hap_nested_page_fault().
>>>>>
>>>>> Emulation of r/o MMIO accesses failing wouldn't be an issue from Xen's
>>>>> perspective, that would "just" result in the guest getting a #GP
>>>>> injected.
>>>>
>>>> That's not the part I'm worried about. What worries me is that we open up
>>>> another (or better: we're widening a) way to hit the emulator in the first
>>>> place. (Plus, as said, the issue with the not really tidy P2M type system.)
>>>
>>> But the hit would be limited to domains having r/o p2m_mmio_direct
>>> entries in the p2m, as otherwise the path would be unreachable?
>>
>> I fear I don't follow - all you look for in the newly extended conditional
>> is the type being p2m_mmio_direct. There's no r/o-ness being checked for
>> until we'd make it through the emulator and into subpage_mmio_accept().
> 
> Well, it's a write page-fault of a type with p2m_mmio_direct.  What
> about limiting the path even further by checking for mmio_ro_ranges:
> 
>     if ( (p2mt == p2m_mmio_dm) ||
>          (npfec.write_access &&
>           (p2m_is_discard_write(p2mt) || (p2mt == p2m_ioreq_server) ||
>            /* MMIO entries can be r/o if the target mfn is in mmio_ro_ranges. */
>            (p2mt == p2m_mmio_direct &&
>             rangeset_contains_singleton(mmio_ro_ranges, mfn_x(mfn))))) )
>     {

Yes, this would make me quite a bit less nervous.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 15 12:59:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 12:59:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.953847.1348245 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4ft5-0007RI-Q1; Tue, 15 Apr 2025 12:59:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 953847.1348245; Tue, 15 Apr 2025 12:59: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 1u4ft5-0007RB-NA; Tue, 15 Apr 2025 12:59:39 +0000
Received: by outflank-mailman (input) for mailman id 953847;
 Tue, 15 Apr 2025 12:59: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=OGoX=XB=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u4ft4-0007R5-Pb
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 12:59:38 +0000
Received: from mail-wm1-x336.google.com (mail-wm1-x336.google.com
 [2a00:1450:4864:20::336])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7c45567f-19f9-11f0-9eae-5ba50f476ded;
 Tue, 15 Apr 2025 14:59:37 +0200 (CEST)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-43cfebc343dso42110315e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 15 Apr 2025 05:59:37 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 5b1f17b1804b1-43f23158849sm213264575e9.0.2025.04.15.05.59.36
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 15 Apr 2025 05:59:36 -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: 7c45567f-19f9-11f0-9eae-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744721977; x=1745326777; 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=GSE+X1tkczX4Z/ey+GPd4+IOHgFMnCWRL6MVnfaI0+Q=;
        b=HQT09VC7iS0sHDLI/rxLM6X8nTr00zElpkyZHJvq17h07Zq/RuS69IhnJkklru8Ew+
         yxhEs38X9wqSUENT8gftGV9tBKfQTpFQJwah5OghfAqLhktKzqHmFgMwJxZKeKX2Af4a
         V7L+pYU0r0zgWMyPOFGOHA8kVtYB70wFmhHtc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744721977; x=1745326777;
        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=GSE+X1tkczX4Z/ey+GPd4+IOHgFMnCWRL6MVnfaI0+Q=;
        b=myKv9mFqFpxK9BrDMPIvIjZol0+8HOTtPgW6qDiBmnDnUXPK+D5pjgk7xxFUdvLKpQ
         YhwDx5TJeY88LQbE111EBWqw0OulHoPOdQfBx+VC7aEmM4llPa19XJDXs5MIjKKgd0Ng
         pBy/JVWyPTCN9N7qnyMseL8UADr41W+gSGa/9Q4XJ7S+kScA+UspuSubBmZxUxZMRke0
         /gcNlDSsK5Bj31a2zgYYQMZmCdqpeO6fhWl96x8hI3dSMh/xo5Il+QwYsMnyF2MErcPV
         WFSKBB5ZMOZBs6uZ3VIpE2PXJuZlL8JqxfoaBMcftn4ygWwqJDZFlknRa0WJJAde96vJ
         mcqA==
X-Gm-Message-State: AOJu0YxdGsKvZCYHyC4ABYj0GjsFIvw3z3/6XUQnY9ZuBfkWVzfV95FG
	FoNoth09HRs9OmsF05Nt5t0ZZXKNpj9K0tcOwvw0N77GJAae+5wdZIggKhyEvGA=
X-Gm-Gg: ASbGnctgjt2AbrJeit8JYMgwElX7yZ9mUqVRNCxGuDQtDFVVBEBnWPO4ji1T984YzB2
	D9myXfpONDAoYQ8ZK5ZxMvJ8DO+rS+Q6RlMlj6cda0Hdcj/4Bs2ydPh8w014Gx/dqOEqwW2jh5j
	MSngVpP8k1tV0j2DfT4uB0+s2fwmv8qqIUbnUIZJHMkmvmZTJ7Bhmf6QUUlIZiuYK4CSxPqVgin
	0r2DxV4lZvknp7wmLKso+PKZXLnpyNa95+MnD2QtP1SNFKNxqQNpDd64YDURNZfvMRTrgd7qWrj
	WiCvUHxZ+C3ik1n9EmK7Eh/9it0huJGHdLWVejDqev4/OQ==
X-Google-Smtp-Source: AGHT+IFMzyG3XENklL+0M0zFlVpHqq2fcN57jiL0mS/Qg/6F1yq8r2/NnZ2Gc7NUn/fsFNKgSIl0TA==
X-Received: by 2002:a05:600c:698c:b0:43d:49eb:963f with SMTP id 5b1f17b1804b1-43f3a9a70aemr142773225e9.24.1744721976755;
        Tue, 15 Apr 2025 05:59:36 -0700 (PDT)
Date: Tue, 15 Apr 2025 14:59:35 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jiqian Chen <Jiqian.Chen@amd.com>
Cc: xen-devel@lists.xenproject.org, Huang Rui <ray.huang@amd.com>
Subject: Re: [PATCH v2 6/8] vpci/rebar: Remove registers when init_rebar()
 fails
Message-ID: <Z_5YN9iPbNasyedf@macbook.lan>
References: <20250409064528.405573-1-Jiqian.Chen@amd.com>
 <20250409064528.405573-7-Jiqian.Chen@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <20250409064528.405573-7-Jiqian.Chen@amd.com>

On Wed, Apr 09, 2025 at 02:45:26PM +0800, Jiqian Chen wrote:
> When init_rebar() fails, the previous new changes will hide Rebar
> capability, it can't rely on vpci_deassign_device() to remove all
> Rebar related registers anymore, those registers must be removed
> in failure path of init_rebar.
> 
> To do that, call vpci_remove_registers() to remove all possible
> registered registers in the failure patch.
> 
> Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
> ---
> cc: "Roger Pau Monné" <roger.pau@citrix.com>
> ---
> v1->v2 changes:
> * Called vpci_remove_registers() to remove all possible registered registers instead of using a array to record all registered register.
> 
> Best regards,
> Jiqian Chen.
> ---
>  xen/drivers/vpci/rebar.c | 25 ++++++++++++++-----------
>  1 file changed, 14 insertions(+), 11 deletions(-)
> 
> diff --git a/xen/drivers/vpci/rebar.c b/xen/drivers/vpci/rebar.c
> index 79858e5dc92f..e030937956e3 100644
> --- a/xen/drivers/vpci/rebar.c
> +++ b/xen/drivers/vpci/rebar.c
> @@ -51,6 +51,7 @@ static void cf_check rebar_ctrl_write(const struct pci_dev *pdev,
>  
>  static int cf_check init_rebar(struct pci_dev *pdev)
>  {
> +    int rc = 0;
>      uint32_t ctrl;
>      unsigned int nbars;
>      unsigned int rebar_offset = pci_find_ext_capability(pdev->sbdf,
> @@ -70,7 +71,6 @@ static int cf_check init_rebar(struct pci_dev *pdev)
>      nbars = MASK_EXTR(ctrl, PCI_REBAR_CTRL_NBAR_MASK);
>      for ( unsigned int i = 0; i < nbars; i++ )
>      {
> -        int rc;
>          struct vpci_bar *bar;
>          unsigned int index;
>  
> @@ -80,7 +80,7 @@ static int cf_check init_rebar(struct pci_dev *pdev)
>          {
>              printk(XENLOG_ERR "%pd %pp: too big BAR number %u in REBAR_CTRL\n",
>                     pdev->domain, &pdev->sbdf, index);
> -            continue;
> +            goto fail;
>          }
>  
>          bar = &pdev->vpci->header.bars[index];
> @@ -88,7 +88,7 @@ static int cf_check init_rebar(struct pci_dev *pdev)
>          {
>              printk(XENLOG_ERR "%pd %pp: BAR%u is not in memory space\n",
>                     pdev->domain, &pdev->sbdf, index);
> -            continue;
> +            goto fail;

I think you need to set rc to an error code for the two chunks above,
otherwise you jump into the fail label with rc == 0 AFAICT.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Apr 15 13:00:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 13:00:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.953857.1348255 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4fuI-0000Td-3F; Tue, 15 Apr 2025 13:00:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 953857.1348255; Tue, 15 Apr 2025 13:00:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4fuI-0000TW-0f; Tue, 15 Apr 2025 13:00:54 +0000
Received: by outflank-mailman (input) for mailman id 953857;
 Tue, 15 Apr 2025 13:00:53 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ai1O=XB=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u4fuH-0000TN-HP
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 13:00:53 +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 a854ceff-19f9-11f0-9ffb-bf95429c2676;
 Tue, 15 Apr 2025 15:00:51 +0200 (CEST)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-39c266c2dd5so4889717f8f.3
 for <xen-devel@lists.xenproject.org>; Tue, 15 Apr 2025 06:00:51 -0700 (PDT)
Received: from [10.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-43f2075fca5sm216483635e9.32.2025.04.15.06.00.49
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 15 Apr 2025 06:00: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: a854ceff-19f9-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744722050; x=1745326850; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=+CbeIpcVt1ZpLQZDXh7CG1DiVR3LVF/Dd4jC7ZuuU6Q=;
        b=fhjWIQNWo6JijmCPsihZ3yXeR69bM8SvO0vvzayDK6G6tzzn3xw+czCsVBXKmV8MAI
         8BYtYI3c6m+94jh1moovl17Fnft5vZFPqpDUzziKK6Gu2fN8cBsf/RTbZH8a5EHzzE0O
         oqi6MzfJR1QvYfPPwr1k4g7OgocjxIAZNec2FDNvJA89wrZZd3DMV/Dq1Nsb0g5BIU/I
         EJloKZgjdhYRefb+I6qlNtJe1AoD2uADWnemSO+q4MLkLtvCF2xDYesPvCUm9CKT6EG3
         biSkSI+G1wI0Bhrhwr3uDY9T7SGGDr+jpSeWq6cpl3KFr3Ufi/6YiD5i0D92Md/uFm4s
         xy+Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744722050; x=1745326850;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=+CbeIpcVt1ZpLQZDXh7CG1DiVR3LVF/Dd4jC7ZuuU6Q=;
        b=BJ8yQtfIHVysr5eaHb2fqXPCclHQlpmxSivA7R7TYF1NHTXubqFwRXjVFTnDON7XfR
         cKYNZdDmL4ZWpXq8tIvJrDUyHFVAhYbiKqY0Zx8EwdOhhA4nhdQgWYI2PJxvokauTec/
         nIvYrE9PvV4p76hNgHAA2p/KiovKEiWXxjaaY6dE0TbK0lTECnkucgLwRB3SPcZ1tpQT
         cpokKAYHValPNIKi8d1ZzcppekeL05c+kiztBA5nGgNwDiMytzRlKSGxv1u2mVVW1wb+
         +3C6mgpNSEVI1BiQf6iAXTgLZPCeaMFmCkBNcD3iKq9k4COCoiKPbJkeSLx1XkVJoJL0
         VAIg==
X-Forwarded-Encrypted: i=1; AJvYcCVmlI/Li+lWEQyBzTuPPfLExeKob6dz5BhnY15GgWdP37CI6O+PBruP7FE0F/bQnNvyQKotjpb7hq0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyPrNLt1DpcaeGNzAjqKNWPxYku2IbT9S4WFZaaiZ/QcqB9BSge
	7BBNHmZW48ZIUwKL3cPyGZuG7xj28OZGc3IEQ+UwctuH79sZEhSDdf3N5Kf7Pw==
X-Gm-Gg: ASbGnct9oD7UA5346wcwimVHR5rRtxyx5ijThVudr1RoC84LuMNf7BA+Wv5xyXa5qYL
	/w87bvcM1BKkF9MFafYzludjJiMSstcHs8pBbHADairK60x0NuRe0lX0fVFEeaiYylP2b586IZv
	0pb+Yd3v+kLfZcP7hCfjj+PEMGianVxPUMSgzXiJNYCS0Le8iNvp3doKMcZ96sDrHwI9XcyJN/y
	ovcbPWrxvEhdY+G5qbHu5gd+eHsCmcLkg+3+dL1i2E0vmr/B+OoNkFlXHSmI329vOtcaM6TzGBE
	QcKUKtqzmrg8pDRZ1xCin/A53xXGvE3mRK8SzEIjQ33XNuG25KbU+FjgNKQLL61vBeGSnW1twiM
	UwpT2SHwVivtqqZaV5CbT4WBN9Q==
X-Google-Smtp-Source: AGHT+IE3b6mB9CaDM3ppB6DsI2xxiG1GpfHrl9NP0z2EtjDZ5zJ7zDEYeTO8fmrBr59rbE9YVeuqOQ==
X-Received: by 2002:a05:6000:2809:b0:39e:cbcb:8b56 with SMTP id ffacd0b85a97d-39ecbcb8dabmr7352203f8f.12.1744722050388;
        Tue, 15 Apr 2025 06:00:50 -0700 (PDT)
Message-ID: <9211cbe0-3674-41d5-8862-c819ada37140@suse.com>
Date: Tue, 15 Apr 2025 15:00:48 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/shadow: Fix UBSAN in hvm_emulate_insn_fetch
To: Teddy Astie <teddy.astie@vates.tech>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Tim Deegan <tim@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <91bd66eae876b940b09b3b650a21614e42ab0469.1744721279.git.teddy.astie@vates.tech>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <91bd66eae876b940b09b3b650a21614e42ab0469.1744721279.git.teddy.astie@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 15.04.2025 14:49, Teddy Astie wrote:
> UBSAN complains when trying memcpy with a NULL pointer even if it's going to
> copy zero bytes (which are the only cases where a NULL pointer is used).

If this really was a problem, I think we'd need to go through and find all
instances. However, ...

> Fix this by only doing the memcpy if the pointer is non-NULL.
> 
> (XEN) ================================================================================
> (XEN) UBSAN: Undefined behaviour in arch/x86/mm/shadow/hvm.c:168:5
> (XEN) null pointer passed as argument 1, declared with nonnull attribute

... it can only be the compiler who has added the nonnull attribute; we
use it only in very few (other) places.

Personally I find it absurd to forbid NULL here when the size is zero. Yet
I agree that the spec can be interpreted this way.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 15 13:02:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 13:02:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.953868.1348266 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4fvv-0001Xv-FQ; Tue, 15 Apr 2025 13:02:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 953868.1348266; Tue, 15 Apr 2025 13:02: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 1u4fvv-0001Xo-BE; Tue, 15 Apr 2025 13:02:35 +0000
Received: by outflank-mailman (input) for mailman id 953868;
 Tue, 15 Apr 2025 13:02: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=OWT/=XB=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u4fvt-0001Xg-Ot
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 13:02:33 +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 e44393f6-19f9-11f0-9ffb-bf95429c2676;
 Tue, 15 Apr 2025 15:02:31 +0200 (CEST)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-38f2f391864so3183114f8f.3
 for <xen-devel@lists.xenproject.org>; Tue, 15 Apr 2025 06:02:31 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39eae964025sm13979384f8f.6.2025.04.15.06.02.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 15 Apr 2025 06:02: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: e44393f6-19f9-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744722151; x=1745326951; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=nk3Saw+DTJoEy8sUyy0vaRs5RLDc/qFrVNMOGXgR59E=;
        b=fDr8fdFpeLlvFo+nznNb1XXmCcU9UmtB+BZY5mZ9Tm1KS9VZpk3RkmridpMkPBeqOM
         vUo8mZviZfdfFXkmczDnzEe/TA4RZgAgeZcRWJ3pTUjnW3zyBLexe5NS0egmYNtW5fTN
         QW4eRYKtPME4TLaFcUMmT0ozLkQdyK2gpNhKk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744722151; x=1745326951;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=nk3Saw+DTJoEy8sUyy0vaRs5RLDc/qFrVNMOGXgR59E=;
        b=Zkii8WKoBlwJTUJ7GV9lSWtMDtXuDPjQNAVvj8XNjeLAxab8vRjFj5ZrcmRgl7A70t
         zdlzN0ftiseOd1zwQLcPrP/GgCxF4FN2kPqQJQ3uLmXTy3QA3kl3fgf6ZzE/vzFmqGhq
         uFUVu/yAL1cEAASdAblE8wCCRDGZ3m4WShXIG2b4x13TsqkZtXRKM3o0uRTuoJ+JtYEq
         xSYxs2JmeCpyOqMYbIPU9uDsU55C7urfV4o8HoF0VaNVFOEzXfFmGFtLsCDVwXDiInux
         YQVNdiibE59DwT0MCFgZBQ9sl9CzhK3ZyFIGaw/S5R70OrCijZpabFwkg2u1ZK7Mgb+i
         Ncqg==
X-Forwarded-Encrypted: i=1; AJvYcCVLNL+Z9PtwyDLVFsAUU/V0u+L8Df3lGlS13+SNF0bCYoxoV/meVtbvYt3xTYaUuQBM8DMeORRrxrE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxyP+ve7uIIh+nWHiKbYNxFKWuqnRnPmST//MNbQCO+0CytQCDP
	xpvvv0IUVKxpLhvVEwjN1Gd5r7jomqc8UdbUuRptRss/sgYmyQk58UoqNkqesgE=
X-Gm-Gg: ASbGncvyVq0e6qjs91KF3qZu4Eagllp6JBlp2k+nc2o6FhDmaPQXGiT3et4pID5ac+c
	zM/8+ZZDxbVpebPbfs9uigePshrOHJ+1iplOBU6fjKnCGDZpbhD3QR0h1a8r1Njww1f4NmC+kDK
	+kDwGvMs8zBwff+kZcmwbZwclOSG8V4y9mYWFNWEqgcqeGLq4BY2/GU8/O6m99rzr+AD4xdzEd/
	xRVQOaP0vo/xx5TdQbsX7I73aujFVbIQHWTepEiIFhq0v8BwoFVZGcDeKzof4mH53O6L4g6kWjY
	CVEU1p9yJrS65PzWCSF/UgpsyW+aYxfJqXRY1hIiZK1U8tyjau1x+XVoZ0O5QLeVz6AI+4dFwBE
	eWHo/WQ==
X-Google-Smtp-Source: AGHT+IGpe1JgM0whpu3fomJsQoMvlrd3kXxVk+o6ARucToocjK5mPVo2Nc/GJcGECapfMAPo7dRGsw==
X-Received: by 2002:a05:6000:420a:b0:391:40b8:e890 with SMTP id ffacd0b85a97d-39ea51f5d65mr12690932f8f.22.1744722151108;
        Tue, 15 Apr 2025 06:02:31 -0700 (PDT)
Message-ID: <fa03d268-4175-4315-87af-0203104635c8@citrix.com>
Date: Tue, 15 Apr 2025 14:02:29 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/shadow: Fix UBSAN in hvm_emulate_insn_fetch
To: Teddy Astie <teddy.astie@vates.tech>, xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>, Tim Deegan <tim@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <91bd66eae876b940b09b3b650a21614e42ab0469.1744721279.git.teddy.astie@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: <91bd66eae876b940b09b3b650a21614e42ab0469.1744721279.git.teddy.astie@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 15/04/2025 1:49 pm, Teddy Astie wrote:
> UBSAN complains when trying memcpy with a NULL pointer even if it's going to
> copy zero bytes (which are the only cases where a NULL pointer is used).
> Fix this by only doing the memcpy if the pointer is non-NULL.

Which compiler are you using?  (Just so there's a record.  These reports
are version-sensitive.)

>
> (XEN) ================================================================================
> (XEN) UBSAN: Undefined behaviour in arch/x86/mm/shadow/hvm.c:168:5
> (XEN) null pointer passed as argument 1, declared with nonnull attribute

Interestingly, this isn't a Xen annotation.  It must be coming from the
builtin.

And what we really want is nonnull_if_nonzero, but I bet that's not
available.

> (XEN) ----[ Xen-4.21-unstable  x86_64  debug=y ubsan=y  Not tainted ]----
> (XEN) CPU:    0
> (XEN) RIP:    e008:[<ffff82d0402f789c>] common/ubsan/ubsan.c#ubsan_epilogue+0xa/0xd2
> (XEN) RFLAGS: 0000000000010046   CONTEXT: hypervisor (d1v0)
> (XEN) rax: ffff82d040a82eb0   rbx: ffff83021b6e7808   rcx: 000000000000c458
> (XEN) rdx: ffff83021b6e7fd0   rsi: 000000000000000a   rdi: ffff83021b6e7808
> (XEN) rbp: ffff83021b6e77f8   rsp: ffff83021b6e77e8   r8:  00000000ffffffff
> (XEN) r9:  00000000ffffffff   r10: 0000000000000000   r11: 0000000000000000
> (XEN) r12: 000000000000004d   r13: 0000000000000000   r14: ffff82d040a82eb0
> (XEN) r15: 00000000002ffddc   cr0: 0000000080050033   cr4: 00000000001526e0
> (XEN) cr3: 000000021b7f4000   cr2: 0000000000000000
> (XEN) fsb: 0000000000000000   gsb: 0000000000000000   gss: 0000000000000000
> (XEN) ds: 0000   es: 0000   fs: 0000   gs: 0000   ss: 0000   cs: e008
> (XEN) Xen code around <ffff82d0402f789c> (common/ubsan/ubsan.c#ubsan_epilogue+0xa/0xd2):
> (XEN)  89 e5 41 54 53 48 89 fb <0f> 0b 48 8d 3d 1b cf 36 00 e8 b4 94 00 00 48 85
> (XEN) Xen stack trace from rsp=ffff83021b6e77e8:
> (XEN)    ffff82d040a82ea0 000000000000004d ffff83021b6e7820 ffff82d0402f8435
> (XEN)    0000000000000202 ffff83021b6e7d25 0000000000000000 ffff83021b6e7858
> (XEN)    ffff82d040455cb6 00000000002ffddc ffff83021b6e7ef8 ffff83021fbf1010
> (XEN)    0000000000000000 0000000000000000 ffff83021b6e7bd8 ffff82d0405b562b
> (XEN)    ffffffff00200033 ffffffff0020874b 00007cfde4918743 ffff83021b6e7af0
> (XEN)    0000000000000003 000000000000000a 0000000000000000 0000000440661f40
> (XEN)    ffffffff00000000 0000000000000000 00007cfd000000e8 ffff83021b6e79a8
> (XEN)    ffff83021b6e7980 ffff82d040d3fa90 00000000a00000e8 ffff82d0406904a0
> (XEN)    ffff83021b6e7cd8 ffff8302159963f0 ffff83021b6e7998 ffff82d04052f592
> (XEN)    fffffffa0000000a ffff83021b6e7b21 393082d040661f40 0000001000000033
> (XEN)    ffffffff00307b39 ffffffffe491868b ffffffff00200d00 00007cfde491867b
> (XEN)    ffff83021b6e7bb8 0000000000000003 0000000000000001 0000000000000000
> (XEN)    0000000000000000 0000000000000067 ffff8302159963f0 aaaaaaaaaaaaaaaa
> (XEN)    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa
> (XEN)    aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa ffff83021b7fc008
> (XEN)    00000000000002ff ffff8302159963f0 0000000000000000 ffff830215994000
> (XEN)    0000000715994000 0000000000000000 0000000000000003 0000000000000000
> (XEN)    0000000000000000 8086000000008086 0000000000000000 0000000000000000
> (XEN)    0000000400000002 00000000002ffddc 0000000000000000 8086000000008086
> (XEN)    0000000000000000 0000000000000000 ffffffffffffffff 000000000000001f
> (XEN) Xen call trace:
> (XEN)    [<ffff82d0402f789c>] R common/ubsan/ubsan.c#ubsan_epilogue+0xa/0xd2
> (XEN)    [<ffff82d0402f8435>] F __ubsan_handle_nonnull_arg+0x7c/0xb3
> (XEN)    [<ffff82d040455cb6>] F arch/x86/mm/shadow/hvm.c#hvm_emulate_insn_fetch+0xfb/0x100
> (XEN)    [<ffff82d0405b562b>] F x86_emulate+0x17f6b/0x3b8e3
> (XEN)    [<ffff82d0405dce4f>] F x86_emulate_wrapper+0x87/0x216
> (XEN)    [<ffff82d040489847>] F arch/x86/mm/shadow/guest_4.c#sh_page_fault__guest_4+0x908/0x3b34
> (XEN)    [<ffff82d0403ca3ac>] F vmx_vmexit_handler+0x1691/0x3439
> (XEN)    [<ffff82d040204683>] F vmx_asm_vmexit_handler+0x103/0x220
> (XEN)
> (XEN) ================================================================================

For this, we normally abbreviate it to just the relevant information, so
in this case:

(XEN) UBSAN: Undefined behaviour in arch/x86/mm/shadow/hvm.c:168:5
(XEN) null pointer passed as argument 1, declared with nonnull attribute
(XEN) ----[ Xen-4.21-unstable  x86_64  debug=y ubsan=y  Not tainted ]----
(XEN) CPU:    0
(XEN) RIP:    e008:[<ffff82d0402f789c>]
common/ubsan/ubsan.c#ubsan_epilogue+0xa/0xd2
...
(XEN) Xen call trace:
(XEN)    [<ffff82d0402f789c>] R common/ubsan/ubsan.c#ubsan_epilogue+0xa/0xd2
(XEN)    [<ffff82d0402f8435>] F __ubsan_handle_nonnull_arg+0x7c/0xb3
(XEN)    [<ffff82d040455cb6>] F
arch/x86/mm/shadow/hvm.c#hvm_emulate_insn_fetch+0xfb/0x100
(XEN)    [<ffff82d0405b562b>] F x86_emulate+0x17f6b/0x3b8e3
(XEN)    [<ffff82d0405dce4f>] F x86_emulate_wrapper+0x87/0x216
(XEN)    [<ffff82d040489847>] F
arch/x86/mm/shadow/guest_4.c#sh_page_fault__guest_4+0x908/0x3b34
(XEN)    [<ffff82d0403ca3ac>] F vmx_vmexit_handler+0x1691/0x3439
(XEN)    [<ffff82d040204683>] F vmx_asm_vmexit_handler+0x103/0x220

which is rather less voluminous.

>
> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
> ---
>  xen/arch/x86/mm/shadow/hvm.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/xen/arch/x86/mm/shadow/hvm.c b/xen/arch/x86/mm/shadow/hvm.c
> index 114957a3e1..298dd0f229 100644
> --- a/xen/arch/x86/mm/shadow/hvm.c
> +++ b/xen/arch/x86/mm/shadow/hvm.c
> @@ -165,7 +165,8 @@ hvm_emulate_insn_fetch(unsigned long offset,
>                          hvm_access_insn_fetch, sh_ctxt);
>  
>      /* Hit the cache. Simple memcpy. */
> -    memcpy(p_data, &sh_ctxt->insn_buf[insn_off], bytes);
> +    if ( p_data )
> +        memcpy(p_data, &sh_ctxt->insn_buf[insn_off], bytes);

Do you know precisely which condition is being hit?

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Apr 15 13:03:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 13:03:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.953878.1348276 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4fwM-0002E0-PZ; Tue, 15 Apr 2025 13:03:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 953878.1348276; Tue, 15 Apr 2025 13:03: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 1u4fwM-0002Dt-Mz; Tue, 15 Apr 2025 13:03:02 +0000
Received: by outflank-mailman (input) for mailman id 953878;
 Tue, 15 Apr 2025 13:03: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=mbqe=XB=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1u4fwK-0001os-UN
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 13:03:01 +0000
Received: from NAM10-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam10on20619.outbound.protection.outlook.com
 [2a01:111:f403:2413::619])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f322d33f-19f9-11f0-9eae-5ba50f476ded;
 Tue, 15 Apr 2025 15:02:57 +0200 (CEST)
Received: from BN9PR12MB5273.namprd12.prod.outlook.com (2603:10b6:408:11e::22)
 by SA0PR12MB4384.namprd12.prod.outlook.com (2603:10b6:806:9f::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.35; Tue, 15 Apr
 2025 13:02:54 +0000
Received: from BN9PR12MB5273.namprd12.prod.outlook.com
 ([fe80::cf66:58ab:47be:4b13]) by BN9PR12MB5273.namprd12.prod.outlook.com
 ([fe80::cf66:58ab:47be:4b13%5]) with mapi id 15.20.8632.036; Tue, 15 Apr 2025
 13:02: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: f322d33f-19f9-11f0-9eae-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=a7XO15qeDXXCMBzVaOXJ6MgpV90UFldXiuYi9LGUidKKtn7BtHnoYgE9Au/Ktt+lO6bZyXS3m1CteqZtK1f5PBLW59SoSc+0Wkkeom3Z1SRIbIM2f24vFmWRGyca8vDqrnXkomp9nW11JRvLYYg+nxFx7S/I6jqYX1xCGZGp5XtL5I744dONDtaxY/Y6mN5GWdbI/Lrqw51YVzA3KJPwKhXNpxSO5nDao+55p7gkqv0CYzcicjScer4/TaI4Sa7GZ0TF7LtZZbbXu0fcH51eodkUwnYHVrONRjWiBE7eE0EmQCZZE30r1Swl7J0mPE/UkLSuzuC95aaFrG0tqyABiQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=2UJI+vwtKmDJo6teNYvsvaetk2wHgi7gy3GK5A2opvw=;
 b=Gzi4el8AF2ak5KnCG6XwLursCs01sHW8KzGFo3kwtCaRJrpWtBCsYDAAnFyi/rn27eR/zGZq8ox7KBGdSodhSIYIBca1JP44QnZU203PyUi3tL01qmFrYocMQMG9FOiMY/e8NGFhW79rvX4S35eDO3cfZN9w5L+TsGH0psjcrfDJfuaIluZkLw8dXBLhk4TTXZTIQNHNUxpMq37MPRIKzoJ+tbzWwJPwAL/auypMgwuKQX9YGrGkdduxgdpQvorOmXJ9H8p42+7a5Ub2rp+I/U0mqdJ97/dNm4kfoR7ERZnhGCiVR5oYI/KXx6zl/p84agPM6Ky6Cjf8UYHOSPGTxQ==
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=2UJI+vwtKmDJo6teNYvsvaetk2wHgi7gy3GK5A2opvw=;
 b=mAH67u7nnVVNht2ckyFo98wPNfNqEQIZvQTm94kHxdvaEsuey4eU5XPQXTBLwV4+/N8xcvxD1WEFQComfbBNzFgT2bI4dj8SB1Pul2HjboamXrwRArHY/0FZGbsjp76A+XVWTW2q3rrRBPALXmrBR6KdtT9w3qGr15KrtWo4+5c=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <84be76c1-be06-4371-bff6-69cf48286952@amd.com>
Date: Tue, 15 Apr 2025 15:02:50 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: Xen Armv8-R booting protocol
To: Luca Fancellu <Luca.Fancellu@arm.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <Bertrand.Marquis@arm.com>, Julien Grall <julien@xen.org>,
 Ayan Kumar Halder <ayan.kumar.halder@amd.com>
References: <F10A37DE-4F3B-4A18-BAB7-B95616516A2A@arm.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <F10A37DE-4F3B-4A18-BAB7-B95616516A2A@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: FR2P281CA0148.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:98::6) To BN9PR12MB5273.namprd12.prod.outlook.com
 (2603:10b6:408:11e::22)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN9PR12MB5273:EE_|SA0PR12MB4384:EE_
X-MS-Office365-Filtering-Correlation-Id: 671e9974-6e76-4da2-56ad-08dd7c1dd5e6
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?cWZGUVpMR0RPZTNIdkNJRUlidGFNVEtadHdBSUE1WDBDRDd3bFVTQlJRVm9L?=
 =?utf-8?B?QUl0N0VOSVRBQ2VRSFdQTzVDcVBSNVBDU1ROZnorNXNhTEo3dXlId1NKUDJk?=
 =?utf-8?B?S3hyVC9qVWZSNUNKWk1EQ29RdUQzeXA0QStDcElBVCs1bUl4V3dscEd2eGti?=
 =?utf-8?B?THpWdkZXMmRCY3pUNk83YzdxclVQVTBrZUhrNEFWRDFmOGNKbnVOYUI2aVFQ?=
 =?utf-8?B?amcxZm5CcENzK1IxZEVSVHNSSW5CTnJiaFJkOTJhWUlKTXgra0Jjb0U0QjNK?=
 =?utf-8?B?QUxjcEhoKzFFaEV6anFucmpFaGFzZDJ2ZVdkUVU4eW92QlBQVVJwL2JPY3Yv?=
 =?utf-8?B?MlgydUVqMWdJM2ZYa0NhS0ZuUUVCNFBlaFBPOEdPSlhUZVhDU2N2R1dpMmZw?=
 =?utf-8?B?M2todlZlcWg5SGdyZUdzYWltTzZlcTZRR3FGUzNxMjYwUzhWazFKTnlQdTlO?=
 =?utf-8?B?NHlJTFVhOHcyUDBRYXdZSitGZndmbnRhVU0wTnF0L2tha0Rocmc0QzdMSkJH?=
 =?utf-8?B?TmR5ajJ0MWhVUnVYSFVmdllQdkEyWVFmd3d5OGZleUFOVCtROFJLN1lwM0dz?=
 =?utf-8?B?bFRpZmNyMlV5UWNlZCtiSld1Sk5tS3ppQUhsYXgrUEJreXNmaHdpV0ZLVTdp?=
 =?utf-8?B?TnZNTkYyd2ZBbGFWSmpOcnFxL05DSlcyT2lodHZuQ1dGTlZ3NnZsMHZQQnVX?=
 =?utf-8?B?dDRUWTF5QUZ2SlhsS0tXT2dlaFBrK3RwTkppbU84L2RLR2tRbURqbHJFbGRL?=
 =?utf-8?B?T1B3Y0c3dFVwWjI5NU0yakxWZDl2cmIyeDhCQkJzUmlXdVNKMUI0aFNBWmtw?=
 =?utf-8?B?Qll4cDlnUUt6SmEzYnE2UUh4K21UeHRUejMzRVF3ajdXVHV3NVdNbEU3YVdl?=
 =?utf-8?B?aXhFTmNwOWthbEJoYUtQSUM4VWRiaDVXbDNlT1g4NmRQUmVISkNBOEk4N3FM?=
 =?utf-8?B?MGpiaGU4MzZzclBRQytCR0M4c1ZrY2JpYmtCTEZ6ckFENHdIY2pMb3I5SUYw?=
 =?utf-8?B?R3duYm5hTGEyTE9uV1ZnQlVkVDk1S0ZKaWRYZ0J5TnM5YVZaMGltR1QzMGRM?=
 =?utf-8?B?ZVVuUUVxeE9Jd2E1YzNuWTNpbXBPQlBOa0lwTTkwOW0xUnBWMHhHTG12OWZK?=
 =?utf-8?B?NGdxTzZ0UXpNMVJPS0d1eGpjVW44NHNSZCtZV0crYzNmMkNUWURqYnN6VzJP?=
 =?utf-8?B?OXRpZzkyZjMwZ2RXRGoyLzQ4TjJRNWFRNVViSndRT0tDQmZyNFV1RWhaMFFE?=
 =?utf-8?B?VVd5ZHNiZGRLSkFzZ0p2REVFay9Ia0NqSndJSTN5K2svSE9TZUFydUJLZ2lu?=
 =?utf-8?B?c3ZEeVRlMUVUU1IrWWttaXRjVDJqRUxHMTI1Y1piNWJjRitsTW1tNGZHSWNw?=
 =?utf-8?B?Y3E5ck5kT0RvSDBVcXY2MDRUaXMxNXB4OHZtdDk0MkJEcVBMUTdjUExVVDV4?=
 =?utf-8?B?ZXFvYnV6M0d6aXVDdzRRMHpKUEIxWEltNC9DMmpsbHZIMGVOdXlURVpvc3hh?=
 =?utf-8?B?dEZBcVJ2eURkOTZzaGU0SFdKL3hWdmwxMmhYMXZQVHFHaHVsMUFFdUluV2dm?=
 =?utf-8?B?OFJaYXBCV3NBc2FaZXdPbnJXWHNoSTlXVmNKaG5lQ2xnYmx2UFlQNHFpbUtM?=
 =?utf-8?B?L0tPVVFHWTI2U0JKbmY3R2hrZEo2V29ySExNdUtldS9QbVp1Nm1KN3FRNUkw?=
 =?utf-8?B?Y1o4UmwrVXh6VGc3VWhGMHlZRkhwNVpzdUFUV1BZSDlZRGIvM1RvcFRGMjZJ?=
 =?utf-8?B?eFhlZktsR1l3eFpiOS9GQ3Z5RWhZYVkvcEUrSHJmdU9EcElkMzU5NmkvQUFF?=
 =?utf-8?B?aW5FOEpaT1RwTU9aTUpTWWNPN252TWNLTjJpVmFOemg2cWRORzgzZExHUzRt?=
 =?utf-8?B?ZEdSRXU1R2xXd3ZqdmxqRUJRcnpjQTZ1UUlXRDhCZFpoYmhRaEFmLy9neExU?=
 =?utf-8?Q?Nz/RaDHH6GA=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN9PR12MB5273.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?TVdvUjVsbi92ZCtFamphYmN4UlhxN1ZRRXAvV2tFODF1cFFlcWdiOERVelR1?=
 =?utf-8?B?ZEFjNis4WG9XbjhJbzgwMjJWRGhDYllIVHlDVDZxSXZ6R29NVHNwcVJVUHRG?=
 =?utf-8?B?bzRwWkd1OEY0VVhuVEFDeG5PS3ViSWpYSno3RzJDZ2NEWUl4L01FSExUd2ZP?=
 =?utf-8?B?ZVMwS2R0V1d6N1FXV2N6VHU0WHJBOVlYa0xkTDE2TS9WY3dQUVJoYnlVSGM3?=
 =?utf-8?B?SzhaL1c3ZE0zZm0rT0MxWC9aTnVkR1FHTzFaYnV4SDdXeENSRDdMNHQzdWpy?=
 =?utf-8?B?NE56b2N5b1RDYWZRcTg1bFdVb0ROS2tkN0RPQnN2WFFGVXhzVmJHRGdERXhJ?=
 =?utf-8?B?bHJIZEhHdHA5TDlTSW9UOTZzN2lGQWNuVzFpZHV3WjVDbGhRR1R1K0Yyekt1?=
 =?utf-8?B?Q0FGbEhobjRKRjZ4NFdDN2lqZFVleGFhSC9jS0NzclFxdktaNnlVb0RxOXRQ?=
 =?utf-8?B?UllHeW5YcHhuclhwaHpnRHRKYzVyWE5YdXU3U2d4S0o4TExWWUROWmpvcGp3?=
 =?utf-8?B?Q0FMbk41SE1LR1hqOE1tUitqOThGQ0VtTnJOTVlXbXBRSStrZW1MV3dWaDBR?=
 =?utf-8?B?aFRiYkppRlVBL1l6NXZYRlUvb1E2Wm1wSjhybkhqRThTbDd4Y3l2bGR6VzlX?=
 =?utf-8?B?V3IvdGlsNC85THphcmE4YlFqL29CdzR4RWJNbmUyUC9LNjlYSGNLbjk1UUs3?=
 =?utf-8?B?dk1QNnVMZzlXOUFHSmtnaUQ1bVdORzkxbzlyWDh3YnFab0V4TWNlYkJ1MGQz?=
 =?utf-8?B?VEhackVOL29UdmNmM0s3SGtUc0YwVVlwWU0rNTRzVmE1aVdmU3FiTTdoOUxX?=
 =?utf-8?B?dUlzMWEyMVNXWjVkQ1lGVXZIbmFtcHVFU2tZWHVWTkxBb2VmUnJBdXVNa2sx?=
 =?utf-8?B?QkU5TkVvVEFPMHIrb3hFOVJLaEY3eHZCNGhCNy9VVGxCeVNXTHJjUHRSYStu?=
 =?utf-8?B?eUFnNitHeElybFJnSHRwWTJCZlVENTlrck9tMFN5ZVZPTjEwclcxcnBNRXZS?=
 =?utf-8?B?YXh4WDVTKzBKL0J4ZUo1Sy9PL1NQUkY0eVlxSVliVUFOTUN1QTQ0SExGSmNQ?=
 =?utf-8?B?TkVyNFpnNFAxR0tKdDByQnk1bDlldUZlcFdtS0M3RmlIcncxdnJyUE55WnRF?=
 =?utf-8?B?cGZVSnd4OHBWZTdwdUNFc01zUXdMYS9Ua2NYTkcxVW83QWRiUnBCaWZ6eVAy?=
 =?utf-8?B?aE1GTTV5cnF1NVlJaWFUV3JqRnVmWXorUmpzcENjS29ZRUQyanBmVng1OWdX?=
 =?utf-8?B?b1Z2amtaWjVaT2I2bWpDUmR1MzhUR2IrWTZFTnlpRkE1WWRiekxhU0haV3VI?=
 =?utf-8?B?N2lnNm9GOXNmMysvSFZoQU1nUGdCOHZTcUZveGlVdEp6ZHYrZG5XREc1U2xF?=
 =?utf-8?B?TFc0WUhLWnpkOWY2TWg2Z3l3SmhoTkx0b0UvMEZjNmhnZ2FLeDFIa3lTemYz?=
 =?utf-8?B?Z3JYUTh1cmRiZmhoeEVVcVV3N0YwTTRLZUF5V09HWWFPRWsrSEtCVWFxVVVK?=
 =?utf-8?B?M1VFaWg0ek40WWlIa2JEUmdTdXkrY051cUJMYTNJVm1qNU5uS0s2VnV4L1Fy?=
 =?utf-8?B?L255TksyWVc2aFEybzJ4cll3c2VZYnZ1dHYrMzVxQzA5R3BNa0l2TUl2Qkt0?=
 =?utf-8?B?MXJ4bXJjWnFTRzd4N0ovV3BDVUplM0s3bDZCQklEdFp5R0tET1VsOFYwSzNp?=
 =?utf-8?B?NnJISzVKMkY3enljQzVvY1JXeTgrYmIwYS9zVklXWGxKQ2J0UzVOTHBCbWdy?=
 =?utf-8?B?V05FdVlrL0pFM0xqT2JRalY4d2U4VHVUajlDK0pQeGtxbnBaaTVreVAremxa?=
 =?utf-8?B?ODlMM2JNRlU3ZCtUc3BRbjVBakJHcm5KQXZXZmVYdmcyaklaOXlhd2NVNU1p?=
 =?utf-8?B?TkJDVm5ZMjdOUWRRY0xGbGJibURsSzBkVDMra2E1QWNFRzBkYmxhUy83Z05y?=
 =?utf-8?B?MjlNbWRNZ3g3S3FwYkNFQlY1UzFJTWJjaWQ1OWVWcUZZekxta2hsczRDb1pt?=
 =?utf-8?B?U1h3T0ZDZ3pWeC9BR3gyaW0wd3ZIQUthVDJ4Z2UrL2Y1cXlFQU9vOG9ycnd4?=
 =?utf-8?B?aU5vWkV5c21DRTYyeFZJRnpvRXUzUGFjTWRYZklhdFFkZEM0OGNvdVc2WnYx?=
 =?utf-8?Q?sqrw=3D?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 671e9974-6e76-4da2-56ad-08dd7c1dd5e6
X-MS-Exchange-CrossTenant-AuthSource: BN9PR12MB5273.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Apr 2025 13:02:54.3544
 (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: IU9qiFLXzW3iduCcpCSP3zaLLxzmBNMqk+7PDIx+rFLJ2F0vKXt0E5Fcn4keIicq
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR12MB4384



On 15/04/2025 14:10, Luca Fancellu wrote:
> Hi all,
> 
> I’ve started this thread to talk about a possible Xen booting protocol when running on Armv8-R,
> currently Xen uses the Linux boot protocol and some other requirements stated in docs/misc/arm/booting.txt.
> 
> Unfortunately we don’t have anything already available for Armv8-R, the only implementation of a bootloader
> is the boot-wrapper-aarch64 which keeps the MPU off, I/D cache off.
> 
> So my proposal is to add additional requirements in our docs/misc/arm/booting.txt for the case where Xen is
> started on Armv8-R, under "Firmware/bootloader requirements”.
> 
> diff --git a/docs/misc/arm/booting.txt b/docs/misc/arm/booting.txt
> index 21ae74837dcc..39f029153e38 100644
> --- a/docs/misc/arm/booting.txt
> +++ b/docs/misc/arm/booting.txt
> @@ -62,6 +62,14 @@ Xen relies on some settings the firmware has to configure in EL3 before starting
>  
>  * The bit SCR_EL3.HCE (resp. SCR.HCE for 32-bit ARM) must be set to 1.
>  
> +When Xen runs on Armv8-R, the highest exception level is EL2 and the only
> +available mode is secure, hence the above requirements needs to be adjusted to
I think in Arm docs, this is called state, i.e. secure/non-secure state.
Also, s/needs/need/

> +this case:
> +
> +* Xen must be entered in S EL2 mode.
> +
> +* Xen must be entered with MPU off and data cache disabled (SCTLR_EL2.M bit and
> +  SCTLR_EL2.C set to 0).
>  
>  [1] linux/Documentation/arm/booting.rst
>  Latest version: http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Documentation/arch/arm/booting.rst
> 
> Please let me know your thoughts.
I think we need to have a place for boot assumptions for Armv8-R, so this is a
good start. MPU work is Experimental for now, so we can treat it as a living doc
(MPU part) for now.

~Michal



From xen-devel-bounces@lists.xenproject.org Tue Apr 15 13:06:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 13:06:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.953897.1348287 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4g04-00032A-AA; Tue, 15 Apr 2025 13:06:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 953897.1348287; Tue, 15 Apr 2025 13:06: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 1u4g04-000323-5R; Tue, 15 Apr 2025 13:06:52 +0000
Received: by outflank-mailman (input) for mailman id 953897;
 Tue, 15 Apr 2025 13:06: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=jTwS=XB=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1u4g02-00031w-Ek
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 13:06:50 +0000
Received: from NAM02-SN1-obe.outbound.protection.outlook.com
 (mail-sn1nam02on20603.outbound.protection.outlook.com
 [2a01:111:f403:2406::603])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7ce0785f-19fa-11f0-9eae-5ba50f476ded;
 Tue, 15 Apr 2025 15:06:48 +0200 (CEST)
Received: from PH8PR12MB7326.namprd12.prod.outlook.com (2603:10b6:510:216::7)
 by DS0PR12MB8453.namprd12.prod.outlook.com (2603:10b6:8:157::16) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.21; Tue, 15 Apr
 2025 13:06:44 +0000
Received: from PH8PR12MB7326.namprd12.prod.outlook.com
 ([fe80::6d76:9c33:d230:8264]) by PH8PR12MB7326.namprd12.prod.outlook.com
 ([fe80::6d76:9c33:d230:8264%2]) with mapi id 15.20.8632.030; Tue, 15 Apr 2025
 13:06:44 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7ce0785f-19fa-11f0-9eae-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=tLzawVvbUTLmV3G/TEV2EvcOO+MLb52Lktf9Bf1V0XgyBdBNugwkcPEQVSNYWT3KoWuFPh9h5aW/4uk8x1zmFadEZLjBtEWm0kcGoeLBQcKhpuY7sNS2mrPIfqbvn8sHNEuAz9Rq61puBv+cdWSZ54Knd7Zmb38au7AYNubu4ZtRgzWJ9L8mzU5lI8rYQ0TvfLfx4cKMRzPldKzeItoy88uuoN3GAtKViUKJPEmRyDMtNYFPL8nJI7i/81rZjQa+zr/uMao18ccf3EO+Zbh2w1NpwD36OuWju7s1/Ff2NOQ+idqLIa6QyZ7jnEkcyxKGUIxcgAJSsrj7a8xxfuDzNw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=qPQ7FcqW3y9LQgjrm1/oJB4iJKi7acAPrk0yjn91VTI=;
 b=ujHHjmuhblU3g16aGsALJG07qUM8+X2om/XZgSKUL/J3l1NnxTNxtXsET7KTV3bM7hAb+tg+wF2WBmSYImYrxfx7C6sxkWDIyIn0+lJKdroHOdi4g8SUueCcZU8MVjF/mKrAo+jDBUV5QI0B5M7kLPNZdURze7tmCjuPIbIn6/K/yioDuRrm/jYruIHTVhQX5yy+aJySTkzkkKLei1Q7Y8vOIiOoCK+LbQ8ClbZYw+twws8RTxzRU+kSjCJptn8AZ82vZalqDQC+JSoRR8rzY1gXiKsz/aS1VdYsK6zAa9WmccSxt+wAc3dM+IoZpvUB9NQoa1Nud6BsHCNBsUQMJA==
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=qPQ7FcqW3y9LQgjrm1/oJB4iJKi7acAPrk0yjn91VTI=;
 b=TIZQI49w1/IasbdSjpwFSe+BnoBVKG2bGzT9x/9obWGETkKiaGjFt1Nb/RL34PQ1eiYnmdm8sr2ZEv3hrB+xeeFo+qbtHrJBl+ujy/JheXehggHmUOKQw0N5qg+IGzE7eVTYvVfR+LMN6KJsaOpkoEiWGZ7GxuPpRHNOEWlhvuI=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <181e7bd1-c286-4e81-ad34-d7c048497d0c@amd.com>
Date: Tue, 15 Apr 2025 14:06:41 +0100
User-Agent: Mozilla Thunderbird
Subject: Re: Xen Armv8-R booting protocol
Content-Language: en-GB
To: Luca Fancellu <Luca.Fancellu@arm.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <Bertrand.Marquis@arm.com>, Julien Grall <julien@xen.org>,
 "Orzel, Michal" <michal.orzel@amd.com>,
 Ayan Kumar Halder <ayan.kumar.halder@amd.com>
References: <F10A37DE-4F3B-4A18-BAB7-B95616516A2A@arm.com>
From: Ayan Kumar Halder <ayankuma@amd.com>
In-Reply-To: <F10A37DE-4F3B-4A18-BAB7-B95616516A2A@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: DU2PR04CA0009.eurprd04.prod.outlook.com
 (2603:10a6:10:3b::14) To PH8PR12MB7326.namprd12.prod.outlook.com
 (2603:10b6:510:216::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: PH8PR12MB7326:EE_|DS0PR12MB8453:EE_
X-MS-Office365-Filtering-Correlation-Id: ad99ce79-b2fa-42ff-02e4-08dd7c1e5f2d
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?V0gyY2ZQaHlERXI5dDVVYzVRTEVpSlZITkEzdXlyelp5cXFuV0g2alZxNTV6?=
 =?utf-8?B?cldaVWl1YkRiSXNJOTZvSWx2Z05mTkhSUW1mU2ZKTDhsMDdwRHRRWENFaGJi?=
 =?utf-8?B?bisyVHYrbC8rU1p3UG9oaWt5VmQ0cjBVZERLVHR6dlFmSHJ2ck1DbkhxdmVX?=
 =?utf-8?B?ZnQ0djVCeEN6ZDJUWTlOVVdJRFBXQU9Uc3VmVXF3M2licFdKYWJnaEE3NTRy?=
 =?utf-8?B?VnNER1FnYktCZ0J6TnRXOWRuRjdFKzZVL1I2WjZRT0p5SkRyYXBhb0wzSDgy?=
 =?utf-8?B?elFOUjBPU05HUjlxK2M0RDZHaXJqVEI5VWVJR2lOazlBajZNVWJtTTFreHAw?=
 =?utf-8?B?cWJ4YmczcjlWVndXVzZRTjNmYk5jejdLaTlqR2p0a2psVUxub25FUmxPcFBs?=
 =?utf-8?B?UE43TC95RzhYSUZzMUxLZjdvUDlyWVp4bm5VNjZraTloTGtQRko4L3BPdnkr?=
 =?utf-8?B?dzZJT0NVUkcrV3FKbjAzNnpvMXh4TStkK0QzTTNtVEdzdUtucEFBcmpmN3JX?=
 =?utf-8?B?WVRrT2hmUkpybzJLZUkwdTZpaUhPeThmYmViOU00SkhpaU0vZXArWitydGN3?=
 =?utf-8?B?a3V6VHh5aTVKWlo0NUo1UnI1clRSV2hSZ2ZIYnpvYmN2RThhVGJMZy9RZjBr?=
 =?utf-8?B?eHFGSmp6R0kyNHRHR2NWbnluRDgwVC95bVkrc3F1MzZlcXdibjVIM1k2ODZJ?=
 =?utf-8?B?TEZrLzJXaG8ySCswL1Nwd2Q2K2VaZEgvNVppMTVIMzNoUEkyNGIzNXdsWEFX?=
 =?utf-8?B?SU90bjBqZCttMExzMGdWaWxMejVDNTUrVmZrU3F2SzJFYVVIMithL1R5OVlE?=
 =?utf-8?B?Zkpta09wRWYyeDBMSkdJSGEwZmFKeUt4QkJkTTJrS2JKRjUyU0paVTdnd2Q1?=
 =?utf-8?B?ejRQWmNRa00zV0ZLNHF6S3ZiRnVnRHhaWU10eVJpdmpkZEJSNUlLVEQ1V0ha?=
 =?utf-8?B?bFE3VFN4RjErQXZLUGZZZHpjbjd3S2luZFJRLzZvQ25sNjRITnV0VmhKTTAr?=
 =?utf-8?B?cnhnMEdMc3kvWS9QbEZzTlNOREd2Zys4V2hSWERnazVweVBUdHBYYTFqVExt?=
 =?utf-8?B?WkI2TjhvdWNqRVpGdlVETmRCM3RyRVFrTzg3QWdBNXMxNS9ZTXRoSm15eCts?=
 =?utf-8?B?anZHYU9uakh4Qms3Q21ESHhpMHBxeHBBeDlLVGlhSkNRYTluU2RSNVdTUkFa?=
 =?utf-8?B?TndrYWYrZU1ydE5BTFF1dk5Vd01saGZ3LzFFekh3ZzV0SHNWeTNtOVdiVUk4?=
 =?utf-8?B?anY1ZlBTeGRxMStpcCs3V1JpTFhSUysrdndSVXhxZEo2RUNvY3YxWHdJL2Vs?=
 =?utf-8?B?dGFIYnovMi8weXFnS2t4N2pPcTlXdE9tRTZHM1ZHUFJGMmNYTDY1MXcxWUxu?=
 =?utf-8?B?LzkyRHJSL3FTbk9jK1pWNWJ3dDVteHY0WlRtUTRnY1R6Q1l2Q29JNXA5YTF1?=
 =?utf-8?B?M1laWDFkQWJPS0VlTDJRTThkU3FicnZWbUltam1NdDhVVmdaRWcrUktzOHpL?=
 =?utf-8?B?dVF2M28rNHpiakNabVYzTlZqWmN2OGNlTk52aDBGYVVvOWFXNSs0ZElKaW5Z?=
 =?utf-8?B?czlRcXB2d0ZTREx4N3dVUHVyWnlsY0lHdFdCL2Voamk5S2dpL040Rkg2UDR2?=
 =?utf-8?B?TXlacTVoKy9VNjRBR0kzRVM5cDJFWHo4OWR5d0ZLZThCS2xCM0VGSFQ3L1JJ?=
 =?utf-8?B?RlJHQ3Rwa0JBbUlnTDk4UXZZVmdpVy8ra1pSc3p1aWJURVkzNjlqVU5lZFJt?=
 =?utf-8?B?TGh6bmdrTElqaUcxaDZnazNjbGRmQWRjUWFKWEhTMk9yZ2pzNkJaWEpqZC9p?=
 =?utf-8?B?WTdhcS8wNmE2VFZQa0l2TytLVEhrMmdsVWZyMmxzTzdOTHhrRWNPN0NJa1pp?=
 =?utf-8?B?NkJlZ0MxajdsN3RUWHFPWHE2ak5tOXFqbUdETkJWT1E1bHQwV0RvUldrcnpp?=
 =?utf-8?Q?TxBy66/f/Fs=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)(376014)(1800799024)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?MnBidGlONkNYeE9lZFYxbU5TU0FMWjZwSDMxc20xSi9YV0YxVEw3R1VGdEJR?=
 =?utf-8?B?VnFDeXdiZGY3S2ppQ2NnTldXV0lkQ2VhdU5OMTJTQjljZXk3WWFZNVJObC9s?=
 =?utf-8?B?YXdWQVVlNnZyVWgzQ2xxcWMzUzR3VllrbnRpRkx1Qm5Pb1F5TS9heGhYMGQw?=
 =?utf-8?B?OS9oV3Jkb3UwSGU4dHUrNlNxcmxXYzBEaittazN0dWYzMTlQdytTUkt2WHp2?=
 =?utf-8?B?SVVvYkhweVdBL0IvdTBzeEU3TFE2YWpqZ0ZvZ3NncllWdjJtRmpIbDNDaFpH?=
 =?utf-8?B?bzg3UUdCUDBhMVNodHBDTmZ6SEJPUmRQQm5WdDdWRUtJelVKRjZYSnI4QXRk?=
 =?utf-8?B?ZUY4VkRTUDR0MTNKU0txWHB1NFNyQm85eEpTSENqamFSc3NYSWEwNmg3L1ln?=
 =?utf-8?B?VjU0YnFIRWlLVzhTblgva3ZjaG1zWDVIZzd5UnhGR3ZIa0dNY1p2MVlGWkxB?=
 =?utf-8?B?VHB6OE1wNFlTbkh3SnVQbktCNmNNR0ZqTHJYZUgvdExLbHd0WUVSZ3NjTC96?=
 =?utf-8?B?RmtsYnV2cUc5RVA2ak50aFBLZlVQaGlrbGRsS3pwV1lZcDFrQ0h0NUpJRmNt?=
 =?utf-8?B?TFJJMUNNbVBMeG9NdWVjcGE5Yll1R29FbW5RUEtFZFZmS0tPZko0TjdCNFI1?=
 =?utf-8?B?ZkxOOUlNRzVMS05PbkVUelphc1pWMlUzVzFjOHBSZzVYczhoMmJQYUxqcm81?=
 =?utf-8?B?cXo4dU1FREpaZ1A1cHFqeGdLb2pudmdvU1FsaXYvZXd2cXdhbUZBbC9weG8x?=
 =?utf-8?B?VDZDOUwwQnNPNTBIUlJidVJaOG9rWFp4andld0dGajBqZ3hoWXFOZWxBUHZv?=
 =?utf-8?B?YVY0R00zdGswS1pKT0xuOEp2Zk91RVd1ZXBENXRCQlZNU2toYjZQMm5ZSXo2?=
 =?utf-8?B?L0s0cFJZclB1OCt1VmN5cElYNWtySCtuZ0FIWEN3Zmd2UmxYbWJOTy9Sdy9i?=
 =?utf-8?B?NE92cTdpNmxJS0NMZ1VZNDRsdGFuSG0ySWlVTnYyVm85MmhZeE9ybnZFYTNz?=
 =?utf-8?B?MlZoaUo2by90K0lPMStiUkFCcGxsZjZsd2VTOG40b3hLdWhpRjBhQlhzQnFv?=
 =?utf-8?B?bUp4WWFkcmY4SWpiQUE4aDN1N3BBWTJzYmdjMVNmc1hzczRRK1Vua1BQT3lG?=
 =?utf-8?B?aWNUREJzSFRvUUIrOFhoNkRIN2xZTXJPZ3EzUVQ0cUkzRG81SWtURFZZQVBI?=
 =?utf-8?B?RE1iZmhqa282MzBObzNFT2NhckM0bi90Tk9zZlc3bmNIL1BEcERHZGZEcWp0?=
 =?utf-8?B?MnNjR0NlbmRPZ1g2MThDRGh0bnl3S1NEbWFqWG44R2Q1OXVSUkl3VytiWUF1?=
 =?utf-8?B?Y0FtSzk3cEtOOUNLYmdseVQybEdORjJWQXk5blltSnI3ak0yV1RqT0owcWJn?=
 =?utf-8?B?Um1ZUU9vbFRsdnFGU2NYalJlS3JUU215bEJQalZ2bkJRSnJuQUZ4c3hKSkdP?=
 =?utf-8?B?aDhWL2RRTmhGQ1dobmd0M2xsWS9XT2FOS1NsajI0YlNHQzgwWjNIOU4rRDI5?=
 =?utf-8?B?U0o4RkVvT2d5by9zRk5yZ054RWlzVUx2ZXZ5N3hJUDZYZm5CdzRQWml3NzFJ?=
 =?utf-8?B?eFJKa3V2Z1FGUEI3NU4xam5nNkxVZW9uRC9Ca0dKS2NxWDFuemhESTdMYjAw?=
 =?utf-8?B?c28xODFiYVZPL1NLajVzZEJWNGJZMml5WkMvbFhBY2k1TTA0b1ZvZjRTUWpj?=
 =?utf-8?B?UTBjUUlPcnlZRVlEL2M0em9VdkozSXpsZmo5cGloc2x2MVNvNG5Ta1ZYUHFu?=
 =?utf-8?B?SDRmYVpSVWQ5Um52L01sL1B2YjA2S2QwNU5GT2VZZHdPZVUvc0I2Nk5OaDh2?=
 =?utf-8?B?anloR1pWb1kwL0cyeUkxNUNQVTUvMDB2WG5QcWN4OUhYWENEQ2ZnS2hQN2FO?=
 =?utf-8?B?RDV1WVExUWVUVlNxOHZoZXNoK1oxNlNoN3F0ZGpBVVlnbGw2VkVzMm1abkVz?=
 =?utf-8?B?SjNUdFU1MUVMbXdpRFRUODh4cEhNNWE5NnNKWWkvTlNEeWRzZ3RlaDFmMm1Y?=
 =?utf-8?B?VW8xWkdQaDJramxzOWtCQ1J5Ujc4dWo5bkgyTkFjUWprangvR0FNNWhibkFL?=
 =?utf-8?B?bG9JL25FaURBd01Wdms5eXFsMmp1SS9CbEUvQmlibnBXa0w4c0pRKzVpWTl4?=
 =?utf-8?Q?bsEHMw50r8V6Ver+GZ+9PXjzX?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ad99ce79-b2fa-42ff-02e4-08dd7c1e5f2d
X-MS-Exchange-CrossTenant-AuthSource: PH8PR12MB7326.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Apr 2025 13:06:44.5395
 (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: rwERvp8R0Ny3xc1gD0p3XeBkc2qoxKuCNIN6MB7h4e3hRLlmiOAyUM7CoDz3gpOXZ0Nb85kuMXRISl19kduEdQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB8453


On 15/04/2025 13:10, Luca Fancellu wrote:
> Hi all,
Hi Luca,
>
> I’ve started this thread to talk about a possible Xen booting protocol when running on Armv8-R,
> currently Xen uses the Linux boot protocol and some other requirements stated in docs/misc/arm/booting.txt.
>
> Unfortunately we don’t have anything already available for Armv8-R, the only implementation of a bootloader
> is the boot-wrapper-aarch64 which keeps the MPU off, I/D cache off.
>
> So my proposal is to add additional requirements in our docs/misc/arm/booting.txt for the case where Xen is
> started on Armv8-R, under "Firmware/bootloader requirements”.
This makes sense.
>
> diff --git a/docs/misc/arm/booting.txt b/docs/misc/arm/booting.txt
> index 21ae74837dcc..39f029153e38 100644
> --- a/docs/misc/arm/booting.txt
> +++ b/docs/misc/arm/booting.txt
> @@ -62,6 +62,14 @@ Xen relies on some settings the firmware has to configure in EL3 before starting
>   
>   * The bit SCR_EL3.HCE (resp. SCR.HCE for 32-bit ARM) must be set to 1.
>   
> +When Xen runs on Armv8-R, the highest exception level is EL2 and the only
> +available mode is secure, hence the above requirements needs to be adjusted to
> +this case:
> +
> +* Xen must be entered in S EL2 mode.

Refer ARM DDI 0568A.c ID110520 A1.3.1

Armv8-R (AArch32) only supports a single Security state, Non-secure.

I see that it differs from Armv8-R (AArch64) ARM DDI 0600A.d ID120821, A1.3

The PE is always in Secure state.

Probably you can mention both.

> +
> +* Xen must be entered with MPU off and data cache disabled (SCTLR_EL2.M bit and
> +  SCTLR_EL2.C set to 0).
>   
>   [1] linux/Documentation/arm/booting.rst
>   Latest version: http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Documentation/arch/arm/booting.rst
>
> Please let me know your thoughts.

A question, Do you know if u-boot (or any other bootloader) is supported 
on Armv8-R ? Because someone needs to pass the DTB address in r2/x0.

- Ayan

>
> Cheers,
> Luca
>


From xen-devel-bounces@lists.xenproject.org Tue Apr 15 13:10:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 13:10:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.953909.1348296 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4g3t-0004ZK-OI; Tue, 15 Apr 2025 13:10:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 953909.1348296; Tue, 15 Apr 2025 13:10: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 1u4g3t-0004ZD-Kb; Tue, 15 Apr 2025 13:10:49 +0000
Received: by outflank-mailman (input) for mailman id 953909;
 Tue, 15 Apr 2025 13:10: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=OWT/=XB=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u4g3s-0004Z7-KS
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 13:10:48 +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 0b3e751b-19fb-11f0-9ffb-bf95429c2676;
 Tue, 15 Apr 2025 15:10:46 +0200 (CEST)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-43d04ea9d9aso27777835e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 15 Apr 2025 06:10:46 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39eaf43ce0asm14260805f8f.70.2025.04.15.06.10.45
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 15 Apr 2025 06:10: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: 0b3e751b-19fb-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744722646; x=1745327446; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=jrF1SgrU7NO9DLAVzPzl65G+IMzhYeK0lQpRH9r4w+s=;
        b=nfY+mOTCoL3dfBk4+nSmhAYL5BOqERINAZBsOf0kJqfVODUh5RXCyNim0AnQvNU9DO
         OAibQkjB/Vi8LszPRnsn2RjHXZoH/h/mJHfy88axbiKF9TPNqEcjCraWko0J5PFF6sb5
         FWe2rlVErg9JJ8ONfyYX2HJwHp6GgRi5oWo0A=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744722646; x=1745327446;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=jrF1SgrU7NO9DLAVzPzl65G+IMzhYeK0lQpRH9r4w+s=;
        b=RJt9hzCUEyJK0wyBtE345xrufr4XM1li2yeqhMkyuq1PNAV1snAPqzyD7me2n7rB3f
         Br1ETdrzW3HxurkgNzMqHBM13NlW+6gmNbi684ZUSTE1MuZW+dHajhOixIUGEBeJTomN
         nNtPxpi4hKMzVhBHrz5k9gRaQrjP8aHfEcyWkTazq7XoGIwTGAC2hWv+5ebGHpoiS1t4
         h/3R/7KwxYqKhWwj3Trdqwog+QDgHZRwbA6HxeVRZupWPeYq1sTjNFJSoMn9iOcF+hDH
         WjzXnIBzmEyLU+FZLjfLuLjmHjfRrrq0TYZyBYcfc5SD6a8ZzxRtSmoKFMqu4ABe7hV6
         GKcg==
X-Forwarded-Encrypted: i=1; AJvYcCXQQOGwqu/5ji9nsyhAA1gSIoEZoyQhyeTNqeSy+H4iWdurSxoAoRJwdR3fw0TSc2TYMb4I5BZwAQY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzNMr1XPV0x9UIENf/AY8RK0UvaxylJG6+fjSWJd62YGi1GikVF
	Qz0h3uF0gsOf7wowJmGhjC8Pz4xzz4Ztk+dYXicYgO8n3c/Fo59dl+mGhwpwAAY=
X-Gm-Gg: ASbGncv24Us4cElaAurZ4V2uCffLq9vDUaLahGlZFV9255MaJj/KQMEQyLIRebgwbD/
	fDNuwcO1CBDbve914q2TTJEI1aXmL7/Uvmo6IXWqCDMRCPLCLmokJEprBdAkEqGfpSNlhfGE46C
	al3e0kXZe5YPldFE64LJ/FxyyiN3H8zehU4zXRPLG7IQKoN20J+bcWuGbQnTuqX/KonYhuE5WZk
	sFKJOyvB422a94c96AFcrv6vU9TzyLR8Fv0lH9x157xeSS3wDQAgBryUOtpsVCuWACEhjvgtKxy
	NEd1aYcrMhMgFqD1rw8Oa6JyujC17UMw6i8iAsu2HoPo1t/fNCZtkIhn/DYekrl+t/f/HA0IKi2
	D83iCxA==
X-Google-Smtp-Source: AGHT+IHOxPop5nErwl5Bhz/A8XO3wpDcZG/9u9PSqeByuk3jSS69wt49CwaE0rvm+wVTAwzNUnYjGA==
X-Received: by 2002:a05:600c:4e09:b0:43d:45a:8fca with SMTP id 5b1f17b1804b1-43f3a9b035fmr175404995e9.30.1744722645951;
        Tue, 15 Apr 2025 06:10:45 -0700 (PDT)
Message-ID: <2bdfe772-1229-4214-9391-b5ba66c499e6@citrix.com>
Date: Tue, 15 Apr 2025 14:10:44 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/shadow: Fix UBSAN in hvm_emulate_insn_fetch
To: Jan Beulich <jbeulich@suse.com>, Teddy Astie <teddy.astie@vates.tech>
Cc: Tim Deegan <tim@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
References: <91bd66eae876b940b09b3b650a21614e42ab0469.1744721279.git.teddy.astie@vates.tech>
 <9211cbe0-3674-41d5-8862-c819ada37140@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: <9211cbe0-3674-41d5-8862-c819ada37140@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 15/04/2025 2:00 pm, Jan Beulich wrote:
> On 15.04.2025 14:49, Teddy Astie wrote:
>> UBSAN complains when trying memcpy with a NULL pointer even if it's going to
>> copy zero bytes (which are the only cases where a NULL pointer is used).
> If this really was a problem, I think we'd need to go through and find all
> instances. However, ...
>
>> Fix this by only doing the memcpy if the pointer is non-NULL.
>>
>> (XEN) ================================================================================
>> (XEN) UBSAN: Undefined behaviour in arch/x86/mm/shadow/hvm.c:168:5
>> (XEN) null pointer passed as argument 1, declared with nonnull attribute
> ... it can only be the compiler who has added the nonnull attribute; we
> use it only in very few (other) places.
>
> Personally I find it absurd to forbid NULL here when the size is zero. Yet
> I agree that the spec can be interpreted this way.

https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3322.pdf

This is being proposed for fixing in C2Y, because lots of people think
it's absurd.

However, until we can raise our -std, I think we're stuck with the
current behaviour.

GCC-15 introduces the nonnull_if_nonzero attribute specifically for
memcpy() etc, but I don't see how we could make use of it in this case.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Apr 15 13:11:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 13:11:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.953918.1348306 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4g4J-00053R-43; Tue, 15 Apr 2025 13:11:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 953918.1348306; Tue, 15 Apr 2025 13: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 1u4g4J-00053K-1B; Tue, 15 Apr 2025 13:11:15 +0000
Received: by outflank-mailman (input) for mailman id 953918;
 Tue, 15 Apr 2025 13: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=JN3i=XB=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1u4g4H-0004Z7-Eb
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 13:11:13 +0000
Received: from OSPPR02CU001.outbound.protection.outlook.com
 (mail-norwayeastazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20f::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 190d980e-19fb-11f0-9ffb-bf95429c2676;
 Tue, 15 Apr 2025 15:11:11 +0200 (CEST)
Received: from DU2PR04CA0302.eurprd04.prod.outlook.com (2603:10a6:10:2b5::7)
 by DU0PR08MB9462.eurprd08.prod.outlook.com (2603:10a6:10:42e::21) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.34; Tue, 15 Apr
 2025 13:10:59 +0000
Received: from DB5PEPF00014B9C.eurprd02.prod.outlook.com
 (2603:10a6:10:2b5:cafe::93) by DU2PR04CA0302.outlook.office365.com
 (2603:10a6:10:2b5::7) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.34 via Frontend Transport; Tue,
 15 Apr 2025 13:10:59 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DB5PEPF00014B9C.mail.protection.outlook.com (10.167.8.170) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.12
 via Frontend Transport; Tue, 15 Apr 2025 13:10:59 +0000
Received: from DB7PR08MB2987.eurprd08.prod.outlook.com (2603:10a6:5:1c::25) by
 DU0PR08MB7640.eurprd08.prod.outlook.com (2603:10a6:10:31b::17) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.8632.36; Tue, 15 Apr 2025 13:10:26 +0000
Received: from DB7PR08MB2987.eurprd08.prod.outlook.com
 ([fe80::d53f:b16d:70a5:8668]) by DB7PR08MB2987.eurprd08.prod.outlook.com
 ([fe80::d53f:b16d:70a5:8668%4]) with mapi id 15.20.8632.030; Tue, 15 Apr 2025
 13:10: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: 190d980e-19fb-11f0-9ffb-bf95429c2676
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=y3SgDthTN8yHp4UGMmp7KDUX38w2CFuW4/n7uAiqeHwzmj91XuYI7a/HTmQXH2FEgPBl5LAqtc3S3PlBJacZdof30UVz0G3OqMVm/A6V1narFmNZfudXLZgH/69IsbjkgJooGZ0gT4OsQ0dWVrutB7K0+oy15wRvmIq4h0pdQFlIypUnqnf1mxUvTTSHakeGfDlcyymYsqVx4dRhsAICk/kkH3TAIoOJuSxcvKPYbdULLRaI/+/ZaT8K/hx1za9/BO2hQvFdOIa8oz2kQNfUJaph7U7AvvzxuviqoJmIH7wA+MN8tSrdRdXcLKnRhJRyo/hsZA5uWwplZPA3GgEMvA==
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=lHGK4CiB/aVaVHQboabuIt3SWAUuYctdwyk/zvUe9T8=;
 b=ADMFRoCIcgKG4Dwv82/Kgu5b2LMzBd6rFt9zUU2w/RbSKR8mMMqEOaFIUaIFgDo3IZXFXRft9x255PlU3dZRuUG7WPyHID86znWoKiHF6RkwUKmm1eyndcmwx+QkSQ9Z4pjiOmje9tRKE9TfElZV6PtRhIYaCKFwSidRIbhfadQ6h27U1VGg/XcX0QS6Y4mimuf9lS1dmeL5dhYS5w/zvVrd2WWA8s22B524BdxbdDbmf4SsrRwIrQ6lndgflyxB8aQNIeI2pAtXbaQ0ZC5zMK1GtmiEJz9cV9fiq6/3c7JfmVTpejw8qmodTCFaCEKLQYnKADpnaPj5NfU8vMHjZA==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=amd.com smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=lHGK4CiB/aVaVHQboabuIt3SWAUuYctdwyk/zvUe9T8=;
 b=BClhY4OFDQWpNhg/Npz3trv/tqmarW1gb26EBdlRxNuyKk8LXQqvTa6OZB6r4QCnZtP2XLf66+VRD3QOOo3DZDlkkOcDJL0pYceRjlr04FCGgun+1h6MDTlZFP/HU/+zIk/k5HynoEH+nTU+2Dmadtm+eoZCUda7CLdZWWt69/w=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=tsSOeCGVk1LDfSoffxwlE7v/Qty+5hcQLmguyilrNFKmwHIFaelMe7Hx6czwgiisLX7lzqhlf0p5ZMGd3kE7r3hXiuikRVMSN5yiYdym0g9+It5euKyIPU82G36bCU7ZLEzeXKJ87Vm5dKii1UG2kErVfCaQxAC3/ZHnrjoQAMK9uZWxmvfNQQL0p4511QA14Mn4M3oftdXWclVCwXQXpYwbqJUib9zGLIX/DGl1erhLygD5Lgjt33N5UlBk+zlUQ/88yRjwuHCigWIZ24Dg7DWBOFHSfE88NBHSDkZxoXySLRy6wBnq5ptt9Copj72FEJYrMV9gNL15VhgjEfJGyg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=lHGK4CiB/aVaVHQboabuIt3SWAUuYctdwyk/zvUe9T8=;
 b=AFliD+wcdhQwBvU6oE/GGhI+eXx4yqrynTGU4Z1IinI/bx1ujZ/FM6NCO9ko6Jo7PRhHyKSrUgjKembkJU08HZh/vecxznAh0s6/xM8H3We64I3OWeWPf5xVdlYsbCMdBOuXySQwRVUvARAIaayQyS3F6yI0C5zToCej0msKwyQI1SqJ01MP3Edi/tRol1UvBeD7rQBwGKZ/MO9WzMsxBMfyid0qPFM0FuM08/zQ6AlswSw2w4DLKX7IY2Vzz68Yet+ty2dIqoRL+5qF2xqIoKNXYgbItr1nI0FGsFzlMEq47pT0IuxKesKN/1w+iqeCVIuIpLp++iC7rrUdWqF0Xg==
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=lHGK4CiB/aVaVHQboabuIt3SWAUuYctdwyk/zvUe9T8=;
 b=BClhY4OFDQWpNhg/Npz3trv/tqmarW1gb26EBdlRxNuyKk8LXQqvTa6OZB6r4QCnZtP2XLf66+VRD3QOOo3DZDlkkOcDJL0pYceRjlr04FCGgun+1h6MDTlZFP/HU/+zIk/k5HynoEH+nTU+2Dmadtm+eoZCUda7CLdZWWt69/w=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Ayan Kumar Halder <ayankuma@amd.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Bertrand Marquis
	<Bertrand.Marquis@arm.com>, Julien Grall <julien@xen.org>, "Orzel, Michal"
	<michal.orzel@amd.com>, Ayan Kumar Halder <ayan.kumar.halder@amd.com>
Subject: Re: Xen Armv8-R booting protocol
Thread-Topic: Xen Armv8-R booting protocol
Thread-Index: AQHbrf9eNLQ3I8ChLUu7y92fKMnf87OksnaAgAAA54A=
Date: Tue, 15 Apr 2025 13:10:25 +0000
Message-ID: <A2ADAFDE-5936-4F87-9D71-549D68256AA4@arm.com>
References: <F10A37DE-4F3B-4A18-BAB7-B95616516A2A@arm.com>
 <181e7bd1-c286-4e81-ad34-d7c048497d0c@amd.com>
In-Reply-To: <181e7bd1-c286-4e81-ad34-d7c048497d0c@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.400.131.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DB7PR08MB2987:EE_|DU0PR08MB7640:EE_|DB5PEPF00014B9C:EE_|DU0PR08MB9462:EE_
X-MS-Office365-Filtering-Correlation-Id: eba16644-ea85-434e-3f87-08dd7c1ef702
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?eDdsR0FXNFFVbXl1Z1Rtbk5WUDlkZjNBNmMvR0dUZ0VQMktBYlVndG1LcVhS?=
 =?utf-8?B?V2Z4b1FTMkNseVpjV05wRkhwdXNlblVoWkFJSXVibGlCZi9YN0RwQ0VoRWhD?=
 =?utf-8?B?bUhXbjk0dWFGbjFZdlpDTGlDL0w2Q3hDSHBHajN0YTAxOWZFUmdxdDBhYXJ0?=
 =?utf-8?B?UFlyQW1pRWRWQXlMV3dNMWNLY2krMGFjUXp4bTcxdUJXbUc3K1VlUVhGRWNI?=
 =?utf-8?B?bUxWekljcHB4eml1eFpVWnFCV0ZZOGR0M1JIaFg3ekVOQU9ydjJjbE9tWjRR?=
 =?utf-8?B?OXZ4c1VpZnd3UnhEVDZWZHFyZDVqNmtIZlcyQUgrWFRScmlLVzlQU08zb1NH?=
 =?utf-8?B?TGw0WlpCVjlGZ3dKZGRRQzFGeUgzWGFWbFhHV1hqZEMwdkJiUWJKNWRwWHZj?=
 =?utf-8?B?RFYxd3pHVldIUnQyTWYrc0drYXg0WHBHbHpiTmR3bzNKMnh0cy9LWWlpdXlF?=
 =?utf-8?B?S09vZ1JFN1FoRTN5aExXNS9jYUptMHY1RVdicHlVazNQaXhDU3d3dk9aaVhy?=
 =?utf-8?B?STE3a0c4ZWt0UCt6ZE13aExBT2tUOE4vTGQzd1ozdWUrMjRseUdpSWJHMkZk?=
 =?utf-8?B?bWY5cEloeVJFclVtSEUya0FPWVdqTjQrSDVDYXJ5dy9MNGJXOHdwdWI0NE91?=
 =?utf-8?B?NnhhV1JHZTNlYm1xaGxjcVJIaDR1bXFGTUNuZHdOWkdLMFA3Wlp3R1ZBZDZL?=
 =?utf-8?B?U2QwbkRRQ0RlOEdXdlduTDhtUzA2NUY5eUc2VmIwcXh6dUVqMEJNMWhaNEpE?=
 =?utf-8?B?OGlaUmVYK1NjOEhJUE1zakpwaGF1aVhXS2liSXlYT1FtNDFadzdwcXdHRFly?=
 =?utf-8?B?c0laWlA4MWpZUFdMWWZXcittN0JMZ1ZWRDhscDd1MlhHOUFMR3Nhb1c3NmJG?=
 =?utf-8?B?UWdINWVBTFg3TXhxR3hjemR1VWhIVDRQY0hrNk9XNnRPQ3lPdGMxTjFKcXJS?=
 =?utf-8?B?cWJKWWJLN2JIRjh4bDE5QXp3UjVrS1ZoaWluRm5oR1Q3UUM2Z21hV1lCNDZz?=
 =?utf-8?B?T3doRExUZ3RCMUt2czBYVnAvZmV0NUUyY3dRbXRQajhGTmF3TWVSZXhheVcv?=
 =?utf-8?B?WlFBNisvS2FYK2VRZGd1STlKUlVydkhYSytuUEU4NTh0aFd3R0ZkdkMwWTlo?=
 =?utf-8?B?VkJzNExhV3NOK1JJNFpZZVlONDQySkZjRzFkd1h1YkJtWFU1b1RyU0UxYU9T?=
 =?utf-8?B?bGcwR25nQUZNZ29JQ0wwS0pvY0NwQ1ZLYk5seFllUUNnbG5Dc0UvTitzVW0v?=
 =?utf-8?B?eTZrUVROVFpKd3BzS3BaTUU0bG80aEt6TkFIKzNnOENUejZFbkE4dk52KzNZ?=
 =?utf-8?B?d1hwU3RoT3BVZ3VhdzZGZlBRcHBpSE5UUTE1cTdlYkd5RkpIRmlHOGNjRVh1?=
 =?utf-8?B?VnZQUzBQSFFtSVI2MTE1dndqWlM5eTE2V3VZenAvWjlnSUg3MHpQOGtXbDUz?=
 =?utf-8?B?b3pWU1NuK0hCMW0yZmlrOU1Bd2hZaVJKYWMyZE5taUdmUUplZWxJamw2clNX?=
 =?utf-8?B?SmVQaERuMkVVcnBlUDFGUTRWa0JhVmlpRWhGdTFzaWVDenZCSC92WS8ydmNz?=
 =?utf-8?B?MElXZFFuMzMzQmt6SkU1STl5NC9nUm1xZ0ZjQ1NvUlhkZzMzb2tLL3MyNXZS?=
 =?utf-8?B?N0p6Z3NUd25wTTFZU0RNY3RXN2RNd1J6ajdXZm85Z0cxdVF4R0NseUt4WHJ0?=
 =?utf-8?B?WUVHbllLM1AyZm5IMkIvMnQ5NjNzMlJkMUZ0QmNCeFJJWTVXa2V6dzVQWUYx?=
 =?utf-8?B?bmt0Q0RGMUJqRkdKNk95WmREazE3VmZoOEs3bFZBK1FNY3VGNVBBY2MzOWU4?=
 =?utf-8?B?aUI1SWVORG1odDhjbThCMHZ4aXplYkYrbEVzajZVaCtqMWY1ZGNIa0dUMjlX?=
 =?utf-8?B?U2VtZnlTeUxaSTVaMHJiNW9OUi9YZ3NCaFpCcFZkZHUxRHh4WVF5TTlMSSt0?=
 =?utf-8?B?WENZTmhYTjhNd2dQVlZQOXZxdkhPZzkyWVRkZVBVQzZkZjBrVWNKTlhGQzNN?=
 =?utf-8?Q?zjnHATHEdazlXoFE3bUe110ECqTZYw=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB7PR08MB2987.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: <0D6F2E26A3199B43B405B65444DF1F3E@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB7640
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB5PEPF00014B9C.eurprd02.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	92e66cf7-3123-4ada-970b-08dd7c1ee332
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|35042699022|36860700013|82310400026|14060799003|7053199007|13003099007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?UVpjcUlyR0FPSnpLaVBIQVEvNHk5Wlk1K01OSDVkM3FJKzlMTHVCUDV5U0du?=
 =?utf-8?B?Y3IxVUpVN1ZpMlNvcDZkaXhBaDBEL0JSV3IwNVFBNU0rZmUyaVBGbU1lR3RD?=
 =?utf-8?B?OVNHR0tPYlF4ejk3WCtmNEdmek1OTDA4eU4vaUNNVStWZTJQRXhJZCtlRU45?=
 =?utf-8?B?L05Ga0htREYvOTF5dXJVM2RxQStFSnNjZEZyR01MeThkZy9ZYVkvK3BLdklN?=
 =?utf-8?B?UDZ3bUJPSjNDTkRIbXFVVWl5dWlLMHJsS2VnRlpTbXVWQnBSd3h1LzRqY1lp?=
 =?utf-8?B?ekxCeSt3Wkt3aG11NU5DVitEOVpyQWtxQlRHNkp2Q0M0dW9adGhmYy9pVktW?=
 =?utf-8?B?Z0s5bDZUQzd1SlZ0ZnpiQXFncWk3MlF6QnF4UzRhUlhQNTNnOUZBZVBvQzcv?=
 =?utf-8?B?Z2NRWC9BNUYxYnFPL3ZzV2VGZ29TWU50QjZCK1BBSGorYmxpbEtXeStzMzlu?=
 =?utf-8?B?QVhCMyszNVBoKzJhekd5TXE0cUhnY0hxSll4d0x0aVlGaXZQc2tVL25lT3Na?=
 =?utf-8?B?bTlTcEdBL0FnWVN1TzN2aElvdmNJT29zWmxsWDlubmVtMVZCWkRkN0k2NzFJ?=
 =?utf-8?B?bnhpQXFWejVhYlFvdlFRSnZBa2hkdkUwWTFFS2JkU1dHRnNNUGFhVkYrUkJF?=
 =?utf-8?B?VjdpN1pJYm16a09kNGYySWo4SUFjR3lFbG1Ea0dYNDEwNDdSa0VUWER2VmZj?=
 =?utf-8?B?MkxoSC9CaDMyU05DYVJSZXJzbk5UVEE3ZWZraWRkUDFnSlpxaTluT2dGc0dD?=
 =?utf-8?B?c3VZN1c1S3dRcjRONjArbngxNWw1T2UzbllDRmRwS3hjeElwbDdFcVkxRUhW?=
 =?utf-8?B?eVF5WWs4QS9ZOXl3elFQRHo1VlM4YnlGc2xnOHFwMDlFRjZFN0ZCeGVJVjBC?=
 =?utf-8?B?am5mNDFWaTRuejl1a0VYTGJQVEFKaXMzUnBBMndBaEl6ZjRVZDU0K0U2b1FM?=
 =?utf-8?B?cStyWFo3SkZpSi9HbytGa2hRVTFRNTk1VjJHeTNTNDdXVEdGQVM3TXgydnE0?=
 =?utf-8?B?UWVkMHpNQzU5THhMOCtGdE4xUWxWMGlRS2hMa0Z0eCs1UEtnRWJaK0R4MGFU?=
 =?utf-8?B?QTloQVlERVFNSnZkNVRwaExqMFZIU3NSWlJnS3dCcm1EWloxNmZZTkQ5ZGdQ?=
 =?utf-8?B?cnV4VkgxeE9PRmlGcVdpclJHeVY2bGVnMEZaS2duUnAwTmN4TjcyZSt1RFRP?=
 =?utf-8?B?N0RPbGJYVDNLQVZKdmlFQ29JcnUySGllZkpiK2RzQXB1KzVDSlpjN25mTGts?=
 =?utf-8?B?UDVWc21abzF5d1EvV29VbEtCMVNoSWxmM0NhL3c2Wm5XNi9xM1VkSnNRTkZl?=
 =?utf-8?B?bWpGKzRmR2VqMVZiV2h5U3R2NTlNcmluZFdjaXdhYlZiZ1BQaThUYmtJbktB?=
 =?utf-8?B?L3lKKzRBcjZhakdOQXBPZC9EYmlYRm1YRjJWSmVZWFVqRzMrbllqeDE4eFVi?=
 =?utf-8?B?YXljdlRHQmlWdnVJNGZtbHV3R1JjaHZ5cFkzaUJNWVU4TWlYRmdWeHhwbmg1?=
 =?utf-8?B?bzQ1djBuYklIUXAyaWpnZUlWc1FpR1ZNK2hyeGQzMVBjeXZMYUxBUE83T1k2?=
 =?utf-8?B?UGlPS0VQZEpCcHBMQVByVEhLS0tVNEpMV040c0hlaDlPWDZhdUJhWFFGYTZz?=
 =?utf-8?B?S3NLeExwYWRVNDlrekhQOVMwRGhhNmlVNmJ5Y0h1ekpVZFlzNGFQdUo1RGVv?=
 =?utf-8?B?MnVZWFh0TVQyYmNoTmdVb0w5Qkg5Q2lMNEJKL3ZSbW5LaEw1TUlZaDVZSGtk?=
 =?utf-8?B?N0RoVGp4ck1UdEN3Z1pWZlpLcFBDVkE1RkJGM21nNFFEYWtiNXMyTmYxdVRJ?=
 =?utf-8?B?WXdaMGVPUFhZaHc5NFl1ZmtlT3cvMUF4cisydkpXK2owSDBsb1VHTWVPdEd3?=
 =?utf-8?B?YWpHb0k1WW1SWDI2WVlTVzh3Y3RSdkI1MHJmQlI2Ty9mTmhhTHptalpEUTBi?=
 =?utf-8?B?bWdYblV2YzkrSkRvOHc1aUVMcXNDM083SmNvM2pHMUJvb2VJL0R6TEorY0Jh?=
 =?utf-8?B?R0JDYTM1UXBGMkxmbUcybjRjVmg3QjFoNEowQmJFdGhxeEtUNFh3dGYvdm96?=
 =?utf-8?B?WWpQbG1qdGtuSUFWZUxuNjJKei9oYzQ2R2FIUT09?=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(1800799024)(35042699022)(36860700013)(82310400026)(14060799003)(7053199007)(13003099007);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Apr 2025 13:10:59.0523
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: eba16644-ea85-434e-3f87-08dd7c1ef702
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DB5PEPF00014B9C.eurprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB9462

SGkgQXlhbiwNCg0KPiBPbiAxNSBBcHIgMjAyNSwgYXQgMTQ6MDYsIEF5YW4gS3VtYXIgSGFsZGVy
IDxheWFua3VtYUBhbWQuY29tPiB3cm90ZToNCj4gDQo+IA0KPiBPbiAxNS8wNC8yMDI1IDEzOjEw
LCBMdWNhIEZhbmNlbGx1IHdyb3RlOg0KPj4gSGkgYWxsLA0KPiBIaSBMdWNhLA0KPj4gDQo+PiBJ
4oCZdmUgc3RhcnRlZCB0aGlzIHRocmVhZCB0byB0YWxrIGFib3V0IGEgcG9zc2libGUgWGVuIGJv
b3RpbmcgcHJvdG9jb2wgd2hlbiBydW5uaW5nIG9uIEFybXY4LVIsDQo+PiBjdXJyZW50bHkgWGVu
IHVzZXMgdGhlIExpbnV4IGJvb3QgcHJvdG9jb2wgYW5kIHNvbWUgb3RoZXIgcmVxdWlyZW1lbnRz
IHN0YXRlZCBpbiBkb2NzL21pc2MvYXJtL2Jvb3RpbmcudHh0Lg0KPj4gDQo+PiBVbmZvcnR1bmF0
ZWx5IHdlIGRvbuKAmXQgaGF2ZSBhbnl0aGluZyBhbHJlYWR5IGF2YWlsYWJsZSBmb3IgQXJtdjgt
UiwgdGhlIG9ubHkgaW1wbGVtZW50YXRpb24gb2YgYSBib290bG9hZGVyDQo+PiBpcyB0aGUgYm9v
dC13cmFwcGVyLWFhcmNoNjQgd2hpY2gga2VlcHMgdGhlIE1QVSBvZmYsIEkvRCBjYWNoZSBvZmYu
DQo+PiANCj4+IFNvIG15IHByb3Bvc2FsIGlzIHRvIGFkZCBhZGRpdGlvbmFsIHJlcXVpcmVtZW50
cyBpbiBvdXIgZG9jcy9taXNjL2FybS9ib290aW5nLnR4dCBmb3IgdGhlIGNhc2Ugd2hlcmUgWGVu
IGlzDQo+PiBzdGFydGVkIG9uIEFybXY4LVIsIHVuZGVyICJGaXJtd2FyZS9ib290bG9hZGVyIHJl
cXVpcmVtZW50c+KAnS4NCj4gVGhpcyBtYWtlcyBzZW5zZS4NCj4+IA0KPj4gZGlmZiAtLWdpdCBh
L2RvY3MvbWlzYy9hcm0vYm9vdGluZy50eHQgYi9kb2NzL21pc2MvYXJtL2Jvb3RpbmcudHh0DQo+
PiBpbmRleCAyMWFlNzQ4MzdkY2MuLjM5ZjAyOTE1M2UzOCAxMDA2NDQNCj4+IC0tLSBhL2RvY3Mv
bWlzYy9hcm0vYm9vdGluZy50eHQNCj4+ICsrKyBiL2RvY3MvbWlzYy9hcm0vYm9vdGluZy50eHQN
Cj4+IEBAIC02Miw2ICs2MiwxNCBAQCBYZW4gcmVsaWVzIG9uIHNvbWUgc2V0dGluZ3MgdGhlIGZp
cm13YXJlIGhhcyB0byBjb25maWd1cmUgaW4gRUwzIGJlZm9yZSBzdGFydGluZw0KPj4gICAgKiBU
aGUgYml0IFNDUl9FTDMuSENFIChyZXNwLiBTQ1IuSENFIGZvciAzMi1iaXQgQVJNKSBtdXN0IGJl
IHNldCB0byAxLg0KPj4gICtXaGVuIFhlbiBydW5zIG9uIEFybXY4LVIsIHRoZSBoaWdoZXN0IGV4
Y2VwdGlvbiBsZXZlbCBpcyBFTDIgYW5kIHRoZSBvbmx5DQo+PiArYXZhaWxhYmxlIG1vZGUgaXMg
c2VjdXJlLCBoZW5jZSB0aGUgYWJvdmUgcmVxdWlyZW1lbnRzIG5lZWRzIHRvIGJlIGFkanVzdGVk
IHRvDQo+PiArdGhpcyBjYXNlOg0KPj4gKw0KPj4gKyogWGVuIG11c3QgYmUgZW50ZXJlZCBpbiBT
IEVMMiBtb2RlLg0KPiANCj4gUmVmZXIgQVJNIERESSAwNTY4QS5jIElEMTEwNTIwIEExLjMuMQ0K
PiANCj4gQXJtdjgtUiAoQUFyY2gzMikgb25seSBzdXBwb3J0cyBhIHNpbmdsZSBTZWN1cml0eSBz
dGF0ZSwgTm9uLXNlY3VyZS4NCj4gDQo+IEkgc2VlIHRoYXQgaXQgZGlmZmVycyBmcm9tIEFybXY4
LVIgKEFBcmNoNjQpIEFSTSBEREkgMDYwMEEuZCBJRDEyMDgyMSwgQTEuMw0KPiANCj4gVGhlIFBF
IGlzIGFsd2F5cyBpbiBTZWN1cmUgc3RhdGUuDQo+IA0KPiBQcm9iYWJseSB5b3UgY2FuIG1lbnRp
b24gYm90aC4NCg0Kb2ssIHRoZW4gaXQgc2hvdWxkIGJlIFMvTlMgRUwyLg0KDQo+IA0KPj4gKw0K
Pj4gKyogWGVuIG11c3QgYmUgZW50ZXJlZCB3aXRoIE1QVSBvZmYgYW5kIGRhdGEgY2FjaGUgZGlz
YWJsZWQgKFNDVExSX0VMMi5NIGJpdCBhbmQNCj4+ICsgIFNDVExSX0VMMi5DIHNldCB0byAwKS4N
Cj4+ICAgIFsxXSBsaW51eC9Eb2N1bWVudGF0aW9uL2FybS9ib290aW5nLnJzdA0KPj4gIExhdGVz
dCB2ZXJzaW9uOiBodHRwOi8vZ2l0Lmtlcm5lbC5vcmcvY2dpdC9saW51eC9rZXJuZWwvZ2l0L3Rv
cnZhbGRzL2xpbnV4LmdpdC90cmVlL0RvY3VtZW50YXRpb24vYXJjaC9hcm0vYm9vdGluZy5yc3QN
Cj4+IA0KPj4gUGxlYXNlIGxldCBtZSBrbm93IHlvdXIgdGhvdWdodHMuDQo+IA0KPiBBIHF1ZXN0
aW9uLCBEbyB5b3Uga25vdyBpZiB1LWJvb3QgKG9yIGFueSBvdGhlciBib290bG9hZGVyKSBpcyBz
dXBwb3J0ZWQgb24gQXJtdjgtUiA/IEJlY2F1c2Ugc29tZW9uZSBuZWVkcyB0byBwYXNzIHRoZSBE
VEIgYWRkcmVzcyBpbiByMi94MC4NCg0KQXMgZmFyIGFzIEkga25vdywgbm8gb3RoZXIgYm9vdCBs
b2FkZXIgaXMgc3VwcG9ydGVkLCB3ZSBoYWQgcGF0Y2hlcyBmb3IgdS1ib290IGVuYWJsaW5nIE1Q
VSBhdCBFTDIgYnV0IHRoZXkgd2VyZSBub3QgbWVyZ2VkLg0KDQpJ4oCZbSBjdXJyZW50bHkgYnVp
bGRpbmcgWGVuIHdpdGggdGhlIGRldmljZSB0cmVlIGVtYmVkZGVkLg0KDQpDaGVlcnMsDQpMdWNh
DQoNCg==


From xen-devel-bounces@lists.xenproject.org Tue Apr 15 13:29:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 13:29:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.953943.1348316 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4gLo-00007m-IY; Tue, 15 Apr 2025 13:29:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 953943.1348316; Tue, 15 Apr 2025 13:29:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4gLo-00007f-Eb; Tue, 15 Apr 2025 13:29:20 +0000
Received: by outflank-mailman (input) for mailman id 953943;
 Tue, 15 Apr 2025 13:29: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=OGoX=XB=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u4gLn-00007W-CN
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 13:29:19 +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 a1d0e524-19fd-11f0-9eae-5ba50f476ded;
 Tue, 15 Apr 2025 15:29:18 +0200 (CEST)
Received: by mail-wr1-x432.google.com with SMTP id
 ffacd0b85a97d-3912fdddf8fso4426461f8f.1
 for <xen-devel@lists.xenproject.org>; Tue, 15 Apr 2025 06:29:18 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 ffacd0b85a97d-39eaf445315sm14200627f8f.82.2025.04.15.06.29.17
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 15 Apr 2025 06:29: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: a1d0e524-19fd-11f0-9eae-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744723758; x=1745328558; 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=umVEFvvhuAUX9tcOJFZJ1jDYZ4/gde0SM32dXszM3eM=;
        b=uHS8T5RNvPS5oAuKDYJhWVSG2pOpw4S5Q0LOE2S/0zQQqsCLQPSMjjOBj+OnHQyWSZ
         Qeeq3LEdXIWakkfqWnfeYI1KVVGRGVz5KYY/Qlou+x+tj6JCFlq1vQvkb7AX03E/zT+V
         rihdde4d76SPDl2dBNvZFATXRXiiGtFQAq/J8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744723758; x=1745328558;
        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=umVEFvvhuAUX9tcOJFZJ1jDYZ4/gde0SM32dXszM3eM=;
        b=toGac0ncJC7QeeWt6tu4XVB+68MQdePBu/6iI2AH2zhiMen6ckK+bI8Sk/AQuD5LQ1
         40CjyP9fvuUPuhNs6dk/1PQhaKDz/6hfvdWZTp2IdH1yFmhhGX27NJuKlv+WESHmLnuL
         bXbPApKTGuw5PwgKNhwbvaqJ0XTKJnMoIOgO8SGGxdHpM8Qv7XefaPXvuKWFwmBhXNNs
         ij2gna6RVl1eXrK8t3NlPU4hd7xKZZcRhBe9354pyyhv0q3ibqW0KMwvsqoXhZ602Rvc
         66qgRNw3yU1PjvE80JkMP0SeRILThulexbpNkw3a7jFzUseZ9Qf+zGdK4YZSHDrqGdPw
         YAPg==
X-Gm-Message-State: AOJu0YxHduKbkZysY7YE8KU3eHeLcfn4/hAbZ9LcFCeoTsbUIprz6ogN
	DwzH5mL4eFGiA+Ntg3FPfOisOitmsIqVuxxdfxwDBQh2MGAhA5TkHI8ut00apN8=
X-Gm-Gg: ASbGncuCnOlakHSIMkgK4ViE4tu5qjx2gl2VN9j1iBbaMhD7mBHH97/0ZzdVMFAt7ZA
	cKdrunuFvmvtoqdH+i6Sb9Jhc03Wl2KAAMpHEfAQQcSqBuOD+sPB1r32hqXkcsnatvMx9pJ2GGz
	bqdpjCti/OyREWrxw7aAnViKivzqWvyZL7QzLqaD4+tx7y5DqXB1DZu972SmDZm2IHh4wwH6+3V
	5nXIMcL9JmtLkWdAy9K94mLQt/q5l0GrP1v72q4dR03fUx8659K6jFYnmSEMXJ+CO0PKyuLYJJy
	p1ktKu0qPJqkDVrOuX/jRMux+UZ+Zl1M4DbVp2mgcxXT0g==
X-Google-Smtp-Source: AGHT+IFROwtiwJ5KZFONniBUiV+I9IwTrDxDpn1CBaINhRuV2gxIm4xsWxCciTlENcrdxUBDIr3ovA==
X-Received: by 2002:a05:6000:2905:b0:38d:ae1e:2f3c with SMTP id ffacd0b85a97d-39edc317e60mr2913352f8f.25.1744723757529;
        Tue, 15 Apr 2025 06:29:17 -0700 (PDT)
Date: Tue, 15 Apr 2025 15:29:16 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jiqian Chen <Jiqian.Chen@amd.com>
Cc: xen-devel@lists.xenproject.org, Huang Rui <ray.huang@amd.com>
Subject: Re: [PATCH v2 7/8] vpci/msi: Free MSI resources when init_msi() fails
Message-ID: <Z_5fLB1GoyoxpuOL@macbook.lan>
References: <20250409064528.405573-1-Jiqian.Chen@amd.com>
 <20250409064528.405573-8-Jiqian.Chen@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <20250409064528.405573-8-Jiqian.Chen@amd.com>

On Wed, Apr 09, 2025 at 02:45:27PM +0800, Jiqian Chen wrote:
> When init_msi() fails, the previous new changes will hide MSI
> capability, it can't rely on vpci_deassign_device() to remove
> all MSI related resources anymore, those resources must be
> cleaned up in failure path of init_msi.
> 
> To do that, add a new function to free MSI resources.
> 
> Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
> ---
> cc: "Roger Pau Monné" <roger.pau@citrix.com>
> ---
> v1->v2 changes:
> * Added a new function fini_msi to free all MSI resources instead of using an array to record registered registers.
> ---
>  xen/drivers/vpci/msi.c | 47 +++++++++++++++++++++++++++++++++---------
>  1 file changed, 37 insertions(+), 10 deletions(-)
> 
> diff --git a/xen/drivers/vpci/msi.c b/xen/drivers/vpci/msi.c
> index ca89ae9b9c22..48a466dba0ef 100644
> --- a/xen/drivers/vpci/msi.c
> +++ b/xen/drivers/vpci/msi.c
> @@ -193,6 +193,33 @@ static void cf_check mask_write(
>      msi->mask = val;
>  }
>  
> +/* 12 is size of MSI structure for 32-bit Message Address without PVM */
> +#define MSI_STRUCTURE_SIZE_32 12

I'm confused by this.  The minimum size of the capability is 4 bytes
for the capability pointer, plus 4 bytes for the message address,
plus 2 bytes for the message data.  So that's 10 bytes in total.

I think it would be best if you calculate the size based on the
existing msi_ macros.

if ( masking )
    end = msi_pending_bits_reg(msi_pos, address64);
else
    end = msi_mask_bits_reg(msi_pos, address64) - 2;

size = end - msi_control_reg(msi_pos);

> +
> +static void fini_msi(struct pci_dev *pdev)
> +{
> +    unsigned int size = MSI_STRUCTURE_SIZE_32;
> +
> +    if ( !pdev->vpci->msi )
> +        return;
> +
> +    if ( pdev->vpci->msi->address64 )
> +        size += 4;
> +    if ( pdev->vpci->msi->masking )
> +        size += 4;
> +
> +    /*
> +     * Remove all possible registered registers except capability ID
> +     * register and next capability pointer register, which will be
> +     * removed in mask function.
> +     *msi_mask_bits_reg/
> +    vpci_remove_registers(pdev->vpci,
> +                          msi_control_reg(pdev->msi_pos),
> +                          size - PCI_MSI_FLAGS);
> +    xfree(pdev->vpci->msi);
> +    pdev->vpci->msi = NULL;
> +}
> +
>  static int cf_check init_msi(struct pci_dev *pdev)
>  {
>      unsigned int pos = pdev->msi_pos;
> @@ -209,12 +236,7 @@ static int cf_check init_msi(struct pci_dev *pdev)
>      ret = vpci_add_register(pdev->vpci, control_read, control_write,
>                              msi_control_reg(pos), 2, pdev->vpci->msi);
>      if ( ret )
> -        /*
> -         * NB: there's no need to free the msi struct or remove the register
> -         * handlers form the config space, the caller will take care of the
> -         * cleanup.
> -         */
> -        return ret;
> +        goto fail;
>  
>      /* Get the maximum number of vectors the device supports. */
>      control = pci_conf_read16(pdev->sbdf, msi_control_reg(pos));
> @@ -237,20 +259,20 @@ static int cf_check init_msi(struct pci_dev *pdev)
>      ret = vpci_add_register(pdev->vpci, address_read, address_write,
>                              msi_lower_address_reg(pos), 4, pdev->vpci->msi);
>      if ( ret )
> -        return ret;
> +        goto fail;
>  
>      ret = vpci_add_register(pdev->vpci, data_read, data_write,
>                              msi_data_reg(pos, pdev->vpci->msi->address64), 2,
>                              pdev->vpci->msi);
>      if ( ret )
> -        return ret;
> +        goto fail;
>  
>      if ( pdev->vpci->msi->address64 )
>      {
>          ret = vpci_add_register(pdev->vpci, address_hi_read, address_hi_write,
>                                  msi_upper_address_reg(pos), 4, pdev->vpci->msi);
>          if ( ret )
> -            return ret;
> +            goto fail;
>      }
>  
>      if ( pdev->vpci->msi->masking )
> @@ -260,7 +282,7 @@ static int cf_check init_msi(struct pci_dev *pdev)
>                                                    pdev->vpci->msi->address64),
>                                  4, pdev->vpci->msi);
>          if ( ret )
> -            return ret;
> +            goto fail;
>          /*
>           * FIXME: do not add any handler for the pending bits for the hardware
>           * domain, which means direct access. This will be revisited when
> @@ -269,6 +291,11 @@ static int cf_check init_msi(struct pci_dev *pdev)
>      }
>  
>      return 0;
> +
> + fail:
> +    fini_msi(pdev);
> +
> +    return ret;
>  }
>  REGISTER_VPCI_LEGACY_CAP(PCI_CAP_ID_MSI, init_msi);

I wonder if the fini_msi should be referenced in
REGISTER_VPCI_{EXTENDED,LEGACY}_CAP(), so that the caller of
init_msi() can call fini_msi() on failure and thus avoid all those
fail hooks and labels, as the caller can take care of the cleanup.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Apr 15 13:39:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 13:39:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.953955.1348325 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4gVh-0002VI-DZ; Tue, 15 Apr 2025 13:39:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 953955.1348325; Tue, 15 Apr 2025 13:39:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4gVh-0002VB-As; Tue, 15 Apr 2025 13:39:33 +0000
Received: by outflank-mailman (input) for mailman id 953955;
 Tue, 15 Apr 2025 13:39:32 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1sCo=XB=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1u4gVf-0002V5-Tk
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 13:39:32 +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 0dcc457f-19ff-11f0-9ffb-bf95429c2676;
 Tue, 15 Apr 2025 15:39:28 +0200 (CEST)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-ac3fcf5ab0dso958810466b.3
 for <xen-devel@lists.xenproject.org>; Tue, 15 Apr 2025 06:39:29 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-64-225.play-internet.pl.
 [109.243.64.225]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-acaa1beb11csm1109999866b.64.2025.04.15.06.39.27
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 15 Apr 2025 06:39:28 -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: 0dcc457f-19ff-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1744724369; x=1745329169; darn=lists.xenproject.org;
        h=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=8fK7SyMgKxmqBoQE1n+Mki+hP40npFSNhk1l1fK60ss=;
        b=HBRXn8jrPM3FBnoPsuR27ifrThvAyNqg8xP33dHoIYDDsDOSR3Y66aClfjLBHzy+KJ
         tY1KLtqiCoqJ1WUdp6PvL1gog04alNloleL5wUkGP0Pg/ZFd84mqwNcwFnFjacc6HuFw
         ty13VZzvzbaUcC6eeKYHu/dfnTOP2vOMIR69BhiiQNi7D2+aF7QrnEw5+VZS4OgLzPrS
         7y9OZbAHLMUfaag/MS1tTSLUDYpSYeij5A8KCmkKy/tLVeA/x4P/Uo8ZYHu5rMPwLXLZ
         XxCRy4LK/Ai9k9FZzaALajUmgLjLk+Rf5yTLdjO1CA7bnvG/KlT9kUW9x11zk0h4GQL2
         9hhA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744724369; x=1745329169;
        h=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=8fK7SyMgKxmqBoQE1n+Mki+hP40npFSNhk1l1fK60ss=;
        b=uiou8FaGobV+5iYlmVKUtlsM36d/W3Tz4y+l7/2g3b/z8yKdqQ1d/t13CPuW65fB5c
         zHkmloYVceA8KPghT/F+mlF1wLemqiE3kCfMcNl1+ciFRJ+TWKHgDOgSn9JyNf5hNtaA
         DSBkLKcDDJ18h8YLfLGmzJzAyViiV77PZh4es2Z6coMhsLLXeg86QB69IXJ9jaRsTJ7+
         ubiTfZfhC4+mElqCbyogAyKM8+tgoKYtYX4IwDfNFxzZ//CU3qfZJYLt5BCLzFBtFXTG
         eWNFiuIGr4FjsNVNIlL+2wgaAxJqsdK2MhoCnC+dm4zJ+7iAfBUZtJeysbRhVirYX15D
         F2Zw==
X-Forwarded-Encrypted: i=1; AJvYcCV8wcACiGBq57LWiKcpOnWgYdXxA4vZsQf0ic8zHNdlgcQhCqQG7BkMn9zPhgEQCow6qEfgiqf2agg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwXVUwnEciHZxnA6t0qfJb3/cvVk8uxhR5QIfN0iPtqM6kced2u
	NFq9xoepq6wSFWkpcPE2l672orkIvaAmIrA29a+y+NQXz0jnq4ey0ygDWw==
X-Gm-Gg: ASbGnctafogRwzxi6PxWwf10B4KLMPXpJa8VClM7pA2IgKzAzEUKjvhPKv8yVjTbiq5
	qUoJY9dEqm3bVuYsNmAivvXcTcn1IIBccAqUe6sz3MEgnGccW1NhL621TjFs23qk7C6kj/5Hrux
	mnv01mFc6gMJXCtqBRRbE5FtfJzbL9KKTnegQFwFRbqy9KZWAxpBmBhYdkBEQngB10hHJJnTo13
	F4BysZ1+RFYjOvuldjwSE2hxVyOKmVieDEdyiWeTAZ7hwmtRWjYj6z1FifZ2TpElJeVxXo5vJxf
	Ai3TK/5JrHAGTEZaTeAbrGWsRIPaPj//W90AqGVcOPqCM/gsMRRHqI3vDKbTVb9vlkX5vtjUo+r
	7iF++s8a25Zmq3Nuh
X-Google-Smtp-Source: AGHT+IGcvEc4T+aQwF6/f31MGm3tZx045YD/OQRV2wYOG3qNA09VkVqQ5+BlSDH5O9wuB0QGYA11qw==
X-Received: by 2002:a17:907:3da1:b0:ac1:e332:b1f5 with SMTP id a640c23a62f3a-acad36a567amr1466309966b.37.1744724368669;
        Tue, 15 Apr 2025 06:39:28 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------YKs1CjQbsGPB0Y1NBR0w6uHB"
Message-ID: <d10323b7-d95d-4b96-9bf1-7ae8edda153e@gmail.com>
Date: Tue, 15 Apr 2025 15:39:27 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 06/14] xen/riscv: riscv_of_processor_hartid()
 implementation
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1744126720.git.oleksii.kurochko@gmail.com>
 <ab592d50ad161ffed3950bdf58ade49ae90a3c0e.1744126720.git.oleksii.kurochko@gmail.com>
 <65f5952a-8d2a-499c-bd66-53e9e2fbfa9c@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <65f5952a-8d2a-499c-bd66-53e9e2fbfa9c@suse.com>

This is a multi-part message in MIME format.
--------------YKs1CjQbsGPB0Y1NBR0w6uHB
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 4/10/25 5:53 PM, Jan Beulich wrote:
> On 08.04.2025 17:57, Oleksii Kurochko wrote:
>> @@ -13,3 +16,68 @@ void __init smp_clear_cpu_maps(void)
>>       cpumask_set_cpu(0, &cpu_online_map);
>>       cpumask_copy(&cpu_present_map, &cpu_possible_map);
>>   }
>> +
>> +/**
>> + * of_get_cpu_hwid - Get the hardware ID from a CPU device node
>> + *
>> + * @cpun: CPU number(logical index) for which device node is required
>> + * @thread: The local thread number to get the hardware ID for.
>> + *
>> + * Return: The hardware ID for the CPU node or ~0ULL if not found.
>> + */
>> +static uint64_t of_get_cpu_hwid(struct dt_device_node *cpun, unsigned int thread)
> What does the "of" prefix stand for here? Looking at the function body I'm
> really at a loss. (I was first guessing something like OpenFirmware, but
> there's nothing here that would support that.)

I copy this function from Linux kernel. But you are right, "of" means OpenFirmware or
Open Firmware Device Tree and is used for the functions which work with device
tree.
I'll rename to dt_get_cpu_hwid() to follow the naming of device tree's functions
name in Xen.

>
> As you're only fetching data - can cpun be pointer-to-const?

Sure, it can  be. I'll update that.

>
>> +{
>> +    const __be32 *cell;
>> +    int ac;
>> +    uint32_t len;
>> +
>> +    ac = dt_n_addr_cells(cpun);
>> +    cell = dt_get_property(cpun, "reg", &len);
>> +    if ( !cell || !ac || ((sizeof(*cell) * ac * (thread + 1)) > len) )
>> +        return ~0ULL;
> I'm sorry for my lack of DT knowledge, but what's "thread" representing here?
> You only pass in 0 below, so it's unclear whether it's what one might expect
> (the thread number on a multi-threaded core).

Based on the DT specification alone, the|`reg`| value could refer to either a CPU or a thread ID:
```
The value of reg is a <prop-encoded-array> that defines a unique CPU/thread id for
the CPU/threads represented by the CPU node. If a CPU supports more than one thread
(i.e. multiple streams of execution) the reg prop-erty is an array with 1 element
per thread.
```

My understanding is that the term/thread/ was used in the Linux kernel to cover both
cases.
When SMT isn't supported, the CPU can be considered to have a single thread.
For example, RISC-V uses the term/hardware thread/ to describe a hart (i.e., a CPU).

Interestingly, the Linux kernel always uses|thread = 0|.

We could potentially drop this ambiguity and introduce an|ASSERT()| to check that
the|`reg`| property contains only one entry, representing the HART (CPU) ID:
```
   Software can determine the number of threads by dividing the size of reg by the parent
   node’s #address-cells. If `|reg`| has more than one entry, it would simply SMT support
   is required.
```

Does that approach make sense, or should we stick with the current implementation?

>
>> +    cell += ac * thread;
>> +    return dt_read_number(cell, ac);
> Nit (you know what)
>
>> +/*
>> + * Returns the hart ID of the given device tree node, or -ENODEV if the node
>> + * isn't an enabled and valid RISC-V hart node.
>> + */
>> +int riscv_of_processor_hartid(struct dt_device_node *node, unsigned long *hart)
> Similar question as above: What's "of" and what significance does the "riscv"
> prefix have in RISC-V code?

I will drop usage of 'of' in Xen and change it to 'dt'.

>
> Const-ness question again for "node".
>
>> +{
>> +    const char *isa;
>> +
>> +    if ( !dt_device_is_compatible(node, "riscv") )
>> +    {
>> +        printk("Found incompatible CPU\n");
>> +        return -ENODEV;
>> +    }
>> +
>> +    *hart = (unsigned long) of_get_cpu_hwid(node, 0);
>> +    if ( *hart == ~0UL )
> While for RV64 this won't matter, the difference in types (uint64_t returned,
> unsigned long used) is still puzzling me. What's the deal?

No specific reason, just overlooked that moment. I think we could use just
drop this cast.
The reason for uint64_t as a return type is that dt_read_number() returns
u64.

~ Oleksii

--------------YKs1CjQbsGPB0Y1NBR0w6uHB
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 4/10/25 5:53 PM, Jan Beulich wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:65f5952a-8d2a-499c-bd66-53e9e2fbfa9c@suse.com">
      <pre wrap="" class="moz-quote-pre">On 08.04.2025 17:57, Oleksii Kurochko wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">@@ -13,3 +16,68 @@ void __init smp_clear_cpu_maps(void)
     cpumask_set_cpu(0, &amp;cpu_online_map);
     cpumask_copy(&amp;cpu_present_map, &amp;cpu_possible_map);
 }
+
+/**
+ * of_get_cpu_hwid - Get the hardware ID from a CPU device node
+ *
+ * @cpun: CPU number(logical index) for which device node is required
+ * @thread: The local thread number to get the hardware ID for.
+ *
+ * Return: The hardware ID for the CPU node or ~0ULL if not found.
+ */
+static uint64_t of_get_cpu_hwid(struct dt_device_node *cpun, unsigned int thread)
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
What does the "of" prefix stand for here? Looking at the function body I'm
really at a loss. (I was first guessing something like OpenFirmware, but
there's nothing here that would support that.)</pre>
    </blockquote>
    <pre>I copy this function from Linux kernel. But you are right, "of" means OpenFirmware or
Open Firmware Device Tree and is used for the functions which work with device
tree.
I'll rename to dt_get_cpu_hwid() to follow the naming of device tree's functions
name in Xen.

</pre>
    <blockquote type="cite"
      cite="mid:65f5952a-8d2a-499c-bd66-53e9e2fbfa9c@suse.com">
      <pre wrap="" class="moz-quote-pre">

As you're only fetching data - can cpun be pointer-to-const?</pre>
    </blockquote>
    <pre>Sure, it can  be. I'll update that.

</pre>
    <blockquote type="cite"
      cite="mid:65f5952a-8d2a-499c-bd66-53e9e2fbfa9c@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+{
+    const __be32 *cell;
+    int ac;
+    uint32_t len;
+
+    ac = dt_n_addr_cells(cpun);
+    cell = dt_get_property(cpun, "reg", &amp;len);
+    if ( !cell || !ac || ((sizeof(*cell) * ac * (thread + 1)) &gt; len) )
+        return ~0ULL;
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
I'm sorry for my lack of DT knowledge, but what's "thread" representing here?
You only pass in 0 below, so it's unclear whether it's what one might expect
(the thread number on a multi-threaded core).</pre>
    </blockquote>
    <pre>Based on the DT specification alone, the <code data-start="168"
    data-end="173">`reg`</code> value could refer to either a CPU or a thread ID:
```
The value of reg is a &lt;prop-encoded-array&gt; that defines a unique CPU/thread id for
the CPU/threads represented by the CPU node. If a CPU supports more than one thread
(i.e. multiple streams of execution) the reg prop-erty is an array with 1 element
per thread.
```

</pre>
    <pre data-start="498" data-end="783" class="">My understanding is that the term <em
    data-start="532" data-end="540">thread</em> was used in the Linux kernel to cover both
cases.
When SMT isn't supported, the CPU can be considered to have a single thread.
For example, RISC-V uses the term <em data-start="732" data-end="749">hardware thread</em> to describe a hart (i.e., a CPU).</pre>
    <pre data-start="785" data-end="842" class="">Interestingly, the Linux kernel always uses <code
    data-start="829" data-end="841">thread = 0</code>.</pre>
    <pre data-start="844" data-end="1077" class="">We could potentially drop this ambiguity and introduce an <code
    data-start="902" data-end="912">ASSERT()</code> to check that
the <code data-start="931" data-end="936">`reg`</code> property contains only one entry, representing the HART (CPU) ID:
```
  Software can determine the number of threads by dividing the size of reg by the parent
  node’s #address-cells. If `<code data-start="1006" data-end="1011">reg`</code> has more than one entry, it would simply SMT support
  is required.
```
</pre>
    <pre data-start="1079" data-end="1161" class="">Does that approach make sense, or should we stick with the current implementation?</pre>
    <pre>
</pre>
    <blockquote type="cite"
      cite="mid:65f5952a-8d2a-499c-bd66-53e9e2fbfa9c@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+    cell += ac * thread;
+    return dt_read_number(cell, ac);
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Nit (you know what)

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+/*
+ * Returns the hart ID of the given device tree node, or -ENODEV if the node
+ * isn't an enabled and valid RISC-V hart node.
+ */
+int riscv_of_processor_hartid(struct dt_device_node *node, unsigned long *hart)
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Similar question as above: What's "of" and what significance does the "riscv"
prefix have in RISC-V code?</pre>
    </blockquote>
    <pre>I will drop usage of 'of' in Xen and change it to 'dt'.

</pre>
    <blockquote type="cite"
      cite="mid:65f5952a-8d2a-499c-bd66-53e9e2fbfa9c@suse.com">
      <pre wrap="" class="moz-quote-pre">

Const-ness question again for "node".

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+{
+    const char *isa;
+
+    if ( !dt_device_is_compatible(node, "riscv") )
+    {
+        printk("Found incompatible CPU\n");
+        return -ENODEV;
+    }
+
+    *hart = (unsigned long) of_get_cpu_hwid(node, 0);
+    if ( *hart == ~0UL )
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
While for RV64 this won't matter, the difference in types (uint64_t returned,
unsigned long used) is still puzzling me. What's the deal?</pre>
    </blockquote>
    <pre>No specific reason, just overlooked that moment. I think we could use just
drop this cast.
The reason for uint64_t as a return type is that dt_read_number() returns
u64.

~ Oleksii</pre>
  </body>
</html>

--------------YKs1CjQbsGPB0Y1NBR0w6uHB--


From xen-devel-bounces@lists.xenproject.org Tue Apr 15 13:44:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 13:44:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.953970.1348336 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4gad-0004q0-5W; Tue, 15 Apr 2025 13:44:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 953970.1348336; Tue, 15 Apr 2025 13: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 1u4gad-0004pt-1g; Tue, 15 Apr 2025 13:44:39 +0000
Received: by outflank-mailman (input) for mailman id 953970;
 Tue, 15 Apr 2025 13: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=LLvy=XB=bounce.vates.tech=bounce-md_30504962.67fe62c3.v1-84483b1d263f403a989b997c43abbb9e@srs-se1.protection.inumbo.net>)
 id 1u4gac-0004pm-85
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 13:44:38 +0000
Received: from mail177-19.suw61.mandrillapp.com
 (mail177-19.suw61.mandrillapp.com [198.2.177.19])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c4ef24c2-19ff-11f0-9eae-5ba50f476ded;
 Tue, 15 Apr 2025 15:44:36 +0200 (CEST)
Received: from pmta14.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail177-19.suw61.mandrillapp.com (Mailchimp) with ESMTP id 4ZcQPb26W7z7rf
 for <xen-devel@lists.xenproject.org>; Tue, 15 Apr 2025 13:44:35 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 84483b1d263f403a989b997c43abbb9e; Tue, 15 Apr 2025 13:44: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: c4ef24c2-19ff-11f0-9eae-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1744724675; x=1744994675;
	bh=MCsoCxHbYJkH5KgeS0K29SAhmNRAB9ySh3cZ7Gq7Avg=;
	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=16qX+mqZnC6VE0K4BZpkDLvu8ktiec/I8qAiccA7tjy0TbpLtOf2YJpwhEj7H7WX8
	 Aqy15HlQjSHlRzBOVNYBqo+A9zYbq0pKT/Gfd1HM9DJchgbWFUXxG9GgViT7rTuqoC
	 UQI9JAIHrZntNXB1+ZcJXyHIvcNsEhj5ZNZHnAR149atJv3CDYPnDbqzXPz1viIXhp
	 OiJBXNB6Pk+DjUrg0H8SejOmds55E6dy8lePkXxc4HYWB7hQBEKGWrLUcgzbMJdFE2
	 q8z6F1ffVsuFndnQsV9o8GR/HNpMDgWaZKbaICyYMB72qxA/KeT/xXROwpY36CAYxG
	 wK7DM/TmGjG+g==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1744724675; x=1744985175; i=teddy.astie@vates.tech;
	bh=MCsoCxHbYJkH5KgeS0K29SAhmNRAB9ySh3cZ7Gq7Avg=;
	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=Qg/PL29d6au8ayywlnM9c/7ZdfumyXVikaKJe7EuZCtsE38VsCo14CJLdGGbdkL28
	 CfnIp7ALlrehCIZ48IF4TVz8fZ6e6JGDIom85qguuspHFrJq7cAptMaajagLIqPDZ0
	 6pzM/yrlEO7lJrF/81rYUGjrfYncFuOzYwHWcZveXjK1rG2Pl799jQh2pJcd57fDIg
	 cFzp65EGWnC/HCIP9G79Brarnp4SQDQc0E/k4cQ+tND/2CXzU+oTwf+/iyvsEROQYk
	 OjqgXZ4oa1kkmTic45OdHE/CEV7+5kECJ63MrNxVrKnD498zjBFddbY0lD/dYdkIPb
	 cdU5Ya7YXofyQ==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH]=20x86/shadow:=20Fix=20UBSAN=20in=20hvm=5Femulate=5Finsn=5Ffetch?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1744724674217
Message-Id: <b46eae31-04b8-46b0-a102-df7e45b995aa@vates.tech>
To: "Andrew Cooper" <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
Cc: "Jan Beulich" <jbeulich@suse.com>, "Tim Deegan" <tim@xen.org>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>
References: <91bd66eae876b940b09b3b650a21614e42ab0469.1744721279.git.teddy.astie@vates.tech> <fa03d268-4175-4315-87af-0203104635c8@citrix.com>
In-Reply-To: <fa03d268-4175-4315-87af-0203104635c8@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.84483b1d263f403a989b997c43abbb9e?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250415:md
Date: Tue, 15 Apr 2025 13:44:35 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Le 15/04/2025 =C3=A0 15:02, Andrew Cooper a =C3=A9crit=C2=A0:
> Which compiler are you using?=C2=A0 (Just so there's a record.=C2=A0 Thes=
e reports
> are version-sensitive.)

It's GCC 14.2.0.

> 
> Do you know precisely which condition is being hit?

It occurs when booting OVMF (PVH and HVM) with HAP=3D0.
It doesn't seem to occur with SeaBIOS or PVH GRUB though.

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 Apr 15 13:45:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 13:45:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.953978.1348345 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4gbN-0005Jz-DF; Tue, 15 Apr 2025 13:45:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 953978.1348345; Tue, 15 Apr 2025 13: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 1u4gbN-0005Js-Ak; Tue, 15 Apr 2025 13:45:25 +0000
Received: by outflank-mailman (input) for mailman id 953978;
 Tue, 15 Apr 2025 13:45: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=OGoX=XB=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u4gbM-0004pm-Rk
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 13:45:24 +0000
Received: from mail-wm1-x332.google.com (mail-wm1-x332.google.com
 [2a00:1450:4864:20::332])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e1afc2d8-19ff-11f0-9eae-5ba50f476ded;
 Tue, 15 Apr 2025 15:45:24 +0200 (CEST)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-43cf257158fso39945945e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 15 Apr 2025 06:45:24 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 5b1f17b1804b1-43f233a2f71sm208580835e9.15.2025.04.15.06.45.23
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 15 Apr 2025 06:45: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: e1afc2d8-19ff-11f0-9eae-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744724724; x=1745329524; 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=5SYfiysPdG/42yMMYMhRphTDfMvWBf/wNO2XCbt2Hss=;
        b=d62RjP4Uaf46bgrtOuDNdUTvNruzjDns4lUpWzPqgAMPHFcelHjdALIOK+1ibgagWA
         eyt2n7bk1Adw+dm7L9/xwXRAcK1XUpe9RDXVcnozRxBmNztXgXrO2LLAITmfgTK9FoPV
         iEGLtWDC9O2JHDy3/74n44AMo5He6KMHtgS4Q=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744724724; x=1745329524;
        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=5SYfiysPdG/42yMMYMhRphTDfMvWBf/wNO2XCbt2Hss=;
        b=GfkBOybgF9fr0AespOvrt3onREjBpL27lv9J49y72oqsdV/59RxptYWA5xEtHZJfpz
         fazYjt3KTxf+oIPheYhvWr97RvYp4ccuB0Vk0d7reEpSncRkfELQWoTiZaaKOfrM+Ql/
         ALCEXjTh6TjE2opD1/VCQ5MmE8qbTCkim3EC8m5ry0tMvdpuSISAl+REzEtoECSWSGzz
         b5th+cOs+FfVp1mUABnPMr6ID1GoYMXSunSHvoGlkskk9JhUwFAN/hnpsXf7dJSpv2eM
         r1AW2Swr0YZKR2CCROtVAFBNEdEE8VyTS64GGvvKFLMlSGCWR7uo3S2Z8rf1twTOwQYm
         SyXA==
X-Gm-Message-State: AOJu0YyN2jzvwlB6GsgcBJx3kcyIzvIoJos81UtO3B1A21m5yCCZtgPf
	FXVYspud58A74YhISVAv5xHUasJIRFTAPqwqh6Qy814e5KHj3FFFeDK6STrsHS8=
X-Gm-Gg: ASbGncs7AqK5lIzdnUSBtWGIfUPBBgwPqSdTv3ramFGu2fwbTuoC7NjkTHU4zwQOHRp
	TEBXZ3F3h1Lt/0IGtBb4LWhL2WsBQVyFJ0aa1ZiWqYKXBrtLzwzC4ux+PuMGlXx7SsG2PPydAjd
	qtutkQ9XJ4ArdX9yQEFuZ+IEFqoLtCmyXAhR5O5iWcH1s7x7Zf1gSLlCUGb5o4C7XAxNETS+AAP
	72V6LC5K5CePlbRpIzAmRSrutu4FoIwp/CtsazOS2ol4QsU/MMRd6ZhxJ6alHiiNdNvCbVacjmX
	cyI/WAjw26jbu3HFZ7AJP6+8Fk94qVDU75/uwVIowAkZnmXQOr10YYXF
X-Google-Smtp-Source: AGHT+IHL33KCzKlFjR9o0V7DIEPwXQgX55PoAMz0zEzmguqqxRWWkXu+4BBrj7xFANk9BRDGILFNsg==
X-Received: by 2002:a05:600c:3ac6:b0:43c:f8fc:f69a with SMTP id 5b1f17b1804b1-43f3a925e28mr160006645e9.4.1744724723758;
        Tue, 15 Apr 2025 06:45:23 -0700 (PDT)
Date: Tue, 15 Apr 2025 15:45:19 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jiqian Chen <Jiqian.Chen@amd.com>
Cc: xen-devel@lists.xenproject.org, Huang Rui <ray.huang@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: [PATCH v2 8/8] vpci/msix: Add function to clean MSIX resources
Message-ID: <Z_5i7zZJ7lRjFr7G@macbook.lan>
References: <20250409064528.405573-1-Jiqian.Chen@amd.com>
 <20250409064528.405573-9-Jiqian.Chen@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <20250409064528.405573-9-Jiqian.Chen@amd.com>

On Wed, Apr 09, 2025 at 02:45:28PM +0800, Jiqian Chen wrote:
> When init_msix() fails, it needs to clean all MSIX resources.
> So, add a new function fini_msix() to do that.
> 
> And to unregister the mmio handler of vpci_msix_table_ops, add
> a new function.
> 
> Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
> ---
> cc: Jan Beulich <jbeulich@suse.com>
> cc: Andrew Cooper <andrew.cooper3@citrix.com>
> cc: "Roger Pau Monné" <roger.pau@citrix.com>
> ---
> v1->v2 changes:
> new patch.
> 
> Best regards,
> Jiqian Chen.
> ---
>  xen/arch/x86/hvm/intercept.c      | 44 ++++++++++++++++++++++
>  xen/arch/x86/include/asm/hvm/io.h |  3 ++
>  xen/drivers/vpci/msix.c           | 61 ++++++++++++++++++++++++++++---
>  3 files changed, 103 insertions(+), 5 deletions(-)
> 
> diff --git a/xen/arch/x86/hvm/intercept.c b/xen/arch/x86/hvm/intercept.c
> index da22c386763e..5eacf51d4d2c 100644
> --- a/xen/arch/x86/hvm/intercept.c
> +++ b/xen/arch/x86/hvm/intercept.c
> @@ -276,6 +276,50 @@ void register_mmio_handler(struct domain *d,
>      handler->mmio.ops = ops;
>  }
>  
> +void unregister_mmio_handler(struct domain *d,
> +                             const struct hvm_mmio_ops *ops)
> +{
> +    unsigned int i, count = d->arch.hvm.io_handler_count;
> +
> +    ASSERT(d->arch.hvm.io_handler);
> +
> +    if ( !count )
> +        return;
> +
> +    for ( i = 0; i < count; i++ )
> +        if ( d->arch.hvm.io_handler[i].type == IOREQ_TYPE_COPY &&
> +             d->arch.hvm.io_handler[i].mmio.ops == ops )
> +            break;
> +
> +    if ( i == count )
> +        return;
> +
> +    for ( ; i < count - 1; i++ )
> +    {
> +        struct hvm_io_handler *curr = &d->arch.hvm.io_handler[i];
> +        struct hvm_io_handler *next = &d->arch.hvm.io_handler[i + 1];
> +
> +        curr->type = next->type;
> +        curr->ops = next->ops;
> +        if ( next->type == IOREQ_TYPE_COPY )
> +        {
> +            curr->portio.port = 0;
> +            curr->portio.size = 0;
> +            curr->portio.action = 0;
> +            curr->mmio.ops = next->mmio.ops;
> +        }
> +        else
> +        {
> +            curr->mmio.ops = 0;
> +            curr->portio.port = next->portio.port;
> +            curr->portio.size = next->portio.size;
> +            curr->portio.action = next->portio.action;
> +        }
> +    }

Can't you use memmove() instead of a for loop?

memmove(&d->arch.hvm.io_handler[i], &d->arch.hvm.io_handler[i + 1],
	sizeof(d->arch.hvm.io_handler[0]) * (count - i - 1));

> +
> +    d->arch.hvm.io_handler_count--;
> +}
> +
>  void register_portio_handler(struct domain *d, unsigned int port,
>                               unsigned int size, portio_action_t action)
>  {
> diff --git a/xen/arch/x86/include/asm/hvm/io.h b/xen/arch/x86/include/asm/hvm/io.h
> index 565bad300d20..018d2745fd99 100644
> --- a/xen/arch/x86/include/asm/hvm/io.h
> +++ b/xen/arch/x86/include/asm/hvm/io.h
> @@ -75,6 +75,9 @@ bool hvm_mmio_internal(paddr_t gpa);
>  void register_mmio_handler(struct domain *d,
>                             const struct hvm_mmio_ops *ops);
>  
> +void unregister_mmio_handler(struct domain *d,
> +                             const struct hvm_mmio_ops *ops);
> +
>  void register_portio_handler(
>      struct domain *d, unsigned int port, unsigned int size,
>      portio_action_t action);
> diff --git a/xen/drivers/vpci/msix.c b/xen/drivers/vpci/msix.c
> index 6537374c79a0..60654d4f6d0b 100644
> --- a/xen/drivers/vpci/msix.c
> +++ b/xen/drivers/vpci/msix.c
> @@ -703,6 +703,54 @@ int vpci_make_msix_hole(const struct pci_dev *pdev)
>      return 0;
>  }
>  
> +static void fini_msix(struct pci_dev *pdev)
> +{
> +    struct vpci *vpci = pdev->vpci;
> +
> +    if ( !vpci->msix )
> +        return;
> +
> +    list_del(&vpci->msix->next);
> +    if ( list_empty(&pdev->domain->arch.hvm.msix_tables) )
> +        unregister_mmio_handler(pdev->domain, &vpci_msix_table_ops);

At the point the MMIO handler is added the capability initialization
cannot fail, so arguably if the MSI-X handler is registered there will
always be at least one functional MSI-X capability that requires it.

IOW: you can likely drop the addition of unregister_mmio_handler() and
avoid the removal of the MMIO handler.  Worst case a domain will end
up with a dummy handler that does nothing, but it won't cause
malfunctions.

> +
> +    /* Remove any MSIX regions if present. */
> +    for ( unsigned int i = 0;
> +          vpci->msix && i < ARRAY_SIZE(vpci->msix->tables);
> +          i++ )
> +    {
> +        unsigned long start = PFN_DOWN(vmsix_table_addr(pdev->vpci, i));
> +        unsigned long end = PFN_DOWN(vmsix_table_addr(pdev->vpci, i) +
> +                                     vmsix_table_size(pdev->vpci, i) - 1);
> +
> +        for ( unsigned int j = 0; j < ARRAY_SIZE(vpci->header.bars); j++ )
> +        {
> +            int rc;
> +            const struct vpci_bar *bar = &vpci->header.bars[j];
> +
> +            if ( rangeset_is_empty(bar->mem) )
> +                continue;
> +
> +            rc = rangeset_remove_range(bar->mem, start, end);
> +            if ( rc )
> +            {
> +                gprintk(XENLOG_WARNING,
> +                       "%pp: failed to remove MSIX table [%lx, %lx]: %d\n",
> +                        &pdev->sbdf, start, end, rc);
> +                return;
> +            }
> +        }
> +    }

There's no need to do any of this rangeset manipulation.  The BAR
rangesets are re-created for any map/unmap request, and hence should
be empty unless there's a concurrent operation going on (which won't
be the case when initializing the capabilities).

> +
> +    for ( unsigned int i = 0; i < ARRAY_SIZE(vpci->msix->table); i++ )
> +        if ( vpci->msix->table[i] )
> +            iounmap(vpci->msix->table[i]);

The MSI-X init function never maps tables, so the code here (given
it's current usage) will also never unmap anything.  However I would
also like to use this code for vPCI deassing, at which point the logic
will get used.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Apr 15 13:45:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 13:45:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.953979.1348356 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4gbR-0005Zr-Kg; Tue, 15 Apr 2025 13:45:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 953979.1348356; Tue, 15 Apr 2025 13:45:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4gbR-0005Zk-Hk; Tue, 15 Apr 2025 13:45:29 +0000
Received: by outflank-mailman (input) for mailman id 953979;
 Tue, 15 Apr 2025 13: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=ai1O=XB=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u4gbQ-0005Z6-HN
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 13:45:28 +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 e2f6df32-19ff-11f0-9ffb-bf95429c2676;
 Tue, 15 Apr 2025 15:45:26 +0200 (CEST)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-39ac56756f6so4863573f8f.2
 for <xen-devel@lists.xenproject.org>; Tue, 15 Apr 2025 06:45:26 -0700 (PDT)
Received: from [10.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-39eae96c05asm14070965f8f.26.2025.04.15.06.45.25
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 15 Apr 2025 06:45: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: e2f6df32-19ff-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744724726; x=1745329526; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=IO+DijkSHnrAyb5ZOzmqtwUZyE04LXM/7oREU+Iq+F8=;
        b=NjTmmMcDL3eEh3yDXvuTUk3uBEHzEfTvXXdDwEHwGQVDT86WNK2mp9PDoLq8B3zRVk
         i6+UyoxLgWk1Sx3wwoCXsT8jWB2kCJr/FWwsxg+wC/xCY3NMsCbn/xXTAg6LXCRRHvqE
         8KvCmuFUjkQ39xaf57vPKwkQZiiLDBSpauuf4G+DT5qdx5D/9F9qEGBDqoEEJRJ0MWkA
         TTMiCHxXMesQs6hQvKp6PLand/TAt87RwTyj0bbj8xrvOFU/SBzzSiDvSlHAQQwHYebP
         9eSezjPT479RP0sfQIZ2jaajgI9T5LGfx2kJciHfYFoj2asMQVo5+Gk6xR/51EySatgd
         Q7LA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744724726; x=1745329526;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=IO+DijkSHnrAyb5ZOzmqtwUZyE04LXM/7oREU+Iq+F8=;
        b=JIVf1qJqhqBrtVQlPqLNTO/irBlz1ifnccVcWk+SBVTrg3oNRbccPlInijbJ7Gc9xg
         RiaPLGLvCJ9Rx6KsRbTerL9u5YvzgVroIE6EiZJeSuz06uqTPrpko95UoOary8KuXmZp
         A5O7Xz1/fFJGckDz59GIIA1gyagSm4e62ZwkqT+SEo6BHGoYQ8HX9JpN9cfx4t44kshy
         vOdpRjr26OwwT+uVUYbcghsdN8r7hSeYY5dNTECa3lFtwntPAtI4L+jejF4iAFNC12TJ
         4hR/LBVy8PsE9Kqx2ZJyEYrcR507aXpWQlbkEaAqG1M1YQKrp9L++6T+v02PNPKT8FBf
         MzVA==
X-Forwarded-Encrypted: i=1; AJvYcCWG+punus65KPpvgFpSLkQnS3PCVr4IchWLW67GPBHR/IuHFZFbn6jHGsQ4ZE2Ck9SQeY1qzVVO/7E=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxuamDgDxUudqhHzHFbsQB1kUEJIGSXwY2gyGHLe6gTYNgbtMeW
	q7m6gtQVdKex6OZc1Pys7X2OvlfsPFzp71DITLrwK+e+E6cx2p28BCk1C9rCgg==
X-Gm-Gg: ASbGncuk4ys86+ugIBB5i4U/mqxrjYBABFDntPdcGNDhiHhsj9hGV90dll5BDFCBOqk
	FdjnxW1W9nlMVeZb8YsLvooCq6C9iLD+Qlw9cGy1UGTrM07F1+5fB9l3PTsw68pnyZIa029ksVd
	lqyJcZKgqWNg/e/KIlOLMlFhlt49k6A9/wKYs5nw37/APc5wzKyxHaSjt9HffOUWSiykcm3NMgM
	MBZsZQT1D8Ij/syniJZs8h0QpAuW8XUnj9pWQKlM8d5DFYMlRklFGY9Pxz8vrDOV1BLTZ0P4w5x
	/beriL4T/Ti0Je1Tyynk6lbsCGqid6hCLjTaX+FLrL/2i/GwK419eVcbdVQsZy0ChdzBb55/R3S
	t5oDCWHUeweWdfRtin+HMt6Lr+Q==
X-Google-Smtp-Source: AGHT+IGpwNKjNC3xFlGwjr4kmKIQkJXgO5WI/LPQO4QvhWW/9JzlmoTz9ZDyTGb3Y3JEC//kkDLiig==
X-Received: by 2002:a5d:64c2:0:b0:39a:c9d9:8f95 with SMTP id ffacd0b85a97d-39eaaed2296mr14603104f8f.52.1744724725879;
        Tue, 15 Apr 2025 06:45:25 -0700 (PDT)
Message-ID: <859d0c87-dc90-44c2-ab30-5164eec0705c@suse.com>
Date: Tue, 15 Apr 2025 15:45:24 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 06/14] xen/riscv: riscv_of_processor_hartid()
 implementation
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1744126720.git.oleksii.kurochko@gmail.com>
 <ab592d50ad161ffed3950bdf58ade49ae90a3c0e.1744126720.git.oleksii.kurochko@gmail.com>
 <65f5952a-8d2a-499c-bd66-53e9e2fbfa9c@suse.com>
 <d10323b7-d95d-4b96-9bf1-7ae8edda153e@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: <d10323b7-d95d-4b96-9bf1-7ae8edda153e@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 15.04.2025 15:39, Oleksii Kurochko wrote:
> On 4/10/25 5:53 PM, Jan Beulich wrote:
>> On 08.04.2025 17:57, Oleksii Kurochko wrote:
>>> +{
>>> +    const __be32 *cell;
>>> +    int ac;
>>> +    uint32_t len;
>>> +
>>> +    ac = dt_n_addr_cells(cpun);
>>> +    cell = dt_get_property(cpun, "reg", &len);
>>> +    if ( !cell || !ac || ((sizeof(*cell) * ac * (thread + 1)) > len) )
>>> +        return ~0ULL;
>> I'm sorry for my lack of DT knowledge, but what's "thread" representing here?
>> You only pass in 0 below, so it's unclear whether it's what one might expect
>> (the thread number on a multi-threaded core).
> 
> Based on the DT specification alone, the|`reg`| value could refer to either a CPU or a thread ID:
> ```
> The value of reg is a <prop-encoded-array> that defines a unique CPU/thread id for
> the CPU/threads represented by the CPU node. If a CPU supports more than one thread
> (i.e. multiple streams of execution) the reg prop-erty is an array with 1 element
> per thread.
> ```
> 
> My understanding is that the term/thread/ was used in the Linux kernel to cover both
> cases.
> When SMT isn't supported, the CPU can be considered to have a single thread.
> For example, RISC-V uses the term/hardware thread/ to describe a hart (i.e., a CPU).
> 
> Interestingly, the Linux kernel always uses|thread = 0|.
> 
> We could potentially drop this ambiguity and introduce an|ASSERT()| to check that
> the|`reg`| property contains only one entry, representing the HART (CPU) ID:
> ```
>    Software can determine the number of threads by dividing the size of reg by the parent
>    node’s #address-cells. If `|reg`| has more than one entry, it would simply SMT support
>    is required.
> ```
> 
> Does that approach make sense, or should we stick with the current implementation?

If extra enabling is required to make multi-thread CPUs work, then panic()ing
(not so much ASSERT()ing) may make sense, for the time being. Better would be
if we could use all threads in a system right away.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 15 13:54:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 13:54:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.954005.1348367 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4gkC-0007gc-IC; Tue, 15 Apr 2025 13:54:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 954005.1348367; Tue, 15 Apr 2025 13:54: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 1u4gkC-0007gV-DG; Tue, 15 Apr 2025 13:54:32 +0000
Received: by outflank-mailman (input) for mailman id 954005;
 Tue, 15 Apr 2025 13:54: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=OWT/=XB=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u4gkB-0007gM-2A
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 13:54:31 +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 2678a836-1a01-11f0-9eae-5ba50f476ded;
 Tue, 15 Apr 2025 15:54:29 +0200 (CEST)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-43d0359b1fcso37980875e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 15 Apr 2025 06:54:29 -0700 (PDT)
Received: from localhost.localdomain (host-92-26-98-202.as13285.net.
 [92.26.98.202]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43f2075a593sm212688205e9.25.2025.04.15.06.54.27
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 15 Apr 2025 06:54:28 -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: 2678a836-1a01-11f0-9eae-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744725268; x=1745330068; 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=NbSJKpjEs6yA5iy1ajG0aDkhz1q+SFhBT+q+STK8kOQ=;
        b=htfVc+IAQG/ORaQF6CfbEZlEjjHSAIlPX5ScJyZNqd31EWeQ4st4UYfjhrB9WmWPYk
         7DUQKb1sq4ZK8tcVktN+iG2rqD22MSBl8KIFm+tl0MZJMd2Pe82lY71ROW+MQsUD8InO
         yhzQqCHojM5ed1gPhYqxzS9s/WYJuT1bPmwq0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744725268; x=1745330068;
        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=NbSJKpjEs6yA5iy1ajG0aDkhz1q+SFhBT+q+STK8kOQ=;
        b=sanCOOhnGHOe9K2MUBvkvvN3dn/xNkIxNTHF65MHzzSP5L9Hjes/598vqC+SEdvjVo
         FdSAYEVXU7GvbEgKsb2YwoSBg8kM1EaNCx6pPV0mzMzY+g2Kiz1l7YE6MujFFxBqPAKm
         Wo+Mlk15IYNy7jjPtWGn5VgewXB4K+dGa58BnasZJTDBQ7ibGIoy5vHSabYHPv7xNCmu
         s9JhO/kFCAlGPI3902vDrMzyc5qW26pgDH3FGR6tt8eMgPcGfWJuF77IzDx0HURuiDzX
         C4pWvmm3TGhxwDmHA34QaDtfhFevtdXs69rVy0eMnHyQAKp3UjZocp9Bgx03cPrCOh30
         1BQQ==
X-Gm-Message-State: AOJu0YyjkMqXfthBltT6+HQuKD7pYK3PYBV5vJZNZ52YU2dj2Ml80uA1
	uF+yCsWGrD2yeGLAFbzYcwNNbFgsXdfGYkDfmlhjYobv6zV0+EKLkNLgKmENlOfVSN4p7BKXQnE
	ZCOs=
X-Gm-Gg: ASbGncuIsHK2cvToLM+JNwT3vdbcwPKWdzWqV2srzLiAs2+W00j3h+fOREfMqodH76X
	D9XhPeN0G8qwaJ7tWWdMEGo+KdGxCeMEuz3sPX3IrF3OKgYO2mRduZeqj07r/pWGHePdFMmlw6d
	ocrxk0xuWOI3x16XX2sY/luldstzoqTQoxH1hvk4NiqSTJHSqswlhIMvJAXAioZAUY9BtZLSOk9
	99fvylxMtEVGrd+mMX/E5bwpIZBR+FwT2OrKMavpOX7MF+ieWfnxUBy7XRhBKEGZ3TbY+0qiTWO
	IoH227AKyMPJCfLp8lrY8v4SdOcRN0EaYcTsmDK5+Ecm/sM550e0JZanqXdm6SEsI6h+zZpGrKG
	k+k6xLMdDMYcR5A==
X-Google-Smtp-Source: AGHT+IE8/RScaL/EftS9Q6Q6v11DPuJxKEGpO5WMIzIZ/JwQNdItKJw2u0Jk7oslqqp8dFGnL76beg==
X-Received: by 2002:a05:600c:3486:b0:43b:c305:3954 with SMTP id 5b1f17b1804b1-43f998a893amr37639015e9.8.1744725268513;
        Tue, 15 Apr 2025 06:54:28 -0700 (PDT)
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?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH] CI: Build with --prefix=/usr rather than setting LD_LIBRARY_PATH
Date: Tue, 15 Apr 2025 14:54:26 +0100
Message-Id: <20250415135426.2442073-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 also moves executables too.  I'm not sure why xilinx-smoke-dom0-x86_64.sh
was overriding PATH too, as /usr/local is clearly in PATH for all other tests,
but drop that too.

No practical change.

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: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>

https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/1769687343
---
 automation/scripts/build                          | 2 +-
 automation/scripts/qemu-alpine-x86_64.sh          | 1 -
 automation/scripts/qemu-smoke-dom0-arm64.sh       | 1 -
 automation/scripts/qemu-smoke-dom0less-arm64.sh   | 3 +--
 automation/scripts/qubes-x86-64.sh                | 1 -
 automation/scripts/xilinx-smoke-dom0-x86_64.sh    | 3 ---
 automation/scripts/xilinx-smoke-dom0less-arm64.sh | 3 +--
 7 files changed, 3 insertions(+), 11 deletions(-)

diff --git a/automation/scripts/build b/automation/scripts/build
index 51effec81ddd..a348c781d1f2 100755
--- a/automation/scripts/build
+++ b/automation/scripts/build
@@ -67,7 +67,7 @@ elif [[ "${HYPERVISOR_ONLY}" == "y" ]]; then
     collect_xen_artefacts
 else
     # Full build.  Figure out our ./configure options
-    cfgargs=()
+    cfgargs=("--prefix=/usr")
     cfgargs+=("--enable-docs")
 
     # booleans for which compiler is in use
diff --git a/automation/scripts/qemu-alpine-x86_64.sh b/automation/scripts/qemu-alpine-x86_64.sh
index fe86caa39304..746e70483d2c 100755
--- a/automation/scripts/qemu-alpine-x86_64.sh
+++ b/automation/scripts/qemu-alpine-x86_64.sh
@@ -49,7 +49,6 @@ echo "#!/bin/bash
 
 set -x
 
-export LD_LIBRARY_PATH=/usr/local/lib
 bash /etc/init.d/xencommons start
 
 xl list
diff --git a/automation/scripts/qemu-smoke-dom0-arm64.sh b/automation/scripts/qemu-smoke-dom0-arm64.sh
index 61dd24b9abef..d6f6b7488018 100755
--- a/automation/scripts/qemu-smoke-dom0-arm64.sh
+++ b/automation/scripts/qemu-smoke-dom0-arm64.sh
@@ -46,7 +46,6 @@ extra=\"console=hvc0 root=/dev/ram0 rdinit=/bin/sh\"
 " > root/domU.cfg
 echo "#!/bin/bash
 
-export LD_LIBRARY_PATH=/usr/local/lib
 bash /etc/init.d/xencommons start
 
 xl list
diff --git a/automation/scripts/qemu-smoke-dom0less-arm64.sh b/automation/scripts/qemu-smoke-dom0less-arm64.sh
index 58f11dd31038..e7a3e670d033 100755
--- a/automation/scripts/qemu-smoke-dom0less-arm64.sh
+++ b/automation/scripts/qemu-smoke-dom0less-arm64.sh
@@ -125,10 +125,9 @@ mkdir -p etc/local.d
 
 echo "#!/bin/bash
 
-export LD_LIBRARY_PATH=/usr/local/lib
 bash /etc/init.d/xencommons start
 
-/usr/local/lib/xen/bin/init-dom0less
+/usr/lib/xen/bin/init-dom0less
 
 brctl addbr xenbr0
 brctl addif xenbr0 eth0
diff --git a/automation/scripts/qubes-x86-64.sh b/automation/scripts/qubes-x86-64.sh
index 1f90e7002c73..bfdd2ceb99ba 100755
--- a/automation/scripts/qubes-x86-64.sh
+++ b/automation/scripts/qubes-x86-64.sh
@@ -201,7 +201,6 @@ cp -a ../automation/scripts/run-tools-tests tests/
 
 echo "#!/bin/bash
 
-export LD_LIBRARY_PATH=/usr/local/lib
 bash /etc/init.d/xencommons start
 
 brctl addbr xenbr0
diff --git a/automation/scripts/xilinx-smoke-dom0-x86_64.sh b/automation/scripts/xilinx-smoke-dom0-x86_64.sh
index 5bb44188dc3d..8f02fa73bd06 100755
--- a/automation/scripts/xilinx-smoke-dom0-x86_64.sh
+++ b/automation/scripts/xilinx-smoke-dom0-x86_64.sh
@@ -92,8 +92,6 @@ cd rootfs
 mkdir -p etc/local.d
 echo "#!/bin/sh
 set -x
-export LD_LIBRARY_PATH=/usr/local/lib
-PATH=/usr/local/bin:/usr/local/sbin:\$PATH
 ${DOMU_CMD}
 " > etc/local.d/xen.start
 chmod +x etc/local.d/xen.start
@@ -119,7 +117,6 @@ cd rootfs
 mkdir -p boot etc/local.d etc/xen etc/default
 echo "#!/bin/bash
 set -x
-export LD_LIBRARY_PATH=/usr/local/lib
 bash /etc/init.d/xencommons start
 ${DOM0_CMD}
 " > etc/local.d/xen.start
diff --git a/automation/scripts/xilinx-smoke-dom0less-arm64.sh b/automation/scripts/xilinx-smoke-dom0less-arm64.sh
index 59f3fe7edb3e..293232eebfe7 100755
--- a/automation/scripts/xilinx-smoke-dom0less-arm64.sh
+++ b/automation/scripts/xilinx-smoke-dom0less-arm64.sh
@@ -64,10 +64,9 @@ cd rootfs
 mkdir -p etc/local.d
 echo "#!/bin/bash
 
-export LD_LIBRARY_PATH=/usr/local/lib
 bash /etc/init.d/xencommons start
 
-/usr/local/lib/xen/bin/init-dom0less
+/usr/lib/xen/bin/init-dom0less
 
 ${dom0_check}
 " > etc/local.d/xen.start
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Tue Apr 15 14:12:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 14:12:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.954023.1348375 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4h16-00041C-Vz; Tue, 15 Apr 2025 14:12:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 954023.1348375; Tue, 15 Apr 2025 14:12: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 1u4h16-000415-TP; Tue, 15 Apr 2025 14:12:00 +0000
Received: by outflank-mailman (input) for mailman id 954023;
 Tue, 15 Apr 2025 14:11: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=ai1O=XB=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u4h15-00040z-5g
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 14:11:59 +0000
Received: from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com
 [2a00:1450:4864:20::32b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 976aa4da-1a03-11f0-9eae-5ba50f476ded;
 Tue, 15 Apr 2025 16:11:57 +0200 (CEST)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-43d0359b1fcso38211835e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 15 Apr 2025 07:11:57 -0700 (PDT)
Received: from [10.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-43f233a2c53sm208380595e9.14.2025.04.15.07.11.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 15 Apr 2025 07:11:56 -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: 976aa4da-1a03-11f0-9eae-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744726317; x=1745331117; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=K3B6SJYg1403AeLUVUtygRmyvNyLFkdNjo0+W9JheYs=;
        b=TQdZ4POmd5sZbDpdukj2gJbXoFZ9QTaZtZAOpKwwop+Rgyz+qIL+XqgpaR5zK3Ke6P
         Jf7JRki03TktG+W2wzqemlz/BTqCaaP2Xo9LluASq1SDBOcMxGmOWx28yo2mfy0TTR4y
         +VA+gxeW85IzunIjFmYcKuP1pTZd/vKQ4RQBk5hm/47swwi7S0W0fHsAzemcumiIASXt
         13Ks9HQanJQYFLFQktCeC02K65+JAd5pSWWnEJGJNO9eS4LpAmt1rjjX8XlTT59uybsK
         nZvOMF3ynHXMu0iq1m9CFqp3l+nAe8ZI2yYDVIKlHb8n5FFSf4PiiSZllfG7DutEUnUx
         HWeA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744726317; x=1745331117;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=K3B6SJYg1403AeLUVUtygRmyvNyLFkdNjo0+W9JheYs=;
        b=SpmLTaUEivdqqMCfTwgNLJGS/rcRNw3o0SY9g5B/9iNVWNNTEMsYXhD0LwWEHKh5ik
         kOqZsqa70xlQxOZBhTpnSC3Wfs6ANXqdYiGI3BPW+jTMIhpFthe5DzE6jwx3S3Tx2tag
         18cfsyTshRh8OrOsR4+fEQoZeiLrD9nrx4Wt35BVhRWMmtZA3NU877dD31iU/1/voBdE
         IvWQZFQR1jgmV2P8ZvA4KMCxXQCfYEGXUPtIRhlxW66roOInH541tUzxy0wc9cXH3Ncs
         t7Hq9C99brLos+IdUarhzGwzX1dbVVtUL4IdYkj0GEGZIyoZNb1ARPadJRJt3QaUM6/2
         5YcA==
X-Forwarded-Encrypted: i=1; AJvYcCVpNGEWnGcmEyGA7qjZISXmu2MzkyYRZ3ImvAHnc+ZrbP7P/VJCYrotcROah2wOXLnpYpiB9+pu01U=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz0Mfs7/JzwmRa+AxhBSuMOE3UQgchxxBCw2ldXSEHPaxcmhyrh
	kF+BVR5iPNZAnqb6XIuncVjrSz0OKDm5X+aYP/Gy4nE0VJe2Oj/9Zmd0CaZPPA==
X-Gm-Gg: ASbGnctO9nJg1M3ZimMAs8k/fcIJUW2zUnNbEnUntzEPh2jlm5js7fg6NgKZ0iCtKjg
	DqsjjA3PFbO1eWwk+hbf8vZyYbWAUmdOVXQzFtq7SA1TIQkITd/ImErGSWqTPG2+wFvT6y54O2h
	S9PPDnWA1m+pRWqV1zvbXQbapMCUxW2L2qf2muGMI6/IqLZNrQF/Ad76djOerAEj2g/QDjbqUig
	2jlN3+lCXoHrrao91CCbYODE0iT/kNgYgKH46uGB6ooYAju9LBSCPtAXC4/D2UOH9qiRLVdOuTt
	CcU2lGyXrPZojEep04sCxfj7uYZOs5R9bbZ8r2uTMpxdQeR9mz7QvkDuMd6zL0ERRtKda9AjmJS
	acH2OGGpCy8qy7fT1W1ozaonUxA==
X-Google-Smtp-Source: AGHT+IGO1EDJbdLV9K8ynYfBx4EvBXO7+J5OiOR85AoDuSINV21Hci5zSQGs3S/QjsXOgTknF6KLSQ==
X-Received: by 2002:a05:600c:6b4e:b0:439:91c7:895a with SMTP id 5b1f17b1804b1-43f998aa9d6mr26660675e9.7.1744726317229;
        Tue, 15 Apr 2025 07:11:57 -0700 (PDT)
Message-ID: <e7800c4c-36c8-4e05-a984-18cac7b7089b@suse.com>
Date: Tue, 15 Apr 2025 16:11:55 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 11/16] x86/hyperlaunch: locate dom0 initrd with
 hyperlaunch
To: Alejandro Vallejo <agarciav@amd.com>
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Jason Andryuk <jason.andryuk@amd.com>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Michal Orzel <michal.orzel@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: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-12-agarciav@amd.com>
 <b3018b0d-e0e8-440e-9f02-363a7bd0378f@suse.com>
 <D96IXRWYOGUM.Z5A9K2NCCBQY@amd.com> <D96JE0Q8U026.2FWWHTWUUMTPE@amd.com>
 <60363eb4-cb35-4077-b964-0c321c495a19@suse.com>
 <D9771CIVB3IR.TAKEYOHRCY30@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: <D9771CIVB3IR.TAKEYOHRCY30@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 15.04.2025 13:59, Alejandro Vallejo wrote:
> On Tue Apr 15, 2025 at 7:17 AM BST, Jan Beulich wrote:
>> On 14.04.2025 19:27, Alejandro Vallejo wrote:
>>> So... how frontally opposed would you be to restoring the ramdisk
>>> nomenclature? Also, for ease of rebasing future patches it'd be far
>>> nicer to go back to ramdisk rather than reinventing some new name.
>>
>> Well, I fear I wouldn't ack such a patch. If everyone else agrees
>> that "ramdisk" is the best of all names (or at least getting close),
>> I'd perhaps mumble over, but let it go in.
> 
> Ok... When I send v4 I'll do so keeping the "module" rename. Meanwhile,
> I'll try to think of some options. Calling Xen's modules and the booted
> kernel modules the same way is just way too confusing.
> 
> I take it you have the same dislike for initrd as you do for ramdisk?

Indeed.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 15 14:14:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 14:14:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.954033.1348385 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4h32-0004Yz-B2; Tue, 15 Apr 2025 14:14:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 954033.1348385; Tue, 15 Apr 2025 14:14:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4h32-0004Ys-8X; Tue, 15 Apr 2025 14:14:00 +0000
Received: by outflank-mailman (input) for mailman id 954033;
 Tue, 15 Apr 2025 14:13:59 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ai1O=XB=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u4h31-0004Yk-Cb
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 14:13:59 +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 dcf062e5-1a03-11f0-9ffb-bf95429c2676;
 Tue, 15 Apr 2025 16:13:54 +0200 (CEST)
Received: by mail-wr1-x436.google.com with SMTP id
 ffacd0b85a97d-391342fc1f6so4815386f8f.1
 for <xen-devel@lists.xenproject.org>; Tue, 15 Apr 2025 07:13:54 -0700 (PDT)
Received: from [10.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-39eaf4458a8sm14855414f8f.99.2025.04.15.07.13.53
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 15 Apr 2025 07:13:53 -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: dcf062e5-1a03-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744726434; x=1745331234; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Hm4W118zBeGzTyKnujUkc9j9Lg9Ss/sI645SNDDBUZc=;
        b=IY4f10uQqQS4MZlTJNMuQTIN6Cuv8lPYKldGgOl9SNGHYiXWuW/z7bkKkMrmailimj
         SeaBcWz9KKmqt72GoV4QXxCe2QLuTWSmnXhnlLqYFkSFN/Vd8vHNZAfxVcFPly35zGc4
         xR2OKJFf6B1qTbRFhqojAvgbZXJpcmlnrGs95F3re2st9qHfilZE0s/A111uFTbDPZW5
         PTQovGiVA65lIgGGdJECBAYx8gB87Q5Mme3fwLFxHtOqgl28qsDoK/YCDNGNlg8pMe9B
         R8NA7tvDkD0NgahTLxZJ3wC06A7vyfZ9dzikM9PW21qrf2XYUwrEfPuLHGEqPfl6Xk1N
         jwXQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744726434; x=1745331234;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Hm4W118zBeGzTyKnujUkc9j9Lg9Ss/sI645SNDDBUZc=;
        b=qATNoMaHJUAMeub054u1nmoHmXQi6MVREgtstuJscvsY58OYE8jNvCrVR84CaEaO58
         Uq2GjSNCiHb3tNVNUCavfV2GduAGhuoYVymzbHwREK8w0UU6P3lwoFUGzk+ffywDA3Yg
         9l9i83CKEctLqzrMl0/ZzGkTPx4O26n/QMFdduxDayC/z+LKni1PXIPJqdgFmjVbasOt
         4iX2pz1yl7l5HIedHneg7vH1Wyf0AzKYS/G7mY9OOxZR+2l16pjOeVSqUtNghsI4rnM9
         8IWdGg01rIeRuab3DjPffE5hkyyHo8rl+Ne/DMqWd+HGuMTs5ljFEIV1GLbyPNzx1OKF
         1d9A==
X-Gm-Message-State: AOJu0YzXbgKwaCqrhaJLvTP2kmW0N0NsSA9WcHwUfc82wur1JGnM3YvH
	gXL6OCMnrwK9RqpHoOb8R+mHS2jC6LOppYkj68ZAa3f+SzIuIYsnKQA4mtmTVg==
X-Gm-Gg: ASbGncvxRXXsadhm0SzWOASirGhsqQ2X6GXbTlgetSxBqnNRDEs2GuK0XDL8wmDrLkf
	mZEGc30guqZ2f7v47pgzMrGnbl8EwZ/ejuuOS1ZNe4FbNWHBgfVIkvwmiQbuWxwjYzICwx3MSt9
	AzCfNKjVFGns4KRZvmpNIKpwD6kgzz1Fa4gCrIwFIe6ft75auAUixWN4ewFw8Ovw0GbXAo8Vdui
	68jQjDVrQaV9hDG/H9KYuKfQgyPDORoAK28IRk48ZNznk0/x6ZZW8iWfo4G7diPRWM7z6NWRRw8
	8FzDzGTBwZd3O3ueovZzCwomJyXmmjNB3cZLER+MCK4BdDQNTypHzcr18JU1hYY5OG6uMXLryK2
	N0IaWj/yCJkAGNWROvJB1uLsjQrgnL2kVsced
X-Google-Smtp-Source: AGHT+IEFIxyWCs6/Pc/gG3TEVoFIvTkT1Auv4gi/DePlR9+opNV9161yH/GgAtO2TUFK68C1uwkE9g==
X-Received: by 2002:a05:6000:1a8f:b0:391:41c9:7a8d with SMTP id ffacd0b85a97d-39eaaecb033mr13723715f8f.54.1744726433830;
        Tue, 15 Apr 2025 07:13:53 -0700 (PDT)
Message-ID: <d503177b-de52-4068-90b5-5284ebc14854@suse.com>
Date: Tue, 15 Apr 2025 16:13:52 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 12/16] x86/hyperlaunch: add domain id parsing to domain
 config
To: Alejandro Vallejo <agarciav@amd.com>
Cc: xen-devel@lists.xenproject.org,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Jason Andryuk <jason.andryuk@amd.com>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Michal Orzel <michal.orzel@amd.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Julien Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Denis Mukhin <dmkhn@proton.me>
References: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-13-agarciav@amd.com>
 <tRYKTDKcoIBHId12LOD4EHCmAF-AN3V3PmkMqmyIjYCqQJ3TS_0ctt3WMCq1Ez3W7oIGxwU3UsAioyP9T9fMCO78_61AI01oYEknYF_h1_I=@proton.me>
 <D96K8KED132J.3C79EPWZM813D@amd.com>
 <1e86b0e1-fa1d-49b3-8718-db43099772c2@suse.com>
 <D976L0UZ7GJJ.2IKE0CKO5Z7EC@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: <D976L0UZ7GJJ.2IKE0CKO5Z7EC@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 15.04.2025 13:37, Alejandro Vallejo wrote:
> On Tue Apr 15, 2025 at 7:21 AM BST, Jan Beulich wrote:
>> On 14.04.2025 20:07, Alejandro Vallejo wrote:
>>> On Wed Apr 9, 2025 at 11:15 PM BST, Denis Mukhin wrote:
>>>> On Tuesday, April 8th, 2025 at 9:07 AM, Alejandro Vallejo <agarciav@amd.com> wrote:
>>>>> @@ -233,6 +264,12 @@ static int __init process_domain_node(
>>>>> return -ENODATA;
>>>>> }
>>>>>
>>>>> + if ( bd->domid == DOMID_INVALID )
>>>>>
>>>>> + bd->domid = get_initial_domain_id();
>>>>>
>>>>> + else if ( bd->domid != get_initial_domain_id() )
>>>>>
>>>>> + printk(XENLOG_WARNING
>>>>> + "WARN: Booting without initial domid not supported.\n");
>>>>
>>>> Drop WARN since the log message is XENLOG_WARNING level already?
>>>
>>> As mentioned elsewhere, the point of those prefixes are to be readable.
>>
>> This, however, imo is a matter of consistency across the codebase, not just
>> within hyperlaunch.
> 
> I agree. There is precedent though for certain printks to have a
> collective pattern for ease of reading (e.g: spec_ctrl.c when printing
> mitigations). With I'm merely justifying the 2 spaces followed by
> lowercase.
> 
> I did try to remove them and it was strictly harder to know what they
> referred to.
> 
>> Plus (again imo) if anything, prefixes that are part of
>> the log output should contain proper words ("Warning:" or "Error:"), and
>> they shouldn't needlessly "shout" (i.e. "FATAL:" is okay-ish to be all caps,
>> but the others aren't).
> 
> Right. I'm happy to rewrite them as "Warning: ..." and "Error: ..."

FTAOD - in the common case I'd prefer such prefixes to be omitted. Which
still means that there may be special cases where having them is warranted.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 15 14:17:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 14:17:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.954046.1348395 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4h5w-00057b-Nr; Tue, 15 Apr 2025 14:17:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 954046.1348395; Tue, 15 Apr 2025 14:17:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4h5w-00057U-LL; Tue, 15 Apr 2025 14:17:00 +0000
Received: by outflank-mailman (input) for mailman id 954046;
 Tue, 15 Apr 2025 14:16: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=ai1O=XB=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u4h5v-00057O-PI
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 14:16:59 +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 4ab8aff6-1a04-11f0-9eae-5ba50f476ded;
 Tue, 15 Apr 2025 16:16:58 +0200 (CEST)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-39c1ef4ae3aso3466820f8f.1
 for <xen-devel@lists.xenproject.org>; Tue, 15 Apr 2025 07:16:58 -0700 (PDT)
Received: from [10.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-39eaf43cd17sm14442480f8f.78.2025.04.15.07.16.57
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 15 Apr 2025 07:16:57 -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: 4ab8aff6-1a04-11f0-9eae-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744726618; x=1745331418; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=LRtdgeRagpRv7px4EPnGp+fta7KHRAH3sy3fLzPUH1o=;
        b=au5HZADdBtIG0WgRNcN3aoFRaj5sMREXfuf+i/hD8mHq91AD5oD4l7RTV+Q7PiCQEw
         lUqXzfKAvCofPzWrbBD5pOr2jxX4YhVnrJo6JmzCjEw4mRIyT4RC0F5Xs2DzTRXfzSmv
         ayi2OJ2X0kJVN9fvW0cC7vUBjYZC/04Nkfa4kZxnHA8rntIedgnl2E7Go65RaWkdMtqw
         ta/U3wNxvz2hCpMEqdkv3BzG/pqTkAnj7wFFd/n+EziXiKaBJdgnFqH+m9OopY6Ml8+0
         a38lztAs35fDRX6HBVqySWuLF8e3VzxE6frkKYhBL6OpH/yRItlmXXgOLD/qnkKPhTb5
         C7Kg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744726618; x=1745331418;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=LRtdgeRagpRv7px4EPnGp+fta7KHRAH3sy3fLzPUH1o=;
        b=q+Y+3LGVxY6Zm778GvHqTVHGfzbLvncrStAZ5R502nowH/fnffVXyuledKZKk+TatQ
         DWWEVnAr4mnsoIbYPixX4mDKqNq2QcwsYHBd9NQhoAZD/SrADqS3SZ/U7B04ZK3yCwog
         tiUKGZxnMiQGoFMCthUD+NbpfmUyH8TFoXdEFEED8jIReRhM6To2ZolhK3q6d2IEt5Xh
         NOQKVwPMgmXjZ8XFMibhevhUZNBbEl9GfohBufZU6AyZebKIKqSE1axidKysFN3xDFHj
         RqTIOv5v9AJoZ/PMALWcbGwGGh/1gujbCX1M6hDQThT/0Qv991nZ96FmHziz8y1gVubo
         MLkQ==
X-Forwarded-Encrypted: i=1; AJvYcCUAMQ/y5bkbMLSCNNufFmuxR/rY/ZM4Ns/uZ9SksZJZBfhTKuzUbBbuX0csOcRNVwCsfus8HXOvN4E=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwV+JEshuu+PXeVsywntJBXz2iUBw1qE10LHVN023yGqsBDZDUM
	g7AO3ZbS8H+yP7wIMw+JlDxmivc71hQJnH6nOT+lsGLHaAPcGH1Sq/lrltlpFQ==
X-Gm-Gg: ASbGncsMS1EEwl0ZAY88oe3GsP5AgXfqLdSKw/4r0b7jO8EPdqeWqy4z/bxWKGevfuf
	zGvc55pB3os0cwJOO1gDgztAYfPA+kW2fj4MGba5AhEb8xEO4uA5NxmFJaMXTMUn5+9fWV2G2fT
	T4qohd/dMN4FM7HzBGdWAnTfGYLzFi7VeWbQMV6BrsbNAxY+1g+Q7U6jcUNuWUWTpS48JQrkcrq
	WLlIm+ETGed64ELF8XDVMVh0kFj2VifaUC3NEOcgZiAPWJL/4qiPkDf0xfDwn0U+a8W52MJxQo+
	+qgJQyjIvwnNrsz1Xt6h6cmE5dsZCEdU8k3ZE6PSImyQ9w7rdaKqnObbSn79vJWaVSmVKZuB4vH
	f4ScH2JppwTjRv/gZYFT4v2jrc+YPL4ycJmun
X-Google-Smtp-Source: AGHT+IGNiLXXMxoogEGHExKNDMv3SltP1SjyDzTKtNREQ3BT6XWItmRAP+F48JLvSYhGPYxV/eR6Qg==
X-Received: by 2002:a05:6000:1847:b0:38d:dc03:a3d6 with SMTP id ffacd0b85a97d-39edc2fe0ffmr3272616f8f.4.1744726618000;
        Tue, 15 Apr 2025 07:16:58 -0700 (PDT)
Message-ID: <9f43c460-0564-4289-a60d-481fb342f7be@suse.com>
Date: Tue, 15 Apr 2025 16:16:56 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 12/16] x86/hyperlaunch: add domain id parsing to domain
 config
To: Alejandro Vallejo <agarciav@amd.com>
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Jason Andryuk <jason.andryuk@amd.com>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Michal Orzel <michal.orzel@amd.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Julien Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 xen-devel@lists.xenproject.org
References: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-13-agarciav@amd.com>
 <6ce79cc0-1fec-4ad9-834e-680ef1f81549@suse.com>
 <D96KUGJTQO7F.39OKDX33SSKYH@amd.com>
 <1235d73d-ec62-4223-a92f-7a19d802c306@suse.com>
 <D9775TTK4FZG.3E5KDTZHDHVE@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: <D9775TTK4FZG.3E5KDTZHDHVE@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 15.04.2025 14:05, Alejandro Vallejo wrote:
> On Tue Apr 15, 2025 at 7:27 AM BST, Jan Beulich wrote:
>> On 14.04.2025 20:35, Alejandro Vallejo wrote:
>>> On Thu Apr 10, 2025 at 12:49 PM BST, Jan Beulich wrote:
>>>> On 08.04.2025 18:07, Alejandro Vallejo wrote:
>>>>> From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
>>>>> @@ -158,12 +159,42 @@ int __init fdt_read_multiboot_module(const void *fdt, int node,
>>>>>  static int __init process_domain_node(
>>>>>      struct boot_info *bi, const 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) ?: "unknown";
>>>>>      int address_cells = fdt_address_cells(fdt, dom_node);
>>>>>      int size_cells = fdt_size_cells(fdt, dom_node);
>>>>>  
>>>>> +    fdt_for_each_property_offset(property, fdt, dom_node)
>>>>> +    {
>>>>> +        const struct fdt_property *prop;
>>>>> +        const char *prop_name;
>>>>> +        int name_len;
>>>>> +
>>>>> +        prop = fdt_get_property_by_offset(fdt, property, NULL);
>>>>> +        if ( !prop )
>>>>> +            continue; /* silently skip */
>>>>> +
>>>>> +        prop_name = fdt_get_string(fdt, fdt32_to_cpu(prop->nameoff), &name_len);
>>>>> +
>>>>> +        if ( strncmp(prop_name, "domid", name_len) == 0 )
>>>>> +        {
>>>>> +            uint32_t val = DOMID_INVALID;
>>>>> +            if ( fdt_prop_as_u32(prop, &val) != 0 )
>>>>> +            {
>>>>> +                printk("  failed processing domain id for domain %s\n", name);
>>>>> +                return -EINVAL;
>>>>> +            }
>>>>> +            if ( val >= DOMID_FIRST_RESERVED )
>>>>> +            {
>>>>> +                printk("  invalid domain id for domain %s\n", name);
>>>>> +                return -EINVAL;
>>>>> +            }
>>>>> +            bd->domid = (domid_t)val;
>>>>
>>>> And a conflict with other domains' IDs will not be complained about?
>>>
>>> Hmmm... sure, I can iterate the domlist and check.
>>
>> Well, just to clarify: The checking doesn't necessarily need to happen here
>> and now. It may also happen as domains are actually created. Yet then I
>> think a pointer there (in a code comment) would be helpful here.
> 
> That'd be fairly unsafe. In the case of parallel boot it'd be
> indeterminate which VMs end up running if they happen to have a domid
> clash. It's better to detect the error earlier and crash before any get
> to start up.

What's the unsafe aspect here? We'd crash either way; the domain(s) that
may be successfully launched wouldn't make it very far.

Yet irrespective - my request is _that_ collisions are checked for. I
don't mind much _where_ that checking lives.

>>>>> @@ -233,6 +264,12 @@ static int __init process_domain_node(
>>>>>          return -ENODATA;
>>>>>      }
>>>>>  
>>>>> +    if ( bd->domid == DOMID_INVALID )
>>>>> +        bd->domid = get_initial_domain_id();
>>>>> +    else if ( bd->domid != get_initial_domain_id() )
>>>>> +        printk(XENLOG_WARNING
>>>>> +               "WARN: Booting without initial domid not supported.\n");
>>>>
>>>> I'm not a native speaker, but (or perhaps because of that) "without" feels
>>>> wrong here.
>>>
>>> It's probably the compound effect of without and "not supported". The
>>> statement is correct, but it's arguably a bit obtuse.
>>>
>>> I'll replace it with "WARN: Unsupported boot with missing initial domid.".
>>
>> But that still doesn't fit the check, which compares the given ID (i.e.
>> there's nothing "missing" here) with the expected one. The "no ID given"
>> is handled by the plain if() that's first.
> 
> It's not that the domid is missing from the node, but that the domid in
> the node doesn't match the initial domid. Maybe s/domid/domain, then?
> 
>   "Warning: Unsupported boot with missing initial domain"

I must be missing something: When it's "don't match" why would the message
say "missing"?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 15 14:20:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 14:20:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.954058.1348407 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4h9R-0006cX-92; Tue, 15 Apr 2025 14:20:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 954058.1348407; Tue, 15 Apr 2025 14:20:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4h9R-0006cQ-3M; Tue, 15 Apr 2025 14:20:37 +0000
Received: by outflank-mailman (input) for mailman id 954058;
 Tue, 15 Apr 2025 14:20: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=ai1O=XB=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u4h9P-0006cK-GX
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 14:20:35 +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 cb69a91a-1a04-11f0-9eae-5ba50f476ded;
 Tue, 15 Apr 2025 16:20:34 +0200 (CEST)
Received: by mail-wr1-x432.google.com with SMTP id
 ffacd0b85a97d-39c0dfad22aso3251823f8f.2
 for <xen-devel@lists.xenproject.org>; Tue, 15 Apr 2025 07:20:34 -0700 (PDT)
Received: from [10.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-39eae978023sm14439772f8f.47.2025.04.15.07.20.33
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 15 Apr 2025 07:20:33 -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: cb69a91a-1a04-11f0-9eae-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744726834; x=1745331634; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=7tirfQAFAerkvUkHalZl/LE3nMMbQgC9ahYhuE4XLOQ=;
        b=beczkU1yQVPjTJqrYhcfaz8DFldxJ3udWpDXbcWPeKQn3PZ0yOz88x2LMo3T4eUy54
         A4ITP4zWnp5AhWOXjFbU5C4KiVYrlo7m4aEv6p5H+Y0o5B4qUBABre+MzTGfs/0lNASV
         DsjVIskZPcfsqrvmx2NXkxwv0+FsiteejLL5DfuqVRg2+Kymg6k4AaAhRsEsD/jV9tRd
         Jpqib21RdU/EeseNho/JoPWE+weHoTZsjmbIf4KxUYifTZBYEHco0C9aQxHzRepHB1MD
         T8CNRPtNLn4sQ/M0c/zM/oCkzwHc9006ipgxXCosPyV80+jXioR3RdbH5oYwft1/1H0c
         1Ueg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744726834; x=1745331634;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=7tirfQAFAerkvUkHalZl/LE3nMMbQgC9ahYhuE4XLOQ=;
        b=smStFnto7t/KuXvOHfumPDaepG1iDR6XvLcgXIl6zvX13AG+hp8UkLruEUJdHfuCix
         h62J6VRDKaKHvQ6B1la5hTpvomA+aIQw3ZI5wdoaODbQe6vqQpjS6ZjWVMqJcXQpj+1k
         ELYOkTkB/JEdxxkEiYcDKuoY1LGLn1XWQkR/FUriFK67f1S7gtgtj7z9CSV/rDIfJzLT
         J+6nDDiSYmVQOqG/VWdM/ig59utF2jVDraiKlfZx7jXT6ZRtpKtsdbs4ybcKYZXq/6s8
         OI/aKad6lleGQp6qZ5rFcHbIM/CUwBAuGDQzQSCS9v8GPsH+tbgAooXAOYdchvKKHaBA
         zsvw==
X-Forwarded-Encrypted: i=1; AJvYcCUfwH6yuB691B+wSOIcwM55nWAwgSA0huUivZhTGyOMGDC4b8HkdGcKAT306rzq5K4Log0nblIGpi4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxNy7uoV5MZbOrU43+utTWKcc/Dmz111My9BcrEXiZ4Vfg76c6R
	tqZP/weTqZYhuqLaPqkTnR7WYwtDyPaZSJUirBSvmsEiEv7XXkDPM7r4O6AD6w==
X-Gm-Gg: ASbGnctZ6gM1BoTAZrsi8I4iflVdKJ+Tva43+eCJRB8TQ3pLaTgrsixwSoSt00IcRV1
	2vuYBRJ3Bhahjtu/dDeLk2GrKXd6J9SnJCkvuxeqFFAW8MaSWs958IrOST05ZYcpThxOikUklQC
	Ic2spBkcRcVUeB5w94YdcJnjgC0yLeGo9MZB0zC/4sbJUnC3O9IzJsG/zkGYZfcd3qOFg51JQiK
	r1G5yBgXEQLlODD7Epk5tGgQNzvvAOGMcHqsxOs1YByeZ6YyatN9IxdnZDEgoummfORaacMHs5F
	QZwkyOz1pdgKJSJr6scn+iWmsVApmwyUG846WK7j+m1nyF1Uh4rl/a0pmmFP3qLglIZF1bW2/Ns
	zBftAtlp14KgpZp3miM2CXpFx3A==
X-Google-Smtp-Source: AGHT+IHirI+zlFNvyxDXFHP/6F6FhsuMY1cRdSkxVXDWXZeBKGEgsS4TvCFiOQWYXhILGcqhibe2Tg==
X-Received: by 2002:a05:6000:4401:b0:39e:cbd2:9128 with SMTP id ffacd0b85a97d-39ecbd29166mr7466750f8f.11.1744726833933;
        Tue, 15 Apr 2025 07:20:33 -0700 (PDT)
Message-ID: <2207a182-5232-47ca-91b7-840528ba8adf@suse.com>
Date: Tue, 15 Apr 2025 16:20:32 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 16/16] x86/hyperlaunch: add capabilities to boot domain
To: Alejandro Vallejo <agarciav@amd.com>
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Michal Orzel <michal.orzel@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, Jason Andryuk <jason.andryuk@amd.com>
References: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-17-agarciav@amd.com>
 <93bad6aa-57a8-427d-a0f6-924f03f0db34@suse.com>
 <D96M14WZ37ZW.D7AAHJ3RMV9D@amd.com>
 <2b269381-d002-4aa5-bad4-8c677b8a4b0d@suse.com>
 <D977IWWCSWMK.2JV329ZHXLA2J@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: <D977IWWCSWMK.2JV329ZHXLA2J@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 15.04.2025 14:22, Alejandro Vallejo wrote:
> On Tue Apr 15, 2025 at 7:38 AM BST, Jan Beulich wrote:
>> On 14.04.2025 21:31, Alejandro Vallejo wrote:
>>> On Thu Apr 10, 2025 at 1:18 PM BST, Jan Beulich wrote:
>>>> On 08.04.2025 18:07, Alejandro Vallejo wrote:
>>>>> --- a/xen/arch/x86/setup.c
>>>>> +++ b/xen/arch/x86/setup.c
>>>>> @@ -1006,6 +1006,7 @@ static struct domain *__init create_dom0(struct boot_info *bi)
>>>>>  {
>>>>>      char *cmdline = NULL;
>>>>>      size_t cmdline_size;
>>>>> +    unsigned 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,
>>>>> @@ -1037,7 +1038,10 @@ static struct domain *__init create_dom0(struct boot_info *bi)
>>>>>      if ( bd->domid == DOMID_INVALID )
>>>>>          /* Create initial domain.  Not d0 for pvshim. */
>>>>>          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;
>>>>
>>>> Seeing that builder_init() in the non-DT case sets the new bit unconditionally,
>>>> isn't the shim's only domain suddenly getting CDF_privileged set this way? Oh,
>>>> no, you then ...
>>>>
>>>>> +    d = domain_create(bd->domid, &dom0_cfg,
>>>>> +                      pv_shim ? 0 : create_flags);
>>>>
>>>> ... hide the flag here. Any reason to have the intermediate variable in the
>>>> first place
>>>
>>> Well, the logic would end up fairly convoluted otherwise. As things
>>> stand this can be encoded in an if-else fashion with 2 calls, but
>>> there's 2 capability flags coming that need integrating together.
>>>
>>> This is just avoiding further code motion down the line.
>>
>> Is it?
>>
>> -    d = domain_create(bd->domid, &dom0_cfg, pv_shim ? 0 : CDF_privileged);
>> +    d = domain_create(bd->domid, &dom0_cfg,
>> +                      ((bd->capabilities & BUILD_CAPS_CONTROL) && !pv_shim
>> +                       ? CDF_privileged : 0));
>>
>> isn't really worse (imo),
> 
> Not sure I agree. Long conditions on ternary operators makes the
> control flow harder to follow.
> 
> A nicer alternative that also removes the auxiliary variable is to have
> a helper to convert from bootcaps to whatever createdomainflags are
> required. That'd extend naturally for more bits.
> 
>> but is highlighting the problem more clearly: Why
>> would the shim have BUILD_CAPS_CONTROL set in the first place? Without that
>> the statement would remain pretty similar to what it was before.
> 
> If the commandline is parsed early enough (I see the early parse path in
> head.S?) it would be better to add this logic to builder_init() and
> prevent the capability from reaching the boot_domain in the first place.

The parsing from head.S is only partial. But surely DT is being looked at
far later than when the full parsing (cmdline_parse()) is done?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 15 14:43:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 14:43:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.954076.1348424 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4hV9-000393-47; Tue, 15 Apr 2025 14:43:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 954076.1348424; Tue, 15 Apr 2025 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 1u4hV9-00038w-12; Tue, 15 Apr 2025 14:43:03 +0000
Received: by outflank-mailman (input) for mailman id 954076;
 Tue, 15 Apr 2025 14:43: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=ai1O=XB=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u4hV7-00038q-Nc
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 14:43:01 +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 ed12bcd7-1a07-11f0-9ffb-bf95429c2676;
 Tue, 15 Apr 2025 16:42:59 +0200 (CEST)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-43d04ea9d9aso28729835e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 15 Apr 2025 07:42:59 -0700 (PDT)
Received: from [10.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-43f2075fca5sm219350995e9.32.2025.04.15.07.42.58
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 15 Apr 2025 07:42:58 -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: ed12bcd7-1a07-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744728179; x=1745332979; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=y0/hvRbShFtpbSF0bBT59YDOkH3dlARBr737hmFPXIA=;
        b=Mks6Mtnnd3l+6ElFR7WhnR6J3Dswek/raMExHJ2TRlCYzqs7SUk5CCPEVjuLyjQIns
         YezeNUVcvfZbypYM5G+9u/sPkKaU9Hqnm1+qCvNqStqaxMZymPSQmK4Z7Jmk1CI7sw6G
         Wq3Yzm0KcQLF4HbvfvICFuicT2dZiKhX7ECCOc3NOeREHPdPiVxruNB84QI4TQwjMCwd
         AEAxzM7XuvAVB/ZU9KURey3MogGbCIWcJceAxy2yleVNyjJfeHp1nK9HLnjVNZoMkWlx
         4u4PDxI86AvtFtFnx/DxmLRh8LpgWzcxFI2Vx3dOAtqaESoBGhWx+tEe2Ct7L8KmCkTa
         p8BA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744728179; x=1745332979;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=y0/hvRbShFtpbSF0bBT59YDOkH3dlARBr737hmFPXIA=;
        b=PtXWFBgMBCxfE8ELjKR7AseHueV/+d1iC9J9qU5wwI8Ed29WdNSNrQ5/iKt9IoLriK
         mbn+HvylyLO36u8t5pcI8PWjCjXIZZGBs12GqNoL+X6uvoZP7C2poVMwH/l+g2ccyTlm
         hReDOnxl7JQDGPB65jMwDs3JgkaKwGPiiBpMxQ42s/73rs0uLqgMpAMFcjNtNUEHoOsG
         0l9p5E5aCpP2+OyiMC8FULLMCUkmGxqPwwlg/WuRKQ7nOBxxHxDEerTOIEOatVq5ZZXR
         kYz8yg6jOxLphBiRqwuPEOyX9aTwj2zLZmXp+F55+4i42C7kP2R2IvB5E1Gx2e3Vlw0O
         jjtA==
X-Forwarded-Encrypted: i=1; AJvYcCW0X/6nDSFMb4P/1xl+wvDWD6tW/yy1ZtqTVfMLg5ZRmDnlAAmEAnJPs3rngDU0Q7NW6P0Ci5vgbK0=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx6u8uPoIYYtD/CL+NnPjnTM3w2gUNWHK17x4EiY5xQPicUs2L0
	bpnEot7O5c5NE1coIr1GkNzat2azPQ+vsUTMqMwtpQvpsZPw3PoOb1hQi3oknA==
X-Gm-Gg: ASbGnctzND+DYgWycNoZKKHnOtitAa3XNw+7tJ9eGgADp8Sdkn+OlRzjBKNhCzi0YWz
	DkReUNGRUQdnMZ6ByRg52ufCQbCy98UvllBf1TfQbwELs0jcPuQ17KeV9deT9x1I/AMD0KhW9c5
	gv4ErZyOJ2K8gBNHTio9lNBy1y5uUSmfuou4j1DQbjXGbtO9mlgfsx1upPi//tOAK2/LGoNHaXG
	iEUawJe1iCwTYqIDo1uXf9farqGLVpdeoV2bU+pA3s1sC2f5zzn1WC2lh2izUZqDXO96z9fh6td
	dZ7193lxz10IGLY6Q4TecslpWzrbNkT/jYJTDAWutvrq92pGo/nyJruXKchh1eyPjy7oJ7NaB1p
	rHmDoz8a9jUrDEQhj5omVR2FOk7kXD9Z8mdk3
X-Google-Smtp-Source: AGHT+IHIQqlqPd7mhrQE0J88VHPMeS+xg4dBQltXEj2H6KdkRr/kDeAt8BVUKp+gSD598Mh3PsEICQ==
X-Received: by 2002:a05:600c:3ac6:b0:43d:224:86b5 with SMTP id 5b1f17b1804b1-43f3a92713cmr154537205e9.4.1744728178811;
        Tue, 15 Apr 2025 07:42:58 -0700 (PDT)
Message-ID: <a8a23afe-ae62-4b88-bf53-db2e1ada164d@suse.com>
Date: Tue, 15 Apr 2025 16:42:57 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 11/14] xen/riscv: add external interrupt handling for
 hypervisor mode
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Romain Caritey <Romain.Caritey@microchip.com>, xen-devel@lists.xenproject.org
References: <cover.1744126720.git.oleksii.kurochko@gmail.com>
 <1685488b8c1b48149e94bd3625c7b46b78c72e8e.1744126720.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: <1685488b8c1b48149e94bd3625c7b46b78c72e8e.1744126720.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.04.2025 17:57, Oleksii Kurochko wrote:
> Implement functions necessarry to have working external interrupts in
> hypervisor mode. The following changes are done:
>  - Add a common function intc_handle_external_irq() to call APLIC specific
>    function to handle an interrupt.
>  - Update do_trap() function to handle IRQ_S_EXT case; add the check to catch
>    case when cause of trap is an interrupt.
>  - Add handle_interrrupt() member to intc_hw_operations structure.
>  - Enable local interrupt delivery for IMSIC by implementation and calling of
>    imsic_ids_local_delivery() in imsic_init();

Ah, here is where that call really belongs (see my question on the earlier
patch). Please make sure you series builds okay at every patch boundary.

> --- a/xen/arch/riscv/aplic.c
> +++ b/xen/arch/riscv/aplic.c
> @@ -261,6 +261,21 @@ static void aplic_set_irq_affinity(struct irq_desc *desc, const cpumask_t *mask)
>      spin_unlock(&aplic.lock);
>  }
>  
> +static void aplic_handle_interrupt(unsigned long cause, struct cpu_user_regs *regs)
> +{
> +    /* disable to avoid more external interrupts */
> +    csr_clear(CSR_SIE, 1UL << IRQ_S_EXT);

Didn't I see you use BIT() elsewhere? Would be nice to be overall consistent
at least within related code.

> +    /* clear the pending bit */
> +    csr_clear(CSR_SIP, 1UL << IRQ_S_EXT);
> +
> +    /* dispatch the interrupt */
> +    do_IRQ(regs, csr_swap(CSR_STOPEI, 0) >> TOPI_IID_SHIFT);
> +
> +    /* enable external interrupts */
> +    csr_set(CSR_SIE, 1UL << IRQ_S_EXT);
> +}

Why does "cause" need passing into here? I realize the function is used ...

> @@ -278,6 +293,7 @@ static const struct intc_hw_operations aplic_ops = {
>      .host_irq_type       = &aplic_host_irq_type,
>      .set_irq_priority    = aplic_set_irq_priority,
>      .set_irq_type        = aplic_set_irq_type,
> +    .handle_interrupt    = aplic_handle_interrupt,
>  };

... as a hook, yet it's still unclear whether (why) any other such hook
would need the cause to be passed in.

> @@ -33,6 +44,20 @@ do {                            \
>      csr_clear(CSR_SIREG, v);    \
>  } while (0)
>  
> +void imsic_ids_local_delivery(bool enable)

__init as long as the sole caller is such?

> --- a/xen/arch/riscv/include/asm/intc.h
> +++ b/xen/arch/riscv/include/asm/intc.h
> @@ -34,6 +34,8 @@ struct intc_hw_operations {
>      /* Set IRQ priority */
>      void (*set_irq_priority)(struct irq_desc *desc, unsigned int priority);
>  
> +    /* handle external interrupt */
> +    void (*handle_interrupt)(unsigned long cause, struct cpu_user_regs *regs);
>  };
>  
>  void intc_preinit(void);
> @@ -45,4 +47,7 @@ void register_intc_ops(const struct intc_hw_operations *ops);
>  struct irq_desc;
>  void intc_route_irq_to_xen(struct irq_desc *desc, unsigned int priority);
>  
> +struct cpu_user_regs;

This is too late - you've used it above already. It either can be dropped,
or needs to move up.

> --- a/xen/arch/riscv/intc.c
> +++ b/xen/arch/riscv/intc.c
> @@ -51,6 +51,13 @@ static void intc_set_irq_priority(struct irq_desc *desc, unsigned int priority)
>      intc_hw_ops->set_irq_priority(desc, priority);
>  }
>  
> +void intc_handle_external_irqs(unsigned long cause, struct cpu_user_regs *regs)
> +{
> +    ASSERT(intc_hw_ops && intc_hw_ops->handle_interrupt);

I don't view such checks (on every interrupt) as very useful. If you checked
once early on - okay. But here you gain nothing at all ...

> +    intc_hw_ops->handle_interrupt(cause, regs);

... towards the use here, when considering a release build.


> @@ -83,3 +87,42 @@ void __init init_IRQ(void)
>      if ( init_irq_data() < 0 )
>          panic("initialization of IRQ data failed\n");
>  }
> +
> +/* Dispatch an interrupt */
> +void do_IRQ(struct cpu_user_regs *regs, unsigned int irq)
> +{
> +    struct irq_desc *desc = irq_to_desc(irq);
> +    struct irqaction *action;
> +
> +    irq_enter();
> +
> +    spin_lock(&desc->lock);
> +    desc->handler->ack(desc);
> +
> +    if ( test_bit(_IRQ_DISABLED, &desc->status) )
> +        goto out;
> +
> +    set_bit(_IRQ_INPROGRESS, &desc->status);

Same comment as on the earlier patch - atomic bitop when in a suitably
locked region?

> +    action = desc->action;
> +
> +    spin_unlock_irq(&desc->lock);
> +
> +#ifndef CONFIG_IRQ_HAS_MULTIPLE_ACTION

Stolen from Arm? What's this about?

> +    action->handler(irq, action->dev_id);
> +#else
> +    do {
> +        action->handler(irq, action->dev_id);
> +        action = action->next;
> +    } while ( action );
> +#endif /* CONFIG_IRQ_HAS_MULTIPLE_ACTION */
> +
> +    spin_lock_irq(&desc->lock);
> +
> +    clear_bit(_IRQ_INPROGRESS, &desc->status);

See above.

> +out:

Nit (you know what).

> @@ -128,6 +129,23 @@ void do_trap(struct cpu_user_regs *cpu_regs)
>          }
>          fallthrough;
>      default:
> +        if ( cause & CAUSE_IRQ_FLAG )
> +        {
> +            /* Handle interrupt */
> +            unsigned long icause = cause & ~CAUSE_IRQ_FLAG;
> +
> +            switch ( icause )
> +            {
> +            case IRQ_S_EXT:
> +                intc_handle_external_irqs(cause, cpu_regs);
> +                break;
> +            default:

Nit: Blank line please between non-fall-through case blocks.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 15 14:53:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 14:53:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.954088.1348434 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4hfK-0005M1-2E; Tue, 15 Apr 2025 14:53:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 954088.1348434; Tue, 15 Apr 2025 14:53:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4hfJ-0005Lu-VD; Tue, 15 Apr 2025 14:53:33 +0000
Received: by outflank-mailman (input) for mailman id 954088;
 Tue, 15 Apr 2025 14:53: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=ai1O=XB=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u4hfH-0005Lo-Tl
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 14:53:31 +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 62980ce9-1a09-11f0-9ffb-bf95429c2676;
 Tue, 15 Apr 2025 16:53:26 +0200 (CEST)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-43d2d952eb1so45315945e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 15 Apr 2025 07:53:26 -0700 (PDT)
Received: from [10.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-43f205ecf30sm213376605e9.1.2025.04.15.07.53.24
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 15 Apr 2025 07:53: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: 62980ce9-1a09-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744728805; x=1745333605; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=VxTL5ahFjodUKC8R5m8kCjr9a/u0Ub/bMVEGvmgGta4=;
        b=Wd3KXaH1F+UXHMABfnO+Saj4vrc+7aUrrniaEpdaBe8mt0SHN+UZpm04IaUhLuwQUY
         kU2pWoRNP/40tN3ZhTNgPGxye3X+kN0dlWG0zzxUY+0MTfIlx6NrssHSiZrVDPt7l5vP
         GNhM0qFaWtYgvMfF0+UTmJqQLUG8U9U3YLq/o1LVgvMVGf2ucJUsoUt6WanmPIPspXgA
         U2BTo9C4WsTxY9I/jwd0BgaHxES2hV69rfyPbr/Dg2wDkVsOlITixhnFCdTZj732MFE4
         O1nBin7tzAStOURhH4vUgx42lEV83CvFgSDlklhlHGBQcRuAP17ADkWrCclY4DIEb68s
         TjOA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744728805; x=1745333605;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=VxTL5ahFjodUKC8R5m8kCjr9a/u0Ub/bMVEGvmgGta4=;
        b=bLkebNFCEBSdHfAZg5catT91ideo3J/T8DUG1Ey88z49ZNu+uor8bdYtjZ+7W2oZK3
         BsbFlqT/aYjDaZv7fiGbS0xjJdw3NlVPIiRV/4dwx8c2ySAYnUZfZAaetEWpOMiirv1s
         gT/8pPaNz6FpMjK3XSLzvOz7rE71/JnCQQc6ji7WvFbuHI23dix2ThEd2rCCNq29RVgl
         7kEPRPRkDRjtQqoSx+jMOXNUvC/Wdp4YHKgFdIPQmdP4O/8MwRlNdEgjc38JoTJaaNp1
         s5kWAKzCItcBtaaSWKI5VPA/bLzTANMDPLT9YFBEmsgw359cNUXsj8BNutFwYBeozhFV
         FPRw==
X-Forwarded-Encrypted: i=1; AJvYcCVnm30MPlhxahTY1an0/ABNj/P/MR6rMizat+71Upx1avExSlK1+/Fu5cns79ZSKYHMfOcNk4rsZPw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwO8WrmtcfzhtBFyZxSNOxVyRtgbEvfXWOV/9tbxZTQtvnkrOcG
	JGAJrcivfGZBB7vepLmBuZHqd5Xg2fbXjRYlBrLh+v1XrERLx+1/9DdA7ggODw==
X-Gm-Gg: ASbGncsP9sndK2s7oaO13kCJnuazYX9SNMwWLyFbsa1MSqBzIvwQYhpt0I9hgFT7CB6
	XvlzzdyO2fq7d5IdQsLZDOR5IlhgxEQWEoN/fxFFdvibiKI1Isoyrb1A/k70o1PaOHduS/m2Jp1
	AQgRnl7XnbyC0zZ+YO7ruNKWZj4x1NyKJAIZvWz4lnhCgq9yRCQdcRHmoiAAkN0YXAJhM7DCXvX
	e98fH7Q7bEOXGtK5Qk/BkSYJCqAkE4J0A6UXCkRihrURn8eCeNf0/sBOEVXX2nj83bC0j0N7vwY
	ylo5f4vFJKKZ9LE4wU/Jtvyl3+/hEL4B9tSccFZ7k6QoSRfem3nkaxv+BVd4r5J6+GqtsVKQoLM
	SNttswvYUism191BG7UULtwIEMQ==
X-Google-Smtp-Source: AGHT+IFVisCDi2qkFyGGskQ89q+mxPF0gMAnirstlzPDS2tZNaBpmHmEVb+bOCW7sL3mTRoHY2scvw==
X-Received: by 2002:a05:600c:6a16:b0:43d:79:ae1b with SMTP id 5b1f17b1804b1-43f415d29a7mr103087385e9.14.1744728805500;
        Tue, 15 Apr 2025 07:53:25 -0700 (PDT)
Message-ID: <3426df1b-938a-4d20-a533-dd6695473db0@suse.com>
Date: Tue, 15 Apr 2025 16:53:24 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 10/14] xen/riscv: implementation of aplic and imsic
 operations
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Romain Caritey <Romain.Caritey@microchip.com>, xen-devel@lists.xenproject.org
References: <cover.1744126720.git.oleksii.kurochko@gmail.com>
 <74a07ed7c596bbcf581010685e01bfdfa19164f5.1744126720.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: <74a07ed7c596bbcf581010685e01bfdfa19164f5.1744126720.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.04.2025 17:57, Oleksii Kurochko wrote:
> --- a/xen/arch/riscv/imsic.c
> +++ b/xen/arch/riscv/imsic.c
> @@ -14,12 +14,68 @@
>  #include <xen/errno.h>
>  #include <xen/init.h>
>  #include <xen/macros.h>
> +#include <xen/spinlock.h>
>  #include <xen/xmalloc.h>
>  
>  #include <asm/imsic.h>
>  
>  static struct imsic_config imsic_cfg;
>  
> +#define imsic_csr_set(c, v)     \
> +do {                            \
> +    csr_write(CSR_SISELECT, c); \
> +    csr_set(CSR_SIREG, v);      \
> +} while (0)
> +
> +#define imsic_csr_clear(c, v)   \
> +do {                            \
> +    csr_write(CSR_SISELECT, c); \
> +    csr_clear(CSR_SIREG, v);    \
> +} while (0)

Coming back to these (the later patch adds one more here): How expensive are
these CSR writes? IOW would it perhaps make sense to maintain a local cache
of the last written SISELECT value, to avoid writing the same one again if
the same windowed register needs accessing twice in a row?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 15 15:02:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 15:02:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.954106.1348448 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4hnV-0007WH-Te; Tue, 15 Apr 2025 15:02:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 954106.1348448; Tue, 15 Apr 2025 15:02: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 1u4hnV-0007Vs-Pa; Tue, 15 Apr 2025 15:02:01 +0000
Received: by outflank-mailman (input) for mailman id 954106;
 Tue, 15 Apr 2025 15: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=1sCo=XB=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1u4hnU-0007PI-Mu
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 15:02:00 +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 9404f8e5-1a0a-11f0-9ffb-bf95429c2676;
 Tue, 15 Apr 2025 17:01:58 +0200 (CEST)
Received: by mail-ed1-x52d.google.com with SMTP id
 4fb4d7f45d1cf-5f3f04b5dbcso5069271a12.1
 for <xen-devel@lists.xenproject.org>; Tue, 15 Apr 2025 08:01:58 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-64-225.play-internet.pl.
 [109.243.64.225]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-acaa1bb3574sm1101034766b.23.2025.04.15.08.01.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 15 Apr 2025 08:01:56 -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: 9404f8e5-1a0a-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1744729318; x=1745334118; darn=lists.xenproject.org;
        h=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=qT4Cmo8FYEdnIC1ac7NfPvr5gtpeYXXpb1UGjt0pIxI=;
        b=CxYQwmw/sYVureb437AkQWCyCdbtkloNEGaaNga46mO/qv6HiovIEiUlBxXDCbPjkU
         ccnvVGud05nNmm9XoScIbrI3iubxyhBz7mxs4mR/MfTCIdY1tBiz2dSylesq1aZbZDXl
         qOrWwAti32nHIy7E8jXdY4Q+m8Q0ZFnaHmcFYGRyTT6uEFSIodaTM7g3JaqfGPbKBgsp
         ZUPdsJKwTPLSHGvC6MegseT5WQT3rxWDV/YUYaofU/IjMskahhaBQAM21XaGAJ2IvNfc
         HCI5fmhrD1iNXSPHOpsl0opVCRXYsZ5sWSTo1VvJjj5sVIsJqXlF98wHyfSTBX/Gcnes
         44Xg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744729318; x=1745334118;
        h=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=qT4Cmo8FYEdnIC1ac7NfPvr5gtpeYXXpb1UGjt0pIxI=;
        b=Td7ohmNPUJP8Z8rdxjz6k3Ya9n0HwGEC0L+D91FDxqT4JkCSIbm4c7MJh0IrXiDllj
         UpThjzpEhl+jMrZMCKba/LfBtbLT3hZurt98tQKDd35mPmVs0cw+IECUFvgVfWRbqVEO
         LrSv2H0QW1dTOpYLErtzWZ8XuGyWLk6iFeDcjIxcEmnHLSY9dDHkmshTqJT/NNxD6FG3
         oG8scHiOj1y10B+xfm77ll3b08dgppe08NQVQDp0qovOtS1KBodN0TVbuXnDy5ytrxrw
         RiSQONfnvLAM7YrxMTaXrOWF1QSequb3gUGWf3uuCCC9RY7u7pTt/O0aKBZstxms8LTn
         X5VA==
X-Forwarded-Encrypted: i=1; AJvYcCWeGGAs2mFYiLxtVItCK4YASjsuIuFHnlFtO7bo3Pl9CsQ/rh9a+70IU40CXbSQuj2qx0/gz/kvelU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxZp2mkJnpbXDNnE7qEYkkMIk7ebb4qyMc7+C68iEbqeGFf8Jvy
	i/YRR8u1iRKdOpB8ikbEI7nFfFfSUnKE3r8t86SYOnM9JKgwNFfl
X-Gm-Gg: ASbGncvMQtS2AmyCKfvAKVOW1pQ6SzofVj4wZ5+QTdpXboEm20tip5cdSRwi8pJWSLM
	oxoJ5w9NLhgUDWAojXgi5lYA57qHRPw1vqoOXWIWgZfMbZ4g20rVVD4q8tAGOUbOBldkoMsQamQ
	5oUZP80q+nBsVTCOybTuyJvoym70DNvGn+U9g/CPtDgHdB4EBkzBMT9bueg44O22gkbhBbsS/OT
	Yqi56jmJqvPqX4Ggxy1klrQePOwP0+Q3yYn39jZ96rAVgAqpPuHQI0l/XrsMcQMtBKoQLz7fSQP
	VAMeSvKwBBqQOp9ZWuut7lBKk+rvj9VnoAwx3l7Vy4c0j1HMbXenEeHlkS+13sk91LokCkTdMmJ
	B5m9xHxrFMGDFUEeE
X-Google-Smtp-Source: AGHT+IG3veKPCNCudUxnoESo2/qf+tYHYL2c1ukjzeLVPRDiO91RpxK5LsAQhEX/MeYUXtgVIPeGdA==
X-Received: by 2002:a17:906:c105:b0:ac7:ed56:8a34 with SMTP id a640c23a62f3a-acad34996acmr1403669766b.21.1744729317216;
        Tue, 15 Apr 2025 08:01:57 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------zGvFIHJPCJWGfAGl7HRXCBGk"
Message-ID: <882a6613-fedc-4549-8cb4-3e1fc59757db@gmail.com>
Date: Tue, 15 Apr 2025 17:01:54 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 07/14] xen/riscv: Introduce intc_hw_operations
 abstraction
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Romain Caritey <Romain.Caritey@microchip.com>, xen-devel@lists.xenproject.org
References: <cover.1744126720.git.oleksii.kurochko@gmail.com>
 <139b37478b4ca7e2ec3a04b73f462197227f57fa.1744126720.git.oleksii.kurochko@gmail.com>
 <b799c1f9-16ff-4af1-8b57-6e5360f10c47@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <b799c1f9-16ff-4af1-8b57-6e5360f10c47@suse.com>

This is a multi-part message in MIME format.
--------------zGvFIHJPCJWGfAGl7HRXCBGk
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 4/10/25 6:02 PM, Jan Beulich wrote:
> On 08.04.2025 17:57, Oleksii Kurochko wrote:
>> --- a/xen/arch/riscv/include/asm/intc.h
>> +++ b/xen/arch/riscv/include/asm/intc.h
>> @@ -17,6 +17,29 @@ struct intc_info {
>>       const struct dt_device_node *node;
>>   };
>>   
>> +struct intc_hw_operations {
>> +    /* Hold intc hw information */
>> +    const struct intc_info *info;
>> +    /* Initialize the intc and the boot CPU */
>> +    int (*init)(void);
>> +
>> +    /* hw_irq_controller to enable/disable/eoi host irq */
>> +    hw_irq_controller *host_irq_type;
> Pointer-to-const perhaps?

It could be pointer-to-const. I'll updat

>
>> +    /* Set IRQ type */
>> +    void (*set_irq_type)(struct irq_desc *desc, unsigned int type);
>> +    /* Set IRQ priority */
>> +    void (*set_irq_priority)(struct irq_desc *desc, unsigned int priority);
>> +
>> +};
>> +
>>   void intc_preinit(void);
>>   
>> +void intc_init(void);
>> +
>> +void register_intc_ops(const struct intc_hw_operations *ops);
>> +
>> +struct irq_desc;
> If it's needed here at all, it needs to move up, as some of the hook pointers
> already use the type.

It could be dropped, but then we would need to include|<xen/irq.h>|, and I figured
the fewer includes we have, the better.

>
>> --- a/xen/arch/riscv/intc.c
>> +++ b/xen/arch/riscv/intc.c
>> @@ -1,9 +1,21 @@
>>   /* SPDX-License-Identifier: GPL-2.0-only */
>>   
>>   #include <xen/acpi.h>
>> +#include <xen/bug.h>
>>   #include <xen/device_tree.h>
>>   #include <xen/init.h>
>> +#include <xen/irq.h>
>>   #include <xen/lib.h>
>> +#include <xen/spinlock.h>
>> +
>> +#include <asm/intc.h>
>> +
>> +static const struct intc_hw_operations *intc_hw_ops;
> __ro_after_init perhaps?
>
>> +
>> +void register_intc_ops(const struct intc_hw_operations *ops)
> __init perhaps?

For both, yes, it should be __ro_after_init and __init.

>
>> +{
>> +    intc_hw_ops = ops;
>> +}
>>   
>>   void __init intc_preinit(void)
>>   {
>> @@ -12,3 +24,42 @@ void __init intc_preinit(void)
>>       else
>>           panic("ACPI interrupt controller preinit() isn't implemented\n");
>>   }
>> +
>> +void __init intc_init(void)
>> +{
>> +    ASSERT(intc_hw_ops);
>> +
>> +    if ( intc_hw_ops->init() )
>> +        panic("Failed to initialize the interrupt controller drivers\n");
>> +}
>> +
>> +/* desc->irq needs to be disabled before calling this function */
>> +static void intc_set_irq_type(struct irq_desc *desc, unsigned int type)
>> +{
>> +    ASSERT(test_bit(_IRQ_DISABLED, &desc->status));
>> +    ASSERT(spin_is_locked(&desc->lock));
>> +    ASSERT(type != IRQ_TYPE_INVALID);
>> +    ASSERT(intc_hw_ops && intc_hw_ops->set_irq_type);
>> +
>> +    intc_hw_ops->set_irq_type(desc, type);
>> +}
>> +
>> +static void intc_set_irq_priority(struct irq_desc *desc, unsigned int priority)
>> +{
>> +    ASSERT(intc_hw_ops && intc_hw_ops->set_irq_priority);
>> +
>> +    intc_hw_ops->set_irq_priority(desc, priority);
>> +}
>> +
>> +void intc_route_irq_to_xen(struct irq_desc *desc, unsigned int priority)
>> +{
>> +    ASSERT(test_bit(_IRQ_DISABLED, &desc->status));
>> +    ASSERT(spin_is_locked(&desc->lock));
>> +    /* Can't route interrupts that don't exist */
>> +    ASSERT(intc_hw_ops && desc->irq < intc_hw_ops->info->nr_irqs);
>> +
>> +    desc->handler = intc_hw_ops->host_irq_type;
>> +
>> +    intc_set_irq_type(desc, desc->arch.type);
>> +    intc_set_irq_priority(desc, priority);
> If these are going to remain the sole callers of the two functions, I'd question
> the need for the separate functions. Some of the assertions done there would then
> actually be redundant.

Likely they will be reused for similar function but for guest to route an interrupt
to a guest. And, perhaps, only intc_set_irq_type() will be re-used outside
intc_route_irq_to_{xen,guest}...

>
> If not, is there a reason intc_set_irq_priority() doesn't have a lock-held check?

Do you mean this one: ASSERT(spin_is_locked(&desc->lock));

...
And it is the reason why intc_set_irq_priority() doesn't have this check as it is checked in the
caller.

But I think just to be on a safe side, it could be better to add this check to
intc_set_irq_priority().

~ Oleksii

--------------zGvFIHJPCJWGfAGl7HRXCBGk
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 4/10/25 6:02 PM, Jan Beulich wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:b799c1f9-16ff-4af1-8b57-6e5360f10c47@suse.com">
      <pre wrap="" class="moz-quote-pre">On 08.04.2025 17:57, Oleksii Kurochko wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">--- a/xen/arch/riscv/include/asm/intc.h
+++ b/xen/arch/riscv/include/asm/intc.h
@@ -17,6 +17,29 @@ struct intc_info {
     const struct dt_device_node *node;
 };
 
+struct intc_hw_operations {
+    /* Hold intc hw information */
+    const struct intc_info *info;
+    /* Initialize the intc and the boot CPU */
+    int (*init)(void);
+
+    /* hw_irq_controller to enable/disable/eoi host irq */
+    hw_irq_controller *host_irq_type;
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Pointer-to-const perhaps?</pre>
    </blockquote>
    <pre>It could be pointer-to-const. I'll updat
</pre>
    <blockquote type="cite"
      cite="mid:b799c1f9-16ff-4af1-8b57-6e5360f10c47@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+    /* Set IRQ type */
+    void (*set_irq_type)(struct irq_desc *desc, unsigned int type);
+    /* Set IRQ priority */
+    void (*set_irq_priority)(struct irq_desc *desc, unsigned int priority);
+
+};
+
 void intc_preinit(void);
 
+void intc_init(void);
+
+void register_intc_ops(const struct intc_hw_operations *ops);
+
+struct irq_desc;
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
If it's needed here at all, it needs to move up, as some of the hook pointers
already use the type.</pre>
    </blockquote>
    <pre>It could be dropped, but then we would need to include <code
    data-start="109" data-end="122">&lt;xen/irq.h&gt;</code>, and I figured
the fewer includes we have, the better.

</pre>
    <blockquote type="cite"
      cite="mid:b799c1f9-16ff-4af1-8b57-6e5360f10c47@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">--- a/xen/arch/riscv/intc.c
+++ b/xen/arch/riscv/intc.c
@@ -1,9 +1,21 @@
 /* SPDX-License-Identifier: GPL-2.0-only */
 
 #include &lt;xen/acpi.h&gt;
+#include &lt;xen/bug.h&gt;
 #include &lt;xen/device_tree.h&gt;
 #include &lt;xen/init.h&gt;
+#include &lt;xen/irq.h&gt;
 #include &lt;xen/lib.h&gt;
+#include &lt;xen/spinlock.h&gt;
+
+#include &lt;asm/intc.h&gt;
+
+static const struct intc_hw_operations *intc_hw_ops;
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
__ro_after_init perhaps?

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+
+void register_intc_ops(const struct intc_hw_operations *ops)
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
__init perhaps?</pre>
    </blockquote>
    <pre>For both, yes, it should be __ro_after_init and __init. 
</pre>
    <blockquote type="cite"
      cite="mid:b799c1f9-16ff-4af1-8b57-6e5360f10c47@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+{
+    intc_hw_ops = ops;
+}
 
 void __init intc_preinit(void)
 {
@@ -12,3 +24,42 @@ void __init intc_preinit(void)
     else
         panic("ACPI interrupt controller preinit() isn't implemented\n");
 }
+
+void __init intc_init(void)
+{
+    ASSERT(intc_hw_ops);
+
+    if ( intc_hw_ops-&gt;init() )
+        panic("Failed to initialize the interrupt controller drivers\n");
+}
+
+/* desc-&gt;irq needs to be disabled before calling this function */
+static void intc_set_irq_type(struct irq_desc *desc, unsigned int type)
+{
+    ASSERT(test_bit(_IRQ_DISABLED, &amp;desc-&gt;status));
+    ASSERT(spin_is_locked(&amp;desc-&gt;lock));
+    ASSERT(type != IRQ_TYPE_INVALID);
+    ASSERT(intc_hw_ops &amp;&amp; intc_hw_ops-&gt;set_irq_type);
+
+    intc_hw_ops-&gt;set_irq_type(desc, type);
+}
+
+static void intc_set_irq_priority(struct irq_desc *desc, unsigned int priority)
+{
+    ASSERT(intc_hw_ops &amp;&amp; intc_hw_ops-&gt;set_irq_priority);
+
+    intc_hw_ops-&gt;set_irq_priority(desc, priority);
+}
+
+void intc_route_irq_to_xen(struct irq_desc *desc, unsigned int priority)
+{
+    ASSERT(test_bit(_IRQ_DISABLED, &amp;desc-&gt;status));
+    ASSERT(spin_is_locked(&amp;desc-&gt;lock));
+    /* Can't route interrupts that don't exist */
+    ASSERT(intc_hw_ops &amp;&amp; desc-&gt;irq &lt; intc_hw_ops-&gt;info-&gt;nr_irqs);
+
+    desc-&gt;handler = intc_hw_ops-&gt;host_irq_type;
+
+    intc_set_irq_type(desc, desc-&gt;arch.type);
+    intc_set_irq_priority(desc, priority);
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
If these are going to remain the sole callers of the two functions, I'd question
the need for the separate functions. Some of the assertions done there would then
actually be redundant.</pre>
    </blockquote>
    <pre>Likely they will be reused for similar function but for guest to route an interrupt
to a guest. And, perhaps, only intc_set_irq_type() will be re-used outside
intc_route_irq_to_{xen,guest}...</pre>
    <blockquote type="cite"
      cite="mid:b799c1f9-16ff-4af1-8b57-6e5360f10c47@suse.com">
      <pre wrap="" class="moz-quote-pre">

If not, is there a reason intc_set_irq_priority() doesn't have a lock-held check?</pre>
    </blockquote>
    <pre>Do you mean this one: ASSERT(spin_is_locked(&amp;desc-&gt;lock));

...
And it is the reason why intc_set_irq_priority() doesn't have this check as it is checked in the
caller.

But I think just to be on a safe side, it could be better to add this check to 
intc_set_irq_priority().

~ Oleksii
</pre>
  </body>
</html>

--------------zGvFIHJPCJWGfAGl7HRXCBGk--


From xen-devel-bounces@lists.xenproject.org Tue Apr 15 15:34:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 15:34:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.954132.1348468 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4iIl-0004qG-M9; Tue, 15 Apr 2025 15:34:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 954132.1348468; Tue, 15 Apr 2025 15:34:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4iIl-0004q9-I4; Tue, 15 Apr 2025 15:34:19 +0000
Received: by outflank-mailman (input) for mailman id 954132;
 Tue, 15 Apr 2025 15:34: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=OGoX=XB=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u4iIk-0004bx-A0
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 15:34:18 +0000
Received: from mail-pf1-x433.google.com (mail-pf1-x433.google.com
 [2607:f8b0:4864:20::433])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 17866889-1a0f-11f0-9eae-5ba50f476ded;
 Tue, 15 Apr 2025 17:34:17 +0200 (CEST)
Received: by mail-pf1-x433.google.com with SMTP id
 d2e1a72fcca58-736a7e126c7so4972880b3a.3
 for <xen-devel@lists.xenproject.org>; Tue, 15 Apr 2025 08:34:17 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 41be03b00d2f7-b02a2d3a2b8sm11127529a12.58.2025.04.15.08.34.13
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 15 Apr 2025 08:34: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: 17866889-1a0f-11f0-9eae-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744731255; x=1745336055; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=qeT5t+7PLGgLUSY6R9I0jYmGVga2OLQ/Zvlwarpqm88=;
        b=tnPUrM9ejR3LnKuwxDBe92fXkZAPkq4Trm4WFYxqn1gjIecVrEBDCpeO4sm5r0dH1P
         0JH/eAyTjHla7AtkmUDvhQekrvGA2XST+i1WOUOYOus/q8Kf2oZodEjlJEy6FTOV7DwH
         zouSJlFoKyJK4urpszslE2XNi06OIJGZcRF4E=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744731255; x=1745336055;
        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=qeT5t+7PLGgLUSY6R9I0jYmGVga2OLQ/Zvlwarpqm88=;
        b=RSrTb45OSgG8TEtvWP6GB9sgrgV4ZISzX8+RksOcgl3sAHkTyiM68VAdwk5H+qj/2S
         1DFEqMTO2ekWDg41AIp/Ca485GtOpZIHd1dLFparPLL49rJSNuigPr1OsjYhaPhVeiVh
         hw+h2sKvS2FZFUzbyVarpN5TktrFNP/IIMClZsQb6cjIo+4jdeJ+6O7ZWt8iQJGYfCqc
         wd6VIf3LY0Hs2nIcCxgvcNmVYyOdkhQn13GjStrR0lXobgH5FGKQYb/0vt8IVZ8Z/Km3
         lJNQyvm7sXHH1id/63nDEKoKoc+HS+utQ1e4VXRdvNNLf5okasvJaImBqV3kWLgvrfkk
         87ug==
X-Gm-Message-State: AOJu0YxWlkebzB/QYKjLAVv3uckRcUmdZr7zQMzwGmA2nwPkbncOihOO
	5FI61YVYfkmxhhQ3i0tIhNj2GkClQtkp5CeKfVphI7tqpI2wkwBMHAg3wi3iJEeHm0HIbvqr2KR
	7
X-Gm-Gg: ASbGncsQh+wLqXfXB/t2BHeVPYLUxwlkkT75UBfko+p20BnBGUr/faHm0RnevGxYTv5
	inXFAhHLmSmBw7PVs8ILPfpQcvTqC9am0N3hKgKIeT/mhAeIAWB0AtDYHeQucuWz9JF9ScG6h3k
	g9CZwtlVIb/J2ZEWXUkzMeESyNVFjwkQb9y4axaMdRh66orDUOFvMRgwyYMv1lZ6nN19PYSs2EO
	tTEOIBirGz8xMKwObT9Yj2gxX5lfG9E1QH3+M5JlNoC0OFGz2N2zuUJ3FnnOWcrWbuFrGEjs5tW
	U997r/8w9jsFLX29mYn4GJWfuI6/jzYKGAwlZona3LUV/Q==
X-Google-Smtp-Source: AGHT+IFi+8H6UVpnUZrRJSN4ByTR3JG4By1EKozq/qxPY0SaQWQcDguT8MKM+uJa2BQR3YhWpSynaw==
X-Received: by 2002:a05:6a21:1346:b0:1f5:63f9:9ea1 with SMTP id adf61e73a8af0-201797a2f99mr26786130637.13.1744731254961;
        Tue, 15 Apr 2025 08:34:14 -0700 (PDT)
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>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 1/4] xen/io: provide helpers for multi size MMIO accesses
Date: Tue, 15 Apr 2025 17:32:43 +0200
Message-ID: <20250415153246.81688-2-roger.pau@citrix.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <20250415153246.81688-1-roger.pau@citrix.com>
References: <20250415153246.81688-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Several handlers have the same necessity of reading or writing from or to
an MMIO region using 1, 2, 4 or 8 bytes accesses.  So far this has been
open-coded in the function itself.  Instead provide a new set of handlers
that encapsulate the accesses.

Since the added helpers are not architecture specific, introduce a new
generic io.h header.

No functional change intended.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
Changes since v1:
 - Limit {read,write}q() to 64bit architectures.
 - Always have a default case in switch statement.
---
 xen/arch/x86/hvm/vmsi.c | 47 ++--------------------------
 xen/arch/x86/mm.c       | 32 +++++--------------
 xen/drivers/vpci/msix.c | 47 ++--------------------------
 xen/include/xen/io.h    | 68 +++++++++++++++++++++++++++++++++++++++++
 4 files changed, 81 insertions(+), 113 deletions(-)
 create mode 100644 xen/include/xen/io.h

diff --git a/xen/arch/x86/hvm/vmsi.c b/xen/arch/x86/hvm/vmsi.c
index fd83abb929ec..61b89834d97d 100644
--- a/xen/arch/x86/hvm/vmsi.c
+++ b/xen/arch/x86/hvm/vmsi.c
@@ -24,6 +24,7 @@
  * Will be merged it with virtual IOAPIC logic, since most is the same
 */
 
+#include <xen/io.h>
 #include <xen/types.h>
 #include <xen/mm.h>
 #include <xen/xmalloc.h>
@@ -304,28 +305,7 @@ static void adjacent_read(
 
     hwaddr = fix_to_virt(fixmap_idx) + PAGE_OFFSET(address);
 
-    switch ( len )
-    {
-    case 1:
-        *pval = readb(hwaddr);
-        break;
-
-    case 2:
-        *pval = readw(hwaddr);
-        break;
-
-    case 4:
-        *pval = readl(hwaddr);
-        break;
-
-    case 8:
-        *pval = readq(hwaddr);
-        break;
-
-    default:
-        ASSERT_UNREACHABLE();
-        break;
-    }
+    *pval = read_mmio(hwaddr, len);
 }
 
 static void adjacent_write(
@@ -344,28 +324,7 @@ static void adjacent_write(
 
     hwaddr = fix_to_virt(fixmap_idx) + PAGE_OFFSET(address);
 
-    switch ( len )
-    {
-    case 1:
-        writeb(val, hwaddr);
-        break;
-
-    case 2:
-        writew(val, hwaddr);
-        break;
-
-    case 4:
-        writel(val, hwaddr);
-        break;
-
-    case 8:
-        writeq(val, hwaddr);
-        break;
-
-    default:
-        ASSERT_UNREACHABLE();
-        break;
-    }
+    write_mmio(hwaddr, val, len);
 }
 
 static int cf_check msixtbl_read(
diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
index 1cf236516789..989e62e7ce6f 100644
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -95,6 +95,7 @@
 #include <xen/guest_access.h>
 #include <xen/hypercall.h>
 #include <xen/init.h>
+#include <xen/io.h>
 #include <xen/iocap.h>
 #include <xen/ioreq.h>
 #include <xen/irq.h>
@@ -116,7 +117,6 @@
 #include <asm/flushtlb.h>
 #include <asm/guest.h>
 #include <asm/idt.h>
-#include <asm/io.h>
 #include <asm/io_apic.h>
 #include <asm/ldt.h>
 #include <asm/mem_sharing.h>
@@ -5102,7 +5102,7 @@ static void __iomem *subpage_mmio_map_page(
 static void subpage_mmio_write_emulate(
     mfn_t mfn,
     unsigned int offset,
-    const void *data,
+    unsigned long data,
     unsigned int len)
 {
     struct subpage_ro_range *entry;
@@ -5115,7 +5115,6 @@ static void subpage_mmio_write_emulate(
 
     if ( test_bit(offset / MMIO_RO_SUBPAGE_GRAN, entry->ro_elems) )
     {
- write_ignored:
         gprintk(XENLOG_WARNING,
                 "ignoring write to R/O MMIO 0x%"PRI_mfn"%03x len %u\n",
                 mfn_x(mfn), offset, len);
@@ -5131,26 +5130,7 @@ static void subpage_mmio_write_emulate(
         return;
     }
 
-    addr += offset;
-    switch ( len )
-    {
-    case 1:
-        writeb(*(const uint8_t*)data, addr);
-        break;
-    case 2:
-        writew(*(const uint16_t*)data, addr);
-        break;
-    case 4:
-        writel(*(const uint32_t*)data, addr);
-        break;
-    case 8:
-        writeq(*(const uint64_t*)data, addr);
-        break;
-    default:
-        /* mmio_ro_emulated_write() already validated the size */
-        ASSERT_UNREACHABLE();
-        goto write_ignored;
-    }
+    write_mmio(addr + offset, data, len);
 }
 
 #ifdef CONFIG_HVM
@@ -5185,18 +5165,20 @@ int cf_check mmio_ro_emulated_write(
     struct x86_emulate_ctxt *ctxt)
 {
     struct mmio_ro_emulate_ctxt *mmio_ro_ctxt = ctxt->data;
+    unsigned long data = 0;
 
     /* Only allow naturally-aligned stores at the original %cr2 address. */
     if ( ((bytes | offset) & (bytes - 1)) || !bytes ||
-         offset != mmio_ro_ctxt->cr2 )
+         offset != mmio_ro_ctxt->cr2 || bytes > sizeof(data) )
     {
         gdprintk(XENLOG_WARNING, "bad access (cr2=%lx, addr=%lx, bytes=%u)\n",
                 mmio_ro_ctxt->cr2, offset, bytes);
         return X86EMUL_UNHANDLEABLE;
     }
 
+    memcpy(&data, p_data, bytes);
     subpage_mmio_write_emulate(mmio_ro_ctxt->mfn, PAGE_OFFSET(offset),
-                               p_data, bytes);
+                               data, bytes);
 
     return X86EMUL_OKAY;
 }
diff --git a/xen/drivers/vpci/msix.c b/xen/drivers/vpci/msix.c
index 6bd8c55bb48e..6455f2a03a01 100644
--- a/xen/drivers/vpci/msix.c
+++ b/xen/drivers/vpci/msix.c
@@ -17,6 +17,7 @@
  * License along with this program; If not, see <http://www.gnu.org/licenses/>.
  */
 
+#include <xen/io.h>
 #include <xen/sched.h>
 #include <xen/vpci.h>
 
@@ -344,28 +345,7 @@ static int adjacent_read(const struct domain *d, const struct vpci_msix *msix,
         return X86EMUL_OKAY;
     }
 
-    switch ( len )
-    {
-    case 1:
-        *data = readb(mem + PAGE_OFFSET(addr));
-        break;
-
-    case 2:
-        *data = readw(mem + PAGE_OFFSET(addr));
-        break;
-
-    case 4:
-        *data = readl(mem + PAGE_OFFSET(addr));
-        break;
-
-    case 8:
-        *data = readq(mem + PAGE_OFFSET(addr));
-        break;
-
-    default:
-        ASSERT_UNREACHABLE();
-        break;
-    }
+    *data = read_mmio(mem + PAGE_OFFSET(addr), len);
     spin_unlock(&vpci->lock);
 
     return X86EMUL_OKAY;
@@ -493,28 +473,7 @@ static int adjacent_write(const struct domain *d, const struct vpci_msix *msix,
         return X86EMUL_OKAY;
     }
 
-    switch ( len )
-    {
-    case 1:
-        writeb(data, mem + PAGE_OFFSET(addr));
-        break;
-
-    case 2:
-        writew(data, mem + PAGE_OFFSET(addr));
-        break;
-
-    case 4:
-        writel(data, mem + PAGE_OFFSET(addr));
-        break;
-
-    case 8:
-        writeq(data, mem + PAGE_OFFSET(addr));
-        break;
-
-    default:
-        ASSERT_UNREACHABLE();
-        break;
-    }
+    write_mmio(mem + PAGE_OFFSET(addr), data, len);
     spin_unlock(&vpci->lock);
 
     return X86EMUL_OKAY;
diff --git a/xen/include/xen/io.h b/xen/include/xen/io.h
new file mode 100644
index 000000000000..4495a04c403e
--- /dev/null
+++ b/xen/include/xen/io.h
@@ -0,0 +1,68 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * IO related routines.
+ *
+ * Copyright (c) 2025 Cloud Software Group
+ */
+#ifndef XEN_IO_H
+#define XEN_IO_H
+
+#include <xen/bug.h>
+
+#include <asm/io.h>
+
+static inline unsigned long read_mmio(const volatile void __iomem *mem,
+                                      unsigned int size)
+{
+    switch ( size )
+    {
+    case 1:
+        return readb(mem);
+
+    case 2:
+        return readw(mem);
+
+    case 4:
+        return readl(mem);
+
+#ifdef CONFIG_64BIT
+    case 8:
+        return readq(mem);
+#endif
+
+    default:
+        ASSERT_UNREACHABLE();
+        return ~0UL;
+    }
+}
+
+static inline void write_mmio(volatile void __iomem *mem, unsigned long data,
+                              unsigned int size)
+{
+    switch ( size )
+    {
+    case 1:
+        writeb(data, mem);
+        break;
+
+    case 2:
+        writew(data, mem);
+        break;
+
+    case 4:
+        writel(data, mem);
+        break;
+
+#ifdef CONFIG_64BIT
+    case 8:
+        writeq(data, mem);
+        break;
+#endif
+
+    default:
+        ASSERT_UNREACHABLE();
+        break;
+    }
+}
+
+#endif /* XEN_IO_H */
-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Tue Apr 15 15:34:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 15:34:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.954131.1348457 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4iIi-0004cA-Dq; Tue, 15 Apr 2025 15:34:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 954131.1348457; Tue, 15 Apr 2025 15: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 1u4iIi-0004c3-Al; Tue, 15 Apr 2025 15:34:16 +0000
Received: by outflank-mailman (input) for mailman id 954131;
 Tue, 15 Apr 2025 15:34: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=OGoX=XB=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u4iIg-0004bx-PZ
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 15:34:14 +0000
Received: from mail-pl1-x62c.google.com (mail-pl1-x62c.google.com
 [2607:f8b0:4864:20::62c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 13b7b7d7-1a0f-11f0-9eae-5ba50f476ded;
 Tue, 15 Apr 2025 17:34:13 +0200 (CEST)
Received: by mail-pl1-x62c.google.com with SMTP id
 d9443c01a7336-22401f4d35aso65982335ad.2
 for <xen-devel@lists.xenproject.org>; Tue, 15 Apr 2025 08:34:11 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 d9443c01a7336-22ac7ccbf1esm118389435ad.251.2025.04.15.08.34.07
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 15 Apr 2025 08:34: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: 13b7b7d7-1a0f-11f0-9eae-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744731249; x=1745336049; 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=eocjmM7MVktzfXC5ekMq3Rt6aB9Bq62CMofph8Sa8I4=;
        b=vJe9rUUpmb+CmSV2/p2lsON5BRrZPjB4I/UoIcyvCUAEDORiv9ynscn06lgn++OV+s
         EIC9bXRPQjg0eg+niijCicWmf4uGXylXbt+oabf5Q4NihIPgr4SPsSN5cySu3LXFiuci
         VEKwwVxSeV126P2CSoWzcJN9gNpE2iW4B0Ll4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744731249; x=1745336049;
        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=eocjmM7MVktzfXC5ekMq3Rt6aB9Bq62CMofph8Sa8I4=;
        b=qnowabtioUTD8qGyXmjp3xecNNLWaF7+wrOawr5QEgwyp4HKfEFVsWklwTz6OgbG6o
         wFaxEEs1Z37aT/cceRfhn5WmdLDNsuMZibknt4vI45kr7cUod2kPcaVQCCDy9MMEBiVv
         RKA0t+kyQvjbfU+pCY1ph6ppoFAshJE7F9KJd+88SveQNRAEbcPQK3A3ytgvLfBeWYfm
         MqrAy+6VqXaUGM4WfRddOK3+ylguy62qGTVevarQQD3iJrucShB3IVa0W8ALxLNrUwi7
         tbVX26U54Jxzibwdsu+2sS/KutaoiCWXPt3if1dE8YeEgh7BCRKX1srtavDAsdcfujnT
         speA==
X-Gm-Message-State: AOJu0YyUqQLuW8UpIzb0U2F3OIYXP3anOUHMI/H5Sqv95L2MK/pgM+Vd
	1dKjDoSjkqQcOMAS7TOKF8tBZQ+jvkSxB5BpJYIcWrDfJ9TPuLKMHzTvyzrCT5+sPV3CchrjkrM
	R
X-Gm-Gg: ASbGncucU15fkEXrx8HV1JLoJHeqsFZrHB7vkyVLvsuXsq1LrMmzDs8mmNZ/iyoACrC
	6VEKjRqffLjWq0POHPPVrw2FOL4sf8GW2noVNlH9CiI3RRmpScTyFIwLFRsKW6yaX1RBWVOFsj3
	yAZkn4CB8swbvu5nNVbZkT6Zn97Ap0qS6Iq5pO9HH8VSjpIHSvsRoprwmVzWTCcchmmv2Mnu/nk
	oLhw/euPWDsfL4jJRNaEOVuh/4InGeAkWKZpXkJtKISwmrDMEO7I5rovfkf3+ZqdbGazqoL3vl6
	8lzQfIM2MRzhHExIHkq4f3Vd/UtR6aji63Pn7d6s+NTQgw==
X-Google-Smtp-Source: AGHT+IEQJWFsyQohC+/N2mGb6JxLViFOHHOxkz/pMrIrpSJjx5AG2CwOgXZbxfksi8hC/vunggfBFQ==
X-Received: by 2002:a17:902:e552:b0:223:f408:c3cf with SMTP id d9443c01a7336-22bea4ade61mr203924075ad.21.1744731249435;
        Tue, 15 Apr 2025 08:34:09 -0700 (PDT)
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>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 0/4] xen/x86: fix implementation of subpage r/o MMIO
Date: Tue, 15 Apr 2025 17:32:42 +0200
Message-ID: <20250415153246.81688-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.48.1
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Hello,

Following series include some bugfixes and improvements to the handling
of subpage r/o MMIO accesses.

Patch 1 introduces a helper to reduce code duplication when performing
MMIO accesses.

Patch 2 is a bugfix for using subpage in HVM guest, and patch 3 is an
optimization to only register the HVM subpage handler when needed.

Finally patch 4 moves some PV only code to a PV specific file.

Thanks, Roger.

Roger Pau Monne (4):
  xen/io: provide helpers for multi size MMIO accesses
  x86/hvm: fix handling of accesses to partial r/o MMIO pages
  x86/hvm: only register the r/o subpage ops when needed
  x86/mm: move mmio_ro_emulated_write() to PV only file

 xen/arch/x86/hvm/Makefile              |   1 +
 xen/arch/x86/hvm/emulate.c             |  51 ++----------
 xen/arch/x86/hvm/hvm.c                 |  18 ++---
 xen/arch/x86/hvm/mmio.c                | 100 ++++++++++++++++++++++++
 xen/arch/x86/hvm/vmsi.c                |  47 +----------
 xen/arch/x86/include/asm/hvm/emulate.h |   1 -
 xen/arch/x86/include/asm/hvm/io.h      |   3 +
 xen/arch/x86/include/asm/mm.h          |  21 ++---
 xen/arch/x86/mm.c                      | 103 ++++++-------------------
 xen/arch/x86/pv/ro-page-fault.c        |  34 ++++++++
 xen/drivers/vpci/msix.c                |  47 +----------
 xen/include/xen/io.h                   |  68 ++++++++++++++++
 12 files changed, 259 insertions(+), 235 deletions(-)
 create mode 100644 xen/arch/x86/hvm/mmio.c
 create mode 100644 xen/include/xen/io.h

-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Tue Apr 15 15:34:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 15:34:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.954133.1348479 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4iIq-00057J-VW; Tue, 15 Apr 2025 15:34:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 954133.1348479; Tue, 15 Apr 2025 15: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 1u4iIq-00057C-QU; Tue, 15 Apr 2025 15:34:24 +0000
Received: by outflank-mailman (input) for mailman id 954133;
 Tue, 15 Apr 2025 15: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=OGoX=XB=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u4iIo-0004bx-Tj
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 15:34:23 +0000
Received: from mail-pf1-x432.google.com (mail-pf1-x432.google.com
 [2607:f8b0:4864:20::432])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1a3e08f7-1a0f-11f0-9eae-5ba50f476ded;
 Tue, 15 Apr 2025 17:34:22 +0200 (CEST)
Received: by mail-pf1-x432.google.com with SMTP id
 d2e1a72fcca58-736bfa487c3so5018054b3a.1
 for <xen-devel@lists.xenproject.org>; Tue, 15 Apr 2025 08:34:22 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 d2e1a72fcca58-73bd21c670esm8893775b3a.69.2025.04.15.08.34.18
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 15 Apr 2025 08:34: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: 1a3e08f7-1a0f-11f0-9eae-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744731260; x=1745336060; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=NqJO2WNEI84OX8hveo+xemBR8F7EcK50+XUU/oRndbc=;
        b=tTKeiCNb376prT01ZrOAoGY7VdSG+sUzo3M73lr1fkSkoSOb6MFdb277D1pTEr7HbC
         eSknaIBGvP7uDiu7EySTOjLNnAOgsU0Zda3qrKqbSE83yfSTt4UXdTh4pX/+y+DpjqtJ
         82q68ig1egb+GxgLZ4ZVMR0VHwGGn+2jw30Mk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744731260; x=1745336060;
        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=NqJO2WNEI84OX8hveo+xemBR8F7EcK50+XUU/oRndbc=;
        b=VnAruEigk8TCriZRMGq9AyVtm0W8BJRFDf2QnnaMOxrzMwd48EGVv6/M1O6+MWif8o
         wlNOPj3o5fvdj/uwzwtloUkZ3M0v51LcODgDrK4NXP5yxyp5mgYxh4RQUNQ1cNYzJ3DN
         /4pPnDNr3MuMySncVDulDEZ4xMqO2Z5lZWx/NlnOFO8iKoeg4w4IVDj3UDPg9mapgZYv
         Eboo5i73bc58cs0tXFK90rzShEnLmqAx7Cl+WN3xKITkgu9I41Sac97YnNnSectm2zD4
         FiW+G0aijNZMFKzCA24daSosMQpPlN5rCYjBY5vbMoUImvPvjX6NC4q+CgX59RKoxSOH
         Wbwg==
X-Gm-Message-State: AOJu0YzYdoyoCNHcnA1pXhqOrh6Oc9feGxS3uHq5NpyVgBEqQc+VSWEu
	qV4p2AXsGupxBkfjqHsrqCPbxZUENr+3JoQUrvJv8MRcwfrRC3p3jbwrhCtPQhAHzXZG3OVyhmo
	O
X-Gm-Gg: ASbGncuRED75IhzxAWaHbyttkVyK95VOK6mQKcvIQu0IdN2PICMv/FHtjxLADyeyid5
	vl5cmWymk2p9LSxFHo/H/5wQzT8NiqF80ZWzYdKU5goB+B1cGQdJrZYVcPCFooyuolFdyaUvLza
	I88RBxNftlsZsbvDGWIj/Ew20LTC/V2kX815Rg701VLrIR6o3q5e+IjyvwijBG/RJYgYNhcaC5X
	7nXVjMB7wahhFUmw6wPLjOoQ3NLGEjtsaitds3q2ErOCgKqAqa7doJkJUBMGYzZYqfVpD7Yz3Rw
	HoNb0gU1AHMaKKXBmtCAdqrq5rj5wYK8DZ663JVRT5ML/A==
X-Google-Smtp-Source: AGHT+IHCz8A0W6NoRJ+ZPBXZlEco0yWr8f0vrf0Rgna4FL7cDXqgQdL1jkSgNJN5kFOA+B2fS33S0w==
X-Received: by 2002:a05:6a00:2c94:b0:73c:b86:b47f with SMTP id d2e1a72fcca58-73c0b86b4f5mr5871486b3a.4.1744731260346;
        Tue, 15 Apr 2025 08:34:20 -0700 (PDT)
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/hvm: fix handling of accesses to partial r/o MMIO pages
Date: Tue, 15 Apr 2025 17:32:44 +0200
Message-ID: <20250415153246.81688-3-roger.pau@citrix.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <20250415153246.81688-1-roger.pau@citrix.com>
References: <20250415153246.81688-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The current logic to handle accesses to MMIO pages partially read-only is
based on the (now removed) logic used to handle accesses to the r/o MMCFG
region(s) for PVH v1 dom0.  However that has issues when running on AMD
hardware, as in that case the guest linear address that triggered the fault
is not provided as part of the VM exit.  This caused
mmio_ro_emulated_write() to always fail before calling
subpage_mmio_write_emulate() when running on AMD and called from an HVM
context.

Take a different approach and convert the handling of partial read-only
MMIO page accesses into an HVM MMIO ops handler, as that's the more natural
way to handle this kind of emulation for HVM domains.

This allows getting rid of hvm_emulate_one_mmio() and it's single call site
in hvm_hap_nested_page_fault().  As part of the fix r/o MMIO accesses are
now handled by handle_mmio_with_translation(), re-using the same logic that
was used for other read-only types part of p2m_is_discard_write().  The
usage of emulation for faulting p2m_mmio_direct types is limited to
addresses in the r/o MMIO range. The page present check is dropped as type
p2m_mmio_direct must have the present bit set in the PTE.

Note a small adjustment is needed to the `pf-fixup` dom0 PVH logic: avoid
attempting to fixup faults resulting from accesses to read-only MMIO
regions, as handling of those accesses is now done by handle_mmio().

Fixes: 33c19df9a5a0 ('x86/PCI: intercept accesses to RO MMIO from dom0s in HVM containers')
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
Changes since v1:
 - Introduce hvm/mmio.c to place the r/o MMIO handlers.
 - Add comment about pf-fixup and r/o MMIO range checking.
 - Expand commit message about dropping the PTE present check and usage of
   the emulator.
 - Return X86EMUL_OKAY in the read handler if the MMIO region is not found.
 - Check the faulting address is in the mmio_ro_ranges before sending for
   emulation.
---
 xen/arch/x86/hvm/Makefile              |   1 +
 xen/arch/x86/hvm/emulate.c             |  51 ++-----------
 xen/arch/x86/hvm/hvm.c                 |  17 ++---
 xen/arch/x86/hvm/mmio.c                | 100 +++++++++++++++++++++++++
 xen/arch/x86/include/asm/hvm/emulate.h |   1 -
 xen/arch/x86/include/asm/hvm/io.h      |   3 +
 xen/arch/x86/include/asm/mm.h          |  12 +++
 xen/arch/x86/mm.c                      |  37 +--------
 8 files changed, 132 insertions(+), 90 deletions(-)
 create mode 100644 xen/arch/x86/hvm/mmio.c

diff --git a/xen/arch/x86/hvm/Makefile b/xen/arch/x86/hvm/Makefile
index 4c1fa5c6c2bf..6ec2c8f2db56 100644
--- a/xen/arch/x86/hvm/Makefile
+++ b/xen/arch/x86/hvm/Makefile
@@ -15,6 +15,7 @@ obj-y += intercept.o
 obj-y += io.o
 obj-y += ioreq.o
 obj-y += irq.o
+obj-y += mmio.o
 obj-y += monitor.o
 obj-y += mtrr.o
 obj-y += nestedhvm.o
diff --git a/xen/arch/x86/hvm/emulate.c b/xen/arch/x86/hvm/emulate.c
index 9fff1b82f7c6..fbe8dd6ccb0b 100644
--- a/xen/arch/x86/hvm/emulate.c
+++ b/xen/arch/x86/hvm/emulate.c
@@ -370,7 +370,12 @@ static int hvmemul_do_io(
         /* If there is no suitable backing DM, just ignore accesses */
         if ( !s )
         {
-            if ( is_mmio && is_hardware_domain(currd) )
+            if ( is_mmio && is_hardware_domain(currd) &&
+                 /*
+                  * Do not attempt to fixup accesses to r/o MMIO regions, they
+                  * are expected to be terminated by the null handler below.
+                  */
+                 !rangeset_contains_singleton(mmio_ro_ranges, PFN_DOWN(addr)) )
             {
                 /*
                  * PVH dom0 is likely missing MMIO mappings on the p2m, due to
@@ -2856,50 +2861,6 @@ int hvm_emulate_one(
     return _hvm_emulate_one(hvmemul_ctxt, &hvm_emulate_ops, completion);
 }
 
-int hvm_emulate_one_mmio(unsigned long mfn, unsigned long gla)
-{
-    static const struct x86_emulate_ops hvm_ro_emulate_ops_mmio = {
-        .read       = x86emul_unhandleable_rw,
-        .insn_fetch = hvmemul_insn_fetch,
-        .write      = mmio_ro_emulated_write,
-        .validate   = hvmemul_validate,
-    };
-    struct mmio_ro_emulate_ctxt mmio_ro_ctxt = { .cr2 = gla, .mfn = _mfn(mfn) };
-    struct hvm_emulate_ctxt ctxt;
-    unsigned int seg, bdf;
-    int rc;
-
-    if ( pci_ro_mmcfg_decode(mfn, &seg, &bdf) )
-    {
-        /* Should be always handled by vPCI for PVH dom0. */
-        gdprintk(XENLOG_ERR, "unhandled MMCFG access for %pp\n",
-                 &PCI_SBDF(seg, bdf));
-        ASSERT_UNREACHABLE();
-        return X86EMUL_UNHANDLEABLE;
-    }
-
-    hvm_emulate_init_once(&ctxt, x86_insn_is_mem_write,
-                          guest_cpu_user_regs());
-    ctxt.ctxt.data = &mmio_ro_ctxt;
-
-    switch ( rc = _hvm_emulate_one(&ctxt, &hvm_ro_emulate_ops_mmio,
-                                   VIO_no_completion) )
-    {
-    case X86EMUL_UNHANDLEABLE:
-    case X86EMUL_UNIMPLEMENTED:
-        hvm_dump_emulation_state(XENLOG_G_WARNING, "r/o MMIO", &ctxt, rc);
-        break;
-    case X86EMUL_EXCEPTION:
-        hvm_inject_event(&ctxt.ctxt.event);
-        /* fallthrough */
-    default:
-        hvm_emulate_writeback(&ctxt);
-        break;
-    }
-
-    return rc;
-}
-
 void hvm_emulate_one_vm_event(enum emul_kind kind, unsigned int trapnr,
     unsigned int errcode)
 {
diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index 6f1174c5127e..6b998387e3d8 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -8,6 +8,7 @@
  */
 
 #include <xen/init.h>
+#include <xen/io.h>
 #include <xen/ioreq.h>
 #include <xen/lib.h>
 #include <xen/trace.h>
@@ -35,7 +36,6 @@
 #include <asm/current.h>
 #include <asm/debugreg.h>
 #include <asm/e820.h>
-#include <asm/io.h>
 #include <asm/regs.h>
 #include <asm/cpufeature.h>
 #include <asm/processor.h>
@@ -692,6 +692,8 @@ int hvm_domain_initialise(struct domain *d,
 
     register_portio_handler(d, XEN_HVM_DEBUGCONS_IOPORT, 1, hvm_print_line);
 
+    register_subpage_ro_handler(d);
+
     if ( hvm_tsc_scaling_supported )
         d->arch.hvm.tsc_scaling_ratio = hvm_default_tsc_scaling_ratio;
 
@@ -1981,7 +1983,10 @@ int hvm_hap_nested_page_fault(paddr_t gpa, unsigned long gla,
      */
     if ( (p2mt == p2m_mmio_dm) ||
          (npfec.write_access &&
-          (p2m_is_discard_write(p2mt) || (p2mt == p2m_ioreq_server))) )
+          (p2m_is_discard_write(p2mt) || (p2mt == p2m_ioreq_server) ||
+           /* MMIO entries can be r/o if the target mfn is in mmio_ro_ranges. */
+           (p2mt == p2m_mmio_direct &&
+            rangeset_contains_singleton(mmio_ro_ranges, mfn_x(mfn))))) )
     {
         if ( !handle_mmio_with_translation(gla, gfn, npfec) )
             hvm_inject_hw_exception(X86_EXC_GP, 0);
@@ -2033,14 +2038,6 @@ int hvm_hap_nested_page_fault(paddr_t gpa, unsigned long gla,
         goto out_put_gfn;
     }
 
-    if ( (p2mt == p2m_mmio_direct) && npfec.write_access && npfec.present &&
-         (is_hardware_domain(currd) || subpage_mmio_write_accept(mfn, gla)) &&
-         (hvm_emulate_one_mmio(mfn_x(mfn), gla) == X86EMUL_OKAY) )
-    {
-        rc = 1;
-        goto out_put_gfn;
-    }
-
     /* If we fell through, the vcpu will retry now that access restrictions have
      * been removed. It may fault again if the p2m entry type still requires so.
      * Otherwise, this is an error condition. */
diff --git a/xen/arch/x86/hvm/mmio.c b/xen/arch/x86/hvm/mmio.c
new file mode 100644
index 000000000000..ee29d9e5039e
--- /dev/null
+++ b/xen/arch/x86/hvm/mmio.c
@@ -0,0 +1,100 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * MMIO related routines.
+ *
+ * Copyright (c) 2025 Cloud Software Group
+ */
+
+#include <xen/io.h>
+#include <xen/mm.h>
+
+#include <asm/p2m.h>
+
+static int cf_check subpage_mmio_accept(struct vcpu *v, unsigned long addr)
+{
+    p2m_type_t t;
+    mfn_t mfn = get_gfn_query_unlocked(v->domain, addr, &t);
+
+    return !mfn_eq(mfn, INVALID_MFN) && t == p2m_mmio_direct &&
+           subpage_mmio_find_page(mfn);
+}
+
+static int cf_check subpage_mmio_read(
+    struct vcpu *v, unsigned long addr, unsigned int len, unsigned long *data)
+{
+    struct domain *d = v->domain;
+    p2m_type_t t;
+    mfn_t mfn = get_gfn_query(d, addr, &t);
+    struct subpage_ro_range *entry;
+    volatile void __iomem *mem;
+
+    *data = ~0UL;
+
+    if ( mfn_eq(mfn, INVALID_MFN) || t != p2m_mmio_direct )
+    {
+        put_gfn(d, addr);
+        return X86EMUL_RETRY;
+    }
+
+    entry = subpage_mmio_find_page(mfn);
+    if ( !entry )
+    {
+        put_gfn(d, addr);
+        return X86EMUL_OKAY;
+    }
+
+    mem = subpage_mmio_map_page(entry);
+    if ( !mem )
+    {
+        put_gfn(d, addr);
+        gprintk(XENLOG_ERR,
+                "Failed to map page for MMIO read at %#lx -> %#lx\n",
+                addr, mfn_to_maddr(mfn) + PAGE_OFFSET(addr));
+        return X86EMUL_OKAY;
+    }
+
+    *data = read_mmio(mem + PAGE_OFFSET(addr), len);
+
+    put_gfn(d, addr);
+    return X86EMUL_OKAY;
+}
+
+static int cf_check subpage_mmio_write(
+    struct vcpu *v, unsigned long addr, unsigned int len, unsigned long data)
+{
+    struct domain *d = v->domain;
+    p2m_type_t t;
+    mfn_t mfn = get_gfn_query(d, addr, &t);
+
+    if ( mfn_eq(mfn, INVALID_MFN) || t != p2m_mmio_direct )
+    {
+        put_gfn(d, addr);
+        return X86EMUL_RETRY;
+    }
+
+    subpage_mmio_write_emulate(mfn, PAGE_OFFSET(addr), data, len);
+
+    put_gfn(d, addr);
+    return X86EMUL_OKAY;
+}
+
+void register_subpage_ro_handler(struct domain *d)
+{
+    static const struct hvm_mmio_ops subpage_mmio_ops = {
+        .check = subpage_mmio_accept,
+        .read = subpage_mmio_read,
+        .write = subpage_mmio_write,
+    };
+
+    register_mmio_handler(d, &subpage_mmio_ops);
+}
+
+/*
+ * 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/hvm/emulate.h b/xen/arch/x86/include/asm/hvm/emulate.h
index c7a2d2a5be4e..178ac32e151f 100644
--- a/xen/arch/x86/include/asm/hvm/emulate.h
+++ b/xen/arch/x86/include/asm/hvm/emulate.h
@@ -86,7 +86,6 @@ void hvmemul_cancel(struct vcpu *v);
 struct segment_register *hvmemul_get_seg_reg(
     enum x86_segment seg,
     struct hvm_emulate_ctxt *hvmemul_ctxt);
-int hvm_emulate_one_mmio(unsigned long mfn, unsigned long gla);
 
 static inline bool handle_mmio(void)
 {
diff --git a/xen/arch/x86/include/asm/hvm/io.h b/xen/arch/x86/include/asm/hvm/io.h
index 565bad300d20..c12f099a037c 100644
--- a/xen/arch/x86/include/asm/hvm/io.h
+++ b/xen/arch/x86/include/asm/hvm/io.h
@@ -135,6 +135,9 @@ void destroy_vpci_mmcfg(struct domain *d);
 /* Remove MMCFG regions from a domain ->iomem_caps. */
 int vpci_mmcfg_deny_access(struct domain *d);
 
+/* r/o MMIO subpage access handler. */
+void register_subpage_ro_handler(struct domain *d);
+
 #endif /* __ASM_X86_HVM_IO_H__ */
 
 
diff --git a/xen/arch/x86/include/asm/mm.h b/xen/arch/x86/include/asm/mm.h
index a1bc8cc27451..c2e9ef6e5023 100644
--- a/xen/arch/x86/include/asm/mm.h
+++ b/xen/arch/x86/include/asm/mm.h
@@ -554,6 +554,18 @@ int cf_check mmio_ro_emulated_write(
     enum x86_segment seg, unsigned long offset, void *p_data,
     unsigned int bytes, struct x86_emulate_ctxt *ctxt);
 
+/* r/o MMIO subpage access handlers. */
+struct subpage_ro_range {
+    struct list_head list;
+    mfn_t mfn;
+    void __iomem *mapped;
+    DECLARE_BITMAP(ro_elems, PAGE_SIZE / MMIO_RO_SUBPAGE_GRAN);
+};
+struct subpage_ro_range *subpage_mmio_find_page(mfn_t mfn);
+void __iomem *subpage_mmio_map_page(struct subpage_ro_range *entry);
+void subpage_mmio_write_emulate(
+    mfn_t mfn, unsigned int offset, unsigned long data, unsigned int len);
+
 int audit_adjust_pgtables(struct domain *d, int dir, int noisy);
 
 extern int pagefault_by_memadd(unsigned long addr, struct cpu_user_regs *regs);
diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
index 989e62e7ce6f..f59c7816fba5 100644
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -157,13 +157,6 @@ struct rangeset *__read_mostly mmio_ro_ranges;
 static uint32_t __ro_after_init base_disallow_mask;
 
 /* Handling sub-page read-only MMIO regions */
-struct subpage_ro_range {
-    struct list_head list;
-    mfn_t mfn;
-    void __iomem *mapped;
-    DECLARE_BITMAP(ro_elems, PAGE_SIZE / MMIO_RO_SUBPAGE_GRAN);
-};
-
 static LIST_HEAD_RO_AFTER_INIT(subpage_ro_ranges);
 static DEFINE_SPINLOCK(subpage_ro_lock);
 
@@ -4929,7 +4922,7 @@ long arch_memory_op(unsigned long cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
     return rc;
 }
 
-static struct subpage_ro_range *subpage_mmio_find_page(mfn_t mfn)
+struct subpage_ro_range *subpage_mmio_find_page(mfn_t mfn)
 {
     struct subpage_ro_range *entry;
 
@@ -5074,7 +5067,7 @@ int __init subpage_mmio_ro_add(
     return rc;
 }
 
-static void __iomem *subpage_mmio_map_page(
+void __iomem *subpage_mmio_map_page(
     struct subpage_ro_range *entry)
 {
     void __iomem *mapped_page;
@@ -5099,7 +5092,7 @@ static void __iomem *subpage_mmio_map_page(
     return entry->mapped;
 }
 
-static void subpage_mmio_write_emulate(
+void subpage_mmio_write_emulate(
     mfn_t mfn,
     unsigned int offset,
     unsigned long data,
@@ -5133,30 +5126,6 @@ static void subpage_mmio_write_emulate(
     write_mmio(addr + offset, data, len);
 }
 
-#ifdef CONFIG_HVM
-bool subpage_mmio_write_accept(mfn_t mfn, unsigned long gla)
-{
-    unsigned int offset = PAGE_OFFSET(gla);
-    const struct subpage_ro_range *entry;
-
-    entry = subpage_mmio_find_page(mfn);
-    if ( !entry )
-        return false;
-
-    if ( !test_bit(offset / MMIO_RO_SUBPAGE_GRAN, entry->ro_elems) )
-    {
-        /*
-         * We don't know the write size at this point yet, so it could be
-         * an unaligned write, but accept it here anyway and deal with it
-         * later.
-         */
-        return true;
-    }
-
-    return false;
-}
-#endif
-
 int cf_check mmio_ro_emulated_write(
     enum x86_segment seg,
     unsigned long offset,
-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Tue Apr 15 15:34:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 15:34:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.954136.1348488 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4iIx-0005Tl-Av; Tue, 15 Apr 2025 15:34:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 954136.1348488; Tue, 15 Apr 2025 15: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 1u4iIx-0005TW-60; Tue, 15 Apr 2025 15:34:31 +0000
Received: by outflank-mailman (input) for mailman id 954136;
 Tue, 15 Apr 2025 15:34: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=OGoX=XB=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u4iIv-0005R7-Tk
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 15:34:29 +0000
Received: from mail-pf1-x434.google.com (mail-pf1-x434.google.com
 [2607:f8b0:4864:20::434])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1d5f11a7-1a0f-11f0-9ffb-bf95429c2676;
 Tue, 15 Apr 2025 17:34:27 +0200 (CEST)
Received: by mail-pf1-x434.google.com with SMTP id
 d2e1a72fcca58-7399a2dc13fso7616678b3a.2
 for <xen-devel@lists.xenproject.org>; Tue, 15 Apr 2025 08:34:27 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 d2e1a72fcca58-73bd22f12dbsm8943887b3a.102.2025.04.15.08.34.24
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 15 Apr 2025 08:34: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: 1d5f11a7-1a0f-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744731266; x=1745336066; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=UlqZUNPuLv+pOnZTQp+GI/8I93asdoKxzx2oKrG7xfI=;
        b=IT4CGOAToZ0c0T1c5fnU5rrOfAF2LdYaiNUrek0Voma5R6iSG81+Iv6c8vKF90c6/v
         K740w8ki6U9Ytz9Vd6j4TmWQR+j9TPiDcj/6Sq93Il5lWwgLGNSvhGXajA79k9oj37gl
         TngUOwspQ3HQ+4w7FAI1Ai69K32P4iPCegzM8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744731266; x=1745336066;
        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=UlqZUNPuLv+pOnZTQp+GI/8I93asdoKxzx2oKrG7xfI=;
        b=O6xkjfdReLkwz2OV/rAYOPIhqSaWLTbg59eXFDsxIAZ9j3MatPJL9gFPMYYl1v+OhU
         lXpm/EFxf/AiNzNvLYQ/ixP7vhr8W1qEG4NXJIRDpN+nea+UJnubStuHLH3krEjxaL+J
         XNublJD4UXQZiVpjiRnzZ8A5hzfL9PEC+Q7fKSFoCr+6E/EH4HAcO5C0Ib+lb1O6r27C
         2qRoId48CyEfCidVug8/wP4883u59VhF5TDxZlJMhz9WXe4LuC0HVuQhQBJmAQYHhOAn
         Wu80/P2pq96nVc92NPTbLiwfXqLTET9EKPMUaQN2CEx8pyusaL+gCYiqo9KKRw0rvEsR
         afeA==
X-Gm-Message-State: AOJu0YxyZlpT2j1mwQxOpDpqoglBd7nB7OrHGZecZbY5OH6RtgeLr8NL
	5KsFGaGzsKOpmcw/uStlqjntrsxUCK4cNpK1WTYdHF1E0ggVUSm2ojGEkwxouhQYOSKnmJNe0Va
	F
X-Gm-Gg: ASbGncvdMq6B/2cWGNQfu+hhCCgSvuYbJrDKlzVoYfGQ7/6gvqDk3dNyd9+6L7u1S+b
	RzhbhwjRIcCYk7ZPUp1gIjp63UobUxK19d6uVC9Cnd7zfYQB0K85UbTd64Ow9d9mg8Cr5GbYvke
	1Cufwq9uGrZtgOhZkUEy2ygAStGBIbGSkc4uL8/6Qbt1LHF1LagO3FNeUuzhpZ+qKj8VohC8Opx
	1e2R4uUv+919jGQ+pA3aLTyHhRSSt6wlezjraCdVuBV5LBDD4H6jbi4qA2FQaksgk/4wvIsaAmi
	uj02S9nzS4CCWZuiCgLAJS0wqvyjGtF0UX2Pi/SKb7ISnw==
X-Google-Smtp-Source: AGHT+IElxls2EyiXwPCSrQoV4cONCV3AT4jTecXt3mh7u3UVlqgLDfD1OJbNLGN7BfPksU0uWUj4tg==
X-Received: by 2002:a05:6a00:2348:b0:736:a77d:5412 with SMTP id d2e1a72fcca58-73bd12003b7mr23579608b3a.12.1744731265695;
        Tue, 15 Apr 2025 08:34:25 -0700 (PDT)
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 3/4] x86/hvm: only register the r/o subpage ops when needed
Date: Tue, 15 Apr 2025 17:32:45 +0200
Message-ID: <20250415153246.81688-4-roger.pau@citrix.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <20250415153246.81688-1-roger.pau@citrix.com>
References: <20250415153246.81688-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

MMIO operation handlers can be expensive to process, hence attempt to
register only those that will be needed by the domain.

Subpage r/o MMIO regions are added exclusively at boot, further limit their
addition to strictly before the initial domain gets created, so by the time
initial domain creation happens Xen knows whether subpage is required or
not.  This allows only registering the MMIO handler when there are
subpage regions to handle.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
---
Could possibly be part of the previous patch, but strictly speaking is an
improvement, as even before the previous patch subpage r/o was always
called even when no subpage regions are registered.
---
 xen/arch/x86/hvm/hvm.c        |  3 ++-
 xen/arch/x86/include/asm/mm.h |  1 +
 xen/arch/x86/mm.c             | 16 ++++++++++++++++
 3 files changed, 19 insertions(+), 1 deletion(-)

diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index 6b998387e3d8..4cb2e13046d1 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -692,7 +692,8 @@ int hvm_domain_initialise(struct domain *d,
 
     register_portio_handler(d, XEN_HVM_DEBUGCONS_IOPORT, 1, hvm_print_line);
 
-    register_subpage_ro_handler(d);
+    if ( subpage_ro_active() )
+        register_subpage_ro_handler(d);
 
     if ( hvm_tsc_scaling_supported )
         d->arch.hvm.tsc_scaling_ratio = hvm_default_tsc_scaling_ratio;
diff --git a/xen/arch/x86/include/asm/mm.h b/xen/arch/x86/include/asm/mm.h
index c2e9ef6e5023..aeb8ebcf2d56 100644
--- a/xen/arch/x86/include/asm/mm.h
+++ b/xen/arch/x86/include/asm/mm.h
@@ -561,6 +561,7 @@ struct subpage_ro_range {
     void __iomem *mapped;
     DECLARE_BITMAP(ro_elems, PAGE_SIZE / MMIO_RO_SUBPAGE_GRAN);
 };
+bool subpage_ro_active(void);
 struct subpage_ro_range *subpage_mmio_find_page(mfn_t mfn);
 void __iomem *subpage_mmio_map_page(struct subpage_ro_range *entry);
 void subpage_mmio_write_emulate(
diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
index f59c7816fba5..3bc6304d831c 100644
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -4922,6 +4922,11 @@ long arch_memory_op(unsigned long cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
     return rc;
 }
 
+bool subpage_ro_active(void)
+{
+    return !list_empty(&subpage_ro_ranges);
+}
+
 struct subpage_ro_range *subpage_mmio_find_page(mfn_t mfn)
 {
     struct subpage_ro_range *entry;
@@ -5011,6 +5016,17 @@ int __init subpage_mmio_ro_add(
          !IS_ALIGNED(size, MMIO_RO_SUBPAGE_GRAN) )
         return -EINVAL;
 
+    /*
+     * Force all r/o subregions to be registered before initial domain
+     * creation, so that the emulation handlers can be added only when there
+     * are pages registered.
+     */
+    if ( system_state >= SYS_STATE_smp_boot )
+    {
+        ASSERT_UNREACHABLE();
+        return -EILSEQ;
+    }
+
     if ( !size )
         return 0;
 
-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Tue Apr 15 15:34:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 15:34:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.954143.1348499 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4iJ1-0005td-LH; Tue, 15 Apr 2025 15:34:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 954143.1348499; Tue, 15 Apr 2025 15: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 1u4iJ1-0005sH-FO; Tue, 15 Apr 2025 15:34:35 +0000
Received: by outflank-mailman (input) for mailman id 954143;
 Tue, 15 Apr 2025 15:34: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=OGoX=XB=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u4iJ0-0005R7-Ko
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 15:34:34 +0000
Received: from mail-pf1-x42f.google.com (mail-pf1-x42f.google.com
 [2607:f8b0:4864:20::42f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 208a35aa-1a0f-11f0-9ffb-bf95429c2676;
 Tue, 15 Apr 2025 17:34:33 +0200 (CEST)
Received: by mail-pf1-x42f.google.com with SMTP id
 d2e1a72fcca58-73712952e1cso5494388b3a.1
 for <xen-devel@lists.xenproject.org>; Tue, 15 Apr 2025 08:34:33 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 41be03b00d2f7-b02a3220ff0sm9406327a12.66.2025.04.15.08.34.29
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 15 Apr 2025 08:34: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: 208a35aa-1a0f-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744731271; x=1745336071; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=jaYptZ2Kc/sZc/ME88OKldR8ZTag6D9LFdsKVD9LMbw=;
        b=K8vmXRPrQnBpOXg3AAFn7A8oWY5m6MIqS1ZkyrimbZnC+JXyWEyNfviUiZLKKdzG2F
         /59UzF28qQg4rsd6XTYBRBKA7QgGGDiPr8E4iWIj7AlBAEbMLmhdpsmrJNuevp+k4Pwo
         QJa09dbqQCVBzbrCIkH56o12Cv6mb0NbCArc8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744731271; x=1745336071;
        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=jaYptZ2Kc/sZc/ME88OKldR8ZTag6D9LFdsKVD9LMbw=;
        b=VYndluyW618X/46C/whl4BBhU3kz61TLVNG15OfMk+LZT+cAR6dsPAPhPUnKNVvSEq
         QM24GCBhUbtBw14kXC4TIXNhcYS/746ih5QGXstifp3Vzgb3CGYQizpHaJzh4UcP+i3Y
         B+n02Tn3M/APio4ro/Ah7ttKareIQT2RNNajlL4E3EXszKcYKYcPRuDnIYoBxMRTwCW1
         3UdMxHVwY1flYH7KxsPWSAzaqQM/etI4SCbhN9uZ3ZBCKojVbr9BbekQ8VEMGFohdUVa
         QBEbhL8N0MAzWwVdCPCXfrkKFO3Cab0Wrgk5t1IWb6ev113uAorz7+UdBsooYuNjg5Ua
         mPKQ==
X-Gm-Message-State: AOJu0YyUR2e5S17Li6CvPqnGyOjSPT30pgNbRMiqlEtKYXX+vIRXQ8Yb
	G5mCvgRExMA1RkfsWwnkvRbArqrFNFLhTtmNQ5hxlhut0QzzDMzvJr6vO3Mlq7/dRTPh5YbpI/h
	K
X-Gm-Gg: ASbGncvZuXqvVQATj4+5ffl91+5aVqIdYrBXhS50YLToAiMrZgiYD3ZnKA0WLJUhVxL
	jT4v/H1G+5I2TD3w2wNlop2pcqtRvNI0MOfJMXYXXmpPvuRlRyqCZNpc4Zcv2W8pqeo+yfqRby3
	htZ/IMm5r4gYhX7mk/UtKRaRGqD3QCp7tdcb3goN5tmwZZdIpE9aRhcPO6x7D+xKSnPUJ0ZqMBX
	Pg6DyXsCWbBKaUaEPsyCMLv1MGoZVqYXaxrMxdtbwyXHYdTGe3alW+EFKdIX8iJ8qcIB4sI7TK3
	LGlEQ0duh+EKJuXUyka6J2fO1XSfGkeODlR2mfdv7tb1l1hlLp5OPu/g
X-Google-Smtp-Source: AGHT+IH/5mIagVDnZfNMuVK08rw2f7TSqsa8PKR1Rx0IJ1QvLGTVwPgE10Cshq4erB3EqR5fliEC8g==
X-Received: by 2002:a05:6a20:9f07:b0:1f5:a577:dd1b with SMTP id adf61e73a8af0-2017978f12cmr24062978637.1.1744731271065;
        Tue, 15 Apr 2025 08:34:31 -0700 (PDT)
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: move mmio_ro_emulated_write() to PV only file
Date: Tue, 15 Apr 2025 17:32:46 +0200
Message-ID: <20250415153246.81688-5-roger.pau@citrix.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <20250415153246.81688-1-roger.pau@citrix.com>
References: <20250415153246.81688-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

mmio_ro_emulated_write() is only used in pv/ro-page-fault.c, move the
function to that file and make it static.

No functional change intended.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
---
 xen/arch/x86/include/asm/mm.h   | 12 ------------
 xen/arch/x86/mm.c               | 26 -------------------------
 xen/arch/x86/pv/ro-page-fault.c | 34 +++++++++++++++++++++++++++++++++
 3 files changed, 34 insertions(+), 38 deletions(-)

diff --git a/xen/arch/x86/include/asm/mm.h b/xen/arch/x86/include/asm/mm.h
index aeb8ebcf2d56..2665daa6f74f 100644
--- a/xen/arch/x86/include/asm/mm.h
+++ b/xen/arch/x86/include/asm/mm.h
@@ -542,18 +542,6 @@ void memguard_unguard_stack(void *p);
 int subpage_mmio_ro_add(paddr_t start, size_t size);
 bool subpage_mmio_write_accept(mfn_t mfn, unsigned long gla);
 
-struct mmio_ro_emulate_ctxt {
-        unsigned long cr2;
-        /* Used only for mmcfg case */
-        unsigned int seg, bdf;
-        /* Used only for non-mmcfg case */
-        mfn_t mfn;
-};
-
-int cf_check mmio_ro_emulated_write(
-    enum x86_segment seg, unsigned long offset, void *p_data,
-    unsigned int bytes, struct x86_emulate_ctxt *ctxt);
-
 /* r/o MMIO subpage access handlers. */
 struct subpage_ro_range {
     struct list_head list;
diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
index 3bc6304d831c..7c6a5fde5ebd 100644
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -5142,32 +5142,6 @@ void subpage_mmio_write_emulate(
     write_mmio(addr + offset, data, len);
 }
 
-int cf_check mmio_ro_emulated_write(
-    enum x86_segment seg,
-    unsigned long offset,
-    void *p_data,
-    unsigned int bytes,
-    struct x86_emulate_ctxt *ctxt)
-{
-    struct mmio_ro_emulate_ctxt *mmio_ro_ctxt = ctxt->data;
-    unsigned long data = 0;
-
-    /* Only allow naturally-aligned stores at the original %cr2 address. */
-    if ( ((bytes | offset) & (bytes - 1)) || !bytes ||
-         offset != mmio_ro_ctxt->cr2 || bytes > sizeof(data) )
-    {
-        gdprintk(XENLOG_WARNING, "bad access (cr2=%lx, addr=%lx, bytes=%u)\n",
-                mmio_ro_ctxt->cr2, offset, bytes);
-        return X86EMUL_UNHANDLEABLE;
-    }
-
-    memcpy(&data, p_data, bytes);
-    subpage_mmio_write_emulate(mmio_ro_ctxt->mfn, PAGE_OFFSET(offset),
-                               data, bytes);
-
-    return X86EMUL_OKAY;
-}
-
 /*
  * For these PTE APIs, the caller must follow the alloc-map-unmap-free
  * lifecycle, which means explicitly mapping the PTE pages before accessing
diff --git a/xen/arch/x86/pv/ro-page-fault.c b/xen/arch/x86/pv/ro-page-fault.c
index 11b01c479e43..3dd795288379 100644
--- a/xen/arch/x86/pv/ro-page-fault.c
+++ b/xen/arch/x86/pv/ro-page-fault.c
@@ -298,6 +298,14 @@ static int ptwr_do_page_fault(struct x86_emulate_ctxt *ctxt,
  * fault handling for read-only MMIO pages
  */
 
+struct mmio_ro_emulate_ctxt {
+    unsigned long cr2;
+    /* Used only for mmcfg case */
+    unsigned int seg, bdf;
+    /* Used only for non-mmcfg case */
+    mfn_t mfn;
+};
+
 static int cf_check mmcfg_intercept_write(
     enum x86_segment seg,
     unsigned long offset,
@@ -329,6 +337,32 @@ static int cf_check mmcfg_intercept_write(
     return X86EMUL_OKAY;
 }
 
+static int cf_check mmio_ro_emulated_write(
+    enum x86_segment seg,
+    unsigned long offset,
+    void *p_data,
+    unsigned int bytes,
+    struct x86_emulate_ctxt *ctxt)
+{
+    struct mmio_ro_emulate_ctxt *mmio_ro_ctxt = ctxt->data;
+    unsigned long data = 0;
+
+    /* Only allow naturally-aligned stores at the original %cr2 address. */
+    if ( ((bytes | offset) & (bytes - 1)) || !bytes ||
+         offset != mmio_ro_ctxt->cr2 || bytes > sizeof(data) )
+    {
+        gdprintk(XENLOG_WARNING, "bad access (cr2=%lx, addr=%lx, bytes=%u)\n",
+                mmio_ro_ctxt->cr2, offset, bytes);
+        return X86EMUL_UNHANDLEABLE;
+    }
+
+    memcpy(&data, p_data, bytes);
+    subpage_mmio_write_emulate(mmio_ro_ctxt->mfn, PAGE_OFFSET(offset),
+                               data, bytes);
+
+    return X86EMUL_OKAY;
+}
+
 static const struct x86_emulate_ops mmio_ro_emulate_ops = {
     .read       = x86emul_unhandleable_rw,
     .insn_fetch = ptwr_emulated_insn_fetch,
-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Tue Apr 15 15:40:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 15:40:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.954172.1348507 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4iOt-0008IH-7Z; Tue, 15 Apr 2025 15:40:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 954172.1348507; Tue, 15 Apr 2025 15:40: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 1u4iOt-0008IA-4Q; Tue, 15 Apr 2025 15:40:39 +0000
Received: by outflank-mailman (input) for mailman id 954172;
 Tue, 15 Apr 2025 15:40:37 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <anthony@xenproject.org>) id 1u4iOr-0008I4-Iw
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 15:40:37 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1u4iOr-00H5jS-06;
 Tue, 15 Apr 2025 15:40:37 +0000
Received: from [2a01:e0a:1da:8420:b77:bd5:6e45:7633] (helo=l14)
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1u4iOq-00DJjT-2E;
 Tue, 15 Apr 2025 15:40: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>
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=VRE2875+eLZAsKvYAKdlozdNKJiqhiNllfbaU8bSgY8=; b=6aA8shFXeiHgn+th/VeLFkrAjg
	cWJ2VB8vsShqWgmhI3abHEjrvG2gIf4MsRAn4RCoB/oNRXKp8AvXIFdYNHpR9+xBLepuuMJQh20iL
	igh6x+buuVbBT0MOZJ8j+iWUlPFuJmGXA2LebYqnw8mC1Dfa2lifMfLlVa/70TiynJ3A=;
Date: Tue, 15 Apr 2025 17:40:34 +0200
From: Anthony PERARD <anthony@xenproject.org>
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>,
	Marek =?iso-8859-1?Q?Marczykowski-G=F3recki?= <marmarek@invisiblethingslab.com>
Subject: Re: [PATCH] CI: Build with --prefix=/usr rather than setting
 LD_LIBRARY_PATH
Message-ID: <Z_598uOF2pBy87jj@l14>
References: <20250415135426.2442073-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20250415135426.2442073-1-andrew.cooper3@citrix.com>

On Tue, Apr 15, 2025 at 02:54:26PM +0100, Andrew Cooper wrote:
> This also moves executables too.  I'm not sure why xilinx-smoke-dom0-x86_64.sh
> was overriding PATH too, as /usr/local is clearly in PATH for all other tests,
> but drop that too.
> 
> No practical change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Reviewed-by: Anthony PERARD <anthony.perard@vates.tech>

Thanks,

-- 
Anthony PERARD


From xen-devel-bounces@lists.xenproject.org Tue Apr 15 15:55:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 15:55:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.954207.1348523 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4idA-00030f-F1; Tue, 15 Apr 2025 15:55:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 954207.1348523; Tue, 15 Apr 2025 15:55: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 1u4idA-00030Y-Ag; Tue, 15 Apr 2025 15:55:24 +0000
Received: by outflank-mailman (input) for mailman id 954207;
 Tue, 15 Apr 2025 15: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=ai1O=XB=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u4id8-00030M-C2
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 15:55:22 +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 07418be9-1a12-11f0-9ffb-bf95429c2676;
 Tue, 15 Apr 2025 17:55:18 +0200 (CEST)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-43d2d952eb1so46009335e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 15 Apr 2025 08:55:18 -0700 (PDT)
Received: from [10.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-39eaf43d046sm15003825f8f.63.2025.04.15.08.55.16
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 15 Apr 2025 08:55: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: 07418be9-1a12-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744732518; x=1745337318; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=9IA0YI+idxqGLu+s7xKtxiAjeQwtDC0sy0XeaFT3Y44=;
        b=OKI3VWXzSWKsjxw/G5k2Xxba4CPkLYPYxlF1JK5grmwsYLooyKCGpMpF2R1HLIP733
         ZJijJC0gvvQoE94kYLOEpx3nqulVamM7uN5KXPTJb6LFgkqbQRdtHmDBqCKwX8Z57QDz
         kyvRmRhabQuhCzSQdRr9tmJMkf+CFAQ6aQeS5ywWxs2Cu8gll8vhecb9tZizR6HjhjI+
         jMt2H93qVuRiExFR9Addpg5B6ACU5FCl0UnC3jnO5hglJGyl1dliX1q51VO69Bvr/mbv
         j+znbrFO27dM0i4CMeUi/46I5LPYUuJjRrMMIoz7PxM/j6yiK7VGXZJ/W5+6rQDeLcGW
         xsqw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744732518; x=1745337318;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=9IA0YI+idxqGLu+s7xKtxiAjeQwtDC0sy0XeaFT3Y44=;
        b=B+4ZAfKczNh3b3skgbOiMqNh/uNbRJGTXuhbtWAPfIXQ2zTKcyB/IMIWUnvEbIUHT3
         e/gvQxK38LSXSQe4uEYrrOWej5ZRFlndxC/zPujNKxP07wo9I8C5nZ5eUYROx9g+YgMo
         SxYg/0bds7n/Io4TcxWtApFvaSdrIoZJ5vt4JhWgnuiQPsSJ502NfYS3NYqHkOhfzNJ7
         0vDi+AGJOu2/b5ymN71vw+Ji6dXKVeP9Ck7MPNNDAlLowHWx2WWXnbfIfenDQm4SjGkZ
         FXJDCNQNab19RShRoFoRVT6uzlpVh046DY865JHLKMI+LgPedsvLD0jKuaTuMqCvZmNK
         ibfA==
X-Forwarded-Encrypted: i=1; AJvYcCX7DtkLJ5xqtC0Ut5VA3AJgBa+naMtVZWBWhBMx66YgcirolDhu9/fQlMiBjELtWcmJpigVv+2JrJY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwGlrvQGWVtrBN3+XOmCymsyjBa7G+GWiihS0c9yARSayOVy32/
	iXfa5jfHbEsRRBGgk0VoDd1w3dwIG0rq8e/GBgbdGhFPLb+AR7czeRWv8lEgtQ==
X-Gm-Gg: ASbGncuZTjwaJjWKdcBdoozju6NuUnbt4LkN0iJFIm3Wt2HcuGpA95x+mzogkm0n1mi
	nckm+8Putc2SqOh6PrJANcok7WyqksTA0waAA9Z73UlbnYT7nJfR9AEDGTx9mB3IqJ1CgGbRjMP
	x71foPOCH7Ld/PqFkbjLCsiiJ83VO7mRlQvvXIaRKj2DuPELXrldI6RVg9K0qqKtGMA0J5YvuK1
	3KZ6wykZ0AxVYmQo8A8PFLFuD7ossOsifxQ/3AMBHlqy12aYmmWzearcdo59GMpYKk5FGLJa993
	v1rTeC3Pj4LZgyJNgEznBQjSw2aLXDPWnphR6TG9w72RCLqCjnmk/6AlecsvApKdynW9K/Ejhu8
	vTeV+xDrdpzYTCkkgefMFFhZDyJtCg/8c4dYl
X-Google-Smtp-Source: AGHT+IH/kRjvLf7QkBTEzrE2Igih059QqB3JN2wNCdEE6o6TW98/9jUTYFRFIHMRxHbRyUFkULU+XA==
X-Received: by 2002:a05:6000:40d9:b0:39c:1258:2dc9 with SMTP id ffacd0b85a97d-39eaaeca292mr14486414f8f.58.1744732517682;
        Tue, 15 Apr 2025 08:55:17 -0700 (PDT)
Message-ID: <47492663-5832-49e7-af4d-ee536206e641@suse.com>
Date: Tue, 15 Apr 2025 17:55:16 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 12/14] xen/riscv: implement setup_irq()
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Romain Caritey <Romain.Caritey@microchip.com>, xen-devel@lists.xenproject.org
References: <cover.1744126720.git.oleksii.kurochko@gmail.com>
 <2bc37c3996978129a5b2c888917307ea32448651.1744126720.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: <2bc37c3996978129a5b2c888917307ea32448651.1744126720.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.04.2025 17:57, Oleksii Kurochko wrote:
> --- a/xen/arch/riscv/include/asm/irq.h
> +++ b/xen/arch/riscv/include/asm/irq.h
> @@ -26,6 +26,8 @@
>  #define IRQ_TYPE_SENSE_MASK     DT_IRQ_TYPE_SENSE_MASK
>  #define IRQ_TYPE_INVALID        DT_IRQ_TYPE_INVALID
>  
> +#define IRQ_NO_PRIORITY 0
> +
>  /* TODO */
>  #define nr_static_irqs 0
>  #define arch_hwdom_irqs(domid) 0U
> @@ -54,6 +56,10 @@ void init_IRQ(void);
>  struct cpu_user_regs;

Seeing this and ...

>  void do_IRQ(struct cpu_user_regs *regs, unsigned int irq);
>  
> +struct irq_desc;
> +struct cpumask_t;

... now these - all of such forward decls may want to collectively live in a
central place higher up in the file.

> @@ -57,6 +59,99 @@ int platform_get_irq(const struct dt_device_node *device, int index)
>      return dt_irq.irq;
>  }
>  
> +static int __setup_irq(struct irq_desc *desc, unsigned int irqflags,
> +                       struct irqaction *new)

Irrespective of you possibly having found it like this elsewhere, may I
suggest that in new code we avoid leading double underscores? A single one
will do here.

> +{
> +    bool shared = irqflags & IRQF_SHARED;
> +
> +    ASSERT(new != NULL);
> +
> +    /* Sanity checks:

Nit: Comment style (and there are many more issues below).

> +     *  - if the IRQ is marked as shared
> +     *  - dev_id is not NULL when IRQF_SHARED is set
> +     */
> +    if ( desc->action != NULL && (!test_bit(_IRQF_SHARED, &desc->status)
> +         || !shared) )

Nit: Operator placement and indentation.

You're probably better off this way anyway:

    if ( desc->action != NULL &&
         (!test_bit(_IRQF_SHARED, &desc->status) || !shared) )

> +        return -EINVAL;
> +    if ( shared && new->dev_id == NULL )
> +        return -EINVAL;
> +
> +    if ( shared )
> +        set_bit(_IRQF_SHARED, &desc->status);

See comments on earlier patches.

> +#ifdef CONFIG_IRQ_HAS_MULTIPLE_ACTION
> +    new->next = desc->action;
> +    smp_mb();
> +#endif
> +
> +    desc->action = new;
> +    smp_mb();

Aren't smp_wmb() sufficient on both places? If not, I think comments
want adding.

> +    return 0;
> +}
> +
> +void irq_set_affinity(struct irq_desc *desc, const cpumask_t *cpu_mask)
> +{
> +    if ( desc != NULL )

Can desc really be NULL here? Isn't desc->lock required to be held?

> +        desc->handler->set_affinity(desc, cpu_mask);
> +}
> +
> +int setup_irq(unsigned int irq, unsigned int irqflags, struct irqaction *new)
> +{
> +    int rc;
> +    unsigned long flags;
> +    struct irq_desc *desc;
> +    bool disabled;
> +
> +    desc = irq_to_desc(irq);

Make this the variable's initializer?

> +    spin_lock_irqsave(&desc->lock, flags);
> +
> +    disabled = (desc->action == NULL);
> +
> +    if ( test_bit(_IRQ_GUEST, &desc->status) )
> +    {
> +        spin_unlock_irqrestore(&desc->lock, flags);
> +        /*
> +         * TODO: would be nice to have functionality to print which domain owns
> +         *       an IRQ.
> +         */
> +        printk(XENLOG_ERR "ERROR: IRQ %u is already in use by a domain\n", irq);
> +        return -EBUSY;
> +    }
> +
> +    rc = __setup_irq(desc, irqflags, new);
> +    if ( rc )
> +        goto err;
> +
> +    /* First time the IRQ is setup */
> +    if ( disabled )
> +    {
> +        /* disable irq by default */
> +        set_bit(_IRQ_DISABLED, &desc->status);

Shouldn't this be set when we make it here?

> +        /* route interrupt to xen */
> +        intc_route_irq_to_xen(desc, IRQ_NO_PRIORITY);
> +
> +        /*
> +         * we don't care for now which CPU will receive the
> +         * interrupt
> +         *
> +         * TODO: Handle case where IRQ is setup on different CPU than
> +         * the targeted CPU and the priority.
> +         */
> +        irq_set_affinity(desc, cpumask_of(smp_processor_id()));
> +        desc->handler->startup(desc);
> +        /* enable irq */
> +        clear_bit(_IRQ_DISABLED, &desc->status);

Now it turns out this is really done twice: Once in aplic_irq_enable(),
and once here.

> +    }
> +
> +err:

Nit (yet once again).

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 15 15:59:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 15:59:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.954220.1348531 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4ign-0003bA-SQ; Tue, 15 Apr 2025 15:59:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 954220.1348531; Tue, 15 Apr 2025 15:59: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 1u4ign-0003b3-Pa; Tue, 15 Apr 2025 15:59:09 +0000
Received: by outflank-mailman (input) for mailman id 954220;
 Tue, 15 Apr 2025 15:59: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=ai1O=XB=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u4ign-0003ax-Dt
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 15:59:09 +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 9052607a-1a12-11f0-9eae-5ba50f476ded;
 Tue, 15 Apr 2025 17:59:08 +0200 (CEST)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-43690d4605dso45698565e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 15 Apr 2025 08:59:08 -0700 (PDT)
Received: from [10.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-4404352a536sm17754635e9.1.2025.04.15.08.59.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 15 Apr 2025 08:59: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: 9052607a-1a12-11f0-9eae-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744732748; x=1745337548; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=GzVYbEzQU8nRqKLFEPqZDDIRnDjKZ3QtN4ZRIJgoFM0=;
        b=BfgSFrL3FYDFxAQ6l0eCF/VL8suAmhgRGyGeB55KJn7n2AJc/CaPvA6Rp7HN8ZTkqH
         6X/OlSp7h0Myui4M9hbZEguPr1Adga6rLqhvkh41CbFj4I1+DrWAFy/0r78qJwbw7dln
         o+ZuHvpzMlBOJUd/hXD436pviJpHCf2h/I5ILx0+M4mWXdJuNNtHxxP8p/72ML5UaOhg
         7jcnSaP4xFaQuYNu5nzPgR9fLva2mk8HOzkAwvwIbmbSTKLe0NEkTzXYqLCEmsuFXgtP
         v1b9Kn9LNcwv2BPHV7vVprTCuRLianmCyHTUchxT27HdbEWCLOfzYncbrRHUlZTsTrZa
         eJiw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744732748; x=1745337548;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=GzVYbEzQU8nRqKLFEPqZDDIRnDjKZ3QtN4ZRIJgoFM0=;
        b=jjYoBH+lOIMPMk/TcVgT4VqDeUyY2RZoB9LkIY4UM4tXOxEjoH5WMaof2vf8LS16rH
         TJotb7ywqI5XhwN49Jq7fXCY6RurHcyyhCQr9BU7Dw7rzJdRCsq0twLR/ovQgxnX1Zn2
         Tepa0fQ2nmJUW5SPfVqcw9rhWdcvxeQ0RQ5VEsUzaUCHxji34D0cKqPG3r5AqmDhBwTa
         LwW4PsGngnNUnW3V+1x4SQCpvo0BIs8Cu7b4mIKqAcBIDhmb9KsHuQ6/mLBtsUBK5UgN
         4NgAf7CcF2IDg02qUPRT/d6nfymVyRCyp6t8V68cDOc8JZw257u7wBxZEAG/B/a4Bae3
         l0Fg==
X-Forwarded-Encrypted: i=1; AJvYcCXrpid3rY+scgVwOO+uxU3Gw98uYrCM//4SAthw9sy5WdebojExRxzAp0DUYOvVpa0TOaJzw9K+g1k=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzOPN0J0n/qUU08nij6MJt1afXPgE4mqLflFZNmIjxtzuMsgkOp
	t1zjWWxd/wP2Oexkc9vSHjPBtgchTC+vG8jGq+qBy4g+gkn3HtReEJEWRQuJVg==
X-Gm-Gg: ASbGncvydE4eutlFiOvEcpxcwRJI18pqxrR3zwe9U60bLGT62KCALPQ0FVn5h6Hn7tl
	vFuYYJpOlMCZEh33GPrzVnbI6jpVo7cyWtreyMU4dUHfXa0aRyG7bmtX1eCPGR61Q45NxrpQJhw
	OjvG5ERmaWI46lcByqxbMazV4Q9WwrCmIGtKZjxG5IFtDw40Ju4iZqU0XQrPejZIXv0tpPooaiJ
	bbxD3UHARsH6qMRekoq7fTrOeslmtv731g/B+YOdhCu+T3D4cKDaHsRWEQ4iPyOLyiwKXvUW/tL
	Kyi6IsPEQFq0XQzaKJ3EeI1Ri1/i3nBasbq8hLE4C+xC4/iOuc5RxQjV60Jada7TIRXoB9Pl07E
	Jh9CRJ0mYpYVaW9bdhBFxiF4ITw==
X-Google-Smtp-Source: AGHT+IHxGakBHJ2xoeBl9k4MvubIfjVAFIdHmQGRBF6ec+T95X1za+Dt7VxYKweCoFzLvTxBf41W+w==
X-Received: by 2002:a05:600c:4e09:b0:43d:45a:8fca with SMTP id 5b1f17b1804b1-43f3a9b035fmr183593425e9.30.1744732747733;
        Tue, 15 Apr 2025 08:59:07 -0700 (PDT)
Message-ID: <bcffc56a-5518-4bcc-9124-d49a98ae727a@suse.com>
Date: Tue, 15 Apr 2025 17:59:06 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 13/14] xen/riscv: initialize interrupt controller
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1744126720.git.oleksii.kurochko@gmail.com>
 <cb730a1293f14dd7fd58f98f5ecda4e2523b2d90.1744126720.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: <cb730a1293f14dd7fd58f98f5ecda4e2523b2d90.1744126720.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.04.2025 17:57, Oleksii Kurochko wrote:
> Call intc_init() to do basic initialization steps for APLIC and IMISC.
> 
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

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

> --- a/xen/arch/riscv/setup.c
> +++ b/xen/arch/riscv/setup.c
> @@ -136,6 +136,8 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
>  
>      intc_preinit();
>  
> +    intc_init();
> +
>      printk("All set up\n");
>  
>      machine_halt();

... this being everything here I wonder if this can't be folded with the
patch where the function is introduced.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 15 16:04:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 16:04:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.954235.1348542 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4ilP-0006DJ-H8; Tue, 15 Apr 2025 16:03:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 954235.1348542; Tue, 15 Apr 2025 16:03:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4ilP-0006DC-ET; Tue, 15 Apr 2025 16:03:55 +0000
Received: by outflank-mailman (input) for mailman id 954235;
 Tue, 15 Apr 2025 16:03: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=ai1O=XB=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u4ilO-0006D6-6s
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 16:03:54 +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 37c4db56-1a13-11f0-9ffb-bf95429c2676;
 Tue, 15 Apr 2025 18:03:49 +0200 (CEST)
Received: by mail-wr1-x433.google.com with SMTP id
 ffacd0b85a97d-39d83782ef6so4429950f8f.0
 for <xen-devel@lists.xenproject.org>; Tue, 15 Apr 2025 09:03:49 -0700 (PDT)
Received: from [10.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-39eae96c123sm15148995f8f.36.2025.04.15.09.03.47
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 15 Apr 2025 09:03: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: 37c4db56-1a13-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744733028; x=1745337828; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=kxsIpmo9ZJVc7T2LzxyfgjDWKUnGEdYE20guLjNDjwQ=;
        b=fm9HQeP2uvnE61HFATpDXe76I0ekkYj3oPJWSfvMV2VIc/A6O8SiSEkpGcFu3uXdd9
         jipX9brnwtgVvDNceeRZpoNjOKbCXhUUZrR+BlS3pzwASpWROASTI91WXpsU/CLz+zME
         LYnJ7Jr7j9mVo3SWa0IdVEU/tLdEKi3Hj3N1Ez4ka9bfu5YmvAEM4i+F7ISBZTU52U+o
         3R2S9DF0Iw+975LQIkltpwIbbIZS1EDA12SfE0GkwZMnRSvG9ZSd41+w4Obum2cC5wU4
         HDKq8VmD2i8TkSg8WoKCiLIm3wF/oeIWEMfe0WVtoKHSpZ7irRo0TUAxKHc8LQNL6kCF
         aAOA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744733028; x=1745337828;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=kxsIpmo9ZJVc7T2LzxyfgjDWKUnGEdYE20guLjNDjwQ=;
        b=vrzrGGfXcYUBpzBqAXfGvYergnX2vSItZxJqHN3RHG9mD2vo3WoX0nRdeZFMWP2U7d
         03zYrDSpm8fsiH0lUGMZWIxNxUAEPbbmDpg2q4u9nMw4vBbTYQG+cMStiT2TRIVgkoNf
         aHrLuD8QiGEO7uP0t2VbyYO1jej+y4JgBYMjTr4n6ke9OlzttUKmUUtSTvL17P8WZ7y9
         kFykh7SquBd79ykJ0e6MmkJMOREt6d6xN6oz3yOiLFmz/KONXUv+OfcrPuSfovds/yce
         AjEf7vq7+mTjS9aw9iYNNsuCazySNX1JZnichNuHXwpg65B0uy/t/tOdAhUo9nmBAkZB
         oOVQ==
X-Forwarded-Encrypted: i=1; AJvYcCWfFwwrkHH/7YYi/SJhAuAnMnr5qXhsKPmO4WJhdbHrLp2g8kHBQQouKUcVTtwEW9LxP/zFgOsZKDw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxWdYUCHu9Puxuf0i4ZtLoQ+l9qd9eEClDolVfv2kBHJgf9STFw
	eyX/NUdCkMkqg9guL0Suu1wZ5DRDs5C+f5k/pizZzVXKEpuB+BlPrsOQeYeb6g==
X-Gm-Gg: ASbGncvUiFGbAj/mznjce1h2FJmWey3KilA9vU1hftWrg9bXM8q4qJwuZZ9ndzq9zIh
	YaQV+846/Rxxfvr1uHBGH5vopuTPaqjXauYys/6GXOZMACWt1IWc+COkhtyf5akT3LdAFZI69zX
	GIIR3LM360XJpos6FAwIB+U+4u5UnAdW94hqbewLDT+0nZJUKLHc49imNzGM1f3se1PcWrBeFfL
	RId3TcwOMvBFmOUkB4Z19hOkYK9WEzvhqv7y0uXkoMFW59xTGtnPqxU5pGvCgmZZJ7OBsyn1cwX
	b7BucUSbO697uMbguvfsORohTxBPMGM0dktyIFzEbmunxZB0pXqzzsTQO852pj0xZoLp7x07ujk
	9AKR+NytIOZiubSmuEL5vCm1FZQ==
X-Google-Smtp-Source: AGHT+IHBMNU0gIljQQ/2NY4lh1tbSBWYpzAx3gOkXf1rT/7oc19yNvW+DW2Tfoyijq1j595Dx5mtAQ==
X-Received: by 2002:a05:6000:1ace:b0:39b:32fc:c025 with SMTP id ffacd0b85a97d-39edc2fe0acmr3407864f8f.2.1744733028517;
        Tue, 15 Apr 2025 09:03:48 -0700 (PDT)
Message-ID: <49889d22-55b6-4dd4-b497-13b50d19d607@suse.com>
Date: Tue, 15 Apr 2025 18:03:47 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 14/14] xen/riscv: add basic UART support
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1744126720.git.oleksii.kurochko@gmail.com>
 <3e96851da8751ac17cbf0cb5a649c0d86259460a.1744126720.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: <3e96851da8751ac17cbf0cb5a649c0d86259460a.1744126720.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.04.2025 17:57, Oleksii Kurochko wrote:
> --- a/xen/arch/riscv/setup.c
> +++ b/xen/arch/riscv/setup.c
> @@ -4,11 +4,16 @@
>  #include <xen/bug.h>
>  #include <xen/bootfdt.h>
>  #include <xen/compile.h>
> +#include <xen/console.h>
>  #include <xen/device_tree.h>
>  #include <xen/init.h>
>  #include <xen/irq.h>
> +#include <xen/keyhandler.h>

Why's this one needed?

>  #include <xen/mm.h>
> +#include <xen/percpu.h>
> +#include <xen/serial.h>
>  #include <xen/shutdown.h>
> +#include <xen/timer.h>
>  #include <xen/vmap.h>
>  #include <xen/xvmalloc.h>
>  
> @@ -73,6 +78,8 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
>  
>      remove_identity_mapping();
>  
> +    percpu_init_areas();

I'll trust you that it's needed now, but the addition looks unrelated here,
and also isn't mentioned as intentional in the description.

> --- a/xen/drivers/char/Kconfig
> +++ b/xen/drivers/char/Kconfig
> @@ -3,7 +3,6 @@ config GENERIC_UART_INIT
>  
>  config HAS_NS16550
>  	bool "NS16550 UART driver" if ARM
> -	default n if RISCV
>  	default y

Just to double-check: Unlike Arm you don't want this to be user-(un)selectable
on RISC-V?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 15 16:54:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 16:54:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.954252.1348551 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4jYE-00073D-4c; Tue, 15 Apr 2025 16:54:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 954252.1348551; Tue, 15 Apr 2025 16: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 1u4jYE-000736-1r; Tue, 15 Apr 2025 16:54:22 +0000
Received: by outflank-mailman (input) for mailman id 954252;
 Tue, 15 Apr 2025 16: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=o4sU=XB=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1u4jYC-000730-U4
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 16:54:21 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on20602.outbound.protection.outlook.com
 [2a01:111:f403:2415::602])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 43fb7895-1a1a-11f0-9ffb-bf95429c2676;
 Tue, 15 Apr 2025 18:54:18 +0200 (CEST)
Received: from SN7PR04CA0052.namprd04.prod.outlook.com (2603:10b6:806:120::27)
 by SA5PPF06C91DA0C.namprd12.prod.outlook.com
 (2603:10b6:80f:fc04::8c4) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.35; Tue, 15 Apr
 2025 16:54:13 +0000
Received: from SA2PEPF00003AE4.namprd02.prod.outlook.com
 (2603:10b6:806:120:cafe::bc) by SN7PR04CA0052.outlook.office365.com
 (2603:10b6:806:120::27) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.35 via Frontend Transport; Tue,
 15 Apr 2025 16:54:13 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 SA2PEPF00003AE4.mail.protection.outlook.com (10.167.248.4) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Tue, 15 Apr 2025 16:54:12 +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, 15 Apr
 2025 11:54:12 -0500
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; Tue, 15 Apr 2025 11:54:10 -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: 43fb7895-1a1a-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=VoSQ1c9DiXU7ORApkphSVsqQP48bESca7lZKySy7SJsBESolauoFxypFv4/4ruTZy8XI7JKz+Rv8FLLwr9wwIk9yjJwQEI5s9TWpgJw7zr1aQSg049irUKIv50TeHf6faUltVeJ+Wk0ekgxW9saepWY/8xx2jfzeaD82FGjKInbZiS3RU3+kzZzFAtGPJ9ANCQoWA1+2LrWIfDfzTM5yAe99LYDbfdRyN119ux1j4HB3606gcFOZr2JFIwv+JsNX82MUN9M/qtzWNlW5rHyB2M8zC3g3U2GsWUdzi5M9axHQqUNJXnNKFWa0qwhncwCZOZFLstjE3L6Hdg3RuWF6Vw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=OfR3p4suQBhzf9heVNfDd7t/UrQFVH0/FQ/kI3/lr/A=;
 b=PzwbL3iQjed6P3GO3Na2i2ABou94dOnouA3wTc3gEPf/PYSxKVCdtRF2DVw9lFhby1JICZvp3iO54jxtITQaSTfphK3xhHBgJ2mS8WsI3A9Hglo4PtxrPZLqa2GiquOiiS/98o51za/1bH9+HnvfwDAiFehBvuOcx4x2sU8FTJkNnM9nKCGsKFa24KPJ4ANe3Fskcn+X/R4qSsFFq73AlMW7+Tkm1Ni+3En0Dig3wa1oL2nhD2aDok/w3uciGLdAIfFzSBdhSf1hTty3Ifin4ZPhZ7k++gXfgnfYlbZLpSmwF1W83vjo1OZpamIINOGN2VyIk3H+W8xc2ZNmWZ1ZWA==
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=OfR3p4suQBhzf9heVNfDd7t/UrQFVH0/FQ/kI3/lr/A=;
 b=z9BK+JeOThFBki4VMROyeStu2vl4uoasSJ3TRyDnD2NaD7UqzzvRvF9awakUuRr9z87oT3laJsaLw7M4uSDClI7l8ZVKGnT27rlkSYt5SyIonYTA0cYSh0rQU3CJPgOwv0mVVRdeIPnZgCVmanqnfMRerDhh87IBZaPb/HAQYc4=
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>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, "Volodymyr
 Babchuk" <Volodymyr_Babchuk@epam.com>, Jan Beulich <jbeulich@suse.com>,
	"Andrew Cooper" <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, "Jiqian Chen" <Jiqian.Chen@amd.com>, Mykyta
 Poturai <Mykyta_Poturai@epam.com>
Subject: [PATCH v19 0/3] PCI devices passthrough on Arm, part 3
Date: Tue, 15 Apr 2025 12:53:59 -0400
Message-ID: <20250415165404.435506-1-stewart.hildebrand@amd.com>
X-Mailer: git-send-email 2.49.0
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
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: SA2PEPF00003AE4:EE_|SA5PPF06C91DA0C:EE_
X-MS-Office365-Filtering-Correlation-Id: 5765e403-ee9d-4779-ea25-08dd7c3e2656
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|7416014|36860700013|1800799024|376014|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?RXhoUEpTcE1NRHFXMlRuVzJVQ3NnYUdiQStuQVNFTXcrd0ZpTDN6RVNtcURR?=
 =?utf-8?B?L01YWng3REJsSExId0lkOXRKay9QVGwyOEdaN1pLSEpVMTlpYS8vSzlIZFhj?=
 =?utf-8?B?RFFrbEtoMDVabk5ZTVdnV1pEa2ZNQVFScktCTHZ1RnBwKytOTlJVdEpPRnlt?=
 =?utf-8?B?c3Rqa3RWNCt0NTQ4bnpoTVJqVCtUdXNvdCt2eVZRMEhIbkNXUmN4NG1xa0NL?=
 =?utf-8?B?dy92eVRyME8zd2NjWmZlZWU0NE1tRmpFMzRwVGdQaEVFZm9ITWs4cEhVZytn?=
 =?utf-8?B?VFc2WVNhTjYwVDBlVFlLRmlpeXltME5PWFFNcFVheHZaZVA3NVhBMzBHQTYw?=
 =?utf-8?B?cXc4SS9TcTlHT0dyK0xSMGVld1BwdWR6VmJCMDdxQTNGVit6SXhsRVNDM1Jt?=
 =?utf-8?B?U21CUGwyaDdJNDBMS2p4Sm1xdklrU1hrb2QxTWZGN1BnNGJFVlVrRXliUzJE?=
 =?utf-8?B?Z1V0OFp4UEU2ZjhobUx3V0w5eGxYV1BhdUN2RlFxVWpWU25Rd2s3WDdjcUx6?=
 =?utf-8?B?RXRPSW5CdU1zRTgvS0dHTG53bnJ2ZkNXdy9NcVNrQXE4TFVyZ0xIWVE0YkZj?=
 =?utf-8?B?bGVQVFhmNkRYZWJzNkJJY2ZlVWpmM1BLREplQ1VuQktwMkh4UUtBMCtQL2o0?=
 =?utf-8?B?eHpBVllxSHZPSDduOGNnT0xxdlVPK3JQazdadEs3U0RGMjBEY3lIT2pvdUZQ?=
 =?utf-8?B?cXhOYk9XUnV6UGcxam1rVTdzVytuRnpuRW8vWkhyQStkY2s2MWJMQ05FREhs?=
 =?utf-8?B?cGNBMms0MGhkS0VZaGVNenJQWlBhY2IxZ3NSRHUxYVRCNng4a0hOTXphMGpF?=
 =?utf-8?B?R3lKaTc2d0N5Zm1QL09ReEI2Tm5jR3lyM21NUkt1NnNHeHh6dFBKbTdaMGNV?=
 =?utf-8?B?TVpkUG9GL1YyV0hoTzFDemY0NFJ5RTg4cWZoUy84WHJzZis5V3N3WHRIOWhJ?=
 =?utf-8?B?WTZncDRNSWJ1THdCN0M0NFZzKzVpanVsOW5yWkZkbXBvelRtWE14OURsbHV3?=
 =?utf-8?B?MGhvL25KbEI0SjViVEpHRVF1bnBTN2tjS2xOVXFWaDY0bGJPQ3VlWDExVHdn?=
 =?utf-8?B?YTNQMVM3V3hONmh5Ym1VUE5LK0g0SUk4d240alliSWYvbWRzaGFYUGw0Zjk1?=
 =?utf-8?B?N25oUnFLd0dWMHZSTElDcU9uMCtYdk44KzIxaGZJenB1a09JNDFqNU5FMll0?=
 =?utf-8?B?ZndtM2J2SSt4NG9zTVJFOHJPcFlQbGswWHhWQys3bjV4T2NxYXFUTXZncWpL?=
 =?utf-8?B?bGdyajhuWG02NVVjbjBieEJtb0hXRElTR216cUlqbW1XNTdQWW9xdDN1MTNG?=
 =?utf-8?B?QVJQVWVyUDhRckI4djZLRVgyUDVxOEd6Q0xqYnJnK2hYclVySGtJUFIxS25N?=
 =?utf-8?B?UnRvMUV3Yzg0cncxdzhobFdCVXFiaUlvVzJKUkhWR3ZRTml3ODh5Y3MxSWw0?=
 =?utf-8?B?bjZMbWVCNUJzSDRsa3IraFJMZnZha0wrUmNoQVBSdzlWTHN3cTI1bzNMZGNu?=
 =?utf-8?B?ZHd4SW5XYTYvQnE1SFlHQnFpYit5SVZIMEozZ0ZBRnNsekIrOVQ4RzdrUWU5?=
 =?utf-8?B?N1JmUkJQV0RSMGU1MVBRd3drUXE1OVl5SDNIK1pwMXVLSUZJUlJxSTZJUDda?=
 =?utf-8?B?NU0ySE5qbEFvZ3lBeXh5RTBhUi9HMko4TS8wdlJBamJIWGJ1eEliRUp3L0Q1?=
 =?utf-8?B?em5TQ2hUcVI3bU1VQ0pvUmM0RzhIVUorTDhIc0psUjA4YXhBU2VTTnNjc1pY?=
 =?utf-8?B?R25jRTBxbEtnY0JuMHdHNkdMbERYdS9kbHM4VVpScHlxQUQyVkNiZEloNUpD?=
 =?utf-8?B?SXlLNGliSi9pbDZpd2dENjQvRXlaL0Y1Tzcxb3VIc29CMFRuOFZZd2RRSVlo?=
 =?utf-8?B?S3d5ckpDQS9hR0tpemF2NWt4U1F5M3ZCTEY0c2FGaFF6S3kzaGdYUi9Waytv?=
 =?utf-8?B?T0FpekdRRWR2dk8vWURDSlRuWFBuRTVlemNMbmhiMTZ2OHpvZW54MzNjNVk3?=
 =?utf-8?B?VDdhZ3lxbjZtKytLZUVKeW9lZEt4VDlnbDlXdzBjcHpFM2ttVjlzMWtvZWFS?=
 =?utf-8?Q?3cDvCy?=
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)(7416014)(36860700013)(1800799024)(376014)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Apr 2025 16:54:12.8900
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 5765e403-ee9d-4779-ea25-08dd7c3e2656
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:
	SA2PEPF00003AE4.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA5PPF06C91DA0C

This is next version of vPCI rework. Aim of this series is to prepare
ground for introducing PCI support on ARM platform.

in v19:
 - ("xen/arm: check read handler behavior") is ready to be committed
 - add ("vpci: acquire d->pci_lock in I/O handlers")

in v18:
 - address warning in vpci test suite

in v17:
 - add ("xen/arm: check read handler behavior")
 - drop ("xen/arm: account IO handlers for emulated PCI MSI-X") as it
   should wait for future work
 - drop committed patches

in v16:
 - minor updates - see individual patches

in v15:
 - reorder so ("arm/vpci: honor access size when returning an error")
   comes first

in v14:
 - drop first 9 patches as they were committed
 - updated ("vpci/header: emulate PCI_COMMAND register for guests")

in v13:
 - drop ("xen/arm: vpci: permit access to guest vpci space") as it was
   unnecessary

in v12:
 - I (Stewart) coordinated with Volodomyr to send this whole series. So,
   add my (Stewart) Signed-off-by to all patches.
 - The biggest change is to re-work the PCI_COMMAND register patch.
   Additional feedback has also been addressed - see individual patches.
 - Drop ("pci: msi: pass pdev to pci_enable_msi() function") and
   ("pci: introduce per-domain PCI rwlock") as they were committed
 - Rename ("rangeset: add rangeset_empty() function")
       to ("rangeset: add rangeset_purge() function")
 - Rename ("vpci/header: rework exit path in init_bars")
       to ("vpci/header: rework exit path in init_header()")

in v11:
 - Added my (Volodymyr) Signed-off-by tag to all patches
 - Patch "vpci/header: emulate PCI_COMMAND register for guests" is in
   intermediate state, because it was agreed to rework it once Stewart's
   series on register handling are in.
 - Addressed comments, please see patch descriptions for details.

in v10:

 - Removed patch ("xen/arm: vpci: check guest range"), proper fix
   for the issue is part of ("vpci/header: emulate PCI_COMMAND
   register for guests")
 - Removed patch ("pci/header: reset the command register when adding
   devices")
 - Added patch ("rangeset: add rangeset_empty() function") because
   this function is needed in ("vpci/header: handle p2m range sets
   per BAR")
 - Added ("vpci/header: handle p2m range sets per BAR") which addressed
   an issue discovered by Andrii Chepurnyi during virtio integration
 - Added ("pci: msi: pass pdev to pci_enable_msi() function"), which is
   prereq for ("pci: introduce per-domain PCI rwlock")
 - Fixed "Since v9/v8/... " comments in changelogs to reduce confusion.
   I left "Since" entries for older versions, because they were added
   by original author of the patches.

in v9:

v9 includes addressed commentes from a previous one. Also it
introduces a couple patches from Stewart. This patches are related to
vPCI use on ARM. Patch "vpci/header: rework exit path in init_bars"
was factored-out from "vpci/header: handle p2m range sets per BAR".

in v8:

The biggest change from previous, mistakenly named, v7 series is how
locking is implemented. Instead of d->vpci_rwlock we introduce
d->pci_lock which has broader scope, as it protects not only domain's
vpci state, but domain's list of PCI devices as well.

As we discussed in IRC with Roger, it is not feasible to rework all
the existing code to use the new lock right away. It was agreed that
any write access to d->pdev_list will be protected by **both**
d->pci_lock in write mode and pcidevs_lock(). Read access on other
hand should be protected by either d->pci_lock in read mode or
pcidevs_lock(). It is expected that existing code will use
pcidevs_lock() and new users will use new rw lock. Of course, this
does not mean that new users shall not use pcidevs_lock() when it is
appropriate.

Changes from previous versions are described in each separate patch.

Oleksandr Andrushchenko (1):
  xen/arm: translate virtual PCI bus topology for guests

Stewart Hildebrand (2):
  xen/arm: check read handler behavior
  vpci: acquire d->pci_lock in I/O handlers

 tools/tests/vpci/emul.h |  7 ++---
 xen/arch/arm/io.c       |  2 ++
 xen/arch/arm/vpci.c     | 59 ++++++++++++++++++++++++++++++++---------
 xen/arch/x86/hvm/io.c   | 10 ++++++-
 xen/drivers/vpci/vpci.c | 45 +++++++++++++++++++++++--------
 xen/include/xen/vpci.h  | 12 +++++++++
 6 files changed, 108 insertions(+), 27 deletions(-)


base-commit: 38d07809794e3c723a4de7e10c25c1f6cb590dc6
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 15 16:54:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 16:54:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.954253.1348562 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4jYL-0007Hz-C8; Tue, 15 Apr 2025 16:54:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 954253.1348562; Tue, 15 Apr 2025 16:54:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4jYL-0007Hs-9J; Tue, 15 Apr 2025 16:54:29 +0000
Received: by outflank-mailman (input) for mailman id 954253;
 Tue, 15 Apr 2025 16:54: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=o4sU=XB=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1u4jYJ-0007HS-Ou
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 16:54:27 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on20619.outbound.protection.outlook.com
 [2a01:111:f403:2414::619])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4950cc7e-1a1a-11f0-9eae-5ba50f476ded;
 Tue, 15 Apr 2025 18:54:26 +0200 (CEST)
Received: from SA9PR13CA0139.namprd13.prod.outlook.com (2603:10b6:806:27::24)
 by IA0PR12MB8208.namprd12.prod.outlook.com (2603:10b6:208:409::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.28; Tue, 15 Apr
 2025 16:54:21 +0000
Received: from SA2PEPF00003AEA.namprd02.prod.outlook.com
 (2603:10b6:806:27:cafe::8d) by SA9PR13CA0139.outlook.office365.com
 (2603:10b6:806:27::24) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.8 via Frontend Transport; Tue,
 15 Apr 2025 16:54:20 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 SA2PEPF00003AEA.mail.protection.outlook.com (10.167.248.10) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Tue, 15 Apr 2025 16:54:19 +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, 15 Apr
 2025 11:54:19 -0500
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, 15 Apr
 2025 11:54:18 -0500
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; Tue, 15 Apr 2025 11:54:17 -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: 4950cc7e-1a1a-11f0-9eae-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=syZ23NTL6y4I0x9XqAvnJPcm5dkHWvlTlK/Rx5vAyKAZ7VpCbj7QCsRDfTXkkNTGpqjd5JNzHCh37FUuIu5hNlIFrcNUTv5xebLh5DSFm6tmv4ksxrSjU2vp0/1IY9RH/eBuoicqzd2IP0OT31uWQfCLKTQ86u6AXDkKIpyOAKIHYwP9IKABxX4wPWht3fxpJtW37hgpvyQqruTn5hL/EpkAU3pVzy4adpsCeju2tdD5vKHPcTYerCUf8F81rQ1SrwJ0Cf+r+ebSNytySxbZ9wgCyUZ6xrWaoGl5SCWKze5Hhc7NWQYf6gXT0emChb+6bSbNQAIViswW9a/ssI2fVQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=/Jg9hhUpjJaodqTmnAIJsJFxnkbZD6cQdRZdDLYzRtU=;
 b=j08cXc9rvwuNSputnqOkytMhO4aPXBJWTRNqTix5Cbv/yAsWd4nmpRlGZrlWsskg7RCPgL2jFB9mpES20tUNXJzwVxgLVUnkt5lkLLZJLu/YvI499V2szO0DNIViAMkNprqy9TI9kM2Be4ff6zll2if81+XAwyecpNWDNaXyY5B7SzLioNBM7jM7oNeQKGqmKtEshoqQmNLryyB1Jz2fd9WaJtTNq0X/GxrL2ZFjADc6nV92je1PKyyNv77mmLT/e6Kc6qK+jhlUL/aUwGm7VG7xJJsS9+AFlJl0Ht1UJ+r37RYA81hiC8OY/ffCWx4cn9OYMEpY1p+Rbh4XOEhN4Q==
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=/Jg9hhUpjJaodqTmnAIJsJFxnkbZD6cQdRZdDLYzRtU=;
 b=Zb3d9K2z62qkoG7HSQgsI9+nBuuiO/raqPeUM7Aw0XeFQ4VU2/oa4JvnWcqlUsbQug+iwi8FXRFlzyHY+Stxr1ibHJsA+sWOoOTk9GXOqLPSs0SLYUDy83aWxtNDxqupIrd9ya/StOi5nw8iA/ahfnk7f1twE5outRt/OLnwXT8=
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>, 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>, Julien Grall <jgrall@amazon.com>
Subject: [PATCH v19 1/3] xen/arm: check read handler behavior
Date: Tue, 15 Apr 2025 12:54:00 -0400
Message-ID: <20250415165404.435506-2-stewart.hildebrand@amd.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250415165404.435506-1-stewart.hildebrand@amd.com>
References: <20250415165404.435506-1-stewart.hildebrand@amd.com>
MIME-Version: 1.0
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: SA2PEPF00003AEA:EE_|IA0PR12MB8208:EE_
X-MS-Office365-Filtering-Correlation-Id: 0a1008eb-28c8-4565-fd28-08dd7c3e2a4a
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|36860700013|82310400026|13003099007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?dGk4dm16bFJpcUhqWGdldEJ5Z3RjckZQNzVsdUFTTzdSa29QYVNjbGRqYUFW?=
 =?utf-8?B?RDdERURBVklXRERKdzhrR2UrdTlYYUh2SktxSkJ6MXJ3bE9KSWpValRiY3lp?=
 =?utf-8?B?a3hpVTI3RzNXYlFLdjBkOU8zVmlLVEdINENiSUpQekxmb25uRVE0SGt1R2ha?=
 =?utf-8?B?b3NrQS84Z3BuNkJGZzZxQ1JJclI2TStxZG44L2V1dEJPd0tCWjZsa3RDRU9k?=
 =?utf-8?B?RUVuNS9JNHZxdEtYcUgxNjY3RVU5YzY2ajNnR3RsRlRQMU9wblFTa2FZeTRO?=
 =?utf-8?B?V0NZOXZNN2pOa3d0TGIrelIxaGpKUDBWZng3L3U3VzBzQ1R4c0w1Q1hNMjMv?=
 =?utf-8?B?N3M5bVdic1VoVXg1ZFFuUFB4eE9ZV1M4RjgvVGwvUUFkNW5zYW80VGpid0lI?=
 =?utf-8?B?YjdFVEg0eHhWbTIvMXJBUHBvOWJpd1VUem9kWU1BU0duQmZNdnBMSUpvTnRv?=
 =?utf-8?B?VDZPdXllQVRwczlHTG1VWDFyNTIzZGxSMTh4UGZRdGF2bjN5MmRlMU1JWGlD?=
 =?utf-8?B?YTVWZ1dBeC9Pdnpha0VhNjV2NjVLR0FJMGdQdzlsTmJpVDJYeEsyOXVtby85?=
 =?utf-8?B?b3FQOHpTdXVUQzhwUWo0a1ozN2RDVEpCMzBzeWt3RUNRN3ByMmp5Rll4R1BS?=
 =?utf-8?B?QkJ5WU92VXF6SHRFRnArMUx4Ly9SZWtNZUk0T29WUUpsQ082a0JtUmg3ZzBn?=
 =?utf-8?B?d2gzYWR5Q0loSDJtdUlqQ00xRHgwQjZkSEI2bkd1dmdvaVdCTzNvM0VQajhw?=
 =?utf-8?B?UmE1cHhFTGNIUzFITnpDbktDUWpUNDVvK0pvc2x4dTdWc1c3TGVSSTluTXQz?=
 =?utf-8?B?YWF5MGFSUTVSOEN2QXp1dk44enJqVmZwZnRxdWRVYlU5aFhPR0paODBiL1JU?=
 =?utf-8?B?K1BMR3VQOHFtL085VlpBS2pVZ3VzV3E2c2F2ZEppNEtuUkdRMzMwaGJKWXFG?=
 =?utf-8?B?QTkvbFBSTmJSemdyZjAyMm9aMzJsV1pManhGWk9VSW54S0pQVkxJbVdPdWI4?=
 =?utf-8?B?QmlYZnFvME94bVBqYUVLZEVSRUowS282SjdHYXBEYm9xVG1ybDZEalZ6MWFp?=
 =?utf-8?B?TTRhY2RGQVUvMTNDVW1qNVNza3NrbHZnRmtLR09Za2tXOFJ0TWNjOC90M3Jq?=
 =?utf-8?B?U0N4c1A1ajRGVS9ncnlaNzNzSXZxT2pmTTY0RUNQYkhPWm5NRjNKL3JHcmNG?=
 =?utf-8?B?Zk1XcTJlR2M5d1Z4RG11bncxYS9JUjBMenpzZUpqWXhmLzhtUVN6U0dkYjND?=
 =?utf-8?B?RE05VXB3NFlteXRNSnhOYzk0dFdCTVlNMjRGLzcwOWN1Q3BXMFkvclF3OS9m?=
 =?utf-8?B?UkFQSnlIaDNGVDJTZi91RTZBZCsvME5iYm9TVDdOSUlpSk92MnFuK0NHdHRN?=
 =?utf-8?B?Ky9EUGFIeTBzRnRDZlhlNU03TWpVd0VHK2Rna0oycERsamljR1V4bWtJSGRw?=
 =?utf-8?B?ODMrdU9kZDBZcnVDWFNBbzE5NG9PVExZeXVVaDRVNDVTd1ZwUUFQMVdNZjJE?=
 =?utf-8?B?L3lMMlBRa0JyQ0E0WG03UUZlK1hLZzZZUU9kcE9RelFLZ0xXVWt5M1NCSGVW?=
 =?utf-8?B?MkpnNk1CRjFocGlEc0syNXl6d3ZhVGpwQm15ZVNZWit5dVY4R0NpR3QrdGpK?=
 =?utf-8?B?bXRNOVFUWUhsSHpkZmhRbW1OcTBYYUZJTTFLZCtXK2ZKYmdJQWpOWGdiTGdy?=
 =?utf-8?B?S2xpSGVueGpUL21WWjVnYXBrM1doYTNJR0VFSFo4dXhwYk5LOVRCVHljV0Zs?=
 =?utf-8?B?bXI0ai9zT0FKRGJaRW5vVEJ1UGNTWVlCaVpEOXhZelZJbXVRQ3JEWGNyWkk5?=
 =?utf-8?B?RnQwZ2xIazUzSVlTaWRsdzhoYUFXdktmaFk2OEplUUl5R0hlZ0hrSXRkSkpY?=
 =?utf-8?B?SlJyNll5NjBLSHpzL0JNdk1neVVlMHZsR2JCN0t1Q2lYL1YwRVg0UURIa3g0?=
 =?utf-8?B?UDBvaSs1b000N09iK0JGUkhqWVZKcFlIaFVZZFZxMk52VG95WUdpSFdNSnIz?=
 =?utf-8?B?dVJyeWhzOGtqckd4c2hzWmVyNXc2aWZBYUg3ZVVXRnJ5YnQ5NmpOWHJlQWRp?=
 =?utf-8?B?Q3hDUlBXRmd0KzJmZWU3SmZIKys4d3hvMHRRdz09?=
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)(13003099007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Apr 2025 16:54:19.5227
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 0a1008eb-28c8-4565-fd28-08dd7c3e2a4a
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:
	SA2PEPF00003AEA.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PR12MB8208

We expect mmio read handlers to leave the bits above the access size
zeroed. Add an ASSERT to check this aspect of read handler behavior.

Suggested-by: Roger Pau Monné <roger.pau@citrix.com>
Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
Acked-by: Julien Grall <jgrall@amazon.com>
---
There's no need to wait for the rest of the series to commit this patch.

v18->v19:
* add Julien's A-b
* s/GENMASK_ULL/GENMASK/

v17->v18:
* no change

v16->v17:
* new patch

See https://lore.kernel.org/xen-devel/bc6660ef-59f1-4514-9792-067d987e3fbc@xen.org/

Also see 7db7bd0f319f ("arm/vpci: honor access size when returning an error")

Also see xen/arch/arm/ioreq.c:handle_ioserv()
---
 xen/arch/arm/io.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/xen/arch/arm/io.c b/xen/arch/arm/io.c
index 653428e16c1f..5a4b0e8f25c6 100644
--- a/xen/arch/arm/io.c
+++ b/xen/arch/arm/io.c
@@ -37,6 +37,8 @@ static enum io_state handle_read(const struct mmio_handler *handler,
     if ( !handler->ops->read(v, info, &r, handler->priv) )
         return IO_ABORT;
 
+    ASSERT((r & ~GENMASK((1U << info->dabt.size) * 8 - 1, 0)) == 0);
+
     r = sign_extend(dabt, r);
 
     set_user_reg(regs, dabt.reg, r);
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 15 16:54:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 16:54:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.954255.1348572 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4jYT-0007cy-Ok; Tue, 15 Apr 2025 16:54:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 954255.1348572; Tue, 15 Apr 2025 16:54:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4jYT-0007cj-KS; Tue, 15 Apr 2025 16:54:37 +0000
Received: by outflank-mailman (input) for mailman id 954255;
 Tue, 15 Apr 2025 16:54:36 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=o4sU=XB=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1u4jYS-000730-DZ
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 16:54:36 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on2061b.outbound.protection.outlook.com
 [2a01:111:f403:2415::61b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4de18b9c-1a1a-11f0-9ffb-bf95429c2676;
 Tue, 15 Apr 2025 18:54:33 +0200 (CEST)
Received: from SA9PR13CA0063.namprd13.prod.outlook.com (2603:10b6:806:23::8)
 by SJ2PR12MB8111.namprd12.prod.outlook.com (2603:10b6:a03:4fe::17) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.33; Tue, 15 Apr
 2025 16:54:27 +0000
Received: from SA2PEPF00003F62.namprd04.prod.outlook.com
 (2603:10b6:806:23:cafe::5d) by SA9PR13CA0063.outlook.office365.com
 (2603:10b6:806:23::8) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.8 via Frontend Transport; Tue,
 15 Apr 2025 16:54:26 +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.8655.12 via Frontend Transport; Tue, 15 Apr 2025 16:54:26 +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, 15 Apr
 2025 11:54:25 -0500
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; Tue, 15 Apr 2025 11:54:24 -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: 4de18b9c-1a1a-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=RrPVFxXMyhlGAOR9Gb69ZZsrpBZlqYovLm8bqDxv1nmSnMJ18R4DIJ4c9khnlptUR1qhCiuUqRvwFN1yn5GU5sFyZQ2E3OCp5jlcUPSyvgd2r6hseWusVo8I5YKOGOXTeZ7eZ+6VEMK9N2U1dKCxOLUkVQY1Zge/6p4HFMx43WPv6D+oANFIXstigUYTlf9yevehLBE0w1UUGHJNG2z7pG2KGoLMiltKoFK7k2RLspszwKRGBRja2/PhqF0i0KW/Av5UHcDrZf3fDt0dzSkku8k030EOz47Wr4w1zTqDBHicAgctjQZ8Ka0gitCph6udg9TpsDmhdJK5N7deKEhUFg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=lx8Lph3IBrxQ9Lis7LuGMBrvW2qwScDxY+y3wh5OujI=;
 b=nQZybeLSv/5B/tJIEXAR+7nriVjt1VuqVjTKRs8CTzA+0GAIYzgAEOC2mZ5KM6YRgEnv13M6TAqewtHHy+elM0ba9oz6SaBDmxiEgTRu0F+TzNzTPCM3qq49/Fd9ecwD4Nlf+iNxOeKHTqIdxW+eMfp8N+WivxdvOjpxrkqHKS0D0f/huAzOOYUVFx3Y+fPmL9faTrM74//TnTyMyooJWAqNUwSf1Mvu0nOl5eiLWD0oiH0gSsglqSS46RjaC/6WO9lAaRwu+kr1i4zKnaTAJZEQABUrFPU+gnj8/gZD6GBzJFYVUAd5gbSr/78lDE2fBT54Mld3W/yyEGKb3oNsyw==
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=lx8Lph3IBrxQ9Lis7LuGMBrvW2qwScDxY+y3wh5OujI=;
 b=C6DUw6ocaOU1jF1zqWI4m9M2i9ZAMDDN0Dqk3l55PHtQUSXTpTcp8yd87Ly8OA1gkiQoTSSa5DZ66xmrwtlzhfZtKZ/1AR18I9VxQ7CkXHldHC2nUvEePovC5Kbz8k1V35YZBK/TNCcCVX4nZrr0tSMZWmN4scvTP3wl1QYWigI=
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>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, "Volodymyr
 Babchuk" <Volodymyr_Babchuk@epam.com>, Jan Beulich <jbeulich@suse.com>,
	"Andrew Cooper" <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v19 2/3] vpci: acquire d->pci_lock in I/O handlers
Date: Tue, 15 Apr 2025 12:54:01 -0400
Message-ID: <20250415165404.435506-3-stewart.hildebrand@amd.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250415165404.435506-1-stewart.hildebrand@amd.com>
References: <20250415165404.435506-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: SA2PEPF00003F62:EE_|SJ2PR12MB8111:EE_
X-MS-Office365-Filtering-Correlation-Id: 73326c69-9d9f-4d93-2fd3-08dd7c3e2e39
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|36860700013|1800799024|376014;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?i6pABr/1b1Z/g4vRU4M7tkhg6LKZ5suazYTELTGCf19XSUUMqQ1fBlFg3CMD?=
 =?us-ascii?Q?Shrc7Mpg5M4mwNgaP4SbLeYdEPXJaH5H6Xbsvx4TxUHdoo05hTs/CvnyhZxX?=
 =?us-ascii?Q?P7xanu5Rif2+81ASfPcD8VC69OZStB+zm+gvi8cVLmHtwpzUnt3KKi8ssyho?=
 =?us-ascii?Q?DbZZZnz6omJMW+qd8dAoM42DJ3kizZbNBHwQvmMPz/WkmMNym4FDjoVQzROW?=
 =?us-ascii?Q?6m7fjqUyn1p0+HYfHCs19O1gpTUSEr/QMofNbBHIFKj2qi6YHuOo5ETqZlTI?=
 =?us-ascii?Q?q7mzcSnHd/GpRaJWdeNdlJSlPimJNBlAn8GzgWvn/7Evx5IkzODTfNtUHfw+?=
 =?us-ascii?Q?z7PLY4fhqpbngHeihiBcv512tYiOeU83VRK5atDJmPY0WUUTLdZiL7gkY2Ov?=
 =?us-ascii?Q?TQWKUvIRDjr6yOpxafZXy59I1uFP0uUdWwq4uBrYkf87O5EruhQyqjFeLdQd?=
 =?us-ascii?Q?AsAPwA0TQYIsJGurQEv5dfGkh3DyphTNj5w3UpAGIUT30UtVp8+bOJad0f6I?=
 =?us-ascii?Q?nux63JTdbTPBkMUll2Ryvfgw5zwhnH46vU0qzYzkBXqWC7LbpGrrGcHs1V1G?=
 =?us-ascii?Q?8y4Ren666vI5WQCeWBXJtomIIviSLuzjap2ps84wT0atmRg8ghBUCl2Mt+lP?=
 =?us-ascii?Q?H5KYsiE1CUx/U1D+ooCr8P3h50yjJt2983F6NfeCvWMX00sRdYBj1vLFtPid?=
 =?us-ascii?Q?TLVLqGQ/96E9zJ7r2VMUMH/uGXKdk0i23TEhDM6eKX5rL/iS+mXgpLC7Zwd/?=
 =?us-ascii?Q?rUgamBYL+GjVTpBH5q0dczkmHpfoUIIBlyjbkZxaNTl3sMXFeW7VmvqK+u0N?=
 =?us-ascii?Q?lmJNg86wyVDykYtbdw9LbGViYKfUsP1CpFZgR7obQBmdfO+8uHfPAoGWo5Z4?=
 =?us-ascii?Q?o03k3XLFwIlctm83DytpxVa40UWqBxzWq48B2mlpXcid6tA3MahLo/yjLNnp?=
 =?us-ascii?Q?bv4FewaSVe5xKc4/LH6JRfaq9RjquGrLDU7ao+ZOOwW0ZoHmPiyx0rxefN3X?=
 =?us-ascii?Q?djtVcbSM/FAvBaqYlUy5cUoiCVfcdhKG0u8R5CNo2rXjOdsmSrEW8ZhsQQu6?=
 =?us-ascii?Q?pMjfZic/VJpYG8dIWeZwtTvwqt26HvCvkz1FOw6P4HINNXN5C9HTMUVwrDDX?=
 =?us-ascii?Q?sUvh/IVmyguVLxcPTKvCx/U78kxFWrpAz6G3M2LkA7xoeZc263ze6CY4GzKv?=
 =?us-ascii?Q?T1dQ+9jGoslJcb3aR9dnoEy64RykCAC0QnG+EhGZsmSJdNyPGgNVkioYiBGp?=
 =?us-ascii?Q?lNFJW19J1JyjstR3F2+mWCXRt9ybRr1K2BH1xkAsL1ca41YLreC0mmIFFOif?=
 =?us-ascii?Q?xs61VL4qXLqLxtbe6GzZwj2BU5BCncePCIBdQmHmEMjzpAT3OC3DBWgV4jLi?=
 =?us-ascii?Q?28qlvcEk0/w0FQf9tvABq6X7nzXysktHBA7z9KfiwnzFo8Io233qP4wWgPuN?=
 =?us-ascii?Q?aysW1b4VQTwVsifb7fBCNDrhaE+UozTWqXjkKQ38IbtqipPIbZQ5VOcqp5wt?=
 =?us-ascii?Q?vMklnNC0m+iKFwEosIf/zTkUxMUdM1vHfphZ?=
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)(1800799024)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Apr 2025 16:54:26.1013
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 73326c69-9d9f-4d93-2fd3-08dd7c3e2e39
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: SJ2PR12MB8111

In preparation for translating virtual PCI bus topology (where a pdev
lookup will be needed in the vPCI I/O handlers), acquire d->pci_lock in
the vPCI I/O handlers.

While here, adjust indentation in vpci_ecam_{read,write}.

Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
---
v18->v19:
* new patch

While the current patch series focus is Arm, this is also prerequisite
for eventually enabling x86 PVH domU passthrough. Similar to Arm, a call
to vpci_translate_virtual_device() would be added in
xen/arch/x86/hvm/io.c:vpci_portio_{read,write} and
vpci_mmcfg_{read,write}.
---
 xen/arch/arm/vpci.c     | 11 +++++++++--
 xen/arch/x86/hvm/io.c   | 10 +++++++++-
 xen/drivers/vpci/vpci.c | 21 ++++++++++-----------
 3 files changed, 28 insertions(+), 14 deletions(-)

diff --git a/xen/arch/arm/vpci.c b/xen/arch/arm/vpci.c
index b63a356bb4a8..828c5c745bd9 100644
--- a/xen/arch/arm/vpci.c
+++ b/xen/arch/arm/vpci.c
@@ -34,15 +34,18 @@ static int vpci_mmio_read(struct vcpu *v, mmio_info_t *info,
     /* data is needed to prevent a pointer cast on 32bit */
     unsigned long data;
 
+    read_lock(&v->domain->pci_lock);
     if ( vpci_ecam_read(sbdf, ECAM_REG_OFFSET(info->gpa),
                         1U << info->dabt.size, &data) )
     {
         *r = data;
+        read_unlock(&v->domain->pci_lock);
         return 1;
     }
 
     *r = invalid;
 
+    read_unlock(&v->domain->pci_lock);
     return 0;
 }
 
@@ -51,9 +54,13 @@ static int vpci_mmio_write(struct vcpu *v, mmio_info_t *info,
 {
     struct pci_host_bridge *bridge = p;
     pci_sbdf_t sbdf = vpci_sbdf_from_gpa(bridge, info->gpa);
+    int ret;
 
-    return vpci_ecam_write(sbdf, ECAM_REG_OFFSET(info->gpa),
-                           1U << info->dabt.size, r);
+    write_lock(&v->domain->pci_lock);
+    ret = vpci_ecam_write(sbdf, ECAM_REG_OFFSET(info->gpa),
+                          1U << info->dabt.size, r);
+    write_unlock(&v->domain->pci_lock);
+    return ret;
 }
 
 static const struct mmio_handler_ops vpci_mmio_handler = {
diff --git a/xen/arch/x86/hvm/io.c b/xen/arch/x86/hvm/io.c
index de6ee6c4dd4d..0b9036528abe 100644
--- a/xen/arch/x86/hvm/io.c
+++ b/xen/arch/x86/hvm/io.c
@@ -261,7 +261,7 @@ static int cf_check vpci_portio_read(
     const struct hvm_io_handler *handler, uint64_t addr, uint32_t size,
     uint64_t *data)
 {
-    const struct domain *d = current->domain;
+    struct domain *d = current->domain;
     unsigned int reg;
     pci_sbdf_t sbdf;
     uint32_t cf8;
@@ -285,7 +285,9 @@ static int cf_check vpci_portio_read(
     if ( !vpci_access_allowed(reg, size) )
         return X86EMUL_OKAY;
 
+    read_lock(&d->pci_lock);
     *data = vpci_read(sbdf, reg, size);
+    read_unlock(&d->pci_lock);
 
     return X86EMUL_OKAY;
 }
@@ -316,7 +318,9 @@ static int cf_check vpci_portio_write(
     if ( !vpci_access_allowed(reg, size) )
         return X86EMUL_OKAY;
 
+    write_lock(&d->pci_lock);
     vpci_write(sbdf, reg, size, data);
+    write_unlock(&d->pci_lock);
 
     return X86EMUL_OKAY;
 }
@@ -424,7 +428,9 @@ static int cf_check vpci_mmcfg_read(
     read_unlock(&d->arch.hvm.mmcfg_lock);
 
     /* Failed reads are not propagated to the caller */
+    read_lock(&d->pci_lock);
     vpci_ecam_read(sbdf, reg, len, data);
+    read_unlock(&d->pci_lock);
 
     return X86EMUL_OKAY;
 }
@@ -449,7 +455,9 @@ static int cf_check vpci_mmcfg_write(
     read_unlock(&d->arch.hvm.mmcfg_lock);
 
     /* Failed writes are not propagated to the caller */
+    write_lock(&d->pci_lock);
     vpci_ecam_write(sbdf, reg, len, data);
+    write_unlock(&d->pci_lock);
 
     return X86EMUL_OKAY;
 }
diff --git a/xen/drivers/vpci/vpci.c b/xen/drivers/vpci/vpci.c
index 1e6aa5d799b9..d01fb7be226a 100644
--- a/xen/drivers/vpci/vpci.c
+++ b/xen/drivers/vpci/vpci.c
@@ -440,6 +440,8 @@ uint32_t vpci_read(pci_sbdf_t sbdf, unsigned int reg, unsigned int size)
     unsigned int data_offset = 0;
     uint32_t data = ~(uint32_t)0;
 
+    ASSERT(rw_is_locked(&d->pci_lock));
+
     if ( !size )
     {
         ASSERT_UNREACHABLE();
@@ -452,15 +454,11 @@ uint32_t vpci_read(pci_sbdf_t sbdf, unsigned int reg, unsigned int size)
      * If this is hwdom and the device is assigned to DomXEN, acquiring hwdom's
      * pci_lock is sufficient.
      */
-    read_lock(&d->pci_lock);
     pdev = pci_get_pdev(d, sbdf);
     if ( !pdev && is_hardware_domain(d) )
         pdev = pci_get_pdev(dom_xen, sbdf);
     if ( !pdev || !pdev->vpci )
-    {
-        read_unlock(&d->pci_lock);
         return vpci_read_hw(sbdf, reg, size);
-    }
 
     spin_lock(&pdev->vpci->lock);
 
@@ -507,7 +505,6 @@ uint32_t vpci_read(pci_sbdf_t sbdf, unsigned int reg, unsigned int size)
         ASSERT(data_offset < size);
     }
     spin_unlock(&pdev->vpci->lock);
-    read_unlock(&d->pci_lock);
 
     if ( data_offset < size )
     {
@@ -555,6 +552,8 @@ void vpci_write(pci_sbdf_t sbdf, unsigned int reg, unsigned int size,
     const struct vpci_register *r;
     unsigned int data_offset = 0;
 
+    ASSERT(rw_is_write_locked(&d->pci_lock));
+
     if ( !size )
     {
         ASSERT_UNREACHABLE();
@@ -570,7 +569,6 @@ void vpci_write(pci_sbdf_t sbdf, unsigned int reg, unsigned int size,
      * TODO: We need to take pci_locks in exclusive mode only if we
      * are modifying BARs, so there is a room for improvement.
      */
-    write_lock(&d->pci_lock);
     pdev = pci_get_pdev(d, sbdf);
     if ( !pdev && is_hardware_domain(d) )
         pdev = pci_get_pdev(dom_xen, sbdf);
@@ -579,8 +577,6 @@ void vpci_write(pci_sbdf_t sbdf, unsigned int reg, unsigned int size,
         /* Ignore writes to read-only devices, which have no ->vpci. */
         const unsigned long *ro_map = pci_get_ro_map(sbdf.seg);
 
-        write_unlock(&d->pci_lock);
-
         if ( !ro_map || !test_bit(sbdf.bdf, ro_map) )
             vpci_write_hw(sbdf, reg, size, data);
         return;
@@ -622,7 +618,6 @@ void vpci_write(pci_sbdf_t sbdf, unsigned int reg, unsigned int size,
         ASSERT(data_offset < size);
     }
     spin_unlock(&pdev->vpci->lock);
-    write_unlock(&d->pci_lock);
 
     if ( data_offset < size )
         /* Tailing gap, write the remaining. */
@@ -651,8 +646,10 @@ bool vpci_access_allowed(unsigned int reg, unsigned int len)
 }
 
 bool vpci_ecam_write(pci_sbdf_t sbdf, unsigned int reg, unsigned int len,
-                         unsigned long data)
+                     unsigned long data)
 {
+    ASSERT(rw_is_write_locked(&current->domain->pci_lock));
+
     if ( !vpci_access_allowed(reg, len) ||
          (reg + len) > PCI_CFG_SPACE_EXP_SIZE )
         return false;
@@ -667,8 +664,10 @@ bool vpci_ecam_write(pci_sbdf_t sbdf, unsigned int reg, unsigned int len,
 }
 
 bool vpci_ecam_read(pci_sbdf_t sbdf, unsigned int reg, unsigned int len,
-                        unsigned long *data)
+                    unsigned long *data)
 {
+    ASSERT(rw_is_locked(&current->domain->pci_lock));
+
     if ( !vpci_access_allowed(reg, len) ||
          (reg + len) > PCI_CFG_SPACE_EXP_SIZE )
         return false;
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 15 16:54:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 16:54:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.954267.1348582 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4jYc-00084l-VC; Tue, 15 Apr 2025 16:54:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 954267.1348582; Tue, 15 Apr 2025 16:54: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 1u4jYc-00084e-SP; Tue, 15 Apr 2025 16:54:46 +0000
Received: by outflank-mailman (input) for mailman id 954267;
 Tue, 15 Apr 2025 16:54: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=o4sU=XB=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1u4jYb-0007HS-KE
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 16:54:45 +0000
Received: from NAM10-BN7-obe.outbound.protection.outlook.com
 (mail-bn7nam10on20617.outbound.protection.outlook.com
 [2a01:111:f403:2009::617])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 54880476-1a1a-11f0-9eae-5ba50f476ded;
 Tue, 15 Apr 2025 18:54:44 +0200 (CEST)
Received: from SA0PR11CA0173.namprd11.prod.outlook.com (2603:10b6:806:1bb::28)
 by IA1PR12MB8334.namprd12.prod.outlook.com (2603:10b6:208:3ff::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.32; Tue, 15 Apr
 2025 16:54:38 +0000
Received: from SA2PEPF00003AE8.namprd02.prod.outlook.com
 (2603:10b6:806:1bb:cafe::98) by SA0PR11CA0173.outlook.office365.com
 (2603:10b6:806:1bb::28) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.35 via Frontend Transport; Tue,
 15 Apr 2025 16:54:38 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 SA2PEPF00003AE8.mail.protection.outlook.com (10.167.248.8) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Tue, 15 Apr 2025 16:54:37 +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, 15 Apr
 2025 11:54:37 -0500
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; Tue, 15 Apr 2025 11:54:30 -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: 54880476-1a1a-11f0-9eae-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=yOjIL0vjNWzA2sp2aKIIhNrCE6W2JvEbMKXDqHo8CoRuHYAClnopsdxN8VSply5V9l9GBhnT5qKEZa//e1b6BJ4yyC2iBm0hY47bSE2ZilU5D9zOXy+7/UU6EDiT7rZ8KPfNk61vMQhmtfEcwk0lDikPAGb5MYcAVlLFHgxD+76ptXzT6nJizdgNoPOpad3vF818BSUW0gGTGVYRs5pgZkJ0hHIu4/s6XnJOKSDIQfCFR6ih8t9eNlxkQO8XXLuTxixC3yU7MkPVnoblRkuGkTmJEkejXB7NoX5mv/3YWkxdVrHc1rVLGRJxGCO6ou0lmOSVSMKTCW5r7VZMh2Qv0Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=A1iExg8Gsendz7+/1VoCc6vWAZqFmtQSh/yRMxQ2Fik=;
 b=mefPqsvSfbO8R8sFLHaZr/2FFBTHHviupPPr+fgGxm+OsOToJJvuPhs9i/bW461Ij1hkRxZEp//syvrrLi0cSem4vP0tm7TXlA0Pd3s41MCBNhI2W1M4TtGRskHUbMmUHo/eMelNXOBhnx8bQP5ChpVVx9Wpe0Jj2oRE72XhyqAIsngwXDCOWsdI3PnLtHuLUGN8bQm9evshiQoNGrqoexIzYwu5YFG01OIQOyC/LUBVCwi5pxdN3WIuwAkNImN0XNbE7PKTvZ4yo6xI2VoPuttPLNBtFM2q+JQjfWKNcGCzeHsL8rJewx1BA/XXsAl91nzU3g0BR1HeozM6gEA3pA==
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=A1iExg8Gsendz7+/1VoCc6vWAZqFmtQSh/yRMxQ2Fik=;
 b=cC7yDQnPwD/BT8usXS0oBFs1aMz0wZIU0AadwRQXqu3rHRS99Sm5NAd39fNmjZT8y+8EXSovkK6ZoTjj/MydEzjeQNSGYLMEuumL4YQhHbLERU/d+LUIoi7O4x80VyBEAInS7VRm6CV2UhEgVms7yuei+gniYi/bjVbOcGX3HAQ=
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: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, "Stewart
 Hildebrand" <stewart.hildebrand@amd.com>, Anthony PERARD
	<anthony.perard@vates.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>, Jiqian Chen <Jiqian.Chen@amd.com>, "Mykyta
 Poturai" <Mykyta_Poturai@epam.com>, Volodymyr Babchuk
	<volodymyr_babchuk@epam.com>
Subject: [PATCH v19 3/3] xen/arm: translate virtual PCI bus topology for guests
Date: Tue, 15 Apr 2025 12:54:02 -0400
Message-ID: <20250415165404.435506-4-stewart.hildebrand@amd.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250415165404.435506-1-stewart.hildebrand@amd.com>
References: <20250415165404.435506-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: SA2PEPF00003AE8:EE_|IA1PR12MB8334:EE_
X-MS-Office365-Filtering-Correlation-Id: f152c857-d021-435e-eb27-08dd7c3e353f
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?dEBmHxlwiQtcFcJfEm2NriDkorDs72F/Gu/VUBxUIANYCNBhB5u1X5uP22C9?=
 =?us-ascii?Q?f+z0OLREHvgAtzbNNrSyhgEYWh+5XEOzKeV9ZFjfFFj5zGNKuZ8yqkwbsrNf?=
 =?us-ascii?Q?re4Zhe2358Y1u6sCRaSzn/23vx2zNqDPHmOSTfyUAloX6xiRVkwvi5tQTm18?=
 =?us-ascii?Q?f92jVsOVP9AA2yC0mXuw3zMzWiCwLpzk3TgSePb1mS02pgTBPcQ+13I+Q1pU?=
 =?us-ascii?Q?FM75rUvw3x09B3YOnSiljWV2YPmO8ax6MZjYzP1+JyatW2p9uUjS72tqhauO?=
 =?us-ascii?Q?PXqmIl0SPysxJQWyRlbpYi+qFlLzX4sA5QEhYMkMnlsaUI2hy2os71Kc9BVF?=
 =?us-ascii?Q?ymb70vBu0NomoXpKCOi/+OmlA+huH3fhJgzVfSz1uAyUPr7WCq9tqk/gzEwi?=
 =?us-ascii?Q?cfBdY1JVUi4TU4qO9DlxJsr1Cleza9ut5o17XnavFm6QEQlnJ1u4I6etHTe2?=
 =?us-ascii?Q?mxZlJWz1VdJ9v316b61Xtjt6uEXKfiKQXH2DQl9HTYmwq9GswHewX3+9SmUX?=
 =?us-ascii?Q?cwyq0T4xpWQOAL3KR+r3Khq1W99Q/qiJXaDtVFq5/Wem5SD+6MHm07mSErI1?=
 =?us-ascii?Q?jJ3VLbLqWa4Dq54S2pgeVCa3O9phjLt4dTB8YX6jZFrDSZIIZ9QTVpsN9guB?=
 =?us-ascii?Q?cvsPSqD4ZYEspn4kxCa7NBmQCFYw9lo2xWfBas1K8UpBFhcO2t5Wr/hJzIK+?=
 =?us-ascii?Q?gmzFJ8X8FJCd5wSAMpoWN+Ta62/+d90M8Kh3K7AcB30gtN4VdBYRaTKY1Svd?=
 =?us-ascii?Q?moZohmYy5Ot58kCXrGuNhsasNMfzZNlkrKyN8aKJhF/QFS/RedYCcRKaoipk?=
 =?us-ascii?Q?hu3/v56iODe1YKJX2AIoTUmiIPAkCfqEQJRQUura0xnzOFdo+ybisyjNDuyB?=
 =?us-ascii?Q?7dIm2vap6W2GLFcvmW+A0EnwdT94Pyzu5nayLgm9s2Ew4QHP7MgeCfe0bplg?=
 =?us-ascii?Q?dI+V99y2i97lgyNaPqhB90UBdoQEu9IgaxSwwQOmJWlHNnQrgBe8dEPJPQNJ?=
 =?us-ascii?Q?QmpIJH5YmHlzZ3w5+PS6cRxLFvSkEZGZWj2hoqI2d8I2HQ2emQf/F4kUIVhN?=
 =?us-ascii?Q?8VfIHZwgIQ2tsk3JHl0aMvap8bB8tfA65XgWlBv+YOd6haNoZPNBB29H/ETX?=
 =?us-ascii?Q?vq1EHv08R4N6SHhLoJe4bFGYI+luwCsKOs/TJ/DjiBIkjZ+3np1b0ByGDKw+?=
 =?us-ascii?Q?Xwe1CbBkI8RtcStFlhmwcQDDzklZJszPK+tM4mf9kse/c9m1+6mvF2ykFRla?=
 =?us-ascii?Q?Fx83AWXWq6PCBta4wNSe5NTs8bCSBl5O83+32NLX5etG5Rl4TYvJMZK1I1CD?=
 =?us-ascii?Q?0VnkVyX9R8do974lhxIA4BmdREto6NAehuo/r+XxFFgzrMI/lQy9ACIRAEd1?=
 =?us-ascii?Q?6igiCdivRTkkEk+Y1ZvXOF9VoS0HAcU01vX2AgF0z/46PfkEGKHyihoR63VS?=
 =?us-ascii?Q?zGxLyNqYw/s7HQM89o3VuJKv0oMdRxYDHg0mBcZnHvAhb4KgFtwUomHuPan3?=
 =?us-ascii?Q?PgM2MJZStiRmilRblvqTLyCtAn/8L+itY2e9VBEXUAwSdb1hLep15qvI+g?=
 =?us-ascii?Q?=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)(376014)(1800799024)(36860700013)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Apr 2025 16:54:37.9051
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: f152c857-d021-435e-eb27-08dd7c3e353f
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:
	SA2PEPF00003AE8.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB8334

From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

There are three originators for the PCI configuration space access:
1. The domain that owns physical host bridge: MMIO handlers are
there so we can update vPCI register handlers with the values
written by the hardware domain, e.g. physical view of the registers
vs guest's view on the configuration space.
2. Guest access to the passed through PCI devices: we need to properly
map virtual bus topology to the physical one, e.g. pass the configuration
space access to the corresponding physical devices.
3. Emulated host PCI bridge access. It doesn't exist in the physical
topology, e.g. it can't be mapped to some physical host bridge.
So, all access to the host bridge itself needs to be trapped and
emulated.

Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
---
In v19:
* move locking to pre-patch
In v18:
* address warning in vpci test suite
In v17:
* move lock to inside vpci_translate_virtual_device()
* acks were previously given for Arm [0] and vPCI [1], but since it was
  two releases ago and the patch has changed, I didn't pick them up

[0] https://lore.kernel.org/xen-devel/4afe33f2-72e6-4755-98ce-d7f9da374e90@xen.org/
[1] https://lore.kernel.org/xen-devel/Zk70udmiriruMt0r@macbook/

In v15:
- base on top of ("arm/vpci: honor access size when returning an error")
In v11:
- Fixed format issues
- Added ASSERT_UNREACHABLE() to the dummy implementation of
vpci_translate_virtual_device()
- Moved variable in vpci_sbdf_from_gpa(), now it is easier to follow
the logic in the function
Since v9:
- Commend about required lock replaced with ASSERT()
- Style fixes
- call to vpci_translate_virtual_device folded into vpci_sbdf_from_gpa
Since v8:
- locks moved out of vpci_translate_virtual_device()
Since v6:
- add pcidevs locking to vpci_translate_virtual_device
- update wrt to the new locking scheme
Since v5:
- add vpci_translate_virtual_device for #ifndef CONFIG_HAS_VPCI_GUEST_SUPPORT
  case to simplify ifdefery
- add ASSERT(!is_hardware_domain(d)); to vpci_translate_virtual_device
- reset output register on failed virtual SBDF translation
Since v4:
- indentation fixes
- constify struct domain
- updated commit message
- updates to the new locking scheme (pdev->vpci_lock)
Since v3:
- revisit locking
- move code to vpci.c
Since v2:
 - pass struct domain instead of struct vcpu
 - constify arguments where possible
 - gate relevant code with CONFIG_HAS_VPCI_GUEST_SUPPORT
New in v2
---
 tools/tests/vpci/emul.h |  7 +++---
 xen/arch/arm/vpci.c     | 48 ++++++++++++++++++++++++++++++++---------
 xen/drivers/vpci/vpci.c | 24 +++++++++++++++++++++
 xen/include/xen/vpci.h  | 12 +++++++++++
 4 files changed, 78 insertions(+), 13 deletions(-)

diff --git a/tools/tests/vpci/emul.h b/tools/tests/vpci/emul.h
index da446bba86b4..d3b8978f948c 100644
--- a/tools/tests/vpci/emul.h
+++ b/tools/tests/vpci/emul.h
@@ -85,6 +85,10 @@ typedef union {
 } pci_sbdf_t;
 
 #define CONFIG_HAS_VPCI
+
+#define BUG() assert(0)
+#define ASSERT_UNREACHABLE() assert(0)
+
 #include "vpci.h"
 
 #define __hwdom_init
@@ -112,9 +116,6 @@ typedef union {
 
 #define PCI_CFG_SPACE_EXP_SIZE 4096
 
-#define BUG() assert(0)
-#define ASSERT_UNREACHABLE() assert(0)
-
 #endif
 
 /*
diff --git a/xen/arch/arm/vpci.c b/xen/arch/arm/vpci.c
index 828c5c745bd9..7bb77f9f9c80 100644
--- a/xen/arch/arm/vpci.c
+++ b/xen/arch/arm/vpci.c
@@ -7,34 +7,54 @@
 
 #include <asm/mmio.h>
 
-static pci_sbdf_t vpci_sbdf_from_gpa(const struct pci_host_bridge *bridge,
-                                     paddr_t gpa)
+static bool vpci_sbdf_from_gpa(struct domain *d,
+                               const struct pci_host_bridge *bridge,
+                               paddr_t gpa, pci_sbdf_t *sbdf)
 {
-    pci_sbdf_t sbdf;
+    bool translated = true;
+
+    ASSERT(sbdf);
+    ASSERT(rw_is_locked(&d->pci_lock));
 
     if ( bridge )
     {
-        sbdf.sbdf = VPCI_ECAM_BDF(gpa - bridge->cfg->phys_addr);
-        sbdf.seg = bridge->segment;
-        sbdf.bus += bridge->cfg->busn_start;
+        sbdf->sbdf = VPCI_ECAM_BDF(gpa - bridge->cfg->phys_addr);
+        sbdf->seg = bridge->segment;
+        sbdf->bus += bridge->cfg->busn_start;
     }
     else
-        sbdf.sbdf = VPCI_ECAM_BDF(gpa - GUEST_VPCI_ECAM_BASE);
+    {
+        /*
+         * For the passed through devices we need to map their virtual SBDF
+         * to the physical PCI device being passed through.
+         */
+        sbdf->sbdf = VPCI_ECAM_BDF(gpa - GUEST_VPCI_ECAM_BASE);
+        translated = vpci_translate_virtual_device(d, sbdf);
+    }
 
-    return sbdf;
+    return translated;
 }
 
 static int vpci_mmio_read(struct vcpu *v, mmio_info_t *info,
                           register_t *r, void *p)
 {
     struct pci_host_bridge *bridge = p;
-    pci_sbdf_t sbdf = vpci_sbdf_from_gpa(bridge, info->gpa);
+    pci_sbdf_t sbdf;
     const unsigned int access_size = (1U << info->dabt.size) * 8;
     const register_t invalid = GENMASK_ULL(access_size - 1, 0);
     /* data is needed to prevent a pointer cast on 32bit */
     unsigned long data;
 
+    ASSERT(!bridge == !is_hardware_domain(v->domain));
+
     read_lock(&v->domain->pci_lock);
+    if ( !vpci_sbdf_from_gpa(v->domain, bridge, info->gpa, &sbdf) )
+    {
+        *r = invalid;
+        read_unlock(&v->domain->pci_lock);
+        return 1;
+    }
+
     if ( vpci_ecam_read(sbdf, ECAM_REG_OFFSET(info->gpa),
                         1U << info->dabt.size, &data) )
     {
@@ -53,10 +73,18 @@ static int vpci_mmio_write(struct vcpu *v, mmio_info_t *info,
                            register_t r, void *p)
 {
     struct pci_host_bridge *bridge = p;
-    pci_sbdf_t sbdf = vpci_sbdf_from_gpa(bridge, info->gpa);
+    pci_sbdf_t sbdf;
     int ret;
 
+    ASSERT(!bridge == !is_hardware_domain(v->domain));
+
     write_lock(&v->domain->pci_lock);
+    if ( !vpci_sbdf_from_gpa(v->domain, bridge, info->gpa, &sbdf) )
+    {
+        write_unlock(&v->domain->pci_lock);
+        return 1;
+    }
+
     ret = vpci_ecam_write(sbdf, ECAM_REG_OFFSET(info->gpa),
                           1U << info->dabt.size, r);
     write_unlock(&v->domain->pci_lock);
diff --git a/xen/drivers/vpci/vpci.c b/xen/drivers/vpci/vpci.c
index d01fb7be226a..46e96518299e 100644
--- a/xen/drivers/vpci/vpci.c
+++ b/xen/drivers/vpci/vpci.c
@@ -81,6 +81,30 @@ static int assign_virtual_sbdf(struct pci_dev *pdev)
     return 0;
 }
 
+/*
+ * Find the physical device which is mapped to the virtual device
+ * and translate virtual SBDF to the physical one.
+ */
+bool vpci_translate_virtual_device(struct domain *d, pci_sbdf_t *sbdf)
+{
+    const struct pci_dev *pdev;
+
+    ASSERT(!is_hardware_domain(d));
+    ASSERT(rw_is_locked(&d->pci_lock));
+
+    for_each_pdev ( d, pdev )
+    {
+        if ( pdev->vpci && (pdev->vpci->guest_sbdf.sbdf == sbdf->sbdf) )
+        {
+            /* Replace guest SBDF with the physical one. */
+            *sbdf = pdev->sbdf;
+            return true;
+        }
+    }
+
+    return false;
+}
+
 #endif /* CONFIG_HAS_VPCI_GUEST_SUPPORT */
 
 void vpci_deassign_device(struct pci_dev *pdev)
diff --git a/xen/include/xen/vpci.h b/xen/include/xen/vpci.h
index 807401b2eaa2..e355329913ef 100644
--- a/xen/include/xen/vpci.h
+++ b/xen/include/xen/vpci.h
@@ -311,6 +311,18 @@ static inline int __must_check vpci_reset_device(struct pci_dev *pdev)
     return vpci_assign_device(pdev);
 }
 
+#ifdef CONFIG_HAS_VPCI_GUEST_SUPPORT
+bool vpci_translate_virtual_device(struct domain *d, pci_sbdf_t *sbdf);
+#else
+static inline bool vpci_translate_virtual_device(struct domain *d,
+                                                 pci_sbdf_t *sbdf)
+{
+    ASSERT_UNREACHABLE();
+
+    return false;
+}
+#endif
+
 #endif
 
 /*
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 15 17:07:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 17:07:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.954308.1348591 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4jkU-0002eR-3U; Tue, 15 Apr 2025 17:07:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 954308.1348591; Tue, 15 Apr 2025 17:07: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 1u4jkU-0002eK-0d; Tue, 15 Apr 2025 17:07:02 +0000
Received: by outflank-mailman (input) for mailman id 954308;
 Tue, 15 Apr 2025 17:07: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=pXMj=XB=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u4jkS-0002dv-3F
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 17:07:00 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0634e80a-1a1c-11f0-9ffb-bf95429c2676;
 Tue, 15 Apr 2025 19:06:52 +0200 (CEST)
Received: from [192.168.7.202] ([71.202.166.45]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53FH62kZ2924897
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NO);
 Tue, 15 Apr 2025 10:06:03 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0634e80a-1a1c-11f0-9ffb-bf95429c2676
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53FH62kZ2924897
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025032001; t=1744736765;
	bh=sYVoLqxhxOeFaKrerdeOEPvZqIzHi1P++Hlli5LIh8I=;
	h=Date:Subject:To:Cc:References:From:In-Reply-To:From;
	b=Oez1Mv79N+ydfKx6xAF2IhxGVRPH744Tz9xe/ds8eZLye00UTUDRQr+nmsg6htH8Z
	 dJIuHKFrlBSaQRmppmSoydyVEHWAjfH1LRFJ0tPi++p4djXQ9kM7L/FSKvPnLORy9O
	 uUA0vHWVGCFl199JsokZ7L10iZbM7X7Ji7p2HTVg+spStWMWLpkz8cGsabxNnk/v71
	 mi+bbMfyHnLXhRZT4cXYqQeTfaoVE0YRSX4FhgS+LxkUsGHFcsok+rlQcFZRI9JGGJ
	 rQO2cnYPosLU/30b5tFrYvNIfW1NsM6vvi8POkxKCS7u6Kww+QXA4xUcdjCMvTtfrj
	 HGOfFWfg60zNQ==
Message-ID: <c4fcb208-ee5d-4781-85ce-3b75e651d047@zytor.com>
Date: Tue, 15 Apr 2025 10:06:01 -0700
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH v1 10/15] KVM: VMX: Use WRMSRNS or its immediate form
 when available
To: "H. Peter Anvin" <hpa@zytor.com>, Jim Mattson <jmattson@google.com>,
        Sean Christopherson <seanjc@google.com>
Cc: linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org,
        linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
        linux-edac@vger.kernel.org, kvm@vger.kernel.org,
        xen-devel@lists.xenproject.org, linux-ide@vger.kernel.org,
        linux-pm@vger.kernel.org, bpf@vger.kernel.org, llvm@lists.linux.dev,
        tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, jgross@suse.com,
        andrew.cooper3@citrix.com, peterz@infradead.org, acme@kernel.org,
        namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, luto@kernel.org,
        boris.ostrovsky@oracle.com, kys@microsoft.com, haiyangz@microsoft.com,
        decui@microsoft.com
References: <20250331082251.3171276-1-xin@zytor.com>
 <20250331082251.3171276-11-xin@zytor.com> <Z_hTI8ywa3rTxFaz@google.com>
 <CALMp9eRJkzA2YXf1Dfxt3ONP+P9aTA=WPraOPJPJ6C6j677+6Q@mail.gmail.com>
 <fa16949e-7842-45f7-9715-1bdda13b762a@zytor.com>
 <EAB44BB2-99BB-4D4A-8306-0235D2931E72@zytor.com>
 <0cad1e0b-2bfd-4258-90cd-8d319bf0e74a@zytor.com>
 <D212FABE-38FE-45D3-A082-CA819CCFFF95@zytor.com>
Content-Language: en-US
From: Xin Li <xin@zytor.com>
Autocrypt: addr=xin@zytor.com; keydata=
 xsDNBGUPz1cBDACS/9yOJGojBFPxFt0OfTWuMl0uSgpwk37uRrFPTTLw4BaxhlFL0bjs6q+0
 2OfG34R+a0ZCuj5c9vggUMoOLdDyA7yPVAJU0OX6lqpg6z/kyQg3t4jvajG6aCgwSDx5Kzg5
 Rj3AXl8k2wb0jdqRB4RvaOPFiHNGgXCs5Pkux/qr0laeFIpzMKMootGa4kfURgPhRzUaM1vy
 bsMsL8vpJtGUmitrSqe5dVNBH00whLtPFM7IbzKURPUOkRRiusFAsw0a1ztCgoFczq6VfAVu
 raTye0L/VXwZd+aGi401V2tLsAHxxckRi9p3mc0jExPc60joK+aZPy6amwSCy5kAJ/AboYtY
 VmKIGKx1yx8POy6m+1lZ8C0q9b8eJ8kWPAR78PgT37FQWKYS1uAroG2wLdK7FiIEpPhCD+zH
 wlslo2ETbdKjrLIPNehQCOWrT32k8vFNEMLP5G/mmjfNj5sEf3IOKgMTMVl9AFjsINLHcxEQ
 6T8nGbX/n3msP6A36FDfdSEAEQEAAc0WWGluIExpIDx4aW5Aenl0b3IuY29tPsLBDQQTAQgA
 NxYhBIUq/WFSDTiOvUIqv2u9DlcdrjdRBQJlD89XBQkFo5qAAhsDBAsJCAcFFQgJCgsFFgID
 AQAACgkQa70OVx2uN1HUpgv/cM2fsFCQodLArMTX5nt9yqAWgA5t1srri6EgS8W3F+3Kitge
 tYTBKu6j5BXuXaX3vyfCm+zajDJN77JHuYnpcKKr13VcZi1Swv6Jx1u0II8DOmoDYLb1Q2ZW
 v83W55fOWJ2g72x/UjVJBQ0sVjAngazU3ckc0TeNQlkcpSVGa/qBIHLfZraWtdrNAQT4A1fa
 sWGuJrChBFhtKbYXbUCu9AoYmmbQnsx2EWoJy3h7OjtfFapJbPZql+no5AJ3Mk9eE5oWyLH+
 QWqtOeJM7kKvn/dBudokFSNhDUw06e7EoVPSJyUIMbYtUO7g2+Atu44G/EPP0yV0J4lRO6EA
 wYRXff7+I1jIWEHpj5EFVYO6SmBg7zF2illHEW31JAPtdDLDHYcZDfS41caEKOQIPsdzQkaQ
 oW2hchcjcMPAfyhhRzUpVHLPxLCetP8vrVhTvnaZUo0xaVYb3+wjP+D5j/3+hwblu2agPsaE
 vgVbZ8Fx3TUxUPCAdr/p73DGg57oHjgezsDNBGUPz1gBDAD4Mg7hMFRQqlzotcNSxatlAQNL
 MadLfUTFz8wUUa21LPLrHBkUwm8RujehJrzcVbPYwPXIO0uyL/F///CogMNx7Iwo6by43KOy
 g89wVFhyy237EY76j1lVfLzcMYmjBoTH95fJC/lVb5Whxil6KjSN/R/y3jfG1dPXfwAuZ/4N
 cMoOslWkfZKJeEut5aZTRepKKF54T5r49H9F7OFLyxrC/uI9UDttWqMxcWyCkHh0v1Di8176
 jjYRNTrGEfYfGxSp+3jYL3PoNceIMkqM9haXjjGl0W1B4BidK1LVYBNov0rTEzyr0a1riUrp
 Qk+6z/LHxCM9lFFXnqH7KWeToTOPQebD2B/Ah5CZlft41i8L6LOF/LCuDBuYlu/fI2nuCc8d
 m4wwtkou1Y/kIwbEsE/6RQwRXUZhzO6llfoN96Fczr/RwvPIK5SVMixqWq4QGFAyK0m/1ap4
 bhIRrdCLVQcgU4glo17vqfEaRcTW5SgX+pGs4KIPPBE5J/ABD6pBnUUAEQEAAcLA/AQYAQgA
 JhYhBIUq/WFSDTiOvUIqv2u9DlcdrjdRBQJlD89ZBQkFo5qAAhsMAAoJEGu9DlcdrjdR4C0L
 /RcjolEjoZW8VsyxWtXazQPnaRvzZ4vhmGOsCPr2BPtMlSwDzTlri8BBG1/3t/DNK4JLuwEj
 OAIE3fkkm+UG4Kjud6aNeraDI52DRVCSx6xff3bjmJsJJMb12mWglN6LjdF6K+PE+OTJUh2F
 dOhslN5C2kgl0dvUuevwMgQF3IljLmi/6APKYJHjkJpu1E6luZec/lRbetHuNFtbh3xgFIJx
 2RpgVDP4xB3f8r0I+y6ua+p7fgOjDLyoFjubRGed0Be45JJQEn7A3CSb6Xu7NYobnxfkwAGZ
 Q81a2XtvNS7Aj6NWVoOQB5KbM4yosO5+Me1V1SkX2jlnn26JPEvbV3KRFcwV5RnDxm4OQTSk
 PYbAkjBbm+tuJ/Sm+5Yp5T/BnKz21FoCS8uvTiziHj2H7Cuekn6F8EYhegONm+RVg3vikOpn
 gao85i4HwQTK9/D1wgJIQkdwWXVMZ6q/OALaBp82vQ2U9sjTyFXgDjglgh00VRAHP7u1Rcu4
 l75w1xInsg==
In-Reply-To: <D212FABE-38FE-45D3-A082-CA819CCFFF95@zytor.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 4/14/2025 11:56 PM, H. Peter Anvin wrote:
>> arlier in the pipeline, right?
> Yes, but then it would be redundant with the virtualization support.
> 

So better to drop this patch then.


From xen-devel-bounces@lists.xenproject.org Tue Apr 15 17:08:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 17:08:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.954317.1348601 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4jlQ-0003AJ-Cm; Tue, 15 Apr 2025 17:08:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 954317.1348601; Tue, 15 Apr 2025 17: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 1u4jlQ-0003AC-9o; Tue, 15 Apr 2025 17:08:00 +0000
Received: by outflank-mailman (input) for mailman id 954317;
 Tue, 15 Apr 2025 17:07: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=6T3Z=XB=zytor.com=hpa@srs-se1.protection.inumbo.net>)
 id 1u4jlO-00039i-It
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 17:07:58 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2c57692d-1a1c-11f0-9ffb-bf95429c2676;
 Tue, 15 Apr 2025 19:07:56 +0200 (CEST)
Received: from [127.0.0.1] ([76.133.66.138]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53FH73ta2925188
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NO);
 Tue, 15 Apr 2025 10:07:04 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2c57692d-1a1c-11f0-9ffb-bf95429c2676
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53FH73ta2925188
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025032001; t=1744736825;
	bh=ks0jrFHArrBhG+gklxA2J2EYohMH9zdshNRVwNuGI7o=;
	h=Date:From:To:CC:Subject:In-Reply-To:References:From;
	b=WhE95lEVDeqFGhmykheloCvIa6ec/L8hMkhyTQr4nggCQ2MNaB7hQEnWWqckSYu1M
	 FE/9lDKGBEsoxf1Fo/4TYjWfKG76tlO1rnm1kp56okVOdII9+UvHjC6xjsPgkldKF/
	 /Q1USB71Bg7FETpP89gzIM+/TSWjQPfMrln6Vm6Fs3trJnlHEknKcSEVnAn35LwL3B
	 BtdNdByM7Ug96H+fmgHGlD77jXZNMMvnEE6HU+LJ8nK+7UhdSrlyP9wLK8cDaKhR1R
	 9aDa46yO3/W/rBR4d9umQD8jDcaEpM7DfRECTnLjrbzw2a/RBUSJ+b/LP4FJciRNSQ
	 WUVFIq1GFqr6w==
Date: Tue, 15 Apr 2025 10:07:01 -0700
From: "H. Peter Anvin" <hpa@zytor.com>
To: Xin Li <xin@zytor.com>, Jim Mattson <jmattson@google.com>,
        Sean Christopherson <seanjc@google.com>
CC: linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org,
        linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
        linux-edac@vger.kernel.org, kvm@vger.kernel.org,
        xen-devel@lists.xenproject.org, linux-ide@vger.kernel.org,
        linux-pm@vger.kernel.org, bpf@vger.kernel.org, llvm@lists.linux.dev,
        tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, jgross@suse.com,
        andrew.cooper3@citrix.com, peterz@infradead.org, acme@kernel.org,
        namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, luto@kernel.org,
        boris.ostrovsky@oracle.com, kys@microsoft.com, haiyangz@microsoft.com,
        decui@microsoft.com
Subject: =?US-ASCII?Q?Re=3A_=5BRFC_PATCH_v1_10/15=5D_KVM=3A_VMX=3A_Use_WR?=
 =?US-ASCII?Q?MSRNS_or_its_immediate_form_when_available?=
User-Agent: K-9 Mail for Android
In-Reply-To: <c4fcb208-ee5d-4781-85ce-3b75e651d047@zytor.com>
References: <20250331082251.3171276-1-xin@zytor.com> <20250331082251.3171276-11-xin@zytor.com> <Z_hTI8ywa3rTxFaz@google.com> <CALMp9eRJkzA2YXf1Dfxt3ONP+P9aTA=WPraOPJPJ6C6j677+6Q@mail.gmail.com> <fa16949e-7842-45f7-9715-1bdda13b762a@zytor.com> <EAB44BB2-99BB-4D4A-8306-0235D2931E72@zytor.com> <0cad1e0b-2bfd-4258-90cd-8d319bf0e74a@zytor.com> <D212FABE-38FE-45D3-A082-CA819CCFFF95@zytor.com> <c4fcb208-ee5d-4781-85ce-3b75e651d047@zytor.com>
Message-ID: <B2461564-F050-463D-8679-122724559D07@zytor.com>
MIME-Version: 1.0
Content-Type: text/plain;
 charset=utf-8
Content-Transfer-Encoding: quoted-printable

On April 15, 2025 10:06:01 AM PDT, Xin Li <xin@zytor=2Ecom> wrote:
>On 4/14/2025 11:56 PM, H=2E Peter Anvin wrote:
>>> arlier in the pipeline, right?
>> Yes, but then it would be redundant with the virtualization support=2E
>>=20
>
>So better to drop this patch then=2E

Yeah, if it gets pulled in as a consequence of a global change that is OK =
but the local change makes no sense=2E


From xen-devel-bounces@lists.xenproject.org Tue Apr 15 18:02:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 18:02:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.954337.1348611 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4kbx-00053r-60; Tue, 15 Apr 2025 18:02:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 954337.1348611; Tue, 15 Apr 2025 18:02:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4kbx-00053k-3P; Tue, 15 Apr 2025 18:02:17 +0000
Received: by outflank-mailman (input) for mailman id 954337;
 Tue, 15 Apr 2025 18:02: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=o4sU=XB=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1u4kbv-00053e-Cp
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 18:02:15 +0000
Received: from NAM10-BN7-obe.outbound.protection.outlook.com
 (mail-bn7nam10on20616.outbound.protection.outlook.com
 [2a01:111:f403:2009::616])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c1d0f18e-1a23-11f0-9eae-5ba50f476ded;
 Tue, 15 Apr 2025 20:02:13 +0200 (CEST)
Received: from SJ0PR03CA0388.namprd03.prod.outlook.com (2603:10b6:a03:3a1::33)
 by CY8PR12MB7361.namprd12.prod.outlook.com (2603:10b6:930:53::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.34; Tue, 15 Apr
 2025 18:02:10 +0000
Received: from MWH0EPF000989EA.namprd02.prod.outlook.com
 (2603:10b6:a03:3a1:cafe::d5) by SJ0PR03CA0388.outlook.office365.com
 (2603:10b6:a03:3a1::33) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.33 via Frontend Transport; Tue,
 15 Apr 2025 18:02:09 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 MWH0EPF000989EA.mail.protection.outlook.com (10.167.241.137) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Tue, 15 Apr 2025 18:02: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; Tue, 15 Apr
 2025 13:02:06 -0500
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; Tue, 15 Apr 2025 13:02:05 -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: c1d0f18e-1a23-11f0-9eae-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=HGTsIzlydB8hrE96dARo9p139yK//K9s+UBnb42U4BvoknlO+dgdlN942j0dXHL+9UuzOZBuwL7Zuz17F+g0T4uhHQo1OTLLtJtD2/Y3e6YHbMQ8IrBPXySoRejyypq4K7SiN8M01shCLDQ8o0q821M3JFG+Wy8M+CTNa0sfthuTW/oBgMGVo5Gnlz0EkIhY8E8+C9j/tmhDJ60sYVpioqA/OjtSLTgaQ6Pl1j5DDrpfYZFY7v7pZWRlrYu6s5mJWt9dOlDp6t6VS5jt/gH/qN8A9alNqScikmb5fcIVkKk5Hb8F9bDV/ckC4QDbmL6MUW2lWHB0BUD8fbhBk0xPDQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=1yX9qihEG9ZRRl+9JNZ1O5WlZCmgIF1K6CKiWw0zST8=;
 b=J3GM8NhgaYrBrklDrcgwg/xZMKN+S9iQerAx2B0nNq2ypM+OW9yt4rtQk7HUNqDHrLTdsJquMRPVFMd5YgrtTVdndQ5ucv3d8eiL/caFiIf3aa+0BCStxEWPleEYaO3rr24zbYzTucc8qqjzFom/4pTgRQB/XEP5Z71J9KmMmzbgpelA8zTAy1U77jb3EsPHYBMUUuIAYQ4ShvE4Zj8SkJK+/MMkqWeB8FYr+VyccdOA+4yfbx7gqWNGz51YswIVi298aK3W/S+hgBKh4n4KbD0eXPGxdF30JCSCC4jpVTSvftZ8uo9PurCeAtfQRZGQ8/AdqcOX0nFRYjWoaUoJXw==
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=1yX9qihEG9ZRRl+9JNZ1O5WlZCmgIF1K6CKiWw0zST8=;
 b=KBRT1IIGnbtssNdCx00SVuY0etuqv1ixo0PCRXOq9OpV2WXiQYPjSOR4oLYJN8tj8fGiHdv1mlZ7HX/zG9O9naxBDpX2vSHz0oZmvMsQvCyWXDILdXliYxXPh8y5sPQDRIDN9sBMx2zM0r/hrjTL3a6FREQlGKanKETLrI/cwlU=
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>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH] vpci/msix: use host msix table address
Date: Tue, 15 Apr 2025 14:01:56 -0400
Message-ID: <20250415180200.436578-1-stewart.hildebrand@amd.com>
X-Mailer: git-send-email 2.49.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: MWH0EPF000989EA:EE_|CY8PR12MB7361:EE_
X-MS-Office365-Filtering-Correlation-Id: 568cc156-73f5-44b3-3c89-08dd7c47a390
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|36860700013|1800799024|376014;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?Wd+AOO3YM9F5RL1xJ50raG4e0kOq48abptfkm6NZG72S8aXQAxkX3LOEHVAx?=
 =?us-ascii?Q?JGz8OiL/DsppqG2Rs9Gfj7hlO5pCQDred9eKiN4MkpjyiV8ZBxMR9or+2eeT?=
 =?us-ascii?Q?WQGogATfLS88LuLicmz2baC4kBZUi+PT+rvp7kwLwmhydRq3RA7Aj5P7XsaY?=
 =?us-ascii?Q?Xst8Ty4m0IXpgM3FpaGlSWSoOX28cj8Y47OswQMYqOtfKK1y1Ym4GBWUu5I7?=
 =?us-ascii?Q?fQIh1FZIQmEtoN1bNHBG0uzwykW+laqtPL3wmQPCOK2nHRmX9b2rY0pQlBsu?=
 =?us-ascii?Q?wZ6E16o5Dm0/Xtv9djTyO+RDGid69t8vDvx6OfVNjfjAif/R8x/i2DLmaGkW?=
 =?us-ascii?Q?rQy/P9v9XBPi9QBkJUNN3yw11ifioiWmFeSQ/QGYM2u374HqERXSzfkc0wY2?=
 =?us-ascii?Q?nd9PQkrXOdMrlYt79sTv7CKxmPKrLoJnIplYUJDop1om/7nyxAo6WwzmhgNA?=
 =?us-ascii?Q?crUvsx0+w9zK5zCB8fst2Wt73D2Rirpqgc5DavIMkt3mrk3S0oCMaK64jqe8?=
 =?us-ascii?Q?3IdZlutTEEwHKKHdmvS6OetNDrpqZ/4SrUrjmWUWfH3OuHltGTprImIaOAbb?=
 =?us-ascii?Q?AJF+v6tMquaOYPQhpGNyPW+pcGyBZib/o+vm/IZImgwZD3nB2iUyCJjibEAz?=
 =?us-ascii?Q?bYrvBM0jpHWwIWJ3XY63BquSX4Lu1/P5j3a7+i+ql4uZ07+ABJIEegHdZjqO?=
 =?us-ascii?Q?joYe/4He7BRCoQibM5XUhOTAW5z6RZCEzAkH7nPgqc2AgTrxzdYya1PyWAvX?=
 =?us-ascii?Q?+NJWG9DucXO7IAt3KcZ9w6PxT2wENaUPchP4V8KVlBK69afDkAQFmxUF+An1?=
 =?us-ascii?Q?QtqDU20cCXVeBxhb0Y0axK9JPd1KKevvgbTtRTow7rZn+dvjsQ1Xx4dniEJa?=
 =?us-ascii?Q?EX9N4RYet3MKJpO2QeTJjQ4QaFnRQza8JC0HpPKouV3bmBeCAVeFD7Q/RpMC?=
 =?us-ascii?Q?EAAWdrkX13o5gAmEoLWKkz60meBmev25rnjtGjPRtY/X9XsQIeLutteYgGUT?=
 =?us-ascii?Q?Z3IQEwS/k20rs9MBRGDMy7e1EMS5jIE5TNoPiqZsxdZiWHmdFEKootPZ43rt?=
 =?us-ascii?Q?RR019itPwimB3+6iZY4byiShoen2qKx1iCmCn6jXg2vpFw+GjBkofMdcfH0n?=
 =?us-ascii?Q?RbaoncNsNKY9H6aq2OnfHH45zzyWO3/JG0GacNJB5k5HtPgGTPzmxhorBcvE?=
 =?us-ascii?Q?kxpfUrkjSv6Bzv5zYcVWPUJQvIQJSH0di5zNXHLOWsMwdocBtUTOK1L0gbJa?=
 =?us-ascii?Q?Awt7GgW1atUq4fJjcM4QjRCUC9Od4liXDn4ms6ll7juep6tNAaKK2UOk/X/g?=
 =?us-ascii?Q?csDr9dxSDZPlzdyJfGQKQWAXj8K78huHbMiCl52u6Q6xi8ZZe4J/N9pr0lwx?=
 =?us-ascii?Q?y1K5oqG9GVFk2ECiADUtdkRh5tx2Co0qhWrqHeH7N5VLO/YygN07MnhxBV0Z?=
 =?us-ascii?Q?n6fw9mptUy1pn2aay3io0Mt5oEvPftrs0c8kUZHvlxsXJKaqw/ul5bHD5rEj?=
 =?us-ascii?Q?4GvXXk3/yxrc6W6IjaNXDJbZiA+9/k3po4cm?=
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)(1800799024)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Apr 2025 18:02:08.3577
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 568cc156-73f5-44b3-3c89-08dd7c47a390
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:
	MWH0EPF000989EA.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR12MB7361

Introduce vmsix_table_host_{addr,base} returning the host physical MSI-X
table address and base. Use them in update_entry() and get_table().

Remove stale comment.

Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
---
I considered adding this tag:
Fixes: 52ebde3cfae2 ("vpci/header: program p2m with guest BAR view")
but I left it out since upstream currently only supports identity-mapped
vPCI.
---
 xen/drivers/vpci/msix.c | 14 ++++----------
 xen/include/xen/vpci.h  | 13 +++++++++++++
 2 files changed, 17 insertions(+), 10 deletions(-)

diff --git a/xen/drivers/vpci/msix.c b/xen/drivers/vpci/msix.c
index 6bd8c55bb48e..f3804ce047a3 100644
--- a/xen/drivers/vpci/msix.c
+++ b/xen/drivers/vpci/msix.c
@@ -57,8 +57,8 @@ static void update_entry(struct vpci_msix_entry *entry,
     }
 
     rc = vpci_msix_arch_enable_entry(entry, pdev,
-                                     vmsix_table_base(pdev->vpci,
-                                                      VPCI_MSIX_TABLE));
+                                     vmsix_table_host_base(pdev->vpci,
+                                                           VPCI_MSIX_TABLE));
     if ( rc )
     {
         gprintk(XENLOG_WARNING, "%pp: unable to enable entry %u: %d\n",
@@ -218,14 +218,14 @@ static void __iomem *get_table(const struct vpci *vpci, unsigned int slot)
         addr = vmsix_table_size(vpci, VPCI_MSIX_TABLE);
         fallthrough;
     case VPCI_MSIX_TBL_HEAD:
-        addr += vmsix_table_addr(vpci, VPCI_MSIX_TABLE);
+        addr += vmsix_table_host_addr(vpci, VPCI_MSIX_TABLE);
         break;
 
     case VPCI_MSIX_PBA_TAIL:
         addr = vmsix_table_size(vpci, VPCI_MSIX_PBA);
         fallthrough;
     case VPCI_MSIX_PBA_HEAD:
-        addr += vmsix_table_addr(vpci, VPCI_MSIX_PBA);
+        addr += vmsix_table_host_addr(vpci, VPCI_MSIX_PBA);
         break;
 
     default:
@@ -242,12 +242,6 @@ static unsigned int get_slot(const struct vpci *vpci, unsigned long addr)
 {
     unsigned long pfn = PFN_DOWN(addr);
 
-    /*
-     * The logic below relies on having the tables identity mapped to the guest
-     * address space, or for the `addr` parameter to be translated into its
-     * host physical memory address equivalent.
-     */
-
     if ( pfn == PFN_DOWN(vmsix_table_addr(vpci, VPCI_MSIX_TABLE)) )
         return VPCI_MSIX_TBL_HEAD;
     if ( pfn == PFN_DOWN(vmsix_table_addr(vpci, VPCI_MSIX_TABLE) +
diff --git a/xen/include/xen/vpci.h b/xen/include/xen/vpci.h
index 807401b2eaa2..475981cb8155 100644
--- a/xen/include/xen/vpci.h
+++ b/xen/include/xen/vpci.h
@@ -231,6 +231,19 @@ int vpci_msix_arch_print(const struct vpci_msix *msix);
  * Helper functions to fetch MSIX related data. They are used by both the
  * emulated MSIX code and the BAR handlers.
  */
+static inline paddr_t vmsix_table_host_base(const struct vpci *vpci,
+                                            unsigned int nr)
+{
+    return vpci->header.bars[vpci->msix->tables[nr] & PCI_MSIX_BIRMASK].addr;
+}
+
+static inline paddr_t vmsix_table_host_addr(const struct vpci *vpci,
+                                            unsigned int nr)
+{
+    return vmsix_table_host_base(vpci, nr) +
+           (vpci->msix->tables[nr] & ~PCI_MSIX_BIRMASK);
+}
+
 static inline paddr_t vmsix_table_base(const struct vpci *vpci, unsigned int nr)
 {
     return vpci->header.bars[vpci->msix->tables[nr] &

base-commit: 38d07809794e3c723a4de7e10c25c1f6cb590dc6
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 15 19:12:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 19:12:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.954360.1348621 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4lhM-0007ud-5C; Tue, 15 Apr 2025 19:11:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 954360.1348621; Tue, 15 Apr 2025 19:11: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 1u4lhM-0007uW-2d; Tue, 15 Apr 2025 19:11:56 +0000
Received: by outflank-mailman (input) for mailman id 954360;
 Tue, 15 Apr 2025 19:11: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=1sCo=XB=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1u4lhL-0007uQ-2P
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 19:11:55 +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 7d5a6e74-1a2d-11f0-9eae-5ba50f476ded;
 Tue, 15 Apr 2025 21:11:53 +0200 (CEST)
Received: by mail-ej1-x634.google.com with SMTP id
 a640c23a62f3a-ac3b12e8518so989589366b.0
 for <xen-devel@lists.xenproject.org>; Tue, 15 Apr 2025 12:11:53 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-64-225.play-internet.pl.
 [109.243.64.225]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-acac8a494f5sm879652866b.85.2025.04.15.12.11.50
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 15 Apr 2025 12:11: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: 7d5a6e74-1a2d-11f0-9eae-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1744744312; x=1745349112; darn=lists.xenproject.org;
        h=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=nzN1EHCiQ2VUK83EBh1hxAVhaBmFtMzbUc+9g/UxZYI=;
        b=M6KsRVlZMqkxdSr/RMTxnctENpDEv3EclryqbpXBg4hbRX5NrbzbD0l6TsdTDrEdgH
         M2HnEcKCJL2H9+QP5v8XHVSnvY+kU/Plb36ftiRMe0YuDF2hCwWoYKwK6csUpjl/yqYo
         CGDCf3QHjczf0tQcMolQnnVDtzOpTtwSO/wCRY3bRV2+sVYpXwVg2SgwsyFjos9geLjS
         WGPSgHjE2aSJsn0as3LpZJJmSVo0vaiW8SeYKG/ZOlQ1XJXr39SAQnDZubZPFQdia1kZ
         C3QKKrSErb6dWhC23yVMovPTat2CkL2rnaWTb8DSRDqxGdnD/OP2Y2Tnl6RecJ4cu9Q5
         TnjA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744744312; x=1745349112;
        h=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=nzN1EHCiQ2VUK83EBh1hxAVhaBmFtMzbUc+9g/UxZYI=;
        b=sPxzEibv3QVraKOf7f6fR2rUwMnPezVIBkN/KkBIQNdr9574vgnvglkycPErkOoTSE
         gM1OvlzpwA+OiKirGMJmN7byS+BNhMD1+g14xJQH+jQrU5gQ5OzmlzfYoUhxXfPCzwpo
         VBVn/LrWHv4h5kWu5hfmztvoAHvj3xmdM/L3d1g4NBpTlW+ajUhED2oKzTE/k2fUhveA
         q+uUA9HidlQXW/BDpQvXPx6F0fp1gYdGY3yWiSugJXnhqPoZ+6lRkHcWn1riFkCt/OIJ
         K+WjzySnKL267t8oJxQIJbUe5/nO5H7I46cIvA/1MG0/rDV9BcnqDaYcZKGHF544vND1
         TjjA==
X-Forwarded-Encrypted: i=1; AJvYcCXRaw3+IYtAjuO0pLAff50/3l7wVJO59Zrs0dFqiNvxivhUy6/u52z7Nca5lNN5n66O7YXX6YLzwtg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwYBrXFsjpHThPA01qzZDzt1x8bEq50zD3XsaI344TN90pe+pb3
	qQlsv6sur+N7CTbyCj3dydebs+hP3cL/I94jY66W7jS13QdB2gic
X-Gm-Gg: ASbGncteGtAHDoHV3MrH9yGzeolJ3pXFGQSR5JTX+abD1DFMMXO9lPV8f50d1OJnSxm
	rjkejR/lA/68hjTHM+ZbJOlmF1uLsbpGALZXPdriBF8v4eTeO1luXsTwC/8gWTdlsG4nG7CIGmK
	SiH88daPHkx8U/U0FC75vCGRfmaqbVdK/nsT/LUmObDggzUFm468qpki5MJ4cyYlOYGGmpd7JHe
	vKXk2HcTSobDWh/RcKRshpuihn6f5oQR+1Dz6i0/MLUoNwl3aeyvjqpusiZrZ/6Yn1tifvd4jXk
	X7Gny+cmrTM31tBov0NMxpxkENITPCji8BYUkQywInQRGp0mfjwSZQRj6d5Am3ggwFvqVp3f7V4
	FRmHYKHu4psV8oboi
X-Google-Smtp-Source: AGHT+IHSg6LDxlJPNQ3YwGMFM++sHPwfG1MWSgiBrQYsJIj1HJYeJCcypdSojT80nTU0ltDCCFnj4Q==
X-Received: by 2002:a17:907:7fa6:b0:ac2:fd70:ddcc with SMTP id a640c23a62f3a-acb384e2080mr16587566b.47.1744744311852;
        Tue, 15 Apr 2025 12:11:51 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------2PuCBkmw5JrA8BtKKDoiNZrA"
Message-ID: <aadd8ccf-94f4-407e-8510-3640c6d43b31@gmail.com>
Date: Tue, 15 Apr 2025 21:11:50 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 08/14] xen/riscv: imsic_init() implementation
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Romain Caritey <Romain.Caritey@microchip.com>, xen-devel@lists.xenproject.org
References: <cover.1744126720.git.oleksii.kurochko@gmail.com>
 <09e0fcd64f97062441a68102ead520b818150fe9.1744126720.git.oleksii.kurochko@gmail.com>
 <78fa2ed0-57a2-4990-bc9c-8fa52e41420a@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <78fa2ed0-57a2-4990-bc9c-8fa52e41420a@suse.com>

This is a multi-part message in MIME format.
--------------2PuCBkmw5JrA8BtKKDoiNZrA
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 4/14/25 11:32 AM, Jan Beulich wrote:
> On 08.04.2025 17:57, Oleksii Kurochko wrote:
>> --- /dev/null
>> +++ b/xen/arch/riscv/imsic.c
>> @@ -0,0 +1,286 @@
>> +/* SPDX-License-Identifier: MIT */
>> +
>> +/*
>> + * xen/arch/riscv/imsic.c
>> + *
>> + * RISC-V Incoming MSI Controller support
>> + *
>> + * (c) 2023 Microchip Technology Inc.
>> + * (c) 2024 Vates
> No 2025 here (if already the years matter)?

I think it doesn't really matter and it could be just dropped.

>
>> + */
>> +
>> +#include <xen/const.h>
>> +#include <xen/device_tree.h>
>> +#include <xen/errno.h>
>> +#include <xen/init.h>
>> +#include <xen/macros.h>
>> +#include <xen/xmalloc.h>
>> +
>> +#include <asm/imsic.h>
>> +
>> +static struct imsic_config imsic_cfg;
>> +
>> +const struct imsic_config *imsic_get_config(void)
> Does this need to return a pointer to non-const?

No, I think it could be const struct imsic_config * const as a return type.
It isn't expected that the caller will change a pointer.

>
>> +{
>> +    return &imsic_cfg;
>> +}
>> +
>> +static int __init imsic_get_parent_hartid(struct dt_device_node *node,
>> +                                          unsigned int index,
>> +                                          unsigned long *hartid)
>> +{
>> +    int res;
>> +    unsigned long hart;
>> +    struct dt_phandle_args args;
>> +
>> +    /* Try the new-style interrupts-extended first */
> The comment says "first", but then ...
>
>> +    res = dt_parse_phandle_with_args(node, "interrupts-extended",
>> +                                     "#interrupt-cells", index, &args);
>> +    if ( !res )
>> +    {
>> +        res = riscv_of_processor_hartid(args.np->parent, &hart);
>> +        if ( res < 0 )
>> +            return -EINVAL;
>> +
>> +        *hartid = hart;
>> +    }
>> +    return res;
>> +}
> ... nothing else is being tried.

A stale comment, we decided to support only interrupt-extended to be in line with
Linux device tree bindings.
I'll drop this comment.

>
> Also, nit: Blank line please ahead of the main "return" of a function.
>
> Further - any particular reason to discard riscv_of_processor_hartid()'s
> error code on the error path?

No particular reason, just overlooked that we could really return just `res`.


>> +static int imsic_parse_node(struct dt_device_node *node,
>> +                     unsigned int *nr_parent_irqs)

(for me: fix an indentation)

>> +{
>> +    int rc;
>> +    unsigned int tmp;
>> +    paddr_t base_addr;
>> +
>> +    /* Find number of parent interrupts */
>> +    *nr_parent_irqs = dt_number_of_irq(node);
>> +    if ( !*nr_parent_irqs )
>> +    {
>> +        printk(XENLOG_ERR "%s: no parent irqs available\n", node->name);
>> +        return -ENOENT;
>> +    }
>> +
>> +    /* Find number of guest index bits in MSI address */
>> +    rc = dt_property_read_u32(node, "riscv,guest-index-bits",
>> +                              &imsic_cfg.guest_index_bits);
>> +    if ( !rc )
> It is confusing to store a bool return value in a local "int" variable,
> just to then use it as boolean. Is the local var needed at all here?

'int` is used because of ...:
   rc = dt_device_get_address(node, imsic_cfg.nr_mmios, &base_addr, NULL);
... at the end of imsic_parse_node().

Agree, we can just drop `rc` variable and return err code explicitly.

>
>> +        imsic_cfg.guest_index_bits = 0;
>> +    tmp = BITS_PER_LONG - IMSIC_MMIO_PAGE_SHIFT;
>> +    if ( tmp < imsic_cfg.guest_index_bits )
>> +    {
>> +        printk(XENLOG_ERR "%s: guest index bits too big\n", node->name);
>> +        return -ENOENT;
>> +    }
>> +
>> +    /* Find number of HART index bits */
>> +    rc = dt_property_read_u32(node, "riscv,hart-index-bits",
>> +                              &imsic_cfg.hart_index_bits);
>> +    if ( !rc )
>> +    {
>> +        /* Assume default value */
>> +        imsic_cfg.hart_index_bits = fls(*nr_parent_irqs);
>> +        if ( BIT(imsic_cfg.hart_index_bits, UL) < *nr_parent_irqs )
>> +            imsic_cfg.hart_index_bits++;
>> +    }
>> +    tmp = BITS_PER_LONG - IMSIC_MMIO_PAGE_SHIFT -
>> +          imsic_cfg.guest_index_bits;
>      tmp -= imsic_cfg.guest_index_bits;
>
> ? (And then similarly further down.)

Yes, it would be simpler.

>> +    if ( tmp < imsic_cfg.hart_index_bits )
>> +    {
>> +        printk(XENLOG_ERR "%s: HART index bits too big\n", node->name);
>> +        return -ENOENT;
>> +    }
>> +
>> +    /* Find number of group index bits */
>> +    rc = dt_property_read_u32(node, "riscv,group-index-bits",
>> +                              &imsic_cfg.group_index_bits);
>> +    if ( !rc )
>> +        imsic_cfg.group_index_bits = 0;
>> +    tmp = BITS_PER_LONG - IMSIC_MMIO_PAGE_SHIFT -
>> +          imsic_cfg.guest_index_bits - imsic_cfg.hart_index_bits;
>> +    if ( tmp < imsic_cfg.group_index_bits )
>> +    {
>> +        printk(XENLOG_ERR "%s: group index bits too big\n", node->name);
>> +        return -ENOENT;
>> +    }
>> +
>> +    /* Find first bit position of group index */
>> +    tmp = IMSIC_MMIO_PAGE_SHIFT * 2;
>> +    rc = dt_property_read_u32(node, "riscv,group-index-shift",
>> +                              &imsic_cfg.group_index_shift);
>> +    if ( !rc )
>> +        imsic_cfg.group_index_shift = tmp;
>> +    if ( imsic_cfg.group_index_shift < tmp )
>> +    {
>> +        printk(XENLOG_ERR "%s: group index shift too small\n", node->name);
>> +        return -ENOENT;
>> +    }
>> +    tmp = imsic_cfg.group_index_bits + imsic_cfg.group_index_shift - 1;
>> +    if ( tmp >= BITS_PER_LONG )
>> +    {
>> +        printk(XENLOG_ERR "%s: group index shift too big\n", node->name);
>> +        return -EINVAL;
>> +    }
>> +
>> +    /* Find number of interrupt identities */
>> +    rc = dt_property_read_u32(node, "riscv,num-ids", &imsic_cfg.nr_ids);
>> +    if ( !rc )
>> +    {
>> +        printk(XENLOG_ERR "%s: number of interrupt identities not found\n",
>> +               node->name);
>> +        return -ENOENT;
>> +    }
>> +
>> +    if ( (imsic_cfg.nr_ids < IMSIC_MIN_ID) ||
>> +         (imsic_cfg.nr_ids >= IMSIC_MAX_ID) ||
> Something named "max" normally wants to decribe the highest valid value,
> not the first out-of-range one.

But it is the maximum of identities for IMISIC according to the AIA specs:
```
( MRIF stands for Memory-Resident Interrupt File )

All MRIFs are the size to accommodate 2047 valid interrupt identities,
the maximum allowed for an IMSIC interrupt file. If a system’s actual IMSICs
have interrupt files that implement only N interrupt identities, N < 2047,
then the contents of MRIFs for identities greater than N may be ignored by
softwareand
```
and prefix IMSIC (IMO)emphasizes this. Would it be better to rename to IMSIC_MAX_ALLOWED_ID? 
And then IMSIC_MIN_ALLOWED_ID?

>
>> +         ((imsic_cfg.nr_ids & IMSIC_MIN_ID) != IMSIC_MIN_ID) )
>> +    {
>> +        printk(XENLOG_ERR "%s: invalid number of interrupt identities\n",
>> +               node->name);
>> +        return -EINVAL;
>> +    }
>> +
>> +    /* Compute base address */
>> +    imsic_cfg.nr_mmios = 0;
>> +    rc = dt_device_get_address(node, imsic_cfg.nr_mmios, &base_addr, NULL);
>> +    if (rc)
> Nit: Style.
>
>> +    {
>> +        printk(XENLOG_ERR "%s: first MMIO resource not found\n", node->name);
>> +        return -EINVAL;
> Discarding "rc" again?

Agree, it could be just `rc`, but considering of that this functions always returns
-EINVAL in case of the error and that `rc` could be dropped at all, we just explicitly
return here -EINVAL.

>
>> +    }
>> +
>> +    imsic_cfg.base_addr = base_addr;
>> +    imsic_cfg.base_addr &= ~(BIT(imsic_cfg.guest_index_bits +
>> +                   imsic_cfg.hart_index_bits +
>> +                   IMSIC_MMIO_PAGE_SHIFT, UL) - 1);
>> +    imsic_cfg.base_addr &= ~((BIT(imsic_cfg.group_index_bits, UL) - 1) <<
>> +                   imsic_cfg.group_index_shift);
> Besides indentation being bogus here, why is it that you need to mask bits
> off of the value read from DT? Wouldn't the expectation be that you get back
> the true base address?

The group index is used to differentiate between clusters/groups. For 
example, consider two clusters: - Cluster 1 with cpu0 and cpu1 - Cluster 
2 with cpu2 and cpu3 Then, the reg property in the IMSIC node will 
include two entries: reg = <0x0 0xd100000 0x0 0x20000>, <0x0 0x2d100000 
0x0 0x20000>; riscv,guest-index-bits = <3>; riscv,hart-index-bits = <2>; 
riscv,group-index-bits = <1>; riscv,group-index-shift = <29>; In this 
example: The group index is 1 bit wide (group-index-bits = <1>), It is 
located at bit 29 (group-index-shift = <29>) of the address.

so imsic_cfg.group_index_bits will be used to distinguish clusters, but 
they must have

the same base address and this is the reason why the mask is applied.



>
>> +    /* Find number of MMIO register sets */
>> +    imsic_cfg.nr_mmios++;
>> +    while ( !dt_device_get_address(node, imsic_cfg.nr_mmios, &base_addr, NULL) )
>> +        imsic_cfg.nr_mmios++;
> And the base addresses of these aren't of interest? Oh, I see they're
> fetched again further down.

It is fetched again because we are using imsic_cfg.nr_mmios to calculate the size of
imsic_cfg.mmios array:
   imsic_cfg.mmios = xzalloc_array(struct imsic_mmios, imsic_cfg.nr_mmios);

>
> Also - use do-while here?

It could be, I'll update that.

>> +        if ( base_addr != imsic_cfg.base_addr )
>> +        {
>> +            rc = -EINVAL;
>> +            printk(XENLOG_ERR "%s: address mismatch for regset %d\n",
>> +                   node->name, i);
>> +            goto imsic_init_err;
>> +        }
> Oh, all of the addresses need to (sufficiently) match.
>
>> +    xfree(imsic_cfg.mmios);
> Better use XFREE() in cases like this one?

I think, yes.

>
>> --- /dev/null
>> +++ b/xen/arch/riscv/include/asm/imsic.h
>> @@ -0,0 +1,66 @@
>> +/* SPDX-License-Identifier: MIT */
>> +
>> +/*
>> + * xen/arch/riscv/imsic.h
>> + *
>> + * RISC-V Incoming MSI Controller support
>> + *
>> + * (c) 2023 Microchip Technology Inc.
>> + */
>> +
>> +#ifndef ASM__RISCV__IMSIC_H
>> +#define ASM__RISCV__IMSIC_H
>> +
>> +#include <xen/types.h>
>> +
>> +#define IMSIC_MMIO_PAGE_SHIFT   12
>> +#define IMSIC_MMIO_PAGE_SZ      (1UL << IMSIC_MMIO_PAGE_SHIFT)
>> +
>> +#define IMSIC_MIN_ID            63
>> +#define IMSIC_MAX_ID            2048
>> +
>> +struct imsic_msi {
>> +    paddr_t base_addr;
>> +    unsigned long offset;
>> +};
>> +
>> +struct imsic_mmios {
>> +    paddr_t base_addr;
>> +    unsigned long size;
>> +    bool harts[NR_CPUS];
> An array of bool - won't a bitmap do here? Even then I wouldn't be overly
> happy to see it dimensioned by NR_CPUS.

Bitmap will fit here well. But for DECLARE_BITMAP() is necessary the size
of bitmap so NR_CPUS should be used again.
Could you please remind me why it isn't good to use it?
Because NR_CPUS not always equal to an amount of physical cpus?
Should I use non-static version of bitmap declaration? (if we have such...)

>
>> +};
>> +
>> +struct imsic_config {
>> +    /* base address */
>> +    paddr_t base_addr;
>> +
>> +    /* Bits representing Guest index, HART index, and Group index */
>> +    unsigned int guest_index_bits;
>> +    unsigned int hart_index_bits;
>> +    unsigned int group_index_bits;
>> +    unsigned int group_index_shift;
>> +
>> +    /* imsic phandle */
>> +    unsigned int phandle;
>> +
>> +    /* number of parent irq */
>> +    unsigned int nr_parent_irqs;
>> +
>> +    /* number off interrupt identities */
>> +    unsigned int nr_ids;
>> +
>> +    /* mmios */
>> +    unsigned int nr_mmios;
>> +    struct imsic_mmios *mmios;
>> +
>> +    /* MSI */
>> +    struct imsic_msi msi[NR_CPUS];
> You surely can avoid wasting perhaps a lot of memory by allocating this
> based on the number of CPUs in use?

It make sense. I'll allocate then this dynamically.

Thanks!

~ Oleksii

--------------2PuCBkmw5JrA8BtKKDoiNZrA
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 4/14/25 11:32 AM, Jan Beulich wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:78fa2ed0-57a2-4990-bc9c-8fa52e41420a@suse.com">
      <pre wrap="" class="moz-quote-pre">On 08.04.2025 17:57, Oleksii Kurochko wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">--- /dev/null
+++ b/xen/arch/riscv/imsic.c
@@ -0,0 +1,286 @@
+/* SPDX-License-Identifier: MIT */
+
+/*
+ * xen/arch/riscv/imsic.c
+ *
+ * RISC-V Incoming MSI Controller support
+ *
+ * (c) 2023 Microchip Technology Inc.
+ * (c) 2024 Vates
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
No 2025 here (if already the years matter)?</pre>
    </blockquote>
    <pre>I think it doesn't really matter and it could be just dropped.

</pre>
    <blockquote type="cite"
      cite="mid:78fa2ed0-57a2-4990-bc9c-8fa52e41420a@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+ */
+
+#include &lt;xen/const.h&gt;
+#include &lt;xen/device_tree.h&gt;
+#include &lt;xen/errno.h&gt;
+#include &lt;xen/init.h&gt;
+#include &lt;xen/macros.h&gt;
+#include &lt;xen/xmalloc.h&gt;
+
+#include &lt;asm/imsic.h&gt;
+
+static struct imsic_config imsic_cfg;
+
+const struct imsic_config *imsic_get_config(void)
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Does this need to return a pointer to non-const?</pre>
    </blockquote>
    <pre>No, I think it could be const struct imsic_config * const as a return type.
It isn't expected that the caller will change a pointer.

</pre>
    <blockquote type="cite"
      cite="mid:78fa2ed0-57a2-4990-bc9c-8fa52e41420a@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+{
+    return &amp;imsic_cfg;
+}
+
+static int __init imsic_get_parent_hartid(struct dt_device_node *node,
+                                          unsigned int index,
+                                          unsigned long *hartid)
+{
+    int res;
+    unsigned long hart;
+    struct dt_phandle_args args;
+
+    /* Try the new-style interrupts-extended first */
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
The comment says "first", but then ...

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+    res = dt_parse_phandle_with_args(node, "interrupts-extended",
+                                     "#interrupt-cells", index, &amp;args);
+    if ( !res )
+    {
+        res = riscv_of_processor_hartid(args.np-&gt;parent, &amp;hart);
+        if ( res &lt; 0 )
+            return -EINVAL;
+
+        *hartid = hart;
+    }
+    return res;
+}
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
... nothing else is being tried.</pre>
    </blockquote>
    <pre>A stale comment, we decided to support only interrupt-extended to be in line with
Linux device tree bindings.
I'll drop this comment.

</pre>
    <blockquote type="cite"
      cite="mid:78fa2ed0-57a2-4990-bc9c-8fa52e41420a@suse.com">
      <pre wrap="" class="moz-quote-pre">

Also, nit: Blank line please ahead of the main "return" of a function.

Further - any particular reason to discard riscv_of_processor_hartid()'s
error code on the error path?</pre>
    </blockquote>
    <pre>No particular reason, just overlooked that we could really return just `res`.


</pre>
    <blockquote type="cite"
      cite="mid:78fa2ed0-57a2-4990-bc9c-8fa52e41420a@suse.com">
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+static int imsic_parse_node(struct dt_device_node *node,
+                     unsigned int *nr_parent_irqs)</pre>
      </blockquote>
    </blockquote>
    <pre>(for me: fix an indentation)</pre>
    <blockquote type="cite"
      cite="mid:78fa2ed0-57a2-4990-bc9c-8fa52e41420a@suse.com">
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">
+{
+    int rc;
+    unsigned int tmp;
+    paddr_t base_addr;
+
+    /* Find number of parent interrupts */
+    *nr_parent_irqs = dt_number_of_irq(node);
+    if ( !*nr_parent_irqs )
+    {
+        printk(XENLOG_ERR "%s: no parent irqs available\n", node-&gt;name);
+        return -ENOENT;
+    }
+
+    /* Find number of guest index bits in MSI address */
+    rc = dt_property_read_u32(node, "riscv,guest-index-bits",
+                              &amp;imsic_cfg.guest_index_bits);
+    if ( !rc )
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
It is confusing to store a bool return value in a local "int" variable,
just to then use it as boolean. Is the local var needed at all here?</pre>
    </blockquote>
    <pre>'int` is used because of ...:
  rc = dt_device_get_address(node, imsic_cfg.nr_mmios, &amp;base_addr, NULL);
... at the end of imsic_parse_node().

Agree, we can just drop `rc` variable and return err code explicitly.

</pre>
    <blockquote type="cite"
      cite="mid:78fa2ed0-57a2-4990-bc9c-8fa52e41420a@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+        imsic_cfg.guest_index_bits = 0;
+    tmp = BITS_PER_LONG - IMSIC_MMIO_PAGE_SHIFT;
+    if ( tmp &lt; imsic_cfg.guest_index_bits )
+    {
+        printk(XENLOG_ERR "%s: guest index bits too big\n", node-&gt;name);
+        return -ENOENT;
+    }
+
+    /* Find number of HART index bits */
+    rc = dt_property_read_u32(node, "riscv,hart-index-bits",
+                              &amp;imsic_cfg.hart_index_bits);
+    if ( !rc )
+    {
+        /* Assume default value */
+        imsic_cfg.hart_index_bits = fls(*nr_parent_irqs);
+        if ( BIT(imsic_cfg.hart_index_bits, UL) &lt; *nr_parent_irqs )
+            imsic_cfg.hart_index_bits++;
+    }
+    tmp = BITS_PER_LONG - IMSIC_MMIO_PAGE_SHIFT -
+          imsic_cfg.guest_index_bits;
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
    tmp -= imsic_cfg.guest_index_bits;

? (And then similarly further down.)
</pre>
    </blockquote>
    <pre>Yes, it would be simpler.

</pre>
    <blockquote type="cite"
      cite="mid:78fa2ed0-57a2-4990-bc9c-8fa52e41420a@suse.com">
      <pre wrap="" class="moz-quote-pre">
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+    if ( tmp &lt; imsic_cfg.hart_index_bits )
+    {
+        printk(XENLOG_ERR "%s: HART index bits too big\n", node-&gt;name);
+        return -ENOENT;
+    }
+
+    /* Find number of group index bits */
+    rc = dt_property_read_u32(node, "riscv,group-index-bits",
+                              &amp;imsic_cfg.group_index_bits);
+    if ( !rc )
+        imsic_cfg.group_index_bits = 0;
+    tmp = BITS_PER_LONG - IMSIC_MMIO_PAGE_SHIFT -
+          imsic_cfg.guest_index_bits - imsic_cfg.hart_index_bits;
+    if ( tmp &lt; imsic_cfg.group_index_bits )
+    {
+        printk(XENLOG_ERR "%s: group index bits too big\n", node-&gt;name);
+        return -ENOENT;
+    }
+
+    /* Find first bit position of group index */
+    tmp = IMSIC_MMIO_PAGE_SHIFT * 2;
+    rc = dt_property_read_u32(node, "riscv,group-index-shift",
+                              &amp;imsic_cfg.group_index_shift);
+    if ( !rc )
+        imsic_cfg.group_index_shift = tmp;
+    if ( imsic_cfg.group_index_shift &lt; tmp )
+    {
+        printk(XENLOG_ERR "%s: group index shift too small\n", node-&gt;name);
+        return -ENOENT;
+    }
+    tmp = imsic_cfg.group_index_bits + imsic_cfg.group_index_shift - 1;
+    if ( tmp &gt;= BITS_PER_LONG )
+    {
+        printk(XENLOG_ERR "%s: group index shift too big\n", node-&gt;name);
+        return -EINVAL;
+    }
+
+    /* Find number of interrupt identities */
+    rc = dt_property_read_u32(node, "riscv,num-ids", &amp;imsic_cfg.nr_ids);
+    if ( !rc )
+    {
+        printk(XENLOG_ERR "%s: number of interrupt identities not found\n",
+               node-&gt;name);
+        return -ENOENT;
+    }
+
+    if ( (imsic_cfg.nr_ids &lt; IMSIC_MIN_ID) ||
+         (imsic_cfg.nr_ids &gt;= IMSIC_MAX_ID) ||
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Something named "max" normally wants to decribe the highest valid value,
not the first out-of-range one.</pre>
    </blockquote>
    <pre>But it is the maximum of identities for IMISIC according to the AIA specs:
```
( MRIF stands for Memory-Resident Interrupt File )

All MRIFs are the size to accommodate 2047 valid interrupt identities,
the maximum allowed for an IMSIC interrupt file. If a system’s actual IMSICs
have interrupt files that implement only N interrupt identities, N &lt; 2047,
then the contents of MRIFs for identities greater than N may be ignored by
softwareand
```
and prefix IMSIC (IMO) <span class="Y2IQFc" lang="en">emphasizes this.

Would it be better to rename to IMSIC_MAX_ALLOWED_ID? And then IMSIC_MIN_ALLOWED_ID?

</span></pre>
    <blockquote type="cite"
      cite="mid:78fa2ed0-57a2-4990-bc9c-8fa52e41420a@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+         ((imsic_cfg.nr_ids &amp; IMSIC_MIN_ID) != IMSIC_MIN_ID) )
+    {
+        printk(XENLOG_ERR "%s: invalid number of interrupt identities\n",
+               node-&gt;name);
+        return -EINVAL;
+    }
+
+    /* Compute base address */
+    imsic_cfg.nr_mmios = 0;
+    rc = dt_device_get_address(node, imsic_cfg.nr_mmios, &amp;base_addr, NULL);
+    if (rc)
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Nit: Style.

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+    {
+        printk(XENLOG_ERR "%s: first MMIO resource not found\n", node-&gt;name);
+        return -EINVAL;
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Discarding "rc" again?</pre>
    </blockquote>
    <pre>Agree, it could be just `rc`, but considering of that this functions always returns
-EINVAL in case of the error and that `rc` could be dropped at all, we just explicitly
return here -EINVAL.

</pre>
    <blockquote type="cite"
      cite="mid:78fa2ed0-57a2-4990-bc9c-8fa52e41420a@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+    }
+
+    imsic_cfg.base_addr = base_addr;
+    imsic_cfg.base_addr &amp;= ~(BIT(imsic_cfg.guest_index_bits +
+                   imsic_cfg.hart_index_bits +
+                   IMSIC_MMIO_PAGE_SHIFT, UL) - 1);
+    imsic_cfg.base_addr &amp;= ~((BIT(imsic_cfg.group_index_bits, UL) - 1) &lt;&lt;
+                   imsic_cfg.group_index_shift);
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Besides indentation being bogus here, why is it that you need to mask bits
off of the value read from DT? Wouldn't the expectation be that you get back
the true base address?</pre>
    </blockquote>
    <pre><pre><span data-teams="true">The group index is used to differentiate between clusters/groups.
For example, consider two clusters:
- Cluster 1 with cpu0 and cpu1
- Cluster 2 with cpu2 and cpu3

Then, the reg property in the IMSIC node will include two entries:
reg = &lt;0x0 0xd100000  0x0 0x20000&gt;,
      &lt;0x0 0x2d100000 0x0 0x20000&gt;;
riscv,guest-index-bits = &lt;3&gt;;
riscv,hart-index-bits = &lt;2&gt;;
riscv,group-index-bits = &lt;1&gt;;
riscv,group-index-shift = &lt;29&gt;;

In this example:
The group index is 1 bit wide (group-index-bits = &lt;1&gt;),
It is located at bit 29 (group-index-shift = &lt;29&gt;) of the address.</span><pre><span
    data-teams="true"><p>so <span data-teams="true">imsic_cfg.group_index_bits will be used to distinguish clusters, but they must have</span></p><p><span
    data-teams="true">the same base address and this is the reason why the mask is applied.</span></p></span>
<span data-teams="true"><p><span data-teams="true"></span></p></span></pre></pre>
</pre>
    <blockquote type="cite"
      cite="mid:78fa2ed0-57a2-4990-bc9c-8fa52e41420a@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+    /* Find number of MMIO register sets */
+    imsic_cfg.nr_mmios++;
+    while ( !dt_device_get_address(node, imsic_cfg.nr_mmios, &amp;base_addr, NULL) )
+        imsic_cfg.nr_mmios++;
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
And the base addresses of these aren't of interest? Oh, I see they're
fetched again further down.</pre>
    </blockquote>
    <pre>It is fetched again because we are using imsic_cfg.nr_mmios to calculate the size of
imsic_cfg.mmios array:
  imsic_cfg.mmios = xzalloc_array(struct imsic_mmios, imsic_cfg.nr_mmios);

</pre>
    <blockquote type="cite"
      cite="mid:78fa2ed0-57a2-4990-bc9c-8fa52e41420a@suse.com">
      <pre wrap="" class="moz-quote-pre">

Also - use do-while here?</pre>
    </blockquote>
    <pre>It could be, I'll update that.</pre>
    <blockquote type="cite"
      cite="mid:78fa2ed0-57a2-4990-bc9c-8fa52e41420a@suse.com">
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+        if ( base_addr != imsic_cfg.base_addr )
+        {
+            rc = -EINVAL;
+            printk(XENLOG_ERR "%s: address mismatch for regset %d\n",
+                   node-&gt;name, i);
+            goto imsic_init_err;
+        }
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Oh, all of the addresses need to (sufficiently) match.

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+    xfree(imsic_cfg.mmios);
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Better use XFREE() in cases like this one?</pre>
    </blockquote>
    <pre>I think, yes.

</pre>
    <blockquote type="cite"
      cite="mid:78fa2ed0-57a2-4990-bc9c-8fa52e41420a@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">--- /dev/null
+++ b/xen/arch/riscv/include/asm/imsic.h
@@ -0,0 +1,66 @@
+/* SPDX-License-Identifier: MIT */
+
+/*
+ * xen/arch/riscv/imsic.h
+ *
+ * RISC-V Incoming MSI Controller support
+ *
+ * (c) 2023 Microchip Technology Inc.
+ */
+
+#ifndef ASM__RISCV__IMSIC_H
+#define ASM__RISCV__IMSIC_H
+
+#include &lt;xen/types.h&gt;
+
+#define IMSIC_MMIO_PAGE_SHIFT   12
+#define IMSIC_MMIO_PAGE_SZ      (1UL &lt;&lt; IMSIC_MMIO_PAGE_SHIFT)
+
+#define IMSIC_MIN_ID            63
+#define IMSIC_MAX_ID            2048
+
+struct imsic_msi {
+    paddr_t base_addr;
+    unsigned long offset;
+};
+
+struct imsic_mmios {
+    paddr_t base_addr;
+    unsigned long size;
+    bool harts[NR_CPUS];
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
An array of bool - won't a bitmap do here? Even then I wouldn't be overly
happy to see it dimensioned by NR_CPUS.</pre>
    </blockquote>
    <pre>Bitmap will fit here well. But for DECLARE_BITMAP() is necessary the size
of bitmap so NR_CPUS should be used again.
Could you please remind me why it isn't good to use it?
Because NR_CPUS not always equal to an amount of physical cpus?
Should I use non-static version of bitmap declaration? (if we have such...)

</pre>
    <blockquote type="cite"
      cite="mid:78fa2ed0-57a2-4990-bc9c-8fa52e41420a@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+};
+
+struct imsic_config {
+    /* base address */
+    paddr_t base_addr;
+
+    /* Bits representing Guest index, HART index, and Group index */
+    unsigned int guest_index_bits;
+    unsigned int hart_index_bits;
+    unsigned int group_index_bits;
+    unsigned int group_index_shift;
+
+    /* imsic phandle */
+    unsigned int phandle;
+
+    /* number of parent irq */
+    unsigned int nr_parent_irqs;
+
+    /* number off interrupt identities */
+    unsigned int nr_ids;
+
+    /* mmios */
+    unsigned int nr_mmios;
+    struct imsic_mmios *mmios;
+
+    /* MSI */
+    struct imsic_msi msi[NR_CPUS];
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
You surely can avoid wasting perhaps a lot of memory by allocating this
based on the number of CPUs in use?</pre>
    </blockquote>
    <pre>It make sense. I'll allocate then this dynamically.

Thanks!

~ Oleksii
</pre>
  </body>
</html>

--------------2PuCBkmw5JrA8BtKKDoiNZrA--


From xen-devel-bounces@lists.xenproject.org Tue Apr 15 20:38:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 20:38:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.954622.1348647 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4n2k-0005N0-Lf; Tue, 15 Apr 2025 20:38:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 954622.1348647; Tue, 15 Apr 2025 20:38:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4n2k-0005Mt-JA; Tue, 15 Apr 2025 20:38:06 +0000
Received: by outflank-mailman (input) for mailman id 954622;
 Tue, 15 Apr 2025 20:38: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=wZ1T=XB=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u4n2j-0005Mn-6K
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 20:38: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 86942b09-1a39-11f0-9eae-5ba50f476ded;
 Tue, 15 Apr 2025 22:38:03 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 508375C5A07;
 Tue, 15 Apr 2025 20:35:44 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 69D87C4CEE7;
 Tue, 15 Apr 2025 20:37: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: 86942b09-1a39-11f0-9eae-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1744749481;
	bh=YHRIdkp/La6RZNUsrbQro8/zHysEvwBk8lOgjmZcqE8=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=I+XbPJbxIm8U2Pisc7EIBG88K4r7oevSlq3xwydRi05EotHaM60w4O7teXkoKW+za
	 DDuuS3KpaEDgbne+DyWvCtNKWzzk7364Q6AYXq/C+Srmbve3/09g7gETP3ixRZ2Gv0
	 Q53hl2vbRDDQupao8xg9bDu0HkVqxgHuIcq0L/83hZNWJEEI8xlroPUcWzyVICBtOJ
	 IEFYclygLJRiHh4ZqqI7jS5zHTGCEGM9EcbbZhOdDOCj/Yf6y4gHEg97IbjJkfqsDF
	 wG0CtktDhcFId3nK9DgW1Lu7Gu5yG29mDeeLVJ1cyqYj/GRWDwc9rtz2ZObeKAyXsz
	 r0fEFMk8a3NeA==
Date: Tue, 15 Apr 2025 13:37:57 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: "Weber (US), Matthew L" <matthew.l.weber3@boeing.com>
cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    "Whitehead (US), Joshua C" <joshua.c.whitehead@boeing.com>, 
    "Wood (US), Brian J" <brian.j.wood2@boeing.com>, julien@xen.org, 
    bertrand.marquis@arm.com, michal.orzel@amd.com, Volodymyr_Babchuk@epam.com, 
    Luca.Fancellu@arm.com, andrei.cherechesu@oss.nxp.com, 
    andrei.cherechesu@nxp.com, peng.fan@nxp.com, john.ernberg@actia.se, 
    sstabellini@kernel.org
Subject: Re: NXP Layerscape SMMU IDs
In-Reply-To: <BN0P110MB20674B71640958CA7A56035AF3B6A@BN0P110MB2067.NAMP110.PROD.OUTLOOK.COM>
Message-ID: <alpine.DEB.2.22.394.2504151335030.8008@ubuntu-linux-20-04-desktop>
References: <BN0P110MB20674B71640958CA7A56035AF3B6A@BN0P110MB2067.NAMP110.PROD.OUTLOOK.COM>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

Adding a few people in CC that might be able to help

On Fri, 11 Apr 2025, Weber (US), Matthew L wrote:
> Hello,
> 
> We're curious if anyone else has figured out NXP Layerscape Xen support to get at least basic domains launching with minimal IO support?
> 
> Started a recent discussion on it here:
> https://community.nxp.com/t5/Layerscape/How-to-determine-LS1088A-SMMU-Masters-and-Stream-IDs/m-p/2072157#M15560
> 
> We're guessing some of the NXP specific chip/interconnect designs in Layerscape were carried over from the QORIQ PowerPC P/T series.  Maybe some clues in that Topaz hypervisor code?  https://github.com/nxp-qoriq-yocto-sdk/hypervisor
> 
> Regards,
> Matt
> 


From xen-devel-bounces@lists.xenproject.org Tue Apr 15 22:40:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 22:40:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.954667.1348661 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4ox6-00071N-Us; Tue, 15 Apr 2025 22:40:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 954667.1348661; Tue, 15 Apr 2025 22: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 1u4ox6-00071G-S1; Tue, 15 Apr 2025 22:40:24 +0000
Received: by outflank-mailman (input) for mailman id 954667;
 Tue, 15 Apr 2025 22: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=wZ1T=XB=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u4ox5-00071A-1V
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 22:40:23 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9ba1cc40-1a4a-11f0-9eae-5ba50f476ded;
 Wed, 16 Apr 2025 00:40:20 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 46C3C6115F;
 Tue, 15 Apr 2025 22:40:02 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8C5CAC4CEE7;
 Tue, 15 Apr 2025 22:40:16 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9ba1cc40-1a4a-11f0-9eae-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1744756818;
	bh=azKy7Of8j02Wui/5ECtU0oU4BJp7g2vh2iJORCVUWsA=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=lcouqrGu1gLy7uEMFOpWVDStB88NHT6uZJ5G7v2oSQZEzwVPOr+Sf7Iv8PM39fMSk
	 XYIW+ZoR1I7uks9YDD2DV9TQqKDEGQH8UwpU//iUGWt+fvb2tcYEjRAqRHXAPS3yEE
	 7nIcENS9oq2Bl/+fnQ/VM2REXzq6kKZA8qupsF87BxwpDSeuTGpTiRJKpxpbb7bq1m
	 L8fuGzlChblCNYeDSru4QpCuj0o8xwGGOTuNJTh3oclSADG6vuRJDy2qgAMt0WLULa
	 MMkGqC0T7rEJaUYmmMzwLw0mHGZVgmX97pINdViTQctYsD/CEfa5VxfU42dQioMkKs
	 pC64faU4PrMLA==
Date: Tue, 15 Apr 2025 15:40:14 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Julien Grall <julien@xen.org>
cc: Mykyta Poturai <Mykyta_Poturai@epam.com>, 
    "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Bertrand Marquis <bertrand.marquis@arm.com>, 
    Michal Orzel <michal.orzel@amd.com>, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
    Anthony PERARD <anthony.perard@vates.tech>, 
    Juergen Gross <jgross@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>, 
    Jan Beulich <jbeulich@suse.com>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Subject: Re: [PATCH v2 0/2] Add support for MSI injection on Arm
In-Reply-To: <98feb427-7da5-47ff-831c-2b4bcb26c4b9@xen.org>
Message-ID: <alpine.DEB.2.22.394.2504151536240.8008@ubuntu-linux-20-04-desktop>
References: <cover.1744621166.git.mykyta_poturai@epam.com> <98feb427-7da5-47ff-831c-2b4bcb26c4b9@xen.org>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Mon, 14 Apr 2025, Julien Grall wrote:
> Hi Mykyta,
> 
> On 14/04/2025 18:51, Mykyta Poturai wrote:
> > This series adds the base support for MSI injection on Arm. This is
> > needed to streamline virtio-pci interrupt triggering.
> > 
> > With this patches, MSIs can be triggered in guests by issuing the new
> > DM op, inject_msi2. This op is similar to inject_msi, but it allows
> > to specify the source id of the MSI.
> > 
> > We chose the approach of adding a new DM op instead of using the pad
> > field of inject_msi because we have no clear way of distinguishing
> > between set and unset pad fields. New implementations also adds flags
> > field to clearly specify if the SBDF is set.
> > 
> > Patches were tested on QEMU with
> 
> [...]
> 
> > patches for ITS support for DomUs applied.
> 
> This means this series is unusable without external patches. Given this is
> adding a new DM operations, I think it would be more sensible to have the vITS
> support merged first. Then we can look at merging this series.

Hi Mykyta, just checking explicitly with you whether this series
requires vgic-v3-its.c for DomUs?

If yes, how far are you from sending the relevant patches to xen-devel?
How many are they?


From xen-devel-bounces@lists.xenproject.org Tue Apr 15 23:48:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 23:48:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.954685.1348681 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4q1F-0008KE-0u; Tue, 15 Apr 2025 23:48:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 954685.1348681; Tue, 15 Apr 2025 23:48:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4q1E-0008K7-T1; Tue, 15 Apr 2025 23:48:44 +0000
Received: by outflank-mailman (input) for mailman id 954685;
 Tue, 15 Apr 2025 23:48: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=wZ1T=XB=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u4q1E-00086A-4l
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 23:48:44 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 291c0af1-1a54-11f0-9ffb-bf95429c2676;
 Wed, 16 Apr 2025 01:48:42 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id D06DF6115F;
 Tue, 15 Apr 2025 23:48:24 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 88696C4CEE7;
 Tue, 15 Apr 2025 23:48: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: 291c0af1-1a54-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1744760920;
	bh=0qZyvIR5pEmVnLv2B7Z7cqPj63EYOUL4eiclIuum8kU=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=IXtsa9iP6chqdiGmigzUf7lG2Irr/aBvRiAuA2q6OYhyCaWF3iZ2hAbh/KILZuviY
	 +zp41o3LLDog1EFRTtL7q+1rflpLVotj07GoIEX5Srk7Ao1SJWVCqejFtQHm/mDvV2
	 78NcBL/ed+r3pkixBpfAHYinJAsX/LU0+Uo1CeA6fsbNZp3XEvXAuwA8EL4a0G/uzn
	 SBOYo6lRG/7iUcgazpXWAJit+aHXpaW7d2GlCHjq+8LfF6QEsx5XMCzCz+TZ0EovAD
	 vVTLn6Zi+ieEvlkiJn+sO96XmNjJPRwXwh5WCgdYxvdaARZxoI/Xoic77GFnRQtRVc
	 s3/Zrr6yCHD3w==
Date: Tue, 15 Apr 2025 16:48: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: 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?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>, 
    Jason Andryuk <jason.andryuk@amd.com>, 
    "Daniel P . Smith" <dpsmith@apertussolutions.com>
Subject: Re: [PATCH v2 2/7] Overhaul how Argo is built and packged
In-Reply-To: <20250414101843.2348330-3-andrew.cooper3@citrix.com>
Message-ID: <alpine.DEB.2.22.394.2504151645260.8008@ubuntu-linux-20-04-desktop>
References: <20250414101843.2348330-1-andrew.cooper3@citrix.com> <20250414101843.2348330-3-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, 14 Apr 2025, Andrew Cooper wrote:
> Right now, the argo artefacts are a pile of files which the test has to turn
> back into something which resembles a filesystem.  Furthermore, because we do
> not build modules for the main kernel, it is extra important to make sure that
> xen-argo.ko doesn't get out of sync.
> 
> Build argo conditionally as part of the linux artefact.  It's ~100kb all
> together, compared to ~14M for the kernel.
> 
> Produce a single argo.cpio.gz with xen-argo.ko in the standard location.
> Prune userspace down to just the executables and libraries.
> 
> This is cribbed from the existing scripts/x86_64-linux-argo.sh, which stays in
> place in the short term until Xen can be updated to use the new scheme.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Do we need to remove x86_64-argo-linux.sh?



From xen-devel-bounces@lists.xenproject.org Tue Apr 15 23:48:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 15 Apr 2025 23:48:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.954684.1348671 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4q1C-00086O-OS; Tue, 15 Apr 2025 23:48:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 954684.1348671; Tue, 15 Apr 2025 23:48:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4q1C-00086H-Kp; Tue, 15 Apr 2025 23:48:42 +0000
Received: by outflank-mailman (input) for mailman id 954684;
 Tue, 15 Apr 2025 23:48: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=wZ1T=XB=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u4q1A-00086A-MJ
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 23:48:40 +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 2421a381-1a54-11f0-9ffb-bf95429c2676;
 Wed, 16 Apr 2025 01:48:34 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id A69295C5654;
 Tue, 15 Apr 2025 23:46:15 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7EA99C4CEE7;
 Tue, 15 Apr 2025 23:48: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: 2421a381-1a54-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1744760912;
	bh=1u0oYoQW3wmsN32G33PGXctmSejMaFkhOsg62oxTZ70=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=ah9ZMaE4bDbmfdmdjChQc5ER3qg5O7bt78DYX1+utlebrvvkw4xs2301cU7lZT73I
	 Dd+sJnaxs7loG4l4X/utJyEmujBBK4dWzzOf1GDMpzY5Oo6mFoIix4aq2G4IUEiqnv
	 yY9uKgKeIjYrBO3HKJybHWTd4Yuaqx4aONgqtc93tJimGP5X2R4gtnRXyIWWkWVsvB
	 npLR0ksd+8JrxbHQ6HehQhwJqSiqtDvqWo9kHwKsuNiuONLRB720oDl+VPzfqSqaCz
	 PXvBZ+IU5R7x2+jY6B1OSvE37BprVPDXOIMOnjBFI8QZsDVLZdWDHhdOveC+LWH36q
	 Pmi5PtePE55cw==
Date: Tue, 15 Apr 2025 16:48:29 -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: Xen-devel <xen-devel@lists.xenproject.org>, 
    =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>, 
    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 v3 2/6] CI: avoid repacking initrd as part of the test
 job
In-Reply-To: <20250414110903.2355303-3-andrew.cooper3@citrix.com>
Message-ID: <alpine.DEB.2.22.394.2504151637100.8008@ubuntu-linux-20-04-desktop>
References: <20250414110903.2355303-1-andrew.cooper3@citrix.com> <20250414110903.2355303-3-andrew.cooper3@citrix.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; BOUNDARY="8323329-1964788768-1744760523=:8008"
Content-ID: <alpine.DEB.2.22.394.2504151646090.8008@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-1964788768-1744760523=:8008
Content-Type: text/plain; CHARSET=UTF-8
Content-Transfer-Encoding: 8BIT
Content-ID: <alpine.DEB.2.22.394.2504151646091.8008@ubuntu-linux-20-04-desktop>

On Mon, 14 Apr 2025, Andrew Cooper wrote:
> From: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
> 
> Use the new test-artifacts which provide rootfs.cpio.gz rather than
> initrd.tar.gz.  rootfs.cpio.gz also has all the necessary top-level
> directories, and includes the rc_verbose setting, so these modifications can
> be dropped.
> 
> Having that, do not repack the whole initrd, but only pack modified
> files and rely on Linux handling of concatenated archives.
> This allows packing just test-related files (which includes the whole
> toolstack), instead of the whole initrd.
> 
> For xilinx-smoke-dom0-x86_64.sh, this involves instructing grub not to unzip
> the archive, as doing so corrupts it.
> 
> Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

[...]


> diff --git a/automation/scripts/qubes-x86-64.sh b/automation/scripts/qubes-x86-64.sh
> index c4be71464246..e2376cb51cb4 100755
> --- a/automation/scripts/qubes-x86-64.sh
> +++ b/automation/scripts/qubes-x86-64.sh
> @@ -164,16 +164,13 @@ ${domU_extra_config}
>  "
>  
>  if [ -n "$domU_check" ]; then
> -    # DomU
> +    # DomU rootfs
> +    cp binaries/rootfs.cpio.gz binaries/domU-rootfs.cpio.gz
> +
> +    # test-local configuration
>      mkdir -p rootfs
>      cd rootfs
> -    # fakeroot is needed to preserve device nodes in rootless podman container
> -    fakeroot -s ../fakeroot-save tar xzf ../binaries/initrd.tar.gz
> -    mkdir proc
> -    mkdir run
> -    mkdir srv
> -    mkdir sys
> -    rm var/run
> +    mkdir -p etc/local.d
>      echo "#!/bin/sh

I am worried about the drop of fakeroot because the newly created dirs
and files we'll have user as owner instead of root.

I suggest we fix this for consistency, and cpio -R 0:0 might suffice.


>  echo 8 > /proc/sys/kernel/printk
> @@ -181,26 +178,22 @@ echo 8 > /proc/sys/kernel/printk
>  ${domU_check}
>  " > etc/local.d/xen.start
>      chmod +x etc/local.d/xen.start
> -    echo "rc_verbose=yes" >> etc/rc.conf
>      echo "domU Welcome to Alpine Linux
>  Kernel \r on an \m (\l)
>  
>  " > etc/issue
> -    find . | fakeroot -i ../fakeroot-save cpio -H newc -o | gzip > ../binaries/domU-rootfs.cpio.gz
> +    find . | cpio -H newc -o | gzip >> ../binaries/domU-rootfs.cpio.gz
>      cd ..
>      rm -rf rootfs
>  fi
>  
> -# DOM0 rootfs
> +# Dom0 rootfs
> +cp binaries/rootfs.cpio.gz binaries/dom0-rootfs.cpio.gz
> +
> +# test-local configuration
>  mkdir -p rootfs
>  cd rootfs
> -fakeroot -s ../fakeroot-save tar xzf ../binaries/initrd.tar.gz
> -mkdir boot
> -mkdir proc
> -mkdir run
> -mkdir srv
> -mkdir sys
> -rm var/run
> +mkdir -p boot etc/local.d
>  cp -ar ../binaries/dist/install/* .
>  cp -ar ../binaries/tests .
>  cp -a ../automation/scripts/run-tools-tests tests/
> @@ -237,7 +230,6 @@ fi
>  chmod +x etc/local.d/xen.start
>  echo "$domU_config" > etc/xen/domU.cfg
>  
> -echo "rc_verbose=yes" >> etc/rc.conf
>  echo "XENCONSOLED_TRACE=all" >> etc/default/xencommons
>  echo "QEMU_XEN=/bin/false" >> etc/default/xencommons
>  mkdir -p var/log/xen/console
> @@ -245,7 +237,7 @@ cp ../binaries/bzImage boot/vmlinuz
>  if [ -n "$domU_check" ]; then
>      cp ../binaries/domU-rootfs.cpio.gz boot/initrd-domU
>  fi
> -find . | fakeroot -i ../fakeroot-save cpio -H newc -o | gzip > ../binaries/dom0-rootfs.cpio.gz
> +find . | cpio -H newc -o | gzip >> ../binaries/dom0-rootfs.cpio.gz
>  cd ..
--8323329-1964788768-1744760523=:8008--


From xen-devel-bounces@lists.xenproject.org Wed Apr 16 00:02:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 00:02:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.954709.1348690 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4qEk-0004Je-Mg; Wed, 16 Apr 2025 00:02:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 954709.1348690; Wed, 16 Apr 2025 00: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 1u4qEk-0004JX-Iy; Wed, 16 Apr 2025 00:02:42 +0000
Received: by outflank-mailman (input) for mailman id 954709;
 Wed, 16 Apr 2025 00:02: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=RcVf=XC=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u4qEi-0004JR-Ep
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 00:02:40 +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 1b701060-1a56-11f0-9eaf-5ba50f476ded;
 Wed, 16 Apr 2025 02:02:39 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by nyc.source.kernel.org (Postfix) with ESMTP id 11B85A4A7B9;
 Tue, 15 Apr 2025 23:57:09 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1E27CC4CEE7;
 Wed, 16 Apr 2025 00:02:36 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1b701060-1a56-11f0-9eaf-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1744761757;
	bh=thZ2TEjJjpXSWwKUah121xnc550t/L7IdPewqWYEe0k=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=gRkYe+mFv4+BuPOuCrGQ0MFg20lbFksMwUuMcMYKHCV3GUkXcbh2OMKsYzWA+kmSu
	 xKA8GHtn6VzXfgx3W2SPgguEwN6GiwePEHSBAuicJEyjJ6/XtzrFH1TYVeJKTiSCh+
	 Rtecz5gLwvxy47l0CyS3phl5p/35GCn64Ye37s5oQA9sD/TbVq5VWgd5IsOk2NhSo9
	 qm2BmXWRlpSLWEOq6vWmCbKeSqf4eHzZopDB3cjrrm71QkLKDLKa+me2oSBTc1Zk+j
	 /HYA5rTeNivEU3A0fCLiTNIQG66TasNVxTj+xw2faFp5eXVRrCSDO3AvxE+d3/vfg5
	 SoLfK+6C6nUZA==
Date: Tue, 15 Apr 2025 17:02:34 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Anthony PERARD <anthony@xenproject.org>
cc: Andrew Cooper <andrew.cooper3@citrix.com>, 
    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?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: Re: [PATCH] CI: Build with --prefix=/usr rather than setting
 LD_LIBRARY_PATH
In-Reply-To: <Z_598uOF2pBy87jj@l14>
Message-ID: <alpine.DEB.2.22.394.2504151702260.8008@ubuntu-linux-20-04-desktop>
References: <20250415135426.2442073-1-andrew.cooper3@citrix.com> <Z_598uOF2pBy87jj@l14>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Tue, 15 Apr 2025, Anthony PERARD wrote:
> On Tue, Apr 15, 2025 at 02:54:26PM +0100, Andrew Cooper wrote:
> > This also moves executables too.  I'm not sure why xilinx-smoke-dom0-x86_64.sh
> > was overriding PATH too, as /usr/local is clearly in PATH for all other tests,
> > but drop that too.
> > 
> > No practical change.
> > 
> > Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> 
> Reviewed-by: Anthony PERARD <anthony.perard@vates.tech>

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


From xen-devel-bounces@lists.xenproject.org Wed Apr 16 00:04:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 00:04:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.954719.1348701 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4qGH-0004rZ-Vt; Wed, 16 Apr 2025 00:04:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 954719.1348701; Wed, 16 Apr 2025 00: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 1u4qGH-0004rS-Sw; Wed, 16 Apr 2025 00:04:17 +0000
Received: by outflank-mailman (input) for mailman id 954719;
 Wed, 16 Apr 2025 00:04: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=RcVf=XC=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u4qGH-0004rM-7J
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 00:04:17 +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 532c1e23-1a56-11f0-9ffb-bf95429c2676;
 Wed, 16 Apr 2025 02:04:12 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by nyc.source.kernel.org (Postfix) with ESMTP id BD1BCA4A7A9;
 Tue, 15 Apr 2025 23:58:42 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 40202C4CEE7;
 Wed, 16 Apr 2025 00:04: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: 532c1e23-1a56-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1744761850;
	bh=ck3g4hbRNkZLQBFdyBxGLZ4u9ILqhb7kcAyB6crRRkc=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=p9Rf7AysgMQtbhS8fPzXIDI8cTPbtCgIUItBYmsZ2g23eeX2SDW0qctb2q99g3tnA
	 YwDnLKveHas4+IAWiH+O6rhxC4xYH3rAAbbqMigWF0zLXlHV1xhQA0fZ6ObQoFVmYY
	 YtkJiBxoOpw9PZFOHJGQ01HhQPJXhKP/+izbzeGcD9cAPZFU1MvNxeG2aRA70xr9mm
	 0dBELssgrmrinaDjYp3TDHrmPuVa35ZK0jrpOzB3Fgi960aOytwRVJGGpBWkWcHYZv
	 ejmARTYhtFDpDBhEQT8gScmUGWj0iMum4NCzyOlohoeUCMll22kYQRa0VYdHAitn9j
	 BM3dnvq1D1w9A==
Date: Tue, 15 Apr 2025 17:04:08 -0700 (PDT)
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, Doug Goldstein <cardoe@cardoe.com>
Subject: Re: [XEN PATCH] automation: Avoid changing source files for randconfig
 tests
In-Reply-To: <Z-_qJ4eIDpGvfRFL@l14>
Message-ID: <alpine.DEB.2.22.394.2504151704020.8008@ubuntu-linux-20-04-desktop>
References: <20250326142754.5441-1-anthony.perard@vates.tech> <alpine.DEB.2.22.394.2503261910100.563920@ubuntu-linux-20-04-desktop> <Z-UvUUwUToTr5OgD@l14> <alpine.DEB.2.22.394.2503271554250.563920@ubuntu-linux-20-04-desktop> <Z-_qJ4eIDpGvfRFL@l14>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Fri, 4 Apr 2025, Anthony PERARD wrote:
> On Thu, Mar 27, 2025 at 03:59:16PM -0700, Stefano Stabellini wrote:
> > I was suggesting to create a file under /tmp instead to keep the source
> > directory cleaner,
> 
> There's an easy way to keep the source directory *extra clean* when
> doing hypervisor build, like we are doing here for randoconfig, that is:
> out-of-tree build!
> 
> > and also because I don't think it is an issue to add
> > files to /tmp and not clean them because they get removed when the
> > container exits. Isn't it the case? Locally it looks like each
> > containers gets its own /tmp that is cleaned after exit.
> 
> Sorry, I tend to think that those script could be use outside of the CI
> or containers, and /tmp can have a lot of different configuration, so
> it's better to clean after oneself when possible.
> 
> As for running containers locally, maybe it's faster to reuse a
> container instead of creating a new one from an image, which mean /tmp
> is probably not cleaned on exit. But I guess people usuasly do `docker
> run --rm` or use `containerize` which does the same.
> 
> > So my preference is to use mktemp and *not* clean the tmp file on exit.
> > 
> > If you think we have to clean the tmp file on exit, then let's go with
> > your xen/allrandom.config.tmp approach as I would prefer to avoid the
> > "trap" command to keep the sources simpler.
> 
> So, is that an Ack on my original patch?

Yes


From xen-devel-bounces@lists.xenproject.org Wed Apr 16 00:08:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 00:08:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.954660.1348710 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4qKY-0005S3-FA; Wed, 16 Apr 2025 00:08:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 954660.1348710; Wed, 16 Apr 2025 00:08: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 1u4qKY-0005Rw-C2; Wed, 16 Apr 2025 00:08:42 +0000
Received: by outflank-mailman (input) for mailman id 954660;
 Tue, 15 Apr 2025 21: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=p6zj=XB=tum.de=manuel.andreas@srs-se1.protection.inumbo.net>)
 id 1u4oCW-0000LC-RL
 for xen-devel@lists.xenproject.org; Tue, 15 Apr 2025 21:52:19 +0000
Received: from postout2.mail.lrz.de (postout2.mail.lrz.de [129.187.255.138])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e324bace-1a43-11f0-9eae-5ba50f476ded;
 Tue, 15 Apr 2025 23:52:13 +0200 (CEST)
Received: from lxmhs52.srv.lrz.de (localhost [127.0.0.1])
 by postout2.mail.lrz.de (Postfix) with ESMTP id 4ZcdDD2ymnzyWC
 for <xen-devel@lists.xenproject.org>; Tue, 15 Apr 2025 23:52:12 +0200 (CEST)
Received: from postout2.mail.lrz.de ([127.0.0.1])
 by lxmhs52.srv.lrz.de (lxmhs52.srv.lrz.de [127.0.0.1]) (amavis, port 20024)
 with LMTP id Cwlj-3_X8RcF for <xen-devel@lists.xenproject.org>;
 Tue, 15 Apr 2025 23:52:11 +0200 (CEST)
Received: from [192.168.0.140] (unknown [46.128.11.183])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256)
 (No client certificate requested)
 by postout2.mail.lrz.de (Postfix) with ESMTPSA id 4ZcdDC1cJnzyW9
 for <xen-devel@lists.xenproject.org>; Tue, 15 Apr 2025 23:52:11 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e324bace-1a43-11f0-9eae-5ba50f476ded
Authentication-Results: postout.lrz.de (amavis); dkim=pass (2048-bit key)
 reason="pass (just generated, assumed good)" header.d=tum.de
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tum.de; h=
	subject:subject:from:from:content-language:user-agent
	:mime-version:date:date:message-id:content-type:content-type
	:received:received; s=tu-postout21; t=1744753931; bh=zQeDeQ0W1y6
	wYnTX8FySKIhUdQH5ebIhmhLL6OmhJbc=; b=kXdmglTuGtQC0ujNlD+H410WduV
	xE0aeLVuUG6oUPJa7kYUfaVZDa5pp0kQnseDQTDAbd6U+FAfL/U4RLjQfBhd9QLZ
	o+zjur5zgQYKpip3DmsZ8OGEpl+oe4C96qRXY/ei7SXVHD1g+w4tD0JPv2UaHGGy
	8vM/wLIKerOoVFHKazA8DD8bUitSPPKOOvCM4b3sFhJ3wm+oQhIn3toBESs1Ceng
	pxL16Zc5ivxOfHBVsJWflH+jXFbZJe0a7CjWmwKvRByXrdGN/untMVD8+uDm7R3F
	4bLV9UmFhRZPnfpqZoXX2xe/5nCgVPLfFyRg6vTKUw0VYCrAPYunxxjWlOw==
X-Virus-Scanned: by amavisd-new at lrz.de in lxmhs52.srv.lrz.de
X-Spam-Flag: NO
X-Spam-Score: -2.869
X-Spam-Level:
X-Spam-Status: No, score=-2.869 tagged_above=-999 required=5
 tests=[ALL_TRUSTED=-1, BAYES_00=-1.9, DMARC_ADKIM_RELAXED=0.001,
 DMARC_ASPF_RELAXED=0.001, DMARC_POLICY_NONE=0.001, LRZ_BND_M12_AN24=0.001,
 LRZ_DMARC_FAIL=0.001, LRZ_DMARC_FAIL_NONE=0.001, LRZ_DMARC_POLICY=0.001,
 LRZ_DMARC_TUM_FAIL=0.001, LRZ_DMARC_TUM_REJECT=3.5,
 LRZ_DMARC_TUM_REJECT_PO=-3.5, LRZ_ENVFROM_FROM_MATCH=0.001,
 LRZ_ENVFROM_TUM_S=0.001, LRZ_FROM_ENVFROM_ALIGNED_STRICT=0.001,
 LRZ_FROM_HAS_A=0.001, LRZ_FROM_HAS_AAAA=0.001, LRZ_FROM_HAS_MDOM=0.001,
 LRZ_FROM_HAS_MX=0.001, LRZ_FROM_HOSTED_DOMAIN=0.001,
 LRZ_FROM_NAME_IN_ADDR=0.001, LRZ_FROM_PHRASE=0.001, LRZ_FROM_PRE_SUR=0.001,
 LRZ_FROM_PRE_SUR_PHRASE=0.001, LRZ_FROM_TUM_S=0.001, LRZ_HAS_BND=0.001,
 LRZ_HAS_CLANG=0.001, LRZ_HAS_CT=0.001, LRZ_HAS_MIME_VERSION=0.001,
 LRZ_HAS_SPF=0.001, LRZ_MIME_BND_SPAM_184=0.001,
 LRZ_MSGID_HL8_3HL4_HL12=0.001, LRZ_MSGID_MOZ=0.001, LRZ_TO_SHORT=0.001,
 LRZ_UA_MOZ=0.001] autolearn=no autolearn_force=no
Content-Type: multipart/mixed; boundary="------------YdYylOs7HoDWEUUYS4zhUrGa"
Message-ID: <e7347061-6dc6-44a3-ad41-270e705db2c5@tum.de>
Date: Tue, 15 Apr 2025 23:52:10 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: xen-devel@lists.xenproject.org
From: Manuel Andreas <manuel.andreas@tum.de>
Subject: Assert in x86_emulate_wrapper triggerable by HVM domain
Autocrypt: addr=manuel.andreas@tum.de; keydata=
 xjMEY9Zx/RYJKwYBBAHaRw8BAQdALWzRzW9a74DX4l6i8VzXGvv72Vz0qfvj9s7bjBD905nN
 Jk1hbnVlbCBBbmRyZWFzIDxtYW51ZWwuYW5kcmVhc0B0dW0uZGU+wokEExYIADEWIQQuSfNX
 11QV6exAUmOqZGwY4LuingUCY9Zx/QIbAwQLCQgHBRUICQoLBRYCAwEAAAoJEKpkbBjgu6Ke
 McQBAPyP530S365I50I5rM2XjH5Hr9YcUQATD5dusZJMDgejAP9T/wUurwQSuRfm1rK8cNcf
 w4wP3+PLvL+J+kuVku93CM44BGPWcf0SCisGAQQBl1UBBQEBB0AmCAf31tLBD5tvtdZ0XX1B
 yGLUAxhgmFskGyPhY8wOKQMBCAfCeAQYFggAIBYhBC5J81fXVBXp7EBSY6pkbBjgu6KeBQJj
 1nH9AhsMAAoJEKpkbBjgu6Kej6YA/RvJdXMjsD5csifolLw53KX0/ElM22SvaGym1+KiiVND
 AQDy+y+bCXI+J713/AwLBsDxTEXmP7Cp49ZqbAu83NnpBQ==

This is a multi-part message in MIME format.
--------------YdYylOs7HoDWEUUYS4zhUrGa
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Dear all,

my fuzzing infrastructure discovered that an assert in 
x86_emulate_wrapper is able to be triggered by an HVM domain executing a 
specially crafted repeating movs instruction.

Specifically, if the emulation of the rep movs instruction triggers an 
exception (e.g. by accessing invalid memory after some amount of 
iterations), the emulation will be halted at that point.
However, the instruction manual requires that _some_ register state 
(namely the updated value of rcx) shall be commited, whereas the 
instruction pointer needs to be rolled back to point to the address of 
the instruction itself. The assert checks for the latter. Problematic is 
the fact that for these type of repeating instructions, Xen seems to 
eventually just commit all register state when it encounters an exception:

    557  #define put_rep_prefix(reps_completed) 
({                               \
    558      if ( rep_prefix() 
)                                                 \
    559 { \
    560          __put_rep_prefix(&_regs, ctxt->regs, ad_bytes, 
reps_completed); \
    561          if ( unlikely(rc == X86EMUL_EXCEPTION) 
)                        \
    562              goto 
complete_insn;                                         \
    563 } \
    564  })

   8356   complete_insn: /* Commit shadow register state. */
   8357      put_fpu(fpu_type, false, state, ctxt, ops);
   8358      fpu_type = X86EMUL_FPU_none;
   8359
   8360      /* Zero the upper 32 bits of %rip if not in 64-bit mode. */
   8361      if ( !mode_64bit() )
   8362          _regs.r(ip) = (uint32_t)_regs.r(ip);
   8363
   8364      /* Should a singlestep #DB be raised? */
   8365      if ( rc == X86EMUL_OKAY && singlestep && !ctxt->retire.mov_ss )
   8366      {
   8367          ctxt->retire.singlestep = true;
   8368          ctxt->retire.sti = false;
   8369      }
   8370
   8371      if ( rc != X86EMUL_DONE )
   8372          *ctxt->regs = _regs; // <- Incorrect RIP is commited

I've attached an XTF test that should trigger the aforementioned assert 
on the latest release commit: 3ad5d648cda5add395f49fc3704b2552aae734f7

Best,
Manuel

--------------YdYylOs7HoDWEUUYS4zhUrGa
Content-Type: application/gzip; name="poc-x86emul-assert-orig-ip.tar.gz"
Content-Disposition: attachment; filename="poc-x86emul-assert-orig-ip.tar.gz"
Content-Transfer-Encoding: base64

H4sIAAAAAAAAA+2WXU/bMBSGe+1f4WVUallDkzZJURnTGFS74UOiZdLEEEpttzUkdha7pWja
f5/ttBobtN1EBUL4ufHXax/Hx+fEGUfudDsi6ThxYyFILl2e06FLs3ppXXiKVhjq0m+F3t1y
TskPwlYz8luNICp5fqjGSzBc2w6WMBYyziEsCXk7FUt0q8ZfKNli/6cxZVtoDTa0g6MgWOR/
P1TO9oNWFDXDVqOh/R811ZWA3hpsr+SV+7++uQngJvw4oAmBkggp6iuvhJmQk4HRu4vlSmek
WTwkq7Rw9TKSYw4POBJwwPN/tS3I/3xWHbylDCVjTOD7qRxsjT4AgDgTEqJRXNi8lFQm5PwC
7kKnp9pLNu7sADDhFBfztJGKblbBDwAVWU6ZvK44XXUBJWVDOM5gsQDUC1yqQ9ET33xjTlWt
pKfEIoUTnsRSe6sCTZ/GSfkEbnhTv1GD5XKOpjvOvbFtbzDDaDB9QEOw3yfY84xC/KEQEt9t
5iSDapL4rpRYtCtGX62Vy6RoYFq9I28/VIMOQk5N2SYpz291TW3cFJiaQtBihfnXzw/sjOUk
Vg7pq0O4oXIECdN1DDHpj4ezMxTFsel5ypOXYowQEaJyfHZ4qLp/AlA3F+SQoziBkzinegnR
1n0px6QN93UVuTowXBX8iepyPnUPnKK7HwuKXD4YCCLbMNCdMu67NxTL0axNGSZMuqpbuMWS
jCZ6oMNw21y25w7+0tL8T9mAb10Jzh5rw+R/z1v4/2/4zb/yf8vzGzb/PwVFKnJYnBJHXfAl
yaxWKFEsyVDHq1KLjCAaJ/MhwiY05yxVt16o4fPf2WI0SaOgCOaLmdiEnKQquWrphYrI5z6K
V8mS+D+Kr4nOfo+2seL95zWCe++/KPBt/D8F8+fORuX05KRXrffHNMF1xNOUs630GoDjvaPO
7Ie9u+yRtr/X63w+Of1qdLPEAHqdbs/tHH/p6k6TBADg/Ss3I7lKFvDdLjRPLw7Aw/sYErOJ
5z4ki8VisVgsFovFYrFYLBaLxWKxWCyWF8QvKyILuQAoAAA=

--------------YdYylOs7HoDWEUUYS4zhUrGa--


From xen-devel-bounces@lists.xenproject.org Wed Apr 16 00:48:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 00:48:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.954748.1348721 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4qx1-0003km-HM; Wed, 16 Apr 2025 00:48:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 954748.1348721; Wed, 16 Apr 2025 00: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 1u4qx1-0003kf-E0; Wed, 16 Apr 2025 00:48:27 +0000
Received: by outflank-mailman (input) for mailman id 954748;
 Wed, 16 Apr 2025 00:48: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=RcVf=XC=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u4qwz-0003kZ-MJ
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 00:48: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 7ce96a6c-1a5c-11f0-9eaf-5ba50f476ded;
 Wed, 16 Apr 2025 02:48:19 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by nyc.source.kernel.org (Postfix) with ESMTP id D6D53A4A80C;
 Wed, 16 Apr 2025 00:42:49 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id BFD77C4CEE7;
 Wed, 16 Apr 2025 00:48:16 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7ce96a6c-1a5c-11f0-9eaf-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1744764497;
	bh=a0O26c4Cj43kfU98RbiNOvDMT8WLwKSSrfD6HelEqls=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=Wf6m9jddKI4FfVDUeopWEOGA3aDD0eXASunU/lIVbWZkzE1KZtHd/Fc5i1yvwaZ2x
	 MOl4ye6FIzRdm3glmaSAJFWDYeGOuZy4tyFDkIlLh8DQ5RSRwl0A0pxHjyXER5sjSf
	 frNDnrQ+EFM5ApTEYjJWYk9xtUXIGvUm+iQFW7Cul2TgSKf0JxGs6gsiOTITWpqfzq
	 wXANs/cHOjQCRaGmrT55BRhN04FAmVYaQA8wg5zckc2SL1gKvn763Z8YDBERqtBwlA
	 S2XpxSZy3Wj+hW5hTs8u5UsRiRvDiPgK6dcXa68PU0YuG3hM4tp6gjZgtBVPIDsM7e
	 8IEOy5avpaeZA==
Date: Tue, 15 Apr 2025 17:48:15 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jason Andryuk <jason.andryuk@amd.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>
Subject: Re: [PATCH v4 2/7] xen/arm: dom0less hwdom construction
In-Reply-To: <20250407194038.83860-3-jason.andryuk@amd.com>
Message-ID: <alpine.DEB.2.22.394.2504151748070.8008@ubuntu-linux-20-04-desktop>
References: <20250407194038.83860-1-jason.andryuk@amd.com> <20250407194038.83860-3-jason.andryuk@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, 7 Apr 2025, Jason Andryuk wrote:
> When creating a hardware domain, have the dom0less code call
> construct_hwdom() which is shared with the dom0 code.  The hardware
> domain requires building that best matches the dom0 build path.  Re-use
> it to keep them in sync.
> 
> The device tree node of the dom0less config is now passed into
> construct_hwdom().  dom0 uses /chosen for process_shm while a hwdom will
> use the value from its dom0less device tree node.
> 
> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>

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


> ---
> v3:
> Rebase on process_shm_chosen() removal
> ---
>  xen/arch/arm/dom0less-build.c           | 57 ++++++++++++++-----------
>  xen/arch/arm/domain_build.c             |  7 +--
>  xen/arch/arm/include/asm/domain_build.h |  3 +-
>  3 files changed, 39 insertions(+), 28 deletions(-)
> 
> diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
> index bd15563750..7bc6a6c4d7 100644
> --- a/xen/arch/arm/dom0less-build.c
> +++ b/xen/arch/arm/dom0less-build.c
> @@ -929,36 +929,45 @@ static int __init construct_domU(struct domain *d,
>      /* type must be set before allocate memory */
>      d->arch.type = kinfo.type;
>  #endif
> -    if ( !dt_find_property(node, "xen,static-mem", NULL) )
> -        allocate_memory(d, &kinfo);
> -    else if ( !is_domain_direct_mapped(d) )
> -        allocate_static_memory(d, &kinfo, node);
> -    else
> -        assign_static_memory_11(d, &kinfo, node);
> -
> -    rc = process_shm(d, &kinfo, node);
> -    if ( rc < 0 )
> -        return rc;
> -
> -    /*
> -     * Base address and irq number are needed when creating vpl011 device
> -     * tree node in prepare_dtb_domU, so initialization on related variables
> -     * shall be done first.
> -     */
> -    if ( kinfo.vpl011 )
> +    if ( is_hardware_domain(d) )
>      {
> -        rc = domain_vpl011_init(d, NULL);
> +        rc = construct_hwdom(&kinfo, node);
>          if ( rc < 0 )
>              return rc;
>      }
> +    else
> +    {
> +        if ( !dt_find_property(node, "xen,static-mem", NULL) )
> +            allocate_memory(d, &kinfo);
> +        else if ( !is_domain_direct_mapped(d) )
> +            allocate_static_memory(d, &kinfo, node);
> +        else
> +            assign_static_memory_11(d, &kinfo, node);
>  
> -    rc = prepare_dtb_domU(d, &kinfo);
> -    if ( rc < 0 )
> -        return rc;
> +        rc = process_shm(d, &kinfo, node);
> +        if ( rc < 0 )
> +            return rc;
>  
> -    rc = construct_domain(d, &kinfo);
> -    if ( rc < 0 )
> -        return rc;
> +        /*
> +         * Base address and irq number are needed when creating vpl011 device
> +         * tree node in prepare_dtb_domU, so initialization on related variables
> +         * shall be done first.
> +         */
> +        if ( kinfo.vpl011 )
> +        {
> +            rc = domain_vpl011_init(d, NULL);
> +            if ( rc < 0 )
> +                return rc;
> +        }
> +
> +        rc = prepare_dtb_domU(d, &kinfo);
> +        if ( rc < 0 )
> +            return rc;
> +
> +        rc = construct_domain(d, &kinfo);
> +        if ( rc < 0 )
> +            return rc;
> +    }
>  
>      domain_vcpu_affinity(d, node);
>  
> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
> index b8f282ff10..0a329f9f5e 100644
> --- a/xen/arch/arm/domain_build.c
> +++ b/xen/arch/arm/domain_build.c
> @@ -2305,10 +2305,11 @@ static int __init construct_dom0(struct domain *d)
>      if ( rc < 0 )
>          return rc;
>  
> -    return construct_hwdom(&kinfo);
> +    return construct_hwdom(&kinfo, NULL);
>  }
>  
> -int __init construct_hwdom(struct kernel_info *kinfo)
> +int __init construct_hwdom(struct kernel_info *kinfo,
> +                           const struct dt_device_node *node)
>  {
>      struct domain *d = kinfo->d;
>      int rc;
> @@ -2327,7 +2328,7 @@ int __init construct_hwdom(struct kernel_info *kinfo)
>  
>      if ( acpi_disabled )
>      {
> -        rc = process_shm(d, kinfo, NULL);
> +        rc = process_shm(d, kinfo, node);
>          if ( rc < 0 )
>              return rc;
>      }
> diff --git a/xen/arch/arm/include/asm/domain_build.h b/xen/arch/arm/include/asm/domain_build.h
> index 134290853c..17619c875d 100644
> --- a/xen/arch/arm/include/asm/domain_build.h
> +++ b/xen/arch/arm/include/asm/domain_build.h
> @@ -13,7 +13,8 @@ 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 construct_hwdom(struct kernel_info *kinfo);
> +int construct_hwdom(struct kernel_info *kinfo,
> +                    const struct dt_device_node *node);
>  int domain_fdt_begin_node(void *fdt, const char *name, uint64_t unit);
>  int make_chosen_node(const struct kernel_info *kinfo);
>  int make_cpus_node(const struct domain *d, void *fdt);
> -- 
> 2.49.0
> 


From xen-devel-bounces@lists.xenproject.org Wed Apr 16 00:51:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 00:51:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.954759.1348732 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4r0B-0005eb-Va; Wed, 16 Apr 2025 00:51:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 954759.1348732; Wed, 16 Apr 2025 00:51: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 1u4r0B-0005eU-Rd; Wed, 16 Apr 2025 00:51:43 +0000
Received: by outflank-mailman (input) for mailman id 954759;
 Wed, 16 Apr 2025 00:51: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=RcVf=XC=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u4r0A-0005eI-9P
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 00:51:42 +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 ecfa20b1-1a5c-11f0-9ffb-bf95429c2676;
 Wed, 16 Apr 2025 02:51:26 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by nyc.source.kernel.org (Postfix) with ESMTP id BA025A4079A;
 Wed, 16 Apr 2025 00:45:57 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 54596C4CEE7;
 Wed, 16 Apr 2025 00:51:24 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ecfa20b1-1a5c-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1744764685;
	bh=vagw2PVVaBWvACu7BqsQyep+qvn52E7S3xmMg3NAi8M=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=TWL91K5kJpasnxfMxNdNy8p/3NVBmP+bU05sCENMgvWb3GlRkdxEpdGhQf/hAKgWh
	 FRqOQIZSelHsHwI1ymaciY0kipI8oPV0UoFTl1Zvpennmp8SNjDcZTkeXSphn5fYpc
	 Yl1ZQZGBkqIsIJvawZDCnW/v1sf4UINt7R4ZT3f7kny+ROFx6Z/p/pVFzDPO7hdQhK
	 YZQwL2V/RRpNsKhz5lyoi/M++CqeiJvANvVJGYe+RsuHriZcHP6aZjQGsJhM22jQkP
	 fIeYj4/Gw3Hjd8V2s+sxCSIBLnQznj/42xFUztUxQCPc/O2xNU0VPzREsPUuWzi1Ro
	 uSEWeUkhFZMMA==
Date: Tue, 15 Apr 2025 17:51:22 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jason Andryuk <jason.andryuk@amd.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>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    Anthony PERARD <anthony.perard@vates.tech>, 
    Jan Beulich <jbeulich@suse.com>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Subject: Re: [PATCH v4 4/7] xen/arm: dom0less seed xenstore grant table
 entry
In-Reply-To: <20250407194038.83860-5-jason.andryuk@amd.com>
Message-ID: <alpine.DEB.2.22.394.2504151751140.8008@ubuntu-linux-20-04-desktop>
References: <20250407194038.83860-1-jason.andryuk@amd.com> <20250407194038.83860-5-jason.andryuk@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, 7 Apr 2025, Jason Andryuk wrote:
> xenstored maps other domains' xenstore pages.  Currently this relies on
> init-dom0less or xl to seed the grants from Dom0.  With split
> hardware/control/xenstore domains, this is problematic since we don't
> want the hardware domain to be able to map other domains' resources
> without their permission.  Instead have the hypervisor seed the grant
> table entry for every dom0less domain.  The grant is then accessible as
> normal.
> 
> C xenstored uses grants, so it can map the xenstore pages from a
> non-dom0 xenstore domain.  OCaml xenstored uses foreign mappings, so it
> can only run from a privileged domain (dom0).
> 
> Add a define to indicate the late alloc xsentore PFN, to better indicate
> what is being checked.  Use UINT64_MAX instead of ~0ULL as the HVM_PARAM
> field is a uint64_t.  UINT64_MAX is not defined, so add it.
> 
> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>

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


> ---
> v4:
> ASSERT gfn against UINT32_MAX and use < to avoid INVALID_GFN on 32bit
> builds
> Stefano gave R-b, but holding off addition because of changes
> Use IS_ENABLED(CONFIG_GRANT_TABLE) instead of wrapper
> Add XENSTORE_PFN_LATE_ALLOC
> Add UINT64_MAX
> 
> v3:
> Expand commit message about C vs. OCaml xenstored.
> Remove __init and flags from gnttab_seed_entry()
> Change frame to uint32_t
> ASSERT gfn fits in a uint32_t
> Rebase on mem paging changes
> 
> v2:
> Tweak commit message
> Mark gnttab_seed_entry() __init and put inside CONFIG_DOM0LESS_BOOT
> Add ASSERT(!d->creation_finished) and ASSERT(gt->gt_version == 1);
> const struct domain & struct grant_table
> ---
>  xen/arch/arm/dom0less-build.c | 10 +++++++++-
>  xen/common/grant_table.c      | 14 ++++++++++++++
>  xen/include/xen/grant_table.h |  4 ++++
>  xen/include/xen/types.h       |  1 +
>  4 files changed, 28 insertions(+), 1 deletion(-)
> 
> diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
> index bb8cc3be43..188ef40b52 100644
> --- a/xen/arch/arm/dom0less-build.c
> +++ b/xen/arch/arm/dom0less-build.c
> @@ -20,6 +20,8 @@
>  #include <asm/static-memory.h>
>  #include <asm/static-shmem.h>
>  
> +#define XENSTORE_PFN_LATE_ALLOC UINT64_MAX
> +
>  static domid_t __initdata xs_domid = DOMID_INVALID;
>  static bool __initdata need_xenstore;
>  
> @@ -756,7 +758,7 @@ static int __init alloc_xenstore_params(struct kernel_info *kinfo)
>  
>      if ( (kinfo->dom0less_feature & (DOM0LESS_XENSTORE | DOM0LESS_XS_LEGACY))
>                                   == (DOM0LESS_XENSTORE | DOM0LESS_XS_LEGACY) )
> -        d->arch.hvm.params[HVM_PARAM_STORE_PFN] = ~0ULL;
> +        d->arch.hvm.params[HVM_PARAM_STORE_PFN] = XENSTORE_PFN_LATE_ALLOC;
>      else if ( kinfo->dom0less_feature & DOM0LESS_XENSTORE )
>      {
>          rc = alloc_xenstore_page(d);
> @@ -788,6 +790,12 @@ static void __init initialize_domU_xenstore(void)
>          rc = alloc_xenstore_evtchn(d);
>          if ( rc < 0 )
>              panic("%pd: Failed to allocate xenstore_evtchn\n", d);
> +
> +        if ( gfn != XENSTORE_PFN_LATE_ALLOC && IS_ENABLED(CONFIG_GRANT_TABLE) )
> +        {
> +            ASSERT(gfn < UINT32_MAX);
> +            gnttab_seed_entry(d, GNTTAB_RESERVED_XENSTORE, xs_domid, gfn);
> +        }
>      }
>  }
>  
> diff --git a/xen/common/grant_table.c b/xen/common/grant_table.c
> index 6c77867f8c..e75ff98aff 100644
> --- a/xen/common/grant_table.c
> +++ b/xen/common/grant_table.c
> @@ -4346,6 +4346,20 @@ static void gnttab_usage_print(struct domain *rd)
>          printk("no active grant table entries\n");
>  }
>  
> +#ifdef CONFIG_DOM0LESS_BOOT
> +void __init gnttab_seed_entry(const struct domain *d, unsigned int idx,
> +                              domid_t be_domid, uint32_t frame)
> +{
> +    const struct grant_table *gt = d->grant_table;
> +
> +    ASSERT(!d->creation_finished);
> +    ASSERT(gt->gt_version == 1);
> +    shared_entry_v1(gt, idx).flags = GTF_permit_access;
> +    shared_entry_v1(gt, idx).domid = be_domid;
> +    shared_entry_v1(gt, idx).frame = frame;
> +}
> +#endif
> +
>  static void cf_check gnttab_usage_print_all(unsigned char key)
>  {
>      struct domain *d;
> diff --git a/xen/include/xen/grant_table.h b/xen/include/xen/grant_table.h
> index 50edfecfb6..297d7669e9 100644
> --- a/xen/include/xen/grant_table.h
> +++ b/xen/include/xen/grant_table.h
> @@ -33,6 +33,10 @@
>  
>  struct grant_table;
>  
> +/* Seed a gnttab entry for Hyperlaunch/dom0less. */
> +void gnttab_seed_entry(const struct domain *d, unsigned int idx,
> +                       domid_t be_domid, uint32_t frame);
> +
>  #ifdef CONFIG_GRANT_TABLE
>  
>  extern unsigned int opt_gnttab_max_version;
> diff --git a/xen/include/xen/types.h b/xen/include/xen/types.h
> index e8d419b954..73ddccbbd5 100644
> --- a/xen/include/xen/types.h
> +++ b/xen/include/xen/types.h
> @@ -44,6 +44,7 @@ typedef __UINTPTR_TYPE__ uintptr_t;
>  #define UINT8_MAX       (255)
>  #define UINT16_MAX      (65535)
>  #define UINT32_MAX      (4294967295U)
> +#define UINT64_MAX      (18446744073709551615ULL)
>  
>  #define INT_MAX         ((int)(~0U>>1))
>  #define INT_MIN         (-INT_MAX - 1)
> -- 
> 2.49.0
> 


From xen-devel-bounces@lists.xenproject.org Wed Apr 16 01:03:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 01:03:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.954773.1348740 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4rBc-00075s-TN; Wed, 16 Apr 2025 01:03:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 954773.1348740; Wed, 16 Apr 2025 01:03: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 1u4rBc-00075l-Qo; Wed, 16 Apr 2025 01:03:32 +0000
Received: by outflank-mailman (input) for mailman id 954773;
 Wed, 16 Apr 2025 01:03: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=RcVf=XC=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u4rBc-00075f-AH
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 01:03:32 +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 9c563d41-1a5e-11f0-9eaf-5ba50f476ded;
 Wed, 16 Apr 2025 03:03:31 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 370B35C5A96;
 Wed, 16 Apr 2025 01:01:12 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 750C4C4CEE7;
 Wed, 16 Apr 2025 01:03: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: 9c563d41-1a5e-11f0-9eaf-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1744765408;
	bh=oa4EFIK/bQVckc6BSjpg1v4c8a9K8fCod13N3MapAFw=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=FWWvOEeFfvBnzm6NblEB4BsFYIlamGIve4pibhVdMIpcSLq1d+/0TMOXd7tEKMK56
	 Hd7ATM/8yo7y8U2d1RuUiy9yrhvRqkYiZgU1aFUlefkNozk+lweCFkp+CO3wbvt0yu
	 KAxUMjm8zIjwp6AT81RW58zXtkwFh7SK1XML9m7vx3reFpUyZszI2Y/AsTziDqdeLk
	 OUOyYYW/mP/FRC4XVTvSUK0nuViw3hcgg4RGSqCjPfzrk25Z1Yo7zKJ+mVyb/8s2Ne
	 HqmpNe8PHKDIff7wk0BGxOgGajhvv9Hq98i4rL63kIzbo5xHeg/AaaZeAa8PXFST8c
	 30P/1gHATMq2w==
Date: Tue, 15 Apr 2025 18:03:26 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Grygorii Strashko <grygorii_strashko@epam.com>
cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [ImageBuilder] uboot-script-gen: fix arm64 xen u-boot image
 generation
In-Reply-To: <20250414081223.1763630-1-grygorii_strashko@epam.com>
Message-ID: <alpine.DEB.2.22.394.2504151758170.8008@ubuntu-linux-20-04-desktop>
References: <20250414081223.1763630-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 Mon, 14 Apr 2025, Grygorii Strashko wrote:
> From: Grygorii Strashko <grygorii_strashko@epam.com>
> 
> The current code in generate_uboot_images() does not detect arm64 properly
> and always generates ARM u-boot image. This causes Xen boot issues.
> 
> Fix it by searching for "ARM64" for AArch64 binary detection.
> 
> - mkimage -l xen.ub
> Before:
> Image Type:   ARM Linux Kernel Image (uncompressed)
> 
> After:
> Image Type:   AArch64 Linux Kernel Image (uncompressed)
> 
> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
> ---
>  scripts/uboot-script-gen | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/scripts/uboot-script-gen b/scripts/uboot-script-gen
> index a9f698f00fd1..c4d26caf5e0e 100755
> --- a/scripts/uboot-script-gen
> +++ b/scripts/uboot-script-gen
> @@ -815,13 +815,13 @@ function linux_config()
>  
>  generate_uboot_images()
>  {
> -    local arch=$(file -L $XEN | grep "ARM")
> +    local arch=$(file -L $XEN | grep -o "ARM64")

My file -L gives:

for arm32: ARM OpenFirmware [...]
for arm64: Aarch64

So the ARM64 grep wouldn't work as intended. Is the version of `file'
that you are using really printing ARM64? If so, we can do:

  file -L $XEN | grep -E 'ARM64|Aarch64'


>      if test "$arch"
>      then
> -        arch=arm
> -    else
>          arch=arm64
> +    else
> +        arch=arm
>      fi
>  
>      mkimage -A $arch -T kernel -C none -a $memaddr -e $memaddr -d $XEN "$XEN".ub
> -- 
> 2.34.1
> 


From xen-devel-bounces@lists.xenproject.org Wed Apr 16 02:51:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 02:51:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.954790.1348750 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4ss5-0006zl-9K; Wed, 16 Apr 2025 02:51:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 954790.1348750; Wed, 16 Apr 2025 02:51:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4ss5-0006ze-6M; Wed, 16 Apr 2025 02:51:29 +0000
Received: by outflank-mailman (input) for mailman id 954790;
 Wed, 16 Apr 2025 02:51:28 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=2j5z=XC=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1u4ss4-0006zY-HS
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 02:51:28 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on2062c.outbound.protection.outlook.com
 [2a01:111:f403:2415::62c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ad412fcf-1a6d-11f0-9ffb-bf95429c2676;
 Wed, 16 Apr 2025 04:51:22 +0200 (CEST)
Received: from BL1PR12MB5849.namprd12.prod.outlook.com (2603:10b6:208:384::18)
 by PH7PR12MB5687.namprd12.prod.outlook.com (2603:10b6:510:13e::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.29; Wed, 16 Apr
 2025 02:51:18 +0000
Received: from BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::b77f:9333:3a5a:d285]) by BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::b77f:9333:3a5a:d285%4]) with mapi id 15.20.8655.022; Wed, 16 Apr 2025
 02:51: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: ad412fcf-1a6d-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=j68GXVd3gC42CBwXrV0Jb/NKOiBOdx7C3hmUvpmbrcj5qAVsofW7vexMf68GbtKVSSFH9loruiVTSk3W8b5tLDe8fQAAe4IZtRD9JKDrGQF81Ruzj2Cq+0494OYXFBs3HSrdOkZHDV2NS33JqMUzJ7qrwrinX9N6NIuSDRiEXYXWk3Ld9fMu7Sz6XZE0QrqbXdCoJtQVnMAqt7t6iufPEHMNZPdxwp9NL4XfSvTOAcykDGKWTufQrngBISE3ESk1l+Aa2xvTvToQ3Nz+FQ2jXebzATo/Su6UUfykARu6bzr26Kvh5yKSqy7MjNy1IX40FtrfIMYa0k7Ui/KFzf3grw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=E3UXqsuCsDLcKENbSxacyCOs0J5BUmClCDY4I/P3Ezw=;
 b=imhiAFvnPpj4Oat0mcaC19GG9q8Zd0ob1eEMsK7SfdBAormp4M42Xapm/8UujKRBhgFAfg6Qo0pcndIW/DJiwhGdafdJur5HPc+kz8FFvWKhQfZHnC5O8K7wCWy6VBT82vAfh8n/mZGJavt68O91HIyoNru1Q+kyulX+ww7XIe0X61xNJhvb3OfLWbFRY+uTwuKsQPlWhX5k5cCmswrQq1rZndIqz33XC2Ur1ooFrYJHxTmcTR7wgm0oMHc2aCn/zpxKoZrvlkPrJ0f3PomO0Zr64MKPWou2Cl63f8VusIn/+doEZh+Y8IeShOsElyV0wsoWibdek1tX9D+b0wg9Vg==
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=E3UXqsuCsDLcKENbSxacyCOs0J5BUmClCDY4I/P3Ezw=;
 b=CcdKHRBacEIt53+CXk9CKjws2tUWGg9cVm2AifKPDb8JObKlraK/Tyi5SfoW1WdmosgTypIVsIvJg608E91ZUYtLs1wa9dqxRQP4Aw+MY++DBYlvPb4jbxwH03h7ixvWieWbSFbM9SDreYmRAHhQlU0QBrS83Jv/WsOVVSc5Ips=
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>, "Huang,
 Ray" <Ray.Huang@amd.com>, "Chen, Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [PATCH v2 2/8] vpci/header: Emulate legacy capability list for
 host
Thread-Topic: [PATCH v2 2/8] vpci/header: Emulate legacy capability list for
 host
Thread-Index: AQHbqRsaTINnyZcO4ESL6xMBZUfUtLOkiv4AgAGc7AA=
Date: Wed, 16 Apr 2025 02:51:18 +0000
Message-ID:
 <BL1PR12MB58493D18F9F533FE3D928607E7BD2@BL1PR12MB5849.namprd12.prod.outlook.com>
References: <20250409064528.405573-1-Jiqian.Chen@amd.com>
 <20250409064528.405573-3-Jiqian.Chen@amd.com> <Z_4wkFn1VvBe_6Eh@macbook.lan>
In-Reply-To: <Z_4wkFn1VvBe_6Eh@macbook.lan>
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.8655.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_|PH7PR12MB5687:EE_
x-ms-office365-filtering-correlation-id: 3b8fa404-85f9-4fea-1c83-08dd7c918fdb
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?eWxTWVlsUlN2aHQrMUdLZHNMNHVGb3gzUXdZclZJZTRwNTNXcVJTSHRkajk5?=
 =?utf-8?B?cXZ1WWJlUlRVd2N5QXkydDgvdnRDZ3RHa00xVTlOSlRjVlFpS29xdHAvNGIv?=
 =?utf-8?B?dVZEQk5DMkVVTWp5cGxvMEFxTFdSenY3b0tIMG54dnR5dWpPNTFFNlVJY0h6?=
 =?utf-8?B?K3p0VG0veEtIcXRnc0NGeW5LR1hWeWh2dTNhTU1IcnhXaFg1WVhtOVc1L0dW?=
 =?utf-8?B?UlNSRlhkRTUvVnB2UmtKNlM0TldiclpLTW5ORW9nYzdFUkFtOEpsQlBzNDJD?=
 =?utf-8?B?MC9WcVVrbmRVMExrcjdNRFdpdC9sRjhEbUw2UVNHb2hyMHBXbjhiVnRvZW5u?=
 =?utf-8?B?YUttZWZNZHEydzZ1c3FPUysrT3NDTHpDN29oTHNvMlltL3dudkJoOXhzYmQ2?=
 =?utf-8?B?cXJ4MTVzUUlEUEZ5TEN3WXg3dEJWaW1rbjh6TW01ckNNQkg5Qmo4KytUVDNz?=
 =?utf-8?B?KzdnQmY3RTRRYUo1SDhKY2cvNWF0TnlvWHlKU3ZOVTNMSmh5Q2EwRE15OGlZ?=
 =?utf-8?B?UDN3R0tWZ3Q2WU8rSVhXYUZqdWtkRjg0VUJ5VjNsR214bU5NTGp0TVpjNGQ0?=
 =?utf-8?B?TXVnT3Q5V2ltRDY2YnRFUndmc2JtS0hrUmJRaFhvSi90VFBQdjVJNjhkME4w?=
 =?utf-8?B?bHZKMEg5eXNCOVdUc0Z1aE91bFhqU081VWxpV2ljeE1KeDJXYUlqSWtmc0tm?=
 =?utf-8?B?QWhmcWoxY05YSW0xS0tSWXVnQXFtUWxTL3VUeEd5Y0tuTjE0amk4a0pkbTMv?=
 =?utf-8?B?UnpFRm1adU5OR1JSUU1kNUxVSG5naVJMMGpFUCtXYnlzZUN5WXJiRHY1UFFv?=
 =?utf-8?B?UkY3RVFwL0lGT0k4V1ZETW92UHNiT0lTbUFRRENKbm51bkMxZmtBQVBEeklt?=
 =?utf-8?B?UVJpY2lMMjUrTjNGcStROGQwZmZiV0JCZngvNVNaOVExRmJFeFcyTGhNUCt1?=
 =?utf-8?B?WFU5eGdpeGRtNG5GeFZLNWZURjZxNDlvYmVFck80REVOUGZRdmNtYTExNHow?=
 =?utf-8?B?L05QYmI4OHdtTjV6aXlabWJKVy9zRDRmRzBNQzlzbVZTR0R4UXJEQUFvR1Uz?=
 =?utf-8?B?NkswbkNKSkw3SHJvUEJzZU1HdjZZZlFUb1NhWGVpcE5SVnltNUZ3SnJib2ta?=
 =?utf-8?B?RUJpeEo3enlpalNkWGczNnFNbGszQzJQTkIramtWM0F6VnBzdFlZZ085ZUZP?=
 =?utf-8?B?MkZad2ZSTzZYNU9TTzVyTGdXS2hpbWtjNDlwVDBibmtWNTRueUlTeTFiNERF?=
 =?utf-8?B?RkNKbEpQeGw3SXRXZjUyZGxYalFVbllrZXpVYzFNMSt3MzVzRkxWOUtEbHhv?=
 =?utf-8?B?MTNhMUMwY09DQjN2TVdSWk1QaUJpdjNrM2M2Ymg5eTVwQ0tvY3ZIbFJoTVJx?=
 =?utf-8?B?di9TcUpKeGN0TmRQQWRjRmRoVzZDOXNhTEdKTDhIVWNQZGZyVnBKQzhQVkxh?=
 =?utf-8?B?akJ1am5oM3VJczdzYWtVN2t0Um0xTXFya0dESHc5T3JJUWEveUIxMGo5TmV6?=
 =?utf-8?B?T0VrcHZ5YSs2bEFQalFGcGlKSG54ZENnNUk5ZXpXdUZmNUVjRFdZSEkwNjQv?=
 =?utf-8?B?T2hhNnBTbkxPdkZBK3BxK1BPdUhZWmNIM2llUUllSWp3T1U3dFZkbmFTV1F5?=
 =?utf-8?B?WXR0WFpnTWo5VlFqTnNrdy9ZWVpzMTFud21WTkxodUs0aEY0U0cxQ0UyeHl2?=
 =?utf-8?B?VWo5d09xUHlIbG56cWZsSEJKYWt1a3NYL1poQU5IZ3AzWnFyS3V4VG94RHlK?=
 =?utf-8?B?ak9Ua0xqallzVTVYVHFsRkFEVHllQ1RoQ2p5NURPdEl4WHJLRzdPc09CNTZJ?=
 =?utf-8?B?ZEVuN3B0Vmhwb0FOdUZFMlZCMlZXNm01V3ZjVitYY3lWdWdkWXlRQ2dmM29s?=
 =?utf-8?B?aE5ZaFVOQy93UDgrMTNmaWZ2WUxwa2FlcGZ0NzNObXY3Q0RNUDM3QVU3MHpm?=
 =?utf-8?B?Zjc4YlQxSnVYVnBQc1lLK3Izayt4OWFnMTRETVpNRDhoYWpBQnkrQkZTWS9E?=
 =?utf-8?B?U2Y2WkdUMW9RPT0=?=
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?UjJWRU9yQWJtbVBib21yM1o4SFo5REhUOWZIcTVCMCtsbk8yWTJENVFEZHFo?=
 =?utf-8?B?N0JRZTlneWttY29HVEVocVlpSXRwcFF6ayszS25hZWY1YitydkNiVzd0cFl3?=
 =?utf-8?B?VWNiSG5IUE1YNzlpdVI0Y2U3OE42NFZjS2M3NE54QXl2cFNiRFdWc2VyQXlU?=
 =?utf-8?B?UTlvVWRkTkZlRG9rN3p2dC8yS2hERUE2dUwrdjVGSnAram1OUkFtV2xnWTFx?=
 =?utf-8?B?bDlibFhoclVqaFVBL2VjeFY0MHQ2Y0Y1QzJUci9ydnc5dGdTZXhua2M5RG1o?=
 =?utf-8?B?T3JXUnduTWZkbE9vUFVCLzRFZXBlSVdLTnhHQWNHcU9KVktjQnRDN0VkbzBX?=
 =?utf-8?B?bHdPU3lxTFZvOUJ3SW5iTXFYZUlITDdDazN0YjFQSTFRRU41dnhnNlVmZFo5?=
 =?utf-8?B?bDJRYzRFSlBqRDc1ZXdiOVNHSjVqLytDK0pXNWhYYVFYd29lTStXYTNWK0JU?=
 =?utf-8?B?MnJUbHo0MFE4OTd4SVFVTTAvTDcrRkdkMXVSaDZtY1c5WFZEdEVlUFBUZytk?=
 =?utf-8?B?OXd6OWRWWWE2WWgxNWlNbmR5RmFpaG9YTHM4Mjhvc0FWdDVwOFAvcE5Ra2ZB?=
 =?utf-8?B?ZVJCdmFWZi9jNjJEazFMMlhyaTBHbnpKZXN6ZC9UekxzdGt4RkZiTFZKcytU?=
 =?utf-8?B?alJwV1RmbHU3c3g1N3ZJdEpZemYxd2dXM2s1ZDRHeHlLZnNxWlBZUzNZOFQ4?=
 =?utf-8?B?NzZLOXkzbTllV0pXY1E4YjUzdi9PMFJ2UEdmWkxaU1FnUFoybldoa2JTamtl?=
 =?utf-8?B?d3lBMTU5dWExZmlSN3hnaktXcFZkOUtIVDBUVDgyMnNyTUJncE1kZ0E2eFRU?=
 =?utf-8?B?N3lDK2VCSUk3QnpGdTEvclJTbTVoaFJiTFViWEUyOE9mczJYbVFvWU5CR0dt?=
 =?utf-8?B?K1kwNmhCUmpKaHhwZ2JMVndSY1BLTXBKSUZFczRrVjk5akRTU0pxcE01SWlv?=
 =?utf-8?B?UE8wK1lhN1NMZHhMVzlWcWU1am1ZTFRWMWZhaitpV0VIL21HN3EraEVac3lN?=
 =?utf-8?B?NXJjdGVoWk5ESThrakxzazFseHh6Vm9WSnVRbkhOVXlMTEVRc1dQOS91bFpx?=
 =?utf-8?B?NGRqWGRmUkxzMHJINWlDbG4zbUo1TnlHeG1IWDQ2V1NaYVNjVk5RcmtORkVv?=
 =?utf-8?B?MkIyVmJXaWNDZEtkM041eEhpQlVrc1R5QXhiVkwwU3JHTEwyU3ZnNkhMa2xG?=
 =?utf-8?B?WlNjY2Q0TGhSRjJ5MjFZTXJrME5mbDUrdVM1MXZTNUVOQlhEbHVuMWk1WVRr?=
 =?utf-8?B?ejFLTFErMElrVDJoU1BTZnpsRGw3NXhXUWNEaU9HQzB4ZElVOGJOWlZUZGR1?=
 =?utf-8?B?M00xNEE5anYzdmRHMDB5N1YxakIwNWdhRythcjJFVXJYenM1ZWVxU09qOWg2?=
 =?utf-8?B?ZXhHNWREOTNpVGVIeXZRVWcyMERHdVIydmducUlJWHJweW96WFhSUEl1TFVq?=
 =?utf-8?B?Qm9RNENLdk40U2VkdE56VEsxa1ZDK2ZrWWc0Vmtla1U1M2MzTzU3blpUNHdW?=
 =?utf-8?B?M0E5bnh0a1Y4VW81U21qM2xqVUJIeGNiWXNGZmpKdHdWZExzcFlqdENrWUlY?=
 =?utf-8?B?WlpJM1JwcDZQZks4Mjh5SHdGY3BGa2RIRTZZMDJ5azZTRXV5MU5iWGM4dU1J?=
 =?utf-8?B?K2E5a0JJcWFCY1B0dmJQWG1yQzlZY1kzTVlENmhrNHd3Z2RzaGVJZWxteXZR?=
 =?utf-8?B?enVRVEF3ZzlFOVNhenNnQ0p5M2hxRWZ4MktEYkdueTQ0UitRQXFQMVdERUl0?=
 =?utf-8?B?RllaMFdGUjA2cjdGaWlRSXFrR0Zza2lUYnhLd0lkYU05WmNmWEdIUUVpOEhx?=
 =?utf-8?B?Y3RkemNxTGxDUEtTM21ZZTgyMDd5bDZqWDNGbU9SVnQvSWxvTDZtbnhHbXB0?=
 =?utf-8?B?Nk5za1Q2NjR2SEZPb2szb3ZEUkMwSkdDZkxwZmR4eHRvNjZPTnRhZHh4Z2p6?=
 =?utf-8?B?NU5OWnMranZJdm5Oa09nZzg4VVBDSHlPZzE3RkVESEhTYmVlSlNBM3F0b2hP?=
 =?utf-8?B?a3pzaU9BbHRzNkZiUGZROWsrNENSQUFxUkJHTkNtTkxpRlExRktrZ3MrTmtl?=
 =?utf-8?B?Y0lqQW8rN1F3Y0ZhQXJFUHo2MXgwejZiRCtZbnpjVzRYRy85cmE1Q1BqZEg3?=
 =?utf-8?Q?bsc0=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <DDD00D33080E4141B275B113150ECE51@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: 3b8fa404-85f9-4fea-1c83-08dd7c918fdb
X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Apr 2025 02:51:18.2050
 (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: 2uzIEb/uYEzVX9ZzZkElk1AQ4vKwla3uafzTvJMt43zcGT2qYo1DrEJy6nxDtiKWJQPpbKVudoQyG6Tb/5xFxQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB5687

T24gMjAyNS80LzE1IDE4OjEwLCBSb2dlciBQYXUgTW9ubsOpIHdyb3RlOg0KPiBPbiBXZWQsIEFw
ciAwOSwgMjAyNSBhdCAwMjo0NToyMlBNICswODAwLCBKaXFpYW4gQ2hlbiB3cm90ZToNCj4+ICsg
ICAgICAgIHdoaWxlICggbmV4dCAmJiB0dGwgKQ0KPj4gKyAgICAgICAgew0KPj4gKyAgICAgICAg
ICAgIHVuc2lnbmVkIGludCBwb3MgPSBuZXh0Ow0KPj4gKw0KPj4gKyAgICAgICAgICAgIG5leHQg
PSBwY2lfZmluZF9uZXh0X2NhcF90dGwocGRldi0+c2JkZiwgcG9zICsgUENJX0NBUF9MSVNUX05F
WFQsDQo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXBzLCBu
LCAmdHRsKTsNCj4+ICsNCj4+ICsgICAgICAgICAgICByYyA9IHZwY2lfYWRkX3JlZ2lzdGVyKHBk
ZXYtPnZwY2ksIHZwY2lfaHdfcmVhZDgsIE5VTEwsDQo+PiArICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwb3MgKyBQQ0lfQ0FQX0xJU1RfSUQsIDEsIE5VTEwpOw0KPj4gKyAgICAg
ICAgICAgIGlmICggcmMgKQ0KPj4gKyAgICAgICAgICAgICAgICByZXR1cm4gcmM7DQo+PiArDQo+
PiArICAgICAgICAgICAgcmMgPSB2cGNpX2FkZF9yZWdpc3RlcihwZGV2LT52cGNpLCB2cGNpX3Jl
YWRfdmFsLCBOVUxMLA0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9z
ICsgUENJX0NBUF9MSVNUX05FWFQsIDEsDQo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAodm9pZCAqKSh1aW50cHRyX3QpbmV4dCk7DQo+PiArICAgICAgICAgICAgaWYgKCBy
YyApDQo+PiArICAgICAgICAgICAgICAgIHJldHVybiByYzsNCj4+ICsNCj4+ICsgICAgICAgICAg
ICBuZXh0ICY9IH4zOw0KPj4gKyAgICAgICAgfQ0KPj4gKyAgICB9DQo+PiArDQo+PiArICAgIC8q
IFV0aWxpemUgcnN2ZHBfbWFzayB0byBoaWRlIFBDSV9TVEFUVVNfQ0FQX0xJU1QgZnJvbSB0aGUg
Z3Vlc3QuICovDQo+PiArICAgIHJjID0gdnBjaV9hZGRfcmVnaXN0ZXJfbWFzayhwZGV2LT52cGNp
LCB2cGNpX2h3X3JlYWQxNiwgdnBjaV9od193cml0ZTE2LA0KPj4gKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgUENJX1NUQVRVUywgMiwgTlVMTCwNCj4+ICsgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFBDSV9TVEFUVVNfUk9fTUFTSyAmDQo+PiArICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfihtYXNrX2NhcF9saXN0ID8gUENJX1NUQVRVU19DQVBfTElT
VCA6IDApLA0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUENJX1NUQVRVU19S
VzFDX01BU0ssDQo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXNrX2NhcF9s
aXN0ID8gUENJX1NUQVRVU19DQVBfTElTVCA6IDAsDQo+PiArICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBQQ0lfU1RBVFVTX1JTVkRaX01BU0spOw0KPiANCj4gT25lIGZ1cnRoZXIgcmVt
YXJrIEkndmUgZm9yZ290IHRvIG1ha2Ugb24gdGhlIHByZXZpb3VzIHJlcGx5OiBJJ20NCj4gdW5z
dXJlIHdlIHdhbnQgdG8gZG8gdGhpcyBmb3IgZG9tMCwgYXMgd2UgaW4gZ2VuZXJhbCBhbGxvdyBk
b20wDQo+IHVuZmlsdGVyZWQgd3JpdGUgYWNjZXNzICh1bmxlc3MgaXQncyBmb3IgYWNjZXNzZXMg
bWVkaWF0ZWQgYnkgWGVuKS4NClRoaXMgcGFydCBpcyB0aGUgb3JpZ2luYWwgaW1wbGVtZW50YXRp
b24gYmVmb3JlIG15IHBhdGNoZXMuDQpJZiB5b3Ugd2FudCB0byByZXN0cmljdCB0aGlzIG9ubHkg
Zm9yIGRvbVVzLCBub3QgZm9yIGRvbTAuDQpJIHdpbGwgYWRkIGEgbmV3IGZpcnN0IHBhdGNoIHRv
IGRvIHRoYXQuDQoNCj4gDQo+IFRoYW5rcywgUm9nZXIuDQoNCi0tIA0KQmVzdCByZWdhcmRzLA0K
SmlxaWFuIENoZW4uDQo=


From xen-devel-bounces@lists.xenproject.org Wed Apr 16 03:54:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 03:54:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.954852.1348777 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4tr6-0000Pw-5j; Wed, 16 Apr 2025 03:54:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 954852.1348777; Wed, 16 Apr 2025 03:54: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 1u4tr6-0000Pp-2D; Wed, 16 Apr 2025 03:54:32 +0000
Received: by outflank-mailman (input) for mailman id 954852;
 Wed, 16 Apr 2025 03:54:30 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=slpe=XC=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1u4tr4-0000Ph-1x
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 03:54:30 +0000
Received: from NAM10-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam10on2060d.outbound.protection.outlook.com
 [2a01:111:f403:2413::60d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7df54824-1a76-11f0-9eaf-5ba50f476ded;
 Wed, 16 Apr 2025 05:54:28 +0200 (CEST)
Received: from DM4PR12MB8451.namprd12.prod.outlook.com (2603:10b6:8:182::7) by
 DM4PR12MB5916.namprd12.prod.outlook.com (2603:10b6:8:69::22) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.8632.32; Wed, 16 Apr 2025 03:54:23 +0000
Received: from DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::b04e:2da5:7189:4c4d]) by DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::b04e:2da5:7189:4c4d%4]) with mapi id 15.20.8632.035; Wed, 16 Apr 2025
 03:54: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: 7df54824-1a76-11f0-9eaf-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=d4kyl9/r9Zl+jU4XBez4Lk/GGlclZvz7fJuHkEK+A4GYz/DO2hoOwO8H0O4X5yNNd3kqLLY7UO+ANxS40tjCsJS+RdGGG46ZWr+l7G9CyhelDB6K+iC82NzRbe1Ee2mzlL8EhRVL3X5p+8qdJzLBexM10yAn50Ns/cCJaA9Qh0jdiffG+XKUFaxYx/A4kYVJS0TvBGlUt9si494/4x1m0Kgiu7CTvwdU5rY/jhb0UpcZL+jEs6PnpEtV+U06gA90/l5Aha9OPnF4F/yGoAeVYupRk15SRjJwsX8sz6SGVaaixr267PQ60LBQqVg0rYEj4MKmeR/cstqTgeE/qdDSqA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=c07+tqiNnwSTosVgWyuCrtj+bsNxAKuROUQ/E9k2O9g=;
 b=LVyLGrUoEeRmIQPwdwO5rS+ca24gxQfgy9getYlpPAisxEA1cQuiJR89ly5hjumPFszKxUtflClbw5RhKv0eBEKxAhjTI3joBjH74BwNsOnCNk9aaYWoeN9rfBl3aGkBTb7nbigJWl3bpLv1qOhRee+g8pyZIS2owGn0iKIYn7+504koeD9XNK2hmutQPYx+REFKRMeOmcr5FUjJuwdK2jBHAxAn7PnVTz54a4H2AHc3bSKvYHM9TXAFntKrKa1I6QcYjQEW5o7makjARwlsoj7tPfiwLXSQ8MCUUlS1O0HvllYbVd4qc7HbdWkIYVMh4ZD+9W9/bm9lKtaP8ZeTzQ==
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=c07+tqiNnwSTosVgWyuCrtj+bsNxAKuROUQ/E9k2O9g=;
 b=1OvVNz+RPlkVfwvZamgGTG4AHOYQbTna18OX00MfEke9o6jJJFFKe6VVSd+AZVy5nTOOpD6r6hY/gs81/6ZWJKT08nBQf6V1ilSMeRuW46mpeZ3Am7gDOW1CnGDo2488Tgc2NhsynNFYFs524nlf+NZe5F5zvG//27gLO5SmCeE=
From: "Penny, Zheng" <penny.zheng@amd.com>
To: Jan Beulich <jbeulich@suse.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
CC: "Stabellini, Stefano" <stefano.stabellini@amd.com>
Subject: RE: [PATCH v2 10/19] xen/sysctl: introduce CONFIG_PM_STATS
Thread-Topic: [PATCH v2 10/19] xen/sysctl: introduce CONFIG_PM_STATS
Thread-Index: AQHbnhN0GO5sSI+g2kqtQPzlgrAUG7OO0pKAgBbuLcA=
Date: Wed, 16 Apr 2025 03:54:23 +0000
Message-ID:
 <DM4PR12MB84519E18C6F4FA7724C03751E1BD2@DM4PR12MB8451.namprd12.prod.outlook.com>
References: <20250326055053.3313146-1-Penny.Zheng@amd.com>
 <20250326055053.3313146-11-Penny.Zheng@amd.com>
 <df30d9fa-15dd-4923-bdaf-04f9476529d1@suse.com>
In-Reply-To: <df30d9fa-15dd-4923-bdaf-04f9476529d1@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
 MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_ActionId=8bd29732-aed8-4ef7-b226-d4447684affd;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_ContentBits=0;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Enabled=true;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Method=Privileged;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Name=Open
 Source;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SetDate=2025-04-16T03:53:37Z;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Tag=10,
 0, 1, 1;
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DM4PR12MB8451:EE_|DM4PR12MB5916:EE_
x-ms-office365-filtering-correlation-id: 049a515b-69f9-4ff2-14c3-08dd7c9a5fd0
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?WnYrWU1TOXFQcEI1bTdnWjJ3YnIzYVNRZzg1Y1pGMUx1Q3dmTDcycC8xSDk0?=
 =?utf-8?B?MXRZbW90ZnJQUmM4ellmd1lpa0Q0WUJjUGsxeTk2MmRQL0p1Q2dkZFZMaE9x?=
 =?utf-8?B?ZVRzWkVPNjJ1ZVl1VkZSUzBHTHA5dVV4K1NpeE5OK0RiWko0b0YrUzhNNzNv?=
 =?utf-8?B?bUZVWlBjWS9WV1NmdXdhbXlwVmZhM0VCQjN2NzRveWhLU1VyQldqTEpFZE1E?=
 =?utf-8?B?UVVKak9GTy8vS0t6Zk1jM3VJMmRwZGZKTWZiV1lGWVF6dmZkRWJuWW9KWHl0?=
 =?utf-8?B?TUcxVzh2WVhRNkthRWgweThrb3A1YjdxamJoSFhwdWd1R3d0Q3U2WENCa3Jh?=
 =?utf-8?B?RTZiRnFFaXVDVk5TVDJTSjYyT3ZTRzlLekZ0WG1OWUhiM01iaUdTcTlsQ1Zi?=
 =?utf-8?B?ZmVSTzZ3ZTZnUGRCbDlDWDRnK1FHUXM5ZjdvK2ozcTlwSHpGQnU5QkgyZUF5?=
 =?utf-8?B?bVRWdzdxZjZuNGJLRWxTcGE2ZFhSWHpFcVR3aFdaMGRQckU1aFd4amVlZVNX?=
 =?utf-8?B?R2xsaVZYa0ZOUDdRbHpIeVVTRndrUHFNZUJhNS9vKzJBQi9JdlE1azRVL2xQ?=
 =?utf-8?B?Vi8yWDY4LzRRbTlUQlA4bnUzVW8wZGZUZmE3cnE2cVYwd2c1enlMY1dLckJl?=
 =?utf-8?B?VDRpcHNLZTl2bE9Ra0NmVS9ZdWNlcU83N05qNHlkSUxkVTFOWEczNEIzNHpH?=
 =?utf-8?B?TE1Bb2JPS0Rtcm5QTnltcm5WL2h5VWNFRHAzZG5yaG95YmlET2Z5SFR1cVZP?=
 =?utf-8?B?MVNoZEE3cm1sbnJuZk14M0E5OFNSTC9aTG5McnUxYjdXTUJJVlZ6TWFKUmtF?=
 =?utf-8?B?OWpKZ045VlN3SDBmYlJsSHJzNVA1aHlWOFM0cThYR1VGbnpEQjNUSVdZRzRG?=
 =?utf-8?B?aWh1K0Zadm5hOGkvREoxaDZuN3ZxTkFDamU2aUdsckwyUkpObXdzU1B2QkUy?=
 =?utf-8?B?MUZwZkZhNlJpUDNYUlIyYTVSYUxtdk5BUkVoQWtnd3c3VzZFdENXR1U4cW1K?=
 =?utf-8?B?Nm1XclBET3pFQlhXYXFaOFdwdEZTa3hXd2FucHZsamlXSTdKYm1tWTI0Y05J?=
 =?utf-8?B?VTNLcDlYMzFXUzhDL1ErdjJqSlVHVmdmVEt2YWRzaDJwWkx6Zm9PZWVORHZR?=
 =?utf-8?B?cElPT3pBSnJHbmlwd3R5by80MVp3ZDV1cGh3ZWRaYktIWUljMmozbTY3S0NX?=
 =?utf-8?B?aU1UZitJVmRFY1ArT1hqcE8zY0dRRHoreVFnS1QwS2dPNGRqTmN4MmdFbGhF?=
 =?utf-8?B?dVlqR3ZLNE9JZUIwOE9laEU3WjRBRHR6c3lBdS9LakU1dWpBN29tV001T0hp?=
 =?utf-8?B?YU1RYVRGKzNONHd0dkUwZWh1WjhtU1V3a01IZVJrZlJEWmZLdm04VTBkSm55?=
 =?utf-8?B?ZVNtR2JlemUvOTVJSUJEbFYvZDRFQVhucno4VjRTMjl6OVZvZ3B3ZWlwWUVK?=
 =?utf-8?B?SWZqZTZSZCtDRkhtK1Z6NGdxTktiTlE2S1pFWDRXQmdKLzdOQ0p4VE1NMnJ2?=
 =?utf-8?B?L3dMWHhIYzdDL0hSd255eW1pV3ZrbzhZUU1nK290V09RU25NNFJaOGQrc1RU?=
 =?utf-8?B?bVZ1L2xyMDBPbDVCSTZvT2VibmxwOG9Pa1oySExwaFJEeUN0cGgzTWN3dHdO?=
 =?utf-8?B?MTJ5a1JTOEhKT2JtZHJMbkoxTzQ0Ukd6bXBINVhmMnJqbWs5YkQzenV1bnJN?=
 =?utf-8?B?U0ZCVFlGbFNWNWtnVi9SVE5lNHJUNjFLWWNPQ2hQWmhMUzUxeFRIaXg3SVpG?=
 =?utf-8?B?THpsWnVmZEYyZEF4OVhxUFc3YjJ0VE5yNlRRanNuN2UrYlJKaWRhdXdadHFj?=
 =?utf-8?B?MGJqODFwTDF4aXNoWlN6ZEJScGJtTHB4alh0Z2dIbTVEMXlXNnpFeG1nam0v?=
 =?utf-8?B?MVVLNStkSkxJeUxITXFBVUFHVnhLcE9kbThuZCs2R0JqN2xWVVdodWhqb2NB?=
 =?utf-8?B?NjlUaVlldlRDM09ma3NWYm5RVGo0S3UwTDF2UFhqN2o2anZoRTZRY05Bamcv?=
 =?utf-8?Q?KyOUldDIwwabs61VVroI6gKu4+6Zrc=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB8451.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?WGxWMGxpTnRESVlXMkFSN09qRHlSdlBIWnJSSTFKb0NjTkkxcTl4aDIrQklq?=
 =?utf-8?B?SFRGVzA1Ynp2M2R5bmRPcURNYlNkMklUKzhPSFhGQm14NkNMNlRRRDFMSkdH?=
 =?utf-8?B?SlRzRVRrRW5OQW9NSFQ2cGxXNTNYUFJMUElHS3N0UWxFaGQrU2x0QnZGdmZh?=
 =?utf-8?B?VytTaFJMOVp2bVU0Y2Y4dWhvZXNrSldrNEVPTjRFWDE4alZsZEtCaHZiZERJ?=
 =?utf-8?B?NDFxeXhoUUhDSy8zZkVzQTIrMDkxNmkvZDgzQmt5bmlwMHVZSnJLK1RQUTU0?=
 =?utf-8?B?eG04QW1TM3N6eVFBbDNxZ2RFY1RIb2VoZHc3SkRGZG1peXIrNXQ3UHFJRlQ5?=
 =?utf-8?B?WjE3SVQ4L1lCOSsycTE5MzV2S1d6aXp2T3hqdWxhYjdTWUFKSTVsMVQwVTJs?=
 =?utf-8?B?Z3NXemtZVVhmNEhvRk82SHQ0Z3BNSE1veU4yUGtDanRGQ2dhMGNXQnFmcUY0?=
 =?utf-8?B?WFFDWU5sQ3ltTmZWb1pWU01JRFlKMWRDdjl3ZExtY05GQ2V2OTVtRWp2M0gy?=
 =?utf-8?B?cjZreW5mTnZBSkt6TW93YVJZeDNtalRxWVFTU1p4ZUJtclhxVzcyT0UwUDda?=
 =?utf-8?B?anZXeFlCbVpWRXBkc2M2YXBxUjN2SnFTWmluL1ZBakZDaWFuL2ZaSkNTamRT?=
 =?utf-8?B?a3prYUJLSXBhQ2JiaWJVQ0gzb0d6MVVBZzJBZHFoZVpsMldIa2E5RlNYQUtK?=
 =?utf-8?B?amtOcWEyeEZXQ3ZYa1ZkaDVtczVRRk5tVnVyQTFkUnhpWEVvcmxxQytaOWZS?=
 =?utf-8?B?SG1mZzlheEVLNitua0F0TVZJNHNHRTAvMW8rUjdFV1hmRHI5dVcxTXRBUnZV?=
 =?utf-8?B?M21JTEhLT0pjNnR1SXJqcmdTQmdYRmlXRCswRkEwRGhlZ1BmcU96RnFpUEJi?=
 =?utf-8?B?QjU2OU5jK1JYMzY0VG96ZHhJSE5NelhCemJxbFg4cnMydVF1L2x4QkZkdkg0?=
 =?utf-8?B?MDVhajRxSGFETEttK2FXQ0haVE1BU1hwTHhwT08wVzlqQXhmWXRrWlFjOTBW?=
 =?utf-8?B?eURUWnF5ZmJITkdZcm9CMC9pZnJUd2dGcHpCZlMzMGZ2N0J6Q2JZYlVsVEc5?=
 =?utf-8?B?WnpEZ3BnT0F4SUo1NjJTZ3F3QmpEUlVWYk1XcHVoVUpqRnZoRTBRSnl6Tmpo?=
 =?utf-8?B?QzluSHJjblZOcThqZnRWa256QnoxYUdQSU5SZm00Mk9LYi9VTDRHMldRdTE1?=
 =?utf-8?B?RkpKK3J3d0RjaFE2TkVFcmV4MkpFZisxTTZjN0Zvb2VKOFV1bVZwVzhBZ0FZ?=
 =?utf-8?B?K0RDVUVxVW9FWXVjTEp2UVRhR2s4U3hrREsxekNsdG1FSjZ5RlFFa3RWdnBH?=
 =?utf-8?B?VlA3VFUyQktvbW5ab2huRzF3a25wMkwyYmF6bXU0MmZhcEZQWXhWb2pxWnJp?=
 =?utf-8?B?SnFFRFNhZFJibE9KY0lYSSttTmRaVThkMks5elNiNWdLdTlDWEhCVHBFY2hn?=
 =?utf-8?B?K0pIN1E5VG9UVDJnbU9CSSsvVEVYcGJ1a3VXOGQyWmp0bGJWbXE4NEVmNkFX?=
 =?utf-8?B?WVM1MmRyaVFoSnlSZCtLOTNSajZqYzVxWFJtWkd5eDNKcUZuemtuOUNTbmRa?=
 =?utf-8?B?aEZLek00eXJteTJURitjb0pwZGNqWHh6M1NxVTdqeXJUZ1FaNGoxTFY1VjFk?=
 =?utf-8?B?TVlJWDltOWMrMHpQM3BMeHZRTTVvWU9kOWRKSXVONjl3YldGclYxK2ppRTZG?=
 =?utf-8?B?am85TnhtakFDNFBWS2ZVVGI3VVBaWjM3cUtsNGVONFR2Qmc2N0N5Q0lDcWZU?=
 =?utf-8?B?SHZyb2xoSXpzSzF6QXlKRkZKcjdqU01hZk1Jait4YXhMWVVoYzJjbmliWUlR?=
 =?utf-8?B?aFU3T2N0SS9lbU95T0Fpblp3NWZmR1lzMHRMeHhEcVpiUGNGN1FnQlYyWGg1?=
 =?utf-8?B?TnM0S0pmZitneTgrU01Rd2V5U1A2Nnh5YWwvVnpUVU5ycFFFVWpMTDZQazVq?=
 =?utf-8?B?RFBLUUMxd2xWWDNTUEhUOHdoOEloRUQyMHRmVmtBaENONFlGY0JRallKaHpu?=
 =?utf-8?B?QlVJMDV5UXp2TEpEMHdsR3E0WG42VERKL2dTaTRJVXhJeTVxUWYxL1JlWlg0?=
 =?utf-8?B?d0h4Vm40eG1IalVCYzZ6OEtYVUg4QS9FNFJJNExuUzM2YlV2UmpZclhLdzdR?=
 =?utf-8?Q?UaqU=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB8451.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 049a515b-69f9-4ff2-14c3-08dd7c9a5fd0
X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Apr 2025 03:54:23.0739
 (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: RX7HNiTocchjrDw8n2rujXgQ41ZJLbSDhazHDMv07ZKoKKfhqLrsbeO/S9bX9KsVzrebgTnFccefO2paScarug==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB5916

W1B1YmxpY10NCg0KSGksDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTog
SmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPg0KPiBTZW50OiBUdWVzZGF5LCBBcHJpbCAx
LCAyMDI1IDk6MTAgUE0NCj4gVG86IFBlbm55LCBaaGVuZyA8cGVubnkuemhlbmdAYW1kLmNvbT4N
Cj4gQ2M6IEh1YW5nLCBSYXkgPFJheS5IdWFuZ0BhbWQuY29tPjsgQW5kcmV3IENvb3Blcg0KPiA8
YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT47IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBj
aXRyaXguY29tPjsNCj4gQW50aG9ueSBQRVJBUkQgPGFudGhvbnkucGVyYXJkQHZhdGVzLnRlY2g+
OyBPcnplbCwgTWljaGFsDQo+IDxNaWNoYWwuT3J6ZWxAYW1kLmNvbT47IEp1bGllbiBHcmFsbCA8
anVsaWVuQHhlbi5vcmc+OyBTdGVmYW5vIFN0YWJlbGxpbmkNCj4gPHNzdGFiZWxsaW5pQGtlcm5l
bC5vcmc+OyB4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcNCj4gU3ViamVjdDogUmU6IFtQ
QVRDSCB2MiAxMC8xOV0geGVuL3N5c2N0bDogaW50cm9kdWNlIENPTkZJR19QTV9TVEFUUw0KPg0K
PiBPbiAyNi4wMy4yMDI1IDA2OjUwLCBQZW5ueSBaaGVuZyB3cm90ZToNCj4gPiBXZSBpbnRlbmQg
dG8gaW50cm9kdWNlIENPTkZJR19QTV9TVEFUUyBmb3Igd3JhcHBpbmcgYWxsIG9wZXJhdGlvbnMN
Cj4gPiByZWdhcmRpbmcgcGVyZm9ybWFuY2UgbWFuYWdlbWVudCBzdGF0aXN0aWNzLg0KPiA+IFRo
ZSBtYWpvciBjb2RlcyByZXNpZGUgaW4geGVuL2RyaXZlcnMvYWNwaS9wbXN0YXQuYywgaW5jbHVk
aW5nIHR3bw0KPiA+IG1haW4gcG0tcmVsYXRlZCBzeXNjdGwgb3A6IGRvX2dldF9wbV9pbmZvKCkg
YW5kIGRvX3BtX29wKCkuDQo+ID4gU28gVGhpcyBjb21taXQgYWxzbyBtYWtlcyBDT05GSUdfUE1f
U1RBVFMgZGVwZW5kIG9uDQo+IENPTkZJR19TWVNDVEwNCj4gPg0KPiA+IFNpZ25lZC1vZmYtYnk6
IFBlbm55IFpoZW5nIDxQZW5ueS5aaGVuZ0BhbWQuY29tPg0KPiA+IC0tLQ0KPiA+IHYxIC0+IHYy
Og0KPiA+IC0gcmVuYW1lIHRvIENPTkZJR19QTV9TVEFUUw0KPiA+IC0gZml4IGluZGVudGlvbiBh
bmQgc3RyYXkgc2VtaWNvbG9uDQo+ID4gLSBtYWtlIGNvZGUgbW92ZW1lbnRzIGludG8gYSBuZXcg
Y29tbWl0DQo+ID4gLSBObyBuZWVkIHRvIHdyYXAgaW5saW5lIGZ1bmN0aW9ucyBhbmQgZGVjbGFy
YXRpb25zDQo+ID4gLS0tDQo+ID4gIHhlbi9hcmNoL3g4Ni9hY3BpL2NwdV9pZGxlLmMgICAgICAg
ICAgICAgICAgIHwgIDIgKysNCj4gPiAgeGVuL2FyY2gveDg2L2FjcGkvY3B1ZnJlcS9od3AuYyAg
ICAgICAgICAgICAgfCAgNiArKysrKysNCj4gPiAgeGVuL2FyY2gveDg2L2FjcGkvY3B1ZnJlcS9w
b3dlcm5vdy5jICAgICAgICAgfCAgNCArKysrDQo+ID4gIHhlbi9jb21tb24vS2NvbmZpZyAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHwgIDUgKysrKysNCj4gPiAgeGVuL2NvbW1vbi9zeXNjdGwu
YyAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNCArKy0tDQo+ID4gIHhlbi9kcml2ZXJzL2Fj
cGkvTWFrZWZpbGUgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0NCj4gPiAgeGVuL2RyaXZlcnMv
Y3B1ZnJlcS9jcHVmcmVxX21pc2NfZ292ZXJub3JzLmMgfCAgMiArKw0KPiA+ICB4ZW4vZHJpdmVy
cy9jcHVmcmVxL2NwdWZyZXFfb25kZW1hbmQuYyAgICAgICB8ICAyICsrDQo+ID4gIHhlbi9pbmNs
dWRlL2FjcGkvY3B1ZnJlcS9wcm9jZXNzb3JfcGVyZi5oICAgIHwgMTQgKysrKysrKysrKysrKysN
Cj4gPiAgOSBmaWxlcyBjaGFuZ2VkLCAzOCBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQ0K
PiA+DQo+ID4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9hY3BpL2NwdV9pZGxlLmMNCj4gPiBi
L3hlbi9hcmNoL3g4Ni9hY3BpL2NwdV9pZGxlLmMgaW5kZXggNDIwMTk4NDA2ZC4uYjUzN2FjNGNk
NiAxMDA2NDQNCj4gPiAtLS0gYS94ZW4vYXJjaC94ODYvYWNwaS9jcHVfaWRsZS5jDQo+ID4gKysr
IGIveGVuL2FyY2gveDg2L2FjcGkvY3B1X2lkbGUuYw0KPiA+IEBAIC0xNDg3LDYgKzE0ODcsNyBA
QCBzdGF0aWMgdm9pZCBhbWRfY3B1aWRsZV9pbml0KHN0cnVjdA0KPiBhY3BpX3Byb2Nlc3Nvcl9w
b3dlciAqcG93ZXIpDQo+ID4gICAgICAgICAgdmVuZG9yX292ZXJyaWRlID0gLTE7DQo+ID4gIH0N
Cj4gPg0KPiA+ICsjaWZkZWYgQ09ORklHX1BNX1NUQVRTDQo+ID4gIHVpbnQzMl90IHBtc3RhdF9n
ZXRfY3hfbnIodW5zaWduZWQgaW50IGNwdSkgIHsNCj4gPiAgICAgIHJldHVybiBwcm9jZXNzb3Jf
cG93ZXJzW2NwdV0gPyBwcm9jZXNzb3JfcG93ZXJzW2NwdV0tPmNvdW50IDogMDsNCj4gPiBAQCAt
MTYwNiw2ICsxNjA3LDcgQEAgaW50IHBtc3RhdF9yZXNldF9jeF9zdGF0KHVuc2lnbmVkIGludCBj
cHUpICB7DQo+ID4gICAgICByZXR1cm4gMDsNCj4gPiAgfQ0KPiA+ICsjZW5kaWYgLyogQ09ORklH
X1BNX1NUQVRTICovDQo+ID4NCj4gPiAgdm9pZCBjcHVpZGxlX2Rpc2FibGVfZGVlcF9jc3RhdGUo
dm9pZCkgIHsgZGlmZiAtLWdpdA0KPiA+IGEveGVuL2FyY2gveDg2L2FjcGkvY3B1ZnJlcS9od3Au
YyBiL3hlbi9hcmNoL3g4Ni9hY3BpL2NwdWZyZXEvaHdwLmMNCj4gPiBpbmRleCBkNWZhM2Q0N2Nh
Li45OGU5ZDQ2ODkwIDEwMDY0NA0KPiA+IC0tLSBhL3hlbi9hcmNoL3g4Ni9hY3BpL2NwdWZyZXEv
aHdwLmMNCj4gPiArKysgYi94ZW4vYXJjaC94ODYvYWNwaS9jcHVmcmVxL2h3cC5jDQo+ID4gQEAg
LTQ2Niw2ICs0NjYsNyBAQCBzdGF0aWMgaW50IGNmX2NoZWNrIGh3cF9jcHVmcmVxX2NwdV9leGl0
KHN0cnVjdA0KPiBjcHVmcmVxX3BvbGljeSAqcG9saWN5KQ0KPiA+ICAgICAgcmV0dXJuIDA7DQo+
ID4gIH0NCj4gPg0KPiA+ICsjaWZkZWYgQ09ORklHX1BNX1NUQVRTDQo+ID4gIC8qDQo+ID4gICAq
IFRoZSBTRE0gcmVhZHMgbGlrZSB0dXJibyBzaG91bGQgYmUgZGlzYWJsZWQgd2l0aCBNU1JfSUEz
Ml9QRVJGX0NUTA0KPiBhbmQNCj4gPiAgICogUEVSRl9DVExfVFVSQk9fRElTRU5HQUdFLCBidXQg
dGhhdCBkb2VzIG5vdCBzZWVtIHRvIGFjdHVhbGx5IHdvcmssDQo+ID4gYXQgbGVhc3QgQEAgLTUw
OCw2ICs1MDksNyBAQCBzdGF0aWMgaW50IGNmX2NoZWNrDQo+ID4gaHdwX2NwdWZyZXFfdXBkYXRl
KHVuc2lnbmVkIGludCBjcHUsIHN0cnVjdCBjcHVmcmVxX3BvbGljeSAqDQo+ID4NCj4gPiAgICAg
IHJldHVybiBwZXJfY3B1KGh3cF9kcnZfZGF0YSwgY3B1KS0+cmV0OyAgfQ0KPiA+ICsjZW5kaWYg
LyogQ09ORklHX1BNX1NUQVRTICovDQo+ID4NCj4gPiAgc3RhdGljIGNvbnN0IHN0cnVjdCBjcHVm
cmVxX2RyaXZlciBfX2luaXRjb25zdF9jZl9jbG9iYmVyDQo+ID4gaHdwX2NwdWZyZXFfZHJpdmVy
ID0geyBAQCAtNTE2LDkgKzUxOCwxMiBAQCBod3BfY3B1ZnJlcV9kcml2ZXIgPSB7DQo+ID4gICAg
ICAudGFyZ2V0ID0gaHdwX2NwdWZyZXFfdGFyZ2V0LA0KPiA+ICAgICAgLmluaXQgICA9IGh3cF9j
cHVmcmVxX2NwdV9pbml0LA0KPiA+ICAgICAgLmV4aXQgICA9IGh3cF9jcHVmcmVxX2NwdV9leGl0
LA0KPiA+ICsjaWZkZWYgQ09ORklHX1BNX1NUQVRTDQo+ID4gICAgICAudXBkYXRlID0gaHdwX2Nw
dWZyZXFfdXBkYXRlLA0KPiA+ICsjZW5kaWYNCj4gPiAgfTsNCj4NCj4gU29tZXRoaW5nJ3Mgd3Jv
bmcgaGVyZTogVGhlIC51cGRhdGUgaG9vayBpcyBhY3R1YWxseSBtYWtpbmcgY2hhbmdlcywgc28g
aXMNCj4gZGVmaW5pdGVseSBub3QgKG9ubHkpIGFib3V0IHN0YXRpc3RpY3MuIFNhbWUgZm9yIHRo
ZSBwb3dlcm5vdyBkcml2ZXIuDQo+DQo+ID4gKyNpZmRlZiBDT05GSUdfUE1fU1RBVFMNCj4gPiAg
aW50IGdldF9od3BfcGFyYSh1bnNpZ25lZCBpbnQgY3B1LA0KPiA+ICAgICAgICAgICAgICAgICAg
IHN0cnVjdCB4ZW5fY3BwY19wYXJhICpjcHBjX3BhcmEpICB7IEBAIC02MzksNiArNjQ0LDcNCj4g
PiBAQCBpbnQgc2V0X2h3cF9wYXJhKHN0cnVjdCBjcHVmcmVxX3BvbGljeSAqcG9saWN5LA0KPiA+
DQo+ID4gICAgICByZXR1cm4gaHdwX2NwdWZyZXFfdGFyZ2V0KHBvbGljeSwgMCwgMCk7ICB9DQo+
ID4gKyNlbmRpZiAvKiBDT05GSUdfUE1fU1RBVFMgKi8NCj4NCj4gVGhpcyBhbHNvIGlzbid0IGFi
b3V0IHN0YXRpc3RpY3MsIGJ1dCBhYm91dCBnZXR0aW5nIC8gc2V0dGluZyBwYXJhbWV0ZXJzLg0K
Pg0KPiA+IC0tLSBhL3hlbi9jb21tb24vS2NvbmZpZw0KPiA+ICsrKyBiL3hlbi9jb21tb24vS2Nv
bmZpZw0KPiA+IEBAIC01NTcsNCArNTU3LDkgQEAgY29uZmlnIFNZU0NUTA0KPiA+ICAgICAgIHRv
IHJlZHVjZSBYZW4gZm9vdHByaW50Lg0KPiA+ICBlbmRtZW51DQo+ID4NCj4gPiArY29uZmlnIFBN
X1NUQVRTDQo+ID4gKyAgIGJvb2wgIkVuYWJsZSBQZXJmb3JtYW5jZSBNYW5hZ2VtZW50IFN0YXRp
c3RpY3MiDQo+ID4gKyAgIGRlcGVuZHMgb24gQUNQSSAmJiBIQVNfQ1BVRlJFUSAmJiBTWVNDVEwN
Cj4gPiArICAgZGVmYXVsdCB5DQo+DQo+IEFzIHBlciBhYm92ZSAtIGVpdGhlciBuYW1lLCBwcm9t
cHQgYW5kIHRoZSBkZXNjcmlwdGlvbiB0aGF0IFN0ZWZhbm8gc3VnZ2VzdGVkDQo+IGFyZSB3cm9u
Zywgb3IgaXQgaXMgdG9vIG11Y2ggdGhhdCBpcyBiZWluZyBjb3ZlcmVkIGJ5IHRoaXMgbmV3IGNv
bnRyb2wuDQo+DQoNCldlIGhhdmUgdHdvIHN5c2N0bC1vcCBvbiBwZXJmb3JtYW5jZSwgZG9fZ2V0
X3BtX2luZm8oKSBhbmQgZG9fcG1fb3AoKS4NCkkgdGhpbmsgZG9fZ2V0X3BtX2luZm8oKSBpcyB0
byBjb2xsZWN0IFBNIHN0YXRpc3RpYyBpbmZvLCB3aGljaCBjb3VsZCBiZSB3cmFwcGVkIHdpdGgN
CkNPTkZJR19QTV9TVEFUUywgd2hpbGUgbWF5YmUgZG9fcG1fb3AoKSBpcyBtb3JlIGZvY3VzaW5n
IG9uIHBlcmZvcm1hbmNlIHR1bmluZy4NCkhvdyBhYm91dCB3ZSBpbnRyb2R1Y2UgYW5vdGhlciBL
Y29uZmlnIENPTkZJR19QTV9UVU5FIHRvIHdyYXAgIGRvX3BtX29wKCkNCmFuZCByZWxhdGVkIGhl
bHBlcnM/IEkgc3VnZ2VzdCB0byBpbnRyb2R1Y2UgYSBuZXcgZmlsZSBwbXR1bmUuYyB0byBjb250
YWluLg0KT3IgYW55IGJldHRlciBzdWdnZXN0aW9uPw0KDQo+DQo+IEphbg0K


From xen-devel-bounces@lists.xenproject.org Wed Apr 16 05:05:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 05:05:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.954943.1348818 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4uxZ-0005wP-KE; Wed, 16 Apr 2025 05:05:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 954943.1348818; Wed, 16 Apr 2025 05:05: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 1u4uxZ-0005wI-HX; Wed, 16 Apr 2025 05:05:17 +0000
Received: by outflank-mailman (input) for mailman id 954943;
 Wed, 16 Apr 2025 05: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=1z0E=XC=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u4uxX-0005wA-E4
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 05:05:16 +0000
Received: from mail-24417.protonmail.ch (mail-24417.protonmail.ch
 [109.224.244.17]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 60a982fa-1a80-11f0-9eaf-5ba50f476ded;
 Wed, 16 Apr 2025 07:05:13 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 60a982fa-1a80-11f0-9eaf-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1744779911; x=1745039111;
	bh=6riKyEr6Sj5aHqJ/Z03PTegCIDGRfX3q2k1vTORH4Qs=;
	h=Date:To:From:Cc:Subject:Message-ID:Feedback-ID:From:To:Cc:Date:
	 Subject:Reply-To:Feedback-ID:Message-ID:BIMI-Selector:
	 List-Unsubscribe:List-Unsubscribe-Post;
	b=YjroKTPnXiVNMZF7odEi0VJ1LyId5pEJSJkSDgwomA28wwtj6Muv4Et9JwOTN/MC5
	 bCfrDh0EJCxWdKt4FbTlvfZdSuBPzjzabUcrJBfC+miaCMJP1QfoTSJMr/D5MhTfy/
	 sJPpeS/BDZg2/W31WwjYTnUVAPRJ607XtHL7kn+jzhckTvBWGoXXvYhmmKF8Bid0+l
	 HhSr4J+yIKLy7X/gtM2sxWPIJmDU8UDJL0x/R3UoUCcc+FWQ6aTVMBCxP3bYODlVAK
	 gsDOUAYsa6cKuyDZnwi/Hj2bXOHwCc1Wc0fGClUqoJoQQE6SPHjj7AkdO/Npho3P0r
	 XCnlheyuOytpQ==
Date: Wed, 16 Apr 2025 05:05:07 +0000
To: xen-devel@lists.xenproject.org
From: dmkhn@proton.me
Cc: andrew.cooper3@citrix.com, christopher.w.clark@gmail.com, dpsmith@apertussolutions.com, persaur@gmail.com, dmukhin@ford.com
Subject: [XTF PATCH v1 0/2] xtf: integrate argo test
Message-ID: <20250416050443.919751-1-dmukhin@ford.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 441ee477972c3a8ab3b25633b4a4b4c125690a99
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

The patch series integrates an XTF argo test available at [1].

Patch 1 is the original test.
Patch 2 adds fixups to run the test under QEMU environment in gitlab CI.

[1] https://github.com/dozylynx/meta-argo/blob/master/recipes-extended/xen/=
xtf/0001-Add-Argo-test.patch

Christopher Clark (1):
  tests/argo: Add argo test suite

Denis Mukhin (1):
  tests/argo: fixup for recent xen

 docs/all-tests.dox      |   2 +
 include/xen/argo.h      | 259 +++++++++++++++++++++++++++++
 include/xtf/hypercall.h |   1 +
 include/xtf/numbers.h   |   5 +
 tests/argo/Makefile     |   9 +
 tests/argo/main.c       | 355 ++++++++++++++++++++++++++++++++++++++++
 6 files changed, 631 insertions(+)
 create mode 100644 include/xen/argo.h
 create mode 100644 tests/argo/Makefile
 create mode 100644 tests/argo/main.c

--=20
2.34.1




From xen-devel-bounces@lists.xenproject.org Wed Apr 16 05:05:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 05:05:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.954944.1348829 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4uxd-0006Aa-RM; Wed, 16 Apr 2025 05:05:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 954944.1348829; Wed, 16 Apr 2025 05:05: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 1u4uxd-0006AT-OV; Wed, 16 Apr 2025 05:05:21 +0000
Received: by outflank-mailman (input) for mailman id 954944;
 Wed, 16 Apr 2025 05: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=1z0E=XC=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u4uxb-0005wA-I1
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 05:05:19 +0000
Received: from mail-10628.protonmail.ch (mail-10628.protonmail.ch
 [79.135.106.28]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 63f5e15a-1a80-11f0-9eaf-5ba50f476ded;
 Wed, 16 Apr 2025 07:05:18 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 63f5e15a-1a80-11f0-9eaf-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=fuxg2qpfbfdethxdezkpnepkyq.protonmail; t=1744779915; x=1745039115;
	bh=EHHDSWCIAJYn9twbBqXHNW9HEj3O3gYQKi1ExP1goak=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=NrzNRj7Tukd/DZ7DWo61V3b4ef8YhL8ZmskNGxH5HU0Hy1Gi3Aojj+IH+nw6OiDB1
	 jmW+bHxrokcaanOdyYoyi21QTC4iLYpXKTnv0SmXttP/dCgDa0SefQ0GpnrWbl7pas
	 mJVB0PGwKa7by7h3/CdI6yXDERtze0sOpR71385VoLmLXfxHljx/UHCVJaWcoq+wxW
	 jMTmfN6M5ZrmZAHqeTNMAfL6iRGmYhz+bvZq7gpG/6WVB0Vsy9JIg5v9qMVUTCMqNX
	 vQ9kwWEKNbjUDHrmvQAhLECBhWd0pNNQT8ciQz2D9BmjZNSJc5WLTiVza/BAHLBIJp
	 1b8qOg6GR+Fgg==
Date: Wed, 16 Apr 2025 05:05:11 +0000
To: xen-devel@lists.xenproject.org
From: dmkhn@proton.me
Cc: andrew.cooper3@citrix.com, christopher.w.clark@gmail.com, dpsmith@apertussolutions.com, persaur@gmail.com, dmukhin@ford.com, Christopher Clark <christopher.clark6@baesystems.com>
Subject: [XTF PATCH v1 1/2] tests/argo: Add argo test suite
Message-ID: <20250416050443.919751-2-dmukhin@ford.com>
In-Reply-To: <20250416050443.919751-1-dmukhin@ford.com>
References: <20250416050443.919751-1-dmukhin@ford.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 4f1714cb6b174bdd5e51f863f31364592ffb6d68
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

From: Christopher Clark <christopher.w.clark@gmail.com>

From: Christopher Clark <christopher.w.clark@gmail.com>

Simple test cases for the four Argo operations, register, unregister,
sendv and notify exercised with a single test domain.
Add infrastructure to access Argo: a 5-argument hypercall, number 39.

Signed-off-by: Christopher Clark <christopher.clark6@baesystems.com>
Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
Original XTF argo test:
  https://github.com/dozylynx/meta-argo/blob/master/recipes-extended/xen/xt=
f/0001-Add-Argo-test.patch
---
 docs/all-tests.dox      |   2 +
 include/xen/argo.h      | 259 +++++++++++++++++++++++++++++
 include/xtf/hypercall.h |   1 +
 include/xtf/numbers.h   |   5 +
 tests/argo/Makefile     |   9 +
 tests/argo/main.c       | 353 ++++++++++++++++++++++++++++++++++++++++
 6 files changed, 629 insertions(+)
 create mode 100644 include/xen/argo.h
 create mode 100644 tests/argo/Makefile
 create mode 100644 tests/argo/main.c

diff --git a/docs/all-tests.dox b/docs/all-tests.dox
index 0a8b913..9bdeaa8 100644
--- a/docs/all-tests.dox
+++ b/docs/all-tests.dox
@@ -174,6 +174,8 @@ states.
=20
 @section index-utility Utilities
=20
+@subpage test-argo - Argo functionality test
+
 @subpage test-cpuid - Print CPUID information.
=20
 @subpage test-fep - Test availability of HVM Forced Emulation Prefix.
diff --git a/include/xen/argo.h b/include/xen/argo.h
new file mode 100644
index 0000000..5ae2def
--- /dev/null
+++ b/include/xen/argo.h
@@ -0,0 +1,259 @@
+/*************************************************************************=
*****
+ * Argo : Hypervisor-Mediated data eXchange
+ *
+ * Derived from v4v, the version 2 of v2v.
+ *
+ * Copyright (c) 2010, Citrix Systems
+ * Copyright (c) 2018-2019, BAE Systems
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a=
 copy
+ * of this software and associated documentation files (the "Software"), t=
o
+ * deal in the Software without restriction, including without limitation =
the
+ * rights to use, copy, modify, merge, publish, distribute, sublicense, an=
d/or
+ * sell copies of the Software, and to permit persons to whom the Software=
 is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included=
 in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS 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. IN NO EVENT SHALL=
 THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ */
+
+#ifndef __XEN_PUBLIC_ARGO_H__
+#define __XEN_PUBLIC_ARGO_H__
+
+#define XEN_ARGO_DOMID_ANY       DOMID_INVALID
+
+/* The maximum size of an Argo ring is defined to be: 16MB (0x1000000 byte=
s). */
+#define XEN_ARGO_MAX_RING_SIZE  (0x1000000ULL)
+
+/* Fixed-width type for "argo port" number. Nothing to do with evtchns. */
+typedef uint32_t xen_argo_port_t;
+
+/* gfn type: 64-bit fixed-width on all architectures */
+typedef uint64_t xen_argo_gfn_t;
+
+/*
+ * XEN_ARGO_MAXIOV : maximum number of iovs accepted in a single sendv.
+ * Caution is required if this value is increased: this determines the siz=
e of
+ * an array of xen_argo_iov_t structs on the hypervisor stack, so could ca=
use
+ * stack overflow if the value is too large.
+ * The Linux Argo driver never passes more than two iovs.
+*/
+#define XEN_ARGO_MAXIOV          8U
+
+typedef struct xen_argo_iov
+{
+    unsigned long iov_hnd;
+    uint32_t iov_len;
+    uint32_t pad;
+} xen_argo_iov_t;
+
+typedef struct xen_argo_addr
+{
+    xen_argo_port_t aport;
+    domid_t domain_id;
+    uint16_t pad;
+} xen_argo_addr_t;
+
+typedef struct xen_argo_send_addr
+{
+    struct xen_argo_addr src;
+    struct xen_argo_addr dst;
+} xen_argo_send_addr_t;
+
+typedef struct xen_argo_ring
+{
+    /* Guests should use atomic operations to access rx_ptr */
+    uint32_t rx_ptr;
+    /* Guests should use atomic operations to access tx_ptr */
+    uint32_t tx_ptr;
+    /*
+     * Header space reserved for later use. Align the start of the ring to=
 a
+     * multiple of the message slot size.
+     */
+    uint8_t reserved[56];
+    uint8_t ring[];
+} xen_argo_ring_t;
+
+typedef struct xen_argo_register_ring
+{
+    xen_argo_port_t aport;
+    domid_t partner_id;
+    uint16_t pad;
+    uint32_t len;
+} xen_argo_register_ring_t;
+
+typedef struct xen_argo_unregister_ring
+{
+    xen_argo_port_t aport;
+    domid_t partner_id;
+    uint16_t pad;
+} xen_argo_unregister_ring_t;
+
+/* Messages on the ring are padded to a multiple of this size. */
+#define XEN_ARGO_MSG_SLOT_SIZE 0x10
+
+/*
+ * Notify flags
+ */
+/* Ring exists */
+#define XEN_ARGO_RING_EXISTS            (1U << 0)
+/* Ring is shared, not unicast */
+#define XEN_ARGO_RING_SHARED            (1U << 1)
+/* Ring is empty */
+#define XEN_ARGO_RING_EMPTY             (1U << 2)
+/* Sufficient space to queue space_required bytes might exist */
+#define XEN_ARGO_RING_SUFFICIENT        (1U << 3)
+/* Insufficient ring size for space_required bytes */
+#define XEN_ARGO_RING_EMSGSIZE          (1U << 4)
+/* Too many domains waiting for available space signals for this ring */
+#define XEN_ARGO_RING_EBUSY             (1U << 5)
+
+typedef struct xen_argo_ring_data_ent
+{
+    struct xen_argo_addr ring;
+    uint16_t flags;
+    uint16_t pad;
+    uint32_t space_required;
+    uint32_t max_message_size;
+} xen_argo_ring_data_ent_t;
+
+typedef struct xen_argo_ring_data
+{
+    uint32_t nent;
+    uint32_t pad;
+
+    /*
+     * The Xen headers have:
+     *   struct xen_argo_ring_data_ent data[];
+     * here.  It's useful for the hypervisor side of the interface, but re=
ally
+     * not for the client side.
+     */
+} xen_argo_ring_data_t;
+
+struct xen_argo_ring_message_header
+{
+    uint32_t len;
+    struct xen_argo_addr source;
+    uint32_t message_type;
+    uint8_t data[];
+};
+
+/*
+ * Hypercall operations
+ */
+
+/*
+ * XEN_ARGO_OP_register_ring
+ *
+ * Register a ring using the guest-supplied memory pages.
+ * Also used to reregister an existing ring (eg. after resume from hiberna=
te).
+ *
+ * The first argument struct indicates the port number for the ring to reg=
ister
+ * and the partner domain, if any, that is to be allowed to send to the ri=
ng.
+ * A wildcard (XEN_ARGO_DOMID_ANY) may be supplied instead of a partner do=
mid,
+ * and if the hypervisor has wildcard sender rings enabled, this will allo=
w
+ * any domain (XSM notwithstanding) to send to the ring.
+ *
+ * The second argument is an array of guest frame numbers and the third ar=
gument
+ * indicates the size of the array. This operation only supports 4K-sized =
pages.
+ *
+ * arg1: XEN_GUEST_HANDLE(xen_argo_register_ring_t)
+ * arg2: XEN_GUEST_HANDLE(xen_argo_gfn_t)
+ * arg3: unsigned long npages
+ * arg4: unsigned long flags (32-bit value)
+ */
+#define XEN_ARGO_OP_register_ring     1
+
+/* Register op flags */
+/*
+ * Fail exist:
+ * If set, reject attempts to (re)register an existing established ring.
+ * If clear, reregistration occurs if the ring exists, with the new ring
+ * taking the place of the old, preserving tx_ptr if it remains valid.
+ */
+#define XEN_ARGO_REGISTER_FLAG_FAIL_EXIST  0x1
+
+#ifdef __XEN__
+/* Mask for all defined flags. */
+#define XEN_ARGO_REGISTER_FLAG_MASK XEN_ARGO_REGISTER_FLAG_FAIL_EXIST
+#endif
+
+/*
+ * XEN_ARGO_OP_unregister_ring
+ *
+ * Unregister a previously-registered ring, ending communication.
+ *
+ * arg1: XEN_GUEST_HANDLE(xen_argo_unregister_ring_t)
+ * arg2: NULL
+ * arg3: 0 (ZERO)
+ * arg4: 0 (ZERO)
+ */
+#define XEN_ARGO_OP_unregister_ring     2
+
+/*
+ * XEN_ARGO_OP_sendv
+ *
+ * Send a list of buffers contained in iovs.
+ *
+ * The send address struct specifies the source and destination addresses
+ * for the message being sent, which are used to find the destination ring=
:
+ * Xen first looks for a most-specific match with a registered ring with
+ *  (id.addr =3D=3D dst) and (id.partner =3D=3D sending_domain) ;
+ * if that fails, it then looks for a wildcard match (aka multicast receiv=
er)
+ * where (id.addr =3D=3D dst) and (id.partner =3D=3D DOMID_ANY).
+ *
+ * For each iov entry, send iov_len bytes from iov_base to the destination=
 ring.
+ * If insufficient space exists in the destination ring, it will return -E=
AGAIN
+ * and Xen will notify the caller when sufficient space becomes available.
+ *
+ * The message type is a 32-bit data field available to communicate messag=
e
+ * context data (eg. kernel-to-kernel, rather than application layer).
+ *
+ * arg1: XEN_GUEST_HANDLE(xen_argo_send_addr_t) source and dest addresses
+ * arg2: XEN_GUEST_HANDLE(xen_argo_iov_t) iovs
+ * arg3: unsigned long niov
+ * arg4: unsigned long message type (32-bit value)
+ */
+#define XEN_ARGO_OP_sendv               3
+
+/*
+ * XEN_ARGO_OP_notify
+ *
+ * Asks Xen for information about other rings in the system.
+ *
+ * ent->ring is the xen_argo_addr_t of the ring you want information on.
+ * Uses the same ring matching rules as XEN_ARGO_OP_sendv.
+ *
+ * ent->space_required : if this field is not null then Xen will check
+ * that there is space in the destination ring for this many bytes of payl=
oad.
+ * If the ring is too small for the requested space_required, it will set =
the
+ * XEN_ARGO_RING_EMSGSIZE flag on return.
+ * If sufficient space is available, it will set XEN_ARGO_RING_SUFFICIENT
+ * and CANCEL any pending notification for that ent->ring; otherwise it
+ * will schedule a notification event and the flag will not be set.
+ *
+ * These flags are set by Xen when notify replies:
+ * XEN_ARGO_RING_EXISTS     ring exists
+ * XEN_ARGO_RING_SHARED     ring is registered for wildcard partner
+ * XEN_ARGO_RING_EMPTY      ring is empty
+ * XEN_ARGO_RING_SUFFICIENT sufficient space for space_required is there
+ * XEN_ARGO_RING_EMSGSIZE   space_required is too large for the ring size
+ * XEN_ARGO_RING_EBUSY      too many domains waiting for available space s=
ignals
+ *
+ * arg1: XEN_GUEST_HANDLE(xen_argo_ring_data_t) ring_data (may be NULL)
+ * arg2: NULL
+ * arg3: 0 (ZERO)
+ * arg4: 0 (ZERO)
+ */
+#define XEN_ARGO_OP_notify              4
+
+#endif
diff --git a/include/xtf/hypercall.h b/include/xtf/hypercall.h
index 0d33807..17975ba 100644
--- a/include/xtf/hypercall.h
+++ b/include/xtf/hypercall.h
@@ -33,6 +33,7 @@
 extern uint8_t hypercall_page[PAGE_SIZE];
=20
 /* All Xen ABI for includers convenience .*/
+#include <xen/argo.h>
 #include <xen/callback.h>
 #include <xen/elfnote.h>
 #include <xen/errno.h>
diff --git a/include/xtf/numbers.h b/include/xtf/numbers.h
index f5c73b7..b0b2c1b 100644
--- a/include/xtf/numbers.h
+++ b/include/xtf/numbers.h
@@ -52,6 +52,11 @@
  */
 #define _u(v) ((unsigned long)(v))
=20
+/**
+ * Round up a number to the next integer
+ */
+#define roundup(x, y) ((((x) + ((y) - 1)) / (y)) * (y))
+
 #endif /* !__ASSEMBLY__ */
 #endif /* XTF_NUMBERS_H */
=20
diff --git a/tests/argo/Makefile b/tests/argo/Makefile
new file mode 100644
index 0000000..c6b3113
--- /dev/null
+++ b/tests/argo/Makefile
@@ -0,0 +1,9 @@
+include $(ROOT)/build/common.mk
+
+NAME      :=3D argo
+CATEGORY  :=3D in-development
+TEST-ENVS :=3D $(ALL_ENVIRONMENTS)
+
+obj-perenv +=3D main.o
+
+include $(ROOT)/build/gen.mk
diff --git a/tests/argo/main.c b/tests/argo/main.c
new file mode 100644
index 0000000..fa54aed
--- /dev/null
+++ b/tests/argo/main.c
@@ -0,0 +1,353 @@
+/**
+ * @file tests/argo/main.c
+ * @ref test-argo
+ *
+ * @page test-argo argo
+ *
+ * @todo Docs for test-argo
+ *
+ * @see tests/argo/main.c
+ */
+#include <xtf.h>
+
+const char test_title[] =3D "Argo hypercall test";
+
+/*
+ * The current Linux Argo driver has a default ring size of 32 4k pages,
+ * so follow that for the test ring size.
+ */
+static uint8_t ring_buffer[32 * PAGE_SIZE] __page_aligned_bss;
+#define TEST_RING_NPAGES (sizeof(ring_buffer) / PAGE_SIZE)
+
+static int probe_for_argo(domid_t own_domid)
+{
+    /* Attempt an Argo call to register a ring with invalid arguments */
+    xen_argo_register_ring_t reg =3D {
+        .aport      =3D 1,
+        .partner_id =3D own_domid,
+        .len        =3D 1, /* A 1-byte ring is never allowed */
+    };
+    int rc =3D hypercall_argo_op(XEN_ARGO_OP_register_ring, &reg, NULL, 0,=
 0);
+
+    switch ( rc )
+    {
+    case -EINVAL: /* This is the response we are looking for */
+        return 0;
+
+        /* All below here are test exit conditions */
+    case -ENOSYS:
+        xtf_skip("Skip: Argo support has not been enabled in this hypervis=
or\n");
+        break;
+    case -EOPNOTSUPP:
+        xtf_skip("Skip: Argo is not enabled at runtime for this hypervisor=
\n");
+        break;
+    case -ENODEV:
+        xtf_skip("Skip: Argo is not enabled for this domain\n");
+        break;
+
+    case -EPERM:
+        xtf_failure("Fail: ring registration by this domain is not permitt=
ed\n");
+        break;
+    case 0:
+        xtf_failure("Fail: an invalid ring register op was not rejected\n"=
);
+        break;
+    default:
+        xtf_failure("Fail: unknown error %d for invalid ring registration\=
n", rc);
+        break;
+    }
+
+    return -1;
+}
+
+/* notify: asks Xen for information about rings */
+static int
+test_notify_for_one_ring(domid_t query_domid, xen_argo_port_t query_port,
+                         bool exists)
+{
+    struct {
+        xen_argo_ring_data_t data;
+        xen_argo_ring_data_ent_t ents[1];
+    } notify =3D {
+        .data =3D {
+            .nent =3D ARRAY_SIZE(notify.ents),
+        },
+        .ents =3D {
+            {
+                .ring =3D {
+                    .domain_id =3D query_domid,
+                    .aport     =3D query_port,
+                },
+            },
+        },
+    };
+    int rc =3D hypercall_argo_op(XEN_ARGO_OP_notify, &notify, NULL, 0, 0);
+
+    if ( rc )
+    {
+        xtf_failure("Fail: Unexpected error code %d in notify test\n", rc)=
;
+        return -1;
+    }
+
+    if ( !exists )
+    {
+        /* No currently-defined flags should be set for a non-existent rin=
g */
+        if ( notify.ents[0].flags )
+        {
+            xtf_failure("Fail: Non-existent ring reported as existing\n");
+            return -1;
+        }
+    }
+    else
+    {
+        if ( !(notify.ents[0].flags & XEN_ARGO_RING_EXISTS) )
+        {
+            xtf_failure("Fail: Ring not reported as existing\n");
+            return -1;
+        }
+    }
+
+    return 0;
+}
+
+/* See the Argo Linux device driver for similar use of these macros */
+#define XEN_ARGO_ROUNDUP(x) roundup((x), XEN_ARGO_MSG_SLOT_SIZE)
+#define ARGO_RING_OVERHEAD 80
+#define TEST_RING_SIZE(npages)                                      \
+    (XEN_ARGO_ROUNDUP((((PAGE_SIZE)*npages) - ARGO_RING_OVERHEAD)))
+
+static int
+test_register_ring(domid_t own_domid, xen_argo_port_t aport)
+{
+    unsigned int i;
+    xen_argo_register_ring_t reg =3D {
+        .aport      =3D aport,
+        .partner_id =3D own_domid,
+        .len        =3D TEST_RING_SIZE(TEST_RING_NPAGES),
+    };
+    xen_argo_gfn_t gfns[TEST_RING_NPAGES];
+
+    for ( i =3D 0; i < TEST_RING_NPAGES; i++ )
+        gfns[i] =3D virt_to_gfn(ring_buffer + (i * PAGE_SIZE));
+
+    int rc =3D hypercall_argo_op(XEN_ARGO_OP_register_ring, &reg, &gfns,
+                               TEST_RING_NPAGES, XEN_ARGO_REGISTER_FLAG_FA=
IL_EXIST);
+    switch ( rc )
+    {
+    case 0:
+        return 0;
+
+    case -ENODEV:
+        xtf_failure("Fail: Argo is not enabled for this domain\n");
+        break;
+    case -EFAULT:
+        xtf_failure("Fail: Memory fault performing register ring test\n");
+        break;
+    default:
+        xtf_failure("Fail: Unexpected error code %d in register ring test\=
n", rc);
+        break;
+    }
+    return -1;
+}
+
+static int
+test_unregister_ring(domid_t partner_domid, xen_argo_port_t aport,
+                     bool exists)
+{
+    xen_argo_register_ring_t unreg =3D {
+        .aport      =3D aport,
+        .partner_id =3D partner_domid,
+    };
+    int rc =3D hypercall_argo_op(XEN_ARGO_OP_unregister_ring, &unreg, NULL=
, 0, 0);
+
+    switch ( rc )
+    {
+    case 0:
+        if ( exists )
+            return 0;
+        xtf_failure("Fail: unexpected success unregistering non-existent r=
ing\n");
+        return -1;
+
+    case -ENOENT:
+        if ( !exists )
+            return 0;
+        xtf_failure("Fail: unexpected ring not found when unregistering \n=
");
+        return -1;
+
+    default:
+        xtf_failure("Fail: Unexpected error code %d in unregister ring tes=
t\n", rc);
+        break;
+    }
+    return -1;
+}
+
+static int
+test_sendv(domid_t src_domid, xen_argo_port_t src_aport,
+           domid_t dst_domid, xen_argo_port_t dst_aport,
+           const char *msg_text, size_t msg_len, unsigned int msg_type)
+{
+    xen_argo_send_addr_t send_addr =3D {
+        .src =3D {
+            .domain_id =3D src_domid,
+            .aport     =3D src_aport,
+        },
+        .dst =3D {
+            .domain_id =3D dst_domid,
+            .aport     =3D dst_aport,
+        },
+    };
+    xen_argo_iov_t iovs[] =3D {
+        {
+            .iov_hnd =3D _u(msg_text),
+            .iov_len =3D msg_len,
+        },
+    };
+    int rc =3D hypercall_argo_op(XEN_ARGO_OP_sendv, &send_addr,
+                               iovs, ARRAY_SIZE(iovs), msg_type);
+
+    if ( rc < 0 )
+    {
+        xtf_failure("Fail: Unexpected error code %d in sendv test\n", rc);
+        return -1;
+    }
+
+    if ( (size_t)rc !=3D msg_len )
+    {
+        xtf_failure("Fail: Unexpected message size %d written in sendv tes=
t\n", rc);
+        return -1;
+    }
+
+    return 0;
+}
+
+static int
+inspect_ring_after_first_single_sendv(domid_t src_domid,
+                                      xen_argo_port_t src_aport,
+                                      const char *sent_msg,
+                                      unsigned int sent_msg_len,
+                                      unsigned int sent_msg_type)
+{
+    int rc =3D 0;
+    xen_argo_ring_t *ringp =3D (xen_argo_ring_t *)ring_buffer;
+    struct xen_argo_ring_message_header *msg_hdr;
+    unsigned int sent_length;
+
+    if ( ringp->rx_ptr !=3D 0 )
+    {
+        xtf_failure("Fail: receive pointer non-zero after sendv: %u\n",
+                    ringp->rx_ptr);
+        rc =3D -1;
+    }
+
+    if ( ringp->tx_ptr !=3D XEN_ARGO_ROUNDUP(
+             sizeof(struct xen_argo_ring_message_header) + sent_msg_len) )
+    {
+        xtf_failure("Fail: transmit pointer incorrect after sendv: %u\n",
+                    ringp->rx_ptr);
+        rc =3D -1;
+    }
+
+    msg_hdr =3D (struct xen_argo_ring_message_header *)&(ringp->ring);
+
+    if ( msg_hdr->source.domain_id !=3D src_domid )
+    {
+        xtf_failure("Fail: source domain id incorrect: %u, expected %u\n",
+                    msg_hdr->source.domain_id, src_domid);
+        rc =3D -1;
+    }
+
+    if ( msg_hdr->source.aport !=3D src_aport )
+    {
+        xtf_failure("Fail: source domain port incorrect: %u, expected %u\n=
",
+                    msg_hdr->source.domain_id, src_aport);
+        rc =3D -1;
+    }
+
+    if ( msg_hdr->source.pad !=3D 0 )
+    {
+        xtf_failure("Fail: source padding incorrect: %u, expected zero\n",
+                    msg_hdr->source.pad);
+        rc =3D -1;
+    }
+
+    if ( sent_msg_type !=3D msg_hdr->message_type )
+    {
+        xtf_failure("Fail: message type incorrect: %u sent, %u received\n"=
,
+                    sent_msg_type, msg_hdr->message_type);
+        rc =3D -1;
+    }
+
+    sent_length =3D sent_msg_len + sizeof(struct xen_argo_ring_message_hea=
der);
+    if ( sent_length !=3D msg_hdr->len )
+    {
+        xtf_failure("Fail: received message length incorrect: "
+                    "%u sent is %u with header added, %u received\n",
+                    sent_msg_len, sent_length, msg_hdr->len);
+        rc =3D -1;
+    }
+
+    if ( strncmp((const char *)msg_hdr->data, sent_msg, sent_msg_len) )
+    {
+        xtf_failure("Fail: sent message got mangled\n");
+        rc =3D -1;
+    }
+
+    return rc;
+}
+
+static void clear_test_ring(void)
+{
+    memset(ring_buffer, 0, sizeof(ring_buffer));
+}
+
+void test_main(void)
+{
+    int own_domid;
+    xen_argo_port_t test_aport =3D 1;
+    const char simple_text[] =3D "a simple thing to send\n";
+    const unsigned int msg_type =3D 0x12345678;
+
+    own_domid =3D xtf_get_domid();
+    if ( own_domid < 0 )
+        return xtf_error("Error: could not determine domid of the test dom=
ain\n");
+
+    /* First test validates for Argo availability to gate further testing =
*/
+    if ( probe_for_argo(own_domid) )
+        return;
+
+    if ( test_notify_for_one_ring(own_domid, test_aport, false) ||
+         test_unregister_ring(own_domid, test_aport, false) )
+        return;
+
+    clear_test_ring();
+
+    if ( test_register_ring(own_domid, test_aport) ||
+         test_notify_for_one_ring(own_domid, test_aport, true) ||
+         test_unregister_ring(own_domid, test_aport, true) ||
+         test_notify_for_one_ring(own_domid, test_aport, false) ||
+         test_unregister_ring(own_domid, test_aport, false) )
+        return;
+
+    clear_test_ring();
+
+    if ( test_register_ring(own_domid, test_aport) ||
+         test_sendv(own_domid, test_aport, own_domid, test_aport,
+                    simple_text, strlen(simple_text), msg_type) ||
+         inspect_ring_after_first_single_sendv(
+             own_domid, test_aport, simple_text, strlen(simple_text), msg_=
type) ||
+         test_notify_for_one_ring(own_domid, test_aport, true) ||
+         test_unregister_ring(own_domid, test_aport, true) ||
+         test_unregister_ring(own_domid, test_aport, false) )
+        return;
+
+    xtf_success(NULL);
+}
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
--=20
2.34.1




From xen-devel-bounces@lists.xenproject.org Wed Apr 16 05:05:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 05:05:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.954945.1348840 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4uxl-0006Sl-8u; Wed, 16 Apr 2025 05:05:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 954945.1348840; Wed, 16 Apr 2025 05: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 1u4uxl-0006SM-2x; Wed, 16 Apr 2025 05:05:29 +0000
Received: by outflank-mailman (input) for mailman id 954945;
 Wed, 16 Apr 2025 05:05:27 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=1z0E=XC=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u4uxj-0006Px-TH
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 05:05:27 +0000
Received: from mail-10631.protonmail.ch (mail-10631.protonmail.ch
 [79.135.106.31]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 66a2634f-1a80-11f0-9ffb-bf95429c2676;
 Wed, 16 Apr 2025 07:05:23 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 66a2634f-1a80-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1744779921; x=1745039121;
	bh=2kntZOk6Me/sxQELVItK6E49Hfz1du9hHAG5aVlU0AI=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=UJZ1mAGKTrPRTfqp4vKTJWJELZRY7RCBLFf6Qj9/MqvlSh47djVJ3P8C+IxqQ/55V
	 eotKpa1cQm/hQXHyfQx7XHNsuVyai/Kr6c2POHvPzKDU+Kh9CEV2nTfgs6TQsa2GJd
	 k4n6DWaVRfJfOEAoIstwZaQg6VLosF3KBqim3FZrA/X1LubuXNSB6QXF1S1GSNmE+M
	 McH8gwoGKpdszkaRTUoSdRBwhjbm2JImGPsXKo8CvplViB8Q9NLAhBsQfoy51s8f7m
	 4JOghs/4D6h/a4dvYVwZEw24FZzuIDwEQsIhzpgcYN7AGLrNHPbH/Lo8GxLD4ZSz3h
	 QFZHhy2kRw44Q==
Date: Wed, 16 Apr 2025 05:05:16 +0000
To: xen-devel@lists.xenproject.org
From: dmkhn@proton.me
Cc: andrew.cooper3@citrix.com, christopher.w.clark@gmail.com, dpsmith@apertussolutions.com, persaur@gmail.com, dmukhin@ford.com
Subject: [XTF PATCH v1 2/2] tests/argo: fixup for recent xen
Message-ID: <20250416050443.919751-3-dmukhin@ford.com>
In-Reply-To: <20250416050443.919751-1-dmukhin@ford.com>
References: <20250416050443.919751-1-dmukhin@ford.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: b190bcdb1a9f992ac132a975f1e1d9dc04416dbc
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

From: Denis Mukhin <dmukhin@ford.com>

Add fixup for own_domid under CONFIG_HAS_XENSTORE to make XTF argo test
can pass under x86 QEMU.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
Successful argo XTF run:
  https://gitlab.com/xen-project/people/dmukhin/xen/-/jobs/9733329882
---
 tests/argo/main.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/tests/argo/main.c b/tests/argo/main.c
index fa54aed..1e6b92f 100644
--- a/tests/argo/main.c
+++ b/tests/argo/main.c
@@ -301,14 +301,16 @@ static void clear_test_ring(void)
=20
 void test_main(void)
 {
-    int own_domid;
+    int own_domid =3D 0;
     xen_argo_port_t test_aport =3D 1;
     const char simple_text[] =3D "a simple thing to send\n";
     const unsigned int msg_type =3D 0x12345678;
=20
+#if defined(CONFIG_HAS_XENSTORE)
     own_domid =3D xtf_get_domid();
     if ( own_domid < 0 )
         return xtf_error("Error: could not determine domid of the test dom=
ain\n");
+#endif
=20
     /* First test validates for Argo availability to gate further testing =
*/
     if ( probe_for_argo(own_domid) )
--=20
2.34.1




From xen-devel-bounces@lists.xenproject.org Wed Apr 16 05:32:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 05:32:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.954992.1348858 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4vNy-000478-An; Wed, 16 Apr 2025 05:32:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 954992.1348858; Wed, 16 Apr 2025 05:32: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 1u4vNy-000471-7v; Wed, 16 Apr 2025 05:32:34 +0000
Received: by outflank-mailman (input) for mailman id 954992;
 Wed, 16 Apr 2025 05:32: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=1z0E=XC=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u4vNx-00046f-FB
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 05:32:33 +0000
Received: from mail-24417.protonmail.ch (mail-24417.protonmail.ch
 [109.224.244.17]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3127d67d-1a84-11f0-9eaf-5ba50f476ded;
 Wed, 16 Apr 2025 07:32:31 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3127d67d-1a84-11f0-9eaf-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1744781549; x=1745040749;
	bh=I6xOE6IislzVIpQe71QtAcik34VMMvqkaRSuLdsw86M=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=fEW6GH2u2lIWIFRNZJWlsuaRUd3HYkNlHlXrJsTuj84LarkMmumGzEhAINRUuUuA1
	 mwhczRZhYUarHOVKBLZq51rpwm8An/JcweqxYTHgpu02iLFBa4Vj8TWBjXNMGJ+f+8
	 Z4C08MW0GZ1QKGqzJ/GJJY5vJ4AyATQMOrF5tk68i+lEG3EnO5FmQWP7QFCOicBzZy
	 XI2/YBqyRTjWNOn+ga2C0Eu9zBPdXzrY06PbNABaNVwja1AJ3STF4i1EBczUJ4A99l
	 dDyGHHgV6K5b9Qjz4Fj6G5mYLH+0jzwKvNJkcv1tvXe5O+3inZw6Fb7TIHBdORN5Xs
	 U30ddRqgd4Faw==
Date: Wed, 16 Apr 2025 05:32:26 +0000
To: xen-devel@lists.xenproject.org
From: dmkhn@proton.me
Cc: andrew.cooper3@citrix.com, cardoe@cardoe.com, marmarek@invisiblethingslab.com, sstabellini@kernel.org, dmukhin@ford.com
Subject: [PATCH v1 1/4] CI: unify x86 XTF test runner
Message-ID: <20250416053213.921444-2-dmukhin@ford.com>
In-Reply-To: <20250416053213.921444-1-dmukhin@ford.com>
References: <20250416053213.921444-1-dmukhin@ford.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 728b72d9a8a7fd6ad4174252f2a6564c267c75ea
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

From: Denis Mukhin <dmukhin@ford.com>

Add test runner script qemu-xtf.sh which is allows any XTF x86 test to be
easily executed. Test runner is invoked from the qemu-smoke* jobs with the
hardcoded parameters.

Each x86 XTF job lead time is reduced a bit since only the test-related cod=
e
is built, not the entire XTF project.

Add .gitignore to avoid committing test artifacts by mistake.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
 automation/gitlab-ci/test.yaml                |   8 +-
 automation/scripts/.gitignore                 |   6 +
 .../scripts/include/configs/xtf-x86-64-config |   0
 automation/scripts/include/xtf-runner         | 134 ++++++++++++++++++
 automation/scripts/include/xtf-x86-64         |  31 ++++
 automation/scripts/qemu-smoke-x86-64.sh       |  26 ----
 automation/scripts/qemu-xtf.sh                |  26 ++++
 7 files changed, 201 insertions(+), 30 deletions(-)
 create mode 100644 automation/scripts/.gitignore
 create mode 100644 automation/scripts/include/configs/xtf-x86-64-config
 create mode 100644 automation/scripts/include/xtf-runner
 create mode 100644 automation/scripts/include/xtf-x86-64
 delete mode 100755 automation/scripts/qemu-smoke-x86-64.sh
 create mode 100755 automation/scripts/qemu-xtf.sh

diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yam=
l
index 5ce445b78f..3adc841335 100644
--- a/automation/gitlab-ci/test.yaml
+++ b/automation/gitlab-ci/test.yaml
@@ -659,28 +659,28 @@ qemu-alpine-x86_64-gcc:
 qemu-smoke-x86-64-gcc:
   extends: .qemu-smoke-x86-64
   script:
-    - ./automation/scripts/qemu-smoke-x86-64.sh pv 2>&1 | tee ${LOGFILE}
+    - ./automation/scripts/qemu-xtf.sh x86-64 pv64 example 2>&1 | tee ${LO=
GFILE}
   needs:
     - debian-12-x86_64-gcc-debug
=20
 qemu-smoke-x86-64-clang:
   extends: .qemu-smoke-x86-64
   script:
-    - ./automation/scripts/qemu-smoke-x86-64.sh pv 2>&1 | tee ${LOGFILE}
+    - ./automation/scripts/qemu-xtf.sh x86-64 pv64 example 2>&1 | tee ${LO=
GFILE}
   needs:
     - debian-12-x86_64-clang-debug
=20
 qemu-smoke-x86-64-gcc-pvh:
   extends: .qemu-smoke-x86-64
   script:
-    - ./automation/scripts/qemu-smoke-x86-64.sh pvh 2>&1 | tee ${LOGFILE}
+    - ./automation/scripts/qemu-xtf.sh x86-64 hvm64 example 2>&1 | tee ${L=
OGFILE}
   needs:
     - debian-12-x86_64-gcc-debug
=20
 qemu-smoke-x86-64-clang-pvh:
   extends: .qemu-smoke-x86-64
   script:
-    - ./automation/scripts/qemu-smoke-x86-64.sh pvh 2>&1 | tee ${LOGFILE}
+    - ./automation/scripts/qemu-xtf.sh x86-64 hvm64 example 2>&1 | tee ${L=
OGFILE}
   needs:
     - debian-12-x86_64-clang-debug
=20
diff --git a/automation/scripts/.gitignore b/automation/scripts/.gitignore
new file mode 100644
index 0000000000..2f2d6e1ebd
--- /dev/null
+++ b/automation/scripts/.gitignore
@@ -0,0 +1,6 @@
+!include
+
+binaries
+smoke.serial
+xen
+xtf*/
diff --git a/automation/scripts/include/configs/xtf-x86-64-config b/automat=
ion/scripts/include/configs/xtf-x86-64-config
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/automation/scripts/include/xtf-runner b/automation/scripts/inc=
lude/xtf-runner
new file mode 100644
index 0000000000..55b7b34b89
--- /dev/null
+++ b/automation/scripts/include/xtf-runner
@@ -0,0 +1,134 @@
+#!/bin/bash
+#
+# XTF test utilities.
+#
+# Environment variables:
+#   BOOT_MSG: Expected boot message
+#   FW_PREFIX: Firmware images path including '/' at the end
+#   PASSED: XTF test printout in case of a pass
+#   QEMU_PREFIX: QEMU path including '/' at the end
+#   TEST_LOG: Output log file
+#   UBOOT_CMD: U-Boot command line
+#   WORKDIR: Test working directory
+#   XEN_BINARY: Xen binary location
+#   XEN_CONSOLE: Xen console device name
+#   XTF_SRC_CONFIG: XTF config file
+#   XTF_SRC_BRANCH: XTF branch
+#   XTF_SRC_URI: XTF source code URI
+
+function die()
+{
+    set +x
+    echo "FATAL: $*" >&2
+    exit 1
+}
+
+[ -z "$TOP" ] && die "\$TOP is not set"
+
+# Output log file
+TEST_LOG=3D"${TEST_LOG:-smoke.serial}"
+# XTF test printout in case of a pass
+PASSED=3D"${PASSED:-Test result: SUCCESS}"
+# Expected boot message
+BOOT_MSG=3D"${BOOT_MSG:-Latest ChangeSet: }"
+# Test working directory
+WORKDIR=3D"${WORKDIR:-binaries}"
+# XTF source code
+XTF_SRC_CONFIG=3D"${XTF_CONFIG:-${TOP}/include/configs/xtf-${ARCH}-config}=
"
+
+# Build an XTF test binary.
+# $1 Test variant.
+# $2 Test name.
+function xtf_build_binary()
+{
+    local xtf_variant=3D$1
+    local xtf_name=3D$2
+    local xtf_dir=3D"xtf-${ARCH}"
+
+    # Crude check for local testing
+    if [ ! -d ${xtf_dir}/.git ]; then
+        git clone ${XTF_SRC_URI} ${xtf_dir} -b ${XTF_SRC_BRANCH}
+    fi
+
+    make \
+        -C ${xtf_dir} \
+        -j$(nproc) \
+        $(tr '\n' ' ' < ${XTF_SRC_CONFIG}) \
+        TESTS=3Dtests/${xtf_name}
+
+    export XTF_NAME=3D"${xtf_name}"
+    export XTF_VARIANT=3D"${xtf_variant}"
+    export XTF_WORKDIR=3D"$(readlink -f ${xtf_dir})"
+    export XTF_BINARY=3D"${XTF_WORKDIR}/tests/${xtf_name}/test-${xtf_varia=
nt}-${xtf_name}"
+}
+
+# Build Xen command line for running an XTF test.
+# $1 Test variant.
+# $2 Test name.
+function xtf_build_cmdline()
+{
+    local xtf_variant=3D$1
+    local xtf_name=3D$2
+    declare -a cmdline=3D()
+
+    cmdline+=3D("loglvl=3Dall noreboot console_timestamps=3Dboot")
+    cmdline+=3D("console=3D${XEN_CONSOLE}")
+
+    # NB: OK to have hvm64, which is x86-only variant
+    if [[ $xtf_variant =3D=3D "hvm64" ]]; then
+        cmdline+=3D("dom0-iommu=3Dnone dom0=3Dpvh")
+    fi
+
+    export XEN_CMDLINE=3D"${cmdline[@]}"
+}
+
+# Build an XTF test environment.
+# $1 Test variant.
+# $2 Test name.
+function xtf_build_test()
+{
+    local v=3D$1
+    local xtf_name=3D$2
+    local xtf_variant=3D""
+
+    for x in ${XTF_SRC_VARIANTS}; do
+        if [[ "${x}" =3D=3D "${v}" ]]; then
+            xtf_variant=3D${v}
+            break
+        fi
+    done
+    if [[ -z $xtf_variant ]]; then
+        die "unsupported test variant '$1', supported variants: ${XTF_SRC_=
VARIANTS}"
+    fi
+
+    xtf_build_binary ${xtf_variant} ${xtf_name}
+    xtf_build_cmdline ${xtf_variant} ${xtf_name}
+}
+
+# Execute an XTF test.
+function xtf_run_test()
+{
+    rm -f ${TEST_LOG}
+    export BOOT_MSG PASSED TEST_CMD TEST_LOG UBOOT_CMD
+    ${TOP}/console.exp | sed 's/\r\+$//'
+}
+
+# Setup environment and run an XTF test.
+# $1 Test variant.
+# $2 Test name.
+function xtf_test()
+{
+    # Out: FW_*, QEMU_*, XEN_{BINARY,CONSOLE}, XTF_SRC_*
+    xtf_arch_prepare
+
+    # In: XTF_SRC_*
+    # OUt: XTF_{BINARY,NAME,VARIANT,WORKDIR} and XEN_CMDLINE
+    xtf_build_test $@
+
+    # In: FW_*, QEMU_*, XTF_*, XEN_*
+    # Out: BOOT_MSG, PASSED, TEST_{CMD,LOG}, UBOOT_CMD
+    xtf_arch_setup
+
+    # In: BOOT_MSG, PASSED, TEST_{CMD,LOG}, UBOOT_CMD
+    xtf_run_test
+}
diff --git a/automation/scripts/include/xtf-x86-64 b/automation/scripts/inc=
lude/xtf-x86-64
new file mode 100644
index 0000000000..edddf18b38
--- /dev/null
+++ b/automation/scripts/include/xtf-x86-64
@@ -0,0 +1,31 @@
+#!/bin/bash
+#
+# XTF test utilities (x86_64).
+#
+
+# Arch-specific environment overrides.
+function xtf_arch_prepare()
+{
+    export FW_PREFIX=3D"${FW_PREFIX:-}"
+    export QEMU_PREFIX=3D"${QEMU_PREFIX:-}"
+    export XEN_BINARY=3D"${XEN_BINARY:-${WORKDIR}/xen}"
+    export XEN_CONSOLE=3D"${XEN_CONSOLE:-com1}"
+    export XTF_SRC_BRANCH=3D"${XTF_SRC_BRANCH:-master}"
+    export XTF_SRC_URI=3D"${XTF_SRC_URI:-https://xenbits.xen.org/git-http/=
xtf.git}"
+    export XTF_SRC_VARIANTS=3D"hvm64 pv64"
+}
+
+# Perform arch-specific XTF environment setup.
+function xtf_arch_setup()
+{
+    export TEST_CMD=3D"${QEMU_PREFIX}qemu-system-x86_64 \
+        -no-reboot \
+        -nographic \
+        -monitor none \
+        -serial stdio \
+        -m 512 \
+        -kernel ${XEN_BINARY} \
+        -initrd ${XTF_BINARY} \
+        -append \"${XEN_CMDLINE}\" \
+    "
+}
diff --git a/automation/scripts/qemu-smoke-x86-64.sh b/automation/scripts/q=
emu-smoke-x86-64.sh
deleted file mode 100755
index da0c26cc2f..0000000000
--- a/automation/scripts/qemu-smoke-x86-64.sh
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/bin/bash
-
-set -ex -o pipefail
-
-# variant should be either pv or pvh
-variant=3D$1
-
-# Clone and build XTF
-git clone https://xenbits.xen.org/git-http/xtf.git
-cd xtf && make -j$(nproc) && cd -
-
-case $variant in
-    pvh) k=3Dtest-hvm64-example    extra=3D"dom0-iommu=3Dnone dom0=3Dpvh" =
;;
-    *)   k=3Dtest-pv64-example     extra=3D ;;
-esac
-
-rm -f smoke.serial
-export TEST_CMD=3D"qemu-system-x86_64 -nographic -kernel binaries/xen \
-        -initrd xtf/tests/example/$k \
-        -append \"loglvl=3Dall console=3Dcom1 noreboot console_timestamps=
=3Dboot $extra\" \
-        -m 512 -monitor none -serial stdio"
-
-export TEST_LOG=3D"smoke.serial"
-export PASSED=3D"Test result: SUCCESS"
-
-./automation/scripts/console.exp | sed 's/\r\+$//'
diff --git a/automation/scripts/qemu-xtf.sh b/automation/scripts/qemu-xtf.s=
h
new file mode 100755
index 0000000000..2e16d4aece
--- /dev/null
+++ b/automation/scripts/qemu-xtf.sh
@@ -0,0 +1,26 @@
+#!/bin/bash
+#
+# XTF test runner (QEMU).
+#
+
+set -e -o pipefail
+
+if [ $# -lt 3 ]; then
+    echo "Usage: $(basename $0) ARCH XTF-VARIANT XTF-NAME"
+    exit 1
+fi
+
+export ARCH=3D"$1"
+shift
+
+export TOP=3D"$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
+if [ ! -f "${TOP}/include/xtf-${ARCH}" ]; then
+    echo "unsupported architecture '${ARCH}'" >&2
+    exit 1
+fi
+
+set -x
+source ${TOP}/include/xtf-runner
+source ${TOP}/include/xtf-${ARCH}
+
+xtf_test $@
--=20
2.34.1




From xen-devel-bounces@lists.xenproject.org Wed Apr 16 05:32:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 05:32:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.954991.1348850 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4vNu-0003sw-5S; Wed, 16 Apr 2025 05:32:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 954991.1348850; Wed, 16 Apr 2025 05: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 1u4vNu-0003sp-1Q; Wed, 16 Apr 2025 05:32:30 +0000
Received: by outflank-mailman (input) for mailman id 954991;
 Wed, 16 Apr 2025 05: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=1z0E=XC=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u4vNr-0003si-N0
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 05:32:29 +0000
Received: from mail-4316.protonmail.ch (mail-4316.protonmail.ch [185.70.43.16])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2d72c335-1a84-11f0-9ffb-bf95429c2676;
 Wed, 16 Apr 2025 07:32:25 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2d72c335-1a84-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=y5pwmtbmyrepzds2fhnq3xofty.protonmail; t=1744781543; x=1745040743;
	bh=Cl19Hi3IFFMPgkIlqHW/5V+Sd1+ktwIMSAGxCgjwL4E=;
	h=Date:To:From:Cc:Subject:Message-ID:Feedback-ID:From:To:Cc:Date:
	 Subject:Reply-To:Feedback-ID:Message-ID:BIMI-Selector:
	 List-Unsubscribe:List-Unsubscribe-Post;
	b=WyMS+CYKB4hsX4U/d+L4aNc0Ef4SDvZKt1kZwz7lg53vNKaEN9+OEmdDVTUXnTcg3
	 6pt4tnnQxarQAYSMUtdLMNMe2M9hCqb7XAFyEAHp2dijcQtt59lESn0HfIo5qlf+zI
	 PfQ5YjZ0ahn+hsM/XJOrp+BSnUYy20IzliGCYkfO6MEvW7rCnMeuU1FsC9ZXcqUqKG
	 Kfgw84hyqRjlhoFt8OeMiwwQQdR19b3BN0Jqheu/j7nnXYMIbDJJL+2wc7Yn9Unw8B
	 hQaRKla5lYpqVqGp3Q/nCpnzheBZwjBXixNtj/qHAE8mCuvFwI93XgAWsRJlgVULlt
	 7VBREqb0+0SWQ==
Date: Wed, 16 Apr 2025 05:32:19 +0000
To: xen-devel@lists.xenproject.org
From: dmkhn@proton.me
Cc: andrew.cooper3@citrix.com, cardoe@cardoe.com, marmarek@invisiblethingslab.com, sstabellini@kernel.org, dmukhin@ford.com
Subject: [PATCH v1 0/4] CI: updates to XTF CI runners
Message-ID: <20250416053213.921444-1-dmukhin@ford.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 39587ba6ca00e6b5773b98b02cb603f1ba757e96
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

The series started from adding new argo XTF CI job and ended up with updati=
ng
all XTF runners and related CI jobs.

It unifies the XTF runner scripts so that it is possible to use one script =
for
executing any XTF test under QEMU. That simplifies running XTFs locally and=
 in
CI.

Patch 1 reworks x86 XTF runner.
Patch 2 reworks x86 EFI XTF.
Patch 3 reworks Arm64 XTF runner.
Patch 4 adds new argo x86 XTF CI job.

CI run: https://gitlab.com/xen-project/people/dmukhin/xen/-/pipelines/17704=
37024

Denis Mukhin (4):
  CI: unify x86 XTF test runner
  CI: switch x86 EFI smoke test runner to qemu-xtf.sh
  CI: switch arm64 XTF test runner to qemu-xtf.sh
  CI: add argo x86 XTF test

 automation/gitlab-ci/test.yaml                |  23 ++-
 automation/scripts/.gitignore                 |   9 ++
 .../scripts/include/configs/xtf-arm64-config  |   2 +
 .../scripts/include/configs/xtf-x86-64-config |   0
 .../include/configs/xtf-x86-64-efi-config     |   0
 automation/scripts/include/xtf-arm64          |  81 ++++++++++
 automation/scripts/include/xtf-runner         | 141 ++++++++++++++++++
 automation/scripts/include/xtf-x86-64         |  31 ++++
 automation/scripts/include/xtf-x86-64-efi     |  52 +++++++
 automation/scripts/qemu-smoke-x86-64-efi.sh   |  43 ------
 automation/scripts/qemu-smoke-x86-64.sh       |  26 ----
 automation/scripts/qemu-xtf-dom0less-arm64.sh |  68 ---------
 automation/scripts/qemu-xtf.sh                |  26 ++++
 13 files changed, 358 insertions(+), 144 deletions(-)
 create mode 100644 automation/scripts/.gitignore
 create mode 100644 automation/scripts/include/configs/xtf-arm64-config
 create mode 100644 automation/scripts/include/configs/xtf-x86-64-config
 create mode 100644 automation/scripts/include/configs/xtf-x86-64-efi-confi=
g
 create mode 100644 automation/scripts/include/xtf-arm64
 create mode 100644 automation/scripts/include/xtf-runner
 create mode 100644 automation/scripts/include/xtf-x86-64
 create mode 100644 automation/scripts/include/xtf-x86-64-efi
 delete mode 100755 automation/scripts/qemu-smoke-x86-64-efi.sh
 delete mode 100755 automation/scripts/qemu-smoke-x86-64.sh
 delete mode 100755 automation/scripts/qemu-xtf-dom0less-arm64.sh
 create mode 100755 automation/scripts/qemu-xtf.sh

--=20
2.34.1




From xen-devel-bounces@lists.xenproject.org Wed Apr 16 05:32:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 05:32:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.954993.1348869 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4vO5-0004PM-Hb; Wed, 16 Apr 2025 05:32:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 954993.1348869; Wed, 16 Apr 2025 05:32: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 1u4vO5-0004PF-Ef; Wed, 16 Apr 2025 05:32:41 +0000
Received: by outflank-mailman (input) for mailman id 954993;
 Wed, 16 Apr 2025 05:32: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=1z0E=XC=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u4vO3-0003si-Tg
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 05:32:39 +0000
Received: from mail-4316.protonmail.ch (mail-4316.protonmail.ch [185.70.43.16])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 355c522c-1a84-11f0-9ffb-bf95429c2676;
 Wed, 16 Apr 2025 07:32:38 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 355c522c-1a84-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1744781557; x=1745040757;
	bh=AsC8FP7AN+giDJPs6/iyPqqQiNrqpgVGQhnG1yoYCi4=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=JEnZLa2M9kZ7soG75K1Uzov1+P2hkyjZ2r8d3F85XNMLwvU+WmGZtPrqQxO61+zO4
	 VVOyamDrDcUmTCb8y7KA9EHJRCkA4nHoqy61a1LSSwr7Hj+IGPjv8u0yRXMcnlodd0
	 kEFH9kVmeyl2EmQCvnZe8yDYs7fGqHXGGwmiDqWYG18R3xFxSEKSitfCRkq4f9JG7b
	 970oH1mHTjcz6H85ddUD+MfJEVXCXP0HnKjELaaucbBxVKWuiL9FeNhZQNbZ2Yvgea
	 ix35DdFOtqJeIbKIcAThmuJv8lV0n67BKmHLKXPsGb4nwogu9/E21MIsv3Y7SSfhQX
	 5Ibqk7U5YAH1A==
Date: Wed, 16 Apr 2025 05:32:31 +0000
To: xen-devel@lists.xenproject.org
From: dmkhn@proton.me
Cc: andrew.cooper3@citrix.com, cardoe@cardoe.com, marmarek@invisiblethingslab.com, sstabellini@kernel.org, dmukhin@ford.com
Subject: [PATCH v1 2/4] CI: switch x86 EFI smoke test runner to qemu-xtf.sh
Message-ID: <20250416053213.921444-3-dmukhin@ford.com>
In-Reply-To: <20250416053213.921444-1-dmukhin@ford.com>
References: <20250416053213.921444-1-dmukhin@ford.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: d9a5239f7accab34cab2f853694de4d8faec8406
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

From: Denis Mukhin <dmukhin@ford.com>

Use qemu-xtf.sh for qemu-smoke-x86-64-gcc-efi job.

Lead time is reduced a bit since not all XTF code base is built, just the
required test.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
 automation/gitlab-ci/test.yaml                |  2 +-
 .../include/configs/xtf-x86-64-efi-config     |  0
 automation/scripts/include/xtf-x86-64-efi     | 52 +++++++++++++++++++
 automation/scripts/qemu-smoke-x86-64-efi.sh   | 43 ---------------
 4 files changed, 53 insertions(+), 44 deletions(-)
 create mode 100644 automation/scripts/include/configs/xtf-x86-64-efi-confi=
g
 create mode 100644 automation/scripts/include/xtf-x86-64-efi
 delete mode 100755 automation/scripts/qemu-smoke-x86-64-efi.sh

diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yam=
l
index 3adc841335..ca1e4eb528 100644
--- a/automation/gitlab-ci/test.yaml
+++ b/automation/gitlab-ci/test.yaml
@@ -687,7 +687,7 @@ qemu-smoke-x86-64-clang-pvh:
 qemu-smoke-x86-64-gcc-efi:
   extends: .qemu-smoke-x86-64
   script:
-    - ./automation/scripts/qemu-smoke-x86-64-efi.sh pv 2>&1 | tee ${LOGFIL=
E}
+    - ./automation/scripts/qemu-xtf.sh x86-64-efi hvm64 example 2>&1 | tee=
 ${LOGFILE}
   needs:
     - debian-12-x86_64-gcc-debug
=20
diff --git a/automation/scripts/include/configs/xtf-x86-64-efi-config b/aut=
omation/scripts/include/configs/xtf-x86-64-efi-config
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/automation/scripts/include/xtf-x86-64-efi b/automation/scripts=
/include/xtf-x86-64-efi
new file mode 100644
index 0000000000..79622d5a6c
--- /dev/null
+++ b/automation/scripts/include/xtf-x86-64-efi
@@ -0,0 +1,52 @@
+#!/bin/bash
+#
+# XTF test utilities (x86_64, EFI).
+#
+
+# Arch-specific environment overrides.
+function xtf_arch_prepare()
+{
+    export FW_PREFIX=3D"${FW_PREFIX:-/usr/share/OVMF/}"
+    export QEMU_PREFIX=3D"${QEMU_PREFIX:-}"
+    export XEN_BINARY=3D"${XEN_BINARY:-${WORKDIR}/xen.efi}"
+    export XEN_CONSOLE=3D"${XEN_CONSOLE:-com1}"
+    export XTF_SRC_BRANCH=3D"${XTF_SRC_BRANCH:-master}"
+    export XTF_SRC_URI=3D"${XTF_SRC_URI:-https://xenbits.xen.org/git-http/=
xtf.git}"
+    export XTF_SRC_VARIANTS=3D"hvm64 pv64"
+}
+
+# Perform arch-specific XTF environment setup.
+function xtf_arch_setup()
+{
+    local esp_dir=3D"${WORKDIR}/boot-esp"
+    local efi_dir=3D"${esp_dir}/EFI/BOOT"
+
+    # Generate EFI boot environment
+    mkdir -p ${efi_dir}
+    cp ${XEN_BINARY} ${efi_dir}/BOOTX64.EFI
+    cp ${XTF_BINARY} ${efi_dir}/kernel
+
+    cat > ${efi_dir}/BOOTX64.cfg <<EOF
+[global]
+default=3Dtest
+
+[test]
+options=3D${XEN_CMDLINE}
+kernel=3Dkernel
+EOF
+
+    # NB: OVMF_CODE.fd is read-only, no need to copy
+    cp ${FW_PREFIX}OVMF_VARS.fd ${WORKDIR}
+
+    export TEST_CMD=3D"${QEMU_PREFIX}qemu-system-x86_64 \
+        -no-reboot \
+        -nographic \
+        -monitor none \
+        -serial stdio \
+        -m 512 \
+        -M q35,kernel-irqchip=3Dsplit \
+        -drive if=3Dpflash,format=3Draw,readonly=3Don,file=3D${FW_PREFIX}O=
VMF_CODE.fd \
+        -drive if=3Dpflash,format=3Draw,file=3D${WORKDIR}/OVMF_VARS.fd \
+        -drive file=3Dfat:rw:${esp_dir},media=3Ddisk,index=3D0,format=3Dra=
w \
+    "
+}
diff --git a/automation/scripts/qemu-smoke-x86-64-efi.sh b/automation/scrip=
ts/qemu-smoke-x86-64-efi.sh
deleted file mode 100755
index 7572722be6..0000000000
--- a/automation/scripts/qemu-smoke-x86-64-efi.sh
+++ /dev/null
@@ -1,43 +0,0 @@
-#!/bin/bash
-
-set -ex -o pipefail
-
-# variant should be either pv or pvh
-variant=3D$1
-
-# Clone and build XTF
-git clone https://xenbits.xen.org/git-http/xtf.git
-cd xtf && make -j$(nproc) && cd -
-
-case $variant in
-    pvh) k=3Dtest-hvm64-example    extra=3D"dom0-iommu=3Dnone dom0=3Dpvh" =
;;
-    *)   k=3Dtest-pv64-example     extra=3D ;;
-esac
-
-mkdir -p boot-esp/EFI/BOOT
-cp binaries/xen.efi boot-esp/EFI/BOOT/BOOTX64.EFI
-cp xtf/tests/example/$k boot-esp/EFI/BOOT/kernel
-
-cat > boot-esp/EFI/BOOT/BOOTX64.cfg <<EOF
-[global]
-default=3Dtest
-
-[test]
-options=3Dloglvl=3Dall console=3Dcom1 noreboot console_timestamps=3Dboot $=
extra
-kernel=3Dkernel
-EOF
-
-cp /usr/share/OVMF/OVMF_CODE.fd OVMF_CODE.fd
-cp /usr/share/OVMF/OVMF_VARS.fd OVMF_VARS.fd
-
-rm -f smoke.serial
-export TEST_CMD=3D"qemu-system-x86_64 -nographic -M q35,kernel-irqchip=3Ds=
plit \
-        -drive if=3Dpflash,format=3Draw,readonly=3Don,file=3DOVMF_CODE.fd =
\
-        -drive if=3Dpflash,format=3Draw,file=3DOVMF_VARS.fd \
-        -drive file=3Dfat:rw:boot-esp,media=3Ddisk,index=3D0,format=3Draw =
\
-        -m 512 -monitor none -serial stdio"
-
-export TEST_LOG=3D"smoke.serial"
-export PASSED=3D"Test result: SUCCESS"
-
-./automation/scripts/console.exp | sed 's/\r\+$//'
--=20
2.34.1




From xen-devel-bounces@lists.xenproject.org Wed Apr 16 05:32:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 05:32:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.954995.1348879 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4vO8-0004ht-Q4; Wed, 16 Apr 2025 05:32:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 954995.1348879; Wed, 16 Apr 2025 05:32:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4vO8-0004hk-Mn; Wed, 16 Apr 2025 05:32:44 +0000
Received: by outflank-mailman (input) for mailman id 954995;
 Wed, 16 Apr 2025 05:32: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=1z0E=XC=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u4vO7-0003si-FI
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 05:32:43 +0000
Received: from mail-10629.protonmail.ch (mail-10629.protonmail.ch
 [79.135.106.29]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3769d7d7-1a84-11f0-9ffb-bf95429c2676;
 Wed, 16 Apr 2025 07:32:41 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3769d7d7-1a84-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1744781560; x=1745040760;
	bh=2pegpKuJrXYQi1LaLPh2IQLU6dFKWwZGALvyqz7kbTQ=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=EkNHT+Xd7YmF2Nj8KaZH5qeVvdAZie/+1Vg1TD2S5FUg7CGnnQDqxxc6tYfv6aZH4
	 16P03pNH+JfEu6TLAUYlSJXC+YM2Q1pM9N8ntIj5PNz3O4KIiwJdt3IwXakA66eWkv
	 QDNObfsrUQmLjwdsxeUxs+uXHOERc64s/CiUGn3y1NqvJ0rl1IsFrohvGg0VnAkRUB
	 7dyEACndYKPFN22peWgosNPj2Mnmtkkmns+UGQjcQVuG8A8M7PcmjM/NvEyQskAw+k
	 MDp2RBEgCXyCMvmsNC+1tEyfp4zomKwRISuqbRyOP3Jif36SRv3Sr8TGsV1eMgpLNw
	 KafAHLOdzBcdw==
Date: Wed, 16 Apr 2025 05:32:37 +0000
To: xen-devel@lists.xenproject.org
From: dmkhn@proton.me
Cc: andrew.cooper3@citrix.com, cardoe@cardoe.com, marmarek@invisiblethingslab.com, sstabellini@kernel.org, dmukhin@ford.com
Subject: [PATCH v1 3/4] CI: switch arm64 XTF test runner to qemu-xtf.sh
Message-ID: <20250416053213.921444-4-dmukhin@ford.com>
In-Reply-To: <20250416053213.921444-1-dmukhin@ford.com>
References: <20250416053213.921444-1-dmukhin@ford.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 5e8b4d47754f1fc6a00317c667c22976030e8f80
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

From: Denis Mukhin <dmukhin@ford.com>

Hook arm64 QEMU configuration to qemu-xtf.sh and use new script in arm64 CI
jobs.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
 automation/gitlab-ci/test.yaml                |  4 +-
 automation/scripts/.gitignore                 |  3 +
 .../scripts/include/configs/xtf-arm64-config  |  2 +
 automation/scripts/include/xtf-arm64          | 81 +++++++++++++++++++
 automation/scripts/qemu-xtf-dom0less-arm64.sh | 68 ----------------
 5 files changed, 88 insertions(+), 70 deletions(-)
 create mode 100644 automation/scripts/include/configs/xtf-arm64-config
 create mode 100644 automation/scripts/include/xtf-arm64
 delete mode 100755 automation/scripts/qemu-xtf-dom0less-arm64.sh

diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yam=
l
index ca1e4eb528..d6e4a0a622 100644
--- a/automation/gitlab-ci/test.yaml
+++ b/automation/gitlab-ci/test.yaml
@@ -571,7 +571,7 @@ qemu-smoke-dom0less-arm64-gcc-debug-earlyprintk:
 qemu-xtf-dom0less-arm64-gcc-hyp-xen-version:
   extends: .qemu-arm64
   script:
-    - ./automation/scripts/qemu-xtf-dom0less-arm64.sh hyp-xen-version 2>&1=
 | tee ${LOGFILE}
+    - ./automation/scripts/qemu-xtf.sh arm64 mmu64le hyp-xen-version 2>&1 =
| tee ${LOGFILE}
   needs:
     - alpine-3.18-gcc-arm64
     - qemu-system-aarch64-6.0.0-arm64-export
@@ -579,7 +579,7 @@ qemu-xtf-dom0less-arm64-gcc-hyp-xen-version:
 qemu-xtf-dom0less-arm64-gcc-debug-hyp-xen-version:
   extends: .qemu-arm64
   script:
-    - ./automation/scripts/qemu-xtf-dom0less-arm64.sh hyp-xen-version 2>&1=
 | tee ${LOGFILE}
+    - ./automation/scripts/qemu-xtf.sh arm64 mmu64le hyp-xen-version 2>&1 =
| tee ${LOGFILE}
   needs:
     - alpine-3.18-gcc-debug-arm64
     - qemu-system-aarch64-6.0.0-arm64-export
diff --git a/automation/scripts/.gitignore b/automation/scripts/.gitignore
index 2f2d6e1ebd..f853da4d89 100644
--- a/automation/scripts/.gitignore
+++ b/automation/scripts/.gitignore
@@ -1,6 +1,9 @@
 !include
=20
 binaries
+imagebuilder
 smoke.serial
 xen
 xtf*/
+
+*.rom
diff --git a/automation/scripts/include/configs/xtf-arm64-config b/automati=
on/scripts/include/configs/xtf-arm64-config
new file mode 100644
index 0000000000..9942740927
--- /dev/null
+++ b/automation/scripts/include/configs/xtf-arm64-config
@@ -0,0 +1,2 @@
+CONFIG_GICV2=3Dy
+CONFIG_SBSA_UART=3Dy
diff --git a/automation/scripts/include/xtf-arm64 b/automation/scripts/incl=
ude/xtf-arm64
new file mode 100644
index 0000000000..68487fe617
--- /dev/null
+++ b/automation/scripts/include/xtf-arm64
@@ -0,0 +1,81 @@
+#!/bin/bash
+#
+# XTF test utilities (arm64).
+#
+
+# Arch-specific environment overrides.
+function xtf_arch_prepare()
+{
+    export FW_PREFIX=3D"${FW_PREFIX:-/usr/lib/u-boot/qemu_arm64/}"
+    export QEMU_PREFIX=3D"${QEMU_PREFIX:-${WORKDIR}/}"
+    export XEN_BINARY=3D"${XEN_BINARY:-${WORKDIR}/xen}"
+    export XEN_CONSOLE=3D"${XEN_CONSOLE:-dtuart}"
+    export XTF_SRC_BRANCH=3D"${XTF_SRC_BRANCH:-xtf-arm}"
+    export XTF_SRC_URI=3D"${XTF_SRC_URI:-https://gitlab.com/xen-project/fu=
sa/xtf.git}"
+    export XTF_SRC_VARIANTS=3D"mmu64le"
+}
+
+# Perform arch-specific XTF environment setup.
+function xtf_arch_setup()
+{
+    # QEMU looks for "efi-virtio.rom" even if it is unneeded
+    curl -fsSLO https://github.com/qemu/qemu/raw/v5.2.0/pc-bios/efi-virtio=
.rom
+
+    # Crude check for local testing
+    if [ ! -d imagebuilder/.git ]; then
+        git clone --depth 1 https://gitlab.com/xen-project/imagebuilder.gi=
t
+    fi
+
+    cat > ${WORKDIR}/config <<EOF
+MEMORY_START=3D"0x40000000"
+MEMORY_END=3D"0xC0000000"
+
+XEN=3D"xen"
+DEVICE_TREE=3D"virt-gicv2.dtb"
+
+XEN_CMD=3D"${XEN_CMDLINE}"
+
+DOMU_KERNEL[0]=3D"xtf-test"
+DOMU_MEM[0]=3D"128"
+
+NUM_DOMUS=3D1
+
+LOAD_CMD=3D"tftpb"
+UBOOT_SOURCE=3D"boot.source"
+UBOOT_SCRIPT=3D"boot.scr"
+EOF
+    cp ${XTF_BINARY} ${WORKDIR}/xtf-test
+
+    # Generate virt-gicv2.dtb
+    ${WORKDIR}/qemu-system-aarch64 \
+        -machine virtualization=3Dtrue \
+        -cpu cortex-a57 \
+        -machine type=3Dvirt \
+        -m 2048 \
+        -smp 2 \
+        -display none \
+        -machine dumpdtb=3D${WORKDIR}/virt-gicv2.dtb
+
+    # Generate U-Boot environment
+    bash -x imagebuilder/scripts/uboot-script-gen \
+        -t tftp \
+        -d ${WORKDIR}/ \
+        -c ${WORKDIR}/config
+
+    export TEST_CMD=3D"${QEMU_PREFIX}qemu-system-aarch64 \
+        -machine virtualization=3Dtrue \
+        -cpu cortex-a57 \
+        -machine type=3Dvirt \
+        -no-reboot \
+        -nographic \
+        -monitor none \
+        -serial stdio \
+        -m 2048 \
+        -smp 2 \
+        -device virtio-net-pci,netdev=3Dn0 \
+        -netdev user,id=3Dn0,tftp=3D${WORKDIR} \
+        -bios ${FW_PREFIX}u-boot.bin \
+    "
+
+    export UBOOT_CMD=3D"virtio scan; dhcp; tftpb 0x40000000 boot.scr; sour=
ce 0x40000000"
+}
diff --git a/automation/scripts/qemu-xtf-dom0less-arm64.sh b/automation/scr=
ipts/qemu-xtf-dom0less-arm64.sh
deleted file mode 100755
index 436f460c3c..0000000000
--- a/automation/scripts/qemu-xtf-dom0less-arm64.sh
+++ /dev/null
@@ -1,68 +0,0 @@
-#!/bin/bash
-
-set -ex -o pipefail
-
-# Name of the XTF test
-xtf_test=3D$1
-
-# Message returned by XTF in case of success
-passed=3D"Test result: SUCCESS"
-
-# XXX QEMU looks for "efi-virtio.rom" even if it is unneeded
-curl -fsSLO https://github.com/qemu/qemu/raw/v5.2.0/pc-bios/efi-virtio.rom
-./binaries/qemu-system-aarch64 \
-   -machine virtualization=3Dtrue \
-   -cpu cortex-a57 -machine type=3Dvirt \
-   -m 2048 -smp 2 -display none \
-   -machine dumpdtb=3Dbinaries/virt-gicv2.dtb
-
-# XTF
-# Build a single XTF test passed as a first parameter to the script.
-# Build XTF with GICv2 support to match Qemu configuration and with SBSA U=
ART
-# support, so that the test will use an emulated UART for printing message=
s.
-# This will allow us to run the test on both debug and non-debug Xen build=
s.
-rm -rf xtf
-git clone https://gitlab.com/xen-project/fusa/xtf.git -b xtf-arm
-make -C xtf TESTS=3Dtests/${xtf_test} CONFIG_SBSA_UART=3Dy CONFIG_GICV2=3D=
y -j$(nproc)
-cp xtf/tests/${xtf_test}/test-mmu64le-${xtf_test} binaries/xtf-test
-
-# ImageBuilder
-echo 'MEMORY_START=3D"0x40000000"
-MEMORY_END=3D"0xC0000000"
-
-XEN=3D"xen"
-DEVICE_TREE=3D"virt-gicv2.dtb"
-
-XEN_CMD=3D"console=3Ddtuart console_timestamps=3Dboot"
-
-DOMU_KERNEL[0]=3D"xtf-test"
-DOMU_MEM[0]=3D"128"
-
-NUM_DOMUS=3D1
-
-LOAD_CMD=3D"tftpb"
-UBOOT_SOURCE=3D"boot.source"
-UBOOT_SCRIPT=3D"boot.scr"' > binaries/config
-
-rm -rf imagebuilder
-git clone --depth 1 https://gitlab.com/xen-project/imagebuilder.git
-bash imagebuilder/scripts/uboot-script-gen -t tftp -d binaries/ -c binarie=
s/config
-
-# Run the test
-rm -f smoke.serial
-export TEST_CMD=3D"./binaries/qemu-system-aarch64 \
-    -machine virtualization=3Dtrue \
-    -cpu cortex-a57 -machine type=3Dvirt \
-    -m 2048 -monitor none -serial stdio \
-    -smp 2 \
-    -no-reboot \
-    -device virtio-net-pci,netdev=3Dn0 \
-    -netdev user,id=3Dn0,tftp=3Dbinaries \
-    -bios /usr/lib/u-boot/qemu_arm64/u-boot.bin"
-
-export UBOOT_CMD=3D"virtio scan; dhcp; tftpb 0x40000000 boot.scr; source 0=
x40000000"
-export BOOT_MSG=3D"Latest ChangeSet: "
-export TEST_LOG=3D"smoke.serial"
-export PASSED=3D"${passed}"
-
-./automation/scripts/console.exp | sed 's/\r\+$//'
--=20
2.34.1




From xen-devel-bounces@lists.xenproject.org Wed Apr 16 05:32:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 05:32:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.954999.1348889 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4vOB-00054N-87; Wed, 16 Apr 2025 05:32:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 954999.1348889; Wed, 16 Apr 2025 05:32:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4vOB-00054E-5A; Wed, 16 Apr 2025 05:32:47 +0000
Received: by outflank-mailman (input) for mailman id 954999;
 Wed, 16 Apr 2025 05:32: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=1z0E=XC=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u4vOA-0003si-LW
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 05:32:46 +0000
Received: from mail-24418.protonmail.ch (mail-24418.protonmail.ch
 [109.224.244.18]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3965d38f-1a84-11f0-9ffb-bf95429c2676;
 Wed, 16 Apr 2025 07:32:45 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3965d38f-1a84-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1744781564; x=1745040764;
	bh=D9Cgha2SO1BNucjhG9GORmWwPJ0BvTYcJSIZrXZF8Ws=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=LyC3YwHxpH0xYzYvbah4TcAHDJ+Eqs7f133qf0qa3ZFyUuuHcRl+PakFFepucYOwP
	 QXURvwsSd6rzMFvzA+/2FITM9xk9s2JoP/Gk4qvhyjuFIY40M89vQAGZ4NCLZ2BhMf
	 SBxdWp2jV9uUB0btrgICFhEav0+Uj0qscPZjGut0z5gRO8VxyIlepHBK9Yyrpf894w
	 cqnhzu0ovbsCnw4oYT+Q/XmOLs4nxE5jebP9GiKVoFMNYYOJIIR0ov3gIExtpVzNsD
	 ltfm3fMer7ZVj+/h/BnTc1QG+uw2B5eetIOfM13Jh/Bv4whVGH/SGL9zvig1w4rVt8
	 TpUE7Tdm8Saeg==
Date: Wed, 16 Apr 2025 05:32:41 +0000
To: xen-devel@lists.xenproject.org
From: dmkhn@proton.me
Cc: andrew.cooper3@citrix.com, cardoe@cardoe.com, marmarek@invisiblethingslab.com, sstabellini@kernel.org, dmukhin@ford.com
Subject: [PATCH v1 4/4] CI: add argo x86 XTF test
Message-ID: <20250416053213.921444-5-dmukhin@ford.com>
In-Reply-To: <20250416053213.921444-1-dmukhin@ford.com>
References: <20250416053213.921444-1-dmukhin@ford.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: f05f6260e2cd634798a6c0dfc99d27a6ec6a89a4
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

From: Denis Mukhin <dmukhin@ford.com>

Introduce new CI job to run x86 XTF argo test under QEMU to smoke test argo
feature functionality in upstream CI.

The new job lead time is ~30s, limit max job duration to 60s.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
 automation/gitlab-ci/test.yaml        | 9 +++++++++
 automation/scripts/include/xtf-runner | 7 +++++++
 2 files changed, 16 insertions(+)

diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yam=
l
index d6e4a0a622..9001efb45c 100644
--- a/automation/gitlab-ci/test.yaml
+++ b/automation/gitlab-ci/test.yaml
@@ -691,6 +691,15 @@ qemu-smoke-x86-64-gcc-efi:
   needs:
     - debian-12-x86_64-gcc-debug
=20
+qemu-xtf-argo-x86_64-gcc-debug:
+  extends: .qemu-smoke-x86-64
+  variables:
+    TEST_TIMEOUT_OVERRIDE: 60
+  script:
+    - ./automation/scripts/qemu-xtf.sh x86-64 pv64 argo 2>&1 | tee ${LOGFI=
LE}
+  needs:
+    - alpine-3.18-gcc-debug
+
 qemu-smoke-riscv64-gcc:
   extends: .qemu-riscv64
   script:
diff --git a/automation/scripts/include/xtf-runner b/automation/scripts/inc=
lude/xtf-runner
index 55b7b34b89..12470b3979 100644
--- a/automation/scripts/include/xtf-runner
+++ b/automation/scripts/include/xtf-runner
@@ -70,6 +70,9 @@ function xtf_build_cmdline()
     local xtf_variant=3D$1
     local xtf_name=3D$2
     declare -a cmdline=3D()
+    declare -A per_test_args=3D(
+        [argo]=3D"argo=3D1 mac-permissive=3D1"
+    )
=20
     cmdline+=3D("loglvl=3Dall noreboot console_timestamps=3Dboot")
     cmdline+=3D("console=3D${XEN_CONSOLE}")
@@ -79,6 +82,10 @@ function xtf_build_cmdline()
         cmdline+=3D("dom0-iommu=3Dnone dom0=3Dpvh")
     fi
=20
+    if [[ -v per_test_args[${xtf_name}] ]]; then
+        cmdline+=3D("${per_test_args[${xtf_name}]}")
+    fi
+
     export XEN_CMDLINE=3D"${cmdline[@]}"
 }
=20
--=20
2.34.1




From xen-devel-bounces@lists.xenproject.org Wed Apr 16 06:08:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 06:08:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.955057.1348899 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4vwF-0002kL-Oo; Wed, 16 Apr 2025 06:07:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 955057.1348899; Wed, 16 Apr 2025 06: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 1u4vwF-0002kE-M5; Wed, 16 Apr 2025 06:07:59 +0000
Received: by outflank-mailman (input) for mailman id 955057;
 Wed, 16 Apr 2025 06:07: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=2j5z=XC=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1u4vwE-0002k5-N0
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 06:07:59 +0000
Received: from NAM04-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam04on2060d.outbound.protection.outlook.com
 [2a01:111:f403:2408::60d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 21f8ed1d-1a89-11f0-9eaf-5ba50f476ded;
 Wed, 16 Apr 2025 08:07:54 +0200 (CEST)
Received: from BL1PR12MB5849.namprd12.prod.outlook.com (2603:10b6:208:384::18)
 by SJ2PR12MB8830.namprd12.prod.outlook.com (2603:10b6:a03:4d0::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.33; Wed, 16 Apr
 2025 06:07:49 +0000
Received: from BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::b77f:9333:3a5a:d285]) by BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::b77f:9333:3a5a:d285%4]) with mapi id 15.20.8655.022; Wed, 16 Apr 2025
 06:07: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: 21f8ed1d-1a89-11f0-9eaf-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=BrVGKN6DY5xJIK6d5zObO4qDP2HH3nF2zKqsIqIfnB+aUqvfB44TfZBSZk/q4NoN/mKsT4ti2Sphh36s+31LpTphM31DjGPo0miHThSYTISZvEmjhY+vnWMSfAVvVkivi0dA+QIFaYgXE8aOnqacIZG2oxsACxYaPdmaLv19Fels4sVm5mJCcsi8twp6b6Xdu66iA/+q/ohRy5P9kIJ6eVEWiaaMUG6o4mewj2yovzCNBKYigswbLJ+biPofJiObJta2RUsa4/y5O0NQruCON2p1rZ7W5JLWCatbYFgvW8foK7CtU7S8Zj/3dr8stWTuX8ZsQ6oEiYGl6EZGUVebgw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=hUteiydPXc0bjwkCVrvAB/hIWGFMfTaIboo8J4unVQY=;
 b=dHJhA7ydb5Pdv68YC6YVyQda31YKX7HJtyzusTrdewSWdLsm2NZhEv8s8/7kWCo9KjlzWjbqz4SM2vX+5YZb/Y7cEe4XI9RWSO1WdZN5TfaObBVhvPEC1tgLPDajMN1+nnEdkZC4rlePKl9kymp84CAS4ytfw8yXl8LE+pZmwCQSwUgMzO9MR0y4Bz1E2ZNrCjqP/6WVucxIxsSrpQVAEDPJHxxP/t5+1oEB/9cebfWPqk0RzfhboTJt6s2y17lY74IPIipZFemtDUouXnNaAgHAeV4OxruVQxp3HqSGTIjbK5r6KHhJngnnBBtqkfawZy9rbq1DbzW7//c5+oUzhQ==
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=hUteiydPXc0bjwkCVrvAB/hIWGFMfTaIboo8J4unVQY=;
 b=vOx4iA9PvgB7g8lUxq5TLonYhM3YdJG68L7VrAI0oweETDtH8c42nvG6DSt9NIUUTjjc99Jmv4mRaHNNeyW6rUnFqqUclj7BWL9xG9xBYvQ03VTXUrfZkpT/teHSRm4IAE/1/1F59ELsEh4nBO5N0NQsTwCwDeXPeK4pUf95LxM=
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>, "Huang,
 Ray" <Ray.Huang@amd.com>, Andrew Cooper <andrew.cooper3@citrix.com>, Anthony
 PERARD <anthony.perard@vates.tech>, "Orzel, Michal" <Michal.Orzel@amd.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 v2 4/8] vpci: Hide capability when it fails to initialize
Thread-Topic: [PATCH v2 4/8] vpci: Hide capability when it fails to initialize
Thread-Index: AQHbqRsfg3RwMiNXxEOdiN0NH9ACsrOklU6AgAHIwoA=
Date: Wed, 16 Apr 2025 06:07:49 +0000
Message-ID:
 <BL1PR12MB5849CBA474894656DA64CE85E7BD2@BL1PR12MB5849.namprd12.prod.outlook.com>
References: <20250409064528.405573-1-Jiqian.Chen@amd.com>
 <20250409064528.405573-5-Jiqian.Chen@amd.com> <Z_45NzpRLkfLveug@macbook.lan>
In-Reply-To: <Z_45NzpRLkfLveug@macbook.lan>
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.8655.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_|SJ2PR12MB8830:EE_
x-ms-office365-filtering-correlation-id: d9101a7d-d5c1-4e80-7f67-08dd7cad03c0
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?Vm1xZnNnYXFwMmlJSnQ5REQ5Q3NhSVNZZ1hWV05CRnV2MnpoSXhMOUVvYS9W?=
 =?utf-8?B?SnBhamxja3dxdXA4S1pRY3NGRTg4ekFHcUhjU3hucy9mQ3RnT3Y3alJEWkhC?=
 =?utf-8?B?QmUyM2V1dDBSTjc1ektvd01qTEFDRDBMQWF2WWo1NU4yUHQybmE4M0pBV1VP?=
 =?utf-8?B?dEdOSE9HSjZSdjdtcFpxVDQ1bnl0VloyNFdCVzZ3S1RTd2Y3ajlNVXB3cUpz?=
 =?utf-8?B?M2UxM3JaYXBkeHFNQllRNm9JbzRpUUtyMncyMnpHRWtHOWJsSlZTTE9aWUxx?=
 =?utf-8?B?bzNJbHlzL2c3Wk1NSWl1NEY0a0tiRUtsSFhFUnQwcnZsVWxwaCtmVVNVUjZz?=
 =?utf-8?B?Y1dFNXl1NFhxbUNKemszdXlLSE4xNmJZQ3lIYStpY0hDMDZ1UWs3TUY2eGVB?=
 =?utf-8?B?am8rcmdBR01PVlBwM1BjK3hPU091Nk5UK2hMOXc1Ny9SbUVvT21KaFY3OHBO?=
 =?utf-8?B?TjlrV2FldGNXb1VSSE5JSG8wa2ZWc1BON0FrOEp4UHRyZG1ub0xsRDF5aDM4?=
 =?utf-8?B?K1NPOVFkdkpFZ2VsQnljSk12aFo2QWwxeFlBWHdBTTVRRkUyaHJVVG5lQ2pH?=
 =?utf-8?B?TjA2czlFVTlDRVNvY0dsemp0ZDRGV1lRNnJzWTB1NFRiVlQ2L0VJUkNvcnFq?=
 =?utf-8?B?c0R6ci90eU1DVzYwckFvNHcvMDFiTVROSS95Z3B4OHFPQUo5dVVieXZCWDJT?=
 =?utf-8?B?cXQ1cHFyaGEyRzFlQVVpNXBTS3RNK3JZNm5rUUlDajVQaWxENUgxOXV3TGIy?=
 =?utf-8?B?YnVDb1hwOXMwcVg5cGVFWElwS2dKVnRYazhDQTBBV0Q0NFB6THd1M0FtZkhS?=
 =?utf-8?B?a1VKVUpidXgzZitZd3BaZ3I2YU02N0g4dmpaMlVkSFpubHE3SmNJejJ5NmpG?=
 =?utf-8?B?Z0cwZWp0TGZGL3BqaEdrY1ZzeXYzNnhmWHhYQ0xRZTVSYTBxcHFvY3U5d0Yz?=
 =?utf-8?B?b1B3WFVVcUI2QkJpbXJKZVBPdldaeVlscDNEeXdwNEtLenJsT2pMeFFwQktM?=
 =?utf-8?B?blJpWFJncTZ3TGgrTWxPSEZySk1DS1ZqZ1NEUjVWVUZ4QnlSYTYwVEFuWW9h?=
 =?utf-8?B?RE1NdURlSlhDbXp0WUVSVTd1T0FpZG5UMzByTWtadkNDUUdIRUMyKzZkdXFw?=
 =?utf-8?B?M1RaZGxaSmlud3U1R0Q2emZhSUxGMVB3amtsMU9Cc2NMaDJjUWM2bDdsQXR2?=
 =?utf-8?B?eENMYzZYYitaa2IydTdESWE3TytJRER5N1V6bnY3d2x5cWdvRks5QmlERjFP?=
 =?utf-8?B?ZFJnU3NUL1FjdXNoU0FLYWY3NU16NWNvdlBEckl2RUdCNmhXcnhpNnVXL1Vq?=
 =?utf-8?B?RzBmK0FmTlVuTWVGVFExWWVuOGEvb2czdlJTa0tqV0N0OWhkc2Zia0ZBbGpt?=
 =?utf-8?B?N2VsYjVFcHRWU21xdTFtajc4RVhENzZLR3F1ckYvVHZmZHM4WmU1SGFuSVlD?=
 =?utf-8?B?emdjOUlVZjhHV0phQkgxMHNic2hxTXl2T0hUd1VNUmdEam9HR0JjNUhiMGgy?=
 =?utf-8?B?V1FQZDRyN3FKK3J4eEdzVzMvMUhreHUya3BhTXRZbTlFMWRJSTE4OExUMWRs?=
 =?utf-8?B?NGVIdzQ3SUh1L3haM2ZDc2ZMM2VIWjFXQXNDcGJwc1h0NDdSdEFtM3JOaVZ3?=
 =?utf-8?B?QU1aU0ExWTRnaW9Eay9NVERxUTZrL3dySVFVdk9HSXllNXlHL2hBaElMdytD?=
 =?utf-8?B?bGpkQjRQN0x0eU53STBHQW9nSzNQYVpTOVBNbjM5UjVwb0Y1OXp2UFVlRU1Q?=
 =?utf-8?B?Nkc3VWh5cHZaN2xQczZKTnNWZFJVaVFxM3JDeWZ3a3A3QXBzV2JYdVNKUUMv?=
 =?utf-8?B?bU1DeW9nN29UUGhxVENQM1oyT2MzS2xwZDFTVkV3cXg0ZGxYZ2lpUUNkTlEy?=
 =?utf-8?B?TEZuRkMyMDVYQnJoV0czNTJGR05KUGYxc0EwMlg4K1RJNWwrM08rcXFza1RW?=
 =?utf-8?B?VmdxS3NINlZBVzdya21rUWo2MjZEQkk2NVU3ZldlMFhPeWd4Q0g5OTlTRnNo?=
 =?utf-8?Q?TQyqSujF0R2JKcgkdowaMOFG+AbAGU=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?S0xxdnI3MTd4ZThkbjZnSlY0SGM4ZmZHWWZGTE53b2tFTnJBRWVOQzJpSEpN?=
 =?utf-8?B?K2JPQ1J6cnJ0bXhvSTU4UHBZUEtEUDk4WHdMSG1sMjd5TXVZNUM4QjFPS1Zq?=
 =?utf-8?B?Mlg2NFRHaU5OeEpyeFIxcTcrOUtDSzN5RHkwZStUMzZBL0lRT2xGdlg5a2Rn?=
 =?utf-8?B?NDJTSm1JSmUwSHdWU0tONFNjKytZY3Z5QVpMWm5CbHZvWGM3ZmJGUGg5WHpp?=
 =?utf-8?B?NUdHWmRvNEdSWVl2ZW1BUXI2MTdWeGdreEtTWE1nTWtEaUlTL0FaVVdiODUw?=
 =?utf-8?B?VjNBZmo3aWhyK1pYcnhQb25aOUcvRjlzcC9UdkhTVE1TbmNwRDZBMThqNTha?=
 =?utf-8?B?VjZQMzhlZ25oVlFMcDBCOVN1aHB2Q3hoTVR3YVpwUTRnMTBmN2hZdXJiOTFL?=
 =?utf-8?B?UEtzTW5MbEVSTjZkVmFJcHNFS3lzQkgrTzdLMVUvZTdyWllyOTduTGxlSEh3?=
 =?utf-8?B?MGx6NThiaUZoVVNtVkQ2OTFQM0NLN3RDU3hzWEVKcGp5Qjk4VS9yU2xnNDYz?=
 =?utf-8?B?RUxNMG03K2tSNFNvd3RxWUE5aHlxQlJLWEpCazBHbjZtNW95T1R1VEF1dWI0?=
 =?utf-8?B?dDdjSVJKNEZYQTFlWHM4bllMN05SdGlFL1NVNE1IV0ZkMjY4TXJYNGNpOGNo?=
 =?utf-8?B?dVEyalRiR0N4bjZGYjB6NXA5MWErSitLYUhCbGFXUkllSk9WRi85eFB0RjdQ?=
 =?utf-8?B?ZEh1ZHFuTDhmSkFBSGRQcmpHb0g5dE5NelcyZEFNZzJJVmFUY0l2d29YREhK?=
 =?utf-8?B?dEQvd2FjcGJOYWRrU2pMSGthMHlEVUtDNlBNMGlmaGNoWE1ZM0NGb1JZdFBM?=
 =?utf-8?B?a3ducWU3bjY1QUN3STZuaHpmQWxEdzh0cFBsTk8ydldhNWxYVXI5VE53UmNh?=
 =?utf-8?B?cHgxNlZERnNNWGY1VERMMzdyMEpJWXM4SWRHZmxwazVlS2I0NndELzdFOUc0?=
 =?utf-8?B?V0ZkSjliN3BhZ2dHank4WEM0d3ZaRW82bmRYUmRZM3VvMTNkMDhzVzNxeG0w?=
 =?utf-8?B?VThNMEJCNHYwVERqUWRaME03R0Z1aEZrRzlSZ1ZHa1R0NFVVLzRUcTd2QmZx?=
 =?utf-8?B?Vks5clA4elJWcWlZcmZEbGxyeUxDSXVzY1VGWHhmK0I0SHdOZUlvaXFPc2Rw?=
 =?utf-8?B?TWVEdkVLdlBsWXZWZUJKNHdQbkl1TTg2QmNSRVRWc0Q1TUpnWEpITmdGRnUr?=
 =?utf-8?B?TEpwZkgwc1NkblVqblQyQmw4WW9pS0hXbkplZlg2eFhOaGFlVHBGSWtROW9V?=
 =?utf-8?B?MlBZRkg4cjFFdlNJU1I0YUEydVo1Mi9HUDlQR0daSWdEdHQ3QllOVGM3SXBJ?=
 =?utf-8?B?RlNtQnhTSGY3QUdsTEtWb2RzT3R5c2hjWWpxQXQyUGtFd3dTeUxlY1BjNFVN?=
 =?utf-8?B?ODFycWp2WE5wYTJ3Y0RUL1BESTcyR1N5TGtYWXdCNFQrSUMwQkxRbDV6bE9a?=
 =?utf-8?B?bWYrVEVrUGNVZ2RoT1o2N2VuRkxkNGIxMkV2TGxHSEIwSmN5WkExMDFwcEVj?=
 =?utf-8?B?aEJLM1Rua3lpaW1QNmpLUDRLTzZiNE91WnV3QkpySzFXOUVmdEtzV1JxWG1r?=
 =?utf-8?B?djdoOEo1WWNyY1NKdzhCMllobFZDc29pNjUrZVB0dHB6UEpvaW1UK2NVUTQ5?=
 =?utf-8?B?cFRMR05GOEtiUG10dDVLaDI4Q3V4c0RKbUo0UHdPOHVFMWg5VUdlVVF4cFN2?=
 =?utf-8?B?cC9VaFJTYXQ1Vk1KbHpSY3BLU25qdE9xeUhOTkJaVm1YbmNJZ1NyTTA1MFg0?=
 =?utf-8?B?ejBBSi9ReHNxUjZ0RDA0NmlNMCtXdXNzUDBscVdzUGVhUFZzZE95MjRDeTN2?=
 =?utf-8?B?cWt6N2t4UTNlMWszck1xZ1E5YjNOZ0w3UnpRMTN3Qi80MHpRTUk0aGxqcHgv?=
 =?utf-8?B?RXg1cVJXQVF1cHRvN2hQWnZRbkJIOU9aMUt6TkcrOWovcmMyYUJ6NTdkNVNU?=
 =?utf-8?B?Q0JlYkRNSWt5VHFDcGZ0TlVFWVUzUkpPUG1zaW1tZGNSYU9LRWQ3RVl6LzBl?=
 =?utf-8?B?UXdNUFdCNGtEZWw2cCt5QUtUU0YzeXdQazRTeDdLQmNkSHVvaDBTWHRHRkQy?=
 =?utf-8?B?Z05saUVrc0lia0ZQc1ZDZ2ZqaXRtVjhDMVhxcnlML2gzMEQ2eUU4ckVDOTNI?=
 =?utf-8?Q?YT3A=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <D1FF7E45BC887C4091126D100EB5F2B3@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: d9101a7d-d5c1-4e80-7f67-08dd7cad03c0
X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Apr 2025 06:07:49.0533
 (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: 0hAnIHZd46xKsq5z46wJvffBgXi/L9t8wdbg9LB35/C14mrduJwcyJ1JuyMF9OlY2SvB+gDAPpgZtlBLqefsSA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR12MB8830

T24gMjAyNS80LzE1IDE4OjQ3LCBSb2dlciBQYXUgTW9ubsOpIHdyb3RlOg0KPiBPbiBXZWQsIEFw
ciAwOSwgMjAyNSBhdCAwMjo0NToyNFBNICswODAwLCBKaXFpYW4gQ2hlbiB3cm90ZToNCj4+IFdo
ZW4gdnBjaSBmYWlscyB0byBpbml0aWFsaXplIGEgY2FwYWJpbGl0eSBvZiBhIGRldmljZSwgaXQg
anVzdA0KPj4gcmV0dXJuIGVycm9yIGluc3RlYWQgb2YgY2F0Y2hpbmcgYW5kIHByb2Nlc3Npbmcg
ZXhjZXB0aW9uLiBUaGF0DQo+PiBtYWtlcyB0aGUgZW50aXJlIGRldmljZSB1bnVzYWJsZS4NCj4+
DQo+PiBTbywgcmVmYWN0b3IgUkVHSVNURVJfVlBDSV9JTklUIHRvIGNvbnRhaW4gbW9yZSBjYXBh
YmlsaXR5IHNwZWNpZmljDQo+PiBpbmZvcm1hdGlvbiwgYW5kIHVzZSBuZXcgZnVuY3Rpb25zIHRv
IGhpZGUgY2FwYWJpbGl0eSB3aGVuDQo+PiBpbml0aWFsaXphdGlvbiBmYWlscyBpbiB2cGNpX2Fz
c2lnbl9kZXZpY2UoKS4NCj4+DQo+PiBUaG9zZSBuZXcgZnVuY3Rpb25zIHJlbW92ZSB0aGUgZmFp
bGVkIGxlZ2FjeS9leHRlbmRlZCBjYXBhYmlsaXR5DQo+PiBmcm9tIHRoZSBlbXVsYXRlZCBsZWdh
Y3kvZXh0ZW5kZWQgY2FwYWJpbGl0eSBsaXN0Lg0KPiANCj4gSSB0aGluayB0aGlzIG5lZWRzIHRv
IGJlIGF0IGxlYXN0IDIgZGlmZmVyZW50IGNoYW5nZXMuDQo+IA0KPiBGaXJzdCBjaGFuZ2UgYWRk
cyB0aGUgdXNhZ2Ugb2YgUkVHSVNURVJfVlBDSV97TEVHQUNZLEVYVEVOREVEfV9DQVAoKQ0KPiBo
ZWxwZXJzLCB3aGlsZSBzZWNvbmQgY2hhbmdlIGludHJvZHVjZXMgdGhlIG1hc2tpbmcgb2YgY2Fw
YWJpbGl0aWVzIG9uDQo+IGluaXRpYWxpemF0aW9uIGZhaWx1cmUuDQo+IA0KPiBPdGhlcndpc2Ug
cmV2aWV3IGlzIGEgYml0IGNvbXBsaWNhdGVkLg0KPiANCj4+IFdoYXQncyBtb3JlLCBjaGFuZ2Ug
dGhlIGRlZmluaXRpb24gb2YgaW5pdF9oZWFkZXIoKSBzaW5jZSBpdCBpcw0KPj4gbm90IGEgY2Fw
YWJpbGl0eSBhbmQgaXQgaXMgbmVlZGVkIGZvciBhbGwgZGV2aWNlcycgUENJIGNvbmZpZyBzcGFj
ZS4NCj4+DQo+PiBOb3RlOiBjYWxsIHZwY2lfbWFrZV9tc2l4X2hvbGUoKSBpbiB0aGUgZW5kIG9m
IGluaXRfbXNpeCgpIHNpbmNlIHRoZQ0KPj4gY2hhbmdlIG9mIHNlcXVlbmNlIG9mIGluaXRfaGVh
ZGVyKCkgYW5kIGluaXRfbXNpeCgpLg0KPj4NCj4+IFNpZ25lZC1vZmYtYnk6IEppcWlhbiBDaGVu
IDxKaXFpYW4uQ2hlbkBhbWQuY29tPg0KPj4gLS0tDQo+PiBjYzogIlJvZ2VyIFBhdSBNb25uw6ki
IDxyb2dlci5wYXVAY2l0cml4LmNvbT4NCj4+IGNjOiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29v
cGVyM0BjaXRyaXguY29tPg0KPj4gY2M6IEFudGhvbnkgUEVSQVJEIDxhbnRob255LnBlcmFyZEB2
YXRlcy50ZWNoPg0KPj4gY2M6IE1pY2hhbCBPcnplbCA8bWljaGFsLm9yemVsQGFtZC5jb20+DQo+
PiBjYzogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPg0KPj4gY2M6IEp1bGllbiBHcmFs
bCA8anVsaWVuQHhlbi5vcmc+DQo+PiBjYzogU3RlZmFubyBTdGFiZWxsaW5pIDxzc3RhYmVsbGlu
aUBrZXJuZWwub3JnPg0KPj4gLS0tDQo+PiB2MS0+djIgY2hhbmdlczoNCj4+ICogUmVtb3ZlZCB0
aGUgInByaW9yaXRpZXMiIG9mIGluaXRpYWxpemluZyBjYXBhYmlsaXRpZXMgc2luY2UgaXQgaXNu
J3QgdXNlZCBhbnltb3JlLg0KPj4gKiBBZGRlZCBuZXcgZnVuY3Rpb24gdnBjaV9jYXBhYmlsaXR5
X21hc2soKSBhbmQgdnBjaV9leHRfY2FwYWJpbGl0eV9tYXNrKCkgdG8gcmVtb3ZlIGZhaWxlZCBj
YXBhYmlsaXR5IGZyb20gbGlzdC4NCj4+ICogQ2FsbGVkIHZwY2lfbWFrZV9tc2l4X2hvbGUoKSBp
biB0aGUgZW5kIG9mIGluaXRfbXNpeCgpLg0KPj4NCj4+IEJlc3QgcmVnYXJkcywNCj4+IEppcWlh
biBDaGVuLg0KPj4gLS0tDQo+PiAgeGVuL2RyaXZlcnMvdnBjaS9oZWFkZXIuYyAgfCAgIDMgKy0N
Cj4+ICB4ZW4vZHJpdmVycy92cGNpL21zaS5jICAgICB8ICAgMiArLQ0KPj4gIHhlbi9kcml2ZXJz
L3ZwY2kvbXNpeC5jICAgIHwgICA4ICstDQo+PiAgeGVuL2RyaXZlcnMvdnBjaS9yZWJhci5jICAg
fCAgIDIgKy0NCj4+ICB4ZW4vZHJpdmVycy92cGNpL3ZwY2kuYyAgICB8IDE3NSArKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrLS0tLS0tDQo+PiAgeGVuL2luY2x1ZGUveGVuL3BjaV9yZWdz
LmggfCAgIDEgKw0KPj4gIHhlbi9pbmNsdWRlL3hlbi92cGNpLmggICAgIHwgIDI2ICsrKystLQ0K
Pj4gIHhlbi9pbmNsdWRlL3hlbi94ZW4ubGRzLmggIHwgICAyICstDQo+PiAgOCBmaWxlcyBjaGFu
Z2VkLCAxNzkgaW5zZXJ0aW9ucygrKSwgNDAgZGVsZXRpb25zKC0pDQo+Pg0KPj4gZGlmZiAtLWdp
dCBhL3hlbi9kcml2ZXJzL3ZwY2kvaGVhZGVyLmMgYi94ZW4vZHJpdmVycy92cGNpL2hlYWRlci5j
DQo+PiBpbmRleCA2ODMzZDQ1NjU2NmIuLjUxYTY3ZDc2YWQ4YSAxMDA2NDQNCj4+IC0tLSBhL3hl
bi9kcml2ZXJzL3ZwY2kvaGVhZGVyLmMNCj4+ICsrKyBiL3hlbi9kcml2ZXJzL3ZwY2kvaGVhZGVy
LmMNCj4+IEBAIC04NDgsNyArODQ4LDcgQEAgc3RhdGljIGludCB2cGNpX2luaXRfZXh0X2NhcGFi
aWxpdHlfbGlzdChzdHJ1Y3QgcGNpX2RldiAqcGRldikNCj4+ICAgICAgcmV0dXJuIDA7DQo+PiAg
fQ0KPj4gIA0KPj4gLXN0YXRpYyBpbnQgY2ZfY2hlY2sgaW5pdF9oZWFkZXIoc3RydWN0IHBjaV9k
ZXYgKnBkZXYpDQo+PiAraW50IHZwY2lfaW5pdF9oZWFkZXIoc3RydWN0IHBjaV9kZXYgKnBkZXYp
DQo+PiAgew0KPj4gICAgICB1aW50MTZfdCBjbWQ7DQo+PiAgICAgIHVpbnQ2NF90IGFkZHIsIHNp
emU7DQo+PiBAQCAtMTA0NCw3ICsxMDQ0LDYgQEAgc3RhdGljIGludCBjZl9jaGVjayBpbml0X2hl
YWRlcihzdHJ1Y3QgcGNpX2RldiAqcGRldikNCj4+ICAgICAgcGNpX2NvbmZfd3JpdGUxNihwZGV2
LT5zYmRmLCBQQ0lfQ09NTUFORCwgY21kKTsNCj4+ICAgICAgcmV0dXJuIHJjOw0KPj4gIH0NCj4+
IC1SRUdJU1RFUl9WUENJX0lOSVQoaW5pdF9oZWFkZXIsIFZQQ0lfUFJJT1JJVFlfTUlERExFKTsN
Cj4+ICANCj4+ICAvKg0KPj4gICAqIExvY2FsIHZhcmlhYmxlczoNCj4+IGRpZmYgLS1naXQgYS94
ZW4vZHJpdmVycy92cGNpL21zaS5jIGIveGVuL2RyaXZlcnMvdnBjaS9tc2kuYw0KPj4gaW5kZXgg
NjZlNWE4YTExNmJlLi5jYTg5YWU5YjljMjIgMTAwNjQ0DQo+PiAtLS0gYS94ZW4vZHJpdmVycy92
cGNpL21zaS5jDQo+PiArKysgYi94ZW4vZHJpdmVycy92cGNpL21zaS5jDQo+PiBAQCAtMjcwLDcg
KzI3MCw3IEBAIHN0YXRpYyBpbnQgY2ZfY2hlY2sgaW5pdF9tc2koc3RydWN0IHBjaV9kZXYgKnBk
ZXYpDQo+PiAgDQo+PiAgICAgIHJldHVybiAwOw0KPj4gIH0NCj4+IC1SRUdJU1RFUl9WUENJX0lO
SVQoaW5pdF9tc2ksIFZQQ0lfUFJJT1JJVFlfTE9XKTsNCj4+ICtSRUdJU1RFUl9WUENJX0xFR0FD
WV9DQVAoUENJX0NBUF9JRF9NU0ksIGluaXRfbXNpKTsNCj4+ICANCj4+ICB2b2lkIHZwY2lfZHVt
cF9tc2kodm9pZCkNCj4+ICB7DQo+PiBkaWZmIC0tZ2l0IGEveGVuL2RyaXZlcnMvdnBjaS9tc2l4
LmMgYi94ZW4vZHJpdmVycy92cGNpL21zaXguYw0KPj4gaW5kZXggNmJkOGM1NWJiNDhlLi42NTM3
Mzc0Yzc5YTAgMTAwNjQ0DQo+PiAtLS0gYS94ZW4vZHJpdmVycy92cGNpL21zaXguYw0KPj4gKysr
IGIveGVuL2RyaXZlcnMvdnBjaS9tc2l4LmMNCj4+IEBAIC03NTEsOSArNzUxLDEzIEBAIHN0YXRp
YyBpbnQgY2ZfY2hlY2sgaW5pdF9tc2l4KHN0cnVjdCBwY2lfZGV2ICpwZGV2KQ0KPj4gICAgICBw
ZGV2LT52cGNpLT5tc2l4ID0gbXNpeDsNCj4+ICAgICAgbGlzdF9hZGQoJm1zaXgtPm5leHQsICZk
LT5hcmNoLmh2bS5tc2l4X3RhYmxlcyk7DQo+PiAgDQo+PiAtICAgIHJldHVybiAwOw0KPj4gKyAg
ICBzcGluX2xvY2soJnBkZXYtPnZwY2ktPmxvY2spOw0KPj4gKyAgICByYyA9IHZwY2lfbWFrZV9t
c2l4X2hvbGUocGRldik7DQo+PiArICAgIHNwaW5fdW5sb2NrKCZwZGV2LT52cGNpLT5sb2NrKTsN
Cj4+ICsNCj4+ICsgICAgcmV0dXJuIHJjDQo+PiAgfQ0KPj4gLVJFR0lTVEVSX1ZQQ0lfSU5JVChp
bml0X21zaXgsIFZQQ0lfUFJJT1JJVFlfSElHSCk7DQo+PiArUkVHSVNURVJfVlBDSV9MRUdBQ1lf
Q0FQKFBDSV9DQVBfSURfTVNJWCwgaW5pdF9tc2l4KTsNCj4+ICANCj4+ICAvKg0KPj4gICAqIExv
Y2FsIHZhcmlhYmxlczoNCj4+IGRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy92cGNpL3JlYmFyLmMg
Yi94ZW4vZHJpdmVycy92cGNpL3JlYmFyLmMNCj4+IGluZGV4IDc5MzkzNzQ0OWFmNy4uNzk4NThl
NWRjOTJmIDEwMDY0NA0KPj4gLS0tIGEveGVuL2RyaXZlcnMvdnBjaS9yZWJhci5jDQo+PiArKysg
Yi94ZW4vZHJpdmVycy92cGNpL3JlYmFyLmMNCj4+IEBAIC0xMTgsNyArMTE4LDcgQEAgc3RhdGlj
IGludCBjZl9jaGVjayBpbml0X3JlYmFyKHN0cnVjdCBwY2lfZGV2ICpwZGV2KQ0KPj4gIA0KPj4g
ICAgICByZXR1cm4gMDsNCj4+ICB9DQo+PiAtUkVHSVNURVJfVlBDSV9JTklUKGluaXRfcmViYXIs
IFZQQ0lfUFJJT1JJVFlfTE9XKTsNCj4+ICtSRUdJU1RFUl9WUENJX0VYVEVORF9DQVAoUENJX0VY
VF9DQVBfSURfUkVCQVIsIGluaXRfcmViYXIpOw0KPj4gIA0KPj4gIC8qDQo+PiAgICogTG9jYWwg
dmFyaWFibGVzOg0KPj4gZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3ZwY2kvdnBjaS5jIGIveGVu
L2RyaXZlcnMvdnBjaS92cGNpLmMNCj4+IGluZGV4IDFlNmFhNWQ3OTliOS4uZjFmMTI1YmZkYWIx
IDEwMDY0NA0KPj4gLS0tIGEveGVuL2RyaXZlcnMvdnBjaS92cGNpLmMNCj4+ICsrKyBiL3hlbi9k
cml2ZXJzL3ZwY2kvdnBjaS5jDQo+PiBAQCAtMzUsOSArMzUsMjUgQEAgc3RydWN0IHZwY2lfcmVn
aXN0ZXIgew0KPj4gICAgICB1aW50MzJfdCByc3Zkel9tYXNrOw0KPj4gIH07DQo+PiAgDQo+PiAr
c3RhdGljIGludCB2cGNpX3JlZ2lzdGVyX2NtcChjb25zdCBzdHJ1Y3QgdnBjaV9yZWdpc3RlciAq
cjEsDQo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgdnBjaV9y
ZWdpc3RlciAqcjIpDQo+PiArew0KPj4gKyAgICAvKiBSZXR1cm4gMCBpZiByZWdpc3RlcnMgb3Zl
cmxhcC4gKi8NCj4+ICsgICAgaWYgKCByMS0+b2Zmc2V0IDwgcjItPm9mZnNldCArIHIyLT5zaXpl
ICYmDQo+PiArICAgICAgICAgcjItPm9mZnNldCA8IHIxLT5vZmZzZXQgKyByMS0+c2l6ZSApDQo+
PiArICAgICAgICByZXR1cm4gMDsNCj4+ICsgICAgaWYgKCByMS0+b2Zmc2V0IDwgcjItPm9mZnNl
dCApDQo+PiArICAgICAgICByZXR1cm4gLTE7DQo+PiArICAgIGlmICggcjEtPm9mZnNldCA+IHIy
LT5vZmZzZXQgKQ0KPj4gKyAgICAgICAgcmV0dXJuIDE7DQo+PiArDQo+PiArICAgIEFTU0VSVF9V
TlJFQUNIQUJMRSgpOw0KPj4gKyAgICByZXR1cm4gMDsNCj4+ICt9DQo+PiArDQo+PiAgI2lmZGVm
IF9fWEVOX18NCj4+IC1leHRlcm4gdnBjaV9yZWdpc3Rlcl9pbml0X3QgKmNvbnN0IF9fc3RhcnRf
dnBjaV9hcnJheVtdOw0KPj4gLWV4dGVybiB2cGNpX3JlZ2lzdGVyX2luaXRfdCAqY29uc3QgX19l
bmRfdnBjaV9hcnJheVtdOw0KPj4gK2V4dGVybiB2cGNpX2NhcGFiaWxpdHlfdCAqY29uc3QgX19z
dGFydF92cGNpX2FycmF5W107DQo+PiArZXh0ZXJuIHZwY2lfY2FwYWJpbGl0eV90ICpjb25zdCBf
X2VuZF92cGNpX2FycmF5W107DQo+PiAgI2RlZmluZSBOVU1fVlBDSV9JTklUIChfX2VuZF92cGNp
X2FycmF5IC0gX19zdGFydF92cGNpX2FycmF5KQ0KPj4gIA0KPj4gICNpZmRlZiBDT05GSUdfSEFT
X1ZQQ0lfR1VFU1RfU1VQUE9SVA0KPj4gQEAgLTgzLDYgKzk5LDEzMyBAQCBzdGF0aWMgaW50IGFz
c2lnbl92aXJ0dWFsX3NiZGYoc3RydWN0IHBjaV9kZXYgKnBkZXYpDQo+PiAgDQo+PiAgI2VuZGlm
IC8qIENPTkZJR19IQVNfVlBDSV9HVUVTVF9TVVBQT1JUICovDQo+PiAgDQo+PiArc3RhdGljIHZv
aWQgdnBjaV9jYXBhYmlsaXR5X21hc2soc3RydWN0IHBjaV9kZXYgKnBkZXYsDQo+PiArICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IGNhcCkNCj4+ICt7
DQo+PiArICAgIGNvbnN0IHVuc2lnbmVkIGludCBzaXplID0gMTsNCj4+ICsgICAgY29uc3QgdW5z
aWduZWQgaW50IG9mZnNldCA9IHBjaV9maW5kX2NhcF9vZmZzZXQocGRldi0+c2JkZiwgY2FwKTsN
Cj4+ICsgICAgY29uc3Qgc3RydWN0IHZwY2lfcmVnaXN0ZXIgciA9IHsgLm9mZnNldCA9IG9mZnNl
dCwgLnNpemUgPSBzaXplIH07DQo+PiArICAgIHN0cnVjdCB2cGNpX3JlZ2lzdGVyICpybTsNCj4+
ICsgICAgc3RydWN0IHZwY2kgKnZwY2kgPSBwZGV2LT52cGNpOw0KPj4gKw0KPj4gKyAgICBzcGlu
X2xvY2soJnZwY2ktPmxvY2spOw0KPj4gKyAgICBsaXN0X2Zvcl9lYWNoX2VudHJ5ICggcm0sICZ2
cGNpLT5oYW5kbGVycywgbm9kZSApDQo+PiArICAgIHsNCj4+ICsgICAgICAgIGludCBjbXAgPSB2
cGNpX3JlZ2lzdGVyX2NtcCgmciwgcm0pOw0KPj4gKw0KPj4gKyAgICAgICAgaWYgKCAhY21wICYm
IHJtLT5vZmZzZXQgPT0gb2Zmc2V0ICYmIHJtLT5zaXplID09IHNpemUgKQ0KPj4gKyAgICAgICAg
ew0KPj4gKyAgICAgICAgICAgIHN0cnVjdCB2cGNpX3JlZ2lzdGVyICpwcmUgPSBsaXN0X2VudHJ5
KHJtLT5ub2RlLnByZXYsDQo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc3RydWN0IHZwY2lfcmVnaXN0ZXIsDQo+PiArICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9kZSk7DQo+PiArICAgICAgICAg
ICAgc3RydWN0IHZwY2lfcmVnaXN0ZXIgKm5leHQgPSBsaXN0X2VudHJ5KHJtLT5ub2RlLm5leHQs
DQo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHN0cnVjdCB2cGNpX3JlZ2lzdGVyLA0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBub2RlKTsNCj4+ICsNCj4+ICsgICAgICAgICAgICBwcmUt
PnByaXZhdGUgPSBuZXh0LT5wcml2YXRlOw0KPj4gKw0KPj4gKyAgICAgICAgICAgIC8qIFBDSV9D
QVBfTElTVF9JRCByZWdpc3RlciBvZiBjdXJyZW50IGNhcGFiaWxpdHkgKi8NCj4+ICsgICAgICAg
ICAgICBsaXN0X2RlbCgmcm0tPm5vZGUpOw0KPj4gKyAgICAgICAgICAgIC8qIFBDSV9DQVBfTElT
VF9ORVhUIHJlZ2lzdGVyIG9mIGN1cnJlbnQgY2FwYWJpbGl0eSAqLw0KPj4gKyAgICAgICAgICAg
IGxpc3RfZGVsKCZuZXh0LT5ub2RlKTsNCj4+ICsgICAgICAgICAgICBzcGluX3VubG9jaygmdnBj
aS0+bG9jayk7DQo+IA0KPiBBcmUgeW91IHN1cmUgdGhpcyB3b3JrcyBhcyBpbnRlbmRlZD8gIFRo
ZSBsaXN0IGlzIHNvcnRlZCwgc28gaWYgdGhlcmUNCj4gZnVydGhlciBoYW5kbGVycyBpbiBiZXR3
ZWVuIHRoZSB0d28gY2FwYWJpbGl0aWVzLCBsaWtlIHdoZW4gaGFuZGxpbmcNCj4gTVNJIGNhcGFi
aWxpdHksIHRoZSBuZXh0IGhhbmRsZXIgaW4gdGhlIGxpc3Qgd29uJ3QgcG9pbnQgdG8gdGhlIG5l
eHQNCj4gY2FwYWJpbGl0eSBsaXN0IGhhbmRsZXIuDQoNCk9oLCBJIHRob3VnaHQgdGhlIGNhcGFi
aWxpdHkgbGlzdCBpcyBhbHNvIHNvcnRlZCBpbiB0aGUgaGFyZHdhcmUuDQpTaW5jZSBpdCBpcyBu
b3QgdGhhdCBjYXNlLiBNeSBtZXRob2Qgd291bGQgbm90IHdvcmsgYXMgaW50ZW5kZWQuDQpJIHdp
bGwgY2hhbmdlIHRvIGdldCB0aGUgY2FwYWJpbGl0eSBwb3NpdGlvbiBhbmQgdGhlIHByZXZpb3Vz
IGNhcGFiaWxpdHkgcG9zaXRpb24gZnJvbSB0aGUgaGFyZHdhcmUsDQphbmQgdGhlbiBhY2NvcmRp
bmcgdG8gdGhlIHR3byBwb3NpdGlvbiB0byBnZXQgaGFuZGxlcnMgZnJvbSB2cGNpIGhhbmRsZXJz
Lg0KDQpBbmQgSSB3aWxsIGNoYW5nZSBteSBwYXRjaCBhY2NvcmRpbmcgdG8geW91ciBvdGhlciBj
b21tZW50cyBpbiB0aGlzIGVtYWlsLg0KVGhhbmsgeW91IGZvciBkZXRhaWwgcmV2aWV3Lg0KDQo+
IA0KPj4gKw0KPj4gKyAgICAgICAgICAgIHhmcmVlKHJtKTsNCj4+ICsgICAgICAgICAgICB4ZnJl
ZShuZXh0KTsNCj4+ICsgICAgICAgICAgICByZXR1cm47DQo+PiArICAgICAgICB9DQo+PiArICAg
ICAgICBpZiAoIGNtcCA8PSAwICkNCj4+ICsgICAgICAgICAgICBicmVhazsNCj4+ICsgICAgfQ0K
Pj4gKyAgICBzcGluX3VubG9jaygmdnBjaS0+bG9jayk7DQo+PiArfQ0KPj4gKw0KPj4gK3N0YXRp
YyB2b2lkIHZwY2lfZXh0X2NhcGFiaWxpdHlfbWFzayhzdHJ1Y3QgcGNpX2RldiAqcGRldiwNCj4+
ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgaW50
IGNhcCkNCj4+ICt7DQo+PiArICAgIGNvbnN0IHVuc2lnbmVkIGludCBzaXplID0gNDsNCj4+ICsg
ICAgY29uc3QgdW5zaWduZWQgaW50IG9mZnNldCA9IHBjaV9maW5kX2V4dF9jYXBhYmlsaXR5KHBk
ZXYtPnNiZGYsIGNhcCk7DQo+PiArICAgIGNvbnN0IHN0cnVjdCB2cGNpX3JlZ2lzdGVyIHIgPSB7
IC5vZmZzZXQgPSBvZmZzZXQsIC5zaXplID0gc2l6ZSB9Ow0KPj4gKyAgICBzdHJ1Y3QgdnBjaV9y
ZWdpc3RlciAqcm07DQo+PiArICAgIHN0cnVjdCB2cGNpICp2cGNpID0gcGRldi0+dnBjaTsNCj4+
ICsNCj4+ICsgICAgc3Bpbl9sb2NrKCZ2cGNpLT5sb2NrKTsNCj4+ICsgICAgbGlzdF9mb3JfZWFj
aF9lbnRyeSAoIHJtLCAmdnBjaS0+aGFuZGxlcnMsIG5vZGUgKQ0KPj4gKyAgICB7DQo+PiArICAg
ICAgICBpbnQgY21wID0gdnBjaV9yZWdpc3Rlcl9jbXAoJnIsIHJtKTsNCj4+ICsNCj4+ICsgICAg
ICAgIGlmICggIWNtcCAmJiBybS0+b2Zmc2V0ID09IG9mZnNldCAmJiBybS0+c2l6ZSA9PSBzaXpl
ICkNCj4+ICsgICAgICAgIHsNCj4+ICsgICAgICAgICAgICBzdHJ1Y3QgdnBjaV9yZWdpc3RlciAq
cHJlOw0KPj4gKyAgICAgICAgICAgIHUzMiBwcmVfaGVhZGVyLCBoZWFkZXIgPSAodTMyKSh1aW50
cHRyX3Qpcm0tPnByaXZhdGU7DQo+PiArDQo+PiArICAgICAgICAgICAgaWYgKCBvZmZzZXQgPT0g
MHgxMDBVICYmIFBDSV9FWFRfQ0FQX05FWFQoaGVhZGVyKSA9PSAwICkNCj4gDQo+IEl0IHdvdWxk
IGJlIHNhZmVyIHRvIGNoZWNrIGZvciBuZXh0IDwgMHgxMDAgcmF0aGVyIHRoYW4gZXhwbGljaXRs
eQ0KPiAwLg0KPiANCj4+ICsgICAgICAgICAgICB7DQo+PiArICAgICAgICAgICAgICAgIHJtLT5w
cml2YXRlID0gKHZvaWQgKikodWludHB0cl90KTA7DQo+PiArICAgICAgICAgICAgICAgIHNwaW5f
dW5sb2NrKCZ2cGNpLT5sb2NrKTsNCj4+ICsgICAgICAgICAgICAgICAgcmV0dXJuOw0KPj4gKyAg
ICAgICAgICAgIH0NCj4+ICsgICAgICAgICAgICBlbHNlIGlmICggb2Zmc2V0ID09IDB4MTAwVSAp
DQo+IA0KPiBUaGVyZSdzIG5vIG5lZWQgZm9yIHRoZSBlbHNlIGJyYW5jaCwgYXMgdGhlIHByZXZp
b3VzIGlmIGhhcyBhIHJldHVybi4NCj4gDQo+PiArICAgICAgICAgICAgew0KPj4gKyAgICAgICAg
ICAgICAgICBwcmUgPSBybTsNCj4+ICsgICAgICAgICAgICAgICAgcm0gPSBsaXN0X2VudHJ5KHJt
LT5ub2RlLm5leHQsIHN0cnVjdCB2cGNpX3JlZ2lzdGVyLCBub2RlKTsNCj4+ICsgICAgICAgICAg
ICAgICAgcHJlLT5wcml2YXRlID0gcm0tPnByaXZhdGU7DQo+PiArICAgICAgICAgICAgfQ0KPj4g
KyAgICAgICAgICAgIGVsc2UNCj4+ICsgICAgICAgICAgICB7DQo+PiArICAgICAgICAgICAgICAg
IHByZSA9IGxpc3RfZW50cnkocm0tPm5vZGUucHJldiwgc3RydWN0IHZwY2lfcmVnaXN0ZXIsIG5v
ZGUpOw0KPj4gKyAgICAgICAgICAgICAgICBwcmVfaGVhZGVyID0gKHUzMikodWludHB0cl90KXBy
ZS0+cHJpdmF0ZTsNCj4+ICsgICAgICAgICAgICAgICAgcHJlLT5wcml2YXRlID0NCj4+ICsgICAg
ICAgICAgICAgICAgICAgICh2b2lkICopKHVpbnRwdHJfdCkoKHByZV9oZWFkZXIgJiAhUENJX0VY
VF9DQVBfTkVYVF9NQVNLKSB8DQo+IA0KPiBJIHRoaW5rIHlvdSB3YW50IH5QQ0lfRVhUX0NBUF9O
RVhUX01BU0sgcmF0aGVyIHRoYW4gIVBDSV9FWFRfQ0FQX05FWFRfTUFTSz8NCj4gDQo+PiArICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChoZWFkZXIgJiBQQ0lfRVhUX0NB
UF9ORVhUX01BU0spKTsNCj4+ICsgICAgICAgICAgICB9DQo+PiArICAgICAgICAgICAgbGlzdF9k
ZWwoJnJtLT5ub2RlKTsNCj4+ICsgICAgICAgICAgICBzcGluX3VubG9jaygmdnBjaS0+bG9jayk7
DQo+PiArICAgICAgICAgICAgeGZyZWUocm0pOw0KPj4gKyAgICAgICAgICAgIHJldHVybjsNCj4g
DQo+IEtpbmQgb2YgdGhlIHNhbWUgY29tcGxhaW50IEkgaGFkIG9uIHRoZSBwcmV2aW91cyBwYXRj
aCwgdGhpcyBzZWVtcyB0bw0KPiBhc3N1bWUgdGhhdCBjYXBhYmlsaXR5IGhhbmRsZXJzIGFyZSBh
bHdheXMgY29uc2VjdXRpdmUgaW4gdGhlIGxpc3Qgb2YNCj4gaGFuZGxlcnMsIHdoaWNoIEkgZG9u
J3QgdGhpbmsgaXQncyB0aGUgY2FzZS4NCj4gDQo+PiArICAgICAgICB9DQo+PiArICAgICAgICBp
ZiAoIGNtcCA8PSAwICkNCj4+ICsgICAgICAgICAgICBicmVhazsNCj4+ICsgICAgfQ0KPj4gKyAg
ICBzcGluX3VubG9jaygmdnBjaS0+bG9jayk7DQo+PiArfQ0KPj4gKw0KPj4gK3N0YXRpYyB2b2lk
IHZwY2lfaW5pdF9jYXBhYmlsaXRpZXMoc3RydWN0IHBjaV9kZXYgKnBkZXYpDQo+PiArew0KPj4g
KyAgICBmb3IgKCB1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBOVU1fVlBDSV9JTklUOyBpKysgKQ0K
Pj4gKyAgICB7DQo+PiArICAgICAgICBjb25zdCB2cGNpX2NhcGFiaWxpdHlfdCAqY2FwYWJpbGl0
eSA9IF9fc3RhcnRfdnBjaV9hcnJheVtpXTsNCj4+ICsgICAgICAgIGNvbnN0IHVuc2lnbmVkIGlu
dCBjYXAgPSBjYXBhYmlsaXR5LT5pZDsNCj4+ICsgICAgICAgIGNvbnN0IGJvb2wgaXNfZXh0ID0g
Y2FwYWJpbGl0eS0+aXNfZXh0Ow0KPj4gKyAgICAgICAgdW5zaWduZWQgaW50IHBvczsNCj4+ICsg
ICAgICAgIGludCByYzsNCj4+ICsNCj4+ICsgICAgICAgIGlmICggIWlzX2hhcmR3YXJlX2RvbWFp
bihwZGV2LT5kb21haW4pICYmIGlzX2V4dCApDQo+PiArICAgICAgICAgICAgY29udGludWU7DQo+
PiArDQo+PiArICAgICAgICBpZiAoIGlzX2V4dCApDQo+PiArICAgICAgICAgICAgcG9zID0gcGNp
X2ZpbmRfZXh0X2NhcGFiaWxpdHkocGRldi0+c2JkZiwgY2FwKTsNCj4+ICsgICAgICAgIGVsc2UN
Cj4+ICsgICAgICAgICAgICBwb3MgPSBwY2lfZmluZF9jYXBfb2Zmc2V0KHBkZXYtPnNiZGYsIGNh
cCk7DQo+PiArDQo+PiArICAgICAgICBpZiAoICFwb3MgKQ0KPj4gKyAgICAgICAgICAgIGNvbnRp
bnVlOw0KPj4gKw0KPj4gKyAgICAgICAgcmMgPSBjYXBhYmlsaXR5LT5pbml0KHBkZXYpOw0KPj4g
Kw0KPj4gKyAgICAgICAgaWYgKCByYyApDQo+PiArICAgICAgICB7DQo+PiArICAgICAgICAgICAg
cHJpbnRrKFhFTkxPR19XQVJOSU5HICIlcGQgJXBwOiAlcyBjYXAgJXUgaW5pdCBmYWlsIHJjPSVk
LCBtYXNrIGl0XG4iLA0KPj4gKyAgICAgICAgICAgICAgICAgICBwZGV2LT5kb21haW4sICZwZGV2
LT5zYmRmLA0KPj4gKyAgICAgICAgICAgICAgICAgICBpc19leHQgPyAiZXh0ZW5kZWQiIDogImxl
Z2FjeSIsIGNhcCwgcmMpOw0KPj4gKyAgICAgICAgICAgIGlmICggaXNfZXh0ICkNCj4+ICsgICAg
ICAgICAgICAgICAgdnBjaV9leHRfY2FwYWJpbGl0eV9tYXNrKHBkZXYsIGNhcCk7DQo+PiArICAg
ICAgICAgICAgZWxzZQ0KPj4gKyAgICAgICAgICAgICAgICB2cGNpX2NhcGFiaWxpdHlfbWFzayhw
ZGV2LCBjYXApOw0KPj4gKyAgICAgICAgfQ0KPj4gKyAgICB9DQo+PiArfQ0KPj4gKw0KPj4gIHZv
aWQgdnBjaV9kZWFzc2lnbl9kZXZpY2Uoc3RydWN0IHBjaV9kZXYgKnBkZXYpDQo+PiAgew0KPj4g
ICAgICB1bnNpZ25lZCBpbnQgaTsNCj4+IEBAIC0xMjgsNyArMjcxLDYgQEAgdm9pZCB2cGNpX2Rl
YXNzaWduX2RldmljZShzdHJ1Y3QgcGNpX2RldiAqcGRldikNCj4+ICANCj4+ICBpbnQgdnBjaV9h
c3NpZ25fZGV2aWNlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KQ0KPj4gIHsNCj4+IC0gICAgdW5zaWdu
ZWQgaW50IGk7DQo+PiAgICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgKnJvX21hcDsNCj4+ICAgICAg
aW50IHJjID0gMDsNCj4+ICANCj4+IEBAIC0xNTksMTIgKzMwMSwxMSBAQCBpbnQgdnBjaV9hc3Np
Z25fZGV2aWNlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KQ0KPj4gICAgICAgICAgZ290byBvdXQ7DQo+
PiAgI2VuZGlmDQo+PiAgDQo+PiAtICAgIGZvciAoIGkgPSAwOyBpIDwgTlVNX1ZQQ0lfSU5JVDsg
aSsrICkNCj4+IC0gICAgew0KPj4gLSAgICAgICAgcmMgPSBfX3N0YXJ0X3ZwY2lfYXJyYXlbaV0o
cGRldik7DQo+PiAtICAgICAgICBpZiAoIHJjICkNCj4+IC0gICAgICAgICAgICBicmVhazsNCj4+
IC0gICAgfQ0KPj4gKyAgICByYyA9IHZwY2lfaW5pdF9oZWFkZXIocGRldik7DQo+PiArICAgIGlm
ICggcmMgKQ0KPj4gKyAgICAgICAgZ290byBvdXQ7DQo+IA0KPiBJZiB5b3UgdXNlIHRoZSBvdXQg
bGFiZWwgaGVyZSB5b3UgY2FuIHJlbW92ZSB0aGUgX19tYXliZV91bnVzZWQNCj4gYXR0cmlidXRl
IGZyb20gaXQuDQo+IA0KPj4gKw0KPj4gKyAgICB2cGNpX2luaXRfY2FwYWJpbGl0aWVzKHBkZXYp
Ow0KPj4gIA0KPj4gICBvdXQ6IF9fbWF5YmVfdW51c2VkOw0KPj4gICAgICBpZiAoIHJjICkNCj4+
IEBAIC0xNzQsMjIgKzMxNSw2IEBAIGludCB2cGNpX2Fzc2lnbl9kZXZpY2Uoc3RydWN0IHBjaV9k
ZXYgKnBkZXYpDQo+PiAgfQ0KPj4gICNlbmRpZiAvKiBfX1hFTl9fICovDQo+PiAgDQo+PiAtc3Rh
dGljIGludCB2cGNpX3JlZ2lzdGVyX2NtcChjb25zdCBzdHJ1Y3QgdnBjaV9yZWdpc3RlciAqcjEs
DQo+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgdnBjaV9yZWdp
c3RlciAqcjIpDQo+PiAtew0KPj4gLSAgICAvKiBSZXR1cm4gMCBpZiByZWdpc3RlcnMgb3Zlcmxh
cC4gKi8NCj4+IC0gICAgaWYgKCByMS0+b2Zmc2V0IDwgcjItPm9mZnNldCArIHIyLT5zaXplICYm
DQo+PiAtICAgICAgICAgcjItPm9mZnNldCA8IHIxLT5vZmZzZXQgKyByMS0+c2l6ZSApDQo+PiAt
ICAgICAgICByZXR1cm4gMDsNCj4+IC0gICAgaWYgKCByMS0+b2Zmc2V0IDwgcjItPm9mZnNldCAp
DQo+PiAtICAgICAgICByZXR1cm4gLTE7DQo+PiAtICAgIGlmICggcjEtPm9mZnNldCA+IHIyLT5v
ZmZzZXQgKQ0KPj4gLSAgICAgICAgcmV0dXJuIDE7DQo+PiAtDQo+PiAtICAgIEFTU0VSVF9VTlJF
QUNIQUJMRSgpOw0KPj4gLSAgICByZXR1cm4gMDsNCj4+IC19DQo+PiAtDQo+PiAgLyogRHVtbXkg
aG9va3MsIHdyaXRlcyBhcmUgaWdub3JlZCwgcmVhZHMgcmV0dXJuIDEncyAqLw0KPj4gIHN0YXRp
YyB1aW50MzJfdCBjZl9jaGVjayB2cGNpX2lnbm9yZWRfcmVhZCgNCj4+ICAgICAgY29uc3Qgc3Ry
dWN0IHBjaV9kZXYgKnBkZXYsIHVuc2lnbmVkIGludCByZWcsIHZvaWQgKmRhdGEpDQo+PiBkaWZm
IC0tZ2l0IGEveGVuL2luY2x1ZGUveGVuL3BjaV9yZWdzLmggYi94ZW4vaW5jbHVkZS94ZW4vcGNp
X3JlZ3MuaA0KPj4gaW5kZXggMjdiNGY0NGVlZGYzLi41ZmU2NjUzZmRlZDQgMTAwNjQ0DQo+PiAt
LS0gYS94ZW4vaW5jbHVkZS94ZW4vcGNpX3JlZ3MuaA0KPj4gKysrIGIveGVuL2luY2x1ZGUveGVu
L3BjaV9yZWdzLmgNCj4+IEBAIC00NDksNiArNDQ5LDcgQEANCj4+ICAjZGVmaW5lIFBDSV9FWFRf
Q0FQX0lEKGhlYWRlcikJCSgoaGVhZGVyKSAmIDB4MDAwMGZmZmYpDQo+PiAgI2RlZmluZSBQQ0lf
RVhUX0NBUF9WRVIoaGVhZGVyKQkJKCgoaGVhZGVyKSA+PiAxNikgJiAweGYpDQo+PiAgI2RlZmlu
ZSBQQ0lfRVhUX0NBUF9ORVhUKGhlYWRlcikJKCgoaGVhZGVyKSA+PiAyMCkgJiAweGZmYykNCj4+
ICsjZGVmaW5lIFBDSV9FWFRfQ0FQX05FWFRfTUFTSwkJMHhGRkMwMDAwMFUNCj4+ICANCj4+ICAj
ZGVmaW5lIFBDSV9FWFRfQ0FQX0lEX0VSUgkxDQo+PiAgI2RlZmluZSBQQ0lfRVhUX0NBUF9JRF9W
QwkyDQo+PiBkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUveGVuL3ZwY2kuaCBiL3hlbi9pbmNsdWRl
L3hlbi92cGNpLmgNCj4+IGluZGV4IDgwNzQwMWIyZWFhMi4uNTAxNmRlZDY0ZDg5IDEwMDY0NA0K
Pj4gLS0tIGEveGVuL2luY2x1ZGUveGVuL3ZwY2kuaA0KPj4gKysrIGIveGVuL2luY2x1ZGUveGVu
L3ZwY2kuaA0KPj4gQEAgLTEzLDExICsxMywxMSBAQCB0eXBlZGVmIHVpbnQzMl90IHZwY2lfcmVh
ZF90KGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpwZGV2LCB1bnNpZ25lZCBpbnQgcmVnLA0KPj4gIHR5
cGVkZWYgdm9pZCB2cGNpX3dyaXRlX3QoY29uc3Qgc3RydWN0IHBjaV9kZXYgKnBkZXYsIHVuc2ln
bmVkIGludCByZWcsDQo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCB2YWws
IHZvaWQgKmRhdGEpOw0KPj4gIA0KPj4gLXR5cGVkZWYgaW50IHZwY2lfcmVnaXN0ZXJfaW5pdF90
KHN0cnVjdCBwY2lfZGV2ICpkZXYpOw0KPj4gLQ0KPj4gLSNkZWZpbmUgVlBDSV9QUklPUklUWV9I
SUdIICAgICAgIjEiDQo+PiAtI2RlZmluZSBWUENJX1BSSU9SSVRZX01JRERMRSAgICAiNSINCj4+
IC0jZGVmaW5lIFZQQ0lfUFJJT1JJVFlfTE9XICAgICAgICI5Ig0KPj4gK3R5cGVkZWYgc3RydWN0
IHsNCj4+ICsgICAgdW5zaWduZWQgaW50IGlkOw0KPj4gKyAgICBib29sIGlzX2V4dDsNCj4+ICsg
ICAgaW50ICgqaW5pdCkoc3RydWN0IHBjaV9kZXYgKnBkZXYpOw0KPj4gK30gdnBjaV9jYXBhYmls
aXR5X3Q7DQo+PiAgDQo+PiAgI2RlZmluZSBWUENJX0VDQU1fQkRGKGFkZHIpICAgICAoKChhZGRy
KSAmIDB4MGZmZmYwMDApID4+IDEyKQ0KPj4gIA0KPj4gQEAgLTI5LDkgKzI5LDE5IEBAIHR5cGVk
ZWYgaW50IHZwY2lfcmVnaXN0ZXJfaW5pdF90KHN0cnVjdCBwY2lfZGV2ICpkZXYpOw0KPj4gICAq
Lw0KPj4gICNkZWZpbmUgVlBDSV9NQVhfVklSVF9ERVYgICAgICAgKFBDSV9TTE9UKH4wKSArIDEp
DQo+PiAgDQo+PiAtI2RlZmluZSBSRUdJU1RFUl9WUENJX0lOSVQoeCwgcCkgICAgICAgICAgICAg
ICAgXA0KPj4gLSAgc3RhdGljIHZwY2lfcmVnaXN0ZXJfaW5pdF90ICpjb25zdCB4IyNfZW50cnkg
IFwNCj4+IC0gICAgICAgICAgICAgICBfX3VzZWRfc2VjdGlvbigiLmRhdGEudnBjaS4iIHApID0g
KHgpDQo+PiArI2RlZmluZSBSRUdJU1RFUl9WUENJX0NBUChjYXAsIHgsIGV4dCkgXA0KPj4gKyAg
c3RhdGljIHZwY2lfY2FwYWJpbGl0eV90IHgjI190ID0geyBcDQo+PiArICAgICAgICAuaWQgPSAo
Y2FwKSwgXA0KPj4gKyAgICAgICAgLmluaXQgPSAoeCksIFwNCj4+ICsgICAgICAgIC5pc19leHQg
PSAoZXh0KSwgXA0KPj4gKyAgfTsgXA0KPj4gKyAgc3RhdGljIHZwY2lfY2FwYWJpbGl0eV90ICpj
b25zdCB4IyNfZW50cnkgIFwNCj4+ICsgICAgICAgICAgICAgICBfX3VzZWRfc2VjdGlvbigiLmRh
dGEudnBjaS4iKSA9ICYoeCMjX3QpDQo+PiArDQo+PiArI2RlZmluZSBSRUdJU1RFUl9WUENJX0xF
R0FDWV9DQVAoY2FwLCB4KSBSRUdJU1RFUl9WUENJX0NBUChjYXAsIHgsIGZhbHNlKQ0KPj4gKyNk
ZWZpbmUgUkVHSVNURVJfVlBDSV9FWFRFTkRfQ0FQKGNhcCwgeCkgUkVHSVNURVJfVlBDSV9DQVAo
Y2FwLCB4LCB0cnVlKQ0KPiANCj4gTml0OiBJIHdvdWxkIHVzZSBFWFRFTkRFRCBoZXJlLCB0aGVy
ZSdzIG5vIG5lZWQgdG8ga2VlcCBib3RoIGRlZmluZXMNCj4gdGhlIHNhbWUgbGVuZ3RoLg0KPiAN
Cj4gVGhhbmtzLCBSb2dlci4NCg0KLS0gDQpCZXN0IHJlZ2FyZHMsDQpKaXFpYW4gQ2hlbi4NCg==


From xen-devel-bounces@lists.xenproject.org Wed Apr 16 06:15:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 06:15:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.955072.1348908 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4w3W-0004np-Do; Wed, 16 Apr 2025 06:15:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 955072.1348908; Wed, 16 Apr 2025 06:15: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 1u4w3W-0004ni-At; Wed, 16 Apr 2025 06:15:30 +0000
Received: by outflank-mailman (input) for mailman id 955072;
 Wed, 16 Apr 2025 06:15: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=1z0E=XC=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u4w3U-0004nc-IM
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 06:15:29 +0000
Received: from mail-10631.protonmail.ch (mail-10631.protonmail.ch
 [79.135.106.31]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3043263b-1a8a-11f0-9eaf-5ba50f476ded;
 Wed, 16 Apr 2025 08:15:26 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3043263b-1a8a-11f0-9eaf-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1744784125; x=1745043325;
	bh=bVktnvEfiZN3tRkTsGceg+QCeJY1reNnd4H/1QHjy40=;
	h=Date:To:From:Cc:Subject:Message-ID:Feedback-ID:From:To:Cc:Date:
	 Subject:Reply-To:Feedback-ID:Message-ID:BIMI-Selector:
	 List-Unsubscribe:List-Unsubscribe-Post;
	b=EqZDLofqt8TuhX1FPl8dn0GywWuaz7fQCWWIlHTMCmCaG+57W9M4O7OHxHpKvkRrm
	 aQ23Ib3uZqrykX7YLcJn4F1dg23rA5IU0UvpzSPzEeJQNbiONLbdR2WzXSrlPswIIB
	 YJUBZhzcSPBbAfX35YAbgLNMjZIXR6iYFDhc4ZMwj9KqY0zUs3qwmmxW/KRriWI17w
	 nwpDmh6vD1OsaIr63T8t6xVLZ6N5XV206qauICQqnUeHl2evTvyVDkc1yQ55tCNUYo
	 n3Jug9YwCJM56uzOyQuGbZvWeruKaV+mzfgZUSVc+kz6PS/vy9RHENQXxjFv5g5brR
	 P0SqkuZmMjoFA==
Date: Wed, 16 Apr 2025 06:15:18 +0000
To: xen-devel@lists.xenproject.org
From: dmkhn@proton.me
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org, dmukhin@ford.com
Subject: [PATCH v3] xen/domain: unify domain ID allocation
Message-ID: <20250416061509.934220-1-dmukhin@ford.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 67fce5b5eef23c2c07a625da54181b821bb4b2aa
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

From: Denis Mukhin <dmukhin@ford.com>

Unify the logic of domain ID allocation, so that both the initial domain
creation and the usage by domctl use the same helper function across
architectures (Arm and x86).

Wrap the domain ID allocation as an arch-independent function domid_alloc()=
 in
common/domain.c.

Allocation algorithm:
- If an explicit domain ID is provided, verify its availability and
  use it if ID is unused;
- Otherwise, perform an exhaustive search for the first available ID
  within the [0..DOMID_FIRST_RESERVED) range, excluding hardware_domid.

Move the is_free_domid() helper closer to domid_alloc(). Simplify
is_free_domid() by removing the domain ID range check, as the ID is now
guaranteed to be within the valid range. Additionally, update the predicate=
 to
return a bool value instead of an int.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
Link to v2: https://lore.kernel.org/xen-devel/20250331230508.440198-3-dmukh=
in@ford.com/
CI: https://gitlab.com/xen-project/people/dmukhin/xen/-/pipelines/177080184=
7

I hope by moving it to an isolated thread the review will be simpler.

Changes since v2:
- added max_init_domid change so the patch does not need to depend on
  other patches
- moved uses of domid_alloc() close to domain_create()
- use DOMID_INVALID as the indicator for doing an exhaustive domain ID sear=
ch
---
 xen/arch/arm/dom0less-build.c | 19 ++++++++-------
 xen/arch/arm/domain_build.c   | 19 +++++++++++----
 xen/arch/x86/setup.c          |  8 +++++--
 xen/common/domain.c           | 45 +++++++++++++++++++++++++++++++++++
 xen/common/domctl.c           | 45 ++++-------------------------------
 xen/include/xen/domain.h      |  2 ++
 6 files changed, 81 insertions(+), 57 deletions(-)

diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
index bd15563750..387ba938ba 100644
--- a/xen/arch/arm/dom0less-build.c
+++ b/xen/arch/arm/dom0less-build.c
@@ -993,15 +993,13 @@ void __init create_domUs(void)
             .grant_opts =3D XEN_DOMCTL_GRANT_version(opt_gnttab_max_versio=
n),
         };
         unsigned int flags =3D 0U;
+        domid_t domid;
         uint32_t val;
         int rc;
=20
         if ( !dt_device_is_compatible(node, "xen,domain") )
             continue;
=20
-        if ( (max_init_domid + 1) >=3D DOMID_FIRST_RESERVED )
-            panic("No more domain IDs available\n");
-
         if ( dt_find_property(node, "xen,static-mem", NULL) )
         {
             if ( llc_coloring_enabled )
@@ -1125,12 +1123,15 @@ void __init create_domUs(void)
         if ( !llc_coloring_enabled && llc_colors_str )
             panic("'llc-colors' found, but LLC coloring is disabled\n");
=20
-        /*
-         * The variable max_init_domid is initialized with zero, so here i=
t's
-         * very important to use the pre-increment operator to call
-         * domain_create() with a domid > 0. (domid =3D=3D 0 is reserved f=
or Dom0)
-         */
-        d =3D domain_create(++max_init_domid, &d_cfg, flags);
+        rc =3D domid_alloc(DOMID_INVALID);
+        if ( rc < 0 )
+            panic("Error allocating ID for domain %s (rc =3D %d)\n",
+                  dt_node_name(node), rc);
+        domid =3D rc;
+        if ( max_init_domid < domid )
+            max_init_domid =3D domid;
+
+        d =3D domain_create(domid, &d_cfg, flags);
         if ( IS_ERR(d) )
             panic("Error creating domain %s (rc =3D %ld)\n",
                   dt_node_name(node), PTR_ERR(d));
diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index 634333cdde..2ee6ffd30b 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -2370,6 +2370,7 @@ void __init create_dom0(void)
         .grant_opts =3D XEN_DOMCTL_GRANT_version(opt_gnttab_max_version),
     };
     unsigned int flags =3D CDF_privileged;
+    domid_t domid;
     int rc;
=20
     /* The vGIC for DOM0 is exactly emulating the hardware GIC */
@@ -2394,19 +2395,27 @@ void __init create_dom0(void)
     if ( !llc_coloring_enabled )
         flags |=3D CDF_directmap;
=20
-    dom0 =3D domain_create(0, &dom0_cfg, flags);
+    rc =3D domid_alloc(get_initial_domain_id());
+    if ( rc < 0 )
+        panic("Error allocating domain ID %d (rc =3D %d)\n",
+              get_initial_domain_id(), rc);
+    domid =3D rc;
+
+    dom0 =3D domain_create(domid, &dom0_cfg, flags);
     if ( IS_ERR(dom0) )
-        panic("Error creating domain 0 (rc =3D %ld)\n", PTR_ERR(dom0));
+        panic("Error creating domain %d (rc =3D %ld)\n", domid, PTR_ERR(do=
m0));
=20
     if ( llc_coloring_enabled && (rc =3D dom0_set_llc_colors(dom0)) )
-        panic("Error initializing LLC coloring for domain 0 (rc =3D %d)\n"=
, rc);
+        panic("Error initializing LLC coloring for domain %d (rc =3D %d)\n=
",
+              domid, rc);
=20
     if ( alloc_dom0_vcpu0(dom0) =3D=3D NULL )
-        panic("Error creating domain 0 vcpu0\n");
+        panic("Error creating domain %d vcpu0\n", domid);
=20
     rc =3D construct_dom0(dom0);
     if ( rc )
-        panic("Could not set up DOM0 guest OS (rc =3D %d)\n", rc);
+        panic("Could not set up guest OS for domain %d (rc =3D %d)\n",
+              domid, rc);
 }
=20
 /*
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 3c257f0bad..e20a416bf4 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -1009,8 +1009,12 @@ static struct domain *__init create_dom0(struct boot=
_info *bi)
     if ( iommu_enabled )
         dom0_cfg.flags |=3D XEN_DOMCTL_CDF_iommu;
=20
-    /* Create initial domain.  Not d0 for pvshim. */
-    bd->domid =3D get_initial_domain_id();
+    /* Allocate initial domain ID. Not d0 for pvshim. */
+    bd->domid =3D domid_alloc(get_initial_domain_id());
+    if ( bd->domid < 0 )
+        panic("Error allocating domain ID %d (rc =3D %d)\n",
+              get_initial_domain_id(), bd->domid);
+
     d =3D 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));
diff --git a/xen/common/domain.c b/xen/common/domain.c
index 585fd726a9..db98d9c1b2 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -66,6 +66,51 @@ DEFINE_RCU_READ_LOCK(domlist_read_lock);
 static struct domain *domain_hash[DOMAIN_HASH_SIZE];
 struct domain *domain_list;
=20
+static inline bool is_free_domid(domid_t dom)
+{
+    struct domain *d =3D rcu_lock_domain_by_id(dom);
+
+    if ( d )
+        rcu_unlock_domain(d);
+
+    return !d;
+}
+
+/*
+ * Allocate new domain ID based on the hint.
+ *
+ * If hint is outside of valid [0..DOMID_FIRST_RESERVED] range of IDs,
+ * perform an exhaustive search of the first free domain ID excluding
+ * hardware_domid.
+ */
+int domid_alloc(int hint)
+{
+    domid_t domid;
+
+    if ( hint >=3D 0 && hint < DOMID_FIRST_RESERVED )
+    {
+        if ( !is_free_domid(hint) )
+            return -EEXIST;
+
+        domid =3D hint;
+    }
+    else
+    {
+        for ( domid =3D 0; domid < DOMID_FIRST_RESERVED; domid++ )
+        {
+            if ( domid =3D=3D hardware_domid )
+                continue;
+            if ( is_free_domid(domid) )
+                break;
+        }
+
+        if ( domid =3D=3D DOMID_FIRST_RESERVED )
+            return -ENOMEM;
+    }
+
+    return domid;
+}
+
 /*
  * Insert a domain into the domlist/hash.  This allows the domain to be lo=
oked
  * up by domid, and therefore to be the subject of hypercalls/etc.
diff --git a/xen/common/domctl.c b/xen/common/domctl.c
index bfe2e1f9f0..3d21612660 100644
--- a/xen/common/domctl.c
+++ b/xen/common/domctl.c
@@ -49,20 +49,6 @@ static int xenctl_bitmap_to_nodemask(nodemask_t *nodemas=
k,
                                    MAX_NUMNODES);
 }
=20
-static inline int is_free_domid(domid_t dom)
-{
-    struct domain *d;
-
-    if ( dom >=3D DOMID_FIRST_RESERVED )
-        return 0;
-
-    if ( (d =3D rcu_lock_domain_by_id(dom)) =3D=3D NULL )
-        return 1;
-
-    rcu_unlock_domain(d);
-    return 0;
-}
-
 void getdomaininfo(struct domain *d, struct xen_domctl_getdomaininfo *info=
)
 {
     struct vcpu *v;
@@ -421,34 +407,11 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u=
_domctl)
=20
     case XEN_DOMCTL_createdomain:
     {
-        domid_t        dom;
-        static domid_t rover =3D 0;
+        ret =3D domid_alloc(op->domain);
+        if ( ret < 0 )
+            break;
=20
-        dom =3D op->domain;
-        if ( (dom > 0) && (dom < DOMID_FIRST_RESERVED) )
-        {
-            ret =3D -EEXIST;
-            if ( !is_free_domid(dom) )
-                break;
-        }
-        else
-        {
-            for ( dom =3D rover + 1; dom !=3D rover; dom++ )
-            {
-                if ( dom =3D=3D DOMID_FIRST_RESERVED )
-                    dom =3D 1;
-                if ( is_free_domid(dom) )
-                    break;
-            }
-
-            ret =3D -ENOMEM;
-            if ( dom =3D=3D rover )
-                break;
-
-            rover =3D dom;
-        }
-
-        d =3D domain_create(dom, &op->u.createdomain, false);
+        d =3D domain_create(ret, &op->u.createdomain, false);
         if ( IS_ERR(d) )
         {
             ret =3D PTR_ERR(d);
diff --git a/xen/include/xen/domain.h b/xen/include/xen/domain.h
index a34daa7d10..9f2470b095 100644
--- a/xen/include/xen/domain.h
+++ b/xen/include/xen/domain.h
@@ -38,6 +38,8 @@ void arch_get_domain_info(const struct domain *d,
=20
 domid_t get_initial_domain_id(void);
=20
+int domid_alloc(int hint);
+
 /* CDF_* constant. Internal flags for domain creation. */
 /* Is this a privileged domain? */
 #define CDF_privileged           (1U << 0)
--=20
2.34.1




From xen-devel-bounces@lists.xenproject.org Wed Apr 16 06:16:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 06:16:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.955083.1348918 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4w4q-0005JM-NY; Wed, 16 Apr 2025 06:16:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 955083.1348918; Wed, 16 Apr 2025 06:16: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 1u4w4q-0005JF-Kj; Wed, 16 Apr 2025 06:16:52 +0000
Received: by outflank-mailman (input) for mailman id 955083;
 Wed, 16 Apr 2025 06:16: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=2j5z=XC=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1u4w4o-0005J7-Sa
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 06:16:50 +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 6013355e-1a8a-11f0-9ffb-bf95429c2676;
 Wed, 16 Apr 2025 08:16:47 +0200 (CEST)
Received: from BL1PR12MB5849.namprd12.prod.outlook.com (2603:10b6:208:384::18)
 by DS4PR12MB9682.namprd12.prod.outlook.com (2603:10b6:8:27f::11) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.35; Wed, 16 Apr
 2025 06:16:43 +0000
Received: from BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::b77f:9333:3a5a:d285]) by BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::b77f:9333:3a5a:d285%4]) with mapi id 15.20.8655.022; Wed, 16 Apr 2025
 06:16: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: 6013355e-1a8a-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=tuMn2//DiBWxtfxOcu0HJlpH6o1uhlaD47sBYU5oy9bASKsBn97lsLeChtpRe4F669FfHnB1UkjcGzuWWYRALWBe5skTiSaf5U/upPfTNJVgjnSP1NRDj3D07iWe+3LVeiCoV0+eG2vTGi1KrOah2LxpPoZSpmAH7KuO+P6rzk39qcBsR+n5bEvP64dCAWZSh6o8R1/rCBMhEC8jNbcvzUwiTrd+ZEOtTFHgJ2d9albKCP8yMdLYmURh6gWfwnBMbyTyde4p2N670QaYo5kt9GEbe/Br2Gvaq91/suo2DYz7tHSvU+9MjTeG8oVdXKdbSVH8EgQt0I47oRqbXb+3DQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=yioAAbvOWBjFc4AAEyG22TXqcpBGflJhFV578mqceqo=;
 b=RAUHKEZKeoziLd5KjFv4CacjyYNiNBcjGWuypPk2ruhi3jUzJwAG41yZfO2+jqPUXBXNSUwUopFb1gqzER3qDyeJumgDDGkHqZQyti84D/tIkYGguRYmGi8LquvQm2/YPGYhBIJHAollub+spG8aiGeZUP9bZQcZ3HvzYoa+rqjnIarpBsxpEq95joBqYfTlL91UFczHs2QV1iGXUWq3aJbEDKN6KbCqtjh5a8w1H/hBP282da7T3FwsAZt6iASen/DKQpQtgOfdpuoiyDaXvpHQ89cGOeWskc3uKA8gUeBrhO9LHWaaiGmP+zRCjbuZIEG4jjKKmBDf+6zfwnTscA==
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=yioAAbvOWBjFc4AAEyG22TXqcpBGflJhFV578mqceqo=;
 b=YU/rGb1+dKCjxwIEgiWSCdfIhgCU+Gi/XlK5jk49w784py3i+khFnaAM2Sp+nYv1ioouNfDIARflNinuVro+YoBXLxfsX3g7YuBmCnhM0yTqJhrJ2pAz2MimPOwlDMMTKWXgFkTDUC24SwzOu3h6AYS43yZ2muQZidainvGPRf0=
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>, "Huang,
 Ray" <Ray.Huang@amd.com>, "Chen, Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [PATCH v2 7/8] vpci/msi: Free MSI resources when init_msi() fails
Thread-Topic: [PATCH v2 7/8] vpci/msi: Free MSI resources when init_msi()
 fails
Thread-Index: AQHbqRsgbLaoMHelXkGKdCfvKc+G8rOkwo4AgAGd4IA=
Date: Wed, 16 Apr 2025 06:16:36 +0000
Message-ID:
 <BL1PR12MB584983A5AB0A9D74877F8BA0E7BD2@BL1PR12MB5849.namprd12.prod.outlook.com>
References: <20250409064528.405573-1-Jiqian.Chen@amd.com>
 <20250409064528.405573-8-Jiqian.Chen@amd.com> <Z_5fLB1GoyoxpuOL@macbook.lan>
In-Reply-To: <Z_5fLB1GoyoxpuOL@macbook.lan>
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.8655.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_|DS4PR12MB9682:EE_
x-ms-office365-filtering-correlation-id: b1ddb4a3-fa3c-454a-11d8-08dd7cae3e05
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?ZnlGQXdTZ1UwdVpVdGx1MFVVRGdWNW9HeGRBRGlyK09kWHdCYnBSVlhEelM2?=
 =?utf-8?B?T29rdDFOQVNCYkJlNk14T3RVRGRTYlVIZHdwU2lNV0NUVXJxeE5pR0o0Q1dW?=
 =?utf-8?B?MmZLZlFGbVBnSjZ0SmtwZnlWdFJoZGVQZ2VvNFc4TWZraVR5aG16VmphMmFV?=
 =?utf-8?B?eExBRFhCNmxOL09CTmhUUmlrMFFDWWtXUndkZ1pPcElLVzBxMGE1bGNrQ2dR?=
 =?utf-8?B?N1E2bDFSOE5Fa2w2VDVaNXVmdFg2aU5WMUtpU25CRmh4Tytacm90UzlDWitW?=
 =?utf-8?B?Ni9wYU5aSXNxZ1BZZkR1Y09XNVcyd3BpUkRLZ2NCSUUycHN3Z1NxcW1LKzZU?=
 =?utf-8?B?TlArSXVQZ2tDTXdpZWVlY0VHNCs3ejlBMDR3RVNrRitlVjlFSkp0NXRRbUZ5?=
 =?utf-8?B?VDZtQ3FhRHlWRmFWUldPWG05UDZkV2NhbmFWZXpFcGVrLzE4bW9DTHN0S3Iz?=
 =?utf-8?B?L2VySzFPSDNQY0oxd1lmeHQ3Q2xMU0s2dHdla0JUWmQyRG44RkJoblY0Tnh2?=
 =?utf-8?B?M01ZbTNLVTZFOU1YQ0lmU1pIRm44dHh4UmZybnVaOWhPdDFFSEVuZG9XTnlv?=
 =?utf-8?B?MEtEWktTaytydVJHeE5BekphZEFuK0NMV2dGbU92S202T3VYT09GNGMvOGN6?=
 =?utf-8?B?RE83ajhjbnp4Y1htUDRZNmgza2YyMkdLTkd5aE92UTZmYkxaY1JQWEM0YmY1?=
 =?utf-8?B?YThqWThXV2wxTmxqT2NveDRBMnVHK1JmcVp6eUV2UW1qV3hPUjFVWFJpN2hQ?=
 =?utf-8?B?NndQSU42Tkd0T0YvekpibFpIaDYwVHJXdU82V0RMSHEyVGMvLzhNVnZ4RFRh?=
 =?utf-8?B?VFhDS2ZoM1pPcE80R1Zldnc1Vk9Xc1ZaUE1LaFZ0UXdkakZKQ3NLU1A4U0d1?=
 =?utf-8?B?NGN5Tnh6Z0k1YWN3U3ZmVUxxTXBPZ3Z1Q2o3SWllRUpHQm1SSjRyNzg0YkJ1?=
 =?utf-8?B?RnZpaVFWOEJBVS9CbG9hT3F4dVJWRExlQkFWaU52WHV0azhsMzJoVzRYZnpk?=
 =?utf-8?B?L0piWXFZOVhTSisySlArUHIvSmRiOXhqamVLelpCODl0YUhyMDhhaG1ORVhr?=
 =?utf-8?B?NDdVQSs2aTNURlk4MlBPSWRhb09wanJJSmY1SWtBUGhNZTc1V1VSMkhVUWNi?=
 =?utf-8?B?ME9HeThYZWVRRXNkZmM1VXlBV3dnUXVLOXg3d2NTSDlMVkhRMWFPVkR5c3U3?=
 =?utf-8?B?cTlqemxBblZsWDVWSGVJOWROQ2N0NU84YzlQRXV2ek9MRWJNVzlSNEtHaEZV?=
 =?utf-8?B?ZFJGMjRjZ2ZYTlJjZmVBVzRTNnFsSE5IVVRIWm9LQnBnd0dwa1hGcUUza01o?=
 =?utf-8?B?cW4xSHRleTBkWGVnaElVdVZKMUpPQUtFZkx2NVVPdlR4dDBaYzIxSzVJSS9K?=
 =?utf-8?B?WUZCNWlxWWF2M1FoMm4zOHVzOEpQQjFDai9lZGdub29CUzRUMTNVWG5jSlpG?=
 =?utf-8?B?WHpGODJERXVxd1B4dFA1aHJHcUc4Z2pYSVVxQjlIUDFxaVM2eXpRb2xMYkoz?=
 =?utf-8?B?OEtVa2FFSWtqT2tHcHJSWmdId3RDcDNQaXBJK1ZSZXF1WEhaakMrSSs4WkIr?=
 =?utf-8?B?cmsweVR6UlNZS2dUUWUvYlJXQlBSRlBKSlRhb0hLQU82eG1MTTVjbDVuTXlJ?=
 =?utf-8?B?ZmRCd3V1THc4L3VkZkYrTlI0NDB5U0dybS9HMHRXaElCZjZNczJSNlZMTWNS?=
 =?utf-8?B?VCt0N0k2TGtzWUtIU1JhTDc3b21BSmh3MmQ2Tm5GNTNiT1cvcXB2ckZ5cVFT?=
 =?utf-8?B?bnJwKzZVeE9DUDkwRmpvUlF2R3oyWmxUalZaeU1PSHlkVjZDeFZNcm5zdkE1?=
 =?utf-8?B?Zk14UUpndlJ4NDRmQTZVTFJKTS9tanprc1E4L0ZFa0N1N2piVXUxTk5EY1cy?=
 =?utf-8?B?NTdycEF5VEtOdkNpdUxsYWlydXRPdTZrN2w4MkVZcjltaWRKUlU3OUMydU9M?=
 =?utf-8?B?aGx5dW95Q3UwbnIwdndtRmN1cEtIalBWT2wvbWE2YmpwK0I4Nit0L0FyNEZY?=
 =?utf-8?Q?z//nKPwNXpMnGbJbJsUjNaL3F7QOTs=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)(1800799024)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?bEljdjFJajBwTFlETkFGYUhrdU1mOEFHY0k0N3hjNVdscnNZbnFsL1JFTzk5?=
 =?utf-8?B?VkQ3djZUcmYxT283dHlFNGNPTnhNbFBuWDdWUXdhOUVac2hxcXllYkRtTlVO?=
 =?utf-8?B?UVNHdzRjOWRwSWEydkk1YVl0ZStmR0xaOHJaNkVRc2Y0a01jelFlYlFGVlJy?=
 =?utf-8?B?OVVaNWwxL2hUa1hJSlFOY0ZHd0Y1dCthdzRZNG01OXRXa3hHdlJoSjRKNVcz?=
 =?utf-8?B?SDg5d293SEc0Tjl0LzFoaEhJYVlHbUh0T1NLUnhJRW1OMkQ4K1BjYU05SHBE?=
 =?utf-8?B?TGJrdmNtV1VvdHQvTlJHL1JzVEtvV0hEdk1Kbkw5cUp3cGJ3YWhYR2JJUHls?=
 =?utf-8?B?aWRnUFRhK3R6Vk0vYVd6NjJNNWZyeDRCUjhCbjZyTU4zVkVua1krY0NnL0VG?=
 =?utf-8?B?eEVHWEtySytPNG84OXJkRzM4aVNVUUlqK25yZlAzRmV6d0o1eld3ZS9neUp6?=
 =?utf-8?B?MERDOERZS21oTFFGcFh1R1VKQ2liMlRpYmttbS9XRDZyS3RuQlJJQTQ5NFgv?=
 =?utf-8?B?aXFRZ21tR1Z1a0cxYjRNYUhmcit0VDZjN2hJOThGSHYyQkVpbmtEM1NUcHBQ?=
 =?utf-8?B?WHd0Qkx1V0hybktHdmN2cTZteG5WcEFzcWsrM1hLMmpJYStpZDRzbWoxakln?=
 =?utf-8?B?MFFKUEFnK3J2eE9uRkRzMlVyM05ZdHNsMTJOQlg5eHB3SFkwUlp3dVVDV3U0?=
 =?utf-8?B?N1ZTSWxvUmVWK29FR3lOSnVUZGliTHBhR0RnVHplWHFTbHJTYlRZRjJZRW9E?=
 =?utf-8?B?VEc4T2tibnloUDE5WW9iVUU5M2huU0k1amxkbnRmZmlQTWZscEw4YjlqdG9S?=
 =?utf-8?B?NG50OW9XcUlxME5oa1UxVGhGbEVhWnlSTStRKzNHTzFZMFVhWk1QOUhjazdu?=
 =?utf-8?B?dzZTa3JFNkNwbjRHaWZmN1hBWXY0dm9rYXBBSFduZ2NMa1hDZ1JZY1ZRS3dw?=
 =?utf-8?B?dEhRTzRhVWNSbVpxaXJyMElaajFQL3lxUWoydVl1R09mbDNUOTZvZVpDZVdl?=
 =?utf-8?B?M1pIbThWcFBQOU9PSnZTN3R6SDR6ZU5PSDMvb0ZTcmlDSWUzOG8ySFBoYjB5?=
 =?utf-8?B?OXk0TFRaWEtYaFRuUXNGcFROYnNUQ29Rak9wZ2tsNGxXNUwzdEZQTDdxajVv?=
 =?utf-8?B?QUx6ODF4UVlJWEdVME1XemxjeFZ5Z3RnMUVSQW43WUhuaksxUWZhZytwdkVP?=
 =?utf-8?B?SXE1c1ZVY0RoQXZMLzlPTit4cFJUVUtTWHNNdWlaVFl5ZmpmQVlUSHcwTkFr?=
 =?utf-8?B?bm85YytGd3IxT3lkMlltM1drdWVXTXFvcUxqNElpaU5BUG9XYVVKRzVtdzV1?=
 =?utf-8?B?dTBveHM4Nk9zUXFXYzIveVhlZm5SM1FKU0lUQlRZZzQ1cDFrRDZmSVBnemRX?=
 =?utf-8?B?RWcwQXNpeW5yMXlGWEtTSlBTMFVETnBPWUFKTXJ1R2F6cFBldWQwTUhOc2lR?=
 =?utf-8?B?S1c2Kyt3WlJIbUM2RHRLaXJaLy9uV3BrQ0FXR1I2RFhURmRSbzMxRi9TaEZG?=
 =?utf-8?B?OTN2eXQwYkpuR0hxNHJiZ0U0bmNsbk1zdjlPN1I3RHZhT2ZHNGQ1UGFHRlEr?=
 =?utf-8?B?SlBwWnY2WFgxQ2pMK2tqYndla1NoTlprQ2xCeUZ4Qkt0U0J2V1ZrUE5jdDZy?=
 =?utf-8?B?dnZhWjZjb01LWDUwUy96YjFEcGdEMTN0S3JBekVaeVk0aUIxL3JUeHF6eDhn?=
 =?utf-8?B?UU13c1ZRVGNvclRJNmUyNG1iQ2grMWQvMWtubHFVZ1FGMjN6UTFHbGMzeUp0?=
 =?utf-8?B?Q2VJUjZwL21QdnlWQ3ZFSThKdUtWUFRtZHJBL05QMTJlTXRNWnV6UW9xOERY?=
 =?utf-8?B?OExoRDR2Z2lpZThwYlNtNlczTEl3eEUrbnRuam1JdHpJWU9PSDVhSHNYcC9p?=
 =?utf-8?B?L1B1R3VOWEpyTHhZamhKTXlMZlU1N0o2dHFuM0trYzZURXo4WlRJSUZkSjlx?=
 =?utf-8?B?K25CMG1TSzNlbzlEdTU2SUhKSTB5d3Niemd4SlF2NExkT21yaW9BRmdEVkZY?=
 =?utf-8?B?VDROR01aODBMK0Z3a3NvUmM2NVlvZm9vQWtCL1kwR0dSWXgyTzMyblVranZT?=
 =?utf-8?B?TWV3aVozeWo3d25xdng1VlB6SURORkNTMFQ1RFdqMWFtZE5HbEp5b1NUR3hz?=
 =?utf-8?Q?uV0U=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <9A961BD402D9E341B1F771F29EA83F42@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: b1ddb4a3-fa3c-454a-11d8-08dd7cae3e05
X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Apr 2025 06:16:36.3105
 (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: bLWDZ08m2gCp9HjqchHd3K+Q0tTz0LY2MZI6rYZ4tdk9AXA2kUstp/RwDzB/L9wEa7vuVcJ4fOVFiFp72DIxDQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS4PR12MB9682

T24gMjAyNS80LzE1IDIxOjI5LCBSb2dlciBQYXUgTW9ubsOpIHdyb3RlOg0KPiBPbiBXZWQsIEFw
ciAwOSwgMjAyNSBhdCAwMjo0NToyN1BNICswODAwLCBKaXFpYW4gQ2hlbiB3cm90ZToNCj4+IFdo
ZW4gaW5pdF9tc2koKSBmYWlscywgdGhlIHByZXZpb3VzIG5ldyBjaGFuZ2VzIHdpbGwgaGlkZSBN
U0kNCj4+IGNhcGFiaWxpdHksIGl0IGNhbid0IHJlbHkgb24gdnBjaV9kZWFzc2lnbl9kZXZpY2Uo
KSB0byByZW1vdmUNCj4+IGFsbCBNU0kgcmVsYXRlZCByZXNvdXJjZXMgYW55bW9yZSwgdGhvc2Ug
cmVzb3VyY2VzIG11c3QgYmUNCj4+IGNsZWFuZWQgdXAgaW4gZmFpbHVyZSBwYXRoIG9mIGluaXRf
bXNpLg0KPj4NCj4+IFRvIGRvIHRoYXQsIGFkZCBhIG5ldyBmdW5jdGlvbiB0byBmcmVlIE1TSSBy
ZXNvdXJjZXMuDQo+Pg0KPj4gU2lnbmVkLW9mZi1ieTogSmlxaWFuIENoZW4gPEppcWlhbi5DaGVu
QGFtZC5jb20+DQo+PiAtLS0NCj4+IGNjOiAiUm9nZXIgUGF1IE1vbm7DqSIgPHJvZ2VyLnBhdUBj
aXRyaXguY29tPg0KPj4gLS0tDQo+PiB2MS0+djIgY2hhbmdlczoNCj4+ICogQWRkZWQgYSBuZXcg
ZnVuY3Rpb24gZmluaV9tc2kgdG8gZnJlZSBhbGwgTVNJIHJlc291cmNlcyBpbnN0ZWFkIG9mIHVz
aW5nIGFuIGFycmF5IHRvIHJlY29yZCByZWdpc3RlcmVkIHJlZ2lzdGVycy4NCj4+IC0tLQ0KPj4g
IHhlbi9kcml2ZXJzL3ZwY2kvbXNpLmMgfCA0NyArKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKystLS0tLS0tLS0NCj4+ICAxIGZpbGUgY2hhbmdlZCwgMzcgaW5zZXJ0aW9ucygrKSwgMTAg
ZGVsZXRpb25zKC0pDQo+Pg0KPj4gZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3ZwY2kvbXNpLmMg
Yi94ZW4vZHJpdmVycy92cGNpL21zaS5jDQo+PiBpbmRleCBjYTg5YWU5YjljMjIuLjQ4YTQ2NmRi
YTBlZiAxMDA2NDQNCj4+IC0tLSBhL3hlbi9kcml2ZXJzL3ZwY2kvbXNpLmMNCj4+ICsrKyBiL3hl
bi9kcml2ZXJzL3ZwY2kvbXNpLmMNCj4+IEBAIC0xOTMsNiArMTkzLDMzIEBAIHN0YXRpYyB2b2lk
IGNmX2NoZWNrIG1hc2tfd3JpdGUoDQo+PiAgICAgIG1zaS0+bWFzayA9IHZhbDsNCj4+ICB9DQo+
PiAgDQo+PiArLyogMTIgaXMgc2l6ZSBvZiBNU0kgc3RydWN0dXJlIGZvciAzMi1iaXQgTWVzc2Fn
ZSBBZGRyZXNzIHdpdGhvdXQgUFZNICovDQo+PiArI2RlZmluZSBNU0lfU1RSVUNUVVJFX1NJWkVf
MzIgMTINCj4gDQo+IEknbSBjb25mdXNlZCBieSB0aGlzLiAgVGhlIG1pbmltdW0gc2l6ZSBvZiB0
aGUgY2FwYWJpbGl0eSBpcyA0IGJ5dGVzDQo+IGZvciB0aGUgY2FwYWJpbGl0eSBwb2ludGVyLCBw
bHVzIDQgYnl0ZXMgZm9yIHRoZSBtZXNzYWdlIGFkZHJlc3MsDQo+IHBsdXMgMiBieXRlcyBmb3Ig
dGhlIG1lc3NhZ2UgZGF0YS4gIFNvIHRoYXQncyAxMCBieXRlcyBpbiB0b3RhbC4NClRoZSByZW1h
aW4gMiBieXRlcyBpcyBFeHRlbmRlZCBNZXNzYWdlIERhdGEsIFBDSWUgc3BlYyBoYXMgdGhpcyBy
ZWdpc3RlcidzIGRlZmluaXRpb24gZXZlbiB0aG91Z2ggaXQgaXMgb3B0aW9uYWwuDQoNCj4gDQo+
IEkgdGhpbmsgaXQgd291bGQgYmUgYmVzdCBpZiB5b3UgY2FsY3VsYXRlIHRoZSBzaXplIGJhc2Vk
IG9uIHRoZQ0KPiBleGlzdGluZyBtc2lfIG1hY3Jvcy4NCj4gDQo+IGlmICggbWFza2luZyApDQo+
ICAgICBlbmQgPSBtc2lfcGVuZGluZ19iaXRzX3JlZyhtc2lfcG9zLCBhZGRyZXNzNjQpOw0KPiBl
bHNlDQo+ICAgICBlbmQgPSBtc2lfbWFza19iaXRzX3JlZyhtc2lfcG9zLCBhZGRyZXNzNjQpIC0g
MjsNCj4gDQo+IHNpemUgPSBlbmQgLSBtc2lfY29udHJvbF9yZWcobXNpX3Bvcyk7DQpUaGFua3Ms
IEkgd2lsbCBjaGFuZ2UgdG8gdGhpcyBpbiBuZXh0IHZlcnNpb24uDQoNCj4gDQo+PiArDQo+PiAr
c3RhdGljIHZvaWQgZmluaV9tc2koc3RydWN0IHBjaV9kZXYgKnBkZXYpDQo+PiArew0KPj4gKyAg
ICB1bnNpZ25lZCBpbnQgc2l6ZSA9IE1TSV9TVFJVQ1RVUkVfU0laRV8zMjsNCj4+ICsNCj4+ICsg
ICAgaWYgKCAhcGRldi0+dnBjaS0+bXNpICkNCj4+ICsgICAgICAgIHJldHVybjsNCj4+ICsNCj4+
ICsgICAgaWYgKCBwZGV2LT52cGNpLT5tc2ktPmFkZHJlc3M2NCApDQo+PiArICAgICAgICBzaXpl
ICs9IDQ7DQo+PiArICAgIGlmICggcGRldi0+dnBjaS0+bXNpLT5tYXNraW5nICkNCj4+ICsgICAg
ICAgIHNpemUgKz0gNDsNCj4+ICsNCj4+ICsgICAgLyoNCj4+ICsgICAgICogUmVtb3ZlIGFsbCBw
b3NzaWJsZSByZWdpc3RlcmVkIHJlZ2lzdGVycyBleGNlcHQgY2FwYWJpbGl0eSBJRA0KPj4gKyAg
ICAgKiByZWdpc3RlciBhbmQgbmV4dCBjYXBhYmlsaXR5IHBvaW50ZXIgcmVnaXN0ZXIsIHdoaWNo
IHdpbGwgYmUNCj4+ICsgICAgICogcmVtb3ZlZCBpbiBtYXNrIGZ1bmN0aW9uLg0KPj4gKyAgICAg
Km1zaV9tYXNrX2JpdHNfcmVnLw0KPj4gKyAgICB2cGNpX3JlbW92ZV9yZWdpc3RlcnMocGRldi0+
dnBjaSwNCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIG1zaV9jb250cm9sX3JlZyhwZGV2
LT5tc2lfcG9zKSwNCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemUgLSBQQ0lfTVNJ
X0ZMQUdTKTsNCj4+ICsgICAgeGZyZWUocGRldi0+dnBjaS0+bXNpKTsNCj4+ICsgICAgcGRldi0+
dnBjaS0+bXNpID0gTlVMTDsNCj4+ICt9DQo+PiArDQo+PiAgc3RhdGljIGludCBjZl9jaGVjayBp
bml0X21zaShzdHJ1Y3QgcGNpX2RldiAqcGRldikNCj4+ICB7DQo+PiAgICAgIHVuc2lnbmVkIGlu
dCBwb3MgPSBwZGV2LT5tc2lfcG9zOw0KPj4gQEAgLTIwOSwxMiArMjM2LDcgQEAgc3RhdGljIGlu
dCBjZl9jaGVjayBpbml0X21zaShzdHJ1Y3QgcGNpX2RldiAqcGRldikNCj4+ICAgICAgcmV0ID0g
dnBjaV9hZGRfcmVnaXN0ZXIocGRldi0+dnBjaSwgY29udHJvbF9yZWFkLCBjb250cm9sX3dyaXRl
LA0KPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2lfY29udHJvbF9yZWcocG9zKSwg
MiwgcGRldi0+dnBjaS0+bXNpKTsNCj4+ICAgICAgaWYgKCByZXQgKQ0KPj4gLSAgICAgICAgLyoN
Cj4+IC0gICAgICAgICAqIE5COiB0aGVyZSdzIG5vIG5lZWQgdG8gZnJlZSB0aGUgbXNpIHN0cnVj
dCBvciByZW1vdmUgdGhlIHJlZ2lzdGVyDQo+PiAtICAgICAgICAgKiBoYW5kbGVycyBmb3JtIHRo
ZSBjb25maWcgc3BhY2UsIHRoZSBjYWxsZXIgd2lsbCB0YWtlIGNhcmUgb2YgdGhlDQo+PiAtICAg
ICAgICAgKiBjbGVhbnVwLg0KPj4gLSAgICAgICAgICovDQo+PiAtICAgICAgICByZXR1cm4gcmV0
Ow0KPj4gKyAgICAgICAgZ290byBmYWlsOw0KPj4gIA0KPj4gICAgICAvKiBHZXQgdGhlIG1heGlt
dW0gbnVtYmVyIG9mIHZlY3RvcnMgdGhlIGRldmljZSBzdXBwb3J0cy4gKi8NCj4+ICAgICAgY29u
dHJvbCA9IHBjaV9jb25mX3JlYWQxNihwZGV2LT5zYmRmLCBtc2lfY29udHJvbF9yZWcocG9zKSk7
DQo+PiBAQCAtMjM3LDIwICsyNTksMjAgQEAgc3RhdGljIGludCBjZl9jaGVjayBpbml0X21zaShz
dHJ1Y3QgcGNpX2RldiAqcGRldikNCj4+ICAgICAgcmV0ID0gdnBjaV9hZGRfcmVnaXN0ZXIocGRl
di0+dnBjaSwgYWRkcmVzc19yZWFkLCBhZGRyZXNzX3dyaXRlLA0KPj4gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBtc2lfbG93ZXJfYWRkcmVzc19yZWcocG9zKSwgNCwgcGRldi0+dnBjaS0+
bXNpKTsNCj4+ICAgICAgaWYgKCByZXQgKQ0KPj4gLSAgICAgICAgcmV0dXJuIHJldDsNCj4+ICsg
ICAgICAgIGdvdG8gZmFpbDsNCj4+ICANCj4+ICAgICAgcmV0ID0gdnBjaV9hZGRfcmVnaXN0ZXIo
cGRldi0+dnBjaSwgZGF0YV9yZWFkLCBkYXRhX3dyaXRlLA0KPj4gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBtc2lfZGF0YV9yZWcocG9zLCBwZGV2LT52cGNpLT5tc2ktPmFkZHJlc3M2NCks
IDIsDQo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBkZXYtPnZwY2ktPm1zaSk7DQo+
PiAgICAgIGlmICggcmV0ICkNCj4+IC0gICAgICAgIHJldHVybiByZXQ7DQo+PiArICAgICAgICBn
b3RvIGZhaWw7DQo+PiAgDQo+PiAgICAgIGlmICggcGRldi0+dnBjaS0+bXNpLT5hZGRyZXNzNjQg
KQ0KPj4gICAgICB7DQo+PiAgICAgICAgICByZXQgPSB2cGNpX2FkZF9yZWdpc3RlcihwZGV2LT52
cGNpLCBhZGRyZXNzX2hpX3JlYWQsIGFkZHJlc3NfaGlfd3JpdGUsDQo+PiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBtc2lfdXBwZXJfYWRkcmVzc19yZWcocG9zKSwgNCwgcGRldi0+
dnBjaS0+bXNpKTsNCj4+ICAgICAgICAgIGlmICggcmV0ICkNCj4+IC0gICAgICAgICAgICByZXR1
cm4gcmV0Ow0KPj4gKyAgICAgICAgICAgIGdvdG8gZmFpbDsNCj4+ICAgICAgfQ0KPj4gIA0KPj4g
ICAgICBpZiAoIHBkZXYtPnZwY2ktPm1zaS0+bWFza2luZyApDQo+PiBAQCAtMjYwLDcgKzI4Miw3
IEBAIHN0YXRpYyBpbnQgY2ZfY2hlY2sgaW5pdF9tc2koc3RydWN0IHBjaV9kZXYgKnBkZXYpDQo+
PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZGV2
LT52cGNpLT5tc2ktPmFkZHJlc3M2NCksDQo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA0LCBwZGV2LT52cGNpLT5tc2kpOw0KPj4gICAgICAgICAgaWYgKCByZXQgKQ0KPj4gLSAg
ICAgICAgICAgIHJldHVybiByZXQ7DQo+PiArICAgICAgICAgICAgZ290byBmYWlsOw0KPj4gICAg
ICAgICAgLyoNCj4+ICAgICAgICAgICAqIEZJWE1FOiBkbyBub3QgYWRkIGFueSBoYW5kbGVyIGZv
ciB0aGUgcGVuZGluZyBiaXRzIGZvciB0aGUgaGFyZHdhcmUNCj4+ICAgICAgICAgICAqIGRvbWFp
biwgd2hpY2ggbWVhbnMgZGlyZWN0IGFjY2Vzcy4gVGhpcyB3aWxsIGJlIHJldmlzaXRlZCB3aGVu
DQo+PiBAQCAtMjY5LDYgKzI5MSwxMSBAQCBzdGF0aWMgaW50IGNmX2NoZWNrIGluaXRfbXNpKHN0
cnVjdCBwY2lfZGV2ICpwZGV2KQ0KPj4gICAgICB9DQo+PiAgDQo+PiAgICAgIHJldHVybiAwOw0K
Pj4gKw0KPj4gKyBmYWlsOg0KPj4gKyAgICBmaW5pX21zaShwZGV2KTsNCj4+ICsNCj4+ICsgICAg
cmV0dXJuIHJldDsNCj4+ICB9DQo+PiAgUkVHSVNURVJfVlBDSV9MRUdBQ1lfQ0FQKFBDSV9DQVBf
SURfTVNJLCBpbml0X21zaSk7DQo+IA0KPiBJIHdvbmRlciBpZiB0aGUgZmluaV9tc2kgc2hvdWxk
IGJlIHJlZmVyZW5jZWQgaW4NCj4gUkVHSVNURVJfVlBDSV97RVhURU5ERUQsTEVHQUNZfV9DQVAo
KSwgc28gdGhhdCB0aGUgY2FsbGVyIG9mDQo+IGluaXRfbXNpKCkgY2FuIGNhbGwgZmluaV9tc2ko
KSBvbiBmYWlsdXJlIGFuZCB0aHVzIGF2b2lkIGFsbCB0aG9zZQ0KPiBmYWlsIGhvb2tzIGFuZCBs
YWJlbHMsIGFzIHRoZSBjYWxsZXIgY2FuIHRha2UgY2FyZSBvZiB0aGUgY2xlYW51cC4NCkdvdCBp
dC4gSSB3aWxsIGFkZCBhIGhvb2sgZm9yIGZpbmlfeCBmdW5jdGlvbi4NCg0KPiANCj4gVGhhbmtz
LCBSb2dlci4NCg0KLS0gDQpCZXN0IHJlZ2FyZHMsDQpKaXFpYW4gQ2hlbi4NCg==


From xen-devel-bounces@lists.xenproject.org Wed Apr 16 06:21:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 06:21:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.955099.1348929 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4w8m-0007Bk-AN; Wed, 16 Apr 2025 06:20:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 955099.1348929; Wed, 16 Apr 2025 06: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 1u4w8m-0007Bd-7d; Wed, 16 Apr 2025 06:20:56 +0000
Received: by outflank-mailman (input) for mailman id 955099;
 Wed, 16 Apr 2025 06:20: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=2j5z=XC=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1u4w8k-0007BX-QB
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 06:20:54 +0000
Received: from NAM12-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam12on20625.outbound.protection.outlook.com
 [2a01:111:f403:2417::625])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f279f442-1a8a-11f0-9eaf-5ba50f476ded;
 Wed, 16 Apr 2025 08:20:53 +0200 (CEST)
Received: from BL1PR12MB5849.namprd12.prod.outlook.com (2603:10b6:208:384::18)
 by DS4PR12MB9682.namprd12.prod.outlook.com (2603:10b6:8:27f::11) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.35; Wed, 16 Apr
 2025 06:20:50 +0000
Received: from BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::b77f:9333:3a5a:d285]) by BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::b77f:9333:3a5a:d285%4]) with mapi id 15.20.8655.022; Wed, 16 Apr 2025
 06:20: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: f279f442-1a8a-11f0-9eaf-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=OTiys+6W4Bb7dHEAaseXG0bFx2+SnQnow8EUbuiGpQk1U5lgNQZULak3ZgjRVAJrr9liPdC8w70A1PqbO3AHs5E9avzi+Srs9A+f5vlr5OuyLVCCyfG3aaBd652D4oL5Lar7Z4gEGr6Abtg5MvYKaBWjpghlO/HlfHnHn/vQN8Xq+5whb2DFp8Pv2ZyslmVoI+bTZZvPMGbqj2kBkIcADQLEZjmgIv5efCdEvjVpm1zwTM1c35uBVo3Qk3GV8GUIFlEajDYJxxH6dl/eMjd0He28JKkz4Oz5pGQWkTgVpR/uuyK3aIKutrjcgDOpWEJhU1gRy/1tJEBz5j6yRzbFIw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=l7KoVPMJGj+TeGrFibLZ8EOb1lUH/KODT0U82ClKO7s=;
 b=pqwbBBqPFkfBfesnn8TYyDMNk+/Nj7yFGjtXJWkr/G/lZEwmUvw7AMJ20mxHaJ5a0aC4mEsorxVG7ZugA744i0HCq+pnA1R2QBFoKOjKZjlyAZ1ssdkDY1+iH+aUOXCqFBXyll6sGNxvWUy/diZCGt/e00NKUq4vExoUgmSIguhKgZ0S9aZ4oKT3m0ivxsSR7LRKSft/s7lW91VdnZE7M9KdaeIROgJCeYg7pBqaILv6gW71FaZw3utfQn5I8RUwxdUamPhshKFu00uDmDI3WI4gRvqJcuAxWcEd/ZySMEaNhCREgVvQVzm2HHuhdvSqbh9qE4d92B8S9swA7AUImA==
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=l7KoVPMJGj+TeGrFibLZ8EOb1lUH/KODT0U82ClKO7s=;
 b=tdu3GKVCOQKw4kH3XJaASAWApoSksdqHrINBfgACfmHHHPHUC64ox8FmR/G4kEWo6LjuvGnXsYUMOFxnZXiWeNLNVI3wS6EGFApkvf823FsyJw+N/vCm4tW52NuNwuiFgrhUdJ5d7TDHHlPBN7Ip6d8IOOM3VzaCtstbcG4a51U=
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>, "Huang,
 Ray" <Ray.Huang@amd.com>, Jan Beulich <jbeulich@suse.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, "Chen, Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [PATCH v2 8/8] vpci/msix: Add function to clean MSIX resources
Thread-Topic: [PATCH v2 8/8] vpci/msix: Add function to clean MSIX resources
Thread-Index: AQHbqRsh+jmpxStIakeU85xhe5CvZrOkxwqAgAGb44A=
Date: Wed, 16 Apr 2025 06:20:50 +0000
Message-ID:
 <BL1PR12MB5849577B78D50821733B6D6BE7BD2@BL1PR12MB5849.namprd12.prod.outlook.com>
References: <20250409064528.405573-1-Jiqian.Chen@amd.com>
 <20250409064528.405573-9-Jiqian.Chen@amd.com> <Z_5i7zZJ7lRjFr7G@macbook.lan>
In-Reply-To: <Z_5i7zZJ7lRjFr7G@macbook.lan>
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.8655.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_|DS4PR12MB9682:EE_
x-ms-office365-filtering-correlation-id: b54e5d31-3bf8-4b22-ef65-08dd7caed571
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?T1RXSjhsWVJOa29aNVRod3Axd3lLSnkwUlRVUElPTHVrRTRvQWZ2aVFNU1pr?=
 =?utf-8?B?d3k5RHZwNm1qTldQYWRDdmk1QWh1aFRGcnV0N0ZlM3dDWjhTN25ZSXlDWDFL?=
 =?utf-8?B?WThMeXNYQ1BMMSsxVCtoTm1wM1RUNzlkdnJvVzJIQnBlU3U3b3lYaGMyMWE0?=
 =?utf-8?B?eFROSlFNYlNBU242VGl5aWs2Q0VQQVdvRUE5WHhnOGRZK3lDUkxnWVRQeDc1?=
 =?utf-8?B?VWV5Sm5QWFJrK0tJWWN4VHg3T1lGMFlrNTVOUTE4MGJiYUtMbUFLcTJGdnNi?=
 =?utf-8?B?Rk8wRDJ4RStTWHNHcWNoQ3J5di9PbnJ2Wk0xSUwrbzhQaXJJY0k2ZWNBRytZ?=
 =?utf-8?B?U1BTa3NSQzlTQWE0SjlsQnNxcHBxM3VDQks5QzMyYjcxVFNjVW8zTHUxaXlE?=
 =?utf-8?B?cG9Cc2N2MjNPcFFmUWt0RDZ5c0hSWjd0eGQzZkZhVlhmak5vUUFsdFM3RzYy?=
 =?utf-8?B?bjVGQ2wyWEo3UzdTTElyTVJnanVHVk52V3BZVVRoMVR2Y0YxV0hDRFFMQzMz?=
 =?utf-8?B?cjZBWk9VK0pZZ204M3l1QkU4dFpmZzFpMmx0cjNZdGVOMDFMT2Y2VXFjbk4v?=
 =?utf-8?B?ZjNyQzlhU1JGRSs4MVBZMmExcUlOaC83dVV2MmJEVmJCUDF0NHIwQWtpVDRj?=
 =?utf-8?B?dUlFV0x6VDVWbnN1QVRiVlBWVFNhalZlQzdRc2M2OUpFVXlYQXpzN01TQTYw?=
 =?utf-8?B?RURsYXgzZ0Y1eDBwM25xM1IwRTZ3MTZ5dUR6djZKTW40azVCNVY4TEoyWllJ?=
 =?utf-8?B?VnNTVDNqTlJ0NlptbVVVa0M2RTd5ZmtHS3VjSkdjRS9SRTZkcDYvL3dlNVJS?=
 =?utf-8?B?TmVWUUJDY3V2SWQvNWlRRllzOVBDVVJKTXBXU2srdi9CeXBuS0ovenZlVits?=
 =?utf-8?B?clFFT1owUC9CMHZ5RkFPakIzcEVUdkhFK0hjOFNyQUwycXdEWDFWWERIakVB?=
 =?utf-8?B?YXlMVGcyZnR2UUZmODVZSlAyQ29zSFpLN1RNV3RGNXkzWEFsT2VKRUdMYUpS?=
 =?utf-8?B?MDg3ZkphaHdVRVJPN3M3dUM0ZU85ZVJSOXdqeE0rWTZtWGZlVFhRcG5JTWMz?=
 =?utf-8?B?Um9RUHJndmhqRHQ1WGxTMWR5dGNJZWM2Wm5VYXk5Wkx4bUpZbi9VSVo0WHQv?=
 =?utf-8?B?TkI5SFo3NHpZb1M2QUxab01KWTE2NkFucGl0azFNcFFZcmVoTWRCcG05cjZG?=
 =?utf-8?B?aDFiQitXVC9Da1ZDNTBlS0h1aEg4bkR1b1dsRHZ3cFlUYlFHTWVOMlJhZHBO?=
 =?utf-8?B?S0FjY09JT0J5aGdkaTVmcGZnYmZ6U2xiZHpkSXVPdi9paWdQSG5iM0tFQnB4?=
 =?utf-8?B?V25TSGh3blZjWnh1N3ZSZXN4T1VYMSt3ZDFaZUQ0T0ZFTnVTZmJ4a1dYMHh4?=
 =?utf-8?B?TTZIa0pKa2J2QjB3RWpHdWptSCswSmVQSUlWZ1VFemJleFcyWWhpNkNOa01y?=
 =?utf-8?B?VC9CT1FqekZGTURQSThSeDdRNjFhbjdGbjF6MEs3Q0pncEVmR1RzakVQUEFm?=
 =?utf-8?B?RjFzRmFtVU5kL3BjSUV0TWhqMmVQb3VkMEJPWTFWelBJOGdxcWt0Q1UrV2Zx?=
 =?utf-8?B?UzJWMEZVaHhJeFRkT0ZhZlkxTDZqdlpreEdOdnljdDVQRUUzanl6ajRqcitT?=
 =?utf-8?B?VlJjbTYyRUNJcTB3a25qclpuY1BOQjNZRDExV2FGK21vS0dvQ1U2SmFpZ2Fl?=
 =?utf-8?B?MnpGcEx4SGl3R2hwRTJWK3dORk5za0lEb1owQk9jbnNlZng2Q0RidFROMzdz?=
 =?utf-8?B?dFBHdFBDaUV1MFhXd1NCenN3MjR3MGptVEpWV2RjRU00c2RTUWNobEhKdFpy?=
 =?utf-8?B?bUc1Zzdoc0huTXk2RDJPVDJrcjdhSkFGVGJvNUxzTGlORDZjSU1LTERta3Iv?=
 =?utf-8?B?d1NvblhXenJ6SlIrYU9KUXYxdWNISEd5dmxobUUzWjlDNUJoMmRTT0tRcXha?=
 =?utf-8?B?TUJ2VVRJYUtEdlAwQ2xhbGliNi9TcGtwaEZ0SlJLa0R6em9GUlgzNjd4elBh?=
 =?utf-8?Q?dgLZzzW7jz9dDobXxzPYDJd8n6X0/I=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)(1800799024)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?NU9CbVVGUUxFRG9NMFVhM1pydGNPUmRNNGdZYkFIU0hNd3FVVUd6by9pUFlU?=
 =?utf-8?B?bVYvckhaaGxvalpjekxkVTIzaFJoK0lNQ2RRR0R3Z1NBZjNVTlowVUp5L2pO?=
 =?utf-8?B?SGxOQVBOaFN6L3NNSyswT0NSV3RGOWtZQXN0WCs0VlpFNVNxTVdPVUNJdE9q?=
 =?utf-8?B?S2g3SXRiUTdlQ0FGWjN5cHJoMkFIR01DWjRTNXZ5QWN6dnB1Nk11MzhLS2hZ?=
 =?utf-8?B?U3o3Y0ozRUhibGdKazMwWmlEZ0JDZGVYUmZiL2IvbVhiVHF6TytEK0twYXlr?=
 =?utf-8?B?OFNpRkwvTWR6dWxYQ2dNcjVoTDlKM1paV1dxNk1RZm12VEpiQy9lemJkUGxu?=
 =?utf-8?B?NTRiWHRoUXpXZnFLOGVkMXhzNkVLcGd2RWtVdGVQNFZVaUN4QittUlR4ZzY1?=
 =?utf-8?B?RUgxYzdwVkkwMmdGdC9QYmxXbmZFSWlJMjZnYjdtUGxmcTNVTkEvdVl5WHI5?=
 =?utf-8?B?ZnAvZC9mZWVtUDNzZklJSFU0bkFQVEFNUmlQT1lUU0g2N0VISlAvTDFkd1I5?=
 =?utf-8?B?Umh6bkNXdFZ2dXovT2wweE5wUmp5V2xITWFnbks5SUtYRXhYcTNJR3RmeTNr?=
 =?utf-8?B?WnNUMkd2cUN3N1hVckUya2puVUdTQ2wwb1k0eDZxMEZPTE5ZWU9pb0pCeGZw?=
 =?utf-8?B?K0ZneStrNVhnWi9iZnp1WldvaGhRRjMraGlTUUU0VUFvalZ4UVR3YmdiU2xW?=
 =?utf-8?B?MnhVU3VQSFFXQUZxRmkxcFVkRWhVMzUvUnBkYU1mV0lmMFhpR3lNQmU3TDdC?=
 =?utf-8?B?MFdzMCtxQmtLVGFaazNrdU5HODVkWXg3WkVCQk44YzYxSXBIaWFwazFGbENz?=
 =?utf-8?B?RUg1Y3prZWZldHpsTlc2V2UxTjNJazZ0WDBaUHJqS3RuUzRyQXhZZlRCV3NP?=
 =?utf-8?B?dEh6cS85dHpqNElWTEw4SXp2WnVURXk1UElzNE5YRXAzT1RwaTFmTTh2ZWx2?=
 =?utf-8?B?Y2xhejBUSUVUcUFzTzhRdUVUV0RTSGM1S3IwZ3daSnFkQWE4a2RGQkhxOG9a?=
 =?utf-8?B?WDBVMWJCY3EwQkVwaVp0c285K1NTbE4vZTg2REIyYlZnZnI2K1dkemJSVWRC?=
 =?utf-8?B?dzJ5M3g3NUlaZ05ScktkRWpWSGU4dmZKa3AvR21Ea0tKalVnKytPalpKb1Jv?=
 =?utf-8?B?YW9SaDRlSWVYMUtHaG0vVGtTL0NkNHhwcFovNGxrdjZMWWJsUmlJVzFXcVF2?=
 =?utf-8?B?YzNobFltQ3IxZytJM2tOczlGN0t2c1F3VGZrazU4M3ZrLzZBTEcyY2ZqTE13?=
 =?utf-8?B?bDhQL3EycXNmY2pFVERFTU5Ub1UrWFJYY0syOGt3RTI2UHRzOEtBNzE5MUI5?=
 =?utf-8?B?TmMyeEZMaGRMQUxlRHB2MlhjNXVZdkEzTDNIaVYrVUdHWlkvT01YMnZzY1V5?=
 =?utf-8?B?Tng3RlBSTW9leWtGeHZyWDlNZkVQRjVqYkpmOUNUeVhHN1N5aVV5STVWcjND?=
 =?utf-8?B?WmlXZXhmRWIzaEtxbHdwcmxZbzlvZ296emR0VU5DK0RjQ015RWtoQzA2RmpU?=
 =?utf-8?B?K0hGemRvUUlzbU1qUU44T2N1aXJQbUNGZE83WXYzSWpvaFI4dVdXdGRORXUr?=
 =?utf-8?B?UGFHaEtNUnU5dElBN0ZKOEFoQktXTXBTd1h0emNJbHdpRVhnTEU3aVFwT01u?=
 =?utf-8?B?c1lmTnhjaXdtcThyOWtvczVXclpyWEN1blZjSTlNeS93akF4YTZjdmpNaEdV?=
 =?utf-8?B?OFBGR1ZCWDk4NlV2MHpZVFR3SDMwQ1hSQkZIK3gzQ0hHeVNSaDhaUFpJN0k2?=
 =?utf-8?B?N1RaRktWZmJLREE4UWdkU3Y0MmxJL29sN0hjNlRpMnljNS8yVjFFaUxwNDdl?=
 =?utf-8?B?S2dHUXQwR3dCOFYvbjc5K0JHSDlKQUo4dFNZRmxkeE01azgxbkhyeDlXRzJt?=
 =?utf-8?B?RzRsMGp2cG1mempFRS9YbGlsYURxc1Q4OHpKWWE1aGs2a0dNOXNXWHJCWWw4?=
 =?utf-8?B?UC9QSWVoRmYxRWVGcUdjMlVjcGxPOUVNdzB2QWFlSWt5aGZka2tHMDBoSmE5?=
 =?utf-8?B?OGhBcStCZHlMeW9nQTJyLzd5cC9wZ0FaZExtWmhCT0hlTTFFUzNUZUF6d2du?=
 =?utf-8?B?bklGRDlmQ0dHa1ViRmlqV2JBaktCSGdMRVR1aVB1dEl2VkoxdCtKckFDTWZz?=
 =?utf-8?Q?l9oM=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <E533D1A8928A4F43AB6B572012C69367@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: b54e5d31-3bf8-4b22-ef65-08dd7caed571
X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Apr 2025 06:20:50.3553
 (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: S8tyYaIozS/WLy+c2MGFkibbNMA2rGE3yeffIV863k6hWp8CCHQtRPKODkMqNEinruvPgpGMulizK7jk7QeErQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS4PR12MB9682

T24gMjAyNS80LzE1IDIxOjQ1LCBSb2dlciBQYXUgTW9ubsOpIHdyb3RlOg0KPiBPbiBXZWQsIEFw
ciAwOSwgMjAyNSBhdCAwMjo0NToyOFBNICswODAwLCBKaXFpYW4gQ2hlbiB3cm90ZTogDQo+PiAr
DQo+PiArICAgIGZvciAoIHVuc2lnbmVkIGludCBpID0gMDsgaSA8IEFSUkFZX1NJWkUodnBjaS0+
bXNpeC0+dGFibGUpOyBpKysgKQ0KPj4gKyAgICAgICAgaWYgKCB2cGNpLT5tc2l4LT50YWJsZVtp
XSApDQo+PiArICAgICAgICAgICAgaW91bm1hcCh2cGNpLT5tc2l4LT50YWJsZVtpXSk7DQo+IA0K
PiBUaGUgTVNJLVggaW5pdCBmdW5jdGlvbiBuZXZlciBtYXBzIHRhYmxlcywgc28gdGhlIGNvZGUg
aGVyZSAoZ2l2ZW4NCj4gaXQncyBjdXJyZW50IHVzYWdlKSB3aWxsIGFsc28gbmV2ZXIgdW5tYXAg
YW55dGhpbmcuICBIb3dldmVyIEkgd291bGQNCj4gYWxzbyBsaWtlIHRvIHVzZSB0aGlzIGNvZGUg
Zm9yIHZQQ0kgZGVhc3NpbmcsIGF0IHdoaWNoIHBvaW50IHRoZSBsb2dpYw0KPiB3aWxsIGdldCB1
c2VkLg0KU28sIEkgc3RpbGwgbmVlZCB0byBrZWVwIHRoaXMgcGFydCwgcmlnaHQ/DQoNCj4gDQo+
IFRoYW5rcywgUm9nZXIuDQoNCi0tIA0KQmVzdCByZWdhcmRzLA0KSmlxaWFuIENoZW4uDQo=


From xen-devel-bounces@lists.xenproject.org Wed Apr 16 06:28:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 06:28:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.955110.1348939 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4wGE-0007zz-2Z; Wed, 16 Apr 2025 06:28:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 955110.1348939; Wed, 16 Apr 2025 06: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 1u4wGD-0007zs-Tn; Wed, 16 Apr 2025 06:28:37 +0000
Received: by outflank-mailman (input) for mailman id 955110;
 Wed, 16 Apr 2025 06:28: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=1z0E=XC=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u4wGB-0007zm-Sd
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 06:28:35 +0000
Received: from mail-24416.protonmail.ch (mail-24416.protonmail.ch
 [109.224.244.16]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 051939e3-1a8c-11f0-9ffb-bf95429c2676;
 Wed, 16 Apr 2025 08:28:33 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 051939e3-1a8c-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1744784911; x=1745044111;
	bh=pozggGn/cAaUrR+SMN/NBt2AGHp2+SpEwaDkpRZpxDU=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=hAa4x1T3rj46qZXBkzkB0fVbRDPTtn8NWTbn6RI1C+ugP0SxjPC+vYslzSU3ma+9S
	 /4oMYbrjNHj85kRs5fZkSFhiPvMjZTnOLk1nQjAcxMJa8m4kCOl6YkuTv1ax1jq1nQ
	 3ByHxwhC1gpRR1iTTF63xlMooTkvNENYE80NYUN2sKrlpv6WIMVQ44OOuWxWbejx/h
	 iv/Ftqz1N2z6XvCRkioWn+/YTiJg7UXtIkKIh0/076WgJuKgjas4vEUAFFtSAkDz+N
	 CnrGbJ77A7eS4f/WelN5uiCHOoSz0KPz/KFLqe3bL03fT2dz/QKYvZ7ofOXInbqh9j
	 6llp4MqTwOkOw==
Date: Wed, 16 Apr 2025 06:28:28 +0000
To: Roger Pau Monne <roger.pau@citrix.com>
From: dmkhn@proton.me
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH v2 1/4] xen/io: provide helpers for multi size MMIO accesses
Message-ID: <Z/9OCERpCSNmjuGX@starscream>
In-Reply-To: <20250415153246.81688-2-roger.pau@citrix.com>
References: <20250415153246.81688-1-roger.pau@citrix.com> <20250415153246.81688-2-roger.pau@citrix.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 7e3068fb5f2ad8f88a56560a93eae193fae9157e
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Tue, Apr 15, 2025 at 05:32:43PM +0200, Roger Pau Monne wrote:
> Several handlers have the same necessity of reading or writing from or to
> an MMIO region using 1, 2, 4 or 8 bytes accesses.  So far this has been
> open-coded in the function itself.  Instead provide a new set of handlers
> that encapsulate the accesses.
>=20
> Since the added helpers are not architecture specific, introduce a new
> generic io.h header.
>=20
> No functional change intended.
>=20
> Signed-off-by: Roger Pau Monn=C3=A9 <roger.pau@citrix.com>

Reviewed-by: Denis Mukhin <dmukhin@ford.com>

> ---
> Changes since v1:
>  - Limit {read,write}q() to 64bit architectures.
>  - Always have a default case in switch statement.
> ---
>  xen/arch/x86/hvm/vmsi.c | 47 ++--------------------------
>  xen/arch/x86/mm.c       | 32 +++++--------------
>  xen/drivers/vpci/msix.c | 47 ++--------------------------
>  xen/include/xen/io.h    | 68 +++++++++++++++++++++++++++++++++++++++++
>  4 files changed, 81 insertions(+), 113 deletions(-)
>  create mode 100644 xen/include/xen/io.h
>=20
> diff --git a/xen/arch/x86/hvm/vmsi.c b/xen/arch/x86/hvm/vmsi.c
> index fd83abb929ec..61b89834d97d 100644
> --- a/xen/arch/x86/hvm/vmsi.c
> +++ b/xen/arch/x86/hvm/vmsi.c
> @@ -24,6 +24,7 @@
>   * Will be merged it with virtual IOAPIC logic, since most is the same
>  */
>=20
> +#include <xen/io.h>
>  #include <xen/types.h>
>  #include <xen/mm.h>
>  #include <xen/xmalloc.h>
> @@ -304,28 +305,7 @@ static void adjacent_read(
>=20
>      hwaddr =3D fix_to_virt(fixmap_idx) + PAGE_OFFSET(address);
>=20
> -    switch ( len )
> -    {
> -    case 1:
> -        *pval =3D readb(hwaddr);
> -        break;
> -
> -    case 2:
> -        *pval =3D readw(hwaddr);
> -        break;
> -
> -    case 4:
> -        *pval =3D readl(hwaddr);
> -        break;
> -
> -    case 8:
> -        *pval =3D readq(hwaddr);
> -        break;
> -
> -    default:
> -        ASSERT_UNREACHABLE();
> -        break;
> -    }
> +    *pval =3D read_mmio(hwaddr, len);
>  }
>=20
>  static void adjacent_write(
> @@ -344,28 +324,7 @@ static void adjacent_write(
>=20
>      hwaddr =3D fix_to_virt(fixmap_idx) + PAGE_OFFSET(address);
>=20
> -    switch ( len )
> -    {
> -    case 1:
> -        writeb(val, hwaddr);
> -        break;
> -
> -    case 2:
> -        writew(val, hwaddr);
> -        break;
> -
> -    case 4:
> -        writel(val, hwaddr);
> -        break;
> -
> -    case 8:
> -        writeq(val, hwaddr);
> -        break;
> -
> -    default:
> -        ASSERT_UNREACHABLE();
> -        break;
> -    }
> +    write_mmio(hwaddr, val, len);
>  }
>=20
>  static int cf_check msixtbl_read(
> diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
> index 1cf236516789..989e62e7ce6f 100644
> --- a/xen/arch/x86/mm.c
> +++ b/xen/arch/x86/mm.c
> @@ -95,6 +95,7 @@
>  #include <xen/guest_access.h>
>  #include <xen/hypercall.h>
>  #include <xen/init.h>
> +#include <xen/io.h>
>  #include <xen/iocap.h>
>  #include <xen/ioreq.h>
>  #include <xen/irq.h>
> @@ -116,7 +117,6 @@
>  #include <asm/flushtlb.h>
>  #include <asm/guest.h>
>  #include <asm/idt.h>
> -#include <asm/io.h>
>  #include <asm/io_apic.h>
>  #include <asm/ldt.h>
>  #include <asm/mem_sharing.h>
> @@ -5102,7 +5102,7 @@ static void __iomem *subpage_mmio_map_page(
>  static void subpage_mmio_write_emulate(
>      mfn_t mfn,
>      unsigned int offset,
> -    const void *data,
> +    unsigned long data,
>      unsigned int len)
>  {
>      struct subpage_ro_range *entry;
> @@ -5115,7 +5115,6 @@ static void subpage_mmio_write_emulate(
>=20
>      if ( test_bit(offset / MMIO_RO_SUBPAGE_GRAN, entry->ro_elems) )
>      {
> - write_ignored:
>          gprintk(XENLOG_WARNING,
>                  "ignoring write to R/O MMIO 0x%"PRI_mfn"%03x len %u\n",
>                  mfn_x(mfn), offset, len);
> @@ -5131,26 +5130,7 @@ static void subpage_mmio_write_emulate(
>          return;
>      }
>=20
> -    addr +=3D offset;
> -    switch ( len )
> -    {
> -    case 1:
> -        writeb(*(const uint8_t*)data, addr);
> -        break;
> -    case 2:
> -        writew(*(const uint16_t*)data, addr);
> -        break;
> -    case 4:
> -        writel(*(const uint32_t*)data, addr);
> -        break;
> -    case 8:
> -        writeq(*(const uint64_t*)data, addr);
> -        break;
> -    default:
> -        /* mmio_ro_emulated_write() already validated the size */
> -        ASSERT_UNREACHABLE();
> -        goto write_ignored;
> -    }
> +    write_mmio(addr + offset, data, len);
>  }
>=20
>  #ifdef CONFIG_HVM
> @@ -5185,18 +5165,20 @@ int cf_check mmio_ro_emulated_write(
>      struct x86_emulate_ctxt *ctxt)
>  {
>      struct mmio_ro_emulate_ctxt *mmio_ro_ctxt =3D ctxt->data;
> +    unsigned long data =3D 0;
>=20
>      /* Only allow naturally-aligned stores at the original %cr2 address.=
 */
>      if ( ((bytes | offset) & (bytes - 1)) || !bytes ||
> -         offset !=3D mmio_ro_ctxt->cr2 )
> +         offset !=3D mmio_ro_ctxt->cr2 || bytes > sizeof(data) )
>      {
>          gdprintk(XENLOG_WARNING, "bad access (cr2=3D%lx, addr=3D%lx, byt=
es=3D%u)\n",
>                  mmio_ro_ctxt->cr2, offset, bytes);
>          return X86EMUL_UNHANDLEABLE;
>      }
>=20
> +    memcpy(&data, p_data, bytes);
>      subpage_mmio_write_emulate(mmio_ro_ctxt->mfn, PAGE_OFFSET(offset),
> -                               p_data, bytes);
> +                               data, bytes);
>=20
>      return X86EMUL_OKAY;
>  }
> diff --git a/xen/drivers/vpci/msix.c b/xen/drivers/vpci/msix.c
> index 6bd8c55bb48e..6455f2a03a01 100644
> --- a/xen/drivers/vpci/msix.c
> +++ b/xen/drivers/vpci/msix.c
> @@ -17,6 +17,7 @@
>   * License along with this program; If not, see <http://www.gnu.org/lice=
nses/>.
>   */
>=20
> +#include <xen/io.h>
>  #include <xen/sched.h>
>  #include <xen/vpci.h>
>=20
> @@ -344,28 +345,7 @@ static int adjacent_read(const struct domain *d, con=
st struct vpci_msix *msix,
>          return X86EMUL_OKAY;
>      }
>=20
> -    switch ( len )
> -    {
> -    case 1:
> -        *data =3D readb(mem + PAGE_OFFSET(addr));
> -        break;
> -
> -    case 2:
> -        *data =3D readw(mem + PAGE_OFFSET(addr));
> -        break;
> -
> -    case 4:
> -        *data =3D readl(mem + PAGE_OFFSET(addr));
> -        break;
> -
> -    case 8:
> -        *data =3D readq(mem + PAGE_OFFSET(addr));
> -        break;
> -
> -    default:
> -        ASSERT_UNREACHABLE();
> -        break;
> -    }
> +    *data =3D read_mmio(mem + PAGE_OFFSET(addr), len);
>      spin_unlock(&vpci->lock);
>=20
>      return X86EMUL_OKAY;
> @@ -493,28 +473,7 @@ static int adjacent_write(const struct domain *d, co=
nst struct vpci_msix *msix,
>          return X86EMUL_OKAY;
>      }
>=20
> -    switch ( len )
> -    {
> -    case 1:
> -        writeb(data, mem + PAGE_OFFSET(addr));
> -        break;
> -
> -    case 2:
> -        writew(data, mem + PAGE_OFFSET(addr));
> -        break;
> -
> -    case 4:
> -        writel(data, mem + PAGE_OFFSET(addr));
> -        break;
> -
> -    case 8:
> -        writeq(data, mem + PAGE_OFFSET(addr));
> -        break;
> -
> -    default:
> -        ASSERT_UNREACHABLE();
> -        break;
> -    }
> +    write_mmio(mem + PAGE_OFFSET(addr), data, len);
>      spin_unlock(&vpci->lock);
>=20
>      return X86EMUL_OKAY;
> diff --git a/xen/include/xen/io.h b/xen/include/xen/io.h
> new file mode 100644
> index 000000000000..4495a04c403e
> --- /dev/null
> +++ b/xen/include/xen/io.h
> @@ -0,0 +1,68 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +/*
> + * IO related routines.
> + *
> + * Copyright (c) 2025 Cloud Software Group
> + */
> +#ifndef XEN_IO_H
> +#define XEN_IO_H
> +
> +#include <xen/bug.h>
> +
> +#include <asm/io.h>
> +
> +static inline unsigned long read_mmio(const volatile void __iomem *mem,
> +                                      unsigned int size)
> +{
> +    switch ( size )
> +    {
> +    case 1:
> +        return readb(mem);
> +
> +    case 2:
> +        return readw(mem);
> +
> +    case 4:
> +        return readl(mem);
> +
> +#ifdef CONFIG_64BIT
> +    case 8:
> +        return readq(mem);
> +#endif
> +
> +    default:
> +        ASSERT_UNREACHABLE();
> +        return ~0UL;
> +    }
> +}
> +
> +static inline void write_mmio(volatile void __iomem *mem, unsigned long =
data,
> +                              unsigned int size)
> +{
> +    switch ( size )
> +    {
> +    case 1:
> +        writeb(data, mem);
> +        break;
> +
> +    case 2:
> +        writew(data, mem);
> +        break;
> +
> +    case 4:
> +        writel(data, mem);
> +        break;
> +
> +#ifdef CONFIG_64BIT
> +    case 8:
> +        writeq(data, mem);
> +        break;
> +#endif
> +
> +    default:
> +        ASSERT_UNREACHABLE();
> +        break;
> +    }
> +}
> +
> +#endif /* XEN_IO_H */
> --
> 2.48.1
>=20
>=20



From xen-devel-bounces@lists.xenproject.org Wed Apr 16 06:37:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 06:37:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.955122.1348948 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4wOe-0001hf-QR; Wed, 16 Apr 2025 06:37:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 955122.1348948; Wed, 16 Apr 2025 06: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 1u4wOe-0001hY-Nk; Wed, 16 Apr 2025 06:37:20 +0000
Received: by outflank-mailman (input) for mailman id 955122;
 Wed, 16 Apr 2025 06:37: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=yQHX=XC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u4wOd-0001hS-Bp
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 06:37:19 +0000
Received: from mail-wm1-x333.google.com (mail-wm1-x333.google.com
 [2a00:1450:4864:20::333])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3b69f654-1a8d-11f0-9ffb-bf95429c2676;
 Wed, 16 Apr 2025 08:37:13 +0200 (CEST)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-43cf257158fso45188045e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 15 Apr 2025 23:37:13 -0700 (PDT)
Received: from [10.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-39ee2172a12sm1802154f8f.99.2025.04.15.23.37.12
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 15 Apr 2025 23:37:13 -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: 3b69f654-1a8d-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744785433; x=1745390233; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=gQA7EVFX9QR0ZYzsOggsi31DJpBi0/Y6sNmJ0+bLo/0=;
        b=Ms9a2keEaMyyji7/VfhKxoxjtBZrcAXpkQDhMftGHTH2aQHSYoyWYcx4f4FmejRgjj
         5D9GGGpqVvtM6wGWoYgeMV/PpSu31uDrA28AbxFO11odPUzpjuLgGjZ7140bqNcLft04
         W+ZXUT/m0uuk/42iQFFsfsxAR2OLs9zqDrck0qOyqh+kko/MfXmsPWwZtvid/AsIWsjk
         E9q4HSOOCplV6nUZIGFzCIs2SIwopl2UigCUXxDA8N0OmizL5nkClGsleJZeA1A2BFLs
         /W2vif2UDkEEAeD53Oye0lQx1Z/NODGa61gIX8F7GZSn0xA6W66CwzYvNN90Y9JnPK3B
         6klw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744785433; x=1745390233;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=gQA7EVFX9QR0ZYzsOggsi31DJpBi0/Y6sNmJ0+bLo/0=;
        b=qXHBKVtmno2jQtGaDLWYfFplC2U6LsUKpIae0EebnlNOONYsd1m/Wa/ygytuEstx8g
         3Me8EHhazXMrOj8udT659NtSDZNA4a2IiCaf97vV5UgSbvevbkwQKJvAv/vg7GPZwSx4
         XJu57Ip7VqiJ5XtWQPW6v3Bm5UDhmW8+If9dHzcg2Iy10/iPvG3j9pmZHJI9BUIR2t7g
         a3rVowVeO2TFCzdRxw/0iYPhU7+i5lBL9cuE9SN7Cs0oYENIRh4A25O/v5Epkd4+gUVa
         8KF7QPPkhb/0XuFdehkLXxnThAM9CYwKHT1QrB2iJHmgwbiHyibi3nscw/BjJrti+4jX
         8Mgg==
X-Forwarded-Encrypted: i=1; AJvYcCXj7b7Rff8sQj+zgbZJl71Z85zYSTTCiHvWMAkvDg+MT872pFVWrKaOuFGe6QHlTJHgka+y4/E2Y/4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzblGI8/qesZHaQXh9d0XjonWPeSQdHKpVUqoxzGRcqVmIONk+n
	yCYyrv3aRl0+xwtYMtB/HMPMXKW2mLyIJDj9x35X7fN0ep7pqojTf4wyW/2cCg==
X-Gm-Gg: ASbGnctP91LZXC6JMnAdr6WlBf7Rhi2iYoRD+7KWd9CtV4waT1+pT8n3xgm7FDB/i+w
	TKNgJeRUcS/KqAthxDdotVAPHqQBBnqWNHVORj55TQ0n9/J/wRW1TUDaWKUfdzeX13h695AcO5B
	9Y7k5/v5kqgwUyyRFTDvSrKeZaUvtFTJ1DjlEv07TGRJfBamTBOPvgcaLfewsKgvXxDARdMXQ2u
	4oIOJtq7OXADxC9WH9S1EZx1V1N/FLPbCUtMRC2xXhZM/zB/d/5NPGKQC83xQOItbSp34pd2cul
	xuny3aUPn6II0PS1MnZGXg7F/5X+widkHWvdALGh8YZN7dS6QFJcOOabTCTizxrujdpDjujXjNi
	zBQxhD/wg4KK8jFF59QMAYmDVNw==
X-Google-Smtp-Source: AGHT+IFzHlIHdBoJngYdbiakfhUgxJO5FfTeJOxU0+dAmJ9mbr4hNNQbUhgEOJkmP437Bh9mcAdM1g==
X-Received: by 2002:a5d:47af:0:b0:38d:de45:bf98 with SMTP id ffacd0b85a97d-39ee5b13061mr416503f8f.8.1744785433394;
        Tue, 15 Apr 2025 23:37:13 -0700 (PDT)
Message-ID: <6c5b4f07-0f7a-47aa-9469-a5a7adffe27f@suse.com>
Date: Wed, 16 Apr 2025 08:37:12 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 10/19] xen/sysctl: introduce CONFIG_PM_STATS
To: "Penny, Zheng" <penny.zheng@amd.com>
Cc: "Stabellini, Stefano" <stefano.stabellini@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20250326055053.3313146-1-Penny.Zheng@amd.com>
 <20250326055053.3313146-11-Penny.Zheng@amd.com>
 <df30d9fa-15dd-4923-bdaf-04f9476529d1@suse.com>
 <DM4PR12MB84519E18C6F4FA7724C03751E1BD2@DM4PR12MB8451.namprd12.prod.outlook.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <DM4PR12MB84519E18C6F4FA7724C03751E1BD2@DM4PR12MB8451.namprd12.prod.outlook.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 16.04.2025 05:54, Penny, Zheng wrote:
>> -----Original Message-----
>> From: Jan Beulich <jbeulich@suse.com>
>> Sent: Tuesday, April 1, 2025 9:10 PM
>>
>> On 26.03.2025 06:50, Penny Zheng wrote:
>>> --- a/xen/common/Kconfig
>>> +++ b/xen/common/Kconfig
>>> @@ -557,4 +557,9 @@ config SYSCTL
>>>       to reduce Xen footprint.
>>>  endmenu
>>>
>>> +config PM_STATS
>>> +   bool "Enable Performance Management Statistics"
>>> +   depends on ACPI && HAS_CPUFREQ && SYSCTL
>>> +   default y
>>
>> As per above - either name, prompt and the description that Stefano suggested
>> are wrong, or it is too much that is being covered by this new control.
>>
> 
> We have two sysctl-op on performance, do_get_pm_info() and do_pm_op().
> I think do_get_pm_info() is to collect PM statistic info, which could be wrapped with
> CONFIG_PM_STATS, while maybe do_pm_op() is more focusing on performance tuning.
> How about we introduce another Kconfig CONFIG_PM_TUNE to wrap  do_pm_op()
> and related helpers? I suggest to introduce a new file pmtune.c to contain.
> Or any better suggestion?

"tune" is too narrow imo. "ctrl" may be an option, but how about simply pm-op.c,
fitting do_pm_op() pretty nicely? Question is what else is going to end up in
that file.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Apr 16 07:26:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 07:26:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.955138.1348958 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4xAT-0001cC-8l; Wed, 16 Apr 2025 07:26:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 955138.1348958; Wed, 16 Apr 2025 07: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 1u4xAT-0001c5-66; Wed, 16 Apr 2025 07:26:45 +0000
Received: by outflank-mailman (input) for mailman id 955138;
 Wed, 16 Apr 2025 07: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=hq9D=XC=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1u4xAR-0001by-Ln
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 07:26:43 +0000
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 (mail-db8eur05on2060d.outbound.protection.outlook.com
 [2a01:111:f403:2614::60d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 21018973-1a94-11f0-9ffb-bf95429c2676;
 Wed, 16 Apr 2025 09:26:37 +0200 (CEST)
Received: from DU2PR04CA0320.eurprd04.prod.outlook.com (2603:10a6:10:2b5::25)
 by AS4PR08MB8021.eurprd08.prod.outlook.com (2603:10a6:20b:584::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.33; Wed, 16 Apr
 2025 07:26:32 +0000
Received: from DB1PEPF000509F6.eurprd02.prod.outlook.com
 (2603:10a6:10:2b5:cafe::5c) by DU2PR04CA0320.outlook.office365.com
 (2603:10a6:10:2b5::25) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.34 via Frontend Transport; Wed,
 16 Apr 2025 07:26:32 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DB1PEPF000509F6.mail.protection.outlook.com (10.167.242.152) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.12
 via Frontend Transport; Wed, 16 Apr 2025 07:26:31 +0000
Received: from DB7PR08MB2987.eurprd08.prod.outlook.com (2603:10a6:5:1c::25) by
 DB9PR08MB6444.eurprd08.prod.outlook.com (2603:10a6:10:23c::11) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.8655.22; Wed, 16 Apr 2025 07:25:59 +0000
Received: from DB7PR08MB2987.eurprd08.prod.outlook.com
 ([fe80::d53f:b16d:70a5:8668]) by DB7PR08MB2987.eurprd08.prod.outlook.com
 ([fe80::d53f:b16d:70a5:8668%4]) with mapi id 15.20.8632.030; Wed, 16 Apr 2025
 07: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: 21018973-1a94-11f0-9ffb-bf95429c2676
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=VOLmA+OjJ0QerOtlULZHCvahBovzcdEfajl6La6e1ILml2RPQ6I5OgGvQ3TBKErFMQfkKuGgLTTXInemcG78dPzLelvG5hoLMcUdcmRs3vub0th86BSnWBtOnHoFvGBPaq2hWzTz7yLVd+bf+2XXmNnbDHUxeDTLQMMuF3QloVUsvo5GfT8NjxqvfMuWb5zH+ISV1De2ya009BVBmCFaUDDaVG09nm9ddMYH17A6tY4NtE3b47OxF++QkSbhB1YrnOIuDsBMvsLZbLA4FZL07gnwEACmTPxGL7/7watmwnsxgtRQX6Wi046F3tnPqaI51Y7x8gAWX8AQjluMKT3bUA==
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=kuI2wRuC1L4mvTSJZz/28Ip8Jy+iZsfcTR5uf1mCbIE=;
 b=dhuTqHVA2ifJCkoYLMH+Y9SPHQo4Q63qC/CK7hOt/Yh0zPA2SLxwrZYYZL8DIoMdYT+jbBS/U/ekr7PWsD/bx8lr8qUgX2n8rvM2e2jlueU8MG4zPRK32rVXBuqJliX0yuPPeCEaieVLe5WaQpCRvxTQU9Y9bmWx+mkxcQ25rGuDHN8RLqOEODtlcQEwkQZ5BKk0ec2WxITzrqweGfK2zQpsl4asg3G4wWX11zPBkRseUqvF66EhgaIGo4kv7jBGQwVpXdHH86Ugqk/HQt+b5wRHwkP1CfJTzDY4V/dfVBMSIhLB2kCXO6D2+1ugcehsgd9cMIRYsLrp/5cjiD9TkQ==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=xen.org smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=kuI2wRuC1L4mvTSJZz/28Ip8Jy+iZsfcTR5uf1mCbIE=;
 b=M9TaSCS6YC9JKdCjVdikXK3Odz+8cbAmK9CfNww3a0QB+9Eg04oOlhkSnJqDNz1P0NWZBX+o8GhM8TJMgc5JQPH99P8ipzmQ3+NBxTZVUWYFHQkGRoRIOJXbe0/GOp6MqSIFlS47RdiE6azF40Gc2ICztte7rxsqgR/+Gn9H+Hs=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=hmVlRMR6vaXD2A+JAPWNdlcO3eGTQi2toqUCOHmqCxGl+p/bzVpy3o7LK1U/jLVn7K/zlrDBsSjF47tkoaSijEBtskusLjDqF5vypoNjKGzYNEQO84HPXbfJ94ouORJ0f9jLtgQR3lwKnebnYd4IHyR2uoIZi2CLE+EY6InvZY7jCHUbklTIBxjGMIeTnIBfBetc5gjurHWSuu9/AVZDJvgEvHJrI/3srWNscHZlRsH/f/HDCbTSQXKT7/5o/udlA9vhMOJ8RAT0cdxxU6bPaGQpRlrVu57U66UxMRz6PY+YphibKeO720ec6KVhQ4d+yAZ7W3uTdsYXTBCgE1w7nQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=kuI2wRuC1L4mvTSJZz/28Ip8Jy+iZsfcTR5uf1mCbIE=;
 b=sdqatJTkptIxDnYo6LTUOaK57fyfToArsd4sGX+ywgxDh0ZE1c+WNQnyqkvhiVqRhIocv3rXB00QHeuh87TXBRe4V0CLJod25xDgHCwFp1mzb3wt6wda3MnINm3WM98DddVrs3IS7fJItrG6EBwmyLfEeYxSh2Jsn9kZm5wrjumTo87XCd66JfF0beBkGwx62qnuCCwQOA1pkfYycHKl3JkBl/YkO9jF7+iSw3ZSd00HdUTOsDHpv1cx4sH1MP+VNMQhLInMDeYbHQCCQgjgpBDQeMjZlte2xIr7msKgoBhBxAbP0LvjjwtBGBmOvXlkIsAALaStsAbaTScy4WNJdg==
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=kuI2wRuC1L4mvTSJZz/28Ip8Jy+iZsfcTR5uf1mCbIE=;
 b=M9TaSCS6YC9JKdCjVdikXK3Odz+8cbAmK9CfNww3a0QB+9Eg04oOlhkSnJqDNz1P0NWZBX+o8GhM8TJMgc5JQPH99P8ipzmQ3+NBxTZVUWYFHQkGRoRIOJXbe0/GOp6MqSIFlS47RdiE6azF40Gc2ICztte7rxsqgR/+Gn9H+Hs=
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 v3 6/7] arm/mpu: Implement early_fdt_map support in MPU
 systems
Thread-Topic: [PATCH v3 6/7] arm/mpu: Implement early_fdt_map support in MPU
 systems
Thread-Index: AQHbqvINbdgv2Gjl9Uy6CHqPPhTkQbOjEuwAgALYpYA=
Date: Wed, 16 Apr 2025 07:25:59 +0000
Message-ID: <DA4D2124-A78B-4D5E-B7C1-8396F90DB92A@arm.com>
References: <20250411145655.140667-1-luca.fancellu@arm.com>
 <20250411145655.140667-7-luca.fancellu@arm.com>
 <4f95b625-3013-4750-a5c9-67d346ee8c3b@xen.org>
In-Reply-To: <4f95b625-3013-4750-a5c9-67d346ee8c3b@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.400.131.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DB7PR08MB2987:EE_|DB9PR08MB6444:EE_|DB1PEPF000509F6:EE_|AS4PR08MB8021:EE_
X-MS-Office365-Filtering-Correlation-Id: f2ea2a71-7960-4bd1-059c-08dd7cb802e0
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:
 =?us-ascii?Q?rTJHK98L9imM3m6f/0JrGb07Zfclyj3a4DIXxYlEGPBYHNWIVTz4jjBOLsTY?=
 =?us-ascii?Q?kD/UBQjndh7Wtmi+mZBp87rIcN5t4hzBObd3wOmatRQjk2ev0gECXbZ8LDSO?=
 =?us-ascii?Q?kZA5InSF9TqRJ78Ov1xG9kuypqVTsMWrRz74QJS4VhDz9gJnWIZ4vKf3bo9Y?=
 =?us-ascii?Q?Lu851VAqkoXyFYMiV+aT4xNWWqYjxruODhVpenZbmtc2ok5N8POAkFMXJ6Gw?=
 =?us-ascii?Q?TiSJPL3Y1syhlPj0dJc6npPdj+I80byFTD3Rq9mjDNh1IfeYXG1sRIfjCUqo?=
 =?us-ascii?Q?ISPTLBhRJefxi+rdmluBH2B+1kjdBWCbtMZgs19WUKVrt41UCWhaTYkVknvd?=
 =?us-ascii?Q?5pqv6C+Wws7axN+AXM1z2PK4UNurK1eNgEUqkgYtPLtMdTlzcwWEYVWu3sci?=
 =?us-ascii?Q?GDbSdOlwNNUjqIM1UoBx4CwOrtPXX57PZ3OZEd7+WiNcTXE5tHpLVv5aho50?=
 =?us-ascii?Q?90L+Q+txMpXEnIuzGA7kQv1oTSezzOsq1bs24kKGEIeOQSEtlrfmoAM81/rn?=
 =?us-ascii?Q?eh4lW7GEiqC6gEcZqJ04Q/IdwlOdcrGJZbdjcg+sj87AcE4148urFQXlDGmz?=
 =?us-ascii?Q?MEUhOjqe/CdToyWgyM/zcsqBM04v58m6+jmb0GfOS1tZbtjpQCulpp+yXd4h?=
 =?us-ascii?Q?f+VksvoQ4yCB0a7/pakJwX1jaLvVilH7GG4mUV6g6FDymGxItVQCJWqbP3WC?=
 =?us-ascii?Q?AFA4cXI56gaRGeMvYpOXX96RVF/bT/m2wpE8qvK3Y/eyTNHynj74hq5d6aaq?=
 =?us-ascii?Q?XhFJzNxcQXuegd6asNZ/UskuDrVJRESw4XPE12Is+VU0IOOriM3FXpRHn0Em?=
 =?us-ascii?Q?7HOn5xfHxBOz/wBhfzIvBj1LJX6+Jarq7NooG++cMDWSELNKC5zcDOKqmytq?=
 =?us-ascii?Q?qYPJSAImMbAUiO8MVuEq+EVGg8/RkRCjVnxQUCfG1xtLZo8DYhHFbnl3UH0Z?=
 =?us-ascii?Q?F8pwE04rwAtBe0jchQefgBXnPxaTaOqzsFI0ImFCQBd+UbOKPOo9p33UlKlm?=
 =?us-ascii?Q?HpWzRFk3Iff7scMsylNit1MyHdvv4uVazVj55BvsjkxU9VDQXS96dTXNNNG/?=
 =?us-ascii?Q?I5mKb2vdoJPkvqZhL8G0Ah7IP7siPeQkM3ZL0Ly/EHQ7vphJrmj1vKkYslKR?=
 =?us-ascii?Q?Y+4lEXeODzkmAPRcwzoorB9LRMgjclgsp324e/H1m1qeWf4ZKcVtYGQwaiwD?=
 =?us-ascii?Q?NltlN3yFPiIG9YJh6WDOb60V/rFE6CRPEnrS6dx4Ke1O4P46dr76o6uTLBEK?=
 =?us-ascii?Q?C7MSA9ycV6icz/LgAapYFvPXBTvD9nZzJJTD9CnaTORtxBW6JWyWl0mCrCNI?=
 =?us-ascii?Q?djVu0p4dQa3Pb24tj7oT8qnEvdULxTSnC8RyMr7GKPEuWo9L/YepZrJhtSat?=
 =?us-ascii?Q?xY3psjXMcZCFjnikTjfUFGdBPxaaQPO5i1aNyoi+O5emfTjTPjoYwQuvdse2?=
 =?us-ascii?Q?MriknAOI6LNnWh1eSLT0ldeuGY0VAM8zo/WhU1KDxx6RfeB/GP2rRQ=3D=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB7PR08MB2987.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700018);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-ID: <9C8BC5E6ABDCC5458709E4106BD0EB14@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB6444
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB1PEPF000509F6.eurprd02.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	4a4cfa14-ea03-4034-9bc9-08dd7cb7ef98
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|14060799003|35042699022|82310400026|36860700013|1800799024|376014;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?7sV9KMaYAfRBBBL5fOe4Gg993Gte6Ww7LtH91bUL4Cwt9H0hbDoAgzK1UA1E?=
 =?us-ascii?Q?zSUkRlJJ4R0EdxXZmLdKIM1EHiUsDAIZbHH7W3G0O+PWFN9oMxx0B0taD2pI?=
 =?us-ascii?Q?0PGAJoYj6aNa+3APbjhAMC9C29BW9W74mGZr+Y0MasRXTtLAC4UgNMvLKJmz?=
 =?us-ascii?Q?w/asKiyqmzuHOu5SAT93gpnZ1ZnuRhuqMPZy3XmAXsglrTypBrRjn1bMVPgw?=
 =?us-ascii?Q?J1MD4uOU/As8zz5AeWpZ0EkSVfj2sG6r4Cogtn2aehYwVbwUcvjaDn9zIWSY?=
 =?us-ascii?Q?9Garh77juJHnQdMt5ZUTLAWiFo8yLhN87dC/diQMh8b5nD0dyxun7hna861V?=
 =?us-ascii?Q?Tqhm6tY+1xHI+D/08ufnO+qSeDaXPzrjJTSp+uOVZg3HR33XohnvFN4yN4cA?=
 =?us-ascii?Q?ETaOCQxpnNH+5VEbbrtVDFIky1PmRLFloko+Y7A4vhJtHTGHo30JfdMw7yIL?=
 =?us-ascii?Q?EDqFkGgXwuq5rQVMBaOvdJdIGvUvtOHoDuTk5qb0kcvuxvZmOXlOjn76wlR/?=
 =?us-ascii?Q?X+fSyO6E/AKVB+B759jxW5Bs34vFA4dzQHIA9iBZj51T4zMxpUB3Z6NycoW3?=
 =?us-ascii?Q?WvM6jz1jfoh5SClXvBGxaEp/G5rW4fQkAfAd7uy3/4LOzO1D43XPEbUNzCBM?=
 =?us-ascii?Q?ah4UvsyFLvHrDo5OyRgDVz1StO04eR7pY7AMqisfspEumBboA6WbLSyrKR2x?=
 =?us-ascii?Q?Kdw0qrSpWU7kqztl8YCyq+IgmDsnw+lT7nuqokE3WiorxYX+5qpbkwNiXJa8?=
 =?us-ascii?Q?7fZciXQsjCQ+Mu8SasEgxIEJtt3t9kUpVbZwUu8spC32QNYVbhAdi6Sv3CSr?=
 =?us-ascii?Q?8wOd7OeFtJYaMrcgrAWP559hkBmXxXaqYDvH+wpk4ECYpoPISzAPOLC0/O5A?=
 =?us-ascii?Q?qa46clgFDo16iqBPbW8Epp0hr8rp1rPYlra9DnCUPIHyR2JOWc7o5nbcEEY+?=
 =?us-ascii?Q?hHMtExb2Wkzt/zJM19uDCD9vwtbNY5ePSOGu9kRxLnLXFgqLSj9vsQcFXDIw?=
 =?us-ascii?Q?QVnctnXAl4S31YjOeba0z3+liwfW57Oa+0O891cWMPUfDgw0hE4nfliGo4kC?=
 =?us-ascii?Q?9ABpgcuTDNES097oISufUzOIheNz7rIDE47hQDhchYiDTbSTAIgXbYy16nY+?=
 =?us-ascii?Q?swDFnbk82M5aJ8fH5yTLnGagEb2prmduHTZEuyVKH9zYfK9yxZNIauR+HXGY?=
 =?us-ascii?Q?KmLRuB7k0YXOhRF/U3ejWq6n1bthonELJZbLWD2WlOtgFLcULqGPCg/kY3xu?=
 =?us-ascii?Q?omZTqDMr2peoi6P8z9owXoEje5ZsXOeOifRtbt7tWD3Wd6UisvNt08m8+VHg?=
 =?us-ascii?Q?TvqNXoWF8d5KrhFS039EmZbpTBq408jbGtZJDUETE4+DX/K37L6CQ//aT9dT?=
 =?us-ascii?Q?3gZBGFw3wUWvueoQ216ThkOzC8/Z99UYM1HprNEQhVo39gVbxGqG0ZCCELJz?=
 =?us-ascii?Q?j0xPRGo3wJJ4VpUoaA+A4fcI7vdc90bnIxvu7wKlkw2bKLdpAiy86qq6o5XU?=
 =?us-ascii?Q?gJcHN7pjyk/uMk3w71Ajokp86I0X63YVKevI?=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(14060799003)(35042699022)(82310400026)(36860700013)(1800799024)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Apr 2025 07:26:31.9603
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: f2ea2a71-7960-4bd1-059c-08dd7cb802e0
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DB1PEPF000509F6.eurprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS4PR08MB8021

Hi Julien,

>=20
>> +
>>  void __init setup_pagetables(void) {}
>>    void * __init early_fdt_map(paddr_t fdt_paddr)
>>  {
>> -    BUG_ON("unimplemented");
>> -    return NULL;
>> +    /* Map at least a page containing the DTB address, exclusive range =
*/
>> +    paddr_t base_paddr =3D round_pgdown(fdt_paddr);
>=20
> NIT:  IIRC, the minimum for the MPU is 64-byte. So is there any reason we=
 are enforcing a bigger alignment?

So the original work starts from the assumption that we would like to reuse
some of the helper used for MMU, so everything is developed to work on
pages of 4kb, do you think it should change?

Cheers,
Luca



From xen-devel-bounces@lists.xenproject.org Wed Apr 16 07:32:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 07:32:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.955152.1348969 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4xFs-0003cC-UX; Wed, 16 Apr 2025 07:32:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 955152.1348969; Wed, 16 Apr 2025 07:32: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 1u4xFs-0003c5-RF; Wed, 16 Apr 2025 07:32:20 +0000
Received: by outflank-mailman (input) for mailman id 955152;
 Wed, 16 Apr 2025 07:32: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=2d3P=XC=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u4xFr-0003bz-P6
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 07:32:19 +0000
Received: from mail-pf1-x42e.google.com (mail-pf1-x42e.google.com
 [2607:f8b0:4864:20::42e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ecc8b155-1a94-11f0-9eaf-5ba50f476ded;
 Wed, 16 Apr 2025 09:32:18 +0200 (CEST)
Received: by mail-pf1-x42e.google.com with SMTP id
 d2e1a72fcca58-7376dd56f60so4386664b3a.3
 for <xen-devel@lists.xenproject.org>; Wed, 16 Apr 2025 00:32:18 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 d2e1a72fcca58-73bd22f0f8esm10086194b3a.103.2025.04.16.00.32.15
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 16 Apr 2025 00:32: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: ecc8b155-1a94-11f0-9eaf-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744788737; x=1745393537; 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=PlA8KkckCOfDq56Pwwpz2uub5VF2NM3lBAXY9b68JcE=;
        b=U2+dMVWMrzH7r/FLwW2LpRdFQ9yNcATzkJfRxj3tRtqxvjNafrFPU5q+O3npUWe+4/
         P1PfoZuUE1wvMAliUJ2NK4LmyCnA5xcnE9bSzXsfLc9df3wrdkfnvgYiNe1f/+ENM4QG
         ond7f0/Yv+lZFbP9hU0mnyi5Z4VjhbgTb+oFU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744788737; x=1745393537;
        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=PlA8KkckCOfDq56Pwwpz2uub5VF2NM3lBAXY9b68JcE=;
        b=BakLnuwmO6tD4i1GSCV1+DdOMWmUZyOcCPs/VHHjiOGuqg8vDDihTV2QVJ/FMM5vlZ
         2TJnmDL7cICiEy6PlBBRnqhCrYQ/0d+VFap+1TsZRRBwq4rgvtOYEhOKA5JNFLTmunXD
         RIgCdGX856IBIGHGQSl2n1zD0lK4r+fBqCJJnoRfsBf1gX7fPQ4wUBcEE7jM8ZYPqHoV
         KcQN5iSqBUTKw5lC/L/xWulx1OG0N7KRCwCUL28NACdFF38Xa7So+8u4HT7w5bGGQPRe
         jTXOkUXOntBNESohLAasYd7+hWVGlLN0saoiNM37EpVBr9OyBfcdbbQ/oksh3rGvCC+S
         F1wA==
X-Gm-Message-State: AOJu0YxBEeoWp6Qi1I6NTDo8hgJqEcITTZTzpWBrWj+LF/0SFey0+yS7
	eXJU+m+SpVnEqZYO2PNPQjnsMoCKrQFc8ZVx1NdyAzkCBRYoIomPNGN+iRDKsupeCOiyxHcUpHk
	b
X-Gm-Gg: ASbGncsTuVsPdImft1oY+v6aTT0C05p//xle4BJPQqxL2SX7xeu7PI3+Nfs1khQyaft
	vtlOYymo1Ai2jGY/z6ArSuQIEXB9L9CR2nosYTvBLNToLOmLp9lHKrKywPeGDMcx5U/dx7MNwfN
	GtmaDaCSOBaUKRBfWpHlQr3jtSOI249VF2HkctF+EY9PBZvwsyzSX/NaB0elqVY2A3RbY4J//G8
	7mq21gTJvk2LKr1dFnL+Ai8Mp7BoHzA5ufHWsGcwXipvpeWmZwszu433yBSmnvhlw1vFkYyEXLN
	Etnxre/lSYLF4O6zJtjCkz2XwQxz815BNdH9ukciogr89g==
X-Google-Smtp-Source: AGHT+IFQ6ucizTyQavkuaAJdg0RS0Lmr9efxrLGAh8qkOCpjZ6Qixq151E5b286OVukDZavICMAAEw==
X-Received: by 2002:a05:6a00:aca:b0:736:b9f5:47c6 with SMTP id d2e1a72fcca58-73c267d36b2mr1082309b3a.16.1744788737053;
        Wed, 16 Apr 2025 00:32:17 -0700 (PDT)
Date: Wed, 16 Apr 2025 09:32:11 +0200
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>,
	"Huang, Ray" <Ray.Huang@amd.com>
Subject: Re: [PATCH v2 2/8] vpci/header: Emulate legacy capability list for
 host
Message-ID: <Z_9c-8V1OwhnWVSW@macbook.lan>
References: <20250409064528.405573-1-Jiqian.Chen@amd.com>
 <20250409064528.405573-3-Jiqian.Chen@amd.com>
 <Z_4wkFn1VvBe_6Eh@macbook.lan>
 <BL1PR12MB58493D18F9F533FE3D928607E7BD2@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: <BL1PR12MB58493D18F9F533FE3D928607E7BD2@BL1PR12MB5849.namprd12.prod.outlook.com>

On Wed, Apr 16, 2025 at 02:51:18AM +0000, Chen, Jiqian wrote:
> On 2025/4/15 18:10, Roger Pau Monné wrote:
> > On Wed, Apr 09, 2025 at 02:45:22PM +0800, Jiqian Chen wrote:
> >> +        while ( next && ttl )
> >> +        {
> >> +            unsigned int pos = next;
> >> +
> >> +            next = pci_find_next_cap_ttl(pdev->sbdf, pos + PCI_CAP_LIST_NEXT,
> >> +                                         caps, n, &ttl);
> >> +
> >> +            rc = vpci_add_register(pdev->vpci, vpci_hw_read8, NULL,
> >> +                                   pos + PCI_CAP_LIST_ID, 1, NULL);
> >> +            if ( rc )
> >> +                return rc;
> >> +
> >> +            rc = vpci_add_register(pdev->vpci, vpci_read_val, NULL,
> >> +                                   pos + PCI_CAP_LIST_NEXT, 1,
> >> +                                   (void *)(uintptr_t)next);
> >> +            if ( rc )
> >> +                return rc;
> >> +
> >> +            next &= ~3;
> >> +        }
> >> +    }
> >> +
> >> +    /* Utilize rsvdp_mask to hide PCI_STATUS_CAP_LIST from the guest. */
> >> +    rc = vpci_add_register_mask(pdev->vpci, vpci_hw_read16, vpci_hw_write16,
> >> +                                PCI_STATUS, 2, NULL,
> >> +                                PCI_STATUS_RO_MASK &
> >> +                                    ~(mask_cap_list ? PCI_STATUS_CAP_LIST : 0),
> >> +                                PCI_STATUS_RW1C_MASK,
> >> +                                mask_cap_list ? PCI_STATUS_CAP_LIST : 0,
> >> +                                PCI_STATUS_RSVDZ_MASK);
> > 
> > One further remark I've forgot to make on the previous reply: I'm
> > unsure we want to do this for dom0, as we in general allow dom0
> > unfiltered write access (unless it's for accesses mediated by Xen).
> This part is the original implementation before my patches.
> If you want to restrict this only for domUs, not for dom0.

Oh, indeed.  I was confused thinking it was inside the
!is_hardware_domain() conditional.  Leave it like that, your series is
already long enough.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Apr 16 07:38:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 07:38:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.955164.1348979 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4xLK-0004E8-HN; Wed, 16 Apr 2025 07:37:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 955164.1348979; Wed, 16 Apr 2025 07:37: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 1u4xLK-0004E1-E8; Wed, 16 Apr 2025 07:37:58 +0000
Received: by outflank-mailman (input) for mailman id 955164;
 Wed, 16 Apr 2025 07:37:57 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=PIlj=XC=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1u4xLJ-0004D8-A2
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 07:37:57 +0000
Received: from NAM11-CO1-obe.outbound.protection.outlook.com
 (mail-co1nam11on20610.outbound.protection.outlook.com
 [2a01:111:f403:2416::610])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b4902a18-1a95-11f0-9ffb-bf95429c2676;
 Wed, 16 Apr 2025 09:37:54 +0200 (CEST)
Received: from BN9PR12MB5273.namprd12.prod.outlook.com (2603:10b6:408:11e::22)
 by PH8PR12MB7182.namprd12.prod.outlook.com (2603:10b6:510:229::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.32; Wed, 16 Apr
 2025 07:37:50 +0000
Received: from BN9PR12MB5273.namprd12.prod.outlook.com
 ([fe80::cf66:58ab:47be:4b13]) by BN9PR12MB5273.namprd12.prod.outlook.com
 ([fe80::cf66:58ab:47be:4b13%5]) with mapi id 15.20.8632.036; Wed, 16 Apr 2025
 07:37: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: b4902a18-1a95-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Zd1Sd7ePLeXZkkoZ5zNXfSHltGVAs2PrxtnD33SSx8aet6KJLaV/cEG54HmBFq6agyIqk37YjmjvdWNgmc5Kg6RsR+1MTEEM7+VIGy/MiB+z1xdaGX4QGktSMw4v3hO0l2ELElIZfiszsRNUPID53W5T1LOO3Di93e80YQfFemCL83ANgOoSL2XS8CnXhX2y8S2FvQI2dSJiJQm/SvQtrtT1GkxZn+4FxzAgYjsK0vT3ms2IpeXN8685zjjAE/QmJPeSnjGdGIHeoUBlk5aF6fU0nstlHObiU3qFdtNgr61DXpYCJFUvWlzXAvv1XZyQvitvmWEP60UlfqOY2Nb0eA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=QRqnsiI7Ax9Xitc27mTVgaQup68dEPs+VJccXLrwzRY=;
 b=eBeiYKi6wtNP2Ars7lPtFFRq5/pPbqcMB89Pk2WQZAIQM8RkuWUX2K+oapPzY9EKLgKOA2wncsBhWttPpLduzz3qahlvVDd33AVOAbS5bfqoOXsw6wafzCl6Dlg3N8Ha7qtympTZmkAbpikdfG9ircwUB0UhiMNEBsYCFJQOxTpPlMq8jZEz6gQwbvk0B0gqWBq2fVyApNcj9Vw2iQTK+24uGGpZCTU+iRytlTc1gyGWMRzg/kDdh8RXYNDX7oz/6Z+jzWsjshNwKfmghnnpgrRjgfaxdXPwLhZa/birrcW+vuM8gY4HIH9Ji1q4FbbplWBeg83JE6ngDcfIlB3ALw==
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=QRqnsiI7Ax9Xitc27mTVgaQup68dEPs+VJccXLrwzRY=;
 b=I52ECfl3dRbJR7F6omglzxqwHStZJoVI+d48dcWroaHuJgOVmQyNQrOgvsUPqJsMx7bRMpeMO3vstDODk8VpDP+w3I2bNM7PdiHLPZUORy6uuOlmciOsnL7d4SrZ1XFj+zFjE0kkPZAnvUv1y2rOy4p5PSY4zAHlw3JL/5QFiZ4=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <c953da5b-2edd-4c93-9bdb-67577edfb23e@amd.com>
Date: Wed, 16 Apr 2025 09:37:46 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v7 0/3] Enable early bootup of Armv8-R AArch32 systems
To: Jan Beulich <jbeulich@suse.com>,
 Ayan Kumar Halder <ayan.kumar.halder@amd.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 xen-devel@lists.xenproject.org
References: <20250414164514.588373-1-ayan.kumar.halder@amd.com>
 <47fc3dad-3f7b-4a9b-89c1-99e79a048ad9@suse.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <47fc3dad-3f7b-4a9b-89c1-99e79a048ad9@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR3P281CA0096.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:a1::8) To BN9PR12MB5273.namprd12.prod.outlook.com
 (2603:10b6:408:11e::22)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN9PR12MB5273:EE_|PH8PR12MB7182:EE_
X-MS-Office365-Filtering-Correlation-Id: 65e7954f-138e-48ff-f2ef-08dd7cb996f6
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?S2xIM0JoMEgrUlE5YjhnQmJZaU15WnA1bTdydzBaUStMeW9pT1VMdWlTYVFC?=
 =?utf-8?B?WUJocGJieXBmUzNveDgvUk1iVEQweWVKQ2tvWHBKcERUSjZDZW12b05QUW51?=
 =?utf-8?B?eGYyc1BzTVRaZ1U0NjY5ZlVoZFhoNTVVY04yR2FxZExYYWd1R1o4MHNxdGJh?=
 =?utf-8?B?YWlVU0VTZ2pkREI2eTV0ejh4Zjhxb0FNWFdoNXBaZnVwS3luSEc1dUw0cEM2?=
 =?utf-8?B?dTByWHY3Wm54THdXaUdTd2lhd25LalRSMlJiQ0dxdk5ib3ZVVjV1dHJ1cWN5?=
 =?utf-8?B?bGN0b003SVZ1QzRnNHRVaDB5YXJhakxJNDZ2cmZHSVc5R2FKSEFWaHhBV0lX?=
 =?utf-8?B?bENHbmNkNmlqYW1RY3lHS2NvR29EeWpTTXA4QVlBdmtIZ1lkQmd0Yk5rYVVw?=
 =?utf-8?B?VUVieXEvUmVmc2Z5YjExRUJPaEN5TEFjbEN3ZUJXWklXbnQ3ZStub29qaWJv?=
 =?utf-8?B?SGpHeVgzdzdRU0N0UFFYYy9lTktsM3RKSXFOcmxwM1RKNHBzN0Y1VmtXZlVM?=
 =?utf-8?B?eS80VTZWMWNtSW8rUEYwYUZpck5yeXpFRTVvVUdaTFQ2OVM1c25mRHlZRzJj?=
 =?utf-8?B?Y0N5d3grZUFsWTRDSTRCUWhKWTdZUXY1K3lZd2N0djBkWTJyeTV0Z2pjakRs?=
 =?utf-8?B?RjlzeWZjc09vNGUvQTNkclJLWVJJdzZuWE5JUlYzMTk2WjR3NDJZcjhhM0Zy?=
 =?utf-8?B?NkJDMW4vQkdRMlVRMGoxeVFFRDZBT05yVERkRS83Nk0zanRJb0lueG9RdTRZ?=
 =?utf-8?B?QzBGd3Y3OUo0WHlmM3Y1WDAvcWkvSENjcjRud3lQVytJOHVaSDNaZUdsZlEv?=
 =?utf-8?B?NXpMRWdJdHRJcEx3MVBOcFloaGxxWndyNitFWkJjY2lFb1JoR2J1UDh3UVEz?=
 =?utf-8?B?K3lvcW1qMzNxaFdGMXowZ3hNd0IwcXplNDdjZko4Vkk4MFU5b21WdWs1bkxO?=
 =?utf-8?B?NGRjS3Nweng4bFVEQUNaUEd2ZXF2bEM1TFUwRlJxWGkxSFZXWndSSkJERkIy?=
 =?utf-8?B?dHQ1UGFjNEtYLytHTzNiTCtMZ01wZEEwb3JEenpXd1J5UVlUTHVBM0w0L2JN?=
 =?utf-8?B?TEF3T1dSeWI3K0FTZUc1WW91OHBVdUpQeThXcUFlZnBkK3NpZVlaLzMyUHlC?=
 =?utf-8?B?cXdTc1dJSnBTaVdZY2xobEhvdW44MVBGaHFmejl2YkRjQ0NRSGpGeDhvMktY?=
 =?utf-8?B?Y3hTcUs2VWdWNktTWE5ROVZxQkhKNU53dWVZSnlJMmZaNldtMS9WeXlrSXRk?=
 =?utf-8?B?SEtrYnJXbFp2cnQ5T1FwL3FOb2FIRlhxRGI2QnRaMmN2RlZjc2tFcWtBRHBz?=
 =?utf-8?B?TUEvMFdxTURWUTVHNFcrWVRGbWs2a1M4RnVFKzhqZnRXOEZlWUZwc2N2TWVq?=
 =?utf-8?B?TjVEKzVzb0tSQ0VpcnU5RWg5MUtSMlg3Ly9VRWJMeTI3dTRnQWJXbTJoeG9E?=
 =?utf-8?B?SERyR2FNNHhPdnNGR1huaHRaelEzN0gzb1BYMmtiYVlHM1lObFN4TUYrZDY0?=
 =?utf-8?B?aEpyY0NySUtTeWNOSHVEWkVMSHFBeEN3NjhjZTF3ekJWSEYvSG53Nm1mdzIx?=
 =?utf-8?B?c1BrbXkvOW1IS09UeXdEcFl4WjB0L2FpRUNaa2w4by9wNEhOVjVLS3VGUlBq?=
 =?utf-8?B?RCtTSDhNN1JvWWRiOUs4K2d6bVE3bTFCbzFXMExseVpQd0RLNEJjTVFyS0F6?=
 =?utf-8?B?Nm5wWmMweGVMa3JKMjZoQVhPL1BHTFpaR3MvSlozNHlnL25BQlAwcUpFNHMw?=
 =?utf-8?B?cHY1QWlWM1JldS9DTUx3VlNvWk1nL282cHoxa08rUFpVUU1NVVRpSU9rUEIw?=
 =?utf-8?B?MTJhd0NsWlgvT3lDQ0JyZFlVMWs5U1J4SE5sNHk5czV4amlsd0tYYTBKc1BX?=
 =?utf-8?B?ZW5hUWp0UWdib2E1VnZzT3FUOUtDbkFmNDFaRkVGSXpHekh4ZmFEbDFxaWZN?=
 =?utf-8?Q?zxe3C7ifRa8=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN9PR12MB5273.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?K0pIZjB2NE1wTCt5QlhhdituODBjbFVpbW1UYnBxRTBDWHVDUXVnMjJWSUhC?=
 =?utf-8?B?dGl3NWQ1dFg5TEd6Y3JuOUEvc2Uyc2E4SzUyMnZOK1haSXp3QkZEbFZqT3Qy?=
 =?utf-8?B?YzgwT3lveVlIbU5jN3MreGxURC9sMFRFbDQyS0ljMENqaWp0TU43cEsyL2Zi?=
 =?utf-8?B?eGNBZlIraTc4UFRWelBqSVh4R0wyZmNJcVh6R0VNSnRFSWJleFFkZ3J2SDJW?=
 =?utf-8?B?a2FSNmZsd0xYN09sZE9ybkRZeVc5YkoyancwSHVqSXpycGEwZjltb3JMZm9P?=
 =?utf-8?B?Uy9hTnZqOHQ0dGFaUE1FeG5zVGo4ZWgrL2FIdDZBalE2N1BiSDFhSVE4MEJp?=
 =?utf-8?B?QWx5RGRuQXhyTGo5enoxK0ZYdnhKczJJRmJNUGV6QjBiWnVFLzFvMWNIQjZ4?=
 =?utf-8?B?ckYzd0l1dG5tUmhScm81NGs4djZuZHR0NVluRTd3QXlESC9jcStVWnRLcStm?=
 =?utf-8?B?MWdpWjRDTXpyWk5KRGtIRHVOY1hPS3hYeHdrWFdOUzZCWHB5NHRXUkdLY3Jw?=
 =?utf-8?B?QjVQNlhxQzFFK0swS2hSMmR3UFJoa2FuMXBIZGRESWFnbnM0Tkh1aWJrUGNC?=
 =?utf-8?B?anZtWjVRQVNucDFDVVVvV1dINlNjYlpjcG9ZK2pTY1JXOE0zRk5PQjYxaHZS?=
 =?utf-8?B?NFAvU0tLN1BoMEpOSVNDY3NhVUp3TmI1Z2l5NFU1NDBQUnR3bk1KbzlKbUpG?=
 =?utf-8?B?a3BabnFVNm1aN3IvWVJFVmNveUUwVmZYalZlTGFNODVPeVVtZUdoaFlXUktj?=
 =?utf-8?B?SnROWFB5ejRzTTBrbkZiSW5nekdJZzJ2VGFiNnZ5cmppYnRPZGcvY1hTUVA0?=
 =?utf-8?B?N0JIcnprL20vNTZXVHlzbTBBUEU5WWR6YkROazcvQUU4V2Q0U0NCdDRQVEcx?=
 =?utf-8?B?K0kveElYYWs4aHdSY1FVQldNejV2MENhS2I5UFpGbVpoRnF2ZjJLZTdpZm1C?=
 =?utf-8?B?b012RTdwRXNkKzRmRkVxS3FTRUV4Y0UrU2dVWmlzWnEzTXRLeXIzQTYvL003?=
 =?utf-8?B?QmJmc2d1WG02MlR0ODRUNEl1SCtxOGJONWhlSkpwek82Z0RaREdrVDRTajkw?=
 =?utf-8?B?QlYveGg0SlRiUW5uUjdkcDJwQUdUZXpybkVIa2V2T0FMUE5WaW1yeXhzWTh0?=
 =?utf-8?B?Wlp4bVpKS3pQQkRSWE5FQWRTclp3NjFwbXJQZWs1eitmTi92OStaandaOVk4?=
 =?utf-8?B?WEQ0d2xKYTBhNk9EbnRKOWpXWjg1WFBYc2p5RjRpOTFxcG9oZ25FeWtUUk9j?=
 =?utf-8?B?RHkxMWYzRXkyVzFwajV3eGM5dUFKbGtBSnJ1d0xwZ1NMbVo5K0VacCthM3E2?=
 =?utf-8?B?cFkzbGxrdjBQSm4xaFRNTnBDcDFmYW1nK1FvNDBZT3ZQRXU0THRWanQ4RGpj?=
 =?utf-8?B?SUxPNHh1WUpmVTlUUys2eUNRWlR6ejdPd21FZ1RlWGtCSDdOWmN1M3dYbklH?=
 =?utf-8?B?RUd2UDJJeGcrWXlDVllNYkM1cks5dHpuVkxkUGtRcTJaOGhVWklFeVd1Zk5E?=
 =?utf-8?B?SkEyRkFwNjdiTi9GQ3JBZVR6Tjc1TG5HMlhjOUlERlZkZkxzaVVVR3BOZVBW?=
 =?utf-8?B?NW1EYWx5YXRoa0RKVEV6WmpReHI5Zm8rd25iRnYvRTdjaUhjZFVTSUVVODl1?=
 =?utf-8?B?NU0xNUZFcEFaRjJlZlltWGlZUmdtaUZyRHdsVVQzRGhDR0xuS2wwY25FMnpa?=
 =?utf-8?B?WVM2aDhvU2YzNWlnRWhqaC9vb2d1SnJCVktCNTgrc2sxR3VRcitHVEYybXBm?=
 =?utf-8?B?Znh1SlJCT2x3TmxvYVJKTDFoNktodFhFbEg0UnA0MEQ0WjhWVnp6VS9uMk92?=
 =?utf-8?B?cHdTMjdFNThOZUY4SFpyVWtwQXYvU2VONnpzMjBGb05Ddk1tM1RkWnlqWm8r?=
 =?utf-8?B?TFZJcmdxZkp4ZUNWSXp3cXZ0Y2tQKytlSUkrclNqWnFFS1FremVzRFJsQTFI?=
 =?utf-8?B?YmhlYmVRTTRrNGVoaG51d1lqTWVGOEd0VGRIZGhQZUx4a2plOFp3ZFlGY0Jw?=
 =?utf-8?B?ZENJTlBhdFIxNHJRRHRNazZQNHpXWVk2OVowQUZMaytFMVZTalVHQ0NCOTBs?=
 =?utf-8?B?MlYvSE10MXdsRUJHd3lNckdlWWluVEZGZUJ4Wk5saitIN0JxVldocGpaV3B1?=
 =?utf-8?Q?I8NA=3D?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 65e7954f-138e-48ff-f2ef-08dd7cb996f6
X-MS-Exchange-CrossTenant-AuthSource: BN9PR12MB5273.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Apr 2025 07:37:50.2416
 (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: WJbcIfEXlJC6aEzfT1v100LsbbWzsu1QHgK3zt4zA8AWTzBvE7N3rCoGYtveeReJ
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH8PR12MB7182



On 15/04/2025 08:55, Jan Beulich wrote:
> On 14.04.2025 18:45, Ayan Kumar Halder wrote:
>> Enable early booting of Armv8-R AArch32 based systems.
>>
>> Added Luca's R-b in all the patches.
>> Added Michal's R-b in patch 1 and 3.
>>
>> Ayan Kumar Halder (3):
>>   xen/arm: Move some of the functions to common file
>>   xen/arm32: Create the same boot-time MPU regions as arm64
>>   xen/arm32: mpu: Stubs to build MPU for arm32
>>
>>  xen/arch/arm/arm32/Makefile              |   1 +
>>  xen/arch/arm/arm32/mpu/Makefile          |   3 +
>>  xen/arch/arm/arm32/mpu/head.S            | 104 +++++++++++++++++++++++
>>  xen/arch/arm/arm32/mpu/p2m.c             |  19 +++++
>>  xen/arch/arm/arm32/mpu/smpboot.c         |  26 ++++++
>>  xen/arch/arm/arm64/mpu/head.S            |  78 +----------------
>>  xen/arch/arm/include/asm/arm32/sysregs.h |  13 ++-
>>  xen/arch/arm/include/asm/arm64/sysregs.h |  13 +++
>>  xen/arch/arm/include/asm/cpregs.h        |   2 +
>>  xen/arch/arm/include/asm/mm.h            |   9 +-
>>  xen/arch/arm/include/asm/mmu/mm.h        |   7 ++
>>  xen/arch/arm/include/asm/mpu/cpregs.h    |  32 +++++++
>>  xen/arch/arm/include/asm/mpu/mm.h        |   5 ++
>>  xen/arch/arm/include/asm/mpu/regions.inc |  79 +++++++++++++++++
>>  xen/arch/arm/mpu/Makefile                |   1 +
>>  xen/arch/arm/mpu/domain_page.c           |  45 ++++++++++
>>  16 files changed, 350 insertions(+), 87 deletions(-)
>>  create mode 100644 xen/arch/arm/arm32/mpu/Makefile
>>  create mode 100644 xen/arch/arm/arm32/mpu/head.S
>>  create mode 100644 xen/arch/arm/arm32/mpu/p2m.c
>>  create mode 100644 xen/arch/arm/arm32/mpu/smpboot.c
>>  create mode 100644 xen/arch/arm/include/asm/mpu/cpregs.h
>>  create mode 100644 xen/arch/arm/include/asm/mpu/regions.inc
>>  create mode 100644 xen/arch/arm/mpu/domain_page.c
> 
> Even if we have files of this name elsewhere, it would imo be nice if new ones
> still used dash(es) instead of underscore(s) in their names.
I took care of this while committing.

~Michal



From xen-devel-bounces@lists.xenproject.org Wed Apr 16 07:40:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 07:40:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.955178.1348989 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4xNL-0005JS-Vx; Wed, 16 Apr 2025 07:40:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 955178.1348989; Wed, 16 Apr 2025 07:40: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 1u4xNL-0005J2-SS; Wed, 16 Apr 2025 07:40:03 +0000
Received: by outflank-mailman (input) for mailman id 955178;
 Wed, 16 Apr 2025 07:40: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=Ti8b=XC=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1u4xNK-0004tR-6S
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 07:40:02 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 009e065d-1a96-11f0-9eaf-5ba50f476ded;
 Wed, 16 Apr 2025 09:40:01 +0200 (CEST)
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 5D26C152B;
 Wed, 16 Apr 2025 00:39:58 -0700 (PDT)
Received: from C3HXLD123V.arm.com (unknown [10.57.44.175])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 8E5FF3F66E;
 Wed, 16 Apr 2025 00:39:58 -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: 009e065d-1a96-11f0-9eaf-5ba50f476ded
From: Bertrand Marquis <bertrand.marquis@arm.com>
To: xen-devel@lists.xenproject.org
Cc: jens.wiklander@linaro.org,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>
Subject: [PATCH v5 0/6] FF-A VM to VM support
Date: Wed, 16 Apr 2025 09:39:41 +0200
Message-ID: <cover.1744787720.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.47.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

This patch serie adds support to use FF-A between VM for communications
using indirect messages.

It adds a Kconfig parameter to enable this feature and marks it as
experimental as for now there is no system to restrict communication
rights between VM using this system.

It also adds support to use VM to VM communications using FF-A even if
there is no firmware support for FF-A. As this feature enables FF-A
support in all cases, we also introduce a new command line parameter to
allow the user to force which tee is to be used between FF-A and Optee
to have a solution to enable optee support if FF-A VM to VM is enabled.

Changes since v4:
- fix typos and optimize command line parameter
- split VM to VM support in 2 patches to ease review
- organize ffa contexts in a chain list to be able to build the partinfo
  result without taking the global domain lock
- introduce a maximum number of SPs to prevent holding the CPU for too
  long during partinfo call
- use an atomic to store the number of FF-A VMs
- prevent potential overflows in indirect message handling
- fix copy bug in indirect message introduced in v4

Changes since v3:
- reintroduce firmare v1.0 support in partinfo
- fix a possible TOC/TOU issue in indirect message handling
- typos and small fixes

Changes since v2:
- Rework partition_info_get implementation
- Taint Xen and display a message when VM to VM is enabled
- Various fixes explained in each patch

Changes since v1 (rfc):
- add a tee command line parameter
- use IS_ENABLED instead of ifdef when possible
- rebase on latest staging


Bertrand Marquis (6):
  xen/arm: Create tee command line parameter
  xen/arm: ffa: Rework partinfo_get implementation
  xen/arm: ffa: Introduce VM to VM support
  xen/arm: ffa: Add buffer full notification support
  xen/arm: ffa: Add indirect message between VM
  xen/arm: ffa: Enable VM to VM without firmware

 docs/misc/xen-command-line.pandoc  |  14 ++
 xen/arch/arm/include/asm/tee/tee.h |   4 +
 xen/arch/arm/tee/Kconfig           |  11 ++
 xen/arch/arm/tee/ffa.c             |  69 ++++++-
 xen/arch/arm/tee/ffa_msg.c         | 115 ++++++++++--
 xen/arch/arm/tee/ffa_notif.c       | 140 +++++++-------
 xen/arch/arm/tee/ffa_partinfo.c    | 286 ++++++++++++++++++++---------
 xen/arch/arm/tee/ffa_private.h     | 153 ++++++++++++---
 xen/arch/arm/tee/tee.c             |  32 ++++
 9 files changed, 628 insertions(+), 196 deletions(-)

-- 
2.47.1



From xen-devel-bounces@lists.xenproject.org Wed Apr 16 07:40:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 07:40:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.955184.1348999 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4xNc-00068K-5i; Wed, 16 Apr 2025 07:40:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 955184.1348999; Wed, 16 Apr 2025 07: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 1u4xNc-00068D-36; Wed, 16 Apr 2025 07:40:20 +0000
Received: by outflank-mailman (input) for mailman id 955184;
 Wed, 16 Apr 2025 07:40: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=Ti8b=XC=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1u4xNb-00065X-2O
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 07:40:19 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 0a474548-1a96-11f0-9ffb-bf95429c2676;
 Wed, 16 Apr 2025 09:40:17 +0200 (CEST)
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 7D823152B;
 Wed, 16 Apr 2025 00:40:14 -0700 (PDT)
Received: from C3HXLD123V.arm.com (unknown [10.57.44.175])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id AF4DB3F66E;
 Wed, 16 Apr 2025 00:40: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: 0a474548-1a96-11f0-9ffb-bf95429c2676
From: Bertrand Marquis <bertrand.marquis@arm.com>
To: xen-devel@lists.xenproject.org
Cc: jens.wiklander@linaro.org,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>
Subject: [PATCH v5 1/6] xen/arm: Create tee command line parameter
Date: Wed, 16 Apr 2025 09:39:42 +0200
Message-ID: <e175a051ecefe0adf3b31d5c5bc25efda67d6b75.1744787720.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.47.1
In-Reply-To: <cover.1744787720.git.bertrand.marquis@arm.com>
References: <cover.1744787720.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add a new command line parameter "tee=" to be used to explicitly select
what tee mediator is to be used by Xen and fail if it does not exist
or the probe function for it failed.

Without specifying which tee is to be used, Xen will use the first one
for which the probe function succeeds which depends on the order of the
mediator list which depends on the compiler.
Using the command line argument, it is now possible to explicit request
a specific TEE mediator and panic on boot if it is not available.

Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
---
Changes in v5:
- Typo fix and rewording in command line doc (Julien)
- fix include order in tee.c (Julien)
- use a local bool instead of retesting the string each time in tee_init
  (Julien)
Changes in v4:
- None
Changes in v3:
- Properly classify tee as arm specific (Jan)
Changes in v2:
- Patch introduced to add a command line selection of the TEE
---
 docs/misc/xen-command-line.pandoc  | 14 +++++++++++++
 xen/arch/arm/include/asm/tee/tee.h |  4 ++++
 xen/arch/arm/tee/tee.c             | 32 ++++++++++++++++++++++++++++++
 3 files changed, 50 insertions(+)

diff --git a/docs/misc/xen-command-line.pandoc b/docs/misc/xen-command-line.pandoc
index 89db6e83be66..472de1911363 100644
--- a/docs/misc/xen-command-line.pandoc
+++ b/docs/misc/xen-command-line.pandoc
@@ -2651,6 +2651,20 @@ Specify the per-cpu trace buffer size in pages.
 
 Flag to enable TSC deadline as the APIC timer mode.
 
+### tee (arm)
+> `= <string>`
+
+Specify the TEE mediator to be probed and use.
+
+The default behaviour is to probe all TEEs supported by Xen and use
+the first one successfully probed. When this parameter is passed, Xen will
+probe only the TEE mediator passed as argument and boot will fail if this
+mediator is not properly probed or if the requested TEE is not supported by
+Xen.
+
+This parameter can be set to `optee` or `ffa` if the corresponding mediators
+are compiled in.
+
 ### tevt_mask
 > `= <integer>`
 
diff --git a/xen/arch/arm/include/asm/tee/tee.h b/xen/arch/arm/include/asm/tee/tee.h
index 0169fd746bcd..15d664e28dce 100644
--- a/xen/arch/arm/include/asm/tee/tee.h
+++ b/xen/arch/arm/include/asm/tee/tee.h
@@ -55,6 +55,9 @@ struct tee_mediator_desc {
     /* Printable name of the TEE. */
     const char *name;
 
+    /* Command line name of the TEE (to be used with tee= cmdline option) */
+    const char *cmdline_name;
+
     /* Mediator callbacks as described above. */
     const struct tee_mediator_ops *ops;
 
@@ -77,6 +80,7 @@ void tee_free_domain_ctx(struct domain *d);
 static const struct tee_mediator_desc __tee_desc_##_name __used     \
 __section(".teemediator.info") = {                                  \
     .name = _namestr,                                               \
+    .cmdline_name = #_name,                                         \
     .ops = _ops,                                                    \
     .tee_type = _type                                               \
 }
diff --git a/xen/arch/arm/tee/tee.c b/xen/arch/arm/tee/tee.c
index 3f65e45a7892..8501443c8e57 100644
--- a/xen/arch/arm/tee/tee.c
+++ b/xen/arch/arm/tee/tee.c
@@ -18,6 +18,7 @@
 
 #include <xen/errno.h>
 #include <xen/init.h>
+#include <xen/param.h>
 #include <xen/types.h>
 
 #include <asm/tee/tee.h>
@@ -25,6 +26,10 @@
 extern const struct tee_mediator_desc _steemediator[], _eteemediator[];
 static const struct tee_mediator_desc __read_mostly *cur_mediator;
 
+/* Select the TEE mediator using a name on command line. */
+static char __initdata opt_mediator[16] = "";
+string_param("tee", opt_mediator);
+
 /*
  * TODO: Add function to alter Dom0 DTB, so we can properly describe
  * present TEE.
@@ -80,15 +85,42 @@ uint16_t tee_get_type(void)
 static int __init tee_init(void)
 {
     const struct tee_mediator_desc *desc;
+    bool select_mediator = strcmp(opt_mediator, "");
+
+    if ( select_mediator )
+        printk(XENLOG_INFO "TEE Mediator %s selected from command line\n",
+               opt_mediator);
 
+    /*
+     * When a specific TEE is selected using the 'tee=' command line
+     * argument, we panic if the probe fails or if the requested TEE is not
+     * supported.
+     */
     for ( desc = _steemediator; desc != _eteemediator; desc++ )
     {
+        if ( select_mediator &&
+             strncmp(opt_mediator, desc->cmdline_name, sizeof(opt_mediator)) )
+            continue;
+
         if ( desc->ops->probe() )
         {
             printk(XENLOG_INFO "Using TEE mediator for %s\n", desc->name);
             cur_mediator = desc;
             return 0;
         }
+        else if ( select_mediator )
+        {
+            panic("TEE mediator %s from command line probe failed\n",
+                  opt_mediator);
+            return -EFAULT;
+        }
+    }
+
+    if ( select_mediator )
+    {
+        panic("TEE Mediator %s from command line not supported\n",
+              opt_mediator);
+        return -EINVAL;
     }
 
     return 0;
-- 
2.47.1



From xen-devel-bounces@lists.xenproject.org Wed Apr 16 07:40:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 07:40:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.955185.1349005 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4xNc-0006Bd-GQ; Wed, 16 Apr 2025 07:40:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 955185.1349005; Wed, 16 Apr 2025 07: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 1u4xNc-0006AS-AF; Wed, 16 Apr 2025 07:40:20 +0000
Received: by outflank-mailman (input) for mailman id 955185;
 Wed, 16 Apr 2025 07: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=Ti8b=XC=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1u4xNb-0004tR-Bh
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 07:40:19 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 0b323349-1a96-11f0-9eaf-5ba50f476ded;
 Wed, 16 Apr 2025 09:40:18 +0200 (CEST)
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 1FAA41595;
 Wed, 16 Apr 2025 00:40:16 -0700 (PDT)
Received: from C3HXLD123V.arm.com (unknown [10.57.44.175])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id D68063F66E;
 Wed, 16 Apr 2025 00:40: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: 0b323349-1a96-11f0-9eaf-5ba50f476ded
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 v5 2/6] xen/arm: ffa: Rework partinfo_get implementation
Date: Wed, 16 Apr 2025 09:39:43 +0200
Message-ID: <7784969bf79154363ac3479b9489778d03349c77.1744787720.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.47.1
In-Reply-To: <cover.1744787720.git.bertrand.marquis@arm.com>
References: <cover.1744787720.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

This patch is in preparation for VM to VM support in order to do the
changes on the SP handling part of partinfo_get before adding support
for the VM part.

This patches is doing the following changes:
- split partinfo_get into 3 functions to have the locking handling and
  proper exit on error handled more clearly
- add some potential overflow checks to validate the offset and sizes
  passed by the VM on partinfo call.
- Introduce a maximum number of SPs (for now set to 64) to prevent
  holding the CPU for too long in case there would be a lot of
  partitions in the secure world. The limit currently set is thought to
  be realistic for most use cases as 64 secure partitions is a very high
  number compared to current seen usage (more 3 or 4).
- fix include ordering in ffa_private.h to be in alphabetic order

Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
---
Changes in v5:
- patch added
---
 xen/arch/arm/tee/ffa_partinfo.c | 201 +++++++++++++++++++-------------
 xen/arch/arm/tee/ffa_private.h  |  18 ++-
 2 files changed, 131 insertions(+), 88 deletions(-)

diff --git a/xen/arch/arm/tee/ffa_partinfo.c b/xen/arch/arm/tee/ffa_partinfo.c
index c0510ceb8338..e524445c6fb8 100644
--- a/xen/arch/arm/tee/ffa_partinfo.c
+++ b/xen/arch/arm/tee/ffa_partinfo.c
@@ -63,9 +63,95 @@ static int32_t ffa_partition_info_get(uint32_t *uuid, uint32_t flags,
     return ret;
 }
 
-void ffa_handle_partition_info_get(struct cpu_user_regs *regs)
+static int32_t ffa_get_sp_count(uint32_t *uuid, uint32_t *sp_count)
+{
+    uint32_t src_size;
+
+    return ffa_partition_info_get(uuid, FFA_PARTITION_INFO_GET_COUNT_FLAG,
+                                  sp_count, &src_size);
+}
+
+static int32_t ffa_get_sp_partinfo(uint32_t *uuid, uint32_t *sp_count,
+                                   void *dst_buf, void *end_buf,
+                                   uint32_t dst_size)
 {
     int32_t ret;
+    uint32_t src_size, real_sp_count;
+    void *src_buf = ffa_rx;
+    uint32_t count = 0;
+
+    /* Do we have a RX buffer with the SPMC */
+    if ( !ffa_rx )
+        return FFA_RET_DENIED;
+
+    /* We need to use the RX buffer to receive the list */
+    spin_lock(&ffa_rx_buffer_lock);
+
+    ret = ffa_partition_info_get(uuid, 0, &real_sp_count, &src_size);
+    if ( ret )
+        goto out;
+
+    /* We now own the RX buffer */
+
+    /* Validate the src_size we got */
+    if ( src_size < sizeof(struct ffa_partition_info_1_0) ||
+         src_size >= FFA_PAGE_SIZE )
+    {
+        ret = FFA_RET_NOT_SUPPORTED;
+        goto out_release;
+    }
+
+    /*
+     * Limit the maximum time we hold the CPU by limiting the number of SPs.
+     * We just ignore the extra ones as this is tested during init in
+     * ffa_partinfo_init so the only possible reason is SP have been added
+     * since boot.
+     */
+    if ( real_sp_count > FFA_MAX_NUM_SP )
+        real_sp_count = FFA_MAX_NUM_SP;
+
+    /* Make sure the data fits in our buffer */
+    if ( real_sp_count > (FFA_RXTX_PAGE_COUNT * FFA_PAGE_SIZE) / src_size )
+    {
+        ret = FFA_RET_NOT_SUPPORTED;
+        goto out_release;
+    }
+
+    for ( uint32_t sp_num = 0; sp_num < real_sp_count; sp_num++ )
+    {
+        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) )
+        {
+            if ( dst_buf > (end_buf - dst_size) )
+            {
+                ret = FFA_RET_NO_MEMORY;
+                goto out_release;
+            }
+
+            memcpy(dst_buf, src_buf, MIN(src_size, dst_size));
+            if ( dst_size > src_size )
+                memset(dst_buf + src_size, 0, dst_size - src_size);
+
+            dst_buf += dst_size;
+            count++;
+        }
+
+        src_buf += src_size;
+    }
+
+    *sp_count = count;
+
+out_release:
+    ffa_hyp_rx_release();
+out:
+    spin_unlock(&ffa_rx_buffer_lock);
+    return ret;
+}
+void ffa_handle_partition_info_get(struct cpu_user_regs *regs)
+{
+    int32_t ret = FFA_RET_OK;
     struct domain *d = current->domain;
     struct ffa_ctx *ctx = d->arch.tee;
     uint32_t flags = get_user_reg(regs, 5);
@@ -75,8 +161,8 @@ void ffa_handle_partition_info_get(struct cpu_user_regs *regs)
         get_user_reg(regs, 3),
         get_user_reg(regs, 4),
     };
-    uint32_t src_size, dst_size;
-    void *dst_buf;
+    uint32_t dst_size = 0;
+    void *dst_buf, *end_buf;
     uint32_t ffa_sp_count = 0;
 
     /*
@@ -89,31 +175,26 @@ void ffa_handle_partition_info_get(struct cpu_user_regs *regs)
     else
         dst_size = sizeof(struct ffa_partition_info_1_1);
 
-    /*
-     * FF-A v1.0 has w5 MBZ while v1.1 allows
-     * FFA_PARTITION_INFO_GET_COUNT_FLAG to be non-zero.
-     *
-     * FFA_PARTITION_INFO_GET_COUNT is only using registers and not the
-     * rxtx buffer so do the partition_info_get directly.
-     */
-    if ( flags == FFA_PARTITION_INFO_GET_COUNT_FLAG &&
-         ctx->guest_vers == FFA_VERSION_1_1 )
+    /* Only count requested */
+    if ( flags )
     {
+        /*
+         * FF-A v1.0 has w5 MBZ while v1.1 allows
+         * FFA_PARTITION_INFO_GET_COUNT_FLAG to be non-zero.
+         */
+        if ( ctx->guest_vers == FFA_VERSION_1_0 ||
+                flags != FFA_PARTITION_INFO_GET_COUNT_FLAG )
+        {
+            ret = FFA_RET_INVALID_PARAMETERS;
+            goto out;
+        }
+
         if ( ffa_fw_supports_fid(FFA_PARTITION_INFO_GET) )
-            ret = ffa_partition_info_get(uuid, flags, &ffa_sp_count,
-                                        &src_size);
-        else
-            ret = FFA_RET_OK;
+            ret = ffa_get_sp_count(uuid, &ffa_sp_count);
 
         goto out;
     }
 
-    if ( flags )
-    {
-        ret = FFA_RET_INVALID_PARAMETERS;
-        goto out;
-    }
-
     if ( !ffa_fw_supports_fid(FFA_PARTITION_INFO_GET) )
     {
         /* Just give an empty partition list to the caller */
@@ -121,80 +202,33 @@ void ffa_handle_partition_info_get(struct cpu_user_regs *regs)
         goto out;
     }
 
+    /* Get the RX buffer to write the list of partitions */
     ret = ffa_rx_acquire(d);
     if ( ret != FFA_RET_OK )
         goto out;
 
     dst_buf = ctx->rx;
+    end_buf = ctx->rx + ctx->page_count * FFA_PAGE_SIZE;
 
-    if ( !ffa_rx )
-    {
-        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_hyp_unlock;
+    /* An entry should be smaller than a page */
+    BUILD_BUG_ON(sizeof(struct ffa_partition_info_1_1) > FFA_PAGE_SIZE);
 
     /*
-     * ffa_partition_info_get() succeeded so we now own the RX buffer we
-     * share with the SPMC. We must give it back using ffa_hyp_rx_release()
-     * once we've copied the content.
+     * Check for overflow and that we can at least store one entry.
+     * page_count cannot be 0 so we have at least one page.
      */
-
-    /* we cannot have a size smaller than 1.0 structure */
-    if ( src_size < sizeof(struct ffa_partition_info_1_0) )
-    {
-        ret = FFA_RET_NOT_SUPPORTED;
-        goto out_rx_hyp_release;
-    }
-
-    if ( ctx->page_count * FFA_PAGE_SIZE < ffa_sp_count * dst_size )
+    if ( dst_buf >= end_buf || dst_buf > (end_buf - dst_size) )
     {
-        ret = FFA_RET_NO_MEMORY;
-        goto out_rx_hyp_release;
+        ret = FFA_RET_INVALID_PARAMETERS;
+        goto out_rx_release;
     }
 
-    if ( ffa_sp_count > 0 )
-    {
-        uint32_t n, n_limit = ffa_sp_count;
-        void *src_buf = ffa_rx;
-
-        /* copy the secure partitions info */
-        for ( n = 0; n < n_limit; n++ )
-        {
-            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--;
+    ret = ffa_get_sp_partinfo(uuid, &ffa_sp_count, dst_buf, end_buf,
+                              dst_size);
 
-            src_buf += src_size;
-        }
-    }
 
-out_rx_hyp_release:
-    ffa_hyp_rx_release();
-out_rx_hyp_unlock:
-    spin_unlock(&ffa_rx_buffer_lock);
 out_rx_release:
-    /*
-     * The calling VM RX buffer only contains data to be used by the VM if the
-     * call was successful, 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 )
+    if ( ret )
         ffa_rx_release(d);
 out:
     if ( ret )
@@ -353,9 +387,10 @@ bool ffa_partinfo_init(void)
         goto out;
     }
 
-    if ( count >= UINT16_MAX )
+    if ( count >= FFA_MAX_NUM_SP )
     {
-        printk(XENLOG_ERR "ffa: Impossible number of SPs: %u\n", count);
+        printk(XENLOG_ERR "ffa: More SPs than the maximum supported: %u - %u\n",
+               count, FFA_MAX_NUM_SP);
         goto out;
     }
 
diff --git a/xen/arch/arm/tee/ffa_private.h b/xen/arch/arm/tee/ffa_private.h
index c4cd65538908..0a9c1082db28 100644
--- a/xen/arch/arm/tee/ffa_private.h
+++ b/xen/arch/arm/tee/ffa_private.h
@@ -6,15 +6,15 @@
 #ifndef __FFA_PRIVATE_H__
 #define __FFA_PRIVATE_H__
 
+#include <xen/bitmap.h>
 #include <xen/const.h>
-#include <xen/sizes.h>
-#include <xen/types.h>
-#include <xen/mm.h>
 #include <xen/list.h>
-#include <xen/spinlock.h>
+#include <xen/mm.h>
 #include <xen/sched.h>
+#include <xen/sizes.h>
+#include <xen/spinlock.h>
 #include <xen/time.h>
-#include <xen/bitmap.h>
+#include <xen/types.h>
 
 /* Error codes */
 #define FFA_RET_OK                      0
@@ -108,6 +108,14 @@
  */
 #define FFA_CTX_TEARDOWN_DELAY          SECONDS(1)
 
+/*
+ * The maximum number of Secure partitions we support for partinfo_get.
+ * This prevents holding the CPU during potentially to long time during
+ * a partinfo_get call. Value choosen seems realistic for any configuration
+ * but can be incremented here if needed.
+ */
+#define FFA_MAX_NUM_SP                  64
+
 /*
  * We rely on the convention suggested but not mandated by the FF-A
  * specification that secure world endpoint identifiers have the bit 15
-- 
2.47.1



From xen-devel-bounces@lists.xenproject.org Wed Apr 16 07:40:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 07:40:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.955186.1349019 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4xNf-0006eE-LD; Wed, 16 Apr 2025 07:40:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 955186.1349019; Wed, 16 Apr 2025 07: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 1u4xNf-0006e7-I4; Wed, 16 Apr 2025 07:40:23 +0000
Received: by outflank-mailman (input) for mailman id 955186;
 Wed, 16 Apr 2025 07:40:22 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Ti8b=XC=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1u4xNe-0004tR-Cc
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 07:40:22 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 0cfc9268-1a96-11f0-9eaf-5ba50f476ded;
 Wed, 16 Apr 2025 09:40:21 +0200 (CEST)
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 2FA0C152B;
 Wed, 16 Apr 2025 00:40:19 -0700 (PDT)
Received: from C3HXLD123V.arm.com (unknown [10.57.44.175])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 0F4453F66E;
 Wed, 16 Apr 2025 00:40: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: 0cfc9268-1a96-11f0-9eaf-5ba50f476ded
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 v5 4/6] xen/arm: ffa: Add buffer full notification support
Date: Wed, 16 Apr 2025 09:39:45 +0200
Message-ID: <95b87ebec5ffa5e7200f6cc1ba8503c8d92c6f37.1744787720.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.47.1
In-Reply-To: <cover.1744787720.git.bertrand.marquis@arm.com>
References: <cover.1744787720.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add support to raise a Rx buffer full notification to a VM.
This function will be used for indirect message support between VM and
is only activated if CONFIG_FFA_VM_TO_VM is selected.

Even if there are 32 framework notifications possible, right now only
one is defined so the implementation is simplified to only handle the
buffer full notification using a boolean. If other framework
notifications have to be supported one day, the design will have to be
modified to handle it properly.

Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
---
Changes in v5:
- None
Changes in v4:
- Add Jens R-b
Changes in v3:
- introduce a vm_pending boolean to track if VM notifications are
  pending and allow to decorelate pending secure notifications from
  pending vm ones
- remove ifdef around boolean entries for notifications and make use of
  IS_ENABLED instead of ifdefs when possible
- Fix notification number signaled to VMs for buffer full to use the
  proper GUEST_FFA_NOTIF_PEND_INTR_ID instead of the identifier received
  from the SPMC.
- Move back into this patch ffa_private.h part which was wrongly in the
  patch for indirect messages between VM
Changes in v2:
- Switch ifdef to IS_ENABLED when possible
---
 xen/arch/arm/tee/ffa_notif.c   | 36 ++++++++++++++++++++++++++++------
 xen/arch/arm/tee/ffa_private.h | 23 +++++++++++++++++++++-
 2 files changed, 52 insertions(+), 7 deletions(-)

diff --git a/xen/arch/arm/tee/ffa_notif.c b/xen/arch/arm/tee/ffa_notif.c
index 00efaf8f7353..f6df2f15bb00 100644
--- a/xen/arch/arm/tee/ffa_notif.c
+++ b/xen/arch/arm/tee/ffa_notif.c
@@ -69,6 +69,7 @@ void ffa_handle_notification_info_get(struct cpu_user_regs *regs)
 {
     struct domain *d = current->domain;
     struct ffa_ctx *ctx = d->arch.tee;
+    bool notif_pending;
 
     if ( !notif_enabled )
     {
@@ -76,7 +77,11 @@ void ffa_handle_notification_info_get(struct cpu_user_regs *regs)
         return;
     }
 
-    if ( test_and_clear_bool(ctx->notif.secure_pending) )
+    notif_pending = test_and_clear_bool(ctx->notif.secure_pending);
+    if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) )
+        notif_pending |= test_and_clear_bool(ctx->notif.vm_pending);
+
+    if ( notif_pending )
     {
         /* A pending global notification for the guest */
         ffa_set_regs(regs, FFA_SUCCESS_64, 0,
@@ -93,6 +98,7 @@ void ffa_handle_notification_info_get(struct cpu_user_regs *regs)
 void ffa_handle_notification_get(struct cpu_user_regs *regs)
 {
     struct domain *d = current->domain;
+    struct ffa_ctx *ctx = d->arch.tee;
     uint32_t recv = get_user_reg(regs, 1);
     uint32_t flags = get_user_reg(regs, 2);
     uint32_t w2 = 0;
@@ -132,11 +138,7 @@ void ffa_handle_notification_get(struct cpu_user_regs *regs)
          */
         if ( ( flags  & FFA_NOTIF_FLAG_BITMAP_SP ) &&
              ( flags & FFA_NOTIF_FLAG_BITMAP_SPM ) )
-        {
-                struct ffa_ctx *ctx = d->arch.tee;
-
-                ACCESS_ONCE(ctx->notif.secure_pending) = false;
-        }
+            ACCESS_ONCE(ctx->notif.secure_pending) = false;
 
         arm_smccc_1_2_smc(&arg, &resp);
         e = ffa_get_ret_code(&resp);
@@ -156,6 +158,14 @@ void ffa_handle_notification_get(struct cpu_user_regs *regs)
             w6 = resp.a6;
     }
 
+    if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) &&
+          flags & FFA_NOTIF_FLAG_BITMAP_HYP &&
+          test_and_clear_bool(ctx->notif.buff_full_pending) )
+    {
+        ACCESS_ONCE(ctx->notif.vm_pending) = false;
+        w7 = FFA_NOTIF_RX_BUFFER_FULL;
+    }
+
     ffa_set_regs(regs, FFA_SUCCESS_32, 0, w2, w3, w4, w5, w6, w7);
 }
 
@@ -178,6 +188,20 @@ int ffa_handle_notification_set(struct cpu_user_regs *regs)
                            bitmap_hi);
 }
 
+#ifdef CONFIG_FFA_VM_TO_VM
+void ffa_raise_rx_buffer_full(struct domain *d)
+{
+    struct ffa_ctx *ctx = d->arch.tee;
+
+    if ( !ctx )
+        return;
+
+    ACCESS_ONCE(ctx->notif.buff_full_pending) = true;
+    if ( !test_and_set_bool(ctx->notif.vm_pending) )
+        vgic_inject_irq(d, d->vcpu[0], GUEST_FFA_NOTIF_PEND_INTR_ID, true);
+}
+#endif
+
 /*
  * Extract a 16-bit ID (index n) from the successful return value from
  * FFA_NOTIFICATION_INFO_GET_64 or FFA_NOTIFICATION_INFO_GET_32. IDs are
diff --git a/xen/arch/arm/tee/ffa_private.h b/xen/arch/arm/tee/ffa_private.h
index 52c1078b06f4..63c21c1fc0f7 100644
--- a/xen/arch/arm/tee/ffa_private.h
+++ b/xen/arch/arm/tee/ffa_private.h
@@ -218,6 +218,8 @@
 #define FFA_NOTIF_INFO_GET_ID_COUNT_SHIFT   7
 #define FFA_NOTIF_INFO_GET_ID_COUNT_MASK    0x1F
 
+#define FFA_NOTIF_RX_BUFFER_FULL        BIT(0, U)
+
 /* Feature IDs used with FFA_FEATURES */
 #define FFA_FEATURE_NOTIF_PEND_INTR     0x1U
 #define FFA_FEATURE_SCHEDULE_RECV_INTR  0x2U
@@ -303,9 +305,20 @@ struct ffa_mem_region {
 struct ffa_ctx_notif {
     /*
      * True if domain is reported by FFA_NOTIFICATION_INFO_GET to have
-     * pending global notifications.
+     * pending notifications from the secure world.
      */
     bool secure_pending;
+
+    /*
+     * True if domain is reported by FFA_NOTIFICATION_INFO_GET to have
+     * pending notifications from VMs (including framework ones).
+     */
+    bool vm_pending;
+
+    /*
+     * True if domain has buffer full notification pending
+     */
+    bool buff_full_pending;
 };
 
 struct ffa_ctx {
@@ -414,6 +427,14 @@ 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);
 
+#ifdef CONFIG_FFA_VM_TO_VM
+void ffa_raise_rx_buffer_full(struct domain *d);
+#else
+static inline void ffa_raise_rx_buffer_full(struct domain *d)
+{
+}
+#endif
+
 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);
 
-- 
2.47.1



From xen-devel-bounces@lists.xenproject.org Wed Apr 16 07:40:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 07:40:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.955187.1349024 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4xNg-0006iQ-0o; Wed, 16 Apr 2025 07:40:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 955187.1349024; Wed, 16 Apr 2025 07: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 1u4xNf-0006hY-Q4; Wed, 16 Apr 2025 07:40:23 +0000
Received: by outflank-mailman (input) for mailman id 955187;
 Wed, 16 Apr 2025 07:40:22 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Ti8b=XC=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1u4xNe-00065X-De
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 07:40:22 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 0c2d0cc6-1a96-11f0-9ffb-bf95429c2676;
 Wed, 16 Apr 2025 09:40:20 +0200 (CEST)
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 AA52616F2;
 Wed, 16 Apr 2025 00:40:17 -0700 (PDT)
Received: from C3HXLD123V.arm.com (unknown [10.57.44.175])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 7A6C43F66E;
 Wed, 16 Apr 2025 00:40:18 -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: 0c2d0cc6-1a96-11f0-9ffb-bf95429c2676
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 v5 3/6] xen/arm: ffa: Introduce VM to VM support
Date: Wed, 16 Apr 2025 09:39:44 +0200
Message-ID: <f6c67adcae192bcbe9c7612fda1bef31c40bb9a0.1744787720.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.47.1
In-Reply-To: <cover.1744787720.git.bertrand.marquis@arm.com>
References: <cover.1744787720.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Create a CONFIG_FFA_VM_TO_VM parameter to activate FFA communication
between VMs.
When activated list VMs in the system with FF-A support in part_info_get.

When VM to VM is activated, Xen will be tainted as Insecure and a
message is displayed to the user during the boot as there is no
filtering of VMs in FF-A so any VM can communicate or see any other VM
in the system.

WARNING: There is no filtering for now and all VMs are listed !!

This patch is reorganizing the ffa_ctx structure to make clear which
lock is protecting what parts.

This patch is introducing a chain list of the ffa_ctx with a FFA Version
negociated allowing to create the partinfo results for VMs without
taking a lock on the global domain list in Xen.

Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
---
Changes in v5:
- remove invalid comment about 1.1 firmware support
- rename variables from d and dom to curr_d and dest_d (Julien)
- add a TODO in the code for potential holding for long of the CPU
  (Julien)
- use an atomic global variable to store the number of VMs instead of
  recomputing the value each time (Julien)
- add partinfo information in ffa_ctx (id, cpus and 64bit) and create a
  chain list of ctx. Use this chain list to create the partinfo result
  without holding a global lock to prevent concurrency issues.
- Move some changes in a preparation patch modifying partinfo for sps to
  reduce this patch size and make the review easier
Changes in v4:
- properly handle SPMC version 1.0 header size case in partinfo_get
- switch to local counting variables instead of *pointer += 1 form
- coding style issue with missing spaces in if ()
Changes in v3:
- break partinfo_get in several sub functions to make the implementation
  easier to understand and lock handling easier
- rework implementation to check size along the way and prevent previous
  implementation limits which had to check that the number of VMs or SPs
  did not change
- taint Xen as INSECURE when VM to VM is enabled
Changes in v2:
- Switch ifdef to IS_ENABLED
- dom was not switched to d as requested by Jan because there is already
  a variable d pointing to the current domain and it must not be
  shadowed.
---
 xen/arch/arm/tee/Kconfig        |  11 ++++
 xen/arch/arm/tee/ffa.c          |  47 +++++++++++++-
 xen/arch/arm/tee/ffa_partinfo.c |  95 ++++++++++++++++++++++++---
 xen/arch/arm/tee/ffa_private.h  | 112 ++++++++++++++++++++++++++------
 4 files changed, 233 insertions(+), 32 deletions(-)

diff --git a/xen/arch/arm/tee/Kconfig b/xen/arch/arm/tee/Kconfig
index c5b0f88d7522..88a4c4c99154 100644
--- a/xen/arch/arm/tee/Kconfig
+++ b/xen/arch/arm/tee/Kconfig
@@ -28,5 +28,16 @@ config FFA
 
 	  [1] https://developer.arm.com/documentation/den0077/latest
 
+config FFA_VM_TO_VM
+    bool "Enable FF-A between VMs (UNSUPPORTED)" if UNSUPPORTED
+    default n
+    depends on FFA
+    help
+      This option enables to use FF-A between VMs.
+      This is experimental and there is no access control so any
+      guest can communicate with any other guest.
+
+      If unsure, say N.
+
 endmenu
 
diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
index 3bbdd7168a6b..c1c4c0957091 100644
--- a/xen/arch/arm/tee/ffa.c
+++ b/xen/arch/arm/tee/ffa.c
@@ -118,6 +118,13 @@ void *ffa_tx __read_mostly;
 DEFINE_SPINLOCK(ffa_rx_buffer_lock);
 DEFINE_SPINLOCK(ffa_tx_buffer_lock);
 
+struct list_head ffa_ctx_head;
+/* Lock to protect addition/removal in ffa_ctx_head */
+DEFINE_SPINLOCK(ffa_ctx_list_lock);
+
+#ifdef CONFIG_FFA_VM_TO_VM
+atomic_t ffa_vm_count;
+#endif
 
 /* Used to track domains that could not be torn down immediately. */
 static struct timer ffa_teardown_timer;
@@ -160,10 +167,21 @@ static void handle_version(struct cpu_user_regs *regs)
      */
     if ( FFA_VERSION_MAJOR(vers) == FFA_MY_VERSION_MAJOR )
     {
+        uint32_t old_vers = ACCESS_ONCE(ctx->guest_vers);
+
         if ( FFA_VERSION_MINOR(vers) > FFA_MY_VERSION_MINOR )
-            ctx->guest_vers = FFA_MY_VERSION;
+            ACCESS_ONCE(ctx->guest_vers) = FFA_MY_VERSION;
         else
-            ctx->guest_vers = vers;
+            ACCESS_ONCE(ctx->guest_vers) = vers;
+
+        if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) && !old_vers )
+        {
+            /* One more VM with FF-A support available */
+            inc_ffa_vm_count();
+            spin_lock(&ffa_ctx_list_lock);
+            list_add_tail(&ctx->ctx_list, &ffa_ctx_head);
+            spin_unlock(&ffa_ctx_list_lock);
+        }
     }
     ffa_set_regs(regs, FFA_MY_VERSION, 0, 0, 0, 0, 0, 0, 0);
 }
@@ -345,6 +363,10 @@ static int ffa_domain_init(struct domain *d)
     ctx->teardown_d = d;
     INIT_LIST_HEAD(&ctx->shm_list);
 
+    ctx->ffa_id = ffa_get_vm_id(d);
+    ctx->num_vcpus = d->max_vcpus;
+    ctx->is_64bit = is_64bit_domain(d);
+
     /*
      * ffa_domain_teardown() will be called if ffa_domain_init() returns an
      * error, so no need for cleanup in this function.
@@ -421,6 +443,14 @@ static int ffa_domain_teardown(struct domain *d)
     if ( !ctx )
         return 0;
 
+    if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) && ACCESS_ONCE(ctx->guest_vers) )
+    {
+        dec_ffa_vm_count();
+        spin_lock(&ffa_ctx_list_lock);
+        list_del(&ctx->ctx_list);
+        spin_unlock(&ffa_ctx_list_lock);
+    }
+
     ffa_rxtx_domain_destroy(d);
     ffa_notif_domain_destroy(d);
 
@@ -464,6 +494,18 @@ static bool ffa_probe(void)
     printk(XENLOG_INFO "ARM FF-A Mediator version %u.%u\n",
            FFA_MY_VERSION_MAJOR, FFA_MY_VERSION_MINOR);
 
+    if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) )
+    {
+        /*
+         * When FFA VM to VM is enabled, the current implementation does not
+         * offer any way to limit which VM can communicate with which VM using
+         * FF-A.
+         * Signal this in the xen console and taint the system as insecure.
+         * TODO: Introduce a solution to limit what a VM can do through FFA.
+         */
+        printk(XENLOG_ERR "ffa: VM to VM is enabled, system is insecure !!\n");
+        add_taint(TAINT_MACHINE_INSECURE);
+    }
     /*
      * psci_init_smccc() updates this value with what's reported by EL-3
      * or secure world.
@@ -538,6 +580,7 @@ static bool ffa_probe(void)
 
     ffa_notif_init();
     INIT_LIST_HEAD(&ffa_teardown_head);
+    INIT_LIST_HEAD(&ffa_ctx_head);
     init_timer(&ffa_teardown_timer, ffa_teardown_timer_callback, NULL, 0);
 
     return true;
diff --git a/xen/arch/arm/tee/ffa_partinfo.c b/xen/arch/arm/tee/ffa_partinfo.c
index e524445c6fb8..66ea1860e97a 100644
--- a/xen/arch/arm/tee/ffa_partinfo.c
+++ b/xen/arch/arm/tee/ffa_partinfo.c
@@ -149,6 +149,68 @@ out:
     spin_unlock(&ffa_rx_buffer_lock);
     return ret;
 }
+
+static int32_t ffa_get_vm_partinfo(uint32_t *vm_count, void *dst_buf,
+                                   void *end_buf, uint32_t dst_size)
+{
+    struct ffa_ctx *curr_ctx = current->domain->arch.tee;
+    struct ffa_ctx *dest_ctx, *tmp;
+    uint32_t count = 0;
+
+    /*
+     * There could potentially be a lot of VMs in the system and we could
+     * hold the CPU for long here.
+     * Right now there is no solution in FF-A specification to split
+     * the work in this case.
+     * TODO: Check how we could delay the work or have preemption checks.
+     */
+    list_for_each_entry_safe(dest_ctx, tmp, &ffa_ctx_head, ctx_list)
+    {
+        /*
+         * Do not include an entry for the caller VM as the spec is not
+         * clearly mandating it and it is not supported by Linux.
+         */
+        if ( dest_ctx != curr_ctx )
+        {
+            /*
+             * We do not have UUID info for VMs so use
+             * the 1.0 structure so that we set UUIDs to
+             * zero using memset
+             */
+            struct ffa_partition_info_1_0 info;
+
+            if  ( dst_buf > (end_buf - dst_size) )
+            {
+                return FFA_RET_NO_MEMORY;
+            }
+
+            /*
+             * Context might has been removed since we go it or being removed
+             * right now so we might return information for a VM not existing
+             * anymore. This is acceptable as we return a view of the system
+             * which could change at any time.
+             */
+            info.id = dest_ctx->ffa_id;
+            info.execution_context = dest_ctx->num_vcpus;
+            info.partition_properties = FFA_PART_VM_PROP;
+            if ( dest_ctx->is_64bit )
+                info.partition_properties |= FFA_PART_PROP_AARCH64_STATE;
+
+            memcpy(dst_buf, &info, MIN(sizeof(info), dst_size));
+
+            if ( dst_size > sizeof(info) )
+                memset(dst_buf + sizeof(info), 0,
+                       dst_size - sizeof(info));
+
+            dst_buf += dst_size;
+            count++;
+        }
+    }
+    *vm_count = count;
+
+    return FFA_RET_OK;
+}
+
 void ffa_handle_partition_info_get(struct cpu_user_regs *regs)
 {
     int32_t ret = FFA_RET_OK;
@@ -163,7 +225,7 @@ void ffa_handle_partition_info_get(struct cpu_user_regs *regs)
     };
     uint32_t dst_size = 0;
     void *dst_buf, *end_buf;
-    uint32_t ffa_sp_count = 0;
+    uint32_t ffa_vm_count = 0, ffa_sp_count = 0;
 
     /*
      * If the guest is v1.0, he does not get back the entry size so we must
@@ -190,15 +252,18 @@ void ffa_handle_partition_info_get(struct cpu_user_regs *regs)
         }
 
         if ( ffa_fw_supports_fid(FFA_PARTITION_INFO_GET) )
+        {
             ret = ffa_get_sp_count(uuid, &ffa_sp_count);
+            if ( ret )
+                goto out;
+        }
 
-        goto out;
-    }
+        /*
+         * Do not count the caller VM as the spec is not clearly mandating it
+         * and it is not supported by Linux.
+         */
+        ffa_vm_count = get_ffa_vm_count() - 1;
 
-    if ( !ffa_fw_supports_fid(FFA_PARTITION_INFO_GET) )
-    {
-        /* Just give an empty partition list to the caller */
-        ret = FFA_RET_OK;
         goto out;
     }
 
@@ -223,9 +288,19 @@ void ffa_handle_partition_info_get(struct cpu_user_regs *regs)
         goto out_rx_release;
     }
 
-    ret = ffa_get_sp_partinfo(uuid, &ffa_sp_count, dst_buf, end_buf,
-                              dst_size);
+    if ( ffa_fw_supports_fid(FFA_PARTITION_INFO_GET) )
+    {
+        ret = ffa_get_sp_partinfo(uuid, &ffa_sp_count, dst_buf, end_buf,
+                                  dst_size);
+
+        if ( ret )
+            goto out_rx_release;
+
+        dst_buf += ffa_sp_count * dst_size;
+    }
 
+    if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) )
+        ret = ffa_get_vm_partinfo(&ffa_vm_count, dst_buf, end_buf, dst_size);
 
 out_rx_release:
     if ( ret )
@@ -234,7 +309,7 @@ out:
     if ( ret )
         ffa_set_regs_error(regs, ret);
     else
-        ffa_set_regs_success(regs, ffa_sp_count, dst_size);
+        ffa_set_regs_success(regs, ffa_sp_count + ffa_vm_count, dst_size);
 }
 
 static int32_t ffa_direct_req_send_vm(uint16_t sp_id, uint16_t vm_id,
diff --git a/xen/arch/arm/tee/ffa_private.h b/xen/arch/arm/tee/ffa_private.h
index 0a9c1082db28..52c1078b06f4 100644
--- a/xen/arch/arm/tee/ffa_private.h
+++ b/xen/arch/arm/tee/ffa_private.h
@@ -195,6 +195,18 @@
  */
 #define FFA_PARTITION_INFO_GET_COUNT_FLAG BIT(0, U)
 
+/*
+ * Partition properties we give for a normal world VM:
+ * - can send direct message but not receive them
+ * - can handle indirect messages
+ * - can receive notifications
+ * 32/64 bit flag is set depending on the VM
+ */
+#define FFA_PART_VM_PROP    (FFA_PART_PROP_DIRECT_REQ_SEND | \
+                             FFA_PART_PROP_INDIRECT_MSGS | \
+                             FFA_PART_PROP_RECV_NOTIF | \
+                             FFA_PART_PROP_IS_PE_ID)
+
 /* Flags used in calls to FFA_NOTIFICATION_GET interface  */
 #define FFA_NOTIF_FLAG_BITMAP_SP        BIT(0, U)
 #define FFA_NOTIF_FLAG_BITMAP_VM        BIT(1, U)
@@ -297,36 +309,66 @@ struct ffa_ctx_notif {
 };
 
 struct ffa_ctx {
-    void *rx;
-    const void *tx;
-    struct page_info *rx_pg;
-    struct page_info *tx_pg;
-    /* Number of 4kB pages in each of rx/rx_pg and tx/tx_pg */
-    unsigned int page_count;
+    /*
+     * Chain list of all FF-A contexts, to prevent locking access to this list,
+     * all "unlocked" data from the structure must be set before adding an
+     * entry in the list and an entry must be removed from the list before
+     * freeing a context.
+     */
+    struct list_head ctx_list; /* chain list of all FF-A contexts */
+
+    /*
+     * Data access unlocked (mainly for part_info_get in VM to VM).
+     * Those should be set before the ctx is added in the list.
+     */
+    /* FF-A Endpoint ID */
+    uint16_t ffa_id;
+    uint16_t num_vcpus;
+    bool is_64bit;
+
+    /*
+     * Global data accessed atomically or using ACCES_ONCE.
+     */
     /* FF-A version used by the guest */
     uint32_t guest_vers;
-    bool rx_is_free;
-    /* Used shared memory objects, struct ffa_shm_mem */
-    struct list_head shm_list;
+    struct ffa_ctx_notif notif;
+
+    /*
+     * Global data accessed with lock locked.
+     */
+    spinlock_t lock;
+    /* Number of 4kB pages in each of rx/rx_pg and tx/tx_pg */
+    unsigned int page_count;
     /* Number of allocated shared memory object */
     unsigned int shm_count;
-    struct ffa_ctx_notif notif;
+    /* Used shared memory objects, struct ffa_shm_mem */
+    struct list_head shm_list;
+
     /*
-     * tx_lock is used to serialize access to tx
-     * rx_lock is used to serialize access to rx_is_free
-     * lock is used for the rest in this struct
+     * Rx buffer, accessed with rx_lock locked.
+     * rx_is_free is used to serialize access.
      */
-    spinlock_t tx_lock;
     spinlock_t rx_lock;
-    spinlock_t lock;
-    /* Used if domain can't be torn down immediately */
+    bool rx_is_free;
+    void *rx;
+    struct page_info *rx_pg;
+
+    /*
+     * Tx buffer, access with tx_lock locked.
+     */
+    spinlock_t tx_lock;
+    const void *tx;
+    struct page_info *tx_pg;
+
+
+    /*
+     * Domain teardown handling if data shared or used by other domains
+     * do not allow to teardown the domain immediately.
+     */
     struct domain *teardown_d;
     struct list_head teardown_list;
     s_time_t teardown_expire;
-    /*
-     * Used for ffa_domain_teardown() to keep track of which SPs should be
-     * notified that this guest is being destroyed.
-     */
+    /* Keep track of SPs that should be notified of VM destruction */
     unsigned long *vm_destroy_bitmap;
 };
 
@@ -334,8 +376,15 @@ extern void *ffa_rx;
 extern void *ffa_tx;
 extern spinlock_t ffa_rx_buffer_lock;
 extern spinlock_t ffa_tx_buffer_lock;
+extern spinlock_t ffa_ctx_list_lock;
 extern DECLARE_BITMAP(ffa_fw_abi_supported, FFA_ABI_BITMAP_SIZE);
 
+extern struct list_head ffa_ctx_head;
+
+#ifdef CONFIG_FFA_VM_TO_VM
+extern atomic_t ffa_vm_count;
+#endif
+
 bool ffa_shm_domain_destroy(struct domain *d);
 void ffa_handle_mem_share(struct cpu_user_regs *regs);
 int ffa_handle_mem_reclaim(uint64_t handle, uint32_t flags);
@@ -368,6 +417,29 @@ 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);
 
+#ifdef CONFIG_FFA_VM_TO_VM
+static inline uint16_t get_ffa_vm_count(void)
+{
+    return atomic_read(&ffa_vm_count);
+}
+
+static inline void inc_ffa_vm_count(void)
+{
+    atomic_inc(&ffa_vm_count);
+}
+
+static inline void dec_ffa_vm_count(void)
+{
+    ASSERT(atomic_read(&ffa_vm_count) > 0);
+    atomic_dec(&ffa_vm_count);
+}
+#else
+/* Only count the caller VM */
+#define get_ffa_vm_count()  ((uint16_t)1UL)
+#define inc_ffa_vm_count()  do {} while(0)
+#define dec_ffa_vm_count()  do {} while(0)
+#endif
+
 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.1



From xen-devel-bounces@lists.xenproject.org Wed Apr 16 07:40:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 07:40:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.955191.1349039 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4xNi-0007Cn-EJ; Wed, 16 Apr 2025 07:40:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 955191.1349039; Wed, 16 Apr 2025 07:40:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4xNi-0007Cc-9f; Wed, 16 Apr 2025 07:40:26 +0000
Received: by outflank-mailman (input) for mailman id 955191;
 Wed, 16 Apr 2025 07:40: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=Ti8b=XC=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1u4xNh-00065X-7N
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 07:40:25 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 0e082836-1a96-11f0-9ffb-bf95429c2676;
 Wed, 16 Apr 2025 09:40:23 +0200 (CEST)
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 BD4BF1595;
 Wed, 16 Apr 2025 00:40:20 -0700 (PDT)
Received: from C3HXLD123V.arm.com (unknown [10.57.44.175])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 889A33F66E;
 Wed, 16 Apr 2025 00:40:21 -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: 0e082836-1a96-11f0-9ffb-bf95429c2676
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 v5 5/6] xen/arm: ffa: Add indirect message between VM
Date: Wed, 16 Apr 2025 09:39:46 +0200
Message-ID: <81ec9ce34c3990b02ec6427d95b6238445333b57.1744787720.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.47.1
In-Reply-To: <cover.1744787720.git.bertrand.marquis@arm.com>
References: <cover.1744787720.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add support for indirect messages between VMs.
This is only enabled if CONFIG_FFA_VM_TO_VM is selected.

Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
---
Changes in v5:
- Prevent potential overflow in send2 handling (Julien)
- Only use page_count with rx lock acquired
- Fix an issue where send2 between VMs was not doing the copy from the
  tx buffer but from a wrong location in the stack. This bug was
  introduced in v4 when switching to a local copy for the header.
Changes in v4:
- Use a local copy of the message header to prevent a TOC/TOU possible
  issue when using the payload size
Changes in v3:
- Move vm to vm indirect message handling in a sub function to simplify
  lock handling and make implementation easier to read
Changes in v2:
- Switch ifdef to IS_ENABLED
---
 xen/arch/arm/tee/ffa_msg.c | 115 ++++++++++++++++++++++++++++++++-----
 1 file changed, 101 insertions(+), 14 deletions(-)

diff --git a/xen/arch/arm/tee/ffa_msg.c b/xen/arch/arm/tee/ffa_msg.c
index ee594e737fc7..35de260c013a 100644
--- a/xen/arch/arm/tee/ffa_msg.c
+++ b/xen/arch/arm/tee/ffa_msg.c
@@ -88,43 +88,130 @@ out:
                  resp.a7 & mask);
 }
 
+static int32_t ffa_msg_send2_vm(uint16_t dst_id, const void *src_buf,
+                                struct ffa_part_msg_rxtx *src_msg)
+{
+    struct domain *dst_d;
+    struct ffa_ctx *dst_ctx;
+    struct ffa_part_msg_rxtx *dst_msg;
+    int err;
+    int32_t ret;
+
+    if ( dst_id == 0 )
+        /* FF-A ID 0 is the hypervisor, this is not valid */
+        return FFA_RET_INVALID_PARAMETERS;
+
+    /* This is also checking that dest is not src */
+    err = rcu_lock_live_remote_domain_by_id(dst_id - 1, &dst_d);
+    if ( err )
+        return FFA_RET_INVALID_PARAMETERS;
+
+    if ( dst_d->arch.tee == NULL )
+    {
+        ret = FFA_RET_INVALID_PARAMETERS;
+        goto out_unlock;
+    }
+
+    dst_ctx = dst_d->arch.tee;
+    if ( !dst_ctx->guest_vers )
+    {
+        ret = FFA_RET_INVALID_PARAMETERS;
+        goto out_unlock;
+    }
+
+    /* This also checks that destination has set a Rx buffer */
+    ret = ffa_rx_acquire(dst_d);
+    if ( ret )
+        goto out_unlock;
+
+    /* we need to have enough space in the destination buffer */
+    if ( (dst_ctx->page_count * FFA_PAGE_SIZE -
+          sizeof(struct ffa_part_msg_rxtx)) < src_msg->msg_size )
+    {
+        ret = FFA_RET_NO_MEMORY;
+        ffa_rx_release(dst_d);
+        goto out_unlock;
+    }
+
+    dst_msg = dst_ctx->rx;
+
+    /* prepare destination header */
+    dst_msg->flags = 0;
+    dst_msg->reserved = 0;
+    dst_msg->msg_offset = sizeof(struct ffa_part_msg_rxtx);
+    dst_msg->send_recv_id = src_msg->send_recv_id;
+    dst_msg->msg_size = src_msg->msg_size;
+
+    memcpy(dst_ctx->rx + sizeof(struct ffa_part_msg_rxtx),
+           src_buf + src_msg->msg_offset, src_msg->msg_size);
+
+    /* receiver rx buffer will be released by the receiver*/
+
+out_unlock:
+    rcu_unlock_domain(dst_d);
+    if ( !ret )
+        ffa_raise_rx_buffer_full(dst_d);
+
+    return ret;
+}
+
 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;
+    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;
+    BUILD_BUG_ON(sizeof(struct ffa_part_msg_rxtx) >= FFA_PAGE_SIZE);
 
     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);
+    /* create a copy of the message header */
+    memcpy(&src_msg, src_ctx->tx, sizeof(src_msg));
 
-    if ( src_id != ffa_get_vm_id(src_d) || !FFA_ID_IS_SECURE(dst_id) )
+    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) )
     {
         ret = FFA_RET_INVALID_PARAMETERS;
-        goto out_unlock_tx;
+        goto out;
     }
 
     /* 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) )
+    if ( src_msg.msg_offset < sizeof(struct ffa_part_msg_rxtx) ||
+            src_msg.msg_size == 0 ||
+            src_msg.msg_offset > src_ctx->page_count * FFA_PAGE_SIZE ||
+            src_msg.msg_size > (src_ctx->page_count * FFA_PAGE_SIZE -
+                                src_msg.msg_offset) )
     {
         ret = FFA_RET_INVALID_PARAMETERS;
-        goto out_unlock_tx;
+        goto out;
     }
 
-    ret = ffa_simple_call(FFA_MSG_SEND2,
+    if ( FFA_ID_IS_SECURE(dst_id) )
+    {
+        /* Message for a secure partition */
+        if ( !ffa_fw_supports_fid(FFA_MSG_SEND2) )
+        {
+            ret = FFA_RET_NOT_SUPPORTED;
+            goto out;
+        }
+
+        ret = ffa_simple_call(FFA_MSG_SEND2,
                           ((uint32_t)ffa_get_vm_id(src_d)) << 16, 0, 0, 0);
+    }
+    else if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) )
+    {
+        /* Message for a VM */
+        ret = ffa_msg_send2_vm(dst_id, src_ctx->tx, &src_msg);
+    }
+    else
+        ret = FFA_RET_INVALID_PARAMETERS;
 
-out_unlock_tx:
+out:
     spin_unlock(&src_ctx->tx_lock);
     return ret;
 }
-- 
2.47.1



From xen-devel-bounces@lists.xenproject.org Wed Apr 16 07:40:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 07:40:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.955192.1349044 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4xNi-0007FT-PT; Wed, 16 Apr 2025 07:40:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 955192.1349044; Wed, 16 Apr 2025 07:40:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4xNi-0007Du-JI; Wed, 16 Apr 2025 07:40:26 +0000
Received: by outflank-mailman (input) for mailman id 955192;
 Wed, 16 Apr 2025 07:40:25 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Ti8b=XC=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1u4xNh-0004tR-NT
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 07:40:25 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 0eecce15-1a96-11f0-9eaf-5ba50f476ded;
 Wed, 16 Apr 2025 09:40:24 +0200 (CEST)
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 68E091E32;
 Wed, 16 Apr 2025 00:40:22 -0700 (PDT)
Received: from C3HXLD123V.arm.com (unknown [10.57.44.175])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 2C8F73F66E;
 Wed, 16 Apr 2025 00:40: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: 0eecce15-1a96-11f0-9eaf-5ba50f476ded
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 v5 6/6] xen/arm: ffa: Enable VM to VM without firmware
Date: Wed, 16 Apr 2025 09:39:47 +0200
Message-ID: <ec7213548581c176a2328d051aee77bbd8a6d45a.1744787720.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.47.1
In-Reply-To: <cover.1744787720.git.bertrand.marquis@arm.com>
References: <cover.1744787720.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

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 OP-TEE 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 OP-TEE 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 no
firmware, rework the notification handling and modify the global flag to
only be used as check for firmware notification support instead.

Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
---
Changes in v5:
- init ctx list when there is no firmware
- rework init a bit to prevent duplicates
- Remove Jens R-b due to changes done
Changes in v4:
- Fix Optee to OP-TEE in commit message
- Add Jens R-b
Changes in v3:
- fix typos in commit message
- add spaces around <<
- move notification id fix back into buffer full patch
- fix | position in if
Changes in v2:
- replace ifdef with IS_ENABLED when possible
---
 xen/arch/arm/tee/ffa.c       |  24 ++++++--
 xen/arch/arm/tee/ffa_notif.c | 104 ++++++++++++++++-------------------
 2 files changed, 67 insertions(+), 61 deletions(-)

diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
index c1c4c0957091..b86c88cefa8c 100644
--- a/xen/arch/arm/tee/ffa.c
+++ b/xen/arch/arm/tee/ffa.c
@@ -342,8 +342,9 @@ static int ffa_domain_init(struct domain *d)
     struct ffa_ctx *ctx;
     int ret;
 
-    if ( !ffa_fw_version )
+    if ( !IS_ENABLED(CONFIG_FFA_VM_TO_VM) && !ffa_fw_version )
         return -ENODEV;
+
     /*
      * 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
@@ -579,11 +580,8 @@ static bool ffa_probe(void)
         goto err_rxtx_destroy;
 
     ffa_notif_init();
-    INIT_LIST_HEAD(&ffa_teardown_head);
-    INIT_LIST_HEAD(&ffa_ctx_head);
-    init_timer(&ffa_teardown_timer, ffa_teardown_timer_callback, NULL, 0);
 
-    return true;
+    goto exit;
 
 err_rxtx_destroy:
     ffa_rxtx_destroy();
@@ -592,6 +590,22 @@ err_no_fw:
     bitmap_zero(ffa_fw_abi_supported, FFA_ABI_BITMAP_SIZE);
     printk(XENLOG_WARNING "ARM FF-A No firmware support\n");
 
+exit:
+    if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) || ffa_fw_version )
+    {
+        INIT_LIST_HEAD(&ffa_teardown_head);
+        INIT_LIST_HEAD(&ffa_ctx_head);
+        init_timer(&ffa_teardown_timer, ffa_teardown_timer_callback, NULL, 0);
+    }
+
+    if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) )
+    {
+        printk(XENLOG_INFO "ARM FF-A only available between VMs\n");
+        return true;
+    }
+    else if ( ffa_fw_version )
+        return true;
+
     return false;
 }
 
diff --git a/xen/arch/arm/tee/ffa_notif.c b/xen/arch/arm/tee/ffa_notif.c
index f6df2f15bb00..86bef6b3b2ab 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 = get_user_reg(regs, 3);
     uint32_t bitmap_hi = get_user_reg(regs, 4);
 
-    if ( !notif_enabled )
-        return FFA_RET_NOT_SUPPORTED;
-
     if ( (src_dst & 0xFFFFU) != 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, bitmap_lo,
-                           bitmap_hi);
+    if ( FFA_ID_IS_SECURE(src_dst >> 16) && fw_notif_enabled )
+        return ffa_simple_call(FFA_NOTIFICATION_BIND, src_dst, flags,
+                               bitmap_lo, bitmap_hi);
+
+    return FFA_RET_NOT_SUPPORTED;
 }
 
 int ffa_handle_notification_unbind(struct cpu_user_regs *regs)
@@ -51,18 +47,14 @@ int ffa_handle_notification_unbind(struct cpu_user_regs *regs)
     uint32_t bitmap_lo = get_user_reg(regs, 3);
     uint32_t bitmap_hi = get_user_reg(regs, 4);
 
-    if ( !notif_enabled )
-        return FFA_RET_NOT_SUPPORTED;
-
     if ( (src_dst & 0xFFFFU) != 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_lo,
-                            bitmap_hi);
+    if ( FFA_ID_IS_SECURE(src_dst >> 16) && fw_notif_enabled )
+        return  ffa_simple_call(FFA_NOTIFICATION_UNBIND, src_dst, 0, bitmap_lo,
+                                bitmap_hi);
+
+    return FFA_RET_NOT_SUPPORTED;
 }
 
 void ffa_handle_notification_info_get(struct cpu_user_regs *regs)
@@ -71,7 +63,7 @@ void ffa_handle_notification_info_get(struct cpu_user_regs *regs)
     struct ffa_ctx *ctx = d->arch.tee;
     bool notif_pending;
 
-    if ( !notif_enabled )
+    if ( !IS_ENABLED(CONFIG_FFA_VM_TO_VM) && !fw_notif_enabled )
     {
         ffa_set_regs_error(regs, FFA_RET_NOT_SUPPORTED);
         return;
@@ -108,7 +100,7 @@ void ffa_handle_notification_get(struct cpu_user_regs *regs)
     uint32_t w6 = 0;
     uint32_t w7 = 0;
 
-    if ( !notif_enabled )
+    if ( !IS_ENABLED(CONFIG_FFA_VM_TO_VM) && !fw_notif_enabled )
     {
         ffa_set_regs_error(regs, FFA_RET_NOT_SUPPORTED);
         return;
@@ -120,7 +112,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 = {
             .a0 = FFA_NOTIFICATION_GET,
@@ -177,15 +170,14 @@ int ffa_handle_notification_set(struct cpu_user_regs *regs)
     uint32_t bitmap_lo = get_user_reg(regs, 3);
     uint32_t bitmap_hi = get_user_reg(regs, 4);
 
-    if ( !notif_enabled )
-        return FFA_RET_NOT_SUPPORTED;
-
     if ( (src_dst >> 16) != 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, bitmap_lo,
+                               bitmap_hi);
+
+    return FFA_RET_NOT_SUPPORTED;
 }
 
 #ifdef CONFIG_FFA_VM_TO_VM
@@ -371,7 +363,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
@@ -402,41 +394,41 @@ 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 != FFA_SUCCESS_32 )
-        return;
-
-    irq = resp.a2;
-    notif_sri_irq = irq;
-    if ( irq >= NR_GIC_SGI )
-        irq_set_type(irq, IRQ_TYPE_EDGE_RISING);
-    ret = request_irq(irq, 0, notif_irq_handler, "FF-A notif", NULL);
-    if ( ret )
+    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 != FFA_SUCCESS_32 )
+            return;
 
-    notif_enabled = true;
+        irq = resp.a2;
+        notif_sri_irq = irq;
+        if ( irq >= NR_GIC_SGI )
+            irq_set_type(irq, IRQ_TYPE_EDGE_RISING);
+        ret = request_irq(irq, 0, notif_irq_handler, "FF-A notif", NULL);
+        if ( ret )
+        {
+            printk(XENLOG_ERR "ffa: request_irq irq %u failed: error %d\n",
+                   irq, ret);
+            return;
+        }
+        fw_notif_enabled = true;
+    }
 }
 
 int ffa_notif_domain_init(struct domain *d)
 {
     int32_t res;
 
-    if ( !notif_enabled )
-        return 0;
+    if ( fw_notif_enabled )
+    {
 
-    res = ffa_notification_bitmap_create(ffa_get_vm_id(d), d->max_vcpus);
-    if ( res )
-        return -ENOMEM;
+        res = ffa_notification_bitmap_create(ffa_get_vm_id(d), d->max_vcpus);
+        if ( res )
+            return -ENOMEM;
+    }
 
     return 0;
 }
@@ -447,6 +439,6 @@ void ffa_notif_domain_destroy(struct domain *d)
      * Call bitmap_destroy even if bitmap create failed as the SPMC will
      * return a DENIED error that we will ignore.
      */
-    if ( notif_enabled )
+    if ( fw_notif_enabled )
         ffa_notification_bitmap_destroy(ffa_get_vm_id(d));
 }
-- 
2.47.1



From xen-devel-bounces@lists.xenproject.org Wed Apr 16 07:48:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 07:48:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.955233.1349070 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4xV3-0001nr-QF; Wed, 16 Apr 2025 07:48:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 955233.1349070; Wed, 16 Apr 2025 07:48: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 1u4xV3-0001nk-Nc; Wed, 16 Apr 2025 07:48:01 +0000
Received: by outflank-mailman (input) for mailman id 955233;
 Wed, 16 Apr 2025 07:47: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=2d3P=XC=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u4xV1-0001nW-Ub
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 07:47:59 +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 1dbf07fd-1a97-11f0-9eaf-5ba50f476ded;
 Wed, 16 Apr 2025 09:47:59 +0200 (CEST)
Received: by mail-ej1-x62d.google.com with SMTP id
 a640c23a62f3a-ac3fcf5ab0dso1110507266b.3
 for <xen-devel@lists.xenproject.org>; Wed, 16 Apr 2025 00:47:59 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 4fb4d7f45d1cf-5f36ee54fb5sm8018225a12.13.2025.04.16.00.47.57
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 16 Apr 2025 00:47:58 -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: 1dbf07fd-1a97-11f0-9eaf-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744789679; x=1745394479; 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=X8yWJPbLuXbINfNY5Sg/MO+QXp+wDj1s6HitWV92Riw=;
        b=oMsy51Tt7yTytT4epDBwZSrSdxUJx76wKskgkLNFmR7y9vfwUqV8KgkYWV3ghOOvIE
         xcz30tgNhlw4AvROzTeEPzHFunjntD46VMDrWC64wjmvtWtEUi6dFNnZCS4zQ8vohOcd
         3foXf3NOGSuobYUXVJMsAu+R/MKsbMdZIABI8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744789679; x=1745394479;
        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=X8yWJPbLuXbINfNY5Sg/MO+QXp+wDj1s6HitWV92Riw=;
        b=HGrvCIWbzVS3NhmUo6dyG64bNaRd+E/D7LARfb5wATFOea2f0xow5M70rnMjKNrjgS
         Hmo7kAyqmFWNlSl1Lm5SgHhfwYKFeAgdyLpMnHpYH3kzUNFvWx97CknrMYsaX4m8+uEV
         pm1rZlP7ipy5o6drd+uRnVBA/j9K2tjmkJRZOgeg6J9xWSaz/E5Riw5Gc194u1J+e89M
         w05Fk14Dk+82+6b250grzyj+2Z4X2GpGITlhga0bsqp691fywhj2eeUuTiefmmoEB+5a
         7Qjs43/4SDGLTQbFuMV8n+YtCxTJAofJ/JuNZi2aE6F2ETcP7VU4fGv4E7PhOLlR269F
         nDmw==
X-Gm-Message-State: AOJu0Yy1EWGNQRd1/ucSzU3MLl97Zc5accNk8Lo9LAUfJTebp7kYxTFd
	+4ep5yMT8+6lA8e6yIJ/wAa9yjI+87mQmNjWKlsiatMnWoovnkS/7Ng89UvWysmBoN9IDxXbZEW
	z
X-Gm-Gg: ASbGncvvI5wwGg+MWojMe/OnKT36Y5WirXxeXXCaWEt5xeIhgPWEAQvlZmf8n2qMO45
	qc7HUffAEh99nLjGnVgQMp015Y4AQFBSQaJG5AejVwnZpdaTCLAXPGxb6dRv59Y+LDmveXpxE5m
	3SIaSBxqau+bALiUbcSy1qy8Z6wDr0CtoQaKh5toB3gqSyKCDObgLWjekcYQDCH88mXBDBvROsx
	ms3uyMNcDDb/2hvFY/d60Jt+NS58U/tA3s8phlAqDx+YddHpvxQWJLBMLthZbuKdRBejKn7KizP
	ux7V8wQcU3X4v/XhxV8GfA/yWX7NwtzwAst2mbgbDJGQ1KqftmyGKecK
X-Google-Smtp-Source: AGHT+IFZ8ZEZUizfrZrTCZda3vd9z3VGyt/uyF2544YyJ7NEmvLX8wm3UmE+q8NQ5/W4s33m4vVM+Q==
X-Received: by 2002:a17:906:ee87:b0:ac3:3e40:e183 with SMTP id a640c23a62f3a-acb428936c2mr76658766b.3.1744789678624;
        Wed, 16 Apr 2025 00:47:58 -0700 (PDT)
Date: Wed, 16 Apr 2025 09:47:57 +0200
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>,
	"Huang, Ray" <Ray.Huang@amd.com>
Subject: Re: [PATCH v2 7/8] vpci/msi: Free MSI resources when init_msi() fails
Message-ID: <Z_9grfgh8uRhT5Nk@macbook.lan>
References: <20250409064528.405573-1-Jiqian.Chen@amd.com>
 <20250409064528.405573-8-Jiqian.Chen@amd.com>
 <Z_5fLB1GoyoxpuOL@macbook.lan>
 <BL1PR12MB584983A5AB0A9D74877F8BA0E7BD2@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: <BL1PR12MB584983A5AB0A9D74877F8BA0E7BD2@BL1PR12MB5849.namprd12.prod.outlook.com>

On Wed, Apr 16, 2025 at 06:16:36AM +0000, Chen, Jiqian wrote:
> On 2025/4/15 21:29, Roger Pau Monné wrote:
> > On Wed, Apr 09, 2025 at 02:45:27PM +0800, Jiqian Chen wrote:
> >> When init_msi() fails, the previous new changes will hide MSI
> >> capability, it can't rely on vpci_deassign_device() to remove
> >> all MSI related resources anymore, those resources must be
> >> cleaned up in failure path of init_msi.
> >>
> >> To do that, add a new function to free MSI resources.
> >>
> >> Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
> >> ---
> >> cc: "Roger Pau Monné" <roger.pau@citrix.com>
> >> ---
> >> v1->v2 changes:
> >> * Added a new function fini_msi to free all MSI resources instead of using an array to record registered registers.
> >> ---
> >>  xen/drivers/vpci/msi.c | 47 +++++++++++++++++++++++++++++++++---------
> >>  1 file changed, 37 insertions(+), 10 deletions(-)
> >>
> >> diff --git a/xen/drivers/vpci/msi.c b/xen/drivers/vpci/msi.c
> >> index ca89ae9b9c22..48a466dba0ef 100644
> >> --- a/xen/drivers/vpci/msi.c
> >> +++ b/xen/drivers/vpci/msi.c
> >> @@ -193,6 +193,33 @@ static void cf_check mask_write(
> >>      msi->mask = val;
> >>  }
> >>  
> >> +/* 12 is size of MSI structure for 32-bit Message Address without PVM */
> >> +#define MSI_STRUCTURE_SIZE_32 12
> > 
> > I'm confused by this.  The minimum size of the capability is 4 bytes
> > for the capability pointer, plus 4 bytes for the message address,
> > plus 2 bytes for the message data.  So that's 10 bytes in total.
> The remain 2 bytes is Extended Message Data, PCIe spec has this register's definition even though it is optional.

I was looking at the PCI Local Bus Specification rev 3.0 (because that
has nicer figures IMO), and such field is not listed there.  It's
listed in the PCI Express 6.0.1 specification.  I have to admit I've
completely forgot about such optional feature.

We never expose this bit to the guest in the control register, and
consequently we never explicitly handle accesses to what would be the
extended message data register, neither allow guests to enable it.

If/when we add support for such field we will likely need to adjust
fini_msi() to also zap it if present.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Apr 16 07:54:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 07:54:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.955284.1349081 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4xbT-0003vb-F9; Wed, 16 Apr 2025 07:54:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 955284.1349081; Wed, 16 Apr 2025 07:54:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4xbT-0003vU-CQ; Wed, 16 Apr 2025 07:54:39 +0000
Received: by outflank-mailman (input) for mailman id 955284;
 Wed, 16 Apr 2025 07:54: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=2d3P=XC=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u4xbS-0003vO-E9
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 07:54:38 +0000
Received: from mail-pl1-x62b.google.com (mail-pl1-x62b.google.com
 [2607:f8b0:4864:20::62b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0ac3a66c-1a98-11f0-9eaf-5ba50f476ded;
 Wed, 16 Apr 2025 09:54:37 +0200 (CEST)
Received: by mail-pl1-x62b.google.com with SMTP id
 d9443c01a7336-22c33ac23edso4300855ad.0
 for <xen-devel@lists.xenproject.org>; Wed, 16 Apr 2025 00:54:37 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 d9443c01a7336-22c33fc4b72sm7752535ad.185.2025.04.16.00.54.34
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 16 Apr 2025 00:54:35 -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: 0ac3a66c-1a98-11f0-9eaf-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744790076; x=1745394876; 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=cxBeQlU/4Ucx5Rc4SqEhe9d3OszPzWpJEviYeymmVr4=;
        b=gDkhermgpU024EjWLxbhd5dq36Fq2pww9StkrLwCyQ4tguFs2tHNhlkG22+a0J5aym
         nBwAMrJuyT8eCebKn2twO5r3Co6OsIELQBqAcwHXidE7UaOpv9U357S2Y7Inemo+wImy
         5BCm0j/DulADcEMuCu4bSRPibpUricV5hQetM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744790076; x=1745394876;
        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=cxBeQlU/4Ucx5Rc4SqEhe9d3OszPzWpJEviYeymmVr4=;
        b=W4Mq6ehncl/Krgn7fqGtETHeJzEZXUVN/SpjdOCTXaoJJ5cBKuIaDRniq4bqkY8jjd
         nPUDHQEmDMvT4a4RS9MFOJ7zCbQxdWnabyUgTGdPFDXf6pMBVabmLg6IDhCkVczk4Php
         6KvuPg80AeU1Pt2B6bn2GKo/6RT6Vq6SxSS/7+y9UhnZvXYVtdKt1sIc4wn/58rnoUv4
         0ptU7hPf0Oy/K0NI7WDzfpW3+YBJaLSgYLiMDFjdvEL5X6H4Mcoxrvzzv4T8ijpOb9a+
         HGepOxtIfBBONZQXKZs5KM5uDjvF8uIQzYeYcYPtH7Tu1B4z28oOSVlGZGMGjS1EVTdL
         s1uA==
X-Gm-Message-State: AOJu0YxaVw5iQg0kHgRcaEQOTvTDmFpR29sOwtruajGxYbrcOPIBAFH3
	VkHXaDbNCsq7x2EnnSTvdIdaZcl7xvGlOSAeP8TuBVmpZ4eYpbL/2LY/GOhOF1SonHMb6HbLOPP
	X
X-Gm-Gg: ASbGnct//NTJcOnoKPcZNA5MT/f4RNhkvkD45KS3TtkDoZFKiePb+tFNUPc1p1DqFmt
	k8VjOg7m9mKjlfj3qTnnlt2I0mtrFthl16UjY953P85ENqpumkRhRSk1/cpnOd4pVCx1kDs6qnS
	A1z0RL+32cz7tiBALz8ona5bFpTJKoCADsKkNYfWM2YbAhEDkPPuPPRVE6N9qSs2RPkNLMr6SrU
	UOUFfjZwNKUwrhF9I9CpzwFB26Fx6zgdyc3tKw+0UhKf4TTPxb8YBtDetYykunakKdbSTB7RIen
	J5gJ1Zwi9XUfIbzJMlkxACoKqHjIhzwms/wwJ8tS1y+gNQ==
X-Google-Smtp-Source: AGHT+IFuZ7VF05S/eL7jv+2lr4l538olk/iAYLKrxKMfSEbutgd3YQdX3741nKgwq4iIuZmoTAE+mQ==
X-Received: by 2002:a17:902:e542:b0:224:249f:9734 with SMTP id d9443c01a7336-22c358c5261mr15163195ad.4.1744790076105;
        Wed, 16 Apr 2025 00:54:36 -0700 (PDT)
Date: Wed, 16 Apr 2025 09:54:30 +0200
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>,
	"Huang, Ray" <Ray.Huang@amd.com>, Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: [PATCH v2 8/8] vpci/msix: Add function to clean MSIX resources
Message-ID: <Z_9iNjQxTy9RcDq0@macbook.lan>
References: <20250409064528.405573-1-Jiqian.Chen@amd.com>
 <20250409064528.405573-9-Jiqian.Chen@amd.com>
 <Z_5i7zZJ7lRjFr7G@macbook.lan>
 <BL1PR12MB5849577B78D50821733B6D6BE7BD2@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: <BL1PR12MB5849577B78D50821733B6D6BE7BD2@BL1PR12MB5849.namprd12.prod.outlook.com>

On Wed, Apr 16, 2025 at 06:20:50AM +0000, Chen, Jiqian wrote:
> On 2025/4/15 21:45, Roger Pau Monné wrote:
> > On Wed, Apr 09, 2025 at 02:45:28PM +0800, Jiqian Chen wrote: 
> >> +
> >> +    for ( unsigned int i = 0; i < ARRAY_SIZE(vpci->msix->table); i++ )
> >> +        if ( vpci->msix->table[i] )
> >> +            iounmap(vpci->msix->table[i]);
> > 
> > The MSI-X init function never maps tables, so the code here (given
> > it's current usage) will also never unmap anything.  However I would
> > also like to use this code for vPCI deassing, at which point the logic
> > will get used.
> So, I still need to keep this part, right?

Yes, I guess leave it for now, we can always rip it later.  I would
like to see how doing the cleanup in the caller in case of failure
looks.

Then we can likely extend such cleanup to be done in the deassign case
also.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Apr 16 08:21:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 08:21:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.955300.1349091 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4y1p-0001A2-Jd; Wed, 16 Apr 2025 08:21:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 955300.1349091; Wed, 16 Apr 2025 08:21: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 1u4y1p-00019v-Gh; Wed, 16 Apr 2025 08:21:53 +0000
Received: by outflank-mailman (input) for mailman id 955300;
 Wed, 16 Apr 2025 08:21: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=PIlj=XC=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1u4y1o-00019p-GT
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 08:21:52 +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 d862bef1-1a9b-11f0-9eaf-5ba50f476ded;
 Wed, 16 Apr 2025 10:21:50 +0200 (CEST)
Received: from PH7P221CA0073.NAMP221.PROD.OUTLOOK.COM (2603:10b6:510:328::30)
 by SA1PR12MB8860.namprd12.prod.outlook.com (2603:10b6:806:38b::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.33; Wed, 16 Apr
 2025 08:21:45 +0000
Received: from CY4PEPF0000EE35.namprd05.prod.outlook.com
 (2603:10b6:510:328:cafe::4c) by PH7P221CA0073.outlook.office365.com
 (2603:10b6:510:328::30) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.33 via Frontend Transport; Wed,
 16 Apr 2025 08:21:45 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 CY4PEPF0000EE35.mail.protection.outlook.com (10.167.242.41) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Wed, 16 Apr 2025 08:21:45 +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, 16 Apr
 2025 03:21:44 -0500
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; Wed, 16 Apr 2025 03:21:43 -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: d862bef1-1a9b-11f0-9eaf-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=sIgEi7Q/vKsjlA7IkRSDFZwtcKcExcbzkji5oLFW9U5Z2K73E91BgT5tHqHMkIhNDKqpY6WSYbrok7oJBzLbWAN6Vy5h4mfRbZ++fBLZDVFR6GgpVkk5yCTygPAPsS7l1T2/EGeKlXAA/6p69Fvvny5hm9hr8eIkmRdOkCLxlCJNvg5/da0Pa8WkkciHP/qtcu+GaAf8XFLus8BTSkiD/qMaOQMKRyvPdmn0Fi4PsBTxiMZ07aNY8BPa0XvGhFkKCNvnoaLcUGZ/QfyVHwn1GsaKYb7TrwvV4Y2raKBDzaYvMijhGeinclPkUVEpNFByFfK9RdSOE5VxD4mOgtbPUg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=NHVJn6Jg0FETVTCNhE4fZ4jxpmp3g9d55F3oyk/yX7k=;
 b=D5+zO/Xe42L1p5bzuB/t9W7tk2t16n/UFqZscidh4weJCPcxGe3VrwsywyWtRutu1nqbUGmDUYUytDPxqo+TQv369rL72N1ZSnb0mSuhBT0+F7y3oQtdiJNW/kt+V9CMzRWN6Tk0F3loFvNABfymLtk+W8Ma3dz8Vm9SYg4YxamaY6pU64A603fIhkez5JmTYnDFLnl/8CmmaOkDJ5dktJBL9qOMq2N1qobxjdLp2ex9F93FL+KrAjiKbS5hdlEiAv89TCivOO3DQL22dbqW8PqHiSHLWQtciK/2SHTx35xaYebcikBqpgROA/lbrVsaX23VQKzu0cKSYnZszVO4yA==
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=NHVJn6Jg0FETVTCNhE4fZ4jxpmp3g9d55F3oyk/yX7k=;
 b=OswaAnR2z1PpOwp5pAEQCRTBwkh73R+fKwzsKp7vz+ytdLQlb7efn+9BKmTZyZ1GAMMp4me0pl2gq9+8VKI3N+OPXe3EGrdyrt3j9h2c933r5J3wbSVMxXXLkOzgGKLcAcje0WS3IDe2eHS8gIY7yCbqu6Pw9xkKOHWSgK1VFhI=
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: Michal Orzel <michal.orzel@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Michal Orzel <michal.orzel@amd.com>, Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2] CI: Add Arm64/Arm32 MPU build jobs
Date: Wed, 16 Apr 2025 10:21:30 +0200
Message-ID: <20250416082130.236530-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 (SATLEXMB03.amd.com: michal.orzel@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CY4PEPF0000EE35:EE_|SA1PR12MB8860:EE_
X-MS-Office365-Filtering-Correlation-Id: aa36f3f9-ce32-45e0-4b49-08dd7cbfb9a7
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|36860700013|376014|13003099007;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?R4miyFyKo2MwJl8lHjvpsEUZ05YVCzWsAvankjvv+Cpqrlo5ZS1DI3y9+/T8?=
 =?us-ascii?Q?A8jcV2KqHTC7XdGqfzfVSzFHGVf8IaaygnEaIGHpvyG5EkCwgSfyL+XlE3vc?=
 =?us-ascii?Q?q7Vjgh+blGXpkQmLG3k6CCskGvrN+1UcB3WacWrEwkP86qNpgxOi2Jyxap0k?=
 =?us-ascii?Q?I6/4XRGPZ1flNjGuRyOzxArWV93sZ5b/QoXB1jB/caitG8Ge7tokhz8njUA7?=
 =?us-ascii?Q?Y4MDbhBkCHX2oq/nY2I8nZRuo2kwZVs6czutyDW+YRhoItnSg2/eB4l0KrX9?=
 =?us-ascii?Q?7cf7D1KJnMHf/65jw9NNu11BoWl+JdJtPwMYgKKwVoLOe0uWB3NRBLalSppU?=
 =?us-ascii?Q?PGVGrFfHe+8LJsyrCUDxlsuooIIha+px9lRpGbta19NSunuBwReYgpQdYw43?=
 =?us-ascii?Q?pctXSiYUpxGjw+lCZLtbDDffJZneFb2ZsEFla9PZwy9wfE1oaarfQNaXW9HH?=
 =?us-ascii?Q?WEsMGf3UlbhuRTEaiIqC9uzBXunT4EM6viagEdJbyy4rnvAstM5DImgr+zpQ?=
 =?us-ascii?Q?FXgx+1BbZz04H5xbX7yyjT+UMHcfPIxy2gj6iwI1ecmWs0+Ufrgfouq76gbT?=
 =?us-ascii?Q?IfPndm3YEAc5mcWyXM8oyESO2aG7JvgbdBLScVbedr3mB3MOHrn/hEwnbIUt?=
 =?us-ascii?Q?g6jgym14Dv8SSBuuftm2AvMa5N+pn+eNOES+GgtIgCYt3KuSVcqlCTEo0eTs?=
 =?us-ascii?Q?VB478TBgEizTRP+UN9vTJkeeUJ4EYZeebsfZhqyeeeHpfejdIwr2gV81Hbry?=
 =?us-ascii?Q?UMHPo4vo2Y2Op4rfgJPMTUzjxsUWJmP0EfPxFYELjQ9Bxd/PQPJB/Z8QGLsU?=
 =?us-ascii?Q?8RHhVLCpqxPZwdB6t04dMpEbkZdzrNtURm8HOcGK7Zi11rpOwxltokGnbCUy?=
 =?us-ascii?Q?KYsatknmtswR9TjidgWiR1AL9O1rIoBUiNrseM0srs81v76r76KxHjhUcwkx?=
 =?us-ascii?Q?DXnmtN8XOBd66MtkS7FAdztv9CbDxFkkicv1BagyrnxYyZyeGhyE1wzDLlxC?=
 =?us-ascii?Q?PvqH2hbdpK41MQ3j9Y0XwIV37N5eluSjbvmKH+WQeUt8blUP1h6KUa31L0UJ?=
 =?us-ascii?Q?5/iMx+p6dibir8saxB+DhhworR8p4vHR3U1AoNl+RHc1Zn71Av5D0qzH30sw?=
 =?us-ascii?Q?LfUogDsWxEMs8q06NlVdneCEQN1PdLdqo5B8xwJg6KkeK0eNwIxYVxQ12GNL?=
 =?us-ascii?Q?qohEHHeiCRYuERhzpv7AgCA1mitBpi1MSpyGSTsBHqvGwOEbKEmThvsG9KRB?=
 =?us-ascii?Q?uCz5NvA34krgsE7K//o7/jZtav8kpV5vbAleSsFxpeTmRfkX+j8GRwp9BlLu?=
 =?us-ascii?Q?VbFPrwCVpqr4vszC9cULPOftliVpPSKWxbrLRqf2HBGI1KgkgAceszgU5D0W?=
 =?us-ascii?Q?hNQmKdLn9iN/cNOG7TI3/lxAJeUXa03thLjFlXwAyMSLwb4slaQpJSs68iXk?=
 =?us-ascii?Q?tNidZPoXAv9ftGSVGWnQUwcxzTdQEIEZRprHhkKz0gyTs9IkCRsoXg=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)(13003099007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Apr 2025 08:21:45.0418
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: aa36f3f9-ce32-45e0-4b49-08dd7cbfb9a7
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:
	CY4PEPF0000EE35.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB8860

Just like for RISCV and PPC, the earlier we enable the CI build the
better.

Signed-off-by: Michal Orzel <michal.orzel@amd.com>
---
Changes in v2:
 - add Arm32 job given recently committed series

Pipeline:
https://gitlab.com/xen-project/people/morzel/xen/-/pipelines/1771015642
---
 automation/gitlab-ci/build.yaml | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
index ac5367874526..ab5211f77e5e 100644
--- a/automation/gitlab-ci/build.yaml
+++ b/automation/gitlab-ci/build.yaml
@@ -379,6 +379,16 @@ debian-bookworm-gcc-arm32-debug-earlyprintk:
       CONFIG_EARLY_UART_CHOICE_PL011=y
       CONFIG_EARLY_UART_BASE_ADDRESS=0x9000000
 
+debian-bookworm-gcc-arm32-debug-mpu:
+  extends: .gcc-arm32-cross-build-debug
+  variables:
+    CONTAINER: debian:bookworm-arm64v8-arm32-gcc
+    HYPERVISOR_ONLY: y
+    EXTRA_XEN_CONFIG: |
+      CONFIG_XEN_START_ADDRESS=0x0
+      CONFIG_MPU=y
+      CONFIG_UNSUPPORTED=y
+
 # Arm builds
 
 debian-bookworm-gcc-arm64:
@@ -443,6 +453,16 @@ alpine-3.18-gcc-debug-arm64-earlyprintk:
       CONFIG_EARLY_UART_CHOICE_PL011=y
       CONFIG_EARLY_UART_BASE_ADDRESS=0x9000000
 
+alpine-3.18-gcc-debug-arm64-mpu:
+  extends: .gcc-arm64-build-debug
+  variables:
+    CONTAINER: alpine:3.18-arm64v8
+    HYPERVISOR_ONLY: y
+    EXTRA_XEN_CONFIG: |
+      CONFIG_XEN_START_ADDRESS=0x0
+      CONFIG_MPU=y
+      CONFIG_UNSUPPORTED=y
+
 # Yocto test jobs
 yocto-qemuarm64:
   extends: .yocto-test-arm64
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Wed Apr 16 08:30:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 08:30:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.955315.1349114 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4y9g-0001yd-GU; Wed, 16 Apr 2025 08:30:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 955315.1349114; Wed, 16 Apr 2025 08:30: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 1u4y9g-0001yW-CG; Wed, 16 Apr 2025 08:30:00 +0000
Received: by outflank-mailman (input) for mailman id 955315;
 Wed, 16 Apr 2025 08:29: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=9TmO=XC=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u4y9f-0001yQ-ES
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 08:29:59 +0000
Received: from mail-wm1-x336.google.com (mail-wm1-x336.google.com
 [2a00:1450:4864:20::336])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fb100600-1a9c-11f0-9eaf-5ba50f476ded;
 Wed, 16 Apr 2025 10:29:58 +0200 (CEST)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-43cebe06e9eso48304565e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 16 Apr 2025 01:29:57 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4405b54579fsm14079415e9.40.2025.04.16.01.29.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 16 Apr 2025 01:29:56 -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: fb100600-1a9c-11f0-9eaf-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744792197; x=1745396997; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=YVid2WeVnAjBzMSJ0mKNpFLIYiLYOG1PPV7THfdvBCI=;
        b=DBoCCXzlUTU9RaILaallE4vydmGp78Td5pQEazTy1zuFFCwh+jNZXVO4eQGc08K2sD
         qkZ44i4ETObS/1/BjZaYYNDiipeGSpQI8U6PgWTcUtnZq9CSyd4cDx282NNScZX+6pmN
         DSS4EybJ3EFPHbbzwqOneq7A/pEppURudnvG8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744792197; x=1745396997;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=YVid2WeVnAjBzMSJ0mKNpFLIYiLYOG1PPV7THfdvBCI=;
        b=JC4bkpzJV5EhG+atY9OkbOxyvvkXpwGB5tDBYRVH35fhI4ZCuQ29hPD1X4mgMxx/s6
         JQIpzCow4yE1qiCTq4GXd+6t4nW9OFd9ROO36NW6kSrYV5kAMor3NmWU16p25FAkBIRL
         ti3WMKH14ylJEXlPGD628ZRqUK68VR8bbz62rWTHSOGOus+CVnmeAzJKo1KTJpWdHGXo
         JQK6VJ/FGLlEpdnLzczK5QGk0B71j43CViIdWmivG8Ld4e3zKSTRvRC3dK9KlhU0WBp2
         riYrPsqIMd8oED4sHbws0NzG37Xrn7ErbPBsQbXcD61SsmusZnSOXL056nccmevnlEUH
         c4rQ==
X-Forwarded-Encrypted: i=1; AJvYcCXQU+nBWgjTDazlruBClF3Ij1itZoOf0GMbfnFSGknQz9MI00akB2fTR3y8oCBQIPnJRf/0BuPe2rE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzXzjzM/f2M3fia0exGcLYccq/khyod6DT/qR753jy2zBdoBLI+
	obBCl7QtphtT6xXQI/+Eef657/aI9XTWoOUMtHOyCzT7mZpTdDbqHXdBtR5cBJA=
X-Gm-Gg: ASbGnct9Wtj8AHvVmeaAuSEz1/IUVqGB0CD7try/wiPF7p1WoAUnTx90XhNhiCmMJMR
	kVxhDP2iY0B/SJDGleH1pIcywHYavp6dvx1qTIBXoRLPOpvUoiwxlg+z2PkPCImf15A5QJtC69E
	UKOWb3o3iQeQMY/gFBnRWUIP+6AYZwYuyFwOcBxcE2nlDNQ3EMGMymS4MKiRyWN4LvAxo7sL5Tp
	fhKxHxO3U1GKGvZakOVhpmUdg42WJy5RrA5jUDrbxnSVhY/YmP3JXE9yIWRLpxmQ0PpHJBHVq+6
	pauAhtVfc2dBkavHpmOt/MvmXAgVBrCZRGGU4JxgeNXSOi5zK3wGKOB6X7hUillXxDFNIhrgsJv
	eC+5PSw==
X-Google-Smtp-Source: AGHT+IFmfn4wJ8o/kqMGspMwPVCD91TcD4q18Rdwl5SJAonnb3xzQtRIcgdLo812kSZAKUqj8ueP/Q==
X-Received: by 2002:a05:600c:1c22:b0:43c:f85d:1245 with SMTP id 5b1f17b1804b1-4405d62a53fmr9496095e9.17.1744792197354;
        Wed, 16 Apr 2025 01:29:57 -0700 (PDT)
Message-ID: <fdfed991-d95b-4290-ad98-025a789eecc2@citrix.com>
Date: Wed, 16 Apr 2025 09:29:56 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/4] xen/io: provide helpers for multi size MMIO
 accesses
To: Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>
References: <20250415153246.81688-1-roger.pau@citrix.com>
 <20250415153246.81688-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: <20250415153246.81688-2-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 15/04/2025 4:32 pm, Roger Pau Monne wrote:
> diff --git a/xen/include/xen/io.h b/xen/include/xen/io.h
> new file mode 100644
> index 000000000000..4495a04c403e
> --- /dev/null
> +++ b/xen/include/xen/io.h
> @@ -0,0 +1,68 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +/*
> + * IO related routines.
> + *
> + * Copyright (c) 2025 Cloud Software Group
> + */
> +#ifndef XEN_IO_H
> +#define XEN_IO_H
> +
> +#include <xen/bug.h>
> +
> +#include <asm/io.h>
> +
> +static inline unsigned long read_mmio(const volatile void __iomem *mem,

void *__iomem.  (i.e. without the __iomem in the middle of the type). 
It seems most examples of this in Xen are wrong.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Apr 16 08:37:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 08:37:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.955329.1349123 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4yGn-00047d-4c; Wed, 16 Apr 2025 08:37:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 955329.1349123; Wed, 16 Apr 2025 08:37: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 1u4yGn-00047W-1U; Wed, 16 Apr 2025 08:37:21 +0000
Received: by outflank-mailman (input) for mailman id 955329;
 Wed, 16 Apr 2025 08: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=lrH/=XC=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1u4yGl-00047Q-6o
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 08:37:19 +0000
Received: from EUR03-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur03on20607.outbound.protection.outlook.com
 [2a01:111:f403:260c::607])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 012bc3a8-1a9e-11f0-9eaf-5ba50f476ded;
 Wed, 16 Apr 2025 10:37:18 +0200 (CEST)
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by GV1PR03MB10254.eurprd03.prod.outlook.com
 (2603:10a6:150:165::10) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.33; Wed, 16 Apr
 2025 08:37:14 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::35ac:8893:c31c:b971]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::35ac:8893:c31c:b971%4]) with mapi id 15.20.8632.035; Wed, 16 Apr 2025
 08:37: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: 012bc3a8-1a9e-11f0-9eaf-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=lJrEHd5OqhSsyUzLSdKfCRAp2mq2r45BjFUbYTesozcRGtN1a6uuIdBeSl+m/CIOtbSgFogk8RbWcHSkZcL4lSp+WgSxxmEIsMfiXIjpgUqAGynXJIp6f5dH/t1VgS8DVpt4nyVDXxuhoCWJ4C2DfxEjV0K8syyoptsV7kFGmSWIuacqmfYzOzHPLntU2f2AhorUAYhuttIg+qVsDsMk41ijK29OSWvEWlF6K9nKWak6z6fm7E3CAqnJNjB8o6IoV64eJRDHDaZ+sQOWkBxrH7wlNY1BOLdUf3Cl8A3DhvZ3q9OKENVg2txGsgw8LjJ3w9Q7C5WKQNu7cf7f0uOq1w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=eKCddAureLY+7uhEowl5Ypt7amtZOqCBhpsTe6r4MlE=;
 b=QuvaxLFMZJ0B5ZhNwRXYYy0ySlzmxLabKQbFMt0YiYRZYrK+LjtZYVHDSSzLNQoRgM6prBdgTp/j1pLXEgxW54DzuRgBKDPnoffS1M5r65d/KhvUAA4y4Udxjjrcm4i2PqfLIIiu144EqVMHktLv/67Z0TlQEJfPy/CIer1pEY7BCMUkhV5RiJIG7jMKnBwR1mqex+RD7BCPsBd6m9id/r8q671Pt2weRLRTvyVcyySbpaY2eehKp32vZA+4Zp1F9ntsl3PptDbm9iOVb2PQgFUgFsJ0/gjdcv0KC40hrj8YeLk3qkuZ10IayXlk4ye8AZP7o8c9lc/NWnP7UVeZbg==
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=eKCddAureLY+7uhEowl5Ypt7amtZOqCBhpsTe6r4MlE=;
 b=lA3Yavsn/wzkA9dcl+KZO2rHukKDdfUzayV356aMv/m5mXpY0fZpbZxweCbAGD8mmRfpAEfGaI2EycNWXvq6XKvHSOTlQ83LmQEXv2h/HDjfuuE8zkF8vY3bos/eKUS4ExkHN+8xMg7X2WC8jqSask9o5RVLpriGpO7/gWaCnIhiWKhPK3kEqPQo50fvC6gx/BoYqbzWwoRzOhD1zDIWf006+Otd990sLIiHezDG4fCaFw7Em+YYC538PQcCuBLubcfb3bQif55/8z+YL6MBAQDlLOJDxKcmSB3xYGz8YJLDVCDuUOPsTc6qC3PUF3m/6IBvbPx8jzWOoA0G5POfzg==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.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>,
	Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>
Subject: Re: [PATCH v2 0/2] Add support for MSI injection on Arm
Thread-Topic: [PATCH v2 0/2] Add support for MSI injection on Arm
Thread-Index: AQHbrSLDj7RBwKKgz0m9mJin+yPd5rOi+rAAgAJZvwCAAKbLgA==
Date: Wed, 16 Apr 2025 08:37:14 +0000
Message-ID: <15938705-ae5e-43c9-826f-d7a8c7425baa@epam.com>
References: <cover.1744621166.git.mykyta_poturai@epam.com>
 <98feb427-7da5-47ff-831c-2b4bcb26c4b9@xen.org>
 <alpine.DEB.2.22.394.2504151536240.8008@ubuntu-linux-20-04-desktop>
In-Reply-To:
 <alpine.DEB.2.22.394.2504151536240.8008@ubuntu-linux-20-04-desktop>
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_|GV1PR03MB10254:EE_
x-ms-office365-filtering-correlation-id: e116af3b-d2ab-4fcf-14f9-08dd7cc1e38d
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|7416014|376014|1800799024|366016|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?RU5ZR3Fmdm4vcDVzV0M2L0N1Y3RHWTF4SnZkWHpxYlB2czNna0FCRWVEYjZG?=
 =?utf-8?B?VGladU0wNC9FWS9uNm1HWTBhMWZjcUtiVGdlbUJUVHJpbW1nMm1va0JCOHF1?=
 =?utf-8?B?S0tJaW9YbjE3eXM2bU9UZ3YyblNVYU10MW80WEY2ZDk0SlQzWE5QbExkSnA1?=
 =?utf-8?B?TitFa3U4ZlNtSXdkMXl4ekt0UVNacWVWSW56UEsxVktYWDZyZFpHVDJlUVc0?=
 =?utf-8?B?ZUJINkplbzJ2SzczdjVGTDRwcmJqc25Pdkh5ZVJYRmpRWE1LdUJmdGF2QXM4?=
 =?utf-8?B?STNKak5VOEFlV2FUTUlJMGg2UDNrK0xxaTYvWjlMeUZ4RWRwQUcyV0JManBV?=
 =?utf-8?B?bGNOOUhmREs2N1Z0RW9QZGl6ZW5BTTZzZXV4UGRZSitTZlZVOW5hL3pnZXJG?=
 =?utf-8?B?RW4zaGE0MGNmeFh0UDRwN0JZekp0a3ZVK0NXMDRSOGdiUGVqRzkyRE1ZSHo1?=
 =?utf-8?B?dTlDNU1kdFNaY0Z4Y3dKU1p3M2JsS0xkZ1I1RzQzS3l4T3pWVHVGS0h6OGhY?=
 =?utf-8?B?emd0L3hOS25waG1odWdkMDFrUmZhTG8vYjJsQlNlTzVXTVFQWmlNUWVjcGdQ?=
 =?utf-8?B?NmEvSkp3TlN5ZjZYN0lCZ2cvK1BNdGkvNDM0NVBJd2RYWGM3aDFxQXpXcUdW?=
 =?utf-8?B?S2w5cUtIclF0dERZRy9Va3VzZWxHWXhTdG81blNJVDZOcVR5bE5kUVhZSW5n?=
 =?utf-8?B?eWtuKzlHYUhIczN1SXVjaEJmK0xMcWwzRXJhQW1wSVl1dE1Ia281UUVNazY0?=
 =?utf-8?B?NFJ6dFNRcG14ekR5V0RwMVN1RUQvaGVEcWtibkZrOGtuQ2psVFU0Visrc1VB?=
 =?utf-8?B?NjU1bWw5YUtJTmN1MC9IREVVcENIWlRFckU3RUI5eVY2SktQRjFwVk9mTHB1?=
 =?utf-8?B?aXA1WWJQRVdFT2RET0doWjB3aVZURy9xaXRMVndaN0VJRWxHRTJtWWYvclg5?=
 =?utf-8?B?cXQzZ0lWSFkvU0dZOGFqZTVHNmwvc2tqTHY1bmVXSzlEeXJ5cGsxejRvbEth?=
 =?utf-8?B?Y05MamhyS2wyaDZuWTdEUkxqV004bHZLSW85bVk1K3lnOG9STDJWWFVVQllE?=
 =?utf-8?B?U2dPeDRrRmh2Vi9PYjRCcUVteW83UER0K0Z4TGVBd3NneXNBUHk3S3RMbFcx?=
 =?utf-8?B?WXZsOEw4Z1NqeUEyUDhqUndSaml4eTl2MmlkMERkY2YzWE1OM1ZVVGpFU1R4?=
 =?utf-8?B?TFFDRW00UEV6SzJjOG85djNWcmZWZ2hjVXhWSlhlS015aDhkb1BNcDFWODRn?=
 =?utf-8?B?Z1hXRXVRRlZVcXh0cCtFcGRDeWthc0ZZbndoeEpZRUg3dUVGUGFzd1ZXMmJx?=
 =?utf-8?B?MC9YUE03ZzRJditxdUZtR3RyZ01WWUh4UndVQXFBOC84THIrTVJzUlhZZjdL?=
 =?utf-8?B?cVVmQ2hpQ3BlN21DdjNRVjZPVjdTbEJaVlFaQjJXeXJwQS9PRld0bFFUcU10?=
 =?utf-8?B?UnhqcUV3MGs5UDlOZmtnRVQveGpJR3FWRGxwK2swcUwrOE4ybVhlZU04eFIy?=
 =?utf-8?B?cUg1d1QwZ2RYdTBWN2RNNDBDZzV6NGhsR1lWVHZCckRSU3dhUWpFazVMYSt2?=
 =?utf-8?B?TllPTWVnNEVtZ21oQmV6dmVGOUhzdzRXaUIveFdDTDlVNS9wYUhBTDhyRnps?=
 =?utf-8?B?Nlg1U1d1djMwTFp5WS94KzBZWlk3RlZhWUk3VGlZc2ZMNThia2ZwTVFpMjg1?=
 =?utf-8?B?ZklkY3I2ZVpjMGlqQVlUaE9lN0tHeWxYaWxuVFNaK2lkVXkrUjk0YzhhZEtN?=
 =?utf-8?B?cHF4Q05nNFhOMWltSER5eXRtRVdBZVRraE1kZS95WDMySDQ4ZGlFYm9scCtp?=
 =?utf-8?B?eFdkVXdYTDBvb2VFUGdhOVFvcGJqWTRPc1NRNzBEV0UzMUV2enVMQWQrYlFP?=
 =?utf-8?B?SllEb3dCeDRwRk9Tekt1UkhsaGc5YUIvNC9sdEdYcFNKa1pKdmFqaVBGdWZI?=
 =?utf-8?Q?JyT0f5r1oH4=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)(7416014)(376014)(1800799024)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?MUswRW5rNE4wUzhmQkNCY0NIZEZYKzFyaVdDb3M0dWFVb0xjNFdpN1V2TDdl?=
 =?utf-8?B?YWFHQTkzZW5XS0JJQnZNRE1aR0pFQ0Vtc24rTVpFUWV5N3F3Z0h5MEZJQkVl?=
 =?utf-8?B?ejBVMkhYY3Nwa3poMW1Xbjg3ZkJZUVE4aEc1US9aNHUybmEwYllyWEQwSGRa?=
 =?utf-8?B?SHdYZHJNeC9VNWNyQ2xaSStWbUp4V205SU50SURNek96c0dWQThScEVwT3FY?=
 =?utf-8?B?Ny9xdDQwN3V4VS9oaDgxdW93eUlMNTRSMG1Od3NpQzZJbjVRb0dvbXd6cHMx?=
 =?utf-8?B?RGpZdzl3cEp0b2dtY1Z6N3dYVjR3blVGaVNLL1Q0b2hFQnRzZVFVU0lOdmhZ?=
 =?utf-8?B?TXVFTlVvTHNxZ3FXaVdZd1RobStEOXIxN05rL0ZuUVRNek5FZEpwMmZxUGU5?=
 =?utf-8?B?NEoybHZzUTB5Qzlza0ZNRitYVUNLQkhCVEFrcVZiZHV0cDhRendNdmlSd2dn?=
 =?utf-8?B?VVVNRmc4Wk1jd3E3b1R3cDMwekMzL0owUVVWYVdtbkYrOVo3MTFOWUQxYUQx?=
 =?utf-8?B?cHlvMTFjTTlNUVAzS2l4WWdmNnBzQVVZbXZwR0NlVG1kODZLdzRvYkhzNFVx?=
 =?utf-8?B?bVZhcFdYM3RMamRvTVBGSUZGWU1aRzVTb05JKzV4ak5uSzAwMWM4aTl1WjRr?=
 =?utf-8?B?MjNwSWtaNlhRUTgrNkdpUGZ1ZDRZZ2tGMXd0aFYrOEg4cXBQUzhnQjkwd0tI?=
 =?utf-8?B?SG9VWmVXZ0lvY01YanVTQWxncjEzS0VUSFFoNDBkUGMvdXZMeHVTcVdoaVFa?=
 =?utf-8?B?MFQzSTh6RWxxbEozemNSVjArbm1qQmdqMWg0eVNtaUJLOWlGY2RPb1lPaCtj?=
 =?utf-8?B?MEM2NlcrM1lOdkVuK0tiT2x2Smw4ZkJTSFAxUE1TbFF2cEtLSjFjaXRjMHg2?=
 =?utf-8?B?ZWsxTE8reHB3MUJLRjlzR01QWjVnN1lFTUxaYkNpNE9YSkw2dE1EZXlYS3hK?=
 =?utf-8?B?dDVoTlN1bXA3bkVBa2oxZ1hIeGhGVVo3dzhuOVdwdFVTd2Z5MFQ5NVp6dlFQ?=
 =?utf-8?B?NU5DWmk2eXlrcnBXRXN1K1FJQ01LUUtDSVBOTmFoQ0kxMU52bm1SZWNIR21i?=
 =?utf-8?B?V3pDS1pQcHI0bEF1Qm51RTJhc0lPVnIxYXVvaFpZZnBlYndraU1zYmJBWjJJ?=
 =?utf-8?B?ZzYzVW1YeGEzVWM5MnV6YTJhODdmQ0hpYkN1K2ZRU1VENit4bnRUc1dqTGxC?=
 =?utf-8?B?bzY4d0VibXEySGRVNHpVUHFUWTdkaDZpRzlxakJlMEQvNDZLNFFVUmd6RXB5?=
 =?utf-8?B?ZWQwa2Z0MTZ6YlV6NG9lNlNxK1FpVVNBOFZ0RVlhMWdHc1Y4bTRROGJTUzM0?=
 =?utf-8?B?YSttTjlCQmJSUTdQZy9BQVpBaTlnQ2lVbGxKT0xmWkZOTHMwQmhPR3NoZ05F?=
 =?utf-8?B?ditDK0ZXM1RDb29zYmkzTzdzWGVaYjhmeFF4ZWplRmFYNXIxcWo3VC9ndC8y?=
 =?utf-8?B?SXJRS3gxaEJmSEVNNTlaWVpVNTdtS09waGVMM1lybmpxQU1CRVFaSFNURkVy?=
 =?utf-8?B?alJXL3B0bnp4czFuOFRLelcwTDEwa2pNemYvclZLQXpwT3lxdWFJdHdQQy93?=
 =?utf-8?B?dVhIUSt1U0sySUM1TytJZEdxbERYVlZmV3VtU2RFa1AzVEFwKzhaOFRqMUZs?=
 =?utf-8?B?M1gvbTV1SXJOVmIvSEQ5dWJQVFZ2VlpoNTUwUXdtYWhoMFRXSlMxVk16UDBj?=
 =?utf-8?B?ZnE4OXlhQ3JqZFBIYnlrV2llbnJzWnBYOGpIcFdwdTVmSVlxYXNJazdJaG9Z?=
 =?utf-8?B?cUlHODZqeTU1V3RGRFI5TE5ZakdwUDV6ZlFvZ3hMYUpRMlVOSlh5Yi9HY3lw?=
 =?utf-8?B?cGhjNjNsbWVKdUJmRGNEWk5LSW81OXp4MXV0ZWVoSG1abzFnN1J1WWFZc2Ny?=
 =?utf-8?B?bUVMY0REakJlYkRDQ1JyMGYwWFFjLzI1OURxYTA4WkJWU3UxTFRVQTY5WVJM?=
 =?utf-8?B?V29odTBMT1IrNldjRXBMR1c5TzZKb0NRTFc1N0ZOQ05yUTVTZzU3cE1sbmhy?=
 =?utf-8?B?dUQrRXRvUlVEdkpXVHd6VjI5MkNFdEwwR0graExwUCtwd2ZKcFFkWG5KVThE?=
 =?utf-8?B?dlpOUCtXZi9EUVppNUJzdEgyc1VBeW0rK0pmT09wYXNhYm5MbVg2YkR2QVE2?=
 =?utf-8?B?dU0reVJFWnRCTkMyK2VlZkQwdmE2VHlXT0VjWGc0QWtiNmRUNENSOFQ2NW8r?=
 =?utf-8?B?YVE9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <F60B8159DFDB3A4DA62402184BA9E92D@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: e116af3b-d2ab-4fcf-14f9-08dd7cc1e38d
X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Apr 2025 08:37:14.4001
 (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: EkZkSdNWNlWSgo8eOgP5FY03wC6WZUIh9UOz+/1ha4UyXVv3UkkNL5GRej3/WMH+p8XVSgMLQicrUD/2fQw8rA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR03MB10254

T24gMTYuMDQuMjUgMDE6NDAsIFN0ZWZhbm8gU3RhYmVsbGluaSB3cm90ZToNCj4gT24gTW9uLCAx
NCBBcHIgMjAyNSwgSnVsaWVuIEdyYWxsIHdyb3RlOg0KPj4gSGkgTXlreXRhLA0KPj4NCj4+IE9u
IDE0LzA0LzIwMjUgMTg6NTEsIE15a3l0YSBQb3R1cmFpIHdyb3RlOg0KPj4+IFRoaXMgc2VyaWVz
IGFkZHMgdGhlIGJhc2Ugc3VwcG9ydCBmb3IgTVNJIGluamVjdGlvbiBvbiBBcm0uIFRoaXMgaXMN
Cj4+PiBuZWVkZWQgdG8gc3RyZWFtbGluZSB2aXJ0aW8tcGNpIGludGVycnVwdCB0cmlnZ2VyaW5n
Lg0KPj4+DQo+Pj4gV2l0aCB0aGlzIHBhdGNoZXMsIE1TSXMgY2FuIGJlIHRyaWdnZXJlZCBpbiBn
dWVzdHMgYnkgaXNzdWluZyB0aGUgbmV3DQo+Pj4gRE0gb3AsIGluamVjdF9tc2kyLiBUaGlzIG9w
IGlzIHNpbWlsYXIgdG8gaW5qZWN0X21zaSwgYnV0IGl0IGFsbG93cw0KPj4+IHRvIHNwZWNpZnkg
dGhlIHNvdXJjZSBpZCBvZiB0aGUgTVNJLg0KPj4+DQo+Pj4gV2UgY2hvc2UgdGhlIGFwcHJvYWNo
IG9mIGFkZGluZyBhIG5ldyBETSBvcCBpbnN0ZWFkIG9mIHVzaW5nIHRoZSBwYWQNCj4+PiBmaWVs
ZCBvZiBpbmplY3RfbXNpIGJlY2F1c2Ugd2UgaGF2ZSBubyBjbGVhciB3YXkgb2YgZGlzdGluZ3Vp
c2hpbmcNCj4+PiBiZXR3ZWVuIHNldCBhbmQgdW5zZXQgcGFkIGZpZWxkcy4gTmV3IGltcGxlbWVu
dGF0aW9ucyBhbHNvIGFkZHMgZmxhZ3MNCj4+PiBmaWVsZCB0byBjbGVhcmx5IHNwZWNpZnkgaWYg
dGhlIFNCREYgaXMgc2V0Lg0KPj4+DQo+Pj4gUGF0Y2hlcyB3ZXJlIHRlc3RlZCBvbiBRRU1VIHdp
dGgNCj4+DQo+PiBbLi4uXQ0KPj4NCj4+PiBwYXRjaGVzIGZvciBJVFMgc3VwcG9ydCBmb3IgRG9t
VXMgYXBwbGllZC4NCj4+DQo+PiBUaGlzIG1lYW5zIHRoaXMgc2VyaWVzIGlzIHVudXNhYmxlIHdp
dGhvdXQgZXh0ZXJuYWwgcGF0Y2hlcy4gR2l2ZW4gdGhpcyBpcw0KPj4gYWRkaW5nIGEgbmV3IERN
IG9wZXJhdGlvbnMsIEkgdGhpbmsgaXQgd291bGQgYmUgbW9yZSBzZW5zaWJsZSB0byBoYXZlIHRo
ZSB2SVRTDQo+PiBzdXBwb3J0IG1lcmdlZCBmaXJzdC4gVGhlbiB3ZSBjYW4gbG9vayBhdCBtZXJn
aW5nIHRoaXMgc2VyaWVzLg0KPiANCj4gSGkgTXlreXRhLCBqdXN0IGNoZWNraW5nIGV4cGxpY2l0
bHkgd2l0aCB5b3Ugd2hldGhlciB0aGlzIHNlcmllcw0KPiByZXF1aXJlcyB2Z2ljLXYzLWl0cy5j
IGZvciBEb21Vcz8NCj4gDQo+IElmIHllcywgaG93IGZhciBhcmUgeW91IGZyb20gc2VuZGluZyB0
aGUgcmVsZXZhbnQgcGF0Y2hlcyB0byB4ZW4tZGV2ZWw/DQo+IEhvdyBtYW55IGFyZSB0aGV5Pw0K
DQpIaSBTdGVmYW5vLA0KWWVzLCBJIGFtIHBsYW5uaW5nIHRvIHNlbmQgdGhlbSB0b2dldGhlciB3
aXRoIFZQQ0kgTVNJIHN1cHBvcnQgYWZ0ZXIgDQpTTU1VIHBhdGNoZXMgYXJlIG1lcmdlZC4NCg0K
QWx0aG91Z2ggdGhlIERvbVUgdml0cyBpdHNlbGYgaXMgb25seSB0d28gcGF0Y2hlcy4NCjEuIA0K
aHR0cHM6Ly9naXRodWIuY29tL0RlZWRvbmUveGVuL2NvbW1pdC9jN2ZlNTRlNzc2ZTQyMDVmYmI5
OTNlNDdhNmI4MjZmNTE1NGZhZDc2DQoyLiANCmh0dHBzOi8vZ2l0aHViLmNvbS9EZWVkb25lL3hl
bi9jb21taXQvYjZiNGZmYWRiMzY4ZjU0MGEwYWU4ZWY2YjQ1NzJmMGNmZDJlY2NhYQ0KDQotLQ0K
TXlreXRh


From xen-devel-bounces@lists.xenproject.org Wed Apr 16 08:38:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 08:38:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.955340.1349134 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4yHu-0004f5-FG; Wed, 16 Apr 2025 08:38:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 955340.1349134; Wed, 16 Apr 2025 08:38: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 1u4yHu-0004ey-BB; Wed, 16 Apr 2025 08:38:30 +0000
Received: by outflank-mailman (input) for mailman id 955340;
 Wed, 16 Apr 2025 08:38: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=slpe=XC=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1u4yHt-0004eo-0U
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 08:38:29 +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 29fcc9b7-1a9e-11f0-9eaf-5ba50f476ded;
 Wed, 16 Apr 2025 10:38:27 +0200 (CEST)
Received: from DM4PR12MB8451.namprd12.prod.outlook.com (2603:10b6:8:182::7) by
 CY8PR12MB7413.namprd12.prod.outlook.com (2603:10b6:930:5f::5) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.8606.32; Wed, 16 Apr 2025 08:38:09 +0000
Received: from DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::b04e:2da5:7189:4c4d]) by DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::b04e:2da5:7189:4c4d%4]) with mapi id 15.20.8632.035; Wed, 16 Apr 2025
 08:38:08 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 29fcc9b7-1a9e-11f0-9eaf-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=VuOhAX9oSRphGvKddoBKr8XXxUCblD/XhoI/4rwfNg+IdcLNBeh3cjGhagIzPsSrIWJCvGFDPTU0uPTKkXkAFcF8Myl1WNqDFrXh5bNrMhbZLO1pS06EurE3iCn13uP7VfqfL+I0RjO6Yw+GG8H2RNZqvK335zjH8LMyYfZagcq2mwI7oMDxTX87YBQ+5uzpgsYZbys0dNijlw+Fmav/yJUxLE7uZ8ftdhqdKUnfRkB+xnstYTYM2Q8TZc3kuexELpwsfxzEgd7o+gTV8T7dMvhf2cTAyxCEzXpGJYj5HFlRxHuaxA0aR620nsZyCyePLMEZ+6o/e8zjLaSOhMXv+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=fxpyWd5KMf+liIXvCETDmdk9xIjSAg71tWtjTLusOhU=;
 b=upBpXR+UDVwPfT1T/eGELd3DpMwgubInfMqy17D0mO/RI/XhlO9P7ifWBnmg0pCXvXlyWchUWfDNHoNiiF06Dwg3yA/qM3q+nqfSCGPRFNk2Z6K51xGeGClcEhz+8JdKY4U+bZonPNNrCiQfZKu11IKrvoEwQ4tLGOCkudvmBVzI6o3TaA8Ela16rDEgfW1I9T6a/NABVJ+JTEnvKo35VwtTw/60RfgdlragW7L4el/vWpun/LoPGiTJiaRSXfhJYs8bxiN/6cd7goCmr7mbWggZEQV243IGfYxflNw9lbcd6kNgAWAvTiAtatbg7y/QMa4RqW+jC76ZNhd38jF7zg==
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=fxpyWd5KMf+liIXvCETDmdk9xIjSAg71tWtjTLusOhU=;
 b=dnK7OcxMDhHwO0ep6xZtqmNngO/l2QEEiEXqv1NmTtGYnl/Vd2lnXLKc5evZm8NItnwWYxwOraAbDaq1qjvLK08qd3iOD9vCw/XvmQct7I3SO90aLLXPmrLlMDDqs4/GTimLyopgQN6/QeXBpe4PYpNqBYY0NKRq0A+PJT7qoB4=
From: "Penny, Zheng" <penny.zheng@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "Stabellini, Stefano" <stefano.stabellini@amd.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: RE: [PATCH v2 10/19] xen/sysctl: introduce CONFIG_PM_STATS
Thread-Topic: [PATCH v2 10/19] xen/sysctl: introduce CONFIG_PM_STATS
Thread-Index: AQHbnhN0GO5sSI+g2kqtQPzlgrAUG7OO0pKAgBbuLcCAADcSAIAAF55A
Date: Wed, 16 Apr 2025 08:38:08 +0000
Message-ID:
 <DM4PR12MB8451C5EDCEAB4592434706EEE1BD2@DM4PR12MB8451.namprd12.prod.outlook.com>
References: <20250326055053.3313146-1-Penny.Zheng@amd.com>
 <20250326055053.3313146-11-Penny.Zheng@amd.com>
 <df30d9fa-15dd-4923-bdaf-04f9476529d1@suse.com>
 <DM4PR12MB84519E18C6F4FA7724C03751E1BD2@DM4PR12MB8451.namprd12.prod.outlook.com>
 <6c5b4f07-0f7a-47aa-9469-a5a7adffe27f@suse.com>
In-Reply-To: <6c5b4f07-0f7a-47aa-9469-a5a7adffe27f@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
 MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_ActionId=7e4ee221-c559-45fb-93ed-8c519a00e044;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_ContentBits=0;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Enabled=true;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Method=Privileged;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Name=Open
 Source;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SetDate=2025-04-16T08:37:59Z;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Tag=10,
 0, 1, 1;
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DM4PR12MB8451:EE_|CY8PR12MB7413:EE_
x-ms-office365-filtering-correlation-id: 0ea74874-dec3-4ab8-42cd-08dd7cc203d7
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?ZlFsREdLU0R0bUpkTElLSjZNM0VuRm16RVF4RUdTUEN3MjZNaVVabzExL3JU?=
 =?utf-8?B?WXRYY2YrcTRZbDV0dXRRZFhqbWJrZkJsTTV6SCtjU3lpQ2J2U29FWlZwWnla?=
 =?utf-8?B?WUIvbitxajVYdVhUQjZhbmIwUS83RyttNEw2cmdGQnlVaER0eE0zemVRek51?=
 =?utf-8?B?dTkvYTlYZGhIdldHTW1qUFVCbU9IVEhFd2FiYmU5YXJaSnhOWG5BUnBDT0J4?=
 =?utf-8?B?aWk1OVU2YlRXWTlVSStCS3FNcGhwMi9nU054S0ZWK0ZEYUJZQlI2YU9vRm05?=
 =?utf-8?B?NXY4cHRrRFFwSTNtVVdmUmhzSFF1NWhmVGhnWHNaL29OSWVEMEpmWHZmbmVC?=
 =?utf-8?B?ek1HOEpLaUZUSUkvT3FjNkRwVk5MSXpzSFRNTHNnVVdVeFFlV2tDdHlXWFB4?=
 =?utf-8?B?MU9TU21ZazlnNHhlMDFOcXJVYTRZVlZkaTd5OUQ4d3NuYmQ3T1lJTCtWNllw?=
 =?utf-8?B?cGNQVHNsVFZPVFNlYWZSQXNYWkMyaVhUdlVSMWZJNms2c2RZRjl5dGphMU90?=
 =?utf-8?B?TGNIYmNHc3pkWm1uMDA5VU1JRUhnWUNZWHJ0TmVDMmg2OU1rZDBqRFpJek9q?=
 =?utf-8?B?ODlyUytSV21MNFAxWWUrV2I0U3NPelVGcHJPbTdtRjhFa2dXZElhbnRTQ0ta?=
 =?utf-8?B?bU5nSWN6anQ5czgzUFVvSXhLQTZ3T3ZPZnBNdTk4MXYzYVlwV1E0V2h1QytU?=
 =?utf-8?B?SVhDY1RtWjVMcHhzR3h3cEhCT0hRZGZCVUI5Z1lUV3IrajRFS3ZsZlo5MmFm?=
 =?utf-8?B?ZUM5cUlVbHRMeDZxd0llOEVkRVhhK00wcXNrSExkZy95aURtUUhGQXBEaE8z?=
 =?utf-8?B?bmhqNkUxdFZsc010bnlYbmtOWFMvVkRzMXFRMEdWNVlWQ0FRL1lSNjhYdG90?=
 =?utf-8?B?MVR2bERhYUdtNml5MzZxUlFBWlNmbjdqaU1meFdIM1hVOVZTdGtISlFsY1hU?=
 =?utf-8?B?cE1RYysrQlZLNHNoK29XNGNaZndlN2x5VFE1WkFWK1V5OC9jR2E0aW5DMkw2?=
 =?utf-8?B?SC9JeG50WE9CSnFIWTN1NW5CRlhnNjBsK2NlTVlHdVhXam9XU0lFMUNQdUdI?=
 =?utf-8?B?WmxST0grNWFKLzQ0RzI2djc0VEUrcTVlQVJVMkpQc0NKUExncS9MNk5la2hy?=
 =?utf-8?B?ZTAwQjRLdVBTck4ydXFWN0FzbVJpK1dkdGx2RWg4S3lzQ2VNVnpXblUrUFNS?=
 =?utf-8?B?THRxU013ektORkQ5SFozd0lQMWt5eG1ubWZRNXlTU0FTUWlPQ0M4VjFoa25n?=
 =?utf-8?B?akt4bENZRkJocjlzS2FPclJiWmtsajRDdEtKam9td0dIV2l2NjhEMzNQMUNQ?=
 =?utf-8?B?UDErV2g0ZUN4ZWhLdW1xNGVDeS9KUkREWjZ6TW1teGx5MERBcU93RFJuRjAw?=
 =?utf-8?B?Yy9EKzVaZ21wdWFKbFc0a0NJQmUyUDdIU0daSTUxNStzb2pWOEt2YjhtU1Ja?=
 =?utf-8?B?ajJZbjlFK2ZHUGxZZTNWNysrNmpiMXBTSnoxakRoRGpzdWhURld5dEs1a1FX?=
 =?utf-8?B?OGVNczZMWVptcEtlWFpPMnVJQnhXUnpDZVV5RDU2QzhkT3hpVVR0anpWdkFR?=
 =?utf-8?B?V1VLaEFQYXBWSTVqL3BaWlo5dENRekpUeDJDdlJVUFZhUkRDUkpYVmxKaDF6?=
 =?utf-8?B?amkzaG5GUkhnMWFVNk1Nd0JZdTRqdUJ3a0FZSXU5bEtRWXZDL0hXdFBZWEc5?=
 =?utf-8?B?LzBQQ05hRDdUZEx3QlRPR2c3ZzVNWnhPNmxMNDJzeE10R0hxUysyUnQ1elNX?=
 =?utf-8?B?bDJzSlJOdFpzWHFWSmR2a3EyT01ZUnVOS0FuSWFFSmpNQ3pqY0hQQkgrbjJU?=
 =?utf-8?B?U2dMZDgxWXBOdnpxRUlmaHo2Q2xSSVlkazNXOXdJTUx5dTVJVlNEV1JwWnJD?=
 =?utf-8?B?QU9JWWMwOUxxaHR4eVlLWlcyUFg0VGFkQ0Q4c1B4Yk1BR2thY0k5OTl3K3lw?=
 =?utf-8?B?SjRlVytIY3Y4bjRCV0JnNlgxSEwzeitFM1JKS0ZzVlVzUVVyYitXcVdzTXRI?=
 =?utf-8?Q?UFrAadJv3JBDnpY8B3sl/KHd3R8Qjw=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB8451.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?MEFVY042a29QWmJkWEMzQ200clZKT3VSZ0hHanJKZ3dNejVndUhBMmk4bU5p?=
 =?utf-8?B?YzFPR0g4RWNuYTF1dXV2aEZ3WTREenZ5d1BNeHpwOTAvemZTOVZ0RzNDMlMx?=
 =?utf-8?B?ZktZQStpYWUyUitQczZ2STF6V2JqdFdVUjZPU00zdlZSM0dkam1Od2UvVkhh?=
 =?utf-8?B?WnVFL2d6d0pzNFRLV09oaUhMdkpTTjNPN2FYa0FPNHRTaHhvQW8weUxMOW15?=
 =?utf-8?B?Q0J0N1ppRUE4VGFFbnMwM3ptNElBNmh3L0tvTlBMYjdKT2g2YjhBTkh0VEhI?=
 =?utf-8?B?a1pOQXE5a3Q5K1JCaFhWUFk5aDIvU1pqaU5aQWhHOXZWa2REdEo3emZkSGNt?=
 =?utf-8?B?UGlsTDhFZmxBeWd6L2oyY3F2aFhUcXExNDRpOE9ZL3BVNTQ1V1N6bW03SnRS?=
 =?utf-8?B?L2tvQ2VxU010dUc0by9ld285L0YrbWhUdnJyVjI4QVBLWURaekkrR0QzRW81?=
 =?utf-8?B?aTdZcy9PQTk4T2U4RmkydFdNNFZuUU9XVXlmNE02L3VncHhNQ2N1b2dqdUFZ?=
 =?utf-8?B?UVBPc28zMzU2YkJTdjdFSjkwcDdEZWhFSk4xbXpDU25CZVZwcWM0dTNoRSsr?=
 =?utf-8?B?TGZkajZvYjQvMnN3anNJSXVWZ1g3eStIdXZXRGVHMExIT0grc0JMTHZMd1ZF?=
 =?utf-8?B?SVVya3hVMklpdGF3ZkIwV3RSVG9RbWpWWmpDRGdZN1MxRkJ5Rk93ekxtNFBV?=
 =?utf-8?B?YUF6dFFwelZtYkc5WkdVK1V0TllySmM5NG8yK1c1aDNLekRWYXk5cnkydVhW?=
 =?utf-8?B?UFJ0bWtQdy9tZGgzVjZVRTdUMXhsbjdNSVdHVEEyblRsZ2NqYnV2UWttYTR5?=
 =?utf-8?B?K1JwWS9CU05JTC9Nd0NhSFh3NW5RaHg2RmMwazloYWtyWVJzUUswdXRZc2ZB?=
 =?utf-8?B?Ynhndmp3d0tvUlY0R1lhbU5OaFJCVFg3alByNnBYdEZPcWpXOTRiZ1YxRFJh?=
 =?utf-8?B?aGlBZGxiY2RwZDdGUWFITGhWNzdROEhSUTNIK1BiOUc1MjRxRlFSc01yYW9B?=
 =?utf-8?B?Nk1HUVlYbFRuY201elNQNm1lbC9HTmxpVjVNYXNWMnNybk5jTy9nTFFTeWhx?=
 =?utf-8?B?ZzB3cTJoLzFsNEZsU0hyZjBKc1JsNlFZOWozSTkwdm9iVkdtMURvWlB1MlQx?=
 =?utf-8?B?eVlURTZYaFBlRTZYVVk4aWVGU3EyMC9vbWhWb2wzRVA4cmFiTklpeFBmRk9H?=
 =?utf-8?B?SXM5TGt6T01nL1dtaFpBZk4xN25ZTlZmQ21zMGJVQWRheHBIK3lXaE5rVTc1?=
 =?utf-8?B?NUQrVkttcURiZ0IxZGlBeFZyUm9KN0RhSmxaRis5L2V1M2J0Q3YweGtpa2t6?=
 =?utf-8?B?VFhpQUhnTi9YMDZKeWovbXByd2lvNGJaODI0V0tZK1dja1N3S1V1UFphaUky?=
 =?utf-8?B?VE5USWpOdGJwSlJwYkdldlFXbnJScWJXSnV5THZBY2wwaU1TZGFydWJ6R3Rk?=
 =?utf-8?B?UW5vcnFVUFpCZk96ZjFyaVpONkxRb2FObkMxL0JSOTJTYm1XUXhKckZhaURz?=
 =?utf-8?B?T0VsT21DSUtJK0szdm04UnJHN1UySVQ5Z3B5M2pVQjRNcHgwY1pGb2dSNVN0?=
 =?utf-8?B?OGczTHVJbUY2cWI5bWdVc2t0S0tNeG55TWVGQmNENUhwUW53aThLaFg0M25s?=
 =?utf-8?B?Z3p4cGgranpmbWV2eHNNelVWS1BWK1Q2bWh5MVlSREIyRyticEwrMnRYcmlQ?=
 =?utf-8?B?Rm4zR2hvb0trUDJxM0dzNUJtREdJVnpGMUlPZjJpT1VGVk9ta043eXN1bHNM?=
 =?utf-8?B?N2tvZXRNbXNDVnhlQS9jbWtZR2U5VUhUMGUwdkVicXl3cEVZKy9oRDIrb08r?=
 =?utf-8?B?R3d4TUJlYXh1RVJFVkZhK2tZQWF1cmIxdk1lMnZNL25hakpJZUtqZXhGeC9L?=
 =?utf-8?B?ZmZ0YU5mSTRUZE9KZjZ3cUt0Z1BaajRCWlZ2KzIvUnRrdDNJSUtzUnoxRkY3?=
 =?utf-8?B?NTB2c3dHQ290bGE1SHd6Zno0OFlMSHJadUM5YnI4bFByVW4xNHcrQ211OU5R?=
 =?utf-8?B?Z2tBWjJXSHc0Qk56YUdzbUhKM25YeldzeUt4M3greVJ6dkpiSU12RjlrbmFk?=
 =?utf-8?B?Tm5rZnRrVG9pYVdUU3IyNFZwZkRuREMvS3lqMVNJYjN4dTZCK0dYVGpTeGdz?=
 =?utf-8?Q?9MV4=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB8451.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0ea74874-dec3-4ab8-42cd-08dd7cc203d7
X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Apr 2025 08:38:08.6297
 (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: CkZbqNTmgpJe65af9J0CqpZyJJhd56ZZFeuuI9KI1Dzw9ebf+TAh+NN1cqt6UHzcJ/w43SZ2Nd9IzxDMb1HtpA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR12MB7413

W1B1YmxpY10NCg0KSGksDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTog
SmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPg0KPiBTZW50OiBXZWRuZXNkYXksIEFwcmls
IDE2LCAyMDI1IDI6MzcgUE0NCj4gVG86IFBlbm55LCBaaGVuZyA8cGVubnkuemhlbmdAYW1kLmNv
bT4NCj4gQ2M6IFN0YWJlbGxpbmksIFN0ZWZhbm8gPHN0ZWZhbm8uc3RhYmVsbGluaUBhbWQuY29t
PjsgeGVuLQ0KPiBkZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0KPiBTdWJqZWN0OiBSZTogW1BB
VENIIHYyIDEwLzE5XSB4ZW4vc3lzY3RsOiBpbnRyb2R1Y2UgQ09ORklHX1BNX1NUQVRTDQo+DQo+
IE9uIDE2LjA0LjIwMjUgMDU6NTQsIFBlbm55LCBaaGVuZyB3cm90ZToNCj4gPj4gLS0tLS1Pcmln
aW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4gRnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2Uu
Y29tPg0KPiA+PiBTZW50OiBUdWVzZGF5LCBBcHJpbCAxLCAyMDI1IDk6MTAgUE0NCj4gPj4NCj4g
Pj4gT24gMjYuMDMuMjAyNSAwNjo1MCwgUGVubnkgWmhlbmcgd3JvdGU6DQo+ID4+PiAtLS0gYS94
ZW4vY29tbW9uL0tjb25maWcNCj4gPj4+ICsrKyBiL3hlbi9jb21tb24vS2NvbmZpZw0KPiA+Pj4g
QEAgLTU1Nyw0ICs1NTcsOSBAQCBjb25maWcgU1lTQ1RMDQo+ID4+PiAgICAgICB0byByZWR1Y2Ug
WGVuIGZvb3RwcmludC4NCj4gPj4+ICBlbmRtZW51DQo+ID4+Pg0KPiA+Pj4gK2NvbmZpZyBQTV9T
VEFUUw0KPiA+Pj4gKyAgIGJvb2wgIkVuYWJsZSBQZXJmb3JtYW5jZSBNYW5hZ2VtZW50IFN0YXRp
c3RpY3MiDQo+ID4+PiArICAgZGVwZW5kcyBvbiBBQ1BJICYmIEhBU19DUFVGUkVRICYmIFNZU0NU
TA0KPiA+Pj4gKyAgIGRlZmF1bHQgeQ0KPiA+Pg0KPiA+PiBBcyBwZXIgYWJvdmUgLSBlaXRoZXIg
bmFtZSwgcHJvbXB0IGFuZCB0aGUgZGVzY3JpcHRpb24gdGhhdCBTdGVmYW5vDQo+ID4+IHN1Z2dl
c3RlZCBhcmUgd3JvbmcsIG9yIGl0IGlzIHRvbyBtdWNoIHRoYXQgaXMgYmVpbmcgY292ZXJlZCBi
eSB0aGlzIG5ldw0KPiBjb250cm9sLg0KPiA+Pg0KPiA+DQo+ID4gV2UgaGF2ZSB0d28gc3lzY3Rs
LW9wIG9uIHBlcmZvcm1hbmNlLCBkb19nZXRfcG1faW5mbygpIGFuZCBkb19wbV9vcCgpLg0KPiA+
IEkgdGhpbmsgZG9fZ2V0X3BtX2luZm8oKSBpcyB0byBjb2xsZWN0IFBNIHN0YXRpc3RpYyBpbmZv
LCB3aGljaCBjb3VsZA0KPiA+IGJlIHdyYXBwZWQgd2l0aCBDT05GSUdfUE1fU1RBVFMsIHdoaWxl
IG1heWJlIGRvX3BtX29wKCkgaXMgbW9yZQ0KPiBmb2N1c2luZyBvbiBwZXJmb3JtYW5jZSB0dW5p
bmcuDQo+ID4gSG93IGFib3V0IHdlIGludHJvZHVjZSBhbm90aGVyIEtjb25maWcgQ09ORklHX1BN
X1RVTkUgdG8gd3JhcA0KPiA+IGRvX3BtX29wKCkgYW5kIHJlbGF0ZWQgaGVscGVycz8gSSBzdWdn
ZXN0IHRvIGludHJvZHVjZSBhIG5ldyBmaWxlIHBtdHVuZS5jIHRvDQo+IGNvbnRhaW4uDQo+ID4g
T3IgYW55IGJldHRlciBzdWdnZXN0aW9uPw0KPg0KPiAidHVuZSIgaXMgdG9vIG5hcnJvdyBpbW8u
ICJjdHJsIiBtYXkgYmUgYW4gb3B0aW9uLCBidXQgaG93IGFib3V0IHNpbXBseSBwbS1vcC5jLA0K
PiBmaXR0aW5nIGRvX3BtX29wKCkgcHJldHR5IG5pY2VseT8gUXVlc3Rpb24gaXMgd2hhdCBlbHNl
IGlzIGdvaW5nIHRvIGVuZCB1cCBpbiB0aGF0DQo+IGZpbGUuDQo+DQoNClRoZSBmb2xsb3dpbmcg
ZnVuY3Rpb25zIHdpbGwgYmUgaW5jbHVkZWQgaW4gcG1fb3AuYyBhbmQgd3JhcHBlZCB3aXRoIFBN
X0NUUkwgb3IgUE1fT1ANCiAgICAtIGdldF9jcHVmcmVxX3BhcmEoKQ0KICAgIC0gc2V0X2NwdWZy
ZXFfcGFyYSgpDQogICAgLSBzZXRfY3B1ZnJlcV9nb3YoKQ0KICAgIC0gc2V0X2NwdWZyZXFfY3Bw
YygpDQogICAgLSBjcHVmcmVxX2RyaXZlcl9nZXRhdmcoKQ0KICAgIC0gY3B1ZnJlcV91cGRhdGVf
dHVyYm8oKQ0KICAgIC0gY3B1ZnJlcV9nZXRfdHVyYm9fc3RhdHVzKCkNCkFuZCBkZXNjcmlwdGlv
biBmb3IgUE1fU1RBVFMsIEknbGwgdGFrZSBzdGVmYW5vJ3Mgc3VnZ2VzdGlvbiBhbmQgZm9yIFBN
X0NUUkwvUE1fT1AsIG1heWJlIGl0IHdpbGwgYmUNCmBgYA0KRW5hYmxlIHVzZXJzcGFjZSBwZXJm
b3JtYW5jZSBtYW5hZ2VtZW50IGNvbnRyb2wgdG8gZG8gcG93ZXIvcGVyZm9ybWFuY2UgYW5hbHl6
aW5nIGFuZCB0dW5pbmcNCmBgYA0KDQo+IEphbg0K


From xen-devel-bounces@lists.xenproject.org Wed Apr 16 08:40:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 08:40:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.955351.1349142 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4yJw-00068g-Ol; Wed, 16 Apr 2025 08:40:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 955351.1349142; Wed, 16 Apr 2025 08: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 1u4yJw-00068Z-M0; Wed, 16 Apr 2025 08:40:36 +0000
Received: by outflank-mailman (input) for mailman id 955351;
 Wed, 16 Apr 2025 08:40: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=yQHX=XC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u4yJw-00067u-12
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 08:40:36 +0000
Received: from mail-wm1-x32f.google.com (mail-wm1-x32f.google.com
 [2a00:1450:4864:20::32f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7629091d-1a9e-11f0-9ffb-bf95429c2676;
 Wed, 16 Apr 2025 10:40:34 +0200 (CEST)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-43cfba466b2so67261945e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 16 Apr 2025 01:40:34 -0700 (PDT)
Received: from [10.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-39eaf44e9b6sm16175222f8f.101.2025.04.16.01.40.32
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 16 Apr 2025 01:40:33 -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: 7629091d-1a9e-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744792833; x=1745397633; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=jpgunm6uv52X3QNJzswTa4gAKlry5T3MKufXI5GqcgU=;
        b=guUMzU8EggZPpfAsegkKO6W6+ahT9Jo2QgCCPurFz1crAUQuRFnxje+aBh8VkeWKsS
         7awQfjxihHdpuWg04h2a77TqkNkHI0N1eD9KdY37CaVuooSXeRxUtp10JoWn6MP43RrO
         4gcnJCdKUj+ehpVWxm2ulUFg0QYSFS9A6lpRIe6JPdN2YTrRdbH5mkmpJFfK+ZyacMqN
         pTGaoceggnLuNIRdDqG0GtnkvclWErMAv3myBNV3VtHUzafYjdX4MIhdljFBxUnXQ9o1
         dWeZIhDxRtvytmHekKyt5AMrVCHw+DVJ3i+7MM77FM4Zn7nEglmQ+ynlbvwA+4SxPdUp
         N4Lg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744792833; x=1745397633;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=jpgunm6uv52X3QNJzswTa4gAKlry5T3MKufXI5GqcgU=;
        b=ox8JSEpMijQMc7UB0a/dFZybrTbuPjHOHCSfAXT2hDx+5m85r/tEPd+h72s5r91ZGy
         bxEN/RZ5iTUdFSqIHjfFBE1eJRkbVF5fOe5wbs+Khv9/FwMbKSQbTdp3vPRMK794XscJ
         zrtyP+1y2jCMacMDrqWA8+aeYH8B4/H+sAmmrrhf6WhrF1b3A7tq/QCcOk3pNgJzAVGH
         kppCLtDzG12JeHTnF80amDP1dBEYbGX0wSTv0qZNoNcT5q123wMShJRD+dBe355CqV0e
         OGGlUjHWtgRTiOQorz8Cp9nivXCSoF4ge3Eqr5cFYl4HHMtg/AwlWBsWIBDCpnPn/F7/
         3wOQ==
X-Forwarded-Encrypted: i=1; AJvYcCUxZYbrCnG4vpYLRxhYX4S2OpEftj89YtgtoTgyOR/nFny2hx65bz7Lec+22ou3TB8S2M7E6pReEaI=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy06cf8U4BbYvbd0IaKvcTlVbJC0jqlTj/HAdELhCqwVrUbYL5x
	Cf6uMm/1rmCob8mZHPVGoHFgL5EdAfGeXCuqQcOlgyiTvknLSOai99sX+9JzXA==
X-Gm-Gg: ASbGncvvLFElGIENyXgv2KZTVhVtMIfKOArnrC3rYZq7aUPKyN0RnYtxdpQroyw/apS
	DzYvyah+5ebeBq6pL0AKdAbAaZasNVyaeEkDmz+Axn1Cd1GUlU7NW2cLsQR2s43AtI9KWpWpNQX
	U+K84+LUtnRzjNTZPxngTD2zPlgYg9W028KZLaKoKRQyphsKU/fcXyCqkAgzV/c40G9RabdMCrq
	qLBGfZ6S1xT4LCqL/ywbH9lPn2Q+xjRsEBYj1UYf/rvialrY2MQIit3aBC8CVIBHMYddxaNdZP/
	S3oNfcYecUmi/nOgrCxvtg3y7W83Qi5zdgNutsfM3YhggS/zef1KhQnEgypQx01CviqwxNyjzMv
	Wl9Qzkplc9HTAtykUv9cdnIFmCQ==
X-Google-Smtp-Source: AGHT+IGXl/ytS5yXZyL5QOgRdyvab4rP3ObRj6kipU+BmEptImjPdGkK+n3Slmoz671AuKvHJ+LiQQ==
X-Received: by 2002:a05:6000:18ab:b0:39c:1f02:44ae with SMTP id ffacd0b85a97d-39ee5b35dbemr1070834f8f.27.1744792833379;
        Wed, 16 Apr 2025 01:40:33 -0700 (PDT)
Message-ID: <ffec2189-dd44-45d2-ba63-992c3217438a@suse.com>
Date: Wed, 16 Apr 2025 10:40:32 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/4] xen/io: provide helpers for multi size MMIO
 accesses
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
References: <20250415153246.81688-1-roger.pau@citrix.com>
 <20250415153246.81688-2-roger.pau@citrix.com>
 <fdfed991-d95b-4290-ad98-025a789eecc2@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: <fdfed991-d95b-4290-ad98-025a789eecc2@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 16.04.2025 10:29, Andrew Cooper wrote:
> On 15/04/2025 4:32 pm, Roger Pau Monne wrote:
>> diff --git a/xen/include/xen/io.h b/xen/include/xen/io.h
>> new file mode 100644
>> index 000000000000..4495a04c403e
>> --- /dev/null
>> +++ b/xen/include/xen/io.h
>> @@ -0,0 +1,68 @@
>> +/* SPDX-License-Identifier: GPL-2.0-only */
>> +/*
>> + * IO related routines.
>> + *
>> + * Copyright (c) 2025 Cloud Software Group
>> + */
>> +#ifndef XEN_IO_H
>> +#define XEN_IO_H
>> +
>> +#include <xen/bug.h>
>> +
>> +#include <asm/io.h>
>> +
>> +static inline unsigned long read_mmio(const volatile void __iomem *mem,
> 
> void *__iomem.  (i.e. without the __iomem in the middle of the type). 
> It seems most examples of this in Xen are wrong.

Hmm, perhaps in turn because I don't see why it would need to be that
placement. The attribute describes what's pointed to, not the variable
(or parameter here) itself.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Apr 16 08:45:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 08:45:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.955369.1349157 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4yOX-0007YM-DE; Wed, 16 Apr 2025 08:45:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 955369.1349157; Wed, 16 Apr 2025 08:45: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 1u4yOX-0007YF-A6; Wed, 16 Apr 2025 08:45:21 +0000
Received: by outflank-mailman (input) for mailman id 955369;
 Wed, 16 Apr 2025 08:45: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=yQHX=XC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u4yOW-0007Y9-Fp
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 08:45:20 +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 206598a9-1a9f-11f0-9eaf-5ba50f476ded;
 Wed, 16 Apr 2025 10:45:19 +0200 (CEST)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-39149bccb69so6373122f8f.2
 for <xen-devel@lists.xenproject.org>; Wed, 16 Apr 2025 01:45:19 -0700 (PDT)
Received: from [10.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-4404352a536sm33815325e9.1.2025.04.16.01.45.18
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 16 Apr 2025 01:45:18 -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: 206598a9-1a9f-11f0-9eaf-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744793119; x=1745397919; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=45CtvZwSqAs9vVxuUalSwVD2CbjgjGDDcM9GvYrNg2A=;
        b=NIHDz+U0+OA+9JU2VcSMVIT0iceVuEtV3Nom62CrTCey/tv7cnxwpO3B8T552p/MGI
         7jSdoQtKtdwCDNn0T9Rc5znCwuYXv3gCM7Yp5JW87sFMO+IBf5IMlrj8LOnaVtjiHvPm
         de5lwOTQAaBpWE/vj+hxzh+ze73bzo76lBhf9GQqOWpjYYtQPlqKH9PDU8j9OBOdj2Ra
         vTofGfovWSwkAjsmdKgvubyF1qOiikE2RSSsXGMEicOgJB8o9KIK99IcMOzhQx5kkEkl
         nmloyER2YqEba4VSSWDTCpquneHYpWu4KqIFY4zvzLFPFbVsX6aihVUMIo6NHny52Rqm
         gwZw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744793119; x=1745397919;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=45CtvZwSqAs9vVxuUalSwVD2CbjgjGDDcM9GvYrNg2A=;
        b=K5zMqcNzCfGXjgv9YxdpFvZzJy/fjJApf6Cef4uq6wY/RYYQ6yliplZdMGGutx9AhM
         tf6islGdzrZk2UxBd/YCmW1/BkveeZsfR04K5UNv8ae/dfp0bSbzhthQswfSkWZYJsdD
         US7MzH1ZHQ6jezafja96IQAiKI0nB30jjBZLouUAm6iyO0ImWB5DGjwJc8Fou5w+elc3
         i4wKFfJEph/AGytjQW0XPx938JDD/vgL6N4CNOkYRoFe8rmDll93/wVadKFf25+ELsPY
         ZhWBdAKPY5Kvob2bzzwTR+eI9SDw6ghCXoez3YKqRaLxT2Rr1rTypCVVVjvCinSnCqt9
         tuNQ==
X-Forwarded-Encrypted: i=1; AJvYcCU3s4upMolSKndWQWc1vIht0PerlqpFs9eBAsl4xZCh/hFxNWYm2WYS9/mtDBZfL/F+V9gempvIC7k=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyYsKUGWD1vHwURqOClUFr0me/M96i6dJdzSMmlSJ3M83gCOrZx
	2WZd6EPbAe5nlxXq/8J8MG21KebU1VyaOfIlAcnnLAU9Fuorsvp0toalxdbIXQ==
X-Gm-Gg: ASbGncuMK3+L8ZVIuyLz6Wh4C9pfzP3xm/UlaAihIJqnsSF84rqCee9pJS+gtWHN5Kt
	4N1zVK8tuS9PvT8qq7VbvPWRcQOHWwq8y9MAwLxnUSpe9B15u4lZG/cDRVt7k1t73LT1moS+81v
	EUO9yVELG4veu4x+hlj2OcvPbamFDSshxVyxP0etEWcRGyUqAE7/mmlzWyHOOFB6AHSsIyluzgz
	9xLuXsCm7ZXTQTDoZ4rIJptgIp3q8mMt9ARTXFhOYXhcc7PPPsEt1c2k51k+eXnDquXvx7a4V6h
	Iz/VetwL+Tq5WY/xIZ37xK2V07NF7reFnw1cPrhc3+vC3CSChpfZ+UHXwm6lTacwRPzsy+LIctY
	NZCWney8InMcDoSij47aSZBLknA==
X-Google-Smtp-Source: AGHT+IFPPKMHIr5eRIcjgDwxOQDmwcYJqdvyQSMCmPhgthhwM50sbH/CUMd3CFHSKFBgyIigOFLZkQ==
X-Received: by 2002:a05:6000:1ac5:b0:391:4231:414 with SMTP id ffacd0b85a97d-39ee5b8943bmr887350f8f.40.1744793118945;
        Wed, 16 Apr 2025 01:45:18 -0700 (PDT)
Message-ID: <137453c3-e6b2-498d-b17d-da57988f89ef@suse.com>
Date: Wed, 16 Apr 2025 10:45:17 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 10/19] xen/sysctl: introduce CONFIG_PM_STATS
To: "Penny, Zheng" <penny.zheng@amd.com>
Cc: "Stabellini, Stefano" <stefano.stabellini@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20250326055053.3313146-1-Penny.Zheng@amd.com>
 <20250326055053.3313146-11-Penny.Zheng@amd.com>
 <df30d9fa-15dd-4923-bdaf-04f9476529d1@suse.com>
 <DM4PR12MB84519E18C6F4FA7724C03751E1BD2@DM4PR12MB8451.namprd12.prod.outlook.com>
 <6c5b4f07-0f7a-47aa-9469-a5a7adffe27f@suse.com>
 <DM4PR12MB8451C5EDCEAB4592434706EEE1BD2@DM4PR12MB8451.namprd12.prod.outlook.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <DM4PR12MB8451C5EDCEAB4592434706EEE1BD2@DM4PR12MB8451.namprd12.prod.outlook.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 16.04.2025 10:38, Penny, Zheng wrote:
> [Public]
> 
> Hi,
> 
>> -----Original Message-----
>> From: Jan Beulich <jbeulich@suse.com>
>> Sent: Wednesday, April 16, 2025 2:37 PM
>> To: Penny, Zheng <penny.zheng@amd.com>
>> Cc: Stabellini, Stefano <stefano.stabellini@amd.com>; xen-
>> devel@lists.xenproject.org
>> Subject: Re: [PATCH v2 10/19] xen/sysctl: introduce CONFIG_PM_STATS
>>
>> On 16.04.2025 05:54, Penny, Zheng wrote:
>>>> -----Original Message-----
>>>> From: Jan Beulich <jbeulich@suse.com>
>>>> Sent: Tuesday, April 1, 2025 9:10 PM
>>>>
>>>> On 26.03.2025 06:50, Penny Zheng wrote:
>>>>> --- a/xen/common/Kconfig
>>>>> +++ b/xen/common/Kconfig
>>>>> @@ -557,4 +557,9 @@ config SYSCTL
>>>>>       to reduce Xen footprint.
>>>>>  endmenu
>>>>>
>>>>> +config PM_STATS
>>>>> +   bool "Enable Performance Management Statistics"
>>>>> +   depends on ACPI && HAS_CPUFREQ && SYSCTL
>>>>> +   default y
>>>>
>>>> As per above - either name, prompt and the description that Stefano
>>>> suggested are wrong, or it is too much that is being covered by this new
>> control.
>>>>
>>>
>>> We have two sysctl-op on performance, do_get_pm_info() and do_pm_op().
>>> I think do_get_pm_info() is to collect PM statistic info, which could
>>> be wrapped with CONFIG_PM_STATS, while maybe do_pm_op() is more
>> focusing on performance tuning.
>>> How about we introduce another Kconfig CONFIG_PM_TUNE to wrap
>>> do_pm_op() and related helpers? I suggest to introduce a new file pmtune.c to
>> contain.
>>> Or any better suggestion?
>>
>> "tune" is too narrow imo. "ctrl" may be an option, but how about simply pm-op.c,
>> fitting do_pm_op() pretty nicely? Question is what else is going to end up in that
>> file.
>>
> 
> The following functions will be included in pm_op.c

To avoid another round trip just for this - I wrote pm-op.c for a reason.

> and wrapped with PM_CTRL or PM_OP
>     - get_cpufreq_para()
>     - set_cpufreq_para()
>     - set_cpufreq_gov()
>     - set_cpufreq_cppc()
>     - cpufreq_driver_getavg()
>     - cpufreq_update_turbo()
>     - cpufreq_get_turbo_status()
> And description for PM_STATS, I'll take stefano's suggestion and for PM_CTRL/PM_OP, maybe it will be
> ```
> Enable userspace performance management control to do power/performance analyzing and tuning
> ```

Reads okay at the first glance.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Apr 16 09:01:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 09:01:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.955381.1349167 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4ydh-0002cq-Nt; Wed, 16 Apr 2025 09:01:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 955381.1349167; Wed, 16 Apr 2025 09:01: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 1u4ydh-0002cj-Ky; Wed, 16 Apr 2025 09:01:01 +0000
Received: by outflank-mailman (input) for mailman id 955381;
 Wed, 16 Apr 2025 09:01: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=yQHX=XC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u4ydg-0002cd-68
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 09:01:00 +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 5058c8ba-1aa1-11f0-9eaf-5ba50f476ded;
 Wed, 16 Apr 2025 11:00:59 +0200 (CEST)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-43d0782d787so46861345e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 16 Apr 2025 02:00:58 -0700 (PDT)
Received: from [10.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-4405b4d33a6sm14844185e9.15.2025.04.16.02.00.57
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 16 Apr 2025 02:00:58 -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: 5058c8ba-1aa1-11f0-9eaf-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744794058; x=1745398858; 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=WptL+d1Yor8MxanXfuO0rr+6GghDt4hm4bVV6+NuoCI=;
        b=FYIr5Av2k1ngB2VwkHzXMw7BXS9yxMpXk9VEulhtr2sA56dcl5aKIoBoJ3l+5RA7Nt
         K3jpztPj78dKZ3C3Ga0vdYWjW2qBBasR/Ote+sPd2Z8HqBhPWKIqAoxDRhzCvB0UzNwx
         eX5hwM/xcSr72XOYfSLOGbkru4TRLCgKmXE2pnjfn0SlCSpP8rXJ/z4OvOO8mJSNJ2KM
         2nYxtXsmItNpQwmVvz3igQbl/ll6lQ12qS5OMSLHDLCOhV9e833asFY8vXY/T4UdrEqD
         KkM0s8s8ouASz4pRkc4wj1mNk+iBO3zEhE/zs6RWwU2VHrpZRIWQG09LB1t6TILIU3cn
         EIeA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744794058; x=1745398858;
        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=WptL+d1Yor8MxanXfuO0rr+6GghDt4hm4bVV6+NuoCI=;
        b=hOnIRhw98XoufTChH5G3+a42er0WlOYOM2BKk7V9gGmB3YHfkYAnJzr2jPBF11OrWR
         rxYyQ0smERob1im/QqYdcNF337wydHQb5W51nuU6nd5lUhdhq3uno4fbmUGVw9H1Cf7O
         JUFCz1kuS3vJveHd88ki8Sr1jiLIduQsOEQ2tMCzvDEtRezhZf8WiHvSbaWzsMu1F3Ao
         l08gL/41iEiS4hCIosUMN7qV6PZZO7ynrZqJhgF8lYF+OJstwz3bjfOFFlNEX0IgHzGh
         aCKkzzQsCz1i79/M2AU4cq2qGBDjqZL9No81rmwBJtbD3DCKqdDi8T89dg6/dBdKY16G
         LTlQ==
X-Gm-Message-State: AOJu0Ywr8APdLqvjlXbVsJgLPQJ45TPPtHkRzwzfoHoNV7uU4gb1n0UY
	UB8VaFcTPbGeUojrw2LKdg//IQbH5D6iRT/8HGi0HfcUQ/0KTSK3f54qBsT7XFLB6RmWvVOOhZE
	=
X-Gm-Gg: ASbGncvAU1gG9agM7aXqenamrnHAg5XNwUGi0gSJWsEJQ9LX7NXJAIqAjZfVtg0LcVQ
	XlOptXvZ2WxJGgV3gVl/Z3PWdYJ67mUOm9g9IYyudabbu5BzAwf4rxymQX7/A4Xjyc/f4NUhYiL
	HjqpWwsMqe8M7HEr8H/9WhbgQT+qzw6nYQo5QYAWjZQ1OI07hSkaox10pbgFQ/BmsdFd8/eVpHk
	sRvM9Jut47VNABiyq+eq6WUj+l6hSAt9Tfp46SavZ38OHFCJhuditugqQHewGBI9FNM4/z2Y+k9
	vJlb1stE2SU/2QD1lCRNTX0eVgesG5rf/gINLnxtpZVmCVSpa/eM+WPjWotkn4gujV+OzkaapRZ
	Lj6akV3FrX7MDRY8BtsuAQ03QZg==
X-Google-Smtp-Source: AGHT+IFxX22jXKEpL1oniT/+zpfJ6wQGZvSrZgDiZNXvOtETjK0kmmo/vrT0SSf67L+fTN20hgTRPA==
X-Received: by 2002:a05:600c:8705:b0:43d:db5:7b21 with SMTP id 5b1f17b1804b1-4405d6cf812mr8290505e9.28.1744794058352;
        Wed, 16 Apr 2025 02:00:58 -0700 (PDT)
Message-ID: <2412a7a0-bdcd-4647-8ea2-8d2a927dcde3@suse.com>
Date: Wed, 16 Apr 2025 11:00:57 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH] symbols: discard stray file symbols
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+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

By observation GNU ld 2.25 may emit file symbols for .data.read_mostly
when linking xen.efi. Due to the nature of file symbols in COFF symbol
tables (see the code comment) the symbols_offsets[] entries for such
symbols would cause assembler warnings regarding value truncation. Of
course the resulting entries would also be both meaningless and useless.
Add a heuristic to get rid of them, really taking effect only when
--all-symbols is specified (otherwise these symbols are discarded
anyway).

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
Factor 2 may in principle still be too small: We zap what looks like
real file symbols already in read_symbol(), so table_cnt doesn't really
reflect the number of symbol table entries encountered. It has proven to
work for me in practice though, with still some leeway left.

--- a/xen/tools/symbols.c
+++ b/xen/tools/symbols.c
@@ -213,6 +213,16 @@ static int symbol_valid(struct sym_entry
 	if (strstr((char *)s->sym + offset, "_compiled."))
 		return 0;
 
+	/* At least GNU ld 2.25 may emit bogus file symbols referencing a
+	 * section name while linking xen.efi. In COFF symbol tables the
+	 * "value" of file symbols is a link (symbol table index) to the next
+	 * file symbol. Since file (and other) symbols (can) come with one
+	 * (or in principle more) auxiliary symbol table entries, the value in
+	 * this heuristic is bounded to twice the number of symbols we have
+	 * found. See also read_symbol() as to the '?' checked for here. */
+	if (s->sym[0] == '?' && s->sym[1] == '.' && s->addr < table_cnt * 2)
+		return 0;
+
 	return 1;
 }
 


From xen-devel-bounces@lists.xenproject.org Wed Apr 16 09:11:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 09:11:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.955394.1349182 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4yni-0005Wi-NL; Wed, 16 Apr 2025 09:11:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 955394.1349182; Wed, 16 Apr 2025 09: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 1u4yni-0005Wb-Ib; Wed, 16 Apr 2025 09:11:22 +0000
Received: by outflank-mailman (input) for mailman id 955394;
 Wed, 16 Apr 2025 09:11: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=yQHX=XC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u4ynh-0005WT-22
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 09:11:21 +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 c1dcc16e-1aa2-11f0-9ffb-bf95429c2676;
 Wed, 16 Apr 2025 11:11:19 +0200 (CEST)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-43ea40a6e98so56587515e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 16 Apr 2025 02:11:18 -0700 (PDT)
Received: from [10.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-39eaf43d38fsm16574368f8f.71.2025.04.16.02.11.17
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 16 Apr 2025 02:11:18 -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: c1dcc16e-1aa2-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744794678; x=1745399478; 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=UxfKgyK7xsguxNIIHCKB7S3OeeLOAIPL0VZurTpmNCs=;
        b=RpAbP0INphM84MHlsWnKG78iDjE4ukeF5NcBBUjxAVl1lKd1jL44U7FWN/oxBXy9kR
         jwu7KAnLCvUpIAGIAzFELLtI6pcbWcalIpmgQEILs16Ov5sOunhjEpTbPhGTZg/k2C0H
         WztZlWI35JKyJzr8l7FxbFfIaBiL73f9PFvuUGbj5CkymzDOjhAWAplIBP0LhJ0XL2Ae
         4AemlISpngFsw9dg3QQtit/BIBnJkWkKVZqguLaPoUvZ1ag5QVKe/5KU4BwXFq61UpD7
         migfQMNXzv9SigvFRWhQqEZqO4RAzdoL72I4jGxcTLy38JDFVN8/QRNmO0lVZJDWkYjq
         U/DA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744794678; x=1745399478;
        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=UxfKgyK7xsguxNIIHCKB7S3OeeLOAIPL0VZurTpmNCs=;
        b=qIaryPST5tssyqPlBwlyrI5+bGKgOKdtsEvyArpJCVg1Bv5e5145X4Ivno/CdNaEOK
         2jfKMFg7XezNKFImOzvQgqSlVEzY6cv3176/UugVMfOlPdjjnPBjLjSNw7WEkIL/9NA3
         OIhrhdmmkQ+3GDbyHJfLE4IgafdFnyMDDBDPJfTN0YOZ92L/g4H10cmAE4S8rvWc4Ppi
         TDh3BXnDu6qnJjDpPRB20W+I5BMlgGELkukzHCsybvOZNhgAe6EIf3iakENlGaIWAf23
         tyDzHdmuxhWTkOABsTpfaaom3mLR/doKa7t3Bv1XZr/s7/0gFEmEi5sFeHtqKms0x0qV
         eqog==
X-Gm-Message-State: AOJu0YwILyDY80/eiWlTET3LuyLGFsexl8Mfzh8DBaVk/mOAw3Q4obzm
	5Y83vDlcygNjeTGHtWKkUbn+3MbbiXFhiXSdsQTXH7gAroxzHVYUtzaWYa/WOw81v2t5hujbj5I
	=
X-Gm-Gg: ASbGncsFXXRJ4CcgONqL1/Qc4+MKvQ9zyPCiYwb6mJNVzh154hjT2rJ4xJUE4y4LcpQ
	/aHSLHkLGWTsqJP0saVMrasrQ9DUSQ4KhRRHaPSY2ueyZo9zoLifD4WnJ8mnghx00MHQJkQMd31
	38FSpkCEsGqnQ5RfgSuB9kL/EXdUm8FUm2jpcm4f+wiTxPNLH+3WSbvzDtFDcXU4zmpeNQ4j/7h
	07yC4LIeAqr4RPkGFz/DrJUFUp64344r90bEteHlMTiBaUAdtbI1I+sUiDqCo3cSeA60JUPv5/w
	SznP5QIW52Dd8WZxeoulQcWMplDAP0g57cnYcXRLJlBsN0AwAkxJy5SvOErG4/iT0s8k3JWx1WA
	oEygW64GFTMVTEYI8E0cl4jyxIQ==
X-Google-Smtp-Source: AGHT+IEhh4Kb7Woj+fOh/o3K+ilJGWiozfdK9PXiovHb0wMRarYpA9jQsuC6RYdT4tJ2F6FtCF0lqw==
X-Received: by 2002:a05:6000:1867:b0:391:2a9a:478c with SMTP id ffacd0b85a97d-39ee5b1618dmr964970f8f.23.1744794678347;
        Wed, 16 Apr 2025 02:11:18 -0700 (PDT)
Message-ID: <e876c886-9a15-4193-9fb6-3c0624a288c6@suse.com>
Date: Wed, 16 Apr 2025 11:11:17 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Assert in x86_emulate_wrapper triggerable by HVM domain
To: Manuel Andreas <manuel.andreas@tum.de>
References: <e7347061-6dc6-44a3-ad41-270e705db2c5@tum.de>
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: <e7347061-6dc6-44a3-ad41-270e705db2c5@tum.de>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 15.04.2025 23:52, Manuel Andreas wrote:
> Dear all,
> 
> my fuzzing infrastructure discovered that an assert in 
> x86_emulate_wrapper is able to be triggered by an HVM domain executing a 
> specially crafted repeating movs instruction.

That's

    /* All cases returning X86EMUL_EXCEPTION should have fault semantics. */
    if ( rc == X86EMUL_EXCEPTION )
        ASSERT(ctxt->regs->r(ip) == orig_ip);

?

> Specifically, if the emulation of the rep movs instruction triggers an 
> exception (e.g. by accessing invalid memory after some amount of 
> iterations), the emulation will be halted at that point.
> However, the instruction manual requires that _some_ register state 
> (namely the updated value of rcx) shall be commited, whereas the 
> instruction pointer needs to be rolled back to point to the address of 
> the instruction itself. The assert checks for the latter. Problematic is 
> the fact that for these type of repeating instructions, Xen seems to 
> eventually just commit all register state when it encounters an exception:
> 
>     557  #define put_rep_prefix(reps_completed) 
> ({                               \
>     558      if ( rep_prefix() 
> )                                                 \
>     559 { \
>     560          __put_rep_prefix(&_regs, ctxt->regs, ad_bytes, 
> reps_completed); \
>     561          if ( unlikely(rc == X86EMUL_EXCEPTION) 
> )                        \
>     562              goto 
> complete_insn;                                         \
>     563 } \
>     564  })

I fear I'm not following, considering __put_rep_prefix() has

    /* Reduce counter appropriately, and repeat instruction if non-zero. */
    ecx -= reps_completed;
    if ( ecx != 0 )
        int_regs->r(ip) = ext_regs->r(ip);

>    8356   complete_insn: /* Commit shadow register state. */
>    8357      put_fpu(fpu_type, false, state, ctxt, ops);
>    8358      fpu_type = X86EMUL_FPU_none;
>    8359
>    8360      /* Zero the upper 32 bits of %rip if not in 64-bit mode. */
>    8361      if ( !mode_64bit() )
>    8362          _regs.r(ip) = (uint32_t)_regs.r(ip);
>    8363
>    8364      /* Should a singlestep #DB be raised? */
>    8365      if ( rc == X86EMUL_OKAY && singlestep && !ctxt->retire.mov_ss )
>    8366      {
>    8367          ctxt->retire.singlestep = true;
>    8368          ctxt->retire.sti = false;
>    8369      }
>    8370
>    8371      if ( rc != X86EMUL_DONE )
>    8372          *ctxt->regs = _regs; // <- Incorrect RIP is commited
> 
> I've attached an XTF test that should trigger the aforementioned assert 
> on the latest release commit: 3ad5d648cda5add395f49fc3704b2552aae734f7

I'll give this a try, perhaps it'll shed more light on the situation. I'd
be surprised though that the fuzzer we have in tree wouldn't have found
this (so far).

Jan


From xen-devel-bounces@lists.xenproject.org Wed Apr 16 10:06:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 10:06:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.955408.1349192 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4zeQ-0005xN-MB; Wed, 16 Apr 2025 10:05:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 955408.1349192; Wed, 16 Apr 2025 10:05: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 1u4zeQ-0005xE-Fb; Wed, 16 Apr 2025 10:05:50 +0000
Received: by outflank-mailman (input) for mailman id 955408;
 Wed, 16 Apr 2025 10:05: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=9TmO=XC=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u4zeP-0005x8-DP
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 10:05: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 5e5b1c55-1aaa-11f0-9eaf-5ba50f476ded;
 Wed, 16 Apr 2025 12:05:48 +0200 (CEST)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-43cfb6e9031so60396715e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 16 Apr 2025 03:05:48 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39eae9797aasm16837498f8f.56.2025.04.16.03.05.46
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 16 Apr 2025 03:05: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: 5e5b1c55-1aaa-11f0-9eaf-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744797947; x=1745402747; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=IkbvnXU5NNRoFxPT9gxqvG86YAELyV+PlP/FaUD+EBI=;
        b=mKoK95f3RXw3+Bnuiph5KUwpGIBM++BhIxBJ4Oks616No+xz9gE6SuZPFKDxc+vLw1
         MGWtLix6MLnP1cqXejfqWVhFh5px01IhAbbP5lYB49THDKJKiGGOsOifGIpsSl0dGNGu
         qj/YUgBhXvpHOjQASr9bI4iY48v8u9Xi3wbHw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744797947; x=1745402747;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=IkbvnXU5NNRoFxPT9gxqvG86YAELyV+PlP/FaUD+EBI=;
        b=SRd9DnGNibMvxCwkL9tt7YycrQFph68AhJuXJgmslZ0sTLpkvaFxSk02YQ2DSpf5DN
         ehAgsdbgULKzW9I+QZjZSNAiyXitKwkJkaUng5Xi+/Frk6xfgIFY6Z33GThFgR9lkHqT
         XfDH8X5c0LKVrYU4t6E6yK166wTVTsl9QHr3xHAgNaEYVOrU1KDAM8KK2pumpb5282xp
         9QJsV399/gWyelvdHit3YlILcd/DmHahEPollJaQMEXilDOR5Ods61za2OMYEg7orbIS
         nPrVzl4iHrqTTQz0guCxr3VI8ZhQ+zaKKwTF1n9RygHdJ3wU45r6UrBtdyRoBwdoT1JY
         HQCA==
X-Gm-Message-State: AOJu0YyiBYST+BzZh2m/dDEPiw5/G0So0u4llljEBaG8KYS31IeeEzKz
	i6cS4t00967ZZdxUpzpH+CIxjdSr7mHz1T5yKIhegi/y6+8Nnz3IHvhKVpK8I5M=
X-Gm-Gg: ASbGncvcnXQNjVfEL2WYNbg6uRk0PAv+dTOgG2is/bO3VMuLcAjamyNvE3Kuw+QHxuD
	gEjZQaMr29dZcLzShvMxbIlrmn0SojxeffdwmMSOI5k9+1q5yHoH+TZGwdAC20ctxxqvBz7qkz5
	sxCweJOrSkRZwGpu5cgEv2epuZsxmvzKGHIJaRIIhRPzRY2Y3wOJmxFugESRsJQ1zl7QqU7PHNq
	2ToWGgeNybwjptet2EiiAPpc7ibtFed/BkA4X6yy5vlMQRLuC6ZxudCluUuk8zzKs/fi7NVynTc
	aJuoOlt5H2bpS4C1iP4W4ceT8D4EDWhgT6/ep5hsUWii0LcjM7r2KPP7u1A9qu6CJdPhThjD1nz
	IrtBnpg==
X-Google-Smtp-Source: AGHT+IHqfHgurAAogrNZDGgncHeT4ywevh0Vl8LOS24CssZE5hdHcOvz/GnQNKdCB1rq0FxcG87kzQ==
X-Received: by 2002:a05:600c:3b91:b0:43c:fbe2:df3c with SMTP id 5b1f17b1804b1-4405d69b737mr9429775e9.26.1744797947319;
        Wed, 16 Apr 2025 03:05:47 -0700 (PDT)
Message-ID: <2e2156cc-1bf0-4585-bb31-faca5321fec3@citrix.com>
Date: Wed, 16 Apr 2025 11:05:46 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 2/6] CI: avoid repacking initrd as part of the test job
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, Anthony PERARD
 <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>,
 Doug Goldstein <cardoe@cardoe.com>
References: <20250414110903.2355303-1-andrew.cooper3@citrix.com>
 <20250414110903.2355303-3-andrew.cooper3@citrix.com>
 <alpine.DEB.2.22.394.2504151637100.8008@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.2504151637100.8008@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 16/04/2025 12:48 am, Stefano Stabellini wrote:
>> diff --git a/automation/scripts/qubes-x86-64.sh b/automation/scripts/qubes-x86-64.sh
>> index c4be71464246..e2376cb51cb4 100755
>> --- a/automation/scripts/qubes-x86-64.sh
>> +++ b/automation/scripts/qubes-x86-64.sh
>> @@ -164,16 +164,13 @@ ${domU_extra_config}
>>  "
>>  
>>  if [ -n "$domU_check" ]; then
>> -    # DomU
>> +    # DomU rootfs
>> +    cp binaries/rootfs.cpio.gz binaries/domU-rootfs.cpio.gz
>> +
>> +    # test-local configuration
>>      mkdir -p rootfs
>>      cd rootfs
>> -    # fakeroot is needed to preserve device nodes in rootless podman container
>> -    fakeroot -s ../fakeroot-save tar xzf ../binaries/initrd.tar.gz
>> -    mkdir proc
>> -    mkdir run
>> -    mkdir srv
>> -    mkdir sys
>> -    rm var/run
>> +    mkdir -p etc/local.d
>>      echo "#!/bin/sh
> I am worried about the drop of fakeroot because the newly created dirs
> and files we'll have user as owner instead of root.
>
> I suggest we fix this for consistency, and cpio -R 0:0 might suffice.

https://gitlab.com/xen-project/hardware/xen-staging/-/jobs/9737393986#L1087

It seems to be all root anyway.  I'm not entirely sure why, but it does
explain why everything is working, given the attempt to have non-root
containers.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Apr 16 10:15:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 10:15:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.955427.1349201 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4zni-00086L-IO; Wed, 16 Apr 2025 10:15:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 955427.1349201; Wed, 16 Apr 2025 10:15: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 1u4zni-00086E-EU; Wed, 16 Apr 2025 10:15:26 +0000
Received: by outflank-mailman (input) for mailman id 955427;
 Wed, 16 Apr 2025 10:15: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=9TmO=XC=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u4zng-000866-RB
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 10:15:24 +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 b4db6197-1aab-11f0-9ffb-bf95429c2676;
 Wed, 16 Apr 2025 12:15:22 +0200 (CEST)
Received: by mail-wr1-x429.google.com with SMTP id
 ffacd0b85a97d-39129fc51f8so5726226f8f.0
 for <xen-devel@lists.xenproject.org>; Wed, 16 Apr 2025 03:15:22 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39eae97b249sm16855406f8f.58.2025.04.16.03.15.21
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 16 Apr 2025 03:15:21 -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: b4db6197-1aab-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744798522; x=1745403322; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=YBR5stUE2ekUxwuvmxA3aFTitiAgfhMWKZkkaBi47rI=;
        b=KsXTWTqBGY8qe4MDa3f7DL4K+l7UwrcL0CsYuY/KZGar7UpgLJheE1Kv9oBzzuLCux
         goF/uqAUye5lpj8VF4EBkgEXjh4h4wzCFmgvP/Oa6FATPjuh3SzAsgF6kGyiBWmWnTTK
         2LiUkGfzf4p7s+S28w9iycPhwo6EBRoiRwMEo=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744798522; x=1745403322;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=YBR5stUE2ekUxwuvmxA3aFTitiAgfhMWKZkkaBi47rI=;
        b=wlf5KrI98Fkm1Ndei003pRn0c/XeGydCZT9rzkAHFYYadrYi7EhYq9xw5MlYoLFVA0
         6YNk/UHikI3AcE8GqKi0QPzJPZYBB50wyjItff449eEuGG89AooRrJYBQaFy8LVmD6V3
         t1Cs4QFlzqubaiMAnTjg24mGlhwHgAqWCEUfHjNi+SH3dBBWNbNkXEsyhAoOPGDLFbtT
         EtzpMyL8j8kK9Cp5S3j1f2h33dRBK0+eCgwbZXA7JxsfSdzOV5goUZ5iM6yqvKRfBMUx
         R8lZa0biW8wNfkoO1oSBQaNh0S+C9ilB9y7TzAPJVQ6M3LNbOZNq60BjpAvZYxaB1Sxl
         nljw==
X-Gm-Message-State: AOJu0YwQbeGUvrYNvgTzBTRqB8tw3AAsEJLIdFXAjRncTOKnTi2XLy6U
	FUE4EHJv8ZF2KVo00ZYh9ASLOXE8FQqDn+36ZK2lcZQZL6qqh/5ibGdj7wxdziI=
X-Gm-Gg: ASbGncu8lQX7TZL2aFsu9eAEvmcJjvVhP6ySFoB7RZa6lJ1ti2I5t7f+wiY2AiUJORH
	IVVX8y7hqsETlBn800vQBHk5JeD3xVdoJN51kWm7Dt7xi4Ozs3KMSkeLtpYsLlvnijTHpbHjLjz
	srvhygcj2gIQcDlkDTx3O/FKYeXJhcxXMC+JS6mZDtflRBnJovj7BxiYB1YSeIft2VMeYZlkebR
	LMOdtmfovVwFHuTpJXUKy611sEEo3tW2AR9nzoVv0GvhU7vTSO4sbOlYy6Oc4m/xXBVAfQEFJv4
	l/VLpVSJSQKT6nWHQui6XOCxdItB+5LMXw3qHvzrT5poe4Nvgw63PKZhXy6f1jLZC6b7Cc+lNpU
	hidsEbEDc1Z4fLUP8
X-Google-Smtp-Source: AGHT+IHp9QeJP4hSEUGMSPkpIjpgeNFO5BrkMv0FwYVfZ2OtQZGzgbrv8k0SYg8kYzshFemFIAHXUg==
X-Received: by 2002:a05:6000:381:b0:391:3f4f:a17f with SMTP id ffacd0b85a97d-39ee5b8b921mr1158638f8f.42.1744798522283;
        Wed, 16 Apr 2025 03:15:22 -0700 (PDT)
Message-ID: <44efebcd-877e-46a3-a072-07c44fc29f27@citrix.com>
Date: Wed, 16 Apr 2025 11:15:21 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/7] Overhaul how Argo is built and packged
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>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, Jason Andryuk <jason.andryuk@amd.com>,
 "Daniel P . Smith" <dpsmith@apertussolutions.com>
References: <20250414101843.2348330-1-andrew.cooper3@citrix.com>
 <20250414101843.2348330-3-andrew.cooper3@citrix.com>
 <alpine.DEB.2.22.394.2504151645260.8008@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.2504151645260.8008@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 16/04/2025 12:48 am, Stefano Stabellini wrote:
> On Mon, 14 Apr 2025, Andrew Cooper wrote:
>> Right now, the argo artefacts are a pile of files which the test has to turn
>> back into something which resembles a filesystem.  Furthermore, because we do
>> not build modules for the main kernel, it is extra important to make sure that
>> xen-argo.ko doesn't get out of sync.
>>
>> Build argo conditionally as part of the linux artefact.  It's ~100kb all
>> together, compared to ~14M for the kernel.
>>
>> Produce a single argo.cpio.gz with xen-argo.ko in the standard location.
>> Prune userspace down to just the executables and libraries.
>>
>> This is cribbed from the existing scripts/x86_64-linux-argo.sh, which stays in
>> place in the short term until Xen can be updated to use the new scheme.
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Do we need to remove x86_64-argo-linux.sh?

Yes, but 4.20 still uses it.

One thing I'm not sure about is whether "keep latest artefact" is just
artefacts from the latest run, or the latest of each named artefact.

Now is as good a time to experiment as any.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Apr 16 10:15:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 10:15:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.955428.1349211 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4znt-0008OO-Pj; Wed, 16 Apr 2025 10:15:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 955428.1349211; Wed, 16 Apr 2025 10:15: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 1u4znt-0008OH-Lh; Wed, 16 Apr 2025 10:15:37 +0000
Received: by outflank-mailman (input) for mailman id 955428;
 Wed, 16 Apr 2025 10: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=6Wc4=XC=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1u4zns-000866-8e
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 10:15:36 +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 bb9fb92f-1aab-11f0-9ffb-bf95429c2676;
 Wed, 16 Apr 2025 12:15:33 +0200 (CEST)
Received: by mail-ej1-x62e.google.com with SMTP id
 a640c23a62f3a-ac7bd86f637so108565566b.1
 for <xen-devel@lists.xenproject.org>; Wed, 16 Apr 2025 03:15:34 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-64-225.play-internet.pl.
 [109.243.64.225]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-acb3d1282eesm99750266b.109.2025.04.16.03.15.32
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 16 Apr 2025 03:15:32 -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: bb9fb92f-1aab-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1744798534; x=1745403334; darn=lists.xenproject.org;
        h=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=P357dqztHkV+NDHjbwlyXnPq3Ml4M1a0yf6gPLD1WTc=;
        b=QL1jvjxqUSKObZVEmNKLaY3Zv+ggdDiXzB/MEJkTKeHZyZUH+f+pu1WBpz9B4A3Qsi
         hoMtp5jTKWVcw6JqWFnEBYfiFHBGVXrQjhL710LOUnk+HwB2PrHk2imp5lluns11hEs7
         LdKG6/nonYifCXN27hAf2DY1WTJw75EsE6f0JnanjRJYWyJsKkI2ROamLT4w9jNnQsHz
         UHMgK1P2LO4shmFWgCVKHcUNU/VqqTdr3dLgFVVSaWucOmICdqbKhA7BNlJ49HqkS2Kc
         KTjcBFVmVC0+JNmh3VTSBqWPWv2raVOPBEz5AURBu58GW9DTs2A+Armcn32phFsqCrif
         6ggQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744798534; x=1745403334;
        h=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=P357dqztHkV+NDHjbwlyXnPq3Ml4M1a0yf6gPLD1WTc=;
        b=kTNBrBMjxA1KKtjQP5R50FJkWVdzUk6mil0Ibce0AkclJ66IFjjJfWEsT8x9i7PJWs
         7uAORW7A2Lc8sB/keAK75eHXMmGK8kbH3tJVxraawPhzolVflORHYnk5y9uyfdyGvkUo
         F4AgIDTORJZCS96czLIDcOYY4QYCMy8STHYyYMEQzcqSkCDhdCk8J8LvxbnfsEWBe575
         SjpS65Rgf3W2pMvL4p/XJ3ruxycR599Ji3EfS9CdaHP2hpitEAh2XgGM6xNvAaVTw/jg
         P08jQx3wh7JEs4hI0oPvgzKyq0Ql6a40qWO3Ex+Ie0/awVynr0n5CfmD6SusgB5uaZKr
         tKGg==
X-Forwarded-Encrypted: i=1; AJvYcCWT1rkXRvqgzDJ+m5uzOBPbJ9zk5vIWOVsDRYwpcK7XOcV55IWm6g4FDseDU77pQi/9Vw/7b+1C+nY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzRFwI0f0e6L1Z9LxEnqKL/DiQ71dWuY4Z+PxMARocsSHfdQ9Hz
	y/TP5JfqES2XkdCXDFHcAEaLn9ZZc8y7S853EZ8NKayCHYSD6gAj
X-Gm-Gg: ASbGnctRKhGEs4VChMhfflcXiMvRN0/zPpUMd6fECAySvg9jitukqkETLaQD6y1hpHD
	dAfXVC4QZ9WLyqRAgfNji3U2ZOa7xjow9foDqUebNxkb10lWoZeTCtmGN2mW/dbkgbV8QLSZ7uB
	2BNofjSQl5MV/deWUtGP7ZTLFknTIypXgTxOn4224VyK8V/85wPvmFHD3tzxR3Y1wKoQ0y3pzJe
	0BWxgyM//J3+3dJMiaTR5S1SfmDpM0M43qKxDJnOZooz6bQfsYblYw5yV5aAQe3zquWp9YYLPVx
	fEXYCW4p+5MGi4TKFO2gRrjXwJz0HLdh0sggGlLUVUIGSaoynIX02YbJzFFPQMyda6zFTfkig6j
	571w7v8eq0A4w+9Vc
X-Google-Smtp-Source: AGHT+IFTRYCiTy4LF+fCE37EAEfnBQhiGIYAqvQHwiaD0zCNJwCo/b5Csw+gWRaz2LHoc+dWmSUs1w==
X-Received: by 2002:a17:907:6e90:b0:ac1:791c:153a with SMTP id a640c23a62f3a-acb429e1548mr80602066b.27.1744798532919;
        Wed, 16 Apr 2025 03:15:32 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------SfsmbpGnclB31etoHmDRSJCQ"
Message-ID: <a54ef262-92fc-453d-898e-70636c2918fd@gmail.com>
Date: Wed, 16 Apr 2025 12:15:31 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 09/14] xen/riscv: aplic_init() implementation
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Romain Caritey <Romain.Caritey@microchip.com>, xen-devel@lists.xenproject.org
References: <cover.1744126720.git.oleksii.kurochko@gmail.com>
 <1d023045be49ae93d41d552f9c9a79972fa4e84b.1744126720.git.oleksii.kurochko@gmail.com>
 <a7008eee-04d2-4e61-b66a-ff659e3b99db@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <a7008eee-04d2-4e61-b66a-ff659e3b99db@suse.com>

This is a multi-part message in MIME format.
--------------SfsmbpGnclB31etoHmDRSJCQ
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 4/14/25 12:04 PM, Jan Beulich wrote:
> On 08.04.2025 17:57, Oleksii Kurochko wrote:
>> --- a/xen/arch/riscv/aplic.c
>> +++ b/xen/arch/riscv/aplic.c
>> @@ -9,19 +9,112 @@
>>    * Copyright (c) 2024-2025 Vates
>>    */
>>   
>> +#include <xen/device_tree.h>
>>   #include <xen/errno.h>
>>   #include <xen/init.h>
>>   #include <xen/irq.h>
>> +#include <xen/mm.h>
>>   #include <xen/sections.h>
>>   #include <xen/types.h>
>> +#include <xen/vmap.h>
>>   
>> +#include <asm/aplic.h>
>>   #include <asm/device.h>
>> +#include <asm/imsic.h>
>>   #include <asm/intc.h>
>> +#include <asm/riscv_encoding.h>
>> +
>> +#define APLIC_DEFAULT_PRIORITY  1
>> +
>> +static struct aplic_priv aplic;
>>   
>>   static struct intc_info __ro_after_init aplic_info = {
>>       .hw_version = INTC_APLIC,
>>   };
>>   
>> +static void __init aplic_init_hw_interrupts(void)
>> +{
>> +    int i;
>> +
>> +    /* Disable all interrupts */
>> +    for ( i = 0; i <= aplic_info.nr_irqs; i += 32 )
>> +        aplic.regs->clrie[i] = -1U;
>> +
>> +    /* Set interrupt type and default priority for all interrupts */
>> +    for ( i = 1; i <= aplic_info.nr_irqs; i++ )
>> +    {
>> +        aplic.regs->sourcecfg[i - 1] = 0;
>> +        aplic.regs->target[i - 1] = APLIC_DEFAULT_PRIORITY;
> A field named "target" is written with a priority value?

Low bits of target register contains Interrupt Priority bits which can't be zero according to
AIA spec:
```
4.5.16.1. Active source, direct delivery mode
For an active interrupt source , if the domain is configured in direct delivery mode (domaincfg.DM = 0),
then register target[ ] has this format:
   bits 31:18 Hart Index (WLRL)
   bits 7:0 IPRIO (WARL)

All other register bits are reserved and read as zeros.
Hart Index is a WLRL field that specifies the hart to which interrupts from this source will be delivered.
Field IPRIO (Interrupt Priority) specifies the priority number for the interrupt source. This field is
a WARL unsigned integer of IPRIOLEN bits, where IPRIOLEN is a constant parameter for the given APLIC, in
the range of 1 to 8. Only values 1 through are allowed for IPRIO, not zero. A write to a target register
sets IPRIO equal to bits :0 of the 32-bit value written, unless those bits are all zeros, in which case
the priority number is set to 1 instead. (If IPRIOLEN = 1, these rules cause IPRIO to be effectively
read-only with value 1.)
```

>
>> +    }
>> +
>> +    /* Clear APLIC domaincfg */
>> +    aplic.regs->domaincfg = APLIC_DOMAINCFG_IE | APLIC_DOMAINCFG_DM;
> The statement doesn't like like there was any "clearing" here.

But all other bits, except|APLIC_DOMAINCFG_{IE, DM}|, are set to zero.
I think we can remove this comment to avoid confusion.

>> +    rc = dt_property_read_u32(node, "msi-parent", &imsic_phandle);
>> +    if ( !rc )
>> +        panic("%s: IDC mode not supported\n", node->full_name);
>> +
>> +    imsic_node = dt_find_node_by_phandle(imsic_phandle);
>> +    if ( !imsic_node )
>> +        panic("%s: unable to find IMSIC node\n", node->full_name);
>> +
>> +    /* check imsic mode */
>> +    rc = dt_property_read_u32_array(imsic_node, "interrupts-extended",
>> +                                    irq_range, ARRAY_SIZE(irq_range));
>> +    if ( rc && (rc != -EOVERFLOW) )
>> +        panic("%s: unable to find interrupt-extended in %s node\n",
>> +               node->full_name, imsic_node->full_name);
> Why exactly is EOVERFLOW tolerable here?

QEMU generates two IMSIC device tree nodes: one for M-mode and one for S-mode.
For the hypervisor, we don’t really care about the M-mode IMSIC node — we're only
interested in the S-mode IMSIC node.

The IMSIC node includes this information in the|"interrupts-extended"| property,
which has the following format:
   interrupt-extended = {<interrupt-controller-phandle>, <machine_mode>},...
The number of such|<phandle, mode>| pairs depends on the number of CPUs the platform has.

For our purposes, to determine whether the IMSIC node corresponds to M-mode or not, it’s sufficient to read only the first pair and check the mode like this:

   if ( irq_range[1] == IRQ_M_EXT )

Thereby dt_property_read_u32_array() will return -EOVERFLOW in the case when a platfrom
has more then one CPU as we passed irq_range[2] as an argument but the amount of values
in "interrupts-extended" property will be (2 * CPUS_NUM).

I can update the comment above dt_property_read_u32_array() for more clearness.

>> +    if ( irq_range[1] == IRQ_M_EXT )
>> +        /* machine mode imsic node, ignore this aplic node */
>> +        return 0;
>> +
>> +    rc = imsic_init(imsic_node);
>> +    if ( rc )
>> +        panic("%s: Failded to initialize IMSIC\n", node->full_name);
>> +
>> +    /* Find out number of interrupt sources */
>> +    rc = dt_property_read_u32(node, "riscv,num-sources", &aplic_info.nr_irqs);
>> +    if ( !rc )
>> +        panic("%s: failed to get number of interrupt sources\n",
>> +              node->full_name);
>> +
>> +    prop = dt_get_property(node, "reg", NULL);
>> +    dt_get_range(&prop, node, &paddr, &size);
>> +    if ( !paddr )
>> +        panic("%s: first MMIO resource not found\n", node->full_name);
>> +
>> +    aplic.paddr_start = paddr;
>> +    aplic.paddr_end = paddr + size;
>> +    aplic.size = size;
> Why do all three need recording? Isn't a (start,size) tuple sufficient
> (and unambiguous)?

(start,size) will be enough. I'll drop aplic.paddr_end.

>
>> +    aplic.regs = ioremap(paddr, size);
>> +    if ( !aplic.regs )
>> +        panic("%s: unable to map\n", node->full_name);
>> +
>> +    /* Setup initial state APLIC interrupts */
>> +    aplic_init_hw_interrupts();
>> +
>> +    return 0;
>> +}
>> +
>> +static const struct intc_hw_operations __ro_after_init aplic_ops = {
> const or __ro_after_init?

What’s wrong with using both?|const| ensures the variable can't be changed at compile time,
while|__ro_after_init| makes it read-only at runtime after initialization is complete.

Probably,|__initconst| would be a better fit:
   static const struct intc_hw_operations __initconst aplic_ops = {

Or even|__initconstrel|, since the|struct intc_hw_operations| contains pointers.

>
>> --- /dev/null
>> +++ b/xen/arch/riscv/include/asm/aplic.h
>> @@ -0,0 +1,77 @@
>> +/* SPDX-License-Identifier: MIT */
>> +
>> +/*
>> + * xen/arch/riscv/aplic.h
>> + *
>> + * RISC-V Advanced Platform-Level Interrupt Controller support
>> + *
>> + * Copyright (c) 2023 Microchip.
>> + */
>> +
>> +#ifndef ASM__RISCV__APLIC_H
>> +#define ASM__RISCV__APLIC_H
>> +
>> +#include <xen/types.h>
>> +
>> +#include <asm/imsic.h>
>> +
>> +#define APLIC_DOMAINCFG_IE      BIT(8, UL)
>> +#define APLIC_DOMAINCFG_DM      BIT(2, UL)
>> +
>> +struct aplic_regs {
>> +    uint32_t domaincfg;
>> +    uint32_t sourcecfg[1023];
>> +    uint8_t _reserved1[0xBC0];
>> +
>> +    uint32_t mmsiaddrcfg;
>> +    uint32_t mmsiaddrcfgh;
>> +    uint32_t smsiaddrcfg;
>> +    uint32_t smsiaddrcfgh;
>> +    uint8_t _reserved2[0x30];
>> +
>> +    uint32_t setip[32];
>> +    uint8_t _reserved3[92];
>> +
>> +    uint32_t setipnum;
>> +    uint8_t _reserved4[0x20];
>> +
>> +    uint32_t in_clrip[32];
>> +    uint8_t _reserved5[92];
>> +
>> +    uint32_t clripnum;
>> +    uint8_t _reserved6[32];
>> +
>> +    uint32_t setie[32];
>> +    uint8_t _reserved7[92];
>> +
>> +    uint32_t setienum;
>> +    uint8_t _reserved8[32];
>> +
>> +    uint32_t clrie[32];
>> +    uint8_t _reserved9[92];
>> +
>> +    uint32_t clrienum;
>> +    uint8_t _reserved10[32];
>> +
>> +    uint32_t setipnum_le;
>> +    uint32_t setipnum_be;
>> +    uint8_t _reserved11[4088];
>> +
>> +    uint32_t genmsi;
>> +    uint32_t target[1023];
>> +};
>> +
>> +struct aplic_priv {
>> +    /* base physical address and size */
>> +    paddr_t paddr_start;
>> +    paddr_t paddr_end;
>> +    size_t  size;
>> +
>> +    /* registers */
>> +    volatile struct aplic_regs *regs;
>> +
>> +    /* imsic configuration */
>> +    const struct imsic_config *imsic_cfg;
>> +};
>> +
>> +#endif /* ASM__RISCV__APLIC_H */
> Does all of this really need to live in a non-private header?

struct aplic_priv is used in different files:
- in aplic.c to define `aplic` variable.
- in vaplic.c (which isn't intoduced yet) is used in several places:https://gitlab.com/xen-project/people/olkur/xen/-/blob/latest/xen/arch/riscv/vaplic.c#L41

struct aplic_regs is used only in aplic.c (at least, at the moment) so could be moved to
aplic.c, but I don't see too much sense.

>
>> --- a/xen/arch/riscv/include/asm/irq.h
>> +++ b/xen/arch/riscv/include/asm/irq.h
>> @@ -27,7 +27,6 @@
>>   #define IRQ_TYPE_INVALID        DT_IRQ_TYPE_INVALID
>>   
>>   /* TODO */
>> -#define nr_irqs 0U
> How come this is simply no longer needed, i.e. without any replacement?
> Hmm, looks like the only use in common code has gone away. Yet then this
> still doesn't really look to belong here (especially if not mentioned in
> the description).

I missed that it is used in xen/common/domain.c when CONFIG_HAS_PIRQ=y, but this
config isn't selected for RISC-V.
I think that I have to revert this change.

~ Oleksii

--------------SfsmbpGnclB31etoHmDRSJCQ
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 4/14/25 12:04 PM, Jan Beulich wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:a7008eee-04d2-4e61-b66a-ff659e3b99db@suse.com">
      <pre wrap="" class="moz-quote-pre">On 08.04.2025 17:57, Oleksii Kurochko wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">--- a/xen/arch/riscv/aplic.c
+++ b/xen/arch/riscv/aplic.c
@@ -9,19 +9,112 @@
  * Copyright (c) 2024-2025 Vates
  */
 
+#include &lt;xen/device_tree.h&gt;
 #include &lt;xen/errno.h&gt;
 #include &lt;xen/init.h&gt;
 #include &lt;xen/irq.h&gt;
+#include &lt;xen/mm.h&gt;
 #include &lt;xen/sections.h&gt;
 #include &lt;xen/types.h&gt;
+#include &lt;xen/vmap.h&gt;
 
+#include &lt;asm/aplic.h&gt;
 #include &lt;asm/device.h&gt;
+#include &lt;asm/imsic.h&gt;
 #include &lt;asm/intc.h&gt;
+#include &lt;asm/riscv_encoding.h&gt;
+
+#define APLIC_DEFAULT_PRIORITY  1
+
+static struct aplic_priv aplic;
 
 static struct intc_info __ro_after_init aplic_info = {
     .hw_version = INTC_APLIC,
 };
 
+static void __init aplic_init_hw_interrupts(void)
+{
+    int i;
+
+    /* Disable all interrupts */
+    for ( i = 0; i &lt;= aplic_info.nr_irqs; i += 32 )
+        aplic.regs-&gt;clrie[i] = -1U;
+
+    /* Set interrupt type and default priority for all interrupts */
+    for ( i = 1; i &lt;= aplic_info.nr_irqs; i++ )
+    {
+        aplic.regs-&gt;sourcecfg[i - 1] = 0;
+        aplic.regs-&gt;target[i - 1] = APLIC_DEFAULT_PRIORITY;
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
A field named "target" is written with a priority value?</pre>
    </blockquote>
    <pre>Low bits of target register contains Interrupt Priority bits which can't be zero according to
AIA spec:
```
4.5.16.1. Active source, direct delivery mode
For an active interrupt source , if the domain is configured in direct delivery mode (domaincfg.DM = 0),
then register target[ ] has this format:
  bits 31:18 Hart Index (WLRL)
  bits 7:0 IPRIO (WARL)

All other register bits are reserved and read as zeros.
Hart Index is a WLRL field that specifies the hart to which interrupts from this source will be delivered.
Field IPRIO (Interrupt Priority) specifies the priority number for the interrupt source. This field is
a WARL unsigned integer of IPRIOLEN bits, where IPRIOLEN is a constant parameter for the given APLIC, in
the range of 1 to 8. Only values 1 through are allowed for IPRIO, not zero. A write to a target register
sets IPRIO equal to bits :0 of the 32-bit value written, unless those bits are all zeros, in which case
the priority number is set to 1 instead. (If IPRIOLEN = 1, these rules cause IPRIO to be effectively
read-only with value 1.)
```
</pre>
    <div _ngcontent-ng-c572710829=""
      class="paragraph normal ng-star-inserted"
      data-start-index="126927"
style="font: 400 14px / 1.5rem &quot;Google Sans Text&quot;, &quot;Google Sans&quot;, sans-serif; letter-spacing: normal; margin-block-end: 0.75rem; padding-inline-start: 0rem;"></div>
    <blockquote type="cite"
      cite="mid:a7008eee-04d2-4e61-b66a-ff659e3b99db@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+    }
+
+    /* Clear APLIC domaincfg */
+    aplic.regs-&gt;domaincfg = APLIC_DOMAINCFG_IE | APLIC_DOMAINCFG_DM;
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
The statement doesn't like like there was any "clearing" here.</pre>
    </blockquote>
    <pre>But all other bits, except <code data-start="105"
    data-end="131">APLIC_DOMAINCFG_{IE, DM}</code>, are set to zero.
I think we can remove this comment to avoid confusion.

</pre>
    <blockquote type="cite"
      cite="mid:a7008eee-04d2-4e61-b66a-ff659e3b99db@suse.com">
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+    rc = dt_property_read_u32(node, "msi-parent", &amp;imsic_phandle);
+    if ( !rc )
+        panic("%s: IDC mode not supported\n", node-&gt;full_name);
+
+    imsic_node = dt_find_node_by_phandle(imsic_phandle);
+    if ( !imsic_node )
+        panic("%s: unable to find IMSIC node\n", node-&gt;full_name);
+
+    /* check imsic mode */
+    rc = dt_property_read_u32_array(imsic_node, "interrupts-extended",
+                                    irq_range, ARRAY_SIZE(irq_range));
+    if ( rc &amp;&amp; (rc != -EOVERFLOW) )
+        panic("%s: unable to find interrupt-extended in %s node\n",
+               node-&gt;full_name, imsic_node-&gt;full_name);
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Why exactly is EOVERFLOW tolerable here?</pre>
    </blockquote>
    <pre data-start="123" data-end="320" class="">QEMU generates two IMSIC device tree nodes: one for M-mode and one for S-mode.
For the hypervisor, we don’t really care about the M-mode IMSIC node — we're only
interested in the S-mode IMSIC node.</pre>
    <pre data-start="322" data-end="435" class="">The IMSIC node includes this information in the <code
    data-start="370" data-end="393">"interrupts-extended"</code> property,
which has the following format:
  interrupt-extended = {&lt;interrupt-controller-phandle&gt;, &lt;machine_mode&gt;},...
The number of such <code data-start="528" data-end="545">&lt;phandle, mode&gt;</code> pairs depends on the number of CPUs the platform has.</pre>
    <pre data-start="601" data-end="758" class="">For our purposes, to determine whether the IMSIC node corresponds to M-mode or not, it’s sufficient to read only the first pair and check the mode like this:</pre>
    <pre data-start="322" data-end="435" class="">  if ( irq_range[1] == IRQ_M_EXT )

Thereby dt_property_read_u32_array() will return -EOVERFLOW in the case when a platfrom
has more then one CPU as we passed irq_range[2] as an argument but the amount of values
in "interrupts-extended" property will be (2 * CPUS_NUM).

I can update the comment above dt_property_read_u32_array() for more clearness.

</pre>
    <blockquote type="cite"
      cite="mid:a7008eee-04d2-4e61-b66a-ff659e3b99db@suse.com">
      <pre wrap="" class="moz-quote-pre">
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+    if ( irq_range[1] == IRQ_M_EXT )
+        /* machine mode imsic node, ignore this aplic node */
+        return 0;
+
+    rc = imsic_init(imsic_node);
+    if ( rc )
+        panic("%s: Failded to initialize IMSIC\n", node-&gt;full_name);
+
+    /* Find out number of interrupt sources */
+    rc = dt_property_read_u32(node, "riscv,num-sources", &amp;aplic_info.nr_irqs);
+    if ( !rc )
+        panic("%s: failed to get number of interrupt sources\n",
+              node-&gt;full_name);
+
+    prop = dt_get_property(node, "reg", NULL);
+    dt_get_range(&amp;prop, node, &amp;paddr, &amp;size);
+    if ( !paddr )
+        panic("%s: first MMIO resource not found\n", node-&gt;full_name);
+
+    aplic.paddr_start = paddr;
+    aplic.paddr_end = paddr + size;
+    aplic.size = size;
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Why do all three need recording? Isn't a (start,size) tuple sufficient
(and unambiguous)?</pre>
    </blockquote>
    <pre>(start,size) will be enough. I'll drop aplic.paddr_end.

</pre>
    <blockquote type="cite"
      cite="mid:a7008eee-04d2-4e61-b66a-ff659e3b99db@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+    aplic.regs = ioremap(paddr, size);
+    if ( !aplic.regs )
+        panic("%s: unable to map\n", node-&gt;full_name);
+
+    /* Setup initial state APLIC interrupts */
+    aplic_init_hw_interrupts();
+
+    return 0;
+}
+
+static const struct intc_hw_operations __ro_after_init aplic_ops = {
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
const or __ro_after_init?</pre>
    </blockquote>
    <pre data-start="59" data-end="239" class="">What’s wrong with using both? <code
    data-start="89" data-end="96">const</code> ensures the variable can't be changed at compile time,
while <code data-start="158" data-end="175">__ro_after_init</code> makes it read-only at runtime after initialization is complete.</pre>
    <pre data-start="241" data-end="287" class="">Probably, <code
    data-start="251" data-end="264">__initconst</code> would be a better fit:
  static const struct intc_hw_operations __initconst aplic_ops = {

Or even <code data-start="371" data-end="387">__initconstrel</code>, since the <code
    data-start="399" data-end="426">struct intc_hw_operations</code> contains pointers.
</pre>
    <blockquote type="cite"
      cite="mid:a7008eee-04d2-4e61-b66a-ff659e3b99db@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">--- /dev/null
+++ b/xen/arch/riscv/include/asm/aplic.h
@@ -0,0 +1,77 @@
+/* SPDX-License-Identifier: MIT */
+
+/*
+ * xen/arch/riscv/aplic.h
+ *
+ * RISC-V Advanced Platform-Level Interrupt Controller support
+ *
+ * Copyright (c) 2023 Microchip.
+ */
+
+#ifndef ASM__RISCV__APLIC_H
+#define ASM__RISCV__APLIC_H
+
+#include &lt;xen/types.h&gt;
+
+#include &lt;asm/imsic.h&gt;
+
+#define APLIC_DOMAINCFG_IE      BIT(8, UL)
+#define APLIC_DOMAINCFG_DM      BIT(2, UL)
+
+struct aplic_regs {
+    uint32_t domaincfg;
+    uint32_t sourcecfg[1023];
+    uint8_t _reserved1[0xBC0];
+
+    uint32_t mmsiaddrcfg;
+    uint32_t mmsiaddrcfgh;
+    uint32_t smsiaddrcfg;
+    uint32_t smsiaddrcfgh;
+    uint8_t _reserved2[0x30];
+
+    uint32_t setip[32];
+    uint8_t _reserved3[92];
+
+    uint32_t setipnum;
+    uint8_t _reserved4[0x20];
+
+    uint32_t in_clrip[32];
+    uint8_t _reserved5[92];
+
+    uint32_t clripnum;
+    uint8_t _reserved6[32];
+
+    uint32_t setie[32];
+    uint8_t _reserved7[92];
+
+    uint32_t setienum;
+    uint8_t _reserved8[32];
+
+    uint32_t clrie[32];
+    uint8_t _reserved9[92];
+
+    uint32_t clrienum;
+    uint8_t _reserved10[32];
+
+    uint32_t setipnum_le;
+    uint32_t setipnum_be;
+    uint8_t _reserved11[4088];
+
+    uint32_t genmsi;
+    uint32_t target[1023];
+};
+
+struct aplic_priv {
+    /* base physical address and size */
+    paddr_t paddr_start;
+    paddr_t paddr_end;
+    size_t  size;
+
+    /* registers */
+    volatile struct aplic_regs *regs;
+
+    /* imsic configuration */
+    const struct imsic_config *imsic_cfg;
+};
+
+#endif /* ASM__RISCV__APLIC_H */
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Does all of this really need to live in a non-private header?</pre>
    </blockquote>
    <pre wrap="" class="moz-quote-pre">struct aplic_priv is used in different files:
- in aplic.c to define `aplic` variable.
- in vaplic.c (which isn't intoduced yet) is used in several places: <a class="moz-txt-link-freetext" href="https://gitlab.com/xen-project/people/olkur/xen/-/blob/latest/xen/arch/riscv/vaplic.c#L41">https://gitlab.com/xen-project/people/olkur/xen/-/blob/latest/xen/arch/riscv/vaplic.c#L41</a>

struct aplic_regs is used only in aplic.c (at least, at the moment) so could be moved to
aplic.c, but I don't see too much sense.

</pre>
    <blockquote type="cite"
      cite="mid:a7008eee-04d2-4e61-b66a-ff659e3b99db@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">--- a/xen/arch/riscv/include/asm/irq.h
+++ b/xen/arch/riscv/include/asm/irq.h
@@ -27,7 +27,6 @@
 #define IRQ_TYPE_INVALID        DT_IRQ_TYPE_INVALID
 
 /* TODO */
-#define nr_irqs 0U
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
How come this is simply no longer needed, i.e. without any replacement?
Hmm, looks like the only use in common code has gone away. Yet then this
still doesn't really look to belong here (especially if not mentioned in
the description).</pre>
    </blockquote>
    <pre>I missed that it is used in xen/common/domain.c when CONFIG_HAS_PIRQ=y, but this
config isn't selected for RISC-V.
I think that I have to revert this change.

~ Oleksii
</pre>
  </body>
</html>

--------------SfsmbpGnclB31etoHmDRSJCQ--


From xen-devel-bounces@lists.xenproject.org Wed Apr 16 10:20:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 10:20:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.955451.1349221 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4zsS-0001kE-F8; Wed, 16 Apr 2025 10:20:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 955451.1349221; Wed, 16 Apr 2025 10:20:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4zsS-0001k7-BA; Wed, 16 Apr 2025 10:20:20 +0000
Received: by outflank-mailman (input) for mailman id 955451;
 Wed, 16 Apr 2025 10:20: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=PIlj=XC=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1u4zsQ-0001k1-1G
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 10:20:18 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on20610.outbound.protection.outlook.com
 [2a01:111:f403:2414::610])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 60b565b3-1aac-11f0-9ffb-bf95429c2676;
 Wed, 16 Apr 2025 12:20:11 +0200 (CEST)
Received: from BN9PR12MB5273.namprd12.prod.outlook.com (2603:10b6:408:11e::22)
 by CY8PR12MB8412.namprd12.prod.outlook.com (2603:10b6:930:6f::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.32; Wed, 16 Apr
 2025 10:20:08 +0000
Received: from BN9PR12MB5273.namprd12.prod.outlook.com
 ([fe80::cf66:58ab:47be:4b13]) by BN9PR12MB5273.namprd12.prod.outlook.com
 ([fe80::cf66:58ab:47be:4b13%5]) with mapi id 15.20.8632.036; Wed, 16 Apr 2025
 10:20:08 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 60b565b3-1aac-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=cAia8qxaWbMruGZolzULVdaRR0dDXYeZXWYsb8KLMNuJfi6/T4OKgDPFqGqjD2KfnDsoaypiAlecmli5MFaJwK3vMZ1VX+Txv9gbgIuxbFpSfgDR7b9H3UvYdcT7pWxqTch48i6ctQDjOh9B4CJwyJ2Ez+a8Wlvam25qiHTxCVhbO6J3VSVJcgUrJd1mYzG8DbgOrhg+eDVD3RJJVH04sa9ejMOyDHJVzFeaIZ7GNS64S8GCMm7ex87wJCEfsMu45DwcllLzszL5YYfvLZoRgjWVtsDcsiiCRNXkYRdEHYRb0bTJ7rn/o4zwuj6HkR/naAouw9b1nQNt2wNv2+7eLw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=NuNtH+EnMnWBa/rH5TgPgiO3R0wwuDoy/S/pDzO7jGQ=;
 b=Lvyyq01f6pGBPA/Hv03Ow2KKZLcLSgIre1pQ4cieyrIs4jkYa5tcr9xqHxsTXoShWOkFb9MI5eNQYFLnTPaQOy2wtwhmS2znrgf40rCRuzTWeecXJtSpYmHeTW3hxlQzm+dh+j3s6aPMR4U/sdiNb5YebWDe1HgJPEAJhZFV4gjE/WQYrE0HmAotMWkwGSCxVG744F8eVfsZ+aI/VtZnRrghS4SpDkD213Tx7rkjr4GpVsXLeq0nWXP4Z7mozfdCmIjjDs+yzxb5EqAZtA2uFt+Rg7whvnvNs2FYeYw8heSpxHiW1zT5iPYN6cFq3hRJogH30KJaCV8Da4Imy3jivw==
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=NuNtH+EnMnWBa/rH5TgPgiO3R0wwuDoy/S/pDzO7jGQ=;
 b=IiAWSIrpvVJQz4rm2TkCPCSBWxnAdnTGYmJALx+6nH8lumnRTfxXkge71r1Yv+U+UTvDXuPF1EFopGUnyKVyiHbZVXFbog92lmQwG2rPPYHV72nKWItYmzHkLSPJYMNJkwUvEyH4QiDubi3E6BJZqVxzKDPRzXrN4e+X6KIpzkc=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <25c052d1-4ada-43fb-b959-dd91991aaa3e@amd.com>
Date: Wed, 16 Apr 2025 12:20:04 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] Arm: cpu_*_map adjustments
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Julien Grall <julien@xen.org>, Stefano Stabellini
 <sstabellini@kernel.org>, Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <2bcde8df-4a11-4ec7-acf3-618576de717e@suse.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <2bcde8df-4a11-4ec7-acf3-618576de717e@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR0P281CA0254.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:af::9) To BN9PR12MB5273.namprd12.prod.outlook.com
 (2603:10b6:408:11e::22)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN9PR12MB5273:EE_|CY8PR12MB8412:EE_
X-MS-Office365-Filtering-Correlation-Id: 37a8bbff-8bdc-451b-7315-08dd7cd04378
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?M3g1aDl0aEZiNXRTRG9rTVZrZFVBZHhnOVlPaSt6MjNicGN6bFp2RGV0SW9G?=
 =?utf-8?B?YUs3a05BQWtscHRDdmVrTGxOSnFvcnZta0hUQ0xGSTRVL2RUeUlqbzBUV2Er?=
 =?utf-8?B?L2ZVRi83WHVUQVFrSi9CZktucHBEVjVUTDEzeWl5NkdWVnUwd0pScU5tNFdP?=
 =?utf-8?B?QzdmTkgzMGM4M2JJcHgxbTZuK1ArbEcxL3ZOMzcvZy8yWnhIVzFwU3RsU3Vn?=
 =?utf-8?B?YXJ3NmlaaVRlMTRWZTFMTkU0K2VnUjlzQVhOYmpjUGwxcDVEWHoydURMclph?=
 =?utf-8?B?UnlUbUxxNlFWaXVPY1UxUzc0blNXZFdPV2s3L2VadEs2bW15WWQ1KzhXSktn?=
 =?utf-8?B?dVZCbUppejI0OHlPakZKWEFySmpSbFgzREp0Z3RNcVV1ZXR1VGFwdEQ5T0p6?=
 =?utf-8?B?SG5Od0I2KzQzMFRKb3dFMXY1cHZ5Ly9CSmhKQkFMdkFYUStpNy9NWVpmVzhp?=
 =?utf-8?B?WU1taE9FZkdPdE53UUhDNWNDNWtpZFV4b3JMMnRoK3p5NmtYMWRFNkJCd0I1?=
 =?utf-8?B?Qm5EalhUdm8zYytPTlNOeDdWVzU0aDdIeWo1MWE1dmlNeDc5MTREK2VaWHhS?=
 =?utf-8?B?Zyt0aWZ0QW54b2FlcDVuRXNXb0lYb2g3T1JoWnRIMkhqeGR0VXJBZ3pGbTBC?=
 =?utf-8?B?ZldNMzA4Y0U3c0lST0NCTHpZMW10U0ZFVjVTQWVjV09rNjdZNWpEZXFhN092?=
 =?utf-8?B?RG1WY0ZFdDU3YVNIN3VSVktHYkg1Vmo1T1FiWURrd0p3MEtwSDBaemZvdVh1?=
 =?utf-8?B?R2J3UXdGMUxPaUtscUtYWnVnRnFnMldNV2l6a0xuUW95Z093S2w2SHIyTWla?=
 =?utf-8?B?WS9FWlJoZFZTQXVvQ0l0R3FxQlU1YVpXSFNtNVhwTE8xVHIvZitxWHlTaHZh?=
 =?utf-8?B?NXdZbEV6dFZWSmw5YnlBR0ZpZS9aWFdQMzRWTjBDZzByaUxNQTQwYkZYMGla?=
 =?utf-8?B?R3VpY0FEVmxsN0ZucGcrbTh0eUErbDJyNDhIa2hjVkh0aU9SemRnelFRZnpk?=
 =?utf-8?B?d1NhVUFRd3lZQUFBR3hjb3VkR0p6YWJCQWVyMzRIdHR2emIrZGt2R05EQmJE?=
 =?utf-8?B?U0I2RXIrQ2V1ZERNZStDYlNVdHAzMER5OCtzQThCVjEwS3VCV2J1YVNZWmhi?=
 =?utf-8?B?bmZLSTVHY2lRb2JNZjUzaE44TmZXS2k5ZG00NGUvV29pdER0VXg4K2gxdm5Y?=
 =?utf-8?B?RlBIMUZ5TjNoNk5DRTczM2FST3BjSHNzMEJNOTczZ2psTEtoZ1B2Q0sxcFEr?=
 =?utf-8?B?VS90SnlyTDk3dS9ySlNlNEo2VHRNanBOZndzdUFtdU1LL1FqV3lIRTVrRy9I?=
 =?utf-8?B?Sk1hY0ZFS0dUWXdOdm1pT0Z3T3lwYUlZVDFQMy90djVadmlzWDd2SXJVRkFO?=
 =?utf-8?B?cGxWNzA3R21mSEg5RUZGVWRjSmVpdTkvem94bnFBUFFHaDlTWGw5ODJqT2pm?=
 =?utf-8?B?M2VDMTJOcnhiTjFlVlZmMFZ4Q1ZENnRocWtiSEVmRFZpYXhnQ09VTGxnU0xO?=
 =?utf-8?B?QmpFY29OU1E2T3ptc2pnZmgzVGFsVHBNS28yd1NxeGNrQmFJVnlWVXFLTE53?=
 =?utf-8?B?Tys5UGI3Nko0SmdFbmtCNDhpVE5jaUZJc1IzamVkSTZpd25ZODl4WEhodG5x?=
 =?utf-8?B?dnZxSzR6WU5vK2tSZ0Y1c0lWV0IwbTBhRnpmM3BVSDl5SHJKc2doVC9PS3Zw?=
 =?utf-8?B?d0tqUkVTVzEvaDBsSEtKM1ZBLzFtL2hSR2xpMGMvZC82Ylc5UEo1ZUl3dkJR?=
 =?utf-8?B?Zmg4MFR4RHd5dEswWjZhVURYZExnZVp2Tzl2VjNJeEM0RTFMOVg5STh0WlN3?=
 =?utf-8?B?TStUUDB4Ty9wNlc5OHg3M0lZMW9TMlZFNm5JZUlrSEZuQXM5c0tBZXg4Ui83?=
 =?utf-8?B?Yjk1QlgrKzVwOG9jeEVhRW11WWRhTWhaTWUvcUtpWWtoalg0UlE5NWJhZ2pB?=
 =?utf-8?Q?zlTibRXPdms=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN9PR12MB5273.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?aEptZ2hzWFc0Z3JoNTFnclA0Wm5ETEwxWXJxMVc0Ty8xYnhMVk52aVUyWVdJ?=
 =?utf-8?B?Qm1nUmtvT2diOUoyNUJSdEpzOU9yT0s1K09lTlJlbGVNbXRMUlcxeHVLdDht?=
 =?utf-8?B?emdhTlR0ZjFjVVpReWUxVVRDZDV1UXJXaEV6cTNCNDNvcEZjY1FkT0NybmFZ?=
 =?utf-8?B?azB5SGlHSmdqc3RYVmQ5SU1UQmVXdkRCSkZRYmNTdnNtbjRzNkVyM084YXhn?=
 =?utf-8?B?clMvNFBDWVptZWNDYkRNT096MW1mbWgzYlYwbEhkMmplSmVDZFJiYjVpTmxq?=
 =?utf-8?B?eHV6SUoxNU4rKzdFWU1nMHZORkYwYzRKalNzYnBTWlFIN1F2MWNrTkVlOVVY?=
 =?utf-8?B?OGhjVTczenBvK2Nmb2lHRWF4d3ZNT0VNVXEyL3ArYUpoQnBnaW83L1BDZU1E?=
 =?utf-8?B?VTJyNDVPWGhILzJ4NW5RUlF0TG9ubkNhL2pJek0xYlZZYXVOODcwQ0xobkx1?=
 =?utf-8?B?UGVFWllnWHFHM010UnBWaFp4S09JREY4NE85VjZVU1hnVkNuWjA4d3dWbkt2?=
 =?utf-8?B?VnMxaVRiRFVxMk53bm90V3h1ckR1RWJ4KzNKSWJ1TzlNM2FoM25Ca2Rkci9t?=
 =?utf-8?B?WHYyK2I4MkxhV2dLaHNqNlkzZW1ZZ1FrVjNSNm9sV202dXY1d0NxSnJ1VGw1?=
 =?utf-8?B?UDJ4eS9VRVJiOUduRTZ0bFlETi9hYVJnZFQ4ZzhJZkgwRzhMVnJkUjJOT1l2?=
 =?utf-8?B?Y25XWUZHd1ljTnJJUTdrVGJVRWRiSGpKOTJzSWNRYVUxZmoyTUpFWHAwWW12?=
 =?utf-8?B?L0JWYk9HZHpxT1lxMEZaMXV3VVcya3h4SzhZUkliQWRyanhxYWF5TmRKZERE?=
 =?utf-8?B?bnFzTnFuaVpReWphT21wRlA3Z0NsOHpOY0dBL0dib293R095SkFXTS9KV0JK?=
 =?utf-8?B?TmtpNUFNL2wzdm1KNys1SDA0MldWbE91N1A0dTNOd211dkNqc2Y3Q2JVbTFq?=
 =?utf-8?B?QWZKSkdGZW5LdjNndmVHN2p5a3VpOG1aN043eG1yT0dWcUR1QnRENnhDUUpO?=
 =?utf-8?B?bVA5bHhEdGR6RXdoWk85WWRwMlFLM3hZSFVrZG83SUhoUTJuK0ZzQ1dmekVJ?=
 =?utf-8?B?U1pjdXBQWXBwcFlNbmhaazlMalg1TFh4eW9saU8zY0VpMlBhdkFjVTlqK3pu?=
 =?utf-8?B?WVM5dHZBOWRuVEdBeGF2YXg3UzR2THM3NFFJVGZHUXVhRmU1VjNGZFgxbFBT?=
 =?utf-8?B?eEVnTWQ1RHdtUUpNMVZDcUlEaXorVEFxQzdRS3EzK2ZDd2NKcGZSLzVnbW1y?=
 =?utf-8?B?dHlxWCtpQ00raFVXSFF4T3JQaGkyWXVNdkVIQmF4cjBkMVFrM1RucFU0bmN3?=
 =?utf-8?B?VXhaWVFRQ1phditPcC8ycFlBUkw4MVhWMWEyTEdJZ1Flei9nYlRQWGVXWkRi?=
 =?utf-8?B?RUk0VFc4RjBrdGRubjFKWFEzcStBMG16U1plMGkyNCtxNXhFb0tKQTZVVXY2?=
 =?utf-8?B?a1RuNU9qWFBmNzJSRGFTcmZJQS9vOE9rWlEySFJ2SlRNbFBobTU4eDNuQUJJ?=
 =?utf-8?B?b1hzcGt0cXR2ZUs0c3h5Y29JK28zUWl3TGVYRGVrY0xZUkJ2TVR2MlJWZ3Ux?=
 =?utf-8?B?aWcyZjZUaXhNU3F4N0hEZlEwb282Mk9hbERQTE42WGpPd094WVVaaE5BaHZU?=
 =?utf-8?B?ME9pZFZVN3RyM1F5KzRIa08xa1A4R085VStlVkt5WllRc2toQTV6bllrTWFt?=
 =?utf-8?B?N3o1aldGbGs2RnpCQmxUTWNac0ZEVEtFNG8yZ3Z5ZzlwT1l0VW80bFdWVjVm?=
 =?utf-8?B?SDBrSWRHcEJsS3Jxa20vbUdrSTF1eHk5K1FaSGZoYkZZeStLK3FIbXJCZGdm?=
 =?utf-8?B?eEFvbkdqdUtweTJ3SXI2azZhWm1qWVk2RkhscXNSNjV4bjk2dTNqZnFETnJj?=
 =?utf-8?B?K09PMFMrdFROeCtwU2lHTks1S3BvK0pHY0lJcm1WVlZWZFlWeUxFL2xPQ3JE?=
 =?utf-8?B?YmNxekFGRVZKcm1sZ0ZTd2ZPTWlVMy90RUowQWg1aS9sekRDTFAzTlJubFA1?=
 =?utf-8?B?bDE5VVNSRXNzVVY0aEhjMFFmRElmWEJONnNoRElKVENTSG90bEd3ZitxNWcx?=
 =?utf-8?B?eHM5YzJyM1pMbE1pNE0xeTNzMzRkSmtJbExjelNJYng5dXVJc013dzlnaWpa?=
 =?utf-8?Q?jNdY=3D?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 37a8bbff-8bdc-451b-7315-08dd7cd04378
X-MS-Exchange-CrossTenant-AuthSource: BN9PR12MB5273.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Apr 2025 10:20:08.5389
 (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: SCoMzr+ZyvWvSN4DTFztgZTyT+BPD5F+LTE8qPwIjoR/JUcOjeD5KOJmetFbAgnt
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR12MB8412



On 10/04/2025 16:54, Jan Beulich wrote:
> First, they all start out zeroed. There's no point doing an initial
> cpumask_clear() on them.
> 
> Next, only cpu_online_map may be altered post-boot, and even that only
> rarely. Add respective placement attributes.
> 
> Finally, cpu_present_map really isn't anything more than an alias of
> cpu_possible_map. Avoid the copying, and have the linker provide the
> symbol (if needed in the first place; it is needed right now as
> common code references the symbol).
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Michal Orzel <michal.orzel@amd.com>

> ---
> I would have preferred to use __attribute__((alias(...))), but that
> apparently (and following the doc) can't be used when a declaration of
> the to-be-provided symbol is present earlier. 
> 
> With the cpumask_clear()s dropped, the containing function's name is
> now yet more out of sync with what the function does. On x86 we call a
> similar thing smp_prepare_boot_cpu().
I agree the function name no longer makes sense. I'd be ok with renaming it to
smp_prepare_boot_cpu().

~Michal



From xen-devel-bounces@lists.xenproject.org Wed Apr 16 10:21:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 10:21:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.955463.1349231 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u4ztl-0002tr-PK; Wed, 16 Apr 2025 10:21:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 955463.1349231; Wed, 16 Apr 2025 10:21: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 1u4ztl-0002tk-Ky; Wed, 16 Apr 2025 10:21:41 +0000
Received: by outflank-mailman (input) for mailman id 955463;
 Wed, 16 Apr 2025 10:21:40 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=d0Wq=XC=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1u4ztk-0002sh-Ir
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 10:21:40 +0000
Received: from fout-a3-smtp.messagingengine.com
 (fout-a3-smtp.messagingengine.com [103.168.172.146])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9493424c-1aac-11f0-9eaf-5ba50f476ded;
 Wed, 16 Apr 2025 12:21:38 +0200 (CEST)
Received: from phl-compute-01.internal (phl-compute-01.phl.internal
 [10.202.2.41])
 by mailfout.phl.internal (Postfix) with ESMTP id 39BAC13801BB;
 Wed, 16 Apr 2025 06:21:37 -0400 (EDT)
Received: from phl-mailfrontend-01 ([10.202.2.162])
 by phl-compute-01.internal (MEProxy); Wed, 16 Apr 2025 06:21:37 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed,
 16 Apr 2025 06:21:35 -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: 9493424c-1aac-11f0-9eaf-5ba50f476ded
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=fm2; t=1744798897;
	 x=1744885297; bh=MAAqGjTF3gbsArBeILm+CnJnsxaujCfpMwOQK1iQ0iU=; b=
	IW7dOiIxDipq3ie0kwtrausPy5REu7cLV1+fQWLBDf95i+xbp3/VpPM+CmHmO0NI
	SnwJuNktCH6BVWdp6xCZoNcrMeoDQNwayhzAsaiQDwFBfT5xQlDXkOSYG2lX9Lhl
	LtG74uom6WnwSov1doL/aa3i8h0+IR1RAyPaezpFe5PAoMtdKJ/6Mf+AlEZ4rFb/
	HoWls5E80O+nPOXBU2pqUeuHDa/58Q+FEBr7qtRAH1XChVbeZs4ZnW6SnAYZiXsM
	WXptv2ng3IT//UJ9eQ/cmQxXDLjEU2vQalQXT/47LKsJ+ZBQM0T40iP8/BLXNhFM
	6Xebz9uTgkkhjhzkmP/G0Q==
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=fm2; t=
	1744798897; x=1744885297; bh=MAAqGjTF3gbsArBeILm+CnJnsxaujCfpMwO
	QK1iQ0iU=; b=QGwW2GMv34qXcNLFkeEq0th4DpGitD+Gjc30N3rM1EO9GSG7d8e
	dRgmcrpXdr+tjFpN8Rz3bw8LxYDJYsnfGFAeRuR5HqeGiVBFcdu5YzC/dX7HRUlR
	x6qBZUrXhSt+JjvzPpOMvuBmQURwoULcDm/Cud0ZSnhZ9mcZfoUaTut7d5w+SP+9
	hpx1zSLCRYWL0IYI2RcmM6l4YyUJ/x8G8BIBxQU9BZbgbzE1d5y9qde75+rc8Ro7
	bahjGDvLECAsHSJW2Cdm4N2hLrSjN9sV6wsDheubiCPfzu86iRk/Jp8K0PSRmEnh
	NIUmeol0hoAiDOi0b5TGbrwuoT9oqedFhbA==
X-ME-Sender: <xms:sIT_Z8zKK8KbrjWWzjZvX1zBJ5LYfHpXcRgvEg8-621XmgO_CxHDxA>
    <xme:sIT_ZwS93ii3ylMfF0_KgAM0x9_2saAj2QsG4HfBk39dFzPdwqXi3-b3FjBHS5UT3
    Jg3gIxvTb23Lg>
X-ME-Received: <xmr:sIT_Z-VquDMsbF-YYvRrwlnF0IMuA0IqJBaU7pfIjyCnN-1el_k_fuOyGCcmAdK5XNzV1O7Svt4utlcehkR2wmfv5ogKr8qpoA>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvvdeiudduucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
    pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
    gvnhhtshculddquddttddmnecujfgurhepfffhvfevuffkfhggtggujgesghdtreertddt
    jeenucfhrhhomhepofgrrhgvkhcuofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuc
    eomhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecu
    ggftrfgrthhtvghrnhepgfduleetfeevhfefheeiteeliefhjefhleduveetteekveettd
    dvgeeuteefjedunecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhf
    rhhomhepmhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomh
    dpnhgspghrtghpthhtohepkedpmhhouggvpehsmhhtphhouhhtpdhrtghpthhtoheprghn
    ughrvgifrdgtohhophgvrhefsegtihhtrhhigidrtghomhdprhgtphhtthhopehsshhtrg
    gsvghllhhinhhisehkvghrnhgvlhdrohhrghdprhgtphhtthhopeigvghnqdguvghvvghl
    sehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdprhgtphhtthhopegrnhhthhhonh
    ihrdhpvghrrghrugesvhgrthgvshdrthgvtghhpdhrtghpthhtohepmhhitghhrghlrdho
    rhiivghlsegrmhgurdgtohhmpdhrtghpthhtoheptggrrhguohgvsegtrghrughovgdrtg
    homhdprhgtphhtthhopehjrghsohhnrdgrnhgurhihuhhksegrmhgurdgtohhmpdhrtghp
    thhtohepughpshhmihhthhesrghpvghrthhushhsohhluhhtihhonhhsrdgtohhm
X-ME-Proxy: <xmx:sIT_Z6itjhuS7d4a-Z8zdFgZ0sMO3pf2krAWF676HDIdctL4oNDRRw>
    <xmx:sIT_Z-Ck6O6f4J6Fu6E9smP_Rp2s3eogmcQBxIuvatMwSHTHDGyCeQ>
    <xmx:sIT_Z7IPlnxr70wcc7q0Zy0l0BmXCkO677gmebwigLnxKeuPwAyS7Q>
    <xmx:sIT_Z1AstCR4eiJkJgOL_yte_kBcdPO1JK-Sizvm0iY5ibMQqd2pYQ>
    <xmx:sYT_ZxYnYBHmFkNBvRHzDeg16nrwmzCMvb0P71mjKzLUsYymt968NCfv>
Feedback-ID: i1568416f:Fastmail
Date: Wed, 16 Apr 2025 12:21:33 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
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>,
	Jason Andryuk <jason.andryuk@amd.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>
Subject: Re: [PATCH v2 2/7] Overhaul how Argo is built and packged
Message-ID: <Z_-ErdkJ3Gxs_vFN@mail-itl>
References: <20250414101843.2348330-1-andrew.cooper3@citrix.com>
 <20250414101843.2348330-3-andrew.cooper3@citrix.com>
 <alpine.DEB.2.22.394.2504151645260.8008@ubuntu-linux-20-04-desktop>
 <44efebcd-877e-46a3-a072-07c44fc29f27@citrix.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="B0tjhU7DyFyR+kr5"
Content-Disposition: inline
In-Reply-To: <44efebcd-877e-46a3-a072-07c44fc29f27@citrix.com>


--B0tjhU7DyFyR+kr5
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Wed, 16 Apr 2025 12:21:33 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
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>,
	Jason Andryuk <jason.andryuk@amd.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>
Subject: Re: [PATCH v2 2/7] Overhaul how Argo is built and packged

On Wed, Apr 16, 2025 at 11:15:21AM +0100, Andrew Cooper wrote:
> On 16/04/2025 12:48 am, Stefano Stabellini wrote:
> > On Mon, 14 Apr 2025, Andrew Cooper wrote:
> >> Right now, the argo artefacts are a pile of files which the test has t=
o turn
> >> back into something which resembles a filesystem.  Furthermore, becaus=
e we do
> >> not build modules for the main kernel, it is extra important to make s=
ure that
> >> xen-argo.ko doesn't get out of sync.
> >>
> >> Build argo conditionally as part of the linux artefact.  It's ~100kb a=
ll
> >> together, compared to ~14M for the kernel.
> >>
> >> Produce a single argo.cpio.gz with xen-argo.ko in the standard locatio=
n.
> >> Prune userspace down to just the executables and libraries.
> >>
> >> This is cribbed from the existing scripts/x86_64-linux-argo.sh, which =
stays in
> >> place in the short term until Xen can be updated to use the new scheme.
> >>
> >> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> > Do we need to remove x86_64-argo-linux.sh?
>=20
> Yes, but 4.20 still uses it.
>=20
> One thing I'm not sure about is whether "keep latest artefact" is just
> artefacts from the latest run, or the latest of each named artefact.

I think it's latest run for a branch. If newer job (on a branch) doesn't
include an artifact anymore, it will be gone. Jobs referencing it won't
see it immediately, regardless of expire time.

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

--B0tjhU7DyFyR+kr5
Content-Type: application/pgp-signature; name=signature.asc

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmf/hK0ACgkQ24/THMrX
1yxGlAf+ONwQGjd6R39/J3IRNuj0tsTJCZ9067K9zxbmIHk8TG1cfssoPhOqigwT
FTLzLn1oG8c8itd3zKjMwPSwSuhucfiEMfgf9LRKffJb/5JZCKeZ26C8kXMOde3P
JQKumVOzim1biWKKPuDmNSAqfYa053iHPPhMvjjbY6xLw0suUb8uzIOXX7HhqIVh
sNERMFWAmjp2960rhsmKUQuxlPTKP1mLVY8Vx1U+8MXnUoo9cccgBuCb//ptYqvb
XQrpVoqwXh8yHXPXicF20BZni8Ucmdf2uJ0dv33BkXUy5foMHk1hrEw9Lcv+p2lD
dQvs/x0pfL0pOn90gqLwmryyDUgRQA==
=PXat
-----END PGP SIGNATURE-----

--B0tjhU7DyFyR+kr5--


From xen-devel-bounces@lists.xenproject.org Wed Apr 16 10:31:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 10:31:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.955477.1349240 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u502k-0004tB-JA; Wed, 16 Apr 2025 10:30:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 955477.1349240; Wed, 16 Apr 2025 10:30:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u502k-0004t4-GF; Wed, 16 Apr 2025 10:30:58 +0000
Received: by outflank-mailman (input) for mailman id 955477;
 Wed, 16 Apr 2025 10:30:57 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=yQHX=XC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u502i-0004sy-VQ
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 10:30:56 +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 cdc87bc7-1aad-11f0-9eaf-5ba50f476ded;
 Wed, 16 Apr 2025 12:30:23 +0200 (CEST)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-43cfe574976so44695895e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 16 Apr 2025 03:30:24 -0700 (PDT)
Received: from [10.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-4405b4c8056sm17204915e9.2.2025.04.16.03.30.21
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 16 Apr 2025 03:30:22 -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: cdc87bc7-1aad-11f0-9eaf-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744799423; x=1745404223; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=mR0wgexs7v7FhQRFP92ev7RmOCtyGLhA5EYpw9vx/ZM=;
        b=gDJpTlvsIemvs//f90qCYaIayaJZdIdZXvHO5W2mU9mDI/L0n3/+GU4aQ2ehc9rwxZ
         oMwKWQexQG+wXjJXz8HIWxFeG8wwJKpk92ePJYAINm5vPrtzmKl8CbMCtIYNNRjHi+kl
         VxfnRtTwhzSElux3mY9qv1goQYMR8Gq7pZeNpm4bSEN5jQexNpHbGY5tAu2BElQWGP5q
         /1f9zQIC6mcN1WxXKUuVPPcvupu8OcTkyr9CglXC5rn17Rm+om/t4TOAxzazH0yoGKy3
         lfyzCUNCGw/dlULePdxOo01kUpRCNk/kizU/ckwPqYlq/qehg/HfFQIgWrXImDARpr8V
         pW0Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744799423; x=1745404223;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=mR0wgexs7v7FhQRFP92ev7RmOCtyGLhA5EYpw9vx/ZM=;
        b=VQ4WbypLHTyIFDlI2GcrSzVfrNt66U1WGc1TtneMm7d4Q8lHzCve6gmj7q5iCEvuAF
         +E9oLIk0QB0xFpsGY8QdpWhOthLYiKX1vUfha42iObdtr6wg2RvEAu1KeaGbuOZX80Xc
         ntPywfhLTdt6m9lB9nKNHXoxrVcRfTReITxm7pErfUvsympVnS3T5yzZn6PWBlY69UYt
         7/8zVTnIkg/18KeqWZ4YC/5SYl8BKiJ4squJpRgACJPXWClJ/+IPBZvDHfwO592PdaUq
         SFOAdjfSXu0hqUA4PvZbkE2/sz84zIZdy9DzQzs5rMIZWqX+Io9ovaalx0NrJxu6ISU4
         1B/Q==
X-Forwarded-Encrypted: i=1; AJvYcCXlU3drRwKBO92Va6eY0d4/skuZI7nomJS+CxT+LXARdnZ9EGtEK9VJHkFB0nLAlZVX/aw09mI4e0c=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzyf2B1r464drOU2mn9/6NbeYls11APsNkvpkNDuiTH7ryC0Njq
	m+2OCzzr2lYLn5zFsZM7GJmptTmSJ/npHM7TJeK5+4TxZ8HIS2bgTUlBlabUSw==
X-Gm-Gg: ASbGncttKSyuFIGTaRDgZOIDXKK+f4cYbCy6Y/bcCgnCoaPadPqf9b0q7gSihGYy0/x
	c6Kq3UzhxlOhHKsOV1SUFf2pNzhTNKNhyXTNrQdzZNmCloeJ6kPRYZRM7EyBt3V575BzfIBWhqd
	tBCKY0x6yKtyKSnGuConBtJBMgo8UGXH9bgZWq8kUaO4pLGFnibW9vF0oI51CtIvoCmFslPXfm3
	X+S8TD2cC81Pz3Aam4HlTfPmWd01CEum61beiS2THopX4WPCDMXxexTusx9wjbF8nziPVL6cJkO
	0EpxmfxXpwpGhlMHjtxIDvTigtnfJBj2Fl9ldFh/lgSCVDCZBRCG4spliuEpaLoWdOCiKIQ4hjQ
	I9vYnoUuBkIuzIMSKrglPkvuruA==
X-Google-Smtp-Source: AGHT+IFDClQC9dqhGnMNhOY6AuSjJZZfLThewL9y3pJU8iDigzTCbPscpiVslHZHA3e60MxanEmYkQ==
X-Received: by 2002:a05:600c:1c07:b0:43c:f616:f08 with SMTP id 5b1f17b1804b1-4405d61cdccmr11018135e9.8.1744799423042;
        Wed, 16 Apr 2025 03:30:23 -0700 (PDT)
Message-ID: <f2da2ec5-e457-4d2c-b2fe-49c7356760e1@suse.com>
Date: Wed, 16 Apr 2025 12:30:20 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 09/14] xen/riscv: aplic_init() implementation
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Romain Caritey <Romain.Caritey@microchip.com>, xen-devel@lists.xenproject.org
References: <cover.1744126720.git.oleksii.kurochko@gmail.com>
 <1d023045be49ae93d41d552f9c9a79972fa4e84b.1744126720.git.oleksii.kurochko@gmail.com>
 <a7008eee-04d2-4e61-b66a-ff659e3b99db@suse.com>
 <a54ef262-92fc-453d-898e-70636c2918fd@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: <a54ef262-92fc-453d-898e-70636c2918fd@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 16.04.2025 12:15, Oleksii Kurochko wrote:
> On 4/14/25 12:04 PM, Jan Beulich wrote:
>> On 08.04.2025 17:57, Oleksii Kurochko wrote:
>>> +    rc = dt_property_read_u32(node, "msi-parent", &imsic_phandle);
>>> +    if ( !rc )
>>> +        panic("%s: IDC mode not supported\n", node->full_name);
>>> +
>>> +    imsic_node = dt_find_node_by_phandle(imsic_phandle);
>>> +    if ( !imsic_node )
>>> +        panic("%s: unable to find IMSIC node\n", node->full_name);
>>> +
>>> +    /* check imsic mode */
>>> +    rc = dt_property_read_u32_array(imsic_node, "interrupts-extended",
>>> +                                    irq_range, ARRAY_SIZE(irq_range));
>>> +    if ( rc && (rc != -EOVERFLOW) )
>>> +        panic("%s: unable to find interrupt-extended in %s node\n",
>>> +               node->full_name, imsic_node->full_name);
>> Why exactly is EOVERFLOW tolerable here?
> 
> QEMU generates two IMSIC device tree nodes: one for M-mode and one for S-mode.
> For the hypervisor, we don’t really care about the M-mode IMSIC node — we're only
> interested in the S-mode IMSIC node.
> 
> The IMSIC node includes this information in the|"interrupts-extended"| property,
> which has the following format:
>    interrupt-extended = {<interrupt-controller-phandle>, <machine_mode>},...
> The number of such|<phandle, mode>| pairs depends on the number of CPUs the platform has.
> 
> For our purposes, to determine whether the IMSIC node corresponds to M-mode or not, it’s sufficient to read only the first pair and check the mode like this:
> 
>    if ( irq_range[1] == IRQ_M_EXT )
> 
> Thereby dt_property_read_u32_array() will return -EOVERFLOW in the case when a platfrom
> has more then one CPU as we passed irq_range[2] as an argument but the amount of values
> in "interrupts-extended" property will be (2 * CPUS_NUM).
> 
> I can update the comment above dt_property_read_u32_array() for more clearness.

Yet my question remains: Why would it be okay to ignore the remaining entries,
and hence accept -EOVERFLOW as kind-of-success?

>>> +    aplic.regs = ioremap(paddr, size);
>>> +    if ( !aplic.regs )
>>> +        panic("%s: unable to map\n", node->full_name);
>>> +
>>> +    /* Setup initial state APLIC interrupts */
>>> +    aplic_init_hw_interrupts();
>>> +
>>> +    return 0;
>>> +}
>>> +
>>> +static const struct intc_hw_operations __ro_after_init aplic_ops = {
>> const or __ro_after_init?
> 
> What’s wrong with using both?|const| ensures the variable can't be changed at compile time,
> while|__ro_after_init| makes it read-only at runtime after initialization is complete.

No, const makes it read-only at compile- and run-time. __ro_after_init,
putting the item into a special section, makes it writable at init-time.
Due to the const, the compiler wouldn't emit any writes. But we can
also avoid stray writes by having the item live in .rodata.

> Probably,|__initconst| would be a better fit:
>    static const struct intc_hw_operations __initconst aplic_ops = {
> 
> Or even|__initconstrel|, since the|struct intc_hw_operations| contains pointers.

Well, if this variable isn't accessed post-init, sure. That seems pretty
unlikely though, considering it contains pointers to hook functions.

>>> --- /dev/null
>>> +++ b/xen/arch/riscv/include/asm/aplic.h
>>> @@ -0,0 +1,77 @@
>>> +/* SPDX-License-Identifier: MIT */
>>> +
>>> +/*
>>> + * xen/arch/riscv/aplic.h
>>> + *
>>> + * RISC-V Advanced Platform-Level Interrupt Controller support
>>> + *
>>> + * Copyright (c) 2023 Microchip.
>>> + */
>>> +
>>> +#ifndef ASM__RISCV__APLIC_H
>>> +#define ASM__RISCV__APLIC_H
>>> +
>>> +#include <xen/types.h>
>>> +
>>> +#include <asm/imsic.h>
>>> +
>>> +#define APLIC_DOMAINCFG_IE      BIT(8, UL)
>>> +#define APLIC_DOMAINCFG_DM      BIT(2, UL)
>>> +
>>> +struct aplic_regs {
>>> +    uint32_t domaincfg;
>>> +    uint32_t sourcecfg[1023];
>>> +    uint8_t _reserved1[0xBC0];
>>> +
>>> +    uint32_t mmsiaddrcfg;
>>> +    uint32_t mmsiaddrcfgh;
>>> +    uint32_t smsiaddrcfg;
>>> +    uint32_t smsiaddrcfgh;
>>> +    uint8_t _reserved2[0x30];
>>> +
>>> +    uint32_t setip[32];
>>> +    uint8_t _reserved3[92];
>>> +
>>> +    uint32_t setipnum;
>>> +    uint8_t _reserved4[0x20];
>>> +
>>> +    uint32_t in_clrip[32];
>>> +    uint8_t _reserved5[92];
>>> +
>>> +    uint32_t clripnum;
>>> +    uint8_t _reserved6[32];
>>> +
>>> +    uint32_t setie[32];
>>> +    uint8_t _reserved7[92];
>>> +
>>> +    uint32_t setienum;
>>> +    uint8_t _reserved8[32];
>>> +
>>> +    uint32_t clrie[32];
>>> +    uint8_t _reserved9[92];
>>> +
>>> +    uint32_t clrienum;
>>> +    uint8_t _reserved10[32];
>>> +
>>> +    uint32_t setipnum_le;
>>> +    uint32_t setipnum_be;
>>> +    uint8_t _reserved11[4088];
>>> +
>>> +    uint32_t genmsi;
>>> +    uint32_t target[1023];
>>> +};
>>> +
>>> +struct aplic_priv {
>>> +    /* base physical address and size */
>>> +    paddr_t paddr_start;
>>> +    paddr_t paddr_end;
>>> +    size_t  size;
>>> +
>>> +    /* registers */
>>> +    volatile struct aplic_regs *regs;
>>> +
>>> +    /* imsic configuration */
>>> +    const struct imsic_config *imsic_cfg;
>>> +};
>>> +
>>> +#endif /* ASM__RISCV__APLIC_H */
>> Does all of this really need to live in a non-private header?
> 
> struct aplic_priv is used in different files:
> - in aplic.c to define `aplic` variable.
> - in vaplic.c (which isn't intoduced yet) is used in several places:https://gitlab.com/xen-project/people/olkur/xen/-/blob/latest/xen/arch/riscv/vaplic.c#L41

Which would still call for a private header (xen/arch/riscv/aplic.h).

> struct aplic_regs is used only in aplic.c (at least, at the moment) so could be moved to
> aplic.c, but I don't see too much sense.

It is generally good practice to limit the scope of things as much as
possible. Just to avoid (or make more noticeable) mis-uses or layering
violations, for example.

>>> --- a/xen/arch/riscv/include/asm/irq.h
>>> +++ b/xen/arch/riscv/include/asm/irq.h
>>> @@ -27,7 +27,6 @@
>>>   #define IRQ_TYPE_INVALID        DT_IRQ_TYPE_INVALID
>>>   
>>>   /* TODO */
>>> -#define nr_irqs 0U
>> How come this is simply no longer needed, i.e. without any replacement?
>> Hmm, looks like the only use in common code has gone away. Yet then this
>> still doesn't really look to belong here (especially if not mentioned in
>> the description).
> 
> I missed that it is used in xen/common/domain.c when CONFIG_HAS_PIRQ=y, but this
> config isn't selected for RISC-V.
> I think that I have to revert this change.

I don't think you need to, as long as you don't mean to select HAS_PIRQ
for RISC-V. It's just that the change looks entirely unrelated _here_.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Apr 16 10:38:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 10:38:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.955492.1349250 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u50A6-0005tU-CR; Wed, 16 Apr 2025 10:38:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 955492.1349250; Wed, 16 Apr 2025 10:38:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u50A6-0005tN-9b; Wed, 16 Apr 2025 10:38:34 +0000
Received: by outflank-mailman (input) for mailman id 955492;
 Wed, 16 Apr 2025 10:38:32 +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 1u50A4-0005tH-Jh
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 10:38:32 +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 1u50A4-001XQe-0f;
 Wed, 16 Apr 2025 10:38:32 +0000
Received: from [143.198.24.140] (helo=[100.81.22.8])
 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 1u50A3-00Hb0N-0I;
 Wed, 16 Apr 2025 10:38:32 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=b26BaROSn2IPN1efL6pUoGtCtc280nUR+WdO8BXTY24=; b=K7MWCrUkcYk9yxKh1DKEpU5A8A
	ND+X4pk4Wc+OHbP57A6mB9qBM/APJjtnvhcV8un7q6WMzrQyUgvZ0FsKcIMt2sC087Vsl8yDDr+LN
	ClIat54X0vj/zVeNQMJflIePpWKEa19Wvl+qmVDTH2ICvLmL3dKqpyTcgCDG3ywB5p/E=;
Message-ID: <d64011fc-84bc-40fb-a98e-aa85eb2574c3@xen.org>
Date: Wed, 16 Apr 2025 19:38:20 +0900
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 0/2] Add support for MSI injection on Arm
Content-Language: en-GB
To: Mykyta Poturai <Mykyta_Poturai@epam.com>,
 Stefano Stabellini <sstabellini@kernel.org>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Rahul Singh <Rahul.Singh@arm.com>
References: <cover.1744621166.git.mykyta_poturai@epam.com>
 <98feb427-7da5-47ff-831c-2b4bcb26c4b9@xen.org>
 <alpine.DEB.2.22.394.2504151536240.8008@ubuntu-linux-20-04-desktop>
 <15938705-ae5e-43c9-826f-d7a8c7425baa@epam.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <15938705-ae5e-43c9-826f-d7a8c7425baa@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

(+ Rahul)

On 16/04/2025 17:37, Mykyta Poturai wrote:
> On 16.04.25 01:40, Stefano Stabellini wrote:
>> On Mon, 14 Apr 2025, Julien Grall wrote:
>>> Hi Mykyta,
>>>
>>> On 14/04/2025 18:51, Mykyta Poturai wrote:
>>>> This series adds the base support for MSI injection on Arm. This is
>>>> needed to streamline virtio-pci interrupt triggering.
>>>>
>>>> With this patches, MSIs can be triggered in guests by issuing the new
>>>> DM op, inject_msi2. This op is similar to inject_msi, but it allows
>>>> to specify the source id of the MSI.
>>>>
>>>> We chose the approach of adding a new DM op instead of using the pad
>>>> field of inject_msi because we have no clear way of distinguishing
>>>> between set and unset pad fields. New implementations also adds flags
>>>> field to clearly specify if the SBDF is set.
>>>>
>>>> Patches were tested on QEMU with
>>>
>>> [...]
>>>
>>>> patches for ITS support for DomUs applied.
>>>
>>> This means this series is unusable without external patches. Given this is
>>> adding a new DM operations, I think it would be more sensible to have the vITS
>>> support merged first. Then we can look at merging this series.
>>
>> Hi Mykyta, just checking explicitly with you whether this series
>> requires vgic-v3-its.c for DomUs?
>>
>> If yes, how far are you from sending the relevant patches to xen-devel?
>> How many are they?
> 
> Hi Stefano,
> Yes, I am planning to send them together with VPCI MSI support after
> SMMU patches are merged.
> 
> Although the DomU vits itself is only two patches.

I am assuming this is work in progress patches rather than the one you 
plan to send, correct?

Asking, because currently there are a few 
ASSERT(is_hardware_domain(its->d)) to indicate where changes are likely 
for the guests. You seem to remove them without explaining why or any 
associated code.

While I will not ask to have a security support guest vITS from the 
start. I would like some confidence that we are going in the right 
direction. IOW, I would like to see a design document that would explain 
how we can achieve it. Some of the part to consider:
   * Command queue
   * LPIs
   * 1:1 pITS <-> vITS vs one vITS to many pITS
   * The page-tables are shared between the device and CPU. Are we ok to 
keep the doorbell writable by the CPU?

There was some discussion in the past about it (I have added Rahul 
because IIRC he was driving the discussion). So most likely, we would 
need the design to be respinned and agreed first.

Lastly, I see you seem to go down the route of exposing one vITS only. 
But I don't think your patch is sufficient to support multiple pITS (the 
guest doorbell will be mapped to a different host doorbell depending on 
the guest).

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Wed Apr 16 10:44:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 10:44:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.955504.1349261 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u50Fh-0008Ak-VW; Wed, 16 Apr 2025 10:44:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 955504.1349261; Wed, 16 Apr 2025 10:44: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 1u50Fh-0008Ad-SW; Wed, 16 Apr 2025 10:44:21 +0000
Received: by outflank-mailman (input) for mailman id 955504;
 Wed, 16 Apr 2025 10:44: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=VsD+=XC=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1u50Fg-0008AX-I8
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 10:44:20 +0000
Received: from AS8PR03CU001.outbound.protection.outlook.com
 (mail-westeuropeazlp170120005.outbound.protection.outlook.com
 [2a01:111:f403:c201::5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id bfd844ca-1aaf-11f0-9eaf-5ba50f476ded;
 Wed, 16 Apr 2025 12:44:19 +0200 (CEST)
Received: from DB3PR0302MB8919.eurprd03.prod.outlook.com
 (2603:10a6:10:435::21) by AM9PR03MB8009.eurprd03.prod.outlook.com
 (2603:10a6:20b:43c::22) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.31; Wed, 16 Apr
 2025 10:44:17 +0000
Received: from DB3PR0302MB8919.eurprd03.prod.outlook.com
 ([fe80::ce88:43f9:c971:9584]) by DB3PR0302MB8919.eurprd03.prod.outlook.com
 ([fe80::ce88:43f9:c971:9584%5]) with mapi id 15.20.8632.030; Wed, 16 Apr 2025
 10:44: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: bfd844ca-1aaf-11f0-9eaf-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Grsy6YyQ5cT8pE0PlQVDXT+VBFFBoaPKsLlAmyjt6Va2siQDWmpSjo34FhFqtpCK1IXW7lRLJjKqcam5v2UaFO0RiCWGKWgqhDjKCYV84tP5F1wNZC6+ti+Mzfg/Yb102mlOysONDbmz65Yd/WLQJjkecVBkeuTFz8BX1LWRLuyqq93c7FAAfs5fTx53/G2B/dJk2qGCGfp235TPuPwY6pg23dz+faEbPj4fxLHhzvPZ20/Y+SE6p4R/5l5SyuHBPjiKIiCcGjOaqJGOGstyo/IrFFr9Fz7zwV/XZ7P3g3q64biczdBjeRTRQI64eA+3ZDX+qby4Y4SB3C5N2XK70Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=N6O72mmPpn6wz0QsBJK+VKv7oc9K5Gdtio31aQecTo4=;
 b=HObTeuOF9njo3GMkuRzwevXBGLOzTuIIGIiyfeo+zLHe8eTVJliue02ig/afpr2Bd+G7mGhX2m38k98y9PMtdzj1oHB/Q0HI+TSif4sDnjT2NL7TP+nthrtuIKS3d8JQGYlWu2BBqMqJZl1NmHiE27dpYz7BXzy/gklqkLER4qoixOD4i9jKJ2UjNHTXU0TmqQkUjTuHiAUjkzcKEedIdUYUVvXMD0rbxYeMuOCUpAjht9rnCQvm8akHcmIKorvK9Ec7FtNXPfyVfVvurgCbLbg1WDXrOYjyfdsFbAz9Nw6ny7i9DWWYbcZQxTgSFP+YQvG3MezB57H21iDAKdtjjg==
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=N6O72mmPpn6wz0QsBJK+VKv7oc9K5Gdtio31aQecTo4=;
 b=ccyeWoyqVNX/FoaN1WpGClycqPF6LFKx92F7lMbgWntwGcuIqaZ0j8xxdUsTXLfJaulpF42f0b241Pt3cuYoyxrL/e32/WQtzTEfN/tPr9xyM6A00Bdy9xDgl7o2cBg2j+k+YhfOSlmYzDmeaNEhaC/aOsQgign92A+BwpNvw3hcyAkrhdMemZYn7ZGZPw+27PVC7H7L0GdshkiMYZYs0Ti7QoRnT39BS0qeI3R1+/M7Dh1BE8qTNRaONiHCzlTO5nELXUUado1MsSNNbLbt+lE1v8vXis4JKUs+5xKgx4319DtGNYc+v45EVaApM8KdcY8zTBMSg1kLxTkvBY/diQ==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <c0a5ca22-fc42-47fc-b1b0-358992014454@epam.com>
Date: Wed, 16 Apr 2025 13:44:15 +0300
User-Agent: Mozilla Thunderbird
Subject: Re: [ImageBuilder] uboot-script-gen: fix arm64 xen u-boot image
 generation
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20250414081223.1763630-1-grygorii_strashko@epam.com>
 <alpine.DEB.2.22.394.2504151758170.8008@ubuntu-linux-20-04-desktop>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <alpine.DEB.2.22.394.2504151758170.8008@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR4P281CA0079.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:cd::9) To DB3PR0302MB8919.eurprd03.prod.outlook.com
 (2603:10a6:10:435::21)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DB3PR0302MB8919:EE_|AM9PR03MB8009:EE_
X-MS-Office365-Filtering-Correlation-Id: f92367ae-a405-4d66-2071-08dd7cd3a315
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?YXBuYUNIKy9DUS9XWFUweGJvRUxrMSs1L0RUUG5zcnloSmQ0Z25rQ2FrNHRm?=
 =?utf-8?B?UDkyem5kQzFqR2F2eUJiOHVHVHZDeTBDc09Ma3FOblpjbGlZZlhaVDRJa3dL?=
 =?utf-8?B?UVJEZWdrVFhaVzdFYVlpTmxZY3oxUEhVYllGV3pncWVic292QTIyYTNLaWZi?=
 =?utf-8?B?TFA2cVo2MGRSNGtDc0UzZmJlU3V2TGVJcDFnUXJkU2VmdEdETjMrYWFwYk5s?=
 =?utf-8?B?VFhyWEprdGN3Wi9ZamxZaktwZisxMVNGLzduQTJXejNmVG85WlBrRzgvb3M2?=
 =?utf-8?B?YmRtbVBIWEFDemV2MHdlZGZVa0hNQy9SeVRtcGgvcEVtcUhHVnNnMHg0L1Mx?=
 =?utf-8?B?SFRKeVZCdkFlbjVhd1lpUlllUTY0cVJzdDJja0JzU3dUTzkwYVpDVFNKbzdU?=
 =?utf-8?B?UVFtMnEwMmtsWHZTbWRxdE03anQ2QXNVMnBXUDhNdktYUlRZVjlxeDJIYXkw?=
 =?utf-8?B?UktITlZBcE55Z0Rad3BYU1kvcGhiek45cmtFTXA5MDNNeFJxYVhrVHprM3FO?=
 =?utf-8?B?Uk1VOE1jajZYMmJFSDhrWno3NmhpWllDUmk1OWhsUkVVZTcyeDJnYTZPQ2ZD?=
 =?utf-8?B?cjdmWFo2L3FvWVVtRjFrT0pQOVc0Q1ZTTXNYSEF1RmhlZE5oYzNxVTlyZHRT?=
 =?utf-8?B?MGljL0Y1MXAva1BvN2NDUi9EMDZLTDJ2blpISkxRTmE1b1ltajhub2lLKzJK?=
 =?utf-8?B?QjBPWS9za0lZNS9BcU5XWGlCNUFsRE1ZQlpYZDNrZkR5VHU3cFVUaXduMzZP?=
 =?utf-8?B?ckRwaGtVb1gycit3dVgya1FXWUN2OTF1MFBkeUt1V0JTRHMzTXZhcmlXQkc5?=
 =?utf-8?B?aVhPaThPK3NKUWV3OXFIZklmcUJrSHBpZ0U2dXpNWGU4aTZJOVNUZ2dxSnlm?=
 =?utf-8?B?VFpDNE5PVWIzQXFPalhpcFNCUDZ2b0dJTHF3M2R0ajFHY0kyb0dRMU1LK2xt?=
 =?utf-8?B?b2paT1lGRkl0d2RsakpjSEFoYzU2bTdSemF1SmRDSDNjTGJrcHdKQ1E2V0xE?=
 =?utf-8?B?amR2dUU4SDd5c1hpUGcvR0JWZUVaNjRiMWtCenZNcUNwdk44MnkrU2xGR3ZP?=
 =?utf-8?B?SElZY3BYdjRCRjl5K3YySk8raG43aHI5eE9WendZb2VTRXlBbHhHNml0SFZz?=
 =?utf-8?B?UEcwT1FHOXF4UUh0QzVwdnZDWGFwMVpMcDBOTE9wTkM5NFA4SElIc0dBdGQ0?=
 =?utf-8?B?Sy9GV09EQ3l2eXVzNStWaTk1d2ZuMGNPSHovMTZGeXdLN2hxcjZGUDBiTEg1?=
 =?utf-8?B?bVc5WkRpeGlKdmpITmpsZ0RwRjlSMkt1djdYV1RnVSt4R1dQdVNoQWRxZHo4?=
 =?utf-8?B?WGVzYXk2ZndXU3MzWUl4bnB5MnhnZTUwZWU1eC9qdUpKczJjZ3BMeDBZa1FD?=
 =?utf-8?B?cGFOMExlNDB2dEZ6elNlcEFNZmk4T0tMbkdpN281d0ZHRmZvenA3R09FdXBy?=
 =?utf-8?B?Yml5aEZOdEx1b1pKRFU3bEdBbVh0VkZlYkx1eGdTd2RhUDM0S1YrZUw5Unls?=
 =?utf-8?B?aW12MHJ1cUtTM3p5dUtWV3pMUzgxSDRiMzNKQkQ5Qm5ETG55MCszTEIvQ2Zl?=
 =?utf-8?B?N0ZSMEVWbVJyaU5SSXVZeWx2NisrR1ZITzMybDdWeHp2R0hRdG0yaU1wQ1pG?=
 =?utf-8?B?dzN4dHZueEg4L25CcWRjQjVsWjFQQWFieGtDdENnTTdlaU9pQ01SbGRwN2Zl?=
 =?utf-8?B?ZGlrUTd6MlhEaUxhTGc4RzFGVG9PSUxBUXdLK29iUXFNWDdBdW9RZFpsNXpu?=
 =?utf-8?B?a2JKbzB6K3h4ZW5qdXkzZDEvVFhWQ2hna2hETEFZUXVuLzBBeVQ5VDhmUzhD?=
 =?utf-8?B?Z3NaNzg1UUVXOVpob01EaGJyQ0lvcDFlaGhkQWNOajIzNUtFSjlsVUU4VE1V?=
 =?utf-8?B?NVZ4ZW5WN2VYdHExZkhpSVlpZ1JUaWJuMmcwZ1l4WWxPS3ZqclJPUFkzb2k4?=
 =?utf-8?Q?pOuZLGGMyUY=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB3PR0302MB8919.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?VHJ4WlpGR3o2dVNZZmVvVUhMTUdYelVBbmkwNHozamIxSkVNSUI2S1l2Sm8w?=
 =?utf-8?B?VC9mcnNGZUhJdjE5eG1hQ2JrdlhQaTBTc1N1QUFRUlkvSEcwWFRidkpYT1c0?=
 =?utf-8?B?WTVsdjZoYXQzLzd6RlpZV2g5dHk4NmFmZElKUmQ4ZEhUM2hjZ3BFdUdGbVhG?=
 =?utf-8?B?UkNvenhMOE05NC9Da3F1SGxvSnJUS1NCRTFrMkNsY0lFV3dCRyszbDRtYVE5?=
 =?utf-8?B?NjI0dXo4emZvb1ZKb0RmL3BQM09peTNjWnBkZHlnSm1oTGxGNmN4TVlhRW44?=
 =?utf-8?B?dXg1dEExekUxUVhCV003S09EQzZYNkZwNGN2Y2YzNURxMjBGM1kyeXA2VXJ4?=
 =?utf-8?B?YWJWN0V4TFpvTkcwdkt4UThmVERlUE5ibUYxcnRySzM1SHA0RlZ6Q3pDZ3Ry?=
 =?utf-8?B?S3piZ09XNDZXd1V5M3c1MUE0WXY1NFp3V1l0Tk5WWTh4RHBhbmpoOWZwZTQr?=
 =?utf-8?B?SnpPRGxGLzB6b1lTbTN2MDAxZStMMUNTVzF3Y2lUamo0ZVJYcFV2b3JQWmg1?=
 =?utf-8?B?aW5LQzNYQ3VFNTNrNkxMRjgrWnZhVHlpQmdoV2hKS215dHBVNXFjOWhZM0wy?=
 =?utf-8?B?RWVKeFdaa2Nqck1LVzRoQmp6UU9WcXNtS0Z0SnNkMHYzWU5jL3BNekpIM3hX?=
 =?utf-8?B?OEp0Y1JjYUkxNDFpc01MZXRVR3l1R3pQTVJWSVA5LzdHN3p6bUhpYXh3d3A1?=
 =?utf-8?B?M2t2N1NHaXZMeEVYUjhKeDRqVWh0MUtqNUJ4WFplaFJsZUVOeVhva0J3YXNr?=
 =?utf-8?B?Vlk5SWhnNGY4UXZ0enNtdlpZbm1tQk0xa0dGRVdMOTV3b0xlQXlWUDVhOFE5?=
 =?utf-8?B?bnlPV2hpYW5IVFRpNHVsS3ltTVV3TlR2dHhzT3RuKzhyRFpEK0NkZDhtSTFw?=
 =?utf-8?B?OHVVWDhyTWRTS1ZNS0V1cG42d09RMDhIcDVoaHRGbnpHK2oyV0MvYURadGxO?=
 =?utf-8?B?YUJOL2cySnBzdFpqTmRhNVBrcTZTaUJsbE1oQ0VFZnlicjU1VkIvRE90ZDgw?=
 =?utf-8?B?WW83YS9mUWx3aXZtQXFJemhjSDUzcEhIVVVBcFl5Mk1ZREgyK3JSVk5ydmRp?=
 =?utf-8?B?dVJFZEw4dFNKaHYvamdKNnVMY3ZsZVlRcWZydXdybmlidGlUeFA0dWt1M2Qw?=
 =?utf-8?B?QVVoT1NQM0FKalVhT3FabkR5V2cyTHhzVVovbFhBV3JNb0NEZUgzQ0ZUay90?=
 =?utf-8?B?TDB2V3h0ekxJS0s2VHpTWVJqczUwSy9kWnJQN1FVc2J1ZmJKZUloU0lkNUU3?=
 =?utf-8?B?RDVURUVVcmU3VFEvc2RGcHNCTzhOQmZYbS9aUlpGakdFT1h6QlZ2MUkzM1RE?=
 =?utf-8?B?NU16TjlRVmpUUU15YjRGT25KOXpJOHdVNklSeGNSOEFqcmhYd3RTQ2pOdjBN?=
 =?utf-8?B?UWtkcXkxRXpraTZuT29qdVc4RmgxOEpnSFV4VW81dHZKeXgwc1FDQnhodG1t?=
 =?utf-8?B?SlpQRTE0Q3dSRFdvNjNJdGdUazZ2ZlE4OXVWbnZCMnlMSmNJNHZCV3lxcTFB?=
 =?utf-8?B?SFcySEMrQmpNL3Z5dE1PQVNRR3NpU2lBOXo5UnVKSzkxK2hJY3ZDSVI5NE5N?=
 =?utf-8?B?b2hMUlM0NVBtTGlXSW4weFlXQjNLaGpFQVdWVjdyUnFvWldNVkhWZitVVE5Z?=
 =?utf-8?B?aGZPS0dLQ2V1bUxBNDZKTTRvSHR2OVVrRXlraGsxcWY1Vnh0dnJxbUI3Ky9h?=
 =?utf-8?B?c1VRSWtCa3hpMTBnOWdMUk9aUy9yMjJHS0lhY1BNdjhSd2lrK0NLdSt3RmVz?=
 =?utf-8?B?RkxPMlJ0QnplTHBmRFYrRURJSGRSTG1sNmk1SFNZK1BCVm8xUldTWCt4Szhi?=
 =?utf-8?B?cmJkL3dGTVVJNWZkVzRGYytJaGt2ZXJSRlJ6WE9zVHBEVE9SOTZSOU0xeU5q?=
 =?utf-8?B?NTZMTGhDb3F2bmxtU2I4Uk9Ub1p3Q29yVUV3VjZXcjZ2UTNGZHIzZ2J6ZUZv?=
 =?utf-8?B?ZkF0dmFka2piU3l4TmtsMGJIL1FmbEN6Nms4U3Bmc01oUTg0RERWOUVaT2Jy?=
 =?utf-8?B?YU52S2hCY0E1bWErYU84cEphUm1kY1FPRFlrblFTc2M1dVV2RExLd01ld2VL?=
 =?utf-8?B?VTh2d05veFhaalVKcXJjMDI5ZUF2a0dYaCsvd1BNUVlhbnhjRjcxc3NzbnlO?=
 =?utf-8?B?MnhOeWRFOXhycGZGR2JkOWo2bVd2b2NKcUZoYlZEcm1WYklRTmFBM3FUY0Ew?=
 =?utf-8?B?U3c9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f92367ae-a405-4d66-2071-08dd7cd3a315
X-MS-Exchange-CrossTenant-AuthSource: DB3PR0302MB8919.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Apr 2025 10:44:17.4250
 (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: q5iU1R8iZUGJI2dREsXznyZ//ZEIblVkUjFnLp68pdVttMZDJHzpItL5moKIgNK02gfRTVbjbA3667HgybhZvcBbeA/4kSjvExU2P8dum2A=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR03MB8009



On 16.04.25 04:03, Stefano Stabellini wrote:
> On Mon, 14 Apr 2025, Grygorii Strashko wrote:
>> From: Grygorii Strashko <grygorii_strashko@epam.com>
>>
>> The current code in generate_uboot_images() does not detect arm64 properly
>> and always generates ARM u-boot image. This causes Xen boot issues.
>>
>> Fix it by searching for "ARM64" for AArch64 binary detection.
>>
>> - mkimage -l xen.ub
>> Before:
>> Image Type:   ARM Linux Kernel Image (uncompressed)
>>
>> After:
>> Image Type:   AArch64 Linux Kernel Image (uncompressed)
>>
>> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
>> ---
>>   scripts/uboot-script-gen | 6 +++---
>>   1 file changed, 3 insertions(+), 3 deletions(-)
>>
>> diff --git a/scripts/uboot-script-gen b/scripts/uboot-script-gen
>> index a9f698f00fd1..c4d26caf5e0e 100755
>> --- a/scripts/uboot-script-gen
>> +++ b/scripts/uboot-script-gen
>> @@ -815,13 +815,13 @@ function linux_config()
>>   
>>   generate_uboot_images()
>>   {
>> -    local arch=$(file -L $XEN | grep "ARM")
>> +    local arch=$(file -L $XEN | grep -o "ARM64")
> 
> My file -L gives:
> 
> for arm32: ARM OpenFirmware [...]
> for arm64: Aarch64
> 
> So the ARM64 grep wouldn't work as intended. Is the version of `file'
> that you are using really printing ARM64?

Hm, yes.

	file -L xen
	xen: Linux kernel ARM64 boot executable Image, little-endian, 4K pages

	file -v
	file-5.41

u-boot boot command:
	 bootm 0x4EA00000 - 0x4EE00000


  If so, we can do:
> 
>    file -L $XEN | grep -E 'ARM64|Aarch64'

sure. I'll update.

> 
> 
>>       if test "$arch"
>>       then
>> -        arch=arm
>> -    else
>>           arch=arm64
>> +    else
>> +        arch=arm
>>       fi
>>   
>>       mkimage -A $arch -T kernel -C none -a $memaddr -e $memaddr -d $XEN "$XEN".ub
>> -- 
>> 2.34.1
>>

-- 
Best regards,
-grygorii


From xen-devel-bounces@lists.xenproject.org Wed Apr 16 10:44:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 10:44:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.955507.1349271 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u50Fx-0008U2-75; Wed, 16 Apr 2025 10:44:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 955507.1349271; Wed, 16 Apr 2025 10:44: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 1u50Fx-0008Tv-3s; Wed, 16 Apr 2025 10:44:37 +0000
Received: by outflank-mailman (input) for mailman id 955507;
 Wed, 16 Apr 2025 10:44: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=6Wc4=XC=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1u50Fv-0008AX-55
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 10:44:35 +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 c8ab88dd-1aaf-11f0-9eaf-5ba50f476ded;
 Wed, 16 Apr 2025 12:44:33 +0200 (CEST)
Received: by mail-ej1-x633.google.com with SMTP id
 a640c23a62f3a-ac7bd86f637so113106566b.1
 for <xen-devel@lists.xenproject.org>; Wed, 16 Apr 2025 03:44:34 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-64-225.play-internet.pl.
 [109.243.64.225]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-acb3cdeb945sm105911866b.60.2025.04.16.03.44.32
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 16 Apr 2025 03:44:32 -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: c8ab88dd-1aaf-11f0-9eaf-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1744800273; x=1745405073; darn=lists.xenproject.org;
        h=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=Yf5fGqqQW2KSpra+Xe2WS3mkPYEaHqVkXqmbMy6oOAw=;
        b=BcoigL+gikHqVCuRFiUI4JvM0RYs2MmwP3QpA0KrQADZEkLUVHzHQAE1llzs3FNNyG
         TmqRgQiEJqoYNT5j3Um0BM3YZTsVt71ltVqiP7TFEKqee4OFKEzvpP/ycwknRdTsEY9j
         hKqJ0I75U7f82kP6HvC9shCuEFaLcVsm4c8FEnYNtWKs5VJ8ApU3YZMIPaQRmvSCrnoX
         If2oLJKrfvxKM0E118ypvCPxM/EZnuNyjpFX7b8Rk/eBAtQiVoorM4cP3r5frLWZYkSA
         rWoyCT9nYSovWZDWyALd2wY59/waTKqKBYoA/Ma3A/0DXiqsjfZ10bBBAk/EuyZHzlzK
         npyQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744800273; x=1745405073;
        h=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=Yf5fGqqQW2KSpra+Xe2WS3mkPYEaHqVkXqmbMy6oOAw=;
        b=P7drOmX4nKenCnayxQYT+MZbpSE6wUGHS6thK9akspC/wzgtV8wfc5ZwjuMAefP/D0
         3owgL2KRcql41x58RVcYV3j2S0aWhFF3J9R8dbcG6wl00c8V7bRbaqlXzJUUEIR5v49D
         tEg1y7rUUfd9HXlX1nu/Nv7Sgw8Sitcp/zCmxPYZczByGWNyiOHMF3DBtrDnOg3E4PBe
         4lFwaNTrRgETpX63Ch0SKJq6IEPqN3dkGOhfF9XpuhyThIRpRwPSM3BpxVCdjX5M+Ka7
         Dfjq0tSGwHiUS0HnvBOsaFo+x49vfWFI3eVDIfdUDX1F2WXNZMnkBYG1g9qA3uCwu8o5
         U+JQ==
X-Forwarded-Encrypted: i=1; AJvYcCVsBv0or3GXGMxumfpN6xTCM2ZhxtYNBE6vYYXIdhiuiGGm2ETH/Kbvs4VxYnOsm1dwEHjOGanMArM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyqEoLrB9FKLU/87zL90Ctt4LTVBG/kRoR6w3E1QYonAe9/BZEb
	dA2SaaGDFAr44itTg1DiaN1HEIXepVdB0vKQQtHFNg9fQansumUb
X-Gm-Gg: ASbGnctYdB9eEwvnmhbG1xN6PExtGzvVxJ+DqUbACHcVWSMZkTl2ilMPfhY2Bpu+gd0
	TvacskOQjcnFvziec+EXsgzmNzR6deYuuybqYtZ+gb3EB6q6cVWcy8a7AKvXjuEXRlx/set71PJ
	/AJrXYuq4nWbL72oFwJhExKrIWHXOXobQx0Pw+cBRhsFuk0wKy0o9VFIwbge6tjqi4qzg12hCj1
	EiRbSj/ZYdQxlui6iwpSHz4STYj8YGMAxh/Ja1o4I6XOxJuCccsMqmiSyzX2lPavK00BriCelkS
	8kPP/5BHItzz8zERZVQVS4LtrBgDHY6KGCPvif2gnSVjDsCS5lQLxRPmgCOBTdIhxnYG2S/UoTD
	olBD4vERV10lvs+hr
X-Google-Smtp-Source: AGHT+IFKAEHXTdF42MuznV0H4bfI6Iy5j/NpBLTwyM8hVYTlOyHCWaMkFgKcwiGRZbxr2pOhx3IeRQ==
X-Received: by 2002:a17:907:9495:b0:ac1:ecb0:ca98 with SMTP id a640c23a62f3a-acb429434b2mr98335666b.26.1744800273101;
        Wed, 16 Apr 2025 03:44:33 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------J0EC1aZNiqfll1WqQ1c0czu7"
Message-ID: <91856640-1b82-4440-8a45-de56ffb57e71@gmail.com>
Date: Wed, 16 Apr 2025 12:44:32 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4] xen/riscv: Increase XEN_VIRT_SIZE
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <0815b65aa0b526b85c737f5923148b119cc4104f.1744639515.git.oleksii.kurochko@gmail.com>
 <6ea52f30-7aa4-494b-9719-9fdffc56e3c8@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <6ea52f30-7aa4-494b-9719-9fdffc56e3c8@suse.com>

This is a multi-part message in MIME format.
--------------J0EC1aZNiqfll1WqQ1c0czu7
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 4/15/25 12:07 PM, Jan Beulich wrote:
> On 14.04.2025 17:56, Oleksii Kurochko wrote:
>> --- a/xen/arch/riscv/mm.c
>> +++ b/xen/arch/riscv/mm.c
>> @@ -31,20 +31,30 @@ unsigned long __ro_after_init phys_offset; /* = load_start - XEN_VIRT_START */
>>   #define LOAD_TO_LINK(addr) ((unsigned long)(addr) - phys_offset)
>>   
>>   /*
>> - * It is expected that Xen won't be more then 2 MB.
>> + * It is expected that Xen won't be more then XEN_VIRT_SIZE.
>>    * The check in xen.lds.S guarantees that.
>> - * At least 3 page tables (in case of Sv39 ) are needed to cover 2 MB.
>> - * One for each page level table with PAGE_SIZE = 4 Kb.
>>    *
>> - * One L0 page table can cover 2 MB(512 entries of one page table * PAGE_SIZE).
>> + * Root page table is shared with the initial mapping and is declared
>> + * separately. (look at stage1_pgtbl_root)
>>    *
>> - * It might be needed one more page table in case when Xen load address
>> - * isn't 2 MB aligned.
>> + * An amount of page tables between root page table and L0 page table
>> + * (in the case of Sv39 it covers L1 table):
>> + *   (CONFIG_PAGING_LEVELS - 2) are needed for an identity mapping and
>> + *   the same amount are needed for Xen.
>>    *
>> - * CONFIG_PAGING_LEVELS page tables are needed for the identity mapping,
>> - * except that the root page table is shared with the initial mapping
>> + * An amount of L0 page tables:
>> + *   (512 entries of one L0 page table covers 2MB == 1<<XEN_PT_LEVEL_SHIFT(1))
>> + *   XEN_VIRT_SIZE >> XEN_PT_LEVEL_SHIFT(1) are needed for Xen and
>> + *   one L0 is needed for identity mapping.
>>    */
>> -#define PGTBL_INITIAL_COUNT ((CONFIG_PAGING_LEVELS - 1) * 2 + 1)
>> +#define PGTBL_INITIAL_COUNT ((CONFIG_PAGING_LEVELS - 2) * 2 + \
>> +                             (XEN_VIRT_SIZE >> XEN_PT_LEVEL_SHIFT(1)) + 1)
> I'm still struggling here. In the original expression, the +1 was to cover
> the root page table, wasn't it?

|+1| was added to cover the case where the Xen address is not 2MB-aligned.

For the root page table, we use a separate variable|stage1_pgtbl_root|.
Since the root page table is shared with the identity mapping, it is not
included in|PGTBL_INITIAL_COUNT|.

> By now subtracting 2 from
> CONFIG_PAGING_LEVELS, you reduce the overall result by 2. One of these two
> is accounted for by the Xen size calculation now. Where's the other one?
> Or are you suggesting that for some (not obvious to me) reason we
> previously calculated one too many?

My calculation was as follows:
  *[a]* One shared root page table is needed for both the identity mapping and Xen itself.
  *[b]* |(CONFIG_PAGING_LEVELS - 2)| page tables are needed for identity mapping and Xen.
      The|-2| accounts for:
      - No extra root page table (since we use a separate variable for it).
      - No extra L0 page table (as those will be calculated separately in the next step).
   *[c]* We also need|(XEN_VIRT_SIZE >> XEN_PT_LEVEL_SHIFT(1))| L0s to cover Xen itself,
       plus one additional L0 page table for the identity mapping.

It might be better to calculate the total in the following way:
  ((CONFIG_PAGING_LEVELS - 1) * 2 + (XEN_VIRT_SIZE >> XEN_PT_LEVEL_SHIFT(1)) - 1)

Here’s the reasoning:
   -|(CONFIG_PAGING_LEVELS - 1)| excludes the root page table (provided separately via
|||stage1_pgtbl_root|), but we add back:
       - One L0 for Xen,
       - One L0 for the identity mapping.
Since the L0 used for identity mapping is now implicitly part of|(CONFIG_PAGING_LEVELS - 1)|,
we can drop the|+1| from|PGTBL_INITIAL_COUNT|.
Additionally, we need to subtract|1|, because changing from|(CONFIG_PAGING_LEVELS - 2)| to
|(CONFIG_PAGING_LEVELS - 1)| adds one extra L0 for Xen itself too.

Does it make sense?

>
>> +/* Changing these checks can require an update of PGTBL_INITIAL_COUNT */
>> +_Static_assert(IS_ALIGNED(XEN_VIRT_START, GB(1)),
>> +               "XEN_VIRT_START should be 1gb aligned");
>> +_Static_assert(IS_ALIGNED(XEN_VIRT_SIZE, MB(2)),
>> +               "XEN_VIRT_SIZE should be 2mb aligned");
> Why would you need to open-code BUILD_BUG_ON() here? See the various
> build_assertions() functions we've accumulated.

I missed build_assertions() functions. I will do in a similar way.

Thanks.

~ Oleksii

--------------J0EC1aZNiqfll1WqQ1c0czu7
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 4/15/25 12:07 PM, Jan Beulich wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:6ea52f30-7aa4-494b-9719-9fdffc56e3c8@suse.com">
      <pre wrap="" class="moz-quote-pre">On 14.04.2025 17:56, Oleksii Kurochko wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">--- a/xen/arch/riscv/mm.c
+++ b/xen/arch/riscv/mm.c
@@ -31,20 +31,30 @@ unsigned long __ro_after_init phys_offset; /* = load_start - XEN_VIRT_START */
 #define LOAD_TO_LINK(addr) ((unsigned long)(addr) - phys_offset)
 
 /*
- * It is expected that Xen won't be more then 2 MB.
+ * It is expected that Xen won't be more then XEN_VIRT_SIZE.
  * The check in xen.lds.S guarantees that.
- * At least 3 page tables (in case of Sv39 ) are needed to cover 2 MB.
- * One for each page level table with PAGE_SIZE = 4 Kb.
  *
- * One L0 page table can cover 2 MB(512 entries of one page table * PAGE_SIZE).
+ * Root page table is shared with the initial mapping and is declared
+ * separately. (look at stage1_pgtbl_root)
  *
- * It might be needed one more page table in case when Xen load address
- * isn't 2 MB aligned.
+ * An amount of page tables between root page table and L0 page table
+ * (in the case of Sv39 it covers L1 table):
+ *   (CONFIG_PAGING_LEVELS - 2) are needed for an identity mapping and
+ *   the same amount are needed for Xen.
  *
- * CONFIG_PAGING_LEVELS page tables are needed for the identity mapping,
- * except that the root page table is shared with the initial mapping
+ * An amount of L0 page tables:
+ *   (512 entries of one L0 page table covers 2MB == 1&lt;&lt;XEN_PT_LEVEL_SHIFT(1))
+ *   XEN_VIRT_SIZE &gt;&gt; XEN_PT_LEVEL_SHIFT(1) are needed for Xen and
+ *   one L0 is needed for identity mapping.
  */
-#define PGTBL_INITIAL_COUNT ((CONFIG_PAGING_LEVELS - 1) * 2 + 1)
+#define PGTBL_INITIAL_COUNT ((CONFIG_PAGING_LEVELS - 2) * 2 + \
+                             (XEN_VIRT_SIZE &gt;&gt; XEN_PT_LEVEL_SHIFT(1)) + 1)
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
I'm still struggling here. In the original expression, the +1 was to cover
the root page table, wasn't it? </pre>
    </blockquote>
    <pre><code data-start="65" data-end="69">+1</code> was added to cover the case where the Xen address is not 2MB-aligned.

For the root page table, we use a separate variable <code
    data-start="199" data-end="218">stage1_pgtbl_root</code>.
Since the root page table is shared with the identity mapping, it is not
included in <code data-start="305" data-end="326">PGTBL_INITIAL_COUNT</code>.

</pre>
    <blockquote type="cite"
      cite="mid:6ea52f30-7aa4-494b-9719-9fdffc56e3c8@suse.com">
      <pre wrap="" class="moz-quote-pre">By now subtracting 2 from
CONFIG_PAGING_LEVELS, you reduce the overall result by 2. One of these two
is accounted for by the Xen size calculation now. Where's the other one?
Or are you suggesting that for some (not obvious to me) reason we
previously calculated one too many?</pre>
    </blockquote>
    <pre data-start="143" data-end="173" class="">My calculation was as follows:
 <strong data-start="175" data-end="182">[a]</strong> One shared root page table is needed for both the identity mapping and Xen itself.
 <strong data-start="267" data-end="274">[b]</strong> <code
    data-start="275" data-end="303">(CONFIG_PAGING_LEVELS - 2)</code> page tables are needed for identity mapping and Xen.
     The <code data-start="361" data-end="365">-2</code> accounts for:
     - No extra root page table (since we use a separate variable for it).
     - No extra L0 page table (as those will be calculated separately in the next step).
  <strong data-start="535" data-end="542">[c]</strong> We also need <code
    data-start="556" data-end="598">(XEN_VIRT_SIZE &gt;&gt; XEN_PT_LEVEL_SHIFT(1))</code> L0s to cover Xen itself,
      plus one additional L0 page table for the identity mapping.</pre>
    <pre data-start="685" data-end="748" class="">It might be better to calculate the total in the following way:
 ((CONFIG_PAGING_LEVELS - 1) * 2 + (XEN_VIRT_SIZE &gt;&gt; XEN_PT_LEVEL_SHIFT(1)) - 1)

Here’s the reasoning:
  - <code data-start="865" data-end="893">(CONFIG_PAGING_LEVELS - 1)</code> excludes the root page table (provided separately via
<code>    </code><code data-start="948" data-end="967">stage1_pgtbl_root</code>), but we add back:
      - One L0 for Xen,
      - One L0 for the identity mapping.
Since the L0 used for identity mapping is now implicitly part of <code
    data-start="1114" data-end="1142">(CONFIG_PAGING_LEVELS - 1)</code>,
we can drop the <code data-start="1160" data-end="1164">+1</code> from <code
    data-start="1170" data-end="1191">PGTBL_INITIAL_COUNT</code>.
Additionally, we need to subtract <code data-start="1228"
    data-end="1231">1</code>, because changing from <code
    data-start="1255" data-end="1283">(CONFIG_PAGING_LEVELS - 2)</code> to
<code data-start="1287" data-end="1315">(CONFIG_PAGING_LEVELS - 1)</code> adds one extra L0 for Xen itself too.

Does it make sense?

</pre>
    <blockquote type="cite"
      cite="mid:6ea52f30-7aa4-494b-9719-9fdffc56e3c8@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+/* Changing these checks can require an update of PGTBL_INITIAL_COUNT */
+_Static_assert(IS_ALIGNED(XEN_VIRT_START, GB(1)),
+               "XEN_VIRT_START should be 1gb aligned");
+_Static_assert(IS_ALIGNED(XEN_VIRT_SIZE, MB(2)),
+               "XEN_VIRT_SIZE should be 2mb aligned");
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Why would you need to open-code BUILD_BUG_ON() here? See the various
build_assertions() functions we've accumulated.</pre>
    </blockquote>
    <pre>I missed build_assertions() functions. I will do in a similar way.

Thanks.

~ Oleksii
</pre>
  </body>
</html>

--------------J0EC1aZNiqfll1WqQ1c0czu7--


From xen-devel-bounces@lists.xenproject.org Wed Apr 16 10:50:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 10:50:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.955531.1349280 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u50M0-0001uv-Vy; Wed, 16 Apr 2025 10:50:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 955531.1349280; Wed, 16 Apr 2025 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 1u50M0-0001uo-T7; Wed, 16 Apr 2025 10:50:52 +0000
Received: by outflank-mailman (input) for mailman id 955531;
 Wed, 16 Apr 2025 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=PIlj=XC=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1u50Lz-0001tl-Et
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 10:50:51 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on20607.outbound.protection.outlook.com
 [2a01:111:f403:2415::607])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a7a94cd4-1ab0-11f0-9ffb-bf95429c2676;
 Wed, 16 Apr 2025 12:50:48 +0200 (CEST)
Received: from BN9PR12MB5273.namprd12.prod.outlook.com (2603:10b6:408:11e::22)
 by DS7PR12MB5741.namprd12.prod.outlook.com (2603:10b6:8:70::7) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.8632.33; Wed, 16 Apr 2025 10:50:45 +0000
Received: from BN9PR12MB5273.namprd12.prod.outlook.com
 ([fe80::cf66:58ab:47be:4b13]) by BN9PR12MB5273.namprd12.prod.outlook.com
 ([fe80::cf66:58ab:47be:4b13%5]) with mapi id 15.20.8632.036; Wed, 16 Apr 2025
 10:50: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: a7a94cd4-1ab0-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=OiZxqZKx8rp0k5IvShL4lwVGd8dhyljAUdIcfDN1mIIUrqcIX9mYU+21n6GqsR4vyVI04U8h5H66fiUmyp4WgM6j/7K+xt1VWhlNRLHBdJrllLDM1rHScHW9TmhM+1Ns/jGllgSplKhF+5tPC62dpKYp09SA5c2Cy/8dQxjz0ot5I4eZQicdMw8r/TOOquACeVeaP6ZRDnb2ZuMZP/LW2bI5Cydv1EEE4TCaT1yAAsP3XNXsl2bYY1Rxl4UVYilSgqdZ2q4Z8bgp1Cam9BaYjsrxKTPVoGlYr+X+43OetraEWZeABYNGZndWokENWovC8zzkZPX9q9aCiOcDwzuZyw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=heQNtd111nig9aTk/NYEc+rG0PoT6+pO/VFw1vMtPoI=;
 b=dYixT+dW3NvmS9U/rZ4IgRpyflc2kk6Wjg68ghXgbERIsw/efEUZKj0xbPnRUf7x5uCvVgM48QUU5vOQJAzwjJ/400G3ZUSWLI0kd2MLYRVcZQZGjCetcec27W/oPjr3eHmlMIFZBLDavAzf0kugykmdiBD9rUQxwjtMoyOzwI+TfHg3K7BkVbFypl1hM19TZpnEf0+aeFE2RvYMSVhvool68fzQybTwwCmmnGim703wpQ2eiYNt7UdFcDZWFIaoGtr4Ne0LP1gfaFHjyi9KhQ6KCg+CMUMNSyowl1U8r4snWte5SUzJyNVba1DZWt+sjjYeTRUI3OiO53RbUIQrqw==
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=heQNtd111nig9aTk/NYEc+rG0PoT6+pO/VFw1vMtPoI=;
 b=IfT9bmHEfqcuf2pAGwFakhKHps5tIkA/MAJhPSqH+RESZ7mIdOW2gGmWtG0xFxRCymsazjBvXZuMou8BhXXuxc7k/Vz1wI8fXbfoIpzDsCZ83cXw6JrpKa5uev5ufWcZkLcO5EQTTqf97EXIcKlRAQGYlmFPOT5y8Q0ONBusR+k=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <d2b51729-e5dd-4325-9275-615ab1cbb68d@amd.com>
Date: Wed, 16 Apr 2025 12:50:42 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 3/7] arm/mpu: Introduce utility functions for the pr_t
 type
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>
References: <20250411145655.140667-1-luca.fancellu@arm.com>
 <20250411145655.140667-4-luca.fancellu@arm.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <20250411145655.140667-4-luca.fancellu@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR2P281CA0170.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:99::19) To BN9PR12MB5273.namprd12.prod.outlook.com
 (2603:10b6:408:11e::22)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN9PR12MB5273:EE_|DS7PR12MB5741:EE_
X-MS-Office365-Filtering-Correlation-Id: 9755ae38-ab8e-461d-7d90-08dd7cd48a36
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?a28xbVFVbDRqbUZ0SUU3bkNVNmxtMkdwMzFyUGN3T0RnbEUzNWdFZFpEM01N?=
 =?utf-8?B?M2pqdkFNdm5XVjZoUnRvZmVnNTV2TkU2Y1lBeGlBOXZHV01hU0MrbWhSTDhv?=
 =?utf-8?B?UTRRRUh0V2RidWFveWZGSHI2aUN4dXNMQU03QTlCNWRHczFqczAveXJSbjA4?=
 =?utf-8?B?LzNZSjZYTVkwb0ZBaGljTERyeXdkTU00UHFnU0NyWjFTOVRVT09RWmkyWE1Q?=
 =?utf-8?B?K2hsK2Q4T1hOUXJ1SEZWQSsvc2hPSEZZVE85RGw2Q2lsZWxqbk5kN0kyUzRp?=
 =?utf-8?B?bWVpWVRJTit6YnArYTk0bDBya0M0Y0tkNUMveGFsUElMZnN2ZHJuTDVBWDBD?=
 =?utf-8?B?bVQzRFNlM2FSbjFFR1d0NFBlVFMrVy8rVzhwSWZWbHpFdmo3S1prMWJFYThT?=
 =?utf-8?B?d2tzd3BNTkJzaFB4WGVnUWRkUEFVclViMzVWNnplZHNkMVZpVmlYT0g3U2I4?=
 =?utf-8?B?Q0dWRk9sckc1dit4VHAvVGdCYkFUa0IrS0Z3Z3ViYWxucVRjbW1TSStnOTJi?=
 =?utf-8?B?ZDVBd2Z3ZGI0WHgvaldVZVNKb3V5dy9nYitpM3ZSZWdnRGVXUGVaWXVVdHJw?=
 =?utf-8?B?NDAwTXJmdS91VHF5YjB4UGtlQWQ4MzdxU294VmJRZGVCdDRHMUpob2ppSTQ4?=
 =?utf-8?B?Z0xTWTdDbnk1Vkc4OHN0QVYrMGNhMCtGNG52c2p3bkUvQkl4aTR3VVEzK3lh?=
 =?utf-8?B?dEIrNmtmV3JwOUlLUVRJdFVMWUtGY09HOVhGOW5tWHJmczlVQWdJdW5UZUtk?=
 =?utf-8?B?ckpJM2YzRmE0ZEpZZkVEazNxWjYyWUJwajRYTHZxOHI2QnloWkhxUFJ0RjJl?=
 =?utf-8?B?QmJMWWpIUG0xNXZUS1BRTmF0U1pOejY1dVB1YXJSM05xd2hUUXJBcjR4UzRa?=
 =?utf-8?B?S25wWnB1b1o1L0dwcXdxY3Q5eGN1TklKazlocVh0djdZeDZFUnpzOWhYNmNH?=
 =?utf-8?B?NTdtcW51N0pkNnlaOFE0MTEreHY2M2JrcE1xWVptcmtIUDlleE9NT1pTMVhR?=
 =?utf-8?B?UHN4WmdoSmN6Mmc4T2dyME90ZkM1VzR5RDB0a2NnNzcvQmZSSWJzeDhFWUZk?=
 =?utf-8?B?azN3eFpnUkpqaTliRG8relpXQjlrSFJGSlQzQ295ellDLzNSY09wRFl3N3RG?=
 =?utf-8?B?ZDhqNGNKbnRFQklPSEpHdDZWaThwa0E4UWhPanVyWjBzNXNoWmVzeGwwYnZU?=
 =?utf-8?B?WDlDNEE1YjZRSysvVG1SWnpVZkVQbGhGaWsrK2F0RXlIcnRqWnI3cW9rdk5m?=
 =?utf-8?B?RWp0ckZMSXp3UDZVbjdma01IblJjMTNodGNDVU91NUVWM1VDV2huS1FVWmZy?=
 =?utf-8?B?aFk1RFA0eTAwY2planRCODhqU2VIVlRNU29wTkhmQVhnWlhnNEpLbXBJZ0hV?=
 =?utf-8?B?aWRteHN4dTlTMHFPMWlhWFMxZlVTT0NQL1FwMnlrRHB5b1ZKdnQ5S1EyTHVJ?=
 =?utf-8?B?aERhbGZZdWlFL2lBeUZIdC9GZjcwMUpLNk5KbjNmcnRxL2tsRGxtNmJ1eGdR?=
 =?utf-8?B?Mk1Tam5aUXNZVENSRTdmZmV0M1UvSCsyYmhSWjNBdWNUOFo4Q21xTGVyTkZz?=
 =?utf-8?B?UFlFemkwR0J5bTNzMllOQmhqRmQwemdEaHcvMURTNDVkMFA2VytHYlYxTkV5?=
 =?utf-8?B?MmszdWltNmI2OVBlSVJIS3FmamE3N2hTL2NMZkdQMUNVYkdaa0t5VDJxR3V4?=
 =?utf-8?B?dmJHU1h2ZVBDSFZ5TmtZeTNFZktjWHUreCtaL0IrbG5rbzZkOFdmbGxUbVRC?=
 =?utf-8?B?aGxGK2QwazdtSGl2emZiaTZyUWJjQjJrTkgxaG5EZnZnUU9PL0lhaUFrNXpL?=
 =?utf-8?B?K2V3NmkyRUVwSWtYOEFFazI2S2w0dlRGZFpHeTY0TnNoUHpiZGhrVWJsMkFD?=
 =?utf-8?B?SkE3bEFpY2tmekZBcUd1OUluYnZLNnJSOEo3OC9sTEpVdTltNm91RUVuK3h4?=
 =?utf-8?Q?rLGIEyNhl4I=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN9PR12MB5273.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?bUt5MGRUY3B0MkhCQVZTMGpmTnB2cEthbGxpcEFIL1l6TjBBNjNpUmVwNHl1?=
 =?utf-8?B?TzlpcnF4K0VzT2N5TjJOd2QrMGJmc2FFZUhYT2ZENUJrLzJvWjlpNW5TNGtH?=
 =?utf-8?B?c2VOS2pqallvR01VYXpkblJRMk4vWXdjQmtwSjhaeWZnUlpRdTgzWjlac2Yy?=
 =?utf-8?B?VU5SREhhK2djcVFwVGp4d2hXcFRmNGppZThnSTZwdFZhdzBZcGt4QzlwQ1I2?=
 =?utf-8?B?SHhqcEhqSnc5a2ZTcUJiUWUrQ3YwclZNRitVUnVIVjR2c0ZqUzkzREtYS3NI?=
 =?utf-8?B?ZGNJc0s2bWlHRVhvOC9qaHdacW4vUHhjcmx1NnRUVldiVFdtY3Qvc1FmUzZn?=
 =?utf-8?B?YitWNVd2a0JNUDBHZXZTMTJEbjRBQjlsQnhqUkJPOEpEV2J4NU94L0pzVi92?=
 =?utf-8?B?c0xvWitxUldoYWFTMEo0ODNDOG9sMXJ2aDZTVFBYckMzeFpJQ3l4WERXekZ5?=
 =?utf-8?B?SkxVeTBrbzFmN0xRMWZoZnhhcWs5aklvQjlqL085anFMOHNSZng4a3h4MnYz?=
 =?utf-8?B?QThwUmZ3QnlHbGJER1BhQ1N1dkhxbTY5cmVSNTltSloxTDFHcm9MdHNnWDFk?=
 =?utf-8?B?cFRZRjM5ZHliU09TMDFyQ2x5dVBnM21NSmpEY1JLZzVyd1lIRit3ZDB6a3VL?=
 =?utf-8?B?Q0FaYlhIQkxtN1prSEI3RkZJQVRBTitZVmNyNlYzZWRkS0hoclFKTDhWeHVQ?=
 =?utf-8?B?OUg3SDgwajRJdHBrL09HNWZ3NFlhMGt4WHBYOEZRbzRNdnpEbUNOSEV5UXR6?=
 =?utf-8?B?bEVlR3k3eVR5SldqbnArOXNkdFA3b2krR3psRVJUenhUaFQwbG5jY1ZHTG5j?=
 =?utf-8?B?cjNZK1ZjeGljbmljVm9vcEtrNHl1MHF1Ym5DWnBkMDI4RjdyN09zalZLeWVR?=
 =?utf-8?B?eGdoaWlGeVBIbVJHV0hVZGl1UXNScm4wZ2t4YitpNERYQkd0NEN0V2EwamxH?=
 =?utf-8?B?emhlRTZxRTRmTzEyU2pXSjM3aVpiL0ExUWxXR3I0WHQyNE9HWGRpRkpWdFk5?=
 =?utf-8?B?M3RNL1c2ZklUZFJmK014MmtBMmtuSk81WGFobnAxQTV6UUcybmVzZjNSdlI3?=
 =?utf-8?B?RXh3Y0lEQW11NW1rWFJUcnVWVGczRWE0Z1ExUGVmQ0N2U2FTaWNRTmZQVVZH?=
 =?utf-8?B?clRIQjUwazYzMHJSYWVBbHlEYUk1bzM0L0hTem1KTjFNeTZrMW0xZUdEWnNM?=
 =?utf-8?B?aGZMdTI2SkxtNndqK0M3MmdlYjdpd3NzWCs1RW1seitGbjNtQWZVZVlSNER4?=
 =?utf-8?B?RDhNaVU2MlVBZ1JBVk1BOWhOSXJtS2lVMTlPZVNraXlTWXNjTlBwcTBqbzQ5?=
 =?utf-8?B?T2Q4d1FEL05jbEJpMWxJYVg4eWt6bEluQUtxRWJrYzMvNWNBL004SnFtOGpG?=
 =?utf-8?B?VlkvclpsbUExb25Rdjgwd0s4ZDFGTmRQNjVLNURWYzBod2UzZlNZa3JxVnF3?=
 =?utf-8?B?MlpwcnFxTEtrTWlCY0tHdEMyemtDRnYxN2N6RlVsbUdJbkl6bUp2VzRqVG5n?=
 =?utf-8?B?N1ovcEdod2RPSUZWb1Y3c0toOUxkVWIwNnh1Y1ZpN0l1SjJ1dWpYbHFRNk5m?=
 =?utf-8?B?NmZYSExPbTdrSXY5dE04eTZONno4dGlsOGd5Wmp3RDhIc3BzcUd5Mm1QRFRH?=
 =?utf-8?B?VkxCa3BBOTY5aFdaVzJEUEE5VWhOZkgxOFp0WlZNYnp4NEI2MGo5aVd3eWNP?=
 =?utf-8?B?WW9OUFdBbElFOU40QXJnTUQrWHJJblh5cWZkU1BkczdQNlZVeXBEcWFoRHh4?=
 =?utf-8?B?NU5YV0Q5cFJHVlZzT1poQlZPNC9PNzZuc0E5L01wV095aEJxY0RDK2hYc3g5?=
 =?utf-8?B?WE5mV1pKNVJJZnhJT2hrWmZNS3VnSzVVanh3S3BFd2loamExMm9udnFIQk0y?=
 =?utf-8?B?bUNxbzRZNU1FeFZGMk40Z2JwNGZIYWZlYkh0YmwwTWwzeGpZZ3ZjSG83ZlM5?=
 =?utf-8?B?cVQrYi96MHRUNXVSdmV3L1ZEcWVHcmM1S01yeWRjYndtdnQ0bEp5NDVLWHFH?=
 =?utf-8?B?cElheG94c1ZCczd4UmFIcThwL0xEajZJNE9vcTd0V1VVUWY5QUhLTGxtd2gy?=
 =?utf-8?B?SE5qdHFKWUxWQk5pT3RwOVNTMCs0VnlqbGM3aTFXaEQrSGVoQ1hZS05aVkxp?=
 =?utf-8?Q?nKlUxl4aupIUjuADIeQNhimwL?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9755ae38-ab8e-461d-7d90-08dd7cd48a36
X-MS-Exchange-CrossTenant-AuthSource: BN9PR12MB5273.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Apr 2025 10:50:45.1936
 (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: C0e0J2enB5XoflUB4ebMvXV3KfUrnTW5NCIFzgEDaRthVq3X6xZepFBPJVe0g+i4
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB5741



On 11/04/2025 16:56, Luca Fancellu wrote:
> Introduce few utility function to manipulate and handle the
> pr_t type.
> 
> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
> ---
>  xen/arch/arm/include/asm/mpu.h | 40 ++++++++++++++++++++++++++++++++++
>  1 file changed, 40 insertions(+)
> 
> diff --git a/xen/arch/arm/include/asm/mpu.h b/xen/arch/arm/include/asm/mpu.h
> index 59ff22c804c1..6971507457fb 100644
> --- a/xen/arch/arm/include/asm/mpu.h
> +++ b/xen/arch/arm/include/asm/mpu.h
> @@ -20,6 +20,46 @@
>  #define NUM_MPU_REGIONS_MASK    (NUM_MPU_REGIONS - 1)
>  #define MAX_MPU_REGIONS         NUM_MPU_REGIONS_MASK
>  
> +#ifndef __ASSEMBLY__
> +
> +/* Set base address of MPU protection region(pr_t). */
What's the use of (pr_t) in this comment? pr_t is a data type. If at all, it
would want to be ...region @pr but I think you can skip it.

> +static inline void pr_set_base(pr_t *pr, paddr_t base)
> +{
> +    pr->prbar.reg.base = (base >> MPU_REGION_SHIFT);
Looking at pr_t definition, base/limit is 46 bits wide. However the spec says
that last 4bits are reserved (i.e. you should not write to them) unless FEAT_LPA
is implemented. What's our plan here?

> +}
> +
> +/* Set limit address of MPU protection region(pr_t). */
> +static inline void pr_set_limit(pr_t *pr, paddr_t limit)
> +{
> +    pr->prlar.reg.limit = ((limit - 1) >> MPU_REGION_SHIFT);
Why -1? AFAIR these registers take inclusive addresses, so is it because you
want caller to pass limit as exclusive and you convert it to inclusive? I think
it's quite error prone.


~Michal



From xen-devel-bounces@lists.xenproject.org Wed Apr 16 10:52:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 10:52:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.955542.1349290 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u50Np-00037n-9h; Wed, 16 Apr 2025 10:52:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 955542.1349290; Wed, 16 Apr 2025 10: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 1u50Np-00037g-7A; Wed, 16 Apr 2025 10:52:45 +0000
Received: by outflank-mailman (input) for mailman id 955542;
 Wed, 16 Apr 2025 10:52: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 1u50No-00037Y-A6
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 10:52: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 1u50Nn-001XpC-2E;
 Wed, 16 Apr 2025 10:52:43 +0000
Received: from [143.198.24.140] (helo=[100.81.22.8])
 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 1u50Nn-0008Nx-0X;
 Wed, 16 Apr 2025 10:52: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=D/IEy4yh5dVjMju6xyGOnj6zhFQJ+YuK7p3dR8BLgLA=; b=fR7vGl1sZ0qDBiKDWDodNrPUvz
	iMieY/6KLqCbMg00/qPRqlKjUozjkwI7QdzrtgbLnBcsLS0IZUJiCU/CVi7nu0iO5pQICaBokF7Nf
	NR4m2VdQxctNX7H7gFMR1vQJECDTUpIH6/bhGvfBssz+pEX6qIkbqvfjPNqr0UJFZgek=;
Message-ID: <73766cd2-e157-4fff-943f-91e71fa6b01d@xen.org>
Date: Wed, 16 Apr 2025 19:52:37 +0900
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v9 8/8] xen/arm: Map ITS doorbell register to IOMMU page
 tables
Content-Language: en-GB
To: Mykyta Poturai <Mykyta_Poturai@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Rahul Singh <rahul.singh@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>,
 Stewart Hildebrand <stewart.hildebrand@amd.com>
References: <cover.1741958647.git.mykyta_poturai@epam.com>
 <e5072a66707b70892f60bb5e0757ae3f74c2d601.1741958647.git.mykyta_poturai@epam.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <e5072a66707b70892f60bb5e0757ae3f74c2d601.1741958647.git.mykyta_poturai@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Mykyta,

On 14/03/2025 22:34, Mykyta Poturai wrote:
> From: Rahul Singh <rahul.singh@arm.com>
> 
> When ITS is enabled and PCI devices that are behind an SMMU generate an
> MSI interrupt, SMMU fault will be observed as there is currently no
> mapping in p2m table for the ITS translation register (GITS_TRANSLATER).
> 
> A mapping is required in the iommu page tables so that the device can
> generate the MSI interrupt writing to the GITS_TRANSLATER register.
> 
> The GITS_TRANSLATER register is a 32-bit register, and there is nothing
> else in a page containing it, so map that page.
> 
> Signed-off-by: Rahul Singh <rahul.singh@arm.com>
> Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
> Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
> ---
> This patch was originally picked up from [1], and commit description
> loosely borrowed from [2].
> 
> Example SMMUv3 fault (qemu-system-aarch64 virt model), ITS base 0x8080000:
> 
> (XEN) SMMUv3: /smmuv3@9050000: event 0x10 received:
> (XEN) SMMUv3: /smmuv3@9050000:  0x0000000800000010
> (XEN) SMMUv3: /smmuv3@9050000:  0x0000008000000000
> (XEN) SMMUv3: /smmuv3@9050000:  0x0000000008090040
> (XEN) SMMUv3: /smmuv3@9050000:  0x0000000000000000
> 
> Example SMMUv2 fault (AMD/Xilinx Versal), ITS base 0xf9020000:
> 
> (XEN) smmu: /axi/smmu@fd800000: Unhandled context fault: fsr=0x402, iova=0xf9030040, fsynr=0x12, cb=0
> 
> v8->v9:
> * no changes
> 
> v7->v8:
> * no changes
> 
> v6->v7:
> * add tlb flush after mapping
> * style: update formatting
> * revert back to printk with XENLOG_G_ERR
> 
> v5->v6:
> * switch to iommu_map() interface
> * fix page_count argument
> * style fixup
> * use gprintk instead of printk
> * add my Signed-off-by
> * move to vgic_v3_its_init_virtual()
> 
> v4->v5:
> * new patch
> 
> [1] https://lists.xenproject.org/archives/html/xen-devel/2023-07/msg00483.html
> [2] https://gitlab.com/xen-project/people/bmarquis/xen-arm-poc/-/commit/6232a0d53377009bb7fbc3c3ab81d0153734be6b
> ---
>   xen/arch/arm/vgic-v3-its.c | 20 ++++++++++++++++++++
>   1 file changed, 20 insertions(+)
> 
> diff --git a/xen/arch/arm/vgic-v3-its.c b/xen/arch/arm/vgic-v3-its.c
> index c65c1dbf52..376254f206 100644
> --- a/xen/arch/arm/vgic-v3-its.c
> +++ b/xen/arch/arm/vgic-v3-its.c
> @@ -1478,6 +1478,26 @@ static int vgic_v3_its_init_virtual(struct domain *d, paddr_t guest_addr,
>   
>       register_mmio_handler(d, &vgic_its_mmio_handler, guest_addr, SZ_64K, its);
>   
> +    if ( is_iommu_enabled(its->d) )
> +    {
> +        mfn_t mfn = maddr_to_mfn(its->doorbell_address);
> +        unsigned int flush_flags = 0;
> +        int ret = iommu_map(its->d, _dfn(mfn_x(mfn)), mfn, 1, IOMMUF_writable,
> +                            &flush_flags);

While looking at your patches for the guest vITS support. I noticed this 
line is not updated for domU. Regardless of the one vs many vITS 
discussion, I don't think this wants to be mapped 1:1. Instead, you want 
to map the guest doorbell page to the host doorbell page.

The flush would need to be updated accordingly.

Cheers,

> +
> +        if ( ret < 0 )
> +        {
> +            printk(XENLOG_G_ERR
> +                    "GICv3: Map ITS translation register for %pd failed.\n",
> +                    its->d);
> +            return ret;
> +        }
> +
> +        ret = iommu_iotlb_flush(its->d, _dfn(mfn_x(mfn)), 1, flush_flags);
> +        if ( ret < 0 )
> +            return ret;
> +    }
> +
>       /* Register the virtual ITS to be able to clean it up later. */
>       list_add_tail(&its->vits_list, &d->arch.vgic.vits_list);
>   

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Wed Apr 16 11:40:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 11:40:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.955703.1349306 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u518D-0003nX-MM; Wed, 16 Apr 2025 11:40:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 955703.1349306; Wed, 16 Apr 2025 11:40: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 1u518D-0003nQ-JJ; Wed, 16 Apr 2025 11:40:41 +0000
Received: by outflank-mailman (input) for mailman id 955703;
 Wed, 16 Apr 2025 11:40: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=yQHX=XC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u518C-0003kN-20
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 11:40:40 +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 9dfc8398-1ab7-11f0-9eaf-5ba50f476ded;
 Wed, 16 Apr 2025 13:40:38 +0200 (CEST)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-43cf05f0c3eso47706765e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 16 Apr 2025 04:40:38 -0700 (PDT)
Received: from [10.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-4405b52b6a4sm18653685e9.31.2025.04.16.04.40.36
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 16 Apr 2025 04:40:37 -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: 9dfc8398-1ab7-11f0-9eaf-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744803637; x=1745408437; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=uEw35/AzWCtJIgcX5ECnhT3ZrxDw77Fx4PIKAmy7xSk=;
        b=TssXW6wJgqoAP4IIdY9hw0gSSm218gj60PrRSUT5CmK2LLAanVk325Prdc/YmapUOO
         jw5xSSd4FsUZpDGFaPkyyBbHwqmyRf7U3Kfrkh62gI8PlCh4U/4MmlCHPF0xTsWUjRqU
         lfqkZmBsI9/DfTRJo9UZKaqBP3H8ZaqgqaXWXo2IrHEwKyJbcXSL8cWTsGelcpgawZxl
         iE1FUHHURKYOczAZWITXKdRKJx/o6B6C7pVZCHm6pTFw600QZrGU2pmu9fQKPdPmVceS
         85ir18lDVyGzCTu3nDUroLlzCrKpe6EH8zhtPx5WCHnO4Mbt/cPKCUZ/hE23PowBk+go
         GzUg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744803637; x=1745408437;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=uEw35/AzWCtJIgcX5ECnhT3ZrxDw77Fx4PIKAmy7xSk=;
        b=jjz7pdh7wnbEav4HtnTpUDck8WIGrWozGaW4YBkU6iMnfOHqeLNTjnOT4zohRoVpiQ
         aAJatN+AZnd+qmRZTwpwLQ8DGSzYnU48ECPH9IMPB6e7/0ySpwpqM2byuJI6yAt6oysU
         5b3E3eFU8fLoUBlq2ORdEd8S2OJ/+lch4/AQntpVNh1J8OlBW8UtSMJJSplKxptccVdn
         P/0bGTmdmIUlVWwWl0nHTjDpS7RCh0ExQ3K5mta6GOBaenJasw0oT5Gfn4fi9BWL/XLG
         fhZmciV2ifB5qPiavRi7m4NiACxLILEyCYp3hM7rj7cylrolacoFTxrjecX+urXpwb4a
         6xCw==
X-Forwarded-Encrypted: i=1; AJvYcCWut2ZWBE0Hj7dbDNV+KKgL8nHqmfSZBHQZk23RSv4MGoOcjUh5reE5vTsRVQqh/iiTIgiJOM82Bys=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwkED3Oe7QN/N6f0n5dSiJ4iIXi0VKTftE1sfEH40hJII7k2F/F
	8XHyQp8uwfkijt/qaDIMCNZRgBteukdXsx+Pw+g4eyp/lGqayLdioygKIeN0Sg==
X-Gm-Gg: ASbGncs+r5gU7gheXqt4dKmKqk1n3K057W9A8cne6f4pq6yXJcLgvFwx4D35ZqkRH6b
	zmn8vO/K4C2Rb19b64VlfDy8ux3XhMHFUvpaqOx6q/Eb02eqLn8FcMpYjJ3e4XabEFXIIGCO87e
	3u09bPNSvQML3fYzESia5epM0Gq7ED+mQPOS++5rfyk8wGT6PSsggDUSpck0S7M2oT0+hi4nDA0
	ZYHW3IL3HXNkN4uc4mh3ICEUWi32F4oFCikwYWVkbM2PJZgAqJVsh4i5ZhnAXjhURavN6y+1+Xj
	rXTuPSa8PISfPFgqgAMB39J5NVdiLigREGEwaQwaoEyzaKZHuntJuv5D0mQrshfnRYxDCCIVoxX
	U69UBCj6DdMxxbli3jZ1OXi3/F8qAAY3ga+QG
X-Google-Smtp-Source: AGHT+IGTTDbqro+m1QROOb/GZ+H6gqPmuS7BP9ieaiqo+4HSzHw6OJdr1VtUJYpogPPKxRIY6wLdaA==
X-Received: by 2002:a05:600c:1d86:b0:43c:f050:fed3 with SMTP id 5b1f17b1804b1-4405d616afamr14296425e9.11.1744803637460;
        Wed, 16 Apr 2025 04:40:37 -0700 (PDT)
Message-ID: <9007cf28-644c-47cd-9eef-66573350d08a@suse.com>
Date: Wed, 16 Apr 2025 13:40:36 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4] xen/riscv: Increase XEN_VIRT_SIZE
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <0815b65aa0b526b85c737f5923148b119cc4104f.1744639515.git.oleksii.kurochko@gmail.com>
 <6ea52f30-7aa4-494b-9719-9fdffc56e3c8@suse.com>
 <91856640-1b82-4440-8a45-de56ffb57e71@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: <91856640-1b82-4440-8a45-de56ffb57e71@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 16.04.2025 12:44, Oleksii Kurochko wrote:
> 
> On 4/15/25 12:07 PM, Jan Beulich wrote:
>> On 14.04.2025 17:56, Oleksii Kurochko wrote:
>>> --- a/xen/arch/riscv/mm.c
>>> +++ b/xen/arch/riscv/mm.c
>>> @@ -31,20 +31,30 @@ unsigned long __ro_after_init phys_offset; /* = load_start - XEN_VIRT_START */
>>>   #define LOAD_TO_LINK(addr) ((unsigned long)(addr) - phys_offset)
>>>   
>>>   /*
>>> - * It is expected that Xen won't be more then 2 MB.
>>> + * It is expected that Xen won't be more then XEN_VIRT_SIZE.
>>>    * The check in xen.lds.S guarantees that.
>>> - * At least 3 page tables (in case of Sv39 ) are needed to cover 2 MB.
>>> - * One for each page level table with PAGE_SIZE = 4 Kb.
>>>    *
>>> - * One L0 page table can cover 2 MB(512 entries of one page table * PAGE_SIZE).
>>> + * Root page table is shared with the initial mapping and is declared
>>> + * separately. (look at stage1_pgtbl_root)
>>>    *
>>> - * It might be needed one more page table in case when Xen load address
>>> - * isn't 2 MB aligned.
>>> + * An amount of page tables between root page table and L0 page table
>>> + * (in the case of Sv39 it covers L1 table):
>>> + *   (CONFIG_PAGING_LEVELS - 2) are needed for an identity mapping and
>>> + *   the same amount are needed for Xen.
>>>    *
>>> - * CONFIG_PAGING_LEVELS page tables are needed for the identity mapping,
>>> - * except that the root page table is shared with the initial mapping
>>> + * An amount of L0 page tables:
>>> + *   (512 entries of one L0 page table covers 2MB == 1<<XEN_PT_LEVEL_SHIFT(1))
>>> + *   XEN_VIRT_SIZE >> XEN_PT_LEVEL_SHIFT(1) are needed for Xen and
>>> + *   one L0 is needed for identity mapping.
>>>    */
>>> -#define PGTBL_INITIAL_COUNT ((CONFIG_PAGING_LEVELS - 1) * 2 + 1)
>>> +#define PGTBL_INITIAL_COUNT ((CONFIG_PAGING_LEVELS - 2) * 2 + \
>>> +                             (XEN_VIRT_SIZE >> XEN_PT_LEVEL_SHIFT(1)) + 1)
>> I'm still struggling here. In the original expression, the +1 was to cover
>> the root page table, wasn't it?
> 
> |+1| was added to cover the case where the Xen address is not 2MB-aligned.

Oh, okay.

> For the root page table, we use a separate variable|stage1_pgtbl_root|.
> Since the root page table is shared with the identity mapping, it is not
> included in|PGTBL_INITIAL_COUNT|.

Makes all sense then, thanks.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Apr 16 11:59:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 11:59:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.955719.1349356 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u51Q7-00077B-DG; Wed, 16 Apr 2025 11:59:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 955719.1349356; Wed, 16 Apr 2025 11:59: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 1u51Q7-000771-9d; Wed, 16 Apr 2025 11:59:11 +0000
Received: by outflank-mailman (input) for mailman id 955719;
 Wed, 16 Apr 2025 11:59: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=9TmO=XC=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u51Q5-0006Ay-3l
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 11:59:09 +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 3324370f-1aba-11f0-9ffb-bf95429c2676;
 Wed, 16 Apr 2025 13:59:07 +0200 (CEST)
Received: by mail-wr1-x42f.google.com with SMTP id
 ffacd0b85a97d-3914bc3e01aso3836436f8f.2
 for <xen-devel@lists.xenproject.org>; Wed, 16 Apr 2025 04:59:07 -0700 (PDT)
Received: from localhost.localdomain (host-92-26-98-202.as13285.net.
 [92.26.98.202]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4405b5a9846sm18761905e9.35.2025.04.16.04.59.05
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 16 Apr 2025 04:59: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: 3324370f-1aba-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744804747; x=1745409547; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=YLn8srVkw3Yg8gfwsGTdOECt81wVzaI0OabRG++w1eI=;
        b=UNJ1NIq8Ec+ppcis4/ds/ezi+MqduU5CbZANVhhcfT2u2JZWyDjWDIIOeDNTEA5ACd
         R97cZyQwzd5zI+lbcfYwqWzHVI7RyWW9tCk7SMu3XVSoiZIvvgSoj631HscM8tThFPQs
         Ar5OyaBGwhLl4zVmAYBc3iNwCWRiylBmP3gMU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744804747; x=1745409547;
        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=YLn8srVkw3Yg8gfwsGTdOECt81wVzaI0OabRG++w1eI=;
        b=nnP9xAUVqZwOtuLTWXJmw61bdSvk6KMgC1pLCkfTPMG4AYWScxhsBzspS6T9rSFGlR
         tx0Oqbcs1ypRofuZHyEkosIS+V4JbA/Ibx2Z2W4BCzvpINZjDnJuL6Sxx7j0oSDKPL5T
         587mRdQRMCZiLGbFWmp3KB/H1sHW9gOgvcjXTvmUHzMpEJo+o8Etd4dbFqAXhRkekfX6
         YePlCja19Z4/5rKNpFyJMrGVqRI9E1wkdbRteW+ziYnf7s6CSff+xy5PQU59p+GaaTzv
         a8N5wKClwJUp33z5rUn0+y6pZckxOtshaBs2LO7yus8pPufumoKu8aOkGgXc+KI82q7T
         XMqw==
X-Gm-Message-State: AOJu0Yw1ZTlWqpgzoNOlYCBaLflmd+lsdjacUSnruzFRmKxzmmuO4NYc
	lhwwcmxGsMNldxS6GKqWtJKqZwSAH8XnpSkxcvC6vUcBkI8fhAcK/ofke8/7akDLoq0mE0CYCBy
	GePs=
X-Gm-Gg: ASbGncvfD413BuDKHEqtgSTZ2xcb8luAWYqSbIOWDKAYW2xppkoM+HRFp2HzzbiYYQk
	cwCAiHfjanWGQ4llBC0rITeLYXbeUbykU3wHHct11rynkLxvNr09uFiYZRgMCFI7kqTr4UsSgKY
	eianeN42AH0CsSVVAERtztAYEQL9/ntI6xaQn1vNxKEF6Zl4iufhuWjUav6N3jWF+ST9tCX2VZs
	hUSXAr4UvhYbIghljbn16CWi6Vu4Rf/Xt8uu7L0s46/Xf9xLIfNQCTe7uROo6YjrEZGsqx/oGE2
	sofhekyWimoAcpCsIWoyQNPzNDWOkZ/h45A2+tOBD9qUyh7YVsDv61nLB+wSHCgzCAZZQXx0bdA
	cdDlKMoFEbtKrsQ==
X-Google-Smtp-Source: AGHT+IG0BvFDUI7ZzPBhP4pD1vvX0tHr0NmvdjD83GQcGluEoM9jjCiL45j2ttNYkLT3LMB5hjuygw==
X-Received: by 2002:a5d:64ae:0:b0:39c:1efb:ec9a with SMTP id ffacd0b85a97d-39ee5b13b3emr1483641f8f.6.1744804746627;
        Wed, 16 Apr 2025 04:59:06 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Lin Liu <lin.liu@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Shawn Anastasio <sanastasio@raptorengineering.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>
Subject: [PATCH v6 04/15] xen/device-tree: Remove use of *_to_cpup() helpers
Date: Wed, 16 Apr 2025 12:58:49 +0100
Message-Id: <20250416115900.2491661-5-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250416115900.2491661-1-andrew.cooper3@citrix.com>
References: <20250416115900.2491661-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: Lin Liu <lin.liu@citrix.com>

These wrappers simply hide a deference, which adds to the cognitive complexity
of reading the code.  As such, they're not going to be included in the new
byteswap infrastructure.

No functional change.

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

v5:
 * Rebase
 * Split out of later patch
---
 xen/common/device-tree/device-tree.c | 44 ++++++++++++++--------------
 1 file changed, 22 insertions(+), 22 deletions(-)

diff --git a/xen/common/device-tree/device-tree.c b/xen/common/device-tree/device-tree.c
index e8f810b2fe10..90fee2ba0315 100644
--- a/xen/common/device-tree/device-tree.c
+++ b/xen/common/device-tree/device-tree.c
@@ -173,7 +173,7 @@ bool dt_property_read_u32(const struct dt_device_node *np,
     if ( !val || len < sizeof(*out_value) )
         return 0;
 
-    *out_value = be32_to_cpup(val);
+    *out_value = be32_to_cpu(*val);
 
     return 1;
 }
@@ -266,7 +266,7 @@ int dt_property_read_variable_u32_array(const struct dt_device_node *np,
 
     count = sz;
     while ( count-- )
-        *out_values++ = be32_to_cpup(val++);
+        *out_values++ = be32_to_cpu(*val++);
 
     return sz;
 }
@@ -493,7 +493,7 @@ static int __dt_n_addr_cells(const struct dt_device_node *np, bool parent)
 
         ip = dt_get_property(np, "#address-cells", NULL);
         if ( ip )
-            return be32_to_cpup(ip);
+            return be32_to_cpu(*ip);
     } while ( np->parent );
     /* No #address-cells property for the root node */
     return DT_ROOT_NODE_ADDR_CELLS_DEFAULT;
@@ -510,7 +510,7 @@ static int __dt_n_size_cells(const struct dt_device_node *np, bool parent)
 
         ip = dt_get_property(np, "#size-cells", NULL);
         if ( ip )
-            return be32_to_cpup(ip);
+            return be32_to_cpu(*ip);
     } while ( np->parent );
     /* No #address-cells property for the root node */
     return DT_ROOT_NODE_SIZE_CELLS_DEFAULT;
@@ -643,7 +643,7 @@ static void dt_bus_pci_count_cells(const struct dt_device_node *np,
 static unsigned int dt_bus_pci_get_flags(const __be32 *addr)
 {
     unsigned int flags = 0;
-    u32 w = be32_to_cpup(addr);
+    u32 w = be32_to_cpu(*addr);
 
     switch((w >> 24) & 0x03) {
     case 0x01:
@@ -1096,7 +1096,7 @@ dt_irq_find_parent(const struct dt_device_node *child)
         if ( parp == NULL )
             p = dt_get_parent(child);
         else
-            p = dt_find_node_by_phandle(be32_to_cpup(parp));
+            p = dt_find_node_by_phandle(be32_to_cpu(*parp));
         child = p;
     } while ( p && dt_get_property(p, "#interrupt-cells", NULL) == NULL );
 
@@ -1129,7 +1129,7 @@ unsigned int dt_number_of_irq(const struct dt_device_node *device)
     intlen /= sizeof(*intspec);
 
     dt_dprintk(" using 'interrupts' property\n");
-    dt_dprintk(" intspec=%d intlen=%d\n", be32_to_cpup(intspec), intlen);
+    dt_dprintk(" intspec=%d intlen=%d\n", be32_to_cpu(*intspec), intlen);
 
     /* Look for the interrupt parent. */
     p = dt_irq_find_parent(device);
@@ -1260,7 +1260,7 @@ int dt_for_each_irq_map(const struct dt_device_node *dev,
         imaplen -= addrsize + intsize;
 
         /* Get the interrupt parent */
-        ipar = dt_find_node_by_phandle(be32_to_cpup(imap));
+        ipar = dt_find_node_by_phandle(be32_to_cpu(*imap));
         imap++;
         --imaplen;
 
@@ -1377,8 +1377,8 @@ static int dt_irq_map_raw(const struct dt_device_node *parent,
     int match, i;
 
     dt_dprintk("dt_irq_map_raw: par=%s,intspec=[0x%08x 0x%08x...],ointsize=%d\n",
-               parent->full_name, be32_to_cpup(intspec),
-               be32_to_cpup(intspec + 1), ointsize);
+               parent->full_name, be32_to_cpu(*intspec),
+               be32_to_cpu(*(intspec+1)), ointsize);
 
     ipar = parent;
 
@@ -1490,7 +1490,7 @@ static int dt_irq_map_raw(const struct dt_device_node *parent,
             dt_dprintk(" -> match=%d (imaplen=%d)\n", match, imaplen);
 
             /* Get the interrupt parent */
-            newpar = dt_find_node_by_phandle(be32_to_cpup(imap));
+            newpar = dt_find_node_by_phandle(be32_to_cpu(*imap));
             imap++;
             --imaplen;
 
@@ -1584,7 +1584,7 @@ int dt_device_get_raw_irq(const struct dt_device_node *device,
     intlen /= sizeof(*intspec);
 
     dt_dprintk(" using 'interrupts' property\n");
-    dt_dprintk(" intspec=%d intlen=%d\n", be32_to_cpup(intspec), intlen);
+    dt_dprintk(" intspec=%d intlen=%d\n", be32_to_cpu(*intspec), intlen);
 
     /* Look for the interrupt parent. */
     p = dt_irq_find_parent(device);
@@ -1695,7 +1695,7 @@ static int __dt_parse_phandle_with_args(const struct dt_device_node *np,
          * If phandle is 0, then it is an empty entry with no
          * arguments.  Skip forward to the next entry.
          * */
-        phandle = be32_to_cpup(list++);
+        phandle = be32_to_cpu(*list++);
         if ( phandle )
         {
             /*
@@ -1764,7 +1764,7 @@ static int __dt_parse_phandle_with_args(const struct dt_device_node *np,
                 out_args->np = node;
                 out_args->args_count = count;
                 for ( i = 0; i < count; i++ )
-                    out_args->args[i] = be32_to_cpup(list++);
+                    out_args->args[i] = be32_to_cpu(*list++);
             }
 
             /* Found it! return success */
@@ -1845,7 +1845,7 @@ static unsigned long unflatten_dt_node(const void *fdt,
     int has_name = 0;
     int new_format = 0;
 
-    tag = be32_to_cpup((__be32 *)(*p));
+    tag = be32_to_cpu(*(__be32 *)(*p));
     if ( tag != FDT_BEGIN_NODE )
     {
         printk(XENLOG_WARNING "Weird tag at start of node: %x\n", tag);
@@ -1938,7 +1938,7 @@ static unsigned long unflatten_dt_node(const void *fdt,
         u32 sz, noff;
         const char *pname;
 
-        tag = be32_to_cpup((__be32 *)(*p));
+        tag = be32_to_cpu(*(__be32 *)(*p));
         if ( tag == FDT_NOP )
         {
             *p += 4;
@@ -1947,8 +1947,8 @@ static unsigned long unflatten_dt_node(const void *fdt,
         if ( tag != FDT_PROP )
             break;
         *p += 4;
-        sz = be32_to_cpup((__be32 *)(*p));
-        noff = be32_to_cpup((__be32 *)((*p) + 4));
+        sz = be32_to_cpu(*(__be32 *)(*p));
+        noff = be32_to_cpu(*(__be32 *)((*p) + 4));
         *p += 8;
         if ( fdt_version(fdt) < 0x10 )
             *p = ROUNDUP(*p, sz >= 8 ? 8 : 4);
@@ -1975,13 +1975,13 @@ static unsigned long unflatten_dt_node(const void *fdt,
                  (strcmp(pname, "linux,phandle") == 0) )
             {
                 if ( np->phandle == 0 )
-                    np->phandle = be32_to_cpup((__be32*)*p);
+                    np->phandle = be32_to_cpu(*(__be32*)*p);
             }
             /* And we process the "ibm,phandle" property
              * used in pSeries dynamic device tree
              * stuff */
             if ( strcmp(pname, "ibm,phandle") == 0 )
-                np->phandle = be32_to_cpup((__be32 *)*p);
+                np->phandle = be32_to_cpu(*(__be32 *)*p);
             pp->name = pname;
             pp->length = sz;
             pp->value = (void *)*p;
@@ -2053,7 +2053,7 @@ static unsigned long unflatten_dt_node(const void *fdt,
             *p += 4;
         else
             mem = unflatten_dt_node(fdt, mem, p, np, allnextpp, fpsize);
-        tag = be32_to_cpup((__be32 *)(*p));
+        tag = be32_to_cpu(*(__be32 *)(*p));
     }
     if ( tag != FDT_END_NODE )
     {
@@ -2099,7 +2099,7 @@ int unflatten_device_tree(const void *fdt, struct dt_device_node **mynodes)
     /* Second pass, do actual unflattening */
     start = ((unsigned long)fdt) + fdt_off_dt_struct(fdt);
     unflatten_dt_node(fdt, mem, &start, NULL, &allnextp, 0);
-    if ( be32_to_cpup((__be32 *)start) != FDT_END )
+    if ( be32_to_cpu(*(__be32 *)start) != FDT_END )
     {
         printk(XENLOG_ERR "Weird tag at end of tree: %08x\n",
                   *((u32 *)start));
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Wed Apr 16 11:59:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 11:59:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.955718.1349339 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u51Q5-0006W1-AY; Wed, 16 Apr 2025 11:59:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 955718.1349339; Wed, 16 Apr 2025 11:59: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 1u51Q5-0006VY-18; Wed, 16 Apr 2025 11:59:09 +0000
Received: by outflank-mailman (input) for mailman id 955718;
 Wed, 16 Apr 2025 11:59: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=9TmO=XC=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u51Q3-0006Ay-Vx
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 11:59:07 +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 32184829-1aba-11f0-9ffb-bf95429c2676;
 Wed, 16 Apr 2025 13:59:05 +0200 (CEST)
Received: by mail-wr1-x433.google.com with SMTP id
 ffacd0b85a97d-39ac8e7688aso4026123f8f.2
 for <xen-devel@lists.xenproject.org>; Wed, 16 Apr 2025 04:59:05 -0700 (PDT)
Received: from localhost.localdomain (host-92-26-98-202.as13285.net.
 [92.26.98.202]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4405b5a9846sm18761905e9.35.2025.04.16.04.59.04
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 16 Apr 2025 04:59:04 -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: 32184829-1aba-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744804745; x=1745409545; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=fmL/ZnaF9EKDwjrLJuzd3+BdV4GeJNNzHF8jTkdgEEU=;
        b=YfrSm1QUIkYZzliUTjTuDYVhVYe8aohQJXpYJyDf+iz1SH6F7Il0VFXMPZk7rYd4GM
         fNh+kuHSR6QydgrSgNdg1YmTiUgoRgpSQyYbbKYgNbl53JyZWNLB2XMsMhcpj2Yt6ayx
         W258UamQ1NnHEPX9bsnhV320tgpZLQ41NR3TY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744804745; x=1745409545;
        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=fmL/ZnaF9EKDwjrLJuzd3+BdV4GeJNNzHF8jTkdgEEU=;
        b=MSZaXhcFVM5+RLTX3T85DsuLlBnoSFLrlQt1IyrX4XpeFUledl7nlmuD+n4RXIEvPd
         RNM8iy5HwPRb7l5tNgj7UqmpBNQCAl9F51isuV+FHKiBzuIiV1DJ32sVxIN7/Mq/if4S
         9afUFaFzrUzP4RP13GZr4VUIwFXMszZGWTroAvzY/DFos/QR4TFgP11ig5Hx/q8go6AV
         YXUZ74agKA80DsMZtXd5C1zxb9I+5eneA4jL1T4UwK8qF6lRXcn5dDjZpweGh8JENYTU
         9DMlsyXbRJD1cFjtFsL0U/26ve6v6aoIi5dd0Vkk1cjuYVxRye/q89z4K0AZ8J1JZxgx
         jpdA==
X-Gm-Message-State: AOJu0Yz6ISW+Y2klXRT9Fh5h95B4vY2Ko9+vBvSLhwX6nzu9wRdvbqb/
	OskWj0MoyZk1cW+TtupG0eeJhGMMAw6+1E6Sn5k3plNln+75pK8+x0OJTuIANIcNeml2MCOn4/l
	O5NY=
X-Gm-Gg: ASbGncvRKlrDlGLeKCJAjyEyfo59e8mS4dCs9MBctGwOQmkNspQ7rnAf0AJrkYUIuaX
	M9iOvyFxkfyNmKZtovfG53Es9tIeUpQyBSvQlv2d2ynB5QES50ZSTtzhs7R+422zM9kDxoGxwrj
	sXiO8OaGOkUftVxjLxVNVsQ70+/6UuQsN4Hf3og7Tqz3+czzpxwQjZP5eM5u6BmYGdsytQKmVSz
	oLr0FKz8w9ASQXpaN4CmkfBCtSKam45ZCx1vb4kZSV1hukLyN3RLdRLCuDhIa9q/hf9zOqu63pU
	5QbPvfuLNzqDwNZ/Wo+VRqlGAFUcynK80KHq94lm4SyPWrHWpokMtT9WlvK7oaUqAB7bCVFgVMp
	4Hv4Abqk1cmTvlw==
X-Google-Smtp-Source: AGHT+IGoC35KrZip6fCDcL/oUGzi+YtFZJnDE7FrGERYhKy4EnzKfqCJeF21k2rDsfPw8nhjHTWBow==
X-Received: by 2002:a05:6000:240c:b0:399:71d4:b8 with SMTP id ffacd0b85a97d-39ee5b1682emr1420910f8f.23.1744804744884;
        Wed, 16 Apr 2025 04:59:04 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Shawn Anastasio <sanastasio@raptorengineering.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>,
	Lin Liu <lin.liu@citrix.com>
Subject: [PATCH v6 02/15] drivers/smmu-v3: Fix impending MISRA R20.6 violation
Date: Wed, 16 Apr 2025 12:58:47 +0100
Message-Id: <20250416115900.2491661-3-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250416115900.2491661-1-andrew.cooper3@citrix.com>
References: <20250416115900.2491661-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

cpu_to_le64() is about to become a macro, at which point the #ifdef in the
middle of it becomes undefined behaviour.

Use a logcal variable to prepare strtab, where the #ifdef is fine to use.

No functional change.

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

v6:
 * New

Eclair log from v5:
  https://saas.eclairit.com:3787/fs/var/local/eclair/xen-project.ecdf/xen-project/people/andyhhp/xen/ECLAIR_normal/xen-bswap/ARM64/9556392204/PROJECT.ecd;/by_service/MC3A2.R20.6.html
---
 xen/drivers/passthrough/arm/smmu-v3.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/xen/drivers/passthrough/arm/smmu-v3.c b/xen/drivers/passthrough/arm/smmu-v3.c
index cee572402203..df162350578c 100644
--- a/xen/drivers/passthrough/arm/smmu-v3.c
+++ b/xen/drivers/passthrough/arm/smmu-v3.c
@@ -722,15 +722,17 @@ static void arm_smmu_write_strtab_ent(struct arm_smmu_master *master, u32 sid,
 	}
 
 	if (s2_cfg) {
-		BUG_ON(ste_live);
-		dst[2] = cpu_to_le64(
+		u64 strtab =
 			 FIELD_PREP(STRTAB_STE_2_S2VMID, s2_cfg->vmid) |
 			 FIELD_PREP(STRTAB_STE_2_VTCR, s2_cfg->vtcr) |
 #ifdef __BIG_ENDIAN
 			 STRTAB_STE_2_S2ENDI |
 #endif
 			 STRTAB_STE_2_S2PTW | STRTAB_STE_2_S2AA64 |
-			 STRTAB_STE_2_S2R);
+			 STRTAB_STE_2_S2R;
+
+		BUG_ON(ste_live);
+		dst[2] = cpu_to_le64(strtab);
 
 		dst[3] = cpu_to_le64(s2_cfg->vttbr & STRTAB_STE_3_S2TTB_MASK);
 
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Wed Apr 16 11:59:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 11:59:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.955715.1349315 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u51Q4-0006BL-4H; Wed, 16 Apr 2025 11:59:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 955715.1349315; Wed, 16 Apr 2025 11: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 1u51Q4-0006BE-1S; Wed, 16 Apr 2025 11:59:08 +0000
Received: by outflank-mailman (input) for mailman id 955715;
 Wed, 16 Apr 2025 11:59: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=9TmO=XC=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u51Q2-0006At-Qi
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 11:59:06 +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 310a1abf-1aba-11f0-9eaf-5ba50f476ded;
 Wed, 16 Apr 2025 13:59:03 +0200 (CEST)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-43edb40f357so55457525e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 16 Apr 2025 04:59:03 -0700 (PDT)
Received: from localhost.localdomain (host-92-26-98-202.as13285.net.
 [92.26.98.202]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4405b5a9846sm18761905e9.35.2025.04.16.04.59.02
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 16 Apr 2025 04:59: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: 310a1abf-1aba-11f0-9eaf-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744804743; x=1745409543; 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=ze6Va0aBH5HoMlqfrsEst6cogJA6Tgb9i7zHpY6q5vQ=;
        b=Zxtpa7C4Wn8sKnToI95nVAAwFr6NYvnej2Vb7vP05r2GArijaa/6VmJwRqe7TL6kE2
         bMPZgyH5FLxjEsz0yXo7aZfEnwlTzg5C65mZcKAf96KNqxWfgi03RutFgfRBZS9k3X/Y
         TTcS9OAfccos9nsZSjcJUtRUJd4ikcLDBnzME=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744804743; x=1745409543;
        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=ze6Va0aBH5HoMlqfrsEst6cogJA6Tgb9i7zHpY6q5vQ=;
        b=KbpHOVvuKagQRMOda+btOD5pdF+Z+vMRRONkk6Wp2BwOe9z8CFfFbf74WTyt20S8+b
         8m6vgkyjUpfsQGB8opByuuXoKFgqyI4nl1zo5ogZCw8qV+W5qVcUBPLxPH+TR6MZ5xwx
         Db9UyiUuIn0mM55R7sX9Ejw61s/afqzmTSp8ytCk9VgkykOQ+2W9DVFZXsKs5xQl8eep
         GWTNNGHYlxqrY5IBYPP4u4tFOHBvdtEr7B+VuV6tACr+Pz9H/GleE7Ia21dnv6ba0KVG
         /C8BAbWeZ2Gqe1YSgmuNL3s+UxfrIuvEOwhoMdFMDb8L7oH60B1l/u4wrpXz89IfMuhR
         4N5w==
X-Gm-Message-State: AOJu0YzVpoxoZuZ0k4sPbg7iqP7+fwNrrbcKhaEX9xlUyKungsriNZCD
	u791cds0vtnxsCckwXSM1YxTyoEmhXgGFSCUS4neMoDEwJFlWEniQatw8Rx+AXgHjjy43vFStov
	VFoo=
X-Gm-Gg: ASbGnctyn+n2IIQ9HBa/SKfe8SRzkLnaPgkjYYscdTjtuun1yqhA4v0VZs3H32/gfCZ
	caWzAEeCpA3/JdJmz/wh5uzryY1OaxYfgZGfiuGbu1huRLTTjcHTbfKbM80MmLOZZBbKpAyE28h
	4h2x+ND4MDTCZZTBcPhwyYvTltWGEqOIKBRL3q3Z64Fny+PBOVtP8ATVR84p6WMoKAkWj7neWcM
	IYj5EgO5621Jxi8wjkU/OuGsvzq3CWWF6nqpiI/ZMzbVkqlMmrU+OhuEAWr4/mEGSf6sOf5RT3V
	79CGPJckusPUVoAXDNTzUjwgwqPaTYuVJ/xV4TwKsZ6FjwwdeGPhxzlFRI/nhRDCDXPq7jfvHhV
	KujXXDHOmDXr9fA==
X-Google-Smtp-Source: AGHT+IHiog8kUug/T26HhfFpczODNr0oJkkCy4zZHO8+pcizOpf9sPgYXX0iuy4RoC/MiUHt/DW4pg==
X-Received: by 2002:a05:600c:502b:b0:43d:5ec:b2f4 with SMTP id 5b1f17b1804b1-4405d616b65mr19542145e9.10.1744804743063;
        Wed, 16 Apr 2025 04:59:03 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Shawn Anastasio <sanastasio@raptorengineering.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>,
	Lin Liu <lin.liu@citrix.com>
Subject: [PATCH v6 00/15] xen: Centralise byteswap infrastructure
Date: Wed, 16 Apr 2025 12:58:45 +0100
Message-Id: <20250416115900.2491661-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 diffstat speaks for itself.

Compared to v6, one patch (TMEM) committed, one new patch (drivers/smmu-v3) to
fix a MISRA regression, and the __{BIG,LITTLE}_ENDIAN_BITFIELD logic is
retained.  See individual patches for details.

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

Andrew Cooper (7):
  drivers/smmu-v3: Fix impending MISRA R20.6 violation
  xsm/flask: Switch {asm -> xen}/byteorder.h
  xen/common: Switch {asm -> xen}/byteorder.h
  arm: Remove asm/byteorder.h
  ppc: Drop asm/byteorder.h
  riscv: Remove asm/byteorder.h
  x86: Drop asm/byteorder.h

Lin Liu (8):
  xen: Implement common byte{order,swap}.h
  xen/lib: Switch to xen/byteorder.h
  xen/device-tree: Remove use of *_to_cpup() helpers
  xen/decompressors: Remove use of *_to_cpup() helpers
  xen/arch: Switch to new byteorder infrastructure
  xen/decompressors: Use new byteorder infrastructure
  xen: Remove old byteorder infrastructure
  crypto/vmac: Switch to xen/byteswap.h

 tools/libs/guest/xg_dom_decompress_lz4.c      |  10 +-
 .../guest/xg_dom_decompress_unsafe_lzo1x.c    |  14 +-
 .../libs/guest/xg_dom_decompress_unsafe_xz.c  |  13 +-
 .../guest/xg_dom_decompress_unsafe_zstd.c     |   3 +-
 xen/arch/arm/alternative.c                    |   6 +-
 xen/arch/arm/arm64/livepatch.c                |   2 +-
 xen/arch/arm/include/asm/arm32/io.h           |   3 +-
 xen/arch/arm/include/asm/arm64/io.h           |   3 +-
 xen/arch/arm/include/asm/byteorder.h          |  16 --
 xen/arch/arm/kernel.c                         |   2 +-
 xen/arch/arm/vgic/vgic-mmio.c                 |   3 +-
 xen/arch/ppc/include/asm/byteorder.h          |  12 --
 xen/arch/ppc/include/asm/page.h               |   4 +-
 xen/arch/ppc/mm-radix.c                       |   2 +-
 xen/arch/riscv/include/asm/byteorder.h        |  16 --
 xen/arch/riscv/include/asm/io.h               |   3 +-
 xen/arch/x86/include/asm/byteorder.h          |  29 ---
 xen/arch/x86/include/asm/msi.h                |   1 -
 xen/common/bitmap.c                           |   5 +-
 xen/common/device-tree/device-tree.c          |  44 ++---
 xen/common/libelf/libelf-private.h            |   9 +-
 xen/common/lz4/defs.h                         |   7 +-
 xen/common/lzo.c                              |   1 -
 xen/common/unlzo.c                            |  13 +-
 xen/common/xz/private.h                       |  13 +-
 xen/crypto/vmac.c                             |  76 +-------
 xen/drivers/char/ehci-dbgp.c                  |   4 +-
 xen/drivers/passthrough/arm/smmu-v3.c         |   8 +-
 xen/include/xen/bitmap.h                      |   2 +-
 xen/include/xen/byteorder.h                   |  44 +++++
 xen/include/xen/byteorder/big_endian.h        | 102 ----------
 xen/include/xen/byteorder/generic.h           |  68 -------
 xen/include/xen/byteorder/little_endian.h     | 102 ----------
 xen/include/xen/byteorder/swab.h              | 179 ------------------
 xen/include/xen/byteswap.h                    |  15 ++
 xen/include/xen/config.h                      |   8 +
 xen/include/xen/device_tree.h                 |   3 +-
 xen/include/xen/libfdt/libfdt_env.h           |   3 +-
 xen/include/xen/unaligned.h                   |   3 +-
 xen/lib/divmod.c                              |   5 +-
 xen/lib/find-next-bit.c                       |  39 +---
 xen/xsm/flask/ss/avtab.c                      |   4 +-
 xen/xsm/flask/ss/conditional.c                |   9 +-
 xen/xsm/flask/ss/ebitmap.c                    |   9 +-
 xen/xsm/flask/ss/policydb.c                   |   7 +-
 45 files changed, 193 insertions(+), 731 deletions(-)
 delete mode 100644 xen/arch/arm/include/asm/byteorder.h
 delete mode 100644 xen/arch/ppc/include/asm/byteorder.h
 delete mode 100644 xen/arch/riscv/include/asm/byteorder.h
 delete mode 100644 xen/arch/x86/include/asm/byteorder.h
 create mode 100644 xen/include/xen/byteorder.h
 delete mode 100644 xen/include/xen/byteorder/big_endian.h
 delete mode 100644 xen/include/xen/byteorder/generic.h
 delete mode 100644 xen/include/xen/byteorder/little_endian.h
 delete mode 100644 xen/include/xen/byteorder/swab.h
 create mode 100644 xen/include/xen/byteswap.h


base-commit: 7f8c2dd829358406dc9e50d5e386e4d2b20b4303
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Wed Apr 16 11:59:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 11:59:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.955716.1349324 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u51Q4-0006Hk-I2; Wed, 16 Apr 2025 11:59:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 955716.1349324; Wed, 16 Apr 2025 11: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 1u51Q4-0006HK-DO; Wed, 16 Apr 2025 11:59:08 +0000
Received: by outflank-mailman (input) for mailman id 955716;
 Wed, 16 Apr 2025 11:59: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=9TmO=XC=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u51Q3-0006Ay-AA
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 11:59:07 +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 3195a0a3-1aba-11f0-9ffb-bf95429c2676;
 Wed, 16 Apr 2025 13:59:04 +0200 (CEST)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-43ed8d32a95so56373815e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 16 Apr 2025 04:59:04 -0700 (PDT)
Received: from localhost.localdomain (host-92-26-98-202.as13285.net.
 [92.26.98.202]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4405b5a9846sm18761905e9.35.2025.04.16.04.59.03
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 16 Apr 2025 04:59: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: 3195a0a3-1aba-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744804744; x=1745409544; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=LrR2qFw2RhoT1ioWjoOtSsI3tc2/ebxvB/CbMCw2zPk=;
        b=lY19Pb/QkMau1TtctWTGLyJuH0OpsIxrf5XbahmkBta3oNOzELCGVNJN2dO3CIZFNl
         h7PSzkGAuefcN0iWthKb59jgYdqatahk8zxpf8kGemK4EVYDP9qtIXqmE1og3Iyh6z+s
         87+0zrW3PEYZ0LHmiwhCy7nUIuSVC3X8wSUws=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744804744; x=1745409544;
        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=LrR2qFw2RhoT1ioWjoOtSsI3tc2/ebxvB/CbMCw2zPk=;
        b=Dgz6bfWmgeFLqujwndD8oCDAoi0uDZIyPzQCDXrjIJ372DGMrLKwA2ku+jX3IWNPXD
         iR3yZQ2llwMZPhFrhg2a8C4fjB3/ZLw/cMAfVd3WNKarWjPvQmJeLIIdyR0UfrpoPivZ
         3HJRBuHoE6Q3+fWPVqlMFZDZuo2X5E4/h88BwFTfEDcBPHzZHIzrUbLDNg6KqFo/3fjK
         7RdaswK2lNblG/EvVMHWsS1GRwZeu1y5+KloX2s49IxWP8SQsPpr4k7M8bFxwz/ZaJzN
         lPW34Rl/TlVY7Xk54h4wqhEdudbteQSTdqhoMs1pScuUUb64TbooIvSqe7fsvRLrvx3Q
         ybLg==
X-Gm-Message-State: AOJu0YyGRZAbBca7aPV+MazhYquDFwGSJMPBt2I+42kKo0MlfbDMQzKf
	kwApO+sHpvwjrO/KqsoPNVd4qUKUa3xkUtGthriDxBsmiATc3u2K6wTw/4o0o/KVJ55+QaSHqzG
	pF54=
X-Gm-Gg: ASbGnctiDhi2gXyE4jyIdfSItG9Jh7ssyAlwhhcEKRoHzHpMyfK0+6CN5ZQLEfmGfoj
	54MHmRX3/6d37dO7H0FOcKNxv4E650LYOXK7V5U0US+mjimRw0kJf9o1pUA2NQJDT1gDimuKRRg
	+w4Ftiy3Q11UlNbIniVhEgNaoluE+Wjj9dtK7khdkOnfELI1BFKAi6Bklqm04+MYQQu7DITVsDV
	DM0xErcZPlS21aw7ay+lIgPzsy6Rmyqwnxb2WgIDakDySTwFkhBmzHeN8AeGYxxBl28CVVT3Sep
	Ww/yx2MTw9+GPesT6ibBRhR23uzXrLwunTJ6UQiBgqvYQJ8yrV/w7vQcHgx0WaQvJ2pPuxO/A3D
	wVvQxjz5Z3ZkOVg==
X-Google-Smtp-Source: AGHT+IEgmpj4c+9t4rzrKeUZP9r3Zsv7CNOYMl3PyaY7qkbB+/Oe06vxRPeZ7j85uQVqCPnFx5sCBw==
X-Received: by 2002:a05:600c:811b:b0:43d:ed:ad07 with SMTP id 5b1f17b1804b1-4405d6cc339mr13999945e9.29.1744804743959;
        Wed, 16 Apr 2025 04:59:03 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Lin Liu <lin.liu@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Shawn Anastasio <sanastasio@raptorengineering.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>
Subject: [PATCH v6 01/15] xen: Implement common byte{order,swap}.h
Date: Wed, 16 Apr 2025 12:58:46 +0100
Message-Id: <20250416115900.2491661-2-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250416115900.2491661-1-andrew.cooper3@citrix.com>
References: <20250416115900.2491661-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: Lin Liu <lin.liu@citrix.com>

The current swab??() infrastructure is unecesserily complicated, and can be
replaced entirely with compiler builtins.

All supported compilers provide __BYTE_ORDER__ and __builtin_bswap??().

Nothing in Xen cares about the values of __{BIG,LITTLE}_ENDIAN; just that one
of them is defined.  Therefore, centralise their definitions in xen/config.h

Signed-off-by: Lin Liu <lin.liu@citrix.com>
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Michal Orzel <michal.orzel@amd.com>
CC: Jan Beulich <jbeulich@suse.com>
CC: Julien Grall <julien@xen.org>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
CC: Bertrand Marquis <bertrand.marquis@arm.com>
CC: Shawn Anastasio <sanastasio@raptorengineering.com>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
CC: Daniel P. Smith <dpsmith@apertussolutions.com>
CC: Lin Liu <lin.liu@citrix.com>

v6:
 * Fix typos
 * Retain __{BIG,LITTLE}_ENDIAN_BITFIELDS and set them in common logic.
 * Extra brackets for the non-transformed case.

v5:
 * Rebase substantially
 * Drop PASTE().  It doesn't work when BITS_PER_LONG isn't a plain integer
 * Simplify in light of new toolchain baseline
---
 xen/include/xen/byteorder.h               | 44 +++++++++++++++++++++++
 xen/include/xen/byteorder/big_endian.h    |  7 ----
 xen/include/xen/byteorder/little_endian.h |  7 ----
 xen/include/xen/byteswap.h                | 15 ++++++++
 xen/include/xen/config.h                  |  8 +++++
 5 files changed, 67 insertions(+), 14 deletions(-)
 create mode 100644 xen/include/xen/byteorder.h
 create mode 100644 xen/include/xen/byteswap.h

diff --git a/xen/include/xen/byteorder.h b/xen/include/xen/byteorder.h
new file mode 100644
index 000000000000..2b9b97044478
--- /dev/null
+++ b/xen/include/xen/byteorder.h
@@ -0,0 +1,44 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+#ifndef XEN_BYTEORDER_H
+#define XEN_BYTEORDER_H
+
+#include <xen/byteswap.h>
+#include <xen/stdint.h>
+
+#if defined(__LITTLE_ENDIAN)
+
+# define cpu_to_le64(x) ((uint64_t)(x))
+# define le64_to_cpu(x) ((uint64_t)(x))
+# define cpu_to_le32(x) ((uint32_t)(x))
+# define le32_to_cpu(x) ((uint32_t)(x))
+# define cpu_to_le16(x) ((uint16_t)(x))
+# define le16_to_cpu(x) ((uint16_t)(x))
+
+# define cpu_to_be64(x) bswap64(x)
+# define be64_to_cpu(x) bswap64(x)
+# define cpu_to_be32(x) bswap32(x)
+# define be32_to_cpu(x) bswap32(x)
+# define cpu_to_be16(x) bswap16(x)
+# define be16_to_cpu(x) bswap16(x)
+
+#elif defined(__BIG_ENDIAN)
+
+# define cpu_to_le64(x) bswap64(x)
+# define le64_to_cpu(x) bswap64(x)
+# define cpu_to_le32(x) bswap32(x)
+# define le32_to_cpu(x) bswap32(x)
+# define cpu_to_le16(x) bswap16(x)
+# define le16_to_cpu(x) bswap16(x)
+
+# define cpu_to_be64(x) ((uint64_t)(x))
+# define be64_to_cpu(x) ((uint64_t)(x))
+# define cpu_to_be32(x) ((uint32_t)(x))
+# define be32_to_cpu(x) ((uint32_t)(x))
+# define cpu_to_be16(x) ((uint16_t)(x))
+# define be16_to_cpu(x) ((uint16_t)(x))
+
+#else
+# error Unknown Endianness
+#endif /* __*_ENDIAN */
+
+#endif /* XEN_BYTEORDER_H */
diff --git a/xen/include/xen/byteorder/big_endian.h b/xen/include/xen/byteorder/big_endian.h
index ce395a17f64b..512291c76f1b 100644
--- a/xen/include/xen/byteorder/big_endian.h
+++ b/xen/include/xen/byteorder/big_endian.h
@@ -1,13 +1,6 @@
 #ifndef __XEN_BYTEORDER_BIG_ENDIAN_H__
 #define __XEN_BYTEORDER_BIG_ENDIAN_H__
 
-#ifndef __BIG_ENDIAN
-#define __BIG_ENDIAN 4321
-#endif
-#ifndef __BIG_ENDIAN_BITFIELD
-#define __BIG_ENDIAN_BITFIELD
-#endif
-
 #include <xen/types.h>
 #include <xen/byteorder/swab.h>
 
diff --git a/xen/include/xen/byteorder/little_endian.h b/xen/include/xen/byteorder/little_endian.h
index 8b118afba5e3..bd1afc6a67c3 100644
--- a/xen/include/xen/byteorder/little_endian.h
+++ b/xen/include/xen/byteorder/little_endian.h
@@ -1,13 +1,6 @@
 #ifndef __XEN_BYTEORDER_LITTLE_ENDIAN_H__
 #define __XEN_BYTEORDER_LITTLE_ENDIAN_H__
 
-#ifndef __LITTLE_ENDIAN
-#define __LITTLE_ENDIAN 1234
-#endif
-#ifndef __LITTLE_ENDIAN_BITFIELD
-#define __LITTLE_ENDIAN_BITFIELD
-#endif
-
 #include <xen/types.h>
 #include <xen/byteorder/swab.h>
 
diff --git a/xen/include/xen/byteswap.h b/xen/include/xen/byteswap.h
new file mode 100644
index 000000000000..46d93f88eac9
--- /dev/null
+++ b/xen/include/xen/byteswap.h
@@ -0,0 +1,15 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+#ifndef XEN_BYTESWAP_H
+#define XEN_BYTESWAP_H
+
+#define bswap16(x) __builtin_bswap16(x)
+#define bswap32(x) __builtin_bswap32(x)
+#define bswap64(x) __builtin_bswap64(x)
+
+#if BITS_PER_LONG == 64
+# define bswapl(x) bswap64(x)
+#elif BITS_PER_LONG == 32
+# define bswapl(x) bswap32(x)
+#endif
+
+#endif /* XEN_BYTESWAP_H */
diff --git a/xen/include/xen/config.h b/xen/include/xen/config.h
index 7d43159efb56..1d7195066c08 100644
--- a/xen/include/xen/config.h
+++ b/xen/include/xen/config.h
@@ -108,4 +108,12 @@
 /* It is assumed that sizeof(void *) == __alignof(void *) */
 #define POINTER_ALIGN   __SIZEOF_POINTER__
 
+#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
+# define __LITTLE_ENDIAN
+# define __LITTLE_ENDIAN_BITFIELD
+#elif __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
+# define __BIG_ENDIAN
+# define __BIG_ENDIAN_BITFIELD
+#endif
+
 #endif /* __XEN_CONFIG_H__ */

base-commit: 7f8c2dd829358406dc9e50d5e386e4d2b20b4303
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Wed Apr 16 11:59:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 11:59:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.955717.1349328 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u51Q4-0006NM-QD; Wed, 16 Apr 2025 11:59:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 955717.1349328; Wed, 16 Apr 2025 11: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 1u51Q4-0006MV-LN; Wed, 16 Apr 2025 11:59:08 +0000
Received: by outflank-mailman (input) for mailman id 955717;
 Wed, 16 Apr 2025 11: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=9TmO=XC=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u51Q3-0006At-F3
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 11:59:07 +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 32adc87c-1aba-11f0-9eaf-5ba50f476ded;
 Wed, 16 Apr 2025 13:59:06 +0200 (CEST)
Received: by mail-wr1-x42a.google.com with SMTP id
 ffacd0b85a97d-3912d2c89ecso6295337f8f.2
 for <xen-devel@lists.xenproject.org>; Wed, 16 Apr 2025 04:59:06 -0700 (PDT)
Received: from localhost.localdomain (host-92-26-98-202.as13285.net.
 [92.26.98.202]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4405b5a9846sm18761905e9.35.2025.04.16.04.59.05
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 16 Apr 2025 04:59: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: 32adc87c-1aba-11f0-9eaf-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744804746; x=1745409546; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=zUNa1Dyx+tMseYVZXh4eCgKt5Xt2Q/iT4S+G6caeN+A=;
        b=gdjnL1HFIg5WY7479hrdIbrnnrnFKekCcADcRVo/ygkMCPHbbmXAqmJVgB7cpjULdx
         U8mpo+++22JFuzIWa0zfGxQ4JK066SpnnaJwv6PRt8+Zx5DC/NII9/zL2jliWII+Q0Rq
         xh+MfVKakwQ7oBSW+zVBAdStYFZoQJKULDrZQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744804746; x=1745409546;
        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=zUNa1Dyx+tMseYVZXh4eCgKt5Xt2Q/iT4S+G6caeN+A=;
        b=cPzWfFQtu7OeVi4OtT6hR5MR+v0L33uAQtOgCP8dHnGMdtPvwUYs/pcayqZI6fXPDW
         T0twjxGjT0F1+aKqppZ+jX6hIyoDy2mKcn2l4sbtcu0+fF6gA13BkqXHc0uXcL2jkUZl
         nAqXXEh0I3b6nj7eMcwYa49A0p5vqTM3Mp2AEIfSle1ELCZsmHc7sJ7udjHiYGnlZgg6
         K1xNO0ZC9KhA6j6LvdKHPBmR0vCa9FBRmjD1ZKnh/3KVgvR4Rba/2c1CGV2nu5er9wWI
         kxqnGBlxVc5O+eoPueOsOJCiItF23awB7brKjxpgwiPWJxg9T4p0obPK68+8309yMxeL
         TquA==
X-Gm-Message-State: AOJu0YybF82WqppUUOxbJwuHMaFzy04dU82lWrMYrFOuo9LBxUuLjk4F
	ENIApU6HRDBqBx1PnFWjaashM6PaLS8dXr9hzdq+yWxrqQV1dTg6IqHHauA8MUdsJNCt0ZQGXz3
	Qwz4=
X-Gm-Gg: ASbGncsZp86c1nGFGtARE0FqR7MsmliAOqc9irlBcH9nJ26dHcchPsQ5YG3iheIxvag
	hR7R4jbEdoHnPiiILGvOguW4Fas81CUGcpxhs1yRiIjhX6NvxCa1+5rjiuOt+Ie9/ZoCtdwbAdP
	5rbHHugakUFjkcz0LvO1dp6mf4yptGaPcFO+uGJyqA2rWmxMDovDDefqPqvDlGPNLrzjqsoMLZc
	nurllwfggs/n2WJFqD/5NZCGE368PtksS9VU5OL/bDKW4Zg3IGbMybvOJjLPxFx4buTDUANzfD+
	P5QCwWj7DI/jXuWDb/J0wJcsMn+XtRw+bwrWt2ax8vrNYC8oQM0w9Gox2XJYN05r4pRA33px7df
	1PI+A2LwjnuJFBw==
X-Google-Smtp-Source: AGHT+IFC4KxZoundul9p9QvnfODv9XvUcsDB9qkah3he6c9DvXWbth2Ekotn4vNSN2k4PfjCVyFRhw==
X-Received: by 2002:a5d:584d:0:b0:391:41c9:7a87 with SMTP id ffacd0b85a97d-39ee5baf64bmr1447365f8f.51.1744804745744;
        Wed, 16 Apr 2025 04:59:05 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Lin Liu <lin.liu@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Shawn Anastasio <sanastasio@raptorengineering.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>
Subject: [PATCH v6 03/15] xen/lib: Switch to xen/byteorder.h
Date: Wed, 16 Apr 2025 12:58:48 +0100
Message-Id: <20250416115900.2491661-4-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250416115900.2491661-1-andrew.cooper3@citrix.com>
References: <20250416115900.2491661-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: Lin Liu <lin.liu@citrix.com>

In divmod.c, additionally swap xen/lib.h for xen/macros.h as only ABS() is
needed.

In find-next-bit.c, ext2 has nothing to do with this logic.  It was a local
modification when the logic was imported from Linux, because Xen didn't have a
suitable helper.

The new infrastructure does have a suitable primitive, so use it.

No functional change.

Signed-off-by: Lin Liu <lin.liu@citrix.com>
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Michal Orzel <michal.orzel@amd.com>
CC: Jan Beulich <jbeulich@suse.com>
CC: Julien Grall <julien@xen.org>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
CC: Bertrand Marquis <bertrand.marquis@arm.com>
CC: Shawn Anastasio <sanastasio@raptorengineering.com>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
CC: Daniel P. Smith <dpsmith@apertussolutions.com>
CC: Lin Liu <lin.liu@citrix.com>

The find-next-bit.c changes, being inside __BIG_ENDIAN aren't even compiled in
any build of Xen.  I manually checked that they compiled.

v5:
 * Rebase
 * Include a fixto divmod.c
 * Explain why even Linux has never had anything by the name ext2_swab()
---
 xen/lib/divmod.c        |  4 ++--
 xen/lib/find-next-bit.c | 39 +++++++--------------------------------
 2 files changed, 9 insertions(+), 34 deletions(-)

diff --git a/xen/lib/divmod.c b/xen/lib/divmod.c
index 0377d62130ae..063e867a81ed 100644
--- a/xen/lib/divmod.c
+++ b/xen/lib/divmod.c
@@ -1,6 +1,6 @@
-#include <xen/lib.h>
+#include <xen/byteorder.h>
+#include <xen/macros.h>
 #include <xen/types.h>
-#include <asm/byteorder.h>
 
 /*
  * A couple of 64 bit operations ported from FreeBSD.
diff --git a/xen/lib/find-next-bit.c b/xen/lib/find-next-bit.c
index 761b02739841..9b8d7814f20c 100644
--- a/xen/lib/find-next-bit.c
+++ b/xen/lib/find-next-bit.c
@@ -9,8 +9,7 @@
  * 2 of the License, or (at your option) any later version.
  */
 #include <xen/bitops.h>
-
-#include <asm/byteorder.h>
+#include <xen/byteorder.h>
 
 #define __ffs(x) (ffsl(x) - 1)
 #define ffz(x) __ffs(~(x))
@@ -164,30 +163,6 @@ EXPORT_SYMBOL(find_first_zero_bit);
 
 #ifdef __BIG_ENDIAN
 
-/* include/linux/byteorder does not support "unsigned long" type */
-static inline unsigned long ext2_swabp(const unsigned long * x)
-{
-#if BITS_PER_LONG == 64
-	return (unsigned long) __swab64p((u64 *) x);
-#elif BITS_PER_LONG == 32
-	return (unsigned long) __swab32p((u32 *) x);
-#else
-#error BITS_PER_LONG not defined
-#endif
-}
-
-/* include/linux/byteorder doesn't support "unsigned long" type */
-static inline unsigned long ext2_swab(const unsigned long y)
-{
-#if BITS_PER_LONG == 64
-	return (unsigned long) __swab64((u64) y);
-#elif BITS_PER_LONG == 32
-	return (unsigned long) __swab32((u32) y);
-#else
-#error BITS_PER_LONG not defined
-#endif
-}
-
 #ifndef find_next_zero_bit_le
 unsigned long find_next_zero_bit_le(const void *addr, unsigned
 		long size, unsigned long offset)
@@ -202,7 +177,7 @@ unsigned long find_next_zero_bit_le(const void *addr, unsigned
 	size -= result;
 	offset &= (BITS_PER_LONG - 1UL);
 	if (offset) {
-		tmp = ext2_swabp(p++);
+		tmp = bswapl(*p++);
 		tmp |= (~0UL >> (BITS_PER_LONG - offset));
 		if (size < BITS_PER_LONG)
 			goto found_first;
@@ -220,7 +195,7 @@ unsigned long find_next_zero_bit_le(const void *addr, unsigned
 	}
 	if (!size)
 		return result;
-	tmp = ext2_swabp(p);
+	tmp = bswapl(*p);
 found_first:
 	tmp |= ~0UL << size;
 	if (tmp == ~0UL)	/* Are any bits zero? */
@@ -229,7 +204,7 @@ unsigned long find_next_zero_bit_le(const void *addr, unsigned
 	return result + ffz(tmp);
 
 found_middle_swap:
-	return result + ffz(ext2_swab(tmp));
+	return result + ffz(bswapl(tmp));
 }
 EXPORT_SYMBOL(find_next_zero_bit_le);
 #endif
@@ -248,7 +223,7 @@ unsigned long find_next_bit_le(const void *addr, unsigned
 	size -= result;
 	offset &= (BITS_PER_LONG - 1UL);
 	if (offset) {
-		tmp = ext2_swabp(p++);
+		tmp = bswapl(*p++);
 		tmp &= (~0UL << offset);
 		if (size < BITS_PER_LONG)
 			goto found_first;
@@ -267,7 +242,7 @@ unsigned long find_next_bit_le(const void *addr, unsigned
 	}
 	if (!size)
 		return result;
-	tmp = ext2_swabp(p);
+	tmp = bswapl(*p);
 found_first:
 	tmp &= (~0UL >> (BITS_PER_LONG - size));
 	if (tmp == 0UL)		/* Are any bits set? */
@@ -276,7 +251,7 @@ unsigned long find_next_bit_le(const void *addr, unsigned
 	return result + __ffs(tmp);
 
 found_middle_swap:
-	return result + __ffs(ext2_swab(tmp));
+	return result + __ffs(bswapl(tmp));
 }
 EXPORT_SYMBOL(find_next_bit_le);
 #endif
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Wed Apr 16 11:59:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 11:59:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.955720.1349360 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u51Q7-0007AN-QL; Wed, 16 Apr 2025 11:59:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 955720.1349360; Wed, 16 Apr 2025 11:59: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 1u51Q7-00078t-I4; Wed, 16 Apr 2025 11:59:11 +0000
Received: by outflank-mailman (input) for mailman id 955720;
 Wed, 16 Apr 2025 11:59: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=9TmO=XC=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u51Q5-0006At-GP
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 11:59:09 +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 343109fa-1aba-11f0-9eaf-5ba50f476ded;
 Wed, 16 Apr 2025 13:59:09 +0200 (CEST)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-43cfe63c592so72078725e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 16 Apr 2025 04:59:09 -0700 (PDT)
Received: from localhost.localdomain (host-92-26-98-202.as13285.net.
 [92.26.98.202]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4405b5a9846sm18761905e9.35.2025.04.16.04.59.07
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 16 Apr 2025 04:59: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: 343109fa-1aba-11f0-9eaf-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744804748; x=1745409548; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=1daQrbWI9UKwuEhY3SZBXcJke4ogYtrZfiRlr7lZLK8=;
        b=QB1m3j6aJ0qa30+P6+dyHHCNS8MMeJvmIRD0OzSt3C3KMjRCDmqmL4QWbPFRntR1vK
         XZVoihQj/yUYZT9O78kfFKeJGbkGRdYkefwKp53AOPA5StPkZS3XRy3IxPulCU0H80Jd
         O3lwpdykuKBD9vNs8bOP+RTxa3+V3izGK7zhE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744804748; x=1745409548;
        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=1daQrbWI9UKwuEhY3SZBXcJke4ogYtrZfiRlr7lZLK8=;
        b=DE7v0aITNHUM9DSVdjexNnlOaScaYWDyo4vYEjuyMIQjRfRvGWCEH3gEXnPp2KN/lE
         /1dmWnZHrJPWr/toMdsA3nj+BK+g1jE0iH3kAsf/RTeZmFEIHO34S7FwdotBZLz51HRN
         /nZUjdxukcovCvOk+72UPmcgfc1cY8pn13iM0ibFscNjHRvWO8CJX5H4r+N9bQ+EVOff
         Qv9pAZIncK8YUKOszc4vRCo/aEfrCoyzSiLa8t9Y0BY8GsoFUHYIvwa1FYiyz62vn0+6
         USRd9fFLB5ge5giOYYcRVdidLON5jLbXWUk6fX5WI8iUyjlb2dm7XBWGIkutVS1aWRzD
         K9uA==
X-Gm-Message-State: AOJu0YwnrU9PKvkfacbBWSfBG+IOHMV1YZHaWL0STAxkLx9AWTfP4l21
	ye5v7smUpIemKMo1VPQn7qO5Ywl7iM9FnTUnk6lMUdoviTr/Yhi0NPCodcGaoA4RV8TRVuh3tBm
	MpkA=
X-Gm-Gg: ASbGncujSKvuBKa3QlU0p8cJ/hJV3JnO+dH735QafY+o7uSgDoe3PoJyEgBZLmip7FP
	sYvANKAU3sX3uk0UljJtaaD2055u3oaQuYyj7deS/5GjBXBL9s3tX49YShK0JyU47dyaoFtO3kV
	5RtZtnLfvsPPglJ2THvNY8WrStDonTWirEufS08y6mMxyoDWT9Oey+Qfrh4tCtKz+TyyTdw7egL
	QGcrgNPvuEu0VGFkQJBmOPrrOFvayns8ShvTBSqi4KZHuwWR9KaiJOKjNzdG5NijjsX9PtTfOj+
	ebyBd0/TL87ubjd6AGQ6PFIukTam5FAAr/5u/3WUD7y7SYD/zxzKG5PY+xD7cq/8CKuWV5REwK6
	xRwtRUlADiWGttg==
X-Google-Smtp-Source: AGHT+IFgpfcqBIvlugUUmrvz/YH5fAtZyyY+frKoounRJDMbxOfMjexVXjUUxjtZ+ntbvBpdiGHb+A==
X-Received: by 2002:a05:600c:1c1c:b0:43d:82c:2b23 with SMTP id 5b1f17b1804b1-4405d6ad1a1mr14089215e9.23.1744804748260;
        Wed, 16 Apr 2025 04:59:08 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Lin Liu <lin.liu@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Shawn Anastasio <sanastasio@raptorengineering.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>
Subject: [PATCH v6 06/15] xen/arch: Switch to new byteorder infrastructure
Date: Wed, 16 Apr 2025 12:58:51 +0100
Message-Id: <20250416115900.2491661-7-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250416115900.2491661-1-andrew.cooper3@citrix.com>
References: <20250416115900.2491661-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: Lin Liu <lin.liu@citrix.com>

This needs to be done in several steps, because of common vs arch issues.
Start by using the new common infastructure inside the arch infrastructure.

libelf-private.h is awkward, and the only thing in Xen using swab??()
directly.  It needs updating at the same time.

Signed-off-by: Lin Liu <lin.liu@citrix.com>
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Michal Orzel <michal.orzel@amd.com>
CC: Jan Beulich <jbeulich@suse.com>
CC: Julien Grall <julien@xen.org>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
CC: Bertrand Marquis <bertrand.marquis@arm.com>
CC: Shawn Anastasio <sanastasio@raptorengineering.com>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
CC: Daniel P. Smith <dpsmith@apertussolutions.com>
CC: Lin Liu <lin.liu@citrix.com>

v5:
 * Rebase
 * Rearange from other patches to maintain bisectability
---
 xen/arch/arm/include/asm/byteorder.h   |  4 +---
 xen/arch/ppc/include/asm/byteorder.h   |  8 +-------
 xen/arch/riscv/include/asm/byteorder.h |  4 +---
 xen/arch/x86/include/asm/byteorder.h   | 25 +------------------------
 xen/common/libelf/libelf-private.h     |  6 +++---
 5 files changed, 7 insertions(+), 40 deletions(-)

diff --git a/xen/arch/arm/include/asm/byteorder.h b/xen/arch/arm/include/asm/byteorder.h
index 9c712c47884a..7f1419c45a16 100644
--- a/xen/arch/arm/include/asm/byteorder.h
+++ b/xen/arch/arm/include/asm/byteorder.h
@@ -1,9 +1,7 @@
 #ifndef __ASM_ARM_BYTEORDER_H__
 #define __ASM_ARM_BYTEORDER_H__
 
-#define __BYTEORDER_HAS_U64__
-
-#include <xen/byteorder/little_endian.h>
+#include <xen/byteorder.h>
 
 #endif /* __ASM_ARM_BYTEORDER_H__ */
 /*
diff --git a/xen/arch/ppc/include/asm/byteorder.h b/xen/arch/ppc/include/asm/byteorder.h
index 2b5f6b9f6321..8df6adbf0d7d 100644
--- a/xen/arch/ppc/include/asm/byteorder.h
+++ b/xen/arch/ppc/include/asm/byteorder.h
@@ -1,12 +1,6 @@
 #ifndef _ASM_PPC_BYTEORDER_H
 #define _ASM_PPC_BYTEORDER_H
 
-#define __arch__swab16 __builtin_bswap16
-#define __arch__swab32 __builtin_bswap32
-#define __arch__swab64 __builtin_bswap64
-
-#define __BYTEORDER_HAS_U64__
-
-#include <xen/byteorder/little_endian.h>
+#include <xen/byteorder.h>
 
 #endif /* _ASM_PPC_BYTEORDER_H */
diff --git a/xen/arch/riscv/include/asm/byteorder.h b/xen/arch/riscv/include/asm/byteorder.h
index 8ca65e1b330e..a32bca02df38 100644
--- a/xen/arch/riscv/include/asm/byteorder.h
+++ b/xen/arch/riscv/include/asm/byteorder.h
@@ -1,9 +1,7 @@
 #ifndef ASM__RISCV__BYTEORDER_H
 #define ASM__RISCV__BYTEORDER_H
 
-#define __BYTEORDER_HAS_U64__
-
-#include <xen/byteorder/little_endian.h>
+#include <xen/byteorder.h>
 
 #endif /* ASM__RISCV__BYTEORDER_H */
 /*
diff --git a/xen/arch/x86/include/asm/byteorder.h b/xen/arch/x86/include/asm/byteorder.h
index 44c240376d3a..3524a6cee741 100644
--- a/xen/arch/x86/include/asm/byteorder.h
+++ b/xen/arch/x86/include/asm/byteorder.h
@@ -1,29 +1,6 @@
 #ifndef __ASM_X86_BYTEORDER_H__
 #define __ASM_X86_BYTEORDER_H__
 
-#include <xen/types.h>
-#include <xen/compiler.h>
-
-static inline attr_const uint32_t ___arch__swab32(uint32_t x)
-{
-    asm("bswap %0" : "=r" (x) : "0" (x));
-    return x;
-}
-
-static inline attr_const uint64_t ___arch__swab64(uint64_t x)
-{ 
-    asm ( "bswap %0" : "+r" (x) );
-    return x;
-} 
-
-/* Do not define swab16.  Gcc is smart enough to recognize "C" version and
-   convert it into rotation or exhange.  */
-
-#define __arch__swab64(x) ___arch__swab64(x)
-#define __arch__swab32(x) ___arch__swab32(x)
-
-#define __BYTEORDER_HAS_U64__
-
-#include <xen/byteorder/little_endian.h>
+#include <xen/byteorder.h>
 
 #endif /* __ASM_X86_BYTEORDER_H__ */
diff --git a/xen/common/libelf/libelf-private.h b/xen/common/libelf/libelf-private.h
index 197d7a7623a3..65417dffc8a0 100644
--- a/xen/common/libelf/libelf-private.h
+++ b/xen/common/libelf/libelf-private.h
@@ -31,9 +31,9 @@
    printk(fmt, ## args )
 
 #define strtoull(str, end, base) simple_strtoull(str, end, base)
-#define bswap_16(x) swab16(x)
-#define bswap_32(x) swab32(x)
-#define bswap_64(x) swab64(x)
+#define bswap_16(x) bswap16(x)
+#define bswap_32(x) bswap32(x)
+#define bswap_64(x) bswap64(x)
 
 #else /* !__XEN__ */
 
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Wed Apr 16 11:59:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 11:59:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.955721.1349367 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u51Q8-0007HB-Ec; Wed, 16 Apr 2025 11:59:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 955721.1349367; Wed, 16 Apr 2025 11:59: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 1u51Q8-0007Ck-0m; Wed, 16 Apr 2025 11:59:12 +0000
Received: by outflank-mailman (input) for mailman id 955721;
 Wed, 16 Apr 2025 11:59: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=9TmO=XC=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u51Q6-0006Ay-03
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 11:59:10 +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 33a33b81-1aba-11f0-9ffb-bf95429c2676;
 Wed, 16 Apr 2025 13:59:08 +0200 (CEST)
Received: by mail-wr1-x433.google.com with SMTP id
 ffacd0b85a97d-39149bccb69so6546101f8f.2
 for <xen-devel@lists.xenproject.org>; Wed, 16 Apr 2025 04:59:08 -0700 (PDT)
Received: from localhost.localdomain (host-92-26-98-202.as13285.net.
 [92.26.98.202]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4405b5a9846sm18761905e9.35.2025.04.16.04.59.06
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 16 Apr 2025 04:59: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: 33a33b81-1aba-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744804747; x=1745409547; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=o2XegFQnInsmfNXqMeBFji/7yyCuSkRmN52heLn+Rqs=;
        b=JrXB50+lYqhBGxBSw36JiDoj8nz4W5rSB2pk90QC3raJYHrQS7dV630oWhfm77tZNl
         zVCsrG40okgTXDcXZxouo/NQKZi7RZbsHfMsSVh18qyRkvXW50vo+xSzt95UI00qrx6f
         hXKdQDs9q2tS/LWIhDTXZiyaOBxB432N0Fhv8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744804747; x=1745409547;
        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=o2XegFQnInsmfNXqMeBFji/7yyCuSkRmN52heLn+Rqs=;
        b=vLejQO8TC7HMESzgLHdnOt1tOsd0BpzIxBkmG1VsfmU/aR4ukKRj8SYU0gZJuqSoJh
         PsaS5tbALvDB7LxQnthkw/CtN6jg1OAWVx5xl5gnUXErv4/HuPTrjhZkr3KpD09G8jz+
         OZDPTJfeo2tIRG7pMANr/VNp8MjKYsNb2xvtTjrC2mZeXc4EjGaKGGEKY4BPK/3Ugu8p
         qHEXze0LzTgnqTU1MtJ6ot5ixF9kbkpoNrWa9+54HkriWPsn5I3xjimQrzv9tA4rLCL4
         ikxdGc6UUs8N2jlcxvMYEENBYJ4wHuet7g6aEFvqpuzvYkc2GE7k2E5o+EQw7bQTc2iF
         YaRA==
X-Gm-Message-State: AOJu0YyhHqWUQyDl4unjodrmstmmGXPGqw2wvrlBSirEZ6f3nvGE78+I
	b2VTM7th9yrJnW2NZOPg6cnwctZRnEUBYu8y939B4ayFokbBPffnUXjT3VPpQTDBZCnfgmFaLue
	OL7Y=
X-Gm-Gg: ASbGncsjpoOAJ55D/qDg9Suv42Fp3NRJ8B9km0BHReoFBD+OltwCgJ2j7UO5Hq4gAtS
	aB0T1ae4+r1yvOkvz+bOZs39ONaNNUxsquTQwfXfQh7oD/Ut6WdxYXA3lbAQnAV/IawdFE8iHml
	4Qzg86tAqm9bI28bnUMMuU7SNnRkQ28KDhaHUDBKuVj3yxGvZjcUdcY3Mcw0eSH7FoziDLSBRvV
	SeaTlbn7vtf+YhhKrypuIfW68P0x5Q0FE8Uh44WNHxXhfxw8KNvZgP5u3WFny/bH5S3390oNolc
	y5Ci4lMcqYsE2ovctOhuvD1Skxc205XQbzPnb3yc5WcleSILe1V3Sp8/utlzGqTlCoicCa5Biu7
	kNs8v6AkRGLDvqUalld4FLuaF
X-Google-Smtp-Source: AGHT+IFnpWMeUKpKAYDo8WHZK3az+S0rAtQDGZTNX+eCfLoukZHNePftojb/WNxXpv12ovIM+CpgSA==
X-Received: by 2002:a5d:64ef:0:b0:39c:12ce:67d with SMTP id ffacd0b85a97d-39ee5b0fee4mr1485921f8f.9.1744804747473;
        Wed, 16 Apr 2025 04:59:07 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Lin Liu <lin.liu@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Shawn Anastasio <sanastasio@raptorengineering.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>
Subject: [PATCH v6 05/15] xen/decompressors: Remove use of *_to_cpup() helpers
Date: Wed, 16 Apr 2025 12:58:50 +0100
Message-Id: <20250416115900.2491661-6-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250416115900.2491661-1-andrew.cooper3@citrix.com>
References: <20250416115900.2491661-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: Lin Liu <lin.liu@citrix.com>

These wrappers simply hide a deference, which adds to the cognitive complexity
of reading the code.  As such, they're not going to be included in the new
byteswap infrastructure.

No functional change.

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

v6:
 * Fix lz4 and lzo1x too.

v5:
 * Rebase
 * Rearranged from other patches
---
 tools/libs/guest/xg_dom_decompress_lz4.c          | 10 ++++++++--
 tools/libs/guest/xg_dom_decompress_unsafe_lzo1x.c | 14 ++++----------
 tools/libs/guest/xg_dom_decompress_unsafe_xz.c    | 13 +++++++------
 xen/common/lz4/defs.h                             |  6 +++++-
 xen/common/unlzo.c                                | 12 ++++++++++--
 xen/common/xz/private.h                           | 12 +++++++++---
 6 files changed, 43 insertions(+), 24 deletions(-)

diff --git a/tools/libs/guest/xg_dom_decompress_lz4.c b/tools/libs/guest/xg_dom_decompress_lz4.c
index b26cce3ec532..53ef0bf328ed 100644
--- a/tools/libs/guest/xg_dom_decompress_lz4.c
+++ b/tools/libs/guest/xg_dom_decompress_lz4.c
@@ -3,6 +3,8 @@
 #include <inttypes.h>
 #include <stdint.h>
 
+#include INCLUDE_ENDIAN_H
+
 #define XG_NEED_UNALIGNED
 #include "xg_private.h"
 #include "xg_dom_decompress.h"
@@ -17,9 +19,13 @@ typedef uint64_t u64;
 #define likely(a) a
 #define unlikely(a) a
 
-static inline uint_fast16_t le16_to_cpup(const unsigned char *buf)
+static inline uint16_t le16_to_cpu(uint16_t v)
 {
-    return buf[0] | (buf[1] << 8);
+#if BYTE_ORDER == BIG_ENDIAN
+    return __builtin_bswap16(v);
+#else
+    return v;
+#endif
 }
 
 #include "../../xen/include/xen/lz4.h"
diff --git a/tools/libs/guest/xg_dom_decompress_unsafe_lzo1x.c b/tools/libs/guest/xg_dom_decompress_unsafe_lzo1x.c
index e58c1b95ed17..3f6b133ccf9d 100644
--- a/tools/libs/guest/xg_dom_decompress_unsafe_lzo1x.c
+++ b/tools/libs/guest/xg_dom_decompress_unsafe_lzo1x.c
@@ -16,25 +16,19 @@ typedef uint64_t u64;
 #define noinline
 #define unlikely(a) a
 
-static inline u16 be16_to_cpup(const u16 *p)
+static inline u16 be16_to_cpu(const u16 v)
 {
-	u16 v = *p;
 #if BYTE_ORDER == LITTLE_ENDIAN
-	return (((v & 0x00ffU) << 8) |
-                ((v & 0xff00U) >> 8));
+	return __builtin_bswap16(v);
 #else
 	return v;
 #endif
 }
 
-static inline u32 be32_to_cpup(const u32 *p)
+static inline u32 be32_to_cpup(const u32 v)
 {
-	u32 v = *p;
 #if BYTE_ORDER == LITTLE_ENDIAN
-	return (((v & 0x000000ffUL) << 24) |
-                ((v & 0x0000ff00UL) <<  8) |
-                ((v & 0x00ff0000UL) >>  8) |
-                ((v & 0xff000000UL) >> 24));
+	return __builtin_bswap32(v);
 #else
 	return v;
 #endif
diff --git a/tools/libs/guest/xg_dom_decompress_unsafe_xz.c b/tools/libs/guest/xg_dom_decompress_unsafe_xz.c
index 80eed912dd68..7dbd2622c3b8 100644
--- a/tools/libs/guest/xg_dom_decompress_unsafe_xz.c
+++ b/tools/libs/guest/xg_dom_decompress_unsafe_xz.c
@@ -19,18 +19,19 @@ typedef uint32_t __le32;
 static inline u32 cpu_to_le32(const u32 v)
 {
 #if BYTE_ORDER == BIG_ENDIAN
-	return (((v & 0x000000ffUL) << 24) |
-	        ((v & 0x0000ff00UL) <<  8) |
-	        ((v & 0x00ff0000UL) >>  8) |
-	        ((v & 0xff000000UL) >> 24));
+        return __builtin_bswap32(v);
 #else
 	return v;
 #endif
 }
 
-static inline u32 le32_to_cpup(const u32 *p)
+static inline u32 le32_to_cpu(const u32 p)
 {
-	return cpu_to_le32(*p);
+#if BYTE_ORDER == BIG_ENDIAN
+        return __builtin_bswap32(v);
+#else
+	return v;
+#endif
 }
 
 #define __force
diff --git a/xen/common/lz4/defs.h b/xen/common/lz4/defs.h
index ecfbf07f8323..e477806634c1 100644
--- a/xen/common/lz4/defs.h
+++ b/xen/common/lz4/defs.h
@@ -18,7 +18,11 @@
 
 static inline u16 get_unaligned_le16(const void *p)
 {
-	return le16_to_cpup(p);
+	u16 v;
+
+	memcpy(&v, p, sizeof(v));
+
+	return le16_to_cpu(v);
 }
 
 #endif
diff --git a/xen/common/unlzo.c b/xen/common/unlzo.c
index acb8dff600fc..17efb1cc8f1d 100644
--- a/xen/common/unlzo.c
+++ b/xen/common/unlzo.c
@@ -39,12 +39,20 @@
 
 static inline u16 get_unaligned_be16(const void *p)
 {
-	return be16_to_cpup(p);
+	u16 v;
+
+	memcpy(&v, p, sizeof(v));
+
+	return be16_to_cpu(v);
 }
 
 static inline u32 get_unaligned_be32(const void *p)
 {
-	return be32_to_cpup(p);
+	u32 v;
+
+	memcpy(&v, p, sizeof(v));
+
+	return be32_to_cpu(v);
 }
 
 #endif
diff --git a/xen/common/xz/private.h b/xen/common/xz/private.h
index 2299705378ac..a63379994fd6 100644
--- a/xen/common/xz/private.h
+++ b/xen/common/xz/private.h
@@ -18,17 +18,23 @@
 
 static inline u32 get_unaligned_le32(const void *p)
 {
-	return le32_to_cpup(p);
+	u32 v;
+
+	memcpy(&v, p, sizeof(v));
+
+	return le32_to_cpu(v);
 }
 
 static inline void put_unaligned_le32(u32 val, void *p)
 {
-	*(__force __le32*)p = cpu_to_le32(val);
+	u32 v = cpu_to_le32(val);
+
+	memcpy(p, &v, sizeof(v));
 }
 
 #endif
 
-#define get_le32(p) le32_to_cpup((const uint32_t *)(p))
+#define get_le32(p) le32_to_cpu(*(const uint32_t *)(p))
 
 #define false 0
 #define true 1
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Wed Apr 16 11:59:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 11:59:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.955722.1349375 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u51Q9-0007VB-5h; Wed, 16 Apr 2025 11:59:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 955722.1349375; Wed, 16 Apr 2025 11: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 1u51Q8-0007T0-Tu; Wed, 16 Apr 2025 11:59:12 +0000
Received: by outflank-mailman (input) for mailman id 955722;
 Wed, 16 Apr 2025 11:59: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=9TmO=XC=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u51Q6-0006At-9i
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 11:59:10 +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 34a39763-1aba-11f0-9eaf-5ba50f476ded;
 Wed, 16 Apr 2025 13:59:09 +0200 (CEST)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-43d0c18e84eso33429075e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 16 Apr 2025 04:59:09 -0700 (PDT)
Received: from localhost.localdomain (host-92-26-98-202.as13285.net.
 [92.26.98.202]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4405b5a9846sm18761905e9.35.2025.04.16.04.59.08
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 16 Apr 2025 04:59: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: 34a39763-1aba-11f0-9eaf-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744804749; x=1745409549; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=bAHFmZ0YTI0ch3CUZiHZjytiZehcl/1327xDDjJIcTI=;
        b=rpxo53rYdax78cZI5TNTV4gX2brpnBpTxVJU5Fm7PGwqexlJkExrL4X06s3wL2u9Fd
         Iki7HyGY4PGJ7cqNoe8EVXbSI4vgURYTp2mfGJhsKXvVR+msMc1/rL0CmhViJKsPuwMM
         2kA0dZUk3230RIoq6ZSfnZU8nVjSwL8SR9jfA=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744804749; x=1745409549;
        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=bAHFmZ0YTI0ch3CUZiHZjytiZehcl/1327xDDjJIcTI=;
        b=kbopPPNnFlfmDxAcocuWj95J7Gli544RremGHJr/Ngo507Efz6H6V92w7xLB3cwuqe
         bDTOmGFNJWhJfFvfd6d7Vp+58Ple9+27G7NjU3ojGi5gUX+FgSbYK/veQOtLkwpKzg/y
         DU+bep84aCpb0xgU7bEqtOvz2LwcsoDotbjD4wV1v1pL2YWf4J8+ISW68Kd9GPELi3+/
         oSJLhMeVVMaAy2xTv83YQaibZOD5SwYbTYlXNGP7grGgeldsEHBX4BRxsaEPJuEj8n2Z
         aVxUDKcYik1tuAI62+xavYDq7YeKBeHa+wFhalgKn3Tg3zKSuQs404tMYEOqTLYdn+SD
         fxxw==
X-Gm-Message-State: AOJu0YxMaynAdxgBghGvEBEjGESsvnxu0fPdH5l5bKQCRcwIcPCfpnAW
	Wv+ua2XdOFrJHTcH4MP+tpunWKhIU/L3Dg5QC/pFdzuLLxXjqMhyvYhqPkCTwgwUA4zkphyz1GH
	q8wc=
X-Gm-Gg: ASbGnctEEOy3mwXpPkErFZ1vmnP3a5G2TlWNsLE3Bhsqle+ieXYmHuSzJZ8EdEqSk8m
	0A6hXYW2jCFCZHx9q0TUYp3tKAL5o7V4nMR4lk73WKO91V68Wr/NvgIHVNxTunqzUaQe0WKXLm5
	TqWAC9kmjSVc5D1M1ksmjpPNG3sQU2Zt1n5I3zcTEogquGmVFTsaQ/tRCeceWANpoAPL73sroYk
	UrnnSH+mg5KrM3QlDdPoY8+0oheWFOaQrrQGOzWKUFhD4UEZgBelf0pFRkY2jPQryIW/S5/FBtw
	xsnjDVmAZPiC+qJrkWFB6x0b3sljMKQmfU7q1dVAzy/iqQa5L64s1dkKke5ID+7CK7z8QtP8gnS
	rbGnw1fim6Pda9g==
X-Google-Smtp-Source: AGHT+IG3f3gIuKL6j33O8Q/WmKOufRM5b+ujOD3HzCxzUtYppN6Oy7/An7BvcbbCGoXrkokkPdTEjQ==
X-Received: by 2002:a05:600c:3487:b0:43c:f70a:2af0 with SMTP id 5b1f17b1804b1-4405d62a49cmr19411175e9.16.1744804749192;
        Wed, 16 Apr 2025 04:59:09 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Lin Liu <lin.liu@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Shawn Anastasio <sanastasio@raptorengineering.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>
Subject: [PATCH v6 07/15] xen/decompressors: Use new byteorder infrastructure
Date: Wed, 16 Apr 2025 12:58:52 +0100
Message-Id: <20250416115900.2491661-8-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250416115900.2491661-1-andrew.cooper3@citrix.com>
References: <20250416115900.2491661-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: Lin Liu <lin.liu@citrix.com>

unaligned.h already inlcudes byteorder.h, so most can simply be dropped.

No functional change.

Signed-off-by: Lin Liu <lin.liu@citrix.com>
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Michal Orzel <michal.orzel@amd.com>
CC: Jan Beulich <jbeulich@suse.com>
CC: Julien Grall <julien@xen.org>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
CC: Bertrand Marquis <bertrand.marquis@arm.com>
CC: Shawn Anastasio <sanastasio@raptorengineering.com>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
CC: Daniel P. Smith <dpsmith@apertussolutions.com>
CC: Lin Liu <lin.liu@citrix.com>

v5:
 * New
---
 tools/libs/guest/xg_dom_decompress_unsafe_zstd.c | 3 +--
 xen/common/lz4/defs.h                            | 1 -
 xen/common/lzo.c                                 | 1 -
 xen/common/unlzo.c                               | 1 -
 xen/common/xz/private.h                          | 1 -
 5 files changed, 1 insertion(+), 6 deletions(-)

diff --git a/tools/libs/guest/xg_dom_decompress_unsafe_zstd.c b/tools/libs/guest/xg_dom_decompress_unsafe_zstd.c
index ff45732a3616..319816a390eb 100644
--- a/tools/libs/guest/xg_dom_decompress_unsafe_zstd.c
+++ b/tools/libs/guest/xg_dom_decompress_unsafe_zstd.c
@@ -30,9 +30,8 @@ typedef uint64_t __be64;
 
 #undef ERROR
 
-#define __BYTEORDER_HAS_U64__
 #define __TYPES_H__ /* xen/types.h guard */
-#include "../../xen/include/xen/byteorder/little_endian.h"
+#include "../../xen/include/xen/byteorder.h"
 #include "../../xen/include/xen/unaligned.h"
 #include "../../xen/include/xen/xxhash.h"
 #include "../../xen/lib/xxhash64.c"
diff --git a/xen/common/lz4/defs.h b/xen/common/lz4/defs.h
index e477806634c1..b697a06c00d7 100644
--- a/xen/common/lz4/defs.h
+++ b/xen/common/lz4/defs.h
@@ -12,7 +12,6 @@
 #define COMMON_LZ4_DEFS_H
 
 #ifdef __XEN__
-#include <asm/byteorder.h>
 #include <xen/unaligned.h>
 #else
 
diff --git a/xen/common/lzo.c b/xen/common/lzo.c
index 07b4017812dc..0393ec5c4472 100644
--- a/xen/common/lzo.c
+++ b/xen/common/lzo.c
@@ -68,7 +68,6 @@
 
 #ifdef __XEN__
 #include <xen/lib.h>
-#include <asm/byteorder.h>
 #include <xen/unaligned.h>
 #else
 #define get_unaligned_le16(_p) (*(u16 *)(_p))
diff --git a/xen/common/unlzo.c b/xen/common/unlzo.c
index 17efb1cc8f1d..9a9d39c4239b 100644
--- a/xen/common/unlzo.c
+++ b/xen/common/unlzo.c
@@ -33,7 +33,6 @@
 #include <xen/lzo.h>
 
 #ifdef __XEN__
-#include <asm/byteorder.h>
 #include <xen/unaligned.h>
 #else
 
diff --git a/xen/common/xz/private.h b/xen/common/xz/private.h
index a63379994fd6..3dce124fa743 100644
--- a/xen/common/xz/private.h
+++ b/xen/common/xz/private.h
@@ -12,7 +12,6 @@
 
 #ifdef __XEN__
 #include <xen/kernel.h>
-#include <asm/byteorder.h>
 #include <xen/unaligned.h>
 #else
 
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Wed Apr 16 11:59:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 11:59:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.955723.1349392 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u51QA-0007xp-MB; Wed, 16 Apr 2025 11:59:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 955723.1349392; Wed, 16 Apr 2025 11: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 1u51QA-0007vP-EC; Wed, 16 Apr 2025 11:59:14 +0000
Received: by outflank-mailman (input) for mailman id 955723;
 Wed, 16 Apr 2025 11: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=9TmO=XC=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u51Q8-0006At-2e
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 11:59:12 +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 35b8e1c9-1aba-11f0-9eaf-5ba50f476ded;
 Wed, 16 Apr 2025 13:59:11 +0200 (CEST)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-43cfdc2c8c9so36615465e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 16 Apr 2025 04:59:11 -0700 (PDT)
Received: from localhost.localdomain (host-92-26-98-202.as13285.net.
 [92.26.98.202]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4405b5a9846sm18761905e9.35.2025.04.16.04.59.10
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 16 Apr 2025 04:59: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: 35b8e1c9-1aba-11f0-9eaf-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744804751; x=1745409551; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=3cQlbXBh+jcctTBYJ/pIz+f4SLnRiEo7nbWjXEuys/8=;
        b=lXXD77ZcIERhAsGh5hG8mK44eQn1UmhgNaNWXEcW/33X5b606jSGwD2LmAZy9ujspc
         O4ZepxM8M0qwliCToB97bpaHWPFSWCFgSUgw5ows5s+L3g5BclYyEIdeS6jQgGkErHti
         ZBa6ok9TQ8E0IdsO40oYMNp/WC7yWspUrSRMQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744804751; x=1745409551;
        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=3cQlbXBh+jcctTBYJ/pIz+f4SLnRiEo7nbWjXEuys/8=;
        b=nP7nhembtEy9z6KVg31ncutJREKcZ77NLrggPye2+Ho7UFwGRKmfGrZIMPYlSEXnwg
         0LSvpeVkt3cAD6/sk9aD7ozMla3NQd/6jSQ30kwIwDT4tpXkOVDHnzxM6iVUcXdEXGou
         sRQSGEN7xGGQzJNLviI0UA69MVUtDHEP83IbC6UAAMM7X1DVgGVNEbTvfNcBSEBeGNz1
         Q5xnc2VqHBGGZd+OJ+XPwOkAaQelPit3jaGQRdlBTdigntpKcOXzTtNtgGw2RGIhwD/f
         2i/dptsai/qE/kQZcFruso26oaMhFBGYHtUnXU8CB0rxOP1LdppBiQpyoszIlHUT/2eP
         R21Q==
X-Gm-Message-State: AOJu0YxRLgu9kacbu0X/9kf1uWhKqj0ItfntJjajV1vM8j4HtjiA59Ce
	Nc097ccjeuV2fZVku3FgLqGKL/4iBF9IhHnCCHLAJqHDALCwOf2+h7M++HoaYIcdllgs6pKejtp
	iAYw=
X-Gm-Gg: ASbGncuFMLTzH7B6wrBWSwgIrUhD6NrKTvdN88YoffS1uyXbCLG0ct3B06CjTvzl1UH
	nXTGR9u1F/+dYxf/iKrI0Pd4Knh2jxV2Dlbm9k0PMPI7o7Zi9VP1GmvQLpx3P3GJCBvGWaRI80N
	A3VeOwhdaUj65mdtK6DmDxGOFrWx53qcc8RmAkbD67bIPocwDHqOWDsYmzDJf0zt090FTKEhF+9
	cHcNs7gUydthTvy2OkNlUBQ1h/n26SOFtYNXei69fTrboN2HPNOnCEkRUvk2IMolJLQYuyxFvPF
	LPtf9d/MSLXd5mDpBd0Ud5hOvK3DDijr29+NytF4jFxGbX0VXbjwv6zvEvB003VP1TdxT94Dpj5
	N4voUj31XvMFSPQ==
X-Google-Smtp-Source: AGHT+IEQr/bFhOlIxFrn6N+gU79fSmgCSfPoLHNQh2npqot1KwxFoJoszSP6kTUcs2rVUNWncmcX0Q==
X-Received: by 2002:a05:600c:5102:b0:43c:fab3:4fad with SMTP id 5b1f17b1804b1-4405d6276cfmr17791185e9.16.1744804750974;
        Wed, 16 Apr 2025 04:59:10 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Lin Liu <lin.liu@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Shawn Anastasio <sanastasio@raptorengineering.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>
Subject: [PATCH v6 09/15] crypto/vmac: Switch to xen/byteswap.h
Date: Wed, 16 Apr 2025 12:58:54 +0100
Message-Id: <20250416115900.2491661-10-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250416115900.2491661-1-andrew.cooper3@citrix.com>
References: <20250416115900.2491661-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: Lin Liu <lin.liu@citrix.com>

This file has its own implementation of swap bytes. Clean up
the code with xen/byteswap.h.

No functional change.

Signed-off-by: Lin Liu <lin.liu@citrix.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Michal Orzel <michal.orzel@amd.com>
CC: Jan Beulich <jbeulich@suse.com>
CC: Julien Grall <julien@xen.org>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
CC: Bertrand Marquis <bertrand.marquis@arm.com>
CC: Shawn Anastasio <sanastasio@raptorengineering.com>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
CC: Daniel P. Smith <dpsmith@apertussolutions.com>
CC: Lin Liu <lin.liu@citrix.com>
---
 xen/crypto/vmac.c | 76 ++---------------------------------------------
 1 file changed, 3 insertions(+), 73 deletions(-)

diff --git a/xen/crypto/vmac.c b/xen/crypto/vmac.c
index 294dd16a52cb..acb4e015f511 100644
--- a/xen/crypto/vmac.c
+++ b/xen/crypto/vmac.c
@@ -8,6 +8,7 @@
 
 /* start for Xen */
 #include <xen/init.h>
+#include <xen/byteswap.h>
 #include <xen/types.h>
 #include <xen/lib.h>
 #include <crypto/vmac.h>
@@ -50,7 +51,6 @@ const uint64_t mpoly = UINT64_C(0x1fffffff1fffffff);  /* Poly key mask     */
  * MUL64: 64x64->128-bit multiplication
  * PMUL64: assumes top bits cleared on inputs
  * ADD128: 128x128->128-bit addition
- * GET_REVERSED_64: load and byte-reverse 64-bit word  
  * ----------------------------------------------------------------------- */
 
 /* ----------------------------------------------------------------------- */
@@ -68,22 +68,6 @@ const uint64_t mpoly = UINT64_C(0x1fffffff1fffffff);  /* Poly key mask     */
 
 #define PMUL64 MUL64
 
-#define GET_REVERSED_64(p)                                                \
-    ({uint64_t x;                                                         \
-     asm ("bswapq %0" : "=r" (x) : "0"(*(uint64_t *)(p))); x;})
-
-/* ----------------------------------------------------------------------- */
-#elif (__GNUC__ && __i386__)
-/* ----------------------------------------------------------------------- */
-
-#define GET_REVERSED_64(p)                                                \
-    ({ uint64_t x;                                                        \
-    uint32_t *tp = (uint32_t *)(p);                                       \
-    asm  ("bswap %%edx\n\t"                                               \
-          "bswap %%eax"                                                   \
-    : "=A"(x)                                                             \
-    : "a"(tp[1]), "d"(tp[0]));                                            \
-    x; })
 
 /* ----------------------------------------------------------------------- */
 #elif (__GNUC__ && __ppc64__)
@@ -103,37 +87,6 @@ const uint64_t mpoly = UINT64_C(0x1fffffff1fffffff);  /* Poly key mask     */
 
 #define PMUL64 MUL64
 
-#define GET_REVERSED_64(p)                                                \
-    ({ uint32_t hi, lo, *_p = (uint32_t *)(p);                            \
-       asm volatile ("lwbrx %0, %1, %2" : "=r"(lo) : "b%"(0), "r"(_p) );  \
-       asm volatile ("lwbrx %0, %1, %2" : "=r"(hi) : "b%"(4), "r"(_p) );  \
-       ((uint64_t)hi << 32) | (uint64_t)lo; } )
-
-/* ----------------------------------------------------------------------- */
-#elif (__GNUC__ && (__ppc__ || __PPC__))
-/* ----------------------------------------------------------------------- */
-
-#define GET_REVERSED_64(p)                                                \
-    ({ uint32_t hi, lo, *_p = (uint32_t *)(p);                            \
-       asm volatile ("lwbrx %0, %1, %2" : "=r"(lo) : "b%"(0), "r"(_p) );  \
-       asm volatile ("lwbrx %0, %1, %2" : "=r"(hi) : "b%"(4), "r"(_p) );  \
-       ((uint64_t)hi << 32) | (uint64_t)lo; } )
-
-/* ----------------------------------------------------------------------- */
-#elif (__GNUC__ && (__ARMEL__ || __ARM__))
-/* ----------------------------------------------------------------------- */
-
-#define bswap32(v)                                                        \
-({ uint32_t tmp,out;                                                      \
-    asm volatile(                                                         \
-        "eor    %1, %2, %2, ror #16\n"                                    \
-        "bic    %1, %1, #0x00ff0000\n"                                    \
-        "mov    %0, %2, ror #8\n"                                         \
-        "eor    %0, %0, %1, lsr #8"                                       \
-    : "=r" (out), "=&r" (tmp)                                             \
-    : "r" (v));                                                           \
-    out;})
-
 /* ----------------------------------------------------------------------- */
 #elif _MSC_VER
 /* ----------------------------------------------------------------------- */
@@ -154,11 +107,6 @@ const uint64_t mpoly = UINT64_C(0x1fffffff1fffffff);  /* Poly key mask     */
         (rh) += (ih) + ((rl) < (_il));                               \
     }
 
-#if _MSC_VER >= 1300
-#define GET_REVERSED_64(p) _byteswap_uint64(*(uint64_t *)(p))
-#pragma intrinsic(_byteswap_uint64)
-#endif
-
 #if _MSC_VER >= 1400 && \
     (!defined(__INTEL_COMPILER) || __INTEL_COMPILER >= 1000)
 #define MUL32(i1,i2)    (__emulu((uint32_t)(i1),(uint32_t)(i2)))
@@ -219,24 +167,6 @@ const uint64_t mpoly = UINT64_C(0x1fffffff1fffffff);  /* Poly key mask     */
     }
 #endif
 
-#ifndef GET_REVERSED_64
-#ifndef bswap64
-#ifndef bswap32
-#define bswap32(x)                                                        \
-  ({ uint32_t bsx = (x);                                                  \
-      ((((bsx) & 0xff000000u) >> 24) | (((bsx) & 0x00ff0000u) >>  8) |    \
-       (((bsx) & 0x0000ff00u) <<  8) | (((bsx) & 0x000000ffu) << 24)); })
-#endif
-#define bswap64(x)                                                        \
-     ({ union { uint64_t ll; uint32_t l[2]; } w, r;                       \
-         w.ll = (x);                                                      \
-         r.l[0] = bswap32 (w.l[1]);                                       \
-         r.l[1] = bswap32 (w.l[0]);                                       \
-         r.ll; })
-#endif
-#define GET_REVERSED_64(p) bswap64(*(uint64_t *)(p)) 
-#endif
-
 /* ----------------------------------------------------------------------- */
 
 #if (VMAC_PREFER_BIG_ENDIAN)
@@ -247,9 +177,9 @@ const uint64_t mpoly = UINT64_C(0x1fffffff1fffffff);  /* Poly key mask     */
 
 #if (VMAC_ARCH_BIG_ENDIAN)
 #  define get64BE(ptr) (*(uint64_t *)(ptr))
-#  define get64LE(ptr) GET_REVERSED_64(ptr)
+#  define get64LE(ptr) bswap64(*(uint64_t *)(ptr))
 #else /* assume little-endian */
-#  define get64BE(ptr) GET_REVERSED_64(ptr)
+#  define get64BE(ptr) bswap64(*(uint64_t *)(ptr))
 #  define get64LE(ptr) (*(uint64_t *)(ptr))
 #endif
 
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Wed Apr 16 11:59:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 11:59:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.955724.1349399 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u51QB-00084q-E8; Wed, 16 Apr 2025 11:59:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 955724.1349399; Wed, 16 Apr 2025 11:59: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 1u51QA-00082F-Uq; Wed, 16 Apr 2025 11:59:14 +0000
Received: by outflank-mailman (input) for mailman id 955724;
 Wed, 16 Apr 2025 11:59: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=9TmO=XC=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u51Q9-0006At-0Z
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 11:59: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 363bbcde-1aba-11f0-9eaf-5ba50f476ded;
 Wed, 16 Apr 2025 13:59:12 +0200 (CEST)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-43ce70f9afbso68171225e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 16 Apr 2025 04:59:12 -0700 (PDT)
Received: from localhost.localdomain (host-92-26-98-202.as13285.net.
 [92.26.98.202]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4405b5a9846sm18761905e9.35.2025.04.16.04.59.11
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 16 Apr 2025 04:59: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: 363bbcde-1aba-11f0-9eaf-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744804752; x=1745409552; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=BmZBy1HYwNbyvSgffQY0Av0rirqEVUXWQRNDyNJH/e8=;
        b=jddy8dA45gqnIVnEEjl/bVB8s0PRO6gZPHoa4Os5rkRH0gg9eOAlDTE2Vzfs8hToq1
         ihJ7imG9aHPx0cEcb+BiR1Aq+Fo0PBmSA9QLR1ouBVYTzWlIPqoorcnFiQ6zYgP8Pj4B
         swuIHEygHT+57l7KxxdFy2bHz88nuTBWzP77c=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744804752; x=1745409552;
        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=BmZBy1HYwNbyvSgffQY0Av0rirqEVUXWQRNDyNJH/e8=;
        b=fTgzxCIJssxt6hgBTTsCfJTxzQdl+ebsdJtEvEDdE4Is/Amu6/T+jv7RUFQKLb/yRm
         PxY5ipbiq1L60tf0Nn6PLc0ocGGuSCWqUk8xlTnf2lRNB1MUuxGXLKLNgfHnzUjz/JK4
         8c1DQd9/trAkP8XyfSZ7TuepijJkMo12MFCmwPtJ1Jvzr8RsdLwv6ldN0/GEz1QIiP8g
         woWjNnTwbhkkcSfN3rRHrBtclooyuevjOzsoAofDpeAMV9HDJQdVMkJJtHHtmfVkTsGJ
         M19L8D8Tvelg7DdCE8ZuuKDX8+qorulyLsDnc8qrkZZIBx4s1YOmiVeOiwfElELSSy+M
         hFBg==
X-Gm-Message-State: AOJu0Yzv1ulsGAUw/EsEfXkC84SJyz/XHuvtQbjcetEAHDcGWZ8DfD73
	D1bPnMEsEjK3AFCgf6y25rTBn2egUdLHrL9Pxb8YQKs4DA+VB6Nd0NNfVFrYbZVICYMa9T7GkRI
	QcoU=
X-Gm-Gg: ASbGncufQ/zb7PS6mKSXxk7wfif+vITdlG1AUubR5rFY9Lo7XMesOYrDVXxcgTO2gxe
	pGsSi04UyECUO3L6B28RRgReaOR1mD2tleWXut4Fq/i6CQp4uEnZ5f4R8LnxkGRoubQ+2O0J2re
	jTUYP6RwEaeUyXOq/8rUVwN4G50b1bJZQ5YCY+hcQonU/1LTlvU+EvguEnsDVhUlIPbAvrHj+lv
	pOBixSxcyndzuHYO+4XQiTB38EQ9cZs6rQ22+mjRQm6ZoO5IwNRzTzCGF6VLTR8SIZWTwKiZ/za
	lfOTTh7/QqkcGDTpbww4L5PnsTw6T09u/qkJ+mCOLwyhVzT5PEzS7t9cgMVg5RG1lk9q9WQ1zA8
	3c+y7GQ40S5tl/w==
X-Google-Smtp-Source: AGHT+IFkBawxMNVHejaCD1UUjlp6EMAu1xH4XI62dkEJnQI4hxsoWxwWdgur4xV+uXPofj2ZjToCrg==
X-Received: by 2002:a05:600c:350e:b0:43d:878c:7c40 with SMTP id 5b1f17b1804b1-4405f2fae8fmr11744555e9.10.1744804751848;
        Wed, 16 Apr 2025 04:59:11 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Shawn Anastasio <sanastasio@raptorengineering.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>,
	Lin Liu <lin.liu@citrix.com>
Subject: [PATCH v6 10/15] xsm/flask: Switch {asm -> xen}/byteorder.h
Date: Wed, 16 Apr 2025 12:58:55 +0100
Message-Id: <20250416115900.2491661-11-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250416115900.2491661-1-andrew.cooper3@citrix.com>
References: <20250416115900.2491661-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Sort the includes while at it.

No functional change.

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

v5:
 * New
---
 xen/xsm/flask/ss/avtab.c       | 4 ++--
 xen/xsm/flask/ss/conditional.c | 9 ++++-----
 xen/xsm/flask/ss/ebitmap.c     | 9 ++++-----
 xen/xsm/flask/ss/policydb.c    | 7 +++----
 4 files changed, 13 insertions(+), 16 deletions(-)

diff --git a/xen/xsm/flask/ss/avtab.c b/xen/xsm/flask/ss/avtab.c
index 9761d028d82d..2d07917e79e5 100644
--- a/xen/xsm/flask/ss/avtab.c
+++ b/xen/xsm/flask/ss/avtab.c
@@ -19,11 +19,11 @@
 
 /* Ported to Xen 3.0, George Coker, <gscoker@alpha.ncsc.mil> */
 
+#include <xen/byteorder.h>
+#include <xen/errno.h>
 #include <xen/lib.h>
-#include <asm/byteorder.h>
 #include <xen/types.h>
 #include <xen/xmalloc.h>
-#include <xen/errno.h>
 
 #include "avtab.h"
 #include "policydb.h"
diff --git a/xen/xsm/flask/ss/conditional.c b/xen/xsm/flask/ss/conditional.c
index d314f772b405..a0d255596204 100644
--- a/xen/xsm/flask/ss/conditional.c
+++ b/xen/xsm/flask/ss/conditional.c
@@ -9,15 +9,14 @@
 
 /* Ported to Xen 3.0, George Coker, <gscoker@alpha.ncsc.mil> */
 
-#include <xen/lib.h>
-#include <xen/types.h>
+#include <xen/byteorder.h>
 #include <xen/errno.h>
-#include <xen/string.h>
+#include <xen/lib.h>
 #include <xen/spinlock.h>
+#include <xen/string.h>
+#include <xen/types.h>
 #include <xen/xmalloc.h>
 
-#include <asm/byteorder.h>
-
 #include "security.h"
 #include "conditional.h"
 
diff --git a/xen/xsm/flask/ss/ebitmap.c b/xen/xsm/flask/ss/ebitmap.c
index 1db69d9ad1bd..1ced81ea0287 100644
--- a/xen/xsm/flask/ss/ebitmap.c
+++ b/xen/xsm/flask/ss/ebitmap.c
@@ -10,13 +10,12 @@
 
 /* Ported to Xen 3.0, George Coker, <gscoker@alpha.ncsc.mil> */
 
-#include <xen/lib.h>
-#include <xen/xmalloc.h>
+#include <xen/bitmap.h>
+#include <xen/byteorder.h>
 #include <xen/errno.h>
+#include <xen/lib.h>
 #include <xen/spinlock.h>
-#include <xen/bitmap.h>
-
-#include <asm/byteorder.h>
+#include <xen/xmalloc.h>
 
 #include "ebitmap.h"
 #include "policydb.h"
diff --git a/xen/xsm/flask/ss/policydb.c b/xen/xsm/flask/ss/policydb.c
index 5af45fdc2783..165304c1331c 100644
--- a/xen/xsm/flask/ss/policydb.c
+++ b/xen/xsm/flask/ss/policydb.c
@@ -22,13 +22,12 @@
 
 /* Ported to Xen 3.0, George Coker, <gscoker@alpha.ncsc.mil> */
 
+#include <xen/byteorder.h>
+#include <xen/errno.h>
 #include <xen/lib.h>
+#include <xen/string.h>
 #include <xen/types.h>
 #include <xen/xmalloc.h>
-#include <xen/string.h>
-#include <xen/errno.h>
-
-#include <asm/byteorder.h>
 
 #include <conditional.h>
 #include "security.h"
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Wed Apr 16 11:59:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 11:59:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.955725.1349407 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u51QC-0008Ld-Gz; Wed, 16 Apr 2025 11:59:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 955725.1349407; Wed, 16 Apr 2025 11:59: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 1u51QC-0008IS-4G; Wed, 16 Apr 2025 11:59:16 +0000
Received: by outflank-mailman (input) for mailman id 955725;
 Wed, 16 Apr 2025 11: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=9TmO=XC=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u51Q9-0006Ay-Kw
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 11:59:13 +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 353f420c-1aba-11f0-9ffb-bf95429c2676;
 Wed, 16 Apr 2025 13:59:11 +0200 (CEST)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-39ee57c0b8cso458289f8f.0
 for <xen-devel@lists.xenproject.org>; Wed, 16 Apr 2025 04:59:11 -0700 (PDT)
Received: from localhost.localdomain (host-92-26-98-202.as13285.net.
 [92.26.98.202]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4405b5a9846sm18761905e9.35.2025.04.16.04.59.09
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 16 Apr 2025 04:59: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: 353f420c-1aba-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744804750; x=1745409550; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=wnf/Nwp4shj5EFcPhUHIkrw4QnU6FSi2i7Zr/xIuM0A=;
        b=N36ywz/dN0lETPcR6XsbqyXL6k1buSgv0nuUCITT56MdvDX9uHviDRYL5N1neSSys+
         xjIP/ZErCB9Kl3DU/V0iOeGBMrDVBmC6WKNmwgG7ialCU8cEJ7RIIH0vd+84vxqNPt7a
         NtndlCR2CFWMMihIUtsR+40qZQ+usDDBkvb2c=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744804750; x=1745409550;
        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=wnf/Nwp4shj5EFcPhUHIkrw4QnU6FSi2i7Zr/xIuM0A=;
        b=FeWw9nPsOy2aAtovoPXCdyqTx8sWYqBd/AWJUjct2QtAfKpt2zrEFfKdK+1WxRyRFG
         lxZ1iRNZ7yTdg1gvFIitzIFo6eTl/+6GqpVZEKQvT2UUmu+F6q/yZytCs5mKdwveihEL
         E4IaNIc7KuqBrTRVt2QwOtpy33UPf52cNURE0GnhBrd+C/zsoDdEayO7EzTLKLWh8z8G
         AtgYQR5GcEeCLpkbrQ3F+XYkuqV6NJjdRItmfA/ue/GkfCGcVTV0pD0ow4WN6WseRWj8
         ZllPLGteecstrI0kJXFGOoA6EsjOU/j42RzjgIVRh/mJ2Oz9iAFhC7aQXhplPKJ0mwDB
         xeew==
X-Gm-Message-State: AOJu0Yzrbm1NMoGroMqAtb0c/Etrx57o8Ft8SMp02SxZvcWuclytAtUj
	fmQc6G4JcQguM4kR3hXbLvPH1hfIbWx1kXaGDThB7XGseP5V+Znkuy0URQ7+yIrK8YYM2a+SRtZ
	hrIo=
X-Gm-Gg: ASbGnct80POLRVZ0ZSeCdhqKQ1RgSxZgZCgRUksgfA8cs+v/VuHGoXJ0vsDTo3u4W4m
	sDD0YLfVKbKz56OlrnQZkghdjo4S3Nrf/qPEIDi85Ugg2weh5bDBFFbIETyV7vXejlD1LVJNsYn
	7XcOLIVOXcJ4CtTqSysXU3LijB/Vz1IsiqdlnF+ncxgqlLWcSDuQuIvdPJFmv+/sYxDejSNGOid
	JfhBUJADQp/8MsnPTreiLCYaChbVe8RMSq/B70g5rXOEFZYjlNgnA1k8jZlOcfg8+85Hd8R+dFJ
	e3r0Wirq8UOiN5rjFihCjuvW3MG81y2H7Iw+yRxhZoo9+HDgYwKRlY3KN8f/blj+tRkHfJ5uJU3
	FDveo9XG2Ey5/pw==
X-Google-Smtp-Source: AGHT+IGLE54MCxmGfLRHPR7923SMT/+f9s1dxJukFc0Trom+H/3Dch1mdOSM2YM+b+ianCTw4XlcAw==
X-Received: by 2002:a05:6000:1882:b0:391:4835:d8a8 with SMTP id ffacd0b85a97d-39ee5b13e81mr1525905f8f.1.1744804750089;
        Wed, 16 Apr 2025 04:59:10 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Lin Liu <lin.liu@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Shawn Anastasio <sanastasio@raptorengineering.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>
Subject: [PATCH v6 08/15] xen: Remove old byteorder infrastructure
Date: Wed, 16 Apr 2025 12:58:53 +0100
Message-Id: <20250416115900.2491661-9-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250416115900.2491661-1-andrew.cooper3@citrix.com>
References: <20250416115900.2491661-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: Lin Liu <lin.liu@citrix.com>

It is no longer used.

Signed-off-by: Lin Liu <lin.liu@citrix.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Michal Orzel <michal.orzel@amd.com>
CC: Jan Beulich <jbeulich@suse.com>
CC: Julien Grall <julien@xen.org>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
CC: Bertrand Marquis <bertrand.marquis@arm.com>
CC: Shawn Anastasio <sanastasio@raptorengineering.com>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
CC: Daniel P. Smith <dpsmith@apertussolutions.com>
CC: Lin Liu <lin.liu@citrix.com>
---
 xen/include/xen/byteorder/big_endian.h    |  95 ------------
 xen/include/xen/byteorder/generic.h       |  68 --------
 xen/include/xen/byteorder/little_endian.h |  95 ------------
 xen/include/xen/byteorder/swab.h          | 179 ----------------------
 4 files changed, 437 deletions(-)
 delete mode 100644 xen/include/xen/byteorder/big_endian.h
 delete mode 100644 xen/include/xen/byteorder/generic.h
 delete mode 100644 xen/include/xen/byteorder/little_endian.h
 delete mode 100644 xen/include/xen/byteorder/swab.h

diff --git a/xen/include/xen/byteorder/big_endian.h b/xen/include/xen/byteorder/big_endian.h
deleted file mode 100644
index 512291c76f1b..000000000000
--- a/xen/include/xen/byteorder/big_endian.h
+++ /dev/null
@@ -1,95 +0,0 @@
-#ifndef __XEN_BYTEORDER_BIG_ENDIAN_H__
-#define __XEN_BYTEORDER_BIG_ENDIAN_H__
-
-#include <xen/types.h>
-#include <xen/byteorder/swab.h>
-
-#define __constant_cpu_to_le64(x) ((__force __le64)___constant_swab64((x)))
-#define __constant_le64_to_cpu(x) ___constant_swab64((__force uint64_t)(__le64)(x))
-#define __constant_cpu_to_le32(x) ((__force __le32)___constant_swab32((x)))
-#define __constant_le32_to_cpu(x) ___constant_swab32((__force uint32_t)(__le32)(x))
-#define __constant_cpu_to_le16(x) ((__force __le16)___constant_swab16((x)))
-#define __constant_le16_to_cpu(x) ___constant_swab16((__force uint16_t)(__le16)(x))
-#define __constant_cpu_to_be64(x) ((__force __be64)(uint64_t)(x))
-#define __constant_be64_to_cpu(x) ((__force uint64_t)(__be64)(x))
-#define __constant_cpu_to_be32(x) ((__force __be32)(uint32_t)(x))
-#define __constant_be32_to_cpu(x) ((__force uint32_t)(__be32)(x))
-#define __constant_cpu_to_be16(x) ((__force __be16)(uint16_t)(x))
-#define __constant_be16_to_cpu(x) ((__force uint16_t)(__be16)(x))
-#define __cpu_to_le64(x) ((__force __le64)__swab64((x)))
-#define __le64_to_cpu(x) __swab64((__force uint64_t)(__le64)(x))
-#define __cpu_to_le32(x) ((__force __le32)__swab32((x)))
-#define __le32_to_cpu(x) __swab32((__force uint32_t)(__le32)(x))
-#define __cpu_to_le16(x) ((__force __le16)__swab16((x)))
-#define __le16_to_cpu(x) __swab16((__force uint16_t)(__le16)(x))
-#define __cpu_to_be64(x) ((__force __be64)(uint64_t)(x))
-#define __be64_to_cpu(x) ((__force uint64_t)(__be64)(x))
-#define __cpu_to_be32(x) ((__force __be32)(uint32_t)(x))
-#define __be32_to_cpu(x) ((__force uint32_t)(__be32)(x))
-#define __cpu_to_be16(x) ((__force __be16)(uint16_t)(x))
-#define __be16_to_cpu(x) ((__force uint16_t)(__be16)(x))
-
-static inline __le64 __cpu_to_le64p(const uint64_t *p)
-{
-    return (__force __le64)__swab64p(p);
-}
-static inline uint64_t __le64_to_cpup(const __le64 *p)
-{
-    return __swab64p((const uint64_t *)p);
-}
-static inline __le32 __cpu_to_le32p(const uint32_t *p)
-{
-    return (__force __le32)__swab32p(p);
-}
-static inline uint32_t __le32_to_cpup(const __le32 *p)
-{
-    return __swab32p((const uint32_t *)p);
-}
-static inline __le16 __cpu_to_le16p(const uint16_t *p)
-{
-    return (__force __le16)__swab16p(p);
-}
-static inline uint16_t __le16_to_cpup(const __le16 *p)
-{
-    return __swab16p((const uint16_t *)p);
-}
-static inline __be64 __cpu_to_be64p(const uint64_t *p)
-{
-    return (__force __be64)*p;
-}
-static inline uint64_t __be64_to_cpup(const __be64 *p)
-{
-    return (__force uint64_t)*p;
-}
-static inline __be32 __cpu_to_be32p(const uint32_t *p)
-{
-    return (__force __be32)*p;
-}
-static inline uint32_t __be32_to_cpup(const __be32 *p)
-{
-    return (__force uint32_t)*p;
-}
-static inline __be16 __cpu_to_be16p(const uint16_t *p)
-{
-    return (__force __be16)*p;
-}
-static inline uint16_t __be16_to_cpup(const __be16 *p)
-{
-    return (__force uint16_t)*p;
-}
-#define __cpu_to_le64s(x) __swab64s((x))
-#define __le64_to_cpus(x) __swab64s((x))
-#define __cpu_to_le32s(x) __swab32s((x))
-#define __le32_to_cpus(x) __swab32s((x))
-#define __cpu_to_le16s(x) __swab16s((x))
-#define __le16_to_cpus(x) __swab16s((x))
-#define __cpu_to_be64s(x) do {} while (0)
-#define __be64_to_cpus(x) do {} while (0)
-#define __cpu_to_be32s(x) do {} while (0)
-#define __be32_to_cpus(x) do {} while (0)
-#define __cpu_to_be16s(x) do {} while (0)
-#define __be16_to_cpus(x) do {} while (0)
-
-#include <xen/byteorder/generic.h>
-
-#endif /* __XEN_BYTEORDER_BIG_ENDIAN_H__ */
diff --git a/xen/include/xen/byteorder/generic.h b/xen/include/xen/byteorder/generic.h
deleted file mode 100644
index 8a0006b75594..000000000000
--- a/xen/include/xen/byteorder/generic.h
+++ /dev/null
@@ -1,68 +0,0 @@
-#ifndef __XEN_BYTEORDER_GENERIC_H__
-#define __XEN_BYTEORDER_GENERIC_H__
-
-/*
- * Generic Byte-reordering support
- *
- * The "... p" macros, like le64_to_cpup, can be used with pointers
- * to unaligned data, but there will be a performance penalty on 
- * some architectures.  Use get_unaligned for unaligned data.
- *
- * The following macros are to be defined by <asm/byteorder.h>:
- *
- * Conversion of XX-bit integers (16- 32- or 64-)
- * between native CPU format and little/big endian format
- * 64-bit stuff only defined for proper architectures
- *     cpu_to_[bl]eXX(__uXX x)
- *     [bl]eXX_to_cpu(__uXX x)
- *
- * The same, but takes a pointer to the value to convert
- *     cpu_to_[bl]eXXp(__uXX x)
- *     [bl]eXX_to_cpup(__uXX x)
- *
- * The same, but change in situ
- *     cpu_to_[bl]eXXs(__uXX x)
- *     [bl]eXX_to_cpus(__uXX x)
- *
- * See asm-foo/byteorder.h for examples of how to provide
- * architecture-optimized versions
- */
-
-#define cpu_to_le64 __cpu_to_le64
-#define le64_to_cpu __le64_to_cpu
-#define cpu_to_le32 __cpu_to_le32
-#define le32_to_cpu __le32_to_cpu
-#define cpu_to_le16 __cpu_to_le16
-#define le16_to_cpu __le16_to_cpu
-#define cpu_to_be64 __cpu_to_be64
-#define be64_to_cpu __be64_to_cpu
-#define cpu_to_be32 __cpu_to_be32
-#define be32_to_cpu __be32_to_cpu
-#define cpu_to_be16 __cpu_to_be16
-#define be16_to_cpu __be16_to_cpu
-#define cpu_to_le64p __cpu_to_le64p
-#define le64_to_cpup __le64_to_cpup
-#define cpu_to_le32p __cpu_to_le32p
-#define le32_to_cpup __le32_to_cpup
-#define cpu_to_le16p __cpu_to_le16p
-#define le16_to_cpup __le16_to_cpup
-#define cpu_to_be64p __cpu_to_be64p
-#define be64_to_cpup __be64_to_cpup
-#define cpu_to_be32p __cpu_to_be32p
-#define be32_to_cpup __be32_to_cpup
-#define cpu_to_be16p __cpu_to_be16p
-#define be16_to_cpup __be16_to_cpup
-#define cpu_to_le64s __cpu_to_le64s
-#define le64_to_cpus __le64_to_cpus
-#define cpu_to_le32s __cpu_to_le32s
-#define le32_to_cpus __le32_to_cpus
-#define cpu_to_le16s __cpu_to_le16s
-#define le16_to_cpus __le16_to_cpus
-#define cpu_to_be64s __cpu_to_be64s
-#define be64_to_cpus __be64_to_cpus
-#define cpu_to_be32s __cpu_to_be32s
-#define be32_to_cpus __be32_to_cpus
-#define cpu_to_be16s __cpu_to_be16s
-#define be16_to_cpus __be16_to_cpus
-
-#endif /* __XEN_BYTEORDER_GENERIC_H__ */
diff --git a/xen/include/xen/byteorder/little_endian.h b/xen/include/xen/byteorder/little_endian.h
deleted file mode 100644
index bd1afc6a67c3..000000000000
--- a/xen/include/xen/byteorder/little_endian.h
+++ /dev/null
@@ -1,95 +0,0 @@
-#ifndef __XEN_BYTEORDER_LITTLE_ENDIAN_H__
-#define __XEN_BYTEORDER_LITTLE_ENDIAN_H__
-
-#include <xen/types.h>
-#include <xen/byteorder/swab.h>
-
-#define __constant_cpu_to_le64(x) ((__force __le64)(uint64_t)(x))
-#define __constant_le64_to_cpu(x) ((__force uint64_t)(__le64)(x))
-#define __constant_cpu_to_le32(x) ((__force __le32)(uint32_t)(x))
-#define __constant_le32_to_cpu(x) ((__force uint32_t)(__le32)(x))
-#define __constant_cpu_to_le16(x) ((__force __le16)(uint16_t)(x))
-#define __constant_le16_to_cpu(x) ((__force uint16_t)(__le16)(x))
-#define __constant_cpu_to_be64(x) ((__force __be64)___constant_swab64((x)))
-#define __constant_be64_to_cpu(x) ___constant_swab64((__force uint64_t)(__be64)(x))
-#define __constant_cpu_to_be32(x) ((__force __be32)___constant_swab32((x)))
-#define __constant_be32_to_cpu(x) ___constant_swab32((__force uint32_t)(__be32)(x))
-#define __constant_cpu_to_be16(x) ((__force __be16)___constant_swab16((x)))
-#define __constant_be16_to_cpu(x) ___constant_swab16((__force uint16_t)(__be16)(x))
-#define __cpu_to_le64(x) ((__force __le64)(uint64_t)(x))
-#define __le64_to_cpu(x) ((__force uint64_t)(__le64)(x))
-#define __cpu_to_le32(x) ((__force __le32)(uint32_t)(x))
-#define __le32_to_cpu(x) ((__force uint32_t)(__le32)(x))
-#define __cpu_to_le16(x) ((__force __le16)(uint16_t)(x))
-#define __le16_to_cpu(x) ((__force uint16_t)(__le16)(x))
-#define __cpu_to_be64(x) ((__force __be64)__swab64((x)))
-#define __be64_to_cpu(x) __swab64((__force uint64_t)(__be64)(x))
-#define __cpu_to_be32(x) ((__force __be32)__swab32((x)))
-#define __be32_to_cpu(x) __swab32((__force uint32_t)(__be32)(x))
-#define __cpu_to_be16(x) ((__force __be16)__swab16((x)))
-#define __be16_to_cpu(x) __swab16((__force uint16_t)(__be16)(x))
-
-static inline __le64 __cpu_to_le64p(const uint64_t *p)
-{
-    return (__force __le64)*p;
-}
-static inline uint64_t __le64_to_cpup(const __le64 *p)
-{
-    return (__force uint64_t)*p;
-}
-static inline __le32 __cpu_to_le32p(const uint32_t *p)
-{
-    return (__force __le32)*p;
-}
-static inline uint32_t __le32_to_cpup(const __le32 *p)
-{
-    return (__force uint32_t)*p;
-}
-static inline __le16 __cpu_to_le16p(const uint16_t *p)
-{
-    return (__force __le16)*p;
-}
-static inline uint16_t __le16_to_cpup(const __le16 *p)
-{
-    return (__force uint16_t)*p;
-}
-static inline __be64 __cpu_to_be64p(const uint64_t *p)
-{
-    return (__force __be64)__swab64p(p);
-}
-static inline uint64_t __be64_to_cpup(const __be64 *p)
-{
-    return __swab64p((const uint64_t *)p);
-}
-static inline __be32 __cpu_to_be32p(const uint32_t *p)
-{
-    return (__force __be32)__swab32p(p);
-}
-static inline uint32_t __be32_to_cpup(const __be32 *p)
-{
-    return __swab32p((const uint32_t *)p);
-}
-static inline __be16 __cpu_to_be16p(const uint16_t *p)
-{
-    return (__force __be16)__swab16p(p);
-}
-static inline uint16_t __be16_to_cpup(const __be16 *p)
-{
-    return __swab16p((const uint16_t *)p);
-}
-#define __cpu_to_le64s(x) do {} while (0)
-#define __le64_to_cpus(x) do {} while (0)
-#define __cpu_to_le32s(x) do {} while (0)
-#define __le32_to_cpus(x) do {} while (0)
-#define __cpu_to_le16s(x) do {} while (0)
-#define __le16_to_cpus(x) do {} while (0)
-#define __cpu_to_be64s(x) __swab64s((x))
-#define __be64_to_cpus(x) __swab64s((x))
-#define __cpu_to_be32s(x) __swab32s((x))
-#define __be32_to_cpus(x) __swab32s((x))
-#define __cpu_to_be16s(x) __swab16s((x))
-#define __be16_to_cpus(x) __swab16s((x))
-
-#include <xen/byteorder/generic.h>
-
-#endif /* __XEN_BYTEORDER_LITTLE_ENDIAN_H__ */
diff --git a/xen/include/xen/byteorder/swab.h b/xen/include/xen/byteorder/swab.h
deleted file mode 100644
index ffcf1cf800b2..000000000000
--- a/xen/include/xen/byteorder/swab.h
+++ /dev/null
@@ -1,179 +0,0 @@
-#ifndef __XEN_BYTEORDER_SWAB_H__
-#define __XEN_BYTEORDER_SWAB_H__
-
-/*
- * Byte-swapping, independently from CPU endianness
- *     swabXX[ps]?(foo)
- *
- * Francois-Rene Rideau <fare@tunes.org> 19971205
- *    separated swab functions from cpu_to_XX,
- *    to clean up support for bizarre-endian architectures.
- */
-
-#define ___swab16(x)                                    \
-({                                                      \
-    uint16_t x_ = (x);                                  \
-    (uint16_t)(                                         \
-        (((uint16_t)(x_) & 0x00ffU) << 8) |             \
-        (((uint16_t)(x_) & 0xff00U) >> 8));             \
-})
-
-#define ___swab32(x)                                            \
-({                                                              \
-    uint32_t x_ = (x);                                          \
-    (uint32_t)(                                                 \
-        (((uint32_t)(x_) & 0x000000ffU) << 24) |                \
-        (((uint32_t)(x_) & 0x0000ff00U) <<  8) |                \
-        (((uint32_t)(x_) & 0x00ff0000U) >>  8) |                \
-        (((uint32_t)(x_) & 0xff000000U) >> 24));                \
-})
-
-#define ___swab64(x)                                                       \
-({                                                                         \
-    uint64_t x_ = (x);                                                     \
-    (uint64_t)(                                                            \
-        (((uint64_t)(x_) & 0x00000000000000ffULL) << 56) |                 \
-        (((uint64_t)(x_) & 0x000000000000ff00ULL) << 40) |                 \
-        (((uint64_t)(x_) & 0x0000000000ff0000ULL) << 24) |                 \
-        (((uint64_t)(x_) & 0x00000000ff000000ULL) <<  8) |                 \
-        (((uint64_t)(x_) & 0x000000ff00000000ULL) >>  8) |                 \
-        (((uint64_t)(x_) & 0x0000ff0000000000ULL) >> 24) |                 \
-        (((uint64_t)(x_) & 0x00ff000000000000ULL) >> 40) |                 \
-        (((uint64_t)(x_) & 0xff00000000000000ULL) >> 56));                 \
-})
-
-#define ___constant_swab16(x)                   \
-    ((uint16_t)(                                \
-        (((uint16_t)(x) & 0x00ffU) << 8) |      \
-        (((uint16_t)(x) & 0xff00U) >> 8)))
-#define ___constant_swab32(x)                           \
-    ((uint32_t)(                                        \
-        (((uint32_t)(x) & 0x000000ffU) << 24) |         \
-        (((uint32_t)(x) & 0x0000ff00U) <<  8) |         \
-        (((uint32_t)(x) & 0x00ff0000U) >>  8) |         \
-        (((uint32_t)(x) & 0xff000000U) >> 24)))
-#define ___constant_swab64(x)                                            \
-    ((uint64_t)(                                                         \
-        (((uint64_t)(x) & 0x00000000000000ffULL) << 56) |                \
-        (((uint64_t)(x) & 0x000000000000ff00ULL) << 40) |                \
-        (((uint64_t)(x) & 0x0000000000ff0000ULL) << 24) |                \
-        (((uint64_t)(x) & 0x00000000ff000000ULL) <<  8) |                \
-        (((uint64_t)(x) & 0x000000ff00000000ULL) >>  8) |                \
-        (((uint64_t)(x) & 0x0000ff0000000000ULL) >> 24) |                \
-        (((uint64_t)(x) & 0x00ff000000000000ULL) >> 40) |                \
-        (((uint64_t)(x) & 0xff00000000000000ULL) >> 56)))
-
-/*
- * provide defaults when no architecture-specific optimization is detected
- */
-#ifndef __arch__swab16
-#  define __arch__swab16(x) ___swab16(x)
-#endif
-#ifndef __arch__swab32
-#  define __arch__swab32(x) ___swab32(x)
-#endif
-#ifndef __arch__swab64
-#  define __arch__swab64(x) ___swab64(x)
-#endif
-
-#ifndef __arch__swab16p
-#  define __arch__swab16p(x) __arch__swab16(*(x))
-#endif
-#ifndef __arch__swab32p
-#  define __arch__swab32p(x) __arch__swab32(*(x))
-#endif
-#ifndef __arch__swab64p
-#  define __arch__swab64p(x) __arch__swab64(*(x))
-#endif
-
-#ifndef __arch__swab16s
-#  define __arch__swab16s(x) do { *(x) = __arch__swab16p((x)); } while (0)
-#endif
-#ifndef __arch__swab32s
-#  define __arch__swab32s(x) do { *(x) = __arch__swab32p((x)); } while (0)
-#endif
-#ifndef __arch__swab64s
-#  define __arch__swab64s(x) do { *(x) = __arch__swab64p((x)); } while (0)
-#endif
-
-
-/*
- * Allow constant folding
- */
-#if defined(__GNUC__) && defined(__OPTIMIZE__)
-#  define __swab16(x) \
-(__builtin_constant_p((uint16_t)(x)) ? \
- ___swab16((x)) : \
- __fswab16((x)))
-#  define __swab32(x) \
-(__builtin_constant_p((uint32_t)(x)) ? \
- ___swab32((x)) : \
- __fswab32((x)))
-#  define __swab64(x) \
-(__builtin_constant_p((uint64_t)(x)) ? \
- ___swab64((x)) : \
- __fswab64((x)))
-#else
-#  define __swab16(x) __fswab16(x)
-#  define __swab32(x) __fswab32(x)
-#  define __swab64(x) __fswab64(x)
-#endif /* OPTIMIZE */
-
-
-static inline attr_const uint16_t __fswab16(uint16_t x)
-{
-    return __arch__swab16(x);
-}
-static inline uint16_t __swab16p(const uint16_t *x)
-{
-    return __arch__swab16p(x);
-}
-static inline void __swab16s(uint16_t *addr)
-{
-    __arch__swab16s(addr);
-}
-
-static inline attr_const uint32_t __fswab32(uint32_t x)
-{
-    return __arch__swab32(x);
-}
-static inline uint32_t __swab32p(const uint32_t *x)
-{
-    return __arch__swab32p(x);
-}
-static inline void __swab32s(uint32_t *addr)
-{
-    __arch__swab32s(addr);
-}
-
-#ifdef __BYTEORDER_HAS_U64__
-static inline attr_const uint64_t __fswab64(uint64_t x)
-{
-#  ifdef __SWAB_64_THRU_32__
-    uint32_t h = x >> 32, l = x;
-    return ((uint64_t)__swab32(l) << 32) | __swab32(h);
-#  else
-    return __arch__swab64(x);
-#  endif
-}
-static inline uint64_t __swab64p(const uint64_t *x)
-{
-    return __arch__swab64p(x);
-}
-static inline void __swab64s(uint64_t *addr)
-{
-    __arch__swab64s(addr);
-}
-#endif /* __BYTEORDER_HAS_U64__ */
-
-#define swab16 __swab16
-#define swab32 __swab32
-#define swab64 __swab64
-#define swab16p __swab16p
-#define swab32p __swab32p
-#define swab64p __swab64p
-#define swab16s __swab16s
-#define swab32s __swab32s
-#define swab64s __swab64s
-
-#endif /* __XEN_BYTEORDER_SWAB_H__ */
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Wed Apr 16 11:59:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 11:59:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.955726.1349416 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u51QD-00009S-Nd; Wed, 16 Apr 2025 11:59:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 955726.1349416; Wed, 16 Apr 2025 11:59: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 1u51QD-000063-8Z; Wed, 16 Apr 2025 11:59:17 +0000
Received: by outflank-mailman (input) for mailman id 955726;
 Wed, 16 Apr 2025 11:59: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=9TmO=XC=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u51QA-0006At-J7
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 11:59:14 +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 37285338-1aba-11f0-9eaf-5ba50f476ded;
 Wed, 16 Apr 2025 13:59:14 +0200 (CEST)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-39bf44be22fso4319763f8f.0
 for <xen-devel@lists.xenproject.org>; Wed, 16 Apr 2025 04:59:14 -0700 (PDT)
Received: from localhost.localdomain (host-92-26-98-202.as13285.net.
 [92.26.98.202]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4405b5a9846sm18761905e9.35.2025.04.16.04.59.11
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 16 Apr 2025 04:59:13 -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: 37285338-1aba-11f0-9eaf-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744804753; x=1745409553; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=aJ5V0P88d1F7HxoaZFwruMbGQzYzPCa7L7yGSkYModM=;
        b=cHZx5n2lp2Ktb4Cq56nT3oJ5tckEHN7zN1qwJ3hgiGh+xXZElYOOleVQ8fPlAgBEUl
         /U6BV93Gw1tzoCUfZJXu0ySxpF1Y+1ReWfOJVbC/GMukmcQT7kU5F1/kJJUKEFHG+KqF
         FPPHwP629vvfIYwVtp3EV24e2lfrVX8YO4Dow=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744804753; x=1745409553;
        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=aJ5V0P88d1F7HxoaZFwruMbGQzYzPCa7L7yGSkYModM=;
        b=tbTXlQkxbEGCRBm1jaoOL0Vuqt/MHogsVR/1wJNGUERLzEXjS5texMDXV3hCiLHeD6
         xKQUtyxMXzly7dE8BgRI2tBKYuxG0GhtopNEYzinSFIT7U0PL3PWrAcCGTEuS94b9oAn
         516tWvQg7hEqghHIC5YYbkTSqqWyik9TWLGjk41buLSMl1jXnuslMJx3uApVLRf5jN8j
         1U2wFlVMx+RQKp89OnXt1WSHi3sGMXGP/rbF9QO7peBABwFzfZHzWtMC1AYRjB47Qh0U
         F4zoaIUJMRucatkXySqThLQJg7aCkfys4hVZGrxdO/Dli3vREf5UsR4WnMTiEgqQr2B5
         ujhQ==
X-Gm-Message-State: AOJu0Yyz92/PwGE4wwlUMqwlF5jTYb8pUzqqvwK9EvTFWEhM73Hi6oKK
	3vqgMEQG+Ng/rsB4zTgKYoGgqbzU/r/5WZdoMwGNAuF/Le0FphFFgFkzFrTo0BId0a7BVTmEDQU
	ne+8=
X-Gm-Gg: ASbGncvwgbaiyGHNT/BdDoxb7cDXEraUopdbC+F6cA21CRRSM2HJAqzk4hJ0ln05Pn3
	8iQ7c6J0B2xt4UB/HS0hchfzX0fGtvWPPlqr9HOtoWwKaDu+m9bOIArOVm8wyeDjGGE+u3CpGLY
	oW4iqocZz5CyzRR6vBwzrEFhBRkGWiBNky5j4+He7Ox0bJEEmdm1cXUDoHLGwu1c+TXyy6BX03y
	jPT3faMjKXSUM7XzzZAtu/Y45r2anZAiRU5GXI5E2Ed5b340gmNqQrJUEIpBJxuPL0r0+sPSwf3
	PJhXyU0OHtFA/5BxilxSqOgUGB6IWJXaSeNQTxUF08OzEGcekhKtFiFQxYOpR5UTfBzLU2hLReJ
	wu0idzze3g5LI7Q==
X-Google-Smtp-Source: AGHT+IF9+/KHvB9FAAE/VaTgaEdTj1u6zaTbU7LY/Qac2HW1lWpp1QvowZK5q4BisVdQzSHEqjCMUw==
X-Received: by 2002:a05:6000:420e:b0:39e:e3ef:5cbf with SMTP id ffacd0b85a97d-39ee5b16a16mr1481144f8f.24.1744804753341;
        Wed, 16 Apr 2025 04:59:13 -0700 (PDT)
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>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Shawn Anastasio <sanastasio@raptorengineering.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>,
	Lin Liu <lin.liu@citrix.com>
Subject: [PATCH v6 11/15] xen/common: Switch {asm -> xen}/byteorder.h
Date: Wed, 16 Apr 2025 12:58:56 +0100
Message-Id: <20250416115900.2491661-12-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250416115900.2491661-1-andrew.cooper3@citrix.com>
References: <20250416115900.2491661-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Sort the includes.  Drop useless includes of xen/types.h

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Michal Orzel <michal.orzel@amd.com>
CC: Jan Beulich <jbeulich@suse.com>
CC: Julien Grall <julien@xen.org>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
CC: Bertrand Marquis <bertrand.marquis@arm.com>
CC: Shawn Anastasio <sanastasio@raptorengineering.com>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
CC: Daniel P. Smith <dpsmith@apertussolutions.com>
CC: Lin Liu <lin.liu@citrix.com>

v5:
 * New
---
 xen/common/bitmap.c                 | 5 ++---
 xen/common/libelf/libelf-private.h  | 3 ++-
 xen/drivers/char/ehci-dbgp.c        | 4 +++-
 xen/include/xen/bitmap.h            | 2 +-
 xen/include/xen/device_tree.h       | 3 ++-
 xen/include/xen/libfdt/libfdt_env.h | 3 +--
 xen/include/xen/unaligned.h         | 3 +--
 7 files changed, 12 insertions(+), 11 deletions(-)

diff --git a/xen/common/bitmap.c b/xen/common/bitmap.c
index 6c4af09c18cb..bf1a7fd91e36 100644
--- a/xen/common/bitmap.c
+++ b/xen/common/bitmap.c
@@ -5,14 +5,13 @@
  * This source code is licensed under the GNU General Public License,
  * Version 2.  See the file COPYING for more details.
  */
-#include <xen/types.h>
-#include <xen/errno.h>
 #include <xen/bitmap.h>
 #include <xen/bitops.h>
+#include <xen/byteorder.h>
 #include <xen/cpumask.h>
+#include <xen/errno.h>
 #include <xen/guest_access.h>
 #include <xen/lib.h>
-#include <asm/byteorder.h>
 
 /*
  * bitmaps provide an array of bits, implemented using an an
diff --git a/xen/common/libelf/libelf-private.h b/xen/common/libelf/libelf-private.h
index 65417dffc8a0..e5c9cc109972 100644
--- a/xen/common/libelf/libelf-private.h
+++ b/xen/common/libelf/libelf-private.h
@@ -17,10 +17,11 @@
 
 #ifdef __XEN__
 
+#include <xen/byteorder.h>
 #include <xen/lib.h>
 #include <xen/libelf.h>
 #include <xen/softirq.h>
-#include <asm/byteorder.h>
+
 #include <public/elfnote.h>
 
 /* we would like to use elf->log_callback but we can't because
diff --git a/xen/drivers/char/ehci-dbgp.c b/xen/drivers/char/ehci-dbgp.c
index 1ad3c6bebf87..e9cd59b25463 100644
--- a/xen/drivers/char/ehci-dbgp.c
+++ b/xen/drivers/char/ehci-dbgp.c
@@ -5,15 +5,17 @@
  * Linux; see the Linux source for authorship and copyrights.
  */
 
+#include <xen/byteorder.h>
 #include <xen/console.h>
 #include <xen/delay.h>
 #include <xen/errno.h>
 #include <xen/param.h>
 #include <xen/pci.h>
 #include <xen/serial.h>
-#include <asm/byteorder.h>
+
 #include <asm/io.h>
 #include <asm/fixmap.h>
+
 #include <public/physdev.h>
 
 /* #define DBGP_DEBUG */
diff --git a/xen/include/xen/bitmap.h b/xen/include/xen/bitmap.h
index 4b642cd4207b..b5e9cdd3db86 100644
--- a/xen/include/xen/bitmap.h
+++ b/xen/include/xen/bitmap.h
@@ -230,7 +230,7 @@ static inline unsigned int bitmap_weight(const unsigned long *src,
 	return __bitmap_weight(src, nbits);
 }
 
-#include <asm/byteorder.h>
+#include <xen/byteorder.h>
 
 #ifdef __LITTLE_ENDIAN
 #define BITMAP_MEM_ALIGNMENT 8
diff --git a/xen/include/xen/device_tree.h b/xen/include/xen/device_tree.h
index 0ff80fda04da..6dc1fb5159cd 100644
--- a/xen/include/xen/device_tree.h
+++ b/xen/include/xen/device_tree.h
@@ -10,7 +10,8 @@
 #ifndef __XEN_DEVICE_TREE_H__
 #define __XEN_DEVICE_TREE_H__
 
-#include <asm/byteorder.h>
+#include <xen/byteorder.h>
+
 #include <asm/device.h>
 #include <public/xen.h>
 #include <public/device_tree_defs.h>
diff --git a/xen/include/xen/libfdt/libfdt_env.h b/xen/include/xen/libfdt/libfdt_env.h
index 8368787391b7..04abc6bb68c6 100644
--- a/xen/include/xen/libfdt/libfdt_env.h
+++ b/xen/include/xen/libfdt/libfdt_env.h
@@ -7,9 +7,8 @@
  * Copyright 2012 Kim Phillips, Freescale Semiconductor.
  */
 
-#include <xen/types.h>
+#include <xen/byteorder.h>
 #include <xen/string.h>
-#include <asm/byteorder.h>
 
 #ifdef __CHECKER__
 #define FDT_FORCE __attribute__((force))
diff --git a/xen/include/xen/unaligned.h b/xen/include/xen/unaligned.h
index 8c8b08338b8d..e64813ab4b20 100644
--- a/xen/include/xen/unaligned.h
+++ b/xen/include/xen/unaligned.h
@@ -3,8 +3,7 @@
 #define __XEN_UNALIGNED_H__
 
 #ifdef __XEN__
-#include <xen/types.h>
-#include <asm/byteorder.h>
+#include <xen/byteorder.h>
 #endif
 
 /*
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Wed Apr 16 11:59:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 11:59:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.955728.1349424 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u51QE-0000OR-Ue; Wed, 16 Apr 2025 11:59:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 955728.1349424; Wed, 16 Apr 2025 11:59: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 1u51QE-0000Kc-3O; Wed, 16 Apr 2025 11:59:18 +0000
Received: by outflank-mailman (input) for mailman id 955728;
 Wed, 16 Apr 2025 11:59: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=9TmO=XC=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u51QB-0006At-CV
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 11:59:15 +0000
Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com
 [2a00:1450:4864:20::330])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 37b3e36b-1aba-11f0-9eaf-5ba50f476ded;
 Wed, 16 Apr 2025 13:59:15 +0200 (CEST)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-43d07ca6a80so32146835e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 16 Apr 2025 04:59:15 -0700 (PDT)
Received: from localhost.localdomain (host-92-26-98-202.as13285.net.
 [92.26.98.202]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4405b5a9846sm18761905e9.35.2025.04.16.04.59.13
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 16 Apr 2025 04:59:13 -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: 37b3e36b-1aba-11f0-9eaf-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744804754; x=1745409554; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Ndy0JOtlK/bC2KJaj8i9qdYW+j1KeU0OftG9F4DlSoM=;
        b=W5PUoJV4Cbz53aVPvMV+PTTukz/QKOtf2oBkR3J8TI+XmVvaQHLRNP0n6dF3labp1Y
         7E2CSBYeC2dUilpHnv5wQoe0FEImV8u84+fpkz//BJoQkOhBN9XDZhmxKOguxRk7J8/q
         OR7opn7TLjXCYAumNjGml8Hj1qGnv8FX8Rs7g=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744804754; x=1745409554;
        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=Ndy0JOtlK/bC2KJaj8i9qdYW+j1KeU0OftG9F4DlSoM=;
        b=URXY3vYBP68+3j2zkyv7htW+a+/hJ63RWh30V0zo459jtHXdB8Gdpe10oRBFL5ZSji
         s5j6rn6tjGNI+WquQCkomrSSqSqxNEUJ+yekU141hfZ6ct92pvTZLD3SU3qu4laoV2lf
         9SosWGkXgsgJAYicx4MeM1MpB5cNaLcALXghRRXt0l14SUOxiFzmCWdAJ+UZabwEIfb4
         7Q03gGuZ81nQGF33i3qLrn5Bl5dbzFN93sV4U2qZnCjxYPHLGxZcGx1vZKytaIKf7JBH
         /LS6dqGAClcwg09mZDXGHGw5ViTKR1j6oz0N8JyCuJlhMEx6bckvpyI2lygF7Jgvz6cX
         9njg==
X-Gm-Message-State: AOJu0YxEh+VuYpx4+Quy2u7tSwxsYBo5vqMmFsqR+04o76aAralLTKlo
	ou2phkb4ncLa4HZ6Xp0Ub8G8yUPM8Nb836Jx96udh/rufRX3ZRKXLuDvIhrQGcDqlc0u7KuVMo3
	haAo=
X-Gm-Gg: ASbGncvG4GJrH5mNjgLqvAyq1HiyjCp3CkDl7JoYizQoT6ygiXJDMySdxHUQ+EKR+LG
	ecx/X9NTgLyDLPopuiQiT5/jP4teOQQ9FBe5W3AUIJmmGx2qQlZ8mq/WDd8UoIz1c9wjFNJsKQg
	xA/3Sv8ByQB8hmBxqL1WHzKkPWaz8Vasxsjkt5rd9VJpmhCPqle/x47NXOWEXzsh27C3LgWq9Y8
	kXcTLwxfGl2PUbCmtPbQt8YlrZYY6UTsPOF5QAIu+mJBNDyT3fhF0p4Qaw6oybKpcVcRUgkuZCB
	CBUTwFRHBEDW3edwgsy67Nf5YisERnhBkKPKfevjIj3JK0UAlHHR/vFOU4wUbPwGvbk45b7sGkf
	68oTmTY1+AhJIyiInSv7J3W1T
X-Google-Smtp-Source: AGHT+IHjitMFCJIsOumP7C7YLSXHYWhRq5UWsU2ckJinOJ8U3LIkkSfZML+N3VGJ5UBDzmHXLpes4g==
X-Received: by 2002:a05:600d:1:b0:43b:d0fe:b8ac with SMTP id 5b1f17b1804b1-4405fbffccbmr7736715e9.30.1744804754200;
        Wed, 16 Apr 2025 04:59:14 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Shawn Anastasio <sanastasio@raptorengineering.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>,
	Lin Liu <lin.liu@citrix.com>
Subject: [PATCH v6 12/15] arm: Remove asm/byteorder.h
Date: Wed, 16 Apr 2025 12:58:57 +0100
Message-Id: <20250416115900.2491661-13-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250416115900.2491661-1-andrew.cooper3@citrix.com>
References: <20250416115900.2491661-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

With the common code moved fully onto xen/byteorder.h, clean up the dregs.

Sort includes in some files while swapping over to xen/byteorder.h.

No functional change.

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

v5:
 * New
---
 xen/arch/arm/alternative.c           |  6 +++---
 xen/arch/arm/arm64/livepatch.c       |  2 +-
 xen/arch/arm/include/asm/arm32/io.h  |  3 ++-
 xen/arch/arm/include/asm/arm64/io.h  |  3 ++-
 xen/arch/arm/include/asm/byteorder.h | 14 --------------
 xen/arch/arm/kernel.c                |  2 +-
 xen/arch/arm/vgic/vgic-mmio.c        |  3 ++-
 7 files changed, 11 insertions(+), 22 deletions(-)
 delete mode 100644 xen/arch/arm/include/asm/byteorder.h

diff --git a/xen/arch/arm/alternative.c b/xen/arch/arm/alternative.c
index 2c1af6e7e426..adb9b7d8814b 100644
--- a/xen/arch/arm/alternative.c
+++ b/xen/arch/arm/alternative.c
@@ -6,18 +6,18 @@
  * Copyright (C) 2014-2016 ARM Ltd.
  */
 
+#include <xen/byteorder.h>
 #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>
 #include <xen/stop_machine.h>
 #include <xen/virtual_region.h>
+#include <xen/vmap.h>
+
 #include <asm/alternative.h>
 #include <asm/atomic.h>
-#include <asm/byteorder.h>
 #include <asm/cpufeature.h>
 #include <asm/insn.h>
 #include <asm/page.h>
diff --git a/xen/arch/arm/arm64/livepatch.c b/xen/arch/arm/arm64/livepatch.c
index 6efe4ec770d4..e135bd5bf99a 100644
--- a/xen/arch/arm/arm64/livepatch.c
+++ b/xen/arch/arm/arm64/livepatch.c
@@ -3,6 +3,7 @@
  */
 
 #include <xen/bitops.h>
+#include <xen/byteorder.h>
 #include <xen/errno.h>
 #include <xen/lib.h>
 #include <xen/livepatch_elf.h>
@@ -11,7 +12,6 @@
 #include <xen/vmap.h>
 
 #include <asm/bitops.h>
-#include <asm/byteorder.h>
 #include <asm/insn.h>
 #include <asm/livepatch.h>
 
diff --git a/xen/arch/arm/include/asm/arm32/io.h b/xen/arch/arm/include/asm/arm32/io.h
index 782b564809e3..fb0425e62930 100644
--- a/xen/arch/arm/include/asm/arm32/io.h
+++ b/xen/arch/arm/include/asm/arm32/io.h
@@ -21,8 +21,9 @@
 #ifndef _ARM_ARM32_IO_H
 #define _ARM_ARM32_IO_H
 
+#include <xen/byteorder.h>
+
 #include <asm/system.h>
-#include <asm/byteorder.h>
 
 static inline void __raw_writeb(u8 val, volatile void __iomem *addr)
 {
diff --git a/xen/arch/arm/include/asm/arm64/io.h b/xen/arch/arm/include/asm/arm64/io.h
index 2e2ab24f7838..7d5959877759 100644
--- a/xen/arch/arm/include/asm/arm64/io.h
+++ b/xen/arch/arm/include/asm/arm64/io.h
@@ -20,8 +20,9 @@
 #ifndef _ARM_ARM64_IO_H
 #define _ARM_ARM64_IO_H
 
+#include <xen/byteorder.h>
+
 #include <asm/system.h>
-#include <asm/byteorder.h>
 #include <asm/alternative.h>
 
 /*
diff --git a/xen/arch/arm/include/asm/byteorder.h b/xen/arch/arm/include/asm/byteorder.h
deleted file mode 100644
index 7f1419c45a16..000000000000
--- a/xen/arch/arm/include/asm/byteorder.h
+++ /dev/null
@@ -1,14 +0,0 @@
-#ifndef __ASM_ARM_BYTEORDER_H__
-#define __ASM_ARM_BYTEORDER_H__
-
-#include <xen/byteorder.h>
-
-#endif /* __ASM_ARM_BYTEORDER_H__ */
-/*
- * Local variables:
- * mode: C
- * c-file-style: "BSD"
- * c-basic-offset: 4
- * indent-tabs-mode: nil
- * End:
- */
diff --git a/xen/arch/arm/kernel.c b/xen/arch/arm/kernel.c
index 6eaf9e2b06b3..2647812e8e3e 100644
--- a/xen/arch/arm/kernel.c
+++ b/xen/arch/arm/kernel.c
@@ -4,6 +4,7 @@
  *
  * Copyright (C) 2011 Citrix Systems, Inc.
  */
+#include <xen/byteorder.h>
 #include <xen/domain_page.h>
 #include <xen/errno.h>
 #include <xen/guest_access.h>
@@ -15,7 +16,6 @@
 #include <xen/sched.h>
 #include <xen/vmap.h>
 
-#include <asm/byteorder.h>
 #include <asm/kernel.h>
 #include <asm/setup.h>
 
diff --git a/xen/arch/arm/vgic/vgic-mmio.c b/xen/arch/arm/vgic/vgic-mmio.c
index b4ba34cfc368..d2bcb32cd797 100644
--- a/xen/arch/arm/vgic/vgic-mmio.c
+++ b/xen/arch/arm/vgic/vgic-mmio.c
@@ -14,10 +14,11 @@
 
 #include <xen/bitops.h>
 #include <xen/bsearch.h>
+#include <xen/byteorder.h>
 #include <xen/lib.h>
 #include <xen/sched.h>
+
 #include <asm/new_vgic.h>
-#include <asm/byteorder.h>
 
 #include "vgic.h"
 #include "vgic-mmio.h"
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Wed Apr 16 11:59:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 11:59:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.955730.1349430 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u51QF-0000VF-Ht; Wed, 16 Apr 2025 11:59:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 955730.1349430; Wed, 16 Apr 2025 11: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 1u51QE-0000Se-Tz; Wed, 16 Apr 2025 11:59:18 +0000
Received: by outflank-mailman (input) for mailman id 955730;
 Wed, 16 Apr 2025 11:59: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=9TmO=XC=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u51QC-0006At-9m
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 11:59:16 +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 382e657a-1aba-11f0-9eaf-5ba50f476ded;
 Wed, 16 Apr 2025 13:59:15 +0200 (CEST)
Received: by mail-wr1-x429.google.com with SMTP id
 ffacd0b85a97d-39c30d9085aso4256139f8f.1
 for <xen-devel@lists.xenproject.org>; Wed, 16 Apr 2025 04:59:15 -0700 (PDT)
Received: from localhost.localdomain (host-92-26-98-202.as13285.net.
 [92.26.98.202]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4405b5a9846sm18761905e9.35.2025.04.16.04.59.14
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 16 Apr 2025 04:59: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: 382e657a-1aba-11f0-9eaf-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744804755; x=1745409555; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=z+IilGevx5q9qVo7mZ80r/6WWtDlcFRJKDVvVraWG5E=;
        b=EABg1rfC1vfOfqqk2BlIvbcqWSBwuJjAFCf3VIA9hh2Gc1B2Zc6XSBXY739CYTL1gP
         3mnAL9LLRY/L2nqTt5nbl7TX7clMlNOy48e6wa83vHgJ1ooZkGoy8yShBOVo4DChljUj
         2TZwb6ZJsrRpeuufib6BW1jnQ1XvemMTZi8kw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744804755; x=1745409555;
        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=z+IilGevx5q9qVo7mZ80r/6WWtDlcFRJKDVvVraWG5E=;
        b=Hhp1ZGLzfZ8SxA63DLVjwYgOirn376hXYPrcCaIOdq8VNFCdn3+WR9ooDDMetAc1bs
         O/U0y5it5hiAtYak/zbRE1Mf2WNYZUl9xTW3wsIbEYkyWNcjIdnlu6Aj4yqyqmOchzel
         LgBPWqHK6N6KlEb+qnjXH1EcaT+67hRY0Oq/UED0jDsK7O5FDGBni3YkooLLFG3w4AEL
         oGEaea9uEvo3F0yVb9KdGK9MgHg1Achan37Sxm5UqW+AOfh9cB0aLGXSFenl3zILL6VZ
         USPqiY2hz+8cjyqdyL0MCBYrXK0J8zweVAbS+JOgzTL1LeYWp4Kbs81fYFzAuNJ5A5Tb
         qcvQ==
X-Gm-Message-State: AOJu0YzB5dqbSeX5ZZzyDJXsVKtcWeksUXS4EteZdvmj/jtTSSVz/s7i
	W9//u+NmIBQ+6cH6CbvVFXK7XGEbYd8E63bc2t5AayEJ7DyTrcQkFJxMYAyZHVQeeKP1Pn8oMjN
	pQLA=
X-Gm-Gg: ASbGncskQqSBDooORV1LFbXxwN1jZAo3s2LgZPdFiKFf/3ZvJXTNdiV5Z28wsapBTdf
	r7AIagcnuXvywDCnoMFjpvLULfLC+Ip6C5EPFgVWAzCVu1ihXPCx3PVCam1OFxV9a5zvDBHViKu
	iqFaRLkx13QQF0mw8/qVreEYArLSl8sUQtwoXEbU0rBeg4plOYKZ71HibhbWWyHNHiING75iv5I
	ESPZarJ62IWa1B/7NueFNqtUK/BIGdr2ZL1o9UI0jj1vWL6Ivtb07GlqxPNsJlkDHWM5cQOksCE
	5esrB7Sxy9gsGtqzNZ2WXrWjCmwdvkThR10laAv9Bc1QtF8EiNP3QbdmB0CRcBmkQDVxlT2u6L+
	WRrZd4YSFxccUxy5dXcUmttxX
X-Google-Smtp-Source: AGHT+IFR5FzfA941/9ZQtEr7MfsbWMjiicPxFU8WTuginSs0d1JYIhj+KpYz+bQAw6mrWWPLTtFbbA==
X-Received: by 2002:a05:6000:1866:b0:390:f394:6271 with SMTP id ffacd0b85a97d-39ee5b992bcmr1552295f8f.43.1744804755118;
        Wed, 16 Apr 2025 04:59:15 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Shawn Anastasio <sanastasio@raptorengineering.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>,
	Lin Liu <lin.liu@citrix.com>
Subject: [PATCH v6 13/15] ppc: Drop asm/byteorder.h
Date: Wed, 16 Apr 2025 12:58:58 +0100
Message-Id: <20250416115900.2491661-14-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250416115900.2491661-1-andrew.cooper3@citrix.com>
References: <20250416115900.2491661-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

With the common code moved fully onto xen/byteorder.h, clean up the dregs.

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

v5:
 * New
---
 xen/arch/ppc/include/asm/byteorder.h | 6 ------
 xen/arch/ppc/include/asm/page.h      | 4 +---
 xen/arch/ppc/mm-radix.c              | 2 +-
 3 files changed, 2 insertions(+), 10 deletions(-)
 delete mode 100644 xen/arch/ppc/include/asm/byteorder.h

diff --git a/xen/arch/ppc/include/asm/byteorder.h b/xen/arch/ppc/include/asm/byteorder.h
deleted file mode 100644
index 8df6adbf0d7d..000000000000
--- a/xen/arch/ppc/include/asm/byteorder.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#ifndef _ASM_PPC_BYTEORDER_H
-#define _ASM_PPC_BYTEORDER_H
-
-#include <xen/byteorder.h>
-
-#endif /* _ASM_PPC_BYTEORDER_H */
diff --git a/xen/arch/ppc/include/asm/page.h b/xen/arch/ppc/include/asm/page.h
index 6d4cd2611c2b..c6160afcfdb8 100644
--- a/xen/arch/ppc/include/asm/page.h
+++ b/xen/arch/ppc/include/asm/page.h
@@ -3,9 +3,7 @@
 #define _ASM_PPC_PAGE_H
 
 #include <xen/bitops.h>
-#include <xen/types.h>
-
-#include <asm/byteorder.h>
+#include <xen/byteorder.h>
 
 #define PDE_VALID     PPC_BIT(0)
 #define PDE_NLB_MASK  0x1ffffffffffffe0UL
diff --git a/xen/arch/ppc/mm-radix.c b/xen/arch/ppc/mm-radix.c
index 24232f3907aa..9a00ae416af0 100644
--- a/xen/arch/ppc/mm-radix.c
+++ b/xen/arch/ppc/mm-radix.c
@@ -1,5 +1,6 @@
 /* SPDX-License-Identifier: GPL-2.0-or-later */
 #include <xen/bitops.h>
+#include <xen/byteorder.h>
 #include <xen/init.h>
 #include <xen/kernel.h>
 #include <xen/mm.h>
@@ -7,7 +8,6 @@
 #include <xen/types.h>
 #include <xen/lib.h>
 
-#include <asm/byteorder.h>
 #include <asm/early_printk.h>
 #include <asm/page.h>
 #include <asm/processor.h>
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Wed Apr 16 11:59:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 11:59:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.955732.1349448 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u51QJ-0001LU-J2; Wed, 16 Apr 2025 11:59:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 955732.1349448; Wed, 16 Apr 2025 11:59: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 1u51QI-0001Gn-L3; Wed, 16 Apr 2025 11:59:22 +0000
Received: by outflank-mailman (input) for mailman id 955732;
 Wed, 16 Apr 2025 11:59: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=9TmO=XC=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u51QF-0006Ay-UK
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 11:59:20 +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 39b43747-1aba-11f0-9ffb-bf95429c2676;
 Wed, 16 Apr 2025 13:59:18 +0200 (CEST)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-43cf58eea0fso34303275e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 16 Apr 2025 04:59:18 -0700 (PDT)
Received: from localhost.localdomain (host-92-26-98-202.as13285.net.
 [92.26.98.202]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4405b5a9846sm18761905e9.35.2025.04.16.04.59.16
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 16 Apr 2025 04:59: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: 39b43747-1aba-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744804758; x=1745409558; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=pKpw9+M3DGXcB4JzTHPD/cCI8CU9x6+lpkoDYMzsF/g=;
        b=hjcen20RQKDrwoFgJeB/46xX3CUexZKA2YD8k8WKpSOJp8xXlWhoX5G1SIXHdn1DHn
         zjvL4rMsgBuO8peFqse7r0LCkbiFYONCzaGCEGAmySmlIn2SNV6mhe/3Ono4MLX6wEZV
         vZL2uZsE9CTEN1+KaKYaMl4dTaWXDs3XKqty8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744804758; x=1745409558;
        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=pKpw9+M3DGXcB4JzTHPD/cCI8CU9x6+lpkoDYMzsF/g=;
        b=VRSBUBVRDDcmN7ToaPFHefJBNb7+CtyH7nkaZ+w/SlckONZTDim+bV/ks/e8IW5tZV
         MmcBk+riHs65T486lvRJqAjp8iTMbfVzrt5/+KpOhwsQTRw4duUMjzMD8z/d5PDUJhHh
         HpC1u72leB1kz9QZ3ck4bBARU769eOprnPHMhOM5ddsakvhNIePLVlPgs2joyvptNCHA
         QedcMN2IvSt8kGwEsiQLNp+CWMOwoWHZke2m+k45BJHFwgkdGNpc4HPb55O9AwLYX3TL
         1IR/DHeC/AoC3JdZq3r9wbxYmYfRDMvOp8ekz1q3Td4O1VKj17x05GptU52/wRiGFzBK
         Z6xw==
X-Gm-Message-State: AOJu0YztrDCD9c/TxLaSTriJgp0TEa8OmCm2k3ZU02ODn6jqodr7Df11
	ORohD5nrK8y4vX6Gf8FwVbr5on/C2IVFVdK1r0yJ/JbTnBnhSrRL6ctE0T8uQxSqucMdZ6yOip+
	uB9Q=
X-Gm-Gg: ASbGncvYYDi0jCqwTnkjjIMqJSXB3c8lKtEZGEDpefbDIdWg2TQDMVsMIFdMRqEXkAV
	HvDBhzHN26PLf6j0SdDNIIz96xpd7mhMQKvxZgduSXQtso24ldXhm8Nxd3VMlHRwmpOQkHVMQ1Q
	AqyOyhCzhQuKHnN19BpjBEVZpg7o/P+qZ1ka1/e4R3cKSgKOPvnIV9uUZOW8mQB51i2BRNWVq5b
	FQd6gCuBcRIVDNNL4jItQTUnEvCjg4CCLDYHJHTrRvr+9BAgo43yeLOPVs73FCfUu+tLu9M0eYG
	XqJn6aOL0c2Mmp90qc0jU1bs3PymivBQVQ96/XYVfEn9F1Ohwe5cc/EXNNNzrRRaGxCQxSmoDz0
	IO7FMOV40rUS+EA==
X-Google-Smtp-Source: AGHT+IFmAEkbnGyb/KVsN4YJOPjfgZp61pqCDlyaa8aJ5EneztE/mfwwCgka0vJVdAi+aKopAXQwDg==
X-Received: by 2002:a05:600c:811b:b0:43d:ed:ad07 with SMTP id 5b1f17b1804b1-4405d6cc339mr14006305e9.29.1744804757687;
        Wed, 16 Apr 2025 04:59:17 -0700 (PDT)
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>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Shawn Anastasio <sanastasio@raptorengineering.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>,
	Lin Liu <lin.liu@citrix.com>
Subject: [PATCH v6 15/15] x86: Drop asm/byteorder.h
Date: Wed, 16 Apr 2025 12:59:00 +0100
Message-Id: <20250416115900.2491661-16-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250416115900.2491661-1-andrew.cooper3@citrix.com>
References: <20250416115900.2491661-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

With the common code moved fully onto xen/byteorder.h, clean up the dregs.

It turns out that msi.h has not needed byteorder.h since the use of
__{BIG,LITTLE}_ENDIAN_BITFIELD was dropped in commit d58f3941ce3f ("x86/MSI:
use standard C types in structures/unions").

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Michal Orzel <michal.orzel@amd.com>
CC: Jan Beulich <jbeulich@suse.com>
CC: Julien Grall <julien@xen.org>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
CC: Bertrand Marquis <bertrand.marquis@arm.com>
CC: Shawn Anastasio <sanastasio@raptorengineering.com>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
CC: Daniel P. Smith <dpsmith@apertussolutions.com>
CC: Lin Liu <lin.liu@citrix.com>

v5:
 * New
---
 xen/arch/x86/include/asm/byteorder.h | 6 ------
 xen/arch/x86/include/asm/msi.h       | 1 -
 2 files changed, 7 deletions(-)
 delete mode 100644 xen/arch/x86/include/asm/byteorder.h

diff --git a/xen/arch/x86/include/asm/byteorder.h b/xen/arch/x86/include/asm/byteorder.h
deleted file mode 100644
index 3524a6cee741..000000000000
--- a/xen/arch/x86/include/asm/byteorder.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#ifndef __ASM_X86_BYTEORDER_H__
-#define __ASM_X86_BYTEORDER_H__
-
-#include <xen/byteorder.h>
-
-#endif /* __ASM_X86_BYTEORDER_H__ */
diff --git a/xen/arch/x86/include/asm/msi.h b/xen/arch/x86/include/asm/msi.h
index 975d0f26b35d..00059d4a3a9d 100644
--- a/xen/arch/x86/include/asm/msi.h
+++ b/xen/arch/x86/include/asm/msi.h
@@ -3,7 +3,6 @@
 
 #include <xen/cpumask.h>
 #include <xen/pci.h>
-#include <asm/byteorder.h>
 #include <asm/hvm/vmx/vmcs.h>
 
 /*
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Wed Apr 16 12:03:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 12:03:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.955902.1349466 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u51U5-00089I-PB; Wed, 16 Apr 2025 12:03:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 955902.1349466; Wed, 16 Apr 2025 12: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 1u51U5-00088J-Kv; Wed, 16 Apr 2025 12:03:17 +0000
Received: by outflank-mailman (input) for mailman id 955902;
 Wed, 16 Apr 2025 12: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=9TmO=XC=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u51QD-0006At-Pz
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 11:59:17 +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 39220158-1aba-11f0-9eaf-5ba50f476ded;
 Wed, 16 Apr 2025 13:59:17 +0200 (CEST)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-39c1efc457bso4465626f8f.2
 for <xen-devel@lists.xenproject.org>; Wed, 16 Apr 2025 04:59:17 -0700 (PDT)
Received: from localhost.localdomain (host-92-26-98-202.as13285.net.
 [92.26.98.202]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4405b5a9846sm18761905e9.35.2025.04.16.04.59.15
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 16 Apr 2025 04:59: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: 39220158-1aba-11f0-9eaf-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744804757; x=1745409557; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=GtrQ08vcHfYRasMYCjK/xM3GJiF3ZHsvoc0qya/h/70=;
        b=VsVXyqb3Ps2KtJsWO5M86WiQXiTXkuoRs1fnfIH3fuf87KobcLFvr6T5Xw4wqZmvp8
         1O2oAAXfOOGtZa4HbsI40O4RHDdVQCI709oa3ovimO43v+IHd470XHnV+pRvmiIv/FNY
         KGmBDblbNYXCzwUyh9rzxPn66eN47WBFia3GM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744804757; x=1745409557;
        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=GtrQ08vcHfYRasMYCjK/xM3GJiF3ZHsvoc0qya/h/70=;
        b=eSU2qwBpCPiS1yyk/ym82sZ71HRdPIrvRk6qcGUqu6nQj57E1IXzTJXe0Hc/er+DMJ
         GLJ1DWawuROKUZqqn8wUy5MVrl/xHyresjYAzRBVJhD2yREq/7Qt6iHFHD7CnVsMYSLi
         20PZ7vi2kxf35Zg7L5Wjbgu1M19Grd1OrL+uc9AaxWCSh3xsd4jRPuRC5trPFKlUWYL8
         RXNjQa3T9BN2+1brF3Z0RzQd1Od+aQkL9uM4KUHgamvHEfYZemDpfQTxz5Jf+SVK5731
         59ctH2WYkgkIS3PtL9srkRYKElXsu6xbFAQX3TLmVEjSwkEZFPgPJJlViVLYLloesfo7
         jazg==
X-Gm-Message-State: AOJu0YzWmulo4lW7gOJcfmU/AeROlJyYsp7CW+n1lnPQ0EtgNHRiqjmK
	svUpevDEyFGEdiV0bxFvu/TlexQRDGRzzAXZsbdor8d6VMJPr+RjJfphuIlAyD1yQczBj09gacI
	PRQ4=
X-Gm-Gg: ASbGncsYCF5XL6u9EE5PCtflQgk2tVsGnwxBINYyVYB7r46XVhYx4ETktpVMS1XW1Sg
	LgT3c5JVYLRwN8B+rnexDLSWwK1YObi9GpFva2NRAzGIXPwkBRhwHo0mEXOxXrcJHCNNG5e2m8U
	eTfewfkxHTRU70jrRLv0yHGeviNPtE2NaShrB9bSYbX8h+dp9HCQfXnbQNpkCedpi3gwwR6iRVj
	0q5cLdHFCbmKUaEcSD05sLcvSrH9nMibs9q0WeHuKgSQw7hOjvxriNAkeAbR+2vDlQYfxk3s3za
	LT/HXU/cnzjIdtnHzT/ZrGBV22N8NLrPeKcxwrAjpYPeLwBmor5X2XHI8FB0+VXrRJCuTSx4CzR
	4fDQigbbZBu0Cwg==
X-Google-Smtp-Source: AGHT+IGAljI6COUgiVd+L0rn0qcHYo5Qkthxd3Ys4ZnL52R1Jl/DYNHycJiAt96f/f3f4Ff1pETQZg==
X-Received: by 2002:a5d:6daf:0:b0:39c:13fa:80b with SMTP id ffacd0b85a97d-39ee5b130acmr1390455f8f.12.1744804756651;
        Wed, 16 Apr 2025 04:59:16 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Shawn Anastasio <sanastasio@raptorengineering.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>,
	Lin Liu <lin.liu@citrix.com>
Subject: [PATCH v6 14/15] riscv: Remove asm/byteorder.h
Date: Wed, 16 Apr 2025 12:58:59 +0100
Message-Id: <20250416115900.2491661-15-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250416115900.2491661-1-andrew.cooper3@citrix.com>
References: <20250416115900.2491661-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

With the common code moved fully onto xen/byteorder.h, clean up the dregs.

The use of byteorder.h in io.h appears to have been copy&paste from ARM.  It's
not needed, but macros and types are.

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Michal Orzel <michal.orzel@amd.com>
CC: Jan Beulich <jbeulich@suse.com>
CC: Julien Grall <julien@xen.org>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
CC: Bertrand Marquis <bertrand.marquis@arm.com>
CC: Shawn Anastasio <sanastasio@raptorengineering.com>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
CC: Daniel P. Smith <dpsmith@apertussolutions.com>
CC: Lin Liu <lin.liu@citrix.com>

v5:
 * New
---
 xen/arch/riscv/include/asm/byteorder.h | 14 --------------
 xen/arch/riscv/include/asm/io.h        |  3 ++-
 2 files changed, 2 insertions(+), 15 deletions(-)
 delete mode 100644 xen/arch/riscv/include/asm/byteorder.h

diff --git a/xen/arch/riscv/include/asm/byteorder.h b/xen/arch/riscv/include/asm/byteorder.h
deleted file mode 100644
index a32bca02df38..000000000000
--- a/xen/arch/riscv/include/asm/byteorder.h
+++ /dev/null
@@ -1,14 +0,0 @@
-#ifndef ASM__RISCV__BYTEORDER_H
-#define ASM__RISCV__BYTEORDER_H
-
-#include <xen/byteorder.h>
-
-#endif /* ASM__RISCV__BYTEORDER_H */
-/*
- * Local variables:
- * mode: C
- * c-file-style: "BSD"
- * c-basic-offset: 4
- * indent-tabs-mode: nil
- * End:
- */
diff --git a/xen/arch/riscv/include/asm/io.h b/xen/arch/riscv/include/asm/io.h
index 55f329dde321..8bab4ffa0390 100644
--- a/xen/arch/riscv/include/asm/io.h
+++ b/xen/arch/riscv/include/asm/io.h
@@ -38,7 +38,8 @@
 #ifndef ASM__RISCV__IO_H
 #define ASM__RISCV__IO_H
 
-#include <asm/byteorder.h>
+#include <xen/macros.h>
+#include <xen/types.h>
 
 /*
  * The RISC-V ISA doesn't yet specify how to query or modify PMAs, so we can't
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Wed Apr 16 12:07:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 12:07:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.955930.1349475 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u51YE-0000LY-6v; Wed, 16 Apr 2025 12:07:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 955930.1349475; Wed, 16 Apr 2025 12: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 1u51YE-0000LR-4N; Wed, 16 Apr 2025 12:07:34 +0000
Received: by outflank-mailman (input) for mailman id 955930;
 Wed, 16 Apr 2025 12:07: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=2cbw=XC=atlas.cz=arkamar@srs-se1.protection.inumbo.net>)
 id 1u51YB-0000LI-K1
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 12:07:32 +0000
Received: from gmmr-4.centrum.cz (gmmr-4.centrum.cz [2a00:da80:1:502::8])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5bc3d1f2-1abb-11f0-9ffb-bf95429c2676;
 Wed, 16 Apr 2025 14:07:25 +0200 (CEST)
Received: from gmmr-4.centrum.cz (localhost [127.0.0.1])
 by gmmr-4.centrum.cz (Postfix) with ESMTP id C398C1673C
 for <xen-devel@lists.xenproject.org>; Wed, 16 Apr 2025 14:07:23 +0200 (CEST)
Received: from antispam27.centrum.cz (antispam27.cent [10.30.208.27])
 by gmmr-4.centrum.cz (Postfix) with ESMTP id C0B97201D383
 for <xen-devel@lists.xenproject.org>; Wed, 16 Apr 2025 14:07:23 +0200 (CEST)
Received: from unknown (HELO gm-smtp11.centrum.cz) ([46.255.227.75])
 by antispam27.centrum.cz with ESMTP; 16 Apr 2025 14:07:22 +0200
Received: from arkam (ip-213-220-240-96.bb.vodafone.cz [213.220.240.96])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256)
 (No client certificate requested)
 by gm-smtp11.centrum.cz (Postfix) with ESMTPSA id A05CB100AE2A3;
 Wed, 16 Apr 2025 14:07:22 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5bc3d1f2-1abb-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=atlas.cz; s=mail;
	t=1744805243; bh=hMk+qfxHbBWbPWBjMAT1Mzk1thocsa4qoSF/uO2OysQ=;
	h=Date:From:To:Cc:Subject:From;
	b=ffXnmbnpKMY9AI69+AWKnXsTfApq8fHgh6lvKENvC3ZVYsaVkG7SnLN2F5ccgLhAi
	 +qLajXe2Rfrbd/A22glhqgW5fMw4QQjpTVwKUj3AdNgiOG3V2AMzUsFgZLExQ0Do04
	 AgJZ62+JXJ27IeLXcEhkGs9AkieHEy92A/K7v4K0=
X-CSE-ConnectionGUID: 5uW907vFTYuypfPIRE964Q==
X-CSE-MsgGUID: gD2ADJ/PSN2HBoS5sauQbg==
X-ThreatScanner-Verdict: Negative
X-IPAS-Result: =?us-ascii?q?A2EHAAAFnP9n/0vj/y5aGgEBAQEBAQEBAQEDAQEBARIBA?=
 =?us-ascii?q?QEBAgIBAQEBQAmBOAMBAQEBCwGDQIFkhFWRcYoniAWGDoVbgX4PAQEBAQEBA?=
 =?us-ascii?q?QEBCTsJBAEBAwQ3AYFUgnSLLic2Bw4BAgQBAQEBAwIDAQEBAQEBAQEBDQEBB?=
 =?us-ascii?q?gEBAQEBAQYGAQKBHYU1Rg2CYgGBJIEmAQEBAQEBAQEBAQEBHQINgSdWKA0CH?=
 =?us-ascii?q?wcCcYMCAYIvATQUBrIlgTIaAmXccAKBI2OBJAaBGi4BiE8BhWyFOYINgRWDK?=
 =?us-ascii?q?j6BBQGHGIJpBIItgReQa4VrinKBTRwDWSwBVRMXCwcFgWwDgQ9xNR2BeoNzh?=
 =?us-ascii?q?TaCEYIEiROEVi1PhRsdQAMLbT03FBsGmGeEFnsnGBcJgSUVLpNgkAWjJoMcg?=
 =?us-ascii?q?QkFhEmHS5VKM5dwA5JkLodlj3J5jAyBeZVaKoUqgVAeDYICMyIwgyITPxmOP?=
 =?us-ascii?q?AQHCxaIVcNZdgIBATgCBwsBAQMJgjuNYYFLAQE?=
IronPort-PHdr: A9a23:GRsetBwIpJQwf37XCzL1zFBlVkEcU1XcAAcZ59Idhq5Udez7ptK+Z
 xaZva0m1gWXBtyTwskHotSVmpioYXYH75eFvSJKW713fDhBpOMo2icNO4q7M3D9N+PgdCcgH
 c5PBxdP9nC/NlVJSo6lPwWB6nK94iQPFRrhKAF7Ovr6GpLIj8Swyuu+54Dfbx9HiTezf79+N
 gm6oRneusUIn4dvK6g8xgbUqXZUZupawn9lKl2Ukxvg/Mm74YRt8z5Xu/Iv9s5AVbv1cqElR
 rFGDzooLn446tTzuRfMVQWA6WIQX3sZnBRVGwTK4w30UZn3sivhq+pywzKaMtHsTbA1Qjut8
 aFmQwL1hSgdNj459GbXitFsjK9evRmsqQBzz5LSbYqIL/d1YL/Tcs0GSmpARsZRVjJOAoWgb
 4sUEuENOf9Uo5Thq1cSqBezAxSnCuHyxT9SnnL406003fo/HA/b3wIvEM4Bv2nPodXpKKsfS
 /y5wLXUwTjBaf5dxDfz6JLPchAkufyCR6x/cdbLyUIyGAzKlFOQrJLmPziI0ekCqXKb7+l6W
 uKqkWEnsRp8rSKzxscokIbJnZgZxUzF9Chgxos+ONK3RlJhb9G+DJtQqz+VN5FwQs46TWxlu
 yc3x6EItJC0YSQHxpQpyhreZvKIb4WF/wzvWeePLTl2mX5od6+zihSy/0Wk1+HxWcm53VJXo
 yZYnNfBuHYA3AHd5MiAT/ty5Eah2TCX2gDQ9O5EO0Y0mrTfK5I7xb4wjJUTvELeFSH1gEX7l
 KCbe0Q+9uS26+nqYq/qqoGCO4J2kA3zMKQjltShDeglPAUCRXaX9fqg2LH540H0T6lGgucyn
 6TYtp3RON4VqbSjAwBP14Yu8xO/DzC739sGhXQHN1dFeA6fj4juJlHOPOj0DfehjFSolzdm3
 //GPrj4DpXWK3jDjK/hcatg50JG1AU809Zf545OCrEcJfL/QFP+td3AAh84NQy73frnBc1y2
 44fQ26DHK+UPaPIvVOW+O4iIfOAaY0VtTrlLvgq/f/ujXs3mV8Heqmp2IMaZ2qiHvRlOUqZZ
 GDjgs0aHGgQogo+SPbliEaYXTFPZne+R7g86S0jCIK6EYfDQZiggL+f0yelH51WYHpKBUuWE
 XfvaoqEQPQMaSKJL8B7iDwEUKKtRJMm1RGrrAP60aZoLvLI+i0EspLuzNd06u7SmBwp9jx7E
 d6d02eTQGFwhG8IQCU23K9nrUxn1liDybR4g+BfFdFL4/NJUwE6NYPTzuBjDtDyXxnMftSXS
 Fm8XtqmAis9TtUrw98Be0p9Acmtjgjf3yq2BL8Yj6aEBJ8s8qLZxHXxI8d9y3Db1KgullUmT
 MxPNXCghqFi7QfTG4/Jk0Kfl6qwcqQcxiHN+H+ZzWWSpEFYTBJwUaLdUHEQeETWq8316V7cQ
 L+wF7snNhBMycqDKqtRdt3plk9KRfj9N9TYe2KxgWCwBRSWybyQcIrmYWId3D/SCEQciQAc4
 W6GNRQiBiemu2/eCD1uFVTyY0Lj6OVxsmm7QVM0zwyRcU1h2KS6+gQPifyfVfwTxLQEtzklq
 zluG1a9xd3WB8KapwV9ZKVcfc894FBf2GLdtgx9OIGgLq97il4dbQt3pUXu2AtzCohbj8gqo
 20lzBBoJaKbzlxBbTWY0o70OrHNLWny5h+vZ7bQ2l7FyNmW4LsA6Owkq1X/uwGkDkgvoD1b1
 IxR0n2B9tDJARAUXJbZTEk67V55qqvcby174JnbhlN2NqzhijLewZoXDe2GyV70ds1cOaaND
 if7D8kTHI6lOrp5yBCSchsYMbUKp+YPNMS8eq7DgfbzVNs=
IronPort-Data: A9a23:QP9PJq71x5ZGZTL7JkMB1wxRtOjGchMFZxGqfqrLsTDasY5as4F+v
 msfCmmBOqrZNGGmKNslO43noUsAuMLcn4VrGwE9+S49Zn8b8sCt6fZ1j6vT04F+CuWZESqLO
 u1HMoGowPgcFyKa+1H0dOC88BGQ7InQLpLkEunIJyttcgFtTSYlmHpLlvUw6mJSqYHR7zil5
 5Wr/qUzBHf/g2Qpaj5NtfrZwP9SlK2aVA0w7wFWic9j4we2e0k9VPo3Oay3Jn3kdYhYdsbSb
 /rD1ryw4lTC9B4rDN6/+p6jGqHdauO60aCm0xK6aoD66vRwjnVaPpUTaJLwXXxqZwChxLid/
 v0W7MDtFl15VkH7sL91vxFwS0mSNEDdkVPNCSDXXce7lyUqf5ZwqhnH4Y5f0YAwo45K7W9yG
 fMwdS0yP0jcmcyK8a+qUudUp/4OfZe3BdZK0p1g5Wmx4fcOTpWGWKDW/YYBmjw9gNxUAPOYb
 NhxhThHMEqGOUASfA1NV9RhwY9EhVGmG9FcgFuPpqMy6nL7xRB12aOrO8i9ltmiHpwJzh3B/
 T+Xl4j/Kh42bvWz6329yVT2psXIpn7gUZ8rHrLto5aGh3XWnAT/EiY+VlaloP//gFS5V8lcO
 mQd4C9opq83nGS7HofVXBCipnOA+BkGVLJ4F+w89RHIz6/84BiQDWtCSSROAPQvt9czbTgr0
 EKZ2t3uGDpjuaGUTnTb8a2bxRuiNC5QIWIcaCssSQoe/8KlsIw1lgjITNtoDOiylNKdMTXxx
 S2a6SEkjLU7k8EGzeO48ErBjjbqoYLGJiYx5wPKTiem4xl/aYqNeYOl8x7Y4OxGIYLfSUOO1
 EXogODCsqZUUMzLznbSBrpQdF2028u43PTnqQYHN/EcG/6FoiXLkVx4iN2mGHpUDw==
IronPort-HdrOrdr: A9a23:DOnhbKuMeEAHweiXCbPzomM+7skDbdV00zEX/kB9WHVpmwKj+P
 xGuM5rtyMc6QxhO03I9urrBEDtex7hHP1OgbX5X43CYOCOggLBR72KhrGN/9SPIUHDytI=
X-Talos-CUID: =?us-ascii?q?9a23=3AorHX+Wl3yHejUmrLBF+mHlpYsorXOSDA8yaIfFG?=
 =?us-ascii?q?WNVd0WaWbcX6q1fI6z/M7zg=3D=3D?=
X-Talos-MUID: 9a23:Gb5AwAYMihoUEeBTuBO2rR1Ac/9Txf6OIkc2zI4PpvCOOnkl
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-AV: E=Sophos;i="6.15,216,1739833200"; 
   d="scan'208";a="314831359"
Date: Wed, 16 Apr 2025 14:07:20 +0200
From: Petr =?utf-8?B?VmFuxJtr?= <arkamar@atlas.cz>
To: linux-kernel@vger.kernel.org
Cc: Kevin Brodsky <kevin.brodsky@arm.com>,
	Andrew Morton <akpm@linux-foundation.org>, linux-mm@kvack.org,
	x86@kernel.org, xen-devel@lists.xenproject.org,
	linux-arch@vger.kernel.org
Subject: Regression from a9b3c355c2e6 ("asm-generic: pgalloc: provide generic
 __pgd_{alloc,free}") with CONFIG_DEBUG_VM_PGFLAGS=y and Xen
Message-ID: <202541612720-Z_-deOZTOztMXHBh-arkamar@atlas.cz>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline

Hi all,

I have discovered a regression introduced in commit a9b3c355c2e6
("asm-generic: pgalloc: provide generic __pgd_{alloc,free}") [1,2] in
kernel version 6.14. The problem occurs when the x86 kernel is
configured with CONFIG_DEBUG_VM_PGFLAGS=y and is run as a PV Dom0 in Xen
4.19.1. During the startup, the kernel panics with the error log below.

The commit changed PGD allocation path.  In the new implementation
_pgd_alloc allocates memory with __pgd_alloc, which indirectly calls 

  alloc_pages_noprof(gfp | __GFP_COMP, order);

This is in contrast to the old behavior, where __get_free_pages was
used, which indirectly called

  alloc_pages_noprof(gfp_mask & ~__GFP_HIGHMEM, order);

The key difference is that the new allocator can return a compound page.
When xen_pin_page is later called on such a page, it call
TestSetPagePinned function, which internally uses the PF_NO_COMPOUND
macro. This macro enforces VM_BUG_ON_PGFLAGS if PageCompound is true,
triggering the panic when CONFIG_DEBUG_VM_PGFLAGS is enabled.

I am reporting this issue without a patch as I am not sure which part of
the code should be adapted to resolve the regression.

Let me know if I forgot to mention something important.

Cheers,
Petr

[1] a9b3c355c2e6 ("asm-generic: pgalloc: provide generic __pgd_{alloc,free}")
[2] https://lkml.kernel.org/r/20250103184415.2744423-6-kevin.brodsky@arm.com

[    0.396244] mem auto-init: stack:all(zero), heap alloc:off, heap free:off
[    0.398164] software IO TLB: area num 2.
[    0.449383] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
[    0.452043] page: refcount:1 mapcount:0 mapping:0000000000000000 index:0xffff888003450000 pfn:0x344e
[    0.454715] head: order:1 mapcount:0 entire_mapcount:0 nr_pages_mapped:0 pincount:0
[    0.456908] flags: 0x10000000000040(head|node=0|zone=1)
[    0.458390] raw: 0010000000000040 ffffffff82850ed0 ffffffff82850ed0 0000000000000000
[    0.460621] raw: ffff888003450000 ffff888003454000 00000001ffffffff 0000000000000000
[    0.462807] head: 0010000000000040 ffffffff82850ed0 ffffffff82850ed0 0000000000000000
[    0.464928] head: ffff888003450000 ffff888003454000 00000001ffffffff 0000000000000000
[    0.467106] head: 0010000000000001 ffffea00000d1381 ffffffffffffffff 0000000000000000
[    0.469263] head: 0000000000000002 0000000000000000 00000000ffffffff 0000000000000000
[    0.471430] page dumped because: VM_BUG_ON_PAGE(1 && PageCompound(page))
[    0.473338] ------------[ cut here ]------------
[    0.474764] kernel BUG at include/linux/page-flags.h:527!
[    0.476473] Oops: invalid opcode: 0000 [#1] PREEMPT SMP NOPTI
[    0.478294] CPU: 0 UID: 0 PID: 0 Comm: swapper Not tainted 6.13.0-rc6-00187-ga9b3c355c2e6 #41
[    0.480971] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.3-20240910_120124-localhost 04/01/2014
[    0.484218] RIP: e030:xen_pin_page+0x5e/0x180
[    0.485580] Code: f0 48 0f ba 2e 0a 73 24 48 83 c4 08 5b 41 5c 41 5d 41 5e 41 5f 5d e9 a1 75 e1 00 48 c7 c6 68 70 58 82 48 89 df e8 c2 da 30 00 <0f> 0b 49 bd 00 00 00 00 00 16 00 00 31 ff 41 89 d4 48 b8 00 00 00
[    0.491414] RSP: e02b:ffffffff82803d18 EFLAGS: 00010046
[    0.493064] RAX: 000000000000003c RBX: ffffea00000d1380 RCX: 0000000000000000
[    0.495294] RDX: 0000000000000000 RSI: ffffffff82803b68 RDI: 00000000ffffffff
[    0.497513] RBP: ffffffff82803d48 R08: 00000000ffffdfff R09: ffffffff82925148
[    0.499723] R10: ffffffff828751a0 R11: ffffffff82803a88 R12: ffff88800344e000
[    0.501940] R13: ffff88808344e000 R14: ffff88800344e000 R15: 0000000000000100
[    0.504180] FS:  0000000000000000(0000) GS:ffff88803aa00000(0000) knlGS:0000000000000000
[    0.506699] CS:  e030 DS: 0000 ES: 0000 CR0: 0000000080050033
[    0.508485] CR2: ffffc90000a00000 CR3: 0000000002842000 CR4: 0000000000000660
[    0.510648] Call Trace:
[    0.511420]  <TASK>
[    0.512071]  ? show_regs.part.0+0x1d/0x30
[    0.513315]  ? __die+0x52/0x90
[    0.514282]  ? die+0x2a/0x50
[    0.515189]  ? do_trap+0x10e/0x120
[    0.516255]  ? do_error_trap+0x6e/0xa0
[    0.517453]  ? xen_pin_page+0x5e/0x180
[    0.518611]  ? exc_invalid_op+0x52/0x70
[    0.519805]  ? xen_pin_page+0x5e/0x180
[    0.520936]  ? asm_exc_invalid_op+0x1b/0x20
[    0.522245]  ? xen_pin_page+0x5e/0x180
[    0.523424]  ? xen_pin_page+0x5e/0x180
[    0.524596]  __xen_pgd_walk+0x2a0/0x2d0
[    0.525816]  ? __pfx_xen_pin_page+0x10/0x10
[    0.527116]  __xen_pgd_pin+0x4d/0x180
[    0.528288]  xen_enter_mmap+0x25/0x40
[    0.529431]  poking_init+0x53/0x130
[    0.530558]  start_kernel+0x4a7/0x6f0
[    0.531726]  x86_64_start_reservations+0x29/0x30
[    0.533197]  xen_start_kernel+0x6cf/0x6e0
[    0.534466]  startup_xen+0x1f/0x20
[    0.535497]  </TASK>
[    0.536193] ---[ end trace 0000000000000000 ]---
[    0.537676] RIP: e030:xen_pin_page+0x5e/0x180
[    0.539049] Code: f0 48 0f ba 2e 0a 73 24 48 83 c4 08 5b 41 5c 41 5d 41 5e 41 5f 5d e9 a1 75 e1 00 48 c7 c6 68 70 58 82 48 89 df e8 c2 da 30 00 <0f> 0b 49 bd 00 00 00 00 00 16 00 00 31 ff 41 89 d4 48 b8 00 00 00
[    0.544954] RSP: e02b:ffffffff82803d18 EFLAGS: 00010046
[    0.546553] RAX: 000000000000003c RBX: ffffea00000d1380 RCX: 0000000000000000
[    0.548821] RDX: 0000000000000000 RSI: ffffffff82803b68 RDI: 00000000ffffffff
[    0.551022] RBP: ffffffff82803d48 R08: 00000000ffffdfff R09: ffffffff82925148
[    0.553233] R10: ffffffff828751a0 R11: ffffffff82803a88 R12: ffff88800344e000
[    0.555420] R13: ffff88808344e000 R14: ffff88800344e000 R15: 0000000000000100
[    0.557365] FS:  0000000000000000(0000) GS:ffff88803aa00000(0000) knlGS:0000000000000000
[    0.559528] CS:  e030 DS: 0000 ES: 0000 CR0: 0000000080050033
[    0.561050] CR2: ffffc90000a00000 CR3: 0000000002842000 CR4: 0000000000000660
[    0.562970] Kernel panic - not syncing: Attempted to kill the idle task!
(XEN) Hardware Dom0 crashed: rebooting machine in 5 seconds.
QEMU: Terminated



From xen-devel-bounces@lists.xenproject.org Wed Apr 16 12:32:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 12:32:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.955949.1349486 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u51vu-00070r-3W; Wed, 16 Apr 2025 12:32:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 955949.1349486; Wed, 16 Apr 2025 12:32: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 1u51vu-00070k-0a; Wed, 16 Apr 2025 12:32:02 +0000
Received: by outflank-mailman (input) for mailman id 955949;
 Wed, 16 Apr 2025 12:32: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=hq9D=XC=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1u51vt-00070e-1t
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 12:32:01 +0000
Received: from AS8PR03CU001.outbound.protection.outlook.com
 (mail-westeuropeazlp170120005.outbound.protection.outlook.com
 [2a01:111:f403:c201::5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ca4aa766-1abe-11f0-9eaf-5ba50f476ded;
 Wed, 16 Apr 2025 14:31:59 +0200 (CEST)
Received: from AS4P191CA0001.EURP191.PROD.OUTLOOK.COM (2603:10a6:20b:5d5::14)
 by PAXPR08MB7551.eurprd08.prod.outlook.com (2603:10a6:102:24e::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.33; Wed, 16 Apr
 2025 12:31:56 +0000
Received: from AM3PEPF0000A796.eurprd04.prod.outlook.com
 (2603:10a6:20b:5d5:cafe::3e) by AS4P191CA0001.outlook.office365.com
 (2603:10a6:20b:5d5::14) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.36 via Frontend Transport; Wed,
 16 Apr 2025 12:31:55 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AM3PEPF0000A796.mail.protection.outlook.com (10.167.16.101) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.12
 via Frontend Transport; Wed, 16 Apr 2025 12:31:55 +0000
Received: from DB7PR08MB2987.eurprd08.prod.outlook.com (2603:10a6:5:1c::25) by
 AS8PR08MB10313.eurprd08.prod.outlook.com (2603:10a6:20b:5c1::11) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.32; Wed, 16 Apr
 2025 12:31:22 +0000
Received: from DB7PR08MB2987.eurprd08.prod.outlook.com
 ([fe80::d53f:b16d:70a5:8668]) by DB7PR08MB2987.eurprd08.prod.outlook.com
 ([fe80::d53f:b16d:70a5:8668%4]) with mapi id 15.20.8632.030; Wed, 16 Apr 2025
 12:31: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: ca4aa766-1abe-11f0-9eaf-5ba50f476ded
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=EBaXw5HkQurNZJOhr+SHDoi5MEtkSzvsQ4unTMk+RLGFCQpLDh8jZ6TtHQR6GfxrS4B+pArtqJp+K9mlEejsPobtprfol2AMiIa6DTzzyq+Azu68i2kZhfFyLSuxqtAHBvn85bd9jkP/gQKIlhW0JoAYbWBbkitFGdZGi3hy+0aEj8JtrQJ49AZ5LnnK+oVSujCjystJ0oIbmferfStNlBIMvj6gnKWkRZnn/MkevraexrfNW6O2GPT1VmAaRGdRGkYwUYbDebpa0W6AhXdeK3j2Y7xHDPWP49o+kjpbVVLhVZBdnD8yzBgsn82afhQl9oSgb/Yp9OYFBB2sZjnsXQ==
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=YKE9hTGFmIMD7PzxQ/Z3eU5/nDONibidLGD5JZxcsBI=;
 b=d/lhAdYTxEmr5szR4fSjlQ8KMVSs5D9vpvy9817mrjXKd9mAlWady3QJCqUbezEF7oTDI2WRTf/oMGMgMtQzvaEsiO/QJILoWGLa3tT/Cfw4426nfy0bUi/fY08uPwxixDfXvwLmX82FrgTpemx96PDlGz+rGRXFQvuIMsFsiWJ8W+BZMcRqE4fEGfFrMx1Ti/N4C+L7yi5SSYIb4UpVTaDF89yYlpQlxOrZfOBnGEyNlKbdV928bemeEd2HcWYT9nCWzAyNM3YtFPnQ9SIFrIJw7n2S5RkVprg+6T17QiftnLHAVeK14h6dR3gpfjF8L1XhPoNZZBrmBiqLx57V/Q==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=amd.com smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=YKE9hTGFmIMD7PzxQ/Z3eU5/nDONibidLGD5JZxcsBI=;
 b=Cbf/AVBgm5g5Rn2soE2KBb85TwnTNLpUWGLbY4JrTAhQ+FGBgHm/H6JVNium3veiTZZ7+IIu6jZZBYfceKpkgeESre+f2Vm1hV00xopryRherMdiV9/sS4rFo4C7plKDEdDdqguVXaoLuGmIOB3OvHwe3qS2u6eJp731H3cI78k=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=HMvQNMiBEs4fxX5X5iuYK2i77x236tW5Yfb4DBNu6b3VJD1Ayv43TC7/xN/FHRDldGUGTyFaw+HPRgFojm399+WCt9Owpo6RUxfHL6nbIPpMQUrlaM65Z68+x8ZQaO23OHtbE+D0OspCthAi+GOtvqvBRnoBYp2WzbjuSlP3vauHx01SpyBSBUFVhdrTd0ou5uS7ZqHL9AhlVEAr25eEloVA967UNgxkovGtBRl2sliiX6db+McwqcaOc94f4BtCn6Hk8CAgme19F91zCWf6p/h84JYF+jmfuI/ZkafF+Ch3USR7cPdPzumjeBhBEByzOs2xtGSWORr15m7C571fpw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=YKE9hTGFmIMD7PzxQ/Z3eU5/nDONibidLGD5JZxcsBI=;
 b=N4NiYA3pZ6/yxQf72zn5D44L6lnoQRDX8YleJs1tB8WFuY5v5aLHN4foOUhZPRp3cZjJ665sGDut7SaKW8/pLnXWpCeZicjWtfQKFik6rWQ150uhozLe1kmbk0oFvdQn3jXXIgNr7DGo66THZcVtvnf8vl4tXAcQiE0XWuTewqjG3aTaUSmrpkeVJPuzaZhugq4p8Alfrzmxzb/FJu9F00tw5gJM57wlTWMDMdjg8/QKqBJ5NRGs8+blP0MNmrRfOjZTuiFekm1HyQgRs73r9B49TpleAJqQYnE7F+SH5GLMAgnRE6b4lcln0YISCNpCIdjTHTwhOpkFWJ9ab3P0jQ==
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=YKE9hTGFmIMD7PzxQ/Z3eU5/nDONibidLGD5JZxcsBI=;
 b=Cbf/AVBgm5g5Rn2soE2KBb85TwnTNLpUWGLbY4JrTAhQ+FGBgHm/H6JVNium3veiTZZ7+IIu6jZZBYfceKpkgeESre+f2Vm1hV00xopryRherMdiV9/sS4rFo4C7plKDEdDdqguVXaoLuGmIOB3OvHwe3qS2u6eJp731H3cI78k=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: "Orzel, Michal" <Michal.Orzel@amd.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand
 Marquis <Bertrand.Marquis@arm.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH v3 3/7] arm/mpu: Introduce utility functions for the pr_t
 type
Thread-Topic: [PATCH v3 3/7] arm/mpu: Introduce utility functions for the pr_t
 type
Thread-Index: AQHbqvIP34UccZOkWUuu+Y+Ap2U3MrOmJOcAgAAb/QA=
Date: Wed, 16 Apr 2025 12:31:22 +0000
Message-ID: <0877268B-138F-4FC9-B95E-544699D8AD91@arm.com>
References: <20250411145655.140667-1-luca.fancellu@arm.com>
 <20250411145655.140667-4-luca.fancellu@arm.com>
 <d2b51729-e5dd-4325-9275-615ab1cbb68d@amd.com>
In-Reply-To: <d2b51729-e5dd-4325-9275-615ab1cbb68d@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.400.131.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DB7PR08MB2987:EE_|AS8PR08MB10313:EE_|AM3PEPF0000A796:EE_|PAXPR08MB7551:EE_
X-MS-Office365-Filtering-Correlation-Id: 14d6ed85-a260-4128-f971-08dd7ce2ac82
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?ckNORkJHSVFVRm1EakhoK0NjSjZTcmVNeWp3VkZQWC81TTJzeG1DdDFtQmV0?=
 =?utf-8?B?b1luNWFJY3lQRHJsZFVDTjE5dzU4VlpDWlRmc2FUdTlmc0NacHUzd3FNVVdR?=
 =?utf-8?B?akZCNGVMTHltK2hBelEzYURudEVvYmd3WlF0NVZwa285eHpNOXJESS8zZXk1?=
 =?utf-8?B?M0NFTHE3RFhPVmw2QkZaY0Q2cWgrMnBqNS8xN2dwelcxVlpBcThlVWVEcWJ2?=
 =?utf-8?B?YkRDYUpqRXl6bVJaLy9zejdUT2UweURwcS9HNEJENGx6Smo1WGF2ZE00Y083?=
 =?utf-8?B?S0YwbG0xOWlVV1pWdlNlMWQzVXRxSVRybHVPZ2crZjRIdE5TL29tbTZ0enNM?=
 =?utf-8?B?ZVB5ak5BTkRMaWdIUEFWZ29mN09Ga3BjS2hnVmhWYjFxVG5FYVZla0VqRlhu?=
 =?utf-8?B?K0JiVWFITnJjeFd6UDBUU0FqV2llT2x0MEFSdFd2VzFsSEZQZEp6MWI5anJv?=
 =?utf-8?B?T1FUdmJDYlVxVWFoZDk2bHRKUk1MMnZCVFE5Q0R3aVFYUDhjNW9weGJmeHB1?=
 =?utf-8?B?SEZOOUVnRkdoYU00aDNKNHRMUlNYZzhWcUp3bmVESXZvV25XQmdIcGQxbDNs?=
 =?utf-8?B?ODhDYnlubGVONFBJcmZENU5MSXlMY1B5K1JKbVViNW1BZzV1UG10QlRTY29X?=
 =?utf-8?B?a2d3Uk9hbVVEdkFWOUxWdnJxRXVBRHZMay9UYkt5ZTBiRkJrNVZVZnlIRlJB?=
 =?utf-8?B?bkNGUmdQQ0VkQlovQVZsblY2cEtjK0pYSVpadDFFR3RreDVhS0VzMEsveW5o?=
 =?utf-8?B?Q0RoMVJwdDRDUHQ5dVJocjZVc3lxTHcraHZkeVNraXVSNTkzSWVUQ3czMkpw?=
 =?utf-8?B?ZzF1NytTNlNwTFB2aTVEU25TTmt4RTZxTUFNeXkvNmpkWjBSbE05Q0RUNitk?=
 =?utf-8?B?cjl3VjlCeC92eEF1SW9YdFZVRUxLVElQdExad2gzbnZjSTN3VTEzaXJRSTJI?=
 =?utf-8?B?dDE2SXdUM0FwMUdBNTVoNkIwbHVFMlM3TGJRcHlZcC9ON28wcDNPSXQxbS90?=
 =?utf-8?B?WTk3cFY2N1dqRCsxUG1QandsK2pjZlZscGdWNTFxYWcwV05HY3NTenRiWXRE?=
 =?utf-8?B?SVZJZkFHMllkWnExTzNpY2tFOFFuekEvVWozd1pMdEw2VVBZMjkxRE1GZE1V?=
 =?utf-8?B?TnZLTHI1eGNHSTE0bDhRWFk4VW5PMkhwS1h3RHRKMVp4MlhYK0t1U2tOVlRC?=
 =?utf-8?B?NzA0eC9tYzJ1VzlhdHZmMHN2bjAxZmtzT0ZrN2l5c2UzbDZwUGNCYmk0b05n?=
 =?utf-8?B?TDRzNllUbGZpSllnYnJrc200MkF5MkpkNEhZd0dvektWTE9sNXUwdUd3NjJo?=
 =?utf-8?B?cmJVZjFOYktKc045TFc3U25tZGpGM0toWVBENVdaZVVNL1lLL1dsRDJ1T0hN?=
 =?utf-8?B?Y0U3Y1A3Zi93cnFZY3A4SFpsTS9UNFZQSDM1aTA5U0FjMGEvSnZvcVFwNGhC?=
 =?utf-8?B?dlg5QVNMOHRxaHlhK2pqRlR2NHJzRFMrS2JCdmJSS2dROFdnaXVrY1dXQVp4?=
 =?utf-8?B?MXRBa3ZKOGZncGZvQk9ORzZQbGxWYWFZTkQvK0VKUVlFeEViR25tME42WXIz?=
 =?utf-8?B?YWVFN2ZNWXY4SzlIdDVwUW12RVhheEE2enhBLzN3RTlWbnlRTFpzcStUV0JM?=
 =?utf-8?B?VDV4UGh0S3VoVjE5ZmVnRWxSK0NjRXh4RndHWUZtVEp6VlpSMGxYeXRMYWJx?=
 =?utf-8?B?dG5zV3RXMElSQnJGYUQrZnJ3UHNHY0o2dUo3RjdLZEI4bG5kNUE2ZmE5b3NK?=
 =?utf-8?B?a2NFeEQrL1FpNklkWE1QaUdXVWFkNUJVVHpiYXRWaWtwN0toQldZclJ6VlZ6?=
 =?utf-8?B?WUxWQVExSEhFR25qZ1V6UThnV2xnMXhHVmJFa0w4K0JyWFpqRUpxLy9DNlkx?=
 =?utf-8?B?eHRZR2M0ci9sc01nWWRtd29KR05Ic1NpbE4rZTZJcm9IaWhvNFRUaVQ5UWwz?=
 =?utf-8?B?WDNUL2dLbVRpY2huMDA4MFRMdUlDcWl1ZU1TNTlFU1A1ZTJwMitHZDFxbDRF?=
 =?utf-8?B?Q2dXR3FwOGNBPT0=?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB7PR08MB2987.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: <121976805364CF43AC15456285ED79D8@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB10313
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AM3PEPF0000A796.eurprd04.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	d7db49c2-b4b3-46da-0b75-08dd7ce298e8
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|14060799003|376014|82310400026|35042699022|1800799024|36860700013|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?ZVQ0UXNNbSsvcGV0VnY4ZTFyaWdQNXpQWUk4ZFZUZW5FakF0R1k5T2U5bDIw?=
 =?utf-8?B?dm1GZkJHR01PczVrRnA3bDM2SjVSZnIyTFNXQk5adklTUmdDNGFBQzlEMXlx?=
 =?utf-8?B?ZzdUejBNSC9XVW5KVjBPUUY3NTF5aEszMmFqOXljcXFlYXdFVkt2YnNXMFNP?=
 =?utf-8?B?Y0toTlgrVGFtS0R6UGQ2aGdtTnZ3SC9aR2ZMY2tZc2x6U2JGcFV4L3RpYmFo?=
 =?utf-8?B?ZTRYM3FFL3N1OThYS1ZRN0o1VVhLd0Zna3NGMC93NmRUTDZpNkt0NU5rQUFx?=
 =?utf-8?B?dnRqZVdjU1k4ejV4d0xrZ09UWFZLMjc0SFVjNWl5dWIzMXdFRVVWTXRTRWw2?=
 =?utf-8?B?dUdUeC9ZQmRETmNDeWE1L1diRjJFQU9raU1zc2xZdFc2YlRrSmM4VWMvdzR3?=
 =?utf-8?B?OGh2TTczNEFvZjQ4eE9RVG9ieGc5R2FRZzRTSmcyaE5nOHc4ZWE4S25yZDJl?=
 =?utf-8?B?azBjM0h4am9PYmJLS2gvRmVYMkMySUJ2WG9PaVZJb3VSdFhNQ1Z0cDZYOCt2?=
 =?utf-8?B?aVBlRDY1SGljYTJXckVlS0JaR2hCcGJCYVh5d3hoQVN5d09vNi83eEt5azRx?=
 =?utf-8?B?MkZJRDVWYitvZVQyRTllWGpZTENBaHoyTlp2cnlHTXRtSjhlbWM4dmNwRnFE?=
 =?utf-8?B?eW95NVArV1NlTnQxRDBCR0NIckVNOE9XdmowSzZPbFBSQXYxNkEwbWlQbzlp?=
 =?utf-8?B?cWV6TkJhWXRheHpaRlhVYW5qTnRCenRhSmt4SHl5N3g3N0RUc2c0SWcxUUwx?=
 =?utf-8?B?WkM4bjZkSTVwd0MwRTdnazhEMlZmdGVkajMwNmFiZjk3UERrazNpZzdVVDJH?=
 =?utf-8?B?SUgwV1N6ZjJWREdKS2t0cnl2Ny91N1dMdWs4cXNEV0FLKzJNclJDZnZVWFVl?=
 =?utf-8?B?NENyNTB4MkFDV2NrUlBuNXpYSDl6N1lVVkcyRmJBQzIxM3kwWi9mSDQ1eUx3?=
 =?utf-8?B?WmY3V05IYXV3TTBWZVFyT3pvMGxXUVAxSjRCSmZUWjNKeXVzemlYbTJKcG40?=
 =?utf-8?B?M1J2RmhhVHB6cmdwc0tBWTljTnQ0RXRPMHdCdUlsZTQreUFhcDRnWW0raFR5?=
 =?utf-8?B?RDAxYVp1ZkdnZ1hGeWU5Y2NlR0hLeHdXall0YXZlcGxJcDhyZURqcmZFeU5Q?=
 =?utf-8?B?ajkwSFBoV1pXZWJKMWNRSEVlMzBOaDhYSnN5R2ZBZ1lhTXB1K2JDRDNybk9M?=
 =?utf-8?B?RWFBdDhKc1Vha3pnaEhIeTJYLzdtSnRuTUQvNVJ3aFVZaFRONUtydTNBa29i?=
 =?utf-8?B?YXphd0Q2MHRpL0lxOWFCTHZwUXJUN3VFOE5jMElIa0pha0ZEeDFYTkNBTXBB?=
 =?utf-8?B?NDByMytqd2dHSHJwOHN0SFVjZkE0Ynluc051UDA5MCt5QmExWWJzVlhUeXpP?=
 =?utf-8?B?bmVONUdYLzR1cFArSXpGWmdkenRnQS81NnRvVGk4K3hzY2R3M2pVaGVRRXg4?=
 =?utf-8?B?ajNKMEd1eW1Tc2xpMGxPTmZKNEpqTTAzNkR1WUZ0OTA3cDJsbDRiclduYXQ3?=
 =?utf-8?B?aXluMGFlaGtSMHF6Z0VaV3V0aC9ZSFNvSml6cG5lc3RBMitlY1NtcU5vNVJQ?=
 =?utf-8?B?dEZFMkpFVWRoUksxVGlQcVd0bUlpb0IzT3FJY1pITkVJcUw5QmxXblFpMDgy?=
 =?utf-8?B?NVEvNlFqYkhzclhiWFlnc21nMFRlMDBKbXh6WXErYmgvcHdZTHE1Uy9wbmtv?=
 =?utf-8?B?ZzlFZ0RWNERvWE1LdFZyR244QjVPaGxndnEraGVyemFXeW9sZUdJay9SMEVu?=
 =?utf-8?B?TzZZL1JVSFlGenY2R1pTbkU2bG5lTjVtdlk4eklwV2hHdUU1bVQ3Ym5oQTg0?=
 =?utf-8?B?SEpheFJLRkhrQXAxWEd5ZUUvMmlETzZLaW50aWZobkEycVk3TjllUnpJR1Rr?=
 =?utf-8?B?Vm1EUFQvekc5MDI2TW10ektxWkRwVCtaUGtIRTdvbURlREtWaDNQVkN6aU9r?=
 =?utf-8?B?MGNPckRoSXpqczN3ZEpBZnlUWEdMU1doWWlWTnZuWHJxYVE2NUZaSlZCR0sv?=
 =?utf-8?B?a3pIYUpaQm4rdTRtMXlTQ1NFTmtJN0ZkZEpLbUJmbnpmeUp2bUc1T2hhUGZR?=
 =?utf-8?Q?kc1Cwl?=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(14060799003)(376014)(82310400026)(35042699022)(1800799024)(36860700013)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Apr 2025 12:31:55.4414
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 14d6ed85-a260-4128-f971-08dd7ce2ac82
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AM3PEPF0000A796.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR08MB7551

SGkgTWljaGFsLA0KDQo+IE9uIDE2IEFwciAyMDI1LCBhdCAxMTo1MCwgT3J6ZWwsIE1pY2hhbCA8
TWljaGFsLk9yemVsQGFtZC5jb20+IHdyb3RlOg0KPiANCj4gDQo+IA0KPiBPbiAxMS8wNC8yMDI1
IDE2OjU2LCBMdWNhIEZhbmNlbGx1IHdyb3RlOg0KPj4gSW50cm9kdWNlIGZldyB1dGlsaXR5IGZ1
bmN0aW9uIHRvIG1hbmlwdWxhdGUgYW5kIGhhbmRsZSB0aGUNCj4+IHByX3QgdHlwZS4NCj4+IA0K
Pj4gU2lnbmVkLW9mZi1ieTogTHVjYSBGYW5jZWxsdSA8bHVjYS5mYW5jZWxsdUBhcm0uY29tPg0K
Pj4gLS0tDQo+PiB4ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vbXB1LmggfCA0MCArKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrDQo+PiAxIGZpbGUgY2hhbmdlZCwgNDAgaW5zZXJ0aW9u
cygrKQ0KPj4gDQo+PiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL21wdS5o
IGIveGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL21wdS5oDQo+PiBpbmRleCA1OWZmMjJjODA0YzEu
LjY5NzE1MDc0NTdmYiAxMDA2NDQNCj4+IC0tLSBhL3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9t
cHUuaA0KPj4gKysrIGIveGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL21wdS5oDQo+PiBAQCAtMjAs
NiArMjAsNDYgQEANCj4+ICNkZWZpbmUgTlVNX01QVV9SRUdJT05TX01BU0sgICAgKE5VTV9NUFVf
UkVHSU9OUyAtIDEpDQo+PiAjZGVmaW5lIE1BWF9NUFVfUkVHSU9OUyAgICAgICAgIE5VTV9NUFVf
UkVHSU9OU19NQVNLDQo+PiANCj4+ICsjaWZuZGVmIF9fQVNTRU1CTFlfXw0KPj4gKw0KPj4gKy8q
IFNldCBiYXNlIGFkZHJlc3Mgb2YgTVBVIHByb3RlY3Rpb24gcmVnaW9uKHByX3QpLiAqLw0KPiBX
aGF0J3MgdGhlIHVzZSBvZiAocHJfdCkgaW4gdGhpcyBjb21tZW50PyBwcl90IGlzIGEgZGF0YSB0
eXBlLiBJZiBhdCBhbGwsIGl0DQo+IHdvdWxkIHdhbnQgdG8gYmUgLi4ucmVnaW9uIEBwciBidXQg
SSB0aGluayB5b3UgY2FuIHNraXAgaXQuDQoNCm9rDQoNCj4gDQo+PiArc3RhdGljIGlubGluZSB2
b2lkIHByX3NldF9iYXNlKHByX3QgKnByLCBwYWRkcl90IGJhc2UpDQo+PiArew0KPj4gKyAgICBw
ci0+cHJiYXIucmVnLmJhc2UgPSAoYmFzZSA+PiBNUFVfUkVHSU9OX1NISUZUKTsNCj4gTG9va2lu
ZyBhdCBwcl90IGRlZmluaXRpb24sIGJhc2UvbGltaXQgaXMgNDYgYml0cyB3aWRlLiBIb3dldmVy
IHRoZSBzcGVjIHNheXMNCj4gdGhhdCBsYXN0IDRiaXRzIGFyZSByZXNlcnZlZCAoaS5lLiB5b3Ug
c2hvdWxkIG5vdCB3cml0ZSB0byB0aGVtKSB1bmxlc3MgRkVBVF9MUEENCj4gaXMgaW1wbGVtZW50
ZWQuIFdoYXQncyBvdXIgcGxhbiBoZXJlPw0KDQpTbyB3ZeKAmXJlIGN1cnJlbnRseSBzdXBwb3J0
aW5nIG1heCAxVEIsIHNvIHByb2JhYmx5IHRoaXMgb25lIG5lZWRzIHRvIGJlIG9uIHRoZQ0KY2Fz
ZSB3aGVuIEZFQVRfTFBBIGlzIGNvbnNpZGVyZWQgbm90IGltcGxlbWVudGVkLCBzbyBJ4oCZbGwg
Y2hhbmdlIGFuZCBpZiB3ZSB3aWxsDQpsYXRlciBzdXBwb3J0IG1vcmUgdGhhbiA0MiBiaXQgd2Ug
Y291bGQgZG8gc29tZXRoaW5nPw0KDQo+IA0KPj4gK30NCj4+ICsNCj4+ICsvKiBTZXQgbGltaXQg
YWRkcmVzcyBvZiBNUFUgcHJvdGVjdGlvbiByZWdpb24ocHJfdCkuICovDQo+PiArc3RhdGljIGlu
bGluZSB2b2lkIHByX3NldF9saW1pdChwcl90ICpwciwgcGFkZHJfdCBsaW1pdCkNCj4+ICt7DQo+
PiArICAgIHByLT5wcmxhci5yZWcubGltaXQgPSAoKGxpbWl0IC0gMSkgPj4gTVBVX1JFR0lPTl9T
SElGVCk7DQo+IFdoeSAtMT8gQUZBSVIgdGhlc2UgcmVnaXN0ZXJzIHRha2UgaW5jbHVzaXZlIGFk
ZHJlc3Nlcywgc28gaXMgaXQgYmVjYXVzZSB5b3UNCj4gd2FudCBjYWxsZXIgdG8gcGFzcyBsaW1p
dCBhcyBleGNsdXNpdmUgYW5kIHlvdSBjb252ZXJ0IGl0IHRvIGluY2x1c2l2ZT8gSSB0aGluaw0K
PiBpdCdzIHF1aXRlIGVycm9yIHByb25lLg0KDQpZZXMgaXTigJlzIG1lYW50IHRvIGJlIHVzZWQg
d2l0aCBleGNsdXNpdmUgcmFuZ2UsIHNoYWxsIHdlIGRvY3VtZW50IGl0IG9yIHVzZQ0KSW5jbHVz
aXZlIHJhbmdlIGluc3RlYWQ/DQoNCkNoZWVycywNCkx1Y2ENCg0K


From xen-devel-bounces@lists.xenproject.org Wed Apr 16 12:32:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 12:32:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.955950.1349495 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u51vz-0007IM-Ec; Wed, 16 Apr 2025 12:32:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 955950.1349495; Wed, 16 Apr 2025 12:32: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 1u51vz-0007IC-BQ; Wed, 16 Apr 2025 12:32:07 +0000
Received: by outflank-mailman (input) for mailman id 955950;
 Wed, 16 Apr 2025 12:32: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=S7a8=XC=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1u51vy-00070e-Bk
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 12:32:06 +0000
Received: from sender4-of-o50.zoho.com (sender4-of-o50.zoho.com
 [136.143.188.50]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id cd093402-1abe-11f0-9eaf-5ba50f476ded;
 Wed, 16 Apr 2025 14:32:05 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 1744806711476990.0145517481166;
 Wed, 16 Apr 2025 05:31: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: cd093402-1abe-11f0-9eaf-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; t=1744806714; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=fC7y4aD4HtZ1d7Zs1oGG+r/fmqhjeniiicbXyd2RErmg109+LPAZ6A33HQO5XzDr9p9bziVOPn9hXXcxmkxEDhrlD46KETUU8c/MXXav0kBHGkVwHNv0s2yTmlHGmUcYE2cn5upXNrGnAqy9CgV5NU7egKbB4BioHaULmJcc1R0=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1744806714; 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=KpP/4Zs8shr87azUSyuQPyT0WTiOrEJCfmyhu82FH8g=; 
	b=iJfnSEs+CG48GiP9TAmw+TzfyeES9jj64kV+JkuYsRnoOYUHeNp/GCG4NviwqzGjmn0HsUa/eDZ04Ejh8eL7osQr52TLj36WzvBIwKOCIyfM2JOeRVHEVHSXoRUUh6B0+H3F4EIu2PH29u7w7cgn1pq/Kuf02jd9dTQ7cBOh0MU=
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=1744806714;
	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=KpP/4Zs8shr87azUSyuQPyT0WTiOrEJCfmyhu82FH8g=;
	b=r53O2Dm04WS4rbco7LNLKKG+zWALZj28fj7Swz+r/CUD0JcaetRZqzOVxc/WkW3u
	wldNQxgQXt38h61HCSOcjY6J10obrSS+pudpUkLerM78NEhSG9j3r7cU75Nr3evsrky
	XYCzd97rZOKKpjzPPrqAi4ucjwQAN3YtWkUW6ZKU=
Message-ID: <44b41aa0-839f-41fd-a61f-6495062a1dcc@apertussolutions.com>
Date: Wed, 16 Apr 2025 08:31:49 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 10/15] xsm/flask: Switch {asm -> xen}/byteorder.h
Content-Language: en-US
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Shawn Anastasio <sanastasio@raptorengineering.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>, Lin Liu <lin.liu@citrix.com>
References: <20250416115900.2491661-1-andrew.cooper3@citrix.com>
 <20250416115900.2491661-11-andrew.cooper3@citrix.com>
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
Autocrypt: addr=dpsmith@apertussolutions.com; keydata=
 xsJuBFYrueARCACPWL3r2bCSI6TrkIE/aRzj4ksFYPzLkJbWLZGBRlv7HQLvs6i/K4y/b4fs
 JDq5eL4e9BdfdnZm/b+K+Gweyc0Px2poDWwKVTFFRgxKWq9R7McwNnvuZ4nyXJBVn7PTEn/Z
 G7D08iZg94ZsnUdeXfgYdJrqmdiWA6iX9u84ARHUtb0K4r5WpLUMcQ8PVmnv1vVrs/3Wy/Rb
 foxebZNWxgUiSx+d02e3Ad0aEIur1SYXXv71mqKwyi/40CBSHq2jk9eF6zmEhaoFi5+MMMgX
 X0i+fcBkvmT0N88W4yCtHhHQds+RDbTPLGm8NBVJb7R5zbJmuQX7ADBVuNYIU8hx3dF3AQCm
 601w0oZJ0jGOV1vXQgHqZYJGHg5wuImhzhZJCRESIwf+PJxik7TJOgBicko1hUVOxJBZxoe0
 x+/SO6tn+s8wKlR1Yxy8gYN9ZRqV2I83JsWZbBXMG1kLzV0SAfk/wq0PAppA1VzrQ3JqXg7T
 MZ3tFgxvxkYqUP11tO2vrgys+InkZAfjBVMjqXWHokyQPpihUaW0a8mr40w9Qui6DoJj7+Gg
 DtDWDZ7Zcn2hoyrypuht88rUuh1JuGYD434Q6qwQjUDlY+4lgrUxKdMD8R7JJWt38MNlTWvy
 rMVscvZUNc7gxcmnFUn41NPSKqzp4DDRbmf37Iz/fL7i01y7IGFTXaYaF3nEACyIUTr/xxi+
 MD1FVtEtJncZNkRn7WBcVFGKMAf+NEeaeQdGYQ6mGgk++i/vJZxkrC/a9ZXme7BhWRP485U5
 sXpFoGjdpMn4VlC7TFk2qsnJi3yF0pXCKVRy1ukEls8o+4PF2JiKrtkCrWCimB6jxGPIG3lk
 3SuKVS/din3RHz+7Sr1lXWFcGYDENmPd/jTwr1A1FiHrSj+u21hnJEHi8eTa9029F1KRfocp
 ig+k0zUEKmFPDabpanI323O5Tahsy7hwf2WOQwTDLvQ+eqQu40wbb6NocmCNFjtRhNZWGKJS
 b5GrGDGu/No5U6w73adighEuNcCSNBsLyUe48CE0uTO7eAL6Vd+2k28ezi6XY4Y0mgASJslb
 NwW54LzSSM0uRGFuaWVsIFAuIFNtaXRoIDxkcHNtaXRoQGFwZXJ0dXNzb2x1dGlvbnMuY29t
 PsJ6BBMRCAAiBQJWK7ngAhsjBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRBTc6WbYpR8
 KrQ9AP94+xjtFfJ8gj5c7PVx06Zv9rcmFUqQspZ5wSEkvxOuQQEAg6qEsPYegI7iByLVzNEg
 7B7fUG7pqWIfMqFwFghYhQzOwU0EViu54BAIAL6MXXNlrJ5tRUf+KMBtVz1LJQZRt/uxWrCb
 T06nZjnbp2UcceuYNbISOVHGXTzu38r55YzpkEA8eURQf+5hjtvlrOiHxvpD+Z6WcpV6rrMB
 kcAKWiZTQihW2HoGgVB3gwG9dCh+n0X5OzliAMiGK2a5iqnIZi3o0SeW6aME94bSkTkuj6/7
 OmH9KAzK8UnlhfkoMg3tXW8L6/5CGn2VyrjbB/rcrbIR4mCQ+yCUlocuOjFCJhBd10AG1IcX
 OXUa/ux+/OAV9S5mkr5Fh3kQxYCTcTRt8RY7+of9RGBk10txi94dXiU2SjPbassvagvu/hEi
 twNHms8rpkSJIeeq0/cAAwUH/jV3tXpaYubwcL2tkk5ggL9Do+/Yo2WPzXmbp8vDiJPCvSJW
 rz2NrYkd/RoX+42DGqjfu8Y04F9XehN1zZAFmCDUqBMa4tEJ7kOT1FKJTqzNVcgeKNBGcT7q
 27+wsqbAerM4A0X/F/ctjYcKwNtXck1Bmd/T8kiw2IgyeOC+cjyTOSwKJr2gCwZXGi5g+2V8
 NhJ8n72ISPnOh5KCMoAJXmCF+SYaJ6hIIFARmnuessCIGw4ylCRIU/TiXK94soilx5aCqb1z
 ke943EIUts9CmFAHt8cNPYOPRd20pPu4VFNBuT4fv9Ys0iv0XGCEP+sos7/pgJ3gV3pCOric
 p15jV4PCYQQYEQgACQUCViu54AIbDAAKCRBTc6WbYpR8Khu7AP9NJrBUn94C/3PeNbtQlEGZ
 NV46Mx5HF0P27lH3sFpNrwD/dVdZ5PCnHQYBZ287ZxVfVr4Zuxjo5yJbRjT93Hl0vMY=
In-Reply-To: <20250416115900.2491661-11-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ZohoMailClient: External

On 4/16/25 07:58, Andrew Cooper wrote:
> Sort the includes while at it.
> 
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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


From xen-devel-bounces@lists.xenproject.org Wed Apr 16 12:42:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 12:42:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.955976.1349516 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u525p-0001tr-Fv; Wed, 16 Apr 2025 12:42:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 955976.1349516; Wed, 16 Apr 2025 12:42: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 1u525p-0001tk-Co; Wed, 16 Apr 2025 12:42:17 +0000
Received: by outflank-mailman (input) for mailman id 955976;
 Wed, 16 Apr 2025 12:42: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=PIlj=XC=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1u525o-0001ZY-76
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 12:42:16 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on20630.outbound.protection.outlook.com
 [2a01:111:f403:2418::630])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 38d951c9-1ac0-11f0-9ffb-bf95429c2676;
 Wed, 16 Apr 2025 14:42:14 +0200 (CEST)
Received: from BN9PR12MB5273.namprd12.prod.outlook.com (2603:10b6:408:11e::22)
 by DM4PR12MB6446.namprd12.prod.outlook.com (2603:10b6:8:be::7) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.8655.21; Wed, 16 Apr 2025 12:42:10 +0000
Received: from BN9PR12MB5273.namprd12.prod.outlook.com
 ([fe80::cf66:58ab:47be:4b13]) by BN9PR12MB5273.namprd12.prod.outlook.com
 ([fe80::cf66:58ab:47be:4b13%5]) with mapi id 15.20.8632.036; Wed, 16 Apr 2025
 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: 38d951c9-1ac0-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=bjGCPprzcGyXKRzyONTwXMlm2PIVL3FH+W07NpzrrRDhE2BMzVUJ8rMNhbiqgqhFLhIkpGFlNvzsiZC8Rh1G1gIm695IEcMRRSt71L54Aqb05fJffcKCGfyeFtL7cZ0sG+PnPiqeWdZWsaVXX+1OFc+OOIPvcvGuYcXgDMJenqAQzoVFQob85PI4mmO9FhFk12UePoKH35r4rAwQjHNXD5tvtgdJlYwBS1ao+pHU6SH431hAteTmiRXC+NsasW03ZUGD5+JSlJQHPKjBra/qzTW8i+4VTcGNIQuIGe4AF/BURio45JFPQ/KuAD7ZbHIYWL4TghhNKOvWWfwVKvq+4w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=yYNKPEWu0pVbkv4BB1tMxqyMIveOWb+p3Rg1Xl6ao8k=;
 b=hrALo4ReTcpM8sIhf/CEAWUF0k0lps/LtcLnOozYEYRfkl3C3VH4WdFNzMYgO8RB8I0y+XqXJxY19qCVRJyeK0nVEuVOfq2kmBvDU6QFHkFMFKxRKzTw3i9kTmBuMvjPVlNIBNGUbddanTSsvpPnEwe2WwDyhlaXekHmWQF7umY3tuZRVCzwepkpE1kXgf7G+cJGooJp6v7f40g/xyQR7Dce+vJJTakfrj++5fTYouEFm+Ml9tGKa5ZKHztD0ZcAUJ++c++d8SoHvRQbVHS8AobOSF51ws2RcKkROuF9WCQZwEOhxMoI6WIw6tWiUhEJue/8xef7xx4Z6ij3+b49iQ==
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=yYNKPEWu0pVbkv4BB1tMxqyMIveOWb+p3Rg1Xl6ao8k=;
 b=k7VvwKwSQgXxiyQdko99j76mjcSbc+mkFHM2kg+PxF08UFR4CXDTpUSMpUQjt6jKzvvpNR0vA9TTMiljzxfLxPqBdCOV7ak5nwrQQWvB5hqgYChJHQnqqQWInz/w7fAtPzeUAIlHqHYtb5dz2sAr7hSsrWwGFBLWnVbO+JQF/aw=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <22a7f8b1-6614-4354-830e-30dbf6210ec8@amd.com>
Date: Wed, 16 Apr 2025 14:42:06 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 3/7] arm/mpu: Introduce utility functions for the pr_t
 type
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>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <20250411145655.140667-1-luca.fancellu@arm.com>
 <20250411145655.140667-4-luca.fancellu@arm.com>
 <d2b51729-e5dd-4325-9275-615ab1cbb68d@amd.com>
 <0877268B-138F-4FC9-B95E-544699D8AD91@arm.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <0877268B-138F-4FC9-B95E-544699D8AD91@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: FR4P281CA0180.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:b7::13) To BN9PR12MB5273.namprd12.prod.outlook.com
 (2603:10b6:408:11e::22)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN9PR12MB5273:EE_|DM4PR12MB6446:EE_
X-MS-Office365-Filtering-Correlation-Id: 33644e09-0298-45d7-08ca-08dd7ce41ac2
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?N2xjeG9hcFJ2UVZZQ1dKajIzZWxMYXJ6My9hY2w1TGtBU0pEeXZicENoVHBr?=
 =?utf-8?B?RFZWMDR6MmFVeXpQZ2Y5TFgrL0pKalVXa1BCcVNXRC9PNGNpQnZTcjFRSmND?=
 =?utf-8?B?Y0xZWTY2QlkxY2JaNlp0RUhWVzFBdHpMZWYxYjZwWVFOV1pVenBtQ2xEU1R2?=
 =?utf-8?B?d0xUNldHZE1HYmRHWnQ3eGdzakM0TzI0TGR2djhvNzBFOXo0blNkbFhqKytZ?=
 =?utf-8?B?UGRFVVExekYzQ0pHeWd4OWFoMkkrYXFPaW00NnYwK21CZGw0ME4vVmt5bDBG?=
 =?utf-8?B?VVpvNXZFM0JtK1ZtQXBiRCs2dGVnOUE0NWZzVzNnbWhiOGpsbW8rZFIxaWNs?=
 =?utf-8?B?MkFleXB5amQzVkxSWGpoU0d5NlYvUlA0L0NSTXFjblFBbjdkQzhIWFRuM0pu?=
 =?utf-8?B?dzc3bk81Q2NqNVNQZC9sQ0tKZ3JOTXFLYTB0Y3l0dkZYL1N3UGZ1OVRaM2Z4?=
 =?utf-8?B?aWVWUmloRTdiTzUwenhlcDVJR0d6eHYwdkVZSlZkWmQyL01vbzlxdGdMVG10?=
 =?utf-8?B?MTQ1KzB2VWlzSlN1VHNBRmRLcmlmOHVBaWdKWDZFN3hoa1N0SU92YlFwWSti?=
 =?utf-8?B?WjBYeHl4NTFyVC9tby9XSCtpZGxneDM2MFc0UVI1dXdhYStFU1R4dDB2bElv?=
 =?utf-8?B?VGxzTW9tMm9yQmNld1BOZmkramJrSE1lUFNiTklqRGFtTFMzMmNqQnhUUTdn?=
 =?utf-8?B?Ylk2dCs5YTF6b1NKa1hiOU95QnBKWi9wSlN1VHUxcnQxZ1NSTUhCa21mU2xB?=
 =?utf-8?B?MElLLzhqcjNiaTM3ZnZBVzhBbHhwUlRLYUk1a2E4NFhUV0RGVmtpQ1JtY2NC?=
 =?utf-8?B?SGJMQVNYUCsySDhWVnl6RnhPY1pkRlFrWmZ5UWN2SHViVEJ0ZzBqc1FJb2M0?=
 =?utf-8?B?MnV5eHU3STdjL2lyVmZrOEo2VlM2bENnbkFqdEoxV0hYcGJQWngyVkhnTW1q?=
 =?utf-8?B?dWU0N2NqbUhvY01ENFkzaVBEVVV1eUFQVEY5VEoyOEJpSGdYZ1gyalI0Wjhz?=
 =?utf-8?B?ckx3LzZmMWFNd0dGUEU5LzIvSStOMVhCdGZlVCtWbmZQYVBmMVEzWVN3eG1Y?=
 =?utf-8?B?U1hPOHRZZE1ReUdtb1kwWWFMdENOSVorekFIL0Nhc1BjZUNSNmlJaVBNV0k3?=
 =?utf-8?B?NUwzcUxreWkwS1dVUGh2T1ZnaTkzWkZ2WjFKc3c5eVo0amk0WnlkVzVuMEVk?=
 =?utf-8?B?bE1sdS9vK2RIcTA4U1g2cktWR2RSVUN4UEl2SUZqNTJYQmFPSFN6YnBCamJ5?=
 =?utf-8?B?MEcwc0xnY3dRYW00SVA4NEcxTExSamx5U09KT2ZqdVV0ZGd4TlRVdngvbmxT?=
 =?utf-8?B?SUdKTHlCcjBsQ1JXRkJHUWl6MlMzN0F2YXU4Z1llV1JEVUxodTJ4dmpSWWJG?=
 =?utf-8?B?R1pJbjlBZHpTWlp5LzgwSXRzYUZ2bCs3RlBQK2dSZlUvMENFTkEwaXdZcElS?=
 =?utf-8?B?WitkOWYzd1hqR0lTVW9qanZjREpxc1dKL2pvQTBuZUMzQ05WcGZ5dlhrTUN3?=
 =?utf-8?B?MkxIdTJmSnhiT2RwbDRjTzA5N0VReUQvdGpRbEJCd21va2pNZ2RMdktJYUdU?=
 =?utf-8?B?dUdQc0ZRV1plR1ZVY1VLTmZraFRtaHNaTHVaeTRmNnREOVhmZ09pSHRZMW1o?=
 =?utf-8?B?S2wrSUFaT2VQbjB0TmltY2huM255QWtqNjRoZFJNQVR1M2RLcHBPK0M0VG5u?=
 =?utf-8?B?bk1nMTdnajkvdi9QSUxNTkZBMW1xbnh4VXBBNlBJVXEzemYyZWJsMHB2ZlRt?=
 =?utf-8?B?ejRRWEZoSm1PRFRqVjFhRGV5bSszTXp5cGFyeE5xVWNKTU51cFh6V05ZNVF5?=
 =?utf-8?B?RHhla28wOEhYdjRQazhCVU84dXJ6QWpubVRJUG5UZFpiYjVnWmhla2toNlV1?=
 =?utf-8?B?RWR4ZnRMSmlEUmd3NzV1aTBsWDBMR1BxMVdpMWVpTGhjSFZqTkFYSzEveTlP?=
 =?utf-8?Q?a0r/j6j6WCk=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN9PR12MB5273.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?WWR5aDFiZ2tjSFFueHhGdGZHMzRGUDZndEk0STVJemdMMXJwemlrQTkzU1kw?=
 =?utf-8?B?Qzc4c2VXQjVFSVJBM1hhZWxhRndhNjc4Qk93UFVHUDdkc0lEOTRFMXRUbkpL?=
 =?utf-8?B?bGFCaXFPSEFPV2Z2M2tWdFIwTXJpZUJnZGlleXI1elR2ZXhIQ0o4U1dTK0tC?=
 =?utf-8?B?azB6S0NpOGljMWZZbE9zTGZxWjgwNTFXSGd0OVZjZGZrYzF5RDZZTTNRTmZq?=
 =?utf-8?B?OEtaVkRUUVhKeVgzTk84ODFnbW9wc3p0TlI3Yjlib0ozNlNncjM3S1Axc2gv?=
 =?utf-8?B?Uzk3ZlU5SXRjOTVyTkp0TkJ5TjA4d3VQM2M5UHhBeFV6N3I1c3A1OEk4UHc0?=
 =?utf-8?B?UkZZaU90OWl6c2RlcFUveHpFSENyb0gyVDVrQ1ZQYXR5eDZoelMrZG4rVWV0?=
 =?utf-8?B?Z2lqckEvaHIrQ0M4Z0tKQytlYU9mYjZFWXQ2R0hZN0FMTlZrS25hampFT1Nx?=
 =?utf-8?B?S1NTaGhpUlR3TjRHeFhsb0g0aFVIYUNjNUxDL1BvQmtkQWN4d1ZJb002OWlm?=
 =?utf-8?B?RUtCdEp3ZERaNWFzMGUxK2xJMDA4Z3FGYjBhU1BBUTAvVTZEbDhQaDFGR043?=
 =?utf-8?B?aUFzQVhVMmdvZ3crZG5pTVNKTGhnU254WjVycXBRb1BkSHQybk81UkQ0S3lj?=
 =?utf-8?B?aEdPalp4aE03Vm5SZThFNWZLWG9zM3l6ZitKdDNGcnZWYWt5SUZmbkF6MEY0?=
 =?utf-8?B?TFpaMGZ2UEtGYVhqcldhSWhXaitZZFg4YkpmeHVSeDBoMjI3Wnl5UzU3Y3JJ?=
 =?utf-8?B?Mlc5V0w1ZEF3ZmpjWFhyeE0xNlZ5Y2VPSy9abVhVSWp2bktEZjY2bE12d1k1?=
 =?utf-8?B?ejlxWXNkUnlKTzNRaVBiMW50aXBIaWZycUU0cmpuS2RuR3BORVdOK29RZjJO?=
 =?utf-8?B?RFI2ckRMVmR6SE5Ea2Q2ajJnSFJYWWxvSU9Cb0VXTWw1WnFuUjVQTXNNQWZB?=
 =?utf-8?B?SWYvS1BNdDBPQnlJbVhkK1VyeXpqbjkyM3JqL0xFZW8zWk1CYWNJNzlaTDI0?=
 =?utf-8?B?T0JjWTY2RVI1dC9iL3hsb3JjeWhWL0lFKzhVMzl5QnJWUnloa2EySEw0QVVU?=
 =?utf-8?B?Y3FNa0V5UlIwanlxMVl2amZlRUF6WHQ5UnRLRWNIYkVXSjZKVmc3SjBxbTJK?=
 =?utf-8?B?VmZNbDhFUi9nUDRkSnp1Mk1oaDB5d3l6TkpxdksxUWtkZHZDMEI4NXI3NmtT?=
 =?utf-8?B?aFFMbys3Y1pFY2h3QS83OUt6TzZ2OWNVZXNXNUd4K09scTZaOTJ6SGhLbm1R?=
 =?utf-8?B?ZXI1M1hKYk4zQlJIY25EcXBhelp4a2tuV09GQUh5dWo0U1hvZ29yM20rTHpp?=
 =?utf-8?B?cFY2Sm9YZE5GOFhXcXJIcGp1bHBBUmxoMldLajBYeldMajJ4aWtob1QvZHVR?=
 =?utf-8?B?dzQ0Y1dkcnp1N1BvQUU0M01RbG1tSkE5cU1jWTFrdXBRSmhUU1g5QzlCY2Nj?=
 =?utf-8?B?RmZkMjlqNVllT2FDejJtL0NkdWdNaDBTbldDUGRQaWY4YXd2ZjdGZ0tZNHE4?=
 =?utf-8?B?dk8wamgvb3h0WWZCQXlJblBlQS9HNjNIUk5VK09YUGJUY3FuTkxaUVEzS0ZV?=
 =?utf-8?B?cE5VN0tlNVh0S1NlaDFYVloxQXNIeUREZVRRc3M3RzJJTXRZdlVPQm5CbFIv?=
 =?utf-8?B?cVE1ZWl1TmdqL2hTOTZzWjhiSUV5OHpkdEUxdVBXWlNSTFJzaEEyMVpieStu?=
 =?utf-8?B?eWlmK2hIVmlxRHJTMjVNcEpWVUxiNmRZQ3c3NjhFVDNSdWd4ejdnNCtQc1FE?=
 =?utf-8?B?Q1dpNk1EdUo2VXRBV2kxb2c3VVhVT1pvdmhQK09kV3dPckw4RGxhOFQyR01y?=
 =?utf-8?B?Y2U0NTdiRXV1Q2VKbm9zY1k1UTBhUG1LbUdTcnRTczdTSHF2RDI1czNKdjdX?=
 =?utf-8?B?eUFQSi9INktKdFJVdmh3cDNENEk4OS8vVDhscGxLL1BuNUJNTTRwSHFYOEc2?=
 =?utf-8?B?MXRDeFlnVFZLTlFHbVMxeVdKZGgvUDJ3TGpzZ0Y1Q0xjWkwrL1RyLzV2dURR?=
 =?utf-8?B?dDlsSGthaTkvRno2UTd3OEpTUE5wUXI5QytmLy9HU0VyVVVGeWVaaGhPbmJa?=
 =?utf-8?B?MjlUNzkvc01HVjYyYk15cUFJZmx5bGN0cERYRnZwYnV6YUpXU3FLbEE4NjRE?=
 =?utf-8?Q?HA2E=3D?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 33644e09-0298-45d7-08ca-08dd7ce41ac2
X-MS-Exchange-CrossTenant-AuthSource: BN9PR12MB5273.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Apr 2025 12:42:10.2223
 (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: Gw6eaeT7cnvY5FeHlofiAGE0MrUj1rwnv4IyZh7/rr03SkeH9G0LV4SrzVyFxiBu
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB6446



On 16/04/2025 14:31, Luca Fancellu wrote:
> Hi Michal,
> 
>> On 16 Apr 2025, at 11:50, Orzel, Michal <Michal.Orzel@amd.com> wrote:
>>
>>
>>
>> On 11/04/2025 16:56, Luca Fancellu wrote:
>>> Introduce few utility function to manipulate and handle the
>>> pr_t type.
>>>
>>> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
>>> ---
>>> xen/arch/arm/include/asm/mpu.h | 40 ++++++++++++++++++++++++++++++++++
>>> 1 file changed, 40 insertions(+)
>>>
>>> diff --git a/xen/arch/arm/include/asm/mpu.h b/xen/arch/arm/include/asm/mpu.h
>>> index 59ff22c804c1..6971507457fb 100644
>>> --- a/xen/arch/arm/include/asm/mpu.h
>>> +++ b/xen/arch/arm/include/asm/mpu.h
>>> @@ -20,6 +20,46 @@
>>> #define NUM_MPU_REGIONS_MASK    (NUM_MPU_REGIONS - 1)
>>> #define MAX_MPU_REGIONS         NUM_MPU_REGIONS_MASK
>>>
>>> +#ifndef __ASSEMBLY__
>>> +
>>> +/* Set base address of MPU protection region(pr_t). */
>> What's the use of (pr_t) in this comment? pr_t is a data type. If at all, it
>> would want to be ...region @pr but I think you can skip it.
> 
> ok
> 
>>
>>> +static inline void pr_set_base(pr_t *pr, paddr_t base)
>>> +{
>>> +    pr->prbar.reg.base = (base >> MPU_REGION_SHIFT);
>> Looking at pr_t definition, base/limit is 46 bits wide. However the spec says
>> that last 4bits are reserved (i.e. you should not write to them) unless FEAT_LPA
>> is implemented. What's our plan here?
> 
> So we’re currently supporting max 1TB, so probably this one needs to be on the
> case when FEAT_LPA is considered not implemented, so I’ll change and if we will
> later support more than 42 bit we could do something?
I think yes.

> 
>>
>>> +}
>>> +
>>> +/* Set limit address of MPU protection region(pr_t). */
>>> +static inline void pr_set_limit(pr_t *pr, paddr_t limit)
>>> +{
>>> +    pr->prlar.reg.limit = ((limit - 1) >> MPU_REGION_SHIFT);
>> Why -1? AFAIR these registers take inclusive addresses, so is it because you
>> want caller to pass limit as exclusive and you convert it to inclusive? I think
>> it's quite error prone.
> 
> Yes it’s meant to be used with exclusive range, shall we document it or use
> Inclusive range instead?
What's the expected behavior of callers? Are we going to set up protection
region based on regular start+size pair (like with MMU) or start+end? If the
latter for some reason (with size there are less issues), then end usually is
inclusive and you would not need conversion.

~Michal



From xen-devel-bounces@lists.xenproject.org Wed Apr 16 12:42:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 12:42:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.955975.1349506 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u525h-0001cO-8s; Wed, 16 Apr 2025 12:42:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 955975.1349506; Wed, 16 Apr 2025 12:42: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 1u525h-0001cH-6M; Wed, 16 Apr 2025 12:42:09 +0000
Received: by outflank-mailman (input) for mailman id 955975;
 Wed, 16 Apr 2025 12:42: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=kp/+=XC=infradead.org=willy@srs-se1.protection.inumbo.net>)
 id 1u525f-0001ZY-CR
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 12:42:08 +0000
Received: from casper.infradead.org (casper.infradead.org
 [2001:8b0:10b:1236::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2efc800e-1ac0-11f0-9ffb-bf95429c2676;
 Wed, 16 Apr 2025 14:42:03 +0200 (CEST)
Received: from willy by casper.infradead.org with local (Exim 4.98.2 #2 (Red
 Hat Linux)) id 1u525P-0000000A7kU-0pso;
 Wed, 16 Apr 2025 12:41: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: 2efc800e-1ac0-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=casper.20170209; h=In-Reply-To:Content-Transfer-Encoding:
	Content-Type:MIME-Version:References:Message-ID:Subject:Cc:To:From:Date:
	Sender:Reply-To:Content-ID:Content-Description;
	bh=dwsf2a+LAeqnu6EO1zimyir940pvQziq2A6xZuIziWs=; b=R3V+osM/35c6CJLXnCxO9rd9YF
	mPiqXkqMd34Lab6bF4vHeTMnnRWggeMyYoYJgcXMTak/W8L4GOX5X+41Bg97VQCBU1VFdyQXzJZf+
	Ugzs/XZlXikcENVE6rB6BSLHNi+D0j1U+CEqU5OZRMIG1vqSsk2pgR604F7gPk053S5E5qvfr1O4+
	Ntzgzr3UxSgTaqeEo/eL29uL8JfDTkb9bC46fd/NM8j2h3qEYF8uOGnKa+TUqapFI+adgfZrQeFNe
	CUsVfEreUUwctEGkpq7AZUZBEo5LcLKd+VRU8hwv9tvlBOFHxmDkBUI01aiGO871cGgGA/ju//TQ/
	W9IZZ0SA==;
Date: Wed, 16 Apr 2025 13:41:51 +0100
From: Matthew Wilcox <willy@infradead.org>
To: Petr =?utf-8?B?VmFuxJtr?= <arkamar@atlas.cz>
Cc: linux-kernel@vger.kernel.org, Kevin Brodsky <kevin.brodsky@arm.com>,
	Andrew Morton <akpm@linux-foundation.org>, linux-mm@kvack.org,
	x86@kernel.org, xen-devel@lists.xenproject.org,
	linux-arch@vger.kernel.org
Subject: Re: Regression from a9b3c355c2e6 ("asm-generic: pgalloc: provide
 generic __pgd_{alloc,free}") with CONFIG_DEBUG_VM_PGFLAGS=y and Xen
Message-ID: <Z_-lj5kCg084MXRI@casper.infradead.org>
References: <202541612720-Z_-deOZTOztMXHBh-arkamar@atlas.cz>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <202541612720-Z_-deOZTOztMXHBh-arkamar@atlas.cz>

On Wed, Apr 16, 2025 at 02:07:20PM +0200, Petr Vaněk wrote:
> I have discovered a regression introduced in commit a9b3c355c2e6
> ("asm-generic: pgalloc: provide generic __pgd_{alloc,free}") [1,2] in
> kernel version 6.14. The problem occurs when the x86 kernel is
> configured with CONFIG_DEBUG_VM_PGFLAGS=y and is run as a PV Dom0 in Xen
> 4.19.1. During the startup, the kernel panics with the error log below.

You also have to have CONFIG_MITIGATION_PAGE_TABLE_ISOLATION enabled
to hit this problem, otherwise we allocate an order-0 page.

> The commit changed PGD allocation path.  In the new implementation
> _pgd_alloc allocates memory with __pgd_alloc, which indirectly calls 
> 
>   alloc_pages_noprof(gfp | __GFP_COMP, order);
> 
> This is in contrast to the old behavior, where __get_free_pages was
> used, which indirectly called
> 
>   alloc_pages_noprof(gfp_mask & ~__GFP_HIGHMEM, order);
> 
> The key difference is that the new allocator can return a compound page.
> When xen_pin_page is later called on such a page, it call
> TestSetPagePinned function, which internally uses the PF_NO_COMPOUND
> macro. This macro enforces VM_BUG_ON_PGFLAGS if PageCompound is true,
> triggering the panic when CONFIG_DEBUG_VM_PGFLAGS is enabled.

I suspect the right thing to do here is to change the PF_NO_COMPOUND to
PF_HEAD.  Probably for all of these:

/* Xen */
PAGEFLAG(Pinned, pinned, PF_NO_COMPOUND)
        TESTSCFLAG(Pinned, pinned, PF_NO_COMPOUND)
PAGEFLAG(SavePinned, savepinned, PF_NO_COMPOUND);
PAGEFLAG(Foreign, foreign, PF_NO_COMPOUND);
PAGEFLAG(XenRemapped, xen_remapped, PF_NO_COMPOUND)
        TESTCLEARFLAG(XenRemapped, xen_remapped, PF_NO_COMPOUND)

Could you give that a try?


From xen-devel-bounces@lists.xenproject.org Wed Apr 16 12:58:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 12:58:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.955999.1349526 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u52Kx-0004s3-Pz; Wed, 16 Apr 2025 12:57:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 955999.1349526; Wed, 16 Apr 2025 12:57:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u52Kx-0004rw-LR; Wed, 16 Apr 2025 12:57:55 +0000
Received: by outflank-mailman (input) for mailman id 955999;
 Wed, 16 Apr 2025 12:57:54 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Z6rY=XC=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1u52Kw-0004rq-7l
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 12:57:54 +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 67ec4225-1ac2-11f0-9ffb-bf95429c2676;
 Wed, 16 Apr 2025 14:57:52 +0200 (CEST)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-39c1ef4ae3aso427289f8f.1
 for <xen-devel@lists.xenproject.org>; Wed, 16 Apr 2025 05:57:52 -0700 (PDT)
Received: from ?IPV6:2003:e5:873d:1a00:8e99:ce06:aa4a:2e7b?
 (p200300e5873d1a008e99ce06aa4a2e7b.dip0.t-ipconnect.de.
 [2003:e5:873d:1a00:8e99:ce06:aa4a:2e7b])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4405b4c8216sm20881075e9.7.2025.04.16.05.57.50
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 16 Apr 2025 05:57: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: 67ec4225-1ac2-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744808271; x=1745413071; 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=5cCGj03zxFug0iIEMHG2sx3yR7VAi0V2fLRSZQmpBj4=;
        b=D319f9FgZkZrfrHXpUgX9gIPHN0QVgHeULxqj9Dkr9F8xckXuu1Me5ArPUpNwRie44
         dWZLVpXeEVjJTDokg583Eb41NVn3rqpQ+cJCWs+2YPxYAi7ahZ4ahBh8AnoiN1Ek5Wyv
         ESk0xvGeYD5KRTciVZmKBhVMhp6hbQYqK2K1gH2Ul7MIy9iuuwdozmNWx/SxlykOUKay
         UXIH+L/oTehPAUu66ha7YoUiZM/9qjbhlbm9UkTxwuFH2HRJrsF+Nfp+IMicG5mx8wQp
         pBKvfZvahHsRcP8uGF6BNQ4dgKw0HwF801jeK78yb3bju/BMutTa0doQs+SkW8ildXZ6
         c9nw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744808271; x=1745413071;
        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=5cCGj03zxFug0iIEMHG2sx3yR7VAi0V2fLRSZQmpBj4=;
        b=XJvaZjrEIcMMbc14VP+UczHnFAZ77+9RsHdCoff1IFvWzS91syebySfOQjLbqB/prr
         TQTsX/gdPjqOeG4msCFf+pMiOuE2lKMc3ThlVvU/ZXJMsjMiaIGsZpI8joYhA/mEKOnR
         M8k4ALCRLEUbHW4JA3U7YrgNILgkmXEP2dYENB+Rn9NlFClHOlcjFFUhF6DjHEvw27+k
         Cl73lOcJ7u9594DLniG4i+rudEpYWWzNnn8o0/oPttlNttQh266pxQ8JEE2bCd7Rn/QM
         /OXBikxxkEPRQOEjTMlarzK57qIA+Fn/6DvNCbT7hx5p05fxC9k6Fre3+b2qY5B1LajB
         lGVA==
X-Forwarded-Encrypted: i=1; AJvYcCVe3IxVDyQUPz32tzcERUp947h1VI98tmvK6k3dWcn9bURpi4Hc4B3ZOoOy6tceV2BYcySURE4WRG0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwBKpbnF9egqsjyNqbfv5KS7LmVZtI7rhwyvRo+RhStWhu0rUGZ
	WIvgK0jaK9eo86W7Ef/6Pb1wsZaiWMSJoHLs2G/e6fICeUXGHn4vtBuZWTgZIOc=
X-Gm-Gg: ASbGncuEtotAxhG89xRMZoDWd9OGAAL62gW3LSddboycnKPB6Y4QoANKGrET+PG2Tkr
	yZg9qDFkJJez/XZ2CbvNSYCg7dAgmH5aPLnXrJupl0P5Yiy1bvs6l4GVOZ7P+M+kTQSi2wf2zfq
	IdtcOlyghgCcZG4rDntdu+5oceEdnNf+bQKtOHrC1usPUz8k2lXDaKXZ/+erV1lBQVD+l7FNWuP
	+dmnF0fBNRQ+wq6ZM6WXzk60isotCZQrC06dxKSy6Tl+89PuA5UX+atOL/8h7enhNvGsU+Y4His
	dIcxLBFH0CQguJC83c669DYSq539CiInvDVbwliih+sd4F0FymReDL/ru/3OZhuRjYtKRseqhmz
	O8Qla8v6EuGVGx/pyEJMuy/4kQED0WlSYPlG+8LPupCBCzVYyrphpt9genqaabne7nA==
X-Google-Smtp-Source: AGHT+IF47B4KfVM/cwCTnnUM3ht6L09Y6U+lo0E3E7g2X6pTzedt+j1hhkAgz5MB9+v+BnBH/qFZKA==
X-Received: by 2002:a05:6000:248a:b0:39e:cbca:8a72 with SMTP id ffacd0b85a97d-39ee5e9da0bmr1316967f8f.12.1744808271277;
        Wed, 16 Apr 2025 05:57:51 -0700 (PDT)
Message-ID: <4347cd96-52c8-4bfc-b383-6fea1554fd4a@suse.com>
Date: Wed, 16 Apr 2025 14:57:49 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Regression from a9b3c355c2e6 ("asm-generic: pgalloc: provide
 generic __pgd_{alloc,free}") with CONFIG_DEBUG_VM_PGFLAGS=y and Xen
To: =?UTF-8?Q?Petr_Van=C4=9Bk?= <arkamar@atlas.cz>,
 linux-kernel@vger.kernel.org
Cc: Kevin Brodsky <kevin.brodsky@arm.com>,
 Andrew Morton <akpm@linux-foundation.org>, linux-mm@kvack.org,
 x86@kernel.org, xen-devel@lists.xenproject.org, linux-arch@vger.kernel.org
References: <202541612720-Z_-deOZTOztMXHBh-arkamar@atlas.cz>
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: <202541612720-Z_-deOZTOztMXHBh-arkamar@atlas.cz>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------FkQJsDW1mYmCm5DnOnkQkf9p"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------FkQJsDW1mYmCm5DnOnkQkf9p
Content-Type: multipart/mixed; boundary="------------3Dk2044X09sxTqsUX7Bzjp0o";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: =?UTF-8?Q?Petr_Van=C4=9Bk?= <arkamar@atlas.cz>,
 linux-kernel@vger.kernel.org
Cc: Kevin Brodsky <kevin.brodsky@arm.com>,
 Andrew Morton <akpm@linux-foundation.org>, linux-mm@kvack.org,
 x86@kernel.org, xen-devel@lists.xenproject.org, linux-arch@vger.kernel.org
Message-ID: <4347cd96-52c8-4bfc-b383-6fea1554fd4a@suse.com>
Subject: Re: Regression from a9b3c355c2e6 ("asm-generic: pgalloc: provide
 generic __pgd_{alloc,free}") with CONFIG_DEBUG_VM_PGFLAGS=y and Xen
References: <202541612720-Z_-deOZTOztMXHBh-arkamar@atlas.cz>
In-Reply-To: <202541612720-Z_-deOZTOztMXHBh-arkamar@atlas.cz>

--------------3Dk2044X09sxTqsUX7Bzjp0o
Content-Type: multipart/mixed; boundary="------------Nyzw2RMk0HI00TkZe46BthW0"

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

T24gMTYuMDQuMjUgMTQ6MDcsIFBldHIgVmFuxJtrIHdyb3RlOg0KPiBIaSBhbGwsDQo+IA0K
PiBJIGhhdmUgZGlzY292ZXJlZCBhIHJlZ3Jlc3Npb24gaW50cm9kdWNlZCBpbiBjb21taXQg
YTliM2MzNTVjMmU2DQo+ICgiYXNtLWdlbmVyaWM6IHBnYWxsb2M6IHByb3ZpZGUgZ2VuZXJp
YyBfX3BnZF97YWxsb2MsZnJlZX0iKSBbMSwyXSBpbg0KPiBrZXJuZWwgdmVyc2lvbiA2LjE0
LiBUaGUgcHJvYmxlbSBvY2N1cnMgd2hlbiB0aGUgeDg2IGtlcm5lbCBpcw0KPiBjb25maWd1
cmVkIHdpdGggQ09ORklHX0RFQlVHX1ZNX1BHRkxBR1M9eSBhbmQgaXMgcnVuIGFzIGEgUFYg
RG9tMCBpbiBYZW4NCj4gNC4xOS4xLiBEdXJpbmcgdGhlIHN0YXJ0dXAsIHRoZSBrZXJuZWwg
cGFuaWNzIHdpdGggdGhlIGVycm9yIGxvZyBiZWxvdy4NCj4gDQo+IFRoZSBjb21taXQgY2hh
bmdlZCBQR0QgYWxsb2NhdGlvbiBwYXRoLiAgSW4gdGhlIG5ldyBpbXBsZW1lbnRhdGlvbg0K
PiBfcGdkX2FsbG9jIGFsbG9jYXRlcyBtZW1vcnkgd2l0aCBfX3BnZF9hbGxvYywgd2hpY2gg
aW5kaXJlY3RseSBjYWxscw0KPiANCj4gICAgYWxsb2NfcGFnZXNfbm9wcm9mKGdmcCB8IF9f
R0ZQX0NPTVAsIG9yZGVyKTsNCj4gDQo+IFRoaXMgaXMgaW4gY29udHJhc3QgdG8gdGhlIG9s
ZCBiZWhhdmlvciwgd2hlcmUgX19nZXRfZnJlZV9wYWdlcyB3YXMNCj4gdXNlZCwgd2hpY2gg
aW5kaXJlY3RseSBjYWxsZWQNCj4gDQo+ICAgIGFsbG9jX3BhZ2VzX25vcHJvZihnZnBfbWFz
ayAmIH5fX0dGUF9ISUdITUVNLCBvcmRlcik7DQo+IA0KPiBUaGUga2V5IGRpZmZlcmVuY2Ug
aXMgdGhhdCB0aGUgbmV3IGFsbG9jYXRvciBjYW4gcmV0dXJuIGEgY29tcG91bmQgcGFnZS4N
Cj4gV2hlbiB4ZW5fcGluX3BhZ2UgaXMgbGF0ZXIgY2FsbGVkIG9uIHN1Y2ggYSBwYWdlLCBp
dCBjYWxsDQo+IFRlc3RTZXRQYWdlUGlubmVkIGZ1bmN0aW9uLCB3aGljaCBpbnRlcm5hbGx5
IHVzZXMgdGhlIFBGX05PX0NPTVBPVU5EDQo+IG1hY3JvLiBUaGlzIG1hY3JvIGVuZm9yY2Vz
IFZNX0JVR19PTl9QR0ZMQUdTIGlmIFBhZ2VDb21wb3VuZCBpcyB0cnVlLA0KPiB0cmlnZ2Vy
aW5nIHRoZSBwYW5pYyB3aGVuIENPTkZJR19ERUJVR19WTV9QR0ZMQUdTIGlzIGVuYWJsZWQu
DQo+IA0KPiBJIGFtIHJlcG9ydGluZyB0aGlzIGlzc3VlIHdpdGhvdXQgYSBwYXRjaCBhcyBJ
IGFtIG5vdCBzdXJlIHdoaWNoIHBhcnQgb2YNCj4gdGhlIGNvZGUgc2hvdWxkIGJlIGFkYXB0
ZWQgdG8gcmVzb2x2ZSB0aGUgcmVncmVzc2lvbi4NCg0KVGhhbmtzIGZvciB0aGUgcmVwb3J0
IEFORCB0aGUgYW5hbHlzaXMuDQoNCkkgYmVsaWV2ZSBQTURfQUxMT0NBVElPTl9PUkRFUiBu
ZWVkcyB0byBiZSBjaGFuZ2VkOiBpbiBjYXNlIHRoZSBzeXN0ZW0gaXMNCnJ1bm5pbmcgYXMg
YSBYZW4gUFYgZG9tYWluIChvciB3aXRoIFBUSSBkaXNhYmxlZCksIFBNRF9BTExPQ0FUSU9O
X09SREVSDQpzaG91bGQgYmUgMC4NCg0KU28gSSdkIHN1Z2dlc3QgdG8gc3dpdGNoIFBHRF9B
TExPQ0FUSU9OX09SREVSIHRvIGJlIGRlZmluZWQgZWl0aGVyIGFzIDANCihpbiBjYXNlIFBU
SSBpcyBub3QgY29uZmlndXJlZCksIG9yIHBnZF9hbGxvY2F0aW9uX29yZGVyIChhIG5ldyBn
bG9iYWwNCnZhcmlhYmxlIGhhdmluZyB0aGUgdmFsdWUgMCBvciAxLCBkZXBlbmRpbmcgb24g
UFRJIGFjdGl2ZSBvciBub3QpLg0KDQpJJ2xsIHNlbmQgYSBwYXRjaC4NCg0KDQpKdWVyZ2Vu
DQo=
--------------Nyzw2RMk0HI00TkZe46BthW0
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-----

--------------Nyzw2RMk0HI00TkZe46BthW0--

--------------3Dk2044X09sxTqsUX7Bzjp0o--

--------------FkQJsDW1mYmCm5DnOnkQkf9p
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/Ey8FAmf/qU0FAwAAAAAACgkQsN6d1ii/Ey8/
ZAf9HWoQ82HR5WwM41WwT44QBbTpPb6JDwcmr4yI1UsNkg5aSIoXkjDegTSHCuL0hiAeJcCBtP5J
RZjTIKgQb+Yi4ADWgPpLXsfIh55Vwp3axwOuciCPIF+X+Ndn6NhLoIfNxsLKFGqP0RpEbynPgIZd
/yBAH18bSesW9PvIh3lFH+4aWKnk/6c5LwqFuzYP23bxSsjO/5msvJSCcwm3j6VCTByhfKXJHmuJ
AP4SMUXmjmQcM3cSJ3r5nWT+AyznGl1l0bwtuEobuJRLCy6pwUpBYSUkelP+VUdYb8X9PiHcXCjM
1S5Wix4HXMXXsXhAvEzFjvtTjzJLGKvjIgwud23oew==
=R+Sn
-----END PGP SIGNATURE-----

--------------FkQJsDW1mYmCm5DnOnkQkf9p--


From xen-devel-bounces@lists.xenproject.org Wed Apr 16 12:58:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 12:58:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.956004.1349536 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u52LH-0005GH-51; Wed, 16 Apr 2025 12:58:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 956004.1349536; Wed, 16 Apr 2025 12:58:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u52LH-0005GA-0v; Wed, 16 Apr 2025 12:58:15 +0000
Received: by outflank-mailman (input) for mailman id 956004;
 Wed, 16 Apr 2025 12:58:14 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=hq9D=XC=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1u52LF-0005CZ-Vq
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 12:58:14 +0000
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 (mail-am6eur05on2061b.outbound.protection.outlook.com
 [2a01:111:f403:2612::61b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 748d4afe-1ac2-11f0-9eaf-5ba50f476ded;
 Wed, 16 Apr 2025 14:58:13 +0200 (CEST)
Received: from AS4P189CA0037.EURP189.PROD.OUTLOOK.COM (2603:10a6:20b:5dd::8)
 by VI1PR08MB10102.eurprd08.prod.outlook.com (2603:10a6:800:1cf::18) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.32; Wed, 16 Apr
 2025 12:58:10 +0000
Received: from AM3PEPF0000A799.eurprd04.prod.outlook.com
 (2603:10a6:20b:5dd:cafe::c7) by AS4P189CA0037.outlook.office365.com
 (2603:10a6:20b:5dd::8) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.18 via Frontend Transport; Wed,
 16 Apr 2025 12:58:10 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AM3PEPF0000A799.mail.protection.outlook.com (10.167.16.104) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.12
 via Frontend Transport; Wed, 16 Apr 2025 12:58:08 +0000
Received: from DB7PR08MB2987.eurprd08.prod.outlook.com (2603:10a6:5:1c::25) by
 AS2PR08MB10226.eurprd08.prod.outlook.com (2603:10a6:20b:62f::9) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.22; Wed, 16 Apr
 2025 12:57:35 +0000
Received: from DB7PR08MB2987.eurprd08.prod.outlook.com
 ([fe80::d53f:b16d:70a5:8668]) by DB7PR08MB2987.eurprd08.prod.outlook.com
 ([fe80::d53f:b16d:70a5:8668%4]) with mapi id 15.20.8632.030; Wed, 16 Apr 2025
 12:57: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: 748d4afe-1ac2-11f0-9eaf-5ba50f476ded
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=dEM4OWeWUQaDERtC6S1qdpNPkYNPNKga2JjFJ2ePlDA8KDLwz04NzT5XRvMqK9lAdhslR2PSOKr8eWdK7Xjw3pyeuIgf7XwvEoE6Vjh6kSrua0kPM5I2xez0dUS4/fqKCRHunCFYHDfrbxZ/0zETfuElv+EdqqkCNUHWY5h9E8gIkgvA6eUI1KUDRtmohTL/T5O5ST8aC3nlTVL88S77bOYCE5/0LkykjNFV6Y6DAlrB5GSg8J7B3AFysMHO1yp81sQZ5iMoYtrW8ODRy+nlUuCg+I0EQwAPcXr04OTwHFLwt48jZQ8s+MYNS5jdzsX3U0/nePJvv11TOwnqxcxUvQ==
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=Zlic03bdKAfZiXVrtZdvQfjP9TL89lldZN01Byh2sZM=;
 b=mWHyG/aUTm977Kv1IUEbqumhaV3Hod613aIzuLLnahW0wKVYWzauR9TrudXFScks6CQGOehSH5giL11lC6Q9p6X7BuKYOaEecWIpIt+oVuViRWBQgtYTOtU9ikU/4hPvVpmgz9t0cygaVEs8c5HY5FQMv86qj7DEbsaymfrbqwfm5vGTwNiKpftkYf4bER/DvcMXEgCnL50G2xw9E0hANSKAIhuC7tFvRMolEob7QONRn3141nK9AtG39L/3F14V6qJMUGT5hDg697bZOX+boufXiYufQYJCP3MLn6ZwAZMgJ34fb1QA/q2MfZkxRscjBWlaUnOPdGygrGlVn9WVaA==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=amd.com smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Zlic03bdKAfZiXVrtZdvQfjP9TL89lldZN01Byh2sZM=;
 b=GS8vMYheSVid0BsiaxCXohTzPYW533esOq9vs7ruQHjMW/FEm2ozDIjkLoL+i1XF2rRIesWQszZCmJfVFgHx3jANtQeGVElXeg4kacuiF1Nodu2G1sTtIr7V6zE3NK5S6Fs+2bdz+JJQqwdjSoSKsIQIWkgd8lxGy94TPMy02c0=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=D1zt+omKOUpvJtSQmdrXif/ETND62s4GgZRXG2v3uUS05E98R1GWl3rSRu1X21av2I+MioO3Uj7qQlAeiwvdVR699nK1oH9FdeO/uA76pZwox+cnbOdY3KNzl6G8lqhcro2zSPD7wdIlVirxA5IOY2BF3xaYurFRzaTyxp4Ah+w11sIDL2W+7DST4+xm0tsBLv6j7dyT/FLrQOUbbgMbqU0WC9IGmTbUsM2WeIAMOsb3pFoZeN1diwl6Zidexxv84gNlVkDlqUhcyRdvvOp4TDr4A6LsKBCN65VxU3u4fmKWiKetLsNqtdds4qkb5uGszQTk+QC5Ox0ky3BzRXhzew==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Zlic03bdKAfZiXVrtZdvQfjP9TL89lldZN01Byh2sZM=;
 b=hDcXKlmFt9glRKz0LQ3uW8iYE1gymfa7CTabf5+H+9S9s95KAEBOvdpZ1R1UMjFCPFEQiYA5SEOYOyarqsT7tPEXWa4B94gP4pgbV7QquTSNpmPqSAo7yuvAUxchc+Znk5xSH3svFN59fezNWaagc2aer6/UIDu2RneTH8Qs2kWlJ+aDh7VCu9V9hHrTjYuUrPO2RNeXDFMz4q8nM3g1XZLFDaLn0/YS729UJ7z9IhT5e8YMyCLxTjQgmN5C+qRCMS5qBzY9sgoVQ9YzXgpuFB+NE4mrKR/yas8hPVPjmu84DvFdQq+frxYZmFKyBsnHi34uFkPp2hWva2LyzaPVRg==
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=Zlic03bdKAfZiXVrtZdvQfjP9TL89lldZN01Byh2sZM=;
 b=GS8vMYheSVid0BsiaxCXohTzPYW533esOq9vs7ruQHjMW/FEm2ozDIjkLoL+i1XF2rRIesWQszZCmJfVFgHx3jANtQeGVElXeg4kacuiF1Nodu2G1sTtIr7V6zE3NK5S6Fs+2bdz+JJQqwdjSoSKsIQIWkgd8lxGy94TPMy02c0=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: "Orzel, Michal" <michal.orzel@amd.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand
 Marquis <Bertrand.Marquis@arm.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH v3 3/7] arm/mpu: Introduce utility functions for the pr_t
 type
Thread-Topic: [PATCH v3 3/7] arm/mpu: Introduce utility functions for the pr_t
 type
Thread-Index: AQHbqvIP34UccZOkWUuu+Y+Ap2U3MrOmJOcAgAAb/QCAAAMjAIAABC8A
Date: Wed, 16 Apr 2025 12:57:35 +0000
Message-ID: <605B837B-7EB4-4A00-A4C5-D86630D764FD@arm.com>
References: <20250411145655.140667-1-luca.fancellu@arm.com>
 <20250411145655.140667-4-luca.fancellu@arm.com>
 <d2b51729-e5dd-4325-9275-615ab1cbb68d@amd.com>
 <0877268B-138F-4FC9-B95E-544699D8AD91@arm.com>
 <22a7f8b1-6614-4354-830e-30dbf6210ec8@amd.com>
In-Reply-To: <22a7f8b1-6614-4354-830e-30dbf6210ec8@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.400.131.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DB7PR08MB2987:EE_|AS2PR08MB10226:EE_|AM3PEPF0000A799:EE_|VI1PR08MB10102:EE_
X-MS-Office365-Filtering-Correlation-Id: 87e468da-1e43-4190-9850-08dd7ce65602
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?UnhHaXJhUWFKRUhrSS9uMGllN0ZYVE5GVVNDYTRiVjlTdzZCVldxNDVGNTJv?=
 =?utf-8?B?WDZydEZqUlQ5OTRnM2FTTFB1eDYvUmRPTlNyZmlJRlhKeis2ZE8rTm5GT2NI?=
 =?utf-8?B?YS9wY0dmeGk5UmhUd3dmcFg3RXdicjIyTEozZlBUYlZhZnB6ZkMzbWx0dkU3?=
 =?utf-8?B?SGRrMFg2S3pGOXNBVEh4OHFTeWUrZEtOQmsrTDFQQ2RKa0pYODBCTUtTWFNn?=
 =?utf-8?B?K2U3U1BpRENCdk45Q2toT3c0Y1U1L20rNCthcnZsMVRzWnVVTXhVNXdxdjVw?=
 =?utf-8?B?SCtUREErQWFwVHU5Ty9Ld21DK3dPYU0rUy91NlVreTJxL3hVeDk2M21iSzVn?=
 =?utf-8?B?VmRQMGtXNUFudnNKSHlKMzl0TmF6VGFvdUh0bDJhNVNRbXBWNXFjdU9zZXpx?=
 =?utf-8?B?ellkWVpEbFFXTEd3ZmVRajlLU3FNUGZTOW5lV2RxKzdnemxEazkwK01HRVBY?=
 =?utf-8?B?dFU1Rm1rVGVBSThFcTcxcUpjSnhkcEpxZ2kxUmgvOXJsdVUzR1NPSW5KMG1s?=
 =?utf-8?B?eTh1YTVEVzgxZE5KZFdhcHhsSjNRYzYyVXBqdzYwd0pLMHpvd016b2hYeW1U?=
 =?utf-8?B?QmFhT050UDA0WDNuKzA4aVJZSGFVNjBzNGxrZUVhTytrTUdXU0M0bDlFYit0?=
 =?utf-8?B?WEJsS1lCTHZvUWRkNWxFVUtOUk5FZHVBb0ZHRkxTcGVmZzhjZVVVM00wd0dV?=
 =?utf-8?B?N2M0dUd1ZEZ0WDlsajYxV0d1TGFnaTRBbUxWdUxqV2lRSnYrdlo3ZFJnaTNv?=
 =?utf-8?B?eHhkT0NabnVLcGlXc2F3Q2dKSk4rSFhkcUNTb3YvUEVsY3QwTzAyVmhXQlZN?=
 =?utf-8?B?MElvN2o4M3RJSHltM1BrcENqYXdTa3k0bFFOb2tuaDF0TTh6UG91TjNpSTRZ?=
 =?utf-8?B?a1hKYmJDWm5FVERzVTRpdlRyZWQyQi9id29ZaitnZHVTaW5jeGVPeXF3Rnpv?=
 =?utf-8?B?aWUyc3pIcDBwQyt6MGFGK0dLVkZrMVNZK2E2enBFdDlsaTQvNGtjRnlIak1w?=
 =?utf-8?B?Q1IxWTFhYU0ybk5Ra3NPaFp4eFU5bXpOTml6QW0rZjNmOFRMVUpweGp6Z1Ew?=
 =?utf-8?B?TDVzMWIyRFdleGtnaSttdlgwOUdWalhWWHhmbmcwUE5NZmlMMk15YkY4bXcy?=
 =?utf-8?B?TmN0NmtacUxwM3lPVUo5cG15blFnSHpjT2grQjd0WndERklWUURkNTRJQTFT?=
 =?utf-8?B?VFJnMEhxVTkwYjRTT0JKZE1WRmhZM1I1eS9qVkUvdFRId0YwclZsa3lUcnlY?=
 =?utf-8?B?c05RNytjRzhRTEZKeUs5N1RmVVdyc01xNFd6WDdIMy9aOFJvK0dFMEFvSUpp?=
 =?utf-8?B?bWJGSlN4dXBSTXRiZHhLL1M4Tk1ua204QUdoL3dkNThIWFRCaUYrTmMyUWJJ?=
 =?utf-8?B?VTBOcjRQQnJsa24xakF6bFlyZjd6OGtnSmNCVlMzZ0NYcUZENDJXdDQ0Zk1I?=
 =?utf-8?B?Qi9jZXUzY0szdEdqc1AzRFB1Q1FXUS8yRXQvK3VtZW5RRHZJTTJXaklxT2x2?=
 =?utf-8?B?OG5BTjBIZWxwdklRdTJoejBtT0Fwd2FLN2YydU5Vb2JIOFloR3Zqd1h6T3RT?=
 =?utf-8?B?U25PdzZyZEc5T0l6WWZUTXBmUUx5ZDU3NmFCUktvMkNMRVR1TVVLTU5jVERY?=
 =?utf-8?B?aEdJR0lWYUY2WjcyVmRwZVhNUXZEL1lqdzFEWlFlZmtpam5EWFpNNHJISGxH?=
 =?utf-8?B?ZXBTV0VhS1QrT1dlcUFxall4amdPYTQwbXFOeDdyMzJvaldWY2Z1Q21IcjdE?=
 =?utf-8?B?eWRTUWhvU3JsNjQzczNvdjQ3QnF4bldKSUt6NzhVTDJxbVkwa2lPKzFRYVgy?=
 =?utf-8?B?Y1NTY1A1K1JjdVRUbXhuMlE4UTZXYVUxVWx1ZFgrLzZqQUNaZStyV3M2NUZB?=
 =?utf-8?B?NysyMytDZDJyT0FuVG9nbjljbG9jT2wxaXJlYUl2aXZJM1FWTWRqVG9hK2tV?=
 =?utf-8?B?V1FabklRaUNrUlN0QjNyT2lJTStkNzAvS2hZcUZseXIxSXBiWFpjcG4vQWUr?=
 =?utf-8?B?UGlPaHdqYmF3PT0=?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB7PR08MB2987.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: <F81585F5D13B3B48A08C6D22FB7595A6@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR08MB10226
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AM3PEPF0000A799.eurprd04.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	c0bb472f-817e-4a2e-2bdf-08dd7ce64236
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|35042699022|82310400026|36860700013|14060799003;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?QlNlTUJYKy8rM2ZLRitObDI3TlZ0Mzg3N2lZREFVUjIwU1J1dFNvRE1ndE8r?=
 =?utf-8?B?ZDdzMG1wK3BYWVc5dUM5MTNnMVphdXorSWxQaXJMMThBWThDRm9CMVUxVlA2?=
 =?utf-8?B?U1owRkVhdlhSQk5uOVk5NXlhczhLbTI1ZXIxWnVPaiszeWtSUm1WS2tzeTcv?=
 =?utf-8?B?Z2ExdEo0UVNJNm9SMVRvZWFydFZLa1VwYjVSKyszMWJzM0JPSGUwM2NhdTho?=
 =?utf-8?B?akMyTWU4NWZJKzZ0S3BLamg1R25nbTBaNVN5bnJyWWk1d05ZdldWbCtmTnF5?=
 =?utf-8?B?K2paTlVoNDVRcER0ZGsxdjgvRU4xZUgyTDNPR0JjZ0kxRndQU2VuekpMblc2?=
 =?utf-8?B?NGNLNUkrUnYrSms5cDlIMXFtTGFqTXRBc0hJM1hZVDdGM1pHQVN0T2JIdUhZ?=
 =?utf-8?B?NENTR3RWOXJWeG82d1hiKy84YXd1aWc2c2RyQTYxNGFLT29Yd0JhSk5FYVV5?=
 =?utf-8?B?SjZ1aEdXQUVoYTVEc1BVcWFzMDVkUzEwTlpKdlp5WDJabTFDZzMzVkhxaEpp?=
 =?utf-8?B?Q3RSY0dBemFSeUhoNzFaRVdtYlJhZHU5ZGY5ZW1UM2dXOGFIbHZ0SE8yNEtP?=
 =?utf-8?B?eXdNWnVrVzI0YnpZRmI3cnVUZ0xaQWVaYVVTblZ1TFZKVWZBS080NGNZZ0pN?=
 =?utf-8?B?NXpKclFMYThsWm9uWHpUL1dNY013TGVDYnlIdEg3VGtNNno1QkhpZ0doZGFK?=
 =?utf-8?B?cjhXY1NjaVRhWlZyRXFxcjErby95aVBRRUFtV3NMbTExV0pjTjhVOGo2bWlG?=
 =?utf-8?B?dXZZVW52TUJORUwzc3UxMUw0MFgzcmh0VDN4Nkp6MEpDVFB1ZmtpWDJKak9m?=
 =?utf-8?B?NWErWW9SSWdiK2lheFo4Tkx2ZjlBSTBFNHI2QldQdDhFTkJrNjhLVXI3RVl0?=
 =?utf-8?B?eExCQ0NudmdQQTZ0NmFyVGl5VXVkNVpnWnNWSXI0WnBYMndLTFJGUytZNGZi?=
 =?utf-8?B?TWF6Mkd6bEV4UWFkSE5BSzZrNVl4VWdOMjZjcHExcmlBMjlVN3oxSE92RURU?=
 =?utf-8?B?aUR0bGE1dm94eWNkMVcxdW12dWkzYXBUN2RRMllRSzJrQUVUZVlrMVRTNDdL?=
 =?utf-8?B?K2NsMDBTandwRFk2WlArWXdmdTVmNTNEOFVyejh0d2lrSU1iNldsZ091VFJK?=
 =?utf-8?B?WlBzbGNrcENZQng5cXhkaVg1QzV4MUZ2MUxzaHJ2VnQrejVxbTFuSDI1V2xh?=
 =?utf-8?B?Wlk2Snd3b0REcUpzNnZ3Unhsemhjc3RhcEEycldCVncwRjRjcUoxY1Q0WXVQ?=
 =?utf-8?B?WXUzOU95MEpDRXk5L1RYejgrVHdnTHlTT1U0M0tWU3pDdStmT29GQlh5a2lN?=
 =?utf-8?B?VkxWc0RXdEcrYktzUzZtbVBGWUVkaGFIQmV2cUt1Zk8yQTNxemdRdk1zMmVE?=
 =?utf-8?B?aUhFN2E0VHd3UHhpVytXZkJWYVo1MjNkakw2bUdrMWY0VE1YTWg3VjBteUxO?=
 =?utf-8?B?L1h1WWNlOVhLSDEzcVVOQlRjRnB5SE5URThQZWRZNGZVQk1SMmZxQ2Z5b1Y0?=
 =?utf-8?B?VGxUUFErREQ2M1pKUE9BWEcyY24yb1hZMFg5QVhRenRzdkV3MXlaTEpYWFVK?=
 =?utf-8?B?bjlCOHpBR005R3BJdnhrZ2IvOFMrVUVEaTkxTWhqOVR0V0VXUGEyR1hPTkRi?=
 =?utf-8?B?V0xSelJKVStramhDYm1yNy9KRTJJVjh5UDFDcHcvNXkvRWc2cGd0S25tZ2tp?=
 =?utf-8?B?QXhSY1l6M3RTRVdqMlg1eGVjQy93YXpkOXZxUThnM1VXVWZWOXdvY25NMzA2?=
 =?utf-8?B?UitETnNBS1Q4NGFNRVkzaEJLSlo5TkhsTHBObHFkbXBTeDFuZy9SNmFNdHIv?=
 =?utf-8?B?cVZRZjFhalNFQ2FyNEJWaWJYVEVjTzk4VXBlQTNuekM1SlQ2dHU2QTNGRndY?=
 =?utf-8?B?SjQ5SGYwRXhERk9Zb0E4cFNGV3c5Nm1PbEZjVEZKUkJHcHFoUzYvZVZjdGhm?=
 =?utf-8?B?SVdzYVVFZWI3TlIyTkNoMVBaSVpoMmhkdnpGdFJXaDVsSS9iMkg2WWFzd1hh?=
 =?utf-8?B?Mzhxdm0vK0dqekFyc1ZvamwzS2NiVTBtSm5tSld3YXo5cjZwTVc3Ty90Y2JM?=
 =?utf-8?Q?YBTvoe?=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(1800799024)(35042699022)(82310400026)(36860700013)(14060799003);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Apr 2025 12:58:08.2717
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 87e468da-1e43-4190-9850-08dd7ce65602
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AM3PEPF0000A799.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR08MB10102

SGkgTWljaGFsLA0KDQo+PiANCj4+PiANCj4+Pj4gK30NCj4+Pj4gKw0KPj4+PiArLyogU2V0IGxp
bWl0IGFkZHJlc3Mgb2YgTVBVIHByb3RlY3Rpb24gcmVnaW9uKHByX3QpLiAqLw0KPj4+PiArc3Rh
dGljIGlubGluZSB2b2lkIHByX3NldF9saW1pdChwcl90ICpwciwgcGFkZHJfdCBsaW1pdCkNCj4+
Pj4gK3sNCj4+Pj4gKyAgICBwci0+cHJsYXIucmVnLmxpbWl0ID0gKChsaW1pdCAtIDEpID4+IE1Q
VV9SRUdJT05fU0hJRlQpOw0KPj4+IFdoeSAtMT8gQUZBSVIgdGhlc2UgcmVnaXN0ZXJzIHRha2Ug
aW5jbHVzaXZlIGFkZHJlc3Nlcywgc28gaXMgaXQgYmVjYXVzZSB5b3UNCj4+PiB3YW50IGNhbGxl
ciB0byBwYXNzIGxpbWl0IGFzIGV4Y2x1c2l2ZSBhbmQgeW91IGNvbnZlcnQgaXQgdG8gaW5jbHVz
aXZlPyBJIHRoaW5rDQo+Pj4gaXQncyBxdWl0ZSBlcnJvciBwcm9uZS4NCj4+IA0KPj4gWWVzIGl0
4oCZcyBtZWFudCB0byBiZSB1c2VkIHdpdGggZXhjbHVzaXZlIHJhbmdlLCBzaGFsbCB3ZSBkb2N1
bWVudCBpdCBvciB1c2UNCj4+IEluY2x1c2l2ZSByYW5nZSBpbnN0ZWFkPw0KPiBXaGF0J3MgdGhl
IGV4cGVjdGVkIGJlaGF2aW9yIG9mIGNhbGxlcnM/IEFyZSB3ZSBnb2luZyB0byBzZXQgdXAgcHJv
dGVjdGlvbg0KPiByZWdpb24gYmFzZWQgb24gcmVndWxhciBzdGFydCtzaXplIHBhaXIgKGxpa2Ug
d2l0aCBNTVUpIG9yIHN0YXJ0K2VuZD8gSWYgdGhlDQo+IGxhdHRlciBmb3Igc29tZSByZWFzb24g
KHdpdGggc2l6ZSB0aGVyZSBhcmUgbGVzcyBpc3N1ZXMpLCB0aGVuIGVuZCB1c3VhbGx5IGlzDQo+
IGluY2x1c2l2ZSBhbmQgeW91IHdvdWxkIG5vdCBuZWVkIGNvbnZlcnNpb24uDQoNCkkgdGhpbmsg
d2UgaGF2ZSBhIG1peCBiZWNhdXNlIGZvciBleGFtcGxlIGRlc3Ryb3lfeGVuX21hcHBpbmdzIGFu
ZCBtb2RpZnlfeGVuX21hcHBpbmdzDQphcmUgc3RhcnQgYW5kIGVuZCwgbWFwX3BhZ2VzX3RvX3hl
biBpbnN0ZWFkIGlzIGtpbmQgb2Ygc3RhcnQrc2l6ZT8NCg0KSSBtb3ZlZCB0aGUgLTEgaW5zaWRl
IHByX3NldF9saW1pdCBiZWNhdXNlIGl0IHdhcyBvcGVuLWNvZGVkIGluIGFsbCB0aGUgcGxhY2Vz
LCBmb3IgZXhhbXBsZSB3aGVuDQpyZWZlcmVuY2luZyBsaW5rZXIgc3ltYm9scyBvciBvdXRwdXQg
b2YgbWZuX3RvX21hZGRyKG1mbl9hZGQoc21mbiwgbnJfbWZuKSksIGZvciB0aGlzIHJlYXNvbiBJ
DQp0aG91Z2h0OiBsZXTigJlzIGNhbGwgdGhpcyBvbmUgd2l0aCBleGNsdXNpdmUgcmFuZ2VzIGFu
ZCBtb2RpZnkgaW50ZXJuYWxseSBmb3IgaW5jbHVzaXZlLg0KDQoNCg==


From xen-devel-bounces@lists.xenproject.org Wed Apr 16 13:02:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 13:02:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.956026.1349546 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u52PE-0007Dt-Je; Wed, 16 Apr 2025 13:02:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 956026.1349546; Wed, 16 Apr 2025 13:02: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 1u52PE-0007Dm-Gv; Wed, 16 Apr 2025 13:02:20 +0000
Received: by outflank-mailman (input) for mailman id 956026;
 Wed, 16 Apr 2025 13:02: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=S7a8=XC=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1u52PE-0007Dg-0C
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 13:02:20 +0000
Received: from sender4-of-o50.zoho.com (sender4-of-o50.zoho.com
 [136.143.188.50]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 05c1ac9e-1ac3-11f0-9eaf-5ba50f476ded;
 Wed, 16 Apr 2025 15:02:18 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 1744808530459334.31072391448834;
 Wed, 16 Apr 2025 06:02: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: 05c1ac9e-1ac3-11f0-9eaf-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; t=1744808532; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=JJDqljaCVPlm9vpNGuRpH+AUFs8L9OP11JSyRfitlii6l9ztF/R/sBXj6bVnyVlHodndMme3tI6pA8TzrEWfpLv6vFvQ9DTK96LMvxnKNqtnYvRnriPUORQsENUYB9tbhT04Mra6IUjg522HBt/ZTs4B5DIbaEj5GswCGWm1SYA=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1744808532; 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=ecu/WqyO5LyuVcHDqJKC95YI5OGhBfbuku0ZGeySZc0=; 
	b=TIj0OKDSfucW/mjIxq1LjSMGrJVhG7gMJ9SaGsWr6wHL/fBllTxJgXONvDaIcd/yobl3zjFt5bhGdeaI1oJnMSWtqYzYeDZ9MVCn4x4qbKoFlF/owrrBlXq+23rLi0ahVNBd1fFTb5nb9Cck2JAkKwn6pbGZJX9xzBtGLuwlYB8=
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=1744808532;
	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=ecu/WqyO5LyuVcHDqJKC95YI5OGhBfbuku0ZGeySZc0=;
	b=kg1HHUGfqjU+aqxCSDqPGdS/Vw6LmLBaaMMqjkjOEO0lYYnJspWkzu1HcDNprTe9
	D9SoZ9FGRtMfnNbEVsK6qAH8TPT9x1q20IKXd+OZ//5qmvHn5VOq2yPMZJozAXOKmMH
	9lh39f82L7w07kP2YSs1C4XtDVOw0uPx0/FoTpvg=
Message-ID: <3832bb2b-978c-4990-928c-c18a003adcf4@apertussolutions.com>
Date: Wed, 16 Apr 2025 09:02:09 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 01/16] x86/boot: introduce boot domain
Content-Language: en-US
To: Jason Andryuk <jason.andryuk@amd.com>, Jan Beulich <jbeulich@suse.com>
Cc: Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Michal Orzel <michal.orzel@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, Alejandro Vallejo <agarciav@amd.com>
References: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-2-agarciav@amd.com>
 <141229a0-2cd2-4886-b5e5-02c85b0ca5ab@suse.com>
 <7fa754f8-d785-45d8-b9da-de5c85bc793b@apertussolutions.com>
 <f0a14866-0f38-4f8d-8e11-993a58c7da7b@suse.com>
 <644cdc5a-b96a-4e43-ae7a-4cadda1d1084@amd.com>
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
Autocrypt: addr=dpsmith@apertussolutions.com; keydata=
 xsJuBFYrueARCACPWL3r2bCSI6TrkIE/aRzj4ksFYPzLkJbWLZGBRlv7HQLvs6i/K4y/b4fs
 JDq5eL4e9BdfdnZm/b+K+Gweyc0Px2poDWwKVTFFRgxKWq9R7McwNnvuZ4nyXJBVn7PTEn/Z
 G7D08iZg94ZsnUdeXfgYdJrqmdiWA6iX9u84ARHUtb0K4r5WpLUMcQ8PVmnv1vVrs/3Wy/Rb
 foxebZNWxgUiSx+d02e3Ad0aEIur1SYXXv71mqKwyi/40CBSHq2jk9eF6zmEhaoFi5+MMMgX
 X0i+fcBkvmT0N88W4yCtHhHQds+RDbTPLGm8NBVJb7R5zbJmuQX7ADBVuNYIU8hx3dF3AQCm
 601w0oZJ0jGOV1vXQgHqZYJGHg5wuImhzhZJCRESIwf+PJxik7TJOgBicko1hUVOxJBZxoe0
 x+/SO6tn+s8wKlR1Yxy8gYN9ZRqV2I83JsWZbBXMG1kLzV0SAfk/wq0PAppA1VzrQ3JqXg7T
 MZ3tFgxvxkYqUP11tO2vrgys+InkZAfjBVMjqXWHokyQPpihUaW0a8mr40w9Qui6DoJj7+Gg
 DtDWDZ7Zcn2hoyrypuht88rUuh1JuGYD434Q6qwQjUDlY+4lgrUxKdMD8R7JJWt38MNlTWvy
 rMVscvZUNc7gxcmnFUn41NPSKqzp4DDRbmf37Iz/fL7i01y7IGFTXaYaF3nEACyIUTr/xxi+
 MD1FVtEtJncZNkRn7WBcVFGKMAf+NEeaeQdGYQ6mGgk++i/vJZxkrC/a9ZXme7BhWRP485U5
 sXpFoGjdpMn4VlC7TFk2qsnJi3yF0pXCKVRy1ukEls8o+4PF2JiKrtkCrWCimB6jxGPIG3lk
 3SuKVS/din3RHz+7Sr1lXWFcGYDENmPd/jTwr1A1FiHrSj+u21hnJEHi8eTa9029F1KRfocp
 ig+k0zUEKmFPDabpanI323O5Tahsy7hwf2WOQwTDLvQ+eqQu40wbb6NocmCNFjtRhNZWGKJS
 b5GrGDGu/No5U6w73adighEuNcCSNBsLyUe48CE0uTO7eAL6Vd+2k28ezi6XY4Y0mgASJslb
 NwW54LzSSM0uRGFuaWVsIFAuIFNtaXRoIDxkcHNtaXRoQGFwZXJ0dXNzb2x1dGlvbnMuY29t
 PsJ6BBMRCAAiBQJWK7ngAhsjBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRBTc6WbYpR8
 KrQ9AP94+xjtFfJ8gj5c7PVx06Zv9rcmFUqQspZ5wSEkvxOuQQEAg6qEsPYegI7iByLVzNEg
 7B7fUG7pqWIfMqFwFghYhQzOwU0EViu54BAIAL6MXXNlrJ5tRUf+KMBtVz1LJQZRt/uxWrCb
 T06nZjnbp2UcceuYNbISOVHGXTzu38r55YzpkEA8eURQf+5hjtvlrOiHxvpD+Z6WcpV6rrMB
 kcAKWiZTQihW2HoGgVB3gwG9dCh+n0X5OzliAMiGK2a5iqnIZi3o0SeW6aME94bSkTkuj6/7
 OmH9KAzK8UnlhfkoMg3tXW8L6/5CGn2VyrjbB/rcrbIR4mCQ+yCUlocuOjFCJhBd10AG1IcX
 OXUa/ux+/OAV9S5mkr5Fh3kQxYCTcTRt8RY7+of9RGBk10txi94dXiU2SjPbassvagvu/hEi
 twNHms8rpkSJIeeq0/cAAwUH/jV3tXpaYubwcL2tkk5ggL9Do+/Yo2WPzXmbp8vDiJPCvSJW
 rz2NrYkd/RoX+42DGqjfu8Y04F9XehN1zZAFmCDUqBMa4tEJ7kOT1FKJTqzNVcgeKNBGcT7q
 27+wsqbAerM4A0X/F/ctjYcKwNtXck1Bmd/T8kiw2IgyeOC+cjyTOSwKJr2gCwZXGi5g+2V8
 NhJ8n72ISPnOh5KCMoAJXmCF+SYaJ6hIIFARmnuessCIGw4ylCRIU/TiXK94soilx5aCqb1z
 ke943EIUts9CmFAHt8cNPYOPRd20pPu4VFNBuT4fv9Ys0iv0XGCEP+sos7/pgJ3gV3pCOric
 p15jV4PCYQQYEQgACQUCViu54AIbDAAKCRBTc6WbYpR8Khu7AP9NJrBUn94C/3PeNbtQlEGZ
 NV46Mx5HF0P27lH3sFpNrwD/dVdZ5PCnHQYBZ287ZxVfVr4Zuxjo5yJbRjT93Hl0vMY=
In-Reply-To: <644cdc5a-b96a-4e43-ae7a-4cadda1d1084@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

On 4/10/25 16:56, Jason Andryuk wrote:
> On 2025-04-10 11:01, Jan Beulich wrote:
>> On 10.04.2025 15:09, Daniel P. Smith wrote:
>>> On 4/9/25 02:24, Jan Beulich wrote:
>>>> On 08.04.2025 18:07, Alejandro Vallejo wrote:
>>>>> From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
>>>>>
>>>>> 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>
>>>>
>>>> Acked-by: Jan Beulich <jbeulich@suse.com>
>>>
>>> I have to object because the meaningless rename is going cause
>>> significant pain in the rebase of the follow-on series for no improved
>>> code clarity.
>>
>> Sorry, then an incremental patch undoing the rename that happened (with
>> appropriate justification) will need proposing - the patch here has gone
>> in already.
> 
> Coming from a Linux background, ramdisk seemed more natural to me.  But 
> looking at hvm_start_info, the fields are called module there.  And 
> since we shouldn't tie this to the Linux naming, the more generic 
> "module" name seemed fine to me.

Again, as I have stated, ramdisk is not a Linux only concept. In fact, 
as Jan points out, initrd/initramfs are Linux specific implementations 
of a ramdisk for which Xen doesn't even fully support. I am inclined to 
ask the inverse of why hvm_start_info uses the name module. But that 
aside, let's consider the fact that the field is only populated by the 
device tree when a module type of BOOTMOD_RAMDISK is matched. And all 
the uses of the field are when its value is stored into a local variable 
called initrd.

Though the biggest irony is that generally obtuse abstraction are 
routinely blocked unless there is a tangible future case. Yet none was 
offered in the comment. Thus on that principle alone, a request for a 
tangible future use should have been requested and provided for the 
change to be considered.

V/r,
DPS


From xen-devel-bounces@lists.xenproject.org Wed Apr 16 13:10:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 13:10:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.956040.1349556 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u52X8-0000x0-Br; Wed, 16 Apr 2025 13:10:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 956040.1349556; Wed, 16 Apr 2025 13: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 1u52X8-0000wt-7w; Wed, 16 Apr 2025 13:10:30 +0000
Received: by outflank-mailman (input) for mailman id 956040;
 Wed, 16 Apr 2025 13:10: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=PIlj=XC=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1u52X6-0000wn-Vm
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 13:10:28 +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 28e55228-1ac4-11f0-9ffb-bf95429c2676;
 Wed, 16 Apr 2025 15:10:26 +0200 (CEST)
Received: from BN9PR12MB5273.namprd12.prod.outlook.com (2603:10b6:408:11e::22)
 by SJ2PR12MB8874.namprd12.prod.outlook.com (2603:10b6:a03:540::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.34; Wed, 16 Apr
 2025 13:10:20 +0000
Received: from BN9PR12MB5273.namprd12.prod.outlook.com
 ([fe80::cf66:58ab:47be:4b13]) by BN9PR12MB5273.namprd12.prod.outlook.com
 ([fe80::cf66:58ab:47be:4b13%5]) with mapi id 15.20.8632.036; Wed, 16 Apr 2025
 13:10:20 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 28e55228-1ac4-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=g5jV5Dv/RlE2cD7yGC/5csUw8zBuBWsMhzE7ZqAsYao+F3AvRde+V+AJl6a+4OZs7bcGfcT/d/lDNrLkDOJuGWebGZdxB/OHpltIhD90MmVoJ7czt0uFAfwr9u8ez7PTSxliFL8+yOfGceq1ddMfP7R2rdZdRXQ+eCnGHt1qpiiU53djXbHT1d3iuw9/WDVvbrxzBiFC+Zyu/75DFAO0syer9R6SVOLKrK+LQ4tT2JcMgGnPV+PH2ADKX1LLFFWLl/5JXHKiZ91pLVHg6UVp0QEFT5Qq6Cp9W8kaDcpjQ6gp99Zdj3yvFklnQzQULOg3EWj/2SYZszPfAKbIDSX6GA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=7MPy0DaydIbRG9Uspm6pnkMLosb5GuT87IKBRTXynqM=;
 b=BR3Ee3h43uGXMvR9ajNhpfzuq4kE+cFTWqOwJuitoRA2ggX8/mXUpuz7Y0V3Jth1T7e12nCBF9tXCxHACrwQD7l3VYpXLKx4tqQlcY3QDQrlwV0E27KZqjBi2VOZV5oEdZhQQ9ogtfRRS32g41wocPHF2sXD73uloW1Nz0AgmupPDO5nW9BHfhAxJMUSgrvzGITaulurp7OKQ9oCexI2dY4OKxHPdueLYgov9Dy3/I8WeXgZvOKCHETvh+KBeXEHYSm0FbP8XgxDxBiNFCKAxmOXtuSkpgf1QahJj9N5l9RT4C9yP5sdj9hiwSdTiLhHHPjl71tsjsRLXyqMwixcfA==
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=7MPy0DaydIbRG9Uspm6pnkMLosb5GuT87IKBRTXynqM=;
 b=GSBVf5r1v/HjLUpAEFtvQAF6Gwd3yLbjClNGaFRCfcEVZ3tUE7t1fZKVWPR1jWC201UcJbE/TtaxwvWuP2Dv1vk7Pqr8kGdWD2NljISptMcef6QuODg/vcuZv5Jia2Vn8J9VRLQza+vVn8YYlDqDZsk+xgk/XDTSMP1bbHjYoA0=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <8251ff44-0b45-4f9a-9762-077763f620b1@amd.com>
Date: Wed, 16 Apr 2025 15:10:17 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 3/7] arm/mpu: Introduce utility functions for the pr_t
 type
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>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <20250411145655.140667-1-luca.fancellu@arm.com>
 <20250411145655.140667-4-luca.fancellu@arm.com>
 <d2b51729-e5dd-4325-9275-615ab1cbb68d@amd.com>
 <0877268B-138F-4FC9-B95E-544699D8AD91@arm.com>
 <22a7f8b1-6614-4354-830e-30dbf6210ec8@amd.com>
 <605B837B-7EB4-4A00-A4C5-D86630D764FD@arm.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <605B837B-7EB4-4A00-A4C5-D86630D764FD@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: FR4P281CA0415.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:d0::12) To BN9PR12MB5273.namprd12.prod.outlook.com
 (2603:10b6:408:11e::22)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN9PR12MB5273:EE_|SJ2PR12MB8874:EE_
X-MS-Office365-Filtering-Correlation-Id: 3a3f0766-c5d0-4086-10f3-08dd7ce80a22
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?aEdjQk9pRHRlL2tsT1Q3MWM5TEJZV0xnMzhMTXNvYWp0dVhjNnc4OVh6ZlpQ?=
 =?utf-8?B?dnZFRnBuenVCa0VXeEw3Qm1kY1c0aGpmUHh6cllXZms5R1Z6TXovK3haaXB4?=
 =?utf-8?B?bVRrbktJS2h6dXZHSGJwVEc1STVGZVJuNmlQY1drVkwveWVaNy9xcjZ6RHkv?=
 =?utf-8?B?MUd5WjVWc3FqUFVDb2dhcmw2STNsWTduNTFyU214blJhSUlNNWdtNFc0LzlM?=
 =?utf-8?B?NXFmY0NyOFlpVG42SlFzRDNhejVLWXRoZjJMVzh1dmFWRzR1R20zNmlCekJp?=
 =?utf-8?B?bFF5eG8waGt5OHZYRS9Jc1NrSTBIYzhLcUlkODFSaW13QVd5ci9Ock96MlQy?=
 =?utf-8?B?T3dYa3FPMGFaN0hpSjdFcC9YTUlmOXphKzIwa01wY2p6VGZkV1BvWU9reldj?=
 =?utf-8?B?UlpXWS9qQmNRV0xGM2ZmL1dTT0FFRUd4eXlZakczUzYwY2FuU1NnTDVJYlRX?=
 =?utf-8?B?VE5scG9BL0kvVWxma0dMcnE2eTBXdEc3aW5SZ0k2S0ZheTZwcm9xNDJZTzRz?=
 =?utf-8?B?aW50TmkyK1ByVnFRM2dCYitZNWp4VzQ5eFM1M0dEY1duK01pTXQ1T1FKUHo4?=
 =?utf-8?B?TDVQbHBIVmxsQVdaeFR1U2s0UFZQN1gyUG1mVHBiZXBBaDlwTDUrMk9YVFds?=
 =?utf-8?B?dnBVS01GbzhJZUJuVThJUGFoemd2VjRjNkVyS1J2MlFYUitBZWo5SEx1QUMr?=
 =?utf-8?B?T0VrM1pDblVkNDFyTjRMMll3RndSNnplRjFOSVNQN1g0MkdOQm1hTlY2cjZR?=
 =?utf-8?B?d0pOWG1MVDFmRG9rT3JIdjRhS1I4L2h1Um5JQlg3MkowbmdSRktTMk1IWmgw?=
 =?utf-8?B?ODg3ODNmTmJGLzJSTkNiMHlpVlJPYWNId0cvRnNMRTBYN1BmV3ZJRDFHSHdp?=
 =?utf-8?B?VWJ2SWczRFNGbStvU1lmU0hGMWRXWFZSbHoyaHhaTVQzZWhrdFl6TU4yNThm?=
 =?utf-8?B?TnY3TEN6T1d5MEIvR2E4djRQSFFRL1hUZHV1T25ndEtQRzNsZlo5cWptcksx?=
 =?utf-8?B?c0FlQXNXSGxLY2U4NVhEQWJ6TDBLOEY2NHRuZ3M3OXRSSVljQVo5QXp2WWk2?=
 =?utf-8?B?dnVnb2crUnBMT3d5aVBMS0txOTE0THNEb0FzeE1BSWJaY09rWHRDTllWSGZL?=
 =?utf-8?B?OCtYcmQ1SjFIdE1lalhKVTRoRWk4S3NEYklFdTFlMmczdW5iNTZOdWoveit1?=
 =?utf-8?B?M0tZL3gxc3l1NElrVlpIK29LN1o3S0kvRkQ1T2VzRCszS2tCSjJGc29ublow?=
 =?utf-8?B?d2VFZ0gyY3EzSEU2NTByTENZVUl3dE52NlVweFRIbE1TMmRaaGN4Ti8xQSt4?=
 =?utf-8?B?SEVnL1YwSm1FbjNHSUdXQnE0MnlzckloKzRhNWlLblM2TDk0V0ZxMzhIT2NS?=
 =?utf-8?B?SDl2dmVURjVrdHFTNWEwMmhpdFlTWUdxRFA2UG1wUGpkWlBvRmJLS2c3dHJv?=
 =?utf-8?B?bkV1N3BQNjhtOVVielNsNWw1VXNNTlczQ1I3S1Rha0NYVmJjTFpNbWo2U1M2?=
 =?utf-8?B?bmIwS2RZTDUxcjdTZzJsRS9vZHNTczRaTmMxTmN0WFdBZXhQVXQxVkRLYzR5?=
 =?utf-8?B?Q0FjVGNSa0VLQnpNUE5ITFNKenYvMkxXZzVrMDFxaFNxUmhZdXRBNUFXRm9r?=
 =?utf-8?B?U1RPRE1vMDBPQ2owNDV2OFUzNVF3Q2RtcS9iL05tZ2gySHBqOGc5TmdqdFpm?=
 =?utf-8?B?UmJ4ZnlLL0ZBY3F1ai9HdEUvaldFQVRwTndvakttZmhzTHRzLzhaNkVHUm1i?=
 =?utf-8?B?di9Zd3VYb2tiRDUxS29ZQW5ORENRWUNLZ2dSbVZjeHJtMFY1OENQZENLb2tN?=
 =?utf-8?B?N09VcFc0aE9xeDZoOGR5ZlROL3FzR0JxZzR3TE1MVVozN3VmSmljQ3Z6ZW00?=
 =?utf-8?B?TXBreStXS2FRdVFsT3VDazZIL0RjdGZxdHFhWGZjekE5cmJmeFZqbS9PZUpm?=
 =?utf-8?Q?2YKW8tkp5C0=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN9PR12MB5273.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?NVJVT3JLcHRVTWY0a2w1bVBNVzV4U2RxRGlXQlpLSmV0M0xOSmNWSTk0OWkx?=
 =?utf-8?B?ZnowOEU3UmJTR0RGT2FhTEl3bVo4SllXUWNnZ3FwOVphVmdVWUtuWk81REZJ?=
 =?utf-8?B?dXhmSHlWaHNUZDN5dGZIUStmWGcrYlFScHlqZ3dvSzZUaEhYNXdlVHEzYWNV?=
 =?utf-8?B?ZU5veGxLdk1xdWZyQUpYM0hSbTVwRHV0a0RVOG55bjVuazVJK1pHNXdqZGFw?=
 =?utf-8?B?YU05VnNMTUJWQ2JQM3RuUWxsRzAxVmpaczZSNThZYkZKQis2WlBJbXNxbmNw?=
 =?utf-8?B?dTcyZm1mR0YxWThIZlJKMitkdU5iQUpoUVJsTlA2cFp1bEhpR2xPL0xDanpj?=
 =?utf-8?B?WURpUG0yNkFlS21uNUVJN1AzQ24yL1A3SkdvejZ6cjBXelIyTjhGRk0xUnFP?=
 =?utf-8?B?Y1hBaHJUN0lQMlhMRlhWK1Q5cnFPR0dmc3VTazVjVm9LVlBXQ3JtekZJOVRN?=
 =?utf-8?B?bE8rSUp2Vnk2c3lBQ2x0T21NVWd6b21qdEwxSHBvL3dEa09hOVFTTjc3eTQ3?=
 =?utf-8?B?WEhxWDczUGxPT0FEdHZqTElKa1NRMm96eVNGQnVHN2lwTy9MbGtTYUFValQ2?=
 =?utf-8?B?dmpzUTRlWWhNRGR3Q2tpc3R3SDBnZ2o0OGV2SHd5NGsxOHFLNlE1VXNzUkhv?=
 =?utf-8?B?R3luY0RPUms4Umh3NXR1cldNNkt1SDR3UHpvTWRwVUltUGNwelk3cWlDeW81?=
 =?utf-8?B?UmZVbmxVOTJ4b2pubWhCSXB2QUhzV09mQjVxU01CT2QzYWhPellJR1U4U1Y5?=
 =?utf-8?B?RnE3SUQ5MVEvY0NIOWZ4enA1QmZpUGhqVHI5Sys1UzcvVi9obWRmdTllRkpH?=
 =?utf-8?B?VU5WaWpxcDJoOE9IN3hXbGRaaU9hSEFnQ3M5ejQ3WFR6OXNhbVBzSkVqaFg5?=
 =?utf-8?B?VC9jSDRrOERIcTQrNG5mT1d2aHpkS3pLT0luWVBta0c0ei8xcHM0eUY5K3Z4?=
 =?utf-8?B?R3k2QnhaRGgzVU15TGZaQThmT01HOC8veng5U0lJakRXOUpHZ1czVEh4T1Ey?=
 =?utf-8?B?VHdZNUoreFZCWGtTTGJmdGFmMkQzL0lrZ1hVN2NodmlwOVg5WmhWQzV5S09m?=
 =?utf-8?B?U3hGNHhaakVrVW5nd3p6cWhnQTBaN0E3Y1ZDbXdUeG5POHJleWI5Qmd5THVa?=
 =?utf-8?B?Sk5ndGJudHp2SEp0aVRELzVxRU1wRXh3cEZTZEVzZGpjZWh6akNNOUE3UC9T?=
 =?utf-8?B?aVJZZTVnSXFYUDFSOGdCNnEzSTUrTXJtalI2RERaMUw0RDFHa3dUbDRWNmd0?=
 =?utf-8?B?SGc1eG5uWG5nV3QrNkVFS3prYjJEbWRXZ3NYSHNOSiszYWdLbGF2N29scTVa?=
 =?utf-8?B?Z3VyQXllVUJ4U21XOFJDS1N0clZOZ3V1dGFOVUVxMDhmS3R0ZWtxb1B6UGQ5?=
 =?utf-8?B?OFB5T0htUCtKNldVSDc1UEZrUWhJZmNXSkp6Y3Frb2o4Z3RTOTROZFgxN25I?=
 =?utf-8?B?YVFNQkhveE91anVtSVdUVWoxMURvd3ljREhXU2FpcEJBVEQ0TThOTlJVWmVH?=
 =?utf-8?B?WmJSRWZkSnhKS200U0pFSDZXK1AyL3ZwdXZzRU50b1QxZ2NUbUZ1N1BtZ1A0?=
 =?utf-8?B?dVlmSUc3MHBCdVFycld4QnRLUDRneHBYQlBVdFUxMnRDMWlzcGl6MlYyS1RZ?=
 =?utf-8?B?cTR4QlJFS0grOGNnT0EzUVBMUGtzcG9HZG1XeDJQU3FtWDN5TnBhMXE2MWhY?=
 =?utf-8?B?YWtPYU5BMUxNakdBWEx0RjhHVjNlMW9CLzk3dVV3aXE4elNLTGFGaFNXam5u?=
 =?utf-8?B?YXJWWjJsYzdKYUpxaXhpU1puSEdHK1NYam9sa082R1VNMHRJVWZmT0xMb2gy?=
 =?utf-8?B?S2dkNFFaU0orcHJha2RLd1h2cnp2REliTXVBcWk3RE42Y2MvL1g1Um9IdU91?=
 =?utf-8?B?V2pWY3l5dWhYSFI4Sm5najgzS3FiTVRCV0dnUTNRbHJab2pmN1pxMmlVY0Rz?=
 =?utf-8?B?WVU2TjluUjNJVVNTam1ZN1llbTkwUXc1MTRZYjVibU5kWUczaXkzZGxvRWg4?=
 =?utf-8?B?K2VtY2xyMXRIMXNuVDhGdG8zTHB4L1RzbU9nNWhFaDdUWEx2NHlXNkNUUHdJ?=
 =?utf-8?B?UTY4a3gxRlN1ZytiUERWYlpzY00yU0s0VE52bmhlOWtYNFdSK2ZjUW50SHIv?=
 =?utf-8?Q?oTxn9pMD9w9lfpDuM91CXgYwj?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 3a3f0766-c5d0-4086-10f3-08dd7ce80a22
X-MS-Exchange-CrossTenant-AuthSource: BN9PR12MB5273.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Apr 2025 13:10:20.2713
 (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: HTd1kqQKiJ/ZBG33TFslDgF0UlROtDz1dNurNpI6Q5TkaEfkHl/gNo3o3vY9WJv+
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR12MB8874



On 16/04/2025 14:57, Luca Fancellu wrote:
> Hi Michal,
> 
>>>
>>>>
>>>>> +}
>>>>> +
>>>>> +/* Set limit address of MPU protection region(pr_t). */
>>>>> +static inline void pr_set_limit(pr_t *pr, paddr_t limit)
>>>>> +{
>>>>> +    pr->prlar.reg.limit = ((limit - 1) >> MPU_REGION_SHIFT);
>>>> Why -1? AFAIR these registers take inclusive addresses, so is it because you
>>>> want caller to pass limit as exclusive and you convert it to inclusive? I think
>>>> it's quite error prone.
>>>
>>> Yes it’s meant to be used with exclusive range, shall we document it or use
>>> Inclusive range instead?
>> What's the expected behavior of callers? Are we going to set up protection
>> region based on regular start+size pair (like with MMU) or start+end? If the
>> latter for some reason (with size there are less issues), then end usually is
>> inclusive and you would not need conversion.
> 
> I think we have a mix because for example destroy_xen_mappings and modify_xen_mappings
> are start and end, map_pages_to_xen instead is kind of start+size?
> 
> I moved the -1 inside pr_set_limit because it was open-coded in all the places, for example when
> referencing linker symbols or output of mfn_to_maddr(mfn_add(smfn, nr_mfn)), for this reason I
> thought: let’s call this one with exclusive ranges and modify internally for inclusive.
Hmm, yes. Indeed we have a mix of places where end is inclusive or exclusive. I
think we can stick with exclusive address being passed to this helper unless
others have a different opinion. I know we tried to convert some places to
start+size but I don't remember the future plans.

~Michal




From xen-devel-bounces@lists.xenproject.org Wed Apr 16 13:13:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 13:13:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.956055.1349565 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u52Zx-0002UH-Qb; Wed, 16 Apr 2025 13:13:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 956055.1349565; Wed, 16 Apr 2025 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 1u52Zx-0002UA-Np; Wed, 16 Apr 2025 13:13:25 +0000
Received: by outflank-mailman (input) for mailman id 956055;
 Wed, 16 Apr 2025 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=hq9D=XC=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1u52Zw-0002U4-KM
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 13:13:24 +0000
Received: from EUR03-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur03on20614.outbound.protection.outlook.com
 [2a01:111:f403:260c::614])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 92e8db5f-1ac4-11f0-9eaf-5ba50f476ded;
 Wed, 16 Apr 2025 15:13:23 +0200 (CEST)
Received: from AS9PR05CA0100.eurprd05.prod.outlook.com (2603:10a6:20b:498::17)
 by DU0PR08MB8019.eurprd08.prod.outlook.com (2603:10a6:10:3e6::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.32; Wed, 16 Apr
 2025 13:13:18 +0000
Received: from AMS0EPF00000198.eurprd05.prod.outlook.com
 (2603:10a6:20b:498:cafe::7b) by AS9PR05CA0100.outlook.office365.com
 (2603:10a6:20b:498::17) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.22 via Frontend Transport; Wed,
 16 Apr 2025 13:13:18 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AMS0EPF00000198.mail.protection.outlook.com (10.167.16.244) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.12
 via Frontend Transport; Wed, 16 Apr 2025 13:13:17 +0000
Received: from DB7PR08MB2987.eurprd08.prod.outlook.com (2603:10a6:5:1c::25) by
 PR3PR08MB5771.eurprd08.prod.outlook.com (2603:10a6:102:83::23) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.8632.34; Wed, 16 Apr 2025 13:12:45 +0000
Received: from DB7PR08MB2987.eurprd08.prod.outlook.com
 ([fe80::d53f:b16d:70a5:8668]) by DB7PR08MB2987.eurprd08.prod.outlook.com
 ([fe80::d53f:b16d:70a5:8668%4]) with mapi id 15.20.8632.030; Wed, 16 Apr 2025
 13:12: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: 92e8db5f-1ac4-11f0-9eaf-5ba50f476ded
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=I4QoZhF2c0RIj6ebj5G/LxsuhgKUdxD5c00ojTK/St+Eh6DcEyQEot7bjke/J4zCWjw0hrMRyLfQycyU9gH5nDEw+WeFDSF/fssUSVY/+538qyXEe77on15/deNPAPA7fyQ+G9eyYap2Bbbo3EU/9APZyWidKP0avDKtIVGlgybmg3r7fMVj6jM+07wJeNeAlg0oDQ8fygrDT8TvdCkPC7jptsDH/q1/t6liZo2369HO18/gxGpc7gLjaMIhPBglIHYS3t8Q9evLFuQp7hDvno0shdXLYIn3SS74SR1v5GRfiimwzrbj/tXdxDZDaj9iX3RUs5XfQ1rrYz8WHX3D9w==
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=5SPq0io0Fd7Ioym5XIdVQiUiX7DqiYIwbUOd6mrI6Yc=;
 b=OT7YZjR3nhgh8f+dC+T7lYLh6UfbV9SEWzEs1wbubuuBi9yG9Rx20fQqoLRAy1Eh7umRYdFqpnOxk2NyY69q84DMw9KmI0K/fre2xou8D8WZeoHeEN25gU+fBq/8AYY01IjV+MGW1JnHE8AO9jj/9y2bEX7dvGj937PIvo6SkK2NQtuMz/AMhOz6xCugEcE8AoCLCkCsWemBvKlnqfaoV00znztuRjF3vCFKbggJQmxFwHRpX5dnZnfcih0J4Tr6sURWZssUJN74nRgn/7gr/+I+oLLddDynwOZMqdN1m1xvx3L5AL6FQxIS0X+x8rrZCpGSIMXxKw/9xN6bPXikfA==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=amd.com smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=5SPq0io0Fd7Ioym5XIdVQiUiX7DqiYIwbUOd6mrI6Yc=;
 b=WUG//dDkPbQe+pILiLRY+Nip9jg/xYtiuLYlDIKHfsPDH0uS4+7LtGwlOfleW7SfBDUGdjWeaRLl8GwiOplE1MnDK2b7ImXx+gvU+vp/cyB6Y9NskrRqy/HSAHjizHIK0p1uNlhcb1htoFVweuA05J/gt3sa7fBVsiZ08pDSfBc=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=G4QBrauIgcC+zWhg22Ief+od9nmJAyuOjeJjU+xXJeZKkjR+qOfhvILNQ3Xrkfs7Au2LUQnVPARpsBwgz+W9SojI6hB+q1ZuD9oCN8OXUayF0NiphK3KlYolgtvSPPTorA6klWLroTz+edr1GiuwSkaVeqc0orCQxcD4gJ7IO96m4NejVD+7FxQyUdtcT4KNxm6qnsec6BFGwGI7vPxJLw3gOf9p/pnladaQJI/rvsZ/3Vpg4HWCnpEA6jRTDID21ZPKo12KW3/++q8WVGfZg3EIf8T61yD0z25rrXqDdoIfmZOfqfzHAcHycZGDXXhRoKnXgNY+buMFgDhY5zaqsw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=5SPq0io0Fd7Ioym5XIdVQiUiX7DqiYIwbUOd6mrI6Yc=;
 b=pRAyaUCqEFoBT88+r4d8NlWfVTvwoFJndC4w3xiCh0059oZoZEDiTDBXtunYAkSno+MCKBERUPnb20KIVCZYqiyFp4W13PxGc1iUTXqSlbbv0W9ySaqzk/ZF8DjzGGTca++a/vecNK0+O9RlsaHBInLqu3ykFP+0gUvU5OxujU09FQXlKRd22AUoA4eJjxyRV38EsnJS8Yn3eWCfZIketraPp6HcO05X6YLxYZP9L6L50J2J/rtLK8pCI+nWd1dYhSK6vXGNSTwuG1j9Rj85WSRGORtMqzObe9tBBX2yQQKwbBVoempohsX8VMwBYPwj0keYMllD+72m7wDVMtHSKQ==
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=5SPq0io0Fd7Ioym5XIdVQiUiX7DqiYIwbUOd6mrI6Yc=;
 b=WUG//dDkPbQe+pILiLRY+Nip9jg/xYtiuLYlDIKHfsPDH0uS4+7LtGwlOfleW7SfBDUGdjWeaRLl8GwiOplE1MnDK2b7ImXx+gvU+vp/cyB6Y9NskrRqy/HSAHjizHIK0p1uNlhcb1htoFVweuA05J/gt3sa7fBVsiZ08pDSfBc=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: "Orzel, Michal" <Michal.Orzel@amd.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand
 Marquis <Bertrand.Marquis@arm.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH v3 3/7] arm/mpu: Introduce utility functions for the pr_t
 type
Thread-Topic: [PATCH v3 3/7] arm/mpu: Introduce utility functions for the pr_t
 type
Thread-Index:
 AQHbqvIP34UccZOkWUuu+Y+Ap2U3MrOmJOcAgAAb/QCAAAMjAIAABC8AgAADsYCAAACNgA==
Date: Wed, 16 Apr 2025 13:12:45 +0000
Message-ID: <B7BE82AB-2264-4B97-A39B-F9565951D5F9@arm.com>
References: <20250411145655.140667-1-luca.fancellu@arm.com>
 <20250411145655.140667-4-luca.fancellu@arm.com>
 <d2b51729-e5dd-4325-9275-615ab1cbb68d@amd.com>
 <0877268B-138F-4FC9-B95E-544699D8AD91@arm.com>
 <22a7f8b1-6614-4354-830e-30dbf6210ec8@amd.com>
 <605B837B-7EB4-4A00-A4C5-D86630D764FD@arm.com>
 <8251ff44-0b45-4f9a-9762-077763f620b1@amd.com>
In-Reply-To: <8251ff44-0b45-4f9a-9762-077763f620b1@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.400.131.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DB7PR08MB2987:EE_|PR3PR08MB5771:EE_|AMS0EPF00000198:EE_|DU0PR08MB8019:EE_
X-MS-Office365-Filtering-Correlation-Id: e55c8b7b-999c-4e5d-2f91-08dd7ce8741e
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?aVVhQVBMQnFINkJTb2pVVW1oMklCWCs5eVlIS2dWelpiTU10Ung1WG1kNFBp?=
 =?utf-8?B?YlMzL2swd2svbzJXQUVydzFvOEtSWktoOUx1QkVkRC9ndTRPNWYwWjR5Z21l?=
 =?utf-8?B?cUpOY010QUFCcVliM1FnV1JzMWoyQkpQVTVCeVZpMGVNWWM2aGFldzI5YmFK?=
 =?utf-8?B?ejhLMXU5RkVSeGFEeGRsTG93WlpsR0JBMlpRemp5SWRNT2VOeE9HbTNJWFFz?=
 =?utf-8?B?TEl2czhjNUN3U2FvOXBad3NMMDc2WXZTeU5UY0xkVzB6NkQwRmNZNXNjV2Q5?=
 =?utf-8?B?cDg2UVVyOGYzVmlrdUFUV09DTDRoeEZBU2F3cEFwVFBLeGgzRVRMZVYyeU9Q?=
 =?utf-8?B?cWdXQ2o1aEZyOFlVdG5hQTh3YWVmN1dFby9GMnZTL3FYV1NQMGZ0d1VkV2xY?=
 =?utf-8?B?bXBvRDRZNEVxa3JlMkYvTDQvTGFnZjVCM09LWlE3bTluTk5nbEl6QlY4RTh4?=
 =?utf-8?B?dCtFVXNCQTVST2orRmpnRktRREZkWjlJcXlXVXBreUNyZXA2N0habTVCdnlu?=
 =?utf-8?B?UnQwNEs0MDQ3WStqVFZ5Snh0TlZhT2lJc3pObThwbnNxWGFydHpydm9kUXFZ?=
 =?utf-8?B?VkZiMkEzVHJlVWlUaUNQckNSandKeldseFk5Q0VGK3h3WmdQM3VxeXQ4SVA1?=
 =?utf-8?B?R2kzVFVhVVcwRVpUVTYyU2tmT3U4dHJpUGFnb1Y2ODkrei9qUlVuTm5CeWxR?=
 =?utf-8?B?LzdXcTE2cUI0WkVqaVQyYkJ3aldIMWVhUU5CV3B3ZFFYRE96dEFWVThxNkRV?=
 =?utf-8?B?b1p5NWlUWWYzTkNiZkI2NXByS3RES3RPQUIyellCYXhFbGd4NFBkci9ncHF1?=
 =?utf-8?B?bitMYnA4blBlYkN2REUxY2krS2ZxRU1UNVMrQythdUc1djNmMlhMdGlZQnox?=
 =?utf-8?B?SXpOMVl3MTJ4c1ZKODcxSUxCdmpSMjlaS1FUTktDY09qdXE2KzJQSDZoZXo2?=
 =?utf-8?B?blgvdThnMzZwd3VDRjM4WUZBK1c2RjJoeHdMZ1pLS3VkWk80ZUhmQ2pkaHlO?=
 =?utf-8?B?VlVSTXZTWHI3bGxXMFRXWnFCaDJnT1EzOHYyb3lNL0xYNG1jeXVtanZ1QTF1?=
 =?utf-8?B?ZjBxNG9xU0E0Z3N4WW1RbUwrQTVKVmt2UXVyUHdMaVJxbnArSi9ZMG1XUSt2?=
 =?utf-8?B?VzRzcjE0bzhzV09BN01vak04UFh5eHdmNmlBSEZtU1Q0d3NNTWRFUGJtSlov?=
 =?utf-8?B?NEFVeDVIa3NJeWc4SG1xeC9qSTVKRDc1ZzRPYkltN1NPbDhPdnVDdXV4Wk50?=
 =?utf-8?B?bW9zSm5COWNiTzJmWlpNQ2h3a09hYnFzTzhTQnlIb3JxdlVZYVQ3M2RIVHJ0?=
 =?utf-8?B?VG5TWjJZRkZSeG1kcndLUEpIb3RDb2dGRTFaM1pnRzdDc21ibytWSElESVRG?=
 =?utf-8?B?S1NHUFZqNnA2ZG1mOEUrbUNoQjBWaWg1NlNINHZERHNxaG5KUXM4aDFvdnRo?=
 =?utf-8?B?emJ3bklrSklldmRSUnVYSk8wMUg3NkxIVnFsekJuaG0vU0YyR01xQXdzSFQ1?=
 =?utf-8?B?bkV3c2FueEZDeTB3ODB0bTRYdDBhYjVUcFBhU3JkOHpha2dmdTlBWllqdDlS?=
 =?utf-8?B?Ly9TbkRVaDlVRlZWdm52RkdiaU5HYkVRZGZxdy9WQTMxb0lNNEtUUy8rWGRn?=
 =?utf-8?B?QmVZVjNoWG43VUVLYmM0aEM0dFlZWTRaYVNBTlVXLzQwS0gxaUxHYlpiejVQ?=
 =?utf-8?B?aFhwcHJrVTJJWWxrZHB4Rk1PN214cDZUWTU3djA4RXVFVkdRVmYyUWt5c01B?=
 =?utf-8?B?bFp4NWdPRUZYV2JtRUc4MlMrTm1aV2lnZUxWOFBmTm5YM0IxN0hOaEFmTHVj?=
 =?utf-8?B?dWIvTyt2U0FDQ1hSdVhwa0dQY1pUUWE1dWRIbm5HQWNSYnAwb3ByNVRGWE9x?=
 =?utf-8?B?TitNeThxU2tsRlFwcUJNV2NjQ1JUOHNlQWs5L1d4dnRsSHRxeHU5YUo4WTk3?=
 =?utf-8?B?MUR5RElsay9YeUFTamhIK24wZ0xzblF0VGxxS1dIbGhaSkljOERvdUpucUpa?=
 =?utf-8?B?NE1ZcmhCMkJRPT0=?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB7PR08MB2987.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: <3BCB7D5CA847AE4796CCA252EC310BA2@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR3PR08MB5771
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AMS0EPF00000198.eurprd05.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	12c0d5d5-930b-413c-a86a-08dd7ce860bd
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|35042699022|36860700013|376014|82310400026|14060799003|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?T0g2S2k3VE51TWVOM1Z6TXNxTnRpanNnT3pDZ3g3Vk9zOThHOHVvbGdBNjd0?=
 =?utf-8?B?Qmo5TmZGOGpCOHNZVnVWRDFZa08yMEhzVzIvZDZXSVZaa05HN3oxZGhacE45?=
 =?utf-8?B?dlo0QjJZR2tqNEdHRlBReUppOVNsd2VscFhGZlVWUDdaZjZCeVhxaDJNK09O?=
 =?utf-8?B?eEFoSWRiOTl1K2ltM2ZyZHVKbmFPR3FGaTZLS09sQWhYbnVJWm5LNTFwZVUw?=
 =?utf-8?B?ZXFQejl1cFlkYTJoY0NVazlKSVpVcjZjK3p4aFYxdXAveWRyV0tzSGUvUXNW?=
 =?utf-8?B?dnN6T1JhRzJPZnBPYktIaXdka2o5dC9hZ2FiSVpNblpvd21jWlNDS29GNGVJ?=
 =?utf-8?B?R2ZPNU1ySHZINVBtYXJsaUVlMFR4TTMyLzlFbnpEdTFKOENJdjJSc2hUWWEy?=
 =?utf-8?B?Yjh5TTBJMVpDTVYyajNhQmpOZVlzRTdtQzJTN0JRaWVmc3R2dmhtKzBVMFhD?=
 =?utf-8?B?VG42NkdoRklCbVRER2VkTElsamtndVhvWCs3R0l0UFVsVEdmOFdIa0Q5bmNS?=
 =?utf-8?B?d3daUDZ0UTZSYVFqUmhsN2xoakJZRlJiTi9ISTFZYi9UM2doK0pyYVdQTS9n?=
 =?utf-8?B?Sm04d05SL2xBNUQxZ3o5YWduOCs5OXlOaVVvaGxhU1F2V1NVN3gyQWc0aFhj?=
 =?utf-8?B?aDRLZ0xtZUZFZTczeTNpbm5UVVpneWJFTFREZFR0RHhXQW1mUFdWQWNKdEJo?=
 =?utf-8?B?NFdzeVJROFpKblc3Y0k1VjE5RzlZRFRXVkFDL1JPanpSNHptRkJ6OE9JczZw?=
 =?utf-8?B?WDZFWXowS0dwWFVGRldmRmV5cE1wMTJER1Z2MFhUK0pZcHJYa21lQkxscTlD?=
 =?utf-8?B?bndYczVLdWV5ekNOMkYwWEt0bXFZRE5sL2dUSWU2am1DUlVLZVF0V1ZvNmJB?=
 =?utf-8?B?L1VuWnJsLzkzQ3l1eWxCVG9xM0drZVkxMHBjbnVweG0vUm5tT3F0MlByd1N5?=
 =?utf-8?B?MnZMRTRKZVJ2MEppc2FBTTIrWXdlMUJsemtTVVVsS1pUc0pWcXo5c3JTS2lk?=
 =?utf-8?B?RlBjRzloWis2Tk5JVGVkMFhnUWdURjhDRjdtZGx4ejBIZ1Zab2t1S3BzZGtu?=
 =?utf-8?B?OFZuK2RZaXNxV3U5blZJVTZxcWtiYWJOQUUvRmhrZnl5dzJ0SU13cVZWS1F6?=
 =?utf-8?B?RzAzQTFjZEVaM05MdmZDYktpalVpMjFsNk94U216S1BHeXFzNmp0ZVBmNEJM?=
 =?utf-8?B?Z3owWUFpVm5MOTRwVWtZQWhVcWt1S3hrZ1ZFTUJ5cGRlNVpEUFJySWM2ZDZq?=
 =?utf-8?B?RzRBK3RhZHBUbUNtRXk0Q3NGSDM2YnNZNHAxRTV1SGQ3bUhiUWwvQ2hacjJN?=
 =?utf-8?B?WnhYNGtDQ3ZQejNVZXF6ajFvaFNOWE5jd3BZM0dqV0FHbVRyc2I0dTM1WDNt?=
 =?utf-8?B?NzBGZnl0WnVvMG9oS09iVkpCeHVtbmljTkthSnV3eG9VS2RtMXpBQ2NVQUhC?=
 =?utf-8?B?d3FxbnU3SXY1UHJaVFhlMnc4b254cFRXUEF1MSs5SWZHeHIrZTV5OWZGc0pM?=
 =?utf-8?B?eWVMaU5VYVMzbGhZZmMwMmpwTkpDMU1qNml3dlkwOVJwVVZIekF5b2pLaFUw?=
 =?utf-8?B?VHFTV1lKcno1NlN3YXkzcTQvbUZEc3JrUytWZkFCYkhBbzlNTmJKZS9tZ00w?=
 =?utf-8?B?T1NMNVVtRWJZK1ZXK3BRMGtWbVlQVHYyVUNLUWNRUjdZaVpiUS9JNGRTbXcx?=
 =?utf-8?B?QjdSQmZpM1JiaGN1UHo4ZDZrUlUrRGhJS2RXTWRkQ3VOSVIvWll0cUJPMEFu?=
 =?utf-8?B?NDBVZkVMdDFhWm84RmpHdk1DRTF3TGJ1dmE4aGlmV1FtSnJweXEveFpaSCty?=
 =?utf-8?B?eFF3dUYvV2Jyd2ZwYWh1dks0b2FvRTRLcERwU3c5Q0dmejRTcW91UUJSOHhq?=
 =?utf-8?B?eW5jY3Y0eWZ1c2F0YU1QRDF5SGsyTEp4RitpdVhSUFNCRzZISUtwZldaRzZm?=
 =?utf-8?B?bVhUWlZPNDRoazhHMFhsZERRbmJNTTl3Qk9WTFAvMnpjcTZUU1B4TE9uSHBu?=
 =?utf-8?B?dHU0MlNTYWR4Zkg4RnczaTYvYXZibzJQdUwyRXNnaEZueHo2VXFsU0dhQTJL?=
 =?utf-8?Q?1wvxFN?=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(35042699022)(36860700013)(376014)(82310400026)(14060799003)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Apr 2025 13:13:17.7933
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: e55c8b7b-999c-4e5d-2f91-08dd7ce8741e
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AMS0EPF00000198.eurprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB8019

DQoNCj4gT24gMTYgQXByIDIwMjUsIGF0IDE0OjEwLCBPcnplbCwgTWljaGFsIDxNaWNoYWwuT3J6
ZWxAYW1kLmNvbT4gd3JvdGU6DQo+IA0KPiANCj4gDQo+IE9uIDE2LzA0LzIwMjUgMTQ6NTcsIEx1
Y2EgRmFuY2VsbHUgd3JvdGU6DQo+PiBIaSBNaWNoYWwsDQo+PiANCj4+Pj4gDQo+Pj4+PiANCj4+
Pj4+PiArfQ0KPj4+Pj4+ICsNCj4+Pj4+PiArLyogU2V0IGxpbWl0IGFkZHJlc3Mgb2YgTVBVIHBy
b3RlY3Rpb24gcmVnaW9uKHByX3QpLiAqLw0KPj4+Pj4+ICtzdGF0aWMgaW5saW5lIHZvaWQgcHJf
c2V0X2xpbWl0KHByX3QgKnByLCBwYWRkcl90IGxpbWl0KQ0KPj4+Pj4+ICt7DQo+Pj4+Pj4gKyAg
ICBwci0+cHJsYXIucmVnLmxpbWl0ID0gKChsaW1pdCAtIDEpID4+IE1QVV9SRUdJT05fU0hJRlQp
Ow0KPj4+Pj4gV2h5IC0xPyBBRkFJUiB0aGVzZSByZWdpc3RlcnMgdGFrZSBpbmNsdXNpdmUgYWRk
cmVzc2VzLCBzbyBpcyBpdCBiZWNhdXNlIHlvdQ0KPj4+Pj4gd2FudCBjYWxsZXIgdG8gcGFzcyBs
aW1pdCBhcyBleGNsdXNpdmUgYW5kIHlvdSBjb252ZXJ0IGl0IHRvIGluY2x1c2l2ZT8gSSB0aGlu
aw0KPj4+Pj4gaXQncyBxdWl0ZSBlcnJvciBwcm9uZS4NCj4+Pj4gDQo+Pj4+IFllcyBpdOKAmXMg
bWVhbnQgdG8gYmUgdXNlZCB3aXRoIGV4Y2x1c2l2ZSByYW5nZSwgc2hhbGwgd2UgZG9jdW1lbnQg
aXQgb3IgdXNlDQo+Pj4+IEluY2x1c2l2ZSByYW5nZSBpbnN0ZWFkPw0KPj4+IFdoYXQncyB0aGUg
ZXhwZWN0ZWQgYmVoYXZpb3Igb2YgY2FsbGVycz8gQXJlIHdlIGdvaW5nIHRvIHNldCB1cCBwcm90
ZWN0aW9uDQo+Pj4gcmVnaW9uIGJhc2VkIG9uIHJlZ3VsYXIgc3RhcnQrc2l6ZSBwYWlyIChsaWtl
IHdpdGggTU1VKSBvciBzdGFydCtlbmQ/IElmIHRoZQ0KPj4+IGxhdHRlciBmb3Igc29tZSByZWFz
b24gKHdpdGggc2l6ZSB0aGVyZSBhcmUgbGVzcyBpc3N1ZXMpLCB0aGVuIGVuZCB1c3VhbGx5IGlz
DQo+Pj4gaW5jbHVzaXZlIGFuZCB5b3Ugd291bGQgbm90IG5lZWQgY29udmVyc2lvbi4NCj4+IA0K
Pj4gSSB0aGluayB3ZSBoYXZlIGEgbWl4IGJlY2F1c2UgZm9yIGV4YW1wbGUgZGVzdHJveV94ZW5f
bWFwcGluZ3MgYW5kIG1vZGlmeV94ZW5fbWFwcGluZ3MNCj4+IGFyZSBzdGFydCBhbmQgZW5kLCBt
YXBfcGFnZXNfdG9feGVuIGluc3RlYWQgaXMga2luZCBvZiBzdGFydCtzaXplPw0KPj4gDQo+PiBJ
IG1vdmVkIHRoZSAtMSBpbnNpZGUgcHJfc2V0X2xpbWl0IGJlY2F1c2UgaXQgd2FzIG9wZW4tY29k
ZWQgaW4gYWxsIHRoZSBwbGFjZXMsIGZvciBleGFtcGxlIHdoZW4NCj4+IHJlZmVyZW5jaW5nIGxp
bmtlciBzeW1ib2xzIG9yIG91dHB1dCBvZiBtZm5fdG9fbWFkZHIobWZuX2FkZChzbWZuLCBucl9t
Zm4pKSwgZm9yIHRoaXMgcmVhc29uIEkNCj4+IHRob3VnaHQ6IGxldOKAmXMgY2FsbCB0aGlzIG9u
ZSB3aXRoIGV4Y2x1c2l2ZSByYW5nZXMgYW5kIG1vZGlmeSBpbnRlcm5hbGx5IGZvciBpbmNsdXNp
dmUuDQo+IEhtbSwgeWVzLiBJbmRlZWQgd2UgaGF2ZSBhIG1peCBvZiBwbGFjZXMgd2hlcmUgZW5k
IGlzIGluY2x1c2l2ZSBvciBleGNsdXNpdmUuIEkNCj4gdGhpbmsgd2UgY2FuIHN0aWNrIHdpdGgg
ZXhjbHVzaXZlIGFkZHJlc3MgYmVpbmcgcGFzc2VkIHRvIHRoaXMgaGVscGVyIHVubGVzcw0KPiBv
dGhlcnMgaGF2ZSBhIGRpZmZlcmVudCBvcGluaW9uLiBJIGtub3cgd2UgdHJpZWQgdG8gY29udmVy
dCBzb21lIHBsYWNlcyB0bw0KPiBzdGFydCtzaXplIGJ1dCBJIGRvbid0IHJlbWVtYmVyIHRoZSBm
dXR1cmUgcGxhbnMuDQoNCk9rLCBJJ2xsIGRvY3VtZW50IG9uIHRvcCBvZiB0aGUgaGVscGVyIHRo
YXQgQGxpbWl0IG5lZWRzIHRvIGJlIGV4Y2x1c2l2ZSBqdXN0IHRvIGJlIHN1cmUgaXQgd2lsbCBi
ZSB1c2VkDQppbiB0aGlzIHdheS4NCg0KDQoNCg==


From xen-devel-bounces@lists.xenproject.org Wed Apr 16 13:20:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 13:20:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.956068.1349577 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u52gL-00035K-Go; Wed, 16 Apr 2025 13:20:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 956068.1349577; Wed, 16 Apr 2025 13:20:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u52gL-00035D-Cd; Wed, 16 Apr 2025 13:20:01 +0000
Received: by outflank-mailman (input) for mailman id 956068;
 Wed, 16 Apr 2025 13:20: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=S7a8=XC=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1u52gK-000357-5R
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 13:20:00 +0000
Received: from sender4-of-o50.zoho.com (sender4-of-o50.zoho.com
 [136.143.188.50]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7dab8dbb-1ac5-11f0-9eaf-5ba50f476ded;
 Wed, 16 Apr 2025 15:19:58 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 1744809587652866.6064373494291;
 Wed, 16 Apr 2025 06:19: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: 7dab8dbb-1ac5-11f0-9eaf-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; t=1744809591; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=h0QfuHOKE38wheAEER0Gd4u0sb6XOiM6hVXABgIbmt404az8jK//g+xvKCD6cc7cs/SQj5dEfmdhqVTx1JxKsaRKRbTrtfzq5IvcWhRZwk58n0re+F5UzDgk44p4LDLTfSjh1PzvanmRK6YYvt1XN9RtpHGAprU6eonTMWAhpSk=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1744809591; 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=Yi5yZOy0WgSeh/oDXQoDl/TLlCUzDfKzTXDHkKupCgY=; 
	b=K8nMweV107yU8aUMSbIeKI9o76Vk+faVNxT0up4XILwfZ2H+xVTT4VVVaR1A3sKB8WR5aT+eown3eJohAeqYDu2hbCGGqtE0qno5HNzxTT2b8R2F2tkR+aUPFr3QC6j1hXOyNuR92NDW4icw2Mi0X5M2Xj65a9igwSOyTjFB3lU=
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=1744809591;
	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=Yi5yZOy0WgSeh/oDXQoDl/TLlCUzDfKzTXDHkKupCgY=;
	b=cNlS3/mIQV9AyicbJPQM3Qn8HFf3Z5h/r5CzEce1HRexKqXdrh+0xLQaXmynHgFU
	VBmi4hnKKjFJmSBWiTWi0OTOiTfvoqPT9w+YxSdw7yirHdB1Pbofb5rssIDTpe+xwSg
	pocCffyyPsHOA6dv0CttvsaQlTXD0lOv410CisPc=
Message-ID: <e6bc2726-e835-4d91-bc63-0b189c4cc640@apertussolutions.com>
Date: Wed, 16 Apr 2025 09:19:46 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 11/16] x86/hyperlaunch: locate dom0 initrd with
 hyperlaunch
Content-Language: en-US
To: Alejandro Vallejo <agarciav@amd.com>, Jan Beulich <jbeulich@suse.com>
Cc: Jason Andryuk <jason.andryuk@amd.com>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Michal Orzel <michal.orzel@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: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-12-agarciav@amd.com>
 <b3018b0d-e0e8-440e-9f02-363a7bd0378f@suse.com>
 <D96IXRWYOGUM.Z5A9K2NCCBQY@amd.com> <D96JE0Q8U026.2FWWHTWUUMTPE@amd.com>
 <60363eb4-cb35-4077-b964-0c321c495a19@suse.com>
 <D9771CIVB3IR.TAKEYOHRCY30@amd.com>
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
Autocrypt: addr=dpsmith@apertussolutions.com; keydata=
 xsJuBFYrueARCACPWL3r2bCSI6TrkIE/aRzj4ksFYPzLkJbWLZGBRlv7HQLvs6i/K4y/b4fs
 JDq5eL4e9BdfdnZm/b+K+Gweyc0Px2poDWwKVTFFRgxKWq9R7McwNnvuZ4nyXJBVn7PTEn/Z
 G7D08iZg94ZsnUdeXfgYdJrqmdiWA6iX9u84ARHUtb0K4r5WpLUMcQ8PVmnv1vVrs/3Wy/Rb
 foxebZNWxgUiSx+d02e3Ad0aEIur1SYXXv71mqKwyi/40CBSHq2jk9eF6zmEhaoFi5+MMMgX
 X0i+fcBkvmT0N88W4yCtHhHQds+RDbTPLGm8NBVJb7R5zbJmuQX7ADBVuNYIU8hx3dF3AQCm
 601w0oZJ0jGOV1vXQgHqZYJGHg5wuImhzhZJCRESIwf+PJxik7TJOgBicko1hUVOxJBZxoe0
 x+/SO6tn+s8wKlR1Yxy8gYN9ZRqV2I83JsWZbBXMG1kLzV0SAfk/wq0PAppA1VzrQ3JqXg7T
 MZ3tFgxvxkYqUP11tO2vrgys+InkZAfjBVMjqXWHokyQPpihUaW0a8mr40w9Qui6DoJj7+Gg
 DtDWDZ7Zcn2hoyrypuht88rUuh1JuGYD434Q6qwQjUDlY+4lgrUxKdMD8R7JJWt38MNlTWvy
 rMVscvZUNc7gxcmnFUn41NPSKqzp4DDRbmf37Iz/fL7i01y7IGFTXaYaF3nEACyIUTr/xxi+
 MD1FVtEtJncZNkRn7WBcVFGKMAf+NEeaeQdGYQ6mGgk++i/vJZxkrC/a9ZXme7BhWRP485U5
 sXpFoGjdpMn4VlC7TFk2qsnJi3yF0pXCKVRy1ukEls8o+4PF2JiKrtkCrWCimB6jxGPIG3lk
 3SuKVS/din3RHz+7Sr1lXWFcGYDENmPd/jTwr1A1FiHrSj+u21hnJEHi8eTa9029F1KRfocp
 ig+k0zUEKmFPDabpanI323O5Tahsy7hwf2WOQwTDLvQ+eqQu40wbb6NocmCNFjtRhNZWGKJS
 b5GrGDGu/No5U6w73adighEuNcCSNBsLyUe48CE0uTO7eAL6Vd+2k28ezi6XY4Y0mgASJslb
 NwW54LzSSM0uRGFuaWVsIFAuIFNtaXRoIDxkcHNtaXRoQGFwZXJ0dXNzb2x1dGlvbnMuY29t
 PsJ6BBMRCAAiBQJWK7ngAhsjBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRBTc6WbYpR8
 KrQ9AP94+xjtFfJ8gj5c7PVx06Zv9rcmFUqQspZ5wSEkvxOuQQEAg6qEsPYegI7iByLVzNEg
 7B7fUG7pqWIfMqFwFghYhQzOwU0EViu54BAIAL6MXXNlrJ5tRUf+KMBtVz1LJQZRt/uxWrCb
 T06nZjnbp2UcceuYNbISOVHGXTzu38r55YzpkEA8eURQf+5hjtvlrOiHxvpD+Z6WcpV6rrMB
 kcAKWiZTQihW2HoGgVB3gwG9dCh+n0X5OzliAMiGK2a5iqnIZi3o0SeW6aME94bSkTkuj6/7
 OmH9KAzK8UnlhfkoMg3tXW8L6/5CGn2VyrjbB/rcrbIR4mCQ+yCUlocuOjFCJhBd10AG1IcX
 OXUa/ux+/OAV9S5mkr5Fh3kQxYCTcTRt8RY7+of9RGBk10txi94dXiU2SjPbassvagvu/hEi
 twNHms8rpkSJIeeq0/cAAwUH/jV3tXpaYubwcL2tkk5ggL9Do+/Yo2WPzXmbp8vDiJPCvSJW
 rz2NrYkd/RoX+42DGqjfu8Y04F9XehN1zZAFmCDUqBMa4tEJ7kOT1FKJTqzNVcgeKNBGcT7q
 27+wsqbAerM4A0X/F/ctjYcKwNtXck1Bmd/T8kiw2IgyeOC+cjyTOSwKJr2gCwZXGi5g+2V8
 NhJ8n72ISPnOh5KCMoAJXmCF+SYaJ6hIIFARmnuessCIGw4ylCRIU/TiXK94soilx5aCqb1z
 ke943EIUts9CmFAHt8cNPYOPRd20pPu4VFNBuT4fv9Ys0iv0XGCEP+sos7/pgJ3gV3pCOric
 p15jV4PCYQQYEQgACQUCViu54AIbDAAKCRBTc6WbYpR8Khu7AP9NJrBUn94C/3PeNbtQlEGZ
 NV46Mx5HF0P27lH3sFpNrwD/dVdZ5PCnHQYBZ287ZxVfVr4Zuxjo5yJbRjT93Hl0vMY=
In-Reply-To: <D9771CIVB3IR.TAKEYOHRCY30@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ZohoMailClient: External


On 4/15/25 07:59, Alejandro Vallejo wrote:
> On Tue Apr 15, 2025 at 7:17 AM BST, Jan Beulich wrote:
>> On 14.04.2025 19:27, Alejandro Vallejo wrote:
>>> On Mon Apr 14, 2025 at 6:06 PM BST, Alejandro Vallejo wrote:
>>>> On Thu Apr 10, 2025 at 12:34 PM BST, Jan Beulich wrote:
>>>>> On 08.04.2025 18:07, Alejandro Vallejo wrote:
>>>>>
>>>>>> +            printk("  ramdisk: boot module %d\n", idx);
>>>>>> +            bi->mods[idx].type = BOOTMOD_RAMDISK;
>>>>>> +            bd->module = &bi->mods[idx];
>>>>>
>>>>> The field's named "module" now, but that now ends up inconsistent with
>>>>> naming used elsewhere, as is pretty noticeable here.
>>>>
>>>> Well, yes. It is confusing. Also, the DTB is called multiboot,ramdisk,
>>>> because multiboot,module is already used to detect what nodes are
>>>> expressed as multiboot,modules. I'm considering going back and calling
>>>> them ramdisk again. If anything, to avoid the ambiguity between
>>>> domain modules and multiboot modules. e.g: a kernel is a multiboot
>>>> module, but not a domain module.
>>>
>>> Particularly when misc/arm/device-tree/booting.txt already states that
>>> the initrd for dom0 ought to be provided with the "multiboot,ramdisk"
>>> string in the "compatible" prop.  Deviating from that is just going to
>>> make it far more annoying to unify arm and x86 in the future.  And
>>> calling those ramdisks anything but ramdisk internally is just plain
>>> confusing (as evidenced in the current series).
>>
>> Yet the limitation of this is quite obvious: How would you express
>> multiple such items?
> 
> With multiple such nodes.
> 
>    initrd1 {
>        compatible = "multiboot,ramdisk", "multiboot,module"
>        module-idx = <2>
>    };
>    initrd2 {
>        compatible = "multiboot,ramdisk", "multiboot,module"
>        module-idx = <3>
>    };
> 
> as is done in dom0less. This is not a hypothetical, it's already
> comitted.
> 
>> Have many "ramdisk"s?
> 
> As many as I require. If I was booting Xen(dom0+initrd) on
> Xen(hyperlaunch), that'd be 2 (with Xen passed as the kernel).
> 
>> Even if some of them serve an entirely different purpose?
> 
> The purpose of a ramdisk/initrd is of no concern to the hypervisor. They are
> specially crafted blobs consumed by kernels for purposes of bootstrap.
> 
>> See how Linux has gone to tuck together multiple CPIOs, as they can
>> have only one thing called "ramdisk" (which, aiui, now no longer truly
>> is).
> 
> That's an internal Linux matter. If they need 1, we'll pass 1. We do
> need several such blobs, because some OSs do need them. Namely, Xen. And
> AFAICS we call them modules mostly because (a) Xen does not have the
> module infrastructure that Linux has, which would causes ambiguities and
> (b) is typically loaded via multiboot, which does call each blob a
> module.
> 
>>
>>> So... how frontally opposed would you be to restoring the ramdisk
>>> nomenclature? Also, for ease of rebasing future patches it'd be far
>>> nicer to go back to ramdisk rather than reinventing some new name.
>>
>> Well, I fear I wouldn't ack such a patch. If everyone else agrees
>> that "ramdisk" is the best of all names (or at least getting close),
>> I'd perhaps mumble over, but let it go in.
> 
> Ok... When I send v4 I'll do so keeping the "module" rename. Meanwhile,
> I'll try to think of some options. Calling Xen's modules and the booted
> kernel modules the same way is just way too confusing.
> 
> I take it you have the same dislike for initrd as you do for ramdisk?
> 
>>
>> (Only partly as a joke: If we dislike "module", how about "blob" or
>> some such?)
> 
> Better not. Blob makes "kernel" sound like an adjective: Kernel blob.
> 
> There might be some other suitable word. I'll think about it.

And all this confusion and mess would have been avoided if left as the 
abstract ramdisk name.

v/r,
dps


From xen-devel-bounces@lists.xenproject.org Wed Apr 16 13:33:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 13:33:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.956087.1349591 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u52t6-0007U2-Kh; Wed, 16 Apr 2025 13:33:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 956087.1349591; Wed, 16 Apr 2025 13:33:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u52t6-0007Tv-Hx; Wed, 16 Apr 2025 13:33:12 +0000
Received: by outflank-mailman (input) for mailman id 956087;
 Wed, 16 Apr 2025 13:33:11 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=S7a8=XC=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1u52t5-0007Tp-Gx
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 13:33:11 +0000
Received: from sender4-of-o50.zoho.com (sender4-of-o50.zoho.com
 [136.143.188.50]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 554aaad0-1ac7-11f0-9eaf-5ba50f476ded;
 Wed, 16 Apr 2025 15:33:09 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 1744810377862337.92117731242763;
 Wed, 16 Apr 2025 06:32:57 -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: 554aaad0-1ac7-11f0-9eaf-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; t=1744810381; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=FL5D7qpBhsOtiFRX5kOCZVQ2sZIeHJP6X9V1XnGeQ3Hapg8be2DwTpBNsAAo5ray4y2RdgLZmBwyXk9RDiRLc/i0V+BC1r4mtRhJcv43vGknwboNkgTbBQjwTA+KiHtFq6EAAMl6hvURNj+qHrGWH2s/BeTPz+C0TMGn/Rom9PU=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1744810381; 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=VAOf2e+evPb9TLpxqCwK1cQNjcRp83vyhXss99b/MSo=; 
	b=AyQUpZUuAOjDm3UcNNO1NHcjwqHUjulvud6gpAYeKd5goObntsv6n2bp+v/mhfG6uy3hTwKpt7aip8SB+End2h+J07yEpEH2zZwsfAm74EGtjdIpXBDg6rqXJyocOYOatfjGu+x877bR8ndFYmn7gF9T1HRIt7WbKjBcCZv2GyU=
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=1744810381;
	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=VAOf2e+evPb9TLpxqCwK1cQNjcRp83vyhXss99b/MSo=;
	b=fr1RemDKN1ZpmMeAi7zlR/mhjr2+fPJYl0OpUFmKMPLasC04TAz80KYx/jicwVPy
	5Nm9yVdCVkNGVqFfqsITgXkFqjEGMP2+C9zq5HbYzwfzB6+Ic5TzQHi+pA3HE83I4ex
	9PynRoDmVFvJtIXHGBFT2qXP7biHzHWW5fbUuI6k=
Message-ID: <82fe6290-ea16-4e4f-8be4-76b9b624e398@apertussolutions.com>
Date: Wed, 16 Apr 2025 09:32:56 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 13/16] x86/hyperlaunch: specify dom0 mode with device
 tree
Content-Language: en-US
To: Jan Beulich <jbeulich@suse.com>, Alejandro Vallejo <agarciav@amd.com>
Cc: Jason Andryuk <jason.andryuk@amd.com>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Michal Orzel <michal.orzel@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: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-14-agarciav@amd.com>
 <7a13e61b-8568-4852-bb46-974964e02d61@suse.com>
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
Autocrypt: addr=dpsmith@apertussolutions.com; keydata=
 xsJuBFYrueARCACPWL3r2bCSI6TrkIE/aRzj4ksFYPzLkJbWLZGBRlv7HQLvs6i/K4y/b4fs
 JDq5eL4e9BdfdnZm/b+K+Gweyc0Px2poDWwKVTFFRgxKWq9R7McwNnvuZ4nyXJBVn7PTEn/Z
 G7D08iZg94ZsnUdeXfgYdJrqmdiWA6iX9u84ARHUtb0K4r5WpLUMcQ8PVmnv1vVrs/3Wy/Rb
 foxebZNWxgUiSx+d02e3Ad0aEIur1SYXXv71mqKwyi/40CBSHq2jk9eF6zmEhaoFi5+MMMgX
 X0i+fcBkvmT0N88W4yCtHhHQds+RDbTPLGm8NBVJb7R5zbJmuQX7ADBVuNYIU8hx3dF3AQCm
 601w0oZJ0jGOV1vXQgHqZYJGHg5wuImhzhZJCRESIwf+PJxik7TJOgBicko1hUVOxJBZxoe0
 x+/SO6tn+s8wKlR1Yxy8gYN9ZRqV2I83JsWZbBXMG1kLzV0SAfk/wq0PAppA1VzrQ3JqXg7T
 MZ3tFgxvxkYqUP11tO2vrgys+InkZAfjBVMjqXWHokyQPpihUaW0a8mr40w9Qui6DoJj7+Gg
 DtDWDZ7Zcn2hoyrypuht88rUuh1JuGYD434Q6qwQjUDlY+4lgrUxKdMD8R7JJWt38MNlTWvy
 rMVscvZUNc7gxcmnFUn41NPSKqzp4DDRbmf37Iz/fL7i01y7IGFTXaYaF3nEACyIUTr/xxi+
 MD1FVtEtJncZNkRn7WBcVFGKMAf+NEeaeQdGYQ6mGgk++i/vJZxkrC/a9ZXme7BhWRP485U5
 sXpFoGjdpMn4VlC7TFk2qsnJi3yF0pXCKVRy1ukEls8o+4PF2JiKrtkCrWCimB6jxGPIG3lk
 3SuKVS/din3RHz+7Sr1lXWFcGYDENmPd/jTwr1A1FiHrSj+u21hnJEHi8eTa9029F1KRfocp
 ig+k0zUEKmFPDabpanI323O5Tahsy7hwf2WOQwTDLvQ+eqQu40wbb6NocmCNFjtRhNZWGKJS
 b5GrGDGu/No5U6w73adighEuNcCSNBsLyUe48CE0uTO7eAL6Vd+2k28ezi6XY4Y0mgASJslb
 NwW54LzSSM0uRGFuaWVsIFAuIFNtaXRoIDxkcHNtaXRoQGFwZXJ0dXNzb2x1dGlvbnMuY29t
 PsJ6BBMRCAAiBQJWK7ngAhsjBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRBTc6WbYpR8
 KrQ9AP94+xjtFfJ8gj5c7PVx06Zv9rcmFUqQspZ5wSEkvxOuQQEAg6qEsPYegI7iByLVzNEg
 7B7fUG7pqWIfMqFwFghYhQzOwU0EViu54BAIAL6MXXNlrJ5tRUf+KMBtVz1LJQZRt/uxWrCb
 T06nZjnbp2UcceuYNbISOVHGXTzu38r55YzpkEA8eURQf+5hjtvlrOiHxvpD+Z6WcpV6rrMB
 kcAKWiZTQihW2HoGgVB3gwG9dCh+n0X5OzliAMiGK2a5iqnIZi3o0SeW6aME94bSkTkuj6/7
 OmH9KAzK8UnlhfkoMg3tXW8L6/5CGn2VyrjbB/rcrbIR4mCQ+yCUlocuOjFCJhBd10AG1IcX
 OXUa/ux+/OAV9S5mkr5Fh3kQxYCTcTRt8RY7+of9RGBk10txi94dXiU2SjPbassvagvu/hEi
 twNHms8rpkSJIeeq0/cAAwUH/jV3tXpaYubwcL2tkk5ggL9Do+/Yo2WPzXmbp8vDiJPCvSJW
 rz2NrYkd/RoX+42DGqjfu8Y04F9XehN1zZAFmCDUqBMa4tEJ7kOT1FKJTqzNVcgeKNBGcT7q
 27+wsqbAerM4A0X/F/ctjYcKwNtXck1Bmd/T8kiw2IgyeOC+cjyTOSwKJr2gCwZXGi5g+2V8
 NhJ8n72ISPnOh5KCMoAJXmCF+SYaJ6hIIFARmnuessCIGw4ylCRIU/TiXK94soilx5aCqb1z
 ke943EIUts9CmFAHt8cNPYOPRd20pPu4VFNBuT4fv9Ys0iv0XGCEP+sos7/pgJ3gV3pCOric
 p15jV4PCYQQYEQgACQUCViu54AIbDAAKCRBTc6WbYpR8Khu7AP9NJrBUn94C/3PeNbtQlEGZ
 NV46Mx5HF0P27lH3sFpNrwD/dVdZ5PCnHQYBZ287ZxVfVr4Zuxjo5yJbRjT93Hl0vMY=
In-Reply-To: <7a13e61b-8568-4852-bb46-974964e02d61@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ZohoMailClient: External

On 4/10/25 07:57, Jan Beulich wrote:
> On 08.04.2025 18:07, Alejandro Vallejo wrote:
>> --- a/xen/arch/x86/domain-builder/fdt.c
>> +++ b/xen/arch/x86/domain-builder/fdt.c
>> @@ -193,6 +193,25 @@ static int __init process_domain_node(
>>               bd->domid = (domid_t)val;
>>               printk("  domid: %d\n", bd->domid);
>>           }
>> +        else if ( strncmp(prop_name, "mode", name_len) == 0 )
>> +        {
>> +            if ( fdt_prop_as_u32(prop, &bd->mode) != 0 )
>> +            {
>> +                printk("  failed processing mode for domain %s\n", 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");
>> +        }
> 
> My prior questions here remain: What's the significance of
> BUILD_MODE_ENABLE_DM when set alongside BUILD_MODE_PARAVIRT? What about
> any of the other bits being set?

 From boot-domain.h:
                                           /* On     | Off    */
#define BUILD_MODE_PARAVIRT      (1 << 0) /* PV     | PVH/HVM */
#define BUILD_MODE_ENABLE_DM     (1 << 1) /* HVM    | PVH     */

The logic says, if BUILD_MODE_PARAVIRT bit is not set, thus an HVM 
domain, check if BUILD_MODE_ENABLE_DM has been set. This is determin if 
the domain is what the toolstack differentiates as either an HVM or PVH 
domain. As you should know, there is no case of a PV domain requiring a 
backing device mode (DM) domain. IOW, BUILD_MODE_ENABLE_DM is only 
relevant to an HVM domain.

v/r,
dps



From xen-devel-bounces@lists.xenproject.org Wed Apr 16 13:33:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 13:33:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.956098.1349601 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u52tn-0007z9-0d; Wed, 16 Apr 2025 13:33:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 956098.1349601; Wed, 16 Apr 2025 13: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 1u52tm-0007z0-U7; Wed, 16 Apr 2025 13:33:54 +0000
Received: by outflank-mailman (input) for mailman id 956098;
 Wed, 16 Apr 2025 13: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=yQHX=XC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u52tl-0007nd-BW
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 13:33:53 +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 6f12525f-1ac7-11f0-9ffb-bf95429c2676;
 Wed, 16 Apr 2025 15:33:51 +0200 (CEST)
Received: by mail-wr1-x436.google.com with SMTP id
 ffacd0b85a97d-39ee682e0ddso249900f8f.1
 for <xen-devel@lists.xenproject.org>; Wed, 16 Apr 2025 06:33:51 -0700 (PDT)
Received: from [10.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-39eaf43cb29sm17148749f8f.76.2025.04.16.06.33.50
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 16 Apr 2025 06:33: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: 6f12525f-1ac7-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744810431; x=1745415231; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=SZd9tlIV0ow4F22V7CoFyY97vTWF0opytI2WGOTmgw0=;
        b=TYCHS0oUBQEypZ1lWUdK90sy0yuMwsPpZGQVA4WHB/sjT1trIDFjHxMBq5uH1UfWSU
         EAWYgq32tAefX6t4A1INdQhSoP8IRf+LAGSz/0KVC8MOuZqKdb6a9KVXWdmc4hiDibjO
         x+YERx5fb+i+uMbbzgSnSdg4Z4bQEGvqvvCfvwTIQZJscKoCEAMgykdRPTaz4ZOtLVNu
         KrB4Ledau48Cdoj4stxvq9t42pC1mS/iblpOLtFAmFj/L0FsTO5HnL4Hcd3Rksc4axRi
         +bQ8XQakO9xrayzR5yH5ySWPZ0TahGqT9NUGlMVSbh1n+6i+cmklUiYQMhDapkkMrM4Q
         XG2Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744810431; x=1745415231;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=SZd9tlIV0ow4F22V7CoFyY97vTWF0opytI2WGOTmgw0=;
        b=TRW9eZGXnXSsOA3w3lKOyqo2sOgfCosO13Nmynw0aPIuEYsLgQUBaVjc/5dOPbSpuk
         onzuUZJyP15s+ynU/VP9u5sX0P/g8WA+6BMfeYI8AiaXdwa6oQaWiquoaSPaGr/ZfD5+
         3/RbN6Ui0Im6Ssx4GTqHYi4N+uCw68j2TO3Q4B9H/g44Gte/ME+chGGLEd7+SXCy4isM
         mlyluZT7urwWCMLO7LayY6jgBXVMrBDMLcz/Im06dWSRio2LWb0zkDQnxK0p9LCHMvO5
         Ykri7/8B/HE7u6qOBkd2VmOIWuHC33FlOxqSUQVxJDlZ/mWrOm8D7RNw1N6fWzgr5gBJ
         imzQ==
X-Forwarded-Encrypted: i=1; AJvYcCXFhG6Dcel7gjGlx3ORppp/x1s78GHMzMW5NEYyhhc90xj/n/CBpQsquAMvwUCE7oiRE39OED5vbL8=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy7v70Dy7oTSkpjOuFlT7xWNaSJmndHZ/NKw60Bp9jeUsXx/ed8
	GvhuxEkwSNkgCyzU6RN/+kYq9GVgg64jF/YUIv5d3Qfm4LChHD4vdJtz4PR8xQ==
X-Gm-Gg: ASbGnctUAZtevPajO5o/tTKHvrwGuddFtaIWd/ifJUFJ3qa/K+padDbuZpx67r08thM
	OuiLXw5oeaBoP6fnrt/5OBBoqhlnOTz6SLI96B6tA8XjHFMYcITdKkojqIMCqyHC7nLmTT6Txl1
	X2sdKmv1YoDlDrKWXjrApxwuyE/u1ZEgecdFlUouWp0k6sAqjXTvjkvlIfd25lMF+8mlGdBXKvq
	FVgvGndiJg0sUPhMwauV9FIG6eKbyWIZH1fHK5H9es4CdNYqLGepvs3sssLJTHUjDAJpb3z7vI2
	+umXkkVGP87VozQ2yVNtSR090UPWgPwTJDcg+j9VV94ZOYfEd87wNUXLL/QE7iEgD4dl4AG2VlG
	JQjBiIR7OQpZc3SzavBoJf9ET5w==
X-Google-Smtp-Source: AGHT+IGNs6P2ffpVtz4TlVjy7uRdtY7HwSwhw9U99wz77oJrDnAHvwTvw8EaG75inT2Dt4VZx9oLbA==
X-Received: by 2002:a05:6000:1a8b:b0:391:4bfd:6d5 with SMTP id ffacd0b85a97d-39ee5bb1a1emr2024771f8f.52.1744810430773;
        Wed, 16 Apr 2025 06:33:50 -0700 (PDT)
Message-ID: <73c8dacd-c1d7-459e-ac18-decaa5c9c5bd@suse.com>
Date: Wed, 16 Apr 2025 15:33:49 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 01/16] x86/boot: introduce boot domain
To: "Daniel P. Smith" <dpsmith@apertussolutions.com>
Cc: Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Michal Orzel <michal.orzel@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, Alejandro Vallejo <agarciav@amd.com>,
 Jason Andryuk <jason.andryuk@amd.com>
References: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-2-agarciav@amd.com>
 <141229a0-2cd2-4886-b5e5-02c85b0ca5ab@suse.com>
 <7fa754f8-d785-45d8-b9da-de5c85bc793b@apertussolutions.com>
 <f0a14866-0f38-4f8d-8e11-993a58c7da7b@suse.com>
 <644cdc5a-b96a-4e43-ae7a-4cadda1d1084@amd.com>
 <3832bb2b-978c-4990-928c-c18a003adcf4@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: <3832bb2b-978c-4990-928c-c18a003adcf4@apertussolutions.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 16.04.2025 15:02, Daniel P. Smith wrote:
> On 4/10/25 16:56, Jason Andryuk wrote:
>> On 2025-04-10 11:01, Jan Beulich wrote:
>>> On 10.04.2025 15:09, Daniel P. Smith wrote:
>>>> On 4/9/25 02:24, Jan Beulich wrote:
>>>>> On 08.04.2025 18:07, Alejandro Vallejo wrote:
>>>>>> From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
>>>>>>
>>>>>> 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>
>>>>>
>>>>> Acked-by: Jan Beulich <jbeulich@suse.com>
>>>>
>>>> I have to object because the meaningless rename is going cause
>>>> significant pain in the rebase of the follow-on series for no improved
>>>> code clarity.
>>>
>>> Sorry, then an incremental patch undoing the rename that happened (with
>>> appropriate justification) will need proposing - the patch here has gone
>>> in already.
>>
>> Coming from a Linux background, ramdisk seemed more natural to me.  But 
>> looking at hvm_start_info, the fields are called module there.  And 
>> since we shouldn't tie this to the Linux naming, the more generic 
>> "module" name seemed fine to me.
> 
> Again, as I have stated, ramdisk is not a Linux only concept. In fact, 
> as Jan points out, initrd/initramfs are Linux specific implementations 
> of a ramdisk for which Xen doesn't even fully support. I am inclined to 
> ask the inverse of why hvm_start_info uses the name module. But that 
> aside, let's consider the fact that the field is only populated by the 
> device tree when a module type of BOOTMOD_RAMDISK is matched. And all 
> the uses of the field are when its value is stored into a local variable 
> called initrd.
> 
> Though the biggest irony is that generally obtuse abstraction are 
> routinely blocked unless there is a tangible future case. Yet none was 
> offered in the comment. Thus on that principle alone, a request for a 
> tangible future use should have been requested and provided for the 
> change to be considered.

Does it even need to be a _future_ use here? Aren't you working on
abstracting domain creation, suitable (in principle) for all architectures?
Isn't therefore a more generic name (as "module" is) preferable over a more
specific one?

Jan


From xen-devel-bounces@lists.xenproject.org Wed Apr 16 13:37:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 13:37:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.956114.1349611 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u52xH-0000B8-Ej; Wed, 16 Apr 2025 13:37:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 956114.1349611; Wed, 16 Apr 2025 13: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 1u52xH-0000B1-C1; Wed, 16 Apr 2025 13:37:31 +0000
Received: by outflank-mailman (input) for mailman id 956114;
 Wed, 16 Apr 2025 13:37: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=S7a8=XC=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1u52xG-0000Av-CA
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 13:37:30 +0000
Received: from sender4-of-o50.zoho.com (sender4-of-o50.zoho.com
 [136.143.188.50]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f0366bbe-1ac7-11f0-9eaf-5ba50f476ded;
 Wed, 16 Apr 2025 15:37:29 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 1744810641001130.79607686700945;
 Wed, 16 Apr 2025 06:37:21 -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: f0366bbe-1ac7-11f0-9eaf-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; t=1744810643; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=deO37joePuulxn2kYAJ87JUuZXAFcE2tc7xPGV08+l1b/1oVQqa0IW7cDIjEQcsJF75TjzEg7BMyE4DcvVS2Pq59nnCGFrBlBidwkdhsdC7zF13jDlwYRIe/IdNPEwseT71XYuBxfB7ARFCj13X1ryYzw7gjZn6EeEQKasbptxg=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1744810643; 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=i/U2ooxDHY4Qkp9KbKHvzle0/EIq1AJydaLvNmmzpJk=; 
	b=S/0vO3wFfUFak4ZoIEv9cHeeZqAca6NYaRorRwbw2xUxT6jE/cFER/EnaAtvSlxM6QUq1XUK/onapQdmy0OXbSoDcuxxDsrCeI+J892fGUQQDKH9KZ0r+M+MH98MVp4uMOad5tvxLdGCZWPLTwCSiB4PkO4BI3C0J5WhLj3QoSE=
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=1744810643;
	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=i/U2ooxDHY4Qkp9KbKHvzle0/EIq1AJydaLvNmmzpJk=;
	b=d5ZsdVNR0ArccifvpHc2qXJZmG1W/F+sWTrfjuIYf6bRMNd05GpvrxN8i8t5uCZp
	fTBXxpNBDvh5AcflcO1ajb9eVxwfaYoKu02/zwk+0RN7AEnZq4OqmCdo7pQfZWV4Nvm
	Fshjd/i5lTm5T1+WbjAjBEU5Su0zxnIwQQW054ro=
Message-ID: <2fe06df0-ee92-4466-a532-ff246efffdac@apertussolutions.com>
Date: Wed, 16 Apr 2025 09:37:19 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 14/16] x86/hyperlaunch: add memory parsing to domain
 config
Content-Language: en-US
To: Jan Beulich <jbeulich@suse.com>, Alejandro Vallejo <agarciav@amd.com>
Cc: Jason Andryuk <jason.andryuk@amd.com>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Michal Orzel <michal.orzel@amd.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Julien Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 xen-devel@lists.xenproject.org
References: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-15-agarciav@amd.com>
 <e78824bc-3b0a-406e-80ac-5a67b127254f@suse.com>
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
Autocrypt: addr=dpsmith@apertussolutions.com; keydata=
 xsJuBFYrueARCACPWL3r2bCSI6TrkIE/aRzj4ksFYPzLkJbWLZGBRlv7HQLvs6i/K4y/b4fs
 JDq5eL4e9BdfdnZm/b+K+Gweyc0Px2poDWwKVTFFRgxKWq9R7McwNnvuZ4nyXJBVn7PTEn/Z
 G7D08iZg94ZsnUdeXfgYdJrqmdiWA6iX9u84ARHUtb0K4r5WpLUMcQ8PVmnv1vVrs/3Wy/Rb
 foxebZNWxgUiSx+d02e3Ad0aEIur1SYXXv71mqKwyi/40CBSHq2jk9eF6zmEhaoFi5+MMMgX
 X0i+fcBkvmT0N88W4yCtHhHQds+RDbTPLGm8NBVJb7R5zbJmuQX7ADBVuNYIU8hx3dF3AQCm
 601w0oZJ0jGOV1vXQgHqZYJGHg5wuImhzhZJCRESIwf+PJxik7TJOgBicko1hUVOxJBZxoe0
 x+/SO6tn+s8wKlR1Yxy8gYN9ZRqV2I83JsWZbBXMG1kLzV0SAfk/wq0PAppA1VzrQ3JqXg7T
 MZ3tFgxvxkYqUP11tO2vrgys+InkZAfjBVMjqXWHokyQPpihUaW0a8mr40w9Qui6DoJj7+Gg
 DtDWDZ7Zcn2hoyrypuht88rUuh1JuGYD434Q6qwQjUDlY+4lgrUxKdMD8R7JJWt38MNlTWvy
 rMVscvZUNc7gxcmnFUn41NPSKqzp4DDRbmf37Iz/fL7i01y7IGFTXaYaF3nEACyIUTr/xxi+
 MD1FVtEtJncZNkRn7WBcVFGKMAf+NEeaeQdGYQ6mGgk++i/vJZxkrC/a9ZXme7BhWRP485U5
 sXpFoGjdpMn4VlC7TFk2qsnJi3yF0pXCKVRy1ukEls8o+4PF2JiKrtkCrWCimB6jxGPIG3lk
 3SuKVS/din3RHz+7Sr1lXWFcGYDENmPd/jTwr1A1FiHrSj+u21hnJEHi8eTa9029F1KRfocp
 ig+k0zUEKmFPDabpanI323O5Tahsy7hwf2WOQwTDLvQ+eqQu40wbb6NocmCNFjtRhNZWGKJS
 b5GrGDGu/No5U6w73adighEuNcCSNBsLyUe48CE0uTO7eAL6Vd+2k28ezi6XY4Y0mgASJslb
 NwW54LzSSM0uRGFuaWVsIFAuIFNtaXRoIDxkcHNtaXRoQGFwZXJ0dXNzb2x1dGlvbnMuY29t
 PsJ6BBMRCAAiBQJWK7ngAhsjBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRBTc6WbYpR8
 KrQ9AP94+xjtFfJ8gj5c7PVx06Zv9rcmFUqQspZ5wSEkvxOuQQEAg6qEsPYegI7iByLVzNEg
 7B7fUG7pqWIfMqFwFghYhQzOwU0EViu54BAIAL6MXXNlrJ5tRUf+KMBtVz1LJQZRt/uxWrCb
 T06nZjnbp2UcceuYNbISOVHGXTzu38r55YzpkEA8eURQf+5hjtvlrOiHxvpD+Z6WcpV6rrMB
 kcAKWiZTQihW2HoGgVB3gwG9dCh+n0X5OzliAMiGK2a5iqnIZi3o0SeW6aME94bSkTkuj6/7
 OmH9KAzK8UnlhfkoMg3tXW8L6/5CGn2VyrjbB/rcrbIR4mCQ+yCUlocuOjFCJhBd10AG1IcX
 OXUa/ux+/OAV9S5mkr5Fh3kQxYCTcTRt8RY7+of9RGBk10txi94dXiU2SjPbassvagvu/hEi
 twNHms8rpkSJIeeq0/cAAwUH/jV3tXpaYubwcL2tkk5ggL9Do+/Yo2WPzXmbp8vDiJPCvSJW
 rz2NrYkd/RoX+42DGqjfu8Y04F9XehN1zZAFmCDUqBMa4tEJ7kOT1FKJTqzNVcgeKNBGcT7q
 27+wsqbAerM4A0X/F/ctjYcKwNtXck1Bmd/T8kiw2IgyeOC+cjyTOSwKJr2gCwZXGi5g+2V8
 NhJ8n72ISPnOh5KCMoAJXmCF+SYaJ6hIIFARmnuessCIGw4ylCRIU/TiXK94soilx5aCqb1z
 ke943EIUts9CmFAHt8cNPYOPRd20pPu4VFNBuT4fv9Ys0iv0XGCEP+sos7/pgJ3gV3pCOric
 p15jV4PCYQQYEQgACQUCViu54AIbDAAKCRBTc6WbYpR8Khu7AP9NJrBUn94C/3PeNbtQlEGZ
 NV46Mx5HF0P27lH3sFpNrwD/dVdZ5PCnHQYBZ287ZxVfVr4Zuxjo5yJbRjT93Hl0vMY=
In-Reply-To: <e78824bc-3b0a-406e-80ac-5a67b127254f@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ZohoMailClient: External

On 4/10/25 08:03, Jan Beulich wrote:
> On 08.04.2025 18:07, Alejandro Vallejo wrote:
>> @@ -212,6 +213,39 @@ static int __init process_domain_node(
>>               else
>>                   printk("PV\n");
>>           }
>> +        else if ( strncmp(prop_name, "memory", name_len) == 0 )
>> +        {
>> +            uint64_t kb;
>> +            if ( fdt_prop_as_u64(prop, &kb) != 0 )
> 
> Nit (you know what I have to say here, and again below.)
> 
>> +            {
>> +                printk("  failed processing memory for domain %s\n", name);
>> +                return -EINVAL;
> 
> Any reason to override fdt_prop_as_u64()'s return value here?
> 

IMHO this should be a function that libfdt should provide, but altering 
libftd directly would make uprev'ing it challenging. The least I could 
do is make the function behave like the rest of libfdt's helper functions.

v/r,
dps




From xen-devel-bounces@lists.xenproject.org Wed Apr 16 13:38:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 13:38:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.956124.1349621 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u52yC-0000iq-Nc; Wed, 16 Apr 2025 13:38:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 956124.1349621; Wed, 16 Apr 2025 13: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 1u52yC-0000ij-Kk; Wed, 16 Apr 2025 13:38:28 +0000
Received: by outflank-mailman (input) for mailman id 956124;
 Wed, 16 Apr 2025 13:38: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=yQHX=XC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u52yB-0000id-Jv
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 13:38:27 +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 132bac1d-1ac8-11f0-9eaf-5ba50f476ded;
 Wed, 16 Apr 2025 15:38:26 +0200 (CEST)
Received: by mail-wr1-x42e.google.com with SMTP id
 ffacd0b85a97d-3995ff6b066so3763031f8f.3
 for <xen-devel@lists.xenproject.org>; Wed, 16 Apr 2025 06:38:26 -0700 (PDT)
Received: from [10.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-4405b4c7ef9sm21646085e9.6.2025.04.16.06.38.25
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 16 Apr 2025 06:38: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: 132bac1d-1ac8-11f0-9eaf-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744810706; x=1745415506; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=O/yjlkL7pDSN8uTe6rckIItd7b8kB8Ksy8YfQQktLxI=;
        b=Bp/iQNEedg6VCcgkOVxg1/1F29UGNWo0M2hy+x475Rugl3fP+nJEgVQs71QTmKSsSC
         msJgZJ0Ct81tZqsZZtnwMXnLEjs45GGg49zf8JA3w4LuuZz1MOTURVYWuBJoK0j/+nGK
         9awLAeJQmxQgCcQEwfNR/cXinFfA1O6gqRXd+QdLBUeT9QvC7ld8C4sJV1wYChXbuDH+
         bqBTUbdrMOYPfbrqxjzg8atIJdu5B8ILRievjWXHNvitlW6NB7/3uBprcjPE0hxfex2r
         YenLi8EP4zzD+ySGJwPezAs0mOI6i4sEHcF8g4aUsgZ0oHXih9KV9OuIzIX/o4AHopBJ
         hX0w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744810706; x=1745415506;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=O/yjlkL7pDSN8uTe6rckIItd7b8kB8Ksy8YfQQktLxI=;
        b=e2TaY0FBvW7rkpxWJ3pzB1li7u9BFtFaYNW1tTWg6nQE2/DqxOsdWOtSfS/4ZEjWag
         ZFpR3WWJulgqn4en9UH64kuvDxDDY1m5UMEDw5fnmZR6MhVU8D+ZLwepqA8ChZxombZs
         LWh6XnnByMFs6BCedxCAd3e9hJgPiIZfLEGKRReNcxqlm6beavHRWRbBpyaCOCHzy4Iq
         Zg2teh4BpEuol7yT4Zg3PEPMR7/dRQhZRluWC7Zks+1kbx/h6fAcJPpKtG7yAolaABRc
         CdldDWdc1WusHoUmSZml+HWC9sFe92N9LeLYdGyYLMsj1bfOUyWGO674xwz2kI2RzmaB
         IM6w==
X-Forwarded-Encrypted: i=1; AJvYcCVJDRvCZ0/riEYcQn1xOmXuSDG+S6KfVKurAsNBCTnKGglOb+MfprHsSeMiDC5ejvceXUtvG5LZxsc=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx2sUE/1MACxm5Ho3l3pzvdek7VseVdk2t4IhnmwyjXeFG5gGLT
	TvvxY7uuuQUavqPtZ/Lr6xZEIFDujXgJnjot0KG65TMagiXvlUox6B3thp5iEg==
X-Gm-Gg: ASbGncvYGOv44wbH8y5/vTU7Ti3KljI0V9M5WvYYU426XP2WYBnfV90a1/Hl3Z++KTA
	8T5QodQsbSGRyZMRnG1BEdr8u8vrOh8YmPZ76JIlMkUqLMMvsYOogGM5h4ndQohMxFExQ1vfuN1
	5WDTBmBuKL+yjwjQlIvwvIozJ2KGJae1jkvPt1V8dvZEO7kr4Fst0VYmfT0ymvWnPE/YGjvbsMv
	oeAhMHEa9iiYG3+I1NDAUIVw+YBYzt/UdYjDwTr6EwDKgDktqwr9Dj9IAmMUPbMQi1G3retAPDg
	XnB2K9ydnim84dd+BsrfNYVy1rzP/xQYrkzLp5mlE1z7EXhGlZV2bzHMEAnKEYo+UH5N/Mt+OVR
	BLed6klXXxU9fA5Pj5zXwjk4/uA==
X-Google-Smtp-Source: AGHT+IGujm57Euq/jeOoRRZy9/sLzRzs5WaMEvmuhYVclfpveYWHli68XHTta9UB+X99WtjuXSn/Jg==
X-Received: by 2002:a5d:598e:0:b0:391:1222:b444 with SMTP id ffacd0b85a97d-39ee5b17cdbmr1883064f8f.20.1744810706096;
        Wed, 16 Apr 2025 06:38:26 -0700 (PDT)
Message-ID: <c9290102-d29d-4c54-9052-995e960e4ea0@suse.com>
Date: Wed, 16 Apr 2025 15:38:24 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 13/16] x86/hyperlaunch: specify dom0 mode with device
 tree
To: "Daniel P. Smith" <dpsmith@apertussolutions.com>
Cc: Jason Andryuk <jason.andryuk@amd.com>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Michal Orzel <michal.orzel@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, Alejandro Vallejo <agarciav@amd.com>
References: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-14-agarciav@amd.com>
 <7a13e61b-8568-4852-bb46-974964e02d61@suse.com>
 <82fe6290-ea16-4e4f-8be4-76b9b624e398@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: <82fe6290-ea16-4e4f-8be4-76b9b624e398@apertussolutions.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 16.04.2025 15:32, Daniel P. Smith wrote:
> On 4/10/25 07:57, Jan Beulich wrote:
>> On 08.04.2025 18:07, Alejandro Vallejo wrote:
>>> --- a/xen/arch/x86/domain-builder/fdt.c
>>> +++ b/xen/arch/x86/domain-builder/fdt.c
>>> @@ -193,6 +193,25 @@ static int __init process_domain_node(
>>>               bd->domid = (domid_t)val;
>>>               printk("  domid: %d\n", bd->domid);
>>>           }
>>> +        else if ( strncmp(prop_name, "mode", name_len) == 0 )
>>> +        {
>>> +            if ( fdt_prop_as_u32(prop, &bd->mode) != 0 )
>>> +            {
>>> +                printk("  failed processing mode for domain %s\n", 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");
>>> +        }
>>
>> My prior questions here remain: What's the significance of
>> BUILD_MODE_ENABLE_DM when set alongside BUILD_MODE_PARAVIRT? What about
>> any of the other bits being set?
> 
>  From boot-domain.h:
>                                            /* On     | Off    */
> #define BUILD_MODE_PARAVIRT      (1 << 0) /* PV     | PVH/HVM */
> #define BUILD_MODE_ENABLE_DM     (1 << 1) /* HVM    | PVH     */
> 
> The logic says, if BUILD_MODE_PARAVIRT bit is not set, thus an HVM 
> domain, check if BUILD_MODE_ENABLE_DM has been set. This is determin if 
> the domain is what the toolstack differentiates as either an HVM or PVH 
> domain. As you should know, there is no case of a PV domain requiring a 
> backing device mode (DM) domain. IOW, BUILD_MODE_ENABLE_DM is only 
> relevant to an HVM domain.

And hence should (my conclusion) never be set for a PV one.

Except - how wide or narrow do you mean "DM"? There are certainly cases
where a PV guest requires a qemu to serve as backend for one or more
devices. That's not what "DM" originally meant, but it goes in that
direction. Hence just to avoid such an ambiguity I think it's better to
properly reject any flags / flag combinations that we can't make sense
of.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Apr 16 13:41:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 13:41:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.956137.1349632 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u530k-0002bU-4J; Wed, 16 Apr 2025 13:41:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 956137.1349632; Wed, 16 Apr 2025 13:41:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u530k-0002bN-0J; Wed, 16 Apr 2025 13:41:06 +0000
Received: by outflank-mailman (input) for mailman id 956137;
 Wed, 16 Apr 2025 13:41: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=yQHX=XC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u530i-0002Zo-Ff
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 13:41:04 +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 700fb9d2-1ac8-11f0-9ffb-bf95429c2676;
 Wed, 16 Apr 2025 15:41:02 +0200 (CEST)
Received: by mail-wr1-x436.google.com with SMTP id
 ffacd0b85a97d-39c266c1389so4756893f8f.1
 for <xen-devel@lists.xenproject.org>; Wed, 16 Apr 2025 06:41:02 -0700 (PDT)
Received: from [10.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-39eae96c102sm17344592f8f.35.2025.04.16.06.41.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 16 Apr 2025 06:41:01 -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: 700fb9d2-1ac8-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744810862; x=1745415662; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=9UNDj2N3ABKPhWPzqwVQhyl5tSbX4LoPnVF3aIWatIE=;
        b=TIjTI2jKXiRMaK9GW+sf0h2C2CXaAH9MI+MfyyO4TzyfJCSqw+AzgnQZIOvHEcBHbS
         NPnVeD+QFyX0sczV5QN2/YNoVGMdeknbD0i634/4uFfyx3iNjqKWYQTcKga/tdrvAInd
         I/EvYvvy8Q9t/VMQdc7/M+rYOQXwqyoxq4YtJjJdt53Bo2Bqq9+2kOXYviVrXZF9bdwD
         E6QT4PoOFUhP03wHDd+3BT8Bu9ngQGbGeHZyEuGwBpjEPmXKV3rU/xo6WV40X4w4fNHe
         W54Je8vZG46z7I4Y7MxNJ6HEgPte36L1XaXffsl7rgb5BT5yPv/aTodizDSKK45MEsI2
         Ahxw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744810862; x=1745415662;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=9UNDj2N3ABKPhWPzqwVQhyl5tSbX4LoPnVF3aIWatIE=;
        b=HzMHmqpWT0wesUiHRDEkBkqEg6KhFsN3dt7pzbWav5jAjZNHDlouDQMumWOgs7zjU7
         bQwWph/IDqLuYvINzK1anWDNn077C/kw1ZAWPITUcO/Q3+oWI7xGtJlYcSy7KQ4L5jl0
         964r1SwqJLwbWBgR4dPGmqJntiLINvWTRti22m4pVcpS5OI6rISxef8LjLH6SKyoKH/r
         MAjaGT5CiiUmJYIzbKumnNlcWSFbJOuzM8g2ICfcT8a05PYEKoJg+nZ5KIqKYXLBt2y9
         NTBOd62+ItuHtjBl6nlJP/eFiZHNpkDnmwbsGwPQVnmW5BQZFPNVRwqADz4hFI3mr4MR
         pNZQ==
X-Forwarded-Encrypted: i=1; AJvYcCXh46pPGHSjQ3QwbWtNAh0JO6jfoqM4JTvj8CaqmN3tjDv6gU50r2NwSyqtNRwwrS86R1QtGSaTtkk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyjliGfE9WqNlCdIRPSzQ2DK9xxJuUbkBsFmnoW7iF9cF0eO95s
	QhBfXQ8R7h5IZHnLOrdL7StnKpo2UlQxSJCoHeEZJkR/K+VhmFIVMrciNsb+ig==
X-Gm-Gg: ASbGncuEbWvajj3h+SxvVvQXDQEufPSTqVSwf02D0ZirRw9WJ490zXMqIytNDmUZo/C
	gF8kckf8V7XJoulqEq6bzKZAdLTB25rSFihjeFEkWfKibtOh1BWP3dWaT+gFz/koC7Lq7GTrJos
	YNYczeHMVzIu2/wWrlTzuGkSiUI51e3NHIFWvdX2tOKzBHzgNV6RF8+XWldfSWoMRNHj+ix/iPu
	M4TTrE1pMZwlq637P6Nsvh8f7HysOW60qMf4Qe7RVxzHjC5zwTX97iKLh7bcK/KE5QvZVu8Jjnl
	qoOUp0iqdxa5/YQw5bxHmfxpNJ9N4L3JhwrIZqzZ7BUYmYy7Od8xvmAhsJy5rItDSpktL+IGIbd
	O1PPZfHNFNKngAvH7ixTKOPAMrJqTI2Kyc+UV
X-Google-Smtp-Source: AGHT+IFknJCgvLe6wVs/np9N2Tu2PXZjFz0sh43WnwtrUZca6TvW5BKM9FIgKBKbhTGoEQzwtND7NA==
X-Received: by 2002:a05:6000:2510:b0:39e:cbd2:9ad2 with SMTP id ffacd0b85a97d-39ee5b13b95mr1556281f8f.4.1744810861961;
        Wed, 16 Apr 2025 06:41:01 -0700 (PDT)
Message-ID: <1c12c10f-02e3-4b12-a890-205d3fa0ca39@suse.com>
Date: Wed, 16 Apr 2025 15:41:00 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 14/16] x86/hyperlaunch: add memory parsing to domain
 config
To: "Daniel P. Smith" <dpsmith@apertussolutions.com>
Cc: Jason Andryuk <jason.andryuk@amd.com>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Michal Orzel <michal.orzel@amd.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Julien Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 xen-devel@lists.xenproject.org, Alejandro Vallejo <agarciav@amd.com>
References: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-15-agarciav@amd.com>
 <e78824bc-3b0a-406e-80ac-5a67b127254f@suse.com>
 <2fe06df0-ee92-4466-a532-ff246efffdac@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: <2fe06df0-ee92-4466-a532-ff246efffdac@apertussolutions.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 16.04.2025 15:37, Daniel P. Smith wrote:
> On 4/10/25 08:03, Jan Beulich wrote:
>> On 08.04.2025 18:07, Alejandro Vallejo wrote:
>>> @@ -212,6 +213,39 @@ static int __init process_domain_node(
>>>               else
>>>                   printk("PV\n");
>>>           }
>>> +        else if ( strncmp(prop_name, "memory", name_len) == 0 )
>>> +        {
>>> +            uint64_t kb;
>>> +            if ( fdt_prop_as_u64(prop, &kb) != 0 )
>>
>> Nit (you know what I have to say here, and again below.)
>>
>>> +            {
>>> +                printk("  failed processing memory for domain %s\n", name);
>>> +                return -EINVAL;
>>
>> Any reason to override fdt_prop_as_u64()'s return value here?
> 
> IMHO this should be a function that libfdt should provide, but altering 
> libftd directly would make uprev'ing it challenging. The least I could 
> do is make the function behave like the rest of libfdt's helper functions.

How's this related to the question that I raised? I didn't question the
function, but a particular aspect of the specific use that is being made
of it here.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Apr 16 13:42:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 13:42:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.956151.1349641 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5321-0003f6-IT; Wed, 16 Apr 2025 13:42:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 956151.1349641; Wed, 16 Apr 2025 13: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 1u5321-0003ez-Da; Wed, 16 Apr 2025 13:42:25 +0000
Received: by outflank-mailman (input) for mailman id 956151;
 Wed, 16 Apr 2025 13:42: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=S7a8=XC=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1u5320-0003er-8Z
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 13:42:24 +0000
Received: from sender4-of-o50.zoho.com (sender4-of-o50.zoho.com
 [136.143.188.50]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9f4f2573-1ac8-11f0-9eaf-5ba50f476ded;
 Wed, 16 Apr 2025 15:42:23 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 1744810933789804.2677586040728;
 Wed, 16 Apr 2025 06:42:13 -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: 9f4f2573-1ac8-11f0-9eaf-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; t=1744810937; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=PufVnEUYDqXm25HpzejKoYyVXRF1ZxsHdzEgGRVHA0uSJxlwduUeMI1z2i9baU70eBUiAzkFVsS09qBzTsZBhInQ3Tt3ZqD1IUcEjbCRiT223J20gen0wKMO7ZwxmNln8Seb8r2ZX1WQd7TFHfT181howi2RVYyctZuftBu0Kt4=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1744810937; 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=6iAo/Y4/j0+rr7AJ2gK12mUB5auIrBLkG1obeLFHd50=; 
	b=nflARBpdPtl0YjTnOI58OWYV/DeiGN+CzIqcnU7u2P6f9VEhAnX9wu+xB+gbzkLUDDTq2J9RGXy00LEZdi8POwAIMtTQJGi8OaLhjvipV1xs6qL5Uk1Y4zvugjzK57UNOoa7AXIB2xvEg9n3DvdZfiAXMa+lNzjZOOqMop6XGPA=
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=1744810937;
	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=6iAo/Y4/j0+rr7AJ2gK12mUB5auIrBLkG1obeLFHd50=;
	b=aMMnOkohBNtF5MPJV9QIIRN72S06bKLrZefOf3r9M6TSGvuPbin3HE3mHZ4BdCxQ
	IEIyD9g3pjbzZGn9EecqMKyre7Pwk58y/vF7AAJyPcrILSZMgnv8tRCRbTjYZQyqeSJ
	PUun1krki0fLWiKmT+GYkLyVmzml5bkSC1YuXIzQ=
Message-ID: <5a674e65-77bc-4d07-a4e3-2fa2c96bb37e@apertussolutions.com>
Date: Wed, 16 Apr 2025 09:42:12 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 15/16] x86/hyperlaunch: add max vcpu parsing of
 hyperlaunch device tree
Content-Language: en-US
To: Jan Beulich <jbeulich@suse.com>, Alejandro Vallejo <agarciav@amd.com>
Cc: Jason Andryuk <jason.andryuk@amd.com>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Michal Orzel <michal.orzel@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: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-16-agarciav@amd.com>
 <c1e5af91-8f84-458d-a9b8-ab9758b5cbce@suse.com>
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
Autocrypt: addr=dpsmith@apertussolutions.com; keydata=
 xsJuBFYrueARCACPWL3r2bCSI6TrkIE/aRzj4ksFYPzLkJbWLZGBRlv7HQLvs6i/K4y/b4fs
 JDq5eL4e9BdfdnZm/b+K+Gweyc0Px2poDWwKVTFFRgxKWq9R7McwNnvuZ4nyXJBVn7PTEn/Z
 G7D08iZg94ZsnUdeXfgYdJrqmdiWA6iX9u84ARHUtb0K4r5WpLUMcQ8PVmnv1vVrs/3Wy/Rb
 foxebZNWxgUiSx+d02e3Ad0aEIur1SYXXv71mqKwyi/40CBSHq2jk9eF6zmEhaoFi5+MMMgX
 X0i+fcBkvmT0N88W4yCtHhHQds+RDbTPLGm8NBVJb7R5zbJmuQX7ADBVuNYIU8hx3dF3AQCm
 601w0oZJ0jGOV1vXQgHqZYJGHg5wuImhzhZJCRESIwf+PJxik7TJOgBicko1hUVOxJBZxoe0
 x+/SO6tn+s8wKlR1Yxy8gYN9ZRqV2I83JsWZbBXMG1kLzV0SAfk/wq0PAppA1VzrQ3JqXg7T
 MZ3tFgxvxkYqUP11tO2vrgys+InkZAfjBVMjqXWHokyQPpihUaW0a8mr40w9Qui6DoJj7+Gg
 DtDWDZ7Zcn2hoyrypuht88rUuh1JuGYD434Q6qwQjUDlY+4lgrUxKdMD8R7JJWt38MNlTWvy
 rMVscvZUNc7gxcmnFUn41NPSKqzp4DDRbmf37Iz/fL7i01y7IGFTXaYaF3nEACyIUTr/xxi+
 MD1FVtEtJncZNkRn7WBcVFGKMAf+NEeaeQdGYQ6mGgk++i/vJZxkrC/a9ZXme7BhWRP485U5
 sXpFoGjdpMn4VlC7TFk2qsnJi3yF0pXCKVRy1ukEls8o+4PF2JiKrtkCrWCimB6jxGPIG3lk
 3SuKVS/din3RHz+7Sr1lXWFcGYDENmPd/jTwr1A1FiHrSj+u21hnJEHi8eTa9029F1KRfocp
 ig+k0zUEKmFPDabpanI323O5Tahsy7hwf2WOQwTDLvQ+eqQu40wbb6NocmCNFjtRhNZWGKJS
 b5GrGDGu/No5U6w73adighEuNcCSNBsLyUe48CE0uTO7eAL6Vd+2k28ezi6XY4Y0mgASJslb
 NwW54LzSSM0uRGFuaWVsIFAuIFNtaXRoIDxkcHNtaXRoQGFwZXJ0dXNzb2x1dGlvbnMuY29t
 PsJ6BBMRCAAiBQJWK7ngAhsjBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRBTc6WbYpR8
 KrQ9AP94+xjtFfJ8gj5c7PVx06Zv9rcmFUqQspZ5wSEkvxOuQQEAg6qEsPYegI7iByLVzNEg
 7B7fUG7pqWIfMqFwFghYhQzOwU0EViu54BAIAL6MXXNlrJ5tRUf+KMBtVz1LJQZRt/uxWrCb
 T06nZjnbp2UcceuYNbISOVHGXTzu38r55YzpkEA8eURQf+5hjtvlrOiHxvpD+Z6WcpV6rrMB
 kcAKWiZTQihW2HoGgVB3gwG9dCh+n0X5OzliAMiGK2a5iqnIZi3o0SeW6aME94bSkTkuj6/7
 OmH9KAzK8UnlhfkoMg3tXW8L6/5CGn2VyrjbB/rcrbIR4mCQ+yCUlocuOjFCJhBd10AG1IcX
 OXUa/ux+/OAV9S5mkr5Fh3kQxYCTcTRt8RY7+of9RGBk10txi94dXiU2SjPbassvagvu/hEi
 twNHms8rpkSJIeeq0/cAAwUH/jV3tXpaYubwcL2tkk5ggL9Do+/Yo2WPzXmbp8vDiJPCvSJW
 rz2NrYkd/RoX+42DGqjfu8Y04F9XehN1zZAFmCDUqBMa4tEJ7kOT1FKJTqzNVcgeKNBGcT7q
 27+wsqbAerM4A0X/F/ctjYcKwNtXck1Bmd/T8kiw2IgyeOC+cjyTOSwKJr2gCwZXGi5g+2V8
 NhJ8n72ISPnOh5KCMoAJXmCF+SYaJ6hIIFARmnuessCIGw4ylCRIU/TiXK94soilx5aCqb1z
 ke943EIUts9CmFAHt8cNPYOPRd20pPu4VFNBuT4fv9Ys0iv0XGCEP+sos7/pgJ3gV3pCOric
 p15jV4PCYQQYEQgACQUCViu54AIbDAAKCRBTc6WbYpR8Khu7AP9NJrBUn94C/3PeNbtQlEGZ
 NV46Mx5HF0P27lH3sFpNrwD/dVdZ5PCnHQYBZ287ZxVfVr4Zuxjo5yJbRjT93Hl0vMY=
In-Reply-To: <c1e5af91-8f84-458d-a9b8-ab9758b5cbce@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ZohoMailClient: External


On 4/10/25 08:08, Jan Beulich wrote:
> On 08.04.2025 18:07, Alejandro Vallejo wrote:
>> From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
>>
>> 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
> 
> Nit: vcpus

I agree with you here, the issue is that it was requested that we keep 
this field in line with Arm's DT, and they unfortunately used `cpus` to 
specify the vcpu allocation.

>> --- a/xen/arch/x86/domain-builder/fdt.c
>> +++ b/xen/arch/x86/domain-builder/fdt.c
>> @@ -246,6 +246,17 @@ static int __init process_domain_node(
>>               bd->max_pages = PFN_DOWN(kb * SZ_1K);
>>               printk("  max memory: %ld kb\n", kb);
>>           }
>> +        else if ( strncmp(prop_name, "cpus", name_len) == 0 )
>> +        {
>> +            uint32_t val = UINT_MAX;
>> +            if ( fdt_prop_as_u32(prop, &val) != 0 )
> 
> And again the same nit.
> 
>> +            {
>> +                printk("  failed processing max_vcpus for domain %s\n", name);
> 
> There's no "max_vcpus" being processed here; that purely ...
> 
>> +                return -EINVAL;
>> +            }
>> +            bd->max_vcpus = val;
> 
> ... the internal name we use for the struct field etc. The user observing the
> message ought to be able to easily associate it back with the DT item.
> 
> Jan



From xen-devel-bounces@lists.xenproject.org Wed Apr 16 13:44:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 13:44:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.956165.1349651 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u534H-0004EG-SF; Wed, 16 Apr 2025 13:44:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 956165.1349651; Wed, 16 Apr 2025 13:44: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 1u534H-0004E9-PL; Wed, 16 Apr 2025 13:44:45 +0000
Received: by outflank-mailman (input) for mailman id 956165;
 Wed, 16 Apr 2025 13:44: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=yQHX=XC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u534G-0004E1-J2
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 13:44:44 +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 f32781db-1ac8-11f0-9ffb-bf95429c2676;
 Wed, 16 Apr 2025 15:44:42 +0200 (CEST)
Received: by mail-wr1-x429.google.com with SMTP id
 ffacd0b85a97d-3995ff6b066so3770119f8f.3
 for <xen-devel@lists.xenproject.org>; Wed, 16 Apr 2025 06:44:42 -0700 (PDT)
Received: from [10.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-4405b5a98c3sm21248175e9.38.2025.04.16.06.44.40
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 16 Apr 2025 06:44: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: f32781db-1ac8-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744811082; x=1745415882; 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=RgT/jigPVbrf9+jjKoqLzjywt4b2xWEJhEWDyTrJeWU=;
        b=akakL/Trzktqpnnt7nyQ4JDQtAeyS4HOuTAvhblbhFawbXqvrMxztv8ZtDPel+3zHb
         j+6zIUAkW3IkgiWVd7JZtt890KlXZKhAZ44HWw0JB3m7AaJzWFQcxtojk0leD9jIiYib
         1XC2JKOHf/x+z4PaRjPS3OKoDfO7A9VQbh9jFCdyhxD/S3d3wKqZTTREtIwjL1l2Qx4b
         E24R0+qMEyspCBH59oJ3OlGgfaQm/niJOx+eBUaYoEtJBFc4pzFU2aIS/h3CHNYezcQj
         h0r9xQB67tugxRCDEY6xIwjQGQvvegcWsvBM9BOArMGirVTwZUqwjqc5xZnI8TqIVOkl
         xfDg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744811082; x=1745415882;
        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=RgT/jigPVbrf9+jjKoqLzjywt4b2xWEJhEWDyTrJeWU=;
        b=mtLJ6ivC7A9dFpXr3f7uwFnnpMWcRQaXHVqJeKQV7TlbcRxE7E6Ch+3L2eckpAb/ZD
         01hMebU3LOnWqXCZx0Z3IZjtJzrSeJYKWJq7Trgysi/RQU6jTtfkBTAzPbd6WOB2Svlq
         iAJBSsriboP9JCUFaJiaQNqi8ZK6/URg6RMwyrIfjvZPmcDx5tAQGkAH+xz3omVloHCI
         /sjn7KW4LCbRFBxt1kErfmmd+ee5Rrrq27k6TX9sBb2tWgSDgD7BEoH7ZcNcocKqeFJ2
         ptUk/pg2tw3GNMLf41K+BoVDeXW1PdwNi2FtwtQaYrpr5Omw/0pRI7QIBVRrZt2rLD02
         Gv7w==
X-Gm-Message-State: AOJu0YxBiyoTOTSm9wku4cHwBoTkX5n69f/sTZMI94TkJBTdjbzSZLuQ
	nRmhJ+bWS74zpGR820yWFkJNm/Mcbw1F4rju/EarAscVH1at2bhueEP3oP4FwIH0DMjqIqEmNS4
	=
X-Gm-Gg: ASbGnctzNBHg26ahdLEkm+dccTDVTXsJMVcmJx8MdcFFIcBBY/p4eqteeWwA1N46vA6
	W0FCQirpJvmr3Tnsj/itvQzc8nBIHYALiqOZf04diX85qOzUEmNgzCSkMPNmV7G4aE6WMs8sB0o
	A0Qxbw5pm0okFKFZGK2RGw2xEXgyplhdVeeKAVP+S8AijCHBnrPo1JkLwef7YvWiAV+y21nm3jP
	QiHPqqZTTFE2rP6c359y4HAvi+RSaqp/9ghVPkzSBCrsntk7QWOnwgufDASGFS7O7yxArzpKyI2
	I7BnVcytnZnH/ETN7KCsNln4L0fEBPHW6vwGeK5P6z+i6QtHAmnjUwgcF3tSlLe730TH03JRO8+
	VdiWmIlvxNwAttO0ngr/VeiVwMQ==
X-Google-Smtp-Source: AGHT+IF8jjDY9CdAEwKdwUT9DLwgbtmU8pErAjV8I2MfFVy7lHxzSQfVYkqs16zn+zwfu2EIyYFzKQ==
X-Received: by 2002:a05:6000:40dc:b0:397:3900:ef80 with SMTP id ffacd0b85a97d-39ee5b16f89mr1754056f8f.22.1744811080972;
        Wed, 16 Apr 2025 06:44:40 -0700 (PDT)
Message-ID: <793580d3-3fd8-4715-8a34-bf9965dd5938@suse.com>
Date: Wed, 16 Apr 2025 15:44:39 +0200
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>,
 Manuel Andreas <manuel.andreas@tum.de>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH] x86/HVM: update repeat count upon nested lin->phys failure
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+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

For the X86EMUL_EXCEPTION case the repeat count must be correctly
propagated back. Since for the recursive invocation we use a local
helper variable, its value needs copying to the caller's one.

While there also correct the off-by-1 range in the comment ahead of the
function (strictly speaking for the "DF set" case we'd need to put
another, different range there as well).

Fixes: 53f87c03b4ea ("x86emul: generalize exception handling for rep_* hooks")
Reported-by: Manuel Andreas <manuel.andreas@tum.de>
Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/xen/arch/x86/hvm/emulate.c
+++ b/xen/arch/x86/hvm/emulate.c
@@ -825,7 +825,7 @@ static void hvmemul_unmap_linear_addr(
 
 /*
  * Convert addr from linear to physical form, valid over the range
- * [addr, addr + *reps * bytes_per_rep]. *reps is adjusted according to
+ * [addr, addr + *reps * bytes_per_rep). *reps is adjusted according to
  * the valid computed range. It is always >0 when X86EMUL_OKAY is returned.
  * @pfec indicates the access checks to be performed during page-table walks.
  */
@@ -865,7 +865,10 @@ static int hvmemul_linear_to_phys(
         int rc = hvmemul_linear_to_phys(
             addr, &_paddr, bytes_per_rep, &one_rep, pfec, hvmemul_ctxt);
         if ( rc != X86EMUL_OKAY )
+        {
+            *reps = one_rep;
             return rc;
+        }
         pfn = _paddr >> PAGE_SHIFT;
     }
     else if ( (pfn = paging_gva_to_gfn(curr, addr, &pfec)) == gfn_x(INVALID_GFN) )


From xen-devel-bounces@lists.xenproject.org Wed Apr 16 13:53:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 13:53:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.956178.1349660 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u53CG-0006b9-Ij; Wed, 16 Apr 2025 13:53:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 956178.1349660; Wed, 16 Apr 2025 13:53: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 1u53CG-0006b2-Fl; Wed, 16 Apr 2025 13:53:00 +0000
Received: by outflank-mailman (input) for mailman id 956178;
 Wed, 16 Apr 2025 13:52: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=yQHX=XC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u53CF-0006at-4d
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 13:52:59 +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 19fde73d-1aca-11f0-9ffb-bf95429c2676;
 Wed, 16 Apr 2025 15:52:57 +0200 (CEST)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-43cfecdd8b2so55547885e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 16 Apr 2025 06:52:57 -0700 (PDT)
Received: from [10.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-39eae96c102sm17374366f8f.35.2025.04.16.06.52.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 16 Apr 2025 06:52:56 -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: 19fde73d-1aca-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744811576; x=1745416376; 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=2SZh3kBBWxDwGsa5xAebvI5A8C1nD2fROmU1nZP71aI=;
        b=fDIept6AYvr4m/7iDRsCWFBSWBRbxRQcYxcusEn6TaqPDoQCGPlSvndZvZFGyPby6w
         zTetLwoTMZwBKisyNd8zr8jhI3cQNLuasV/7R0Mi/Gmsu6cLPeZzX9VCuTzUTt8NqGQs
         /mVmPLg5Rv878V/vwiFT0QCkgvjuYYGXjD5OvR+wQuAo/3IM6CP3/JuJVChZUPpUKjzo
         0Djl1yEvCUt3e9r/uy/JC7eGBdxJp0uTT1l3G/wT8dI5nCYaXZGGktR9vAkkvvUG+a/E
         2vjs0cohTw+7JEJ+sIHDcrDaRPTGKhP7kcHcSn6a8vssqO2Hkfo1ujoYfE826hngvP+l
         qfNQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744811576; x=1745416376;
        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=2SZh3kBBWxDwGsa5xAebvI5A8C1nD2fROmU1nZP71aI=;
        b=eQmrye54dM7bZpb+W9PN8brLQldZUC64uwrzgwrbYnZAN+FkQDBNZoVQpJikPWmpKk
         kCgpzGcI4lvriI2GaTlcfiwxvpnFTT4rMLe7NOFXvRBLiY3SHFXTHQlGPvnKPrO0NWyk
         4Iv9dch29flmLk6Z86iDiMYtIRsaUeMK58OJye86aCqeB9SFZaiGFy3Y4mODQfQpyT9w
         eB2HIeVmQlNZSdwWCk2E0szMiPC8+EWn2ZGgOOxq/dJRp0XV+7DDWXX2DbiwPbed0CfK
         6vO3ZEm29AgxfNfIiy5BYb0AB30zcS1ZdvxVCY3oYm1QtpZ+tRGdYuOx4ZycTX6EjWYL
         hNQg==
X-Gm-Message-State: AOJu0YyLFMajOudiDbodS3zMHTYTwA3kA3t3apXofpLiolgwUZx5ri3t
	Dv4HMwJZzjytObeX1bgrBsvbl9rHNhaoHW2+f7ciUL9bvHwfutlh8MqO70E3ZA==
X-Gm-Gg: ASbGncuFyhB5SrahteadqBhCVO1zqTCnd0wVGdyoneEfRbfL7pE55t0wSCjFzgPHk5S
	56FQ5PWjzsYDQuNa4rf4OMRZKxzR3Ar+RsBTqwu4HP0HBlQCbEfae4U4eUuva+iCKJZr4neipS3
	iiHehCzula7AonWzn8I9p2t0962uQ0165vzNbVWNz5gh2/7NkrMnxCe0I/zMvOhtgSOKYzaOcF2
	Y1HMGBW4rVTrnyiUKxUkH4KQJWyuMyDzrENfxPGsWgo1DzxDT6+80XeNixlGETjvgs4WiUDT08I
	2MpZXYuPkZ5gqPnljM06euYNAXg2jkUBf5Ei+TEVuyEQaDq0ceIraGIPJj/VwxlXHrBzDIVZESx
	pbnzns1AFAu7fCgAFsOOlx1AsEDOfFBjqFIcR
X-Google-Smtp-Source: AGHT+IHnIUEvAguW6tieAVGMMqRXyNC7pbF2aYxl2avsJTrBKaTh/T3KFAQJZIwmpmJR+zGgs4Vy8A==
X-Received: by 2002:a05:600c:5109:b0:43d:47b7:b32d with SMTP id 5b1f17b1804b1-4405d6aa843mr16841885e9.25.1744811576568;
        Wed, 16 Apr 2025 06:52:56 -0700 (PDT)
Message-ID: <26f9b5dd-2201-4dd7-bf26-863a9b114b62@suse.com>
Date: Wed, 16 Apr 2025 15:52:55 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Assert in x86_emulate_wrapper triggerable by HVM domain
To: Manuel Andreas <manuel.andreas@tum.de>
References: <e7347061-6dc6-44a3-ad41-270e705db2c5@tum.de>
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: <e7347061-6dc6-44a3-ad41-270e705db2c5@tum.de>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 15.04.2025 23:52, Manuel Andreas wrote:
> my fuzzing infrastructure discovered that an assert in 
> x86_emulate_wrapper is able to be triggered by an HVM domain executing a 
> specially crafted repeating movs instruction.
> 
> Specifically, if the emulation of the rep movs instruction triggers an 
> exception (e.g. by accessing invalid memory after some amount of 
> iterations), the emulation will be halted at that point.
> However, the instruction manual requires that _some_ register state 
> (namely the updated value of rcx) shall be commited, whereas the 
> instruction pointer needs to be rolled back to point to the address of 
> the instruction itself. The assert checks for the latter. Problematic is 
> the fact that for these type of repeating instructions, Xen seems to 
> eventually just commit all register state when it encounters an exception:

If my analysis is correct, none of this matters here; the core emulator
is working correctly. Hence also why the in-tree fuzzer wouldn't have
caught it. Would you please give the patch a try that I just sent, with
Cc to you (sorry, the list archive didn't pick it up yet, hence no link)?

Jan

>     557  #define put_rep_prefix(reps_completed) 
> ({                               \
>     558      if ( rep_prefix() 
> )                                                 \
>     559 { \
>     560          __put_rep_prefix(&_regs, ctxt->regs, ad_bytes, 
> reps_completed); \
>     561          if ( unlikely(rc == X86EMUL_EXCEPTION) 
> )                        \
>     562              goto 
> complete_insn;                                         \
>     563 } \
>     564  })
> 
>    8356   complete_insn: /* Commit shadow register state. */
>    8357      put_fpu(fpu_type, false, state, ctxt, ops);
>    8358      fpu_type = X86EMUL_FPU_none;
>    8359
>    8360      /* Zero the upper 32 bits of %rip if not in 64-bit mode. */
>    8361      if ( !mode_64bit() )
>    8362          _regs.r(ip) = (uint32_t)_regs.r(ip);
>    8363
>    8364      /* Should a singlestep #DB be raised? */
>    8365      if ( rc == X86EMUL_OKAY && singlestep && !ctxt->retire.mov_ss )
>    8366      {
>    8367          ctxt->retire.singlestep = true;
>    8368          ctxt->retire.sti = false;
>    8369      }
>    8370
>    8371      if ( rc != X86EMUL_DONE )
>    8372          *ctxt->regs = _regs; // <- Incorrect RIP is commited
> 
> I've attached an XTF test that should trigger the aforementioned assert 
> on the latest release commit: 3ad5d648cda5add395f49fc3704b2552aae734f7
> 
> Best,
> Manuel



From xen-devel-bounces@lists.xenproject.org Wed Apr 16 13:53:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 13:53:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.956188.1349670 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u53Cm-0007EE-Pv; Wed, 16 Apr 2025 13:53:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 956188.1349670; Wed, 16 Apr 2025 13:53: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 1u53Cm-0007E7-NC; Wed, 16 Apr 2025 13:53:32 +0000
Received: by outflank-mailman (input) for mailman id 956188;
 Wed, 16 Apr 2025 13:53: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=2cbw=XC=atlas.cz=arkamar@srs-se1.protection.inumbo.net>)
 id 1u53Cl-0006at-C1
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 13:53:31 +0000
Received: from gmmr-4.centrum.cz (gmmr-4.centrum.cz [2a00:da80:1:502::8])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2cf83926-1aca-11f0-9ffb-bf95429c2676;
 Wed, 16 Apr 2025 15:53:29 +0200 (CEST)
Received: from gmmr-4.centrum.cz (localhost [127.0.0.1])
 by gmmr-4.centrum.cz (Postfix) with ESMTP id 1869911C24B
 for <xen-devel@lists.xenproject.org>; Wed, 16 Apr 2025 15:53:28 +0200 (CEST)
Received: from antispam39.centrum.cz (antispam39.cent [10.30.208.39])
 by gmmr-4.centrum.cz (Postfix) with ESMTP id 162472023012
 for <xen-devel@lists.xenproject.org>; Wed, 16 Apr 2025 15:53:28 +0200 (CEST)
Received: from unknown (HELO gm-smtp10.centrum.cz) ([46.255.225.77])
 by antispam39.centrum.cz with ESMTP; 16 Apr 2025 15:53:27 +0200
Received: from arkam (ip-213-220-240-96.bb.vodafone.cz [213.220.240.96])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256)
 (No client certificate requested)
 by gm-smtp10.centrum.cz (Postfix) with ESMTPSA id 8550480911AC;
 Wed, 16 Apr 2025 15:53:27 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2cf83926-1aca-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=atlas.cz; s=mail;
	t=1744811608; bh=mOJi3ULIs6S9O57TJ4KmwFOJWvhHrsVQiIfVdvf40wo=;
	h=Date:From:To:Cc:Subject:References:In-Reply-To:From;
	b=RaHc1mWKy7sjYT1nowppfylloj95wowcY3xUi1JChHr5bx04qhidWORWHHsFkKB1U
	 0cJKHHuWcbiS//5UXr/keo+Wjhh6u+DlsKnaSb8zf0Z6zGz1bwkOawADRFYuAIA9Wa
	 az6jEzrxs5I0r5Ye/kIE/SGhz7lZ6u7XYsbs0UFo=
X-CSE-ConnectionGUID: Mln02DEDTaycyQEoKV972g==
X-CSE-MsgGUID: kN5ul4MZQEKiIS9TdEEyWw==
X-ThreatScanner-Verdict: Negative
X-IPAS-Result: =?us-ascii?q?A2EHAAAqtf9n/03h/y5aGgEBAQEBAQEBAQEDAQEBARIBA?=
 =?us-ascii?q?QEBAgIBAQEBQAmBOAMBAQEBCwGJeZFxA4t2hjOGDoVbgX4PAQEBAQEBAQEBC?=
 =?us-ascii?q?UQEAQGFBwKLLCc2Bw4BAgQBAQEBAwIDAQEBAQEBAQEBDQEBBgEBAQEBAQYGA?=
 =?us-ascii?q?QKBHYU1U4JiAYN/AQEBAQIBIw8BRhALDQEKAgIfBwICVgaDFYIwAREjsVt6g?=
 =?us-ascii?q?TIaAmXccAKBI2OBKoEaLgGITwGFbIR3QoINhD8+gQUBhxiCaQSCLYEXlBCNO?=
 =?us-ascii?q?FJ7HANZLAFVExcLBwWBKUMDgQ8jTgUwHYF6g3OFNoIRgVwDAyIBgxV1HIRsh?=
 =?us-ascii?q?FYtT4MzgWgdQAMLbT03FBsGnHwBWSInOIElFcc5gxyBCYROnRUzl3ADkmQuh?=
 =?us-ascii?q?2WPcnmpM4FuAoINMyIwgyNRGY5HIctZgTICBwEKAQEDCYI7jWGBSwEB?=
IronPort-PHdr: A9a23:rB4ocBeT2Fj2wyLStyGyCRB0lGM+5djLVj580XLHo4xHfqnrxZn+J
 kuXvawr0ASTG92DoKge1beM+4nbGkU+or+5+EgYd5JNUxJXwe43pCcHROOjNwjQAcWuURYHG
 t9fXkRu5XCxPBsdMs//Y1rPvi/6tmZKSV3wOgVvO+v6BJPZgdip2OCu4Z3TZBhDiCagbb9oI
 xi7oxvdutMKjYd+Jao91AXFr3pIduhI2GhlOU+dkxHg68i/+5Ju7z5esO87+c5aVqX6caU4T
 bhGAzkjLms4+s7luwTdQAWW/ncSXX0YnRVRDwXb4x/0Q4/9vSTmuOVz3imaJtD2QqsvWTu+9
 adrSQTnhzkBOjUk7WzYkM1wjKZcoBK8uxxyxpPfbY+JOPZieK7WYMgXTnRdUMlPSyNBA5u8b
 4oRAOoHIeZYtJT2q18XoRejGQWgGObjxzlVjXH0wKI6yfwsHw/G0gI+Ad8ArXfarNv6O6gOT
 O+7w6vHwC7fb/5Vwzrx9JTEfgwjrPyKQLl+cdDRyU4qFw7dlFuft5DlPymI3esCqWeb6fRlV
 eGygGMgsQ5xuDuvyd0piobTnIIY0UrL9Tl9wIkvPt20UlJ0YN+9HZZWqiqVOJd4TNk4TGF0p
 CY11KcGuZijcSUWx5kqyBHRZfKDfoWL4hzuWumfLSl4iX9qZL+zmgu+/0a+x+HiVsS50UhGo
 jZFn9TOqnwByx/e59WHRPZg/kms3yuE2QPL6uxcLk05lLDXJ4Ahz7MwjJYfr1rPEy/slEj0j
 qKablso9vWm5uj9fLnquIOQO5VqhgzxLqgigMiyDOU+PwMTRWaU4/6826fm/UDhRbVKieA5n
 bfBvZDBIMQbura5AwhI0oY/8xq/Dymp0NAfnXQfI1JFfQuLj5PsO1HSOPD0EOuzj06wnzh1w
 fDGIqfhAojILnTZjLjgfK5x609ayAUt0dBS/51ZB7AbLP7tWkL8tMbUAgEnPwG02erqCtdw2
 psbWW2VA6+ZNK3SsUWP5uIqO+SDfpUVuDXnJPgg/fHul2Q0lkUBfamtx5QXc2q0EehnIkmBe
 3rjns8BEXsWvgo5VOHqi0ONUSBSZ3a0Ra4z/Ss7CIW7AofYRYCsgKeM0z2hHp1TfGxJFleME
 XLwe4WeR/gMcD6SItNmkjEcW7mhSosh1RWutQLhyrpnKOTU+jcCup3+ytd6/fDcmQs19TxuA
 MSRy3uNQH1snmMUWz8227hyoEN+x1qCyqV4gOJXFcZV5/xXVgc2L5ncz/Z1C9zqQALOYs+JS
 Eq6QtWhGTwxStMxw9kTY0dyAtmiixXD0jGpA78LjbOEGJ80/rjb33jrKMZx02zG27U5j1k6X
 stPMnWribR89wjLAo7EiEGZl6esdaQB0y/B7WmDzW2TvEFeTQF/S7nFXXEYZkvQt9j54VnCT
 7C2BbQ9LgRB0dKCKrdNatDxglRJWvHjNM3DbG2vhWe/GxKIy6iIbIrrYGUdwD7dBFILkg8N+
 3aGLRI+BiCjo23AEDNuCUjjY0T28elxsH+7VFM7zxmWb0190Lq44hwVhfOGS/MUxbIEozwsq
 y5pHFamwd3aEcaPpw1kfKlEe9My/E9H1X7Ftwx6JpGgK6FihlgDcwV4pk/hzQ93BZlAkcUxs
 nMqwxR9KbiC3FNCaTyYx5bwNaPTKmXo+xCvcaHWiRni14Oz87sT6Pkn42riuAquBgJ27HRj1
 8h90n2S/JzGAQMeF5XrXRBk2QJ9ouTibzUnr73d095vef29qDzL3tszLOI5zh+7OdxNZvDXX
 DTuGtEXUpD9YNchnEKkO1ddZLg6yQ==
IronPort-Data: A9a23:pAIPxq2XSE7AvH5IEPbD5Sxwkn2cJEfYwER7XKvMYLTBsI5bpzwOy
 GpJD2nTO/qDMzH9LdlwYNy/8R4PscSAy4I3HQI63Hw8FHgiRegppDi6wuUcGwvIc6UvmWo+t
 512huHodZ1yEzmF4E/wb9ANlFEkvYmQXL3wFeXYDS54QA5gWU8JhAlq8wIDqtcAbeORXUXU5
 Lsen+WFYAX4g2ItbDpOg06+gEoHUMra6W5wUmMWOqgjUG/2zxE9EJ8ZLKetGHr0KqE8NvK6X
 evK0Iai9Wrf+Ro3Yvv9+losWhBirhb6ZGBiu1IOM0SQqkEqSh8ajs7XAMEhhXJ/0F1lqfgqk
 YkQ6sbgIeseFvakdOw1C3G0GszlVEFM0OevzXOX6aR/w6BaGpdFLjoH4EweZOUlFuhL7W5m0
 PgecGohQzy/jvO90YuWTcpS15t5I5y+VG8fkikIITDxAvNjWpXfW/ySo9RV2isqm8UIFuS2i
 8gxNWQpNkmdJUcVZxFIV/rSn8/x7pX7WzRCq1uQrLAf6nTXxRc326qF3N/9I4TVFJwIxRfGz
 o7A12ffXwweaPmt8Bem81OX19PDsA7qZ51HQdVU8dYv2jV/3Fc7CxAIVF39q+O+hlW9SvpWM
 UlS8S0rxYAt9UivX/H8WROiqXKJtxJaXMBfe8UquF+lyafO5QudQG8eQVZpbN0gqd9zQDkC1
 UGAlNCvAiZg2JWcSmqY3rOVqy6ifCYSMGkObDMFSg1D5MPsyKkjgxSKQtt9HaqditzuBSq20
 z2MtDI5hbgYkYgMzarT1VLImTW3vbDSUxU4oA7QWwqN6gJ/eZ7gbpaj6XDF4vtaaoWUVF+Mu
 D4Dgcf2xOQPC4yd0S+AWuMAGJm36Pufdj7Rm1hiG98m7TvFxpK4VdwOpmsjeQEzaJtCJmCBj
 FLvhD69LaR7ZBOCBZKbqarqYyj25cAMzejYa80=
IronPort-HdrOrdr: A9a23:O5DWYajdvBx/8rMLyYk+pBXutXBQXtcji2hC6mlwRA09TyVXra
 +TddAgpHrJYVEqKRUdcLG7Scu9qBznn6KdjbN9AV7mZniAhILKFvAA0WKB+Vzd8kTFn4Y36U
 4jSchD4bbLY2SS4/yX3DWF
X-Talos-CUID: 9a23:fUGq6mCSgmxYPLH6Ewxj8hZONu0JTnTMx2bpDkibNzc2ErLAHA==
X-Talos-MUID: 9a23:X4pqhQSXDz+mun8oRXTvomx/MJtN0Z2DK0EsqsQ6t+SpJBNvbmI=
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-AV: E=Sophos;i="6.15,216,1739833200"; 
   d="scan'208";a="107915396"
Date: Wed, 16 Apr 2025 15:53:25 +0200
From: Petr =?utf-8?B?VmFuxJtr?= <arkamar@atlas.cz>
To: Matthew Wilcox <willy@infradead.org>
Cc: Juergen Gross <jgross@suse.com>, linux-kernel@vger.kernel.org,
	Kevin Brodsky <kevin.brodsky@arm.com>,
	Andrew Morton <akpm@linux-foundation.org>, linux-mm@kvack.org,
	x86@kernel.org, xen-devel@lists.xenproject.org,
	linux-arch@vger.kernel.org
Subject: Re: Regression from a9b3c355c2e6 ("asm-generic: pgalloc: provide
 generic __pgd_{alloc,free}") with CONFIG_DEBUG_VM_PGFLAGS=y and Xen
Message-ID: <2025416135325-Z_-2VTPsw81jMgCm-arkamar@atlas.cz>
References: <202541612720-Z_-deOZTOztMXHBh-arkamar@atlas.cz>
 <Z_-lj5kCg084MXRI@casper.infradead.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <Z_-lj5kCg084MXRI@casper.infradead.org>

On Wed, Apr 16, 2025 at 01:41:51PM +0100, Matthew Wilcox wrote:
> On Wed, Apr 16, 2025 at 02:07:20PM +0200, Petr Vaněk wrote:
> > I have discovered a regression introduced in commit a9b3c355c2e6
> > ("asm-generic: pgalloc: provide generic __pgd_{alloc,free}") [1,2] in
> > kernel version 6.14. The problem occurs when the x86 kernel is
> > configured with CONFIG_DEBUG_VM_PGFLAGS=y and is run as a PV Dom0 in Xen
> > 4.19.1. During the startup, the kernel panics with the error log below.
> 
> You also have to have CONFIG_MITIGATION_PAGE_TABLE_ISOLATION enabled
> to hit this problem, otherwise we allocate an order-0 page.

Indeed, the issue disappears when I disable
CONFIG_MITIGATION_PAGE_TABLE_ISOLATION.

> > The commit changed PGD allocation path.  In the new implementation
> > _pgd_alloc allocates memory with __pgd_alloc, which indirectly calls 
> > 
> >   alloc_pages_noprof(gfp | __GFP_COMP, order);
> > 
> > This is in contrast to the old behavior, where __get_free_pages was
> > used, which indirectly called
> > 
> >   alloc_pages_noprof(gfp_mask & ~__GFP_HIGHMEM, order);
> > 
> > The key difference is that the new allocator can return a compound page.
> > When xen_pin_page is later called on such a page, it call
> > TestSetPagePinned function, which internally uses the PF_NO_COMPOUND
> > macro. This macro enforces VM_BUG_ON_PGFLAGS if PageCompound is true,
> > triggering the panic when CONFIG_DEBUG_VM_PGFLAGS is enabled.
> 
> I suspect the right thing to do here is to change the PF_NO_COMPOUND to
> PF_HEAD.  Probably for all of these:
> 
> /* Xen */
> PAGEFLAG(Pinned, pinned, PF_NO_COMPOUND)
>         TESTSCFLAG(Pinned, pinned, PF_NO_COMPOUND)
> PAGEFLAG(SavePinned, savepinned, PF_NO_COMPOUND);
> PAGEFLAG(Foreign, foreign, PF_NO_COMPOUND);
> PAGEFLAG(XenRemapped, xen_remapped, PF_NO_COMPOUND)
>         TESTCLEARFLAG(XenRemapped, xen_remapped, PF_NO_COMPOUND)
> 
> Could you give that a try?

Yes, I could. Changing PF_NO_COMPOUND to PF_HEAD in those lines resolves
the issue for me.

Petr


From xen-devel-bounces@lists.xenproject.org Wed Apr 16 13:53:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 13:53:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.956189.1349681 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u53Ct-0007V3-56; Wed, 16 Apr 2025 13:53:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 956189.1349681; Wed, 16 Apr 2025 13: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 1u53Ct-0007Ur-25; Wed, 16 Apr 2025 13:53:39 +0000
Received: by outflank-mailman (input) for mailman id 956189;
 Wed, 16 Apr 2025 13:53: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=yQHX=XC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u53Cr-0006w9-K5
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 13:53:37 +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 31ab6fc0-1aca-11f0-9eaf-5ba50f476ded;
 Wed, 16 Apr 2025 15:53:36 +0200 (CEST)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-43cf848528aso56733175e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 16 Apr 2025 06:53:36 -0700 (PDT)
Received: from [10.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-4405b4f3bbbsm21756025e9.23.2025.04.16.06.53.35
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 16 Apr 2025 06:53:36 -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: 31ab6fc0-1aca-11f0-9eaf-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744811616; x=1745416416; 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=gZ6J9rpP6h10ozm+glciDHFSwaYn6AwPwAL+U9KFwwM=;
        b=HIKn5VTPN4/7vAJ4o5C3Kydq19x6LKRx8RHKi8USvJwZ0hShKcBKM3k7hC4yHrVGrb
         oeyzyQFg7nXbYQYsCoC6rIUbPZNzx9eUF83ApVIi/9dQrQYQOVf+fSt87v1xm9JXMxR7
         oGVV1oPZN7XlVtlhAH8KhhyncS44Bl6TF0WaYFBr5iJ4NDS3RQ3wA7Ban3SC8ReL6pX0
         zKRLHgzBp/9K2OKL9SNzTqzZMswRMgwLMo2hkipDCQXWZO0e2vhzchjuHxbx5XLkQXB+
         CRAd+LwQyDMGCvsmXJvPufSJnTTo+7yKWw3Q8Z5FzAk53QchQ1ygfPfkzOTPt/6STjzW
         bzMA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744811616; x=1745416416;
        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=gZ6J9rpP6h10ozm+glciDHFSwaYn6AwPwAL+U9KFwwM=;
        b=O8lav6TRe/ZG3e+avVcDjvsiQkJHsEEFq2g8tYCfr9YMFF7sUE4JnfRMYxPwVapdOq
         vFDX+X2WE+qwA1tjiBCrG+DVDlQ5eQoIf4ilHYEvSqinGzT+8bMza5AWi3EAUa+Lj+0P
         W38KstsXoFeg8TBaBWiMJM/32hHw+eBDZt56eokPbKmyxBUdhAksAn3tPCgWG/TV3kUF
         /jnR4P+1ss0wYAL7+AS+Li3e/fS2JMCLgfolowOIfeEpado8H7lAcJ4rfq/KqoLHd3HL
         JhNk1lqrEtvstH5J4pvwcNCeI51peIm9cYmwk9bUbNU9wiEAGbGal/HQsuGQ2PNY2QED
         NiLg==
X-Gm-Message-State: AOJu0YyYiQ2T55yDVLdFpycexAWhiWJyri/7Xn8f3J5HklJ96Jqq8LFp
	LUQWiD6FWgRj6u45sr3ypQ0ykmR/3nFcyClZQaXUxncBejtOwdbvMdJ5/y5zQ4ZbflDgzyAVsMQ
	=
X-Gm-Gg: ASbGnctzNlDWzlQ9DuKEAnIFIsNTu9IHnmHE/+juezte1vSBqFdrs7PBRBQWSskxdEW
	syVX2naGftXr8J5OhbzPspBR+cZ8cOVPoi6UE9NsNTJJXNPDPxAsUIcZENUFc45+GF9Famk6Aag
	katoSuOGY6oIiFSOhtj8/G05CUB/F6ZT1BzULddXI3Fw16cySVacq7utWydSKD/2aYqyyWfPg5k
	K1yROhx42o2oZuHaMIsFAy6yjwcT1sBYO5GHnqTjaRyuR0rpLn90u/0Z2eQNd2nZBWh9WyM038R
	5wRk4YhYQXT2xav32Q0l5CSZbhGhI78d/stRUsIO2SlcX/mPCoSG7mGR5+vHvmiM14HmROdQ+eu
	SrHfXYjwooxM24VhmTjrZrUFVLNBMOYMeC5c0
X-Google-Smtp-Source: AGHT+IHXemsl68FAItCqDZCjt6YnuHe6UvCijCoDEc+DcV7qbj4hd5uGLecKsrhLFP6yrypp5WKStQ==
X-Received: by 2002:a05:600c:cc5:b0:43c:ec0a:ddfd with SMTP id 5b1f17b1804b1-4405d5fd8damr17323965e9.6.1744811616270;
        Wed, 16 Apr 2025 06:53:36 -0700 (PDT)
Message-ID: <ada5deaf-6af8-4427-8ba9-d07000628e7b@suse.com>
Date: Wed, 16 Apr 2025 15:53:35 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Assert in x86_emulate_wrapper triggerable by HVM domain
From: Jan Beulich <jbeulich@suse.com>
To: Manuel Andreas <manuel.andreas@tum.de>
Cc: xen-devel@lists.xenproject.org
References: <e7347061-6dc6-44a3-ad41-270e705db2c5@tum.de>
 <26f9b5dd-2201-4dd7-bf26-863a9b114b62@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: <26f9b5dd-2201-4dd7-bf26-863a9b114b62@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 16.04.2025 15:52, Jan Beulich wrote:
> On 15.04.2025 23:52, Manuel Andreas wrote:
>> my fuzzing infrastructure discovered that an assert in 
>> x86_emulate_wrapper is able to be triggered by an HVM domain executing a 
>> specially crafted repeating movs instruction.
>>
>> Specifically, if the emulation of the rep movs instruction triggers an 
>> exception (e.g. by accessing invalid memory after some amount of 
>> iterations), the emulation will be halted at that point.
>> However, the instruction manual requires that _some_ register state 
>> (namely the updated value of rcx) shall be commited, whereas the 
>> instruction pointer needs to be rolled back to point to the address of 
>> the instruction itself. The assert checks for the latter. Problematic is 
>> the fact that for these type of repeating instructions, Xen seems to 
>> eventually just commit all register state when it encounters an exception:
> 
> If my analysis is correct, none of this matters here; the core emulator
> is working correctly. Hence also why the in-tree fuzzer wouldn't have
> caught it. Would you please give the patch a try that I just sent, with
> Cc to you (sorry, the list archive didn't pick it up yet, hence no link)?

https://lists.xen.org/archives/html/xen-devel/2025-04/msg01283.html



From xen-devel-bounces@lists.xenproject.org Wed Apr 16 13:55:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 13:55:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.956207.1349691 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u53EC-0008LP-Gk; Wed, 16 Apr 2025 13:55:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 956207.1349691; Wed, 16 Apr 2025 13:55: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 1u53EC-0008LI-Cz; Wed, 16 Apr 2025 13:55:00 +0000
Received: by outflank-mailman (input) for mailman id 956207;
 Wed, 16 Apr 2025 13:54: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=/6+O=XC=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u53EB-0008L6-0j
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 13:54:59 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on2060a.outbound.protection.outlook.com
 [2a01:111:f403:2418::60a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6080ce94-1aca-11f0-9ffb-bf95429c2676;
 Wed, 16 Apr 2025 15:54:56 +0200 (CEST)
Received: from BLAPR03CA0149.namprd03.prod.outlook.com (2603:10b6:208:32e::34)
 by SA1PR12MB7271.namprd12.prod.outlook.com (2603:10b6:806:2b8::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.32; Wed, 16 Apr
 2025 13:54:51 +0000
Received: from MN1PEPF0000F0E4.namprd04.prod.outlook.com
 (2603:10b6:208:32e:cafe::75) by BLAPR03CA0149.outlook.office365.com
 (2603:10b6:208:32e::34) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.22 via Frontend Transport; Wed,
 16 Apr 2025 13:54:51 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 MN1PEPF0000F0E4.mail.protection.outlook.com (10.167.242.42) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Wed, 16 Apr 2025 13:54:50 +0000
Received: from localhost (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, 16 Apr
 2025 08:54:48 -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: 6080ce94-1aca-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=H0ouYWoPSsfBhL1cstVvCV7SjAz4Ke4NYpnfejWOI7A+ggKEmT83dVzhvJckAzmJknLfgO3qRkNZrRccRmBxdkBuOytBiRUPCwxCpeAbahbn3wr2nXVhyHTkumtXINIp/518UH2PmZ9jpjK6mX40eJs5wiZUqD3xHUu/PYFlTII+DDDR/APzoQkzsyYclYj/qR/QbyPWc8ujlX6CXKoDATWLHJWIgqZnY+RJOQclHth0ORnH0bnnCKTcvED/mPErQ7sN5UOG1oFEmlpbIykbPpUkQhs6oDUI4IErYM//9iBFAIkYP6U8I3VLHwHvsyurutrht0Ynq+J2wz+wpUqHWw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=/PDFOsbdDrqNum/A2Hsj/mkBWXf32uj2SIaJWHTqL48=;
 b=vi0sZzke0n4si/yZJOs1jl31BAJJww+JoGQJTy8JGgXZEzdT4DmCXxNdOFD3pYukFUlnFnyI4DteE1Aq6jmigfoN840jltLKzkTQvaHP6FS8Yxtm8EsLhyzkNKjowP3X/jSAv9CTn4ydW65fde6YNchiFZIkydUYOHFKn2wCiQmtFbofkhIjeGst7IoLFR6azqTW0+7tQRj9/eSC8+XmYJbdjavOfhv+PDMYMRCm1MDyMuSMeSH1dX+RNH7L9JCTyuK2ABgKmDameUvlsCtlAggLBEUiGaVtKT8wbqkC89OBESlvfASH74TkN22FXDccyK1q2ECd2oX/J+u99smYgA==
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=/PDFOsbdDrqNum/A2Hsj/mkBWXf32uj2SIaJWHTqL48=;
 b=1ey7taBmsCoTjiRWqxJGN9aeqRVy4RXQyvKOZuoMbE5coaV+Og2OOsurfvKlx7gDBzi5vWetm0+tl7BWXXi21iY0xj2YI11ZTbxLslWipcLYAIlSAZTV0dSknwp63RYSdEX8/IFXxs5t6b0bak7RC39uETGwJnKvjRCwj8XUU4w=
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
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Wed, 16 Apr 2025 14:54:47 +0100
Message-ID: <D9844FO74PFM.3R6HB5K2JXAOR@amd.com>
CC: Jason Andryuk <jason.andryuk@amd.com>, Xenia Ragiadakou
	<xenia.ragiadakou@amd.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@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>
Subject: Re: [PATCH v3 15/16] x86/hyperlaunch: add max vcpu parsing of
 hyperlaunch device tree
From: Alejandro Vallejo <agarciav@amd.com>
To: "Daniel P. Smith" <dpsmith@apertussolutions.com>, Jan Beulich
	<jbeulich@suse.com>
X-Mailer: aerc 0.20.1
References: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-16-agarciav@amd.com>
 <c1e5af91-8f84-458d-a9b8-ab9758b5cbce@suse.com>
 <5a674e65-77bc-4d07-a4e3-2fa2c96bb37e@apertussolutions.com>
In-Reply-To: <5a674e65-77bc-4d07-a4e3-2fa2c96bb37e@apertussolutions.com>
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: MN1PEPF0000F0E4:EE_|SA1PR12MB7271:EE_
X-MS-Office365-Filtering-Correlation-Id: ae116302-2d0c-4333-36d1-08dd7cee421d
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?ZFROZ2I1NVRLWS9tSTkwdmZlZWgzc2R1cmY4aHNLK2RJblJPZmZvVDFRZHd0?=
 =?utf-8?B?dUV2MDFhUWc3Nm53bHF2R09pMy9XK0FjRXlVWEs0d3BReWFVWVdlNlV1NHh1?=
 =?utf-8?B?dzNhV091KzVrd2t5R3A1MktVN3UzN0xqKzY0R0pyL0VlR2w1eFM4MzdEYW9F?=
 =?utf-8?B?YzVxendVOUR6U3pyWnpvdno1WnZWTVhFQWtabnJ6YWw3S0pYNFhXc1ZKVlVF?=
 =?utf-8?B?clhhaVp2ZjlEYzZjSEg4S3E5aGQ3MUt6UUMzeTZLVGJyR1pRZ1lTaXVrUWNW?=
 =?utf-8?B?TmF4MlZQNTdKS1ZLMkNqbGRoaFVXaUNtKzdmWUZFQkdhVzArZ0JEWFdCclE4?=
 =?utf-8?B?bXU3UXJFTGsvQkhvU1VjS2FRbk1tampTSDdUejVURWNWS3Ntb01RdC9mVllx?=
 =?utf-8?B?c09GQmhFdnJFdy91YklNYUNyaVVWRFVvaGZZOW1MdTVZN1dKU281Z3pXeE9z?=
 =?utf-8?B?MjZaVnErcVF2d1F3c045SUo5Skx6ckJXQm9GSXowbXNhSFBaWU9nK3A1aS9p?=
 =?utf-8?B?TXNkK3MydXdSYWU3RUZIZ0EwMWtrNlVZSXZyK0t0NFMzQWltcHBMa2UzcDlX?=
 =?utf-8?B?N200V0tqSldYKzBaS0xJc3lNZVNWRks0aHk0KzEwMXYyWjk5bXdzMk9XeUJI?=
 =?utf-8?B?MEZhV1Z0YnlkSzVxRFNONloyNit2OGMwSTJiUGdWYTlBeTB2dzQwM3p5Smgw?=
 =?utf-8?B?SDlCS0xLbzNVVmhxUTl5cmlyajNNRU9YR2lIdEpSOVBlRU1tQ3QrVlJuOXkz?=
 =?utf-8?B?NGZoQ0xUZE1zd3FGeFdIRDY2eU53bjdzTERybGlJdkdrT2lCNWhHdUNMbWRF?=
 =?utf-8?B?a0xhS3VyL1RiSGJXMEpPakVBUE9pdWhWRXNIZG1lSGIzekplOHN6M3h5emE4?=
 =?utf-8?B?aHh5b2ZaT0lSS3R5YWYrbkl3YktIRmgvS2ZNdXQraUZIT3NBSm5VQW5UemNq?=
 =?utf-8?B?UDdpQWlDQU5acVBGdjN4WHA4elkrWEFCT3hDV2Q2RGw0b3NGYlhmNFlvWFhU?=
 =?utf-8?B?dzZ0UU0rMEpCaEtqYndiMnJyc012QnZBTUlacUtXRVdPaFBsVXB3NmZvSGdT?=
 =?utf-8?B?ODNPb3ZUTE51Z1dpN3Z3RTFuV0NtNDNIcFBFSDIvK21xeXJucjhmY25MajFn?=
 =?utf-8?B?VzdWUWE2QVBDcWVycDVDUmZLSFFmY0NPWGFsS1QwVFVkNVFMNTVjYS9PTzlV?=
 =?utf-8?B?K0NDWnlYT0NtSUVhM0tiQWZhNStzSUtTdk5TU0Z0MTVZVU8vTVZyamQyOFdP?=
 =?utf-8?B?ZEdrSEt3bWV4cnlaTkZwSkdpZ1BRa2F6c05SK0VjUG9NTnlsamEyQVhBNHU5?=
 =?utf-8?B?UlczUFF0d2Q1MjQ2NTllcUZ2K2RYS1NIckV1T2s2bHkxb3BROG84Q05RNlVu?=
 =?utf-8?B?cWJIRmpJK213MXFBV0grTytBNWdOZ09tRU5VOU5BKzI4NE9mRkpaZENLMFJs?=
 =?utf-8?B?Z0l3UEowTkVUZGY4Z1p0cVExcHZRcXJ6S3BZd1NxMlQ2N01KVU9XUmU0anE0?=
 =?utf-8?B?NUhvYmdnY2V4V0xGM1NOMVZoUFNLUFc4OUNWU2RTRTZLd2JPY0RiUVU3N1No?=
 =?utf-8?B?U2pLRS9oOTNVU1AyM1NKeU0vUnpHSkluRzkyVHNLMldvVzRoYWdUbHowQXV3?=
 =?utf-8?B?RXhSRG5QUEJQTnBFSkdiOTRoNTlJcDNJOExJK1Q0TGNaLytQUTBHR2lVMDFh?=
 =?utf-8?B?VVpKa05jMGxHUHFnNzlOZThLS044WklSb0UvK2dJMlRablk0ZmRCTXpCZ0Ra?=
 =?utf-8?B?dE14U3gzNEZGeTRLdldmTGN3VTN4Tm1BNjRCYnlVU2N2MXp3ZnNKOXEwVWtM?=
 =?utf-8?B?cTFUMURuczAzVXkydzBtYU9hTTBJNXRYTTFIcTA3WEwyeEIzQ0pJVTJpNzVt?=
 =?utf-8?B?bmZXUTFrTXRKNFFMdlVieUdoYi9BQThRYVlqSW9FT0RsUUd4aW5sbCsxQzVG?=
 =?utf-8?B?TGxYWVVJVEE3K0lLazkremlvNWNwcVpOQ25zeVRESEp3OW9HRFNSTmdmNGlJ?=
 =?utf-8?B?eGRacWJOODhxUGhEbjlySGFOQ3ZFTVByOEhYdStySFZSbUFNTGh2SWxYN1o4?=
 =?utf-8?Q?uJzZo6?=
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: 16 Apr 2025 13:54:50.9281
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: ae116302-2d0c-4333-36d1-08dd7cee421d
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:
	MN1PEPF0000F0E4.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB7271

On Wed Apr 16, 2025 at 2:42 PM BST, Daniel P. Smith wrote:
>
> On 4/10/25 08:08, Jan Beulich wrote:
>> On 08.04.2025 18:07, Alejandro Vallejo wrote:
>>> From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
>>>
>>> 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
                                       ^
                                       |
				     "vcpus"

>>=20
>> Nit: vcpus
>
> I agree with you here, the issue is that it was requested that we keep=20
> this field in line with Arm's DT, and they unfortunately used `cpus` to=
=20
> specify the vcpu allocation.

He meant in the commit message. There's a typo.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Wed Apr 16 13:55:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 13:55:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.956208.1349700 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u53EF-00008Z-M4; Wed, 16 Apr 2025 13:55:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 956208.1349700; Wed, 16 Apr 2025 13:55: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 1u53EF-00008S-JU; Wed, 16 Apr 2025 13:55:03 +0000
Received: by outflank-mailman (input) for mailman id 956208;
 Wed, 16 Apr 2025 13:55: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=yQHX=XC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u53EE-0008L6-6g
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 13:55:02 +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 638e27b3-1aca-11f0-9ffb-bf95429c2676;
 Wed, 16 Apr 2025 15:55:00 +0200 (CEST)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-43cfb6e9031so62869765e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 16 Apr 2025 06:55:00 -0700 (PDT)
Received: from [10.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-39eae9640bcsm17072704f8f.1.2025.04.16.06.54.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 16 Apr 2025 06:54: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: 638e27b3-1aca-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744811700; x=1745416500; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=4LE7SO23oBNqseUbjdnqWsdDCoydcN0FP17jywwiUYQ=;
        b=FmF9OWubVPWpAD1p/06vlCjO3D88oC0P8UrG571YaWcNTEY3fvOw8NoD8MR3Ns17pb
         7Ue9tR+4T8FTmUruWK/D70WJOdNt6XKJB3HOuPrna8WSSiO5yyQQWMrbzI5Ba6NqBIuo
         v40ndQDDX3K8mKFnQAClJToHjtWe5pNxRvmBgC0hsbbJdeTTIK97TJfj0XYSA5ayY3El
         DDlfzvV9GEeVPkDdKU3rqmmmoKgTdfA62HGJ9Xqbcsb2N/a5wOCsHvbg3DoTDO/E7wSe
         BtqPcHfWh9SMaN0aFF7S1NVmiZZxwc7TZcXASgfrYSjWadutkizL9hQ+VGCcFywPO5SH
         KoKQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744811700; x=1745416500;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=4LE7SO23oBNqseUbjdnqWsdDCoydcN0FP17jywwiUYQ=;
        b=eME9WPn+Imwl1csb2e7o1FDsZQbR8LvP4O25Dy8PzUeQkdfo2dF3Q6zvpACMgjbpBX
         iS7V/Fu/8YXELNjignPKKL0pIOdPRYSDp7I9hr39f47L5EjBJkGfoYVNzSPpBy2nS3nB
         fSmKxL8HvStVJ62Ux59tT7Dv1N96OCXwPyUJ+GrQ9/FXe3sWWbecp42W4OSZfoutU7cD
         VMLKFu6T6SqDTMlaDp7GZSQeDDO4rZOVy2i5ij919cScIVN8NcBNtAoN/uDZz42OBZCN
         OMr+zckl2EbkR3prHtfEBCbCZQJVAstJm7ZbTB8jsWGqb9ztfGIWk3TZYBfW6hHcqKEO
         ZY1A==
X-Forwarded-Encrypted: i=1; AJvYcCUm/IZf3/SaZuqLrPvzj5rrYoxzqonxR9/fuiBSY7GxMvrqblhyA1paEajnq23NRRiYWxpsaT/ovwU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyO0mXR9lxQ8UL2YNQ2hzws5UIOSnveGzur691drBKId5W3eTOV
	L8IHPqWZzw6K26gDNeFEzLR31An+oqMttQhXFZDSN8Kezlmzo5LAdJlY6WhyhQ==
X-Gm-Gg: ASbGncsVv9R7H7MxzyeNLB0x2UNBS+x/EF2RniMqOFSPO5jWU8Flp8yLZdX4XBXStW9
	97oiLQ/mg6WiQlh08+aUozRow7mkKXMMnKYUbXh+Uh1gCZW1BK/ZPfbweSw4AUgVD8eeU/H0Or0
	PiSBS3I7bxTVy+fBN4kKJJYXjFUPBlWWI+xqYRoekHGkXseT2n4TFGdtv0shU4EYd1bVaURNWmj
	hFJv2Zi/Cs8hkejvuX4TR9y/Wbo+nZQbAfwXGjs3OtF5rtG++ZsiPilK2VRY2ZAApz9I+1wq4ud
	LaKVOH7kF4YHUxK2zs/9PF8BEGkdivHdZYpdjajf64MClC3D3jM98iD+cF2mu8l2MmSABjBaZml
	rE1K+ZzcZpne8F/Fh0QVNW5IniA==
X-Google-Smtp-Source: AGHT+IGTBHVqd+eNiCRxtt0FHijqG1BvOXqYxv4ua62MfGgSwVAdpGPcRx03eQWsaqocRZuK9rn4bQ==
X-Received: by 2002:a05:6000:258a:b0:39a:c9d9:8f95 with SMTP id ffacd0b85a97d-39ee5bad5f7mr1966021f8f.52.1744811700087;
        Wed, 16 Apr 2025 06:55:00 -0700 (PDT)
Message-ID: <71606cc7-8d9d-4b6b-ac64-bb7bcc54eee1@suse.com>
Date: Wed, 16 Apr 2025 15:54:58 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 15/16] x86/hyperlaunch: add max vcpu parsing of
 hyperlaunch device tree
To: "Daniel P. Smith" <dpsmith@apertussolutions.com>
Cc: Jason Andryuk <jason.andryuk@amd.com>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Michal Orzel <michal.orzel@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, Alejandro Vallejo <agarciav@amd.com>
References: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-16-agarciav@amd.com>
 <c1e5af91-8f84-458d-a9b8-ab9758b5cbce@suse.com>
 <5a674e65-77bc-4d07-a4e3-2fa2c96bb37e@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: <5a674e65-77bc-4d07-a4e3-2fa2c96bb37e@apertussolutions.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 16.04.2025 15:42, Daniel P. Smith wrote:
> 
> On 4/10/25 08:08, Jan Beulich wrote:
>> On 08.04.2025 18:07, Alejandro Vallejo wrote:
>>> From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
>>>
>>> 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
>>
>> Nit: vcpus
> 
> I agree with you here, the issue is that it was requested that we keep 
> this field in line with Arm's DT, and they unfortunately used `cpus` to 
> specify the vcpu allocation.

You misunderstood, I think. The comment was on the mis-spelling in the latter
of the quoted lines.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Apr 16 14:01:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 14:01:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.956233.1349710 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u53K8-00024w-9u; Wed, 16 Apr 2025 14:01:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 956233.1349710; Wed, 16 Apr 2025 14:01: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 1u53K8-00024p-77; Wed, 16 Apr 2025 14:01:08 +0000
Received: by outflank-mailman (input) for mailman id 956233;
 Wed, 16 Apr 2025 14:01: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=S7a8=XC=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1u53K7-00024j-Ae
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 14:01:07 +0000
Received: from sender4-of-o50.zoho.com (sender4-of-o50.zoho.com
 [136.143.188.50]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3b416425-1acb-11f0-9eaf-5ba50f476ded;
 Wed, 16 Apr 2025 16:01:03 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 1744812050960164.61457083759592;
 Wed, 16 Apr 2025 07:00: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: 3b416425-1acb-11f0-9eaf-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; t=1744812054; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=JVLtopfxtjx2mbYVxSq8VJi+9S9cVQFd0FSzjmAZGe6Fd7h04Fn/uSKztCucU/pbMJa0uarZCN1mg5VAutKDd29jbqWFPhI+pxDjtzW1v5icyOh23vuIBwmd3+cRzroPZY21OV08tvb0GkfqkMLSy2QiRX+8V447wKcg2Qv2nJA=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1744812054; 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=7Tanzu67FF3cAQy6tnpCRBM7xvljrQD0cGctjLCbFsE=; 
	b=DrOjOdGNbZhZ8AA1Oxv/LBolHckElf0l6KnFaD89GEj9DPzkscKz7yKyFYErwmQoJ3CWK8pmldf+XR4wlm7ld66X51neZ1VG1vzqqRk5wPydxT6XUjzcURZ7Rze1c4u7/NHGXt+NBlRs7cYIDNhaKqAfM5f8eKDmiCIUUUyOf1A=
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=1744812054;
	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=7Tanzu67FF3cAQy6tnpCRBM7xvljrQD0cGctjLCbFsE=;
	b=ELSIj+PRXXuUe4XPAVspSwqiaAQcsuhFfSpAr5G9y83sJs6Cx9ru3nLOZ4OVcGTt
	wPZakPCY7+1ERpl3qq0owm2mRXma8fxN4mitoDG7K/7IoeNiT7vK3hbI2g60Px0mqz9
	jf+Q94J3RchoP/wc59xuuWl/JIm5IKpuyiPk+nP8=
Message-ID: <6517f3ca-1329-4591-9ccc-e6be5af31e44@apertussolutions.com>
Date: Wed, 16 Apr 2025 10:00:49 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 01/16] x86/boot: introduce boot domain
Content-Language: en-US
To: Jan Beulich <jbeulich@suse.com>
Cc: Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Michal Orzel <michal.orzel@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, Alejandro Vallejo <agarciav@amd.com>,
 Jason Andryuk <jason.andryuk@amd.com>
References: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-2-agarciav@amd.com>
 <141229a0-2cd2-4886-b5e5-02c85b0ca5ab@suse.com>
 <7fa754f8-d785-45d8-b9da-de5c85bc793b@apertussolutions.com>
 <f0a14866-0f38-4f8d-8e11-993a58c7da7b@suse.com>
 <644cdc5a-b96a-4e43-ae7a-4cadda1d1084@amd.com>
 <3832bb2b-978c-4990-928c-c18a003adcf4@apertussolutions.com>
 <73c8dacd-c1d7-459e-ac18-decaa5c9c5bd@suse.com>
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
Autocrypt: addr=dpsmith@apertussolutions.com; keydata=
 xsJuBFYrueARCACPWL3r2bCSI6TrkIE/aRzj4ksFYPzLkJbWLZGBRlv7HQLvs6i/K4y/b4fs
 JDq5eL4e9BdfdnZm/b+K+Gweyc0Px2poDWwKVTFFRgxKWq9R7McwNnvuZ4nyXJBVn7PTEn/Z
 G7D08iZg94ZsnUdeXfgYdJrqmdiWA6iX9u84ARHUtb0K4r5WpLUMcQ8PVmnv1vVrs/3Wy/Rb
 foxebZNWxgUiSx+d02e3Ad0aEIur1SYXXv71mqKwyi/40CBSHq2jk9eF6zmEhaoFi5+MMMgX
 X0i+fcBkvmT0N88W4yCtHhHQds+RDbTPLGm8NBVJb7R5zbJmuQX7ADBVuNYIU8hx3dF3AQCm
 601w0oZJ0jGOV1vXQgHqZYJGHg5wuImhzhZJCRESIwf+PJxik7TJOgBicko1hUVOxJBZxoe0
 x+/SO6tn+s8wKlR1Yxy8gYN9ZRqV2I83JsWZbBXMG1kLzV0SAfk/wq0PAppA1VzrQ3JqXg7T
 MZ3tFgxvxkYqUP11tO2vrgys+InkZAfjBVMjqXWHokyQPpihUaW0a8mr40w9Qui6DoJj7+Gg
 DtDWDZ7Zcn2hoyrypuht88rUuh1JuGYD434Q6qwQjUDlY+4lgrUxKdMD8R7JJWt38MNlTWvy
 rMVscvZUNc7gxcmnFUn41NPSKqzp4DDRbmf37Iz/fL7i01y7IGFTXaYaF3nEACyIUTr/xxi+
 MD1FVtEtJncZNkRn7WBcVFGKMAf+NEeaeQdGYQ6mGgk++i/vJZxkrC/a9ZXme7BhWRP485U5
 sXpFoGjdpMn4VlC7TFk2qsnJi3yF0pXCKVRy1ukEls8o+4PF2JiKrtkCrWCimB6jxGPIG3lk
 3SuKVS/din3RHz+7Sr1lXWFcGYDENmPd/jTwr1A1FiHrSj+u21hnJEHi8eTa9029F1KRfocp
 ig+k0zUEKmFPDabpanI323O5Tahsy7hwf2WOQwTDLvQ+eqQu40wbb6NocmCNFjtRhNZWGKJS
 b5GrGDGu/No5U6w73adighEuNcCSNBsLyUe48CE0uTO7eAL6Vd+2k28ezi6XY4Y0mgASJslb
 NwW54LzSSM0uRGFuaWVsIFAuIFNtaXRoIDxkcHNtaXRoQGFwZXJ0dXNzb2x1dGlvbnMuY29t
 PsJ6BBMRCAAiBQJWK7ngAhsjBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRBTc6WbYpR8
 KrQ9AP94+xjtFfJ8gj5c7PVx06Zv9rcmFUqQspZ5wSEkvxOuQQEAg6qEsPYegI7iByLVzNEg
 7B7fUG7pqWIfMqFwFghYhQzOwU0EViu54BAIAL6MXXNlrJ5tRUf+KMBtVz1LJQZRt/uxWrCb
 T06nZjnbp2UcceuYNbISOVHGXTzu38r55YzpkEA8eURQf+5hjtvlrOiHxvpD+Z6WcpV6rrMB
 kcAKWiZTQihW2HoGgVB3gwG9dCh+n0X5OzliAMiGK2a5iqnIZi3o0SeW6aME94bSkTkuj6/7
 OmH9KAzK8UnlhfkoMg3tXW8L6/5CGn2VyrjbB/rcrbIR4mCQ+yCUlocuOjFCJhBd10AG1IcX
 OXUa/ux+/OAV9S5mkr5Fh3kQxYCTcTRt8RY7+of9RGBk10txi94dXiU2SjPbassvagvu/hEi
 twNHms8rpkSJIeeq0/cAAwUH/jV3tXpaYubwcL2tkk5ggL9Do+/Yo2WPzXmbp8vDiJPCvSJW
 rz2NrYkd/RoX+42DGqjfu8Y04F9XehN1zZAFmCDUqBMa4tEJ7kOT1FKJTqzNVcgeKNBGcT7q
 27+wsqbAerM4A0X/F/ctjYcKwNtXck1Bmd/T8kiw2IgyeOC+cjyTOSwKJr2gCwZXGi5g+2V8
 NhJ8n72ISPnOh5KCMoAJXmCF+SYaJ6hIIFARmnuessCIGw4ylCRIU/TiXK94soilx5aCqb1z
 ke943EIUts9CmFAHt8cNPYOPRd20pPu4VFNBuT4fv9Ys0iv0XGCEP+sos7/pgJ3gV3pCOric
 p15jV4PCYQQYEQgACQUCViu54AIbDAAKCRBTc6WbYpR8Khu7AP9NJrBUn94C/3PeNbtQlEGZ
 NV46Mx5HF0P27lH3sFpNrwD/dVdZ5PCnHQYBZ287ZxVfVr4Zuxjo5yJbRjT93Hl0vMY=
In-Reply-To: <73c8dacd-c1d7-459e-ac18-decaa5c9c5bd@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External



V/r,
Daniel P. Smith
Apertus Solutions, LLC

On 4/16/25 09:33, Jan Beulich wrote:
> On 16.04.2025 15:02, Daniel P. Smith wrote:
>> On 4/10/25 16:56, Jason Andryuk wrote:
>>> On 2025-04-10 11:01, Jan Beulich wrote:
>>>> On 10.04.2025 15:09, Daniel P. Smith wrote:
>>>>> On 4/9/25 02:24, Jan Beulich wrote:
>>>>>> On 08.04.2025 18:07, Alejandro Vallejo wrote:
>>>>>>> From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
>>>>>>>
>>>>>>> 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>
>>>>>>
>>>>>> Acked-by: Jan Beulich <jbeulich@suse.com>
>>>>>
>>>>> I have to object because the meaningless rename is going cause
>>>>> significant pain in the rebase of the follow-on series for no improved
>>>>> code clarity.
>>>>
>>>> Sorry, then an incremental patch undoing the rename that happened (with
>>>> appropriate justification) will need proposing - the patch here has gone
>>>> in already.
>>>
>>> Coming from a Linux background, ramdisk seemed more natural to me.  But
>>> looking at hvm_start_info, the fields are called module there.  And
>>> since we shouldn't tie this to the Linux naming, the more generic
>>> "module" name seemed fine to me.
>>
>> Again, as I have stated, ramdisk is not a Linux only concept. In fact,
>> as Jan points out, initrd/initramfs are Linux specific implementations
>> of a ramdisk for which Xen doesn't even fully support. I am inclined to
>> ask the inverse of why hvm_start_info uses the name module. But that
>> aside, let's consider the fact that the field is only populated by the
>> device tree when a module type of BOOTMOD_RAMDISK is matched. And all
>> the uses of the field are when its value is stored into a local variable
>> called initrd.
>>
>> Though the biggest irony is that generally obtuse abstraction are
>> routinely blocked unless there is a tangible future case. Yet none was
>> offered in the comment. Thus on that principle alone, a request for a
>> tangible future use should have been requested and provided for the
>> change to be considered.
> 
> Does it even need to be a _future_ use here? Aren't you working on
> abstracting domain creation, suitable (in principle) for all architectures?
> Isn't therefore a more generic name (as "module" is) preferable over a more
> specific one?

Yes we are trying to build a future capability, but my point is let's 
consider all possible known OS's start up today. What other boot module 
could potentially be passed in that is exclusive of a ramdisk, thus 
allowing a multiplex of the field. And the answer is none. The other 
potential modules that could be passed in will need to be able to be 
coexist with a ramdisk module being passed. The immediate examples I can 
point to are, an SELinux policy file or a guest device tree. I'm not too 
familiar, perhaps a Zephyr guest may only take a guest DT, but a Linux 
guest may take an initrd and a DT.

v/r,
dps




From xen-devel-bounces@lists.xenproject.org Wed Apr 16 14:03:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 14:03:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.956249.1349721 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u53M8-00035g-QQ; Wed, 16 Apr 2025 14:03:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 956249.1349721; Wed, 16 Apr 2025 14:03:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u53M8-00035X-Mc; Wed, 16 Apr 2025 14:03:12 +0000
Received: by outflank-mailman (input) for mailman id 956249;
 Wed, 16 Apr 2025 14:03: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=yQHX=XC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u53M7-00035M-D3
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 14:03:11 +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 86fd3435-1acb-11f0-9ffb-bf95429c2676;
 Wed, 16 Apr 2025 16:03:09 +0200 (CEST)
Received: by mail-wr1-x42a.google.com with SMTP id
 ffacd0b85a97d-39ee57c0b8cso609388f8f.0
 for <xen-devel@lists.xenproject.org>; Wed, 16 Apr 2025 07:03:09 -0700 (PDT)
Received: from [10.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-39eaf43d053sm17422070f8f.68.2025.04.16.07.03.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 16 Apr 2025 07:03: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: 86fd3435-1acb-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744812189; x=1745416989; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=+wx+uDd8vzaHfR7KOsrw3bWeB/ycZnKz/FmtX6GOeSE=;
        b=Wq5n5ykVuDTozuT/nxff18dsaZslcWdw+P9xbWYKjuKCH/qluZag01JAqMMf9BnjNF
         nSxhOE5zOM47sEXa8X+wnpGfMOMtGhv7fvxknWctu+qRVkkRd3vuaxt2FWnfJtajzCYX
         OO6t9YZncRo/i99uec6lJS8V99QY5SiimPlfSZOjfVMN3YWNCHxCT4RpclbH68oX5+kK
         cuC0jlEHZ7aICdcXOVC+aFKGXPKDrWLLoBoezg5ZkpBEmsRTk2o/x127q4JPY9I9uCR/
         dX2KON23eZCqxMCoVejimX7mk0Tdt9s27nLNf+k8s266mwG4rYcrRsgxmcITdPuyqr6Q
         +UbA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744812189; x=1745416989;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=+wx+uDd8vzaHfR7KOsrw3bWeB/ycZnKz/FmtX6GOeSE=;
        b=i/r30b3zIASgHRJdsR4KoamzaV9SIQcbmOUxWQisT2uki+NBq0Q6yZK0V4G4bY1HXV
         FmtFD9gf6OleUCbVBkJFuQc9cQdYx6saRsPnuR3ibLmPYIMTuccipnQNKmRYDoCPt704
         sUrryg6dGt9b3xV9jgqPErcYrTsx94t9q1lHNGAMAcqsgF9Z1MZ+OVnGP1d5KqgPzYGC
         dK/G8bTJxvtublXZcfxHNjxcREz7dcvG14l8vK7SP308mi7iTkFcvCm9B1tt+ONQbOUc
         9/M8zEcjjQVHeNIDhVKhvPujIgQPcJ0uPac+vvPmb0VDi80pj8ec9muz/kUncH4C/CTf
         zabg==
X-Forwarded-Encrypted: i=1; AJvYcCVXilg5tO+GO/TXG/YsPTvof2f6KHgO79f4AtvgRnVuk0yUKOnw1lK3rHyHPVUTosf/DmktnA9tEso=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxymnFVN9EVqSSo0AU3JyMomq5ieP0Eselpxgy21pVDguld9gBm
	TNAKn5UrhRXGAfINcKCfVKgRJW8jnWEv21ZMS73DRC6iUjjw8+FogvJ+nlzZKQ==
X-Gm-Gg: ASbGncvv0Psfolb7nlHyA0i4Ro/tqwfD3DMX7PU547VgV6RX//81h0jzTIQha9FJASX
	O/Tbu1DnpqM5NUJRXdVSpBJ/oiXCl4fs5e+FSRGaqyohy2wRW1a7u4sSbSYg2f426pA+gkYe+vu
	4W6gZSgSSZKjc/AeX7DzrCm506vXtSbWF2lmB6P1v9Wv8VE46R1tyJZcwEpeXQep4DMlldsJ79g
	vjIOg8YcFlkOiN+TYDGzgRrHHDTdqpHPHyBNzL7oP7CszgsJowMmXMH7/1Fw65P9e9hiewtROam
	+sLXHfAQ1NwAhSPejQl9SOfSIpFZ8UbsNzybx9TRzZsfttdpJku0eqN5b8KBzWubZ3x9qmMbfLR
	vOqEts3ju7R198bf1NFsYD8P2Og==
X-Google-Smtp-Source: AGHT+IEAmsgDwHb8HzxHJPEIoOcUJ2fpf5l4HJUVVZOv1uu4PXfU5FbCZ5xkocVF2iCdUnmjw4ecPg==
X-Received: by 2002:a5d:6dac:0:b0:39c:268e:ae04 with SMTP id ffacd0b85a97d-39ee5add7admr1912070f8f.0.1744812188745;
        Wed, 16 Apr 2025 07:03:08 -0700 (PDT)
Message-ID: <f6bd2fef-f3d8-46d6-9b65-d79974dd214c@suse.com>
Date: Wed, 16 Apr 2025 16:03:07 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 05/15] xen/decompressors: Remove use of *_to_cpup()
 helpers
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Lin Liu <lin.liu@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Shawn Anastasio <sanastasio@raptorengineering.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 "Daniel P . Smith" <dpsmith@apertussolutions.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250416115900.2491661-1-andrew.cooper3@citrix.com>
 <20250416115900.2491661-6-andrew.cooper3@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20250416115900.2491661-6-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 16.04.2025 13:58, Andrew Cooper wrote:
> From: Lin Liu <lin.liu@citrix.com>
> 
> These wrappers simply hide a deference, which adds to the cognitive complexity
> of reading the code.  As such, they're not going to be included in the new
> byteswap infrastructure.
> 
> No functional change.
> 
> Signed-off-by: Lin Liu <lin.liu@citrix.com>
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Reviewed-by: Jan Beulich <jbeulich@suse.com> # hypervisor
with a request below.

> --- a/tools/libs/guest/xg_dom_decompress_unsafe_xz.c
> +++ b/tools/libs/guest/xg_dom_decompress_unsafe_xz.c
> @@ -19,18 +19,19 @@ typedef uint32_t __le32;
>  static inline u32 cpu_to_le32(const u32 v)
>  {
>  #if BYTE_ORDER == BIG_ENDIAN
> -	return (((v & 0x000000ffUL) << 24) |
> -	        ((v & 0x0000ff00UL) <<  8) |
> -	        ((v & 0x00ff0000UL) >>  8) |
> -	        ((v & 0xff000000UL) >> 24));
> +        return __builtin_bswap32(v);

Supposedly a hard tab is to be used for indentation here, if original code
and ...

>  #else
>  	return v;

... this is to be trusted.

>  #endif
>  }
>  
> -static inline u32 le32_to_cpup(const u32 *p)
> +static inline u32 le32_to_cpu(const u32 p)
>  {
> -	return cpu_to_le32(*p);
> +#if BYTE_ORDER == BIG_ENDIAN
> +        return __builtin_bswap32(v);
> +#else
> +	return v;
> +#endif
>  }

Same here.

> --- a/xen/common/lz4/defs.h
> +++ b/xen/common/lz4/defs.h
> @@ -18,7 +18,11 @@
>  
>  static inline u16 get_unaligned_le16(const void *p)
>  {
> -	return le16_to_cpup(p);
> +	u16 v;

Here and below - I realize there's u16 in context (u32 elsewhere), yet it would
still be nice if no new instances appeared and you used uint16_t here (and
uint32_t in the other cases).

Jan


From xen-devel-bounces@lists.xenproject.org Wed Apr 16 14:06:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 14:06:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.956266.1349731 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u53P1-0004Iv-6g; Wed, 16 Apr 2025 14:06:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 956266.1349731; Wed, 16 Apr 2025 14: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 1u53P1-0004Io-3h; Wed, 16 Apr 2025 14:06:11 +0000
Received: by outflank-mailman (input) for mailman id 956266;
 Wed, 16 Apr 2025 14:06: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=yQHX=XC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u53P0-0004Ii-E3
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 14:06:10 +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 f1932962-1acb-11f0-9ffb-bf95429c2676;
 Wed, 16 Apr 2025 16:06:08 +0200 (CEST)
Received: by mail-wr1-x42a.google.com with SMTP id
 ffacd0b85a97d-3914bc3e01aso3969074f8f.2
 for <xen-devel@lists.xenproject.org>; Wed, 16 Apr 2025 07:06:08 -0700 (PDT)
Received: from [10.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-39eae96c102sm17406756f8f.35.2025.04.16.07.06.06
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 16 Apr 2025 07:06: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: f1932962-1acb-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744812368; x=1745417168; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=2YQA0bIWNvVtSiL+nWCvAaBrn83BvVRQW5HKrzobT9Y=;
        b=cAphWckVmtvVAubA6spbnybMFl1nqCCw1EwY700XNLLuZy1qI3E8x0Tx3p4Jz3eRkH
         T1yHhz9EHHdwasL9+IdfTCKO21ZJ9fjvYNIUEuhoM32EIqmES/zPjUdGFEQFYZ0Xdx8o
         +LT1tqtLyNIiMQ4t1Y1sxSkL1py3j64v2P9QP3EuBNmSpmhi4BMHheqaIRArB49EqEie
         nqw5EJYfIrnDZCOLssp/45xMRQtLtzEJ1VN2aan2LDbLJAd5qlhhiYxHoQLLUSCmejb/
         Qm8DZ4V5BSWxN850y4FIfPE+HWXSV/ZaFUunJAx9CgvYCFOpX42/mhUyg/3bPjauRGCQ
         fhKQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744812368; x=1745417168;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=2YQA0bIWNvVtSiL+nWCvAaBrn83BvVRQW5HKrzobT9Y=;
        b=IYhlrb+9UnIQ6/NNOf0JcsAlRQaDP6s97naDuL4i+gjcN2/w+V1uXiy8yxG/LfzYS/
         oQjGsPj1/1tooQGPM3/fGi80YGCIafI9+2Xtnj2zhFmdLmWnD2bnwT1JLyzaC2wzyls2
         ZDq8kebTMCnm5ufl5moM5dHX6XO2U9bUGxwnyFY11gYBCgEo5uOuunBGAtPTYpbN3CyS
         8/pOC5ODWsq4/1Fcx6w5qU5Jl98YORfOOdeKGHbL4RBDGyK/29AEMyGSVG55JrKaurug
         mKQM6uD90iHzVGnED96D2xLykOHHF01EtbwXGmUeKeM3Zai7QeFXjviBYmU5LwPP5Y8+
         9Esw==
X-Forwarded-Encrypted: i=1; AJvYcCVaMjkcxBdLLJAc+QLyr3kERu6mH2qmS/Onp1u/Bfyk4aCKuguYW2f5ljXc7UVK/W3q1xxwZ8ijw/w=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyLCz/s31nc5h8JUAfa4hY1Hui3b05QvBX67V2BQRmZWMnNfYP9
	f4scw5Z2JqPb6PRQE9/JUwAgjYvueAPuNGLO242fDrcLPe+2/g8LBrjL534QDg==
X-Gm-Gg: ASbGncsWPpuizoS+dKpNHSxrk22Njd/24qm4FxeOmHPiWRUePC5vhjGEcC4bDU3zfFL
	wlgbDlclU91Uoy4+NUxDsmp0f21L/bFTJRWBfxJ8wUhXRYsMy30Nv0WGb9jeyJ8B+E4Blq4Dv1F
	RMQrl0ns5JKpMHxMfex9AMvmySPvF5GKX+WpAxR795CZ3859Y0iAiTfmfJS9FLbwI4zo1l0TZdd
	H8kbevlPC18oTwgOuzTf892P0ZYqR53ndbUs9E1WYG9dbtjXuA9bTJFW2474otWt8TvucG4xsC6
	goqd0dHPUwVb9DjCOEZw3qriaWrnMttVIab2N6JD/gcW64tqK6acEINgfmRrJrhiJ39k3804tdx
	XVcSkdnwvKKnQzpXaOSTMxjYFGJ8qbGDVh4o2
X-Google-Smtp-Source: AGHT+IEfhZJRGv3RNolhLZwPY9WCeqQlING39Yfg/0MOuDHuaKQYbbZUuZtTaVxPXO6TuYTrkrfZlQ==
X-Received: by 2002:a5d:64ae:0:b0:39c:1efb:ec9a with SMTP id ffacd0b85a97d-39ee5b13b3emr1921756f8f.6.1744812367724;
        Wed, 16 Apr 2025 07:06:07 -0700 (PDT)
Message-ID: <942e7f24-1ecc-465c-9cf2-54388a88173a@suse.com>
Date: Wed, 16 Apr 2025 16:06:06 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 01/16] x86/boot: introduce boot domain
To: "Daniel P. Smith" <dpsmith@apertussolutions.com>
Cc: Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Michal Orzel <michal.orzel@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, Alejandro Vallejo <agarciav@amd.com>,
 Jason Andryuk <jason.andryuk@amd.com>
References: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-2-agarciav@amd.com>
 <141229a0-2cd2-4886-b5e5-02c85b0ca5ab@suse.com>
 <7fa754f8-d785-45d8-b9da-de5c85bc793b@apertussolutions.com>
 <f0a14866-0f38-4f8d-8e11-993a58c7da7b@suse.com>
 <644cdc5a-b96a-4e43-ae7a-4cadda1d1084@amd.com>
 <3832bb2b-978c-4990-928c-c18a003adcf4@apertussolutions.com>
 <73c8dacd-c1d7-459e-ac18-decaa5c9c5bd@suse.com>
 <6517f3ca-1329-4591-9ccc-e6be5af31e44@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: <6517f3ca-1329-4591-9ccc-e6be5af31e44@apertussolutions.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 16.04.2025 16:00, Daniel P. Smith wrote:
> 
> 
> V/r,
> Daniel P. Smith
> Apertus Solutions, LLC
> 
> On 4/16/25 09:33, Jan Beulich wrote:
>> On 16.04.2025 15:02, Daniel P. Smith wrote:
>>> On 4/10/25 16:56, Jason Andryuk wrote:
>>>> On 2025-04-10 11:01, Jan Beulich wrote:
>>>>> On 10.04.2025 15:09, Daniel P. Smith wrote:
>>>>>> On 4/9/25 02:24, Jan Beulich wrote:
>>>>>>> On 08.04.2025 18:07, Alejandro Vallejo wrote:
>>>>>>>> From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
>>>>>>>>
>>>>>>>> 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>
>>>>>>>
>>>>>>> Acked-by: Jan Beulich <jbeulich@suse.com>
>>>>>>
>>>>>> I have to object because the meaningless rename is going cause
>>>>>> significant pain in the rebase of the follow-on series for no improved
>>>>>> code clarity.
>>>>>
>>>>> Sorry, then an incremental patch undoing the rename that happened (with
>>>>> appropriate justification) will need proposing - the patch here has gone
>>>>> in already.
>>>>
>>>> Coming from a Linux background, ramdisk seemed more natural to me.  But
>>>> looking at hvm_start_info, the fields are called module there.  And
>>>> since we shouldn't tie this to the Linux naming, the more generic
>>>> "module" name seemed fine to me.
>>>
>>> Again, as I have stated, ramdisk is not a Linux only concept. In fact,
>>> as Jan points out, initrd/initramfs are Linux specific implementations
>>> of a ramdisk for which Xen doesn't even fully support. I am inclined to
>>> ask the inverse of why hvm_start_info uses the name module. But that
>>> aside, let's consider the fact that the field is only populated by the
>>> device tree when a module type of BOOTMOD_RAMDISK is matched. And all
>>> the uses of the field are when its value is stored into a local variable
>>> called initrd.
>>>
>>> Though the biggest irony is that generally obtuse abstraction are
>>> routinely blocked unless there is a tangible future case. Yet none was
>>> offered in the comment. Thus on that principle alone, a request for a
>>> tangible future use should have been requested and provided for the
>>> change to be considered.
>>
>> Does it even need to be a _future_ use here? Aren't you working on
>> abstracting domain creation, suitable (in principle) for all architectures?
>> Isn't therefore a more generic name (as "module" is) preferable over a more
>> specific one?
> 
> Yes we are trying to build a future capability, but my point is let's 
> consider all possible known OS's start up today. What other boot module 
> could potentially be passed in that is exclusive of a ramdisk, thus 
> allowing a multiplex of the field. And the answer is none.

Is it? What if you are to start a nested Xen with its own kernel, initrd
and perhaps even an XSM policy "module"? Or anything else that is multi-
module capable (possibly but not necessarily because of having started
out as multiboot)?

Jan


From xen-devel-bounces@lists.xenproject.org Wed Apr 16 14:09:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 14:09:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.956278.1349740 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u53SO-0004sY-Ku; Wed, 16 Apr 2025 14:09:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 956278.1349740; Wed, 16 Apr 2025 14:09: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 1u53SO-0004sR-IL; Wed, 16 Apr 2025 14:09:40 +0000
Received: by outflank-mailman (input) for mailman id 956278;
 Wed, 16 Apr 2025 14:09: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=S7a8=XC=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1u53SN-0004sL-B5
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 14:09:39 +0000
Received: from sender4-of-o50.zoho.com (sender4-of-o50.zoho.com
 [136.143.188.50]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6cb90560-1acc-11f0-9ffb-bf95429c2676;
 Wed, 16 Apr 2025 16:09:36 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 1744812565751917.8576138284637;
 Wed, 16 Apr 2025 07:09: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: 6cb90560-1acc-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; t=1744812568; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=BCis9hV7oWV6F1kyeKaEJ497qn1iFleMTzUyoB/LysVY1/QFABhTJw8bLmyb4lEalxlkFRC6Hu0ypwvOamG1LepTf++3hB0z++hRphvYMc2cxEhgF0vRYXW6rMQp7LMDOr9X8yziXddAXE0LT5s/pwdpkXdARfUfcAudBW4KVJk=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1744812568; 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=bgJEe1PXQwKcecuib65KktJ9XTH1TD3iCEqg49HXt8g=; 
	b=ilDT0vREVbrTOG/GO+eCIuKxW5CzAfa1WWmMqghmRyfUbNh4kKa5bKjP/ZyWYHv6iJFp3uTu1ZhO8WwlEGBarRUnttK7sD8QBOVnhymfAkATXagjVQOeD3Hfk2g6bhjUsAHtBpLXFPhVDogjn+HZPnafpiU3GzwluXBb7wMglxQ=
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=1744812568;
	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=bgJEe1PXQwKcecuib65KktJ9XTH1TD3iCEqg49HXt8g=;
	b=RD30UROEt+Wn6aOC2gcDxhGk7CWXbxPmOrv4TNlZ42WEg4Xf8Q6hIIJGN+bIhj3D
	8PlFlvwEfZxibvseHZw94jZLbPRj3/Tbng5oRAaEu69F/04UZf3QGx5rpDanC6pPug+
	EnAPQcoZwipI5ZSTAuzZIZOsWAicVavu0AyBEJx0=
Message-ID: <e78a9dcd-3fa3-4c66-860d-3d2b8206b67c@apertussolutions.com>
Date: Wed, 16 Apr 2025 10:09:24 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 13/16] x86/hyperlaunch: specify dom0 mode with device
 tree
Content-Language: en-US
To: Jan Beulich <jbeulich@suse.com>
Cc: Jason Andryuk <jason.andryuk@amd.com>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Michal Orzel <michal.orzel@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, Alejandro Vallejo <agarciav@amd.com>
References: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-14-agarciav@amd.com>
 <7a13e61b-8568-4852-bb46-974964e02d61@suse.com>
 <82fe6290-ea16-4e4f-8be4-76b9b624e398@apertussolutions.com>
 <c9290102-d29d-4c54-9052-995e960e4ea0@suse.com>
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
Autocrypt: addr=dpsmith@apertussolutions.com; keydata=
 xsJuBFYrueARCACPWL3r2bCSI6TrkIE/aRzj4ksFYPzLkJbWLZGBRlv7HQLvs6i/K4y/b4fs
 JDq5eL4e9BdfdnZm/b+K+Gweyc0Px2poDWwKVTFFRgxKWq9R7McwNnvuZ4nyXJBVn7PTEn/Z
 G7D08iZg94ZsnUdeXfgYdJrqmdiWA6iX9u84ARHUtb0K4r5WpLUMcQ8PVmnv1vVrs/3Wy/Rb
 foxebZNWxgUiSx+d02e3Ad0aEIur1SYXXv71mqKwyi/40CBSHq2jk9eF6zmEhaoFi5+MMMgX
 X0i+fcBkvmT0N88W4yCtHhHQds+RDbTPLGm8NBVJb7R5zbJmuQX7ADBVuNYIU8hx3dF3AQCm
 601w0oZJ0jGOV1vXQgHqZYJGHg5wuImhzhZJCRESIwf+PJxik7TJOgBicko1hUVOxJBZxoe0
 x+/SO6tn+s8wKlR1Yxy8gYN9ZRqV2I83JsWZbBXMG1kLzV0SAfk/wq0PAppA1VzrQ3JqXg7T
 MZ3tFgxvxkYqUP11tO2vrgys+InkZAfjBVMjqXWHokyQPpihUaW0a8mr40w9Qui6DoJj7+Gg
 DtDWDZ7Zcn2hoyrypuht88rUuh1JuGYD434Q6qwQjUDlY+4lgrUxKdMD8R7JJWt38MNlTWvy
 rMVscvZUNc7gxcmnFUn41NPSKqzp4DDRbmf37Iz/fL7i01y7IGFTXaYaF3nEACyIUTr/xxi+
 MD1FVtEtJncZNkRn7WBcVFGKMAf+NEeaeQdGYQ6mGgk++i/vJZxkrC/a9ZXme7BhWRP485U5
 sXpFoGjdpMn4VlC7TFk2qsnJi3yF0pXCKVRy1ukEls8o+4PF2JiKrtkCrWCimB6jxGPIG3lk
 3SuKVS/din3RHz+7Sr1lXWFcGYDENmPd/jTwr1A1FiHrSj+u21hnJEHi8eTa9029F1KRfocp
 ig+k0zUEKmFPDabpanI323O5Tahsy7hwf2WOQwTDLvQ+eqQu40wbb6NocmCNFjtRhNZWGKJS
 b5GrGDGu/No5U6w73adighEuNcCSNBsLyUe48CE0uTO7eAL6Vd+2k28ezi6XY4Y0mgASJslb
 NwW54LzSSM0uRGFuaWVsIFAuIFNtaXRoIDxkcHNtaXRoQGFwZXJ0dXNzb2x1dGlvbnMuY29t
 PsJ6BBMRCAAiBQJWK7ngAhsjBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRBTc6WbYpR8
 KrQ9AP94+xjtFfJ8gj5c7PVx06Zv9rcmFUqQspZ5wSEkvxOuQQEAg6qEsPYegI7iByLVzNEg
 7B7fUG7pqWIfMqFwFghYhQzOwU0EViu54BAIAL6MXXNlrJ5tRUf+KMBtVz1LJQZRt/uxWrCb
 T06nZjnbp2UcceuYNbISOVHGXTzu38r55YzpkEA8eURQf+5hjtvlrOiHxvpD+Z6WcpV6rrMB
 kcAKWiZTQihW2HoGgVB3gwG9dCh+n0X5OzliAMiGK2a5iqnIZi3o0SeW6aME94bSkTkuj6/7
 OmH9KAzK8UnlhfkoMg3tXW8L6/5CGn2VyrjbB/rcrbIR4mCQ+yCUlocuOjFCJhBd10AG1IcX
 OXUa/ux+/OAV9S5mkr5Fh3kQxYCTcTRt8RY7+of9RGBk10txi94dXiU2SjPbassvagvu/hEi
 twNHms8rpkSJIeeq0/cAAwUH/jV3tXpaYubwcL2tkk5ggL9Do+/Yo2WPzXmbp8vDiJPCvSJW
 rz2NrYkd/RoX+42DGqjfu8Y04F9XehN1zZAFmCDUqBMa4tEJ7kOT1FKJTqzNVcgeKNBGcT7q
 27+wsqbAerM4A0X/F/ctjYcKwNtXck1Bmd/T8kiw2IgyeOC+cjyTOSwKJr2gCwZXGi5g+2V8
 NhJ8n72ISPnOh5KCMoAJXmCF+SYaJ6hIIFARmnuessCIGw4ylCRIU/TiXK94soilx5aCqb1z
 ke943EIUts9CmFAHt8cNPYOPRd20pPu4VFNBuT4fv9Ys0iv0XGCEP+sos7/pgJ3gV3pCOric
 p15jV4PCYQQYEQgACQUCViu54AIbDAAKCRBTc6WbYpR8Khu7AP9NJrBUn94C/3PeNbtQlEGZ
 NV46Mx5HF0P27lH3sFpNrwD/dVdZ5PCnHQYBZ287ZxVfVr4Zuxjo5yJbRjT93Hl0vMY=
In-Reply-To: <c9290102-d29d-4c54-9052-995e960e4ea0@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ZohoMailClient: External

On 4/16/25 09:38, Jan Beulich wrote:
> On 16.04.2025 15:32, Daniel P. Smith wrote:
>> On 4/10/25 07:57, Jan Beulich wrote:
>>> On 08.04.2025 18:07, Alejandro Vallejo wrote:
>>>> --- a/xen/arch/x86/domain-builder/fdt.c
>>>> +++ b/xen/arch/x86/domain-builder/fdt.c
>>>> @@ -193,6 +193,25 @@ static int __init process_domain_node(
>>>>                bd->domid = (domid_t)val;
>>>>                printk("  domid: %d\n", bd->domid);
>>>>            }
>>>> +        else if ( strncmp(prop_name, "mode", name_len) == 0 )
>>>> +        {
>>>> +            if ( fdt_prop_as_u32(prop, &bd->mode) != 0 )
>>>> +            {
>>>> +                printk("  failed processing mode for domain %s\n", 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");
>>>> +        }
>>>
>>> My prior questions here remain: What's the significance of
>>> BUILD_MODE_ENABLE_DM when set alongside BUILD_MODE_PARAVIRT? What about
>>> any of the other bits being set?
>>
>>   From boot-domain.h:
>>                                             /* On     | Off    */
>> #define BUILD_MODE_PARAVIRT      (1 << 0) /* PV     | PVH/HVM */
>> #define BUILD_MODE_ENABLE_DM     (1 << 1) /* HVM    | PVH     */
>>
>> The logic says, if BUILD_MODE_PARAVIRT bit is not set, thus an HVM
>> domain, check if BUILD_MODE_ENABLE_DM has been set. This is determin if
>> the domain is what the toolstack differentiates as either an HVM or PVH
>> domain. As you should know, there is no case of a PV domain requiring a
>> backing device mode (DM) domain. IOW, BUILD_MODE_ENABLE_DM is only
>> relevant to an HVM domain.
> 
> And hence should (my conclusion) never be set for a PV one.

Yes and?

> Except - how wide or narrow do you mean "DM"? There are certainly cases
> where a PV guest requires a qemu to serve as backend for one or more
> devices. That's not what "DM" originally meant, but it goes in that
> direction. Hence just to avoid such an ambiguity I think it's better to
> properly reject any flags / flag combinations that we can't make sense
> of.

OpenXT has done this for since it was XenClientXT, and those are driver 
domains. We do distinguish between the two because a device model domain 
is specific to provide the larger core device plane to a domain. While a 
driver domain is a much narrower scope of providing a specific emulated 
hardware device to one or more domains. As a result, they have totally 
different security policies applied to them.

v/r,
dps


From xen-devel-bounces@lists.xenproject.org Wed Apr 16 14:12:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 14:12:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.956289.1349750 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u53Ut-0006mE-0g; Wed, 16 Apr 2025 14:12:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 956289.1349750; Wed, 16 Apr 2025 14:12: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 1u53Us-0006m7-UI; Wed, 16 Apr 2025 14:12:14 +0000
Received: by outflank-mailman (input) for mailman id 956289;
 Wed, 16 Apr 2025 14:12: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=S7a8=XC=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1u53Us-0006ll-3I
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 14:12:14 +0000
Received: from sender4-of-o50.zoho.com (sender4-of-o50.zoho.com
 [136.143.188.50]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c97b0452-1acc-11f0-9ffb-bf95429c2676;
 Wed, 16 Apr 2025 16:12:11 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 1744812723172683.7635562943351;
 Wed, 16 Apr 2025 07:12: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: c97b0452-1acc-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; t=1744812725; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=QHNLL+5vmdKvqVw1qzJgvTbiYi0Bnehjd0xotZRy83b3a/19/HT5cQOgcMF5093r3ZnE8oGrBVccAOvnZz0Sd1E8q9rm+U79JQav6qkrijutMd1DumltC4aEcKlVD8UsZCRTXI8WIUvINqivELsVVSMKc1wdjvGyboEIe82Xe1g=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1744812725; 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=HjHIDCJ6vhRgTl/TRb3i+ubzpsPbyIkzA8+8I4xIEiU=; 
	b=DMeFLj43iMxs36/7uwgRBOQtfniYZYlatnOQnWTCF8Bj3z5zb8DBZXE6d49Px3JO5DESYOPZQLvyC1r1y11HmuU9t+fhYHsKbek4lAWki7Ibs1Le7FPrDwmWWLAquw607DB+vTBR7NjC13JBx3JqVGegZxnprlfZV/NtjUD8xQ8=
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=1744812725;
	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=HjHIDCJ6vhRgTl/TRb3i+ubzpsPbyIkzA8+8I4xIEiU=;
	b=qV5JEjZAsO2dGbqZhyUM8MNPwxVHrWcnqCFFZrbCSMX1khsjpTvAkhlss+mbZTUR
	n0Fk3NQNu4/ftKob07vrDMinJbO+2DHqMQ+tc6gDl5RyxilDWhDsXhu4Gi09bD2xu3x
	VabSjakMqSZ+WCvsdd7BlZP/B/i+BmCD9KV8SMog=
Message-ID: <d47ce533-bc0a-472f-ad11-e350150410b9@apertussolutions.com>
Date: Wed, 16 Apr 2025 10:12:01 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 14/16] x86/hyperlaunch: add memory parsing to domain
 config
Content-Language: en-US
To: Jan Beulich <jbeulich@suse.com>
Cc: Jason Andryuk <jason.andryuk@amd.com>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Michal Orzel <michal.orzel@amd.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Julien Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 xen-devel@lists.xenproject.org, Alejandro Vallejo <agarciav@amd.com>
References: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-15-agarciav@amd.com>
 <e78824bc-3b0a-406e-80ac-5a67b127254f@suse.com>
 <2fe06df0-ee92-4466-a532-ff246efffdac@apertussolutions.com>
 <1c12c10f-02e3-4b12-a890-205d3fa0ca39@suse.com>
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
Autocrypt: addr=dpsmith@apertussolutions.com; keydata=
 xsJuBFYrueARCACPWL3r2bCSI6TrkIE/aRzj4ksFYPzLkJbWLZGBRlv7HQLvs6i/K4y/b4fs
 JDq5eL4e9BdfdnZm/b+K+Gweyc0Px2poDWwKVTFFRgxKWq9R7McwNnvuZ4nyXJBVn7PTEn/Z
 G7D08iZg94ZsnUdeXfgYdJrqmdiWA6iX9u84ARHUtb0K4r5WpLUMcQ8PVmnv1vVrs/3Wy/Rb
 foxebZNWxgUiSx+d02e3Ad0aEIur1SYXXv71mqKwyi/40CBSHq2jk9eF6zmEhaoFi5+MMMgX
 X0i+fcBkvmT0N88W4yCtHhHQds+RDbTPLGm8NBVJb7R5zbJmuQX7ADBVuNYIU8hx3dF3AQCm
 601w0oZJ0jGOV1vXQgHqZYJGHg5wuImhzhZJCRESIwf+PJxik7TJOgBicko1hUVOxJBZxoe0
 x+/SO6tn+s8wKlR1Yxy8gYN9ZRqV2I83JsWZbBXMG1kLzV0SAfk/wq0PAppA1VzrQ3JqXg7T
 MZ3tFgxvxkYqUP11tO2vrgys+InkZAfjBVMjqXWHokyQPpihUaW0a8mr40w9Qui6DoJj7+Gg
 DtDWDZ7Zcn2hoyrypuht88rUuh1JuGYD434Q6qwQjUDlY+4lgrUxKdMD8R7JJWt38MNlTWvy
 rMVscvZUNc7gxcmnFUn41NPSKqzp4DDRbmf37Iz/fL7i01y7IGFTXaYaF3nEACyIUTr/xxi+
 MD1FVtEtJncZNkRn7WBcVFGKMAf+NEeaeQdGYQ6mGgk++i/vJZxkrC/a9ZXme7BhWRP485U5
 sXpFoGjdpMn4VlC7TFk2qsnJi3yF0pXCKVRy1ukEls8o+4PF2JiKrtkCrWCimB6jxGPIG3lk
 3SuKVS/din3RHz+7Sr1lXWFcGYDENmPd/jTwr1A1FiHrSj+u21hnJEHi8eTa9029F1KRfocp
 ig+k0zUEKmFPDabpanI323O5Tahsy7hwf2WOQwTDLvQ+eqQu40wbb6NocmCNFjtRhNZWGKJS
 b5GrGDGu/No5U6w73adighEuNcCSNBsLyUe48CE0uTO7eAL6Vd+2k28ezi6XY4Y0mgASJslb
 NwW54LzSSM0uRGFuaWVsIFAuIFNtaXRoIDxkcHNtaXRoQGFwZXJ0dXNzb2x1dGlvbnMuY29t
 PsJ6BBMRCAAiBQJWK7ngAhsjBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRBTc6WbYpR8
 KrQ9AP94+xjtFfJ8gj5c7PVx06Zv9rcmFUqQspZ5wSEkvxOuQQEAg6qEsPYegI7iByLVzNEg
 7B7fUG7pqWIfMqFwFghYhQzOwU0EViu54BAIAL6MXXNlrJ5tRUf+KMBtVz1LJQZRt/uxWrCb
 T06nZjnbp2UcceuYNbISOVHGXTzu38r55YzpkEA8eURQf+5hjtvlrOiHxvpD+Z6WcpV6rrMB
 kcAKWiZTQihW2HoGgVB3gwG9dCh+n0X5OzliAMiGK2a5iqnIZi3o0SeW6aME94bSkTkuj6/7
 OmH9KAzK8UnlhfkoMg3tXW8L6/5CGn2VyrjbB/rcrbIR4mCQ+yCUlocuOjFCJhBd10AG1IcX
 OXUa/ux+/OAV9S5mkr5Fh3kQxYCTcTRt8RY7+of9RGBk10txi94dXiU2SjPbassvagvu/hEi
 twNHms8rpkSJIeeq0/cAAwUH/jV3tXpaYubwcL2tkk5ggL9Do+/Yo2WPzXmbp8vDiJPCvSJW
 rz2NrYkd/RoX+42DGqjfu8Y04F9XehN1zZAFmCDUqBMa4tEJ7kOT1FKJTqzNVcgeKNBGcT7q
 27+wsqbAerM4A0X/F/ctjYcKwNtXck1Bmd/T8kiw2IgyeOC+cjyTOSwKJr2gCwZXGi5g+2V8
 NhJ8n72ISPnOh5KCMoAJXmCF+SYaJ6hIIFARmnuessCIGw4ylCRIU/TiXK94soilx5aCqb1z
 ke943EIUts9CmFAHt8cNPYOPRd20pPu4VFNBuT4fv9Ys0iv0XGCEP+sos7/pgJ3gV3pCOric
 p15jV4PCYQQYEQgACQUCViu54AIbDAAKCRBTc6WbYpR8Khu7AP9NJrBUn94C/3PeNbtQlEGZ
 NV46Mx5HF0P27lH3sFpNrwD/dVdZ5PCnHQYBZ287ZxVfVr4Zuxjo5yJbRjT93Hl0vMY=
In-Reply-To: <1c12c10f-02e3-4b12-a890-205d3fa0ca39@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ZohoMailClient: External



V/r,
Daniel P. Smith
Apertus Solutions, LLC

On 4/16/25 09:41, Jan Beulich wrote:
> On 16.04.2025 15:37, Daniel P. Smith wrote:
>> On 4/10/25 08:03, Jan Beulich wrote:
>>> On 08.04.2025 18:07, Alejandro Vallejo wrote:
>>>> @@ -212,6 +213,39 @@ static int __init process_domain_node(
>>>>                else
>>>>                    printk("PV\n");
>>>>            }
>>>> +        else if ( strncmp(prop_name, "memory", name_len) == 0 )
>>>> +        {
>>>> +            uint64_t kb;
>>>> +            if ( fdt_prop_as_u64(prop, &kb) != 0 )
>>>
>>> Nit (you know what I have to say here, and again below.)
>>>
>>>> +            {
>>>> +                printk("  failed processing memory for domain %s\n", name);
>>>> +                return -EINVAL;
>>>
>>> Any reason to override fdt_prop_as_u64()'s return value here?
>>
>> IMHO this should be a function that libfdt should provide, but altering
>> libftd directly would make uprev'ing it challenging. The least I could
>> do is make the function behave like the rest of libfdt's helper functions.
> 
> How's this related to the question that I raised? I didn't question the
> function, but a particular aspect of the specific use that is being made
> of it here.

Your question was, "Any reason to override fdt_prop_as_u64()'s return 
value here?"

And my answer was, I copied libfdt's behavior for its helper functions. 
IOW, to have the helper behave like libfdt's other helper functions.

v/r,
dps


From xen-devel-bounces@lists.xenproject.org Wed Apr 16 14:16:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 14:16:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.956307.1349761 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u53Yz-0007lQ-L8; Wed, 16 Apr 2025 14:16:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 956307.1349761; Wed, 16 Apr 2025 14:16:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u53Yz-0007lJ-I1; Wed, 16 Apr 2025 14:16:29 +0000
Received: by outflank-mailman (input) for mailman id 956307;
 Wed, 16 Apr 2025 14:16: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=S7a8=XC=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1u53Yy-0007l7-0T
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 14:16:28 +0000
Received: from sender4-of-o50.zoho.com (sender4-of-o50.zoho.com
 [136.143.188.50]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 60d804c3-1acd-11f0-9ffb-bf95429c2676;
 Wed, 16 Apr 2025 16:16:25 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 1744812973813240.51349859644517;
 Wed, 16 Apr 2025 07:16:13 -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: 60d804c3-1acd-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; t=1744812977; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=Gu4BwFNIjwpIrAoaRHAWYLdmk2Y33B/KrTwlPpk6M4VvYpp8pLfpZCjoSCKMuMZIWeM3HpnYSQy3R9lHrGmJNhJjwVnQK4/oU334+g15fGLdjPlYcu9uMXA/qfHqx0AZAckVM+Rrc8JD7ZQ++qapEgiVKDZo2l/Uq0Qnex6q3m8=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1744812977; 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=cQIyiemSxOZkLF6XJYj9N4LADbRvGZiU+V8Pl+4IyoM=; 
	b=NdZxdQ+EhSyw/t/hKn8+KWfy5SLYdjWJYrFap9TstnWMdyqN6vq1miSCh1lAVAobpPhwloMIgKY1eHsOx//+b7xPkbmcNbdZvI6/mXD5rY5b25/zgP1DCFTqNOTYAtSF8/CmuOxWdpwc8umNBGbHxYHu//lRwndNUPI87kbHHxk=
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=1744812977;
	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=cQIyiemSxOZkLF6XJYj9N4LADbRvGZiU+V8Pl+4IyoM=;
	b=mgxoU0GfBhCCKkEfe80goEaE7HlXrpKbhKivGN7qTST/vJuC4TotZ4alnd6JCI5G
	96gHn5wbdHn6wX4k2e/Y/PMA5Gdqidr6nxN4AwzUF12FFIQ1zpcbB28CAhxqU8FXse2
	sONEZHvMNYLRo9BjGurkfz69SKyA/xHY8IG+fJ7w=
Message-ID: <f5cf7e17-c14f-4b34-bcdf-377776875136@apertussolutions.com>
Date: Wed, 16 Apr 2025 10:16:12 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 15/16] x86/hyperlaunch: add max vcpu parsing of
 hyperlaunch device tree
Content-Language: en-US
To: Alejandro Vallejo <agarciav@amd.com>, Jan Beulich <jbeulich@suse.com>
Cc: Jason Andryuk <jason.andryuk@amd.com>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Michal Orzel <michal.orzel@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: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-16-agarciav@amd.com>
 <c1e5af91-8f84-458d-a9b8-ab9758b5cbce@suse.com>
 <5a674e65-77bc-4d07-a4e3-2fa2c96bb37e@apertussolutions.com>
 <D9844FO74PFM.3R6HB5K2JXAOR@amd.com>
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
Autocrypt: addr=dpsmith@apertussolutions.com; keydata=
 xsJuBFYrueARCACPWL3r2bCSI6TrkIE/aRzj4ksFYPzLkJbWLZGBRlv7HQLvs6i/K4y/b4fs
 JDq5eL4e9BdfdnZm/b+K+Gweyc0Px2poDWwKVTFFRgxKWq9R7McwNnvuZ4nyXJBVn7PTEn/Z
 G7D08iZg94ZsnUdeXfgYdJrqmdiWA6iX9u84ARHUtb0K4r5WpLUMcQ8PVmnv1vVrs/3Wy/Rb
 foxebZNWxgUiSx+d02e3Ad0aEIur1SYXXv71mqKwyi/40CBSHq2jk9eF6zmEhaoFi5+MMMgX
 X0i+fcBkvmT0N88W4yCtHhHQds+RDbTPLGm8NBVJb7R5zbJmuQX7ADBVuNYIU8hx3dF3AQCm
 601w0oZJ0jGOV1vXQgHqZYJGHg5wuImhzhZJCRESIwf+PJxik7TJOgBicko1hUVOxJBZxoe0
 x+/SO6tn+s8wKlR1Yxy8gYN9ZRqV2I83JsWZbBXMG1kLzV0SAfk/wq0PAppA1VzrQ3JqXg7T
 MZ3tFgxvxkYqUP11tO2vrgys+InkZAfjBVMjqXWHokyQPpihUaW0a8mr40w9Qui6DoJj7+Gg
 DtDWDZ7Zcn2hoyrypuht88rUuh1JuGYD434Q6qwQjUDlY+4lgrUxKdMD8R7JJWt38MNlTWvy
 rMVscvZUNc7gxcmnFUn41NPSKqzp4DDRbmf37Iz/fL7i01y7IGFTXaYaF3nEACyIUTr/xxi+
 MD1FVtEtJncZNkRn7WBcVFGKMAf+NEeaeQdGYQ6mGgk++i/vJZxkrC/a9ZXme7BhWRP485U5
 sXpFoGjdpMn4VlC7TFk2qsnJi3yF0pXCKVRy1ukEls8o+4PF2JiKrtkCrWCimB6jxGPIG3lk
 3SuKVS/din3RHz+7Sr1lXWFcGYDENmPd/jTwr1A1FiHrSj+u21hnJEHi8eTa9029F1KRfocp
 ig+k0zUEKmFPDabpanI323O5Tahsy7hwf2WOQwTDLvQ+eqQu40wbb6NocmCNFjtRhNZWGKJS
 b5GrGDGu/No5U6w73adighEuNcCSNBsLyUe48CE0uTO7eAL6Vd+2k28ezi6XY4Y0mgASJslb
 NwW54LzSSM0uRGFuaWVsIFAuIFNtaXRoIDxkcHNtaXRoQGFwZXJ0dXNzb2x1dGlvbnMuY29t
 PsJ6BBMRCAAiBQJWK7ngAhsjBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRBTc6WbYpR8
 KrQ9AP94+xjtFfJ8gj5c7PVx06Zv9rcmFUqQspZ5wSEkvxOuQQEAg6qEsPYegI7iByLVzNEg
 7B7fUG7pqWIfMqFwFghYhQzOwU0EViu54BAIAL6MXXNlrJ5tRUf+KMBtVz1LJQZRt/uxWrCb
 T06nZjnbp2UcceuYNbISOVHGXTzu38r55YzpkEA8eURQf+5hjtvlrOiHxvpD+Z6WcpV6rrMB
 kcAKWiZTQihW2HoGgVB3gwG9dCh+n0X5OzliAMiGK2a5iqnIZi3o0SeW6aME94bSkTkuj6/7
 OmH9KAzK8UnlhfkoMg3tXW8L6/5CGn2VyrjbB/rcrbIR4mCQ+yCUlocuOjFCJhBd10AG1IcX
 OXUa/ux+/OAV9S5mkr5Fh3kQxYCTcTRt8RY7+of9RGBk10txi94dXiU2SjPbassvagvu/hEi
 twNHms8rpkSJIeeq0/cAAwUH/jV3tXpaYubwcL2tkk5ggL9Do+/Yo2WPzXmbp8vDiJPCvSJW
 rz2NrYkd/RoX+42DGqjfu8Y04F9XehN1zZAFmCDUqBMa4tEJ7kOT1FKJTqzNVcgeKNBGcT7q
 27+wsqbAerM4A0X/F/ctjYcKwNtXck1Bmd/T8kiw2IgyeOC+cjyTOSwKJr2gCwZXGi5g+2V8
 NhJ8n72ISPnOh5KCMoAJXmCF+SYaJ6hIIFARmnuessCIGw4ylCRIU/TiXK94soilx5aCqb1z
 ke943EIUts9CmFAHt8cNPYOPRd20pPu4VFNBuT4fv9Ys0iv0XGCEP+sos7/pgJ3gV3pCOric
 p15jV4PCYQQYEQgACQUCViu54AIbDAAKCRBTc6WbYpR8Khu7AP9NJrBUn94C/3PeNbtQlEGZ
 NV46Mx5HF0P27lH3sFpNrwD/dVdZ5PCnHQYBZ287ZxVfVr4Zuxjo5yJbRjT93Hl0vMY=
In-Reply-To: <D9844FO74PFM.3R6HB5K2JXAOR@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ZohoMailClient: External

On 4/16/25 09:54, Alejandro Vallejo wrote:
> On Wed Apr 16, 2025 at 2:42 PM BST, Daniel P. Smith wrote:
>>
>> On 4/10/25 08:08, Jan Beulich wrote:
>>> On 08.04.2025 18:07, Alejandro Vallejo wrote:
>>>> From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
>>>>
>>>> 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
>                                         ^
>                                         |
> 				     "vcpus"
> 
>>>
>>> Nit: vcpus
>>
>> I agree with you here, the issue is that it was requested that we keep
>> this field in line with Arm's DT, and they unfortunately used `cpus` to
>> specify the vcpu allocation.
> 
> He meant in the commit message. There's a typo.

Right, so I guess my response should have been further down. He points 
it out as a nit the second time, and then his final comment led me to 
believe he was raising an issue with vcpu vs cpu and not just the typo.

v/r,
dps



From xen-devel-bounces@lists.xenproject.org Wed Apr 16 14:19:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 14:19:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.956324.1349771 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u53bu-0000J5-2G; Wed, 16 Apr 2025 14:19:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 956324.1349771; Wed, 16 Apr 2025 14:19: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 1u53bt-0000Iy-Uh; Wed, 16 Apr 2025 14:19:29 +0000
Received: by outflank-mailman (input) for mailman id 956324;
 Wed, 16 Apr 2025 14:19: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=S7a8=XC=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1u53bs-0000Is-05
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 14:19:28 +0000
Received: from sender4-of-o50.zoho.com (sender4-of-o50.zoho.com
 [136.143.188.50]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id cc276d72-1acd-11f0-9ffb-bf95429c2676;
 Wed, 16 Apr 2025 16:19:25 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 1744813157619214.15615350572398;
 Wed, 16 Apr 2025 07:19: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: cc276d72-1acd-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; t=1744813160; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=YkcbhI2HVQDFdlimkgF6ZsW7QU9BgfXjoblPsqCKMMo5qlBOXY4dXoprlxo+djXd0Oa8sJcg6L/BOX5+QmGY7LwCwdQTr5BU0uH1nAV68RA4soC50XKAYDO7ceMpOzXF3hvZ/0zeuE8zP4vI25lWOjiEy/RHObII7+nD/H3+Ue8=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1744813160; 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=7+h8zZWgtOoBiL/JwxBSef5YqUzwnwDsb58q8/2tavM=; 
	b=du5CG2KMTEcnRJtRwDhfqrHLy3uJIJ+1319ly9e4PCms4gTVtf2LIi/AOVyQ3kf4c0VG4rTcIizN5Yq6id1q1BIDQfNYpmnW1R5Ub7czg9X00Bn3plaTtJKJPRifSlAXnV893unqV1KUjZufqHQXJoi7fAwoOe8xi/ZfcrbwxwA=
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=1744813160;
	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=7+h8zZWgtOoBiL/JwxBSef5YqUzwnwDsb58q8/2tavM=;
	b=VF/qa0hphXTSBqvRnruE/PdeNzkgSBmo1RzLafQjd24CUzDgDI1Ufv1N5bMmTf/h
	Wwq8hWLFqDxs93YQbOs+QvHhNlQ5sMa5gSG+j2HGcV/cOYIJVjSoQgHkuSJaffFdoaL
	NfiNswLKdrFvWDemXrtB94uBplJ9GkQ/b5/99MQU=
Message-ID: <fc3dc57a-523a-4158-9335-026b028e2bce@apertussolutions.com>
Date: Wed, 16 Apr 2025 10:19:16 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 15/16] x86/hyperlaunch: add max vcpu parsing of
 hyperlaunch device tree
Content-Language: en-US
To: Jan Beulich <jbeulich@suse.com>
Cc: Jason Andryuk <jason.andryuk@amd.com>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Michal Orzel <michal.orzel@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, Alejandro Vallejo <agarciav@amd.com>
References: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-16-agarciav@amd.com>
 <c1e5af91-8f84-458d-a9b8-ab9758b5cbce@suse.com>
 <5a674e65-77bc-4d07-a4e3-2fa2c96bb37e@apertussolutions.com>
 <71606cc7-8d9d-4b6b-ac64-bb7bcc54eee1@suse.com>
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
Autocrypt: addr=dpsmith@apertussolutions.com; keydata=
 xsJuBFYrueARCACPWL3r2bCSI6TrkIE/aRzj4ksFYPzLkJbWLZGBRlv7HQLvs6i/K4y/b4fs
 JDq5eL4e9BdfdnZm/b+K+Gweyc0Px2poDWwKVTFFRgxKWq9R7McwNnvuZ4nyXJBVn7PTEn/Z
 G7D08iZg94ZsnUdeXfgYdJrqmdiWA6iX9u84ARHUtb0K4r5WpLUMcQ8PVmnv1vVrs/3Wy/Rb
 foxebZNWxgUiSx+d02e3Ad0aEIur1SYXXv71mqKwyi/40CBSHq2jk9eF6zmEhaoFi5+MMMgX
 X0i+fcBkvmT0N88W4yCtHhHQds+RDbTPLGm8NBVJb7R5zbJmuQX7ADBVuNYIU8hx3dF3AQCm
 601w0oZJ0jGOV1vXQgHqZYJGHg5wuImhzhZJCRESIwf+PJxik7TJOgBicko1hUVOxJBZxoe0
 x+/SO6tn+s8wKlR1Yxy8gYN9ZRqV2I83JsWZbBXMG1kLzV0SAfk/wq0PAppA1VzrQ3JqXg7T
 MZ3tFgxvxkYqUP11tO2vrgys+InkZAfjBVMjqXWHokyQPpihUaW0a8mr40w9Qui6DoJj7+Gg
 DtDWDZ7Zcn2hoyrypuht88rUuh1JuGYD434Q6qwQjUDlY+4lgrUxKdMD8R7JJWt38MNlTWvy
 rMVscvZUNc7gxcmnFUn41NPSKqzp4DDRbmf37Iz/fL7i01y7IGFTXaYaF3nEACyIUTr/xxi+
 MD1FVtEtJncZNkRn7WBcVFGKMAf+NEeaeQdGYQ6mGgk++i/vJZxkrC/a9ZXme7BhWRP485U5
 sXpFoGjdpMn4VlC7TFk2qsnJi3yF0pXCKVRy1ukEls8o+4PF2JiKrtkCrWCimB6jxGPIG3lk
 3SuKVS/din3RHz+7Sr1lXWFcGYDENmPd/jTwr1A1FiHrSj+u21hnJEHi8eTa9029F1KRfocp
 ig+k0zUEKmFPDabpanI323O5Tahsy7hwf2WOQwTDLvQ+eqQu40wbb6NocmCNFjtRhNZWGKJS
 b5GrGDGu/No5U6w73adighEuNcCSNBsLyUe48CE0uTO7eAL6Vd+2k28ezi6XY4Y0mgASJslb
 NwW54LzSSM0uRGFuaWVsIFAuIFNtaXRoIDxkcHNtaXRoQGFwZXJ0dXNzb2x1dGlvbnMuY29t
 PsJ6BBMRCAAiBQJWK7ngAhsjBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRBTc6WbYpR8
 KrQ9AP94+xjtFfJ8gj5c7PVx06Zv9rcmFUqQspZ5wSEkvxOuQQEAg6qEsPYegI7iByLVzNEg
 7B7fUG7pqWIfMqFwFghYhQzOwU0EViu54BAIAL6MXXNlrJ5tRUf+KMBtVz1LJQZRt/uxWrCb
 T06nZjnbp2UcceuYNbISOVHGXTzu38r55YzpkEA8eURQf+5hjtvlrOiHxvpD+Z6WcpV6rrMB
 kcAKWiZTQihW2HoGgVB3gwG9dCh+n0X5OzliAMiGK2a5iqnIZi3o0SeW6aME94bSkTkuj6/7
 OmH9KAzK8UnlhfkoMg3tXW8L6/5CGn2VyrjbB/rcrbIR4mCQ+yCUlocuOjFCJhBd10AG1IcX
 OXUa/ux+/OAV9S5mkr5Fh3kQxYCTcTRt8RY7+of9RGBk10txi94dXiU2SjPbassvagvu/hEi
 twNHms8rpkSJIeeq0/cAAwUH/jV3tXpaYubwcL2tkk5ggL9Do+/Yo2WPzXmbp8vDiJPCvSJW
 rz2NrYkd/RoX+42DGqjfu8Y04F9XehN1zZAFmCDUqBMa4tEJ7kOT1FKJTqzNVcgeKNBGcT7q
 27+wsqbAerM4A0X/F/ctjYcKwNtXck1Bmd/T8kiw2IgyeOC+cjyTOSwKJr2gCwZXGi5g+2V8
 NhJ8n72ISPnOh5KCMoAJXmCF+SYaJ6hIIFARmnuessCIGw4ylCRIU/TiXK94soilx5aCqb1z
 ke943EIUts9CmFAHt8cNPYOPRd20pPu4VFNBuT4fv9Ys0iv0XGCEP+sos7/pgJ3gV3pCOric
 p15jV4PCYQQYEQgACQUCViu54AIbDAAKCRBTc6WbYpR8Khu7AP9NJrBUn94C/3PeNbtQlEGZ
 NV46Mx5HF0P27lH3sFpNrwD/dVdZ5PCnHQYBZ287ZxVfVr4Zuxjo5yJbRjT93Hl0vMY=
In-Reply-To: <71606cc7-8d9d-4b6b-ac64-bb7bcc54eee1@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ZohoMailClient: External


On 4/16/25 09:54, Jan Beulich wrote:
> On 16.04.2025 15:42, Daniel P. Smith wrote:
>>
>> On 4/10/25 08:08, Jan Beulich wrote:
>>> On 08.04.2025 18:07, Alejandro Vallejo wrote:
>>>> From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
>>>>
>>>> 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
>>>
>>> Nit: vcpus
>>
>> I agree with you here, the issue is that it was requested that we keep
>> this field in line with Arm's DT, and they unfortunately used `cpus` to
>> specify the vcpu allocation.
> 
> You misunderstood, I think. The comment was on the mis-spelling in the latter
> of the quoted lines.
> 

Then your latter comment is that you want the internal field to be 
renamed to cpu? Wouldn't that create further confusion of a physical cpu 
assignment vs virtual cpu allocation?

v/r,
dps



From xen-devel-bounces@lists.xenproject.org Wed Apr 16 14:24:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 14:24:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.956337.1349781 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u53gy-0003A4-KF; Wed, 16 Apr 2025 14:24:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 956337.1349781; Wed, 16 Apr 2025 14:24:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u53gy-00039x-Gy; Wed, 16 Apr 2025 14:24:44 +0000
Received: by outflank-mailman (input) for mailman id 956337;
 Wed, 16 Apr 2025 14:24:43 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=yQHX=XC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u53gx-00039r-EV
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 14:24:43 +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 89a53427-1ace-11f0-9eaf-5ba50f476ded;
 Wed, 16 Apr 2025 16:24:42 +0200 (CEST)
Received: by mail-wr1-x42a.google.com with SMTP id
 ffacd0b85a97d-39ac9aea656so7019054f8f.3
 for <xen-devel@lists.xenproject.org>; Wed, 16 Apr 2025 07:24:42 -0700 (PDT)
Received: from [10.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-39eaf43d046sm17670763f8f.63.2025.04.16.07.24.41
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 16 Apr 2025 07:24: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: 89a53427-1ace-11f0-9eaf-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744813482; x=1745418282; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=9I08MHo288zprjOCbkzZa4+2BtbydBvcXk6zt6MOMj4=;
        b=UTazrBbeS63RX8T8C+ufvwOqTQZE9ULJjlpgb+ROMf8DNKc3fpszJlYbIknDQHTNOK
         rZzKEJ7JxCKBSkcnRUGGAl21TRrFNh8iuUfC2cqE1DkHbV3yXDTXBihepaqsemC09654
         7OLMeVBJVJzwb40Qhpf9Qe73heyfFisRiRgTWPNrCW+uiZdBCqF835awbW2/fwtSqbMV
         7qA/Os/Q5DdgRAq6fnugkrKliLy6aCd8PkJ0NnKu15TxrbZH+olp3SDmexM5szoSL+7p
         jSXPf8ohsprNpKRqn+JxTjdYEAD08fpHajUFPXzlNv8emnz0p9ywSbips75hNqwAfM9y
         svPg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744813482; x=1745418282;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=9I08MHo288zprjOCbkzZa4+2BtbydBvcXk6zt6MOMj4=;
        b=pmKvx/aIxWjRwFT/IKehqdANL87k/8NZN0R17nzT2vjyxfyAOHFntI07Q8zdHjp6Pb
         d3Cg/IRDQnUrdi48NAqja8wyy4NMLgPpzWt0O+uwjhDoWNDugsNDj21MOpIjcK6IZsAO
         kz+zvDwz0mv0I7Wqvp8g8PslyjEL3G9daHLmqq0LrK15Y2TrmoMH4J8/s2C8Ny4Tdy8S
         0xxkMRkg6tOKfwn/L/IkljemFfoQAv8t9OKbJaHbvrG0hJqrH2M+uVty+liHATkfgPBH
         LXhG6K1rQqAzquUnUM4Fiqqad0LSVa5XbxeFw2550kW/S+Rw3Y/i8DgzLNUjpnrJ/fKe
         SgzQ==
X-Forwarded-Encrypted: i=1; AJvYcCXSZJXSwvRLzWn8znT+xwdEG5JLIeMukW0dpluzZLPyTZ0UNCDDupGSrmQH1N3syxh8C5trFzAXj+Y=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzncmhES24OpQNxik4FGsnab1BlA3FTPBnoKE8mw1aRErYQ2U1J
	SOXwr69xjOj7uxlz0zViiGVo0pQ/gIQ61wqxyIQYpZLLzVyGmHaBQsO5hzWJlg==
X-Gm-Gg: ASbGncuM7keb9yzuy0FUR1BnoFk2heVhpRSyXAz2HkOfAKos8BYOv8vPlfXqURWn92P
	eZpnUR3q8HO7In5bXffxq/zaSDKAml0xbHdGrn6cI1De+NavGc36D1Z+qydRUYUroENDVEwUlBp
	ZrgVHCiiLvDN42LXB2JXcuO2sYesmA7mlJmbDGwjNSI5Uj+o5i0H063dIHZQ7QzxsP2nHDpkQmI
	aoqJPWMHJFWZ2+Rs1D7ykgleUGf/jIiJsCoNDmUJpoIeuWNClDLbrnX4rwTiQHhnyMlc/kmV1Ie
	hQMPHQY32BRmtqBA8rrFzH4fEg2TOqbIEP7sb5cIkblhaw28PKxU2ZAq56EJV87FV+lk/aMLPbk
	PNiT1yfoioczw4jzIW+5+LzLsEw==
X-Google-Smtp-Source: AGHT+IFRNNG09xXQnvShTTfii99I1t+gHFsuqFVLj5e8IBprBNTuXvBGfNy8d5CpX2FDq4Vdk9jKHw==
X-Received: by 2002:a5d:64ee:0:b0:399:737f:4e02 with SMTP id ffacd0b85a97d-39ee5b9d91bmr2121769f8f.39.1744813481938;
        Wed, 16 Apr 2025 07:24:41 -0700 (PDT)
Message-ID: <eee96b07-b927-4148-a586-1e9587e1beed@suse.com>
Date: Wed, 16 Apr 2025 16:24:40 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 13/16] x86/hyperlaunch: specify dom0 mode with device
 tree
To: "Daniel P. Smith" <dpsmith@apertussolutions.com>
Cc: Jason Andryuk <jason.andryuk@amd.com>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Michal Orzel <michal.orzel@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, Alejandro Vallejo <agarciav@amd.com>
References: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-14-agarciav@amd.com>
 <7a13e61b-8568-4852-bb46-974964e02d61@suse.com>
 <82fe6290-ea16-4e4f-8be4-76b9b624e398@apertussolutions.com>
 <c9290102-d29d-4c54-9052-995e960e4ea0@suse.com>
 <e78a9dcd-3fa3-4c66-860d-3d2b8206b67c@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: <e78a9dcd-3fa3-4c66-860d-3d2b8206b67c@apertussolutions.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 16.04.2025 16:09, Daniel P. Smith wrote:
> On 4/16/25 09:38, Jan Beulich wrote:
>> On 16.04.2025 15:32, Daniel P. Smith wrote:
>>> On 4/10/25 07:57, Jan Beulich wrote:
>>>> On 08.04.2025 18:07, Alejandro Vallejo wrote:
>>>>> --- a/xen/arch/x86/domain-builder/fdt.c
>>>>> +++ b/xen/arch/x86/domain-builder/fdt.c
>>>>> @@ -193,6 +193,25 @@ static int __init process_domain_node(
>>>>>                bd->domid = (domid_t)val;
>>>>>                printk("  domid: %d\n", bd->domid);
>>>>>            }
>>>>> +        else if ( strncmp(prop_name, "mode", name_len) == 0 )
>>>>> +        {
>>>>> +            if ( fdt_prop_as_u32(prop, &bd->mode) != 0 )
>>>>> +            {
>>>>> +                printk("  failed processing mode for domain %s\n", 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");
>>>>> +        }
>>>>
>>>> My prior questions here remain: What's the significance of
>>>> BUILD_MODE_ENABLE_DM when set alongside BUILD_MODE_PARAVIRT? What about
>>>> any of the other bits being set?
>>>
>>>   From boot-domain.h:
>>>                                             /* On     | Off    */
>>> #define BUILD_MODE_PARAVIRT      (1 << 0) /* PV     | PVH/HVM */
>>> #define BUILD_MODE_ENABLE_DM     (1 << 1) /* HVM    | PVH     */
>>>
>>> The logic says, if BUILD_MODE_PARAVIRT bit is not set, thus an HVM
>>> domain, check if BUILD_MODE_ENABLE_DM has been set. This is determin if
>>> the domain is what the toolstack differentiates as either an HVM or PVH
>>> domain. As you should know, there is no case of a PV domain requiring a
>>> backing device mode (DM) domain. IOW, BUILD_MODE_ENABLE_DM is only
>>> relevant to an HVM domain.
>>
>> And hence should (my conclusion) never be set for a PV one.
> 
> Yes and?

And it being wrongly set should be rejected, rather than silently ignored.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Apr 16 14:26:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 14:26:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.956348.1349791 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u53iz-0003hL-Vo; Wed, 16 Apr 2025 14:26:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 956348.1349791; Wed, 16 Apr 2025 14: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 1u53iz-0003hE-S4; Wed, 16 Apr 2025 14:26:49 +0000
Received: by outflank-mailman (input) for mailman id 956348;
 Wed, 16 Apr 2025 14: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=/6+O=XC=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u53iy-0003h3-Kk
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 14:26:48 +0000
Received: from NAM11-CO1-obe.outbound.protection.outlook.com
 (mail-co1nam11on2061c.outbound.protection.outlook.com
 [2a01:111:f403:2416::61c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d13484e5-1ace-11f0-9ffb-bf95429c2676;
 Wed, 16 Apr 2025 16:26:44 +0200 (CEST)
Received: from CH5P220CA0003.NAMP220.PROD.OUTLOOK.COM (2603:10b6:610:1ef::21)
 by DM6PR12MB4281.namprd12.prod.outlook.com (2603:10b6:5:21e::10) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.35; Wed, 16 Apr
 2025 14:26:38 +0000
Received: from DS3PEPF000099DD.namprd04.prod.outlook.com
 (2603:10b6:610:1ef:cafe::ce) by CH5P220CA0003.outlook.office365.com
 (2603:10b6:610:1ef::21) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.22 via Frontend Transport; Wed,
 16 Apr 2025 14:26:38 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 DS3PEPF000099DD.mail.protection.outlook.com (10.167.17.199) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Wed, 16 Apr 2025 14:26:37 +0000
Received: from localhost (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, 16 Apr
 2025 09:26:36 -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: d13484e5-1ace-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=yAGWASf5U1xHouIFnBvEm10Xcr1CbDeNxR3NtZAA4Lw1MOkzjUBz5VtsCBkhBngdIDxSTjDBxcfw2DUYfivZJbx6G7hBcwkxBOD0jaONt+DVe2O8WN9EsdKATnSBog6L/R4mNgzlsoXACn9zgYx5hJ7QpdIysNhKbFrkCDUGQnGNoasB4evMqoQ467s9piEYOzScdzkhu1r9jDZ7ufCbAVYFhO/Dv5I/N6Ke2NOCqY6ilmTCFfQ2ijnA+jYv6G3DBx90J4lt75UIQLd7u57EyK/ap0VrhLy3wi2w0v4RblOiw82qEhGFhpag2W0o/303tpa/8+kuGVCp6JN360OJqQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=x/npcCU6vRmNv/FKvdAfl1CibiRM/xxjPj5aztOW8sw=;
 b=VvfUt3i1cmzNpj1rkFoXSWMl9W9jItd65IawY1LTiUtuKXZojX8X/wnyuCGQFh2CgevhaxX4Y5IIm0mJLRVR5f3lBBt36rDvgZAEw1FqlBFP4ZPniw/Qhn45ed2xB9zZgP7QVRaYjiATorPYWJ8yJrzClVASA/cPEFRxGwn9zznKtDOuykSqLlpRfycRyUrsjUpF8/9JxT+I3ZNvHOH6pEdBHYUIcVvzST2LpdNBK+b0wlMSRz0ZldU8fWCnZPLRR9aXlBANnY5+SV41MfItcVHajQdIiw0d/rnL4ufnMyF/REPqVeksMiUjS3sU71T3t9UpbOWmU683MSughm1Bdg==
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=x/npcCU6vRmNv/FKvdAfl1CibiRM/xxjPj5aztOW8sw=;
 b=hLzexOXzKpg01wtqnquu+k0pBw75nnAMQA02USmUmaOFUTk6syzJdyBM7a8VT/plxGY3HbZ9UDqQyDDl70i3aO5YLBzSGPEMe0tu1RZwCcZnRwjqfMDgOGOpN8Dgr5LXIo7ZBR7cysU0kRi3ugHKMpRypr66ScCZ30nNKmLmLe8=
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
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Wed, 16 Apr 2025 15:26:35 +0100
Message-ID: <D984SS1H2QX3.3G4ZR015V2U3P@amd.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Xen-devel <xen-devel-bounces@lists.xenproject.org>
Subject: Re: [ImageBuilder] uboot-script-gen: fix arm64 xen u-boot image
 generation
From: Alejandro Vallejo <agarciav@amd.com>
To: Grygorii Strashko <grygorii_strashko@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>
X-Mailer: aerc 0.20.1
References: <20250414081223.1763630-1-grygorii_strashko@epam.com>
 <alpine.DEB.2.22.394.2504151758170.8008@ubuntu-linux-20-04-desktop>
 <c0a5ca22-fc42-47fc-b1b0-358992014454@epam.com>
In-Reply-To: <c0a5ca22-fc42-47fc-b1b0-358992014454@epam.com>
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: DS3PEPF000099DD:EE_|DM6PR12MB4281:EE_
X-MS-Office365-Filtering-Correlation-Id: 73e09b5c-f892-44c0-48e8-08dd7cf2b2d4
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?c0dLeEJzKzNRaWIwVGtueS80cElsclI0V3FuZW1aUEQrQ3lxL0pxMDdIRWpX?=
 =?utf-8?B?R2l1dGtXZjNXTFZ3TnJkTnVza0pna1RTb1JZcUFIbmtLdGx3NzhrYUphZmky?=
 =?utf-8?B?U0lWRE92dkFscTJ5MFJvZ0Jldi9wWGp0OHlGSGVycWhRKytTcG1UVTh5bmho?=
 =?utf-8?B?MnVZRC8wcm1QR2hIL1ZwdmJLUTJOdXZVd2NrRjhrV2xlaGt0NVpRUU1KVVdp?=
 =?utf-8?B?WStLbFJBVk9TTnd3MGdrTnZxTnROYU9hTkZiQ25lVjVYc1JxVzMzOExkZDUw?=
 =?utf-8?B?QzNjN2hMQ1kzL00zelhHWk5YRERtWFRVNm1yN0h1bjBkdkFDMHRtNU9LN0ht?=
 =?utf-8?B?a2hqckYyN09OVEVPMzJQMTg1alloK1JqOUdzNkN4ZDJPSnViVGZ2T0dMZWFk?=
 =?utf-8?B?YUt1L3V2ZUpMaitKQVdJNU9uUmUvdmdGMEpSekJsUkgyQUhNenBNUDJUSG5h?=
 =?utf-8?B?R2ZHTWcyRmFPK29CNVAwSkQ1QlVKK0V5Nno4NWJTM1RGUk1hN1M5VXZCaWpH?=
 =?utf-8?B?V0w4SDJldnpMUXoyaTlVN2RmNzBBR2Y3SDkxKy9lUXZLb2Y2bEdZbjZhb0ZV?=
 =?utf-8?B?Ym4vWEFWdE92Q25GU0JqeG5xT2hpOE5KSjFtR09Td0xhY1E3M242Yy9xRXRN?=
 =?utf-8?B?VzZ3Lzk1WUtNeTNscVhMN0Y5V0F2c2g4clZ6WUwyUGRIaTRLOEhTbi9vMGho?=
 =?utf-8?B?c0w4cURpM3FUaXJHU0dWTXpMSTV1RXNtbnlsWDJKU245YTBBQ2tUb082SUM1?=
 =?utf-8?B?MEZMZDc5THNTY1NYN2lhMitwSzNmcnE2cUdFZnkxSEdITUlKS051MHVpT21I?=
 =?utf-8?B?VWk2VlF3dG5CZ0cxbE5sNHFaNVowZFhkQjBOL2JqcldKWmUrM3VQOC9ydE1Y?=
 =?utf-8?B?ZllZTEJXeU1IMDRhaXozYlZ2QVZ6RnIxcFlNd2twMU56US9mTzNUSmJQU0cw?=
 =?utf-8?B?ZFVLRnFPN1VGU0tMN08xcFlrbXYvTUFzUTJ3NUFORHpwSk5qS0xMNHYxdG9W?=
 =?utf-8?B?NDBFbzFvY2pvL2k0NVh5UG1JVGRzekU3RHluQkdTbHh1SlBBNldvLzdNZU9B?=
 =?utf-8?B?WU1GcmVIZnN1WGhQLzhqTWxTOW5hTXF5d1RudUlqOWI0WWhmT2czRlQ1S04v?=
 =?utf-8?B?bXl5YXdIVEZDbUpkUGMrbDQ1WGZ0S00xVXpwalB4UzJKUnI1U3lYZ1NkeGs5?=
 =?utf-8?B?eGdJOHgvRlZQRkZIMXFad1FoNDNXbTNRTFlZY1FJVnc4VmJoelZhWGVIaGg5?=
 =?utf-8?B?d0xjQWlzYjdIMzFBckhibVBvb1h6REM4R0ZRcEQ2dDY1SGR0aFdkQ0RTOGZW?=
 =?utf-8?B?Y1Q0MHRFZmZ4YXR1MWhYZm5YR2xWSnpXQnMxVjliS0Fhd21QRHFMdzJtS0ps?=
 =?utf-8?B?WEpXUFdoc3V5UGpicWVKSFQ4UTdyRjMyVlN0KzJVSThLdHYyQVdtRVJoYXlN?=
 =?utf-8?B?aWwyWmN2UGo1d1lEV21SR3VEays1dmRKdlEya29OaUE0NnlobXBkTE0vSkkz?=
 =?utf-8?B?aTRsVE5IUDdyMXlVdVREc2pjWHE1U0c4NWN4cWRZKzRjUWdNbCs3QVpONWZG?=
 =?utf-8?B?UGRkN0M1dENZaUlEYURIblFyZ2VrVWtIVFJWUTZSM1VjaGx3d0lybXIvZENa?=
 =?utf-8?B?ajdGRlh3b2pLUTBvdWNWTlJhcTQyOU12WnVsWXJHaFR4di9SYnZ5ZUxJeHRR?=
 =?utf-8?B?cmtkU2JHamRBSWw3Si92K2NwOEdYTE5ya1JEZHZEQ1h6WmFoTVJqaWQ1cmla?=
 =?utf-8?B?aXBqdUNmNVBsWEs2S1B3TUgzb2ZkQ0VaMDJ3U1BXSEJteHY5bCtkSGRBNk5W?=
 =?utf-8?B?WXJFNnZveWowTFEwQ0ozNGR6b24wVG1OSm1IcVdtZzRvTHhFRlNGRWp1clVK?=
 =?utf-8?B?VUlucHltSkdrYnhoamNxcDA4T1pMZnExaGtsMk41VzJrRTU1RkpiRWQ3Ky9E?=
 =?utf-8?B?ZmN2ZkRONXhYa0dUam1FNVhuUCtiN0loSnlYdUt0dXJLT0s1dUFFaVA5bEtv?=
 =?utf-8?B?ZG9IQlI5T0pMWjhvc3NFcE1iWE1XK2xIMnNHbXhadVRWYjc3SFB1dkZJOWY0?=
 =?utf-8?Q?Ue9jh4?=
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)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Apr 2025 14:26:37.9883
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 73e09b5c-f892-44c0-48e8-08dd7cf2b2d4
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:
	DS3PEPF000099DD.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4281

On Wed Apr 16, 2025 at 11:44 AM BST, Grygorii Strashko wrote:
>
>
> On 16.04.25 04:03, Stefano Stabellini wrote:
>> On Mon, 14 Apr 2025, Grygorii Strashko wrote:
>>> From: Grygorii Strashko <grygorii_strashko@epam.com>
>>>
>>> The current code in generate_uboot_images() does not detect arm64 prope=
rly
>>> and always generates ARM u-boot image. This causes Xen boot issues.
>>>
>>> Fix it by searching for "ARM64" for AArch64 binary detection.
>>>
>>> - mkimage -l xen.ub
>>> Before:
>>> Image Type:   ARM Linux Kernel Image (uncompressed)
>>>
>>> After:
>>> Image Type:   AArch64 Linux Kernel Image (uncompressed)
>>>
>>> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
>>> ---
>>>   scripts/uboot-script-gen | 6 +++---
>>>   1 file changed, 3 insertions(+), 3 deletions(-)
>>>
>>> diff --git a/scripts/uboot-script-gen b/scripts/uboot-script-gen
>>> index a9f698f00fd1..c4d26caf5e0e 100755
>>> --- a/scripts/uboot-script-gen
>>> +++ b/scripts/uboot-script-gen
>>> @@ -815,13 +815,13 @@ function linux_config()
>>>  =20
>>>   generate_uboot_images()
>>>   {
>>> -    local arch=3D$(file -L $XEN | grep "ARM")
>>> +    local arch=3D$(file -L $XEN | grep -o "ARM64")
>>=20
>> My file -L gives:
>>=20
>> for arm32: ARM OpenFirmware [...]
>> for arm64: Aarch64
>>=20
>> So the ARM64 grep wouldn't work as intended. Is the version of `file'
>> that you are using really printing ARM64?
>
> Hm, yes.
>
> 	file -L xen
> 	xen: Linux kernel ARM64 boot executable Image, little-endian, 4K pages
>
> 	file -v
> 	file-5.41
>
> u-boot boot command:
> 	 bootm 0x4EA00000 - 0x4EE00000
>
>
>   If so, we can do:
>>=20
>>    file -L $XEN | grep -E 'ARM64|Aarch64'
>
> sure. I'll update.

Missing escape? I think it's needed even with single quotes.

  file -L $XEN | grep -E 'ARM64\|Aarch64'

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Wed Apr 16 14:27:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 14:27:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.956352.1349800 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u53jF-00041t-8O; Wed, 16 Apr 2025 14:27:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 956352.1349800; Wed, 16 Apr 2025 14: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 1u53jF-00041m-5L; Wed, 16 Apr 2025 14:27:05 +0000
Received: by outflank-mailman (input) for mailman id 956352;
 Wed, 16 Apr 2025 14:27: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=yQHX=XC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u53jD-0003yC-UV
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 14:27:03 +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 dd827e19-1ace-11f0-9eaf-5ba50f476ded;
 Wed, 16 Apr 2025 16:27:03 +0200 (CEST)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-43ce71582e9so56844535e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 16 Apr 2025 07:27:03 -0700 (PDT)
Received: from [10.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-4405b526ee9sm23005865e9.32.2025.04.16.07.27.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 16 Apr 2025 07:27: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: dd827e19-1ace-11f0-9eaf-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744813622; x=1745418422; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=47CxdK73KYnbTFRZ90C0mGuhK6mbbOJN6WVlbt81+AU=;
        b=UXJbCtgpUbDtckbeexqL0urLUm9pCgLjHAER9pjb9T5vJzyBtSgYqWH5Qbyf2Ifa3J
         BZQF0zcQDNBPEak/Dcmo15NlZZd87ANS0SumLbgZyUevprsXAn98TW5fXaZbmfq8FILX
         yZqjY3DHMR5PXnQKB8bmbKDZOoYmuGssrzghDbHtGv7bz8X2W9DWUVBEQ4lOZMwRnyHh
         jMmaeKFAW7PVOm7t4eJ7nW2OG+d7KY8E3mMzV2l3Y/BBR1SqON1rUryIc8HhG3bOocEJ
         yncu3evFaLgSDy65lsKFP8+NeID8/3lFqivM5enzLf31iNHYOccJld0KcL8OnqjD1qhl
         D7zg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744813622; x=1745418422;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=47CxdK73KYnbTFRZ90C0mGuhK6mbbOJN6WVlbt81+AU=;
        b=Ubdua6Tl6H7H76Xqs/pDmeAYkHGINH799ZTJczfGaKcUsMtj13b2TsE/6LpSlJChJk
         eFXQ6qgVRNkg0OlqWK0ZXmh6d4Qe4mbeQ8dXCYkOBGLlT+Px8Jm/lS1xoErpLuTIh73l
         jEFxKdDyS2RC5ZvQQcMHWjTvwsdfRD2J5rXpsBVUpmjMJfTv9SlI0p70OYKumAiXcJtx
         jv2o7ZKWF+GWYhJ2EZYSUh7HnN01YdKkpxJkgjP/N0VLvjTDC94G+Jm0+EOHl2BPuXBu
         YSVrtu3sFwcIXmaOJvywatfl9NJ8wVAEbLFz6bH7jFvb+RzFu8sRiVTurrVFdRrBtXeU
         1KVA==
X-Forwarded-Encrypted: i=1; AJvYcCUZ39d4IRi9jQ+FN034wwM5drcAtXifbCbutB3SaT2De1bpb89R85W9XRg7DnLAaqIOfJePDVbhoWk=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz1LMsvuy0awp21Zsqu4i+HjCz4PgZhfc7JYQ4Vl6GDqbBI9/QC
	wO7hSQOyqZmF7L9KtXFSrQG6FLEpF5B9EAoSqlTVTHZMjDcjOEUtTajIAhbQhA==
X-Gm-Gg: ASbGncvcdV6uksPWZ6VgwNqbBM9j9SJH+6j5XYIkdsBbkKsYRkVX7daW02k0zaNaIOi
	bghyxH4FnN2wWH32ypb2IlSGAYMuFwzHPHSjR9D2ht5z9fjpTzGw1wQPRLT9T9CdO1W/PwBvTGb
	EPnlRS3zUuthbwL9MdPjkMtb5iuu26+mtP0dJweuqn06d+wLsJmOdEeXTUQ05upelOElEHroUXX
	C6Na2YYngiRiItDfo3f7X1qpKlr6NLkDRdrnIRS7y6ep5SA9HcjRAmEFUC/bMudG77bpctDrgZ5
	N+5SHfgy8veWurUdxOgfahmTu31feylTE3zPGML+T55O1l9oUJVJLe3yZOzIITpduLtT/CfGC6u
	zAnOLqvJ0yjsMy3A+kmTHmTbnBg==
X-Google-Smtp-Source: AGHT+IHgUFh3RrXwwMKBfGtb4sVQKZdI+PlnJxSfZ99Pltnj0crMpzfkqIh4e5NtXIsXRkcmJgxtow==
X-Received: by 2002:a05:600c:3d0c:b0:43c:fc04:6d48 with SMTP id 5b1f17b1804b1-4405d5bd52emr23962325e9.0.1744813622472;
        Wed, 16 Apr 2025 07:27:02 -0700 (PDT)
Message-ID: <2c21fb56-3303-468a-8953-783ce2446aac@suse.com>
Date: Wed, 16 Apr 2025 16:27:01 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 14/16] x86/hyperlaunch: add memory parsing to domain
 config
To: "Daniel P. Smith" <dpsmith@apertussolutions.com>
Cc: Jason Andryuk <jason.andryuk@amd.com>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Michal Orzel <michal.orzel@amd.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Julien Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 xen-devel@lists.xenproject.org, Alejandro Vallejo <agarciav@amd.com>
References: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-15-agarciav@amd.com>
 <e78824bc-3b0a-406e-80ac-5a67b127254f@suse.com>
 <2fe06df0-ee92-4466-a532-ff246efffdac@apertussolutions.com>
 <1c12c10f-02e3-4b12-a890-205d3fa0ca39@suse.com>
 <d47ce533-bc0a-472f-ad11-e350150410b9@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: <d47ce533-bc0a-472f-ad11-e350150410b9@apertussolutions.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 16.04.2025 16:12, Daniel P. Smith wrote:
> On 4/16/25 09:41, Jan Beulich wrote:
>> On 16.04.2025 15:37, Daniel P. Smith wrote:
>>> On 4/10/25 08:03, Jan Beulich wrote:
>>>> On 08.04.2025 18:07, Alejandro Vallejo wrote:
>>>>> @@ -212,6 +213,39 @@ static int __init process_domain_node(
>>>>>                else
>>>>>                    printk("PV\n");
>>>>>            }
>>>>> +        else if ( strncmp(prop_name, "memory", name_len) == 0 )
>>>>> +        {
>>>>> +            uint64_t kb;
>>>>> +            if ( fdt_prop_as_u64(prop, &kb) != 0 )
>>>>
>>>> Nit (you know what I have to say here, and again below.)
>>>>
>>>>> +            {
>>>>> +                printk("  failed processing memory for domain %s\n", name);
>>>>> +                return -EINVAL;
>>>>
>>>> Any reason to override fdt_prop_as_u64()'s return value here?
>>>
>>> IMHO this should be a function that libfdt should provide, but altering
>>> libftd directly would make uprev'ing it challenging. The least I could
>>> do is make the function behave like the rest of libfdt's helper functions.
>>
>> How's this related to the question that I raised? I didn't question the
>> function, but a particular aspect of the specific use that is being made
>> of it here.
> 
> Your question was, "Any reason to override fdt_prop_as_u64()'s return 
> value here?"
> 
> And my answer was, I copied libfdt's behavior for its helper functions. 
> IOW, to have the helper behave like libfdt's other helper functions.

I'm sorry, but no. It meanwhile feels like you're intentionally
misunderstanding. We're in process_domain_node() here. That's not a libfdt-
like helper function? And the question was why this function throws away
the return value it got from fdt_prop_as_u64().

Jan


From xen-devel-bounces@lists.xenproject.org Wed Apr 16 14:32:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 14:32:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.956376.1349812 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u53nx-0006OA-Pu; Wed, 16 Apr 2025 14:31:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 956376.1349812; Wed, 16 Apr 2025 14: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 1u53nx-0006O3-LV; Wed, 16 Apr 2025 14:31:57 +0000
Received: by outflank-mailman (input) for mailman id 956376;
 Wed, 16 Apr 2025 14: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=yQHX=XC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u53nw-0006Mc-Bl
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 14:31:56 +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 8b94d9f4-1acf-11f0-9eaf-5ba50f476ded;
 Wed, 16 Apr 2025 16:31:55 +0200 (CEST)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-43cfba466b2so71837805e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 16 Apr 2025 07:31:55 -0700 (PDT)
Received: from [10.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-39eae9777absm17064754f8f.46.2025.04.16.07.31.54
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 16 Apr 2025 07:31: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: 8b94d9f4-1acf-11f0-9eaf-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744813915; x=1745418715; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=q7xumUT/zjCR8C7rtHK77wqHNCrkpACurw5wPBGetJ0=;
        b=URXkwwlP14NwIfVeD4erwxNcW84IxF7Ra8GvbnLmTdKJfqTjj1omIn/pOxYiXiAtfL
         m4+I6q8Coyeshskt19cQkhoW/T0HincFGgyfml13Czg85jLyq6Lgr5Op9Qcc9fKs2erb
         LQvQUSgWbFyrduroKAvLA/kRvN4ayWLm28hq1Z2oJ2otcujVdp4+aqzjDi+zcEeZTROX
         ag6yyCmt5BZPJTILmwvirbhHEs6DslM0R/dA599Z/9QHbow2FHc7M9e4GwxcIWTmYieq
         v922mgzpz3fmoO6yPUGFvGmhmoLtjuTU9Wa4SONLxkynMQXDDNQeQxMi2e36mYlcIpPs
         FqKQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744813915; x=1745418715;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=q7xumUT/zjCR8C7rtHK77wqHNCrkpACurw5wPBGetJ0=;
        b=byOSCidm0qcj0kS58BIs3vKy4XDHBQlsBMB9nnXSYO77/zkvwvU2fd8V+qoKRZpkfZ
         hcOfBTNB6d0hXDsjIG3cCSeBu7ZhOAF7Abm5zBseIsn/CILb4eFHtQ/MkCyqKLSoJgDc
         QiQVOZWw4Zz8ERDkGllDVL2QXiZsj4uYAQ/z4R5XYKV7SU1LfpJA1mcSB3GOTVndE3Bv
         iycXAPvKPHN5cRWEGWr2gnlx1d5PElQpKCcGBS0RJ9xNCX6SVmKRXDjNWMBhEEKIh9lU
         IDC4QYTKw7DWPljG8VdqFl8qVHSbj+Il3A9q7Hwu8GNsqcf7rEAa1B1Mvj6XNDo1xleM
         P2OQ==
X-Forwarded-Encrypted: i=1; AJvYcCXYl+tTmVm5vgMdijCYlwzar8yd1jCIvlvnNyCRX1+fbOtDLyfyaIBHPuRVyS+FIdHN7KFga23y/UI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YySVQAqhGZ1HcSByViKdxBiaGdmTpHJmIH66IQQpwYFadNo2SJN
	KtyzLhHLBt3Ky/HNi7a8U3kv2MbfUS/+eyJaiuQZz+rvZiZgKXODVIMq/VdRzw==
X-Gm-Gg: ASbGncvNYylGyyiK4jCisG9R8XVSX10GAfFiPHk/6ST4KHRsJTH45VMBinASjVd5Kes
	tNofP3bB5j38d8+FcjRq0v7DNtNiHdodyRhpFEpiOIfSMqIjJBorv6TcQPwrzfjGnbAW2TbdKAB
	1lNi5vLFR2aSyi2Jk01XWH2x35PHOdA61goAEho6DCKxrddQ+eVklHGd7caFswVhQNlq+3RELmL
	O2S9k/AT+IgAAnbu9I+RPIFNevldr1XkINWaicbxbmP7yV7e6AWNW1FsJX++kohwqk48hF3yuwf
	4TIJ61bxjEsuRnOpO5+8zeK73ns/jGTP7kVelWQEg3Bd0/cOt+qh+w21yYiaNrRAi36GfHobWvY
	E+airl+15gH2sWDx191gOaW6Csa0Lo/DsNtVg
X-Google-Smtp-Source: AGHT+IH1CSr4Q112Zt+BY99T55bW3z+Hp+xPEb1Kx9H1BTPdnZlZMk2pybvbUI9lHui6/3MXqguiEw==
X-Received: by 2002:a05:6000:40c7:b0:39c:1257:cc26 with SMTP id ffacd0b85a97d-39ee5badc09mr2166657f8f.57.1744813914640;
        Wed, 16 Apr 2025 07:31:54 -0700 (PDT)
Message-ID: <cde3523d-b163-4e18-bf40-856e80df8b0c@suse.com>
Date: Wed, 16 Apr 2025 16:31:53 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 15/16] x86/hyperlaunch: add max vcpu parsing of
 hyperlaunch device tree
To: "Daniel P. Smith" <dpsmith@apertussolutions.com>
Cc: Jason Andryuk <jason.andryuk@amd.com>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Michal Orzel <michal.orzel@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, Alejandro Vallejo <agarciav@amd.com>
References: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-16-agarciav@amd.com>
 <c1e5af91-8f84-458d-a9b8-ab9758b5cbce@suse.com>
 <5a674e65-77bc-4d07-a4e3-2fa2c96bb37e@apertussolutions.com>
 <71606cc7-8d9d-4b6b-ac64-bb7bcc54eee1@suse.com>
 <fc3dc57a-523a-4158-9335-026b028e2bce@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: <fc3dc57a-523a-4158-9335-026b028e2bce@apertussolutions.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 16.04.2025 16:19, Daniel P. Smith wrote:
> On 4/16/25 09:54, Jan Beulich wrote:
>> On 16.04.2025 15:42, Daniel P. Smith wrote:
>>>
>>> On 4/10/25 08:08, Jan Beulich wrote:
>>>> On 08.04.2025 18:07, Alejandro Vallejo wrote:
>>>>> From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
>>>>>
>>>>> 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
>>>>
>>>> Nit: vcpus
>>>
>>> I agree with you here, the issue is that it was requested that we keep
>>> this field in line with Arm's DT, and they unfortunately used `cpus` to
>>> specify the vcpu allocation.
>>
>> You misunderstood, I think. The comment was on the mis-spelling in the latter
>> of the quoted lines.
> 
> Then your latter comment is that you want the internal field to be 
> renamed to cpu?

No? Where are you taking that from? My comment was that a log message refers
to "max_vcpus", when no field / property of that name is being processed.
Going back to my reply (and seeing that Alejandro understood what I meant,
afaict) I see nothing ambiguous there at all.

In any event, ftaod, there were three entirely independent comments in my
original reply to that patch.

Jan

> Wouldn't that create further confusion of a physical cpu 
> assignment vs virtual cpu allocation?
> 
> v/r,
> dps
> 



From xen-devel-bounces@lists.xenproject.org Wed Apr 16 15:01:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 15:01:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.956390.1349821 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u54Gc-0005WU-W7; Wed, 16 Apr 2025 15:01:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 956390.1349821; Wed, 16 Apr 2025 15: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 1u54Gc-0005WN-St; Wed, 16 Apr 2025 15:01:34 +0000
Received: by outflank-mailman (input) for mailman id 956390;
 Wed, 16 Apr 2025 15:01: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=S7a8=XC=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1u54Gb-0005WH-DF
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 15:01:33 +0000
Received: from sender4-of-o50.zoho.com (sender4-of-o50.zoho.com
 [136.143.188.50]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ad0360f5-1ad3-11f0-9ffb-bf95429c2676;
 Wed, 16 Apr 2025 17:01:30 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 1744815679505708.9383141860986;
 Wed, 16 Apr 2025 08:01: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: ad0360f5-1ad3-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; t=1744815683; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=KWNsUKqKkk0xaVEC7wa9it+znD1GfUoDqKtm4ehC5JRL59TEnRNEf2YtiDrwfIqmc9wwAW3or2YywIq1wdWIPzDcpxrzVMrIdHnfzwBUbCiOx8NDnhcN7ToVOshH5DS5F/tzWG4wcLa/2gq1Ht940B9mY0Ez0AlLaZOxQPJCgVw=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1744815683; 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=12l9cvwZ36YwY7SJB5D8cLFbHN6eFa0lUGgbqU/vpe8=; 
	b=dIK1JZzYr87+EvhRU2aFlkus/QDltNKVpH6Uj9w35iHmDw3IPL3U2JuGpAr62Ev/xw6MQ16+yOmSFFpPJCXZ5zDFABLGpUmsWxgY/IOSl6d3Rb0xPItU+9GaxvMt8pFc5lkQqheWLgLNz7zdaUKxuWIv6aLMlu4ivMMbl/ng7oo=
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=1744815683;
	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=12l9cvwZ36YwY7SJB5D8cLFbHN6eFa0lUGgbqU/vpe8=;
	b=TImQUmb3TW5oCb5QkN9ehS13KeeFDpKBx1QPn+kyyDM6BHwYvzH3jhmdQro0KkwA
	1fuw+1uuwXDGdmh/jZ/1HSMYsWa3mSWspeNn/YMEII/pZg739gpKhSqMkcxIa4gHzu4
	NYHzn4ZTZHy7WPhY9Gs/PoO/gDOJIx0UQzzdsmsI=
Message-ID: <805993b0-b858-4ec9-841a-389b9f4abb62@apertussolutions.com>
Date: Wed, 16 Apr 2025 11:01:18 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 01/16] x86/boot: introduce boot domain
Content-Language: en-US
To: Jan Beulich <jbeulich@suse.com>
Cc: Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Michal Orzel <michal.orzel@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, Alejandro Vallejo <agarciav@amd.com>,
 Jason Andryuk <jason.andryuk@amd.com>
References: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-2-agarciav@amd.com>
 <141229a0-2cd2-4886-b5e5-02c85b0ca5ab@suse.com>
 <7fa754f8-d785-45d8-b9da-de5c85bc793b@apertussolutions.com>
 <f0a14866-0f38-4f8d-8e11-993a58c7da7b@suse.com>
 <644cdc5a-b96a-4e43-ae7a-4cadda1d1084@amd.com>
 <3832bb2b-978c-4990-928c-c18a003adcf4@apertussolutions.com>
 <73c8dacd-c1d7-459e-ac18-decaa5c9c5bd@suse.com>
 <6517f3ca-1329-4591-9ccc-e6be5af31e44@apertussolutions.com>
 <942e7f24-1ecc-465c-9cf2-54388a88173a@suse.com>
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
Autocrypt: addr=dpsmith@apertussolutions.com; keydata=
 xsJuBFYrueARCACPWL3r2bCSI6TrkIE/aRzj4ksFYPzLkJbWLZGBRlv7HQLvs6i/K4y/b4fs
 JDq5eL4e9BdfdnZm/b+K+Gweyc0Px2poDWwKVTFFRgxKWq9R7McwNnvuZ4nyXJBVn7PTEn/Z
 G7D08iZg94ZsnUdeXfgYdJrqmdiWA6iX9u84ARHUtb0K4r5WpLUMcQ8PVmnv1vVrs/3Wy/Rb
 foxebZNWxgUiSx+d02e3Ad0aEIur1SYXXv71mqKwyi/40CBSHq2jk9eF6zmEhaoFi5+MMMgX
 X0i+fcBkvmT0N88W4yCtHhHQds+RDbTPLGm8NBVJb7R5zbJmuQX7ADBVuNYIU8hx3dF3AQCm
 601w0oZJ0jGOV1vXQgHqZYJGHg5wuImhzhZJCRESIwf+PJxik7TJOgBicko1hUVOxJBZxoe0
 x+/SO6tn+s8wKlR1Yxy8gYN9ZRqV2I83JsWZbBXMG1kLzV0SAfk/wq0PAppA1VzrQ3JqXg7T
 MZ3tFgxvxkYqUP11tO2vrgys+InkZAfjBVMjqXWHokyQPpihUaW0a8mr40w9Qui6DoJj7+Gg
 DtDWDZ7Zcn2hoyrypuht88rUuh1JuGYD434Q6qwQjUDlY+4lgrUxKdMD8R7JJWt38MNlTWvy
 rMVscvZUNc7gxcmnFUn41NPSKqzp4DDRbmf37Iz/fL7i01y7IGFTXaYaF3nEACyIUTr/xxi+
 MD1FVtEtJncZNkRn7WBcVFGKMAf+NEeaeQdGYQ6mGgk++i/vJZxkrC/a9ZXme7BhWRP485U5
 sXpFoGjdpMn4VlC7TFk2qsnJi3yF0pXCKVRy1ukEls8o+4PF2JiKrtkCrWCimB6jxGPIG3lk
 3SuKVS/din3RHz+7Sr1lXWFcGYDENmPd/jTwr1A1FiHrSj+u21hnJEHi8eTa9029F1KRfocp
 ig+k0zUEKmFPDabpanI323O5Tahsy7hwf2WOQwTDLvQ+eqQu40wbb6NocmCNFjtRhNZWGKJS
 b5GrGDGu/No5U6w73adighEuNcCSNBsLyUe48CE0uTO7eAL6Vd+2k28ezi6XY4Y0mgASJslb
 NwW54LzSSM0uRGFuaWVsIFAuIFNtaXRoIDxkcHNtaXRoQGFwZXJ0dXNzb2x1dGlvbnMuY29t
 PsJ6BBMRCAAiBQJWK7ngAhsjBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRBTc6WbYpR8
 KrQ9AP94+xjtFfJ8gj5c7PVx06Zv9rcmFUqQspZ5wSEkvxOuQQEAg6qEsPYegI7iByLVzNEg
 7B7fUG7pqWIfMqFwFghYhQzOwU0EViu54BAIAL6MXXNlrJ5tRUf+KMBtVz1LJQZRt/uxWrCb
 T06nZjnbp2UcceuYNbISOVHGXTzu38r55YzpkEA8eURQf+5hjtvlrOiHxvpD+Z6WcpV6rrMB
 kcAKWiZTQihW2HoGgVB3gwG9dCh+n0X5OzliAMiGK2a5iqnIZi3o0SeW6aME94bSkTkuj6/7
 OmH9KAzK8UnlhfkoMg3tXW8L6/5CGn2VyrjbB/rcrbIR4mCQ+yCUlocuOjFCJhBd10AG1IcX
 OXUa/ux+/OAV9S5mkr5Fh3kQxYCTcTRt8RY7+of9RGBk10txi94dXiU2SjPbassvagvu/hEi
 twNHms8rpkSJIeeq0/cAAwUH/jV3tXpaYubwcL2tkk5ggL9Do+/Yo2WPzXmbp8vDiJPCvSJW
 rz2NrYkd/RoX+42DGqjfu8Y04F9XehN1zZAFmCDUqBMa4tEJ7kOT1FKJTqzNVcgeKNBGcT7q
 27+wsqbAerM4A0X/F/ctjYcKwNtXck1Bmd/T8kiw2IgyeOC+cjyTOSwKJr2gCwZXGi5g+2V8
 NhJ8n72ISPnOh5KCMoAJXmCF+SYaJ6hIIFARmnuessCIGw4ylCRIU/TiXK94soilx5aCqb1z
 ke943EIUts9CmFAHt8cNPYOPRd20pPu4VFNBuT4fv9Ys0iv0XGCEP+sos7/pgJ3gV3pCOric
 p15jV4PCYQQYEQgACQUCViu54AIbDAAKCRBTc6WbYpR8Khu7AP9NJrBUn94C/3PeNbtQlEGZ
 NV46Mx5HF0P27lH3sFpNrwD/dVdZ5PCnHQYBZ287ZxVfVr4Zuxjo5yJbRjT93Hl0vMY=
In-Reply-To: <942e7f24-1ecc-465c-9cf2-54388a88173a@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External



V/r,
Daniel P. Smith
Apertus Solutions, LLC

On 4/16/25 10:06, Jan Beulich wrote:
> On 16.04.2025 16:00, Daniel P. Smith wrote:
>>
>>
>> V/r,
>> Daniel P. Smith
>> Apertus Solutions, LLC
>>
>> On 4/16/25 09:33, Jan Beulich wrote:
>>> On 16.04.2025 15:02, Daniel P. Smith wrote:
>>>> On 4/10/25 16:56, Jason Andryuk wrote:
>>>>> On 2025-04-10 11:01, Jan Beulich wrote:
>>>>>> On 10.04.2025 15:09, Daniel P. Smith wrote:
>>>>>>> On 4/9/25 02:24, Jan Beulich wrote:
>>>>>>>> On 08.04.2025 18:07, Alejandro Vallejo wrote:
>>>>>>>>> From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
>>>>>>>>>
>>>>>>>>> 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>
>>>>>>>>
>>>>>>>> Acked-by: Jan Beulich <jbeulich@suse.com>
>>>>>>>
>>>>>>> I have to object because the meaningless rename is going cause
>>>>>>> significant pain in the rebase of the follow-on series for no improved
>>>>>>> code clarity.
>>>>>>
>>>>>> Sorry, then an incremental patch undoing the rename that happened (with
>>>>>> appropriate justification) will need proposing - the patch here has gone
>>>>>> in already.
>>>>>
>>>>> Coming from a Linux background, ramdisk seemed more natural to me.  But
>>>>> looking at hvm_start_info, the fields are called module there.  And
>>>>> since we shouldn't tie this to the Linux naming, the more generic
>>>>> "module" name seemed fine to me.
>>>>
>>>> Again, as I have stated, ramdisk is not a Linux only concept. In fact,
>>>> as Jan points out, initrd/initramfs are Linux specific implementations
>>>> of a ramdisk for which Xen doesn't even fully support. I am inclined to
>>>> ask the inverse of why hvm_start_info uses the name module. But that
>>>> aside, let's consider the fact that the field is only populated by the
>>>> device tree when a module type of BOOTMOD_RAMDISK is matched. And all
>>>> the uses of the field are when its value is stored into a local variable
>>>> called initrd.
>>>>
>>>> Though the biggest irony is that generally obtuse abstraction are
>>>> routinely blocked unless there is a tangible future case. Yet none was
>>>> offered in the comment. Thus on that principle alone, a request for a
>>>> tangible future use should have been requested and provided for the
>>>> change to be considered.
>>>
>>> Does it even need to be a _future_ use here? Aren't you working on
>>> abstracting domain creation, suitable (in principle) for all architectures?
>>> Isn't therefore a more generic name (as "module" is) preferable over a more
>>> specific one?
>>
>> Yes we are trying to build a future capability, but my point is let's
>> consider all possible known OS's start up today. What other boot module
>> could potentially be passed in that is exclusive of a ramdisk, thus
>> allowing a multiplex of the field. And the answer is none.
> 
> Is it? What if you are to start a nested Xen with its own kernel, initrd
> and perhaps even an XSM policy "module"? Or anything else that is multi-
> module capable (possibly but not necessarily because of having started
> out as multiboot)?

As you said on the v2 thread, just one other OS also using such a 
concept doesn't mean much.

With that said, as I am sure you are well aware of, the nested example 
is a far more complicated situation which there is currently no good 
abstraction in use.

And btw, as far as ramdisk usage goes, I would be remised not to mention 
that another significantly large OS uses a ramdisk for boot, and that 
would be Windows. Windows leverages a ramdisk as configuration store 
between the winlaoder and tcbloader when doing a DRTM boot.

v/r,
dps


From xen-devel-bounces@lists.xenproject.org Wed Apr 16 15:16:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 15:16:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.956403.1349831 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u54VR-0000xz-45; Wed, 16 Apr 2025 15:16:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 956403.1349831; Wed, 16 Apr 2025 15:16: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 1u54VR-0000xs-19; Wed, 16 Apr 2025 15:16:53 +0000
Received: by outflank-mailman (input) for mailman id 956403;
 Wed, 16 Apr 2025 15:16: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=yQHX=XC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u54VP-0000xm-V6
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 15:16:52 +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 d2226e2f-1ad5-11f0-9eaf-5ba50f476ded;
 Wed, 16 Apr 2025 17:16:50 +0200 (CEST)
Received: by mail-wr1-x429.google.com with SMTP id
 ffacd0b85a97d-3912fdddf8fso635854f8f.1
 for <xen-devel@lists.xenproject.org>; Wed, 16 Apr 2025 08:16:50 -0700 (PDT)
Received: from [10.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-39eae9640a9sm17523285f8f.10.2025.04.16.08.16.49
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 16 Apr 2025 08:16:49 -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: d2226e2f-1ad5-11f0-9eaf-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744816610; x=1745421410; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=vfGREaRRFIs6sLlXNQLeapxmxkk1kNFlTdVUF2mbQvw=;
        b=Y68U15mn8wr2tlSdwoC/r+d/WsKso7Mr1LStn1Mn10PFliVEe0NUlMyZz9lv9VkzqW
         HqhJ/5sVOVumRhVPjRCx8X/28abT7IBv2enWqI6k063blh9bTs+roZZevU50itUZ0mEB
         YPL1G+LAfml45KZXrMQRhRfep5MuNB6dfJ7FJ5qDVTozfs5rYTk53mdynjrqRXKVKof0
         DtjjkZGbdbk319y1P43hAX1EnN/t9JfzAYY5uryv47LL+SrEFNNrOxhaMALRVgPDZ4Bp
         Lhe7AelGW1Sg111+9lIp7O90TigdiLHxmwd6oMjFvyaYt7V+U/Myk8w8tYIW3jdCS0cQ
         AgbA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744816610; x=1745421410;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=vfGREaRRFIs6sLlXNQLeapxmxkk1kNFlTdVUF2mbQvw=;
        b=WlThA/5rBtBfADh2VOQA7bDq2z1sYgudPTJInc4mumTI3Bfk9lyUohW/26Ji38RkGT
         sBzrP8sA0xsTXtpW4zvWNxBtDSEivbylq0HkMB91Fq9KbdLeS1dSzOFqg8asYncvAT5t
         y1WjF71Gc5XT6Jy/D05QlEOElkWiMIpK3rlMG5HTHMnR/sX9ATQ0x7CnYUg+FBKr2KGK
         6l4its9OAyWjCD0CpX6GqNuMa72fljuDpzBq2xBboVaIuFUajMXg9Q3lpUjGZq5mgqsh
         DMlqGzwzuTm/0AIPzoizsBAwiYpHaCI2DI/mSBQ6t+Q+QeP7Z2rAGghw4254EdkgCUXq
         UyxQ==
X-Forwarded-Encrypted: i=1; AJvYcCVdHyAmBHVCU9x+7H/3G5bKEJIM+6a39sCnl0TZkw51KdrT1gGMTFanISR1JN4DcCLlzRTDw5IWrwE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YymA6YKvwqbmgU5SfR6fTz2pkT9bAIe4ubxHGkUdM91z3FDmKwU
	M3U5r+lrd8qjV3QCzJkdLj82jrA3EOtbJvZZf5MfM8nSwJJZBQnIUAiTifFgog==
X-Gm-Gg: ASbGncsLYv/GvMrOLlMn0+pJFaa790Ix5/6JToNZdlDpDSYlQNjv/6ewlrfvUlgO1hx
	KrudfvpT+VgfIoxIGRTfPFQYm4BEY5ekJYgfiHLnn0Gws/1970t0nz/a1rY3OHbfQTwaBo3mr4U
	wd+Qr9MmV2ZXUVpvx7c1eh1fbsSEAeqV+I4I8INfIuac4SCTuzm6pDFeNtP76R9FcKpW1vErTOo
	VQQD87YjAy3rkCXuyeNlShromWDrdEx1YhMFqGW870H7cK/TgKHD6H9trWc6E3G28d0ot/NJ32W
	sYFwVVTBkeESHTlgGx0Oa3NGck5Xz24okooCnZRFvpcFV/2xoxPoJN1TArG24FcBKXlb5i3zykO
	e3ffkKLaVF/RIlhDJ4ioyCxQnWgB91qtKLvCh
X-Google-Smtp-Source: AGHT+IF8W1Uj6RU5OAZcewirpRyLkqcFNw/jxQgt6PeYdJvGHL0enBMUjUNiVWbU22et4iu3N0zR/A==
X-Received: by 2002:a05:6000:178d:b0:38a:4184:14ec with SMTP id ffacd0b85a97d-39ee5e96ea2mr2343330f8f.1.1744816609884;
        Wed, 16 Apr 2025 08:16:49 -0700 (PDT)
Message-ID: <bc1ed3bf-4512-4d96-ab58-f8251896504d@suse.com>
Date: Wed, 16 Apr 2025 17:16:48 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/2] xen/dm: arm: Introduce inject_msi2 DM op
To: Mykyta Poturai <Mykyta_Poturai@epam.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>,
 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>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <cover.1744621166.git.mykyta_poturai@epam.com>
 <e9e7d722eeac100048ddd5a4032e3d7af39f8c3f.1744621166.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: <e9e7d722eeac100048ddd5a4032e3d7af39f8c3f.1744621166.git.mykyta_poturai@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 14.04.2025 11:51, Mykyta Poturai wrote:
> From: Mykyta Poturai <Mykyta_Poturai@epam.com>
> 
> Add the second version of inject_msi DM op, which allows to specify
> the source_id of an MSI interrupt. This is needed for correct MSI
> injection on ARM.

If this is about Arm, why does x86 also gain (incomplete) handling?

> @@ -539,6 +540,23 @@ int dm_op(const struct dmop_args *op_args)
>          break;
>      }
>  
> +    case XEN_DMOP_inject_msi2:
> +    {
> +        const struct xen_dm_op_inject_msi2 *data = &op.u.inject_msi2;
> +
> +        if ( data->pad || data->flags & ~XEN_DMOP_MSI_SOURCE_ID_VALID )

Nit: If the x86 code is to stay in the first place, parentheses please
around the & expression. Even if not, similar issues appear to exist
in the Arm code.

> +        {
> +            rc = -EINVAL;
> +            break;
> +        }
> +
> +        if ( data->flags & XEN_DMOP_MSI_SOURCE_ID_VALID )
> +            gprintk(XENLOG_WARNING "XEN_DMOP_inject_msi2: source_id is ignored\n");

Does this compile? It looks to me as if there was a missing comma.

> --- a/xen/include/public/hvm/dm_op.h
> +++ b/xen/include/public/hvm/dm_op.h
> @@ -444,6 +444,23 @@ struct xen_dm_op_nr_vcpus {
>  };
>  typedef struct xen_dm_op_nr_vcpus xen_dm_op_nr_vcpus_t;
>  
> +#define XEN_DMOP_inject_msi2 21
> +
> +struct xen_dm_op_inject_msi2 {
> +      /* IN - MSI data */
> +      uint32_t data;
> +      /* IN - next two fields form an ID of the device triggering the MSI */
> +      uint16_t segment; /* The segment number */
> +      uint16_t source_id; /* The source ID that is local to segment (PCI BDF) */
> +      /* IN - types of source ID */
> +      uint32_t flags;
> +#define XEN_DMOP_MSI_SOURCE_ID_VALID (1u << 0)

What purpose does this flag serve? IOW what's the value of using this
sub-op when one doesn't want to specify a source ID?

Jan


From xen-devel-bounces@lists.xenproject.org Wed Apr 16 15:34:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 15:34:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.956420.1349840 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u54lx-0005ho-Jf; Wed, 16 Apr 2025 15:33:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 956420.1349840; Wed, 16 Apr 2025 15: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 1u54lx-0005hh-GO; Wed, 16 Apr 2025 15:33:57 +0000
Received: by outflank-mailman (input) for mailman id 956420;
 Wed, 16 Apr 2025 15:33: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=yQHX=XC=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u54lw-0005hb-4x
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 15:33:56 +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 342241ea-1ad8-11f0-9ffb-bf95429c2676;
 Wed, 16 Apr 2025 17:33:54 +0200 (CEST)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-ac3eb3fdd2eso1283129366b.0
 for <xen-devel@lists.xenproject.org>; Wed, 16 Apr 2025 08:33:53 -0700 (PDT)
Received: from [10.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-4405b3452fbsm24809425e9.0.2025.04.16.08.27.38
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 16 Apr 2025 08:27:39 -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: 342241ea-1ad8-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744817633; x=1745422433; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=7wRUbMj+4O4pgL6s1ZoExCgb2YAxupPE+TqeRPIC7OU=;
        b=c5gTWc+VTcm9COj7pEDHMM5Fr6dS93PwPNJmQzvzV9AspDzcpPdkTV/p6+FInW9UUM
         sNEc3baUxTa4CkGjI9nNmnlBu+atdsc0RBGVGWduUoKLSiCee/lpe6vo49ifMw9o7LMf
         AdklW24GjNl+x7vUIrABO2hFht35sQxWb3VdVs3+qU0+yvtfqjKlmr34tX3EkD8WQS1X
         DNH1Wlmo8Dy/O6neHJPCL+tIniDZP2h0QQ0OgCbX6Bqcz9JMAj/7mT9mmw+lqjVviV0S
         Q2thtpg1++Yio1E7UrGktzOENvOhM721icdoNJHQ6HjV17O5TDUVged07UEz+pnm3FCZ
         PZ4g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744817633; x=1745422433;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=7wRUbMj+4O4pgL6s1ZoExCgb2YAxupPE+TqeRPIC7OU=;
        b=CVcwH2HptQktOcN04PC5MhGJ6nw9cpkNnz/TyqbEh+bW8Rran0GfDzNOuZrrXIUtSi
         SqwD6RKbDpw6r4wBfFLqEFvyR4vMummpyp27FY10c9iYZNxQLN5EyFMg2YSE8HimADvZ
         xQvwAQhS44suAGwsunTz4d1vdfFq9ZPefRgFNNrfi9/tEGjlr+OZFgzS8fTX8BrsAcjp
         dHRrdhJHM9tCdP39ZQ1UdRNw0l/Sjq/GGqlkUxW/bvexM442+PkXaPq1clTs+R+erHRR
         Wkh0sY8BtXoVmBzY1VnlsOvBZ0kT2u9wVlOsaAFayZlkzgfmZlM8GXiyrc1O0i9SsasJ
         3McQ==
X-Forwarded-Encrypted: i=1; AJvYcCXAJy9SoUdmbATsYOtTx61Pn4ve80Y8FYx3C33+IThRh1TGeX6DTPpQDRu5JhCahcQFMFh5AIp6fUo=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyGwEmj54h6HWo56lrAyk/WbZmv2LQkmadEuJr4X5mfPC6CSjih
	KUx7F07xj/FvzG8NRuRW1injmLCHXUurPYXEcn4btmgdEFLJFOawTy3daF8bzo0XeYyf7nNHLCE
	=
X-Gm-Gg: ASbGnct8BRIqHyE2T4K0DRMNlCdRUvfj4U7IHN4rtXh9f+GF/GUlAfFpNoJNtB2Xp9N
	6CpeFGQnfViKzGEVYirzqlobqe80fD6WPbNJ4j/TXHYPXuOyqOuaFi7FefDXTLx/8GWk7kb1XZ6
	JWxzs4VMv2OQUD1DY+SztimlQdSe+DArGYzwtqIfg+sDgBlXRkHwAs/nzAZbjCYd71igNSsa3NN
	F2byJZ1ppU3ve/yNMvNzFW4AW29jgV8DcwsbFQWxou/ded1xNTUb0BLQ1xVt4/O6L1UkN84Ecsg
	ZjCDLP3IiVJqSqMafCmFkeVIoPZpJ1NbRM0m/1v4QaNuEMt50jHdLaGmqxVnBDfF8gtyAb8jZ9E
	7sv2s3wSRJvjiVoPC7qP/m8naaA==
X-Google-Smtp-Source: AGHT+IEKm1ENKdWrh8MvcHnDkmDowktqv7M2sTcgIaOnXkW4JewO10Xbn72nuSiDDks3PwRgKOZvNA==
X-Received: by 2002:a05:6000:430c:b0:397:5de8:6937 with SMTP id ffacd0b85a97d-39ee5b9f85fmr2351157f8f.41.1744817259294;
        Wed, 16 Apr 2025 08:27:39 -0700 (PDT)
Message-ID: <ab982710-0172-472b-b3eb-07914d6579cf@suse.com>
Date: Wed, 16 Apr 2025 17:27:38 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v19 2/3] vpci: acquire d->pci_lock in I/O handlers
To: Stewart Hildebrand <stewart.hildebrand@amd.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>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <20250415165404.435506-1-stewart.hildebrand@amd.com>
 <20250415165404.435506-3-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: <20250415165404.435506-3-stewart.hildebrand@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 15.04.2025 18:54, Stewart Hildebrand wrote:
> In preparation for translating virtual PCI bus topology (where a pdev
> lookup will be needed in the vPCI I/O handlers), acquire d->pci_lock in
> the vPCI I/O handlers.

I find it concerning that the locked regions (it's a domain-wide lock
after all) are further grown.

> --- a/xen/drivers/vpci/vpci.c
> +++ b/xen/drivers/vpci/vpci.c
> @@ -440,6 +440,8 @@ uint32_t vpci_read(pci_sbdf_t sbdf, unsigned int reg, unsigned int size)
>      unsigned int data_offset = 0;
>      uint32_t data = ~(uint32_t)0;
>  
> +    ASSERT(rw_is_locked(&d->pci_lock));
> +
>      if ( !size )
>      {
>          ASSERT_UNREACHABLE();
> @@ -452,15 +454,11 @@ uint32_t vpci_read(pci_sbdf_t sbdf, unsigned int reg, unsigned int size)
>       * If this is hwdom and the device is assigned to DomXEN, acquiring hwdom's
>       * pci_lock is sufficient.
>       */
> -    read_lock(&d->pci_lock);

The comment now becomes meaningless in its context.

> @@ -570,7 +569,6 @@ void vpci_write(pci_sbdf_t sbdf, unsigned int reg, unsigned int size,
>       * TODO: We need to take pci_locks in exclusive mode only if we
>       * are modifying BARs, so there is a room for improvement.
>       */
> -    write_lock(&d->pci_lock);

Same here.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Apr 16 15:48:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 15:48:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.956431.1349850 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5502-00005v-PI; Wed, 16 Apr 2025 15:48:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 956431.1349850; Wed, 16 Apr 2025 15:48:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5502-00005o-Mq; Wed, 16 Apr 2025 15:48:30 +0000
Received: by outflank-mailman (input) for mailman id 956431;
 Wed, 16 Apr 2025 15:48: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=9TmO=XC=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u5501-00005i-Cd
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 15:48:29 +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 3bc98ff8-1ada-11f0-9eaf-5ba50f476ded;
 Wed, 16 Apr 2025 17:48:28 +0200 (CEST)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-43cfebc343dso54878815e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 16 Apr 2025 08:48:25 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4405cd19213sm19415275e9.18.2025.04.16.08.48.24
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 16 Apr 2025 08:48: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: 3bc98ff8-1ada-11f0-9eaf-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744818505; x=1745423305; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=JA/iiYvuE4MhjOEFEin68hG7JsxOohtHQMotwB2lQUI=;
        b=VQ+fNtzd+1EKW1cBzIEqEGFa0I/G46VrDZSt4ZJ1sODALIMRB3JZiUExUU8PvcgMHP
         CUE8T39P6xzoHkf+CYL3VbRJ0nNsoIcaD0xKkZoQRXMbkaDY6PEK6yyqPEoe5nZfzMpr
         g73qIfponYbrKjnLSWI4ds4ljdLRg7NfOm6gY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744818505; x=1745423305;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=JA/iiYvuE4MhjOEFEin68hG7JsxOohtHQMotwB2lQUI=;
        b=mE4gnQBcrDYW/5YnLJ3VApZ/bOJ7nzSOcrzxotJ/6NxPrltjpW7Md9QpXE9Dxn58e0
         lNsivoQjVK+OO9NdvTRxBGUtu+UVZYcIV3Mr3HCrMKuhJNDUkruPqauwrPo8dVA6zqgO
         pVDG4o9GFyYrBnl8UDzgCMzO0IlBzqVjEo0VQIzjtiYSwa1WFqE/YLlVvT7Ru6Q1DGJX
         wVFEnfiTr0Husc7bx2BnhMLL5wrIhodKPzjGKV47h2wh4DSqD14qPIV85BV2J7oRQpqT
         gamkylO+BURwj4ANMgX0nn9IXatvV3pEaigddbeJT/rJYWplb/kTbbvDHp63CyqFMVf2
         F68Q==
X-Forwarded-Encrypted: i=1; AJvYcCVcErB28NkEhjbHzCG9Ek1liX0Tgn3Y3w/J4FuXQzJdXwzpg6GYKaTcfbj6x/aNV2J/EYG380+xhE8=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw4KL/kKRznceZC6OZRmioQL4xeb53O4YMRf4qYZWlw8H9WvfP2
	FKcnzh4jQIlZmXJgrbuXqA9BsQL8SVPc0iPjV/uor+1uKa+tXuDARWdKzvDbUy0=
X-Gm-Gg: ASbGncviZ38UyYr+sskc9UH9qyMCxtlzNJu0fOWnMhW9OFbde/Ams39SW/wOwWBqd8H
	B4SL3pIaewywdkWFJscJloPXnVp2LKHUm6DOChgh0CC3763uq+IZGHiBfNq/oiuknm1NjZ0V62V
	K6Ihaz5zueZRp0yOW01MTuGXi6F0VFGNGS6DMknQ8Y4ytTMJiOEPu34G+wh8y5iRKW8v8eeOLFp
	U2BxnhrJh7Tf6HNzF5xhqUYy3XqnygDfWgtls3U83oHsteDQx2O4s4piVOxtB2BSPwRzDVkY2yd
	cevdrQfbvO+QFQk4/LT3as2SqSuWpFCD81rB9OyouCBdze0akkaCnEkOTiR7ohiIXGdGu8vEtwt
	mqaxS+A==
X-Google-Smtp-Source: AGHT+IEfs5mzue5cxlA/tYZQGdPYsZnrAeuI9wspIDpkJ5xpGDv+tQ0W9QYI49D8oVi9fGz+UnlbXA==
X-Received: by 2002:a05:600c:5012:b0:43c:fe90:1282 with SMTP id 5b1f17b1804b1-4405d5fd401mr26798405e9.7.1744818505283;
        Wed, 16 Apr 2025 08:48:25 -0700 (PDT)
Message-ID: <f932fc96-3fb3-4247-b02e-ab35bd15baef@citrix.com>
Date: Wed, 16 Apr 2025 16:48:24 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/HVM: update repeat count upon nested lin->phys
 failure
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>,
 Manuel Andreas <manuel.andreas@tum.de>
References: <793580d3-3fd8-4715-8a34-bf9965dd5938@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: <793580d3-3fd8-4715-8a34-bf9965dd5938@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 16/04/2025 2:44 pm, Jan Beulich wrote:
> For the X86EMUL_EXCEPTION case the repeat count must be correctly
> propagated back. Since for the recursive invocation we use a local
> helper variable, its value needs copying to the caller's one.
>
> While there also correct the off-by-1 range in the comment ahead of the
> function (strictly speaking for the "DF set" case we'd need to put
> another, different range there as well).
>
> Fixes: 53f87c03b4ea ("x86emul: generalize exception handling for rep_* hooks")
> Reported-by: Manuel Andreas <manuel.andreas@tum.de>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>

I really do hate everything about how *reps is handled in the emulator,
but this will have to do in the short term.


From xen-devel-bounces@lists.xenproject.org Wed Apr 16 16:11:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 16:11:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.956446.1349860 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u55Lh-0006SW-HA; Wed, 16 Apr 2025 16:10:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 956446.1349860; Wed, 16 Apr 2025 16:10: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 1u55Lh-0006SP-EC; Wed, 16 Apr 2025 16:10:53 +0000
Received: by outflank-mailman (input) for mailman id 956446;
 Wed, 16 Apr 2025 16:10: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=VsD+=XC=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1u55Lf-0006SE-Kk
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 16:10:51 +0000
Received: from EUR02-AM0-obe.outbound.protection.outlook.com
 (mail-am0eur02on2061d.outbound.protection.outlook.com
 [2a01:111:f403:2606::61d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5cf7a611-1add-11f0-9eaf-5ba50f476ded;
 Wed, 16 Apr 2025 18:10:49 +0200 (CEST)
Received: from DB3PR0302MB8919.eurprd03.prod.outlook.com
 (2603:10a6:10:435::21) by AS8PR03MB7937.eurprd03.prod.outlook.com
 (2603:10a6:20b:424::24) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.33; Wed, 16 Apr
 2025 16:10:46 +0000
Received: from DB3PR0302MB8919.eurprd03.prod.outlook.com
 ([fe80::ce88:43f9:c971:9584]) by DB3PR0302MB8919.eurprd03.prod.outlook.com
 ([fe80::ce88:43f9:c971:9584%5]) with mapi id 15.20.8632.030; Wed, 16 Apr 2025
 16:10: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: 5cf7a611-1add-11f0-9eaf-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=NjZcgQNAi/gq9SRsqgsLKT/12IaVoxZPx24pbNAo02RrgwWSPmx4ioOEN4MYtbQnWJtnIipkQfPMmnni746YXo+FPVaDLUqqECpiJds98lz5byJSkmjtYJVq6I3Ybk0wrab+zt+ZAc4gtaKhmGB2pQAgHHOGmbEgUknqTKYnPlNO16z3LZgkbkzypzvuwcUgPN/SvXLaxXLmK6fCumQsKmZv1RE1kl/wwT/N+iqUm8S9N4TqzQ997chiQai0v3Kf/K6vucihtnYoXumFQVJE2Y/akR18tahGGzpP76c6jmKXphanlpodp+pJ2fZB15HTNAl8FfgGFWZRuBR+1O3aHA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=53o3St1ec3DU+qcceFQiTWCqqM4QOi3wbhMgOhCOgDg=;
 b=L5EMFLKrkMhU1pEIXozd5N7XChpkvQ27csINpWXS8ZrMG9AapK5N16G8bPdwGZxKZO0s4o2Z0kiIsyqBrZKC/Hkb7ZENzjsrLi4EW6WUuvhjeACnPm7wLYiCqAjJlipQCpVPjWKSobiJvhbk3Wm4tQY7nAGjD8VkIeFBJLVLdddq0iNMjKZAXLNG8nFLUEtrOEVsewpsrN2HLiPyy3bTViN0CVGe+vv24akIrI1aFotsDhzULBeywZq0Wer3OvNErDkgrmYKF11KKWjItLF09mrlFO/nEwywktAIK8smRkCMkXSiMgk34hRNlH4iP670AbZsesgZKIE19nCmenVI3w==
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=53o3St1ec3DU+qcceFQiTWCqqM4QOi3wbhMgOhCOgDg=;
 b=A5XlAtY5A6pe0W2YBPS+wwtwCz7lYoNjyaKtHeAPQsYUfFQI5ckS2U4J16LDABchtFk6b4fb+S3nftFBOJZqm24GOtoG6SOYZIKwOaq7P6oza/niB7V1hwphWc0unAFvaNiw8OVlRP/OjG6YK0DIzWIDJSk6YoDS6smKkqI0Mfmw+2HTPuCq3OEI69a8D0SrbZpSUA+5slnZi61hSDXW2WhGIjLGjOy8Ytbk12fExrK5w4bZN3fAYBc9NGErthYqs5t+OyEeaLlU4vU6dyHiIRwACnF8jE7q9rJxBKXUWwSpOO8gKX/L2KhEd5ER/2r4gzPE4QDHDW2AvabRJW8BEQ==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <b874731f-55c5-4783-995e-4da916e305a9@epam.com>
Date: Wed, 16 Apr 2025 19:10:43 +0300
User-Agent: Mozilla Thunderbird
Subject: Re: [ImageBuilder] uboot-script-gen: fix arm64 xen u-boot image
 generation
To: Alejandro Vallejo <agarciav@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Xen-devel <xen-devel-bounces@lists.xenproject.org>
References: <20250414081223.1763630-1-grygorii_strashko@epam.com>
 <alpine.DEB.2.22.394.2504151758170.8008@ubuntu-linux-20-04-desktop>
 <c0a5ca22-fc42-47fc-b1b0-358992014454@epam.com>
 <D984SS1H2QX3.3G4ZR015V2U3P@amd.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <D984SS1H2QX3.3G4ZR015V2U3P@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR5P281CA0009.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:f2::8) To DB3PR0302MB8919.eurprd03.prod.outlook.com
 (2603:10a6:10:435::21)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DB3PR0302MB8919:EE_|AS8PR03MB7937:EE_
X-MS-Office365-Filtering-Correlation-Id: af97e6cb-c455-4017-711f-08dd7d013ea8
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?OVZQVWFJWEF0ZG5DaHB4UnFadFdUZjNRZEt2SjZreEl2MExHdkQweUdiRGFM?=
 =?utf-8?B?blZUL0lHeEF0azE3WFV4UlZFSU0zbzhBZTkzNkRhVkszNVc4TGszVUVpZU9G?=
 =?utf-8?B?SEcyWmJ2T0RUUG1ra3ZMUzlncEdFVUdLVUxSL1hIVTdSakVuek56d1NQYWhY?=
 =?utf-8?B?M2Z4ODNHc2hGY2RtN0U3TVZoR3h1Z21yQy94d0RGZ0szMjgzWWhSTGYvNjQw?=
 =?utf-8?B?UjR6RGlmS3BLV0ZBMy9pakQwVFNhNG8yeTVHMTRJSjdLZTFWUTVIRk1WOHIx?=
 =?utf-8?B?bzJicFJmN05ZVDcvUmttYlFmQjVVYXJFa2pJdFEwM1A4STlLeVhlNjRycVkr?=
 =?utf-8?B?R2xIdjFibVlyd2J6SHpqT1Q3YWZmWm1aaXJoZ0cwYXFLUVYxOFNsK2hGRkdZ?=
 =?utf-8?B?WldMTFVFVGEvZ0RzbFQ0STJ2d2NlRUJmMk93NUJ5ZXdIZzBBZjAxbTVLQU9X?=
 =?utf-8?B?N2Q1cVB1Nm40NHhsVUM5eTFtZFQyNUNTSXkxekI2N2JsOTV3NDUvMC91Rjhw?=
 =?utf-8?B?Uk44Y3ZQTHNxd2o0ck9rSGxrV2RWUlJYMkIrTWpiT2h5STNMTW1DZVp4U0Yy?=
 =?utf-8?B?LzZtS2Q2MDkxMS8ycnBaNFdFQXRuQW5rZGF2clZzVWpWeWFHWHA5ekwxWkhm?=
 =?utf-8?B?aE1aYk1vNmVzbktPRWFSTmo2RUJRN055eVZLdzhzUDRscnJVc25uUzRaaUdN?=
 =?utf-8?B?UjBkeC9leEN4NjRVYU5FMDkrN2FjTVNhaWhZdWJIV0EraUhmeWZNUXEzZDA0?=
 =?utf-8?B?ODBWcUJNdFdiS1pRS3NWM3hlMmVKaUdLa2RaZkhtTGhjMkY3TmNmSWtaQlBV?=
 =?utf-8?B?djQ4RmptcjU5cFJZQldhdnF4Tjdvd0taU0FoTzdVajJBYkhsSnQ4Um0vZmdv?=
 =?utf-8?B?TGFYT3YyY0lQeG1xY1JQTzdYWS9ZZmtoenRwM3VLQkhzek1xQ3NLQUxOb3Ri?=
 =?utf-8?B?Tk44STJybTdhMk9mWGE4dTlvRUdvRHFxM3VZaFJFWnI4YUlzZTJ6TDMybHk4?=
 =?utf-8?B?Zk1DdzVYdUp2TkxRUEplSDVsenY0NkhkWW4xcmRQazBtM0dHQjJFVXlCdVFy?=
 =?utf-8?B?Nm9Rcm9xYjVQWXpxVGNRazBmVTBLTWhuTm9oSW02ME0ybnJBQUxvT3hzZ2lG?=
 =?utf-8?B?QVowaHlCSDNNVlBuMU5SdGxhOE83clFJWmJML09ZNXVPUTJJWFZRdGRka2tS?=
 =?utf-8?B?aHYxYWlsKzVJOWpwWTR3WmRoUG9tZFo3cjlsOFh0VGhPamZDU0p3SGF0SklN?=
 =?utf-8?B?WEZLNlc2UzUza1U5VSt6ZjI4eThTSTVwYi9SWXlFalNtSkM1TXAwL3JQbnRV?=
 =?utf-8?B?TllvbHJEaVFDN00rQkZ2cUlnVDN0ZUxheXZKUG1CR2ZtVjczOStIRUc0bkF0?=
 =?utf-8?B?Y0k4M3QwWHdSQVJ5aGZLaUw2VDFGZTJkaWxFYmRXbTNNMmJWTVA3bDR6WWlm?=
 =?utf-8?B?ZmtHSDJHWlJiMnJVS3pvUHQ3dWpPWnNseXN1RExjQUkybDRERVdlTHV4bkt3?=
 =?utf-8?B?d2R1ditzcXQ4SGpYQSt0bXA5ZkVIazl3QzUxMDJod2MrUmlnRGZoNllIRHBI?=
 =?utf-8?B?Q1ZFMTYrblI5UEhmU2plL1BpcGVGRW0vRGd4cmZUZ2U0ek9tZkZEakdxM25n?=
 =?utf-8?B?QWFuTzZnbzlzYTN5SE5tLzlwZVlmZUFwd1NqclBuVTViZzV4RGl2RE9FdElC?=
 =?utf-8?B?Z0ZWRmQ5YzFUZ1htc3dhVzdid2lZem95K0taNmIwOTNpalVjWXpVc2FXd0Ez?=
 =?utf-8?B?K2xIc3NnV1BoK0dYRHlpQmJZUnZvRmUyT2lvbTNRUnNjbkRHRmQ1Mi9sV2s3?=
 =?utf-8?B?MkdaR0ZXbkl0eXdlMkNPR3lwck8vbHkxUUU4QXlBSkxGaVhvdkZBY3hmc0Rl?=
 =?utf-8?B?UnpXWW11Rlk3OC9xQ2pKMjZmUjMyOFZLUXRLTGRrc25lVXBQNHA1UWgzeU5z?=
 =?utf-8?Q?ci/ZWRUcFt0=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB3PR0302MB8919.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?YlJWUndrem5lU3hMcnlLTnpHYktFaUpGRFIxTTJqUEgrcVdrcDUxZmN6V3pS?=
 =?utf-8?B?cEk2UFI5cTNDSG8yMWlhS0tXQnBPRmh3L29BdGNubHhNUklPOHNOR3dPT0pX?=
 =?utf-8?B?MW1EWkVXN0tTdTNnbFNoTStyNWRCUkg0dnJmRUNIN2dLMTRuWk01c0JHR0Fh?=
 =?utf-8?B?RU5Bb3ZBb1ZYb3cxdFVDbHpKUlBrekFlYlJaVElIbHlvVzZ3c2FHUnlxMEdR?=
 =?utf-8?B?bXRhdUF1KzM2QkJnakJieVNjb2sybnJST29UalVZWVV2L3JWYzZuR2tqVU8v?=
 =?utf-8?B?emd3MFdybEdqZnlpQWM3eFNwR1ZCVHBHUmxHU3AyOWNqaU1YeVp3NkJZSVlL?=
 =?utf-8?B?czh4eElzT2E4TGc0aVJuamkrMkYyNVVleERTeDBaNkJTZ0xieGk0REYzL1hQ?=
 =?utf-8?B?Mm4yME12Mm8xeVlsNzBtM052ZlFveXVlYlU1SXZENkVTRTAvWnFuNFFweXdV?=
 =?utf-8?B?UXNwYUZ6Qkk0S3pqRVVVUm8xVFo1UWFrbkFwbE5nTS83ZUh2WkErZW9zTVNt?=
 =?utf-8?B?NDh0SU1DYUJ4ZnB6Z0sxR3d3VVoxMXEwZXFkcG1rbWFBOVlBY3krUlN1UmY5?=
 =?utf-8?B?cWV2bjlrNzR1cWIrbk9oVzRVQ3BzdEVQM2xyUnR0OUVxNFhaTXRDSUpBbUpH?=
 =?utf-8?B?L05TWFpva0k3Yzh5NDBnRWpKUG8xMWdDL2p1ZGxBTXpWQWRqenI2YTgwVE5u?=
 =?utf-8?B?KyttaFlRNzdxcGNEZDNYTDV4VE1wOHcrUmVQTi9lYkVDdGhib3crbldsWCtw?=
 =?utf-8?B?V3ZSN2djRXhvMW1EMzNVc3lGekJUOVlOZjNHaFV2TEJzQTY4RXhpQTY0UFB6?=
 =?utf-8?B?RkE3Yk9Ha3IwL1RxbmhqWitEeS9lbnQ0MzR2N1NncFo2dXc1UVFEMzNIb3VE?=
 =?utf-8?B?dFBYdlltNndYSiswMFFMQzdxZzIwUDBaaXNmVW5GcjhzY1FSbXZhR3FtZ3VL?=
 =?utf-8?B?MUR6MGd2eWpRelVsUXZuTTdITWpyRndjRlJrRlNRR2dLNEZ5VUNhS05Bb0xu?=
 =?utf-8?B?VW5YYTM3c3U0cDdzZ1cwVUpxb2N3c0VMenpKUmo5dTl6bG84S3ZyZ1JMRVIz?=
 =?utf-8?B?YkMxdUt1eU00bVJKdDZKTS8xZVpicEV1c0Y1aFdyb1BRR0UyUXZTZlpUZTNP?=
 =?utf-8?B?T1F3ZmYyVURCLy91c0JqUnFKclh1RlVOSVZYM2F0UTNKeGlpQ1VhMkNRUGor?=
 =?utf-8?B?MkhCU1NTS3pTV2ZpNHpYT1dzcDJQai9EZm9VYTV4ajBXSjdhN2NiaERMZGxL?=
 =?utf-8?B?LzcvZC9kTTBtM1FrTVJTMzk5bjlKZERTK1J6TzNWaS9xKy9tdUU3QTIxNW5x?=
 =?utf-8?B?TWdQeUM4YVVjSHJIaEVRVW1waEp3MkVzYzVJT21WbWhnNUMrNGtwaUJsTHE0?=
 =?utf-8?B?R0I5ZGJ0VTRKQkFZK2dBdStNUEJXN3NsMWdUcDhkd2lTZDd4eXc3M1FEa013?=
 =?utf-8?B?WC9QVENjQXk5c1lDRFBlU2tVaUdqYWc5Uk5QejIva1VkSXFTd21COFpjTUlJ?=
 =?utf-8?B?QkhFaFZ2aTN2WHJ4N2FLL0pqRVJGWWp2SXpBZ1NJYko2QmFtY0doWDZOT2xs?=
 =?utf-8?B?MDJSdnRSUW1QNXEyWlZYRlJPbCtpVDdjMkNwSnVHcXgvaVRrZ25TdUlQeFRr?=
 =?utf-8?B?dTdqaGVxdHZyd1llQ2tlQmN6c0ljWlN1ZytaWjU2dXdPbktMbTVXMmpjc2cr?=
 =?utf-8?B?bkdwOWlZekVBUHpXWGFtQVdFVi9JV29CSE5GT2ZuRzgxSUJVWmVyVFNCcWhQ?=
 =?utf-8?B?eGxzcUlEcU9hOWV6WllPUHV2VHY4RndrZkxScjUvWmVwaTZTZmpZU1UyenZ2?=
 =?utf-8?B?YkxKekJmZ1NkWWxEbTlRYVNLUWdUVGxjT0lkODAwUDEzUGlSWktVVjhJTlhU?=
 =?utf-8?B?N3J3VGNxQlVVcGhxTk5KYWZ0SnBaQURUOERTaDZZK2xySzJQR3NCZlMwRFFi?=
 =?utf-8?B?SnFaOFdKY3g2VkhYdktjZlpoQSt2VEk5bEdEOCtkOFhrSnd6YlFrNCtaZXVo?=
 =?utf-8?B?RTVwRTJBTHY4Q1gxSHhSc21kMFFSSW15WlZZbXNaOTJadmFweWltWnJONjhz?=
 =?utf-8?B?ZXFkdS9RY0phVlVoVjNVbitQb09abnN0MTdKUjc4RUsyZEt4WVVyVW92a0gx?=
 =?utf-8?B?ZDhkVFdBemJwUmRFSUloNzA1ckNOM3lhR1JMdzB4WHFSU1BxWUo1Mkh5MEds?=
 =?utf-8?B?cFE9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: af97e6cb-c455-4017-711f-08dd7d013ea8
X-MS-Exchange-CrossTenant-AuthSource: DB3PR0302MB8919.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Apr 2025 16:10:45.7561
 (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: NiyA23LgrjmFKq/huy5MwFliyawSbEUijOEOTV8XD90eLbf8/jeJ6Zqeulnk+Vd2iU/BWVFIwFwS5X0B6+hvx+jZ3OG0y1nXBiIzHSssmRI=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB7937



On 16.04.25 17:26, Alejandro Vallejo wrote:
> On Wed Apr 16, 2025 at 11:44 AM BST, Grygorii Strashko wrote:
>>
>>
>> On 16.04.25 04:03, Stefano Stabellini wrote:
>>> On Mon, 14 Apr 2025, Grygorii Strashko wrote:
>>>> From: Grygorii Strashko <grygorii_strashko@epam.com>
>>>>
>>>> The current code in generate_uboot_images() does not detect arm64 properly
>>>> and always generates ARM u-boot image. This causes Xen boot issues.
>>>>
>>>> Fix it by searching for "ARM64" for AArch64 binary detection.
>>>>
>>>> - mkimage -l xen.ub
>>>> Before:
>>>> Image Type:   ARM Linux Kernel Image (uncompressed)
>>>>
>>>> After:
>>>> Image Type:   AArch64 Linux Kernel Image (uncompressed)
>>>>
>>>> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
>>>> ---
>>>>    scripts/uboot-script-gen | 6 +++---
>>>>    1 file changed, 3 insertions(+), 3 deletions(-)
>>>>
>>>> diff --git a/scripts/uboot-script-gen b/scripts/uboot-script-gen
>>>> index a9f698f00fd1..c4d26caf5e0e 100755
>>>> --- a/scripts/uboot-script-gen
>>>> +++ b/scripts/uboot-script-gen
>>>> @@ -815,13 +815,13 @@ function linux_config()
>>>>    
>>>>    generate_uboot_images()
>>>>    {
>>>> -    local arch=$(file -L $XEN | grep "ARM")
>>>> +    local arch=$(file -L $XEN | grep -o "ARM64")
>>>
>>> My file -L gives:
>>>
>>> for arm32: ARM OpenFirmware [...]
>>> for arm64: Aarch64
>>>
>>> So the ARM64 grep wouldn't work as intended. Is the version of `file'
>>> that you are using really printing ARM64?
>>
>> Hm, yes.
>>
>> 	file -L xen
>> 	xen: Linux kernel ARM64 boot executable Image, little-endian, 4K pages
>>
>> 	file -v
>> 	file-5.41
>>
>> u-boot boot command:
>> 	 bootm 0x4EA00000 - 0x4EE00000
>>
>>
>>    If so, we can do:
>>>
>>>     file -L $XEN | grep -E 'ARM64|Aarch64'
>>
>> sure. I'll update.
> 
> Missing escape? I think it's needed even with single quotes.
> 
>    file -L $XEN | grep -E 'ARM64\|Aarch64'

No. It's extended regular expressions ("-E") no need for escape.
Also it works with both '' and "".



-- 
Best regards,
-grygorii


From xen-devel-bounces@lists.xenproject.org Wed Apr 16 16:50:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 16:50:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.956464.1349870 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u55xu-0006Ee-DL; Wed, 16 Apr 2025 16:50:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 956464.1349870; Wed, 16 Apr 2025 16:50:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u55xu-0006EX-AX; Wed, 16 Apr 2025 16:50:22 +0000
Received: by outflank-mailman (input) for mailman id 956464;
 Wed, 16 Apr 2025 16:50:20 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=VsD+=XC=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1u55xs-0006ER-Pt
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 16:50:20 +0000
Received: from EUR02-AM0-obe.outbound.protection.outlook.com
 (mail-am0eur02on20609.outbound.protection.outlook.com
 [2a01:111:f403:2606::609])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e14d7b52-1ae2-11f0-9eaf-5ba50f476ded;
 Wed, 16 Apr 2025 18:50:19 +0200 (CEST)
Received: from DB3PR0302MB8919.eurprd03.prod.outlook.com
 (2603:10a6:10:435::21) by AS8PR03MB9416.eurprd03.prod.outlook.com
 (2603:10a6:20b:5a3::14) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.32; Wed, 16 Apr
 2025 16:50:16 +0000
Received: from DB3PR0302MB8919.eurprd03.prod.outlook.com
 ([fe80::ce88:43f9:c971:9584]) by DB3PR0302MB8919.eurprd03.prod.outlook.com
 ([fe80::ce88:43f9:c971:9584%5]) with mapi id 15.20.8632.030; Wed, 16 Apr 2025
 16:50: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: e14d7b52-1ae2-11f0-9eaf-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Q0tPZThCZewHh7QVTp20jpOonR54yN/EtdSqWwQxYKeHcnRWUOkBjzFkMTEyoHEcNKS0cH7K9k7wLhaZd1TQXTKvnVjjxIRQwB/p7KJYCJA+edI/xnFUZZQpSPaKsVAIhqIGVkF/ZY9we4wOqKRoukAs52lrfrLNINinZDotnFqp6ACRsD6LohFm1X2xrJEjXdvsGCml1k86r4Ls1kT2Z84+SdWytey34jz+zqms2kfs/wmX1H4xBLScBtloS/U9vU/U/bSxMzdW9bl5qGfu4RV++Uqvh0yhNMW3A14aMLI2r0Yn8KOCbXt3Jzvt+H1ZeLVcZLYoib/2cgseqjg9yw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=sQiuKA+zddsVl/h5lOfnW7qtl1lldnQeW9ZSeD8NWFg=;
 b=hgvkaRN2SAsLAHmQdBSrrf5nUMhP3JOy5EhC43/nbDRQZI5JEtaPfKioGzG7DbNPD3HC3MLChyoBMT0YF61yu0lhuMxbsla93P6zh6aM0hPaCUhsOOS5dfRCvDCoE/2uRZUpFA8BiQS/Ve61smYe0KrjyOxJHxyQGWuy7tnCkja5wa8mwCYEkFxhU+jh7TQ93/8Ez3wSapUrxQkKFw3VMsNf21bLxbg51ltiJGhB9Zazssf5JH1M5HsEphiRC1ivQm+ajWhM2tVi+fK67ahDjSuSshCylruYCbWFQh6V53fJ8KbeFMe8zyKNd4nHhiL/QvFamK/VGfQPSBrx8ggOZg==
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=sQiuKA+zddsVl/h5lOfnW7qtl1lldnQeW9ZSeD8NWFg=;
 b=qH3uWC6nNskHfMUh0aug2mVn8Hpi9Y+Lu+abfI0wLlDAaeWiTKp7j9FOhM7iqG4ydF7x2Qn5JHFSH6ponrYrlsXQdtVQKS3jbS/NUEPSZOvFzfHPcEVjJEg0kQ6ExYNlCEc2eA79zkRmKqSb0oEFNdWAqdiCzE7McrKhL+79QiqRriBV51Yt44yJ+OXsRI9Pm5JUSAuiKkk/zqkGa2+ba0GJTxxuOhx6MQ552ssGsDgfuf/Wcej8bj1VDtuOwRz0orDD5m3ey2vsaBIdQbnVpspI1VsaOG1fFfcFMoSYNclV/EqajTSGnYiou/BulQnjoik+z7i4qsiOqBQnJ8wW/A==
From: Grygorii Strashko <grygorii_strashko@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Stefano
 Stabellini <sstabellini@kernel.org>
CC: Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>, Alejandro Vallejo
	<agarciav@amd.com>, Grygorii Strashko <grygorii_strashko@epam.com>
Subject: [ImageBuilder v2] uboot-script-gen: fix arm64 xen u-boot image
 generation
Thread-Topic: [ImageBuilder v2] uboot-script-gen: fix arm64 xen u-boot image
 generation
Thread-Index: AQHbru+gjQsTQ/HM4kWWIbbQtHW9Sg==
Date: Wed, 16 Apr 2025 16:50:15 +0000
Message-ID: <20250416165014.2263305-1-grygorii_strashko@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DB3PR0302MB8919:EE_|AS8PR03MB9416:EE_
x-ms-office365-filtering-correlation-id: 9f5433e2-760c-420e-d939-08dd7d06c367
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?CUrqIjYwh1q8GR4DtepAA0gBhKsJmN6O2WuEluvNQ/hSI8YTm/D7fPY8be?=
 =?iso-8859-1?Q?D5g7KvJVxkeTNbVwr25rOlEWg8+VumLvj36rY7Xz4jcbJXjquO2wGQkw+P?=
 =?iso-8859-1?Q?1yjlJz70q0dX7l+vowUzx7NeALuNSRSHBLIBZITx0+FRwNk74VXfKarpKH?=
 =?iso-8859-1?Q?FwSn6DyBR+WVgBezzUkS2LTsBry78A0n3f/bAqn85IYhe04o5RNCkEx82m?=
 =?iso-8859-1?Q?1EKtLUyuRnKn05vDa9dpk8P0ei5NvFuiGtATtyvvWJaHA5a6TkLKYkOnpN?=
 =?iso-8859-1?Q?42pTkPF1p2a0qDDV+oxmzEDt2DhZIMZjPwUAJo0mNJRo8CoB57uEUxlWJR?=
 =?iso-8859-1?Q?2WQtJLLZilc0JdQ0Ff9AHN7tPn1Vbao0awKVLMEoh0X9sz94lHVT0x+V3J?=
 =?iso-8859-1?Q?GtslbidXbFh9ip18VqgG//1XEnX//ol7RSlrRZssSCTmZPyQHdVS40SiaZ?=
 =?iso-8859-1?Q?/VF1v9wF/ZPuy6tf0Isz7BQgq3/dg1rkJR8Fz35NAWX/8dDuiwQmMaaeR4?=
 =?iso-8859-1?Q?W3i1Vs62hFYmKoB0kyJxa/Zeib+b7tcTmPcof+GqFNFqZEBTCXSkWF+dOQ?=
 =?iso-8859-1?Q?1sSQyW50oKrYYiCN3VpgGak+uPl3j/hu5nzwAQB9a9F4AfAobcHYBjNbhZ?=
 =?iso-8859-1?Q?VA3/LB+Col9nmYG5rBnZyi9zumDSFa0YpgwZIrY11sUMvxgjilp47W3IZc?=
 =?iso-8859-1?Q?54xHAR8V7FlkprkceJb0hqpiXdHp4pRDANIdeGjPDvAFUygdXGhumcMgC8?=
 =?iso-8859-1?Q?fw4xWOUddIxcPFZKBiKP56VZInJt+BZcnW9bf1r4mutXywfTqRhQQsAbhD?=
 =?iso-8859-1?Q?kaBKi38EGzV/78j2CGMY4NNta7Ra7e4pkVy3BlDej4jrBtJRqE+n2Joxn3?=
 =?iso-8859-1?Q?H2NG+qdAdBawrK7LrBo6C10sR9Koxe9orQVBV9ybikZYKvbWFQxEFCcm4S?=
 =?iso-8859-1?Q?8dKAponpAMC7rc2PPUM7DebzUfWsZvWYAZ+koeuxU2JCrBm4dRioXV66Vd?=
 =?iso-8859-1?Q?PC9TU30jXVvJM4uXnQ6H9P/Y+q2VXBPxypaNR9bQS7iBU/0kMGJn9cMRLP?=
 =?iso-8859-1?Q?eQUcfyc43jYMq2a667UiXcbj1jQ2ORAT4XjnpjMoqjj5ExlRoKJZxtlpJr?=
 =?iso-8859-1?Q?+15GrO4ATcRRnPuovUWPJstHN2Wq+ZwLn3Sca9JkW5Y7Pt0/726/EE9cQb?=
 =?iso-8859-1?Q?RO7ZPt9JB0nKYOIIBqbg7GaJ1n+jg87Rln35eN1sC+0cK+Cs+KAlwZMwls?=
 =?iso-8859-1?Q?8d925ze0Fz9yd4XV0s+i5kyZs/pPSDtWft7jAh9MUj113zLYxggzkpqHoP?=
 =?iso-8859-1?Q?AMvHnlJgdE8Y5ZLBZyr3te2aILC8qAbKeTnaRcOotDuwBlbE4W19OFfWsC?=
 =?iso-8859-1?Q?wRA1MI9YH5bbUU4YQPYWpfKOTb7TtXg8dGJMaQxEfG8u/WPNVn0a2KUbXW?=
 =?iso-8859-1?Q?w0lTb+ajfgf5CwMMo+g4c/WenhyK66pylMMarKwakEyH7VX1s+UeiwWaBo?=
 =?iso-8859-1?Q?5kViZ1uVLcHHx/6bbU4c6tM+s9HwSo/ckZ0RV+K4GFtA=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB3PR0302MB8919.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?IFPs26AnGmMKv5+k3u4C0jsRRjNi6dDH9MovHcUIQeGgO5M3oSvm0iCddd?=
 =?iso-8859-1?Q?Ia4CKT5+Z7O/fkOlf+rIac5puLafmTPfz2deHM689K+BMWWukh0WJiTF1M?=
 =?iso-8859-1?Q?4P9OoG/bAgx42sPDGjnryIxDenkPIxOshQ1gfKFlBTJUG4Ihd7k4FRKl1l?=
 =?iso-8859-1?Q?8DC8XZlxHqtG1RH/AAVeCPMnjSJst2JqqmT/zNNA8JyqCrvPa8AijwmVsW?=
 =?iso-8859-1?Q?ghU5Eg2lAa3oAper9CnQM2ZS1hwQurz29AUlVUSJnCZd0SeUHDkVVdK+t6?=
 =?iso-8859-1?Q?9FIsZXjRr0Jk0NJNnOobIV9breX1+Yh/nKCQJoii4NY56IxirwPtvcpNxc?=
 =?iso-8859-1?Q?vO03nFeEkX3NAA7TnNVkoAk/PYYGrEcT96JptLtsPE55JkpFs5ITEcOVng?=
 =?iso-8859-1?Q?TbGTHYWXHsI4DPCTuson4t7sOBA6FapPGsb0sv5DynvcIasAKfDEqp4hcf?=
 =?iso-8859-1?Q?AdW4PF2MXIKEgfuS3i3pBIpG4Tf+4QVGCBRcS6MqK0xSmix4OnphtaUAIe?=
 =?iso-8859-1?Q?LpgOOD0gXZwchMwDoDsOdIcZz6UvW6ASVvKpSHm0sWLYh+Pgee5H2k0KLs?=
 =?iso-8859-1?Q?DShNiIPfleZfvsYI/vd2BY4ge+6vN+cO4f5N2YsiIwQQKJ0t5YFA3b2oC5?=
 =?iso-8859-1?Q?cVZ+qVYVcXpA/qsKwg9FGyQT6J5T//ZIIL0P9hlmHtPhs+AuzEnjbyWmDR?=
 =?iso-8859-1?Q?yThoedKykN0T+dbQtEb6lOGMa/7dL3FupM1WSDHeT9CEP2CoMEvDEKpav3?=
 =?iso-8859-1?Q?V43LH6gKpuHM4btx+JasncAFChb/JWUw+JObinNPbYe1Nzq7TXlnWY3s/c?=
 =?iso-8859-1?Q?KJMQGXDe/OCbGoEAy+cI33rVJ1wvt+uiM4pOlIpiKvJkFFdr8+vbWUICwG?=
 =?iso-8859-1?Q?vQS8qcOovTJuWL+61Knff3+gyTk+zCFbuCxuu/w4vq/TmD0SNjPdZpgt0L?=
 =?iso-8859-1?Q?90LV0900rIEu9dE2pZ8lWerR9RrQHRibm71+Cz+yBoRbv8mpFrTPz5Srpq?=
 =?iso-8859-1?Q?qchKuiK+N2tvCoDFfdu1eBGODqO+8RLBsmSG9q/UaVKB/pEGUQM301z/yw?=
 =?iso-8859-1?Q?Oh3Fbsv19ZZsCqHOpuWmuHMp09PekOyZ2PM0EFqwUKsAM5FYEfXAghP+l9?=
 =?iso-8859-1?Q?+Q9bmXWsvixP+QtPAHvN7CfE+AtFbILvaI3Q4I6iV7syztT1hHARl0eiWL?=
 =?iso-8859-1?Q?WEtXZl1Gg2pSXxOOj9AJpDRdzB2spMZooIaVIyfjJW1AJXxZtKFE7/zjlJ?=
 =?iso-8859-1?Q?q9zdBL04Ji2ZWKZU1G1AM5oAhGkrred4h0FlzoZ78VpHFQrbCGAeCJ3CED?=
 =?iso-8859-1?Q?b2cM/K8sE46MUcTxeiTKe5f4eA5yI60Jty5bd2BLpRRMTiUzNWaMqsjuJp?=
 =?iso-8859-1?Q?ajjKh/fdVUODnXUdU8NeywLL0LKc1ognBNStzJ3NI7iMzA+/OGsAPeyNeH?=
 =?iso-8859-1?Q?bJ2TXaKv8onzgEU12rjuESaL0+dNE+AGfj/2PzY3f4ImhnT5KRSQCUsSsb?=
 =?iso-8859-1?Q?G/tHu8RhMzQMnyKUTjFyQNfiO1IhzPPRMLTPYBkKnvNeJjTZX26Aph9QPO?=
 =?iso-8859-1?Q?Qvr+z701DI/7492lCDGqRteY6FJDPdTT0bjmEgabPpsecBMfWRi4vYGT5T?=
 =?iso-8859-1?Q?O6DMx7JwM6uUj8vMMVUW/KEkEr7MRqsCKL9Xw672lRPfFmAXqebRTPtg?=
 =?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: DB3PR0302MB8919.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9f5433e2-760c-420e-d939-08dd7d06c367
X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Apr 2025 16:50:15.7516
 (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: 3Hr3yn2dEYRU1e0YBQMU0fb2xYnNt1dv9i8R5eZeBSz9xxGOKWAKtOL3S7YNb9ObmOZCrvB7pPJQ4HoGz9um6UrRmuJMGDiX4ODpHFhRsIE=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB9416

From: Grygorii Strashko <grygorii_strashko@epam.com>

The current code in generate_uboot_images() does not detect arm64 properly
and always generates ARM u-boot image, because below command
 file -L $XEN
returns string which may contain "Aarch64" or "ARM64", and, in the later
case, the current code will mistakenly identify Xen binary as "ARM".
This causes Xen boot issues.

Fix it by searching for "ARM64|Aarch64" for AArch64 binary detection.

- mkimage -l xen.ub
Before:
 Image Type:   ARM Linux Kernel Image (uncompressed)

After:
 Image Type:   AArch64 Linux Kernel Image (uncompressed)

Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
---
changes in v2:
- check for "Aarch64" in addition to "ARM64"

 scripts/uboot-script-gen | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/scripts/uboot-script-gen b/scripts/uboot-script-gen
index 527b70dfdc4b..f3ca787e557f 100755
--- a/scripts/uboot-script-gen
+++ b/scripts/uboot-script-gen
@@ -824,13 +824,13 @@ function linux_config()
=20
 generate_uboot_images()
 {
-    local arch=3D$(file -L $XEN | grep "ARM")
+    local arch=3D$(file -L $XEN | grep -E 'ARM64|Aarch64')
=20
     if test "$arch"
     then
-        arch=3Darm
-    else
         arch=3Darm64
+    else
+        arch=3Darm
     fi
=20
     mkimage -A $arch -T kernel -C none -a $memaddr -e $memaddr -d $XEN "$X=
EN".ub
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Wed Apr 16 16:51:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 16:51:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.956477.1349881 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u55z2-0007UW-Qs; Wed, 16 Apr 2025 16:51:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 956477.1349881; Wed, 16 Apr 2025 16:51: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 1u55z2-0007UN-Ns; Wed, 16 Apr 2025 16:51:32 +0000
Received: by outflank-mailman (input) for mailman id 956477;
 Wed, 16 Apr 2025 16:51: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=rxVN=XC=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1u55z1-0006VW-Bi
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 16:51:31 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0ae7b7c7-1ae3-11f0-9ffb-bf95429c2676;
 Wed, 16 Apr 2025 18:51:29 +0200 (CEST)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id 2D60B4EE3C76;
 Wed, 16 Apr 2025 18:51:28 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0ae7b7c7-1ae3-11f0-9ffb-bf95429c2676
Authentication-Results: bugseng.com; arc=none smtp.remote-ip=162.55.131.47
ARC-Seal: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; cv=none; t=1744822288;
	b=VKl6OhSBeeNm6jlKjTgKeANX6vctSJDuelbYP4urOmkrd4KW+5oKDmtoBLwPagvxd7q5
	 zO/gbE6VOsW+vs+CXUnCZpGu1bDb7Fnim4pNFA3qiVxWxnBOGpTJRhg0+VuiQiwlivRZ7
	 UhcgrdAX3F8j4acpbsFtAoFsDqYv/jHrAW1jWIixlEKzxhMv/2OIxExED+R4JeDI1aseN
	 9hiGUdaeQTFi3pw2UgdOg1i3N61Zn6tqNYCt3+jIAu6+zNtJ80/wZj7fI4X0LFDgDSB1K
	 hRauwusvZYdWCMXV+fZaFt9RN5OzEQrDrgfNpGGQyXgXg4m1us6HRBRPN486M34IKoUsZ
	 5C7cVmYXNmfKm+ewRpr3rq/fgad/iRvh+SjJy/jSUFwzj3ZoDfBK2o3ziVXJgk3bQ03B2
	 F3Fit5stIkxYpHgvWXUkVUGNKNPg3oh3B6LARoxLJRitpgcyHUK1Jd2RCbT86P8nIbbp0
	 TgSTqZxmO2DceXVsMnw2B4vMv5brV+/nEuTONcPUz2mVFa0KJYDbQR8atfl/ZMJ1d84Bo
	 R0JYPk7eq2I8LcPJ/sPR5a9dLdnPM1oYvwGyJO2lIsJ5QWmHh5zD1/1RmCQzKb5MI+pB9
	 b57GXIMhUUmnX1SzQ3rv6TrIPyikmD1gre/tZy5LA5Xq+i9r3pxDHYrlu8SgUNc=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1744822288;
	h=DKIM-Signature:MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:
	 References:Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=oGdLWcrEEbJpDTyFe9rk6sIAUrih6/jLp68wkchrIiA=;
	b=YrwPPv5LS/2WO81YzTk5VKmkTC/lAdIGlNKUrxKvBg8FTT7FkJz0hSqYcAdvIM/+QI9+
	 u12R7Hj6gm7Cp4UiQ5LVMyumYA+b4y9q2miMoywbO6f+HXl2/3toMPOa1DruFXAvwE1sJ
	 Jtm2STaeLKhzRSTQ6aj0N3G25fNSqHdal3kBNwOCelkPOX90mW9tDpUmlleJAyHd2rl+N
	 7HNSTkEDsXoaz8hq4GK7Dms7hpDOAC0DgulBVbxVNaFYXBwvH6Mzd1aRYYS/tHsxTEIG9
	 04UTQx8GA2I89P9URBE+XWest+cqVx9ALrixfhOOTPm9opoEUSuaKyGd2WXlBBM2eaW7y
	 +Uq3G7+40lDHxewIT3xjfrJor9gFjIAjUmY28ducibm488yAq2nNvIStNJqo+0RwQEpCg
	 ZnDCHmq9fkY8S2bZeWRBaazQv1F5nIKwnsJlhcI1xCACmjvVcFQS0L6Nb1mIrrk+JkgjJ
	 twoV70cyGzrF590sY4W6ebzf6CB1m3cJTHpmGzughousV9H7R0Ua/eagqPq1ClahNZDOH
	 T0fPU0d4Ao/lAsd6x3wzBM6GEGQG/GCgyDd3N7VbHyGpquqUh/qgJAnxEmU3ujj4Cj9NG
	 T1nweZz4udr9RkRAe5qxobK3fFncHcaaszOqDDAIMuY4bfEkJqz3Qv24C34O7Zk=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1744822288; bh=pFLbwldL+JkaPh/Hv/cjO1CYlxk4c0h3BQ95nRoDOas=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=siUKBDpa6HpL5ywTN4U4ajGRyniqKDCJCUJlpkG+I50uL9REI0HOwrN3luALSG1Fb
	 zUTrASR5mA5T4S6ot+pb5jFdihb6bFGRAP8xvx1kYbXCad3wlMwMhu864aeSLy00QL
	 BnL1RsCQlPx9QQe+sHskNOCIjPKyKYKP3F/eCCCZsL1Wfi/gUogsNuNRrpl/6/Iyjh
	 ZdQ3L7za7gk8NxoUqeOO8xW3Tfo1UbcStSp8oLEwMuYbIwsQwp4/f5cg77wM6FUEsG
	 LSbI4dghQsYsfXb572067wIhD16gPz692leZJF0GLdFakZhn1HxQgcTVs1x3fIPIgL
	 8JC4Qu4j21LRw==
MIME-Version: 1.0
Date: Wed, 16 Apr 2025 18:51:28 +0200
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>, Anthony PERARD
 <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Jan
 Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Stefano Stabellini
 <sstabellini@kernel.org>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>, Shawn Anastasio
 <sanastasio@raptorengineering.com>, Oleksii Kurochko
 <oleksii.kurochko@gmail.com>, "Daniel P . Smith"
 <dpsmith@apertussolutions.com>, Lin Liu <lin.liu@citrix.com>
Subject: Re: [PATCH v6 02/15] drivers/smmu-v3: Fix impending MISRA R20.6
 violation
In-Reply-To: <20250416115900.2491661-3-andrew.cooper3@citrix.com>
References: <20250416115900.2491661-1-andrew.cooper3@citrix.com>
 <20250416115900.2491661-3-andrew.cooper3@citrix.com>
Message-ID: <a2a8c428e705cbc408aafc96f2d3ed3e@bugseng.com>
X-Sender: nicola.vetrini@bugseng.com
Organization: BUGSENG s.r.l.
Content-Type: text/plain; charset=UTF-8;
 format=flowed
Content-Transfer-Encoding: 8bit

On 2025-04-16 13:58, Andrew Cooper wrote:
> cpu_to_le64() is about to become a macro, at which point the #ifdef in 
> the
> middle of it becomes undefined behaviour.
> 
> Use a logcal variable to prepare strtab, where the #ifdef is fine to 
> use.
> 
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

for MISRA:

Reviewed-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
> ---
> CC: Anthony PERARD <anthony.perard@vates.tech>
> CC: Michal Orzel <michal.orzel@amd.com>
> CC: Jan Beulich <jbeulich@suse.com>
> CC: Julien Grall <julien@xen.org>
> CC: Roger Pau Monné <roger.pau@citrix.com>
> CC: Stefano Stabellini <sstabellini@kernel.org>
> CC: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
> CC: Bertrand Marquis <bertrand.marquis@arm.com>
> CC: Shawn Anastasio <sanastasio@raptorengineering.com>
> CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> CC: Daniel P. Smith <dpsmith@apertussolutions.com>
> CC: Lin Liu <lin.liu@citrix.com>
> 
> v6:
>  * New
> 
> Eclair log from v5:
>   
> https://saas.eclairit.com:3787/fs/var/local/eclair/xen-project.ecdf/xen-project/people/andyhhp/xen/ECLAIR_normal/xen-bswap/ARM64/9556392204/PROJECT.ecd;/by_service/MC3A2.R20.6.html
> ---
>  xen/drivers/passthrough/arm/smmu-v3.c | 8 +++++---
>  1 file changed, 5 insertions(+), 3 deletions(-)
> 
> diff --git a/xen/drivers/passthrough/arm/smmu-v3.c 
> b/xen/drivers/passthrough/arm/smmu-v3.c
> index cee572402203..df162350578c 100644
> --- a/xen/drivers/passthrough/arm/smmu-v3.c
> +++ b/xen/drivers/passthrough/arm/smmu-v3.c
> @@ -722,15 +722,17 @@ static void arm_smmu_write_strtab_ent(struct 
> arm_smmu_master *master, u32 sid,
>  	}
> 
>  	if (s2_cfg) {
> -		BUG_ON(ste_live);
> -		dst[2] = cpu_to_le64(
> +		u64 strtab =
>  			 FIELD_PREP(STRTAB_STE_2_S2VMID, s2_cfg->vmid) |
>  			 FIELD_PREP(STRTAB_STE_2_VTCR, s2_cfg->vtcr) |
>  #ifdef __BIG_ENDIAN
>  			 STRTAB_STE_2_S2ENDI |
>  #endif
>  			 STRTAB_STE_2_S2PTW | STRTAB_STE_2_S2AA64 |
> -			 STRTAB_STE_2_S2R);
> +			 STRTAB_STE_2_S2R;
> +
> +		BUG_ON(ste_live);
> +		dst[2] = cpu_to_le64(strtab);
> 
>  		dst[3] = cpu_to_le64(s2_cfg->vttbr & STRTAB_STE_3_S2TTB_MASK);

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


From xen-devel-bounces@lists.xenproject.org Wed Apr 16 16:52:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 16:52:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.956488.1349891 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u560O-00081t-4K; Wed, 16 Apr 2025 16:52:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 956488.1349891; Wed, 16 Apr 2025 16:52: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 1u560O-00081m-1h; Wed, 16 Apr 2025 16:52:56 +0000
Received: by outflank-mailman (input) for mailman id 956488;
 Wed, 16 Apr 2025 16:52: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=hq9D=XC=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1u560M-00081e-Aa
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 16:52:54 +0000
Received: from AM0PR83CU005.outbound.protection.outlook.com
 (mail-westeuropeazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c201::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3be582c3-1ae3-11f0-9ffb-bf95429c2676;
 Wed, 16 Apr 2025 18:52:51 +0200 (CEST)
Received: from AM8P190CA0018.EURP190.PROD.OUTLOOK.COM (2603:10a6:20b:219::23)
 by AS2PR08MB9499.eurprd08.prod.outlook.com (2603:10a6:20b:60d::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.34; Wed, 16 Apr
 2025 16:52:48 +0000
Received: from AMS0EPF00000198.eurprd05.prod.outlook.com
 (2603:10a6:20b:219:cafe::dd) by AM8P190CA0018.outlook.office365.com
 (2603:10a6:20b:219::23) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.18 via Frontend Transport; Wed,
 16 Apr 2025 16:52:48 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AMS0EPF00000198.mail.protection.outlook.com (10.167.16.244) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.12
 via Frontend Transport; Wed, 16 Apr 2025 16:52:47 +0000
Received: from DB7PR08MB2987.eurprd08.prod.outlook.com (2603:10a6:5:1c::25) by
 DU0PR08MB9274.eurprd08.prod.outlook.com (2603:10a6:10:41a::11) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.8632.27; Wed, 16 Apr 2025 16:52:14 +0000
Received: from DB7PR08MB2987.eurprd08.prod.outlook.com
 ([fe80::d53f:b16d:70a5:8668]) by DB7PR08MB2987.eurprd08.prod.outlook.com
 ([fe80::d53f:b16d:70a5:8668%4]) with mapi id 15.20.8632.030; Wed, 16 Apr 2025
 16:52: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: 3be582c3-1ae3-11f0-9ffb-bf95429c2676
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=rtSriI0bcc5fGzyYHQny4pN5ayNb06j9xV3fsIPe/S18oUkyMUsJqXXYnoU+xh8ErLC59WqGlxZ4DXhbS3kJhaMmrZT0qk2QdvSO8Qh0FTzt5fOEUEP3lB+y7VGo5C6C2mhyvEK3bUneu33CmIooDfZE4dUrXCmq8pAcT8VpB5nMINfAdypdfeMb70b8dhM+HDBD/i4FhxIjagUY8uHktWwtqJIRhh8ZGhVTM849GUS2grg29vcKxEu1fUciM78wkTz8yovKR56OAj+5jSScuSS/SMFcGRYtlrL6Ht275NHsrK/DbJfKjYh+qPTfJ6N+8xlaikcjSzi05Ml2HeBtZg==
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=L2S3IO+vua4ihT4o2hq7kOos91bMviBIwTOa6K+qhSA=;
 b=HRYZYp762jVf2IhhACsMp3zOL5UWrF32l4iTGFIzfFpyPbKdEP3qRufH1TApcMYpmbGdmGtlZXtSqDKClPqUgUP9CGnQoyj00sRs7JuccfHoEhQEw93U/wfLLPMFxr8J5M1nzc0Bbtk+SO/gFd4+he0mbNIt4eiDVp6y4sANgRqArwCSISYg+qZjswRFfQnVBprXyE3h3YsECtW/i73knYU338f1IYOf962/1TTyc3qekITEvk5o25z+aG8tCAQAjD+m4BpcVj8Q8/Z0iFlFrvK/rREhZOyyqNwmoniFCsg3PAeQYtJRS5gc23zot1GkOhkJFTSWQ9RlGzcTh2lhpg==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=xen.org smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=L2S3IO+vua4ihT4o2hq7kOos91bMviBIwTOa6K+qhSA=;
 b=a5ph5Tamfi0Uq8UMQSoPcV+lvmqbn6sow3bBmcLB4wjbp2AfvDTXCKstAkMrf1ok5bC1FexInFIyk2QmntBEDmucy9rRmyw3s6DPOyd+c1U8QFS1jrAw0B1nXl907i4z+5l5NsSzHB2JvtNqK/1Sf0ku0kIViJ9U5FdpGkX9WrI=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=NqWpO21Pm4dhDLwDDvGODx/3SobM2eaPOm/fKTtH0v0823nCwV3W0NROdxjU2SOQ5sXwF3kYKa7pXrk9jbY+ADgPV6R0VzIWvqZFpQxnOsVjh1NpVEuafEiamJp/yfIRThL9bcmDPb2dtJZjWxhbBHf5yRufm+srBa6+Ahc+Edo++NknZjBwa2hUW+9pZmKMdQrdyAJs5MXriobSx69wp3zmFjSQz8/uToTsHcRQsffHKD6rcY+WIFtpZoKz9COy+sRZmPjX0i3M2KOl7WVMhcnYRFxK7pXmZtWJMdZJ+3T/9qxfO0PTUmwdVY34zxxpSzZgX+jJ+fbtYxNkwTRoFA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=L2S3IO+vua4ihT4o2hq7kOos91bMviBIwTOa6K+qhSA=;
 b=lfzsrPjIubh7Z1lQrlmn09TzNhSjNqhGeZdbAYY7SFx4YYg9uSMZ7VYr8FxDBTFTVA7fI+tYW5R+FtTwbRS/a2hjIq19xKtBwiwWvgZx9erTYqkQQK/hGv1cwRxPshrDZZCIYwn14aOZIDxDiAKZYyXA46ikruhSaa/ROgoQDjCDqFc/IZSIzDblBPaaPvsFNtd4eqdjVdPoGOjnN2foQK/DzA8djA+13KWHT9L37braQWFZ7CROj0+FFeTq1GvhVL8QfP/7IPYy1sylg1l/6h+QIldhYsMVFuTsL86i9uoppp3MjWuB9O5DXS8R498NRd21xF/Iu45HBUu0Cri/bw==
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=L2S3IO+vua4ihT4o2hq7kOos91bMviBIwTOa6K+qhSA=;
 b=a5ph5Tamfi0Uq8UMQSoPcV+lvmqbn6sow3bBmcLB4wjbp2AfvDTXCKstAkMrf1ok5bC1FexInFIyk2QmntBEDmucy9rRmyw3s6DPOyd+c1U8QFS1jrAw0B1nXl907i4z+5l5NsSzHB2JvtNqK/1Sf0ku0kIViJ9U5FdpGkX9WrI=
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 v3 5/7] arm/mpu: Introduce MPU memory mapping flags
Thread-Topic: [PATCH v3 5/7] arm/mpu: Introduce MPU memory mapping flags
Thread-Index: AQHbqvIRPrwVw96fI0iTW2LEmRilT7OjEIMAgAN5QoA=
Date: Wed, 16 Apr 2025 16:52:13 +0000
Message-ID: <4E014B93-3CFC-4FAD-B177-6B61A4996B7D@arm.com>
References: <20250411145655.140667-1-luca.fancellu@arm.com>
 <20250411145655.140667-6-luca.fancellu@arm.com>
 <64f32855-e33d-4d89-9066-e63f0f1cce94@xen.org>
In-Reply-To: <64f32855-e33d-4d89-9066-e63f0f1cce94@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.400.131.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DB7PR08MB2987:EE_|DU0PR08MB9274:EE_|AMS0EPF00000198:EE_|AS2PR08MB9499:EE_
X-MS-Office365-Filtering-Correlation-Id: 9977713d-9ede-4fb0-87b0-08dd7d071e02
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?bm9kZ05rMThiZFpZTElmbGdnRkpZTUpRNlNDZ0s0MFFKTkQyQ0ZSM3hiMlU2?=
 =?utf-8?B?d0dNZDAyeFQydTJHK1dZT1I3Y3hDSko5SWVjVTArby90MXdGMk1pYmdFby93?=
 =?utf-8?B?RGR0a2tobXhzc1ZvUlJlUzVORU1KYm5pL3NVdUo2anlkM3d1dWJhK2FnVHJR?=
 =?utf-8?B?R0MyNGcxVjVod2ZhRC93cEdNSXB3ME92N0J6eXRrRG5jTklTVDgyZHNEeVlI?=
 =?utf-8?B?dzZtYUdsOWFoNkZoSlZBZDlDUTdBbGI4czBwazZWUzB0Zkg5MGhvUG8zZytD?=
 =?utf-8?B?LzNRMmp3Wi8wdW1YUWZQSlUxYUR4RW1XT09wa0d3TiszbzZOc1o3bDJMVDcz?=
 =?utf-8?B?STVBUEpzZ2twZ01acENyb2F2akliVXF2Q3RVWXlMbUpGbzlJaE5Gc01aK1A0?=
 =?utf-8?B?WnM5QjRNQSsyTDVIV2xRUUdLWGRVN0xKTEV0cnpvay9zbDYvSWJvcjRENG5w?=
 =?utf-8?B?ckl0NVlSdXQwMWJqSUFjMlloYUo5ZHVSWENkbE5JN1JEeXRPSnVUdEZ6TVZY?=
 =?utf-8?B?YURiWWJpVTBjNGJOSkpjdGsyQXVWNDErQXZZU0pZRldkOHZZZDVaalRuZk8v?=
 =?utf-8?B?OFVMWEthSVo5OEpFa2ppV3JzODBTVXlrbGxYSjVLZ0cyUDNaZGs3dUt4dFM2?=
 =?utf-8?B?ZjY1aWNBNjFSZGl5SmpSMkJtc0gveHNtU0JBbURMNkdzTzhLejN5TWNyZmNI?=
 =?utf-8?B?WU9qQSt0ck4wQkFjVGNTdko3R2poMzgwQmpOdWM5bThLZXJ3b21DN0hyTTZP?=
 =?utf-8?B?VjlUaE5HU1E4MWdRYlVoY1hFTGRVbjZPbFpCNDQ0MEtmcGh3UGNRYUprckpx?=
 =?utf-8?B?RlJvcituQXF5V3g1Wmg1TVRna3pSTW1FMmduZTZUVnk1c0twM1ZENGRWWUIr?=
 =?utf-8?B?a0c1WXBCWGdFSVdXd0pkS2t2MkRKcGk2K095dDYxNExEdjhVWTYyNjdyengw?=
 =?utf-8?B?alg3ZGY5R3Z6dmsxZ3BnVTFIZFVRRGcyZDlRVTBjRm9WZFVNYk9uSEJpWjli?=
 =?utf-8?B?TUZ0L1JEYmRBZHZhblhTdThNWmdWelpHa3IwVE9aYytCR0NWaHM0TUU2WWpz?=
 =?utf-8?B?bjh4VU9QV1ZDNksySC9VNXQ3WGtvZ2R1ZzF2azFpYjR4eUNjbDFNM25XcU9C?=
 =?utf-8?B?eklFeWRZN1pNckJobXo0RW1XSDQxbzdHN3BBcDhNeE5rdURWRjhkWWZmVGYy?=
 =?utf-8?B?SzRqM2FhOW95Ym5qd21aR2xFeVBvS3RQcjRoSHphR25jVXBwSUd0dTlWVWFk?=
 =?utf-8?B?aHdOWlhXRFhtMVJacWhpSk42emF0d0lremJ0SDZMVDBQNUZQdVBXSXNQWG1a?=
 =?utf-8?B?UDBlZnlUREZ4R0k4WUdwU3B1UnZBeE1JdkxYMDlVOVM1Mk5Ec3c5QVVMUnZn?=
 =?utf-8?B?em1JM2cvVmhrbFFyVm1nTGMxV1AxM2RWVVc4MTJxWVY3UGszMGp6UUVORThD?=
 =?utf-8?B?ZEFoYkZ1ZmNRSStoWkJhN0JRYXdCYjVPQ2J5UmkxYjFBdTBDenN1UTNkRktx?=
 =?utf-8?B?eURzUk8vUzBqK1NibU5OaUsrUU02SGFaZDRFZHZrUVVzc3NIZjZpRFR2c1A3?=
 =?utf-8?B?TG01VlVxa3AwWEtDNDFlaGFtV21kWE5zUmFzM2F1NjE4bXRNNjVBZ0ZhSlVG?=
 =?utf-8?B?UDlKU3hObnJIN095RXlOT2JRNW1NMTFadkRQSk9Nejl5Q1IxdHZZU2ZDWmlV?=
 =?utf-8?B?bnJKdDZSczhYK2hCQS82enJrUG9wME9TNWxsTlRhekZseDdqbS83Y3JpYzJE?=
 =?utf-8?B?L0dhRDdNc2Fyb3VCeTFndno4cUFMT3JuRlp3eTNxOWRRWEw1YVNDTElQZ2dl?=
 =?utf-8?B?bDE3QkpzY2hiNFUwa1dkNVIzY3Z4R1BHNzIrcG1CbGNpU3FtR084dzhSYldv?=
 =?utf-8?B?UTFNdDhsaklIZWl1WmhLWjFYWXA5cm4xNWJoZFBXWWtzcm4yd0NiaGNSS1Fl?=
 =?utf-8?B?bkx2RXVMTHFjT1pPUnl1RDBDbUtoRWFVb2NIUC9KOWJQSFdvTjE4ZWc2RGNk?=
 =?utf-8?B?Q3FjUzNsUzhnPT0=?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB7PR08MB2987.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: <F96842ADFB749142A158ABB26B784F6E@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB9274
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AMS0EPF00000198.eurprd05.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	e37a692d-b57c-4a2f-f39f-08dd7d0709cb
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|14060799003|36860700013|376014|1800799024|35042699022|82310400026|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?Nk51ZUw3T1hGcU0reUR5Y1BEOUFEWldDVW9LRyt1d1RQQTRrT212THFKdWUr?=
 =?utf-8?B?UVQ2QndpYS9tWk9KUnBpeXZhZUZYUE0vWnZxODlTb0N6a3FFMzhUWG9pdXZp?=
 =?utf-8?B?KzltdFdMS2k0LzZuOWZsL1VIUDJYTWNtZGVpbWJZMVAzMm14YnY1eEQ0b0R3?=
 =?utf-8?B?QTdkZ1hoQkZieTVkSEV0TnBTaVVPWkNVbUlqVFkvNGJCVFIycmc1Z1RCZk5U?=
 =?utf-8?B?WVJ0STdIbHV1bEdubmdPWmJGTmtCTEFkZXZvelgvRWRFc25URDR4Q2Q2ZFdW?=
 =?utf-8?B?T25IMVhjb2FaRGVzcm5PMWRFTnBoc3FicXF0bWZiWHI3am5nTHpFWVQwc0dR?=
 =?utf-8?B?Z3J3QTZ4ZGVMZTNtMDV0cWhaVndURENKcmE3ODNFUW9GZ05MWllJUHowUUUx?=
 =?utf-8?B?RGk0aW1iWGZZWm1HN0kzakZnM1JINVEzUmQ2Ymp4L1VZWHM5VC9NdkVCSms0?=
 =?utf-8?B?T3BVZTliSlhWUHF1Vm1ON2dZditTV1FqVW9UNm0xWkdpZHUzNGlNWmtZN3Ru?=
 =?utf-8?B?Q3BqRDdlN1RVWHYyMCtRdWNGODJUUDVLTTJ0cmdWUDZEVys0N2YrSXJIbEYx?=
 =?utf-8?B?WncrSXZtOGFTMllYRFNoWVhuZ09SNlgvcU90OHRNM3VXL0dKcllRZlUxQWRa?=
 =?utf-8?B?WFlRVTIrN3ZreXdkd1NvMG9ROTZDYnZNM1hNWHQvcG5rYTgxeHdvbFExY1RH?=
 =?utf-8?B?WFJLeEhVd0xTYW41SlFxOWdWcW5hQW4xWDQ4elZ5WDlkSFRVL1A1NTdqUi91?=
 =?utf-8?B?anlnVVJhVWoxMVJ4Q1AvQU5MbDhCODVKWk9wTG9Yd1dXb1Qyd0tXVzlhZDVj?=
 =?utf-8?B?MUxweWpZS1BKYktUZnBHWlBtalcrU0k1NUpvRldCbzRnbDRabFRlQ3RrV3ZU?=
 =?utf-8?B?bjVsVndZaERGUVhyQzljclM5MXA4RXk3ZWkzNDlibGJkNGVOaHVlanRJczRr?=
 =?utf-8?B?SXpGd1IrQXR4UmxUQ0FYZkxxc0xZY1o1bldvVElaYUZ2T0RXN2JYZ0YzWUVt?=
 =?utf-8?B?MktKNXovVWorNDFQb2ZCbVd0S1pWcmE4WFpoWWFvM2RjR0pHZEhOb2RRWFpt?=
 =?utf-8?B?bVhBdW5ienpPMTBjTE55VmFPc1FySHZVRFl5NTltTldlMGNpOEJCek1EaG1Y?=
 =?utf-8?B?U1Bxd3ZDalRvUjU4clhqK0JoSFlmV0xOMU5tUHh4VXRHcW9VdW9MZHFONXcv?=
 =?utf-8?B?MW9BRXdZcWRCZFV2ZHRLV0xEMTIrTS9vU3YrUGtGUVU4NVFUMisvcVNiWVVu?=
 =?utf-8?B?Wi9FRkVoT0pmcVNTTmdTcGhwaWlhMGlIVWxGSnlLQVI4MWczMVNqVXI2L1o4?=
 =?utf-8?B?NXB6Uzcva2wyTmk2TTdDYTg0NzMrQSthMWZVL3ZaVU5HL3dzSlJuWllSTi82?=
 =?utf-8?B?VjhXUS9HK3o1YmJuR05ITnB5M0Z0L3dDOUVwYmthdFFGaDBiSUtqWU5DN2Ux?=
 =?utf-8?B?VnBXWkh1MndNWGEwOW14WUhHN290M0FuL0R5SnUrQXNNUjQyQjNzWXh2VDRX?=
 =?utf-8?B?eE1iWGtYZjVMQjlmbklVUy82ZTdaTTBJVDZzTWZqemNuQ2xQcmJLZVpyUUg1?=
 =?utf-8?B?OHFRUnhLSldDQUx3NUJqbGd2cml3RG1kZlZGODVYSWlVUkp0WjNZRDgrZzRq?=
 =?utf-8?B?RVF1R2dTMVpLM0YvM29nWWxZWUNIYmg5UlZGRFQzSUJSNmNDZVdCQ3ZMSjU4?=
 =?utf-8?B?am1MelgzclZsQUhONVJHM01DWGlqZE02MlpHZ3U1SFpTb2xDbThFQTc0Umxo?=
 =?utf-8?B?ek4yTjlZRCt6T2lxaHdzcmJrNVNkT0I4MElNZkhQelVzRUY2b2ZGNFZEUFRT?=
 =?utf-8?B?SkEwaElTNmVtSHdzZmxJNGgwb3dFSnVnUk5JOWV1OTZrdytrcUtFUitEUjNW?=
 =?utf-8?B?YmJOV0Zub1V1V1l1cWY1TnNTbXE2Y21FclpmeVFMSXFBVTVZdlVBNzI5K1VQ?=
 =?utf-8?B?MlpaRGg2N3o0T0N2MDZvMWV4Z3VwU1BzMkw1VjczMVljYXZWcEpnQ1UzcXNW?=
 =?utf-8?B?NmtUSVNXcXFQaEUxaks4eEdXMkdET3QzdnRFRWhSU09TR1pQYmh6YWJ5NThy?=
 =?utf-8?Q?iA/SHh?=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(14060799003)(36860700013)(376014)(1800799024)(35042699022)(82310400026)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Apr 2025 16:52:47.7266
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 9977713d-9ede-4fb0-87b0-08dd7d071e02
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AMS0EPF00000198.eurprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR08MB9499

SGkgSnVsaWVuLA0KDQo+IE9uIDE0IEFwciAyMDI1LCBhdCAxMjo0OCwgSnVsaWVuIEdyYWxsIDxq
dWxpZW5AeGVuLm9yZz4gd3JvdGU6DQo+IA0KPiBIaSBMdWNhLA0KPiANCj4gT24gMTEvMDQvMjAy
NSAyMzo1NiwgTHVjYSBGYW5jZWxsdSB3cm90ZToNCj4+IEludHJvZHVjZSB0aGUgTVBVIG1lbW9y
eSBtYXBwaW5nIGZsYWdzIGluIGFzbS9wYWdlLmguDQo+PiBTaWduZWQtb2ZmLWJ5OiBMdWNhIEZh
bmNlbGx1IDxsdWNhLmZhbmNlbGx1QGFybS5jb20+DQo+PiAtLS0NCj4+ICB4ZW4vYXJjaC9hcm0v
aW5jbHVkZS9hc20vcGFnZS5oIHwgMjUgKysrKysrKysrKysrKysrKysrKysrKysrKw0KPj4gIDEg
ZmlsZSBjaGFuZ2VkLCAyNSBpbnNlcnRpb25zKCspDQo+PiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gv
YXJtL2luY2x1ZGUvYXNtL3BhZ2UuaCBiL3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9wYWdlLmgN
Cj4+IGluZGV4IDY5ZjgxN2QxZTY4YS4uMjJmN2QyYzZjYjMwIDEwMDY0NA0KPj4gLS0tIGEveGVu
L2FyY2gvYXJtL2luY2x1ZGUvYXNtL3BhZ2UuaA0KPj4gKysrIGIveGVuL2FyY2gvYXJtL2luY2x1
ZGUvYXNtL3BhZ2UuaA0KPj4gQEAgLTYyLDYgKzYyLDcgQEANCj4+ICAgICNkZWZpbmUgTUFJUlZB
TCAoTUFJUjFWQUwgPDwgMzIgfCBNQUlSMFZBTCkNCj4+ICArI2lmZGVmIENPTkZJR19NTVUNCj4+
ICAvKg0KPj4gICAqIExheW91dCBvZiB0aGUgZmxhZ3MgdXNlZCBmb3IgdXBkYXRpbmcgdGhlIGh5
cGVydmlzb3IgcGFnZSB0YWJsZXMNCj4+ICAgKg0KPj4gQEAgLTkwLDYgKzkxLDMwIEBADQo+PiAg
I2RlZmluZSBfUEFHRV9DT05USUdfQklUICAgIDgNCj4+ICAjZGVmaW5lIF9QQUdFX0NPTlRJRyAg
ICAgICAgKDFVIDw8IF9QQUdFX0NPTlRJR19CSVQpDQo+PiAgKyNlbHNlIC8qICFDT05GSUdfTU1V
ICovDQo+PiArDQo+PiArLyoNCj4+ICsgKiBMYXlvdXQgb2YgdGhlIGZsYWdzIHVzZWQgZm9yIHVw
ZGF0aW5nIE1QVSBtZW1vcnkgcmVnaW9uIGF0dHJpYnV0ZXMNCj4+ICsgKiBbMDoyXSBNZW1vcnkg
YXR0cmlidXRlIEluZGV4DQo+PiArICogWzM6NF0gRXhlY3V0ZSBOZXZlcg0KPj4gKyAqIFs1OjZd
IEFjY2VzcyBQZXJtaXNzaW9uDQo+IA0KPiBJIGFtIHJhdGhlciBjb25mdXNlZCB3aHkgd2UgYXJl
IHNwbGl0dGluZyBFeGVjdXRlIE5ldmVyIGZyb20gdGhlIEFjY2VzcyBQZXJtaXNzaW9uLiBJIGd1
ZXNzIHlvdSB0cmllZCB0byBtYXRjaCB0aGUgSFcsIGJ1dCBpdCBhbHNvIG1lYW5zIHdlIG5lZWQg
dG8gZHVwbGljYXRlIGEgbG90IG9mIGRlZmluZSBiZXR3ZWVuIHRoZSBNTVUgYW5kIE1QVSBjb2Rl
Lg0KPiANCj4gSW5zdGVhZCwgSSB3b3VsZCByYXRoZXIgdHJ5IHRvIHJlLXVzZSB0aGUgZXhpc3Rp
bmcgb25lcyBhbmQgaWdub3JlIHRoZSBvbmVzIHdlIGRvbid0IG5lZWQgKGUuZy4gQkxPQ0tfQklU
IGFuZCBDT05USUcpLg0KDQpJ4oCZbSBoYXZpbmcgYSBiaXQgb2YgdHJvdWJsZSB1bmRlcnN0YW5k
aW5nIHRoZSBNTVUgcGFydDoNCg0KLyoNCiogTGF5b3V0IG9mIHRoZSBmbGFncyB1c2VkIGZvciB1
cGRhdGluZyB0aGUgaHlwZXJ2aXNvciBwYWdlIHRhYmxlcw0KKg0KKiBbMDoyXSBNZW1vcnkgQXR0
cmlidXRlIEluZGV4DQoqIFszOjRdIFBlcm1pc3Npb24gZmxhZ3MNCiogWzVdIFBhZ2UgcHJlc2Vu
dA0KKiBbNl0gT25seSBwb3B1bGF0ZSBwYWdlIHRhYmxlcw0KKiBbN10gU3VwZXJwYWdlIG1hcHBp
bmdzIGlzIGFsbG93ZWQNCiogWzhdIFNldCBjb250aWd1b3VzIGJpdCAoaW50ZXJuYWwgZmxhZykN
CiovDQojZGVmaW5lIFBBR0VfQUlfTUFTSyh4KSAoKHgpICYgMHg3VSkNCg0KI2RlZmluZSBfUEFH
RV9YTl9CSVQgMw0KI2RlZmluZSBfUEFHRV9ST19CSVQgNA0KI2RlZmluZSBfUEFHRV9YTiAoMVUg
PDwgX1BBR0VfWE5fQklUKQ0KI2RlZmluZSBfUEFHRV9STyAoMVUgPDwgX1BBR0VfUk9fQklUKQ0K
I2RlZmluZSBQQUdFX1hOX01BU0soeCkgKCgoeCkgPj4gX1BBR0VfWE5fQklUKSAmIDB4MVUpDQoj
ZGVmaW5lIFBBR0VfUk9fTUFTSyh4KSAoKCh4KSA+PiBfUEFHRV9ST19CSVQpICYgMHgxVSkNCg0K
SSBjYW4gc2VlIG9uIHRoZSBNTVUgYmFzaWNhbGx5IEFQWzFdIG1lYW5zIFJPIG9yIG5vdCwgQVBb
MF0gbWVhbnMgWE4gb3Igbm90LCBmcm9tIHRoZSBhcm0gc3BlYw0KKHZlcmlzb24gTC5hLCBEOC40
LjIuMS4xIFN0YWdlIDIgZGF0YSBhY2Nlc3NlcyB1c2luZyBEaXJlY3QgcGVybWlzc2lvbnMpIEkg
Y2FuIHNlZSBzdGFnZSAyIEFQWzE6MF0gaXM6DQogLSAwMDogbm8gYWNjZXNzDQogLSAwMTogUk8N
CiAtIDEwOiBXTw0KIC0gMTE6IFJXDQoNClNvOg0KIC0gMDA6IHJlYWQtb25seSBpcyB6ZXJvIGFu
ZCBleGVjdXRpb24gaXMgYWxsb3dlZA0KIC0gMDE6IHJlYWQtb25seSBpcyB6ZXJvIGFuZCBleGVj
dXRpb24gaXMgbm90IGFsbG93ZWQNCiAtIDEwOiByZWFkLW9ubHkgaXMgb25lICg/PyksIGV4ZWN1
dGlvbiBpcyBhbGxvd2VkDQogLSAxMTogcmVhZC1vbmx5IGlzIG9uZSAoPz8pLCBleGVjdXRpb24g
aXMgbm90IGFsbG93ZWQNCg0KSeKAmW0gY2xlYXJseSBtaXNzaW5nIHNvbWV0aGluZyBiZWNhdXNl
IGV2ZXJ5dGhpbmcgd29ya3MsIHNvIGNvdWxkIHlvdSBoZWxwIG1lIHRvIHVuZGVyc3RhbmQgdGhp
cyBwYXJ0Pw0KDQo=


From xen-devel-bounces@lists.xenproject.org Wed Apr 16 16:55:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 16:55:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.956503.1349901 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u562m-0000CQ-Gt; Wed, 16 Apr 2025 16:55:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 956503.1349901; Wed, 16 Apr 2025 16:55: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 1u562m-0000CJ-EA; Wed, 16 Apr 2025 16:55:24 +0000
Received: by outflank-mailman (input) for mailman id 956503;
 Wed, 16 Apr 2025 16:55: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=rxVN=XC=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1u562l-0000C6-2G
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 16:55:23 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 957e23de-1ae3-11f0-9eaf-5ba50f476ded;
 Wed, 16 Apr 2025 18:55:21 +0200 (CEST)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id 46EDF4EE3C76;
 Wed, 16 Apr 2025 18:55:21 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 957e23de-1ae3-11f0-9eaf-5ba50f476ded
Authentication-Results: bugseng.com; arc=none smtp.remote-ip=162.55.131.47
ARC-Seal: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; cv=none; t=1744822521;
	b=ySYO0dLSTK/7zR+i6eZJhWVN5rPbPw2MV7YD9NIDFWXabq75tifTmn1z4ekcJwVEk4vU
	 9WM/WSWeUfrU9s05EMywMfwS6Lv/Hwpg9PfDcL12A8NJ8o7M4XIA+72sXTNSm9F63/p8M
	 vMfuvvG0Q1/8u+eJ4VE8teoCNhNspsHLxEdIAhXZCMOFCzoDXH725tT6E0bMj1ex23g0m
	 wWgSTK14HML7QMEyDXI4UqkNKFDdHIV9zK0/wj2tyBm6N1RT2/9I8g/EgXabOUE1CWW9W
	 WromsSMahTWjH3z45sh/1oUc0gfCyt+Z4yX83iZ/oIuH8VyegUoeLsSKTTTojBUTrd90H
	 sLlPJkMZGpynkDWwdmRL29edxN5Pfr/1cjhFg8fDfjf28f6eedd6XANohIekstc4rUazI
	 6UyUWZdf7RbMGwYT1kg9Ag4DTE78mFY3pFEFOF1UwdmGdW4oMs3wiJskcPYDLI9eF59Lh
	 moPlgf13Ag7+zexTw4+8sru86aBy4jPlImDoG5JpytSaqdHflDC/FJj1PTpFUhY34qt99
	 NJseQR9+cj0nmgzi8esfNSOWycvVz29zX9PcEzEDlL4m06j8v6Zd2GPGxTUCG7sDNRhXQ
	 23sd/e29D3rVUp3PO0YXAYh9o6BVFU6pD33d5cAPqiQvSaYZBo3GPrHjJcV9uXs=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1744822521;
	h=DKIM-Signature:MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:
	 References:Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=6OYEbPrzp2MsfHEvmVSLrjad9OznZB26hLXRD/YJpeE=;
	b=5uhd9/6v1YLQZfjor7nsI+GUbfNcdSX6cWupa3b4B+HWlvu/YQc+XQsO0j1enTN4xnpG
	 Pvofa4+xYvVPRKltVb304As+xV2DFVn0HWqn0WqSaKwLa4Lhw2hFuvHvDQ1FtQCDctk78
	 jUIl6B1xwyss8DDKxOBXXQCeT9x5inAnH4N7mpy/DQnjvJRLr3CL6WDpxF1wdFUn6b3mD
	 EHaHN52Od4OoVp7mR6+YZOeFiYQ17YxX34IV0UckP+hLulcyzj56lx5rsar97UBsLSanr
	 R6ENIKwwPhql+4sh+RZ5t98FAxE+RrntMtu5LHQGE1jH9390gj9b+pjEw7ZEWJcL0d/IU
	 f5BJYolFUE1LpG71hT6heHThoS9LsIwQS+jjyif/0SSKGmFC5qDL5QoD2zwR4J7Vry3Wz
	 rjM+6lIPNJl5pmrW5GcuAHVS/6hDuk5szxLtGxJBXE3B5HjRq+eGzFZ49o5UV4WxnYEbu
	 +jPTxxecOtCNnmUiOtEIaxdvlO64n/s5ypUzSO/4zsJoqcc594JOtcJ0VTND6c69alfOx
	 +ZNDSICzve4OQaG6TBuwUDvp3Djllu0ABif80bAetrnFDdweQDghwifSXYwvcdiiPYsTD
	 rA3N8HMK6p/8neMHIz9/2TMLM6FU3bKB38mNCPAzo5juKFHPt0Ld+Nv4ZgdE7uw=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1744822521; bh=N4Sd2mfaZpKTRxxXCIgEF88ieTHpO9dpg5kC2gr1U08=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=dzy18pvJLTRccTI882Idoe4r1ykiBGwfsmTGj/fSX32WBL/htfUX1BI5fkR9vb5i8
	 ITZ0e+pyBDzboL5IWmen1FSa4E0kNZXbO0C0Dk1Q5/j81Nv2ijs94OoDvSdh9ZMZId
	 jg0T4CKZD0MmzSn0U8c0+i5utmlGQezEY0EyecKIFmc5VDwJEJk/pf5ufjpmUH21PW
	 OySf404rVg02KTQXWgAGlpkfCbVoE/75dKEdh4q+Ybu4RWjHX4K2EUpGBZofmDPOO9
	 ernPG4ZN3J52rrCV3/sSmDLDNtX3YjFVQel4Vlv53V12cYQ1eX/xTH2HB12urfMG17
	 02PH6cQbLlzIw==
MIME-Version: 1.0
Date: Wed, 16 Apr 2025 18:55:21 +0200
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Alejandro Vallejo <agarciav@amd.com>, Jason Andryuk
 <jason.andryuk@amd.com>, Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Michal Orzel
 <michal.orzel@amd.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 xen-devel@lists.xenproject.org, consulting@bugseng.com
Subject: Re: [PATCH v3 08/16] x86/hyperlaunch: Add helpers to locate multiboot
 modules
In-Reply-To: <ea28d057-5fd5-4cc2-8833-5427015a4190@suse.com>
References: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-9-agarciav@amd.com>
 <fe282aa0-fe2d-49b8-a2aa-325c9825304b@suse.com>
 <D96EI9O4XII2.195QNQNT1T3FG@amd.com>
 <3d2aa870-a1cb-4e33-841d-aee7b6b6db83@suse.com>
 <D96K3ZYDCY4D.11Q4T2TZLNNEU@amd.com>
 <ea28d057-5fd5-4cc2-8833-5427015a4190@suse.com>
Message-ID: <173f7129e82958a9737627129ac3c5be@bugseng.com>
X-Sender: nicola.vetrini@bugseng.com
Organization: BUGSENG s.r.l.
Content-Type: text/plain; charset=US-ASCII;
 format=flowed
Content-Transfer-Encoding: 7bit

On 2025-04-15 08:05, Jan Beulich wrote:
> On 14.04.2025 20:01, Alejandro Vallejo wrote:
>> On Mon Apr 14, 2025 at 4:05 PM BST, Jan Beulich wrote:
>>> On 14.04.2025 15:37, Alejandro Vallejo wrote:
>>>> On Thu Apr 10, 2025 at 11:42 AM BST, Jan Beulich wrote:
>>>>> On 08.04.2025 18:07, Alejandro Vallejo wrote:
>>>>>> +/*
>>>>>> + * Locate a multiboot module given its node offset in the FDT.
>>>>>> + *
>>>>>> + * The module location may be given via either FDT property:
>>>>>> + *     * reg = <address, size>
>>>>>> + *         * Mutates `bi` to append the module.
>>>>>> + *     * module-index = <idx>
>>>>>> + *         * Leaves `bi` unchanged.
>>>>>> + *
>>>>>> + * @param fdt           Pointer to the full FDT.
>>>>>> + * @param node          Offset for the module node.
>>>>>> + * @param address_cells Number of 4-octet cells that make up an 
>>>>>> "address".
>>>>>> + * @param size_cells    Number of 4-octet cells that make up a 
>>>>>> "size".
>>>>>> + * @param bi[inout]     Xen's representation of the boot 
>>>>>> parameters.
>>>>>> + * @return              -EINVAL on malformed nodes, otherwise
>>>>>> + *                      index inside `bi->mods`
>>>>>> + */
>>>>>> +int __init fdt_read_multiboot_module(const void *fdt, int node,
>>>>>> +                                     int address_cells, int 
>>>>>> size_cells,
>>>>>> +                                     struct boot_info *bi)
>>>>> 
>>>>> Functions without callers and non-static ones without declarations 
>>>>> are
>>>>> disliked by Misra.
>>>> 
>>>> Can't do much about it if I want them to stand alone in a single 
>>>> patch.
>>>> Otherwise the following ones become quite unwieldy to look at. All I 
>>>> can
>>>> say is that this function becomes static and with a caller on the 
>>>> next
>>>> patch.
>>> 
>>> Which means you need to touch this again anyway. Perhaps we need a 
>>> Misra
>>> deviation for __maybe_unused functions / data, in which case you 
>>> could
>>> use that here and strip it along with making the function static. 
>>> Cc-ing
>>> Bugseng folks.
>> 
>> It's a transient violation, sure. Do we care about transient MISRA
>> violations though? I understand the importance of bisectability, but
>> AUIU MISRA compliance matters to the extent that that the tip is
>> compliant rather than the intermediate steps?
> 
> Thing is that quite a few rules are blocking now. I haven't checked 
> whether
> the one here (already) is; if it isn't, we can't exclude it will be by 
> the
> time this patch is committed. If then the next patch isn't committed
> together with it, we'd face a CI failure.
> 

It's Rule 8.4, and it is indeed blocking. To double check, a scan on a 
push containing this patch should trigger the failure.
You may transitively add an inline deviation comment or just a deviation 
with a configuration (I can help if needed), justified by the subsequent 
addition of static.

>> Another option would be to fold them this patch and the next together
>> after both get their R-by. As I said, I assumed you'd rather see them 
>> in
>> isolation for purposes of review.
> 
> As it looks it's all plain code additions, so reviewability would 
> merely
> mildly suffer from patch size. But afaict there would be no loss of 
> clarity.
> 
>>>>>> +    /* Otherwise location given as a `reg` property. */
>>>>>> +    prop = fdt_get_property(fdt, node, "reg", NULL);
>>>>>> +
>>>>>> +    if ( !prop )
>>>>>> +    {
>>>>>> +        printk("  No location for multiboot,module\n");
>>>>>> +        return -EINVAL;
>>>>>> +    }
>>>>>> +    if ( fdt_get_property(fdt, node, "module-index", NULL) )
>>>>>> +    {
>>>>>> +        printk("  Location of multiboot,module defined multiple 
>>>>>> times\n");
>>>>>> +        return -EINVAL;
>>>>>> +    }
>>>>>> +
>>>>>> +    ret = read_fdt_prop_as_reg(prop, address_cells, size_cells, 
>>>>>> &addr, &size);
>>>>>> +
>>>>>> +    if ( ret < 0 )
>>>>>> +    {
>>>>>> +        printk("  Failed reading reg for multiboot,module\n");
>>>>>> +        return -EINVAL;
>>>>>> +    }
>>>>>> +
>>>>>> +    idx = bi->nr_modules + 1;
>>>>> 
>>>>> This at least looks like an off-by-one. If the addition of 1 is 
>>>>> really
>>>>> intended, I think it needs commenting on.
>>>> 
>>>> Seems to be, yes. The underlying array is a bit bizarre. It's sizes 
>>>> as
>>>> MAX_NR_BOOTMODS + 1, with the first one being the DTB itself. I 
>>>> guess
>>>> the intent was to take it into account, but bi->nr_modules is
>>>> initialised to the number of multiboot modules, so it SHOULD be 
>>>> already
>>>> taking it into account.
>>>> 
>>>> Also, the logic for bounds checking seems... off (because of the + 1 
>>>> I
>>>> mentioned before). Or at least confusing, so I've moved to using
>>>> ARRAY_SIZE(bi->mods) rather than explicitly comparing against
>>>> MAX_NR_BOOTMODS.
>>>> 
>>>> The array is MAX_NR_BOOTMODS + 1 in length, so it's just more 
>>>> cognitive
>>>> load than I'm comfortable with.
>>> 
>>> If I'm not mistaken the +1 is inherited from the modules array we had 
>>> in
>>> the past, where we wanted 1 extra slot for Xen itself. Hence before 
>>> you
>>> move to using ARRAY_SIZE() everywhere it needs to really be clear 
>>> what
>>> the +1 here is used for.
>> 
>> Ew.  Ok, just looked at the code in multiboot_fill_boot_info and 
>> indeed
>> the arrangement is for all multiboot modules to be in front, and Xen 
>> to
>> be appended. But bi->nr_modules only lists multiboot modules, so
>> increasing that value is therefore not enough (or
>> next_boot_module_index() would fail).
>> 
>> I need to have a proper read on how this is all stitched together.  I
>> may simply swap BOOTMOD_XEN with the next entry on append. Though my
>> preference would be to _not_ have Xen as part of the module list to
>> begin with. Before boot_info that was probably a place as good as any,
>> but this would be much better off in a dedicated field.
>> 
>> I don't see much in terms of usage though. Why is it being added at 
>> all?
> 
> For hyperlaunch I fear it's you who needs to answer this question. For
> pre-hyperlaunch it's (primarily?) for consider_modules(), iirc. See two
> of the three comments ahead of its non-recursive invocations.
> 
> Jan

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


From xen-devel-bounces@lists.xenproject.org Wed Apr 16 19:05:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 19:05:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.956533.1349910 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u584c-00067O-LT; Wed, 16 Apr 2025 19:05:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 956533.1349910; Wed, 16 Apr 2025 19:05: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 1u584c-00067H-I6; Wed, 16 Apr 2025 19:05:26 +0000
Received: by outflank-mailman (input) for mailman id 956533;
 Wed, 16 Apr 2025 19:05: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=6Wc4=XC=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1u584a-00067B-Bt
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 19:05:24 +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 bd253fe3-1af5-11f0-9ffb-bf95429c2676;
 Wed, 16 Apr 2025 21:05:19 +0200 (CEST)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-ac2bdea5a38so1178958666b.0
 for <xen-devel@lists.xenproject.org>; Wed, 16 Apr 2025 12:05:19 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-64-225.play-internet.pl.
 [109.243.64.225]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-acb3d1b463csm178027566b.146.2025.04.16.12.05.17
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 16 Apr 2025 12:05: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: bd253fe3-1af5-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1744830319; x=1745435119; darn=lists.xenproject.org;
        h=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=D6t//aqjEYttnH4Qx86wmujAM4C/jvKc1ymRVlUpPlk=;
        b=XjVdqwqT9ABKtYsnJ4+//zaUn1igk+kN2QMogOg+324OB1lZSL0tCwPSq4AYL5AK5f
         OKSWPrL2qtKU0Y3qMZJCHAIzv9AwUGnLXJ1z/RPSXSc9+w3QEKwUzqyQZf+7DfO0DZv1
         tDM05tWfre+Q7ASAIqzSdoAYSDREzJDnglAqGJzSy/TCAIabpuOPYLuc7kyohUtMEhpN
         OkTGr00K4ba5TtRvTVpkzaPVP8qWZZ1pJxn/29RPq49jM8slCD0+X9vMkg6cNn0zcVHr
         IdN0pduuFTtUh6aZbUvETefY4jWjvHscQxpYNm/UE5JjvRFI23o1WavVK0AApuslGIcW
         /RpA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744830319; x=1745435119;
        h=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=D6t//aqjEYttnH4Qx86wmujAM4C/jvKc1ymRVlUpPlk=;
        b=AiWdOHfddZyKPYcx2cN7aEuAfdjRYEJ+B5Yt2fXlxcbj4GVGsNH9Y9YUd+sJmLJS1E
         CtcVyPpFJmEKS2kpD+uteVprIZYHzFd7NRFuYV5OWXIxZizP6rST6iemK639VWJfGM4O
         0UP8OQjHKhUDioBTVfEKIhDhs9RvA/5ZaXSIgzlPs0PDTSC0Hc0e3u1IoBcngN02kZPc
         +xbxFQsW6G3+kxZ8nDtRzm8p2tB+hlwD4wnjeTLivCB0FxcUqAmNfpIbwIsBnbmImErP
         d8ZtJJ5w6k7oZQ8EV4J/OACwLA27ZA8+UJjlDmo3eDaP7au8TKsiOgCbjXfdmBT0uWDz
         A5RA==
X-Forwarded-Encrypted: i=1; AJvYcCUtPMNc5UOe+F9KuF668AC3aJqSRUuCzG3HomkXlMXuXrkQU2u5sIJuboCIGn72P9mjihPIRBsAXTk=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy6Z8/xmMB9w3m//osJa0NRRYuHVAHr8JoCb9tnRbLkwgLGf7O6
	okAivgjM0IeEOVcneBfFEKTf7LHZNTiYM/aBPmLp7+HgShOg3zRM
X-Gm-Gg: ASbGnct2BowyzoEqzO8f1LDNdKpJsi3j2OSCbC/osSH/0ObVN3MlyE4/mybD15gwPEF
	kf+hY+KvK5qlq5/zMFnDefJ+fePN4fKusl8hRRbGMLiUcvbdA/J68oiNWT/K/FfpcVhuk9g/jpZ
	HM9S3JaBPxZGmic8R8XgoSCc61K0uvYqnNzPlVMn6umsHS+3BzJk9lBLcI6ibgRETVdnrtcP+9B
	eqaqv5fa4yPYrXJXed8thzIkV/dRw/AeJzlCXoqNNZhWVOPR12wDcUKAOx8Wqe6+JeOA8k8ZNUP
	qWqxYJPYki32aNqFqPm/knoW4/8zLNQfYbYkTdwd/yEaucyobxx9jfFM8RzLVBj3330AAGPlEKx
	w1ypi63iLfGsaNN5r
X-Google-Smtp-Source: AGHT+IEtQqgzlyLh02lb6WbNbKDVAFS5bEuqgLNYgixLN0BH64wHdCoWupQvTsLY+DAJmu0khQDUzA==
X-Received: by 2002:a17:907:7246:b0:acb:3a0d:852c with SMTP id a640c23a62f3a-acb42aee723mr239861766b.38.1744830318261;
        Wed, 16 Apr 2025 12:05:18 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------pweA2rQvh53q8HL5NREf4qtQ"
Message-ID: <9bee5d4e-cad1-4fc1-8b4c-b4a4bab4b76c@gmail.com>
Date: Wed, 16 Apr 2025 21:05:16 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 10/14] xen/riscv: implementation of aplic and imsic
 operations
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Romain Caritey <Romain.Caritey@microchip.com>, xen-devel@lists.xenproject.org
References: <cover.1744126720.git.oleksii.kurochko@gmail.com>
 <74a07ed7c596bbcf581010685e01bfdfa19164f5.1744126720.git.oleksii.kurochko@gmail.com>
 <35075d73-ec3c-4e8f-b7ed-657b604904bd@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <35075d73-ec3c-4e8f-b7ed-657b604904bd@suse.com>

This is a multi-part message in MIME format.
--------------pweA2rQvh53q8HL5NREf4qtQ
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 4/15/25 2:46 PM, Jan Beulich wrote:
> On 08.04.2025 17:57, Oleksii Kurochko wrote:
>> Introduce interrupt controller descriptor for host APLIC to describe
>> the low-lovel hardare. It includes implementation of the following functions:
>>   - aplic_irq_startup()
>>   - aplic_irq_shutdown()
>>   - aplic_irq_enable()
>>   - aplic_irq_disable()
>>   - aplic_irq_ack()
>>   - aplic_host_irq_end()
>>   - aplic_set_irq_affinity()
>>
>> As APLIC is used in MSI mode it requires to enable/disable interrupts not
>> only for APLIC but also for IMSIC. Thereby for the purpose of
>> aplic_irq_{enable,disable}() it is introduced imsic_irq_{enable,disable)().
>>
>> For the purpose of aplic_set_irq_affinity() aplic_get_cpu_from_mask() is
>> introduced to get hart id.
>>
>> Also, introduce additional interrupt controller h/w operations and
>> host_irq_type for APLIC:
>>   - aplic_host_irq_type
>>   - aplic_set_irq_priority()
>>   - aplic_set_irq_type()
> Yet these two functions nor the hooks they're used to populate are entirely
> unused here. Since they're also outside of the common IRQ handling machinery,
> it's unclear how one would sanely ack such a change.

They will be called by intc_route_irq_to_xen() from setup_irq() during firt time
the IRQ is setup.

>
>> --- a/xen/arch/riscv/aplic.c
>> +++ b/xen/arch/riscv/aplic.c
>> @@ -15,6 +15,7 @@
>>   #include <xen/irq.h>
>>   #include <xen/mm.h>
>>   #include <xen/sections.h>
>> +#include <xen/spinlock.h>
>>   #include <xen/types.h>
>>   #include <xen/vmap.h>
>>   
>> @@ -110,9 +111,173 @@ static int __init aplic_init(void)
>>       return 0;
>>   }
>>   
>> -static const struct intc_hw_operations __ro_after_init aplic_ops = {
>> +static void aplic_set_irq_type(struct irq_desc *desc, unsigned int type)
>> +{
>> +    unsigned int irq = desc->irq - 1;
> Why this adjustment by 1 (and yet both items being named "irq")?

Interrupt 0 isn't possible based on the spec:
```
Each of an APLIC’s interrupt sources has a fixed unique identity number 
in the range 1 to N, where N is the total number of sources at the 
APLIC. The number zero is not a valid interrupt identity number at an 
APLIC. The maximum number of interrupt sources an APLIC may support is 
1023. ``` and interrupt 1 will correspond to bit 0 in sourcecfg[] register, interrupt 
2 ->sourcecfg[1] and so on. And that is the reason why we need -1.

>> +            aplic.regs->sourcecfg[irq] = APLIC_SOURCECFG_SM_EDGE_FALL;
>> +            break;
>> +        case IRQ_TYPE_LEVEL_HIGH:
>> +            aplic.regs->sourcecfg[irq] = APLIC_SOURCECFG_SM_LEVEL_HIGH;
>> +            break;
>> +        case IRQ_TYPE_LEVEL_LOW:
>> +            aplic.regs->sourcecfg[irq] = APLIC_SOURCECFG_SM_LEVEL_LOW;
>> +            break;
>> +        default:
>> +            aplic.regs->sourcecfg[irq] = APLIC_SOURCECFG_SM_INACTIVE;
>> +            break;
> Is the default: label legitimate to be reached?

 From the spec:
```
0 Inactive Inactive in this domain (and not delegated) 1 Detached 
Active, detached from the source wire 2–3 — Reserved 4 Edge1 Active, 
edge-sensitive; interrupt asserted on rising edge 5 Edge0 Active, 
edge-sensitive; interrupt asserted on falling edge 6 Level1 Active, 
level-sensitive; interrupt asserted when high 7 Level0 Active, 
level-sensitive; interrupt asserted when low ``` It seems to me like 
APLIC_SOURCECFG_SM_INACTIVE just covers cases (0-3) and inactive IRQ 
pretty safe to as a default value.

>
>> +    }
>> +    spin_unlock(&aplic.lock);
>> +}
>> +
>> +static void aplic_set_irq_priority(struct irq_desc *desc,
>> +                                   unsigned int priority)
>> +{
>> +    /* No priority, do nothing */
>> +}
> Since the function dopes nothing, wouldn't it be better to omit it and have
> the (future) caller check for a NULL pointer ahead of making the (indirect)
> call? Same remark for other handlers (below) which also do nothing.

I thought about that too, but it could be some cases when the stub is introduced
with temporary BUG_ON("unimplemented") inside just to not miss to implement it
when it will be necessary.
If we will have only the caller check then we could miss to implement such stubs.

>
>> +static void aplic_irq_enable(struct irq_desc *desc)
>> +{
>> +    unsigned long flags;
>> +
>> +    /*
>> +     * TODO: Currently, APLIC is supported only with MSI interrupts.
>> +     *       If APLIC without MSI interrupts is required in the future,
>> +     *       this function will need to be updated accordingly.
>> +     */
>> +    ASSERT(aplic.imsic_cfg->is_used);
> Such an extra field, used only for assertions, is pretty odd. Can't you
> use any of the other fields to achieve the same effect?

in aplic_init() there is:
     /* check for associated imsic node */
     rc = dt_property_read_u32(node, "msi-parent", &imsic_phandle);
     if ( !rc )
         panic("%s: IDC mode not supported\n", node->full_name);

So we will have panic() anyway if MSI mode isn't supported. As an option we
can just drop the ASSERT.

Or introduce static variable in aplic.c `aplic_mode`, init it in aplic_init()
and use it in ASSERT().

>
>> +    ASSERT(spin_is_locked(&desc->lock));
> If this lock (which is an IRQ-safe one) is necessarily held, ...
>
>> +    spin_lock_irqsave(&aplic.lock, flags);
> ... you can use just spin_lock() here.
>
>> +    clear_bit(_IRQ_DISABLED, &desc->status);
> Why an atomic bitop when desc is locked? (And yes, I ought to raise the same
> question on Arm code also doing so.)

I haven't thought about that. Likely non-atomic bitop could be used here.

>
> I'm uncertain about this bit setting anyway - on x86 we would only fiddle
> with it for IRQs not in use, not while enabling/disabling one.
>
> In any event this can be done outside of the APLIC-locked region, I think.

Considering that we are doing that under desc->lock, agree we can move that outside
the APLIC-locked region.

>> +    imsic_irq_enable(desc->irq);
>> +
>> +    /* enable interrupt in APLIC */
>> +    aplic.regs->setienum = desc->irq;
> Are you sure you want to use plain assignments for MMIO accesses? I'd have
> expected writel() to be used here. (And only later I realized that I didn't
> spot the same already higher up from here.)

Good point. I have to update that with writel()...

>
>  From the vague understanding I've gained so far: Isn't the APLIC closer to
> the CPU and the IMSIC closer to the device? If so, wouldn't you want to
> enable at the APLIC before enabling at the IMSIC? But of course that also
> depends on what exactly happens in the window while one is already enabled
> and the other is still disabled. (Later) From the code you add to imsic.c
> it looks like it's the other way around, as the IMSIC is accessed through
> CSRs.

 From the AIA spec:
```
An Incoming MSI Controller (IMSIC) is an optional RISC-V hardware component
that is closely coupled with a hart, one IMSIC per hart. An IMSIC receives
and records incoming message-signaled interrupts (MSIs) for a hart, and
signals to the hart when there are pending and enabled interrupts to be
serviced.
```

Based on the figure 2 (Interrupt delivery by MSIs when harts have IMSICs for receiving them)
of AIA spechttps://github.com/riscv/riscv-aia/blob/main/src/intrsWithIMSICs.png
IMSIC is more close to CPU and APLIC is more close to the device. The external interrupt
controller is APLIC and it only sends a MSI message for a CPU.

The logical flow of an interrupt to a hart with an IMSIC would be:
1. A physical interrupt signal arrives at the APLIC.
2. The APLIC, if configured for MSI delivery mode (domaincfg.DM = 1) and if the specific
    interrupt source is active and enabled within its domain (controlled by sourcecfg[i]
    and the global Interrupt Enable bit IE in domaincfg), will generate an MSI.
3. This MSI is then sent to the target hart's IMSIC. The APLIC needs to know the MSI
    target address for each hart, which can be hardwired or configured through registers
    like mmsiaddrcfg and mmsiaddrcfgh.
4. The receiving hart's IMSIC records this MSI as a pending interrupt.
5. If the corresponding interrupt identity is enabled within the IMSIC's interrupt file,
    the IMSIC will signal the hart, typically by setting the MEIP or SEIP bit in the mip
    CSR (or sip CSR).

Generally, I think that the order in which enable interrupts doesn't really matter as
if you were to enable the IMSIC to receive a certain interrupt before the APLIC was
configured to send it (or had a pending interrupt from the device), the IMSIC would
simply be waiting for an MSI that wouldn't arrive.
Similarly, if the APLIC sends an MSI for an interrupt that is not enabled in the IMSIC,
the interrupt would remain pending in the IMSIC but wouldn't trigger an interrupt at
the hart.

IMO, the order which is used now in the code is pretty logical.

Does it make sense?

>
>> +    spin_unlock_irqrestore(&aplic.lock, flags);
>> +}
>> +
>> +static void aplic_irq_disable(struct irq_desc *desc)
>> +{
>> +    unsigned long flags;
>> +
>> +    /*
>> +     * TODO: Currently, APLIC is supported only with MSI interrupts.
>> +     *       If APLIC without MSI interrupts is required in the future,
>> +     *       this function will need to be updated accordingly.
>> +     */
>> +    ASSERT(aplic.imsic_cfg->is_used);
>> +
>> +    ASSERT(spin_is_locked(&desc->lock));
>> +
>> +    spin_lock_irqsave(&aplic.lock, flags);
>> +
>> +    set_bit(_IRQ_DISABLED, &desc->status);
>> +
>> +    /* disable interrupt in APLIC */
>> +    aplic.regs->clrienum = desc->irq;
>> +
>> +    /* disable interrupt in IMSIC */
>> +    imsic_irq_disable(desc->irq);
>> +
>> +    spin_unlock_irqrestore(&aplic.lock, flags);
>> +}
>> +
>> +static unsigned int aplic_irq_startup(struct irq_desc *desc)
>> +{
>> +    aplic_irq_enable(desc);
>> +
>> +    return 0;
>> +}
>> +
>> +static void aplic_irq_shutdown(struct irq_desc *desc)
>> +{
>> +    aplic_irq_disable(desc);
>> +}
> You don't really need a separate hook function here, do you?

With such implementation it is really not needed to have a hook so
I will drop it.

>> +static void aplic_irq_ack(struct irq_desc *desc)
>> +{
>> +    /* nothing to do */
>> +}
>> +
>> +static void aplic_host_irq_end(struct irq_desc *desc)
> What's the "host" in the identifier about?

It was copied that from Arm and my understanding that it means
Xen-related IRQ as they also have:
```
/* XXX different for level vs edge */
static hw_irq_controller gicv2_host_irq_type = {
...
     .end          = gicv2_host_irq_end,
...
};

static hw_irq_controller gicv2_guest_irq_type = {
...
     .end          = gicv2_guest_irq_end,
...
};
```


>
>> +{
>> +    /* nothing to do */
>> +}
>> +
>> +static unsigned int aplic_get_cpu_from_mask(const cpumask_t *cpumask)
>> +{
>> +    unsigned int cpu;
> No real need for this variable?

Yes, it could be dropped.

>
>> +    cpumask_t possible_mask;
>> +
>> +    cpumask_and(&possible_mask, cpumask, &cpu_possible_map);
>> +    cpu = cpumask_any(&possible_mask);
> Why would you use cpu_possible_map here? That includes any offline CPUs.
> I think you need to use cpu_online_map here.

It makes sense, Ill switch to cpu_online_map.

>
>> +    return cpu;
>> +}
>> +
>> +static void aplic_set_irq_affinity(struct irq_desc *desc, const cpumask_t *mask)
>> +{
>> +    unsigned int cpu;
>> +    uint64_t group_index, base_ppn;
>> +    uint32_t hhxw, lhxw ,hhxs, value;
>> +    const struct imsic_config *imsic = aplic.imsic_cfg;
>> +
>> +    /*
>> +     * TODO: Currently, APLIC is supported only with MSI interrupts.
>> +     *       If APLIC without MSI interrupts is required in the future,
>> +     *       this function will need to be updated accordingly.
>> +     */
>> +    ASSERT(aplic.imsic_cfg->is_used);
> Use the local variable you have made yourself?

What do you mean by local here?

>
>> +    ASSERT(!cpumask_empty(mask));
>> +
>> +    spin_lock(&aplic.lock);
> Aiui the lock can be acquired quite a bit later. It ought to be needed only
> around the actual write to the hardware register.
>
>> +    cpu = cpuid_to_hartid(aplic_get_cpu_from_mask(mask));
>> +    hhxw = imsic->group_index_bits;
>> +    lhxw = imsic->hart_index_bits;
>> +    hhxs = imsic->group_index_shift - IMSIC_MMIO_PAGE_SHIFT * 2;
>> +    base_ppn = imsic->msi[cpu].base_addr >> IMSIC_MMIO_PAGE_SHIFT;
>> +
>> +    /* update hart and EEID in the target register */
>> +    group_index = (base_ppn >> (hhxs + 12)) & (BIT(hhxw, UL) - 1);
> What's this magic 12 in here? Not IMSIC_MMIO_PAGE_SHIFT I suppose?

In the AIA spec they are using 12 explicitly:https://github.com/riscv/riscv-aia/blob/main/src/AdvPLIC.adoc#AdvPLIC-MSIAddrs

>> +    unsigned long id = base_id, last_id = base_id + num_id;
>> +
>> +    while ( id < last_id )
>> +    {
>> +        isel = id / __riscv_xlen;
>> +        isel *= __riscv_xlen / IMSIC_EIPx_BITS;
>> +        isel += (pend) ? IMSIC_EIP0 : IMSIC_EIE0;
> Nit: Why the parentheses?
>
>> +        ireg = 0;
>> +        for ( i = id & (__riscv_xlen - 1);
>> +              (id < last_id) && (i < __riscv_xlen);
>> +              i++, id++ )
>> +            ireg |= (1 << i);
> I wonder if this calculation really needs a loop. Afaict it's just a
> consecutive set of bits you mean to set.

Good point. I will double-check.

>
>> +        if ( val )
>> +            imsic_csr_set(isel, ireg);
>> +        else
>> +            imsic_csr_clear(isel, ireg);
>> +    }
>> +}
>> +
>> +void imsic_irq_enable(unsigned int hwirq)
>> +{
>> +    unsigned long flags;
>> +
>> +    spin_lock_irqsave(&imsic_cfg.lock, flags);
>> +    imsic_local_eix_update(hwirq, 1, false, true);
> No subtraction of 1 here? Also, why "hwirq" and not just "irq"?

 From the spec:
```

When an interrupt file supports distinct interrupt identities, valid identity numbers are between 1
and inclusive. The identity numbers within this range are said to be implemented by the interrupt
file; numbers outside this range are not implemented. The number zero is never a valid interrupt
identity.
...

Bit positions in a valid eiek register that don’t correspond to a 
supported interrupt identity (such as bit 0 of eie0) are read-only zeros.


```

So in EIx registers interrupt i corresponds to bit i in comparison wiht APLIC's sourcecfg which starts from 0.

>
>> +    spin_unlock_irqrestore(&imsic_cfg.lock, flags);
>> +}
>> +
>> +void imsic_irq_disable(unsigned int hwirq)
>> +{
>> +    unsigned long flags;
>> +
>> +    spin_lock_irqsave(&imsic_cfg.lock, flags);
>> +    imsic_local_eix_update(hwirq, 1, false, false);
>> +    spin_unlock_irqrestore(&imsic_cfg.lock, flags);
>> +}
>> +
>>   const struct imsic_config *imsic_get_config(void)
>>   {
>>       return &imsic_cfg;
>> @@ -277,6 +333,13 @@ int __init imsic_init(struct dt_device_node *node)
>>           goto imsic_init_err;
>>       }
>>   
>> +    spin_lock_init(&imsic_cfg.lock);
>> +
>> +    /* Enable local interrupt delivery */
>> +    imsic_ids_local_delivery(true);
> What's this? I can't find the function/macro here, nor in patch 08, nor in
> staging.

It is defined in imsic.c:
```
void imsic_ids_local_delivery(bool enable)
{
     if ( enable )
     {
         imsic_csr_write(IMSIC_EITHRESHOLD, IMSIC_ENABLE_EITHRESHOLD);
         imsic_csr_write(IMSIC_EIDELIVERY, IMSIC_ENABLE_EIDELIVERY);
     }
     else
     {
         imsic_csr_write(IMSIC_EITHRESHOLD, IMSIC_DISABLE_EITHRESHOLD);
         imsic_csr_write(IMSIC_EIDELIVERY, IMSIC_DISABLE_EIDELIVERY);
     }
}
```

Thanks for review.

~ Oleksii

--------------pweA2rQvh53q8HL5NREf4qtQ
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 4/15/25 2:46 PM, Jan Beulich wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:35075d73-ec3c-4e8f-b7ed-657b604904bd@suse.com">
      <pre wrap="" class="moz-quote-pre">On 08.04.2025 17:57, Oleksii Kurochko wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">Introduce interrupt controller descriptor for host APLIC to describe
the low-lovel hardare. It includes implementation of the following functions:
 - aplic_irq_startup()
 - aplic_irq_shutdown()
 - aplic_irq_enable()
 - aplic_irq_disable()
 - aplic_irq_ack()
 - aplic_host_irq_end()
 - aplic_set_irq_affinity()

As APLIC is used in MSI mode it requires to enable/disable interrupts not
only for APLIC but also for IMSIC. Thereby for the purpose of
aplic_irq_{enable,disable}() it is introduced imsic_irq_{enable,disable)().

For the purpose of aplic_set_irq_affinity() aplic_get_cpu_from_mask() is
introduced to get hart id.

Also, introduce additional interrupt controller h/w operations and
host_irq_type for APLIC:
 - aplic_host_irq_type
 - aplic_set_irq_priority()
 - aplic_set_irq_type()
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Yet these two functions nor the hooks they're used to populate are entirely
unused here. Since they're also outside of the common IRQ handling machinery,
it's unclear how one would sanely ack such a change.</pre>
    </blockquote>
    <pre>They will be called by intc_route_irq_to_xen() from setup_irq() during firt time
the IRQ is setup.

</pre>
    <blockquote type="cite"
      cite="mid:35075d73-ec3c-4e8f-b7ed-657b604904bd@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">--- a/xen/arch/riscv/aplic.c
+++ b/xen/arch/riscv/aplic.c
@@ -15,6 +15,7 @@
 #include &lt;xen/irq.h&gt;
 #include &lt;xen/mm.h&gt;
 #include &lt;xen/sections.h&gt;
+#include &lt;xen/spinlock.h&gt;
 #include &lt;xen/types.h&gt;
 #include &lt;xen/vmap.h&gt;
 
@@ -110,9 +111,173 @@ static int __init aplic_init(void)
     return 0;
 }
 
-static const struct intc_hw_operations __ro_after_init aplic_ops = {
+static void aplic_set_irq_type(struct irq_desc *desc, unsigned int type)
+{
+    unsigned int irq = desc-&gt;irq - 1;
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Why this adjustment by 1 (and yet both items being named "irq")?</pre>
    </blockquote>
    <pre>Interrupt 0 isn't possible based on the spec:
```
<span data-teams="true">Each of an APLIC’s interrupt sources has a fixed unique identity number in the range 1 to N,
where N is the total number of sources at the APLIC. The number zero is not a valid interrupt
identity number at an APLIC. The maximum number of interrupt sources an APLIC may support
is 1023.
```
and</span> <span class="Y2IQFc" lang="en">interrupt 1 will correspond to bit 0 in sourcecfg[] register,
interrupt 2 -&gt;sourcecfg[1] and so on.</span> And that is the reason why we need -1.
</pre>
    <blockquote type="cite"
      cite="mid:35075d73-ec3c-4e8f-b7ed-657b604904bd@suse.com">
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+            aplic.regs-&gt;sourcecfg[irq] = APLIC_SOURCECFG_SM_EDGE_FALL;
+            break;
+        case IRQ_TYPE_LEVEL_HIGH:
+            aplic.regs-&gt;sourcecfg[irq] = APLIC_SOURCECFG_SM_LEVEL_HIGH;
+            break;
+        case IRQ_TYPE_LEVEL_LOW:
+            aplic.regs-&gt;sourcecfg[irq] = APLIC_SOURCECFG_SM_LEVEL_LOW;
+            break;
+        default:
+            aplic.regs-&gt;sourcecfg[irq] = APLIC_SOURCECFG_SM_INACTIVE;
+            break;
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Is the default: label legitimate to be reached?</pre>
    </blockquote>
    <pre>From the spec:
```
<span data-teams="true">0 Inactive Inactive in this domain (and not delegated)
1 Detached Active, detached from the source wire
2–3 — Reserved
4 Edge1 Active, edge-sensitive; interrupt asserted on rising edge
5 Edge0 Active, edge-sensitive; interrupt asserted on falling edge
6 Level1 Active, level-sensitive; interrupt asserted when high
7 Level0 Active, level-sensitive; interrupt asserted when low
```

It seems to me like </span><span data-teams="true">APLIC_SOURCECFG_SM_INACTIVE just covers cases (0-3) and inactive
IRQ pretty safe to as a default value.</span></pre>
    <blockquote type="cite"
      cite="mid:35075d73-ec3c-4e8f-b7ed-657b604904bd@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+    }
+    spin_unlock(&amp;aplic.lock);
+}
+
+static void aplic_set_irq_priority(struct irq_desc *desc,
+                                   unsigned int priority)
+{
+    /* No priority, do nothing */
+}
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Since the function dopes nothing, wouldn't it be better to omit it and have
the (future) caller check for a NULL pointer ahead of making the (indirect)
call? Same remark for other handlers (below) which also do nothing.</pre>
    </blockquote>
    <pre>I thought about that too, but it could be some cases when the stub is introduced
with temporary BUG_ON("unimplemented") inside just to not miss to implement it
when it will be necessary.
If we will have only the caller check then we could miss to implement such stubs.

</pre>
    <blockquote type="cite"
      cite="mid:35075d73-ec3c-4e8f-b7ed-657b604904bd@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+static void aplic_irq_enable(struct irq_desc *desc)
+{
+    unsigned long flags;
+
+    /*
+     * TODO: Currently, APLIC is supported only with MSI interrupts.
+     *       If APLIC without MSI interrupts is required in the future,
+     *       this function will need to be updated accordingly.
+     */
+    ASSERT(aplic.imsic_cfg-&gt;is_used);
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Such an extra field, used only for assertions, is pretty odd. Can't you
use any of the other fields to achieve the same effect?</pre>
    </blockquote>
    <pre>in aplic_init() there is:
    /* check for associated imsic node */
    rc = dt_property_read_u32(node, "msi-parent", &amp;imsic_phandle);
    if ( !rc )
        panic("%s: IDC mode not supported\n", node-&gt;full_name);

So we will have panic() anyway if MSI mode isn't supported. As an option we
can just drop the ASSERT.

Or introduce static variable in aplic.c `aplic_mode`, init it in aplic_init()
and use it in ASSERT().
</pre>
    <blockquote type="cite"
      cite="mid:35075d73-ec3c-4e8f-b7ed-657b604904bd@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+    ASSERT(spin_is_locked(&amp;desc-&gt;lock));
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
If this lock (which is an IRQ-safe one) is necessarily held, ...

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+    spin_lock_irqsave(&amp;aplic.lock, flags);
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
... you can use just spin_lock() here.

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+    clear_bit(_IRQ_DISABLED, &amp;desc-&gt;status);
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Why an atomic bitop when desc is locked? (And yes, I ought to raise the same
question on Arm code also doing so.)</pre>
    </blockquote>
    <pre>I haven't thought about that. Likely non-atomic bitop could be used here.
</pre>
    <blockquote type="cite"
      cite="mid:35075d73-ec3c-4e8f-b7ed-657b604904bd@suse.com">
      <pre wrap="" class="moz-quote-pre">

I'm uncertain about this bit setting anyway - on x86 we would only fiddle
with it for IRQs not in use, not while enabling/disabling one.

In any event this can be done outside of the APLIC-locked region, I think.</pre>
    </blockquote>
    <pre>Considering that we are doing that under desc-&gt;lock, agree we can move that outside
the APLIC-locked region.
</pre>
    <blockquote type="cite"
      cite="mid:35075d73-ec3c-4e8f-b7ed-657b604904bd@suse.com">
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+    imsic_irq_enable(desc-&gt;irq);
+
+    /* enable interrupt in APLIC */
+    aplic.regs-&gt;setienum = desc-&gt;irq;
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Are you sure you want to use plain assignments for MMIO accesses? I'd have
expected writel() to be used here. (And only later I realized that I didn't
spot the same already higher up from here.)</pre>
    </blockquote>
    <pre>Good point. I have to update that with writel()...</pre>
    <blockquote type="cite"
      cite="mid:35075d73-ec3c-4e8f-b7ed-657b604904bd@suse.com">
      <pre wrap="" class="moz-quote-pre">

>From the vague understanding I've gained so far: Isn't the APLIC closer to
the CPU and the IMSIC closer to the device? If so, wouldn't you want to
enable at the APLIC before enabling at the IMSIC? But of course that also
depends on what exactly happens in the window while one is already enabled
and the other is still disabled. (Later) From the code you add to imsic.c
it looks like it's the other way around, as the IMSIC is accessed through
CSRs.</pre>
    </blockquote>
    <pre>From the AIA spec:
```
An Incoming MSI Controller (IMSIC) is an optional RISC-V hardware component
that is closely coupled with a hart, one IMSIC per hart. An IMSIC receives
and records incoming message-signaled interrupts (MSIs) for a hart, and
signals to the hart when there are pending and enabled interrupts to be
serviced.
```

Based on the figure 2 (Interrupt delivery by MSIs when harts have IMSICs for receiving them)
of AIA spec <a class="moz-txt-link-freetext" href="https://github.com/riscv/riscv-aia/blob/main/src/intrsWithIMSICs.png">https://github.com/riscv/riscv-aia/blob/main/src/intrsWithIMSICs.png</a>
IMSIC is more close to CPU and APLIC is more close to the device. The external interrupt
controller is APLIC and it only sends a MSI message for a CPU.

The logical flow of an interrupt to a hart with an IMSIC would be:
1. A physical interrupt signal arrives at the APLIC.
2. The APLIC, if configured for MSI delivery mode (domaincfg.DM = 1) and if the specific
   interrupt source is active and enabled within its domain (controlled by sourcecfg[i]
   and the global Interrupt Enable bit IE in domaincfg), will generate an MSI.
3. This MSI is then sent to the target hart's IMSIC. The APLIC needs to know the MSI
   target address for each hart, which can be hardwired or configured through registers
   like mmsiaddrcfg and mmsiaddrcfgh.
4. The receiving hart's IMSIC records this MSI as a pending interrupt.
5. If the corresponding interrupt identity is enabled within the IMSIC's interrupt file,
   the IMSIC will signal the hart, typically by setting the MEIP or SEIP bit in the mip
   CSR (or sip CSR).

Generally, I think that the order in which enable interrupts doesn't really matter as
if you were to enable the IMSIC to receive a certain interrupt before the APLIC was
configured to send it (or had a pending interrupt from the device), the IMSIC would
simply be waiting for an MSI that wouldn't arrive.
Similarly, if the APLIC sends an MSI for an interrupt that is not enabled in the IMSIC,
the interrupt would remain pending in the IMSIC but wouldn't trigger an interrupt at
the hart.

IMO, the order which is used now in the code is pretty logical.

Does it make sense?
</pre>
    <blockquote type="cite"
      cite="mid:35075d73-ec3c-4e8f-b7ed-657b604904bd@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+    spin_unlock_irqrestore(&amp;aplic.lock, flags);
+}
+
+static void aplic_irq_disable(struct irq_desc *desc)
+{
+    unsigned long flags;
+
+    /*
+     * TODO: Currently, APLIC is supported only with MSI interrupts.
+     *       If APLIC without MSI interrupts is required in the future,
+     *       this function will need to be updated accordingly.
+     */
+    ASSERT(aplic.imsic_cfg-&gt;is_used);
+
+    ASSERT(spin_is_locked(&amp;desc-&gt;lock));
+
+    spin_lock_irqsave(&amp;aplic.lock, flags);
+
+    set_bit(_IRQ_DISABLED, &amp;desc-&gt;status);
+
+    /* disable interrupt in APLIC */
+    aplic.regs-&gt;clrienum = desc-&gt;irq;
+
+    /* disable interrupt in IMSIC */
+    imsic_irq_disable(desc-&gt;irq);
+
+    spin_unlock_irqrestore(&amp;aplic.lock, flags);
+}
+
+static unsigned int aplic_irq_startup(struct irq_desc *desc)
+{
+    aplic_irq_enable(desc);
+
+    return 0;
+}
+
+static void aplic_irq_shutdown(struct irq_desc *desc)
+{
+    aplic_irq_disable(desc);
+}
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
You don't really need a separate hook function here, do you?</pre>
    </blockquote>
    <pre>With such implementation it is really not needed to have a hook so
I will drop it.

</pre>
    <blockquote type="cite"
      cite="mid:35075d73-ec3c-4e8f-b7ed-657b604904bd@suse.com">
      <pre wrap="" class="moz-quote-pre">
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+static void aplic_irq_ack(struct irq_desc *desc)
+{
+    /* nothing to do */
+}
+
+static void aplic_host_irq_end(struct irq_desc *desc)
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
What's the "host" in the identifier about?</pre>
    </blockquote>
    <pre>It was copied that from Arm and my understanding that it means
Xen-related IRQ as they also have:
```
/* XXX different for level vs edge */
static hw_irq_controller gicv2_host_irq_type = {
...
    .end          = gicv2_host_irq_end,
...
};

static hw_irq_controller gicv2_guest_irq_type = {
...
    .end          = gicv2_guest_irq_end,
...
};
```


</pre>
    <blockquote type="cite"
      cite="mid:35075d73-ec3c-4e8f-b7ed-657b604904bd@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+{
+    /* nothing to do */
+}
+
+static unsigned int aplic_get_cpu_from_mask(const cpumask_t *cpumask)
+{
+    unsigned int cpu;
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
No real need for this variable?</pre>
    </blockquote>
    <pre>Yes, it could be dropped.

</pre>
    <blockquote type="cite"
      cite="mid:35075d73-ec3c-4e8f-b7ed-657b604904bd@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+    cpumask_t possible_mask;
+
+    cpumask_and(&amp;possible_mask, cpumask, &amp;cpu_possible_map);
+    cpu = cpumask_any(&amp;possible_mask);
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Why would you use cpu_possible_map here? That includes any offline CPUs.
I think you need to use cpu_online_map here.</pre>
    </blockquote>
    <pre>It makes sense, Ill switch to cpu_online_map.

</pre>
    <blockquote type="cite"
      cite="mid:35075d73-ec3c-4e8f-b7ed-657b604904bd@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+    return cpu;
+}
+
+static void aplic_set_irq_affinity(struct irq_desc *desc, const cpumask_t *mask)
+{
+    unsigned int cpu;
+    uint64_t group_index, base_ppn;
+    uint32_t hhxw, lhxw ,hhxs, value;
+    const struct imsic_config *imsic = aplic.imsic_cfg;
+
+    /*
+     * TODO: Currently, APLIC is supported only with MSI interrupts.
+     *       If APLIC without MSI interrupts is required in the future,
+     *       this function will need to be updated accordingly.
+     */
+    ASSERT(aplic.imsic_cfg-&gt;is_used);
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Use the local variable you have made yourself?</pre>
    </blockquote>
    <pre>What do you mean by local here?

</pre>
    <blockquote type="cite"
      cite="mid:35075d73-ec3c-4e8f-b7ed-657b604904bd@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+    ASSERT(!cpumask_empty(mask));
+
+    spin_lock(&amp;aplic.lock);
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Aiui the lock can be acquired quite a bit later. It ought to be needed only
around the actual write to the hardware register.

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+    cpu = cpuid_to_hartid(aplic_get_cpu_from_mask(mask));
+    hhxw = imsic-&gt;group_index_bits;
+    lhxw = imsic-&gt;hart_index_bits;
+    hhxs = imsic-&gt;group_index_shift - IMSIC_MMIO_PAGE_SHIFT * 2;
+    base_ppn = imsic-&gt;msi[cpu].base_addr &gt;&gt; IMSIC_MMIO_PAGE_SHIFT;
+
+    /* update hart and EEID in the target register */
+    group_index = (base_ppn &gt;&gt; (hhxs + 12)) &amp; (BIT(hhxw, UL) - 1);
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
What's this magic 12 in here? Not IMSIC_MMIO_PAGE_SHIFT I suppose?</pre>
    </blockquote>
    <pre>In the AIA spec they are using 12 explicitly: <a class="moz-txt-link-freetext" href="https://github.com/riscv/riscv-aia/blob/main/src/AdvPLIC.adoc#AdvPLIC-MSIAddrs">https://github.com/riscv/riscv-aia/blob/main/src/AdvPLIC.adoc#AdvPLIC-MSIAddrs</a>

</pre>
    <blockquote type="cite"
      cite="mid:35075d73-ec3c-4e8f-b7ed-657b604904bd@suse.com">
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+    unsigned long id = base_id, last_id = base_id + num_id;
+
+    while ( id &lt; last_id )
+    {
+        isel = id / __riscv_xlen;
+        isel *= __riscv_xlen / IMSIC_EIPx_BITS;
+        isel += (pend) ? IMSIC_EIP0 : IMSIC_EIE0;
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Nit: Why the parentheses?

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+        ireg = 0;
+        for ( i = id &amp; (__riscv_xlen - 1);
+              (id &lt; last_id) &amp;&amp; (i &lt; __riscv_xlen);
+              i++, id++ )
+            ireg |= (1 &lt;&lt; i);
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
I wonder if this calculation really needs a loop. Afaict it's just a
consecutive set of bits you mean to set.</pre>
    </blockquote>
    <pre>Good point. I will double-check.

</pre>
    <blockquote type="cite"
      cite="mid:35075d73-ec3c-4e8f-b7ed-657b604904bd@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+        if ( val )
+            imsic_csr_set(isel, ireg);
+        else
+            imsic_csr_clear(isel, ireg);
+    }
+}
+
+void imsic_irq_enable(unsigned int hwirq)
+{
+    unsigned long flags;
+
+    spin_lock_irqsave(&amp;imsic_cfg.lock, flags);
+    imsic_local_eix_update(hwirq, 1, false, true);
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
No subtraction of 1 here? Also, why "hwirq" and not just "irq"?</pre>
    </blockquote>
    <pre>From the spec:
```

When an interrupt file supports distinct interrupt identities, valid identity numbers are between 1
and inclusive. The identity numbers within this range are said to be implemented by the interrupt
file; numbers outside this range are not implemented. The number zero is never a valid interrupt
identity.
...
<pre><span
style="color: rgb(31, 31, 31); font-family: &quot;Google Sans Text&quot;, &quot;Google Sans&quot;, sans-serif; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;">Bit positions in a valid eiek register that don’t correspond to a supported interrupt identity (such as bit 0 of eie0) are read-only zeros.</span></pre>
```

So in EIx registers interrupt i corresponds to bit i in comparison wiht APLIC's sourcecfg which starts from 0.

</pre>
    <blockquote type="cite"
      cite="mid:35075d73-ec3c-4e8f-b7ed-657b604904bd@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+    spin_unlock_irqrestore(&amp;imsic_cfg.lock, flags);
+}
+
+void imsic_irq_disable(unsigned int hwirq)
+{
+    unsigned long flags;
+
+    spin_lock_irqsave(&amp;imsic_cfg.lock, flags);
+    imsic_local_eix_update(hwirq, 1, false, false);
+    spin_unlock_irqrestore(&amp;imsic_cfg.lock, flags);
+}
+
 const struct imsic_config *imsic_get_config(void)
 {
     return &amp;imsic_cfg;
@@ -277,6 +333,13 @@ int __init imsic_init(struct dt_device_node *node)
         goto imsic_init_err;
     }
 
+    spin_lock_init(&amp;imsic_cfg.lock);
+
+    /* Enable local interrupt delivery */
+    imsic_ids_local_delivery(true);
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
What's this? I can't find the function/macro here, nor in patch 08, nor in
staging.</pre>
    </blockquote>
    <pre>It is defined in imsic.c:
```
void imsic_ids_local_delivery(bool enable)
{
    if ( enable )
    {
        imsic_csr_write(IMSIC_EITHRESHOLD, IMSIC_ENABLE_EITHRESHOLD);
        imsic_csr_write(IMSIC_EIDELIVERY, IMSIC_ENABLE_EIDELIVERY);
    }
    else
    {
        imsic_csr_write(IMSIC_EITHRESHOLD, IMSIC_DISABLE_EITHRESHOLD);
        imsic_csr_write(IMSIC_EIDELIVERY, IMSIC_DISABLE_EIDELIVERY);
    }
}
```

Thanks for review.

~ Oleksii
</pre>
  </body>
</html>

--------------pweA2rQvh53q8HL5NREf4qtQ--


From xen-devel-bounces@lists.xenproject.org Wed Apr 16 21:29:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 21:29:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.956561.1349963 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5AK3-0002Wb-2V; Wed, 16 Apr 2025 21:29:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 956561.1349963; Wed, 16 Apr 2025 21:29: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 1u5AK2-0002V3-QJ; Wed, 16 Apr 2025 21:29:30 +0000
Received: by outflank-mailman (input) for mailman id 956561;
 Wed, 16 Apr 2025 21:29: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=M5uj=XC=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1u5AK1-0001ht-EN
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 21:29:29 +0000
Received: from NAM11-CO1-obe.outbound.protection.outlook.com
 (mail-co1nam11on20621.outbound.protection.outlook.com
 [2a01:111:f403:2416::621])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id df24c58f-1b09-11f0-9ffb-bf95429c2676;
 Wed, 16 Apr 2025 23:29:27 +0200 (CEST)
Received: from DM6PR02CA0121.namprd02.prod.outlook.com (2603:10b6:5:1b4::23)
 by MN2PR12MB4333.namprd12.prod.outlook.com (2603:10b6:208:1d3::23) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.21; Wed, 16 Apr
 2025 21:29:22 +0000
Received: from DS1PEPF0001709D.namprd05.prod.outlook.com
 (2603:10b6:5:1b4:cafe::27) by DM6PR02CA0121.outlook.office365.com
 (2603:10b6:5:1b4::23) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.35 via Frontend Transport; Wed,
 16 Apr 2025 21:29:21 +0000
Received: from SATLEXMB04.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.8655.12 via Frontend Transport; Wed, 16 Apr 2025 21:29:21 +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, 16 Apr
 2025 16:29:20 -0500
Received: from fedora.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; Wed, 16 Apr 2025 16:29:20 -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: df24c58f-1b09-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=LYfT2IMpD4aOcagAuuod8/f0c9k5AJ+9uABeB3XxTjfNGzhVabR62kcNiub/HV6LsmNOfz7UU2X9wmqBoMrjNqiI5NFHZ9SX3/xPIwu6hzbjDK+eEzveHyMrZbCNXGEpuEngQoLUNbUQksdRU890sWGrJrbIT/YK7YeWPYH1holuyvAMBOWkqmgvtQ3U/Yz0sXq7uzJdEwVcsbgWsEM+BPi1khj2s8uS3ltDXMjhR+kTb9/i3bKSw6XfZyq9tKDXELuA0mUrGF+Xafqm+e9ejh2wG+UgLjaD5BP64WJ2nguzOM15c6iCzx6XVCBJRuDOUABCio9zP+bwmyMb16NSSQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=BayIoS8WcfscVo3mfe5z0RwTBcrAxvvhaDemFCv9sXo=;
 b=iBTf3P1WPsz7DiwyNVUHuB4PhokL0rG1Bh8xGWrm3NB41OwmPrVrokhcfWYvLaSGqrw1oIU7snwb5CdoA5+WwjJin77zW+DjEiB5P7zhm6IwmSi9nC+VtmZfJPWGrvbw3NrepRmBr0uPsfuqwmFgjJKoqQy74qhLk9y58RcYAzisDWTxfNDchJYmcn0M7WWYega2U+Q5vhphUZ27nLwu9Tj6fm2ht+C+KIHPn+pb2AgXGqQViBLK/fOmxJaV85bFB1Ek+fNo0air57jocBmaDjnMQcncR/B+miWxO/uZ+d57qtoD2dTnCq9VWXJiMgGTafYirs1wM7HJ8nWj1aM1QQ==
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=BayIoS8WcfscVo3mfe5z0RwTBcrAxvvhaDemFCv9sXo=;
 b=FQelfhWFVYnZrb28/FqX9OtAhXZzoTToLNM/HAEYBeXo2HnBGSqL6CyygOczjFhb0pW6eKCRnom5hphsUZ0YZQPg1UJbY+wK01e4YsEdzc9vqh6gYLtLjvGOPpRAALvOXB1AsU7nCwGYaPPDoGy5MjWbmgajw8PvYUMxOy6wuZc=
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>, Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v5 5/7] tools/init-dom0less: Only seed legacy xenstore grants
Date: Wed, 16 Apr 2025 17:29:09 -0400
Message-ID: <20250416212911.410946-6-jason.andryuk@amd.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250416212911.410946-1-jason.andryuk@amd.com>
References: <20250416212911.410946-1-jason.andryuk@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
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: DS1PEPF0001709D:EE_|MN2PR12MB4333:EE_
X-MS-Office365-Filtering-Correlation-Id: 70dd5be5-99f4-4f74-b7e9-08dd7d2dc069
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|1800799024|376014|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?CIafX6FuezUTVE2o1HOdGr6rJprR0cqQurQkxQk0DFjwuFbRu3EnfOqAwqrC?=
 =?us-ascii?Q?l7f2RxD0yOotEIhI9FU+W2L1W+STyIQGUwKp6c0IIzooSULMMyn+Djqe8Svj?=
 =?us-ascii?Q?hfotUTM4KGDIL6NVwtUIVJ3yW7HlcZVwcX4qYKUdSMlZBrilFeTxiEfX6CDM?=
 =?us-ascii?Q?mDmx4ddsgiiT9mNVu+vXUxMMtI19pkqt+HryzAhFQfOtpOoTHfxV65QR78Ip?=
 =?us-ascii?Q?CvNRpCndPVkpmw2+ft5xviBSU8WpIMiwV64MffyS3ztKmK29ePPZO+nNaE/E?=
 =?us-ascii?Q?kWEGw3YYMT2j72aU+z13dmC9UJ00vP4wDqwemJXmvS1Imi0Ln6qPoV25h6Mq?=
 =?us-ascii?Q?PjlQoZwXQOEBbPa7v9C0DDOK4GlyaLGeGVlRp4FObsITrbOILgn6WfZAfMkB?=
 =?us-ascii?Q?IaODMAjmDJ6tj1v9iZkAJh+9rleY/RdBwnf6jNVhgy0TysPpK1ChwnMx7iGt?=
 =?us-ascii?Q?BGhnrklSJyd0tPgY47/8b79pnByMBA+5mpkAmpo3vNpGF6mn4meQCQ9c7rLu?=
 =?us-ascii?Q?m5177r4pI9SfX7I7rT1FiHHMFPWxivE2t9X4V2+glWbmrJiyKJ118NyOW6M6?=
 =?us-ascii?Q?KKdrmnKjVX/U94Fj75U7LNFvzAhbFNynzEBy1t5AgB0WAbDlj7j/So74qSbn?=
 =?us-ascii?Q?Qd2ox9oj3Rj4LnmmeDpy4/pqYGmUBFD12xsI5Qv0H9BDEEkYendhJl7FWp98?=
 =?us-ascii?Q?+Rk4c31GUgesNlPlAySM0SJI6jOwssGLAirY6cuT9W5Is/FOofV/+APdwN1W?=
 =?us-ascii?Q?6BUaxbz0SarQ82pnzieMj9rUGjs2vKzMQrN4lEiMVx4WOiAKhOZzs+LOmQIT?=
 =?us-ascii?Q?S65UX1ILpv5KdbwYFaj6XFb4zPz6uTK+Iq7NMrf+TCsLxRSDQw2QY4O3K+JD?=
 =?us-ascii?Q?qE9uBG6md3kFHIZYr8+SpEx+yd7TJt4SSi3S4Z+6ygYcWVVGZsKRoKHflGY0?=
 =?us-ascii?Q?OgnEpa9Jd++AqcDl8ijgkrSZrZkZj2szceD9ZWtgu9KHv3Sq/YDX1kMCCV38?=
 =?us-ascii?Q?p/rgUhjSxirad1jRmFQJiOiyk0qz28116dmO8Vwom/AjWkIlZGU9F60u+C+J?=
 =?us-ascii?Q?dFjwvI8LwbtaSm0nglC+2XzBNNhnL0R9JFwNg5IYJYSfhLDPlF4XhHYhVQku?=
 =?us-ascii?Q?tiTj7ly24zk0J45zOWxQS1Fp7Cu8Gy7KM08Ny2Gy2zG2IBp9SKy2cXmA57Po?=
 =?us-ascii?Q?WH26naXBvD3InMakHlQ1WivqkPoDe2TzsiiyD2iWvmejDYpZzdAqYTCSZ56Q?=
 =?us-ascii?Q?5Qzx6DNMsW8D9jk9EtZ/r+IJk0ysgAhEhvE+gcDfuzQdfMapxBXppxObeo/6?=
 =?us-ascii?Q?TdkFG4Skw8I318Sy5stENhvKUz859+Q4FOQolvENba0Jb1VHcbBeKC0nVie9?=
 =?us-ascii?Q?p4tsnSs5Qk3brrAteKoWRdMH36x7p872wzj7XLUxTWuUEaFKfehtfoZ1726z?=
 =?us-ascii?Q?+/KERl55eSdSq8xzqe0nN/k8g0COY08qK+eB4Wr8fCvDsp7KlKSDveD6kpnf?=
 =?us-ascii?Q?gSsOusQGILGzqOQ3Go+w/YtGkQ7Aty4HUXWS?=
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: 16 Apr 2025 21:29:21.0695
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 70dd5be5-99f4-4f74-b7e9-08dd7d2dc069
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:
	DS1PEPF0001709D.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4333

The hardware domain is unable to seed a control domain, but we want the
control domain to use xenstore.  Rely on the hypervisor to seed dom0less
grant table entries for Xenstore, so this seeding is unnecessary.

However, that only works for the new xenstore late init.  The legacy
protocol which uses init-dom0less to populate the page still needs to
seed the grant.

Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
---
v5:
No change

v4:
Add Stefano R-b
---
 tools/helpers/init-dom0less.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/tools/helpers/init-dom0less.c b/tools/helpers/init-dom0less.c
index 17579fe2e8..91edf17b6c 100644
--- a/tools/helpers/init-dom0less.c
+++ b/tools/helpers/init-dom0less.c
@@ -286,12 +286,12 @@ static int init_domain(struct xs_handle *xsh,
                 xenstore_pfn);
         if (rc < 0)
             return rc;
-    }
 
-    rc = xc_dom_gnttab_seed(xch, info->domid, true,
-                            (xen_pfn_t)-1, xenstore_pfn, 0, 0);
-    if (rc)
-        err(1, "xc_dom_gnttab_seed");
+        rc = xc_dom_gnttab_seed(xch, info->domid, true,
+                                (xen_pfn_t)-1, xenstore_pfn, 0, 0);
+        if (rc)
+               err(1, "xc_dom_gnttab_seed");
+    }
 
     libxl_uuid_generate(&uuid);
     xc_domain_sethandle(xch, info->domid, libxl_uuid_bytearray(&uuid));
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Wed Apr 16 21:29:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 21:29:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.956560.1349956 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5AK2-0002Qf-Mj; Wed, 16 Apr 2025 21:29:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 956560.1349956; Wed, 16 Apr 2025 21:29: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 1u5AK2-0002Q3-Gr; Wed, 16 Apr 2025 21:29:30 +0000
Received: by outflank-mailman (input) for mailman id 956560;
 Wed, 16 Apr 2025 21:29: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=M5uj=XC=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1u5AK0-00024x-Lv
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 21:29:28 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on2061b.outbound.protection.outlook.com
 [2a01:111:f403:2414::61b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id df8c79c6-1b09-11f0-9eaf-5ba50f476ded;
 Wed, 16 Apr 2025 23:29:27 +0200 (CEST)
Received: from DM6PR02CA0123.namprd02.prod.outlook.com (2603:10b6:5:1b4::25)
 by DS5PPF7856D51FE.namprd12.prod.outlook.com (2603:10b6:f:fc00::654) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.35; Wed, 16 Apr
 2025 21:29:23 +0000
Received: from DS1PEPF0001709D.namprd05.prod.outlook.com
 (2603:10b6:5:1b4:cafe::d5) by DM6PR02CA0123.outlook.office365.com
 (2603:10b6:5:1b4::25) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.15 via Frontend Transport; Wed,
 16 Apr 2025 21:29:23 +0000
Received: from SATLEXMB04.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.8655.12 via Frontend Transport; Wed, 16 Apr 2025 21:29:23 +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, 16 Apr
 2025 16:29:21 -0500
Received: from fedora.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; Wed, 16 Apr 2025 16:29:21 -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: df8c79c6-1b09-11f0-9eaf-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=F91MAoPq6kxDQ3wwQaROs0pZgIKsYVFLAwoy8iKciY4epILCzHaU+1b50d0EXYkje9ttT1kL60ZeQuEcgIhyf9lMWsGMmBOMaYs8od3h86yfBqCSn8lTTsBxBjCbgll0Fhk4DWI4k1JIBDQ5e2twhxGBn91A8dZ0y7jUaoXc6vzHvIqfTgeL1pVIvUCUSv39oCO/6x9AzCCNmK07MiK0pQzLBLl+EX7vTF56v5c4lymh2Lgg6vadkdtHUbcq7sDqfU7/tSea08268APwvRVqMGfNS3btNFo4LnFVTXhFrZaxy18LFR8Gf0S/hEpmlAe0ym+INkb/x2iHGx6tQXFDRA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=HEhCn/D2ABiwChVcgLzJo/1vunmuVBcfpq/kh2xui/g=;
 b=sIEBC0olEYqOWabKmUJCkr2WSaVOCjsmdZ4VMJOHQ0SbNqug1Sh6umDtqBHg92o20Ebuo407zXUfyXm570DJW38YHRAOrlidWurfk2KEMrfdKqEgZ0qHdXqTuH6P0IHqVWTLKnHuEC0PNvI0HRHCcFqsywq1yA85JHkdTsVUPQS2WZ67E+o5q/xKGRKCyHjqR9G05HQnlNAVVGK9WrG8EFI5vTTH2NUBcyO24zdbNqKEkQmvTPpUH3LlOO+Yaa60c2fkawtoGthkyZTaGA+KgxRDEc4dX7L1L44dcHnT6v6i9laHwiu+khThB9Ao/+p0q4n58zXAEva2Bf+Dyy74dA==
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=HEhCn/D2ABiwChVcgLzJo/1vunmuVBcfpq/kh2xui/g=;
 b=ftt9z2GmUcLAbuWV3D9pCj6kFeskMPfDOY3saj0tMC8/yfFj9kitXJuo+FDnOMaYm4zhaQNgXAXso1R7h543CJbNO3j+VsMN2Wat7whtVFpUDxaCRjgoRbBEF1crfdPh4/syKxegJg5J8bm7SNX0hqrQI5LvFNP/7RMPFzvWlAU=
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>, 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 6/7] xen/arm: dom0less use has_dtb local variable
Date: Wed, 16 Apr 2025 17:29:10 -0400
Message-ID: <20250416212911.410946-7-jason.andryuk@amd.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250416212911.410946-1-jason.andryuk@amd.com>
References: <20250416212911.410946-1-jason.andryuk@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
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: DS1PEPF0001709D:EE_|DS5PPF7856D51FE:EE_
X-MS-Office365-Filtering-Correlation-Id: d970b719-5f44-4dc6-20ac-08dd7d2dc196
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?HXUj9RsYmwtV2kjb5DJgi6Cand10cd7Kz526g83bUae7qqN8vavGXVU5t6fo?=
 =?us-ascii?Q?71FanJrGi6O00sGXt/rEGkARBii4gJ71dIj7VjddBnQ3W+0GPm470n1G1Pmd?=
 =?us-ascii?Q?JJYeG0Bk5f4xohlySL70qUrvpe+rvhvrXm9uM/Wackn/uu+iTQusCLzfzoRf?=
 =?us-ascii?Q?ujn94etP+UGjztj7p0UPcPhqTlvAQ/KcvZh6INoRoasGK7Es6HlkOHKgyftA?=
 =?us-ascii?Q?cJ6LcOVRyfJ4MFPJqfQ4RUT3GL/TzrvYA54Ioh/sJmDUR7ENf1SijePxb5ky?=
 =?us-ascii?Q?C+P6hmGObKZyCJ4kS0NDsHde8CuimQ8smAuSPlvzQa2c160Z9A5rRmeO998k?=
 =?us-ascii?Q?OD7NKeo4g2gWQ7169zq+5P32gyvMKT6OxO49zNZ0++XiMDNTq3/5ZbvKQ7SW?=
 =?us-ascii?Q?OSaY11VXIN2SKjERq8dyfy/wXdDz+5YA1v1eCcuX+6ZXJG7BH8VFJT7YrBDM?=
 =?us-ascii?Q?2gjbUHbPnmJbGtEA1bMNcWtooNFO+zofgxH3yYjtyeEJ0JO06RY4D3f0wXDI?=
 =?us-ascii?Q?vHvS/xGCuWsjHZQNN8/kxzNNALxv44zynRskwYi0CeNvK/zEA48roKZXMgb2?=
 =?us-ascii?Q?JV5UHTnJ5mDUCrsaiaoRTS2SlUlwADyzEiJRQFNz12ZxCi5gtlPU/hsJtk5U?=
 =?us-ascii?Q?V1vk6x2fBjmXO0341aZZ8bm3qNQsWVj3k31+IinXfDgGBEBTvgSak3+osZ19?=
 =?us-ascii?Q?OjlurUFTVej1o/20f6sIBYsNvbgVTTB81/EPm13j3WylZMXhgjgYorLlQ4Hr?=
 =?us-ascii?Q?yEm6TNeqbJ9DOFK9R/KEhTUmz77lOq71NepfSdsNia1KrXFGhhcVFfKGeU2k?=
 =?us-ascii?Q?5MQ3M1LOv7h4yLW8j416XB7+o8KxqIhzLQZnaOjnJaArbK4Nr7Bc/DBOY0ss?=
 =?us-ascii?Q?2nqvceO6UdX0jeavQ0hVH8p8WpoUybAEucXi0zwR4fWP66yFWHqtAv2hri1d?=
 =?us-ascii?Q?rxXIPEbeJ3mbLi6zzrBpM6+RJ1SsB9wWMiXvYmdQiJgyQa0hlsC63dCQoqlh?=
 =?us-ascii?Q?z9DMJnD0Z8UJp6SBV6E3usm6wGe9tIEUJfalkiHVrKsv60H4SOYY+jG1DbT4?=
 =?us-ascii?Q?brLiwR90DgMXUnCOh6jVzvLtXjIcToLK+OPiNBQq/3UEBT+D1ZfF3pY+NHVf?=
 =?us-ascii?Q?LydRpzd0akD2d7hq9db1VHfLeBaZaYOGYvbhBnP63E3gRxm16ziIEIhYbcAH?=
 =?us-ascii?Q?Jowu0sZNWG2drrsHltvfBtDz7ZeyTu8Gmev9GZiDj6qZXDBn472xOjS6I3wl?=
 =?us-ascii?Q?IzxSdE8zLyi/qpe+0mUQC/5fbjz7jfinVdO0k5hQcEq01GHWKRkA6n+VbrGt?=
 =?us-ascii?Q?F15p3yw9jceYSYCaCOzB/dn+MsQTJP7Wn4MtTWWae6qhcrjXTYF8rMVSEaJ8?=
 =?us-ascii?Q?tlXlQALegq0TOf1OWffkB8+dskF2cRE3iWJUA2xcAME0Ems5NQzLfwxLRjLL?=
 =?us-ascii?Q?Y2C9AUx/bwuXmq7C45mxk53NenbRSb7MB5Hn8ykTT3y48q7ng6qojmm9eLlU?=
 =?us-ascii?Q?WNf06VNEJHXCVMBjRRMIuYLFTdNnbi/m19Gu?=
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: 16 Apr 2025 21:29:23.0382
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: d970b719-5f44-4dc6-20ac-08dd7d2dc196
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:
	DS1PEPF0001709D.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS5PPF7856D51FE

Store the result of finding a "multiboot,device-tree" node.  This will
simplity adding hardware domain checks.

Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
---
v5:
No change

v4:
Add Stefano R-b

v3:
New

Could be squashed into the next patch, but this helps make the next one
cleaner.
---
 xen/arch/arm/dom0less-build.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
index 188ef40b52..50d2d3e4e4 100644
--- a/xen/arch/arm/dom0less-build.c
+++ b/xen/arch/arm/dom0less-build.c
@@ -1033,6 +1033,7 @@ void __init create_domUs(void)
             .grant_opts = XEN_DOMCTL_GRANT_version(opt_gnttab_max_version),
         };
         unsigned int flags = 0U;
+        bool has_dtb = false;
         uint32_t val;
         int rc;
 
@@ -1067,9 +1068,10 @@ void __init create_domUs(void)
              !strcmp(dom0less_iommu, "enabled") )
             iommu = true;
 
-        if ( iommu_enabled &&
-             (iommu || dt_find_compatible_node(node, NULL,
-                                               "multiboot,device-tree")) )
+        if ( dt_find_compatible_node(node, NULL, "multiboot,device-tree") )
+            has_dtb = true;
+
+        if ( iommu_enabled && (iommu || has_dtb) )
             d_cfg.flags |= XEN_DOMCTL_CDF_iommu;
 
         if ( !dt_property_read_u32(node, "nr_spis", &d_cfg.arch.nr_spis) )
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Wed Apr 16 21:29:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 21:29:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.956559.1349951 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5AK2-0002Od-Ch; Wed, 16 Apr 2025 21:29:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 956559.1349951; Wed, 16 Apr 2025 21:29: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 1u5AK2-0002OU-9g; Wed, 16 Apr 2025 21:29:30 +0000
Received: by outflank-mailman (input) for mailman id 956559;
 Wed, 16 Apr 2025 21:29: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=M5uj=XC=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1u5AK0-0001ht-3f
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 21:29:28 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on2061a.outbound.protection.outlook.com
 [2a01:111:f403:2414::61a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id dea5cd68-1b09-11f0-9ffb-bf95429c2676;
 Wed, 16 Apr 2025 23:29:26 +0200 (CEST)
Received: from BN0PR03CA0022.namprd03.prod.outlook.com (2603:10b6:408:e6::27)
 by MW4PR12MB5642.namprd12.prod.outlook.com (2603:10b6:303:187::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.32; Wed, 16 Apr
 2025 21:29:20 +0000
Received: from BN3PEPF0000B374.namprd21.prod.outlook.com
 (2603:10b6:408:e6:cafe::f4) by BN0PR03CA0022.outlook.office365.com
 (2603:10b6:408:e6::27) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.33 via Frontend Transport; Wed,
 16 Apr 2025 21:29:20 +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.8678.4 via Frontend Transport; Wed, 16 Apr 2025 21:29:20 +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, 16 Apr
 2025 16:29:19 -0500
Received: from fedora.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; Wed, 16 Apr 2025 16:29:18 -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: dea5cd68-1b09-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=xjMj6+9yduWFLfVPPxkrysQM5lCtK9EAw5Twr+o7Opd21BpfnsPJztP+bDRH7GhzysVPw0I/DVaf8++TPPtydG0tq5A47w4ngHmwVGLq/+pnqGxG4E4RZ8iCFiUCROiuMGzruTgXsOTvJZz+U0Ma8/6YAO6LU7Z920JvuEXPZzovBj5lnlla0jz4HJ2UuL+huYRv6AsbdUpkap4f+a1oc+atPYod0zICYWSuHvkeRcxqSeos4jpM2gFJWW3cEmUg6gWPug12W4NF/qsruJ5o9sf3wCr/AzurjlpPHZ0374NTQ33Mc5i4Pyf0MU3ZY4Y2c3S5fAheAlUCzUC22QQQdw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=xiL4AJODaDRCE3AdKeSCgiRT3UDtdESaezafVTvalCU=;
 b=k5ZnV4WrsGYvZmIgixeMqnNJILdLmZBsf6wvQ+ZZAGNIKoEuQy9QOK6KbzsiHCCd6Coukw8DAohQuzv0SxuMKym4/RW/J6nQfkiK31T7gqi5bjAqd6SYMQNGliFVi1uewYiqubRJFsDnJKbMv1dIKDnROMTNIs3Nij3Trl8IlKsvxns9kd+imO7TIaEg5WukjBkkIBbpqTY9sPBt2APqjM2Rohb/ft8rY2teLynt28jeiEs27834d99T5uTWRdaeX672Wjmjx/PXoccqlTWYnnwNXfEdSTFk1EKFb/2R6kBN8oRbYfwqglyCufp6RVsruMag1lxgSPKVjghJZtk3Cw==
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=xiL4AJODaDRCE3AdKeSCgiRT3UDtdESaezafVTvalCU=;
 b=wJy9Jtp+XmDeGYZMt3n0cQpvdk1o4QaIOPpKw7uCi9MQRAXM4/nUxWBjepz8kpm4k2KCeFPivebj3TSGciR6F6ATZw9wDT0+B4jtf/D9BUo0AA2zVNbap77ut7R8fmyjhndwrUUVOMrt8V0zTqMWSbvcExhZ8X8DmZZhvcP3ko0=
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>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, "Volodymyr
 Babchuk" <Volodymyr_Babchuk@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, "Jan
 Beulich" <jbeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>
Subject: [PATCH v5 4/7] xen/arm: dom0less seed xenstore grant table entry
Date: Wed, 16 Apr 2025 17:29:08 -0400
Message-ID: <20250416212911.410946-5-jason.andryuk@amd.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250416212911.410946-1-jason.andryuk@amd.com>
References: <20250416212911.410946-1-jason.andryuk@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
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: BN3PEPF0000B374:EE_|MW4PR12MB5642:EE_
X-MS-Office365-Filtering-Correlation-Id: 501d2378-0209-4d90-892d-08dd7d2dbfda
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?rKAuwave4g7iHqiEIStK3hBZZFjD4A3UP7ASoAgCiJbtGWfK0HNTGDu5hesU?=
 =?us-ascii?Q?0cTPInke/MwYaey0PQmPrU9BAXCkTRq/JzWJAvt+TbyAWrU6+1AQAzI5t0Vv?=
 =?us-ascii?Q?CiQ0JId+hrdFGFbwde43/kA+g1ojw/dg7DAo/uEU0vqhxIb6im/YY2DMFHvs?=
 =?us-ascii?Q?8ZvP8OWAEzNhnKqwjVF1CHlFFR87t3vS5tbacqD3F1dC3Vu0c1swcHc8Qnai?=
 =?us-ascii?Q?CUmcfM4LatFYmjbb+pykXLLeXKBrtGdA5SrK2wvTSBgtNkXGrPIRKYxKrfd9?=
 =?us-ascii?Q?/yDbDwoDIIUFBfk3jhM88BBdQOIn0SbktdpKqcMT1DbmInc8fRlYuBsoVXDX?=
 =?us-ascii?Q?RwnrdgDIGB6/HvIdswHHRZY5cdYiopiEpKiusePCLB810IIRZKbbw+54V7gj?=
 =?us-ascii?Q?pBHJS1FzPvBe4AUF8IBb7Dyh8/RV6c2lyrLCA0Cln7l+LgJNXTdk2Xs2S9L+?=
 =?us-ascii?Q?9Rd9OaRDUcvVmiIVXagqCHVw+9+VC0vTJcsarEsLw167BCmmDu+lziBtapLn?=
 =?us-ascii?Q?seDMgBcvXptInHpVlaaNtdN6pCfIk49GMS47XRRTdCGrsT+bYeaP5Ov6/QA6?=
 =?us-ascii?Q?QuK0TzLqBngdIeMN9z/e6c0v5+cdWuRv+YGHAdBErrBBrJFv77IwkB0MogWH?=
 =?us-ascii?Q?Zp2ECARDv91VgOXJ4dt5qQuBKW1fxrxDcVFx2itbKJOS+JyLhvLQLD6Uiq0A?=
 =?us-ascii?Q?psuY3DosICzvZJQ0WoYinoJyug+hLyLqoxt6lLkrEQ0SNwEWG7tdg9jXy+Bf?=
 =?us-ascii?Q?uksyawOIUdh3wSHW7ny1RTJiAeALTm9EizJHw95+Jfp4PSsX0MKWS4yr3l0k?=
 =?us-ascii?Q?SiA6RBySXNku97ZyPLqHed7+YvDsfIbDel8xoFGp++gsjBD+8mWcFbfuaA7o?=
 =?us-ascii?Q?mQYFgG4Tj6fS4PfwWBqDFPUKph7qd0YrXX34GvfkTwTY2Yt3pVgbXq72MWki?=
 =?us-ascii?Q?NBY3Sd7PXY2EQ3m/EhJ7lCEf7MwheCskb8vksCesrtqq+HEXXvnNUjz1IxyY?=
 =?us-ascii?Q?sXqpD0iZIagHx/BZ5LfS2g2EFyjxDBZTtHgQo8Cemis4zMlTfgQLzMQrcz3r?=
 =?us-ascii?Q?DTm72fYU/eQfRSViIcikFNrEbw9MrBz79DnlfBgK0yxvr0d54oVdCn8Ygxk9?=
 =?us-ascii?Q?ZCZdJW+kUBr1DWKDNjAL2jb0zSLXMTHNyzIjQcEXpfADBCL/MEaTJg8/tL7B?=
 =?us-ascii?Q?X3iQkhTnKgt7EC6gdG4KsFM06whTWDGftmufznaC3qqS/yuB5P/lX4UOv+X7?=
 =?us-ascii?Q?ATGklscBql819VlxsDS/fzdLWBx7siiglM1tWi9D7BWoIQCsUt9ZKBWiJ7Ks?=
 =?us-ascii?Q?AbqaFO8pl3reGSkXtjAaxlUsQRj9/Z802NjjuDK8WEzV90uHkICi1mbxTws7?=
 =?us-ascii?Q?/lFXl71p3JrLJiRKXovDbzs7ogdBCdHHq5jr1dui78OkANFJvLNG2lyyoQOC?=
 =?us-ascii?Q?5XplzaNXZmHxoEa/dn7VPg1FaakfQ1Tw7J1hZnrZI+tIE2zGoqXVcS96jpFA?=
 =?us-ascii?Q?pqKKiXxfQCVmHtZWlk6O6JycBsbC1GRXIbxD?=
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: 16 Apr 2025 21:29:20.1807
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 501d2378-0209-4d90-892d-08dd7d2dbfda
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: MW4PR12MB5642

xenstored maps other domains' xenstore pages.  Currently this relies on
init-dom0less or xl to seed the grants from Dom0.  With split
hardware/control/xenstore domains, this is problematic since we don't
want the hardware domain to be able to map other domains' resources
without their permission.  Instead have the hypervisor seed the grant
table entry for every dom0less domain.  The grant is then accessible as
normal.

C xenstored uses grants, so it can map the xenstore pages from a
non-dom0 xenstore domain.  OCaml xenstored uses foreign mappings, so it
can only run from a privileged domain (dom0).

Add a define to indicate the late alloc xsentore PFN, to better indicate
what is being checked.  Use UINT64_MAX instead of ~0ULL as the HVM_PARAM
field is a uint64_t.  UINT64_MAX is not defined, so add it.

Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
---
v5:
Add R-b: Stefano

v4:
ASSERT gfn against UINT32_MAX and use < to avoid INVALID_GFN on 32bit
builds
Stefano gave R-b, but holding off addition because of changes
Use IS_ENABLED(CONFIG_GRANT_TABLE) instead of wrapper
Add XENSTORE_PFN_LATE_ALLOC
Add UINT64_MAX

v3:
Expand commit message about C vs. OCaml xenstored.
Remove __init and flags from gnttab_seed_entry()
Change frame to uint32_t
ASSERT gfn fits in a uint32_t
Rebase on mem paging changes

v2:
Tweak commit message
Mark gnttab_seed_entry() __init and put inside CONFIG_DOM0LESS_BOOT
Add ASSERT(!d->creation_finished) and ASSERT(gt->gt_version == 1);
const struct domain & struct grant_table
---
 xen/arch/arm/dom0less-build.c | 10 +++++++++-
 xen/common/grant_table.c      | 14 ++++++++++++++
 xen/include/xen/grant_table.h |  4 ++++
 xen/include/xen/types.h       |  1 +
 4 files changed, 28 insertions(+), 1 deletion(-)

diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
index bb8cc3be43..188ef40b52 100644
--- a/xen/arch/arm/dom0less-build.c
+++ b/xen/arch/arm/dom0less-build.c
@@ -20,6 +20,8 @@
 #include <asm/static-memory.h>
 #include <asm/static-shmem.h>
 
+#define XENSTORE_PFN_LATE_ALLOC UINT64_MAX
+
 static domid_t __initdata xs_domid = DOMID_INVALID;
 static bool __initdata need_xenstore;
 
@@ -756,7 +758,7 @@ static int __init alloc_xenstore_params(struct kernel_info *kinfo)
 
     if ( (kinfo->dom0less_feature & (DOM0LESS_XENSTORE | DOM0LESS_XS_LEGACY))
                                  == (DOM0LESS_XENSTORE | DOM0LESS_XS_LEGACY) )
-        d->arch.hvm.params[HVM_PARAM_STORE_PFN] = ~0ULL;
+        d->arch.hvm.params[HVM_PARAM_STORE_PFN] = XENSTORE_PFN_LATE_ALLOC;
     else if ( kinfo->dom0less_feature & DOM0LESS_XENSTORE )
     {
         rc = alloc_xenstore_page(d);
@@ -788,6 +790,12 @@ static void __init initialize_domU_xenstore(void)
         rc = alloc_xenstore_evtchn(d);
         if ( rc < 0 )
             panic("%pd: Failed to allocate xenstore_evtchn\n", d);
+
+        if ( gfn != XENSTORE_PFN_LATE_ALLOC && IS_ENABLED(CONFIG_GRANT_TABLE) )
+        {
+            ASSERT(gfn < UINT32_MAX);
+            gnttab_seed_entry(d, GNTTAB_RESERVED_XENSTORE, xs_domid, gfn);
+        }
     }
 }
 
diff --git a/xen/common/grant_table.c b/xen/common/grant_table.c
index 6c77867f8c..e75ff98aff 100644
--- a/xen/common/grant_table.c
+++ b/xen/common/grant_table.c
@@ -4346,6 +4346,20 @@ static void gnttab_usage_print(struct domain *rd)
         printk("no active grant table entries\n");
 }
 
+#ifdef CONFIG_DOM0LESS_BOOT
+void __init gnttab_seed_entry(const struct domain *d, unsigned int idx,
+                              domid_t be_domid, uint32_t frame)
+{
+    const struct grant_table *gt = d->grant_table;
+
+    ASSERT(!d->creation_finished);
+    ASSERT(gt->gt_version == 1);
+    shared_entry_v1(gt, idx).flags = GTF_permit_access;
+    shared_entry_v1(gt, idx).domid = be_domid;
+    shared_entry_v1(gt, idx).frame = frame;
+}
+#endif
+
 static void cf_check gnttab_usage_print_all(unsigned char key)
 {
     struct domain *d;
diff --git a/xen/include/xen/grant_table.h b/xen/include/xen/grant_table.h
index 50edfecfb6..297d7669e9 100644
--- a/xen/include/xen/grant_table.h
+++ b/xen/include/xen/grant_table.h
@@ -33,6 +33,10 @@
 
 struct grant_table;
 
+/* Seed a gnttab entry for Hyperlaunch/dom0less. */
+void gnttab_seed_entry(const struct domain *d, unsigned int idx,
+                       domid_t be_domid, uint32_t frame);
+
 #ifdef CONFIG_GRANT_TABLE
 
 extern unsigned int opt_gnttab_max_version;
diff --git a/xen/include/xen/types.h b/xen/include/xen/types.h
index e8d419b954..73ddccbbd5 100644
--- a/xen/include/xen/types.h
+++ b/xen/include/xen/types.h
@@ -44,6 +44,7 @@ typedef __UINTPTR_TYPE__ uintptr_t;
 #define UINT8_MAX       (255)
 #define UINT16_MAX      (65535)
 #define UINT32_MAX      (4294967295U)
+#define UINT64_MAX      (18446744073709551615ULL)
 
 #define INT_MAX         ((int)(~0U>>1))
 #define INT_MIN         (-INT_MAX - 1)
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Wed Apr 16 21:29:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 21:29:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.956557.1349931 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5AJz-0001vs-RU; Wed, 16 Apr 2025 21:29:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 956557.1349931; Wed, 16 Apr 2025 21:29:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5AJz-0001vl-OG; Wed, 16 Apr 2025 21:29:27 +0000
Received: by outflank-mailman (input) for mailman id 956557;
 Wed, 16 Apr 2025 21:29:26 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=M5uj=XC=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1u5AJy-0001ht-B2
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 21:29:26 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on2062a.outbound.protection.outlook.com
 [2a01:111:f403:2414::62a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id dd74abfa-1b09-11f0-9ffb-bf95429c2676;
 Wed, 16 Apr 2025 23:29:24 +0200 (CEST)
Received: from DM6PR07CA0132.namprd07.prod.outlook.com (2603:10b6:5:330::25)
 by MW4PR12MB6974.namprd12.prod.outlook.com (2603:10b6:303:207::18) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.24; Wed, 16 Apr
 2025 21:29:17 +0000
Received: from DS1PEPF00017096.namprd05.prod.outlook.com
 (2603:10b6:5:330:cafe::d1) by DM6PR07CA0132.outlook.office365.com
 (2603:10b6:5:330::25) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.15 via Frontend Transport; Wed,
 16 Apr 2025 21:29:17 +0000
Received: from SATLEXMB04.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.8655.12 via Frontend Transport; Wed, 16 Apr 2025 21:29:16 +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, 16 Apr
 2025 16:29:15 -0500
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, 16 Apr
 2025 16:29:15 -0500
Received: from fedora.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; Wed, 16 Apr 2025 16:29:14 -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: dd74abfa-1b09-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=CkcoCJ4UwGEbi1KBUd40fRmlEgt3f0L6AlHQm9j7Hip/anLkmCOEmMA1V41H/PeGqVPrdl+pGbewXz77US1JmwAOvICRFlVizM1C29Po8QpU3qAp4S69eaa4oZX6bp5l56UQDVzQfoKqDc6txYDE27mkL5xh8BMcHlh99q8NE3++hzGu4viX0jiVX8cSecJfBJetioYF0FsPX5PbuRjOs+3aq+HUejqxemnL5e6GXLKAxMmkQcktX33+/T2J9Gvuy8B1pkvPjZtEeTTEBwSbtZINl6+5ACCNTKJblM9duphMCKSqiSN8Eup5w21hziw+4zicjbyKMcTRUzFwdt1jNg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=tIRm+gVOiD/R0teBKb+/Yy7EcO5lotdHtN+tWKBu7mk=;
 b=Loegm3rnxnr0FkAb+MFJxPn2QOXKCsqBrO1yz2lAqsdi2rJLGVkicBFDadgBB50rzjxoYX1dTJaEuxBktXhRVbk4uPAjkW46qXJb+TK+rN6XOirRobujj2GdpFSTCDnNBLKTmBC6kIIJROltt2ZLEaThjcQPxR4FyWVR7r8X/z0U7WHHWhCwxTNLgTIDVHZqWUlLDAtufH+nBHR5KTYh3dTEPOR4NiIL3Rrcn5/AWgVLpn7yRjnlWk0Scahy5OP4Uurje6pvEA68SRDmxRweUPXiWZdpZBvO6J/fXmtQzqEIcoUA0rZM8Nh5pJj6mY4L7fePLwIbdQeFCv2JcRhQ4Q==
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=tIRm+gVOiD/R0teBKb+/Yy7EcO5lotdHtN+tWKBu7mk=;
 b=zeQ1xvnmwwcwyx7baPE76RCnKEbuBm/+CI9u9tLTWb2io8sS0OsdpkyDdJrs568Arpy/mdz2U2SuSM0zd147bDNzMtxTl+kd+sPcw4pCFqri3IkdQz1ilP3UryZFZ/yROCy+fBujkg3wT6IIOJzpc5hrNjnq0V/ZO0EbFKor7ms=
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: "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>, "Volodymyr
 Babchuk" <Volodymyr_Babchuk@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, "Jan
 Beulich" <jbeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Jason Andryuk <jason.andryuk@amd.com>
Subject: [PATCH v5 1/7] xen: introduce hardware domain create flag
Date: Wed, 16 Apr 2025 17:29:05 -0400
Message-ID: <20250416212911.410946-2-jason.andryuk@amd.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250416212911.410946-1-jason.andryuk@amd.com>
References: <20250416212911.410946-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: DS1PEPF00017096:EE_|MW4PR12MB6974:EE_
X-MS-Office365-Filtering-Correlation-Id: 6b9b35f4-153e-428f-7796-08dd7d2dbdbe
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|1800799024|82310400026|7416014|376014;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?oTkWj5b2n4p2k2FRYSg8kfLH4AJVDGhzasTTOBWY6RW5/XeUbA4/XJy0/vGG?=
 =?us-ascii?Q?mwxpDzqnjviBm+S4Od/RINCB/IchlmtwoBQfxYzehyVD/5InlUVgJur3mgSj?=
 =?us-ascii?Q?Vdl0bWQj722Tf3dgGlpP11JfXM8id0gviQyCZUrakQvnNXd4PKLPdGl0RZjI?=
 =?us-ascii?Q?6uE52xiZIqpkG2ZJqAJEPJEkYJ5BSJBgl/1dMuK9f+Y5MmnhaorUzzlQ4zOU?=
 =?us-ascii?Q?27cRrsbG4WjAzTzSWqy1ZQxw9+vv53rAS0u4zLliQoElKGwySUoCz3tm/IhK?=
 =?us-ascii?Q?0FDRzPhnvdueA9v0sZWdDEpGMxajcq8tGWx83avYdt7YcD5ly6XOuTQVK7uk?=
 =?us-ascii?Q?C9ATIjIdCEkR4VaACTA+tH1Ko/pTGpwnT4IcGSOS5kyIQPdbz0oVUWhE8dvH?=
 =?us-ascii?Q?NqrUo9b3P6oDMLeEtJTDa37R17lANjl5sTPvElOvSEBCAgtsUZgtZqnyyVGL?=
 =?us-ascii?Q?QhF2775cjlXIWMOntpHz6wEipEVyodSoV2M4GfruMCSJOM/j4PAk20SjRuyr?=
 =?us-ascii?Q?/1hCB/xMbhQB1JBESfWLgZ1Q2FC6XpAJF6c5Vov6HhEP0mE/PyF/axCiENRT?=
 =?us-ascii?Q?mkuwgU/poPfvBN9ReBF+qnloed9vcn3WaWBwGAqvMvdoa+yozFTAfdfZPStO?=
 =?us-ascii?Q?iwRX4TxUPYsADAaaRiDF9RC5zGPITMYY1iBy9y6rHJlLq35FzrDnSRDzp+JZ?=
 =?us-ascii?Q?dosFrvjFJ9+zDeDKliNSheXCOHO1N27mLeP+GaRf3R0TcT5Wlk89W+y2LMXg?=
 =?us-ascii?Q?5/K9D1iv9Fzcs0pQ5rH2YsXrTQr0aoxMAqAOvVUsVBJvhys4i6mU7ckYPt+F?=
 =?us-ascii?Q?FyZApLu2nEOEhkY/mS9t/28m5pHf0JveVgj28K+0TQWJGxYdq9Qbauqxq5tY?=
 =?us-ascii?Q?qaLKPJzfompd+KeeOdZCNR71eA92Ncv4p4tWbX/Rz5qisuJhMp47HUr2w+bp?=
 =?us-ascii?Q?GiMj/Ym39IN+Ptalkp1MXf/f8KI6e0YPeWQWFZSZOfo9o+ceKrHt2XdwoZob?=
 =?us-ascii?Q?zOUCOFV9z0dOgOfwqCO4TtWUY78OwKxdKxeocYY8Zs5X2ryw/h4wdN1xGG/n?=
 =?us-ascii?Q?/qREid5A93WPaSZypZKDnOy6p0f4mjS1kMwIeZXcFaQFSCrwywTEDEYrFcjV?=
 =?us-ascii?Q?wrZHSD4wuJL6QUlkPjh5ce9grELhURyFRL9/nkeu1HygVhFJozHwjddps9Xs?=
 =?us-ascii?Q?v5ITiH8tWF4C6NA3ru8DwBaINFcJ5vGIO4lbBhcr8h6nU5Orw6PLaCwGuUML?=
 =?us-ascii?Q?3SlM/Til5whZF2BRLhNDQRmsRO8rWNo6xEWmRTcTWPisx7Ri6bWGyBK+JIF5?=
 =?us-ascii?Q?GlcJMOhlHjM6vCOqJ50Qj/LuouFwZCHBR0HxvWMxH7JNHfEJtTBhHDy5/9mS?=
 =?us-ascii?Q?1SdUyQQSw4uPha/d9Tcl8TynnjD7EtjJsvB6HhXoROIBbR7j4cnyjRx4x7ay?=
 =?us-ascii?Q?/MiJLYQaMM4cKMeB+2cOsFRAsGrzn8ICT6yw22wiV5QgOma9RA2OBHinSRlt?=
 =?us-ascii?Q?7XtYZtYiCwX5vvQ98embEZMHRaRbsZpuJveI?=
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)(7416014)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Apr 2025 21:29:16.6073
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 6b9b35f4-153e-428f-7796-08dd7d2dbdbe
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:
	DS1PEPF00017096.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR12MB6974

From: "Daniel P. Smith" <dpsmith@apertussolutions.com>

Add and use a new internal create domain flag to specify the hardware
domain.  This removes the hardcoding of domid 0 as the hardware domain.

This allows more flexibility with domain creation.

The assignment of d->cdf is moved later so CDF_hardware is added for the
late_hwdom case.  Also old_hwdom has the flag removed to reflect the
change.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
---
v5:
Restore CDF_hardware to old_hwdom on error
Add Jan's R-b
Rebase bd->domid addition

v4:
Move d->cdf assignment later
Remove Jan's R-b

v3:
Or-in CDF_hardware for late hwdom case
Add Jan's R-b

v2:
() around binary &
Only allow late_hwdom for dom0
---
 xen/arch/arm/domain_build.c |  2 +-
 xen/arch/x86/setup.c        |  3 ++-
 xen/common/domain.c         | 19 +++++++++++++++----
 xen/include/xen/domain.h    |  2 ++
 4 files changed, 20 insertions(+), 6 deletions(-)

diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index 634333cdde..b8f282ff10 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -2369,7 +2369,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;
+    unsigned int flags = CDF_privileged | CDF_hardware;
     int rc;
 
     /* The vGIC for DOM0 is exactly emulating the hardware GIC */
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 3c257f0bad..24b36c1a59 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -1011,7 +1011,8 @@ static struct domain *__init create_dom0(struct boot_info *bi)
 
     /* Create initial domain.  Not d0 for pvshim. */
     bd->domid = get_initial_domain_id();
-    d = domain_create(bd->domid, &dom0_cfg, pv_shim ? 0 : CDF_privileged);
+    d = domain_create(bd->domid, &dom0_cfg,
+                      pv_shim ? 0 : CDF_privileged | CDF_hardware);
     if ( IS_ERR(d) )
         panic("Error creating d%u: %ld\n", bd->domid, PTR_ERR(d));
 
diff --git a/xen/common/domain.c b/xen/common/domain.c
index 585fd726a9..abf1969e60 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -804,9 +804,6 @@ struct domain *domain_create(domid_t domid,
     d->domain_id = domid;
     d->unique_id = get_unique_id();
 
-    /* Holding CDF_* internal flags. */
-    d->cdf = flags;
-
     /* Debug sanity. */
     ASSERT(is_system_domain(d) ? config == NULL : config != NULL);
 
@@ -820,15 +817,25 @@ struct domain *domain_create(domid_t domid,
     d->is_privileged = flags & CDF_privileged;
 
     /* Sort out our idea of is_hardware_domain(). */
-    if ( domid == 0 || domid == hardware_domid )
+    if ( (flags & CDF_hardware) || domid == hardware_domid )
     {
         if ( hardware_domid < 0 || hardware_domid >= DOMID_FIRST_RESERVED )
             panic("The value of hardware_dom must be a valid domain ID\n");
 
+        /* late_hwdom is only allowed for dom0. */
+        if ( hardware_domain && hardware_domain->domain_id )
+            return ERR_PTR(-EINVAL);
+
         old_hwdom = hardware_domain;
         hardware_domain = d;
+        flags |= CDF_hardware;
+        if ( old_hwdom )
+            old_hwdom->cdf &= ~CDF_hardware;
     }
 
+    /* Holding CDF_* internal flags. */
+    d->cdf = flags;
+
     TRACE_TIME(TRC_DOM0_DOM_ADD, d->domain_id);
 
     lock_profile_register_struct(LOCKPROF_TYPE_PERDOM, d, domid);
@@ -973,7 +980,11 @@ struct domain *domain_create(domid_t domid,
 
     d->is_dying = DOMDYING_dead;
     if ( hardware_domain == d )
+    {
+        if ( old_hwdom )
+            old_hwdom->cdf |= CDF_hardware;
         hardware_domain = old_hwdom;
+    }
     atomic_set(&d->refcnt, DOMAIN_DESTROYED);
 
     sched_destroy_domain(d);
diff --git a/xen/include/xen/domain.h b/xen/include/xen/domain.h
index a34daa7d10..e10baf2615 100644
--- a/xen/include/xen/domain.h
+++ b/xen/include/xen/domain.h
@@ -53,6 +53,8 @@ domid_t get_initial_domain_id(void);
 #else
 #define CDF_staticmem            0
 #endif
+/* This is the hardware domain.  Only 1 allowed. */
+#define CDF_hardware             (1U << 3)
 
 #define is_domain_direct_mapped(d) ((d)->cdf & CDF_directmap)
 #define is_domain_using_staticmem(d) ((d)->cdf & CDF_staticmem)
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Wed Apr 16 21:29:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 21:29:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.956563.1349991 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5AK6-0003Ot-Rn; Wed, 16 Apr 2025 21:29:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 956563.1349991; Wed, 16 Apr 2025 21:29: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 1u5AK6-0003Ob-ND; Wed, 16 Apr 2025 21:29:34 +0000
Received: by outflank-mailman (input) for mailman id 956563;
 Wed, 16 Apr 2025 21:29: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=M5uj=XC=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1u5AK5-0001ht-IJ
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 21:29:33 +0000
Received: from NAM02-SN1-obe.outbound.protection.outlook.com
 (mail-sn1nam02on20613.outbound.protection.outlook.com
 [2a01:111:f403:2406::613])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e1bd295a-1b09-11f0-9ffb-bf95429c2676;
 Wed, 16 Apr 2025 23:29:31 +0200 (CEST)
Received: from CH2PR05CA0012.namprd05.prod.outlook.com (2603:10b6:610::25) 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.8655.22; Wed, 16 Apr 2025 21:29:28 +0000
Received: from CH2PEPF00000148.namprd02.prod.outlook.com
 (2603:10b6:610:0:cafe::e8) by CH2PR05CA0012.outlook.office365.com
 (2603:10b6:610::25) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.10 via Frontend Transport; Wed,
 16 Apr 2025 21:29:28 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CH2PEPF00000148.mail.protection.outlook.com (10.167.244.105) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Wed, 16 Apr 2025 21:29:27 +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, 16 Apr
 2025 16:29:23 -0500
Received: from fedora.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; Wed, 16 Apr 2025 16:29:23 -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: e1bd295a-1b09-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=X7iuRiEVa3tmrzgNjMsEMoMBcsjWESCz19rWXneH+v9tboejp7PH0jI1Sp1qm70BoP1MX6r/mhnKs7eAEBznV8D+S2IRGKeOjDIt5W4snNKm4gsiqLJjABkKYL5rz3uJiXUl8NhcrdZ10HtpK4Wpe9vZn2Cm3jJFMn0j7FEKoNsq72BG2zrEs9k2Cw+Gebegi+GvSb+VD1xrIDIh+lMODnfXtnlSUCl7zzwA789QevrZFJxNf4wKE1tRVIds5UyNMhboMfzDoua1cbKSSD/p3s/rPhRq0ZbFkGPYGsuPnu5OStcoTkm6EVrDRnhxVyvnvFPxBBPSI9p4ywVpj2fz8Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=09rwyClN5j/y7PazveIKBFlQyjWEK4qhJSYEP0CrVFo=;
 b=NvqwYDIkNDGYTNRvgLyL+z7GAtfK2A/ToGCLt0dQxy2v9YACp5waH3ehuX/tlvZ0I6qDdm/isQ35gapOvfayyFgng6xnuMlygalkcuaGOlGcGi119BxCQgNnZtIC19SDIKGTbm26bZtWVBKh676u0I4pxWaK4Ghby6OobETuwa+Fo1j6mzSke+Uu2jKFaYoUMO2UV1QcbwEF+FwJguBxqLDJSIBqt4P8P+BUq9SWaoGoIHnRq00woUNnaELanyoWwg98BFsX2r6kYOfloGCy6k5GJ3pZ6FIOqXp/Or8Scc7l2wKAwXuZn1c/fvNxMOsN9RGE5mG43W1qJYFXZhLt8A==
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=09rwyClN5j/y7PazveIKBFlQyjWEK4qhJSYEP0CrVFo=;
 b=omG09VR3kpwgAs8eynCLG92ZIFhcVA00bBd+j05dzIwtFgQaLM3X7Ekj1kEgJEJq6ud1wczw9p4wZDkzP2mDLAIZPlfOkaq/qMEGF4255KycwjLmCL6RN8mr0o/B964HIRNzplzIoAq8P39bMuLNiSMHwh0XhkdG5MM+5qcbOKI=
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>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, "Volodymyr
 Babchuk" <Volodymyr_Babchuk@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, "Jan
 Beulich" <jbeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>
Subject: [PATCH v5 7/7] xen/arm: Add capabilities to dom0less
Date: Wed, 16 Apr 2025 17:29:11 -0400
Message-ID: <20250416212911.410946-8-jason.andryuk@amd.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250416212911.410946-1-jason.andryuk@amd.com>
References: <20250416212911.410946-1-jason.andryuk@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
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: CH2PEPF00000148:EE_|DS7PR12MB8202:EE_
X-MS-Office365-Filtering-Correlation-Id: 471d9b9c-bba0-4136-8b09-08dd7d2dc444
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|1800799024|376014|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?+gWi0IRbnOkdJXrXAsf7ikDIiHo5IgEzaJF0ZUzeEMJ8SZXJJfiyuZ59vcCs?=
 =?us-ascii?Q?C70d0dour4aSwUdnTUqVDTIoM2u/n1hFz80kZq0kUU9nBukgmcBvHfAeNFOS?=
 =?us-ascii?Q?xLfcuSMzt3tcyBdBxDKcG0LBFAWMvkUKnmIcnh9Af+ejnXN84asJFlcaomL6?=
 =?us-ascii?Q?MAqtUOWgBP75VMJN1Ll1ETVZvKE5Z24+X4rInm9IzhO82XNNes9wDNYquutE?=
 =?us-ascii?Q?s1LgK1s+TWHcjbeatoBUsQpDT+5jLYX7QMWvmQzIKwi47CcwG55yoMbv+obc?=
 =?us-ascii?Q?fpLH1xMWsBnjXOwKUHi2q5KyrCI+C56M9ykYBPBMAFdI2Fm657z/x6TKkK8R?=
 =?us-ascii?Q?5FEKaiFGy87aNJj33/f7LfCwRxL6KmdrTw96WPWi+/IZ3Wwt+CX2T5BmX+Kn?=
 =?us-ascii?Q?4ytIFZRMwNR22htna0tHHOh7M+czssp/y52MOKJZ1dlJ8aAc+pBc44MNoSmV?=
 =?us-ascii?Q?C6dr3K1XvL+FSxDyLEPs2J7W701azAotSA7XLsuUPHgVmw19fXfsRqe9izUn?=
 =?us-ascii?Q?ZX7FCIRdlRdNx0GgN4YJrcRk8TeCAaWAJ6W0e10JzY+3dH3jfMc3rqJue1/f?=
 =?us-ascii?Q?GoPzZ/qLK/QqOD4idKXvQove5bKYJ/ZG2Zs2C9XuZPTzy8snXjou6Vxp2O8O?=
 =?us-ascii?Q?koh16UCNerRL+GvpoOeEsH0NGjwQcCKN3EQ2wFHuJ009XzT9JUqIeoE8SXTy?=
 =?us-ascii?Q?PrtMt3D4IFis7Rlf/JwUNzdKBFp4VM+lI4ZAmRR2LrFvsbH2haSNDP2X/TDf?=
 =?us-ascii?Q?oOPFa6rtDkB+VspSlyFFXfxSzRoOJwjmR9EsVQ3mjaW9ldFlRgrFQnBAmxr6?=
 =?us-ascii?Q?i9XIRHKV8O0tvR3z4qCyIDSRPM/h5Qn+63Sp2pPU/BMtUUExjYARIMnUOV+I?=
 =?us-ascii?Q?KYYX4yldnLmzs5O/qfC75YEfGTIzbUcvCaq42deSSOYLcs8ZCFzN8F05Uq8v?=
 =?us-ascii?Q?PbPOor59bgL2t7hwFx9Yq3XADYpGgJwANxXGjQtXLdRJYQFjMfhrKIpTEItq?=
 =?us-ascii?Q?Aj6He98ta7IqPntFWaphSgJP9mHergy9Tyy9tJ1aQ03a0kNyxNmcJX8OOFfD?=
 =?us-ascii?Q?YD2cIIAh8fB1hg+7CFNFKVc4ZggPxFrh9RjIrvJ7wpta8xvErjocZsPhI4pG?=
 =?us-ascii?Q?mBvYtE8IX9gDKsJOylI6ajp3HOJNcyLz/A5XWYt4ALo46151cyrP2aYRV84T?=
 =?us-ascii?Q?CqpBVjNAd5gIdh5VnoB5ew2mUYCoKfsPh/brP9RlHKBH958Iw7JHzhz6gi3i?=
 =?us-ascii?Q?2Jd1LRA7orDXhKk4MexZWkzzNPQqp3ia5fiavZvAEo3tAp1cMU+IkCuJP1P6?=
 =?us-ascii?Q?M5i6tCETdmyfjASiVslaTbKqrx/KueD4XKUPVc9XVWp8gnepPI1/FhcPzpDg?=
 =?us-ascii?Q?3o/n39ox0jfqgRU+lXfDmwNSKg5jxBmEIuW9XAdYEtfeisLGgV5ODksHt3nH?=
 =?us-ascii?Q?82ZjloJDieuADGfUA70UHz45+r7UH2f72OZMVFg2QcmKvfD368OqrORgzVLL?=
 =?us-ascii?Q?/RCzWgfZsnj9O+hrKcjS4HEH6XSsR4yudiaw?=
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: 16 Apr 2025 21:29:27.5680
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 471d9b9c-bba0-4136-8b09-08dd7d2dc444
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:
	CH2PEPF00000148.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB8202

Add a capabilities property to dom0less to allow building a
disaggregated system.  Only a single hardware domain and single xenstore
domain can be specified.  Multiple control domains are possible.

Introduce bootfdt.h to contain these constants.

When using the hardware or xenstore capabilities, adjust the grant and
event channel limits similar to dom0.

For a hardware domain, disallow specifying "vpl011", "nr_spis",
"multiboot,device-tree" and "passthrough" nodes.  Also, require an IOMMU
when not direct-mapped,

Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
---
v5:
No change

v4:
Add Stefano R-b

v3:
Specify 32bit integer in booting.txt & s/all all/all/
Panic on !direct-map && !iommu
Panic "multiboot,device-tree" or "passthrough" with hardware domain
Include asm/grant_table.h for CONFIG_GRANT_TABLE=n

v2:
Fix comment style
Make DOMAIN_CAPS_* unsigned
Remove forced directmap & iommu
Require iommu with use of hardware domain
Limit to a single xenstore domain

There is overlap with hyperlaunch.  The numeric values are the same.
Hyperlaunch doesn't expose the values in a public header as done here.
Is this to be expected for dom0less?  It seems most of dom0less isn't in
a header, but just in docs.

Hyperlaunch uses BUILD_CAPS_, but I chose DOMAIN_CAPS_ since there are
domain-level capabilities.

Only a single xenstore and hardware domain make sense.  Hardware domain
receiving all hardware can only have a single domain.

For Xenstore, the logic latches the single xs_domid and uses that for
all domains.  Also, only a single domain can register for VIRQ_DOM_EXC.
---
 docs/misc/arm/device-tree/booting.txt | 11 ++++++
 xen/arch/arm/dom0less-build.c         | 57 +++++++++++++++++++++++++--
 xen/arch/arm/domain.c                 |  3 +-
 xen/include/public/bootfdt.h          | 31 +++++++++++++++
 4 files changed, 98 insertions(+), 4 deletions(-)
 create mode 100644 xen/include/public/bootfdt.h

diff --git a/docs/misc/arm/device-tree/booting.txt b/docs/misc/arm/device-tree/booting.txt
index ac781c9cc8..59fa96a82e 100644
--- a/docs/misc/arm/device-tree/booting.txt
+++ b/docs/misc/arm/device-tree/booting.txt
@@ -167,6 +167,17 @@ with the following properties:
     Refer to docs/misc/cache_coloring.rst for syntax. This option is applicable
     only to Arm64 guests.
 
+- capabilities
+    Optional.  A 32-bit integer representing a bit field of domain capabilities
+    for a disaggregated system.  A traditional dom0 has all of these
+    capabilities, and a domU has none of them.
+
+    0x1 DOMAIN_CAPS_CONTROL  - A privileged, control domain
+    0x2 DOMAIN_CAPS_HARDWARE - The hardware domain - there can be only 1
+    0x4 DOMAIN_CAPS_XENSTORE - The xenstore domain - there can be only 1
+
+    The default is no capabilities.
+
 - vpl011
 
     An empty property to enable/disable a virtual pl011 for the guest to
diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
index 50d2d3e4e4..a356fc94fc 100644
--- a/xen/arch/arm/dom0less-build.c
+++ b/xen/arch/arm/dom0less-build.c
@@ -12,11 +12,13 @@
 #include <xen/sizes.h>
 #include <xen/vmap.h>
 
+#include <public/bootfdt.h>
 #include <public/io/xs_wire.h>
 
 #include <asm/arm64/sve.h>
 #include <asm/dom0less-build.h>
 #include <asm/domain_build.h>
+#include <asm/grant_table.h>
 #include <asm/static-memory.h>
 #include <asm/static-shmem.h>
 
@@ -928,6 +930,8 @@ static int __init construct_domU(struct domain *d,
            d->max_vcpus, mem);
 
     kinfo.vpl011 = dt_property_read_bool(node, "vpl011");
+    if ( kinfo.vpl011 && is_hardware_domain(d) )
+        panic("hardware domain cannot specify vpl011\n");
 
     rc = dt_property_read_string(node, "xen,enhanced", &dom0less_enhanced);
     if ( rc == -EILSEQ ||
@@ -1043,6 +1047,37 @@ void __init create_domUs(void)
         if ( (max_init_domid + 1) >= DOMID_FIRST_RESERVED )
             panic("No more domain IDs available\n");
 
+        if ( dt_property_read_u32(node, "capabilities", &val) )
+        {
+            if ( val & ~DOMAIN_CAPS_MASK )
+                panic("Invalid capabilities (%"PRIx32")\n", val);
+
+            if ( val & DOMAIN_CAPS_CONTROL )
+                flags |= CDF_privileged;
+
+            if ( val & DOMAIN_CAPS_HARDWARE )
+            {
+                if ( hardware_domain )
+                    panic("Only 1 hardware domain can be specified! (%pd)\n",
+                           hardware_domain);
+
+                d_cfg.max_grant_frames = gnttab_dom0_frames();
+                d_cfg.max_evtchn_port = -1;
+                flags |= CDF_hardware;
+                iommu = true;
+            }
+
+            if ( val & DOMAIN_CAPS_XENSTORE )
+            {
+                if ( xs_domid != DOMID_INVALID )
+                    panic("Only 1 xenstore domain can be specified! (%u)\n",
+                          xs_domid);
+
+                d_cfg.flags |= XEN_DOMCTL_CDF_xs_domain;
+                d_cfg.max_evtchn_port = -1;
+            }
+        }
+
         if ( dt_find_property(node, "xen,static-mem", NULL) )
         {
             if ( llc_coloring_enabled )
@@ -1064,12 +1099,26 @@ void __init create_domUs(void)
             panic("Missing property 'cpus' for domain %s\n",
                   dt_node_name(node));
 
-        if ( !dt_property_read_string(node, "passthrough", &dom0less_iommu) &&
-             !strcmp(dom0less_iommu, "enabled") )
-            iommu = true;
+        if ( !dt_property_read_string(node, "passthrough", &dom0less_iommu) )
+        {
+            if ( flags & CDF_hardware )
+                panic("Don't specify passthrough for hardware domain\n");
+
+            if ( !strcmp(dom0less_iommu, "enabled") )
+                iommu = true;
+        }
+
+        if ( (flags & CDF_hardware) && !(flags & CDF_directmap) &&
+             !iommu_enabled )
+            panic("non-direct mapped hardware domain requires iommu\n");
 
         if ( dt_find_compatible_node(node, NULL, "multiboot,device-tree") )
+        {
+            if ( flags & CDF_hardware )
+                panic("\"multiboot,device-tree\" incompatible with hardware domain\n");
+
             has_dtb = true;
+        }
 
         if ( iommu_enabled && (iommu || has_dtb) )
             d_cfg.flags |= XEN_DOMCTL_CDF_iommu;
@@ -1106,6 +1155,8 @@ void __init create_domUs(void)
                 d_cfg.arch.nr_spis = MAX(d_cfg.arch.nr_spis,
                                          vpl011_virq - 32 + 1);
         }
+        else if ( flags & CDF_hardware )
+            panic("nr_spis cannot be specified for hardware domain\n");
 
         /* Get the optional property domain-cpupool */
         cpupool_node = dt_parse_phandle(node, "domain-cpupool", 0);
diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
index 3ba959f866..dc4b4e84c1 100644
--- a/xen/arch/arm/domain.c
+++ b/xen/arch/arm/domain.c
@@ -608,7 +608,8 @@ 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_optional = (XEN_DOMCTL_CDF_iommu | XEN_DOMCTL_CDF_vpmu |
+                                   XEN_DOMCTL_CDF_xs_domain );
     unsigned int sve_vl_bits = sve_decode_vl(config->arch.sve_vl);
 
     if ( (config->flags & ~flags_optional) != flags_required )
diff --git a/xen/include/public/bootfdt.h b/xen/include/public/bootfdt.h
new file mode 100644
index 0000000000..86c46b42a9
--- /dev/null
+++ b/xen/include/public/bootfdt.h
@@ -0,0 +1,31 @@
+/* SPDX-License-Identifier: MIT */
+/*
+ * Xen Device Tree boot information
+ *
+ * Information for configuring Xen domains created at boot time.
+ */
+
+#ifndef __XEN_PUBLIC_BOOTFDT_H__
+#define __XEN_PUBLIC_BOOTFDT_H__
+
+/*
+ * Domain Capabilities specified in the "capabilities" property.  Use of
+ * this property allows splitting up the monolithic dom0 into separate,
+ * less privileged components.  A regular domU has no capabilities
+ * (which is the default if nothing is specified).  A traditional dom0
+ * has all three capabilities.
+ */
+
+/* Control/Privileged domain capable of affecting other domains. */
+#define DOMAIN_CAPS_CONTROL  (1U << 0)
+/*
+ * Hardware domain controlling physical hardware.  Typically providing
+ * backends to other domains.
+ */
+#define DOMAIN_CAPS_HARDWARE (1U << 1)
+/* Xenstore domain. */
+#define DOMAIN_CAPS_XENSTORE (1U << 2)
+#define DOMAIN_CAPS_MASK     (DOMAIN_CAPS_CONTROL | DOMAIN_CAPS_HARDWARE | \
+                              DOMAIN_CAPS_XENSTORE)
+
+#endif /* __XEN_PUBLIC_BOOTFDT_H__ */
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Wed Apr 16 21:29:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 21:29:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.956556.1349921 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5AJy-0001iB-L9; Wed, 16 Apr 2025 21:29:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 956556.1349921; Wed, 16 Apr 2025 21:29: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 1u5AJy-0001i4-HT; Wed, 16 Apr 2025 21:29:26 +0000
Received: by outflank-mailman (input) for mailman id 956556;
 Wed, 16 Apr 2025 21:29: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=M5uj=XC=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1u5AJx-0001ht-4j
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 21:29:25 +0000
Received: from NAM10-BN7-obe.outbound.protection.outlook.com
 (mail-bn7nam10on2060d.outbound.protection.outlook.com
 [2a01:111:f403:2009::60d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id dcb2bd7e-1b09-11f0-9ffb-bf95429c2676;
 Wed, 16 Apr 2025 23:29:23 +0200 (CEST)
Received: from BN0PR03CA0024.namprd03.prod.outlook.com (2603:10b6:408:e6::29)
 by DS0PR12MB7510.namprd12.prod.outlook.com (2603:10b6:8:132::20) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.32; Wed, 16 Apr
 2025 21:29:19 +0000
Received: from BN3PEPF0000B374.namprd21.prod.outlook.com
 (2603:10b6:408:e6:cafe::97) by BN0PR03CA0024.outlook.office365.com
 (2603:10b6:408:e6::29) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.22 via Frontend Transport; Wed,
 16 Apr 2025 21:29:19 +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.8678.4 via Frontend Transport; Wed, 16 Apr 2025 21:29: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, 16 Apr
 2025 16:29:18 -0500
Received: from fedora.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; Wed, 16 Apr 2025 16:29:17 -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: dcb2bd7e-1b09-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=tE0MaZPRvHIFFL6fJLJtsSyCM+Zgp9Hoo0bESGpBeIFd4K0LGFsLHmJdDmb1n8sLv9fLYu778rAdZ8KO14sMPGVLXF7Ndpr2dEMq3bjD2qZmQzgB5VLCQatQE/rIRmbgy/MVjYPv5yHw+NQrd94E4dS0cDcj0B8HxHotwpKt6oAKjMVybxkOXgcATdm77UKvEUKZcwu/AipF9AfjSajAcBbPFASm4Y6zQlkHqDHhI8NmjeU708RGpOsB+6zq/wxzuFV33WoOhuNaMn5xPLNIrZb9fWvb6IGbA77w2+K/JCaifZC4R6wHX0qT2aIqt3pkJO9jN5QEiW+tkAgHmrh9Vg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Hb+EANq+WOOIYm4SaGYyUfxwcKnfbKSADWxYlc7gxso=;
 b=oVZl1+NPp9ixM2UOtVcGeM0NScZ6WP5WX/Nln9H5ilz2V7bcFiNVcrpKEQMkgkkImJha3RjOuVVJbvsKVu7GdpWThm6c606cJd4A1rlYqAJACCCRC906tuhTC+77UwONrqe1ws7KUJAU69Zw7s7ofXTMJVzYwDoWREPzhyBDP0QTpU/J1/pH8t7X43vNNHAj/W1/u0TlcMGsqxPHzmcJ1gZBDUSpTsjs3/XjhldGNT5hj8qrqylvF228XL0kU8Ui+ivV/zaHHn5W4o3KH8sTI8/8MC45REEyjYthJHrsGHvuK0GqFie4oug51pdsmGH2CWC7Zc6InscJuY9116+iug==
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=Hb+EANq+WOOIYm4SaGYyUfxwcKnfbKSADWxYlc7gxso=;
 b=HDdxJSGgTXPscneT5xkjqPqJICE82plnIT3luhYhIlNMnOZAuPvvWeWaOv3A7FYJWrHCYRUdw0fAwQ4ymd+ZoiWPDKXO2vFRq7DXX/z697PTkZ/fLCngKQbCKyclydFz/Nawrpqypz8rI4AL2QaZSfhPVUzYt8gptxZ43GKJRPA=
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>, 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 3/7] xen/arm: dom0less delay xenstore initialization
Date: Wed, 16 Apr 2025 17:29:07 -0400
Message-ID: <20250416212911.410946-4-jason.andryuk@amd.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250416212911.410946-1-jason.andryuk@amd.com>
References: <20250416212911.410946-1-jason.andryuk@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
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: BN3PEPF0000B374:EE_|DS0PR12MB7510:EE_
X-MS-Office365-Filtering-Correlation-Id: 51534c0c-7999-4151-4ea1-08dd7d2dbef5
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?iRGOR0EOn6+1cI5CpU4MXh1Ub83rDVYNS4EhLZiCxpdp9XetKPJ/nnDzp8VC?=
 =?us-ascii?Q?dBpB3H4tYlrKk1k5H9gY3ULCAdoUY6+uw9ZQcuZ8oBtcPHGaPwFVSDQUeXXX?=
 =?us-ascii?Q?hixwil+0OGrRmhwe5ait9rSN982o+QZ10nP7mReuPWynU3M+yV3JLHVnfmCk?=
 =?us-ascii?Q?IhTZRjqeyhXn5vQnBD2sUgkSBQxU5Tff/SAb0fS99rmaSnUOokdpBCfd7t2z?=
 =?us-ascii?Q?K7vpwBSn3nNIOYNFV5I7zWJaYyWKwCnQWFCBA0TNYX9oZaYs6i6u0BjgemD3?=
 =?us-ascii?Q?KA0YLP7AH8nv5is4Pr7u5VrTHO/PMGpIfRb11sReKaiJvtP5Zbf4BHU2OkPR?=
 =?us-ascii?Q?3gzm37UL8whKlFFwsn+bqqywPdkfPioTQ/dB5sks57yK+q7uT9rUXrA0aILq?=
 =?us-ascii?Q?I0uNUOtuTh8z7NJezhRJANIbuIxyaRPOmNSx5BwTwZTRsRneYByt+LjItwHU?=
 =?us-ascii?Q?EaqX5iunCM1ZvDUYGiNiaEvMY8uuiqRp2nmcUWjTJoHEJaMG92Mkr4GwQVf1?=
 =?us-ascii?Q?dV3cqfRFP84ZaS8z0wV60rp8UZA5QiT2XmIa1Obuss3fwTzky/aS6WR1ZVu9?=
 =?us-ascii?Q?VZf8bIqsEeLkenoZ4kVoU7jTwi/TeGwRzJHZQA6jgAWIlHXGrmduEjLau9Hi?=
 =?us-ascii?Q?GNEmN8mTqcpop/lsdffM8cpWOt/j4q1DdpATpfu7Nlkk5W2UPloqj7RHqatS?=
 =?us-ascii?Q?gkA3lCnJCZcYEea5CIuCsIComL5P0cl0tqwT9dHZlaPuLLWsz+3lXAauIBe9?=
 =?us-ascii?Q?PO5FG81tvSW9nBB5uzJfXZXBfO5bEJR08XFf+bsEt0/7nbPTkfdFNUYpkfJw?=
 =?us-ascii?Q?N7aHKLPi5qEckFY7IQWU1djgr7PYVJ9Pc7qWSHDb7pw63SbLMsMPyb7HNPzf?=
 =?us-ascii?Q?5DB9v2KNZa3BxUfgmHeX12SHo6XNb5mwRfBBtzk6YOnAEcZw2E68tc9j51Mi?=
 =?us-ascii?Q?he04h83VnNyY5z55f1J+BDfJ2c9qeWGDaE5K3L8+jaCIERhPg9HnBYoyd9VM?=
 =?us-ascii?Q?c8rL0mmF4LYJHurNA8/Q/vsd2CzV5MJcFJMdxNpoMNxtE9WGSGOsYW/Es4sr?=
 =?us-ascii?Q?MnHCFVRFVE4QSC2uOefza/LChEFBjDdM0zaAHXWFWn+7IfqkpYjtkKvuQt32?=
 =?us-ascii?Q?8dIseXjnBO11YkMlsnq9y/ZLMhmOMjLRvh7NE7gKbq0wv9pCHUwQZDoGxjow?=
 =?us-ascii?Q?nKDzTKO8wsnOjgIvMIslE5Mznq0wZDNEM9mvFV83KFdhzXdC9K1vrjEhePwS?=
 =?us-ascii?Q?ptZx/+PC1amL9aJF5UM/uqK5wk2itJFT5HaKQZfg/GTeclYAalCJbgSiVaeY?=
 =?us-ascii?Q?ikQes//LVn7mxZkfpr4Orgq+xxO2GEI9EL0nxkNUtIq8VE/NQmKHuJFTPImP?=
 =?us-ascii?Q?9iTCr8XBodUBVno1qeYFtSiXDWesGVUfwBD6FGnGXfY1MByCZ8r9HSkvIMw5?=
 =?us-ascii?Q?eQonl6Z4TzCJHtxYlIKBaIm7h40wx9mJ3XH+Mjg9lpYF9Cd5ni6Ff0+NSVvU?=
 =?us-ascii?Q?PPQHCiY4TO8YUBZg4Ifm0wNUyt+kUDmjqXjY?=
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: 16 Apr 2025 21:29:18.6786
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 51534c0c-7999-4151-4ea1-08dd7d2dbef5
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: DS0PR12MB7510

To allocate the xenstore event channel and initialize the grant table
entry, the xenstore domid is neeed.  A dom0 is created before the domUs,
so it is normally available through hardware_domain.  With capabilities
and dom0less, the xenstore domain may not be created first.

Keep the population of the page and HVM_PARAM_STORE_PFN in the normal
domain construction, but delay event channel creation and grant seeding
to after all domUs are created.  HVM_PARAM_STORE_PFN now serves as
indication to setup xenstore since the device tree is no longer
immediately available.  0 means no xenstore.  ~0ULL means legacy so only
the event channel needs setup, and any other value means to seed the
page.

dom0 needs to set xs_domid when it is serving as the xenstore domain.

The domain running xenstored needs to be the handler for VIRQ_DOM_EXC,
so set that as well - it otherwise defaults to hardware domain.

Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
---
v5:
No change

v4:
Add Stefano R-b

v3:
Use uint64_t to check for xenstore pfn read from HVM_PARAM
Rebase after mem paging changes

v2:
Re-order ahead of seeding.
Fix created type in commit message
Change set_xs_domid to set_xs_domain
Set xenstore domain as VIRQ_DOM_EXC handler
---
 xen/arch/arm/dom0less-build.c             | 67 +++++++++++++++++------
 xen/arch/arm/domain_build.c               |  2 +
 xen/arch/arm/include/asm/dom0less-build.h |  2 +
 3 files changed, 53 insertions(+), 18 deletions(-)

diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
index 7bc6a6c4d7..bb8cc3be43 100644
--- a/xen/arch/arm/dom0less-build.c
+++ b/xen/arch/arm/dom0less-build.c
@@ -20,6 +20,15 @@
 #include <asm/static-memory.h>
 #include <asm/static-shmem.h>
 
+static domid_t __initdata xs_domid = DOMID_INVALID;
+static bool __initdata need_xenstore;
+
+void __init set_xs_domain(struct domain *d)
+{
+    xs_domid = d->domain_id;
+    set_global_virq_handler(d, VIRQ_DOM_EXC);
+}
+
 bool __init is_dom0less_mode(void)
 {
     struct bootmodules *mods = &bootinfo.modules;
@@ -679,7 +688,7 @@ static int __init alloc_xenstore_evtchn(struct domain *d)
     int rc;
 
     alloc.dom = d->domain_id;
-    alloc.remote_dom = hardware_domain->domain_id;
+    alloc.remote_dom = xs_domid;
     rc = evtchn_alloc_unbound(&alloc, 0);
     if ( rc )
     {
@@ -745,16 +754,10 @@ static int __init alloc_xenstore_params(struct kernel_info *kinfo)
     struct domain *d = kinfo->d;
     int rc = 0;
 
-    if ( kinfo->dom0less_feature & (DOM0LESS_XENSTORE | DOM0LESS_XS_LEGACY) )
-    {
-        ASSERT(hardware_domain);
-        rc = alloc_xenstore_evtchn(d);
-        if ( rc < 0 )
-            return rc;
+    if ( (kinfo->dom0less_feature & (DOM0LESS_XENSTORE | DOM0LESS_XS_LEGACY))
+                                 == (DOM0LESS_XENSTORE | DOM0LESS_XS_LEGACY) )
         d->arch.hvm.params[HVM_PARAM_STORE_PFN] = ~0ULL;
-    }
-
-    if ( kinfo->dom0less_feature & DOM0LESS_XENSTORE )
+    else if ( kinfo->dom0less_feature & DOM0LESS_XENSTORE )
     {
         rc = alloc_xenstore_page(d);
         if ( rc < 0 )
@@ -764,6 +767,30 @@ static int __init alloc_xenstore_params(struct kernel_info *kinfo)
     return rc;
 }
 
+static void __init initialize_domU_xenstore(void)
+{
+    struct domain *d;
+
+    if ( xs_domid == DOMID_INVALID )
+        return;
+
+    for_each_domain( d )
+    {
+        uint64_t gfn = d->arch.hvm.params[HVM_PARAM_STORE_PFN];
+        int rc;
+
+        if ( gfn == 0 )
+            continue;
+
+        if ( is_xenstore_domain(d) )
+            continue;
+
+        rc = alloc_xenstore_evtchn(d);
+        if ( rc < 0 )
+            panic("%pd: Failed to allocate xenstore_evtchn\n", d);
+    }
+}
+
 static void __init domain_vcpu_affinity(struct domain *d,
                                         const struct dt_device_node *node)
 {
@@ -899,17 +926,13 @@ static int __init construct_domU(struct domain *d,
          rc == -ENODATA ||
          (rc == 0 && !strcmp(dom0less_enhanced, "enabled")) )
     {
-        if ( hardware_domain )
-            kinfo.dom0less_feature = DOM0LESS_ENHANCED;
-        else
-            panic("At the moment, Xenstore support requires dom0 to be present\n");
+        need_xenstore = true;
+        kinfo.dom0less_feature = DOM0LESS_ENHANCED;
     }
     else if ( rc == 0 && !strcmp(dom0less_enhanced, "legacy") )
     {
-        if ( hardware_domain )
-            kinfo.dom0less_feature = DOM0LESS_ENHANCED_LEGACY;
-        else
-            panic("At the moment, Xenstore support requires dom0 to be present\n");
+        need_xenstore = true;
+        kinfo.dom0less_feature = DOM0LESS_ENHANCED_LEGACY;
     }
     else if ( rc == 0 && !strcmp(dom0less_enhanced, "no-xenstore") )
         kinfo.dom0less_feature = DOM0LESS_ENHANCED_NO_XS;
@@ -1156,7 +1179,15 @@ void __init create_domUs(void)
         if ( rc )
             panic("Could not set up domain %s (rc = %d)\n",
                   dt_node_name(node), rc);
+
+        if ( d_cfg.flags & XEN_DOMCTL_CDF_xs_domain )
+            set_xs_domain(d);
     }
+
+    if ( need_xenstore && xs_domid == DOMID_INVALID )
+        panic("xenstore requested, but xenstore domain not present\n");
+
+    initialize_domU_xenstore();
 }
 
 /*
diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index 0a329f9f5e..270a6b97e4 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -2408,6 +2408,8 @@ void __init create_dom0(void)
     rc = construct_dom0(dom0);
     if ( rc )
         panic("Could not set up DOM0 guest OS (rc = %d)\n", rc);
+
+    set_xs_domain(dom0);
 }
 
 /*
diff --git a/xen/arch/arm/include/asm/dom0less-build.h b/xen/arch/arm/include/asm/dom0less-build.h
index 5864944bda..b0e41a1954 100644
--- a/xen/arch/arm/include/asm/dom0less-build.h
+++ b/xen/arch/arm/include/asm/dom0less-build.h
@@ -9,6 +9,7 @@
 
 void create_domUs(void);
 bool is_dom0less_mode(void);
+void set_xs_domain(struct domain *d);
 
 #else /* !CONFIG_DOM0LESS_BOOT */
 
@@ -17,6 +18,7 @@ static inline bool is_dom0less_mode(void)
 {
     return false;
 }
+static inline void set_xs_domain(struct domain *d) {}
 
 #endif /* CONFIG_DOM0LESS_BOOT */
 
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Wed Apr 16 21:29:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 21:29:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.956562.1349981 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5AK4-00036P-I5; Wed, 16 Apr 2025 21:29:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 956562.1349981; Wed, 16 Apr 2025 21:29: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 1u5AK4-00034p-Cp; Wed, 16 Apr 2025 21:29:32 +0000
Received: by outflank-mailman (input) for mailman id 956562;
 Wed, 16 Apr 2025 21:29: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=M5uj=XC=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1u5AK2-0001ht-QT
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 21:29:30 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on20631.outbound.protection.outlook.com
 [2a01:111:f403:2412::631])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id db43075a-1b09-11f0-9ffb-bf95429c2676;
 Wed, 16 Apr 2025 23:29:21 +0200 (CEST)
Received: from MN0P223CA0026.NAMP223.PROD.OUTLOOK.COM (2603:10b6:208:52b::12)
 by PH8PR12MB7208.namprd12.prod.outlook.com (2603:10b6:510:224::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.34; Wed, 16 Apr
 2025 21:29:14 +0000
Received: from BN3PEPF0000B36F.namprd21.prod.outlook.com
 (2603:10b6:208:52b:cafe::8f) by MN0P223CA0026.outlook.office365.com
 (2603:10b6:208:52b::12) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.22 via Frontend Transport; Wed,
 16 Apr 2025 21:29:14 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 BN3PEPF0000B36F.mail.protection.outlook.com (10.167.243.166) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8678.4 via Frontend Transport; Wed, 16 Apr 2025 21:29:14 +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, 16 Apr
 2025 16:29:13 -0500
Received: from fedora.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; Wed, 16 Apr 2025 16:29:12 -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: db43075a-1b09-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=cRplAWU6BfRBLaMYeA9HLUb6wJwGyClzUXKUoBn8ea9oEZRmalbUevX76sAxPavHr+LK+0XxAiLMEi6ZroPFZASn095IjbqBV84V46PBUs1jTXLF1QYKZiqJFuyUb3FjrKOGbxQXznsxbK/ptooxfydYyDmsGUFVW3E/4BSNhJzOJV4j4aciZfigdcVT5xfnknxl8ax+37dGa+uGq3Kt5EKCLS9KPyedXnKWecGe/a1F38HegrJINzvBL3gcNOzwIq5wEVpEeX6nYPgQPFtDGgJZ+H+3tIvGnlwTiRy5IEfMKL71KfGa6yAon6qutjkRJqJOSdi/Xq5rTFQ0FG7lwg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=sl42oGSVJ5tdONDIQTNmAmSgYy+P+a6JrWP+kdTHfEg=;
 b=VDRnIfp3qfqjzlpgc4RI+gRkWaTbDhVa96NbB6mYf+DI59Hsc7zfEy5kNB0ltV85orYNHVzdNFTurhsHybV5WhAJIkzN/w3sveC427PMmv0FXqZa300pOTcjt+Sgg/RshD2FUCUmh5r6k5zIMxDsVYxWX7aqU+Tvh4HczZwo4i/SDFru/STsSKEfY+FrivheHrSdUOnkrCLkF7kWw/fzyn5J083dB7OqpyRJSPJu7gyX3QMxw58RukmjV+v7t2vc/E5GnkG8r2DzPhyjXeXtkTeXTmc7Md0AhkAdAicfcolFGIdvTkSoujM0Be1jOhy+EYZ/Xeg+9678eDi/N1Z9Ew==
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=sl42oGSVJ5tdONDIQTNmAmSgYy+P+a6JrWP+kdTHfEg=;
 b=TCGArGucGAWhPA9jabi5Nowh//SjvnCTpSqLJtW7zt6EjRJYmkL9s+HelT/r/1b1I22RWV8Hdhxa99L0GYWfzJ8fdIxgH6KvCXbI+2Qhp4Olm5cDQ4H1AjhQZ5D3fUbXxOuNX1UC33cOgQjLxpp80OJ9F5LH2fOdqsEtuZ8OHGo=
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>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, "Volodymyr
 Babchuk" <Volodymyr_Babchuk@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, "Jan
 Beulich" <jbeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>
Subject: [PATCH v5 0/7] ARM split hardware and control domains
Date: Wed, 16 Apr 2025 17:29:04 -0400
Message-ID: <20250416212911.410946-1-jason.andryuk@amd.com>
X-Mailer: git-send-email 2.49.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
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: BN3PEPF0000B36F:EE_|PH8PR12MB7208:EE_
X-MS-Office365-Filtering-Correlation-Id: 8733ea9f-6f46-4126-d072-08dd7d2dbc3b
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?kSEUDXafw5fHorIdvQqgaknlNR9HBrxxArQZT1Jua0C1X3uKIMizebvw2duw?=
 =?us-ascii?Q?c9gzjD4oo2VL8mFyOSQhSHdUF9cCIxEQop2ulUVe0oFg/BiZWY5V1vhAZV5w?=
 =?us-ascii?Q?lfs86CohUKcChOxpSM5XqNEqorSRg22qWYY/MUVf5jEb05ucrHFBJglsaE74?=
 =?us-ascii?Q?6DDkU1kj2+HE2xqFf11m39xEIvXXNcJk6oLB0rHbn6sDc6ZNslNSepNDkn25?=
 =?us-ascii?Q?qDWznUtqh1lJelS7BjMf/fG+Hh0xeEzz8nywzZS6wgcfkzxSNnzwguRb36SL?=
 =?us-ascii?Q?j4jIF8+beDBisqddFBWNCYY+Oc6AuvKfq3qU0anG87VjSZ+xPtfwmYjVFxJg?=
 =?us-ascii?Q?QtaT6rRI0FLaQ2yDas72qHP/fpWwE2qVNSm5IUKlmGCyAVhlv/egoqtInXfi?=
 =?us-ascii?Q?kaOrK2w4r+BLep8iOEIrh5IwwKkAK1gEC3Zm9pVYvCQh9JTWWqaYfSNsPzbX?=
 =?us-ascii?Q?5TVVQjPgSYuk3UUG8RaaQmux7/Hc6GRSUb5dsm5+4zoFpbbLTBCpVcm0nHNM?=
 =?us-ascii?Q?fn1KTPXfygqDD59ZOBGc1NuBBYTFuVPjXGMhIp86vtoLh6KbLBbqVrxb3Qns?=
 =?us-ascii?Q?toJEyvlJZeFvn0ivr0tJRrhnpTD48isOkAZVTqkqnABcF1c+0zE0zejbVg/Y?=
 =?us-ascii?Q?pZRJQ1VhC+J59OnCIgTZG4AC6/cYyrpgQ4h/1wHaAOEY4ygHZ45V7zOx0/5S?=
 =?us-ascii?Q?AHJ9L2i5x66Di5J61c461Sy64ubFOrTwJ1E7yvfvETrBmu+DNO1Iwea3FuMq?=
 =?us-ascii?Q?xf9gUtuvSAJfBV+F7VUNfrrjdefVmyzPB9lv+jzm7IqxZEp0Wngtixyyrk2+?=
 =?us-ascii?Q?nkd8hS5EeDoPdXFvL1vLX6UJmWKSybip2w0IiQHJo8YL56jYUd/7y8N3HDEE?=
 =?us-ascii?Q?lW0wzDUJ8N4JsSdfsETCV+wUL0KdW0S+zIe2K//kLkPPqdM22dirbXtdkS2D?=
 =?us-ascii?Q?BFdGSdxJK/vcm1GmXg8h6qTFV5q7mY1dc5KgcRoe7G/tRZpwrwOMx/1zDMUK?=
 =?us-ascii?Q?oDHgdxdCLXs4/LvpiffXQC38SyU6g4JwJ+8U0oizWYftj31JpjwWE1ulr9Wr?=
 =?us-ascii?Q?BX7K0pMClhVqnK5MNTk5EsBL2Qk7JPAVVKToEGB32XyOFXup/XSYdLp1vucL?=
 =?us-ascii?Q?gkhFIEICefUfOZo1WMvCmRuCuAmNncp2/HAoj0JV8VXAft9I2e++1yOpOcQm?=
 =?us-ascii?Q?UmTkzclujMrJSsxT3tc9V6wPcTQdhlT0kyuQ4C+zY0/Dvdcewg7sG0MdZAjH?=
 =?us-ascii?Q?QJ8SjIlvreSx8ojHqB9iXvSs0CHVzPXiCuZc7SjjKklKuJfqD7bwoeVbuiBl?=
 =?us-ascii?Q?BEQGwcllXa1i6aW2V+Fv64s6nBoeTSQ0DN1r6X1jSvGCcahtvQbAamHkj5Tc?=
 =?us-ascii?Q?PW11nlm4VFVoLUnD4YVH5JAjFlMRu46AtLyqvRMOoT9MUvbz7lO4Ltx5RGz6?=
 =?us-ascii?Q?VCwDzp9BcNQ2+eqsovbQcDwF+SnzeFdXo/KrMf5y2xcEO1KQAjF/GMJ87Iqn?=
 =?us-ascii?Q?rGcw81AMpAoUdgE=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:;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: 16 Apr 2025 21:29:14.0993
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 8733ea9f-6f46-4126-d072-08dd7d2dbc3b
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:
	BN3PEPF0000B36F.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH8PR12MB7208

This series implements separation of dom0 into separate hardware and
control domains.  It uses the capabilities idea from Hyperlaunch -
hardware, control, and xenstore.  It's been tested with dom1 as
control, dom2 as a domU, and dom3 as hardware and xenstore.

To keep things more managable, this is only the ARM hypervisor changes,
and one associated init-dom0less change.  The series is slightly
re-ordered to move xenstore changes ahead of adding the capabilities.

Setting hardware domain as domid 0 is removed.

v5 is fully reviewed.

I've been unable to run a combined control/xenstore.  Linux console
output stops shortly after the domain determines it should be XS_LOCAL.
I have not investigated further.  An ARM xenstore domain also has
console output stop at seemingly the same place.

Daniel P. Smith (1):
  xen: introduce hardware domain create flag

Jason Andryuk (6):
  xen/arm: dom0less hwdom construction
  xen/arm: dom0less delay xenstore initialization
  xen/arm: dom0less seed xenstore grant table entry
  tools/init-dom0less: Only seed legacy xenstore grants
  xen/arm: dom0less use has_dtb local variable
  xen/arm: Add capabilities to dom0less

 docs/misc/arm/device-tree/booting.txt     |  11 ++
 tools/helpers/init-dom0less.c             |  10 +-
 xen/arch/arm/dom0less-build.c             | 197 ++++++++++++++++------
 xen/arch/arm/domain.c                     |   3 +-
 xen/arch/arm/domain_build.c               |  11 +-
 xen/arch/arm/include/asm/dom0less-build.h |   2 +
 xen/arch/arm/include/asm/domain_build.h   |   3 +-
 xen/arch/x86/setup.c                      |   3 +-
 xen/common/domain.c                       |  19 ++-
 xen/common/grant_table.c                  |  14 ++
 xen/include/public/bootfdt.h              |  31 ++++
 xen/include/xen/domain.h                  |   2 +
 xen/include/xen/grant_table.h             |   4 +
 xen/include/xen/types.h                   |   1 +
 14 files changed, 247 insertions(+), 64 deletions(-)
 create mode 100644 xen/include/public/bootfdt.h

-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Wed Apr 16 21:29:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 21:29:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.956558.1349941 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5AK1-00029p-1P; Wed, 16 Apr 2025 21:29:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 956558.1349941; Wed, 16 Apr 2025 21:29: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 1u5AK0-00029i-Uo; Wed, 16 Apr 2025 21:29:28 +0000
Received: by outflank-mailman (input) for mailman id 956558;
 Wed, 16 Apr 2025 21:29: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=M5uj=XC=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1u5AJz-0001ht-Fl
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 21:29:27 +0000
Received: from NAM02-DM3-obe.outbound.protection.outlook.com
 (mail-dm3nam02on2060a.outbound.protection.outlook.com
 [2a01:111:f403:2405::60a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ddf823b4-1b09-11f0-9ffb-bf95429c2676;
 Wed, 16 Apr 2025 23:29:25 +0200 (CEST)
Received: from DM6PR07CA0128.namprd07.prod.outlook.com (2603:10b6:5:330::20)
 by SA1PR12MB8597.namprd12.prod.outlook.com (2603:10b6:806:251::16) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.27; Wed, 16 Apr
 2025 21:29:17 +0000
Received: from DS1PEPF00017096.namprd05.prod.outlook.com
 (2603:10b6:5:330:cafe::20) by DM6PR07CA0128.outlook.office365.com
 (2603:10b6:5:330::20) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.15 via Frontend Transport; Wed,
 16 Apr 2025 21:29:17 +0000
Received: from SATLEXMB04.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.8655.12 via Frontend Transport; Wed, 16 Apr 2025 21:29: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; Wed, 16 Apr
 2025 16:29:16 -0500
Received: from fedora.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; Wed, 16 Apr 2025 16:29:16 -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: ddf823b4-1b09-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Gn/WLUDkyRQJA039L2wYcJEa7idoS7LvqJNLxl80j4OqwNV2PeMAHDdkuz/HwM1c5i6jkAjwjbyrSYyyJDqfIx/3vpI9gxvGpvOW6ZL7nDCKT5oRihm236ax6cquFYYaNc1x3d39EjpDgAhveKI2aHktQzJTbxJ0rfdiC25IcKzAg5BAKucO+ICVyQHqCwl+BuPUPegFGGBsVxczlTYmcOkVOXv4VUIC9gaYVEJvbcMp18GHr6R2W3AZoHQMIWcyycVa93ALYkhlnQ9bbs+HS0SGwZb3bFQnK0K+48VghSM/NR94l/y4hRxE6wwee83UyCjCP3yrIHdNWM4KbUzmpw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=u4tBwta+WLneMlhwvxky2qylVlSbUKgM4iAMiHLVlC8=;
 b=r0537niEvUaNQYZ6eSM9EhCMc+CzBRKDolhrIjqaEmcY76vjdMTHdwh1o/vVQO8yrvpLU4epc4hRQQtudpZjFixu4OTn+pYwP8Nv3f/GyCG7Lp3MdFlSB9nTI8jFuDmm2v+ncoGaymE0v5BvsrqUVmyWRtjRjpLs79xZT/o2jIq+rzLH7is8axO2MandCKK2yFdlex65PHJnlVMFylart41fG7GkVTlu5kKBqX5myKOARX2choNkKcXJVh6+6iWnj34rgqngub971zDtjdRkpcV0uGh5vJsnjAFzNUmzImOwmUmTsfVwyGtlHQDfwaiZZGGS66LnPwMa/Ouo49v+JA==
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=u4tBwta+WLneMlhwvxky2qylVlSbUKgM4iAMiHLVlC8=;
 b=uHzd8tuGKP+99VCC6XbPyiEF8awa92xMG0uA1I4NBI/5IB9sKVvB9CBwY4zhafH+z5rKbq/tVTcvEsvwAwL1qzBF2bsTgcanVF0vFDN5d36TeU6GdDEWOvLLKihMjZh6X7J8FqTQ1ULJjt3T9iIWt2t9HR9YmxVxza8tPYsDD5Q=
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>, 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 2/7] xen/arm: dom0less hwdom construction
Date: Wed, 16 Apr 2025 17:29:06 -0400
Message-ID: <20250416212911.410946-3-jason.andryuk@amd.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250416212911.410946-1-jason.andryuk@amd.com>
References: <20250416212911.410946-1-jason.andryuk@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
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: DS1PEPF00017096:EE_|SA1PR12MB8597:EE_
X-MS-Office365-Filtering-Correlation-Id: 53b69391-6ac7-4d1a-d18e-08dd7d2dbe7a
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?DwPILhrJLPSx7N5Y6J+RyxaAO0KQz+1B40qvC1CQwcMioN6BICn4z1hd8rxH?=
 =?us-ascii?Q?i55GmePnsSUclGNyKGX9FY/utc0qyVdkMqCiAItVbrUbSkMD43tPF9FBHUdE?=
 =?us-ascii?Q?X3xRcovE9aVv/jOwd1C8dsghf0i0Ajorz0SRDhZDMPy8Yxu56OfPFcEv8gBr?=
 =?us-ascii?Q?DzU6lqp4YnhsfLAOaNOWrq3CdJO0gl811E4cuAQrgoDM35EsXdAkvAyc0q0e?=
 =?us-ascii?Q?D3vXrGdw4wnl2UKwBVhhcZEW9TBdgFvbCCn1tsTXWzDMZjNAG6nvGg9XySMm?=
 =?us-ascii?Q?yxXrqLzQIuGAUZMzdcCi590YD625aqVNxwR6yy66HC+PXmP/lUnmAZj0vAFO?=
 =?us-ascii?Q?4qCV0QxX8FkvDpkpXKG9JltG2ukyN8pCHMjEE+dOQxA/agRtcZfvPQH7xRVO?=
 =?us-ascii?Q?W8UFsI7MFuPoxaagrFgtPjAAkiUzLu3aSlcBIBev/mw/d+M6aIGGUa3EB5Wy?=
 =?us-ascii?Q?OpUkO4nPsb6Ho4J5b+GRkkaClIrd8dbdMCLWzJk5AqHDsQdwHZMbJ1ntcCtH?=
 =?us-ascii?Q?evGFsJBnkqjVUrfCa5eZz65bvINUF9RIOc+9Fp/rtx7UIKOAdqBO+utF/h1m?=
 =?us-ascii?Q?fircKlmVmHj/4eqfQelAbZ9DDjBJEWEEXo+RpYZV8hENAs/iaZVTKgtOhtL6?=
 =?us-ascii?Q?zfo/uVoIkKrkIC4BWqF6Uy49MIGRGFwRltu+/Jo0kFwMcwzkaT7jFOwIzvET?=
 =?us-ascii?Q?ovySC0ebmNI//LeqOsAHyjn6VyZ4gBECvCCkyzrk6WocGzPTfrvvM1udieew?=
 =?us-ascii?Q?atkU8Q6Zwuw3EowQKWZTku53Q1J+Lt2A6FJmaetmjK15u39l5q1gDaZfRxnU?=
 =?us-ascii?Q?3RY9MmRDPC3iyPlbHzCw3HDfviMM75mILZMjcg9JJs7/upEr2DJqFozUNhhi?=
 =?us-ascii?Q?uTiJ3OWmZfAoyKhU2NE9hMmU3N38A4kBJsjcQy68yaqox7TNW7/eEFymMRt4?=
 =?us-ascii?Q?O+8UluNuI8hoKlkcsjZ1g/VUMX2jCsI+MO8eP1M6L1UWtedOYZOfr66KNnbN?=
 =?us-ascii?Q?a1abgoRwtSBICNTcujy5APO+46MWeCMrTkDKZr/onW33P5bF7W95jaQucfSR?=
 =?us-ascii?Q?qaADIncJvXADdwM/+Oc4zvXqGHRT8n7vHWgB/Eqxtzh/bcV0M80GOahUBO1W?=
 =?us-ascii?Q?nUs3pTBmlB+3e6TQHtXAwD7F/XmbHEqjJbl7Fstd1VH5gRCdJshaNZxYRbEa?=
 =?us-ascii?Q?ORMy4KbmKx07Xr537ZgM/zraV7va+seJ9CzqTrmIT31Cv0QzKuG5ONH8c3om?=
 =?us-ascii?Q?1s3rfVD89El6DNeAPE1V39R5v8I/liA3rxogOHbAnfXA8qfc76R61M0+KO09?=
 =?us-ascii?Q?imQjRZfpxnE+HAVKzfv8RszyAqyQ/PKq4hNSzk5Bg1VtL1U9cey2u0yEVlaz?=
 =?us-ascii?Q?JhyGHEs+DFN5t6wQkbCaRUshRy5+Lbpl6ov5XNY1UpgK7+QBiuXiY4ybn0Wm?=
 =?us-ascii?Q?iphMfX5Wtle216vEipzblw4DaoEEXgm1r8ASHVLIXwiEKPVjMi29wCJiZ6HG?=
 =?us-ascii?Q?Jl4C0NvknzG0BJE+p4dPz4WuReDlIiFrcozk?=
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: 16 Apr 2025 21:29:17.8261
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 53b69391-6ac7-4d1a-d18e-08dd7d2dbe7a
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:
	DS1PEPF00017096.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB8597

When creating a hardware domain, have the dom0less code call
construct_hwdom() which is shared with the dom0 code.  The hardware
domain requires building that best matches the dom0 build path.  Re-use
it to keep them in sync.

The device tree node of the dom0less config is now passed into
construct_hwdom().  dom0 uses /chosen for process_shm while a hwdom will
use the value from its dom0less device tree node.

Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
---
v5:
Add R-b: Stefano

v3:
Rebase on process_shm_chosen() removal
---
 xen/arch/arm/dom0less-build.c           | 57 ++++++++++++++-----------
 xen/arch/arm/domain_build.c             |  7 +--
 xen/arch/arm/include/asm/domain_build.h |  3 +-
 3 files changed, 39 insertions(+), 28 deletions(-)

diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
index bd15563750..7bc6a6c4d7 100644
--- a/xen/arch/arm/dom0less-build.c
+++ b/xen/arch/arm/dom0less-build.c
@@ -929,36 +929,45 @@ static int __init construct_domU(struct domain *d,
     /* type must be set before allocate memory */
     d->arch.type = kinfo.type;
 #endif
-    if ( !dt_find_property(node, "xen,static-mem", NULL) )
-        allocate_memory(d, &kinfo);
-    else if ( !is_domain_direct_mapped(d) )
-        allocate_static_memory(d, &kinfo, node);
-    else
-        assign_static_memory_11(d, &kinfo, node);
-
-    rc = process_shm(d, &kinfo, node);
-    if ( rc < 0 )
-        return rc;
-
-    /*
-     * Base address and irq number are needed when creating vpl011 device
-     * tree node in prepare_dtb_domU, so initialization on related variables
-     * shall be done first.
-     */
-    if ( kinfo.vpl011 )
+    if ( is_hardware_domain(d) )
     {
-        rc = domain_vpl011_init(d, NULL);
+        rc = construct_hwdom(&kinfo, node);
         if ( rc < 0 )
             return rc;
     }
+    else
+    {
+        if ( !dt_find_property(node, "xen,static-mem", NULL) )
+            allocate_memory(d, &kinfo);
+        else if ( !is_domain_direct_mapped(d) )
+            allocate_static_memory(d, &kinfo, node);
+        else
+            assign_static_memory_11(d, &kinfo, node);
 
-    rc = prepare_dtb_domU(d, &kinfo);
-    if ( rc < 0 )
-        return rc;
+        rc = process_shm(d, &kinfo, node);
+        if ( rc < 0 )
+            return rc;
 
-    rc = construct_domain(d, &kinfo);
-    if ( rc < 0 )
-        return rc;
+        /*
+         * Base address and irq number are needed when creating vpl011 device
+         * tree node in prepare_dtb_domU, so initialization on related variables
+         * shall be done first.
+         */
+        if ( kinfo.vpl011 )
+        {
+            rc = domain_vpl011_init(d, NULL);
+            if ( rc < 0 )
+                return rc;
+        }
+
+        rc = prepare_dtb_domU(d, &kinfo);
+        if ( rc < 0 )
+            return rc;
+
+        rc = construct_domain(d, &kinfo);
+        if ( rc < 0 )
+            return rc;
+    }
 
     domain_vcpu_affinity(d, node);
 
diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index b8f282ff10..0a329f9f5e 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -2305,10 +2305,11 @@ static int __init construct_dom0(struct domain *d)
     if ( rc < 0 )
         return rc;
 
-    return construct_hwdom(&kinfo);
+    return construct_hwdom(&kinfo, NULL);
 }
 
-int __init construct_hwdom(struct kernel_info *kinfo)
+int __init construct_hwdom(struct kernel_info *kinfo,
+                           const struct dt_device_node *node)
 {
     struct domain *d = kinfo->d;
     int rc;
@@ -2327,7 +2328,7 @@ int __init construct_hwdom(struct kernel_info *kinfo)
 
     if ( acpi_disabled )
     {
-        rc = process_shm(d, kinfo, NULL);
+        rc = process_shm(d, kinfo, node);
         if ( rc < 0 )
             return rc;
     }
diff --git a/xen/arch/arm/include/asm/domain_build.h b/xen/arch/arm/include/asm/domain_build.h
index 134290853c..17619c875d 100644
--- a/xen/arch/arm/include/asm/domain_build.h
+++ b/xen/arch/arm/include/asm/domain_build.h
@@ -13,7 +13,8 @@ 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 construct_hwdom(struct kernel_info *kinfo);
+int construct_hwdom(struct kernel_info *kinfo,
+                    const struct dt_device_node *node);
 int domain_fdt_begin_node(void *fdt, const char *name, uint64_t unit);
 int make_chosen_node(const struct kernel_info *kinfo);
 int make_cpus_node(const struct domain *d, void *fdt);
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Wed Apr 16 21:50:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 21:50:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.956662.1350001 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5Aei-0002TW-JH; Wed, 16 Apr 2025 21:50:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 956662.1350001; Wed, 16 Apr 2025 21: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 1u5Aei-0002TP-FM; Wed, 16 Apr 2025 21:50:52 +0000
Received: by outflank-mailman (input) for mailman id 956662;
 Wed, 16 Apr 2025 21: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=RcVf=XC=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u5Aeh-0002TJ-BO
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 21: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 dc083395-1b0c-11f0-9eaf-5ba50f476ded;
 Wed, 16 Apr 2025 23:50:50 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by nyc.source.kernel.org (Postfix) with ESMTP id A47C8A4A6F3;
 Wed, 16 Apr 2025 21:45:20 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 760ABC4CEE2;
 Wed, 16 Apr 2025 21:50:47 +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: dc083395-1b0c-11f0-9eaf-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1744840248;
	bh=2liWwNsaTVyZTAW59evsyTMsEYRAwmieKiUxo45PhuY=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=NheN/er2A3qpNvEZl1dVGMTuvVXKBSJUBLEVHEpooAkmy4KSZ2a0PvQHS9Mw7vuSb
	 RoCyZiVcHzaHvFNPmYbDybqS1CxBhQzD/ynJc9f0VTOI2wO/jH3qh5DS6bWBjTPb4+
	 d54sAB/EfddG6GOXZRZl/x4UN89qd56FHYoEBodwmS+72txFdbnu5pnFWRxNsxB8nk
	 u7jzgn6AWAUqCHHA1gTet5bLDKOgO+BDOSVt3kkRJ2uIpQeJBfIkvx7QXqYryRH/3p
	 Den2B64hDWndZP4+YKz+tcmrQ8co7GyKFCQp/nowentZgCsGbp0F/3SjM4T0eikAE8
	 bROEzZPLifhxw==
Date: Wed, 16 Apr 2025 14:50:46 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Julien Grall <julien@xen.org>
cc: Mykyta Poturai <Mykyta_Poturai@epam.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    Bertrand Marquis <bertrand.marquis@arm.com>, 
    Michal Orzel <michal.orzel@amd.com>, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
    Rahul Singh <Rahul.Singh@arm.com>
Subject: Re: [PATCH v2 0/2] Add support for MSI injection on Arm
In-Reply-To: <d64011fc-84bc-40fb-a98e-aa85eb2574c3@xen.org>
Message-ID: <alpine.DEB.2.22.394.2504161450400.8008@ubuntu-linux-20-04-desktop>
References: <cover.1744621166.git.mykyta_poturai@epam.com> <98feb427-7da5-47ff-831c-2b4bcb26c4b9@xen.org> <alpine.DEB.2.22.394.2504151536240.8008@ubuntu-linux-20-04-desktop> <15938705-ae5e-43c9-826f-d7a8c7425baa@epam.com>
 <d64011fc-84bc-40fb-a98e-aa85eb2574c3@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, 16 Apr 2025, Julien Grall wrote:
> (+ Rahul)
> 
> On 16/04/2025 17:37, Mykyta Poturai wrote:
> > On 16.04.25 01:40, Stefano Stabellini wrote:
> > > On Mon, 14 Apr 2025, Julien Grall wrote:
> > > > Hi Mykyta,
> > > > 
> > > > On 14/04/2025 18:51, Mykyta Poturai wrote:
> > > > > This series adds the base support for MSI injection on Arm. This is
> > > > > needed to streamline virtio-pci interrupt triggering.
> > > > > 
> > > > > With this patches, MSIs can be triggered in guests by issuing the new
> > > > > DM op, inject_msi2. This op is similar to inject_msi, but it allows
> > > > > to specify the source id of the MSI.
> > > > > 
> > > > > We chose the approach of adding a new DM op instead of using the pad
> > > > > field of inject_msi because we have no clear way of distinguishing
> > > > > between set and unset pad fields. New implementations also adds flags
> > > > > field to clearly specify if the SBDF is set.
> > > > > 
> > > > > Patches were tested on QEMU with
> > > > 
> > > > [...]
> > > > 
> > > > > patches for ITS support for DomUs applied.
> > > > 
> > > > This means this series is unusable without external patches. Given this
> > > > is
> > > > adding a new DM operations, I think it would be more sensible to have
> > > > the vITS
> > > > support merged first. Then we can look at merging this series.
> > > 
> > > Hi Mykyta, just checking explicitly with you whether this series
> > > requires vgic-v3-its.c for DomUs?
> > > 
> > > If yes, how far are you from sending the relevant patches to xen-devel?
> > > How many are they?
> > 
> > Hi Stefano,
> > Yes, I am planning to send them together with VPCI MSI support after
> > SMMU patches are merged.
> > 
> > Although the DomU vits itself is only two patches.
> 
> I am assuming this is work in progress patches rather than the one you plan to
> send, correct?
> 
> Asking, because currently there are a few ASSERT(is_hardware_domain(its->d))
> to indicate where changes are likely for the guests. You seem to remove them
> without explaining why or any associated code.
> 
> While I will not ask to have a security support guest vITS from the start. I
> would like some confidence that we are going in the right direction. IOW, I
> would like to see a design document that would explain how we can achieve it.
> Some of the part to consider:
>   * Command queue
>   * LPIs
>   * 1:1 pITS <-> vITS vs one vITS to many pITS
>   * The page-tables are shared between the device and CPU. Are we ok to keep
> the doorbell writable by the CPU?
> 
> There was some discussion in the past about it (I have added Rahul because
> IIRC he was driving the discussion). So most likely, we would need the design
> to be respinned and agreed first.
> 
> Lastly, I see you seem to go down the route of exposing one vITS only. But I
> don't think your patch is sufficient to support multiple pITS (the guest
> doorbell will be mapped to a different host doorbell depending on the guest).

To add to what Julien wrote, one thing is enabling a component with some
limitations, such as lacking a given feature. That might be OK.

A different thing is lack of isolation between VMs, or introducing a new
vehicle for interference, e.g. one VM using vITS causing troubles to
another VM using vITS.

Lack of isolation and interference are not OK. We need to be very
careful and be very aware if there any constraints or limitations we are
hitting against (e.g. size of the command queue) where one VM could
cause a denial of service to another VM because it is exhausting a given
physical resource.


From xen-devel-bounces@lists.xenproject.org Wed Apr 16 21:54:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 21:54:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.956677.1350010 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5Ahz-0003oj-3H; Wed, 16 Apr 2025 21:54:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 956677.1350010; Wed, 16 Apr 2025 21: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 1u5Ahz-0003oc-0n; Wed, 16 Apr 2025 21:54:15 +0000
Received: by outflank-mailman (input) for mailman id 956677;
 Wed, 16 Apr 2025 21: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=RcVf=XC=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u5Ahx-0003oW-9T
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 21:54: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 53c08b9e-1b0d-11f0-9ffb-bf95429c2676;
 Wed, 16 Apr 2025 23:54:11 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 23C5F5C4B78;
 Wed, 16 Apr 2025 21:51:52 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id E65FAC4CEE2;
 Wed, 16 Apr 2025 21:54: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: 53c08b9e-1b0d-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1744840448;
	bh=AIca6PD3eL4hvLSuKG3tGUI0XWLSH51RQM00ZKruOd8=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=Q7odyWiC7ahhg9x6tibzHMhYp5yfdllLsx9O8FmqCT+NlzyJJkvTlP173ai/d/ajt
	 4k1WBQtg6Fg1oQLdVjR6vs7t78HUrGFSUxbAvis0lcUZBfomPol33tpEmGIY00RxUF
	 k8sg//UJl9v7XLjyNmOfSkSpI9kdt7cI+jG8pZzKFSTdzhEz/wZ65wsyBRACb1W4U7
	 YVL8ve1ntWgZiKbH29PeukrbZ53OCm3unALt1vG5+oZXYdpr2vsX6/av+CMSQnmWl1
	 dTtEpg+sxjysng1+yqRMfaA/cJ+Gc5f5qV+pULyppxM8cgpnLiTkhcNGNydRg+ha8U
	 w5cKRLlN8VRHw==
Date: Wed, 16 Apr 2025 14:54:06 -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>, 
    =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>, 
    Anthony PERARD <anthony.perard@vates.tech>, 
    Michal Orzel <michal.orzel@amd.com>, Doug Goldstein <cardoe@cardoe.com>
Subject: Re: [PATCH v3 2/6] CI: avoid repacking initrd as part of the test
 job
In-Reply-To: <2e2156cc-1bf0-4585-bb31-faca5321fec3@citrix.com>
Message-ID: <alpine.DEB.2.22.394.2504161452230.8008@ubuntu-linux-20-04-desktop>
References: <20250414110903.2355303-1-andrew.cooper3@citrix.com> <20250414110903.2355303-3-andrew.cooper3@citrix.com> <alpine.DEB.2.22.394.2504151637100.8008@ubuntu-linux-20-04-desktop> <2e2156cc-1bf0-4585-bb31-faca5321fec3@citrix.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="8323329-364384658-1744840448=:8008"

  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-364384658-1744840448=:8008
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8BIT

On Wed, 16 Apr 2025, Andrew Cooper wrote:
> On 16/04/2025 12:48 am, Stefano Stabellini wrote:
> >> diff --git a/automation/scripts/qubes-x86-64.sh b/automation/scripts/qubes-x86-64.sh
> >> index c4be71464246..e2376cb51cb4 100755
> >> --- a/automation/scripts/qubes-x86-64.sh
> >> +++ b/automation/scripts/qubes-x86-64.sh
> >> @@ -164,16 +164,13 @@ ${domU_extra_config}
> >>  "
> >>  
> >>  if [ -n "$domU_check" ]; then
> >> -    # DomU
> >> +    # DomU rootfs
> >> +    cp binaries/rootfs.cpio.gz binaries/domU-rootfs.cpio.gz
> >> +
> >> +    # test-local configuration
> >>      mkdir -p rootfs
> >>      cd rootfs
> >> -    # fakeroot is needed to preserve device nodes in rootless podman container
> >> -    fakeroot -s ../fakeroot-save tar xzf ../binaries/initrd.tar.gz
> >> -    mkdir proc
> >> -    mkdir run
> >> -    mkdir srv
> >> -    mkdir sys
> >> -    rm var/run
> >> +    mkdir -p etc/local.d
> >>      echo "#!/bin/sh
> > I am worried about the drop of fakeroot because the newly created dirs
> > and files we'll have user as owner instead of root.
> >
> > I suggest we fix this for consistency, and cpio -R 0:0 might suffice.
> 
> https://gitlab.com/xen-project/hardware/xen-staging/-/jobs/9737393986#L1087
> 
> It seems to be all root anyway.  I'm not entirely sure why, but it does
> explain why everything is working, given the attempt to have non-root
> containers.

Hi Andrew, thank you for looking into this. I am truly surprised to see
xen.start marked as root.root. Given that it is what we want I will not
complain though :-)
--8323329-364384658-1744840448=:8008--


From xen-devel-bounces@lists.xenproject.org Wed Apr 16 21:55:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 21:55:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.956688.1350022 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5Aj9-0004KW-Et; Wed, 16 Apr 2025 21:55:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 956688.1350022; Wed, 16 Apr 2025 21:55:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5Aj9-0004KP-9U; Wed, 16 Apr 2025 21:55:27 +0000
Received: by outflank-mailman (input) for mailman id 956688;
 Wed, 16 Apr 2025 21:55:26 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=RcVf=XC=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u5Aj8-0004KJ-0O
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 21:55:26 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7fe62a7d-1b0d-11f0-9eaf-5ba50f476ded;
 Wed, 16 Apr 2025 23:55:25 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 8178E615E9;
 Wed, 16 Apr 2025 21:55:06 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id B539CC4CEE2;
 Wed, 16 Apr 2025 21:55: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: 7fe62a7d-1b0d-11f0-9eaf-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1744840523;
	bh=x5/gR4zv99Dz0QCYoF/7aE3M128dw9QGWkUKF/b5e20=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=jQD2OCxt2dLnAanbGWUSYyc5tRIpwPcMG4nwUadF18gRAwqvmqZgjZfkqPNWFlP+u
	 aCqfk+2ep3skDLHw1cx5Of7dLkWINqSc5lHTp1YSyCrSh/GKOaax9YveddWdxXl3DN
	 OgKLXV6vJfeFWAKgvvmFcQuAg3HZvK4UZ0hCwET1d5Yz1TsYuNCcRAXb6O6DKUuuTW
	 sDi+gQWT4tPGk0NfX6PDzFbqGAPPf0h54mIoM9sKJ180qWFS1XZHV4d1XhCSxUB2pM
	 4zYT3iXEowEdUKEwbgvZS65xSEeaYRcPXnGR2OPMu2UcqRLB8WMnXLyTkEb2VnQTN/
	 iOHThmIK15nnw==
Date: Wed, 16 Apr 2025 14:55:21 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Grygorii Strashko <grygorii_strashko@epam.com>
cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>, 
    Alejandro Vallejo <agarciav@amd.com>
Subject: Re: [ImageBuilder v2] uboot-script-gen: fix arm64 xen u-boot image
 generation
In-Reply-To: <20250416165014.2263305-1-grygorii_strashko@epam.com>
Message-ID: <alpine.DEB.2.22.394.2504161455140.8008@ubuntu-linux-20-04-desktop>
References: <20250416165014.2263305-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 Wed, 16 Apr 2025, Grygorii Strashko wrote:
> From: Grygorii Strashko <grygorii_strashko@epam.com>
> 
> The current code in generate_uboot_images() does not detect arm64 properly
> and always generates ARM u-boot image, because below command
>  file -L $XEN
> returns string which may contain "Aarch64" or "ARM64", and, in the later
> case, the current code will mistakenly identify Xen binary as "ARM".
> This causes Xen boot issues.
> 
> Fix it by searching for "ARM64|Aarch64" for AArch64 binary detection.
> 
> - mkimage -l xen.ub
> Before:
>  Image Type:   ARM Linux Kernel Image (uncompressed)
> 
> After:
>  Image Type:   AArch64 Linux Kernel Image (uncompressed)
> 
> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>

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


> ---
> changes in v2:
> - check for "Aarch64" in addition to "ARM64"
> 
>  scripts/uboot-script-gen | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/scripts/uboot-script-gen b/scripts/uboot-script-gen
> index 527b70dfdc4b..f3ca787e557f 100755
> --- a/scripts/uboot-script-gen
> +++ b/scripts/uboot-script-gen
> @@ -824,13 +824,13 @@ function linux_config()
>  
>  generate_uboot_images()
>  {
> -    local arch=$(file -L $XEN | grep "ARM")
> +    local arch=$(file -L $XEN | grep -E 'ARM64|Aarch64')
>  
>      if test "$arch"
>      then
> -        arch=arm
> -    else
>          arch=arm64
> +    else
> +        arch=arm
>      fi
>  
>      mkimage -A $arch -T kernel -C none -a $memaddr -e $memaddr -d $XEN "$XEN".ub
> -- 
> 2.34.1
> 


From xen-devel-bounces@lists.xenproject.org Wed Apr 16 22:03:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 22:03:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.956701.1350030 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5ArI-0006jc-4j; Wed, 16 Apr 2025 22:03:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 956701.1350030; Wed, 16 Apr 2025 22: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 1u5ArI-0006jV-1r; Wed, 16 Apr 2025 22:03:52 +0000
Received: by outflank-mailman (input) for mailman id 956701;
 Wed, 16 Apr 2025 22: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=RcVf=XC=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u5ArH-0006jP-JG
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 22:03:51 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org
 [2600:3c04:e001:324:0:1991:8:25])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ac01ac56-1b0e-11f0-9ffb-bf95429c2676;
 Thu, 17 Apr 2025 00:03:49 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id E2E156156A;
 Wed, 16 Apr 2025 22:03:29 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1A2DAC4CEE2;
 Wed, 16 Apr 2025 22:03: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: ac01ac56-1b0e-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1744841026;
	bh=cC0ablkiefFiUWFXjgW4PLnZWHchzGaQ56t4I01BkAU=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=BYReslRUVLV2nuo337I0G0U9SDcJ3GgGFWkCbh6/5M2PMt2qigpvyRhGCaf/osbYK
	 kw6xMxy0JAqTFSKRM2UJdFodqb8WUhR7JPNLMOWkpgtSe8EDkemaIEaeZs63hX0wWT
	 djgOg12D+r0yaTiUEfWZ13uxQ53vvq6mR5PyhELL7yQ1uvEzB2W10wQhiZmza8cWUX
	 vvwthCk6bmJg1BmjFLDQfn3CvuuS6uuQjUILuM64oFFYlKhgVEiKAM8PAzxqTEIxHx
	 tTe8spdcwJVIOBObR7b3J7CnY37AyRwKaTVSD4jnnzbaVILiQ8bIPn7OLRw8rSNwM4
	 LYfQkqAMX99wQ==
Date: Wed, 16 Apr 2025 15:03:44 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Grygorii Strashko <grygorii_strashko@epam.com>
cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>, 
    Alejandro Vallejo <agarciav@amd.com>
Subject: Re: [ImageBuilder v2] uboot-script-gen: add xen xsm policy loading
 support
In-Reply-To: <20250415070128.1938253-1-grygorii_strashko@epam.com>
Message-ID: <alpine.DEB.2.22.394.2504161503150.8008@ubuntu-linux-20-04-desktop>
References: <20250415070128.1938253-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 Tue, 15 Apr 2025, Grygorii Strashko wrote:
> From: Grygorii Strashko <grygorii_strashko@epam.com>
> 
> This patch adds Xen XSM policy loading support.
> 
> The configuration file XEN_POLICY specifies Xen hypervisor
> XSM policy binary to load.
> 
> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
> ---
> changes in v2:
> - fix conditional statements for XEN_POLICY
> - add XSM policy binary check
> 
>  README.md                |  2 ++
>  scripts/uboot-script-gen | 34 ++++++++++++++++++++++++++++++++++
>  2 files changed, 36 insertions(+)
> 
> diff --git a/README.md b/README.md
> index 137abef153ce..9106d2a07302 100644
> --- a/README.md
> +++ b/README.md
> @@ -91,6 +91,8 @@ Where:
>  - XEN specifies the Xen hypervisor binary to load. Note that it has to
>    be a regular Xen binary, not a u-boot binary.
>  
> +- XEN_POLICY specifies the Xen hypervisor XSM policy binary to load.
> +
>  - XEN_COLORS specifies the colors (cache coloring) to be used for Xen
>    and is in the format startcolor-endcolor
>  
> diff --git a/scripts/uboot-script-gen b/scripts/uboot-script-gen
> index c4d26caf5e0e..208eafdecfeb 100755
> --- a/scripts/uboot-script-gen
> +++ b/scripts/uboot-script-gen
> @@ -315,6 +315,15 @@ function xen_device_tree_editing()
>      dt_set "/chosen" "#size-cells" "hex" "0x2"
>      dt_set "/chosen" "xen,xen-bootargs" "str" "$XEN_CMD"
>  
> +    if test -n "$XEN_POLICY" && test "$xen_policy_addr" != "-"
> +    then
> +        local node_name="xen-policy@${xen_policy_addr#0x}"
> +
> +        dt_mknode "/chosen" "$node_name"
> +        dt_set "/chosen/$node_name" "compatible" "str_a" "xen,xsm-policy xen,multiboot-module multiboot,module"
> +        dt_set "/chosen/$node_name" "reg" "hex" "$(split_addr_size $xen_policy_addr $xen_policy_size)"
> +    fi
> +
>      if test "$DOM0_KERNEL"
>      then
>          local node_name="dom0@${dom0_kernel_addr#0x}"
> @@ -900,6 +909,15 @@ xen_file_loading()
>      kernel_addr=$memaddr
>      kernel_path=$XEN
>      load_file "$XEN" "host_kernel"
> +
> +    xen_policy_addr="-"
> +    if test -n "$XEN_POLICY"
> +    then
> +        check_file_type "${XEN_POLICY}" "SE Linux policy"
> +        xen_policy_addr=$memaddr
> +        load_file "$XEN_POLICY" "xen_policy"
> +        xen_policy_size=$filesize
> +    fi
>  }
>  
>  linux_file_loading()
> @@ -939,6 +957,22 @@ bitstream_load_and_config()
>  
>  create_its_file_xen()
>  {
> +    if test -n "$XEN_POLICY" && test "$xen_policy_addr" != "-"
> +    then
> +        cat >> "$its_file" <<- EOF
> +        xen_policy {
> +            description = "Xen XSM policy binary";
> +            data = /incbin/("$XEN_POLICY");
> +            type = "kernel";

This should be "firmware". Aside from that, the patch is fine.
If you are OK with it, I can fix it on commit.



> +            arch = "arm64";
> +            os = "linux";
> +            compression = "none";
> +            load = <$xen_policy_addr>;
> +            $fit_algo
> +        };
> +	EOF
> +    fi
> +
>      if test "$DOM0_KERNEL"
>      then
>          if test "$ramdisk_addr" != "-"
> -- 
> 2.34.1
> 


From xen-devel-bounces@lists.xenproject.org Wed Apr 16 23:03:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 23:03:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.956759.1350041 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5Bmu-0000Cw-9a; Wed, 16 Apr 2025 23:03:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 956759.1350041; Wed, 16 Apr 2025 23:03:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5Bmu-0000Cm-6L; Wed, 16 Apr 2025 23:03:24 +0000
Received: by outflank-mailman (input) for mailman id 956759;
 Wed, 16 Apr 2025 23:03: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=RcVf=XC=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u5Bms-0000Cg-Se
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 23:03:22 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fd7e2cd6-1b16-11f0-9eaf-5ba50f476ded;
 Thu, 17 Apr 2025 01:03:21 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 8CBEA4A371;
 Wed, 16 Apr 2025 23:03:18 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id F0EE2C4CEE2;
 Wed, 16 Apr 2025 23:03: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: fd7e2cd6-1b16-11f0-9eaf-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1744844599;
	bh=sHcVmZMzDb1QRF4spWG2Y4SYz35CPMy3X6mpp0ByB0I=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=i+6rMlED/9/8ZxKfe5vrvZ+aBGtPgJvBnQA+p17MCJGUrLaGE5O6dUAufFsCc5Q20
	 /mJZb4WwPAgR7cJZ+lf+QSr1qNTTsLOyzb4DK7/2jhPUW/0iiWYZdIL8x1f61hVtrO
	 XDeBanRRKpsx2xynmUkOZOeE/i5MLcEfzeh18FdWITW3be4LFvsbd7SoxYyIB6BExG
	 qRsVsFiV38as0T3TOvxNZPpChdxZgyzH5BdrEwstUUc1qcxK0wOVAITEiqcIb9iqyd
	 1eKL7X77iuASLZq+J2R1RVtup2rDFjrUmWj4xstmPQqn51vfpeyGw2PlPVKS5CKL2q
	 c78n+GtO9x5OQ==
Date: Wed, 16 Apr 2025 16:03:17 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Michal Orzel <michal.orzel@amd.com>
cc: xen-devel@lists.xenproject.org, Doug Goldstein <cardoe@cardoe.com>, 
    Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH v2] CI: Add Arm64/Arm32 MPU build jobs
In-Reply-To: <20250416082130.236530-1-michal.orzel@amd.com>
Message-ID: <alpine.DEB.2.22.394.2504161602250.8008@ubuntu-linux-20-04-desktop>
References: <20250416082130.236530-1-michal.orzel@amd.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Wed, 16 Apr 2025, Michal Orzel wrote:
> Just like for RISCV and PPC, the earlier we enable the CI build the
> better.
> 
> Signed-off-by: Michal Orzel <michal.orzel@amd.com>

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


> ---
> Changes in v2:
>  - add Arm32 job given recently committed series
> 
> Pipeline:
> https://gitlab.com/xen-project/people/morzel/xen/-/pipelines/1771015642
> ---
>  automation/gitlab-ci/build.yaml | 20 ++++++++++++++++++++
>  1 file changed, 20 insertions(+)
> 
> diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
> index ac5367874526..ab5211f77e5e 100644
> --- a/automation/gitlab-ci/build.yaml
> +++ b/automation/gitlab-ci/build.yaml
> @@ -379,6 +379,16 @@ debian-bookworm-gcc-arm32-debug-earlyprintk:
>        CONFIG_EARLY_UART_CHOICE_PL011=y
>        CONFIG_EARLY_UART_BASE_ADDRESS=0x9000000
>  
> +debian-bookworm-gcc-arm32-debug-mpu:
> +  extends: .gcc-arm32-cross-build-debug
> +  variables:
> +    CONTAINER: debian:bookworm-arm64v8-arm32-gcc
> +    HYPERVISOR_ONLY: y
> +    EXTRA_XEN_CONFIG: |
> +      CONFIG_XEN_START_ADDRESS=0x0
> +      CONFIG_MPU=y
> +      CONFIG_UNSUPPORTED=y
> +
>  # Arm builds
>  
>  debian-bookworm-gcc-arm64:
> @@ -443,6 +453,16 @@ alpine-3.18-gcc-debug-arm64-earlyprintk:
>        CONFIG_EARLY_UART_CHOICE_PL011=y
>        CONFIG_EARLY_UART_BASE_ADDRESS=0x9000000
>  
> +alpine-3.18-gcc-debug-arm64-mpu:
> +  extends: .gcc-arm64-build-debug
> +  variables:
> +    CONTAINER: alpine:3.18-arm64v8
> +    HYPERVISOR_ONLY: y
> +    EXTRA_XEN_CONFIG: |
> +      CONFIG_XEN_START_ADDRESS=0x0
> +      CONFIG_MPU=y
> +      CONFIG_UNSUPPORTED=y
> +
>  # Yocto test jobs
>  yocto-qemuarm64:
>    extends: .yocto-test-arm64
> -- 
> 2.25.1
> 
> 


From xen-devel-bounces@lists.xenproject.org Wed Apr 16 23:07:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 16 Apr 2025 23:07:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.956757.1350051 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5BqP-0000mG-PD; Wed, 16 Apr 2025 23:07:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 956757.1350051; Wed, 16 Apr 2025 23: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 1u5BqP-0000m9-LQ; Wed, 16 Apr 2025 23:07:01 +0000
Received: by outflank-mailman (input) for mailman id 956757;
 Wed, 16 Apr 2025 22: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=Y+to=XC=tum.de=f.specht@srs-se1.protection.inumbo.net>)
 id 1u5BcZ-00079h-2K
 for xen-devel@lists.xenproject.org; Wed, 16 Apr 2025 22:52:45 +0000
Received: from postout2.mail.lrz.de (postout2.mail.lrz.de [129.187.255.138])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7f75aaa2-1b15-11f0-9eaf-5ba50f476ded;
 Thu, 17 Apr 2025 00:52:40 +0200 (CEST)
Received: from lxmhs52.srv.lrz.de (localhost [127.0.0.1])
 by postout2.mail.lrz.de (Postfix) with ESMTP id 4ZdGWW352pzyXy;
 Thu, 17 Apr 2025 00:52:39 +0200 (CEST)
Received: from postout2.mail.lrz.de ([127.0.0.1])
 by lxmhs52.srv.lrz.de (lxmhs52.srv.lrz.de [127.0.0.1]) (amavis, port 20024)
 with LMTP id BUKWwZpHKzs4; Thu, 17 Apr 2025 00:52:38 +0200 (CEST)
Received: from localhost (ip-77-25-21-71.web.vodafone.de [77.25.21.71])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange ECDHE (prime256v1) server-signature RSA-PSS (2048 bits)
 server-digest SHA256) (Client did not present a certificate)
 by postout2.mail.lrz.de (Postfix) with ESMTPSA id 4ZdGWV24mvzyXt;
 Thu, 17 Apr 2025 00:52:38 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7f75aaa2-1b15-11f0-9eaf-5ba50f476ded
Authentication-Results: postout.lrz.de (amavis); dkim=pass (2048-bit key)
 reason="pass (just generated, assumed good)" header.d=tum.de
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tum.de; h=
	content-disposition:content-type:content-type:mime-version
	:message-id:subject:subject:from:from:date:date:received
	:received; s=tu-postout21; t=1744843958; bh=tLa+VU89u/pPAmcI58Xx
	Rvys5/PhJoI02bJae+8u2Og=; b=SifitEc0HgRMWodNj5JCqGWBtfzs+ooY6+F/
	DhOqq3usLmj1Cg6H+0DQJ32VyQ6hl8VqHaIrDfGa2kFplsU3PD4xrGZIZq4e2MoK
	FjeHamf+j4NdL5KULB/t0hG+JoEvjt+o/4KpgmzD6CYvArC73jrxCMoF0ecEV35Z
	yomVAKpbgSVBS6k3ZchAbpnAbWiSaxlVbIUpxm4lajN+A2eULD+6gAcgVj4FmXxh
	6XZ2B75PdXz5YSSEZj+BahtcRFbirhd76QXfxgbtoo1W0Uk1zuf3UhlLCnVuFJBs
	LXCKX/PCLWf/Vif19GGLWZ6L4l0KoLaxhWW1MgS13TgDBvqVDQ==
X-Virus-Scanned: by amavisd-new at lrz.de in lxmhs52.srv.lrz.de
X-Spam-Flag: NO
X-Spam-Score: -2.871
X-Spam-Level:
X-Spam-Status: No, score=-2.871 tagged_above=-999 required=5
 tests=[ALL_TRUSTED=-1, BAYES_00=-1.9, DMARC_ADKIM_RELAXED=0.001,
 DMARC_ASPF_RELAXED=0.001, DMARC_POLICY_NONE=0.001, LRZ_BND_AN=0.001,
 LRZ_BND_MUTT=0.001, LRZ_DMARC_FAIL=0.001, LRZ_DMARC_FAIL_NONE=0.001,
 LRZ_DMARC_POLICY=0.001, LRZ_DMARC_TUM_FAIL=0.001, LRZ_DMARC_TUM_REJECT=3.5,
 LRZ_DMARC_TUM_REJECT_PO=-3.5, LRZ_ENVFROM_FROM_MATCH=0.001,
 LRZ_ENVFROM_TUM_S=0.001, LRZ_FROM_ENVFROM_ALIGNED_STRICT=0.001,
 LRZ_FROM_HAS_A=0.001, LRZ_FROM_HAS_AAAA=0.001, LRZ_FROM_HAS_MDOM=0.001,
 LRZ_FROM_HAS_MX=0.001, LRZ_FROM_HOSTED_DOMAIN=0.001,
 LRZ_FROM_NAME_IN_ADDR=0.001, LRZ_FROM_PHRASE=0.001,
 LRZ_FROM_PRE_SUR_PHRASE=0.001, LRZ_FROM_TUM_S=0.001, LRZ_HAS_BND=0.001,
 LRZ_HAS_CT=0.001, LRZ_HAS_MIME_VERSION=0.001, LRZ_HAS_SPF=0.001,
 LRZ_MSGID_LONG_50=0.001, LRZ_MSGID_NO_FQDN=0.001, LRZ_NO_UA_HEADER=0.001,
 LRZ_TO_SHORT=0.001] autolearn=no autolearn_force=no
Date: Thu, 17 Apr 2025 00:52:23 +0200
From: Fabian Specht <f.specht@tum.de>
To: xen-devel@lists.xenproject.org
Cc: manuel.andreas@tum.de
Subject: x86 emulation bug
Message-ID: <jfgrmlid6fhbptebr22ccqimqhys3pchcoyuoepjz2iwoillei@xxaicsktj2pl>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="dtn5ecljjtysyige"
Content-Disposition: inline


--dtn5ecljjtysyige
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

Dear all,

we discovered a bug in hvm64 x86 Xen. Using the attached xtf test we are
able to trigger an assert in arch/x86/hvm/emulate.c:


if ( (hvmemul_ctxt->ctxt.regs->eflags & X86_EFLAGS_DF) && (reps > 1) )
{
	/*
	 * x86_emulate() clips the repetition count to ensure we don't wrap
	 * the effective-address index register. Hence this assertion holds.
	 */
	ASSERT(offset >= ((reps - 1) * bytes_per_rep));
	okay = hvm_virtual_to_linear_addr(
		seg, reg, offset - (reps - 1) * bytes_per_rep,
		reps * bytes_per_rep, access_type,
		hvmemul_get_seg_reg(x86_seg_cs, hvmemul_ctxt), linear);
	*linear += (reps - 1) * bytes_per_rep;
	if ( hvmemul_ctxt->ctxt.addr_size != 64 )
		*linear = (uint32_t)*linear;
}


If debug mode is not enabled, this will later on result in an integer
underflow, however we were not able to find any severe problems.

The test below will not work with vanilla xtf. To get it working,
we have to edit 'pae_l1_identmap' in arch/x86/hvm/pagetables.S in xtf
from


PAGETABLE_START(pae_l1_identmap)
        .long 0, 0
        .rept PAE_L1_PT_ENTRIES - 1
        .long (PAE_IDX(pae_l1_identmap) << PAE_L1_PT_SHIFT) + _PAGE_LEAF
        .long 0
        .endr
PAGETABLE_END(pae_l1_identmap)


to the following value:


PAGETABLE_START(pae_l1_identmap)
        .quad (0x5564000000) + _PAGE_LEAF
        .rept PAE_L1_PT_ENTRIES - 1
        .long (PAE_IDX(pae_l1_identmap) << PAE_L1_PT_SHIFT) + _PAGE_LEAF
        .long 0
        .endr
PAGETABLE_END(pae_l1_identmap)



We were able to reproduce this bug in several versions including the
most current one at the time of writing this.


Best,
Fabian

--dtn5ecljjtysyige
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="main.c"

/**
 * @file tests/poc/main.c
 * @ref test-poc
 *
 * @page test-poc poc
 *
 * @todo Docs for test-poc
 *
 * @see tests/poc/main.c
 */
#include <xtf.h>

const char test_title[] = "Test poc";

void test_main(void)
{
	printk("Starting up reps offset assert poc!\n");

    asm volatile ( 
        "mov $0xd000f8, %%eax;"
        "mov $0x0, %%rdi;"
        "mov $0x1900000000000000, %%rcx;"
        "std;"
        "rep stos %%eax, %%es:(%%rdi);"
        ::: "memory", "cc", "rax", "rdi", "rcx"
    );

    printk("Unreachable with enabled debug asserts!\n");
    xtf_success(NULL);
    xtf_success(NULL);
}

/*
 * Local variables:
 * mode: C
 * c-file-style: "BSD"
 * c-basic-offset: 4
 * tab-width: 4
 * indent-tabs-mode: nil
 * End:
 */

--dtn5ecljjtysyige--


From xen-devel-bounces@lists.xenproject.org Thu Apr 17 00:12:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 00:12:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.956792.1350065 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5CrK-0003p7-1N; Thu, 17 Apr 2025 00:12:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 956792.1350065; Thu, 17 Apr 2025 00:12: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 1u5CrJ-0003p0-V1; Thu, 17 Apr 2025 00:12:01 +0000
Received: by outflank-mailman (input) for mailman id 956792;
 Thu, 17 Apr 2025 00:12: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=F/Gg=XD=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u5CrI-0003ou-EB
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 00:12: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 916fbf9a-1b20-11f0-9ffb-bf95429c2676;
 Thu, 17 Apr 2025 02:11:54 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by nyc.source.kernel.org (Postfix) with ESMTP id 6F11DA4B085;
 Thu, 17 Apr 2025 00:06:25 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7DBD4C4CEE2;
 Thu, 17 Apr 2025 00:11: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: 916fbf9a-1b20-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1744848713;
	bh=pKtKHqcMj8usVze2fZHLq3Sjag1oCksWXFLelRjfWus=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=tj943qgNbc9TuZEU1Xc5HvUXufw/sxCS30oiclQ7d0WcLiW50Mi2Hwvtoy5zy9dqc
	 5pk57HTEcp1T2EeJEKJLNWjnkcg4bIkmgT+9UYx1n48/DoA04vfHHKusXsqGu0WdeV
	 75HWXsFs/mPAOKZIHYfuULh9vZgKCFIq2FsCy544hRZh5RJlwHIkeyRnMY7rvWnc/x
	 uojpTEli6AkPw0FjmwyQBMKYK0WsyMyDAMundSzF1dBNBvJiczC4s7qlnWMCkC+5gA
	 z9By2nKiFWcGUk9ZgGEQnUqgJW1H4aXJMcDRnZ4Y8jN/UaMBa245dD/UZVLXuVeG1S
	 mCPNGOsEMnMFg==
Date: Wed, 16 Apr 2025 17:11:51 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: dmkhn@proton.me
cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com, 
    cardoe@cardoe.com, marmarek@invisiblethingslab.com, sstabellini@kernel.org, 
    dmukhin@ford.com
Subject: Re: [PATCH v1 4/4] CI: add argo x86 XTF test
In-Reply-To: <20250416053213.921444-5-dmukhin@ford.com>
Message-ID: <alpine.DEB.2.22.394.2504161708470.8008@ubuntu-linux-20-04-desktop>
References: <20250416053213.921444-1-dmukhin@ford.com> <20250416053213.921444-5-dmukhin@ford.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Wed, 16 Apr 2025, dmkhn@proton.me wrote:
> From: Denis Mukhin <dmukhin@ford.com>
> 
> Introduce new CI job to run x86 XTF argo test under QEMU to smoke test argo
> feature functionality in upstream CI.
> 
> The new job lead time is ~30s, limit max job duration to 60s.
> 
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> ---
>  automation/gitlab-ci/test.yaml        | 9 +++++++++
>  automation/scripts/include/xtf-runner | 7 +++++++
>  2 files changed, 16 insertions(+)
> 
> diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
> index d6e4a0a622..9001efb45c 100644
> --- a/automation/gitlab-ci/test.yaml
> +++ b/automation/gitlab-ci/test.yaml
> @@ -691,6 +691,15 @@ qemu-smoke-x86-64-gcc-efi:
>    needs:
>      - debian-12-x86_64-gcc-debug
>  
> +qemu-xtf-argo-x86_64-gcc-debug:
> +  extends: .qemu-smoke-x86-64
> +  variables:
> +    TEST_TIMEOUT_OVERRIDE: 60
> +  script:
> +    - ./automation/scripts/qemu-xtf.sh x86-64 pv64 argo 2>&1 | tee ${LOGFILE}
> +  needs:
> +    - alpine-3.18-gcc-debug
> +
>  qemu-smoke-riscv64-gcc:
>    extends: .qemu-riscv64
>    script:
> diff --git a/automation/scripts/include/xtf-runner b/automation/scripts/include/xtf-runner
> index 55b7b34b89..12470b3979 100644
> --- a/automation/scripts/include/xtf-runner
> +++ b/automation/scripts/include/xtf-runner
> @@ -70,6 +70,9 @@ function xtf_build_cmdline()
>      local xtf_variant=$1
>      local xtf_name=$2
>      declare -a cmdline=()
> +    declare -A per_test_args=(
> +        [argo]="argo=1 mac-permissive=1"
> +    )
> +
>      cmdline+=("loglvl=all noreboot console_timestamps=boot")
>      cmdline+=("console=${XEN_CONSOLE}")
> @@ -79,6 +82,10 @@ function xtf_build_cmdline()
>          cmdline+=("dom0-iommu=none dom0=pvh")
>      fi
>  
> +    if [[ -v per_test_args[${xtf_name}] ]]; then
> +        cmdline+=("${per_test_args[${xtf_name}]}")
> +    fi
> +

This is all within the same bash function so I think we could avoid
using the per_test_args array and just do:

if test "$xtf_name"
then
    cmdline+=("argo=1 mac-permissive=1")
fi

The indirection is not required as far as I can tell. I do realize it is
a matter of taste and it works either way so I wouldn't insist.



>      export XEN_CMDLINE="${cmdline[@]}"
>  }
>  
> -- 
> 2.34.1
> 
> 


From xen-devel-bounces@lists.xenproject.org Thu Apr 17 00:13:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 00:13:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.956804.1350076 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5CsI-0004Me-HX; Thu, 17 Apr 2025 00:13:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 956804.1350076; Thu, 17 Apr 2025 00:13: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 1u5CsI-0004MX-D1; Thu, 17 Apr 2025 00:13:02 +0000
Received: by outflank-mailman (input) for mailman id 956804;
 Thu, 17 Apr 2025 00:13: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=F/Gg=XD=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u5CsG-0003ou-Vq
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 00:13: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 b7b33565-1b20-11f0-9ffb-bf95429c2676;
 Thu, 17 Apr 2025 02:12:59 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by nyc.source.kernel.org (Postfix) with ESMTP id BE47CA4A89F;
 Thu, 17 Apr 2025 00:07:29 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id D5643C4CEE2;
 Thu, 17 Apr 2025 00:12: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: b7b33565-1b20-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1744848777;
	bh=fJNiutQwGsP+RNhQ825h+2UvIOHcYDGIAVKHUGqHkYE=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=tHCfNp1+WadDHCK1jrRTmWmf9oMaWOLwfVeHNpCGsvfPe991/rDbXu+1VGTa1JzjE
	 vbtSX65YBhr4q8Zb5CuRYx0k5/NT4fwK1OWQOWxdO9z2yE7WG7wu+lgOOclMfaEQNd
	 kPxPqVzstzX0pE/6x1jnlvtvPrmQLMWijC5nfvI+0G1ttYZJ9ktFyz5iQrbtheiP8d
	 /ZbLarsynkdFj6MtHtxVMezrItgWBRPSdKZ8tbTmsjhTkWCealJ40hrnKnYDuV7gCD
	 uEmjSZRZ44lBdM1zY4uT5LYUpS8+lE4hIVbW7khicnsz3gTXxD+N/zGKHQP1qhHo2o
	 X/CQ5GXF2yRbA==
Date: Wed, 16 Apr 2025 17:12:55 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: dmkhn@proton.me
cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com, 
    cardoe@cardoe.com, marmarek@invisiblethingslab.com, sstabellini@kernel.org, 
    dmukhin@ford.com
Subject: Re: [PATCH v1 3/4] CI: switch arm64 XTF test runner to qemu-xtf.sh
In-Reply-To: <20250416053213.921444-4-dmukhin@ford.com>
Message-ID: <alpine.DEB.2.22.394.2504161641250.8008@ubuntu-linux-20-04-desktop>
References: <20250416053213.921444-1-dmukhin@ford.com> <20250416053213.921444-4-dmukhin@ford.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Wed, 16 Apr 2025, dmkhn@proton.me wrote:
> From: Denis Mukhin <dmukhin@ford.com>
> 
> Hook arm64 QEMU configuration to qemu-xtf.sh and use new script in arm64 CI
> jobs.
> 
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>

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


> ---
>  automation/gitlab-ci/test.yaml                |  4 +-
>  automation/scripts/.gitignore                 |  3 +
>  .../scripts/include/configs/xtf-arm64-config  |  2 +
>  automation/scripts/include/xtf-arm64          | 81 +++++++++++++++++++
>  automation/scripts/qemu-xtf-dom0less-arm64.sh | 68 ----------------
>  5 files changed, 88 insertions(+), 70 deletions(-)
>  create mode 100644 automation/scripts/include/configs/xtf-arm64-config
>  create mode 100644 automation/scripts/include/xtf-arm64
>  delete mode 100755 automation/scripts/qemu-xtf-dom0less-arm64.sh
> 
> diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
> index ca1e4eb528..d6e4a0a622 100644
> --- a/automation/gitlab-ci/test.yaml
> +++ b/automation/gitlab-ci/test.yaml
> @@ -571,7 +571,7 @@ qemu-smoke-dom0less-arm64-gcc-debug-earlyprintk:
>  qemu-xtf-dom0less-arm64-gcc-hyp-xen-version:
>    extends: .qemu-arm64
>    script:
> -    - ./automation/scripts/qemu-xtf-dom0less-arm64.sh hyp-xen-version 2>&1 | tee ${LOGFILE}
> +    - ./automation/scripts/qemu-xtf.sh arm64 mmu64le hyp-xen-version 2>&1 | tee ${LOGFILE}
>    needs:
>      - alpine-3.18-gcc-arm64
>      - qemu-system-aarch64-6.0.0-arm64-export
> @@ -579,7 +579,7 @@ qemu-xtf-dom0less-arm64-gcc-hyp-xen-version:
>  qemu-xtf-dom0less-arm64-gcc-debug-hyp-xen-version:
>    extends: .qemu-arm64
>    script:
> -    - ./automation/scripts/qemu-xtf-dom0less-arm64.sh hyp-xen-version 2>&1 | tee ${LOGFILE}
> +    - ./automation/scripts/qemu-xtf.sh arm64 mmu64le hyp-xen-version 2>&1 | tee ${LOGFILE}
>    needs:
>      - alpine-3.18-gcc-debug-arm64
>      - qemu-system-aarch64-6.0.0-arm64-export
> diff --git a/automation/scripts/.gitignore b/automation/scripts/.gitignore
> index 2f2d6e1ebd..f853da4d89 100644
> --- a/automation/scripts/.gitignore
> +++ b/automation/scripts/.gitignore
> @@ -1,6 +1,9 @@
>  !include
>  
>  binaries
> +imagebuilder
>  smoke.serial
>  xen
>  xtf*/
> +
> +*.rom
> diff --git a/automation/scripts/include/configs/xtf-arm64-config b/automation/scripts/include/configs/xtf-arm64-config
> new file mode 100644
> index 0000000000..9942740927
> --- /dev/null
> +++ b/automation/scripts/include/configs/xtf-arm64-config
> @@ -0,0 +1,2 @@
> +CONFIG_GICV2=y
> +CONFIG_SBSA_UART=y
> diff --git a/automation/scripts/include/xtf-arm64 b/automation/scripts/include/xtf-arm64
> new file mode 100644
> index 0000000000..68487fe617
> --- /dev/null
> +++ b/automation/scripts/include/xtf-arm64
> @@ -0,0 +1,81 @@
> +#!/bin/bash
> +#
> +# XTF test utilities (arm64).
> +#
> +
> +# Arch-specific environment overrides.
> +function xtf_arch_prepare()
> +{
> +    export FW_PREFIX="${FW_PREFIX:-/usr/lib/u-boot/qemu_arm64/}"
> +    export QEMU_PREFIX="${QEMU_PREFIX:-${WORKDIR}/}"
> +    export XEN_BINARY="${XEN_BINARY:-${WORKDIR}/xen}"
> +    export XEN_CONSOLE="${XEN_CONSOLE:-dtuart}"
> +    export XTF_SRC_BRANCH="${XTF_SRC_BRANCH:-xtf-arm}"
> +    export XTF_SRC_URI="${XTF_SRC_URI:-https://gitlab.com/xen-project/fusa/xtf.git}"
> +    export XTF_SRC_VARIANTS="mmu64le"
> +}
> +
> +# Perform arch-specific XTF environment setup.
> +function xtf_arch_setup()
> +{
> +    # QEMU looks for "efi-virtio.rom" even if it is unneeded
> +    curl -fsSLO https://github.com/qemu/qemu/raw/v5.2.0/pc-bios/efi-virtio.rom
> +
> +    # Crude check for local testing
> +    if [ ! -d imagebuilder/.git ]; then
> +        git clone --depth 1 https://gitlab.com/xen-project/imagebuilder.git
> +    fi
> +
> +    cat > ${WORKDIR}/config <<EOF
> +MEMORY_START="0x40000000"
> +MEMORY_END="0xC0000000"
> +
> +XEN="xen"
> +DEVICE_TREE="virt-gicv2.dtb"
> +
> +XEN_CMD="${XEN_CMDLINE}"
> +
> +DOMU_KERNEL[0]="xtf-test"
> +DOMU_MEM[0]="128"
> +
> +NUM_DOMUS=1
> +
> +LOAD_CMD="tftpb"
> +UBOOT_SOURCE="boot.source"
> +UBOOT_SCRIPT="boot.scr"
> +EOF
> +    cp ${XTF_BINARY} ${WORKDIR}/xtf-test
> +
> +    # Generate virt-gicv2.dtb
> +    ${WORKDIR}/qemu-system-aarch64 \
> +        -machine virtualization=true \
> +        -cpu cortex-a57 \
> +        -machine type=virt \
> +        -m 2048 \
> +        -smp 2 \
> +        -display none \
> +        -machine dumpdtb=${WORKDIR}/virt-gicv2.dtb
> +
> +    # Generate U-Boot environment
> +    bash -x imagebuilder/scripts/uboot-script-gen \
> +        -t tftp \
> +        -d ${WORKDIR}/ \
> +        -c ${WORKDIR}/config
> +
> +    export TEST_CMD="${QEMU_PREFIX}qemu-system-aarch64 \
> +        -machine virtualization=true \
> +        -cpu cortex-a57 \
> +        -machine type=virt \
> +        -no-reboot \
> +        -nographic \
> +        -monitor none \
> +        -serial stdio \
> +        -m 2048 \
> +        -smp 2 \
> +        -device virtio-net-pci,netdev=n0 \
> +        -netdev user,id=n0,tftp=${WORKDIR} \
> +        -bios ${FW_PREFIX}u-boot.bin \
> +    "
> +
> +    export UBOOT_CMD="virtio scan; dhcp; tftpb 0x40000000 boot.scr; source 0x40000000"
> +}
> diff --git a/automation/scripts/qemu-xtf-dom0less-arm64.sh b/automation/scripts/qemu-xtf-dom0less-arm64.sh
> deleted file mode 100755
> index 436f460c3c..0000000000
> --- a/automation/scripts/qemu-xtf-dom0less-arm64.sh
> +++ /dev/null
> @@ -1,68 +0,0 @@
> -#!/bin/bash
> -
> -set -ex -o pipefail
> -
> -# Name of the XTF test
> -xtf_test=$1
> -
> -# Message returned by XTF in case of success
> -passed="Test result: SUCCESS"
> -
> -# XXX QEMU looks for "efi-virtio.rom" even if it is unneeded
> -curl -fsSLO https://github.com/qemu/qemu/raw/v5.2.0/pc-bios/efi-virtio.rom
> -./binaries/qemu-system-aarch64 \
> -   -machine virtualization=true \
> -   -cpu cortex-a57 -machine type=virt \
> -   -m 2048 -smp 2 -display none \
> -   -machine dumpdtb=binaries/virt-gicv2.dtb
> -
> -# XTF
> -# Build a single XTF test passed as a first parameter to the script.
> -# Build XTF with GICv2 support to match Qemu configuration and with SBSA UART
> -# support, so that the test will use an emulated UART for printing messages.
> -# This will allow us to run the test on both debug and non-debug Xen builds.
> -rm -rf xtf
> -git clone https://gitlab.com/xen-project/fusa/xtf.git -b xtf-arm
> -make -C xtf TESTS=tests/${xtf_test} CONFIG_SBSA_UART=y CONFIG_GICV2=y -j$(nproc)
> -cp xtf/tests/${xtf_test}/test-mmu64le-${xtf_test} binaries/xtf-test
> -
> -# ImageBuilder
> -echo 'MEMORY_START="0x40000000"
> -MEMORY_END="0xC0000000"
> -
> -XEN="xen"
> -DEVICE_TREE="virt-gicv2.dtb"
> -
> -XEN_CMD="console=dtuart console_timestamps=boot"
> -
> -DOMU_KERNEL[0]="xtf-test"
> -DOMU_MEM[0]="128"
> -
> -NUM_DOMUS=1
> -
> -LOAD_CMD="tftpb"
> -UBOOT_SOURCE="boot.source"
> -UBOOT_SCRIPT="boot.scr"' > binaries/config
> -
> -rm -rf imagebuilder
> -git clone --depth 1 https://gitlab.com/xen-project/imagebuilder.git
> -bash imagebuilder/scripts/uboot-script-gen -t tftp -d binaries/ -c binaries/config
> -
> -# Run the test
> -rm -f smoke.serial
> -export TEST_CMD="./binaries/qemu-system-aarch64 \
> -    -machine virtualization=true \
> -    -cpu cortex-a57 -machine type=virt \
> -    -m 2048 -monitor none -serial stdio \
> -    -smp 2 \
> -    -no-reboot \
> -    -device virtio-net-pci,netdev=n0 \
> -    -netdev user,id=n0,tftp=binaries \
> -    -bios /usr/lib/u-boot/qemu_arm64/u-boot.bin"
> -
> -export UBOOT_CMD="virtio scan; dhcp; tftpb 0x40000000 boot.scr; source 0x40000000"
> -export BOOT_MSG="Latest ChangeSet: "
> -export TEST_LOG="smoke.serial"
> -export PASSED="${passed}"
> -
> -./automation/scripts/console.exp | sed 's/\r\+$//'
> -- 
> 2.34.1
> 
> 


From xen-devel-bounces@lists.xenproject.org Thu Apr 17 00:14:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 00:14:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.956816.1350085 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5Cu0-0004wk-Rm; Thu, 17 Apr 2025 00:14:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 956816.1350085; Thu, 17 Apr 2025 00:14: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 1u5Cu0-0004wc-O4; Thu, 17 Apr 2025 00:14:48 +0000
Received: by outflank-mailman (input) for mailman id 956816;
 Thu, 17 Apr 2025 00:14: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=F/Gg=XD=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u5Ctz-0004wS-Vq
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 00:14:47 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f749cc82-1b20-11f0-9ffb-bf95429c2676;
 Thu, 17 Apr 2025 02:14:45 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 18C9968429;
 Thu, 17 Apr 2025 00:14:27 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2AC01C4CEE2;
 Thu, 17 Apr 2025 00:14:43 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f749cc82-1b20-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1744848884;
	bh=sjVW7f562wFl+xQhK2Yabg1xpb+TP9q5+IJbWWRVs5o=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=DpTsqninCIDOQIrDithYwF1hFyJ1Py1ZAvKK91bRzshy5AR4GJC7II+AJJ63vwX8F
	 SUgSJYncVzndmtLOHfL8NWY6Y/n0INpV2LuUD/FxnHyu5Srnml1dSdIMq/2Ow9cNZL
	 dzA3n9ypMTvKOO30NkkTOjJMTacQtMrpssiU7FWGJ4SDG7x5xs60OBo7zoKgQ+u94P
	 LWEcl53vV21wJdw3UW3bfJUTMr/mSAL9CRI6HMCIU2ReWdzsWuTX9L1nYmLCQLAW3q
	 fYStgUb2SOubIWlFvqjM/KTBQP7pjJgWr3uui6snprCSvzUcnYxWsWniVoIBB8utdz
	 eQgwaBk6+/tUQ==
Date: Wed, 16 Apr 2025 17:14:41 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: dmkhn@proton.me
cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com, 
    cardoe@cardoe.com, marmarek@invisiblethingslab.com, sstabellini@kernel.org, 
    dmukhin@ford.com
Subject: Re: [PATCH v1 2/4] CI: switch x86 EFI smoke test runner to
 qemu-xtf.sh
In-Reply-To: <20250416053213.921444-3-dmukhin@ford.com>
Message-ID: <alpine.DEB.2.22.394.2504161632500.8008@ubuntu-linux-20-04-desktop>
References: <20250416053213.921444-1-dmukhin@ford.com> <20250416053213.921444-3-dmukhin@ford.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Wed, 16 Apr 2025, dmkhn@proton.me wrote:
> From: Denis Mukhin <dmukhin@ford.com>
> 
> Use qemu-xtf.sh for qemu-smoke-x86-64-gcc-efi job.
> 
> Lead time is reduced a bit since not all XTF code base is built, just the
> required test.
> 
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> ---
>  automation/gitlab-ci/test.yaml                |  2 +-
>  .../include/configs/xtf-x86-64-efi-config     |  0
>  automation/scripts/include/xtf-x86-64-efi     | 52 +++++++++++++++++++
>  automation/scripts/qemu-smoke-x86-64-efi.sh   | 43 ---------------
>  4 files changed, 53 insertions(+), 44 deletions(-)
>  create mode 100644 automation/scripts/include/configs/xtf-x86-64-efi-config
>  create mode 100644 automation/scripts/include/xtf-x86-64-efi
>  delete mode 100755 automation/scripts/qemu-smoke-x86-64-efi.sh
> 
> diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
> index 3adc841335..ca1e4eb528 100644
> --- a/automation/gitlab-ci/test.yaml
> +++ b/automation/gitlab-ci/test.yaml
> @@ -687,7 +687,7 @@ qemu-smoke-x86-64-clang-pvh:
>  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}
> +    - ./automation/scripts/qemu-xtf.sh x86-64-efi hvm64 example 2>&1 | tee ${LOGFILE}
>    needs:
>      - debian-12-x86_64-gcc-debug
>  
> diff --git a/automation/scripts/include/configs/xtf-x86-64-efi-config b/automation/scripts/include/configs/xtf-x86-64-efi-config
> new file mode 100644
> index 0000000000..e69de29bb2
> diff --git a/automation/scripts/include/xtf-x86-64-efi b/automation/scripts/include/xtf-x86-64-efi
> new file mode 100644
> index 0000000000..79622d5a6c
> --- /dev/null
> +++ b/automation/scripts/include/xtf-x86-64-efi
> @@ -0,0 +1,52 @@
> +#!/bin/bash
> +#
> +# XTF test utilities (x86_64, EFI).
> +#
> +
> +# Arch-specific environment overrides.
> +function xtf_arch_prepare()
> +{
> +    export FW_PREFIX="${FW_PREFIX:-/usr/share/OVMF/}"
> +    export QEMU_PREFIX="${QEMU_PREFIX:-}"
> +    export XEN_BINARY="${XEN_BINARY:-${WORKDIR}/xen.efi}"

Any chance we can avoid using WORKDIR? Or alternatively, we can remove
TOP? Or remove both? :-)

Maybe it is best to keep WORKDIR and remove TOP, I am not sure. I am
just trying to reduce the amount of variables used and that we depend
upon.

I assume you tested the pipeline and it worked, right?


> +    export XEN_CONSOLE="${XEN_CONSOLE:-com1}"
> +    export XTF_SRC_BRANCH="${XTF_SRC_BRANCH:-master}"
> +    export XTF_SRC_URI="${XTF_SRC_URI:-https://xenbits.xen.org/git-http/xtf.git}"
> +    export XTF_SRC_VARIANTS="hvm64 pv64"
> +}
> +
> +# Perform arch-specific XTF environment setup.
> +function xtf_arch_setup()
> +{
> +    local esp_dir="${WORKDIR}/boot-esp"
> +    local efi_dir="${esp_dir}/EFI/BOOT"
> +
> +    # Generate EFI boot environment
> +    mkdir -p ${efi_dir}
> +    cp ${XEN_BINARY} ${efi_dir}/BOOTX64.EFI
> +    cp ${XTF_BINARY} ${efi_dir}/kernel
> +
> +    cat > ${efi_dir}/BOOTX64.cfg <<EOF
> +[global]
> +default=test
> +
> +[test]
> +options=${XEN_CMDLINE}
> +kernel=kernel
> +EOF
> +
> +    # NB: OVMF_CODE.fd is read-only, no need to copy
> +    cp ${FW_PREFIX}OVMF_VARS.fd ${WORKDIR}
> +
> +    export TEST_CMD="${QEMU_PREFIX}qemu-system-x86_64 \
> +        -no-reboot \
> +        -nographic \
> +        -monitor none \
> +        -serial stdio \
> +        -m 512 \
> +        -M q35,kernel-irqchip=split \
> +        -drive if=pflash,format=raw,readonly=on,file=${FW_PREFIX}OVMF_CODE.fd \
> +        -drive if=pflash,format=raw,file=${WORKDIR}/OVMF_VARS.fd \
> +        -drive file=fat:rw:${esp_dir},media=disk,index=0,format=raw \
> +    "
> +}
> diff --git a/automation/scripts/qemu-smoke-x86-64-efi.sh b/automation/scripts/qemu-smoke-x86-64-efi.sh
> deleted file mode 100755
> index 7572722be6..0000000000
> --- a/automation/scripts/qemu-smoke-x86-64-efi.sh
> +++ /dev/null
> @@ -1,43 +0,0 @@
> -#!/bin/bash
> -
> -set -ex -o pipefail
> -
> -# variant should be either pv or pvh
> -variant=$1
> -
> -# Clone and build XTF
> -git clone https://xenbits.xen.org/git-http/xtf.git
> -cd xtf && make -j$(nproc) && cd -
> -
> -case $variant in
> -    pvh) k=test-hvm64-example    extra="dom0-iommu=none dom0=pvh" ;;
> -    *)   k=test-pv64-example     extra= ;;
> -esac
> -
> -mkdir -p boot-esp/EFI/BOOT
> -cp binaries/xen.efi boot-esp/EFI/BOOT/BOOTX64.EFI
> -cp xtf/tests/example/$k boot-esp/EFI/BOOT/kernel
> -
> -cat > boot-esp/EFI/BOOT/BOOTX64.cfg <<EOF
> -[global]
> -default=test
> -
> -[test]
> -options=loglvl=all console=com1 noreboot console_timestamps=boot $extra
> -kernel=kernel
> -EOF
> -
> -cp /usr/share/OVMF/OVMF_CODE.fd OVMF_CODE.fd
> -cp /usr/share/OVMF/OVMF_VARS.fd OVMF_VARS.fd
> -
> -rm -f smoke.serial
> -export TEST_CMD="qemu-system-x86_64 -nographic -M q35,kernel-irqchip=split \
> -        -drive if=pflash,format=raw,readonly=on,file=OVMF_CODE.fd \
> -        -drive if=pflash,format=raw,file=OVMF_VARS.fd \
> -        -drive file=fat:rw:boot-esp,media=disk,index=0,format=raw \
> -        -m 512 -monitor none -serial stdio"
> -
> -export TEST_LOG="smoke.serial"
> -export PASSED="Test result: SUCCESS"
> -
> -./automation/scripts/console.exp | sed 's/\r\+$//'
> -- 
> 2.34.1
> 
> 


From xen-devel-bounces@lists.xenproject.org Thu Apr 17 00:16:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 00:16:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.956829.1350094 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5Cw5-0005Un-5p; Thu, 17 Apr 2025 00:16:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 956829.1350094; Thu, 17 Apr 2025 00:16: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 1u5Cw5-0005Ug-38; Thu, 17 Apr 2025 00:16:57 +0000
Received: by outflank-mailman (input) for mailman id 956829;
 Thu, 17 Apr 2025 00: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=F/Gg=XD=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u5Cw3-0005Ua-QI
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 00:16:55 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 436bcdc3-1b21-11f0-9eb0-5ba50f476ded;
 Thu, 17 Apr 2025 02:16:54 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 01D7249FA8;
 Thu, 17 Apr 2025 00:16:51 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0ACFFC4CEE2;
 Thu, 17 Apr 2025 00:16: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: 436bcdc3-1b21-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1744849012;
	bh=DrnBQeM+omT38kGqHGAezxyTFQ+kRIksq6XS/9X9t7M=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=kApwmnEOCO4p4US5iETizN+IhSxNkYjK0nqI3YUZl27evyhXIOLiYDUjBEJ4ky+aR
	 qos0SB3vXJkTGT9qIllFt+2QhtljfMogg+jxy8Xu0naJFXTX6Vuy0prFRGacoDOj8j
	 X3zLYUnmiuf9MVJyEdAXm2ACmutbLioClwWGVJCTaRjA9KsG4T0+6/HvyrchdX0Jme
	 VNmfMGJuTBLNQjhJfK7VXjja+mqRP5OOXxB0NfnOfGoa1TYQryM05FQaFpKrFL35pA
	 ZXZGdD2Jg0kHnFOlb47s49oKDY4SnaG+tghT0gHYmkR5DetW17yeAuZzamKVgVf+YK
	 Z9J/ijHxpbyZQ==
Date: Wed, 16 Apr 2025 17:16:49 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: dmkhn@proton.me
cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com, 
    cardoe@cardoe.com, marmarek@invisiblethingslab.com, sstabellini@kernel.org, 
    dmukhin@ford.com
Subject: Re: [PATCH v1 1/4] CI: unify x86 XTF test runner
In-Reply-To: <20250416053213.921444-2-dmukhin@ford.com>
Message-ID: <alpine.DEB.2.22.394.2504161609010.8008@ubuntu-linux-20-04-desktop>
References: <20250416053213.921444-1-dmukhin@ford.com> <20250416053213.921444-2-dmukhin@ford.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Wed, 16 Apr 2025, dmkhn@proton.me wrote:
> From: Denis Mukhin <dmukhin@ford.com>
> 
> Add test runner script qemu-xtf.sh which is allows any XTF x86 test to be
> easily executed. Test runner is invoked from the qemu-smoke* jobs with the
> hardcoded parameters.
> 
> Each x86 XTF job lead time is reduced a bit since only the test-related code
> is built, not the entire XTF project.
> 
> Add .gitignore to avoid committing test artifacts by mistake.
> 
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> ---
>  automation/gitlab-ci/test.yaml                |   8 +-
>  automation/scripts/.gitignore                 |   6 +
>  .../scripts/include/configs/xtf-x86-64-config |   0
>  automation/scripts/include/xtf-runner         | 134 ++++++++++++++++++
>  automation/scripts/include/xtf-x86-64         |  31 ++++
>  automation/scripts/qemu-smoke-x86-64.sh       |  26 ----
>  automation/scripts/qemu-xtf.sh                |  26 ++++
>  7 files changed, 201 insertions(+), 30 deletions(-)
>  create mode 100644 automation/scripts/.gitignore
>  create mode 100644 automation/scripts/include/configs/xtf-x86-64-config
>  create mode 100644 automation/scripts/include/xtf-runner
>  create mode 100644 automation/scripts/include/xtf-x86-64
>  delete mode 100755 automation/scripts/qemu-smoke-x86-64.sh
>  create mode 100755 automation/scripts/qemu-xtf.sh
> 
> diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
> index 5ce445b78f..3adc841335 100644
> --- a/automation/gitlab-ci/test.yaml
> +++ b/automation/gitlab-ci/test.yaml
> @@ -659,28 +659,28 @@ qemu-alpine-x86_64-gcc:
>  qemu-smoke-x86-64-gcc:
>    extends: .qemu-smoke-x86-64
>    script:
> -    - ./automation/scripts/qemu-smoke-x86-64.sh pv 2>&1 | tee ${LOGFILE}
> +    - ./automation/scripts/qemu-xtf.sh x86-64 pv64 example 2>&1 | tee ${LOGFILE}
>    needs:
>      - 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}
> +    - ./automation/scripts/qemu-xtf.sh x86-64 pv64 example 2>&1 | tee ${LOGFILE}
>    needs:
>      - 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}
> +    - ./automation/scripts/qemu-xtf.sh x86-64 hvm64 example 2>&1 | tee ${LOGFILE}
>    needs:
>      - 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}
> +    - ./automation/scripts/qemu-xtf.sh x86-64 hvm64 example 2>&1 | tee ${LOGFILE}
>    needs:
>      - debian-12-x86_64-clang-debug
>  
> diff --git a/automation/scripts/.gitignore b/automation/scripts/.gitignore
> new file mode 100644
> index 0000000000..2f2d6e1ebd
> --- /dev/null
> +++ b/automation/scripts/.gitignore
> @@ -0,0 +1,6 @@
> +!include
> +
> +binaries
> +smoke.serial
> +xen
> +xtf*/

I am not sure this works as intended: I thought the paths are relative
to the location of the .gitignore file, but I could be wrong.


> diff --git a/automation/scripts/include/configs/xtf-x86-64-config b/automation/scripts/include/configs/xtf-x86-64-config
> new file mode 100644
> index 0000000000..e69de29bb2
> diff --git a/automation/scripts/include/xtf-runner b/automation/scripts/include/xtf-runner
> new file mode 100644
> index 0000000000..55b7b34b89
> --- /dev/null
> +++ b/automation/scripts/include/xtf-runner
> @@ -0,0 +1,134 @@
> +#!/bin/bash
> +#
> +# XTF test utilities.
> +#
> +# Environment variables:
> +#   BOOT_MSG: Expected boot message
> +#   FW_PREFIX: Firmware images path including '/' at the end
> +#   PASSED: XTF test printout in case of a pass
> +#   QEMU_PREFIX: QEMU path including '/' at the end
> +#   TEST_LOG: Output log file
> +#   UBOOT_CMD: U-Boot command line
> +#   WORKDIR: Test working directory
> +#   XEN_BINARY: Xen binary location
> +#   XEN_CONSOLE: Xen console device name
> +#   XTF_SRC_CONFIG: XTF config file
> +#   XTF_SRC_BRANCH: XTF branch
> +#   XTF_SRC_URI: XTF source code URI
> +
> +function die()
> +{
> +    set +x
> +    echo "FATAL: $*" >&2
> +    exit 1
> +}
> +
> +[ -z "$TOP" ] && die "\$TOP is not set"
> +
> +# Output log file
> +TEST_LOG="${TEST_LOG:-smoke.serial}"
> +# XTF test printout in case of a pass
> +PASSED="${PASSED:-Test result: SUCCESS}"
> +# Expected boot message
> +BOOT_MSG="${BOOT_MSG:-Latest ChangeSet: }"
> +# Test working directory
> +WORKDIR="${WORKDIR:-binaries}"
> +# XTF source code
> +XTF_SRC_CONFIG="${XTF_CONFIG:-${TOP}/include/configs/xtf-${ARCH}-config}"

Should this be  XTF_SRC_CONFIG="${XTF_SRC_CONFIG:-  ?


> +# Build an XTF test binary.
> +# $1 Test variant.
> +# $2 Test name.
> +function xtf_build_binary()
> +{
> +    local xtf_variant=$1
> +    local xtf_name=$2
> +    local xtf_dir="xtf-${ARCH}"
> +
> +    # Crude check for local testing
> +    if [ ! -d ${xtf_dir}/.git ]; then
> +        git clone ${XTF_SRC_URI} ${xtf_dir} -b ${XTF_SRC_BRANCH}
> +    fi
> +
> +    make \
> +        -C ${xtf_dir} \
> +        -j$(nproc) \
> +        $(tr '\n' ' ' < ${XTF_SRC_CONFIG}) \
> +        TESTS=tests/${xtf_name}
> +
> +    export XTF_NAME="${xtf_name}"
> +    export XTF_VARIANT="${xtf_variant}"
> +    export XTF_WORKDIR="$(readlink -f ${xtf_dir})"
> +    export XTF_BINARY="${XTF_WORKDIR}/tests/${xtf_name}/test-${xtf_variant}-${xtf_name}"
> +}
> +
> +# Build Xen command line for running an XTF test.
> +# $1 Test variant.
> +# $2 Test name.
> +function xtf_build_cmdline()
> +{
> +    local xtf_variant=$1
> +    local xtf_name=$2
> +    declare -a cmdline=()
> +
> +    cmdline+=("loglvl=all noreboot console_timestamps=boot")
> +    cmdline+=("console=${XEN_CONSOLE}")
> +
> +    # NB: OK to have hvm64, which is x86-only variant
> +    if [[ $xtf_variant == "hvm64" ]]; then
> +        cmdline+=("dom0-iommu=none dom0=pvh")
> +    fi
> +
> +    export XEN_CMDLINE="${cmdline[@]}"
> +}
> +
> +# Build an XTF test environment.
> +# $1 Test variant.
> +# $2 Test name.
> +function xtf_build_test()
> +{
> +    local v=$1
> +    local xtf_name=$2
> +    local xtf_variant=""
> +
> +    for x in ${XTF_SRC_VARIANTS}; do
> +        if [[ "${x}" == "${v}" ]]; then
> +            xtf_variant=${v}
> +            break
> +        fi
> +    done
> +    if [[ -z $xtf_variant ]]; then
> +        die "unsupported test variant '$1', supported variants: ${XTF_SRC_VARIANTS}"
> +    fi
> +
> +    xtf_build_binary ${xtf_variant} ${xtf_name}
> +    xtf_build_cmdline ${xtf_variant} ${xtf_name}
> +}
> +
> +# Execute an XTF test.
> +function xtf_run_test()
> +{
> +    rm -f ${TEST_LOG}
> +    export BOOT_MSG PASSED TEST_CMD TEST_LOG UBOOT_CMD
> +    ${TOP}/console.exp | sed 's/\r\+$//'
> +}
> +
> +# Setup environment and run an XTF test.
> +# $1 Test variant.
> +# $2 Test name.
> +function xtf_test()
> +{
> +    # Out: FW_*, QEMU_*, XEN_{BINARY,CONSOLE}, XTF_SRC_*
> +    xtf_arch_prepare
> +
> +    # In: XTF_SRC_*
> +    # OUt: XTF_{BINARY,NAME,VARIANT,WORKDIR} and XEN_CMDLINE
> +    xtf_build_test $@
> +
> +    # In: FW_*, QEMU_*, XTF_*, XEN_*
> +    # Out: BOOT_MSG, PASSED, TEST_{CMD,LOG}, UBOOT_CMD
> +    xtf_arch_setup
> +
> +    # In: BOOT_MSG, PASSED, TEST_{CMD,LOG}, UBOOT_CMD
> +    xtf_run_test
> +}
> diff --git a/automation/scripts/include/xtf-x86-64 b/automation/scripts/include/xtf-x86-64
> new file mode 100644
> index 0000000000..edddf18b38
> --- /dev/null
> +++ b/automation/scripts/include/xtf-x86-64
> @@ -0,0 +1,31 @@
> +#!/bin/bash
> +#
> +# XTF test utilities (x86_64).
> +#
> +
> +# Arch-specific environment overrides.
> +function xtf_arch_prepare()
> +{
> +    export FW_PREFIX="${FW_PREFIX:-}"
> +    export QEMU_PREFIX="${QEMU_PREFIX:-}"

It looks like QEMU_PREFIX is only used within this file (and other
similar files in later patches). If so, maybe for the sake of reducing
global variables and variables in general we could get rid of
QEMU_PREFIX.


> +    export XEN_BINARY="${XEN_BINARY:-${WORKDIR}/xen}"
> +    export XEN_CONSOLE="${XEN_CONSOLE:-com1}"

Instead of XEN_CONSOLE, I'd suggest to have an arch-specific variable
for Xen command line options where we can put the console as well as
other things. However, it is also totally fine as is.

In fact, I think you went above and beyond in terms of generic
abstractions, and I think it would have been OK to go with fewer
variables, and more ad-hoc custom code.


> +    export XTF_SRC_BRANCH="${XTF_SRC_BRANCH:-master}"
> +    export XTF_SRC_URI="${XTF_SRC_URI:-https://xenbits.xen.org/git-http/xtf.git}"
> +    export XTF_SRC_VARIANTS="hvm64 pv64"
> +}
> +
> +# Perform arch-specific XTF environment setup.
> +function xtf_arch_setup()
> +{
> +    export TEST_CMD="${QEMU_PREFIX}qemu-system-x86_64 \
> +        -no-reboot \
> +        -nographic \
> +        -monitor none \
> +        -serial stdio \
> +        -m 512 \
> +        -kernel ${XEN_BINARY} \
> +        -initrd ${XTF_BINARY} \
> +        -append \"${XEN_CMDLINE}\" \
> +    "
> +}
> diff --git a/automation/scripts/qemu-smoke-x86-64.sh b/automation/scripts/qemu-smoke-x86-64.sh
> deleted file mode 100755
> index da0c26cc2f..0000000000
> --- a/automation/scripts/qemu-smoke-x86-64.sh
> +++ /dev/null
> @@ -1,26 +0,0 @@
> -#!/bin/bash
> -
> -set -ex -o pipefail
> -
> -# variant should be either pv or pvh
> -variant=$1
> -
> -# Clone and build XTF
> -git clone https://xenbits.xen.org/git-http/xtf.git
> -cd xtf && make -j$(nproc) && cd -
> -
> -case $variant in
> -    pvh) k=test-hvm64-example    extra="dom0-iommu=none dom0=pvh" ;;
> -    *)   k=test-pv64-example     extra= ;;
> -esac
> -
> -rm -f smoke.serial
> -export TEST_CMD="qemu-system-x86_64 -nographic -kernel binaries/xen \
> -        -initrd xtf/tests/example/$k \
> -        -append \"loglvl=all console=com1 noreboot console_timestamps=boot $extra\" \
> -        -m 512 -monitor none -serial stdio"
> -
> -export TEST_LOG="smoke.serial"
> -export PASSED="Test result: SUCCESS"
> -
> -./automation/scripts/console.exp | sed 's/\r\+$//'
> diff --git a/automation/scripts/qemu-xtf.sh b/automation/scripts/qemu-xtf.sh
> new file mode 100755
> index 0000000000..2e16d4aece
> --- /dev/null
> +++ b/automation/scripts/qemu-xtf.sh
> @@ -0,0 +1,26 @@
> +#!/bin/bash
> +#
> +# XTF test runner (QEMU).
> +#
> +
> +set -e -o pipefail
> +
> +if [ $# -lt 3 ]; then
> +    echo "Usage: $(basename $0) ARCH XTF-VARIANT XTF-NAME"
> +    exit 1
> +fi
> +
> +export ARCH="$1"
> +shift
> +
> +export TOP="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
> +if [ ! -f "${TOP}/include/xtf-${ARCH}" ]; then
> +    echo "unsupported architecture '${ARCH}'" >&2
> +    exit 1
> +fi

This seems a bit complex.. maybe we can assume that we are in xen.git/ ?


> +set -x
> +source ${TOP}/include/xtf-runner
> +source ${TOP}/include/xtf-${ARCH}

So here we could do:

source automation/scripts/include/xtf-runner

? Or is it important to be able to detect and calculate the directory?
If so, why not use TOP=$(pwd) or TOP=${PWD} or TOP=$(dirname "$0")?
By the way, if we need a variable for the top directory I would call it
XEN_ROOT instead of TOP.

I see the patches are using both TOP and WORKDIR, maybe we can get rid
of one of them? This is only a matter of taste but I think it would be
simpler with fewer variables and most of  the others look unavoidable.

Everything else looks OK to me.


> +xtf_test $@
> -- 
> 2.34.1
> 
> 


From xen-devel-bounces@lists.xenproject.org Thu Apr 17 00:18:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 00:18:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.956844.1350104 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5Cxq-00067D-KF; Thu, 17 Apr 2025 00:18:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 956844.1350104; Thu, 17 Apr 2025 00:18: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 1u5Cxq-000676-Gy; Thu, 17 Apr 2025 00:18:46 +0000
Received: by outflank-mailman (input) for mailman id 956844;
 Thu, 17 Apr 2025 00:18: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=F/Gg=XD=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u5Cxo-00066y-Hn
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 00:18:44 +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 84d91108-1b21-11f0-9eb0-5ba50f476ded;
 Thu, 17 Apr 2025 02:18:43 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 6F7635C52C7;
 Thu, 17 Apr 2025 00:16:24 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5658DC4CEE2;
 Thu, 17 Apr 2025 00:18: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: 84d91108-1b21-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1744849121;
	bh=p60El9KhttI6jSEUCffSKEG5DJG9Rkby0dmfK3nWEnQ=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=ULVWQmkgiOiWGUASX56TvMpF0/M2tqmP3HMhNHY0e66TnGsCbzH98BjA4ZALGmBGo
	 dHiyXa+owIXhArY5B9+AnXK/9BWXE0Z4ObHn/QoDIPjHS2TCKvrzyjb6ASedQ5lx0L
	 m+666s8ofiCtlNCXHBGiDynvzBGEiTfC7qZoFvipeh2hb+uljly0Z91JYz5KPSFV8M
	 6xWkFBc73LXUUw5FJMZsBNnky5fh1NuZN4Zu9eQuUWNicFY4i2rfFHaMSS4DRCUDJt
	 6cG6hxrxTiYMp+btjtCVtYkPjkbAa8MWsIdZY6IqG5g9reIY8aPa4R2v3QQf6eoS5G
	 8DWTVMe59oxoQ==
Date: Wed, 16 Apr 2025 17:18:38 -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: Xen-devel <xen-devel@lists.xenproject.org>, 
    Anthony PERARD <anthony.perard@vates.tech>, 
    Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, 
    Julien Grall <julien@xen.org>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
    Bertrand Marquis <bertrand.marquis@arm.com>, 
    Shawn Anastasio <sanastasio@raptorengineering.com>, 
    Oleksii Kurochko <oleksii.kurochko@gmail.com>, 
    "Daniel P . Smith" <dpsmith@apertussolutions.com>, 
    Lin Liu <lin.liu@citrix.com>
Subject: Re: [PATCH v6 12/15] arm: Remove asm/byteorder.h
In-Reply-To: <20250416115900.2491661-13-andrew.cooper3@citrix.com>
Message-ID: <alpine.DEB.2.22.394.2504161718320.8008@ubuntu-linux-20-04-desktop>
References: <20250416115900.2491661-1-andrew.cooper3@citrix.com> <20250416115900.2491661-13-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 Wed, 16 Apr 2025, Andrew Cooper wrote:
> With the common code moved fully onto xen/byteorder.h, clean up the dregs.
> 
> Sort includes in some files while swapping over to xen/byteorder.h.
> 
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>


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


From xen-devel-bounces@lists.xenproject.org Thu Apr 17 00:20:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 00:20:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.956855.1350115 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5Cz4-0006sF-TH; Thu, 17 Apr 2025 00:20:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 956855.1350115; Thu, 17 Apr 2025 00: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 1u5Cz4-0006ro-Pt; Thu, 17 Apr 2025 00:20:02 +0000
Received: by outflank-mailman (input) for mailman id 956855;
 Thu, 17 Apr 2025 00:20: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=F/Gg=XD=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u5Cz3-0006dH-Va
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 00:20:01 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b3062776-1b21-11f0-9eb0-5ba50f476ded;
 Thu, 17 Apr 2025 02:20:00 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 2BADA68429;
 Thu, 17 Apr 2025 00:19:42 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 51C83C4CEEE;
 Thu, 17 Apr 2025 00:19: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: b3062776-1b21-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1744849199;
	bh=0TKDp/5pNgIOCC2JWoez0FbriVmlqQ2VoZXny+nWDyo=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=K0q2LRZCC0PbqyNYN8BI/LwynZPX8UBhXbK18YsGRgSlg5A3+YNqVuW0e9vqaLEH7
	 o5gdyqJRGgEZb4znUoacXV5YkdKmgfLEav8oGf04yymJ6s8TBe9K031g/8RGOPUCBI
	 bNsUy1/C2gaEbR88CdkZPuRClv0p3+ugzi37ON0eQ3lSpkKmDzz4UF81Wa2U0ISIXN
	 VzCYJFRxjmYqS+h0NR+teEpWD1D3hlAzxBoG5Ke5/MzspaoSxgV3IKIFtxnrmBtBOb
	 9RxhC9bp+gfXNc30ksNrgtMl6JbMiFlti3JZMWOxxXl3B8Q98sYbscOfmXfCvIScY3
	 MRAqfh1MAPz4Q==
Date: Wed, 16 Apr 2025 17:19:56 -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: Xen-devel <xen-devel@lists.xenproject.org>, 
    Anthony PERARD <anthony.perard@vates.tech>, 
    Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, 
    Julien Grall <julien@xen.org>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
    Bertrand Marquis <bertrand.marquis@arm.com>, 
    Shawn Anastasio <sanastasio@raptorengineering.com>, 
    Oleksii Kurochko <oleksii.kurochko@gmail.com>, 
    "Daniel P . Smith" <dpsmith@apertussolutions.com>, 
    Lin Liu <lin.liu@citrix.com>, rahul.singh@arm.com
Subject: Re: [PATCH v6 02/15] drivers/smmu-v3: Fix impending MISRA R20.6
 violation
In-Reply-To: <20250416115900.2491661-3-andrew.cooper3@citrix.com>
Message-ID: <alpine.DEB.2.22.394.2504161719340.8008@ubuntu-linux-20-04-desktop>
References: <20250416115900.2491661-1-andrew.cooper3@citrix.com> <20250416115900.2491661-3-andrew.cooper3@citrix.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="8323329-1510834496-1744849199=:8008"

  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-1510834496-1744849199=:8008
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8BIT

+ Rahul

On Wed, 16 Apr 2025, Andrew Cooper wrote:
> cpu_to_le64() is about to become a macro, at which point the #ifdef in the
> middle of it becomes undefined behaviour.
> 
> Use a logcal variable to prepare strtab, where the #ifdef is fine to use.
> 
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> CC: Anthony PERARD <anthony.perard@vates.tech>
> CC: Michal Orzel <michal.orzel@amd.com>
> CC: Jan Beulich <jbeulich@suse.com>
> CC: Julien Grall <julien@xen.org>
> CC: Roger Pau Monné <roger.pau@citrix.com>
> CC: Stefano Stabellini <sstabellini@kernel.org>
> CC: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
> CC: Bertrand Marquis <bertrand.marquis@arm.com>
> CC: Shawn Anastasio <sanastasio@raptorengineering.com>
> CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> CC: Daniel P. Smith <dpsmith@apertussolutions.com>
> CC: Lin Liu <lin.liu@citrix.com>
> 
> v6:
>  * New
> 
> Eclair log from v5:
>   https://saas.eclairit.com:3787/fs/var/local/eclair/xen-project.ecdf/xen-project/people/andyhhp/xen/ECLAIR_normal/xen-bswap/ARM64/9556392204/PROJECT.ecd;/by_service/MC3A2.R20.6.html
> ---
>  xen/drivers/passthrough/arm/smmu-v3.c | 8 +++++---
>  1 file changed, 5 insertions(+), 3 deletions(-)
> 
> diff --git a/xen/drivers/passthrough/arm/smmu-v3.c b/xen/drivers/passthrough/arm/smmu-v3.c
> index cee572402203..df162350578c 100644
> --- a/xen/drivers/passthrough/arm/smmu-v3.c
> +++ b/xen/drivers/passthrough/arm/smmu-v3.c
> @@ -722,15 +722,17 @@ static void arm_smmu_write_strtab_ent(struct arm_smmu_master *master, u32 sid,
>  	}
>  
>  	if (s2_cfg) {
> -		BUG_ON(ste_live);
> -		dst[2] = cpu_to_le64(
> +		u64 strtab =
>  			 FIELD_PREP(STRTAB_STE_2_S2VMID, s2_cfg->vmid) |
>  			 FIELD_PREP(STRTAB_STE_2_VTCR, s2_cfg->vtcr) |
>  #ifdef __BIG_ENDIAN
>  			 STRTAB_STE_2_S2ENDI |
>  #endif
>  			 STRTAB_STE_2_S2PTW | STRTAB_STE_2_S2AA64 |
> -			 STRTAB_STE_2_S2R);
> +			 STRTAB_STE_2_S2R;
> +
> +		BUG_ON(ste_live);
> +		dst[2] = cpu_to_le64(strtab);
>  
>  		dst[3] = cpu_to_le64(s2_cfg->vttbr & STRTAB_STE_3_S2TTB_MASK);
>  
> -- 
> 2.39.5
> 
--8323329-1510834496-1744849199=:8008--


From xen-devel-bounces@lists.xenproject.org Thu Apr 17 00:58:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 00:58:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.956873.1350124 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5DaS-00052B-Kh; Thu, 17 Apr 2025 00:58:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 956873.1350124; Thu, 17 Apr 2025 00: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 1u5DaS-000524-I8; Thu, 17 Apr 2025 00:58:40 +0000
Received: by outflank-mailman (input) for mailman id 956873;
 Thu, 17 Apr 2025 00:58: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=nF+x=XD=kernel.org=kuba@srs-se1.protection.inumbo.net>)
 id 1u5DaR-00051y-PE
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 00:58:39 +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 184b928f-1b27-11f0-9eb0-5ba50f476ded;
 Thu, 17 Apr 2025 02:58:38 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by nyc.source.kernel.org (Postfix) with ESMTP id 9B576A4B0C3;
 Thu, 17 Apr 2025 00:53:08 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1FE9CC4CEE2;
 Thu, 17 Apr 2025 00:58:36 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 184b928f-1b27-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1744851516;
	bh=IJ60gUMEGTmb8XxC1mQ13En+4ayrfd2OTpbrOX8ZN1A=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=asR2gNEl/7FkbuQ+3UP4beLzsskFfi/ipeAnceSSj7rL1aTmcmirHu0ADrFJl1nA8
	 NmEEUbzJaHKbo/cypO19YlgFaH0l/Y69kfC5sc1VXmOVwHN17FWQxnjaThmZvG6keA
	 WUBp2Ozj8xPdpuJgpZfzk19Ftd3wsieylcIL2PESPXlY9WM2IwclfL9ln625Ie1xYW
	 5oNMh/4Kp9JYKR1e5qdre3WUUOyNO66b94MbZMIa8uP1poMII5p/iK1vqRziVmhFga
	 UqVdL1MpQB5cN0VUkZDBrs3HTR1J1VxPjI76RUpkT16+QpXkTTDI+Wa92QEvL+mK8/
	 tEc7ZZS/i3oTw==
Date: Wed, 16 Apr 2025 17:58:35 -0700
From: Jakub Kicinski <kuba@kernel.org>
To: Alexey Nepomnyashih <sdl@nppct.ru>
Cc: Juergen Gross <jgross@suse.com>, Stefano Stabellini
 <sstabellini@kernel.org>, Oleksandr Tyshchenko
 <oleksandr_tyshchenko@epam.com>, "David S. Miller" <davem@davemloft.net>,
 Eric Dumazet <edumazet@google.com>, Paolo Abeni <pabeni@redhat.com>, Alexei
 Starovoitov <ast@kernel.org>, Daniel Borkmann <daniel@iogearbox.net>,
 Jesper Dangaard Brouer <hawk@kernel.org>, John Fastabend
 <john.fastabend@gmail.com>, xen-devel@lists.xenproject.org,
 netdev@vger.kernel.org, linux-kernel@vger.kernel.org, bpf@vger.kernel.org,
 lvc-project@linuxtesting.org, stable@vger.kernel.org
Subject: Re: [PATCH] xen-netfront: handle NULL returned by
 xdp_convert_buff_to_frame()
Message-ID: <20250416175835.687a5872@kernel.org>
In-Reply-To: <20250414183403.265943-1-sdl@nppct.ru>
References: <20250414183403.265943-1-sdl@nppct.ru>
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit

On Mon, 14 Apr 2025 18:34:01 +0000 Alexey Nepomnyashih wrote:
>  		get_page(pdata);

Please notice this get_page() here.

>  		xdpf = xdp_convert_buff_to_frame(xdp);
> +		if (unlikely(!xdpf)) {
> +			trace_xdp_exception(queue->info->netdev, prog, act);
> +			break;
> +		}


From xen-devel-bounces@lists.xenproject.org Thu Apr 17 03:13:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 03:13:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.956894.1350139 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5FgQ-00005X-0I; Thu, 17 Apr 2025 03:12:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 956894.1350139; Thu, 17 Apr 2025 03: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 1u5FgP-00005N-R3; Thu, 17 Apr 2025 03:12:57 +0000
Received: by outflank-mailman (input) for mailman id 956894;
 Thu, 17 Apr 2025 03:12: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=bAEg=XD=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1u5FgO-00005H-G4
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 03:12:56 +0000
Received: from fout-a6-smtp.messagingengine.com
 (fout-a6-smtp.messagingengine.com [103.168.172.149])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d92761c2-1b39-11f0-9ffb-bf95429c2676;
 Thu, 17 Apr 2025 05:12:52 +0200 (CEST)
Received: from phl-compute-01.internal (phl-compute-01.phl.internal
 [10.202.2.41])
 by mailfout.phl.internal (Postfix) with ESMTP id 4BA0B138021B;
 Wed, 16 Apr 2025 23:12:51 -0400 (EDT)
Received: from phl-mailfrontend-01 ([10.202.2.162])
 by phl-compute-01.internal (MEProxy); Wed, 16 Apr 2025 23:12:51 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed,
 16 Apr 2025 23:12:49 -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: d92761c2-1b39-11f0-9ffb-bf95429c2676
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=fm2; t=1744859571;
	 x=1744945971; bh=2GjRPS+ddX8pS6zlcgaNUhaltUO8C3UPVOnIlT9jlMo=; b=
	Z7L0Hx0k0yJ4gLCuZbvCc3vYPVxjiuJ9kqEhLdRuE3BFzBavYZPx6BsFUP25ZjY7
	/uoM7820oSJp59ZsdnEybtBiVsyNwPSsnl5hmD/04OQgaYeJkrCWR+JCr+v9lfNL
	+JEol4vP/Y/sUWiYVarehkuLPHu8dWYREE5QTeZss0LjQjCCZjttVhn10ja4SFj/
	vOW1WNR/EBWO+pOY4fP0sykz5z26oYOBkTvjULfwI6f/ckuLOgGu7nhyNN8bU/4c
	FRRW6DWkmS86muE1HHKM3Lw731pLkXuc7y0Xme8YIN8UVLeCl0/RVtbkfOVLpiGo
	JpxaEjWI5xnycxks8fPP4A==
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=fm2; t=
	1744859571; x=1744945971; bh=2GjRPS+ddX8pS6zlcgaNUhaltUO8C3UPVOn
	IlT9jlMo=; b=wCsvJ4tBDG+wq9pLDmHb/n62t3wLuW6lHSmKXt1ziokFTAvFTfT
	cEDo8eAf1IgywlNuG8rSN7J9saUqwANjoa3M8OuS5k8QXLDiH9UCGIx/8vdEsCmn
	wF0xiT+KAgQtsEiYx8Gwqy4pfuYX4VVJ+smbscYA3m7IlnCszv2+eGuLQJY0DW0V
	TnXIsJ0+aYhMLDPm7XnO6sCHxRGAFNDWZLFmbEkozVTMu8ppYZNcAuCYGCxykErJ
	KraEdmS0EDAfe//XWrrGo6YfzRsOnEeZ/lejm309OMSRxiXgRhlvd5B/w54EmNgl
	Gy71hh+qXWXfAlEXhkbPsielUzP+UbP9+7Q==
X-ME-Sender: <xms:snEAaNgXNfgGJ7vb5qL_uMGT5QUo-wWTWNOg33xl5sY74GTsqg2lCw>
    <xme:snEAaCBTHfXgVXGZeGtor6EukMOpqAsbiTBeT8ByqyKwOtt1qFVmPxd8xTfPZpJZk
    xZ15E_wtc3QyA>
X-ME-Received: <xmr:snEAaNF8Cw-tOYWez3B-cS9_4gvfbd8c9uvjHn5Rz1Jrod_J-RfiJ4m4cbFSLJf00fIDDFfO_4jkrniJ-6PSzH9Y3XwD63mTRQ>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvvdekudegucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
    pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
    gvnhhtshculddquddttddmnecujfgurhepfffhvfevuffkfhggtggujgesghdtreertddt
    jeenucfhrhhomhepofgrrhgvkhcuofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuc
    eomhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecu
    ggftrfgrthhtvghrnhepgfduleetfeevhfefheeiteeliefhjefhleduveetteekveettd
    dvgeeuteefjedunecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhf
    rhhomhepmhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomh
    dpnhgspghrtghpthhtohephedpmhhouggvpehsmhhtphhouhhtpdhrtghpthhtohepfhhr
    vgguihgrnhhordiiihhglhhiohestghlohhuugdrtghomhdprhgtphhtthhopeigvghnqd
    guvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdprhgtphhtthhopegu
    phhsmhhithhhsegrphgvrhhtuhhsshholhhuthhiohhnshdrtghomhdprhgtphhtthhope
    hjsggvuhhlihgthhesshhushgvrdgtohhmpdhrtghpthhtoheprghnughrvgifrdgtohho
    phgvrhefsegtihhtrhhigidrtghomh
X-ME-Proxy: <xmx:snEAaCRXl01J9RiHO0ThgEWmwyRPKd0QJrl1wfLFLCCu7Ugugs0LBg>
    <xmx:snEAaKw2Lss0yHR2KmAZmlLpZxhlREwTh4_a5TANK4iwX5dotxKnhg>
    <xmx:snEAaI5rQhc3qJdzKFhEOkG-4T54YuzVdjwklvCrOhO9PgND5XxOxQ>
    <xmx:snEAaPzwblEp_x20C1dezhaz3oUIqtaoFh_zUtZo9kedPM2MiZPvhQ>
    <xmx:s3EAaN0zcB703rUvmdBblyJoC4BzqoMISfdC4PG3TK3wtOUHv_tTYUFQ>
Feedback-ID: i1568416f:Fastmail
Date: Thu, 17 Apr 2025 05:12:47 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Frediano Ziglio <frediano.ziglio@cloud.com>
Cc: xen-devel@lists.xenproject.org,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: [PATCH v7] Avoid crash calling PrintErrMesg from efi_multiboot2
Message-ID: <aABxr9W8_L3sQBHh@mail-itl>
References: <20250321103258.37425-1-frediano.ziglio@cloud.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="TCI/ONZ83qF/8yz1"
Content-Disposition: inline
In-Reply-To: <20250321103258.37425-1-frediano.ziglio@cloud.com>


--TCI/ONZ83qF/8yz1
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Thu, 17 Apr 2025 05:12:47 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Frediano Ziglio <frediano.ziglio@cloud.com>
Cc: xen-devel@lists.xenproject.org,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: [PATCH v7] Avoid crash calling PrintErrMesg from efi_multiboot2

On Fri, Mar 21, 2025 at 10:32:58AM +0000, Frediano Ziglio wrote:
> Although code is compiled with -fpic option data is not position
> independent. This causes data pointer to become invalid if
> code is not relocated properly which is what happens for
> efi_multiboot2 which is called by multiboot entry code.
>=20
> Code tested adding
>    PrintErrMesg(L"Test message", EFI_BUFFER_TOO_SMALL);
> in efi_multiboot2 before calling efi_arch_edd (this function
> can potentially call PrintErrMesg).
>=20
> Before the patch (XenServer installation on Qemu, xen replaced
> with vanilla xen.gz):
>   Booting `XenServer (Serial)'Booting `XenServer (Serial)'
>   Test message: !!!! X64 Exception Type - 0E(#PF - Page-Fault)  CPU Apic =
ID - 00000000 !!!!
>   ExceptionData - 0000000000000000  I:0 R:0 U:0 W:0 P:0 PK:0 SS:0 SGX:0
>   RIP  - 000000007EE21E9A, CS  - 0000000000000038, RFLAGS - 0000000000210=
246
>   RAX  - 000000007FF0C1B5, RCX - 0000000000000050, RDX - 0000000000000010
>   RBX  - 0000000000000000, RSP - 000000007FF0C180, RBP - 000000007FF0C210
>   RSI  - FFFF82D040467CE8, RDI - 0000000000000000
>   R8   - 000000007FF0C1C8, R9  - 000000007FF0C1C0, R10 - 0000000000000000
>   R11  - 0000000000001020, R12 - FFFF82D040467CE8, R13 - 000000007FF0C1B8
>   R14  - 000000007EA33328, R15 - 000000007EA332D8
>   DS   - 0000000000000030, ES  - 0000000000000030, FS  - 0000000000000030
>   GS   - 0000000000000030, SS  - 0000000000000030
>   CR0  - 0000000080010033, CR2 - FFFF82D040467CE8, CR3 - 000000007FC01000
>   CR4  - 0000000000000668, CR8 - 0000000000000000
>   DR0  - 0000000000000000, DR1 - 0000000000000000, DR2 - 0000000000000000
>   DR3  - 0000000000000000, DR6 - 00000000FFFF0FF0, DR7 - 0000000000000400
>   GDTR - 000000007F9DB000 0000000000000047, LDTR - 0000000000000000
>   IDTR - 000000007F48E018 0000000000000FFF,   TR - 0000000000000000
>   FXSAVE_STATE - 000000007FF0BDE0
>   !!!! Find image based on IP(0x7EE21E9A) (No PDB)  (ImageBase=3D00000000=
7EE20000, EntryPoint=3D000000007EE23935) !!!!
>=20
> After the patch:
>   Booting `XenServer (Serial)'Booting `XenServer (Serial)'
>   Test message: Buffer too small
>   BdsDxe: loading Boot0000 "UiApp" from Fv(7CB8BDC9-F8EB-4F34-AAEA-3EE4AF=
6516A1)/FvFile(462CAA21-7614-4503-836E-8AB6F4662331)
>   BdsDxe: starting Boot0000 "UiApp" from Fv(7CB8BDC9-F8EB-4F34-AAEA-3EE4A=
F6516A1)/FvFile(462CAA21-7614-4503-836E-8AB6F4662331)
>=20
> This partially rollback commit 00d5d5ce23e6.
>=20
> Fixes: 9180f5365524 ("x86: add multiboot2 protocol support for EFI platfo=
rms")
> Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>

-no-jump-tables is available since clang 3.9.0 (and since GCC 4.1.0), so
with upgraded base toolchain requirements it's safe to commit this now.

Acked-by: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblethingslab.com>

> ---
> Changes since v1:
> - added "Fixes:" tag;
> - fixed cast style change.
>=20
> Changes since v2:
> - wrap long line.
>=20
> Changes since v3:
> - fixed "Fixes:" tag.
>=20
> Changes since v4:
> - use switch instead of tables.
>=20
> Changes since v5:
> - added -fno-jump-tables option.
>=20
> Changes since v6:
> - rebased.
> ---
>  xen/common/efi/boot.c        | 58 ++++++++++++++++++++++++------------
>  xen/common/efi/efi-common.mk |  1 +
>  2 files changed, 40 insertions(+), 19 deletions(-)
>=20
> diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c
> index efbec00af9..143b5681ba 100644
> --- a/xen/common/efi/boot.c
> +++ b/xen/common/efi/boot.c
> @@ -287,33 +287,53 @@ 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 =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 changed",
> -        [~EFI_ERROR_MASK & EFI_DEVICE_ERROR]        =3D L"Device error",
> -        [~EFI_ERROR_MASK & EFI_VOLUME_CORRUPTED]    =3D L"Volume corrupt=
ed",
> -        [~EFI_ERROR_MASK & EFI_ACCESS_DENIED]       =3D L"Access denied",
> -        [~EFI_ERROR_MASK & EFI_OUT_OF_RESOURCES]    =3D L"Out of resourc=
es",
> -        [~EFI_ERROR_MASK & EFI_VOLUME_FULL]         =3D L"Volume is full=
",
> -        [~EFI_ERROR_MASK & EFI_SECURITY_VIOLATION]  =3D L"Security viola=
tion",
> -        [~EFI_ERROR_MASK & EFI_CRC_ERROR]           =3D L"CRC error",
> -        [~EFI_ERROR_MASK & EFI_COMPROMISED_DATA]    =3D L"Compromised da=
ta",
> -        [~EFI_ERROR_MASK & EFI_BUFFER_TOO_SMALL]    =3D L"Buffer too sma=
ll",
> -    };
> -    EFI_STATUS ErrIdx =3D ErrCode & ~EFI_ERROR_MASK;
> -
>      StdOut =3D StdErr;
>      PrintErr(mesg);
>      PrintErr(L": ");
> =20
> -    if( (ErrIdx < ARRAY_SIZE(ErrCodeToStr)) && ErrCodeToStr[ErrIdx] )
> -        mesg =3D ErrCodeToStr[ErrIdx];
> -    else
> +    switch (ErrCode)
>      {
> +    case EFI_NOT_FOUND:
> +        mesg =3D L"Not found";
> +        break;
> +    case EFI_NO_MEDIA:
> +        mesg =3D L"The device has no media";
> +        break;
> +    case EFI_MEDIA_CHANGED:
> +        mesg =3D L"Media changed";
> +        break;
> +    case EFI_DEVICE_ERROR:
> +        mesg =3D L"Device error";
> +        break;
> +    case EFI_VOLUME_CORRUPTED:
> +        mesg =3D L"Volume corrupted";
> +        break;
> +    case EFI_ACCESS_DENIED:
> +        mesg =3D L"Access denied";
> +        break;
> +    case EFI_OUT_OF_RESOURCES:
> +        mesg =3D L"Out of resources";
> +        break;
> +    case EFI_VOLUME_FULL:
> +        mesg =3D L"Volume is full";
> +        break;
> +    case EFI_SECURITY_VIOLATION:
> +        mesg =3D L"Security violation";
> +        break;
> +    case EFI_CRC_ERROR:
> +        mesg =3D L"CRC error";
> +        break;
> +    case EFI_COMPROMISED_DATA:
> +        mesg =3D L"Compromised data";
> +        break;
> +    case EFI_BUFFER_TOO_SMALL:
> +        mesg =3D L"Buffer too small";
> +        break;
> +    default:
>          PrintErr(L"ErrCode: ");
>          DisplayUint(ErrCode, 0);
>          mesg =3D NULL;
> +        break;
>      }
>      blexit(mesg);
>  }
> diff --git a/xen/common/efi/efi-common.mk b/xen/common/efi/efi-common.mk
> index 23cafcf20c..06b1c19674 100644
> --- a/xen/common/efi/efi-common.mk
> +++ b/xen/common/efi/efi-common.mk
> @@ -2,6 +2,7 @@ EFIOBJ-y :=3D boot.init.o pe.init.o ebmalloc.o runtime.o
>  EFIOBJ-$(CONFIG_COMPAT) +=3D compat.o
> =20
>  CFLAGS-y +=3D -fshort-wchar
> +CFLAGS-y +=3D -fno-jump-tables
>  CFLAGS-y +=3D -iquote $(srctree)/common/efi
>  CFLAGS-y +=3D -iquote $(srcdir)
> =20
> --=20
> 2.43.0
>=20

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

--TCI/ONZ83qF/8yz1
Content-Type: application/pgp-signature; name=signature.asc

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmgAca8ACgkQ24/THMrX
1yxXBgf+PTSXlLpxQfxCbYlKEJb/lMXA9xdvm5vI4Z+mnDTpn7TkkIoMoj+q03BY
l0YK0MsAVdzUl0cz8Em5ZyshY5WKa48pqB6gH5YU4ANQW1UVrCiOQTu9njt4mJyv
0tPUT4QIOLGyUWFl4Yx19IvNVo3ujOz1I750Yh8ZqMRLaDpIjzHl9GqMaY97Mj8f
DoL4rx2xrOf6N8xPE7tNuallhuvDl8x52sAWU8y/LMc/UGBOwZTZOMJAAIUC8S+o
JYuG5swUVfKYliJaKX3S455/Lggd7ZG6CQUS7Td1emr+dHHFtbAtkRy5GOWHod14
KKnkNhlQcXGvzp4GtMcBdvPFuM7nUA==
=lZKB
-----END PGP SIGNATURE-----

--TCI/ONZ83qF/8yz1--


From xen-devel-bounces@lists.xenproject.org Thu Apr 17 06:26:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 06:26:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.956925.1350149 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5IhA-0002Ta-Vq; Thu, 17 Apr 2025 06:25:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 956925.1350149; Thu, 17 Apr 2025 06:25:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5IhA-0002TT-Sj; Thu, 17 Apr 2025 06:25:56 +0000
Received: by outflank-mailman (input) for mailman id 956925;
 Thu, 17 Apr 2025 06:25: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=nsoM=XD=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u5Ih9-0002TN-JB
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 06:25:55 +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 d08a3e7e-1b54-11f0-9eb0-5ba50f476ded;
 Thu, 17 Apr 2025 08:25:54 +0200 (CEST)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-43d07ca6a80so1630645e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 16 Apr 2025 23:25:54 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 98e67ed59e1d1-308613b370esm3122291a91.34.2025.04.16.23.25.46
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 16 Apr 2025 23:25:52 -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: d08a3e7e-1b54-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744871153; x=1745475953; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=G4XNA7H4yNII7wvOevd5MDRJ0FvGB+cOBtrCxwkQcVk=;
        b=EPfbTt1LSfEILXm2b5oqHqajsJ8JX7IHUHn5ftxXUO72286qmhHrBquBVraTWgTuXY
         sae7mxJJJE3NyGhCdEkdOEUmkzxZ+4pKK2XF4qox3vRdFPETW0YdMwYBFHohO62mi/tc
         imsrv/Q3yXWSYy7Bu9L3ErZAjHwhjohZEyuFPj9QDBCPr7b8TSBWWlgAmR6rFAgqn1li
         OWkB03PT3sxaCz7a2J9N2/J3aizf/dsRb5vEGegaGg/GjTsnTAmgbNiWde+Nr4B4O8vx
         eGqFH07CIEMF0IcCmD1OKH95EJp78vJzklApAVctLAdrKi60uvguQPqhnS3KrY0y/XJ/
         zd9Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744871153; x=1745475953;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=G4XNA7H4yNII7wvOevd5MDRJ0FvGB+cOBtrCxwkQcVk=;
        b=OSFYdQ6NZdMatkd1b1DiGN8tJcJ5r6NDhyN4xiixGv51aRMJ+bZUVs56NJrRl+jbge
         K39lVlXuD/G02UA/OMMAzKs1Hs/9SoWaI0uygWiQ9ugwykzSeP7gC4K5dPUBGtKbnGQk
         aunsUF1fYluzkhWXqYKkh9e/SCMDloWcPQquajpUIW89WkhUGClbuo0Al8fkJfI4pKyk
         jOVG/j8Q7bbp0boWiEpF2b0sfd6kboD3czxsKgOnI4QP9EhDn/33K0cY9919dV1zo7E8
         AvjIAlRXMzIMNRCE7mWX7HRtSx40qaQ6tVQqevZ8vO5vqQggLHU3DOYjQgMY68u47g4s
         CuHQ==
X-Forwarded-Encrypted: i=1; AJvYcCXi11ck8/3CW10yQvlPcISNpVqOrPRbtYehaVgkD0Z5zlYyGyZSkioGMe0Rp1YRY8nUizWg3bcONi8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyLiT6wvC0UGwVP86xkvh5oashAYR+A4OMRLt5kRG1+Hh69bswx
	X/qDW6oPJyMO8/ydbH+XYr5StA+OCgG47ImkYeSEZNjckbkEPC7Xc7f5XChh5g==
X-Gm-Gg: ASbGnctibjLqg70m+/j/C0+pK+a/PxdIeTejSKspABCCpZ7CsxSPglSU7pDqqZy21u1
	yQX9GfJo90J68MKsrLnHBBZppMkw1igODXyCZXnVAfW+apNU1AwA+jkybS75EfHWtNhz6Jknp4u
	xMd96zhBHWIoSufO71TDN+IlUIyesHkoz16E/Aq7Q1QreU+X7Hxrfwxs2cUSaMogOtiYxZRYrtT
	9SPDEIqaveGr1G8WkVgycw9dMIyx0ens6V2NTFC3OC5bZyAiigzUsztCy6s3ScznszR0r7VQUCL
	nC9snevzKP3fd3qoG3VRX3ZWRLwCWABDf1QlkZD8WGCXY4qwUE+Xd1I4pyf883qCt263I9tWBad
	NyaCiygLIg48dQqXVIzaoAEDcVA==
X-Google-Smtp-Source: AGHT+IFjwDRFYVbxXG7CPq2dfQAJZ9RTJHaFU+ViObYqgiFbxoLe+dPI3VO8/QODjceUDbAyuTT16Q==
X-Received: by 2002:a5d:64c7:0:b0:399:71d4:a2 with SMTP id ffacd0b85a97d-39ee5b16ddbmr3967895f8f.14.1744871153152;
        Wed, 16 Apr 2025 23:25:53 -0700 (PDT)
Message-ID: <c0bcc9e7-26a6-4a67-8f18-787364b530e4@suse.com>
Date: Thu, 17 Apr 2025 08:25:41 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 10/14] xen/riscv: implementation of aplic and imsic
 operations
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Romain Caritey <Romain.Caritey@microchip.com>, xen-devel@lists.xenproject.org
References: <cover.1744126720.git.oleksii.kurochko@gmail.com>
 <74a07ed7c596bbcf581010685e01bfdfa19164f5.1744126720.git.oleksii.kurochko@gmail.com>
 <35075d73-ec3c-4e8f-b7ed-657b604904bd@suse.com>
 <9bee5d4e-cad1-4fc1-8b4c-b4a4bab4b76c@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: <9bee5d4e-cad1-4fc1-8b4c-b4a4bab4b76c@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 16.04.2025 21:05, Oleksii Kurochko wrote:
> On 4/15/25 2:46 PM, Jan Beulich wrote:
>> On 08.04.2025 17:57, Oleksii Kurochko wrote:
>>> Introduce interrupt controller descriptor for host APLIC to describe
>>> the low-lovel hardare. It includes implementation of the following functions:
>>>   - aplic_irq_startup()
>>>   - aplic_irq_shutdown()
>>>   - aplic_irq_enable()
>>>   - aplic_irq_disable()
>>>   - aplic_irq_ack()
>>>   - aplic_host_irq_end()
>>>   - aplic_set_irq_affinity()
>>>
>>> As APLIC is used in MSI mode it requires to enable/disable interrupts not
>>> only for APLIC but also for IMSIC. Thereby for the purpose of
>>> aplic_irq_{enable,disable}() it is introduced imsic_irq_{enable,disable)().
>>>
>>> For the purpose of aplic_set_irq_affinity() aplic_get_cpu_from_mask() is
>>> introduced to get hart id.
>>>
>>> Also, introduce additional interrupt controller h/w operations and
>>> host_irq_type for APLIC:
>>>   - aplic_host_irq_type
>>>   - aplic_set_irq_priority()
>>>   - aplic_set_irq_type()
>> Yet these two functions nor the hooks they're used to populate are entirely
>> unused here. Since they're also outside of the common IRQ handling machinery,
>> it's unclear how one would sanely ack such a change.
> 
> They will be called by intc_route_irq_to_xen() from setup_irq() during firt time
> the IRQ is setup.

Perhaps move their introduction to there then? We don't do any Misra checking
yet lon RISC-V, but imo it's still good practice to avoid introducing new
violations, even if only temporarily.

>>> --- a/xen/arch/riscv/aplic.c
>>> +++ b/xen/arch/riscv/aplic.c
>>> @@ -15,6 +15,7 @@
>>>   #include <xen/irq.h>
>>>   #include <xen/mm.h>
>>>   #include <xen/sections.h>
>>> +#include <xen/spinlock.h>
>>>   #include <xen/types.h>
>>>   #include <xen/vmap.h>
>>>   
>>> @@ -110,9 +111,173 @@ static int __init aplic_init(void)
>>>       return 0;
>>>   }
>>>   
>>> -static const struct intc_hw_operations __ro_after_init aplic_ops = {
>>> +static void aplic_set_irq_type(struct irq_desc *desc, unsigned int type)
>>> +{
>>> +    unsigned int irq = desc->irq - 1;
>> Why this adjustment by 1 (and yet both items being named "irq")?
> 
> Interrupt 0 isn't possible based on the spec:
> ```
> Each of an APLIC’s interrupt sources has a fixed unique identity number 
> in the range 1 to N, where N is the total number of sources at the 
> APLIC. The number zero is not a valid interrupt identity number at an 
> APLIC. The maximum number of interrupt sources an APLIC may support is 
> 1023. ``` and interrupt 1 will correspond to bit 0 in sourcecfg[] register, interrupt 
> 2 ->sourcecfg[1] and so on. And that is the reason why we need -1.

Okay, fine. But what about the part of the question in parentheses?

>>> +            aplic.regs->sourcecfg[irq] = APLIC_SOURCECFG_SM_EDGE_FALL;
>>> +            break;
>>> +        case IRQ_TYPE_LEVEL_HIGH:
>>> +            aplic.regs->sourcecfg[irq] = APLIC_SOURCECFG_SM_LEVEL_HIGH;
>>> +            break;
>>> +        case IRQ_TYPE_LEVEL_LOW:
>>> +            aplic.regs->sourcecfg[irq] = APLIC_SOURCECFG_SM_LEVEL_LOW;
>>> +            break;
>>> +        default:
>>> +            aplic.regs->sourcecfg[irq] = APLIC_SOURCECFG_SM_INACTIVE;
>>> +            break;
>> Is the default: label legitimate to be reached?
> 
>  From the spec:
> ```
> 0 Inactive Inactive in this domain (and not delegated) 1 Detached 
> Active, detached from the source wire 2–3 — Reserved 4 Edge1 Active, 
> edge-sensitive; interrupt asserted on rising edge 5 Edge0 Active, 
> edge-sensitive; interrupt asserted on falling edge 6 Level1 Active, 
> level-sensitive; interrupt asserted when high 7 Level0 Active, 
> level-sensitive; interrupt asserted when low ``` It seems to me like 
> APLIC_SOURCECFG_SM_INACTIVE just covers cases (0-3) and inactive IRQ 
> pretty safe to as a default value.

I fear this doesn't answer my question, which is to a large part related
to the Xen code, and only to some degree to the spec.

>>> +static void aplic_set_irq_priority(struct irq_desc *desc,
>>> +                                   unsigned int priority)
>>> +{
>>> +    /* No priority, do nothing */
>>> +}
>> Since the function dopes nothing, wouldn't it be better to omit it and have
>> the (future) caller check for a NULL pointer ahead of making the (indirect)
>> call? Same remark for other handlers (below) which also do nothing.
> 
> I thought about that too, but it could be some cases when the stub is introduced
> with temporary BUG_ON("unimplemented") inside just to not miss to implement it
> when it will be necessary.
> If we will have only the caller check then we could miss to implement such stubs.

I guess I don't understand the concern.

>>> +static void aplic_irq_enable(struct irq_desc *desc)
>>> +{
>>> +    unsigned long flags;
>>> +
>>> +    /*
>>> +     * TODO: Currently, APLIC is supported only with MSI interrupts.
>>> +     *       If APLIC without MSI interrupts is required in the future,
>>> +     *       this function will need to be updated accordingly.
>>> +     */
>>> +    ASSERT(aplic.imsic_cfg->is_used);
>> Such an extra field, used only for assertions, is pretty odd. Can't you
>> use any of the other fields to achieve the same effect?
> 
> in aplic_init() there is:
>      /* check for associated imsic node */
>      rc = dt_property_read_u32(node, "msi-parent", &imsic_phandle);
>      if ( !rc )
>          panic("%s: IDC mode not supported\n", node->full_name);
> 
> So we will have panic() anyway if MSI mode isn't supported. As an option we
> can just drop the ASSERT.

Since they serve primarily as a reminder where changes would need making,
I'd prefer if they could be kept.

> Or introduce static variable in aplic.c `aplic_mode`, init it in aplic_init()
> and use it in ASSERT().

This would then again be used solely for assertions, aiui? As said, I
think it would be preferable if some already existing indicator could be
used for this purpose.

>>> +    ASSERT(spin_is_locked(&desc->lock));
>> If this lock (which is an IRQ-safe one) is necessarily held, ...
>>
>>> +    spin_lock_irqsave(&aplic.lock, flags);
>> ... you can use just spin_lock() here.
>>
>>> +    clear_bit(_IRQ_DISABLED, &desc->status);
>> Why an atomic bitop when desc is locked? (And yes, I ought to raise the same
>> question on Arm code also doing so.)
> 
> I haven't thought about that. Likely non-atomic bitop could be used here.

And then - does it need to be a bitop? Aiui that's what Arm uses, while x86
doesn't. And I see no reason to use other than plain C operators here. If
Arm was switched, presumably all the redundant (and misnamed) _IRQ_*
constants could go away, with just the IRQ_* ones left.

>> I'm uncertain about this bit setting anyway - on x86 we would only fiddle
>> with it for IRQs not in use, not while enabling/disabling one.

What about this part?

>> In any event this can be done outside of the APLIC-locked region, I think.
> 
> Considering that we are doing that under desc->lock, agree we can move that outside
> the APLIC-locked region.
> 
>>> +    imsic_irq_enable(desc->irq);
>>> +
>>> +    /* enable interrupt in APLIC */
>>> +    aplic.regs->setienum = desc->irq;
>> Are you sure you want to use plain assignments for MMIO accesses? I'd have
>> expected writel() to be used here. (And only later I realized that I didn't
>> spot the same already higher up from here.)
> 
> Good point. I have to update that with writel()...
> 
>>
>>  From the vague understanding I've gained so far: Isn't the APLIC closer to
>> the CPU and the IMSIC closer to the device? If so, wouldn't you want to
>> enable at the APLIC before enabling at the IMSIC? But of course that also
>> depends on what exactly happens in the window while one is already enabled
>> and the other is still disabled. (Later) From the code you add to imsic.c
>> it looks like it's the other way around, as the IMSIC is accessed through
>> CSRs.
> 
>  From the AIA spec:
> ```
> An Incoming MSI Controller (IMSIC) is an optional RISC-V hardware component
> that is closely coupled with a hart, one IMSIC per hart. An IMSIC receives
> and records incoming message-signaled interrupts (MSIs) for a hart, and
> signals to the hart when there are pending and enabled interrupts to be
> serviced.
> ```
> 
> Based on the figure 2 (Interrupt delivery by MSIs when harts have IMSICs for receiving them)
> of AIA spechttps://github.com/riscv/riscv-aia/blob/main/src/intrsWithIMSICs.png
> IMSIC is more close to CPU and APLIC is more close to the device. The external interrupt
> controller is APLIC and it only sends a MSI message for a CPU.
> 
> The logical flow of an interrupt to a hart with an IMSIC would be:
> 1. A physical interrupt signal arrives at the APLIC.
> 2. The APLIC, if configured for MSI delivery mode (domaincfg.DM = 1) and if the specific
>     interrupt source is active and enabled within its domain (controlled by sourcecfg[i]
>     and the global Interrupt Enable bit IE in domaincfg), will generate an MSI.
> 3. This MSI is then sent to the target hart's IMSIC. The APLIC needs to know the MSI
>     target address for each hart, which can be hardwired or configured through registers
>     like mmsiaddrcfg and mmsiaddrcfgh.
> 4. The receiving hart's IMSIC records this MSI as a pending interrupt.
> 5. If the corresponding interrupt identity is enabled within the IMSIC's interrupt file,
>     the IMSIC will signal the hart, typically by setting the MEIP or SEIP bit in the mip
>     CSR (or sip CSR).
> 
> Generally, I think that the order in which enable interrupts doesn't really matter as
> if you were to enable the IMSIC to receive a certain interrupt before the APLIC was
> configured to send it (or had a pending interrupt from the device), the IMSIC would
> simply be waiting for an MSI that wouldn't arrive.
> Similarly, if the APLIC sends an MSI for an interrupt that is not enabled in the IMSIC,
> the interrupt would remain pending in the IMSIC but wouldn't trigger an interrupt at
> the hart.
> 
> IMO, the order which is used now in the code is pretty logical.
> 
> Does it make sense?

Except for the "doesn't really matter" - yes. In a reply to a later patch I
indicated I realized that IMSIC is what's closer to the CPU (and hence later
in the chain of interrupt delivery actions).

>>> +    spin_unlock_irqrestore(&aplic.lock, flags);
>>> +}
>>> +
>>> +static void aplic_irq_disable(struct irq_desc *desc)
>>> +{
>>> +    unsigned long flags;
>>> +
>>> +    /*
>>> +     * TODO: Currently, APLIC is supported only with MSI interrupts.
>>> +     *       If APLIC without MSI interrupts is required in the future,
>>> +     *       this function will need to be updated accordingly.
>>> +     */
>>> +    ASSERT(aplic.imsic_cfg->is_used);
>>> +
>>> +    ASSERT(spin_is_locked(&desc->lock));
>>> +
>>> +    spin_lock_irqsave(&aplic.lock, flags);
>>> +
>>> +    set_bit(_IRQ_DISABLED, &desc->status);
>>> +
>>> +    /* disable interrupt in APLIC */
>>> +    aplic.regs->clrienum = desc->irq;
>>> +
>>> +    /* disable interrupt in IMSIC */
>>> +    imsic_irq_disable(desc->irq);
>>> +
>>> +    spin_unlock_irqrestore(&aplic.lock, flags);
>>> +}
>>> +
>>> +static unsigned int aplic_irq_startup(struct irq_desc *desc)
>>> +{
>>> +    aplic_irq_enable(desc);
>>> +
>>> +    return 0;
>>> +}
>>> +
>>> +static void aplic_irq_shutdown(struct irq_desc *desc)
>>> +{
>>> +    aplic_irq_disable(desc);
>>> +}
>> You don't really need a separate hook function here, do you?
> 
> With such implementation it is really not needed to have a hook so
> I will drop it.
> 
>>> +static void aplic_irq_ack(struct irq_desc *desc)
>>> +{
>>> +    /* nothing to do */
>>> +}
>>> +
>>> +static void aplic_host_irq_end(struct irq_desc *desc)
>> What's the "host" in the identifier about?
> 
> It was copied that from Arm and my understanding that it means
> Xen-related IRQ as they also have:
> ```
> /* XXX different for level vs edge */
> static hw_irq_controller gicv2_host_irq_type = {
> ...
>      .end          = gicv2_host_irq_end,
> ...
> };
> 
> static hw_irq_controller gicv2_guest_irq_type = {
> ...
>      .end          = gicv2_guest_irq_end,
> ...
> };
> ```

And you expect to end up with a similar distinction on RISC-V? There's
nothing like that on x86, just to mention it.

>>> +static void aplic_set_irq_affinity(struct irq_desc *desc, const cpumask_t *mask)
>>> +{
>>> +    unsigned int cpu;
>>> +    uint64_t group_index, base_ppn;
>>> +    uint32_t hhxw, lhxw ,hhxs, value;
>>> +    const struct imsic_config *imsic = aplic.imsic_cfg;
>>> +
>>> +    /*
>>> +     * TODO: Currently, APLIC is supported only with MSI interrupts.
>>> +     *       If APLIC without MSI interrupts is required in the future,
>>> +     *       this function will need to be updated accordingly.
>>> +     */
>>> +    ASSERT(aplic.imsic_cfg->is_used);
>> Use the local variable you have made yourself?
> 
> What do you mean by local here?

Just a few lines up you latch aplic.imsic_cfg into the local "imsic".

>>> +    ASSERT(!cpumask_empty(mask));
>>> +
>>> +    spin_lock(&aplic.lock);
>> Aiui the lock can be acquired quite a bit later. It ought to be needed only
>> around the actual write to the hardware register.
>>
>>> +    cpu = cpuid_to_hartid(aplic_get_cpu_from_mask(mask));
>>> +    hhxw = imsic->group_index_bits;
>>> +    lhxw = imsic->hart_index_bits;
>>> +    hhxs = imsic->group_index_shift - IMSIC_MMIO_PAGE_SHIFT * 2;
>>> +    base_ppn = imsic->msi[cpu].base_addr >> IMSIC_MMIO_PAGE_SHIFT;
>>> +
>>> +    /* update hart and EEID in the target register */
>>> +    group_index = (base_ppn >> (hhxs + 12)) & (BIT(hhxw, UL) - 1);
>> What's this magic 12 in here? Not IMSIC_MMIO_PAGE_SHIFT I suppose?
> 
> In the AIA spec they are using 12 explicitly:https://github.com/riscv/riscv-aia/blob/main/src/AdvPLIC.adoc#AdvPLIC-MSIAddrs

In the spec that's fine, but please make yourself a constant with a suitable
name then, to be used here. Just consider what would happen if we used literal
12 everywhere PAGE_SHIFT was meant.

>>> +void imsic_irq_enable(unsigned int hwirq)
>>> +{
>>> +    unsigned long flags;
>>> +
>>> +    spin_lock_irqsave(&imsic_cfg.lock, flags);
>>> +    imsic_local_eix_update(hwirq, 1, false, true);
>> No subtraction of 1 here? Also, why "hwirq" and not just "irq"?
> 
>  From the spec:
> ```
> 
> When an interrupt file supports distinct interrupt identities, valid identity numbers are between 1
> and inclusive. The identity numbers within this range are said to be implemented by the interrupt
> file; numbers outside this range are not implemented. The number zero is never a valid interrupt
> identity.
> ...
> 
> Bit positions in a valid eiek register that don’t correspond to a 
> supported interrupt identity (such as bit 0 of eie0) are read-only zeros.
> 
> 
> ```
> 
> So in EIx registers interrupt i corresponds to bit i in comparison wiht APLIC's sourcecfg which starts from 0.

Confusing, but what do you do.

>>> @@ -277,6 +333,13 @@ int __init imsic_init(struct dt_device_node *node)
>>>           goto imsic_init_err;
>>>       }
>>>   
>>> +    spin_lock_init(&imsic_cfg.lock);
>>> +
>>> +    /* Enable local interrupt delivery */
>>> +    imsic_ids_local_delivery(true);
>> What's this? I can't find the function/macro here, nor in patch 08, nor in
>> staging.
> 
> It is defined in imsic.c:
> ```
> void imsic_ids_local_delivery(bool enable)
> {
>      if ( enable )
>      {
>          imsic_csr_write(IMSIC_EITHRESHOLD, IMSIC_ENABLE_EITHRESHOLD);
>          imsic_csr_write(IMSIC_EIDELIVERY, IMSIC_ENABLE_EIDELIVERY);
>      }
>      else
>      {
>          imsic_csr_write(IMSIC_EITHRESHOLD, IMSIC_DISABLE_EITHRESHOLD);
>          imsic_csr_write(IMSIC_EIDELIVERY, IMSIC_DISABLE_EIDELIVERY);
>      }
> }
> ```

No, it's not. As noted in the reply to a later patch, it's only introduced
there. Hence the build will break between the two patches.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Apr 17 07:01:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 07:01:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.956940.1350159 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5JF1-0000Mj-Ky; Thu, 17 Apr 2025 07:00:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 956940.1350159; Thu, 17 Apr 2025 07:00: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 1u5JF1-0000Mc-HY; Thu, 17 Apr 2025 07:00:55 +0000
Received: by outflank-mailman (input) for mailman id 956940;
 Thu, 17 Apr 2025 07:00: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=s05F=XD=nppct.ru=sdl@srs-se1.protection.inumbo.net>)
 id 1u5JEz-0000MW-61
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 07:00:54 +0000
Received: from mail.nppct.ru (mail.nppct.ru [195.133.245.4])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b1fc9b72-1b59-11f0-9ffb-bf95429c2676;
 Thu, 17 Apr 2025 09:00:50 +0200 (CEST)
Received: from mail.nppct.ru (localhost [127.0.0.1])
 by mail.nppct.ru (Postfix) with ESMTP id 8B7641C0E8A
 for <xen-devel@lists.xenproject.org>; Thu, 17 Apr 2025 10:00:47 +0300 (MSK)
Received: from mail.nppct.ru ([127.0.0.1])
 by mail.nppct.ru (mail.nppct.ru [127.0.0.1]) (amavisd-new, port 10026)
 with ESMTP id WDgrvqbrtfTk for <xen-devel@lists.xenproject.org>;
 Thu, 17 Apr 2025 10:00:39 +0300 (MSK)
Received: from [172.16.0.185] (unknown [176.59.174.214])
 by mail.nppct.ru (Postfix) with ESMTPSA id 8B6BC1C08D8;
 Thu, 17 Apr 2025 10:00:23 +0300 (MSK)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b1fc9b72-1b59-11f0-9ffb-bf95429c2676
Authentication-Results: mail.nppct.ru (amavisd-new); dkim=pass (1024-bit key)
	reason="pass (just generated, assumed good)" header.d=nppct.ru
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=nppct.ru; h=
	content-transfer-encoding:content-type:content-type:in-reply-to
	:from:from:content-language:references:to:subject:subject
	:user-agent:mime-version:date:date:message-id; s=dkim; t=
	1744873239; x=1745737240; bh=w5PRKU5sdEGDHRp4fP0Y606LJOfqnZ6orvN
	Nl1CuqY8=; b=ZfCkEqU5CLR6zk1GoYwHVG/iZlY0AdlFJg282mLJe4nkN2qZX1J
	Cb5rv4fUlmG1P2YEyKsMu8Dg5aPHoYiQE+ZY8WEobLCnQpD+MCp4f8QvbMU3FiGm
	5EISN9Iwymnq85CIrv+UGGuibFc6vtqHf850X3qrRslHFkKZR3iNYKKE=
X-Virus-Scanned: Debian amavisd-new at mail.nppct.ru
Message-ID: <fa91aad9-f8f3-4b27-81b3-4c963e2e64aa@nppct.ru>
Date: Thu, 17 Apr 2025 10:00:22 +0300
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen-netfront: handle NULL returned by
 xdp_convert_buff_to_frame()
To: Jakub Kicinski <kuba@kernel.org>
Cc: Juergen Gross <jgross@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 "David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>,
 Paolo Abeni <pabeni@redhat.com>, Alexei Starovoitov <ast@kernel.org>,
 Daniel Borkmann <daniel@iogearbox.net>,
 Jesper Dangaard Brouer <hawk@kernel.org>,
 John Fastabend <john.fastabend@gmail.com>, xen-devel@lists.xenproject.org,
 netdev@vger.kernel.org, linux-kernel@vger.kernel.org, bpf@vger.kernel.org,
 lvc-project@linuxtesting.org, stable@vger.kernel.org
References: <20250414183403.265943-1-sdl@nppct.ru>
 <20250416175835.687a5872@kernel.org>
Content-Language: en-US
From: Alexey <sdl@nppct.ru>
In-Reply-To: <20250416175835.687a5872@kernel.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 17.04.2025 03:58, Jakub Kicinski wrote:
> On Mon, 14 Apr 2025 18:34:01 +0000 Alexey Nepomnyashih wrote:
>>   		get_page(pdata);
> Please notice this get_page() here.
>
>>   		xdpf = xdp_convert_buff_to_frame(xdp);
>> +		if (unlikely(!xdpf)) {
>> +			trace_xdp_exception(queue->info->netdev, prog, act);
>> +			break;
>> +		}
Do you mean that it would be better to move the get_page(pdata) call lower,
after checking for NULL in xdpf, so that the reference count is only 
increased
after a successful conversion?


From xen-devel-bounces@lists.xenproject.org Thu Apr 17 07:12:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 07:12:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.956951.1350169 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5JPr-0002TR-H7; Thu, 17 Apr 2025 07:12:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 956951.1350169; Thu, 17 Apr 2025 07: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 1u5JPr-0002TK-ER; Thu, 17 Apr 2025 07:12:07 +0000
Received: by outflank-mailman (input) for mailman id 956951;
 Thu, 17 Apr 2025 07:12: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=VG4i=XD=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1u5JPp-0002TA-Pz
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 07:12:05 +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 43cc9379-1b5b-11f0-9eb0-5ba50f476ded;
 Thu, 17 Apr 2025 09:12:04 +0200 (CEST)
Received: by mail-ej1-x633.google.com with SMTP id
 a640c23a62f3a-ac73723b2d5so78452466b.3
 for <xen-devel@lists.xenproject.org>; Thu, 17 Apr 2025 00:12:04 -0700 (PDT)
Received: from ?IPV6:2003:e5:873d:1a00:8e99:ce06:aa4a:2e7b?
 (p200300e5873d1a008e99ce06aa4a2e7b.dip0.t-ipconnect.de.
 [2003:e5:873d:1a00:8e99:ce06:aa4a:2e7b])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5f36ee54d8fsm9692478a12.12.2025.04.17.00.12.02
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 17 Apr 2025 00:12: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: 43cc9379-1b5b-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744873924; x=1745478724; 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=50nDBr7HaO/nY8PAFZfWpFIIsI4FE6ZxFeiR9zseHMo=;
        b=XNXXecvHPzc9F8rZ6n3reCQmFxx2ONjGPSqmagCRCZZKzQp6JQESbugYBGcYITjOHu
         rIFWyO0gPcJqaTQ9duZrEevGl3mbowAYRpPckhpGnwCCMgj68C+aWzGO0nG+vFUYTh7h
         a3UPzcNSCfjjkbCAJVn+m1rwYtIjeGcLHGQMVmlIYujs34hTgoo8DlYPuc3x/I0qJ0hL
         xUvsZQgG6b4+QuqfabKRCTdJg12e4eBEjoWok2jDZD38IMuRqQsbiMbgo8e641mIq5zy
         JOUngpaE1IUHs3UYlYn9h/yMn2VUI8swHEuiAp0faVyAL9Nxg3n42x2NqWj5N+j0cROZ
         TiJA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744873924; x=1745478724;
        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=50nDBr7HaO/nY8PAFZfWpFIIsI4FE6ZxFeiR9zseHMo=;
        b=erzFoQAVt+c3qGb4hq/ZuUQbJhxz7PC8yeWFHxUKhlUDYyvT/+/NkTijUiZVzztFni
         /2iJIshJ/02MFm3RAFMIa/SM8UduD3UNQLbkcL8MSW9I7S4O00A4+hO72NQirCE1k+UN
         CJw00roqCSB/hI0mCG6cyE8fNE4QHLb6k94xOEd+ylrumk2+MMIU5nC+sr2uqrmfN1af
         3zmeEdXvo87PNztecDosLP9ACSA1sV3Psmv8jhz46doNhRDp6H3Yxn2wJ2RagBIuFB7I
         s3FytUznETB8QiPIpPgqBfD15bSF7PauxbfuqVAcFoWFwnBRgMVEgz4uPVnSgO+VpTkE
         wIbg==
X-Forwarded-Encrypted: i=1; AJvYcCVUijPfeuriIO1Z/lX5WAGIlBaWSBUpVu2vNDD5jPULxBvr5Iyxc2NFmu8BQDEtsy5kmQIxbr2B1dM=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywafe9S5lj6KcjoDm/0TeEsXKZQLA5gs3qTnAXuhCGCmfAZtx1k
	OKxDuJU31nF9KslYh46btUC3cKTEeis8jyWqaAdE5U8xsAG1m6b3KHVS69GFoSQ=
X-Gm-Gg: ASbGncu6oH+zlrOXDu5jP6JwdocTLJ6WvsPI7cLFAuhzElyXga8sqMdSkG0IV4KGiKk
	7ueQSvY3d+hGK9FH3Ff77incR0YVGiA78mpzPL4WK5yaDQs/409M10uSGbrWKa9i3JLiLFTtDor
	v9Ri1v90urkPDSK0j8vdkICx/z9/ZlkAMZb+f/YcOgdrbgGZkhzAI6j5mLx05EEMwPKpoOVtSVr
	w3elCeZbktGsSXDhzlnINypw5gbIEtTu9d/vdO5xKKkGrLEQ/0SR7M8L6X4SRmA+Y4B6x4lL/qP
	KnvtfPS1lN6ez8SXQDa5JEn8cYGIp75gaxOtZDoRfZUmfSorxEnn1a7OMh8oPRjC9NraBrCRiWI
	/k5g9jreY8k2Hw/Gr0YpxtzjSeuZKQmKCOZofcWGAdDjlbz/j4wmiSO5z1+7hk4msw28bCADwHR
	9x
X-Google-Smtp-Source: AGHT+IGN17Jla2vA+Rc2I0KCBT5Gabe2J463zV01EJ+NRwJL4xDEPQ+kEyFWGVBbFKYG3sPp/od4mw==
X-Received: by 2002:a17:907:608f:b0:ac3:8516:9cf2 with SMTP id a640c23a62f3a-acb42c2fcacmr391294266b.55.1744873923529;
        Thu, 17 Apr 2025 00:12:03 -0700 (PDT)
Message-ID: <0c29a3f9-9e22-4e44-892d-431f06555600@suse.com>
Date: Thu, 17 Apr 2025 09:12:01 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen-netfront: handle NULL returned by
 xdp_convert_buff_to_frame()
To: Alexey <sdl@nppct.ru>, Jakub Kicinski <kuba@kernel.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 "David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>,
 Paolo Abeni <pabeni@redhat.com>, Alexei Starovoitov <ast@kernel.org>,
 Daniel Borkmann <daniel@iogearbox.net>,
 Jesper Dangaard Brouer <hawk@kernel.org>,
 John Fastabend <john.fastabend@gmail.com>, xen-devel@lists.xenproject.org,
 netdev@vger.kernel.org, linux-kernel@vger.kernel.org, bpf@vger.kernel.org,
 lvc-project@linuxtesting.org, stable@vger.kernel.org
References: <20250414183403.265943-1-sdl@nppct.ru>
 <20250416175835.687a5872@kernel.org>
 <fa91aad9-f8f3-4b27-81b3-4c963e2e64aa@nppct.ru>
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: <fa91aad9-f8f3-4b27-81b3-4c963e2e64aa@nppct.ru>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------d0C2m0JpY0HKG0p0HCAJyozK"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------d0C2m0JpY0HKG0p0HCAJyozK
Content-Type: multipart/mixed; boundary="------------RSZrBREXB0vBHBFnA0obN3v4";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Alexey <sdl@nppct.ru>, Jakub Kicinski <kuba@kernel.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 "David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>,
 Paolo Abeni <pabeni@redhat.com>, Alexei Starovoitov <ast@kernel.org>,
 Daniel Borkmann <daniel@iogearbox.net>,
 Jesper Dangaard Brouer <hawk@kernel.org>,
 John Fastabend <john.fastabend@gmail.com>, xen-devel@lists.xenproject.org,
 netdev@vger.kernel.org, linux-kernel@vger.kernel.org, bpf@vger.kernel.org,
 lvc-project@linuxtesting.org, stable@vger.kernel.org
Message-ID: <0c29a3f9-9e22-4e44-892d-431f06555600@suse.com>
Subject: Re: [PATCH] xen-netfront: handle NULL returned by
 xdp_convert_buff_to_frame()
References: <20250414183403.265943-1-sdl@nppct.ru>
 <20250416175835.687a5872@kernel.org>
 <fa91aad9-f8f3-4b27-81b3-4c963e2e64aa@nppct.ru>
In-Reply-To: <fa91aad9-f8f3-4b27-81b3-4c963e2e64aa@nppct.ru>

--------------RSZrBREXB0vBHBFnA0obN3v4
Content-Type: multipart/mixed; boundary="------------WPzaECcOaD250uqrDoIyhJN6"

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

T24gMTcuMDQuMjUgMDk6MDAsIEFsZXhleSB3cm90ZToNCj4gDQo+IE9uIDE3LjA0LjIwMjUg
MDM6NTgsIEpha3ViIEtpY2luc2tpIHdyb3RlOg0KPj4gT24gTW9uLCAxNCBBcHIgMjAyNSAx
ODozNDowMSArMDAwMCBBbGV4ZXkgTmVwb21ueWFzaGloIHdyb3RlOg0KPj4+IMKgwqDCoMKg
wqDCoMKgwqDCoCBnZXRfcGFnZShwZGF0YSk7DQo+PiBQbGVhc2Ugbm90aWNlIHRoaXMgZ2V0
X3BhZ2UoKSBoZXJlLg0KPj4NCj4+PiDCoMKgwqDCoMKgwqDCoMKgwqAgeGRwZiA9IHhkcF9j
b252ZXJ0X2J1ZmZfdG9fZnJhbWUoeGRwKTsNCj4+PiArwqDCoMKgwqDCoMKgwqAgaWYgKHVu
bGlrZWx5KCF4ZHBmKSkgew0KPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHRyYWNlX3hk
cF9leGNlcHRpb24ocXVldWUtPmluZm8tPm5ldGRldiwgcHJvZywgYWN0KTsNCj4+PiArwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoCBicmVhazsNCj4+PiArwqDCoMKgwqDCoMKgwqAgfQ0KPiBE
byB5b3UgbWVhbiB0aGF0IGl0IHdvdWxkIGJlIGJldHRlciB0byBtb3ZlIHRoZSBnZXRfcGFn
ZShwZGF0YSkgY2FsbCBsb3dlciwNCj4gYWZ0ZXIgY2hlY2tpbmcgZm9yIE5VTEwgaW4geGRw
Ziwgc28gdGhhdCB0aGUgcmVmZXJlbmNlIGNvdW50IGlzIG9ubHkgaW5jcmVhc2VkDQo+IGFm
dGVyIGEgc3VjY2Vzc2Z1bCBjb252ZXJzaW9uPw0KDQpJIHRoaW5rIHRoZSBlcnJvciBoYW5k
bGluZyBoZXJlIGlzIGdlbmVyYWxseSBicm9rZW4gKG9yIGF0IGxlYXN0IHZlcnkNCnF1ZXN0
aW9uYWJsZSkuDQoNCkkgc3VzcGVjdCB0aGF0IGluIGNhc2Ugb2YgYXQgbGVhc3Qgc29tZSBl
cnJvcnMgdGhlIGdldF9wYWdlKCkgaXMgbGVha2luZw0KZXZlbiB3aXRob3V0IHRoaXMgbmV3
IHBhdGNoLg0KDQpJbiBjYXNlIEknbSB3cm9uZyBhIGNvbW1lbnQgcmVhc29uaW5nIHdoeSB0
aGVyZSBpcyBubyBsZWFrIHNob3VsZCBiZQ0KYWRkZWQuDQoNCg0KSnVlcmdlbg0K
--------------WPzaECcOaD250uqrDoIyhJN6
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-----

--------------WPzaECcOaD250uqrDoIyhJN6--

--------------RSZrBREXB0vBHBFnA0obN3v4--

--------------d0C2m0JpY0HKG0p0HCAJyozK
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/Ey8FAmgAqcIFAwAAAAAACgkQsN6d1ii/Ey9s
zgf+LywK5tRw1pt3A75AZkpDPjXyAy+HTSV/CVvkluaNPsqNM5Yg2+iYZZZKp+C2omR4jCFUNDUn
EU5EnIclpZzA3Ox0JZrqjlrjknY4cD8QKits78CTlfr5aHrB7qPj3yRgvh/XxXS3Vz5v97yc/2YW
e4p+YULttX7frz3a9ygzgz6TbtLLLw19HxCgTGvA2upI43v+abbnowNz/NOagJQ6WD4WmPpUBCRS
4Yu1Z/NjKO+IbvAuX01hVdNedc+pN2lztOrK6GkjDE6HUAgyNqdQTEZrhOl9N/tysDDOEdkUxexg
XsVZt0ZcfKPyAIhgRW3SVID/G2LiUiH7KO5QEmr2/w==
=uCI0
-----END PGP SIGNATURE-----

--------------d0C2m0JpY0HKG0p0HCAJyozK--


From xen-devel-bounces@lists.xenproject.org Thu Apr 17 07:15:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 07:15:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.956963.1350179 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5JSi-00032W-UY; Thu, 17 Apr 2025 07:15:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 956963.1350179; Thu, 17 Apr 2025 07:15: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 1u5JSi-00032P-Qt; Thu, 17 Apr 2025 07:15:04 +0000
Received: by outflank-mailman (input) for mailman id 956963;
 Thu, 17 Apr 2025 07:15: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=nsoM=XD=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u5JSh-00032J-1R
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 07:15:03 +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 adaf6fff-1b5b-11f0-9eb0-5ba50f476ded;
 Thu, 17 Apr 2025 09:15:02 +0200 (CEST)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-39c266c2dd5so472526f8f.3
 for <xen-devel@lists.xenproject.org>; Thu, 17 Apr 2025 00:15:02 -0700 (PDT)
Received: from [10.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-22c33fe68b1sm26303075ad.219.2025.04.17.00.14.58
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 17 Apr 2025 00:15: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: adaf6fff-1b5b-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744874101; x=1745478901; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=6rhCll4lCybbpUURku3rqmI7TKGmtQeLYbk1BG/TfS8=;
        b=cWNGj+xUzg/Pa9ez4fV6scpLBcse2ohRn2egj4cRgfV4AEXMM4wpVU0a0boSc+tiSu
         Jnlcn6YG0lGX2O6u5OzV/xje2w8ZJ8RER1JBZHTSMt++ZEAIkDdzSuGWJ7b8a9XDHAct
         CFDdNZZ9tRDIGAOFsxYydks+fCc7M+3e8nMtHUY5z1IvZVTpx0huxSZEA3Lzb3UoNDB6
         5ymV5uzT1/CxS+qy9bAt3aVE8zp5jXF5/gdbRlvZCXeV43djMy+tVRP7eeSn0i7BhIm5
         bQGSioAV/y4WV9WwK1V9Kb+w0ivOPnAUwEocNLsQXL0eqrNybpAUOoHlkvAkRL1DP7ol
         MgNQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744874101; x=1745478901;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=6rhCll4lCybbpUURku3rqmI7TKGmtQeLYbk1BG/TfS8=;
        b=rNSrtWiKYpKMT9H2wTJrTfa8FCj8stzbNlF4wvIbfdXcHP/BoWQvKscgqzhkFmlRPK
         6PopInw1UEUpBVqv/CF8DsazsYA11mCXI3GeoPEd2YAklQujjdPW8Pj70PoylxGDzGOb
         9igDmiVX4QUZdBsZaNbFpfPZ6f3hnLqVWhCkjZRCAK5UbivzbBd+oqLHBGbXLfFiX/3s
         E/Vm6f8TuAK4tpLeEZKTy7lKb3GlZvXi/V9FPRJh6/c5je1YlhEgCIc4JLqvuUlR6jsj
         bFtVViApN82bG6dOE0ocJVahFFkdWjRWtA6BOZH426jOQSBmITv5DRMIL878ExGIGnhk
         Bq3g==
X-Forwarded-Encrypted: i=1; AJvYcCUwuXp/yWoliegcG8xWj7lromqhYGIQun4FEadcyBeYe3GToJKhlbFJjZC05mxaG4d4Arl4apr+a+M=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxFqC5lyLb1BweFWwkwLrKa0xXT61glvq9lx1+swl2ARE2j2p/n
	XZrDmlJO8bz/qFc4Rxnjdrelt+tSiOEe6LfVHcQsZCeRb3sRt1IXKvipJsBC3A==
X-Gm-Gg: ASbGnctFR5xXNlMMWIVZFb0W6pZM7EIlDsfn+7ycmh0xAsilyI6h+MxX35QNZrv/xVz
	liFcZwthnWxpUShZ58umC4r5BY3wZcOzNnvUwDH8AWEQdaZqamvwHEbc+c6UfL/RGZrjIZs5W8E
	3K6KDgEe8X/LMkx+xDDbCTVe0W/t3TWEYK2pz3VnbYPC/xYra3VaiUUi90rAQno3ICHzacawTQi
	7njJgZidB97mIUwfIDonLRynfX1wL8myk7dI2Ib9f5egd7PMUp/fKGak1YJU4onuG4LcRSVNhA/
	bzxvdbSv+hbCNA7XX6rBDcj4iLgVc4l0W5ARI4lFDkznjwDoThxHpaUifoFiAYbT8U+M57nWJTu
	lfRFJEjIVVUyeE2Rcir7FmyD/dQ==
X-Google-Smtp-Source: AGHT+IH834zrfxvSmCr6PVozZr/FLYnJYgdr/rIN1vX7Ny8/6fzxjZ0ECnE1bgHHyRCHkB8tqCROfA==
X-Received: by 2002:a5d:47ab:0:b0:391:4889:5045 with SMTP id ffacd0b85a97d-39ee5b8b916mr4375448f8f.36.1744874101423;
        Thu, 17 Apr 2025 00:15:01 -0700 (PDT)
Message-ID: <910868c1-fc90-49ec-bd06-3ff638ff0c1d@suse.com>
Date: Thu, 17 Apr 2025 09:14:54 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: x86 emulation bug
To: Fabian Specht <f.specht@tum.de>
Cc: manuel.andreas@tum.de, xen-devel@lists.xenproject.org
References: <jfgrmlid6fhbptebr22ccqimqhys3pchcoyuoepjz2iwoillei@xxaicsktj2pl>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <jfgrmlid6fhbptebr22ccqimqhys3pchcoyuoepjz2iwoillei@xxaicsktj2pl>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 17.04.2025 00:52, Fabian Specht wrote:
> Dear all,
> 
> we discovered a bug in hvm64 x86 Xen. Using the attached xtf test we are
> able to trigger an assert in arch/x86/hvm/emulate.c:
> 
> 
> if ( (hvmemul_ctxt->ctxt.regs->eflags & X86_EFLAGS_DF) && (reps > 1) )
> {
> 	/*
> 	 * x86_emulate() clips the repetition count to ensure we don't wrap
> 	 * the effective-address index register. Hence this assertion holds.
> 	 */
> 	ASSERT(offset >= ((reps - 1) * bytes_per_rep));
> 	okay = hvm_virtual_to_linear_addr(
> 		seg, reg, offset - (reps - 1) * bytes_per_rep,
> 		reps * bytes_per_rep, access_type,
> 		hvmemul_get_seg_reg(x86_seg_cs, hvmemul_ctxt), linear);
> 	*linear += (reps - 1) * bytes_per_rep;
> 	if ( hvmemul_ctxt->ctxt.addr_size != 64 )
> 		*linear = (uint32_t)*linear;
> }
> 
> 
> If debug mode is not enabled, this will later on result in an integer
> underflow, however we were not able to find any severe problems.
> 
> The test below will not work with vanilla xtf.

Thanks for the report. However, already on Andreas' report on the day before
yesterday I was heavily inclined to ask about details you certainly have
figured out already. I find it odd that you leave to us all re-figuring out.
In this case, for example: Is the specific value you set %eax to relevant?
(Probably not.) Is the specific value you set %rcx to relevant? (Probably
not, but likely some part of it is.) Is the specific value you set %rdi to
relevant? (Probably not, but likely some part of it is. Probably you
setting it to 0 is also why the adjustment below is needed, and using a
different value might permit avoiding that adjustment.) Is it relevant
that you set EFLAGS.DF? (Quite likely.)

Any other investigation results you may have collected would likely also
make our job easier.

Jan

> To get it working,
> we have to edit 'pae_l1_identmap' in arch/x86/hvm/pagetables.S in xtf
> from
> 
> 
> PAGETABLE_START(pae_l1_identmap)
>         .long 0, 0
>         .rept PAE_L1_PT_ENTRIES - 1
>         .long (PAE_IDX(pae_l1_identmap) << PAE_L1_PT_SHIFT) + _PAGE_LEAF
>         .long 0
>         .endr
> PAGETABLE_END(pae_l1_identmap)
> 
> 
> to the following value:
> 
> 
> PAGETABLE_START(pae_l1_identmap)
>         .quad (0x5564000000) + _PAGE_LEAF
>         .rept PAE_L1_PT_ENTRIES - 1
>         .long (PAE_IDX(pae_l1_identmap) << PAE_L1_PT_SHIFT) + _PAGE_LEAF
>         .long 0
>         .endr
> PAGETABLE_END(pae_l1_identmap)
> 
> 
> 
> We were able to reproduce this bug in several versions including the
> most current one at the time of writing this.
> 
> 
> Best,
> Fabian



From xen-devel-bounces@lists.xenproject.org Thu Apr 17 07:34:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 07:34:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.956975.1350189 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5JlG-0006dN-Eu; Thu, 17 Apr 2025 07:34:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 956975.1350189; Thu, 17 Apr 2025 07: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 1u5JlG-0006dG-Ax; Thu, 17 Apr 2025 07:34:14 +0000
Received: by outflank-mailman (input) for mailman id 956975;
 Thu, 17 Apr 2025 07: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=nsoM=XD=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u5JlF-0006d8-4M
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 07:34:13 +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 5ad1e654-1b5e-11f0-9eb0-5ba50f476ded;
 Thu, 17 Apr 2025 09:34:11 +0200 (CEST)
Received: by mail-wr1-x42e.google.com with SMTP id
 ffacd0b85a97d-39c31e4c3e5so301136f8f.0
 for <xen-devel@lists.xenproject.org>; Thu, 17 Apr 2025 00:34:11 -0700 (PDT)
Received: from [10.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-73bd230ea65sm11673183b3a.154.2025.04.17.00.34.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 17 Apr 2025 00:34: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: 5ad1e654-1b5e-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744875251; x=1745480051; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=73+Md+hzRp/+FEmQKrOxwKkUop1wdjejsDLHrzPCsyo=;
        b=SKeNsIIiitkZr6yQHayQ8IAgQDyIm01G7+oK+FHlh5cbvsJNIUoWwuClzFMbNr1Vpk
         dNZtb6OrwfJ1Rk5V4RHQVNic8urpzt5KrPA5mlMLW5/ZmhGyzlUXGyj4Rz6sIsY5SOwh
         BYgaSzC/APQP7h5Pn70PE3uw7XNKEkHEMZMoXj5+m0sxRaB8EZcMv7itsG7mgAYz3AzI
         BmoMkvLVwxV8HaO5Chz3hk4rtcfs3ayWNOWgvnjE1QaXCieCyPqEzAr8zYsrTgZrKty0
         zFZ1fxrjKka8hhFDISbwkJHfsuMw/kNma6qR8D/TH73KQkHtG3YEtiGSi2Hq3utIinRS
         KxOw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744875251; x=1745480051;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=73+Md+hzRp/+FEmQKrOxwKkUop1wdjejsDLHrzPCsyo=;
        b=Xhotl9zx9MKLq24DzTPsEOpSfErTQRJuQvOdsSoxy9pACQyH/KoQ8NcOeY+81FQ6RZ
         Lk+lDQLNUjr5GRcWmfIr6Y/6oHm4er7iCYcgKF4AkSVbXUkJA0ifk2MZc2RMsAFsW7/2
         QEhaY6XZ/fA/UiYWWTScjf73E7xUGc5rR15zPzWfree/hqyODl0Rj8I573A4jv8d3/QT
         yzAhEsTr7pfIqjLUZtXCeSi7rvTBENidcfCZba0tXWYzyjVdLpYXuIXgul/9yvRM40ug
         enT5s6DiMc0LkYj1CeMJwstghQHnf2G/pZTyaCSSq+3PDifkludsjcU2YKuJLYCeNf4a
         ASjg==
X-Forwarded-Encrypted: i=1; AJvYcCXJadhyzTDAfGgXKBy5PDa7Kt6pQqC04O6xwj9lj1jSa/ZXbkTKIk4rKlxICsGOv88m0BJTJ4Y2WSs=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzTOhBXOunSta/0Bcp0/siuozHSCTxReQQ7GDtK0uWar7wLchvi
	jVRrmkAS8nYjVrZqAGcdiOhLXnHTHV58EOOFe5jxo1B4/lZwKiUHcDrvkCruOA==
X-Gm-Gg: ASbGncszyW8rjn/yqnaLOWuVkHFZOg3ZI1mAK7TbF7eWXKQe9m48hHXaRyBBeX66NNH
	EzrDthXpEL+XaqixqbOJOAsQlPT8Ygz0jue2kKPv8f2JwQ62iK2x+TqZ7vOetHW0uxHNsh/L+Th
	xE1aZbAsDTg2lUzf1OxH3FPF+qyr2z0fxMs8USK4IVZXpBnVp3ETN2qpiUHi4UVnS90cyxYCEu9
	ULuY2HNal5FpRmzFHcl1WdnoBIbqv41whigVkypVNqU3ZzSXB6sRF47b/sfGKcmOoTa7UjTA054
	xpCvxV9hZ/ndmKaCpha0++AkND15UYICwylg7IB2si73VbAPDkDjnGpYZ/u8+bml8K8jVBM8Hv2
	F6PtM+5Xs29B0SCHUHQNgKgDoMQ==
X-Google-Smtp-Source: AGHT+IE/H+QXFqOfCQiR7hf9qPm4uOm4ktzIMMNqxtpatpkADbV1UDHpVDnZTjMhxHu6EeacsAzF0g==
X-Received: by 2002:a05:6000:144e:b0:391:4873:7943 with SMTP id ffacd0b85a97d-39ee5b35c98mr4173959f8f.32.1744875250768;
        Thu, 17 Apr 2025 00:34:10 -0700 (PDT)
Message-ID: <bed994d7-50fe-4a82-a0ec-b986e07ca5dd@suse.com>
Date: Thu, 17 Apr 2025 09:34:02 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 8/8] vpci/msix: Add function to clean MSIX resources
To: Jiqian Chen <Jiqian.Chen@amd.com>
Cc: Huang Rui <ray.huang@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: <20250409064528.405573-1-Jiqian.Chen@amd.com>
 <20250409064528.405573-9-Jiqian.Chen@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: <20250409064528.405573-9-Jiqian.Chen@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 09.04.2025 08:45, Jiqian Chen wrote:
> --- a/xen/arch/x86/hvm/intercept.c
> +++ b/xen/arch/x86/hvm/intercept.c
> @@ -276,6 +276,50 @@ void register_mmio_handler(struct domain *d,
>      handler->mmio.ops = ops;
>  }
>  
> +void unregister_mmio_handler(struct domain *d,
> +                             const struct hvm_mmio_ops *ops)
> +{
> +    unsigned int i, count = d->arch.hvm.io_handler_count;
> +
> +    ASSERT(d->arch.hvm.io_handler);
> +
> +    if ( !count )
> +        return;
> +
> +    for ( i = 0; i < count; i++ )
> +        if ( d->arch.hvm.io_handler[i].type == IOREQ_TYPE_COPY &&
> +             d->arch.hvm.io_handler[i].mmio.ops == ops )
> +            break;
> +
> +    if ( i == count )
> +        return;
> +
> +    for ( ; i < count - 1; i++ )
> +    {
> +        struct hvm_io_handler *curr = &d->arch.hvm.io_handler[i];
> +        struct hvm_io_handler *next = &d->arch.hvm.io_handler[i + 1];
> +
> +        curr->type = next->type;
> +        curr->ops = next->ops;
> +        if ( next->type == IOREQ_TYPE_COPY )
> +        {
> +            curr->portio.port = 0;
> +            curr->portio.size = 0;
> +            curr->portio.action = 0;
> +            curr->mmio.ops = next->mmio.ops;
> +        }
> +        else
> +        {
> +            curr->mmio.ops = 0;
> +            curr->portio.port = next->portio.port;
> +            curr->portio.size = next->portio.size;
> +            curr->portio.action = next->portio.action;
> +        }
> +    }
> +
> +    d->arch.hvm.io_handler_count--;
> +}

To add on what Roger said: This is inherently non-atomic, so the domain
would need pausing to do such removal in a race-free way. Hence why we
deliberately didn't have such a function so far, aiui. (The removal may
be safe in the specific case you use it helow, but there's nothing here
preventing it from being used elsewhere, without paying attention to
the raciness.)

Jan


From xen-devel-bounces@lists.xenproject.org Thu Apr 17 07:38:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 07:38:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.956990.1350199 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5JpQ-0007FS-1O; Thu, 17 Apr 2025 07:38:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 956990.1350199; Thu, 17 Apr 2025 07:38: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 1u5JpP-0007FL-UI; Thu, 17 Apr 2025 07:38:31 +0000
Received: by outflank-mailman (input) for mailman id 956990;
 Thu, 17 Apr 2025 07:38: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=/8PF=XD=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1u5JpP-0007FF-14
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 07:38:31 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on20625.outbound.protection.outlook.com
 [2a01:111:f403:2418::625])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f3f01a87-1b5e-11f0-9eb0-5ba50f476ded;
 Thu, 17 Apr 2025 09:38:29 +0200 (CEST)
Received: from BN9PR12MB5273.namprd12.prod.outlook.com (2603:10b6:408:11e::22)
 by MW4PR12MB6898.namprd12.prod.outlook.com (2603:10b6:303:207::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.32; Thu, 17 Apr
 2025 07:38:25 +0000
Received: from BN9PR12MB5273.namprd12.prod.outlook.com
 ([fe80::cf66:58ab:47be:4b13]) by BN9PR12MB5273.namprd12.prod.outlook.com
 ([fe80::cf66:58ab:47be:4b13%5]) with mapi id 15.20.8655.022; Thu, 17 Apr 2025
 07:38: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: f3f01a87-1b5e-11f0-9eb0-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=J93Qabmh6RW7O16jGUeovDcMXBPsjLJs7lE9rCpGPjMLHCW2qWKJpnrTTSGABMwNfIKOPyo3Ahzx0dG92Ql5OH+oUF1Mt1KqIK5v3TF3diBVQcbFp5AOED3O/0itsGHTkIottb93g+n9KNtxAoLaKkKsSoMqdHyAUHPWdVKBJfFcYqV59Vr9uJyz8Y24/8rij9Mr7Xj+nx8IFZAOxaP+VP/a+SgQfPq1nBq9grYnxCa0kvodK7CvJLtKjDLjyoPPWX/ufzLmaPkp+p0+gSPlE7dntepIZIpW/uy7RkW85noZo/uUZe7kps07bWMHN1bkYj8kmD/uCH1mjmJMndxPLQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Iu9AZ/cCap4aPXXwSmp1Mmj4Z3yDfWkjYutn6Pimbv8=;
 b=JtxOM5I8ajtVXHjcqJnYRq6KTP4dL0//87qUGjctIwmrYawbn335Y+hbGdO4XwKnZeSuXUNGe01S0EGvrFoepFtouCk5ffhruH4Tw7YU1Edkfs19uLTGWezhzUDP6BdKulEZSBUWoSISDkb+wkq6xlHFpXVlR7aA1RVrWlT1WtdORdMUZjRFp3MvTWL7sLT9E0HExpXlJZOK9lrDnCXnJzwteSCu7/WgBf1TgRvzTH1NCjDNwzA+tWnL9ZPuSB2TJOQ5rADmmukV9ZW4eYdAes30oBng46ZHPJHNlMr/n3Rlx031uTgWI18ECzIbn9XYoGDf2NCtWB+1qELoz+ytEQ==
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=Iu9AZ/cCap4aPXXwSmp1Mmj4Z3yDfWkjYutn6Pimbv8=;
 b=KccO3tm5op6BfcyuzIKg1DORKo8BwKYC/TJ4FsmQT4cRgpeF1eRiXQjnqGRu7K7JwugLKHQv8A923oj2R62hYvZ8V1jsPGCLpkL8Fp4GEDsH/hE68+EXcS+iupdcM/q8jXamvoDXawFqXq7CKFUViYUcDGzzZiaa2UxzK1huje0=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <b6bb9905-befd-4ebd-a50d-a5a1c82f53bc@amd.com>
Date: Thu, 17 Apr 2025 09:38:19 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/8] xen/arm: drop declaration of
 handle_device_interrupts()
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: <cover.1744626032.git.oleksii.kurochko@gmail.com>
 <ec1bfe540b4588c749fcdc932bd93da96db1d8a2.1744626032.git.oleksii.kurochko@gmail.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <ec1bfe540b4588c749fcdc932bd93da96db1d8a2.1744626032.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR4P281CA0194.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:ca::8) To BN9PR12MB5273.namprd12.prod.outlook.com
 (2603:10b6:408:11e::22)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN9PR12MB5273:EE_|MW4PR12MB6898:EE_
X-MS-Office365-Filtering-Correlation-Id: c2591cfd-25e2-4082-4f0e-08dd7d82d5d8
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?YW0xTnNoeVNlUC9vSGR2UVpXUjcvUHBjcVA0VzJWMEF4cG1LaDlseHdLTVpK?=
 =?utf-8?B?MVhYamJHWWZYRXJJSXZCcml3ZTVPYmlRNDlYWk9kYzY0Y1hBNWlwajlWK01z?=
 =?utf-8?B?anVEWnNDbkhsdHpkK2hFemUvS25Vc1d3cWdVQStIZ3VaRzkzMTNNTWRtYWFU?=
 =?utf-8?B?cHU2T1BTRDlIRUZmdDBQZ2xlQnJ0NktYcmpsS3NVSU5sQUVWWXpMN0dxOFhM?=
 =?utf-8?B?amwzRlhjWGxzK216aVVZOFdRYnNNclVRRms5bUFZT1huNDFweCsycmltWnBZ?=
 =?utf-8?B?Q1EvUTU0RGpZd0VBeEJZNWF1RWpYNUp5RUd6UWR5ZG93UnFGamxPYURZYlVZ?=
 =?utf-8?B?U0lzb200aDlBZjU4b3VBZmxsZUxoY1NBbHh2VlVyMW12Y3pxYlppTXJuUllF?=
 =?utf-8?B?VXBnSy9wdTBPVEk3ZTZNem5OanhKMkNDUFZrV1I3NklLamh1b0NCd1RtSC9K?=
 =?utf-8?B?UVAyd3JXREVFTVVMRjV3enNDbFNCSXFrYnN0L2QwUXJYREJ3MkI1RzZFMzFq?=
 =?utf-8?B?ZXNMNE9XQWpIVUFVQjA2Um5DQmVRMDc4WDlRd01xMkRNaEwxMy9Dei8vVEhY?=
 =?utf-8?B?L1ljVU9BZEFLTzBTR0IxZzVyQjVMcklKeVA2LzM1akhVbTl2dDh5SFBnRUdo?=
 =?utf-8?B?NUUxN3hHU2NYSzdoNUZIMHNRS2tVNEM1RHJJTlQweC9rK0VlTkRVZzhURElQ?=
 =?utf-8?B?ZVFFcVR1a0hpWlR6QkQ4MCtPdUJtbDZYTEVYV01vdnd0dnhrZ0NVSTVnaVZU?=
 =?utf-8?B?N1FTOVpTZFFYOVhzWkVYQnA0dk5vc2pCWGI2dVMyRTduWFZxbVpyYzFld3Ex?=
 =?utf-8?B?ZlhOcW4xaVltcmNmTEJKMkEvZFZmWEJ5TExTSUh6cHZQU2EwZUxCazhYd1pK?=
 =?utf-8?B?WEtMYzUwZmJIdWZqSmttQ3JBeFJuV3lGN0c1akVmRVBoVkNkYjllbmZ3eThy?=
 =?utf-8?B?MEZNVXI5czVPU3krZ2k5NHNBMzhQcHRmcE1pTlNpTXAzZjJJKytIOUNaR0Vm?=
 =?utf-8?B?SWNZc3dnNlRNOGMwL2lucDl2VDlKMEZPYkdqRmJDRXh5Z2R2TEk4U0ZqL2gv?=
 =?utf-8?B?WWRrZXVHb0F3V3RXQ0crbXVTSlZEV1hpdTl6bWNnWGVqSUJ1OHArUlhrUUhu?=
 =?utf-8?B?cUw4TVE0TGExMy84dmluQlc4VTZCeEFxdU1RYXErb3N1VHZuaE84SEdWalg2?=
 =?utf-8?B?SmNmbXJybDZJMEhvbUU5UTJnc2JNeFZNbGNZb053M3VqL1BSNVAxZDdDQUV2?=
 =?utf-8?B?TEdJK2F5RkZQc2hYNGRIOHVpd01JV3V5SlJxTGxtc2g0WG9yajVQKzFlSmIx?=
 =?utf-8?B?UnJWK1o1dDRQYjhQdFF0K1daR3Z4cWo2bWYweWNGc3Irb2hxR0R4elhGc0VH?=
 =?utf-8?B?L1grYXFNNXpSRXZVMndodzF2T3Q2d1FrNUhkdS9pb013UDhYUnFhOVZFaG0w?=
 =?utf-8?B?TUo2cnJHby9XLzVJN0daZTdOOWhMd1R4UkNKTi9VeFBkMDJKRk5JRFFXNncw?=
 =?utf-8?B?U0xuOGNoejlGbzJ3NmxHSnpnWEFqM0lzNjl6Z01jYlpDQ3U0SXlURzkzS3li?=
 =?utf-8?B?emtrNXRQRm5YcXNxQ1Fmb1FlYXZqRzYrdE82Y1ArYXgvdHNaMzA5ODdmc1Mr?=
 =?utf-8?B?eUFpQkQ4eC9NZG5kWnlRZVlYUWl6TWZhanc3WEUxUE1Mc1VJcy83ZzBNT2Zp?=
 =?utf-8?B?eitDTnR1b2ZTYi9DS3QyK09OeHNRWGRHK0FKSEZ2WmRRRk5vNHlSeGl1bldy?=
 =?utf-8?B?WkpPU1BvYzRrQ21DWjBrWkFVTENvU1Z2SHhWcGtxWTZ0VW93Y1l1ZDBqTU9z?=
 =?utf-8?B?cEdNRGRoWUxYWTc3alNvOWJkTGhBeWRTdy9NR0VWbTk2NXJId0wzWkRpakha?=
 =?utf-8?B?QnRWT21HVlBRVjZXYXVTd3JNMzNYM01PQThsaElEY2dDN1JoZlNUa0g2TWdq?=
 =?utf-8?Q?pSpxY7nmtL0=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN9PR12MB5273.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?SFY2YjdoMWgzcGIzcTRucVlHb0o2eSt2QU9tNWJSZ0dPd2VtNEEyY1F6bGph?=
 =?utf-8?B?eWd0TkFUUmhvOEo0RjlrckZzV3lDbHlnZUsyR3hCVER6eUlKMERxUG5QVGVU?=
 =?utf-8?B?MjhYcWszV0FaWmVzbEJTbWNEV0lHYTdZTzBEL0NSbExkekJQeSt4ZU0xZWlD?=
 =?utf-8?B?WmEza0RIck5USk9adWhJaTZQQkkvR2NsVUUrREpZUU1DTDE4eTh4b2NrM3NC?=
 =?utf-8?B?cFQ3VGtqaTQvdDJtZFB4ejB1UktSbjY5V3VWOFRJRFJJeGRISjc5R0Qvd1hE?=
 =?utf-8?B?TDRTb2wxZU1IWjU1MDlucTkySkRFWFRVc0pWUFAyR2orU3B0Z2hhcVVNb0Nm?=
 =?utf-8?B?MXNwR085RUd6eHJpS0F4MGVRTCtCbkJEYnZuQUZydHVibGsxdGhCK0JJa1Ex?=
 =?utf-8?B?OUNVYndrRUYrdWk1d3B1NWRKWEZMOVA0VVVoeDhlUGxRWWlZVE53WkNtODEy?=
 =?utf-8?B?M1BNV25SdGpxcFlpZHhrSFAvZkNhdnFYQVE4dGhKK0tBQmMxSWpkWjJqNXN1?=
 =?utf-8?B?TmlFTnN1WktLQVo0Q05Vd2FqZTlQTEg3Y1JTS3RsTmNmK3N5ZXdGZlArODk3?=
 =?utf-8?B?RzIxR0poY2JXVWlCYmhXWWx4SEJsKzJoTkZUaVkycGZ5ZWxzSWxZV05ZTmJO?=
 =?utf-8?B?SFJVaVA1aHJzZTZ3Z05ZeUZ1SlloZUhMU1h3bStUR01KWFFiM1BwMm9nZGp3?=
 =?utf-8?B?SFRBZndVMXlzd2dQK01DYlZUUSsyZ2pmNUIzcnRoMTNBR1d1NDlpc3ZzcWVs?=
 =?utf-8?B?Sng2YU9VU25NK0FhK1ZYS3Z6R1JEcWtsaXl1VXMwczJHN09aL0t2ZXc2TTZ0?=
 =?utf-8?B?ZnM4aXA1WjNrRjdkSjdFb2c4SHZJWDF3RGRNWXJqODM2WHg5cTgvYUF6bi9i?=
 =?utf-8?B?K3dVNnNxc2x0N2gyNU1rQjJrd05YaHREbStsa2NnS0RvcHdETERLYWhVVDlF?=
 =?utf-8?B?TkRSVENYZmU3YTg2cnhCbkl4aUZpbW1ZYzR2MkZETUhDVUFoeUNtR2Zmb29H?=
 =?utf-8?B?N2R5S3p3Qjl3YTlSOTUvSkpmTUY2dmFKOUU2em5hQ0VkM1lsYzNadnkrTkE3?=
 =?utf-8?B?c1ZmQ2MyS2x6UDYrQXhaelorb1p5SkZqcW5RUVlOUjJaeXk3aUNheWhFK200?=
 =?utf-8?B?ank2RmhBcFVOcXUySHZXN2ZZTUg1K3hDR0JxMlB1VWY2RjhJbXg5aXBNcTlO?=
 =?utf-8?B?K3h5Nnp4VkRTRWRieWZVRGUxSUk2MEF3enFCQ21ObHYxSThNQk03RXJoYktZ?=
 =?utf-8?B?bTdCVkFlT3dXVjYwZmF3akNsUHNaamZkcnFFR2RhSEN1QXVEZ3pCOElxNzVs?=
 =?utf-8?B?SThseU1mQTVPQkw5ZXBGeVdIbGVKZmFUYjhOOUNmaHo0UHY0aHFHbElQaWFo?=
 =?utf-8?B?a2tmOWY1eVN4ZU1PNmxSMnplN01WY1plcW12RStMOU9GL2VNY29NaVZmUzNR?=
 =?utf-8?B?WTBiWW01Q3NwN2FkUzNMNGxMSndYNWw5UGgybTV0amw2TTZnTnZPSzE3endY?=
 =?utf-8?B?SklKSFFsSDlkK0V4V0ZDenF0N0FjbzdueGdEM29vMERsT3l0S2JudStZdWcr?=
 =?utf-8?B?NnkraGM3L0tNU0hweTVkcGZMYWF3OFphNnVwaEhRVU8xQXlWS3pQeVRoejQ3?=
 =?utf-8?B?Q1FGUys0RkVJSUNheDhuWW5hQi8rUGU5S043d0o5MEo4b24rUHdFWXJxVFN6?=
 =?utf-8?B?ZTA2NmNFT3E5YzAwMWhEYjdUaEhKNU5YTDhOUUJTbEk0QjlHd1ZobldPNEdL?=
 =?utf-8?B?STh1bjd5WU5lTER1dnQyQU5odS91OXJyUzdsM2J1MnlWdjRoRGV1RFU1N3Zl?=
 =?utf-8?B?SHJOSTBRRmE1UXFXdUpZUWIvYUJFV1ROZytNR20vcXplb3hYM1MvZGdRSndi?=
 =?utf-8?B?Qk5uT1ZhK1AzMjNzbCtYWjlXdGQxRHJKandmVmh3Zm9Pb280eU9nR0lPL1RT?=
 =?utf-8?B?RW9Bdy9hOXFtQmFUcXdnNjlaelNVaFBwT3h6RGlBMzhaejFBNDBjR0F0bXVM?=
 =?utf-8?B?ejdBSXJsWklRNHkxU1cvenFjR2xPbVQ4dVNIbFBYUWswY0tyWlJWZDdBVFNV?=
 =?utf-8?B?WGlvUEQ0d1FQWk5PcmdxcjdEYVFJclgvcWpCUzY1UVFHdm5vNmxuUFlsSmdw?=
 =?utf-8?Q?WQdo=3D?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c2591cfd-25e2-4082-4f0e-08dd7d82d5d8
X-MS-Exchange-CrossTenant-AuthSource: BN9PR12MB5273.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Apr 2025 07:38:24.6000
 (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: z6DswqxnG3s0OMPOc1XklJxZivjapzWm6zbwcFE9d7+XPKjKOM9ONLRmQOI+kOZk
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR12MB6898



On 14/04/2025 17:56, Oleksii Kurochko wrote:
> There is no any users of handle_device_interrupts() thereby it
> could be dropped.
It reads as if you were dropping a definition. There is no definition, therefore
no users. Prototype was added by accident in:
8d2c3ab18cc1fce46945bd3aa1819a7aea0c564e

> 
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

With the commit msg updated to be more meaningful:
Reviewed-by: Michal Orzel <michal.orzel@amd.com>

~Michal



From xen-devel-bounces@lists.xenproject.org Thu Apr 17 07:38:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 07:38:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.956991.1350209 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5JpW-0007VN-8D; Thu, 17 Apr 2025 07:38:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 956991.1350209; Thu, 17 Apr 2025 07:38: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 1u5JpW-0007VE-5K; Thu, 17 Apr 2025 07:38:38 +0000
Received: by outflank-mailman (input) for mailman id 956991;
 Thu, 17 Apr 2025 07:38: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=eJKL=XD=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1u5JpU-0007US-HE
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 07:38:36 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on20624.outbound.protection.outlook.com
 [2a01:111:f403:2418::624])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f598cade-1b5e-11f0-9ffb-bf95429c2676;
 Thu, 17 Apr 2025 09:38:34 +0200 (CEST)
Received: from BL1PR12MB5849.namprd12.prod.outlook.com (2603:10b6:208:384::18)
 by DS7PR12MB9042.namprd12.prod.outlook.com (2603:10b6:8:ed::14) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.32; Thu, 17 Apr
 2025 07:38:27 +0000
Received: from BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::b77f:9333:3a5a:d285]) by BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::b77f:9333:3a5a:d285%4]) with mapi id 15.20.8655.022; Thu, 17 Apr 2025
 07:38: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: f598cade-1b5e-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=F97JF2PE9W34CL8HsQUelMLc6avjoig+THbrg/pHL8roxChxOmdd+GUftTZmFoOkKh/gABQbnhAsxjaiRU9Vn+6txoTfyd1na6xgPstLOnCxUmwLPsqXWrI7je5lTCQbQNjqTQDG08mJzcgwf+P93zGnqtoEHcEC7N82m8tlNf6LS+rCt2fwbM3YalwcF0wReqXLqYs8MCC+XfB6I+jorWD9CQo7KUe9r+vhFdOMmuvo407MVmXcLB72F4LF9sRlSt5cMQDcflmyO0QWOap4GqVhw+Q80DftBK0khEHizMWI+FgmcsCupFTWGxzvpiFWbxMFNzhl5qS3X3WGDprFrw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=dJ+74WHcwWC8t3dpXGqTz5XsO7XbITod2Hr1Nz9kifI=;
 b=pYt5St4r0NefohrY6f1RIkHO2t08dBT8cLi1neu0uO0Dce0TapDdiRTNVFyzmtoxEoZlObQfKcRF4/kaqWT6gdmpGT2gKhqr3zjk3awkaP4X5ay9SNhIxAqYX4RTLxKK3Gpi5JM0Lu8YZqZutgk+u790ivnlwwdFDFO5XQoFFJ5pXiJnBixVmyPe+N6+SZK9SrMOMXd7F8QcNkXXkE91RNcOVriKrvTUH1xoNNI5nRJKiEwnRhuVLm6GzX7cYEe0+RZH6x6y3AxAH5vbpn7v9kDv2jOL0NgLQ+6vx9L4GPZBT8O5oDa3815WIBsuj9kFfMl1I026PU3H4N6kyFYw8A==
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=dJ+74WHcwWC8t3dpXGqTz5XsO7XbITod2Hr1Nz9kifI=;
 b=uGj1xB0d0Gk7+Ww9PnZSMAEypzTGYUcKC/o9W3Mz51zHFddu9ihce8ETuFFo0tXrHymESV8v6A2i/ynhwcKdHdCbt/FwUjpGfZ3V027q64xWKUU/T+GnvHMwXE9n3YiGcz9uMXHz/aoWoUaO2bR9hAdHaSLCqtBDU/lUZXE6m0g=
From: "Chen, Jiqian" <Jiqian.Chen@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "Huang, Ray" <Ray.Huang@amd.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>, "Chen, Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [PATCH v2 8/8] vpci/msix: Add function to clean MSIX resources
Thread-Topic: [PATCH v2 8/8] vpci/msix: Add function to clean MSIX resources
Thread-Index: AQHbqRsh+jmpxStIakeU85xhe5CvZrOng/cAgACHCoA=
Date: Thu, 17 Apr 2025 07:38:27 +0000
Message-ID:
 <BL1PR12MB58497A2B75B2DEF3859A3888E7BC2@BL1PR12MB5849.namprd12.prod.outlook.com>
References: <20250409064528.405573-1-Jiqian.Chen@amd.com>
 <20250409064528.405573-9-Jiqian.Chen@amd.com>
 <bed994d7-50fe-4a82-a0ec-b986e07ca5dd@suse.com>
In-Reply-To: <bed994d7-50fe-4a82-a0ec-b986e07ca5dd@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.8655.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_|DS7PR12MB9042:EE_
x-ms-office365-filtering-correlation-id: 2cd1ff61-9b45-4493-f6f7-08dd7d82d7cd
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?cFpFVDQxZlNxbk1pclFQYTlWUFVhZ2Y0VkRILzZsTWs5V1o3NG5TTWMybXYv?=
 =?utf-8?B?bDZoWWRkVUdYZXdKaXp1TVltQ0dnZFc4U29rWmQ0Vkl4NHAvQzlvZGJ3OXhV?=
 =?utf-8?B?SjNHZG4xalpSemxSUE5ESTFlbkZCUTB6dmN5Nm5vQ050d1RvYVhkMmFFelRO?=
 =?utf-8?B?ZlVXaFpMUUU2dkszblZLTU5uQkNPY0trczIrWDFQMUw2MlFDWitYelV5bG16?=
 =?utf-8?B?UXFWK3V4WmJrMExrME9FOUh5L0VneGlUNFNTZ21qUmp4cUFvQmJtVjN3ZlBN?=
 =?utf-8?B?YTgrWGdCTm12Z3A3RnBCenV4QmxvekdJeDhrcnA2cUVNYWgwTS8yMk5xRTJh?=
 =?utf-8?B?NFN5YS9Xc01lQll1NDZETGQ1QVB4SUtRZjBzYTBSRDFPc2lhRVJiZHNPbXZK?=
 =?utf-8?B?TExEOU1HSEJieVI5YjhiL0hYSEZtcUtQdzM0dDVrTjdTcWR0UjgveWJSZktS?=
 =?utf-8?B?ODRGODliM09YY25pTVVjQWJiTFdPRDNHdmplaFRkUklqM3M5dkRtQVZXd25X?=
 =?utf-8?B?MlV5UElzVWM5MURRd3V1bVpzTERsRnY2UkJTM2pGL2xVRE5OZzErWm9oRWdk?=
 =?utf-8?B?cUZHMWFiSG1DbUdmczFFSTdKdTkwZWVMZkY0NTloZmptODY2ZHRxb2h5dEFU?=
 =?utf-8?B?bjJiaXJBNERncVdkSUVjZXR1UExjTGF2U2tPekM5ckFhb0NicUFnYnNGV3pv?=
 =?utf-8?B?NzcvWFpQUk1Jd2hDWUd5Qm1WTHhQWkcwa3BvSUs5eWF1b3dOOHFpRFFRUDhw?=
 =?utf-8?B?b0s0OCtIYU5mNGNqN1lqQnB1QXRocmM1NUE0RDlPRUtFcW9TSDN3TWw0Z3J2?=
 =?utf-8?B?MFByU2V4OTNIRExaZVJqMGQrc2pKbERvRFZaQmFnTmtEREYvMUlPZHI0UzJW?=
 =?utf-8?B?TkVYbGU1Qi85YmZEMkdYMDlxYk55L2tUemxod05sTjkyOXJaRHE4Q0dHTU8x?=
 =?utf-8?B?T2hqTWpLSXcwWWlOVFdlemZYSC9xOWQyOEhFMG8zVUhUbDQzTUE5N1JhS0tT?=
 =?utf-8?B?bDZXSEd0aU9ZZ2oreG9JcHpycW5VUzZMMy9KdnBaNDQvYnN5U0xTUHF2WDdP?=
 =?utf-8?B?N0FWY1d6SjNZRjdIcFBoaWp1dDVxcDk3SE9vNlVXemloOXM2MDBhTTIyeDho?=
 =?utf-8?B?K3ZLUno0czNwdmM3VklPVStBbithdTdOaTRXQ2pOTDk5OFlzVWtLQW9qb09K?=
 =?utf-8?B?UmEza294TjJBN09VaWRmQTJEc016VmJOV005UGF2WVFqUkdIRU5aVlJBQktl?=
 =?utf-8?B?cFVIUHpnbnpNeFJyT2hTQ1VZVE1Ca2dZSGhnL0ZFQVY1bS9WQXBWczBVV2NP?=
 =?utf-8?B?TzZ4NDQ5M011TmhZdTdVdGUrSStFT1ZyeTZSNjRZdll2Z3JPKzV2T21Sb1NL?=
 =?utf-8?B?enVTb0t5SURTd3VqV3piT2w0dit4b0FQWTZnMzVRL3VCblVicjJwR2NLZUNL?=
 =?utf-8?B?dUJYTE9HSW9DVUJRVnl5VXhqTDQwUUJ2cjgybUN3bmF1THg4V2JEQkwzQ3di?=
 =?utf-8?B?cVJGM3R0WmppVVYvbm12WVhHSUt1Z3M1cERJWEQyYmlvMDl2emdhOHltb1U5?=
 =?utf-8?B?dGNGdER3cnJqbWFMUU55UjAxNEU3dGRkT1hHeHpSNXY4OHM2U1RXUUY0a0xq?=
 =?utf-8?B?aXMrSlFZV0xudmV0eUYrNlovemhKa3hFWmZ6akY3cXk1NW4zeTJJS1JqckVQ?=
 =?utf-8?B?ZGRyM0VhMFEzeWNqVk0yNHFuRS9oR2Q5aG5GL2RuOEM3NHpQSlUySXFDUkV6?=
 =?utf-8?B?ZjV4N1hRSjVlaTdQNkQxeTJpYlluVXExRVF1dU4rZ1EzYjVzUmNQcmNZZThh?=
 =?utf-8?B?Q0d0NGNPejVxbHJFYmFIajVMTVU2YmFFWUZqRkYyelRndkhaUGgzNVhLcGtF?=
 =?utf-8?B?TWtXVndyQnd2ZjdzaHR5Yit5NkxmZXNaNGJ3NWFERjFsRUhrWWtoWUx4VWhH?=
 =?utf-8?B?ZWVlWmVEOEtWWmx5eHhwMlNreVAvT01XNkFUb1hDV2dyWUIzcDhwd2xoY25z?=
 =?utf-8?Q?Pq9+QiJxg2DGGVto2TEMXe71uyuq4c=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?aTZORTFLLzdFV2pMQUVyWjhnNkl0eDQzcW4vMFMvc2NES2RGV0JQRlovS0V6?=
 =?utf-8?B?c2t5MnFFNG16RTJocTNMUFZBWFE4cG8zSVE0TVZxKzgxZFpKN2VQazRMY2hs?=
 =?utf-8?B?YVdjYkZEdTVKWXdJYWFaSS9BWTlBNnVoV2d6VFFvbjNpbzVuNmE3cXAyZjVO?=
 =?utf-8?B?dlNpYllaSWhWR1VHaDFSbTUvUVg2SXBwd0xhbmc2ZGtiQzJxT29XYmNpY3pT?=
 =?utf-8?B?dUI4aS9IK2o1em1DU3pkU0pwS2I0T3Jzb3dWTXMvcVVNbGJOeXFqSEJJbnJF?=
 =?utf-8?B?MEczNm5GZHhYczhSZ2ZiMXpLMXZRTmV1aHI1MUQvbnhscXRadHorc0sxbk42?=
 =?utf-8?B?UWNmMnVMYWZvdXpsYjNwbmFZMkFqcDBPYk9TbjdaeGl5SVBoWlU2QW8xZTBx?=
 =?utf-8?B?WTRxK2tvR2k5WGFzTEVna2xiajJ1UURlVXlHYUNuYnlnVzFidmRBd2Fpc2xn?=
 =?utf-8?B?ZXJYYnNxdTdGMkR5ZEgvaEVrWTJuT1VDT28rWFBoSWJwOUNSUUFoMkt5Titw?=
 =?utf-8?B?OGhsd3AwK0VET1UxRXB4ajBVWGJRWGNDQyt4Q0dwTjNjM1Z0SHZ2VVp6MkVj?=
 =?utf-8?B?WERLZ3VvMGxsUmZHWVJEeWY3YjNwZGcvaU9OM0oyWjVEMXh3aGNXai9aMS9t?=
 =?utf-8?B?NEFiTG44RjBqQzN6aURPSGg3bVlsSlNCREV5SXdlNkY5UjR0QTZQZ1FzazUr?=
 =?utf-8?B?QmRCZUpyREpDakdjQXpweFFsZGVpUUtvVVhNbjlzMGdYY1oybVVOMElySitm?=
 =?utf-8?B?OGtrSXpxK3kveWl0dnJhUFpseGZWTS9Za1lmb3ZDNzdqenBOdUEzZkt0RThz?=
 =?utf-8?B?VlFJdnVoOEIzMThGWXVRQTZXSHlwWlJIZ1Z5d3ZEZnBackpMWkQ5UUw2cEN3?=
 =?utf-8?B?TklOYndaUXAzc1hlbW1BMXRzYVljZHVSVUVZOWUxNVhTWlhOUjBiV2czL0pa?=
 =?utf-8?B?SUtSQzJKbEh6Vk1zRllyMEZuNkFMdFJMbW40UzNPMUt6VWpHRzAzK1JjUE1G?=
 =?utf-8?B?bFM5dUN4eHhwZFkydCt5MlhibmxMQ1Q5T0NxQng3RnlBZ1Z1WXN4NU96cmhQ?=
 =?utf-8?B?OU11WEdlRUFWamtPdlAvbHZwSG84YVFFQXJzT0kxYUVQOXJmSE1tVnUvVURD?=
 =?utf-8?B?OW9zckxmT25kOFo1USttRmRZR3FYcGlpSXI5TGdycDJPTDNJSXdLaWJsRTFG?=
 =?utf-8?B?TnlLaTJUeHRkamh3WXozZVNuN0pnUmgwWlM4QWlHNUpOakkydEI0OTczc09O?=
 =?utf-8?B?cEovV3crVnFVUWhEOWx0MjVqVXVHd1hMTnlHdVBYTzJCdnZzckhvNXhibVhM?=
 =?utf-8?B?NmplRlBFdXZrS1NpRGovMHNja3VtNHRlQ2pKS3FpcFlmTU5wSldIZjFqa0Rt?=
 =?utf-8?B?eEVxK2lnbFhJd3kyRExzSWV5NFMvVDFmbVpzdGhzbHVQVGdweVJMUHpVVG55?=
 =?utf-8?B?cTM2TUMrMVpZRFZVdlpWMXNHNXpmREdZNWtCcXZIMDBJMm5CekJET0FhbVZI?=
 =?utf-8?B?UDZTdHlMcUlTVjZsT1ZuQzBWRkVtbjBLc2V0aDNBMzZkYlF4UjNldjJvMURP?=
 =?utf-8?B?MHZWNW1kWE44WC9zNUgvaFpFZXVZQWNHNDVhYXptZDVlV0VKM1dHOCtCTzg4?=
 =?utf-8?B?L3JkOEQwMG93RWFJUGlrVEZDQis2TEF2WFFwUGRoanBRbU93KytXQWx4WDdJ?=
 =?utf-8?B?YmR3eG1IclFLWHRvSm8zZ3VncXp1SGRMNEhuWmRIdWlqclMzQnZnbzk4d2NV?=
 =?utf-8?B?SzNYd0kxYk5hK2pvYkRoeXJKQko2WHR2V0tDNDBMb1JxWWVKbzZPQVlrNjZI?=
 =?utf-8?B?eTJmNjhsWktCcm9SekF2Z25TRTI4WjgwN2NJVFVsK0QyY0pxN3o2WTMzSklF?=
 =?utf-8?B?ZlV0UkkvUTBxTkd4QVNGdk1WaFRaSHdnamxTVUh6VldySkFYUytJU2RnTE5s?=
 =?utf-8?B?Vm1hZERxeU5SemMrby80OVg0dG9McERkR2hoTkdSS2RkT2RkejRUM2JFZk5w?=
 =?utf-8?B?c2dBRmxXSnVGTWROanVwRjRIc2NYdDdSV0Q1U2VET01SQnNWMUpIQk9XN0pS?=
 =?utf-8?B?TGxEazBzdUJ5Wi9lQUVEV1Vsc29uZUVHOUl6eWtPUklBRUJvZ1hUSkVrL3hu?=
 =?utf-8?Q?YQ0M=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <1321EB9EC3E2F74AB3D5ABA8B54B029D@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: 2cd1ff61-9b45-4493-f6f7-08dd7d82d7cd
X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Apr 2025 07:38:27.5871
 (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: Ph1Xb+WJS+1488YNsAnoT1+hSzlWzeXe6y25B8Xe+wR0QRp2m53TKp8pIEcSkK9N3LYv0Ch6Lg3d3F5Oiqagdw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB9042

T24gMjAyNS80LzE3IDE1OjM0LCBKYW4gQmV1bGljaCB3cm90ZToNCj4gT24gMDkuMDQuMjAyNSAw
ODo0NSwgSmlxaWFuIENoZW4gd3JvdGU6DQo+PiAtLS0gYS94ZW4vYXJjaC94ODYvaHZtL2ludGVy
Y2VwdC5jDQo+PiArKysgYi94ZW4vYXJjaC94ODYvaHZtL2ludGVyY2VwdC5jDQo+PiBAQCAtMjc2
LDYgKzI3Niw1MCBAQCB2b2lkIHJlZ2lzdGVyX21taW9faGFuZGxlcihzdHJ1Y3QgZG9tYWluICpk
LA0KPj4gICAgICBoYW5kbGVyLT5tbWlvLm9wcyA9IG9wczsNCj4+ICB9DQo+PiAgDQo+PiArdm9p
ZCB1bnJlZ2lzdGVyX21taW9faGFuZGxlcihzdHJ1Y3QgZG9tYWluICpkLA0KPj4gKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IGh2bV9tbWlvX29wcyAqb3BzKQ0KPj4g
K3sNCj4+ICsgICAgdW5zaWduZWQgaW50IGksIGNvdW50ID0gZC0+YXJjaC5odm0uaW9faGFuZGxl
cl9jb3VudDsNCj4+ICsNCj4+ICsgICAgQVNTRVJUKGQtPmFyY2guaHZtLmlvX2hhbmRsZXIpOw0K
Pj4gKw0KPj4gKyAgICBpZiAoICFjb3VudCApDQo+PiArICAgICAgICByZXR1cm47DQo+PiArDQo+
PiArICAgIGZvciAoIGkgPSAwOyBpIDwgY291bnQ7IGkrKyApDQo+PiArICAgICAgICBpZiAoIGQt
PmFyY2guaHZtLmlvX2hhbmRsZXJbaV0udHlwZSA9PSBJT1JFUV9UWVBFX0NPUFkgJiYNCj4+ICsg
ICAgICAgICAgICAgZC0+YXJjaC5odm0uaW9faGFuZGxlcltpXS5tbWlvLm9wcyA9PSBvcHMgKQ0K
Pj4gKyAgICAgICAgICAgIGJyZWFrOw0KPj4gKw0KPj4gKyAgICBpZiAoIGkgPT0gY291bnQgKQ0K
Pj4gKyAgICAgICAgcmV0dXJuOw0KPj4gKw0KPj4gKyAgICBmb3IgKCA7IGkgPCBjb3VudCAtIDE7
IGkrKyApDQo+PiArICAgIHsNCj4+ICsgICAgICAgIHN0cnVjdCBodm1faW9faGFuZGxlciAqY3Vy
ciA9ICZkLT5hcmNoLmh2bS5pb19oYW5kbGVyW2ldOw0KPj4gKyAgICAgICAgc3RydWN0IGh2bV9p
b19oYW5kbGVyICpuZXh0ID0gJmQtPmFyY2guaHZtLmlvX2hhbmRsZXJbaSArIDFdOw0KPj4gKw0K
Pj4gKyAgICAgICAgY3Vyci0+dHlwZSA9IG5leHQtPnR5cGU7DQo+PiArICAgICAgICBjdXJyLT5v
cHMgPSBuZXh0LT5vcHM7DQo+PiArICAgICAgICBpZiAoIG5leHQtPnR5cGUgPT0gSU9SRVFfVFlQ
RV9DT1BZICkNCj4+ICsgICAgICAgIHsNCj4+ICsgICAgICAgICAgICBjdXJyLT5wb3J0aW8ucG9y
dCA9IDA7DQo+PiArICAgICAgICAgICAgY3Vyci0+cG9ydGlvLnNpemUgPSAwOw0KPj4gKyAgICAg
ICAgICAgIGN1cnItPnBvcnRpby5hY3Rpb24gPSAwOw0KPj4gKyAgICAgICAgICAgIGN1cnItPm1t
aW8ub3BzID0gbmV4dC0+bW1pby5vcHM7DQo+PiArICAgICAgICB9DQo+PiArICAgICAgICBlbHNl
DQo+PiArICAgICAgICB7DQo+PiArICAgICAgICAgICAgY3Vyci0+bW1pby5vcHMgPSAwOw0KPj4g
KyAgICAgICAgICAgIGN1cnItPnBvcnRpby5wb3J0ID0gbmV4dC0+cG9ydGlvLnBvcnQ7DQo+PiAr
ICAgICAgICAgICAgY3Vyci0+cG9ydGlvLnNpemUgPSBuZXh0LT5wb3J0aW8uc2l6ZTsNCj4+ICsg
ICAgICAgICAgICBjdXJyLT5wb3J0aW8uYWN0aW9uID0gbmV4dC0+cG9ydGlvLmFjdGlvbjsNCj4+
ICsgICAgICAgIH0NCj4+ICsgICAgfQ0KPj4gKw0KPj4gKyAgICBkLT5hcmNoLmh2bS5pb19oYW5k
bGVyX2NvdW50LS07DQo+PiArfQ0KPiANCj4gVG8gYWRkIG9uIHdoYXQgUm9nZXIgc2FpZDogVGhp
cyBpcyBpbmhlcmVudGx5IG5vbi1hdG9taWMsIHNvIHRoZSBkb21haW4NCj4gd291bGQgbmVlZCBw
YXVzaW5nIHRvIGRvIHN1Y2ggcmVtb3ZhbCBpbiBhIHJhY2UtZnJlZSB3YXkuIEhlbmNlIHdoeSB3
ZQ0KPiBkZWxpYmVyYXRlbHkgZGlkbid0IGhhdmUgc3VjaCBhIGZ1bmN0aW9uIHNvIGZhciwgYWl1
aS4gKFRoZSByZW1vdmFsIG1heQ0KPiBiZSBzYWZlIGluIHRoZSBzcGVjaWZpYyBjYXNlIHlvdSB1
c2UgaXQgaGVsb3csIGJ1dCB0aGVyZSdzIG5vdGhpbmcgaGVyZQ0KPiBwcmV2ZW50aW5nIGl0IGZy
b20gYmVpbmcgdXNlZCBlbHNld2hlcmUsIHdpdGhvdXQgcGF5aW5nIGF0dGVudGlvbiB0bw0KPiB0
aGUgcmFjaW5lc3MuKQ0KTWFrZSBzZW5zZSwgdGhhbmtzIGZvciB5b3VyIGRldGFpbGVkIGlucHV0
cy4NCkkgd2lsbCBkZWxldGUgdGhpcyBwYXJ0IGluIG5leHQgdmVyc2lvbi4NCg0KPiANCj4gSmFu
DQoNCi0tIA0KQmVzdCByZWdhcmRzLA0KSmlxaWFuIENoZW4uDQo=


From xen-devel-bounces@lists.xenproject.org Thu Apr 17 07:43:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 07:43:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.957013.1350218 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5Ju9-0001PU-QF; Thu, 17 Apr 2025 07:43:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 957013.1350218; Thu, 17 Apr 2025 07: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 1u5Ju9-0001PN-NN; Thu, 17 Apr 2025 07:43:25 +0000
Received: by outflank-mailman (input) for mailman id 957013;
 Thu, 17 Apr 2025 07:43: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=nsoM=XD=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u5Ju7-0001Oy-Po
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 07:43:23 +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 a0e9e854-1b5f-11f0-9ffb-bf95429c2676;
 Thu, 17 Apr 2025 09:43:18 +0200 (CEST)
Received: by mail-wr1-x436.google.com with SMTP id
 ffacd0b85a97d-39c2688619bso260605f8f.1
 for <xen-devel@lists.xenproject.org>; Thu, 17 Apr 2025 00:43:18 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 41be03b00d2f7-b0b220aa259sm2421071a12.3.2025.04.17.00.43.13
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 17 Apr 2025 00:43: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: a0e9e854-1b5f-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744875798; x=1745480598; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=fvT1CFm4PuErvhoQ1+aI0E8mAOuAeJJCy7e1uH1U38o=;
        b=Mk7tCMjwkM4LmajFtY578Kkqi0HcRAHOS+Rn1/JPLLwuj/kyqXYFKJURjsVzFZdXA7
         DCGzLnE0M/Jo5hGFj153mEYrd790utDksS7nOphnKY5loB5K8ih4R3j4JxcVhF3KsPb8
         ALo3p4rOfzYK9K0P2bwD6w936Xo2NNP54nPZEkh8nGy01fcglTD5BQEmdHSsw5Y+PyYy
         h0JfA1fBBLsu5aqjmmN6tGwJJybnvCCx4xDIw0XxMynHCnB6TFqbMWBZisIRD5EyAjYD
         EspoLEWBjsGuqZYSK4wDbk1zHJ/NDesdKcBoIvJYj+iQZQk9BNSeUk7HOkEoyE78sIXR
         rrYw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744875798; x=1745480598;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=fvT1CFm4PuErvhoQ1+aI0E8mAOuAeJJCy7e1uH1U38o=;
        b=XySwZCTuy67y+eZlrbtAMm+tz12HAq7AmnOqW6chd76rNnf00DM2e+lnTohWibLzFJ
         yAwQy3Ttt4xahu6lysCsjoOzBKOvLUBo/iTt+LA0cJAFPRAW673d9ZH8+GOzfp02WZ+8
         KB1bPd427WwzrTCmJn7hCSimU/of/xYTniuwEjc0WlrHXeFlMzlOzfHXreU5dM/Batg7
         fsSEVzJQgVlt9J2IcdkfJgP0bgUMs9I9T4T+nFRXZggJsEH5PtTUzRWQKidWuBtb2AKu
         p2WMsWoANuFifVFbIWzJOmYS1JIg3EPhJEFCK+ijpba/taVuI+CITr9Vo5G/Jd4WbCaN
         a9hw==
X-Forwarded-Encrypted: i=1; AJvYcCUJn/x3f29j28EgEyIya/LvEvOeimaEx74q5WlhrvBGA2rKKKA1/xOPvb3VpsFKtNwVX2ehKHSQQl0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyUiujPWkG5gjkwXrSsT2KWoBv00iSiKxswGRm50vqmutgiBcVq
	hWX2MAIx/XYvPQDhBhgenPguCI1MeK7LRN2ApamZEpoQ1G1wAanZIcqKYTrMKg==
X-Gm-Gg: ASbGncudeDzXzCVVtdU1Br5/JqiVCuOuzByQm724W6UeRJuNp0a+dFtmEiAYr8H32NL
	VweOn4OwXVUII0OT9yK6RIe78VxxtCMQ0CpsQ6bnD+0a7IY4cFfVvmgMw8KPPcOqyHTEKamYseK
	fRXtJJRvJZjE9Q4pHu1NzYHEl5ZmQuWSn9Szp3C3JsnN9OfV5OD1XINCaD0tRRLvmFFEInrVkz8
	AxPX1GRNg0fvIyH/u7/k9FYQEye3uYxEUISjaNUn5sEUaVYZQZC89CPqSMALUGmDbRQBmLRUjFh
	zfCAUqNTJ4HARjEGBkGwWPdjqTpwikqZsSmza87RLf+kPwEuTcE59Zqi+q0ONGmrpf676vViaRP
	iorzC3ZQasE96Pq9ClW3ivbt87Q==
X-Google-Smtp-Source: AGHT+IH9p4NhtX0oTaXx2VUaUsmdTjmBsoGLp9UI3KPNg2MoC9OHuQWxY4zOvOrebcsXzQmWcuddtw==
X-Received: by 2002:a5d:59ad:0:b0:39c:30f7:ac88 with SMTP id ffacd0b85a97d-39ee5b16ecemr4256090f8f.20.1744875797987;
        Thu, 17 Apr 2025 00:43:17 -0700 (PDT)
Message-ID: <1c4f6304-a272-4fb2-8892-43118d080641@suse.com>
Date: Thu, 17 Apr 2025 09:43:09 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/4] xen/io: provide helpers for multi size MMIO
 accesses
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20250415153246.81688-1-roger.pau@citrix.com>
 <20250415153246.81688-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: <20250415153246.81688-2-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 15.04.2025 17:32, Roger Pau Monne wrote:
> @@ -5115,7 +5115,6 @@ static void subpage_mmio_write_emulate(
>  
>      if ( test_bit(offset / MMIO_RO_SUBPAGE_GRAN, entry->ro_elems) )
>      {
> - write_ignored:
>          gprintk(XENLOG_WARNING,
>                  "ignoring write to R/O MMIO 0x%"PRI_mfn"%03x len %u\n",
>                  mfn_x(mfn), offset, len);
> @@ -5131,26 +5130,7 @@ static void subpage_mmio_write_emulate(
>          return;
>      }
>  
> -    addr += offset;
> -    switch ( len )
> -    {
> -    case 1:
> -        writeb(*(const uint8_t*)data, addr);
> -        break;
> -    case 2:
> -        writew(*(const uint16_t*)data, addr);
> -        break;
> -    case 4:
> -        writel(*(const uint32_t*)data, addr);
> -        break;
> -    case 8:
> -        writeq(*(const uint64_t*)data, addr);
> -        break;
> -    default:
> -        /* mmio_ro_emulated_write() already validated the size */
> -        ASSERT_UNREACHABLE();
> -        goto write_ignored;
> -    }
> +    write_mmio(addr + offset, data, len);
>  }

Should probably have noticed this on v1 already: The log message is now lost
for the write-ignored case. It looks easy enough to have the function return
a boolean indicating "done", to retain original behavior here.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Apr 17 07:57:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 07:57:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.957031.1350228 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5K7v-0003jT-3c; Thu, 17 Apr 2025 07:57:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 957031.1350228; Thu, 17 Apr 2025 07:57: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 1u5K7v-0003jM-0n; Thu, 17 Apr 2025 07:57:39 +0000
Received: by outflank-mailman (input) for mailman id 957031;
 Thu, 17 Apr 2025 07:57: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=nsoM=XD=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u5K7u-0003jG-GM
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 07:57:38 +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 a0bb3e02-1b61-11f0-9eb0-5ba50f476ded;
 Thu, 17 Apr 2025 09:57:37 +0200 (CEST)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-3913d129c1aso306333f8f.0
 for <xen-devel@lists.xenproject.org>; Thu, 17 Apr 2025 00:57:37 -0700 (PDT)
Received: from [10.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-22c33fe6df9sm27267065ad.231.2025.04.17.00.57.33
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 17 Apr 2025 00:57:36 -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: a0bb3e02-1b61-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744876656; x=1745481456; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=8sto1vMZJ/RFEaUgXEA7nLXKsvCQoAJjMJfXRluVzbY=;
        b=LjGUdnfioV8rJFvzEwuvRn0EhyZu+QyCIU2w51w3EB5MehVaEyQ0snkJFAvMaOIpmo
         wRpypYD3/tJ7dxAc6leqKyk5phfJUUfkCjoA3yS9sWyP6V/f2zLBrOFXW+7cYp4+K8SS
         2qv0rl/0p9OknhYdMAyv0WtDT9hOJfDFGw6fBicxKkmsOHcp8kiqqGen5U1SgoXBDIAU
         gAeuMNBXywwF/kZ0kvy2S1a/wMvUbXr+dRcKnk3CUqkshDicNgVKlHpiPg+0STk0Wd5+
         w9lk3vteHojuApaw/jZE/s39U9PPN9eaSjamYE2nd9dhw9paSWxY+1UKyrN7T3f99M1G
         X2jg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744876657; x=1745481457;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=8sto1vMZJ/RFEaUgXEA7nLXKsvCQoAJjMJfXRluVzbY=;
        b=vAUzoTV9LFrc7uDl22Htc/NGAu/5EbWzVQEwFx8D9REErECJkjYXVxC9fxSAVp1WdW
         FfOOTCwgYPtxDW9PXPzWOCbWw93tsJ/ACbOt4cgF8b/XjdHlrg9IcbmHL1BBeaWhZs2D
         MmGPogtfOnGQLmWSwytXDJLmnvS/wtIN69+YiRWMXmJhj/GN0UGpTncYOof4BDH8cV2u
         KVuH+j40PfqdJvZd52iGERkztUaADn6jeHwLvpRwJazyXu+Rk8V95B6++//mWwhTVYRl
         oxfW3lc4lkmfoM5H7M2pVrLLTHces6JDqf4zsLqX6YjhwxsVjKYvKOrqZ/dxV0r/Voko
         KKgA==
X-Forwarded-Encrypted: i=1; AJvYcCXq6IH8AumHe0VlOa+ouhJzmMfm0HgM74GDq8fxaj5z5xmv8tnaSeCvCLipS3AoyPSwn+AYyiaXIIY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxRpJjpO32y0ht5KFqHkIc6su9sA9x2S3LU+nuClysHh8LnDKhh
	nAEr6e9xTJxxoNyntZWXt0DN+kxhXokK0Rm2Tm/OWRr3PbC92ndGh9uqUrKK8w==
X-Gm-Gg: ASbGncvmU+mKnRUNrpRv7BIjJeM7VjHvBykUMpZISlhVYAf/+HAjkaQbPCNB2gjsyRo
	3qpCaK5qxdR8mO/BDpOrVaRcDnIutr3Fa6kBEK3QeMNCsCMq/8WjSsJanUMHpoyhF9p9LDsc5Sl
	R6dgWLuS9+Uk9Tnv4fSFl07GfS7Q8kFdgHyhOD3pEmuY+ih61/rV/ueCupCnfWN0Q1aTHRDiAqf
	6Q6o2kwFp/j5MyN6iNpIBxeC8GaNnf0sRBxYY+SJI0VON1XJqvxyhvmJR+mItK/ROabPCPJ7Nmt
	deOT4v33Txe0BOf8V2nKTEe0iWmNds7R13e0zEVVheeEIqxj/R8HWzUBweYcXxrCVVHloH3DU9/
	Zs6urkQfbb5gBUm5JglIb8UgjRQ==
X-Google-Smtp-Source: AGHT+IH7wfMikwPWxYMaBxNx2fCGhfA7fmAW8dK0r7fikxWggYIzOqussoQugQdNka9brSFDFwxUgw==
X-Received: by 2002:a5d:5f52:0:b0:39c:30f7:a599 with SMTP id ffacd0b85a97d-39eea304084mr1349922f8f.18.1744876656641;
        Thu, 17 Apr 2025 00:57:36 -0700 (PDT)
Message-ID: <c890cef7-da7c-4cb1-922d-8b0b155eca43@suse.com>
Date: Thu, 17 Apr 2025 09:57:29 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/4] x86/hvm: fix handling of accesses to partial r/o
 MMIO pages
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20250415153246.81688-1-roger.pau@citrix.com>
 <20250415153246.81688-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: <20250415153246.81688-3-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 15.04.2025 17:32, Roger Pau Monne wrote:
> --- a/xen/arch/x86/hvm/emulate.c
> +++ b/xen/arch/x86/hvm/emulate.c
> @@ -370,7 +370,12 @@ static int hvmemul_do_io(
>          /* If there is no suitable backing DM, just ignore accesses */
>          if ( !s )
>          {
> -            if ( is_mmio && is_hardware_domain(currd) )
> +            if ( is_mmio && is_hardware_domain(currd) &&
> +                 /*
> +                  * Do not attempt to fixup accesses to r/o MMIO regions, they
> +                  * are expected to be terminated by the null handler below.
> +                  */
> +                 !rangeset_contains_singleton(mmio_ro_ranges, PFN_DOWN(addr)) )
>              {
>                  /*
>                   * PVH dom0 is likely missing MMIO mappings on the p2m, due to

Doesn't this need limiting to writes, i.e. permitting reads to still be
handled right here?

> --- /dev/null
> +++ b/xen/arch/x86/hvm/mmio.c
> @@ -0,0 +1,100 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +/*
> + * MMIO related routines.
> + *
> + * Copyright (c) 2025 Cloud Software Group
> + */
> +
> +#include <xen/io.h>
> +#include <xen/mm.h>
> +
> +#include <asm/p2m.h>
> +
> +static int cf_check subpage_mmio_accept(struct vcpu *v, unsigned long addr)
> +{
> +    p2m_type_t t;
> +    mfn_t mfn = get_gfn_query_unlocked(v->domain, addr, &t);

Don't you need to use PFN_DOWN() on addr?

> +    return !mfn_eq(mfn, INVALID_MFN) && t == p2m_mmio_direct &&
> +           subpage_mmio_find_page(mfn);
> +}
> +
> +static int cf_check subpage_mmio_read(
> +    struct vcpu *v, unsigned long addr, unsigned int len, unsigned long *data)
> +{
> +    struct domain *d = v->domain;
> +    p2m_type_t t;
> +    mfn_t mfn = get_gfn_query(d, addr, &t);

Same here and further down, and in the write case?

> +    struct subpage_ro_range *entry;
> +    volatile void __iomem *mem;
> +
> +    *data = ~0UL;
> +
> +    if ( mfn_eq(mfn, INVALID_MFN) || t != p2m_mmio_direct )
> +    {
> +        put_gfn(d, addr);
> +        return X86EMUL_RETRY;
> +    }
> +
> +    entry = subpage_mmio_find_page(mfn);
> +    if ( !entry )
> +    {
> +        put_gfn(d, addr);
> +        return X86EMUL_OKAY;
> +    }
> +
> +    mem = subpage_mmio_map_page(entry);
> +    if ( !mem )
> +    {
> +        put_gfn(d, addr);
> +        gprintk(XENLOG_ERR,
> +                "Failed to map page for MMIO read at %#lx -> %#lx\n",
> +                addr, mfn_to_maddr(mfn) + PAGE_OFFSET(addr));
> +        return X86EMUL_OKAY;
> +    }
> +
> +    *data = read_mmio(mem + PAGE_OFFSET(addr), len);

What if this crosses the trailing page boundary? Imo subpage_mmio_accept()
would better reject misaligned accesses (at least until we know we need to
handle such for some obscure reason).

> +    put_gfn(d, addr);
> +    return X86EMUL_OKAY;
> +}

Thinking of it - why do reads need handling here? The guest has read access?
Hmm, yes, read-modify-write operations may take this path. Maybe worth
having a comment here.

> +void register_subpage_ro_handler(struct domain *d)
> +{
> +    static const struct hvm_mmio_ops subpage_mmio_ops = {
> +        .check = subpage_mmio_accept,
> +        .read = subpage_mmio_read,
> +        .write = subpage_mmio_write,
> +    };
> +
> +    register_mmio_handler(d, &subpage_mmio_ops);

Are there any criteria by which we could limit the registration of this
handler?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Apr 17 08:01:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 08:01:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.957043.1350239 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5KBT-00066S-Jt; Thu, 17 Apr 2025 08:01:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 957043.1350239; Thu, 17 Apr 2025 08:01: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 1u5KBT-00066L-Gy; Thu, 17 Apr 2025 08:01:19 +0000
Received: by outflank-mailman (input) for mailman id 957043;
 Thu, 17 Apr 2025 08:01: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=CA5y=XD=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u5KBS-00063O-Vq
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 08:01:18 +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 241c6664-1b62-11f0-9eb0-5ba50f476ded;
 Thu, 17 Apr 2025 10:01:17 +0200 (CEST)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-43cfdc2c8c9so2324365e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 17 Apr 2025 01:01:17 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4405b4f2cfesm43806765e9.19.2025.04.17.01.01.15
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 17 Apr 2025 01:01: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: 241c6664-1b62-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744876877; x=1745481677; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=qZVLkKCCz4l+vu11At93kZ9cWFmJJ7Q5Fbun+gFSwmI=;
        b=HMo739Vqk9U7dB5wo+FkMd3vqbf380W6eI+hr2+4SMNs7e8L1V1qRh7Q2aWQ34YbjN
         qHJAeCY2W/dBCSF4udYLLMzrLhy2U1c0+cgDDnH7S9AXsh4MbpTnZu72PdCJtl2UjwX4
         svb9gzqR7Q4e7TuB4O9gc/5J5fS5cICnz1/C8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744876877; x=1745481677;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=qZVLkKCCz4l+vu11At93kZ9cWFmJJ7Q5Fbun+gFSwmI=;
        b=ouYj4x54GADMDFldmaxspl3fV2kigBWlnccZNJYEgLYw1TYZpTsIm71Od4tQlK6vpM
         Cw1WknY2vR7CkrsEi6Q7nYbodgmWI+5Azw1+l/OLIWCyGZaprc+RElqdFKIIikScymqy
         J0SLFxvAfwMpvgNLiT0ghKCL2BxVPi5qDQCy0NUR58ESH13VR+7q/At7YtjnRqam6SjR
         mifjcHKev2fo6ZmmOlWW6OYDTAy8OH2/FfFJjSuqeaySaGHwfe6sh9WlZocVa0MRLNoi
         0MBraW6N6hTHT/3mIyGr91c6A8/K8ujTDDIJ6m5wNVKtvcmR/GigfpvEPqrzubsCcLgb
         wjiQ==
X-Forwarded-Encrypted: i=1; AJvYcCVe2fhI4Vens8D4wg6tVz8+YVPKJVtdij6gUMUO/eSB272gkaOjEgtStKHI9CWHyaa3DtvJe4zkqGw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwunQGaht8cil/fQ1AqMC6lX67HKppN+7wztp75bu43JYoF5iMj
	qFDYH3ZMmb8dwh+v2J5AfqWuLxg3KY0GOioG+IKG8ayrNn5tz1uxJRfZLtytbGA=
X-Gm-Gg: ASbGnct20z7lG2FnnY9QHC2j10vke2liJpGJhsGgdKZrOMpGOb/We542qEAPFs2rswV
	h4JiVXPq1DbGSg/mGytsuNihIk2YPMmh/D6O/Wah1QL3G6kP/OHFJooeFbFnB08dQhDUcMJA2BD
	IIgNBeSwkcGtUKRVq9OO3aFZTY121OkF+QRZHupvRHDkkMXwl9B/SIJ3r65cYshlKfFOlTImZ2m
	ZD1P+sQdHi0P4CtQtGD4aRvLmMADebA1mS68n0NzW60BzZ+N1EPsPTMuaGGn7lJwkvJ3rEPF0vf
	3dB45/dnmioEuKsPPt/ebpxVMDWdHbL2xEgrn1yILpd57mMoj/uTaZxbSp7ulG+s/UIf/behtH5
	4j4xotA==
X-Google-Smtp-Source: AGHT+IGoIAAOH+vZNXH21KzZF/hebGPMJjA2bZR+nQLdiu/JOKRQEXfGQ0irPjTsh9v3lhcioV0J1A==
X-Received: by 2002:a5d:5987:0:b0:390:f6aa:4e80 with SMTP id ffacd0b85a97d-39ee5ba0566mr4510746f8f.53.1744876877046;
        Thu, 17 Apr 2025 01:01:17 -0700 (PDT)
Message-ID: <ecfce9c8-6c69-422d-bb2a-867c94502f9b@citrix.com>
Date: Thu, 17 Apr 2025 09:01:15 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: x86 emulation bug
To: Jan Beulich <jbeulich@suse.com>, Fabian Specht <f.specht@tum.de>
Cc: manuel.andreas@tum.de, xen-devel@lists.xenproject.org
References: <jfgrmlid6fhbptebr22ccqimqhys3pchcoyuoepjz2iwoillei@xxaicsktj2pl>
 <910868c1-fc90-49ec-bd06-3ff638ff0c1d@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: <910868c1-fc90-49ec-bd06-3ff638ff0c1d@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 17/04/2025 8:14 am, Jan Beulich wrote:
> On 17.04.2025 00:52, Fabian Specht wrote:
>> Dear all,
>>
>> we discovered a bug in hvm64 x86 Xen. Using the attached xtf test we are
>> able to trigger an assert in arch/x86/hvm/emulate.c:
>>
>>
>> if ( (hvmemul_ctxt->ctxt.regs->eflags & X86_EFLAGS_DF) && (reps > 1) )
>> {
>> 	/*
>> 	 * x86_emulate() clips the repetition count to ensure we don't wrap
>> 	 * the effective-address index register. Hence this assertion holds.
>> 	 */
>> 	ASSERT(offset >= ((reps - 1) * bytes_per_rep));
>> 	okay = hvm_virtual_to_linear_addr(
>> 		seg, reg, offset - (reps - 1) * bytes_per_rep,
>> 		reps * bytes_per_rep, access_type,
>> 		hvmemul_get_seg_reg(x86_seg_cs, hvmemul_ctxt), linear);
>> 	*linear += (reps - 1) * bytes_per_rep;
>> 	if ( hvmemul_ctxt->ctxt.addr_size != 64 )
>> 		*linear = (uint32_t)*linear;
>> }
>>
>>
>> If debug mode is not enabled, this will later on result in an integer
>> underflow, however we were not able to find any severe problems.
>>
>> The test below will not work with vanilla xtf.
> Thanks for the report. However, already on Andreas' report on the day before
> yesterday I was heavily inclined to ask about details you certainly have
> figured out already. I find it odd that you leave to us all re-figuring out.
> In this case, for example: Is the specific value you set %eax to relevant?
> (Probably not.) Is the specific value you set %rcx to relevant? (Probably
> not, but likely some part of it is.) Is the specific value you set %rdi to
> relevant? (Probably not, but likely some part of it is. Probably you
> setting it to 0 is also why the adjustment below is needed, and using a
> different value might permit avoiding that adjustment.) Is it relevant
> that you set EFLAGS.DF? (Quite likely.)
>
> Any other investigation results you may have collected would likely also
> make our job easier.

To add to this, the amount of RAM you create the XTF guest with is very
relevant too, because it changes the behaviour.

E.g. when the guest has 6G of RAM, 0x5564000000 becomes normal RAM.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Apr 17 08:04:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 08:04:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.957056.1350248 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5KEf-0006vd-1G; Thu, 17 Apr 2025 08:04:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 957056.1350248; Thu, 17 Apr 2025 08: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 1u5KEe-0006vW-Ut; Thu, 17 Apr 2025 08:04:36 +0000
Received: by outflank-mailman (input) for mailman id 957056;
 Thu, 17 Apr 2025 08:04: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=nsoM=XD=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u5KEe-0006vQ-1n
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 08:04:36 +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 99cdc403-1b62-11f0-9eb0-5ba50f476ded;
 Thu, 17 Apr 2025 10:04:35 +0200 (CEST)
Received: by mail-wr1-x432.google.com with SMTP id
 ffacd0b85a97d-39ee682e0ddso280704f8f.1
 for <xen-devel@lists.xenproject.org>; Thu, 17 Apr 2025 01:04:35 -0700 (PDT)
Received: from [10.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-22c33ef121dsm27363925ad.17.2025.04.17.01.04.31
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 17 Apr 2025 01:04:33 -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: 99cdc403-1b62-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744877074; x=1745481874; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=GyoGNtbs8v7rbfSM4kKkxkuhlRl3vlj9mg+iqWK8Y3A=;
        b=XK2VwZ31U+fT+N3JuejaVcHHjC5Mxc1N85lsd/F+H81B76wNU9l3iITxT8cndb64W/
         mbIRROe2/28Pmrk6llmH41yBUi/eegkwyyDSR5i8DXo0erHPFhRRqthXtUe4dGLJEbl4
         172GDfrwUknEK5R31dkoTxdRu3hVYQBqPeBep+vr/6wYGa4oDo7Bt4cE4AAZc2cqcFOg
         YuVgvE/mLH2JqD/ZI6iRTkmhtxPcZASQp/UzGLm6S/92wSw1ZidFka8lHkN2Y09ydRzr
         8kBuknPsOlhuFtYhmh0wwdKCt4q3tzLrkSVqHJ5+GkybvM2eea5jAPUf4rQljIQ0Xmfg
         y/bw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744877074; x=1745481874;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=GyoGNtbs8v7rbfSM4kKkxkuhlRl3vlj9mg+iqWK8Y3A=;
        b=jS2COs38j4sApdbTYa9+dmYPVFeT6V4U40VFXEjY6soQtGMJgKP6QEFzVy9OqhYwdI
         u4WH7UAoFjKSslJoEOeUXjbzgnUnqROhhn28VG8woN1K99mWqXred2q+vBti/+WDmxbi
         AlEB3U9JggtrR6Gr+cRsjfKDzJyXpFoPx7jpRBIktmTBAtIU7qZOgY6AkMUOabNDzHYS
         INdSAlWpO/PuRz0PyHSunmjIIFOvsp1YSwWLuXceMck8A3xsHtb0htXILuNAfIAI22Rz
         9VGnl95MmJQ8KBDk2xOifkS5YqAKnD28iXTkxDc++uyFB2B/U+xyRTY1jsrl3YNbRV8V
         9KFg==
X-Gm-Message-State: AOJu0YzgqZMrckSDXfgXb15skIp1Wz7YspcHIq5ACm21UWzxTZ3AZNp/
	PJKI2g/d+qLLi0OQaWmiNLhiFox9FyxcJeCFbviF6NUwcCzMhNS5fo6Ux9qY1g==
X-Gm-Gg: ASbGnctwb0u4kIlocr+ZN0OUC0IAXLFSUFXHeMsUtPUpG24lyp64hBHHn/0A+W6CIqf
	MZV9c+KrCIDC+oFYJItlq0yIBwIlSMQPK+UG+4cHXvgIkAH85YMD07UMQtNl08dLUXi+dKSlnV3
	eCNG+pg9HjcSkQDNhYcaW3ANSIUnDxORxD2HI/bBa3E7wui806vVo50kM3UO/BG2RNPZbeWqeOQ
	9gRrSWHGhGmsxfto9Dh8q5l+Z8jsp1SwglyQYrLzzRie3JxX+9SXNFgA1s2YBQpPVEjgWzudbfZ
	siU3IdO18AKG4Rl0uZHjTvq9aHmFAccaGSYDfM8zaUZu9JIWUO6svptwyW6Q4BGkyF6FEf2otgP
	njWyIOoRfebF2nXGzdNcrOR+dktEoCZd7aXaD
X-Google-Smtp-Source: AGHT+IEpSAkU1Z8eVmj0NUryj6wdth2U7nfx4deswh9PwS6XhUhCHh0OqM5cch6EFTvicPBytEz1Tw==
X-Received: by 2002:a05:6000:40de:b0:391:487f:282a with SMTP id ffacd0b85a97d-39ee5bb1bd5mr3416048f8f.50.1744877074526;
        Thu, 17 Apr 2025 01:04:34 -0700 (PDT)
Message-ID: <4ee081e6-dbf7-4e30-a17d-9ea27fb6fb17@suse.com>
Date: Thu, 17 Apr 2025 10:04:26 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v7] Avoid crash calling PrintErrMesg from efi_multiboot2
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>,
 Frediano Ziglio <frediano.ziglio@cloud.com>
Cc: xen-devel@lists.xenproject.org,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>
References: <20250321103258.37425-1-frediano.ziglio@cloud.com>
 <aABxr9W8_L3sQBHh@mail-itl>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <aABxr9W8_L3sQBHh@mail-itl>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 17.04.2025 05:12, Marek Marczykowski-Górecki wrote:
> On Fri, Mar 21, 2025 at 10:32:58AM +0000, Frediano Ziglio wrote:
>> Although code is compiled with -fpic option data is not position
>> independent. This causes data pointer to become invalid if
>> code is not relocated properly which is what happens for
>> efi_multiboot2 which is called by multiboot entry code.
>>
>> Code tested adding
>>    PrintErrMesg(L"Test message", EFI_BUFFER_TOO_SMALL);
>> in efi_multiboot2 before calling efi_arch_edd (this function
>> can potentially call PrintErrMesg).
>>
>> Before the patch (XenServer installation on Qemu, xen replaced
>> with vanilla xen.gz):
>>   Booting `XenServer (Serial)'Booting `XenServer (Serial)'
>>   Test message: !!!! X64 Exception Type - 0E(#PF - Page-Fault)  CPU Apic ID - 00000000 !!!!
>>   ExceptionData - 0000000000000000  I:0 R:0 U:0 W:0 P:0 PK:0 SS:0 SGX:0
>>   RIP  - 000000007EE21E9A, CS  - 0000000000000038, RFLAGS - 0000000000210246
>>   RAX  - 000000007FF0C1B5, RCX - 0000000000000050, RDX - 0000000000000010
>>   RBX  - 0000000000000000, RSP - 000000007FF0C180, RBP - 000000007FF0C210
>>   RSI  - FFFF82D040467CE8, RDI - 0000000000000000
>>   R8   - 000000007FF0C1C8, R9  - 000000007FF0C1C0, R10 - 0000000000000000
>>   R11  - 0000000000001020, R12 - FFFF82D040467CE8, R13 - 000000007FF0C1B8
>>   R14  - 000000007EA33328, R15 - 000000007EA332D8
>>   DS   - 0000000000000030, ES  - 0000000000000030, FS  - 0000000000000030
>>   GS   - 0000000000000030, SS  - 0000000000000030
>>   CR0  - 0000000080010033, CR2 - FFFF82D040467CE8, CR3 - 000000007FC01000
>>   CR4  - 0000000000000668, CR8 - 0000000000000000
>>   DR0  - 0000000000000000, DR1 - 0000000000000000, DR2 - 0000000000000000
>>   DR3  - 0000000000000000, DR6 - 00000000FFFF0FF0, DR7 - 0000000000000400
>>   GDTR - 000000007F9DB000 0000000000000047, LDTR - 0000000000000000
>>   IDTR - 000000007F48E018 0000000000000FFF,   TR - 0000000000000000
>>   FXSAVE_STATE - 000000007FF0BDE0
>>   !!!! Find image based on IP(0x7EE21E9A) (No PDB)  (ImageBase=000000007EE20000, EntryPoint=000000007EE23935) !!!!
>>
>> After the patch:
>>   Booting `XenServer (Serial)'Booting `XenServer (Serial)'
>>   Test message: Buffer too small
>>   BdsDxe: loading Boot0000 "UiApp" from Fv(7CB8BDC9-F8EB-4F34-AAEA-3EE4AF6516A1)/FvFile(462CAA21-7614-4503-836E-8AB6F4662331)
>>   BdsDxe: starting Boot0000 "UiApp" from Fv(7CB8BDC9-F8EB-4F34-AAEA-3EE4AF6516A1)/FvFile(462CAA21-7614-4503-836E-8AB6F4662331)
>>
>> This partially rollback commit 00d5d5ce23e6.
>>
>> Fixes: 9180f5365524 ("x86: add multiboot2 protocol support for EFI platforms")
>> Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>
> 
> -no-jump-tables is available since clang 3.9.0 (and since GCC 4.1.0), so
> with upgraded base toolchain requirements it's safe to commit this now.

And is therefore not eligible for backporting, despite the Fixes: tag.

> Acked-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>

Committed.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Apr 17 08:07:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 08:07:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.957068.1350260 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5KHs-0007TE-Hc; Thu, 17 Apr 2025 08:07:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 957068.1350260; Thu, 17 Apr 2025 08:07: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 1u5KHs-0007T7-Cj; Thu, 17 Apr 2025 08:07:56 +0000
Received: by outflank-mailman (input) for mailman id 957068;
 Thu, 17 Apr 2025 08:07: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=nsoM=XD=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u5KHr-0007T1-Dw
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 08:07:55 +0000
Received: from mail-wr1-x431.google.com (mail-wr1-x431.google.com
 [2a00:1450:4864:20::431])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0ffc14ec-1b63-11f0-9ffb-bf95429c2676;
 Thu, 17 Apr 2025 10:07:53 +0200 (CEST)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-39c31e4c3e5so322258f8f.0
 for <xen-devel@lists.xenproject.org>; Thu, 17 Apr 2025 01:07:53 -0700 (PDT)
Received: from [10.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-22c33fc43d5sm27510145ad.162.2025.04.17.01.07.49
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 17 Apr 2025 01:07:52 -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: 0ffc14ec-1b63-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744877273; x=1745482073; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=dubHgutPlcjbbhrvqQDDZwR7TX1nJOvucvrB3xnRZqc=;
        b=efbe3QMsHdw6OYWAxloTQ592bJ2jN6Fx1J21N8YNeYNVyoYum+BdSn38ENCCoNS4UM
         PZm5lmybuM4jAGmMLdpObnmu+7lOWz3D/kcZUuINPS+RvlamzLwGNk+BANxRCp1xC2a9
         2GgfZYJAyHk0VWrFr0YCvx00mCM/Y0r4S377SqtyLuSOEGNW4f1/oiRAhmu6ZiJaagbB
         IT3XhN5Q4wrcGX23w2ZXNWb3mhRE32m2JYBalWBVs1+25WMkHKdmZXK0lp7NllJkFx/i
         iYfZ4PuElmi31aeevNLAD3Y9WXjBPOo/57Tz/arwVDkaM9QLKC4PYNhUg5SgxiAwUmd/
         6iMw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744877273; x=1745482073;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=dubHgutPlcjbbhrvqQDDZwR7TX1nJOvucvrB3xnRZqc=;
        b=nqhGl0QLyP4FlPt9i9ajjvNG5O6FwLhhpWjpK5gpv6pFOGjdOKkygRVpNYR8vsuHDQ
         72P6m49v2Uif/ZPNf4zvAHHDFIui3z6VrMjv35mbi5k550nMy6jGQpsipfFqyGXMpqmT
         QqqjqhYVNw8kLM8Z9E4MdvGSFuROnd+b9EwxjNk32HXbnu+Xalf1GS4JObPhSIOAjW3O
         mgnkuJ5xNJjLSPcaoLsbMcRV8axAmOkQduH1YZGFrZHMBjHrKAVIMU4HrymnVCPTAk4K
         7BV47WcnhntQgP2E/T8z6NLYGDbY0v/VfTpmcwGmsBBe+7WfxwI6lV7/MIYmMMt0e3sH
         p8/w==
X-Forwarded-Encrypted: i=1; AJvYcCV8jcbI+we1xoa9JJBqnIrHfFU94jJa8JwThLvjDSRATw0xE0KdVm+rR7o2aW909jJYH46okvM7CxE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzaMyE1oM9c4DoTjIfctrGNsXzLlJHlyygwiHjbOAIz08xMpaSR
	EETo2vbKOi2Hjeu5yUoSBfzewu5yqxK/g6AF63v81Jod94iplkrcTCftygoooQ==
X-Gm-Gg: ASbGncu6tfcNaipfCL7OK7f5E20Ejes1rqgjaRosolvZqY4WqGI9B1ryh0BV7u6iXVL
	gfEffGfMJx7Xyvhe5yRS0u5UWJ7IQN5SAG69kLR/nFEFsyk5CR3zNgsM2P1/C/DpQlSSNP7z9hV
	UDgTOiS0vbCeeoEEgYl6mexrJstAW4rKhpEbGQDwOTn16bS6Oy+/9sS4UrjB4JRvJmuXWd2XTq2
	eTsh0TV0RgdrqBZGuCplzVGn+1iczDjUB6tJ3R2trQCMiXVGu7AkD+C9su8I/YKwAuVgQ3XQj+Y
	dSzrxXJQffgI6wnFjIOcCzZOqtfCifecUcZb14vkuTvSRBPIC7dtCC3GEwBZixLmizpzhlCJ+2k
	X35JriV1Cf5jXj4SZp2TrEDdALw==
X-Google-Smtp-Source: AGHT+IHbBdxq5PHh63JRgIgEOfGIBYtnaIFhtjSmMex5sus+9DB7g6fMusn8VKMqCIQUWCQiC70XAA==
X-Received: by 2002:a05:6000:1449:b0:390:fbba:e64b with SMTP id ffacd0b85a97d-39ee5b33b58mr4366391f8f.31.1744877272791;
        Thu, 17 Apr 2025 01:07:52 -0700 (PDT)
Message-ID: <4ee5c7e3-1072-4f12-b38d-de33ab3a5081@suse.com>
Date: Thu, 17 Apr 2025 10:07:46 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: x86 emulation bug
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: manuel.andreas@tum.de, xen-devel@lists.xenproject.org,
 Fabian Specht <f.specht@tum.de>
References: <jfgrmlid6fhbptebr22ccqimqhys3pchcoyuoepjz2iwoillei@xxaicsktj2pl>
 <910868c1-fc90-49ec-bd06-3ff638ff0c1d@suse.com>
 <ecfce9c8-6c69-422d-bb2a-867c94502f9b@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: <ecfce9c8-6c69-422d-bb2a-867c94502f9b@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 17.04.2025 10:01, Andrew Cooper wrote:
> On 17/04/2025 8:14 am, Jan Beulich wrote:
>> On 17.04.2025 00:52, Fabian Specht wrote:
>>> Dear all,
>>>
>>> we discovered a bug in hvm64 x86 Xen. Using the attached xtf test we are
>>> able to trigger an assert in arch/x86/hvm/emulate.c:
>>>
>>>
>>> if ( (hvmemul_ctxt->ctxt.regs->eflags & X86_EFLAGS_DF) && (reps > 1) )
>>> {
>>> 	/*
>>> 	 * x86_emulate() clips the repetition count to ensure we don't wrap
>>> 	 * the effective-address index register. Hence this assertion holds.
>>> 	 */
>>> 	ASSERT(offset >= ((reps - 1) * bytes_per_rep));
>>> 	okay = hvm_virtual_to_linear_addr(
>>> 		seg, reg, offset - (reps - 1) * bytes_per_rep,
>>> 		reps * bytes_per_rep, access_type,
>>> 		hvmemul_get_seg_reg(x86_seg_cs, hvmemul_ctxt), linear);
>>> 	*linear += (reps - 1) * bytes_per_rep;
>>> 	if ( hvmemul_ctxt->ctxt.addr_size != 64 )
>>> 		*linear = (uint32_t)*linear;
>>> }
>>>
>>>
>>> If debug mode is not enabled, this will later on result in an integer
>>> underflow, however we were not able to find any severe problems.
>>>
>>> The test below will not work with vanilla xtf.
>> Thanks for the report. However, already on Andreas' report on the day before
>> yesterday I was heavily inclined to ask about details you certainly have
>> figured out already. I find it odd that you leave to us all re-figuring out.
>> In this case, for example: Is the specific value you set %eax to relevant?
>> (Probably not.) Is the specific value you set %rcx to relevant? (Probably
>> not, but likely some part of it is.) Is the specific value you set %rdi to
>> relevant? (Probably not, but likely some part of it is. Probably you
>> setting it to 0 is also why the adjustment below is needed, and using a
>> different value might permit avoiding that adjustment.) Is it relevant
>> that you set EFLAGS.DF? (Quite likely.)
>>
>> Any other investigation results you may have collected would likely also
>> make our job easier.
> 
> To add to this, the amount of RAM you create the XTF guest with is very
> relevant too, because it changes the behaviour.
> 
> E.g. when the guest has 6G of RAM, 0x5564000000 becomes normal RAM.

It's more like 342Gb that would be needed?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Apr 17 08:08:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 08:08:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.957080.1350269 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5KIc-000822-Tj; Thu, 17 Apr 2025 08:08:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 957080.1350269; Thu, 17 Apr 2025 08:08: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 1u5KIc-00081v-Pk; Thu, 17 Apr 2025 08:08:42 +0000
Received: by outflank-mailman (input) for mailman id 957080;
 Thu, 17 Apr 2025 08:08: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=/8PF=XD=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1u5KIc-0007l4-4n
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 08:08:42 +0000
Received: from NAM10-BN7-obe.outbound.protection.outlook.com
 (mail-bn7nam10on2062d.outbound.protection.outlook.com
 [2a01:111:f403:2009::62d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2bfa5807-1b63-11f0-9eb0-5ba50f476ded;
 Thu, 17 Apr 2025 10:08:40 +0200 (CEST)
Received: from BN9PR12MB5273.namprd12.prod.outlook.com (2603:10b6:408:11e::22)
 by MN0PR12MB5930.namprd12.prod.outlook.com (2603:10b6:208:37d::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.22; Thu, 17 Apr
 2025 08:08:36 +0000
Received: from BN9PR12MB5273.namprd12.prod.outlook.com
 ([fe80::cf66:58ab:47be:4b13]) by BN9PR12MB5273.namprd12.prod.outlook.com
 ([fe80::cf66:58ab:47be:4b13%5]) with mapi id 15.20.8655.022; Thu, 17 Apr 2025
 08:08: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: 2bfa5807-1b63-11f0-9eb0-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=cw7vBmnUUTXAhcRHthrR7OmGR9PNyCAnjHfOGEhdvWuUb4IdiKgA5O3DzuqxpFyECeUr3HWofffUtuNNZyKaSzFlNluKrz4mzpwmEqO22+E+Zb88jBMy7wLCWw3Q0UPnnx64DFd5DuReuE49o04waTKFVPiXEwtpMd48Xm5ZQe9lyccr2IFLQT0naANZf5UkHWIwTHNnLyvN/uiLx3jgmssvVeFxvuEVGH4kLC0n+fE+6dM/gkCzF0tkQy9qJt4vtLmKWR5mqZDoAMi/yxnal7tdY2F80YoCm3hZhE5aROKUhKcG0HZc4YRuNye80q0Pg8KLcejHXwUqBnewvqpHIA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=/rZUlDTGTibTU0OIxME61lhrrI/BhiOSh+Ax4g7DDrs=;
 b=eJdpwbr4JQJ/tQ60WSFobN/77DkkQEspTyrGar89B/Ss6/tcfGA2RII9nrLLHaOZbpBkn8hQPKDfQcHWYDNffXC+7kEs/ALmdfhg8cs41vtdpxLDJ9uHTqHTZK4ruyC1/yaIw7l+jSb9ZladdoZDHk/e55u2E/S6l4xLDxG0RMT4I92VXwuUlJyorwfG/KsDXvkvJXS/V+cgxcT9VxLdvXQeG4XAS0jQtXXwGEMgaK1qiTtApe2o+H1P+b3PL1Tvb5DF4i4ympaM+Bry6ERdalOejoeCaSJnbWGHmK7Ib7wwztSMKdL+Iy+EHZrOpB/wQhNyyBGtl/e+aBnVvRH8fA==
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=/rZUlDTGTibTU0OIxME61lhrrI/BhiOSh+Ax4g7DDrs=;
 b=gWMtONwOEkECuGfM+kx9DhlgtEnJngxKDCFAcoqK6lTnCNkcbTqaQH3i6Far2zplkUk3k1pYMbmRsO6mbicnbAXCjtqRjq4hV+pqXnM10dbQ7lV62YGNM6IuFOMKPm64PLsqLQxjIVWCYILiXCm8q7IqhPZHIjS8Ap+y3LZk958=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <6e0ec1f3-08e5-475f-8d66-f3814e047760@amd.com>
Date: Thu, 17 Apr 2025 10:08:32 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/8] xen/common: dom0less: make some parts of Arm's
 CONFIG_DOM0LESS common
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 xen-devel@lists.xenproject.org
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>, Jan Beulich <jbeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <cover.1744626032.git.oleksii.kurochko@gmail.com>
 <c31977cb20be408ac695ec44edaa6e058e6ec10f.1744626032.git.oleksii.kurochko@gmail.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <c31977cb20be408ac695ec44edaa6e058e6ec10f.1744626032.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR4P281CA0433.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:d1::15) To BN9PR12MB5273.namprd12.prod.outlook.com
 (2603:10b6:408:11e::22)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN9PR12MB5273:EE_|MN0PR12MB5930:EE_
X-MS-Office365-Filtering-Correlation-Id: 1138e257-c25d-4ad4-7638-08dd7d870de5
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014|7416014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?ZXJEMzg2akRNNGkwSXJvZEJuTjh3OHFRdEFpenIveWxKelJpUTFaRkZ0NEhE?=
 =?utf-8?B?SEtuZlVkTlRYeDhWVjJGTFVyVURUZHFyTDFIbTZ1Y2E1TkoySFl5d20rdG5q?=
 =?utf-8?B?eHZram1JVTc4UjQ4d1ErbGFEVDF5dHllbkg1cmk1ZjA3TGpkbkZiUzQ4Vm8r?=
 =?utf-8?B?UUZENUJldHZ6M1NETHdnZjQ4amNENmNjWlM5VVBwRHdvNTBJV3o0bVNCSlpE?=
 =?utf-8?B?OVZIUXhaTTRsQmdIRXg3OTNaaUphc1BUVmZxajNSMDN3MHNZRGZ6MlIwTWZN?=
 =?utf-8?B?UzFuNnVNZjRYeFNhTERHWFBIcHVHcjhRbE9MNW8yeWN5RmtzSTJaZHNMRzhK?=
 =?utf-8?B?alU3OTdSLzduK2k1Kzc4cm1xeFVIdFlySzlOM3pBYXBwaEZuUGZBc1o4NWZo?=
 =?utf-8?B?Z1VLMVlOeldudmhVaEl1U0FocW5oSWk4eDRuT3AzbVNvUEVITGNqdWowSFdJ?=
 =?utf-8?B?R25SbEYwTE55eHZmZjVwbmZSQ3Raa0RhMGVNN0NOd085UU03VkZrNS9sdGpO?=
 =?utf-8?B?bUVWRXltVlZNdE1PbEhCRFgrSnVDVmpGM3NsVC9hZEpGMEhTeTN1akY5K09o?=
 =?utf-8?B?TVoyYks1MXlkYVdiVFloMDdPUjlDaS92RnozTldRRVlQZXVQUGRlRjFqK1Ez?=
 =?utf-8?B?RUxmMXlEeDA3Z0dJSXB4OCtIbnBqNS8vNDM3WVZ4WTVaOWpiamJySmc1KzVG?=
 =?utf-8?B?OUFBZDF4RjBJNVhETElWR0RPVG5oc1IwOGh6bzREK0FwOVc2S2xJREpPRHI0?=
 =?utf-8?B?SnY3YkhpRzlza09mLzArS2N1K29RWXdGbVoxSjd3SytOY2lCMGt3TXR4QzFo?=
 =?utf-8?B?cU1zRyt0RE9zaE1tbURkSnZJNWdneERpRGhLY2VYWE5YNGJWMFdCTTB0OEd5?=
 =?utf-8?B?RTBiZ05iNlhaY0ZGanBqR2M1MnpjdzhNbnczQVF3L2plaiswbWQ2L1FMWmta?=
 =?utf-8?B?L1VlQjIzeEdCcjJpbTR0bU1iZkQrWnB4LzM3WTdIRG1tNmx0SldsdWJVUU5G?=
 =?utf-8?B?QlZ4YjZaUm1JdW9NWnd4WEJua1VPVmh4bStKYktsa0dsLzlGeUxXdzZBdUlB?=
 =?utf-8?B?OEthTnVXOVBudG8wekdNWmR4eDVUQTE5R2tuN3hJMjdUMXFsdW1kQXppekRs?=
 =?utf-8?B?SDhXYUVIR2M1b01NZmlqaHc1SWtlb3JvTFhYZ0RuK1hOK2RYcmRraG5wMlA2?=
 =?utf-8?B?QWxvOWJtU0FuU2c2TllOVjVCYWhKTURDSkpsdCtNZTllelVrQjhKT01PK0hP?=
 =?utf-8?B?cVcxb3VmWFRsem1IWjJzUDBMZEZRUG9VVGFOenNXdDhLNmxWaXBBR2djQWVI?=
 =?utf-8?B?UmZWWkRYNzhZZmVKd0xPbzRLdHY3M1UxSHBJRlozSW54WmJ4MGxSQlB5dUM3?=
 =?utf-8?B?Rkk3T3ZvUlovb3NTbnI2SEpHSzlkY3pIclFPbVNrQVh5QlQ2RXNvbUN6ZVlC?=
 =?utf-8?B?c0JJQ0MwQ2RGbzM0SVUvUEJSSXA0QTlBS0E1UUM3TzhORkxFK0FzWVhaS2xs?=
 =?utf-8?B?QktDdmswVnNtMHJqaVNSUloxeXN2bXd3MEdQWld3aldHRzJpWDd2d3FoNjYr?=
 =?utf-8?B?TVpqa3NUMnZ6MXBCZXpjTDFmWkZhMEZUUEpTZHBmaFN2SkNBTFdWdTF1Z0pk?=
 =?utf-8?B?L0o2SWVyVnY5QVpPeElscXBQL3dxS3dUNFBMN3RudUlRM2hJbHdYNW5Ea01z?=
 =?utf-8?B?ZmFFcFR4NUpNYUVGT3FZMWZzcGNnaU42RXlmOW8zc1IzM1pWMlp5bzBTazdl?=
 =?utf-8?B?UDVac1hyN3I1R3A4djYyb0hKdXQ4KzRxUW5tY1dxR0llNnljbU9FWWhvMVFR?=
 =?utf-8?B?MmI2bXB1WVhoQ0Ria3pWTldMS2dTa0VLZ0p2ZUptajdVWUt4Wm93V3oxK1R4?=
 =?utf-8?B?TkEvdXZYVXd1ZW5jbmZXUnNvYXZ5ck5lQ1ZyOFNHMUtqdFc4emNPekZFb1hk?=
 =?utf-8?Q?drHKTY4TzKs=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN9PR12MB5273.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(7416014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?Mm41MFZYaE1Oby84amxuampyaDluWXlBSXAvTG1XU0NNOHFLS1BYSXJKbHNz?=
 =?utf-8?B?bk0vcVpyN3l4QXNpazVHK0hEVmhGRk9OMVBsSGxHMXhlb2VySTcvR1Y4QXpt?=
 =?utf-8?B?aDZPajVCNkVFc3dFbG5XUkZQakVHaTNwMkRtTXJQYjdBeU1heEVIRWdXY3o5?=
 =?utf-8?B?WUt0eG5WY2FzSVRnazNEMU91cHpZL3NtTVcrYnBBZEw3ZE90MmFTTTJWMTZU?=
 =?utf-8?B?NkVzM3AzYVR5VlllMW43L1A2N1VCUEVRTmhZdzdlNy8ybys2OFhsNW1ueHFR?=
 =?utf-8?B?Zmg1Q09ZRnRKUDVCbHN2YVppS0s1eVZBRDMvSEhzNjNvTG0wcGFZTHNQSnVs?=
 =?utf-8?B?MHRvOGgyVmM1eE4va3ZHdUloeVZnd1ZkNEdmTDV6dnJjL3c0Sk9mN1BTUkhM?=
 =?utf-8?B?OFlxWEhGVXVlR0M4N2RTTU4yWS9GUFRKWldRRUpmVnVXQmpPNUhlY0owcE9u?=
 =?utf-8?B?L2Z2Ty9BTU1WNWRWVFZLbXFWaWNEQlR5V1VwQ1pUVnl0WmU0MGQ1UVNuZ1ls?=
 =?utf-8?B?c1lUQ1VEcEo4eHN3a1F0RjJhbmx4cGtPOTBGSkQ5cXZXUUU4QlcwbFB1WlhZ?=
 =?utf-8?B?aHZIN2xWUUNLdi9PbG93dGM2aWlDaVhSeHJhcWNRSStkWmpjQXp1eE1LdDZ2?=
 =?utf-8?B?Z0ZqMlBOaUd2S1gyN1NiaWlhQVdKbXBHb0FDQUR0ZFJaNnFkSWdFWGxmRVNN?=
 =?utf-8?B?U2psTDMvREdoQS80YlQ0SnZMWU9hNURZeVpJYWpvUGYxZTJ0ODVhYnhHM0w0?=
 =?utf-8?B?TDM5M1MxOElGY1Y3OWNpQjdsc3pOMXRucmRsU1dYdURhSEs2Nkk1YkMwTlBm?=
 =?utf-8?B?eEFtVDdOcm12RzVybGdhdDMzTmtadjRSSjhvTmdKQytUWFRtc3VQbmdPNUNW?=
 =?utf-8?B?Q3kxRHpuSmlTT2hJbUZ1Rjh6eWVYSHRIZzVnR2JBNG1XdG1tTEVPK0FnUjVJ?=
 =?utf-8?B?dHpNak9rOWNFTUNpOWcreHFXdm9zWjVtdkhXNlQ5T2NMaUgxN3RpUmsrN1ZR?=
 =?utf-8?B?bVp3QWtMeHVmRkRtMWdhclBwNmhVRExaekZoeG51UW1uVlVFWkJPZEFtYjVI?=
 =?utf-8?B?cGxMOGhlbEc1U0J3Q0ZPQzRhRGlXYWFGQ1NQVHlUaUkxcXgzakxPdjJXZGZX?=
 =?utf-8?B?QWRzQWR1SFRQUi9NL0d1bS9tdnUwZ3VreSswVXgxSlhjT3hpQmdPRDI3R1Qx?=
 =?utf-8?B?R2JhRnZrUG5JcUU5OEdjeG1tUWxqRWlEVW91MWhxUWRRNFdTU3dnTHJKeHds?=
 =?utf-8?B?SnprRm4wOXlENkQyRkVlWkt4VHJieU1rRlhYMzRLU1NkK09RYnpWbFhRZ2xU?=
 =?utf-8?B?QUNYVkM4MmQ0cHlUYnd4cU1QcGRGbStmMllKd2JVVkh4Nmt4ZmNjVUszakpm?=
 =?utf-8?B?aFdxVmIyYSt5WFVJT0x0WDlaNFo2eS9FMDkyMVVDbmQ1cmZKOU9XUXRzOUo1?=
 =?utf-8?B?amZTazdYellVRzRQL1lWMTJzZWtIVnVMME1Ka2dBSEtJVHBOUzJJOGt1Q2V5?=
 =?utf-8?B?eVh5VDdkN1laWk1md1MvQmpyRDBDWmJJaXRIWUQ1TlQwc3pFZ1FaYmJ3RFhk?=
 =?utf-8?B?dFNkQnYrTFBRdGJMbU00L3JUaE5lMEQ2bDEvNjJyZmhZcXdIbVhIeGpOSi8r?=
 =?utf-8?B?NzVrVnFpOWNuWW1nbDVod09HaXAveG9wRXRjYVlvWXlRZmhTMmYwUTQwSm9J?=
 =?utf-8?B?VUszVnc0SmNsRkZucEFZVUZwQ2lwQ29GbTdmVEt3NVI0V0c3cCtpZlB1d1p2?=
 =?utf-8?B?ek40ZzloTzAvQWlxcW1pVysvWjdOcDlrTkpGMTBtTjZPMGhmWWw4MnQwd01L?=
 =?utf-8?B?RXA1WStnS0hUYzk2V0diMml6MUVQU2pqR1RNUG44UitibHlmWWlMdlhpZDlF?=
 =?utf-8?B?Q2xLRFNtTUxtVVh4V2J5YmkybDQveDExUjR0U0VUcEg4b0JmRXZRS0E5Q0FI?=
 =?utf-8?B?ZS9VcDFqbDhxZE1pZEFaaElveHAraHhXbVQ3ckN5VG9kMXBrNklZV3o3ZExL?=
 =?utf-8?B?blk1UmxoU0ZsMUtCV1crdkhBRXNHNmJHbCtLR3AxRnNvTDloTFJWWFlrSytu?=
 =?utf-8?B?SVFjdnpZVDBiZkttUVN1VEk3Q3AxcTBiWHBLcFB1SG5YYlRwY3BlOXBTemZp?=
 =?utf-8?Q?OQzM5Eo0ezW6dv2Hi5PWuNaTR?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 1138e257-c25d-4ad4-7638-08dd7d870de5
X-MS-Exchange-CrossTenant-AuthSource: BN9PR12MB5273.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Apr 2025 08:08:36.5500
 (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: zpvISxjEnU6k2NzqjX1WFzepOr2kwtWOkVs7xiaRI6lw6c7QBYK3a7TaaF153KZA
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN0PR12MB5930

I'm ok with making dom0less common in principle but I don't know if we should
keep using the word dom0less which we all know is confusing. In one of the
maintainers call we agreed on using "predefined domUs" to denote the concept of
starting domUs at boot in a static way. This was so that we could have a common
name for parts that are common between dom0less and hyperlaunch, while leaving
dom0less/hyperlaunch to denote arch specific bits. We need more opinions here.

On 14/04/2025 17:56, Oleksii Kurochko wrote:
> Move some parts of Arm's Dom0Less code to be reused by other architectures.
> At the moment, RISC-V is going to reuse these parts.
> 
> Move dom0less-build.h from the Arm-specific directory to asm-generic
> as these header is expected to be the same across acrhictectures with
> some updates: add the following declaration of construct_domU(),
> arch_xen_domctl_createdomain() and arch_create_domus() as there are
> some parts which are still architecture-specific.
Why do we need arch_xen_domctl_createdomain() and arch_create_domus()?
FWICS the latter already takes d_cfg as parameter. I think we could get away
with just a single arch specific function called during domU creation to e.g.
cover arch specific DT bindings.

Also, if there are already functions with _domU, use it instead of _domu (i.e.
lowercase) for consistency.

> 
> Introduce HAS_DOM0LESS to provide ability to enable generic Dom0less
> code for an architecture.
> 
> Relocate the CONFIG_DOM0LESS configuration to the common with adding
> "depends on HAS_DOM0LESS" to not break builds for architectures which
> don't support CONFIG_DOM0LESS config, especically it would be useful
> to not provide stubs for  construct_domU(), arch_xen_domctl_createdomain()
> and arch_create_domus() in case of *-randconfig which may set
> CONFIG_DOM0LESS=y.
> 
> Move is_dom0less_mode() function to the common code, as it depends on
> boot modules that are already part of the common code.
> 
> Move create_domUs() function to the common code with some updates:
> - Add function arch_xen_domctl_createdomain() as structure
>   xen_domctl_createdomain may have some arch-spicific information and
>   initialization.
> - Add arch_create_domus() to cover parsing of arch-specific features,
>   for example, SVE (Scalar Vector Extension ) exists only in Arm.
> 
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> ---
> Changes in v2:
>  - Convert 'depends on Arm' to 'depends on HAS_DOM0LESS' for
>    CONFIG_DOM0LESS_BOOT.
>  - Change 'default Arm' to 'default y' for CONFIG_DOM0LESS_BOOT as there is
>    dependency on HAS_DOM0LESS.
>  - Introduce HAS_DOM0LESS and enable it for Arm.
>  - Update the commit message.
> ---
>  xen/arch/arm/Kconfig                      |   9 +-
>  xen/arch/arm/dom0less-build.c             | 270 ++++++----------------
>  xen/arch/arm/include/asm/Makefile         |   1 +
>  xen/arch/arm/include/asm/dom0less-build.h |  32 ---
>  xen/common/Kconfig                        |  12 +
>  xen/common/device-tree/Makefile           |   1 +
>  xen/common/device-tree/dom0less-build.c   | 161 +++++++++++++
>  xen/include/asm-generic/dom0less-build.h  |  40 ++++
>  8 files changed, 287 insertions(+), 239 deletions(-)
>  delete mode 100644 xen/arch/arm/include/asm/dom0less-build.h
>  create mode 100644 xen/common/device-tree/dom0less-build.c
>  create mode 100644 xen/include/asm-generic/dom0less-build.h
> 
> diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
> index 565f288331..060389c3c8 100644
> --- a/xen/arch/arm/Kconfig
> +++ b/xen/arch/arm/Kconfig
> @@ -15,6 +15,7 @@ config ARM
>  	select GENERIC_UART_INIT
>  	select HAS_ALTERNATIVE if HAS_VMAP
>  	select HAS_DEVICE_TREE
> +	select HAS_DOM0LESS
>  	select HAS_UBSAN
>  
>  config ARCH_DEFCONFIG
> @@ -119,14 +120,6 @@ config GICV2
>  	  Driver for the ARM Generic Interrupt Controller v2.
>  	  If unsure, say Y
>  
> -config DOM0LESS_BOOT
> -	bool "Dom0less boot support" if EXPERT
> -	default y
> -	help
> -	  Dom0less boot support enables Xen to create and start domU guests during
> -	  Xen boot without the need of a control domain (Dom0), which could be
> -	  present anyway.
> -
>  config GICV3
>  	bool "GICv3 driver"
>  	depends on !NEW_VGIC
> diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
> index bd15563750..7ec3f85795 100644
> --- a/xen/arch/arm/dom0less-build.c
> +++ b/xen/arch/arm/dom0less-build.c
> @@ -20,38 +20,6 @@
>  #include <asm/static-memory.h>
>  #include <asm/static-shmem.h>
>  
> -bool __init is_dom0less_mode(void)
> -{
> -    struct bootmodules *mods = &bootinfo.modules;
> -    struct bootmodule *mod;
> -    unsigned int i;
> -    bool dom0found = false;
> -    bool domUfound = false;
> -
> -    /* Look into the bootmodules */
> -    for ( i = 0 ; i < mods->nr_mods ; i++ )
> -    {
> -        mod = &mods->module[i];
> -        /* Find if dom0 and domU kernels are present */
> -        if ( mod->kind == BOOTMOD_KERNEL )
> -        {
> -            if ( mod->domU == false )
> -            {
> -                dom0found = true;
> -                break;
> -            }
> -            else
> -                domUfound = true;
> -        }
> -    }
> -
> -    /*
> -     * If there is no dom0 kernel but at least one domU, then we are in
> -     * dom0less mode
> -     */
> -    return ( !dom0found && domUfound );
> -}
> -
>  #ifdef CONFIG_VGICV2
>  static int __init make_gicv2_domU_node(struct kernel_info *kinfo)
>  {
> @@ -869,8 +837,8 @@ static inline int domain_p2m_set_allocation(struct domain *d, uint64_t mem,
>  }
>  #endif /* CONFIG_ARCH_PAGING_MEMPOOL */
>  
> -static int __init construct_domU(struct domain *d,
> -                                 const struct dt_device_node *node)
> +int __init construct_domU(struct domain *d,
> +                          const struct dt_device_node *node)
>  {
>      struct kernel_info kinfo = KERNEL_INFO_INIT;
>      const char *dom0less_enhanced;
> @@ -965,188 +933,92 @@ static int __init construct_domU(struct domain *d,
>      return alloc_xenstore_params(&kinfo);
>  }
>  
> -void __init create_domUs(void)
> -{
> -    struct dt_device_node *node;
> -    const char *dom0less_iommu;
> -    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)
> -    {
> -        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,
> -            /*
> -             * The default of 1023 should be sufficient for guests because
> -             * on ARM we don't bind physical interrupts to event channels.
> -             * The only use of the evtchn port is inter-domain communications.
> -             * 1023 is also the default value used in libxl.
> -             */
> -            .max_evtchn_port = 1023,
> -            .max_grant_frames = -1,
> -            .max_maptrack_frames = -1,
> -            .grant_opts = XEN_DOMCTL_GRANT_version(opt_gnttab_max_version),
> -        };
> -        unsigned int flags = 0U;
> -        uint32_t val;
> -        int rc;
> -
> -        if ( !dt_device_is_compatible(node, "xen,domain") )
> -            continue;
> -
> -        if ( (max_init_domid + 1) >= DOMID_FIRST_RESERVED )
> -            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") )
> -        {
> -            if ( !(flags & CDF_staticmem) )
> -                panic("direct-map is not valid for domain %s without static allocation.\n",
> -                      dt_node_name(node));
> -
> -            flags |= CDF_directmap;
> -        }
>  
> -        if ( !dt_property_read_u32(node, "cpus", &d_cfg.max_vcpus) )
> -            panic("Missing property 'cpus' for domain %s\n",
> -                  dt_node_name(node));
> -
> -        if ( !dt_property_read_string(node, "passthrough", &dom0less_iommu) &&
> -             !strcmp(dom0less_iommu, "enabled") )
> -            iommu = true;
> +struct xen_domctl_createdomain __init arch_xen_domctl_createdomain(void)
Out of curiosity. Why by value?

> +{
> +    struct xen_domctl_createdomain d_cfg = {
> +        .arch.gic_version = XEN_DOMCTL_CONFIG_GIC_NATIVE,
> +        .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.
> +            * The only use of the evtchn port is inter-domain communications.
> +            * 1023 is also the default value used in libxl.
> +            */
> +        .max_evtchn_port = 1023,
> +        .max_grant_frames = -1,
> +        .max_maptrack_frames = -1,
> +        .grant_opts = XEN_DOMCTL_GRANT_version(opt_gnttab_max_version),
> +    };
> +
> +    return d_cfg;
> +}
>  
> -        if ( iommu_enabled &&
> -             (iommu || dt_find_compatible_node(node, NULL,
> -                                               "multiboot,device-tree")) )
> -            d_cfg.flags |= XEN_DOMCTL_CDF_iommu;
> +void __init arch_create_domus(struct dt_device_node *node,
> +                       struct xen_domctl_createdomain *d_cfg,
> +                       unsigned int flags)
> +{
> +    uint32_t val;
>  
> -        if ( !dt_property_read_u32(node, "nr_spis", &d_cfg.arch.nr_spis) )
> -        {
> -            int vpl011_virq = GUEST_VPL011_SPI;
> -
> -            d_cfg.arch.nr_spis = VGIC_DEF_NR_SPIS;
> -
> -            /*
> -             * The VPL011 virq is GUEST_VPL011_SPI, unless direct-map is
> -             * set, in which case it'll match the hardware.
> -             *
> -             * Since the domain is not yet created, we can't use
> -             * d->arch.vpl011.irq. So the logic to find the vIRQ has to
> -             * be hardcoded.
> -             * The logic here shall be consistent with the one in
> -             * domain_vpl011_init().
> -             */
> -            if ( flags & CDF_directmap )
> -            {
> -                vpl011_virq = serial_irq(SERHND_DTUART);
> -                if ( vpl011_virq < 0 )
> -                    panic("Error getting IRQ number for this serial port %d\n",
> -                          SERHND_DTUART);
> -            }
> +    if ( !dt_property_read_u32(node, "nr_spis", &d_cfg->arch.nr_spis) )
> +    {
> +        int vpl011_virq = GUEST_VPL011_SPI;
>  
> -            /*
> -             * vpl011 uses one emulated SPI. If vpl011 is requested, make
> -             * sure that we allocate enough SPIs for it.
> -             */
> -            if ( dt_property_read_bool(node, "vpl011") )
> -                d_cfg.arch.nr_spis = MAX(d_cfg.arch.nr_spis,
> -                                         vpl011_virq - 32 + 1);
> -        }
> +        d_cfg->arch.nr_spis = VGIC_DEF_NR_SPIS;
>  
> -        /* Get the optional property domain-cpupool */
> -        cpupool_node = dt_parse_phandle(node, "domain-cpupool", 0);
> -        if ( cpupool_node )
> +        /*
> +         * The VPL011 virq is GUEST_VPL011_SPI, unless direct-map is
> +         * set, in which case it'll match the hardware.
> +         *
> +         * Since the domain is not yet created, we can't use
> +         * d->arch.vpl011.irq. So the logic to find the vIRQ has to
> +         * be hardcoded.
> +         * The logic here shall be consistent with the one in
> +         * domain_vpl011_init().
> +         */
> +        if ( flags & CDF_directmap )
>          {
> -            int pool_id = btcpupools_get_domain_pool_id(cpupool_node);
> -            if ( pool_id < 0 )
> -                panic("Error getting cpupool id from domain-cpupool (%d)\n",
> -                      pool_id);
> -            d_cfg.cpupool_id = pool_id;
> +            vpl011_virq = serial_irq(SERHND_DTUART);
> +            if ( vpl011_virq < 0 )
> +                panic("Error getting IRQ number for this serial port %d\n",
> +                        SERHND_DTUART);
>          }
>  
> -        if ( dt_property_read_u32(node, "max_grant_version", &val) )
> -            d_cfg.grant_opts = XEN_DOMCTL_GRANT_version(val);
> +        /*
> +         * vpl011 uses one emulated SPI. If vpl011 is requested, make
> +         * sure that we allocate enough SPIs for it.
> +         */
> +        if ( dt_property_read_bool(node, "vpl011") )
> +            d_cfg->arch.nr_spis = MAX(d_cfg->arch.nr_spis,
> +                                      vpl011_virq - 32 + 1);
> +    }
>  
> -        if ( dt_property_read_u32(node, "max_grant_frames", &val) )
> -        {
> -            if ( val > INT32_MAX )
> -                panic("max_grant_frames (%"PRIu32") overflow\n", val);
> -            d_cfg.max_grant_frames = val;
> -        }
> +    if ( dt_get_property(node, "sve", &val) )
> +    {
> +#ifdef CONFIG_ARM64_SVE
> +        unsigned int sve_vl_bits;
> +        bool ret = false;
>  
> -        if ( dt_property_read_u32(node, "max_maptrack_frames", &val) )
> +        if ( !val )
>          {
> -            if ( val > INT32_MAX )
> -                panic("max_maptrack_frames (%"PRIu32") overflow\n", val);
> -            d_cfg.max_maptrack_frames = val;
> +            /* Property found with no value, means max HW VL supported */
> +            ret = sve_domctl_vl_param(-1, &sve_vl_bits);
>          }
> -
> -        if ( dt_get_property(node, "sve", &val) )
> +        else
>          {
> -#ifdef CONFIG_ARM64_SVE
> -            unsigned int sve_vl_bits;
> -            bool ret = false;
> -
> -            if ( !val )
> -            {
> -                /* Property found with no value, means max HW VL supported */
> -                ret = sve_domctl_vl_param(-1, &sve_vl_bits);
> -            }
> +            if ( dt_property_read_u32(node, "sve", &val) )
> +                ret = sve_domctl_vl_param(val, &sve_vl_bits);
>              else
> -            {
> -                if ( dt_property_read_u32(node, "sve", &val) )
> -                    ret = sve_domctl_vl_param(val, &sve_vl_bits);
> -                else
> -                    panic("Error reading 'sve' property\n");
> -            }
> +                panic("Error reading 'sve' property\n");
> +        }
>  
> -            if ( ret )
> -                d_cfg.arch.sve_vl = sve_encode_vl(sve_vl_bits);
> -            else
> -                panic("SVE vector length error\n");
> +        if ( ret )
> +            d_cfg->arch.sve_vl = sve_encode_vl(sve_vl_bits);
> +        else
> +            panic("SVE vector length error\n");
>  #else
> -            panic("'sve' property found, but CONFIG_ARM64_SVE not selected\n");
> +        panic("'sve' property found, but CONFIG_ARM64_SVE not selected\n");
>  #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
> -         * domain_create() with a domid > 0. (domid == 0 is reserved for Dom0)
> -         */
> -        d = domain_create(++max_init_domid, &d_cfg, flags);
> -        if ( IS_ERR(d) )
> -            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);
> -
> -        rc = construct_domU(d, node);
> -        if ( rc )
> -            panic("Could not set up domain %s (rc = %d)\n",
> -                  dt_node_name(node), rc);
>      }
>  }
>  
> diff --git a/xen/arch/arm/include/asm/Makefile b/xen/arch/arm/include/asm/Makefile
> index 4a4036c951..831c914cce 100644
> --- a/xen/arch/arm/include/asm/Makefile
> +++ b/xen/arch/arm/include/asm/Makefile
> @@ -1,6 +1,7 @@
>  # SPDX-License-Identifier: GPL-2.0-only
>  generic-y += altp2m.h
>  generic-y += device.h
> +generic-y += dom0less-build.h
>  generic-y += hardirq.h
>  generic-y += iocap.h
>  generic-y += paging.h
> diff --git a/xen/arch/arm/include/asm/dom0less-build.h b/xen/arch/arm/include/asm/dom0less-build.h
> deleted file mode 100644
> index 5864944bda..0000000000
> --- a/xen/arch/arm/include/asm/dom0less-build.h
> +++ /dev/null
> @@ -1,32 +0,0 @@
> -/* SPDX-License-Identifier: GPL-2.0-only */
> -
> -#ifndef __ASM_DOM0LESS_BUILD_H_
> -#define __ASM_DOM0LESS_BUILD_H_
> -
> -#include <xen/stdbool.h>
> -
> -#ifdef CONFIG_DOM0LESS_BOOT
> -
> -void create_domUs(void);
> -bool is_dom0less_mode(void);
> -
> -#else /* !CONFIG_DOM0LESS_BOOT */
> -
> -static inline void create_domUs(void) {}
> -static inline bool is_dom0less_mode(void)
> -{
> -    return false;
> -}
> -
> -#endif /* CONFIG_DOM0LESS_BOOT */
> -
> -#endif /* __ASM_DOM0LESS_BUILD_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 06ae9751aa..2fd79aea5b 100644
> --- a/xen/common/Kconfig
> +++ b/xen/common/Kconfig
> @@ -12,6 +12,15 @@ config CORE_PARKING
>  	bool
>  	depends on NR_CPUS > 1
>  
> +config DOM0LESS_BOOT
> +	bool "Dom0less boot support" if EXPERT
> +	depends on HAS_DOM0LESS
You put dom0less code under device-tree, yet I don't see any of these Kconfig
options being dependent on HAS_DEVICE_TREE. I think this is wrong.

> +	default y
> +	help
> +	  Dom0less boot support enables Xen to create and start domU guests during
> +	  Xen boot without the need of a control domain (Dom0), which could be
> +	  present anyway.
> +
>  config GRANT_TABLE
>  	bool "Grant table support" if EXPERT
>  	default y
> @@ -73,6 +82,9 @@ config HAS_COMPAT
>  config HAS_DEVICE_TREE
>  	bool
>  
> +config HAS_DOM0LESS
> +	bool
> +
>  config HAS_DIT # Data Independent Timing
>  	bool
>  
> diff --git a/xen/common/device-tree/Makefile b/xen/common/device-tree/Makefile
> index 7c549be38a..f3dafc9b81 100644
> --- a/xen/common/device-tree/Makefile
> +++ b/xen/common/device-tree/Makefile
> @@ -1,5 +1,6 @@
>  obj-y += bootfdt.init.o
>  obj-y += bootinfo.init.o
>  obj-y += device-tree.o
> +obj-$(CONFIG_DOM0LESS_BOOT) += dom0less-build.o
>  obj-$(CONFIG_OVERLAY_DTB) += dt-overlay.o
>  obj-y += intc.o
> diff --git a/xen/common/device-tree/dom0less-build.c b/xen/common/device-tree/dom0less-build.c
> new file mode 100644
> index 0000000000..19bfa5e005
> --- /dev/null
> +++ b/xen/common/device-tree/dom0less-build.c
> @@ -0,0 +1,161 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
empty line here please

> +#include <xen/bootfdt.h>
> +#include <xen/device_tree.h>
> +#include <xen/domain.h>
> +#include <xen/err.h>
> +#include <xen/init.h>
> +#include <xen/iommu.h>
> +#include <xen/llc-coloring.h>
> +#include <xen/sched.h>
> +#include <xen/stdbool.h>
> +#include <xen/types.h>
> +
> +#include <public/domctl.h>
> +
> +#include <asm/dom0less-build.h>
> +#include <asm/setup.h>
> +
> +bool __init is_dom0less_mode(void)
> +{
> +    struct bootmodules *mods = &bootinfo.modules;
> +    struct bootmodule *mod;
> +    unsigned int i;
> +    bool dom0found = false;
> +    bool domUfound = false;
> +
> +    /* Look into the bootmodules */
> +    for ( i = 0 ; i < mods->nr_mods ; i++ )
> +    {
> +        mod = &mods->module[i];
> +        /* Find if dom0 and domU kernels are present */
> +        if ( mod->kind == BOOTMOD_KERNEL )
> +        {
> +            if ( mod->domU == false )
> +            {
> +                dom0found = true;
> +                break;
> +            }
> +            else
> +                domUfound = true;
> +        }
> +    }
> +
> +    /*
> +     * If there is no dom0 kernel but at least one domU, then we are in
> +     * dom0less mode
> +     */
> +    return ( !dom0found && domUfound );
> +}
> +
> +void __init create_domUs(void)
> +{
> +    struct dt_device_node *node;
> +    const char *dom0less_iommu;
> +    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)
> +    {
> +        struct domain *d;
> +        struct xen_domctl_createdomain d_cfg = arch_xen_domctl_createdomain();
> +        unsigned int flags = 0U;
> +        uint32_t val;
> +        int rc;
> +
> +        if ( !dt_device_is_compatible(node, "xen,domain") )
> +            continue;
> +
> +        if ( (max_init_domid + 1) >= DOMID_FIRST_RESERVED )
> +            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") )
> +        {
> +            if ( !(flags & CDF_staticmem) )
> +                panic("direct-map is not valid for domain %s without static allocation.\n",
> +                      dt_node_name(node));
> +
> +            flags |= CDF_directmap;
> +        }
> +
> +        if ( !dt_property_read_u32(node, "cpus", &d_cfg.max_vcpus) )
> +            panic("Missing property 'cpus' for domain %s\n",
> +                  dt_node_name(node));
> +
> +        if ( !dt_property_read_string(node, "passthrough", &dom0less_iommu) &&
> +             !strcmp(dom0less_iommu, "enabled") )
> +            iommu = true;
> +
> +        if ( iommu_enabled &&
> +             (iommu || dt_find_compatible_node(node, NULL,
> +                                               "multiboot,device-tree")) )
> +            d_cfg.flags |= XEN_DOMCTL_CDF_iommu;
> +
> +        /* Get the optional property domain-cpupool */
> +        cpupool_node = dt_parse_phandle(node, "domain-cpupool", 0);
> +        if ( cpupool_node )
> +        {
> +            int pool_id = btcpupools_get_domain_pool_id(cpupool_node);
> +            if ( pool_id < 0 )
> +                panic("Error getting cpupool id from domain-cpupool (%d)\n",
> +                      pool_id);
> +            d_cfg.cpupool_id = pool_id;
> +        }
> +
> +        if ( dt_property_read_u32(node, "max_grant_version", &val) )
> +            d_cfg.grant_opts = XEN_DOMCTL_GRANT_version(val);
> +
> +        if ( dt_property_read_u32(node, "max_grant_frames", &val) )
> +        {
> +            if ( val > INT32_MAX )
> +                panic("max_grant_frames (%"PRIu32") overflow\n", val);
> +            d_cfg.max_grant_frames = val;
> +        }
> +
> +        if ( dt_property_read_u32(node, "max_maptrack_frames", &val) )
> +        {
> +            if ( val > INT32_MAX )
> +                panic("max_maptrack_frames (%"PRIu32") overflow\n", val);
> +            d_cfg.max_maptrack_frames = val;
> +        }
> +
> +        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");
> +
> +        arch_create_domus(node, &d_cfg, flags);
> +
> +        /*
> +         * The variable max_init_domid is initialized with zero, so here it's
> +         * very important to use the pre-increment operator to call
> +         * domain_create() with a domid > 0. (domid == 0 is reserved for Dom0)
> +         */
> +        d = domain_create(++max_init_domid, &d_cfg, flags);
> +        if ( IS_ERR(d) )
> +            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);
> +
> +        rc = construct_domU(d, node);
> +        if ( rc )
> +            panic("Could not set up domain %s (rc = %d)\n",
> +                  dt_node_name(node), rc);
> +    }
> +}
> diff --git a/xen/include/asm-generic/dom0less-build.h b/xen/include/asm-generic/dom0less-build.h
> new file mode 100644
> index 0000000000..a6985bc20a
> --- /dev/null
> +++ b/xen/include/asm-generic/dom0less-build.h
> @@ -0,0 +1,40 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
empty line here please

> +#ifndef __ASM_GENERIC_DOM0LESS_BUILD_H__
> +#define __ASM_GENERIC_DOM0LESS_BUILD_H__
> +
> +#include <xen/stdbool.h>
> +
> +#ifdef CONFIG_DOM0LESS_BOOT
> +
> +#include <public/domctl.h>
> +
> +void create_domUs(void);
> +bool is_dom0less_mode(void);
> +
> +int construct_domU(struct domain *d, const struct dt_device_node *node);
I don't see necessary headers included for these structs
> +
> +struct xen_domctl_createdomain arch_xen_domctl_createdomain(void);
> +void arch_create_domus(struct dt_device_node *node,
> +                       struct xen_domctl_createdomain *d_cfg,
> +                       unsigned int flags);
> +
> +#else /* !CONFIG_DOM0LESS_BOOT */
> +
> +static inline void create_domUs(void) {}
> +static inline bool is_dom0less_mode(void)
> +{
> +    return false;
> +}
> +
> +#endif /* CONFIG_DOM0LESS_BOOT */
> +
> +#endif /* __ASM_GENERIC_DOM0LESS_BUILD_H__ */
> +
> +/*
> + * Local variables:
> + * mode: C
> + * c-file-style: "BSD"
> + * c-basic-offset: 4
> + * indent-tabs-mode: nil
> + * End:
> + */

~Michal



From xen-devel-bounces@lists.xenproject.org Thu Apr 17 08:11:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 08:11:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.957100.1350291 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5KLJ-0001gK-Go; Thu, 17 Apr 2025 08:11:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 957100.1350291; Thu, 17 Apr 2025 08: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 1u5KLJ-0001gD-D6; Thu, 17 Apr 2025 08:11:29 +0000
Received: by outflank-mailman (input) for mailman id 957100;
 Thu, 17 Apr 2025 08:11: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=nsoM=XD=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u5KLI-0001fv-4O
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 08:11:28 +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 8ee04ea9-1b63-11f0-9ffb-bf95429c2676;
 Thu, 17 Apr 2025 10:11:26 +0200 (CEST)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-39c13fa05ebso331008f8f.0
 for <xen-devel@lists.xenproject.org>; Thu, 17 Apr 2025 01:11:26 -0700 (PDT)
Received: from [10.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-73bd2198926sm11719428b3a.20.2025.04.17.01.11.20
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 17 Apr 2025 01:11: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: 8ee04ea9-1b63-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744877486; x=1745482286; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ag5MbaY2A4khSUryKdB90DoK5JPKhKov8MtQLPKhPcc=;
        b=Y76saS0yX5fQHWImwA4JhK9Bc3WtER6Nk2HQb8WeAtm9oWfwtNq5YNJRFl6LuwNvAA
         Ddkng9wZvqQQznADMCCjB1GOF9Eb5OYktAXpOtxiFnqDtYWlj2qCoYknx0avsz7ILulo
         HiCH91Lprvb9i5w4v/8xDF95pyzFfOsghWcHgeBTyfe/nM5vOFHkJpXGFI8QuRfIZUQ9
         ppv1pZ0fA87gAkcqpe+Y3inQeR+3l6hAOB7lLKs3YLWo2YM7qszGRaNDJdaIMMayAkOj
         92L0Nm1Iw32p+2a+mux4RW8FLRSQLxQiyjYb3PuGNu6vuhY+0tb07ZiwNnRpRHzp6+Db
         3+OQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744877486; x=1745482286;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ag5MbaY2A4khSUryKdB90DoK5JPKhKov8MtQLPKhPcc=;
        b=H0U8mrVqQo1HsiiKKn3UHR2FpjEeoYUhgYiWQW7YSdflYxqeVyp8zS19lOa351KtlA
         KzbxD+andAURna2HdICZv1npBSiXoMwrLQ41d0FnNPLhpd9kDMy5Pt5j5iymIBznav2K
         BuTU+8ssN8tVvwK7F6WtLx+2hKcmQrQmHsQEFH6aZxKSp+LAN4IHn6BjgBZnS2src6j/
         C3iXOFeidbq8oV72S1Y/QYpnA92d49sGSqGu3Q5P0kLv/uB/mWruprOoZJ5PPVnNX3Jr
         /yPZ5LiqOw7R3GaITwM97LmVJP7HNFIkEeRN8h1Cpe06KSx4Eps+uOPaunDQL86Nm5FH
         IpsQ==
X-Forwarded-Encrypted: i=1; AJvYcCVJVBW/7bRgbfZJp+Ncka3WFmARQlaFvkYyobqrKRWYCRqu4athOn/iJhruWQf/g+YWya03LpkshuA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzHEyQWiPHsQWvoI5fqaAOJNYNN3Ln0Kz8s2BT96soJzUOwM/5o
	26AmVMvgrGfTSG5baRS49R34fHsrxRJ2lt+qjct3pdB+KPnARer0vxXD5zXytg==
X-Gm-Gg: ASbGncsBd48ngWpRlcTrixNx15v3kGgMuWax9gGnktdGCiY/mTcDElc3YuLqhVz9/LQ
	3USegTLHPqeSLRVHk5GnoSqEQ/7IkMYKD0boRngQ84Mq4w6+Uc96vgutXjKToRq1X0H9aDqKwwH
	htDjcAhrni6+mq7QQUUma1SQZp0ZrDD0TdenQxj/wO8WwEWxaiHtjCmVlf3Uho4dZ+W4/Q/g4uT
	mkatBrZ10NzcG5Du/xVnOlpwpPdHI10Mytv2nS4ZWkNkGI/TerElwr3b7mYV4hucuy746iVq0O9
	cjkaqwDi/1PfKQ40pZ/lomY7N+xkDndxD3tN2gLTq55TjWE8Q9+oWo/K3IaM27cpGp7bReqGrgo
	jXR7JHKyDkE2Jjl2du27KJnNg6g==
X-Google-Smtp-Source: AGHT+IHkwWV6FV92pRq3+4+ztsU74wi/Q6Hb74nIowZ1SZh1DzFgPzxaLnjt/jNZxMQFHUM6zF3TnA==
X-Received: by 2002:a5d:598e:0:b0:39e:e557:7d9 with SMTP id ffacd0b85a97d-39ee5b12f6amr4485945f8f.5.1744877485637;
        Thu, 17 Apr 2025 01:11:25 -0700 (PDT)
Message-ID: <3d20ca0f-8b11-4348-8802-03ac5b96f7f2@suse.com>
Date: Thu, 17 Apr 2025 10:11:16 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/8] xen/common: dom0less: make some parts of Arm's
 CONFIG_DOM0LESS common
To: "Orzel, Michal" <michal.orzel@amd.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <cover.1744626032.git.oleksii.kurochko@gmail.com>
 <c31977cb20be408ac695ec44edaa6e058e6ec10f.1744626032.git.oleksii.kurochko@gmail.com>
 <6e0ec1f3-08e5-475f-8d66-f3814e047760@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: <6e0ec1f3-08e5-475f-8d66-f3814e047760@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 17.04.2025 10:08, Orzel, Michal wrote:
>> --- /dev/null
>> +++ b/xen/include/asm-generic/dom0less-build.h
>> @@ -0,0 +1,40 @@
>> +/* SPDX-License-Identifier: GPL-2.0-only */
> empty line here please
> 
>> +#ifndef __ASM_GENERIC_DOM0LESS_BUILD_H__
>> +#define __ASM_GENERIC_DOM0LESS_BUILD_H__
>> +
>> +#include <xen/stdbool.h>
>> +
>> +#ifdef CONFIG_DOM0LESS_BOOT
>> +
>> +#include <public/domctl.h>
>> +
>> +void create_domUs(void);
>> +bool is_dom0less_mode(void);
>> +
>> +int construct_domU(struct domain *d, const struct dt_device_node *node);
> I don't see necessary headers included for these structs

Just to mention it - it shouldn't be extra headers, but forward decls. We
aim at keeping header dependencies down where possible.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Apr 17 08:37:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 08:37:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.957113.1350301 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5Kk0-00060M-Ds; Thu, 17 Apr 2025 08:37:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 957113.1350301; Thu, 17 Apr 2025 08:37:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5Kk0-00060F-BB; Thu, 17 Apr 2025 08:37:00 +0000
Received: by outflank-mailman (input) for mailman id 957113;
 Thu, 17 Apr 2025 08:36: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=nsoM=XD=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u5Kjy-000609-MK
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 08:36:58 +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 1ef2ad2c-1b67-11f0-9eb0-5ba50f476ded;
 Thu, 17 Apr 2025 10:36:56 +0200 (CEST)
Received: by mail-wr1-x42f.google.com with SMTP id
 ffacd0b85a97d-3914aba1ce4so347314f8f.2
 for <xen-devel@lists.xenproject.org>; Thu, 17 Apr 2025 01:36:56 -0700 (PDT)
Received: from [10.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-22c33fe6aa0sm28031365ad.222.2025.04.17.01.36.51
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 17 Apr 2025 01:36: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: 1ef2ad2c-1b67-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744879016; x=1745483816; 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=gFI041BCT4BROa4Xxyse0/Kg08DQeTDLY4XZOqmdsEg=;
        b=c+ERWKSQg04FsSuelGwcFVuHfXeSWnnd/4G608MXbhPCcSMn6gmuJqftubN2nw9ar0
         WNi76t2XQFF8nO9QUMoOD/lpi52Dkbo3p5xj2Jo1vuWSY9HY+wFyx6BC0O2fUv3l05p9
         MB8cDtQpB4i0C2xXD4e1CVKlPs3ei+Ofsmue/2VZJwXK0DzTCKGOkNAkrvLm7nzqgFYJ
         YsiGMj8+Dsr1wKi+SmjVOcT6A746W1z4DpX1mt+5zrnT3ngI5F90F3iJfTwjTNJlhkPG
         bKpkPfRyukkpxOCQOLdy8ihPS/7HPrXCfLGLDL/bqA0iIPph1WdxCdIcbXiDHX36xt6X
         beQQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744879016; x=1745483816;
        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=gFI041BCT4BROa4Xxyse0/Kg08DQeTDLY4XZOqmdsEg=;
        b=ENmJs+KBRKphe8hVVQikf8PK8sRxljQY506bRbGqoYHz3JNay4bEhbBQusq7o5sbH8
         TYGZj9ZAIXAzu98vnQ46CxCfoTbrb2bQreHPekpvsadPl4FZeirg+e1oFQP5xgv8Futy
         xfUKWc7iAlw9B9KxggusGlq98O+YW49rjKxqhfWSGMWIHD7udaYNbm9qjjCned7Rm5is
         ZgzkXbgpbJt6Dr49vccjA63Ue00W6rijdCNHgW/O0kkDCroICutnAGM4Q86iJcLtxtRF
         RiAh3iAZmEFzV33oSfyd04RbIgJ14E68nfU5I4zE7UM1dEKbFX/ONT0PZj8ORhZsp/tA
         oq1g==
X-Gm-Message-State: AOJu0Yw924DiUE6V0IY7Y64bQpPqjSNCSB1lQsLCf0xo/oF+f4Dsum33
	b0rcqRmhs1LfBEmaGl5pLDXyEX1+peXvwRCmuWfveqqq7PC5h38CZU3PZjZVUNFu82WiH1eCvtA
	=
X-Gm-Gg: ASbGncsRUMQ0MTWzU4T1Pw6N0Wlwux8qTBe8YjqJ1mFfDnY+sb/XDphZtnaFcMH9Cz7
	AdhXolJf38Lb1v39Q1Sy92H3qiYJdH+HGVV7DSpIGV4MYda5v/EfuR0O5rgfxv40vP6XJQd3Tf7
	C/moG03dpNPIEIJAmRVfEZpRCcG/rYMIDH0O9zC0PFksMwc6RZx/7hQBQeTtOKQ+ZGK5TDXJ5+I
	NIRQkKPSgf2jTOwTN+iDN09AIJpc6BWykc/kBgueNNfT/1xpsvr+4neBwQYGOd4EWZNaZdL2YH+
	KRK+cIRvAF8sasV3g3v72ptBmydVTdot48AXktn3Q2RBN3gBA4BbDKRmEPTmaKtsYNjtxaPRS3D
	b5awgLJWDkqGe7F2mLOCoJNTXtQ==
X-Google-Smtp-Source: AGHT+IEKiERCngdua+T03UIiQ7YjO4wUDyXcQrXsUGesOhSXTuPE0f2kIeeFIlgdQQv1mhCBlJOw2Q==
X-Received: by 2002:a5d:6d8b:0:b0:391:ba6:c069 with SMTP id ffacd0b85a97d-39ee5b8a107mr4553702f8f.44.1744879015784;
        Thu, 17 Apr 2025 01:36:55 -0700 (PDT)
Message-ID: <b792df9c-9912-468b-87a8-bb5d81c14df6@suse.com>
Date: Thu, 17 Apr 2025 10:36:47 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Julien Grall <julien@xen.org>, Stefano Stabellini
 <sstabellini@kernel.org>, Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 "consulting@bugseng.com" <consulting@bugseng.com>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH] Arm: rename smp_clear_cpu_maps()
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+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 function has lost all clearing operations. Use the commonly
available name (declared in xen/smp.h), that x86 also uses.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
I would have expected this to also address a Misra violation
(declaration without definition), but I can't spot any rule (having
looked through 8.x in particular) to this effect.

--- a/xen/arch/arm/include/asm/smp.h
+++ b/xen/arch/arm/include/asm/smp.h
@@ -29,7 +29,6 @@ int cpu_up_send_sgi(int cpu);
 extern void init_secondary(void);
 
 extern void smp_init_cpus(void);
-extern void smp_clear_cpu_maps (void);
 extern unsigned int smp_get_max_cpus(void);
 
 #define cpu_physical_id(cpu) cpu_logical_map(cpu)
--- a/xen/arch/arm/setup.c
+++ b/xen/arch/arm/setup.c
@@ -317,7 +317,7 @@ void asmlinkage __init start_xen(unsigne
     /* Initialize traps early allow us to get backtrace when an error occurred */
     init_traps();
 
-    smp_clear_cpu_maps();
+    smp_prepare_boot_cpu();
 
     device_tree_flattened = early_fdt_map(fdt_paddr);
     if ( !device_tree_flattened )
--- a/xen/arch/arm/smpboot.c
+++ b/xen/arch/arm/smpboot.c
@@ -107,8 +107,7 @@ static void remove_cpu_sibling_map(int c
     free_cpumask_var(per_cpu(cpu_core_mask, cpu));
 }
 
-void __init
-smp_clear_cpu_maps (void)
+void __init smp_prepare_boot_cpu(void)
 {
     cpumask_set_cpu(0, &cpu_online_map);
     cpumask_set_cpu(0, &cpu_possible_map);


From xen-devel-bounces@lists.xenproject.org Thu Apr 17 08:41:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 08:41:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.957129.1350310 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5Ko8-0007WI-UE; Thu, 17 Apr 2025 08:41:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 957129.1350310; Thu, 17 Apr 2025 08:41: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 1u5Ko8-0007WB-Rc; Thu, 17 Apr 2025 08:41:16 +0000
Received: by outflank-mailman (input) for mailman id 957129;
 Thu, 17 Apr 2025 08:41: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=ld+N=XD=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1u5Ko7-0007W5-IS
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 08:41:15 +0000
Received: from EUR05-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur05on20615.outbound.protection.outlook.com
 [2a01:111:f403:2613::615])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b7e261a5-1b67-11f0-9ffb-bf95429c2676;
 Thu, 17 Apr 2025 10:41:13 +0200 (CEST)
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com (2603:10a6:20b:5e4::22)
 by VI0PR03MB10664.eurprd03.prod.outlook.com (2603:10a6:800:268::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.22; Thu, 17 Apr
 2025 08:41: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.8655.022; Thu, 17 Apr 2025
 08:41: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: b7e261a5-1b67-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=TNelNYCMTcJzyMGM6rX5/9RktWZdF/Wi1NSF4l0QwFtchMHMNcolYWmC2TLbVpvPlSdv2wZTwF9csT5AYiCPPDVMCCGqMbEcJn1XE9mOMP3x+zBqnT1yqcd/4RboYbOs5UEMFgt/FgwZs74H1RrS4htBOL35ReC1RQ+CHqMgfib2Lm88E1JoS9yEirtMLM6JBE4wVbPt+HfGQuqL7PqPu+bBpAyOrukRlCgslTcErDtk6qojOs53QwPgvNRuiVe1zElHW3UGkIr1N3UuJmlMUShdxXW3jIyNA4AKBQkW66Nr1e2aIt1lHMz1jerlZXc/Q4jM4Hia2ydWdlhnRiizag==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=PMdI+/yELdSRVzE6lNEdo9rmiOpZ/LniKDkzRbSBm04=;
 b=jOp0Wk5EC0sUGHCykmy24t7tcynk7WoukZ9HSkEmN/cFlEqGeWxL6AsZHdJLo2juHYcZydUCjdoo6aaJzXIUyaxMzBgTqXXb96xuTTtWgvfHbrKsGA7IgaJXGkIpQUo7whaEA24cWHtR/KVAVmFFnntCNiVeffxPtCdkMz5SlSCEaJCIDFXkS6+l4HWnPKOQBHM6YC9xkHq9vB3OuzKaqQyL2JTznB2aVMUPmILPStBFJSsA86BIQtxFw+eF28zUe5E5Zq9dFyIkytYJQa+PKBwrVrGz1c+JeUIZCHQ7BqCMiggYSCSBccHLtODy1le/1WLc1+WDt2zW0NxzYxZuPQ==
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=PMdI+/yELdSRVzE6lNEdo9rmiOpZ/LniKDkzRbSBm04=;
 b=LJORwBE9zX2AZO9/KB3g2jBWPurYsq8H6a3F1Y738+d1k86COi34kQ/ox/yOL1wwqz7Z+Zz9nim0qJeF7bjHR6vvbamXBBttRvgt68oznuFNV4gGrG7tlQwl0y2haAu9UpE1jFwbCekNZuIBi2uUmtKx0CK+IPQccqDyZOsTt8wFkwJi/7YwDaYk92Fv7Lusd2SMKUfEwQbyKlzA4i4dSEezOA1EDGS8BVGgs4ExFlWvvRdMEtRYWSsHJOL+lIkBDZz3wrSReGzdIASeZeGx+ZzJNC/TqRp1p9Mi3lY/r5auOlE95lzukuYCOogWMhWhBL5Dl46Ia5u0N/B40yUncA==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <922d02de-2d8c-4b72-bbd5-581595de86c5@epam.com>
Date: Thu, 17 Apr 2025 11:41:09 +0300
User-Agent: Mozilla Thunderbird
Subject: Re: [ImageBuilder v2] uboot-script-gen: add xen xsm policy loading
 support
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>,
 Alejandro Vallejo <agarciav@amd.com>
References: <20250415070128.1938253-1-grygorii_strashko@epam.com>
 <alpine.DEB.2.22.394.2504161503150.8008@ubuntu-linux-20-04-desktop>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <alpine.DEB.2.22.394.2504161503150.8008@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: BE1P281CA0063.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:b10:26::8) To AS2PR03MB8907.eurprd03.prod.outlook.com
 (2603:10a6:20b:5e4::22)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AS2PR03MB8907:EE_|VI0PR03MB10664:EE_
X-MS-Office365-Filtering-Correlation-Id: 01f1fb89-dc7e-4c01-bad8-08dd7d8b9a9c
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?N2NYNXhLb0cwRTladGhLMEVJRjI5VWNPN3FBeFhIRGx1OXdraXF5bUw0NFdE?=
 =?utf-8?B?K1NEUzlMUVdxbEhBWGRlRi9Hc21Cd2U4bVVNZ0wyaXd5dVNHOG5naHVCYjRo?=
 =?utf-8?B?Mm9pSGliTk9pVUZoMFFXNzdJcGk5SzBhd1hMVTB2ejhFcUZGQ0pyTGozMWUx?=
 =?utf-8?B?QUlPcnRjTzNMZ2R5YVZKYzhUYTVkYTlsdXdxUm1rTjNMQ29kTXhwSER3aGhl?=
 =?utf-8?B?Zm1XOHBOU2ZuekFIUVF2ZkV2OExpWHdzTlg4V2FNOUZSQ0RTRXVWby83UjBz?=
 =?utf-8?B?OUVsU1M0Um5nNitrT3RYai8rQTF4UkdQL0N2amg4VkRlem4yazVVNnpzZnhP?=
 =?utf-8?B?ajluME15aUpvbE55TVBPdk5wSjFlZHY0K0JWUVd0YkRvbW02MnQzVHhod2sv?=
 =?utf-8?B?bVpzRXRZc0hzNEwzZERUTUNmdERxeThQcDZucnpuenprMGF3WjJYWHhOY1Ja?=
 =?utf-8?B?RHJtZWppZnpkOWNTTE9GbXBkNjVyeSthWjdPWXRHaHd4MmdEVFpLTkZBWGtr?=
 =?utf-8?B?eU5YUWpMWnhCUndmU3pJbnJIRVZLbEJMaDQvQmtyL3lDcTMrclBZN24xYVgw?=
 =?utf-8?B?amZWN3ZmMGtmMnVnNll0ZGU4S2hDTFFOWlJua3BXMWlCS2I2L3JxSXJUTjlH?=
 =?utf-8?B?L1lmemYrWEd6QTI1N2p6QmZMaC9vTEdiaFhjMXlTdmFuTVFCQWpIRDVUK29H?=
 =?utf-8?B?TmZLbTY1K3Vja1dJaVZPdmIzblJFcnU0aDVrVWYrT1ZBTHMyL1JjNnZySzJi?=
 =?utf-8?B?cjFtZWF0VTRKY3VLTkNlUXVobm0wMXBkd3drMThJbm9nZzl4eHcyYUN3NWZO?=
 =?utf-8?B?eU5USkxNY1JWc0tJNGVqK3BjaTlBakpnQkFaVzVZa3VTRWR4TjZKbTRmb3FI?=
 =?utf-8?B?d2hlRzIyOENiUDU2dGhxcWJBRy9meHlXT240TU8xejYxdDlCZ2thNVBTeWxt?=
 =?utf-8?B?alpuelN3SzZFMFprTzNlQ21tMFpYbDhqeXprRlkzZDF0VmUwS1o2cGlSN0JJ?=
 =?utf-8?B?QjZtWDVrRkVRaGpibTJsM2hZVGdFWC9pcHRxVGtqNkFOM3NFa2h5dzhXd3Ry?=
 =?utf-8?B?WnFpVnE2dlprcEdoZDF5T0h0VHVUb3AreGFXZmtTZHlINFhWeGljQUxQeE5E?=
 =?utf-8?B?bFB3c1MvUDlIWkVGZkdmK1dNYy9NYnM1WmIwOFlrTEJaYUM4VTVrb2t0ZGZS?=
 =?utf-8?B?aU5vSmtGTE9Xc1phS1UvNUUrVjVWdUtLdEtaS2tSVDJSVy9WT2xZek03blNw?=
 =?utf-8?B?c1BlY012SWYxOHJab09Va3hNaS9DbkJYTTB1R0tiTTZGWC9SeHJaVEJsby9u?=
 =?utf-8?B?TnA2Z3JBRmcySnNZOVZSaXVqWVN0dlU2bGhpYnZqbDcyR2hnSFEwNmRTZWhK?=
 =?utf-8?B?RFhVS3lzMDhaNHFtckZUdloxWUFwQ3VOQ1V2MGd0Q1RXR0NocFRoL3daQ0Vw?=
 =?utf-8?B?TkhPUUgxTUJyUTdwQWw4QVBXbytOcVFnRGZYbUJDbkE2Z3FhNUg3eG4ydXhR?=
 =?utf-8?B?V2R6YnkyT1dGcHNRM3FJcXNCNFphMFlyYTJQcTV6SkZ2VitQYTFOMHZQSEhz?=
 =?utf-8?B?SzRWNXR0ZzhabUE5THRGZWlJWXB6cWRIY0dXWFhyNlg3V2laRmlFdU9GcnhF?=
 =?utf-8?B?aTRBY2lQZGx4S0hlM05DNjZwL3BRdXZ2a1ZpQWFCSk5jMkdvc2J0QWFYT09Y?=
 =?utf-8?B?NzNRY1NxUkp2Z1pWbitxWFRXeDBEdnQyOVlrVUVoT3BmSjI0NitmQmhKb1hh?=
 =?utf-8?B?T0t0RDhMS3E3aGJaWnpTdzZCTVFkenVNNFI3T2txRFlmTThGR1h4N0ZtVkI5?=
 =?utf-8?B?OEtrWUJiUjBPL09BU3Brb09hQU1WRDlQMUMxSWRZbisrcFJaOFpxckJRemxo?=
 =?utf-8?B?L2crZUlKL1IzSUFOaEdlSzJGRGdtNDR4amdQb2lCKzFody95ancrcEwvSG9a?=
 =?utf-8?Q?XgM8o8rOmco=3D?=
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?SkdqWHpxdmp4aVZGajlrY3NHY0VtTnFSOTFqUnlBaGFzOW9PakY2c3Z4UnVm?=
 =?utf-8?B?SWVJQ3U0a3JKL3htYVkrR2xhUXJwTERuMnRnZ3hFQjhCNkI2enB4QkovQzFO?=
 =?utf-8?B?WjFOdzFTTzA2czRZTGtLcjEwV29lL3lNNUdzeVdmWjJiRjdPSjRIRGNidWxR?=
 =?utf-8?B?L0FjOUFzYzRjdjdtYzZiYnZVQ0VkNjRyZWJGclVDakI2WmswMWhaZnMvaHZB?=
 =?utf-8?B?VEk2dkFkM1Bub0R6dnMxVXpnQVQ1cjlIYThUeFpCMVBYMlY0dzJjdnBCYnkw?=
 =?utf-8?B?OFlRY1VoTlcwWld4enU5Um9IKzY1WjkzNkt3YnlqamR4ZTlrdVNYM2JSbXV2?=
 =?utf-8?B?WHRrczhYT1J3aWN0QXVBQk9TcjNMd0dKb0FFMUlRS1IvbzZIMkdlS1NjTndQ?=
 =?utf-8?B?WU1uNGtQSExmaThPYnhPVWdEaW15U1JpRWNPSmlORVBuZHJaTnZNazM3anBL?=
 =?utf-8?B?U0JRcWowTzdrZTQwb0xaNklEL3NHREpONzY4emQwREhHVzNCZGRKUnlqQmsy?=
 =?utf-8?B?Sk9QN2tsNzhLVXhYRm12a2dTVGZmR0N1Q3BYdDFjTUZpMjZKNTlqQWVRaXNL?=
 =?utf-8?B?alJHTENaSTF6aWF0MlJYL1RVV2ZDYmVyNWhhRWJSVUpWaVlBRWcrRzRoNTVt?=
 =?utf-8?B?QTZLSGZjczZQOVdVWWxNN29yUEl4V3UrU3Q2KzU3amlmTHJiTmo3U2N3TXhH?=
 =?utf-8?B?NDJueS9BMGVlL2YyUys0WVNOQ3c0cFVERVN6czN0cmRkdGE3QVN1SzBTdG9T?=
 =?utf-8?B?eTA3WlBaUVVZVXV6YXYrdXJ6dTFEVHN1M0ZWVXlIWHFTY0FRbzhPdTdRd0kx?=
 =?utf-8?B?QnpjaTRSWUsrT0FjRXFKVnp2c1dIdVIrZVM5MUhtdHI2UzhQQ3kvR3ZNRXpR?=
 =?utf-8?B?VUlTMkxSL0diMjNHK1NyZ0dJUUFYQnJJOGFIU05VdnU2ODcydkxvMzlDQzdT?=
 =?utf-8?B?TEdTOGZtZno2NWdBdTliMzFPMG9VZ25QRjJpOENFOStXVTAxc2FhWjlVL0pX?=
 =?utf-8?B?QnpSTXk1R3ZVdmcyakZDUGc3TkplTVdmUnVJZ0VtajBleTlrUkh6ek54cm1r?=
 =?utf-8?B?TmtlU0ZaK0lRMEpacERxTGtmZHIvRnVhVHlZczdHQmhyRTdaanloQ0hVYzF6?=
 =?utf-8?B?RndrSUtWVzlDS3VaSDlnYVZqSHNtNVQyRkU1bFB5SGliWEs5Ym9XQUpXOUZW?=
 =?utf-8?B?bk5EMHA5UmZxcCtCZEVsZk5BeXF3TEFJTmFWVnBnRjVBaGlNaTVqUURBcU8y?=
 =?utf-8?B?eStoN0t2SUlyOWVZYVg0a01wNmxLNzRPNXFLWDhMR2RXNmZLMExZekhtNmY4?=
 =?utf-8?B?RURFekR0QzNmTWRsM0NtS1dyU3NIQkdYN1dSUlMzdmxwTzVCYU9xNFUwL1J0?=
 =?utf-8?B?NU9ocjF3VXJPQ05QUjFKeHNqekc1VWtVKzZHSitxNE4zWjFrU2xwUlZUdlZt?=
 =?utf-8?B?UXhHVlRHUyt6aFNoU1JlNEdpS0F5emN6TGw5V3BCTHVpR0Y5YmNYTzFxYTZh?=
 =?utf-8?B?bi94K0tvQ3JzRlI2MTN5U04zU0F6V3RsUGRoYlBndC9EdmtTRkVyYkxBU2JS?=
 =?utf-8?B?WVNySDY4SHBSQ3I0Y3hKUFdTTzZvVk5LNkNWUXc2elNDK3p3YURYWUxoN3pt?=
 =?utf-8?B?NGZkeHlGWnlnMUNZajQrK1NZSFA5eGV2MVF0d1NNWkNDK1F6VTlIOGdzaWpT?=
 =?utf-8?B?d281c2tYU0pIQmNYVFJlYnFvYktMaG5UR2F3MHRzZU9pUjgwaUt4OHNRMUFZ?=
 =?utf-8?B?RDY4a2FlT0xldEZpSEMxVklCaGdtbWNjWVVPZk1KMnZOamZab3lITFpnakVr?=
 =?utf-8?B?UzZnYTVuUmVHcFdFV3Vrc3ltdld6UzNDWnlHRG1BN0lwRFlBUXBVNEVVaUNk?=
 =?utf-8?B?Ni9kczUyYnRud0cwbytqc3U4ellGanBrVHdJdERnUnhWdmVkZ1RtRzg0SHBa?=
 =?utf-8?B?a1o0RTd3R1JJcWZzZFZaOG1nOVN6UkV6TmhQSVVPcWlTWkx6VStwUEV1YUFq?=
 =?utf-8?B?NHIrVDVSMGlxTE9WSnp0bVRES1ZhcDFhVGxYZVVpSlJzT1czLzBRcFkyc2ZS?=
 =?utf-8?B?VHE4cjdPMzJPbzlRMEZjUGdwekg5ajZVWkRGSXUybUkrbG9FSE9XZmErVXBt?=
 =?utf-8?B?Um5wMnMwYnV1djAzVmRXMXczYVRLcDdOczBBc3MwMlFRcFdRY0NPV1FrK1FJ?=
 =?utf-8?B?UXc9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 01f1fb89-dc7e-4c01-bad8-08dd7d8b9a9c
X-MS-Exchange-CrossTenant-AuthSource: AS2PR03MB8907.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Apr 2025 08:41:10.6700
 (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: OZb71X2b8aWQkhHpGnxXizCX5dT0IJX/JFXR38MDC2l36YWaRa8RN54WlUqq9GS7ukTdTQXURUbL8oH6MfO6vU23ce2dJf5GkClc+OBQ9bk=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI0PR03MB10664



On 17.04.25 01:03, Stefano Stabellini wrote:
> On Tue, 15 Apr 2025, Grygorii Strashko wrote:
>> From: Grygorii Strashko <grygorii_strashko@epam.com>
>>
>> This patch adds Xen XSM policy loading support.
>>
>> The configuration file XEN_POLICY specifies Xen hypervisor
>> XSM policy binary to load.
>>
>> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
>> ---
>> changes in v2:
>> - fix conditional statements for XEN_POLICY
>> - add XSM policy binary check
>>
>>   README.md                |  2 ++
>>   scripts/uboot-script-gen | 34 ++++++++++++++++++++++++++++++++++
>>   2 files changed, 36 insertions(+)
>>
>> diff --git a/README.md b/README.md
>> index 137abef153ce..9106d2a07302 100644
>> --- a/README.md
>> +++ b/README.md
>> @@ -91,6 +91,8 @@ Where:
>>   - XEN specifies the Xen hypervisor binary to load. Note that it has to
>>     be a regular Xen binary, not a u-boot binary.
>>   
>> +- XEN_POLICY specifies the Xen hypervisor XSM policy binary to load.
>> +
>>   - XEN_COLORS specifies the colors (cache coloring) to be used for Xen
>>     and is in the format startcolor-endcolor
>>   
>> diff --git a/scripts/uboot-script-gen b/scripts/uboot-script-gen
>> index c4d26caf5e0e..208eafdecfeb 100755
>> --- a/scripts/uboot-script-gen
>> +++ b/scripts/uboot-script-gen
>> @@ -315,6 +315,15 @@ function xen_device_tree_editing()
>>       dt_set "/chosen" "#size-cells" "hex" "0x2"
>>       dt_set "/chosen" "xen,xen-bootargs" "str" "$XEN_CMD"
>>   
>> +    if test -n "$XEN_POLICY" && test "$xen_policy_addr" != "-"
>> +    then
>> +        local node_name="xen-policy@${xen_policy_addr#0x}"
>> +
>> +        dt_mknode "/chosen" "$node_name"
>> +        dt_set "/chosen/$node_name" "compatible" "str_a" "xen,xsm-policy xen,multiboot-module multiboot,module"
>> +        dt_set "/chosen/$node_name" "reg" "hex" "$(split_addr_size $xen_policy_addr $xen_policy_size)"
>> +    fi
>> +
>>       if test "$DOM0_KERNEL"
>>       then
>>           local node_name="dom0@${dom0_kernel_addr#0x}"
>> @@ -900,6 +909,15 @@ xen_file_loading()
>>       kernel_addr=$memaddr
>>       kernel_path=$XEN
>>       load_file "$XEN" "host_kernel"
>> +
>> +    xen_policy_addr="-"
>> +    if test -n "$XEN_POLICY"
>> +    then
>> +        check_file_type "${XEN_POLICY}" "SE Linux policy"
>> +        xen_policy_addr=$memaddr
>> +        load_file "$XEN_POLICY" "xen_policy"
>> +        xen_policy_size=$filesize
>> +    fi
>>   }
>>   
>>   linux_file_loading()
>> @@ -939,6 +957,22 @@ bitstream_load_and_config()
>>   
>>   create_its_file_xen()
>>   {
>> +    if test -n "$XEN_POLICY" && test "$xen_policy_addr" != "-"
>> +    then
>> +        cat >> "$its_file" <<- EOF
>> +        xen_policy {
>> +            description = "Xen XSM policy binary";
>> +            data = /incbin/("$XEN_POLICY");
>> +            type = "kernel";
> 
> This should be "firmware". Aside from that, the patch is fine.
> If you are OK with it, I can fix it on commit.
> 

I'm ok. Thank you.

-- 
Best regards,
-grygorii


From xen-devel-bounces@lists.xenproject.org Thu Apr 17 08:44:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 08:44:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.957141.1350320 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5Kr0-00087f-AJ; Thu, 17 Apr 2025 08:44:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 957141.1350320; Thu, 17 Apr 2025 08: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 1u5Kr0-00087Y-7N; Thu, 17 Apr 2025 08:44:14 +0000
Received: by outflank-mailman (input) for mailman id 957141;
 Thu, 17 Apr 2025 08:44: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=uBz4=XD=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1u5Kqy-00087S-Of
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 08:44:12 +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 21aba1df-1b68-11f0-9ffb-bf95429c2676;
 Thu, 17 Apr 2025 10:44:10 +0200 (CEST)
Received: by mail-ej1-x62d.google.com with SMTP id
 a640c23a62f3a-ac73723b2d5so92173266b.3
 for <xen-devel@lists.xenproject.org>; Thu, 17 Apr 2025 01:44:10 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-64-225.play-internet.pl.
 [109.243.64.225]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-acb63a14c5esm41908866b.19.2025.04.17.01.44.08
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 17 Apr 2025 01:44: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: 21aba1df-1b68-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1744879450; x=1745484250; darn=lists.xenproject.org;
        h=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=uSCf5C6yBHQ6JzpljdrnIWJC1br63yzLdAa4x42QO3g=;
        b=RpXi6qTAW8VCCiclBIA4WnBCb341bZufDpjUcbG5BBZkfkVcixtWP12EphZzV4+pEs
         QSxs2tr0KV1ogKtuEWoCGilUR9CmyVVccz345lotjZzt95xd4ml4Arqe+qpiJlSkD5v9
         sDzNw3ysfYnFollffdOThNGKhBJJMD1kUmcsa8Q+g25vB4UxhqqpUJDRmjrNgoXepYat
         XF7nTT9HjiO5huITjK5yXUJlW194F5BbpVppSopaP/cYDA3ewb6USzw/M1jFZC4IqHlw
         8JyvyFc2mXVVmquz0KHkTuViVXGPcUwJ91eHQsPRlrGMyfc8Led7deBC0XLW28y7qJlv
         qnzw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744879450; x=1745484250;
        h=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=uSCf5C6yBHQ6JzpljdrnIWJC1br63yzLdAa4x42QO3g=;
        b=j6eywrFd1s0O3CWon+14rCN95++yLmcwwwcJHkSG4J4N8ImCOskW2s/HZ2cSHvkkTT
         WqWAEUdLBbjxfB71paDWZfq/XcWL6VfObnW7mJXE18A3HugsH7wuAOYVrQXsRoc8WaID
         dCqoXu6gZcgShFjDTRQoZV8IfU0sIluYguMFCZqK+t0SELNoZxREzYEGOgHuXdcYW5ay
         p+ytBBej4G5Z3Gq3+sHl2L2ezN4whzVe7ENfZPFV1dBpNVHI+uRPUbP+p6a87wiNtmdo
         ROHpkZaMkjG9oxmG19abmPivYlWpN5/5JuTEXxmP0aael49aBcxUoGTTfA1t/dnqmfSi
         bFeQ==
X-Forwarded-Encrypted: i=1; AJvYcCXqRIKv90DUjYTdKQs5VPkTLPIW3h21NIhUntKlF4pfRdAJDIvTytpMt4VscFbLlvq6HEe4m/r4Bgw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzBaxeO5m+PC7FAZB9mdhl/T9PYop4vxF0zatARZQ/uG9jvXbaz
	FzM+2FrHRRWI6Sf4jAe5z4+wFUsW12zuTnFKQ4zfuqlCCIdds/dH
X-Gm-Gg: ASbGncsyMZtG83SY9FQGXNWVR55mjchSzp12JYPDve7iIhV7+encZsW7HjP53NIXCeZ
	eLHAvQH7IxhWOsHXBlbTeC7FgLFZwrZ8hInrWTonpNrlXio8LMX2DyqDTFiOUSjpiPWLgi/kGrI
	8hVR8flHZcD9jqeE0TKpUQu4yW2aaJriHw6icLZz7k9w/zPldA1a5uukz6sMA+PuqO16x4lNhqt
	VrK7jCbtenzwfc5eCY+T8KS0AWxvn6t+0muhYvSO49qlA+WvipafZrUoySTpCWLgFFlga2SyMqZ
	zfgRMvV0XjnwlonmaSTDYi9lJz0sOM8LWoH6XI2SjNQU8B05m8iiwIunwgN2y9rC2EQecrXEMxN
	XBfuCVfRa83/eXZM3BcBsWaYSeg8=
X-Google-Smtp-Source: AGHT+IHFh+XsPp3XOqGos9hbTGnQtwRFCaBwtYJnIiArqYNZqqEOxYcE1JegKJqtrG4uIhu/UGS1+w==
X-Received: by 2002:a17:907:3cc6:b0:ac7:ec90:2ae5 with SMTP id a640c23a62f3a-acb42997607mr504871766b.25.1744879449864;
        Thu, 17 Apr 2025 01:44:09 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------usl0vp40VnL3F7uEimJZ40YX"
Message-ID: <01fa6252-ce42-46e3-becf-ede6961aff14@gmail.com>
Date: Thu, 17 Apr 2025 10:44:08 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 11/14] xen/riscv: add external interrupt handling for
 hypervisor mode
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Romain Caritey <Romain.Caritey@microchip.com>, xen-devel@lists.xenproject.org
References: <cover.1744126720.git.oleksii.kurochko@gmail.com>
 <1685488b8c1b48149e94bd3625c7b46b78c72e8e.1744126720.git.oleksii.kurochko@gmail.com>
 <a8a23afe-ae62-4b88-bf53-db2e1ada164d@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <a8a23afe-ae62-4b88-bf53-db2e1ada164d@suse.com>

This is a multi-part message in MIME format.
--------------usl0vp40VnL3F7uEimJZ40YX
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 4/15/25 4:42 PM, Jan Beulich wrote:
>
>> +    /* clear the pending bit */
>> +    csr_clear(CSR_SIP, 1UL << IRQ_S_EXT);
>> +
>> +    /* dispatch the interrupt */
>> +    do_IRQ(regs, csr_swap(CSR_STOPEI, 0) >> TOPI_IID_SHIFT);
>> +
>> +    /* enable external interrupts */
>> +    csr_set(CSR_SIE, 1UL << IRQ_S_EXT);
>> +}
> Why does "cause" need passing into here? I realize the function is used ...
>
>> @@ -278,6 +293,7 @@ static const struct intc_hw_operations aplic_ops = {
>>       .host_irq_type       = &aplic_host_irq_type,
>>       .set_irq_priority    = aplic_set_irq_priority,
>>       .set_irq_type        = aplic_set_irq_type,
>> +    .handle_interrupt    = aplic_handle_interrupt,
>>   };
> ... as a hook, yet it's still unclear whether (why) any other such hook
> would need the cause to be passed in.

I don't remember a particular reason, but it could have been dropped. If, for some reason,
the cause is needed in|handle_interrupt()|, it can be retrieved explicitly from a register.

>
>> @@ -33,6 +44,20 @@ do {                            \
>>       csr_clear(CSR_SIREG, v);    \
>>   } while (0)
>>   
>> +void imsic_ids_local_delivery(bool enable)
> __init as long as the sole caller is such?

Yes, it make sense. Also, I noticed some other functions that could be __init in imsic.c (but likely
you mentioned that in the previous patches).

>> --- a/xen/arch/riscv/intc.c
>> +++ b/xen/arch/riscv/intc.c
>> @@ -51,6 +51,13 @@ static void intc_set_irq_priority(struct irq_desc *desc, unsigned int priority)
>>       intc_hw_ops->set_irq_priority(desc, priority);
>>   }
>>   
>> +void intc_handle_external_irqs(unsigned long cause, struct cpu_user_regs *regs)
>> +{
>> +    ASSERT(intc_hw_ops && intc_hw_ops->handle_interrupt);
> I don't view such checks (on every interrupt) as very useful. If you checked
> once early on - okay. But here you gain nothing at all ...
>
>> +    intc_hw_ops->handle_interrupt(cause, regs);
> ... towards the use here, when considering a release build.

I will try to find a better place then.

>
>
>> @@ -83,3 +87,42 @@ void __init init_IRQ(void)
>>       if ( init_irq_data() < 0 )
>>           panic("initialization of IRQ data failed\n");
>>   }
>> +
>> +/* Dispatch an interrupt */
>> +void do_IRQ(struct cpu_user_regs *regs, unsigned int irq)
>> +{
>> +    struct irq_desc *desc = irq_to_desc(irq);
>> +    struct irqaction *action;
>> +
>> +    irq_enter();
>> +
>> +    spin_lock(&desc->lock);
>> +    desc->handler->ack(desc);
>> +
>> +    if ( test_bit(_IRQ_DISABLED, &desc->status) )
>> +        goto out;
>> +
>> +    set_bit(_IRQ_INPROGRESS, &desc->status);
> Same comment as on the earlier patch - atomic bitop when in a suitably
> locked region?

Agree, it could be used non-atomic bitop.

>
>> +    action = desc->action;
>> +
>> +    spin_unlock_irq(&desc->lock);
>> +
>> +#ifndef CONFIG_IRQ_HAS_MULTIPLE_ACTION
> Stolen from Arm? What's this about?

Yes, it is stolen from Arm. I thought that it is a generic one, but the config is defined
inside Arm's config.h.
Then it could be dropped now as I don't know, at the moment, the cases when it is neeeded
to exectute several handler for an irq for RISC-V.

Thanks.

~ Oleksii


--------------usl0vp40VnL3F7uEimJZ40YX
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 4/15/25 4:42 PM, Jan Beulich wrote:</div>
    <blockquote type="cite"
      cite="mid:a8a23afe-ae62-4b88-bf53-db2e1ada164d@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+    /* clear the pending bit */
+    csr_clear(CSR_SIP, 1UL &lt;&lt; IRQ_S_EXT);
+
+    /* dispatch the interrupt */
+    do_IRQ(regs, csr_swap(CSR_STOPEI, 0) &gt;&gt; TOPI_IID_SHIFT);
+
+    /* enable external interrupts */
+    csr_set(CSR_SIE, 1UL &lt;&lt; IRQ_S_EXT);
+}
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Why does "cause" need passing into here? I realize the function is used ...

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">@@ -278,6 +293,7 @@ static const struct intc_hw_operations aplic_ops = {
     .host_irq_type       = &amp;aplic_host_irq_type,
     .set_irq_priority    = aplic_set_irq_priority,
     .set_irq_type        = aplic_set_irq_type,
+    .handle_interrupt    = aplic_handle_interrupt,
 };
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
... as a hook, yet it's still unclear whether (why) any other such hook
would need the cause to be passed in.</pre>
    </blockquote>
    <pre>I don't remember a particular reason, but it could have been dropped. If, for some reason,
the cause is needed in <code data-start="179" data-end="199">handle_interrupt()</code>, it can be retrieved explicitly from a register.</pre>
    <blockquote type="cite"
      cite="mid:a8a23afe-ae62-4b88-bf53-db2e1ada164d@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">@@ -33,6 +44,20 @@ do {                            \
     csr_clear(CSR_SIREG, v);    \
 } while (0)
 
+void imsic_ids_local_delivery(bool enable)
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
__init as long as the sole caller is such?</pre>
    </blockquote>
    <pre>Yes, it make sense. Also, I noticed some other functions that could be __init in imsic.c (but likely
you mentioned that in the previous patches).</pre>
    <blockquote type="cite"
      cite="mid:a8a23afe-ae62-4b88-bf53-db2e1ada164d@suse.com">
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">--- a/xen/arch/riscv/intc.c
+++ b/xen/arch/riscv/intc.c
@@ -51,6 +51,13 @@ static void intc_set_irq_priority(struct irq_desc *desc, unsigned int priority)
     intc_hw_ops-&gt;set_irq_priority(desc, priority);
 }
 
+void intc_handle_external_irqs(unsigned long cause, struct cpu_user_regs *regs)
+{
+    ASSERT(intc_hw_ops &amp;&amp; intc_hw_ops-&gt;handle_interrupt);
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
I don't view such checks (on every interrupt) as very useful. If you checked
once early on - okay. But here you gain nothing at all ...

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+    intc_hw_ops-&gt;handle_interrupt(cause, regs);
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
... towards the use here, when considering a release build.</pre>
    </blockquote>
    <pre>I will try to find a better place then.</pre>
    <blockquote type="cite"
      cite="mid:a8a23afe-ae62-4b88-bf53-db2e1ada164d@suse.com">
      <pre wrap="" class="moz-quote-pre">


</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">@@ -83,3 +87,42 @@ void __init init_IRQ(void)
     if ( init_irq_data() &lt; 0 )
         panic("initialization of IRQ data failed\n");
 }
+
+/* Dispatch an interrupt */
+void do_IRQ(struct cpu_user_regs *regs, unsigned int irq)
+{
+    struct irq_desc *desc = irq_to_desc(irq);
+    struct irqaction *action;
+
+    irq_enter();
+
+    spin_lock(&amp;desc-&gt;lock);
+    desc-&gt;handler-&gt;ack(desc);
+
+    if ( test_bit(_IRQ_DISABLED, &amp;desc-&gt;status) )
+        goto out;
+
+    set_bit(_IRQ_INPROGRESS, &amp;desc-&gt;status);
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Same comment as on the earlier patch - atomic bitop when in a suitably
locked region?</pre>
    </blockquote>
    <pre>Agree, it could be used non-atomic bitop.

</pre>
    <blockquote type="cite"
      cite="mid:a8a23afe-ae62-4b88-bf53-db2e1ada164d@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+    action = desc-&gt;action;
+
+    spin_unlock_irq(&amp;desc-&gt;lock);
+
+#ifndef CONFIG_IRQ_HAS_MULTIPLE_ACTION
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Stolen from Arm? What's this about?</pre>
    </blockquote>
    <pre>Yes, it is stolen from Arm. I thought that it is a generic one, but the config is defined
inside Arm's config.h.
Then it could be dropped now as I don't know, at the moment, the cases when it is neeeded
to exectute several handler for an irq for RISC-V.

Thanks.

~ Oleksii</pre>
    <br>
  </body>
</html>

--------------usl0vp40VnL3F7uEimJZ40YX--


From xen-devel-bounces@lists.xenproject.org Thu Apr 17 08:45:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 08:45:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.957155.1350331 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5KsV-0000Zi-OT; Thu, 17 Apr 2025 08:45:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 957155.1350331; Thu, 17 Apr 2025 08:45: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 1u5KsV-0000Zb-Lw; Thu, 17 Apr 2025 08:45:47 +0000
Received: by outflank-mailman (input) for mailman id 957155;
 Thu, 17 Apr 2025 08:45: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=s05F=XD=nppct.ru=sdl@srs-se1.protection.inumbo.net>)
 id 1u5KsT-0000ZR-8U
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 08:45:46 +0000
Received: from mail.nppct.ru (mail.nppct.ru [195.133.245.4])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 585b935b-1b68-11f0-9ffb-bf95429c2676;
 Thu, 17 Apr 2025 10:45:42 +0200 (CEST)
Received: from mail.nppct.ru (localhost [127.0.0.1])
 by mail.nppct.ru (Postfix) with ESMTP id 3CD0A1C0E8A
 for <xen-devel@lists.xenproject.org>; Thu, 17 Apr 2025 11:45:36 +0300 (MSK)
Received: from mail.nppct.ru ([127.0.0.1])
 by mail.nppct.ru (mail.nppct.ru [127.0.0.1]) (amavisd-new, port 10026)
 with ESMTP id USkCkzslC5sA for <xen-devel@lists.xenproject.org>;
 Thu, 17 Apr 2025 11:45:36 +0300 (MSK)
Received: from [172.16.0.185] (unknown [176.59.174.214])
 by mail.nppct.ru (Postfix) with ESMTPSA id 426801C08C3;
 Thu, 17 Apr 2025 11:45:30 +0300 (MSK)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 585b935b-1b68-11f0-9ffb-bf95429c2676
Authentication-Results: mail.nppct.ru (amavisd-new); dkim=pass (1024-bit key)
	reason="pass (just generated, assumed good)" header.d=nppct.ru
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=nppct.ru; h=
	content-transfer-encoding:content-type:content-type:in-reply-to
	:from:from:content-language:references:to:subject:subject
	:user-agent:mime-version:date:date:message-id; s=dkim; t=
	1744879536; x=1745743537; bh=prARSaBN7jc/9aHhT9ze72f0f9WsaYTgJSu
	YmcV/gUI=; b=cQQtdo4QVW6Qm7ecW+k5Hq8qyGDWvb11ozCrIHDaOwThFnlqibD
	lUgBAG2Bsp1YKVIkFYIY/T2aQtRS33hesAKAW4doMRNlfmf8+J1nMSx+quEMF1W9
	pCZpMfd0oY6Z8fdTCzf6u09kRPWz7MmpNEYB3eIZATGxWtH8WBcjVSW8=
X-Virus-Scanned: Debian amavisd-new at mail.nppct.ru
Message-ID: <452bac2e-2840-4db7-bbf4-c41e94d437a8@nppct.ru>
Date: Thu, 17 Apr 2025 11:45:30 +0300
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen-netfront: handle NULL returned by
 xdp_convert_buff_to_frame()
To: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>,
 Jakub Kicinski <kuba@kernel.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 "David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>,
 Paolo Abeni <pabeni@redhat.com>, Alexei Starovoitov <ast@kernel.org>,
 Daniel Borkmann <daniel@iogearbox.net>,
 Jesper Dangaard Brouer <hawk@kernel.org>,
 John Fastabend <john.fastabend@gmail.com>, xen-devel@lists.xenproject.org,
 netdev@vger.kernel.org, linux-kernel@vger.kernel.org, bpf@vger.kernel.org,
 lvc-project@linuxtesting.org, stable@vger.kernel.org
References: <20250414183403.265943-1-sdl@nppct.ru>
 <20250416175835.687a5872@kernel.org>
 <fa91aad9-f8f3-4b27-81b3-4c963e2e64aa@nppct.ru>
 <0c29a3f9-9e22-4e44-892d-431f06555600@suse.com>
Content-Language: en-US
From: Alexey <sdl@nppct.ru>
In-Reply-To: <0c29a3f9-9e22-4e44-892d-431f06555600@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 17.04.2025 10:12, Jürgen Groß wrote:
> On 17.04.25 09:00, Alexey wrote:
>>
>> On 17.04.2025 03:58, Jakub Kicinski wrote:
>>> On Mon, 14 Apr 2025 18:34:01 +0000 Alexey Nepomnyashih wrote:
>>>>           get_page(pdata);
>>> Please notice this get_page() here.
>>>
>>>>           xdpf = xdp_convert_buff_to_frame(xdp);
>>>> +        if (unlikely(!xdpf)) {
>>>> +            trace_xdp_exception(queue->info->netdev, prog, act);
>>>> +            break;
>>>> +        }
>> Do you mean that it would be better to move the get_page(pdata) call 
>> lower,
>> after checking for NULL in xdpf, so that the reference count is only 
>> increased
>> after a successful conversion?
>
> I think the error handling here is generally broken (or at least very
> questionable).
>
> I suspect that in case of at least some errors the get_page() is leaking
> even without this new patch.
>
> In case I'm wrong a comment reasoning why there is no leak should be
> added.
>
>
> Juergen

I think pdata is freed in xdp_return_frame_rx_napi() -> __xdp_return()



From xen-devel-bounces@lists.xenproject.org Thu Apr 17 08:48:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 08:48:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.957168.1350341 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5KvP-0001RO-4w; Thu, 17 Apr 2025 08:48:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 957168.1350341; Thu, 17 Apr 2025 08:48:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5KvP-0001RH-23; Thu, 17 Apr 2025 08:48:47 +0000
Received: by outflank-mailman (input) for mailman id 957168;
 Thu, 17 Apr 2025 08:48:45 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=PNlP=XD=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1u5KvN-0001RB-Dw
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 08:48:45 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c3ced57e-1b68-11f0-9ffb-bf95429c2676;
 Thu, 17 Apr 2025 10:48:42 +0200 (CEST)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id 12CC54EE3C77;
 Thu, 17 Apr 2025 10:48:42 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c3ced57e-1b68-11f0-9ffb-bf95429c2676
Authentication-Results: bugseng.com; arc=none smtp.remote-ip=162.55.131.47
ARC-Seal: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; cv=none; t=1744879722;
	b=VA0KRYIvNp1jEN7xEAh7MSGQDyqxt9HKx8aUqf8db/vBfUE9KUJQAS3t7nMlUztnBv+C
	 1trOTds046tLA7fgUolZfqpOcSzgEP0WHIN/AiLnPKrXu2ZnX4pc8LwMBY28NxZ3tQhBA
	 IuaJCcVaamou0henaXg5kIOvlyjbqaE9shNR2jT9zv8wlnyYpLCUXQtxAnOctJ2bza9AP
	 cuxT9o72bfphov/4QVcONjNm+M+ywdOcoXaaoP70WI3vaTGevUkrEbQfvJJ93t6+6+Y5j
	 TUCQJUhZPQ2jXH5Wq0F8da36oyLMRH84MZv+fJxsYiKcelaYqpgCTdFaxJYLDJ/qMk9UE
	 g+6I4NLcZv1WSNQH8Hv62FG14Kjz0bzvv1iZrdOKHEO016/jWyRPT7IKmtveE9WLIlDFP
	 Dyz98mafsv8sRp9Yiwz/ORBOm2/nL2im+vpzFl6e1CM1h28j9o+LdfOc0VzMAV3LvIMFJ
	 yJ1hfXuF8QmKnP/HSBfKU9YOu/tn/0DJHSyZTZ4yyCaV4owZhP5iy+RZ35CERn+1627ah
	 2B66FQlCM1QIb6LQoqy1jjzJZsBm1L1TsyIvGOxfMhIYoVCV3dynaO47UBCKwNEXbe7ib
	 YeOVhJCStQbI97sMhDHnDfNKPxeDRhFdlwGRk1W78DKjxXoxtol0fAAdknYCf4Y=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1744879722;
	h=DKIM-Signature:MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:
	 References:Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=R7MrtEuaio1dEUqqHW0mHSP6vjdDz05jioxyuZBttSA=;
	b=ilnF+x1/liE8H2ZN6scuJoGgnDHRKempqWzzyB61lxD3JgQu+wYg6usOQWXl87Ahigq9
	 i8ReIBNprPi7FgwQZOMl+hzHvtxR0c1ZM2qXbRI7hhZ3MMlzIi07xGE8vfAoaP6h8vyn2
	 U8/MUfqNxTNn0gVkKHSBxxd3yoAgWbtMAr8LkMgjvh9GyvTbvQmyxFuco6u2TpUCbN0+M
	 pWNHIVHmiirUJ+cjyeZCQIOy4AWAznN1t0dO0Lduz2iO0P/lytX2gYeXaPxTpIOSUMHF1
	 dYuNTJGYY/3b9Xtiw0jrDlJyFNaEc8Z1oZzppRSFB0+dLNhT4ZJdEbIV4awij4c6Ry2SA
	 b0nQGNA5411NNExgQsT89R+JTo0EZAqP+Q12te00p9cI3oBEiXXpOdSPuemn0u7EL4p3I
	 wI+ExLlJtnXmQ9v5QBDVztcszCxbnbLYuCCR2+UBabPonDnUU9pHGKg+tzM75ilG6l0HM
	 LaK8kVtdn/E+oziEG7OsgjbopaCGKwZWcmhy3FaSMFLuoxQu6kVBJeOsKnOqZp79oYUcn
	 Q18f3uqYZORp8kOKbgKjXREi/DasSCUxOAmQhaTHasjdVjSYoxTogBLI6ubq58bnwmkX9
	 yTbA2ANIJW0a9ErQv7BGxUAfNic/ajZSCAxVSHoS6wBgeNdKSS91Nxj9qPBKZ40=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1744879722; bh=s5G6GXTqcQCd1vzUNVXd/QunZ684UNHvQmRHyiXRaNE=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=fiPxoT4ZAPFrDvl50e9nTFBWiMmwZ4xwhjh6UeH2/GhPlFrRuCQa+BCOVtEvhiMSe
	 2wFxqQSej9Sg9Gu49Y47DcLSWKFMB3mm8mrzGJ5f3yvo+ouI/ig1dq0ZsuIg3TGQxN
	 fpFAIjLaZdsFmUAyj2wMegJY9q6nEhAu2NzIJsWxd20LFJ+xlyFPWG67Om1MmVX2U2
	 vqgMJAOAAD1FOmcJjA1f/dmMJ7XqDrZTk2fpuDVXKPV5vC4Ja1vhN4XomHgY+/Rt1z
	 56y+jNH4zT3pZmyAjlTaBudMcLbkyGMzA3ATVceDPVNsVdczkIFqq7fRcDrbVcAp/5
	 2wlq0drY1l+TA==
MIME-Version: 1.0
Date: Thu, 17 Apr 2025 10:48:42 +0200
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: xen-devel@lists.xenproject.org, 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>, consulting@bugseng.com
Subject: Re: [PATCH] Arm: rename smp_clear_cpu_maps()
In-Reply-To: <b792df9c-9912-468b-87a8-bb5d81c14df6@suse.com>
References: <b792df9c-9912-468b-87a8-bb5d81c14df6@suse.com>
Message-ID: <01729ccaa66afcf046a861a565d26d41@bugseng.com>
X-Sender: nicola.vetrini@bugseng.com
Organization: BUGSENG s.r.l.
Content-Type: text/plain; charset=US-ASCII;
 format=flowed
Content-Transfer-Encoding: 7bit

On 2025-04-17 10:36, Jan Beulich wrote:
> The function has lost all clearing operations. Use the commonly
> available name (declared in xen/smp.h), that x86 also uses.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> I would have expected this to also address a Misra violation
> (declaration without definition), but I can't spot any rule (having
> looked through 8.x in particular) to this effect.
> 

The rule you are looking for is 8.6: " An identifier with external 
linkage shall have exactly one external definition", which is explicitly 
deviated in Xen to allow declarations that have no definition, 
especially in the case where definitions may be optimized out by the 
compiler or are simply compiled out. I don't recall the specific 
discussion that led to this deviation, but I can dug it up, if needed.

> --- a/xen/arch/arm/include/asm/smp.h
> +++ b/xen/arch/arm/include/asm/smp.h
> @@ -29,7 +29,6 @@ int cpu_up_send_sgi(int cpu);
>  extern void init_secondary(void);
> 
>  extern void smp_init_cpus(void);
> -extern void smp_clear_cpu_maps (void);
>  extern unsigned int smp_get_max_cpus(void);
> 
>  #define cpu_physical_id(cpu) cpu_logical_map(cpu)
> --- a/xen/arch/arm/setup.c
> +++ b/xen/arch/arm/setup.c
> @@ -317,7 +317,7 @@ void asmlinkage __init start_xen(unsigne
>      /* Initialize traps early allow us to get backtrace when an error 
> occurred */
>      init_traps();
> 
> -    smp_clear_cpu_maps();
> +    smp_prepare_boot_cpu();
> 
>      device_tree_flattened = early_fdt_map(fdt_paddr);
>      if ( !device_tree_flattened )
> --- a/xen/arch/arm/smpboot.c
> +++ b/xen/arch/arm/smpboot.c
> @@ -107,8 +107,7 @@ static void remove_cpu_sibling_map(int c
>      free_cpumask_var(per_cpu(cpu_core_mask, cpu));
>  }
> 
> -void __init
> -smp_clear_cpu_maps (void)
> +void __init smp_prepare_boot_cpu(void)
>  {
>      cpumask_set_cpu(0, &cpu_online_map);
>      cpumask_set_cpu(0, &cpu_possible_map);

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


From xen-devel-bounces@lists.xenproject.org Thu Apr 17 08:51:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 08:51:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.957179.1350350 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5Kxw-0003Nc-Fq; Thu, 17 Apr 2025 08:51:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 957179.1350350; Thu, 17 Apr 2025 08:51: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 1u5Kxw-0003NV-DI; Thu, 17 Apr 2025 08:51:24 +0000
Received: by outflank-mailman (input) for mailman id 957179;
 Thu, 17 Apr 2025 08:51: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=VG4i=XD=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1u5Kxu-0003NP-Tg
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 08:51:23 +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 220aa164-1b69-11f0-9ffb-bf95429c2676;
 Thu, 17 Apr 2025 10:51:20 +0200 (CEST)
Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org
 [IPv6:2a07:de40:b281:104:10:150:64:97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out1.suse.de (Postfix) with ESMTPS id 1797C2118B;
 Thu, 17 Apr 2025 08:51:19 +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 806571388F;
 Thu, 17 Apr 2025 08:51:18 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap1.dmz-prg2.suse.org with ESMTPSA id 16UWHQbBAGhWaQAAD6G6ig
 (envelope-from <jgross@suse.com>); Thu, 17 Apr 2025 08:51: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: 220aa164-1b69-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1744879879; 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=n6wml9RQwizzT5c+Rq6nZJDe8JBi4Fz5jKbqCbWDcyg=;
	b=u3oKFiV5tYM9EYubncbLIKQci6N4///LivxzJ4UPIg2Gh1GbS4tIrlsH4fiHhiSL/n9sep
	hLwxW8BuKyeFkyTXZjTsQzR8qRYtbdZsBQjBqtVszxXercghcV307MpQDYwdRgg6pnR3+5
	ZZ4D52/CMpjGF8+aqQLehxMOoVT9qRk=
Authentication-Results: smtp-out1.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=u3oKFiV5
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1744879879; 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=n6wml9RQwizzT5c+Rq6nZJDe8JBi4Fz5jKbqCbWDcyg=;
	b=u3oKFiV5tYM9EYubncbLIKQci6N4///LivxzJ4UPIg2Gh1GbS4tIrlsH4fiHhiSL/n9sep
	hLwxW8BuKyeFkyTXZjTsQzR8qRYtbdZsBQjBqtVszxXercghcV307MpQDYwdRgg6pnR3+5
	ZZ4D52/CMpjGF8+aqQLehxMOoVT9qRk=
Message-ID: <ed8dec2a-f507-49be-a6f3-fb8a91bfef01@suse.com>
Date: Thu, 17 Apr 2025 10:51:17 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen-netfront: handle NULL returned by
 xdp_convert_buff_to_frame()
To: Alexey <sdl@nppct.ru>, Jakub Kicinski <kuba@kernel.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 "David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>,
 Paolo Abeni <pabeni@redhat.com>, Alexei Starovoitov <ast@kernel.org>,
 Daniel Borkmann <daniel@iogearbox.net>,
 Jesper Dangaard Brouer <hawk@kernel.org>,
 John Fastabend <john.fastabend@gmail.com>, xen-devel@lists.xenproject.org,
 netdev@vger.kernel.org, linux-kernel@vger.kernel.org, bpf@vger.kernel.org,
 lvc-project@linuxtesting.org, stable@vger.kernel.org
References: <20250414183403.265943-1-sdl@nppct.ru>
 <20250416175835.687a5872@kernel.org>
 <fa91aad9-f8f3-4b27-81b3-4c963e2e64aa@nppct.ru>
 <0c29a3f9-9e22-4e44-892d-431f06555600@suse.com>
 <452bac2e-2840-4db7-bbf4-c41e94d437a8@nppct.ru>
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: <452bac2e-2840-4db7-bbf4-c41e94d437a8@nppct.ru>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------wVwpB04kRJxN5XByJ6VYIVNj"
X-Rspamd-Queue-Id: 1797C2118B
X-Spam-Score: -4.91
X-Rspamd-Action: no action
X-Spamd-Result: default: False [-4.91 / 50.00];
	BAYES_HAM(-3.00)[99.99%];
	SIGNED_PGP(-2.00)[];
	SUSPICIOUS_RECIPS(1.50)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain];
	R_DKIM_ALLOW(-0.20)[suse.com:s=susede1];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	MIME_UNKNOWN(0.10)[application/pgp-keys];
	MIME_BASE64_TEXT(0.10)[];
	MX_GOOD(-0.01)[];
	TO_MATCH_ENVRCPT_ALL(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];
	ARC_NA(0.00)[];
	FUZZY_BLOCKED(0.00)[rspamd.com];
	RCPT_COUNT_TWELVE(0.00)[17];
	MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	FREEMAIL_ENVRCPT(0.00)[gmail.com];
	DKIM_TRACE(0.00)[suse.com:+];
	FREEMAIL_CC(0.00)[kernel.org,epam.com,davemloft.net,google.com,redhat.com,iogearbox.net,gmail.com,lists.xenproject.org,vger.kernel.org,linuxtesting.org];
	RCVD_COUNT_TWO(0.00)[2];
	MID_RHS_MATCH_FROM(0.00)[];
	FROM_EQ_ENVFROM(0.00)[];
	FROM_HAS_DN(0.00)[];
	RCVD_TLS_ALL(0.00)[];
	RECEIVED_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:106:10:150:64:167:received];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	TO_DN_SOME(0.00)[];
	TAGGED_RCPT(0.00)[];
	HAS_ATTACHMENT(0.00)[];
	ASN(0.00)[asn:25478, ipnet:::/0, country:RU];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:mid,suse.com:dkim,imap1.dmz-prg2.suse.org:rdns,imap1.dmz-prg2.suse.org:helo]
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)
--------------wVwpB04kRJxN5XByJ6VYIVNj
Content-Type: multipart/mixed; boundary="------------AixPbTA0XpiumzqKcwDJVOSY";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Alexey <sdl@nppct.ru>, Jakub Kicinski <kuba@kernel.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 "David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>,
 Paolo Abeni <pabeni@redhat.com>, Alexei Starovoitov <ast@kernel.org>,
 Daniel Borkmann <daniel@iogearbox.net>,
 Jesper Dangaard Brouer <hawk@kernel.org>,
 John Fastabend <john.fastabend@gmail.com>, xen-devel@lists.xenproject.org,
 netdev@vger.kernel.org, linux-kernel@vger.kernel.org, bpf@vger.kernel.org,
 lvc-project@linuxtesting.org, stable@vger.kernel.org
Message-ID: <ed8dec2a-f507-49be-a6f3-fb8a91bfef01@suse.com>
Subject: Re: [PATCH] xen-netfront: handle NULL returned by
 xdp_convert_buff_to_frame()
References: <20250414183403.265943-1-sdl@nppct.ru>
 <20250416175835.687a5872@kernel.org>
 <fa91aad9-f8f3-4b27-81b3-4c963e2e64aa@nppct.ru>
 <0c29a3f9-9e22-4e44-892d-431f06555600@suse.com>
 <452bac2e-2840-4db7-bbf4-c41e94d437a8@nppct.ru>
In-Reply-To: <452bac2e-2840-4db7-bbf4-c41e94d437a8@nppct.ru>

--------------AixPbTA0XpiumzqKcwDJVOSY
Content-Type: multipart/mixed; boundary="------------ZDjXjs9NJKgYc0AtBDlv4qgT"

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

T24gMTcuMDQuMjUgMTA6NDUsIEFsZXhleSB3cm90ZToNCj4gDQo+IE9uIDE3LjA0LjIwMjUg
MTA6MTIsIErDvHJnZW4gR3Jvw58gd3JvdGU6DQo+PiBPbiAxNy4wNC4yNSAwOTowMCwgQWxl
eGV5IHdyb3RlOg0KPj4+DQo+Pj4gT24gMTcuMDQuMjAyNSAwMzo1OCwgSmFrdWIgS2ljaW5z
a2kgd3JvdGU6DQo+Pj4+IE9uIE1vbiwgMTQgQXByIDIwMjUgMTg6MzQ6MDEgKzAwMDAgQWxl
eGV5IE5lcG9tbnlhc2hpaCB3cm90ZToNCj4+Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBnZXRf
cGFnZShwZGF0YSk7DQo+Pj4+IFBsZWFzZSBub3RpY2UgdGhpcyBnZXRfcGFnZSgpIGhlcmUu
DQo+Pj4+DQo+Pj4+PiDCoMKgwqDCoMKgwqDCoMKgwqAgeGRwZiA9IHhkcF9jb252ZXJ0X2J1
ZmZfdG9fZnJhbWUoeGRwKTsNCj4+Pj4+ICvCoMKgwqDCoMKgwqDCoCBpZiAodW5saWtlbHko
IXhkcGYpKSB7DQo+Pj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB0cmFjZV94ZHBfZXhj
ZXB0aW9uKHF1ZXVlLT5pbmZvLT5uZXRkZXYsIHByb2csIGFjdCk7DQo+Pj4+PiArwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoCBicmVhazsNCj4+Pj4+ICvCoMKgwqDCoMKgwqDCoCB9DQo+Pj4g
RG8geW91IG1lYW4gdGhhdCBpdCB3b3VsZCBiZSBiZXR0ZXIgdG8gbW92ZSB0aGUgZ2V0X3Bh
Z2UocGRhdGEpIGNhbGwgbG93ZXIsDQo+Pj4gYWZ0ZXIgY2hlY2tpbmcgZm9yIE5VTEwgaW4g
eGRwZiwgc28gdGhhdCB0aGUgcmVmZXJlbmNlIGNvdW50IGlzIG9ubHkgaW5jcmVhc2VkDQo+
Pj4gYWZ0ZXIgYSBzdWNjZXNzZnVsIGNvbnZlcnNpb24/DQo+Pg0KPj4gSSB0aGluayB0aGUg
ZXJyb3IgaGFuZGxpbmcgaGVyZSBpcyBnZW5lcmFsbHkgYnJva2VuIChvciBhdCBsZWFzdCB2
ZXJ5DQo+PiBxdWVzdGlvbmFibGUpLg0KPj4NCj4+IEkgc3VzcGVjdCB0aGF0IGluIGNhc2Ug
b2YgYXQgbGVhc3Qgc29tZSBlcnJvcnMgdGhlIGdldF9wYWdlKCkgaXMgbGVha2luZw0KPj4g
ZXZlbiB3aXRob3V0IHRoaXMgbmV3IHBhdGNoLg0KPj4NCj4+IEluIGNhc2UgSSdtIHdyb25n
IGEgY29tbWVudCByZWFzb25pbmcgd2h5IHRoZXJlIGlzIG5vIGxlYWsgc2hvdWxkIGJlDQo+
PiBhZGRlZC4NCj4+DQo+Pg0KPj4gSnVlcmdlbg0KPiANCj4gSSB0aGluayBwZGF0YSBpcyBm
cmVlZCBpbiB4ZHBfcmV0dXJuX2ZyYW1lX3J4X25hcGkoKSAtPiBfX3hkcF9yZXR1cm4oKQ0K
DQpBZ3JlZWQuIEJ1dCB3aGF0IGlmIHhlbm5ldF94ZHBfeG1pdCgpIHJldHVybnMgYW4gZXJy
b3IgPCAwPw0KDQpJbiB0aGlzIGNhc2UgeGRwX3JldHVybl9mcmFtZV9yeF9uYXBpKCkgd29u
J3QgYmUgY2FsbGVkLg0KDQoNCkp1ZXJnZW4NCg==
--------------ZDjXjs9NJKgYc0AtBDlv4qgT
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-----

--------------ZDjXjs9NJKgYc0AtBDlv4qgT--

--------------AixPbTA0XpiumzqKcwDJVOSY--

--------------wVwpB04kRJxN5XByJ6VYIVNj
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/Ey8FAmgAwQYFAwAAAAAACgkQsN6d1ii/Ey9G
Mwf/Twwj0Wp2RcDpMdqCIkz7JMosHd3tyx3p/6SDcDG8CVLIgsJF52bWZHC7K0NuM54LVw9PH5DZ
nzB3ROStaOyRzdbKrqxRq0P2rvDCUmqtdV/LJtoee2SYLWSJbM8Qo4GZVxD54/kQPRqHA1RF/YbP
yuuUbXEEMAEudV7KZwla1hfkgpqEgj8bsUmEopVciVAYcsA1568RduxAEl3NKshkczIXsEtHVJyI
wvUyl+2OxeyNIGn450wvbHXHjDFtumi8ovB3SVuURKUBOGN78aB7wFev0WZQ0B0a1huSThYeD+mI
osTx4FSCrtzrewc8Mb6iT4IiT22K63ziIgTYPCm1hw==
=lEbj
-----END PGP SIGNATURE-----

--------------wVwpB04kRJxN5XByJ6VYIVNj--


From xen-devel-bounces@lists.xenproject.org Thu Apr 17 08:52:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 08:52:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.957190.1350362 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5Kye-0004B3-Pi; Thu, 17 Apr 2025 08:52:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 957190.1350362; Thu, 17 Apr 2025 08:52: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 1u5Kye-0004Aw-LC; Thu, 17 Apr 2025 08:52:08 +0000
Received: by outflank-mailman (input) for mailman id 957190;
 Thu, 17 Apr 2025 08:52: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=/8PF=XD=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1u5Kyd-0003NP-1C
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 08:52:07 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on2062a.outbound.protection.outlook.com
 [2a01:111:f403:2412::62a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3b839ddf-1b69-11f0-9ffb-bf95429c2676;
 Thu, 17 Apr 2025 10:52:04 +0200 (CEST)
Received: from BN9PR12MB5273.namprd12.prod.outlook.com (2603:10b6:408:11e::22)
 by CY1PR12MB9560.namprd12.prod.outlook.com (2603:10b6:930:fd::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.34; Thu, 17 Apr
 2025 08:52:01 +0000
Received: from BN9PR12MB5273.namprd12.prod.outlook.com
 ([fe80::cf66:58ab:47be:4b13]) by BN9PR12MB5273.namprd12.prod.outlook.com
 ([fe80::cf66:58ab:47be:4b13%5]) with mapi id 15.20.8655.022; Thu, 17 Apr 2025
 08:52: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: 3b839ddf-1b69-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=sBOGN3qeOA3MT+BuojdLUUD3NvV5JmE3YHyoPRQAduuBIqwRIBE+drHweV7HbYaCAO89s7UeQdfo7ipEzeYprFeGB7itZq3bV6Izoqpyo60tMKL6Ct47Z5QkH11iaggiktnk44HMgvGaKn8nQX9PmytPync+oWeUcWa/jP7qtHqDaye/UigjEarHFt2bRYkDHOLeFXXq0ZEwd8pDAL8BLBtykkcfW5+2LqaJIC2WVK0l46l08z31+HXIDoB18wKmWzO/dtuHyFqGj72JCFK20ySkl6fnTBN+4CiuvnvRd0QtxGphYBKtpUylPzMn1PM57ssAqnCvRVwQZIARxJaiJw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=DRyWKdTFO2wU1cwOYMZJMSGsuek8ecYSmai7W66I18E=;
 b=jNs8m/Nq4NPDxYZ/gCyz7eFmdup1i0qdWWkDAhU01YOvuhWvEGbIXQKlZ1s63F4wFz035k3rJTprBOfapV+vpBiTzgNLzOZx21j4keGd/XOSrlaJxG0nfbyrmr7p6dNhP88KbHJ75/UjMdwtqjbfaZr0hDP24hgyoV4V41FFxOrCXRyMQcLLdvpyTIAIvOB2jYtGdUllZnq5OnIfuN0MddsTjrdHwKMrMAU7t9cy0VXayYYngxz9QXMnZa/t1N+B5bUYXzECzZ3EvCJ6zZOBUBvfXcyfhb9EVHWv1Xx3skxft5KQfP+kX8K8LSZzCYxKZSZc2zHy9F7bdKD80gpHKg==
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=DRyWKdTFO2wU1cwOYMZJMSGsuek8ecYSmai7W66I18E=;
 b=j0srUXIYJEQfcD4CmlmxzIDzrd0l6ivtGxq2sK+bp6r5IuRJGX1fcPf9xhOvFgSxeDXOfT1NMTvTBvCjFJvi/nRSBb/hr4KxsYAfkYpFOh0fMIDb/iYe6tp4vZKYNincPs6jvUBIYRy888cQdDL96XOT6DEZCduY3IvdkC2QUlY=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <25034b0b-74c9-4da0-b6f3-f4a00c010cd5@amd.com>
Date: Thu, 17 Apr 2025 10:51:57 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] Arm: rename smp_clear_cpu_maps()
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Julien Grall <julien@xen.org>, Stefano Stabellini
 <sstabellini@kernel.org>, Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 "consulting@bugseng.com" <consulting@bugseng.com>
References: <b792df9c-9912-468b-87a8-bb5d81c14df6@suse.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <b792df9c-9912-468b-87a8-bb5d81c14df6@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR3P281CA0208.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:a5::18) To BN9PR12MB5273.namprd12.prod.outlook.com
 (2603:10b6:408:11e::22)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN9PR12MB5273:EE_|CY1PR12MB9560:EE_
X-MS-Office365-Filtering-Correlation-Id: 3060f1c3-d2bb-401f-3ac0-08dd7d8d1dfe
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?blorZmFWZkUrbVMraVV6WXpLVlNmeWdHMXd1dEZxUVRJNnYyUUhlMHIwdnZq?=
 =?utf-8?B?NHZ5ZjN6M3k5eWtCeC83anpEWkRzcjRBUlR6ZlgzOVY2dTNRYXMxam11RzFz?=
 =?utf-8?B?aUtTeWdyWFlzcWljQ2RzTXE4TWlxT1dlQzZXMUl5aGIvK2R4R2V2YXozWlhG?=
 =?utf-8?B?VitlTmFDWWxhSjFMS09kYVNpOHF2QlZWL1p5eVRYMW0xT21hWE1UUkM1R0xC?=
 =?utf-8?B?SFl6YXNIdEVaK0NKTDJmU09OemRleTZTcytxU1Uzc1VHZTRna0VCdlVaZ0VB?=
 =?utf-8?B?Vk92d0JSdWhBZ25LVi9IR1JlbHZoSXNhUUcxc3FRR2J3d3A1ZElwalJ1REli?=
 =?utf-8?B?MmcwVWpCVXREL3ByU1BrSGpXMmQ5aVZCZWlXL0c2b1BiVndaK0VHYjZvNU1S?=
 =?utf-8?B?ZVBWNGNxa2xvMzJWME0yVElVSVY4eUhIa1NNODV4d09DdzNyYVlmSUNhNjVZ?=
 =?utf-8?B?UnE5MEprU3hUeUVoVFR6R0JFSm9xTm5va2Q2SzJyS0VyVXhReW5kTHp6MjFL?=
 =?utf-8?B?TDBSc2pBL1ZpVU9GYkZIK1BINmFZWUNPWUI1U0NHQm1kZ1NYYzdIeWF0ZVdh?=
 =?utf-8?B?Y2QySDc1K0VzaGdxd3pTMGVqaDdKVkJQL0ZMZjFWaGpnRmlNZGU4L1Q0WXZp?=
 =?utf-8?B?OUhvV0hsZ01HeHNEcVVrOXNLVDEveVhPUXIvMGdWcURxOVphRkZ6UnJGSUFm?=
 =?utf-8?B?S0NCZUNOc3g1cWYwZ1U2Q3RmREltS2VGc2ZxcUlicE1Zc3lTbkE2MFFmdjVr?=
 =?utf-8?B?Q3ZQSW9HK2hWNFVTQVp6TkhkdG5xenpTSVI2ZXA0Ui9ON1h5UE0wNzYrcUJm?=
 =?utf-8?B?UEFaUmNkM0RlTkdaN25tVUdrSm05YzZEUTZXcXlzd0ZEL1A0WXlILzZJUExC?=
 =?utf-8?B?RW43WjVQWUd6bUM0Q2R0NXAwN1IyREliMlMvNU5nTDdiUUNIdXFiRjV4S2lq?=
 =?utf-8?B?ZmVJeXhvTkRjYmxGVnFlSDNuTnpXZDk3b29qcFBtUkVCdWVrNFp4bUErZVlO?=
 =?utf-8?B?MDZDdENycWpCSVdmNyt5RXVaQ3pvUFg5dUhjWEljNkVtWWZKWE9MSUh3aTF6?=
 =?utf-8?B?VzdtNENhTUJFa2EzMHJQT2lmNHFteFkvWG9WU1dYNkhEclZ4aEVEbnFLRER3?=
 =?utf-8?B?R3hpQm9YUEpLdjE2TlFsTFN1bThvS3FEdWxTOWUyVlhMa25RS29pMEZqamVP?=
 =?utf-8?B?eStJb050M0RWTGxSVk9tTCtYUkd4V3QzU3hDa2xiNm5lY0cwYk14YmYxRGhH?=
 =?utf-8?B?b242a3Z0clNhd01waTFudDJRb3M4V0hJRGFUc2Z2WGRHVjEweGJSUGJKazJO?=
 =?utf-8?B?SGlhb0tTcEtHcWs1LzM1YTE4SVhFYmZoam1ZaXRMQ2hwTGMyOHVYZTE4Y3Fn?=
 =?utf-8?B?ZUtYOFFadHdMc0poSVBPUWllUGFQbnBmVWFoUlBpaDBndlBuQ2VnOWRQRUNE?=
 =?utf-8?B?Y0UyYzBOdFB1czZ1dGhmWkZSZzh4NDNPUlVjOHRvYU1yZ09jRllqWEpWWU1R?=
 =?utf-8?B?RG9laERaNS8rWlRDbDJKK1pNVXIwN1pOY3l2K05VQ25mQ3prRFcrSWtVN04v?=
 =?utf-8?B?bU05L3dMRzYybmtPS1ZZWlpaM3NKdEVvbUNyNTVyNmlHUmVSMW5uRmxwWGRv?=
 =?utf-8?B?VTgwbktsdjJmM0lmZjhJbWt5S1dPd1huanlaeHlQaGZoenJQMG4wNC9IS3U0?=
 =?utf-8?B?VHZyNDVyY2RuVTBteXJUY2U2di91c2x6WjYxL0huYnljYWdlc2R0ZitEUmc1?=
 =?utf-8?B?SC9XdS9zT3BpSUpYR2JsMTIyU0xWbVZmRFhwckEvYkNrVUNIakVnbDBLWmVB?=
 =?utf-8?B?WUV1TUUzeUZWam42ZVBmRTY1Nm1qbU5HR2U5SnlIc2cySGxmL3hadCtONG5w?=
 =?utf-8?B?NnRIb3NTMVFkZlFYWFIycDhqY015a0dOWUxqSnppS0tTVjJBMXhjbzN1engy?=
 =?utf-8?Q?oDVBwmTxeHA=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN9PR12MB5273.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?cGZ5RTNoNFU4ZGdUM1FiM2dlMmZuTk1keGxzOFVJWk9GL2d3NS9UeDFndzhL?=
 =?utf-8?B?QVAxSnNiUVpHb1pXMWtqYlVrZjhVaEZuNHJBdFVJY1pPN29lTUZTclVLTmpZ?=
 =?utf-8?B?N3BTY3dkdm9nWWtSNWpNWElLRnE1d1hjeExrNEgvTENFamI3bU9PYk9WeHJv?=
 =?utf-8?B?YWF1MWdTSXNId3RIaTlvalgzZ2VvdUIwWkVQMTBDNGc0QkdXU01mN3NwUEk2?=
 =?utf-8?B?TXR2cFV0MjdqZEdlT0J5cnpKcThDWWlCcXc3SlVET3JqR3krZEJzUGdScXpz?=
 =?utf-8?B?UFhOWTVMcURWMUwzTitOWTVndnpFcUhnODBOYUpRWjVtbG8vR2tTVlZEenpU?=
 =?utf-8?B?YkI5SnVVb0t4UURMbHkrc0JsaWlTYXFCNmJmc000YThNdGRZYmNicnRDRktt?=
 =?utf-8?B?eVZja1dVamJCQXI3ZGtjWHVDYkR5eHRlRGt0OG1CYWI0dTBuQW8xNHBxQWhX?=
 =?utf-8?B?VFl4VFY4blcrVVkrbkJ2OFMzQWZzUWdZRExaVmp0bDVIbmlrWEhKMTQrNGhY?=
 =?utf-8?B?Q0k4YTcwOC9YeUtPM0hpMFNoMXBRbmRMWE1vaExMN2xJb2M0dVNVREM2VEtS?=
 =?utf-8?B?M2hxcmZkWXF2UGY2ODZUMGtnZzhaU2JBbjJiWUJhYldOM1NjUUhuV0Qvb08z?=
 =?utf-8?B?MGt1YXdOcDBoMU9CTG03K3VCU1daWksyYXpydzBZZ3Rjb3d1MHdnMUR4T1A1?=
 =?utf-8?B?YmhVSTJuTFZHUjBQSWFLMUxNZXROaTFMRWcreVZoZnNDSHhaQktuRnZvQWtR?=
 =?utf-8?B?enNJZExzSFUvR0tFZ0czNFNxbnJwSGlyV0xFL3o2QWc1WHdyUFRlWURoWjE5?=
 =?utf-8?B?WWdqNXU1c1ZuenpuSWlYeDVoRVF2aUt6TWtDWHZFbFh0ME5GUEVyQlpwam1u?=
 =?utf-8?B?UDg0V3J0RTgwelFJSER2WG40UGlFVWJnYzJ4dXcxYXI0SVlVTVFhODYzK29m?=
 =?utf-8?B?TkpibDY2R1duMTV5RXB4RWt6NFlra1NKTGJCY0pmVWdET0ZMSUZ4T0EwV09I?=
 =?utf-8?B?RTluN2ZBRkdJMnRSWEs4OWVxcFVUTTFWRzJ3VnA1ZUdMM0x2ZXo3TXhOYWN0?=
 =?utf-8?B?bmZrUjBmbXJLQTAzZTdTOGdQRUg4SGpjdEhJNWxrbUNkWEY3dVM1Y2NVTUFM?=
 =?utf-8?B?eEFEcHZJbXBsZUNpTGFmQWJmeGVIV0hPTUQvL3FqTVlNVFlxNCtoM3VzU1hK?=
 =?utf-8?B?dVUxdlhtbTFDS2N3T3V5b2RpbGJVYkVxRGlzWkVndnhaZkxQdkRpRTAzSmc0?=
 =?utf-8?B?bUdEMDFOS3E1UUhyalhIUVk4Vys2V0hZSjBxK3BvcDJHVjhxSFo5N2R6dkw1?=
 =?utf-8?B?bEl0a3V5RURYQXdjNU4zcjNXcUVBT1hMZ0R6S1JTVmlMWnk0ZnBaRlROMy9X?=
 =?utf-8?B?RVR3VzRmVnRhYTlCR2ZlSzIrUDJYK2toTGllcG9NeXRnbkhTZGM1ZENSNlFY?=
 =?utf-8?B?WWtkTkNpcFVScUxBWC9jZnV3YUMxVTRmQ2FOZHRxcTF0aWlKTkoxYmJCcG0x?=
 =?utf-8?B?U0RyeWdZQXdaWkNwMHQxcXVuQmxpWjBEeXBZYkEycVZ6dXF6Zk5WRVNPa0N4?=
 =?utf-8?B?NERYUmRiSzROL1ZKcktEUDF0Q3UwWVJndUpLK083UzBFMHZ4M2g0OEx0TW9j?=
 =?utf-8?B?NDVCdXFkTGdlNW5mLytJRTFIa1drbnFyNHJCTGRmYU1vVUpUL0Rrb0JwQzV0?=
 =?utf-8?B?aVhoQThIT20zS01Ocno5cFBBV3paVkowYzhOeVZGQnZjc0k5bXU1a0tSbDlT?=
 =?utf-8?B?OVgzelJnSnJpY0I0MitLT2tWUCtxYmpTbGZMMDdGa0FmNXBxaXRCTlo0NSsz?=
 =?utf-8?B?WUkwbThIV2lsRkxySitaZXZuRVJJem82OFBKY2dXT3BTaGhJRnpaOGF5bDdo?=
 =?utf-8?B?bG56dEhUUVRkRWFxcGt1Zm1LMTJDT1RJTnlIbUNmWE9raE8rWTRtQncxNDZP?=
 =?utf-8?B?cGpkNnF3QlVVRjNPaEh5ZWc4b1FXNXovRG83cUhtaDV1aHVoYzlHSFJ2K0hT?=
 =?utf-8?B?VzBtUnEySXg5OWlzRHFFNkhIU1NlbE55M28va2M2TGNVekhRcURxbHFqQVBZ?=
 =?utf-8?B?MnlWTWo2OXZvOTVUelYyVDBFVXI1Wk9aQk53WXAwNzBQOEhqS21IRENtc2Zx?=
 =?utf-8?Q?i9HTsX/wMt1ufWfv0wvgRuL2A?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 3060f1c3-d2bb-401f-3ac0-08dd7d8d1dfe
X-MS-Exchange-CrossTenant-AuthSource: BN9PR12MB5273.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Apr 2025 08:52:00.6049
 (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: Y27/27jIWJnzjFlkM4idarAGO7V0YBRGLq0YbozZsW4j0uwqOco5qsli2JZB0Pbn
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR12MB9560



On 17/04/2025 10:36, Jan Beulich wrote:
> The function has lost all clearing operations. Use the commonly
> available name (declared in xen/smp.h), that x86 also uses.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Michal Orzel <michal.orzel@amd.com>

~Michal



From xen-devel-bounces@lists.xenproject.org Thu Apr 17 08:53:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 08:53:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.957201.1350371 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5Kzb-0004lg-5u; Thu, 17 Apr 2025 08:53:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 957201.1350371; Thu, 17 Apr 2025 08: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 1u5Kzb-0004lZ-26; Thu, 17 Apr 2025 08:53:07 +0000
Received: by outflank-mailman (input) for mailman id 957201;
 Thu, 17 Apr 2025 08: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=CA5y=XD=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u5Kza-0004lP-3d
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 08:53:06 +0000
Received: from mail-wm1-x32e.google.com (mail-wm1-x32e.google.com
 [2a00:1450:4864:20::32e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6073db01-1b69-11f0-9eb0-5ba50f476ded;
 Thu, 17 Apr 2025 10:53:05 +0200 (CEST)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-43cfecdd8b2so3870315e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 17 Apr 2025 01:53:05 -0700 (PDT)
Received: from localhost.localdomain (host-92-26-98-202.as13285.net.
 [92.26.98.202]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4405b4d3463sm45290255e9.13.2025.04.17.01.53.03
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 17 Apr 2025 01:53:04 -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: 6073db01-1b69-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744879984; x=1745484784; 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=Z8mINNb5oM4qyzdutX5C8e0crTYLMttSEIxr9UZ8ZJ8=;
        b=qvA/qHLTZkAT0dN1b95x+exCvPfGqP+9tnyy5maQKzX6XdftYWPX4yJ7pH36zFUy/v
         XuSmTX/TrJbEfzneRyh0F+g18SG8rclFBXQLvywMuugOV/qXgyIgljfkvjstRtV/iILP
         2mEjGGtVmWeLYXLX3rAg+P/JqkKv5MT8njhBY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744879984; x=1745484784;
        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=Z8mINNb5oM4qyzdutX5C8e0crTYLMttSEIxr9UZ8ZJ8=;
        b=O8NsXfajTiIXCsCtRq+391awhrISC0kHYeq9F/XVB/KETvxryrNumQOOA5BVWCDzF8
         gCLHh8gmq2gtj8mk990L916PmIIP15n/SrKHaG+vzwDFUW9IUeAkQ21rpR82hUI2ii8R
         W0r+7a/DEXzQBJnLCtKJdWiWXKfSfi0aJwTBSfOU2VLhXW7EmPbjwnHSN+6K9gxNjl9S
         XaHndwvNL0meEMh3hnhyQM4MFpForstru2Eawrp4uvduG8D3r77zXXfD/9QRlC5LdF9a
         ea+3Ew3u621R41YpbnXyOh/0n2guMuBxt2suaT3KgN1G458MxSHdG0pBDtPJxnBqa1uI
         +9NQ==
X-Gm-Message-State: AOJu0Ywq2icm7DTNtiUaP2wW8SFAlN4jEOLS+QTmjRGiwBuA6Nifntrn
	k5w1ivjtJezGsdKkT/x5wm8e8DsnaODtY9vG45fMXN/PnAvvqO7qJN/tVGRYjXk19xzHvPVSKl+
	p+vY=
X-Gm-Gg: ASbGncuOxUUUaCYbG/zbvpRCHlV3wIrYYXY4AWcnVtqLcZSIldER//gfoC2OmC45p7g
	xiHbrBB7SD2QsUrZMYzClco9Z+RS2JlsAZpK8NLz4PvUrD4wIHahabeaDl6BFLFEtNuSnoDkakk
	lQPRF7WIu10PxaYRU/UGdvH4muNLKQJsuAbmQ82w6tu4ejHmsSmdpVf4m2DmV44yaBnLfBRQ3ac
	UA3xHMftOmfjqDcZk7ne75O6zSkPCabe/Av9lRQSkF9MoC1pSxqezCdWsiH+gxz39owvOL1utdW
	KbPoVWGJJscA4f6wMU+AZ32fFQQMvCQJu6iTDTqRthHSdI9TFWU8zepKGwiBz98Fprz0C648k0M
	/iVV4B5xpY4pTIQ==
X-Google-Smtp-Source: AGHT+IH/p3EaRhwtaxD+pMRQdKsetCb/RJ/6X93+PioLLUS9PKhYxl1KAYclnfcby2HiJItGENMHBA==
X-Received: by 2002:a05:600c:a15:b0:43c:fb95:c76f with SMTP id 5b1f17b1804b1-4405d61ce41mr52631525e9.9.1744879984545;
        Thu, 17 Apr 2025 01:53:04 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH] xen/percpu: NUMA-position the per-CPU area
Date: Thu, 17 Apr 2025 09:53:02 +0100
Message-Id: <20250417085302.2554018-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 seems to have been quite an oversite in Xen's NUMA support, albeit it
probably because NUMA was arch-specific at first.

Take the opportunity to sort the includes.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Michal Orzel <michal.orzel@amd.com>
CC: Jan Beulich <jbeulich@suse.com>
CC: Julien Grall <julien@xen.org>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>

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

For the !NUMA case, cpu_to_node() defaults to 0 rather than NUMA_NO_NODE,
making memflags nonzero.  I'm not sure how wise this is, but ARM runs seem
happy with it.
---
 xen/common/percpu.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/xen/common/percpu.c b/xen/common/percpu.c
index c6ecd95a0874..cdd70acbeaf3 100644
--- a/xen/common/percpu.c
+++ b/xen/common/percpu.c
@@ -1,8 +1,9 @@
 /* SPDX-License-Identifier: GPL-2.0-only */
-#include <xen/percpu.h>
 #include <xen/cpu.h>
 #include <xen/init.h>
 #include <xen/mm.h>
+#include <xen/numa.h>
+#include <xen/percpu.h>
 #include <xen/rcupdate.h>
 #include <xen/sections.h>
 
@@ -27,6 +28,8 @@ void __init percpu_init_areas(void)
 
 static int init_percpu_area(unsigned int cpu)
 {
+    nodeid_t node = cpu_to_node(cpu);
+    unsigned int memflags = node != NUMA_NO_NODE ? MEMF_node(node) : 0;
     char *p;
 
     if ( __per_cpu_offset[cpu] != INVALID_PERCPU_AREA )
@@ -34,7 +37,7 @@ static int init_percpu_area(unsigned int cpu)
                ? 0
                : -EBUSY;
 
-    if ( (p = alloc_xenheap_pages(PERCPU_ORDER, 0)) == NULL )
+    if ( (p = alloc_xenheap_pages(PERCPU_ORDER, memflags)) == NULL )
         return -ENOMEM;
 
     memset(p, 0, __per_cpu_data_end - __per_cpu_start);

base-commit: 7f8c2dd829358406dc9e50d5e386e4d2b20b4303
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Apr 17 09:05:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 09:05:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.957218.1350381 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5LBk-0007CS-5e; Thu, 17 Apr 2025 09:05:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 957218.1350381; Thu, 17 Apr 2025 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 1u5LBk-0007CL-2b; Thu, 17 Apr 2025 09:05:40 +0000
Received: by outflank-mailman (input) for mailman id 957218;
 Thu, 17 Apr 2025 09:05: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=nsoM=XD=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u5LBi-0007CF-RM
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 09:05:38 +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 202defff-1b6b-11f0-9ffb-bf95429c2676;
 Thu, 17 Apr 2025 11:05:36 +0200 (CEST)
Received: by mail-wr1-x433.google.com with SMTP id
 ffacd0b85a97d-39c1ef4ae3aso332441f8f.1
 for <xen-devel@lists.xenproject.org>; Thu, 17 Apr 2025 02:05:36 -0700 (PDT)
Received: from [10.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-22c33ef11b1sm28560545ad.18.2025.04.17.02.05.32
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 17 Apr 2025 02:05:35 -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: 202defff-1b6b-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744880736; x=1745485536; 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=vVg8t35EEYXdG7kYWk57/4gfAAP0SCG109d6j9RCZMA=;
        b=GLC/qLRh+CNo2vknSqOaX2EMNsHgMUezoM0x1F1e+rm02sMSPWiED9+RsbPzaJOPzq
         7s1FtVJKTvmfZOVYNHhhwko6YrC8tybsCkT155Fiyj2SFroNEW5gMFMGtXo+x5GtAMiZ
         gnEd2IRicpJi7AvInQaQKqBV2vVU6RXRj8klfcySlxYzDKo3w/ZJozlHNTQRctQiB61I
         oVF4/O4udfuy1yAHl+BbqQUHYXrYeYvH1ls8MKyRBLVBgJ3T7pP2UMrUSmUQXRRpg+zc
         /nDbo3Gpvvs7+UccQBLkoc6q/yOS7KwUtxCJrrx3yzZM2JnYDlfz5HSUaC8nio9qT5oT
         3iOw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744880736; x=1745485536;
        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=vVg8t35EEYXdG7kYWk57/4gfAAP0SCG109d6j9RCZMA=;
        b=jlBt5OIBGAb+8PGxS5pKLYYRiRKqGmP5A2RhUJ9y7g8zxBw66IPA8QU4dTK2MC+wmV
         xV3QlomwLpOFbqggIjy+tyrsAvQH4vRIGRwed9dTwatsQ23r2Ts1pwEcTADK2Qd3+NfL
         Xv2uELn4T03ekeP6XGVoEi0g+FAnN4J89x8RzXO66bvONrBU/TaUifQBrpCQ/14bGSJo
         nvvi7Goyctt0finIKvCmyUkFFjoGY6GhTeDhex6QZ/B+zjRyBJzlDzGjcSlIOHMe0TVO
         Z7frdWLzQd5Nqu0CnGiyNVzXj9pQF+lndLk2vjF1J+CedMppyeAEX/SA6iSlZ/epa6OA
         nf2Q==
X-Gm-Message-State: AOJu0Yy53h69UJP6yrw2z1CKbXPlVxaczcghf7EU8LAhpvbrjR1FpUD9
	LzlTgScXYwWQrYsLQi3i2bvcJxAed9QRQvSWgahIuI6Ymtmo+c2ZYPNvgAF9cFPoNatVKCEuDZI
	=
X-Gm-Gg: ASbGnctJK9cZG5yZE8OvIkVU8tfZEVJmIbeqV8DcmbosPu9fZufczb126Nu3O6uM2wP
	Vj9Br8dSFQ+sAimdcssBzbljSZ+iWwRMbexZMbGdZlBliiogkzf/LpLXHFs4sX2hDcCIIu7RbVW
	9gfzyMNMnu20wKsmFAkw9eclrUYKy2hshgw8I4F3S1wUaTMpdZXw9BvTpfs1f1VAsoA5bAFEKw/
	x3+JgX20gysGOoEnvhXj0obB5ca3kp9SICapHEoWoN2kaMcOWKxIZrMOKUst8mpJDNwqB1u7r6R
	pf39xSPnmQOaURRcnlpeE7iKKy4oL03Ye9z+GzEWvc05NN+3alRJwD7syPFfJNrESdFLnHXRSvA
	qBmrUyh5FssUspWRQLMqjYOMhJA==
X-Google-Smtp-Source: AGHT+IH8ONr26mp+2aHjXXvJrHK3SWk2PM8XM0AFiA7DxcX8WL6Bmsu928z2gpen0CcjJPi8OQkJoQ==
X-Received: by 2002:a05:6000:1849:b0:39c:1efb:f7c4 with SMTP id ffacd0b85a97d-39eea30ba47mr1550238f8f.25.1744880736165;
        Thu, 17 Apr 2025 02:05:36 -0700 (PDT)
Message-ID: <ebf8e47a-8cad-4ee6-9bea-61c8201364de@suse.com>
Date: Thu, 17 Apr 2025 11:05:28 +0200
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>,
 Fabian Specht <f.specht@tum.de>, Manuel Andreas <manuel.andreas@tum.de>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH] x86emul: also clip repetition count for STOS
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+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

Like MOVS, INS, and OUTS, STOS also has a special purpose hook, where
the hook function may legitimately have the same expectation as to the
request not straddling address space start/end.

Fixes: 5dfe4aa4eeb6 ("x86_emulate: Do not request emulation of REP instructions beyond the")
Reported-by: Fabian Specht <f.specht@tum.de>
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
@@ -2221,7 +2221,7 @@ x86_emulate(
 
         dst.bytes = src.bytes;
         dst.mem.seg = x86_seg_es;
-        dst.mem.off = truncate_ea(_regs.r(di));
+        dst.mem.off = truncate_ea_and_reps(_regs.r(di), nr_reps, dst.bytes);
         if ( (nr_reps == 1) || !ops->rep_stos ||
              ((rc = ops->rep_stos(&src.val,
                                   dst.mem.seg, dst.mem.off, dst.bytes,


From xen-devel-bounces@lists.xenproject.org Thu Apr 17 09:07:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 09:07:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.957228.1350390 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5LDO-0007iN-FV; Thu, 17 Apr 2025 09:07:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 957228.1350390; Thu, 17 Apr 2025 09:07: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 1u5LDO-0007iG-Ct; Thu, 17 Apr 2025 09:07:22 +0000
Received: by outflank-mailman (input) for mailman id 957228;
 Thu, 17 Apr 2025 09:07: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=CA5y=XD=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u5LDN-0007i6-4D
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 09:07:21 +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 5dfe9fe0-1b6b-11f0-9eb0-5ba50f476ded;
 Thu, 17 Apr 2025 11:07:20 +0200 (CEST)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-43cf628cb14so12230595e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 17 Apr 2025 02:07:20 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-440609c94fesm28565515e9.40.2025.04.17.02.07.17
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 17 Apr 2025 02:07:18 -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: 5dfe9fe0-1b6b-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744880840; x=1745485640; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=2Xs1K+a1qqRMKOXmuqpHg+jKUFOxcfarBKMr7TQqs48=;
        b=q7oY2+ihRSaEBDJii64ds/nb1bpbVsaLDFfPVfeNi7P5VvFbhcU6iCn9VTElXBWXQY
         3Ajd4pJKz/k/HzscAbzORW3zXK2S/7IAnWVp/czMZR2Q7ML6lyashK57ijtaohOhSNH+
         HSs/KLIfVgihGpi+8Mptn2lRyChbHUrsUmtM4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744880840; x=1745485640;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=2Xs1K+a1qqRMKOXmuqpHg+jKUFOxcfarBKMr7TQqs48=;
        b=cTRPDljevPbPmsJm7b3yImL+9iOTENi6vugyYZdMCCV1w03DUIuKPQsAciaoOpyGjV
         fw1v71z4YHi73EXgW3AnwbumemI/w5+EkCw1oB34VC9prnWr9R6Do7knrAGQEYCfFGUT
         OfEVBaebJnySEIZ6WbK/uwgoevn+eMZMILuA/9W21nfOM5/rifUVMyNpejxgpiMDCI+g
         MW3bOpyY4zJjRkvUzUe0jOSBaYTT5nWJkqIg2kVDcyNCS4CXtEfEg4Mu9jjmSYpg2iI9
         zdNrcEtyZwHTz86BqPJ6wWK5pzpVJWuzUV6cafE85TrM5I7ZB1lKBRpHuKbE2+AkqVXf
         V3rg==
X-Forwarded-Encrypted: i=1; AJvYcCXk8ZzrIVeLeLEU/LU7VzkzKjGeWFjASJjThd7tLyICwmJG9QMb863epFbC2fekwLH4rdl7Gi4E464=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxj6FtTF4u/JI+lKMiSiAF7Jsgr7B12xMDze8cGQBo193qGTJlu
	7RbYukjxX+Cjc+zmnKoYrz09izp3Tl9XjH9kulK80JAkil7WIzMFw9q0JNEJWUg=
X-Gm-Gg: ASbGncs2/IrXi/hBHO+TusNZFJ3B8BzjB1IhVX/2BDUNnC1HHBWw13z/mc767gZIKj9
	WizE6z5PtmN/9JWcuw/fHYXgEJElBmFcMxX5VOO2GiG3TLpqMPYijejdd48jL5ijZXLPeC6HDSI
	McJhTsmwt/OmYT4brYAVF1KvtStNC+EkcfW7RfVrV+RjVKMTnARnMoDYurLgmNKdnFtqFhUz63c
	j0knNa+2x7t0RRnFycpqp0W+BOjlsCGhLxMfpSwQMKz1ufC4DFogJHyWHyKHfLC5CzeRgAqodVi
	VASFeJdSgqgTbNF7tk2TB01xK29+MLA+KrUnt6UONw7SfoyMVsnelz38lOlKfwmU5KXoDiMqanL
	o3CyuzQ==
X-Google-Smtp-Source: AGHT+IHHHI1jK0OcpCsNP8z3KjGyw9TE4kJaeE13cIZVYaFyCq/nWl3pV21tJU0xwI9K7VzHTrgNKw==
X-Received: by 2002:a05:600c:3505:b0:43b:c857:e9d7 with SMTP id 5b1f17b1804b1-44063674350mr13259215e9.5.1744880839624;
        Thu, 17 Apr 2025 02:07:19 -0700 (PDT)
Message-ID: <82f7ddcd-3f9a-4bbf-9c65-4ad90259c321@citrix.com>
Date: Thu, 17 Apr 2025 10:07:17 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86emul: also clip repetition count for STOS
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>,
 Fabian Specht <f.specht@tum.de>, Manuel Andreas <manuel.andreas@tum.de>
References: <ebf8e47a-8cad-4ee6-9bea-61c8201364de@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: <ebf8e47a-8cad-4ee6-9bea-61c8201364de@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 17/04/2025 10:05 am, Jan Beulich wrote:
> Like MOVS, INS, and OUTS, STOS also has a special purpose hook, where
> the hook function may legitimately have the same expectation as to the
> request not straddling address space start/end.
>
> Fixes: 5dfe4aa4eeb6 ("x86_emulate: Do not request emulation of REP instructions beyond the")
> Reported-by: Fabian Specht <f.specht@tum.de>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Thu Apr 17 09:13:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 09:13:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.957240.1350402 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5LJe-0001Yw-3O; Thu, 17 Apr 2025 09:13:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 957240.1350402; Thu, 17 Apr 2025 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 1u5LJd-0001Yp-VB; Thu, 17 Apr 2025 09:13:49 +0000
Received: by outflank-mailman (input) for mailman id 957240;
 Thu, 17 Apr 2025 09: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=uBz4=XD=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1u5LJc-0001Yj-Cr
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 09:13: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 442a1e20-1b6c-11f0-9ffb-bf95429c2676;
 Thu, 17 Apr 2025 11:13:46 +0200 (CEST)
Received: by mail-ed1-x530.google.com with SMTP id
 4fb4d7f45d1cf-5e6f4b3ebe5so1095767a12.0
 for <xen-devel@lists.xenproject.org>; Thu, 17 Apr 2025 02:13:46 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-64-225.play-internet.pl.
 [109.243.64.225]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-acb3d126fb1sm264809266b.101.2025.04.17.02.13.44
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 17 Apr 2025 02:13: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: 442a1e20-1b6c-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1744881226; x=1745486026; darn=lists.xenproject.org;
        h=in-reply-to:content-language:references:cc:to:from:subject
         :user-agent:mime-version:date:message-id:from:to:cc:subject:date
         :message-id:reply-to;
        bh=npzCosEEGRnhf08nh9R1y1SiE+0oq0s7FdBtOiiTQG0=;
        b=MEd+/u599S3Qx+fYUssgunJ7pWK94fmFKPmJhEFMjkoEljVe+BtITV3m6oso1G+1I3
         Ut/9XAXkAwvqXmZl6ZLEq9uwnc7Zl+gD0w2R5F6S2gRSCsMO2K4Uns5vnwjHi23Wr4DU
         BLSavdrY/uTXHI78ZrvToUjuM6NTLy8lChRslKYmhVBALiLQxrBAagFZ8DgbNkvZhJax
         OPvar6q68FYqxJ6MjFLNpi3/F1nelsxpaH4m7sOYOgLODOJQkls+/HBwzgofoQpN21M7
         dyME0odhEHHnMZEg7fvVX4FInoDhmTJbtz90eO/zgThuhE63sLeI8eKccMpUIiEy68Tv
         tW9Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744881226; x=1745486026;
        h=in-reply-to: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=npzCosEEGRnhf08nh9R1y1SiE+0oq0s7FdBtOiiTQG0=;
        b=PCPr6ok+KkBAOsbvvgPUDFQpNIRNYKQh9tGba4Gxv0hc/G/xH1ClRvPLZZY8yZ7zxf
         CVksE/t1bO4w2pwlvtfT+f8C8ClCxuKAfZANh/Hv+Q3NZkflAdbtr4xjlUi4EgbaX7Io
         IN9wq+CNAHqJAO7L+LYSETTtmt/vYngiTEOOfIltRLUZGdaFRiF5N5DwTsIxAhxxvspW
         O4nNb5KiNkUX8lVd+It5h9AcQjXM1V9B1f0Tm1Mr6ys5E512piBTm+MGAknUIafxh+SZ
         xiWTTBUHT1fc7X5nfaFdhtGj+qSd8CWffR+mo96vcHGQXWe/0r0hwFNCcnuxgK9IzqvZ
         CYOg==
X-Forwarded-Encrypted: i=1; AJvYcCVqu01dRJKPhVqZ8dxWdI82Hd0yv6JiWWfZJwej+NEUXWmKEU6jxx+kFNRD0ZMWqBFrLbdHvxNce1w=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz6yRZYAoDt+pBKpYw6leR1A/rfQAmV8EBdiZjuN3uQDplqusMQ
	GejOvRBqYCzy2dT9imFPMIH1knUGLOWjkfOy29XiEnGsnZoC5ttu
X-Gm-Gg: ASbGnctYzjHHmawXvIesK2b4p1YaCh5BFMi7GT/nyhfsz4+A79JMQ2mF3VZJhmXXonq
	NHmAKaARl4Zj9kr3qSutZYcQ0fOQbE8fOE95IcW3RMuUgLtHm5ba4EVbtwTy68D2uczLFyQHbYz
	1Pff08RUXEe62LpfpOo11whYJoIOYaCp+g2IwreKTVzJr6dDqI4eAe6bte18FGdIlcENA97S6mm
	lPEECc1oVSqjy7VRf0ZNysPltOiIB+BZiubLU5jgH6791jrkB5tuGo2rAVZpJTR4ss1rPRGdw5Z
	3rtB2PgvUESzAUPm3anJdTSeilJJhHOXyb3D8JgSRkYoPi0lp+Sta/yIhB5VsBpd/8+NQP7C6ru
	RxpipYOvbxkoqokZ8
X-Google-Smtp-Source: AGHT+IHqck9zSbmI6Xn//iK06K1+3IVYnzNYfka5WJ7Fr6LzZYzVcNaAS8GETJInPIPVJCbzBxgOVw==
X-Received: by 2002:a17:906:478a:b0:ac2:fd70:ddcc with SMTP id a640c23a62f3a-acb42c33a01mr413309966b.47.1744881225725;
        Thu, 17 Apr 2025 02:13:45 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------RR2yIRijnQfw4ymP64d2yRnp"
Message-ID: <187bfe40-6603-42c0-9afe-3db169c8de39@gmail.com>
Date: Thu, 17 Apr 2025 11:13:44 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 11/14] xen/riscv: add external interrupt handling for
 hypervisor mode
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Romain Caritey <Romain.Caritey@microchip.com>, xen-devel@lists.xenproject.org
References: <cover.1744126720.git.oleksii.kurochko@gmail.com>
 <1685488b8c1b48149e94bd3625c7b46b78c72e8e.1744126720.git.oleksii.kurochko@gmail.com>
 <a8a23afe-ae62-4b88-bf53-db2e1ada164d@suse.com>
 <01fa6252-ce42-46e3-becf-ede6961aff14@gmail.com>
Content-Language: en-US
In-Reply-To: <01fa6252-ce42-46e3-becf-ede6961aff14@gmail.com>

This is a multi-part message in MIME format.
--------------RR2yIRijnQfw4ymP64d2yRnp
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 4/17/25 10:44 AM, Oleksii Kurochko wrote:
>>> +    action = desc->action;
>>> +
>>> +    spin_unlock_irq(&desc->lock);
>>> +
>>> +#ifndef CONFIG_IRQ_HAS_MULTIPLE_ACTION
>> Stolen from Arm? What's this about?
> Yes, it is stolen from Arm. I thought that it is a generic one, but the config is defined
> inside Arm's config.h.
> Then it could be dropped now as I don't know, at the moment, the cases when it is neeeded
> to exectute several handler for an irq for RISC-V.

Probably, IOMMU may setup multiple handler for the same interrupt. I'll double check that.

~ Oleksii

--------------RR2yIRijnQfw4ymP64d2yRnp
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 4/17/25 10:44 AM, Oleksii Kurochko
      wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:01fa6252-ce42-46e3-becf-ede6961aff14@gmail.com">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <blockquote type="cite"
        cite="mid:a8a23afe-ae62-4b88-bf53-db2e1ada164d@suse.com">
        <blockquote type="cite">
          <pre wrap="" class="moz-quote-pre">+    action = desc-&gt;action;
+
+    spin_unlock_irq(&amp;desc-&gt;lock);
+
+#ifndef CONFIG_IRQ_HAS_MULTIPLE_ACTION
</pre>
        </blockquote>
        <pre wrap="" class="moz-quote-pre">Stolen from Arm? What's this about?</pre>
      </blockquote>
      <pre>Yes, it is stolen from Arm. I thought that it is a generic one, but the config is defined
inside Arm's config.h.
Then it could be dropped now as I don't know, at the moment, the cases when it is neeeded
to exectute several handler for an irq for RISC-V.</pre>
    </blockquote>
    <pre>Probably, IOMMU may setup multiple handler for the same interrupt. I'll double check that.

~ Oleksii</pre>
  </body>
</html>

--------------RR2yIRijnQfw4ymP64d2yRnp--


From xen-devel-bounces@lists.xenproject.org Thu Apr 17 09:14:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 09:14:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.957248.1350411 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5LK5-000209-Ak; Thu, 17 Apr 2025 09:14:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 957248.1350411; Thu, 17 Apr 2025 09:14: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 1u5LK5-000202-7F; Thu, 17 Apr 2025 09:14:17 +0000
Received: by outflank-mailman (input) for mailman id 957248;
 Thu, 17 Apr 2025 09: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=nsoM=XD=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u5LK3-0001Yj-Tq
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 09:14:15 +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 54c0d453-1b6c-11f0-9ffb-bf95429c2676;
 Thu, 17 Apr 2025 11:14:14 +0200 (CEST)
Received: by mail-wr1-x432.google.com with SMTP id
 ffacd0b85a97d-39ee5a5bb66so311236f8f.3
 for <xen-devel@lists.xenproject.org>; Thu, 17 Apr 2025 02:14:14 -0700 (PDT)
Received: from [10.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-73bd21c388fsm12269942b3a.54.2025.04.17.02.14.09
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 17 Apr 2025 02:14:13 -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: 54c0d453-1b6c-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744881254; x=1745486054; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=A82kDhCvkQMq/U16sq8ixGZbU0/uhuP5m0cdpB8hT9k=;
        b=J79g3uxinDqcL+sQa40EPcomNuAwScGWKGD9wJi4lIa0lymIO7hQmDdpj8rAzV+q11
         o4JCz9bQXlx347dW9xbVcE/y21Z6jKnkRbCLqIs94DUe6FgBW0t/gP3Z6EPz+x4j5aAc
         p+4b4ZYvdpeJOQt53J0Sw0gLLkiewSrqTKerxBngjeX73JeYYm0Buy2+xLgjq9zmR7Lu
         mMiIOTD4rHIeuVI2Z4z5zpRdomJ6w9PYvXlKCQp7EOomalzIB8Wfs6AKlJ09H+DTF14+
         enYErIVm5EwO+ZJmoBWCswPfHRFCnTY+jc16jSLuhb07DTm0h5nyflxCFrPne2DZ9XmN
         T2BA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744881254; x=1745486054;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=A82kDhCvkQMq/U16sq8ixGZbU0/uhuP5m0cdpB8hT9k=;
        b=Y0HASUlsRkT9gOruFt6u3aj3n+RZPaQ21bsjgj6TVuJ0SndG1Q4jtQE7bGQ9tZ/S+h
         kNTZkbIhvLgk/+vkm3r0WlNNevv9dOQIUFDJGLjekVW3bi6iN8nB6wU6wIkwRhSDwNUX
         ez3DBEm8YCVV/869W1V/0v0deejrc5qZst7ih6xnS7Jq454PhCSdGx4o5dbsvWti469g
         4n2v/E3pzm4cWo24nXFtv1HQZkGbnVj9wHSbeIZeWcV4Qii7RrX+aEEy6WvPRb/rWLZO
         VVIvZJHyaGmoPoLSHrOC4vqVCa+Z54nOVWJj19Zi+gr7tqr/bUidy2TWzDBlNul1OyRb
         Gi+Q==
X-Gm-Message-State: AOJu0YyGw4f9TRzM5p4oKqHOBkm4VskWuAmuzIW2vXSX4k+Je+FaTyqd
	id7aIZcuQ6RD+qku3hFZNDGcOAM+hh8afNrfQcXFGzFp6AL++Cu/rwy3Hgr90w==
X-Gm-Gg: ASbGncsYH4jnZczS316dqqQTjuvZY7w9Zw1I/L/iu2DVAOiwMbt3P82k9kbObZcoZmY
	lOjxSKWLDzjzeKMKXdfuIM7Xnaw7nIZdOLCmS77qUzEKKJeIaWc812kbqTVnYd9SDW7ySqtGlse
	EQcXIHwu3UNl6I7sELhxKhel7Vna8jFEBB+Q6C44rw/6YasFbCdx+zBz4vbbUQq8wNd/GJ5CP0f
	QomY854unaIi8qAQfpwdXmpTLwimd1yNy17xmnPZ6Sb59XN4p07WGN2PqiWFCdJCkzEdX+NoTvn
	m2L2mkg+cqycRO/NJPNH9zJ3PXMGE0ArgkQySBfHOBhDqxU5yY7rcqCdupl+M89laVtuBDT7HkM
	goVLWqV+5otXrjLtvm8whC7C4ErvJwg6kD4yM
X-Google-Smtp-Source: AGHT+IEzJQe+vj5QwELsvGHjG4Emymm9CSbWOoI2qjL+xx6vfsBeVas3wOLYwXU+AaOlsFqFZztdzw==
X-Received: by 2002:a5d:5886:0:b0:391:3f64:ed00 with SMTP id ffacd0b85a97d-39ee5b1c943mr4299017f8f.26.1744881253829;
        Thu, 17 Apr 2025 02:14:13 -0700 (PDT)
Message-ID: <c993be16-f269-4a69-bd0c-9998db3f4a42@suse.com>
Date: Thu, 17 Apr 2025 11:14:04 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] Arm: rename smp_clear_cpu_maps()
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
Cc: xen-devel@lists.xenproject.org, 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>, consulting@bugseng.com
References: <b792df9c-9912-468b-87a8-bb5d81c14df6@suse.com>
 <01729ccaa66afcf046a861a565d26d41@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: <01729ccaa66afcf046a861a565d26d41@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 17.04.2025 10:48, Nicola Vetrini wrote:
> On 2025-04-17 10:36, Jan Beulich wrote:
>> The function has lost all clearing operations. Use the commonly
>> available name (declared in xen/smp.h), that x86 also uses.
>>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>> ---
>> I would have expected this to also address a Misra violation
>> (declaration without definition), but I can't spot any rule (having
>> looked through 8.x in particular) to this effect.
> 
> The rule you are looking for is 8.6: " An identifier with external 
> linkage shall have exactly one external definition", which is explicitly 
> deviated in Xen to allow declarations that have no definition, 
> especially in the case where definitions may be optimized out by the 
> compiler or are simply compiled out. I don't recall the specific 
> discussion that led to this deviation, but I can dug it up, if needed.

The respective deviation is imo bogus. Iirc if anything this is about
DCE, which isn't "definition is compiled-out or optimized-out by the
compiler" but "invocation is compiled-out or optimized-out by the
compiler": If the definition was optimized out, there necessarily _is_
a definition in source.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Apr 17 09:21:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 09:21:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.957267.1350421 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5LQv-0004A6-4q; Thu, 17 Apr 2025 09:21:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 957267.1350421; Thu, 17 Apr 2025 09:21: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 1u5LQv-00049z-1Y; Thu, 17 Apr 2025 09:21:21 +0000
Received: by outflank-mailman (input) for mailman id 957267;
 Thu, 17 Apr 2025 09:21: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=nsoM=XD=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u5LQt-00048U-1N
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 09:21:19 +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 51705c90-1b6d-11f0-9eb0-5ba50f476ded;
 Thu, 17 Apr 2025 11:21:18 +0200 (CEST)
Received: by mail-wr1-x42e.google.com with SMTP id
 ffacd0b85a97d-39d83782ef6so1133147f8f.0
 for <xen-devel@lists.xenproject.org>; Thu, 17 Apr 2025 02:21:18 -0700 (PDT)
Received: from [10.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-73bd21c4e51sm12240931b3a.55.2025.04.17.02.21.13
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 17 Apr 2025 02:21: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: 51705c90-1b6d-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744881677; x=1745486477; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=J7HHmfJ05alZnkLyjBX4nn87YBocuUGqZLpMrT9P06k=;
        b=Zz0kTcCxCXcH5nLTcFyyBMvIuBYkZGGumdxBfcRy+pof0rfDeJ/zN0knDjUtmYOdxl
         e6GDQrOmJtCG7eYA+QtK2YmTxiCc4Dlr4lOpydSrcR5tjh7wPCxZD3GB8kJyZkpJ1/vi
         gvnq5FhRNP7oGqBBW7dztufOrBa2SkarHV8TkZKAB4oe/4sdxmpo5p+ccRna2NbxUE7u
         POfK4gHrtbDSdR72y68Q34UtkCdLQuPrlbYB9iT8AC5mFZbUeuuiyWcKxTE3apDUci58
         1/VT/qeWgTM9Acf2FR9BXNHJhVpiJF/VIrAk19DWdPOZK5egseFF/uulr0EQFzBRjRej
         WEIg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744881677; x=1745486477;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=J7HHmfJ05alZnkLyjBX4nn87YBocuUGqZLpMrT9P06k=;
        b=h65Vk8njz+BZwwTFnyPeaGvZJzMotxTwaIg9KS4e2gFRhTgJtNdrbr3lE1d8niCS+o
         0Xly4WzERCk1gpkxxVny3T1ZwpWG/VwbMMSBgvEi7d5Gu6IoYJWHK8cNNRKT9tVGnglK
         0pxP0FogvGE9P24IdkuSXttzFpy5jDLfTe4JPX+R0bH2tlibx0pX6CIYLiiH1qHQ1vvC
         K8+XkRoHQOlqH8kWGZgZdIVbymhT+GheqasH6NGrNuj6rjx9eDD/fA509wXWgm0UmC1o
         9Qs+zRmUZUbP8RA6teVBeqnb9gDvT4nb0+jYpsemWEGhvjhCJFmpFEZm4Fl0DLelkcn3
         rF0Q==
X-Forwarded-Encrypted: i=1; AJvYcCVI6eXwFDrWDuLscUk76qzjxm1HmibfaaRxQYysXDtYTwA6kkulsCuAvZmQX9ELDYeV2YNm6ohwPOU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxK+aq6BEojuX/fN/FHzFYGcQWcAR18+Z/7PqWhW/WGZ3/rZREM
	ttLp+UR2L9g3yre4WSXF5CWAhQLiHwwXFFnnVJNR3tjWLLc8D6lE6t2BFLL58Q==
X-Gm-Gg: ASbGncuxk48Rol0CVDeIwEG3oy5nP1cISWgA2FGWlKTGPTUw31n/nWChOjf8pC61Pcq
	wUP1DNQ3ifvyFt0LuZzANLxvWKVxFJ5N/NK2H6Ac3Qg66du7+xxP0tlj1X+g/+m6Si/06QnLkFu
	Us255z54USnmcuXpz0oweQYECZYFFicaa2RSf9b81UEVgIlMpncQyCeZ010rmYBjbNkXUKl4cv3
	VRKBl+f3yp9qfCtcd3QVZU97hRmHqoNI64yCphJ5xiJn6yjDx6zjvIKwfMFdXtaX1TFcwS7j4+c
	IXLVqL6oZ2wz2dzkJsqdWX4L1Gb795Nq0ei/tPCl1fEjn/1+mTJeX6z2PwFEFGx9StJbuVLHz/q
	awRyDXVp9VCLzSZluObgPscrqUw==
X-Google-Smtp-Source: AGHT+IExUcmjRW9ys44E0Ow+n7do0QjobneFeIpWfmuvbFUORLBIv7au4O9u0gb8673tOo+T9doPwA==
X-Received: by 2002:a5d:5f52:0:b0:39c:30f7:a599 with SMTP id ffacd0b85a97d-39eea304084mr1621755f8f.18.1744881677588;
        Thu, 17 Apr 2025 02:21:17 -0700 (PDT)
Message-ID: <731804b3-d363-43cc-a146-f92380425c63@suse.com>
Date: Thu, 17 Apr 2025 11:21:09 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/percpu: NUMA-position the per-CPU area
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250417085302.2554018-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: <20250417085302.2554018-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 17.04.2025 10:53, Andrew Cooper wrote:
> This seems to have been quite an oversite in Xen's NUMA support, albeit it

Nit: oversight?

> probably because NUMA was arch-specific at first.
> 
> Take the opportunity to sort the includes.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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

> For the !NUMA case, cpu_to_node() defaults to 0 rather than NUMA_NO_NODE,
> making memflags nonzero.  I'm not sure how wise this is, but ARM runs seem
> happy with it.

As to Arm: May be worth noting in the commit message that this is unlikely
to have any useful effect when SEPARATE_XENHEAP=y. I guess our only option
to address that (if any Arm32 NUMA systems exist) would be to use vmap().

Jan


From xen-devel-bounces@lists.xenproject.org Thu Apr 17 09:47:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 09:47:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.957278.1350430 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5Lq8-0008Nz-0U; Thu, 17 Apr 2025 09:47:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 957278.1350430; Thu, 17 Apr 2025 09:47: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 1u5Lq7-0008Ns-UB; Thu, 17 Apr 2025 09:47:23 +0000
Received: by outflank-mailman (input) for mailman id 957278;
 Thu, 17 Apr 2025 09:47: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=nsoM=XD=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u5Lq7-0008Nm-GB
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 09:47:23 +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 f30af69b-1b70-11f0-9ffb-bf95429c2676;
 Thu, 17 Apr 2025 11:47:17 +0200 (CEST)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-43ce70f9afbso4916755e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 17 Apr 2025 02:47:17 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 98e67ed59e1d1-30861212fc9sm3204782a91.26.2025.04.17.02.47.12
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 17 Apr 2025 02:47: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: f30af69b-1b70-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744883237; x=1745488037; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=AEcYRdFH8NYvu8BJb8HAvA6pzBIMSPi1WtfzutwpNA8=;
        b=CaZawYgD+1fmTHOZa7UtnA8vkAYTuJt+HIVrAVyXD7+mWul3OP6NjhfjZY6Ob1eFMQ
         uejHk7dalLdm82iRTsrFPlTbl5aZloyZgDdwjyNCseMv6CFi2/OONt29GKExFa8bvgVY
         8xIsM1t7PVaT05H6i9y3yVXQSd796al8iQQbPA1H/p4TtDdPwmmWb9Pzf9O3knPBrvV/
         NdSCrFpBo5WI8tNmYl93Iwwf9A258rzNKv+9DUhFzjgxRCLVipsA8I/9ir/CVoovmV/O
         0ksnE0txZcnEpf8xdco+CfmBhfPDMlVN1HFbKsc7vGekyQxq5MbAQblE7Q4W0vF80Vg7
         V7FA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744883237; x=1745488037;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=AEcYRdFH8NYvu8BJb8HAvA6pzBIMSPi1WtfzutwpNA8=;
        b=soHn8ew1/QD5VLFzrb4CFgZ+etSMU1AddI4e3Y68EmkvJPZuHk5U2BE/ujs/gdW7wJ
         5zunWA2vkNeqJHLxvO9GESmKCw6/UP/ARbr6vXdpCHJ7enU87LO3r9KVIxX/3/nrtBBl
         d/ukamnYcVMSBINyvEyKfbOumVD2+T0jqPkOGZ7I3N4m/biSwsNLRtOI1rSrSIl5uARa
         lSByJBmrlQv/sDQ7tUf+GoRKoNi2OuZq9+CXmLd8FiWDa4ONdccqBwrzXJPPaQjbd2Co
         q7kHKu6qbUKKOqA9yaQWIB9koGwDG+vFArdO0fDtcdWEWGQgSYFRXwxmRy0fDxDfbo1w
         tJkg==
X-Forwarded-Encrypted: i=1; AJvYcCVt74cK6u8VP8Xnuy+viwsxKDfexGb9uSnLyst60nwbHD2Vk0kYeoKNsa1wO7llbK90efEO2+EQ7qE=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy954liIW4nTxqdklgiM4nFVfpSV5H2xkxStdTtrHooed65P+8m
	cPXysKX8D7hAObRnohuTxWtNFDpCZQZp/6n2l36/+AFt+3LU+64cnCdjOBUDCQ==
X-Gm-Gg: ASbGnctW7xBzt6VTykE2x+1/0JLT8uSvvWjMJs+FLt+Gt2X8jEmawUkixhyXOE/EfEo
	9mBQVVkbtv1JdEvaiR4T5qhHj9YrnqBjmeXDJgx/FuY9Ksyta5CXjw9CPr+ibknlqUWLNs6vVU2
	KZ8nmF8I+8JboLeTvcZSR/faaFRXdf9yRKBtBmwPeoV2tRy08iXRAIWDX40EVOurqk60U7/rLKa
	ofBEAqMqCQ/QV0AYEAqbD+xfHsz9nyRymhbuFXlLLXc24gP7b1W871TwBVqjNrnP09IJ6+PONTs
	HjCnGm4CpQIkgVyQpxIX1CNlQ5jYnsHIco3BR14ADaG1X0fyk57WJ+s5FiRIZKcCjNguhBL4nMu
	vlqsApg47//CU8qTGfVAz7VmFAn9eD3LvKhGo
X-Google-Smtp-Source: AGHT+IGOqo45sMG5IOvHDIhNCqs8pxfCR9oVtiULG61Z7T3VnMpR7BRRgpl7ib+S0oJAAQQa8eS1Mw==
X-Received: by 2002:a5d:5c84:0:b0:39e:cbc7:ad45 with SMTP id ffacd0b85a97d-39ee5bafc92mr3844345f8f.52.1744883237016;
        Thu, 17 Apr 2025 02:47:17 -0700 (PDT)
Message-ID: <7c5c1e59-248f-4b62-9e15-fdb692fd1c7c@suse.com>
Date: Thu, 17 Apr 2025 11:47:07 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3] xen/domain: unify domain ID allocation
To: dmkhn@proton.me
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, julien@xen.org,
 michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org,
 dmukhin@ford.com, xen-devel@lists.xenproject.org
References: <20250416061509.934220-1-dmukhin@ford.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20250416061509.934220-1-dmukhin@ford.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 16.04.2025 08:15, dmkhn@proton.me wrote:
> From: Denis Mukhin <dmukhin@ford.com>
> 
> Unify the logic of domain ID allocation, so that both the initial domain
> creation and the usage by domctl use the same helper function across
> architectures (Arm and x86).
> 
> Wrap the domain ID allocation as an arch-independent function domid_alloc() in
> common/domain.c.
> 
> Allocation algorithm:
> - If an explicit domain ID is provided, verify its availability and
>   use it if ID is unused;
> - Otherwise, perform an exhaustive search for the first available ID
>   within the [0..DOMID_FIRST_RESERVED) range, excluding hardware_domid.
> 
> Move the is_free_domid() helper closer to domid_alloc(). Simplify
> is_free_domid() by removing the domain ID range check, as the ID is now
> guaranteed to be within the valid range. Additionally, update the predicate to
> return a bool value instead of an int.
> 
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>

Please can you clarify whether this is intended to be no functional change
(as far as one would be able to observe from the outside)? (It isn't, and
when it isn't, the behavioral change needs justifying. Which I fear you
won't be able to, in which case it needs undoing. Not using the first
unused ID is a deliberate property of the present allocation scheme.)

> ---
>  xen/arch/arm/dom0less-build.c | 19 ++++++++-------
>  xen/arch/arm/domain_build.c   | 19 +++++++++++----
>  xen/arch/x86/setup.c          |  8 +++++--
>  xen/common/domain.c           | 45 +++++++++++++++++++++++++++++++++++
>  xen/common/domctl.c           | 45 ++++-------------------------------
>  xen/include/xen/domain.h      |  2 ++
>  6 files changed, 81 insertions(+), 57 deletions(-)

This suggests it's not clearly an improvement. And I'm heavily inclined
to ask (also considering the above) that this simply be dropped.

> --- a/xen/arch/arm/domain_build.c
> +++ b/xen/arch/arm/domain_build.c
> @@ -2370,6 +2370,7 @@ void __init create_dom0(void)
>          .grant_opts = XEN_DOMCTL_GRANT_version(opt_gnttab_max_version),
>      };
>      unsigned int flags = CDF_privileged;
> +    domid_t domid;
>      int rc;
>  
>      /* The vGIC for DOM0 is exactly emulating the hardware GIC */
> @@ -2394,19 +2395,27 @@ void __init create_dom0(void)
>      if ( !llc_coloring_enabled )
>          flags |= CDF_directmap;
>  
> -    dom0 = domain_create(0, &dom0_cfg, flags);
> +    rc = domid_alloc(get_initial_domain_id());
> +    if ( rc < 0 )
> +        panic("Error allocating domain ID %d (rc = %d)\n",
> +              get_initial_domain_id(), rc);
> +    domid = rc;
> +
> +    dom0 = domain_create(domid, &dom0_cfg, flags);
>      if ( IS_ERR(dom0) )
> -        panic("Error creating domain 0 (rc = %ld)\n", PTR_ERR(dom0));
> +        panic("Error creating domain %d (rc = %ld)\n", domid, PTR_ERR(dom0));

Up to here using domid is okay. However, ...

>      if ( llc_coloring_enabled && (rc = dom0_set_llc_colors(dom0)) )
> -        panic("Error initializing LLC coloring for domain 0 (rc = %d)\n", rc);
> +        panic("Error initializing LLC coloring for domain %d (rc = %d)\n",
> +              domid, rc);
>  
>      if ( alloc_dom0_vcpu0(dom0) == NULL )
> -        panic("Error creating domain 0 vcpu0\n");
> +        panic("Error creating domain %d vcpu0\n", domid);
>  
>      rc = construct_dom0(dom0);
>      if ( rc )
> -        panic("Could not set up DOM0 guest OS (rc = %d)\n", rc);
> +        panic("Could not set up guest OS for domain %d (rc = %d)\n",
> +              domid, rc);
>  }

... these all would better use %pd, when already being touched.

While touching all of these I think you also want to aim at making output
match that %pd or %pv would result in, if they were usable at those places.

> --- a/xen/arch/x86/setup.c
> +++ b/xen/arch/x86/setup.c
> @@ -1009,8 +1009,12 @@ static struct domain *__init create_dom0(struct boot_info *bi)
>      if ( iommu_enabled )
>          dom0_cfg.flags |= XEN_DOMCTL_CDF_iommu;
>  
> -    /* Create initial domain.  Not d0 for pvshim. */
> -    bd->domid = get_initial_domain_id();
> +    /* Allocate initial domain ID. Not d0 for pvshim. */
> +    bd->domid = domid_alloc(get_initial_domain_id());

You're clipping the int return value to domid_t here, and thus ...

> +    if ( bd->domid < 0 )

... this condition will be always false. I'm surprised the compiler didn't
flag this for you.

> --- a/xen/common/domain.c
> +++ b/xen/common/domain.c
> @@ -66,6 +66,51 @@ DEFINE_RCU_READ_LOCK(domlist_read_lock);
>  static struct domain *domain_hash[DOMAIN_HASH_SIZE];
>  struct domain *domain_list;
>  
> +static inline bool is_free_domid(domid_t dom)
> +{
> +    struct domain *d = rcu_lock_domain_by_id(dom);
> +
> +    if ( d )
> +        rcu_unlock_domain(d);
> +
> +    return !d;
> +}
> +
> +/*
> + * Allocate new domain ID based on the hint.
> + *
> + * If hint is outside of valid [0..DOMID_FIRST_RESERVED] range of IDs,

That's [0, DOMID_FIRST_RESERVED), to be unambiguous. In C array initializer
notation it would be [0 ... DOMID_FIRST_RESERVED - 1].

> + * perform an exhaustive search of the first free domain ID excluding
> + * hardware_domid.
> + */
> +int domid_alloc(int hint)

I would have thought that I did comment already on the parameter being plain
int.

> +{
> +    domid_t domid;
> +
> +    if ( hint >= 0 && hint < DOMID_FIRST_RESERVED )
> +    {
> +        if ( !is_free_domid(hint) )
> +            return -EEXIST;
> +
> +        domid = hint;
> +    }
> +    else
> +    {
> +        for ( domid = 0; domid < DOMID_FIRST_RESERVED; domid++ )
> +        {
> +            if ( domid == hardware_domid )
> +                continue;
> +            if ( is_free_domid(domid) )
> +                break;
> +        }
> +
> +        if ( domid == DOMID_FIRST_RESERVED )
> +            return -ENOMEM;

There's no memory allocation here, so why ENOMEM? ENOSPC may already be slightly
better.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Apr 17 10:06:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 10:06:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.957292.1350441 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5M8n-0003i5-Ho; Thu, 17 Apr 2025 10:06:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 957292.1350441; Thu, 17 Apr 2025 10:06: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 1u5M8n-0003hy-Ek; Thu, 17 Apr 2025 10:06:41 +0000
Received: by outflank-mailman (input) for mailman id 957292;
 Thu, 17 Apr 2025 10: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=s05F=XD=nppct.ru=sdl@srs-se1.protection.inumbo.net>)
 id 1u5M8l-0003hs-6o
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 10:06:40 +0000
Received: from mail.nppct.ru (mail.nppct.ru [195.133.245.4])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a53bf121-1b73-11f0-9ffb-bf95429c2676;
 Thu, 17 Apr 2025 12:06:36 +0200 (CEST)
Received: from mail.nppct.ru (localhost [127.0.0.1])
 by mail.nppct.ru (Postfix) with ESMTP id B1D331C0E85
 for <xen-devel@lists.xenproject.org>; Thu, 17 Apr 2025 13:06:28 +0300 (MSK)
Received: from mail.nppct.ru ([127.0.0.1])
 by mail.nppct.ru (mail.nppct.ru [127.0.0.1]) (amavisd-new, port 10026)
 with ESMTP id QL2QoR6GtQbS for <xen-devel@lists.xenproject.org>;
 Thu, 17 Apr 2025 13:06:20 +0300 (MSK)
Received: from [172.16.0.185] (unknown [176.59.174.214])
 by mail.nppct.ru (Postfix) with ESMTPSA id E7C761C0B18;
 Thu, 17 Apr 2025 13:06:15 +0300 (MSK)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a53bf121-1b73-11f0-9ffb-bf95429c2676
Authentication-Results: mail.nppct.ru (amavisd-new); dkim=pass (1024-bit key)
	reason="pass (just generated, assumed good)" header.d=nppct.ru
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=nppct.ru; h=
	in-reply-to:from:from:content-language:references:to:subject
	:subject:user-agent:mime-version:date:date:message-id
	:content-type:content-type; s=dkim; t=1744884380; x=1745748381;
	 bh=Qwhi2s63HsxRtHICbBpWGt5b2QqGDsQZCyOZuPfERcs=; b=aF1PMShgR4s2
	rIdnPPryN3jLcI2o7KDlTCVNW6frRFDm06VKAdeq0FvKgdSD32R90XC1ZDZRpRLq
	E+TtslvjJSCsJUEKG+BfMzm6czCCPrOvoTShDhXkHJMntAZg36KmTWkzdwQ35qOv
	fYA5A5Y+qzGd5VB66Hl7i9kOXzRqjas=
X-Virus-Scanned: Debian amavisd-new at mail.nppct.ru
Content-Type: multipart/alternative;
 boundary="------------bqF0MSv5WJ0c3whaFFPtK5rv"
Message-ID: <8264519a-d58a-486e-b3c5-dba400658513@nppct.ru>
Date: Thu, 17 Apr 2025 13:06:14 +0300
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen-netfront: handle NULL returned by
 xdp_convert_buff_to_frame()
To: Juergen Gross <jgross@suse.com>, Jakub Kicinski <kuba@kernel.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 "David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>,
 Paolo Abeni <pabeni@redhat.com>, Alexei Starovoitov <ast@kernel.org>,
 Daniel Borkmann <daniel@iogearbox.net>,
 Jesper Dangaard Brouer <hawk@kernel.org>,
 John Fastabend <john.fastabend@gmail.com>, xen-devel@lists.xenproject.org,
 netdev@vger.kernel.org, linux-kernel@vger.kernel.org, bpf@vger.kernel.org,
 lvc-project@linuxtesting.org, stable@vger.kernel.org
References: <20250414183403.265943-1-sdl@nppct.ru>
 <20250416175835.687a5872@kernel.org>
 <fa91aad9-f8f3-4b27-81b3-4c963e2e64aa@nppct.ru>
 <0c29a3f9-9e22-4e44-892d-431f06555600@suse.com>
 <452bac2e-2840-4db7-bbf4-c41e94d437a8@nppct.ru>
 <ed8dec2a-f507-49be-a6f3-fb8a91bfef01@suse.com>
Content-Language: en-US
From: Alexey <sdl@nppct.ru>
In-Reply-To: <ed8dec2a-f507-49be-a6f3-fb8a91bfef01@suse.com>

This is a multi-part message in MIME format.
--------------bqF0MSv5WJ0c3whaFFPtK5rv
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 17.04.2025 11:51, Juergen Gross wrote:
> On 17.04.25 10:45, Alexey wrote:
>>
>> On 17.04.2025 10:12, Jürgen Groß wrote:
>>> On 17.04.25 09:00, Alexey wrote:
>>>>
>>>> On 17.04.2025 03:58, Jakub Kicinski wrote:
>>>>> On Mon, 14 Apr 2025 18:34:01 +0000 Alexey Nepomnyashih wrote:
>>>>>>           get_page(pdata);
>>>>> Please notice this get_page() here.
>>>>>
>>>>>>           xdpf = xdp_convert_buff_to_frame(xdp);
>>>>>> +        if (unlikely(!xdpf)) {
>>>>>> + trace_xdp_exception(queue->info->netdev, prog, act);
>>>>>> +            break;
>>>>>> +        }
>>>> Do you mean that it would be better to move the get_page(pdata) 
>>>> call lower,
>>>> after checking for NULL in xdpf, so that the reference count is 
>>>> only increased
>>>> after a successful conversion?
>>>
>>> I think the error handling here is generally broken (or at least very
>>> questionable).
>>>
>>> I suspect that in case of at least some errors the get_page() is 
>>> leaking
>>> even without this new patch.
>>>
>>> In case I'm wrong a comment reasoning why there is no leak should be
>>> added.
>>>
>>>
>>> Juergen
>>
>> I think pdata is freed in xdp_return_frame_rx_napi() -> __xdp_return()
>
> Agreed. But what if xennet_xdp_xmit() returns an error < 0?
>
> In this case xdp_return_frame_rx_napi() won't be called.
>
>
> Juergen

Agreed. There is no explicit freed pdata in the calling function
xennet_get_responses(). Without this, the page referenced by pdata
could be leaked.

I suggest:

case XDP_TX: -get_page(pdata); xdpf = xdp_convert_buff_to_frame(xdp); 
+if (unlikely(!xdpf)) { +trace_xdp_exception(queue->info->netdev, prog, 
act); +break; +} +get_page(pdata); err = 
xennet_xdp_xmit(queue->info->netdev, 1, &xdpf, 0); if (unlikely(!err)) 
xdp_return_frame_rx_napi(xdpf); -else if (unlikely(err < 0)) +else if 
(unlikely(err < 0)) { trace_xdp_exception(queue->info->netdev, prog, 
act); +xdp_return_frame_rx_napi(xdpf); +} break; case XDP_REDIRECT: 
get_page(pdata); err = xdp_do_redirect(queue->info->netdev, xdp, prog); 
*need_xdp_flush = true; -if (unlikely(err)) +if (unlikely(err)) { 
trace_xdp_exception(queue->info->netdev, prog, act); 
+__xdp_return(page_address(pdata), &xdp->mem, true, xdp); +} break;

--------------bqF0MSv5WJ0c3whaFFPtK5rv
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 17.04.2025 11:51, Juergen Gross
      wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:ed8dec2a-f507-49be-a6f3-fb8a91bfef01@suse.com">On
      17.04.25 10:45, Alexey wrote:
      <br>
      <blockquote type="cite">
        <br>
        On 17.04.2025 10:12, Jürgen Groß wrote:
        <br>
        <blockquote type="cite">On 17.04.25 09:00, Alexey wrote:
          <br>
          <blockquote type="cite">
            <br>
            On 17.04.2025 03:58, Jakub Kicinski wrote:
            <br>
            <blockquote type="cite">On Mon, 14 Apr 2025 18:34:01 +0000
              Alexey Nepomnyashih wrote:
              <br>
              <blockquote type="cite">          get_page(pdata);
                <br>
              </blockquote>
              Please notice this get_page() here.
              <br>
              <br>
              <blockquote type="cite">          xdpf =
                xdp_convert_buff_to_frame(xdp);
                <br>
                +        if (unlikely(!xdpf)) {
                <br>
                +           
                trace_xdp_exception(queue-&gt;info-&gt;netdev, prog,
                act);
                <br>
                +            break;
                <br>
                +        }
                <br>
              </blockquote>
            </blockquote>
            Do you mean that it would be better to move the
            get_page(pdata) call lower,
            <br>
            after checking for NULL in xdpf, so that the reference count
            is only increased
            <br>
            after a successful conversion?
            <br>
          </blockquote>
          <br>
          I think the error handling here is generally broken (or at
          least very
          <br>
          questionable).
          <br>
          <br>
          I suspect that in case of at least some errors the get_page()
          is leaking
          <br>
          even without this new patch.
          <br>
          <br>
          In case I'm wrong a comment reasoning why there is no leak
          should be
          <br>
          added.
          <br>
          <br>
          <br>
          Juergen
          <br>
        </blockquote>
        <br>
        I think pdata is freed in xdp_return_frame_rx_napi() -&gt;
        __xdp_return()
        <br>
      </blockquote>
      <br>
      Agreed. But what if xennet_xdp_xmit() returns an error &lt; 0?
      <br>
      <br>
      In this case xdp_return_frame_rx_napi() won't be called.
      <br>
      <br>
      <br>
      Juergen
      <br>
    </blockquote>
    <p>Agreed. There is no explicit freed pdata in the calling function<br>
      xennet_get_responses(). Without this, the page referenced by pdata<br>
      could be leaked.</p>
    <p>I suggest:</p>
    <pre><span class="token unchanged"><span
    class="token prefix unchanged"> </span><span class="token line">	case XDP_TX:
</span></span><span class="token deleted-sign deleted"><span
    class="token prefix deleted">-</span><span class="token line">		get_page(pdata);
</span></span><span class="token unchanged"><span
    class="token prefix unchanged"> </span><span class="token line">		xdpf = xdp_convert_buff_to_frame(xdp);
</span></span><span class="token inserted-sign inserted"><span
    class="token prefix inserted">+</span><span class="token line">		if (unlikely(!xdpf)) {
</span><span class="token prefix inserted">+</span><span
    class="token line">			trace_xdp_exception(queue-&gt;info-&gt;netdev, prog, act);
</span><span class="token prefix inserted">+</span><span
    class="token line">			break;
</span><span class="token prefix inserted">+</span><span
    class="token line">		}
</span><span class="token prefix inserted">+</span><span
    class="token line">		get_page(pdata);
</span></span><span class="token unchanged"><span
    class="token prefix unchanged"> </span><span class="token line">		err = xennet_xdp_xmit(queue-&gt;info-&gt;netdev, 1, &amp;xdpf, 0);
</span><span class="token prefix unchanged"> </span><span
    class="token line">		if (unlikely(!err))
</span><span class="token prefix unchanged"> </span><span
    class="token line">			xdp_return_frame_rx_napi(xdpf);
</span></span><span class="token deleted-sign deleted"><span
    class="token prefix deleted">-</span><span class="token line">		else if (unlikely(err &lt; 0))
</span></span><span class="token inserted-sign inserted"><span
    class="token prefix inserted">+</span><span class="token line">		else if (unlikely(err &lt; 0)) {
</span></span><span class="token unchanged"><span
    class="token prefix unchanged"> </span><span class="token line">			trace_xdp_exception(queue-&gt;info-&gt;netdev, prog, act);
</span></span><span class="token inserted-sign inserted"><span
    class="token prefix inserted">+</span><span class="token line">			xdp_return_frame_rx_napi(xdpf);
</span><span class="token prefix inserted">+</span><span
    class="token line">		}
</span></span><span class="token unchanged"><span
    class="token prefix unchanged"> </span><span class="token line">		break;
</span><span class="token prefix unchanged"> </span><span
    class="token line">	case XDP_REDIRECT:
</span><span class="token prefix unchanged"> </span><span
    class="token line">		get_page(pdata);
</span><span class="token prefix unchanged"> </span><span
    class="token line">		err = xdp_do_redirect(queue-&gt;info-&gt;netdev, xdp, prog);
</span><span class="token prefix unchanged"> </span><span
    class="token line">		*need_xdp_flush = true;
</span></span><span class="token deleted-sign deleted"><span
    class="token prefix deleted">-</span><span class="token line">		if (unlikely(err))
</span></span><span class="token inserted-sign inserted"><span
    class="token prefix inserted">+</span><span class="token line">		if (unlikely(err)) {
</span></span><span class="token unchanged"><span
    class="token prefix unchanged"> </span><span class="token line">			trace_xdp_exception(queue-&gt;info-&gt;netdev, prog, act);
</span></span><span class="token inserted-sign inserted"><span
    class="token prefix inserted">+</span><span class="token line">			__xdp_return(page_address(pdata), &amp;xdp-&gt;mem, true, xdp);
</span><span class="token prefix inserted">+</span><span
    class="token line">		}
</span></span><span class="token unchanged"><span
    class="token prefix unchanged"> </span><span class="token line">		break;</span></span></pre>
  </body>
</html>

--------------bqF0MSv5WJ0c3whaFFPtK5rv--


From xen-devel-bounces@lists.xenproject.org Thu Apr 17 10:10:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 10:10:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.957307.1350450 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5MCZ-0005Ix-2k; Thu, 17 Apr 2025 10:10:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 957307.1350450; Thu, 17 Apr 2025 10: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 1u5MCZ-0005Iq-05; Thu, 17 Apr 2025 10:10:35 +0000
Received: by outflank-mailman (input) for mailman id 957307;
 Thu, 17 Apr 2025 10:10: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=uBz4=XD=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1u5MCX-0005Fz-RI
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 10:10:33 +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 321c4956-1b74-11f0-9ffb-bf95429c2676;
 Thu, 17 Apr 2025 12:10:32 +0200 (CEST)
Received: by mail-ed1-x52f.google.com with SMTP id
 4fb4d7f45d1cf-5e5c7d6b96fso1104027a12.3
 for <xen-devel@lists.xenproject.org>; Thu, 17 Apr 2025 03:10:31 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-64-225.play-internet.pl.
 [109.243.64.225]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-acb6637ec65sm34573866b.133.2025.04.17.03.10.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 17 Apr 2025 03:10: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: 321c4956-1b74-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1744884631; x=1745489431; darn=lists.xenproject.org;
        h=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=S+dLwzmxddVil/jrz8ZJf2ZSgXa2xg2o2YFYg6qTylA=;
        b=jStL4ZBwH3yG3Cx1BJJSOjqaWFYg1AnNE7VpnX0EsCSpofRf46zwDPUK2GczgVWFY9
         /r8X2rsuekEzDAkqe/ar+pIUoDIdAjn7kEdh7mQ6pakxQprFgQeZ3aoZXyfzPdciC7Ju
         YoBEWcc6luv0scB8qI5BopN21Ozj6qn12Lks/92+EZAFKTkzYuAFCuT+D4goLyBnse1u
         RXVx6lMN9Y/F4sga7GXkjXecQIs1dhb9VFk6niymrO+pM8I2mVNs1DXRs4t4FDSaJ8OU
         o3siv3OslGHKRFjqe3wcCUeXvtLg0ZpNdSk/5GUmkKpjhASE2tlWn3faWotPrIsCpvGU
         GWTg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744884631; x=1745489431;
        h=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=S+dLwzmxddVil/jrz8ZJf2ZSgXa2xg2o2YFYg6qTylA=;
        b=W+5kQnACvdT8N+BZufzDiAcmQXPphQtbM4+z1S1lWDOv695NGCuXhEZoPAz5Y/RZP4
         U1e09Bnr9svm+rM0/wd3GAKG1U4464dxDO1hTewm9K038eBhtpL3kKPR/uPPAUad7MKA
         UMkbxn2zwSWbxaR1DAK2H4DplrKk2UtZ42vJ0wi5jz7PN8yUtC9o5unq2Svc4WmOuh2a
         oO36QGkYDFgETzDiXgmrVdGrm3nu5YegZL2UmUYT3RpQ0j22JkbNlH+O+Vs2K+LVVivk
         NWN8a+opM0TTohoVNNmIG+KPaD+M3v9ozXBQW1W1SZcS1+00b8W41Dl/LfMSnEeXydhZ
         cDqg==
X-Forwarded-Encrypted: i=1; AJvYcCXN1B+pUshkznQVDZa+q32+D3PhaIfkunyYobqEugf4OwOkZYcWNcBXm9bITuyKfgLyG3B9gh1euJw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzvDUP3Ggr3bYzcZdwdmSrQUE28wx0U9S1ezfxESqoBQn9e0sVp
	+2wdUpVJH1NFOIc/Eux5n3MuAAHymHYSAi9iuUA/z2SKolZgl7tF
X-Gm-Gg: ASbGnctFKZLrgYQWQGphrTTkuvI0MOgcZofHNwYVdnzv2eM/BK57xRh/ynoHbkMUaZb
	cEjY32ctZ57lEJbpFQWmu+veqEMHx1VsE0//6d7dpkwuFaLsEIIQ6zwXWyK6uRocT+LjapDpBi9
	kUgP5czNvZ2ujtEwdZ8Qq3ofhzzQUg6jHadrgorqBtagI0NQZRU7zzAkYzArXaw9fVMZQx8NOfV
	vhsZOK9kPPOVM7l+REn1FS/l9Eh/wSWMH0kLATOEODGTw88zBN3iHrUMDVPUBnRqpD+ojPkxiPX
	orOD3PO82qfHiKcbVdwPwxo/mHTgVCPdjCBnrLi6zFXdlibN6Ic+ZqL2XBa2jdn5R2aj0UOxD3q
	eJiWziXMsBLHU9YHq
X-Google-Smtp-Source: AGHT+IGuWAsZa3TquW0AFtPGlbwBeVZiFuZljf+6cPzlWHv1YkMHeVDXqElBdpLeZD9PtltfX4Hgzg==
X-Received: by 2002:a17:907:7f0d:b0:ac7:3595:56df with SMTP id a640c23a62f3a-acb42b2d4d4mr439040366b.47.1744884631024;
        Thu, 17 Apr 2025 03:10:31 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------cD033S6Vg7CTJ4h8fI9uEp2t"
Message-ID: <7b1f5d89-2be9-450f-a4db-381df42942e6@gmail.com>
Date: Thu, 17 Apr 2025 12:10:29 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 12/14] xen/riscv: implement setup_irq()
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Romain Caritey <Romain.Caritey@microchip.com>, xen-devel@lists.xenproject.org
References: <cover.1744126720.git.oleksii.kurochko@gmail.com>
 <2bc37c3996978129a5b2c888917307ea32448651.1744126720.git.oleksii.kurochko@gmail.com>
 <47492663-5832-49e7-af4d-ee536206e641@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <47492663-5832-49e7-af4d-ee536206e641@suse.com>

This is a multi-part message in MIME format.
--------------cD033S6Vg7CTJ4h8fI9uEp2t
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 4/15/25 5:55 PM, Jan Beulich wrote
>> +#ifdef CONFIG_IRQ_HAS_MULTIPLE_ACTION
>> +    new->next = desc->action;
>> +    smp_mb();
>> +#endif
>> +
>> +    desc->action = new;
>> +    smp_mb();
> Aren't smp_wmb() sufficient on both places? If not, I think comments
> want adding.

smp_wmb() will be sufficient but I think the barrier could be dropped at all
as __setup_irq() is called only in setup_irq() and __setup_irq() call is wrapped
by spinlock_{un}lock_irqsave() where spinlock_unlock_*() will put barrier.

>
>> +    return 0;
>> +}
>> +
>> +void irq_set_affinity(struct irq_desc *desc, const cpumask_t *cpu_mask)
>> +{
>> +    if ( desc != NULL )
> Can desc really be NULL here?

It can't as irq_desc[] isn't dynamically allocated.

>   Isn't desc->lock required to be held?

It is and it is called in setup_irq() which calls spin_lock_irqsave().
Anyway, I think it could be dropped at all and use 'desc->handler->set_affinity(desc, cpu_mask);'
explicitly in setup_irq().

>> +    spin_lock_irqsave(&desc->lock, flags);
>> +
>> +    disabled = (desc->action == NULL);
>> +
>> +    if ( test_bit(_IRQ_GUEST, &desc->status) )
>> +    {
>> +        spin_unlock_irqrestore(&desc->lock, flags);
>> +        /*
>> +         * TODO: would be nice to have functionality to print which domain owns
>> +         *       an IRQ.
>> +         */
>> +        printk(XENLOG_ERR "ERROR: IRQ %u is already in use by a domain\n", irq);
>> +        return -EBUSY;
>> +    }
>> +
>> +    rc = __setup_irq(desc, irqflags, new);
>> +    if ( rc )
>> +        goto err;
>> +
>> +    /* First time the IRQ is setup */
>> +    if ( disabled )
>> +    {
>> +        /* disable irq by default */
>> +        set_bit(_IRQ_DISABLED, &desc->status);
> Shouldn't this be set when we make it here?

It should be. I'll drop the setting of _IRQ_DISABLED.

>
>> +        /* route interrupt to xen */
>> +        intc_route_irq_to_xen(desc, IRQ_NO_PRIORITY);
>> +
>> +        /*
>> +         * we don't care for now which CPU will receive the
>> +         * interrupt
>> +         *
>> +         * TODO: Handle case where IRQ is setup on different CPU than
>> +         * the targeted CPU and the priority.
>> +         */
>> +        irq_set_affinity(desc, cpumask_of(smp_processor_id()));
>> +        desc->handler->startup(desc);
>> +        /* enable irq */
>> +        clear_bit(_IRQ_DISABLED, &desc->status);
> Now it turns out this is really done twice: Once in aplic_irq_enable(),
> and once here.

Agree, this is a job of *_startup()->*_aplic_irq_enable(). I'll drop that too.

~ Oleksii


--------------cD033S6Vg7CTJ4h8fI9uEp2t
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 4/15/25 5:55 PM, Jan Beulich wrote</div>
    <blockquote type="cite"
      cite="mid:47492663-5832-49e7-af4d-ee536206e641@suse.com">
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+#ifdef CONFIG_IRQ_HAS_MULTIPLE_ACTION
+    new-&gt;next = desc-&gt;action;
+    smp_mb();
+#endif
+
+    desc-&gt;action = new;
+    smp_mb();
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Aren't smp_wmb() sufficient on both places? If not, I think comments
want adding.</pre>
    </blockquote>
    <pre>smp_wmb() will be sufficient but I think the barrier could be dropped at all
as __setup_irq() is called only in setup_irq() and __setup_irq() call is wrapped
by spinlock_{un}lock_irqsave() where spinlock_unlock_*() will put barrier.

</pre>
    <blockquote type="cite"
      cite="mid:47492663-5832-49e7-af4d-ee536206e641@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+    return 0;
+}
+
+void irq_set_affinity(struct irq_desc *desc, const cpumask_t *cpu_mask)
+{
+    if ( desc != NULL )
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Can desc really be NULL here?</pre>
    </blockquote>
    <pre>It can't as irq_desc[] isn't dynamically allocated.

</pre>
    <blockquote type="cite"
      cite="mid:47492663-5832-49e7-af4d-ee536206e641@suse.com">
      <pre wrap="" class="moz-quote-pre"> Isn't desc-&gt;lock required to be held?</pre>
    </blockquote>
    <pre>It is and it is called in setup_irq() which calls spin_lock_irqsave().
Anyway, I think it could be dropped at all and use 'desc-&gt;handler-&gt;set_affinity(desc, cpu_mask);'
explicitly in setup_irq().
</pre>
    <blockquote type="cite"
      cite="mid:47492663-5832-49e7-af4d-ee536206e641@suse.com">
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+    spin_lock_irqsave(&amp;desc-&gt;lock, flags);
+
+    disabled = (desc-&gt;action == NULL);
+
+    if ( test_bit(_IRQ_GUEST, &amp;desc-&gt;status) )
+    {
+        spin_unlock_irqrestore(&amp;desc-&gt;lock, flags);
+        /*
+         * TODO: would be nice to have functionality to print which domain owns
+         *       an IRQ.
+         */
+        printk(XENLOG_ERR "ERROR: IRQ %u is already in use by a domain\n", irq);
+        return -EBUSY;
+    }
+
+    rc = __setup_irq(desc, irqflags, new);
+    if ( rc )
+        goto err;
+
+    /* First time the IRQ is setup */
+    if ( disabled )
+    {
+        /* disable irq by default */
+        set_bit(_IRQ_DISABLED, &amp;desc-&gt;status);
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Shouldn't this be set when we make it here?</pre>
    </blockquote>
    <pre>It should be. I'll drop the setting of _IRQ_DISABLED.</pre>
    <blockquote type="cite"
      cite="mid:47492663-5832-49e7-af4d-ee536206e641@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+        /* route interrupt to xen */
+        intc_route_irq_to_xen(desc, IRQ_NO_PRIORITY);
+
+        /*
+         * we don't care for now which CPU will receive the
+         * interrupt
+         *
+         * TODO: Handle case where IRQ is setup on different CPU than
+         * the targeted CPU and the priority.
+         */
+        irq_set_affinity(desc, cpumask_of(smp_processor_id()));
+        desc-&gt;handler-&gt;startup(desc);
+        /* enable irq */
+        clear_bit(_IRQ_DISABLED, &amp;desc-&gt;status);
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Now it turns out this is really done twice: Once in aplic_irq_enable(),
and once here.</pre>
    </blockquote>
    <pre>Agree, this is a job of *_startup()-&gt;*_aplic_irq_enable(). I'll drop that too.

~ Oleksii
</pre>
    <p><br>
    </p>
  </body>
</html>

--------------cD033S6Vg7CTJ4h8fI9uEp2t--


From xen-devel-bounces@lists.xenproject.org Thu Apr 17 10:12:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 10:12:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.957318.1350460 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5MDz-0006HK-CQ; Thu, 17 Apr 2025 10:12:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 957318.1350460; Thu, 17 Apr 2025 10:12:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5MDz-0006HD-9y; Thu, 17 Apr 2025 10:12:03 +0000
Received: by outflank-mailman (input) for mailman id 957318;
 Thu, 17 Apr 2025 10: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=uBz4=XD=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1u5MDy-0006H5-87
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 10:12:02 +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 67525381-1b74-11f0-9eb0-5ba50f476ded;
 Thu, 17 Apr 2025 12:12:01 +0200 (CEST)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-abbd96bef64so98384366b.3
 for <xen-devel@lists.xenproject.org>; Thu, 17 Apr 2025 03:12:01 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-64-225.play-internet.pl.
 [109.243.64.225]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-acb3d128cedsm262826166b.123.2025.04.17.03.11.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 17 Apr 2025 03:12: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: 67525381-1b74-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1744884721; x=1745489521; darn=lists.xenproject.org;
        h=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=Ai3wsBVVZRiOatKoqkD7LHE+athJzCL4+d1xenPHLJQ=;
        b=K3XsiOcrrbmszIK5+UqrtwRDgz3DmPueZNgMnaiLKlCUUkws6/yTgqm/jpttkemrpu
         5dZieoT7Lx0dPjlcesVVH8bPmZdpBQJgILM/VE/R4XOkNCQrs+4gsfIG1GInWDBh8T0O
         T8FtgFbh4w3aezHZctDkE8KZB3gUxM2/6Yj1LbbEyaa3lfZ3EXPaEx47+6enYQDYE6uc
         LmWne+coMP/YvVcI7IQUF1vK/OkqQRaU0qp1Pkkpq6r1YnpFHzQUB34AvDR4ORMSArdy
         1Rxzsbjy33e7e0wT1VrwS73GltzFzrQpwNIPyNQGbix90jJ/cPrWmlvHeHApfJaq5/XE
         gjuw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744884721; x=1745489521;
        h=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=Ai3wsBVVZRiOatKoqkD7LHE+athJzCL4+d1xenPHLJQ=;
        b=uSSUSesMIwodAjvLEnPqyR+z32Y/fgYVrU0lA3uZdaOkPphYlL1/eX0cXZTjc19k8C
         st3xqoeBfvUhfCrVkceD2M47UR16ocMRwIonlAdA0+261qdTEtFCamxczIRF90R2jUDE
         skDHTsrPSLGjr94hFuBprUxiwM8zmI3FHiLTNtN3C4fwcN67khTl1bnqqq2O5upBSzzp
         hATWFRnuEigcZgksrbDJFCgB5VGJ0JDidrOdONiwpGnGo21eSZJ6/j8kabY4GrUj0ZjG
         tvhfakHzexihRj5D4WO78X8MU1YG76UUK1umSvgCkvmosln3Jk0lAB0+DpvXrNstMz/o
         GxuQ==
X-Forwarded-Encrypted: i=1; AJvYcCX4vE5MzGTDnVWG3BTQMkcGEpqFFHFoQBHqnHf3fIeCw0pCYmEcZBbbo/A5T/Y25uMDsw5Rbupanyc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzZMtFgxfj7wptp9x76z0Mh4Vot7IvBrjTmzNRRwOVaV2R5nkjz
	ueOh9AzKK7btroy6tvvCyiJ+7yvDcKSlojAI2Ix1dBNOhZ9ZJGP2y7+E8Q==
X-Gm-Gg: ASbGncvWd1Z/bU5RPuGbsA/w1fjd+pqkzOZujlD6MwFQbg3oshLkOcTGorpUSpjIS5H
	LEdlke+srYPvoAxuPx0jki4ch+GgRFlCMah1JwgOgPBgXRoMXY4jaJetlFOhVL5v3eyWbNH+xtA
	mF8wjTri9pCbNAe81IBk5iWMDzAeylEJMxRC0Q8Z5tuI4hjM9XzZd+vixfQS+ayq7dD7mDEI/JB
	zsLoxXQqkBuZB29TdBYn79t/vAEd9eJZYQgmsaAqpsjJ91iG1TSGMbhupcGdUuoEEznl7J2RNow
	ieVYVcymCxyJvXfiICRCh/vR2rkjNBuOA6GdqIHx6uURA14HsRCiVxZ+Uxv+72d2q6RV3aBW99M
	4xwIlmiwD6BplkqvU
X-Google-Smtp-Source: AGHT+IFHwjaVhiwMfVLTYDO6aCPOEy3lqYrEngluVifpziAVyDz3QVy5nBPK4pHoQRO45AWjQ+XrPw==
X-Received: by 2002:a17:907:bc90:b0:acb:4cd7:2963 with SMTP id a640c23a62f3a-acb4cd7329cmr347753866b.33.1744884720477;
        Thu, 17 Apr 2025 03:12:00 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------uuLNrlaOPQ8Me7ICZc0Tsul6"
Message-ID: <4851cd30-73a5-4d97-b506-850d67c285d7@gmail.com>
Date: Thu, 17 Apr 2025 12:11:59 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 13/14] xen/riscv: initialize interrupt controller
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1744126720.git.oleksii.kurochko@gmail.com>
 <cb730a1293f14dd7fd58f98f5ecda4e2523b2d90.1744126720.git.oleksii.kurochko@gmail.com>
 <bcffc56a-5518-4bcc-9124-d49a98ae727a@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <bcffc56a-5518-4bcc-9124-d49a98ae727a@suse.com>

This is a multi-part message in MIME format.
--------------uuLNrlaOPQ8Me7ICZc0Tsul6
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 4/15/25 5:59 PM, Jan Beulich wrote:
> On 08.04.2025 17:57, Oleksii Kurochko wrote:
>> Call intc_init() to do basic initialization steps for APLIC and IMISC.
>>
>> Signed-off-by: Oleksii Kurochko<oleksii.kurochko@gmail.com>
> Acked-by: Jan Beulich<jbeulich@suse.com>
> yet ...
>
>> --- a/xen/arch/riscv/setup.c
>> +++ b/xen/arch/riscv/setup.c
>> @@ -136,6 +136,8 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
>>   
>>       intc_preinit();
>>   
>> +    intc_init();
>> +
>>       printk("All set up\n");
>>   
>>       machine_halt();
> ... this being everything here I wonder if this can't be folded with the
> patch where the function is introduced.

Sure, it can be folded. I will do that to reduce patch series.

~ Oleksii

--------------uuLNrlaOPQ8Me7ICZc0Tsul6
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 4/15/25 5:59 PM, Jan Beulich wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:bcffc56a-5518-4bcc-9124-d49a98ae727a@suse.com">
      <pre wrap="" class="moz-quote-pre">On 08.04.2025 17:57, Oleksii Kurochko wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">Call intc_init() to do basic initialization steps for APLIC and IMISC.

Signed-off-by: Oleksii Kurochko <a class="moz-txt-link-rfc2396E" href="mailto:oleksii.kurochko@gmail.com">&lt;oleksii.kurochko@gmail.com&gt;</a>
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Acked-by: Jan Beulich <a class="moz-txt-link-rfc2396E" href="mailto:jbeulich@suse.com">&lt;jbeulich@suse.com&gt;</a>
yet ...

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">--- a/xen/arch/riscv/setup.c
+++ b/xen/arch/riscv/setup.c
@@ -136,6 +136,8 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
 
     intc_preinit();
 
+    intc_init();
+
     printk("All set up\n");
 
     machine_halt();
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
... this being everything here I wonder if this can't be folded with the
patch where the function is introduced.</pre>
    </blockquote>
    <pre>Sure, it can be folded. I will do that to reduce patch series.

~ Oleksii
</pre>
  </body>
</html>

--------------uuLNrlaOPQ8Me7ICZc0Tsul6--


From xen-devel-bounces@lists.xenproject.org Thu Apr 17 10:24:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 10:24:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.957332.1350470 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5MPb-0008Uo-DP; Thu, 17 Apr 2025 10:24:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 957332.1350470; Thu, 17 Apr 2025 10:24: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 1u5MPb-0008Uh-Aq; Thu, 17 Apr 2025 10:24:03 +0000
Received: by outflank-mailman (input) for mailman id 957332;
 Thu, 17 Apr 2025 10:24: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=VG4i=XD=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1u5MPZ-0008Ua-FY
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 10:24: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 1309a0e2-1b76-11f0-9ffb-bf95429c2676;
 Thu, 17 Apr 2025 12:23:58 +0200 (CEST)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-ac2a81e41e3so113267566b.1
 for <xen-devel@lists.xenproject.org>; Thu, 17 Apr 2025 03:23:58 -0700 (PDT)
Received: from ?IPV6:2003:e5:873d:1a00:8e99:ce06:aa4a:2e7b?
 (p200300e5873d1a008e99ce06aa4a2e7b.dip0.t-ipconnect.de.
 [2003:e5:873d:1a00:8e99:ce06:aa4a:2e7b])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-acb63a14c5esm54541566b.19.2025.04.17.03.23.57
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 17 Apr 2025 03:23:57 -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: 1309a0e2-1b76-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744885438; x=1745490238; 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=VOZVNhVxO35FaeFKJPov8ukkJ2SijtrRjbND3uyzMKU=;
        b=Cj1/M8UwP6ewks2Ubbh3nWjKTxGg/6PJed+CyJpTYkuL+1cx1f5+xGQ3hsZd0SF6yz
         Fd1gDpf5n5GJqp7qEr82O27A4TmmLgh74hgt9mxtEjm+tx2Kf8mdLUpYGyQXwxaCJcKQ
         v5bbgV9e6n6A9WgIGhbTP6GiVq9nHlrz42HFXhZFtYZ4KpUT31YweYA82ix1qwdvsEb9
         CTIAM9t4reWqG/B78irILEah2jdn+C8nvO5LdLzYLJQ8N2UVBt3mWzFE7fcuXH71w56b
         gRRihPJAO0vNmpvhVlIpe0ypeMgLbCquMTQe4nWD8tFQKTJSPNKS8Qj2WnlmCc7wrhen
         o9dQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744885438; x=1745490238;
        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=VOZVNhVxO35FaeFKJPov8ukkJ2SijtrRjbND3uyzMKU=;
        b=ckzaQM8igNe/R7GNgUqdc88L1DPuIBm7IfLjTyYdbyz8dQhZP8uUD5Rxoj+LkpxheD
         k2a3DHmekxJFSKhQ/a30lNyi7MJ5oxGZjAIkCBdAA8qu957/zQu3WfSRjrPJKeu8xIeJ
         dPb4eGJHtjWDsbqANCoiTx3Z/PwO6xPl8lxEzh2v1WDKW64YnD3wA7DOKSRyb6AtJxLR
         +hFDppVg7re0/0t9oga+Z1iWGEZEu9XPiI5P0uG1eefFFfVouaiyMl1U7R/yx6utHmgD
         TyBZiZfnZOD6ID/Xllxxq6JpnRyM3xHg6oBmKX23792knR6JmOgW1Hctjf7TvXXfU6eW
         CbPw==
X-Forwarded-Encrypted: i=1; AJvYcCVFHn2F13wgraFXeXgGXhaWZD5yUit3qrbLMq6E4Sh52fQ4iFB0LMb193feiP3VUsNxpV3qj4Vi4jI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxVHE2W+firDmFnMC4zWMcF65FRY8PbwhNcGMurEk1s6T3JYDz2
	aFZpryj1ru1GbXp9yNlWIxvyqpyCft5lJSWRSR/z1jipXzu1gEWo+SUUXogvlns=
X-Gm-Gg: ASbGncuSsIiOsYhKaRQHN7Pbdj+TWUOxYAdnseD1RTH4U9Y1HRzJCKq/G2wfSb2Y3st
	0qYaopo4bcNDoqiczhpDri+miDzF+bqCqjiweQlp+KRRa2JO0aPBTWgRzlq5glw2CbDD0bKDmsl
	wDsM8V65mhCBFQx+oeyfyIsSuHJrlPsGt2EZSq5Uwuroec/J7HUgri4zq6yQ7PvNsTrPXcXwkgV
	XEGXVnAm4Wy7kiKl7ubrkwL+cMk9BlT4ez3VZQJzDcVHBYMQl5+A0z6+UkJX5c+SJvnPafUbNdx
	Yldi625cEssiL4OPQtCZ+ClAvv9CKdIyaDvUbZM8CSjo7qkHj1Xboro9ArLwTYfQfRX9YxSGtVR
	OQphXSBjMY32a2P16JQ5j/BrVJ9BZ9v2koTR8IGRq/LGNzwoQN9EIbRkd3GeZkKcjgw==
X-Google-Smtp-Source: AGHT+IHDrJBjqNzW7VtwUP9YzLXLrQlOBiInCLaKw8WycCQs6BYkHJtdLj1AvTYDg9nF69SHomHayg==
X-Received: by 2002:a17:907:3cc6:b0:ac7:ec90:2ae5 with SMTP id a640c23a62f3a-acb42997607mr533236066b.25.1744885438055;
        Thu, 17 Apr 2025 03:23:58 -0700 (PDT)
Message-ID: <4679ca25-572b-44aa-bc00-cb9dc1c0080c@suse.com>
Date: Thu, 17 Apr 2025 12:23:56 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen-netfront: handle NULL returned by
 xdp_convert_buff_to_frame()
To: Alexey <sdl@nppct.ru>, Jakub Kicinski <kuba@kernel.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 "David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>,
 Paolo Abeni <pabeni@redhat.com>, Alexei Starovoitov <ast@kernel.org>,
 Daniel Borkmann <daniel@iogearbox.net>,
 Jesper Dangaard Brouer <hawk@kernel.org>,
 John Fastabend <john.fastabend@gmail.com>, xen-devel@lists.xenproject.org,
 netdev@vger.kernel.org, linux-kernel@vger.kernel.org, bpf@vger.kernel.org,
 lvc-project@linuxtesting.org, stable@vger.kernel.org
References: <20250414183403.265943-1-sdl@nppct.ru>
 <20250416175835.687a5872@kernel.org>
 <fa91aad9-f8f3-4b27-81b3-4c963e2e64aa@nppct.ru>
 <0c29a3f9-9e22-4e44-892d-431f06555600@suse.com>
 <452bac2e-2840-4db7-bbf4-c41e94d437a8@nppct.ru>
 <ed8dec2a-f507-49be-a6f3-fb8a91bfef01@suse.com>
 <8264519a-d58a-486e-b3c5-dba400658513@nppct.ru>
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: <8264519a-d58a-486e-b3c5-dba400658513@nppct.ru>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------80XappD84HqnFoIoZ4BtBZ6n"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------80XappD84HqnFoIoZ4BtBZ6n
Content-Type: multipart/mixed; boundary="------------nhTMLOtnttMTIlWDi7qUzJUH";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Alexey <sdl@nppct.ru>, Jakub Kicinski <kuba@kernel.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 "David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>,
 Paolo Abeni <pabeni@redhat.com>, Alexei Starovoitov <ast@kernel.org>,
 Daniel Borkmann <daniel@iogearbox.net>,
 Jesper Dangaard Brouer <hawk@kernel.org>,
 John Fastabend <john.fastabend@gmail.com>, xen-devel@lists.xenproject.org,
 netdev@vger.kernel.org, linux-kernel@vger.kernel.org, bpf@vger.kernel.org,
 lvc-project@linuxtesting.org, stable@vger.kernel.org
Message-ID: <4679ca25-572b-44aa-bc00-cb9dc1c0080c@suse.com>
Subject: Re: [PATCH] xen-netfront: handle NULL returned by
 xdp_convert_buff_to_frame()
References: <20250414183403.265943-1-sdl@nppct.ru>
 <20250416175835.687a5872@kernel.org>
 <fa91aad9-f8f3-4b27-81b3-4c963e2e64aa@nppct.ru>
 <0c29a3f9-9e22-4e44-892d-431f06555600@suse.com>
 <452bac2e-2840-4db7-bbf4-c41e94d437a8@nppct.ru>
 <ed8dec2a-f507-49be-a6f3-fb8a91bfef01@suse.com>
 <8264519a-d58a-486e-b3c5-dba400658513@nppct.ru>
In-Reply-To: <8264519a-d58a-486e-b3c5-dba400658513@nppct.ru>

--------------nhTMLOtnttMTIlWDi7qUzJUH
Content-Type: multipart/mixed; boundary="------------0Ea0kxqx80BDEhzLETg0vGo6"

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

T24gMTcuMDQuMjUgMTI6MDYsIEFsZXhleSB3cm90ZToNCj4gDQo+IE9uIDE3LjA0LjIwMjUg
MTE6NTEsIEp1ZXJnZW4gR3Jvc3Mgd3JvdGU6DQo+PiBPbiAxNy4wNC4yNSAxMDo0NSwgQWxl
eGV5IHdyb3RlOg0KPj4+DQo+Pj4gT24gMTcuMDQuMjAyNSAxMDoxMiwgSsO8cmdlbiBHcm/D
nyB3cm90ZToNCj4+Pj4gT24gMTcuMDQuMjUgMDk6MDAsIEFsZXhleSB3cm90ZToNCj4+Pj4+
DQo+Pj4+PiBPbiAxNy4wNC4yMDI1IDAzOjU4LCBKYWt1YiBLaWNpbnNraSB3cm90ZToNCj4+
Pj4+PiBPbiBNb24sIDE0IEFwciAyMDI1IDE4OjM0OjAxICswMDAwIEFsZXhleSBOZXBvbW55
YXNoaWggd3JvdGU6DQo+Pj4+Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBnZXRfcGFnZShwZGF0
YSk7DQo+Pj4+Pj4gUGxlYXNlIG5vdGljZSB0aGlzIGdldF9wYWdlKCkgaGVyZS4NCj4+Pj4+
Pg0KPj4+Pj4+PiDCoMKgwqDCoMKgwqDCoMKgwqAgeGRwZiA9IHhkcF9jb252ZXJ0X2J1ZmZf
dG9fZnJhbWUoeGRwKTsNCj4+Pj4+Pj4gK8KgwqDCoMKgwqDCoMKgIGlmICh1bmxpa2VseSgh
eGRwZikpIHsNCj4+Pj4+Pj4gKyB0cmFjZV94ZHBfZXhjZXB0aW9uKHF1ZXVlLT5pbmZvLT5u
ZXRkZXYsIHByb2csIGFjdCk7DQo+Pj4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGJy
ZWFrOw0KPj4+Pj4+PiArwqDCoMKgwqDCoMKgwqAgfQ0KPj4+Pj4gRG8geW91IG1lYW4gdGhh
dCBpdCB3b3VsZCBiZSBiZXR0ZXIgdG8gbW92ZSB0aGUgZ2V0X3BhZ2UocGRhdGEpIGNhbGwg
bG93ZXIsDQo+Pj4+PiBhZnRlciBjaGVja2luZyBmb3IgTlVMTCBpbiB4ZHBmLCBzbyB0aGF0
IHRoZSByZWZlcmVuY2UgY291bnQgaXMgb25seSBpbmNyZWFzZWQNCj4+Pj4+IGFmdGVyIGEg
c3VjY2Vzc2Z1bCBjb252ZXJzaW9uPw0KPj4+Pg0KPj4+PiBJIHRoaW5rIHRoZSBlcnJvciBo
YW5kbGluZyBoZXJlIGlzIGdlbmVyYWxseSBicm9rZW4gKG9yIGF0IGxlYXN0IHZlcnkNCj4+
Pj4gcXVlc3Rpb25hYmxlKS4NCj4+Pj4NCj4+Pj4gSSBzdXNwZWN0IHRoYXQgaW4gY2FzZSBv
ZiBhdCBsZWFzdCBzb21lIGVycm9ycyB0aGUgZ2V0X3BhZ2UoKSBpcyBsZWFraW5nDQo+Pj4+
IGV2ZW4gd2l0aG91dCB0aGlzIG5ldyBwYXRjaC4NCj4+Pj4NCj4+Pj4gSW4gY2FzZSBJJ20g
d3JvbmcgYSBjb21tZW50IHJlYXNvbmluZyB3aHkgdGhlcmUgaXMgbm8gbGVhayBzaG91bGQg
YmUNCj4+Pj4gYWRkZWQuDQo+Pj4+DQo+Pj4+DQo+Pj4+IEp1ZXJnZW4NCj4+Pg0KPj4+IEkg
dGhpbmsgcGRhdGEgaXMgZnJlZWQgaW4geGRwX3JldHVybl9mcmFtZV9yeF9uYXBpKCkgLT4g
X194ZHBfcmV0dXJuKCkNCj4+DQo+PiBBZ3JlZWQuIEJ1dCB3aGF0IGlmIHhlbm5ldF94ZHBf
eG1pdCgpIHJldHVybnMgYW4gZXJyb3IgPCAwPw0KPj4NCj4+IEluIHRoaXMgY2FzZSB4ZHBf
cmV0dXJuX2ZyYW1lX3J4X25hcGkoKSB3b24ndCBiZSBjYWxsZWQuDQo+Pg0KPj4NCj4+IEp1
ZXJnZW4NCj4gDQo+IEFncmVlZC4gVGhlcmUgaXMgbm8gZXhwbGljaXQgZnJlZWQgcGRhdGEg
aW4gdGhlIGNhbGxpbmcgZnVuY3Rpb24NCj4geGVubmV0X2dldF9yZXNwb25zZXMoKS4gV2l0
aG91dCB0aGlzLCB0aGUgcGFnZSByZWZlcmVuY2VkIGJ5IHBkYXRhDQo+IGNvdWxkIGJlIGxl
YWtlZC4NCj4gDQo+IEkgc3VnZ2VzdDoNCiA+DQogPiAgCWNhc2UgWERQX1RYOg0KID4gLQkJ
Z2V0X3BhZ2UocGRhdGEpOw0KID4gIAkJeGRwZiA9IHhkcF9jb252ZXJ0X2J1ZmZfdG9fZnJh
bWUoeGRwKTsNCiA+ICsJCWlmICh1bmxpa2VseSgheGRwZikpIHsNCiA+ICsJCQl0cmFjZV94
ZHBfZXhjZXB0aW9uKHF1ZXVlLT5pbmZvLT5uZXRkZXYsIHByb2csIGFjdCk7DQogPiArCQkJ
YnJlYWs7DQogPiArCQl9DQogPiArCQlnZXRfcGFnZShwZGF0YSk7DQogPiAgCQllcnIgPSB4
ZW5uZXRfeGRwX3htaXQocXVldWUtPmluZm8tPm5ldGRldiwgMSwgJnhkcGYsIDApOw0KID4g
IAkJaWYgKHVubGlrZWx5KCFlcnIpKQ0KID4gIAkJCXhkcF9yZXR1cm5fZnJhbWVfcnhfbmFw
aSh4ZHBmKTsNCiA+IC0JCWVsc2UgaWYgKHVubGlrZWx5KGVyciA8IDApKQ0KID4gKwkJZWxz
ZSBpZiAodW5saWtlbHkoZXJyIDwgMCkpIHsNCiA+ICAJCQl0cmFjZV94ZHBfZXhjZXB0aW9u
KHF1ZXVlLT5pbmZvLT5uZXRkZXYsIHByb2csIGFjdCk7DQogPiArCQkJeGRwX3JldHVybl9m
cmFtZV9yeF9uYXBpKHhkcGYpOw0KID4gKwkJfQ0KDQpDb3VsZCB5b3UgcGxlYXNlIG1lcmdl
IHRoZSB0d28gaWYgKCkgYmxvY2tzLCBhcyB0aGV5IHNoYXJlIHRoZQ0KY2FsbCBvZiB4ZHBf
cmV0dXJuX2ZyYW1lX3J4X25hcGkoKSBub3c/IFNvbWV0aGluZyBsaWtlOg0KDQppZiAodW5s
aWtlbHkoZXJyIDw9IDApKSB7DQoJaWYgKGVyciA8IDApDQoJCXRyYWNlX3hkcF9leGNlcHRp
b24ocXVldWUtPmluZm8tPm5ldGRldiwgcHJvZywgYWN0KTsNCgl4ZHBfcmV0dXJuX2ZyYW1l
X3J4X25hcGkoeGRwZik7DQp9DQoNCiA+ICAJCWJyZWFrOw0KID4gIAljYXNlIFhEUF9SRURJ
UkVDVDoNCiA+ICAJCWdldF9wYWdlKHBkYXRhKTsNCiA+ICAJCWVyciA9IHhkcF9kb19yZWRp
cmVjdChxdWV1ZS0+aW5mby0+bmV0ZGV2LCB4ZHAsIHByb2cpOw0KID4gIAkJKm5lZWRfeGRw
X2ZsdXNoID0gdHJ1ZTsNCiA+IC0JCWlmICh1bmxpa2VseShlcnIpKQ0KID4gKwkJaWYgKHVu
bGlrZWx5KGVycikpIHsNCiA+ICAJCQl0cmFjZV94ZHBfZXhjZXB0aW9uKHF1ZXVlLT5pbmZv
LT5uZXRkZXYsIHByb2csIGFjdCk7DQogPiArCQkJX194ZHBfcmV0dXJuKHBhZ2VfYWRkcmVz
cyhwZGF0YSksICZ4ZHAtPm1lbSwgdHJ1ZSwgeGRwKTsNCiA+ICsJCX0NCiA+ICAJCWJyZWFr
Ow0KDQoNCkp1ZXJnZW4NCg0KUC5TLjogcGxlYXNlIGRvbid0IHVzZSBIVE1MIGluIGVtYWls
cw0K
--------------0Ea0kxqx80BDEhzLETg0vGo6
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-----

--------------0Ea0kxqx80BDEhzLETg0vGo6--

--------------nhTMLOtnttMTIlWDi7qUzJUH--

--------------80XappD84HqnFoIoZ4BtBZ6n
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/Ey8FAmgA1r0FAwAAAAAACgkQsN6d1ii/Ey/B
Vwf+MIfL/B2+Fhj0Xj7nAVp/jeMZJYVCEW5yyzCeQPzfYoKDh5FlfWL03hHnsekhx3lz6R83h8P3
sIKR8juToker8YgsFZvQQaXpKCNBOzThTBCcQuDxVr2chNTS7ojljGFMDu6ENLkhOb8NqiZWO6KE
mS1PXQ3UQwYl+5mYwMaowZwAXEXBvbwvAccQC30XZ8PbKWk0AoRc1YlI/U7tFpQwxVtW0is5ewJ/
UFoHnwgbFhWQ+4S+LcvURFjBTnNdQEpq/ahhvQNhgyJ9Drzddej0yTpROQWiv4tgkxoRTA3/fkVR
E+OuYFP0aMLsSSJfzixGbBvvDO+8EvYvmTtZc0DdWA==
=5kvB
-----END PGP SIGNATURE-----

--------------80XappD84HqnFoIoZ4BtBZ6n--


From xen-devel-bounces@lists.xenproject.org Thu Apr 17 10:30:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 10:30:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.957348.1350480 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5MVc-0001dS-0w; Thu, 17 Apr 2025 10:30:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 957348.1350480; Thu, 17 Apr 2025 10:30: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 1u5MVb-0001dL-Ua; Thu, 17 Apr 2025 10:30:15 +0000
Received: by outflank-mailman (input) for mailman id 957348;
 Thu, 17 Apr 2025 10:30: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=Gz/u=XD=cloud.com=ross.lagerwall@srs-se1.protection.inumbo.net>)
 id 1u5MVa-0001dF-Ec
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 10:30: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 f1bd71fb-1b76-11f0-9ffb-bf95429c2676;
 Thu, 17 Apr 2025 12:30:12 +0200 (CEST)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-abec8b750ebso91101166b.0
 for <xen-devel@lists.xenproject.org>; Thu, 17 Apr 2025 03:30:12 -0700 (PDT)
Received: from rossla-pc.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-acb3cdd5abcsm265297766b.43.2025.04.17.03.30.10
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 17 Apr 2025 03:30: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: f1bd71fb-1b76-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744885811; x=1745490611; 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=2owPCcoXT1Tn995zt/5mOyYYGVEyhMHq1Xr81Wsw80w=;
        b=Ibsdqr7Xi9Am+0cOd+C5ranSpWY1b/qUjpC7opwWD4Fix9kDJbgsix1qxP2VvOjWXV
         5DBv2GtIBe35H+jw17ckqKUxdzGjrHb0IsjR42dNtCfrHb9eFJsuWL8fGNc9W28xuxaf
         8ffGKJjFyWRXGZ6AiJXKkL4mXu765iWK5tATM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744885811; x=1745490611;
        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=2owPCcoXT1Tn995zt/5mOyYYGVEyhMHq1Xr81Wsw80w=;
        b=FjYidxTM+Ay2UY80ytlZsvGqJxbrHDqNnDx5bD9T7ky1VKSvUbJhUwVYZwI9smnz/S
         eUTO3hlnp/1V5a3rWQvd1oRsiz/BDM/ykZKRtRTIgIwl5CCI3nKw4Q7Rz+Uw83AIQ8lv
         fXqTj5VNayO1Jq79LrOTawf6+BzBPbnbDRyjtoC8ltcvpImOTMsoo0R3lpif8PDZZmDp
         qdVMp2kY0JO9cSacUT8BNV0GbzVvhVkQNnMB4M8BxdfHjp9Jg4SvZKlL+aOQ3ZStojvf
         yiGUxyS9F19ojeUcCn7995+sv7RjlcvhvUg7VCucq0n7meRY+zH/XrFhaxs5IogcpRUT
         ZoTQ==
X-Gm-Message-State: AOJu0YxieBL7wlWHNPpKnl5fjTJD4/jiEgn7rm4GogCNW6Zg0CFbdy5P
	xSIiqowOXxXVHxJpW+HMbmwjLdurTG+sD+Um9quWQxJ1NJAdWD22Rb6yzusbVRD0c7MGMpjiyqk
	=
X-Gm-Gg: ASbGncuVSMpgPcssI/Zv9rfU4zrxjZ9kDevALOEeu1teUKBxpQk2CFPNNNRDaiwPMKz
	IWcCVRKuUR6zeHPrf5hedCJRzvibHVZafgygOzOzwbuBrcbfKN3N60XFGGRI6/63dpxGh2CojR8
	yH7VfV/ykPUlseyIugQm5T0A8ep0t4Wk1zaKkf1737NyMRHf03Lmsa0bL2LLvLwW+yRcQltqrOi
	zIBKLbTucvjKg+tF35aRf4gHlbZ9DW++cn5Q8saMeF5ivk/vl9zDJYh7WF6TTSteZp5GKsIfYQr
	QLGzF+93o1bmhvxznptfbe9mItYbr+mSqi9icayM6tgI2Gba3mr4snDJuVX4myTf
X-Google-Smtp-Source: AGHT+IEWfm9so+q5AHanyNUdlFESpyZupB3c8l7nqrQvshIm18E2EPWZEv4Fyx+14s0azI54sMCbuA==
X-Received: by 2002:a17:907:7da3:b0:aca:c4a6:cd90 with SMTP id a640c23a62f3a-acb428827cbmr373503266b.5.1744885811421;
        Thu, 17 Apr 2025 03:30:11 -0700 (PDT)
From: Ross Lagerwall <ross.lagerwall@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>,
	Ross Lagerwall <ross.lagerwall@citrix.com>
Subject: [PATCH] x86/pmstat: Check size of PMSTAT_get_pxstat buffers
Date: Thu, 17 Apr 2025 11:30:00 +0100
Message-ID: <20250417103000.827661-1-ross.lagerwall@citrix.com>
X-Mailer: git-send-email 2.49.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Check that the total number of states passed in and hence the size of
buffers is sufficient to avoid writing more than the caller has
allocated.

The interface is not explicit about whether getpx.total is expected to
be set by the caller in this case but since it is always set in
libxenctrl it seems reasonable to check it.

Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
Fixes: c06a7db0c547 ("X86 and IA64: Update cpufreq statistic logic for supporting both x86 and ia64")
---
 xen/drivers/acpi/pmstat.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/xen/drivers/acpi/pmstat.c b/xen/drivers/acpi/pmstat.c
index c51b9ca358c2..c388b1e9a17a 100644
--- a/xen/drivers/acpi/pmstat.c
+++ b/xen/drivers/acpi/pmstat.c
@@ -104,6 +104,14 @@ int do_get_pm_info(struct xen_sysctl_get_pmstat *op)
         cpufreq_residency_update(op->cpuid, pxpt->u.cur);
 
         ct = pmpt->perf.state_count;
+
+        if ( op->u.getpx.total < ct )
+        {
+            spin_unlock(cpufreq_statistic_lock);
+            ret = -ENOSPC;
+            break;
+        }
+
         if ( copy_to_guest(op->u.getpx.trans_pt, pxpt->u.trans_pt, ct*ct) )
         {
             spin_unlock(cpufreq_statistic_lock);
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Thu Apr 17 10:31:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 10:31:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.957359.1350490 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5MX4-0002p7-AW; Thu, 17 Apr 2025 10:31:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 957359.1350490; Thu, 17 Apr 2025 10:31: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 1u5MX4-0002p0-7o; Thu, 17 Apr 2025 10:31:46 +0000
Received: by outflank-mailman (input) for mailman id 957359;
 Thu, 17 Apr 2025 10:31: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=uBz4=XD=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1u5MX3-0002ou-0w
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 10:31:45 +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 27d142d0-1b77-11f0-9ffb-bf95429c2676;
 Thu, 17 Apr 2025 12:31:43 +0200 (CEST)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-ac2bdea5a38so89147166b.0
 for <xen-devel@lists.xenproject.org>; Thu, 17 Apr 2025 03:31:43 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-64-225.play-internet.pl.
 [109.243.64.225]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-acb682a7e81sm23498766b.68.2025.04.17.03.31.41
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 17 Apr 2025 03:31:42 -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: 27d142d0-1b77-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1744885902; x=1745490702; darn=lists.xenproject.org;
        h=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=OZD866hPPvpIHOORCAo/z+NWDbdq3M9E/7/XIxPCvj0=;
        b=fSUyiI6DFzdxo5mUUK9Ndn/cPkKdVsCFsUUOTdBsJwnRQw7H3k4ItJoD3UeF9eHpxw
         eVDjesf6y0Kq7xxVxjFhlEoCC5lajCPjUf9QUaiywxf06LCsWzHG9a7TdKNE3aKyNxq2
         wabCcpIOF+WYpDyxzY81abvYlrLF+KSIvTVEnmuD6A9T2cfBh1zlekrUEnBZQrJ3oG59
         YSis0UR/nTQU3H2QePOk8HPeMZNcrgCEIeoJLi/LMZgKMfUBPSXDV+TvbOQirjypRizH
         Mp2eTTS9chTjMBGVA6IvQBPC6+DZi/nlz7TeTxnsRw7R62XFmzqLq6XYPCljo2s1WmwM
         V2vw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744885903; x=1745490703;
        h=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=OZD866hPPvpIHOORCAo/z+NWDbdq3M9E/7/XIxPCvj0=;
        b=UP2WQITaLqS02YqjGaYJU+wx9z4XRfVlXHrnpK4lFk0ZuF/Bp7LSP3DkOYtnUAh7C4
         bFiSeNCdKtdTmUIVpX2y+4YM2CeDxESKq21a/LV3ZppzsZKIhzpWrjgHoCqBkhdjSM05
         B0vXF5EFcNULpQ1lneqMWamfPJYqeXDeuKq9ZoknulmnpqL0gPrzZSZ/LZZX9g9+voTR
         nC3AkGKnnPk9roCyIFaTOV12vk0ZI92eUFbZdne1f3YHebEbVIR/82z4RgCV0TBCAojQ
         pVhPIC31AW7lMiCbIeT7KtKRCA1eBErN6FwWb5ijfTAkSe4sdrZZm7yoCUhBXMxugXfd
         1n/A==
X-Forwarded-Encrypted: i=1; AJvYcCU5Rd2ta2kyBjTNYVVu675NL5sDb5pZAUqs6R2AHmLZtpqVHqOmkyvh7zEmIIr0d95/aJYSohf9+0I=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwKQMxU5fR/K7D4WbiWkxAj21dbBZ/MdrrIzgq8StdupwQxeH15
	9VXaMyCOR1DABlLDCG2LtctGD9zELGMuokALovf6uRmJOlIrq0ZS
X-Gm-Gg: ASbGncu0QBVgJig26gp7TOBqfuQ0Af/ZRn1gdWBBHINO+YkvlidyIdMnL8KIVxcnQ2e
	yJMIIJBgs/M6W2kYxiNpaFh7LEH2Ih/MUcaf4RSP4Xvuj4RIHhna7uk0l/966EI2Oi3Y6RPfl0H
	nXtbjzdhnRCgK+qZP3jrHib2zGVIw9UspaHYt9jE+BgcshY9Ikp9RK0hPfO1JV0IXfrvxW+/9ft
	VWjJO5uHQlco2uZY2wlf8NOenkfli8JfcOr42QdrwvtjY3qIsBO5oV8v8HFNyk00nD4SOX4VDUp
	XwJ+gMAes5apBhMB6dD3kNN0jgEtExcUSXlPDIt7Ty7FQ0yYGv3FyYug/Nw1gk8k3Pxg4+XmKLY
	t37fQh41EWzOshz+q
X-Google-Smtp-Source: AGHT+IFxNif8IfO+mkb4k4lIKxd6bJ/NrRxJIBctPBqdIm6yxm0EjW7KquKNKOXY6aupEDxk2Z0DpQ==
X-Received: by 2002:a17:907:788:b0:aca:cb18:9ad0 with SMTP id a640c23a62f3a-acb42aeda26mr486931966b.45.1744885902394;
        Thu, 17 Apr 2025 03:31:42 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------xIhZXccIN8RvXdn3rwYPOpQZ"
Message-ID: <4c16e34b-10b1-4320-b031-e26a883426a0@gmail.com>
Date: Thu, 17 Apr 2025 12:31:41 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 14/14] xen/riscv: add basic UART support
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1744126720.git.oleksii.kurochko@gmail.com>
 <3e96851da8751ac17cbf0cb5a649c0d86259460a.1744126720.git.oleksii.kurochko@gmail.com>
 <49889d22-55b6-4dd4-b497-13b50d19d607@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <49889d22-55b6-4dd4-b497-13b50d19d607@suse.com>

This is a multi-part message in MIME format.
--------------xIhZXccIN8RvXdn3rwYPOpQZ
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 4/15/25 6:03 PM, Jan Beulich wrote:
> On 08.04.2025 17:57, Oleksii Kurochko wrote:
>> --- a/xen/arch/riscv/setup.c
>> +++ b/xen/arch/riscv/setup.c
>> @@ -4,11 +4,16 @@
>>   #include <xen/bug.h>
>>   #include <xen/bootfdt.h>
>>   #include <xen/compile.h>
>> +#include <xen/console.h>
>>   #include <xen/device_tree.h>
>>   #include <xen/init.h>
>>   #include <xen/irq.h>
>> +#include <xen/keyhandler.h>
> Why's this one needed?

It isn't needed anymore, just missed to drop.
I thought that it would be needed to test UART working fine by checking if Ctrl+AAA is working.

>
>>   #include <xen/mm.h>
>> +#include <xen/percpu.h>
>> +#include <xen/serial.h>
>>   #include <xen/shutdown.h>
>> +#include <xen/timer.h>
>>   #include <xen/vmap.h>
>>   #include <xen/xvmalloc.h>
>>   
>> @@ -73,6 +78,8 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
>>   
>>       remove_identity_mapping();
>>   
>> +    percpu_init_areas();
> I'll trust you that it's needed now, but the addition looks unrelated here,
> and also isn't mentioned as intentional in the description.

I had  this patch when I used polling mode for UART, for this case percpu is used to receive
serial port info:
   struct serial_port *port = this_cpu(poll_port);

So percpu isn't really needed at the current development state. I'll drop this change or as an option
move to separate patch.

>> --- a/xen/drivers/char/Kconfig
>> +++ b/xen/drivers/char/Kconfig
>> @@ -3,7 +3,6 @@ config GENERIC_UART_INIT
>>   
>>   config HAS_NS16550
>>   	bool "NS16550 UART driver" if ARM
>> -	default n if RISCV
>>   	default y
> Just to double-check: Unlike Arm you don't want this to be user-(un)selectable
> on RISC-V?

Thanks for noticing that. I want to have this selectable by user. I will add RISC-V here.

~ Oleksii

--------------xIhZXccIN8RvXdn3rwYPOpQZ
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 4/15/25 6:03 PM, Jan Beulich wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:49889d22-55b6-4dd4-b497-13b50d19d607@suse.com">
      <pre wrap="" class="moz-quote-pre">On 08.04.2025 17:57, Oleksii Kurochko wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">--- a/xen/arch/riscv/setup.c
+++ b/xen/arch/riscv/setup.c
@@ -4,11 +4,16 @@
 #include &lt;xen/bug.h&gt;
 #include &lt;xen/bootfdt.h&gt;
 #include &lt;xen/compile.h&gt;
+#include &lt;xen/console.h&gt;
 #include &lt;xen/device_tree.h&gt;
 #include &lt;xen/init.h&gt;
 #include &lt;xen/irq.h&gt;
+#include &lt;xen/keyhandler.h&gt;
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Why's this one needed?</pre>
    </blockquote>
    <pre>It isn't needed anymore, just missed to drop.
I thought that it would be needed to test UART working fine by checking if Ctrl+AAA is working.

</pre>
    <blockquote type="cite"
      cite="mid:49889d22-55b6-4dd4-b497-13b50d19d607@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre"> #include &lt;xen/mm.h&gt;
+#include &lt;xen/percpu.h&gt;
+#include &lt;xen/serial.h&gt;
 #include &lt;xen/shutdown.h&gt;
+#include &lt;xen/timer.h&gt;
 #include &lt;xen/vmap.h&gt;
 #include &lt;xen/xvmalloc.h&gt;
 
@@ -73,6 +78,8 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
 
     remove_identity_mapping();
 
+    percpu_init_areas();
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
I'll trust you that it's needed now, but the addition looks unrelated here,
and also isn't mentioned as intentional in the description.</pre>
    </blockquote>
    <pre>I had  this patch when I used polling mode for UART, for this case percpu is used to receive
serial port info:
  struct serial_port *port = this_cpu(poll_port);

So percpu isn't really needed at the current development state. I'll drop this change or as an option
move to separate patch.

</pre>
    <blockquote type="cite"
      cite="mid:49889d22-55b6-4dd4-b497-13b50d19d607@suse.com">
      <pre wrap="" class="moz-quote-pre">
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">--- a/xen/drivers/char/Kconfig
+++ b/xen/drivers/char/Kconfig
@@ -3,7 +3,6 @@ config GENERIC_UART_INIT
 
 config HAS_NS16550
 	bool "NS16550 UART driver" if ARM
-	default n if RISCV
 	default y
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Just to double-check: Unlike Arm you don't want this to be user-(un)selectable
on RISC-V?</pre>
    </blockquote>
    <pre>Thanks for noticing that. I want to have this selectable by user. I will add RISC-V here.

~ Oleksii
</pre>
  </body>
</html>

--------------xIhZXccIN8RvXdn3rwYPOpQZ--


From xen-devel-bounces@lists.xenproject.org Thu Apr 17 11:12:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 11:12:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.957383.1350516 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5NAE-0001bE-DF; Thu, 17 Apr 2025 11:12:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 957383.1350516; Thu, 17 Apr 2025 11:12: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 1u5NAE-0001b7-Ae; Thu, 17 Apr 2025 11:12:14 +0000
Received: by outflank-mailman (input) for mailman id 957383;
 Thu, 17 Apr 2025 11: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=QJ4N=XD=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u5NAC-0001b1-OA
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 11:12:12 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id cd389fe3-1b7c-11f0-9ffb-bf95429c2676;
 Thu, 17 Apr 2025 13:12:09 +0200 (CEST)
Received: from [192.168.7.202] ([71.202.166.45]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53HBB0dU3967739
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NO);
 Thu, 17 Apr 2025 04:11:01 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cd389fe3-1b7c-11f0-9ffb-bf95429c2676
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53HBB0dU3967739
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025032001; t=1744888264;
	bh=zKR49UWsXQlKIMA1VnL+BkqgO+3iF8iLPVDDfF2KoTE=;
	h=Date:Subject:To:Cc:References:From:In-Reply-To:From;
	b=ZIADA/NBWFdjMUgJTKpv9M9Wy2YG9IZEPFByL8wYabsxbBoRuZfKRlm/KXHCD1Dct
	 p+vwf14YsIuc+VHp9bDfack/1J0ZEDi3/LMHCo05xDW9TD4JrJ0GM5fVVA/piqxPhD
	 UyV8JWSU0hR2PMwkuYuHLcqgii53bDcW9KmA0ITTnJZG4RxQYf1Gr8LMHk+DKpR9xo
	 v/L3GNQ4ChUSYncpwgOQsPYYlB/v/0qZd/JiW4t/kLzx/6ZLdqruZ97wB6zyl1mziC
	 tKwEE+12hM3fNBR36tO17t9Oq8pShTsP2t1ihwsRhIESP8RHTn9IcCLiPfhw0jeR7+
	 9wRv9KyfJmA3A==
Message-ID: <edbeb41d-3c38-4778-9a7c-255edc7cd5fb@zytor.com>
Date: Thu, 17 Apr 2025 04:10:59 -0700
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH v1 13/15] x86/msr: Use the alternatives mechanism to
 read MSR
To: Francesco Lavra <francescolavra.fl@gmail.com>
Cc: acme@kernel.org, adrian.hunter@intel.com, ajay.kaher@broadcom.com,
        alexander.shishkin@linux.intel.com, andrew.cooper3@citrix.com,
        bcm-kernel-feedback-list@broadcom.com, boris.ostrovsky@oracle.com,
        bp@alien8.de, bpf@vger.kernel.org, dave.hansen@linux.intel.com,
        decui@microsoft.com, haiyangz@microsoft.com, hpa@zytor.com,
        irogers@google.com, jgross@suse.com, jolsa@kernel.org,
        kan.liang@linux.intel.com, kvm@vger.kernel.org, kys@microsoft.com,
        linux-edac@vger.kernel.org, linux-hyperv@vger.kernel.org,
        linux-ide@vger.kernel.org, linux-kernel@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-pm@vger.kernel.org,
        llvm@lists.linux.dev, luto@kernel.org, mark.rutland@arm.com,
        mingo@redhat.com, namhyung@kernel.org, pbonzini@redhat.com,
        peterz@infradead.org, seanjc@google.com, tglx@linutronix.de,
        tony.luck@intel.com, virtualization@lists.linux.dev,
        vkuznets@redhat.com, wei.liu@kernel.org, x86@kernel.org,
        xen-devel@lists.xenproject.org
References: <0f4f2ed70829fffb2eb816e34e26be22681705a5.camel@gmail.com>
Content-Language: en-US
From: Xin Li <xin@zytor.com>
Autocrypt: addr=xin@zytor.com; keydata=
 xsDNBGUPz1cBDACS/9yOJGojBFPxFt0OfTWuMl0uSgpwk37uRrFPTTLw4BaxhlFL0bjs6q+0
 2OfG34R+a0ZCuj5c9vggUMoOLdDyA7yPVAJU0OX6lqpg6z/kyQg3t4jvajG6aCgwSDx5Kzg5
 Rj3AXl8k2wb0jdqRB4RvaOPFiHNGgXCs5Pkux/qr0laeFIpzMKMootGa4kfURgPhRzUaM1vy
 bsMsL8vpJtGUmitrSqe5dVNBH00whLtPFM7IbzKURPUOkRRiusFAsw0a1ztCgoFczq6VfAVu
 raTye0L/VXwZd+aGi401V2tLsAHxxckRi9p3mc0jExPc60joK+aZPy6amwSCy5kAJ/AboYtY
 VmKIGKx1yx8POy6m+1lZ8C0q9b8eJ8kWPAR78PgT37FQWKYS1uAroG2wLdK7FiIEpPhCD+zH
 wlslo2ETbdKjrLIPNehQCOWrT32k8vFNEMLP5G/mmjfNj5sEf3IOKgMTMVl9AFjsINLHcxEQ
 6T8nGbX/n3msP6A36FDfdSEAEQEAAc0WWGluIExpIDx4aW5Aenl0b3IuY29tPsLBDQQTAQgA
 NxYhBIUq/WFSDTiOvUIqv2u9DlcdrjdRBQJlD89XBQkFo5qAAhsDBAsJCAcFFQgJCgsFFgID
 AQAACgkQa70OVx2uN1HUpgv/cM2fsFCQodLArMTX5nt9yqAWgA5t1srri6EgS8W3F+3Kitge
 tYTBKu6j5BXuXaX3vyfCm+zajDJN77JHuYnpcKKr13VcZi1Swv6Jx1u0II8DOmoDYLb1Q2ZW
 v83W55fOWJ2g72x/UjVJBQ0sVjAngazU3ckc0TeNQlkcpSVGa/qBIHLfZraWtdrNAQT4A1fa
 sWGuJrChBFhtKbYXbUCu9AoYmmbQnsx2EWoJy3h7OjtfFapJbPZql+no5AJ3Mk9eE5oWyLH+
 QWqtOeJM7kKvn/dBudokFSNhDUw06e7EoVPSJyUIMbYtUO7g2+Atu44G/EPP0yV0J4lRO6EA
 wYRXff7+I1jIWEHpj5EFVYO6SmBg7zF2illHEW31JAPtdDLDHYcZDfS41caEKOQIPsdzQkaQ
 oW2hchcjcMPAfyhhRzUpVHLPxLCetP8vrVhTvnaZUo0xaVYb3+wjP+D5j/3+hwblu2agPsaE
 vgVbZ8Fx3TUxUPCAdr/p73DGg57oHjgezsDNBGUPz1gBDAD4Mg7hMFRQqlzotcNSxatlAQNL
 MadLfUTFz8wUUa21LPLrHBkUwm8RujehJrzcVbPYwPXIO0uyL/F///CogMNx7Iwo6by43KOy
 g89wVFhyy237EY76j1lVfLzcMYmjBoTH95fJC/lVb5Whxil6KjSN/R/y3jfG1dPXfwAuZ/4N
 cMoOslWkfZKJeEut5aZTRepKKF54T5r49H9F7OFLyxrC/uI9UDttWqMxcWyCkHh0v1Di8176
 jjYRNTrGEfYfGxSp+3jYL3PoNceIMkqM9haXjjGl0W1B4BidK1LVYBNov0rTEzyr0a1riUrp
 Qk+6z/LHxCM9lFFXnqH7KWeToTOPQebD2B/Ah5CZlft41i8L6LOF/LCuDBuYlu/fI2nuCc8d
 m4wwtkou1Y/kIwbEsE/6RQwRXUZhzO6llfoN96Fczr/RwvPIK5SVMixqWq4QGFAyK0m/1ap4
 bhIRrdCLVQcgU4glo17vqfEaRcTW5SgX+pGs4KIPPBE5J/ABD6pBnUUAEQEAAcLA/AQYAQgA
 JhYhBIUq/WFSDTiOvUIqv2u9DlcdrjdRBQJlD89ZBQkFo5qAAhsMAAoJEGu9DlcdrjdR4C0L
 /RcjolEjoZW8VsyxWtXazQPnaRvzZ4vhmGOsCPr2BPtMlSwDzTlri8BBG1/3t/DNK4JLuwEj
 OAIE3fkkm+UG4Kjud6aNeraDI52DRVCSx6xff3bjmJsJJMb12mWglN6LjdF6K+PE+OTJUh2F
 dOhslN5C2kgl0dvUuevwMgQF3IljLmi/6APKYJHjkJpu1E6luZec/lRbetHuNFtbh3xgFIJx
 2RpgVDP4xB3f8r0I+y6ua+p7fgOjDLyoFjubRGed0Be45JJQEn7A3CSb6Xu7NYobnxfkwAGZ
 Q81a2XtvNS7Aj6NWVoOQB5KbM4yosO5+Me1V1SkX2jlnn26JPEvbV3KRFcwV5RnDxm4OQTSk
 PYbAkjBbm+tuJ/Sm+5Yp5T/BnKz21FoCS8uvTiziHj2H7Cuekn6F8EYhegONm+RVg3vikOpn
 gao85i4HwQTK9/D1wgJIQkdwWXVMZ6q/OALaBp82vQ2U9sjTyFXgDjglgh00VRAHP7u1Rcu4
 l75w1xInsg==
In-Reply-To: <0f4f2ed70829fffb2eb816e34e26be22681705a5.camel@gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 4/14/2025 10:13 AM, Francesco Lavra wrote:
> This works only if this function has been called directly (e.g. via
> `call asm_xen_write_msr`), but doesn't work with alternative call types
> (like indirect calls). Not sure why one might want to use an indirect
> call to invoke asm_xen_write_msr, but this creates a hidden coupling
> between caller and callee.
> I don't have a suggestion on how to get rid of this coupling, other
> than setting ipdelta in _ASM_EXTABLE_FUNC_REWIND() to 0 and adjusting
> the _ASM_EXTABLE_TYPE entries at the call sites to consider the
> instruction that follows the function call (instead of the call
> instruction) as the faulting instruction (which seems pretty ugly, at
> least because what follows the function call could be an instruction
> that might itself fault). But you may want to make this caveat explicit
> in the comment.

Good idea, will state that in the comment.


From xen-devel-bounces@lists.xenproject.org Thu Apr 17 11:20:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 11:20:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.957394.1350527 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5NHp-0002yh-5J; Thu, 17 Apr 2025 11:20:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 957394.1350527; Thu, 17 Apr 2025 11:20: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 1u5NHp-0002yE-1e; Thu, 17 Apr 2025 11:20:05 +0000
Received: by outflank-mailman (input) for mailman id 957394;
 Thu, 17 Apr 2025 11:20: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=s05F=XD=nppct.ru=sdl@srs-se1.protection.inumbo.net>)
 id 1u5NHm-0002JH-1W
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 11:20:03 +0000
Received: from mail.nppct.ru (mail.nppct.ru [195.133.245.4])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e65f6bc2-1b7d-11f0-9eb0-5ba50f476ded;
 Thu, 17 Apr 2025 13:20:00 +0200 (CEST)
Received: from mail.nppct.ru (localhost [127.0.0.1])
 by mail.nppct.ru (Postfix) with ESMTP id 2896B1C0E86
 for <xen-devel@lists.xenproject.org>; Thu, 17 Apr 2025 14:19:57 +0300 (MSK)
Received: from mail.nppct.ru ([127.0.0.1])
 by mail.nppct.ru (mail.nppct.ru [127.0.0.1]) (amavisd-new, port 10026)
 with ESMTP id 7W5cGyoQYTbp for <xen-devel@lists.xenproject.org>;
 Thu, 17 Apr 2025 14:19:50 +0300 (MSK)
Received: from [172.16.0.185] (unknown [176.59.174.214])
 by mail.nppct.ru (Postfix) with ESMTPSA id 750791C08C3;
 Thu, 17 Apr 2025 14:19:37 +0300 (MSK)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e65f6bc2-1b7d-11f0-9eb0-5ba50f476ded
Authentication-Results: mail.nppct.ru (amavisd-new); dkim=pass (1024-bit key)
	reason="pass (just generated, assumed good)" header.d=nppct.ru
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=nppct.ru; h=
	content-transfer-encoding:content-type:content-type:in-reply-to
	:from:from:content-language:references:to:subject:subject
	:user-agent:mime-version:date:date:message-id; s=dkim; t=
	1744888790; x=1745752791; bh=EaA/y+zhy5Or9j5JTA2kf0Ms6ZLviEs08ZX
	slBXBvVU=; b=PTv9lybVRA2uUGNVgliJQYa0VIXftBqA7Zh9oRDcq/hGAvqAjTn
	5cHE10vKiHQdgRmFOe8uUvTnqG3cGLOBrFv8i+oKkrFn2Mz8NqZlspOB4Ks0V0tz
	BLA75hOoF4GoSY3t72OR/42+Mnf9ixEfOsLrH6uoYJiPEQwpXWji6aWc=
X-Virus-Scanned: Debian amavisd-new at mail.nppct.ru
Message-ID: <ff6eed52-5f1f-4070-90dc-8cf057f35e41@nppct.ru>
Date: Thu, 17 Apr 2025 14:19:36 +0300
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen-netfront: handle NULL returned by
 xdp_convert_buff_to_frame()
To: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>,
 Jakub Kicinski <kuba@kernel.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 "David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>,
 Paolo Abeni <pabeni@redhat.com>, Alexei Starovoitov <ast@kernel.org>,
 Daniel Borkmann <daniel@iogearbox.net>,
 Jesper Dangaard Brouer <hawk@kernel.org>,
 John Fastabend <john.fastabend@gmail.com>, xen-devel@lists.xenproject.org,
 netdev@vger.kernel.org, linux-kernel@vger.kernel.org, bpf@vger.kernel.org,
 lvc-project@linuxtesting.org, stable@vger.kernel.org
References: <20250414183403.265943-1-sdl@nppct.ru>
 <20250416175835.687a5872@kernel.org>
 <fa91aad9-f8f3-4b27-81b3-4c963e2e64aa@nppct.ru>
 <0c29a3f9-9e22-4e44-892d-431f06555600@suse.com>
 <452bac2e-2840-4db7-bbf4-c41e94d437a8@nppct.ru>
 <ed8dec2a-f507-49be-a6f3-fb8a91bfef01@suse.com>
 <8264519a-d58a-486e-b3c5-dba400658513@nppct.ru>
 <4679ca25-572b-44aa-bc00-cb9dc1c0080c@suse.com>
Content-Language: en-US
From: Alexey <sdl@nppct.ru>
In-Reply-To: <4679ca25-572b-44aa-bc00-cb9dc1c0080c@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 17.04.2025 13:23, Jürgen Groß wrote:
> On 17.04.25 12:06, Alexey wrote:
>>
>> On 17.04.2025 11:51, Juergen Gross wrote:
>>> On 17.04.25 10:45, Alexey wrote:
>>>>
>>>> On 17.04.2025 10:12, Jürgen Groß wrote:
>>>>> On 17.04.25 09:00, Alexey wrote:
>>>>>>
>>>>>> On 17.04.2025 03:58, Jakub Kicinski wrote:
>>>>>>> On Mon, 14 Apr 2025 18:34:01 +0000 Alexey Nepomnyashih wrote:
>>>>>>>>           get_page(pdata);
>>>>>>> Please notice this get_page() here.
>>>>>>>
>>>>>>>>           xdpf = xdp_convert_buff_to_frame(xdp);
>>>>>>>> +        if (unlikely(!xdpf)) {
>>>>>>>> + trace_xdp_exception(queue->info->netdev, prog, act);
>>>>>>>> +            break;
>>>>>>>> +        }
>>>>>> Do you mean that it would be better to move the get_page(pdata) 
>>>>>> call lower,
>>>>>> after checking for NULL in xdpf, so that the reference count is 
>>>>>> only increased
>>>>>> after a successful conversion?
>>>>>
>>>>> I think the error handling here is generally broken (or at least very
>>>>> questionable).
>>>>>
>>>>> I suspect that in case of at least some errors the get_page() is 
>>>>> leaking
>>>>> even without this new patch.
>>>>>
>>>>> In case I'm wrong a comment reasoning why there is no leak should be
>>>>> added.
>>>>>
>>>>>
>>>>> Juergen
>>>>
>>>> I think pdata is freed in xdp_return_frame_rx_napi() -> __xdp_return()
>>>
>>> Agreed. But what if xennet_xdp_xmit() returns an error < 0?
>>>
>>> In this case xdp_return_frame_rx_napi() won't be called.
>>>
>>>
>>> Juergen
>>
>> Agreed. There is no explicit freed pdata in the calling function
>> xennet_get_responses(). Without this, the page referenced by pdata
>> could be leaked.
>>
>> I suggest:
>
> Could you please merge the two if () blocks, as they share the
> call of xdp_return_frame_rx_napi() now? Something like:
>
> if (unlikely(err <= 0)) {
>     if (err < 0)
>         trace_xdp_exception(queue->info->netdev, prog, act);
>     xdp_return_frame_rx_napi(xdpf);
> }
>
> Juergen
>
> P.S.: please don't use HTML in emails

I can't do this because xennet_xdp_xmit() can return a value > 0




From xen-devel-bounces@lists.xenproject.org Thu Apr 17 11:50:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 11:50:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.957410.1350536 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5Nld-00007l-AN; Thu, 17 Apr 2025 11:50:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 957410.1350536; Thu, 17 Apr 2025 11: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 1u5Nld-00007c-74; Thu, 17 Apr 2025 11:50:53 +0000
Received: by outflank-mailman (input) for mailman id 957410;
 Thu, 17 Apr 2025 11: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=m2wG=XD=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u5Nlc-00007W-65
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 11:50:52 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on20605.outbound.protection.outlook.com
 [2a01:111:f403:2415::605])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 31d908c1-1b82-11f0-9eb0-5ba50f476ded;
 Thu, 17 Apr 2025 13:50:45 +0200 (CEST)
Received: from SJ0PR05CA0074.namprd05.prod.outlook.com (2603:10b6:a03:332::19)
 by CYYPR12MB8889.namprd12.prod.outlook.com (2603:10b6:930:cb::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.25; Thu, 17 Apr
 2025 11:50:40 +0000
Received: from MWH0EPF000A6730.namprd04.prod.outlook.com
 (2603:10b6:a03:332:cafe::15) by SJ0PR05CA0074.outlook.office365.com
 (2603:10b6:a03:332::19) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.23 via Frontend Transport; Thu,
 17 Apr 2025 11:50:39 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 MWH0EPF000A6730.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.8655.12 via Frontend Transport; Thu, 17 Apr 2025 11:50:39 +0000
Received: from localhost (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; Thu, 17 Apr
 2025 06:50:37 -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: 31d908c1-1b82-11f0-9eb0-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=bW09TDEsesLFj8E54VzJJBMH03X0GyVRayc23zBuLCqLJpoj/hWgVgi4g6wnoWf1bAjffqNiMH889HhhaO5pVnC99X7yOVNT+xp0+V+o7GCmWBpYYyNuiY2DG9eVYTpjU0JbS7JR5LsGGaTIkBdP84EGUEKXpvqeLBC7bOOig51FX3kP9phytbbs5PQ4/YaTqNatfcDD5nHDgg7m3Mi+B2VIa3DjtmiX+qlUKH7avJenRArpkr8UY7Od9HgEd65MA0XxBfVyNB6Kt4OE132xBkb32ZJjom2CGKu5Bc9yBCJX+etS5UHnKUUMkSuC/ey8YlN//4+nSuqJwlrp1uSRwQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=a0Yo2GLQ5z3IlxCixolTZDv8aGROSZDjeKkgq/TkwMI=;
 b=NPp2wjXpFKXX5jtoQ0LELquGk+6CxfcdxwrZMRS/wETHU6Xcx77ZqU/eJXZ+qMO/OS2mQUXfMKe4sYTaVgeZfOzP0bZFaPdg6IgeJZDtEbEeyPHW3UzoFJ7lwEwqqBMpheKP3phuwDI4vJ/tpQgSKv24ad9zikwA4jdXP4oQfLas2iTnzC84RA5gbVW8bSJ03jvq3kStkdcwdFGqYwGc+1jhMzggEY+iwIrAB8xysKSIuOEBjf1GN0TPyiSzLI23+XhC5aI/EOE1sAs7Ad5sq1cfGGiaDjpQVwFk91SUrrYZKjdLvaCycaaPxdMikjv1PaA5u1MWVxkLFHQM2iHDeA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=bugseng.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=a0Yo2GLQ5z3IlxCixolTZDv8aGROSZDjeKkgq/TkwMI=;
 b=nMpCuaYZQ2xVDYHc/poD1NHa37N7Nf58D4YEGRTxe++Ltwnhx28nSmMGtJqL1lYkq/vuPnPKS0RFpvtqvgBFsFIPXD9ZPACEPnCKGM+c/XKTSyLah4gQ8IVUOhyTqHz/MrfCgy66yP4T+7je6BNTXCvO+Z+XeChalzQJSi/4fTM=
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
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Thu, 17 Apr 2025 12:50:36 +0100
Message-ID: <D98W3W2Z5PY1.6C434P75LNV7@amd.com>
To: Nicola Vetrini <nicola.vetrini@bugseng.com>, Jan Beulich
	<jbeulich@suse.com>
CC: Jason Andryuk <jason.andryuk@amd.com>, Xenia Ragiadakou
	<xenia.ragiadakou@amd.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, =?utf-8?q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, <xen-devel@lists.xenproject.org>,
	<consulting@bugseng.com>
Subject: Re: [PATCH v3 08/16] x86/hyperlaunch: Add helpers to locate
 multiboot modules
From: Alejandro Vallejo <agarciav@amd.com>
X-Mailer: aerc 0.20.1
References: <20250408160802.49870-1-agarciav@amd.com>
 <20250408160802.49870-9-agarciav@amd.com>
 <fe282aa0-fe2d-49b8-a2aa-325c9825304b@suse.com>
 <D96EI9O4XII2.195QNQNT1T3FG@amd.com>
 <3d2aa870-a1cb-4e33-841d-aee7b6b6db83@suse.com>
 <D96K3ZYDCY4D.11Q4T2TZLNNEU@amd.com>
 <ea28d057-5fd5-4cc2-8833-5427015a4190@suse.com>
 <173f7129e82958a9737627129ac3c5be@bugseng.com>
In-Reply-To: <173f7129e82958a9737627129ac3c5be@bugseng.com>
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: MWH0EPF000A6730:EE_|CYYPR12MB8889:EE_
X-MS-Office365-Filtering-Correlation-Id: 099560b4-530b-40ff-0b8a-08dd7da61320
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?MHBMZzRBcUwzMGtEWEJjcThZQUN4d3lFbkN4WU55RmlPZUxxclZQSGx0aUlw?=
 =?utf-8?B?NkhxVFEyelY0VUpEdDVGUTVQR3pmREtnVzRmaEdJV2VyVFlDT3RQcm9hMGd1?=
 =?utf-8?B?dVlIZ3JwY3orWHljdjZUMnNJMGp1OGJsMEFtU3ljM0ZFS0xtaG9ac0VNUm1z?=
 =?utf-8?B?L0J1TVlxZ0tmZXhrMER0Z2RIUGtSaFJaRE9UbTU4QjVTc0RsdlJzUU45UnRa?=
 =?utf-8?B?bGE3dDUxeW9LNlVVdFZTTTVJckdvWUFGZkxpWGhsTXdydjI4Vkc2bXJBemx5?=
 =?utf-8?B?eFhFeUdvcDVYQ0lhVy9ZbEo1UTVVSk5Uajg4eU92dDZJcnJlTzdNdHlDYmgz?=
 =?utf-8?B?a3ZYbHAyY2NNenVpTlF3bk5KQzhOaFJhUkVuMEptK0ZFc29FWEE3dTJtZVpn?=
 =?utf-8?B?eFQ1blFFZ3RXTi9WbUtmNlhwUEFEUzJpRnpSVEoweGZvVjdCRWYvTTNYQmFz?=
 =?utf-8?B?K1dnVXRKSXNEMlQ4RHFDb2t4Y0JBK1JKYk1STm04cHVoanBwTHNmOGVFZ1RC?=
 =?utf-8?B?Z3ROMExnWXRiNit2MkNGOGNaV3R5SEwvRnpUeHYzcHJBcnZSRmRMZ0FncVZZ?=
 =?utf-8?B?Z3gwRlpiNDhxRWc0OEJ2QVNWVmx2S1ZuR2daL1ovYTNhb2ZZUjAvaVZ2U3l4?=
 =?utf-8?B?WEd4NzYyQUw1VzFmUjdUZFphMTVEbzJOZUpsdEM3YTE3WWpWeGNSVVR0NVg1?=
 =?utf-8?B?UEV5RCt3bmdxL1BUNUYyV1Z0K1NzMDJLaDlIS08rZkNPQjQyZE9FSzl2Uk8z?=
 =?utf-8?B?di8wNjRjeTE5dHZ4YUQvZE9BelcxR29CQ2hiVU9sUVMwd0d3NGZuVWpNcnRs?=
 =?utf-8?B?K01BMmxZRGtoTEQ0UEY2eU1yaDBoN3pVU0lTOUhIV2dLTlgwSVNvYWlnNDFS?=
 =?utf-8?B?SDNObkRJOCtJdmNicHhOQlRvR1VZaTdKMlBmRHJGaXJvbjVFUmJ6Q0ZzWk9v?=
 =?utf-8?B?b1pSS3BScmpoSFF0TnBweTNiOU5GbHVpOXRxd0grcGNGbVVuMHFuWGFXelFO?=
 =?utf-8?B?blJJODJlTTdTUlNCbjZhRHlXL1k5OWt5T0xmVUkwV1BqdENjYWs0M2NQUVlD?=
 =?utf-8?B?d2M5azJlZUJ6eDJtTWxGMUdWeWlESUpPaUFnSTdiTTJaclQzc2poSWZLRDRU?=
 =?utf-8?B?R3k5d3ZJYUdwZ3FUMXVEYXZJRldTa05mUFluYlRUcUpVdzlCeDIyNmVOQUtN?=
 =?utf-8?B?cjJ3bC9pZW0zMCtmNzNSa0w2RjRXOG4yRk40NE40cVoxcjZ6VUVLQ1d2azcy?=
 =?utf-8?B?SHk0b1A4VE1LZ2pSYVh0cHZoaHVybVRUVCt5YTkvNWRlK09WV2oyNXRNSlA5?=
 =?utf-8?B?WmUzWHVyL0NHYnBCSnBwYmhNRU0ydGhQZi9KL09PVGw4N0lqVDY5SWgyYzNC?=
 =?utf-8?B?Y0lpMlB6dWdnREpEYmwvNHpPRVJSZzhEeEhra1hyditFSFc5akVSd0R2WWRG?=
 =?utf-8?B?VUdZL2tURndMNnYyT3VkSUIweWZYZndMQVJkNU1yeDlhZzNlcmxKVzhyZEFI?=
 =?utf-8?B?eWZhWVZkb3M5MTNHNmUydkQ5TWV3ZjRrcTFxbEJDcno0WWdzeWdadXZEOEhP?=
 =?utf-8?B?eXFIUFd3c1hmeG9zRkFIdVBUbHArNXBLTXlPTms1bnN3eG9vblVmaWN3QTV3?=
 =?utf-8?B?ZkZsMytoOFBpbnp2a2F5bmExOHVQVWc3TnVkTzBRcHRDK2RwQVpzbDBoNDZB?=
 =?utf-8?B?L3Z1Zk90T09ZZEZmdW1YY3ovUDU0YkJJQVk3a3pRV3JLeG9UQzdJczhTeUYr?=
 =?utf-8?B?T1hET2ZmWE8xR1hOYXNOS0ZUd2o2T0EwNWdOeXRmWGJLSS8waWMyaWpNUStk?=
 =?utf-8?B?MXRDbHQybDJWMlRWbXpEVTFqZS9XemlJNVJMM0tBUFpNWkhQeitDUktLZnpG?=
 =?utf-8?B?dDJEa0VPODRmNGNXL1NwU0xkcEhnZTEwT2ZVa1pYMzk1MXQrSE04S3Yzbk95?=
 =?utf-8?B?TmIwNFY3QmZKUy9aY2RKNG5CM25sRzlBa051K2xmOWM1TkljelhXLzZubjlD?=
 =?utf-8?B?bTREaGxCb1NBNWNSdlB2dHFWcnpUYzN5Wk93TG1XSGdyQzhIVVZyNzM5bHFu?=
 =?utf-8?Q?MjWUr/?=
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: 17 Apr 2025 11:50:39.3670
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 099560b4-530b-40ff-0b8a-08dd7da61320
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:
	MWH0EPF000A6730.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CYYPR12MB8889

On Wed Apr 16, 2025 at 5:55 PM BST, Nicola Vetrini wrote:
> On 2025-04-15 08:05, Jan Beulich wrote:
>> On 14.04.2025 20:01, Alejandro Vallejo wrote:
>>> On Mon Apr 14, 2025 at 4:05 PM BST, Jan Beulich wrote:
>>>> On 14.04.2025 15:37, Alejandro Vallejo wrote:
>>>>> On Thu Apr 10, 2025 at 11:42 AM BST, Jan Beulich wrote:
>>>>>> Functions without callers and non-static ones without declarations=
=20
>>>>>> are
>>>>>> disliked by Misra.
>>>>>=20
>>>>> Can't do much about it if I want them to stand alone in a single=20
>>>>> patch.
>>>>> Otherwise the following ones become quite unwieldy to look at. All I=
=20
>>>>> can
>>>>> say is that this function becomes static and with a caller on the=20
>>>>> next
>>>>> patch.
>>>>=20
>>>> Which means you need to touch this again anyway. Perhaps we need a=20
>>>> Misra
>>>> deviation for __maybe_unused functions / data, in which case you=20
>>>> could
>>>> use that here and strip it along with making the function static.=20
>>>> Cc-ing
>>>> Bugseng folks.
>>>=20
>>> It's a transient violation, sure. Do we care about transient MISRA
>>> violations though? I understand the importance of bisectability, but
>>> AUIU MISRA compliance matters to the extent that that the tip is
>>> compliant rather than the intermediate steps?
>>=20
>> Thing is that quite a few rules are blocking now. I haven't checked=20
>> whether
>> the one here (already) is; if it isn't, we can't exclude it will be by=
=20
>> the
>> time this patch is committed. If then the next patch isn't committed
>> together with it, we'd face a CI failure.
>>=20
>
> It's Rule 8.4, and it is indeed blocking. To double check, a scan on a=20
> push containing this patch should trigger the failure.
> You may transitively add an inline deviation comment or just a deviation=
=20
> with a configuration (I can help if needed), justified by the subsequent=
=20
> addition of static.

Thanks for the context!

If I'm going to add something and remove it later might as well add the
missing declaration and remove it when static-ifying the function.
Particularly because I don't see a suitable x in SAFE-x-safe to use. (1
or 13 may work, but they hardly reflect what's being done.)

My bad for (mis)assuming transient states merely required bisectability
rather than full MISRA compliance.=20

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Thu Apr 17 11:51:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 11:51:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.957417.1350547 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5Nm0-0000xY-Np; Thu, 17 Apr 2025 11:51:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 957417.1350547; Thu, 17 Apr 2025 11:51: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 1u5Nm0-0000xR-JF; Thu, 17 Apr 2025 11:51:16 +0000
Received: by outflank-mailman (input) for mailman id 957417;
 Thu, 17 Apr 2025 11:51: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=nsoM=XD=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u5Nlz-00007W-BZ
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 11:51:15 +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 41f4102e-1b82-11f0-9eb0-5ba50f476ded;
 Thu, 17 Apr 2025 13:51:11 +0200 (CEST)
Received: by mail-wr1-x42e.google.com with SMTP id
 ffacd0b85a97d-39c1ef4acf2so448280f8f.0
 for <xen-devel@lists.xenproject.org>; Thu, 17 Apr 2025 04:51:11 -0700 (PDT)
Received: from [10.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-22c33fe6838sm31231875ad.221.2025.04.17.04.51.04
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 17 Apr 2025 04:51: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: 41f4102e-1b82-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744890671; x=1745495471; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=9KySYqGVkYcpYFBYO5jG+XUM5oARZFVVnouSh5TTSuE=;
        b=JxEpjCYr3tGjDDB4zHZ4+MlncET7IyGF/RRNyEIWizTX03fPxlVVKqqNghbMUvRqiO
         sYO32dTUE3fePQsyGiJqviLgjxKrztZk8WiVxdZk4LZk/lxPCEyRTvNVPi3ZvxmPJ+XM
         YavDp4ZRsJyMSrIkre1g7tH5ld1SrcfCWtyxQd4iRWSxrPmXjlbLxFs5arMy/VO7q3/g
         trcGKndf6Faw8/Zvx+cgsBDDCqEqHk/WqKsunhQh2iwtzxaFS+QHvNKU3TbIAkB3I3Hc
         4NYJqNswwmO8Io0Jjx4gzc6YEcx+u09N+YPm0roktmZMJWQloQKNg0upLi0IGLc0SoWQ
         FFyw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744890671; x=1745495471;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=9KySYqGVkYcpYFBYO5jG+XUM5oARZFVVnouSh5TTSuE=;
        b=Ou3ZoN+nwwqKndXGKXDUEc1fwUP00UnjA/8NUZWTQ0RkUl3FA1WdrmAJZQNLaqqnyS
         ywLqHnG6+weNhSqACa3/eyQuFch3Jq6tDmub9CN90v8rYFHlrwhXR5eyQ1v6Kyei1RHJ
         4A/BbefDq6r1V/6xOM8eqRDdajfpprQtbzwZQA5ySCECqfAyV0QCyXDQVV+ldcTP1Ba2
         iAP0y1q6d1jTP8jGCQqU5fPTJcWJZ3Kz4nCop9Sf2dahQZW8xvF4lNk9xR1MstcShSgl
         DZ/+2SLrFls1xYfjJ+abiNuO6klr0Ywr2gQmihp2MAni6WtBuUeM+pkU2i9QOXcdgxqA
         ydXg==
X-Forwarded-Encrypted: i=1; AJvYcCUuK5PsQvGjBP4zT4sKBbWkEEi0O8Nn5FegxonfnzJ84QLEI55PjAak0264YY8VsMFOY1I2a0Ue3Kc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyEX2I/pJZzin7FhzXgCupvBPHRwQ27v4ySp6bivivx4g4fXG5m
	tQd9FH4JOj/IlTrafnXrNUCZaASg6SRK1BoDkqPR8PxRyoZQq/BeMBHPysnq6g==
X-Gm-Gg: ASbGncvdNJShi+UBCJhRfNxvxR8bZkwFIRU/RbtH7zY13sSgVlR6v1fkjJQmR+xRpL8
	ELi9NuvmRbHNBuHsWdjqUjCprdhYnQS8L73Lwt7xmsbQXDjl/Ro+br7t6u4ir6BoSiwPaQc04mh
	Y33nGTFKiPhE5K4aDFHTho4naIjYe75ApZb9aKdFBm9o88BVl64HBrGrrOfkmsFykdfzmlSGs8a
	z2iLKGezngnM3PLtSvOIiFcDUlaPiDBVDZpo6q9q4P4YjfcQp2NYx1rrC8h0M2XivDXrRc4xL6O
	6lMAT5R32tXLAIztlvseRJeHfcKwWn+PPtvUQ85rECIFKVVhWiMhXQHT8ATaUT9TYD5p/fuiy2L
	Qrt5zjf4/2Y+ZZIdz1+/8LTd9WsvD94kRy1vI
X-Google-Smtp-Source: AGHT+IECJYTgmORVl1GJPulMwRHI7fqTena20yt5D2ZEPG12P3Q/3w7Z1FEyC+U7ESI2BEr6ocnekw==
X-Received: by 2002:a05:6000:2209:b0:391:39bd:a361 with SMTP id ffacd0b85a97d-39ee5b19f89mr4671746f8f.18.1744890671006;
        Thu, 17 Apr 2025 04:51:11 -0700 (PDT)
Message-ID: <8551c59e-b038-403b-a131-ec50a74aaa47@suse.com>
Date: Thu, 17 Apr 2025 13:51:00 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 12/14] xen/riscv: implement setup_irq()
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Romain Caritey <Romain.Caritey@microchip.com>, xen-devel@lists.xenproject.org
References: <cover.1744126720.git.oleksii.kurochko@gmail.com>
 <2bc37c3996978129a5b2c888917307ea32448651.1744126720.git.oleksii.kurochko@gmail.com>
 <47492663-5832-49e7-af4d-ee536206e641@suse.com>
 <7b1f5d89-2be9-450f-a4db-381df42942e6@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: <7b1f5d89-2be9-450f-a4db-381df42942e6@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 17.04.2025 12:10, Oleksii Kurochko wrote:
> On 4/15/25 5:55 PM, Jan Beulich wrote
>>> +        /*
>>> +         * we don't care for now which CPU will receive the
>>> +         * interrupt
>>> +         *
>>> +         * TODO: Handle case where IRQ is setup on different CPU than
>>> +         * the targeted CPU and the priority.
>>> +         */
>>> +        irq_set_affinity(desc, cpumask_of(smp_processor_id()));
>>> +        desc->handler->startup(desc);
>>> +        /* enable irq */
>>> +        clear_bit(_IRQ_DISABLED, &desc->status);
>> Now it turns out this is really done twice: Once in aplic_irq_enable(),
>> and once here.
> 
> Agree, this is a job of *_startup()->*_aplic_irq_enable(). I'll drop that too.

Wait - see my comment there. I think it belongs here, not there.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Apr 17 11:52:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 11:52:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.957435.1350557 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5NnP-0001dl-1N; Thu, 17 Apr 2025 11:52:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 957435.1350557; Thu, 17 Apr 2025 11:52: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 1u5NnO-0001de-Tl; Thu, 17 Apr 2025 11:52:42 +0000
Received: by outflank-mailman (input) for mailman id 957435;
 Thu, 17 Apr 2025 11:52: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=m2wG=XD=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u5NnO-0001dU-FI
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 11:52:42 +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 767f95d0-1b82-11f0-9ffb-bf95429c2676;
 Thu, 17 Apr 2025 13:52:39 +0200 (CEST)
Received: from MW3PR06CA0027.namprd06.prod.outlook.com (2603:10b6:303:2a::32)
 by IA0PR12MB7601.namprd12.prod.outlook.com (2603:10b6:208:43b::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.34; Thu, 17 Apr
 2025 11:52:35 +0000
Received: from MWH0EPF000A6730.namprd04.prod.outlook.com
 (2603:10b6:303:2a:cafe::e3) by MW3PR06CA0027.outlook.office365.com
 (2603:10b6:303:2a::32) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.18 via Frontend Transport; Thu,
 17 Apr 2025 11:52:34 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 MWH0EPF000A6730.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.8655.12 via Frontend Transport; Thu, 17 Apr 2025 11:52:34 +0000
Received: from localhost (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; Thu, 17 Apr
 2025 06:52:32 -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: 767f95d0-1b82-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=zE7PzIrsrWUsNc7lP21TVh7pDg43+xoG2Nzrf0eTaP9hS4dYQlb6mwGg9p7/z4Qzpu/AcocDKE7Gd3rqVX8k5hS0sjdTU1o1BoVc1BKrkRvc92MttMhST1a6McCuzDllr20xJ36rHxk7s8yOsZ5T31FEbRuCKJRorWT0+XVlY3f7yPi6ZwORVdvODPSD11VikelJzJYA0Xsm5d+mneGOe/F7eCJ0QnHtD8Xld2p/xya/s3pVWq0vZccGsTllKEo6PPQs9fXbm6yhMhP641CabWxLibrtyFr9icb/nENtpWe2BgkjkBmgJD33hLsORcrpIiEOzq/zb0G8bnOOPEr7+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=yNARHEYffQbGzF0lv+iC3h6aQeYqSnjIfuvsEOnBQn8=;
 b=PJo4wdDL5MsrkB3YFO04MBYXE359YMHdbwh6JTfs8cacJRxjogeGDxJckBVv4vXAc80U4D+iLKQOdU6gq9ebIn4To7i1ilkTkofg4y8foBjtblPm8/8/KNMkfKKYyal/CCUz3oXL2BZH0dCWMvaJyaow54xyKqVs95jH+tzq/RsvqtKA9tdgNya+X4kcufgvk8ESgKlvjSqadHfry9KsFHRH0aUxTK0V8Nj9zDgLBV6X/KqsRSjbl6I4Jq++aT3JTxgMZiXsL7XIEJoTFeM6O0TvRLYiajrQa3c19ZMDkcvgnRLiqt9ysZYiaRFH+zR12sQDsvexJfiWpdkNJUKIcQ==
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=yNARHEYffQbGzF0lv+iC3h6aQeYqSnjIfuvsEOnBQn8=;
 b=pw9QXqTsIWe1Y5tbk9HvnPAWnx6Rh3Qwhwiq+pDnCA29BgSAqLG38g1mASKmzs3+yL88LlBsCqB1jr64AhWVjRKOP5l3z3imr8crLXLyI1zl9lbOEy1Rv4dR0n50s21JJUQhuP+CbCmM7ALf7WVyDG1TK15k/9DwPRz/eyCNrew=
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
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Thu, 17 Apr 2025 12:52:31 +0100
Message-ID: <D98W5DACRL5O.3ABYPRTAR6QTZ@amd.com>
CC: Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>
Subject: Re: [ImageBuilder v2] uboot-script-gen: add xen xsm policy loading
 support
From: Alejandro Vallejo <agarciav@amd.com>
To: Grygorii Strashko <grygorii_strashko@epam.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, "Stefano
 Stabellini" <sstabellini@kernel.org>
X-Mailer: aerc 0.20.1
References: <20250415070128.1938253-1-grygorii_strashko@epam.com>
In-Reply-To: <20250415070128.1938253-1-grygorii_strashko@epam.com>
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: MWH0EPF000A6730:EE_|IA0PR12MB7601:EE_
X-MS-Office365-Filtering-Correlation-Id: fbffcd11-7b46-41e7-d5fa-08dd7da6579f
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|36860700013|82310400026|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?WXNhS3RDblNrMHBVVkkwY1BaZG0zVS9RNUh2cXZZelBPUU9teCt4YVpNQUx5?=
 =?utf-8?B?MUx1aXZRZExEaC9qQ0Rnc2s2c29ESEx0aitlbTcyYWYxYmFsWVBweFFaaDFk?=
 =?utf-8?B?SmtmTWR4cUVvcWJFN3E2NkxCSEpvTU9oRUNZbmRnUU16WDR2RVpQb2NMNnNJ?=
 =?utf-8?B?ZlBzc3E4eTRFYVhWRDdwbXNVR29qa0tpeHlBMCtDdkZBZzRwTWcyU0xUcnJ3?=
 =?utf-8?B?eWJ2bUY3TXI0RUVFa2w3Vmdha0VQOWhzNEc5ZUZVNXdGbWVkU0RXNGZVTU84?=
 =?utf-8?B?ZzViUHMxc1J3VU1Qd29Qb0hNZ1cvUmI5TmZZRFJkVHlycFJoODJyNlV1ZXoz?=
 =?utf-8?B?MDkxRENWUlM4Ui9WUzA2V25TNTNaL3JHVG1WVkg3ekE1aENOZS9xeXFNZ0hY?=
 =?utf-8?B?QjNFaG9nZWY1U0wrVEVSNDRIQjYyOWVRa0xMUWlLNkMxbWVoNUZqTE1QV1Bq?=
 =?utf-8?B?TDZ4RUlzYkx0U3N4T3FDTlFObG1ISkpsTzdOYzlrU2hLL095Ti9FNTZZOU42?=
 =?utf-8?B?eEUyT2g5Y3F3WjRzTVNqcktYQXg5QjRQMnFzZnA3RmM3a3RVaHFlZWRaQzVz?=
 =?utf-8?B?NFIvSklPTlVUV1l5MG1LVGM0bnVMcS85YU5yMEZhcUhrY0pQbnRxNkZMNkRO?=
 =?utf-8?B?RGVjQUJYeHUycklOYUkyOUlsVVJ3bmRMNGJqMEpRTFpxMjdaWk5JcjFPSFg3?=
 =?utf-8?B?cmkvcGp3ckMrQjViNlZxeTczNGJDZFpGVGpuV3VyZmNJbnpiTUgweitEUk11?=
 =?utf-8?B?emVqbm01UHdBV2hkbkl2UWZLMnYyMWxaV1NqVWJMZjFjKzNDZFpZSFJDYzk2?=
 =?utf-8?B?TFZrRnVRQlB1SlRya3dDaitLY1VNMkFhSk5zaDYvV2UyQWJodmZKMjhMQ1lR?=
 =?utf-8?B?UmpqV3NFcEYxRzZ3Z0FRTDJuMmMwU2xhQUtycXF0bGpTa2lzeWp2VnB6T0Vx?=
 =?utf-8?B?alFkUVRjQjRtNVVjR3JURTJrOE8zeFByaWhVNndwUHN6Z2RPR0M1SUw0WUx0?=
 =?utf-8?B?T3ExK1pmSFJJQWgyYXhhMjhBMUMyQzQ4empCNGMvTmxlTGJjVXBVZWQwZmx5?=
 =?utf-8?B?VWFPdUwyY2l0d0xmRHFLdk85eGN0NEZMOGt5Qm9GUlhsSjFMMEZTZzgvZk05?=
 =?utf-8?B?NTNRYXZ6UUV2NCtGbzZjZHcyWXd4UFdTYlpKOTNqVzF5RzN1QXBwRmIyOVp3?=
 =?utf-8?B?UnhHUCtWTFp4MlAxdS9IdERPT3dOYjl5Slc5RnRVR0dwMGE4cVptNG0wT3l6?=
 =?utf-8?B?d2NZb0hGMVR4MVhUbmRSSEM5UTQrMGNpTzk4dTVCWFBNRTllc2cvZE1Pa1pX?=
 =?utf-8?B?eFhpem45N3luRGhsRjVDaDREZ3ppZmd0MWxVb1Y4MzJ1Ti9SWHhoeUdEUEFy?=
 =?utf-8?B?ZWUwSHFBbDZEdWxoaXhXNXhqaHV6RGVYdkRvN2NFMFluSTE0RlFkWFpJQzFq?=
 =?utf-8?B?Q2xGby9FRHJieVVqTFFMQjBXZysyZytIeFE0SEhsbnZyZ0EvR1JPV0wzNGg2?=
 =?utf-8?B?Y0VoUS9KcS9MYnEydUZYdzYvL2YwYmovVGpKWDVNR3prdTlXRnNndEkxNmR4?=
 =?utf-8?B?ZmxOdWxHd0UrME1rZk9IRERuaWRRQ2d0MWVXeHF5MVBDY0dtYmdNbmpmVjk3?=
 =?utf-8?B?MTVmOVZGNHpScFBxYnROdisvd3VuQmlCTmtHLzcyQXI4K2llUk5oVUJ3RXFt?=
 =?utf-8?B?UUhBK2VQM01WLzhGRnhYOFp1bkhxa1cxeFZleWJ1bENwU1ZnM2tlSnRyeHNM?=
 =?utf-8?B?RjBESHJ4a3RXMGYwTUlLbW9hSGNKTzBuWnVsdVZZbWJ2aEtCVWdOeThRSURO?=
 =?utf-8?B?aHhFYkV1RXZUOXZ2aVYxeWxrMGpLNWhiWERQclUzUGd0dnFLbnhwc0RPOHFP?=
 =?utf-8?B?N3N1SDNtNUR2ZXZSZjRhNXNOeWdFeDlRWnN6Y0c4NVRnZ08xdng2UitOVE11?=
 =?utf-8?B?WEZXckV3b2l0d1V6cmFoYjVEeTI2OUJjWDVlZjRCS0tWei82Rmd4R1hiNXcx?=
 =?utf-8?B?TDQrandYbC9qa0xCRmlOT1M1WlRRQ2pPSDNJRGtUTXk4bjNyZmJSK0IzZVZX?=
 =?utf-8?Q?kZES+H?=
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)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Apr 2025 11:52:34.3051
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: fbffcd11-7b46-41e7-d5fa-08dd7da6579f
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:
	MWH0EPF000A6730.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PR12MB7601

On Tue Apr 15, 2025 at 8:01 AM BST, Grygorii Strashko wrote:
> From: Grygorii Strashko <grygorii_strashko@epam.com>
>
> This patch adds Xen XSM policy loading support.
>
> The configuration file XEN_POLICY specifies Xen hypervisor
> XSM policy binary to load.
>
> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>

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

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Thu Apr 17 11:52:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 11:52:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.957436.1350566 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5NnT-0001tu-80; Thu, 17 Apr 2025 11:52:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 957436.1350566; Thu, 17 Apr 2025 11: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 1u5NnT-0001tn-55; Thu, 17 Apr 2025 11:52:47 +0000
Received: by outflank-mailman (input) for mailman id 957436;
 Thu, 17 Apr 2025 11: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=nsoM=XD=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u5NnS-0001tH-Fi
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 11:52:46 +0000
Received: from mail-wm1-x32d.google.com (mail-wm1-x32d.google.com
 [2a00:1450:4864:20::32d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 79b56762-1b82-11f0-9eb0-5ba50f476ded;
 Thu, 17 Apr 2025 13:52:45 +0200 (CEST)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-43cf628cb14so13441475e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 17 Apr 2025 04:52:45 -0700 (PDT)
Received: from [10.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-22c33fe6894sm31348835ad.215.2025.04.17.04.52.38
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 17 Apr 2025 04:52:44 -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: 79b56762-1b82-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744890764; x=1745495564; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=lmKJhYLaEm5XtDyFOVODFlR2ZrhsBfILgSsmEvzbfNI=;
        b=W2dJMRaEh8hhKtp9A6X8q+kNDgn8VAhADRg35vAyrru899BOalFNAcwCh2EofF28LK
         ikYU5Li4YhqLXz3y5Cp5CZk9H5RXE6Q3rjor521YFHxGmRwLxk/2UN4lDSm7GHCEuNKm
         0tdK8c5xd2TYIciqmnni4FZ1nfeE+pWE6H7RyfXS3DpUOKZbZ3TvzUtKULTY6e6EWnZ6
         amFIZwmqQ4VPJioj0E66WosGVsIY9EaYXtI1+h4hg5sHgnT7VWVGM5uLuJ2thVlcDT04
         rxI3a7a9E9IkIr31lNQ7190jEcQEL3louI6ZMlM9aFcc1QrgRAReg1rLV2H0USRRtrLI
         foWw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744890764; x=1745495564;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=lmKJhYLaEm5XtDyFOVODFlR2ZrhsBfILgSsmEvzbfNI=;
        b=Pnvsdg2ERzrNqXwcp3MDPVUqQMyQKE+htEJVkXu8iClYISUbqJUaWfaXRgqX9JNqTo
         EqvhR/k3M9wcqL+szSMQaSVNrySgMIRKZheeENzZAbWg9MAz2bObU0DSLqrg27PU6l+3
         YKzMNrR1hHOjZHB0jEKyAadACTAvra2+bUmNAswHrXDqeHLKSmSadNW6oF3Oeb4Tl5IJ
         I0NJBlVOKBjbJCn/HKw7tQ8bmysW4ye6G3yHrwJUvncsyS/4kgKKnVjKBk6ebKAtBzf5
         W04iDoG3T8NS/eZZFttsgokaVSn5/+qyTIoj0x3s0X76AqtBr3xgDLEPWiMqDuEiKZR3
         sFrA==
X-Forwarded-Encrypted: i=1; AJvYcCXPuFCZxfQ5xjS2JnVRFmn13mT6KzjUxoIyByLzjJtUCAr8UuDKj3Wrg+21310XLS1TMN9X2sAUxog=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyEAVE34N7l7+zaFnkvg9RXCq8fMApPE1a31ul8qeVpyMcK8LO9
	8kbrr3iTqa+xQ2D+wcAIapeHiNWrgvaLiutb+ZG2HcOsomS2F6IgqW4Q2UdLUg==
X-Gm-Gg: ASbGnct57dztSHnEUZhbzMlFSiKWghyB1M+qifAGvj3q/pN80yhQgl+/odyAzeHzWzE
	abgPN5oG6G0+nm1KUmvt+P9nTgQbcCFHA4sfh5ET63tM5CHR2lQZ63oLqx+ecylDTfyl/qAB223
	3uVJVxiDxegFPgHkydx97jQucnDBOBaILQ83VZXSbvl4PvxfN+vh3QCckE9TTw9tCFU+OkqEUbM
	lWci4VBIwnqRELuUC38rIguVnVmpQx432MpnNtfTbgwPVjOeTcyVqxp+qDYUb24ityRuCAo3O45
	vs3ODl3s+63Lf5/FB+SQGw56X1xZKiU8ZIjiYEV9omIyAenWEQbOdWWyhGXjr+vQINseo8Ru3tk
	Yn+MdPMQUD5bgYY9Re3byCLO8kQ==
X-Google-Smtp-Source: AGHT+IGV5dnmZ820lQWYdm5JkUTPHnEgQbhvj5DibZKmgEMtUJKnPM3+PzMQpOCgR/mTENVv2pm1bw==
X-Received: by 2002:a05:6000:2212:b0:39c:12ce:1112 with SMTP id ffacd0b85a97d-39eea304284mr2424300f8f.21.1744890764537;
        Thu, 17 Apr 2025 04:52:44 -0700 (PDT)
Message-ID: <0169d9b5-4b44-47cd-afae-ea3d6a9467c3@suse.com>
Date: Thu, 17 Apr 2025 13:52:34 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 14/14] xen/riscv: add basic UART support
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1744126720.git.oleksii.kurochko@gmail.com>
 <3e96851da8751ac17cbf0cb5a649c0d86259460a.1744126720.git.oleksii.kurochko@gmail.com>
 <49889d22-55b6-4dd4-b497-13b50d19d607@suse.com>
 <4c16e34b-10b1-4320-b031-e26a883426a0@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: <4c16e34b-10b1-4320-b031-e26a883426a0@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 17.04.2025 12:31, Oleksii Kurochko wrote:
> On 4/15/25 6:03 PM, Jan Beulich wrote:
>> On 08.04.2025 17:57, Oleksii Kurochko wrote:
>>> --- a/xen/drivers/char/Kconfig
>>> +++ b/xen/drivers/char/Kconfig
>>> @@ -3,7 +3,6 @@ config GENERIC_UART_INIT
>>>   
>>>   config HAS_NS16550
>>>   	bool "NS16550 UART driver" if ARM
>>> -	default n if RISCV
>>>   	default y
>> Just to double-check: Unlike Arm you don't want this to be user-(un)selectable
>> on RISC-V?
> 
> Thanks for noticing that. I want to have this selectable by user. I will add RISC-V here.

At which point we may want to consider whether the condition on the prompt
wouldn't better become "!X86".

Jan


From xen-devel-bounces@lists.xenproject.org Thu Apr 17 12:20:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 12:20:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.957469.1350581 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5ODo-0006Tr-Ia; Thu, 17 Apr 2025 12:20:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 957469.1350581; Thu, 17 Apr 2025 12:20: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 1u5ODo-0006Tk-EW; Thu, 17 Apr 2025 12:20:00 +0000
Received: by outflank-mailman (input) for mailman id 957469;
 Thu, 17 Apr 2025 12:19: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=bAEg=XD=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1u5ODm-0006Te-Bl
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 12:19:58 +0000
Received: from fhigh-b8-smtp.messagingengine.com
 (fhigh-b8-smtp.messagingengine.com [202.12.124.159])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 44eb37fe-1b86-11f0-9eb0-5ba50f476ded;
 Thu, 17 Apr 2025 14:19:55 +0200 (CEST)
Received: from phl-compute-09.internal (phl-compute-09.phl.internal
 [10.202.2.49])
 by mailfhigh.stl.internal (Postfix) with ESMTP id D4D9125401FB;
 Thu, 17 Apr 2025 08:19:53 -0400 (EDT)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-09.internal (MEProxy); Thu, 17 Apr 2025 08:19:53 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 17 Apr 2025 08:19:52 -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: 44eb37fe-1b86-11f0-9eb0-5ba50f476ded
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=fm2; t=1744892393;
	 x=1744978793; bh=/YymnZgAfdFnpouMVkP3K4lNpne9K0hMX2+wm/bdN9U=; b=
	cOrZoz9bFe4fNVg54vio+SiZHZJb8lQLkDevj0AcH7M9RZKcPhGFOMS6KkgI2uYG
	3JVb6rcAgcB1ft3L7ovdFJOg5KxIVON2pTslZ2YV8z4h0rydcG/zjdJzusqJV6jD
	ZgQD16ljF59idDRrGh/j/tCVReiNs7eeDFrXFfsraJXISkX4gUGcEOjbZyVjAJOQ
	w0vSJxYfI/WP0OldZ0k+9OASDx1DeL1mRff4OQug+Uni8m1q+3KXQZXylHHVQSPV
	6zy3ty0kKh7xKQ7OSYq61BV0X65ZdjRhj1v621e/7Ga/6hoepUtopcSCqXKG9KGp
	XmgxLnlouCMvoKDUKlombw==
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=fm2; t=
	1744892393; x=1744978793; bh=/YymnZgAfdFnpouMVkP3K4lNpne9K0hMX2+
	wm/bdN9U=; b=IHZVtMRNFlx6Ah+z1Yxf29l/GFMFYznCuB4AF2hWwAuQNIbXnP7
	/694/d4NB3tGjYHf+6C6nBKiBM1VhQSE/om3v8dlOANOvLpXfcSeXTUtGGxJFQeU
	FYNB2zEQCcZKbJlbPhFlHa2sR37lB+9vfGmwlDLkK4vjqswRJn6oVqizAJ+ikzIp
	SlOIZqKB8tIjQ2pZxg0zGX3fAj8kpoxHvb8RwogJI1dVzIXKRaJVZey5YMlIq3Aq
	zH0nmZEMB5+RmTotS84qh76O85rhXcIErh8GL8DNxbqPY3xisnpeC6KbLC2+DS0j
	QFcMnjqMiwROiCwZEdTbTFmbQcQWKPoXTHQ==
X-ME-Sender: <xms:6fEAaPW8Ip4B8pG-OeX9vCb1yO6w-WF-0gSpiLE1zxb_6NUMyKZ-IQ>
    <xme:6fEAaHmuYHoz7wWjtw3xDpCX-cLcOtrck_CJENMXfjH_xsFJ4faWeSiACcKREjlgn
    bJ-Oggxj-qaZQ>
X-ME-Received: <xmr:6fEAaLZX17TPFG2aA8vcMv0UB_MdWomcGCZAUDiM0omDqq1mdsHmkKgXQidpQcRFGNuVQ6jN_ofmVGJmrM7VxEW8yb67X_J_qg>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvvdelvdegucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
    pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
    gvnhhtshculddquddttddmnecujfgurhepfffhvfevuffkfhggtggujgesghdtreertddt
    jeenucfhrhhomhepofgrrhgvkhcuofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuc
    eomhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecu
    ggftrfgrthhtvghrnhepgfduleetfeevhfefheeiteeliefhjefhleduveetteekveettd
    dvgeeuteefjedunecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhf
    rhhomhepmhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomh
    dpnhgspghrtghpthhtohepgedpmhhouggvpehsmhhtphhouhhtpdhrtghpthhtohepjhgs
    vghulhhitghhsehsuhhsvgdrtghomhdprhgtphhtthhopehrohhgvghrrdhprghusegtih
    htrhhigidrtghomhdprhgtphhtthhopegrnhgurhgvfidrtghoohhpvghrfeestghithhr
    ihigrdgtohhmpdhrtghpthhtohepgigvnhdquggvvhgvlheslhhishhtshdrgigvnhhprh
    hojhgvtghtrdhorhhg
X-ME-Proxy: <xmx:6fEAaKVIKW1jMlRewhQW1lb7JFYkgILTLfEV8OmgsZfnb6-KTdp1mA>
    <xmx:6fEAaJnwN9wumGMijADfI3Vbw54WA_Qtv4KsO_1sDOitLVodIGQVrA>
    <xmx:6fEAaHeD7QH2sOE-DSfG1Sfw-HwUM-lkI9Dq_t7LDUOjLz47HGV_Pg>
    <xmx:6fEAaDF1jwyUuJ-ZYHUFHGV0AlpP8aNmaZo5vKm5qxPSPAQ26OOInQ>
    <xmx:6fEAaF8GYpZjfSiHk7Uj7x8VuZiFx66RGFS-lpPDG3tBoJ8ckHQS7QZA>
Feedback-ID: i1568416f:Fastmail
Date: Thu, 17 Apr 2025 14:19:49 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.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
Subject: Re: [PATCH v2 2/4] x86/hvm: fix handling of accesses to partial r/o
 MMIO pages
Message-ID: <aADx5mw8QHZmVuKh@mail-itl>
References: <20250415153246.81688-1-roger.pau@citrix.com>
 <20250415153246.81688-3-roger.pau@citrix.com>
 <c890cef7-da7c-4cb1-922d-8b0b155eca43@suse.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="/csOlLAnJ9vkQ+oo"
Content-Disposition: inline
In-Reply-To: <c890cef7-da7c-4cb1-922d-8b0b155eca43@suse.com>


--/csOlLAnJ9vkQ+oo
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Thu, 17 Apr 2025 14:19:49 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.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
Subject: Re: [PATCH v2 2/4] x86/hvm: fix handling of accesses to partial r/o
 MMIO pages

On Thu, Apr 17, 2025 at 09:57:29AM +0200, Jan Beulich wrote:
> On 15.04.2025 17:32, Roger Pau Monne wrote:
> > +void register_subpage_ro_handler(struct domain *d)
> > +{
> > +    static const struct hvm_mmio_ops subpage_mmio_ops =3D {
> > +        .check =3D subpage_mmio_accept,
> > +        .read =3D subpage_mmio_read,
> > +        .write =3D subpage_mmio_write,
> > +    };
> > +
> > +    register_mmio_handler(d, &subpage_mmio_ops);
>=20
> Are there any criteria by which we could limit the registration of this
> handler?

Yes, see patch 3.

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

--/csOlLAnJ9vkQ+oo
Content-Type: application/pgp-signature; name=signature.asc

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmgA8eUACgkQ24/THMrX
1yyanwf/V2dX9hn+v3TcWnqS4wsCNXJ18KsDVzW+He2WaUfNXYGskkpAgY5CjK8/
G4A2exCwv/cWREx6wnfAoV7m03sbqleOEqqg6yDUQszAWEXlW/H3BPsckYnpLYA/
0mVfuZ0hrpR2CRpMp/K5qfvFElJ6jgMJOFPGN2nrDgRCxi1cyD8aI+1cjiFzXdYf
3luU51L1i93GYg/5aqa7Atw1Cn/I+q+mU9yY2BmKL/rP90Xm2oEQdBIG5eu/mCs8
1vl4oClVcjQJPbtwTEYedOy9jZb+TTIcdU9PBmMSoD3856+hj36s59LwPS1cipSj
8es6WULrf+0zo2x+UV7IFLNxv1s5LQ==
=OeUV
-----END PGP SIGNATURE-----

--/csOlLAnJ9vkQ+oo--


From xen-devel-bounces@lists.xenproject.org Thu Apr 17 12:21:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 12:21:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.957480.1350590 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5OFZ-00009e-S5; Thu, 17 Apr 2025 12:21:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 957480.1350590; Thu, 17 Apr 2025 12:21:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5OFZ-00009X-PV; Thu, 17 Apr 2025 12:21:49 +0000
Received: by outflank-mailman (input) for mailman id 957480;
 Thu, 17 Apr 2025 12:21:48 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=s05F=XD=nppct.ru=sdl@srs-se1.protection.inumbo.net>)
 id 1u5OFX-00009P-Cb
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 12:21:48 +0000
Received: from mail.nppct.ru (mail.nppct.ru [195.133.245.4])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 857209ca-1b86-11f0-9ffb-bf95429c2676;
 Thu, 17 Apr 2025 14:21:43 +0200 (CEST)
Received: from mail.nppct.ru (localhost [127.0.0.1])
 by mail.nppct.ru (Postfix) with ESMTP id B7D441C0E89
 for <xen-devel@lists.xenproject.org>; Thu, 17 Apr 2025 15:21:39 +0300 (MSK)
Received: from mail.nppct.ru ([127.0.0.1])
 by mail.nppct.ru (mail.nppct.ru [127.0.0.1]) (amavisd-new, port 10026)
 with ESMTP id atMB0KBaamAr for <xen-devel@lists.xenproject.org>;
 Thu, 17 Apr 2025 15:21:39 +0300 (MSK)
Received: from localhost.localdomain (unknown [87.249.24.51])
 by mail.nppct.ru (Postfix) with ESMTPSA id B90721C08D8;
 Thu, 17 Apr 2025 15:21:30 +0300 (MSK)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 857209ca-1b86-11f0-9ffb-bf95429c2676
Authentication-Results: mail.nppct.ru (amavisd-new); dkim=pass (1024-bit key)
	reason="pass (just generated, assumed good)" header.d=nppct.ru
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=nppct.ru; h=
	content-transfer-encoding:mime-version:x-mailer:message-id:date
	:date:subject:subject:to:from:from; s=dkim; t=1744892499; x=
	1745756500; bh=yim53aUfLmVou/JvqKYODc4xwB/wJ3VFd3Zy7HjYysY=; b=J
	nGWkbr1xEf1KsxCBwjcBkNnV6b0TZ0wYOB79+mVs6613x4wVR5biKfe2737V48jn
	9kD0F8vDRWriqLbbaZv/eecuR5ktq3lCTsVdCHVio6HPs40lv01JASYlM5moySGp
	pgbzZ+/GM5pG0iMY5EorbRIoeqTP5MR1ZFVilWFuH0=
X-Virus-Scanned: Debian amavisd-new at mail.nppct.ru
From: Alexey Nepomnyashih <sdl@nppct.ru>
To: Juergen Gross <jgross@suse.com>
Cc: Alexey Nepomnyashih <sdl@nppct.ru>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	"David S. Miller" <davem@davemloft.net>,
	Eric Dumazet <edumazet@google.com>,
	Jakub Kicinski <kuba@kernel.org>,
	Paolo Abeni <pabeni@redhat.com>,
	Alexei Starovoitov <ast@kernel.org>,
	Daniel Borkmann <daniel@iogearbox.net>,
	Jesper Dangaard Brouer <hawk@kernel.org>,
	John Fastabend <john.fastabend@gmail.com>,
	xen-devel@lists.xenproject.org,
	netdev@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	bpf@vger.kernel.org,
	lvc-project@linuxtesting.org,
	stable@vger.kernel.org
Subject: [PATCH v2] xen-netfront: handle NULL returned by xdp_convert_buff_to_frame()
Date: Thu, 17 Apr 2025 12:21:17 +0000
Message-ID: <20250417122118.1009824-1-sdl@nppct.ru>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The function xdp_convert_buff_to_frame() may return NULL if it fails
to correctly convert the XDP buffer into an XDP frame due to memory
constraints, internal errors, or invalid data. Failing to check for NULL
may lead to a NULL pointer dereference if the result is used later in
processing, potentially causing crashes, data corruption, or undefined
behavior.

On XDP redirect failure, the associated page must be released explicitly
if it was previously retained via get_page(). Failing to do so may result
in a memory leak, as the pages reference count is not decremented.

Found by Linux Verification Center (linuxtesting.org) with SVACE.

Cc: stable@vger.kernel.org # v5.9+
Fixes: 6c5aa6fc4def ("xen networking: add basic XDP support for xen-netfront")
Signed-off-by: Alexey Nepomnyashih <sdl@nppct.ru>
---
 drivers/net/xen-netfront.c | 19 +++++++++++++------
 1 file changed, 13 insertions(+), 6 deletions(-)

diff --git a/drivers/net/xen-netfront.c b/drivers/net/xen-netfront.c
index 63fe51d0e64d..1d3ff57a6125 100644
--- a/drivers/net/xen-netfront.c
+++ b/drivers/net/xen-netfront.c
@@ -985,20 +985,27 @@ static u32 xennet_run_xdp(struct netfront_queue *queue, struct page *pdata,
 	act = bpf_prog_run_xdp(prog, xdp);
 	switch (act) {
 	case XDP_TX:
-		get_page(pdata);
 		xdpf = xdp_convert_buff_to_frame(xdp);
-		err = xennet_xdp_xmit(queue->info->netdev, 1, &xdpf, 0);
-		if (unlikely(!err))
-			xdp_return_frame_rx_napi(xdpf);
-		else if (unlikely(err < 0))
+		if (unlikely(!xdpf)) {
 			trace_xdp_exception(queue->info->netdev, prog, act);
+			break;
+		}
+		get_page(pdata);
+		err = xennet_xdp_xmit(queue->info->netdev, 1, &xdpf, 0);
+		if (unlikely(err <= 0)) {
+			if (err < 0)
+				trace_xdp_exception(queue->info->netdev, prog, act);
+			xdp_return_frame_rx_napi(xdpf);
+		}
 		break;
 	case XDP_REDIRECT:
 		get_page(pdata);
 		err = xdp_do_redirect(queue->info->netdev, xdp, prog);
 		*need_xdp_flush = true;
-		if (unlikely(err))
+		if (unlikely(err)) {
 			trace_xdp_exception(queue->info->netdev, prog, act);
+			xdp_return_buff(xdp);
+		}
 		break;
 	case XDP_PASS:
 	case XDP_DROP:
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu Apr 17 12:29:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 12:29:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.957494.1350601 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5ON2-0000oP-Jl; Thu, 17 Apr 2025 12:29:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 957494.1350601; Thu, 17 Apr 2025 12:29: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 1u5ON2-0000oI-H5; Thu, 17 Apr 2025 12:29:32 +0000
Received: by outflank-mailman (input) for mailman id 957494;
 Thu, 17 Apr 2025 12:29: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=m2wG=XD=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u5ON1-0000o5-7M
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 12:29:31 +0000
Received: from NAM02-SN1-obe.outbound.protection.outlook.com
 (mail-sn1nam02on20627.outbound.protection.outlook.com
 [2a01:111:f403:2406::627])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 99477748-1b87-11f0-9ffb-bf95429c2676;
 Thu, 17 Apr 2025 14:29:26 +0200 (CEST)
Received: from CH0PR07CA0007.namprd07.prod.outlook.com (2603:10b6:610:32::12)
 by DS7PR12MB6357.namprd12.prod.outlook.com (2603:10b6:8:96::16) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.35; Thu, 17 Apr
 2025 12:29:18 +0000
Received: from CH1PEPF0000AD7B.namprd04.prod.outlook.com
 (2603:10b6:610:32:cafe::2a) by CH0PR07CA0007.outlook.office365.com
 (2603:10b6:610:32::12) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.18 via Frontend Transport; Thu,
 17 Apr 2025 12:29:17 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CH1PEPF0000AD7B.mail.protection.outlook.com (10.167.244.58) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Thu, 17 Apr 2025 12:29:17 +0000
Received: from localhost (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; Thu, 17 Apr
 2025 07:29:16 -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: 99477748-1b87-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=J5SJLVQhI1JpDrneDsWEHspqwQNQcYfi+c0aBlt6W4cTxiMlL2KWGe8T1cWYW9NUWKM44qsE4Z9nr7Tf45CXIsMkXlvaoyHayu6t2UOEzTxdVtdjpAavWRhFEgz/LrC4c16eWIjRJadcmoDI9KjR7XhqZB9KLTmvODXvsDbYeWiAKgcckpVD+9joegmFRm5P/sWr67WXRU6v9nw3R+IiKWU98NAFP7jWvzKpudmKQrht9aj1bGwjbTkAbs5xrgaFSx3yATXI4hdpqQFz5a1T2BrN5zU9NehD8vYw3OiaytkIkHyDk8Sc6PCaQKOm943wjrtKLC5fOsvGVS23WOdsZg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=T8cSOcA6tZh3QpLyLSZ7HnTeCUHBldxUsp+r0svp+B8=;
 b=NWyHCWWS7QqGfFs4z64IhUd1bOqwAegvGpuZbsBbVWhkij+3HtCgIpelUn7mOthyjTkPNek2FaojScRdvh4eMQr+NkDhgsHAka5VxYUOC39PIUxLh+4/nuNCB+dzD0SL3MvxW4JXUkGLWTCs9pbliWlFuQDDdsXmQtM8dmLy5YHV8f5hf296KfvEwcJ/idQvOvWE5Pwm2B1SB6uZj02HxkC3hBvY1C38GSwLa6ubnUxClxt7BU9zOu5B+ZdZqAXh4DkTfYEZzzRvOhIh+W9JXfdRTnbVT9HrddhhYmZhtJTHL4D6MoBERQIP+roMOWfXO3Timf1SBMQl+BKF4nUClA==
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=T8cSOcA6tZh3QpLyLSZ7HnTeCUHBldxUsp+r0svp+B8=;
 b=2cPVpQTSEumkLQMZMtRoL9NsJcYQOIFrBJlGNWNEAbvJm4HZh/x2Du3zXKU1DFL1k3jtNDDFMN8sUPff1m7Bjf2052YKXg+anAJctpsNbRWaBL3AYOwYaNpH0VpPsIueib0JQAGzDwbIHI1rhmybzqt8pynIV6WNVBXlqQEb5Dc=
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
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Thu, 17 Apr 2025 13:29:15 +0100
Message-ID: <D98WXHMMKSC8.2GVDVGQMC6XTT@amd.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Xen-devel <xen-devel-bounces@lists.xenproject.org>
Subject: Re: [ImageBuilder] uboot-script-gen: fix arm64 xen u-boot image
 generation
From: Alejandro Vallejo <agarciav@amd.com>
To: Grygorii Strashko <grygorii_strashko@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>
X-Mailer: aerc 0.20.1
References: <20250414081223.1763630-1-grygorii_strashko@epam.com>
 <alpine.DEB.2.22.394.2504151758170.8008@ubuntu-linux-20-04-desktop>
 <c0a5ca22-fc42-47fc-b1b0-358992014454@epam.com>
 <D984SS1H2QX3.3G4ZR015V2U3P@amd.com>
 <b874731f-55c5-4783-995e-4da916e305a9@epam.com>
In-Reply-To: <b874731f-55c5-4783-995e-4da916e305a9@epam.com>
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: CH1PEPF0000AD7B:EE_|DS7PR12MB6357:EE_
X-MS-Office365-Filtering-Correlation-Id: 380a55c7-fe23-43cf-d6a1-08dd7dab78e5
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|1800799024|376014|36860700013|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?MWNVR2FqNGNUTTVuSTRIakFlV0tlZG1wNVFSWmJJVkw3cXQ0VGVkNnBtaW5n?=
 =?utf-8?B?VEFIY3dsVmFiVllYTmVHbTQva3ZiVWNmb2JuZzZWcFNjM1RqVkZ4em9LOXdD?=
 =?utf-8?B?WTkxSVZFL0N6Q2Zld0p5SVRtL2NsUVNVdmtLSTBTV2ZEZ0J4RXIwS0VsNCtL?=
 =?utf-8?B?V2tsM3NOSGVybWtZdWk1L3lUVEhzd1lIbU1NOTlhWkRXYml3NTVhZUZuY09x?=
 =?utf-8?B?TUZRNy84NUVNWmJ6djhCbHRUcnYwNzRHb0pScEZKWStlZW1lZlBoYTA4VXBn?=
 =?utf-8?B?UHF6ZGhQY2w5Q1ZHT2ZhMnZzK2JScDNLWFQwNE1tRXV6Mi9ySlRoLy9rclNR?=
 =?utf-8?B?KzVsTDNFNzJ4cGRzWDZaZTgyMVlRbC9rUjNVL0l5a0JWa2xFb3VhZGdXTlFn?=
 =?utf-8?B?L2xOTjV3OEtyL254QzZrTEc2TkJycFpxNnUzTDdTdEh5ZmNaS2ZjWHNHbDZJ?=
 =?utf-8?B?MWF6cG0vaU9hVXlGRHlFYnArUnRjS2RQZlNUNGp2MGNSMkZPTEo4NGVZZis2?=
 =?utf-8?B?bStib2N3elR1YmdvOWw0SGt1TVF2WHdBOE5CYmRHOWtOcnczcEd5cEtOL1d2?=
 =?utf-8?B?elh0TytaWHUyeU1LV1VrVUp5RmJVcGxoUDY4L0RhMWNsYm91Zis5QWJ2b1VQ?=
 =?utf-8?B?cXlhNU1hYk8vYUNIbU03MDRDNWI4TG5sMjE3UlVqemo0VlZLaUdGUnJ0SVZD?=
 =?utf-8?B?d21DekdWU2dvZ2Uzb1ozaEZvRm1mazNNenROeW9BeUVRekM2WER5R1BCTFFU?=
 =?utf-8?B?ekxxN2lRUlkrQU5lNUFKV3hlNTJaR080eGlBMktXZVBza1dWOGhva3VQZ1ph?=
 =?utf-8?B?WC9YS3NRSCs4UU81VWlQS2JVREsrRldPdEt5MHdWaVZNamRpTjNSRkNodDZI?=
 =?utf-8?B?SVVKNzNUeXA5a0w5MEJpSThhSm9FdjhsVzZRM1VoSnoxSW1NM0N2SEpyMyt6?=
 =?utf-8?B?OVVNTVNhS0xnTFZ1cnh0cW9DcEEyWXpCMlNmY3htNU1UQ3ZTQU9DMzdKZitp?=
 =?utf-8?B?czNVeGJGamhIczZ3NzRURkplM2s2aXAyTU4xcWJ5VGRmNjhHRFBsRGhPSE5h?=
 =?utf-8?B?YW9TaGVvOFVtdWk1OU9tQ3JNU2FTeXh3RHZMNWdBMHdjMnc0RmZNZXZ5UDJX?=
 =?utf-8?B?QTEyaTMycU92eFoyQzRFaWNkb3pmNGJONmhPQXg2K3lSRENJMkZCVDladjEz?=
 =?utf-8?B?dWNoTXJwSVBzN2liNzEwdmoyeENsL2VYbFpuVWEwVlh1RG1zZVhob1dDMVV4?=
 =?utf-8?B?VXozYjIvNVBJYkx5QW5FYzBheUdqdXB3ZXpCcnkvUmU0aWxoLytvWElrSHVO?=
 =?utf-8?B?amVxdUl1bUNGb2NIT3NMU2dqSUpsNkxPUXNxU0dpNDZuZ0dIdTJwSENGQTd1?=
 =?utf-8?B?ek1FaHB2ZmtKSUFQeE8wT3F2RHBWcmRTbVZJaWpzRGt0WFRIdFZKbzIrWjN2?=
 =?utf-8?B?NzVtVmFlMk9zVG5mZjdIdEpJbEtZQ3RDQWVHenNxUUlMYXhWVy9LdHlKNnY5?=
 =?utf-8?B?OHl1dlRab1BMOEc3OHVIZWI4cVE4N3RpVEhzYkMwc2hlTnVJSUNHMStXWklt?=
 =?utf-8?B?UUtKWGJodTZWb2NmMzFrTTVpSTJvM3J6bmJQKy9NYXZGdEFMU3lmbkFEcXMy?=
 =?utf-8?B?RGl4c3Zqa3BYR1R4ekZZMUVJYk1zQUVWeXlseXBlOFNsVnNVSlQvSEVHd3A5?=
 =?utf-8?B?Z2IvQTVHUTQ1NE1WV090RUpweStDaGd5QnlHYnlkNVVwMjdURjNWanBsUzQ1?=
 =?utf-8?B?d2tKWW9VaWFOVnN2YVEzcFlFQkUvanprbHNYZTJDNytiYkdpUzI3WWVkbnUr?=
 =?utf-8?B?dFV3S3RHc0xyQXZiSDhrLyt5U0EyK0ZGTG9UVnJ2YXN1cFV2ZGZGTHJDYUwr?=
 =?utf-8?B?RHhMM3lYSjF2cFFUakpKRVBxYUN0YngyZHU3YlptN25adzhSM0ZwQ0ZCeXFx?=
 =?utf-8?B?V0NKVG9EaUgxNVlxak5jSlVUMjRwK2t0aXF0cWRBSjhTRmQ3L1Uyb0h0bXla?=
 =?utf-8?B?dTlGK2lmQUVqMEZSQ28xdkllK1hHZmEwc0N4NmlRdkVabTl3T3NKR3ArWmF5?=
 =?utf-8?Q?HBHqAv?=
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)(376014)(36860700013)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Apr 2025 12:29:17.7061
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 380a55c7-fe23-43cf-d6a1-08dd7dab78e5
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:
	CH1PEPF0000AD7B.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB6357

On Wed Apr 16, 2025 at 5:10 PM BST, Grygorii Strashko wrote:
>
>
> On 16.04.25 17:26, Alejandro Vallejo wrote:
>> On Wed Apr 16, 2025 at 11:44 AM BST, Grygorii Strashko wrote:
>>>
>>>
>>> On 16.04.25 04:03, Stefano Stabellini wrote:
>>>> On Mon, 14 Apr 2025, Grygorii Strashko wrote:
>>>>> From: Grygorii Strashko <grygorii_strashko@epam.com>
>>>>>
>>>>> The current code in generate_uboot_images() does not detect arm64 pro=
perly
>>>>> and always generates ARM u-boot image. This causes Xen boot issues.
>>>>>
>>>>> Fix it by searching for "ARM64" for AArch64 binary detection.
>>>>>
>>>>> - mkimage -l xen.ub
>>>>> Before:
>>>>> Image Type:   ARM Linux Kernel Image (uncompressed)
>>>>>
>>>>> After:
>>>>> Image Type:   AArch64 Linux Kernel Image (uncompressed)
>>>>>
>>>>> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
>>>>> ---
>>>>>    scripts/uboot-script-gen | 6 +++---
>>>>>    1 file changed, 3 insertions(+), 3 deletions(-)
>>>>>
>>>>> diff --git a/scripts/uboot-script-gen b/scripts/uboot-script-gen
>>>>> index a9f698f00fd1..c4d26caf5e0e 100755
>>>>> --- a/scripts/uboot-script-gen
>>>>> +++ b/scripts/uboot-script-gen
>>>>> @@ -815,13 +815,13 @@ function linux_config()
>>>>>   =20
>>>>>    generate_uboot_images()
>>>>>    {
>>>>> -    local arch=3D$(file -L $XEN | grep "ARM")
>>>>> +    local arch=3D$(file -L $XEN | grep -o "ARM64")
>>>>
>>>> My file -L gives:
>>>>
>>>> for arm32: ARM OpenFirmware [...]
>>>> for arm64: Aarch64
>>>>
>>>> So the ARM64 grep wouldn't work as intended. Is the version of `file'
>>>> that you are using really printing ARM64?
>>>
>>> Hm, yes.
>>>
>>> 	file -L xen
>>> 	xen: Linux kernel ARM64 boot executable Image, little-endian, 4K pages
>>>
>>> 	file -v
>>> 	file-5.41
>>>
>>> u-boot boot command:
>>> 	 bootm 0x4EA00000 - 0x4EE00000
>>>
>>>
>>>    If so, we can do:
>>>>
>>>>     file -L $XEN | grep -E 'ARM64|Aarch64'
>>>
>>> sure. I'll update.
>>=20
>> Missing escape? I think it's needed even with single quotes.
>>=20
>>    file -L $XEN | grep -E 'ARM64\|Aarch64'
>
> No. It's extended regular expressions ("-E") no need for escape.
> Also it works with both '' and "".

Ah, fair enough. My brain escaped the -E :)

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Thu Apr 17 12:49:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 12:49:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.957511.1350611 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5OgB-0004zM-4P; Thu, 17 Apr 2025 12:49:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 957511.1350611; Thu, 17 Apr 2025 12:49:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5OgB-0004zF-1Y; Thu, 17 Apr 2025 12:49:19 +0000
Received: by outflank-mailman (input) for mailman id 957511;
 Thu, 17 Apr 2025 12:49:17 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=m2wG=XD=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u5Og9-0004z9-Of
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 12:49:17 +0000
Received: from NAM04-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam04on2062e.outbound.protection.outlook.com
 [2a01:111:f403:240a::62e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5dc0df84-1b8a-11f0-9eb0-5ba50f476ded;
 Thu, 17 Apr 2025 14:49:15 +0200 (CEST)
Received: from CH2PR05CA0052.namprd05.prod.outlook.com (2603:10b6:610:38::29)
 by CY8PR12MB8300.namprd12.prod.outlook.com (2603:10b6:930:7d::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.34; Thu, 17 Apr
 2025 12:49:10 +0000
Received: from CH2PEPF00000140.namprd02.prod.outlook.com
 (2603:10b6:610:38:cafe::69) by CH2PR05CA0052.outlook.office365.com
 (2603:10b6:610:38::29) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.13 via Frontend Transport; Thu,
 17 Apr 2025 12:49:10 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CH2PEPF00000140.mail.protection.outlook.com (10.167.244.72) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Thu, 17 Apr 2025 12:49:09 +0000
Received: from xcbagarciav01.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; Thu, 17 Apr
 2025 07:49:08 -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: 5dc0df84-1b8a-11f0-9eb0-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=MZbOShdQai4RPb4lZv0r7FsHnSt2gF+GdabafLkTUqfp0aBFuyxUBvHq1nGS03h8sO6XPgEss6ZpW9nYeuyEVQz5Arw96jIHgcU1nWKMy1eCOr4ACPLTcy4BEyjjrDgliXgCl1bI25jeD3ZYPnAfHGS6wKExvQeQVWFrSCCkJMLV2/uS2AvMAIHgGFUAi9R49Egqldo88uXGJGc/tzHRkvm4lNFQMoYd8u4Povlj1K90+kFZhIam3a9Ep45MytqkQdj7HwkGcVEHIBqqTjZW+lL86U/iWDizUpdsLrt7peSE7UEUdT4zqUWCjxl83MqVBsRV+ZSs78j0q8BH6Ohy1A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=l0V8J3XxDGZtykescY6/CNgGnDmTrlCK6rwDVmn+jSo=;
 b=P0oE07yvgEu56svo8Xk24JI2rKMiYV6/XNdZUgCkpU56iOoI7YRF6TRm2mpUuWvf0IPJ+kdMUqL2zpXkF+6t34xdoF9ZtJROg5AiXecLaP0U1lFfzbU+c6N0VH1RLHpGrXITvwNM6BTo2v7Rry5zVSf//bGk2fhmi9C3YgdQNucP6GFTFR6aP9DeYM7Mc72sDhLRlBd3VTS01Ttg6u1vBLyIq4+i2+KkAzsmYkOTRzMQ4cUuSg4NmUR5bNrthGxx6bpQ0z8M9jnrLFMG7J+JEOt/iL38bgTO2h/mkDKpe+UIPuFyUW5cviFIWwoSNRm7qEsdZgXUsQ23HXzv57MLVw==
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=l0V8J3XxDGZtykescY6/CNgGnDmTrlCK6rwDVmn+jSo=;
 b=Vjx4qDrriLjGGFMMOfk9GtNyAiqGIqlGht7sdq6D9bcMWMa4t4faxE2gA2tVcPPXDCkRLyHZrA4ckDR5UguwHnBlxoWyeBjAz987xo47x3VVq/4kkRUMrIl1GPhcpaXpxZrUZmP7+6t3Z3lYrbyKIbbV/n7HR74+yngz9hjkiHY=
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: Alejandro Vallejo <agarciav@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Alejandro Vallejo <agarciav@amd.com>, Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, "Julien
 Grall" <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
	"Bertrand Marquis" <bertrand.marquis@arm.com>
Subject: [PATCH v4 00/13] Hyperlaunch device tree for dom0
Date: Thu, 17 Apr 2025 13:48:22 +0100
Message-ID: <20250417124844.11143-1-agarciav@amd.com>
X-Mailer: git-send-email 2.43.0
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: CH2PEPF00000140:EE_|CY8PR12MB8300:EE_
X-MS-Office365-Filtering-Correlation-Id: 597053f6-13ab-4564-4927-08dd7dae3f83
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|36860700013|376014|1800799024|13003099007;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?3eFCRpjGi/TzHp9dIm5HnvO4KHoOjp1DTIWkpJgaEHpQQTIOGBdf6FAfaYyD?=
 =?us-ascii?Q?1ou35vfrm1JcW+gVhKmCsha2gCzR5JbF9TvMnyk/49UzaEGI3T+GpFiFOBQa?=
 =?us-ascii?Q?xYHN2H9efaSbNOUQ7xETOFOPezwVcCbJXMavanLh68v9tNhJBZWCZZOdjt82?=
 =?us-ascii?Q?WEbaGCh0IyA6Eh/X2Mzi1iXFmdWHS5kuUvwBoJmM9F7YrXAxQwtXWECq/VA0?=
 =?us-ascii?Q?vLQCptbuDY2YwYUe8ZRMwsINRpKdSJ5e4CrEMSXHtRapcnErAG4e79lwUwlT?=
 =?us-ascii?Q?AIXRYXTJiDmce3tfeau3X9O35T6tnUHHtXH1axAiMZrK0zb8mBL6ez1zFTPq?=
 =?us-ascii?Q?/5f21lKpy3JAfl5JfQAkmkRxsUNhKX2oiCguVckCVwPIJNFKccrS0Q7n0wTl?=
 =?us-ascii?Q?xVrS8MMzyX4XHbyVUu7uAVSesH4NgGv8Wsjs1F8RFJL8AIKpfm6ACI5UC3gH?=
 =?us-ascii?Q?dlpiIFqc/+AbLrtPXXJ7SwVXZ18SLOOm/2DgiSDGOKVz0f9H6HMn52K6co0D?=
 =?us-ascii?Q?BHf8z98w13RYEe56B+XzNudogGYXsRcw41fbMmS+xJCvAV4Z5LRighlI6Vg1?=
 =?us-ascii?Q?/GH1IfAwWjmobGkOUmgBSBj0Se6ZDPU5cjGnsdz+nVDBu0VQiGGBPp5Q9I/r?=
 =?us-ascii?Q?eb3CD1oteUEF+CqAFtZvLEiaXFxXoz5l1uSpc7yR8zHtu7TxbtCfYzWur84c?=
 =?us-ascii?Q?kvQwZTFh9SPV1UAIwQA38aio/bl2KLNf0r022vxUkdvYEslUltKu4Y/n5qe6?=
 =?us-ascii?Q?h1mV1EINLdH9ts036JEbNeyOyOdKA67fHurgOaa89tPws6AXxfjH8tYQW9Ut?=
 =?us-ascii?Q?OypjMibPGuzGy+2RMluXe1fGR9t0J1Ez94gVFxlEQXzJlkZdLMggvUhZEnKw?=
 =?us-ascii?Q?Q4CCj39hAxxHur51Q7y8p02hwDR29smU3iwRho0PvfTrlBYvvy1WABf9WfHo?=
 =?us-ascii?Q?nQ9XpHrqTNCQBgeoU91YKfatyDD2SgPiDKPWlWZrqzun6Exbit5bppkcuEc1?=
 =?us-ascii?Q?yUDek0XsKYsF8IbKRKlDrrH0ZbRu/tjuVxJZFz92N7GHt0tWgHTUDuU27MQw?=
 =?us-ascii?Q?ivsAf7DBtOt2nTXVMSspJS4+dwu2gAu8eNBbgpi7nW8lg0+7cTCvcAT1h3al?=
 =?us-ascii?Q?a55jzMW5QMjXWy0A1pLo1SQPTdlainOMIau7yTm9qXMOS8c4CeqFQHDBMS9U?=
 =?us-ascii?Q?IxGLh/QNmJAPbSPl+ad8a0M5obdhMtCzCa7PM97KafRK97z2UCmddfWHmP9k?=
 =?us-ascii?Q?dMaME/lyRPrT1UnhAQdNMCh+s2jpydX54lO9EtVwQ+nvrD3VM+e5yWH2ZhxC?=
 =?us-ascii?Q?23tJpQlS90WI+/v2qYnjnnlOLvc5M++5t63wYkdS2x7M5HVPsp1asZeI9KYZ?=
 =?us-ascii?Q?dAtMF4XMhpadTjchQpLg0MJfzFvAkSu628ilVdYBhS0RERWBCT8HtHItY59T?=
 =?us-ascii?Q?XsJl6BQm09Vsv8o4hSudssgOZHKZB8QKABtRDcCcHyeWFTgLWM2rArJ8nEwr?=
 =?us-ascii?Q?H302mtID4KnjOYY=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)(82310400026)(36860700013)(376014)(1800799024)(13003099007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Apr 2025 12:49:09.9178
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 597053f6-13ab-4564-4927-08dd7dae3f83
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:
	CH2PEPF00000140.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR12MB8300

Hi,

Here's a new version. Took a while to integrate all the feedback, but
here it is.

v4 pipeline: https://gitlab.com/xen-project/people/agvallejo/xen/-/pipelines/1772300721

v3: https://lore.kernel.org/xen-devel/20250408160802.49870-1-agarciav@amd.com/
v2: https://lore.kernel.org/xen-devel/20241226165740.29812-1-dpsmith@apertussolutions.com/
v1: https://lore.kernel.org/xen-devel/20241123182044.30687-1-dpsmith@apertussolutions.com/

Cheers,
Alejandro

========= Original cover letter:

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.

Alejandro Vallejo (1):
  x86/hyperlaunch: Add helpers to locate multiboot modules

Daniel P. Smith (12):
  x86/boot: add cmdline to struct boot_domain
  kconfig: introduce domain builder config options
  common/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                   |   1 +
 xen/arch/x86/dom0_build.c              |  11 +
 xen/arch/x86/hvm/dom0_build.c          |  31 +-
 xen/arch/x86/include/asm/boot-domain.h |  17 +
 xen/arch/x86/include/asm/bootinfo.h    |  10 +-
 xen/arch/x86/pv/dom0_build.c           |   4 +-
 xen/arch/x86/setup.c                   |  91 +++--
 xen/common/Kconfig                     |   5 +
 xen/common/Makefile                    |   1 +
 xen/common/domain-builder/Kconfig      |  18 +
 xen/common/domain-builder/Makefile     |   2 +
 xen/common/domain-builder/core.c       | 110 ++++++
 xen/common/domain-builder/fdt.c        | 488 +++++++++++++++++++++++++
 xen/common/domain-builder/fdt.h        |  39 ++
 xen/include/xen/domain-builder.h       |  13 +
 xen/include/xen/libfdt/libfdt-xen.h    |  44 +++
 16 files changed, 839 insertions(+), 46 deletions(-)
 create mode 100644 xen/common/domain-builder/Kconfig
 create mode 100644 xen/common/domain-builder/Makefile
 create mode 100644 xen/common/domain-builder/core.c
 create mode 100644 xen/common/domain-builder/fdt.c
 create mode 100644 xen/common/domain-builder/fdt.h
 create mode 100644 xen/include/xen/domain-builder.h

-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu Apr 17 12:49:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 12:49:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.957512.1350621 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5OgD-0005Df-Fj; Thu, 17 Apr 2025 12:49:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 957512.1350621; Thu, 17 Apr 2025 12:49: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 1u5OgD-0005DY-CC; Thu, 17 Apr 2025 12:49:21 +0000
Received: by outflank-mailman (input) for mailman id 957512;
 Thu, 17 Apr 2025 12:49: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=m2wG=XD=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u5OgB-00057t-Rs
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 12:49:19 +0000
Received: from NAM02-DM3-obe.outbound.protection.outlook.com
 (mail-dm3nam02on20614.outbound.protection.outlook.com
 [2a01:111:f403:2405::614])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5efa2e51-1b8a-11f0-9ffb-bf95429c2676;
 Thu, 17 Apr 2025 14:49:17 +0200 (CEST)
Received: from CH2PR05CA0038.namprd05.prod.outlook.com (2603:10b6:610:38::15)
 by SA0PR12MB7461.namprd12.prod.outlook.com (2603:10b6:806:24b::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.22; Thu, 17 Apr
 2025 12:49:12 +0000
Received: from CH2PEPF00000140.namprd02.prod.outlook.com
 (2603:10b6:610:38:cafe::ab) by CH2PR05CA0038.outlook.office365.com
 (2603:10b6:610:38::15) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.22 via Frontend Transport; Thu,
 17 Apr 2025 12:49:12 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CH2PEPF00000140.mail.protection.outlook.com (10.167.244.72) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Thu, 17 Apr 2025 12:49:12 +0000
Received: from xcbagarciav01.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; Thu, 17 Apr
 2025 07:49:09 -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: 5efa2e51-1b8a-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=tpBVcqgZcMnETPrK/8TagwUfAxZzD6rbE3iMGjaXRmyq2CZyAtoTS0SY7rsZpI2a6bsmoI1TuQcrAR4j7jKuBEY/CtzkEeENSL6jfgVhzvAENyIQccNpOiH3tjdV7pTp04Skg0pXxGfho77VsbnNSrqDOpRLHDOYroOtWnrJ4V8e9BN5LyI0+guAXTNwtBBcvDNPnLID+ql3G7+s2LO+hlEP1uL0obXQNp+zTIeEir/CGrko9DjeyOzx2ydoPZwfE+frDFXDewtpjD+p0OYccSnphIEgICJNCiGXgGHryQ6Az7BDBAHIUzPEwoyUdObg40AAdtO/Tad6Pg3CWGIvig==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=SPTSOCD5V92BOMtpj6x7Vs6EoxoU/PucsJHEdi/GDEU=;
 b=E9vp2QUnhsmeh0V5sS4Uwh876ewtu3TX7bt+HqjT26nsWh0PbK6n5xyCXcS0btiK6nYh3pYE9nke1/Oyg7dCB+Wc394jiP+UNP2SdtJ55gA4OXaVqrVOxkeoysgfJf5yR/bUgVsYPbyvOlFcNgk5QUXghejQspDvsoAP8j7lVuFTKHPMLAbn2Wc9zW8a1q7wI56C9g3+VeGsxeRiS30YT5dJlsSOVOgovXFystGmdMaP8Gc/jsbnRsnDmkkbW/h9PmjR0OdJkx4ZfbpRIF0dmUbxfCYy1r4aLg0cCzOINYUhhFED8cRO5nXS8Fx4vhRkYWDWYAYDvdVIp37tdjdIQA==
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=SPTSOCD5V92BOMtpj6x7Vs6EoxoU/PucsJHEdi/GDEU=;
 b=vFm4zTQvQV6WFU71ZWPLWsH8z6SH8pBD6vx8RRsqplyv3dUIlMlqDkXJDlnTse6MtinK/w0Y38srVfBJv7If00Aay26Y+Jh+sZnotm5z3XWb9CVlxhcxzBOtK7rpL3aPA0YUL0qdc8A6OyGcjzUP9NASwQeXrToOV65xKkDmINc=
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: Alejandro Vallejo <agarciav@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: "Daniel P. Smith" <dpsmith@apertussolutions.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Jason Andryuk
	<jason.andryuk@amd.com>, Alejandro Vallejo <agarciav@amd.com>
Subject: [PATCH v4 01/13] x86/boot: add cmdline to struct boot_domain
Date: Thu, 17 Apr 2025 13:48:23 +0100
Message-ID: <20250417124844.11143-2-agarciav@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20250417124844.11143-1-agarciav@amd.com>
References: <20250417124844.11143-1-agarciav@amd.com>
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: CH2PEPF00000140:EE_|SA0PR12MB7461:EE_
X-MS-Office365-Filtering-Correlation-Id: e847c6ac-a9e8-41d9-e2ff-08dd7dae40ef
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?HabIPN4LFXLzCVihku2mav3DP6yKG1Nv54GAXd/PcJva65VWN0PbHzxr4eak?=
 =?us-ascii?Q?oz4LdgcoGPIvEZFxBzqVBUZSpi+B1dL2pjN0DKPAl6v9TtDjJNB4A92d7eEI?=
 =?us-ascii?Q?WEeF4r4Cz732T2+kI8NZ2GgF0ulMbPrWPYpD3AhQ+qQ65bp8uR5YFDZEEdxN?=
 =?us-ascii?Q?Lxot7OcTV7olPkUPjn7rMQPrDDoTGLF9yZ+D0CL3Gt6jeqPMHMsse0z91hGz?=
 =?us-ascii?Q?mAA9KC9cpcaszO2L771b1GpYXA/R3sDRPQJnTtUilCO9vYU4AkwlFhmyhWdQ?=
 =?us-ascii?Q?880HaJ8JpwcQgk/Usvf6zWj0J3q/S2nvG9fIzs2JZO7NDyu0mmh8RdxDRrPF?=
 =?us-ascii?Q?l6M4UtszUaoOLkp4EHdHXwk7XaHrlGwTAG+YPTqXKEirgNFStXJrGtvJCtIE?=
 =?us-ascii?Q?hMBmHL56NPNatNM6DstTGo/oKrPre/Rbp/PoC/KrJ3+XZZQ5CQ7hKFqPPHBw?=
 =?us-ascii?Q?Nez4KhXaiI9QgnqeZvHrzj1YNTbMMg6ObFJa/lDuxdzzegQdMAFu9mxpux5S?=
 =?us-ascii?Q?7N1f6J204ePjjiqMJHKvCYWJ9797eAA4uMTF4yyNDxO2Uf1oBPfp3due1Y8h?=
 =?us-ascii?Q?Xn6es98FIZzlkl9iLSlHIcDVDjPC3RLxn5ccYF2Ffp1ELY4szMGXBzn828Sm?=
 =?us-ascii?Q?fktqHrfZ76x5jouf9xCq2H0DE6pS3/vVCE0z9CTsPcf3TynKtFn8nTKLe0oR?=
 =?us-ascii?Q?uu5O051zaoKwWFNJDIXIo4BQ7eW3hbTaOkRq2u9aSu7NoqRaX9ez+fPWnTuB?=
 =?us-ascii?Q?Y/ZWyl0BYKSI6hnHgECIVBtgioj4p/Ts1B0Ly2z1FInovCXi1peyDrrLVIcR?=
 =?us-ascii?Q?WBFwPva6A3LGeZRtT0u5on1qGFOnAPRfSkjLT/pCegAcJZPA5CEBHyoNSdLa?=
 =?us-ascii?Q?eZyfp/8psqGB9GYS/0oOHx+0PxIAOvNsN2oDQgWwsDoqdE7SgTWWWJ/12iRX?=
 =?us-ascii?Q?b5zl1XRQMu7Kb1uxgQkNinRqTfO7j+tKoYE0LUrU1Xn7/6hk/AlyEPlX/u+e?=
 =?us-ascii?Q?vAImlZsbRkaQY7pV6plK1fpnV/xwyhT2tnaWHisPyxdF9x4zwZ0G7Z7YUQlr?=
 =?us-ascii?Q?5w9L21G83e/T+zsZh58kzSBFcQCey5XIX8aL+kkDI1lUaouTN8srMSPZGKcj?=
 =?us-ascii?Q?UBsyFXxVQNOJVa86Ee3hzzfF+LVGGVJidFNaD+ZI3n98oRu5soRcarFgizxR?=
 =?us-ascii?Q?PINNpoMuHk0mZ3P6AaLysoA1V3k586axGBaE8U/rnirS8Hw1SmQJkJQJLDzJ?=
 =?us-ascii?Q?OUkAj3RoRYDJYC7GG6pzJuf6KjKRTbO+1xN+LyuPw/4+rrsRVpJoSNaENKlf?=
 =?us-ascii?Q?d04J+P7MX/1B6cYDZhc6qLcq9wz+nj0FF6aqr61SX1dekAQkEFwTNIeafWIS?=
 =?us-ascii?Q?e7dsWKG3DsSh+h98nsgqn1eOOf+LOxrnrfdDB/2HIZdx6Vothng3cv+9xbDg?=
 =?us-ascii?Q?vx1OZzK8PqZ0cV9zpAlI6QqueZMU/TbOhmht8bXIiVMnD2Wk3a8/fCjHbccK?=
 =?us-ascii?Q?MNeUd2X75b05C4RLeppg8dgaXsEq1fGIDoJE?=
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: 17 Apr 2025 12:49:12.3029
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: e847c6ac-a9e8-41d9-e2ff-08dd7dae40ef
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:
	CH2PEPF00000140.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR12MB7461

From: "Daniel P. Smith" <dpsmith@apertussolutions.com>

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>
Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
Signed-off-by: Alejandro Vallejo <agarciav@amd.com>
---
v4:
  * Manually nullify bd->cmdline before xfree()ing cmdline.
  * const-ify arguments of domain_cmdline_size()
  * Add cmdline_len to pvh_load_kernel()
---
 xen/arch/x86/hvm/dom0_build.c          | 31 ++++++++--------
 xen/arch/x86/include/asm/boot-domain.h |  1 +
 xen/arch/x86/pv/dom0_build.c           |  4 +-
 xen/arch/x86/setup.c                   | 51 ++++++++++++++++++++------
 4 files changed, 57 insertions(+), 30 deletions(-)

diff --git a/xen/arch/x86/hvm/dom0_build.c b/xen/arch/x86/hvm/dom0_build.c
index 2a094b3145..49832f921c 100644
--- a/xen/arch/x86/hvm/dom0_build.c
+++ b/xen/arch/x86/hvm/dom0_build.c
@@ -653,7 +653,7 @@ static int __init pvh_load_kernel(
     void *image_start = image_base + image->headroom;
     unsigned long image_len = image->size;
     unsigned long initrd_len = initrd ? initrd->size : 0;
-    const char *cmdline = image->cmdline_pa ? __va(image->cmdline_pa) : NULL;
+    unsigned long cmdline_len = bd->cmdline ? strlen(bd->cmdline) + 1 : 0;
     const char *initrd_cmdline = NULL;
     struct elf_binary elf;
     struct elf_dom_parms parms;
@@ -736,8 +736,7 @@ static int __init pvh_load_kernel(
             initrd = NULL;
     }
 
-    if ( cmdline )
-        extra_space += elf_round_up(&elf, strlen(cmdline) + 1);
+    extra_space += elf_round_up(&elf, cmdline_len);
 
     last_addr = find_memory(d, &elf, extra_space);
     if ( last_addr == INVALID_PADDR )
@@ -778,21 +777,21 @@ static int __init pvh_load_kernel(
     /* Free temporary buffers. */
     free_boot_modules();
 
-    if ( cmdline != NULL )
+    rc = hvm_copy_to_guest_phys(last_addr, bd->cmdline, cmdline_len, v);
+    if ( rc )
     {
-        rc = hvm_copy_to_guest_phys(last_addr, cmdline, strlen(cmdline) + 1, v);
-        if ( rc )
-        {
-            printk("Unable to copy guest command line\n");
-            return rc;
-        }
-        start_info.cmdline_paddr = last_addr;
-        /*
-         * Round up to 32/64 bits (depending on the guest kernel bitness) so
-         * the modlist/start_info is aligned.
-         */
-        last_addr += elf_round_up(&elf, strlen(cmdline) + 1);
+        printk("Unable to copy guest command line\n");
+        return rc;
     }
+
+    start_info.cmdline_paddr = cmdline_len ? last_addr : 0;
+
+    /*
+     * Round up to 32/64 bits (depending on the guest kernel bitness) so
+     * the modlist/start_info is aligned.
+     */
+    last_addr += elf_round_up(&elf, cmdline_len);
+
     if ( initrd != NULL )
     {
         rc = hvm_copy_to_guest_phys(last_addr, &mod, sizeof(mod), v);
diff --git a/xen/arch/x86/include/asm/boot-domain.h b/xen/arch/x86/include/asm/boot-domain.h
index fcbedda0f0..d7c6042e25 100644
--- a/xen/arch/x86/include/asm/boot-domain.h
+++ b/xen/arch/x86/include/asm/boot-domain.h
@@ -15,6 +15,7 @@ struct boot_domain {
 
     struct boot_module *kernel;
     struct boot_module *module;
+    const char *cmdline;
 
     struct domain *d;
 };
diff --git a/xen/arch/x86/pv/dom0_build.c b/xen/arch/x86/pv/dom0_build.c
index b485eea05f..e1b78d47c2 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(const 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 3c257f0bad..4df012460d 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -978,10 +978,30 @@ 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(const struct boot_info *bi,
+                                         const 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;
+    size_t cmdline_size;
     struct xen_domctl_createdomain dom0_cfg = {
         .flags = IS_ENABLED(CONFIG_TBOOT) ? XEN_DOMCTL_CDF_s3_integrity : 0,
         .max_evtchn_port = -1,
@@ -1020,20 +1040,24 @@ static struct domain *__init create_dom0(struct boot_info *bi)
     if ( alloc_dom0_vcpu0(d) == NULL )
         panic("Error creating %pdv0\n", d);
 
-    /* Grab the DOM0 command line. */
-    if ( bd->kernel->cmdline_pa || bi->kextra )
+    cmdline_size = domain_cmdline_size(bi, bd);
+    if ( cmdline_size )
     {
+        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 )
         {
@@ -1043,17 +1067,20 @@ 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->kernel->cmdline_pa = 0;
+        bd->cmdline = cmdline;
     }
 
     bd->d = d;
     if ( construct_dom0(bd) != 0 )
         panic("Could not construct domain 0\n");
 
+    bd->cmdline = NULL;
+    xfree(cmdline);
+
     return d;
 }
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu Apr 17 12:49:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 12:49:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.957514.1350641 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5OgF-0005gg-VP; Thu, 17 Apr 2025 12:49:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 957514.1350641; Thu, 17 Apr 2025 12:49: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 1u5OgF-0005gX-Qf; Thu, 17 Apr 2025 12:49:23 +0000
Received: by outflank-mailman (input) for mailman id 957514;
 Thu, 17 Apr 2025 12:49:22 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=m2wG=XD=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u5OgE-0004z9-T4
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 12:49:22 +0000
Received: from NAM12-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam12on2060c.outbound.protection.outlook.com
 [2a01:111:f403:200a::60c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6265ff7c-1b8a-11f0-9eb0-5ba50f476ded;
 Thu, 17 Apr 2025 14:49:22 +0200 (CEST)
Received: from CH2PR05CA0054.namprd05.prod.outlook.com (2603:10b6:610:38::31)
 by PH8PR12MB6841.namprd12.prod.outlook.com (2603:10b6:510:1c8::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.36; Thu, 17 Apr
 2025 12:49:16 +0000
Received: from CH2PEPF00000140.namprd02.prod.outlook.com
 (2603:10b6:610:38:cafe::78) by CH2PR05CA0054.outlook.office365.com
 (2603:10b6:610:38::31) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.13 via Frontend Transport; Thu,
 17 Apr 2025 12:49:15 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CH2PEPF00000140.mail.protection.outlook.com (10.167.244.72) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Thu, 17 Apr 2025 12:49:15 +0000
Received: from xcbagarciav01.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; Thu, 17 Apr
 2025 07:49:14 -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: 6265ff7c-1b8a-11f0-9eb0-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=EXlG+a1pNTTUr+pQM4CajbK+/5WSYT+W3uN+9iqEtyNOyNcmDp0eDrFeTF57iieFLvy27zNUIhDnujzpYXgOioUSGQWkuP09lQSwaZN3txD+QAgc2dC1Ae1gE50Hds0LvRmyP26KpSKcslLYBRcnGYUe9nr1aG8o4EYSpN3V0SpNn86ikVZr/ZnDorXr4NVyC0fHyaDh8dHJyK9gkmXu/DOhW8g8mfWDW8o5Pvmc0o5jKBOKpRgelyzRfDbYXVGvBZec7TPn6Dolj5bl9V6s/+DGp2IPyC6EWQ5hebvMkAdyHF/PMEcozQtKlfiYRTLwcVMvN3pm+nw29Wu4nI14EA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=BqcYxmLh/A5uCJx4yM7Ep5bOtDXg6ZeSzjmQRQDNChI=;
 b=oBCwm9lVkLRSv2RiBf7ZnJDhOshKkoWK9ftFDZlpEM3Wgqzc2PmFoV+UJ6k/xkaNoEkBPg3LkW5RkgCQKQjx2MudV2DTctR7n/3jZYKRuwqRejjlszA+bfC0YxtLDGU9CpQ35c+EZ8Pf9CEdW2IZVBdmtehrIDYOZzZJ4Cl8YVqzNbZ9yaCol1skId0PVlsCKWHM6Tx4U4dwTgqo8nceWTaFpxF1T5EImaCbh5KUy0jPVQoznH7pM8RQMr/5AQ3UCod8EYQUQBH7+7wDY0FKDMWu/YbH2XXFX4Ub+ojsDVgRTFBzwaxFkqB0kl+GFuUW5K7ad+OuuQ77bzGIjl5naw==
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=BqcYxmLh/A5uCJx4yM7Ep5bOtDXg6ZeSzjmQRQDNChI=;
 b=1CkrwIQnw1TnjHzKEoAhLCIGjXvaHmcBixI21/CUBH+4gVpWeSPvcMqEnJtq3m1K776KSB3aqGeAIhRF1GzPhVF19DaSHY7twPn9+lA83pMTB6rT7DSyKF7LvETKDHhRAYW+3fO2BHd7nnYMInpW9lz5QC2EuEk0272Ti2+6CX8=
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: Alejandro Vallejo <agarciav@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: "Daniel P. Smith" <dpsmith@apertussolutions.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, "Julien
 Grall" <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, "Jason
 Andryuk" <jason.andryuk@amd.com>, Alejandro Vallejo <agarciav@amd.com>
Subject: [PATCH v4 04/13] x86/hyperlaunch: initial support for hyperlaunch device tree
Date: Thu, 17 Apr 2025 13:48:26 +0100
Message-ID: <20250417124844.11143-5-agarciav@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20250417124844.11143-1-agarciav@amd.com>
References: <20250417124844.11143-1-agarciav@amd.com>
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: CH2PEPF00000140:EE_|PH8PR12MB6841:EE_
X-MS-Office365-Filtering-Correlation-Id: 4c18cbe8-275d-4ba3-0958-08dd7dae42f2
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?2HYrgQ+1yz0Th2DSfVJOrOfG23L8Mvd+qXzH5T4jsvTPpCI7fdNlnJw8ZZiE?=
 =?us-ascii?Q?sJ6hrUhpHIvBI5JFMnI3uv6Pn8aaMZg8NYGgBT/rUemb344LuQK4Mb3mmbDE?=
 =?us-ascii?Q?p2EjizAOaSbUlewDuEENZfnVg4aQJk23DCUs7E+4zKUlLdgYXuLibfeMPSqZ?=
 =?us-ascii?Q?6htFRzjMPoyveAqLPkWZFW7jYNTjmJ/SWeOaNIKdowmYuWBcGveaS4mz1Ij/?=
 =?us-ascii?Q?eyaAQfcnJvCc2d8zl1QQKkluP/JVzDIl0g/G7b2WWIm/MJQAIlBfGQ2CjAmF?=
 =?us-ascii?Q?m8u1U3AswT0XSqQoro9xNED9cdL0R2bo/Mn2nTORr7RHkp5P3wEbso9l/B2k?=
 =?us-ascii?Q?B+h0CV2xasAFcDHU6GGqmveTXoutWqbaKjMyU/ELW1vCGRQx3/dStgN5llNj?=
 =?us-ascii?Q?s87taJUGSxCdTIsimRAumYdaSdj7fE+VbU9Vrk12gUs1zNKfL20bBl4b3D+a?=
 =?us-ascii?Q?FNaqaJkf0QsSD3JxBBuSmDXZHSubHV12iKnoXeat+pglCmMGDV90w72Ju8Fm?=
 =?us-ascii?Q?WQDRwwKteQ/pEP//tOTIMWAt9OyrDuhFj0hrMpwllXMms1kUb1w0+JRF56CA?=
 =?us-ascii?Q?Uhl3TQOMDJtmkjBJQ/Y7RxJpoGae0OkFaSm+Fc1yv+jI7bx8PnCxXrTaZeSA?=
 =?us-ascii?Q?x9DqsDjrDhLJboFGA5w3/OFhQOGSLN8t8anweO3lm2owOPTpIG7NudAp9znt?=
 =?us-ascii?Q?mu9EymE5RaHqdBAvX8f3Ldlnxx5lnas+TbcORqWndXN4RcWsvrPfBsk7IV7U?=
 =?us-ascii?Q?hsXOVXHULaHdzI+BtNcVF6ybZfhRlk/1X35kVmnPSwW4yOmz9ckSA0lxUXxR?=
 =?us-ascii?Q?78UNFFHas2bgXCsnLWkPeEKD2cpdufPxhaY1BSeUCm+/wPKlU46/9aJfjrMe?=
 =?us-ascii?Q?sIeFAKThIqKtCtz6E4PmzZNyjJUV9lc2zAp0WMXnfS3959DrtOulHCu9CtH+?=
 =?us-ascii?Q?EYUn3+l+mRcQLJXVoUfuf5sermwgGgmqtWOihvT/Dtjh0ilVCBXpRR7hLBIW?=
 =?us-ascii?Q?V9KeafT/T9QVknGvYfDMwhbDXOTOjppOJSVqvwp7YgFj/MGFjwFaIdZrz0Az?=
 =?us-ascii?Q?ksy/jxf7L1l8JPqgA9FLlOfdW0Ykr262bWLrqu9qqZlmYI694MCngqUt9sZL?=
 =?us-ascii?Q?nwU9FqhO77nNcU6IWw8c597au0KoyIv8tgYolJIB9iI4PB0qK7pw1XRB2syJ?=
 =?us-ascii?Q?fB9vXK/DkIdGokSkEwg4I8Qeoi9D1ABbXjBXAn0vQMMPsooAEh2uUFIBcv9i?=
 =?us-ascii?Q?JE9QNRVx1j2OlMFGCz90PUGmhHjEYHzVVnDK/Y7ipMta4uYoh2udtTh8yBDc?=
 =?us-ascii?Q?WZEV6oR9qrLHmbf12M83qdPDYgR9pvfPQRzajN1pWWK0HKz/LhR3GyPDluPu?=
 =?us-ascii?Q?oMZxHanpxZluQNNsV7PS0zbCRVQuDX28HC1BptnLCxNFPlybaZu9lToiLQCU?=
 =?us-ascii?Q?I0awtqUYld7cfRDbvyrfSqnLSC6ozwBMUJ3OMLFndIwFsPFOP/Lc/9JUVNa/?=
 =?us-ascii?Q?mtvdaJKUXy1alKYsK2AvQOyGyBL+r8yIVHlA?=
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: 17 Apr 2025 12:49:15.6794
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 4c18cbe8-275d-4ba3-0958-08dd7dae42f2
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:
	CH2PEPF00000140.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH8PR12MB6841

From: "Daniel P. Smith" <dpsmith@apertussolutions.com>

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 an error if more than one is found.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
Signed-off-by: Alejandro Vallejo <agarciav@amd.com>
---
v4:
  * Panic if we're booting on hyperlaunch, but walking the DTB fails.
  * Remove inconsequential "else" clause in fdt.c
  * Remove stub, as it's not required due to DCE
  * Use min() rather than open-code it
---
 xen/arch/x86/include/asm/bootinfo.h |  1 +
 xen/common/domain-builder/core.c    | 11 +++++
 xen/common/domain-builder/fdt.c     | 63 +++++++++++++++++++++++++++++
 xen/common/domain-builder/fdt.h     |  1 +
 4 files changed, 76 insertions(+)

diff --git a/xen/arch/x86/include/asm/bootinfo.h b/xen/arch/x86/include/asm/bootinfo.h
index 82c2650fcf..1e3d582e45 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];
 };
diff --git a/xen/common/domain-builder/core.c b/xen/common/domain-builder/core.c
index a5b21fc179..3b062e85ec 100644
--- a/xen/common/domain-builder/core.c
+++ b/xen/common/domain-builder/core.c
@@ -43,6 +43,17 @@ void __init builder_init(struct boot_info *bi)
             break;
         }
     }
+
+    if ( bi->hyperlaunch_enabled )
+    {
+        int ret;
+
+        printk(XENLOG_INFO "Hyperlaunch configuration:\n");
+        if ( (ret = walk_hyperlaunch_fdt(bi)) < 0 )
+            panic("Walk of device tree failed (%d)\n", ret);
+
+        printk(XENLOG_INFO "  number of domains: %u\n", bi->nr_domains);
+    }
 }
 
 /*
diff --git a/xen/common/domain-builder/fdt.c b/xen/common/domain-builder/fdt.c
index aaf8c1cc16..b5ff8220da 100644
--- a/xen/common/domain-builder/fdt.c
+++ b/xen/common/domain-builder/fdt.c
@@ -13,6 +13,36 @@
 
 #include "fdt.h"
 
+static int __init find_hyperlaunch_node(const 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;
+
+        return hv_node;
+    }
+    else
+    {
+        /* Look 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") )
+                return chosen_node;
+        }
+    }
+
+    return -ENODATA;
+}
+
 int __init has_hyperlaunch_fdt(const struct boot_info *bi)
 {
     int ret = 0;
@@ -20,7 +50,40 @@ int __init has_hyperlaunch_fdt(const struct boot_info *bi)
 
     if ( !fdt || fdt_check_header(fdt) < 0 )
         ret = -EINVAL;
+    else
+        ret = find_hyperlaunch_node(fdt);
+
+    bootstrap_unmap();
+
+    return min(0, ret);
+}
+
+int __init walk_hyperlaunch_fdt(struct boot_info *bi)
+{
+    int ret = 0, hv_node, node;
+    const 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)
+    {
+        if ( !fdt_node_check_compatible(fdt, node, "xen,domain") )
+            bi->nr_domains++;
+    }
+
+    /* Until multi-domain construction is added, throw an error */
+    if ( bi->nr_domains != 1 )
+        printk(XENLOG_ERR "hyperlaunch only supports dom0 construction\n");
 
+ err_out:
     bootstrap_unmap();
 
     return ret;
diff --git a/xen/common/domain-builder/fdt.h b/xen/common/domain-builder/fdt.h
index 97a45a6ec4..955aead497 100644
--- a/xen/common/domain-builder/fdt.h
+++ b/xen/common/domain-builder/fdt.h
@@ -8,5 +8,6 @@ struct boot_info;
 #define HYPERLAUNCH_MODULE_IDX 0
 
 int has_hyperlaunch_fdt(const struct boot_info *bi);
+int walk_hyperlaunch_fdt(struct boot_info *bi);
 
 #endif /* __XEN_DOMAIN_BUILDER_FDT_H__ */
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu Apr 17 12:49:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 12:49:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.957513.1350626 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5OgD-0005Fw-OT; Thu, 17 Apr 2025 12:49:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 957513.1350626; Thu, 17 Apr 2025 12:49: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 1u5OgD-0005F8-Iw; Thu, 17 Apr 2025 12:49:21 +0000
Received: by outflank-mailman (input) for mailman id 957513;
 Thu, 17 Apr 2025 12:49: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=m2wG=XD=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u5OgC-0004z9-81
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 12:49:20 +0000
Received: from NAM02-SN1-obe.outbound.protection.outlook.com
 (mail-sn1nam02on2062d.outbound.protection.outlook.com
 [2a01:111:f403:2406::62d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5e9ced41-1b8a-11f0-9eb0-5ba50f476ded;
 Thu, 17 Apr 2025 14:49:16 +0200 (CEST)
Received: from CH2PR05CA0068.namprd05.prod.outlook.com (2603:10b6:610:38::45)
 by SN7PR12MB7833.namprd12.prod.outlook.com (2603:10b6:806:344::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.35; Thu, 17 Apr
 2025 12:49:13 +0000
Received: from CH2PEPF00000140.namprd02.prod.outlook.com
 (2603:10b6:610:38:cafe::39) by CH2PR05CA0068.outlook.office365.com
 (2603:10b6:610:38::45) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.15 via Frontend Transport; Thu,
 17 Apr 2025 12:49:13 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CH2PEPF00000140.mail.protection.outlook.com (10.167.244.72) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Thu, 17 Apr 2025 12:49:13 +0000
Received: from xcbagarciav01.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; Thu, 17 Apr
 2025 07:49: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: 5e9ced41-1b8a-11f0-9eb0-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=LfBHU4xP3XXqWV57k5LaHxKKvFAY76m7MYpfFqvD81H/NE16m5JZxdlKTiEm0YvKq7jVcG7QhE8CpouEaniCWuVHOY3bTqeDEaBCxBLyX94URj8i533AMDIlID39/a8F3P6Dqr7EUOWGWREcR6JDYJYWVsVD+AsFzglLhKAjZsMXXKncJ/O03591Gt3Blk8kn0dWEYZLKEWLVqLVrfp9VR4ZxrVgby9RLGdzPzpDYJ7+Q1G/thEUEIMlcKqPabgL6+dD+lUxcdtwtBf4Z2PrUuAcxflFKsG24C0uCuzxcuW+DEUKmJ/Q4pLiXAnGMObDtoDSPRr4xHaM5JHTtyyIqw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=iIYq/gaN+DmB5Pd6q8CgN7KNVQO3TY8xLL5l0FVWPA8=;
 b=cY9sgqJEIprYbYmH6tA/g/BZ1+0GGMRVT55A+h1RyJoi14kXtItTznTsGWX1HuHISdLKiUcRDRuqParjKDwmlYxInGhc/nEkU3pOTRbYw2jTIp7ljah1M4T7hIWzc5chouz5eRTvTVNB0y7dq22NJz+oeAxM2BG9WC01B29LpDxPhAPiwLUJ2Ez9FV+a1jvN4ISvQbfmqOYVhrjbWHBTJSZJVcIeBpTRj/I57EKG6FD9KykHcGV/M9NJgcIhSysFU5SuGD2o1KiWqrhQxU9op5tY44n8nEKBVEHziW9Yavw4apPOEnpPeDLpetdSBXCs7yns73TyBtgurSVWrMUEYA==
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=iIYq/gaN+DmB5Pd6q8CgN7KNVQO3TY8xLL5l0FVWPA8=;
 b=RT33a3zqGYh9BeE2jtKizGLjVWmzEeD3JYnLxlqRkiNtfxnQX9nGItTQd9iBxceZ32OZGRWcfGdKl9Mgyv1Qx5TdR8HrGJjGL+05yIzT3A77bcyCloymZZI2cXXK2RwnwNsaRXgZH9EAQY6V+HG+hsiYJzKiUUD8mDbeFCkto/A=
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: Alejandro Vallejo <agarciav@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: "Daniel P. Smith" <dpsmith@apertussolutions.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, "Julien
 Grall" <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
	Alejandro Vallejo <agarciav@amd.com>
Subject: [PATCH v4 02/13] kconfig: introduce domain builder config options
Date: Thu, 17 Apr 2025 13:48:24 +0100
Message-ID: <20250417124844.11143-3-agarciav@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20250417124844.11143-1-agarciav@amd.com>
References: <20250417124844.11143-1-agarciav@amd.com>
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: CH2PEPF00000140:EE_|SN7PR12MB7833:EE_
X-MS-Office365-Filtering-Correlation-Id: f6bf1418-6478-459a-f154-08dd7dae415e
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?YXo2npJ4/9XnMBhHmc6l8IRa10rv67uZ7WDFj8j/ivb3zX3pG+QfZuH6LjTM?=
 =?us-ascii?Q?7Mhn0l0GBblonLd0YUtFCuKCtJtt3sGKGExcMVJAwWPYehZ/tvMqRid4FNg3?=
 =?us-ascii?Q?6/vUwn93ulHgPS6Wpzarn9qlCxl0FseHv8hFNv3Aw0qjGijS1PZYU92s8rf6?=
 =?us-ascii?Q?E7l+M33XmCuLkneYEPV7gcUvs4GU1hTIVvCb8/06ayeQeGtn7U30WzF1zTsm?=
 =?us-ascii?Q?rJR4tJLWdPmSQFbgzQXjRB9lAIX3psJGsXd9shHed0de9f1k2CLkOu2kS3H7?=
 =?us-ascii?Q?9S/x/QElbM/JM22kQXDq76KWMjbZ+LQN40wv38G+WtW9DY28p0vEAO+u0H6b?=
 =?us-ascii?Q?aohkHfsVEUzq46qn5mYdAZqts847g4gtrnR3zC6dqz8zPThAXFxjcptAnkmt?=
 =?us-ascii?Q?k49N/+p/DfVy75EGmHY6dnOJvlOgUT25UJHpHdZov+FJRvAzxwml+lQ4PskN?=
 =?us-ascii?Q?ew3XsV5dwtkKQFghCo/+VEueoStoM2ASQHy5z3bGsI+qJrBHm3xdkfvMH/yO?=
 =?us-ascii?Q?HIlNzVnCr4XZiZoFkb1e72PAcWhWEWKqF/oKObk7oWmuNe8G8THrhF7rYzji?=
 =?us-ascii?Q?eexgUk/Z/Tyj+1ZR/3OWWD+AUCTYvgaoIKCHvBUI20WMULY2EUeezaj5de11?=
 =?us-ascii?Q?3PjmMh8Ggy1y8NcIbGMt9sG+b0xmNf3ZEPi9KVWC/Wfn+u7z95/WbcRNiQ0D?=
 =?us-ascii?Q?c9baIUy6eBgGMar5lOLI1PAg3RkZbXDLNpcMXMl1ZBwfjPBlrwOyNVP39pjE?=
 =?us-ascii?Q?v9a4lquO8R6D80ZHxrMPWwQl1nLK9XbLCPN0QIgNZYtzRk5lHEoa7YpMxhCO?=
 =?us-ascii?Q?fsdirc6NX2ae/7E3+7phXqGSD2O1cBGZatr2FwF3XPKooilIjIfGFFB6C2Jc?=
 =?us-ascii?Q?o1qD9HnO1Pif+mwsAM3Tg2AuCdyvErE3hPSoOTy1kdzHO1WcosDGcjEi66WR?=
 =?us-ascii?Q?CkSWtG1mIiJUt2o7DAWTLz+4IS43t0BUzMpCxf9uForvmD2Zv3YAobElaZ78?=
 =?us-ascii?Q?JyRTJf7/0i7ESirjlk3qAysjn0L1KjQ96FYBudQK8MP4j7X64bV6NM28G1J+?=
 =?us-ascii?Q?Q3c/s8P94+2ASpmRAgTDjRBWOyGt7Mp+hXxNsVjV6GCpJ5khSaAn2tq7paBw?=
 =?us-ascii?Q?9yR3q4Bi//zAkDRgsA+5hpbh2lN1OMYRERZNQBxxXurzxu0pYjKpDCwjcgx+?=
 =?us-ascii?Q?7eTyTxQvSniBD5640rgEZcwG0weszqLFCixT8TNt7VDr3lFBhHFH1NthcJ76?=
 =?us-ascii?Q?pGDpZZ/LZHlQ6Z0gs3nf+jwZmoMrLARJDUBeaiL3+f4lQkQmro5XtVyGtXSK?=
 =?us-ascii?Q?pJ7H3E/QuBx6fMiSHyDkJTxQyuMjiTcd6+XAWf4U3BCysyAqemPXu63YdDcB?=
 =?us-ascii?Q?aKvkxDMo1QGcEUSIykwAQ4S4cSEsxcgxhnV9GEMnW1cycWXqZp3sGkrTcyr/?=
 =?us-ascii?Q?g0cBelL3G5QuNdOZbN1iC0p0uUb6YVAR/9kqC4RtLu8u8P3sg/6WXVs1RWcc?=
 =?us-ascii?Q?bYrRZF6Umh4kD4+Ty4QdDCI7n1/osUnYoiNU?=
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: 17 Apr 2025 12:49:13.0349
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: f6bf1418-6478-459a-f154-08dd7dae415e
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:
	CH2PEPF00000140.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR12MB7833

From: "Daniel P. Smith" <dpsmith@apertussolutions.com>

Hyperlaunch domain builder will be the consolidated boot time domain
building logic framework. Introduces the config option to enable this
domain builder to eventually turn on the ability to load the domain
configuration via a flattened device tree.

This is common code, but it's tightly integrated with boot_info, so the
whole builder is gated on CONFIG_HAS_BOOT_INFO, autoselected on x86 only
for the time being.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
Signed-off-by: Alejandro Vallejo <agarciav@amd.com>
---
v4:
  * Moved from arch/x86 to common/
  * Present the domain builder submenu for X86 only.
  * s/LIB_DEVICE_TREE/LIBFDT/
  * Reworded Kconfig to be a bit more user-friendly.
  * Dropped Jason's R-by, due to the new Kconfig option.
---
 xen/arch/x86/Kconfig              |  1 +
 xen/common/Kconfig                |  5 +++++
 xen/common/domain-builder/Kconfig | 18 ++++++++++++++++++
 3 files changed, 24 insertions(+)
 create mode 100644 xen/common/domain-builder/Kconfig

diff --git a/xen/arch/x86/Kconfig b/xen/arch/x86/Kconfig
index de2fa37f08..67de2decc5 100644
--- a/xen/arch/x86/Kconfig
+++ b/xen/arch/x86/Kconfig
@@ -15,6 +15,7 @@ config X86
 	select FUNCTION_ALIGNMENT_16B
 	select GENERIC_BUG_FRAME
 	select HAS_ALTERNATIVE
+	select HAS_BOOT_INFO
 	select HAS_COMPAT
 	select HAS_CPUFREQ
 	select HAS_DIT
diff --git a/xen/common/Kconfig b/xen/common/Kconfig
index be28060716..5c9d4eb3ab 100644
--- a/xen/common/Kconfig
+++ b/xen/common/Kconfig
@@ -67,6 +67,9 @@ config GENERIC_BUG_FRAME
 config HAS_ALTERNATIVE
 	bool
 
+config HAS_BOOT_INFO
+	bool
+
 config HAS_COMPAT
 	bool
 
@@ -144,6 +147,8 @@ config STATIC_MEMORY
 
 	  If unsure, say N.
 
+source "common/domain-builder/Kconfig"
+
 menu "Speculative hardening"
 
 config INDIRECT_THUNK
diff --git a/xen/common/domain-builder/Kconfig b/xen/common/domain-builder/Kconfig
new file mode 100644
index 0000000000..5b137e4c2b
--- /dev/null
+++ b/xen/common/domain-builder/Kconfig
@@ -0,0 +1,18 @@
+
+menu "Domain Builder Features"
+depends on HAS_BOOT_INFO
+
+config DOMAIN_BUILDER
+	bool "Domain builder (UNSUPPORTED)" if UNSUPPORTED
+	select LIBFDT
+	help
+	  Xen has a built-in mechanisms to automatically construct domains
+	  (like dom0) during the boot phase. The domain builder is an enhanced
+	  form of that mechanism to enable constructing predefined domains
+	  described on a flattened device tree.
+
+	  This feature is currently experimental.
+
+	  If unsure, say N.
+
+endmenu
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu Apr 17 12:49:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 12:49:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.957515.1350651 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5OgH-0005x1-BS; Thu, 17 Apr 2025 12:49:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 957515.1350651; Thu, 17 Apr 2025 12: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 1u5OgH-0005wm-61; Thu, 17 Apr 2025 12:49:25 +0000
Received: by outflank-mailman (input) for mailman id 957515;
 Thu, 17 Apr 2025 12:49: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=m2wG=XD=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u5OgF-00057t-JK
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 12:49:23 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on2061a.outbound.protection.outlook.com
 [2a01:111:f403:2418::61a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 615e353b-1b8a-11f0-9ffb-bf95429c2676;
 Thu, 17 Apr 2025 14:49:21 +0200 (CEST)
Received: from CH2PR05CA0059.namprd05.prod.outlook.com (2603:10b6:610:38::36)
 by BY5PR12MB4099.namprd12.prod.outlook.com (2603:10b6:a03:20f::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.22; Thu, 17 Apr
 2025 12:49:15 +0000
Received: from CH2PEPF00000140.namprd02.prod.outlook.com
 (2603:10b6:610:38:cafe::2) by CH2PR05CA0059.outlook.office365.com
 (2603:10b6:610:38::36) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.12 via Frontend Transport; Thu,
 17 Apr 2025 12:49:14 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CH2PEPF00000140.mail.protection.outlook.com (10.167.244.72) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Thu, 17 Apr 2025 12:49:14 +0000
Received: from xcbagarciav01.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; Thu, 17 Apr
 2025 07:49:12 -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: 615e353b-1b8a-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=hhuwYUafuAg8n8vKjCJYj3+zk4JItuql8wmU1HqjmshC7Tc6jcGKehTP8xaXc1FdRo8SzwKEXcDnyb6gg0Wcu3LBKLcFbLPmpKZKQnZlM3pMUPIbaY/oxRzFufXSo3Vuz2IV69OBHDUzFwDbSCAsnlyAm7rPDZJcOfJnZu16sVJVg9INKbVL4ICEzL4eZUPlEMdGLGqD+NF2e9oHCSsv/XM0gKJSEXgSOIfmhGweuX/D5/mHLDY6By5F1K7wCrymsXMBM9nZBY3BPWr2fszGW7kZOntIZVZPvGBjwGA6b6qS/7J3EciwYmfop0Fywt+e44dSnormBSXLMoJm78tldQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=4OzobPr3TBqZbXRrQpQfQGC91ytT7XjCeEU/jQgkGLk=;
 b=q9wohMIuj3FPb2dU2auj7+qFUwIWVkBayF1Wt3jjKHvydGRPBjX8ha7lApHg26z2PsvCKDG9udF5ED8+YdwyzX3XWU5McdTzTs+6FgJkylA1UmvhaCqYVavX0Dn49ajgDNoqRzMEbofhQ1a/BLpNlPj6QgT2s6CH3PI/nzvccek10OK3i4VCYaWEASR8C1Pz1LVNpgqzuwWx3UR9TKWCvtZcPgL4IacjbkWMEyTU4p0FTQVVFy6vSy1VQSQDisteM/vcd1aPL/qPD8GiPsecIy9QZy/4NREZ3cfAC4YZq9ZA4ypu0IlsCq81aopJ24WG4Z5wOQfOCBUhBVBHBKrORg==
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=4OzobPr3TBqZbXRrQpQfQGC91ytT7XjCeEU/jQgkGLk=;
 b=ZAfmZeDUO4TGTGP/mPET409+nWohJzl4oKJbYWu6rtMS/umvbIdvb61Anw/1k2t+sRocl/so7iyhzzkSd+tauNlrgJDlKIkdtm0oNZWyQSbY3rfbpYvIMx/ilNE9REgYSE65c5qY4bYC3rN3SXcZ5sUACzohahpn8gCu83g1Sek=
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: Alejandro Vallejo <agarciav@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: "Daniel P. Smith" <dpsmith@apertussolutions.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, "Julien
 Grall" <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, "Jason
 Andryuk" <jason.andryuk@amd.com>, Alejandro Vallejo <agarciav@amd.com>
Subject: [PATCH v4 03/13] common/hyperlaunch: introduce the domain builder
Date: Thu, 17 Apr 2025 13:48:25 +0100
Message-ID: <20250417124844.11143-4-agarciav@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20250417124844.11143-1-agarciav@amd.com>
References: <20250417124844.11143-1-agarciav@amd.com>
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: CH2PEPF00000140:EE_|BY5PR12MB4099:EE_
X-MS-Office365-Filtering-Correlation-Id: 19cc74c0-527e-4a6a-c130-08dd7dae4251
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?CbppMfsukHKOrqLnfK6Vj23sH6IXtzWrUIrrBgPvoles3zpLXnIZYt4BZ2Ps?=
 =?us-ascii?Q?ecBdQMdB9EoawrV2mPku3e6MKIXj2gNK2Z9YzSZZ3mRyE/zK3yXtWlnKyuma?=
 =?us-ascii?Q?Bw8Jaa9124Fc2ag9n0q16RUP5MBRwXy8nOR5uLR94TPbmm7Nmf4X9UlP+L2Z?=
 =?us-ascii?Q?pPgO3eJM/4Yz0Ys9Fhv2qerRPRpOYvHNRL5GyqB+CJIWY8pVBV+pZ1jqmFlJ?=
 =?us-ascii?Q?R7/ZQQSaohy7HJ9ULfU7fUEnaCnoCmNGPm+sFokb0YTQhX6lIbWlX671ArIm?=
 =?us-ascii?Q?Rc+FcNseFQ+5/8f64br5rDUglIk+9kSBn5AWckilokd1tlJayr/AFbBUGGTD?=
 =?us-ascii?Q?8FRqr5cqqr+w4sv1cGznzVzORyDKjnELEmqFLURHv1kYsYqx/pGoExKiuMMV?=
 =?us-ascii?Q?HqRp7U0n1p3xqvlssWTddi3p4lZ918b1QJybxMGc4Zj/SEds+yTLB2gLzuTV?=
 =?us-ascii?Q?pR/yHpE9VB1wpnw1PJVVQ0xreEkpsMk8I6fFYhLcJJtZ61zvGC6T4iRRH+jk?=
 =?us-ascii?Q?yCAWCbcDd5HxZiMAzUA/udt4MRUAvuCDIwp81nffmdEc/kdNqfxA16r7qg1p?=
 =?us-ascii?Q?Aa3ze6LpzoHTZXqWyvQto0fC6z+W7nSZX6+Z0gDso/g6zPGF9UOngCSr2o+e?=
 =?us-ascii?Q?UqgITxHHWMwVZx5Q2wqtkeke7pp2XIK4pNoQXYUPss5Nrv1+VZTRm+QSe4A1?=
 =?us-ascii?Q?fJY1X7x9ZVfuUQsVTs8PfsmSCFdacmyW/Um9OuDS+8P4lviDq4MLI32cFBJi?=
 =?us-ascii?Q?yrwW4xJ382mHMp6mXXocguUxHVLrNcaRDFMegfsFWGY+P/0HSfEkXIzMYGQg?=
 =?us-ascii?Q?ChECIlE+KgV6E/DJQHykW8ickqaYW658HSCWYJAB1bWBvGcxtIHWaq1lWWp7?=
 =?us-ascii?Q?fDhWfyvurUavben76J8JG53Xi1q6bcmBDnJkVuAM7pfQB89+UZ7rlXme8dXv?=
 =?us-ascii?Q?XTlAT4ZFyvAYb9IOAx6uNBwhaX7MHx46uHEoIS/mpq61C89RPiDv8rH/nglT?=
 =?us-ascii?Q?YDVXPzCiKMM1ue/PW2IlaCeUGS3OZAGxqfNSK14eOTPshYIyb3WA/DGxFReC?=
 =?us-ascii?Q?5o+gcJWLSN4jPmjBUyBeYTAQim6CL/djF4SV907QRah7pZ0p1IW2jy/3zxCF?=
 =?us-ascii?Q?zw2xdxIiHAaThBiLJgxip+YXukdIKg/ZemRkAPbBfl3rXPhqqe8olNSsosId?=
 =?us-ascii?Q?Kd92xePtMkMMN4yWV4oM/QpRaBafD+2QXUnVW12NPPUW5MYo7gBQj90PruIX?=
 =?us-ascii?Q?8DbXF3pTJRto/VBT4Vb/mRomw6zY9UoMh0rmq6nNkE+D+yKdtIMZ4cx+hP08?=
 =?us-ascii?Q?fQCfwHccwj6zIOhfvlAsYuPJiCtWetIliaonN3wy6xiHn19eoj/gbYxzRrot?=
 =?us-ascii?Q?QFam66pSlDng4sAH0QTiMTZWK+5W3fufAROpy1FfRb4Oc+VRSQF6A1/p86mQ?=
 =?us-ascii?Q?NdkYDjS5XBDaTN7/Vgo9BwcxXe5kNQW9Cocgzrb2pGsbD40HKOLMJu/4Fldn?=
 =?us-ascii?Q?pDtr0fNFR6NE+5OR9JCChyxTygA/5/5bdRA2?=
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: 17 Apr 2025 12:49:14.6289
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 19cc74c0-527e-4a6a-c130-08dd7dae4251
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:
	CH2PEPF00000140.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR12MB4099

From: "Daniel P. Smith" <dpsmith@apertussolutions.com>

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>
Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
Signed-off-by: Alejandro Vallejo <agarciav@amd.com>
---
v4:
  * Moved from arch/x86/ to common/
  * gated all of domain-builder/ on CONFIG_BOOT_INFO
  * Hide the domain builder submenu for !X86
  * Factor out the "hyperlaunch_enabled = false" toggle core.c
  * Removed stub inline, as DCE makes it unnecessary
  * Adjusted printks.
---
 xen/arch/x86/include/asm/bootinfo.h |  3 ++
 xen/arch/x86/setup.c                | 17 +++++----
 xen/common/Makefile                 |  1 +
 xen/common/domain-builder/Makefile  |  2 ++
 xen/common/domain-builder/core.c    | 56 +++++++++++++++++++++++++++++
 xen/common/domain-builder/fdt.c     | 37 +++++++++++++++++++
 xen/common/domain-builder/fdt.h     | 12 +++++++
 xen/include/xen/domain-builder.h    |  9 +++++
 8 files changed, 131 insertions(+), 6 deletions(-)
 create mode 100644 xen/common/domain-builder/Makefile
 create mode 100644 xen/common/domain-builder/core.c
 create mode 100644 xen/common/domain-builder/fdt.c
 create mode 100644 xen/common/domain-builder/fdt.h
 create mode 100644 xen/include/xen/domain-builder.h

diff --git a/xen/arch/x86/include/asm/bootinfo.h b/xen/arch/x86/include/asm/bootinfo.h
index 3afc214c17..82c2650fcf 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/setup.c b/xen/arch/x86/setup.c
index 4df012460d..ccc57cc70a 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -5,6 +5,7 @@
 #include <xen/cpuidle.h>
 #include <xen/dmi.h>
 #include <xen/domain.h>
+#include <xen/domain-builder.h>
 #include <xen/domain_page.h>
 #include <xen/efi.h>
 #include <xen/err.h>
@@ -1282,9 +1283,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 )
     {
@@ -1467,8 +1471,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);
+    bi->domains[0].kernel->headroom =
+        bzimage_headroom(bootstrap_map_bm(bi->domains[0].kernel),
+                         bi->domains[0].kernel->size);
     bootstrap_unmap();
 
 #ifndef highmem_start
@@ -1592,7 +1597,7 @@ void asmlinkage __init noreturn __start_xen(void)
 #endif
     }
 
-    if ( bi->mods[0].headroom && !bi->mods[0].relocated )
+    if ( bi->domains[0].kernel->headroom && !bi->domains[0].kernel->relocated )
         panic("Not enough memory to relocate the dom0 kernel image\n");
     for ( i = 0; i < bi->nr_modules; ++i )
     {
diff --git a/xen/common/Makefile b/xen/common/Makefile
index 98f0873056..565837bc71 100644
--- a/xen/common/Makefile
+++ b/xen/common/Makefile
@@ -11,6 +11,7 @@ obj-$(filter-out $(CONFIG_X86),$(CONFIG_ACPI)) += device.o
 obj-$(CONFIG_HAS_DEVICE_TREE) += device-tree/
 obj-$(CONFIG_IOREQ_SERVER) += dm.o
 obj-y += domain.o
+obj-$(CONFIG_HAS_BOOT_INFO) += domain-builder/
 obj-y += event_2l.o
 obj-y += event_channel.o
 obj-$(CONFIG_EVTCHN_FIFO) += event_fifo.o
diff --git a/xen/common/domain-builder/Makefile b/xen/common/domain-builder/Makefile
new file mode 100644
index 0000000000..b10cd56b28
--- /dev/null
+++ b/xen/common/domain-builder/Makefile
@@ -0,0 +1,2 @@
+obj-$(CONFIG_DOMAIN_BUILDER) += fdt.init.o
+obj-y += core.init.o
diff --git a/xen/common/domain-builder/core.c b/xen/common/domain-builder/core.c
new file mode 100644
index 0000000000..a5b21fc179
--- /dev/null
+++ b/xen/common/domain-builder/core.c
@@ -0,0 +1,56 @@
+/* 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)
+{
+    bi->hyperlaunch_enabled = false;
+
+    if ( IS_ENABLED(CONFIG_DOMAIN_BUILDER) )
+    {
+        int ret;
+
+        switch ( ret = has_hyperlaunch_fdt(bi) )
+        {
+        case 0:
+            printk(XENLOG_DEBUG "DT found: hyperlaunch\n");
+            bi->hyperlaunch_enabled = true;
+            bi->mods[0].type = BOOTMOD_FDT;
+            break;
+
+        case -EINVAL:
+            /* No DT found */
+            break;
+
+        case -ENOENT:
+        case -ENODATA:
+            printk(XENLOG_DEBUG "DT found: non-hyperlaunch (%d)\n", ret);
+            bi->mods[0].type = BOOTMOD_FDT;
+            break;
+
+        default:
+            printk(XENLOG_ERR "unknown error (%d) checking hyperlaunch DT\n",
+                   ret);
+            break;
+        }
+    }
+}
+
+/*
+ * 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/domain-builder/fdt.c b/xen/common/domain-builder/fdt.c
new file mode 100644
index 0000000000..aaf8c1cc16
--- /dev/null
+++ b/xen/common/domain-builder/fdt.c
@@ -0,0 +1,37 @@
+/* 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 <asm/bootinfo.h>
+#include <asm/page.h>
+#include <asm/setup.h>
+
+#include "fdt.h"
+
+int __init has_hyperlaunch_fdt(const struct boot_info *bi)
+{
+    int ret = 0;
+    const void *fdt = bootstrap_map_bm(&bi->mods[HYPERLAUNCH_MODULE_IDX]);
+
+    if ( !fdt || 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/common/domain-builder/fdt.h b/xen/common/domain-builder/fdt.h
new file mode 100644
index 0000000000..97a45a6ec4
--- /dev/null
+++ b/xen/common/domain-builder/fdt.h
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+#ifndef __XEN_DOMAIN_BUILDER_FDT_H__
+#define __XEN_DOMAIN_BUILDER_FDT_H__
+
+struct boot_info;
+
+/* hyperlaunch fdt is required to be module 0 */
+#define HYPERLAUNCH_MODULE_IDX 0
+
+int has_hyperlaunch_fdt(const struct boot_info *bi);
+
+#endif /* __XEN_DOMAIN_BUILDER_FDT_H__ */
diff --git a/xen/include/xen/domain-builder.h b/xen/include/xen/domain-builder.h
new file mode 100644
index 0000000000..ac2b84775d
--- /dev/null
+++ b/xen/include/xen/domain-builder.h
@@ -0,0 +1,9 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+#ifndef __XEN_DOMAIN_BUILDER_H__
+#define __XEN_DOMAIN_BUILDER_H__
+
+struct boot_info;
+
+void builder_init(struct boot_info *bi);
+
+#endif /* __XEN_DOMAIN_BUILDER_H__ */
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu Apr 17 12:49:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 12:49:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.957516.1350661 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5OgI-0006DO-L1; Thu, 17 Apr 2025 12:49:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 957516.1350661; Thu, 17 Apr 2025 12:49: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 1u5OgI-0006D5-Gr; Thu, 17 Apr 2025 12:49:26 +0000
Received: by outflank-mailman (input) for mailman id 957516;
 Thu, 17 Apr 2025 12: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=m2wG=XD=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u5OgG-0004z9-O0
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 12:49:24 +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 630b4218-1b8a-11f0-9eb0-5ba50f476ded;
 Thu, 17 Apr 2025 14:49:23 +0200 (CEST)
Received: from CH5P223CA0009.NAMP223.PROD.OUTLOOK.COM (2603:10b6:610:1f3::7)
 by LV3PR12MB9142.namprd12.prod.outlook.com (2603:10b6:408:198::12) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.34; Thu, 17 Apr
 2025 12:49:18 +0000
Received: from CH2PEPF0000013E.namprd02.prod.outlook.com
 (2603:10b6:610:1f3:cafe::eb) by CH5P223CA0009.outlook.office365.com
 (2603:10b6:610:1f3::7) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.23 via Frontend Transport; Thu,
 17 Apr 2025 12:49:17 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CH2PEPF0000013E.mail.protection.outlook.com (10.167.244.70) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Thu, 17 Apr 2025 12:49:17 +0000
Received: from xcbagarciav01.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; Thu, 17 Apr
 2025 07:49:15 -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: 630b4218-1b8a-11f0-9eb0-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=wILlPMYn870rliEbR/1i3RklnYKGNmYaYX/reZ7FESSksWE4J4v+wNes2pvY2L9eNt2n94kEPCJ81urwcC64+G3/mmN8Lt+v9H5WcnPsXDPWa+z5ISTIeoLTYf0tjxzgYOzMTH0RMY54jyOKudinETy7K9hUp8FuUdWxEGT+LHwoL7kOAG2Fwh2TrNVlEud+X9H8sUOxEzMIJixk92RTowumVVKH55F5Ak1A1r6rxVP/ktPyq3JR3QF4cEzLZp+kOREWXvilhyTqAeH79AZde0kGLLJodp6AktkwiVXSluCg0tHmPOditgqu4bOmblXGwkTkxIsgExvsMIsOEVxgbA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=t7xiK6PeKs5xPBbhZTz8eNtT12S/o7Uwx5Un9Jm+bck=;
 b=JIsucPzgWm80VIpoSGKRnejFGOl3jP/lRgfTX0W42ZcxpCllE1lN8sz00NbE/fT1MER6bOsY6+pQ0usbEKG1c+whF3zeDxG3AJmfNZogXEublqbICBmLeA1d7cn7q9KY2qiyCvofmmQmUxme8VY2Al6SXDy2ybzlzaQP4rVnm8kRrgsOcMjdOXLsH3YGHSS+Hhk3YHS2yBcr9AnvhozTtJ98U2q5+6lb2Pzn2EGg48oaVdpkdQ4El3xPWkoCQ9gY47eSsU5P4CMzjMnKyFkeQVdPjvm7xLKcDgaHvPcnz+USiGCu5+do3n82xXV1lVVA8MpH/DTIJ8fsZsAshaqFuw==
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=t7xiK6PeKs5xPBbhZTz8eNtT12S/o7Uwx5Un9Jm+bck=;
 b=YvBnkFGuhlFDt7MD4WBBQDkYnNgvjrXnwOh/5oXmhVA50ErJqk8OW3qBMgnILJiWvYEMWLL6k7m/8sF1RaItISTebMhg38enAQEyuUpbjME27M8KrB5HDCvAGFEfLv1XrUFbeGJrZPRcJbqItuzUsjBz5PeE6KnlzEnTA5fFNgs=
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: Alejandro Vallejo <agarciav@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Alejandro Vallejo <agarciav@amd.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, "Julien
 Grall" <julien@xen.org>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
	"Bertrand Marquis" <bertrand.marquis@arm.com>, Jason Andryuk
	<jason.andryuk@amd.com>
Subject: [PATCH v4 05/13] x86/hyperlaunch: Add helpers to locate multiboot modules
Date: Thu, 17 Apr 2025 13:48:27 +0100
Message-ID: <20250417124844.11143-6-agarciav@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20250417124844.11143-1-agarciav@amd.com>
References: <20250417124844.11143-1-agarciav@amd.com>
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: CH2PEPF0000013E:EE_|LV3PR12MB9142:EE_
X-MS-Office365-Filtering-Correlation-Id: 238d86d0-85ed-4b63-deab-08dd7dae43fd
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|36860700013|1800799024|376014;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?TPWym8tWghJNn7u5VrAlE7czRNecaZSZxbjFfHDz/6FkdwsP6/xmIJStJ7HS?=
 =?us-ascii?Q?numC5JFQjPZH7LaS4QW+U6pETcGU+qm86T1ZDLqqYVy4xxOLXisEPO+wTOap?=
 =?us-ascii?Q?BYiZ1VdCVAB7RD2xYWj3b/y5Covq3fGkdXhDzZZiDX7vkSCODIDgXsniV3ho?=
 =?us-ascii?Q?znx5HI/h9gCvp7GS0gKkX864tvy5J7AeHEUUVQai+8OOBmUagmqbYuruyJA3?=
 =?us-ascii?Q?ReX5E0ZJLY+Y965ztUYh1ozlXJer5CFJIqmaHqZRpELVh8XwmZKg6RWngnlj?=
 =?us-ascii?Q?vWMi1z3oWDi/rIVDVdwHEAF7xsUU40LaHuHWwiNaiSx0m8lioIeiF6u5b4T3?=
 =?us-ascii?Q?eGNQCy5HhsmWuz2UOg9+AnXh9Yjbtl996oyx5hQTOc2jfXQnpMyQBbzEKWph?=
 =?us-ascii?Q?xI4XOYw7xady0VjsOB2lRtfWHTNwT6E8KeiW275qcdxPRmR/FTj+vj5oPkv0?=
 =?us-ascii?Q?6in1gL/eeeN6HiGyAJI72CTzETSIhB2ERjT1DIDf+HldfeRHfHukdXVzuaAL?=
 =?us-ascii?Q?WfXXoTx8SeuEMn/FjMm5cK1ESCeS9RyyP/UkbonLhkxozr10QR2kUBPqIaiV?=
 =?us-ascii?Q?EJOxH99kQGsZCCJS5P5HZovjWSkPLRUbvTKl0KWnznr8q7yVFv4auooxg72X?=
 =?us-ascii?Q?BN5gfBzEyjb6bCfXvpddia4mHGuiyqjcV18FvmSjcp+nB5528uG9f2Aa+eaA?=
 =?us-ascii?Q?hywyfTwYOaVqI0JTpaelPq6ulNtEV4E6vT5IMUB+UJAaIabPzuG1Toc0Qf6C?=
 =?us-ascii?Q?yBhIhqyD1zz1rml1CFjydHRvicxTbBCz3TuHklLXh1Kqamnn6UBzqwgbeBHn?=
 =?us-ascii?Q?8obLiUkIZ3336f5+MzsGiSOqz7L4elhdKf3Ot2lxBeNg15C6ICNI75VPUJoy?=
 =?us-ascii?Q?wIzMpj1zBmerVlC6OWzKwNSK52qlSj3c/09l3e/UvYkPlrQb3Zc4YZo6VG4P?=
 =?us-ascii?Q?NRwyp9S5Kwu1FeD3/PpiL32HyvWY6uwPQVwq37j6gd9Nx8rWEGObkK2AkTDl?=
 =?us-ascii?Q?FwIHQ6nHj11Mr/pZ1smpOssN/XeKLGaNB9e03C7Ynl8kHsLrCIMBCBQ4GWxc?=
 =?us-ascii?Q?k2kf0a5DOr6rmSmme+X12SUdnwg1SAayWjDrhMU9mTEA7ES6lOqhBIqQoBGA?=
 =?us-ascii?Q?nDyIC+jTsncj4zv0Ea/jCWnK+TlnD4GntwNJu1svjQ468brJ7KdwBE/y8LbF?=
 =?us-ascii?Q?vwiPeKDL0Phd/Q0QCz7jVnMbgwfnlKIULQBLjaZJ4o+oWUexou1db47Fe2KK?=
 =?us-ascii?Q?WXY+bchy67t7h5ZsHcOpgAsAog+rn2/Fj5iCJ4DPRKXAJ0hMgC8IQHYIKGfZ?=
 =?us-ascii?Q?f9HHh/M2zPm2sy15g10Qn8ucStTINtLcmRzgxhvyP3plpzLMlmy792FykT+Y?=
 =?us-ascii?Q?kj2x6Ms9ObpOAg4EW7y4SFXbDhPbAAIR0dmhPHaQJSI0tw9UOOkqVtF4L+6t?=
 =?us-ascii?Q?nEF1rEfTLVemYDr3rM1YFLv8RqST2MIhBo0hdztlyqyh8s7bT4qA649a+az+?=
 =?us-ascii?Q?Y/wy+S3p5ZYOHd7iNbhJw6xpfwAKjeHQoow6?=
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)(1800799024)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Apr 2025 12:49:17.4206
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 238d86d0-85ed-4b63-deab-08dd7dae43fd
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:
	CH2PEPF0000013E.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV3PR12MB9142

Hyperlaunch mandates either a reg or module-index DT prop on nodes that
contain `multiboot,module" under their "compatible" prop. This patch
introduces a helper to generically find such index, appending the module
to the list of modules if it wasn't already (i.e: because it's given via
the "reg" prop).

Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
Signed-off-by: Alejandro Vallejo <agarciav@amd.com>
---
v4:
  * Remove stray reg prop parser in libfdt-xen.h.
  * Remove fdt32_as_uX accessors.
  * Brough fdt_prop_as_u32() accesor from later patches.
    * So it can be used in place of a hardcoded fdt32_as_u32().
  * Limited MAX_NR_BOOTMODS to INT_MAX.
  * Preserved BOOTMOD_XEN on module append logic.
  * Add missing bounds check to module-index parsed in multiboot module helper.
  * Converted idx variable to uint32_t for better bounds checking.
  * Braces from switch statement to conform to coding style.
  * Added missing XENLOG_X.
  * Print address_cells and size_cells on error parsing reg properties.
  * Added (transient) missing declaration for extern helper.
    * becomes static on the next patch.
---
 xen/common/domain-builder/fdt.c     | 162 ++++++++++++++++++++++++++++
 xen/common/domain-builder/fdt.h     |   2 +
 xen/include/xen/domain-builder.h    |   3 +
 xen/include/xen/libfdt/libfdt-xen.h |  11 ++
 4 files changed, 178 insertions(+)

diff --git a/xen/common/domain-builder/fdt.c b/xen/common/domain-builder/fdt.c
index b5ff8220da..d73536fed6 100644
--- a/xen/common/domain-builder/fdt.c
+++ b/xen/common/domain-builder/fdt.c
@@ -13,6 +13,168 @@
 
 #include "fdt.h"
 
+/*
+ * Unpacks a "reg" property into its address and size constituents.
+ *
+ * @param prop          Pointer to an FDT "reg" property.
+ * @param address_cells Number of 4-octet cells that make up an "address".
+ * @param size_cells    Number of 4-octet cells that make up a "size".
+ * @param p_addr[out]   Address encoded in the property.
+ * @param p_size[out]   Size encoded in the property.
+ * @returns             -EINVAL on malformed property, 0 otherwise.
+ */
+static int __init read_fdt_prop_as_reg(const struct fdt_property *prop,
+                                       int address_cells, int size_cells,
+                                       uint64_t *p_addr, uint64_t *p_size)
+{
+    const fdt32_t *cell = (const fdt32_t *)prop->data;
+    uint64_t addr, size;
+
+    if ( fdt32_to_cpu(prop->len) !=
+         (address_cells + size_cells) * sizeof(*cell) )
+    {
+        printk(XENLOG_ERR "  cannot read reg %lu+%lu from prop len %u\n",
+            address_cells * sizeof(*cell), size_cells * sizeof(*cell),
+            fdt32_to_cpu(prop->len));
+        return -EINVAL;
+    }
+
+    switch ( address_cells )
+    {
+    case 1:
+        addr = fdt32_to_cpu(*cell);
+        break;
+    case 2:
+        addr = fdt64_to_cpu(*(const fdt64_t *)cell);
+        break;
+    default:
+        printk(XENLOG_ERR "  unsupported address_cells=%d\n", address_cells);
+        return -EINVAL;
+    }
+
+    cell += address_cells;
+    switch ( size_cells )
+    {
+    case 1:
+        size = fdt32_to_cpu(*cell);
+        break;
+    case 2:
+        size = fdt64_to_cpu(*(const fdt64_t *)cell);
+        break;
+    default:
+        printk(XENLOG_ERR "  unsupported size_cells=%d\n", size_cells);
+        return -EINVAL;
+    }
+
+    *p_addr = addr;
+    *p_size = size;
+
+    return 0;
+}
+
+/*
+ * Locate a multiboot module given its node offset in the FDT.
+ *
+ * The module location may be given via either FDT property:
+ *     * reg = <address, size>
+ *         * Mutates `bi` to append the module.
+ *     * module-index = <idx>
+ *         * Leaves `bi` unchanged.
+ *
+ * @param fdt           Pointer to the full FDT.
+ * @param node          Offset for the module node.
+ * @param address_cells Number of 4-octet cells that make up an "address".
+ * @param size_cells    Number of 4-octet cells that make up a "size".
+ * @param bi[inout]     Xen's representation of the boot parameters.
+ * @return              -EINVAL on malformed nodes, otherwise
+ *                      index inside `bi->mods`
+ */
+int __init fdt_read_multiboot_module(const void *fdt, int node,
+                                     int address_cells, int size_cells,
+                                     struct boot_info *bi)
+{
+    const struct fdt_property *prop;
+    uint64_t addr, size;
+    int ret;
+    uint32_t idx;
+
+    if ( fdt_node_check_compatible(fdt, node, "multiboot,module") )
+    {
+        printk(XENLOG_ERR "  bad module. multiboot,module not found");
+        return -ENODATA;
+    }
+
+    /* Location given as a `module-index` property. */
+    if ( (prop = fdt_get_property(fdt, node, "module-index", NULL)) )
+    {
+        if ( fdt_get_property(fdt, node, "reg", NULL) )
+        {
+            printk(XENLOG_ERR "  found both reg and module-index for module\n");
+            return -EINVAL;
+        }
+        if ( (ret = fdt_prop_as_u32(prop, &idx)) )
+        {
+            printk(XENLOG_ERR "  bad module-index prop\n");
+            return ret;
+        }
+        if ( idx >= MAX_NR_BOOTMODS )
+        {
+            printk(XENLOG_ERR "  module-index overflow. %s=%u\n",
+                   STR(MAX_NR_BOOTMODS), MAX_NR_BOOTMODS);
+            return -EINVAL;
+        }
+
+        return idx;
+    }
+
+    /* Otherwise location given as a `reg` property. */
+    if ( !(prop = fdt_get_property(fdt, node, "reg", NULL)) )
+    {
+        printk(XENLOG_ERR "  no location for multiboot,module\n");
+        return -EINVAL;
+    }
+    if ( fdt_get_property(fdt, node, "module-index", NULL) )
+    {
+        printk(XENLOG_ERR "  found both reg and module-index for module\n");
+        return -EINVAL;
+    }
+
+    ret = read_fdt_prop_as_reg(prop, address_cells, size_cells, &addr, &size);
+    if ( ret < 0 )
+    {
+        printk(XENLOG_ERR "  failed reading reg for multiboot,module\n");
+        return -EINVAL;
+    }
+
+    idx = bi->nr_modules;
+    if ( idx > MAX_NR_BOOTMODS )
+    {
+        /*
+         * MAX_NR_BOOTMODS must fit in 31 bits so it's representable in the
+         * positive side of an int; for the return value.
+         */
+        BUILD_BUG_ON(MAX_NR_BOOTMODS > (uint64_t)INT_MAX);
+        printk(XENLOG_ERR "  idx=%u exceeds len=%u\n", idx, MAX_NR_BOOTMODS);
+        return -EINVAL;
+    }
+
+    /*
+     * Append new module to the existing list
+     *
+     * Note that bi->nr_modules points to Xen itself, so we must shift it first
+     */
+    bi->nr_modules++;
+    bi->mods[bi->nr_modules] = bi->mods[idx];
+    bi->mods[idx] = (struct boot_module){
+        .start = addr,
+        .size = size,
+    };
+
+    printk(XENLOG_INFO "  module[%u]: addr %lx size %lx\n", idx, addr, size);
+
+    return idx;
+}
+
 static int __init find_hyperlaunch_node(const void *fdt)
 {
     int hv_node = fdt_path_offset(fdt, "/chosen/hypervisor");
diff --git a/xen/common/domain-builder/fdt.h b/xen/common/domain-builder/fdt.h
index 955aead497..8c98a256eb 100644
--- a/xen/common/domain-builder/fdt.h
+++ b/xen/common/domain-builder/fdt.h
@@ -2,6 +2,8 @@
 #ifndef __XEN_DOMAIN_BUILDER_FDT_H__
 #define __XEN_DOMAIN_BUILDER_FDT_H__
 
+#include <xen/libfdt/libfdt-xen.h>
+
 struct boot_info;
 
 /* hyperlaunch fdt is required to be module 0 */
diff --git a/xen/include/xen/domain-builder.h b/xen/include/xen/domain-builder.h
index ac2b84775d..ace6b6875b 100644
--- a/xen/include/xen/domain-builder.h
+++ b/xen/include/xen/domain-builder.h
@@ -5,5 +5,8 @@
 struct boot_info;
 
 void builder_init(struct boot_info *bi);
+int fdt_read_multiboot_module(const void *fdt, int node,
+                              int address_cells, int size_cells,
+                              struct boot_info *bi)
 
 #endif /* __XEN_DOMAIN_BUILDER_H__ */
diff --git a/xen/include/xen/libfdt/libfdt-xen.h b/xen/include/xen/libfdt/libfdt-xen.h
index a5340bc9f4..deafb25d98 100644
--- a/xen/include/xen/libfdt/libfdt-xen.h
+++ b/xen/include/xen/libfdt/libfdt-xen.h
@@ -12,6 +12,17 @@
 #define LIBFDT_XEN_H
 
 #include <xen/libfdt/libfdt.h>
+#include <xen/errno.h>
+
+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;
+
+    *val = fdt32_to_cpu(*(const fdt32_t *)prop->data);
+    return 0;
+}
 
 static inline int fdt_get_mem_rsv_paddr(const void *fdt, int n,
                                         paddr_t *address,
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu Apr 17 12:49:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 12:49:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.957517.1350668 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5OgJ-0006HH-5J; Thu, 17 Apr 2025 12:49:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 957517.1350668; Thu, 17 Apr 2025 12:49: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 1u5OgI-0006Gc-R6; Thu, 17 Apr 2025 12:49:26 +0000
Received: by outflank-mailman (input) for mailman id 957517;
 Thu, 17 Apr 2025 12:49: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=m2wG=XD=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u5OgH-0004z9-2N
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 12:49:25 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on20600.outbound.protection.outlook.com
 [2a01:111:f403:2414::600])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 62de663e-1b8a-11f0-9eb0-5ba50f476ded;
 Thu, 17 Apr 2025 14:49:24 +0200 (CEST)
Received: from CH2PR05CA0040.namprd05.prod.outlook.com (2603:10b6:610:38::17)
 by SA1PR12MB7174.namprd12.prod.outlook.com (2603:10b6:806:2b1::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.31; Thu, 17 Apr
 2025 12:49:19 +0000
Received: from CH2PEPF00000140.namprd02.prod.outlook.com
 (2603:10b6:610:38:cafe::73) by CH2PR05CA0040.outlook.office365.com
 (2603:10b6:610:38::17) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.12 via Frontend Transport; Thu,
 17 Apr 2025 12:49:19 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CH2PEPF00000140.mail.protection.outlook.com (10.167.244.72) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Thu, 17 Apr 2025 12:49:18 +0000
Received: from xcbagarciav01.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; Thu, 17 Apr
 2025 07:49:17 -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: 62de663e-1b8a-11f0-9eb0-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ZWnFNfdT1+KSaegWPA4BR98UyXmp7yQQ3XDi9QhcCaMpupXvkEnAzPtSat4P10cbL6EYfsZwGZd+qz6DmYZhERrk+GY2wBoO/ZD8FttzbuEFEY2cF5iXZIDtcBdNUeYM05LyejFKbPft8+LfGiWaQ+8cm2v2D97H1A+lGsacrwu0kJooh9MNMLdlOzuFTKoxWx02hk/MUaXDwzVR3wLh6JfriW8RiGgRLrv7w8FdBdmkwFZxd8RmKZ+lx/txHvQw7oo3J8RATu+O8Qf3YRolawDgejlPLyl9wvTgaRACJSJjb1ldTVGcSDw5NgZF8KR4wsTEMpTf/hg06pH+kImS7Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=vfgmq0mrmtOhob94RrCghd2dAPQaF9U03DWaQIZKTC0=;
 b=SqBCNc6gdfdbAfhpOky+fqPQgZJEkssNiJUYIaXdQZNQ00qhvVj/KH8rRJELTa7jkp7aZtaOET7GfYJKa/pwAVpBRz/XgenotteMBjQ/3scheWt3+3R2YLwjPpJkJKskaVmu/25+EVPqqtNyUV2SRfAIjvmDLdBxzRGQPKrNYRb5nojGCZtzsrmtprJslQojVCqEVoWBxpDZ0DkBls44v0zgYj0aijtC8omFUmf1FDKuzED48XeKt8qYQz8I2IDlamlqL+eMz6eqUAz9rstrpEDp1TYAMLwVh3IJBOohb+gydKmEByF/ufZlZy2neleCQ+qOJ9B6uQv1J28CORzrzA==
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=vfgmq0mrmtOhob94RrCghd2dAPQaF9U03DWaQIZKTC0=;
 b=UCcEQrGUe5fXQGMbqOgYZ7CwqSNJ++WwWGFPQ2QrHrXzm8BQTB7T9brN/9jUb/LGc01Y/A+LkzTuwodJoEqVyw/79HGmBZnhHvoXZx2dRd7PhYVaggwUAIJttGkcfVaJ2DElYeTLeknrNjdGxUtnHjrT5mRAZC3dzBsN65jv1TY=
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: Alejandro Vallejo <agarciav@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: "Daniel P. Smith" <dpsmith@apertussolutions.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, "Julien
 Grall" <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, "Jason
 Andryuk" <jason.andryuk@amd.com>, Alejandro Vallejo <agarciav@amd.com>
Subject: [PATCH v4 06/13] x86/hyperlaunch: locate dom0 kernel with hyperlaunch
Date: Thu, 17 Apr 2025 13:48:28 +0100
Message-ID: <20250417124844.11143-7-agarciav@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20250417124844.11143-1-agarciav@amd.com>
References: <20250417124844.11143-1-agarciav@amd.com>
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: CH2PEPF00000140:EE_|SA1PR12MB7174:EE_
X-MS-Office365-Filtering-Correlation-Id: 7bc230de-9344-4fb0-8b7e-08dd7dae44e3
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?74uUej/9hen3CFr4c6NUSd96gybXUWMQtWIc9CVqtWKfysTMBAHrpbB2hVcc?=
 =?us-ascii?Q?1YWORLNVLr1W5LXdaNbaxK6lXetIngitKqHR/Ih3jeOV5cRmGFZMzAiXwq3x?=
 =?us-ascii?Q?nsNp10VGsjFQhm7XZw2jPybwUhMHyMuVXnZJ+l+hYiJE/F0uUw2kZU2VqVPs?=
 =?us-ascii?Q?p/h0i1avItZGBZZB/2kIOiedPFP7gjYVNBXu9lJchZJZEcTX8FR+r3wMhwQQ?=
 =?us-ascii?Q?lW9YZHZQT0QUbtXkSpnBQZr79QpQ49IuEfU6FNsrcqfeGyzMTDDMFOsFgDtq?=
 =?us-ascii?Q?64XVykwzPIIpMwL2f5r7xJKc36Yy845uNzu77qYsCgL8QXvAcPzK3UR7Atw4?=
 =?us-ascii?Q?IK37wmElEFrEBcVLmtp22FT8z+hDOJtNWFuQz14b8wDmH/hE6Bhmn2dUgUOr?=
 =?us-ascii?Q?T6VUOc4PaitIdHnFJyM57Ebuy6NuQ6Mp7B3sDeaEoHo5UHZgkpWOED5pN4tK?=
 =?us-ascii?Q?PnDpfhGJkC4192FFsqV+4yDupOwWE7ayoIZ9LdwNpbf4yDpHTVM4hIWJbSPK?=
 =?us-ascii?Q?c/f9VWeu+ZiuhLwMv1CdpWaz27o+PUZ9fk6df7gIaXYh7YFQsL8E66DRXCoW?=
 =?us-ascii?Q?NRxwgxDbg0wQ3yZQNRxlRv7OPrgyEHzjBKQw+x0tXrxcXSeakizZymmTlhjm?=
 =?us-ascii?Q?FOOdItFvM5DiDAdbTtXTCOSFEv+rBEAgpr/NdoIw/iWktatVw2vA4k5ECMqd?=
 =?us-ascii?Q?f3oOCNwPYpo2Xd2G5wmU1Inr9qv0sdrk7v/Fv/oRGAiFN1tl179QGjSJl3hA?=
 =?us-ascii?Q?a8esEnLZZUX4UJhJDw8Af6oNx5uRqABO5usYTO04CI60z8oeABhKlor7f7a0?=
 =?us-ascii?Q?FfqskpxzRzgt3homkYeHufMsq1G61qe6c/9MTzV3j+u4uD6XIeXkQM7OYgIL?=
 =?us-ascii?Q?MRGv7L3lGalmP0RYE5fLchXrb5UeSMOIRgC5I0Sna0BQME0y7DVnbNcvvGCv?=
 =?us-ascii?Q?sH/teV6Q0tKyv3gFN/wVlHupo/5BMnhapJ1+pnQDvUOys75qdDSqsfjfxnF3?=
 =?us-ascii?Q?WpfU5SO98Koe69+dHC4LSqJ8nTg+5OEqjoe7oWz6Kjqc090v7nZb6ez9UX3x?=
 =?us-ascii?Q?mJxw+eUBbJZWnvrtF6Eeb0r4t2XdI/ahUC0Qd6H9IV/SWQbek1mUMC1pQO9x?=
 =?us-ascii?Q?fZy1F0/tc24ven/bVQZGa2GwI0grGl90zWbuCi0xjaneI078/hTlNH+tEZ4A?=
 =?us-ascii?Q?wShFTAB1f6ki8MZoyS/NsOL7rIeWe3NmTZyKiMeHqfUBtr7Yhqv81dVjzRHO?=
 =?us-ascii?Q?dTcQhgp9b0hja/SPDcykvR4FwxcbfVzkc8mC9I8jRIq1wKzyPB4iPabqSCf7?=
 =?us-ascii?Q?HfK1gtEYfZi7Yl+dUxRlJFR9xbspwO9o0MYle6QPSRhXUi0ySAH/lUEXoB6k?=
 =?us-ascii?Q?TSrfNYHT87kwbfZ78ptHD9NUyLgwOJ2ym6BYaukbiYcpOnv3c4FeHb4ReN7G?=
 =?us-ascii?Q?EJRuCnObBXExzYM7YosSJlmSYCHEgz/XBz0yHKnwagqofab61fYyHVSt2NCR?=
 =?us-ascii?Q?NsiP9/Rd6GhxCEzbWlZ66wz7AA6Jvj3os7LL?=
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: 17 Apr 2025 12:49:18.9377
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 7bc230de-9344-4fb0-8b7e-08dd7dae44e3
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:
	CH2PEPF00000140.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB7174

From: "Daniel P. Smith" <dpsmith@apertussolutions.com>

Look for a subnode of type `multiboot,kernel` within a domain node. If
found, locate it using the multiboot module helper to generically ensure
it lives in the module list. 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>
Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
Signed-off-by: Alejandro Vallejo <agarciav@amd.com>
---
v4:
  * Stop printing on the fallback path of builder_init().
    It's in fact the most common path and just adds noise.
  * Add missing XENLOG_X.
  * Simplified check to log error on nr_domains != 1.
  * s/XENLOG_ERR/XENLOG_WARNING/ on duplicate kernel.
  * Turned foo == 0 into !foo in the "multiboot,kernel" check
---
 xen/arch/x86/setup.c             |  5 ---
 xen/common/domain-builder/core.c |  9 +++++
 xen/common/domain-builder/fdt.c  | 64 ++++++++++++++++++++++++++++++--
 xen/include/xen/domain-builder.h |  3 --
 4 files changed, 70 insertions(+), 11 deletions(-)

diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index ccc57cc70a..4f669f3c60 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -1285,11 +1285,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 */
diff --git a/xen/common/domain-builder/core.c b/xen/common/domain-builder/core.c
index 3b062e85ec..924cb495a3 100644
--- a/xen/common/domain-builder/core.c
+++ b/xen/common/domain-builder/core.c
@@ -54,6 +54,15 @@ void __init builder_init(struct boot_info *bi)
 
         printk(XENLOG_INFO "  number of domains: %u\n", bi->nr_domains);
     }
+    else
+    {
+        /* Find first unknown boot module to use as dom0 kernel */
+        unsigned int 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/common/domain-builder/fdt.c b/xen/common/domain-builder/fdt.c
index d73536fed6..1fae6add3b 100644
--- a/xen/common/domain-builder/fdt.c
+++ b/xen/common/domain-builder/fdt.c
@@ -89,9 +89,9 @@ static int __init read_fdt_prop_as_reg(const struct fdt_property *prop,
  * @return              -EINVAL on malformed nodes, otherwise
  *                      index inside `bi->mods`
  */
-int __init fdt_read_multiboot_module(const void *fdt, int node,
-                                     int address_cells, int size_cells,
-                                     struct boot_info *bi)
+static int __init fdt_read_multiboot_module(const void *fdt, int node,
+                                            int address_cells, int size_cells,
+                                            struct boot_info *bi)
 {
     const struct fdt_property *prop;
     uint64_t addr, size;
@@ -175,6 +175,52 @@ int __init fdt_read_multiboot_module(const void *fdt, int node,
     return idx;
 }
 
+static int __init process_domain_node(
+    struct boot_info *bi, const 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) ?: "unknown";
+    int address_cells = fdt_address_cells(fdt, dom_node);
+    int size_cells = fdt_size_cells(fdt, dom_node);
+
+    fdt_for_each_subnode(node, fdt, dom_node)
+    {
+        if ( !fdt_node_check_compatible(fdt, node, "multiboot,kernel") )
+        {
+            int idx;
+
+            if ( bd->kernel )
+            {
+                printk(XENLOG_WARNING
+                       "  duplicate kernel for domain %s\n", name);
+                continue;
+            }
+
+            idx = fdt_read_multiboot_module(fdt, node, address_cells,
+                                            size_cells, bi);
+            if ( idx < 0 )
+            {
+                printk(XENLOG_ERR
+                       "  failed processing kernel for domain %s\n", name);
+                return idx;
+            }
+
+            printk(XENLOG_INFO "  kernel: multiboot-index=%d\n", idx);
+            bi->mods[idx].type = BOOTMOD_KERNEL;
+            bd->kernel = &bi->mods[idx];
+        }
+    }
+
+    if ( !bd->kernel )
+    {
+        printk(XENLOG_ERR "error: no kernel assigned to domain\n");
+        return -ENODATA;
+    }
+
+    return 0;
+}
+
 static int __init find_hyperlaunch_node(const void *fdt)
 {
     int hv_node = fdt_path_offset(fdt, "/chosen/hypervisor");
@@ -237,8 +283,20 @@ 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 "warning: only creating first %u domains\n",
+                   MAX_NR_BOOTDOMS);
+            break;
+        }
+
         if ( !fdt_node_check_compatible(fdt, node, "xen,domain") )
+        {
+            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/include/xen/domain-builder.h b/xen/include/xen/domain-builder.h
index ace6b6875b..ac2b84775d 100644
--- a/xen/include/xen/domain-builder.h
+++ b/xen/include/xen/domain-builder.h
@@ -5,8 +5,5 @@
 struct boot_info;
 
 void builder_init(struct boot_info *bi);
-int fdt_read_multiboot_module(const void *fdt, int node,
-                              int address_cells, int size_cells,
-                              struct boot_info *bi)
 
 #endif /* __XEN_DOMAIN_BUILDER_H__ */
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu Apr 17 12:49:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 12:49:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.957520.1350681 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5OgL-0006nM-He; Thu, 17 Apr 2025 12:49:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 957520.1350681; Thu, 17 Apr 2025 12:49: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 1u5OgL-0006n6-Dc; Thu, 17 Apr 2025 12:49:29 +0000
Received: by outflank-mailman (input) for mailman id 957520;
 Thu, 17 Apr 2025 12:49: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=m2wG=XD=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u5OgK-0004z9-8L
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 12:49:28 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on2061e.outbound.protection.outlook.com
 [2a01:111:f403:2414::61e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 653f2bf1-1b8a-11f0-9eb0-5ba50f476ded;
 Thu, 17 Apr 2025 14:49:27 +0200 (CEST)
Received: from CH2PR16CA0019.namprd16.prod.outlook.com (2603:10b6:610:50::29)
 by BN5PR12MB9511.namprd12.prod.outlook.com (2603:10b6:408:2a9::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.35; Thu, 17 Apr
 2025 12:49:22 +0000
Received: from CH2PEPF0000013F.namprd02.prod.outlook.com
 (2603:10b6:610:50:cafe::67) by CH2PR16CA0019.outlook.office365.com
 (2603:10b6:610:50::29) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.15 via Frontend Transport; Thu,
 17 Apr 2025 12:49:22 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CH2PEPF0000013F.mail.protection.outlook.com (10.167.244.71) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Thu, 17 Apr 2025 12:49:22 +0000
Received: from xcbagarciav01.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; Thu, 17 Apr
 2025 07:49:20 -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: 653f2bf1-1b8a-11f0-9eb0-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=O7xLHoSs02xsyswghDSj7LTogm46+xq8gGxWIe+kXmhpJ/1l2SvrQ43RJEDpxF37e/tfvPY1RyHjCCGrGYLKQ4ZJmXN4rCvKUFwot/f2o+5beVpd67ENfeG5NptX6PaB3zbUcnm45I/yoNp9TUS0IOLbkadc9/5mgFUKGfAcKQenF3lIHJkDDUAAY+xuKsaqG90OATbBAc2Ye4M4MonL59/QaDdgjGtsv1oy15iXTRvqdsAsb4E5MC8+q74bT1f8yqOjEc9m1d99n9lYupVn0FUr5y4fee5gSB+sFlM9auofUPUUe4qtJN4SHHmtUMmPHyd/Brf0fHlVG5EqDoo8Mg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=tmoofm42WlgUtLxeqf60xNluT8/fPAszyhmDXROd35k=;
 b=h56v0n1PjLjBi6+5BGJYT9K0YvjuLVbUG9qfv/1Z+zxBVVP9wcI1fjpM3KWsGyeuNRdkBesDsonnEvK1BGygriyZOicvPb/D1Yvw4T/yyvnvAXWKRrS4Oqi4GzCVawG8oLmQ16yMlYx0drvSGfGW8iFf4M4s+qnI0k2NMCPOVRWoLkau0HcW+XgWH7ouxhQ1Zxsm9uRpelnTY6WZvxbKdS5g+FZLA07bIDMt6JfabHWSvlARjYp/jU8VlF5zqHy70sxItZZ+E7MzHiLGIHTDYTmNODP88CdmW7fsFeqVHBhmc0URnjNU2fm8tA9REH7PGHLxaW/Khfgrhp3PtjG0Tg==
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=tmoofm42WlgUtLxeqf60xNluT8/fPAszyhmDXROd35k=;
 b=3Ulx6tArJylhpkC6Yof6QkAa3YpZ9wNfAcYcDaqngjm5gLDraO66geQtQM+y8N66LarQcRfDEpI+esm2mC5COu9Y3sYnPzComoMOoQ51xTXTdj3XUCgm865JJDDI0RacPDlOrp4f8NznURqkDbRFrjTsFxAickWA5l/9CMXBl+I=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C
From: Alejandro Vallejo <agarciav@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: "Daniel P. Smith" <dpsmith@apertussolutions.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, "Julien
 Grall" <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, "Jason
 Andryuk" <jason.andryuk@amd.com>, Alejandro Vallejo <agarciav@amd.com>
Subject: [PATCH v4 08/13] x86/hyperlaunch: locate dom0 initrd with hyperlaunch
Date: Thu, 17 Apr 2025 13:48:30 +0100
Message-ID: <20250417124844.11143-9-agarciav@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20250417124844.11143-1-agarciav@amd.com>
References: <20250417124844.11143-1-agarciav@amd.com>
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: CH2PEPF0000013F:EE_|BN5PR12MB9511:EE_
X-MS-Office365-Filtering-Correlation-Id: ac4a6117-d7d8-49dc-101e-08dd7dae46c6
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?3i/A/CdCnR7vthPolO6R6ICa/6U7g0U1T46bZNrYosRO4yEoXMSpJdN36zUv?=
 =?us-ascii?Q?Ee7k5VkYqA4+mJh/GvJheWEW1tqojeOevoqR4EOhlarviXd8AJV7hLnAiT0v?=
 =?us-ascii?Q?rd9lAYIzDTSY1a3+VxjC5gLDrIOLmqqF0eYhkReTqlg6f2w8PB3y3gzEnEZS?=
 =?us-ascii?Q?CF8dtkBgZqPLTMY0ELLEPynuWhBWub71Pt3QlywWcxp+ZCtDPgo0DRkjRG/O?=
 =?us-ascii?Q?mf4lANdx1GpXVAQkOMaqAgeAdZvZZh+dlOX2EnxfYyD3b+V0gqdACiBGnxdI?=
 =?us-ascii?Q?Bw9iHmYrgpJhys7P99Re0GLolknzm3qYIbFSVZP0JFwr0aWr/Bm72kCMBFWv?=
 =?us-ascii?Q?WEJZGiJ1BcKXFWhOglRV0eTjQ9Sa/SNrum5FI7CHB9xFjQGoPsKFJaE9dzoQ?=
 =?us-ascii?Q?z8FZ5HAkmBE1XdIyTrL09ld/DP1sayd1lZd9ajBGO1qcZYW5XhsFe+0Ndn6D?=
 =?us-ascii?Q?H/z3Vx03lS9g2qdErVa9TtZTkhWEJY7mwNUEShu4m3x4w2ex+wuEGdsTUTX1?=
 =?us-ascii?Q?AFO0MB0pP58JMAjK29LXwUU07a0PY1b31eU/wQzbKloFTzRMRfyNjfecE49u?=
 =?us-ascii?Q?1xuwxeZed5vnBG2RGrfX9XHHFXVSXP8UiI8FknQCDBUd7EPFTaF/gy/9tA8a?=
 =?us-ascii?Q?q2fE5zmdmIfuwthXlMo2Bj5uAYpPimuu56/0ogoNWLicweJ4u+umuQzlK5Ch?=
 =?us-ascii?Q?t4LV/kyLYkQzIVXtTBbJHGIUhJn5xOCVdxYVTb1fqVjpGosC9CJKVEbDtXAV?=
 =?us-ascii?Q?GbSWth1X5DIhvcYztyntyVvy91/nGpu+ITRZv/Kuux92khpCOTCtnif/seP5?=
 =?us-ascii?Q?8Qf+iRVufKlFwWnRp1VyiYLvBCrXmnmrZuNGFskv7xiG/TEjWw9c5ZgGucq4?=
 =?us-ascii?Q?zsg33mQITpUVqO07fnvKrQwRs58p8/Ez2qTF6RtZnsokUZ871IZuBz2UJOXB?=
 =?us-ascii?Q?vga73ZP1jbCic3GsZGzI6jQjZ7DGPh54aVVmuGFeO+QJp3+4llm9+uqyVJpp?=
 =?us-ascii?Q?64n+WyUyWKaSgNNhtGnV7cCz0PLTMIR3xFEQNOcc3OILylW/5fY/AnpC84O0?=
 =?us-ascii?Q?TpbDSj0r7lNAih67AE51STXd4UFoNOzhv5+CXL0DXljsqOOIuTWKyhH2Gd7a?=
 =?us-ascii?Q?G5Z6TmYJ9R/ufJSRUHSzKYGZVk4/uFLL6tCCcqjwh8xMegA6s53qN6M6tTQz?=
 =?us-ascii?Q?A0S00lw/RNEa5QaV60uKUfWdeW4UnrAnfKCoSUHSm1VI4zpSCVmljA42w2qf?=
 =?us-ascii?Q?he+Ohu9H2+WsmvyNtIA6tTmXjKlU+oxLL+Grg2bdcE6/OmvvvaJFO75pbV2P?=
 =?us-ascii?Q?FvQkYQ+YIPz9j53z2qC3B+VBQ7GkPL9GDloUMaGVhJ4+25OqgKsvBtYFUxw+?=
 =?us-ascii?Q?ukzQ9vA+Ji1dfJ7+vNNMEGbe1plTya1WgzvDTRH1PdehRAmzzOZTo/c+nX4u?=
 =?us-ascii?Q?EGbwE8T9UYaMuLqAFZUSs4MOmkxds7QjdQz75/FmZdim2wnJJO+uAjqaZeL9?=
 =?us-ascii?Q?9z8dXpACJ4ALYS0y/llSTnJ2bQ5KAwjl6dFD?=
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)(376014)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Apr 2025 12:49:22.0985
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: ac4a6117-d7d8-49dc-101e-08dd7dae46c6
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:
	CH2PEPF0000013F.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN5PR12MB9511

From: "Daniel P. Smith" <dpsmith@apertussolutions.com>

Look for a subnode of type `multiboot,ramdisk` within a domain node and
parse via the fdt_read_multiboot_module() helper. After a successful
helper call, the module index is returned and the module is guaranteed
to be in the module list.

Fix unused typo in adjacent comment.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
Signed-off-by: Alejandro Vallejo <agarciav@amd.com>
---
v4:
  * s/XENLOG_ERR/XENLOG_WARNING/ on duplicate ramdisk.
  * Removed stray ")" in printk
  * s/else if/if/ (because of continue)
  * Removed trailing continue
---
 xen/arch/x86/setup.c            |  4 ++--
 xen/common/domain-builder/fdt.c | 25 +++++++++++++++++++++++++
 2 files changed, 27 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 4cae13163b..76ceb5221f 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -2150,11 +2150,11 @@ void asmlinkage __init noreturn __start_xen(void)
      * 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
+     * any remaining unclaimed boot modules, and report them as unused initrd
      * candidates.
      */
     initrdidx = first_boot_module_index(bi, BOOTMOD_UNKNOWN);
-    if ( initrdidx < MAX_NR_BOOTMODS )
+    if ( !bi->hyperlaunch_enabled && initrdidx < MAX_NR_BOOTMODS )
     {
         bi->mods[initrdidx].type = BOOTMOD_RAMDISK;
         bi->domains[0].module = &bi->mods[initrdidx];
diff --git a/xen/common/domain-builder/fdt.c b/xen/common/domain-builder/fdt.c
index 50fde2d007..c0f526a4ce 100644
--- a/xen/common/domain-builder/fdt.c
+++ b/xen/common/domain-builder/fdt.c
@@ -216,6 +216,31 @@ static int __init process_domain_node(
                 bd->kernel->fdt_cmdline = fdt_get_prop_offset(
                     fdt, node, "bootargs", &bd->kernel->cmdline_pa);
         }
+        else if ( !fdt_node_check_compatible(fdt, node, "multiboot,ramdisk") )
+        {
+            int idx;
+
+            if ( bd->module )
+            {
+                printk(XENLOG_WARNING
+                       "Duplicate module for domain %s\n", name);
+                continue;
+            }
+
+            idx = fdt_read_multiboot_module(fdt, node, address_cells,
+                                            size_cells, bi);
+            if ( idx < 0 )
+            {
+                printk(XENLOG_ERR
+                       "  failed processing module for domain %s\n",
+                       name);
+                return -EINVAL;
+            }
+
+            printk(XENLOG_INFO "  module: multiboot-index=%d\n", idx);
+            bi->mods[idx].type = BOOTMOD_RAMDISK;
+            bd->module = &bi->mods[idx];
+        }
     }
 
     if ( !bd->kernel )
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu Apr 17 12:49:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 12:49:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.957521.1350691 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5OgM-00073J-QE; Thu, 17 Apr 2025 12:49:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 957521.1350691; Thu, 17 Apr 2025 12:49: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 1u5OgM-00072Y-MA; Thu, 17 Apr 2025 12:49:30 +0000
Received: by outflank-mailman (input) for mailman id 957521;
 Thu, 17 Apr 2025 12:49: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=m2wG=XD=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u5OgL-0004z9-4n
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 12:49:29 +0000
Received: from NAM02-SN1-obe.outbound.protection.outlook.com
 (mail-sn1nam02on20628.outbound.protection.outlook.com
 [2a01:111:f403:2406::628])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 65bcd473-1b8a-11f0-9eb0-5ba50f476ded;
 Thu, 17 Apr 2025 14:49:28 +0200 (CEST)
Received: from CH5P221CA0020.NAMP221.PROD.OUTLOOK.COM (2603:10b6:610:1f2::11)
 by IA0PR12MB7603.namprd12.prod.outlook.com (2603:10b6:208:439::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.36; Thu, 17 Apr
 2025 12:49:24 +0000
Received: from CH2PEPF0000013C.namprd02.prod.outlook.com
 (2603:10b6:610:1f2:cafe::4f) by CH5P221CA0020.outlook.office365.com
 (2603:10b6:610:1f2::11) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.15 via Frontend Transport; Thu,
 17 Apr 2025 12:49:24 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CH2PEPF0000013C.mail.protection.outlook.com (10.167.244.73) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Thu, 17 Apr 2025 12:49:23 +0000
Received: from xcbagarciav01.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; Thu, 17 Apr
 2025 07:49:22 -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: 65bcd473-1b8a-11f0-9eb0-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=vHPlcpwvFKLLU6jznuSwnBDoa0O6eRXR40KZ0CA6fA7RVbse/ntZ7g6NdwRy7nMyZtJ6UnUbDIz7ecT6p7HjcEJjMFJ0q4JVV6F32q1WgHQ0veBVMB/MFmuLTtuUvM2/ZuEHF9x7daQsgMRoiD8njvSYBDtaCYntj7xfMslijgIzOCiipiA2J3ZEEU1lVBmCSH3py3dIjezN3vLxVX90NgaKGxGGJUJqhNOA3BulL+vtjm6qxmf9mzN3c2F5PMC5tkb6CaMJzAniUZlpxpnRVKrGT0ORmK29fdZtORxuMVJkivJU/0GU8h6EeivLt/Tt2oKN7TR33VoTRfVqxKxhFA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=m817Z8mbAQ6qi2tIdrjmLnKGXqF4Yyr5waBB1b3EjGc=;
 b=KKf9xXLmKx2hrLyD1A5lZni9rZc0lX7kOgtyRU4VfDeOMk0G/k4fPJA5zRIvwBMMbfMlkJgGUwW3lwEcLzuhlxrVXzj5yrhAu62hr643NJ/KnYG54mnAaJr89SHfsBRQxyXoSpDtvAO+wcTv0BXUnAvFhGgzG9kAtoll6Hk0ZboiIRjSeptS+PcBzFmffD/3Q2n9S3hk/5zizqZ4H/7ff5rQ0Gqtnz1pEE7N3xTQ7sqtaJJuS1YPVEcgo2bBtICvTK4FgGsVUNtE3zNHTv5fD79lBipD227AdVmFC5A0fW5acShU3/iNGuyBS4WF558vYxGvUQXFPvgCXgfL28mhag==
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=m817Z8mbAQ6qi2tIdrjmLnKGXqF4Yyr5waBB1b3EjGc=;
 b=pR3VH1D/veZm4y00LImEciU6PwlfTvvU5Uya3sjZ0QfccVSw3zcWIoopUoKsoegVqCbCuJ16KUX1EVE/+Rw8A+Etn6E9C3j72GqeRJnxqRWpGtpCq2pyIUSODZB5fltN7uJ5LZNKz6+LYamCISKYOb7KLbBrVKgrjYP7w09EPwg=
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: Alejandro Vallejo <agarciav@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: "Daniel P. Smith" <dpsmith@apertussolutions.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, "Julien
 Grall" <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
	Alejandro Vallejo <agarciav@amd.com>
Subject: [PATCH v4 09/13] x86/hyperlaunch: add domain id parsing to domain config
Date: Thu, 17 Apr 2025 13:48:31 +0100
Message-ID: <20250417124844.11143-10-agarciav@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20250417124844.11143-1-agarciav@amd.com>
References: <20250417124844.11143-1-agarciav@amd.com>
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: CH2PEPF0000013C:EE_|IA0PR12MB7603:EE_
X-MS-Office365-Filtering-Correlation-Id: 31aa6957-a103-4e5a-088e-08dd7dae47bd
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|36860700013|376014|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?uBpcaXgDQ9GsVpY8VIjvBqeApBNHu15oiT3YtmvIy1IXhmjKNXvuyuaECnaV?=
 =?us-ascii?Q?E+YBlgUOUKzWXxwpfRLRtWN53nrZ33kdrY+2iqz06eP5FeHpj+YqEyoTf5Vh?=
 =?us-ascii?Q?oTI5d3wyQ4ewK4NrBZumFHxJBlkIp/E3cbKCKYHKqtdbFlCp5bKgJg98IfOf?=
 =?us-ascii?Q?UR0vqchi89EZiba+q8gcn4xLjWaeU7kTPUx3XQqczK3Im6BpZ3ANlw4JDsPh?=
 =?us-ascii?Q?orMZQTjetJ3VuxGgWK1AwUVknXqPTripUqZ/YLxsArjt47rQZzO+t4WOoi3F?=
 =?us-ascii?Q?h32vOX2bCTCi/ceL30d6Kat+HyOlSDjnlitnnIbB5kqxiO07uhP2Hpalgglj?=
 =?us-ascii?Q?/lmTnY/AGWqe064Sm6YIwoajAAJ19ywtubhUKHgOLuTaECpXBtTP4BVomBfr?=
 =?us-ascii?Q?cKR/LsJmTLhNdMQQ/SfG8JWMUKNbked3+0q5vRi8ml6JXs0Bu4L0ZBNWT8n6?=
 =?us-ascii?Q?ZS1yg2LxKbrNX8Y/crr+uxKUnuM6jwnrSDhe3MJ5Ms1fYChwTKG/QobcmbVj?=
 =?us-ascii?Q?ejfRQ0vnDTOvgIzvkbGIRo9wpqHezPjncXmLG+VNt4hdiKf2/K1FIRgM98/o?=
 =?us-ascii?Q?8Vcp6K3/1t+h6z1TE6jcYM06kcxYi733Oz/DtR+lYl/VbK+GJ6S11KQZ+Oy6?=
 =?us-ascii?Q?JDNhXrXNNKNHpxXNQ3T/b0bKAy6kmGmceatzpJleruA2x1v1pZydq5Ymjhsu?=
 =?us-ascii?Q?1TybCjZZ/puAIQmw0QtxhazQjXSbwimSh1A+DLfICY78VmYL91TACkh8ZQBW?=
 =?us-ascii?Q?SlmPgZfM02X6amNd9J8ikFdeM6QRxshXUT/3wIKNI3dQ7OOCEHBLHLbRfqjc?=
 =?us-ascii?Q?i/urylRmhqDx6TWtuPVSVftwPZ40JTxSQh+SKdLVnah4b3bsXAtFQGc+Ld5m?=
 =?us-ascii?Q?EFPCqaaOcgqzgTzR4X8XWnmxq7KAaYdU5mMyXa4IoFSnz7D3i5Pg2gry4fyt?=
 =?us-ascii?Q?KRqNNu69GnPGg6lUvB+/HTnr6rSY5USGtn2lP4Ou8mNMrazBV2wseRT0lYCS?=
 =?us-ascii?Q?rQ9oo9XImqylGhNryF3lFRxmsQX4WIpFFRrbG20d4WJcNBxZSX1PBxtFaW6h?=
 =?us-ascii?Q?sbC6JrfIYZWBC7JrJaW+9edYW3eCeM4piKASWnNz4eYunuwd4VSehZfJ7FZ+?=
 =?us-ascii?Q?rxHkmsLQprccnay5at9vQXP3xiJmh55Dr4ue7ZnPSIGzKS9eNGTOA5Fs4HID?=
 =?us-ascii?Q?L8+0AGkRYXvwXqL/hLRfKN6idgFc2XWOrmWonFkcAgauxuCXTLYoQNbrUo4s?=
 =?us-ascii?Q?ciM/ESZMdzJpoQqnCFtePQUkin56RJgtmWmsGo4GSvJwm0IltiF7/18RlX0t?=
 =?us-ascii?Q?u5Duh418urBvdRXGfX3HEa309+5F6n1IUaKLRzX7ooN+eV+eBmGhf4z5NTjB?=
 =?us-ascii?Q?nyA2OcN+A/N829LZIeyfdUCzoLdms27eMUqU/0mVCGIy8GMxU94Drx2CEEqH?=
 =?us-ascii?Q?ibckgooc6W1B5gZ07cfZ8eOf1511fypM6CnLpdEjllrEJ+cV00f8Z1awI7Rh?=
 =?us-ascii?Q?KkEdI4oYfAGB3vnmLXTP4ENAP1XBZFvLiSRx?=
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: 17 Apr 2025 12:49:23.7168
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 31aa6957-a103-4e5a-088e-08dd7dae47bd
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:
	CH2PEPF0000013C.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PR12MB7603

From: "Daniel P. Smith" <dpsmith@apertussolutions.com>

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>
Signed-off-by: Alejandro Vallejo <agarciav@amd.com>
---
v4:
  * Add missing newline
  * Adjusted printks
  * Checked domid node against list of outstanding domids.
---
 xen/arch/x86/setup.c            |  5 ++--
 xen/common/domain-builder/fdt.c | 51 ++++++++++++++++++++++++++++++++-
 2 files changed, 53 insertions(+), 3 deletions(-)

diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 76ceb5221f..04ad2d0937 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -1033,8 +1033,9 @@ static struct domain *__init create_dom0(struct boot_info *bi)
     if ( iommu_enabled )
         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 )
+        /* Create initial domain.  Not d0 for pvshim. */
+        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));
diff --git a/xen/common/domain-builder/fdt.c b/xen/common/domain-builder/fdt.c
index c0f526a4ce..0d3c713041 100644
--- a/xen/common/domain-builder/fdt.c
+++ b/xen/common/domain-builder/fdt.c
@@ -2,6 +2,7 @@
 /*
  * Copyright (C) 2024, Apertus Solutions, LLC
  */
+#include <xen/domain.h>
 #include <xen/err.h>
 #include <xen/init.h>
 #include <xen/lib.h>
@@ -178,12 +179,54 @@ static int __init fdt_read_multiboot_module(const void *fdt, int node,
 static int __init process_domain_node(
     struct boot_info *bi, const 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) ?: "unknown";
     int address_cells = fdt_address_cells(fdt, dom_node);
     int size_cells = fdt_size_cells(fdt, dom_node);
 
+    fdt_for_each_property_offset(property, fdt, dom_node)
+    {
+        const struct fdt_property *prop;
+        const char *prop_name;
+        int name_len, rc;
+
+        prop = fdt_get_property_by_offset(fdt, property, NULL);
+        if ( !prop )
+            continue; /* silently skip */
+
+        prop_name = fdt_get_string(fdt, fdt32_to_cpu(prop->nameoff), &name_len);
+
+        if ( !strncmp(prop_name, "domid", name_len) )
+        {
+            uint32_t val = DOMID_INVALID;
+
+            if ( (rc = fdt_prop_as_u32(prop, &val)) )
+            {
+                printk(XENLOG_ERR
+                       "  failed processing domain id for domain %s\n", name);
+                return rc;
+            }
+            if ( val >= DOMID_FIRST_RESERVED )
+            {
+                printk(XENLOG_ERR "  invalid domain id for domain %s\n", name);
+                return -EINVAL;
+            }
+
+            for ( unsigned int i = 0; i < bi->nr_domains; i++ )
+            {
+                if ( bi->domains[i].domid == val )
+                {
+                    printk(XENLOG_ERR "  duplicate id for domain %s\n", name);
+                    return -EINVAL;
+                }
+            }
+
+            bd->domid = val;
+            printk(XENLOG_INFO "  domid: %d\n", bd->domid);
+        }
+    }
+
     fdt_for_each_subnode(node, fdt, dom_node)
     {
         if ( !fdt_node_check_compatible(fdt, node, "multiboot,kernel") )
@@ -249,6 +292,12 @@ static int __init process_domain_node(
         return -ENODATA;
     }
 
+    if ( bd->domid == DOMID_INVALID )
+        bd->domid = get_initial_domain_id();
+    else if ( bd->domid != get_initial_domain_id() )
+        printk(XENLOG_WARNING
+               "Warning: Unsuported boot with missing initial domid\n");
+
     return 0;
 }
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu Apr 17 12:49:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 12:49:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.957523.1350700 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5OgO-0007Mi-Jq; Thu, 17 Apr 2025 12:49:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 957523.1350700; Thu, 17 Apr 2025 12:49:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5OgO-0007MB-Ad; Thu, 17 Apr 2025 12:49:32 +0000
Received: by outflank-mailman (input) for mailman id 957523;
 Thu, 17 Apr 2025 12:49: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=m2wG=XD=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u5OgM-00057t-TA
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 12:49:31 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on20608.outbound.protection.outlook.com
 [2a01:111:f403:2412::608])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 65226245-1b8a-11f0-9ffb-bf95429c2676;
 Thu, 17 Apr 2025 14:49:28 +0200 (CEST)
Received: from CH2PR16CA0008.namprd16.prod.outlook.com (2603:10b6:610:50::18)
 by SJ1PR12MB6098.namprd12.prod.outlook.com (2603:10b6:a03:45f::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.22; Thu, 17 Apr
 2025 12:49:21 +0000
Received: from CH2PEPF0000013F.namprd02.prod.outlook.com
 (2603:10b6:610:50:cafe::7a) by CH2PR16CA0008.outlook.office365.com
 (2603:10b6:610:50::18) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.22 via Frontend Transport; Thu,
 17 Apr 2025 12:49:21 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CH2PEPF0000013F.mail.protection.outlook.com (10.167.244.71) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Thu, 17 Apr 2025 12:49:20 +0000
Received: from xcbagarciav01.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; Thu, 17 Apr
 2025 07:49:18 -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: 65226245-1b8a-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=GGANWIW/tDTkARGihhIjAsTj1DaBDHeHBHb1CGzeG0nIcmXbecAXJZbJgsi6J8kAqH8zYO6lcsGJSxAmJHnarasdM3RvLiK6SL0WFVRGg366n7F272svod0ja5BR7vLC/mvtreVCW74G+uqDzqVrb+AgOEly9xuaF6PnYwrk90JaO0hxryUX9RjEiTtYSBCQZXygTdsocGraWCynFmwr5on//IzoO/09Qgi8ozrrQJ2k8AicpBrlIVfgMQ4erLFkZS6B7QHBhd5vEhgwcCK3HHVCkNpXlnsmQ8MdHdWL6n7pzjFMQHY4FAQ0oxnqJPcAcXnzJv2mzRRgNRt2ej+Q/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=VwdtaTKUcJ7iphGJ2Ou019xLpH/FNYvYZOqOgt0we5o=;
 b=oKxy0xNYDMQi7zo+qfjAfi22SeCIVwdfHMMuSZfhDN5fNCHIthvhB61l6mDe2RVAzbgo3QK3wmjp3UevazpwjSgU4e49N/GXfP4pLOokg2LMsVN9AqwX11jF/nOzrwqKMxGUfaRNMrAF2bh3LbCyjvcfKLSO8oheqTss79hRv5g9YH4SOuxQzsZJeI546YLj5PfHuyzxVvz+V0/cXFuUbEz4YhS00wToAvsb2bQo5WkOqAotRx6B1s5Q+m0FoI78bHqu/XLHrks0cd3nDS+XaS2KQK5kpJpfY1yDImjpu131wlmQkOfwQ6pxWF5ZkkKcnpThzWF7MzhegZQJNHMl5w==
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=VwdtaTKUcJ7iphGJ2Ou019xLpH/FNYvYZOqOgt0we5o=;
 b=AKEm7ZLMwLbetWQpW6VMMq8Mfdk7vmtPBCHz1+wd1IJuIenVhv8bC1pJ/CQY1z5BR5tx2c7bimPvUMGitn7i17PUSJ4i+0tf0yZ9In8Me4jYV3vbKou0zQ7/6ku7wk2M19ABti4mdrQ1PBY/egIGTBi3NjMtfQNhNjy2qnqzhFg=
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: Alejandro Vallejo <agarciav@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: "Daniel P. Smith" <dpsmith@apertussolutions.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, "Julien
 Grall" <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
	"Bertrand Marquis" <bertrand.marquis@arm.com>, Jason Andryuk
	<jason.andryuk@amd.com>, Alejandro Vallejo <agarciav@amd.com>
Subject: [PATCH v4 07/13] x86/hyperlaunch: obtain cmdline from device tree
Date: Thu, 17 Apr 2025 13:48:29 +0100
Message-ID: <20250417124844.11143-8-agarciav@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20250417124844.11143-1-agarciav@amd.com>
References: <20250417124844.11143-1-agarciav@amd.com>
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: CH2PEPF0000013F:EE_|SJ1PR12MB6098:EE_
X-MS-Office365-Filtering-Correlation-Id: ff657605-8552-4994-fd9e-08dd7dae45e3
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|36860700013|1800799024|376014;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?5r4FQlshaGn78myioCUcnEYixVnT9o1agHdODH5Quq4pDucUEuzZh6v7pI9I?=
 =?us-ascii?Q?7QRZ7LK59e+DZOTSnXOIqRsyYH5r4YFNQ9Fboi2EriSkjJ1nq6757u33iUEk?=
 =?us-ascii?Q?0S5b8l2rEbDKxSx55acnlapikKnFPF7uLmgPuzCZBzNLzfJk+mL9hnEWG8Po?=
 =?us-ascii?Q?LuKiSJXx4PCjAFq3UUtzkiCSFg19b1BXpxEm1HRh7ybpnrWvhRd2DUZ4axvX?=
 =?us-ascii?Q?BNTmsH9sFeV4K6A37XBLqPvYGJcY24n77V5ZMNkngrrfKC4cehM5d8U1zrLu?=
 =?us-ascii?Q?ZCC5J0xc8kR58CXArI3UPFwqmSrpkqX9tpJRloL0IgQkEL5g0N+uGG9a3cPX?=
 =?us-ascii?Q?dAE6ZtMgTQUSxH1bzN1PVF7aEFWA8fV5bMmaajpEPZsrSy2vQEO67RvAT4bj?=
 =?us-ascii?Q?n/45StbgrRVzEFIvgYrtf48PzQ+Eca87ZnT1ZS32HUJUTKjhb8McJHTgl03B?=
 =?us-ascii?Q?8SQRhr12E52hrfVkH9YEGLVIQeDUuL2zbkNLOlMT2Ht9g3Kt8+LjFD5Uj3zr?=
 =?us-ascii?Q?pcLp3RLpkn07Ug3Q9cYBOGZBRTI6nuJQDs85jWZ4tWY28V0ugwvHj/1gZtbw?=
 =?us-ascii?Q?5+buF0JjuIckgsEjws4ieKnTaSKg1AVAGaVvJ0g5LClIYHXf7M0uYMotuPBp?=
 =?us-ascii?Q?E4GM6DcO/0cpiO+76p0OsExdTVJnoTop/tX2wbivgDFHGdU/tQethC8EMhrX?=
 =?us-ascii?Q?yOwzSZctwT3cygcYnwURmVBBYSJInbTXJ5xTIoCXdNIuFZfwb89yB32Eghuv?=
 =?us-ascii?Q?OZ3L9ddPrtJZijfSLeh6CGSHrEzmanraF2x46hkmfSYVj59M5/3q3BF+rymd?=
 =?us-ascii?Q?IguLZGLqHwMjvoNB+63grG5aw3lURWxkzf36No3LOoBgW+rXPn3lVSaf2k2p?=
 =?us-ascii?Q?HaybE1PxLSJDKHU4f1WoRCJI0kayskHcLn8LB49UsTUygZoi1pfk5vd92wQl?=
 =?us-ascii?Q?zsvqg/6LxbmYh++qAQg8hDeer6i3obadjSO+GjAsGR257IosUR7GM0QU6yws?=
 =?us-ascii?Q?GDDHtsGyExnrhuSUuGAachngLlfKbbA7/PWumoYSPust0ej8TlVigLt1dgTM?=
 =?us-ascii?Q?523uRv8wBt+ICGAAVMvG1vR5YNyhrTHUzKuXnG1ZmxNMaC61GMkUcncCbpvF?=
 =?us-ascii?Q?E+9pUdsDasQGpGfedA5F+cIb1MhnPal3qRXP7lTg1morso9o/imo8JQ/t8IB?=
 =?us-ascii?Q?UwzOyS4Shpu/kXLTwIUWAIH7nUeVde+JQO/b84PUCo77/7nNSeO/vyowAVFy?=
 =?us-ascii?Q?H1DsBrvL1sGp7glTHnl632UimiczZjU5fVcUgBLP0AOkNXqqUjo8K00Jp7GS?=
 =?us-ascii?Q?ENmVVlTq0Y9kUwYBf1zjPCb+QoxSt7wCRzlxzuoifwRpwJGIricvWvS1Jilx?=
 =?us-ascii?Q?nxYA8oZN/JsLOLR7GcYUdyGv9VoZTjF9TZOt0EC7azRS4rjHs9DnOQkuEO/C?=
 =?us-ascii?Q?hozj0ZC3jnif4B1XOslbWQQVzAts2Sh5slT5w+VsjilczdAxhx8E1X5m8bK8?=
 =?us-ascii?Q?Zb8R0SHSLCbRkC2wf2zbHRUQGH5rB7JG7Ql+?=
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)(1800799024)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Apr 2025 12:49:20.6192
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: ff657605-8552-4994-fd9e-08dd7dae45e3
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:
	CH2PEPF0000013F.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ1PR12MB6098

From: "Daniel P. Smith" <dpsmith@apertussolutions.com>

Add support to read the command line from the hyperlauunch device tree.
The device tree command line is located in the "bootargs" property of the
"multiboot,kernel" node.

A boot loader command line, e.g. a grub module string field, takes
precendence ove the device tree one since it is easier to modify.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
Signed-off-by: Alejandro Vallejo <agarciav@amd.com>
---
v4:
  * Removed __init from header declarations.
  * Removed ifdef guards, as DCE ensures the missing definitions don't
    matter.
  * Removed ifdef guards from new helpers in domain-builder/fdt.c
    * Rely on DCE instead.
  * Restored checks for cmdline_pa being zero.
  * swapped offset and poffset varnames in libfdt-xen.h helper.
  * swapped name and pname varnames in libfdt-xen.h helper.
  * Turned foo == 0  into !foo in libfdt-xen.h helper.
---
 xen/arch/x86/include/asm/bootinfo.h |  6 ++++--
 xen/arch/x86/setup.c                | 10 +++++++--
 xen/common/domain-builder/core.c    | 32 +++++++++++++++++++++++++++++
 xen/common/domain-builder/fdt.c     |  6 ++++++
 xen/common/domain-builder/fdt.h     | 24 ++++++++++++++++++++++
 xen/include/xen/domain-builder.h    |  4 ++++
 xen/include/xen/libfdt/libfdt-xen.h | 23 +++++++++++++++++++++
 7 files changed, 101 insertions(+), 4 deletions(-)

diff --git a/xen/arch/x86/include/asm/bootinfo.h b/xen/arch/x86/include/asm/bootinfo.h
index 1e3d582e45..5b2c93b1ef 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/setup.c b/xen/arch/x86/setup.c
index 4f669f3c60..4cae13163b 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -984,7 +984,10 @@ static size_t __init domain_cmdline_size(const struct boot_info *bi,
 {
     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 if ( bd->kernel->cmdline_pa )
+        s += strlen(__va(bd->kernel->cmdline_pa));
 
     if ( s == 0 )
         return s;
@@ -1047,7 +1050,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 if ( bd->kernel->cmdline_pa )
             strlcpy(cmdline,
                     cmdline_cook(__va(bd->kernel->cmdline_pa), bi->loader),
                     cmdline_size);
diff --git a/xen/common/domain-builder/core.c b/xen/common/domain-builder/core.c
index 924cb495a3..4b4230f2ff 100644
--- a/xen/common/domain-builder/core.c
+++ b/xen/common/domain-builder/core.c
@@ -8,9 +8,41 @@
 #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)
+{
+    const void *fdt;
+    int size;
+
+    if ( !IS_ENABLED(CONFIG_DOMAIN_BUILDER) )
+        return 0;
+
+    fdt = bootstrap_map_bm(&bi->mods[HYPERLAUNCH_MODULE_IDX]);
+    size = fdt_cmdline_prop_size(fdt, offset);
+    bootstrap_unmap();
+
+    return max(0, size);
+}
+
+int __init builder_get_cmdline(
+    struct boot_info *bi, int offset, char *cmdline, size_t size)
+{
+    const void *fdt;
+    int ret;
+
+    if ( !IS_ENABLED(CONFIG_DOMAIN_BUILDER) )
+        return 0;
+
+    fdt = bootstrap_map_bm(&bi->mods[HYPERLAUNCH_MODULE_IDX]);
+    ret = fdt_cmdline_prop_copy(fdt, offset, cmdline, size);
+    bootstrap_unmap();
+
+    return ret;
+}
+
 void __init builder_init(struct boot_info *bi)
 {
     bi->hyperlaunch_enabled = false;
diff --git a/xen/common/domain-builder/fdt.c b/xen/common/domain-builder/fdt.c
index 1fae6add3b..50fde2d007 100644
--- a/xen/common/domain-builder/fdt.c
+++ b/xen/common/domain-builder/fdt.c
@@ -209,6 +209,12 @@ static int __init process_domain_node(
             printk(XENLOG_INFO "  kernel: multiboot-index=%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] )
+                bd->kernel->fdt_cmdline = fdt_get_prop_offset(
+                    fdt, node, "bootargs", &bd->kernel->cmdline_pa);
         }
     }
 
diff --git a/xen/common/domain-builder/fdt.h b/xen/common/domain-builder/fdt.h
index 8c98a256eb..d2ae7d5c36 100644
--- a/xen/common/domain-builder/fdt.h
+++ b/xen/common/domain-builder/fdt.h
@@ -9,6 +9,30 @@ struct boot_info;
 /* hyperlaunch fdt is required to be module 0 */
 #define HYPERLAUNCH_MODULE_IDX 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(const struct boot_info *bi);
 int walk_hyperlaunch_fdt(struct boot_info *bi);
 
diff --git a/xen/include/xen/domain-builder.h b/xen/include/xen/domain-builder.h
index ac2b84775d..ac0fd8f60b 100644
--- a/xen/include/xen/domain-builder.h
+++ b/xen/include/xen/domain-builder.h
@@ -4,6 +4,10 @@
 
 struct boot_info;
 
+size_t builder_get_cmdline_size(const struct boot_info *bi, int offset);
+int builder_get_cmdline(const struct boot_info *bi, int offset,
+                               char *cmdline, size_t size);
+
 void builder_init(struct boot_info *bi);
 
 #endif /* __XEN_DOMAIN_BUILDER_H__ */
diff --git a/xen/include/xen/libfdt/libfdt-xen.h b/xen/include/xen/libfdt/libfdt-xen.h
index deafb25d98..afc76e7750 100644
--- a/xen/include/xen/libfdt/libfdt-xen.h
+++ b/xen/include/xen/libfdt/libfdt-xen.h
@@ -24,6 +24,29 @@ static inline int __init fdt_prop_as_u32(
     return 0;
 }
 
+static inline bool __init fdt_get_prop_offset(
+    const void *fdt, int node, const char *pname, unsigned long *poffset)
+{
+    int ret, offset;
+    const char *name;
+
+    fdt_for_each_property_offset(offset, fdt, node)
+    {
+        fdt_getprop_by_offset(fdt, offset, &name, &ret);
+
+        if ( ret < 0 )
+            continue;
+
+        if ( !strcmp(name, pname) )
+        {
+            *poffset = offset;
+            return true;
+        }
+    }
+
+    return false;
+}
+
 static inline int fdt_get_mem_rsv_paddr(const void *fdt, int n,
                                         paddr_t *address,
                                         paddr_t *size)
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu Apr 17 12:49:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 12:49:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.957526.1350711 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5OgQ-0007oz-Ss; Thu, 17 Apr 2025 12:49:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 957526.1350711; Thu, 17 Apr 2025 12:49: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 1u5OgQ-0007oe-Ny; Thu, 17 Apr 2025 12:49:34 +0000
Received: by outflank-mailman (input) for mailman id 957526;
 Thu, 17 Apr 2025 12:49: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=m2wG=XD=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u5OgO-00057t-VK
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 12:49:32 +0000
Received: from NAM02-SN1-obe.outbound.protection.outlook.com
 (mail-sn1nam02on20622.outbound.protection.outlook.com
 [2a01:111:f403:2406::622])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 66556f52-1b8a-11f0-9ffb-bf95429c2676;
 Thu, 17 Apr 2025 14:49:29 +0200 (CEST)
Received: from CH2PR16CA0008.namprd16.prod.outlook.com (2603:10b6:610:50::18)
 by BL3PR12MB6476.namprd12.prod.outlook.com (2603:10b6:208:3bc::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.32; Thu, 17 Apr
 2025 12:49:25 +0000
Received: from CH2PEPF0000013F.namprd02.prod.outlook.com
 (2603:10b6:610:50:cafe::8f) by CH2PR16CA0008.outlook.office365.com
 (2603:10b6:610:50::18) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.22 via Frontend Transport; Thu,
 17 Apr 2025 12:49:25 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CH2PEPF0000013F.mail.protection.outlook.com (10.167.244.71) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Thu, 17 Apr 2025 12:49:25 +0000
Received: from xcbagarciav01.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; Thu, 17 Apr
 2025 07:49:23 -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: 66556f52-1b8a-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=jwIJTLD9OVqEwMP8KxtzqZbOV7xRIokhNngxR04Eeh1wbe2A+w8ymVYhSJ26J7TQ6l5iVAedTNDbh+Ln641Sa8OWi5e9URcyxqmdnHr2XHkc9FmJvGgIbuLHY1HcI5rXWxV0aFkr6L4czX7RAg8YajXDbIHuanh8qSKMmZAWdTGS3umDdsqvZVsFGxzRUMyje05N4XzH7T3QhsteMkHrphvB2pq9DVwOTbWQ7ZPkZ1cfyq3PmL94u3A3dLYskgf2hzmsq9eBBRaeu+349r8cGvLp/IpCMXaFCBfNUD3LhTKjkzU+0f4J+3mbKSBD3x/Vxw7JKfJfjGvDDKrmbVyG5Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=dG4dgkHyQpoSbEGo8ogLcSTekb2wVBJTPCULMiDnJuo=;
 b=KxBulFUNwwS2TXNlIRgBfUsvpX+2IWI3gJHeowuOiQz9Cdhjtu4tHAaC+JjUsFF0nMLP0IBter7sbM4G9GyU8h7CS8470Tba6azjYuaz58wl/hmYSx06QTnS6bdLcE8PlCrJ2AqDqfoElA9BOVkESC3qx8mD3QxcTIPfaPW89NVRvxPekuZZglXfjaeq4DYB/RKRc8KgGSarNeLFcf3t7NBKWT3DfoddGfuEbAxoW93ksvVgFpEuGIshp80pF0BbztIqgKwW2BCkuhuioZ1JaH8avdpe8wmD8iyuQOeEr1TkohTdm5hsW9cn7G+9pVytZlTrZ0EH8q5KpVYK4qS/yg==
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=dG4dgkHyQpoSbEGo8ogLcSTekb2wVBJTPCULMiDnJuo=;
 b=RvXc52CvSOhwDin8/ii7BvV2cQBfD3ApmjdrIVBaPWrXB8Sd950AILLr8pS3SizOyq4s3inW2llm6c1N4mj/wvuO6Uw1s2x6gYPr2QyHSHJ+M/4R4iNl28lya7NNKgZgGRjb8BfgTET5Y+wVYpzKGPzbLjeD/RECVu2H2OoBwwY=
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: Alejandro Vallejo <agarciav@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: "Daniel P. Smith" <dpsmith@apertussolutions.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, "Julien
 Grall" <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, "Jason
 Andryuk" <jason.andryuk@amd.com>, Alejandro Vallejo <agarciav@amd.com>
Subject: [PATCH v4 10/13] x86/hyperlaunch: specify dom0 mode with device tree
Date: Thu, 17 Apr 2025 13:48:32 +0100
Message-ID: <20250417124844.11143-11-agarciav@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20250417124844.11143-1-agarciav@amd.com>
References: <20250417124844.11143-1-agarciav@amd.com>
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: CH2PEPF0000013F:EE_|BL3PR12MB6476:EE_
X-MS-Office365-Filtering-Correlation-Id: b0414358-6b72-439b-dfdf-08dd7dae489e
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?mcn6xeLl6irSjACIL8eBxZy5Tacmh1o8mM2n4iE8niSWdZkcIGxjvHHCnt5c?=
 =?us-ascii?Q?ppANWuchVn2AD1At1ZZL+Ex9FOXFg3AhHg1SZQAqn2X4Sq5TKzh22K8VxiUz?=
 =?us-ascii?Q?xVS0/EYwMWtZNVfcU+R2xNd9AZHaLscInTtnoHM6l8Xjd9WDci3ptoslwoto?=
 =?us-ascii?Q?yF3r5T92CU+KbLCQM7KwsbhGd7vi6wtn8z2qQZ/yEKROYUgUIQ/ZSuknOre0?=
 =?us-ascii?Q?bunMjpasdM2C/oo2QymPrjmfs1MnVeFugENw340dDVIVlq+MwAgo5zndKIqF?=
 =?us-ascii?Q?hA0DTpq9x3WB1Pj+CVErqzZ5CSL9RYKJVhejJfjnyEorUUAGTp46DSyrs/xD?=
 =?us-ascii?Q?JhqMpaNQwiTOHzlGVuXKXI+vzbnjOmKbTrrxiePiH4zSRWwN1y08wqvYaWZ6?=
 =?us-ascii?Q?KOU7aO5ugLxUo2o6T4lGOqAYalDpcnNlD43aYc8ZMzFnPMY7hPA/6xaqwelm?=
 =?us-ascii?Q?Xnd19I2KE2qLdSvlpFx1I1JeKsTnGZ60Gw9BLfl7BfCujfnpLaiYpGQCU2PC?=
 =?us-ascii?Q?RFiDb9xP67/2AKNTnty2kKEI3hE1WV67xLqTlFkxSpUmQVjNhEo9zqE87HVB?=
 =?us-ascii?Q?TeH5zndmmg5fj/rjG6zM7MRHihjMRNNN2IH6br9MKCUx7t9TEIoxDNlYQ0Kn?=
 =?us-ascii?Q?43dMv6Zde4zUP4ZMEAITKfdtXLn+pactxEYhOJNC5AWIrf4iUWyWqARUqAiq?=
 =?us-ascii?Q?+Pr1AwECGRbRHmuw3Pru59MDx/gm11GX3gOE3ikw7fwpdhX9hZqSvvV9L/D9?=
 =?us-ascii?Q?3Un7mp/EnOf6ug23cxYmGTkMlwAOCrqlsDB0ARw3maf95quLiyj1YDxY9voj?=
 =?us-ascii?Q?PHL8AHqZZu0gz9MZ3pqY0nnOp4iG+l3Vw5saNOKkBLI4S/LCPoyFbfxhKvej?=
 =?us-ascii?Q?YtPr5a7tKQBnn0YJlyUdmM77+aLzw2TahF7vpN9TdLtshY0MXGGi32NB/yHq?=
 =?us-ascii?Q?KIC8o2T8qIWiDNZiUcZlY2h0fsIsI2g6kHCGbRoGvx4JQ5cnNooo9mx1p4JW?=
 =?us-ascii?Q?oFN0JNEbaTlVZH+VryqyZBTiZjvgE+BX6g8WZleuS9ShZeEtLHIduWXYqK37?=
 =?us-ascii?Q?pW4OlGP0DtLs8k15raVF9y4AKqOopjmZGhoL2rubYXMW+BELov4zWXBe+Rdz?=
 =?us-ascii?Q?Pm2ISAVv0SuzT2J+7R9SOuou7S9RaeGUsv3Cuv0NsD2dZRXFfjgA0lyIR1Rj?=
 =?us-ascii?Q?Df9iBCmOnqaKvGXpLEJyclrNA83z4cJ4GIv+HAzj985BujS0OMCIEHVKu4cb?=
 =?us-ascii?Q?/ERkzQYdnMG9JRRqjfOKpM6paxyBKEQPhX4/9JbyMrthaCo1Q3LDPK+xbclA?=
 =?us-ascii?Q?iEfdauwHNe8MD5nOlJ54CGSdot33lzDW+R8mKq6ENklNzJnTgrk0CQqWY565?=
 =?us-ascii?Q?c9Q8r4JnR4JXx6iOuYAeKuwg+UjIIsbYrXVtqgLxcnO5AmbPS9qqv7aNE1Ch?=
 =?us-ascii?Q?+pk1Zv3UZClfaAWIozXYeqq5EDjPF9CNrFa1KUYhj8nyjFnD4ZeMoJMdGR56?=
 =?us-ascii?Q?sbid/Ma+dnsec3CHnRqfbtO33XBaY6a9uiK8?=
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: 17 Apr 2025 12:49:25.1984
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: b0414358-6b72-439b-dfdf-08dd7dae489e
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:
	CH2PEPF0000013F.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL3PR12MB6476

From: "Daniel P. Smith" <dpsmith@apertussolutions.com>

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>
Signed-off-by: Alejandro Vallejo <agarciav@amd.com>
---
v4:
  * printk adjustments
  * reject nodes with conflicting mode settings
---
 xen/arch/x86/include/asm/boot-domain.h |  5 +++++
 xen/arch/x86/setup.c                   |  3 ++-
 xen/common/domain-builder/fdt.c        | 21 +++++++++++++++++++++
 3 files changed, 28 insertions(+), 1 deletion(-)

diff --git a/xen/arch/x86/include/asm/boot-domain.h b/xen/arch/x86/include/asm/boot-domain.h
index d7c6042e25..e316d4bcde 100644
--- a/xen/arch/x86/include/asm/boot-domain.h
+++ b/xen/arch/x86/include/asm/boot-domain.h
@@ -13,6 +13,11 @@
 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     */
+    uint32_t mode;
+
     struct boot_module *kernel;
     struct boot_module *module;
     const char *cmdline;
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 04ad2d0937..05e3d2cf2a 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)
     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) ?
diff --git a/xen/common/domain-builder/fdt.c b/xen/common/domain-builder/fdt.c
index 0d3c713041..6809c7f917 100644
--- a/xen/common/domain-builder/fdt.c
+++ b/xen/common/domain-builder/fdt.c
@@ -225,6 +225,27 @@ static int __init process_domain_node(
             bd->domid = val;
             printk(XENLOG_INFO "  domid: %d\n", bd->domid);
         }
+        else if ( !strncmp(prop_name, "mode", name_len) )
+        {
+            if ( (rc = fdt_prop_as_u32(prop, &bd->mode)) )
+            {
+                printk(XENLOG_ERR
+                       "  failed processing mode for domain %s\n", name);
+                return rc;
+            }
+
+            if ( (bd->mode & BUILD_MODE_PARAVIRT)  &&
+                 (bd->mode & BUILD_MODE_ENABLE_DM) )
+            {
+                printk(XENLOG_ERR "  mode: invalid (pv+hvm)\n");
+                return -EINVAL;
+            }
+
+            printk(XENLOG_INFO "  mode: %s\n",
+                   (bd->mode & BUILD_MODE_PARAVIRT)  ? "pv"  :
+                   (bd->mode & BUILD_MODE_ENABLE_DM) ? "hvm" :
+                                                       "pvh");
+        }
     }
 
     fdt_for_each_subnode(node, fdt, dom_node)
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu Apr 17 12:49:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 12:49:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.957530.1350721 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5OgU-0008Ls-6q; Thu, 17 Apr 2025 12:49:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 957530.1350721; Thu, 17 Apr 2025 12:49:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5OgU-0008Le-26; Thu, 17 Apr 2025 12:49:38 +0000
Received: by outflank-mailman (input) for mailman id 957530;
 Thu, 17 Apr 2025 12: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=m2wG=XD=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u5OgR-00057t-V4
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 12:49:35 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on2061a.outbound.protection.outlook.com
 [2a01:111:f403:2414::61a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 67218885-1b8a-11f0-9ffb-bf95429c2676;
 Thu, 17 Apr 2025 14:49:30 +0200 (CEST)
Received: from CH2PR05CA0039.namprd05.prod.outlook.com (2603:10b6:610:38::16)
 by DM6PR12MB4188.namprd12.prod.outlook.com (2603:10b6:5:215::18) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.44; Thu, 17 Apr
 2025 12:49:27 +0000
Received: from CH2PEPF00000140.namprd02.prod.outlook.com
 (2603:10b6:610:38:cafe::f6) by CH2PR05CA0039.outlook.office365.com
 (2603:10b6:610:38::16) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.15 via Frontend Transport; Thu,
 17 Apr 2025 12:49:26 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CH2PEPF00000140.mail.protection.outlook.com (10.167.244.72) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Thu, 17 Apr 2025 12:49:26 +0000
Received: from xcbagarciav01.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; Thu, 17 Apr
 2025 07:49:25 -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: 67218885-1b8a-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=e3lRq9AlwhuD0G7cUpmSLNIMS6TjH7dnhX6WipWOKUSkTHe0JVLX3DTjyHS4JNY1hZF8FlvCVQb0IAKkTF+Cth+zJom6ipPHZ0idNPjlO6ydWovyIwBmGpt4BWqO2oqDsG4+Dwmi1IqeDxxEktcQNRBkg85zlIq6JW4xxTprDuLKKzA7E0H8E3Xs6FjsDMGsE/NY8lNaTdB2P/PcEudAh/m7zxTrArUOJSYFIFW83nNTKG0emBXh7Bb8gHjEewMpPyXkEayXIwakGKL9U9g2+JcbIK3IWt66KDjSqi8kOAQbjLvUd6WTrQNj7pS7JWGXwCHFM0GC77faQxoL991ezw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=z/yFUwQX/dEkZnnw5BiTJ2SKezO+3EyIX2dnxAD2sCs=;
 b=b/5FZCdyhFCRBYEhl1IdqFcEJaEd2o5Mp3ktvLsNSv8XeM9lfGCNncxiaFqPn0ZX2DthtWuOOKn2blGDUm9XZkgiaQErG1mzPNX/AehgpL459ZVjbNJuQerHM4lUNtBl/EhDiJSMRAgb3/JAes9fnBosqHGDOjhzhiIvhfJTaWgkJtIvQy+YqyfuuUMhM3SGVHBrKuQXlAAzMQ3lWbKlsdXAwkb1O4QHjIhmlIpuRvAD5K/26N5ppvCPYOAvoDJDDZuSGKBbk7qn8Jpl6zSI+TVmo8dH7XshM4HuUS29uGvWrsASenrx4bbR1z9j2GanyFXkFhRtKb0CmOl9V/+3yQ==
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=z/yFUwQX/dEkZnnw5BiTJ2SKezO+3EyIX2dnxAD2sCs=;
 b=LR/+PfC6C9/asaSLRLk/Nuel99tgcgAApEuIzwr8M0BDcPT3/vTgoqw5T1CvAQbOdpBQ11gDJ3UVIlUWh9zpWph9vGdOT6RgK+ffpiIWS9RBPAP9ojU86PxfRmVWVnOSFwLuhy0lb+JdC2CJbo0mH/RXbAPLvpdDxH4uZhJXaBE=
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: Alejandro Vallejo <agarciav@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: "Daniel P. Smith" <dpsmith@apertussolutions.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, "Julien
 Grall" <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
	"Bertrand Marquis" <bertrand.marquis@arm.com>, Jason Andryuk
	<jason.andryuk@amd.com>, Alejandro Vallejo <agarciav@amd.com>
Subject: [PATCH v4 11/13] x86/hyperlaunch: add memory parsing to domain config
Date: Thu, 17 Apr 2025 13:48:33 +0100
Message-ID: <20250417124844.11143-12-agarciav@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20250417124844.11143-1-agarciav@amd.com>
References: <20250417124844.11143-1-agarciav@amd.com>
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: CH2PEPF00000140:EE_|DM6PR12MB4188:EE_
X-MS-Office365-Filtering-Correlation-Id: f7a5991f-ad2c-430f-6677-08dd7dae499e
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?mtTtxuezNaRm2FCl097rlX+1plkzs36OOBVVaS0ZRfFVJswuYrxvzBo6A37B?=
 =?us-ascii?Q?kOcieoxJaIYSfCQVZAngqohquB8ARA2D6utXNBkIAR8lO7dL6XOz2knvQrC0?=
 =?us-ascii?Q?+9bY8H91QeYJkzf/Yqs963UjIRmw+eTpjaGcyOC90hEk4+JE/ma5mfFzDG46?=
 =?us-ascii?Q?VXx7oBNmqOAexwbshYo4NtLX2vO+sizyrU6Vd/GJIQxmyTJgpZI6tpNRkUXD?=
 =?us-ascii?Q?pYygqeHYzjQxUrqZvf8EqtAOzavvRj21NbzTVefJ7mJuJA2AHaOWPL1YrJmt?=
 =?us-ascii?Q?L8k9tFE8oDwbLYxWlDax0nmTSWuVK1F6BGL4++zv5W3RQ0lrrD+Q8FKv/aN6?=
 =?us-ascii?Q?Rq7YTjg32N2jrWFidSUDabpkd7SqCgup4AAXlnqYRYJ0Vs9myPvvaMpIq6q5?=
 =?us-ascii?Q?UJVZELiipUIsEbHksOHzAoj0I8ktBEMDuU2rp8/JGR/D0stzF8bzf5gDsZOR?=
 =?us-ascii?Q?cNaBVCtWtvztRQk26Yz1h0uXcfOF7Lgg8AqISn2rHcFDUDvuKzKF2nextZv9?=
 =?us-ascii?Q?rYQusstpCoQojHIYvsVHdjjnwxVFdi/JuTQ4593UOAex7GDxSMg15ZvjrYri?=
 =?us-ascii?Q?PbWlSjPriak5zDKuFppuAqps6E/C7xblBltsNn3Htlh8zDt1Y/vvKXUgOBLA?=
 =?us-ascii?Q?gYL3asZpM2eGYosXc0tXLGwID8bip+410OjgfzZDqTrwIjNYJC9BvVEoZEOZ?=
 =?us-ascii?Q?48dOzEmUf08RmY1isUfDwKEOFqQ2CcZrPeq74PH2TCXgOaSkAjgMdeJoHDur?=
 =?us-ascii?Q?wPAoUfKgtloNlcw8OuI2aJEXB9efuKe7AkgHaq0Q+sSW4oFJ2wVBcx/0+2bJ?=
 =?us-ascii?Q?yBz/2mXnypHU7CGmiaWngLA272mqsCbO5Dm7Ii54bnz1cXubyJqyaYAuAjcM?=
 =?us-ascii?Q?Ofj62ivKKk26yboS4SRoSPHXXnPmUVGGY269Jk/+LB7j1ZZ2JjZVMKlkAep0?=
 =?us-ascii?Q?Ti3phhigPlv9jWvYRWM6SipxeywQt305IBEdXTz08x4Eny8QLYo46OvFi2fg?=
 =?us-ascii?Q?4+p4sh5aUCTcLhyNDnRsxetvr5Je2dBiMu+Zc84HnsEILmDfn0PJVz44SECd?=
 =?us-ascii?Q?3kT+UTrAaqTb0C80vPTwvnX/AXQ7xtGSX1iZdQ2B8PAnwUqQfNPM/LLxXJYo?=
 =?us-ascii?Q?N5TcjkcIdX524gSLq/kilq1UxtexAglOKzwQKIcuIwYatsTOUMo0SnbdUdW5?=
 =?us-ascii?Q?rBgOR3v9RC7tog94CrBQjQN9yBK9ackHkb/2/X+/XxXf6Xwdc8lztOIU+jJM?=
 =?us-ascii?Q?BYnJOO3LBtdk0j+lJKWdhQenLvcqQtTLq9HpDUvrln4n2PY68fFiMlCK7t2z?=
 =?us-ascii?Q?ZAuWJW5MwVd4c1pH1tEx+0vx0EbufuEXXXvgmWs5hJzPnmJZpDcYR6FMcH/2?=
 =?us-ascii?Q?pj6jS0igdPAK51uFSmZGg1ngQBM0ACtyxSKNyrqXL3KvsxsaPqaEDxXTD0eu?=
 =?us-ascii?Q?ssEXh4FBR20nmin4NR2DExICxQ/J/GdT74uyCmZ+3G9EToXSg12D0m/RoxW9?=
 =?us-ascii?Q?RG/zUFudCghd7v7Gmj+3AWdTyLWIOrRZLM45?=
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: 17 Apr 2025 12:49:26.8718
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: f7a5991f-ad2c-430f-6677-08dd7dae499e
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:
	CH2PEPF00000140.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4188

From: "Daniel P. Smith" <dpsmith@apertussolutions.com>

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>
Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>
Signed-off-by: Alejandro Vallejo <agarciav@amd.com>
---
Can't use KB() rather tha SZ_1K, as that's strictly for literals.

v4:
  * Don't override fdt_prop_as_u64() rc on error.
  * Add separate printk statements for each memory prop error.
  * Fix bug setting up dom0_size, dom0_min_size and dom0_max_size
    * Was overriding dom0_size on all 3 paths.
  * Pre-initialise max_pages of all boot_domains to be LONG_MAX, just as
    dom0_max_size.
    * Eventually dom0_max_size drops out in the bigger series, so we
      need that logic to be correct.
---
 xen/arch/x86/dom0_build.c              |  8 ++++++
 xen/arch/x86/include/asm/boot-domain.h |  4 +++
 xen/arch/x86/setup.c                   |  5 +++-
 xen/common/domain-builder/fdt.c        | 36 ++++++++++++++++++++++++++
 xen/include/xen/libfdt/libfdt-xen.h    | 10 +++++++
 5 files changed, 62 insertions(+), 1 deletion(-)

diff --git a/xen/arch/x86/dom0_build.c b/xen/arch/x86/dom0_build.c
index 0b467fd4a4..8db24dbc0a 100644
--- a/xen/arch/x86/dom0_build.c
+++ b/xen/arch/x86/dom0_build.c
@@ -627,6 +627,14 @@ int __init construct_dom0(const 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, ULONG_MAX) && bd->mem_pages )
+        dom0_size.nr_pages = bd->mem_pages;
+    if ( !get_memsize(&dom0_min_size, ULONG_MAX) && bd->min_pages )
+        dom0_min_size.nr_pages = bd->min_pages;
+    if ( !get_memsize(&dom0_max_size, ULONG_MAX) && bd->max_pages )
+        dom0_max_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/include/asm/boot-domain.h b/xen/arch/x86/include/asm/boot-domain.h
index e316d4bcde..fa8ea1cc66 100644
--- a/xen/arch/x86/include/asm/boot-domain.h
+++ b/xen/arch/x86/include/asm/boot-domain.h
@@ -18,6 +18,10 @@ struct boot_domain {
 #define BUILD_MODE_ENABLE_DM     (1 << 1) /* HVM    | PVH     */
     uint32_t mode;
 
+    unsigned long mem_pages;
+    unsigned long min_pages;
+    unsigned long max_pages;
+
     struct boot_module *kernel;
     struct boot_module *module;
     const char *cmdline;
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 05e3d2cf2a..455dad454c 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -296,7 +296,10 @@ static const char *cmdline_cook(const char *p, const char *loader_name);
 struct boot_info __initdata xen_boot_info = {
     .loader = "unknown",
     .cmdline = "",
-    .domains = { [0 ... MAX_NR_BOOTDOMS - 1] = { .domid = DOMID_INVALID } },
+    .domains = { [0 ... MAX_NR_BOOTDOMS - 1] = {
+        .domid = DOMID_INVALID,
+        .max_pages = ULONG_MAX,
+    }},
 };
 
 static struct boot_info *__init multiboot_fill_boot_info(
diff --git a/xen/common/domain-builder/fdt.c b/xen/common/domain-builder/fdt.c
index 6809c7f917..90218d120a 100644
--- a/xen/common/domain-builder/fdt.c
+++ b/xen/common/domain-builder/fdt.c
@@ -7,6 +7,7 @@
 #include <xen/init.h>
 #include <xen/lib.h>
 #include <xen/libfdt/libfdt.h>
+#include <xen/sizes.h>
 
 #include <asm/bootinfo.h>
 #include <asm/page.h>
@@ -246,6 +247,41 @@ static int __init process_domain_node(
                    (bd->mode & BUILD_MODE_ENABLE_DM) ? "hvm" :
                                                        "pvh");
         }
+        else if ( strncmp(prop_name, "memory", name_len) == 0 )
+        {
+            uint64_t kb;
+            if ( (rc = fdt_prop_as_u64(prop, &kb)) )
+            {
+                printk(XENLOG_ERR "  bad \"memory\" prop on domain %s\n", name);
+                return rc;
+            }
+            bd->mem_pages = PFN_DOWN(kb * SZ_1K);
+            printk(XENLOG_ERR "  memory: %lu KiB\n", kb);
+        }
+        else if ( !strncmp(prop_name, "mem-min", name_len) )
+        {
+            uint64_t kb;
+            if ( (rc = fdt_prop_as_u64(prop, &kb)) )
+            {
+                printk(XENLOG_ERR
+                       "  bad \"mem-min\" prop on domain %s\n", name);
+                return rc;
+            }
+            bd->min_pages = PFN_DOWN(kb * SZ_1K);
+            printk(XENLOG_INFO "  min memory: %lu kb\n", kb);
+        }
+        else if ( !strncmp(prop_name, "mem-max", name_len) )
+        {
+            uint64_t kb;
+            if ( (rc = fdt_prop_as_u64(prop, &kb)) )
+            {
+                printk(XENLOG_ERR
+                       "  bad \"mem-max\" prop on domain %s\n", name);
+                return rc;
+            }
+            bd->max_pages = PFN_DOWN(kb * SZ_1K);
+            printk(XENLOG_INFO "  max memory: %lu KiB\n", kb);
+        }
     }
 
     fdt_for_each_subnode(node, fdt, dom_node)
diff --git a/xen/include/xen/libfdt/libfdt-xen.h b/xen/include/xen/libfdt/libfdt-xen.h
index afc76e7750..3054b48a83 100644
--- a/xen/include/xen/libfdt/libfdt-xen.h
+++ b/xen/include/xen/libfdt/libfdt-xen.h
@@ -24,6 +24,16 @@ static inline int __init fdt_prop_as_u32(
     return 0;
 }
 
+static inline int __init fdt_prop_as_u64(
+    const struct fdt_property *prop, uint64_t *val)
+{
+    if ( !prop || fdt32_to_cpu(prop->len) < sizeof(uint64_t) )
+        return -EINVAL;
+
+    *val = fdt64_to_cpu(*(const fdt64_t *)prop->data);
+    return 0;
+}
+
 static inline bool __init fdt_get_prop_offset(
     const void *fdt, int node, const char *pname, unsigned long *poffset)
 {
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu Apr 17 12:50:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 12:50:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.957571.1350731 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5OhP-0003dq-UR; Thu, 17 Apr 2025 12:50:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 957571.1350731; Thu, 17 Apr 2025 12:50: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 1u5OhP-0003dj-RI; Thu, 17 Apr 2025 12:50:35 +0000
Received: by outflank-mailman (input) for mailman id 957571;
 Thu, 17 Apr 2025 12:50: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=m2wG=XD=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u5OgY-00057t-Vs
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 12:49:42 +0000
Received: from NAM04-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam04on2060c.outbound.protection.outlook.com
 [2a01:111:f403:2408::60c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6a289ece-1b8a-11f0-9ffb-bf95429c2676;
 Thu, 17 Apr 2025 14:49:35 +0200 (CEST)
Received: from CH2PR08CA0012.namprd08.prod.outlook.com (2603:10b6:610:5a::22)
 by PH0PR12MB7864.namprd12.prod.outlook.com (2603:10b6:510:26c::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.32; Thu, 17 Apr
 2025 12:49:28 +0000
Received: from CH2PEPF00000142.namprd02.prod.outlook.com
 (2603:10b6:610:5a:cafe::ae) by CH2PR08CA0012.outlook.office365.com
 (2603:10b6:610:5a::22) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.34 via Frontend Transport; Thu,
 17 Apr 2025 12:49:28 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CH2PEPF00000142.mail.protection.outlook.com (10.167.244.75) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Thu, 17 Apr 2025 12:49:28 +0000
Received: from xcbagarciav01.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; Thu, 17 Apr
 2025 07:49:26 -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: 6a289ece-1b8a-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=hqKBY9uuzrZeG8VyCQrcc2AMyuBdQy2crY0Zmvpln6yZAxEeuH13TNhe2fkgwFJRYVPBD1FHMxYNFjPHVofl94Hx1d8Fr4lI8dE+G9awf9VcGIe0Lwqb2At1Vba5k4l+64MPnVkHXIlPm3d9B/mGkhCa62SWx+pkyptfQ0QuF5KVT15SMD33UxUEwZ+Eptx5FSUOGFEVLhg3FXz797OYvUnfjPXzypW71vOWFaVlml38RyiEnx2y0sgyHbExvYTSJ63nQjhp9c6zueAUGuZt1/J6tH0b7aiNkB9DD6PQY3iDI2ysFodEUT6KuPuErBzsFeQcLEMFxgmTxJrni5bTUQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=tIJkN+3c1EWUrjFtQMc+TsOgczooD2A+KBZlgPJDObc=;
 b=DyZ2BW+QhaeVdkoX5jUOl4iV2sQ/f8UX8tsUmKSI10SQVvS46L16P/MuWc/DZfMwHFRJmpbO6aor3qmGrXZhcLzAmwpSPljcuSXSFdP2GaSwPMCQKf2Cc7ooO5OLqekROMDzFzZwTKK4AtBVZhQaJePJZBn8PR+e6/vSD79Rxw6K20trnRYgj3MlECVFAD2YI0ytr4niImOIHYsF8SPywTEi3VUGSUPv68UhxJ2XRUDsWASlco1MmzKITvdMLVk0+BSkAB1hFJaj+2Adm4o+84pHEsEZk7+koWik0uTdgc/hzYUp1Ia20X06SxlZsMPKMCUoi5pqDpquLqANBxHKRg==
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=tIJkN+3c1EWUrjFtQMc+TsOgczooD2A+KBZlgPJDObc=;
 b=MlqXcHi4yRSvVMc60IUcAFy+cBgtOOrH7I+TaA1M/TWdgLMXrDIGaU0pMa72biv+DjlWv9kHRTPbIEDqEsN7RJ/vPP2d6/X1BgaNXuX377sAlJ1OpOlEKubtJtS4edx9hVUqItIXsyQeAHzt8t4juwo6d6NQcFpau9/DXALmF2s=
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: Alejandro Vallejo <agarciav@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: "Daniel P. Smith" <dpsmith@apertussolutions.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, "Julien
 Grall" <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, "Jason
 Andryuk" <jason.andryuk@amd.com>, Alejandro Vallejo <agarciav@amd.com>
Subject: [PATCH v4 12/13] x86/hyperlaunch: add max vcpu parsing of hyperlaunch device tree
Date: Thu, 17 Apr 2025 13:48:34 +0100
Message-ID: <20250417124844.11143-13-agarciav@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20250417124844.11143-1-agarciav@amd.com>
References: <20250417124844.11143-1-agarciav@amd.com>
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: CH2PEPF00000142:EE_|PH0PR12MB7864:EE_
X-MS-Office365-Filtering-Correlation-Id: 7f54461a-9e62-4578-e7f8-08dd7dae4a8f
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|376014|1800799024|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?ldXQztjZoEawu0Rkep53b/6TnfDeDTA+zW+BLNFsc9V1aV6rJXJQ/TbmJNK6?=
 =?us-ascii?Q?D/vKmvNxCSNfAs468FzF4cDbIPibo9O6vcPVIVdSsCklF35PMxw6SDABGDtl?=
 =?us-ascii?Q?GAJl2oye/ay7dAde+XRo+2riQzTmCjjMzoJJstk54HAOZc5ypw3FownB4Zhb?=
 =?us-ascii?Q?MEQ3QRUsu6znItUJKcd2WXYBNThmopIQWBsCFVAjRTlIaLFBowXtt7GWcLf7?=
 =?us-ascii?Q?a9W2q1ukYZeZsJB7i/DYjA4lR5IiktbZTfAYGp3+Tn7Ix6ptv0DT3gkxB6j0?=
 =?us-ascii?Q?dlxmpq05+2L+jjm3M3KtD0cNorOOo7WQYijuJhzC1Fn9GL2UjMKd920HjbSh?=
 =?us-ascii?Q?LTjaX0Bek0+QaXOJjH2uxw4FkgfRchr71Nv/FnaKnycXVjkQdfHuXzDnpXO5?=
 =?us-ascii?Q?xnjaMHimgjImJrNYdgl/UbU3H5X9uRzgMrVXmW1o1EYGc8x5VtQUpfSTZGAh?=
 =?us-ascii?Q?UHsCKiNdhAJ4qyyQCQgGcUHkkQztUI0idRNk0ucBw7SaZH2q9Bo1yDTj1H8L?=
 =?us-ascii?Q?XKeeQQLdfuorpd6biVZOgxRdo/+YxwUi928aO/zzQ/tZtYzTYjSe2oziNbt+?=
 =?us-ascii?Q?90Cu1JOSALcZE3AHndS8aoBKSLkgyS7+Taxe15nEJAQAXf2CGux5iN9w4uGf?=
 =?us-ascii?Q?h7uJaHkB/Z/FcOYoa/yYNuyKo3+C8aIhH9nTbj8G4ce4+NI4XfGoxd5UFl8s?=
 =?us-ascii?Q?kYrwQmsjY3dcvWaE+TZoq0T8kcm4ZWbHYYPfFixLxLOnM+pgmccuwetAUKzu?=
 =?us-ascii?Q?3PSJ8SIdM68BJWVlaUiqDYmu7+XMa3V4WeJNH7xvY8oUs3QDTjcoGG7XdnRq?=
 =?us-ascii?Q?fpYjukCJ6d9CKfEqPjnqQqFh6UnLykusNk30u/ZmxF5REHsPFCPZsE+f0E9C?=
 =?us-ascii?Q?tUosS9Y/N75TBzDirYyqOhURooBTwsVBEy6E+xTsUgQLYj/n+NGezW7nD+3z?=
 =?us-ascii?Q?lcjz6qWyfFbqggBdpn2qvMzb5v2p7TmMX8dz4z2c+nfvduwrXDWTTBuotsmt?=
 =?us-ascii?Q?luS5bPJRZrftxiTOdMd8jmq2kReSI/Q6UMIoaFE8Qeqt2HU5KO1lPoQISbYk?=
 =?us-ascii?Q?HkeCrQfQtptfj1TsmNG7aCaHOyde5qGmHHgpqajtPbXAXbeoTyvwDL+OtWsf?=
 =?us-ascii?Q?+Vh2ERgvZJy7Upa82jGRH/S0FwpkGGy63ED/8O5T+L+PTdvArEWPyZ65CB9J?=
 =?us-ascii?Q?rcofO0RK8OsLc9HnmMOe2FnI5fPjAdgyNSPa6VWJLRBByICJH9mPI64y5llQ?=
 =?us-ascii?Q?hj2HGMPLM0QOoExiMVxce1Yj88IqtkaaBhIm9cDEYJZA6+yXZMfanc0pVr25?=
 =?us-ascii?Q?aqemY/UPjKdscKINqcVS2GVcKpGEDnB9qVXcmQGRjfGWZytY0emIRFlMo+T6?=
 =?us-ascii?Q?ElRKvwMb2aBn3lycoWkwTx5Vie3tgmJCTIGQiCMljYekEvkn17Bjix9hT/on?=
 =?us-ascii?Q?xZkhyCT+wpXc7k+IHKQ/nkyoOBi24CdsPPjtYBKSVnaUx5q/t8Psa8RVQ9IX?=
 =?us-ascii?Q?7MII6n/SQtRUxCzZywubhx+V7zHBX4mn0vcW?=
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)(376014)(1800799024)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Apr 2025 12:49:28.4555
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 7f54461a-9e62-4578-e7f8-08dd7dae4a8f
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:
	CH2PEPF00000142.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR12MB7864

From: "Daniel P. Smith" <dpsmith@apertussolutions.com>

Introduce the `cpus` property, named as such for dom0less compatibility, that
represents the maximum number of vcpus 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>
Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>
Signed-off-by: Alejandro Vallejo <agarciav@amd.com>
---
v4:
  * s/UINT_MAX/UINT32_MAX/ (cosmetic, but...)
  * s/vpcpus/vcpus/ in commit message.
  * Reworded printk()
---
 xen/arch/x86/dom0_build.c              |  3 +++
 xen/arch/x86/include/asm/boot-domain.h |  2 ++
 xen/common/domain-builder/fdt.c        | 11 +++++++++++
 3 files changed, 16 insertions(+)

diff --git a/xen/arch/x86/dom0_build.c b/xen/arch/x86/dom0_build.c
index 8db24dbc0a..f734104c74 100644
--- a/xen/arch/x86/dom0_build.c
+++ b/xen/arch/x86/dom0_build.c
@@ -635,6 +635,9 @@ int __init construct_dom0(const struct boot_domain *bd)
     if ( !get_memsize(&dom0_max_size, ULONG_MAX) && bd->max_pages )
         dom0_max_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/include/asm/boot-domain.h b/xen/arch/x86/include/asm/boot-domain.h
index fa8ea1cc66..969c02a6ea 100644
--- a/xen/arch/x86/include/asm/boot-domain.h
+++ b/xen/arch/x86/include/asm/boot-domain.h
@@ -22,6 +22,8 @@ struct boot_domain {
     unsigned long min_pages;
     unsigned long max_pages;
 
+    unsigned int max_vcpus;
+
     struct boot_module *kernel;
     struct boot_module *module;
     const char *cmdline;
diff --git a/xen/common/domain-builder/fdt.c b/xen/common/domain-builder/fdt.c
index 90218d120a..295ab6e8b3 100644
--- a/xen/common/domain-builder/fdt.c
+++ b/xen/common/domain-builder/fdt.c
@@ -282,6 +282,17 @@ static int __init process_domain_node(
             bd->max_pages = PFN_DOWN(kb * SZ_1K);
             printk(XENLOG_INFO "  max memory: %lu KiB\n", kb);
         }
+        else if ( !strncmp(prop_name, "cpus", name_len) )
+        {
+            uint32_t val = UINT32_MAX;
+            if ( (rc = fdt_prop_as_u32(prop, &val)) )
+            {
+                printk(XENLOG_ERR "  bad \"cpus\" prop on domain %s\n", name);
+                return rc;
+            }
+            bd->max_vcpus = val;
+            printk(XENLOG_INFO "  cpus: %d\n", bd->max_vcpus);
+        }
     }
 
     fdt_for_each_subnode(node, fdt, dom_node)
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu Apr 17 12:52:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 12:52:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.957648.1350741 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5Oiy-0005Kw-8Q; Thu, 17 Apr 2025 12:52:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 957648.1350741; Thu, 17 Apr 2025 12:52: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 1u5Oiy-0005Kn-5c; Thu, 17 Apr 2025 12:52:12 +0000
Received: by outflank-mailman (input) for mailman id 957648;
 Thu, 17 Apr 2025 12:52:10 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=m2wG=XD=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u5OgR-0004z9-9b
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 12:49:35 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on20606.outbound.protection.outlook.com
 [2a01:111:f403:2414::606])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 697859d8-1b8a-11f0-9eb0-5ba50f476ded;
 Thu, 17 Apr 2025 14:49:34 +0200 (CEST)
Received: from CH2PR08CA0016.namprd08.prod.outlook.com (2603:10b6:610:5a::26)
 by CH2PR12MB4039.namprd12.prod.outlook.com (2603:10b6:610:a8::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.36; Thu, 17 Apr
 2025 12:49:30 +0000
Received: from CH2PEPF00000142.namprd02.prod.outlook.com
 (2603:10b6:610:5a:cafe::31) by CH2PR08CA0016.outlook.office365.com
 (2603:10b6:610:5a::26) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.15 via Frontend Transport; Thu,
 17 Apr 2025 12:49:30 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CH2PEPF00000142.mail.protection.outlook.com (10.167.244.75) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Thu, 17 Apr 2025 12:49:30 +0000
Received: from xcbagarciav01.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; Thu, 17 Apr
 2025 07:49:28 -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: 697859d8-1b8a-11f0-9eb0-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=wVQc2Aeg9jbdv4EX449XO2GYgknC7hJ0/9ccEQBvUq8/bkyO7kFLFTwcFiqo9AduS39bLU2iMBwamfSPK+EU7YQP/We8C35mr02sMNqVgAKGmjWDWgm158UTGr4cAtcE7U2Prk41Pgxt7PIzWFremFqncq63x6wOoxRc0xP1yAuNG6HrrLeE+6FFveFDhd7yM462W1g1N0j7rD+seV90ZN2hWfPLrYMGaSmHHkvNjZDDM2m0AVKgFVUqWiFYtlQkYpLIjOuUJS7v9w1t5j3cX61oEoayiY3Ba+PhsqLp3g3XKmTMLnwA5awNF/KL/85QCJ1cZsJhgyCjyJ1jL9C0+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=m2nnxNvapsA9yUyBZa5Q7RA8+C8ztd0XPgOdNnop0rE=;
 b=Jki6TgJ4RLsmvfpLE23ZazzmYtlrsWVy2xLSI7e/EcbTQrn9IT1bYOQLL1f4PFMgImb0e70Y5kx7GjuugkWpt6O7a9Miz2gYSIKlz/VOYm8P5AxHhNKcD2qDR+YG1rvFqjoNSOW0w1/LiHTzEgkdIvacd0WszMjco1lKPQqs7x9OW7KfJrwhBMNhyy81PtkwGYyD5wtxg5L36StdT+wb0jnONKy9M8zXSMZBiNUNZe6mYgO0waKKNttyuTRw9pAx/LuQTwtFLAaxgvCF/oyy/odNaIyct4SN9xr3SmgWVyYqQAA/Cg+k+m/HqOVbCd5P/YKuAYr0DCPKwQlrV0aodw==
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=m2nnxNvapsA9yUyBZa5Q7RA8+C8ztd0XPgOdNnop0rE=;
 b=Y7Lb8TaEFF9i5TTjvDyeMtuB15gIkOSCuRVsf/Gjjl3lvwT4ZhFYRCY/jj5FLiioSkS3Noj31Zosb3SNvPNuCoxGB/fXrrjZNBlo18rGPQmn5nuAKth4ewd2IXn4JwYnABjFyjgmAAGxGUE6kwpef8ucplNEcmnhVLiEdvpIs6k=
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: Alejandro Vallejo <agarciav@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: "Daniel P. Smith" <dpsmith@apertussolutions.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, "Julien
 Grall" <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, "Jason
 Andryuk" <jason.andryuk@amd.com>, Alejandro Vallejo <agarciav@amd.com>
Subject: [PATCH v4 13/13] x86/hyperlaunch: add capabilities to boot domain
Date: Thu, 17 Apr 2025 13:48:35 +0100
Message-ID: <20250417124844.11143-14-agarciav@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20250417124844.11143-1-agarciav@amd.com>
References: <20250417124844.11143-1-agarciav@amd.com>
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: CH2PEPF00000142:EE_|CH2PR12MB4039:EE_
X-MS-Office365-Filtering-Correlation-Id: f117c596-c7ab-4ac6-5e14-08dd7dae4b88
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|82310400026|1800799024|376014;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?IkFbHBk/L+k0Ki3LbIxisTfRBwAGVc02Zn/IBw1l6lJOJl37lJ2/ND++cLmT?=
 =?us-ascii?Q?KUg3J1/E7cPxkU0XKd76EMOataaIpvRyvP51aqV1z+ztM32HHKSHuKbf4axV?=
 =?us-ascii?Q?4FPirxqNtFiE+LD9t+SQ1Db8VhzaFixMwWgDndoyVJB+OWk+OhQ5jV5ENDNh?=
 =?us-ascii?Q?zmwMHiGtWyHAgk9XcamU/c3r0NiDoZlJv1mkdBDe+S5SESI6G3MDUjS90nAu?=
 =?us-ascii?Q?goVTKfTJnU0FPpcwNgtuAIRw2dQFVrsj1T+AqCrdhQMWrnAwhg6zQ1WK1bCq?=
 =?us-ascii?Q?/V+x1RGjGDwftHecW5Qki9yzeS+pvfkrUO+0GAuTuDJkneOEEiqFRp/IjByQ?=
 =?us-ascii?Q?G+AQhV+uftOpgeMCBYMQI4XGdOz8VTtDxGEuEgVo4ZzA+Ddr0PjXnBOJ++vD?=
 =?us-ascii?Q?+0lrhMMQnviWWGHatpA1uc09hnHnFCCupi2SiwmpAJZZ3YzSfVYCXHPkhM6Y?=
 =?us-ascii?Q?wxZJrNjKqklcrL+FXPqla+q8UhSrvgiP9cHyqlNHzQg9vi1uv0lrOTLse7aT?=
 =?us-ascii?Q?SzyWwoExgSDc3P5T/ih15H8ZpaR4Pf5KwH6nyg07l3YkqutJRLIsUGQb9XDj?=
 =?us-ascii?Q?VJpwJ82T/s6q9EM2aX8j9E8kOQ3i/WRuygDaWLFIp6i2sy4vEkmBoNoSiYh3?=
 =?us-ascii?Q?89x3mNBa2IZauYwKdEWXDu/eu76lFVwBEfnmXqSOOZErIOrUsS/4ENMWgHWo?=
 =?us-ascii?Q?b/gIiMQe81F2680FZISZYHuXPhoatHTvv8oXbeV0+q7BbOVQFBZ4nUbB2Y7X?=
 =?us-ascii?Q?iHj+dqJ3aKedf0DL21Ymeeb2mqvgY1X9/OfJKB5+f8XeEfCKm73+n3f8vXy9?=
 =?us-ascii?Q?gghHeaHsbHhXRjNrBWvaUgte1eDtzZHOtoFgzDXCSQJxG9VRym6Gn3JWx8OW?=
 =?us-ascii?Q?Yoy3sMpR71dt1jBRGA9dtNOGqOSZgD0WYa5KuDbhrK+b6MOeffRzn+25UY6c?=
 =?us-ascii?Q?lTbfvYfcPilp82jOYFBWKYrikE3vkRDOcyy+9b3IGQeNF0ifG4LbLgkGJ+t0?=
 =?us-ascii?Q?u77mAFc3v2vca+g0uxbAicMNQrjk+bZJ/q0aZD6g5Oo9XSCtDpanXVURxRGo?=
 =?us-ascii?Q?ZN6DYHUwogQwkYybZjvLyOF2Q7JbrP2awC2Tp6pVcb/qLjC4gOE5omrv1B1r?=
 =?us-ascii?Q?rMP8Glcr/gYaEHhanbmqZKT5a8MpZS8GCdEO194W1xB+Q9ANm7dvTZyJjkZD?=
 =?us-ascii?Q?b5AOd2mLEoUmsXsCUGTcgwBQiGkZnsA4++BPAnIrf6XxI3j7LLkUZCnWx+0m?=
 =?us-ascii?Q?Chi1ALo7kYyfTJzH7cvWJnF+vmuK8iQDdkhy/8FUIKRSjBh2iEx0dU3vP9F8?=
 =?us-ascii?Q?yWOC4nkxvah0zDKBQVaBmP5Q0V1mJUtxCut6ptR7SclDEutwnutE2uX4fVZ2?=
 =?us-ascii?Q?BpH6hs4wMpmTFqA0kOYzdkStj5AAEfRGXTvJnqQzeyErMuFWj2rcMDl/oygJ?=
 =?us-ascii?Q?y4tYbghn7T06ly9C9Tbngh5+Cdi8ZGsVLwKiLw/f2i1KA+aJ8IBbk1J9UFF+?=
 =?us-ascii?Q?q3QV/LcZDqWw5rx7fPbIwOicumHcyK0EuY96?=
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: 17 Apr 2025 12:49:30.0838
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: f117c596-c7ab-4ac6-5e14-08dd7dae4b88
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:
	CH2PEPF00000142.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR12MB4039

From: "Daniel P. Smith" <dpsmith@apertussolutions.com>

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>
Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
Signed-off-by: Alejandro Vallejo <agarciav@amd.com>
---
v4:
  * Dropped Jason's R-by.
  * Refactored caps printinng logic
    * It just wasn't xenlog-compatible as it was.
  * Moved pv_shim check to builder_init, so the capability is just not given.
    * And inlined the create_flags variable now that's tractable.
  * Validated input capabilities after coming out of the DT.
---
 xen/arch/x86/include/asm/boot-domain.h |  5 +++++
 xen/arch/x86/setup.c                   |  3 ++-
 xen/common/domain-builder/core.c       |  2 ++
 xen/common/domain-builder/fdt.c        | 20 ++++++++++++++++++++
 4 files changed, 29 insertions(+), 1 deletion(-)

diff --git a/xen/arch/x86/include/asm/boot-domain.h b/xen/arch/x86/include/asm/boot-domain.h
index 969c02a6ea..5c143d82af 100644
--- a/xen/arch/x86/include/asm/boot-domain.h
+++ b/xen/arch/x86/include/asm/boot-domain.h
@@ -13,6 +13,11 @@
 struct boot_domain {
     domid_t domid;
 
+#define BUILD_CAPS_NONE          (0U)
+#define BUILD_CAPS_CONTROL       (1U << 0)
+#define BUILD_CAPS__ALL          BUILD_CAPS_CONTROL
+    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 455dad454c..3cdd8bc2f9 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -1040,7 +1040,8 @@ static struct domain *__init create_dom0(struct boot_info *bi)
     if ( bd->domid == DOMID_INVALID )
         /* Create initial domain.  Not d0 for pvshim. */
         bd->domid = get_initial_domain_id();
-    d = domain_create(bd->domid, &dom0_cfg, pv_shim ? 0 : CDF_privileged);
+    d = domain_create(bd->domid, &dom0_cfg,
+            (bd->capabilities & BUILD_CAPS_CONTROL) ? CDF_privileged : 0);
     if ( IS_ERR(d) )
         panic("Error creating d%u: %ld\n", bd->domid, PTR_ERR(d));
 
diff --git a/xen/common/domain-builder/core.c b/xen/common/domain-builder/core.c
index 4b4230f2ff..d1a5d6125e 100644
--- a/xen/common/domain-builder/core.c
+++ b/xen/common/domain-builder/core.c
@@ -8,6 +8,7 @@
 #include <xen/lib.h>
 
 #include <asm/bootinfo.h>
+#include <asm/pv/shim.h>
 #include <asm/setup.h>
 
 #include "fdt.h"
@@ -93,6 +94,7 @@ void __init builder_init(struct boot_info *bi)
 
         bi->mods[i].type = BOOTMOD_KERNEL;
         bi->domains[0].kernel = &bi->mods[i];
+        bi->domains[0].capabilities |= pv_shim ? 0 : BUILD_CAPS_CONTROL;
         bi->nr_domains = 1;
     }
 }
diff --git a/xen/common/domain-builder/fdt.c b/xen/common/domain-builder/fdt.c
index 295ab6e8b3..3e3a84e2d0 100644
--- a/xen/common/domain-builder/fdt.c
+++ b/xen/common/domain-builder/fdt.c
@@ -293,6 +293,26 @@ static int __init process_domain_node(
             bd->max_vcpus = val;
             printk(XENLOG_INFO "  cpus: %d\n", bd->max_vcpus);
         }
+        else if ( !strncmp(prop_name, "capabilities", name_len) )
+        {
+            if ( (rc = fdt_prop_as_u32(prop, &bd->capabilities)) )
+            {
+                printk(XENLOG_ERR
+                       "  bad \"capabilities\" on domain %s\n", name);
+                return rc;
+            }
+
+            if ( bd->capabilities & ~BUILD_CAPS__ALL )
+            {
+                printk(XENLOG_WARNING "  unknown capabilities: %#x\n",
+                       bd->capabilities & ~BUILD_CAPS__ALL);
+
+                bd->capabilities &= BUILD_CAPS__ALL;
+            }
+
+            printk(XENLOG_INFO "  caps: %s\n",
+                   bd->capabilities & BUILD_CAPS_CONTROL ? "c" : "");
+        }
     }
 
     fdt_for_each_subnode(node, fdt, dom_node)
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu Apr 17 13:01:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 13:01:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.957693.1350752 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5Ord-0007he-3c; Thu, 17 Apr 2025 13:01:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 957693.1350752; Thu, 17 Apr 2025 13:01: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 1u5Orc-0007hX-VA; Thu, 17 Apr 2025 13:01:08 +0000
Received: by outflank-mailman (input) for mailman id 957693;
 Thu, 17 Apr 2025 13:01: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=m2wG=XD=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u5Orb-0007hR-6l
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 13:01:07 +0000
Received: from NAM02-SN1-obe.outbound.protection.outlook.com
 (mail-sn1nam02on20622.outbound.protection.outlook.com
 [2a01:111:f403:2406::622])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 04fd7a64-1b8c-11f0-9eb0-5ba50f476ded;
 Thu, 17 Apr 2025 15:01:05 +0200 (CEST)
Received: from BL1PR13CA0352.namprd13.prod.outlook.com (2603:10b6:208:2c6::27)
 by PH7PR12MB9203.namprd12.prod.outlook.com (2603:10b6:510:2f2::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.34; Thu, 17 Apr
 2025 13:00:58 +0000
Received: from BN2PEPF000055DD.namprd21.prod.outlook.com
 (2603:10b6:208:2c6:cafe::6f) by BL1PR13CA0352.outlook.office365.com
 (2603:10b6:208:2c6::27) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.22 via Frontend Transport; Thu,
 17 Apr 2025 13:00:57 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BN2PEPF000055DD.mail.protection.outlook.com (10.167.245.7) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8678.4 via Frontend Transport; Thu, 17 Apr 2025 13:00:57 +0000
Received: from localhost (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; Thu, 17 Apr
 2025 08:00:55 -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: 04fd7a64-1b8c-11f0-9eb0-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=yJwHJTRutwRwboa7I0EHCg9bZaEk+PSP8WWUse1gWcDCfug7pql/ZlO4JHbe0ouNGHGIFfDLaWRu41udz9Rzr+maEtPmlr8Gh4ONOObNAGgGrMu/HTvT3916ctHId3varO1QMI7VMhhPV6fSQevc0pJpG4d9a06FN/EdjCXezlsjoiQUI8qN6z0sg6bDsZ37e9yQCfOCDndjnX0+DYlEFCMMQthUzghluc226dgSluBcnsnm1cI3yFBz+ZYDgwyUditfDATkhHff9mLVDahsQIDr7NorKvgIohdxpK3sc9KRTorShKtDsh5lr/PVKyz/55lMopigMcOvOya6RnD7oA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Crf3pxy2usI2F5z3TBbHoZOroFJKskXGiBfs0101reY=;
 b=BcYgAv9QS5eeAV1FnZX83tQvdPcUVCLPSgVyd9C4L3lkTdggtLoJIATblEE+LfdAO861p2DgKRIxITXr2aHm73SUyWByjOwMXqt8WhgJypWyTSppTpxI0U6mp8pLCcrV7bPjecbuQarQBUDljnjxw/eV/ffbEf7zfw1jkyyCx+8mnflRMaMf+la/PO8Y/TQoU5dtxZ73vw5FFOUqSp9082rKrUloWhy/Tf1bAypxUunP34/61nAuF3+TR3hqDsVhh2xg8iZQI2MCCMRpif+eIbZI34R73L+gCWOfM825hgxk5ivRHIf3VC7Bp99fcWUS8RidcZJo85QY1V1X+4l3fg==
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=Crf3pxy2usI2F5z3TBbHoZOroFJKskXGiBfs0101reY=;
 b=YUpdF3IPuTxbiupAdjOxDxDkEBEtwXeLbUTpmQRoKfumlwfSL8g+EdndHdRYvHgzzWD0b9zOpFzL+5xmlrTvwyf0T5ABolQIUE7E4Zjp+1S8Vv2aGoENCjMW66m+jw2CT0vKJYO9aRR5H3RiQwvQXYwK9WYX+0RMKmFc1zfnT/I=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Thu, 17 Apr 2025 14:00:54 +0100
Message-ID: <D98XLQ2KCBXH.VTDV58F7F34A@amd.com>
Subject: Re: [PATCH v4 00/13] Hyperlaunch device tree for dom0
From: Alejandro Vallejo <agarciav@amd.com>
To: Alejandro Vallejo <agarciav@amd.com>, <xen-devel@lists.xenproject.org>
CC: Jan Beulich <jbeulich@suse.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, =?utf-8?q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, "Michal
 Orzel" <michal.orzel@amd.com>, Julien Grall <julien@xen.org>, "Stefano
 Stabellini" <sstabellini@kernel.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>
X-Mailer: aerc 0.20.1
References: <20250417124844.11143-1-agarciav@amd.com>
In-Reply-To: <20250417124844.11143-1-agarciav@amd.com>
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: BN2PEPF000055DD:EE_|PH7PR12MB9203:EE_
X-MS-Office365-Filtering-Correlation-Id: 0743d193-6a39-43de-f4ac-08dd7dafe522
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?d2FhWG5WeHJ5STQzMGJvK1hra09YTll5dDRQLzlneGFveGRtVDhzWkxoZWFm?=
 =?utf-8?B?ZVE2MFJMTzdYd1ZlbFo0a1BsdU4vT090VXhsMHRtekU0TjZJcDljRFNMazJI?=
 =?utf-8?B?d29Wb1JUd1BqMHNEZ0phaXBma09qYzlKUVlIUXZhYW0rK05WbUZpVjBuT0dO?=
 =?utf-8?B?ampleHQzMnZFc1ErNlh5RzhwR2FLcURybnY5eXg5THlxQnlVc1RJSVBpZmVQ?=
 =?utf-8?B?N1NCN2ExMXNSMVFpbXpxelZobGo3V2p0YXhncVRPTW1RYmQ5R3p2bm1qbnI5?=
 =?utf-8?B?TTlORElXNHI0V3EvVEpFa3ZrSWdIRWorWnpYbkY5SlV2b3QxMWFGMUZFMWgz?=
 =?utf-8?B?ek1VZWsycnd1aXRpNCtuY1VLOVd2MkYxWWMraStraGMrR1BQUzE2TWovQ2tS?=
 =?utf-8?B?U1NxZEZ1eEdNcHZIME5uMUlQd2l6bkNYSlhaTkFVTCtvS3Z1NWErTWcxenE3?=
 =?utf-8?B?Qkx2L3l5L3FVWW1LSHNPZTdSRE5pRVdwaXF4QTdxWEhMaVJ6c2dwR2IzK3Uw?=
 =?utf-8?B?L1lGQ0Urc2ZhQmxQdUtMWlNtU0paT0FwRUY1QmtxbjVuSUpISlIyWGxRK0NY?=
 =?utf-8?B?N1BoNExXd0NNVy81UGowMFNZZENRc3FoaXBnNTlLL2dUZmtsYTJtQjRRR1Fk?=
 =?utf-8?B?WVA5ZS9BWG5iTUwrbjA3dUdUeWhaSTZPd3BoNGdQKzFsbzg3QmVSaUFBbnBr?=
 =?utf-8?B?SHBWdmlxWGExTWVRSTVPeWRBeWQyTCtEelR5alBDUEZHSC9HalA1RjRWN0hL?=
 =?utf-8?B?WjZYZlZjSjFveDM1RGJLMW1kN25raHZhNG1uMUp1cU9ha1FOa3hnS1VLRllF?=
 =?utf-8?B?WWpOaFpwd213dkNkQWM0WXJVZm0vSWFDb2ZtODFscysvTGFhOTdzUEpQdUFx?=
 =?utf-8?B?blE5Z1RZNWdJbzRaK0J3cmxleEF5czFINkhHUUdoVTUvSWh5QmtDdHFNR1pF?=
 =?utf-8?B?a1BJVnNibGhRR0ExT1J2OTlVT0NpSXBITWRscDRPeHJ5bm9Gc082TFVJMk5i?=
 =?utf-8?B?U00wdSs1YTQ3RzRMcVRJRW0wSUMvejg2emhVSVl2RWgvRUVpZFd5OXBQZzl2?=
 =?utf-8?B?dEF3R2VLQ29RQXZRWUxseHNySTNXcGlqditncDh4aWo3dVF3dmI4QXhxbms0?=
 =?utf-8?B?UmdTb29IdXZJTFJjRnpBam41ZWpDT0lxSWFmemtsU2F4UkpETk9QcUtESUV1?=
 =?utf-8?B?WHlaYzlFL3JJRmVQOUp2V3dramN2Z1l3M1hMVit3RTJkNkJhT1AzY044d1c2?=
 =?utf-8?B?bGg4cnFzSmlvTUk5OWd4YnE2WXRNaGl0c0FPZzJUdXo1cTZRNWt3RGRXM3Fk?=
 =?utf-8?B?ZHM3c2F6MmhsdDlLS3dRR05pbUFHbWxrT2gvelRxVlVpNGJuVDlYdWlJMDVB?=
 =?utf-8?B?bE52cDc3eGxBRjdKMnpxelU2YTN5T2o3ZWRoMkF5R0hCYW9acWE2Zy9NNWtV?=
 =?utf-8?B?SjJ6ZDBCYVU3ZVExTXVhWWFZSnA5UXlmMlUrNDI0a0hkYzhBNFlKd2RtVktV?=
 =?utf-8?B?bzB0TEt6b29FdERVdmZvZEh5aEhrWDU2VURVUkxQa1cwaXJabHI4YW5Pck9D?=
 =?utf-8?B?cGwyeGRLeTZpUjF0S3FpbElxVHliZmdpaW0rUHd1L0NHdlB6Y296UFJBWVVp?=
 =?utf-8?B?MzBEV2ZjY2p5M0pSYmlYckpEZExCTUJGNUlrQ2NueWVNNGxOankxdWQvMStx?=
 =?utf-8?B?bnV0TGFsclYwUmFYMzV0QTlHa2NiMUlUNVNNMkZ1cG5XRFFBend6Y0hNZUdP?=
 =?utf-8?B?VERvbytKNnFzbUdhUEptVTZrdm85d3lKZU9FYkZQQTl1U3h5ZlYzSkNkcXhZ?=
 =?utf-8?B?VTlBY0ZuRWhuUE5PMzhvUkxHaFFobTE1dTVQcXU2dGFxRFExWU8wVnFSdDlo?=
 =?utf-8?B?NjFpcWg0aGRFVkJDbWgyelRYcytMbm1Wb2tXM0ZaUW5hck1wZWVIMmtYZVl5?=
 =?utf-8?B?UGhTaVNpWXhreWhWNFVMZ3VtNjdDcGFCbDlyMjhwY0Eyd3pwbWM5T1lRQVBY?=
 =?utf-8?Q?uKtI1nxBiLSDuJ/7QjJNYuGb/+4SJM=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: 17 Apr 2025 13:00:57.3067
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 0743d193-6a39-43de-f4ac-08dd7dafe522
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:
	BN2PEPF000055DD.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB9203

On Thu Apr 17, 2025 at 1:48 PM BST, Alejandro Vallejo wrote:
> Hi,
>
> Here's a new version. Took a while to integrate all the feedback, but
> here it is.
>
> v4 pipeline: https://gitlab.com/xen-project/people/agvallejo/xen/-/pipeli=
nes/1772300721
>
> v3: https://lore.kernel.org/xen-devel/20250408160802.49870-1-agarciav@amd=
.com/
> v2: https://lore.kernel.org/xen-devel/20241226165740.29812-1-dpsmith@aper=
tussolutions.com/
> v1: https://lore.kernel.org/xen-devel/20241123182044.30687-1-dpsmith@aper=
tussolutions.com/
>
> Cheers,
> Alejandro
>
> =3D=3D=3D=3D=3D=3D=3D=3D=3D Original cover letter:
>
> The Hyperlaunch device tree for dom0 series is the second split out for t=
he
> introduction of the Hyperlaunch domain builder logic. These changes focus=
 on
> introducing the ability to express a domain configuration that is then us=
ed to
> populate the struct boot_domain structure for dom0. This ability to expre=
ss a
> domain configuration provides the next step towards a general domain buil=
der.
>
> 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 han=
dling
> the knock-on effects to the construction logic from requested review chan=
ges.
>
> Alejandro Vallejo (1):
>   x86/hyperlaunch: Add helpers to locate multiboot modules
>
> Daniel P. Smith (12):
>   x86/boot: add cmdline to struct boot_domain
>   kconfig: introduce domain builder config options
>   common/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                   |   1 +
>  xen/arch/x86/dom0_build.c              |  11 +
>  xen/arch/x86/hvm/dom0_build.c          |  31 +-
>  xen/arch/x86/include/asm/boot-domain.h |  17 +
>  xen/arch/x86/include/asm/bootinfo.h    |  10 +-
>  xen/arch/x86/pv/dom0_build.c           |   4 +-
>  xen/arch/x86/setup.c                   |  91 +++--
>  xen/common/Kconfig                     |   5 +
>  xen/common/Makefile                    |   1 +
>  xen/common/domain-builder/Kconfig      |  18 +
>  xen/common/domain-builder/Makefile     |   2 +
>  xen/common/domain-builder/core.c       | 110 ++++++
>  xen/common/domain-builder/fdt.c        | 488 +++++++++++++++++++++++++
>  xen/common/domain-builder/fdt.h        |  39 ++
>  xen/include/xen/domain-builder.h       |  13 +
>  xen/include/xen/libfdt/libfdt-xen.h    |  44 +++
>  16 files changed, 839 insertions(+), 46 deletions(-)
>  create mode 100644 xen/common/domain-builder/Kconfig
>  create mode 100644 xen/common/domain-builder/Makefile
>  create mode 100644 xen/common/domain-builder/core.c
>  create mode 100644 xen/common/domain-builder/fdt.c
>  create mode 100644 xen/common/domain-builder/fdt.h
>  create mode 100644 xen/include/xen/domain-builder.h

Bah, I just noticed after sending. The commit messages of the last 10
patches are meant to be common/hyperlaunch. Or just hyperlaunch.

It _is_ effectively still x86-only, but it's living under common.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Thu Apr 17 13:22:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 13:22:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.957712.1350761 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5PCS-0004wM-RI; Thu, 17 Apr 2025 13:22:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 957712.1350761; Thu, 17 Apr 2025 13:22: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 1u5PCS-0004wF-O1; Thu, 17 Apr 2025 13:22:40 +0000
Received: by outflank-mailman (input) for mailman id 957712;
 Thu, 17 Apr 2025 13:22: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=VG4i=XD=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1u5PCR-0004vm-OQ
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 13:22:39 +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 07fc5fac-1b8f-11f0-9eb0-5ba50f476ded;
 Thu, 17 Apr 2025 15:22:37 +0200 (CEST)
Received: by mail-wr1-x433.google.com with SMTP id
 ffacd0b85a97d-39c0e0bc733so743223f8f.1
 for <xen-devel@lists.xenproject.org>; Thu, 17 Apr 2025 06:22:37 -0700 (PDT)
Received: from ?IPV6:2003:e5:873d:1a00:8e99:ce06:aa4a:2e7b?
 (p200300e5873d1a008e99ce06aa4a2e7b.dip0.t-ipconnect.de.
 [2003:e5:873d:1a00:8e99:ce06:aa4a:2e7b])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39eaf43ccd8sm20487892f8f.72.2025.04.17.06.22.36
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 17 Apr 2025 06:22:36 -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: 07fc5fac-1b8f-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744896157; x=1745500957; 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=/zrfeMzJfamxk1gEssa3Qzik7vUYCx08CffmS9zSy0w=;
        b=IpTFWlJfHzxGCGDvyxB5X1Y7WqZktWql/Ov5Af6K3chkMzBxXpSrCDfx+SjqoYB7YZ
         8xd7Rpc5TTDVTNASNjQMpiMWtZiKoRsQx/6N7JTGVtFEgCL63uGBv1cAV6oitHeeSDxg
         0IhWaJyIdebeFggrcm8X2pmHzX5GdaD25ynK99VIbSiskICLHq0hR4cDfu6BBLRXZt7x
         VjqA0ZMd9bhLsmEi/V0VOU3SW0yxx+6c7rOVG+y3PTIz1IXGXTUSNvGsmIfj6U8tHkbM
         brpbzBmavYO53WlYHjoQyIBjxPo7MdOidgkvdalW5KJTlY4W194uauhHrVnZfW3h42dw
         US0w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744896157; x=1745500957;
        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=/zrfeMzJfamxk1gEssa3Qzik7vUYCx08CffmS9zSy0w=;
        b=V58odj/Au0e8pTVvIbTTthi8KD8//AZI9bbj4YbNECCb+S16G6d+8eP7jGgfoqmRWF
         O3C8ckd99rvysz3+sebZ3mT4irxXBAgl2jiXcvTOjhYxUP17xmg9VKxpaTxOkEzOxYod
         qmW/flzaWM0WYKxGzuKOC2K7//hBCLko94sQXtkbl8vV2YN6TmwLaP8uJfiYzHrO8seV
         Vl9F9pJy9q6x1RWaElXmFXJY8Zmx0bW+wieGjib5BwBfkCFS6pjOQ1AGoQMNkzBoXYs4
         YR4AZUH3ow62hetMJKqvlZGVuv9L9vAln2xaFKu07vXYVVSz2LOg1dAdKZ1uvbh5YGHj
         y8Hg==
X-Forwarded-Encrypted: i=1; AJvYcCWWA1VxPc0OqCMMPD/9Hgi+TjbVcLMw14wGb1aW/8yUY25f1FPGWDF86sg1zxfnjBryHCiMQstm2t0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwGeJZBrPz2HLl1KedrRp6yYbKdXS6Wb+OWZ8oGYZ3fspk3U5IL
	+47RAxx/bHYfr28lrk6VL5dZle/CkdB7/ybmUBK9biJzuZaxQ4t704gQkoIDUEQ=
X-Gm-Gg: ASbGncvCtLzuWZ7AnPGK2OuOWWJ8O6wZ6C3WMwnqDViiJz+8j8BR9wQINNu8P0S8DO1
	uDbKi0IseoL6gFVNWOuxgWhUk/4MSO5CENcldXHNidOS2jem0PhfDgrcxtsHU7oZAyOEB7H58YU
	pRSIgUj7TimN79f1mr7YdNBJfQz5/zGhA+U1LAd0kRGAf1HDfxpLGcnFRswMaz7cSpd6WNWK3T8
	lUNLqySQOZyscb8gBjfnO1cabK9GNfHXPsMZh5AXAnx7u32z4UUrg6FqAR2GHlTvOuaLg2chzsD
	ad3eB4D+A4T5aRICORiBVaTTIV+KXp0aQXm3WBhx7aqcUBG9xCqV0zv9DkQjD9WjAuifdarNG8w
	oaZTAiCbMF3LEl3GcgQdLo+cEVFHsRcMaQFvPsWatWTmT+AdAC/BblymlgQNpOIK7eA==
X-Google-Smtp-Source: AGHT+IE0xCdVKiDulnkBrlOLJ+CDf03RXlUnLB01h0DYd5fN+o6tFJ9/XRwZaY7Ejj2G1Kqr2MlkUA==
X-Received: by 2002:a05:6000:40c7:b0:39c:1257:cc26 with SMTP id ffacd0b85a97d-39ee5badc09mr5385973f8f.57.1744896157117;
        Thu, 17 Apr 2025 06:22:37 -0700 (PDT)
Message-ID: <7e73b2ee-45be-42d7-a1f4-9e573448051d@suse.com>
Date: Thu, 17 Apr 2025 15:22:35 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen-netfront: handle NULL returned by
 xdp_convert_buff_to_frame()
To: Alexey <sdl@nppct.ru>, Jakub Kicinski <kuba@kernel.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 "David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>,
 Paolo Abeni <pabeni@redhat.com>, Alexei Starovoitov <ast@kernel.org>,
 Daniel Borkmann <daniel@iogearbox.net>,
 Jesper Dangaard Brouer <hawk@kernel.org>,
 John Fastabend <john.fastabend@gmail.com>, xen-devel@lists.xenproject.org,
 netdev@vger.kernel.org, linux-kernel@vger.kernel.org, bpf@vger.kernel.org,
 lvc-project@linuxtesting.org, stable@vger.kernel.org
References: <20250414183403.265943-1-sdl@nppct.ru>
 <20250416175835.687a5872@kernel.org>
 <fa91aad9-f8f3-4b27-81b3-4c963e2e64aa@nppct.ru>
 <0c29a3f9-9e22-4e44-892d-431f06555600@suse.com>
 <452bac2e-2840-4db7-bbf4-c41e94d437a8@nppct.ru>
 <ed8dec2a-f507-49be-a6f3-fb8a91bfef01@suse.com>
 <8264519a-d58a-486e-b3c5-dba400658513@nppct.ru>
 <4679ca25-572b-44aa-bc00-cb9dc1c0080c@suse.com>
 <ff6eed52-5f1f-4070-90dc-8cf057f35e41@nppct.ru>
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: <ff6eed52-5f1f-4070-90dc-8cf057f35e41@nppct.ru>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------QazOABvnpvqW3YNWG83asdoy"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------QazOABvnpvqW3YNWG83asdoy
Content-Type: multipart/mixed; boundary="------------Y4ktICBzSDRA6vIdt3JQnVh3";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Alexey <sdl@nppct.ru>, Jakub Kicinski <kuba@kernel.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 "David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>,
 Paolo Abeni <pabeni@redhat.com>, Alexei Starovoitov <ast@kernel.org>,
 Daniel Borkmann <daniel@iogearbox.net>,
 Jesper Dangaard Brouer <hawk@kernel.org>,
 John Fastabend <john.fastabend@gmail.com>, xen-devel@lists.xenproject.org,
 netdev@vger.kernel.org, linux-kernel@vger.kernel.org, bpf@vger.kernel.org,
 lvc-project@linuxtesting.org, stable@vger.kernel.org
Message-ID: <7e73b2ee-45be-42d7-a1f4-9e573448051d@suse.com>
Subject: Re: [PATCH] xen-netfront: handle NULL returned by
 xdp_convert_buff_to_frame()
References: <20250414183403.265943-1-sdl@nppct.ru>
 <20250416175835.687a5872@kernel.org>
 <fa91aad9-f8f3-4b27-81b3-4c963e2e64aa@nppct.ru>
 <0c29a3f9-9e22-4e44-892d-431f06555600@suse.com>
 <452bac2e-2840-4db7-bbf4-c41e94d437a8@nppct.ru>
 <ed8dec2a-f507-49be-a6f3-fb8a91bfef01@suse.com>
 <8264519a-d58a-486e-b3c5-dba400658513@nppct.ru>
 <4679ca25-572b-44aa-bc00-cb9dc1c0080c@suse.com>
 <ff6eed52-5f1f-4070-90dc-8cf057f35e41@nppct.ru>
In-Reply-To: <ff6eed52-5f1f-4070-90dc-8cf057f35e41@nppct.ru>

--------------Y4ktICBzSDRA6vIdt3JQnVh3
Content-Type: multipart/mixed; boundary="------------lnAp0nlzMwIlgaMFs4Ry41gP"

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

T24gMTcuMDQuMjUgMTM6MTksIEFsZXhleSB3cm90ZToNCj4gDQo+IE9uIDE3LjA0LjIwMjUg
MTM6MjMsIErDvHJnZW4gR3Jvw58gd3JvdGU6DQo+PiBPbiAxNy4wNC4yNSAxMjowNiwgQWxl
eGV5IHdyb3RlOg0KPj4+DQo+Pj4gT24gMTcuMDQuMjAyNSAxMTo1MSwgSnVlcmdlbiBHcm9z
cyB3cm90ZToNCj4+Pj4gT24gMTcuMDQuMjUgMTA6NDUsIEFsZXhleSB3cm90ZToNCj4+Pj4+
DQo+Pj4+PiBPbiAxNy4wNC4yMDI1IDEwOjEyLCBKw7xyZ2VuIEdyb8OfIHdyb3RlOg0KPj4+
Pj4+IE9uIDE3LjA0LjI1IDA5OjAwLCBBbGV4ZXkgd3JvdGU6DQo+Pj4+Pj4+DQo+Pj4+Pj4+
IE9uIDE3LjA0LjIwMjUgMDM6NTgsIEpha3ViIEtpY2luc2tpIHdyb3RlOg0KPj4+Pj4+Pj4g
T24gTW9uLCAxNCBBcHIgMjAyNSAxODozNDowMSArMDAwMCBBbGV4ZXkgTmVwb21ueWFzaGlo
IHdyb3RlOg0KPj4+Pj4+Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBnZXRfcGFnZShwZGF0YSk7
DQo+Pj4+Pj4+PiBQbGVhc2Ugbm90aWNlIHRoaXMgZ2V0X3BhZ2UoKSBoZXJlLg0KPj4+Pj4+
Pj4NCj4+Pj4+Pj4+PiDCoMKgwqDCoMKgwqDCoMKgwqAgeGRwZiA9IHhkcF9jb252ZXJ0X2J1
ZmZfdG9fZnJhbWUoeGRwKTsNCj4+Pj4+Pj4+PiArwqDCoMKgwqDCoMKgwqAgaWYgKHVubGlr
ZWx5KCF4ZHBmKSkgew0KPj4+Pj4+Pj4+ICsgdHJhY2VfeGRwX2V4Y2VwdGlvbihxdWV1ZS0+
aW5mby0+bmV0ZGV2LCBwcm9nLCBhY3QpOw0KPj4+Pj4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgIGJyZWFrOw0KPj4+Pj4+Pj4+ICvCoMKgwqDCoMKgwqDCoCB9DQo+Pj4+Pj4+IERv
IHlvdSBtZWFuIHRoYXQgaXQgd291bGQgYmUgYmV0dGVyIHRvIG1vdmUgdGhlIGdldF9wYWdl
KHBkYXRhKSBjYWxsIGxvd2VyLA0KPj4+Pj4+PiBhZnRlciBjaGVja2luZyBmb3IgTlVMTCBp
biB4ZHBmLCBzbyB0aGF0IHRoZSByZWZlcmVuY2UgY291bnQgaXMgb25seSANCj4+Pj4+Pj4g
aW5jcmVhc2VkDQo+Pj4+Pj4+IGFmdGVyIGEgc3VjY2Vzc2Z1bCBjb252ZXJzaW9uPw0KPj4+
Pj4+DQo+Pj4+Pj4gSSB0aGluayB0aGUgZXJyb3IgaGFuZGxpbmcgaGVyZSBpcyBnZW5lcmFs
bHkgYnJva2VuIChvciBhdCBsZWFzdCB2ZXJ5DQo+Pj4+Pj4gcXVlc3Rpb25hYmxlKS4NCj4+
Pj4+Pg0KPj4+Pj4+IEkgc3VzcGVjdCB0aGF0IGluIGNhc2Ugb2YgYXQgbGVhc3Qgc29tZSBl
cnJvcnMgdGhlIGdldF9wYWdlKCkgaXMgbGVha2luZw0KPj4+Pj4+IGV2ZW4gd2l0aG91dCB0
aGlzIG5ldyBwYXRjaC4NCj4+Pj4+Pg0KPj4+Pj4+IEluIGNhc2UgSSdtIHdyb25nIGEgY29t
bWVudCByZWFzb25pbmcgd2h5IHRoZXJlIGlzIG5vIGxlYWsgc2hvdWxkIGJlDQo+Pj4+Pj4g
YWRkZWQuDQo+Pj4+Pj4NCj4+Pj4+Pg0KPj4+Pj4+IEp1ZXJnZW4NCj4+Pj4+DQo+Pj4+PiBJ
IHRoaW5rIHBkYXRhIGlzIGZyZWVkIGluIHhkcF9yZXR1cm5fZnJhbWVfcnhfbmFwaSgpIC0+
IF9feGRwX3JldHVybigpDQo+Pj4+DQo+Pj4+IEFncmVlZC4gQnV0IHdoYXQgaWYgeGVubmV0
X3hkcF94bWl0KCkgcmV0dXJucyBhbiBlcnJvciA8IDA/DQo+Pj4+DQo+Pj4+IEluIHRoaXMg
Y2FzZSB4ZHBfcmV0dXJuX2ZyYW1lX3J4X25hcGkoKSB3b24ndCBiZSBjYWxsZWQuDQo+Pj4+
DQo+Pj4+DQo+Pj4+IEp1ZXJnZW4NCj4+Pg0KPj4+IEFncmVlZC4gVGhlcmUgaXMgbm8gZXhw
bGljaXQgZnJlZWQgcGRhdGEgaW4gdGhlIGNhbGxpbmcgZnVuY3Rpb24NCj4+PiB4ZW5uZXRf
Z2V0X3Jlc3BvbnNlcygpLiBXaXRob3V0IHRoaXMsIHRoZSBwYWdlIHJlZmVyZW5jZWQgYnkg
cGRhdGENCj4+PiBjb3VsZCBiZSBsZWFrZWQuDQo+Pj4NCj4+PiBJIHN1Z2dlc3Q6DQo+Pg0K
Pj4gQ291bGQgeW91IHBsZWFzZSBtZXJnZSB0aGUgdHdvIGlmICgpIGJsb2NrcywgYXMgdGhl
eSBzaGFyZSB0aGUNCj4+IGNhbGwgb2YgeGRwX3JldHVybl9mcmFtZV9yeF9uYXBpKCkgbm93
PyBTb21ldGhpbmcgbGlrZToNCj4+DQo+PiBpZiAodW5saWtlbHkoZXJyIDw9IDApKSB7DQo+
PiDCoMKgwqDCoGlmIChlcnIgPCAwKQ0KPj4gwqDCoMKgwqDCoMKgwqAgdHJhY2VfeGRwX2V4
Y2VwdGlvbihxdWV1ZS0+aW5mby0+bmV0ZGV2LCBwcm9nLCBhY3QpOw0KPj4gwqDCoMKgwqB4
ZHBfcmV0dXJuX2ZyYW1lX3J4X25hcGkoeGRwZik7DQo+PiB9DQo+Pg0KPj4gSnVlcmdlbg0K
Pj4NCj4+IFAuUy46IHBsZWFzZSBkb24ndCB1c2UgSFRNTCBpbiBlbWFpbHMNCj4gDQo+IEkg
Y2FuJ3QgZG8gdGhpcyBiZWNhdXNlIHhlbm5ldF94ZHBfeG1pdCgpIGNhbiByZXR1cm4gYSB2
YWx1ZSA+IDANCg0KWWVzLCB0aGlzIGlzIHdoYXQgdGhlICJpZiAodW5saWtlbHkoZXJyIDw9
IDApKSIgaXMgZm9yLg0KDQoNCkp1ZXJnZW4NCg==
--------------lnAp0nlzMwIlgaMFs4Ry41gP
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-----

--------------lnAp0nlzMwIlgaMFs4Ry41gP--

--------------Y4ktICBzSDRA6vIdt3JQnVh3--

--------------QazOABvnpvqW3YNWG83asdoy
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/Ey8FAmgBAJsFAwAAAAAACgkQsN6d1ii/Ey88
Vgf+MaxOLqDuCeHDhPDe0TkAwFTRCNeKwsJaYbj4fl+2MrZSLcJyHia8AGc1gbYRSOS4S4RO7+A5
W2BxbcmWlzWGS7Hz0dltyCeUau2xCOZEpMopSieTcXg5qGvuzrde+WEzOF302GZwmIa4f3BG+GSC
YCfsV6CU79QPCRlObjbx1GZo3UXAkZ1gziQwMWQUNbNTRcOPGDPgdufJ/viqji8LqW2NccTREpQH
MtG3QuKsjMIJ01YoG+GGZm2bKObOHnL0MhG21Iy4slAfgC2toyX8z/nEAUjTVrfgxOoRFfNJmawr
Is1aGAA5MWXL/a9gn9+HHD9RX0w/hb9uVATgWYriVw==
=ffAU
-----END PGP SIGNATURE-----

--------------QazOABvnpvqW3YNWG83asdoy--


From xen-devel-bounces@lists.xenproject.org Thu Apr 17 13:23:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 13:23:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.957722.1350770 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5PDG-0005do-2i; Thu, 17 Apr 2025 13:23:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 957722.1350770; Thu, 17 Apr 2025 13:23:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5PDG-0005dh-09; Thu, 17 Apr 2025 13:23:30 +0000
Received: by outflank-mailman (input) for mailman id 957722;
 Thu, 17 Apr 2025 13:23: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=nsoM=XD=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u5PDE-0004vm-Id
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 13:23:28 +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 25ebb968-1b8f-11f0-9eb0-5ba50f476ded;
 Thu, 17 Apr 2025 15:23:28 +0200 (CEST)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-43ea40a6e98so6302465e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 17 Apr 2025 06:23:28 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 98e67ed59e1d1-3086122a8absm3608044a91.35.2025.04.17.06.23.23
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 17 Apr 2025 06:23:26 -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: 25ebb968-1b8f-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744896207; x=1745501007; 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=vp0XsgfBCwSYXrqewNhPa0cqeDGB95WLcciTrdonSLw=;
        b=SCUnzlcA34jY1pAth1Rq6WkwtbYlTzjN/OJRnUmeX9MPC9ne9EC7lxObJ1K1wgsu3v
         8wl9CEv9aNUZf7MFlqtyXOuKmva6f9ZtliGIO6jhQgL/Nmiy+TNJLcT0hYQhNck9t0D5
         XLea2FgPW4tiPXLdvUpcS5qOaU+bPbTXdbBn2K7uEgrQSftFhRIp4O6/C8ygI1ILgVq6
         pjdSQRP9/hDc6PZEmmVkAQpQ5mfevV9oeWVZ++7SQQVVuKU4/tTnESyHnT7ZQshMxg+T
         497Z8cd6NFC+tuAGdFvdgpLd/wQnLCbPj6iKZCRiETPMBlGnFdciViWb9yxg2fEg4lb9
         WedQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744896207; x=1745501007;
        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=vp0XsgfBCwSYXrqewNhPa0cqeDGB95WLcciTrdonSLw=;
        b=PpAoFro8a8tT7sasamK8dSD5kaaL34oQ4NNLimrufPYpGCttDmYqFPfVPejzJPczYC
         xrM+7LReDGJMIUOFkQ0vc0N0Q0I39GCr9u0ig181V17PVLFOsIVJebaryLBtVVRaxmzJ
         L3M4pGNUUTUZFHhVJk7XJyyOxNVD4kgd/DPCAFyFig/KCI7C5ccXGlLJpE3c+TvGJ3UV
         yvksk0RaeMJD10t65rBXfAvhPbLzM9MP3Ch2yEa8F5Gs79DwYXyFhNsPgO3TihHP1gQ2
         Vmvl0sDDQXBG5Nl20F13cGwfiiXoSHrYZAUVXN4qwwnz6DJeEbEJtKaobGj3FtyfuEY9
         YuYw==
X-Gm-Message-State: AOJu0YzjUhfmCqn+FybFmhQZ/TvZ88TBDOXdUFld4SzLqu+KURxoSDjy
	NHHJwvP9N7bG1s6hK9ibinEYIQJ7PoZkIMQ0W9cwHsU2k+/PwX84Ek2ZA29tyNDCGTkuaVoayNI
	=
X-Gm-Gg: ASbGncsFKHyv/LGM8oio3HCZL1Hsv84V8i1OscX4Idwr0yi0TXyHhTe9ZYWy23+c8FN
	m7TvSmKb4n9/iYQr2hxTezqfWpUPitTu6frK9TYHoduHni1VjFFluEcIX0nVvQ5qJ1IELCfGsG/
	ZFFJwqfTMgsEr1MA7A17llKWFR6hg9Hu84/LJOorCNLI41A6+ySnaeVqO9DAb+24EGR8NIN9kbb
	zwTuiFzVhagKxX6fmaROYndUAJUa+4PpsjPrvbOISYUyDfYWfeWg6Ur3XdW6CWWSoyqBusfNob8
	RdNFnrE43kYTOfRnqFJGHTq94lHqpsidjssCBXSD3WSuMMaC4ScIVCUA2+x7ZqMjgPpJdefCTqT
	j2PJZHbbf39kAp88Jw9otBgRe3g==
X-Google-Smtp-Source: AGHT+IFEXz0I0y9M/Wr1hbDFMOzwZeFzeZ2SVNsjKxqYpTqPWY0mV9G726+Dnww/sR6QkVrLjJVk7g==
X-Received: by 2002:a05:6000:2210:b0:39c:1258:7e1a with SMTP id ffacd0b85a97d-39ee5b9f4b0mr5538409f8f.59.1744896207431;
        Thu, 17 Apr 2025 06:23:27 -0700 (PDT)
Message-ID: <37065e8d-33c2-4e6e-8c2c-f4f8a9cd3ce1@suse.com>
Date: Thu, 17 Apr 2025 15:23:18 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/pmstat: Check size of PMSTAT_get_pxstat buffers
To: Ross Lagerwall <ross.lagerwall@citrix.com>
References: <20250417103000.827661-1-ross.lagerwall@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: <20250417103000.827661-1-ross.lagerwall@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 17.04.2025 12:30, Ross Lagerwall wrote:
> --- a/xen/drivers/acpi/pmstat.c
> +++ b/xen/drivers/acpi/pmstat.c
> @@ -104,6 +104,14 @@ int do_get_pm_info(struct xen_sysctl_get_pmstat *op)
>          cpufreq_residency_update(op->cpuid, pxpt->u.cur);
>  
>          ct = pmpt->perf.state_count;
> +
> +        if ( op->u.getpx.total < ct )
> +        {
> +            spin_unlock(cpufreq_statistic_lock);
> +            ret = -ENOSPC;
> +            break;
> +        }

Simply producing an error is not an option imo. See pmstat_get_cx_stat()'s
behavior. Imo the calculation of ct wants to become

        ct = min(pmpt->perf.state_count, op->u.getpx.total);

yet then the copying of the 2-dim array of data becomes more complicated
when ct < pmpt->perf.state_count. An option may be to document that this
array is copied only when the buffer is large enough.

Furthermore I think it would be a good idea to also amend the public header
with IN/OUT annotations for the fields which are input and output (also for
the Cx part, ideally).

And then - doesn't xc_pm_get_pxstat() have a similar issue?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Apr 17 13:47:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 13:47:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.957740.1350781 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5PZx-0001Oa-TF; Thu, 17 Apr 2025 13:46:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 957740.1350781; Thu, 17 Apr 2025 13:46: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 1u5PZx-0001OT-QI; Thu, 17 Apr 2025 13:46:57 +0000
Received: by outflank-mailman (input) for mailman id 957740;
 Thu, 17 Apr 2025 13:46: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=Dr0F=XD=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u5PZw-0001ON-36
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 13:46:56 +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 6b775c06-1b92-11f0-9ffb-bf95429c2676;
 Thu, 17 Apr 2025 15:46:53 +0200 (CEST)
Received: by mail-ej1-x62e.google.com with SMTP id
 a640c23a62f3a-acacb8743a7so138676766b.1
 for <xen-devel@lists.xenproject.org>; Thu, 17 Apr 2025 06:46:53 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 a640c23a62f3a-acb3d35b896sm296504366b.177.2025.04.17.06.46.52
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 17 Apr 2025 06:46:52 -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: 6b775c06-1b92-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744897613; x=1745502413; 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=KrRpFaBO72ob9ayFaxMlP8SrHHAZOx4p8j1El+R8G1o=;
        b=e7QpINDDsOwcGuVsmeit7AdXprA/iFRoB6fBjfxshyrH4X8K7oxMd4SjZuP4q1FwOm
         IVZioTYpHXIVMvqfAVZJT6LLn1egr/OGOZJpftXUjsPgXu7uTLexP79OgNx+JBxZwjXb
         6+kEQXBbYKJ7gUPs6g43QwfTRYGIOwHSZ5S88=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744897613; x=1745502413;
        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=KrRpFaBO72ob9ayFaxMlP8SrHHAZOx4p8j1El+R8G1o=;
        b=K934a8GAmJEv2AC0uGx/qw1wIj9Vf2MFGiqxcKb5s26NbxZAwt0JguevzI+e2HY2uy
         w/Tr581dZrXUjovMNfDZcxlxenwjY+aU+F8C8HT8PgdzAfOwewexZiU8yxwkVQ6TRIbO
         LYgueA9xFFbK6lY7hekHt1lnS26Wtt5ZLle6X0tf1Yua/FueMEjIulq1JY2styAFRnQz
         IbsToiXIYMCBe1bzmZ0o6i1UjTRanQD1GEmsqLBft11w6FTHzGe6ytcxE1ynDyZcnNPI
         cKU6BNmFmpOK9W18aNaPmbnsEOyRcADZVhmBXZAitai64laHi1SxPEHuZAMxWNhP/vG8
         znmQ==
X-Gm-Message-State: AOJu0Ywp4FJ5KVWvivHmpxRVFMtLGXxJxtG/o0iy8mtAvsHv4uUU5uNn
	G8M7LZM35n2wOvPujrNNPX1715XJPmrcg7sNKuEDO3D6PjYOoV2ZS9mIite8UetB8aDslSNYLvZ
	2
X-Gm-Gg: ASbGncuLCBoAd6YxpbQi9XBpT7zWEqoj24DAeIQe7ko9JryjqFOxOkL2tsINjtOWguB
	Z3YffZ6AzLcEBtfS2T6eOcAFUYKiX8UxH4ivWq3mNMbl+r20J6ARGUzBVr8qUybJ2Rvy5SE44Y0
	6CUeUWs74CO/O2Q9kkiPvVTDKjDlj88Gf6y94zrZrvuzTamMSbFNU5RI+W0erR0uWnJXHY/Z3Fy
	qwOSBU9XumemUxhtqozpg0hWlksSuqSqJ/zKLkTx1EHal5OJY0SW8Xf4cLeQInBBjq+yND9+TQD
	LbVH3hfxg1fqzlvMV48pLr5uGOuxCbRhuFlzrRExeI6YSw==
X-Google-Smtp-Source: AGHT+IE6hoZMK3+e3prRN7LX/h3ebgZp4I4DWuYhx5CvzhTH/wdjuPTYoQSQ9I70VBtShacf2q0D9Q==
X-Received: by 2002:a17:906:6a07:b0:ac6:d368:aa97 with SMTP id a640c23a62f3a-acb5a0a032dmr307579166b.10.1744897612561;
        Thu, 17 Apr 2025 06:46:52 -0700 (PDT)
Date: Thu, 17 Apr 2025 15:46:51 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Stewart Hildebrand <stewart.hildebrand@amd.com>
Cc: xen-devel@lists.xenproject.org
Subject: Re: [PATCH] vpci/msix: use host msix table address
Message-ID: <aAEGS_u_tWmuaVi4@macbook.lan>
References: <20250415180200.436578-1-stewart.hildebrand@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <20250415180200.436578-1-stewart.hildebrand@amd.com>

On Tue, Apr 15, 2025 at 02:01:56PM -0400, Stewart Hildebrand wrote:
> Introduce vmsix_table_host_{addr,base} returning the host physical MSI-X
> table address and base. Use them in update_entry() and get_table().
> 
> Remove stale comment.
> 
> Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>

Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>

> ---
> I considered adding this tag:
> Fixes: 52ebde3cfae2 ("vpci/header: program p2m with guest BAR view")
> but I left it out since upstream currently only supports identity-mapped
> vPCI.

Hm, not sure.  As you say non-identity mapped vPCI usage is not
supported, so I wouldn't insist in backporting the patch.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Apr 17 13:59:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 13:59:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.957755.1350791 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5PmC-0003bJ-Ui; Thu, 17 Apr 2025 13:59:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 957755.1350791; Thu, 17 Apr 2025 13:59:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5PmC-0003bC-Rk; Thu, 17 Apr 2025 13:59:36 +0000
Received: by outflank-mailman (input) for mailman id 957755;
 Thu, 17 Apr 2025 13:59:35 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Dr0F=XD=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u5PmB-0003b6-BX
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 13:59: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 3129d28a-1b94-11f0-9eb0-5ba50f476ded;
 Thu, 17 Apr 2025 15:59:34 +0200 (CEST)
Received: by mail-ej1-x632.google.com with SMTP id
 a640c23a62f3a-acb415dd8faso122387166b.2
 for <xen-devel@lists.xenproject.org>; Thu, 17 Apr 2025 06:59:34 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 a640c23a62f3a-acb5747173esm127972466b.152.2025.04.17.06.59.33
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 17 Apr 2025 06:59:33 -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: 3129d28a-1b94-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744898374; x=1745503174; 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=nz2SSNBGeVvEjrFUcuqjIHFAMdl1GlO02Oan4EstqZs=;
        b=OkGMrzZXbBcKfH3O7tujd6Y41Tsv5vZHWPUc6khWf43HG7EsLOS3OpYIg8RHUveIYm
         G2WY6rusBpF6K8lezWq9CC0B6JP/wEjJwf3leXmarFs8FDiBrvFRYf56t2vjgbkQL/78
         MJ+fvBqV7Hf9B1l4B4djhWCUVUUkGkRBPOnZI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744898374; x=1745503174;
        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=nz2SSNBGeVvEjrFUcuqjIHFAMdl1GlO02Oan4EstqZs=;
        b=c0FAn+//gcMdhnGgLe81QYGz6CnEHl8dOjdffjnAZNvN7Cc6249ISb7fW9MRlrukms
         jdwJ4Gx9scdBeDmLSkL4JLL65LylsNwN0fBX+UnY7f651CjZgZQED/1NO03mPk4TnXcy
         lxfPdCPlopcnmigmmm1Cp13Nt9Ca6eZrkFCtNP2PHn0W1xAa0sqsizGnBYdhzISyay5v
         kxn9LQWMFC1kt0MCTuDLAGlOqN8AEPZVq6HSGMOPDQ+NKGnQn5Je5KH/tqEgv6v9XUZ5
         tuwG80aj1a8feXzlLwj/bH4MRVWnMq4QCr3Td3CbfYuqCnew/J8mAKHIBbwaqYedMC6N
         ROCw==
X-Forwarded-Encrypted: i=1; AJvYcCVopZUPBzE+v98wDB2Wwu3T0pp+/ssLcAk7YSLiJQCvX5d+3fgUy5vNJSXzM/iwa8D9QdBPZzSB6mc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwcHl4NWOQhyTuIerVeI8wA70SVL/LlvFbdTtmfcEjh7CaDcqu+
	sN8/3OuJmbyzOhwhtlmB4jDR43ySyOyywBXSCHDU84L3Yk8XTWuPM7PvkXxIvrI=
X-Gm-Gg: ASbGncsYopaE3ob2L7OH8Hcb067A50KEcbc9Y5TM53aGHd+RGpy5mnvb0Xk4nNbe7hW
	6RaOHR80N5F+gW3fhSP9+GbpT/CMrumnZB64iMxvidlgQlPcne7jXuDUxthKFpWdbgQpQq3pVJB
	uuVXhl8Rt2UQSz8B8F/YyIju3SLemg9Jjsrixqe/VP09+b/777gWrciMDpyxM5ZQ1+nT1i+EXKm
	iHEQdYnjcro+pafKnbHVCJXKgY9c9eO8s23fuNFDdhft2DlqfEQ8NMK1zS7Q47eu3Aaq79/30IJ
	TpH3uVQRfYF55oCKwDBmnVxesLdotjWv1/zh21yR4BoZfA==
X-Google-Smtp-Source: AGHT+IFZj2hrOjAWaZrEBWHMc4Lf/qGCHgk/2dT8ves9PcTcVZrrgmZXqGhtItqFUxfgeu+SX9frUw==
X-Received: by 2002:a17:907:728e:b0:ac3:8537:904e with SMTP id a640c23a62f3a-acb42c07205mr531016766b.49.1744898373687;
        Thu, 17 Apr 2025 06:59:33 -0700 (PDT)
Date: Thu, 17 Apr 2025 15:59:32 +0200
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/hvm: fix handling of accesses to partial r/o
 MMIO pages
Message-ID: <aAEJRB52xyRFYrIz@macbook.lan>
References: <20250415153246.81688-1-roger.pau@citrix.com>
 <20250415153246.81688-3-roger.pau@citrix.com>
 <c890cef7-da7c-4cb1-922d-8b0b155eca43@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <c890cef7-da7c-4cb1-922d-8b0b155eca43@suse.com>

On Thu, Apr 17, 2025 at 09:57:29AM +0200, Jan Beulich wrote:
> On 15.04.2025 17:32, Roger Pau Monne wrote:
> > --- a/xen/arch/x86/hvm/emulate.c
> > +++ b/xen/arch/x86/hvm/emulate.c
> > @@ -370,7 +370,12 @@ static int hvmemul_do_io(
> >          /* If there is no suitable backing DM, just ignore accesses */
> >          if ( !s )
> >          {
> > -            if ( is_mmio && is_hardware_domain(currd) )
> > +            if ( is_mmio && is_hardware_domain(currd) &&
> > +                 /*
> > +                  * Do not attempt to fixup accesses to r/o MMIO regions, they
> > +                  * are expected to be terminated by the null handler below.
> > +                  */
> > +                 !rangeset_contains_singleton(mmio_ro_ranges, PFN_DOWN(addr)) )
> >              {
> >                  /*
> >                   * PVH dom0 is likely missing MMIO mappings on the p2m, due to
> 
> Doesn't this need limiting to writes, i.e. permitting reads to still be
> handled right here?

Oh, I see, yes, it would be fine to attempt to fixup read accesses to
mmio_ro_ranges ranges.

> > --- /dev/null
> > +++ b/xen/arch/x86/hvm/mmio.c
> > @@ -0,0 +1,100 @@
> > +/* SPDX-License-Identifier: GPL-2.0-only */
> > +/*
> > + * MMIO related routines.
> > + *
> > + * Copyright (c) 2025 Cloud Software Group
> > + */
> > +
> > +#include <xen/io.h>
> > +#include <xen/mm.h>
> > +
> > +#include <asm/p2m.h>
> > +
> > +static int cf_check subpage_mmio_accept(struct vcpu *v, unsigned long addr)
> > +{
> > +    p2m_type_t t;
> > +    mfn_t mfn = get_gfn_query_unlocked(v->domain, addr, &t);
> 
> Don't you need to use PFN_DOWN() on addr?
> 
> > +    return !mfn_eq(mfn, INVALID_MFN) && t == p2m_mmio_direct &&
> > +           subpage_mmio_find_page(mfn);
> > +}
> > +
> > +static int cf_check subpage_mmio_read(
> > +    struct vcpu *v, unsigned long addr, unsigned int len, unsigned long *data)
> > +{
> > +    struct domain *d = v->domain;
> > +    p2m_type_t t;
> > +    mfn_t mfn = get_gfn_query(d, addr, &t);
> 
> Same here and further down, and in the write case?

Hm, yes I do.

> > +    struct subpage_ro_range *entry;
> > +    volatile void __iomem *mem;
> > +
> > +    *data = ~0UL;
> > +
> > +    if ( mfn_eq(mfn, INVALID_MFN) || t != p2m_mmio_direct )
> > +    {
> > +        put_gfn(d, addr);
> > +        return X86EMUL_RETRY;
> > +    }
> > +
> > +    entry = subpage_mmio_find_page(mfn);
> > +    if ( !entry )
> > +    {
> > +        put_gfn(d, addr);
> > +        return X86EMUL_OKAY;
> > +    }
> > +
> > +    mem = subpage_mmio_map_page(entry);
> > +    if ( !mem )
> > +    {
> > +        put_gfn(d, addr);
> > +        gprintk(XENLOG_ERR,
> > +                "Failed to map page for MMIO read at %#lx -> %#lx\n",
> > +                addr, mfn_to_maddr(mfn) + PAGE_OFFSET(addr));
> > +        return X86EMUL_OKAY;
> > +    }
> > +
> > +    *data = read_mmio(mem + PAGE_OFFSET(addr), len);
> 
> What if this crosses the trailing page boundary? Imo subpage_mmio_accept()
> would better reject misaligned accesses (at least until we know we need to
> handle such for some obscure reason).

Yes, the previous mmio_ro_emulated_write() did already reject such
accesses.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Apr 17 14:08:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 14:08:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.957770.1350802 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5Pv4-0005ov-SZ; Thu, 17 Apr 2025 14:08:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 957770.1350802; Thu, 17 Apr 2025 14:08: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 1u5Pv4-0005oo-OY; Thu, 17 Apr 2025 14:08:46 +0000
Received: by outflank-mailman (input) for mailman id 957770;
 Thu, 17 Apr 2025 14:08:44 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=nsoM=XD=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u5Pv2-0005oi-Ox
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 14:08:44 +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 776623a5-1b95-11f0-9eb0-5ba50f476ded;
 Thu, 17 Apr 2025 16:08:41 +0200 (CEST)
Received: by mail-wr1-x42f.google.com with SMTP id
 ffacd0b85a97d-39c0e0bc733so804635f8f.1
 for <xen-devel@lists.xenproject.org>; Thu, 17 Apr 2025 07:08:41 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 98e67ed59e1d1-308611d4af0sm4102287a91.3.2025.04.17.07.08.36
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 17 Apr 2025 07:08: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: 776623a5-1b95-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744898921; x=1745503721; 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=OgX529j5b+Lb7JU1K1hcubFK9TGt4Tehfcy0+ymK3tk=;
        b=MDBVGBvvfxwgTir9Tvpk+RWLDgl0goaF0iG7pd8Ig8+mWQqLrOa93Rp+/aJylUC+eS
         JCTTWrNGT/o2NRNSb7MTHAgu2dDLHdPXFm7Qmc7Ry+L5AXXahKXDcO0PxnkCByKq7NHn
         uHl0ld4E41aoRgTS4xC30XulwoA9geN8q7WaLZKh8mwOhBGTvORkOuJjalZy4NyowAF1
         LfZQlrUxydNSuhcgwDjbbTOWNtiwj2k3EqaOf9VwsYUgLgB/n75KhMzWKnHgYhI3X1fm
         NMNZiCPlGT0XrBdVXQ4Aa5qPX3z4olGuuWUpxiwD5FOz7pp836/TAsnNpmi7RdbEAoAj
         yFfQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744898921; x=1745503721;
        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=OgX529j5b+Lb7JU1K1hcubFK9TGt4Tehfcy0+ymK3tk=;
        b=a0B2adjXCqo8foYimfM1+YBp7McMdKlA451/8Ldu5aV+RKXAtaV/M4Emj7SE8OA+Sq
         NakCUp0Ao6VV7c/g9o8TixgCOoA73kwHh9EmxUut6T0hfE1qgIGbWrbpB/p6eM9y05sf
         1p9GqUjrzeVmOk5z3bZ52UNY/T0DcJydI51cXqRKxaRVx2e/ogB8ekvMUHRpulgxq4k+
         Q3TUcxza3l6BvUwH6FBveuflisZCkiknDMLQKIEVVdhoEHx4xy13VGPpKHA22W/zr1og
         h+6DvDzoXaNz9Cfo0BZPMcB1C1VEtRYW9HJqQH1f5FzLD3aUvyZ8sHWw3l+Esz5GYcAm
         xBtg==
X-Gm-Message-State: AOJu0Yxe/3t+6YQ64jcjWOjS4xERycmpRws90rZ6wsf4XGyYlr5c86DY
	e8cQjAk8DnKNH1kExAanSGRRPZeBxuNI+qMsDuL15fP+HgIx6ggGYwrvhbCDVwnD+LxpoCZcyks
	=
X-Gm-Gg: ASbGncsIiD/uMKTQFgWpbehCEqBLU4sMOADiTLZBeJmfU+PzbxfYWsiDCJOplfuT3UM
	viu13wfq2Sk9xkr8qMhQAR2PN2y4yqRTp7xWiqLBnR5UmpiGFyxfFjR4eTCJnlIeT6071bksFPT
	eP6QdKqwFs3fPM3wO1dDmeaPA67pNCY0SW8Y3pLCXOlcRQZ5Cm19migDgf/AHf4HiouWu9j+7j+
	mKtSpPNlQ0A+NVJOenrQ1m3LkmHEvJAEnEtXv1T2XuWB3pjsa1R9/16Jjv8uczn2naxxiVEjThJ
	Ycw+nWJ790YJSzJ8nhrVmt7tljt8Lp1n5idl2HiLrpx8e95jHSRIjFmezZWzrwP+70abaDjYV/N
	HpVoHdbtr9Ivjm6xQvr2kUVGRZ3NdtWR5huqz
X-Google-Smtp-Source: AGHT+IF+dNKiVdS/EPtBPS1zoGLMgU9KnhLC2eL1IdWJAcMW8jdTkgai/Lfbwvt4jENA0utArlKaFg==
X-Received: by 2002:a05:6000:2a01:b0:39e:e75b:5cc with SMTP id ffacd0b85a97d-39ee75b0961mr4039208f8f.16.1744898921181;
        Thu, 17 Apr 2025 07:08:41 -0700 (PDT)
Message-ID: <ffd8f532-6714-4f56-a358-71ab580202b6@suse.com>
Date: Thu, 17 Apr 2025 16:08:31 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Manuel Andreas <manuel.andreas@tum.de>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH] compat/memory: avoid UB shifts in XENMEM_exchange handling
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+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

Add an early basic check, yielding the same error code as the more
thorough on the the main handler would produce.

Fixes: b8a7efe8528a ("Enable compatibility mode operation for HYPERVISOR_memory_op")
Reported-by: Manuel Andreas <manuel.andreas@tum.de>
Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/xen/common/compat/memory.c
+++ b/xen/common/compat/memory.c
@@ -161,6 +161,11 @@ int compat_memory_op(unsigned int cmd, X
             if ( copy_from_guest(&cmp.xchg, arg, 1) )
                 return -EFAULT;
 
+            /* Early coarse check, as max_order() isn't available here. */
+            if ( cmp.xchg.in.extent_order >= BITS_PER_INT ||
+                 cmp.xchg.out.extent_order >= BITS_PER_INT )
+                return -EPERM;
+
             order_delta = cmp.xchg.out.extent_order - cmp.xchg.in.extent_order;
             /* Various sanity checks. */
             if ( (cmp.xchg.nr_exchanged > cmp.xchg.in.nr_extents) ||


From xen-devel-bounces@lists.xenproject.org Thu Apr 17 14:17:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 14:17:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.957782.1350810 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5Q31-0007sQ-Jc; Thu, 17 Apr 2025 14:16:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 957782.1350810; Thu, 17 Apr 2025 14: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 1u5Q31-0007sJ-Gn; Thu, 17 Apr 2025 14:16:59 +0000
Received: by outflank-mailman (input) for mailman id 957782;
 Thu, 17 Apr 2025 14:16: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=Dr0F=XD=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u5Q30-0007sD-62
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 14:16:58 +0000
Received: from mail-pg1-x52a.google.com (mail-pg1-x52a.google.com
 [2607:f8b0:4864:20::52a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9b423ffc-1b96-11f0-9ffb-bf95429c2676;
 Thu, 17 Apr 2025 16:16:52 +0200 (CEST)
Received: by mail-pg1-x52a.google.com with SMTP id
 41be03b00d2f7-af9a7717163so808551a12.2
 for <xen-devel@lists.xenproject.org>; Thu, 17 Apr 2025 07:16:52 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 98e67ed59e1d1-308613b2ff9sm3694940a91.30.2025.04.17.07.16.46
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 17 Apr 2025 07: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: 9b423ffc-1b96-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744899410; x=1745504210; 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=FPUpq4tKujOJsjsuzDI/0YmmAG8lBDhI8Y8O12aKSJI=;
        b=jRFlpc+5KRx2yayOXIuXfUnGhRM0XKQXrjY0PXZdiaB5jqaIVF32eD//g3crAK+zDe
         VPWnvkY1I/R+mBpBxrR7jRh5lpZ3wibkJN7eunJA+16I4qo0jxdRi9+HJ7QxnwsUai62
         +CXTBT4eiS57eEOlBdEg4rKg1bDDWnm0W+KNo=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744899410; x=1745504210;
        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=FPUpq4tKujOJsjsuzDI/0YmmAG8lBDhI8Y8O12aKSJI=;
        b=W7xRUznoKYBO8GMGUMsDW5COaxj0Jaw5HIj3dsWaREqYa6QqcCiIHqgJEaRY0oMAJi
         AfTCQkH8AA014hlNNtxV5GdDKjKQe1u6/CAQgddOmG7qPAxWFcwF7/zFBgvMXRASOvXy
         GzV296zi0f8WOcon0XSFHq5suSwkdzvcq8beL842Dh+lAMHLgzmNxz6ES/L0NqYli+PP
         dQ9ezBjImWlsnwR0sTfg8NMuiOPPsiZjTi/IRLjNi75L0EaqOpBWsAOAnL79Vw/zHOW7
         bbWIt4mBv0GSwPa0qhPvFUY2N9SbCpX1afMcX51+h/cnc4RZBAawZaI5wJiR5+UkjBRl
         oqKg==
X-Forwarded-Encrypted: i=1; AJvYcCUg1Eys6dAXP9FDKWpJ62avm9+iGXRT1aEz0dlyQoPTjsB9mGO0xlq1nak9mvE8F97iq+Mj6ODjunA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YycmymTJaXjSJvhPzOJXcq2Eg2+hTBu5eaBv6fgBPm416Jrk7Mj
	DUHBSs8lKK5ZnnLHFUP9GLgJdiHdKyDrHnvNf/M9Q6PiVU4YcnNoYiV6wuWK6wU=
X-Gm-Gg: ASbGncsZRoTs8o/HGhmQnHYTIHJn0jeEW+zzEmlfMdQsH+ijwU+9C25EO/IXMCxgCoV
	DIRJJfPr8Z1WisPNWGvTbqiqEn5zVOPPFgYJ9VN4xm3tZNLwf10br7SD0QfqZ8R3Cw1Ib/N2p3m
	taNuqiImZNMJF++cltzpLAv4lplT03xvpdZbR+IYQkZpNxvrFKX//HKbELoefaAbIqynYc79vYc
	bz+4q43tWaKVfa7O+bnV6MZSrlDJGtCUbGaKWUgORKv7f0RcGperaB9emClYbNVheyPov3ynXhY
	IPsxUYe5cf/ZS/YrgylD6Q5Hs3g/yot4HJ+BBXN56Ghorg==
X-Google-Smtp-Source: AGHT+IFmuvoPzRIQQou58scHl+MCYihuTVXT8SSDGfsd4Df9KgJGosIIGWTIZUwLsrhm1g3bQKg8Sw==
X-Received: by 2002:a17:90b:4ec6:b0:2ea:bf1c:1e3a with SMTP id 98e67ed59e1d1-30863f1939emr11034897a91.12.1744899408123;
        Thu, 17 Apr 2025 07:16:48 -0700 (PDT)
Date: Thu, 17 Apr 2025 16:16:42 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v2 1/4] xen/io: provide helpers for multi size MMIO
 accesses
Message-ID: <aAENSnhKDQHQERgl@macbook.lan>
References: <20250415153246.81688-1-roger.pau@citrix.com>
 <20250415153246.81688-2-roger.pau@citrix.com>
 <1c4f6304-a272-4fb2-8892-43118d080641@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <1c4f6304-a272-4fb2-8892-43118d080641@suse.com>

On Thu, Apr 17, 2025 at 09:43:09AM +0200, Jan Beulich wrote:
> On 15.04.2025 17:32, Roger Pau Monne wrote:
> > @@ -5115,7 +5115,6 @@ static void subpage_mmio_write_emulate(
> >  
> >      if ( test_bit(offset / MMIO_RO_SUBPAGE_GRAN, entry->ro_elems) )
> >      {
> > - write_ignored:
> >          gprintk(XENLOG_WARNING,
> >                  "ignoring write to R/O MMIO 0x%"PRI_mfn"%03x len %u\n",
> >                  mfn_x(mfn), offset, len);
> > @@ -5131,26 +5130,7 @@ static void subpage_mmio_write_emulate(
> >          return;
> >      }
> >  
> > -    addr += offset;
> > -    switch ( len )
> > -    {
> > -    case 1:
> > -        writeb(*(const uint8_t*)data, addr);
> > -        break;
> > -    case 2:
> > -        writew(*(const uint16_t*)data, addr);
> > -        break;
> > -    case 4:
> > -        writel(*(const uint32_t*)data, addr);
> > -        break;
> > -    case 8:
> > -        writeq(*(const uint64_t*)data, addr);
> > -        break;
> > -    default:
> > -        /* mmio_ro_emulated_write() already validated the size */
> > -        ASSERT_UNREACHABLE();
> > -        goto write_ignored;
> > -    }
> > +    write_mmio(addr + offset, data, len);
> >  }
> 
> Should probably have noticed this on v1 already: The log message is now lost
> for the write-ignored case. It looks easy enough to have the function return
> a boolean indicating "done", to retain original behavior here.

Hm, I didn't seem to me the message wants conserving, as it's
unreachable code.  I can try to add again, but we don't print such
message in other cases.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Apr 17 14:21:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 14:21:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.957794.1350821 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5Q6x-0001Gc-37; Thu, 17 Apr 2025 14:21:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 957794.1350821; Thu, 17 Apr 2025 14:21:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5Q6w-0001GV-W9; Thu, 17 Apr 2025 14:21:02 +0000
Received: by outflank-mailman (input) for mailman id 957794;
 Thu, 17 Apr 2025 14:21:01 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=uBz4=XD=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1u5Q6v-0001GJ-He
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 14:21:01 +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 2fb18b8a-1b97-11f0-9eb0-5ba50f476ded;
 Thu, 17 Apr 2025 16:21:00 +0200 (CEST)
Received: by mail-ed1-x531.google.com with SMTP id
 4fb4d7f45d1cf-5edc07c777eso1083917a12.3
 for <xen-devel@lists.xenproject.org>; Thu, 17 Apr 2025 07:21:00 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-64-225.play-internet.pl.
 [109.243.64.225]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5f36f527df0sm10294455a12.71.2025.04.17.07.20.58
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 17 Apr 2025 07:20: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: 2fb18b8a-1b97-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1744899660; x=1745504460; darn=lists.xenproject.org;
        h=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=enrzioY3czjAhs2bm/34Xhoi7NUiAezjrNcq1kLCXkU=;
        b=Xg0BI+Atx3eyVYF/bXb6ZTK5bw3xLVrwgICqumhSCa/bhR6aWJp8aB9yIyuS/BJGPI
         Gj7RO5KcaMZ+WROfJUa3K7vsRI91cpXIjhhr0WdGnz8YM/4vry3RBGcuJny8GjaFSHFl
         9Kz5DQChlRPN/t3w3yzVeCIuyxBDQHgXBRtvg3XmTyCBMKejE6QPONv6z8H5byb67J1L
         pYHV9T0oJBOH4U7WPmuPTht/2ZTP2gylTxvxMyUUe3T5TtBO2t4N52BLFoYANpiG8eNA
         V67ntLtKPy39mFFS93E41uGMgFmmCnre/d+6+OLNJ5wSrufHe+nePlxHBbnrQ0I/HpXd
         XPbA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744899660; x=1745504460;
        h=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=enrzioY3czjAhs2bm/34Xhoi7NUiAezjrNcq1kLCXkU=;
        b=JCLGbVVJUQ0grqkZ7V5k15hqs1JjUbQyyhomnTbbmRwFvAHYsEKUntwCQqaahlLVvQ
         jc5tPwWze/ZSZhyJmP2qDAgP+142vUTpznreLT3/2uYmjte+uP0b3oM7tpzDqOp2kiYy
         AGUurtwYBHwF/1XaRIXEggIarmH7opZzeqA4/s9bHCtg/UT7ikATMge8+IRmrdd0allS
         B9BscV90ToybW3+nyi0YZa80cKt0JDezElrioL7Lyfj688kLHTLfIlNHDxnBtAC1nVcP
         1RoFQazx8WMCXPjmmUKllbpq+tAwTWGznc61X7ii6oeiooUdRdbWUSS4iBfFkOkGCBaq
         MTMA==
X-Forwarded-Encrypted: i=1; AJvYcCWhSxhTQP+5IqmVpyX75MOxiGrDfnPvIn+g1EOeGNDL0R96Shm//B5lEV9wMyxm4GkKPZr/EoZl08Y=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwhFobtEIMl12b1RXdn19/ddc5X/kc3/IzUPhwrILbFyvkprAxB
	J5hqokyGyK4yTTUtcwvTzYj36IT6019XEZIa36JnRZNKtEM5mnZM
X-Gm-Gg: ASbGncv9MjHlpYwBnW11Shr0feZY4rM9H3TCxRCioImeBkJzR/XJS2RHJIVmcfwxknZ
	pveeUQuQYuPl6guGAo9jEy7Y9eqpOMJ/w0jeO5+CwCYVKgZuMGWYufO93wTW2O3rBDiVrn3m6kn
	GiCeybG2PDxXKLkWyrYsIS947WpQpwhNGDIAZDJmQtWANrXR3PbOATzf13Vx+XqPHFAtDJ2vlu6
	MAIAZfpXgWrbQ4BV49LNQUhP+q4JQEVOuK1pBL/Y+m7EIYcYEVgt9NJwHjFACX4ULq/w8qzALMx
	JgmENe2yMO/8Kkl8zvSPqU6t2v6U8GjJQDZWJpxRh2VuhJ8zU4Mf5hem+WN1zv+REh0so2douOh
	6ybEwunq+fS9gC8k7YPID0YGmBKc=
X-Google-Smtp-Source: AGHT+IHV1JjH0E/Wjx9orUOSb+DXbQibYpi19Sozj04LfYtM2XIdsCmXHm6ZmlCHaBWF4oJZ/cY/bQ==
X-Received: by 2002:a05:6402:35ca:b0:5f4:5dfa:995f with SMTP id 4fb4d7f45d1cf-5f4b748d8d4mr5975433a12.13.1744899659359;
        Thu, 17 Apr 2025 07:20:59 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------0KvSdusqjdNCsCLPd4IIFVZ0"
Message-ID: <bbfdc4a0-54f0-4a9d-aa6d-2cf85ec03411@gmail.com>
Date: Thu, 17 Apr 2025 16:20:58 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 03/14] xen/riscv: introduce ioremap()
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1744126720.git.oleksii.kurochko@gmail.com>
 <6d91eeabe2735de93bfcf2a2420e2059a8f35e52.1744126720.git.oleksii.kurochko@gmail.com>
 <84089b6d-efeb-4613-85b9-eb10d11d7338@suse.com>
 <f315bc11-c537-4dca-9e62-a6d3f02733e4@gmail.com>
 <6b226b72-11a4-4004-b42d-0e280de83539@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <6b226b72-11a4-4004-b42d-0e280de83539@suse.com>

This is a multi-part message in MIME format.
--------------0KvSdusqjdNCsCLPd4IIFVZ0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 4/15/25 1:02 PM, Jan Beulich wrote:
> On 15.04.2025 12:29, Oleksii Kurochko wrote:
>> On 4/10/25 5:13 PM, Jan Beulich wrote:
>>> On 08.04.2025 17:57, Oleksii Kurochko wrote:
>>>> Based on RISC-V unpriviliged spec ( Version 20240411 ):
>>>> ```
>>>> For implementations that conform to the RISC-V Unix Platform Specification,
>>>> I/O devices and DMA operations are required to access memory coherently and
>>>> via strongly ordered I/O channels. Therefore, accesses to regular main memory
>>>> regions that are concurrently accessed by external devices can also use the
>>>> standard synchronization mechanisms. Implementations that do not conform
>>>> to the Unix Platform Specification and/or in which devices do not access
>>>> memory coherently will need to use mechanisms
>>>> (which are currently platform-specific or device-specific) to enforce
>>>> coherency.
>>>>
>>>> I/O regions in the address space should be considered non-cacheable
>>>> regions in the PMAs for those regions. Such regions can be considered coherent
>>>> by the PMA if they are not cached by any agent.
>>>> ```
>>>> and [1]:
>>>> ```
>>>> The current riscv linux implementation requires SOC system to support
>>>> memory coherence between all I/O devices and CPUs. But some SOC systems
>>>> cannot maintain the coherence and they need support cache clean/invalid
>>>> operations to synchronize data.
>>>>
>>>> Current implementation is no problem with SiFive FU540, because FU540
>>>> keeps all IO devices and DMA master devices coherence with CPU. But to a
>>>> traditional SOC vendor, it may already have a stable non-coherency SOC
>>>> system, the need is simply to replace the CPU with RV CPU and rebuild
>>>> the whole system with IO-coherency is very expensive.
>>>> ```
>>>>
>>>> and the fact that all known ( to me ) CPUs that support the H-extension
>>>> and that ones is going to be supported by Xen have memory coherency
>>>> between all I/O devices and CPUs, so it is currently safe to use the
>>>> PAGE_HYPERVISOR attribute.
>>>> However, in cases where a platform does not support memory coherency, it
>>>> should support CMO extensions and Svpbmt. In this scenario, updates to
>>>> ioremap will be necessary.
>>>> For now, a compilation error will be generated to ensure that the need to
>>>> update ioremap() is not overlooked.
>>>>
>>>> [1]https://patchwork.kernel.org/project/linux-riscv/patch/1555947870-23014-1-git-send-email-guoren@kernel.org/
>>> But MMIO access correctness isn't just a matter of coherency. There may not
>>> be any caching involved in most cases, or else you may observe significantly
>>> delayed or even dropped (folded with later ones) writes, and reads may be
>>> serviced from the cache instead of going to actual MMIO. Therefore ...
>>>
>>>> --- a/xen/arch/riscv/Kconfig
>>>> +++ b/xen/arch/riscv/Kconfig
>>>> @@ -15,6 +15,18 @@ config ARCH_DEFCONFIG
>>>>    	string
>>>>    	default "arch/riscv/configs/tiny64_defconfig"
>>>>    
>>>> +config HAS_SVPBMT
>>>> +	bool
>>>> +	help
>>>> +	  This config enables usage of Svpbmt ISA-extension ( Supervisor-mode:
>>>> +	  page-based memory types).
>>>> +
>>>> +	  The memory type for a page contains a combination of attributes
>>>> +	  that indicate the cacheability, idempotency, and ordering
>>>> +	  properties for access to that page.
>>>> +
>>>> +	  The Svpbmt extension is only available on 64-bit cpus.
>>> ... I kind of expect this extension (or anything else that there might be) will need
>>> making use of.
>> In cases where the Svpbmt extension isn't available, PMA (Physical Memory Attributes)
>> is used to control which memory regions are cacheable, non-cacheable, readable, writable,
>> etc. PMA is configured in M-mode by the firmware (e.g., OpenSBI), as is done in Andes
>> cores, or it can be fixed at design time, as in SiFive cores.
> How would things work if there was a need to map a RAM page uncacheable (via
> ioremap() or otherwise)?

My understanding is that Svpbmt is only needed when someone wants to change the memory
attribute of a page set by PMA.

The question is if non-cacheable RAM page is really needed if we have a coherency?

~ Oleksii

--------------0KvSdusqjdNCsCLPd4IIFVZ0
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 4/15/25 1:02 PM, Jan Beulich wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:6b226b72-11a4-4004-b42d-0e280de83539@suse.com">
      <pre wrap="" class="moz-quote-pre">On 15.04.2025 12:29, Oleksii Kurochko wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">
On 4/10/25 5:13 PM, Jan Beulich wrote:
</pre>
        <blockquote type="cite">
          <pre wrap="" class="moz-quote-pre">On 08.04.2025 17:57, Oleksii Kurochko wrote:
</pre>
          <blockquote type="cite">
            <pre wrap="" class="moz-quote-pre">Based on RISC-V unpriviliged spec ( Version 20240411 ):
```
For implementations that conform to the RISC-V Unix Platform Specification,
I/O devices and DMA operations are required to access memory coherently and
via strongly ordered I/O channels. Therefore, accesses to regular main memory
regions that are concurrently accessed by external devices can also use the
standard synchronization mechanisms. Implementations that do not conform
to the Unix Platform Specification and/or in which devices do not access
memory coherently will need to use mechanisms
(which are currently platform-specific or device-specific) to enforce
coherency.

I/O regions in the address space should be considered non-cacheable
regions in the PMAs for those regions. Such regions can be considered coherent
by the PMA if they are not cached by any agent.
```
and [1]:
```
The current riscv linux implementation requires SOC system to support
memory coherence between all I/O devices and CPUs. But some SOC systems
cannot maintain the coherence and they need support cache clean/invalid
operations to synchronize data.

Current implementation is no problem with SiFive FU540, because FU540
keeps all IO devices and DMA master devices coherence with CPU. But to a
traditional SOC vendor, it may already have a stable non-coherency SOC
system, the need is simply to replace the CPU with RV CPU and rebuild
the whole system with IO-coherency is very expensive.
```

and the fact that all known ( to me ) CPUs that support the H-extension
and that ones is going to be supported by Xen have memory coherency
between all I/O devices and CPUs, so it is currently safe to use the
PAGE_HYPERVISOR attribute.
However, in cases where a platform does not support memory coherency, it
should support CMO extensions and Svpbmt. In this scenario, updates to
ioremap will be necessary.
For now, a compilation error will be generated to ensure that the need to
update ioremap() is not overlooked.

[1]<a class="moz-txt-link-freetext" href="https://patchwork.kernel.org/project/linux-riscv/patch/1555947870-23014-1-git-send-email-guoren@kernel.org/">https://patchwork.kernel.org/project/linux-riscv/patch/1555947870-23014-1-git-send-email-guoren@kernel.org/</a>
</pre>
          </blockquote>
          <pre wrap="" class="moz-quote-pre">But MMIO access correctness isn't just a matter of coherency. There may not
be any caching involved in most cases, or else you may observe significantly
delayed or even dropped (folded with later ones) writes, and reads may be
serviced from the cache instead of going to actual MMIO. Therefore ...

</pre>
          <blockquote type="cite">
            <pre wrap="" class="moz-quote-pre">--- a/xen/arch/riscv/Kconfig
+++ b/xen/arch/riscv/Kconfig
@@ -15,6 +15,18 @@ config ARCH_DEFCONFIG
  	string
  	default "arch/riscv/configs/tiny64_defconfig"
  
+config HAS_SVPBMT
+	bool
+	help
+	  This config enables usage of Svpbmt ISA-extension ( Supervisor-mode:
+	  page-based memory types).
+
+	  The memory type for a page contains a combination of attributes
+	  that indicate the cacheability, idempotency, and ordering
+	  properties for access to that page.
+
+	  The Svpbmt extension is only available on 64-bit cpus.
</pre>
          </blockquote>
          <pre wrap="" class="moz-quote-pre">... I kind of expect this extension (or anything else that there might be) will need
making use of.
</pre>
        </blockquote>
        <pre wrap="" class="moz-quote-pre">
In cases where the Svpbmt extension isn't available, PMA (Physical Memory Attributes)
is used to control which memory regions are cacheable, non-cacheable, readable, writable,
etc. PMA is configured in M-mode by the firmware (e.g., OpenSBI), as is done in Andes
cores, or it can be fixed at design time, as in SiFive cores.
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
How would things work if there was a need to map a RAM page uncacheable (via
ioremap() or otherwise)?</pre>
    </blockquote>
    <pre>My understanding is that Svpbmt is only needed when someone wants to change the memory
attribute of a page set by PMA.

The question is if non-cacheable RAM page is really needed if we have a coherency?

~ Oleksii
</pre>
  </body>
</html>

--------------0KvSdusqjdNCsCLPd4IIFVZ0--


From xen-devel-bounces@lists.xenproject.org Thu Apr 17 14:22:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 14:22:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.957804.1350831 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5Q86-000245-Bx; Thu, 17 Apr 2025 14:22:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 957804.1350831; Thu, 17 Apr 2025 14: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 1u5Q86-00023y-8X; Thu, 17 Apr 2025 14:22:14 +0000
Received: by outflank-mailman (input) for mailman id 957804;
 Thu, 17 Apr 2025 14: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=nsoM=XD=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u5Q85-00023s-4w
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 14:22:13 +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 59cac851-1b97-11f0-9ffb-bf95429c2676;
 Thu, 17 Apr 2025 16:22:11 +0200 (CEST)
Received: by mail-wr1-x435.google.com with SMTP id
 ffacd0b85a97d-39ee57c0b8cso858324f8f.0
 for <xen-devel@lists.xenproject.org>; Thu, 17 Apr 2025 07:22:11 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 af79cd13be357-7c7a894242asm1176275085a.21.2025.04.17.07.22.08
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 17 Apr 2025 07:22: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: 59cac851-1b97-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744899730; x=1745504530; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=PpRiUxxVaEuE2HSoJN29KkDYD/p+86L1y1Xdcz4dohA=;
        b=RRuXLDx09DO5eMaTMIpwUpxi+l6GNmR03KXG1fk2QgZdgN7oEgHuMIjB/TCko+QADd
         6ISXpaA1TzWJ7kq6eMZoVj9gCKLc2eb7xwIjcdEGMG0e3hH9pt9LrWijDBnjsdK0UslO
         mK8ngziFEPWF9OmrLVETD54pyGz3g0MOLIeILyyfTahTXVwAxcJ1bWyFyCsYeLr6vBf5
         Q3MTtZRr4WnQmrlzAUZsMsL8onh97w306/hdDo3GBBz1n5NQNFmVjcC6uTzmuG5BlolS
         UkpK2VUXrY0My+QRNufP9EBOHsDbb3ehlfWs6cbbMUss/m6BXKPkPJZGV59HmvVzOIHk
         x9ZQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744899730; x=1745504530;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=PpRiUxxVaEuE2HSoJN29KkDYD/p+86L1y1Xdcz4dohA=;
        b=vke09ERGXerHZn+LfeTMzuUBNcWHaqGHubLd3wHrRheRq73FpA+VjLZdiPTuifT1m5
         ultAxGePTgWDEPTTdZmAQZJ4KX7q150sGSl2dmLn6eFBbh74I1CDsbNsSFI61jdZCrOP
         uUHo6GfVgl9Taimw9pZBjnEBH04Pa1aMdj/XBcfARPVJ9EqYT/7FwzNQU3rmFVZ+w/lR
         Gn2rOEhO9wqBrRzhG413n4QWi0EeYNrS7li+fe+5/klNiJd+gWItVCl4PBBbQjkUeiuZ
         uAo2xAiHkEAwjvDkRxcpobH8U2kBu6Z3oF4YHXEBJ922HJICfyoBGlXqhwS1f2ZB6XhQ
         gWIQ==
X-Forwarded-Encrypted: i=1; AJvYcCVaUM0k+GCzEhVrMH4+wsYWREwkzM+A/BQTK8xJMlrEYhOOmHFplAlt4jXd2ssLOZVZH3Q9z8SwLDk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyNBxkEwWlbKf3NAOY1pwUQkNS3+pfkkAw52qQX1knKaShzeYgG
	T8rB1R3ENp5Rbn3k0B+h9flact4Cz29ipqjIhWuygbSPiw0krpQeXGqvFRAMBw==
X-Gm-Gg: ASbGncu7HC5Ytf8MYSvPoPdKg16BPa152wa2Qo9BvHNKORw48olAt29FdTuc+AW8FL6
	3+nIqGXvL9wYuHWxeAfym/WqjY/ilFfTZ3HtTiux6omyWK+gbQ4RP/NI05s14gBVjtxcpww6vMj
	xcQzWZygibc/yWLuYzZPoW4eHqrGIYJmhQtt/t8cor1YpCe0OnNQb4rjGzy2BkuxWhSUywn0yQ8
	Fi9WiEfQ4vAHxnK2uaSjbSrwgebDWnz60PyfLBqxuIkDy142oE30Ut30qdNEjuMyin/GQoCAsPH
	SU8MJr8UbwdR1jUIZcjSuSWuJioceUENaWEiV+WSyCIiysLRuDB/W9XfTg/lLhlJI+vcp9iNm/3
	RDLI6RF0oMNPxZRpvomH3A/Wopw==
X-Google-Smtp-Source: AGHT+IHvy838ePYeIB9GDBQ5EemhJxOLcvp82KteNM0EqwJplf+411esDyUNCmNKAKj08MWkDHllsQ==
X-Received: by 2002:a05:6000:2505:b0:39a:c9fe:f069 with SMTP id ffacd0b85a97d-39ee5b373d3mr5231230f8f.30.1744899730441;
        Thu, 17 Apr 2025 07:22:10 -0700 (PDT)
Message-ID: <0e451481-9543-4c35-b8fd-886ff838b2fd@suse.com>
Date: Thu, 17 Apr 2025 16:22:06 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/4] xen/io: provide helpers for multi size MMIO
 accesses
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20250415153246.81688-1-roger.pau@citrix.com>
 <20250415153246.81688-2-roger.pau@citrix.com>
 <1c4f6304-a272-4fb2-8892-43118d080641@suse.com>
 <aAENSnhKDQHQERgl@macbook.lan>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <aAENSnhKDQHQERgl@macbook.lan>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 17.04.2025 16:16, Roger Pau Monné wrote:
> On Thu, Apr 17, 2025 at 09:43:09AM +0200, Jan Beulich wrote:
>> On 15.04.2025 17:32, Roger Pau Monne wrote:
>>> @@ -5115,7 +5115,6 @@ static void subpage_mmio_write_emulate(
>>>  
>>>      if ( test_bit(offset / MMIO_RO_SUBPAGE_GRAN, entry->ro_elems) )
>>>      {
>>> - write_ignored:
>>>          gprintk(XENLOG_WARNING,
>>>                  "ignoring write to R/O MMIO 0x%"PRI_mfn"%03x len %u\n",
>>>                  mfn_x(mfn), offset, len);
>>> @@ -5131,26 +5130,7 @@ static void subpage_mmio_write_emulate(
>>>          return;
>>>      }
>>>  
>>> -    addr += offset;
>>> -    switch ( len )
>>> -    {
>>> -    case 1:
>>> -        writeb(*(const uint8_t*)data, addr);
>>> -        break;
>>> -    case 2:
>>> -        writew(*(const uint16_t*)data, addr);
>>> -        break;
>>> -    case 4:
>>> -        writel(*(const uint32_t*)data, addr);
>>> -        break;
>>> -    case 8:
>>> -        writeq(*(const uint64_t*)data, addr);
>>> -        break;
>>> -    default:
>>> -        /* mmio_ro_emulated_write() already validated the size */
>>> -        ASSERT_UNREACHABLE();
>>> -        goto write_ignored;
>>> -    }
>>> +    write_mmio(addr + offset, data, len);
>>>  }
>>
>> Should probably have noticed this on v1 already: The log message is now lost
>> for the write-ignored case. It looks easy enough to have the function return
>> a boolean indicating "done", to retain original behavior here.
> 
> Hm, I didn't seem to me the message wants conserving, as it's
> unreachable code.  I can try to add again, but we don't print such
> message in other cases.

This sub-page stuff is special, but I wouldn't mind if we dropped the
message altogether. The "unreachable code" argument is slightly weak,
as it's in particular when the assumption is violated that we would
want to know about it.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Apr 17 14:22:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 14:22:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.957805.1350841 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5Q8B-0002Ju-LO; Thu, 17 Apr 2025 14:22:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 957805.1350841; Thu, 17 Apr 2025 14:22: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 1u5Q8B-0002Jn-ID; Thu, 17 Apr 2025 14:22:19 +0000
Received: by outflank-mailman (input) for mailman id 957805;
 Thu, 17 Apr 2025 14:22: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=F8tB=XD=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1u5Q8A-0002J1-FW
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 14:22:18 +0000
Received: from NAM12-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam12on20616.outbound.protection.outlook.com
 [2a01:111:f403:2417::616])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5c800108-1b97-11f0-9eb0-5ba50f476ded;
 Thu, 17 Apr 2025 16:22:16 +0200 (CEST)
Received: from BN9PR03CA0804.namprd03.prod.outlook.com (2603:10b6:408:13f::29)
 by MN6PR12MB8589.namprd12.prod.outlook.com (2603:10b6:208:47d::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.34; Thu, 17 Apr
 2025 14:22:12 +0000
Received: from BN3PEPF0000B373.namprd21.prod.outlook.com
 (2603:10b6:408:13f:cafe::22) by BN9PR03CA0804.outlook.office365.com
 (2603:10b6:408:13f::29) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.18 via Frontend Transport; Thu,
 17 Apr 2025 14:22:12 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 BN3PEPF0000B373.mail.protection.outlook.com (10.167.243.170) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8678.4 via Frontend Transport; Thu, 17 Apr 2025 14:22:11 +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, 17 Apr
 2025 09:22:09 -0500
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; Thu, 17 Apr
 2025 09:22:09 -0500
Received: from [172.23.161.73] (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, 17 Apr 2025 09:22:07 -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: 5c800108-1b97-11f0-9eb0-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=NsXc6mBh6sMW8zKUJTeNqcdE9RzdflN5OffvCXvokJlcTpCmiKNEtW+mtUv5ZIKBCqOzu8GZqjzy3Xkgjd2iO1SUgKKtyV3VbbCEvKaIQsE/JRsfmowoAn89iWkorUytSkfLYF0uxLyS4fNJGwxWvL2G5wFQ1rcXaiQLgGBgum3xYOyiknMgjW8/lmZl0DaMCejKX3awwwCh+3s3sW7jpx7PC/MvDiu8evsiECu4z5Diyrqgdw5FQdPfQ3t7ZWYla7y5YX//MHwhGfDhKmw53NWR7HhTnI1KmHUkZOFvMyjttP78EndcHVH2ZmuI8ooSPWLUk54xELneS1Sy33D46w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=5qCHWFQ0DFfzt5um3E1dhf8yXRt+EDDNxTb26bpKz2I=;
 b=wEnfbKhAWes/dIbIOHyxT1g8fsh2Nf7hssGuuP9Yq00XNfbihPzyNkRcFhalCrsyzQ/yhI5oXCNzZ2n/nPrK8mOmpcmvKWuj0wNi0Spum2wpYizLLXGOyLN/KiDdpGofMW1V5b2eQqkKjPg8OV9318827XwAjJ5ckr4+3Xs+kVQIdVvtYAhXo3P785Vx6PLOZdeIcTaHPdKbwcyXX37MP1qKq3TNIT58c0pFEDA0iLaSBWGnFcxrzA3N/PjMQoeSM7IgXWsQZJ8VsW+F+TcY/eWn0JPaFRs5bToiRWpAwhELoN0Nka4+m3oF+l9evks1f6mhZsuKMT1e8ki7HFnJOQ==
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=5qCHWFQ0DFfzt5um3E1dhf8yXRt+EDDNxTb26bpKz2I=;
 b=Qtq4rgTX5jQX6rMJO9aPzZ2gCWCdNZrioSsc/leCkp/6ls+KcNZVlUVK6KRCQvQO+Xrc8qFg1Y2MThmKhGFlRcBh89F1ITcBPzHspiAM1e8/OVVHZLrGUHHK0PUcso5F0rdHuKE+Gh0N4irJIKjFNZ2+5SOnGI7CwxkkmzMuioU=
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: <64116bdc-9762-4b06-85c7-d269ef4c9ecd@amd.com>
Date: Thu, 17 Apr 2025 10:22:10 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v19 2/3] vpci: acquire d->pci_lock in I/O handlers
To: Jan Beulich <jbeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
	<julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, Michal Orzel
	<michal.orzel@amd.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>, <xen-devel@lists.xenproject.org>
References: <20250415165404.435506-1-stewart.hildebrand@amd.com>
 <20250415165404.435506-3-stewart.hildebrand@amd.com>
 <ab982710-0172-472b-b3eb-07914d6579cf@suse.com>
Content-Language: en-US
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
In-Reply-To: <ab982710-0172-472b-b3eb-07914d6579cf@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN3PEPF0000B373:EE_|MN6PR12MB8589:EE_
X-MS-Office365-Filtering-Correlation-Id: 97928897-4d4c-49d1-b734-08dd7dbb3e3c
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|376014|1800799024|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?RjZLeDh5c3hnSXg0bzdMT3lPbUVMZTBPY3c4VXpNakNNU21vYS9ZMTdxTXJC?=
 =?utf-8?B?bERWNHhuZXVHUEp0azNobFd2NUFDYXpaM01wUGdNNE1qYVJUclJZVG9XcWx1?=
 =?utf-8?B?VEtuc003YXlNVDcvSUlmcGJhTm84L1E4Yzgwd2kzcjVJZll0KzBRUHdqTWdI?=
 =?utf-8?B?Uk52blhjZ1dDa0pMOStWYnhtWHl4alBqMzFSa2VReFlGb3RIRTFoYmlHZWFV?=
 =?utf-8?B?bDdiWFRwakEydlFaTHpKK3VVWEZxT0M0d2I2dCt1eGhkaWs4cmdZQk15WXZC?=
 =?utf-8?B?dDNXUzIyeXJIdVZ4dVJhQ3hRSWg2aXo1MTZMSm53OVFSZTFGVXJCdGVhWXFx?=
 =?utf-8?B?RldBU1BmYy9XbldlL0lzSUdrNkNXeGt6dzBOYXZicTAwVDY0eVA5Z1B2RFJz?=
 =?utf-8?B?aTJ6ZjdOai9kdFltczJUaUNmRnBsMFdtODh1c1h6b3pSNmg1Qkk1QVBsZExP?=
 =?utf-8?B?dkZsRGZONTByRWhrNi9zN1ZNZDdnVkRBQlVuaW9Ec3F5ZTJKTVdGYVRUOEYy?=
 =?utf-8?B?QkllYlhRUVJHOU1wMHJKdUt2KytjczYvKys5YVppcHppTUZ5RGhCY1QzQThy?=
 =?utf-8?B?d3p2Q0w3L2gwSUtVZkxSVDViN2NjVFV3eGJoK090N3gwcWFCYzFGQ2oxTFcx?=
 =?utf-8?B?enk5K09OSEhWV1ZEODV0Z0tFNE0wdW04L3h2Y2VFT0hCUy9oMUdXVkhNOTI2?=
 =?utf-8?B?TzluSWhRbWxQekVwZDlLSmdnRDVwNG9EZGZvZXJSTzYwdjI1SjNkSWdOa0NK?=
 =?utf-8?B?M2JPa3R3d2FjWHlwNDIrUUV5eTBkZ253aEhyWFpEZURGc2pNbkQ3TnBvL0Zi?=
 =?utf-8?B?NUhlSmlJb2R5bCtid3d3b1JPaDlFeWxGYk5DNUNMd0xCTGJzWXVHR09Vak10?=
 =?utf-8?B?cnNHOFNnVS9LTmQ3Z08zU3F5L0dybDYxS2FKUUh1d3Y5anBVeG5maVByZjZw?=
 =?utf-8?B?aEtmUkJzdVNwRnRXd1NGRFhVMy94V2tHRVpHZzBrR0N3L0Y3MGg4R3ZIYWtm?=
 =?utf-8?B?OWVCQUh3RTBwTDVSR2hpSmtZU2c1NVZ3UGdqRzJ0cmRpcnEwTFRqY05nMHVM?=
 =?utf-8?B?N3ZoWUZVdU9vcCtRekRLbWFjbzlrdExaZFlYYzVYaEF0TTdLMHpXNDBhUjBi?=
 =?utf-8?B?c1RNdFdRbEl0UzJhUGZjc2Roem5Kd2lteWlLR0I0cWFETTB4QU45bUV4VWlM?=
 =?utf-8?B?dDNObWZrQlQrWlhQUkhnaEdnTGM1ZmJsZDBQNDVZNWVnY2xoM2FVeE9RZnZt?=
 =?utf-8?B?cTRLSVFFVTJCb1FzcEJjeWxXUFMrenQrTzY1d1Z2aENTemIvNm9vVDZRVG1q?=
 =?utf-8?B?a2NzWVNTRnc4c2ZCaC9LUnpUd2RMbWMwYmlhbWx4TWNMYVJxV3ZGUWdvOS95?=
 =?utf-8?B?MnZqem43dm5GMWo1L2diWStZa0JJSTcyaWU4MXNtVGI1NXdMSTRYWEE2Y3d3?=
 =?utf-8?B?TW96U3FRQ3U4V2cvZlVQWU5UU2ZXd2Y4b0N5eER4akEyUEtoZzA0SUJ6clZN?=
 =?utf-8?B?MTYyUVc1VldoQ1c2QTZIem56RFFSRWg2ajJxcXpCaU1pQ2NGdVhiUThDaHNR?=
 =?utf-8?B?T2hxbEoyMk8zVHJUdllYdkZwTzZLM3Y1TW1kV0tDd2xYM05nKzFHaXhLMzhK?=
 =?utf-8?B?ZWNvUW5Gakt2SmxDbTRuN3E3K3UrWGNtdkRsVFRBRVlQbnJKUnhQeEFTNDJV?=
 =?utf-8?B?R1hCZVdQSERqQkt6MzdVUXRUK2trQytnZ3BZdlp6bkNzVjFXTWYrY1pwY0Q5?=
 =?utf-8?B?anovWUlGOWxqdzcxaXZha2sxZWZPZ0xKOE5uMTlVTEkrQjArY0NCKy9jSVZr?=
 =?utf-8?B?clNyM21oL2hYS1JnWmlSN1VqT2YzN0VrWE1xZnBtTU9waWNFTjB5ekpPd2o4?=
 =?utf-8?B?NjNQZkJJMEJEai9wZjZBaWJPK3BzbTRTWS9DUzdYdWFORlRPSG9EUFZhc0xj?=
 =?utf-8?B?L0dnWWVhMjE2M0hQYUc2VnljZlVqU29qYVhKSXZ4ZW5VS0lWclN4UUZhTFpQ?=
 =?utf-8?B?VHZNYkU5ZytnS3k3a2J6OFpOMTdFSzlVZDJTbjl2b0JZR2o0ZWNNUWtUUEtD?=
 =?utf-8?Q?KLJNnO?=
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)(376014)(1800799024)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Apr 2025 14:22:11.2564
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 97928897-4d4c-49d1-b734-08dd7dbb3e3c
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:
	BN3PEPF0000B373.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN6PR12MB8589

On 4/16/25 11:27, Jan Beulich wrote:
> On 15.04.2025 18:54, Stewart Hildebrand wrote:
>> In preparation for translating virtual PCI bus topology (where a pdev
>> lookup will be needed in the vPCI I/O handlers), acquire d->pci_lock in
>> the vPCI I/O handlers.
> 
> I find it concerning that the locked regions (it's a domain-wide lock
> after all) are further grown.

Hm. Right. Another approach may be to call
vpci_translate_virtual_device from within locked context of
vpci_{read,write}.


From xen-devel-bounces@lists.xenproject.org Thu Apr 17 14:24:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 14:24:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.957829.1350850 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5QAc-0003Do-1R; Thu, 17 Apr 2025 14:24:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 957829.1350850; Thu, 17 Apr 2025 14: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 1u5QAb-0003Dh-V6; Thu, 17 Apr 2025 14:24:49 +0000
Received: by outflank-mailman (input) for mailman id 957829;
 Thu, 17 Apr 2025 14:24:48 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=WJ1x=XD=bounce.vates.tech=bounce-md_30504962.68010f2c.v1-7071b087b5af41eea43e2f018f894983@srs-se1.protection.inumbo.net>)
 id 1u5QAZ-0003Db-UA
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 14:24:47 +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 b5c7d2e0-1b97-11f0-9eb0-5ba50f476ded;
 Thu, 17 Apr 2025 16:24:46 +0200 (CEST)
Received: from pmta08.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail128-130.atl41.mandrillapp.com (Mailchimp) with ESMTP id
 4ZdgC03bKKzS62Gkj
 for <xen-devel@lists.xenproject.org>; Thu, 17 Apr 2025 14:24:44 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 7071b087b5af41eea43e2f018f894983; Thu, 17 Apr 2025 14:24: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: b5c7d2e0-1b97-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1744899884; x=1745169884;
	bh=uU2qQmHUgzWMJY0PgEiFWGMmWa82Cd+ekDeWVGOWNAc=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=gnDsh8HUA95QvACQy5XLRY3u/JG+KLPnwi7pLhTDsEWMBgWBSOuldb3rfmeGV0cX5
	 8Jry4bwx4qkDMGOkLFtO9OMJVRMHuyuY2i6zBgwYPV8b99mvFzMYjTQH0k9ydrtpOw
	 Yajiv2gvITk1RSc3lmdBJX0VydxtyAHgmpxH3+I9URWUcIjzIh4M1IQGo+W+1EwwZe
	 OqEl6En1gt2NGd2WxrdGl1E4lg5hDDiIjJvk+kBX8Uqld+tuNp2AFlLwZo0tR0g92J
	 2dDDy5f7FyDt9wyoctiCJv60dKUh3esCslFYdqDejNEg+vNceS7zmN8r2keAHK4g/W
	 8srdUl7ZOYGdg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1744899884; x=1745160384; i=teddy.astie@vates.tech;
	bh=uU2qQmHUgzWMJY0PgEiFWGMmWa82Cd+ekDeWVGOWNAc=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=yrO6aXH2fAFZHPhZHOBx9Sz2b3GLX0/ODvBatPb/Mu41Dwxu905bI308S97H8QDgU
	 l5qLyKE2FtIHHmtJpvhbsuvFJRMSqRuNFd8B8Ixk72dLzs9S8oT6Wf/BdAg9TlChiP
	 6cJXhIBesghHG1PqII/4AytRKR4dajsH/fZxnHDfjrr862ao0EXa+F6MGK6ABgXvNL
	 Zr32w787ARBwWFVllH9aHeR8FF8p3kB96fAz/yq7JbeB5YLjFuTYMc0MWbadexi12i
	 OV2TKjndyFeQspX/Zs6MfYS5BpiTjG0jxnpQjwYnW3ZgazEjNqHNcT/cimHwkDpY38
	 lmYu5K2H7XDJQ==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[PATCH]=20vmx:=20Don't=20open-code=20vmresume/vmlaunch=20instructions?=
X-Mailer: git-send-email 2.47.2
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1744899883537
To: security@xenproject.org, 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: <2d9480b75c80d49952812769f283a220c1753571.1744899753.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.7071b087b5af41eea43e2f018f894983?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250417:md
Date: Thu, 17 Apr 2025 14:24:44 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

binutils 2.25 has support for assembling vmresume/vmlaunch
instructions, so we don't need to open-code the byte sequences
for these opcodes anymore.

Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
---
 xen/arch/x86/hvm/vmx/entry.S | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/xen/arch/x86/hvm/vmx/entry.S b/xen/arch/x86/hvm/vmx/entry.S
index 6aaeb28a5b..2bfee715b3 100644
--- a/xen/arch/x86/hvm/vmx/entry.S
+++ b/xen/arch/x86/hvm/vmx/entry.S
@@ -21,9 +21,6 @@
 #include <asm/asm_defns.h>
 #include <asm/page.h>
 
-#define VMRESUME     .byte 0x0f,0x01,0xc3
-#define VMLAUNCH     .byte 0x0f,0x01,0xc2
-
 FUNC(vmx_asm_vmexit_handler)
         SAVE_ALL
 
@@ -166,11 +163,11 @@ UNLIKELY_END(realmode)
         jns  .Lvmx_launch
 
 /*.Lvmx_resume:*/
-        VMRESUME
+        vmresume
         jmp  .Lvmx_vmentry_fail
 
 .Lvmx_launch:
-        VMLAUNCH
+        vmlaunch
 
 .Lvmx_vmentry_fail:
         sti
-- 
2.47.2



Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Thu Apr 17 14:24:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 14:24:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.957830.1350861 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5QAi-0003Sf-8Z; Thu, 17 Apr 2025 14:24:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 957830.1350861; Thu, 17 Apr 2025 14:24:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5QAi-0003SY-5Q; Thu, 17 Apr 2025 14:24:56 +0000
Received: by outflank-mailman (input) for mailman id 957830;
 Thu, 17 Apr 2025 14:24: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=nsoM=XD=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u5QAh-0003Db-Gp
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 14:24:55 +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 bb2ec953-1b97-11f0-9eb0-5ba50f476ded;
 Thu, 17 Apr 2025 16:24:54 +0200 (CEST)
Received: by mail-wr1-x435.google.com with SMTP id
 ffacd0b85a97d-39c14016868so853860f8f.1
 for <xen-devel@lists.xenproject.org>; Thu, 17 Apr 2025 07:24:54 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 af79cd13be357-7c7a896b04esm1180700385a.63.2025.04.17.07.24.51
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 17 Apr 2025 07:24:53 -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: bb2ec953-1b97-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744899894; x=1745504694; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=0rwqXzlXFaWnSYdyRY+UHDHRCNQa4yZUsXRLpnF+5rA=;
        b=BMbJpg4Zi6QwiOOUjSH5WJN+GTW5pUczSOP0DWJSubRf2cqWuLsHYDvHGMeHGKjx5o
         u0GwFy3wMzOLxfp2CWyzSqp+0a4SLVXPq7m9VKrWYA/KlcDBx2X/or3PdHypd1cUQK/B
         O7bl5eIYXPZF4KzujfmlJTLRixiEnuKDaeFSuMzQM5Gv2KSdrWX+r4SeiwkRMOKPZPfb
         8F290k061imPNLtCwleBylivQL/4hM8JJJUVsRfBRJ62QAViF8hQGa5IRCUXbdktz6zD
         jbD3gfT6MV3XAZ1O7IfVxApCCY303fAazpu8U8SBuJPfu2uQ09L7JNfA0fsgCy3ioQAZ
         lQdg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744899894; x=1745504694;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=0rwqXzlXFaWnSYdyRY+UHDHRCNQa4yZUsXRLpnF+5rA=;
        b=Xyh1dR+XwuZjdyJwGRPPoTmGNQ+wqUrOdGqFg/JCgy2ohoDmUDCY8FT8ZjKMxqJiYm
         5dUpnJjjx398rb6nf/4jFDoXJ4tHVzKpClEYyMjl+6EYQunhdgtelZ2bNRvgRLQvU/X4
         7CDzfyRplb/QCwZzaV8Tx40RN5CB+W4ijx+f+pF7wP4RWZ4DiqgY9Da2u2gBx9gRqdB3
         Q+lPmljJsho0/tShP0OY0piruIh4U02OxkrqoMgn7Kgy/l53DKogfsWlFEAIXnO+WmCY
         fdiZOkD2PXgCzFUEFL8H3P08hdR3gmUZZtRvAUF8sTpEK0A5UizGGIt8UEncSLhDr1GP
         qArw==
X-Forwarded-Encrypted: i=1; AJvYcCVHdjujK98vehRTmt4XsxJoyc0lbTq7QO1gCaV0ZvDETy2YDVJiAa2ac1blrE8U0e+78I4LOdYvOyA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxyO33tslnrsLKVIpg6HlUbkEtbmo1hEsG1+Su5HbNmtHYFxqzX
	elKGYTDZ0Gg8FcaBQ+v8DxOGixa7sTVtTc7m5Xj7T4CcFe0n218vxFnU6KExOg==
X-Gm-Gg: ASbGncvPTf0LjAxIR0p6LoeWY6PpesfOVo4AABL7/LSy8rOnF3rZbZh82MWpxpsjuwj
	2QaRKqIbl5W/kfQ4IqqYQHWnjioWnjvAzmmXXiCZkWz0CgCWdwEEIv4DxQK4OM2AfmkG4dsObMk
	NR8+225uuVfsFoxWpjMLdoCFCC5D/w35SvH7SLRMuaSa+JyRUVdMQudjAt+JkIlkhg5yv5ZEcuj
	JmDC6bqbCwFuRNGItt9cDbCZXr3r5vWOXqOYLucO3zT2zFzb30hyHFxvNOTQLc3cDei3avRCk7v
	dAUn7qLBCMXhOKplfxvYPIVa1zZcBm1huGm2EMNt3bqLi3ZLERdvG/+EicWjOsswnnRc24GwESd
	u+/u0gw5+PV4Ru5gBTH1jT7z2ww==
X-Google-Smtp-Source: AGHT+IHv/XmX55791G2Ds/lz/6K+H+6CVnWrwKFMaPGOyRV4aJmxZ8xS73W2tZYZx9zvs9e35dHMoQ==
X-Received: by 2002:a05:6000:1a8e:b0:39a:e71d:ee34 with SMTP id ffacd0b85a97d-39ee5b9e3aamr4902555f8f.37.1744899893805;
        Thu, 17 Apr 2025 07:24:53 -0700 (PDT)
Message-ID: <a71db245-5b0b-435e-8e58-cb43c5162862@suse.com>
Date: Thu, 17 Apr 2025 16:24:50 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 03/14] xen/riscv: introduce ioremap()
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1744126720.git.oleksii.kurochko@gmail.com>
 <6d91eeabe2735de93bfcf2a2420e2059a8f35e52.1744126720.git.oleksii.kurochko@gmail.com>
 <84089b6d-efeb-4613-85b9-eb10d11d7338@suse.com>
 <f315bc11-c537-4dca-9e62-a6d3f02733e4@gmail.com>
 <6b226b72-11a4-4004-b42d-0e280de83539@suse.com>
 <bbfdc4a0-54f0-4a9d-aa6d-2cf85ec03411@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: <bbfdc4a0-54f0-4a9d-aa6d-2cf85ec03411@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 17.04.2025 16:20, Oleksii Kurochko wrote:
> On 4/15/25 1:02 PM, Jan Beulich wrote:
>> On 15.04.2025 12:29, Oleksii Kurochko wrote:
>>> On 4/10/25 5:13 PM, Jan Beulich wrote:
>>>> On 08.04.2025 17:57, Oleksii Kurochko wrote:
>>>>> Based on RISC-V unpriviliged spec ( Version 20240411 ):
>>>>> ```
>>>>> For implementations that conform to the RISC-V Unix Platform Specification,
>>>>> I/O devices and DMA operations are required to access memory coherently and
>>>>> via strongly ordered I/O channels. Therefore, accesses to regular main memory
>>>>> regions that are concurrently accessed by external devices can also use the
>>>>> standard synchronization mechanisms. Implementations that do not conform
>>>>> to the Unix Platform Specification and/or in which devices do not access
>>>>> memory coherently will need to use mechanisms
>>>>> (which are currently platform-specific or device-specific) to enforce
>>>>> coherency.
>>>>>
>>>>> I/O regions in the address space should be considered non-cacheable
>>>>> regions in the PMAs for those regions. Such regions can be considered coherent
>>>>> by the PMA if they are not cached by any agent.
>>>>> ```
>>>>> and [1]:
>>>>> ```
>>>>> The current riscv linux implementation requires SOC system to support
>>>>> memory coherence between all I/O devices and CPUs. But some SOC systems
>>>>> cannot maintain the coherence and they need support cache clean/invalid
>>>>> operations to synchronize data.
>>>>>
>>>>> Current implementation is no problem with SiFive FU540, because FU540
>>>>> keeps all IO devices and DMA master devices coherence with CPU. But to a
>>>>> traditional SOC vendor, it may already have a stable non-coherency SOC
>>>>> system, the need is simply to replace the CPU with RV CPU and rebuild
>>>>> the whole system with IO-coherency is very expensive.
>>>>> ```
>>>>>
>>>>> and the fact that all known ( to me ) CPUs that support the H-extension
>>>>> and that ones is going to be supported by Xen have memory coherency
>>>>> between all I/O devices and CPUs, so it is currently safe to use the
>>>>> PAGE_HYPERVISOR attribute.
>>>>> However, in cases where a platform does not support memory coherency, it
>>>>> should support CMO extensions and Svpbmt. In this scenario, updates to
>>>>> ioremap will be necessary.
>>>>> For now, a compilation error will be generated to ensure that the need to
>>>>> update ioremap() is not overlooked.
>>>>>
>>>>> [1]https://patchwork.kernel.org/project/linux-riscv/patch/1555947870-23014-1-git-send-email-guoren@kernel.org/
>>>> But MMIO access correctness isn't just a matter of coherency. There may not
>>>> be any caching involved in most cases, or else you may observe significantly
>>>> delayed or even dropped (folded with later ones) writes, and reads may be
>>>> serviced from the cache instead of going to actual MMIO. Therefore ...
>>>>
>>>>> --- a/xen/arch/riscv/Kconfig
>>>>> +++ b/xen/arch/riscv/Kconfig
>>>>> @@ -15,6 +15,18 @@ config ARCH_DEFCONFIG
>>>>>    	string
>>>>>    	default "arch/riscv/configs/tiny64_defconfig"
>>>>>    
>>>>> +config HAS_SVPBMT
>>>>> +	bool
>>>>> +	help
>>>>> +	  This config enables usage of Svpbmt ISA-extension ( Supervisor-mode:
>>>>> +	  page-based memory types).
>>>>> +
>>>>> +	  The memory type for a page contains a combination of attributes
>>>>> +	  that indicate the cacheability, idempotency, and ordering
>>>>> +	  properties for access to that page.
>>>>> +
>>>>> +	  The Svpbmt extension is only available on 64-bit cpus.
>>>> ... I kind of expect this extension (or anything else that there might be) will need
>>>> making use of.
>>> In cases where the Svpbmt extension isn't available, PMA (Physical Memory Attributes)
>>> is used to control which memory regions are cacheable, non-cacheable, readable, writable,
>>> etc. PMA is configured in M-mode by the firmware (e.g., OpenSBI), as is done in Andes
>>> cores, or it can be fixed at design time, as in SiFive cores.
>> How would things work if there was a need to map a RAM page uncacheable (via
>> ioremap() or otherwise)?
> 
> My understanding is that Svpbmt is only needed when someone wants to change the memory
> attribute of a page set by PMA.
> 
> The question is if non-cacheable RAM page is really needed if we have a coherency?

Aiui coherency here is among CPUs. Properties of devices in the system are
largely unknown? (Beyond this there may also be special situations in which
one really cares about data going directly to RAM.)

Jan


From xen-devel-bounces@lists.xenproject.org Thu Apr 17 14:26:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 14:26:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.957854.1350871 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5QC9-0004Ev-IU; Thu, 17 Apr 2025 14:26:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 957854.1350871; Thu, 17 Apr 2025 14:26: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 1u5QC9-0004Eo-Fs; Thu, 17 Apr 2025 14:26:25 +0000
Received: by outflank-mailman (input) for mailman id 957854;
 Thu, 17 Apr 2025 14:26: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=JqnP=XD=bounce.vates.tech=bounce-md_30504962.68010f8d.v1-f18ffbfdef4e4b06b33ded64d58ff0a9@srs-se1.protection.inumbo.net>)
 id 1u5QC8-0004Ee-BL
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 14:26:24 +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 efbbae96-1b97-11f0-9eb0-5ba50f476ded;
 Thu, 17 Apr 2025 16:26:23 +0200 (CEST)
Received: from pmta08.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail128-130.atl41.mandrillapp.com (Mailchimp) with ESMTP id
 4ZdgDs5FG9zS62GZb
 for <xen-devel@lists.xenproject.org>; Thu, 17 Apr 2025 14:26:21 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 f18ffbfdef4e4b06b33ded64d58ff0a9; Thu, 17 Apr 2025 14:26:21 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: efbbae96-1b97-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1744899981; x=1745169981;
	bh=hzMZw+Kzy+rG82e2GAFteX2P3tXO/5Tc4kWbnxQkics=;
	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=goD6oocia8xhMcuHu8GCAQBfuO2igy7MWRqtd/eNlkVlBOffnIxR6A7Ywhhw//I9Z
	 o2swF2BaAji80r+u6zZ9o+kSHgTopq4Nd4w2dMJDnpYfIAWbhdNhAxHyzdN01LJjX5
	 S7BpSztjlJYo6uHqb1XPnMfY+54WMBIqUJOFTpa6rGOzdDbCNQez+DeBXbG8jpeTDT
	 n/9dXBJrBjC4moC8d8UGRVZKC9NoBf5yPApCNaud+LFH7NEEgGmgr4Roeqn7ksGX9J
	 zXPTOHFXOFWBy27H51Ik398Qs1ncg6OcAQuo0L096SWLwh0tZmKilPNVm/g6bV7AEa
	 0asW6Xk+OX6ig==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1744899981; x=1745160481; i=teddy.astie@vates.tech;
	bh=hzMZw+Kzy+rG82e2GAFteX2P3tXO/5Tc4kWbnxQkics=;
	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=RnoNQMNMHyhV+DgDlxqK4tteHEdQJKEuwHVQD6BS1TK5cVJ3S5LtUqzfDLUgylkyA
	 uze4dga/mg3E7CO/1T85vhJBG706PiwLHbDTVHUN+rZIrkpUscv7hbPPYU2roApbTb
	 uVL94NCBFE469DJkSTeOsu0VwNk2+SP+O+GmQccTG++9yvPReU19/9pGhurk7KLoAJ
	 4BmLpaJgeILFXC158WMJQQlFdwEX4AhvVK8hL8ZMVca2Xe4Gqg1E8qFoAZOFaQRste
	 QYjwnU2FUfsumHoU/7AmR4BFhcUpa1FL+Nf9EgSq9xD2KDtTpj8tGGot+YtyhH7/Yh
	 tl3zVNQXH2K6g==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH]=20vmx:=20Don't=20open-code=20vmresume/vmlaunch=20instructions?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1744899980758
Message-Id: <84950ea3-c57f-4d65-b86b-2046f376900e@vates.tech>
To: xen-devel@lists.xenproject.org, security@xenproject.org
Cc: "Jan Beulich" <jbeulich@suse.com>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>
References: <2d9480b75c80d49952812769f283a220c1753571.1744899753.git.teddy.astie@vates.tech>
In-Reply-To: <2d9480b75c80d49952812769f283a220c1753571.1744899753.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.f18ffbfdef4e4b06b33ded64d58ff0a9?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250417:md
Date: Thu, 17 Apr 2025 14:26:21 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Le 17/04/2025 =C3=A0 16:24, Teddy Astie a =C3=A9crit=C2=A0:
> binutils 2.25 has support for assembling vmresume/vmlaunch
> instructions, so we don't need to open-code the byte sequences
> for these opcodes anymore.
> 
> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
> ---
>   xen/arch/x86/hvm/vmx/entry.S | 7 ++-----
>   1 file changed, 2 insertions(+), 5 deletions(-)
> 
> diff --git a/xen/arch/x86/hvm/vmx/entry.S b/xen/arch/x86/hvm/vmx/entry.S
> index 6aaeb28a5b..2bfee715b3 100644
> --- a/xen/arch/x86/hvm/vmx/entry.S
> +++ b/xen/arch/x86/hvm/vmx/entry.S
> @@ -21,9 +21,6 @@
>   #include <asm/asm_defns.h>
>   #include <asm/page.h>
>   
> -#define VMRESUME     .byte 0x0f,0x01,0xc3
> -#define VMLAUNCH     .byte 0x0f,0x01,0xc2
> -
>   FUNC(vmx_asm_vmexit_handler)
>           SAVE_ALL
>   
> @@ -166,11 +163,11 @@ UNLIKELY_END(realmode)
>           jns  .Lvmx_launch
>   
>   /*.Lvmx_resume:*/
> -        VMRESUME
> +        vmresume
>           jmp  .Lvmx_vmentry_fail
>   
>   .Lvmx_launch:
> -        VMLAUNCH
> +        vmlaunch
>   
>   .Lvmx_vmentry_fail:
>           sti

Not a security issue, I sent by mistake to the wrong mailing list.


Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Thu Apr 17 14:28:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 14:28:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.957871.1350882 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5QEZ-0004tF-3j; Thu, 17 Apr 2025 14:28:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 957871.1350882; Thu, 17 Apr 2025 14:28: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 1u5QEY-0004t8-VX; Thu, 17 Apr 2025 14:28:54 +0000
Received: by outflank-mailman (input) for mailman id 957871;
 Thu, 17 Apr 2025 14:28: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=nsoM=XD=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u5QEX-0004rV-ME
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 14:28:53 +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 491e3793-1b98-11f0-9eb0-5ba50f476ded;
 Thu, 17 Apr 2025 16:28:52 +0200 (CEST)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-43d0782d787so6277825e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 17 Apr 2025 07:28:52 -0700 (PDT)
Received: from [10.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-22c50bf3b21sm317435ad.69.2025.04.17.07.28.48
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 17 Apr 2025 07:28: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: 491e3793-1b98-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744900132; x=1745504932; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=slEol9Q1b90Bxf6lF/iU2UBkQUZRrnvQ8s1/O+ov+cw=;
        b=Axv7nuNin5Kg4rT11tIr/jmEJf8c1vQLD4nrCuuvONVx6FUhIa6ENGP2jCynT8LdLi
         Y+0Qm4FcXKO/dM2+u24R1H3GHthaCIE1mLpzUMkBznsPtG6tcFlLQGoa8JhdJNFE7obK
         CfHd5/YIyx+ABsEdK7gjdYhhzf+nHtMQaBXbmfcV0fCS+GaYrmRzsAoPAZ4kbe+maLzl
         sWSsgCJGaIdrNE4YyttRrLv0SVuTNneZQbaLhrhwtjVEwsJuZ9ggqFY5QeaOKNVf2jlk
         6VyGK45BPGvbOG5GRiX0rCmw1aQjkrke0sNtsPtwMtQ2pmIm0gS9KJo7h81b7Ntty1Cz
         Vf+A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744900132; x=1745504932;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=slEol9Q1b90Bxf6lF/iU2UBkQUZRrnvQ8s1/O+ov+cw=;
        b=KwG8k5i9XFEk5BzqTrnmw71+z7tIrEBmWJERbi/dkENBKJhov5tt/x+4r8Sk8rl+dg
         OCFRmoJur/IYyErCUtl7yADVhm7gIiNpraIfaqaEbkdCX3LGFuOB48KDTxDCtH9pKzIH
         Z3Q1vmenA+PzXhh054gCDBvg482qFjPKRCDWT2RXLCZbgkNoDiFvRd0hLwEs5GCA64bU
         KB9LHTgtCtu+SvcfvBeriLnVp+EwcEJs+dwr8NhDvflhsyI5P7pQTM8B8YTB5FOtaN6i
         Lv32r5Bs8+YYjXdYNc4rLsiunknT74wCRlyVqy+TU9UkdJ1xu5gH+FNOASw069cVm/V2
         gQqw==
X-Forwarded-Encrypted: i=1; AJvYcCXLvtqrzxpijw7NXEU4aas88vRhVuOaRCMkKSDLQikzyJWk+EC5WSzsE3GWBTwAWQpWvWTyogZOVsg=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw3CjiWlsBra73l3y+14oqoYsPkKBiF5V2cUnUF2FFRS/wSTUqZ
	4JLQUqfYEjq2lNX1yPuQ2wWFirMeAxre6F2iSWqZgJH9WiRyhal/WscNhBriuyJ4kXWBunM4p/Q
	=
X-Gm-Gg: ASbGncsVNGoR69gWf4QMEMCVCPhzY2YUNOplAAj9FyJBKpLYEujPkMxcOL0NMbz1vKE
	5pXA8NKycnCJlkxqmmmGjkA/Xttf+OJm/qgiiXbQLCu3eiPGS+7mw4csh/LhYwC+wMIILZD7+jf
	2QDV54Y30o7hIjmW5CovWQEYCIYiUOKbi6eTxbCTb9qmYUnRiFj6csbbW0KRNOGPsMsP0Ff5AZc
	s7VpQoluZkX4EF8ZZtyUiqDeiEi+eZsBcXKLtpqPJKk3iEkBIDkFGXyzej/MtKLRRWV/Xy9SqaJ
	8gsbox07YE00BEx/DanWiBVBmfNm8xXUKQV5SL0UvPr8/KCu/+0eTEdRmAUOWieoa5DRObDArMR
	g6g2WNmB6Be0r+04DirzP0GBsFA==
X-Google-Smtp-Source: AGHT+IGC4j/TGT2zZzIq3DUfNMgGY2d1BCm+sfRYMBFVVXOFUa0dqPQLCToik0EnVYeyGexxwF+p0w==
X-Received: by 2002:a5d:47cb:0:b0:391:139f:61af with SMTP id ffacd0b85a97d-39ee5b1cf87mr5461764f8f.32.1744900131988;
        Thu, 17 Apr 2025 07:28:51 -0700 (PDT)
Message-ID: <5d78f813-c073-4252-a177-a0a27ccb077c@suse.com>
Date: Thu, 17 Apr 2025 16:28:44 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] vmx: Don't open-code vmresume/vmlaunch instructions
To: Teddy Astie <teddy.astie@vates.tech>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <2d9480b75c80d49952812769f283a220c1753571.1744899753.git.teddy.astie@vates.tech>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <2d9480b75c80d49952812769f283a220c1753571.1744899753.git.teddy.astie@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 17.04.2025 16:24, Teddy Astie wrote:
> binutils 2.25 has support for assembling vmresume/vmlaunch
> instructions, so we don't need to open-code the byte sequences
> for these opcodes anymore.
> 
> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>

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




From xen-devel-bounces@lists.xenproject.org Thu Apr 17 14:29:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 14:29:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.957879.1350891 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5QEq-0005F3-8o; Thu, 17 Apr 2025 14:29:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 957879.1350891; Thu, 17 Apr 2025 14:29:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5QEq-0005Ew-63; Thu, 17 Apr 2025 14:29:12 +0000
Received: by outflank-mailman (input) for mailman id 957879;
 Thu, 17 Apr 2025 14:29: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=CA5y=XD=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u5QEp-0005CJ-7G
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 14:29:11 +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 5320b3fa-1b98-11f0-9ffb-bf95429c2676;
 Thu, 17 Apr 2025 16:29:09 +0200 (CEST)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-4394a823036so448545e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 17 Apr 2025 07:29:09 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4405b58cc0csm56669645e9.32.2025.04.17.07.29.08
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 17 Apr 2025 07:29: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: 5320b3fa-1b98-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744900149; x=1745504949; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=5MG1fV5CsnDmr/QY08A2+RQ9cjrClV9EXex1K4KaxIM=;
        b=HqoF2X5O9MAOKIqgDWgfkQFFM78mz6gkfQlhAl9fFRJE7oO8v4RPZx5+OIdNUNwiXA
         nCMZhrSSOD7BFL6vg8U5+DABJCwoYOfARQiNM2dGtl4VNxqt+L/jSmgyHEqBwqCmisPA
         wlP0/VOIs0mlCh86vuPSt3s2R8dPXNVmywpCU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744900149; x=1745504949;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=5MG1fV5CsnDmr/QY08A2+RQ9cjrClV9EXex1K4KaxIM=;
        b=qJT3264AAhTY37+jII1NEbg3/YznwmDb6yoYNB34SyD+u6pT47gdlBs5IAhHHLCris
         rxEAN8BLW0nSrf8B+3AmH9a7rILIwgl4v1Ayi5ZEL7oXG05aepvCIDCkvK1iItFp45Rj
         9+Ob6rv9y41bK+zffIBvGpuL/ipV9TUJ/1MRZM75vNgVUhCKIXFT7WG12sz1ArdwH3Sh
         Ak7b2Z9nBsDt/sJOq7oBjgORyR+0mrsN/GOskj3Nmg1GZp7sEurCDlqYplW0tby9Rpt3
         Oypr1UOGJCyqKFNLE3e5FFPJX0hOOxlWYYnZUcUidJVPw2zrNIMQXMIjkAE3GOKnR0q3
         Y3nQ==
X-Forwarded-Encrypted: i=1; AJvYcCUUO56oU0IfSnk1FTqEIsQdVwigFBhEusruLGK2URsmZ9AOtAzJJoZjrjEvouBAWgOwN7zjSXtou7E=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyRyu3D1EMscL/X7MFnsfYCHZd+5ZnfjN+zf1R5pL9EMubIIEFg
	x1AUsFfaccI+eOD1NuWwClAFop7zCPpLUJXg7RycjQMDQIN2hET2SI33AiP4o70=
X-Gm-Gg: ASbGncvEHEqR3s1mkKFq1vAEinauP1sI13p01vU7kwOddbVqvXUyzjhqm7u5YrW9zbz
	eHLE2nMyJxlwumul9VqaVM9yCyrMVowGOy2RqY3WHsd7YfdoeRNJDmgvq9uWFd82xHpNOpYEMvZ
	MsK2aDQ/YitfMlPa073g8bc7asSwCDNjfUnH0F6XNLJdk/z/9xH+x8nD6AGZ+PLca/1AxQ2RhAD
	VaArfkyUUfSPRGHIJZVXsg1j/jZ7BwIS64GRYo20aVmNopnK1VXCnfvBH6SBCsy4Kl3NuLdKsF6
	cRSM8QeQndcWb0DfmbCDxoV9Jj/8mzTVk5M8XF+DVpbKuQqyqvjy66PAr1Ue6lq5v1JRvLjag5f
	7umtpsw==
X-Google-Smtp-Source: AGHT+IHdkfLPMyr4v36T0lVcKIwgCaWjCA0mwhPqFx6fqfi9S2yIlspz666+TQPphHfQ5jGm6TP4CQ==
X-Received: by 2002:a05:600c:4f8e:b0:43d:fa:1f9a with SMTP id 5b1f17b1804b1-4405d6cea58mr60099425e9.30.1744900148838;
        Thu, 17 Apr 2025 07:29:08 -0700 (PDT)
Message-ID: <ad75c664-4576-4fc9-b469-e854c72c5da9@citrix.com>
Date: Thu, 17 Apr 2025 15:29:07 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] vmx: Don't open-code vmresume/vmlaunch instructions
To: Teddy Astie <teddy.astie@vates.tech>, security@xenproject.org,
 xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <2d9480b75c80d49952812769f283a220c1753571.1744899753.git.teddy.astie@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: <2d9480b75c80d49952812769f283a220c1753571.1744899753.git.teddy.astie@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 17/04/2025 3:24 pm, Teddy Astie wrote:
> binutils 2.25 has support for assembling vmresume/vmlaunch
> instructions, so we don't need to open-code the byte sequences
> for these opcodes anymore.
>
> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>

Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Thu Apr 17 14:36:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 14:36:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.957896.1350901 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5QLk-0007v6-Us; Thu, 17 Apr 2025 14:36:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 957896.1350901; Thu, 17 Apr 2025 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 1u5QLk-0007uz-Ru; Thu, 17 Apr 2025 14:36:20 +0000
Received: by outflank-mailman (input) for mailman id 957896;
 Thu, 17 Apr 2025 14:36: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=nsoM=XD=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u5QLj-0007uq-8M
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 14:36:19 +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 52b434bb-1b99-11f0-9eb0-5ba50f476ded;
 Thu, 17 Apr 2025 16:36:18 +0200 (CEST)
Received: by mail-wr1-x42e.google.com with SMTP id
 ffacd0b85a97d-39c1efc4577so555471f8f.0
 for <xen-devel@lists.xenproject.org>; Thu, 17 Apr 2025 07:36:18 -0700 (PDT)
Received: from [10.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-22c50eb03d2sm215025ad.142.2025.04.17.07.36.11
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 17 Apr 2025 07:36: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: 52b434bb-1b99-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744900577; x=1745505377; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=KZmTl63M8aRcZr04oKX+Qkaj8b6tyUndRWXOjit9maE=;
        b=S/J+1Y5wk1hb2XkmlWF9pVgXOU1SxuhoXkrvi+ComYiXLcRXQVPPeXQaKlmPOcURjI
         s5dFi/XmnSBYRVB/z+whU/iWClx5slH1KLxHIX+iapUInGIEebZ1lgvx9kPQnUqUn0w3
         odOiknLGeUN1PWtj05dIHXqnbJiSBp8Fpcd0PpSFwjSOv3BvXAgVtwP65w/RfT4R1ehL
         KQonYHsuRlJt61EVo5sEHojgz1Zd/tL1tXT21fxLhfUeQPGILN1ttChG7NXmVvwK+Pcr
         CNMGyUho/W79RqNU3e7uhasJsYnlK3BvgrK4YeQ3eAonio1delsqQQ6rTb6OOm1V/6Br
         wJwQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744900577; x=1745505377;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=KZmTl63M8aRcZr04oKX+Qkaj8b6tyUndRWXOjit9maE=;
        b=h3GylmPIUqshPWbUdY8VDE/mtluNk5RP7lYzh01efiAW/PWXibmY3nsv1TkwUkDPXy
         NStty2UVGlqWzIpG+tRicnBYgXvwxaMH7a4NE51pv63xJebnCdw1B2pVUllrlBVEiOZ/
         b+dLZ92ycWJspsjsmoWepxR4m/yzUHS/F1Xs/OiquNgTKIMD9CULwZVo1hY+Z9idU5PR
         npnpYuLeeCg+8N2OvIQ1Z/h6RQFiwVaDVDd6P/6X5UM0+p4GeI+/kvDdI5uV+NlaSE/d
         pdT9R3RXDTSLHagrMRDqWrMmDcu9hj90Bop/BI/tT+p2U+Ed1tRrIec5fBKGIZaFPnPc
         HWKQ==
X-Forwarded-Encrypted: i=1; AJvYcCUrK6uMdxfb1zT/Smo+tfYe8ud1LmE4R1MEZ9HgINWoiH4yFbYhuXx3aco4Ej4rb8MDLnUIUoQZ3Nw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxqTyL+ht6x4k/jjsOYwci1I/8LaIpICzgKAJD4j9awUFucXMXL
	rGMg2hiIuuv0PNWijkQ+zFoPCsPR32V6XhgTunthr3BEq7H96LKBtjk+w4CWRQ==
X-Gm-Gg: ASbGncvQMsf8eZeRDg3LtcPARiWctW0UQQU7lHitCtf1divO0C3CFf2cIdqNpf7VjUf
	OaRezfa2oO/wSUTTr3SojShythanX23HbSpU6hfohVWJIft9J2Ao2HigP0Pefi5JQqK2uaIcV80
	Mv+DxdcErs+ysjFyaCWGzvxKR+kRphFI/mqWYhyegInoFOpHdMFe3318nnBwioI2YihadKZEs1A
	xZNltO2kM8efpE5z7RBgns41IZ/w1uTgCJivmFpk76BNW6zflFDTcNLl8S4snyMYSalxMkIFj20
	6Pp3xk9ly7d9StQLelRrdA5lHhbUx01QKcc4bTHTsGq9zEwc51ReoMxVTTpVIdzqstX3nMcxk3b
	Q+nfHaNlhqGF1BgEMPSwqNam7IRXbiLu6LlDo
X-Google-Smtp-Source: AGHT+IGNeJ0gsJAITXwBNIBtxapCsJuzgyvzdU9p4i26HTCLcslQ2Ki/OsDN0336g2zL1s2H96xe9Q==
X-Received: by 2002:a5d:584a:0:b0:38f:2b77:a9f3 with SMTP id ffacd0b85a97d-39ee5b9f98cmr5695817f8f.43.1744900577506;
        Thu, 17 Apr 2025 07:36:17 -0700 (PDT)
Message-ID: <1e7ba51b-8943-4001-be2f-9181e7362223@suse.com>
Date: Thu, 17 Apr 2025 16:36:07 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 5/8] asm-generic: move some parts of Arm's
 domain_build.h to common
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <cover.1744626032.git.oleksii.kurochko@gmail.com>
 <1c67078147c4a89e46f253f040bef5046fac9ca9.1744626032.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: <1c67078147c4a89e46f253f040bef5046fac9ca9.1744626032.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 14.04.2025 17:56, Oleksii Kurochko wrote:
> --- /dev/null
> +++ b/xen/include/xen/fdt-domain-build.h
> @@ -0,0 +1,46 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +#ifndef __XEN_FDT_DOMAIN_BUILD_H__
> +#define __XEN_FDT_DOMAIN_BUILD_H__
> +
> +#include <xen/bootfdt.h>
> +#include <xen/device_tree.h>
> +#include <xen/fdt-kernel.h>
> +#include <xen/types.h>
> +
> +#if __has_include(<asm/domain_build.h>)
> +#   include <asm/domain_build.h>
> +#endif

Why is this conditional include needed? There's ...

> +struct domain;
> +struct page_info;
> +struct membanks;
> +
> +typedef bool (*alloc_domheap_mem_cb)(struct domain *d, struct page_info *pg,
> +                                     unsigned int order, void *extra);
> +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 make_chosen_node(const struct kernel_info *kinfo);
> +int make_cpus_node(const struct domain *d, void *fdt);
> +int make_hypervisor_node(struct domain *d, const struct kernel_info *kinfo,
> +                         int addrcells, int sizecells);
> +int make_memory_node(const struct kernel_info *kinfo, int addrcells,
> +                     int sizecells, const struct membanks *mem);
> +int make_timer_node(const struct kernel_info *kinfo);
> +
> +unsigned int get_allocation_size(paddr_t size);
> +
> +#endif /* __XEN_FDT_DOMAIN_BUILD_H__ */

... nothing here showing any dependency thereon.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Apr 17 14:37:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 14:37:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.957907.1350911 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5QN1-0008Qj-90; Thu, 17 Apr 2025 14:37:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 957907.1350911; Thu, 17 Apr 2025 14:37: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 1u5QN1-0008Qc-4x; Thu, 17 Apr 2025 14:37:39 +0000
Received: by outflank-mailman (input) for mailman id 957907;
 Thu, 17 Apr 2025 14:37: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=uBz4=XD=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1u5QN0-0008QW-I1
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 14:37:38 +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 81e2ec92-1b99-11f0-9eb0-5ba50f476ded;
 Thu, 17 Apr 2025 16:37:37 +0200 (CEST)
Received: by mail-ej1-x62d.google.com with SMTP id
 a640c23a62f3a-ac25520a289so126764166b.3
 for <xen-devel@lists.xenproject.org>; Thu, 17 Apr 2025 07:37:37 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-64-225.play-internet.pl.
 [109.243.64.225]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-acb6ec517a4sm2750566b.73.2025.04.17.07.37.35
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 17 Apr 2025 07:37:35 -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: 81e2ec92-1b99-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1744900657; x=1745505457; darn=lists.xenproject.org;
        h=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=bY6yhE3B/uedCC4rvXb46yR4qJioYVtFWvS+G5qc4dI=;
        b=TauVXX3dFqJ99TqXc1Ibj1vz4wIws4og2PL/OXgF7KOVLsF1I4i2sOlEp/xKlvxt6L
         siewe1CHis1rSjbRA0SSzzjMKdnYWf1AF+QKzjh4SQl1boRA7t73NPYk5r2w95PJMsOi
         1SqtJV2xXsXiJBTDv8xgoedUqEV9ntY8wXyfcKh0Q+RX2hD2f0hAWWJLQOyI6aiu1KCm
         kCx5Xf27nIicud/cIsL1/NPrwrFpwhcW4bhZFHsfGB6b087mSgj8TY+cTVQg8hocyklg
         WCPLDy23gMAnjvvUbJlARWmmLGO/MDIuiD0SYCfDHwGXzppXKUyJTma+MSylt6TfdQU7
         N2pg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744900657; x=1745505457;
        h=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=bY6yhE3B/uedCC4rvXb46yR4qJioYVtFWvS+G5qc4dI=;
        b=fowVGA2IYPDOIGH1S41tS4RyuBkLqLgA0j4t43+9pSzIwCrav5XIN1ZTnOSl3/Ti+j
         LiD68SutZZ1x6WuBA/+PjTLaUoy+VbjuzhmufGbz5Jbfz2gUbBUAlaG7pNhoHCGiLv7M
         qBaXrMcarCb/Sz3WbgrZUb/MuRkHzAxJr/kphko9XgdLMc+HuriC8yl1XGGGL9JunUcj
         DnrLnipFEbdYaPl00LAqKPlrNW4nvej0MDONOIhDCn1rLpCoOxn9+fInFOd4CsAT4aNd
         wOlvZak4ZI64WeVD1lp+eeE8nuFIJPX/MP3FTLFCl87OlwGzAv+5PGLWLWAw2EKylWSR
         dByA==
X-Forwarded-Encrypted: i=1; AJvYcCUUW0SDltditHqRyqXNbfOilxfGM0Kah+ZGcm1rzOpyMBQQOtkgKy5EjohcqnaQO6IlGKDS8WuHgeA=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz3Tvqf9USn1hjogBlxxaT01eAoqEfqhL/6UOdytaE8nGa6lZ21
	U0dbEoG/v+8HFWLZMqjt80Y0AShm5u4lRpqqP/fDeHoZ3aP3tQtCiExiTA==
X-Gm-Gg: ASbGncvRrPyZbw6Wt/c0JpjvYrApJsXWWU3oZdtOsrOBugD43xFRYmnK/5ugVUu12/n
	mWPjKXNmETbcksdvfy0B2khkzCJyS3uJcVz6okGG+usn+H9tx3yON4M8jggoUB4NsdgBoGVGdGJ
	Xn7JITodkE/cCgFmLciBpm9/FMvCFMSoFau5oNvVOLtXJwueMrCvQw3IoRL1q7Kz5pkwcwymPoK
	HGVTuZjYtjK7/ZxGkycaX7D/7Fw3vaibSmAFEGTabkTVMUrsd9jhNQukOKL5DUSmLddN/P+3OCf
	Kz9QyYofhd4j4/wv0YVQHoQRz7NXx9a1u0Xs40O/xIvt9sz9siaehY4fqsMTSLNwOE9vwj5v1D+
	gK1zw2+auBX4y14B5eUqGu2ikdp4=
X-Google-Smtp-Source: AGHT+IE3yYSjSy0XKUiMzsCCKtCggT2O8fKGpvZCeMJeB0q/pXtNb7gfxw7aVVv5nc15w2wTNZvXAg==
X-Received: by 2002:a17:907:a4e:b0:abf:c20d:501a with SMTP id a640c23a62f3a-acb428fd80cmr680789966b.16.1744900656325;
        Thu, 17 Apr 2025 07:37:36 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------rWEM7nMJxlcWUx2paR00MxGY"
Message-ID: <7d5356a5-53b7-4d1b-82ff-bc6f81a2f445@gmail.com>
Date: Thu, 17 Apr 2025 16:37:34 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 03/14] xen/riscv: introduce ioremap()
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1744126720.git.oleksii.kurochko@gmail.com>
 <6d91eeabe2735de93bfcf2a2420e2059a8f35e52.1744126720.git.oleksii.kurochko@gmail.com>
 <84089b6d-efeb-4613-85b9-eb10d11d7338@suse.com>
 <f315bc11-c537-4dca-9e62-a6d3f02733e4@gmail.com>
 <6b226b72-11a4-4004-b42d-0e280de83539@suse.com>
 <bbfdc4a0-54f0-4a9d-aa6d-2cf85ec03411@gmail.com>
 <a71db245-5b0b-435e-8e58-cb43c5162862@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <a71db245-5b0b-435e-8e58-cb43c5162862@suse.com>

This is a multi-part message in MIME format.
--------------rWEM7nMJxlcWUx2paR00MxGY
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 4/17/25 4:24 PM, Jan Beulich wrote:
> On 17.04.2025 16:20, Oleksii Kurochko wrote:
>> On 4/15/25 1:02 PM, Jan Beulich wrote:
>>> On 15.04.2025 12:29, Oleksii Kurochko wrote:
>>>> On 4/10/25 5:13 PM, Jan Beulich wrote:
>>>>> On 08.04.2025 17:57, Oleksii Kurochko wrote:
>>>>>> Based on RISC-V unpriviliged spec ( Version 20240411 ):
>>>>>> ```
>>>>>> For implementations that conform to the RISC-V Unix Platform Specification,
>>>>>> I/O devices and DMA operations are required to access memory coherently and
>>>>>> via strongly ordered I/O channels. Therefore, accesses to regular main memory
>>>>>> regions that are concurrently accessed by external devices can also use the
>>>>>> standard synchronization mechanisms. Implementations that do not conform
>>>>>> to the Unix Platform Specification and/or in which devices do not access
>>>>>> memory coherently will need to use mechanisms
>>>>>> (which are currently platform-specific or device-specific) to enforce
>>>>>> coherency.
>>>>>>
>>>>>> I/O regions in the address space should be considered non-cacheable
>>>>>> regions in the PMAs for those regions. Such regions can be considered coherent
>>>>>> by the PMA if they are not cached by any agent.
>>>>>> ```
>>>>>> and [1]:
>>>>>> ```
>>>>>> The current riscv linux implementation requires SOC system to support
>>>>>> memory coherence between all I/O devices and CPUs. But some SOC systems
>>>>>> cannot maintain the coherence and they need support cache clean/invalid
>>>>>> operations to synchronize data.
>>>>>>
>>>>>> Current implementation is no problem with SiFive FU540, because FU540
>>>>>> keeps all IO devices and DMA master devices coherence with CPU. But to a
>>>>>> traditional SOC vendor, it may already have a stable non-coherency SOC
>>>>>> system, the need is simply to replace the CPU with RV CPU and rebuild
>>>>>> the whole system with IO-coherency is very expensive.
>>>>>> ```
>>>>>>
>>>>>> and the fact that all known ( to me ) CPUs that support the H-extension
>>>>>> and that ones is going to be supported by Xen have memory coherency
>>>>>> between all I/O devices and CPUs, so it is currently safe to use the
>>>>>> PAGE_HYPERVISOR attribute.
>>>>>> However, in cases where a platform does not support memory coherency, it
>>>>>> should support CMO extensions and Svpbmt. In this scenario, updates to
>>>>>> ioremap will be necessary.
>>>>>> For now, a compilation error will be generated to ensure that the need to
>>>>>> update ioremap() is not overlooked.
>>>>>>
>>>>>> [1]https://patchwork.kernel.org/project/linux-riscv/patch/1555947870-23014-1-git-send-email-guoren@kernel.org/
>>>>> But MMIO access correctness isn't just a matter of coherency. There may not
>>>>> be any caching involved in most cases, or else you may observe significantly
>>>>> delayed or even dropped (folded with later ones) writes, and reads may be
>>>>> serviced from the cache instead of going to actual MMIO. Therefore ...
>>>>>
>>>>>> --- a/xen/arch/riscv/Kconfig
>>>>>> +++ b/xen/arch/riscv/Kconfig
>>>>>> @@ -15,6 +15,18 @@ config ARCH_DEFCONFIG
>>>>>>     	string
>>>>>>     	default "arch/riscv/configs/tiny64_defconfig"
>>>>>>     
>>>>>> +config HAS_SVPBMT
>>>>>> +	bool
>>>>>> +	help
>>>>>> +	  This config enables usage of Svpbmt ISA-extension ( Supervisor-mode:
>>>>>> +	  page-based memory types).
>>>>>> +
>>>>>> +	  The memory type for a page contains a combination of attributes
>>>>>> +	  that indicate the cacheability, idempotency, and ordering
>>>>>> +	  properties for access to that page.
>>>>>> +
>>>>>> +	  The Svpbmt extension is only available on 64-bit cpus.
>>>>> ... I kind of expect this extension (or anything else that there might be) will need
>>>>> making use of.
>>>> In cases where the Svpbmt extension isn't available, PMA (Physical Memory Attributes)
>>>> is used to control which memory regions are cacheable, non-cacheable, readable, writable,
>>>> etc. PMA is configured in M-mode by the firmware (e.g., OpenSBI), as is done in Andes
>>>> cores, or it can be fixed at design time, as in SiFive cores.
>>> How would things work if there was a need to map a RAM page uncacheable (via
>>> ioremap() or otherwise)?
>> My understanding is that Svpbmt is only needed when someone wants to change the memory
>> attribute of a page set by PMA.
>>
>> The question is if non-cacheable RAM page is really needed if we have a coherency?
> Aiui coherency here is among CPUs.

```
For implementations that conform to the RISC-V Unix Platform Specification,
I/O devices and DMA operations are required to access memory coherently and
via strongly ordered I/O channels. Therefore, accesses to regular main memory
regions that are concurrently accessed by external devices can also use the
standard synchronization mechanisms. Implementations that do not conform
to the Unix Platform Specification and/or in which devices do not access
memory coherently will need to use mechanisms
(which are currently platform-specific or device-specific) to enforce
coherency.
```
Based on this from the spec, coherency here is not only among CPUs.


> Properties of devices in the system are
> largely unknown?

Yes, but still not sure what kind of property requires ioremap() which won't work
without Svpmbt. Could you please tell me an example?

> (Beyond this there may also be special situations in which
> one really cares about data going directly to RAM.)

If there are such special cases, I assume that the firmware or hardware (in the case
of fixed PMA) will provide a non-cacheable region. In that case, the user should be
aware of this region and use it for those specific scenarios.

~ Oleksii

--------------rWEM7nMJxlcWUx2paR00MxGY
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 4/17/25 4:24 PM, Jan Beulich wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:a71db245-5b0b-435e-8e58-cb43c5162862@suse.com">
      <pre wrap="" class="moz-quote-pre">On 17.04.2025 16:20, Oleksii Kurochko wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">On 4/15/25 1:02 PM, Jan Beulich wrote:
</pre>
        <blockquote type="cite">
          <pre wrap="" class="moz-quote-pre">On 15.04.2025 12:29, Oleksii Kurochko wrote:
</pre>
          <blockquote type="cite">
            <pre wrap="" class="moz-quote-pre">On 4/10/25 5:13 PM, Jan Beulich wrote:
</pre>
            <blockquote type="cite">
              <pre wrap="" class="moz-quote-pre">On 08.04.2025 17:57, Oleksii Kurochko wrote:
</pre>
              <blockquote type="cite">
                <pre wrap="" class="moz-quote-pre">Based on RISC-V unpriviliged spec ( Version 20240411 ):
```
For implementations that conform to the RISC-V Unix Platform Specification,
I/O devices and DMA operations are required to access memory coherently and
via strongly ordered I/O channels. Therefore, accesses to regular main memory
regions that are concurrently accessed by external devices can also use the
standard synchronization mechanisms. Implementations that do not conform
to the Unix Platform Specification and/or in which devices do not access
memory coherently will need to use mechanisms
(which are currently platform-specific or device-specific) to enforce
coherency.

I/O regions in the address space should be considered non-cacheable
regions in the PMAs for those regions. Such regions can be considered coherent
by the PMA if they are not cached by any agent.
```
and [1]:
```
The current riscv linux implementation requires SOC system to support
memory coherence between all I/O devices and CPUs. But some SOC systems
cannot maintain the coherence and they need support cache clean/invalid
operations to synchronize data.

Current implementation is no problem with SiFive FU540, because FU540
keeps all IO devices and DMA master devices coherence with CPU. But to a
traditional SOC vendor, it may already have a stable non-coherency SOC
system, the need is simply to replace the CPU with RV CPU and rebuild
the whole system with IO-coherency is very expensive.
```

and the fact that all known ( to me ) CPUs that support the H-extension
and that ones is going to be supported by Xen have memory coherency
between all I/O devices and CPUs, so it is currently safe to use the
PAGE_HYPERVISOR attribute.
However, in cases where a platform does not support memory coherency, it
should support CMO extensions and Svpbmt. In this scenario, updates to
ioremap will be necessary.
For now, a compilation error will be generated to ensure that the need to
update ioremap() is not overlooked.

[1]<a class="moz-txt-link-freetext" href="https://patchwork.kernel.org/project/linux-riscv/patch/1555947870-23014-1-git-send-email-guoren@kernel.org/">https://patchwork.kernel.org/project/linux-riscv/patch/1555947870-23014-1-git-send-email-guoren@kernel.org/</a>
</pre>
              </blockquote>
              <pre wrap="" class="moz-quote-pre">But MMIO access correctness isn't just a matter of coherency. There may not
be any caching involved in most cases, or else you may observe significantly
delayed or even dropped (folded with later ones) writes, and reads may be
serviced from the cache instead of going to actual MMIO. Therefore ...

</pre>
              <blockquote type="cite">
                <pre wrap="" class="moz-quote-pre">--- a/xen/arch/riscv/Kconfig
+++ b/xen/arch/riscv/Kconfig
@@ -15,6 +15,18 @@ config ARCH_DEFCONFIG
   	string
   	default "arch/riscv/configs/tiny64_defconfig"
   
+config HAS_SVPBMT
+	bool
+	help
+	  This config enables usage of Svpbmt ISA-extension ( Supervisor-mode:
+	  page-based memory types).
+
+	  The memory type for a page contains a combination of attributes
+	  that indicate the cacheability, idempotency, and ordering
+	  properties for access to that page.
+
+	  The Svpbmt extension is only available on 64-bit cpus.
</pre>
              </blockquote>
              <pre wrap="" class="moz-quote-pre">... I kind of expect this extension (or anything else that there might be) will need
making use of.
</pre>
            </blockquote>
            <pre wrap="" class="moz-quote-pre">In cases where the Svpbmt extension isn't available, PMA (Physical Memory Attributes)
is used to control which memory regions are cacheable, non-cacheable, readable, writable,
etc. PMA is configured in M-mode by the firmware (e.g., OpenSBI), as is done in Andes
cores, or it can be fixed at design time, as in SiFive cores.
</pre>
          </blockquote>
          <pre wrap="" class="moz-quote-pre">How would things work if there was a need to map a RAM page uncacheable (via
ioremap() or otherwise)?
</pre>
        </blockquote>
        <pre wrap="" class="moz-quote-pre">
My understanding is that Svpbmt is only needed when someone wants to change the memory
attribute of a page set by PMA.

The question is if non-cacheable RAM page is really needed if we have a coherency?
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Aiui coherency here is among CPUs. </pre>
    </blockquote>
    <pre>```
For implementations that conform to the RISC-V Unix Platform Specification,
I/O devices and DMA operations are required to access memory coherently and
via strongly ordered I/O channels. Therefore, accesses to regular main memory
regions that are concurrently accessed by external devices can also use the
standard synchronization mechanisms. Implementations that do not conform
to the Unix Platform Specification and/or in which devices do not access
memory coherently will need to use mechanisms
(which are currently platform-specific or device-specific) to enforce
coherency.
```
Based on this from the spec, coherency here is not only among CPUs.


</pre>
    <blockquote type="cite"
      cite="mid:a71db245-5b0b-435e-8e58-cb43c5162862@suse.com">
      <pre wrap="" class="moz-quote-pre">Properties of devices in the system are
largely unknown?</pre>
    </blockquote>
    <pre>Yes, but still not sure what kind of property requires ioremap() which won't work
without Svpmbt. Could you please tell me an example?

</pre>
    <blockquote type="cite"
      cite="mid:a71db245-5b0b-435e-8e58-cb43c5162862@suse.com">
      <pre wrap="" class="moz-quote-pre">(Beyond this there may also be special situations in which
one really cares about data going directly to RAM.)</pre>
    </blockquote>
    <pre wrap="" class="moz-quote-pre">If there are such special cases, I assume that the firmware or hardware (in the case
of fixed PMA) will provide a non-cacheable region. In that case, the user should be
aware of this region and use it for those specific scenarios.

~ Oleksii
</pre>
  </body>
</html>

--------------rWEM7nMJxlcWUx2paR00MxGY--


From xen-devel-bounces@lists.xenproject.org Thu Apr 17 14:43:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 14:43:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.957924.1350922 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5QSX-0002ba-0W; Thu, 17 Apr 2025 14:43:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 957924.1350922; Thu, 17 Apr 2025 14:43: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 1u5QSW-0002bT-RV; Thu, 17 Apr 2025 14:43:20 +0000
Received: by outflank-mailman (input) for mailman id 957924;
 Thu, 17 Apr 2025 14:43: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=uBz4=XD=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1u5QSV-0002bN-Cn
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 14:43:19 +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 4c9f08ac-1b9a-11f0-9ffb-bf95429c2676;
 Thu, 17 Apr 2025 16:43:17 +0200 (CEST)
Received: by mail-ej1-x62e.google.com with SMTP id
 a640c23a62f3a-ac25520a289so127883666b.3
 for <xen-devel@lists.xenproject.org>; Thu, 17 Apr 2025 07:43:17 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-64-225.play-internet.pl.
 [109.243.64.225]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-acb6eefc685sm2357466b.96.2025.04.17.07.43.15
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 17 Apr 2025 07:43: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: 4c9f08ac-1b9a-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1744900997; x=1745505797; darn=lists.xenproject.org;
        h=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=/YrRrS2tfMHEc5x4XSZVeQrNlakP588rEqylOEht5sA=;
        b=njkE2CY3ORsF+H8UAS0smP0A+8D0SS0IvOOAq2dOnuNlSy9zTlMWRLRCZQqH5Tn3Z7
         OAfFc5m/KzGf6TRe6KAR0EDTkysddBGnXq/E+rpqmVNC6lHcJ6bOaKQf9mLtNyzVK/8V
         z3U6yRAepILJSsv0lRExyb5ow2uPiVUJNuHsxhjk5TMhm6i28jihF/ukQPCGGLrRLwQC
         K7WBOsuVApy0VTwxyM/Loezsy4v5RfcsrJjhvyWif3hWXF9uFDQvGQ9Z2ZEsIc8d+r5T
         1W3g1tIuFUEmLvLKsAZ7BpmjZGYEBSvXI8XEJe3xhL6Ac8+HGdNA1z7cUyJDEaNWiFqW
         lN3g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744900997; x=1745505797;
        h=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=/YrRrS2tfMHEc5x4XSZVeQrNlakP588rEqylOEht5sA=;
        b=BhJkxRZeExbgCHTSJSgd+v9YIHVQmdaHQAzkO6wbYOo4OqEo18WbEM2B4K3jTA2MiF
         3VZD3tvpRfzyRPZJPHnLVAiT4HwhUSW1RHM4mw+2Fu0T8pdOwFz0xXQ3IPKFV5fREu50
         accEWyJJJ664V03X0QG939jzPBGpplOlvE4wpbY/wUP0RC8db4EzXgo4OLXA7NNB8g1Y
         plzsM5ktl/dUNf/fqxDVtRQkuovBubVTrGXLPz2F0ZIpxFzT42MrzQhZ9+b45G3r/mJT
         kEsocztBfE9/OQlFMvfnkVI3I1J2Y6Jum+YGwmkED5K+iojzSHA+HofZ+hAgOvprLVGm
         EMHQ==
X-Forwarded-Encrypted: i=1; AJvYcCXvBkMDm9ta4SkIdEOOSG/EDY9LLik7nPRsdkEGpTK68812I44IOt4LFijcxz6bWuQrLbC9el8CdHE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzzvxSSBXwR7YPwekMXNY5/mZ3w6tOmTpHpGV1ut3gnLmYb3EK1
	u3/f7OE/zHaEuK3G80HgJaOR4eqtPH9G1ZovCaCt1DGfZawyOGpc
X-Gm-Gg: ASbGncunT2JoehLrHlQriLtHV+r2aKXw1HoKT308FuLoEzezCHBQVbCv5xnbcXV6PVP
	Lca1/hQN30bmeHSQAwDyMSOKCzq7F6VcZ3f6KxsxGLCWAkqUh9491vEsGWHsM043cliMDMNkIMs
	yM40MdFd/TH856zJzG/7iTcFvHeXGS9nh8t41/ukdjinUeeZH1y9i9Wydy2SCiLeHDgtLd1Z8Y8
	UGyMVNfHmqz8fKGEPxhTLg39E8J+EIoGWDdxLEdCXpdYt++Hh81OpEpl6Pcke5bPI714cytd6Qo
	vtvRnTxm/XB0Sk9HP7Nw08OsoiNnyiP7485NYhzl4XvgbWIBjV/61O7234TvdomSyRwDZEF0YnA
	xmJxB/LLelG8UeS8jk3zYwOmYSK4=
X-Google-Smtp-Source: AGHT+IE0bgqGLgjpYvFcyeD1hgQ7cMXdltYUvT9ulelhbVffhJc6DIpNzxZedfldR7ZwOJWG4btFxA==
X-Received: by 2002:a17:907:3f0a:b0:ac3:3e40:e182 with SMTP id a640c23a62f3a-acb428fdb78mr463577666b.19.1744900996560;
        Thu, 17 Apr 2025 07:43:16 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------izDQ6ZYJOD2yrLpdDKf4c9Fk"
Message-ID: <c7f96e26-1f78-4ada-a8a5-7c387011ecc8@gmail.com>
Date: Thu, 17 Apr 2025 16:43:15 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 05/14] xen/riscv: introduce platform_get_irq()
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Romain Caritey <Romain.Caritey@microchip.com>, xen-devel@lists.xenproject.org
References: <cover.1744126720.git.oleksii.kurochko@gmail.com>
 <6c6e7482cc3b0332f5724c80bf16931fe2d793ae.1744126720.git.oleksii.kurochko@gmail.com>
 <31de00cb-b3b4-4d15-a128-930dc1c7ccdf@suse.com>
 <16139d54-fc6f-4ecb-9b3e-ea1e110a1f0d@gmail.com>
 <664560b3-400d-485c-b50b-0614f0a3e49e@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <664560b3-400d-485c-b50b-0614f0a3e49e@suse.com>

This is a multi-part message in MIME format.
--------------izDQ6ZYJOD2yrLpdDKf4c9Fk
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 4/15/25 1:23 PM, Jan Beulich wrote:
> On 15.04.2025 13:11, Oleksii Kurochko wrote:
>> On 4/10/25 5:35 PM, Jan Beulich wrote:
>>> On 08.04.2025 17:57, Oleksii Kurochko wrote:
>>>> @@ -21,6 +22,22 @@ static struct intc_info __ro_after_init aplic_info = {
>>>>        .hw_version = INTC_APLIC,
>>>>    };
>>>>    
>>>> +static int aplic_irq_xlate(const uint32_t *intspec, unsigned int intsize,
>>> As you start adding functions calling indirectly, please consider adding cf_check
>>> right away, even if right now this has no effect on RISC-V. That'll save you from
>>> going through the entire RISC-V subtree later on to find them all.
>> Sure. I thought that it is a feature for x86 as I haven't seen such attribute for
>> Arm and RISC-V in GCC manuals.
> And that looks to be correct. I was under the (admittedly vague) impression
> Arm64 had something equivalent in hardware, which then merely needs enabling
> in the compiler. Not sure about RISC-V, but seeing the endless flow of
> patches enabling new extensions in binutils, it would perhaps even be
> surprising if nothing along these lines was already in the works somewhere.

You are right, something is already in the work:
-https://github.com/riscv/riscv-cfi
-https://lore.kernel.org/lkml/20230213045351.3945824-1-debug@rivosinc.com/ (interesting that
   they are enabling it for U-mode)


~ Oleksii

--------------izDQ6ZYJOD2yrLpdDKf4c9Fk
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 4/15/25 1:23 PM, Jan Beulich wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:664560b3-400d-485c-b50b-0614f0a3e49e@suse.com">
      <pre wrap="" class="moz-quote-pre">On 15.04.2025 13:11, Oleksii Kurochko wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">On 4/10/25 5:35 PM, Jan Beulich wrote:
</pre>
        <blockquote type="cite">
          <pre wrap="" class="moz-quote-pre">On 08.04.2025 17:57, Oleksii Kurochko wrote:
</pre>
          <blockquote type="cite">
            <pre wrap="" class="moz-quote-pre">@@ -21,6 +22,22 @@ static struct intc_info __ro_after_init aplic_info = {
      .hw_version = INTC_APLIC,
  };
  
+static int aplic_irq_xlate(const uint32_t *intspec, unsigned int intsize,
</pre>
          </blockquote>
          <pre wrap="" class="moz-quote-pre">As you start adding functions calling indirectly, please consider adding cf_check
right away, even if right now this has no effect on RISC-V. That'll save you from
going through the entire RISC-V subtree later on to find them all.
</pre>
        </blockquote>
        <pre wrap="" class="moz-quote-pre">
Sure. I thought that it is a feature for x86 as I haven't seen such attribute for
Arm and RISC-V in GCC manuals.
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
And that looks to be correct. I was under the (admittedly vague) impression
Arm64 had something equivalent in hardware, which then merely needs enabling
in the compiler. Not sure about RISC-V, but seeing the endless flow of
patches enabling new extensions in binutils, it would perhaps even be
surprising if nothing along these lines was already in the works somewhere.</pre>
    </blockquote>
    <pre>You are right, something is already in the work:
- <a class="moz-txt-link-freetext" href="https://github.com/riscv/riscv-cfi">https://github.com/riscv/riscv-cfi</a>
- <a class="moz-txt-link-freetext" href="https://lore.kernel.org/lkml/20230213045351.3945824-1-debug@rivosinc.com/">https://lore.kernel.org/lkml/20230213045351.3945824-1-debug@rivosinc.com/</a> (interesting that
  they are enabling it for U-mode)


</pre>
    <pre>~ Oleksii
</pre>
  </body>
</html>

--------------izDQ6ZYJOD2yrLpdDKf4c9Fk--


From xen-devel-bounces@lists.xenproject.org Thu Apr 17 14:45:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 14:45:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.957942.1350932 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5QV0-0003Ad-Bx; Thu, 17 Apr 2025 14:45:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 957942.1350932; Thu, 17 Apr 2025 14:45:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5QV0-0003AW-81; Thu, 17 Apr 2025 14:45:54 +0000
Received: by outflank-mailman (input) for mailman id 957942;
 Thu, 17 Apr 2025 14:45: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=nsoM=XD=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u5QUy-00039b-OB
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 14:45:52 +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 a40d288c-1b9a-11f0-9eb0-5ba50f476ded;
 Thu, 17 Apr 2025 16:45:44 +0200 (CEST)
Received: by mail-wr1-x42d.google.com with SMTP id
 ffacd0b85a97d-39ee5a5bb66so568746f8f.3
 for <xen-devel@lists.xenproject.org>; Thu, 17 Apr 2025 07:45:44 -0700 (PDT)
Received: from [10.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-22c50ed12f6sm321105ad.192.2025.04.17.07.45.38
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 17 Apr 2025 07:45:43 -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: a40d288c-1b9a-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744901143; x=1745505943; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=MgVW7PJ5FZR4n1WWl9xTDrX1OwgTpmvDuZfQJ6ltedM=;
        b=P5V0xthRLFYe69FsfOZIPpNMnEHvrI4GaUle2P9YBd0+GxfSGHn2KnwLcyoY0IMM9d
         h2uk9nIh0Hw2IcSAiqHB2semKavcTyrYRV3xSa670SBycIlAqmJKu/CCMW3Q4QEKWws5
         OsSA8l+EDzIVOZVSOCbaLaVpnUw+EtFSQgKxmc+6N1fYtOtA7SWRDt8LkhEnFknrhomm
         cWKl7T7LCL4OGv+CCUSOUIluMvHe/VxDF9VbaaYKlmqIv1YQUCfS/1pvy0IWtnNlcPF1
         336VWOrYCujGgnLr/IWaykI6kplzeiMMEIXy6mrwTzAh84VAIgheoTkK1eHvWiKcCRu3
         zKig==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744901143; x=1745505943;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=MgVW7PJ5FZR4n1WWl9xTDrX1OwgTpmvDuZfQJ6ltedM=;
        b=IjyxKRjhMdxXCHPvQymgcn46jpPXMIY8fEZGQHPnGojh8XXi9CVzQSBMfUjyz0K64r
         vmB8Ukn+SnqqgLxO903AgpJn9GbIm3qkWxy9hdINE02PMIexVapJQ2xRgLR/GY0ZqPPB
         IrpAT31wfSOUnbdZAET8VSEajzfque6kMtBibT01t3oTcYV4lWuZOg0bM5bO5IiNAl+/
         tQti4PIeuNMmhQ5n8QLPq5atWMk9QUofqypdWyB28YCMtQKupJkvKXq6fGkGkctgWxSl
         Wf2I+HLeNNOD6f7rJWBvmEwSLretQaOJSGVUbq3EQ2vLN5wfQMzZMavYvN/ENfJvNJID
         zfow==
X-Forwarded-Encrypted: i=1; AJvYcCWWcXJaKE0EY4fCeteOM38yho04c6FIBJpq2ctpa/JeU+CFasBDMch2vyMhECy+6wKHt5l2gNwgrHA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxoRffeb118acW4OAEf2FJY8V2BAQ6h1FUrOAvi7DmqxBdgk3jf
	OFynt6nx398Cj8HBzSfJFsYSPk8XaNeToY2Fxmz/cGOm6VwcWNx75LbuFqDTPQ==
X-Gm-Gg: ASbGncuJEQYeeTx/t4L/3TTNdE35suOaVMTruu5dtYjlglXzJog9fWVqKjWSYupKjZk
	hiXBxoPAx/Nst+Mxag9gKLJR0GliYqfqVHHHpSHlhtpqTPYYOieGmmlXtz/8a4AfvHxHStQb8fJ
	0IevJAm6oHmlZzy4JAwS69fJ8ZrCwN1Ja2s3HXAIOzvUCDh5vgDcoIoN5Tru+N8ROQCdULlZ+87
	G/iXFJT2K53cysoEbpmGl1CX4VGtgsdSP1m7MnPzrPZZT6ABmZq+izFJHnyL60nhCaQgwl80fxZ
	070Bfn/dbrhysGU9OGZe0crE/N6vSHq9Of/Pd6ZM2aMlXDaseCaxDx3xVg6/kADjiqHdO78TnWw
	2U/kyLVf31SIbFCpi8Wo0I+PX1A==
X-Google-Smtp-Source: AGHT+IE6G8m4apNKlZWVfM1TcsrpOYJC9iQeM1PZpRauspMaEKBLHLtF2w9wdkFmrrjzch8s2TH8IA==
X-Received: by 2002:a05:6000:240a:b0:39e:e588:6745 with SMTP id ffacd0b85a97d-39ee5b89e28mr5753031f8f.46.1744901143565;
        Thu, 17 Apr 2025 07:45:43 -0700 (PDT)
Message-ID: <faa552cb-d933-492b-b3ed-e803856265ab@suse.com>
Date: Thu, 17 Apr 2025 16:45:34 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 7/8] xen/common: dom0less: introduce common
 domain-build.c
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <cover.1744626032.git.oleksii.kurochko@gmail.com>
 <9dbf651ce177a7292f80879373e86a51305f216e.1744626032.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: <9dbf651ce177a7292f80879373e86a51305f216e.1744626032.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 14.04.2025 17:56, Oleksii Kurochko wrote:
> --- a/xen/include/xen/fdt-domain-build.h
> +++ b/xen/include/xen/fdt-domain-build.h
> @@ -5,6 +5,7 @@
>  #include <xen/bootfdt.h>
>  #include <xen/device_tree.h>
>  #include <xen/fdt-kernel.h>
> +#include <xen/mm.h>
>  #include <xen/types.h>
>  
>  #if __has_include(<asm/domain_build.h>)
> @@ -32,7 +33,37 @@ int make_memory_node(const struct kernel_info *kinfo, int addrcells,
>                       int sizecells, const struct membanks *mem);
>  int make_timer_node(const struct kernel_info *kinfo);
>  
> -unsigned int get_allocation_size(paddr_t size);
> +
> +static inline int get_allocation_size(paddr_t size)
> +{
> +    /*
> +     * get_order_from_bytes returns the order greater than or equal to
> +     * the given size, but we need less than or equal. Adding one to
> +     * the size pushes an evenly aligned size into the next order, so
> +     * we can then unconditionally subtract 1 from the order which is
> +     * returned.
> +     */
> +    return get_order_from_bytes(size + 1) - 1;
> +}
> +
> +typedef unsigned long (*copy_to_guest_phys_cb)(struct domain *d,
> +                                               paddr_t gpa,
> +                                               void *buf,

This very much looks like the latest now, when the code is made common,
it wants to be const void *. Even if this may require another prereq
patch.

However, instead of using a function pointer, couldn't the now common
code call copy_to_guest_phys_flush_dcache() conditionally upon
IS_ENABLED(CONFIG_<whatever>)? Or provide a weak
copy_to_guest_phys_flush_dcache() which would simply call
copy_to_guest_phys()?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Apr 17 14:49:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 14:49:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.957955.1350941 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5QYm-0003k9-QT; Thu, 17 Apr 2025 14:49:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 957955.1350941; Thu, 17 Apr 2025 14:49: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 1u5QYm-0003k2-Mi; Thu, 17 Apr 2025 14:49:48 +0000
Received: by outflank-mailman (input) for mailman id 957955;
 Thu, 17 Apr 2025 14:49: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=nsoM=XD=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u5QYl-0003jw-Fk
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 14:49:47 +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 33b749c9-1b9b-11f0-9ffb-bf95429c2676;
 Thu, 17 Apr 2025 16:49:45 +0200 (CEST)
Received: by mail-wr1-x432.google.com with SMTP id
 ffacd0b85a97d-3914aba1ce4so651481f8f.2
 for <xen-devel@lists.xenproject.org>; Thu, 17 Apr 2025 07:49:45 -0700 (PDT)
Received: from [10.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-22c50bdaaf2sm691515ad.13.2025.04.17.07.49.38
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 17 Apr 2025 07:49:44 -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: 33b749c9-1b9b-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744901384; x=1745506184; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ur8+9OlVI+wp20dKdWKhaFm4HZ+aA2TuIWonAM00Ukg=;
        b=QhZvvr+tkjdTj0FhRCwM/mAclPVoZUzggTOo2o6JW2/mNxDLw3nwQ5W4XgYrRZww74
         efZgXVXPLxG3io/34Yax8V0y4tsEzARvZtL5CUwfKJLIsxqfgdKGAHPhRAQq0OYeyshn
         5b0VdQcJ+O/ScV0ajNw01TFVSKjG4NJ+yQ8kQfZHVigIv56XYlwDQ5/+fjUofTZ+lTTp
         bYlNHsnmHjfZ2Frx0/6/9hzsSsjxvJATmXidU1dyerYxOOYPZxjAOpcivJzD1GoDgiCQ
         6lxsx4pgGTxK2EAZNvJHaEzGVNfeRr1nhL+6WRx1HDjbgats0VeWFwe0tmGYNMyjRHeT
         8CYg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744901384; x=1745506184;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ur8+9OlVI+wp20dKdWKhaFm4HZ+aA2TuIWonAM00Ukg=;
        b=d2BHz+vxLyi8xzO6rdWiAeNvnKhscH4fZYWACQDRL1uIwoVzQhEK3w+isU+8x8ZoHW
         73eqm+iE86pZ8lkT7HAYuhghdoYSZBNAVIfqYSipTCIMTmYCnxILZ6JmOEvcfy+rnv+e
         rTSq8H264RwHViRW52q4IVqWxYak6Aey4UxVMelnCqTS7P8PFofl2h0cnnkTE7wwF6zd
         ogy+VWltber58oh3Qp7QJKRFJDiVkW2qnw26SqcrqQaD/60Eazs7oODXtvbzA6Gq1lXu
         MNbCQCM4DLoWLuZcI/mSZ47tuvblUA4y9fWYXKUaK4t0bNIdwD40W2+6iyE+FLdOT//U
         6itw==
X-Forwarded-Encrypted: i=1; AJvYcCWz6tFVJsdJ7/X1E9l9S38TLEEJEMAyVj6q9weGLHI5tXrLG7NIznIWKFey1eTtreYtn9yBHtmGMQY=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy0qH2ENk1MlFXIgzOO76h/es1cf0L94jlJz4ZLNHZchuITiueB
	NNqYqOr1dYs3X8cqOvsCwUWVnWehxUupS5Xi+3Dt9x754YEPZYd795/jtq0flw==
X-Gm-Gg: ASbGncsXOX8VP4GkrEhK6lBsUGR2106XMGygT7vb9Xf8qIAakk2F6jVQ2eVn4nlhTKj
	KaONbO8vIxLkuMGH0D9QwivMI+JGd3M4q8VcqUQSf+87GzwizZxuBZxaRLA0tW8xGj7CInzzhht
	EuI4pMdSPBnIenHhGPXJwesH6XeGQWzctvU8iyHel87RFltM//xRwiXr3guHaJa7xz+IQbORSbZ
	ztflFFG6h66lUQHKgwAkiOMS2KRBU7rxyZZDf7Ec2Hev5PwHV9G/Os+CK5HgZ3ae3XCnlt6poYU
	3C+t9XDijjHghgCO1EBH9HLXTRNo3HrBrGbE0aDR7V1sDZg8yQ1VZm0dv3hgpg0sLF/n3/jj/ss
	LVDOA7IoEegzXDTxAEDr4Xgp33KdfIZ+kA3k/
X-Google-Smtp-Source: AGHT+IFc2ZbPJELB0pin/7qbXRDcrnnuDyaxYc+MGohMD3WpDFda05thNlBXy7hk1F8R4zgCJAkUzg==
X-Received: by 2002:a5d:64e2:0:b0:39d:724f:a8a0 with SMTP id ffacd0b85a97d-39ee5ba03e4mr5309111f8f.58.1744901384542;
        Thu, 17 Apr 2025 07:49:44 -0700 (PDT)
Message-ID: <6f50dea4-60e6-46b0-9363-d943ba553334@suse.com>
Date: Thu, 17 Apr 2025 16:49:34 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 03/14] xen/riscv: introduce ioremap()
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1744126720.git.oleksii.kurochko@gmail.com>
 <6d91eeabe2735de93bfcf2a2420e2059a8f35e52.1744126720.git.oleksii.kurochko@gmail.com>
 <84089b6d-efeb-4613-85b9-eb10d11d7338@suse.com>
 <f315bc11-c537-4dca-9e62-a6d3f02733e4@gmail.com>
 <6b226b72-11a4-4004-b42d-0e280de83539@suse.com>
 <bbfdc4a0-54f0-4a9d-aa6d-2cf85ec03411@gmail.com>
 <a71db245-5b0b-435e-8e58-cb43c5162862@suse.com>
 <7d5356a5-53b7-4d1b-82ff-bc6f81a2f445@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: <7d5356a5-53b7-4d1b-82ff-bc6f81a2f445@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 17.04.2025 16:37, Oleksii Kurochko wrote:
> 
> On 4/17/25 4:24 PM, Jan Beulich wrote:
>> On 17.04.2025 16:20, Oleksii Kurochko wrote:
>>> On 4/15/25 1:02 PM, Jan Beulich wrote:
>>>> On 15.04.2025 12:29, Oleksii Kurochko wrote:
>>>>> On 4/10/25 5:13 PM, Jan Beulich wrote:
>>>>>> On 08.04.2025 17:57, Oleksii Kurochko wrote:
>>>>>>> Based on RISC-V unpriviliged spec ( Version 20240411 ):
>>>>>>> ```
>>>>>>> For implementations that conform to the RISC-V Unix Platform Specification,
>>>>>>> I/O devices and DMA operations are required to access memory coherently and
>>>>>>> via strongly ordered I/O channels. Therefore, accesses to regular main memory
>>>>>>> regions that are concurrently accessed by external devices can also use the
>>>>>>> standard synchronization mechanisms. Implementations that do not conform
>>>>>>> to the Unix Platform Specification and/or in which devices do not access
>>>>>>> memory coherently will need to use mechanisms
>>>>>>> (which are currently platform-specific or device-specific) to enforce
>>>>>>> coherency.
>>>>>>>
>>>>>>> I/O regions in the address space should be considered non-cacheable
>>>>>>> regions in the PMAs for those regions. Such regions can be considered coherent
>>>>>>> by the PMA if they are not cached by any agent.
>>>>>>> ```
>>>>>>> and [1]:
>>>>>>> ```
>>>>>>> The current riscv linux implementation requires SOC system to support
>>>>>>> memory coherence between all I/O devices and CPUs. But some SOC systems
>>>>>>> cannot maintain the coherence and they need support cache clean/invalid
>>>>>>> operations to synchronize data.
>>>>>>>
>>>>>>> Current implementation is no problem with SiFive FU540, because FU540
>>>>>>> keeps all IO devices and DMA master devices coherence with CPU. But to a
>>>>>>> traditional SOC vendor, it may already have a stable non-coherency SOC
>>>>>>> system, the need is simply to replace the CPU with RV CPU and rebuild
>>>>>>> the whole system with IO-coherency is very expensive.
>>>>>>> ```
>>>>>>>
>>>>>>> and the fact that all known ( to me ) CPUs that support the H-extension
>>>>>>> and that ones is going to be supported by Xen have memory coherency
>>>>>>> between all I/O devices and CPUs, so it is currently safe to use the
>>>>>>> PAGE_HYPERVISOR attribute.
>>>>>>> However, in cases where a platform does not support memory coherency, it
>>>>>>> should support CMO extensions and Svpbmt. In this scenario, updates to
>>>>>>> ioremap will be necessary.
>>>>>>> For now, a compilation error will be generated to ensure that the need to
>>>>>>> update ioremap() is not overlooked.
>>>>>>>
>>>>>>> [1]https://patchwork.kernel.org/project/linux-riscv/patch/1555947870-23014-1-git-send-email-guoren@kernel.org/
>>>>>> But MMIO access correctness isn't just a matter of coherency. There may not
>>>>>> be any caching involved in most cases, or else you may observe significantly
>>>>>> delayed or even dropped (folded with later ones) writes, and reads may be
>>>>>> serviced from the cache instead of going to actual MMIO. Therefore ...
>>>>>>
>>>>>>> --- a/xen/arch/riscv/Kconfig
>>>>>>> +++ b/xen/arch/riscv/Kconfig
>>>>>>> @@ -15,6 +15,18 @@ config ARCH_DEFCONFIG
>>>>>>>     	string
>>>>>>>     	default "arch/riscv/configs/tiny64_defconfig"
>>>>>>>     
>>>>>>> +config HAS_SVPBMT
>>>>>>> +	bool
>>>>>>> +	help
>>>>>>> +	  This config enables usage of Svpbmt ISA-extension ( Supervisor-mode:
>>>>>>> +	  page-based memory types).
>>>>>>> +
>>>>>>> +	  The memory type for a page contains a combination of attributes
>>>>>>> +	  that indicate the cacheability, idempotency, and ordering
>>>>>>> +	  properties for access to that page.
>>>>>>> +
>>>>>>> +	  The Svpbmt extension is only available on 64-bit cpus.
>>>>>> ... I kind of expect this extension (or anything else that there might be) will need
>>>>>> making use of.
>>>>> In cases where the Svpbmt extension isn't available, PMA (Physical Memory Attributes)
>>>>> is used to control which memory regions are cacheable, non-cacheable, readable, writable,
>>>>> etc. PMA is configured in M-mode by the firmware (e.g., OpenSBI), as is done in Andes
>>>>> cores, or it can be fixed at design time, as in SiFive cores.
>>>> How would things work if there was a need to map a RAM page uncacheable (via
>>>> ioremap() or otherwise)?
>>> My understanding is that Svpbmt is only needed when someone wants to change the memory
>>> attribute of a page set by PMA.
>>>
>>> The question is if non-cacheable RAM page is really needed if we have a coherency?
>> Aiui coherency here is among CPUs.
> 
> ```
> For implementations that conform to the RISC-V Unix Platform Specification,
> I/O devices and DMA operations are required to access memory coherently and
> via strongly ordered I/O channels. Therefore, accesses to regular main memory
> regions that are concurrently accessed by external devices can also use the
> standard synchronization mechanisms. Implementations that do not conform
> to the Unix Platform Specification and/or in which devices do not access
> memory coherently will need to use mechanisms
> (which are currently platform-specific or device-specific) to enforce
> coherency.
> ```
> Based on this from the spec, coherency here is not only among CPUs.
> 
> 
>> Properties of devices in the system are
>> largely unknown?
> 
> Yes, but still not sure what kind of property requires ioremap() which won't work
> without Svpmbt. Could you please tell me an example?

Well, above you said they all need to access memory coherently. That's the
"property" I was referring to.

>> (Beyond this there may also be special situations in which
>> one really cares about data going directly to RAM.)
> 
> If there are such special cases, I assume that the firmware or hardware (in the case
> of fixed PMA) will provide a non-cacheable region.

How could they? Firmware may be unaware of specific properties of specific
devices a user adds to a system.

Jan

> In that case, the user should be
> aware of this region and use it for those specific scenarios.
> 
> ~ Oleksii
> 



From xen-devel-bounces@lists.xenproject.org Thu Apr 17 14:54:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 14:54:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.957970.1350950 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5QdS-0005T6-DP; Thu, 17 Apr 2025 14:54:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 957970.1350950; Thu, 17 Apr 2025 14:54: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 1u5QdS-0005Sz-Af; Thu, 17 Apr 2025 14:54:38 +0000
Received: by outflank-mailman (input) for mailman id 957970;
 Thu, 17 Apr 2025 14:54:36 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=nsoM=XD=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u5QdQ-0005St-5J
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 14:54:36 +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 dff35968-1b9b-11f0-9ffb-bf95429c2676;
 Thu, 17 Apr 2025 16:54:34 +0200 (CEST)
Received: by mail-wr1-x42f.google.com with SMTP id
 ffacd0b85a97d-39ac9aea656so1145602f8f.3
 for <xen-devel@lists.xenproject.org>; Thu, 17 Apr 2025 07:54:34 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 98e67ed59e1d1-3086136627asm3719358a91.48.2025.04.17.07.54.29
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 17 Apr 2025 07:54:32 -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: dff35968-1b9b-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744901673; x=1745506473; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=E9bcYpxVgU6XOGveVr6QOITJB5fiwP1yAxIxQ6yXucQ=;
        b=SLi8MCL1RysG/lNmA/aDk9Hmffxr2rnngzxH+fnhpXLboDswFF0PFIpEcpiNFWTIFT
         zQ/8ZWElcb4OPGrGLk5cpz+L8oowvTECfSCQDj3D0WNk/KaPLvoQ8TqMCei/+fDyZxlY
         vdSZzOKBLPSp2eIYvHwJlII8AwcBE6M3yd5HzueE2mTbkLJB90UGl4Dm56Kj3DM+9gx7
         L0iz8cPskWB68uTU+SaCt/grKimkjnOPfTZhkZrHfLDHPATGBI5k2GVunYI5340cqfTy
         TV3qChwJPa1o7Hku/l2RxIikBv76UwGxCPJAz9eijixkFl6fIjUfwV40Czo2tHkdJotQ
         rJtw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744901673; x=1745506473;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=E9bcYpxVgU6XOGveVr6QOITJB5fiwP1yAxIxQ6yXucQ=;
        b=XRo29vqoEi6i9XdW8NEfwt47PFgjxqWO8ZrYaSYtKHBl8DttqW0UtD+eHK/l6rV7pf
         bNkPv8NdEYwmMFBmmNp9ZaYvY53Xc7GXSoPZG6OvtApnEI+ctW9en5bdsK10VWiQnDfz
         v7At9GGn2uBTuBx/ShLleRncLUnFCultL4NvIJA2K4hJZnODO9cjREd+mN9kF+iabHrM
         xmrqf6t5sGc/i6PIZqySsOQ4thnADiAG6CPZ9x25VwrZoE9uZOILgEEV+KG8qEWVZH/q
         gv4aO+vvosPpXu/rFs7Zp/PENRfqXTpBAjEVXmXxVFxrxf9KuXoNSPw45+ms1eASPU9D
         e7TA==
X-Forwarded-Encrypted: i=1; AJvYcCUeCj0qV5mHC98034ueP2ydwXYCzNn5T4sRUWtHqwK4JTpzNOHchVVyjLiR5p8w9+lje/34+jMhzcA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzdIZxH56kk/ht/SM+zyjGMTpbpBq2oNuEF7JulSQNdE8Vu2S6U
	V/O2sdlNvUAjssfqFMouP/tdrlKIaVXPT1qX98MPtMLFI3FMcRUeY09VTIBbPA==
X-Gm-Gg: ASbGncsalkp9tedK/aWPrhLwxO4UR+b/wZYzSMmjslDGy3gaXnSzDBi6RoHAWtbi+Kw
	0lOjVMEv4lZvqWj43nBiw3ym/jSlRYn5N693QFWLnYh6K4ZzY+4iJkspmzYIhtMlHfSSbSLVoyl
	sx8vTaSIXsSLkd362GoondnxEyO0/XK9YHsKdLlC6219tDu1La+2cmLJTV7DoZWX8aOko+HSSPj
	I24hVlAc89MwzIgIyZbAZBPt8PRh4cQ29I3bU/csRqzkTWNdfHrC/4QD8+GBZU+kkgyCSfelhng
	sag2GZG/OHbOF/GxGUh04d5qIiEmosOU42vrjzyZKl3/0veP5ZZfaIit4vYzFnkKKZXayUaegWg
	u8S/DgDFaHBW21zvYR4ea1i4XhA==
X-Google-Smtp-Source: AGHT+IEDXmx2fLe90asuNdfO/gtiNvc5Vk3R1g2z6Niy7lcGgSf0KwnkGJpXJ0GLIDo/SYayMtVLDQ==
X-Received: by 2002:a5d:5f42:0:b0:390:ee01:68fa with SMTP id ffacd0b85a97d-39ee5b3731dmr5894104f8f.24.1744901673488;
        Thu, 17 Apr 2025 07:54:33 -0700 (PDT)
Message-ID: <c59f6453-92eb-4015-bb2d-e0d06a668bf4@suse.com>
Date: Thu, 17 Apr 2025 16:54:24 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 01/13] x86/boot: add cmdline to struct boot_domain
To: Alejandro Vallejo <agarciav@amd.com>
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org
References: <20250417124844.11143-1-agarciav@amd.com>
 <20250417124844.11143-2-agarciav@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: <20250417124844.11143-2-agarciav@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 17.04.2025 14:48, Alejandro Vallejo wrote:
> From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
> 
> 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>
> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
> Signed-off-by: Alejandro Vallejo <agarciav@amd.com>

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

> --- a/xen/arch/x86/hvm/dom0_build.c
> +++ b/xen/arch/x86/hvm/dom0_build.c
> @@ -653,7 +653,7 @@ static int __init pvh_load_kernel(
>      void *image_start = image_base + image->headroom;
>      unsigned long image_len = image->size;
>      unsigned long initrd_len = initrd ? initrd->size : 0;
> -    const char *cmdline = image->cmdline_pa ? __va(image->cmdline_pa) : NULL;
> +    unsigned long cmdline_len = bd->cmdline ? strlen(bd->cmdline) + 1 : 0;

... this becoming either size_t (as you have it elsewhere) or unsigned int.
Happy to make the adjustment while committing, so long as you agree with
either of the suggested variants.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Apr 17 14:55:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 14:55:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.957979.1350961 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5Qdv-0005vp-Lc; Thu, 17 Apr 2025 14:55:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 957979.1350961; Thu, 17 Apr 2025 14:55: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 1u5Qdv-0005vi-Is; Thu, 17 Apr 2025 14:55:07 +0000
Received: by outflank-mailman (input) for mailman id 957979;
 Thu, 17 Apr 2025 14:55: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=CA5y=XD=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u5Qdu-0005St-RQ
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 14:55:06 +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 f27a1014-1b9b-11f0-9ffb-bf95429c2676;
 Thu, 17 Apr 2025 16:55:05 +0200 (CEST)
Received: by mail-wr1-x436.google.com with SMTP id
 ffacd0b85a97d-3913d129c1aso657345f8f.0
 for <xen-devel@lists.xenproject.org>; Thu, 17 Apr 2025 07:55:05 -0700 (PDT)
Received: from localhost.localdomain (host-92-26-98-202.as13285.net.
 [92.26.98.202]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39eae96c02esm20175944f8f.23.2025.04.17.07.55.03
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 17 Apr 2025 07:55:04 -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: f27a1014-1b9b-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744901704; x=1745506504; 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=nzvS1du9WvDKG1XtS3bVT+jcwbh9Tzb4+jAEETHwlvU=;
        b=APJmGgc31swBQBOdkzfEqpbMafVc/x/2/y8AMDLDQ9tQhtkD9X1TuuXsFJTcnYCj3N
         XZCMy20lVcrPAuEr487GxCeW6QqGgUBgDb4zPxOHY53mcCIo02rfB/609ps9IqzKQifF
         b/5EIH7BqKVw92W2gV75rIw+LjhAOTCmWu2w0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744901704; x=1745506504;
        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=nzvS1du9WvDKG1XtS3bVT+jcwbh9Tzb4+jAEETHwlvU=;
        b=PZiEmpFKxckrX//G+3DUUqBcSHB0KkczPgDLTY/xOtT6ADX1NLQje7nVrkYZg11G+0
         yg8uy3Awu5QPe/OB6fgd+NYjlGTNH2nVyw0V9ck9cvit4j1EIVCVkB6OEG6aa3Lnboou
         CZqRjptemWgKQSrrPymxzYZ4I2+y1vKpExn9rp2YVFXsm6hpO1EKjDUxkFG2m4cbVa5/
         oLIHt6qAV1XRKBAY6hcMNngPHxIqO0kE15ISr+/aQ51+nho47yYZV7oFdq1oBRo1768x
         H3L3880NWstLps9WlrobFNKogINGZK5EpiS8LkxAk4TWOZNPFU4BF/odaHXkKMFkQ5O3
         e0FQ==
X-Gm-Message-State: AOJu0Yw/ugxNr/SLqYJqUo+l7cGciCCVEU+FZ5i8eq6qAukFkdZQSbdJ
	V699vFUIB9faUJkhb8ehLW4dblMgVrqOsxOgd0wuOSqm0m0Uvbl04h/cN76/FZ+Cus/TD90V8BM
	LQNc=
X-Gm-Gg: ASbGncuiPwVPGPGbYaVjOHr5l/y5enOd4ek6VSlmDkhmN1xWzmh+Hd9MGFrxBE41XVv
	unMPQvRl7WXfY0g8O+qIIVJlP8UO6xkLea2LQC52qtG0mwLSDZ/r5Ql2KfwE/ZSLchL6X/MxTPz
	e2CcV4/a1ZNdCzKHZmOK3vozakx3Dg+AsRxmFJ+ktna5xpLwv6n5mNcPxovg7D2z15m9sLKtpDS
	1TOId0cPkOYUqXT8bDEsuzVanJrKSNBNkquTNAbRw+eYmKb5ArkdeTPgVN5IhoUiP4Es7AmPpWW
	/Cdj3w8nv2MIw5Ie00AZxvMoV9rudJOHub/VLb5V3A8dweYSnyWmOLzhgticFh9O9T/e7lNP1eH
	eSe2dgI4DjIRLPQ==
X-Google-Smtp-Source: AGHT+IEAUfRiY4zb9ji7d3oNtoCvF/jWCcUtbHJdOzrBKcqhtIDs0azrTxWjgk2ZQgOdCzrTB6QiXA==
X-Received: by 2002:a05:6000:1acf:b0:39c:1efb:eec9 with SMTP id ffacd0b85a97d-39ef9cd9deamr39278f8f.13.1744901704382;
        Thu, 17 Apr 2025 07:55:04 -0700 (PDT)
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?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Jason Andryuk <jason.andryuk@amd.com>,
	"Daniel P . Smith" <dpsmith@apertussolutions.com>
Subject: [PATCH] Update to latest Argo
Date: Thu, 17 Apr 2025 15:55:02 +0100
Message-Id: <20250417145502.2565165-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 bugfixes I submitted during commit 36500bcb5e24 ("Overhaul how Argo is
built and packged") have now been merged.

Update the version used, and drop the -Wno-error workaround.

Link: https://github.com/OpenXT/linux-xen-argo/pull/21
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: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
CC: Jason Andryuk <jason.andryuk@amd.com>
CC: Daniel P. Smith <dpsmith@apertussolutions.com>
---
 .gitlab-ci.yml        | 2 +-
 scripts/build-argo.sh | 1 -
 2 files changed, 1 insertion(+), 2 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 74335363d5ed..dcf76db6ec62 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -61,7 +61,7 @@ linux-6.6.56-x86_64:
   script: ./scripts/build-linux.sh
   variables:
     LINUX_VERSION: 6.6.56
-    ARGO_SHA: "705a7a8a624b42e13e655d3042059b8a85cdf6a3"
+    ARGO_SHA: "cf73819cacc945baca1a7421e5836d1bd481739b"
     ARGOEXEC_SHA: "d900429f6640acc6f68a3d3a4c945d7da60625d8"
 
 microcode-x86:
diff --git a/scripts/build-argo.sh b/scripts/build-argo.sh
index ef7057d847d4..cd01078a3f39 100755
--- a/scripts/build-argo.sh
+++ b/scripts/build-argo.sh
@@ -20,7 +20,6 @@ git -C "${WORKDIR}/linux-xen-argo" switch --detach FETCH_HEAD
 make -j$(nproc) -C "linux-${LINUX_VERSION}" \
      M="${WORKDIR}/linux-xen-argo/argo-linux" \
      KBUILD_MODPOST_WARN=1 \
-     CFLAGS_MODULE="-Wno-error" \
      modules
 install -D -m644 "${WORKDIR}/linux-xen-argo/argo-linux/xen-argo.ko" \
      "${ARGODIR}/lib/modules/${LINUX_VERSION}/updates/xen-argo.ko"
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Apr 17 14:58:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 14:58:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.957994.1350971 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5QhH-0007Qh-4R; Thu, 17 Apr 2025 14:58:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 957994.1350971; Thu, 17 Apr 2025 14: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 1u5QhH-0007Qa-1G; Thu, 17 Apr 2025 14:58:35 +0000
Received: by outflank-mailman (input) for mailman id 957994;
 Thu, 17 Apr 2025 14:58: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=VG4i=XD=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1u5QhG-0007QU-6o
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 14:58:34 +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 6e6c0f34-1b9c-11f0-9eb0-5ba50f476ded;
 Thu, 17 Apr 2025 16:58:33 +0200 (CEST)
Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org
 [IPv6:2a07:de40:b281:104:10:150:64:97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out1.suse.de (Postfix) with ESMTPS id C1CA021188;
 Thu, 17 Apr 2025 14:58:31 +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 8CA1F137CF;
 Thu, 17 Apr 2025 14:58:31 +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 8ljGIBcXAWgVXQAAD6G6ig
 (envelope-from <jgross@suse.com>); Thu, 17 Apr 2025 14:58: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: 6e6c0f34-1b9c-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1744901911; 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=h1el0skekZwg5xloLGSlBGc/UyrasVW1Uyj84eqJx/c=;
	b=GWh6rACRa6vHTP1bcMV3743eoPLcXqc4OpUuu2V49493emDe+z6sxFsMnB8hQ0k9nGk0qm
	GnPnodgL+uorLbj55TDXgOXVCvckeALR0AObsLS0MxnD7wr42Hn6N6Yq+6Y9DVYODrYcNm
	ObKzuosXsAk2Ur9sHEdmPa45q53KSBQ=
Authentication-Results: smtp-out1.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=GWh6rACR
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1744901911; 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=h1el0skekZwg5xloLGSlBGc/UyrasVW1Uyj84eqJx/c=;
	b=GWh6rACRa6vHTP1bcMV3743eoPLcXqc4OpUuu2V49493emDe+z6sxFsMnB8hQ0k9nGk0qm
	GnPnodgL+uorLbj55TDXgOXVCvckeALR0AObsLS0MxnD7wr42Hn6N6Yq+6Y9DVYODrYcNm
	ObKzuosXsAk2Ur9sHEdmPa45q53KSBQ=
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.15-rc3
Date: Thu, 17 Apr 2025 16:58:31 +0200
Message-ID: <20250417145831.23359-1-jgross@suse.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Rspamd-Queue-Id: C1CA021188
X-Spam-Score: -3.01
X-Rspamd-Action: no action
X-Spamd-Result: default: False [-3.01 / 50.00];
	BAYES_HAM(-3.00)[99.99%];
	MID_CONTAINS_FROM(1.00)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	R_MISSING_CHARSET(0.50)[];
	R_DKIM_ALLOW(-0.20)[suse.com:s=susede1];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	MIME_GOOD(-0.10)[text/plain];
	MX_GOOD(-0.01)[];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	RBL_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	MIME_TRACE(0.00)[0:+];
	ARC_NA(0.00)[];
	FUZZY_BLOCKED(0.00)[rspamd.com];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	DKIM_TRACE(0.00)[suse.com:+];
	SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	RCVD_COUNT_TWO(0.00)[2];
	FROM_EQ_ENVFROM(0.00)[];
	FROM_HAS_DN(0.00)[];
	RCVD_TLS_ALL(0.00)[];
	TO_DN_NONE(0.00)[];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	DNSWL_BLOCKED(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	RCPT_COUNT_THREE(0.00)[4];
	ASN(0.00)[asn:25478, ipnet:::/0, country:RU];
	DBL_BLOCKED_OPENRESOLVER(0.00)[imap1.dmz-prg2.suse.org:rdns,imap1.dmz-prg2.suse.org:helo,suse.com:mid,suse.com:dkim]
X-Rspamd-Server: rspamd1.dmz-prg2.suse.org
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.15a-rc3-tag

xen: branch for v6.15-rc3

It contains just a single fix for the Xen multicall driver avoiding
a percpu variable referencing initdata by its initializer.


Thanks.

Juergen

 arch/x86/xen/multicalls.c | 26 ++++++++++++++------------
 arch/x86/xen/smp_pv.c     |  1 -
 arch/x86/xen/xen-ops.h    |  3 ---
 3 files changed, 14 insertions(+), 16 deletions(-)

Juergen Gross (1):
      xen: fix multicall debug feature


From xen-devel-bounces@lists.xenproject.org Thu Apr 17 15:00:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 15:00:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.958004.1350980 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5Qiz-0000UU-DC; Thu, 17 Apr 2025 15:00:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 958004.1350980; Thu, 17 Apr 2025 15:00: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 1u5Qiz-0000UN-Ae; Thu, 17 Apr 2025 15:00:21 +0000
Received: by outflank-mailman (input) for mailman id 958004;
 Thu, 17 Apr 2025 15:00: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=nsoM=XD=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u5Qix-0000UF-LQ
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 15:00:19 +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 acb09b02-1b9c-11f0-9ffb-bf95429c2676;
 Thu, 17 Apr 2025 17:00:17 +0200 (CEST)
Received: by mail-wr1-x433.google.com with SMTP id
 ffacd0b85a97d-39ee5a5bb66so589695f8f.3
 for <xen-devel@lists.xenproject.org>; Thu, 17 Apr 2025 08:00:17 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 d75a77b69052e-47ae9c4ce42sm98991cf.43.2025.04.17.08.00.15
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 17 Apr 2025 08:00: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: acb09b02-1b9c-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744902017; x=1745506817; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=48QHCiULivBXj3ock91PjLD0fxWJWNOWWAy1791nwQw=;
        b=F0qAHuezRO9gKi09ckY5HUpTXEFDlyto33jl0YvpMB4EOgfpMVVO1SlLpTLXG3TKDg
         wq9CHeHLE3LN+Ml2z+Fm4cEuYxAOD9rc+GpC+wtgT0LsC0QYF/QvGwRmgpk1ZO/EDhWc
         fNSMy9h6s8PD81o3ljMEisiI2fMIyIbEuwif1wKVH4vYR/Og8NdEJ2yp6PfKP9bOyRqC
         LDSg8HtyfQfX/7M9ox1gnuJwh1cOKRy5sBErmJGnegg/oWgzJ7KWnzig1pURNwn/h+B+
         JJEBHgQvw644mxJVNpXdPzgfDmNznei7rcRlWdngVFuf+ZMdJdRQUTU5TVafXrdVPGMS
         VCfA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744902017; x=1745506817;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=48QHCiULivBXj3ock91PjLD0fxWJWNOWWAy1791nwQw=;
        b=OmgxMT57td5tQAfROFSCVKYSJDHXFZI7HBBy2KPxHhwLJPR/IDGtLbTf9PlazTc5XE
         X+o4z/MPdwMA5mAiJRb/9jdQV54n4Lyh9UuzUDYfyuDQgbi/uXFQyFtoC9aW0JWvBsN2
         fmsX8EbuvGPOIm/qeoGtTJzyDyGHrn96ZvsjnRnvas5XmpKrJzkinopRELVfuiXgUB6l
         MipySyCSmytk/kTN6n8NEo2Ij1xxo3G6l/XT3scjZaNEMQXdU4c2/P7MxiAW54TcaLUj
         rTXUuhHT2lEFet8uKKA3TMGz71/car+iU5beQHUFQePhsqrqdCFZJTXj/XkJucWQtalK
         unhQ==
X-Forwarded-Encrypted: i=1; AJvYcCUeR7Bh0y/LnJP5vdeWsRiFzBtmmQXllvooUsiGq3fOFt919iNlHgZdtkyeDKM0mXTUapHMYVpcuz4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzBoGkx99D8hFdEqhKRZuDVug+TK3B4R5N+8e27GR5jxU+LLeXL
	1Bj5sQWxBrPQGJdZEwIrVJLPhJFaAf3NL7AxFJO0AhveevuY0H3LPSsdgoznZA==
X-Gm-Gg: ASbGnct8SjEzpilN9Jzn02IlNem2X6iIe4s013QH5oxg1AxYF9dSVDqM7Wc7L5Cg5AT
	OKSriuqjrbubad/Ysw1h3WCHub+5oQrHyotSbfwEHdqNh3KcXL9kKGbv/51MuFayk2FV4LNxcrZ
	o6413sGRGmulBZ8tDpOwiD8wlfZLtJrwwxozWhnNvJGlZuUAIoPuZ+TvZ13r7Z6rKCoqg6wfT4Q
	ZiN/ZamIvG+/0C4d/n3YapNWOGP3tt7XuzI3tAyftOYozf7wrK1aV48FcF58+EPPtIKj8Vnf68w
	qbLnEo6sJ+M1oo9iFu57TI8u7nV5HfnJ+huRFW0mQCIRqpzYsFcQoavMHFhYI+Twgjj7gno+CaV
	09cyihpqS4Vki1Caw8PFyNGsWyA==
X-Google-Smtp-Source: AGHT+IGVvLWyAYYkLWnib7g6/qJKPyHIGmsBKYN1DaA4uHTlMsN1J6qG1zsZFbmhoObVJsMXK2NB4A==
X-Received: by 2002:a05:6000:2508:b0:391:4743:6dc2 with SMTP id ffacd0b85a97d-39ee5b1cf93mr5523499f8f.25.1744902017038;
        Thu, 17 Apr 2025 08:00:17 -0700 (PDT)
Message-ID: <6b7728d0-0464-44ad-8af6-e2816e83a2a6@suse.com>
Date: Thu, 17 Apr 2025 17:00:12 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 02/13] kconfig: introduce domain builder config options
To: Alejandro Vallejo <agarciav@amd.com>
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20250417124844.11143-1-agarciav@amd.com>
 <20250417124844.11143-3-agarciav@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: <20250417124844.11143-3-agarciav@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 17.04.2025 14:48, Alejandro Vallejo wrote:
> --- /dev/null
> +++ b/xen/common/domain-builder/Kconfig
> @@ -0,0 +1,18 @@
> +
> +menu "Domain Builder Features"
> +depends on HAS_BOOT_INFO

That is, what's going to further be added here will not ...

> +config DOMAIN_BUILDER

...depend on this, but just on HAS_BOOT_INFO? Seems not very likely, but
I'll be looking forward to learn what the plans are.

Also, if the entire contents here is to depend on HAS_BOOT_INFO, can't
the "source" line pulling in this Kconfig be put inside "if HAS_BOOT_INFO"?
That would centralize definition and use of that symbol to a single file.

> +	bool "Domain builder (UNSUPPORTED)" if UNSUPPORTED
> +	select LIBFDT
> +	help
> +	  Xen has a built-in mechanisms to automatically construct domains
> +	  (like dom0) during the boot phase. The domain builder is an enhanced
> +	  form of that mechanism to enable constructing predefined domains
> +	  described on a flattened device tree.

I'm not a native speaker, but (perhaps because of that) "on" here reads
odd. More logical to me would be "by" or "via".

Jan


From xen-devel-bounces@lists.xenproject.org Thu Apr 17 15:12:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 15:12:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.958018.1350991 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5Qup-0003ts-DB; Thu, 17 Apr 2025 15:12:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 958018.1350991; Thu, 17 Apr 2025 15: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 1u5Qup-0003tl-AW; Thu, 17 Apr 2025 15:12:35 +0000
Received: by outflank-mailman (input) for mailman id 958018;
 Thu, 17 Apr 2025 15:12: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=nsoM=XD=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u5Qun-0003tf-S5
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 15:12:33 +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 62b2d533-1b9e-11f0-9eb0-5ba50f476ded;
 Thu, 17 Apr 2025 17:12:32 +0200 (CEST)
Received: by mail-wr1-x42d.google.com with SMTP id
 ffacd0b85a97d-3995ff6b066so571822f8f.3
 for <xen-devel@lists.xenproject.org>; Thu, 17 Apr 2025 08:12:32 -0700 (PDT)
Received: from [10.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-22c50bf3fffsm1022995ad.91.2025.04.17.08.12.29
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 17 Apr 2025 08:12:31 -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: 62b2d533-1b9e-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744902752; x=1745507552; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=+DjIJswXbzQRN1nmeRNSiSYfBHkFEVYJTL/dUGIK80M=;
        b=gtadMHIoono8HCdqvKxDncSZl2UqcHwDsaWPPrBoouZuI0gN+ZjoLrDQOoO90Sqdkt
         es7meIHNZgSU5M0rc8+GxsRyI22VafAu0f0NbmxDcVIMhaC+SEJa1F/3wphr3FqCWp6O
         u7cEEPQDhmUHoABwM+hqXAfDLQZxQ8NyGzWhPYM4TFdjTegP0p36XUP8dFOBcy4vo1JG
         kzhRQCX4soPZN9lnG2ZMTLCtNnwkbrk5ZAWUKupRlLR0cSIK7VNd+KMRHDBjQeSM39MG
         VyRBHOKbLNaFPSMjOloh5N/tRikxoYf00X/SA3UEBFg6G2AKb71O3uApnb93xMP4zem6
         8nwA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744902752; x=1745507552;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=+DjIJswXbzQRN1nmeRNSiSYfBHkFEVYJTL/dUGIK80M=;
        b=vocNRt9YX/r+6FBvDo5J6rGU9TUFfCqfW1URKBloTT5qa1WtQLGGwn/7STO9Kp2FHs
         6aUqxOUHqyIPE1TJuZzhjzvxog3+d5Z6YYKauWFwsIWLcAjhB7kkKSB5oV4HeUukE0qm
         PpDTCvx7CdZ3t3EOUMEhkLMT8bjRGRXYRXdpoEY9sWIcIgTpmznAmvI7hOaO9vWZTTMd
         jK2F3qm46xuCZJmg9WCm/fXlbFbboQCfR6O56UYRG3H2JhjpFFeVf7IapcI8DFn3KQsf
         dPZhIsTlG3V8mxm+r3gdXqvPItUJcBNQ16h+VDqEkUQjrQ7E7gskRSGGB3t2YRI0yR1Y
         DpnQ==
X-Forwarded-Encrypted: i=1; AJvYcCUHMMFDLLMgYuwVpe9yo6STF9GurEbAIOm6a1YDBfHlcSJMFO4hyAJv1myI2jYqCXbnrMHM3Qp1cMQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx40OBuFhdkGnAM2JacvRJEdUhdKOxa1T+jl6MPPvR1cmakBB+k
	udcqwJ1Ax1CpKXFaYsTijpjiNZPMMJViDJqIpO8XkbQ6xmAehYRPq+gM5KzThw==
X-Gm-Gg: ASbGnctW7um44SWGHEhRJc2EVQMXXbtKrD9QnIdbj2Wsj2yGXDI+GjywzGoamfCIxBW
	pjFQdOo/h4zFrTSVjxhP9FbYnGdqcZpjmKSY3sCA3k6wCIP0VuVCmdY5UPsdepjnydACQeMKWL9
	uMqI15Uto2GTcg9R3DfvXyqf4uh3MkNFHnYPHHa7uUZu88/XQjlvaUtSkbQzvCF5UPWf3qVWC2U
	kT1HuZ+hwukKY7waKEaJqbiCf7ZdecNSedUSPIJv4AyOUF0V/bFrGsWbYeDy5kZJJj7nAQt/hxx
	AMdRxgGTES4zc1aZ1Kuf0RM38/4WGUKQGBzYIoV5ZGuAAC8n7BPJjvGpiWDVtKRb7EVk09cHJnh
	Gq8pcId3ugHJ/D1afJrokK3ntBw==
X-Google-Smtp-Source: AGHT+IE0cqhSB/lgCbATCCRCUQslJOye3kK9gvt/ujpGk0lIp0YXiUphoFySRXFnDnKSwGhjAWAAMg==
X-Received: by 2002:a5d:5889:0:b0:390:fb37:1ca with SMTP id ffacd0b85a97d-39ee5bad718mr5780394f8f.53.1744902751803;
        Thu, 17 Apr 2025 08:12:31 -0700 (PDT)
Message-ID: <26067708-2854-4493-8801-d0fb709242d0@suse.com>
Date: Thu, 17 Apr 2025 17:12:24 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 01/15] xen/cpufreq: move "init" flag into common
 structure
To: Penny Zheng <Penny.Zheng@amd.com>
Cc: ray.huang@amd.com, xen-devel@lists.xenproject.org
References: <20250414074056.3696888-1-Penny.Zheng@amd.com>
 <20250414074056.3696888-2-Penny.Zheng@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20250414074056.3696888-2-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 14.04.2025 09:40, Penny Zheng wrote:
> AMD cpufreq cores will be intialized in two modes, legacy P-state mode,
> and CPPC mode. So "init" flag shall be extracted from specific
> "struct xen_processor_perf", and placed in the common
> "struct processor_pminfo".

The code change is certainly acceptable, as being largely mechanical.
However, the above doesn't explain _why_ we need that change. There's
probably a little more connection that needs making between that's
there and what you mean to add.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Apr 17 15:21:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 15:21:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.958033.1351001 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5R3g-0006KP-Ak; Thu, 17 Apr 2025 15:21:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 958033.1351001; Thu, 17 Apr 2025 15: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 1u5R3g-0006KI-6q; Thu, 17 Apr 2025 15:21:44 +0000
Received: by outflank-mailman (input) for mailman id 958033;
 Thu, 17 Apr 2025 15: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=uBz4=XD=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1u5R3e-0006Hx-6e
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 15:21:42 +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 a8801726-1b9f-11f0-9eb0-5ba50f476ded;
 Thu, 17 Apr 2025 17:21:39 +0200 (CEST)
Received: by mail-ed1-x531.google.com with SMTP id
 4fb4d7f45d1cf-5f4d0da2d2cso1839919a12.3
 for <xen-devel@lists.xenproject.org>; Thu, 17 Apr 2025 08:21:39 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-64-225.play-internet.pl.
 [109.243.64.225]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5f36f06c4fcsm10332272a12.47.2025.04.17.08.21.37
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 17 Apr 2025 08:21:37 -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: a8801726-1b9f-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1744903298; x=1745508098; darn=lists.xenproject.org;
        h=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=cDAWnaEDb1sPmHehzsSnkJ66i5CUDsvUp3PSnMsGBtU=;
        b=ClzCGja9OyGodXZ+7xBZIdPN1ApoZQ7TClswGHBuNBKzOQ955lva2t+Yp/PNoVOu78
         5AVHmnzTZr0n9OM/g2vSGpgu2YD6i4LO9mQ88oWf70jIaQaEmAZIRDnAxyIfDvSBwNBe
         3e/LA1gIgJSqxXCYWGrDiM2IdD8slRRNlOYv+eVTnBR6IUFVF0KRLqyYQkBIr6vbhiUW
         3KPdiDjIJsXq3XGy/BgejiBphWcxQ/1MBf4dmfXKBAd4JjWfCVx3Gwo62rVguJ0vIdyj
         pbbaDabgjx3H5p/wbnbjUW5UaPu4TO7g0MDPOrPVgdpxLvslHmWizR9GOP7Za6ppH85y
         8Gpg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744903298; x=1745508098;
        h=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=cDAWnaEDb1sPmHehzsSnkJ66i5CUDsvUp3PSnMsGBtU=;
        b=QbCwY7XHsfELDalDqTBbioNDE/jnnHWy6CsEdDapV2Uq/NmsbMOWb7X8K+Eh3HzwTf
         KEgsi4ep3PfmYfUWR6GEsvyC2scEMfxxq1sELaPsRbVXmIe606j3x1oDfNUz7HQgoR6+
         P26IdRM4xGSnsIC37r2vvLbR8AMoWaV/eDexZ56jZabweTk3Tn1oE6G4gRo0Ofqpf54b
         Hdhc/0AHR2jdGuPco0CljXptMorPT53deKYvMBq+cKsI8VktYu5soAmwiu/22D7Ttn4U
         MgfsgYF9dkoz2Rj3C0Ay5P5B4lONoRbnhKLpuAKDvjMf35js/RoFL02zAJiljmcUMqAo
         oeyg==
X-Forwarded-Encrypted: i=1; AJvYcCV103X4a4zvVO56d9GmkszByA0P/EUz5kZL6LQWF6Q8SMsR4qc4uGtqEh9RsROAnqDW2YDO/7AR4NI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwxgIrzYBMyzc9/e4Tn8v9QbF+9yUKuv5w5gkVVigUwlIRdG/3w
	GoDoU35tineyHjkc9Ra2LkewgMveatD1d7gqnEmxJC/lZtWX05dg
X-Gm-Gg: ASbGnctX31S7H7ELyvlcoLbkV4Ov2aX/vdKhrwOELGwonfShl0BVeiSAHibfnF6anaW
	SDAuZ/CkUxRg+5HEFv83I808SGzwwCjS9N+PR9ZVjYapEcxbFD+NUA5XXj06aNCLKCl4kVR39Bu
	kO/FlJKRzY3joyrp3UnAwty7PSyzUy7iqO+krAbp51dxpFSdgx41G4lWN6OIu0lFoVGoycviRmq
	d8eHPLNwntbyABAQ3xZVaCbpXb8biskzsd72HuImQoB2646P2HGty5+W2gqtZ8gJZxR881pkLXI
	NyTu/VycIxseaBn49aPvrqN2cRZVCdhkNy1vQrZwURB0r0/CTvNk1wxtyCPYDyJEwe8gC6y7uIy
	kD0strggd7CxzxJjF
X-Google-Smtp-Source: AGHT+IHrA8QI5e34qR1WzyVvkmHJuSMtH3r5Ssd2wGh2Fdkc880AtWsmouYv5Q+Qm8f/watmWPCK8Q==
X-Received: by 2002:a05:6402:2807:b0:5e5:bfab:524 with SMTP id 4fb4d7f45d1cf-5f4b7344956mr6345175a12.3.1744903298290;
        Thu, 17 Apr 2025 08:21:38 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------LuKeqvjzdwFuE6CNzf9vZr0o"
Message-ID: <fd24bee3-bbbd-4701-a34c-08b64ea0af5a@gmail.com>
Date: Thu, 17 Apr 2025 17:21:37 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 09/14] xen/riscv: aplic_init() implementation
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Romain Caritey <Romain.Caritey@microchip.com>, xen-devel@lists.xenproject.org
References: <cover.1744126720.git.oleksii.kurochko@gmail.com>
 <1d023045be49ae93d41d552f9c9a79972fa4e84b.1744126720.git.oleksii.kurochko@gmail.com>
 <a7008eee-04d2-4e61-b66a-ff659e3b99db@suse.com>
 <a54ef262-92fc-453d-898e-70636c2918fd@gmail.com>
 <f2da2ec5-e457-4d2c-b2fe-49c7356760e1@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <f2da2ec5-e457-4d2c-b2fe-49c7356760e1@suse.com>

This is a multi-part message in MIME format.
--------------LuKeqvjzdwFuE6CNzf9vZr0o
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 4/16/25 12:30 PM, Jan Beulich wrote:
> On 16.04.2025 12:15, Oleksii Kurochko wrote:
>> On 4/14/25 12:04 PM, Jan Beulich wrote:
>>> On 08.04.2025 17:57, Oleksii Kurochko wrote:
>>>> +    rc = dt_property_read_u32(node, "msi-parent", &imsic_phandle);
>>>> +    if ( !rc )
>>>> +        panic("%s: IDC mode not supported\n", node->full_name);
>>>> +
>>>> +    imsic_node = dt_find_node_by_phandle(imsic_phandle);
>>>> +    if ( !imsic_node )
>>>> +        panic("%s: unable to find IMSIC node\n", node->full_name);
>>>> +
>>>> +    /* check imsic mode */
>>>> +    rc = dt_property_read_u32_array(imsic_node, "interrupts-extended",
>>>> +                                    irq_range, ARRAY_SIZE(irq_range));
>>>> +    if ( rc && (rc != -EOVERFLOW) )
>>>> +        panic("%s: unable to find interrupt-extended in %s node\n",
>>>> +               node->full_name, imsic_node->full_name);
>>> Why exactly is EOVERFLOW tolerable here?
>> QEMU generates two IMSIC device tree nodes: one for M-mode and one for S-mode.
>> For the hypervisor, we don’t really care about the M-mode IMSIC node — we're only
>> interested in the S-mode IMSIC node.
>>
>> The IMSIC node includes this information in the|"interrupts-extended"| property,
>> which has the following format:
>>     interrupt-extended = {<interrupt-controller-phandle>, <machine_mode>},...
>> The number of such|<phandle, mode>| pairs depends on the number of CPUs the platform has.
>>
>> For our purposes, to determine whether the IMSIC node corresponds to M-mode or not, it’s sufficient to read only the first pair and check the mode like this:
>>
>>     if ( irq_range[1] == IRQ_M_EXT )
>>
>> Thereby dt_property_read_u32_array() will return -EOVERFLOW in the case when a platfrom
>> has more then one CPU as we passed irq_range[2] as an argument but the amount of values
>> in "interrupts-extended" property will be (2 * CPUS_NUM).
>>
>> I can update the comment above dt_property_read_u32_array() for more clearness.
> Yet my question remains: Why would it be okay to ignore the remaining entries,
> and hence accept -EOVERFLOW as kind-of-success?

Because for other entries the IMSIC mode will be the same and the difference will be only in
interrupt controller's phandle which we don't care about in this function and cares only about
in imisic_init(), look at usage of imsic_get_parent_hartid().

>
>>>> +    aplic.regs = ioremap(paddr, size);
>>>> +    if ( !aplic.regs )
>>>> +        panic("%s: unable to map\n", node->full_name);
>>>> +
>>>> +    /* Setup initial state APLIC interrupts */
>>>> +    aplic_init_hw_interrupts();
>>>> +
>>>> +    return 0;
>>>> +}
>>>> +
>>>> +static const struct intc_hw_operations __ro_after_init aplic_ops = {
>>> const or __ro_after_init?
>> What’s wrong with using both?|const| ensures the variable can't be changed at compile time,
>> while|__ro_after_init| makes it read-only at runtime after initialization is complete.
> No, const makes it read-only at compile- and run-time.__ro_after_init,
> putting the item into a special section, makes it writable at init-time.
> Due to the const, the compiler wouldn't emit any writes. But we can
> also avoid stray writes by having the item live in .rodata.

Oh, right, `const` will add the variable to .rodata.
Then I think it is enough to have `const` as aplic_ops is going to be initialized once and
then only read will happen.

>
>> Probably,|__initconst| would be a better fit:
>>     static const struct intc_hw_operations __initconst aplic_ops = {
>>
>> Or even|__initconstrel|, since the|struct intc_hw_operations| contains pointers.
> Well, if this variable isn't accessed post-init, sure. That seems pretty
> unlikely though, considering it contains pointers to hook functions.

Sure, .init section is going to be freed after init-time.

~ Oleksii


--------------LuKeqvjzdwFuE6CNzf9vZr0o
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 4/16/25 12:30 PM, Jan Beulich wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:f2da2ec5-e457-4d2c-b2fe-49c7356760e1@suse.com">
      <pre wrap="" class="moz-quote-pre">On 16.04.2025 12:15, Oleksii Kurochko wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">On 4/14/25 12:04 PM, Jan Beulich wrote:
</pre>
        <blockquote type="cite">
          <pre wrap="" class="moz-quote-pre">On 08.04.2025 17:57, Oleksii Kurochko wrote:
</pre>
          <blockquote type="cite">
            <pre wrap="" class="moz-quote-pre">+    rc = dt_property_read_u32(node, "msi-parent", &amp;imsic_phandle);
+    if ( !rc )
+        panic("%s: IDC mode not supported\n", node-&gt;full_name);
+
+    imsic_node = dt_find_node_by_phandle(imsic_phandle);
+    if ( !imsic_node )
+        panic("%s: unable to find IMSIC node\n", node-&gt;full_name);
+
+    /* check imsic mode */
+    rc = dt_property_read_u32_array(imsic_node, "interrupts-extended",
+                                    irq_range, ARRAY_SIZE(irq_range));
+    if ( rc &amp;&amp; (rc != -EOVERFLOW) )
+        panic("%s: unable to find interrupt-extended in %s node\n",
+               node-&gt;full_name, imsic_node-&gt;full_name);
</pre>
          </blockquote>
          <pre wrap="" class="moz-quote-pre">Why exactly is EOVERFLOW tolerable here?
</pre>
        </blockquote>
        <pre wrap="" class="moz-quote-pre">
QEMU generates two IMSIC device tree nodes: one for M-mode and one for S-mode.
For the hypervisor, we don’t really care about the M-mode IMSIC node — we're only
interested in the S-mode IMSIC node.

The IMSIC node includes this information in the|"interrupts-extended"| property,
which has the following format:
   interrupt-extended = {&lt;interrupt-controller-phandle&gt;, &lt;machine_mode&gt;},...
The number of such|&lt;phandle, mode&gt;| pairs depends on the number of CPUs the platform has.

For our purposes, to determine whether the IMSIC node corresponds to M-mode or not, it’s sufficient to read only the first pair and check the mode like this:

   if ( irq_range[1] == IRQ_M_EXT )

Thereby dt_property_read_u32_array() will return -EOVERFLOW in the case when a platfrom
has more then one CPU as we passed irq_range[2] as an argument but the amount of values
in "interrupts-extended" property will be (2 * CPUS_NUM).

I can update the comment above dt_property_read_u32_array() for more clearness.
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Yet my question remains: Why would it be okay to ignore the remaining entries,
and hence accept -EOVERFLOW as kind-of-success?</pre>
    </blockquote>
    <pre>Because for other entries the IMSIC mode will be the same and the difference will be only in
interrupt controller's phandle which we don't care about in this function and cares only about
in imisic_init(), look at usage of imsic_get_parent_hartid().

</pre>
    <blockquote type="cite"
      cite="mid:f2da2ec5-e457-4d2c-b2fe-49c7356760e1@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <blockquote type="cite">
          <blockquote type="cite">
            <pre wrap="" class="moz-quote-pre">+    aplic.regs = ioremap(paddr, size);
+    if ( !aplic.regs )
+        panic("%s: unable to map\n", node-&gt;full_name);
+
+    /* Setup initial state APLIC interrupts */
+    aplic_init_hw_interrupts();
+
+    return 0;
+}
+
+static const struct intc_hw_operations __ro_after_init aplic_ops = {
</pre>
          </blockquote>
          <pre wrap="" class="moz-quote-pre">const or __ro_after_init?
</pre>
        </blockquote>
        <pre wrap="" class="moz-quote-pre">
What’s wrong with using both?|const| ensures the variable can't be changed at compile time,
while|__ro_after_init| makes it read-only at runtime after initialization is complete.
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
No, const makes it read-only at compile- and run-time.__ro_after_init,
putting the item into a special section, makes it writable at init-time.
Due to the const, the compiler wouldn't emit any writes. But we can
also avoid stray writes by having the item live in .rodata.</pre>
    </blockquote>
    <pre>Oh, right, `const` will add the variable to .rodata.
Then I think it is enough to have `const` as aplic_ops is going to be initialized once and
then only read will happen.

</pre>
    <blockquote type="cite"
      cite="mid:f2da2ec5-e457-4d2c-b2fe-49c7356760e1@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">Probably,|__initconst| would be a better fit:
   static const struct intc_hw_operations __initconst aplic_ops = {

Or even|__initconstrel|, since the|struct intc_hw_operations| contains pointers.
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Well, if this variable isn't accessed post-init, sure. That seems pretty
unlikely though, considering it contains pointers to hook functions.</pre>
    </blockquote>
    <pre>Sure, .init section is going to be freed after init-time.

~ Oleksii</pre>
    <br>
  </body>
</html>

--------------LuKeqvjzdwFuE6CNzf9vZr0o--


From xen-devel-bounces@lists.xenproject.org Thu Apr 17 15:22:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 15:22:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.958044.1351011 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5R4m-0007BA-L2; Thu, 17 Apr 2025 15:22:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 958044.1351011; Thu, 17 Apr 2025 15: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 1u5R4m-0007B3-Gq; Thu, 17 Apr 2025 15:22:52 +0000
Received: by outflank-mailman (input) for mailman id 958044;
 Thu, 17 Apr 2025 15: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=nsoM=XD=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u5R4l-0007At-BX
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 15:22:51 +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 d2dea459-1b9f-11f0-9eb0-5ba50f476ded;
 Thu, 17 Apr 2025 17:22:50 +0200 (CEST)
Received: by mail-wr1-x42c.google.com with SMTP id
 ffacd0b85a97d-39c1ef4acf2so658419f8f.0
 for <xen-devel@lists.xenproject.org>; Thu, 17 Apr 2025 08:22:50 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 6a1803df08f44-6f2c2c3ba3fsm147656d6.125.2025.04.17.08.22.48
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 17 Apr 2025 08:22:49 -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: d2dea459-1b9f-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744903369; x=1745508169; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=yvGG9VtnM0OtzVexiqFWGH+3NDdAezpKmWE3wRVk97E=;
        b=eAKVti1XaITI8ygzrXF344Jm+ooweAWtZR3PwU+B7ryHL+QoWTTlXZyzHY8idYbY7t
         EUHWjeMYNT66tu8J9zXxdycg5c8inIensM5UJsVtNppp8LbIINo9cqwiwm2+RsO5xerL
         N84iF6cOBbDm4MwN5g1FPvajQdNYVoDjuY27RemO/2WXnuJV/awFiUJEb4Z9OGJ24HBN
         vGm566a0HmoYTIGhP8OiqZRx5fe802v00x65KNH5w//UUOhQ/prbichWQJ2fPdfrPZX2
         OM6PCf4HbI85zFe6uQJxijJhKxDT+7Ray1ybxYnQHrSbK2jvbOZtMHnc+edYJvQH202f
         EVNQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744903369; x=1745508169;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=yvGG9VtnM0OtzVexiqFWGH+3NDdAezpKmWE3wRVk97E=;
        b=Xsdxcw6sWmCfhIKdIsUKfMi6gjSvNH9zIuP1hYY/ZP0dmKAaN5eeRlCaL2FxIX066v
         14g9DK/W41kbmAqHh+XXCcwtRDwDzQ+e7SQuc9rsEZxDfYtHsEpShmVA0UMBxO9FGtIp
         AVNNkgykOkmf3/01eU03MwCyFapxDxB37KyAgL9/Tu+n4ezAbLzkEcP5QGv1soUSfVME
         wiyIQh3GA2QjqRl0EeBtCG2Muugq3v3G2kcyXG62vu6CAOtASbbRvP93qtX4mdiWSELR
         ccPTGkWbq1v2I8pZUPSPShpN3wlWXdymVTA33WFSpcIy0qsLkwJradiDMZ+10B5Ed9SO
         1rzA==
X-Forwarded-Encrypted: i=1; AJvYcCVnVeyvgZytUgFOso7KijlFEXvUxoVbFKJ0WwvWWeU6SLKH6U1XqIr04BsKyBAxbRxzYjPWL4RSjX0=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yyg4VapH4ijCHtHTd8go4eH+lyr4ZGLXxYnqRlvy8gJFyNhcDYc
	vSPCYLYEbv4/PiTi3b+8/nWv3UgmBCczyJMq/sJBchQiVo+0/IDwfDX6LMP+qQ==
X-Gm-Gg: ASbGncvwILB32qA92eiH/udjzrMYRwT6QZYPKTIHzG4t+7yMgusbqBRpHyRa+SM5A54
	x17kxfqLpPPldErS/qpBNTWZHA2uGaLlaAR2dEn+1D5SJ1xgMdp/50K2YStSHT/2yJ7u0chclGI
	O96rl3fLLIUsJjMqy6HV7Cl+LbY/7kFFuXkIYygzEDv8cous+5FXQkCW/RI9i1xwDmsS0zeJPcN
	O7PQtJr6NaC9zOL1MbL7tR0tf6E2B0i2De/8wHUYXhsEO4Q8mq1vYibQiNFFaC2+ND70Xr2DexP
	qCaCuhKpJw5GalM0ZTbIkHGUF6hGqpTgiS04Ijq3I5j1KnBrLSIcA6hsFOP5SOSv/77DTnuURFO
	WwYp0dSXuq4WxQxLfTOe59c9AnQ==
X-Google-Smtp-Source: AGHT+IHWuj7Bj5QaPHo1uE+qCdSVPCbFeP8pNEbdt3Zu9yOonbT2TTl3YKrINwlx9Lw1yZz8gDmtWw==
X-Received: by 2002:a05:6000:1867:b0:39c:dcc:f589 with SMTP id ffacd0b85a97d-39ee5b19f9fmr5550120f8f.20.1744903369518;
        Thu, 17 Apr 2025 08:22:49 -0700 (PDT)
Message-ID: <8b87f6c4-ebc7-4d13-8fe6-a56df6b76523@suse.com>
Date: Thu, 17 Apr 2025 17:22:46 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 07/15] xen/cpufreq: fix core frequency calculation for
 AMD Family 1Ah CPUs
To: Penny Zheng <Penny.Zheng@amd.com>
Cc: ray.huang@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: <20250414074056.3696888-1-Penny.Zheng@amd.com>
 <20250414074056.3696888-8-Penny.Zheng@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20250414074056.3696888-8-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 14.04.2025 09:40, Penny Zheng wrote:
> AMD Family 1Ah CPU needs a different COF(Core Operating Frequency) formula,
> due to a change in the PStateDef MSR layout in AMD Family 1Ah.
> In AMD Family 1Ah, Core current operating frequency in MHz is calculated as
> follows:
>     CoreCOF = Core::X86::Msr::PStateDef[CpuFid[11:0]] * 5MHz
> 
> We introduce a helper amd_parse_freq() to parse cpu min/nominal/max core
> frequency from PstateDef register, to replace the original macro FREQ(v).
> amd_parse_freq() is declared as const, as it mainly consists of mathematical
> conputation.
> 
> Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>

As to the title: I don't think "fix" is appropriate here. Or else I'd expect
a Fixes: tag to be there, which I think would be hard for you to fish out
(as the earlier changes here weren't broken; information on Fam1A simply
wasn't available at the time).

> --- a/xen/arch/x86/cpu/amd.c
> +++ b/xen/arch/x86/cpu/amd.c
> @@ -56,6 +56,9 @@ bool __initdata amd_virt_spec_ctrl;
>  
>  static bool __read_mostly fam17_c6_disabled;
>  
> +static uint64_t attr_const amd_parse_freq(unsigned char c, uint64_t value);

Why is this declaration needed?

> +#define INVAL_FREQ_MHZ  ~(uint64_t)0

This may want to move down, ahead of the function. And the expansion wants
to be wrapped in parentheses.

> @@ -570,12 +573,35 @@ static void amd_get_topology(struct cpuinfo_x86 *c)
>                                                            : c->cpu_core_id);
>  }
>  
> +static uint64_t amd_parse_freq(unsigned char c, uint64_t value)

Considering how it's used, does "value" need to be any wider than unsigned
int? What about the return type?

I also think the first argument would better be unsigned int, and would
better be named e.g. "family".

> +{
> +	uint64_t freq = INVAL_FREQ_MHZ;
> +
> +	switch (c) {
> +	case 0x10 ... 0x16:
> +		freq = (((value & 0x3f) + 0x10) * 100) >> ((value >> 6) & 7);
> +		break;
> +	case 0x17 ... 0x19:
> +		freq = ((value & 0xff) * 25 * 8) / ((value >> 8) & 0x3f);
> +		break;
> +	case 0x1A:
> +		freq = (value & 0xfff) * 5;
> +		break;
> +	default:

Nit: Blank lines please between non-fall-through case blocks.

> +		printk(XENLOG_ERR
> +		       "Unsupported cpu familly %c on cpufreq parsing", c);

Nit: family

Jan


From xen-devel-bounces@lists.xenproject.org Thu Apr 17 15:26:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 15:26:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.958058.1351027 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5R8R-0007on-EE; Thu, 17 Apr 2025 15:26:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 958058.1351027; Thu, 17 Apr 2025 15:26: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 1u5R8R-0007nl-6i; Thu, 17 Apr 2025 15:26:39 +0000
Received: by outflank-mailman (input) for mailman id 958058;
 Thu, 17 Apr 2025 15:26: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=Dr0F=XD=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u5R8P-0007lK-Uc
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 15:26: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 5a1f7288-1ba0-11f0-9eb0-5ba50f476ded;
 Thu, 17 Apr 2025 17:26:37 +0200 (CEST)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-acb415dd8faso139819866b.2
 for <xen-devel@lists.xenproject.org>; Thu, 17 Apr 2025 08:26:37 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 a640c23a62f3a-acb6ec90950sm8154866b.75.2025.04.17.08.26.35
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 17 Apr 2025 08:26:35 -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: 5a1f7288-1ba0-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744903596; x=1745508396; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=S5LzAPNb/14/24HUMEXjvdgVaGJA9HOIEBYT1bvFhrY=;
        b=ZAIA8FZlImkCzYO1jE6LNJOEyKRuFsPRnRyXZOG6r1DMoCHyaVFPqgqNDFANn4WXBH
         DfqXEIx1miVNZccydwV9EV5K4KBxAwvRUdcG5Y6Btl/KqGhG6kV1dW5RqN+nsD2XqsJc
         TZp+cguZHlxXPDS0Q7MKnv6hJvar+SXrxlR5s=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744903596; x=1745508396;
        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=S5LzAPNb/14/24HUMEXjvdgVaGJA9HOIEBYT1bvFhrY=;
        b=CeYdyUamlIipLvg5StyF4ELzWhmcaRg5oNJ8xuMKZBt8UkH94f53uMj1Sx91zkldUn
         7N5nqIAEArGoQXzR0EmzRpQE4H6udogN7GNcEuZTWE9gWHObjMkKNp9UAdFgwYASr4yA
         fGvgh1lOupUqCe93hxqLylFYxxFpk46l7tP72SeSMBvNTbL5EiSrxZS5RA3JDXyYuhiG
         0336LJRyexrQZnz9/HxmLNS9/q5FJus2VxIT5GFB8We6+AB8uK5ifjgsFsaQJ2XYJIW9
         4sNBtB+P9MkJYyWcwFWabxK0DFPTOIfTGUJIieKSg9GowXcKrgYo+NFHFL2WRMv3NPig
         f7qw==
X-Gm-Message-State: AOJu0YycCJiHxtAnW1risVpnqsttftrPkrz0qClytjq0MMpx+0tOPfEu
	vqtRAO1QFfdD1F9UQzySf+jjNJEH18WOBYgcfYs4kC1VtJcwac8xWqdZLGVcfWZ2TXDTPAI40qw
	W
X-Gm-Gg: ASbGnctl+9u+3y16ZYXWadJf4XeWaVA8rTIdJVtDPa0z95yVbhHYlv748MdV9BQTArv
	GaqU6TWy196v6TIjMtdGt7sSyk2DaR3bWDf7peZzn4NUtUUSYF6e23NKO6OVWibHozzbWBJpGGq
	wLPUNeyjTMKTVtPwUVEYn1/q7ORa15iOfnRbNCQGHAee0WaMCvEBNWcxXRWvT9j9FGi0sFW/1kY
	EBQY1zXEf4JMbr64NoLqnultvsFcJ1L6rFW5ZFJ+bXwxaRutLtwo+vuUJNww8ZAmS75QlJa++g/
	NW3Aiw6QSO9MHGcybG7/bVuGG8pI/Snl1kqN8I26M/Of1ZlOobmxK3B1
X-Google-Smtp-Source: AGHT+IH/ckS332y3R6Pq/rnTozg4syB5mCwJzYY2eabMvw5c9KcnwbGic64Qif9TTbjSQDWj21fOwA==
X-Received: by 2002:a17:906:478f:b0:ac7:b48f:4cd6 with SMTP id a640c23a62f3a-acb4298229amr559808866b.24.1744903596027;
        Thu, 17 Apr 2025 08:26:36 -0700 (PDT)
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>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v3 1/4] xen/io: provide helpers for multi size MMIO accesses
Date: Thu, 17 Apr 2025 17:25:11 +0200
Message-ID: <20250417152514.13702-2-roger.pau@citrix.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <20250417152514.13702-1-roger.pau@citrix.com>
References: <20250417152514.13702-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Several handlers have the same necessity of reading or writing from or to
an MMIO region using 1, 2, 4 or 8 bytes accesses.  So far this has been
open-coded in the function itself.  Instead provide a new set of handlers
that encapsulate the accesses.

Since the added helpers are not architecture specific, introduce a new
generic io.h header.

No functional change intended.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
Changes since v2:
 - Keep error message when handling non-allowed access sizes.

Changes since v1:
 - Limit {read,write}q() to 64bit architectures.
 - Always have a default case in switch statement.
---
 xen/arch/x86/hvm/vmsi.c | 47 ++-------------------------
 xen/arch/x86/mm.c       | 30 +++++-------------
 xen/drivers/vpci/msix.c | 47 ++-------------------------
 xen/include/xen/io.h    | 70 +++++++++++++++++++++++++++++++++++++++++
 4 files changed, 83 insertions(+), 111 deletions(-)
 create mode 100644 xen/include/xen/io.h

diff --git a/xen/arch/x86/hvm/vmsi.c b/xen/arch/x86/hvm/vmsi.c
index fd83abb929ec..61b89834d97d 100644
--- a/xen/arch/x86/hvm/vmsi.c
+++ b/xen/arch/x86/hvm/vmsi.c
@@ -24,6 +24,7 @@
  * Will be merged it with virtual IOAPIC logic, since most is the same
 */
 
+#include <xen/io.h>
 #include <xen/types.h>
 #include <xen/mm.h>
 #include <xen/xmalloc.h>
@@ -304,28 +305,7 @@ static void adjacent_read(
 
     hwaddr = fix_to_virt(fixmap_idx) + PAGE_OFFSET(address);
 
-    switch ( len )
-    {
-    case 1:
-        *pval = readb(hwaddr);
-        break;
-
-    case 2:
-        *pval = readw(hwaddr);
-        break;
-
-    case 4:
-        *pval = readl(hwaddr);
-        break;
-
-    case 8:
-        *pval = readq(hwaddr);
-        break;
-
-    default:
-        ASSERT_UNREACHABLE();
-        break;
-    }
+    *pval = read_mmio(hwaddr, len);
 }
 
 static void adjacent_write(
@@ -344,28 +324,7 @@ static void adjacent_write(
 
     hwaddr = fix_to_virt(fixmap_idx) + PAGE_OFFSET(address);
 
-    switch ( len )
-    {
-    case 1:
-        writeb(val, hwaddr);
-        break;
-
-    case 2:
-        writew(val, hwaddr);
-        break;
-
-    case 4:
-        writel(val, hwaddr);
-        break;
-
-    case 8:
-        writeq(val, hwaddr);
-        break;
-
-    default:
-        ASSERT_UNREACHABLE();
-        break;
-    }
+    write_mmio(hwaddr, val, len);
 }
 
 static int cf_check msixtbl_read(
diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
index 1cf236516789..8baac132b484 100644
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -95,6 +95,7 @@
 #include <xen/guest_access.h>
 #include <xen/hypercall.h>
 #include <xen/init.h>
+#include <xen/io.h>
 #include <xen/iocap.h>
 #include <xen/ioreq.h>
 #include <xen/irq.h>
@@ -116,7 +117,6 @@
 #include <asm/flushtlb.h>
 #include <asm/guest.h>
 #include <asm/idt.h>
-#include <asm/io.h>
 #include <asm/io_apic.h>
 #include <asm/ldt.h>
 #include <asm/mem_sharing.h>
@@ -5102,7 +5102,7 @@ static void __iomem *subpage_mmio_map_page(
 static void subpage_mmio_write_emulate(
     mfn_t mfn,
     unsigned int offset,
-    const void *data,
+    unsigned long data,
     unsigned int len)
 {
     struct subpage_ro_range *entry;
@@ -5131,26 +5131,8 @@ static void subpage_mmio_write_emulate(
         return;
     }
 
-    addr += offset;
-    switch ( len )
-    {
-    case 1:
-        writeb(*(const uint8_t*)data, addr);
-        break;
-    case 2:
-        writew(*(const uint16_t*)data, addr);
-        break;
-    case 4:
-        writel(*(const uint32_t*)data, addr);
-        break;
-    case 8:
-        writeq(*(const uint64_t*)data, addr);
-        break;
-    default:
-        /* mmio_ro_emulated_write() already validated the size */
-        ASSERT_UNREACHABLE();
+    if ( !write_mmio(addr + offset, data, len) )
         goto write_ignored;
-    }
 }
 
 #ifdef CONFIG_HVM
@@ -5185,18 +5167,20 @@ int cf_check mmio_ro_emulated_write(
     struct x86_emulate_ctxt *ctxt)
 {
     struct mmio_ro_emulate_ctxt *mmio_ro_ctxt = ctxt->data;
+    unsigned long data = 0;
 
     /* Only allow naturally-aligned stores at the original %cr2 address. */
     if ( ((bytes | offset) & (bytes - 1)) || !bytes ||
-         offset != mmio_ro_ctxt->cr2 )
+         offset != mmio_ro_ctxt->cr2 || bytes > sizeof(data) )
     {
         gdprintk(XENLOG_WARNING, "bad access (cr2=%lx, addr=%lx, bytes=%u)\n",
                 mmio_ro_ctxt->cr2, offset, bytes);
         return X86EMUL_UNHANDLEABLE;
     }
 
+    memcpy(&data, p_data, bytes);
     subpage_mmio_write_emulate(mmio_ro_ctxt->mfn, PAGE_OFFSET(offset),
-                               p_data, bytes);
+                               data, bytes);
 
     return X86EMUL_OKAY;
 }
diff --git a/xen/drivers/vpci/msix.c b/xen/drivers/vpci/msix.c
index 6bd8c55bb48e..6455f2a03a01 100644
--- a/xen/drivers/vpci/msix.c
+++ b/xen/drivers/vpci/msix.c
@@ -17,6 +17,7 @@
  * License along with this program; If not, see <http://www.gnu.org/licenses/>.
  */
 
+#include <xen/io.h>
 #include <xen/sched.h>
 #include <xen/vpci.h>
 
@@ -344,28 +345,7 @@ static int adjacent_read(const struct domain *d, const struct vpci_msix *msix,
         return X86EMUL_OKAY;
     }
 
-    switch ( len )
-    {
-    case 1:
-        *data = readb(mem + PAGE_OFFSET(addr));
-        break;
-
-    case 2:
-        *data = readw(mem + PAGE_OFFSET(addr));
-        break;
-
-    case 4:
-        *data = readl(mem + PAGE_OFFSET(addr));
-        break;
-
-    case 8:
-        *data = readq(mem + PAGE_OFFSET(addr));
-        break;
-
-    default:
-        ASSERT_UNREACHABLE();
-        break;
-    }
+    *data = read_mmio(mem + PAGE_OFFSET(addr), len);
     spin_unlock(&vpci->lock);
 
     return X86EMUL_OKAY;
@@ -493,28 +473,7 @@ static int adjacent_write(const struct domain *d, const struct vpci_msix *msix,
         return X86EMUL_OKAY;
     }
 
-    switch ( len )
-    {
-    case 1:
-        writeb(data, mem + PAGE_OFFSET(addr));
-        break;
-
-    case 2:
-        writew(data, mem + PAGE_OFFSET(addr));
-        break;
-
-    case 4:
-        writel(data, mem + PAGE_OFFSET(addr));
-        break;
-
-    case 8:
-        writeq(data, mem + PAGE_OFFSET(addr));
-        break;
-
-    default:
-        ASSERT_UNREACHABLE();
-        break;
-    }
+    write_mmio(mem + PAGE_OFFSET(addr), data, len);
     spin_unlock(&vpci->lock);
 
     return X86EMUL_OKAY;
diff --git a/xen/include/xen/io.h b/xen/include/xen/io.h
new file mode 100644
index 000000000000..164a20c5d7b5
--- /dev/null
+++ b/xen/include/xen/io.h
@@ -0,0 +1,70 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * IO related routines.
+ *
+ * Copyright (c) 2025 Cloud Software Group
+ */
+#ifndef XEN_IO_H
+#define XEN_IO_H
+
+#include <xen/bug.h>
+
+#include <asm/io.h>
+
+static inline unsigned long read_mmio(const volatile void __iomem *mem,
+                                      unsigned int size)
+{
+    switch ( size )
+    {
+    case 1:
+        return readb(mem);
+
+    case 2:
+        return readw(mem);
+
+    case 4:
+        return readl(mem);
+
+#ifdef CONFIG_64BIT
+    case 8:
+        return readq(mem);
+#endif
+
+    default:
+        ASSERT_UNREACHABLE();
+        return ~0UL;
+    }
+}
+
+static inline bool write_mmio(volatile void __iomem *mem, unsigned long data,
+                              unsigned int size)
+{
+    switch ( size )
+    {
+    case 1:
+        writeb(data, mem);
+        break;
+
+    case 2:
+        writew(data, mem);
+        break;
+
+    case 4:
+        writel(data, mem);
+        break;
+
+#ifdef CONFIG_64BIT
+    case 8:
+        writeq(data, mem);
+        break;
+#endif
+
+    default:
+        ASSERT_UNREACHABLE();
+        return false;
+    }
+
+    return true;
+}
+
+#endif /* XEN_IO_H */
-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Thu Apr 17 15:26:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 15:26:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.958060.1351044 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5R8U-0008Hw-Uz; Thu, 17 Apr 2025 15:26:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 958060.1351044; Thu, 17 Apr 2025 15: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 1u5R8U-0008H1-Ps; Thu, 17 Apr 2025 15:26:42 +0000
Received: by outflank-mailman (input) for mailman id 958060;
 Thu, 17 Apr 2025 15: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=Dr0F=XD=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u5R8T-0008DN-Mg
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 15:26:41 +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 5ba55f2f-1ba0-11f0-9ffb-bf95429c2676;
 Thu, 17 Apr 2025 17:26:39 +0200 (CEST)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-ac339f53df9so169421466b.1
 for <xen-devel@lists.xenproject.org>; Thu, 17 Apr 2025 08:26:39 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 a640c23a62f3a-acb6ef49ff9sm6960166b.158.2025.04.17.08.26.37
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 17 Apr 2025 08:26:38 -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: 5ba55f2f-1ba0-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744903599; x=1745508399; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=WlVYLyYWAUO1qIZHmr5fhD6GhFwX8NqKxwynFR0F9X4=;
        b=DZPQvM1+YoqBGpkHaSMwMmZ21QeP8ACrOPAFGHUyTG05bTMtpYqoHISsMNj3stplq4
         SvlFr/piTu+z75A87bvFIUoTQxGJjLO3JoO/s3Ret9nDxNoqRoeTHR/E9Aa5QbSR7jbt
         suNFgQB8ojjTTcChke63DFnZeOQENcywlg/+Y=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744903599; x=1745508399;
        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=WlVYLyYWAUO1qIZHmr5fhD6GhFwX8NqKxwynFR0F9X4=;
        b=fuLhtwiifTMIRdYI38O/DHx3dF6Alx2WIR7/SiPckDm3+sT4lc659E1isD9cF2o3c/
         mS9uyzG2K9U23GrjrvBGqmV7mrWb47x09Ei+Sm7bSnjmX3zZfNRuIJ08O0XVKPo3tFZ2
         qu9LtDzr9XSmst6oZMhgkvy989EVTFKFVzOBGdYwnQ+bMCzHWffm7LPdYbEfRH5fhCha
         GM5l0P3HTwkF/FzmJbI6Web+Ggfmlfs2ClqYpHMz42nBBfN9fdaDTCIy+l31/AuakkCG
         f/GylwCwMjae+hPrrZBPzEhNtzBoGjV6vSIwNXeTAlkG/yBmHGwymvqOb7W1wEUO+4X1
         79XQ==
X-Gm-Message-State: AOJu0YxKnQRw/iPf67OZt2Pc/PWQyEibqRoDfiOYA1Lei+20+T0W3jpp
	j+C71/3R2zM4aCp5MnjTxYdI/8/OmCO0wSV3a6KO/lWBo946vOUDIMAZQHehE7Fce2NP3ai6VvX
	F
X-Gm-Gg: ASbGnctQWuD0AB9zumxij3bMdTk0c1ewUl+GnSutxmdHRtwrMq2YROaLc2pzLmiRUME
	8qPICGTf2gIAuoSZ20l9zBFq4R+XbleBY/N8xXJPhy71+6C14zJRo7aj8dPW48tFQk5eG/4msp6
	iNLj2uyPR9t8UGMi4vzAYifjezDhLDsYlcF8NIgZ5h7X8RQpb1nNarQvinFGsdgaTSrf/F69GUN
	Ap0K49c5ZDFDKyIhiAcdiQ7csgjIzddAGI3sz/XKa5nwwfTdvah1xttdGgmFgvVs7zQj6rS/qKb
	bl9zLx9VSTS5dTMkBq/7I89E63256tGokT+gttJs9150+g==
X-Google-Smtp-Source: AGHT+IEjtDGr3KBxOOYrHt3tvSp0cCDG3W62MSRWQ3BSwNHZDAGR5nyG+qaBsUUNVt0KAK0ZN1KaZw==
X-Received: by 2002:a17:907:7b87:b0:ac7:f2b9:ec3b with SMTP id a640c23a62f3a-acb428748d0mr562364966b.4.1744903598736;
        Thu, 17 Apr 2025 08:26:38 -0700 (PDT)
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 3/4] x86/hvm: only register the r/o subpage ops when needed
Date: Thu, 17 Apr 2025 17:25:13 +0200
Message-ID: <20250417152514.13702-4-roger.pau@citrix.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <20250417152514.13702-1-roger.pau@citrix.com>
References: <20250417152514.13702-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

MMIO operation handlers can be expensive to process, hence attempt to
register only those that will be needed by the domain.

Subpage r/o MMIO regions are added exclusively at boot, further limit their
addition to strictly before the initial domain gets created, so by the time
initial domain creation happens Xen knows whether subpage is required or
not.  This allows only registering the MMIO handler when there are
subpage regions to handle.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
---
Could possibly be part of the previous patch, but strictly speaking is an
improvement, as even before the previous patch subpage r/o was always
called even when no subpage regions are registered.
---
 xen/arch/x86/hvm/hvm.c        |  3 ++-
 xen/arch/x86/include/asm/mm.h |  1 +
 xen/arch/x86/mm.c             | 16 ++++++++++++++++
 3 files changed, 19 insertions(+), 1 deletion(-)

diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index 6b998387e3d8..4cb2e13046d1 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -692,7 +692,8 @@ int hvm_domain_initialise(struct domain *d,
 
     register_portio_handler(d, XEN_HVM_DEBUGCONS_IOPORT, 1, hvm_print_line);
 
-    register_subpage_ro_handler(d);
+    if ( subpage_ro_active() )
+        register_subpage_ro_handler(d);
 
     if ( hvm_tsc_scaling_supported )
         d->arch.hvm.tsc_scaling_ratio = hvm_default_tsc_scaling_ratio;
diff --git a/xen/arch/x86/include/asm/mm.h b/xen/arch/x86/include/asm/mm.h
index c2e9ef6e5023..aeb8ebcf2d56 100644
--- a/xen/arch/x86/include/asm/mm.h
+++ b/xen/arch/x86/include/asm/mm.h
@@ -561,6 +561,7 @@ struct subpage_ro_range {
     void __iomem *mapped;
     DECLARE_BITMAP(ro_elems, PAGE_SIZE / MMIO_RO_SUBPAGE_GRAN);
 };
+bool subpage_ro_active(void);
 struct subpage_ro_range *subpage_mmio_find_page(mfn_t mfn);
 void __iomem *subpage_mmio_map_page(struct subpage_ro_range *entry);
 void subpage_mmio_write_emulate(
diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
index 927beb6f07aa..0e29bab03a95 100644
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -4922,6 +4922,11 @@ long arch_memory_op(unsigned long cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
     return rc;
 }
 
+bool subpage_ro_active(void)
+{
+    return !list_empty(&subpage_ro_ranges);
+}
+
 struct subpage_ro_range *subpage_mmio_find_page(mfn_t mfn)
 {
     struct subpage_ro_range *entry;
@@ -5011,6 +5016,17 @@ int __init subpage_mmio_ro_add(
          !IS_ALIGNED(size, MMIO_RO_SUBPAGE_GRAN) )
         return -EINVAL;
 
+    /*
+     * Force all r/o subregions to be registered before initial domain
+     * creation, so that the emulation handlers can be added only when there
+     * are pages registered.
+     */
+    if ( system_state >= SYS_STATE_smp_boot )
+    {
+        ASSERT_UNREACHABLE();
+        return -EILSEQ;
+    }
+
     if ( !size )
         return 0;
 
-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Thu Apr 17 15:26:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 15:26:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.958061.1351060 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5R8W-0000G1-66; Thu, 17 Apr 2025 15:26:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 958061.1351060; Thu, 17 Apr 2025 15:26:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5R8W-0000FQ-2c; Thu, 17 Apr 2025 15:26:44 +0000
Received: by outflank-mailman (input) for mailman id 958061;
 Thu, 17 Apr 2025 15:26: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=Dr0F=XD=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u5R8U-0008DN-Mv
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 15:26:42 +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 5c6ca37c-1ba0-11f0-9ffb-bf95429c2676;
 Thu, 17 Apr 2025 17:26:40 +0200 (CEST)
Received: by mail-ed1-x52c.google.com with SMTP id
 4fb4d7f45d1cf-5e677f59438so1332279a12.2
 for <xen-devel@lists.xenproject.org>; Thu, 17 Apr 2025 08:26:40 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 a640c23a62f3a-acb6ec046c0sm8618466b.32.2025.04.17.08.26.39
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 17 Apr 2025 08:26:39 -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: 5c6ca37c-1ba0-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744903600; x=1745508400; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=XbVg709ccWDZ6LNYkLzgs4K1sN1hcawU+4pGGR/lOrY=;
        b=DYtvnQB36EhoAFShWWXWqFf9rhdTQHwou26yY6DjHPDD1A3SKPF0LLS3pF6/q6v/i0
         C8C9WJ0+Z6BTzJEho3dnbsGsfDSfXVlNZApgOUY1+YGwD1QK/L0cP1ndPiRiLz2F61qL
         S7x+4+q9XGcMVgHBF3isiyKkw2s+dJgFeUDpg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744903600; x=1745508400;
        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=XbVg709ccWDZ6LNYkLzgs4K1sN1hcawU+4pGGR/lOrY=;
        b=Ylo78t3EP+fvkY72rNdGj65AlqS0CSbUSUgBPIIB8bTtAL8GZb01eKfu8ZbgLCfQ00
         1dQOCDixIUt7wXjFsCfSB/n7PyDaSJv8Vt14m6MCiSIPWtm5d50uiQEtB7RcUHq1WBKh
         tRshviuu9bx0lh/5eU2K/EjhxXc6Hxb3fiCJnMzwxSAFUxMNaG9hcYuOhjjTvfJTTb+M
         8Rcy/yn0I1lNNMrY4fcIWm9KBbUqIVZM1q8a/FdD96e9PEqWQRP8WPLLobcw9E6GSwcI
         MZiSJLa9dBnwsoCf1jMsHUbqjiXXpMh/Jw5nm7K9zCFlgnxjKUXbEFfR9qv5VMP6nb+p
         8BZQ==
X-Gm-Message-State: AOJu0YzV49Or20BJOogYnTlbXYIsXPvc5NCnuGjXzRyR+6mr7BRBwk6M
	KnbsmbVjoY7cYZ/FqddMfv9LWhWxTjZd4AtST0rfpjNoDotjgtPlMTtwIc7qMg83dIj//FQdO95
	l
X-Gm-Gg: ASbGncv6OVIHjTPYNCQiyjNggYqUHF9FatyJFZC8o7fkjYSHK4l6RSg0XYN+CUxpT/T
	mFyuRwjt1IevHreN+tgJesNl2TETurKMNWPITQEIouHwKlObP/0GIKV1WQzHGk3p1PDsSajkAGb
	Sa8W8Zt0rMAa0XZYz/O0LL2PuAAAlNbWw9H/YjUNQdw4n6o//JCqYAmSQv5BwLn7xiYtVq85UWS
	wEO5j9CqhMxfAEUXc4nLKPGvb8nihgcZIRpIOdGrr3FNKC+Sag2jqmd8AWvkOjDqA4wvyIu3MTO
	ZbnXvwtDzG2QgiYGmqi4qjZcwBMDLP+q+H0WpyTruQ+kmA==
X-Google-Smtp-Source: AGHT+IHzOJRIt25fRgmm3QpyMY/ZAku9BqBUeBglkH0FCpSzrhjAYXYwNSH/8eHTWn/UDlH18PrYVA==
X-Received: by 2002:a17:907:3f0a:b0:aca:d6f0:af0c with SMTP id a640c23a62f3a-acb42c5fa5bmr441959566b.59.1744903599924;
        Thu, 17 Apr 2025 08:26:39 -0700 (PDT)
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: move mmio_ro_emulated_write() to PV only file
Date: Thu, 17 Apr 2025 17:25:14 +0200
Message-ID: <20250417152514.13702-5-roger.pau@citrix.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <20250417152514.13702-1-roger.pau@citrix.com>
References: <20250417152514.13702-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

mmio_ro_emulated_write() is only used in pv/ro-page-fault.c, move the
function to that file and make it static.

No functional change intended.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
---
 xen/arch/x86/include/asm/mm.h   | 12 ------------
 xen/arch/x86/mm.c               | 26 -------------------------
 xen/arch/x86/pv/ro-page-fault.c | 34 +++++++++++++++++++++++++++++++++
 3 files changed, 34 insertions(+), 38 deletions(-)

diff --git a/xen/arch/x86/include/asm/mm.h b/xen/arch/x86/include/asm/mm.h
index aeb8ebcf2d56..2665daa6f74f 100644
--- a/xen/arch/x86/include/asm/mm.h
+++ b/xen/arch/x86/include/asm/mm.h
@@ -542,18 +542,6 @@ void memguard_unguard_stack(void *p);
 int subpage_mmio_ro_add(paddr_t start, size_t size);
 bool subpage_mmio_write_accept(mfn_t mfn, unsigned long gla);
 
-struct mmio_ro_emulate_ctxt {
-        unsigned long cr2;
-        /* Used only for mmcfg case */
-        unsigned int seg, bdf;
-        /* Used only for non-mmcfg case */
-        mfn_t mfn;
-};
-
-int cf_check mmio_ro_emulated_write(
-    enum x86_segment seg, unsigned long offset, void *p_data,
-    unsigned int bytes, struct x86_emulate_ctxt *ctxt);
-
 /* r/o MMIO subpage access handlers. */
 struct subpage_ro_range {
     struct list_head list;
diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
index 0e29bab03a95..9ac855f998dc 100644
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -5144,32 +5144,6 @@ void subpage_mmio_write_emulate(
         goto write_ignored;
 }
 
-int cf_check mmio_ro_emulated_write(
-    enum x86_segment seg,
-    unsigned long offset,
-    void *p_data,
-    unsigned int bytes,
-    struct x86_emulate_ctxt *ctxt)
-{
-    struct mmio_ro_emulate_ctxt *mmio_ro_ctxt = ctxt->data;
-    unsigned long data = 0;
-
-    /* Only allow naturally-aligned stores at the original %cr2 address. */
-    if ( ((bytes | offset) & (bytes - 1)) || !bytes ||
-         offset != mmio_ro_ctxt->cr2 || bytes > sizeof(data) )
-    {
-        gdprintk(XENLOG_WARNING, "bad access (cr2=%lx, addr=%lx, bytes=%u)\n",
-                mmio_ro_ctxt->cr2, offset, bytes);
-        return X86EMUL_UNHANDLEABLE;
-    }
-
-    memcpy(&data, p_data, bytes);
-    subpage_mmio_write_emulate(mmio_ro_ctxt->mfn, PAGE_OFFSET(offset),
-                               data, bytes);
-
-    return X86EMUL_OKAY;
-}
-
 /*
  * For these PTE APIs, the caller must follow the alloc-map-unmap-free
  * lifecycle, which means explicitly mapping the PTE pages before accessing
diff --git a/xen/arch/x86/pv/ro-page-fault.c b/xen/arch/x86/pv/ro-page-fault.c
index 11b01c479e43..3dd795288379 100644
--- a/xen/arch/x86/pv/ro-page-fault.c
+++ b/xen/arch/x86/pv/ro-page-fault.c
@@ -298,6 +298,14 @@ static int ptwr_do_page_fault(struct x86_emulate_ctxt *ctxt,
  * fault handling for read-only MMIO pages
  */
 
+struct mmio_ro_emulate_ctxt {
+    unsigned long cr2;
+    /* Used only for mmcfg case */
+    unsigned int seg, bdf;
+    /* Used only for non-mmcfg case */
+    mfn_t mfn;
+};
+
 static int cf_check mmcfg_intercept_write(
     enum x86_segment seg,
     unsigned long offset,
@@ -329,6 +337,32 @@ static int cf_check mmcfg_intercept_write(
     return X86EMUL_OKAY;
 }
 
+static int cf_check mmio_ro_emulated_write(
+    enum x86_segment seg,
+    unsigned long offset,
+    void *p_data,
+    unsigned int bytes,
+    struct x86_emulate_ctxt *ctxt)
+{
+    struct mmio_ro_emulate_ctxt *mmio_ro_ctxt = ctxt->data;
+    unsigned long data = 0;
+
+    /* Only allow naturally-aligned stores at the original %cr2 address. */
+    if ( ((bytes | offset) & (bytes - 1)) || !bytes ||
+         offset != mmio_ro_ctxt->cr2 || bytes > sizeof(data) )
+    {
+        gdprintk(XENLOG_WARNING, "bad access (cr2=%lx, addr=%lx, bytes=%u)\n",
+                mmio_ro_ctxt->cr2, offset, bytes);
+        return X86EMUL_UNHANDLEABLE;
+    }
+
+    memcpy(&data, p_data, bytes);
+    subpage_mmio_write_emulate(mmio_ro_ctxt->mfn, PAGE_OFFSET(offset),
+                               data, bytes);
+
+    return X86EMUL_OKAY;
+}
+
 static const struct x86_emulate_ops mmio_ro_emulate_ops = {
     .read       = x86emul_unhandleable_rw,
     .insn_fetch = ptwr_emulated_insn_fetch,
-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Thu Apr 17 15:26:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 15:26:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.958057.1351021 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5R8R-0007lc-2s; Thu, 17 Apr 2025 15:26:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 958057.1351021; Thu, 17 Apr 2025 15:26: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 1u5R8Q-0007lV-W0; Thu, 17 Apr 2025 15:26:38 +0000
Received: by outflank-mailman (input) for mailman id 958057;
 Thu, 17 Apr 2025 15:26: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=Dr0F=XD=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u5R8P-0007lK-N4
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 15:26:37 +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 595ac579-1ba0-11f0-9eb0-5ba50f476ded;
 Thu, 17 Apr 2025 17:26:35 +0200 (CEST)
Received: by mail-ej1-x62e.google.com with SMTP id
 a640c23a62f3a-ac2a81e41e3so171154266b.1
 for <xen-devel@lists.xenproject.org>; Thu, 17 Apr 2025 08:26:35 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 a640c23a62f3a-acb6eefc76esm7237866b.104.2025.04.17.08.26.34
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 17 Apr 2025 08:26: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: 595ac579-1ba0-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744903595; x=1745508395; 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=AVqkELojG/lb45njgzcSMmqi6Ubh5ZaZhNGT6y1IyhI=;
        b=vYR+2+YRWFPePAVHWXqFEn4QvUFlOFn0kaS1aoNte4heTNzTWCIQhCz5yJvCg9S+uZ
         0ayF6HSS+6g4MGSmALr6OOAtcK/CM7Z3SGIN634yneWK0MHhG51D0xmdgO45I/T7rBWj
         m98//JMSVoHnkPie4nJPbufchYjkF2DYJCmbc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744903595; x=1745508395;
        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=AVqkELojG/lb45njgzcSMmqi6Ubh5ZaZhNGT6y1IyhI=;
        b=NPEyHhZtDczOrCpDGA7QX/sFlE9byM9RXR21LlsZgRBlhGfwKx0MawngoiZn/I22V3
         IVYHTUOM4LJ9qIcI8PmBq98Xu1nr4L82S8mfM8r8ikCirmZzBRlywOhKSn2YfSjydQgc
         pzoGBzKATOvPiGkeVx+ck4Ppzd3RJcZdf/0mIR6DBZZJRoSrENfd4TKtUpgTAWMlnepY
         jTKeLVSN8r5IPTs9iIPAtDk7iVNp74JTw2E2cdnw8zs+0sW/xtBhluGnWRDU7RjxsDcs
         3SLXJTEG7O7+Y6LCQDFCuswnqNCxho1DdGo/CbwpThUKvEuoXwimzcSHAXKwsWOhC+uZ
         Xjjg==
X-Gm-Message-State: AOJu0Yyl953HbaFyAy8lY+MA8QSUl9Gg6NRrSZYGiaXeWk6uThcf4ALG
	CtbKDZrxKSmOqkbg01M+xO0Pmqgvnu6AOjdrOYk9LCo7FT4xHmijwtLzqnOSKHc+5RWCqfZXJv/
	c
X-Gm-Gg: ASbGncv2PQgMcOwYPFm4SpL6S5q8BwPPufFAV5AxG7QHp4y4LzYpUUuQmi1k2L/21W4
	HVAaKU9h9L7mftqLOQFw8n3bQVzdZp0sWgIgMZyzw88QpYz3PLRrsvghvwzX4emSZHML1F+1GWi
	t8+kOqac3HU7l5XTjr8euggiPCVswVcVBI4eKF2mykjRE7ny9q4pDaUhL1l4Iylvb24Cgt33atH
	HCscpwnvlG3ETdILuvIKRiekBiuoIGZvyf26iH2jYEZG+TD8kD1srqnKLTJptt/AnKYLYnjrayn
	0mDUbzfthmYBB7YPA9kFOXpufw0rykLrkVa2EbZdu8ZDvA==
X-Google-Smtp-Source: AGHT+IEzYJc/6QmwaKfQ+ag0WDL3RULEvOmmyiKDQ3oc5kSwpBcA2FwDxPSz6sGQsmuZ+dCK++jmXQ==
X-Received: by 2002:a17:907:9718:b0:abf:7453:1f1a with SMTP id a640c23a62f3a-acb42a1cdacmr603762466b.36.1744903594749;
        Thu, 17 Apr 2025 08:26:34 -0700 (PDT)
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>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v3 0/4] xen/x86: fix implementation of subpage r/o MMIO
Date: Thu, 17 Apr 2025 17:25:10 +0200
Message-ID: <20250417152514.13702-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.48.1
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Hello,

Following series include some bugfixes and improvements to the handling
of subpage r/o MMIO accesses.

Patch 1 introduces a helper to reduce code duplication when performing
MMIO accesses.

Patch 2 is a bugfix for using subpage in HVM guest, and patch 3 is an
optimization to only register the HVM subpage handler when needed.

Finally patch 4 moves some PV only code to a PV specific file.

Thanks, Roger.

Roger Pau Monne (4):
  xen/io: provide helpers for multi size MMIO accesses
  x86/hvm: fix handling of accesses to partial r/o MMIO pages
  x86/hvm: only register the r/o subpage ops when needed
  x86/mm: move mmio_ro_emulated_write() to PV only file

 xen/arch/x86/hvm/Makefile              |   1 +
 xen/arch/x86/hvm/emulate.c             |  54 ++---------
 xen/arch/x86/hvm/hvm.c                 |  18 ++--
 xen/arch/x86/hvm/mmio.c                | 125 +++++++++++++++++++++++++
 xen/arch/x86/hvm/vmsi.c                |  47 +---------
 xen/arch/x86/include/asm/hvm/emulate.h |   1 -
 xen/arch/x86/include/asm/hvm/io.h      |   3 +
 xen/arch/x86/include/asm/mm.h          |  21 +++--
 xen/arch/x86/mm.c                      | 101 +++++---------------
 xen/arch/x86/pv/ro-page-fault.c        |  34 +++++++
 xen/drivers/vpci/msix.c                |  47 +---------
 xen/include/xen/io.h                   |  70 ++++++++++++++
 12 files changed, 289 insertions(+), 233 deletions(-)
 create mode 100644 xen/arch/x86/hvm/mmio.c
 create mode 100644 xen/include/xen/io.h

-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Thu Apr 17 15:26:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 15:26:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.958059.1351041 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5R8U-0008Ek-Ks; Thu, 17 Apr 2025 15:26:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 958059.1351041; Thu, 17 Apr 2025 15: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 1u5R8U-0008Eb-Gl; Thu, 17 Apr 2025 15:26:42 +0000
Received: by outflank-mailman (input) for mailman id 958059;
 Thu, 17 Apr 2025 15: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=Dr0F=XD=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u5R8T-0008DN-0E
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 15:26: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 5b1c09b0-1ba0-11f0-9ffb-bf95429c2676;
 Thu, 17 Apr 2025 17:26:38 +0200 (CEST)
Received: by mail-ed1-x534.google.com with SMTP id
 4fb4d7f45d1cf-5e5c7d6b96fso1635924a12.3
 for <xen-devel@lists.xenproject.org>; Thu, 17 Apr 2025 08:26:38 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 a640c23a62f3a-acb6ef9e7e6sm6753266b.162.2025.04.17.08.26.36
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 17 Apr 2025 08:26:36 -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: 5b1c09b0-1ba0-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744903597; x=1745508397; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=mtVvVPkNQY8ZxlkkVuOoPY391iPEFrzuGNcLlQibf5k=;
        b=o3l03CDSsp16tCdSLHcSmrIDsu7ztd98PNtpUL7x7reMkkMu9xV346LBoWi6L41Y72
         l4+Csl+DidyoW3o6d7rLxdroeXBEXrSEiyslbEyH2YyJXLjijocXo4cvgtkO/IkVbzSn
         cpezm8ah8tAG2fyg5jqdbo50Vzrjx+HKLo0eQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744903597; x=1745508397;
        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=mtVvVPkNQY8ZxlkkVuOoPY391iPEFrzuGNcLlQibf5k=;
        b=u+JWkYfZDeB2NGGTl8qzYA1qeTOEyMJe/6oRJBurPOMy8o7sb8IB6/13IYv4CWdc+A
         yP5K5hCJ6DTS0NpKsrqbthuEHrQEKoRl2MIyysztI1Qmtq8FkLNj5G8hOxTZwsmlWYVc
         0hCtxfLnS7CCHEEl5Kp/edxysmYjZyDhUHR85wJTYBIvb5zLLzjnCekhLIU0ylVmdg+s
         AybD3YjUeL95WRal6YF5nzI/KpLRCL0sK5hl2js4glVGMephAaWx0kEnTWvLODq5VWqu
         a55HG47s7UL1rvKoSnQtAmld6Hs7vlUm8DsHDXjXGcjcaAF7b+VvQRX6x+BkPv971DLq
         M8JA==
X-Gm-Message-State: AOJu0YwIjReXnxE8OVy4THPlOHaVA8oE9KmZV048GXJAa9FfbXDNWs24
	5AleUkxkYYEjkppazxHo3uIUPcmLEAcbFSW6/PgFJuiys4MM0lX9QRmQTyemZo8h2EmFBvJuORV
	h
X-Gm-Gg: ASbGnctp1UkUEed6cLUjqUZeHGY+xrScP9QlQLnlFf8yRdxunt0vpMMx3xKCxRxV51H
	83zpOrPX/hn5iCLrW/HUXLD31hXQmf6Vf21myeJnB4JYluXn/VpSBQWcJng2V5UhingqKzTgrCA
	CI4yzLs7etUM8aZVmMmlOXfkRlttAkMi20gaiizN5Sw+Z1zu/sPkkr+h/Z+xH8DjxpUj461/L8M
	AFuziZGYQMC95IltoSOzdFPc7gFHYi4lb+znsNl9mU1OPpa0yaFseD0ebRdENMhZhgi6kOReMLU
	rkSRCu8FLXbDJJ2gwcH8D2cX3tw6XenDTPACjX6KpI2MUdZ/IhY9GzYj
X-Google-Smtp-Source: AGHT+IFChuVjPTJWfta9AUWGP3/WLUQaqpQg41cYyYY5MeNURANJHF5LaM0GPEFqeZJZ6DxJqc/1iA==
X-Received: by 2002:a17:907:d8b:b0:ac7:684c:25ca with SMTP id a640c23a62f3a-acb42c154b8mr469829266b.51.1744903597280;
        Thu, 17 Apr 2025 08:26:37 -0700 (PDT)
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/hvm: fix handling of accesses to partial r/o MMIO pages
Date: Thu, 17 Apr 2025 17:25:12 +0200
Message-ID: <20250417152514.13702-3-roger.pau@citrix.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <20250417152514.13702-1-roger.pau@citrix.com>
References: <20250417152514.13702-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The current logic to handle accesses to MMIO pages partially read-only is
based on the (now removed) logic used to handle accesses to the r/o MMCFG
region(s) for PVH v1 dom0.  However that has issues when running on AMD
hardware, as in that case the guest linear address that triggered the fault
is not provided as part of the VM exit.  This caused
mmio_ro_emulated_write() to always fail before calling
subpage_mmio_write_emulate() when running on AMD and called from an HVM
context.

Take a different approach and convert the handling of partial read-only
MMIO page accesses into an HVM MMIO ops handler, as that's the more natural
way to handle this kind of emulation for HVM domains.

This allows getting rid of hvm_emulate_one_mmio() and it's single call site
in hvm_hap_nested_page_fault().  As part of the fix r/o MMIO accesses are
now handled by handle_mmio_with_translation(), re-using the same logic that
was used for other read-only types part of p2m_is_discard_write().  The
usage of emulation for faulting p2m_mmio_direct types is limited to
addresses in the r/o MMIO range. The page present check is dropped as type
p2m_mmio_direct must have the present bit set in the PTE.

Note a small adjustment is needed to the `pf-fixup` dom0 PVH logic: avoid
attempting to fixup faults resulting from write accesses to read-only MMIO
regions, as handling of those accesses is now done by handle_mmio().

Fixes: 33c19df9a5a0 ('x86/PCI: intercept accesses to RO MMIO from dom0s in HVM containers')
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
Changes since v2:
 - Attempt to fixup read access to r/o MMIO regions for dom0 PVH.
 - Use PFN_DOWN() with get_gfn_query().
 - Reject unaligned accesses.
 - Add comment about the need to handle reads.

Changes since v1:
 - Introduce hvm/mmio.c to place the r/o MMIO handlers.
 - Add comment about pf-fixup and r/o MMIO range checking.
 - Expand commit message about dropping the PTE present check and usage of
   the emulator.
 - Return X86EMUL_OKAY in the read handler if the MMIO region is not found.
 - Check the faulting address is in the mmio_ro_ranges before sending for
   emulation.
---
 xen/arch/x86/hvm/Makefile              |   1 +
 xen/arch/x86/hvm/emulate.c             |  54 ++---------
 xen/arch/x86/hvm/hvm.c                 |  17 ++--
 xen/arch/x86/hvm/mmio.c                | 125 +++++++++++++++++++++++++
 xen/arch/x86/include/asm/hvm/emulate.h |   1 -
 xen/arch/x86/include/asm/hvm/io.h      |   3 +
 xen/arch/x86/include/asm/mm.h          |  12 +++
 xen/arch/x86/mm.c                      |  37 +-------
 8 files changed, 160 insertions(+), 90 deletions(-)
 create mode 100644 xen/arch/x86/hvm/mmio.c

diff --git a/xen/arch/x86/hvm/Makefile b/xen/arch/x86/hvm/Makefile
index 4c1fa5c6c2bf..6ec2c8f2db56 100644
--- a/xen/arch/x86/hvm/Makefile
+++ b/xen/arch/x86/hvm/Makefile
@@ -15,6 +15,7 @@ obj-y += intercept.o
 obj-y += io.o
 obj-y += ioreq.o
 obj-y += irq.o
+obj-y += mmio.o
 obj-y += monitor.o
 obj-y += mtrr.o
 obj-y += nestedhvm.o
diff --git a/xen/arch/x86/hvm/emulate.c b/xen/arch/x86/hvm/emulate.c
index 79c180b408ac..65b41b964df0 100644
--- a/xen/arch/x86/hvm/emulate.c
+++ b/xen/arch/x86/hvm/emulate.c
@@ -370,7 +370,15 @@ static int hvmemul_do_io(
         /* If there is no suitable backing DM, just ignore accesses */
         if ( !s )
         {
-            if ( is_mmio && is_hardware_domain(currd) )
+            if ( is_mmio && is_hardware_domain(currd) &&
+                 /*
+                  * Do not attempt to fixup write accesses to r/o MMIO regions,
+                  * they are expected to be terminated by the null handler
+                  * below.
+                  */
+                 (!rangeset_contains_singleton(mmio_ro_ranges,
+                                               PFN_DOWN(addr)) ||
+                  dir == IOREQ_READ) )
             {
                 /*
                  * PVH dom0 is likely missing MMIO mappings on the p2m, due to
@@ -2859,50 +2867,6 @@ int hvm_emulate_one(
     return _hvm_emulate_one(hvmemul_ctxt, &hvm_emulate_ops, completion);
 }
 
-int hvm_emulate_one_mmio(unsigned long mfn, unsigned long gla)
-{
-    static const struct x86_emulate_ops hvm_ro_emulate_ops_mmio = {
-        .read       = x86emul_unhandleable_rw,
-        .insn_fetch = hvmemul_insn_fetch,
-        .write      = mmio_ro_emulated_write,
-        .validate   = hvmemul_validate,
-    };
-    struct mmio_ro_emulate_ctxt mmio_ro_ctxt = { .cr2 = gla, .mfn = _mfn(mfn) };
-    struct hvm_emulate_ctxt ctxt;
-    unsigned int seg, bdf;
-    int rc;
-
-    if ( pci_ro_mmcfg_decode(mfn, &seg, &bdf) )
-    {
-        /* Should be always handled by vPCI for PVH dom0. */
-        gdprintk(XENLOG_ERR, "unhandled MMCFG access for %pp\n",
-                 &PCI_SBDF(seg, bdf));
-        ASSERT_UNREACHABLE();
-        return X86EMUL_UNHANDLEABLE;
-    }
-
-    hvm_emulate_init_once(&ctxt, x86_insn_is_mem_write,
-                          guest_cpu_user_regs());
-    ctxt.ctxt.data = &mmio_ro_ctxt;
-
-    switch ( rc = _hvm_emulate_one(&ctxt, &hvm_ro_emulate_ops_mmio,
-                                   VIO_no_completion) )
-    {
-    case X86EMUL_UNHANDLEABLE:
-    case X86EMUL_UNIMPLEMENTED:
-        hvm_dump_emulation_state(XENLOG_G_WARNING, "r/o MMIO", &ctxt, rc);
-        break;
-    case X86EMUL_EXCEPTION:
-        hvm_inject_event(&ctxt.ctxt.event);
-        /* fallthrough */
-    default:
-        hvm_emulate_writeback(&ctxt);
-        break;
-    }
-
-    return rc;
-}
-
 void hvm_emulate_one_vm_event(enum emul_kind kind, unsigned int trapnr,
     unsigned int errcode)
 {
diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index 6f1174c5127e..6b998387e3d8 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -8,6 +8,7 @@
  */
 
 #include <xen/init.h>
+#include <xen/io.h>
 #include <xen/ioreq.h>
 #include <xen/lib.h>
 #include <xen/trace.h>
@@ -35,7 +36,6 @@
 #include <asm/current.h>
 #include <asm/debugreg.h>
 #include <asm/e820.h>
-#include <asm/io.h>
 #include <asm/regs.h>
 #include <asm/cpufeature.h>
 #include <asm/processor.h>
@@ -692,6 +692,8 @@ int hvm_domain_initialise(struct domain *d,
 
     register_portio_handler(d, XEN_HVM_DEBUGCONS_IOPORT, 1, hvm_print_line);
 
+    register_subpage_ro_handler(d);
+
     if ( hvm_tsc_scaling_supported )
         d->arch.hvm.tsc_scaling_ratio = hvm_default_tsc_scaling_ratio;
 
@@ -1981,7 +1983,10 @@ int hvm_hap_nested_page_fault(paddr_t gpa, unsigned long gla,
      */
     if ( (p2mt == p2m_mmio_dm) ||
          (npfec.write_access &&
-          (p2m_is_discard_write(p2mt) || (p2mt == p2m_ioreq_server))) )
+          (p2m_is_discard_write(p2mt) || (p2mt == p2m_ioreq_server) ||
+           /* MMIO entries can be r/o if the target mfn is in mmio_ro_ranges. */
+           (p2mt == p2m_mmio_direct &&
+            rangeset_contains_singleton(mmio_ro_ranges, mfn_x(mfn))))) )
     {
         if ( !handle_mmio_with_translation(gla, gfn, npfec) )
             hvm_inject_hw_exception(X86_EXC_GP, 0);
@@ -2033,14 +2038,6 @@ int hvm_hap_nested_page_fault(paddr_t gpa, unsigned long gla,
         goto out_put_gfn;
     }
 
-    if ( (p2mt == p2m_mmio_direct) && npfec.write_access && npfec.present &&
-         (is_hardware_domain(currd) || subpage_mmio_write_accept(mfn, gla)) &&
-         (hvm_emulate_one_mmio(mfn_x(mfn), gla) == X86EMUL_OKAY) )
-    {
-        rc = 1;
-        goto out_put_gfn;
-    }
-
     /* If we fell through, the vcpu will retry now that access restrictions have
      * been removed. It may fault again if the p2m entry type still requires so.
      * Otherwise, this is an error condition. */
diff --git a/xen/arch/x86/hvm/mmio.c b/xen/arch/x86/hvm/mmio.c
new file mode 100644
index 000000000000..88e9d0c65d89
--- /dev/null
+++ b/xen/arch/x86/hvm/mmio.c
@@ -0,0 +1,125 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * MMIO related routines.
+ *
+ * Copyright (c) 2025 Cloud Software Group
+ */
+
+#include <xen/io.h>
+#include <xen/mm.h>
+
+#include <asm/p2m.h>
+
+static int cf_check subpage_mmio_accept(struct vcpu *v, unsigned long addr)
+{
+    p2m_type_t t;
+    mfn_t mfn = get_gfn_query_unlocked(v->domain, PFN_DOWN(addr), &t);
+
+    return !mfn_eq(mfn, INVALID_MFN) && t == p2m_mmio_direct &&
+           subpage_mmio_find_page(mfn);
+}
+
+/*
+ * The guest has read access to those regions, and consequently read accesses
+ * shouldn't fault.  However read-modify-write operations may take this path,
+ * so handling of reads is necessary.
+ */
+static int cf_check subpage_mmio_read(
+    struct vcpu *v, unsigned long addr, unsigned int len, unsigned long *data)
+{
+    struct domain *d = v->domain;
+    unsigned long gfn = PFN_DOWN(addr);
+    p2m_type_t t;
+    mfn_t mfn;
+    struct subpage_ro_range *entry;
+    volatile void __iomem *mem;
+
+    *data = ~0UL;
+
+    if ( !IS_ALIGNED(len | addr, len) )
+    {
+        gprintk(XENLOG_ERR,
+                "ignoring unaligned read to r/o MMIO subpage %#lx size %u\n",
+                addr, len);
+        return X86EMUL_OKAY;
+    }
+
+    mfn = get_gfn_query(d, gfn, &t);
+    if ( mfn_eq(mfn, INVALID_MFN) || t != p2m_mmio_direct )
+    {
+        put_gfn(d, gfn);
+        return X86EMUL_RETRY;
+    }
+
+    entry = subpage_mmio_find_page(mfn);
+    if ( !entry )
+    {
+        put_gfn(d, gfn);
+        return X86EMUL_OKAY;
+    }
+
+    mem = subpage_mmio_map_page(entry);
+    if ( !mem )
+    {
+        put_gfn(d, gfn);
+        gprintk(XENLOG_ERR,
+                "Failed to map page for MMIO read at %#lx -> %#lx\n",
+                addr, mfn_to_maddr(mfn) + PAGE_OFFSET(addr));
+        return X86EMUL_OKAY;
+    }
+
+    *data = read_mmio(mem + PAGE_OFFSET(addr), len);
+
+    put_gfn(d, gfn);
+    return X86EMUL_OKAY;
+}
+
+static int cf_check subpage_mmio_write(
+    struct vcpu *v, unsigned long addr, unsigned int len, unsigned long data)
+{
+    struct domain *d = v->domain;
+    unsigned long gfn = PFN_DOWN(addr);
+    p2m_type_t t;
+    mfn_t mfn;
+
+    if ( !IS_ALIGNED(len | addr, len) )
+    {
+        gprintk(XENLOG_ERR,
+                "ignoring unaligned write to r/o MMIO subpage %#lx size %u\n",
+                addr, len);
+        return X86EMUL_OKAY;
+    }
+
+    mfn = get_gfn_query(d, gfn, &t);
+    if ( mfn_eq(mfn, INVALID_MFN) || t != p2m_mmio_direct )
+    {
+        put_gfn(d, gfn);
+        return X86EMUL_RETRY;
+    }
+
+    subpage_mmio_write_emulate(mfn, PAGE_OFFSET(addr), data, len);
+
+    put_gfn(d, gfn);
+    return X86EMUL_OKAY;
+}
+
+void register_subpage_ro_handler(struct domain *d)
+{
+    static const struct hvm_mmio_ops subpage_mmio_ops = {
+        .check = subpage_mmio_accept,
+        .read = subpage_mmio_read,
+        .write = subpage_mmio_write,
+    };
+
+    register_mmio_handler(d, &subpage_mmio_ops);
+}
+
+/*
+ * 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/hvm/emulate.h b/xen/arch/x86/include/asm/hvm/emulate.h
index c7a2d2a5be4e..178ac32e151f 100644
--- a/xen/arch/x86/include/asm/hvm/emulate.h
+++ b/xen/arch/x86/include/asm/hvm/emulate.h
@@ -86,7 +86,6 @@ void hvmemul_cancel(struct vcpu *v);
 struct segment_register *hvmemul_get_seg_reg(
     enum x86_segment seg,
     struct hvm_emulate_ctxt *hvmemul_ctxt);
-int hvm_emulate_one_mmio(unsigned long mfn, unsigned long gla);
 
 static inline bool handle_mmio(void)
 {
diff --git a/xen/arch/x86/include/asm/hvm/io.h b/xen/arch/x86/include/asm/hvm/io.h
index 565bad300d20..c12f099a037c 100644
--- a/xen/arch/x86/include/asm/hvm/io.h
+++ b/xen/arch/x86/include/asm/hvm/io.h
@@ -135,6 +135,9 @@ void destroy_vpci_mmcfg(struct domain *d);
 /* Remove MMCFG regions from a domain ->iomem_caps. */
 int vpci_mmcfg_deny_access(struct domain *d);
 
+/* r/o MMIO subpage access handler. */
+void register_subpage_ro_handler(struct domain *d);
+
 #endif /* __ASM_X86_HVM_IO_H__ */
 
 
diff --git a/xen/arch/x86/include/asm/mm.h b/xen/arch/x86/include/asm/mm.h
index a1bc8cc27451..c2e9ef6e5023 100644
--- a/xen/arch/x86/include/asm/mm.h
+++ b/xen/arch/x86/include/asm/mm.h
@@ -554,6 +554,18 @@ int cf_check mmio_ro_emulated_write(
     enum x86_segment seg, unsigned long offset, void *p_data,
     unsigned int bytes, struct x86_emulate_ctxt *ctxt);
 
+/* r/o MMIO subpage access handlers. */
+struct subpage_ro_range {
+    struct list_head list;
+    mfn_t mfn;
+    void __iomem *mapped;
+    DECLARE_BITMAP(ro_elems, PAGE_SIZE / MMIO_RO_SUBPAGE_GRAN);
+};
+struct subpage_ro_range *subpage_mmio_find_page(mfn_t mfn);
+void __iomem *subpage_mmio_map_page(struct subpage_ro_range *entry);
+void subpage_mmio_write_emulate(
+    mfn_t mfn, unsigned int offset, unsigned long data, unsigned int len);
+
 int audit_adjust_pgtables(struct domain *d, int dir, int noisy);
 
 extern int pagefault_by_memadd(unsigned long addr, struct cpu_user_regs *regs);
diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
index 8baac132b484..927beb6f07aa 100644
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -157,13 +157,6 @@ struct rangeset *__read_mostly mmio_ro_ranges;
 static uint32_t __ro_after_init base_disallow_mask;
 
 /* Handling sub-page read-only MMIO regions */
-struct subpage_ro_range {
-    struct list_head list;
-    mfn_t mfn;
-    void __iomem *mapped;
-    DECLARE_BITMAP(ro_elems, PAGE_SIZE / MMIO_RO_SUBPAGE_GRAN);
-};
-
 static LIST_HEAD_RO_AFTER_INIT(subpage_ro_ranges);
 static DEFINE_SPINLOCK(subpage_ro_lock);
 
@@ -4929,7 +4922,7 @@ long arch_memory_op(unsigned long cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
     return rc;
 }
 
-static struct subpage_ro_range *subpage_mmio_find_page(mfn_t mfn)
+struct subpage_ro_range *subpage_mmio_find_page(mfn_t mfn)
 {
     struct subpage_ro_range *entry;
 
@@ -5074,7 +5067,7 @@ int __init subpage_mmio_ro_add(
     return rc;
 }
 
-static void __iomem *subpage_mmio_map_page(
+void __iomem *subpage_mmio_map_page(
     struct subpage_ro_range *entry)
 {
     void __iomem *mapped_page;
@@ -5099,7 +5092,7 @@ static void __iomem *subpage_mmio_map_page(
     return entry->mapped;
 }
 
-static void subpage_mmio_write_emulate(
+void subpage_mmio_write_emulate(
     mfn_t mfn,
     unsigned int offset,
     unsigned long data,
@@ -5135,30 +5128,6 @@ static void subpage_mmio_write_emulate(
         goto write_ignored;
 }
 
-#ifdef CONFIG_HVM
-bool subpage_mmio_write_accept(mfn_t mfn, unsigned long gla)
-{
-    unsigned int offset = PAGE_OFFSET(gla);
-    const struct subpage_ro_range *entry;
-
-    entry = subpage_mmio_find_page(mfn);
-    if ( !entry )
-        return false;
-
-    if ( !test_bit(offset / MMIO_RO_SUBPAGE_GRAN, entry->ro_elems) )
-    {
-        /*
-         * We don't know the write size at this point yet, so it could be
-         * an unaligned write, but accept it here anyway and deal with it
-         * later.
-         */
-        return true;
-    }
-
-    return false;
-}
-#endif
-
 int cf_check mmio_ro_emulated_write(
     enum x86_segment seg,
     unsigned long offset,
-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Thu Apr 17 15:30:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 15:30:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.958123.1351071 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5RCR-00045U-Q9; Thu, 17 Apr 2025 15:30:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 958123.1351071; Thu, 17 Apr 2025 15:30: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 1u5RCR-00045N-MW; Thu, 17 Apr 2025 15:30:47 +0000
Received: by outflank-mailman (input) for mailman id 958123;
 Thu, 17 Apr 2025 15:30: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=nsoM=XD=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u5RCQ-00043Z-Cd
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 15:30:46 +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 ed76e83b-1ba0-11f0-9ffb-bf95429c2676;
 Thu, 17 Apr 2025 17:30:44 +0200 (CEST)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-391342fc0b5so794298f8f.3
 for <xen-devel@lists.xenproject.org>; Thu, 17 Apr 2025 08:30:44 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 6a1803df08f44-6f2c2af1717sm363866d6.15.2025.04.17.08.30.41
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 17 Apr 2025 08:30:43 -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: ed76e83b-1ba0-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744903844; x=1745508644; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=AcJwV7f16+YtGv1E2WpBt02GJdjfNE+GJk7w/le79ik=;
        b=RG/D+SgdHUptihN8dQDmc0Dxs8PkgzcTRxo91+nx+WMO77mgCYYUgBmYvIlL4gruCP
         A6DFcTmGIBHNFnvdWbv1mdnrvYresyNv4mqUn/CyZpKYwfsyurLu5flhGD6xqfI+iTjk
         7cQs+QBjsTMuzjP4ebZpHnwDnbCYvl6RdihHB6LGa9UK91E3pB+2JJDY2umR7mab+uOq
         iI5lPpskuzhN9hnp4ruXAmXXH0zxmOrRiN+n1mOH5Xa5mb/RHrHGxYTFrMqm8yMw4Oow
         BkkekC/oWtnEuHbdK7FSOJ1qEo4/Jpv8iog1GgISJb8PSB+19B18GRagk9v02mXcHR7H
         Fr+g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744903844; x=1745508644;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=AcJwV7f16+YtGv1E2WpBt02GJdjfNE+GJk7w/le79ik=;
        b=Y4gH/Bu8YnufhU36FOl2OlkLCH5rp88tvJYf1f6fojqoe7n6RxhlbmJbmmJaadBmfh
         l+PTFI46azsQgoEg+4u9/jiy5dacNxBRPcNh+Er9ht1spd5yx1jVtsf0NXDEGKoSJ1HR
         9rSgj9XfpngBkVrjeHU1Dy3jImKuwQIZXKqFcCvpA9f2qwzjK+6QR7VDY90rBS2Ki+0a
         00vRWvSheKvXZ/24D79lvCffr0/GzLnqrenR9L7aIoHFiX8RtNKXORxvvNUUznSfSJeF
         /kmw9I9fRFym38ocz7nXqr8mSb46uVS5Cf1PMzDoOre4Zm9NcZoIDzibEpjfZkU/3ogn
         jPxw==
X-Forwarded-Encrypted: i=1; AJvYcCWwHl8UvljluKzPoOqMgOVAbFwucw72iHY/zswY0FiTaAUtHAyIy/eldu6FJQArlGQi9+iStPKxGCI=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz6/hUfKuuArJyZNfJ7INUl5zzyus326fkpERb7FTTdIrkxfeTQ
	b0hR+fRyHOcd6PRPZzFwc05XDFSnTYIqbQizmZVSDw/+5K0VNQPyJqqtozUSmQ==
X-Gm-Gg: ASbGncu9j6FjrAXj2l8GHW4BN1DTALn5XslRomz3E1/gaiwpncqt5q7kWdH05FH4N33
	O2FSbPBNn64ZLIKweyqsRIaUFN/oSfssjlsEEdIdjhHSDYqpchf2ud12zC0yQqH8Nyb2PGPBN3/
	MiAzzwZqKGFOQ0Ktm4jYaKFSH9VAFWggam8ACI6/rq731c4NdYN4qzjhn+aBi6ubQRNyZlf2yVF
	1QSE95/qWwrbjF4s70muBg2V6SeXp5mUElNlFYILT+/BjfNaerCrU96b7gARd8NfmF6NO6uOhTM
	whDrMF04tETtD2SAgQxnydmISd8tAkjIe0fcuSxp+7hlyMuqs3UT0uWaBJObbL1Blh/vMwfcjFw
	dSEu1Bt0DSG7WqKhOGRvTDGXo4vJzVu7fA2zf
X-Google-Smtp-Source: AGHT+IGl7cvR57f0Sk1CNJkIckrjpnwA3PCZvbbYPQRpX7K9U++zKZjjsEQyuyQqXsgh7DWV9S/GmQ==
X-Received: by 2002:a05:6000:1a88:b0:39e:dd1e:f325 with SMTP id ffacd0b85a97d-39ee5b3623cmr5067857f8f.31.1744903843715;
        Thu, 17 Apr 2025 08:30:43 -0700 (PDT)
Message-ID: <2795e63a-fc37-4ab9-8348-ab2f609f1734@suse.com>
Date: Thu, 17 Apr 2025 17:30:39 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 09/14] xen/riscv: aplic_init() implementation
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Romain Caritey <Romain.Caritey@microchip.com>, xen-devel@lists.xenproject.org
References: <cover.1744126720.git.oleksii.kurochko@gmail.com>
 <1d023045be49ae93d41d552f9c9a79972fa4e84b.1744126720.git.oleksii.kurochko@gmail.com>
 <a7008eee-04d2-4e61-b66a-ff659e3b99db@suse.com>
 <a54ef262-92fc-453d-898e-70636c2918fd@gmail.com>
 <f2da2ec5-e457-4d2c-b2fe-49c7356760e1@suse.com>
 <fd24bee3-bbbd-4701-a34c-08b64ea0af5a@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: <fd24bee3-bbbd-4701-a34c-08b64ea0af5a@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 17.04.2025 17:21, Oleksii Kurochko wrote:
> 
> On 4/16/25 12:30 PM, Jan Beulich wrote:
>> On 16.04.2025 12:15, Oleksii Kurochko wrote:
>>> On 4/14/25 12:04 PM, Jan Beulich wrote:
>>>> On 08.04.2025 17:57, Oleksii Kurochko wrote:
>>>>> +    rc = dt_property_read_u32(node, "msi-parent", &imsic_phandle);
>>>>> +    if ( !rc )
>>>>> +        panic("%s: IDC mode not supported\n", node->full_name);
>>>>> +
>>>>> +    imsic_node = dt_find_node_by_phandle(imsic_phandle);
>>>>> +    if ( !imsic_node )
>>>>> +        panic("%s: unable to find IMSIC node\n", node->full_name);
>>>>> +
>>>>> +    /* check imsic mode */
>>>>> +    rc = dt_property_read_u32_array(imsic_node, "interrupts-extended",
>>>>> +                                    irq_range, ARRAY_SIZE(irq_range));
>>>>> +    if ( rc && (rc != -EOVERFLOW) )
>>>>> +        panic("%s: unable to find interrupt-extended in %s node\n",
>>>>> +               node->full_name, imsic_node->full_name);
>>>> Why exactly is EOVERFLOW tolerable here?
>>> QEMU generates two IMSIC device tree nodes: one for M-mode and one for S-mode.
>>> For the hypervisor, we don’t really care about the M-mode IMSIC node — we're only
>>> interested in the S-mode IMSIC node.
>>>
>>> The IMSIC node includes this information in the|"interrupts-extended"| property,
>>> which has the following format:
>>>     interrupt-extended = {<interrupt-controller-phandle>, <machine_mode>},...
>>> The number of such|<phandle, mode>| pairs depends on the number of CPUs the platform has.
>>>
>>> For our purposes, to determine whether the IMSIC node corresponds to M-mode or not, it’s sufficient to read only the first pair and check the mode like this:
>>>
>>>     if ( irq_range[1] == IRQ_M_EXT )
>>>
>>> Thereby dt_property_read_u32_array() will return -EOVERFLOW in the case when a platfrom
>>> has more then one CPU as we passed irq_range[2] as an argument but the amount of values
>>> in "interrupts-extended" property will be (2 * CPUS_NUM).
>>>
>>> I can update the comment above dt_property_read_u32_array() for more clearness.
>> Yet my question remains: Why would it be okay to ignore the remaining entries,
>> and hence accept -EOVERFLOW as kind-of-success?
> 
> Because for other entries the IMSIC mode will be the same and the difference will be only in
> interrupt controller's phandle

And we can blindly take this for granted? Would you mind extending the
comment that's there to include this aspect?

Jan

> which we don't care about in this function and cares only about
> in imisic_init(), look at usage of imsic_get_parent_hartid().



From xen-devel-bounces@lists.xenproject.org Thu Apr 17 15:32:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 15:32:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.958134.1351080 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5REG-0004cE-3r; Thu, 17 Apr 2025 15:32:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 958134.1351080; Thu, 17 Apr 2025 15: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 1u5REG-0004c7-1I; Thu, 17 Apr 2025 15:32:40 +0000
Received: by outflank-mailman (input) for mailman id 958134;
 Thu, 17 Apr 2025 15:32:38 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=nsoM=XD=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u5REE-0004bz-E8
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 15:32:38 +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 30631950-1ba1-11f0-9ffb-bf95429c2676;
 Thu, 17 Apr 2025 17:32:36 +0200 (CEST)
Received: by mail-wr1-x433.google.com with SMTP id
 ffacd0b85a97d-3913b539aabso628769f8f.2
 for <xen-devel@lists.xenproject.org>; Thu, 17 Apr 2025 08:32:36 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 6a1803df08f44-6f2c2c21c61sm236356d6.109.2025.04.17.08.32.34
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 17 Apr 2025 08:32:35 -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: 30631950-1ba1-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744903956; x=1745508756; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=gBrsL2wVw/vZseBqguFB9TIgJIzVN25yiOiPPaa3WYc=;
        b=DgAcHWflgrUyfGTV/HBGVKiy2Ehorn19fXJKPgBZHULqqwrL+oxX01Xz3Fn3LD6SSW
         oX/qwIQ4brTuEsnBbjp5L8RfAoskajGDY1rE280KLHHohhR611ByACpT3jFfKeKtI0ys
         vrGmR/DCOhWPrEDjlz5vol4AZYbvy1f91bAHYVqdhuxoTQ3c25aqYKDp94DvZEXIQlhT
         QZAygFOUzHv5bnP/KVXGQ74rFUWmTIShqxdi8aqWu/oX9M1P1X3aEBex8rjEklqrvh5a
         v4T1tb3hIaQlnyPhL5HvOPQzFfcHCLyFd+IF/1x/ocKuRrzgx27jLyoTod2Yx0GSMt4w
         iU9w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744903956; x=1745508756;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=gBrsL2wVw/vZseBqguFB9TIgJIzVN25yiOiPPaa3WYc=;
        b=bgAZOONerKWPs7SzDN+fnXto94DmDJJTjuggvP4q2tMQi+jg0ONkb95caKQMNv48UZ
         VvNGOcH5xlwmXZKxwwWsf0wOlvKAr7LZH854SnLtN1qtAF4bPkkwDyumRfOcpDzh8FDS
         Zze3Z4FDkVwHYUTrZ82N9XlQZJteCDN83REqrsSCNhDqYIMl74CO61AKyygAtlqXRYkd
         rwMI6z4SrlfhG9/4yisUi/2i/l8cSbXzZDF0REYkuyOVs3+LgzyR7pYWdJW4jq+9+BRu
         5j0aQpfUtRIzx2vq3dFUlo5QSB7E9fSOkG/O2MFiM4dEPVqNFKQP+9WcgtTBAofUALV7
         Z6iw==
X-Forwarded-Encrypted: i=1; AJvYcCWTgFSbIBJCZRB5W7h65B0w0u8GTnAoC/QKWvMXAyRGBlvZcZeqAbpVgEIjXUwB/XomP0p4qs5+3Ys=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz3AX8S9n3j06COG39IV+8dWc6gVxUQEWvgePMzbVaOSgo5qcFk
	IwtKk/e47c/KV0KNMsQ7ghCWAeQdPU5I1SWKtW7gCHr0T0O4fbFo/KwY7LvpYA==
X-Gm-Gg: ASbGncvmbfU3i4M9FbY0DwYqO5vK3SKHJCKmRvjsDgfbUVPKWUTiiGsQoALd1yWQAUc
	IM6hpQKfL43sV582F1PwxLGwWtZcKU455JH6SpvmvzdiHw1ktIvycNpXbUvvdnfrz2YDEJSWeS8
	Xp8J8/zwSiDVZoJIBEHaAr3PXtgOkYbQq2IyeTYSNRMXSKQMYslUS8P+3afyEj0ygZNS/LQliVt
	TK8e4M8HLONkO3avu29fXf4cXpVU4DZCiVSy5WLSpnukqM2Pu7++9t837RhVbPTZyZheKi4LOrd
	zrtyd58tosxdu5UJ/Y61m1dTzrZCvI7cznCxBCyPBZ0HeVF4KnwY7Jx5ThcYde4tspXTx1dDdxe
	ADbGwk5GwMDF823EphocepxeqKw==
X-Google-Smtp-Source: AGHT+IEUot5Rn4K8oA+wDcuVm3BER8FxURR4y/IuemGBXCRymmnDb6evtIOLzCEsW7JakfKcRmNuZw==
X-Received: by 2002:a05:6000:40cb:b0:391:4559:8761 with SMTP id ffacd0b85a97d-39ee5b98edamr5653890f8f.36.1744903955967;
        Thu, 17 Apr 2025 08:32:35 -0700 (PDT)
Message-ID: <dfedd638-da52-42f5-b130-ad8f393c0659@suse.com>
Date: Thu, 17 Apr 2025 17:32:32 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 1/4] xen/io: provide helpers for multi size MMIO
 accesses
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20250417152514.13702-1-roger.pau@citrix.com>
 <20250417152514.13702-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: <20250417152514.13702-2-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 17.04.2025 17:25, Roger Pau Monne wrote:
> Several handlers have the same necessity of reading or writing from or to
> an MMIO region using 1, 2, 4 or 8 bytes accesses.  So far this has been
> open-coded in the function itself.  Instead provide a new set of handlers
> that encapsulate the accesses.
> 
> Since the added helpers are not architecture specific, introduce a new
> generic io.h header.
> 
> 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 Thu Apr 17 15:39:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 15:39:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.958148.1351091 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5RKP-0005Ei-QB; Thu, 17 Apr 2025 15:39:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 958148.1351091; Thu, 17 Apr 2025 15: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 1u5RKP-0005Eb-MM; Thu, 17 Apr 2025 15:39:01 +0000
Received: by outflank-mailman (input) for mailman id 958148;
 Thu, 17 Apr 2025 15:38: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=nsoM=XD=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u5RKN-0005EV-SP
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 15:38:59 +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 139dbf6a-1ba2-11f0-9ffb-bf95429c2676;
 Thu, 17 Apr 2025 17:38:57 +0200 (CEST)
Received: by mail-wr1-x435.google.com with SMTP id
 ffacd0b85a97d-39149bccb69so976670f8f.2
 for <xen-devel@lists.xenproject.org>; Thu, 17 Apr 2025 08:38:57 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 6a1803df08f44-6f2c2af1299sm433766d6.17.2025.04.17.08.38.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 17 Apr 2025 08:38:56 -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: 139dbf6a-1ba2-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1744904337; x=1745509137; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=h2UmYj8KoPb0wVajq5s+Cae72/Wscsr/94eHCJIM54Y=;
        b=CGPKletn1wyi3DeBVTV+RW/+MbXvCQEFJp66JOd1p9PjJXEQfg8wU2f7hfR3vQ2l0N
         GrB8xElg96mQcBXJsJPliMADe2STpAj991C/rvQ+j7dy/JzN08SenuhT8RXfMOVU6Vya
         Kd1kIB4NZp2Qzqo8Cudyz2VwX76RNcCQZlwY+2t1JqEf/SuCyjHy+zH+5b1e+qCgidTm
         KJdNrAdIPMpB9gCj2A4qQ+wIGJxlLKnFaEFh2Q6OsV7JHhsLkM1s8GxUiofms2iE1zUb
         9wD7RXcfss5twmJHI0gapZ7uUWD9Do/1xlLBNRfoi8nNPghjz+w0+w1BiczzSyV4hv3h
         zJFg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744904337; x=1745509137;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=h2UmYj8KoPb0wVajq5s+Cae72/Wscsr/94eHCJIM54Y=;
        b=HA1SgGbyZKEEzg3/67CXBTDJBaArYiczeNZv6WUdd+Juz8orfoEprx2NPkfP61wYgw
         yoYQ86udd+wjf2HBrtFVnWEz/MtsQy9wsBgcpZn4ppfRzF3S2HVTp3MWnXO93toBvh57
         3yo4JONsP3yoEKjxtSmJb6tUMWdkyMWj6f8mWTNBbQYEgXPilWW/OgMhSJ/2RyOOBc0B
         3oLQoqEQKJRLDv2E2g+GtJBgNITws4mMuVxw2Bc0focsiD3fgxiYnOhlzrmcajNpWKXz
         y7IMSMqrIyQ7jZbSinE5pJEAkJ330w0LJJ/xjeGGRlRVsEowUnWEWlB0Daq5W3yeMZpL
         vrQQ==
X-Forwarded-Encrypted: i=1; AJvYcCXdkmWWSB4fLTJP8Brck/mS8v8bXL1aqw/VOKLPiq/3CPhD9qdMmMrmoNx/vEkeG+sLwR9EEOcHYNU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxDV384xWbESlR+PudahSbrZ3+JhOjwnPo3Ao/swzJIOxnwgmiD
	ldHn8Mdg1+ndftSssTMlKSmxwLgG2FbHazMTJ8PERnrQ8ZRJR2T5ES16Uisfhw==
X-Gm-Gg: ASbGncs9yiZqL9QunQFzc9Kk5QFRR8i1R5lNHI7GztdYD6PensZj+iToSyhaz7m41+S
	vX8yGntLB5hwtaS3F0TQE5WIvjt2M1wOdAMDMS4bdXJYfkYyoMPI6KxeMXCtiWPr5QgcJNQgOvo
	l8kpnThamVympju4BFdAQt1IgRWHm7Y0SXnijJy0E8g6ECdz0DbrCW3ll63DKl6XmBXAGIC1kg6
	3O+vU1iaPnGtIK7a6jLyhITbcwb6AfE7hxl/jNGNIt9awd5fwO2pMvlyuPY/ZsxR6yi92ggsEvj
	QxseUfY6XIlWGmMmNjLPQFndTCLxaiONPJWlyQHDYZj2DKuJ47Y42hAflzOMFbmm/JmAgG/O+FE
	09o+Lj7eFdtFC8OgNH7KcWsfAyg==
X-Google-Smtp-Source: AGHT+IE+rVeLyBgS8fEpsG121iV+Wie8oT62/toqCMA2k3eQ1iNe/thwLyc0Q+znFtd4tckDtTmQSQ==
X-Received: by 2002:a05:6000:144f:b0:38f:6287:6474 with SMTP id ffacd0b85a97d-39ee5b15c87mr6139858f8f.15.1744904337231;
        Thu, 17 Apr 2025 08:38:57 -0700 (PDT)
Message-ID: <f71bc0f8-8de1-4ecd-a2c0-a420e991e429@suse.com>
Date: Thu, 17 Apr 2025 17:38:54 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 2/4] x86/hvm: fix handling of accesses to partial r/o
 MMIO pages
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20250417152514.13702-1-roger.pau@citrix.com>
 <20250417152514.13702-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: <20250417152514.13702-3-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 17.04.2025 17:25, Roger Pau Monne wrote:
> --- a/xen/arch/x86/hvm/emulate.c
> +++ b/xen/arch/x86/hvm/emulate.c
> @@ -370,7 +370,15 @@ static int hvmemul_do_io(
>          /* If there is no suitable backing DM, just ignore accesses */
>          if ( !s )
>          {
> -            if ( is_mmio && is_hardware_domain(currd) )
> +            if ( is_mmio && is_hardware_domain(currd) &&
> +                 /*
> +                  * Do not attempt to fixup write accesses to r/o MMIO regions,
> +                  * they are expected to be terminated by the null handler
> +                  * below.
> +                  */
> +                 (!rangeset_contains_singleton(mmio_ro_ranges,
> +                                               PFN_DOWN(addr)) ||
> +                  dir == IOREQ_READ) )

These two would better be swapped, for the cheap one to be done first.

> --- /dev/null
> +++ b/xen/arch/x86/hvm/mmio.c
> @@ -0,0 +1,125 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +/*
> + * MMIO related routines.
> + *
> + * Copyright (c) 2025 Cloud Software Group
> + */
> +
> +#include <xen/io.h>
> +#include <xen/mm.h>
> +
> +#include <asm/p2m.h>
> +
> +static int cf_check subpage_mmio_accept(struct vcpu *v, unsigned long addr)
> +{
> +    p2m_type_t t;
> +    mfn_t mfn = get_gfn_query_unlocked(v->domain, PFN_DOWN(addr), &t);
> +
> +    return !mfn_eq(mfn, INVALID_MFN) && t == p2m_mmio_direct &&
> +           subpage_mmio_find_page(mfn);
> +}
> +
> +/*
> + * The guest has read access to those regions, and consequently read accesses
> + * shouldn't fault.  However read-modify-write operations may take this path,
> + * so handling of reads is necessary.
> + */
> +static int cf_check subpage_mmio_read(
> +    struct vcpu *v, unsigned long addr, unsigned int len, unsigned long *data)
> +{
> +    struct domain *d = v->domain;
> +    unsigned long gfn = PFN_DOWN(addr);
> +    p2m_type_t t;
> +    mfn_t mfn;
> +    struct subpage_ro_range *entry;
> +    volatile void __iomem *mem;
> +
> +    *data = ~0UL;
> +
> +    if ( !IS_ALIGNED(len | addr, len) )

What's the point of doing the | ? len can't be misaligned with itself?

> --- a/xen/arch/x86/include/asm/mm.h
> +++ b/xen/arch/x86/include/asm/mm.h
> @@ -554,6 +554,18 @@ int cf_check mmio_ro_emulated_write(
>      enum x86_segment seg, unsigned long offset, void *p_data,
>      unsigned int bytes, struct x86_emulate_ctxt *ctxt);
>  
> +/* r/o MMIO subpage access handlers. */
> +struct subpage_ro_range {
> +    struct list_head list;
> +    mfn_t mfn;
> +    void __iomem *mapped;
> +    DECLARE_BITMAP(ro_elems, PAGE_SIZE / MMIO_RO_SUBPAGE_GRAN);
> +};
> +struct subpage_ro_range *subpage_mmio_find_page(mfn_t mfn);
> +void __iomem *subpage_mmio_map_page(struct subpage_ro_range *entry);

I notice you didn't move the __iomem, which - as indicated - I agree with,
but Andrew didn't. Did you sort this with him privately?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Apr 17 15:39:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 15:39:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.958154.1351100 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5RKn-0005cM-0R; Thu, 17 Apr 2025 15:39:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 958154.1351100; Thu, 17 Apr 2025 15:39: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 1u5RKm-0005cD-To; Thu, 17 Apr 2025 15:39:24 +0000
Received: by outflank-mailman (input) for mailman id 958154;
 Thu, 17 Apr 2025 15:39: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=9F7A=XD=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1u5RKl-0005EV-Up
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 15:39:24 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on20624.outbound.protection.outlook.com
 [2a01:111:f403:2414::624])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 21557bd4-1ba2-11f0-9ffb-bf95429c2676;
 Thu, 17 Apr 2025 17:39:21 +0200 (CEST)
Received: from MN2PR12CA0003.namprd12.prod.outlook.com (2603:10b6:208:a8::16)
 by PH7PR12MB8056.namprd12.prod.outlook.com (2603:10b6:510:269::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.32; Thu, 17 Apr
 2025 15:39:17 +0000
Received: from BL02EPF00029927.namprd02.prod.outlook.com
 (2603:10b6:208:a8:cafe::f7) by MN2PR12CA0003.outlook.office365.com
 (2603:10b6:208:a8::16) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.18 via Frontend Transport; Thu,
 17 Apr 2025 15:39:16 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 BL02EPF00029927.mail.protection.outlook.com (10.167.249.52) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Thu, 17 Apr 2025 15:39:16 +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, 17 Apr
 2025 10:39:14 -0500
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; Thu, 17 Apr
 2025 10:39:14 -0500
Received: from [172.21.212.118] (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, 17 Apr 2025 10:39:13 -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: 21557bd4-1ba2-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ni+6yKYdelh8EFJ9KCJPwqMTjFc2nNNsU1GxPYqaV/SaI0wsDv2Ji05kgv+y9IsYrJ0XFCmzNBbpA1xIF7wFfSRCLE1XZSsImjtANFv3BmpuMo+oryvt96SGEgLgL/9Du30xYEbkyzEyGkwUP7Pfg79Ee3HZSnAWHBjUH75M+jlM8SoYAo2yglnXYDINS0Psm14sfxADuTS9hIm3fu7js4aqihKj3eVC5jSf3+xQzbicaq/8bpYz0saCZqIb/vA2JqcSFje+tThFmvtB5Ctn6wLiS8dVXg+WL7Gj+z0M6YSf3kRTG5R3ey5WpGn5RTuveDh5MScDZSaAD00NYv0JVw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=lRrsTGlM8jDk5NfX+04uV6Dn1dCgfBpnKsjcSs9c7pg=;
 b=DOj5sCjJUb1UZ8eYWtWzWLzfYJwprJS1GHQgvamX4QahDDPOohrp2PgkkELDyM86E1FZbOt43YV0xVTuN9pr5S9Bkj6vuFwKYuYXGhpZvy7ENlBMnaUND7IVsdCd+THGsKsZTI/TAItOic4qvKV866NfN08pcln8taKyLm9kDWdQucNthHBh7ZAZHDYHm0RwdFGeLDXhPKBV4+TK0YRu70z92Go5T0M2I7HReFtMI+Hu4brDymiT+GDIZ3zQuLfZvzpPvk0ZYtMS6YTjQqd8iGF1lsdq8dix61OZIWwQAgu6LD6inJ3BTW/BVMfoabRvdu0sJjN2aMhHHZgp5/llGw==
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=lRrsTGlM8jDk5NfX+04uV6Dn1dCgfBpnKsjcSs9c7pg=;
 b=XIUzDILhlSwYc7bYXMssZyVf3FsOQB0Ym4fXkqWVUE6VxgqTOF7S5gN9N1QpmFEEc9fYIyDZjjx19HpO6dIaCpGhlXcZtRyCHM5l7BwjzwqFs6hAVajg7fhQQVqE/BHWFQ8y/f8Oj6h2zE6dCOg/iMJLTm3qhR4GYZttCtmLMyg=
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: <eeea980f-3fed-4a59-9843-87798fc78606@amd.com>
Date: Thu, 17 Apr 2025 11:39:15 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 02/13] kconfig: introduce domain builder config options
To: Jan Beulich <jbeulich@suse.com>, Alejandro Vallejo <agarciav@amd.com>
CC: "Daniel P. Smith" <dpsmith@apertussolutions.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, "Michal
 Orzel" <michal.orzel@amd.com>, Julien Grall <julien@xen.org>, "Stefano
 Stabellini" <sstabellini@kernel.org>, <xen-devel@lists.xenproject.org>
References: <20250417124844.11143-1-agarciav@amd.com>
 <20250417124844.11143-3-agarciav@amd.com>
 <6b7728d0-0464-44ad-8af6-e2816e83a2a6@suse.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <6b7728d0-0464-44ad-8af6-e2816e83a2a6@suse.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL02EPF00029927:EE_|PH7PR12MB8056:EE_
X-MS-Office365-Filtering-Correlation-Id: 983dbe88-4ecb-4376-c6a8-08dd7dc60300
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?M0U0THhHSW4vQTV2M05oNGE1a2NWbVg5Nm1FdVRyUHJBWUFTcWJkaEVybmk4?=
 =?utf-8?B?ZCtIZXU3aUUwckU5bjdOMW5GN2NFYlN5amwwVlRDVWQrekZJVHRXckRybDR6?=
 =?utf-8?B?M01mNHF2ZElraEZGMlZaRFlzV1ZybmFnRS9kNWh2TWQvbEtHTE8xWkhRaXUw?=
 =?utf-8?B?c1dlbWt4ZTNBaDBxVXpjVnNMU3BSS1hEVWZtNU5lWW81dHBkK0pRL0dHeWQr?=
 =?utf-8?B?RkFmTUcyNkRZOEpJY3BOMTBUZWhnQWY1bkRRL3hSYlViUW1hNnlmMDVDbGJC?=
 =?utf-8?B?OC9nZjIyTURhVml0SGlqejRZN2dWZldzYXV1bmdYUWN5ZTVUMVc5aGd3K2cr?=
 =?utf-8?B?SC9Xcm8yMnRhNy9WMmwxVGZZY2Q4WWJFYnJUTHZydjdpeVpKKzkydm9ZQmhN?=
 =?utf-8?B?VEoxd0tIYUNKUEJtUkpLQkU5U1JvUDNBTFE1WXNEZlhhbDhUVG1BRFRNQ0lS?=
 =?utf-8?B?Q1dNSzVjM0NrQ2lkRmtJZ1RqbFJ1ZmRIOTJKdytjRlZZU3N1aGR0OHNxeHFV?=
 =?utf-8?B?S3NZN0k5L0ZNSTNsc0NCMVAvR0cxalVqZzJ3eGljR1dRd3E3YVJkOElIWjYy?=
 =?utf-8?B?WUFUUTE3WTlmMXNmUVVJaEhGMG1ER0lEUCs1SndrNDJ1QURMbmswanNvbG9z?=
 =?utf-8?B?WE04dEF2cG1pZ0F1YlNZeWFlbjlCMm9WQkZZV1ZSdmZhamQvK2dJTVdBK0pH?=
 =?utf-8?B?dGZDTkRCMFl3anZoNkR6Q216UUtHdjdzcWcwVSswUjE4d0p4Y2FpN0hiNVgr?=
 =?utf-8?B?a3g1Tkk3UXJwSGg0QWtNMUliMjNqK1dsTUtYZjk0enBCdlE1Q0NyTHZac21T?=
 =?utf-8?B?OGNRRTM1RlMra3poZzE2MzJCSXNNK01LWUdUTHhYRm11dnZzZzFSb3hnVkZG?=
 =?utf-8?B?cEp4Z3owNGl5Yy9hNjZuWGlxV2dTZ29MR0lKdWJ2bHRWNnZIYWxwTitVYysr?=
 =?utf-8?B?dkJQK2lYZS96QTRZWFRFL0FnWmRSN1Q0TFRJV3FRZnpNbG1MMlA0cDB3OERm?=
 =?utf-8?B?QUxCUGFnR3Y2TWt2Y3AyOGlWdTdGcWhxSmZqMC9vMFFGVG4vQ2EySmhBRURD?=
 =?utf-8?B?Q3lwZUlqTVRCNHNLaGNVQm8vczFIbHdNQ0VOL2tEd1dHMzBvMDNSUnBJMHM4?=
 =?utf-8?B?QWsxUWwrRmFPZHdmWFVZekZyK25qeVArc1o3SHNIRC9BVzN6bGRVUG5PbFlT?=
 =?utf-8?B?VmdxY0lsUzVtUDhPZll4Z3o1Yi9hZk9RVytBK01pNzRENHAxRk1Jb3A3RWxU?=
 =?utf-8?B?V0phNzBieVJqTEk3RGw0b01wRkJnSEtIQ0djRzFUWSt1RUZuRDhiLzVSUHh6?=
 =?utf-8?B?NVBPSkpyV3ltWTQza2g2b3ZOUXV2Q3l6czZiWFBtK29XS3hHTGtmdzJybDlV?=
 =?utf-8?B?NE5KbDRZKzh6NXBMMm9UanQ5SS84eE1nb3pROXprSWZoRjh3eThyZ25zTkh5?=
 =?utf-8?B?KzNJaXVtT09iOTNTMlVsK0hWUFBMejB5cUdoVGJZVjZwUTN3NzBkNTJGMmdT?=
 =?utf-8?B?TXZDZVgzOWJmZStWT0U3ZkcyK1NoWFROeC9iU1FQY3Urdnl5bmVKNjhIVGNL?=
 =?utf-8?B?TFNFQ3hEYms2U3VBMEIycFFrdnlvUnNNcmFPMUJSZ3dMZDR5YnZnaDk2RG9M?=
 =?utf-8?B?VUlUNnJ0Wk5YOENHc0g0ZDZydVltMzczWWNOTEg3aXdzTmozNktqMmNCcUlz?=
 =?utf-8?B?OUZRSzhMM3hYcXUxTnQzN2lscVVocElnZDVSZnRnZHJxSG1pR2cvUCswaXVr?=
 =?utf-8?B?bndTWHVMSUxubjJ5VGQ0cmNSQWk3UkJDaUV0aUgwUW9zMmF6MHV5T0RxTGdo?=
 =?utf-8?B?TWRPZ0d0TVJiQ3l4U0FsSUtCQi9aVldFR3hBZ3llbFNxY2E0a2tjK0NZdmZ0?=
 =?utf-8?B?S2FQVm5USDV2ZDdyL1Ftdzd4Kzd6b0ZWVmlvZFNCajFtTjRxTld3WStuZHRw?=
 =?utf-8?B?QXZxUGdqVnNPdFlYZWpLWktSSWZackV1TXRhODJyRTNUTGV4V09FNWpFTktJ?=
 =?utf-8?B?dDNFdGUySmNDVFZnaDZ2Rk9yZjRBS1NneVBWbWZkbVRXME8zNGRpSnF5OFY0?=
 =?utf-8?Q?hwffPB?=
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: 17 Apr 2025 15:39:16.3422
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 983dbe88-4ecb-4376-c6a8-08dd7dc60300
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:
	BL02EPF00029927.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB8056

On 2025-04-17 11:00, Jan Beulich wrote:
> On 17.04.2025 14:48, Alejandro Vallejo wrote:
>> --- /dev/null
>> +++ b/xen/common/domain-builder/Kconfig

>> +	bool "Domain builder (UNSUPPORTED)" if UNSUPPORTED
>> +	select LIBFDT
>> +	help
>> +	  Xen has a built-in mechanisms to automatically construct domains
>> +	  (like dom0) during the boot phase. The domain builder is an enhanced
>> +	  form of that mechanism to enable constructing predefined domains
>> +	  described on a flattened device tree.
> 
> I'm not a native speaker, but (perhaps because of that) "on" here reads
> odd. More logical to me would be "by" or "via".

Yes, "by" is better.

The description is a little backwards - it should state what it is 
first.  Maybe:

Support for constructing predefined domains described by a flattened 
device tree.  This allows constructing multiple domains at boot time 
instead of being limited to a single dom0.

Regards,
Jason


From xen-devel-bounces@lists.xenproject.org Thu Apr 17 15:55:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 15:55:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.958176.1351111 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5Rag-0002Cr-Fa; Thu, 17 Apr 2025 15:55:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 958176.1351111; Thu, 17 Apr 2025 15:55:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5Rag-0002Ck-CR; Thu, 17 Apr 2025 15:55:50 +0000
Received: by outflank-mailman (input) for mailman id 958176;
 Thu, 17 Apr 2025 15:55: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=mHCx=XD=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1u5Raf-0002Ce-7J
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 15:55:49 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on2060f.outbound.protection.outlook.com
 [2a01:111:f403:2414::60f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 67c16ac7-1ba4-11f0-9ffb-bf95429c2676;
 Thu, 17 Apr 2025 17:55:38 +0200 (CEST)
Received: from MN2PR16CA0046.namprd16.prod.outlook.com (2603:10b6:208:234::15)
 by BL1PR12MB5948.namprd12.prod.outlook.com (2603:10b6:208:39b::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.34; Thu, 17 Apr
 2025 15:55:32 +0000
Received: from BN1PEPF00004680.namprd03.prod.outlook.com
 (2603:10b6:208:234:cafe::13) by MN2PR16CA0046.outlook.office365.com
 (2603:10b6:208:234::15) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.23 via Frontend Transport; Thu,
 17 Apr 2025 15:55:32 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BN1PEPF00004680.mail.protection.outlook.com (10.167.243.85) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Thu, 17 Apr 2025 15:55:31 +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, 17 Apr
 2025 10:55:31 -0500
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, 17 Apr 2025 10:55:30 -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: 67c16ac7-1ba4-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=e4NHgnogO1MBqBiz2fuE5x9leI9SGS6vQ1QsnUYVpYVDBSousqyKWLDStRWlD4bj9d2mR+L5fIXqfSblCeh0Ge1/yQbS/a+2sx5QMMoG7oOatblG5BKatgmUfm61zePE6Sp1eR0SMp5dRGCIHLbVF0591cUR/sUFK3UKVwP9r3MEITfBoVWMrlx3UXjkECfqp2zGwrX8r1LqRMJlqnspp+wxyYMJT38Aw4olN9orM1y3YEOdL5JCuBz5ORenbS29fTCHUv05EXMwYQcKZqu8oyo3baXWEjsiIzjrr7nHfGtd0EppGBGGH7xJ3Z6KpdXUtW6jN1sV15mfQfLiV1ZZIg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=UsTVK0O6DA6xyWThkUXkPqCZ8Z7M1OfU1AEpPk/dMdo=;
 b=W0/HDKNNXrwTDUgBjCMyKxxoJmdzF77Un2IdaJkUHSCwEa4LUOHGCxMdQiO/X+2KGNI22IbOhzZeWxkilowz0fycJDUoEQSirDFWO0TTAuEqogynsQFfLwpFGLVC/ekna0Qqy1YmBI5HN3/PLkLeh1B6ncPv7vatt2uxAKIO3yC955coZpSBiHhPqBp2ffVDK1Y4Hq5+KWbiA0mULUyQB86j3kdAj++HdnGA1QKgAluMuTK+RGTi4m9+q3DFK7TW9QgK9/i9J5MrKPe4ap2rRIAAihvUBMnpSUxw1lhahvN5Vf2Rgwqf58SCNw9GbGnNuFuvd9LVU9sgLl4CUA/r1g==
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=UsTVK0O6DA6xyWThkUXkPqCZ8Z7M1OfU1AEpPk/dMdo=;
 b=zzt5At8Mulse6xk1FGi6okqVPP6oNf3HQhK87yF+PWNdweXsvYZHvtGdE+Uu9UMAvcYpR6F+Z0HVUzyVB/3qKrTvktyn/rizVCLPmkwCRwMFy/60bhaP5MDLUQXGrUgMs4BeGeImqW7/RKCA7uaQjg6lDRQRvHXjPFAPc+MpC9Q=
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 v1] xen/arm: AArch32-V8R: Add MPU register definitions
Date: Thu, 17 Apr 2025 16:55:11 +0100
Message-ID: <20250417155511.1854081-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 (SATLEXMB04.amd.com: ayan.kumar.halder@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN1PEPF00004680:EE_|BL1PR12MB5948:EE_
X-MS-Office365-Filtering-Correlation-Id: a1c33cdc-2a55-411f-0b56-08dd7dc84871
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?oFXF9osl32cr/YRxnZ4loyKmlV+UurpD4jr4DIJzwYFa7/Ddq7FicnD3Sg+o?=
 =?us-ascii?Q?HvpgtJJjAnrLxWmyJ89buSY3tRRC6BVxvzo6NW1Thp78hbSHe9n20GZS4IIS?=
 =?us-ascii?Q?/vM+sx2MZe7j26NGNClyUBI/NJp4pfBeFqwz7uc4eSXsv/PcdGob44bImpBO?=
 =?us-ascii?Q?4NIFdzYXtoSJnM9EoiSyuSZHM3uUVkGP9zTpa8488/mi6HYSHE6FCe8xkNon?=
 =?us-ascii?Q?EyyGIrL4bh44/pVoAqUz6rFVutQ+d9MJlPS4bdqsu1wDItA/yKQTQIU+ObqF?=
 =?us-ascii?Q?XI4zsIOPj1G+p2FzZEj8e3pXCmH+amL0ATdm8b0WJYXN0dgAnEKugddiYx1r?=
 =?us-ascii?Q?wUsJm/vFuEoZD/HQ5W59K9hCeW+JPmolPv4mzHudQ1m6PmEhe+dK8qKLnd1z?=
 =?us-ascii?Q?4RxWpXMolLV2EnzU514auuY7DBxwnJ148CSDLE5dmmToj/kyoCT8Mvff2IHU?=
 =?us-ascii?Q?g42wc4Vu7MTme7hmcbBkKF29ot+RwNMSUKhJZV3w7fhGvAZuRSFNWxGx9SO/?=
 =?us-ascii?Q?sMMr5kHWFDvtQGVLss9+Yl5x1rsrUOpT+L7O09PzL3G+2u3qgJb7c87jMpxf?=
 =?us-ascii?Q?yefutP+HT3SwfU0fpIX4JfimQ/5ES1opxLIYsdQJwqIN1udgBuCu01ylCzZz?=
 =?us-ascii?Q?Zu+a6hCZRPWg7Nk8LBYWPBZlMisAtfm0S2xyjsaPQS7lu3dxAPO0TKndcG9Z?=
 =?us-ascii?Q?awSu+jQEBk3AEPYHqNDd/RI0hMR4jVcjJv3u6ZfNrERpr6bqOZe8ijKs3c63?=
 =?us-ascii?Q?x2fV2mraCwSqzlHZ+Zoi9JP9rvpW1GK/N1QjPVtmcwpNK5Vy5IZNBHJ4D0OA?=
 =?us-ascii?Q?mZ5/wGkqcHfH3CL+JF4Iw7aJPj30s7GXWDEPotMCs9xbSrkfRDUfOF8FWazc?=
 =?us-ascii?Q?tv7jg+K05UGSCV1g5wntZEFQBvZfKnatD6Crv7XvBmbvkfexxuTrxK+adsye?=
 =?us-ascii?Q?4qGVm9uqudJxRDjtXoB5Pmdafjaf/ppPD8nTxpr+q9BZ3Z3tVU0zDcK9ARhx?=
 =?us-ascii?Q?p1sDZ8LuoZmxo/y5Rfs9RSR/YoZgVzYIy079M2vwgikBFdTrFHQ7w7nK0EA2?=
 =?us-ascii?Q?SINjJCs9F+w/M5HIrllrHgAxCCP9C8IyuNvyPEDwwpvi3jjCVxkD65x56Q1C?=
 =?us-ascii?Q?xsOP4mnTnufiR0+mJWamFn+XvZJQCGyg7mb8g2GeS3mnFL4uuvTSNSQTOs99?=
 =?us-ascii?Q?vb6ePj90hOmt38IipGDkte+/+79/6bpqCSBe26xy/J0qAjuAG8MRHrLFvLmI?=
 =?us-ascii?Q?0PKas2JyGxiZ8ovEIeHgrHnZ3H8ElUfc0bfPvhALj9Y0qR9S8LGae9Kki6Yu?=
 =?us-ascii?Q?oU20Qu/jQJed2UiW23uTYbxdBEaA0EUo2+Dn1KagynuOvc5cekvdX5KvnUMv?=
 =?us-ascii?Q?/N05xLeOfaUy1OcfChKkX6fzl3zT0gchE9D3NWx0SFIeiokqZOg+YueCmuaV?=
 =?us-ascii?Q?mWTwSAXI/OEk+qKd4iZ3xMxuEPusK41wEnZGMe0IZgRAzepAkBrwGS9sYTy2?=
 =?us-ascii?Q?LkC/z/Fu1HkXfQk1RiwrT4BDtc67Y7kigPAa?=
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: 17 Apr 2025 15:55:31.8465
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: a1c33cdc-2a55-411f-0b56-08dd7dc84871
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:
	BN1PEPF00004680.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL1PR12MB5948

Add the definitions for HPRBAR<0..31>, HPRLAR<0..31> and HPRENR.
The definitions are taken from ARM DDI 0568A.c ID110520, E2.2.3 HPRBAR<n>,
E2.2.4 HPRENR and E2.2.6 HPRLAR<n>.

Introduce pr_t typedef which is a structure having the prbar and prlar members,
each being structured as the registers of the AArch32-V8R architecture.
This is the arm32 equivalent of
"arm/mpu: Introduce MPU memory region map structure".

Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
---
This patch should be applied after
"[PATCH v3 0/7] First chunk for Arm R82 and MPU support" in order to enable
compilation for AArch32.

 xen/arch/arm/include/asm/arm32/mpu.h  |  59 +++++++++++
 xen/arch/arm/include/asm/mpu.h        |   4 +
 xen/arch/arm/include/asm/mpu/cpregs.h | 135 ++++++++++++++++++++++++++
 3 files changed, 198 insertions(+)
 create mode 100644 xen/arch/arm/include/asm/arm32/mpu.h

diff --git a/xen/arch/arm/include/asm/arm32/mpu.h b/xen/arch/arm/include/asm/arm32/mpu.h
new file mode 100644
index 0000000000..4aabd93479
--- /dev/null
+++ b/xen/arch/arm/include/asm/arm32/mpu.h
@@ -0,0 +1,59 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * mpu.h: Arm Memory Protection Unit definitions for aarch64.
+ */
+
+#ifndef __ARM_ARM32_MPU_H
+#define __ARM_ARM32_MPU_H
+
+#define XN_EL2_ENABLED  0x1
+
+#ifndef __ASSEMBLY__
+
+/* Hypervisor Protection Region Base Address Register */
+typedef union {
+    struct {
+        unsigned int xn:1;       /* Execute-Never */
+        unsigned int ap:2;       /* Acess Permission */
+        unsigned int sh:2;       /* Sharebility */
+        unsigned int res0:1;     /* Reserved as 0 */
+        unsigned int base:26;    /* Base Address */
+    } reg;
+    uint32_t bits;
+} prbar_t;
+
+/* Hypervisor Protection Region Limit Address Register */
+typedef union {
+    struct {
+        unsigned int en:1;     /* Region enable */
+        unsigned int ai:3;     /* Memory Attribute Index */
+        /*
+         * There is no actual ns bit in hardware. It is used here for
+         * compatibility with Armr64 code. Thus, we are reusing a res0 bit for ns.
+         */
+        unsigned int ns:1;     /* Reserved 0 by hardware */
+        unsigned int res0:1;   /* Reserved 0 by hardware */
+        unsigned int limit:26;  /* Limit Address */
+    } reg;
+    uint32_t bits;
+} prlar_t;
+
+/* Protection Region */
+typedef struct {
+    prbar_t prbar;
+    prlar_t prlar;
+    uint64_t p2m_type;          /* Used to store p2m types. */
+} pr_t;
+
+#endif /* __ASSEMBLY__ */
+
+#endif /* __ARM_ARM32_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/mpu.h b/xen/arch/arm/include/asm/mpu.h
index 77d0566f97..67127149c0 100644
--- a/xen/arch/arm/include/asm/mpu.h
+++ b/xen/arch/arm/include/asm/mpu.h
@@ -8,8 +8,12 @@
 
 #if defined(CONFIG_ARM_64)
 # include <asm/arm64/mpu.h>
+#elif defined(CONFIG_ARM_32)
+# include <asm/arm32/mpu.h>
 #endif
 
+#define PRENR_MASK  GENMASK(31, 0)
+
 #define MPU_REGION_SHIFT  6
 #define MPU_REGION_ALIGN  (_AC(1, UL) << MPU_REGION_SHIFT)
 #define MPU_REGION_MASK   (~(MPU_REGION_ALIGN - 1))
diff --git a/xen/arch/arm/include/asm/mpu/cpregs.h b/xen/arch/arm/include/asm/mpu/cpregs.h
index d5cd0e04d5..7cf52aa09a 100644
--- a/xen/arch/arm/include/asm/mpu/cpregs.h
+++ b/xen/arch/arm/include/asm/mpu/cpregs.h
@@ -6,18 +6,153 @@
 /* CP15 CR0: MPU Type Register */
 #define HMPUIR          p15,4,c0,c0,4
 
+/* CP15 CR6: Protection Region Enable Register */
+#define HPRENR          p15,4,c6,c1,1
+
 /* CP15 CR6: MPU Protection Region Base/Limit/Select Address Register */
 #define HPRSELR         p15,4,c6,c2,1
 #define HPRBAR          p15,4,c6,c3,0
 #define HPRLAR          p15,4,c6,c8,1
 
+/* CP15 CR6: MPU Protection Region Base/Limit Address Register */
+#define HPRBAR0         p15,4,c6,c8,0
+#define HPRLAR0         p15,4,c6,c8,1
+#define HPRBAR1         p15,4,c6,c8,4
+#define HPRLAR1         p15,4,c6,c8,5
+#define HPRBAR2         p15,4,c6,c9,0
+#define HPRLAR2         p15,4,c6,c9,1
+#define HPRBAR3         p15,4,c6,c9,4
+#define HPRLAR3         p15,4,c6,c9,5
+#define HPRBAR4         p15,4,c6,c10,0
+#define HPRLAR4         p15,4,c6,c10,1
+#define HPRBAR5         p15,4,c6,c10,4
+#define HPRLAR5         p15,4,c6,c10,5
+#define HPRBAR6         p15,4,c6,c11,0
+#define HPRLAR6         p15,4,c6,c11,1
+#define HPRBAR7         p15,4,c6,c11,4
+#define HPRLAR7         p15,4,c6,c11,5
+#define HPRBAR8         p15,4,c6,c12,0
+#define HPRLAR8         p15,4,c6,c12,1
+#define HPRBAR9         p15,4,c6,c12,4
+#define HPRLAR9         p15,4,c6,c12,5
+#define HPRBAR10        p15,4,c6,c13,0
+#define HPRLAR10        p15,4,c6,c13,1
+#define HPRBAR11        p15,4,c6,c13,4
+#define HPRLAR11        p15,4,c6,c13,5
+#define HPRBAR12        p15,4,c6,c14,0
+#define HPRLAR12        p15,4,c6,c14,1
+#define HPRBAR13        p15,4,c6,c14,4
+#define HPRLAR13        p15,4,c6,c14,5
+#define HPRBAR14        p15,4,c6,c15,0
+#define HPRLAR14        p15,4,c6,c15,1
+#define HPRBAR15        p15,4,c6,c15,4
+#define HPRLAR15        p15,4,c6,c15,5
+#define HPRBAR16        p15,5,c6,c8,0
+#define HPRLAR16        p15,5,c6,c8,1
+#define HPRBAR17        p15,5,c6,c8,4
+#define HPRLAR17        p15,5,c6,c8,5
+#define HPRBAR18        p15,5,c6,c9,0
+#define HPRLAR18        p15,5,c6,c9,1
+#define HPRBAR19        p15,5,c6,c9,4
+#define HPRLAR19        p15,5,c6,c9,5
+#define HPRBAR20        p15,5,c6,c10,0
+#define HPRLAR20        p15,5,c6,c10,1
+#define HPRBAR21        p15,5,c6,c10,4
+#define HPRLAR21        p15,5,c6,c10,5
+#define HPRBAR22        p15,5,c6,c11,0
+#define HPRLAR22        p15,5,c6,c11,1
+#define HPRBAR23        p15,5,c6,c11,4
+#define HPRLAR23        p15,5,c6,c11,5
+#define HPRBAR24        p15,5,c6,c12,0
+#define HPRLAR24        p15,5,c6,c12,1
+#define HPRBAR25        p15,5,c6,c12,4
+#define HPRLAR25        p15,5,c6,c12,5
+#define HPRBAR26        p15,5,c6,c13,0
+#define HPRLAR26        p15,5,c6,c13,1
+#define HPRBAR27        p15,5,c6,c13,4
+#define HPRLAR27        p15,5,c6,c13,5
+#define HPRBAR28        p15,5,c6,c14,0
+#define HPRLAR28        p15,5,c6,c14,1
+#define HPRBAR29        p15,5,c6,c14,4
+#define HPRLAR29        p15,5,c6,c14,5
+#define HPRBAR30        p15,5,c6,c15,0
+#define HPRLAR30        p15,5,c6,c15,1
+#define HPRBAR31        p15,5,c6,c15,4
+#define HPRLAR31        p15,5,c6,c15,5
+
 /* Aliases of AArch64 names for use in common code */
 #ifdef CONFIG_ARM_32
 /* Alphabetically... */
 #define MPUIR_EL2       HMPUIR
 #define PRBAR_EL2       HPRBAR
+#define PRBAR0_EL2      HPRBAR0
+#define PRBAR1_EL2      HPRBAR1
+#define PRBAR2_EL2      HPRBAR2
+#define PRBAR3_EL2      HPRBAR3
+#define PRBAR4_EL2      HPRBAR4
+#define PRBAR5_EL2      HPRBAR5
+#define PRBAR6_EL2      HPRBAR6
+#define PRBAR7_EL2      HPRBAR7
+#define PRBAR8_EL2      HPRBAR8
+#define PRBAR9_EL2      HPRBAR9
+#define PRBAR10_EL2     HPRBAR10
+#define PRBAR11_EL2     HPRBAR11
+#define PRBAR12_EL2     HPRBAR12
+#define PRBAR13_EL2     HPRBAR13
+#define PRBAR14_EL2     HPRBAR14
+#define PRBAR15_EL2     HPRBAR15
+#define PRBAR16_EL2     HPRBAR16
+#define PRBAR17_EL2     HPRBAR17
+#define PRBAR18_EL2     HPRBAR18
+#define PRBAR19_EL2     HPRBAR19
+#define PRBAR20_EL2     HPRBAR20
+#define PRBAR21_EL2     HPRBAR21
+#define PRBAR22_EL2     HPRBAR22
+#define PRBAR23_EL2     HPRBAR23
+#define PRBAR24_EL2     HPRBAR24
+#define PRBAR25_EL2     HPRBAR25
+#define PRBAR26_EL2     HPRBAR26
+#define PRBAR27_EL2     HPRBAR27
+#define PRBAR28_EL2     HPRBAR28
+#define PRBAR29_EL2     HPRBAR29
+#define PRBAR30_EL2     HPRBAR30
+#define PRBAR31_EL2     HPRBAR31
+#define PRENR_EL2       HPRENR
 #define PRLAR_EL2       HPRLAR
+#define PRLAR0_EL2      HPRLAR0
+#define PRLAR1_EL2      HPRLAR1
+#define PRLAR2_EL2      HPRLAR2
+#define PRLAR3_EL2      HPRLAR3
+#define PRLAR4_EL2      HPRLAR4
+#define PRLAR5_EL2      HPRLAR5
+#define PRLAR6_EL2      HPRLAR6
+#define PRLAR7_EL2      HPRLAR7
+#define PRLAR8_EL2      HPRLAR8
+#define PRLAR9_EL2      HPRLAR9
+#define PRLAR10_EL2     HPRLAR10
+#define PRLAR11_EL2     HPRLAR11
+#define PRLAR12_EL2     HPRLAR12
+#define PRLAR13_EL2     HPRLAR13
+#define PRLAR14_EL2     HPRLAR14
+#define PRLAR15_EL2     HPRLAR15
+#define PRLAR16_EL2     HPRLAR16
+#define PRLAR17_EL2     HPRLAR17
+#define PRLAR18_EL2     HPRLAR18
+#define PRLAR19_EL2     HPRLAR19
+#define PRLAR20_EL2     HPRLAR20
+#define PRLAR21_EL2     HPRLAR21
+#define PRLAR22_EL2     HPRLAR22
+#define PRLAR23_EL2     HPRLAR23
+#define PRLAR24_EL2     HPRLAR24
+#define PRLAR25_EL2     HPRLAR25
+#define PRLAR26_EL2     HPRLAR26
+#define PRLAR27_EL2     HPRLAR27
+#define PRLAR28_EL2     HPRLAR28
+#define PRLAR29_EL2     HPRLAR29
+#define PRLAR30_EL2     HPRLAR30
+#define PRLAR31_EL2     HPRLAR31
 #define PRSELR_EL2      HPRSELR
+
 #endif /* CONFIG_ARM_32 */
 
 #endif /* __ARM_MPU_CPREGS_H */
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Thu Apr 17 16:06:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 16:06:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.958193.1351122 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5Rl7-0005Ff-Dh; Thu, 17 Apr 2025 16:06:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 958193.1351122; Thu, 17 Apr 2025 16: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 1u5Rl7-0005FY-9e; Thu, 17 Apr 2025 16:06:37 +0000
Received: by outflank-mailman (input) for mailman id 958193;
 Thu, 17 Apr 2025 16: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=m2wG=XD=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u5Rl6-0005EY-2v
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 16:06:36 +0000
Received: from NAM11-CO1-obe.outbound.protection.outlook.com
 (mail-co1nam11on20621.outbound.protection.outlook.com
 [2a01:111:f403:2416::621])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ee89cb8f-1ba5-11f0-9eb0-5ba50f476ded;
 Thu, 17 Apr 2025 18:06:35 +0200 (CEST)
Received: from SA9PR03CA0001.namprd03.prod.outlook.com (2603:10b6:806:20::6)
 by PH7PR12MB5758.namprd12.prod.outlook.com (2603:10b6:510:1d1::10) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.35; Thu, 17 Apr
 2025 16:06:28 +0000
Received: from SA2PEPF00003F62.namprd04.prod.outlook.com
 (2603:10b6:806:20:cafe::bb) by SA9PR03CA0001.outlook.office365.com
 (2603:10b6:806:20::6) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.34 via Frontend Transport; Thu,
 17 Apr 2025 16:06:28 +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.8655.12 via Frontend Transport; Thu, 17 Apr 2025 16:06:28 +0000
Received: from localhost (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; Thu, 17 Apr
 2025 11:06:26 -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: ee89cb8f-1ba5-11f0-9eb0-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=mR8yDWC/z9mH+65o1zH9RCfUVs6pSoTW+A14mlJjpWJzER0NIe4EK8rHM8IBdstZlwhisywAmHUjPSZulRBIdNFIm7p+qPO7Oqyi5KbG+zxP3oG/7VbOWcXpd4zR5mp9yrtH8oGCCqsDAJEF/bcvbOqRK5cEDfjBf/oY0Px3Z2E1xSsyOjxPvxlxjMuwzUYOC0CcrRZQhQm78xIW6q9BEwN1k/fGESatB7PCS+yfTMPbhHRp4INe++TcO1feKXZBD2j54uGDLCS9v4ebfexKEag6sm1rBjtykLDn66ZDLzyJOkiQE0XTrINoyA1pAJPJpZhpASSeTHcgU0w8Qx8eTw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=zjDC+Ukrj5uJKnfLceqL6VPO/rMZW8zSW7MpcHiCdRE=;
 b=nPsDBuFqUdOg2dVTmylYeC9j/ysjvXjDSlT2bb5RjuaG2EPuumWlVlE7VvgSCLcyI/AZuNWNJcrRTE2snK65izbk/C3IrL+GPW8pQYvNHZ9y2M2Xslh3qpwiAKkJ83b7ZnRfNH4ibT0TAcU9IhkdHu6sjtBR1/aOMBhS8JT/lAHEOyvvZr2gpb7g6c9gsWYQrsGFYbpdOPhMMb/aCDObM5YgYfNcwHf7coSxCjPSxAThw/fsr3xmT2qXT5SnHn8FYxA47y3esSxtjzCG7QGTXKju3Cx1t3UqT2srySa9s2lHfAaq9yzFd2TcaJdcuJbT6MBcJo0AYN3pf4MQtH10xQ==
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=zjDC+Ukrj5uJKnfLceqL6VPO/rMZW8zSW7MpcHiCdRE=;
 b=BIgKWyeQUsofqh+O7GgT4r13bHtVyL/iNEHunI6830TyM6+ql9YrsLSW0AvhtyWBFwy3C6RgdK0x4whGPzNSE3RuFLnzc3KXdZGMbg4h18KueyRh1HFVlji4fxHydkXE3hB33Sz/epN/AH0Rkx5hl3HDYbTTO6obxTodFh3DKYE=
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
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Thu, 17 Apr 2025 17:06:25 +0100
Message-ID: <D991JRCSOIZD.2MRXXPX1A09OY@amd.com>
CC: "Daniel P. Smith" <dpsmith@apertussolutions.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, =?utf-8?q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>, Jason Andryuk <jason.andryuk@amd.com>,
	<xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v4 01/13] x86/boot: add cmdline to struct boot_domain
From: Alejandro Vallejo <agarciav@amd.com>
To: Jan Beulich <jbeulich@suse.com>
X-Mailer: aerc 0.20.1
References: <20250417124844.11143-1-agarciav@amd.com>
 <20250417124844.11143-2-agarciav@amd.com>
 <c59f6453-92eb-4015-bb2d-e0d06a668bf4@suse.com>
In-Reply-To: <c59f6453-92eb-4015-bb2d-e0d06a668bf4@suse.com>
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: SA2PEPF00003F62:EE_|PH7PR12MB5758:EE_
X-MS-Office365-Filtering-Correlation-Id: a33b17f6-9a79-4d23-39d8-08dd7dc9cfa8
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|82310400026|36860700013|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?eTJINHJxeXVRZGNyU2NIMGZ6VlV2V0RaMkduY2t0UlBPYllKYi85aWk3YU56?=
 =?utf-8?B?VEdud2RBL3JnY1pHSlp5OGZERDdYTUppZ0xiYW01aWo5QzYvUFZCaEtaZjFk?=
 =?utf-8?B?RGd6UVhqRTRneTU0N3IzQmhMY3N4UUtBT2Uwc3krbFo1bkdwOHdJMUM1T3Rq?=
 =?utf-8?B?Z3hGTXJqcTlxRE9LT3c0M3UzRktyODhPNm43T28wbkpuZkNJZ1g3T1QyTitX?=
 =?utf-8?B?MVRlMWJLa0pRQTV3TmJBQ01aRk9ucEtNV2F3cHZDSkFkSFl5R1RDL1dISjdy?=
 =?utf-8?B?dmFlK29RTWREVWoySlhJQlR6emRtZDJCYUhSZS9oclYzeCsxd2ltSWh1WEhR?=
 =?utf-8?B?dXhJTHlKTG4vN2IrNVVRWkY3QVhTQ1owTHJsY0s1VVAwRmU3a1M5d2x2NlZW?=
 =?utf-8?B?QW4rb01nL2VCWHA3N3V6enh3SlU3VW5BbU1qdmxLbGVHUWdJQnQ0V2YvbWZt?=
 =?utf-8?B?THdPcWNIby9GYWhvMjZ0dk5qUmozSVljMHV6V1ZrQ0k5a1h5aTMxMUQzL3BH?=
 =?utf-8?B?YkVBR3V2ZmRmdExqRmlNdkVYbGlrN21tRnFIRnNEZFEzWFl6YkJuMFhZeVlT?=
 =?utf-8?B?TngrYUtZNVBhSTdlWVNHaXBYV0xJbVhQd0RScXB2ZDZqNFg1eU5JaDl3TXk0?=
 =?utf-8?B?bnhNYzV2RGR0VFdWTWxkeWtFTVFuaklReExKdzRkS3R4amJNOXB5UU9yaFRV?=
 =?utf-8?B?YktTTHMzY01hL2l1VEpYMk5NODE5bHNOL1krVCtDaE9CUHd1YkdXZ21ZdUkv?=
 =?utf-8?B?eklRWFFaQWg4MnBmMEF0NTdkK09oVTlRNFBoM0U1aFRpak5UREN5MTkvckEv?=
 =?utf-8?B?c3lUUEczQjJON1VSeHI5RXhKY3cxTnF6UVZmVW91QmMrd1JLZ2JFZFV5VENQ?=
 =?utf-8?B?YnJsblZ6M2NLbFRiMVJna1haTXViT0c2bmk0TXdrNzVnMWZ4VmhPOHhsbyt4?=
 =?utf-8?B?cDNsUjcza09QTmZyNlRZdmV0YXl6SnRUTDhSUE5KekFIcG43SWtKM1p0SDF3?=
 =?utf-8?B?a3l4RWpISW5OaExGb1c0SGs1UnIrSWttQ0EyYWdwbXRzbUxEL3I1MGJOWEV3?=
 =?utf-8?B?Q0kzZDRLdXNCTUVieG84OG5vQm1wZTZGMWx1bzl1Vmw0UTUxeFRqNG1wVTBr?=
 =?utf-8?B?Tkt0ZzBIK0NCVXVxRVNIeVlNWTNrWEl5ZFlMN2dqdFJSY3QycUlPblZjNC9v?=
 =?utf-8?B?ellvV3VpSlhJUGhXVkxQWGVWN3hMSXlvUU5xeURVZDA2Q2lBUHdsQVM5Q3BE?=
 =?utf-8?B?MFJvWE5rS3dZU3cxdW16VEhPSDdLYzh5amVmblJCZDFKbXVpUEN2THpVR09I?=
 =?utf-8?B?UlJ6Q1lGRytBQ1dwTENKN2tmQ3NXc1pwanUza1FVRmN0R1FQRmNhTFNVOUZv?=
 =?utf-8?B?YW1IT3YwdElucHRzYmorVnFzKzJxSVRjWEkxdzlTUExyYk4rbTltTnNWeWJW?=
 =?utf-8?B?eXc1cndOZENxSGpZVXhESTgwbVdMUndBbHhiNnpYSzVZbVZuVGt1M1Nkb21M?=
 =?utf-8?B?TTV4STdPWnF4TkcvakZyZythOXlzUTR5NXNQOUplak9nK21OK0p6OThockdD?=
 =?utf-8?B?eHJZSkc4WXVMMDhCSFpIUGVrZWFjUEdDdTNTK21aL3NVWWs4NWxxSXZJWGtB?=
 =?utf-8?B?QVZVcldzZ09mT1VaaVRENG95YkNpN3hORmJHM2VrcU50RnljSjhwRnRXUzBG?=
 =?utf-8?B?VlFvMlNLRTBxdWxNbTJIS3NhNm9tYjl6eFRPOG10Z2tJanhROHFxK3M5NW1P?=
 =?utf-8?B?Z1VxSWx1UGxhdlpJSlg3VjFwdTVSbmtkVk1tazlBcktlTUM3YXNaWmcvMXd4?=
 =?utf-8?B?eFBvZFphMHBYR2Z2MmhQb0xuaFgvNStjME5YMmx4TGZsT3JYdkoyYSt4SjI4?=
 =?utf-8?B?WEhZNVJDcWNWYW53bGNxSEkvRzhyLzhkR3dxejRucGdRcmVrcng5em1aSWtp?=
 =?utf-8?B?ZS9LR0NXUTlPL1MydzJuTkFXR0pZTk9jbzJpTDlYeDEyRHJ0ZmhjNU5Rcmly?=
 =?utf-8?B?ZmRHRWgxYm5FQzM4ZkhiS3FVSHUyTEF5bFdNNEhiWm1sMmFMN3doSHhLc1lM?=
 =?utf-8?Q?bbEryh?=
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)(82310400026)(36860700013)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Apr 2025 16:06:28.1660
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: a33b17f6-9a79-4d23-39d8-08dd7dc9cfa8
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: PH7PR12MB5758

On Thu Apr 17, 2025 at 3:54 PM BST, Jan Beulich wrote:
> On 17.04.2025 14:48, Alejandro Vallejo wrote:
>> From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
>>=20
>> 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.
>>=20
>> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
>> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
>> Signed-off-by: Alejandro Vallejo <agarciav@amd.com>
>
> Acked-by: Jan Beulich <jbeulich@suse.com>

Thanks,

> preferably with ...
>
>> --- a/xen/arch/x86/hvm/dom0_build.c
>> +++ b/xen/arch/x86/hvm/dom0_build.c
>> @@ -653,7 +653,7 @@ static int __init pvh_load_kernel(
>>      void *image_start =3D image_base + image->headroom;
>>      unsigned long image_len =3D image->size;
>>      unsigned long initrd_len =3D initrd ? initrd->size : 0;
>> -    const char *cmdline =3D image->cmdline_pa ? __va(image->cmdline_pa)=
 : NULL;
>> +    unsigned long cmdline_len =3D bd->cmdline ? strlen(bd->cmdline) + 1=
 : 0;
>
> ... this becoming either size_t (as you have it elsewhere) or unsigned in=
t.
> Happy to make the adjustment while committing, so long as you agree with
> either of the suggested variants.
>
> Jan

Yes, sounds good. I'd rather it be size_t seeing as it's the output type
of strlen()

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Thu Apr 17 16:08:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 16:08:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.958204.1351130 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5Rmw-0005lm-Mk; Thu, 17 Apr 2025 16:08:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 958204.1351130; Thu, 17 Apr 2025 16: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 1u5Rmw-0005lf-Jy; Thu, 17 Apr 2025 16:08:30 +0000
Received: by outflank-mailman (input) for mailman id 958204;
 Thu, 17 Apr 2025 16:08: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=uBz4=XD=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1u5Rmv-0005lV-B2
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 16:08:29 +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 3229461f-1ba6-11f0-9ffb-bf95429c2676;
 Thu, 17 Apr 2025 18:08:27 +0200 (CEST)
Received: by mail-ed1-x52a.google.com with SMTP id
 4fb4d7f45d1cf-5f620c5f7b9so511795a12.2
 for <xen-devel@lists.xenproject.org>; Thu, 17 Apr 2025 09:08:27 -0700 (PDT)
Received: from fedora.. (user-109-243-64-225.play-internet.pl.
 [109.243.64.225]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-acb6eefcf4fsm11813366b.109.2025.04.17.09.08.24
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 17 Apr 2025 09:08: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: 3229461f-1ba6-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1744906106; x=1745510906; 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=3NWB8mLbn4p6HtvClqdYwWaVWheS1paF4s/IftnNZg0=;
        b=j8MOuTB0SEw8Db1B5bBS1+AnGNHVcrAI9twDZQ7KLGkEDW48kpZTH7/wBjLpM/ogmq
         2fQFJONcKZh/96JhE0cCc5yMdW/VlNwmQtgBwZsbhyXv0e5sO1aCtUejQRxB0XtBT0v4
         7D0VPdlYBktnIEimOg95V3nxwXNgEW2OPaa8wKJMseQD7cOW78jBn8GY4LifJVNd+dAn
         78LdDRUaPLg8HfrtfN/SeVmLY7xznV6HXhfr7yu4/4AZiOLUOcg/5oOPi9d4TpGdBEom
         giK5O65AbOhi8C88u9hhW1GF3keY5iYvsDQ966n2lnNttlJnA+yo08RNhpKjjwqU66MX
         KffA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744906106; x=1745510906;
        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=3NWB8mLbn4p6HtvClqdYwWaVWheS1paF4s/IftnNZg0=;
        b=Xla9iqhIId2azFLNQwtsrCg4aN3Mo2cb0tru1yn0YzzGk9XUa9C9a8h52imcNpgSuC
         udqmX5EaqFeJFvXxfQPkhMwV2ZfrriE7cyg+1Q+vLS2fXMtixemnC6XR9ffPcQi+tSP5
         hOELQfS9NmGdoBEIhdw8YNJIudIyLaiuxDlVkYurU5fSttg5Km9cihm9TUrthOYuHVG3
         r9GF1xNZ3uYyA2f5JzRIgd/JIlhDKwHMfe2ouv3WX2AwbpMVvgcpAJSjAC2bOel5xuxN
         b8yG1aPA1pQlQI2YJOqCEV4zdb64+/IGv/C8zdVHLfvl4RqRRbKlZhrHbz5AxX00rOwv
         HEqQ==
X-Gm-Message-State: AOJu0Yx7Vz/llXOYeafA1HLKnKcE8BnIQhaewWJuzo49Uu/yk94x5aqy
	I7abcdlCbrnqhmOKN/7+X1IFg4Z490sv+e0m7n1+OPr7WTgJfcLy33D/4g==
X-Gm-Gg: ASbGncvIV7AvEmn8D3ZaRyIG5Rb4PC0OE0yYuiMpjDckfLTdPOgjarN/SLxcH/lhNSW
	ymYwR4UgKii9TCXn0tlbsArjlMwnTLA09dUHVn/fxqdFJo9Kwo2AS6tv69o7xAJtEId2gb7RAKt
	chqL8xWoLdpNi1Ny/GmzizIeLm9kEBLx9CSOmMObzfEBuCxD5OScQxHQjuaY7JdoikGBDohI9H4
	jTdGCOnMtXlA4/wyqzQjbKvIo+2UK9m2J278aWha+CMmMTXPrrwy7epPIfOO6oYVZ5Ro0XaKLM6
	VacQdfWvEJEpuQVDkAqXEFdTHapgBtLaflDBnme0iJZFyvj5QhvzeUwFst1UDXzIdfq5GOwr6tg
	cog1R8vyywQ==
X-Google-Smtp-Source: AGHT+IHY5WK/9+EjSWe3x0M01GEY7IDf9i3WY4/VZftLp4beSojL3weDsp5TINYXGjWesvDpD208JQ==
X-Received: by 2002:a17:907:9443:b0:ac3:bd68:24eb with SMTP id a640c23a62f3a-acb42874d11mr526386966b.1.1744906105896;
        Thu, 17 Apr 2025 09:08:25 -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>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v5] xen/riscv: Increase XEN_VIRT_SIZE
Date: Thu, 17 Apr 2025 18:08:23 +0200
Message-ID: <9fbb5e1389b84bed2e95f99e4c383d0215c7a524.1744889185.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.49.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

A randconfig job failed with the following issue:
  riscv64-linux-gnu-ld: Xen too large for early-boot assumptions

The reason is that enabling the UBSAN config increased the size of
the Xen binary.

Increase XEN_VIRT_SIZE to reserve enough space, allowing both UBSAN
and GCOV to be enabled together, with some slack for future growth.

Additionally, add checks to verify that XEN_VIRT_START is 1GB-aligned
and XEN_VIRT_SIZE is 2MB-aligned to reduce the number of page tables
needed for the initial mapping. In the future, when 2MB mappings are
used for .text (rx), .rodata (r), and .data (rw), this will also help
reduce TLB pressure.

Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in v5:
 - Introduce build_assertions() instead of open-code BUILD_BUG_ON().
 - Update the comment message above PGTBL_INITIAL_COUNT.
 - Add BUILD_BUG_ON() to check that XEN_VIRT_SIZE <= GB(1).
---
Changes in v4:
 - Move is_init_section() to xen/sections.h. Add const for
   declaration of `p` variable inside is_init_section() and
   for the cast.
 - Update the comment above ASSERT() with .init* section range:
   s/[__init_begin, __init_end]/[__init_begin, __init_end).
 - Update ASSERT condition:
   s/"system_state != SYS_STATE_active"/"system_state < SYS_STATE_active".
 - Drop MB after XEN_VIRT_SIZE in the comment above PGTBL_INITIAL_COUNT
   as XEN_VIRT_SIZE expands to MB(16).
 - Fix typos:
   s/separetely/separately
   s/indenity/identity
 - Add lost L0 table for identity mapping to PGTBL_INITIAL_COUNT.
 - Move checks to alignment checks of XEN_VIRT_SIZE and XEN_VIRT_SIZE
   closer to the definition of PGTBL_INITIAL_COUNT.
 - Update the commit message.
---
Changes in v3:
 - Add ASSERT which checks .init* sections range. When Xen ends boot
   init* sections are going to be released.
 - Introduce is_init_section() macros.
 - Correct fixmap end address in RISCV-64 layour table.
 - Update ASSERT() which checks that `va` is in Xen virtual address
   range and drop BUILD_BUG_ON() as it isn't necessary anymore with
   the way how the ASSERT() looks now.
 - Add ASSERT() which checks that XEN_VIRT_START is 1gb aligned and
   add ASSERT() which checks that XEN_VIRT_SIZE is 2mb aligned.
   It helps us to reduce an amount of PGTBL_INITIAL_COUNT.
 - Update PGTBL_INITIAL_COUNT and the comment above.
 - Update the commit message.
---
Changes in v2:
 - Incerease XEN_VIRT_SIZE to 16 Mb to cover also the case if 2M mappings will
   be used for .text (rx), .rodata(r), and .data (rw).
 - Update layout table in config.h.
 - s/xen_virt_starn_vpn/xen_virt_start_vpn
 - Update BUILD_BUG_ON(... != MB(8)) check to "... > GB(1)".
 - Update definition of PGTBL_INITIAL_COUNT and the comment above.
---
 xen/arch/riscv/include/asm/config.h |  8 +++----
 xen/arch/riscv/include/asm/mm.h     | 15 +++++++++---
 xen/arch/riscv/mm.c                 | 37 ++++++++++++++++++++++-------
 xen/include/xen/sections.h          |  4 ++++
 4 files changed, 48 insertions(+), 16 deletions(-)

diff --git a/xen/arch/riscv/include/asm/config.h b/xen/arch/riscv/include/asm/config.h
index 7141bd9e46..5eba626f27 100644
--- a/xen/arch/riscv/include/asm/config.h
+++ b/xen/arch/riscv/include/asm/config.h
@@ -41,11 +41,11 @@
  * Start addr          | End addr         | Slot       | area description
  * ============================================================================
  *                   .....                 L2 511          Unused
- *  0xffffffffc0a00000  0xffffffffc0bfffff L2 511          Fixmap
+ *  0xffffffffc1800000  0xffffffffc19fffff L2 511          Fixmap
  *                   ..... ( 2 MB gap )
- *  0xffffffffc0400000  0xffffffffc07fffff L2 511          FDT
+ *  0xffffffffc1200000  0xffffffffc15fffff L2 511          FDT
  *                   ..... ( 2 MB gap )
- *  0xffffffffc0000000  0xffffffffc01fffff L2 511          Xen
+ *  0xffffffffc0000000  0xffffffffc0ffffff L2 511          Xen
  *                   .....                 L2 510          Unused
  *  0x3200000000        0x7f7fffffff       L2 200-509      Direct map
  *                   .....                 L2 199          Unused
@@ -78,7 +78,7 @@
 
 #define GAP_SIZE                MB(2)
 
-#define XEN_VIRT_SIZE           MB(2)
+#define XEN_VIRT_SIZE           MB(16)
 
 #define BOOT_FDT_VIRT_START     (XEN_VIRT_START + XEN_VIRT_SIZE + GAP_SIZE)
 #define BOOT_FDT_VIRT_SIZE      MB(4)
diff --git a/xen/arch/riscv/include/asm/mm.h b/xen/arch/riscv/include/asm/mm.h
index 4035cd400a..ef8b35d7c2 100644
--- a/xen/arch/riscv/include/asm/mm.h
+++ b/xen/arch/riscv/include/asm/mm.h
@@ -9,6 +9,7 @@
 #include <xen/mm-frame.h>
 #include <xen/pdx.h>
 #include <xen/pfn.h>
+#include <xen/sections.h>
 #include <xen/types.h>
 
 #include <asm/page-bits.h>
@@ -43,13 +44,21 @@ static inline void *maddr_to_virt(paddr_t ma)
  */
 static inline unsigned long virt_to_maddr(unsigned long va)
 {
+    const unsigned long xen_size = (unsigned long)(_end - _start);
+    const unsigned long xen_virt_start = _AC(XEN_VIRT_START, UL);
+    const unsigned long xen_virt_end = xen_virt_start + xen_size - 1;
+
     if ((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)) ==
-           (_AC(XEN_VIRT_START, UL) >> (PAGETABLE_ORDER + PAGE_SHIFT)));
+    ASSERT((va >= xen_virt_start) && (va <= xen_virt_end));
+
+    /*
+    * The .init* sections will be freed when Xen completes booting,
+    * so the [__init_begin, __init_end) range must be excluded.
+    */
+    ASSERT((system_state < SYS_STATE_active) || !is_init_section(va));
 
     /* phys_offset = load_start - XEN_VIRT_START */
     return phys_offset + va;
diff --git a/xen/arch/riscv/mm.c b/xen/arch/riscv/mm.c
index f2bf279bac..d3ece9f132 100644
--- a/xen/arch/riscv/mm.c
+++ b/xen/arch/riscv/mm.c
@@ -31,20 +31,39 @@ unsigned long __ro_after_init phys_offset; /* = load_start - XEN_VIRT_START */
 #define LOAD_TO_LINK(addr) ((unsigned long)(addr) - phys_offset)
 
 /*
- * It is expected that Xen won't be more then 2 MB.
+ * It is expected that Xen won't be more then XEN_VIRT_SIZE.
  * The check in xen.lds.S guarantees that.
- * At least 3 page tables (in case of Sv39 ) are needed to cover 2 MB.
- * One for each page level table with PAGE_SIZE = 4 Kb.
  *
- * One L0 page table can cover 2 MB(512 entries of one page table * PAGE_SIZE).
+ * Root page table is shared with the initial mapping and is declared
+ * separately (look at stage1_pgtbl_root), so it isn't taken into account
+ * in PGTBL_INITIAL_COUNT.
  *
- * It might be needed one more page table in case when Xen load address
- * isn't 2 MB aligned.
+ * An amount of page tables between root page table and L0 page table
+ * (in the case of Sv39 it covers L1 table):
+ *   (CONFIG_PAGING_LEVELS - 2) are needed for an identity mapping and
+ *   the same amount are needed for Xen.
  *
- * CONFIG_PAGING_LEVELS page tables are needed for the identity mapping,
- * except that the root page table is shared with the initial mapping
+ * An amount of L0 page tables:
+ *   (512 entries of one L0 page table covers 2MB == 1<<XEN_PT_LEVEL_SHIFT(1))
+ *   XEN_VIRT_SIZE >> XEN_PT_LEVEL_SHIFT(1) are needed for Xen and
+ *   one L0 is needed for identity mapping.
  */
-#define PGTBL_INITIAL_COUNT ((CONFIG_PAGING_LEVELS - 1) * 2 + 1)
+#define PGTBL_INITIAL_COUNT ((CONFIG_PAGING_LEVELS - 2) * 2 + \
+                             (XEN_VIRT_SIZE >> XEN_PT_LEVEL_SHIFT(1)) + 1)
+
+/*
+ * Modifying these checks may require updating PGTBL_INITIAL_COUNT.
+ *
+ * If XEN_VIRT_{START,SIZE} are not properly aligned and XEN_VIRT_SIZE > GB(1),
+ * additional L1 and L0 page tables are required.
+ */
+static void __init __maybe_unused build_assertions(void)
+{
+    BUILD_BUG_ON(!IS_ALIGNED(XEN_VIRT_START, GB(1)));
+    BUILD_BUG_ON(!IS_ALIGNED(XEN_VIRT_SIZE, MB(2)));
+
+    BUILD_BUG_ON(XEN_VIRT_SIZE > GB(1));
+}
 
 pte_t __section(".bss.page_aligned") __aligned(PAGE_SIZE)
 stage1_pgtbl_root[PAGETABLE_ENTRIES];
diff --git a/xen/include/xen/sections.h b/xen/include/xen/sections.h
index f2fac8d7fa..fe49d7d0e6 100644
--- a/xen/include/xen/sections.h
+++ b/xen/include/xen/sections.h
@@ -7,6 +7,10 @@
 
 /* SAF-0-safe */
 extern char __init_begin[], __init_end[];
+#define is_init_section(p) ({                           \
+    const char *p_ = (const char *)(unsigned long)(p);  \
+    (p_ >= __init_begin) && (p_ < __init_end);          \
+})
 
 /*
  * Some data is expected to be written rarely (if at all).
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Thu Apr 17 16:08:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 16:08:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.958205.1351140 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5Rn8-00065K-0x; Thu, 17 Apr 2025 16:08:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 958205.1351140; Thu, 17 Apr 2025 16:08: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 1u5Rn7-00065D-UH; Thu, 17 Apr 2025 16:08:41 +0000
Received: by outflank-mailman (input) for mailman id 958205;
 Thu, 17 Apr 2025 16:08: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=CA5y=XD=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u5Rn7-00064Y-8h
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 16:08:41 +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 3a1f2f66-1ba6-11f0-9eb0-5ba50f476ded;
 Thu, 17 Apr 2025 18:08:40 +0200 (CEST)
Received: by mail-ed1-x530.google.com with SMTP id
 4fb4d7f45d1cf-5e677f59438so1402989a12.2
 for <xen-devel@lists.xenproject.org>; Thu, 17 Apr 2025 09:08:40 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5f36f527dcesm10079725a12.75.2025.04.17.09.08.38
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 17 Apr 2025 09:08:39 -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: 3a1f2f66-1ba6-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744906120; x=1745510920; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=MhPJrqoIkfnTndXlNlsEiuPfcta9mSv635MGKENoHMg=;
        b=gpxXLVRMtduEIbuenb/2U64+YYvSL26ZsTDYDPDOoH+/kwhH3slNbzHE5EFfC6jeHz
         iFORVsLgmBAgo4NKT1YIS0AS59KWeodSTp1W8sxYyVHWIYEIfUdK/6pgpkhXlpGpPfxf
         35/b7LhZ1tp2JW5W/IkYBrJIb+PvM7rCJIDbY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744906120; x=1745510920;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=MhPJrqoIkfnTndXlNlsEiuPfcta9mSv635MGKENoHMg=;
        b=qdZ7RburzyfpoWnDBP5NxlnLun5b4T5vh8zhm+odLwnSrnwrGcQIYOxs33lalsqBlu
         K0oCzPdWXUirJK43Wh4XIdSbHkTwLry1r17+ebpF/gPOiNlhSGS8twOW5Z57uW3rW/ot
         h273kJn4rnZKJU75plhrgxbb90bq+65ixvB7ekUEEMnKhNo0HXxJLTlmbLvkSfYWurqu
         tqV9MbE2kelikZPnPi1ixl7w76XglUM+eA6xkotKSgkXGw9pDJyw7JGNazYT3LOjmRqq
         9F56Ha7kW+xHVF1Ah8uMJ56PuXHsFLvMfEh0goGQPxJ4KsZ9pLhbH9JWycd7lRNTvTAI
         hI7Q==
X-Forwarded-Encrypted: i=1; AJvYcCXIXICy7xwhytxFCRYiaU/UYp1hF53kFIQfglvUOSoXAjGVmodY6jVbAGjTk1LJVtGRL5ZPtaKBER8=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw4SNuwBWcZO6D8YWQEA5r4FzKC4snLVrBS8d4zMq/0eWyhLuwK
	FxkjOLmTToIwqcqlYRN2XcaYPd0LoTD14+X6k5s7cCqRAVIaNyJxsRLyE9Eg/xU=
X-Gm-Gg: ASbGncvB0QVu/KPNIiI92Bj9aCHnqyqpj5VpJbmuYjM+x5rt1+H0H132LwkUV6WXl9V
	Guhtigb9QXMlNiuAPGK7lXB04RTPxdB0dOFkbGp5tu7gfbO99TpKdLe2qm/EEyJrgleeWh4dIKb
	3RLMS03a4S75oUdqqe/0AN9intBjeBvmqGZosjcjKdxrPVRNOt2ZZ/5hovmiWHtYhQzJL9rP09w
	asNgYv4b4LjSD3uH7tGdwxUhbGBlQbO1NdaJGioBhGR43GoqNjnItAVstla2q3tGCfRywbMMxaw
	7TVmRR+h+RY2g6ipac8fqOhmFhquLwi1WZa5Bchv0ukBUGEnARzDLZiuOEs47RA6pfYisCBsj5E
	z3Dq00w==
X-Google-Smtp-Source: AGHT+IF7f3tCELoh6aYD3gSvaLYh+7lV/o03WF3oiY5dK/bLHKCYg4iEYs4TsZbSYKT1BSWnMAswQg==
X-Received: by 2002:a05:6402:51c7:b0:5e5:b388:29f9 with SMTP id 4fb4d7f45d1cf-5f4b71e2bf6mr5466895a12.5.1744906119540;
        Thu, 17 Apr 2025 09:08:39 -0700 (PDT)
Message-ID: <0d01646b-83e3-4a02-b365-d149d2664e73@citrix.com>
Date: Thu, 17 Apr 2025 17:08:37 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1] x86/vmx: Rework __vmread()/vmread_safe()/vmr()
To: dmkhn@proton.me, xen-devel@lists.xenproject.org
Cc: jbeulich@suse.com, roger.pau@citrix.com, dmukhin@ford.com
References: <20250408011454.2274613-1-dmukhin@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: <20250408011454.2274613-1-dmukhin@ford.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 08/04/2025 2:15 am, dmkhn@proton.me wrote:
> From: Denis Mukhin <dmukhin@ford.com>
>
> Use `asm goto()` in vmread_safe() to simplify the error handling logic.
>
> Update __vmread() to return `unsigned long` as per suggestion in [1].
> Rename __vmread() to vmread_unsafe() to match the behavior.
> Update all call sites everywhere. Drop `UNLIKELY_*()`.
>
> Group all vmread*() calls close to each other in vmx.h
>
> Rename internal vmr*() to vmread*().
>
> [1] https://lore.kernel.org/xen-devel/c452a1d7-4a57-4c5f-8a83-36a74ff228ec@citrix.com/
>
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> ---
> Link to CI: https://gitlab.com/xen-project/people/dmukhin/xen/-/pipelines/1756781092
> ---
>  xen/arch/x86/cpu/vpmu_intel.c          |   3 +-
>  xen/arch/x86/hvm/vmx/intr.c            |  26 +--
>  xen/arch/x86/hvm/vmx/realmode.c        |   2 +-
>  xen/arch/x86/hvm/vmx/vmcs.c            | 160 ++++++++++---------
>  xen/arch/x86/hvm/vmx/vmx.c             | 209 +++++++++++--------------
>  xen/arch/x86/hvm/vmx/vvmx.c            |  43 +++--
>  xen/arch/x86/include/asm/domain.h      |   2 +-
>  xen/arch/x86/include/asm/hvm/vmx/vmx.h |  69 ++++----
>  8 files changed, 235 insertions(+), 279 deletions(-)

This is why I suggested not to convert everything in one go.  It's now a
patch doing multiple complicated things, and is proportionally harder to
review.

For everyone in public, it is especially daft that we have __vmread()
which is void and (if it doesn't BUG()) will pass it's return value by
pointer.  It leads to very unergonomic logic.

Start by just implementing vmread(), and updating __vmread() and
vmwrite_safe() to use it.  You cannot use asm goto() for vmread()
because of the no-outputs constraint that we still need to follow.

Then, in a separate patch, you can do simple conversion such as ...

>
> diff --git a/xen/arch/x86/cpu/vpmu_intel.c b/xen/arch/x86/cpu/vpmu_intel.c
> index 7ce98ee42e..9c93d1f28c 100644
> --- a/xen/arch/x86/cpu/vpmu_intel.c
> +++ b/xen/arch/x86/cpu/vpmu_intel.c
> @@ -796,8 +796,7 @@ static int cf_check core2_vpmu_do_interrupt(void)
>      else
>      {
>          /* No PMC overflow but perhaps a Trace Message interrupt. */
> -        __vmread(GUEST_IA32_DEBUGCTL, &msr_content);
> -        if ( !(msr_content & IA32_DEBUGCTLMSR_TR) )
> +        if ( !(vmread_unsafe(GUEST_IA32_DEBUGCTL) & IA32_DEBUGCTLMSR_TR) )
>              return 0;
>      }
>  

... this to vmread().  

Splitting the patch makes a substantial difference to review-ability,
because patch 1 is "is this new helper implemented correctly?", and
patch 2 is "is this boilerplate rearrangement no overall change?".

For vmr(), I'd start by just wrapping vmread().  It's debugging logic
where brevity is important.

> diff --git a/xen/arch/x86/include/asm/domain.h b/xen/arch/x86/include/asm/domain.h
> index 6b877e33a1..ffe9acd75d 100644
> --- a/xen/arch/x86/include/asm/domain.h
> +++ b/xen/arch/x86/include/asm/domain.h
> @@ -595,7 +595,7 @@ struct arch_vcpu
>  
>      /* Debug registers. */
>      unsigned long dr[4];
> -    unsigned long dr7; /* Ideally int, but __vmread() needs long. */
> +    unsigned long dr7; /* Ideally int, but vmread_unsafe() needs unsigned long. */
>      unsigned int dr6;

This comment was left as a hint, and you've just addressed the problem
forcing it to stay unsigned long.

Changing dr7 should be in a separate patch too.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Apr 17 16:13:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 16:13:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.958232.1351151 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5RrP-0000J3-Hw; Thu, 17 Apr 2025 16:13:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 958232.1351151; Thu, 17 Apr 2025 16: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 1u5RrP-0000Iw-Ee; Thu, 17 Apr 2025 16:13:07 +0000
Received: by outflank-mailman (input) for mailman id 958232;
 Thu, 17 Apr 2025 16:13: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=9F7A=XD=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1u5RrN-0000Iq-RL
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 16:13:06 +0000
Received: from NAM02-BN1-obe.outbound.protection.outlook.com
 (mail-bn1nam02on20608.outbound.protection.outlook.com
 [2a01:111:f403:2407::608])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d6ebea6e-1ba6-11f0-9eb0-5ba50f476ded;
 Thu, 17 Apr 2025 18:13:04 +0200 (CEST)
Received: from CH0PR03CA0290.namprd03.prod.outlook.com (2603:10b6:610:e6::25)
 by CH3PR12MB8658.namprd12.prod.outlook.com (2603:10b6:610:175::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.21; Thu, 17 Apr
 2025 16:12:59 +0000
Received: from CH3PEPF0000000B.namprd04.prod.outlook.com
 (2603:10b6:610:e6:cafe::2) by CH0PR03CA0290.outlook.office365.com
 (2603:10b6:610:e6::25) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.35 via Frontend Transport; Thu,
 17 Apr 2025 16:12:59 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CH3PEPF0000000B.mail.protection.outlook.com (10.167.244.38) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Thu, 17 Apr 2025 16:12:59 +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, 17 Apr
 2025 11:12:58 -0500
Received: from [172.21.212.118] (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, 17 Apr 2025 11:12:56 -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: d6ebea6e-1ba6-11f0-9eb0-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=FXxH8asENQmsQsno65jGdwXt8kweojpOtTLZElnufBDQtJCp+fNMTLLDp0ufw0vFo6hjpbOFLQ5/THF87yP/XWH16eC4KiuKO1q8vyUbMWUl3pajEODdcUP6CY08MNEAAjXFOmKv1tBXJf/KG9AMAOT5zzLPHTLc+IISyVcfcHiMLjm60sURTzzVO3Jjk9Te+sM7bnyTTO5Be7VNM+JsvCsvoocKbQjSkksm41fF6LGmycADpFXzYiTelON7ctxRsWf1iVMJSpJw0jmgsfTgJJltCdW2BQiVtjFeMX2DcGhyWz97SjmBIl0MeTmN1f24K+fueio0h1qfCYYVoakZ2w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-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+Y7Cjq0egEKANiuWq1JjxDSYibc0v2kMaCvLxHjPJk=;
 b=Ho2ZATlbcqXbtPS3rq0SWxKhw9j9TPGjSTYeheVVnb+vMPtOwSz/Uq7PPsDrfVWT9kSsRpVS4eutEp1i0SKpy7ckSUieT/u1svWDVu46lfHjAnvqHovuwO5w+d6FLwD5G6Q060FzPJAyvhqrTI6pPLg3AiC2b8QICRoF6G+lytga6YUcP3Ez3IMmLHP+vIf7MXZOO6Ivk3YqF8agRk663giRAnOSxXkyKihbGwGJT64Nr9wrxC7wJngPQZbe12pEQhiFhFgTY7KjZ+rrPA0uftJ8jzwBDw1a9nlhAeuoGGFVkOoikAqu35516nrJRHL6Z1txHiMuGffA7vt+OhGZXg==
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=j+Y7Cjq0egEKANiuWq1JjxDSYibc0v2kMaCvLxHjPJk=;
 b=LiX1kF2QjpA/WmPtFu1VhMcbRK6Rw2l0a3ANQReyNRILJdC2U7GtkXyVrNwsqSfPBQtURdo630zS5RT+tWZyU9mTvdNt7KzqK/XpTP3Zk7yBoBcXcXRX1FCw7/frQAkdA6pleeq7qJPOnJwqispUy3gz4zoamaf923j80Bz6z9Q=
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: <ca5468a6-e6eb-41ab-9bc0-01bd272e58ea@amd.com>
Date: Thu, 17 Apr 2025 12:12:58 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] Update to latest Argo
To: Andrew Cooper <andrew.cooper3@citrix.com>, Xen-devel
	<xen-devel@lists.xenproject.org>
CC: 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?Marek_Marczykowski-G=C3=B3recki?=
	<marmarek@invisiblethingslab.com>, "Daniel P . Smith"
	<dpsmith@apertussolutions.com>
References: <20250417145502.2565165-1-andrew.cooper3@citrix.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <20250417145502.2565165-1-andrew.cooper3@citrix.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: CH3PEPF0000000B:EE_|CH3PR12MB8658:EE_
X-MS-Office365-Filtering-Correlation-Id: 14a44c67-8f3d-45f5-87fa-08dd7dcab908
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?eDVyUXUyUDYzNDI0VkM0VHFaMGw5cVJ0YmpMbkl4c3hOMElFRVNXYXNWeCsw?=
 =?utf-8?B?QUJIQVloQmRqdW1qZ1ZGd3QzNkYwcityN3h4YkJkd1F5QjRGUEFyQmVyY3lv?=
 =?utf-8?B?N2tGSW9zc3FtMVpKSktiWXRmRlRBSGZVc0taM05DL1grMCt1bWpsYWNOdnpn?=
 =?utf-8?B?NG8rcFZSWmM4TEF5TGdKeVpvRHQ1VldZbVU5VDBXcmd6RHJ3YWpIUjkvME9t?=
 =?utf-8?B?NGtCZENYOWVKM215TDlCbWpRYmFWZWxSeE4vVkQzVzFaTzVMM0dMbUIrSUdx?=
 =?utf-8?B?UE9ub1VENktTdkJVRDVnYW5iaGN5SEJUbXkyN2xsVmxDR0NKTWw3WlZDczU1?=
 =?utf-8?B?QldNYkU4dkxiQkk2ODdxWVp3cDZhNG1mczhPMmFWNW5tVW1WTkZ5eE9OekVu?=
 =?utf-8?B?a1BSSUVDUkdPMTdBNkZVa2R0TXp5UkpFMFVmWUNQY29iYjBFZUk5U2l4Wksz?=
 =?utf-8?B?K0ZRTGJiRE54MlBuK3drZHYybzN6MkkycmNFdExQZzJPVzhWNmdkUjN6RDcx?=
 =?utf-8?B?UmxYUWdYZXRnZHdJVkM0dGRjbSs3R1hNZjRzZUo4UVd1bVZVTGVkQnlDSm85?=
 =?utf-8?B?ZmFrWjF2emVNU21uV0thcnhiUlJNN2U0bkJoNkxJSnZEOFdrZ2VYbjB1ZGNO?=
 =?utf-8?B?SXgyRWFTZm1CZm5ySmtvZGJGQ1dtZVlIQXVpRE9uTHVmWlJTWlBzZHMyQkZP?=
 =?utf-8?B?NDl1SWpaVjVmRm1LeUh6QnBLOXNqek14YWVORHV3RkorZGhNS2hsYnJueHA2?=
 =?utf-8?B?MmJNS245R01ydTZiWnh2bmdFcFhtaUozVUgzN25rcjg1eUdBQkdLdVJXK0Yz?=
 =?utf-8?B?SlE4NDc1UFNmVnlGNDNyTTl2NGRwaksreHRueUVuRVVKS0J4NllYdXc2RUNa?=
 =?utf-8?B?azEzT2VYc1FhSjl6dFFTdnNVazhxUGJlZGVwaUNpSzM5Tm9LcmJ6STNieFVG?=
 =?utf-8?B?YVF4Qk91LzhmMFlaMmRJdjNVTDhMVHJKT2xkVHJGbDBwMHdlRGc5TklnNHR5?=
 =?utf-8?B?TnZ1eFNuUER0aEM3d2g1VzlZMFVqMnZzSTl1WFU3SERmZC8zRW10Z0FjMlRD?=
 =?utf-8?B?RUMyYnBSbXpRMnVDUHN0Z3RtdHNLUnUwTzJqYktBYXE2b1RqV2xNYzF0TGx4?=
 =?utf-8?B?S0gxOGtrUmprWGtLeFFCTEdUckpEOGpua2hLV29VbjVkcFZaT2ljUUQ5WUhs?=
 =?utf-8?B?YnIyZWZQWWQ2aWtQVDZYcnNjcGd0Q1Nvc2xGdk1PQ0l2aTFtZFdoV1FhWUdV?=
 =?utf-8?B?MUxyelpyNW1wTzFIVm9VU0gwazFVa1BtWVFSaHVoZDF6TXdJeXJ4Zmttdk1X?=
 =?utf-8?B?TFBTWHJjby9hTmRuRFpsNU92ZVpQcVJ1NFJoSGdBRGRIekpZT0gwVGIzU3h2?=
 =?utf-8?B?NWNvaEw5YXYwNy9qL3BzcDZWZ2N4eFY0T1pQU0NLRUl6UjA4VTY3dzg4VjY3?=
 =?utf-8?B?MWFSQkZKY3RtcXBGcURib2k3NjhUL1BzN3pva0ZCUGJiRG1HSStJcUV2Rysv?=
 =?utf-8?B?d0FZMjZNZ3JBdjhUQkVtNFc3WmptcGhuY2Vxa2RQY1dYY2VGTjg4SWQyTzVV?=
 =?utf-8?B?S2pKYWdQdVc2MklrUk42YTZQalNqRi80bDFmeGZTWGpVQmp4R1dPSlVMdmpY?=
 =?utf-8?B?UlRsbFFSSDJQSmE4a2NQcFlaUXpZVnpaRnJPb2FNTC9GUVR6Qkd3elAycnRk?=
 =?utf-8?B?UkZQMkZEajcyZnlMeW43TWpJZVNwUzczMStnSlg4NWNRMURNeE5Fa3Q5dFQ1?=
 =?utf-8?B?UXpIeUhQUmFHRzlrOHNQOGpBTHRVVWxYR0Y0K0xDc251NlBoYmlTbXg2T3Bz?=
 =?utf-8?B?SkxXYTJRdlNkUnRoM2VPZ2E0bWhsTmE4Y1AyTCt3SFNtVFovcVZDMWo1QlBk?=
 =?utf-8?B?dndOVHdBQWVyY2FYajU3MUJXWlc1VVNZbnVhS1R3cEZXTVBtN0dndm1JMUQ4?=
 =?utf-8?B?R2FQb3BwSWtIeXphZ2p2d0trN2hYekN3R20yU2VTc2xtTCtUak9nOWwvZkVo?=
 =?utf-8?B?TmMzTE5YVUI0SGZ3cGtnRE8xRGFMODY3LzRnMnlKemthTEdhM29sZHZIcktJ?=
 =?utf-8?B?S0xWZDFuVXlmSFV0aXZUZmYvdmxVaGtXRUc5dz09?=
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)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Apr 2025 16:12:59.7063
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 14a44c67-8f3d-45f5-87fa-08dd7dcab908
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:
	CH3PEPF0000000B.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB8658

On 2025-04-17 10:55, Andrew Cooper wrote:
> The bugfixes I submitted during commit 36500bcb5e24 ("Overhaul how Argo is
> built and packged") have now been merged.
> 
> Update the version used, and drop the -Wno-error workaround.
> 
> Link: https://github.com/OpenXT/linux-xen-argo/pull/21
> 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 Apr 17 16:18:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 16:18:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.958243.1351161 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5Rwd-0000tH-59; Thu, 17 Apr 2025 16:18:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 958243.1351161; Thu, 17 Apr 2025 16:18:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5Rwd-0000tA-1S; Thu, 17 Apr 2025 16:18:31 +0000
Received: by outflank-mailman (input) for mailman id 958243;
 Thu, 17 Apr 2025 16:18: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=m2wG=XD=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u5Rwc-0000so-AS
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 16:18:30 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on20626.outbound.protection.outlook.com
 [2a01:111:f403:2415::626])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9833cbd0-1ba7-11f0-9eb0-5ba50f476ded;
 Thu, 17 Apr 2025 18:18:28 +0200 (CEST)
Received: from CH2PR12CA0018.namprd12.prod.outlook.com (2603:10b6:610:57::28)
 by DM6PR12MB4138.namprd12.prod.outlook.com (2603:10b6:5:220::21) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.35; Thu, 17 Apr
 2025 16:18:23 +0000
Received: from CH1PEPF0000AD7B.namprd04.prod.outlook.com
 (2603:10b6:610:57:cafe::a1) by CH2PR12CA0018.outlook.office365.com
 (2603:10b6:610:57::28) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.35 via Frontend Transport; Thu,
 17 Apr 2025 16:18:23 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CH1PEPF0000AD7B.mail.protection.outlook.com (10.167.244.58) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Thu, 17 Apr 2025 16:18:23 +0000
Received: from localhost (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; Thu, 17 Apr
 2025 11:18:22 -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: 9833cbd0-1ba7-11f0-9eb0-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=l1m4qDUjPruf5+T101fbVr5Q+T3nUSYsTlp3MAkoUBTN0/ywhq0AkAhhf1QQKSQ4sbN0SDQBtbntH1+nPZ0MEoiDPC9duvzcbf8dZ67ULmU9wcxZc8otfIEvKJFwWlJl16D9tioVPNfeI8+G84o+0OtUcoG0Fq3YJBkNcwHLaGsd/qJMYGYjGcTISo0YD0CQRbhZ9A/DqY9ZSu9PwLSDFxZiSDc8iUOQEniEFLmbORo+6wbLpoqNIqqPLLexQIhZa+3sYbRrYO3FPbHTplKBsQ+Zi9iFyXyELJ5RkOQL/bz0LhwfpSuPrGUqskXjne8rN6OnUm29V7l/DCeHdSFK5A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=lqCbXDOhyYZqP0FVhkwa4twXGcbYC2FGjV47Wm9R0Ho=;
 b=OwNDur63IiWkylBUb2Y/7INUxpLCtpVWcVFH6x1oDdC+7wI++p2aMOllubVfQSPaysDXmPgHifWk2a9UsmAHgP0Y1LPgkRwEcmWCPo3CYpkjN2pDxgmkGqU+X3XD0Nz01URjevibu30IG/U0stPW27cNSuM6g1gjPPORgmN5FzejFeWqifvHBpge2D8QTLUFDW6dSUjO5IPM8F+yETadpNsNwupgneGRxZvPVM0+37T9Mk8lrgWGY92KnTzBughWGOgtcRgfCG1h+m0bQTlXpHQUzNnW68zbXw13qp5W0nR6rJIz502ZMsoi0+/6vt8bsTWHG+JeNH8PW7Xa1g3LsQ==
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=lqCbXDOhyYZqP0FVhkwa4twXGcbYC2FGjV47Wm9R0Ho=;
 b=zDpixFybJ1Z0izcqMYjtlKGkVnd3CsPCiBnnfvYWZLQVNyUU/hEVZJi+RHsbEIDl+GFABS5WivJYjEC6V7Mckl6AgGMwetvoj7m0/HhivgzEaDsKEJrRttSch+df3ltJgqkV6mm0D8xtfV21tpKopRllqkn6+riHq3ipMArsh/c=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Thu, 17 Apr 2025 17:18:20 +0100
Message-ID: <D991SW75LNIE.1QUE1HVLCS7W3@amd.com>
CC: "Daniel P. Smith" <dpsmith@apertussolutions.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, =?utf-8?q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, "Michal
 Orzel" <michal.orzel@amd.com>, Julien Grall <julien@xen.org>, "Stefano
 Stabellini" <sstabellini@kernel.org>, <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v4 02/13] kconfig: introduce domain builder config
 options
From: Alejandro Vallejo <agarciav@amd.com>
To: Jan Beulich <jbeulich@suse.com>
X-Mailer: aerc 0.20.1
References: <20250417124844.11143-1-agarciav@amd.com>
 <20250417124844.11143-3-agarciav@amd.com>
 <6b7728d0-0464-44ad-8af6-e2816e83a2a6@suse.com>
In-Reply-To: <6b7728d0-0464-44ad-8af6-e2816e83a2a6@suse.com>
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: CH1PEPF0000AD7B:EE_|DM6PR12MB4138:EE_
X-MS-Office365-Filtering-Correlation-Id: b6fa2246-1d5e-4958-4816-08dd7dcb7a13
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?blU5V05DNExkN0xxbzJVZzhlSWZiUHc1UkZ5bGdQd1ZFMThKVWt6d3g0WWdY?=
 =?utf-8?B?ZmY3OVlsWWdVZHd4QmRjTHRQYkd3eHBrNzNFeUg2REhHZjU5UWNYRUxUdENC?=
 =?utf-8?B?YnRqZXRsOWMvTlo3di90RFBRTXBjVXhUSjZYb0wrY3IxVW14MkhqWU4zMTdO?=
 =?utf-8?B?MWx0MXpXbFZ2NENaQXhldDRIa2JPVElJL1NDeHNpSkNoSTZheFFLSHdtM0hr?=
 =?utf-8?B?UTdGcG11L2pUREd0TXhDMzNac2RhekUvdFJRdnNJYWFLbTRXd25wenFaYnZZ?=
 =?utf-8?B?QkJtSTZUdlBSU2IxWEpvSEQxNFc4azlocU95amxkRUNGd2o3alY2U2ZCM1lO?=
 =?utf-8?B?ZnoyaS9leWpMMmdOa2lHMVpySU0wZG9HRUx4NkhHUDA0Q2kxOFUrSjBHUnlB?=
 =?utf-8?B?MVRIU1FZN1NURVNwZ2Z0by9HWGxCMU02MnFhVHZGS09GMldrK1p5MDJYUnBr?=
 =?utf-8?B?RjJqQVo5RHpwU3FwcXN5Y1NnaGpLcW44NkNXeVQyVFM2bTZRWVhaWGtRWksw?=
 =?utf-8?B?NnA1UmVUenI2NmlGd2djc3ByMzg2NnR0MkFqZDArVUhSSzk1TXJsa0VrNDhP?=
 =?utf-8?B?QkNRY3BUTU9NVDNYNlA4cnBQckR5YVBLa1hXSnduWjI1RWNsUFQxS0pCUFBE?=
 =?utf-8?B?SnBMZTZVRnJWZUxrbkhrM2FIdUp0Y3JiM09CVlBGbEJKRzJPK0wzUDB6djFS?=
 =?utf-8?B?UjdERTFrU3dqbU5LK0dlUVc2aGZxMTFnRE5zd3dVQ01BdWpRMXAyU2w4eE41?=
 =?utf-8?B?RDNZdTJCbkpuQTFCYys4WGgyT2JSRGNYb3pab1pERUFDV1lSbE5rWmE4WW1W?=
 =?utf-8?B?bHRnbTE3UlJ2NllCOTRZUjRqQi9RR3ozeE1TUkt1emtqSVdaLytrQWwwbFFR?=
 =?utf-8?B?MXF5bWRucGZ3bjJiY2RUekhZVXY5eW9WWGNZNXBhcE5DaGV2MmdTWXNiWk4y?=
 =?utf-8?B?TTR1SVBGTGNpdnRiWkU3N3k1bXBYRG9BMnNKNkM2QlQ2dmdaVWpvVHFlYmhX?=
 =?utf-8?B?VXo5dlFHVUk0T29PdzNnK2xiU1ZJQnp1WVdISU1WamxPcjJkSkhiZm5OKzBj?=
 =?utf-8?B?S2RaenRsekJDUnpZOGxoeUhiWlFKVlFacEJtYU9lNWxaRUQzcXEyc0E5cFpJ?=
 =?utf-8?B?QzhqRnZiN1BNR0JkYXp1OVlpeG54dWR6bTR3N1BpQmRGNS9LVUxiMmtnZXo5?=
 =?utf-8?B?T3VLLytBbHhNTm8vaUFack1iSTRLVEEyMjE0R0NhdVVLOHF0MS96c1JhOGV6?=
 =?utf-8?B?ZkhYaEFXdEs5QmtZSmdCQTJ3bDlZN2UyUDB6Yk5mQnlPbUlTZm8zb3dmK2JY?=
 =?utf-8?B?bXhDdm50WlRZU1Bqc2lPS3BHeHA4TitzbGJFc2lTcTNuY0daNDJSVUp5R3Bu?=
 =?utf-8?B?SDdDU2RWTUVTVS82V0o4eDlncVZqK2w4N1VWRzVPZUZyTlY2U0x1ZXIvVUpW?=
 =?utf-8?B?WlRFVU1ESmxOMkpaVUo2ZFBBRXUwZnJnR1U2U2toV0YxcWRscU5uRmtuZGt4?=
 =?utf-8?B?Vk5MSXd3cWdoK1ZBWWZHYmhNQmg1bDlqY2hNN2tLQjhEaTV2OGg5ZysrNWtp?=
 =?utf-8?B?Ykd2WTFVN3hpS2s5cG1LbGNmaVh5UHZOaGFBYVNXT2JlYzhEdnRKWEd3ZVhk?=
 =?utf-8?B?MVRja1BvYlBHcmM0VEdGc3RIcGo3TlkrcENxQXRlTXVSbnQyTXlBTnVTNUhx?=
 =?utf-8?B?V3gyWVNrUkZiMk8xZG8yL21BRm1PR0dDVDF0NEZnN2lwRjMrZnZpVTdCUWk4?=
 =?utf-8?B?WW9mZnBsdVZJWThVN003UkZLZkhVSEhCS3czWHN1eWdPdkpwVWphRVFIT1pO?=
 =?utf-8?B?WXMvLy9EN3MrV3dIeEVOUkRxYUU0VWJ1azUrbzNvWWJsT2swdVNBUVkwK01w?=
 =?utf-8?B?ZGYrSVFDQnNjaE9JZmdQVzlhVE5ZT0UxOG92NnBMSFUwbTgrUVU2aWt0N1NI?=
 =?utf-8?B?ckkrUDlLM0RKQ0RETzJYRERDa0NrNnVQcFRHaGJRdWJIT1lNVWFqQnVOaEtp?=
 =?utf-8?B?NlJNTytuZ0dXWERYOU8xMVhiZVlRKy8zclJwT2lYRjBrNkdNemQ5ZnRDMkV2?=
 =?utf-8?Q?ref/6U?=
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: 17 Apr 2025 16:18:23.5770
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: b6fa2246-1d5e-4958-4816-08dd7dcb7a13
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:
	CH1PEPF0000AD7B.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4138

On Thu Apr 17, 2025 at 4:00 PM BST, Jan Beulich wrote:
> On 17.04.2025 14:48, Alejandro Vallejo wrote:
>> --- /dev/null
>> +++ b/xen/common/domain-builder/Kconfig
>> @@ -0,0 +1,18 @@
>> +
>> +menu "Domain Builder Features"
>> +depends on HAS_BOOT_INFO
>
> That is, what's going to further be added here will not ...
>
>> +config DOMAIN_BUILDER
>
> ...depend on this, but just on HAS_BOOT_INFO? Seems not very likely, but
> I'll be looking forward to learn what the plans are.

CONFIG_HAS_BOOT_INFO has nothing to do with future plans.  The domain
builder is tightly integrated with the boot_info infrastructure and
cannot be used (or linked) unless the arch-specific definitions are
present. It cannot function without it. And this movement from arch/ to
common/ forces this new Kconfig to gate core.c on boot_info existing
(because it's in asm/bootinfo.h atm). I _COULD_ also move the boot_info
elsewhere, but without a drive to actually use it, that seems a bit
pointless.

HAS_BOOT_INFO && !DOMAIN_BUILDER still links core.c, because that
contains the common initialiser for boot_info.

>
> Also, if the entire contents here is to depend on HAS_BOOT_INFO, can't
> the "source" line pulling in this Kconfig be put inside "if HAS_BOOT_INFO=
"?
> That would centralize definition and use of that symbol to a single file.

Sure.

>
>> +	bool "Domain builder (UNSUPPORTED)" if UNSUPPORTED
>> +	select LIBFDT
>> +	help
>> +	  Xen has a built-in mechanisms to automatically construct domains
>> +	  (like dom0) during the boot phase. The domain builder is an enhanced
>> +	  form of that mechanism to enable constructing predefined domains
>> +	  described on a flattened device tree.
>
> I'm not a native speaker, but (perhaps because of that) "on" here reads
> odd. More logical to me would be "by" or "via".
>
> Jan

Yes, you're right. I just felt the previous help wasn't very helpful
unless you knew in advance what you were toggling. Jason's more concrete
suggestion in the following reply sounds reasonable too, so I'll just
copy that on resend.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Thu Apr 17 16:19:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 16:19:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.958257.1351171 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5Rxh-0001Tu-H1; Thu, 17 Apr 2025 16:19:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 958257.1351171; Thu, 17 Apr 2025 16: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 1u5Rxh-0001Tn-EK; Thu, 17 Apr 2025 16:19:37 +0000
Received: by outflank-mailman (input) for mailman id 958257;
 Thu, 17 Apr 2025 16: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=Dr0F=XD=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u5Rxg-0001Tf-Bf
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 16:19:36 +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 bffd1d73-1ba7-11f0-9ffb-bf95429c2676;
 Thu, 17 Apr 2025 18:19:34 +0200 (CEST)
Received: by mail-ed1-x535.google.com with SMTP id
 4fb4d7f45d1cf-5f5bef591d6so1092694a12.1
 for <xen-devel@lists.xenproject.org>; Thu, 17 Apr 2025 09:19:34 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 4fb4d7f45d1cf-5f6254360e1sm22097a12.0.2025.04.17.09.19.33
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 17 Apr 2025 09:19:33 -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: bffd1d73-1ba7-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744906773; x=1745511573; 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=JeqRf/ksfyKuWJc0QUlgZxLL7fEd09XKOEwheEVwUOw=;
        b=L12sXTRrEMIdJAVtatDotooeTHQmhLOkmM5yaUH+yCoUi3W897ZUmuuHbr3pASkHWV
         76+It81I9Z2MZ8YuExMQQvqExqxFigmoSEwgUvtPFJuMRDoMDV+/cJlmPZXhYHTP7wHp
         iH3w3zq84w3oiqhb1udby7p1zXR4+BbjnH1wM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744906773; x=1745511573;
        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=JeqRf/ksfyKuWJc0QUlgZxLL7fEd09XKOEwheEVwUOw=;
        b=RNIdM9GDJhXb6lALwja41TlLEwMb/9HOLtmU+Fatj6TokWjw0jc5143NbqHJoyZpzT
         yebUO+lg3Pn8Z62kP3wJkHQFMvlbfvoxzAe1R3VoK5Wza6rf+J3gW3f0m4Hk0JNUOZbO
         rsmasmrlsozkX8aCDfE9NVICro7UN2imnHJx9vanJh3cm/HAcXf7LNZpKFB3JcAPZw1+
         0CAhFbwJquM0dW/J2oqDGEOgdf1Ga7h+/W+n5+VPVKpfvVvGwzQmokW6VOLeHflKf1a0
         kOD992blHs7yEMqrhP0zghX7slteSSCiUX01KDRvOgK7n+kos8vpusZcD7sGPPjQRL/Q
         dXAA==
X-Gm-Message-State: AOJu0YwPChMQILq++42+O9ywkzjWxfGh+nkSJhcZnqXSzJRuR0KBItMi
	OKmCVdp5tYSCWqnI5XSNRJvw/qIS96csP+PWXAZIi9qS5qmznr2pDlRpFeOBfpQILxr6N3w0pT/
	X
X-Gm-Gg: ASbGnctZSzVkMHcyXDT5UsfH5DRKiwgoUJ1nKlPm7j+2L8B8lnAoofrWqCupP1Wk3+W
	t3PcWJbggot21v554vasRcB4oOf95zssrqbmq2SwkReqy2aS5yplFKRl/C0FYX9z5BoGgXnkNf/
	QnPhaaDdbC4Ouva5Zvu8P4pxOwrbsynvI/OtFRQlag4xjfvD+aGc0s8VsfgCy3mucca6A9PlylS
	dIsURBv0jWivKXq5As4slwuoBnbbokVlDlcu3YtrIFM91WnmpWhQX0fa+nldrFQi4zK8YdZED8E
	MTjQW88qdvHTKwpNcIbZQswDleUz9fXCxRNFe7CqVX65lw==
X-Google-Smtp-Source: AGHT+IETxZ5bBCZWWs21wifcVg8wPfD1HUpinU+PrW83jacUdpf2g2b3KmKC1Tx9zipW5f9p7Qnarg==
X-Received: by 2002:a05:6402:34c3:b0:5e0:9959:83cd with SMTP id 4fb4d7f45d1cf-5f4b75c543fmr5063576a12.21.1744906773490;
        Thu, 17 Apr 2025 09:19:33 -0700 (PDT)
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/intel: workaround several MONITOR/MWAIT errata
Date: Thu, 17 Apr 2025 18:19:13 +0200
Message-ID: <20250417161913.14661-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.48.1
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

There are several errata on Intel regarding the usage of the MONITOR/MWAIT
instructions, all having in common that stores to the monitored region
might not wake up the CPU.

Fix them by forcing the sending of an IPI for the affected models.

The Ice Lake issue has been reproduced internally on XenServer hardware,
and the fix does seem to prevent it.  The symptom was APs getting stuck in
the idle loop immediately after bring up, which in turn prevented the BSP
from making progress.  This would happen before the watchdog was
initialized, and hence the whole system would get stuck.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
Apollo and Lunar Lake fixes have not been tested, due to lack of hardware.
---
 xen/arch/x86/acpi/cpu_idle.c     |  6 +++++
 xen/arch/x86/cpu/intel.c         | 41 +++++++++++++++++++++++++++++++-
 xen/arch/x86/include/asm/mwait.h |  3 +++
 3 files changed, 49 insertions(+), 1 deletion(-)

diff --git a/xen/arch/x86/acpi/cpu_idle.c b/xen/arch/x86/acpi/cpu_idle.c
index 420198406def..f8f11f3c31e4 100644
--- a/xen/arch/x86/acpi/cpu_idle.c
+++ b/xen/arch/x86/acpi/cpu_idle.c
@@ -441,8 +441,14 @@ void cpuidle_wakeup_mwait(cpumask_t *mask)
     cpumask_andnot(mask, mask, &target);
 }
 
+/* Force sending of a wakeup IPI regardless of mwait usage. */
+bool force_mwait_ipi_wakeup __read_mostly;
+
 bool arch_skip_send_event_check(unsigned int cpu)
 {
+    if ( force_mwait_ipi_wakeup )
+        return false;
+
     /*
      * This relies on softirq_pending() and mwait_wakeup() to access data
      * on the same cache line.
diff --git a/xen/arch/x86/cpu/intel.c b/xen/arch/x86/cpu/intel.c
index 6a680ba38dc9..9d7c6ea297a9 100644
--- a/xen/arch/x86/cpu/intel.c
+++ b/xen/arch/x86/cpu/intel.c
@@ -8,6 +8,7 @@
 #include <asm/intel-family.h>
 #include <asm/processor.h>
 #include <asm/msr.h>
+#include <asm/mwait.h>
 #include <asm/uaccess.h>
 #include <asm/mpspec.h>
 #include <asm/apic.h>
@@ -368,7 +369,6 @@ static void probe_c3_errata(const struct cpuinfo_x86 *c)
         INTEL_FAM6_MODEL(0x25),
         { }
     };
-#undef INTEL_FAM6_MODEL
 
     /* Serialized by the AP bringup code. */
     if ( max_cstate > 1 && (c->apicid & (c->x86_num_siblings - 1)) &&
@@ -380,6 +380,43 @@ static void probe_c3_errata(const struct cpuinfo_x86 *c)
     }
 }
 
+/*
+ * APL30: One use of the MONITOR/MWAIT instruction pair is to allow a logical
+ * processor to wait in a sleep state until a store to the armed address range
+ * occurs. Due to this erratum, stores to the armed address range may not
+ * trigger MWAIT to resume execution.
+ *
+ * ICX143: Under complex microarchitectural conditions, a monitor that is armed
+ * with the MWAIT instruction may not be triggered, leading to a processor
+ * hang.
+ *
+ * LNL030: Problem P-cores may not exit power state Core C6 on monitor hit.
+ *
+ * Force the sending of an IPI in those cases.
+ */
+static void probe_mwait_errata(void)
+{
+    static const struct x86_cpu_id models[] = {
+        /* Apollo Lake */
+        INTEL_FAM6_MODEL(0x5C),
+        /* Ice Lake */
+        INTEL_FAM6_MODEL(0x6A),
+        INTEL_FAM6_MODEL(0x6C),
+        /* Lunar Lake */
+        INTEL_FAM6_MODEL(0xBD),
+        { }
+    };
+#undef INTEL_FAM6_MODEL
+
+    if ( boot_cpu_has(X86_FEATURE_MONITOR) && !force_mwait_ipi_wakeup &&
+         x86_match_cpu(models) )
+    {
+        printk(XENLOG_WARNING
+               "Forcing IPI MWAIT wakeup due to CPU erratum\n");
+        force_mwait_ipi_wakeup = true;
+    }
+}
+
 /*
  * P4 Xeon errata 037 workaround.
  * Hardware prefetcher may cause stale data to be loaded into the cache.
@@ -406,6 +443,8 @@ static void Intel_errata_workarounds(struct cpuinfo_x86 *c)
 		__set_bit(X86_FEATURE_CLFLUSH_MONITOR, c->x86_capability);
 
 	probe_c3_errata(c);
+	if (c == &boot_cpu_data)
+		probe_mwait_errata();
 }
 
 
diff --git a/xen/arch/x86/include/asm/mwait.h b/xen/arch/x86/include/asm/mwait.h
index 000a692f6d19..c52cd3f51011 100644
--- a/xen/arch/x86/include/asm/mwait.h
+++ b/xen/arch/x86/include/asm/mwait.h
@@ -13,6 +13,9 @@
 
 #define MWAIT_ECX_INTERRUPT_BREAK	0x1
 
+/* Force sending of a wakeup IPI regardless of mwait usage. */
+extern bool force_mwait_ipi_wakeup;
+
 void mwait_idle_with_hints(unsigned int eax, unsigned int ecx);
 #ifdef CONFIG_INTEL
 bool mwait_pc10_supported(void);
-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Thu Apr 17 16:23:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 16:23:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.958274.1351181 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5S1r-0003xh-03; Thu, 17 Apr 2025 16:23:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 958274.1351181; Thu, 17 Apr 2025 16:23: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 1u5S1q-0003xa-TD; Thu, 17 Apr 2025 16:23:54 +0000
Received: by outflank-mailman (input) for mailman id 958274;
 Thu, 17 Apr 2025 16:23: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=Dr0F=XD=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u5S1p-0003xU-Jy
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 16:23:53 +0000
Received: from mail-pl1-x62b.google.com (mail-pl1-x62b.google.com
 [2607:f8b0:4864:20::62b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 58cbfdd6-1ba8-11f0-9ffb-bf95429c2676;
 Thu, 17 Apr 2025 18:23:51 +0200 (CEST)
Received: by mail-pl1-x62b.google.com with SMTP id
 d9443c01a7336-223fb0f619dso13178935ad.1
 for <xen-devel@lists.xenproject.org>; Thu, 17 Apr 2025 09:23:51 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 d2e1a72fcca58-73dbf8e1535sm34482b3a.47.2025.04.17.09.23.48
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 17 Apr 2025 09:23:49 -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: 58cbfdd6-1ba8-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744907030; x=1745511830; 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=fNdFN0BhTLzvKFYlUQYklo928rK7wP7sb/0C9aa38Os=;
        b=RZDCqzvLPswIEDHS4zyFimEWhxeOw2GdsoB14w5rR24gP9MqCIwru1dKjZuovlBbYs
         5FESB9P/c8UgKhal/imres93mo7/3agWAkhCyIyIVM9e2Zshj/K39x7GmmmAN8E+a46C
         GrzNYtcebnihSB34ktKW6o0U2tT/RAyTzq+iQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744907030; x=1745511830;
        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=fNdFN0BhTLzvKFYlUQYklo928rK7wP7sb/0C9aa38Os=;
        b=E7rcJLc7AkptEuR3zBI7mQKyr4Rl6p6o/Z4fbdSAnow4SGkkhqxNpq1aWOuTjEBMMu
         WNFse74RQ4AsntGh9U8iS9k6xy/1BpOZepYLtUUGOttiMqP7lZJteNofQG4yfY/uLv2B
         VCXNQnAZvx+hVCOMUAT+YP4Zk3qinSaCjgppvWkZ92btoh5bBHo04vHDykPSRt9yQCfI
         l4GFFxxWzoZDn+dNFQ5d4vJoMIEjAS8Z8Hq5oLuJhUFBNOVlULYX/nlCekF98+oi/pjY
         yhI02BJsfg6QQdwQLJW16FsdbeCeKzBrbx+Qxu1RAUS8exnGNVNnSFFk5uHeZraeCi/2
         ihCQ==
X-Forwarded-Encrypted: i=1; AJvYcCXtMPs5VtkBD3kWJmk5iVzzqLwhPH41oGgV6lU07VAJ62YJetR2temmz1WDu1CIYG6d1qdVAy1CyIg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyrppL2rOfSu4ojdm0gCrCWEjKVVlKPYl01S+dIjlIadakAOnDI
	Fr6hKlhmUVkEN4OzK+Rolp8oFyie5yIocPFCn3C5FbQIW+RWxbBMJ7Sx/gW+YQU=
X-Gm-Gg: ASbGnctffuKl2uyJ7BuajtuPSidS1WY/W/qANkhfHp5w0qeO07UctT9GQPifS+Q8HGo
	2tjYVs7K+R6r/x+A+v9uTUCAPtIsYR71mw3uThZwuphn4HWyUnHg7mMzeyqV+I3rg2WEYv1hfbk
	Q/OLnxEqg81oG+SXciKRjWX+ny1xhWFUBRv+pc1F8IDaAXiIulJ+xxoYmE5VJ0SflQDLvK/IZvl
	ypnBzDrL13j8LO1KSUUzQUlhBDJV4ax6LIB+ZGdCu8Ejl/8m4Ywkcpm6iDObS0AlHdEqVKNe9Yq
	kMXtW5NsiXazQnp5ANLOClohvdqyTOWqHvKUbTxm1D9PHw==
X-Google-Smtp-Source: AGHT+IHlFTa6JbhfXeuFYaHXo4wXbunBH6gZblGDWH+j4ZTfJpcoleUu4u2/oSrJq34pCyXij3JjVg==
X-Received: by 2002:a17:902:d2c1:b0:224:1af1:87f4 with SMTP id d9443c01a7336-22c51f35ab8mr2086665ad.22.1744907029952;
        Thu, 17 Apr 2025 09:23:49 -0700 (PDT)
Date: Thu, 17 Apr 2025 18:23:44 +0200
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/hvm: fix handling of accesses to partial r/o
 MMIO pages
Message-ID: <aAErECZ1Ys-Nufon@macbook.lan>
References: <20250417152514.13702-1-roger.pau@citrix.com>
 <20250417152514.13702-3-roger.pau@citrix.com>
 <f71bc0f8-8de1-4ecd-a2c0-a420e991e429@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <f71bc0f8-8de1-4ecd-a2c0-a420e991e429@suse.com>

On Thu, Apr 17, 2025 at 05:38:54PM +0200, Jan Beulich wrote:
> On 17.04.2025 17:25, Roger Pau Monne wrote:
> > --- a/xen/arch/x86/hvm/emulate.c
> > +++ b/xen/arch/x86/hvm/emulate.c
> > @@ -370,7 +370,15 @@ static int hvmemul_do_io(
> >          /* If there is no suitable backing DM, just ignore accesses */
> >          if ( !s )
> >          {
> > -            if ( is_mmio && is_hardware_domain(currd) )
> > +            if ( is_mmio && is_hardware_domain(currd) &&
> > +                 /*
> > +                  * Do not attempt to fixup write accesses to r/o MMIO regions,
> > +                  * they are expected to be terminated by the null handler
> > +                  * below.
> > +                  */
> > +                 (!rangeset_contains_singleton(mmio_ro_ranges,
> > +                                               PFN_DOWN(addr)) ||
> > +                  dir == IOREQ_READ) )
> 
> These two would better be swapped, for the cheap one to be done first.

Can swap, thanks for pointing out.

> > --- /dev/null
> > +++ b/xen/arch/x86/hvm/mmio.c
> > @@ -0,0 +1,125 @@
> > +/* SPDX-License-Identifier: GPL-2.0-only */
> > +/*
> > + * MMIO related routines.
> > + *
> > + * Copyright (c) 2025 Cloud Software Group
> > + */
> > +
> > +#include <xen/io.h>
> > +#include <xen/mm.h>
> > +
> > +#include <asm/p2m.h>
> > +
> > +static int cf_check subpage_mmio_accept(struct vcpu *v, unsigned long addr)
> > +{
> > +    p2m_type_t t;
> > +    mfn_t mfn = get_gfn_query_unlocked(v->domain, PFN_DOWN(addr), &t);
> > +
> > +    return !mfn_eq(mfn, INVALID_MFN) && t == p2m_mmio_direct &&
> > +           subpage_mmio_find_page(mfn);
> > +}
> > +
> > +/*
> > + * The guest has read access to those regions, and consequently read accesses
> > + * shouldn't fault.  However read-modify-write operations may take this path,
> > + * so handling of reads is necessary.
> > + */
> > +static int cf_check subpage_mmio_read(
> > +    struct vcpu *v, unsigned long addr, unsigned int len, unsigned long *data)
> > +{
> > +    struct domain *d = v->domain;
> > +    unsigned long gfn = PFN_DOWN(addr);
> > +    p2m_type_t t;
> > +    mfn_t mfn;
> > +    struct subpage_ro_range *entry;
> > +    volatile void __iomem *mem;
> > +
> > +    *data = ~0UL;
> > +
> > +    if ( !IS_ALIGNED(len | addr, len) )
> 
> What's the point of doing the | ? len can't be misaligned with itself?

Hm, it's the same form that's used in mmio_ro_emulated_write(), I
assumed it was to catch illegal access lengths, like 3.

> > --- a/xen/arch/x86/include/asm/mm.h
> > +++ b/xen/arch/x86/include/asm/mm.h
> > @@ -554,6 +554,18 @@ int cf_check mmio_ro_emulated_write(
> >      enum x86_segment seg, unsigned long offset, void *p_data,
> >      unsigned int bytes, struct x86_emulate_ctxt *ctxt);
> >  
> > +/* r/o MMIO subpage access handlers. */
> > +struct subpage_ro_range {
> > +    struct list_head list;
> > +    mfn_t mfn;
> > +    void __iomem *mapped;
> > +    DECLARE_BITMAP(ro_elems, PAGE_SIZE / MMIO_RO_SUBPAGE_GRAN);
> > +};
> > +struct subpage_ro_range *subpage_mmio_find_page(mfn_t mfn);
> > +void __iomem *subpage_mmio_map_page(struct subpage_ro_range *entry);
> 
> I notice you didn't move the __iomem, which - as indicated - I agree with,
> but Andrew didn't. Did you sort this with him privately?

I will raise with him, seeing as he didn't reply to your last email, I
assumed he was OK with the reasoning?

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Apr 17 16:50:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 16:50:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.958294.1351191 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5SRm-0000ze-0T; Thu, 17 Apr 2025 16:50:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 958294.1351191; Thu, 17 Apr 2025 16:50: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 1u5SRl-0000zU-Tt; Thu, 17 Apr 2025 16:50:41 +0000
Received: by outflank-mailman (input) for mailman id 958294;
 Thu, 17 Apr 2025 16:50: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=9F7A=XD=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1u5SRk-0000wz-JC
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 16:50:40 +0000
Received: from NAM11-CO1-obe.outbound.protection.outlook.com
 (mail-co1nam11on2062b.outbound.protection.outlook.com
 [2a01:111:f403:2416::62b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 121bc6d6-1bac-11f0-9eb0-5ba50f476ded;
 Thu, 17 Apr 2025 18:50:31 +0200 (CEST)
Received: from CH2PR11CA0011.namprd11.prod.outlook.com (2603:10b6:610:54::21)
 by PH7PR12MB5687.namprd12.prod.outlook.com (2603:10b6:510:13e::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.29; Thu, 17 Apr
 2025 16:50:24 +0000
Received: from CH1PEPF0000AD7C.namprd04.prod.outlook.com
 (2603:10b6:610:54:cafe::14) by CH2PR11CA0011.outlook.office365.com
 (2603:10b6:610:54::21) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.22 via Frontend Transport; Thu,
 17 Apr 2025 16:50:24 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CH1PEPF0000AD7C.mail.protection.outlook.com (10.167.244.84) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Thu, 17 Apr 2025 16:50:24 +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, 17 Apr
 2025 11:50:23 -0500
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, 17 Apr
 2025 11:50:23 -0500
Received: from [172.21.212.118] (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, 17 Apr 2025 11:50:22 -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: 121bc6d6-1bac-11f0-9eb0-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=uR3SjWd3xmmmSepWHyflCV5J0EPIYJ6nop7Y2YGvIUrq3BJvYz8pMAnfqb6dt7/hgRPxjm2f5P3MBYDl1Ru5C8kcNswI3fe9XHQtCSLlYT4OPhM8Qhn6WzNCKn07CP6UDPArKvTyIOikRXXybz8dQoTyxJ3PA9AjFd/r1p7VHoN/hbtUTjEiVyEHfbjEs4nXlCsOm2mT/MdI+eoAaVecvTT45S7iqseWA24iB2Z6Hl/QtxlhG21lIh54QwKF8HGqufowzAoIa/Lnsyo8vIMwXWRQH6e09SKMHYV99O3O23IVRoVPWt2Qc/UVmoE/0bJAPsAZbm08LD6E4Mv5aDS/rQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Cbzl0Yzlpw2DNJqfPlxMfEg9Th/BPQMGf2fv+Xm+sTo=;
 b=hzNYXVOoEUGZvgAY5nmStIfAVRpVTwtvufV8OU25zj6IhniwzWGVHUlFhVorf0vK4ELqEnjBt42WWW2C3ph3poZjcZ80iQN+zvgopzW5nPzIgifQVcvAIKZOUKV28r8SFEUuPKx0zMvRBxjL0Zt4IBgsV0fheVM0hDts3tC9CsR1Tsa7afUonSrpfbqmJ5Zel1vrmF7najKSKGu9uBINKMHLr2Ej2aqyXsfWNKyr+fKDvmHaL04Xyl4sPX45oDzb/0jqAs1XXPasGhgfxRcIPayOPvK8UScbHDX98DrpwVYCp/zNwkeJFqlIFJ56+rpPyjb/Wh2GRJAlD3dkdO8KcQ==
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=Cbzl0Yzlpw2DNJqfPlxMfEg9Th/BPQMGf2fv+Xm+sTo=;
 b=3HyGcM2j8vNnjGRXesVG0Wj3Asu4S5ZcO0jXqkUFDSIPTiM8iM/taxUiX+E4f2nMzqD5DDsKS5G7P3gA3w6fd73zoXiYGbvp5/8Xvgl+Iy+RqdA5NEM8j4iZy2381hSp/ydpnC7nxrggjOYXQgqRXGp8kUfj845w1HUni3zvzBw=
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: <ebae7fb0-382c-4db3-a37c-db458af3299b@amd.com>
Date: Thu, 17 Apr 2025 12:50:25 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] compat/memory: avoid UB shifts in XENMEM_exchange
 handling
To: Jan Beulich <jbeulich@suse.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>,
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Manuel Andreas
	<manuel.andreas@tum.de>
References: <ffd8f532-6714-4f56-a358-71ab580202b6@suse.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <ffd8f532-6714-4f56-a358-71ab580202b6@suse.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: CH1PEPF0000AD7C:EE_|PH7PR12MB5687:EE_
X-MS-Office365-Filtering-Correlation-Id: a940c51b-5864-464c-6fea-08dd7dcff30f
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?Mi9Vay96aEpPb2hWQTM5aC9Ma1RZbVM5RXlFTWVQaDl4MDJYUFRsWVhWNExt?=
 =?utf-8?B?R0Q4SU5WZ2hOSWcvQmdERWk2eDJmSHFwUUwrV0ZBWmNQTDVUcGQzZ0lxYThL?=
 =?utf-8?B?a256NGtucUtIT0hZQUQ2U0J4Rm9rTytVLzFDNkdONk1lRHhtcVJLT2hPSjRE?=
 =?utf-8?B?dVRjcCtTYkhEdzZFeWZFRzVQZVJNdWN2SVZleVRLckNvQ3l0WVJEQ0lxZkNV?=
 =?utf-8?B?STRaZnJvVE9XTkJldWZpVDltRXo1RE9qZUdlbU1YSmdjN3V6YllNN01tWldD?=
 =?utf-8?B?ampHejhuSW0wczRtUDZGQTA0UjVjT2RDOXM0YmNzU0w5ZXE5ZndtNFBiclgr?=
 =?utf-8?B?Rmk0RHNOMjh2WlBNRWdvQWpVRTFScTJNSWpzRHphQjRsSHpJZTdXRjFaMXZ5?=
 =?utf-8?B?Z0l0YWxNV281aThxWkpxdFJINnp5R1drY1pPN01JTnowbnkzVjBFVXh5b3VF?=
 =?utf-8?B?OEg3RmxvcTZqV0xTVHZ6SXJBMGpXdit3azN1Z2h4US8zY3QzUmtkZk8vYThU?=
 =?utf-8?B?N20zTnorbUwyd0hFem10aTdKUkl6VDJkL2NDbWc4Q1NENXpZcys5Zm5IM3Zn?=
 =?utf-8?B?d0hJcTNpYUNDK2JpNzZUdjlVNUNXYTJGdnp0a21XbEpmUDFRaGt2K3VrZnhV?=
 =?utf-8?B?ZGN5L2RCK0p1T0lKVHE0WUJkazdYaVdpeURBRUkrKzBaZVNDajJVZ3cxVDNG?=
 =?utf-8?B?MnBybUZCSlNKYkxObHk5aWRZZnJhU2xMdi9WQUd2VG1BTU41S2ZpQ3V2N0RD?=
 =?utf-8?B?OTNucVphMThPUExQQmhWMXZQN0RhbW1XQy9CTWdyNmltcFlsck96V1phRE5R?=
 =?utf-8?B?QjZKZmx0a1o5SytibHVxWGJVRERHa0R1SXNDTHZ3MU5qcUsydVR6YVJ3a2Zz?=
 =?utf-8?B?WXkvMmNBMVVZUVVzVG5rOFRJY2QyMTBqeG9ZZ2ZaenlvWWFUaTBIOVlvenJu?=
 =?utf-8?B?MUE5a0M2VTZNMGNOakNHQTZBWEZ5dmRFanRqdnNkSmNwVlVINk5WZVVkVUda?=
 =?utf-8?B?MVUrNHp6U0djYXE4NStRU1VVczgremY0Y0NEYzh3T24wKzlGUDRnYTNYZjVC?=
 =?utf-8?B?Um5heURXeWhlaDM5QnhkOXpGOU50TmRhVkpRSmROR0ZxdTZxK3dhWHAzVytS?=
 =?utf-8?B?QXhLTjFTMmVIRnJnSHpMR2NxbE9YbGJoVUI0dGJ6UTRmWHhxMmNkZjZlTWI5?=
 =?utf-8?B?cE9mUWxwUGJkK0pMeWlPREJjRXBzR0RKUVNIckZEeW5XK0d0ZFJOb1crSUo0?=
 =?utf-8?B?UjE1WWowYld5a0hiM0ZBbCswRlR5NmNucjd0UjgrUjZMblF3bmdWK3B3Ky90?=
 =?utf-8?B?VjBOTy9NQmtUUk1FTm1LMU02OTNPS0thMzk2Y3hQL3VORlpoaWZsOWkrcTVu?=
 =?utf-8?B?V1d2ZHNFeXN5TU1qR2gyMzB3bHpQNmZyRG5yRVd4ajNlMVVkamhqM1pVb29T?=
 =?utf-8?B?Mm9lTWxqQkFGZHVHQkVqeVg4N3dGRHQyRys2VnB4ODBaNDJOT2Z1Q1VQUCtY?=
 =?utf-8?B?SXk1Q2lHVHJyaENFN2tFVzgzT1JEcHFsVFg2K1A2ZWhGblgxRFhIYkQyb1NL?=
 =?utf-8?B?c0FWRFk1bGx0TWcrQzZQL3EwbHJmNWpuR0twakJRTkZjZXo1TmZhbDM2eUU1?=
 =?utf-8?B?NENIaExrTDIvZWs1eXRRdmlrL3F5OW93RkZJT2YyNE56K0NEWVM5S2ZxSXd6?=
 =?utf-8?B?bGNCTlFMcDNndHErNFVTSE0zTEdWRnBPU0VON3RVWEtGTTBHcE1iNk9mME54?=
 =?utf-8?B?M1lWendHcXFMaUxYQndVdTlpbjlHVmZBU2FUUkJEL2tXWWpCU0NhSU5zSW02?=
 =?utf-8?B?Vk4vMFR1aTlvdEF4NEVNTWJkamhoM1FhbVZuUXFXeVFaU2MzckVQaTZCVmF0?=
 =?utf-8?B?OVVNWHN3YjM2cjdqVWZxRU5vclUyTmpCN3VvdHNkMTZ2R0g2ZXFqQXdLdWFO?=
 =?utf-8?B?NDRCUlpXYkZIWSsxVlN3U3VaRWJqeG4xVk9UQzh0ZjUvbGlhYUx3L1NiclFB?=
 =?utf-8?B?V0kyUE5Oa0Jwa3ZsNGJIUVpOZlQyUUs5NktBOFY3Q0FkRUhSMmpESWFIajJJ?=
 =?utf-8?Q?ZuxZCU?=
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)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Apr 2025 16:50:24.5430
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: a940c51b-5864-464c-6fea-08dd7dcff30f
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:
	CH1PEPF0000AD7C.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB5687

On 2025-04-17 10:08, Jan Beulich wrote:
> Add an early basic check, yielding the same error code as the more
> thorough on the the main handler would produce.

"as the more thorough check in the main handler"...

> Fixes: b8a7efe8528a ("Enable compatibility mode operation for HYPERVISOR_memory_op")
> Reported-by: Manuel Andreas <manuel.andreas@tum.de>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

With that:

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


From xen-devel-bounces@lists.xenproject.org Thu Apr 17 17:07:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 17:07:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.958310.1351200 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5SiF-0003yN-FS; Thu, 17 Apr 2025 17:07:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 958310.1351200; Thu, 17 Apr 2025 17: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 1u5SiF-0003yG-Ck; Thu, 17 Apr 2025 17:07:43 +0000
Received: by outflank-mailman (input) for mailman id 958310;
 Thu, 17 Apr 2025 17: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=xfOZ=XD=tum.de=f.specht@srs-se1.protection.inumbo.net>)
 id 1u5SiD-0003xM-Qr
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 17:07:41 +0000
Received: from postout1.mail.lrz.de (postout1.mail.lrz.de [129.187.255.137])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 762a8750-1bae-11f0-9ffb-bf95429c2676;
 Thu, 17 Apr 2025 19:07:37 +0200 (CEST)
Received: from lxmhs51.srv.lrz.de (localhost [127.0.0.1])
 by postout1.mail.lrz.de (Postfix) with ESMTP id 4Zdkpw5wsKzyZB;
 Thu, 17 Apr 2025 19:07:36 +0200 (CEST)
Received: from postout1.mail.lrz.de ([127.0.0.1])
 by lxmhs51.srv.lrz.de (lxmhs51.srv.lrz.de [127.0.0.1]) (amavis, port 20024)
 with LMTP id cBOxVHWSWckS; Thu, 17 Apr 2025 19:07:36 +0200 (CEST)
Received: from localhost (ip-77-25-21-71.web.vodafone.de [77.25.21.71])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange ECDHE (prime256v1) server-signature RSA-PSS (2048 bits)
 server-digest SHA256) (Client did not present a certificate)
 by postout1.mail.lrz.de (Postfix) with ESMTPSA id 4Zdkpv6TfbzyZv;
 Thu, 17 Apr 2025 19:07:35 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 762a8750-1bae-11f0-9ffb-bf95429c2676
Authentication-Results: postout.lrz.de (amavis); dkim=pass (2048-bit key)
 reason="pass (just generated, assumed good)" header.d=tum.de
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tum.de; h=
	in-reply-to:content-disposition:content-type:content-type
	:mime-version:references:message-id:subject:subject:from:from
	:date:date:received:received; s=tu-postout21; t=1744909656; bh=z
	va0/TptVOqWu9/wDGrF7NK2AQb0tx0cmf8Q2XtGOuQ=; b=XzDD2DcpDZp9eMwcE
	wiTDPJKCQYX3WvKAsUlElmLIWulYkXz1MQ3tOUjFein+voLn7Btk5M+eiG2bIfka
	WT6U016XpNpFqfiowBbi867jCshneAUWhLMxiL/Oba7tuVdGHe/wYTO+kXCSVy3h
	A+o8t7qNe9uwBvhBc4Zu1eqSjYf5FMx0VgdBrWAG/hmOCO+tOlTVj4hnmFAgbIDU
	xkJmxmdSfZIEy7lO3kdBnU2CiWilELJjKCfuwY4SR1pYI7gQ+b1u04HjL3Eb0HKJ
	sF1Gkm+rYbFJ1QZBGFhl73KOB86WQ/Jen1m1OMxJeTYahBGaSEyadnu7bwTdPauh
	c3UgQ==
X-Virus-Scanned: by amavisd-new at lrz.de in lxmhs51.srv.lrz.de
X-Spam-Flag: NO
X-Spam-Score: -2.873
X-Spam-Level:
X-Spam-Status: No, score=-2.873 tagged_above=-999 required=5
 tests=[ALL_TRUSTED=-1, BAYES_00=-1.9, DMARC_ADKIM_RELAXED=0.001,
 DMARC_ASPF_RELAXED=0.001, DMARC_POLICY_NONE=0.001, LRZ_DMARC_FAIL=0.001,
 LRZ_DMARC_FAIL_NONE=0.001, LRZ_DMARC_POLICY=0.001, LRZ_DMARC_TUM_FAIL=0.001,
 LRZ_DMARC_TUM_REJECT=3.5, LRZ_DMARC_TUM_REJECT_PO=-3.5,
 LRZ_ENVFROM_FROM_MATCH=0.001, LRZ_ENVFROM_TUM_S=0.001,
 LRZ_FROM_ENVFROM_ALIGNED_STRICT=0.001, LRZ_FROM_HAS_A=0.001,
 LRZ_FROM_HAS_AAAA=0.001, LRZ_FROM_HAS_MDOM=0.001, LRZ_FROM_HAS_MX=0.001,
 LRZ_FROM_HOSTED_DOMAIN=0.001, LRZ_FROM_NAME_IN_ADDR=0.001,
 LRZ_FROM_PHRASE=0.001, LRZ_FROM_PRE_SUR_PHRASE=0.001, LRZ_FROM_TUM_S=0.001,
 LRZ_HAS_CT=0.001, LRZ_HAS_IN_REPLY_TO=0.001, LRZ_HAS_MIME_VERSION=0.001,
 LRZ_HAS_SPF=0.001, LRZ_MSGID_LONG_50=0.001, LRZ_MSGID_NO_FQDN=0.001,
 LRZ_NO_UA_HEADER=0.001, LRZ_SUBJ_FW_RE=0.001] autolearn=no autolearn_force=no
Date: Thu, 17 Apr 2025 19:07:19 +0200
From: Fabian Specht <f.specht@tum.de>
To: Jan Beulich <jbeulich@suse.com>
Cc: manuel.andreas@tum.de, xen-devel@lists.xenproject.org
Subject: Re: x86 emulation bug
Message-ID: <ux7il4piqihmmx4ilr72ugi25m2m7sa65c6byxmrr22kqpwujw@d36sjo6qpfjw>
References: <jfgrmlid6fhbptebr22ccqimqhys3pchcoyuoepjz2iwoillei@xxaicsktj2pl>
 <910868c1-fc90-49ec-bd06-3ff638ff0c1d@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <910868c1-fc90-49ec-bd06-3ff638ff0c1d@suse.com>

> Thanks for the report. However, already on Andreas' report on the day before
> yesterday I was heavily inclined to ask about details you certainly have
> figured out already. I find it odd that you leave to us all re-figuring out.
> In this case, for example: Is the specific value you set %eax to relevant?
> (Probably not.) Is the specific value you set %rcx to relevant? (Probably
> not, but likely some part of it is.) Is the specific value you set %rdi to
> relevant? (Probably not, but likely some part of it is. Probably you
> setting it to 0 is also why the adjustment below is needed, and using a
> different value might permit avoiding that adjustment.) Is it relevant
> that you set EFLAGS.DF? (Quite likely.)
> 
> Any other investigation results you may have collected would likely also
> make our job easier.

I understand that. We did not actually dig that deep into the bug, so
there was not that much we could've shared to be honest. Also, we are
currently busy with a paper, so our main intention was to report the
bugs as quickly as possible and get the paper done before the deadline :)
However, I'll remember it for the next time!

Fabian


From xen-devel-bounces@lists.xenproject.org Thu Apr 17 17:24:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 17:24:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.958327.1351211 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5Syf-0007pR-U4; Thu, 17 Apr 2025 17:24:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 958327.1351211; Thu, 17 Apr 2025 17:24: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 1u5Syf-0007pK-Qm; Thu, 17 Apr 2025 17:24:41 +0000
Received: by outflank-mailman (input) for mailman id 958327;
 Thu, 17 Apr 2025 17:24: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=CA5y=XD=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u5Syd-0007pC-QF
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 17:24:39 +0000
Received: from mail-wm1-x32e.google.com (mail-wm1-x32e.google.com
 [2a00:1450:4864:20::32e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d6ee437b-1bb0-11f0-9eb0-5ba50f476ded;
 Thu, 17 Apr 2025 19:24:38 +0200 (CEST)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-43cfdc2c8c9so6321365e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 17 Apr 2025 10:24:38 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-44034fca7a3sm48138535e9.0.2025.04.17.10.24.36
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 17 Apr 2025 10:24:36 -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: d6ee437b-1bb0-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744910678; x=1745515478; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=OskF0NLuu5E/fFaAhB3O2yvxN3Rgu9Rzf7aDlZvuk2Q=;
        b=F7v/iTATAYvDNafxH3VoGAIcVU1Oy1J3+3mv6+v815i16Fxqam4BIe5V+NohV51neI
         GQ8ajoPsyulqUbQRutmR4S+hklGym0u6ghkN7HitVuNfdWL5upwNS1/bX8KtkUUKHh4r
         sCxSOKpJspd26cJXKA0+P8efY3MiDtDMtUWKk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744910678; x=1745515478;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=OskF0NLuu5E/fFaAhB3O2yvxN3Rgu9Rzf7aDlZvuk2Q=;
        b=cgzUaOhPDjr8H7Ki9WfSLfPKHJVabRQv816AA5MILqWbMp3JVC2psltCByL0Lfzcrf
         KEjApVbJRcVZK1BLj7ZIjbF7uBN+MMMPlry6YafYteuBCNcWRmYkmtFw6D3UKlPhpI1o
         JXJr5Y1CF4LaZN1yUCXsYPVbBzdjnn/RHBo+1u9u7EiNjcxIb8qOv8TZ7B4QhBMeXrc1
         wWULdxoXJ+O5sqggsEkmqg1sVZc9NgwSLira3iR0sFMwQo0bx1FESyUfL93/cpzf6oKR
         z44uu6moRIpQj6lZIsbjk1mI+kloNHcRSqxDcM+UHZDf9RO+NdhkYcAXzG0rxjVAjvgB
         Rfrg==
X-Forwarded-Encrypted: i=1; AJvYcCX1R9uia7ql02M+uidbbXvw7k6qOtmKLTyRjhfEmpeoA4HS5gGLQlStH26Ng7nFIt44lSgLtjERkqw=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy+JckXQl473C4tKiNvXPXM1V82crvaR0f8JITosuIL5EPUQg2u
	HRpWY814ccjnGSYkfOf4gzFEVjLLWRtdfcthd8iG1FleaOIjQmXQwRiKz7780wjCDIdwdqOh2hN
	IN+Y=
X-Gm-Gg: ASbGnctbTTNbygk8YhRn+mPLmBYgA2lKBSof1/EvHM5Obv/7zM65Abu6jTUzXhVNe1y
	t8BkmKPOme3wTfYqKRKg2WJ+/9LnJZoYOwDRgY7iD4nNinZAyBw4KAnvfRRyWgLlWOtBFaU/fK8
	6EHaGI7dr25adsqpQJ7UMGkwyT7E1xupFkfbUNkW585Itq1ZNgduDJCL0qADEBxXUAbqISBBDPn
	ctX5ZJg/wGjTnk7V4UTJGuPj8o3+X1wUADHbjyTpBN9jybmb7hb08CHkKawyURc4PNc4othDn+0
	en8yqL0xFAvxhYyWboOyJflB67hGFWAaFg7qAlfgIF4K1qaXoklQpYigC09kYWv4FbZa78H04yF
	q3xAT6w==
X-Google-Smtp-Source: AGHT+IHYW9p//UDkjRPzwl4OG0WLfz6rd86A02u74/VKnVmV9Y+hLQrJCJ0RiadC4tZILH7ztiMrSQ==
X-Received: by 2002:a05:6000:402b:b0:39c:12ce:1054 with SMTP id ffacd0b85a97d-39ee5b11245mr5634686f8f.8.1744910677896;
        Thu, 17 Apr 2025 10:24:37 -0700 (PDT)
Message-ID: <06c64f49-a70e-48c3-8480-f2ed9ac4a001@citrix.com>
Date: Thu, 17 Apr 2025 18:24:35 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/AMD: Convert rdmsr_amd_safe() to use asm goto()
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: <20250407153510.1863243-1-andrew.cooper3@citrix.com>
 <1df6b4c9-7309-49cd-8046-019d94139c57@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: <1df6b4c9-7309-49cd-8046-019d94139c57@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 07/04/2025 4:48 pm, Jan Beulich wrote:
> On 07.04.2025 17:35, Andrew Cooper wrote:
>> Unlike the WRMSR side, we can't use asm goto() unconditionally, because our
>> toolchain baseline doesn't support asm goto with outputs.
> Is there actually a benefit we gain from now needing to maintain two different
> pieces of logic fulfilling the same purpose?

IMO, yes.  Besides getting rid of .fixup/unlikely, the code generation
is better-enough to warrant it, including getting the common path
correct (the referenced labels are all considered cold).

e.g. for this change, we go from:

    xor    %esi,%esi
    rdmsr
    test   %esi,%esi
    jne    <init_amd+0x540>
    and    $0xfffffffe,%edx
    wrmsr

(note the forward branch) to simply:

    rdmsr
    and    $0xfffffffe,%edx
    wrmsr

because the exception table redirect is directly into init_amd.cold, and
we don't have to hold `int err` in a register across the asm() block.

This is an intentionally simple example to get the infrastructure in,
but vmread() will definitely benefit.

>
>> Also, there's a different errata workaround we'll need if we want to use asm
>> goto() with "+" constraints:
>>
>> config CC_HAS_ASM_GOTO_TIED_OUTPUT
>> 	depends on CC_HAS_ASM_GOTO_OUTPUT
>> 	# Detect buggy gcc and clang, fixed in gcc-11 clang-14.
>> 	def_bool $(success,echo 'int foo(int *x) { asm goto (".long (%l[bar]) - .": "+m"(*x) ::: bar); return *x; bar: return 0; }' | $CC -x c - -c -o /dev/null)
>>
>> I'm tempted to put it in straight away, lest we forget about it.
> Perhaps best if we really want to go this route. Yet then - why "TIED"? Isn't
> "tied" the term they use when referring to an earlier operand by using a
> digit (or the operand's name in square brackets)?

This is straight from Linux.  I've not looked at the issue in detail.

>
>> --- a/xen/Kconfig
>> +++ b/xen/Kconfig
>> @@ -41,6 +41,20 @@ config CC_SPLIT_SECTIONS
>>  config CC_HAS_UBSAN
>>  	def_bool $(cc-option,-fsanitize=undefined)
>>  
>> +# Fixed in GCC 14, 13.3, 12.4 and 11.5
>> +# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113921
>> +config GCC_ASM_GOTO_OUTPUT_BROKEN
>> +	bool
>> +	depends on CC_IS_GCC
>> +	default y if GCC_VERSION < 110500
>> +	default y if GCC_VERSION >= 120000 && GCC_VERSION < 120400
>> +	default y if GCC_VERSION >= 130000 && GCC_VERSION < 130300
> Unlike for pre-release versions (x.0.y) I view this as problematic. Distros
> are likely to have backported the fix before the minor releases took place.
> Or they may have backported without ever meaning to follow later minor
> releases. We'd needlessly exclude them here. Imo ...
>
>> +config CC_HAS_ASM_GOTO_OUTPUT
>> +	def_bool y
>> +	depends on !GCC_ASM_GOTO_OUTPUT_BROKEN
>> +	depends on $(success,echo 'int foo(int x) { asm goto ("": "=r"(x) ::: bar); return x; bar: return 0; }' | $(CC) -x c - -c -o /dev/null)
> ... the only option is to actually probe for support as well as the (non-)
> buggy-ness.

There is no sensible way to probe.  It compiles fine, but (AIUI) fails
to spill registers correctly on some paths, which also makes it very
sensitive to other optimisations.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Apr 17 17:58:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 17:58:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.958346.1351237 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5TVi-00058U-O1; Thu, 17 Apr 2025 17:58:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 958346.1351237; Thu, 17 Apr 2025 17:58: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 1u5TVi-00058J-L8; Thu, 17 Apr 2025 17:58:50 +0000
Received: by outflank-mailman (input) for mailman id 958346;
 Thu, 17 Apr 2025 17:58: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=qaPY=XD=linuxfoundation.org=gregkh@srs-se1.protection.inumbo.net>)
 id 1u5TVh-0004ex-Iu
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 17:58:49 +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 9c486c3f-1bb5-11f0-9eb0-5ba50f476ded;
 Thu, 17 Apr 2025 19:58:48 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by nyc.source.kernel.org (Postfix) with ESMTP id 7CE0CA4A3A7;
 Thu, 17 Apr 2025 17:53:18 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 15B44C4CEE7;
 Thu, 17 Apr 2025 17:58:45 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9c486c3f-1bb5-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org;
	s=korg; t=1744912726;
	bh=MTINK+QHN/HB5dXBzq6aPmXTJYOI88hQv6RhxkXuDWk=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=Q6exSCSDhZFzbhSjIEClFR3Pf0XAiaDpqCIQmXwsuDlpBbZ/Gsmtelk+hQCpTkoPL
	 Eng0r7jJqUcKhT7UdkHoujzBniNqpVR0KlPGxo+l4i48vhmWnO5/eq/ZoqDgWLGmHs
	 Te4EDK/npH+UVsrR2Ery381TJclpXWGuGjC7nLy4=
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: stable@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	patches@lists.linux.dev,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	xen-devel@lists.xenproject.org,
	Kees Cook <kees@kernel.org>,
	Sasha Levin <sashal@kernel.org>
Subject: [PATCH 6.14 065/449] xen/mcelog: Add __nonstring annotations for unterminated strings
Date: Thu, 17 Apr 2025 19:45:53 +0200
Message-ID: <20250417175120.603518294@linuxfoundation.org>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250417175117.964400335@linuxfoundation.org>
References: <20250417175117.964400335@linuxfoundation.org>
User-Agent: quilt/0.68
X-stable: review
X-Patchwork-Hint: ignore
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

6.14-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Kees Cook <kees@kernel.org>

[ Upstream commit 1c3dfc7c6b0f551fdca3f7c1f1e4c73be8adb17d ]

When a character array without a terminating NUL character has a static
initializer, GCC 15's -Wunterminated-string-initialization will only
warn if the array lacks the "nonstring" attribute[1]. Mark the arrays
with __nonstring to and correctly identify the char array as "not a C
string" and thereby eliminate the warning.

Link: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117178 [1]
Cc: Juergen Gross <jgross@suse.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>
Cc: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Cc: xen-devel@lists.xenproject.org
Signed-off-by: Kees Cook <kees@kernel.org>
Acked-by: Juergen Gross <jgross@suse.com>
Message-ID: <20250310222234.work.473-kees@kernel.org>
Signed-off-by: Juergen Gross <jgross@suse.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 include/xen/interface/xen-mca.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/xen/interface/xen-mca.h b/include/xen/interface/xen-mca.h
index 464aa6b3a5f92..1c9afbe8cc260 100644
--- a/include/xen/interface/xen-mca.h
+++ b/include/xen/interface/xen-mca.h
@@ -372,7 +372,7 @@ struct xen_mce {
 #define XEN_MCE_LOG_LEN 32
 
 struct xen_mce_log {
-	char signature[12]; /* "MACHINECHECK" */
+	char signature[12] __nonstring; /* "MACHINECHECK" */
 	unsigned len;	    /* = XEN_MCE_LOG_LEN */
 	unsigned next;
 	unsigned flags;
-- 
2.39.5





From xen-devel-bounces@lists.xenproject.org Thu Apr 17 18:19:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 18:19:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.958401.1351247 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5TpT-00016z-AJ; Thu, 17 Apr 2025 18:19:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 958401.1351247; Thu, 17 Apr 2025 18:19: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 1u5TpT-00016s-7B; Thu, 17 Apr 2025 18:19:15 +0000
Received: by outflank-mailman (input) for mailman id 958401;
 Thu, 17 Apr 2025 18:19: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=qaPY=XD=linuxfoundation.org=gregkh@srs-se1.protection.inumbo.net>)
 id 1u5TpR-00016m-Nc
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 18:19:13 +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 754baa93-1bb8-11f0-9ffb-bf95429c2676;
 Thu, 17 Apr 2025 20:19:11 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by nyc.source.kernel.org (Postfix) with ESMTP id 82C96A4A406;
 Thu, 17 Apr 2025 18:13:41 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 084B8C4CEE4;
 Thu, 17 Apr 2025 18:19: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: 754baa93-1bb8-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org;
	s=korg; t=1744913949;
	bh=Er/0BA1JU22/T5TNA8u2wMRLxHfqXY1yOr4wUg5BP2c=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=J3DUqSbzbBpnXvm+WPsXqZzuahlm1qgpXfPy4/mSlsOfFoY7hbzIgK27qtMUWyDVa
	 d7BAGQwSpGJ8dDIoXB+6Q+G5ZxKRXvVP/HI4gGxVRNQhiOJ6C74CTQCynYYZkfmL1X
	 yQFPitq0T2XhUFLZugINadqzFIs5ifJ0zQyWnUTc=
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: stable@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	patches@lists.linux.dev,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	xen-devel@lists.xenproject.org,
	Kees Cook <kees@kernel.org>,
	Sasha Levin <sashal@kernel.org>
Subject: [PATCH 6.13 056/414] xen/mcelog: Add __nonstring annotations for unterminated strings
Date: Thu, 17 Apr 2025 19:46:54 +0200
Message-ID: <20250417175113.665706978@linuxfoundation.org>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250417175111.386381660@linuxfoundation.org>
References: <20250417175111.386381660@linuxfoundation.org>
User-Agent: quilt/0.68
X-stable: review
X-Patchwork-Hint: ignore
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

6.13-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Kees Cook <kees@kernel.org>

[ Upstream commit 1c3dfc7c6b0f551fdca3f7c1f1e4c73be8adb17d ]

When a character array without a terminating NUL character has a static
initializer, GCC 15's -Wunterminated-string-initialization will only
warn if the array lacks the "nonstring" attribute[1]. Mark the arrays
with __nonstring to and correctly identify the char array as "not a C
string" and thereby eliminate the warning.

Link: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117178 [1]
Cc: Juergen Gross <jgross@suse.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>
Cc: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Cc: xen-devel@lists.xenproject.org
Signed-off-by: Kees Cook <kees@kernel.org>
Acked-by: Juergen Gross <jgross@suse.com>
Message-ID: <20250310222234.work.473-kees@kernel.org>
Signed-off-by: Juergen Gross <jgross@suse.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 include/xen/interface/xen-mca.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/xen/interface/xen-mca.h b/include/xen/interface/xen-mca.h
index 464aa6b3a5f92..1c9afbe8cc260 100644
--- a/include/xen/interface/xen-mca.h
+++ b/include/xen/interface/xen-mca.h
@@ -372,7 +372,7 @@ struct xen_mce {
 #define XEN_MCE_LOG_LEN 32
 
 struct xen_mce_log {
-	char signature[12]; /* "MACHINECHECK" */
+	char signature[12] __nonstring; /* "MACHINECHECK" */
 	unsigned len;	    /* = XEN_MCE_LOG_LEN */
 	unsigned next;
 	unsigned flags;
-- 
2.39.5





From xen-devel-bounces@lists.xenproject.org Thu Apr 17 18:34:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 18:34:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.958415.1351257 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5U49-0004rn-HJ; Thu, 17 Apr 2025 18:34:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 958415.1351257; Thu, 17 Apr 2025 18: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 1u5U49-0004rg-ET; Thu, 17 Apr 2025 18:34:25 +0000
Received: by outflank-mailman (input) for mailman id 958415;
 Thu, 17 Apr 2025 18: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=EnA5=XD=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u5U46-0004ra-Ja
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 18:34:23 +0000
Received: from mail-4322.protonmail.ch (mail-4322.protonmail.ch [185.70.43.22])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 931aede5-1bba-11f0-9ffb-bf95429c2676;
 Thu, 17 Apr 2025 20:34:19 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 931aede5-1bba-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1744914858; x=1745174058;
	bh=FjS29S0pS+V2rysusVkdt7J0m1ic6SwPeYtll5YK41I=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=nkJiG56AqRnLwA6uUyMvrAz1YXr3jKuQV2ttoRYDwQRK7J4fm9+Cosbno0l6ORbLg
	 Ppe38boKtym6WBU2CQXBpv7opexi/YFpb25q0D0uS/ZcPYLAzDMoW6PBp9h4rdQ7c3
	 55+btCDzaedleCTbu9tqwH1iMz49wzH0CQmzGRY1xVGr7204qys8J/QOqeidViUxzP
	 p8FYWa4Ci133j/4HhGVsYlehI1BVAdyZ7S0VlKhmGjjd+oBYrB3gGPjzz4C/B0F3+v
	 biWraLRC0Yl1tkuJpmG1rDF7VDfTNBIkHmPXcIL/bXbROaK4slbLgk8PJnlkeQCLP1
	 +PkL0Tono2S8Q==
Date: Thu, 17 Apr 2025 18:34:13 +0000
To: Stefano Stabellini <sstabellini@kernel.org>
From: dmkhn@proton.me
Cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com, cardoe@cardoe.com, marmarek@invisiblethingslab.com, dmukhin@ford.com
Subject: Re: [PATCH v1 2/4] CI: switch x86 EFI smoke test runner to qemu-xtf.sh
Message-ID: <aAFJoVYqSLQ/9s2F@kraken>
In-Reply-To: <alpine.DEB.2.22.394.2504161632500.8008@ubuntu-linux-20-04-desktop>
References: <20250416053213.921444-1-dmukhin@ford.com> <20250416053213.921444-3-dmukhin@ford.com> <alpine.DEB.2.22.394.2504161632500.8008@ubuntu-linux-20-04-desktop>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 0cef335ddf150586c0c011f18ac470ea0731cbeb
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Wed, Apr 16, 2025 at 05:14:41PM -0700, Stefano Stabellini wrote:
> On Wed, 16 Apr 2025, dmkhn@proton.me wrote:
> > From: Denis Mukhin <dmukhin@ford.com>
> >
> > Use qemu-xtf.sh for qemu-smoke-x86-64-gcc-efi job.
> >
> > Lead time is reduced a bit since not all XTF code base is built, just t=
he
> > required test.
> >
> > Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> > ---
> >  automation/gitlab-ci/test.yaml                |  2 +-
> >  .../include/configs/xtf-x86-64-efi-config     |  0
> >  automation/scripts/include/xtf-x86-64-efi     | 52 +++++++++++++++++++
> >  automation/scripts/qemu-smoke-x86-64-efi.sh   | 43 ---------------
> >  4 files changed, 53 insertions(+), 44 deletions(-)
> >  create mode 100644 automation/scripts/include/configs/xtf-x86-64-efi-c=
onfig
> >  create mode 100644 automation/scripts/include/xtf-x86-64-efi
> >  delete mode 100755 automation/scripts/qemu-smoke-x86-64-efi.sh
> >
> > diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test=
.yaml
> > index 3adc841335..ca1e4eb528 100644
> > --- a/automation/gitlab-ci/test.yaml
> > +++ b/automation/gitlab-ci/test.yaml
> > @@ -687,7 +687,7 @@ qemu-smoke-x86-64-clang-pvh:
> >  qemu-smoke-x86-64-gcc-efi:
> >    extends: .qemu-smoke-x86-64
> >    script:
> > -    - ./automation/scripts/qemu-smoke-x86-64-efi.sh pv 2>&1 | tee ${LO=
GFILE}
> > +    - ./automation/scripts/qemu-xtf.sh x86-64-efi hvm64 example 2>&1 |=
 tee ${LOGFILE}
> >    needs:
> >      - debian-12-x86_64-gcc-debug
> >
> > diff --git a/automation/scripts/include/configs/xtf-x86-64-efi-config b=
/automation/scripts/include/configs/xtf-x86-64-efi-config
> > new file mode 100644
> > index 0000000000..e69de29bb2
> > diff --git a/automation/scripts/include/xtf-x86-64-efi b/automation/scr=
ipts/include/xtf-x86-64-efi
> > new file mode 100644
> > index 0000000000..79622d5a6c
> > --- /dev/null
> > +++ b/automation/scripts/include/xtf-x86-64-efi
> > @@ -0,0 +1,52 @@
> > +#!/bin/bash
> > +#
> > +# XTF test utilities (x86_64, EFI).
> > +#
> > +
> > +# Arch-specific environment overrides.
> > +function xtf_arch_prepare()
> > +{
> > +    export FW_PREFIX=3D"${FW_PREFIX:-/usr/share/OVMF/}"
> > +    export QEMU_PREFIX=3D"${QEMU_PREFIX:-}"
> > +    export XEN_BINARY=3D"${XEN_BINARY:-${WORKDIR}/xen.efi}"
>=20
> Any chance we can avoid using WORKDIR? Or alternatively, we can remove
> TOP? Or remove both? :-)

Yeah, it grew a bit convoluted, but I decided to give it a try to collect
opinions.

Thanks for the feedback!

These two variables have different meanings:

- WORKDIR is a scratch location for keeping artifacts like DTB,
  EFI config, imagebuilder config.

- TOP (looks like at the very least needs a better name) is the helper
  variable pointint to the location of automation/scripts.
 =20
>=20
> Maybe it is best to keep WORKDIR and remove TOP, I am not sure. I am
> just trying to reduce the amount of variables used and that we depend
> upon.

I think it should be easy to drop TOP.

>=20
> I assume you tested the pipeline and it worked, right?

Yes, the pipeline is green:

  https://gitlab.com/xen-project/people/dmukhin/xen/-/pipelines/1770437024

>=20
>=20
> > +    export XEN_CONSOLE=3D"${XEN_CONSOLE:-com1}"
> > +    export XTF_SRC_BRANCH=3D"${XTF_SRC_BRANCH:-master}"
> > +    export XTF_SRC_URI=3D"${XTF_SRC_URI:-https://xenbits.xen.org/git-h=
ttp/xtf.git}"
> > +    export XTF_SRC_VARIANTS=3D"hvm64 pv64"
> > +}
> > +
> > +# Perform arch-specific XTF environment setup.
> > +function xtf_arch_setup()
> > +{
> > +    local esp_dir=3D"${WORKDIR}/boot-esp"
> > +    local efi_dir=3D"${esp_dir}/EFI/BOOT"
> > +
> > +    # Generate EFI boot environment
> > +    mkdir -p ${efi_dir}
> > +    cp ${XEN_BINARY} ${efi_dir}/BOOTX64.EFI
> > +    cp ${XTF_BINARY} ${efi_dir}/kernel
> > +
> > +    cat > ${efi_dir}/BOOTX64.cfg <<EOF
> > +[global]
> > +default=3Dtest
> > +
> > +[test]
> > +options=3D${XEN_CMDLINE}
> > +kernel=3Dkernel
> > +EOF
> > +
> > +    # NB: OVMF_CODE.fd is read-only, no need to copy
> > +    cp ${FW_PREFIX}OVMF_VARS.fd ${WORKDIR}
> > +
> > +    export TEST_CMD=3D"${QEMU_PREFIX}qemu-system-x86_64 \
> > +        -no-reboot \
> > +        -nographic \
> > +        -monitor none \
> > +        -serial stdio \
> > +        -m 512 \
> > +        -M q35,kernel-irqchip=3Dsplit \
> > +        -drive if=3Dpflash,format=3Draw,readonly=3Don,file=3D${FW_PREF=
IX}OVMF_CODE.fd \
> > +        -drive if=3Dpflash,format=3Draw,file=3D${WORKDIR}/OVMF_VARS.fd=
 \
> > +        -drive file=3Dfat:rw:${esp_dir},media=3Ddisk,index=3D0,format=
=3Draw \
> > +    "
> > +}
> > diff --git a/automation/scripts/qemu-smoke-x86-64-efi.sh b/automation/s=
cripts/qemu-smoke-x86-64-efi.sh
> > deleted file mode 100755
> > index 7572722be6..0000000000
> > --- a/automation/scripts/qemu-smoke-x86-64-efi.sh
> > +++ /dev/null
> > @@ -1,43 +0,0 @@
> > -#!/bin/bash
> > -
> > -set -ex -o pipefail
> > -
> > -# variant should be either pv or pvh
> > -variant=3D$1
> > -
> > -# Clone and build XTF
> > -git clone https://xenbits.xen.org/git-http/xtf.git
> > -cd xtf && make -j$(nproc) && cd -
> > -
> > -case $variant in
> > -    pvh) k=3Dtest-hvm64-example    extra=3D"dom0-iommu=3Dnone dom0=3Dp=
vh" ;;
> > -    *)   k=3Dtest-pv64-example     extra=3D ;;
> > -esac
> > -
> > -mkdir -p boot-esp/EFI/BOOT
> > -cp binaries/xen.efi boot-esp/EFI/BOOT/BOOTX64.EFI
> > -cp xtf/tests/example/$k boot-esp/EFI/BOOT/kernel
> > -
> > -cat > boot-esp/EFI/BOOT/BOOTX64.cfg <<EOF
> > -[global]
> > -default=3Dtest
> > -
> > -[test]
> > -options=3Dloglvl=3Dall console=3Dcom1 noreboot console_timestamps=3Dbo=
ot $extra
> > -kernel=3Dkernel
> > -EOF
> > -
> > -cp /usr/share/OVMF/OVMF_CODE.fd OVMF_CODE.fd
> > -cp /usr/share/OVMF/OVMF_VARS.fd OVMF_VARS.fd
> > -
> > -rm -f smoke.serial
> > -export TEST_CMD=3D"qemu-system-x86_64 -nographic -M q35,kernel-irqchip=
=3Dsplit \
> > -        -drive if=3Dpflash,format=3Draw,readonly=3Don,file=3DOVMF_CODE=
.fd \
> > -        -drive if=3Dpflash,format=3Draw,file=3DOVMF_VARS.fd \
> > -        -drive file=3Dfat:rw:boot-esp,media=3Ddisk,index=3D0,format=3D=
raw \
> > -        -m 512 -monitor none -serial stdio"
> > -
> > -export TEST_LOG=3D"smoke.serial"
> > -export PASSED=3D"Test result: SUCCESS"
> > -
> > -./automation/scripts/console.exp | sed 's/\r\+$//'
> > --
> > 2.34.1
> >
> >



From xen-devel-bounces@lists.xenproject.org Thu Apr 17 18:35:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 18:35:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.958426.1351267 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5U4s-0005L1-QP; Thu, 17 Apr 2025 18:35:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 958426.1351267; Thu, 17 Apr 2025 18:35: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 1u5U4s-0005Ku-Mv; Thu, 17 Apr 2025 18:35:10 +0000
Received: by outflank-mailman (input) for mailman id 958426;
 Thu, 17 Apr 2025 18:35: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=CA5y=XD=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u5U4r-0004ra-Dv
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 18:35:09 +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 aa2c92e2-1bba-11f0-9ffb-bf95429c2676;
 Thu, 17 Apr 2025 20:34:58 +0200 (CEST)
Received: by mail-wr1-x435.google.com with SMTP id
 ffacd0b85a97d-39129fc51f8so1115953f8f.0
 for <xen-devel@lists.xenproject.org>; Thu, 17 Apr 2025 11:34:58 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39efa43be53sm410892f8f.41.2025.04.17.11.34.57
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 17 Apr 2025 11:34:57 -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: aa2c92e2-1bba-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744914898; x=1745519698; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=tiOKK0JJwuw4VVwf5VrZi2QtVGcEQ2/+52p9IOBo8n0=;
        b=OJmNfLK+ymMN3S1ZPDcakRGwEkI1In29hDbbkxFxPknkJ2kxS/+5FZ9wzUTqxzNOWz
         7F/ZHnr1XbFwOQOrpDXEPMAviiNt+b2VK/i6XJZsJDsT41Q9xJAPsCwuG0RJ1TSRPZ4N
         vA7GYKZiF2rGJL33K4hgWvS9W2Jr0wLrBx61o=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744914898; x=1745519698;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=tiOKK0JJwuw4VVwf5VrZi2QtVGcEQ2/+52p9IOBo8n0=;
        b=rtdLdIBbLBzkGm4kuraMPe6M/w+2qQ2RzKUPNuTFh+exbjs96EcMMDS+BZodvrbK5g
         GxlbZeA/3sKlslde5jYuvvDc5x0CxnIQo2lW2y1cC+5i3kiXguUi4JZJe6WlWFtNaSpB
         VXqogDBglrDsmhJFVTrwilPD9SRXPMgdXtAlDKnqgVBUaqdxR58e2heoi3lct1RXTz0m
         Bzqmnwo5+1MacJkNJTtaIUGjp8ula/2piCzX+XDp/v4W4bZUMYR2r2Whh23I+YXO3xqL
         JnL4MtFyWfttffm2eKF6Zq/eMTLV0JdR/TjfGg5n+hVJw8ZBrowF6wRHeocGJ5J5bPlc
         eYbw==
X-Forwarded-Encrypted: i=1; AJvYcCWc3Mbk4wmh7BZHFFx3LKyfOHDOHKMRuV6QXYhJT1CyvUyFCC7/tF9oiUDty/j64TASZHKCdkStNdA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YynahtalOa9HitLJsgelx+VQA7XI+QXAb4v4RvKOw/Kp9biocIg
	mbzmC7+f/vnlJ0RqEqECI2ntJaYmL/Ly5320tL/l+y1Py2mlr0Muq2v/A8uMm20=
X-Gm-Gg: ASbGnct30QJh08SaxPPOv8HM5sG0AukWU0SS+CbAN22DexSEUQv88dEoMoZ1LOnsINL
	DNv98kgLQDV59PqNBmXqBI2aS+lJQedCJIDVHPOKFrAD2B5953QHrUv+UlDS9O7DLKtEGVnvRZQ
	JByUrcJOL7eOW4J/SHkcp8BP+NommrTzIo6p10+OogS6HP/XRdCFcmNP/uGyvdeUKET5ZrXZ1PH
	m8dWn3IGFuGG37dWjncVyXPzejT5T9eKJaDxuf65K+U+PGMZalSWPsb0E996fqINYBAEbZ5+so5
	7jgfzPMu1pQ5gb7HoFFTrqkdTjsR85q+WU3Z47biamFnR8Ffnw6B4CreAfs4CbecnPS1goK1U/t
	rLD0HCA==
X-Google-Smtp-Source: AGHT+IHzuXP0YOpuY+HGs2pHLodgG7qdzk98erPJ5sZzzMW/D8fPUPdsTT/AUnDXdzeGxNXobSSIfA==
X-Received: by 2002:a05:6000:2509:b0:39e:e75b:5cd with SMTP id ffacd0b85a97d-39efba2c98emr32043f8f.3.1744914897723;
        Thu, 17 Apr 2025 11:34:57 -0700 (PDT)
Message-ID: <3930d99e-d35c-4170-be09-01abc7be51df@citrix.com>
Date: Thu, 17 Apr 2025 19:34:56 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] compat/memory: avoid UB shifts in XENMEM_exchange
 handling
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>, Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Manuel Andreas <manuel.andreas@tum.de>
References: <ffd8f532-6714-4f56-a358-71ab580202b6@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: <ffd8f532-6714-4f56-a358-71ab580202b6@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 17/04/2025 3:08 pm, Jan Beulich wrote:
> Add an early basic check, yielding the same error code as the more
> thorough on the the main handler would produce.
>
> Fixes: b8a7efe8528a ("Enable compatibility mode operation for HYPERVISOR_memory_op")
> Reported-by: Manuel Andreas <manuel.andreas@tum.de>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Thu Apr 17 18:38:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 18:38:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.958439.1351277 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5U7h-0005zM-Ac; Thu, 17 Apr 2025 18:38:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 958439.1351277; Thu, 17 Apr 2025 18: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 1u5U7h-0005zF-7E; Thu, 17 Apr 2025 18:38:05 +0000
Received: by outflank-mailman (input) for mailman id 958439;
 Thu, 17 Apr 2025 18:38: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=EnA5=XD=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u5U7g-0005z9-4V
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 18:38:04 +0000
Received: from mail-4322.protonmail.ch (mail-4322.protonmail.ch [185.70.43.22])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1806e79b-1bbb-11f0-9eb0-5ba50f476ded;
 Thu, 17 Apr 2025 20:38:02 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1806e79b-1bbb-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1744915081; x=1745174281;
	bh=JgFdV5bxosIj76/HXwpDX+S+jkbp6EIiAhzf8PJdnkA=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=QjZHzTTDL5TBU1nK1b4AowRKjAJjT8s0w5PkxC9SAzlln4RnFAEliExjn+a2hGoRJ
	 aJ0L8cqJFyU9FBT6KhPRzgDSI2mUUEH447O/DzrX5+7oFN09HWVKSEmdnrBezjOBfO
	 cXCaazu2cQ9jIdHQMyvx6aVL6QAmyb7eL5xaT7PVY06hnY+ftlKlrySRoLIXxoGzBN
	 +t4tOXFxx/Hg7MM2/5QVy9kEljM/OjdaAdujnG9gA6ONqYFtNW4zB0opL3hZTfuG2W
	 QoAeiJ10d17enMAqkBhAWg/gr32trDRsMSzsKHW0pvfWEil2/ye4RFm8SDrNO6EUeD
	 TKAAuY45tGrjQ==
Date: Thu, 17 Apr 2025 18:37:56 +0000
To: Stefano Stabellini <sstabellini@kernel.org>
From: dmkhn@proton.me
Cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com, cardoe@cardoe.com, marmarek@invisiblethingslab.com, dmukhin@ford.com
Subject: Re: [PATCH v1 4/4] CI: add argo x86 XTF test
Message-ID: <aAFKfhGrs0eFAAEA@kraken>
In-Reply-To: <alpine.DEB.2.22.394.2504161708470.8008@ubuntu-linux-20-04-desktop>
References: <20250416053213.921444-1-dmukhin@ford.com> <20250416053213.921444-5-dmukhin@ford.com> <alpine.DEB.2.22.394.2504161708470.8008@ubuntu-linux-20-04-desktop>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: e7708f719da3f66dd05c457233d9c2e6f8219bba
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Wed, Apr 16, 2025 at 05:11:51PM -0700, Stefano Stabellini wrote:
> On Wed, 16 Apr 2025, dmkhn@proton.me wrote:
> > From: Denis Mukhin <dmukhin@ford.com>
> >
> > Introduce new CI job to run x86 XTF argo test under QEMU to smoke test =
argo
> > feature functionality in upstream CI.
> >
> > The new job lead time is ~30s, limit max job duration to 60s.
> >
> > Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> > ---
> >  automation/gitlab-ci/test.yaml        | 9 +++++++++
> >  automation/scripts/include/xtf-runner | 7 +++++++
> >  2 files changed, 16 insertions(+)
> >
> > diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test=
.yaml
> > index d6e4a0a622..9001efb45c 100644
> > --- a/automation/gitlab-ci/test.yaml
> > +++ b/automation/gitlab-ci/test.yaml
> > @@ -691,6 +691,15 @@ qemu-smoke-x86-64-gcc-efi:
> >    needs:
> >      - debian-12-x86_64-gcc-debug
> >
> > +qemu-xtf-argo-x86_64-gcc-debug:
> > +  extends: .qemu-smoke-x86-64
> > +  variables:
> > +    TEST_TIMEOUT_OVERRIDE: 60
> > +  script:
> > +    - ./automation/scripts/qemu-xtf.sh x86-64 pv64 argo 2>&1 | tee ${L=
OGFILE}
> > +  needs:
> > +    - alpine-3.18-gcc-debug
> > +
> >  qemu-smoke-riscv64-gcc:
> >    extends: .qemu-riscv64
> >    script:
> > diff --git a/automation/scripts/include/xtf-runner b/automation/scripts=
/include/xtf-runner
> > index 55b7b34b89..12470b3979 100644
> > --- a/automation/scripts/include/xtf-runner
> > +++ b/automation/scripts/include/xtf-runner
> > @@ -70,6 +70,9 @@ function xtf_build_cmdline()
> >      local xtf_variant=3D$1
> >      local xtf_name=3D$2
> >      declare -a cmdline=3D()
> > +    declare -A per_test_args=3D(
> > +        [argo]=3D"argo=3D1 mac-permissive=3D1"
> > +    )
> > +
> >      cmdline+=3D("loglvl=3Dall noreboot console_timestamps=3Dboot")
> >      cmdline+=3D("console=3D${XEN_CONSOLE}")
> > @@ -79,6 +82,10 @@ function xtf_build_cmdline()
> >          cmdline+=3D("dom0-iommu=3Dnone dom0=3Dpvh")
> >      fi
> >
> > +    if [[ -v per_test_args[${xtf_name}] ]]; then
> > +        cmdline+=3D("${per_test_args[${xtf_name}]}")
> > +    fi
> > +
>=20
> This is all within the same bash function so I think we could avoid
> using the per_test_args array and just do:
>=20
> if test "$xtf_name"
> then
>     cmdline+=3D("argo=3D1 mac-permissive=3D1")
> fi
>=20
> The indirection is not required as far as I can tell. I do realize it is
> a matter of taste and it works either way so I wouldn't insist.

Some XTFs may need special configuration.
I added this to be a placeholder for test-specific Xen run-time configurati=
on.

>=20
>=20
>=20
> >      export XEN_CMDLINE=3D"${cmdline[@]}"
> >  }
> >
> > --
> > 2.34.1
> >
> >



From xen-devel-bounces@lists.xenproject.org Thu Apr 17 18:41:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 18:41:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.958453.1351287 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5UAo-0007tX-NA; Thu, 17 Apr 2025 18:41:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 958453.1351287; Thu, 17 Apr 2025 18:41: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 1u5UAo-0007tQ-KW; Thu, 17 Apr 2025 18:41:18 +0000
Received: by outflank-mailman (input) for mailman id 958453;
 Thu, 17 Apr 2025 18:41: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=qaPY=XD=linuxfoundation.org=gregkh@srs-se1.protection.inumbo.net>)
 id 1u5UAm-0007rm-Th
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 18:41: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 8a4a893e-1bbb-11f0-9eb0-5ba50f476ded;
 Thu, 17 Apr 2025 20:41:15 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 3C0285C024A;
 Thu, 17 Apr 2025 18:38:56 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9A966C4CEE4;
 Thu, 17 Apr 2025 18:41: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: 8a4a893e-1bbb-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org;
	s=korg; t=1744915273;
	bh=rKoW00D4NBEEOYkxUCE4vnUn5yxrioEpk/o3/TB3uAo=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=awdEebjjlmpEsa6sp62s+7Q3BzcI8BCogxDTARxRHcWlPwT3wddQ/1gkAAkp/5X8C
	 0nA2MYbqrJ7ylG9PXuo9Ii32LfOZ8FgslzklSs7cz4/JCfQAMbsR/LB5qlvKnslucY
	 qID6CDLwOdWLNy6fKVdrRpReX8bcldTwBLFeHaVA=
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: stable@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	patches@lists.linux.dev,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	xen-devel@lists.xenproject.org,
	Kees Cook <kees@kernel.org>,
	Sasha Levin <sashal@kernel.org>
Subject: [PATCH 6.12 057/393] xen/mcelog: Add __nonstring annotations for unterminated strings
Date: Thu, 17 Apr 2025 19:47:46 +0200
Message-ID: <20250417175109.882985709@linuxfoundation.org>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250417175107.546547190@linuxfoundation.org>
References: <20250417175107.546547190@linuxfoundation.org>
User-Agent: quilt/0.68
X-stable: review
X-Patchwork-Hint: ignore
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

6.12-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Kees Cook <kees@kernel.org>

[ Upstream commit 1c3dfc7c6b0f551fdca3f7c1f1e4c73be8adb17d ]

When a character array without a terminating NUL character has a static
initializer, GCC 15's -Wunterminated-string-initialization will only
warn if the array lacks the "nonstring" attribute[1]. Mark the arrays
with __nonstring to and correctly identify the char array as "not a C
string" and thereby eliminate the warning.

Link: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117178 [1]
Cc: Juergen Gross <jgross@suse.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>
Cc: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Cc: xen-devel@lists.xenproject.org
Signed-off-by: Kees Cook <kees@kernel.org>
Acked-by: Juergen Gross <jgross@suse.com>
Message-ID: <20250310222234.work.473-kees@kernel.org>
Signed-off-by: Juergen Gross <jgross@suse.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 include/xen/interface/xen-mca.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/xen/interface/xen-mca.h b/include/xen/interface/xen-mca.h
index 464aa6b3a5f92..1c9afbe8cc260 100644
--- a/include/xen/interface/xen-mca.h
+++ b/include/xen/interface/xen-mca.h
@@ -372,7 +372,7 @@ struct xen_mce {
 #define XEN_MCE_LOG_LEN 32
 
 struct xen_mce_log {
-	char signature[12]; /* "MACHINECHECK" */
+	char signature[12] __nonstring; /* "MACHINECHECK" */
 	unsigned len;	    /* = XEN_MCE_LOG_LEN */
 	unsigned next;
 	unsigned flags;
-- 
2.39.5





From xen-devel-bounces@lists.xenproject.org Thu Apr 17 18:50:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 18:50:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.958475.1351297 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5UJv-0001Bm-G2; Thu, 17 Apr 2025 18:50:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 958475.1351297; Thu, 17 Apr 2025 18:50: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 1u5UJv-0001Bf-Cm; Thu, 17 Apr 2025 18:50:43 +0000
Received: by outflank-mailman (input) for mailman id 958475;
 Thu, 17 Apr 2025 18: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=EnA5=XD=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u5UJt-0001AH-HW
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 18:50:41 +0000
Received: from mail-24417.protonmail.ch (mail-24417.protonmail.ch
 [109.224.244.17]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id db122933-1bbc-11f0-9ffb-bf95429c2676;
 Thu, 17 Apr 2025 20:50:39 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: db122933-1bbc-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1744915837; x=1745175037;
	bh=bqHu9y19rH22jiwnGmWmtb+SFPcnvbPelqrCs5eVtX8=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=K8Jg2LiSpvdTLHFlQj0MS2j52Lt/bBVCe9zfCRx+RY61GTVi8sfOurwZTrDbSDAjP
	 pvv3I7ZLL5aPR2xe52kGcXrgYQaGAwgZhVgMYX5dYLCJcrxYCVwMvk9ReDA9HED7fT
	 ZX0cbVcckIXB2ks+PvBP3DMWvc+aF/OtXqHSAfZ43Ge9XEcLMhqtIHXnktGpNljEHP
	 ASQEYyJcWcM0IXBwjV4UtrRkEJhZ9kQdiLieeegb8YRTlIMEdHiRJskYTS1dim+G+G
	 FoCCyCgAgA331bxasq/NdfY8TdbpSQYHfqM9l2eXnuFkXaxtTE7ruhotYhWqhBr8y0
	 LTZMjBJYTYWeg==
Date: Thu, 17 Apr 2025 18:50:32 +0000
To: Stefano Stabellini <sstabellini@kernel.org>
From: dmkhn@proton.me
Cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com, cardoe@cardoe.com, marmarek@invisiblethingslab.com, dmukhin@ford.com
Subject: Re: [PATCH v1 1/4] CI: unify x86 XTF test runner
Message-ID: <aAFNdAaBz7guR9iA@kraken>
In-Reply-To: <alpine.DEB.2.22.394.2504161609010.8008@ubuntu-linux-20-04-desktop>
References: <20250416053213.921444-1-dmukhin@ford.com> <20250416053213.921444-2-dmukhin@ford.com> <alpine.DEB.2.22.394.2504161609010.8008@ubuntu-linux-20-04-desktop>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 9cf1bfdf9fdb7c58b3b895ebfaf94b20a8b3d6bb
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Wed, Apr 16, 2025 at 05:16:49PM -0700, Stefano Stabellini wrote:
> On Wed, 16 Apr 2025, dmkhn@proton.me wrote:
> > From: Denis Mukhin <dmukhin@ford.com>
> >
> > Add test runner script qemu-xtf.sh which is allows any XTF x86 test to =
be
> > easily executed. Test runner is invoked from the qemu-smoke* jobs with =
the
> > hardcoded parameters.
> >
> > Each x86 XTF job lead time is reduced a bit since only the test-related=
 code
> > is built, not the entire XTF project.
> >
> > Add .gitignore to avoid committing test artifacts by mistake.
> >
> > Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> > ---
> >  automation/gitlab-ci/test.yaml                |   8 +-
> >  automation/scripts/.gitignore                 |   6 +
> >  .../scripts/include/configs/xtf-x86-64-config |   0
> >  automation/scripts/include/xtf-runner         | 134 ++++++++++++++++++
> >  automation/scripts/include/xtf-x86-64         |  31 ++++
> >  automation/scripts/qemu-smoke-x86-64.sh       |  26 ----
> >  automation/scripts/qemu-xtf.sh                |  26 ++++
> >  7 files changed, 201 insertions(+), 30 deletions(-)
> >  create mode 100644 automation/scripts/.gitignore
> >  create mode 100644 automation/scripts/include/configs/xtf-x86-64-confi=
g
> >  create mode 100644 automation/scripts/include/xtf-runner
> >  create mode 100644 automation/scripts/include/xtf-x86-64
> >  delete mode 100755 automation/scripts/qemu-smoke-x86-64.sh
> >  create mode 100755 automation/scripts/qemu-xtf.sh
> >
> > diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test=
.yaml
> > index 5ce445b78f..3adc841335 100644
> > --- a/automation/gitlab-ci/test.yaml
> > +++ b/automation/gitlab-ci/test.yaml
> > @@ -659,28 +659,28 @@ qemu-alpine-x86_64-gcc:
> >  qemu-smoke-x86-64-gcc:
> >    extends: .qemu-smoke-x86-64
> >    script:
> > -    - ./automation/scripts/qemu-smoke-x86-64.sh pv 2>&1 | tee ${LOGFIL=
E}
> > +    - ./automation/scripts/qemu-xtf.sh x86-64 pv64 example 2>&1 | tee =
${LOGFILE}
> >    needs:
> >      - 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 ${LOGFIL=
E}
> > +    - ./automation/scripts/qemu-xtf.sh x86-64 pv64 example 2>&1 | tee =
${LOGFILE}
> >    needs:
> >      - 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 ${LOGFI=
LE}
> > +    - ./automation/scripts/qemu-xtf.sh x86-64 hvm64 example 2>&1 | tee=
 ${LOGFILE}
> >    needs:
> >      - 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 ${LOGFI=
LE}
> > +    - ./automation/scripts/qemu-xtf.sh x86-64 hvm64 example 2>&1 | tee=
 ${LOGFILE}
> >    needs:
> >      - debian-12-x86_64-clang-debug
> >
> > diff --git a/automation/scripts/.gitignore b/automation/scripts/.gitign=
ore
> > new file mode 100644
> > index 0000000000..2f2d6e1ebd
> > --- /dev/null
> > +++ b/automation/scripts/.gitignore
> > @@ -0,0 +1,6 @@
> > +!include
> > +
> > +binaries
> > +smoke.serial
> > +xen
> > +xtf*/
>=20
> I am not sure this works as intended: I thought the paths are relative
> to the location of the .gitignore file, but I could be wrong.

git allows .gitignore at any level in the source tree so that lenghty
paths could be avoided.

>=20
>=20
> > diff --git a/automation/scripts/include/configs/xtf-x86-64-config b/aut=
omation/scripts/include/configs/xtf-x86-64-config
> > new file mode 100644
> > index 0000000000..e69de29bb2
> > diff --git a/automation/scripts/include/xtf-runner b/automation/scripts=
/include/xtf-runner
> > new file mode 100644
> > index 0000000000..55b7b34b89
> > --- /dev/null
> > +++ b/automation/scripts/include/xtf-runner
> > @@ -0,0 +1,134 @@
> > +#!/bin/bash
> > +#
> > +# XTF test utilities.
> > +#
> > +# Environment variables:
> > +#   BOOT_MSG: Expected boot message
> > +#   FW_PREFIX: Firmware images path including '/' at the end
> > +#   PASSED: XTF test printout in case of a pass
> > +#   QEMU_PREFIX: QEMU path including '/' at the end
> > +#   TEST_LOG: Output log file
> > +#   UBOOT_CMD: U-Boot command line
> > +#   WORKDIR: Test working directory
> > +#   XEN_BINARY: Xen binary location
> > +#   XEN_CONSOLE: Xen console device name
> > +#   XTF_SRC_CONFIG: XTF config file
> > +#   XTF_SRC_BRANCH: XTF branch
> > +#   XTF_SRC_URI: XTF source code URI
> > +
> > +function die()
> > +{
> > +    set +x
> > +    echo "FATAL: $*" >&2
> > +    exit 1
> > +}
> > +
> > +[ -z "$TOP" ] && die "\$TOP is not set"
> > +
> > +# Output log file
> > +TEST_LOG=3D"${TEST_LOG:-smoke.serial}"
> > +# XTF test printout in case of a pass
> > +PASSED=3D"${PASSED:-Test result: SUCCESS}"
> > +# Expected boot message
> > +BOOT_MSG=3D"${BOOT_MSG:-Latest ChangeSet: }"
> > +# Test working directory
> > +WORKDIR=3D"${WORKDIR:-binaries}"
> > +# XTF source code
> > +XTF_SRC_CONFIG=3D"${XTF_CONFIG:-${TOP}/include/configs/xtf-${ARCH}-con=
fig}"
>=20
> Should this be  XTF_SRC_CONFIG=3D"${XTF_SRC_CONFIG:-  ?

Thanks for the catch!

>=20
>=20
> > +# Build an XTF test binary.
> > +# $1 Test variant.
> > +# $2 Test name.
> > +function xtf_build_binary()
> > +{
> > +    local xtf_variant=3D$1
> > +    local xtf_name=3D$2
> > +    local xtf_dir=3D"xtf-${ARCH}"
> > +
> > +    # Crude check for local testing
> > +    if [ ! -d ${xtf_dir}/.git ]; then
> > +        git clone ${XTF_SRC_URI} ${xtf_dir} -b ${XTF_SRC_BRANCH}
> > +    fi
> > +
> > +    make \
> > +        -C ${xtf_dir} \
> > +        -j$(nproc) \
> > +        $(tr '\n' ' ' < ${XTF_SRC_CONFIG}) \
> > +        TESTS=3Dtests/${xtf_name}
> > +
> > +    export XTF_NAME=3D"${xtf_name}"
> > +    export XTF_VARIANT=3D"${xtf_variant}"
> > +    export XTF_WORKDIR=3D"$(readlink -f ${xtf_dir})"
> > +    export XTF_BINARY=3D"${XTF_WORKDIR}/tests/${xtf_name}/test-${xtf_v=
ariant}-${xtf_name}"
> > +}
> > +
> > +# Build Xen command line for running an XTF test.
> > +# $1 Test variant.
> > +# $2 Test name.
> > +function xtf_build_cmdline()
> > +{
> > +    local xtf_variant=3D$1
> > +    local xtf_name=3D$2
> > +    declare -a cmdline=3D()
> > +
> > +    cmdline+=3D("loglvl=3Dall noreboot console_timestamps=3Dboot")
> > +    cmdline+=3D("console=3D${XEN_CONSOLE}")
> > +
> > +    # NB: OK to have hvm64, which is x86-only variant
> > +    if [[ $xtf_variant =3D=3D "hvm64" ]]; then
> > +        cmdline+=3D("dom0-iommu=3Dnone dom0=3Dpvh")
> > +    fi
> > +
> > +    export XEN_CMDLINE=3D"${cmdline[@]}"
> > +}
> > +
> > +# Build an XTF test environment.
> > +# $1 Test variant.
> > +# $2 Test name.
> > +function xtf_build_test()
> > +{
> > +    local v=3D$1
> > +    local xtf_name=3D$2
> > +    local xtf_variant=3D""
> > +
> > +    for x in ${XTF_SRC_VARIANTS}; do
> > +        if [[ "${x}" =3D=3D "${v}" ]]; then
> > +            xtf_variant=3D${v}
> > +            break
> > +        fi
> > +    done
> > +    if [[ -z $xtf_variant ]]; then
> > +        die "unsupported test variant '$1', supported variants: ${XTF_=
SRC_VARIANTS}"
> > +    fi
> > +
> > +    xtf_build_binary ${xtf_variant} ${xtf_name}
> > +    xtf_build_cmdline ${xtf_variant} ${xtf_name}
> > +}
> > +
> > +# Execute an XTF test.
> > +function xtf_run_test()
> > +{
> > +    rm -f ${TEST_LOG}
> > +    export BOOT_MSG PASSED TEST_CMD TEST_LOG UBOOT_CMD
> > +    ${TOP}/console.exp | sed 's/\r\+$//'
> > +}
> > +
> > +# Setup environment and run an XTF test.
> > +# $1 Test variant.
> > +# $2 Test name.
> > +function xtf_test()
> > +{
> > +    # Out: FW_*, QEMU_*, XEN_{BINARY,CONSOLE}, XTF_SRC_*
> > +    xtf_arch_prepare
> > +
> > +    # In: XTF_SRC_*
> > +    # OUt: XTF_{BINARY,NAME,VARIANT,WORKDIR} and XEN_CMDLINE
> > +    xtf_build_test $@
> > +
> > +    # In: FW_*, QEMU_*, XTF_*, XEN_*
> > +    # Out: BOOT_MSG, PASSED, TEST_{CMD,LOG}, UBOOT_CMD
> > +    xtf_arch_setup
> > +
> > +    # In: BOOT_MSG, PASSED, TEST_{CMD,LOG}, UBOOT_CMD
> > +    xtf_run_test
> > +}
> > diff --git a/automation/scripts/include/xtf-x86-64 b/automation/scripts=
/include/xtf-x86-64
> > new file mode 100644
> > index 0000000000..edddf18b38
> > --- /dev/null
> > +++ b/automation/scripts/include/xtf-x86-64
> > @@ -0,0 +1,31 @@
> > +#!/bin/bash
> > +#
> > +# XTF test utilities (x86_64).
> > +#
> > +
> > +# Arch-specific environment overrides.
> > +function xtf_arch_prepare()
> > +{
> > +    export FW_PREFIX=3D"${FW_PREFIX:-}"
> > +    export QEMU_PREFIX=3D"${QEMU_PREFIX:-}"
>=20
> It looks like QEMU_PREFIX is only used within this file (and other
> similar files in later patches). If so, maybe for the sake of reducing
> global variables and variables in general we could get rid of
> QEMU_PREFIX.

Turned out that Arm and x86 CI jobs use different paths to QEMU binaries.
dev host may have some other location, that's why I parameterized QEMU
location.

>=20
>=20
> > +    export XEN_BINARY=3D"${XEN_BINARY:-${WORKDIR}/xen}"
> > +    export XEN_CONSOLE=3D"${XEN_CONSOLE:-com1}"
>=20
> Instead of XEN_CONSOLE, I'd suggest to have an arch-specific variable
> for Xen command line options where we can put the console as well as
> other things. However, it is also totally fine as is.

I initially did that, but then there's a big portion of command line parame=
ters
which is shared across all supported architectures, with console=3D pointin=
g to
arch-specific console device.

I will add arch-specific variable and drop XEN_CONSOLE.

>=20
> In fact, I think you went above and beyond in terms of generic
> abstractions, and I think it would have been OK to go with fewer
> variables, and more ad-hoc custom code.
>=20
>=20
> > +    export XTF_SRC_BRANCH=3D"${XTF_SRC_BRANCH:-master}"
> > +    export XTF_SRC_URI=3D"${XTF_SRC_URI:-https://xenbits.xen.org/git-h=
ttp/xtf.git}"
> > +    export XTF_SRC_VARIANTS=3D"hvm64 pv64"
> > +}
> > +
> > +# Perform arch-specific XTF environment setup.
> > +function xtf_arch_setup()
> > +{
> > +    export TEST_CMD=3D"${QEMU_PREFIX}qemu-system-x86_64 \
> > +        -no-reboot \
> > +        -nographic \
> > +        -monitor none \
> > +        -serial stdio \
> > +        -m 512 \
> > +        -kernel ${XEN_BINARY} \
> > +        -initrd ${XTF_BINARY} \
> > +        -append \"${XEN_CMDLINE}\" \
> > +    "
> > +}
> > diff --git a/automation/scripts/qemu-smoke-x86-64.sh b/automation/scrip=
ts/qemu-smoke-x86-64.sh
> > deleted file mode 100755
> > index da0c26cc2f..0000000000
> > --- a/automation/scripts/qemu-smoke-x86-64.sh
> > +++ /dev/null
> > @@ -1,26 +0,0 @@
> > -#!/bin/bash
> > -
> > -set -ex -o pipefail
> > -
> > -# variant should be either pv or pvh
> > -variant=3D$1
> > -
> > -# Clone and build XTF
> > -git clone https://xenbits.xen.org/git-http/xtf.git
> > -cd xtf && make -j$(nproc) && cd -
> > -
> > -case $variant in
> > -    pvh) k=3Dtest-hvm64-example    extra=3D"dom0-iommu=3Dnone dom0=3Dp=
vh" ;;
> > -    *)   k=3Dtest-pv64-example     extra=3D ;;
> > -esac
> > -
> > -rm -f smoke.serial
> > -export TEST_CMD=3D"qemu-system-x86_64 -nographic -kernel binaries/xen =
\
> > -        -initrd xtf/tests/example/$k \
> > -        -append \"loglvl=3Dall console=3Dcom1 noreboot console_timesta=
mps=3Dboot $extra\" \
> > -        -m 512 -monitor none -serial stdio"
> > -
> > -export TEST_LOG=3D"smoke.serial"
> > -export PASSED=3D"Test result: SUCCESS"
> > -
> > -./automation/scripts/console.exp | sed 's/\r\+$//'
> > diff --git a/automation/scripts/qemu-xtf.sh b/automation/scripts/qemu-x=
tf.sh
> > new file mode 100755
> > index 0000000000..2e16d4aece
> > --- /dev/null
> > +++ b/automation/scripts/qemu-xtf.sh
> > @@ -0,0 +1,26 @@
> > +#!/bin/bash
> > +#
> > +# XTF test runner (QEMU).
> > +#
> > +
> > +set -e -o pipefail
> > +
> > +if [ $# -lt 3 ]; then
> > +    echo "Usage: $(basename $0) ARCH XTF-VARIANT XTF-NAME"
> > +    exit 1
> > +fi
> > +
> > +export ARCH=3D"$1"
> > +shift
> > +
> > +export TOP=3D"$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd=
)"
> > +if [ ! -f "${TOP}/include/xtf-${ARCH}" ]; then
> > +    echo "unsupported architecture '${ARCH}'" >&2
> > +    exit 1
> > +fi
>=20
> This seems a bit complex.. maybe we can assume that we are in xen.git/ ?

Will do that.


>=20
>=20
> > +set -x
> > +source ${TOP}/include/xtf-runner
> > +source ${TOP}/include/xtf-${ARCH}
>=20
> So here we could do:
>=20
> source automation/scripts/include/xtf-runner
>=20
> ? Or is it important to be able to detect and calculate the directory?
> If so, why not use TOP=3D$(pwd) or TOP=3D${PWD} or TOP=3D$(dirname "$0")?
> By the way, if we need a variable for the top directory I would call it
> XEN_ROOT instead of TOP.
>=20
> I see the patches are using both TOP and WORKDIR, maybe we can get rid
> of one of them? This is only a matter of taste but I think it would be
> simpler with fewer variables and most of  the others look unavoidable.

I will try to eliminate TOP uses.

>=20
> Everything else looks OK to me.
>=20
>=20
> > +xtf_test $@
> > --
> > 2.34.1
> >
> >



From xen-devel-bounces@lists.xenproject.org Thu Apr 17 18:51:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 18:51:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.958482.1351306 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5UKR-0001dh-N2; Thu, 17 Apr 2025 18:51:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 958482.1351306; Thu, 17 Apr 2025 18:51:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5UKR-0001da-JZ; Thu, 17 Apr 2025 18:51:15 +0000
Received: by outflank-mailman (input) for mailman id 958482;
 Thu, 17 Apr 2025 18:51: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=EnA5=XD=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u5UKP-0001AH-NZ
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 18:51:13 +0000
Received: from mail-10628.protonmail.ch (mail-10628.protonmail.ch
 [79.135.106.28]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ee7334df-1bbc-11f0-9ffb-bf95429c2676;
 Thu, 17 Apr 2025 20:51:11 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ee7334df-1bbc-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1744915870; x=1745175070;
	bh=fLWzeNXOQKyBjYOSvSxIMxKbfsoO66cF462stcAfBp0=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=LDxRc0Dfyr8rRwiV5juQ9AfBssDk6h89s39+xCayF32IZSTfrJnujPHs7/GtoqOXW
	 +DRrI0khpIORjSrys57fsLrNdb+uPylKzFcQ8+c8wZ6NjBxoFwObP+AiZJIIVB9DFD
	 AFbnFk2HFms4eGzfYxNxKRqbXfmrKyZKB/gBODcyiw0HvkQsDZwP7GdgWjZ9GCTYcE
	 A03UB8yx/XzDNLK1Cfjh3D3gakNVA+r8YIdwWxguEWov3JgWeHKYZllhftWqH9mrPu
	 p3LeW92nut6SgcayizsjUEEcrYdERAoApEqWaVr5FnpeRlGdB6+IqZF39VQmdsHH+B
	 Uw/la3SeEarSQ==
Date: Thu, 17 Apr 2025 18:51:05 +0000
To: Stefano Stabellini <sstabellini@kernel.org>
From: dmkhn@proton.me
Cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com, cardoe@cardoe.com, marmarek@invisiblethingslab.com, dmukhin@ford.com
Subject: Re: [PATCH v1 3/4] CI: switch arm64 XTF test runner to qemu-xtf.sh
Message-ID: <aAFNluwjIrVS7Mxg@kraken>
In-Reply-To: <alpine.DEB.2.22.394.2504161641250.8008@ubuntu-linux-20-04-desktop>
References: <20250416053213.921444-1-dmukhin@ford.com> <20250416053213.921444-4-dmukhin@ford.com> <alpine.DEB.2.22.394.2504161641250.8008@ubuntu-linux-20-04-desktop>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 1f0fc63dafd525e3e3703530191d4722f3c4c89a
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Wed, Apr 16, 2025 at 05:12:55PM -0700, Stefano Stabellini wrote:
> On Wed, 16 Apr 2025, dmkhn@proton.me wrote:
> > From: Denis Mukhin <dmukhin@ford.com>
> >
> > Hook arm64 QEMU configuration to qemu-xtf.sh and use new script in arm6=
4 CI
> > jobs.
> >
> > Signed-off-by: Denis Mukhin <dmukhin@ford.com>
>=20
> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>

Thanks!

>=20
>=20
> > ---
> >  automation/gitlab-ci/test.yaml                |  4 +-
> >  automation/scripts/.gitignore                 |  3 +
> >  .../scripts/include/configs/xtf-arm64-config  |  2 +
> >  automation/scripts/include/xtf-arm64          | 81 +++++++++++++++++++
> >  automation/scripts/qemu-xtf-dom0less-arm64.sh | 68 ----------------
> >  5 files changed, 88 insertions(+), 70 deletions(-)
> >  create mode 100644 automation/scripts/include/configs/xtf-arm64-config
> >  create mode 100644 automation/scripts/include/xtf-arm64
> >  delete mode 100755 automation/scripts/qemu-xtf-dom0less-arm64.sh
> >
> > diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test=
.yaml
> > index ca1e4eb528..d6e4a0a622 100644
> > --- a/automation/gitlab-ci/test.yaml
> > +++ b/automation/gitlab-ci/test.yaml
> > @@ -571,7 +571,7 @@ qemu-smoke-dom0less-arm64-gcc-debug-earlyprintk:
> >  qemu-xtf-dom0less-arm64-gcc-hyp-xen-version:
> >    extends: .qemu-arm64
> >    script:
> > -    - ./automation/scripts/qemu-xtf-dom0less-arm64.sh hyp-xen-version =
2>&1 | tee ${LOGFILE}
> > +    - ./automation/scripts/qemu-xtf.sh arm64 mmu64le hyp-xen-version 2=
>&1 | tee ${LOGFILE}
> >    needs:
> >      - alpine-3.18-gcc-arm64
> >      - qemu-system-aarch64-6.0.0-arm64-export
> > @@ -579,7 +579,7 @@ qemu-xtf-dom0less-arm64-gcc-hyp-xen-version:
> >  qemu-xtf-dom0less-arm64-gcc-debug-hyp-xen-version:
> >    extends: .qemu-arm64
> >    script:
> > -    - ./automation/scripts/qemu-xtf-dom0less-arm64.sh hyp-xen-version =
2>&1 | tee ${LOGFILE}
> > +    - ./automation/scripts/qemu-xtf.sh arm64 mmu64le hyp-xen-version 2=
>&1 | tee ${LOGFILE}
> >    needs:
> >      - alpine-3.18-gcc-debug-arm64
> >      - qemu-system-aarch64-6.0.0-arm64-export
> > diff --git a/automation/scripts/.gitignore b/automation/scripts/.gitign=
ore
> > index 2f2d6e1ebd..f853da4d89 100644
> > --- a/automation/scripts/.gitignore
> > +++ b/automation/scripts/.gitignore
> > @@ -1,6 +1,9 @@
> >  !include
> >
> >  binaries
> > +imagebuilder
> >  smoke.serial
> >  xen
> >  xtf*/
> > +
> > +*.rom
> > diff --git a/automation/scripts/include/configs/xtf-arm64-config b/auto=
mation/scripts/include/configs/xtf-arm64-config
> > new file mode 100644
> > index 0000000000..9942740927
> > --- /dev/null
> > +++ b/automation/scripts/include/configs/xtf-arm64-config
> > @@ -0,0 +1,2 @@
> > +CONFIG_GICV2=3Dy
> > +CONFIG_SBSA_UART=3Dy
> > diff --git a/automation/scripts/include/xtf-arm64 b/automation/scripts/=
include/xtf-arm64
> > new file mode 100644
> > index 0000000000..68487fe617
> > --- /dev/null
> > +++ b/automation/scripts/include/xtf-arm64
> > @@ -0,0 +1,81 @@
> > +#!/bin/bash
> > +#
> > +# XTF test utilities (arm64).
> > +#
> > +
> > +# Arch-specific environment overrides.
> > +function xtf_arch_prepare()
> > +{
> > +    export FW_PREFIX=3D"${FW_PREFIX:-/usr/lib/u-boot/qemu_arm64/}"
> > +    export QEMU_PREFIX=3D"${QEMU_PREFIX:-${WORKDIR}/}"
> > +    export XEN_BINARY=3D"${XEN_BINARY:-${WORKDIR}/xen}"
> > +    export XEN_CONSOLE=3D"${XEN_CONSOLE:-dtuart}"
> > +    export XTF_SRC_BRANCH=3D"${XTF_SRC_BRANCH:-xtf-arm}"
> > +    export XTF_SRC_URI=3D"${XTF_SRC_URI:-https://gitlab.com/xen-projec=
t/fusa/xtf.git}"
> > +    export XTF_SRC_VARIANTS=3D"mmu64le"
> > +}
> > +
> > +# Perform arch-specific XTF environment setup.
> > +function xtf_arch_setup()
> > +{
> > +    # QEMU looks for "efi-virtio.rom" even if it is unneeded
> > +    curl -fsSLO https://github.com/qemu/qemu/raw/v5.2.0/pc-bios/efi-vi=
rtio.rom
> > +
> > +    # Crude check for local testing
> > +    if [ ! -d imagebuilder/.git ]; then
> > +        git clone --depth 1 https://gitlab.com/xen-project/imagebuilde=
r.git
> > +    fi
> > +
> > +    cat > ${WORKDIR}/config <<EOF
> > +MEMORY_START=3D"0x40000000"
> > +MEMORY_END=3D"0xC0000000"
> > +
> > +XEN=3D"xen"
> > +DEVICE_TREE=3D"virt-gicv2.dtb"
> > +
> > +XEN_CMD=3D"${XEN_CMDLINE}"
> > +
> > +DOMU_KERNEL[0]=3D"xtf-test"
> > +DOMU_MEM[0]=3D"128"
> > +
> > +NUM_DOMUS=3D1
> > +
> > +LOAD_CMD=3D"tftpb"
> > +UBOOT_SOURCE=3D"boot.source"
> > +UBOOT_SCRIPT=3D"boot.scr"
> > +EOF
> > +    cp ${XTF_BINARY} ${WORKDIR}/xtf-test
> > +
> > +    # Generate virt-gicv2.dtb
> > +    ${WORKDIR}/qemu-system-aarch64 \
> > +        -machine virtualization=3Dtrue \
> > +        -cpu cortex-a57 \
> > +        -machine type=3Dvirt \
> > +        -m 2048 \
> > +        -smp 2 \
> > +        -display none \
> > +        -machine dumpdtb=3D${WORKDIR}/virt-gicv2.dtb
> > +
> > +    # Generate U-Boot environment
> > +    bash -x imagebuilder/scripts/uboot-script-gen \
> > +        -t tftp \
> > +        -d ${WORKDIR}/ \
> > +        -c ${WORKDIR}/config
> > +
> > +    export TEST_CMD=3D"${QEMU_PREFIX}qemu-system-aarch64 \
> > +        -machine virtualization=3Dtrue \
> > +        -cpu cortex-a57 \
> > +        -machine type=3Dvirt \
> > +        -no-reboot \
> > +        -nographic \
> > +        -monitor none \
> > +        -serial stdio \
> > +        -m 2048 \
> > +        -smp 2 \
> > +        -device virtio-net-pci,netdev=3Dn0 \
> > +        -netdev user,id=3Dn0,tftp=3D${WORKDIR} \
> > +        -bios ${FW_PREFIX}u-boot.bin \
> > +    "
> > +
> > +    export UBOOT_CMD=3D"virtio scan; dhcp; tftpb 0x40000000 boot.scr; =
source 0x40000000"
> > +}
> > diff --git a/automation/scripts/qemu-xtf-dom0less-arm64.sh b/automation=
/scripts/qemu-xtf-dom0less-arm64.sh
> > deleted file mode 100755
> > index 436f460c3c..0000000000
> > --- a/automation/scripts/qemu-xtf-dom0less-arm64.sh
> > +++ /dev/null
> > @@ -1,68 +0,0 @@
> > -#!/bin/bash
> > -
> > -set -ex -o pipefail
> > -
> > -# Name of the XTF test
> > -xtf_test=3D$1
> > -
> > -# Message returned by XTF in case of success
> > -passed=3D"Test result: SUCCESS"
> > -
> > -# XXX QEMU looks for "efi-virtio.rom" even if it is unneeded
> > -curl -fsSLO https://github.com/qemu/qemu/raw/v5.2.0/pc-bios/efi-virtio=
.rom
> > -./binaries/qemu-system-aarch64 \
> > -   -machine virtualization=3Dtrue \
> > -   -cpu cortex-a57 -machine type=3Dvirt \
> > -   -m 2048 -smp 2 -display none \
> > -   -machine dumpdtb=3Dbinaries/virt-gicv2.dtb
> > -
> > -# XTF
> > -# Build a single XTF test passed as a first parameter to the script.
> > -# Build XTF with GICv2 support to match Qemu configuration and with SB=
SA UART
> > -# support, so that the test will use an emulated UART for printing mes=
sages.
> > -# This will allow us to run the test on both debug and non-debug Xen b=
uilds.
> > -rm -rf xtf
> > -git clone https://gitlab.com/xen-project/fusa/xtf.git -b xtf-arm
> > -make -C xtf TESTS=3Dtests/${xtf_test} CONFIG_SBSA_UART=3Dy CONFIG_GICV=
2=3Dy -j$(nproc)
> > -cp xtf/tests/${xtf_test}/test-mmu64le-${xtf_test} binaries/xtf-test
> > -
> > -# ImageBuilder
> > -echo 'MEMORY_START=3D"0x40000000"
> > -MEMORY_END=3D"0xC0000000"
> > -
> > -XEN=3D"xen"
> > -DEVICE_TREE=3D"virt-gicv2.dtb"
> > -
> > -XEN_CMD=3D"console=3Ddtuart console_timestamps=3Dboot"
> > -
> > -DOMU_KERNEL[0]=3D"xtf-test"
> > -DOMU_MEM[0]=3D"128"
> > -
> > -NUM_DOMUS=3D1
> > -
> > -LOAD_CMD=3D"tftpb"
> > -UBOOT_SOURCE=3D"boot.source"
> > -UBOOT_SCRIPT=3D"boot.scr"' > binaries/config
> > -
> > -rm -rf imagebuilder
> > -git clone --depth 1 https://gitlab.com/xen-project/imagebuilder.git
> > -bash imagebuilder/scripts/uboot-script-gen -t tftp -d binaries/ -c bin=
aries/config
> > -
> > -# Run the test
> > -rm -f smoke.serial
> > -export TEST_CMD=3D"./binaries/qemu-system-aarch64 \
> > -    -machine virtualization=3Dtrue \
> > -    -cpu cortex-a57 -machine type=3Dvirt \
> > -    -m 2048 -monitor none -serial stdio \
> > -    -smp 2 \
> > -    -no-reboot \
> > -    -device virtio-net-pci,netdev=3Dn0 \
> > -    -netdev user,id=3Dn0,tftp=3Dbinaries \
> > -    -bios /usr/lib/u-boot/qemu_arm64/u-boot.bin"
> > -
> > -export UBOOT_CMD=3D"virtio scan; dhcp; tftpb 0x40000000 boot.scr; sour=
ce 0x40000000"
> > -export BOOT_MSG=3D"Latest ChangeSet: "
> > -export TEST_LOG=3D"smoke.serial"
> > -export PASSED=3D"${passed}"
> > -
> > -./automation/scripts/console.exp | sed 's/\r\+$//'
> > --
> > 2.34.1
> >
> >



From xen-devel-bounces@lists.xenproject.org Thu Apr 17 18:56:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 18:56:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.958501.1351316 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5UPc-0002zT-DP; Thu, 17 Apr 2025 18:56:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 958501.1351316; Thu, 17 Apr 2025 18: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 1u5UPc-0002zM-Aq; Thu, 17 Apr 2025 18:56:36 +0000
Received: by outflank-mailman (input) for mailman id 958501;
 Thu, 17 Apr 2025 18: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=UKmA=XD=kernel.org=pr-tracker-bot@srs-se1.protection.inumbo.net>)
 id 1u5UPb-0002zG-ON
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 18:56:35 +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 ae9ea6ff-1bbd-11f0-9eb0-5ba50f476ded;
 Thu, 17 Apr 2025 20:56:34 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by nyc.source.kernel.org (Postfix) with ESMTP id 5EE77A49768;
 Thu, 17 Apr 2025 18:51:05 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 572BDC4CEE4;
 Thu, 17 Apr 2025 18:56:33 +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
 ADDD1380AAEB; Thu, 17 Apr 2025 18:57: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: ae9ea6ff-1bbd-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1744916193;
	bh=2WiSBdqR2jEursVoeXUuiW1A74IIEdUo88Qk5TSEpsM=;
	h=Subject:From:In-Reply-To:References:Date:To:Cc:From;
	b=f93FjgV8wfhlhniI48DRpxfaP7ZahncidpZgk2zv8LOm5XZ3jyPycnnNx4LVctFFf
	 h5g6jzD7fvhOBRlKVksGtkw5C31V8/d4LSy6IWsTX7cefBXn9x7JLthQlUiUaRg9iT
	 0s2brjGH7p3jcTQNXIwRkXNZUa6ZNTlppveWLsXOOBFjmYq0T5m990dURv1adDfzyp
	 FBc7eA3KG/NJLMUPZXHwxV6EhOmdXdrke14iixDLg9YUMo/LRoz4vWjXTiRruS0Z1f
	 GmGHN2gZpySRCeYdv1FYHwY/FQtCyv8ouimMNQ23Kzgn1gJLiSPzwo2dRiFATv2/C3
	 vcBxaa+ANw/uA==
Subject: Re: [GIT PULL] xen: branch for v6.15-rc3
From: pr-tracker-bot@kernel.org
In-Reply-To: <20250417145831.23359-1-jgross@suse.com>
References: <20250417145831.23359-1-jgross@suse.com>
X-PR-Tracked-List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
X-PR-Tracked-Message-Id: <20250417145831.23359-1-jgross@suse.com>
X-PR-Tracked-Remote: git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip.git for-linus-6.15a-rc3-tag
X-PR-Tracked-Commit-Id: 715ad3e0ec2b13c27335749f27a5c9f0c0e84064
X-PR-Merge-Tree: torvalds/linux.git
X-PR-Merge-Refname: refs/heads/master
X-PR-Merge-Commit-Id: 85a9793e769e2af692d341a2b3935703eac65328
Message-Id: <174491623122.4184086.14165543907582591003.pr-tracker-bot@kernel.org>
Date: Thu, 17 Apr 2025 18:57:11 +0000
To: Juergen Gross <jgross@suse.com>
Cc: torvalds@linux-foundation.org, linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org, sstabellini@kernel.org

The pull request you sent on Thu, 17 Apr 2025 16:58:31 +0200:

> git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip.git for-linus-6.15a-rc3-tag

has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/85a9793e769e2af692d341a2b3935703eac65328

Thank you!

-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/prtracker.html


From xen-devel-bounces@lists.xenproject.org Thu Apr 17 20:09:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 17 Apr 2025 20:09:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.958519.1351327 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5VY2-0006M6-50; Thu, 17 Apr 2025 20:09:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 958519.1351327; Thu, 17 Apr 2025 20: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 1u5VY2-0006Lz-26; Thu, 17 Apr 2025 20:09:22 +0000
Received: by outflank-mailman (input) for mailman id 958519;
 Thu, 17 Apr 2025 20:09: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=eBjY=XD=raptorengineering.com=sanastasio@srs-se1.protection.inumbo.net>)
 id 1u5VY1-0006Lt-8Q
 for xen-devel@lists.xenproject.org; Thu, 17 Apr 2025 20:09:21 +0000
Received: from raptorengineering.com (mail.raptorengineering.com
 [23.155.224.40]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id cea5350f-1bc7-11f0-9ffb-bf95429c2676;
 Thu, 17 Apr 2025 22:09:04 +0200 (CEST)
Received: from localhost (localhost [127.0.0.1])
 by mail.rptsys.com (Postfix) with ESMTP id 8BF3A8288A39;
 Thu, 17 Apr 2025 15:09:01 -0500 (CDT)
Received: from mail.rptsys.com ([127.0.0.1])
 by localhost (vali.starlink.edu [127.0.0.1]) (amavisd-new, port 10032)
 with ESMTP id PAdD2sa3ORcN; Thu, 17 Apr 2025 15:09:00 -0500 (CDT)
Received: from localhost (localhost [127.0.0.1])
 by mail.rptsys.com (Postfix) with ESMTP id A812C8288A5D;
 Thu, 17 Apr 2025 15:09:00 -0500 (CDT)
Received: from mail.rptsys.com ([127.0.0.1])
 by localhost (vali.starlink.edu [127.0.0.1]) (amavisd-new, port 10026)
 with ESMTP id 4fdyHXcg7Rsv; Thu, 17 Apr 2025 15:09:00 -0500 (CDT)
Received: from [10.11.0.2] (5.edge.rptsys.com [23.155.224.38])
 by mail.rptsys.com (Postfix) with ESMTPSA id 92D698288A39;
 Thu, 17 Apr 2025 15:08:59 -0500 (CDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cea5350f-1bc7-11f0-9ffb-bf95429c2676
DKIM-Filter: OpenDKIM Filter v2.10.3 mail.rptsys.com A812C8288A5D
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=raptorengineering.com; s=B8E824E6-0BE2-11E6-931D-288C65937AAD;
	t=1744920540; bh=u7gXwxeW9u0uMUIBcLy+CuKLaWlMOcuQYu1sXpfcXCU=;
	h=Message-ID:Date:MIME-Version:To:From;
	b=s6Lesknx3GLQ+fhSq22ntfBPnQRpF8fJCtoKpWxuuasteSVgvD4wN8u6rSruoHlfx
	 DyAsrXf7xU4RGIks3iwahNOrYPkGf0EIHACdRT2wQsnosQXORQ6b9MbfzNbQhjj3kv
	 r7rwE7kzYCzW9Z8TdPpLA2GCL2LKviniW8IZG4KE=
X-Virus-Scanned: amavisd-new at rptsys.com
Message-ID: <44ebf015-388a-4e73-acc2-67e87c0626a3@raptorengineering.com>
Date: Thu, 17 Apr 2025 15:08:58 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 13/15] ppc: Drop asm/byteorder.h
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 "Daniel P . Smith" <dpsmith@apertussolutions.com>,
 Lin Liu <lin.liu@citrix.com>
References: <20250416115900.2491661-1-andrew.cooper3@citrix.com>
 <20250416115900.2491661-14-andrew.cooper3@citrix.com>
Content-Language: en-US
From: Shawn Anastasio <sanastasio@raptorengineering.com>
In-Reply-To: <20250416115900.2491661-14-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

Hi Andrew,

On 4/16/25 6:58 AM, Andrew Cooper wrote:
> With the common code moved fully onto xen/byteorder.h, clean up the dregs.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

For PPC:

Reviewed-by: Shawn Anastasio <sanastasio@raptorengineering.com>

Thanks,
Shawn


From xen-devel-bounces@lists.xenproject.org Fri Apr 18 04:55:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 18 Apr 2025 04:55:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.958673.1351369 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5dkl-0003m5-5c; Fri, 18 Apr 2025 04:55:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 958673.1351369; Fri, 18 Apr 2025 04:55: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 1u5dkl-0003lx-05; Fri, 18 Apr 2025 04:55:03 +0000
Received: by outflank-mailman (input) for mailman id 958673;
 Fri, 18 Apr 2025 04:55: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 1u5dkk-0003lr-50
 for xen-devel@lists.xenproject.org; Fri, 18 Apr 2025 04:55: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 1u5dkj-005hQM-1x;
 Fri, 18 Apr 2025 04:55:01 +0000
Received: from [143.198.24.140] (helo=[100.81.22.8])
 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 1u5dkj-003O2p-03;
 Fri, 18 Apr 2025 04:55:01 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=6oJcOc57u4hiPZM8iduG/VSJ6526yXSNaJnYjbn3674=; b=JtAq+3shu88avNUC79KPTbzr25
	MNSJ1rhjwQSReE24mPQFTpdHnlHMmeRDFGSDI9ZG2dAS9fVvGP5Hn+tYN4mkQYMO9RvwQ4JqYSATL
	bEwlPs1DdKA0mCrm3KJT/Rf8AuPtEo4xr/P6cq2Y6yCYxw5UOTo6ODF+sRLi1mfbREBA=;
Message-ID: <306e5414-1552-4605-86d6-b23b89d00bc9@xen.org>
Date: Fri, 18 Apr 2025 13:54:54 +0900
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1] xen/arm: AArch32-V8R: Add MPU register definitions
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: <20250417155511.1854081-1-ayan.kumar.halder@amd.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20250417155511.1854081-1-ayan.kumar.halder@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Ayan,

On 18/04/2025 00:55, Ayan Kumar Halder wrote:
> Add the definitions for HPRBAR<0..31>, HPRLAR<0..31> and HPRENR.
> The definitions are taken from ARM DDI 0568A.c ID110520, E2.2.3 HPRBAR<n>,
> E2.2.4 HPRENR and E2.2.6 HPRLAR<n>.
> 
> Introduce pr_t typedef which is a structure having the prbar and prlar members,
> each being structured as the registers of the AArch32-V8R architecture.
> This is the arm32 equivalent of
> "arm/mpu: Introduce MPU memory region map structure".
> 
> Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
> ---
> This patch should be applied after
> "[PATCH v3 0/7] First chunk for Arm R82 and MPU support" in order to enable
> compilation for AArch32.
> 
>   xen/arch/arm/include/asm/arm32/mpu.h  |  59 +++++++++++
>   xen/arch/arm/include/asm/mpu.h        |   4 +
>   xen/arch/arm/include/asm/mpu/cpregs.h | 135 ++++++++++++++++++++++++++
>   3 files changed, 198 insertions(+)
>   create mode 100644 xen/arch/arm/include/asm/arm32/mpu.h
> 
> diff --git a/xen/arch/arm/include/asm/arm32/mpu.h b/xen/arch/arm/include/asm/arm32/mpu.h
> new file mode 100644
> index 0000000000..4aabd93479
> --- /dev/null
> +++ b/xen/arch/arm/include/asm/arm32/mpu.h
> @@ -0,0 +1,59 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +/*
> + * mpu.h: Arm Memory Protection Unit definitions for aarch64.
> + */
> +
> +#ifndef __ARM_ARM32_MPU_H
> +#define __ARM_ARM32_MPU_H
> +
> +#define XN_EL2_ENABLED  0x1

I understand the define is introduced in Luca's patch, but this a bit 
non-descriptive... Can we find a better name? Maybe by adding the name 
of the register and some documentation?

> +
> +#ifndef __ASSEMBLY__
> +
> +/* Hypervisor Protection Region Base Address Register */
> +typedef union {
> +    struct {
> +        unsigned int xn:1;       /* Execute-Never */
> +        unsigned int ap:2;       /* Acess Permission */
> +        unsigned int sh:2;       /* Sharebility */
> +        unsigned int res0:1;     /* Reserved as 0 */
> +        unsigned int base:26;    /* Base Address */
> +    } reg;
> +    uint32_t bits;
> +} prbar_t;
> +
> +/* Hypervisor Protection Region Limit Address Register */
> +typedef union {
> +    struct {
> +        unsigned int en:1;     /* Region enable */
> +        unsigned int ai:3;     /* Memory Attribute Index */
> +        /*
> +         * There is no actual ns bit in hardware. It is used here for
> +         * compatibility with Armr64 code. Thus, we are reusing a res0 bit for ns.

typo: Arm64.

> +         */

Hmmmm, this would mean someone may mistakenly set the bit to 0 by 
mistake. If the field is always meant to be 0 on arm64, then I would 
consider to name is res0 on arm64 with an explanation.

This would make clear the bit is not supposed to have a value other than 0.

> +        unsigned int ns:1;     /* Reserved 0 by hardware */
> +        unsigned int res0:1;   /* Reserved 0 by hardware */
> +        unsigned int limit:26;  /* Limit Address */

NIT: Can we align the comments?

> +    } reg;
> +    uint32_t bits;
> +} prlar_t;
> +
> +/* Protection Region */
> +typedef struct {
> +    prbar_t prbar;
> +    prlar_t prlar;
> +    uint64_t p2m_type;          /* Used to store p2m types. */
> +} pr_t;

This looks to be common with arm64. If so, I would prefer if the 
structure is in a common header.

> +
> +#endif /* __ASSEMBLY__ */
> +
> +#endif /* __ARM_ARM32_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/mpu.h b/xen/arch/arm/include/asm/mpu.h
> index 77d0566f97..67127149c0 100644
> --- a/xen/arch/arm/include/asm/mpu.h
> +++ b/xen/arch/arm/include/asm/mpu.h
> @@ -8,8 +8,12 @@
>   
>   #if defined(CONFIG_ARM_64)
>   # include <asm/arm64/mpu.h>
> +#elif defined(CONFIG_ARM_32)
> +# include <asm/arm32/mpu.h>
>   #endif
>   
> +#define PRENR_MASK  GENMASK(31, 0)
> +
>   #define MPU_REGION_SHIFT  6
>   #define MPU_REGION_ALIGN  (_AC(1, UL) << MPU_REGION_SHIFT)
>   #define MPU_REGION_MASK   (~(MPU_REGION_ALIGN - 1))
> diff --git a/xen/arch/arm/include/asm/mpu/cpregs.h b/xen/arch/arm/include/asm/mpu/cpregs.h
> index d5cd0e04d5..7cf52aa09a 100644
> --- a/xen/arch/arm/include/asm/mpu/cpregs.h
> +++ b/xen/arch/arm/include/asm/mpu/cpregs.h
> @@ -6,18 +6,153 @@
>   /* CP15 CR0: MPU Type Register */
>   #define HMPUIR          p15,4,c0,c0,4
>   
> +/* CP15 CR6: Protection Region Enable Register */
> +#define HPRENR          p15,4,c6,c1,1
> +
>   /* CP15 CR6: MPU Protection Region Base/Limit/Select Address Register */
>   #define HPRSELR         p15,4,c6,c2,1
>   #define HPRBAR          p15,4,c6,c3,0
>   #define HPRLAR          p15,4,c6,c8,1
>   
> +/* CP15 CR6: MPU Protection Region Base/Limit Address Register */
> +#define HPRBAR0         p15,4,c6,c8,0
> +#define HPRLAR0         p15,4,c6,c8,1
> +#define HPRBAR1         p15,4,c6,c8,4
> +#define HPRLAR1         p15,4,c6,c8,5
> +#define HPRBAR2         p15,4,c6,c9,0
> +#define HPRLAR2         p15,4,c6,c9,1
> +#define HPRBAR3         p15,4,c6,c9,4
> +#define HPRLAR3         p15,4,c6,c9,5
> +#define HPRBAR4         p15,4,c6,c10,0
> +#define HPRLAR4         p15,4,c6,c10,1
> +#define HPRBAR5         p15,4,c6,c10,4
> +#define HPRLAR5         p15,4,c6,c10,5
> +#define HPRBAR6         p15,4,c6,c11,0
> +#define HPRLAR6         p15,4,c6,c11,1
> +#define HPRBAR7         p15,4,c6,c11,4
> +#define HPRLAR7         p15,4,c6,c11,5
> +#define HPRBAR8         p15,4,c6,c12,0
> +#define HPRLAR8         p15,4,c6,c12,1
> +#define HPRBAR9         p15,4,c6,c12,4
> +#define HPRLAR9         p15,4,c6,c12,5
> +#define HPRBAR10        p15,4,c6,c13,0
> +#define HPRLAR10        p15,4,c6,c13,1
> +#define HPRBAR11        p15,4,c6,c13,4
> +#define HPRLAR11        p15,4,c6,c13,5
> +#define HPRBAR12        p15,4,c6,c14,0
> +#define HPRLAR12        p15,4,c6,c14,1
> +#define HPRBAR13        p15,4,c6,c14,4
> +#define HPRLAR13        p15,4,c6,c14,5
> +#define HPRBAR14        p15,4,c6,c15,0
> +#define HPRLAR14        p15,4,c6,c15,1
> +#define HPRBAR15        p15,4,c6,c15,4
> +#define HPRLAR15        p15,4,c6,c15,5
> +#define HPRBAR16        p15,5,c6,c8,0
> +#define HPRLAR16        p15,5,c6,c8,1
> +#define HPRBAR17        p15,5,c6,c8,4
> +#define HPRLAR17        p15,5,c6,c8,5
> +#define HPRBAR18        p15,5,c6,c9,0
> +#define HPRLAR18        p15,5,c6,c9,1
> +#define HPRBAR19        p15,5,c6,c9,4
> +#define HPRLAR19        p15,5,c6,c9,5
> +#define HPRBAR20        p15,5,c6,c10,0
> +#define HPRLAR20        p15,5,c6,c10,1
> +#define HPRBAR21        p15,5,c6,c10,4
> +#define HPRLAR21        p15,5,c6,c10,5
> +#define HPRBAR22        p15,5,c6,c11,0
> +#define HPRLAR22        p15,5,c6,c11,1
> +#define HPRBAR23        p15,5,c6,c11,4
> +#define HPRLAR23        p15,5,c6,c11,5
> +#define HPRBAR24        p15,5,c6,c12,0
> +#define HPRLAR24        p15,5,c6,c12,1
> +#define HPRBAR25        p15,5,c6,c12,4
> +#define HPRLAR25        p15,5,c6,c12,5
> +#define HPRBAR26        p15,5,c6,c13,0
> +#define HPRLAR26        p15,5,c6,c13,1
> +#define HPRBAR27        p15,5,c6,c13,4
> +#define HPRLAR27        p15,5,c6,c13,5
> +#define HPRBAR28        p15,5,c6,c14,0
> +#define HPRLAR28        p15,5,c6,c14,1
> +#define HPRBAR29        p15,5,c6,c14,4
> +#define HPRLAR29        p15,5,c6,c14,5
> +#define HPRBAR30        p15,5,c6,c15,0
> +#define HPRLAR30        p15,5,c6,c15,1
> +#define HPRBAR31        p15,5,c6,c15,4
> +#define HPRLAR31        p15,5,c6,c15,5

NIT: Is there any way we could generate the values using macros?

> +
>   /* Aliases of AArch64 names for use in common code */
>   #ifdef CONFIG_ARM_32
>   /* Alphabetically... */
>   #define MPUIR_EL2       HMPUIR
>   #define PRBAR_EL2       HPRBAR
> +#define PRBAR0_EL2      HPRBAR0

AFAIU, the alias will be mainly used in the macro generate
the switch. Rather than open-coding all the PR*AR_EL2, can we
provide two macros PR{B, L}AR_N that will be implemented as
HPR{B,L}AR##n for arm32 and PR{B,L}AR##n for arm64?

>   #define PRSELR_EL2      HPRSELR
> +
>   #endif /* CONFIG_ARM_32 */
>   
>   #endif /* __ARM_MPU_CPREGS_H */

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Fri Apr 18 05:48:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 18 Apr 2025 05:48:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.958692.1351389 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5eaG-000453-1d; Fri, 18 Apr 2025 05:48:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 958692.1351389; Fri, 18 Apr 2025 05: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 1u5eaF-00044w-V3; Fri, 18 Apr 2025 05:48:15 +0000
Received: by outflank-mailman (input) for mailman id 958692;
 Fri, 18 Apr 2025 05: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=cO0Y=XE=oracle.com=harshvardhan.j.jha@srs-se1.protection.inumbo.net>)
 id 1u5eaE-0003qf-EZ
 for xen-devel@lists.xenproject.org; Fri, 18 Apr 2025 05:48:14 +0000
Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com
 [205.220.165.32]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b12d8111-1c18-11f0-9ffb-bf95429c2676;
 Fri, 18 Apr 2025 07:48:04 +0200 (CEST)
Received: from pps.filterd (m0333521.ppops.net [127.0.0.1])
 by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 53I5MxXv023787;
 Fri, 18 Apr 2025 05:47:55 GMT
Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com
 (phxpaimrmta03.appoci.oracle.com [138.1.37.129])
 by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4619447jrc-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Fri, 18 Apr 2025 05:47:54 +0000 (GMT)
Received: from pps.filterd
 (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1])
 by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.2/8.18.1.2)
 with ESMTP id 53I4UEYB024679; Fri, 18 Apr 2025 05:47:54 GMT
Received: from pps.reinject (localhost [127.0.0.1])
 by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id
 460d54fy9r-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Fri, 18 Apr 2025 05:47:54 +0000
Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com
 (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1])
 by pps.reinject (8.17.1.5/8.17.1.5) with ESMTP id 53I5lq6h036462;
 Fri, 18 Apr 2025 05:47:53 GMT
Received: from ca-dev112.us.oracle.com (ca-dev112.us.oracle.com
 [10.129.136.47])
 by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTP id
 460d54fy32-2; Fri, 18 Apr 2025 05:47: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: b12d8111-1c18-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc
	:content-transfer-encoding:date:from:in-reply-to:message-id
	:mime-version:references:subject:to; s=corp-2023-11-20; bh=irwzx
	ZD0HzBVqkU/MQIM1wQYaguZ/AC//3ZStlzY14I=; b=DlWxLJiDWFf3wCP4oD7uA
	bqGhungtLYoEJCli8eorjDwlca9IOowbQlesx0w3lWV4cUaqSPpZchckrjTNyUfh
	83/GkdJYHOFO+dpzJcP2fBtIXhJS/vjUMD7JvyEVfxRR/LPikdVJuDTxoJw60tcG
	CQ+USPLBof/t2fQ3b+BA6i38bPDdkBuZzxyfwsIq+BzHs6c1AZeU+Nxtgwk5lXhk
	WVuBxMrlKg1bco7VE3gfWpELHIBElEJ+oI/+eMiTskHR9luX4iwaak5k4dvTdOWv
	oiAp2uvkqyUXuBUOxRBw+BYXFSt0+yUgVjfBupC9TAVKQ/S6O0/ka9owWu16gSMZ
	g==
From: Harshvardhan Jha <harshvardhan.j.jha@oracle.com>
To: jgross@suse.com, sstabellini@kernel.org, boris.ostrovsky@oracle.com
Cc: harshvardhan.j.jha@oracle.com, xen-devel@lists.xenproject.org,
        iommu@lists.linux-foundation.org, iommu@lists.linux.dev,
        stable@vger.kernel.org
Subject: [PATCH 5.15.y v2 1/1] xen/swiotlb: relax alignment requirements
Date: Thu, 17 Apr 2025 22:47:26 -0700
Message-ID: <20250418054726.2442674-2-harshvardhan.j.jha@oracle.com>
X-Mailer: git-send-email 2.47.1
In-Reply-To: <20250418054726.2442674-1-harshvardhan.j.jha@oracle.com>
References: <20250418054726.2442674-1-harshvardhan.j.jha@oracle.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1095,Hydra:6.0.680,FMLib:17.12.68.34
 definitions=2025-04-18_02,2025-04-17_01,2024-11-22_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 phishscore=0
 mlxlogscore=999 bulkscore=0 suspectscore=0 mlxscore=0 malwarescore=0
 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2502280000 definitions=main-2504180041
X-Proofpoint-GUID: 3CLmdghGT8wzTSR39WI-I_oL_wZxa8jx
X-Proofpoint-ORIG-GUID: 3CLmdghGT8wzTSR39WI-I_oL_wZxa8jx

[ Upstream commit 85fcb57c983f423180ba6ec5d0034242da05cc54 ]

When mapping a buffer for DMA via .map_page or .map_sg DMA operations,
there is no need to check the machine frames to be aligned according
to the mapped areas size. All what is needed in these cases is that the
buffer is contiguous at machine level.

So carve out the alignment check from range_straddles_page_boundary()
and move it to a helper called by xen_swiotlb_alloc_coherent() and
xen_swiotlb_free_coherent() directly.

Fixes: 9f40ec84a797 ("xen/swiotlb: add alignment check for dma buffers")
Signed-off-by: Harshvardhan Jha <harshvardhan.j.jha@oracle.com>
---
 drivers/xen/swiotlb-xen.c | 18 +++++++++++-------
 1 file changed, 11 insertions(+), 7 deletions(-)

diff --git a/drivers/xen/swiotlb-xen.c b/drivers/xen/swiotlb-xen.c
index 0392841a822fa..65da97be06285 100644
--- a/drivers/xen/swiotlb-xen.c
+++ b/drivers/xen/swiotlb-xen.c
@@ -75,19 +75,21 @@ static inline phys_addr_t xen_dma_to_phys(struct device *dev,
 	return xen_bus_to_phys(dev, dma_to_phys(dev, dma_addr));
 }
 
+static inline bool range_requires_alignment(phys_addr_t p, size_t size)
+{
+	phys_addr_t algn = 1ULL << (get_order(size) + PAGE_SHIFT);
+	phys_addr_t bus_addr = pfn_to_bfn(XEN_PFN_DOWN(p)) << XEN_PAGE_SHIFT;
+
+	return IS_ALIGNED(p, algn) && !IS_ALIGNED(bus_addr, algn);
+}
+
 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((phys_addr_t)next_bfn << XEN_PAGE_SHIFT, algn))
-		return 1;
-
 	for (i = 1; i < nr_pages; i++)
 		if (pfn_to_bfn(++xen_pfn) != ++next_bfn)
 			return 1;
@@ -306,7 +308,8 @@ xen_swiotlb_alloc_coherent(struct device *hwdev, size_t size,
 	phys = dma_to_phys(hwdev, *dma_handle);
 	dev_addr = xen_phys_to_dma(hwdev, phys);
 	if (((dev_addr + size - 1 <= dma_mask)) &&
-	    !range_straddles_page_boundary(phys, size))
+	    !range_straddles_page_boundary(phys, size) &&
+	    !range_requires_alignment(phys, size))
 		*dma_handle = dev_addr;
 	else {
 		if (xen_create_contiguous_region(phys, order,
@@ -347,6 +350,7 @@ xen_swiotlb_free_coherent(struct device *hwdev, size_t size, void *vaddr,
 
 	if (!WARN_ON((dev_addr + size - 1 > dma_mask) ||
 		     range_straddles_page_boundary(phys, size)) &&
+	    !range_requires_alignment(phys, size) &&
 	    TestClearPageXenRemapped(page))
 		xen_destroy_contiguous_region(phys, order);
 
-- 
2.47.1



From xen-devel-bounces@lists.xenproject.org Fri Apr 18 05:48:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 18 Apr 2025 05:48:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.958691.1351379 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5eaC-0003qu-Rk; Fri, 18 Apr 2025 05:48:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 958691.1351379; Fri, 18 Apr 2025 05:48: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 1u5eaC-0003qn-Om; Fri, 18 Apr 2025 05:48:12 +0000
Received: by outflank-mailman (input) for mailman id 958691;
 Fri, 18 Apr 2025 05:48: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=cO0Y=XE=oracle.com=harshvardhan.j.jha@srs-se1.protection.inumbo.net>)
 id 1u5eaB-0003qf-2G
 for xen-devel@lists.xenproject.org; Fri, 18 Apr 2025 05:48:11 +0000
Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com
 [205.220.177.32]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b3a4f8e6-1c18-11f0-9ffb-bf95429c2676;
 Fri, 18 Apr 2025 07:48:07 +0200 (CEST)
Received: from pps.filterd (m0246632.ppops.net [127.0.0.1])
 by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 53I5NcHN002787;
 Fri, 18 Apr 2025 05:47:54 GMT
Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com
 (phxpaimrmta03.appoci.oracle.com [138.1.37.129])
 by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 46187xyrhv-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Fri, 18 Apr 2025 05:47:54 +0000 (GMT)
Received: from pps.filterd
 (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1])
 by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.2/8.18.1.2)
 with ESMTP id 53I5XBLs024756; Fri, 18 Apr 2025 05:47:53 GMT
Received: from pps.reinject (localhost [127.0.0.1])
 by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id
 460d54fy9j-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Fri, 18 Apr 2025 05:47:53 +0000
Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com
 (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1])
 by pps.reinject (8.17.1.5/8.17.1.5) with ESMTP id 53I5lq6f036462;
 Fri, 18 Apr 2025 05:47:52 GMT
Received: from ca-dev112.us.oracle.com (ca-dev112.us.oracle.com
 [10.129.136.47])
 by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTP id
 460d54fy32-1; Fri, 18 Apr 2025 05:47: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: b3a4f8e6-1c18-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc
	:content-transfer-encoding:date:from:message-id:mime-version
	:subject:to; s=corp-2023-11-20; bh=+adpAbdYLs38FhIOhHdHbujyLz8AT
	wIWgf4obfGpmRM=; b=n1aMFpG8AJgT3AqY4fjpd+mJS3+7LE1CUienPM8CqMRHD
	glz/lSe6UtfzAo2UJ1EHYbkH215/48wka5AEORG9WJTx5+69TPrfUuwfmZUvzbV2
	egwPzgt0Q3HdYEB5LLvZtc/jSzpJx2eQGF8YVV1N0md/ILFDg/GLH6zfl/Hwy9ad
	4rwIG4vG9n59d1M+GIMdHVZ7OKc4PmtFtQOYl81q6IF/ntMq2MOCOLzCHHY2sKQH
	9uBRqkru2a2TFRy3ky9qcABzQSro+iNnGwMTTArD4Jp9NmyUekEk6bmAT7PVdb36
	rYfkYJS3kMVLmSjGjHT7wTy0Vt7fZi2vJ/Xz6Ne0A==
From: Harshvardhan Jha <harshvardhan.j.jha@oracle.com>
To: jgross@suse.com, sstabellini@kernel.org, boris.ostrovsky@oracle.com
Cc: harshvardhan.j.jha@oracle.com, xen-devel@lists.xenproject.org,
        iommu@lists.linux-foundation.org, iommu@lists.linux.dev,
        stable@vger.kernel.org
Subject: [PATCH 5.15.y v2 0/1] Manual Backport of 099606a7b2d5 to 5.15
Date: Thu, 17 Apr 2025 22:47:25 -0700
Message-ID: <20250418054726.2442674-1-harshvardhan.j.jha@oracle.com>
X-Mailer: git-send-email 2.47.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1095,Hydra:6.0.680,FMLib:17.12.68.34
 definitions=2025-04-18_02,2025-04-17_01,2024-11-22_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 phishscore=0
 mlxlogscore=999 bulkscore=0 suspectscore=0 mlxscore=0 malwarescore=0
 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2502280000 definitions=main-2504180041
X-Proofpoint-GUID: Mg-v3doRh43UKoQ1jKtAblkZyhHc9mAO
X-Proofpoint-ORIG-GUID: Mg-v3doRh43UKoQ1jKtAblkZyhHc9mAO

The patch 099606a7b2d5 didn't cleanly apply to 5.15 due to the
significant difference in codebases.

I've tried to manually bring it back to 5.15 via some minor conflict
resolution but also invoking the newly introduced API using inverted
logic as the conditional statements present in 5.15 are the opposite of
those in 6.1 xen/swiotlib.

Harshvardhan Jha (1):
  xen/swiotlb: relax alignment requirements

 drivers/xen/swiotlb-xen.c | 18 +++++++++++-------
 1 file changed, 11 insertions(+), 7 deletions(-)

-- 
2.47.1



From xen-devel-bounces@lists.xenproject.org Fri Apr 18 06:29:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 18 Apr 2025 06:29:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.958726.1351399 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5fEJ-0002h3-W8; Fri, 18 Apr 2025 06:29:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 958726.1351399; Fri, 18 Apr 2025 06: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 1u5fEJ-0002gw-SH; Fri, 18 Apr 2025 06:29:39 +0000
Received: by outflank-mailman (input) for mailman id 958726;
 Fri, 18 Apr 2025 06: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=DiI7=XE=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1u5fEI-0002gq-7g
 for xen-devel@lists.xenproject.org; Fri, 18 Apr 2025 06:29:38 +0000
Received: from DU2PR03CU002.outbound.protection.outlook.com
 (mail-northeuropeazlp170120003.outbound.protection.outlook.com
 [2a01:111:f403:c200::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7c7d93c8-1c1e-11f0-9ffb-bf95429c2676;
 Fri, 18 Apr 2025 08:29:32 +0200 (CEST)
Received: from DU2PR04CA0076.eurprd04.prod.outlook.com (2603:10a6:10:232::21)
 by PAWPR08MB11158.eurprd08.prod.outlook.com (2603:10a6:102:470::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.32; Fri, 18 Apr
 2025 06:29:21 +0000
Received: from DB1PEPF0003922F.eurprd03.prod.outlook.com
 (2603:10a6:10:232:cafe::b8) by DU2PR04CA0076.outlook.office365.com
 (2603:10a6:10:232::21) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.23 via Frontend Transport; Fri,
 18 Apr 2025 06:29:21 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DB1PEPF0003922F.mail.protection.outlook.com (10.167.8.102) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.12
 via Frontend Transport; Fri, 18 Apr 2025 06:29:19 +0000
Received: from DB9PR08MB6588.eurprd08.prod.outlook.com (2603:10a6:10:25a::24)
 by DB5PR08MB9998.eurprd08.prod.outlook.com (2603:10a6:10:489::6) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.22; Fri, 18 Apr
 2025 06:28:47 +0000
Received: from DB9PR08MB6588.eurprd08.prod.outlook.com
 ([fe80::a8fc:ea0d:baf1:23a]) by DB9PR08MB6588.eurprd08.prod.outlook.com
 ([fe80::a8fc:ea0d:baf1:23a%7]) with mapi id 15.20.8632.030; Fri, 18 Apr 2025
 06:28:47 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7c7d93c8-1c1e-11f0-9ffb-bf95429c2676
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=uS36tgwddZ+Gyof3qT58gl4eHEXLB2ABLGsUGo3jqCcGX0hn5epg9CZWUU9/bEtRIvDPAWfhlM+MJABMD//lzQP4URenC4Rp1peKamWRjIAiDos4/8hjADFvHzyO41jCsoTVqUz6+hknjCOJGqoH1YCwCfDWesAIzdpQEipTHU3p/AA35rKjyvknj+4hE4xn7Pis4TXVidvFwPMjVnAyCH4mdYv/+Q2MItyaL3jY+PjwEoyKdd25w9bRIfjlaIvM1/z8pSG6uBSkjyQ82mY9sL1c9wkQAFyr1ugpfSpapbOCMGHZlRx2UL4pJflJJOnqLojGQcnG1WJqJ+7K9S8Kag==
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=68SCY0sBged/spZfHPqBp3vV09Aagu7hHMxl46ryxRQ=;
 b=oF5zLhOQMc7BF8UA5duAPhtp8xoCJ9/cGbxAM9p2w9+ALsBrQboJ9IUN9AiTzJ0rvDWDmCKYKFhCrbVJCFSABIBixhgb4K0wkzUIXX8JvZpNwITiY08CmD2zvrOGK+mOG+zzHKixeRTIAZOhTYXl2lEN8Rg7sOCneLUye5GjAj1fiOZy/Jbko7kDiIj8wzkE2Swhmnrx12ijhTt+3XmE6M1uenidxTrwDP4jGXnrMN6ALBQ2WdWj70j9V2vb9cErkMiIwz5gGPQBClGxuxEKdlnxkyPUhokYSsX0WuBkpULnRcIw4VcLm6Vw79HHKvZzCMKo2DBHmObGxquNO7H8IA==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=citrix.com smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=68SCY0sBged/spZfHPqBp3vV09Aagu7hHMxl46ryxRQ=;
 b=W9sc5ln0RaOuBdNr3euxT90trZMpMz9BJcS2+vHFay0WDsOWyIHguuVyEUMwKVgOfQIhLy0SGwZ5jCdj7Z0y/VGyPhmEZNvxW9NWFhqfSiQ33Hl7UdciSZrXivkn05RuxAAN6WXa5vnI2UpaWWPkjHFQnvZ2iEjwtj3OZSmNjLA=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=PdRO13vRCkJXMFJNjMg7WX46BQ/PsRuQt5D0lePAftoWCtJN12a9i/HfpR55/NSK+haDvVYK68Bwrg1TxgROQZghOIpxOMaw3aS9Rl8aWPXZesN0iJ9zfEmmkgSQ1FwNzqwafA2Ppo/oMBNldT+so4lis0Vp6XCWjFrtEhhIXHAL2RBT6v1HrmNxyJvQyL/mHjsiuRhV1C9zwXWyxM3/yVZWfP/+rzQAYClkud4XEsqSFog70HIvJF0whinno3hk88H1jgxWuZHud3hoi5k+9oLDphrr18iEYAj/SU260WDx25N2h5jt5GYcrrFs2ltnQFe95oE7UN77VJcEpg1JPg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=68SCY0sBged/spZfHPqBp3vV09Aagu7hHMxl46ryxRQ=;
 b=ZXvV+1/DuPv3BwZF+Ir+JXCQjiRB/8pWWKDG/s3inkBWp7boTJALFvZlgOhzRuOE33+J1I3cqsHvVB4ydWSVEzR0R1LcJ+s1LwjfMznfkhes5c1U1DFyUcfOGft7V9JqXnJ6MXfTIOsCOEUPHGmWmSYsA30LjDF4a1vB5ks8MdNFb+InmII9B0RwpX/qPNOwiiex6kbF2KrbqSbmHcMV8sGkTu5rBNPhflZa47EvngIjTHP+72oTbEMkmRNJsxb7DtPdmpMIcKPyjiuYAPPSm0ddrjl0CeEHpdA7YfdSQrI+qKVzKn5XJhRMg01qcswES89c5kJ3eNOD1kyVNox89w==
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=68SCY0sBged/spZfHPqBp3vV09Aagu7hHMxl46ryxRQ=;
 b=W9sc5ln0RaOuBdNr3euxT90trZMpMz9BJcS2+vHFay0WDsOWyIHguuVyEUMwKVgOfQIhLy0SGwZ5jCdj7Z0y/VGyPhmEZNvxW9NWFhqfSiQ33Hl7UdciSZrXivkn05RuxAAN6WXa5vnI2UpaWWPkjHFQnvZ2iEjwtj3OZSmNjLA=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
CC: Xen-devel <xen-devel@lists.xenproject.org>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Stefano
 Stabellini <sstabellini@kernel.org>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Shawn Anastasio
	<sanastasio@raptorengineering.com>, Oleksii Kurochko
	<oleksii.kurochko@gmail.com>, "Daniel P . Smith"
	<dpsmith@apertussolutions.com>, Lin Liu <lin.liu@citrix.com>, Rahul Singh
	<Rahul.Singh@arm.com>
Subject: Re: [PATCH v6 02/15] drivers/smmu-v3: Fix impending MISRA R20.6
 violation
Thread-Topic: [PATCH v6 02/15] drivers/smmu-v3: Fix impending MISRA R20.6
 violation
Thread-Index: AQHbrsb4h7zxEPTLGky/jys+D4v1IrOo+KwA
Date: Fri, 18 Apr 2025 06:28:46 +0000
Message-ID: <68C8B349-3A28-469F-84C6-D0E5416E5525@arm.com>
References: <20250416115900.2491661-1-andrew.cooper3@citrix.com>
 <20250416115900.2491661-3-andrew.cooper3@citrix.com>
In-Reply-To: <20250416115900.2491661-3-andrew.cooper3@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3826.400.131.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DB9PR08MB6588:EE_|DB5PR08MB9998:EE_|DB1PEPF0003922F:EE_|PAWPR08MB11158:EE_
X-MS-Office365-Filtering-Correlation-Id: 81ca9d75-cc93-4082-4939-08dd7e425a15
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|10070799003|7416014|376014|38070700018;
X-Microsoft-Antispam-Message-Info-Original:
 =?utf-8?B?Mjg3VUxBRHAxVGhudm0xdWdkSkRXOWJ4dHpGNlBINzl2Z1VFaElxbkV6SzRi?=
 =?utf-8?B?N3NjTDBQSFdFK2dUb2w0M2ovTE5TMGcreXREOTZEbXdaSUhRWElsUnlmdjBa?=
 =?utf-8?B?MXlRYWFsdElxUDlOU1N1TVpSc2RLNDF4WFdFQ0xtOTNGSEpzd3VmSnQ5WjZu?=
 =?utf-8?B?dldhUk1ocUUraGhmeVRXdllaN1MvaHhaYXFyT0wyNFd5ZHljdnVsN3FIWENl?=
 =?utf-8?B?bTU1a01KYXpGaUR4U2lYNys5Sk1pYnVEaHY1S0w1WjkxcEFCcXlPdE51N0V5?=
 =?utf-8?B?Q2Y1aDZ6dnZoM3dPYU9mem5QZTJ4QWZ5QVFyRXhxbnR1ZnptUnFwQW1yS0Uv?=
 =?utf-8?B?U0d2aVV1aHY3L0dFdk5MZ3B5Mnd0a05qYWJDTDlnUkNBYlBtUFd6UjR0OWMy?=
 =?utf-8?B?TkJVYWdvajEzdStYcVozYjRLTmhtOEUrdG9MbG9SQ3Zkbm0yME5JODdjS1Vy?=
 =?utf-8?B?QXBYVjVHU2ZtOUVTNnRFZEVPNVZMNjg2RzlkSmM5cVZ6V0NKekI5SjFnWlVX?=
 =?utf-8?B?N3h6aFJCN0pQeENuSHBVZklCTTJGZFZVaEZBU0JSTlo1ZG16TVF2QWlPYktk?=
 =?utf-8?B?V3hXWG5MZEt3SHhIc01GTlFJK1FiR2FCMXdTSnliR1krQW9MTzcveFR5V1FU?=
 =?utf-8?B?UlRDa3p4RGl5TmpnZ3lNZSswUUFqczFiK3I5T2w4S05uTW5MM2ZyNnlWOFhL?=
 =?utf-8?B?WVYyclhBZWR1VWNPbWc1RS9BQkhQNEdGcjcycVFJbm96ZzFWQTVpVjI3WDBL?=
 =?utf-8?B?bWZzd01HRW54dngrUGxDd25TT2lGZ1NFeGdlUmhxS3U2YmdmbXMvK0xFRWdo?=
 =?utf-8?B?Qm1Ec1RpaG5hUHJGN3BmbjdTZXVBT3ptek5zVW5JOE9tV3lVb1dCMzE3RXNs?=
 =?utf-8?B?aDhLV1lSbmJ3cEdaN2tTM2VzcTExRFIxVGpDMHVEUmJKNTU5MDg3RFVJRjRB?=
 =?utf-8?B?c3VUS0Z1NElKRjdlakg3bTVmNEhJcTJqYXhGL2VLLy9oZWV0SnhXbUpxMndW?=
 =?utf-8?B?VExLYjB2M3VCWW1vOXFBc0xyWUhacVF3VmhCQ1Y4U2hQQ0l4dTFzRjI0OGN6?=
 =?utf-8?B?Uk10TDd5T1p2TEVlbDZlVGl2RVM0T2RIYStVcGJoUGwyS2NVR2pIL2tHNXZx?=
 =?utf-8?B?bGt2SmVWdnFDSUVOaTZjR042bngvYXZUeDBtYXVsc2tLRGYyQk9KNStoVkdn?=
 =?utf-8?B?cWNYK0hNbUVHaGpTRFQrbEZja1lGQ3VaWEhCcjJOWWpJa05halRMMzN5MkJT?=
 =?utf-8?B?Q1p1dlRzbS9VOEdyM2tETDlrY3AwMHZxZ01JV0FKdmxtR3lDTTc2NlcxL1Yy?=
 =?utf-8?B?VTQ3SnFNclFSbFdBNmp1emZCR1NOSWtJckExTG1xUVZyWU14K0V5NFZsekJI?=
 =?utf-8?B?MmJ5cU0vV1VWNER3Y3ZHeTdHU085RzIzSDQ2eE45YkMweGZUZTZ6d3A2Y0Nw?=
 =?utf-8?B?WTNNNlpuR3I3dVBoUUNvZ0pud285eEg4V2xLbmNPbnFhamgrRktXTDZkSURT?=
 =?utf-8?B?ekxad2RHUGN3TndxUUl1aXM5NEFycmJTNGxISk1Rc25CYld3V3pBaVA0Q1ZF?=
 =?utf-8?B?c29XR1RRVm9nT3RiOVhrQnNBU3cxTzc4YURkdmZVUHByMTZXRVJ3endtK0R3?=
 =?utf-8?B?YzdjUWtnZ2lmSmFTS1FGVUFEN3VzL3p6Z1F0dXU0QVVTYWpvamtuREE0VlQw?=
 =?utf-8?B?eE9KQzFIaGFlS3dPKzk0R0lSeEFFc09VdGZYU1B5SmJuaTMrYWZMMld4MnV0?=
 =?utf-8?B?Z1NNcEFMUWJVWUlCUnVuR3R2MC9LWUVhdzhIVHJRVnFjdlVCNVNFeDFmQStj?=
 =?utf-8?B?U0Q1c05kcFA5TlZYQWIyeDRQUjhoVER2U1RJbDMydEI4QlYvbXlCb3JRV0NG?=
 =?utf-8?B?RWtuTVJSVm52QWlVWFkwdlFyTklmQStJK3g0elhWbEdOWFJRTVdSU0dESHJV?=
 =?utf-8?Q?buGdu/uE/S8=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)(1800799024)(10070799003)(7416014)(376014)(38070700018);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <48C96FAD0A4CD64BA133C7A83BB5BFC8@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB5PR08MB9998
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB1PEPF0003922F.eurprd03.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	5fdb8ae4-3d33-4526-2296-08dd7e424657
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|35042699022|82310400026|36860700013|14060799003|1800799024|376014|7416014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?SHBuTWlLbEJNVDl4UFU3bllrV1QvbGhFYnh5REZZdmtmbS82VTdZQ0R4RnBz?=
 =?utf-8?B?S05TcVJGUTFwM2VVWE9TUHBrSURRZWJVQ2V4MS9IL0MxdHhWait6L0dSUEhQ?=
 =?utf-8?B?Tnlacis4YktVWlZ3dkN1RDd1RXlqZTZCNW9ZQlBhOHI2eG50S1FxUEczcGxV?=
 =?utf-8?B?eU1YN0ZFdTl2ZHFLdEhvaVE4ektoRjRGdk9BaHZXNHZCSzhBVXNSOUIzOS9k?=
 =?utf-8?B?YzB4T2Z4UVBWTm15bGlVSkFvMWk0emUzYlVSbnRqUFN6MThvYmVLUUNuSzI2?=
 =?utf-8?B?ek9qMnFHMUM2NFl4c0w5QjJRWUx2bHFUdlQzN0tjWWZ5eXdSWURVUi9vL3R2?=
 =?utf-8?B?QUt4UmlwYlJMVW1CdUVVZUNjOEM0U1lKdEVUWEZyajZJMmNCVG8zVGdnNDJE?=
 =?utf-8?B?NDczNGVMYXFWMHdOSjZHd2VuMXB6SlY4Y0l5WHpPRENrWjM4b2tPTmJJRHhx?=
 =?utf-8?B?ekk4YkN4bUcyUkh3dk1VK3pDU0tvQXZGay9yQTNORTJTdjRmcGhsMEdSTCto?=
 =?utf-8?B?bHB1YnNLNU1oL2RQVjc3Q2xmK0trVzVzZjM5VGdHbElXTXhITWpoSG1zTkJX?=
 =?utf-8?B?a3pJYjg5NC82OUhiLzRWd0FTUjMrSlF4ZUt6dklhKzQvY09DWDFQUnQycGQr?=
 =?utf-8?B?NWpjRmFEL1BkYjVXN1pLcVVoVFFXdEhJN2pDSmJKcW5JUDVEQWcvVm03SDJJ?=
 =?utf-8?B?RTM1bGNKRnZkb2p6KzEyeW9uK0tDL2hJc0J6K2xnbzcraG83MFdsYlRzV2xk?=
 =?utf-8?B?ZENsUU1aRTd1S3VRd2Y2bGdJZmhSMmN3cEZsRUlnRVZKUWtnT0dCZEZuRFh3?=
 =?utf-8?B?Skk4UGxDT1dnWTNKdzFydjRmNXZ3UFBWSlVFQXl2eFQrRG1tUGYzRUk2VExJ?=
 =?utf-8?B?Z1NzQmVGU1FKTGZEUWtrUk1IWU5LVHdVejBtRC9kQk50Z1Mxcmt5M0ZzV0d2?=
 =?utf-8?B?QlNVdkxkWnFGMFByd09DN1hPUVdtSUVDUFFaZGwySG10OGsyTVh2TnVtOXZs?=
 =?utf-8?B?c3h0Q215bXpDWHo0c1g1czU5TlIxM2JCY2xVSmNmTGZlVkJIeGU5VEtRbFNn?=
 =?utf-8?B?aytHSFRxUDJNSXpRN05rTUZnbllPUWxGdndQeFdUakcwMkkwcHM5eFB5OFdM?=
 =?utf-8?B?WXR4NXBtNzhaTFArdVhYTHVabktuV1pQeUZJbkJMSk1YOEo5czZ0Y1VmcXR0?=
 =?utf-8?B?VTRFY0J6NU9yZDlkOVlYVU1QYmxwUFRjTU9FSTVBUjJPMFpFdkxhZTRpSDR4?=
 =?utf-8?B?UlpzKy9VeFBHb2Y5ODNlaTNjei9oMWVFZDlZQm0rUStvUldXajBycTgvcHVU?=
 =?utf-8?B?QnJMN1lCdVJNK2JrL2xNTVV3R0kzZjkxSlZld093MjdkK0dPSzNZSDVycERD?=
 =?utf-8?B?RjNvRDFWeEFDa1pIb1l1Q2tVWDdHSmJCZ2VOcndDTzJpNnE1N2dGZEJ3QUov?=
 =?utf-8?B?cnhadlZsL2RLdERiNytIRjYzaUZQMVdxVE1HRzJ0TFFmb05TRlAxVGpvMXRk?=
 =?utf-8?B?eEt3VmJ1VDE1MzNiL0pnaTFxbEo1RW55cXRKZytwdUpnaWgvMyswNk9PMHVF?=
 =?utf-8?B?RUl3WlBvaUJNNFhFdEVuVHZRSVRiRWxmS2FmY1JaeHZiYWxtZk1wc1hpRDdj?=
 =?utf-8?B?akZpSzJrdkk5dTIwODkyWVdtUnJrbXUyaDhOTkdyT21raXlTNENHb2RtK0tO?=
 =?utf-8?B?MmtlSVQ0WjEwdzhrRDJzb1hPTUFrNFdZUjBaQUVzTExicVNYY3FxOUN1V1Rj?=
 =?utf-8?B?dTIxb3pYR0ozeGIwU0pib3VHVEUwKzM5VXhhVXZaQW02TGpVb1hyMzY2UDBn?=
 =?utf-8?B?c0JFajQ2TG1ZMHU2ejl2b21nSFhZUDh5TVk2N3I2VDlaZ3BuNU9JSHA2eXJ1?=
 =?utf-8?B?cTBTTzl3VXp2enB4b2FyWEFIcTl6YlZVS1U1QXBlSk1NTXh6L3RwanpaRUNl?=
 =?utf-8?B?OTdQN0dYUysrdkZxQ3pGZnFMYXl2WllwQmlaQjJEOE9DUFFiMEV1bEdTdkF5?=
 =?utf-8?Q?LsXIDIrAnFR6EKZVr1NWIqWoJHdVDo=3D?=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(35042699022)(82310400026)(36860700013)(14060799003)(1800799024)(376014)(7416014)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Apr 2025 06:29:19.9670
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 81ca9d75-cc93-4082-4939-08dd7e425a15
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DB1PEPF0003922F.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR08MB11158

SGkgQW5kcmV3LA0KDQo+IE9uIDE2IEFwciAyMDI1LCBhdCAxMzo1OCwgQW5kcmV3IENvb3BlciA8
YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4gd3JvdGU6DQo+IA0KPiBjcHVfdG9fbGU2NCgpIGlz
IGFib3V0IHRvIGJlY29tZSBhIG1hY3JvLCBhdCB3aGljaCBwb2ludCB0aGUgI2lmZGVmIGluIHRo
ZQ0KPiBtaWRkbGUgb2YgaXQgYmVjb21lcyB1bmRlZmluZWQgYmVoYXZpb3VyLg0KPiANCj4gVXNl
IGEgbG9nY2FsIHZhcmlhYmxlIHRvIHByZXBhcmUgc3RydGFiLCB3aGVyZSB0aGUgI2lmZGVmIGlz
IGZpbmUgdG8gdXNlLg0KPiANCj4gTm8gZnVuY3Rpb25hbCBjaGFuZ2UuDQo+IA0KPiBTaWduZWQt
b2ZmLWJ5OiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPg0KUmV2aWV3
ZWQtYnk6IEJlcnRyYW5kIE1hcnF1aXMgPGJlcnRyYW5kLm1hcnF1aXNAYXJtLmNvbT4NCg0KQ2hl
ZXJzDQpCZXJ0cmFuZA0KDQo+IC0tLQ0KPiBDQzogQW50aG9ueSBQRVJBUkQgPGFudGhvbnkucGVy
YXJkQHZhdGVzLnRlY2g+DQo+IENDOiBNaWNoYWwgT3J6ZWwgPG1pY2hhbC5vcnplbEBhbWQuY29t
Pg0KPiBDQzogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPg0KPiBDQzogSnVsaWVuIEdy
YWxsIDxqdWxpZW5AeGVuLm9yZz4NCj4gQ0M6IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBj
aXRyaXguY29tPg0KPiBDQzogU3RlZmFubyBTdGFiZWxsaW5pIDxzc3RhYmVsbGluaUBrZXJuZWwu
b3JnPg0KPiBDQzogVm9sb2R5bXlyIEJhYmNodWsgPFZvbG9keW15cl9CYWJjaHVrQGVwYW0uY29t
Pg0KPiBDQzogQmVydHJhbmQgTWFycXVpcyA8YmVydHJhbmQubWFycXVpc0Bhcm0uY29tPg0KPiBD
QzogU2hhd24gQW5hc3Rhc2lvIDxzYW5hc3Rhc2lvQHJhcHRvcmVuZ2luZWVyaW5nLmNvbT4NCj4g
Q0M6IE9sZWtzaWkgS3Vyb2Noa28gPG9sZWtzaWkua3Vyb2Noa29AZ21haWwuY29tPg0KPiBDQzog
RGFuaWVsIFAuIFNtaXRoIDxkcHNtaXRoQGFwZXJ0dXNzb2x1dGlvbnMuY29tPg0KPiBDQzogTGlu
IExpdSA8bGluLmxpdUBjaXRyaXguY29tPg0KPiANCj4gdjY6DQo+ICogTmV3DQo+IA0KPiBFY2xh
aXIgbG9nIGZyb20gdjU6DQo+ICBodHRwczovL3VrMDEuei5hbnRpZ2VuYS5jb20vbC9ES1h6cWJX
aDZGT1Nlc19OLUdTNGtWclJvM3M4enhMfmdJd20yOC12eWtpbmVIOTAxX3h0WHBobFJoSGxUWUlI
V1dINl9TNzRaVFhhfk9KMW9lOERXUzBXQWdwT1MxQk9GSHR4WDJqUjZVLX5WUDMxSkRqWjQwaXRH
OHgzY2haflBCbjkzMWlyZEhORG5LdHhJTEh4S19GdlI3d3hGNjNLZFRadEhVYU92Q1dydEs0a19p
VlhWOS1IOW5YZkRVZF9xMWk5ZDYtcU9ZcEpCWjlOdnVsWHZPV2tIcDZZRHZQcUhNTER1YmN1cnIz
WnI2MHlRM3ZyYzhHRGdmU0VnYmtNNkNtejlRbUdxRW1fcXlFcU0xTjJyeXM2MjJybVZOZXQ2aFBw
SS1YbTZTSlJVZWVwSHB5bFZ1SzRmbFg0OEpwZjBqT3FIejRHYVRqb3V5NG5SQzAxN2ggDQo+IC0t
LQ0KPiB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hcm0vc21tdS12My5jIHwgOCArKysrKy0tLQ0K
PiAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQ0KPiANCj4g
ZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FybS9zbW11LXYzLmMgYi94ZW4v
ZHJpdmVycy9wYXNzdGhyb3VnaC9hcm0vc21tdS12My5jDQo+IGluZGV4IGNlZTU3MjQwMjIwMy4u
ZGYxNjIzNTA1NzhjIDEwMDY0NA0KPiAtLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hcm0v
c21tdS12My5jDQo+ICsrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FybS9zbW11LXYzLmMN
Cj4gQEAgLTcyMiwxNSArNzIyLDE3IEBAIHN0YXRpYyB2b2lkIGFybV9zbW11X3dyaXRlX3N0cnRh
Yl9lbnQoc3RydWN0IGFybV9zbW11X21hc3RlciAqbWFzdGVyLCB1MzIgc2lkLA0KPiB9DQo+IA0K
PiBpZiAoczJfY2ZnKSB7DQo+IC0gQlVHX09OKHN0ZV9saXZlKTsNCj4gLSBkc3RbMl0gPSBjcHVf
dG9fbGU2NCgNCj4gKyB1NjQgc3RydGFiID0NCj4gRklFTERfUFJFUChTVFJUQUJfU1RFXzJfUzJW
TUlELCBzMl9jZmctPnZtaWQpIHwNCj4gRklFTERfUFJFUChTVFJUQUJfU1RFXzJfVlRDUiwgczJf
Y2ZnLT52dGNyKSB8DQo+ICNpZmRlZiBfX0JJR19FTkRJQU4NCj4gU1RSVEFCX1NURV8yX1MyRU5E
SSB8DQo+ICNlbmRpZg0KPiBTVFJUQUJfU1RFXzJfUzJQVFcgfCBTVFJUQUJfU1RFXzJfUzJBQTY0
IHwNCj4gLSBTVFJUQUJfU1RFXzJfUzJSKTsNCj4gKyBTVFJUQUJfU1RFXzJfUzJSOw0KPiArDQo+
ICsgQlVHX09OKHN0ZV9saXZlKTsNCj4gKyBkc3RbMl0gPSBjcHVfdG9fbGU2NChzdHJ0YWIpOw0K
PiANCj4gZHN0WzNdID0gY3B1X3RvX2xlNjQoczJfY2ZnLT52dHRiciAmIFNUUlRBQl9TVEVfM19T
MlRUQl9NQVNLKTsNCj4gDQo+IC0tIA0KPiAyLjM5LjUNCj4gDQo+IA0KDQo=


From xen-devel-bounces@lists.xenproject.org Fri Apr 18 07:14:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 18 Apr 2025 07:14:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.958745.1351415 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5fvx-0001vo-Cc; Fri, 18 Apr 2025 07:14:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 958745.1351415; Fri, 18 Apr 2025 07: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 1u5fvx-0001uY-6O; Fri, 18 Apr 2025 07:14:45 +0000
Received: by outflank-mailman (input) for mailman id 958745;
 Fri, 18 Apr 2025 07: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=iJE8=XE=gmail.com=ubizjak@srs-se1.protection.inumbo.net>)
 id 1u5fvw-0001sw-H9
 for xen-devel@lists.xenproject.org; Fri, 18 Apr 2025 07:14:44 +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 cd1fc49e-1c24-11f0-9eb0-5ba50f476ded;
 Fri, 18 Apr 2025 09:14:43 +0200 (CEST)
Received: by mail-ed1-x52f.google.com with SMTP id
 4fb4d7f45d1cf-5f435c9f2f9so2471548a12.1
 for <xen-devel@lists.xenproject.org>; Fri, 18 Apr 2025 00:14:43 -0700 (PDT)
Received: from fedora.. ([193.77.86.199]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5f625a5ec5bsm667619a12.81.2025.04.18.00.14.41
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 18 Apr 2025 00:14:42 -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: cd1fc49e-1c24-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1744960483; x=1745565283; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=GFx34+qBm/59SvTL7iTt7bIIp4e1pGYsUrJXj+WCcsk=;
        b=kHT6I4JoRo4n958mb35EE3b/ndY7hpxvHJXRmaqzJmS919YL2lF3659og2rdiYdC8m
         oxBnAxosk2554CFMi5nP45Tl/ajFbl7e3FAIDVpOj6ix6gd12P7/PdysNSg9LZIOAL0t
         HkRAEUD6mBoH7y/8bDuqb92aaYU4NtNO9Ku05hdz9rco1RT4/A81Ifm3XeBKkMxtYwOV
         tE7OgBjNzLscdgwr5NEyTlkTJ9mDf/pdFJRl4dUWOtVKmGuNUXQK3jHLeGG5MRbDtvMv
         AdE+1CpAcubhCB/to1SIwRBN/6/pJGhcxRfnjvCC/vfVIVh7FcrYx7jtiVVL0YTdpV4h
         UzxA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744960483; x=1745565283;
        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=GFx34+qBm/59SvTL7iTt7bIIp4e1pGYsUrJXj+WCcsk=;
        b=cGlST7KWXQXrk5z1oG7KMABHLxRXQKf7Oozmc96cCC9GKFi88e1kbrTPoWoFREnibk
         JgG6Bw61xPKLHtpo4it9aMh1eqxrqGW8UNlRojR8aiJQ5/jLujAbBjzwaNmGk521nCpu
         kUn1c5CnBv+sOhCZ9Oi8ppTFK+oPmC2PDzoR96Tf8dwufS/pe2MkutHX1LXdxeEKR7nc
         26V0bNgjeA+QblXT+K+b6xVSLu6vyB3wjiPX7tnZ82TyKX9N2kpAfJ1LezSyxWAEFAo3
         N6m52x+OzV9HdO4G+eeJGuEpNZnmLkTHqQJKIBupfmfmo9QKUcl0ExofVSLXiMdjolpE
         PDSw==
X-Forwarded-Encrypted: i=1; AJvYcCW7d7yE3ObqaPvthE/FU4G+zLhj8Ys2OhWPkXqOvLIvAdyA4c8DaWqktxRAS5UEBczfvTN0z5YLV/8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxYwWlrFhzeO6j2zOwk3urr1s4omIPdv5m8QU8YKlIWK5gdWjR9
	sVi0/L62/0xq9iT7bo4eV06jX9itpJCd0x3BDDt+2pBlG7VIiiET
X-Gm-Gg: ASbGncs2OYaLbIjWZhznjCV2YhaqRo0DhbLOPel188YL2SajDHO7z64AnUtlaJJNUTZ
	8DClPnwEsIepN37dLfu11fgfmE8Rxo3thEcXoGNWy6NVlDVclsT/qFUZVzTrRHvkmmy4ZI/6MO0
	aq1htlC1GhVRVMBTGkx4fjEGD9Fo5fe6Vv8RyJjhr23Uc2pjsgEmxMr+dpXJVcqFgNSs2iWmhDN
	jAwMbJxFCpjzZ5YJHqKw3moMcKpjrNu3H9engc9Ch/2dIFsdpVBIPxySlh3GVsTWhHJhfQRQevk
	zTVv+vYnfKbL9lta3g5oZNum/u3XZUBP
X-Google-Smtp-Source: AGHT+IHyAv8ZFczf4w8OHn4dFYovzMpxaqvgJ/r0oLf6fENeJLUuhc5Zqo8P/+9SL6uhW52HFgUZ7w==
X-Received: by 2002:a17:907:6e8a:b0:aca:d4f0:2b9f with SMTP id a640c23a62f3a-acb74ad8451mr124874066b.10.1744960482716;
        Fri, 18 Apr 2025 00:14:42 -0700 (PDT)
From: Uros Bizjak <ubizjak@gmail.com>
To: x86@kernel.org,
	linux-video@atrey.karlin.mff.cuni.cz,
	xen-devel@lists.xenproject.org,
	linux-pm@vger.kernel.org,
	linux-kernel@vger.kernel.org
Cc: Uros Bizjak <ubizjak@gmail.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@kernel.org>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Pavel Machek <pavel@kernel.org>
Subject: [PATCH -tip v2 2/2] x86/asm: Remove semicolon from "rep" prefixes
Date: Fri, 18 Apr 2025 09:13:51 +0200
Message-ID: <20250418071437.4144391-2-ubizjak@gmail.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250418071437.4144391-1-ubizjak@gmail.com>
References: <20250418071437.4144391-1-ubizjak@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Minimum version of binutils required to compile the kernel is 2.25.
This version correctly handles the "rep" prefixes, so it is possible
to remove the semicolon, which was used to support ancient versions
of GNU as.

Due to the semicolon, the compiler considers "rep; insn" (or its
alternate "rep\n\tinsn" form) as two separate instructions. Removing
the semicolon makes asm length calculations more accurate, consequently
making scheduling and inlining decisions of the compiler more accurate.

Removing the semicolon also enables assembler checks involving "rep"
prefixes. Trying to assemble e.g. "rep addl %eax, %ebx" results in:

  Error: invalid instruction `add' after `rep'

Signed-off-by: Uros Bizjak <ubizjak@gmail.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Juergen Gross <jgross@suse.com>
Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Cc: "Rafael J. Wysocki" <rafael@kernel.org>
Cc: Pavel Machek <pavel@kernel.org>
---
v2: Split the patch from the previous version.
---
 arch/x86/include/asm/io.h            |  6 +++---
 arch/x86/include/asm/string_32.h     | 15 ++++++---------
 arch/x86/kernel/head_32.S            |  8 +++-----
 arch/x86/kernel/relocate_kernel_32.S |  6 +++---
 arch/x86/kernel/relocate_kernel_64.S |  6 +++---
 arch/x86/lib/iomem.c                 |  2 +-
 arch/x86/lib/string_32.c             | 17 ++++++-----------
 arch/x86/lib/strstr_32.c             |  6 ++----
 arch/x86/lib/usercopy_32.c           | 18 +++++++++---------
 arch/x86/platform/pvh/head.S         |  3 +--
 arch/x86/power/hibernate_asm_32.S    |  3 +--
 arch/x86/power/hibernate_asm_64.S    |  3 +--
 12 files changed, 39 insertions(+), 54 deletions(-)

diff --git a/arch/x86/include/asm/io.h b/arch/x86/include/asm/io.h
index e889c3bab5a2..ca309a3227c7 100644
--- a/arch/x86/include/asm/io.h
+++ b/arch/x86/include/asm/io.h
@@ -217,7 +217,7 @@ void memset_io(volatile void __iomem *, int, size_t);
 static inline void __iowrite32_copy(void __iomem *to, const void *from,
 				    size_t count)
 {
-	asm volatile("rep ; movsl"
+	asm volatile("rep movsl"
 		     : "=&c"(count), "=&D"(to), "=&S"(from)
 		     : "0"(count), "1"(to), "2"(from)
 		     : "memory");
@@ -282,7 +282,7 @@ static inline void outs##bwl(u16 port, const void *addr, unsigned long count) \
 			count--;					\
 		}							\
 	} else {							\
-		asm volatile("rep; outs" #bwl				\
+		asm volatile("rep outs" #bwl				\
 			     : "+S"(addr), "+c"(count)			\
 			     : "d"(port) : "memory");			\
 	}								\
@@ -298,7 +298,7 @@ static inline void ins##bwl(u16 port, void *addr, unsigned long count)	\
 			count--;					\
 		}							\
 	} else {							\
-		asm volatile("rep; ins" #bwl				\
+		asm volatile("rep ins" #bwl				\
 			     : "+D"(addr), "+c"(count)			\
 			     : "d"(port) : "memory");			\
 	}								\
diff --git a/arch/x86/include/asm/string_32.h b/arch/x86/include/asm/string_32.h
index 32c0d981a82a..e9cce169bb4c 100644
--- a/arch/x86/include/asm/string_32.h
+++ b/arch/x86/include/asm/string_32.h
@@ -33,11 +33,11 @@ extern size_t strlen(const char *s);
 static __always_inline void *__memcpy(void *to, const void *from, size_t n)
 {
 	int d0, d1, d2;
-	asm volatile("rep ; movsl\n\t"
+	asm volatile("rep movsl\n\t"
 		     "movl %4,%%ecx\n\t"
 		     "andl $3,%%ecx\n\t"
 		     "jz 1f\n\t"
-		     "rep ; movsb\n\t"
+		     "rep movsb\n\t"
 		     "1:"
 		     : "=&c" (d0), "=&D" (d1), "=&S" (d2)
 		     : "0" (n / 4), "g" (n), "1" ((long)to), "2" ((long)from)
@@ -89,7 +89,7 @@ static __always_inline void *__constant_memcpy(void *to, const void *from,
 	if (n >= 5 * 4) {
 		/* large block: use rep prefix */
 		int ecx;
-		asm volatile("rep ; movsl"
+		asm volatile("rep movsl"
 			     : "=&c" (ecx), "=&D" (edi), "=&S" (esi)
 			     : "0" (n / 4), "1" (edi), "2" (esi)
 			     : "memory"
@@ -165,8 +165,7 @@ extern void *memchr(const void *cs, int c, size_t count);
 static inline void *__memset_generic(void *s, char c, size_t count)
 {
 	int d0, d1;
-	asm volatile("rep\n\t"
-		     "stosb"
+	asm volatile("rep stosb"
 		     : "=&c" (d0), "=&D" (d1)
 		     : "a" (c), "1" (s), "0" (count)
 		     : "memory");
@@ -199,8 +198,7 @@ extern void *memset(void *, int, size_t);
 static inline void *memset16(uint16_t *s, uint16_t v, size_t n)
 {
 	int d0, d1;
-	asm volatile("rep\n\t"
-		     "stosw"
+	asm volatile("rep stosw"
 		     : "=&c" (d0), "=&D" (d1)
 		     : "a" (v), "1" (s), "0" (n)
 		     : "memory");
@@ -211,8 +209,7 @@ static inline void *memset16(uint16_t *s, uint16_t v, size_t n)
 static inline void *memset32(uint32_t *s, uint32_t v, size_t n)
 {
 	int d0, d1;
-	asm volatile("rep\n\t"
-		     "stosl"
+	asm volatile("rep stosl"
 		     : "=&c" (d0), "=&D" (d1)
 		     : "a" (v), "1" (s), "0" (n)
 		     : "memory");
diff --git a/arch/x86/kernel/head_32.S b/arch/x86/kernel/head_32.S
index 2e42056d2306..76743dfad6ab 100644
--- a/arch/x86/kernel/head_32.S
+++ b/arch/x86/kernel/head_32.S
@@ -86,7 +86,7 @@ SYM_CODE_START(startup_32)
 	movl $pa(__bss_stop),%ecx
 	subl %edi,%ecx
 	shrl $2,%ecx
-	rep ; stosl
+	rep stosl
 /*
  * Copy bootup parameters out of the way.
  * Note: %esi still has the pointer to the real-mode data.
@@ -98,15 +98,13 @@ SYM_CODE_START(startup_32)
 	movl $pa(boot_params),%edi
 	movl $(PARAM_SIZE/4),%ecx
 	cld
-	rep
-	movsl
+	rep movsl
 	movl pa(boot_params) + NEW_CL_POINTER,%esi
 	andl %esi,%esi
 	jz 1f			# No command line
 	movl $pa(boot_command_line),%edi
 	movl $(COMMAND_LINE_SIZE/4),%ecx
-	rep
-	movsl
+	rep movsl
 1:
 
 #ifdef CONFIG_OLPC
diff --git a/arch/x86/kernel/relocate_kernel_32.S b/arch/x86/kernel/relocate_kernel_32.S
index c7c4b1917336..57276f134d12 100644
--- a/arch/x86/kernel/relocate_kernel_32.S
+++ b/arch/x86/kernel/relocate_kernel_32.S
@@ -263,17 +263,17 @@ SYM_CODE_START_LOCAL_NOALIGN(swap_pages)
 
 	movl	%edx, %edi
 	movl    $1024, %ecx
-	rep ; movsl
+	rep movsl
 
 	movl	%ebp, %edi
 	movl	%eax, %esi
 	movl	$1024, %ecx
-	rep ; movsl
+	rep movsl
 
 	movl	%eax, %edi
 	movl	%edx, %esi
 	movl	$1024, %ecx
-	rep ; movsl
+	rep movsl
 
 	lea	PAGE_SIZE(%ebp), %esi
 	jmp     0b
diff --git a/arch/x86/kernel/relocate_kernel_64.S b/arch/x86/kernel/relocate_kernel_64.S
index 3062cb3efc44..1d6355227bf6 100644
--- a/arch/x86/kernel/relocate_kernel_64.S
+++ b/arch/x86/kernel/relocate_kernel_64.S
@@ -363,20 +363,20 @@ SYM_CODE_START_LOCAL_NOALIGN(swap_pages)
 	/* copy source page to swap page */
 	movq	kexec_pa_swap_page(%rip), %rdi
 	movl	$512, %ecx
-	rep ; movsq
+	rep movsq
 
 	/* copy destination page to source page */
 	movq	%rax, %rdi
 	movq	%rdx, %rsi
 	movl	$512, %ecx
-	rep ; movsq
+	rep movsq
 
 	/* copy swap page to destination page */
 	movq	%rdx, %rdi
 	movq	kexec_pa_swap_page(%rip), %rsi
 .Lnoswap:
 	movl	$512, %ecx
-	rep ; movsq
+	rep movsq
 
 	lea	PAGE_SIZE(%rax), %rsi
 	jmp	.Lloop
diff --git a/arch/x86/lib/iomem.c b/arch/x86/lib/iomem.c
index 5eecb45d05d5..c20e04764edc 100644
--- a/arch/x86/lib/iomem.c
+++ b/arch/x86/lib/iomem.c
@@ -10,7 +10,7 @@
 static __always_inline void rep_movs(void *to, const void *from, size_t n)
 {
 	unsigned long d0, d1, d2;
-	asm volatile("rep ; movsl\n\t"
+	asm volatile("rep movsl\n\t"
 		     "testb $2,%b4\n\t"
 		     "je 1f\n\t"
 		     "movsw\n"
diff --git a/arch/x86/lib/string_32.c b/arch/x86/lib/string_32.c
index 53b3f202267c..f87ec24fa579 100644
--- a/arch/x86/lib/string_32.c
+++ b/arch/x86/lib/string_32.c
@@ -40,8 +40,7 @@ char *strncpy(char *dest, const char *src, size_t count)
 		"stosb\n\t"
 		"testb %%al,%%al\n\t"
 		"jne 1b\n\t"
-		"rep\n\t"
-		"stosb\n"
+		"rep stosb\n"
 		"2:"
 		: "=&S" (d0), "=&D" (d1), "=&c" (d2), "=&a" (d3)
 		: "0" (src), "1" (dest), "2" (count) : "memory");
@@ -54,8 +53,7 @@ EXPORT_SYMBOL(strncpy);
 char *strcat(char *dest, const char *src)
 {
 	int d0, d1, d2, d3;
-	asm volatile("repne\n\t"
-		"scasb\n\t"
+	asm volatile("repne scasb\n\t"
 		"decl %1\n"
 		"1:\tlodsb\n\t"
 		"stosb\n\t"
@@ -72,8 +70,7 @@ EXPORT_SYMBOL(strcat);
 char *strncat(char *dest, const char *src, size_t count)
 {
 	int d0, d1, d2, d3;
-	asm volatile("repne\n\t"
-		"scasb\n\t"
+	asm volatile("repne scasb\n\t"
 		"decl %1\n\t"
 		"movl %8,%3\n"
 		"1:\tdecl %3\n\t"
@@ -167,8 +164,7 @@ size_t strlen(const char *s)
 {
 	int d0;
 	size_t res;
-	asm volatile("repne\n\t"
-		"scasb"
+	asm volatile("repne scasb"
 		: "=c" (res), "=&D" (d0)
 		: "1" (s), "a" (0), "0" (0xffffffffu)
 		: "memory");
@@ -184,8 +180,7 @@ void *memchr(const void *cs, int c, size_t count)
 	void *res;
 	if (!count)
 		return NULL;
-	asm volatile("repne\n\t"
-		"scasb\n\t"
+	asm volatile("repne scasb\n\t"
 		"je 1f\n\t"
 		"movl $1,%0\n"
 		"1:\tdecl %0"
@@ -202,7 +197,7 @@ void *memscan(void *addr, int c, size_t size)
 {
 	if (!size)
 		return addr;
-	asm volatile("repnz; scasb\n\t"
+	asm volatile("repnz scasb\n\t"
 	    "jnz 1f\n\t"
 	    "dec %%edi\n"
 	    "1:"
diff --git a/arch/x86/lib/strstr_32.c b/arch/x86/lib/strstr_32.c
index 38f37df056f7..28267985e85f 100644
--- a/arch/x86/lib/strstr_32.c
+++ b/arch/x86/lib/strstr_32.c
@@ -8,16 +8,14 @@ int	d0, d1;
 register char *__res;
 __asm__ __volatile__(
 	"movl %6,%%edi\n\t"
-	"repne\n\t"
-	"scasb\n\t"
+	"repne scasb\n\t"
 	"notl %%ecx\n\t"
 	"decl %%ecx\n\t"	/* NOTE! This also sets Z if searchstring='' */
 	"movl %%ecx,%%edx\n"
 	"1:\tmovl %6,%%edi\n\t"
 	"movl %%esi,%%eax\n\t"
 	"movl %%edx,%%ecx\n\t"
-	"repe\n\t"
-	"cmpsb\n\t"
+	"repe cmpsb\n\t"
 	"je 2f\n\t"		/* also works for empty string, see above */
 	"xchgl %%eax,%%esi\n\t"
 	"incl %%esi\n\t"
diff --git a/arch/x86/lib/usercopy_32.c b/arch/x86/lib/usercopy_32.c
index 422257c350c6..f6f436f1d573 100644
--- a/arch/x86/lib/usercopy_32.c
+++ b/arch/x86/lib/usercopy_32.c
@@ -38,9 +38,9 @@ do {									\
 	might_fault();							\
 	__asm__ __volatile__(						\
 		ASM_STAC "\n"						\
-		"0:	rep; stosl\n"					\
+		"0:	rep stosl\n"					\
 		"	movl %2,%0\n"					\
-		"1:	rep; stosb\n"					\
+		"1:	rep stosb\n"					\
 		"2: " ASM_CLAC "\n"					\
 		_ASM_EXTABLE_TYPE_REG(0b, 2b, EX_TYPE_UCOPY_LEN4, %2)	\
 		_ASM_EXTABLE_UA(1b, 2b)					\
@@ -140,9 +140,9 @@ __copy_user_intel(void __user *to, const void *from, unsigned long size)
 		       "       shrl  $2, %0\n"
 		       "       andl  $3, %%eax\n"
 		       "       cld\n"
-		       "99:    rep; movsl\n"
+		       "99:    rep movsl\n"
 		       "36:    movl %%eax, %0\n"
-		       "37:    rep; movsb\n"
+		       "37:    rep movsb\n"
 		       "100:\n"
 		       _ASM_EXTABLE_UA(1b, 100b)
 		       _ASM_EXTABLE_UA(2b, 100b)
@@ -242,9 +242,9 @@ static unsigned long __copy_user_intel_nocache(void *to,
 	       "        shrl  $2, %0\n"
 	       "        andl $3, %%eax\n"
 	       "        cld\n"
-	       "6:      rep; movsl\n"
+	       "6:      rep movsl\n"
 	       "        movl %%eax,%0\n"
-	       "7:      rep; movsb\n"
+	       "7:      rep movsb\n"
 	       "8:\n"
 	       _ASM_EXTABLE_UA(0b, 8b)
 	       _ASM_EXTABLE_UA(1b, 8b)
@@ -293,14 +293,14 @@ do {									\
 		"	negl %0\n"					\
 		"	andl $7,%0\n"					\
 		"	subl %0,%3\n"					\
-		"4:	rep; movsb\n"					\
+		"4:	rep movsb\n"					\
 		"	movl %3,%0\n"					\
 		"	shrl $2,%0\n"					\
 		"	andl $3,%3\n"					\
 		"	.align 2,0x90\n"				\
-		"0:	rep; movsl\n"					\
+		"0:	rep movsl\n"					\
 		"	movl %3,%0\n"					\
-		"1:	rep; movsb\n"					\
+		"1:	rep movsb\n"					\
 		"2:\n"							\
 		_ASM_EXTABLE_TYPE_REG(4b, 2b, EX_TYPE_UCOPY_LEN1, %3)	\
 		_ASM_EXTABLE_TYPE_REG(0b, 2b, EX_TYPE_UCOPY_LEN4, %3)	\
diff --git a/arch/x86/platform/pvh/head.S b/arch/x86/platform/pvh/head.S
index cfa18ec7d55f..1d78e5631bb8 100644
--- a/arch/x86/platform/pvh/head.S
+++ b/arch/x86/platform/pvh/head.S
@@ -87,8 +87,7 @@ SYM_CODE_START(pvh_start_xen)
 	mov %ebx, %esi
 	movl rva(pvh_start_info_sz)(%ebp), %ecx
 	shr $2,%ecx
-	rep
-	movsl
+	rep movsl
 
 	leal rva(early_stack_end)(%ebp), %esp
 
diff --git a/arch/x86/power/hibernate_asm_32.S b/arch/x86/power/hibernate_asm_32.S
index 5606a15cf9a1..fb910d9f8471 100644
--- a/arch/x86/power/hibernate_asm_32.S
+++ b/arch/x86/power/hibernate_asm_32.S
@@ -69,8 +69,7 @@ copy_loop:
 	movl	pbe_orig_address(%edx), %edi
 
 	movl	$(PAGE_SIZE >> 2), %ecx
-	rep
-	movsl
+	rep movsl
 
 	movl	pbe_next(%edx), %edx
 	jmp	copy_loop
diff --git a/arch/x86/power/hibernate_asm_64.S b/arch/x86/power/hibernate_asm_64.S
index 66f066b8feda..c73be0a02a6c 100644
--- a/arch/x86/power/hibernate_asm_64.S
+++ b/arch/x86/power/hibernate_asm_64.S
@@ -138,8 +138,7 @@ SYM_FUNC_START(core_restore_code)
 	movq	pbe_address(%rdx), %rsi
 	movq	pbe_orig_address(%rdx), %rdi
 	movq	$(PAGE_SIZE >> 3), %rcx
-	rep
-	movsq
+	rep movsq
 
 	/* progress to the next pbe */
 	movq	pbe_next(%rdx), %rdx
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Fri Apr 18 07:14:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 18 Apr 2025 07:14:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.958744.1351408 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5fvx-0001tE-2L; Fri, 18 Apr 2025 07:14:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 958744.1351408; Fri, 18 Apr 2025 07: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 1u5fvw-0001t7-W1; Fri, 18 Apr 2025 07:14:44 +0000
Received: by outflank-mailman (input) for mailman id 958744;
 Fri, 18 Apr 2025 07: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=iJE8=XE=gmail.com=ubizjak@srs-se1.protection.inumbo.net>)
 id 1u5fvv-0001sw-WE
 for xen-devel@lists.xenproject.org; Fri, 18 Apr 2025 07:14:44 +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 cc5cd896-1c24-11f0-9eb0-5ba50f476ded;
 Fri, 18 Apr 2025 09:14:42 +0200 (CEST)
Received: by mail-ed1-x532.google.com with SMTP id
 4fb4d7f45d1cf-5f4d0da2d2cso3177791a12.3
 for <xen-devel@lists.xenproject.org>; Fri, 18 Apr 2025 00:14:42 -0700 (PDT)
Received: from fedora.. ([193.77.86.199]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5f625a5ec5bsm667619a12.81.2025.04.18.00.14.40
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 18 Apr 2025 00:14: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: cc5cd896-1c24-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1744960482; x=1745565282; 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=5woHMQeMVJnProeJ/6Cdzx+SnUrs7izAlab21WdVNXo=;
        b=nPHz7SB8ADW+bx8JJySu7MeKC9dBoZKdKFXJRIEMu8ji9icdwpVlMT8ivALwp/hqBf
         GXpiBwS00uczmmolezcWOlVviDjlEGs3ZUhKaoqYgfduVKJc6D3nyvbsoCqKqBiqBqXd
         VbFfXN+K2uyNs3cxOvd61NZ/E/T04Tthk/ga/BRIC9mgoNbTpa9Cg+HxzPMS/B8RSKnN
         OP08y6aZPsDlgdEPK2RaCDBlhiImxUpVZWcqKcCYHxNkxM0J0RmukNSd2WOlQWuY4oXq
         D72nqvJ+ZhdNLoXg1cTO5Z4FSY3/mWYG5fPGv10Yvjp2V6DzqTjOg+O52FETvgXz92bj
         mtnQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744960482; x=1745565282;
        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=5woHMQeMVJnProeJ/6Cdzx+SnUrs7izAlab21WdVNXo=;
        b=tBtOjFE7z6XUzxmcr+5IYdt0mEqADG32GWvBNcT5Rpz65waGaHrxPhei92XsxH6SHB
         D2445H9Vkzdskd0uIYfz/mUSmACA5WMdyBtYDWx4VAe9QJPAIs7yrkt7N4OByPkRwalE
         pFS7uAveh0IpKzU5xgPyPD5y7KQzplitOgZ02gLuCY0NVDpP/dkbSZPp7kEJXIWjHmZt
         IOcBdZaGrNuwh6EV1G3KchmcG3QEVyjW/vjf7Vynqo5tAmzG2kJajUOrYQ28/oZQEtS/
         J/NnUwczPgU/h3UHn5c8u2G0OF7tzJ7NUjB1Sl5XQ4fsLkfnAz8VAZV4hQ2L9DyUxznt
         PNGQ==
X-Forwarded-Encrypted: i=1; AJvYcCVqK0BVLhZVOyw29Vq3kIstEmZ3B6CjKWv0YlkBgxxa9S8Vw1vJtaRUAXh7X48dBPMGjZQT4kxqFWc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxxkT6pojfje5L1gWCWKiVcRcSq8M5VAY5SahDSDa5wxJkt2sIv
	XZw+t0H6cKZkvaqyFfycBrXytB13ivBq9dWmke/mYfe80IvCbbc+
X-Gm-Gg: ASbGncsSmXjxxapfT8/IHyNMVeV2UvOjaXZztDsUSXVND22qw3fIMNwe8krDeIVw6vL
	RmoPJoZkooRi+Qpo1yCZdGx66fF43ZIGU4yI/bUxli1q3ZxetBLXfpMfCSn5XXGD6Mh917gFb67
	KXlSBcmIN9ppUf4vYTeFuhPluIjuFwBXafXwDk/s+QVjaIaYjdy6+s/ozi89RNhUouW6G3mS3fr
	VM5qSVLICf1YyD4lUCB3L1t2ZwIMtUwsr+rcRC7d/+wWHrdqI2Gi+1eDAZCsSkvs0Qb4zJ6JiLN
	26kKQOJiQfk1vcYei1yV8cc4jMIQQeAOEPGXx7p850s=
X-Google-Smtp-Source: AGHT+IEMlcURDofq+umzsuPFLiss3QdLovTjMZcPPVHbY8ksiEyTxikdvtWBNS1fdkBA78M8BMMovw==
X-Received: by 2002:a05:6402:1e8e:b0:5f4:c2d0:fbb2 with SMTP id 4fb4d7f45d1cf-5f628597fbbmr1249814a12.18.1744960481435;
        Fri, 18 Apr 2025 00:14:41 -0700 (PDT)
From: Uros Bizjak <ubizjak@gmail.com>
To: x86@kernel.org,
	linux-video@atrey.karlin.mff.cuni.cz,
	xen-devel@lists.xenproject.org,
	linux-pm@vger.kernel.org,
	linux-kernel@vger.kernel.org
Cc: Uros Bizjak <ubizjak@gmail.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@kernel.org>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Martin Mares <mj@ucw.cz>
Subject: [PATCH -tip v2 1/2] x86/boot: Remove semicolon from "rep" prefixes
Date: Fri, 18 Apr 2025 09:13:50 +0200
Message-ID: <20250418071437.4144391-1-ubizjak@gmail.com>
X-Mailer: git-send-email 2.49.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Minimum version of binutils required to compile the kernel is 2.25.
This version correctly handles the "rep" prefixes, so it is possible
to remove the semicolon, which was used to support ancient versions
of GNU as.

Due to the semicolon, the compiler considers "rep; insn" (or its
alternate "rep\n\tinsn" form) as two separate instructions. Removing
the semicolon makes asm length calculations more accurate, consequently
making scheduling and inlining decisions of the compiler more accurate.

Removing the semicolon also enables assembler checks involving "rep"
prefixes. Trying to assemble e.g. "rep addl %eax, %ebx" results in:

  Error: invalid instruction `add' after `rep'

Signed-off-by: Uros Bizjak <ubizjak@gmail.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Martin Mares <mj@ucw.cz>
---
v2: Split the patch from the previous version.
---
 arch/x86/boot/bioscall.S          | 4 ++--
 arch/x86/boot/boot.h              | 4 ++--
 arch/x86/boot/compressed/string.c | 8 ++++----
 arch/x86/boot/copy.S              | 8 ++++----
 arch/x86/boot/header.S            | 2 +-
 arch/x86/boot/string.c            | 2 +-
 arch/x86/boot/video.c             | 2 +-
 7 files changed, 15 insertions(+), 15 deletions(-)

diff --git a/arch/x86/boot/bioscall.S b/arch/x86/boot/bioscall.S
index aa9b96457584..cf4a6155714e 100644
--- a/arch/x86/boot/bioscall.S
+++ b/arch/x86/boot/bioscall.S
@@ -32,7 +32,7 @@ intcall:
 	movw	%dx, %si
 	movw	%sp, %di
 	movw	$11, %cx
-	rep; movsl
+	rep movsl
 
 	/* Pop full state from the stack */
 	popal
@@ -67,7 +67,7 @@ intcall:
 	jz	4f
 	movw	%sp, %si
 	movw	$11, %cx
-	rep; movsl
+	rep movsl
 4:	addw	$44, %sp
 
 	/* Restore state and return */
diff --git a/arch/x86/boot/boot.h b/arch/x86/boot/boot.h
index 38f17a1e1e36..f3771a6373c7 100644
--- a/arch/x86/boot/boot.h
+++ b/arch/x86/boot/boot.h
@@ -155,14 +155,14 @@ static inline void wrgs32(u32 v, addr_t addr)
 static inline bool memcmp_fs(const void *s1, addr_t s2, size_t len)
 {
 	bool diff;
-	asm volatile("fs; repe; cmpsb" CC_SET(nz)
+	asm volatile("fs repe cmpsb" CC_SET(nz)
 		     : CC_OUT(nz) (diff), "+D" (s1), "+S" (s2), "+c" (len));
 	return diff;
 }
 static inline bool memcmp_gs(const void *s1, addr_t s2, size_t len)
 {
 	bool diff;
-	asm volatile("gs; repe; cmpsb" CC_SET(nz)
+	asm volatile("gs repe cmpsb" CC_SET(nz)
 		     : CC_OUT(nz) (diff), "+D" (s1), "+S" (s2), "+c" (len));
 	return diff;
 }
diff --git a/arch/x86/boot/compressed/string.c b/arch/x86/boot/compressed/string.c
index 81fc1eaa3229..9af19d9614cb 100644
--- a/arch/x86/boot/compressed/string.c
+++ b/arch/x86/boot/compressed/string.c
@@ -15,9 +15,9 @@ static void *____memcpy(void *dest, const void *src, size_t n)
 {
 	int d0, d1, d2;
 	asm volatile(
-		"rep ; movsl\n\t"
+		"rep movsl\n\t"
 		"movl %4,%%ecx\n\t"
-		"rep ; movsb\n\t"
+		"rep movsb"
 		: "=&c" (d0), "=&D" (d1), "=&S" (d2)
 		: "0" (n >> 2), "g" (n & 3), "1" (dest), "2" (src)
 		: "memory");
@@ -29,9 +29,9 @@ static void *____memcpy(void *dest, const void *src, size_t n)
 {
 	long d0, d1, d2;
 	asm volatile(
-		"rep ; movsq\n\t"
+		"rep movsq\n\t"
 		"movq %4,%%rcx\n\t"
-		"rep ; movsb\n\t"
+		"rep movsb"
 		: "=&c" (d0), "=&D" (d1), "=&S" (d2)
 		: "0" (n >> 3), "g" (n & 7), "1" (dest), "2" (src)
 		: "memory");
diff --git a/arch/x86/boot/copy.S b/arch/x86/boot/copy.S
index 6afd05e819d2..3973a67cd04e 100644
--- a/arch/x86/boot/copy.S
+++ b/arch/x86/boot/copy.S
@@ -22,10 +22,10 @@ SYM_FUNC_START_NOALIGN(memcpy)
 	movw	%dx, %si
 	pushw	%cx
 	shrw	$2, %cx
-	rep; movsl
+	rep movsl
 	popw	%cx
 	andw	$3, %cx
-	rep; movsb
+	rep movsb
 	popw	%di
 	popw	%si
 	retl
@@ -38,10 +38,10 @@ SYM_FUNC_START_NOALIGN(memset)
 	imull	$0x01010101,%eax
 	pushw	%cx
 	shrw	$2, %cx
-	rep; stosl
+	rep stosl
 	popw	%cx
 	andw	$3, %cx
-	rep; stosb
+	rep stosb
 	popw	%di
 	retl
 SYM_FUNC_END(memset)
diff --git a/arch/x86/boot/header.S b/arch/x86/boot/header.S
index b5c79f43359b..9cb91421b4e4 100644
--- a/arch/x86/boot/header.S
+++ b/arch/x86/boot/header.S
@@ -585,7 +585,7 @@ start_of_setup:
 	xorl	%eax, %eax
 	subw	%di, %cx
 	shrw	$2, %cx
-	rep; stosl
+	rep stosl
 
 # Jump to C code (should not return)
 	calll	main
diff --git a/arch/x86/boot/string.c b/arch/x86/boot/string.c
index 84f7a883ce1e..f35369bb14c5 100644
--- a/arch/x86/boot/string.c
+++ b/arch/x86/boot/string.c
@@ -32,7 +32,7 @@
 int memcmp(const void *s1, const void *s2, size_t len)
 {
 	bool diff;
-	asm("repe; cmpsb" CC_SET(nz)
+	asm("repe cmpsb" CC_SET(nz)
 	    : CC_OUT(nz) (diff), "+D" (s1), "+S" (s2), "+c" (len));
 	return diff;
 }
diff --git a/arch/x86/boot/video.c b/arch/x86/boot/video.c
index f2e96905b3fe..0641c8c46aee 100644
--- a/arch/x86/boot/video.c
+++ b/arch/x86/boot/video.c
@@ -292,7 +292,7 @@ static void restore_screen(void)
 			     "shrw %%cx ; "
 			     "jnc 1f ; "
 			     "stosw \n\t"
-			     "1: rep;stosl ; "
+			     "1: rep stosl ; "
 			     "popw %%es"
 			     : "+D" (dst), "+c" (npad)
 			     : "bdS" (video_segment),
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Fri Apr 18 09:46:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 18 Apr 2025 09:46:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.958827.1351429 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5iIy-0000ln-5z; Fri, 18 Apr 2025 09:46:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 958827.1351429; Fri, 18 Apr 2025 09: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 1u5iIy-0000lf-1Y; Fri, 18 Apr 2025 09:46:40 +0000
Received: by outflank-mailman (input) for mailman id 958827;
 Fri, 18 Apr 2025 09:46: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=+VdL=XE=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1u5iIx-0000lW-46
 for xen-devel@lists.xenproject.org; Fri, 18 Apr 2025 09:46:39 +0000
Received: from NAM12-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam12on2062e.outbound.protection.outlook.com
 [2a01:111:f403:200a::62e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 044189a8-1c3a-11f0-9eb0-5ba50f476ded;
 Fri, 18 Apr 2025 11:46:37 +0200 (CEST)
Received: from DM4PR12MB8451.namprd12.prod.outlook.com (2603:10b6:8:182::7) by
 PH7PR12MB6563.namprd12.prod.outlook.com (2603:10b6:510:211::12) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.36; Fri, 18 Apr
 2025 09:46:31 +0000
Received: from DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::b04e:2da5:7189:4c4d]) by DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::b04e:2da5:7189:4c4d%4]) with mapi id 15.20.8655.022; Fri, 18 Apr 2025
 09:46: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: 044189a8-1c3a-11f0-9eb0-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=I7JjU8cRAwOSzMwUR3zZqODH1gNWNa8pNg2wz0HNfHaRL6I0vBmU2PZNtIEQV3ValjZT0nn6L89lFtMFUQkUsUSp40mnWrADmQKazgmYdDIH5Z/TWmG+gUk1C2UBOdUx4COrov3A02Q6/7x+OFD5WB6lJB5qcfsxSg3HbjFtsWk/ERpZsJlxPVZlzXJX/vr22e3b5Iru3T5zaPvplZUnWMN7OMMoK9+g3Xly72GuJ62cf+GD3n/10+BU8p42KFaPt2r/MCUiFK8HTAwPROdIvRAfDA/y+gjIuVbnNResJUKjK0xMVl2L3V2yILSUf2EpxPNJ08S26EFhdhhouvjDWQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=e0gB7+lmym7cS5JIqUeXEHREwKoTG13rs0xXMLaym4Y=;
 b=tOQWZcjhJl56SqYE5o6bVopmAMlcdsDVnV6L3oDcd5Kamvvof7GQuuzJKhxLgUYSo7IPZnCStp6fG4UKKzAPZJ7keGsDqEHFPKS7MaucNF+8V0NdU04gCYMlhC0Z9+3shuv6zTjjFJCfAnM744xFxU0vd+tAFUve8YEyyvutZjNiVi+pY8ETSlamreHszDidNjkNlh2ElfeCz0f3ZmmKjRJdyo/idUzkApO0bBJBBrMWpZnsYaegn1jE1PPT3genVRGr2p9BEFBz1VeWb7gSNUEOg5/A9Sh1QSSkxxYGaj2oFbTVLvDD3VbCxS2Hm7hX8jEOIMq/ZkECp57hDYQ0Fg==
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=e0gB7+lmym7cS5JIqUeXEHREwKoTG13rs0xXMLaym4Y=;
 b=EANls3O7XiV2Tae+3jlk+ds31s8mruf4dcG+qcPqK7fSEKahqWe2M1+HACelSQOvZosWBDZJ94pIlTyBuL4JgYXd04MoU8RJmImU5SXkH6b5cYfOMBN/Ve2inzQmeVLhJDqjJ4LY33h4Dedfiu2TTsLyalMzoHoXJbZYGIo5Hd4=
From: "Penny, Zheng" <penny.zheng@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "Huang, Ray" <Ray.Huang@amd.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, "Orzel, Michal" <Michal.Orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Alistair Francis
	<alistair.francis@wdc.com>, Bob Eshleman <bobbyeshleman@gmail.com>, Connor
 Davis <connojdavis@gmail.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	"Stabellini, Stefano" <stefano.stabellini@amd.com>, Sergiy Kibrik
	<Sergiy_Kibrik@epam.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: RE: [PATCH v2 18/19] xen/sysctl: wrap around arch-specific
 arch_do_sysctl
Thread-Topic: [PATCH v2 18/19] xen/sysctl: wrap around arch-specific
 arch_do_sysctl
Thread-Index: AQHbnhOEhC4MbJSWBkeJErel9AvRkLOO7ZUAgBpaesA=
Date: Fri, 18 Apr 2025 09:46:31 +0000
Message-ID:
 <DM4PR12MB845116DF8BF05D205BD8622FE1BF2@DM4PR12MB8451.namprd12.prod.outlook.com>
References: <20250326055053.3313146-1-Penny.Zheng@amd.com>
 <20250326055053.3313146-19-Penny.Zheng@amd.com>
 <33b166be-21db-473e-a59a-3779436c0494@suse.com>
In-Reply-To: <33b166be-21db-473e-a59a-3779436c0494@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
 MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_ActionId=811c2760-efa1-4230-9046-6aff4bb3dab4;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_ContentBits=0;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Enabled=true;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Method=Privileged;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Name=Open
 Source;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SetDate=2025-04-18T09:46:24Z;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Tag=10,
 0, 1, 1;
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DM4PR12MB8451:EE_|PH7PR12MB6563:EE_
x-ms-office365-filtering-correlation-id: 851682a7-708c-4337-6654-08dd7e5de5e9
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|7416014|366016|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?S0pOWnFiUnhEYVJMZFRuT2RvcUMrV0dWOEJTRGZjcFJvbS85anU2WW9KZWI3?=
 =?utf-8?B?VEtPVkF2eXZpR0VWQnVZSW5mMXRQWGJEbndXYkNsZGlnMDF2SjU1bW51TDkr?=
 =?utf-8?B?Z0RGRklibjJmcFg5MEtzNHQwcndJRjBiV2RpTG5mdGJQS2hxbTRpOE4yRWE4?=
 =?utf-8?B?MCszVDNNOGFhT3RYWUZTV0hNcmRZQnN1TU9LM2U1YzFaN2FsNksrdDMzVlc4?=
 =?utf-8?B?QTdCUkh5TDVWTUNKVEVzbWlQZnRDeWI3TFE1dXBzYlI4Qjg5c3QrMVdGRjFw?=
 =?utf-8?B?dEJLUElic1B6L2ZmQnUzV2JwUUNjUXZNdlUvdHdhdlFyMlJONVA3N2R1Y1A2?=
 =?utf-8?B?SWhvdXFmSDVnbEVxamRxL0d2UlYyMGsvVzF6UGdoUHJVRHFCZWtLSldxcVUv?=
 =?utf-8?B?dkVqT2Y2MDlzMytXaUsyNGQ4Z3hlNU5ZTVRwRmpYRjJLd1dyZGxIK1RVZVZL?=
 =?utf-8?B?TG9waHZ5TXgxUDUyY3NZc0hndVFac2dFNXNCNnRGNlkyZUNybWdXSVdZOFRH?=
 =?utf-8?B?RWF5UlUrbVAyeFNHK3NFVVhQZ1FOdUpDR1RLWkhSTk1EY0kyQXhYdjVCSGdD?=
 =?utf-8?B?bWZSL0J0R2VCbU5SWWJ5T0FFMmV4ODVCbmtKenpkWHRrcTlWYy9OUFQwOFhC?=
 =?utf-8?B?OXBxYThVbGpoREErUlY1TkNEZ2JlTFhCQXFLMS9pMlNDTlRwSlcwa0tONUUv?=
 =?utf-8?B?UW16V1pPWWRnbzhMY0trZUVMNGtkeFFhaC9SVEZyU0FXczZ6ZnFrKytmQWMy?=
 =?utf-8?B?amc5WkhxR2xRUWhJa0toUkxMMUI5T0RtemJUZjFrZXN2cXkzNndhOUY4RDUr?=
 =?utf-8?B?cEtyZXg5NC9YNmpSS3hTTEM2YlJLTDFsRDJRZS8yMVlnOCszWUtHYWVYMHVB?=
 =?utf-8?B?NmhLZnhRQkM2MExCWVBtU3k4OWN2VStabWZick5TY0xuNGJ0b3QxY0VHUFZU?=
 =?utf-8?B?OVhWSktuVVdHVnlFejk5RzFTa3hVVzVrUG02SXArdWFrOTI1UjliZVhKNG5p?=
 =?utf-8?B?OEN6cnlrZ3doc3NTNVpsbElZelQxRGhJRXFYM0twMURzQWFreUl0OTc4Y3d1?=
 =?utf-8?B?UHJCNWFTeU5odGxVY2ZyeHhWOTM3VDVEOTEwRjloMU1NS09DajZ5algxNmNG?=
 =?utf-8?B?eFladEVsR3Npd3ROYmZJZXNUUUxKZHg2c2hLZURZS3htdktTdVZ3TzlxRWJ5?=
 =?utf-8?B?R2drZGFabG5jeGVnai8wVzFuQ0w4cU9iakFNN2lRbUQyQXJlc2t2bjJRbm14?=
 =?utf-8?B?V0V3MUVEb3l0K2tTNzFuUCtzQUdGR293Um9pVXdQWkN5WkJITkhCT1gvUVRn?=
 =?utf-8?B?V011MlgybndqZlZKMFlVOGVJa0h6SlJ3bzZkYkdQSERsWUEyZWV2RGgyV0Rq?=
 =?utf-8?B?dmV1dUtnRmNUY255bEJOcThCRE9QL2FvbWZ6aGJPMFA5VmxTWk51eWc1anpv?=
 =?utf-8?B?WFhpQ3V1N1dsSXlKcXdrb0lKaURVR0FJT1p0djJmUndxbDdRc0wyMGxaMEVH?=
 =?utf-8?B?OWdEVzVjNFFPSEtpVFV6Y081NjBjTStVTmZJUEIwVmFQQWdCQ0Y4Y0lzcWZL?=
 =?utf-8?B?eUNXc3djVENBbk9yVktxZ3l5ZkdmNS9yempSNDRmL2tVSDBabVlSUllIc0ZH?=
 =?utf-8?B?ZU5NcjJNallRWEtRaHUwYjdpSlRhbllVU000RGdncmcxUis0dzJXbUJFcU9H?=
 =?utf-8?B?N1IyN0ROMlROL1lxRERyYUdpcHc3S0VxbG5adHcyQzJ1UEh5djdjVjVtd3Qv?=
 =?utf-8?B?RWg1eXdBNlA3eExRYW45NFpJbHdGbnd3c3FpSEFxNkR0T25CcTBnNGljY3ht?=
 =?utf-8?B?Y1hrSlM3Rmg3ZzhQL2xKSGUzN2VNT3FUZWlIMlp4Z1g5VCs5dDkrTlA1OWJy?=
 =?utf-8?B?bTFlRDYwRUxVcDBJb2tKSlZPYnpGYlI5YWpkWEV5QkFBbzNzTXFUSUFTSGRK?=
 =?utf-8?B?cW02K2ZnNXhmRWZ1UFR0YTlUQklyNnF5bklER2JlOWptRXlMSERySUNMcTFa?=
 =?utf-8?B?QWlIUnIrM2l3PT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB8451.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(366016)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?ZHdMbGVRS1I5ZmRmbEFiVldlczliY3dweTZEWnlmY25zWWVlSlBjOHF5cTBl?=
 =?utf-8?B?azNmYnpmZUZJQ0NoalEzL09YcG5LY0hTdVp3SkUvakhtZGljNnM5TXpQdW5D?=
 =?utf-8?B?eDgrL0kzK0kwWEZUNytITjhoUTZuZUFLT3pnaitOR29MbGx0T3h5S0JRYUVX?=
 =?utf-8?B?azdMQ3NNTDgzS2ZDMkpVN1RrRzZ2dXQ5QjRRcXpZd0JuZWx5Nlp4VG9xTW1I?=
 =?utf-8?B?b0hQeVVMRlRFTzBXWXdHY1huSU1tUkJmaVdIS3VuV0FvQ3l3dzlscXZhRW9S?=
 =?utf-8?B?MzgrVjlxbTNsdlM0alN5RWZVSTFxcnE3RFlhSnZ3T1l0Y3hvV3hQSC9DOU03?=
 =?utf-8?B?Q2diVC9pb25xRXI0WC94UXJtbVo4L3duZVo4eFVUeUpqdXVzQzIrTTZ6c3VP?=
 =?utf-8?B?WjZRSVAvSlpuSGtES0JXQjBmbGJkYldPM3NXbk53MlBYVVRJNTdsSUIxdlBI?=
 =?utf-8?B?SkY5R2QyODY1dkFEVjZSVStKbmJERExRZVdXSlFnajBkTzlxRG5neExoV0ZL?=
 =?utf-8?B?ZUZxV1lNRUF5dndpekdTKzZqaGk5RmZHVkltdzM4WkFMZWU1eVltc3dETFFT?=
 =?utf-8?B?VkQ2Z1hVUHcwdTV2OXFKVm8vUEpuMjFxVWE4WG9HSWlRUURnVDk1QWNENjVB?=
 =?utf-8?B?OUUyOFZuYVd0Sm1iNGYxR0pKUEZMMkZ3ZVJBaUhEVmlpTzNnWVVJRXlWV243?=
 =?utf-8?B?N2NIYUxmd2pVeHkyUHFuLytueGlvMFdqUEVQQm5mRy9IZ1g4S2pOWVdMUmR0?=
 =?utf-8?B?TUxuRWZQT1lBRGdTVGtEcUNTekZXNFROSEpmdmcydXFrT2dUMFRzcHNCcy9a?=
 =?utf-8?B?Uy9qb2YvMXdVSktyczU3em9iWVp6eE1NRUFoazZzK3pKL0lWeFlBZGIrRzRv?=
 =?utf-8?B?N0o0ay80VjBZN1dsSUFmQVhPODFaT2d6MnE2dDkvdURnaWFOZFFkMEcwZVJB?=
 =?utf-8?B?MDY5ZStOUXdhODlVRG04UXdodHF3aHpMU3J0R1dqZ0VaUFQrSkFmV3RybDRE?=
 =?utf-8?B?cmhHSWp0YWwvVHVYaW9TRzQvd0E3ZnU1ZWYvRk9DR0ZaL21jMXRwcVViNmox?=
 =?utf-8?B?b0V5RlFBaTVSRW1yWXVKVjluTFo2QVdyVVpBdmg3OXphMHJ6eWZhK3Qrb1BK?=
 =?utf-8?B?WnBKR090bWpqUlI2aDRYcnV5WWQ4Y0FiTW85VHVrRWt2K3hMcVdpdityeXhx?=
 =?utf-8?B?WldUbkt0dWZYa1haeSs3VnZOUUwzdnYwRXdKWFFKd0pVWVlhSGh2US96NTFO?=
 =?utf-8?B?Q2ZxeWxCOU5Od04wa2d2TkhGaTZ6OGVaYTRvU3BOSGtKdjJjdmZBQkFxSmRm?=
 =?utf-8?B?azJTRmxqWEIrVTVNdjIvcHQxUjFEaGZ1ajZjcUc1V2lzRENiQnozM2JYcHNq?=
 =?utf-8?B?VC9Eem8yTnBqWkpPbGZXU3h5cHlERGFoN1BJRDdDWVBjbUFoY3J4NDFKcXhF?=
 =?utf-8?B?V2ZTL0gvRlllbzBEUjNpa1pTWThSMDIvc1JHdFBIZHdMRW50SXlRTmZGMnZT?=
 =?utf-8?B?UWFIV2ZLdW1DaTFPdTF0c1dBN1pXNGIvNWlacFhWalJVWTRaY1hFYVJZRFVN?=
 =?utf-8?B?U08vaXRtalByYURLSitVRklJRnY4TFhJZ0dDZXZZUVJQQzU1SlpRdXVsTHlN?=
 =?utf-8?B?WWZ0dkVoZ1d3RjQ0N0xUWEcwaTJPY1YvVEVBYXA0UmkraCtFR3dIakxYUHBZ?=
 =?utf-8?B?aGtRd3JVcWJ4Vk9ESGtRM0FiZlBxRFJYMW1DbEpvZE4xSFVCSzhYYU1OMjNk?=
 =?utf-8?B?VldoWkxHZnU5TkpQMFZjR3NEMFd0UmJsTjhaazZaNkhlaCtBYmNSYXoyOFpr?=
 =?utf-8?B?M3FNajh5RFdvU2hVazN6WS80VmZUUW4wanQ1TTI0L3hWb2o4c0pEeStpS1Uv?=
 =?utf-8?B?NGxPKzhsc1ZuSjZMbkVFSmhyV0JpQkFTanBhekJmNEVjZnlvK3plZWEzNnJS?=
 =?utf-8?B?MHR0N04vcDZ0S0N0anZOaWNpaTRHVnMvYTVDcjRtOERLS3Z0aGRlL1RwcGtS?=
 =?utf-8?B?RUZpbnZqYWtHY2FQOHNKL2dVWlQ4cG5HdWExN0VHdExvMGxtQ3NyMkRRZWpN?=
 =?utf-8?B?bVlBVzNSWXVtWjlvdlpDSFdEZU5pTE9oQ0RjOHQvcnRBWmtKV3lSNThCUC9w?=
 =?utf-8?Q?tobI=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB8451.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 851682a7-708c-4337-6654-08dd7e5de5e9
X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Apr 2025 09:46:31.0244
 (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: 0pkZ9D7ELojR76pQpKAkJDacvceM+8O/EtFcvjGGQlt4gnb5T2Ggneu9vVptU8ois92sZ5ONZRVe4CDTEW3L7Q==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB6563

W1B1YmxpY10NCg0KSGnvvIwNCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9t
OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQo+IFNlbnQ6IFR1ZXNkYXksIEFwcmls
IDEsIDIwMjUgMTA6NDcgUE0NCj4gVG86IFBlbm55LCBaaGVuZyA8cGVubnkuemhlbmdAYW1kLmNv
bT4NCj4gQ2M6IEh1YW5nLCBSYXkgPFJheS5IdWFuZ0BhbWQuY29tPjsgU3RlZmFubyBTdGFiZWxs
aW5pDQo+IDxzc3RhYmVsbGluaUBrZXJuZWwub3JnPjsgSnVsaWVuIEdyYWxsIDxqdWxpZW5AeGVu
Lm9yZz47IEJlcnRyYW5kIE1hcnF1aXMNCj4gPGJlcnRyYW5kLm1hcnF1aXNAYXJtLmNvbT47IE9y
emVsLCBNaWNoYWwgPE1pY2hhbC5PcnplbEBhbWQuY29tPjsNCj4gVm9sb2R5bXlyIEJhYmNodWsg
PFZvbG9keW15cl9CYWJjaHVrQGVwYW0uY29tPjsgQW5kcmV3IENvb3Blcg0KPiA8YW5kcmV3LmNv
b3BlcjNAY2l0cml4LmNvbT47IEFudGhvbnkgUEVSQVJEIDxhbnRob255LnBlcmFyZEB2YXRlcy50
ZWNoPjsNCj4gUm9nZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5jb20+OyBBbGlzdGFp
ciBGcmFuY2lzDQo+IDxhbGlzdGFpci5mcmFuY2lzQHdkYy5jb20+OyBCb2IgRXNobGVtYW4gPGJv
YmJ5ZXNobGVtYW5AZ21haWwuY29tPjsNCj4gQ29ubm9yIERhdmlzIDxjb25ub2pkYXZpc0BnbWFp
bC5jb20+OyBPbGVrc2lpIEt1cm9jaGtvDQo+IDxvbGVrc2lpLmt1cm9jaGtvQGdtYWlsLmNvbT47
IFN0YWJlbGxpbmksIFN0ZWZhbm8NCj4gPHN0ZWZhbm8uc3RhYmVsbGluaUBhbWQuY29tPjsgU2Vy
Z2l5IEtpYnJpayA8U2VyZ2l5X0tpYnJpa0BlcGFtLmNvbT47IHhlbi0NCj4gZGV2ZWxAbGlzdHMu
eGVucHJvamVjdC5vcmcNCj4gU3ViamVjdDogUmU6IFtQQVRDSCB2MiAxOC8xOV0geGVuL3N5c2N0
bDogd3JhcCBhcm91bmQgYXJjaC1zcGVjaWZpYw0KPiBhcmNoX2RvX3N5c2N0bA0KPg0KPiBPbiAy
Ni4wMy4yMDI1IDA2OjUwLCBQZW5ueSBaaGVuZyB3cm90ZToNCj4gPiBGdW5jdGlvbiBhcmNoX2Rv
X3N5c2N0bCBpcyB0byBwZXJmb3JtIGFyY2gtc3BlY2lmaWMgc3lzY3RsIG9wLg0KPiA+IFNvbWUg
ZnVuY3Rpb25zLCBsaWtlIHBzcl9nZXRfaW5mbyBmb3IgeDg2LCBEVEIgb3ZlcmxheSBzdXBwb3J0
IGZvcg0KPiA+IGFybSwgYXJlIHNvbGVseSBhdmFpbGFibGUgdGhyb3VnaCBzeXNjdGwgb3AsIHRo
ZW4gdGhleSBhbGwgc2hhbGwgYmUNCj4gPiB3cmFwcGVkIHdpdGggQ09ORklHX1NZU0NUTCBBbHNv
LCByZW1vdmUgYWxsICNpZmRlZiBDT05GSUdfU1lTQ1RMLXMgaW4NCj4gPiBhcmNoLXNwZWNpZmlj
IHN5c2N0bC5jLCBhcyB3ZSBwdXQgdGhlIGd1YXJkaWFuIGluIE1ha2VmaWxlIGZvciB0aGUNCj4g
PiB3aG9sZSBmaWxlLg0KPiA+DQo+ID4gU2lnbmVkLW9mZi1ieTogU3RlZmFubyBTdGFiZWxsaW5p
IDxzdGVmYW5vLnN0YWJlbGxpbmlAYW1kLmNvbT4NCj4gPiBTaWduZWQtb2ZmLWJ5OiBTZXJnaXkg
S2licmlrIDxTZXJnaXlfS2licmlrQGVwYW0uY29tPg0KPiA+IFNpZ25lZC1vZmYtYnk6IFBlbm55
IFpoZW5nIDxQZW5ueS5aaGVuZ0BhbWQuY29tPg0KPiA+IC0tLQ0KPiA+IC0gdXNlICJkZXBlbmRz
IG9uIiBmb3IgY29uZmlnIE9WRVJMQVlfRFRCDQo+ID4gLSBubyBuZWVkIHRvIHdyYXAgZGVjbGFy
YXRpb24NCj4gPiAtIGFkZCB0cmFuc2llbnQgI2lmZGVmIGluIHN5c2N0bC5jIGZvciBjb3JyZWN0
IGNvbXBpbGF0aW9uDQo+ID4gLS0tDQo+ID4gIHhlbi9hcmNoL2FybS9LY29uZmlnICAgfCAgMSAr
DQo+ID4gIHhlbi9hcmNoL2FybS9NYWtlZmlsZSAgfCAgMiArLQ0KPiA+ICB4ZW4vYXJjaC9hcm0v
c3lzY3RsLmMgIHwgIDIgLS0NCj4gPiAgeGVuL2FyY2gvcmlzY3Yvc3R1YnMuYyB8ICAyICstDQo+
ID4gIHhlbi9hcmNoL3g4Ni9NYWtlZmlsZSAgfCAgMiArLQ0KPiA+ICB4ZW4vYXJjaC94ODYvcHNy
LmMgICAgIHwgMTggKysrKysrKysrKysrKysrKysrDQo+ID4gIHhlbi9hcmNoL3g4Ni9zeXNjdGwu
YyAgfCAgMiAtLQ0KPiA+ICB4ZW4vY29tbW9uL3N5c2N0bC5jICAgIHwgIDIgKysNCj4gPiAgOCBm
aWxlcyBjaGFuZ2VkLCAyNCBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQ0KPiA+DQo+ID4g
ZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9LY29uZmlnIGIveGVuL2FyY2gvYXJtL0tjb25maWcg
aW5kZXgNCj4gPiBmZmRmZjFmMGEzLi5hYTFiNGE2ZTZiIDEwMDY0NA0KPiA+IC0tLSBhL3hlbi9h
cmNoL2FybS9LY29uZmlnDQo+ID4gKysrIGIveGVuL2FyY2gvYXJtL0tjb25maWcNCj4gPiBAQCAt
MTQxLDYgKzE0MSw3IEBAIGNvbmZpZyBIQVNfSVRTDQo+ID4NCj4gPiAgY29uZmlnIE9WRVJMQVlf
RFRCDQo+ID4gICAgIGJvb2wgIkRUQiBvdmVybGF5IHN1cHBvcnQgKFVOU1VQUE9SVEVEKSIgaWYg
VU5TVVBQT1JURUQNCj4gPiArICAgZGVwZW5kcyBvbiBTWVNDVEwNCj4gPiAgICAgaGVscA0KPiA+
ICAgICAgIER5bmFtaWMgYWRkaXRpb24vcmVtb3ZhbCBvZiBYZW4gZGV2aWNlIHRyZWUgbm9kZXMg
dXNpbmcgYSBkdGJvLg0KPiA+DQo+ID4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9NYWtlZmls
ZSBiL3hlbi9hcmNoL2FybS9NYWtlZmlsZSBpbmRleA0KPiA+IDQ4MzdhZDQ2N2EuLjdjNjAxNWI4
NGQgMTAwNjQ0DQo+ID4gLS0tIGEveGVuL2FyY2gvYXJtL01ha2VmaWxlDQo+ID4gKysrIGIveGVu
L2FyY2gvYXJtL01ha2VmaWxlDQo+ID4gQEAgLTU0LDcgKzU0LDcgQEAgb2JqLXkgKz0gc21wYm9v
dC5vDQo+ID4gIG9iai0kKENPTkZJR19TVEFUSUNfRVZUQ0hOKSArPSBzdGF0aWMtZXZ0Y2huLmlu
aXQubw0KPiA+ICBvYmotJChDT05GSUdfU1RBVElDX01FTU9SWSkgKz0gc3RhdGljLW1lbW9yeS5p
bml0Lm8NCj4gPiAgb2JqLSQoQ09ORklHX1NUQVRJQ19TSE0pICs9IHN0YXRpYy1zaG1lbS5pbml0
Lm8gLW9iai15ICs9IHN5c2N0bC5vDQo+ID4gK29iai0kKENPTkZJR19TWVNDVEwpICs9IHN5c2N0
bC5vDQo+ID4gIG9iai15ICs9IHRpbWUubw0KPiA+ICBvYmoteSArPSB0cmFwcy5vDQo+ID4gIG9i
ai15ICs9IHZjcHJlZy5vDQo+ID4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9zeXNjdGwuYyBi
L3hlbi9hcmNoL2FybS9zeXNjdGwuYyBpbmRleA0KPiA+IDJkMzUwYjcwMGEuLjMyY2FiNGZlZmYg
MTAwNjQ0DQo+ID4gLS0tIGEveGVuL2FyY2gvYXJtL3N5c2N0bC5jDQo+ID4gKysrIGIveGVuL2Fy
Y2gvYXJtL3N5c2N0bC5jDQo+ID4gQEAgLTE1LDcgKzE1LDYgQEANCj4gPiAgI2luY2x1ZGUgPGFz
bS9hcm02NC9zdmUuaD4NCj4gPiAgI2luY2x1ZGUgPHB1YmxpYy9zeXNjdGwuaD4NCj4gPg0KPiA+
IC0jaWZkZWYgQ09ORklHX1NZU0NUTA0KPiA+ICB2b2lkIGFyY2hfZG9fcGh5c2luZm8oc3RydWN0
IHhlbl9zeXNjdGxfcGh5c2luZm8gKnBpKSAgew0KPiA+ICAgICAgcGktPmNhcGFiaWxpdGllcyB8
PSBYRU5fU1lTQ1RMX1BIWVNDQVBfaHZtIHwNCj4gPiBYRU5fU1lTQ1RMX1BIWVNDQVBfaGFwOyBA
QCAtMjMsNyArMjIsNiBAQCB2b2lkDQo+IGFyY2hfZG9fcGh5c2luZm8oc3RydWN0IHhlbl9zeXNj
dGxfcGh5c2luZm8gKnBpKQ0KPiA+ICAgICAgcGktPmFyY2hfY2FwYWJpbGl0aWVzIHw9IE1BU0tf
SU5TUihzdmVfZW5jb2RlX3ZsKGdldF9zeXNfdmxfbGVuKCkpLA0KPiA+DQo+ID4gWEVOX1NZU0NU
TF9QSFlTQ0FQX0FSTV9TVkVfTUFTSyk7ICB9IC0jZW5kaWYNCj4gPg0KPiA+ICBsb25nIGFyY2hf
ZG9fc3lzY3RsKHN0cnVjdCB4ZW5fc3lzY3RsICpzeXNjdGwsDQo+ID4gICAgICAgICAgICAgICAg
ICAgICAgWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh4ZW5fc3lzY3RsX3QpIHVfc3lzY3RsKQ0KPiA+
IGRpZmYgLS1naXQgYS94ZW4vYXJjaC9yaXNjdi9zdHVicy5jIGIveGVuL2FyY2gvcmlzY3Yvc3R1
YnMuYyBpbmRleA0KPiA+IDdiM2Y3NDg4ODYuLmFlODY1ZTE5NzIgMTAwNjQ0DQo+ID4gLS0tIGEv
eGVuL2FyY2gvcmlzY3Yvc3R1YnMuYw0KPiA+ICsrKyBiL3hlbi9hcmNoL3Jpc2N2L3N0dWJzLmMN
Cj4gPiBAQCAtMzIyLDEzICszMjIsMTMgQEAgdW5zaWduZWQgbG9uZyByYXdfY29weV9mcm9tX2d1
ZXN0KHZvaWQgKnRvLA0KPiA+IGNvbnN0IHZvaWQgX191c2VyICpmcm9tLA0KPiA+DQo+ID4gIC8q
IHN5c2N0bC5jICovDQo+ID4NCj4gPiArI2lmZGVmIENPTkZJR19TWVNDVEwNCj4gPiAgbG9uZyBh
cmNoX2RvX3N5c2N0bChzdHJ1Y3QgeGVuX3N5c2N0bCAqc3lzY3RsLA0KPiA+ICAgICAgICAgICAg
ICAgICAgICAgIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0oeGVuX3N5c2N0bF90KSB1X3N5c2N0bCkg
IHsNCj4gPiAgICAgIEJVR19PTigidW5pbXBsZW1lbnRlZCIpOw0KPiA+ICB9DQo+ID4NCj4gPiAt
I2lmZGVmIENPTkZJR19TWVNDVEwNCj4gPiAgdm9pZCBhcmNoX2RvX3BoeXNpbmZvKHN0cnVjdCB4
ZW5fc3lzY3RsX3BoeXNpbmZvICpwaSkgIHsNCj4gPiAgICAgIEJVR19PTigidW5pbXBsZW1lbnRl
ZCIpOw0KPiA+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvTWFrZWZpbGUgYi94ZW4vYXJjaC94
ODYvTWFrZWZpbGUgaW5kZXgNCj4gPiBmNTljOTY2NWZkLi44MzdlYWZjYmMwIDEwMDY0NA0KPiA+
IC0tLSBhL3hlbi9hcmNoL3g4Ni9NYWtlZmlsZQ0KPiA+ICsrKyBiL3hlbi9hcmNoL3g4Ni9NYWtl
ZmlsZQ0KPiA+IEBAIC03OSw3ICs3OSw3IEBAIGlmbmVxICgkKENPTkZJR19QVl9TSElNX0VYQ0xV
U0lWRSkseSkgIG9iai15ICs9DQo+ID4gZG9tY3RsLm8gIG9iai15ICs9IHBsYXRmb3JtX2h5cGVy
Y2FsbC5vDQo+ID4gIG9iai0kKENPTkZJR19DT01QQVQpICs9IHg4Nl82NC9wbGF0Zm9ybV9oeXBl
cmNhbGwubyAtb2JqLXkgKz0NCj4gPiBzeXNjdGwubw0KPiA+ICtvYmotJChDT05GSUdfU1lTQ1RM
KSArPSBzeXNjdGwubw0KPiA+ICBlbmRpZg0KPg0KPiBJIHRoaW5rIEkgaGFkIGluZGljYXRlZCBi
ZWZvcmUgdGhhdCB0aGlzIHNob3VsZG4ndCBzdGF5IGluc2lkZSB0aGUgY29uZGl0aW9uYWwsIGJ1
dA0KPiBtb3ZlIGJhY2sgdXAuIFdoZXRoZXIgdGhhdCBpcyB0byBoYXBwZW4gaGVyZSBvciB3aGls
ZSBhZGRyZXNzaW5nIG15IHJlc3BlY3RpdmUNCj4gY29tbWVudCBvbiBwYXRjaCAwMSBJIGNhbid0
IGVhc2lseSB0ZWxsLg0KPg0KDQpXZSB3YW50IHRoYXQgIlBWX1NISU1fRVhDTFVTSVZFIGxpa2Vs
eSB3YW50cyAvIG5lZWRzIHNvcnRpbmcgYXMNCmEgcHJlcmVxIGFueXdheSIsIGRvZXMgdGhlIHBy
ZXJlcSBoZXJlIG1lYW4gdGhhdCBwcmVyZXEgaW4ga2NvbmZpZywNCnNvbWV0aGluZyBsaWtlDQpg
YGANCmNvbmZpZyBTWVNDVEwNCiAgICAgIGRlcGVuZHMgb24geHh4DQpgYGANCg0KPiA+IC0tLSBh
L3hlbi9jb21tb24vc3lzY3RsLmMNCj4gPiArKysgYi94ZW4vY29tbW9uL3N5c2N0bC5jDQo+ID4g
QEAgLTQ5MCw4ICs0OTAsMTAgQEAgbG9uZw0KPiBkb19zeXNjdGwoWEVOX0dVRVNUX0hBTkRMRV9Q
QVJBTSh4ZW5fc3lzY3RsX3QpIHVfc3lzY3RsKQ0KPiA+ICAgICAgICAgIGJyZWFrOw0KPiA+DQo+
ID4gICAgICBkZWZhdWx0Og0KPiA+ICsjaWZkZWYgQ09ORklHX1NZU0NUTA0KPiA+ICAgICAgICAg
IHJldCA9IGFyY2hfZG9fc3lzY3RsKG9wLCB1X3N5c2N0bCk7DQo+ID4gICAgICAgICAgY29weWJh
Y2sgPSAwOw0KPiA+ICsjZW5kaWYNCj4gPiAgICAgICAgICBicmVhazsNCj4gPiAgICAgIH0NCj4N
Cj4gVGhpcyBpc24ndCBlbm91Z2guICJyZXQiIGlzIDAgd2hlbiByZWFjaGluZyB0aGUgZGVmYXVs
dDogbGFiZWwsIGJ1dCBtYXkgbm90IHN0YXkgMCBmb3INCj4gdGhlIHJldHVybiBmcm9tIHRoZSBm
dW5jdGlvbi4gSSB1bmRlcnN0YW5kIChleHBlY3QpIHRoaXMgaXMgZ29pbmcgdG8gYmUgZHJvcHBl
ZA0KPiBhZ2FpbiBpbiB0aGUgbmV4dCBwYXRjaCwgYnV0IGV2ZW4gaWYgb25seSB0cmFuc2llbnRs
eSBuZWVkZWQgdGhpcyBzaG91bGQgYmUga2VwdA0KPiBjb3JyZWN0IGltby4gVGhpbmdzIG1pZ2h0
IGJlIGRpZmZlcmVudCBpZiBwYXRjaCAwMiBpbnRyb2R1Y2VkIHRoZSBvcHRpb24gd2l0aG91dCBh
DQo+IHByb21wdCwgaS5lLiBhbHdheXMgZW5hYmxlZC4gVGhlbiBhbGwgdGhlICNpZmRlZi1hcnkg
YWRkZWQgdXAgdG8gaGVyZSB3b3VsZCBiZQ0KPiBtZXJlbHkgc3ludGFjdGljIHN1Z2FyLiBJbiBm
YWN0IGluIHRoYXQgY2FzZSB5b3UgY291bGQgb21pdCBhbGwgdGhlIHRyYW5zaWVudCAjaWZkZWYN
Cj4gdGhhdCB0aGUgbGFzdCBwYXRjaCBpcyBnb2luZyB0byByZW1vdmUgYWdhaW4uIFBsZWFzZSBj
b25zaWRlciBnb2luZyB0aGF0IHJvdXRlLg0KPg0KPiBPdGhlcndpc2UgSSB0aGluayB0aGUgI2Vu
ZGlmIGFsc28gbmVlZHMgbW92aW5nIHVwLCBmb3IgY29weWJhY2sgdG8gc3RpbGwgYmUgY2xlYXJl
ZA0KPiBoZXJlLg0KPg0KDQpJJ2xsIGNoYW5nZSBpdCB0byBhcyBmb2xsb3dzIHRvIGNvbXBsZW1l
bnQgY2FzZSBmb3IgQ09ORklHX1NZU0NUTD09biwgcGx6IGNvcnJlY3QgbWUgaWYgSSB1bmRlcnN0
YW5kIHdyb25nbHkgaGVyZToNCmBgYA0KICAgICAgZGVmYXVsdDoNCisjaWZkZWYgQ09ORklHX1NZ
U0NUTA0KICAgICAgICAgcmV0ID0gYXJjaF9kb19zeXNjdGwob3AsIHVfc3lzY3RsKTsNCisjZWxz
ZQ0KKyAgICAgICAgcmV0ID0gLUVPUE5PVFNVUFA7DQorI2VuZGlmDQogICAgICAgICBjb3B5YmFj
ayA9IDA7DQogICAgICAgICBicmVhazsNCmBgYA0KPiBKYW4NCg==


From xen-devel-bounces@lists.xenproject.org Fri Apr 18 10:24:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 18 Apr 2025 10:24:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.958857.1351439 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5itE-0008Os-TY; Fri, 18 Apr 2025 10:24:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 958857.1351439; Fri, 18 Apr 2025 10: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 1u5itE-0008Ol-QU; Fri, 18 Apr 2025 10:24:08 +0000
Received: by outflank-mailman (input) for mailman id 958857;
 Fri, 18 Apr 2025 10:24: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=CNZq=XE=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u5itD-0008Oc-Kf
 for xen-devel@lists.xenproject.org; Fri, 18 Apr 2025 10:24:07 +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 41fe4eaa-1c3f-11f0-9eb0-5ba50f476ded;
 Fri, 18 Apr 2025 12:24:06 +0200 (CEST)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-440685d6afcso12476965e9.0
 for <xen-devel@lists.xenproject.org>; Fri, 18 Apr 2025 03:24:06 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39efa420683sm2349158f8f.20.2025.04.18.03.24.04
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 18 Apr 2025 03:24: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: 41fe4eaa-1c3f-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744971846; x=1745576646; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=YJmTDwCr1kPva4b5vrqnHN2+KW5Z+MMvffJ+VbT6Gqg=;
        b=m6OcD76Cc7bpwzj7wccqu89y0uPDmbObnIHP/7/0w5TVkCKpU77Xkd0i/pzkAoS3TK
         CITz2xCQ4LiEPauiUarjJn2f2Be7ERlnagJ5xcuz3bW8jXeQti07JZaPGwz4S3teDDVq
         1PXb/9+2OZ5+tmqkI/2XFyZ+qxKJxKu53sRGo=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744971846; x=1745576646;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=YJmTDwCr1kPva4b5vrqnHN2+KW5Z+MMvffJ+VbT6Gqg=;
        b=lBLuhbvktW8oRqK1lxUo+pVSMwZhRY398gj9/jRIC1bn8BA4ZKtxvsJpCIYPuFgmEF
         IVLt+Pt76HxrUa+lFd0A0kKyU5Zq0NaorwKyHbSM0fqEOfKLe9gc4fMNxdMO89N2W0Xp
         KFmQvVur+vq0mZard7cFDMsHGpiIF1AqrLSwQihi6cB2kKl5w0xmsKZrJmKJpvAbeAsm
         i03fdGBfzjljZ19ylusmmnLcEwBBRgnZky1/1aJmM17XYboHK5MikFJkHQvq403ttkfX
         yY+VK13n9h9bivnFV8VHRxWjeRgQQA545bAi2YpVQhcgw/kNOq++T7N8p3ExHxNJyq/r
         u5eQ==
X-Forwarded-Encrypted: i=1; AJvYcCUp53KFvmhsxwN24p+fFx7sWubTODxHKXu/nVaQvwrgPRmnex7aTM5xL8HqgoJ8DonFPJgE7jBI2xg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwiMcG3UEP2fe/QnJyFABYRwCQvgVK0rENFpadEvx6bELHAJRm0
	B9acRxDsBNtp1dCtV1JcX3r74bPhg4VTXjS34PxH2Z9mu49x1DQUvfIQw1E/3qk=
X-Gm-Gg: ASbGncurl4RrIoQhW2eqBAuAe9rPUFAdo49ijdEpHp/F6zgzOojAYbjv6JsznTrRyo5
	lldcA0KWfbL64esJjFjMIqkOqWcMjV7w9lbKnLW5PS04RpRyRq6KaVvfbl9dM+BbX3CajWl9tOQ
	LcXkZtxiEIexyCe57mhjipLqNLYoVQKpWcfFvjekEQbs3zrcpASulFijeaS5vrvJVaSXJ+k1YFA
	CzIFA/jOPmnjXjXiGKyVSi0V8nMe7+rkEw4SYo8vOe3mC12zGsQYpb1XcWNJYB3araMJbmS696G
	6FRDQmHGaHUeCFSJ3GtdyNO6JngAX52W6cpJtZoax11jWRExBb9oyUSP0nz/kg8Bucdt++iYGSa
	/Szt/Eg==
X-Google-Smtp-Source: AGHT+IHVvlOW/PQKztqdeuYLzZIIyWPEnxfP7TS8Tghjk3gRsyw5XUF1KlSks6byhbOqrb7JpJRwGA==
X-Received: by 2002:a05:6000:40de:b0:39e:e438:8e32 with SMTP id ffacd0b85a97d-39efbb09208mr1538497f8f.55.1744971845933;
        Fri, 18 Apr 2025 03:24:05 -0700 (PDT)
Message-ID: <50bf962c-2c9e-46a2-bbac-cba9cf229e79@citrix.com>
Date: Fri, 18 Apr 2025 11:24:04 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH -tip v2 1/2] x86/boot: Remove semicolon from "rep"
 prefixes
To: Uros Bizjak <ubizjak@gmail.com>, x86@kernel.org,
 linux-video@atrey.karlin.mff.cuni.cz, xen-devel@lists.xenproject.org,
 linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org
Cc: Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@kernel.org>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 "H. Peter Anvin" <hpa@zytor.com>, Martin Mares <mj@ucw.cz>
References: <20250418071437.4144391-1-ubizjak@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: <20250418071437.4144391-1-ubizjak@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 18/04/2025 8:13 am, Uros Bizjak wrote:
> diff --git a/arch/x86/boot/video.c b/arch/x86/boot/video.c
> index f2e96905b3fe..0641c8c46aee 100644
> --- a/arch/x86/boot/video.c
> +++ b/arch/x86/boot/video.c
> @@ -292,7 +292,7 @@ static void restore_screen(void)
>  			     "shrw %%cx ; "
>  			     "jnc 1f ; "
>  			     "stosw \n\t"
> -			     "1: rep;stosl ; "
> +			     "1: rep stosl ; "
>  			     "popw %%es"

Doesn't this one still need a separator between STOSL and POPW ?

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Apr 18 10:43:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 18 Apr 2025 10:43:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.958870.1351449 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5jC2-00048p-DG; Fri, 18 Apr 2025 10:43:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 958870.1351449; Fri, 18 Apr 2025 10:43: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 1u5jC2-00048i-A6; Fri, 18 Apr 2025 10:43:34 +0000
Received: by outflank-mailman (input) for mailman id 958870;
 Fri, 18 Apr 2025 10:43: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=h7fJ=XE=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1u5jC1-00048a-6v
 for xen-devel@lists.xenproject.org; Fri, 18 Apr 2025 10:43:33 +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 f8150bb8-1c41-11f0-9ffb-bf95429c2676;
 Fri, 18 Apr 2025 12:43:31 +0200 (CEST)
Received: by mail-ed1-x535.google.com with SMTP id
 4fb4d7f45d1cf-5e5dce099f4so2162070a12.1
 for <xen-devel@lists.xenproject.org>; Fri, 18 Apr 2025 03:43:31 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-64-225.play-internet.pl.
 [109.243.64.225]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-acb6ef426c4sm103158266b.131.2025.04.18.03.43.28
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 18 Apr 2025 03:43:29 -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: f8150bb8-1c41-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1744973010; x=1745577810; darn=lists.xenproject.org;
        h=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=yEbPa/pzUMQsdSWCW1halMa+PHcQbDlyFlKR/wjWMeo=;
        b=TJdEHgRVyWSBBGUFK8uzYKTi5EjhveO6nazpo1D1D5VPpd+kClaF+nEVFZyaxBr6hu
         EB6t86jlV+YQBAZHNXnbhIzU6DBFAQBfTN7mT9WMdVkTvDHQfLaFeZjl6IsyYosTA+gU
         29Cq1DsvHUs8lKViz03a+GjqlpPwx2UNV7oUCRCArQ1Atdy76RJsub4u0JAFt64gFPZ8
         DRdebiaDuYlPPQZE/L2ZsYv31VoLTISOEZRfJgWU8tqw3PyYC7KDmhdbLNr4uUk87C/X
         FM1L+J98L4BgSNEkyg6HgrDmUP8+YuWql2qKr14iSnTwXKRxfucW3xuNNLFOyIgEqkYB
         7gnQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744973010; x=1745577810;
        h=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=yEbPa/pzUMQsdSWCW1halMa+PHcQbDlyFlKR/wjWMeo=;
        b=uVV4low/WtpRZEQbPqexGNRkFcfPqxMSYBM+cl2BJXJILES08fS5Y3XwDcmumu9gLA
         w6Hy71TBsaokAN9QmbhD4sgSSUxyVRF2Ro3bfXDii/CjhokYTKX/UPR86j2Ps6e2D49Z
         QZ8JNiyickSKg7Cw09UwKVic+fxlNZJ7IuVFii0kANKI7dXUx/DcB9/uDlXuW8NNh0ba
         iK0POHMzeuyECHM84itjfsp9CXeopk+PgBg89DEHrEsqNILnZ7D3ONp1zB+g6uoktmH4
         C2RD3Sx0B4dBxQtTF4zZAfLVLSbbuFHIMV3EuguxyeZcqJgpgC7X9gZWJ6tjm1iSLHHq
         KVKg==
X-Forwarded-Encrypted: i=1; AJvYcCUxJwzKPyuJVZ1OPlXLXp4krCqirZ3KasXXGvbYUrWemHPpOCd+gW2fJkUlIn0phQ182PJRysIYJlI=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy6yDQIzyzCe9QJj0HzZbywky7rvpnb2wKrjKN7WOZGhVntSBwI
	bUKgnZ4jKsFVY5Jt0eUt71BJDKH+VQTQq9LM/K7eSuBy6qVn+XWT
X-Gm-Gg: ASbGncuwmR1M2KgtHWhqJLhpkJ353WOI9ZhwzT/cILGnvEUFUsW/YFu7Bce24sro8lN
	SgpzbMbVAgrx7IOe5P49isGQXDAe5AML89AtHix6hhyiJbGreYp85IP+fEIMb/1x80TrGj2+NoD
	V1DY4l9E2rTgCi/aWgkDMF6LnP43oOTEClBS2w4/2L+dQt9RmLZVeTJgTgEHRl3MUA05o4yD9IZ
	rlI3tv5tYYZ/+4W6UVjv0XDY5DAnZNDN2QU9f6xEFsxuseIPrWYcJgtAEA/h+ZWpJQY/COhZQJV
	7SFTqx51/7Tv7kOsiaxVl5PwUSCCP6NNS/9J7sCmGccXGgoLA585mENDtAuGKIazAkz/l0cLZaB
	7cv1rjWZTjgcrvVm/
X-Google-Smtp-Source: AGHT+IFcsATAyaipO/CpgYC6nljHY9vuOU7dWZsLYcHZjRFj5Lyw2vfEMFaFT2a5KvezuOAQEx7f0Q==
X-Received: by 2002:a17:907:1c14:b0:aca:95e7:9977 with SMTP id a640c23a62f3a-acb74b508b5mr187508966b.28.1744973009934;
        Fri, 18 Apr 2025 03:43:29 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------IyaPS0A001legdRB9vMjL0ql"
Message-ID: <5f922b70-d4c2-4e6e-ad05-f91afc70ee73@gmail.com>
Date: Fri, 18 Apr 2025 12:43:28 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 10/14] xen/riscv: implementation of aplic and imsic
 operations
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Romain Caritey <Romain.Caritey@microchip.com>, xen-devel@lists.xenproject.org
References: <cover.1744126720.git.oleksii.kurochko@gmail.com>
 <74a07ed7c596bbcf581010685e01bfdfa19164f5.1744126720.git.oleksii.kurochko@gmail.com>
 <3426df1b-938a-4d20-a533-dd6695473db0@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <3426df1b-938a-4d20-a533-dd6695473db0@suse.com>

This is a multi-part message in MIME format.
--------------IyaPS0A001legdRB9vMjL0ql
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 4/15/25 4:53 PM, Jan Beulich wrote:
> On 08.04.2025 17:57, Oleksii Kurochko wrote:
>> --- a/xen/arch/riscv/imsic.c
>> +++ b/xen/arch/riscv/imsic.c
>> @@ -14,12 +14,68 @@
>>   #include <xen/errno.h>
>>   #include <xen/init.h>
>>   #include <xen/macros.h>
>> +#include <xen/spinlock.h>
>>   #include <xen/xmalloc.h>
>>   
>>   #include <asm/imsic.h>
>>   
>>   static struct imsic_config imsic_cfg;
>>   
>> +#define imsic_csr_set(c, v)     \
>> +do {                            \
>> +    csr_write(CSR_SISELECT, c); \
>> +    csr_set(CSR_SIREG, v);      \
>> +} while (0)
>> +
>> +#define imsic_csr_clear(c, v)   \
>> +do {                            \
>> +    csr_write(CSR_SISELECT, c); \
>> +    csr_clear(CSR_SIREG, v);    \
>> +} while (0)
> Coming back to these (the later patch adds one more here): How expensive are
> these CSR writes? IOW would it perhaps make sense to maintain a local cache
> of the last written SISELECT value, to avoid writing the same one again if
> the same windowed register needs accessing twice in a row?

CSRs belong to the HART, so access to them is very fast.

~ Oleksii

--------------IyaPS0A001legdRB9vMjL0ql
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 4/15/25 4:53 PM, Jan Beulich wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:3426df1b-938a-4d20-a533-dd6695473db0@suse.com">
      <pre wrap="" class="moz-quote-pre">On 08.04.2025 17:57, Oleksii Kurochko wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">--- a/xen/arch/riscv/imsic.c
+++ b/xen/arch/riscv/imsic.c
@@ -14,12 +14,68 @@
 #include &lt;xen/errno.h&gt;
 #include &lt;xen/init.h&gt;
 #include &lt;xen/macros.h&gt;
+#include &lt;xen/spinlock.h&gt;
 #include &lt;xen/xmalloc.h&gt;
 
 #include &lt;asm/imsic.h&gt;
 
 static struct imsic_config imsic_cfg;
 
+#define imsic_csr_set(c, v)     \
+do {                            \
+    csr_write(CSR_SISELECT, c); \
+    csr_set(CSR_SIREG, v);      \
+} while (0)
+
+#define imsic_csr_clear(c, v)   \
+do {                            \
+    csr_write(CSR_SISELECT, c); \
+    csr_clear(CSR_SIREG, v);    \
+} while (0)
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Coming back to these (the later patch adds one more here): How expensive are
these CSR writes? IOW would it perhaps make sense to maintain a local cache
of the last written SISELECT value, to avoid writing the same one again if
the same windowed register needs accessing twice in a row?</pre>
    </blockquote>
    <pre><span data-teams="true">CSRs belong to the HART, so access to them is very fast.</span></pre>
    <pre>~ Oleksii
</pre>
  </body>
</html>

--------------IyaPS0A001legdRB9vMjL0ql--


From xen-devel-bounces@lists.xenproject.org Fri Apr 18 10:58:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 18 Apr 2025 10:58:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.958886.1351459 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5jQe-0006nQ-NK; Fri, 18 Apr 2025 10:58:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 958886.1351459; Fri, 18 Apr 2025 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 1u5jQe-0006nJ-Kd; Fri, 18 Apr 2025 10:58:40 +0000
Received: by outflank-mailman (input) for mailman id 958886;
 Fri, 18 Apr 2025 10:58: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=64ks=XE=desiato.srs.infradead.org=BATV+57d5826e0868d6f1a184+7908+infradead.org+dwmw2@srs-se1.protection.inumbo.net>)
 id 1u5jQb-0006n1-Sc
 for xen-devel@lists.xenproject.org; Fri, 18 Apr 2025 10:58:38 +0000
Received: from desiato.infradead.org (desiato.infradead.org
 [2001:8b0:10b:1:d65d:64ff:fe57:4e05])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 131dd79b-1c44-11f0-9eb0-5ba50f476ded;
 Fri, 18 Apr 2025 12:58:36 +0200 (CEST)
Received: from [172.31.31.140] (helo=u09cd745991455d.lumleys.internal)
 by desiato.infradead.org with esmtpsa (Exim 4.98.1 #2 (Red Hat Linux))
 id 1u5jQW-0000000AVWp-3gvy; Fri, 18 Apr 2025 10:58: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: 131dd79b-1c44-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=desiato.20200630; h=MIME-Version:Content-Type:References:
	In-Reply-To:Date:Cc:To:From:Subject:Message-ID:Sender:Reply-To:
	Content-Transfer-Encoding:Content-ID:Content-Description;
	bh=sfiQfqgl22FvP/d43Uh0oOo3PKYJhvnPCDCAvSEUyMQ=; b=HVNjvmFTvWqPqG27+29nztTd5b
	gl/evd34jioq2iLcFBum4CHR79s/XIZNOMQj7vD664y39uF4eZpR+/UeNXPVADl/vAVkFQDGvHVUu
	Vj2rXZEGTeWE1RqnUOpnlsRadX/4LytaFpUleoL2CLC7M2MkEg1I+XDPf16iQlen/l/J0oYG+b9KY
	ck6v++Cpx9+jli9oVT42yYyQuJraZzBFuRYCCXX98n1NlGQAAL2TIJwySbG0klIVQMKC2U8ImeyE3
	rBzEKm2V9MDOf88pXybRpYTRtjFqHXWS1btnbShTyAbMWcWi5iJ9mhXxErZY5eL/2w3oMA5hWy/ll
	fT/y87rQ==;
Message-ID: <77382e03adb162ef74319c1590db12d0829c47ca.camel@infradead.org>
Subject: Re: [PATCH TEST-ARTEFACTS 0/8] Cleanup and Linux ARM64 support
From: David Woodhouse <dwmw2@infradead.org>
To: Alejandro Vallejo <agarciav@amd.com>, Andrew Cooper
 <andrew.cooper3@citrix.com>, Jason Andryuk <jason.andryuk@amd.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Roger Pau =?ISO-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>, Stefano
 Stabellini <sstabellini@kernel.org>, Michal Orzel <michal.orzel@amd.com>,
 Marek =?ISO-8859-1?Q?Marczykowski-G=F3recki?=
 <marmarek@invisiblethingslab.com>, Anthony PERARD
 <anthony.perard@vates.tech>,  Juergen Gross <jgross@suse.com>, Xen-devel
 <xen-devel-bounces@lists.xenproject.org>
Date: Fri, 18 Apr 2025 11:58:32 +0100
In-Reply-To: <D9366FPHFS9F.2OP8KH7C8OJTF@amd.com>
References: <20250409163702.2037301-1-andrew.cooper3@citrix.com>
	 <828cabc9-512f-4c2f-a7d7-b9c8963c1300@citrix.com>
	 <f7b820af-b548-4dc3-9af7-9d2214a232b2@amd.com>
	 <5da1f4ec-43ca-4279-88dd-b51d57b306e4@citrix.com>
	 <D9360R5QOOU6.2Z9QQZYYJ5A6T@amd.com> <D9366FPHFS9F.2OP8KH7C8OJTF@amd.com>
Content-Type: multipart/signed; micalg="sha-256"; protocol="application/pkcs7-signature";
	boundary="=-AlqyRptSQ6mJ5RyNI2Cc"
User-Agent: Evolution 3.52.3-0ubuntu1 
MIME-Version: 1.0
X-SRS-Rewrite: SMTP reverse-path rewritten from <dwmw2@infradead.org> by desiato.infradead.org. See http://www.infradead.org/rpr.html


--=-AlqyRptSQ6mJ5RyNI2Cc
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Thu, 2025-04-10 at 19:28 +0100, Alejandro Vallejo wrote:
> The cutoff point is bcf0e2fda80c6("x86/xen: remove hypercall page").
>=20
> Together with Jason's observation it would seem that Linux doesn't guess
> the correct instruction (or not early enough) when running as PVH dom0.
> On PV it's just "syscall", but on PVH it's a tad more complicated.
>=20

I never understood why we did it this way anyway.

All this bogus complexity to do early detection of AMD vs. Intel and
use the right trap instruction, when we could have just continued to
use the proper Xen hypercall page at early boot.

After all, if you don't know what kind of CPU you're on, you *also*
haven't enabled CET or any other fancy return-tracking stuff yet. Just
fill in your own hypercall page *then*, instead. And then you can free
the original one.

Much simpler, much less fragile, and less prone to other potential
breakage from 64-bit latching side-effect that we forgot Xen does when
the guest sets the hypercall page.

--=-AlqyRptSQ6mJ5RyNI2Cc
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Disposition: attachment; filename="smime.p7s"
Content-Transfer-Encoding: base64

MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCCD9Aw
ggSOMIIDdqADAgECAhAOmiw0ECVD4cWj5DqVrT9PMA0GCSqGSIb3DQEBCwUAMGUxCzAJBgNVBAYT
AlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xJDAi
BgNVBAMTG0RpZ2lDZXJ0IEFzc3VyZWQgSUQgUm9vdCBDQTAeFw0yNDAxMzAwMDAwMDBaFw0zMTEx
MDkyMzU5NTlaMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYDVQQDExdWZXJv
a2V5IFNlY3VyZSBFbWFpbCBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMjvgLKj
jfhCFqxYyRiW8g3cNFAvltDbK5AzcOaR7yVzVGadr4YcCVxjKrEJOgi7WEOH8rUgCNB5cTD8N/Et
GfZI+LGqSv0YtNa54T9D1AWJy08ZKkWvfGGIXN9UFAPMJ6OLLH/UUEgFa+7KlrEvMUupDFGnnR06
aDJAwtycb8yXtILj+TvfhLFhafxroXrflspavejQkEiHjNjtHnwbZ+o43g0/yxjwnarGI3kgcak7
nnI9/8Lqpq79tLHYwLajotwLiGTB71AGN5xK+tzB+D4eN9lXayrjcszgbOv2ZCgzExQUAIt98mre
8EggKs9mwtEuKAhYBIP/0K6WsoMnQCcCAwEAAaOCAVwwggFYMBIGA1UdEwEB/wQIMAYBAf8CAQAw
HQYDVR0OBBYEFIlICOogTndrhuWByNfhjWSEf/xwMB8GA1UdIwQYMBaAFEXroq/0ksuCMS1Ri6en
IZ3zbcgPMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDBAYIKwYBBQUHAwIweQYI
KwYBBQUHAQEEbTBrMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQwYIKwYB
BQUHMAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RD
QS5jcnQwRQYDVR0fBD4wPDA6oDigNoY0aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0
QXNzdXJlZElEUm9vdENBLmNybDARBgNVHSAECjAIMAYGBFUdIAAwDQYJKoZIhvcNAQELBQADggEB
ACiagCqvNVxOfSd0uYfJMiZsOEBXAKIR/kpqRp2YCfrP4Tz7fJogYN4fxNAw7iy/bPZcvpVCfe/H
/CCcp3alXL0I8M/rnEnRlv8ItY4MEF+2T/MkdXI3u1vHy3ua8SxBM8eT9LBQokHZxGUX51cE0kwa
uEOZ+PonVIOnMjuLp29kcNOVnzf8DGKiek+cT51FvGRjV6LbaxXOm2P47/aiaXrDD5O0RF5SiPo6
xD1/ClkCETyyEAE5LRJlXtx288R598koyFcwCSXijeVcRvBB1cNOLEbg7RMSw1AGq14fNe2cH1HG
W7xyduY/ydQt6gv5r21mDOQ5SaZSWC/ZRfLDuEYwggWbMIIEg6ADAgECAhAH5JEPagNRXYDiRPdl
c1vgMA0GCSqGSIb3DQEBCwUAMEExCzAJBgNVBAYTAkFVMRAwDgYDVQQKEwdWZXJva2V5MSAwHgYD
VQQDExdWZXJva2V5IFNlY3VyZSBFbWFpbCBHMjAeFw0yNDEyMzAwMDAwMDBaFw0yODAxMDQyMzU5
NTlaMB4xHDAaBgNVBAMME2R3bXcyQGluZnJhZGVhZC5vcmcwggIiMA0GCSqGSIb3DQEBAQUAA4IC
DwAwggIKAoICAQDali7HveR1thexYXx/W7oMk/3Wpyppl62zJ8+RmTQH4yZeYAS/SRV6zmfXlXaZ
sNOE6emg8WXLRS6BA70liot+u0O0oPnIvnx+CsMH0PD4tCKSCsdp+XphIJ2zkC9S7/yHDYnqegqt
w4smkqUqf0WX/ggH1Dckh0vHlpoS1OoxqUg+ocU6WCsnuz5q5rzFsHxhD1qGpgFdZEk2/c//ZvUN
i12vPWipk8TcJwHw9zoZ/ZrVNybpMCC0THsJ/UEVyuyszPtNYeYZAhOJ41vav1RhZJzYan4a1gU0
kKBPQklcpQEhq48woEu15isvwWh9/+5jjh0L+YNaN0I//nHSp6U9COUG9Z0cvnO8FM6PTqsnSbcc
0j+GchwOHRC7aP2t5v2stVx3KbptaYEzi4MQHxm/0+HQpMEVLLUiizJqS4PWPU6zfQTOMZ9uLQRR
ci+c5xhtMEBszlQDOvEQcyEG+hc++fH47K+MmZz21bFNfoBxLP6bjR6xtPXtREF5lLXxp+CJ6KKS
blPKeVRg/UtyJHeFKAZXO8Zeco7TZUMVHmK0ZZ1EpnZbnAhKE19Z+FJrQPQrlR0gO3lBzuyPPArV
hvWxjlO7S4DmaEhLzarWi/ze7EGwWSuI2eEa/8zU0INUsGI4ywe7vepQz7IqaAovAX0d+f1YjbmC
VsAwjhLmveFjNwIDAQABo4IBsDCCAawwHwYDVR0jBBgwFoAUiUgI6iBOd2uG5YHI1+GNZIR//HAw
HQYDVR0OBBYEFFxiGptwbOfWOtMk5loHw7uqWUOnMDAGA1UdEQQpMCeBE2R3bXcyQGluZnJhZGVh
ZC5vcmeBEGRhdmlkQHdvb2Rob3Uuc2UwFAYDVR0gBA0wCzAJBgdngQwBBQEBMA4GA1UdDwEB/wQE
AwIF4DAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwewYDVR0fBHQwcjA3oDWgM4YxaHR0
cDovL2NybDMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDA3oDWgM4YxaHR0
cDovL2NybDQuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNybDB2BggrBgEFBQcB
AQRqMGgwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBABggrBgEFBQcwAoY0
aHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL1Zlcm9rZXlTZWN1cmVFbWFpbEcyLmNydDANBgkq
hkiG9w0BAQsFAAOCAQEAQXc4FPiPLRnTDvmOABEzkIumojfZAe5SlnuQoeFUfi+LsWCKiB8Uextv
iBAvboKhLuN6eG/NC6WOzOCppn4mkQxRkOdLNThwMHW0d19jrZFEKtEG/epZ/hw/DdScTuZ2m7im
8ppItAT6GXD3aPhXkXnJpC/zTs85uNSQR64cEcBFjjoQDuSsTeJ5DAWf8EMyhMuD8pcbqx5kRvyt
JPsWBQzv1Dsdv2LDPLNd/JUKhHSgr7nbUr4+aAP2PHTXGcEBh8lTeYea9p4d5k969pe0OHYMV5aL
xERqTagmSetuIwolkAuBCzA9vulg8Y49Nz2zrpUGfKGOD0FMqenYxdJHgDCCBZswggSDoAMCAQIC
EAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQELBQAwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoT
B1Zlcm9rZXkxIDAeBgNVBAMTF1Zlcm9rZXkgU2VjdXJlIEVtYWlsIEcyMB4XDTI0MTIzMDAwMDAw
MFoXDTI4MDEwNDIzNTk1OVowHjEcMBoGA1UEAwwTZHdtdzJAaW5mcmFkZWFkLm9yZzCCAiIwDQYJ
KoZIhvcNAQEBBQADggIPADCCAgoCggIBANqWLse95HW2F7FhfH9bugyT/danKmmXrbMnz5GZNAfj
Jl5gBL9JFXrOZ9eVdpmw04Tp6aDxZctFLoEDvSWKi367Q7Sg+ci+fH4KwwfQ8Pi0IpIKx2n5emEg
nbOQL1Lv/IcNiep6Cq3DiyaSpSp/RZf+CAfUNySHS8eWmhLU6jGpSD6hxTpYKye7PmrmvMWwfGEP
WoamAV1kSTb9z/9m9Q2LXa89aKmTxNwnAfD3Ohn9mtU3JukwILRMewn9QRXK7KzM+01h5hkCE4nj
W9q/VGFknNhqfhrWBTSQoE9CSVylASGrjzCgS7XmKy/BaH3/7mOOHQv5g1o3Qj/+cdKnpT0I5Qb1
nRy+c7wUzo9OqydJtxzSP4ZyHA4dELto/a3m/ay1XHcpum1pgTOLgxAfGb/T4dCkwRUstSKLMmpL
g9Y9TrN9BM4xn24tBFFyL5znGG0wQGzOVAM68RBzIQb6Fz758fjsr4yZnPbVsU1+gHEs/puNHrG0
9e1EQXmUtfGn4InoopJuU8p5VGD9S3Ikd4UoBlc7xl5yjtNlQxUeYrRlnUSmdlucCEoTX1n4UmtA
9CuVHSA7eUHO7I88CtWG9bGOU7tLgOZoSEvNqtaL/N7sQbBZK4jZ4Rr/zNTQg1SwYjjLB7u96lDP
sipoCi8BfR35/ViNuYJWwDCOEua94WM3AgMBAAGjggGwMIIBrDAfBgNVHSMEGDAWgBSJSAjqIE53
a4blgcjX4Y1khH/8cDAdBgNVHQ4EFgQUXGIam3Bs59Y60yTmWgfDu6pZQ6cwMAYDVR0RBCkwJ4ET
ZHdtdzJAaW5mcmFkZWFkLm9yZ4EQZGF2aWRAd29vZGhvdS5zZTAUBgNVHSAEDTALMAkGB2eBDAEF
AQEwDgYDVR0PAQH/BAQDAgXgMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDB7BgNVHR8E
dDByMDegNaAzhjFodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMDegNaAzhjFodHRwOi8vY3JsNC5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVtYWlsRzIu
Y3JsMHYGCCsGAQUFBwEBBGowaDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29t
MEAGCCsGAQUFBzAChjRodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vVmVyb2tleVNlY3VyZUVt
YWlsRzIuY3J0MA0GCSqGSIb3DQEBCwUAA4IBAQBBdzgU+I8tGdMO+Y4AETOQi6aiN9kB7lKWe5Ch
4VR+L4uxYIqIHxR7G2+IEC9ugqEu43p4b80LpY7M4KmmfiaRDFGQ50s1OHAwdbR3X2OtkUQq0Qb9
6ln+HD8N1JxO5nabuKbymki0BPoZcPdo+FeRecmkL/NOzzm41JBHrhwRwEWOOhAO5KxN4nkMBZ/w
QzKEy4PylxurHmRG/K0k+xYFDO/UOx2/YsM8s138lQqEdKCvudtSvj5oA/Y8dNcZwQGHyVN5h5r2
nh3mT3r2l7Q4dgxXlovERGpNqCZJ624jCiWQC4ELMD2+6WDxjj03PbOulQZ8oY4PQUyp6djF0keA
MYIDuzCCA7cCAQEwVTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMX
VmVyb2tleSBTZWN1cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJYIZIAWUDBAIBBQCg
ggE3MBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTI1MDQxODEwNTgz
MlowLwYJKoZIhvcNAQkEMSIEIP0yUaiFW/sEJriIbv+Hb9JlVrjL7uMYRvO9vX922vHXMGQGCSsG
AQQBgjcQBDFXMFUwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoTB1Zlcm9rZXkxIDAeBgNVBAMTF1Zl
cm9rZXkgU2VjdXJlIEVtYWlsIEcyAhAH5JEPagNRXYDiRPdlc1vgMGYGCyqGSIb3DQEJEAILMVeg
VTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMXVmVyb2tleSBTZWN1
cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQEBBQAEggIAHcW+udOfYxIj
yQTLhpklmNM1lgbo4bun+URpoJkwiZUXgdoSQeaPzMKTTrqSyMWwIDJ5sMW8YxYKEzWBo2ax790+
CloK3AmyrgiTo68D8+TiLRvu2pNfZUbCobyhObPqkU4FuuePQNizrIPEHOR4UjtuuuyyZI0vVP2D
zNWQh9KXwTwPVSmIGBlt3VSF8ov/nPs5fHUy6iUQGcPMBBurKWH3pHQpTPIXjw5ivJ8jyNt7Gn0O
pDzKzVzDqmnoXDao3m3uBTYG6myhifPASeIGDSsE8Y2hP7tJnwtzGrFEUVjYtZ+2KOLR6ozjhALd
hz8fz8fNz+ep+2JZtFu9hU514pvDTbJYzDbKcyETQx0A3/XfUYhVJx+c8wypXpRGzpdnJLZ+E7rU
j3na2RvzY7HbrQrJ++jndrzT35p72Zstl6w1hhLhfujrpPJz3mvDYSz4ckSdap4+kaYNdiGPYlYZ
3pQU4HwRkKdySMogjztlV4ajdc5vHESqBzrkn3Tq1fkNj9elAWuuBUCDzgdAU6xXyX6WVOrVIYnr
kXg+EPdO8yCgA8vvhrmMSq7g4OfmTfXZH3e5C0aqyQ8ZpQ1i267mpXdIeqI5bcdv6Lin/e/ZL3jh
9jrnKZO0LXjbDMxu4kww2tZLkhx6sKizeq6kQ4Nxtj3eNaxpVkHI79JMmx/jeHEAAAAAAAA=


--=-AlqyRptSQ6mJ5RyNI2Cc--


From xen-devel-bounces@lists.xenproject.org Fri Apr 18 11:15:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 18 Apr 2025 11:15:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.958914.1351469 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5jhJ-0002Ur-2v; Fri, 18 Apr 2025 11:15:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 958914.1351469; Fri, 18 Apr 2025 11:15: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 1u5jhI-0002Uk-W6; Fri, 18 Apr 2025 11:15:52 +0000
Received: by outflank-mailman (input) for mailman id 958914;
 Fri, 18 Apr 2025 11:15: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=iJE8=XE=gmail.com=ubizjak@srs-se1.protection.inumbo.net>)
 id 1u5jhH-0002UY-SY
 for xen-devel@lists.xenproject.org; Fri, 18 Apr 2025 11:15:51 +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 7bd238e9-1c46-11f0-9ffb-bf95429c2676;
 Fri, 18 Apr 2025 13:15:50 +0200 (CEST)
Received: by mail-lj1-x235.google.com with SMTP id
 38308e7fff4ca-30bfc8faef9so16380201fa.1
 for <xen-devel@lists.xenproject.org>; Fri, 18 Apr 2025 04:15: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: 7bd238e9-1c46-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1744974949; x=1745579749; 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=DuDmX7HFNNg9bdF0GsJtTxnPoXyBhXe51ZRLu7jghTc=;
        b=h2HGYIGaPi8+PUK/X5JFRDfsRtifLXS87cPzUqf/DSxN1nSMp1xu76HcYNRAtDqDEC
         LzZC7DBNsFV399e1L+U8VFjjFywyz3Iec3pvkbTT/lQmJ4nDdZpelgWvHDhIzPUi1Z4B
         K42eSebC9cdVk3YWqmLF2jzFLqhNc74BOIv1gJ7tgHDbCbbX0ry/LXYEu2NhKS9JanCj
         NEal9DeuLChCV2OMQwwfA9WSs5rwpCEmB1oxCVBp6CM9BObTtPBr4AIfviXkYnwvz4bY
         /gdQsLbjXFLP0tLRUq0h9dwg8JyYhHgvy+HcQz8jfpLALrIIvD5s6i1jHY5RFvv/QV87
         teFw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744974949; x=1745579749;
        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=DuDmX7HFNNg9bdF0GsJtTxnPoXyBhXe51ZRLu7jghTc=;
        b=CSxVF0DM8qiA0Zt41thOlbIGOpycKPvgIQZsKjUpMIZ3EcAvTulNB9C6e1CZrTQPHu
         f3pPZyqWbkH1Hkz3QQguAOwndmC+DVzhPJ4A1cVaHObdv9+93GdXFbXrgyunzVJvm6lI
         PX2aAEEiRqxMCkG+KtGIzS4HaMRM+LRzpJd/s2vxEhTuYJYEGG+4qzdtqNmbHSOoBCHi
         JvviO9e22NPtFnu+wMnj+oZt9BJdLcDvzvl2dz4761x9DsNqRN8z/wDem30YwLbcx5+7
         eq1SmrDv1IBlSKup/xzqxeCk/jKpkG4zoZmfoGe9NIBFomiy5ig8zg8o0Scw7nh0VNUo
         0WqA==
X-Forwarded-Encrypted: i=1; AJvYcCUeAaFihY65mFg3PygzP2b63UHnDhrVISEftufOIywTLgQnxChMvRaqlnzpJrz8+bVh4IN8j5kcU+Q=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwiuSdB+wr8BTDdt4vjsXzfuMY3bQUTxR2XfvwKfzq3tIQrbbl4
	SasTlqNI+9AxbSyBXY8xwEgVRUgQKIIHNazgCSc1hMiOB/1WXZYvYqvLq6TxoZrtqSyDeWezQYA
	cZjLZ9ATTwZK0PRkb53M7HHVsCS8=
X-Gm-Gg: ASbGncvbEd2vKW5sFK/bUVijMIgWlVI7TIIHufNxOypkdxj9tqe7wDzfY60r/Y+GIh1
	47eGlgYnAAZr/lzKzR9NalG50asYYiRYDxdnLlOn0hBB3LGQTTn9r9jvbEJzaYQK4UmMcCRHgk9
	BRn/XZMVk0eFzVch6xPWiHDg==
X-Google-Smtp-Source: AGHT+IGdOiTGvb/PRQMWHrpFsd0ceVhNOaLkgjWWIXX30ZaT72VDkE5XNIHWYGe7hY+aULnZ8AWGTv31L5H7QDTG2nI=
X-Received: by 2002:a2e:bc88:0:b0:30b:9813:b010 with SMTP id
 38308e7fff4ca-31090554278mr7750231fa.31.1744974949184; Fri, 18 Apr 2025
 04:15:49 -0700 (PDT)
MIME-Version: 1.0
References: <20250418071437.4144391-1-ubizjak@gmail.com> <50bf962c-2c9e-46a2-bbac-cba9cf229e79@citrix.com>
In-Reply-To: <50bf962c-2c9e-46a2-bbac-cba9cf229e79@citrix.com>
From: Uros Bizjak <ubizjak@gmail.com>
Date: Fri, 18 Apr 2025 13:15:37 +0200
X-Gm-Features: ATxdqUGD5hIAG3AkM2DfHRBQofsYR7B0lWB7D2bun3Tb_fWb4vOmFg3E0fDFYL4
Message-ID: <CAFULd4ZNiRdARn8O98zROQRWoL1ASQ+iPPTTmLRxjo9SGRHyRg@mail.gmail.com>
Subject: Re: [PATCH -tip v2 1/2] x86/boot: Remove semicolon from "rep" prefixes
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: x86@kernel.org, linux-video@atrey.karlin.mff.cuni.cz, 
	xen-devel@lists.xenproject.org, linux-pm@vger.kernel.org, 
	linux-kernel@vger.kernel.org, Thomas Gleixner <tglx@linutronix.de>, 
	Ingo Molnar <mingo@kernel.org>, Borislav Petkov <bp@alien8.de>, 
	Dave Hansen <dave.hansen@linux.intel.com>, "H. Peter Anvin" <hpa@zytor.com>, Martin Mares <mj@ucw.cz>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Fri, Apr 18, 2025 at 12:24=E2=80=AFPM Andrew Cooper
<andrew.cooper3@citrix.com> wrote:
>
> On 18/04/2025 8:13 am, Uros Bizjak wrote:
> > diff --git a/arch/x86/boot/video.c b/arch/x86/boot/video.c
> > index f2e96905b3fe..0641c8c46aee 100644
> > --- a/arch/x86/boot/video.c
> > +++ b/arch/x86/boot/video.c
> > @@ -292,7 +292,7 @@ static void restore_screen(void)
> >                            "shrw %%cx ; "
> >                            "jnc 1f ; "
> >                            "stosw \n\t"
> > -                          "1: rep;stosl ; "
> > +                          "1: rep stosl ; "
> >                            "popw %%es"
>
> Doesn't this one still need a separator between STOSL and POPW ?

";" is a separator as well.

Uros.


From xen-devel-bounces@lists.xenproject.org Fri Apr 18 11:20:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 18 Apr 2025 11:20:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.958925.1351479 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5jlZ-00048C-Id; Fri, 18 Apr 2025 11:20:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 958925.1351479; Fri, 18 Apr 2025 11: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 1u5jlZ-000485-G2; Fri, 18 Apr 2025 11:20:17 +0000
Received: by outflank-mailman (input) for mailman id 958925;
 Fri, 18 Apr 2025 11:20: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=CNZq=XE=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u5jlY-00047y-R9
 for xen-devel@lists.xenproject.org; Fri, 18 Apr 2025 11:20:16 +0000
Received: from mail-wm1-x335.google.com (mail-wm1-x335.google.com
 [2a00:1450:4864:20::335])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1a458e10-1c47-11f0-9eb0-5ba50f476ded;
 Fri, 18 Apr 2025 13:20:15 +0200 (CEST)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-43cf628cb14so21287025e9.1
 for <xen-devel@lists.xenproject.org>; Fri, 18 Apr 2025 04:20:15 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4406d5cf2easm18698005e9.31.2025.04.18.04.20.13
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 18 Apr 2025 04:20: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: 1a458e10-1c47-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1744975215; x=1745580015; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ZJj8Rfgi9EbV15zm3T8GaXom1YrGzd0C3xNCTSZPHuE=;
        b=Cp/YEC+B5xj7BU/4xrl80v4q9Lzs+tLUT4dbnocd8isBUzOZi15eUOmpQnpl3WMKof
         vw64DhTyFeGH8onqhjoY17003/GA8qSH2pfZQcLMNlPY4gmDZG0B0syQXfaPEPEGZjpz
         nk0DVtpxwoSd0roE3pZZ6YoeK042Xlkev1SBs=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744975215; x=1745580015;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ZJj8Rfgi9EbV15zm3T8GaXom1YrGzd0C3xNCTSZPHuE=;
        b=PrRIqbjXlwq6WtHx4HRt4pX7OJt4+PMr3UHUuaB3s9PobBuaThsxvB6GzglWaRTz3P
         fwCyufxxfR+zqFso4NGa6d+j6meP0B1V8ECL9gfn1hvy4YcNkFBTBCwF/xQ3nrsVSkbJ
         XhuRbT6Mg1dOYcjTPu1Twes9n/wHBjNoRIl1T07kUTdoyzDXgaZjdKAa+BBJAtYUcIp+
         Die4ZwPFXedHMBZBLIUHoXymYHswNWwki2Kx8PVNfPPS9KYTEmQk5NhksXvB3/bI4cQZ
         nf8fbRLmXIJzO0M8oByK1HJjL31eieTllKaZ2YsT5tgRo3aVAM1zshdoorjI7VFSr1K1
         bWyg==
X-Forwarded-Encrypted: i=1; AJvYcCUel9St7/OkTYzBI9+lbDtYvC46dpcgNd3m2nmTc357z9GqzFP6vOsL+Fk6lHaBdhpFjRFaBPdYi3U=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwmI/iAqkNY7nRZU0uYwcX9BshpW+gxiajYK/P8BiAjZakf6kwa
	Rl9HfmdiJlWOeLzfYwivu470OzMNZgea7trZ9wPfb05qkGltgV07Bl50pdwhVyM=
X-Gm-Gg: ASbGncsHwMzkyy6V7AfV1yz0NrtjJFjorQ1NMfHI1WVFKIrexEcHhS5LhpX7MnXaRBz
	TaQ1QOlEXA0tnyowGsvkhRn2O0pT+8cAVrsixf18kjLuUKZU+SjN9+KMcN1aM/4LtsYw6swdkxR
	Y6Ut/9h0l5NwM88wdFPlSY097oER5kS04HapVANTv3pNg/9oVfMFl06D3wl3/ahk7bSu5ZLcz0W
	nkqawGrbl9/bt0JbxbfKjBf+qz5cy9Auok55TPhjWdb/XXf6A4YIu05k3Kth86NGJyWY4oWA2M0
	3/Nd65pyfA5BxH6+Krf5legSJdYas1g/lE+ngVgsvMsGKc94jxo6HYD3Qjz1zaepCT6j5/42wRP
	J0lYXWw==
X-Google-Smtp-Source: AGHT+IEH86lkzDB8iD2jcwBv9xObYazBn81tO8e62htfmOl2I85kmXIxDh76Itbbny1GahYRs6qSCQ==
X-Received: by 2002:a05:6000:184f:b0:39b:f44b:e176 with SMTP id ffacd0b85a97d-39ef9466f36mr2679870f8f.24.1744975215276;
        Fri, 18 Apr 2025 04:20:15 -0700 (PDT)
Message-ID: <4fb6d880-3d5f-4d42-8419-dcc697949a10@citrix.com>
Date: Fri, 18 Apr 2025 12:20:13 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH -tip v2 1/2] x86/boot: Remove semicolon from "rep"
 prefixes
To: Uros Bizjak <ubizjak@gmail.com>
Cc: x86@kernel.org, linux-video@atrey.karlin.mff.cuni.cz,
 xen-devel@lists.xenproject.org, linux-pm@vger.kernel.org,
 linux-kernel@vger.kernel.org, Thomas Gleixner <tglx@linutronix.de>,
 Ingo Molnar <mingo@kernel.org>, Borislav Petkov <bp@alien8.de>,
 Dave Hansen <dave.hansen@linux.intel.com>, "H. Peter Anvin" <hpa@zytor.com>,
 Martin Mares <mj@ucw.cz>
References: <20250418071437.4144391-1-ubizjak@gmail.com>
 <50bf962c-2c9e-46a2-bbac-cba9cf229e79@citrix.com>
 <CAFULd4ZNiRdARn8O98zROQRWoL1ASQ+iPPTTmLRxjo9SGRHyRg@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: <CAFULd4ZNiRdARn8O98zROQRWoL1ASQ+iPPTTmLRxjo9SGRHyRg@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 18/04/2025 12:15 pm, Uros Bizjak wrote:
> On Fri, Apr 18, 2025 at 12:24 PM Andrew Cooper
> <andrew.cooper3@citrix.com> wrote:
>> On 18/04/2025 8:13 am, Uros Bizjak wrote:
>>> diff --git a/arch/x86/boot/video.c b/arch/x86/boot/video.c
>>> index f2e96905b3fe..0641c8c46aee 100644
>>> --- a/arch/x86/boot/video.c
>>> +++ b/arch/x86/boot/video.c
>>> @@ -292,7 +292,7 @@ static void restore_screen(void)
>>>                            "shrw %%cx ; "
>>>                            "jnc 1f ; "
>>>                            "stosw \n\t"
>>> -                          "1: rep;stosl ; "
>>> +                          "1: rep stosl ; "
>>>                            "popw %%es"
>> Doesn't this one still need a separator between STOSL and POPW ?
> ";" is a separator as well.

Yes, it is.  I've clearly not had enough coffee yet.  Sorry for the noise.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Apr 18 11:32:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 18 Apr 2025 11:32:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.958944.1351488 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5jww-000782-Hi; Fri, 18 Apr 2025 11:32:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 958944.1351488; Fri, 18 Apr 2025 11:32: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 1u5jww-00077v-Ej; Fri, 18 Apr 2025 11:32:02 +0000
Received: by outflank-mailman (input) for mailman id 958944;
 Fri, 18 Apr 2025 11:32: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=h7fJ=XE=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1u5jwu-00077m-P5
 for xen-devel@lists.xenproject.org; Fri, 18 Apr 2025 11:32:00 +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 bd461357-1c48-11f0-9ffb-bf95429c2676;
 Fri, 18 Apr 2025 13:31:58 +0200 (CEST)
Received: by mail-ed1-x534.google.com with SMTP id
 4fb4d7f45d1cf-5e61d91a087so2752466a12.0
 for <xen-devel@lists.xenproject.org>; Fri, 18 Apr 2025 04:31:58 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-64-225.play-internet.pl.
 [109.243.64.225]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-acb6ec913cfsm108560166b.80.2025.04.18.04.31.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 18 Apr 2025 04:31:57 -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: bd461357-1c48-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1744975918; x=1745580718; darn=lists.xenproject.org;
        h=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=kJrFDW1uQXDUTPMV0PWRonteObr+Tui2beKJMNiw11k=;
        b=KbSl5XQ1Ee2OaBbFZ6w92K0Fi6TmbW+rwTgItaNw+lAih5dK9Dg27t9p2zy8g3di6Q
         CqnMLGak19tnWbjWPXaYVBEl9xzn2no3vdKTFFbQm7oD/VY21aaljRjwu42Yv2o0oLmv
         ZkFa2bnojT1epf6L8T+siXnAcVFkvD5X0/uNdf2TgwUreCexqdXzzD2oKftExFue8Rz2
         3DaVWleCFLiddmfutqe/dv/KU/AlU9B2Bbj+ZrPdgleXLar0ek6i0yjmp5Jy3c6FJI/d
         aWuLzP5ycgYISJ+4OVQwRwLA6Kynx1bbMfJSqtSRUDesxktK5Z3QizKqkvRtemsbaBf2
         fMxQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1744975918; x=1745580718;
        h=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=kJrFDW1uQXDUTPMV0PWRonteObr+Tui2beKJMNiw11k=;
        b=cKe61zpUe17Z/G1wEHjmN6fJse8RUS+5eMFjpszKMDm54VbpdUv4tmkAuhif6KPUcD
         EEnOG/93ip+SJ3aJk02sPx+6GiF8zNlLgXh1pfy4ZKsJKOa2Sua8Rd2i2kgcgnLwH2ZU
         nfonNA5ZGc4tNldofTw88Pn+yrk9erhT4XqMDj6Qw3ycM/GfVKWqCOaHE8AZfd3YvC4u
         M3NJxXW7hctcndze1gwBLYO/0f7vcNAz3VUD81pTu4UfJh6Nv88sM1SYEmGLFezpZdF5
         R8Om7Kluf8uhtjfSrDe2SIfgF4FBJHD4ReinM8yai4FxHXgXxtoO9zNb9b/L0JGaIgva
         7SFQ==
X-Forwarded-Encrypted: i=1; AJvYcCUw9QO3cXEgRoh7CkoIObI036DdPn0xgNasdqI8TxWZQkvZB405mIGCDOZPJSguRK16NHug4QhC5AE=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy+q0By2oSe3Fdrs4rMmLL/cOsU70JFbXmgjJgA7mwiGQkFyX70
	YxfiI/MZfJnEFGlRPDJEI20AlwKL11IE35MAk1txbscJciXBcOKh
X-Gm-Gg: ASbGncvLnYVekRqlZ5XrHMAZCmbDNVfJMmTb4vvScAIW4Y+polydwTtAhbZimqx4iYC
	F7T3b8imacHUjmfWkP8m91wl0T1dHrya/RQn0xBV8IWHkd7ZOVVZSBWOArQrkKHNDqcLUrV3eyf
	ZKdVaoYU1L9MQxVIkT89AnGUi0TBlruxvq8zZNEdUeg69yEMgj3yDWMEfrhvtawm3sQZ8awReRt
	L5ImNPPuP1GonOEYsxb4No0GKRj6u1OP4EbYNDjyH7oYna9sJoyiheRrNOg+MTnTjKEkaYvy8Ur
	gsMgRVpmuPLT8dBdloyuOhyGshfMHI/vtSceA+WdvzsI9lxrQUUBeCZ6y+qXmRrQ0nPBigMmWOj
	m5J1FZuS3klYchsig
X-Google-Smtp-Source: AGHT+IEDC6jPYwbdtZuxrguspVbkY2/sFF7Z2KOHQLrkHkqaXMq2VhPVNm4VQVKNQ92rlOP4J6wcow==
X-Received: by 2002:a17:906:dc89:b0:aca:c7c5:f935 with SMTP id a640c23a62f3a-acb74ea8f76mr157622166b.61.1744975917919;
        Fri, 18 Apr 2025 04:31:57 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------FPk9gRSiKMP70wNvdX0HCAms"
Message-ID: <5d211530-fe1b-4f83-a8a9-cf41603e4fd3@gmail.com>
Date: Fri, 18 Apr 2025 13:31:56 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 09/14] xen/riscv: aplic_init() implementation
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Romain Caritey <Romain.Caritey@microchip.com>, xen-devel@lists.xenproject.org
References: <cover.1744126720.git.oleksii.kurochko@gmail.com>
 <1d023045be49ae93d41d552f9c9a79972fa4e84b.1744126720.git.oleksii.kurochko@gmail.com>
 <a7008eee-04d2-4e61-b66a-ff659e3b99db@suse.com>
 <a54ef262-92fc-453d-898e-70636c2918fd@gmail.com>
 <f2da2ec5-e457-4d2c-b2fe-49c7356760e1@suse.com>
 <fd24bee3-bbbd-4701-a34c-08b64ea0af5a@gmail.com>
 <2795e63a-fc37-4ab9-8348-ab2f609f1734@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <2795e63a-fc37-4ab9-8348-ab2f609f1734@suse.com>

This is a multi-part message in MIME format.
--------------FPk9gRSiKMP70wNvdX0HCAms
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 4/17/25 5:30 PM, Jan Beulich wrote:
> On 17.04.2025 17:21, Oleksii Kurochko wrote:
>> On 4/16/25 12:30 PM, Jan Beulich wrote:
>>> On 16.04.2025 12:15, Oleksii Kurochko wrote:
>>>> On 4/14/25 12:04 PM, Jan Beulich wrote:
>>>>> On 08.04.2025 17:57, Oleksii Kurochko wrote:
>>>>>> +    rc = dt_property_read_u32(node, "msi-parent", &imsic_phandle);
>>>>>> +    if ( !rc )
>>>>>> +        panic("%s: IDC mode not supported\n", node->full_name);
>>>>>> +
>>>>>> +    imsic_node = dt_find_node_by_phandle(imsic_phandle);
>>>>>> +    if ( !imsic_node )
>>>>>> +        panic("%s: unable to find IMSIC node\n", node->full_name);
>>>>>> +
>>>>>> +    /* check imsic mode */
>>>>>> +    rc = dt_property_read_u32_array(imsic_node, "interrupts-extended",
>>>>>> +                                    irq_range, ARRAY_SIZE(irq_range));
>>>>>> +    if ( rc && (rc != -EOVERFLOW) )
>>>>>> +        panic("%s: unable to find interrupt-extended in %s node\n",
>>>>>> +               node->full_name, imsic_node->full_name);
>>>>> Why exactly is EOVERFLOW tolerable here?
>>>> QEMU generates two IMSIC device tree nodes: one for M-mode and one for S-mode.
>>>> For the hypervisor, we don’t really care about the M-mode IMSIC node — we're only
>>>> interested in the S-mode IMSIC node.
>>>>
>>>> The IMSIC node includes this information in the|"interrupts-extended"| property,
>>>> which has the following format:
>>>>      interrupt-extended = {<interrupt-controller-phandle>, <machine_mode>},...
>>>> The number of such|<phandle, mode>| pairs depends on the number of CPUs the platform has.
>>>>
>>>> For our purposes, to determine whether the IMSIC node corresponds to M-mode or not, it’s sufficient to read only the first pair and check the mode like this:
>>>>
>>>>      if ( irq_range[1] == IRQ_M_EXT )
>>>>
>>>> Thereby dt_property_read_u32_array() will return -EOVERFLOW in the case when a platfrom
>>>> has more then one CPU as we passed irq_range[2] as an argument but the amount of values
>>>> in "interrupts-extended" property will be (2 * CPUS_NUM).
>>>>
>>>> I can update the comment above dt_property_read_u32_array() for more clearness.
>>> Yet my question remains: Why would it be okay to ignore the remaining entries,
>>> and hence accept -EOVERFLOW as kind-of-success?
>> Because for other entries the IMSIC mode will be the same and the difference will be only in
>> interrupt controller's phandle
> And we can blindly take this for granted? Would you mind extending the
> comment that's there to include this aspect?

I tried to compile dtc with different modes in interrupt-extends and compilation doesn't failed, so
it's not really granted.
Just to be sure, I'll check all items of interrupts-extend not just the first one.

~ Oleksii

>> which we don't care about in this function and cares only about
>> in imisic_init(), look at usage of imsic_get_parent_hartid().
--------------FPk9gRSiKMP70wNvdX0HCAms
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 4/17/25 5:30 PM, Jan Beulich wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:2795e63a-fc37-4ab9-8348-ab2f609f1734@suse.com">
      <pre wrap="" class="moz-quote-pre">On 17.04.2025 17:21, Oleksii Kurochko wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">
On 4/16/25 12:30 PM, Jan Beulich wrote:
</pre>
        <blockquote type="cite">
          <pre wrap="" class="moz-quote-pre">On 16.04.2025 12:15, Oleksii Kurochko wrote:
</pre>
          <blockquote type="cite">
            <pre wrap="" class="moz-quote-pre">On 4/14/25 12:04 PM, Jan Beulich wrote:
</pre>
            <blockquote type="cite">
              <pre wrap="" class="moz-quote-pre">On 08.04.2025 17:57, Oleksii Kurochko wrote:
</pre>
              <blockquote type="cite">
                <pre wrap="" class="moz-quote-pre">+    rc = dt_property_read_u32(node, "msi-parent", &amp;imsic_phandle);
+    if ( !rc )
+        panic("%s: IDC mode not supported\n", node-&gt;full_name);
+
+    imsic_node = dt_find_node_by_phandle(imsic_phandle);
+    if ( !imsic_node )
+        panic("%s: unable to find IMSIC node\n", node-&gt;full_name);
+
+    /* check imsic mode */
+    rc = dt_property_read_u32_array(imsic_node, "interrupts-extended",
+                                    irq_range, ARRAY_SIZE(irq_range));
+    if ( rc &amp;&amp; (rc != -EOVERFLOW) )
+        panic("%s: unable to find interrupt-extended in %s node\n",
+               node-&gt;full_name, imsic_node-&gt;full_name);
</pre>
              </blockquote>
              <pre wrap="" class="moz-quote-pre">Why exactly is EOVERFLOW tolerable here?
</pre>
            </blockquote>
            <pre wrap="" class="moz-quote-pre">QEMU generates two IMSIC device tree nodes: one for M-mode and one for S-mode.
For the hypervisor, we don’t really care about the M-mode IMSIC node — we're only
interested in the S-mode IMSIC node.

The IMSIC node includes this information in the|"interrupts-extended"| property,
which has the following format:
    interrupt-extended = {&lt;interrupt-controller-phandle&gt;, &lt;machine_mode&gt;},...
The number of such|&lt;phandle, mode&gt;| pairs depends on the number of CPUs the platform has.

For our purposes, to determine whether the IMSIC node corresponds to M-mode or not, it’s sufficient to read only the first pair and check the mode like this:

    if ( irq_range[1] == IRQ_M_EXT )

Thereby dt_property_read_u32_array() will return -EOVERFLOW in the case when a platfrom
has more then one CPU as we passed irq_range[2] as an argument but the amount of values
in "interrupts-extended" property will be (2 * CPUS_NUM).

I can update the comment above dt_property_read_u32_array() for more clearness.
</pre>
          </blockquote>
          <pre wrap="" class="moz-quote-pre">Yet my question remains: Why would it be okay to ignore the remaining entries,
and hence accept -EOVERFLOW as kind-of-success?
</pre>
        </blockquote>
        <pre wrap="" class="moz-quote-pre">
Because for other entries the IMSIC mode will be the same and the difference will be only in
interrupt controller's phandle
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
And we can blindly take this for granted? Would you mind extending the
comment that's there to include this aspect?</pre>
    </blockquote>
    <pre>I tried to compile dtc with different modes in interrupt-extends and compilation doesn't failed, so
it's not really granted.
Just to be sure, I'll check all items of interrupts-extend not just the first one.

~ Oleksii

</pre>
    <blockquote type="cite"
      cite="mid:2795e63a-fc37-4ab9-8348-ab2f609f1734@suse.com">
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">which we don't care about in this function and cares only about
in imisic_init(), look at usage of imsic_get_parent_hartid().
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
</pre>
    </blockquote>
  </body>
</html>

--------------FPk9gRSiKMP70wNvdX0HCAms--


From xen-devel-bounces@lists.xenproject.org Fri Apr 18 13:35:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 18 Apr 2025 13:35:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.959005.1351499 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5lsR-0003lJ-6o; Fri, 18 Apr 2025 13:35:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 959005.1351499; Fri, 18 Apr 2025 13:35: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 1u5lsR-0003lC-3n; Fri, 18 Apr 2025 13:35:31 +0000
Received: by outflank-mailman (input) for mailman id 959005;
 Fri, 18 Apr 2025 13:35: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=DiI7=XE=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1u5lsQ-0003l4-0S
 for xen-devel@lists.xenproject.org; Fri, 18 Apr 2025 13:35:30 +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 fd6964e9-1c59-11f0-9eb0-5ba50f476ded;
 Fri, 18 Apr 2025 15:35:28 +0200 (CEST)
Received: from DU2PR04CA0236.eurprd04.prod.outlook.com (2603:10a6:10:2b1::31)
 by PAXPR08MB7317.eurprd08.prod.outlook.com (2603:10a6:102:230::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.24; Fri, 18 Apr
 2025 13:35:24 +0000
Received: from DB5PEPF00014B88.eurprd02.prod.outlook.com
 (2603:10a6:10:2b1:cafe::8c) by DU2PR04CA0236.outlook.office365.com
 (2603:10a6:10:2b1::31) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.18 via Frontend Transport; Fri,
 18 Apr 2025 13:35:24 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DB5PEPF00014B88.mail.protection.outlook.com (10.167.8.196) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.12
 via Frontend Transport; Fri, 18 Apr 2025 13:35:23 +0000
Received: from DB9PR08MB6588.eurprd08.prod.outlook.com (2603:10a6:10:25a::24)
 by DB8PR08MB5530.eurprd08.prod.outlook.com (2603:10a6:10:11f::24)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.32; Fri, 18 Apr
 2025 13:34:49 +0000
Received: from DB9PR08MB6588.eurprd08.prod.outlook.com
 ([fe80::a8fc:ea0d:baf1:23a]) by DB9PR08MB6588.eurprd08.prod.outlook.com
 ([fe80::a8fc:ea0d:baf1:23a%7]) with mapi id 15.20.8632.030; Fri, 18 Apr 2025
 13:34: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: fd6964e9-1c59-11f0-9eb0-5ba50f476ded
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=OOa4iraX8Xce0qpRsqBIZCkI9W51y8y88uCViNm0nzKSe70h8+lUd3hbZqWMdCSU3rC7atBsqe6nEcsKAo/zAzmponaIXckhOfxXmHLolE0DaxYTq7KaaBY5521iCgBdc2PM2GcrpLYKJHk4euXbh79gJJRdJLQi3cHUdjTGkTjMexH51jNoi/PGSwnPAQ4dXfNe1DnfcDWCd2948cp1ALZs4TASLepwcs7l57y4/0WOl2BnxqgC3ARjD2LCxTm22O5uQx3iEcr5Nh+cbDHiPjZjbuVfT3lTX0K2YcP0v2TC6Uu7DR0Q34K+wVszK7Cz2Wudo8lHBUKbcq18pbZkKg==
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=gx1ti12BdbXOvhevioeL4nuvqku12e4JApiWQxZxE54=;
 b=r9VOZLT5t/rllwwAFoIR+pEY73RcoXeCo2Tno+UaAoSlpZSKreY8/7r4NdmMjbRaAo6Q9IPP92PdpcDr6BxDqBmRzQteekBbmkJxmtgux1tjKeW4jXXa1N7oUjoShk5Wavhj3Zkj4t20FaGWV2PxF/AGUiOguaLf8+jGZ74ZMt1tf4aiCjAGdCUO+yaPBfIWpl9K7NyMGY7EgYVTuHqFUu+wVhmg3OQ1UrC3vtqcF1PQo9l4l7e2sE4A/9m7NnfoSpFaGKX/g2T8XI7BpecVm2bPD+o1q45aHLF2xd5eES5ajLOvd54Onnyas4s5dhA5MFXPlHWuXnetEcYbXjiJeA==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=citrix.com smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=gx1ti12BdbXOvhevioeL4nuvqku12e4JApiWQxZxE54=;
 b=SNFZSjxRPT45QrOtzDcYmhMB5hzwxU0VJkCNl3n/Nk7mBrHw/iS2JKIUq2//xdiFqu6yA39KI7aHaDBPpFt0Tm9/17BJuNR7TcuKHbjRcYGSEdI7n38ZhRrCvXfBtQi6Boc8CyKT+YS1jKQB2T0W0xAAyQ2B/KAHFBs//GikVFg=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=hIC3GDty7CogDtdikRLw8AU2Iqn1kU/Fx2YaSYQlLPu6XLmO8z1BDhCE+/gmC77mhF+r33RCzYmhU8u6pZtCso/gMPgE9yM8sVsMTxnndGZpMHeORlEArEbKiucr8/W5Dy+hYX0hRfmqZORSNfbBA4OXkqYoUfpNGkH/0SAki0ELmNHGGLEWeO8+Z92EXjW8uWaVwgLSaM+jqicVfwzhrhnqkmnonBou/3tTgcmb0u88wIYcfUCsxNAd6sPTyyrsJIWFakuV/bVpxWfzLTPkaIU/+H7yHL5zk6r8yLWPDEVMDso09HVsak9DRvG39uLBIxm4IioO83sgMgsfZm8hkg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=gx1ti12BdbXOvhevioeL4nuvqku12e4JApiWQxZxE54=;
 b=oNQk0mTp2jy5/0mQ5+1mHODDl0u5uwb4ekJ1TIXM+wYOaPC757s6bicKCWjTGPxKpCNqu/q8bJk/A7EOLlmPvCSIDPoPFhdkl2+UiQxKAg4iyUbbZVnl0qYvZ3fNzNzQChCf5+swUJ0/Bzt8boTWC/oTFhxZSNl8OyTBv9Vi7UHVDGZPVVwYxGAqCdn8rdehwPokkMbTx+bKLvoA3xqnzAA0Zvj1dBP+p7gWy9NWl4LYM8InMeA8P9Kzd8XQgGG/SGPN74gIAVFbV+vvkcE141ObRpHAiYRazjTnlHAWFyodWKGejUFj6GxkfO6oRRhh4zoyxSQQ1UFx85svi4ljSA==
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=gx1ti12BdbXOvhevioeL4nuvqku12e4JApiWQxZxE54=;
 b=SNFZSjxRPT45QrOtzDcYmhMB5hzwxU0VJkCNl3n/Nk7mBrHw/iS2JKIUq2//xdiFqu6yA39KI7aHaDBPpFt0Tm9/17BJuNR7TcuKHbjRcYGSEdI7n38ZhRrCvXfBtQi6Boc8CyKT+YS1jKQB2T0W0xAAyQ2B/KAHFBs//GikVFg=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
CC: Xen-devel <xen-devel@lists.xenproject.org>, Lin Liu <lin.liu@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>, Michal Orzel
	<michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, Julien Grall
	<julien@xen.org>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Shawn Anastasio
	<sanastasio@raptorengineering.com>, Oleksii Kurochko
	<oleksii.kurochko@gmail.com>, "Daniel P . Smith"
	<dpsmith@apertussolutions.com>
Subject: Re: [PATCH v6 04/15] xen/device-tree: Remove use of *_to_cpup()
 helpers
Thread-Topic: [PATCH v6 04/15] xen/device-tree: Remove use of *_to_cpup()
 helpers
Thread-Index: AQHbrsb5yt9DQWBdUku9eDjw7081BrOpb7kA
Date: Fri, 18 Apr 2025 13:34:49 +0000
Message-ID: <3C3840F4-88C4-4353-AF86-92239921B5B6@arm.com>
References: <20250416115900.2491661-1-andrew.cooper3@citrix.com>
 <20250416115900.2491661-5-andrew.cooper3@citrix.com>
In-Reply-To: <20250416115900.2491661-5-andrew.cooper3@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3826.400.131.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DB9PR08MB6588:EE_|DB8PR08MB5530:EE_|DB5PEPF00014B88:EE_|PAXPR08MB7317:EE_
X-MS-Office365-Filtering-Correlation-Id: 397b3f96-3849-472c-bec1-08dd7e7ddf26
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|10070799003|7416014|366016|38070700018;
X-Microsoft-Antispam-Message-Info-Original:
 =?iso-8859-1?Q?9LGAGWFlyXGHlTBOlJmGQhRwS979z+z6Ick0rxS59vu2I0YX0FSy2lcyMO?=
 =?iso-8859-1?Q?sT/z3TN3u1O22Y62ZIlkr34osgg9Og9nSbnb7N/0kEKBuQeeiS27wpsI5E?=
 =?iso-8859-1?Q?PgWo3lH45TQgNxnNWEC4DyCxGV0GP4xugym4OtJxIhdscFJsB+F+mEu3rD?=
 =?iso-8859-1?Q?bono6HW8KeRUNk7EFGg706YTI48GMutEv65ecJ2sGtMrlkH+jfCVrcWTNv?=
 =?iso-8859-1?Q?TRkj1moWyimCYUVkNVhlIbowzrtpZkFB/CQwvr/9IGlRwIZ9TYbqg8XDAp?=
 =?iso-8859-1?Q?dNxUcuVcHeRj7RlgsSi7IU33YyGDtlgoGjMtJu+2PTvdfhXXQaG8ae8c7q?=
 =?iso-8859-1?Q?hCXtvrP1FAu/U+F6ijPBpKM62QiFLPHbahQncrjdxo3NdODU+E4APs3AqQ?=
 =?iso-8859-1?Q?QAqd4/4k/mICHXR0blYHdinBhx1/vdL/v7AlDEgLP7wyN2gYXoAdzT2beT?=
 =?iso-8859-1?Q?vgWcFrr6IydrEUeENVGdYGlKmAJ3W8pvaLqkdxKZNtyFgJQJJ5od/wyIVw?=
 =?iso-8859-1?Q?X55yRVfOrNdB7PkPrm2/5cLI6cY3NMjcKjsB2BBmwgiiqMmWE4rwhwiohL?=
 =?iso-8859-1?Q?UD+IYi4O+BArjoxEEccBo0yNx1CK6PkM8j/BLD3vzN5/hK7Po+nJMv0s5z?=
 =?iso-8859-1?Q?iphuOrn+sNiBxWY2d6rhl5EZUJhLaaD9jqcuWEcGJGmJ4y+uzLbBkkqe6A?=
 =?iso-8859-1?Q?TawFGbdLXqwUPk1iYm5z/KDKiXy4LFSKNfVRxUMxKgrKQM4mtHOtbG8hs5?=
 =?iso-8859-1?Q?58fEOz2o4DIuVrr9ulMDvVrRhZVIPp0SzHlGRmBm11QEpus/92ArX55rj2?=
 =?iso-8859-1?Q?DwBx2ZQ/9Gojfa4j0LcoZd0rgKtircsTyTTqNUhjHeMemuq+amYKJux0Ow?=
 =?iso-8859-1?Q?Wt4bMSmhlGu11+4P30/U+EPw6/ApDtoWFkzUbDUS5eo4Zh9jegFrpE60z0?=
 =?iso-8859-1?Q?0DvRlMmsa5Mmi0XZ1m6GRg7b3te83RMXfjzkK/YHG8DAy6JTQCevHMJIBO?=
 =?iso-8859-1?Q?kM1UR7RJJcfct+sSTozB6U5VRz0MRXrgs7CTOVk+QXDLMrH/isZlIu+3Ep?=
 =?iso-8859-1?Q?chCzt1P/aE+2atdnL6dpQgTl+g2bOTZQUS2gCxllX1OMgpKJgcJeSM87hr?=
 =?iso-8859-1?Q?dMZrL/IZNp3D7O1E8/LrMd7z4Ww7BR+i4m82UFDs9ASKmcjjirLmH6/vls?=
 =?iso-8859-1?Q?VCvCFsWDRmaQK1neDBCmPJN82StoWHWUlqxzNeuvG/WKbp0PFgvS5Nj8Jb?=
 =?iso-8859-1?Q?L9yMo4+GTT1wvu2a4b+PdlwQpgvzzHE5MI6GeUWLmC5qwQqNjnllVzDNO3?=
 =?iso-8859-1?Q?jOZqW3OKNN7WfQiaA8HLgX1D38K67D5g/k8MW1g9frplVoVi1DXENSYkXH?=
 =?iso-8859-1?Q?f7ammDiFi2tI04rqQ1MKMVkyj4CEI8Fz7LEj5gy6wk7akZg/F8LA/Vurf9?=
 =?iso-8859-1?Q?16SRB7jjyzVeaxCpBRcO3OfJGlQ10wwrgraNbI0CCy+QxWv3ojoLHLffUr?=
 =?iso-8859-1?Q?Qy0z1u+fPEec/+NYl9TmeIdttj5dgzcZ64M1B6bqxM0w1g2FSPhlEaXrWU?=
 =?iso-8859-1?Q?2A2tX/g=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)(376014)(10070799003)(7416014)(366016)(38070700018);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="iso-8859-1"
Content-ID: <DA93ADD7168B934EA635B1CDCC5B0458@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB8PR08MB5530
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB5PEPF00014B88.eurprd02.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	5d9c4087-b2b2-4797-8d04-08dd7e7dcabf
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|14060799003|7416014|35042699022|1800799024|82310400026|376014|36860700013|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?iso-8859-1?Q?m25fZiLIGmrL7AgKjlwYaJq/1u7o1i/qNz8Kp+2chFqoujSOCg4ExU+vx/?=
 =?iso-8859-1?Q?eGT415gqP7NEIDqaOPH/m8BqhKrPxKiYgcL99aQ2SN8Hg2N2RvsySkATUH?=
 =?iso-8859-1?Q?6eWsgKEGJvQLpJpjTn5c6G9+QjJK4qdcDqaycFRsyWyPKYlJVthmjzGfpH?=
 =?iso-8859-1?Q?gwMK2V3fv4qqsyLnxyHhU8RmIyl8Khlrth1bvurZ7vb7bbp/zeESexcf+z?=
 =?iso-8859-1?Q?/nq1MR0wh4Pz3OFNDgoF9BkKdD3OipS88lgskWBlrINgWJEpVY3qXS7HCo?=
 =?iso-8859-1?Q?0PqScS/Kxe7oPgq5NoIMVsL1h+GxracbDUxp8zktmJjKlQIZijlPV5DHwl?=
 =?iso-8859-1?Q?u+fKl6Bx+TWfHG65Ia3eVXHCUhYneKfQaWeRVsSdyPI4BDoRfNQowb0+6a?=
 =?iso-8859-1?Q?CCKdDUYSOFU7v7tc9RVL13omXX/eRUuF0FjqyNObc5eCyHt36fsUTZmaSa?=
 =?iso-8859-1?Q?wnh7RvQ9vNfws2cwEENunFM8OgWMe1/r2U+nvACm7+WuA3rv91ILU0iFdc?=
 =?iso-8859-1?Q?JpBgfsUtwMgr51p+Wtvp0F3mymLWaMehyCce2NeEhsLbf/NK1up5rhdprF?=
 =?iso-8859-1?Q?3tEoyBu4fQq5WXQWMrwYznN66NM4F3xaiRfNGjLZBiUomJDGBHneqx6ocO?=
 =?iso-8859-1?Q?lBSwCPKtSKgKqzcUiH0iAo3PbiCcn/iKqidFJWlgSa1up0tqSEerqWi1+r?=
 =?iso-8859-1?Q?tPAjS9zhcAhIQbKPFvTftXRhrL2y0tE/JS1sIHJpEHgtXZUdW7/yfTSotc?=
 =?iso-8859-1?Q?OgpdKwU8xBnHlCKvD+vyBtS15e3Q/AyR6iSt6s/h5+GtTieXNDru7On9pY?=
 =?iso-8859-1?Q?Whss5t1g/G8e8mDk3gYuLMxhINBS3LyvDFAtv3qGrg18y8/LS/BkoCsf4+?=
 =?iso-8859-1?Q?G7dB4z5m7d7e1WF2T80nEpUfjzL28fAex4GWAibJTkB/7T1BZIH0X+0V4/?=
 =?iso-8859-1?Q?vmijOMIi5CJL2mycVfWVVMcHVRaxPgn9BC3uOVvypwFXB1hxTqWgiLlx46?=
 =?iso-8859-1?Q?tmPGQd0PaCUY6TF+IYeVkfO4kGSX03NmRDRYaFvPCa+049DU8cu3bckB2H?=
 =?iso-8859-1?Q?Bfzrgvlj/vtdliKpnecvViS9J6MIdawqOkASjELAqLNYP/+qt48aijxjgE?=
 =?iso-8859-1?Q?OTWv/XkOVd+4BlcU4jxtUgQYuABt5PhBPGfusAu/mG7AzqA9j21LZs30TB?=
 =?iso-8859-1?Q?rkniPAQrI6seLwsMg6/NURL21N8sgfy645jL7+ox/0wH0mfLCuvZaVQgWp?=
 =?iso-8859-1?Q?Da+/SsTCcFepJrOmtokvEZLHcs0FoWwSEAXiq0k8g9PJUZrUMgI91y2hmF?=
 =?iso-8859-1?Q?/DqbUDHR5Vtn/RlLLgyLkMPBzI3sGTY1rzy8odysvKsL1Qra4pPNd8b0Jh?=
 =?iso-8859-1?Q?ih5NFSzg6brfuoBBIIvEtJ1qnnsj2/SOqcpAovpjxjTET68OieC1l99epb?=
 =?iso-8859-1?Q?uDXU4husNOpQKvG6zOWK4gwksT5KmC03YJ8ocUSvk0cj4bpxp099F+mvRn?=
 =?iso-8859-1?Q?3w42/xrMffb6Sx6gdYzJmVAFGiMZvrlOhfLp1Io49BywIIquBLY6Oirg+5?=
 =?iso-8859-1?Q?RJh73O246Y7TJyXJgvtjtdYgiGOI?=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(14060799003)(7416014)(35042699022)(1800799024)(82310400026)(376014)(36860700013)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Apr 2025 13:35:23.5376
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 397b3f96-3849-472c-bec1-08dd7e7ddf26
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DB5PEPF00014B88.eurprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR08MB7317

Hi Andrew,

> On 16 Apr 2025, at 13:58, Andrew Cooper <andrew.cooper3@citrix.com> wrote=
:
>=20
> From: Lin Liu <lin.liu@citrix.com>
>=20
> These wrappers simply hide a deference, which adds to the cognitive compl=
exity
> of reading the code.  As such, they're not going to be included in the ne=
w
> byteswap infrastructure.
>=20
> No functional change.
>=20
> Signed-off-by: Lin Liu <lin.liu@citrix.com>
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Acked-by: Bertrand Marquis <bertrand.marquis@arm.com>

Cheers
Bertrand



From xen-devel-bounces@lists.xenproject.org Fri Apr 18 14:18:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 18 Apr 2025 14:18:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.959029.1351529 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5mYK-0003Sm-Mn; Fri, 18 Apr 2025 14:18:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 959029.1351529; Fri, 18 Apr 2025 14:18: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 1u5mYK-0003Sf-Jj; Fri, 18 Apr 2025 14:18:48 +0000
Received: by outflank-mailman (input) for mailman id 959029;
 Fri, 18 Apr 2025 14:18: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=Jnu5=XE=bounce.vates.tech=bounce-md_30504962.68025f43.v1-c3fbf095ffa3449fbe8cf6dca1c9667b@srs-se1.protection.inumbo.net>)
 id 1u5mYJ-00030w-1b
 for xen-devel@lists.xenproject.org; Fri, 18 Apr 2025 14:18:47 +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 08d67e17-1c60-11f0-9eb0-5ba50f476ded;
 Fri, 18 Apr 2025 16:18:44 +0200 (CEST)
Received: from pmta08.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail128-130.atl41.mandrillapp.com (Mailchimp) with ESMTP id
 4ZfH1b2PcKzS62Gnq
 for <xen-devel@lists.xenproject.org>; Fri, 18 Apr 2025 14:18:43 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 c3fbf095ffa3449fbe8cf6dca1c9667b; Fri, 18 Apr 2025 14:18: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: 08d67e17-1c60-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1744985923; x=1745255923;
	bh=gnjPzXP758vraGzIoNv1ve6SdnhKU+HNaWzV+04DExs=;
	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=Yj4g5xHdhsrCYdA0RJn3y4nj2Pfp+PrhZEDWhjgKhYWKJ6bVBAnZyHKgGPJXqhaeD
	 wx9w+Y9kCwW19rSJq/ucz3eg5EmhVyCXTZqWtJEMCkHiN6bs8pYNBdDigF3JdJ/MB2
	 6Q0vALzBAVSvvO8E+Z64uWtDgIbmkSYMGMSFcfIO5Sm5huqQZACXuvXr9bJRslq8ee
	 SMXbXFj7wK3UPnec3cArvIGrht9EWwUVopIJDLyGO1Qx6Natm5YzRiayEZAN3VPtho
	 Ke9A3gDMzeTo3TWNEyFg822hfWURORpTzv1Yj+ZL67cgon8f/q7DnE2T+aIb2wbamf
	 UbxzEbQit3QnQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1744985923; x=1745246423; i=teddy.astie@vates.tech;
	bh=gnjPzXP758vraGzIoNv1ve6SdnhKU+HNaWzV+04DExs=;
	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=JZ/ueTN/RetjtC/SDQ+lCcJVl+Wi1Up/TVATO1YgdryuRauUd15cD2t68iHF2YT1n
	 uZ9O79D9OjjTtSleagv/OlkXVy8QrSiZm+NnZLg6Qimb14SHtj1QgcJBcP5MJ99vH3
	 knuYjUsy4hEjD1TH9jW5bPZAQ+h55/oaB+42jrzN5GTvWx16Mji8Orv9MzoHncv/q5
	 ctcds6ZD54Zut7vBvAl7URJ0CnDxD1nWmeNxuBZod3msfVdpWGNdQCB2FC4BfOjp40
	 TptRN9Lc1+U1rB8alZZeWW+VbeSc02gn/qh3VNE7ANL/6C1JZ2z5xkiOmyS2uFRKe7
	 c9QUP89ixwrDw==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[RFC=20PATCH=202/4]=20x86/hvm:=20Consider=20phyaddr=5Fabi=20when=20copying=20from/to=20guest=20memory?=
X-Mailer: git-send-email 2.47.2
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1744985922471
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: <537e4c11021a5d89409e4ec18945d314f0cf50e0.1744981654.git.teddy.astie@vates.tech>
In-Reply-To: <cover.1744981654.git.teddy.astie@vates.tech>
References: <cover.1744981654.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.c3fbf095ffa3449fbe8cf6dca1c9667b?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250418:md
Date: Fri, 18 Apr 2025 14:18:43 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
---
 xen/arch/x86/hvm/hvm.c | 17 ++++++++++++++---
 1 file changed, 14 insertions(+), 3 deletions(-)

diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index 6f1174c512..5923166b9b 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -3499,7 +3499,11 @@ unsigned int copy_to_user_hvm(void *to, const void *from, unsigned int len)
         return 0;
     }
 
-    rc = hvm_copy_to_guest_linear((unsigned long)to, from, len, 0, NULL);
+    if ( is_hvm_physaddr_abi(current->domain) )    
+        rc = hvm_copy_to_guest_phys((unsigned long)to, from, len, current);
+    else
+        rc = hvm_copy_to_guest_linear((unsigned long)to, from, len, 0, NULL);
+
     return rc ? len : 0; /* fake a copy_to_user() return code */
 }
 
@@ -3513,7 +3517,10 @@ unsigned int clear_user_hvm(void *to, unsigned int len)
         return 0;
     }
 
-    rc = hvm_copy_to_guest_linear((unsigned long)to, NULL, len, 0, NULL);
+    if ( is_hvm_physaddr_abi(current->domain) )
+        rc = hvm_copy_to_guest_phys((unsigned long)to, NULL, len, current);
+    else
+        rc = hvm_copy_to_guest_linear((unsigned long)to, NULL, len, 0, NULL);
 
     return rc ? len : 0; /* fake a clear_user() return code */
 }
@@ -3528,7 +3535,11 @@ unsigned int copy_from_user_hvm(void *to, const void *from, unsigned int len)
         return 0;
     }
 
-    rc = hvm_copy_from_guest_linear(to, (unsigned long)from, len, 0, NULL);
+    if ( is_hvm_physaddr_abi(current->domain) )
+        rc = hvm_copy_from_guest_phys(to, (unsigned long)from, len);
+    else
+        rc = hvm_copy_from_guest_linear(to, (unsigned long)from, len, 0, NULL);
+
     return rc ? len : 0; /* fake a copy_from_user() return code */
 }
 
-- 
2.47.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 Apr 18 14:18:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 18 Apr 2025 14:18:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.959027.1351508 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5mYI-00030q-8d; Fri, 18 Apr 2025 14:18:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 959027.1351508; Fri, 18 Apr 2025 14:18: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 1u5mYI-00030i-67; Fri, 18 Apr 2025 14:18:46 +0000
Received: by outflank-mailman (input) for mailman id 959027;
 Fri, 18 Apr 2025 14:18: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=Ic+s=XE=bounce.vates.tech=bounce-md_30504962.68025f3f.v1-d861420a82c744a2b764f6bbced4204d@srs-se1.protection.inumbo.net>)
 id 1u5mYG-00030I-RB
 for xen-devel@lists.xenproject.org; Fri, 18 Apr 2025 14:18:44 +0000
Received: from mail179-46.suw41.mandrillapp.com
 (mail179-46.suw41.mandrillapp.com [198.2.179.46])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 06661741-1c60-11f0-9ffb-bf95429c2676;
 Fri, 18 Apr 2025 16:18:40 +0200 (CEST)
Received: from pmta12.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail179-46.suw41.mandrillapp.com (Mailchimp) with ESMTP id
 4ZfH1W1TYWz8XRqfS
 for <xen-devel@lists.xenproject.org>; Fri, 18 Apr 2025 14:18:39 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 d861420a82c744a2b764f6bbced4204d; Fri, 18 Apr 2025 14:18: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: 06661741-1c60-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1744985919; x=1745255919;
	bh=xueNMDJgTSP5NK02VEV+nKr1/iu6F6Tlm4ltAoWCn1Q=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=xnBBln4zpT5P+Kw4HC2cCDxFPBn1RKgM5AlYetiYDcU4N2jhiYaJ4iIgA1PJh3fIf
	 o61JMjlCL0zaX/LjOfVCvS96wttxMeXP4+wnvk/NVHSJQsZ2bytTh1FI93VhkvuD8j
	 Avxw39hvhUtlpPry8PS08uUEgGJ0W/pasuJF1zrXeObYIxne5JG9mgPpNZk9YpsCGE
	 5rrJLFeIZiE3JzKjEddV52MymYbvgS22/EhHLjUX4qqiECiXi0lCePwq5CWpno0N53
	 g5k2hpA3G8Pg1BVktAHAdfEENxrlJQnGXiZlw5TV3uB7HlmFPr4qbVuKJWvLL2Ppg8
	 uMhydolPzJvlg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1744985919; x=1745246419; i=teddy.astie@vates.tech;
	bh=xueNMDJgTSP5NK02VEV+nKr1/iu6F6Tlm4ltAoWCn1Q=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=ht9II0QUH3hrVzQp5F66tZPq1HGci9KUB86RZAfbRofgnutDBp6iDymTcXyi7L6z7
	 quBW5srCCOzuO7Lm5+VJlPoeYDuAe591wEPQU4sSfR7JKki1ivfqQvgr77thPY9DI8
	 jNYNv0zOCz0cUrM+es9KA9oyNQ1iYdy5Ja47tSAEE0d1jqde8TeTpfNAZrlcA4PD/V
	 o8ch3K9qDKHAp0K2JKX8zIqyTE9ERjDGny2fI68paVg5MzSn9LybfVwn8miSgIDmnY
	 yIYrte9+8Bje58cjIpJKLt6OzBYtHXC4OYlJnixN/ATqtx3dObatHTEBMshobnapNq
	 EnVywnSsvISTg==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[RFC=20PATCH=200/4]=20Physical=20address=20hypercall=20ABI=20("HVMv2")?=
X-Mailer: git-send-email 2.47.2
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1744985917687
To: xen-devel@lists.xenproject.org
Cc: "Teddy Astie" <teddy.astie@vates.tech>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "Anthony PERARD" <anthony.perard@vates.tech>, "Michal Orzel" <michal.orzel@amd.com>, "Jan Beulich" <jbeulich@suse.com>, "Julien Grall" <julien@xen.org>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Stefano Stabellini" <sstabellini@kernel.org>, "Juergen Gross" <jgross@suse.com>
Message-Id: <cover.1744981654.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.d861420a82c744a2b764f6bbced4204d?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250418:md
Date: Fri, 18 Apr 2025 14:18:39 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

In current HVM mode, when a hypercall references a structure in guest memory,
it is passed to the hypervisor as its "linear address" (e.g virtual address for
the x86 long mode).
One of the caveats is that this linear address (GVA) is generally not directly
usable by the Xen and needs to be translated from GVA to GPA then HPA. This
implies a complex and potentially expensive lookup of the pagetables inside the
guest. This can be significant, especially if the P2M cannot use efficiently
superpages (or with e.g XSA-304).

This proposal introduce a new mode where all addresses used for hypercalls are
GPADDR instead of GVADDR, therefore, looking up the HPA related to this GPA
only needs a P2M lookup and not looking through the inside-guest pagetables.

This mode is opt-in and must be enabled explicitely by the toolstack.

This is also mandatory for confidential-computing guests (e.g SEV) where the
guest pagetable are not visible to the hypervisor.

In a synthetic xtf-based hypercall benchmark (VCPUOP_get_runstate_info loop),
it gives broadly a 30% overhead reduction when tested on a AMD EPYC 9124.

This serie only implement support for x86 yet this ABI is also meaningful for
other architectures as well.
A separate patch for adding support in Linux is planned.

Teddy Astie (4):
  xen: Introduce physaddr_abi CDF flag
  x86/hvm: Consider phyaddr_abi when copying from/to guest memory
  x86/public: Expose physaddr_abi through Xen HVM CPUID leaf
  libxl: Add support for enabling physaddr_abi

 tools/include/libxl.h               |  5 +++++
 tools/libs/light/libxl_create.c     |  4 ++++
 tools/libs/light/libxl_types.idl    |  1 +
 tools/xl/xl_parse.c                 |  1 +
 xen/arch/x86/cpuid.c                |  3 +++
 xen/arch/x86/hvm/hvm.c              | 17 ++++++++++++++---
 xen/common/domain.c                 | 10 +++++++++-
 xen/include/public/arch-x86/cpuid.h |  2 ++
 xen/include/public/domctl.h         |  4 +++-
 xen/include/xen/sched.h             |  6 ++++++
 10 files changed, 48 insertions(+), 5 deletions(-)

-- 
2.47.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 Apr 18 14:18:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 18 Apr 2025 14:18:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.959028.1351519 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5mYJ-0003Ef-GK; Fri, 18 Apr 2025 14:18:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 959028.1351519; Fri, 18 Apr 2025 14:18:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5mYJ-0003EY-Cj; Fri, 18 Apr 2025 14:18:47 +0000
Received: by outflank-mailman (input) for mailman id 959028;
 Fri, 18 Apr 2025 14:18:46 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=A0mK=XE=bounce.vates.tech=bounce-md_30504962.68025f43.v1-3200c3f3986847c79b468e7e43cd30ba@srs-se1.protection.inumbo.net>)
 id 1u5mYI-00030I-8i
 for xen-devel@lists.xenproject.org; Fri, 18 Apr 2025 14:18:46 +0000
Received: from mail128-130.atl41.mandrillapp.com
 (mail128-130.atl41.mandrillapp.com [198.2.128.130])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 08d4ebca-1c60-11f0-9ffb-bf95429c2676;
 Fri, 18 Apr 2025 16:18:44 +0200 (CEST)
Received: from pmta08.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail128-130.atl41.mandrillapp.com (Mailchimp) with ESMTP id
 4ZfH1b2zgczS62GpR
 for <xen-devel@lists.xenproject.org>; Fri, 18 Apr 2025 14:18:43 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 3200c3f3986847c79b468e7e43cd30ba; Fri, 18 Apr 2025 14:18: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: 08d4ebca-1c60-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1744985923; x=1745255923;
	bh=J8m3l8jLgJoz45tuYz9GxQr5xWvose2J1Z3O7gpBIvU=;
	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=qcQ00cSL8ayn5ry8W81StmFp1NKGS+MrKNdGSZpOcvsw9wmgUgAfYXZhMUEGwavaO
	 MHpgnjlTu05U/vreBDsTG4yzd55/jwMKS1s5C6W1NsBntwS7RQoKN2RfAtPHJsB7Hf
	 a64HqQVGN9vblmgTctfVQ5cpDQ/1POJJNtdH8OUdKbY8suyb4uepzxSB74FNu550ob
	 WhMJmFV18F4IgiC4Cp3uBoRIrru5PiI7k1XlljdxljA9MUw/2fF+Dzr7w8h0RHbyng
	 p+lQCHPS0F2YRnRjG7bBuI/Hu45d5xHs0om4m6LCdiTG5190m4wUN3P8lL6S3nkjRw
	 HuymTIGol2g6Q==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1744985923; x=1745246423; i=teddy.astie@vates.tech;
	bh=J8m3l8jLgJoz45tuYz9GxQr5xWvose2J1Z3O7gpBIvU=;
	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=COFsAl0BbMxAJyNev1nL5BpPDeXF8hClJZQS/HZw+rewjynCYDF8KWNaTHb8o+ILC
	 jn0qlo64bWTYB3ShvtrjNtysvGbV7QVGcfeoeqjP7HrvHTQJycXaIVan+fvt3+hWSE
	 yr2WTzFfAOsxkQk3HPv/mruIa84I4F+ZvlRlv3l8kFsm5RGvLoD5pJW9N+GDQP4W//
	 8H2oNuMbyANcZmQlT1zmXUF7H7M5BhOsrxoay9nWcRh4wYTILwthQC4P8HH8Rf8HMV
	 RjaJrjEdMrnS/JE/4ei6ILJhs9CgF+oUAnzAL8EDbatNpfTS6loSKjx4Z+lMcIAl0k
	 OV8cTNGcLKlew==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[RFC=20PATCH=201/4]=20xen:=20Introduce=20physaddr=5Fabi=20CDF=20flag?=
X-Mailer: git-send-email 2.47.2
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1744985922135
To: xen-devel@lists.xenproject.org
Cc: "Teddy Astie" <teddy.astie@vates.tech>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "Anthony PERARD" <anthony.perard@vates.tech>, "Michal Orzel" <michal.orzel@amd.com>, "Jan Beulich" <jbeulich@suse.com>, "Julien Grall" <julien@xen.org>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Stefano Stabellini" <sstabellini@kernel.org>
Message-Id: <df0da6d56a9a9ca440b7bb2c7c0b71d66567e3aa.1744981654.git.teddy.astie@vates.tech>
In-Reply-To: <cover.1744981654.git.teddy.astie@vates.tech>
References: <cover.1744981654.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.3200c3f3986847c79b468e7e43cd30ba?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250418:md
Date: Fri, 18 Apr 2025 14:18:43 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Introduce the physaddr_abi flag to indicate that the guest uses
physical addresses (gpaddr) instead of virtual addresses when
performing hypercalls.

Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
---
 xen/common/domain.c         | 10 +++++++++-
 xen/include/public/domctl.h |  4 +++-
 xen/include/xen/sched.h     |  6 ++++++
 3 files changed, 18 insertions(+), 2 deletions(-)

diff --git a/xen/common/domain.c b/xen/common/domain.c
index 585fd726a9..1a1e51c32d 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -716,12 +716,14 @@ static int sanitise_domain_config(struct xen_domctl_createdomain *config)
     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 physaddr_abi = config->flags & XEN_DOMCTL_CDF_physaddr_abi;
 
     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_nested_virt | XEN_DOMCTL_CDF_vpmu |
+           XEN_DOMCTL_CDF_physaddr_abi) )
     {
         dprintk(XENLOG_INFO, "Unknown CDF flags %#x\n", config->flags);
         return -EINVAL;
@@ -745,6 +747,12 @@ static int sanitise_domain_config(struct xen_domctl_createdomain *config)
         return -EINVAL;
     }
 
+    if ( physaddr_abi && !hvm )
+    {
+        dprintk(XENLOG_INFO, "Physical address ABI requested for non-HVM guest");
+        return -EINVAL;
+    }
+
     if ( iommu )
     {
         if ( config->iommu_opts & ~XEN_DOMCTL_IOMMU_no_sharept )
diff --git a/xen/include/public/domctl.h b/xen/include/public/domctl.h
index 5b2063eed9..3a77efe673 100644
--- a/xen/include/public/domctl.h
+++ b/xen/include/public/domctl.h
@@ -66,9 +66,11 @@ struct xen_domctl_createdomain {
 #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)
+/* Do the guest use physical addresses for hypercalls ? */
+#define XEN_DOMCTL_CDF_physaddr_abi   (1U << 8)
 
 /* Max XEN_DOMCTL_CDF_* constant.  Used for ABI checking. */
-#define XEN_DOMCTL_CDF_MAX XEN_DOMCTL_CDF_vpmu
+#define XEN_DOMCTL_CDF_MAX XEN_DOMCTL_CDF_physaddr_abi
 
     uint32_t flags;
 
diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h
index 559d201e0c..a29c63c737 100644
--- a/xen/include/xen/sched.h
+++ b/xen/include/xen/sched.h
@@ -1201,6 +1201,12 @@ static always_inline bool hap_enabled(const struct domain *d)
         evaluate_nospec(d->options & XEN_DOMCTL_CDF_hap);
 }
 
+static always_inline bool is_hvm_physaddr_abi(const struct domain *d)
+{
+    return IS_ENABLED(CONFIG_HVM) &&
+        evaluate_nospec(d->options & XEN_DOMCTL_CDF_physaddr_abi);
+}
+
 static inline bool is_hwdom_pinned_vcpu(const struct vcpu *v)
 {
     return (is_hardware_domain(v->domain) &&
-- 
2.47.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 Apr 18 14:18:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 18 Apr 2025 14:18:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.959030.1351533 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5mYK-0003V6-Vz; Fri, 18 Apr 2025 14:18:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 959030.1351533; Fri, 18 Apr 2025 14:18: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 1u5mYK-0003UX-Qi; Fri, 18 Apr 2025 14:18:48 +0000
Received: by outflank-mailman (input) for mailman id 959030;
 Fri, 18 Apr 2025 14:18: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=TU4N=XE=bounce.vates.tech=bounce-md_30504962.68025f43.v1-11aa9698a46e4605a1aa47936d2968e5@srs-se1.protection.inumbo.net>)
 id 1u5mYJ-00030w-Ld
 for xen-devel@lists.xenproject.org; Fri, 18 Apr 2025 14:18:47 +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 0a3867da-1c60-11f0-9eb0-5ba50f476ded;
 Fri, 18 Apr 2025 16:18:47 +0200 (CEST)
Received: from pmta08.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail128-130.atl41.mandrillapp.com (Mailchimp) with ESMTP id
 4ZfH1b456fzS62GqB
 for <xen-devel@lists.xenproject.org>; Fri, 18 Apr 2025 14:18:43 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 11aa9698a46e4605a1aa47936d2968e5; Fri, 18 Apr 2025 14:18: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: 0a3867da-1c60-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1744985923; x=1745255923;
	bh=zUCaxDM5n36EidycTWY29lREVYS1vqxzxsWMLChZfJU=;
	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=RTEaQttw9/dNnlodj0ugHm+OC6nExkd4qTB1dyfdY1Bi1tJpSv8jvvt8pRR9Y3vNb
	 vGQp8ydE25FN0PXwsrAGXBsR+M+QZEx8ytUWXlcgubuwVwMYnX/jvJamNjnJqLwcQP
	 KMIdxdO277WUbvl3C58x0J4fAdX7IBI8P+t1jAZtVy/YZWkGWYZmgCulhP6xFsbtVi
	 c7+R1mPNAOabI5S5K8/w+QGmcOgbJXE7BXvQdCQblwd6U8w3aPh+B9wzSSkd859Su/
	 SuiLNLfHyty+FUO7ubdulurlruBySjcANBntntRg1ivPWbdj4tcMVWjuOMEUulSmYC
	 QB42fBwgleQUA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1744985923; x=1745246423; i=teddy.astie@vates.tech;
	bh=zUCaxDM5n36EidycTWY29lREVYS1vqxzxsWMLChZfJU=;
	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=Xp2hxCz8XqSBmkRZQt7pOBNS/ZSYCTT2clksk1QJPB4Se4vRBxJfGBZH2gNOfXIj0
	 lRN9lD38dFp9pOmZGStMS2JeFTM2lTwxoenZ5Vm6spCKCQG3DZmJlOugjdaFIHe4at
	 BnBeH7GO1lk6kD5aQGpiLaA2u0Y8CWdu0iKgUz6i7oi4XC/M4Asupw+hgKaLpJTGP+
	 oUYCSfcX8/G33O2/pye9RmBUyXo0TSsngZWRlPDR6kjfsl0S5hCHqkatGyj6c3+2DV
	 q+cHezJegQWe+69jxuG60kOlWh39nk1Y37qmmp4hQQPWWDgIng/xWMx/q0E1Q9iac6
	 u88w11HO7AVBw==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[RFC=20PATCH=204/4]=20libxl:=20Add=20support=20for=20enabling=20physaddr=5Fabi?=
X-Mailer: git-send-email 2.47.2
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1744985922839
To: xen-devel@lists.xenproject.org
Cc: "Teddy Astie" <teddy.astie@vates.tech>, "Anthony PERARD" <anthony.perard@vates.tech>, "Juergen Gross" <jgross@suse.com>
Message-Id: <762e90acafcbf0b84c670400577501cd0e34bdea.1744981654.git.teddy.astie@vates.tech>
In-Reply-To: <cover.1744981654.git.teddy.astie@vates.tech>
References: <cover.1744981654.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.11aa9698a46e4605a1aa47936d2968e5?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250418:md
Date: Fri, 18 Apr 2025 14:18:43 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
---
 tools/include/libxl.h            | 5 +++++
 tools/libs/light/libxl_create.c  | 4 ++++
 tools/libs/light/libxl_types.idl | 1 +
 tools/xl/xl_parse.c              | 1 +
 4 files changed, 11 insertions(+)

diff --git a/tools/include/libxl.h b/tools/include/libxl.h
index b7ad7735ca..6af9a658c9 100644
--- a/tools/include/libxl.h
+++ b/tools/include/libxl.h
@@ -178,6 +178,11 @@
  */
 #define LIBXL_HAVE_BUILDINFO_EVENT_CHANNELS 1
 
+/*
+ * The libxl_domain_build_info has physaddr_abi field.
+ */
+#define LIBXL_HAVE_BUILDINFO_PHYS_ADDR_ABI 1
+
 /*
  * libxl_domain_build_info has the u.hvm.ms_vm_genid field.
  */
diff --git a/tools/libs/light/libxl_create.c b/tools/libs/light/libxl_create.c
index e03599ea99..43e8c18768 100644
--- a/tools/libs/light/libxl_create.c
+++ b/tools/libs/light/libxl_create.c
@@ -466,6 +466,7 @@ int libxl__domain_build_info_setdefault(libxl__gc *gc,
 
         libxl_defbool_setdefault(&b_info->apic,                     true);
         libxl_defbool_setdefault(&b_info->nested_hvm,               false);
+        libxl_defbool_setdefault(&b_info->physaddr_abi,             false);
     }
 
     if (b_info->max_grant_version == LIBXL_MAX_GRANT_DEFAULT) {
@@ -662,6 +663,9 @@ int libxl__domain_make(libxl__gc *gc, libxl_domain_config *d_config,
 
             if ( libxl_defbool_val(b_info->nested_hvm) )
                 create.flags |= XEN_DOMCTL_CDF_nested_virt;
+
+            if (libxl_defbool_val(b_info->physaddr_abi))
+                create.flags |= XEN_DOMCTL_CDF_physaddr_abi;
         }
 
         if (libxl_defbool_val(b_info->vpmu))
diff --git a/tools/libs/light/libxl_types.idl b/tools/libs/light/libxl_types.idl
index 9bb2969931..d02e84471b 100644
--- a/tools/libs/light/libxl_types.idl
+++ b/tools/libs/light/libxl_types.idl
@@ -637,6 +637,7 @@ libxl_domain_build_info = Struct("domain_build_info",[
     ("nested_hvm",       libxl_defbool),
     ("apic",             libxl_defbool),
     ("dm_restrict",      libxl_defbool),
+    ("physaddr_abi",     libxl_defbool),
     ("tee",              libxl_tee_type),
     ("u", KeyedUnion(None, libxl_domain_type, "type",
                 [("hvm", Struct(None, [("firmware",         string),
diff --git a/tools/xl/xl_parse.c b/tools/xl/xl_parse.c
index 089a88935a..bd674684fa 100644
--- a/tools/xl/xl_parse.c
+++ b/tools/xl/xl_parse.c
@@ -1803,6 +1803,7 @@ void parse_config_data(const char *config_source,
     }
 
     xlu_cfg_get_defbool(config, "nestedhvm", &b_info->nested_hvm, 0);
+    xlu_cfg_get_defbool(config, "physaddr_abi", &b_info->physaddr_abi, 0);
 
     switch(b_info->type) {
     case LIBXL_DOMAIN_TYPE_HVM:
-- 
2.47.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 Apr 18 14:18:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 18 Apr 2025 14:18:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.959031.1351549 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5mYO-0003yz-CL; Fri, 18 Apr 2025 14:18:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 959031.1351549; Fri, 18 Apr 2025 14:18: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 1u5mYO-0003yq-8l; Fri, 18 Apr 2025 14:18:52 +0000
Received: by outflank-mailman (input) for mailman id 959031;
 Fri, 18 Apr 2025 14:18: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=WQT4=XE=bounce.vates.tech=bounce-md_30504962.68025f43.v1-ff9ec6e26c4a44eeab59541f89468aeb@srs-se1.protection.inumbo.net>)
 id 1u5mYM-00030w-Uc
 for xen-devel@lists.xenproject.org; Fri, 18 Apr 2025 14:18:50 +0000
Received: from mail179-46.suw41.mandrillapp.com
 (mail179-46.suw41.mandrillapp.com [198.2.179.46])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 091c0524-1c60-11f0-9eb0-5ba50f476ded;
 Fri, 18 Apr 2025 16:18:45 +0200 (CEST)
Received: from pmta12.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail179-46.suw41.mandrillapp.com (Mailchimp) with ESMTP id
 4ZfH1b46MXz8XTnbZ
 for <xen-devel@lists.xenproject.org>; Fri, 18 Apr 2025 14:18:43 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 ff9ec6e26c4a44eeab59541f89468aeb; Fri, 18 Apr 2025 14:18: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: 091c0524-1c60-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1744985923; x=1745255923;
	bh=nRdWZ+OFAVb8KuCLWbIcI+HAU9u6nYsrEhlOp/952Hw=;
	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=E161meyqfFty47uDXe+SO1LHAXDvAU+2b1xybJBwXFD/SE+1vEfb603om+Vaqr8wn
	 SL10daLpe5QDbvmIlIUYqyJXi32LXNXJjlPd/IQkZvwf04K1NPXe2LxRx03kGrRNbX
	 iQUKsndj6d20NMa327yf856UXndutlyK50t3iTRO/L+1LpPEHQS6zYHyUGV+5unuNc
	 Y36kKTvny/1FIX0Hv8H4tHkWlgwG1zRaSkoIFqCOqTP0yNKjHxgOp5/1fLOu+plSoR
	 c4rD97iZMHhk7kTtNjty2pjAc45cJBmGWzshE7gh2vQ9LA1s51MK48ZVFcFfODO0aN
	 PzWRY2eQBQaiQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1744985923; x=1745246423; i=teddy.astie@vates.tech;
	bh=nRdWZ+OFAVb8KuCLWbIcI+HAU9u6nYsrEhlOp/952Hw=;
	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=BCgFd2ADwTKUM4FimC+vXvp0W4IyyO2C0ocEcahMGw1PJaUfUnFNMi2ZzOl++atoI
	 MSvtnv81NCsYaNBFPV0evCoz/1HCX2kvO9zkZ6mbUyPWMuVomh1Rnjrd4I/RgqWDPk
	 WVtPxyKiaFd5DVSyehH4Sjg0ngafpDRgJyQ57h3Q7wKAjWxlycxSNwT6pfItq7yUve
	 eJKMet/f6QPl02kiG2LAH9vUsFNar0cJqAuykCqwezSDNTWRtbGQMeMew3elkZXm53
	 FHUhH/GyJpdnHJf8r8tvm7q99tmP0F4dZU9dYW/u6kOLH+6TS59Qrg814j5lY9WZuu
	 +RupvBZWsZDTQ==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[RFC=20PATCH=203/4]=20x86/public:=20Expose=20physaddr=5Fabi=20through=20Xen=20HVM=20CPUID=20leaf?=
X-Mailer: git-send-email 2.47.2
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1744985922659
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: <35adbbb83d59ee0beb7247e9adcdddd133b1dbd8.1744981654.git.teddy.astie@vates.tech>
In-Reply-To: <cover.1744981654.git.teddy.astie@vates.tech>
References: <cover.1744981654.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.ff9ec6e26c4a44eeab59541f89468aeb?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250418:md
Date: Fri, 18 Apr 2025 14:18:43 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

The guest needs to know this information before attempting to make a hypercall
(especially ones to fetch XENFEAT_*).

Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
---
 xen/arch/x86/cpuid.c                | 3 +++
 xen/include/public/arch-x86/cpuid.h | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/xen/arch/x86/cpuid.c b/xen/arch/x86/cpuid.c
index 8dc68945f7..a721499920 100644
--- a/xen/arch/x86/cpuid.c
+++ b/xen/arch/x86/cpuid.c
@@ -153,6 +153,9 @@ static void cpuid_hypervisor_leaves(const struct vcpu *v, uint32_t leaf,
          */
         res->a |= XEN_HVM_CPUID_UPCALL_VECTOR;
 
+        /* Indicate if the guest uses the physical addresses hypercall ABI. */
+        if ( is_hvm_physaddr_abi(v->domain) )
+            res->a |= XEN_HVM_CPUID_PHYS_ADDR_ABI;
         break;
 
     case 5: /* PV-specific parameters */
diff --git a/xen/include/public/arch-x86/cpuid.h b/xen/include/public/arch-x86/cpuid.h
index 3bb0dd249f..b8ceb833d7 100644
--- a/xen/include/public/arch-x86/cpuid.h
+++ b/xen/include/public/arch-x86/cpuid.h
@@ -106,6 +106,8 @@
  * bound to event channels.
  */
 #define XEN_HVM_CPUID_UPCALL_VECTOR    (1u << 6)
+/* Hypercalls are using physical addresses instead of linear ones. */
+#define XEN_HVM_CPUID_PHYS_ADDR_ABI    (1u << 7)
 
 /*
  * Leaf 6 (0x40000x05)
-- 
2.47.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 Apr 18 15:01:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 18 Apr 2025 15:01:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.959178.1351623 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5nD8-0006V6-0J; Fri, 18 Apr 2025 15:00:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 959178.1351623; Fri, 18 Apr 2025 15: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 1u5nD7-0006Uz-TT; Fri, 18 Apr 2025 15:00:57 +0000
Received: by outflank-mailman (input) for mailman id 959178;
 Fri, 18 Apr 2025 15:00: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=YtVq=XE=parrylabs.com=mark.brown@srs-se1.protection.inumbo.net>)
 id 1u5nD6-0006Ur-TZ
 for xen-devel@lists.xenproject.org; Fri, 18 Apr 2025 15:00:57 +0000
Received: from USG02-CY1-obe.outbound.protection.office365.us
 (mail-cy1usg02on062c.outbound.protection.office365.us
 [2001:489a:2202:d::62c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id eaf21c5d-1c65-11f0-9ffb-bf95429c2676;
 Fri, 18 Apr 2025 17:00:53 +0200 (CEST)
Received: from PH1P110MB1441.NAMP110.PROD.OUTLOOK.COM (2001:489a:200:18a::12)
 by BNAP110MB2078.NAMP110.PROD.OUTLOOK.COM (2001:489a:200:19e::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8583.43; Fri, 18 Apr
 2025 15:00:47 +0000
Received: from PH1P110MB1441.NAMP110.PROD.OUTLOOK.COM
 ([fe80::d6e5:6077:3859:61b6]) by PH1P110MB1441.NAMP110.PROD.OUTLOOK.COM
 ([fe80::d6e5:6077:3859:61b6%4]) with mapi id 15.20.8511.031; Fri, 18 Apr 2025
 15:00: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: eaf21c5d-1c65-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector5401; d=microsoft.com; cv=none;
 b=PgCT1upgvwZztehVotSTrSbp/Iif2e0QGCiwL7m2h2NviGy6pGBAbRproslI9tM673ahJPpzUoToc08hO7bhfAjns1V/J5JNPs+YUznoFc1R1VepjtHDN6NId/fsj/IjX3244bwwRkJY8WJzR6JlBywRriS5XrTlqukBWvZ/UI8pWCWXZTdbMlabAQ9PS0NXU+hVGaADTkQre3kLJ/+PZq+1IO2j8HADJjyhtCtp54zu//0vWss7Gz4ic8WRmnkO3xnJCQgMjjFbl1AwCDJiyb5nPROkfRvsaLke2nuazNCqjol/jbeR9MzbLX5ppWQ+2Q+C/YAF56/iSzCFD962Zg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector5401;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=pf8OszXT8A3X57jpuoz3UplmiwEqQfdp89oGyGVeOzU=;
 b=TpUAVgrWVXj0pS5+/iBRm2bPCAJea1Ur8GKf4d+x+6utlzLSfUMyWd1SH6Q2FY0EHeXBCKWjmmxe7v4Odz5hJWZwBuANRJMlNoDRpCyAWsEYfjOKr1s9KV9Iuq5tKIhTGj1B2mA6bN8Qcs7ckukdcvCfR4zVXapoi05n8/pRFekE8ZskXZk7FtXgAFAGcwfbXa9SWkPRNr0uwX9kFb2lt57IZ104AU7LnBo6RGqPWFxkum2O0yb7KvaKMMN0EHoQnDRYM39zfxFWocRliKnGAFszh7rtijm+HkTMGxNmHIH4ljw1Msri+xNpO7yGk5YvdElgT8w6qOZuDzBQUzqh0g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=parrylabs.com; dmarc=pass action=none
 header.from=parrylabs.com; dkim=pass header.d=parrylabs.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Parrylabs.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=pf8OszXT8A3X57jpuoz3UplmiwEqQfdp89oGyGVeOzU=;
 b=NI10NcuHKVuKKxhsQjvTbSCC+ZWBEuewRk1g/IFYeHNjqveHWmuJiBcyQENBCQRtKbLbOvsN6CR99XsVwq1oTYP+EZoTHXk5LN3a1KmfQkK1Ah6ehZn2LxpSGyXjpNkXjCJ3fFpKm9mhOw+q1Tu6yVJzSIP9O6rqSuzrP1Xn2aEIjspvc+bvlXyqoqSv0U96TpVcgHT6OhG9t75z7YZUulWhOCvqSQKRq1q5amXRusYF/Vf294I4nHUzSB54ZTl1yiHHLOtJNkusH/tYkJT32t9W9c0jVQkUsb4LhmzzsLTjpgvSanqei3JCH/XARnosq4x/NP4XtWsAzm+Ctsb6xw==
From: Mark Brown <mark.brown@parrylabs.com>
To: Julien Grall <julien@xen.org>, Ayan Kumar Halder
	<ayan.kumar.halder@amd.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
CC: Stefano Stabellini <sstabellini@kernel.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>
Subject: RE: [PATCH v1] xen/arm: AArch32-V8R: Add MPU register definitions
Thread-Topic: [PATCH v1] xen/arm: AArch32-V8R: Add MPU register definitions
Thread-Index: AQHbsB4b1gFRsGOJMEuup4UvLrfEMbOpavlA
Date: Fri, 18 Apr 2025 15:00:47 +0000
Message-ID:
 <PH1P110MB14413B4A22675F4C1FD4DC109CBFA@PH1P110MB1441.NAMP110.PROD.OUTLOOK.COM>
References: <20250417155511.1854081-1-ayan.kumar.halder@amd.com>
 <306e5414-1552-4605-86d6-b23b89d00bc9@xen.org>
In-Reply-To: <306e5414-1552-4605-86d6-b23b89d00bc9@xen.org>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=parrylabs.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: PH1P110MB1441:EE_|BNAP110MB2078:EE_
x-ms-office365-filtering-correlation-id: d433cae7-6d0a-46e0-ecad-08dd7e89ccf2
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|366016|41320700013|38070700018;
x-microsoft-antispam-message-info:
 =?us-ascii?Q?N1XF4cJNVcnkr99fXxNUjeLjHYBDm+QH987fy9u0YzgRDrcPXBTVEKtp16x/?=
 =?us-ascii?Q?qAfjXMrkJNhw5SHv1MG2/V0JX0rfxr6Qw1EFF2uNYjhbJALTFcO/Pqie3MpQ?=
 =?us-ascii?Q?7BtX70gs0HLh15K0FxomhXiBYquho3Rjw8FW2gZcoZWfH7qz3XENSGRQQTcB?=
 =?us-ascii?Q?4Py71lsLmr7T+yUvy5bQRDck0O3KA6tivTjc409nU/z6khPsPsqZJCxMZhP5?=
 =?us-ascii?Q?mRTjI3kTvVNXFX3KfPCMTZxGlt3EhEsCJytwKd3K0KRlnDpmNKZV/9RXqEE5?=
 =?us-ascii?Q?C7O68+jltEiRwGxvzoLnPoUWVmmSU1FsVhLx9OmH442auc4bIeZBNwN4Szdu?=
 =?us-ascii?Q?0ikfisv+Z46OuPtSp7WwJ2cnf5vlv8koddff5+fRD0VFop7X65KSDh3T8Tk7?=
 =?us-ascii?Q?gWLrW3NTk9ea0vz85vaPCnc8aOGZYoScfiZB6ggUM/kA9itpvXqFjEEF3JFj?=
 =?us-ascii?Q?1ZfZpBlvoz6deS/uyJTVSOhoPSmOV5X2OkSyOg/tJSWhujp52vBMA6IRvC69?=
 =?us-ascii?Q?Hshh7YjY+LdKXxczdXl/ubgU0JhWRjodlyiUszFcOEPku6uUm5lryxxpDljn?=
 =?us-ascii?Q?mM5JxuAOzwjkf5V+G1L9UrBQ0zrHeMyCX4p08O3TLdtfUFaDfag2njbAivVd?=
 =?us-ascii?Q?H+kVHKl8Ud6f3mVhHJtE/r4D5zOAs+h0WvUfc2iE5yHgXkYteB/8sv0KhpAY?=
 =?us-ascii?Q?Qp4YgsXDMr/Lxr/fzpJBDxQVDNobSXZGdaBzhr/HEsXe36ZbT5+5MPguG9CL?=
 =?us-ascii?Q?4q57gg1X0zSrwqQRPRBk0Ndz4pIS50XD2dCUqgege3trpPbnY0kLLZwpb5nr?=
 =?us-ascii?Q?L+sUy6p/+RzB+OGLH7jcV3X1rQqX6E+CSpJbIX5RDUqsjrgnpKNr0Qj3k67H?=
 =?us-ascii?Q?ElZqEqUIGbzlw0bMdJcpj3Q349qlchfT40X3wALoOaNNUiw3opPJ4c92Hrku?=
 =?us-ascii?Q?9s2Y65xp3bVk1FZx0+yFPV/LW7hwS6X5IjjFepxkozF/SZy+B5MO8wGtJtRV?=
 =?us-ascii?Q?Au3yffuonYCShxKJYAAzKsfhdJTmbvHBLF6t3VnmBTE5Dm6eExOMzctChJrj?=
 =?us-ascii?Q?BTcLDLc4ZKYh208I0RRyxAVM3LrXU6D5gFZh48Sg3UDoWBO5oIuKXXi3DbvK?=
 =?us-ascii?Q?yz4MmAKjYwTtfOKukQ6kik9W9TIRSzmrhcsJi0mhO+XBH07qzH1eEGRSCy0w?=
 =?us-ascii?Q?fb43H9bV2IntwDsPv0S/odRWjboHFitA7q9iuCw/QuJIeUDzaB81cuHuG2RB?=
 =?us-ascii?Q?vp8YrCjIZlsobTMbA/cokXXqMXSTGM17O4MU1wsB1qggWYRSOjTzT6ecKZ5B?=
 =?us-ascii?Q?uHvAIo2swOdICw3KU92r6ASfVG0GqXawJjNhEzGcf2rIkqReX5da6GdcWEBi?=
 =?us-ascii?Q?3Y+ZPMF0tbwmQEpZunchyPbll4+IDk1hO5U6et9wvlJ1jUXRky7uMWanNY29?=
 =?us-ascii?Q?NhRRyBQzitL9adjOaGHEIxQtFrs+5qEw4DlguXfcv2U9nEUItIvzVg=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH1P110MB1441.NAMP110.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(41320700013)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?us-ascii?Q?OUXl06TzO4k5UjwP7ocL6CELRR+EdUX8uFiFE6tVsWH8vs+avgktOf+bUCbF?=
 =?us-ascii?Q?5XseV8GjdwyrXbNsWN7zq19S/yaF1O23gu/4aXHgnoSfabAXponimaKHUN38?=
 =?us-ascii?Q?tBxQCw9tOlIIbUefmEixakg2Nq/KPHVkCaTu45sgDGVAm4Yb78EivRnOYZrs?=
 =?us-ascii?Q?uvv2/0bYuTebDRNC2F+gD4/VTZw2bHSTgTYpzzOHFbbKDJ6BZAnpYlfUSLKb?=
 =?us-ascii?Q?S8jyXJ/35tF5LUUxix+BPn1IA4rDBpvAv8HWf81+fSKvNlrhsJ/oZ3HK5qFG?=
 =?us-ascii?Q?KrCr0YTtrzJSou7cZVW5a72Zv2sHeWdprczp+O8zmTJRyyBrd+ECI6fBzsa8?=
 =?us-ascii?Q?yXwmUcIGd9pkMK1INA8VZRS10hkqcBOs5b6DDC2xgD6NMiJJt/Lrz+WMmVp0?=
 =?us-ascii?Q?N+zIYyBnUgQMHQRsAhGjUfT0DZA08M4VCrV0+jL94ufX5W4HQPOq33IMB0Ef?=
 =?us-ascii?Q?16Q/QJyUNYSiuyIoivWJiLSl6WBwmYeFH8h0bVKXcXanxIKFLnNG2J/gIl6M?=
 =?us-ascii?Q?6JcvIyEFuwPdt6fQV7UayViRaCRiIrPTyYcN7Sbj0EdYD//A5IkOnDNI+N3y?=
 =?us-ascii?Q?hBVPGVjf/V/uIYthTQx807mqWFKwF9/VFpfhbnKXj0W/g+ow/WYqYYI1n64Q?=
 =?us-ascii?Q?WNYTJfoHlkZmrjA0bjSvk2QCfS7Qr9TY/TPiX/y8QmK1ryAst6M5CYVYuxjP?=
 =?us-ascii?Q?lBUquksc4LVe0g+euLQ+b71K1SL2Krlsgh11hadUXuIFk31LumlgrmcxuvsD?=
 =?us-ascii?Q?wJyumACz2d5TNwzpjxTQBd8ln6dBLVJ8oscsrNLqfTs4c7idXJIN662XDDh5?=
 =?us-ascii?Q?dBh9kn2L1NwUkgUak/VaIBVIJtMryfAxcuJ0Bmixg6S/+RtXz/ApVjM8gWFI?=
 =?us-ascii?Q?uP/uaHCAKo7dfs+dQkXZLiYDcMgZNHSXpNVMVeA6gWm0D4aue1hVqg3Yk5Ch?=
 =?us-ascii?Q?DdDIcx2DaderUyEOpzJH/kgVrJJ4XE0NJ3J8epOK9iaUVzJP32jRsEjz8S32?=
 =?us-ascii?Q?qRHIDo64d6YFJ4pDDpo3mLZQInc0QoOjiAT0bC8TvESAhtQdRFMoA5e48Hbh?=
 =?us-ascii?Q?3It3+ORZNXUOJcCipqayPnsLbH6y/2Bz1cdC7+7GiVCN2Y1xHLA1c1FJ7nEB?=
 =?us-ascii?Q?5V4eWwgv6b9dGorLYYmCIsGAKxSQPu57812ppl+r/k4Gs6XGisxSXaETnL/O?=
 =?us-ascii?Q?PGAzvgpNGNTjcl3hugNaX0ZuiZt/VuTmcRiXt74pwlpm5POHA+kmh/8XbCI9?=
 =?us-ascii?Q?g/lt1f8Vz0HLxrAosikKLqIq2OEJvbXwgl9nz9ju4JijeHAlzqxZRWtHuCz/?=
 =?us-ascii?Q?b0r6j8EgT4a9sTirbEm8k05EWTvcdvFPcFJ2FLBDVNjKP0jcu2tnPgOeWfLi?=
 =?us-ascii?Q?gqOmnGxcOkBQJjk//wqPdilLxwhnto99dWcjd3OkPQZm0GncwPuo2ZC9Xx9G?=
 =?us-ascii?Q?4RXlGAaxB7j1qc06M1N8niHmjANuM9D87sHXPmkmCu2qARjWvZdZ1mhwHxnO?=
 =?us-ascii?Q?GIcZUIh4lUcQqr+kTvxMtDNMczTtsMr97vo0?=
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: Parrylabs.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: PH1P110MB1441.NAMP110.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-Network-Message-Id: d433cae7-6d0a-46e0-ecad-08dd7e89ccf2
X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Apr 2025 15:00:47.0157
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 57f16235-57e2-4345-a033-c212a7e9d993
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BNAP110MB2078

Hello all,
This is my first post to xen-devel. Since I'm new, let me give a brief intr=
o about "Why?"

1. I am interested in easing the ongoing burden of repeatedly obtaining saf=
ety
certification for Xen for eventual use in high assurance operational *syste=
ms*.
Call this an evergreen certification effort.

2. When I read the ISO26262 and avionics cert standards, I note that there =
is a system
architecture (it has its own "System V" lifecycle) that encompasses a set-o=
f-n
hardware items (e.g. fabricated SoC analysis and also FPGA soft IP developm=
ent) and
also a set-of-m software items (e.g., bootloader, hypervisor, guest OSes, a=
pps, containers,
etc.). For high assurance, we must evaluate the entire system and not just =
some of its items.

3. Also from the standards the govern the lifecycle and processes for devel=
oping
high assurance systems, hardware, and software, maintaining (automated) bid=
irectional
requirements identifier traceability from safety requirements "down" (i.e.,=
 through
levels of requirements decomposition, into *-architecture level designs, in=
to software
unit designs, into software unit code, and into software verification tests=
 at the unit,
library, module / architecture, and system level. From my perspective, ther=
e's a lot
riding on these requirements IDs. I would guess that many in this community
would feel concerned about dumping many (hundreds?) of requirements IDs
directly into the Xen code base, even if these were located within comments=
.

4. Because of 1, 2, and 3 (above), when I look to understand Xen requiremen=
ts sources,
my first pass is to remember that Xen is just one software item, and it wil=
l need to accept
integration requirements flowing in from the system (i.e., via KConfig sett=
ings and Device
Tree / SDT language) and also from the core types that it relies upon (i.e.=
, scoped down
to the operationally-deployed core types including Arm Cortex-R52 during bo=
ot,
but extending to co-processors it uses and then to IO devices that are used=
, etc.)
Finally, sometimes other software items flow requirements into Xen, e.g., w=
hen
Linux  paravirtualization or virtio implementations are scoped-in.

In summary, finding an agreeable way to embed requirements IDs into the Xen
source code seems essential to me, so that we can achieve evergreen high
assurance certifications for Xen.

Proposal 1: Rather than start by adding many requirements IDs into comments=
,
we might instead start out by using a less-impactful approach.
I propose that we could hand-pick some C data types (CDTs) that were known =
to be
critically important to Xen's high assurance, and simply (re)name these CDT=
s,
for example, structs and unions.

This proposal is to adopt a naming convention for handpicked safety-relevan=
t
CDTs, starting with the first two identified below.

For example in this patch, e.g. in xen/arch/arm/include/asm/arm32/mpu.h,
two CDT structs convey the bitfield requirements from the new MPU co-proces=
sors.
Specifically, in the typedefs "prbar_t" and "prlar_t" no struct tag (name) =
is used
for either of the bitfield struct. I propose adding struct tag names to bot=
h, and
then leveraging these struct tag names as requirements IDs.

Suggested Naming Convention:
 (a) E.g., For prbar_t, tag its bitfield struct with the name "PRBAR_BF"
 (b) E.g., For prlar_t, tag its bitfied struct with the name "PRLAR_BF"
 (c) Proposed bitfield struct naming convention: <register>_BF
 (d) Going forward, for bitfield structs that flow-in safety-relevant
  requirements from the core's Technical Reference Manual (TRM)
  and registers, to use the suffix "_BF" to identify these structs. And
  to faithfully reuse the TRM's name for the register.  (application to str=
ucts)
(e) Going forward, for unions that wrap "_BF" structs, to name any
  union member name corresponding to the "_BF" as "bf" and any
  union member name corresponding to the whole as "whole".
  (application to unions that immediately wrap "_BF" structs)

The benefits of systematically following these naming conventions will be:
1) Even simple tools like grep -R can find all "_BF" requirements IDs that =
flow from
    hardware registers that have been handpicked due to their safety-releva=
nce.
2) Any CDT-parsing tool such as Doxygen, etc., can automatically find and t=
race
   all usages of "_BF" structs at several levels
   (a) Dependent structs such as "pr_t" can be automatically traced "up" to
   their "_BF" ancestor CDTs.
   (b) C function argument CDTs can be automatically traced up to any
   ancestor "_BF" CDTs, with the implication that the function may be safet=
y-relevant
   because it accesses one or more "_BF" CDTs.
   (c) Simple pointer-to-CDT usages should not obscure any facts that
   either the ".bf.*" (accessing a safety-relevant bitfield by name) or the
  ".whole" (accessing the entire register contents by value) were accessed.
3) This convention will naturally allow the new "_BF" requirements IDs
to flow into all future use / access of these safety-relevant registers, in=
cluding
future verification tests.
4) Also, it will naturally allow the new "<register>_BF" requirements IDs
to be traced "up" into the TRM and automatically de-reference the semantics
and usage and safety-relevant notes about the bitfield, the register, and t=
he
larger context of use for that register (e.g., at which instruction will th=
e PMU's
enforcement of "HPRBAR10" / "p15,4,c6,c13,0" be activated?)
5) The xen-devel community may find that using this naming convention
provides an easier on-ramp to "start seeing safety and high assurance."
This is because engineers who read any future C source code,
or review any future patch series will see that specific lines in that C so=
urce code
are indelibly tattooed when they refer to a safety-relevant register. Wheth=
er any
line of code access the "_BF" register in part or in whole, that will becom=
e explicitly visible.
The goal is to raise community awareness by flagging access / use.

Thank you!

Sincerely,
--mark

-----Original Message-----
From: Xen-devel <xen-devel-bounces@lists.xenproject.org> On Behalf Of Julie=
n Grall
Sent: Thursday, April 17, 2025 11:55 PM
To: Ayan Kumar Halder <ayan.kumar.halder@amd.com>; xen-devel@lists.xenproje=
ct.org
Cc: Stefano Stabellini <sstabellini@kernel.org>; Bertrand Marquis <bertrand=
.marquis@arm.com>; Michal Orzel <michal.orzel@amd.com>; Volodymyr Babchuk <=
Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH v1] xen/arm: AArch32-V8R: Add MPU register definitions

[You don't often get email from julien@xen.org. Learn why this is important=
 at https://aka.ms/LearnAboutSenderIdentification ]

CAUTION: This email originated from outside of the organization. Do not cli=
ck links or open attachments unless you recognize the sender and know the c=
ontent is safe.


Hi Ayan,

On 18/04/2025 00:55, Ayan Kumar Halder wrote:
> Add the definitions for HPRBAR<0..31>, HPRLAR<0..31> and HPRENR.
> The definitions are taken from ARM DDI 0568A.c ID110520, E2.2.3
> HPRBAR<n>,
> E2.2.4 HPRENR and E2.2.6 HPRLAR<n>.
>
> Introduce pr_t typedef which is a structure having the prbar and prlar
> members, each being structured as the registers of the AArch32-V8R archit=
ecture.
> This is the arm32 equivalent of
> "arm/mpu: Introduce MPU memory region map structure".
>
> Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
> ---
> This patch should be applied after
> "[PATCH v3 0/7] First chunk for Arm R82 and MPU support" in order to
> enable compilation for AArch32.
>
>   xen/arch/arm/include/asm/arm32/mpu.h  |  59 +++++++++++
>   xen/arch/arm/include/asm/mpu.h        |   4 +
>   xen/arch/arm/include/asm/mpu/cpregs.h | 135 ++++++++++++++++++++++++++
>   3 files changed, 198 insertions(+)
>   create mode 100644 xen/arch/arm/include/asm/arm32/mpu.h
>
> diff --git a/xen/arch/arm/include/asm/arm32/mpu.h
> b/xen/arch/arm/include/asm/arm32/mpu.h
> new file mode 100644
> index 0000000000..4aabd93479
> --- /dev/null
> +++ b/xen/arch/arm/include/asm/arm32/mpu.h
> @@ -0,0 +1,59 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +/*
> + * mpu.h: Arm Memory Protection Unit definitions for aarch64.
> + */
> +
> +#ifndef __ARM_ARM32_MPU_H
> +#define __ARM_ARM32_MPU_H
> +
> +#define XN_EL2_ENABLED  0x1

I understand the define is introduced in Luca's patch, but this a bit non-d=
escriptive... Can we find a better name? Maybe by adding the name of the re=
gister and some documentation?

> +
> +#ifndef __ASSEMBLY__
> +
> +/* Hypervisor Protection Region Base Address Register */ typedef
> +union {
> +    struct {
> +        unsigned int xn:1;       /* Execute-Never */
> +        unsigned int ap:2;       /* Acess Permission */
> +        unsigned int sh:2;       /* Sharebility */
> +        unsigned int res0:1;     /* Reserved as 0 */
> +        unsigned int base:26;    /* Base Address */
> +    } reg;
> +    uint32_t bits;
> +} prbar_t;
> +
> +/* Hypervisor Protection Region Limit Address Register */ typedef
> +union {
> +    struct {
> +        unsigned int en:1;     /* Region enable */
> +        unsigned int ai:3;     /* Memory Attribute Index */
> +        /*
> +         * There is no actual ns bit in hardware. It is used here for
> +         * compatibility with Armr64 code. Thus, we are reusing a res0 b=
it for ns.

typo: Arm64.

> +         */

Hmmmm, this would mean someone may mistakenly set the bit to 0 by mistake. =
If the field is always meant to be 0 on arm64, then I would consider to nam=
e is res0 on arm64 with an explanation.

This would make clear the bit is not supposed to have a value other than 0.

> +        unsigned int ns:1;     /* Reserved 0 by hardware */
> +        unsigned int res0:1;   /* Reserved 0 by hardware */
> +        unsigned int limit:26;  /* Limit Address */

NIT: Can we align the comments?

> +    } reg;
> +    uint32_t bits;
> +} prlar_t;
> +
> +/* Protection Region */
> +typedef struct {
> +    prbar_t prbar;
> +    prlar_t prlar;
> +    uint64_t p2m_type;          /* Used to store p2m types. */
> +} pr_t;

This looks to be common with arm64. If so, I would prefer if the structure =
is in a common header.

> +
> +#endif /* __ASSEMBLY__ */
> +
> +#endif /* __ARM_ARM32_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/mpu.h
> b/xen/arch/arm/include/asm/mpu.h index 77d0566f97..67127149c0 100644
> --- a/xen/arch/arm/include/asm/mpu.h
> +++ b/xen/arch/arm/include/asm/mpu.h
> @@ -8,8 +8,12 @@
>
>   #if defined(CONFIG_ARM_64)
>   # include <asm/arm64/mpu.h>
> +#elif defined(CONFIG_ARM_32)
> +# include <asm/arm32/mpu.h>
>   #endif
>
> +#define PRENR_MASK  GENMASK(31, 0)
> +
>   #define MPU_REGION_SHIFT  6
>   #define MPU_REGION_ALIGN  (_AC(1, UL) << MPU_REGION_SHIFT)
>   #define MPU_REGION_MASK   (~(MPU_REGION_ALIGN - 1))
> diff --git a/xen/arch/arm/include/asm/mpu/cpregs.h
> b/xen/arch/arm/include/asm/mpu/cpregs.h
> index d5cd0e04d5..7cf52aa09a 100644
> --- a/xen/arch/arm/include/asm/mpu/cpregs.h
> +++ b/xen/arch/arm/include/asm/mpu/cpregs.h
> @@ -6,18 +6,153 @@
>   /* CP15 CR0: MPU Type Register */
>   #define HMPUIR          p15,4,c0,c0,4
>
> +/* CP15 CR6: Protection Region Enable Register */
> +#define HPRENR          p15,4,c6,c1,1
> +
>   /* CP15 CR6: MPU Protection Region Base/Limit/Select Address Register *=
/
>   #define HPRSELR         p15,4,c6,c2,1
>   #define HPRBAR          p15,4,c6,c3,0
>   #define HPRLAR          p15,4,c6,c8,1
>
> +/* CP15 CR6: MPU Protection Region Base/Limit Address Register */
> +#define HPRBAR0         p15,4,c6,c8,0
> +#define HPRLAR0         p15,4,c6,c8,1
> +#define HPRBAR1         p15,4,c6,c8,4
> +#define HPRLAR1         p15,4,c6,c8,5
> +#define HPRBAR2         p15,4,c6,c9,0
> +#define HPRLAR2         p15,4,c6,c9,1
> +#define HPRBAR3         p15,4,c6,c9,4
> +#define HPRLAR3         p15,4,c6,c9,5
> +#define HPRBAR4         p15,4,c6,c10,0
> +#define HPRLAR4         p15,4,c6,c10,1
> +#define HPRBAR5         p15,4,c6,c10,4
> +#define HPRLAR5         p15,4,c6,c10,5
> +#define HPRBAR6         p15,4,c6,c11,0
> +#define HPRLAR6         p15,4,c6,c11,1
> +#define HPRBAR7         p15,4,c6,c11,4
> +#define HPRLAR7         p15,4,c6,c11,5
> +#define HPRBAR8         p15,4,c6,c12,0
> +#define HPRLAR8         p15,4,c6,c12,1
> +#define HPRBAR9         p15,4,c6,c12,4
> +#define HPRLAR9         p15,4,c6,c12,5
> +#define HPRBAR10        p15,4,c6,c13,0
> +#define HPRLAR10        p15,4,c6,c13,1
> +#define HPRBAR11        p15,4,c6,c13,4
> +#define HPRLAR11        p15,4,c6,c13,5
> +#define HPRBAR12        p15,4,c6,c14,0
> +#define HPRLAR12        p15,4,c6,c14,1
> +#define HPRBAR13        p15,4,c6,c14,4
> +#define HPRLAR13        p15,4,c6,c14,5
> +#define HPRBAR14        p15,4,c6,c15,0
> +#define HPRLAR14        p15,4,c6,c15,1
> +#define HPRBAR15        p15,4,c6,c15,4
> +#define HPRLAR15        p15,4,c6,c15,5
> +#define HPRBAR16        p15,5,c6,c8,0
> +#define HPRLAR16        p15,5,c6,c8,1
> +#define HPRBAR17        p15,5,c6,c8,4
> +#define HPRLAR17        p15,5,c6,c8,5
> +#define HPRBAR18        p15,5,c6,c9,0
> +#define HPRLAR18        p15,5,c6,c9,1
> +#define HPRBAR19        p15,5,c6,c9,4
> +#define HPRLAR19        p15,5,c6,c9,5
> +#define HPRBAR20        p15,5,c6,c10,0
> +#define HPRLAR20        p15,5,c6,c10,1
> +#define HPRBAR21        p15,5,c6,c10,4
> +#define HPRLAR21        p15,5,c6,c10,5
> +#define HPRBAR22        p15,5,c6,c11,0
> +#define HPRLAR22        p15,5,c6,c11,1
> +#define HPRBAR23        p15,5,c6,c11,4
> +#define HPRLAR23        p15,5,c6,c11,5
> +#define HPRBAR24        p15,5,c6,c12,0
> +#define HPRLAR24        p15,5,c6,c12,1
> +#define HPRBAR25        p15,5,c6,c12,4
> +#define HPRLAR25        p15,5,c6,c12,5
> +#define HPRBAR26        p15,5,c6,c13,0
> +#define HPRLAR26        p15,5,c6,c13,1
> +#define HPRBAR27        p15,5,c6,c13,4
> +#define HPRLAR27        p15,5,c6,c13,5
> +#define HPRBAR28        p15,5,c6,c14,0
> +#define HPRLAR28        p15,5,c6,c14,1
> +#define HPRBAR29        p15,5,c6,c14,4
> +#define HPRLAR29        p15,5,c6,c14,5
> +#define HPRBAR30        p15,5,c6,c15,0
> +#define HPRLAR30        p15,5,c6,c15,1
> +#define HPRBAR31        p15,5,c6,c15,4
> +#define HPRLAR31        p15,5,c6,c15,5

NIT: Is there any way we could generate the values using macros?

> +
>   /* Aliases of AArch64 names for use in common code */
>   #ifdef CONFIG_ARM_32
>   /* Alphabetically... */
>   #define MPUIR_EL2       HMPUIR
>   #define PRBAR_EL2       HPRBAR
> +#define PRBAR0_EL2      HPRBAR0

AFAIU, the alias will be mainly used in the macro generate the switch. Rath=
er than open-coding all the PR*AR_EL2, can we provide two macros PR{B, L}AR=
_N that will be implemented as HPR{B,L}AR##n for arm32 and PR{B,L}AR##n for=
 arm64?

>   #define PRSELR_EL2      HPRSELR
> +
>   #endif /* CONFIG_ARM_32 */
>
>   #endif /* __ARM_MPU_CPREGS_H */

Cheers,

--
Julien Grall


________________________________
The information contained in this e-mail and any attachments from Parry Lab=
s may contain confidential and/or proprietary information, and is intended =
only for the named recipient to whom it was originally addressed. If you ar=
e not the intended recipient, any disclosure, distribution, or copying of t=
his e-mail or its attachments is strictly prohibited.   If you have receive=
d this e-mail in error, please notify the sender immediately by return e-ma=
il and permanently delete the e-mail and any attachments.


From xen-devel-bounces@lists.xenproject.org Fri Apr 18 15:39:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 18 Apr 2025 15:39:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.959216.1351632 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5noE-0004XG-RM; Fri, 18 Apr 2025 15:39:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 959216.1351632; Fri, 18 Apr 2025 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 1u5noE-0004X9-On; Fri, 18 Apr 2025 15:39:18 +0000
Received: by outflank-mailman (input) for mailman id 959216;
 Fri, 18 Apr 2025 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=gHr6=XE=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1u5noD-0004X1-LL
 for xen-devel@lists.xenproject.org; Fri, 18 Apr 2025 15:39:17 +0000
Received: from NAM12-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam12on20624.outbound.protection.outlook.com
 [2a01:111:f403:200a::624])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 47dc293c-1c6b-11f0-9ffb-bf95429c2676;
 Fri, 18 Apr 2025 17:39:15 +0200 (CEST)
Received: from DM6PR11CA0057.namprd11.prod.outlook.com (2603:10b6:5:14c::34)
 by PH0PR12MB8030.namprd12.prod.outlook.com (2603:10b6:510:28d::21) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.30; Fri, 18 Apr
 2025 15:39:09 +0000
Received: from DS1PEPF00017091.namprd03.prod.outlook.com
 (2603:10b6:5:14c:cafe::c5) by DM6PR11CA0057.outlook.office365.com
 (2603:10b6:5:14c::34) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.22 via Frontend Transport; Fri,
 18 Apr 2025 15:39:08 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 DS1PEPF00017091.mail.protection.outlook.com (10.167.17.133) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Fri, 18 Apr 2025 15:39:08 +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, 18 Apr
 2025 10:39:06 -0500
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, 18 Apr
 2025 10:39:06 -0500
Received: from [172.23.161.73] (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, 18 Apr 2025 10:39:04 -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: 47dc293c-1c6b-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=rm6yjCBCxINNiY7GTYdIWqe/JWybi5mThAJf/dHVz+DJwpOQXp6RwPNqNJP7zAEGFDJhPe0zEBGqCj8iwPkNka2g906lXH5eVymH6+FQweCcg2Oo/2WD2l1rBf6xU0/pkk3Lc/pQ8ZclUkS4T5hRXen/YMQr6VOlVnALqyD8AS3I9K3BGn2X3cuv9zDPAZuqvhAgT/AeZJxBimiS24ymDa/A5alrH9m8LQJhV+GJiBWzYbsi+dS+jX3aaLMwSND+fohOFBnkhxg2qRblKKm6LpaQ2+L9dMuqJaIkCw0aVUptQpi92JhuWTRYvZqgmuzr0SLz62+Pw7/sfypaTDbfsA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=PVeIV3TPFlHL1zKr6H+V/tMzJ2XZve2HlijwB8LiBcs=;
 b=RFOxP9P1cSGGZk+5a9wi3UCn1SZTYSAloCt4f9FQLl9oP0AMREl0heakAlQzqdkhdJWLhPDcqVBK2tRTO/P6s0QI/IdVenDYoJUKxw7lwyULiKZyIsrGZkIUlMaK92zvc1DIPpNL6DePdv3k56tkeKVOlFtEBLhUhG8asdAagsa6JjVsaBb6SdEhQGNlIsNYNOpayvy6IVtzHmklmlFUHQPCask7dWy4BF+O47sw1Qx0vWJV8MwmV224YDZjtjxbaM1y1xYK3soj0BMbNlw87adHCYpNRs5Y2rRfm6aA7a5RX7UghHyVR0YCOV73k/J6kTTdxLL60tuO3UBYyBxOAw==
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=PVeIV3TPFlHL1zKr6H+V/tMzJ2XZve2HlijwB8LiBcs=;
 b=heg8D9knBlI/KLLzeNlvzShRksuK6PdZMbvIqaRGentWTKwDAj6exCff0PEpTKqrzPsEaEiFunM8z2UFta2nEfxrjG2NySH+Y3s8/OsRaieWxyZnh366aYHANV4d7i3dFNJF6Gv2XXbGVy1z6GQD0k47hwpZ0f4C15kpaRWxEMI=
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: <a8086094-fe3c-4a82-8382-b5adb78cfe01@amd.com>
Date: Fri, 18 Apr 2025 11:39:04 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v18 1/2] xen/arm: translate virtual PCI bus topology for
 guests
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
To: Julien Grall <julien@xen.org>, <xen-devel@lists.xenproject.org>
CC: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>,
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Stefano Stabellini <sstabellini@kernel.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>, Michal Orzel
	<michal.orzel@amd.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Jiqian Chen <Jiqian.Chen@amd.com>, Mykyta Poturai <Mykyta_Poturai@epam.com>
References: <20250325172727.600716-1-stewart.hildebrand@amd.com>
 <20250325172727.600716-2-stewart.hildebrand@amd.com>
 <346fadbb-deff-4403-88d7-b77b7002f913@xen.org>
 <0bceb177-dd1e-4907-a726-84230f34eb78@amd.com>
Content-Language: en-US
In-Reply-To: <0bceb177-dd1e-4907-a726-84230f34eb78@amd.com>
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: DS1PEPF00017091:EE_|PH0PR12MB8030:EE_
X-MS-Office365-Filtering-Correlation-Id: a48fdd13-b7dc-4635-99d6-08dd7e8f28c4
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?czJPY1ZLalVBN3VBOVhoMlkyWWQwVmp2SVpwU0dGblA4Y0lDa0xzTWhtOENl?=
 =?utf-8?B?ek1Zc0dIZUxQWE82YWtZUHpSamxoR3JjNUNRWEpSR01DVzl6VVFiWDFFaFRw?=
 =?utf-8?B?UHNwRDJqcnB1YU1SWW9EYVBJb0U4TVl1OTZ0MUFkRXlrYStOWWZiZ3MwWEQ2?=
 =?utf-8?B?SktkMDFTOWUzK21uSVc5cUtHdGdFMVpGRFdIWlN2bzBzTTBNNUpHTVVLa2xo?=
 =?utf-8?B?S2hsaXIvayt4aDFjUmwzUFBpYmpqMEU1RUplUU03Qkt3WHJPNHo2WGhBdTJQ?=
 =?utf-8?B?eENpYXVYbHlyTnN2SDFDWXdkOGxWQ0RZOWhpUUhMdVJnT2d0bWhMNktxUnZM?=
 =?utf-8?B?MURqV256U2E1cXBjYWtJMy9nYXFqUjE2bkt1d2RNaERaazdlTzRnVDVaRjM4?=
 =?utf-8?B?bzFNUys5Ty91S3U2MmFUYzVwZUVpcmlSZXVRTVlqZUdoeGRPdDcrZ2NjWmlt?=
 =?utf-8?B?bkkxR0JLdHNGZmkwZG42VUdvaVQvMVp4Mk5DSjhiS2d4ZlJoOE83V3Q2N2hI?=
 =?utf-8?B?R2l5aXRNdHFlcW5XYmNudXhRVTlTVEFxOFNjM1N4dnd5MFVQQVdhK1djWkRs?=
 =?utf-8?B?clVnd0RuajBIaG9FMlRhUWNpRWM5OGFHYlB4NmJOcnMxWCtJMVptYTV5R1Vx?=
 =?utf-8?B?d012ekJCZUZIbmMvK0JzZTJyanFHZXRkWnVhQWUwWlBGUHFRMCtlODNWc1Zy?=
 =?utf-8?B?elJhYmFuZS9BNDhIVk1zOTNyQkF5N3BOMkcxZVFBRUFnMXZKQWVpRVFHcTdk?=
 =?utf-8?B?dTJnZXNIWVd2MGpHR0hyUEkzei9VS3B4WVJiaGcwU1NYWm10aE5kNTZBNXRu?=
 =?utf-8?B?Q1Z5b3l4QjNlelR2cnBCVEIwWi9RRlc1UFJkaGVrU3dTMHYrdE8vTVhYRzV2?=
 =?utf-8?B?ZUVxRGsrczJVdlhRWVNuaU92THdkbTlFVWUyQ3NJVUNNc0VZVWxpRUIzbCtR?=
 =?utf-8?B?bzhQZkZtSFIzT1FUZHI2aXJRUkZsZFcxd3FhOVRPNitRaGIxb3c1cDFIakox?=
 =?utf-8?B?R0lTSGJ0MGdrZnBOREdoTnJNcXU2dHNPb0RqeDlRUStnZ0svQW51cmQ5aVpT?=
 =?utf-8?B?TkJmREsxanBJcXVPdFYwaW16MFVzQnhTd1RyNnZML09iKzNRcVIycnoxaThl?=
 =?utf-8?B?UWdtT3N6c1pQT2lPRitSdkxVSDJRcmNPeHp5ZXRNSEFDRXJkQXFIaStrWk9Q?=
 =?utf-8?B?TFRSK3QwUlFMOWNYYTFsUTZKWVlTK3ZMRmp6SVVBc1gyN1JNZ1RMM1RaMUI4?=
 =?utf-8?B?cndFNVlsUHFyMW04SHNiaWlSSU8yNTNXdzNwYzlHVnBaUlgxYXlsb3ZURkFN?=
 =?utf-8?B?QmM2WDFxTStXZEtQb0tRK2Vsd0ttbkdGVTN0aXgzUlZ4Zk1sdXdDU2tmYytz?=
 =?utf-8?B?Wnl1VFNkRFdGU2FhSVhPZ3pXS3BrM0VzZVdETUJOeVB0WFM2eVNOV1crTFFw?=
 =?utf-8?B?eVlqMmR4V2IzRG9VN3pmRWdOdXBicXI0b3ZXcmlCSTh1YzRHZWxtUTdKZVZ4?=
 =?utf-8?B?WmdWamw2aDJYUnVCZG45K21jckZ2dVNMaVZjemJkZkw1MkZwUmFLeGZ2amhl?=
 =?utf-8?B?VzhBOEgxQzRQM3QzY1FSdWdvSXFuZ01zWmEza3dOVU1ZS3FCNmZJazJPMVNF?=
 =?utf-8?B?TjZLMTl2ZW5hSVlxaTEwc1lUVFlBTHUvaDJaVWEvMlRnekh0Zys3c1BnZjRk?=
 =?utf-8?B?Znk1dzY3WCtpak16cUJzOEFtRHRRSWp3MUFNWDRZOCtHYWZZN1paeHRIeUl3?=
 =?utf-8?B?MW9TaWNIRzQ2QmZPTG5ETzFacFNtSGJQQit6amFCUHdpVHMrMkRNazFOTFNY?=
 =?utf-8?B?N0poNmhFSmJXT3VIbFB3THdUc0YzOHdmTkYzTVdWNWhCNVJwemFneVdROHpv?=
 =?utf-8?B?SzY1WHdnK3FwUk5abmJ6dk1SL0EzbVh1UEVSODV1eGEwRU04b0tLVFpVQmVu?=
 =?utf-8?B?RlNJbEFhYkdOVE14WmJMbG5jNTZ1MDZ0RUx0d0NHVDNSTE1HWm1XM2tFTDFJ?=
 =?utf-8?B?UzU2OFJpWkg4SisvOW9vQlYreWFNaGVXdWs1c1JvSVJPdXJURmxNSzRRUTYx?=
 =?utf-8?Q?YJ49UJ?=
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: 18 Apr 2025 15:39:08.5093
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: a48fdd13-b7dc-4635-99d6-08dd7e8f28c4
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:
	DS1PEPF00017091.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR12MB8030

On 4/7/25 13:02, Stewart Hildebrand wrote:
> On 3/30/25 17:59, Julien Grall wrote:
>> Hi Stewart,
>>
>> I realize this series is at v18, but there are a few bits security-wise
>> that concerns me. They don't have to be handled now because vPCI is
>> still in tech preview. But we probably want to keep track of any issues
>> if this hasn't yet been done in the code.
> 
> No worries, we want to get this right. Thank you for taking a look.
> 
>> On 25/03/2025 17:27, Stewart Hildebrand wrote:
>>> diff --git a/xen/drivers/vpci/vpci.c b/xen/drivers/vpci/vpci.c
>>> index 1e6aa5d799b9..49c9444195d7 100644
>>> --- a/xen/drivers/vpci/vpci.c
>>> +++ b/xen/drivers/vpci/vpci.c
>>> @@ -81,6 +81,32 @@ static int assign_virtual_sbdf(struct pci_dev *pdev)
>>>       return 0;
>>>   }
>>>   +/*
>>> + * Find the physical device which is mapped to the virtual device
>>> + * and translate virtual SBDF to the physical one.
>>> + */
>>> +bool vpci_translate_virtual_device(struct domain *d, pci_sbdf_t *sbdf)
>>> +{
>>> +    const struct pci_dev *pdev;
>>> +
>>> +    ASSERT(!is_hardware_domain(d));
>>> +    read_lock(&d->pci_lock);
>>> +
>>> +    for_each_pdev ( d, pdev )
>>
>> I can't remember whether this was discussed before (there is no
>> indication in the commit message). What's the maximum number of PCI
>> devices supported? Do we limit it?
>>
>> Asking because iterating through the list could end up to be quite
>> expensive.
> 
> 32. See xen/include/xen/vpci.h:
> #define VPCI_MAX_VIRT_DEV       (PCI_SLOT(~0) + 1)
> 
>> Also, not a change for this patch, but it seems vcpi_{read,write} will
>> also do another lookup. This is quite innefficient. We should consider
>> return a pdev and use it for vcpi_{read,write}.
> 
> Hm. Right. Indeed, a future consideration.
> 
>>> +    {
>>> +        if ( pdev->vpci && (pdev->vpci->guest_sbdf.sbdf == sbdf->sbdf) )
>>> +        {
>>> +            /* Replace guest SBDF with the physical one. */
>>> +            *sbdf = pdev->sbdf;
>>> +            read_unlock(&d->pci_lock);
>>> +            return true;
>>> +        }
>>> +    }
>>> +
>>> +    read_unlock(&d->pci_lock);
>>
>> At the point this is unlocked, what prevent the sbdf to be detached from
>> the domain?
> 
> Nothing.
> 
>> If nothing, would this mean the domain can access something it should
>> not?
> 
> Yep. I have a patch in the works to acquire the lock in the I/O
> handlers. I would prefer doing this in a pre-patch so that we don't
> temporarily introduce the race condition.

I spoke too soon. If the pdev were deassigned right after dropping the
lock here, the access would get rejected in the 2nd pdev lookup inside
vpci_{read,write}, due to the pdev not belonging to the domain any more.

In hindsight, moving the lock (as I did in v19) was not strictly
necessary. Anyway, this can all be simplified by calling
vpci_translate_virtual_device() from within vpci_{read,write}. I'll send
v20 with this approach, then we can decide if we like v18 or v20 better.

>>> +    return false;
>>> +}
>>> +
>>>   #endif /* CONFIG_HAS_VPCI_GUEST_SUPPORT */
>>>     void vpci_deassign_device(struct pci_dev *pdev)
>>> diff --git a/xen/include/xen/vpci.h b/xen/include/xen/vpci.h
>>> index 807401b2eaa2..e355329913ef 100644
>>> --- a/xen/include/xen/vpci.h
>>> +++ b/xen/include/xen/vpci.h
>>> @@ -311,6 +311,18 @@ static inline int __must_check vpci_reset_device(struct pci_dev *pdev)
>>>       return vpci_assign_device(pdev);
>>>   }
>>>   +#ifdef CONFIG_HAS_VPCI_GUEST_SUPPORT
>>> +bool vpci_translate_virtual_device(struct domain *d, pci_sbdf_t *sbdf);
>>> +#else
>>> +static inline bool vpci_translate_virtual_device(struct domain *d,
>>> +                                                 pci_sbdf_t *sbdf)
>>> +{
>>> +    ASSERT_UNREACHABLE();
>>> +
>>> +    return false;
>>> +}
>>> +#endif
>>> +
>>>   #endif
>>>     /*
> 
> 



From xen-devel-bounces@lists.xenproject.org Fri Apr 18 18:59:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 18 Apr 2025 18:59:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.959321.1351707 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5qvT-0000qf-NM; Fri, 18 Apr 2025 18:58:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 959321.1351707; Fri, 18 Apr 2025 18:58: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 1u5qvT-0000qY-KU; Fri, 18 Apr 2025 18:58:59 +0000
Received: by outflank-mailman (input) for mailman id 959321;
 Fri, 18 Apr 2025 18:58: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=gHr6=XE=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1u5qvS-0000qS-RQ
 for xen-devel@lists.xenproject.org; Fri, 18 Apr 2025 18:58:59 +0000
Received: from NAM10-BN7-obe.outbound.protection.outlook.com
 (mail-bn7nam10on2061b.outbound.protection.outlook.com
 [2a01:111:f403:2009::61b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2d8968e1-1c87-11f0-9ffb-bf95429c2676;
 Fri, 18 Apr 2025 20:58:56 +0200 (CEST)
Received: from CH0PR04CA0077.namprd04.prod.outlook.com (2603:10b6:610:74::22)
 by MW4PR12MB7167.namprd12.prod.outlook.com (2603:10b6:303:225::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.34; Fri, 18 Apr
 2025 18:58:49 +0000
Received: from CH3PEPF0000000B.namprd04.prod.outlook.com
 (2603:10b6:610:74:cafe::5b) by CH0PR04CA0077.outlook.office365.com
 (2603:10b6:610:74::22) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.22 via Frontend Transport; Fri,
 18 Apr 2025 18:58:49 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 CH3PEPF0000000B.mail.protection.outlook.com (10.167.244.38) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Fri, 18 Apr 2025 18:58:48 +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, 18 Apr
 2025 13:58:48 -0500
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, 18 Apr
 2025 13:58:48 -0500
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, 18 Apr 2025 13:58:47 -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: 2d8968e1-1c87-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=zABPivWNnMYZMbfKrJViTa9zVambY0sy8eQupY2q5FpxN+oBaEsEsekAy+IslUZY/5OJ7VcuxSEQaH5aA9AhvBvYt4ASFJ/24g7UP9sNCXTJGRDg6zjmMKVjR6wqqDaJrNBHVBYHAAxRzbnVAfIh2qH7qoPEG3om0ExtH8lUr1fRctwMw9aRt6ImAhkQ/eW5mKPrh1mEzk2zWf9V9FtZ92NKD/qfPo8vi3C1RGhQiROnu+ze6jfzNK4ZVNc5YenfDu03CDbcqAOwuVDRZOI5oVoFPJjb5/Dnz4MwvOrxT6vRAj8qvgIY4+VAbJtwIMtcMTPLppxTPhD09px1Z4YOOw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=E3XYn9iftCQ0xSKBwK8jUjDuq6/npPWK5ey/U8R0amE=;
 b=T8Zw6qMYPpHl2mBGPq1fwrZQcKIW/c82kKtX2mXb32EU9DdgBTjPk7PnaU0LMjPaMDNXYIJW1EYCOZuNH0xNxsHCcJOxDzo5Y1D+YvNiwJ74i8AmSmYSJx8a5mgE5taIIbbG0KDriUM9QY5c9DETKFiwCuSu1Losg0Vj7GCW+4Qn51ZiQRAC5bjQ39FpksVeWl1dEr0MtVblVxqXA1haaP3lDEB3L43sPs/0AQ3zNSl78mgqoO3s1D5nWuL4iBAkiDTkgbKmk9QQEKmDi4+8noBgJHSSjJsedvJWjGfZrfLVZ6cvZbS7qisCOVYOtpGvcVq8Uh6bbVmypZDlreBXQw==
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=E3XYn9iftCQ0xSKBwK8jUjDuq6/npPWK5ey/U8R0amE=;
 b=HXYv0WoSCRbipT7tU/Rh+FjxeMpbbim0ErJwABWiEKcGZliBgSFuVtLO2gkrWTqBYfIBbLg6lQpwx/n12bhyIZn4kN008h3aSOrVkh03NueVTZwDJxeSRWPZqdN4dupVk0vbhjwZHUTWgbqEf2sJ8XGMkZNr+UdTGNPl82DEJ7g=
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>, 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>, Anthony PERARD <anthony.perard@vates.tech>, "Jiqian
 Chen" <Jiqian.Chen@amd.com>, Mykyta Poturai <Mykyta_Poturai@epam.com>
Subject: [PATCH v20 0/2] PCI devices passthrough on Arm, part 3
Date: Fri, 18 Apr 2025 14:58:35 -0400
Message-ID: <20250418185840.335816-1-stewart.hildebrand@amd.com>
X-Mailer: git-send-email 2.49.0
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: CH3PEPF0000000B:EE_|MW4PR12MB7167:EE_
X-MS-Office365-Filtering-Correlation-Id: 53c28c3c-ccab-47e9-de6b-08dd7eab0dab
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?bmU5aXVzQXpjUlhyZnRrcExENE9aVlY2cUF3QjJYSS9Wekc4WDNRNU1HdDdR?=
 =?utf-8?B?emhVVjZkajdOeDBEUWluMS9TTTlpWjV1VDdLSklVbHRlYis2MWlKREplVXNk?=
 =?utf-8?B?OVlSUzJxUE15Q2hIbm42UjBvOHU0WVFCTXdwWU5mV29VZGVvUTJFMjFCd3hv?=
 =?utf-8?B?bHBsVVIrd1dEQktvVmZZMk03NUZiZVd5dDQ2eW00cXpOSFJsb2pZRzgrTXhy?=
 =?utf-8?B?WG92bXRTaXZqU1dwT3FFdUE2a3FlTW9QV3hXeUt1TVFURDFGT1QzUnI2UzNK?=
 =?utf-8?B?eFB4ZDE5UGVCREVlQU8rMzhjVUlUdmtMTU9JUnU3c2tUMjdGcDgrdm5nU0hD?=
 =?utf-8?B?S3FJeEVpK2s3OEkza1hBRENMUWF1bkkxcUxFZjdwSFBWZkRNQzh6emEvV2p1?=
 =?utf-8?B?NmxDZzZSdjVMTTNDblRMSDVlbDdOTWVFc3hIT3MzdmRrZHBvbm45Q0tWZFNs?=
 =?utf-8?B?RTlCSjQvV1pBb0c5Rk1rNUp2UDExUjcvb1NTTjJoeVdCR1VJVnc4K1FpajVL?=
 =?utf-8?B?QnZFcWV0a2UwUzY0UGhPbi9SNVpkbnpOMXppRmszdmtwd0JIdmVQOEQzYTNL?=
 =?utf-8?B?NUVqeVFhSW5ldE1SR3JMZmlUTFZ5SGVKaDdqbnNrMEIydEFkY2RKQjJVNTR1?=
 =?utf-8?B?Z2lhanZuaXhleG9iQmN0ckQ2MU4weVRHSS94YlhneFZIVXI1MUxuMVltMU9O?=
 =?utf-8?B?QnBRZXFUK0s4WkVtQzY3YXJXQmVrUUgrMmhxSUJpWmVWZHdvTE1IZlI3YUJC?=
 =?utf-8?B?d0VXdTd4amtLMmIzSDNDekVZUDI2NWg1QmhyaTloMC9CaFN2cThMazh0Y0Vn?=
 =?utf-8?B?YjMxWlZiRlg1UHpKQmVzV2xodHh0RnhDTnBucjdkYVdJOWRtalVyTEIvc0JO?=
 =?utf-8?B?UzI0MTM1Y1dQNEZxNmFiSThjTnlBcnJiSXc2dzBCMEJiYlZxU2ZGYmNvV2hV?=
 =?utf-8?B?TUY0UERHa0g0bm4wTHlYenlTNXpKWGcybDdUOWViMWk1cXNjdUtmZGNrc0JU?=
 =?utf-8?B?ZEpOYjkyallPRGIyb0k1aTNGZENUWjlyTVNEek1oOWtQc2luRjFZZG0zSzVB?=
 =?utf-8?B?dHdQcWhvR3VyNldHbHVNc0VIT29abHFhOXArU1ZON1p5eGFPajF4bzVtcnUw?=
 =?utf-8?B?Mlp1dmdmakpPZGI0VWJQSFo2NDRzWXVzRHJBODBBODE4SDRYYWt1TWVrYVFi?=
 =?utf-8?B?NmVGOTFIZ05yL2xzS0RnRXhLQzhvR3pWQjErTmpIZGxyY3B4czZFcXZSUW8v?=
 =?utf-8?B?NEY0ZURocGpVSllNa2RBMHR6TWN3clk1M243UmRZSXluU1ZoTDBEamZwQlVD?=
 =?utf-8?B?M0lobWNYamtERExDZmxrTWY1WHpvUm1CUjBOQUh5L1NtSUc1em9mV25xbkpn?=
 =?utf-8?B?RXVLamZEK1hDRFJpNmRQUUNNaWJUc2JGQkhCSHJ4M01DTGs5UW1wQTFnMDVH?=
 =?utf-8?B?L09ITTB6eXk2UHJhVDY1L1FVci94aEtOMVE1TXNuZ1lHdzFCR2NiK2tWZVd4?=
 =?utf-8?B?T0pnKzRINHlMMjRRRnl3eXE5QnlMQVFBMHk0ZkNhWUNNUWl0cDhFWUlhcGdi?=
 =?utf-8?B?R2F0VndtN01Hdk5UUi9xYW84dWx5cnowY2krRE5kd05MdXBsMGNIUmlYbVkx?=
 =?utf-8?B?eG1VSURKYlNvYjRORjRQc3JkRXp5c013cTdzUXJxaG5uZW9pcjlZTHZMS3BJ?=
 =?utf-8?B?cDRsaHc3cnlFQk16dkVMa29QMjRSR2owdGl4UWFlS2d5WEgzVVRWSUJHYlpQ?=
 =?utf-8?B?SlI0b1hKeEM2c3lEeEZRVW90UjZFWnFJeUZZTnJnRExZdmR5RkQrd3l4TzVB?=
 =?utf-8?B?RVM1UDZZbWFHaFl5R0NIZ2NnQkhtL0MySGkyUit2V3l6OFdaK0xneFRuOHdm?=
 =?utf-8?B?YWR6ZHZ4b2didFZ3V3dsVkdQc3BiQkhlQUhRSWFRUC9SbWs0L29DQ3l2aVlX?=
 =?utf-8?B?Q2FpQWp0TjBCUGFFNHlzZ0Nyd2pCRmNKM3ZSMnl0L0VJb2VtcDJ3S0RpVlZP?=
 =?utf-8?B?RytmSGg3dG1VVjlEc2tBU3NiZlArNk5jMWpTRUhSdmJoaGZQRGVJczRWeUR3?=
 =?utf-8?Q?F/DIuM?=
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: 18 Apr 2025 18:58:48.9728
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 53c28c3c-ccab-47e9-de6b-08dd7eab0dab
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:
	CH3PEPF0000000B.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR12MB7167

This is next version of vPCI rework. Aim of this series is to prepare
ground for introducing PCI support on ARM platform.

in v20:
 - drop ("vpci: acquire d->pci_lock in I/O handlers") as it was
   unnecessary

in v19:
 - ("xen/arm: check read handler behavior") is ready to be committed
 - add ("vpci: acquire d->pci_lock in I/O handlers")

in v18:
 - address warning in vpci test suite

in v17:
 - add ("xen/arm: check read handler behavior")
 - drop ("xen/arm: account IO handlers for emulated PCI MSI-X") as it
   should wait for future work
 - drop committed patches

in v16:
 - minor updates - see individual patches

in v15:
 - reorder so ("arm/vpci: honor access size when returning an error")
   comes first

in v14:
 - drop first 9 patches as they were committed
 - updated ("vpci/header: emulate PCI_COMMAND register for guests")

in v13:
 - drop ("xen/arm: vpci: permit access to guest vpci space") as it was
   unnecessary

in v12:
 - I (Stewart) coordinated with Volodomyr to send this whole series. So,
   add my (Stewart) Signed-off-by to all patches.
 - The biggest change is to re-work the PCI_COMMAND register patch.
   Additional feedback has also been addressed - see individual patches.
 - Drop ("pci: msi: pass pdev to pci_enable_msi() function") and
   ("pci: introduce per-domain PCI rwlock") as they were committed
 - Rename ("rangeset: add rangeset_empty() function")
       to ("rangeset: add rangeset_purge() function")
 - Rename ("vpci/header: rework exit path in init_bars")
       to ("vpci/header: rework exit path in init_header()")

in v11:
 - Added my (Volodymyr) Signed-off-by tag to all patches
 - Patch "vpci/header: emulate PCI_COMMAND register for guests" is in
   intermediate state, because it was agreed to rework it once Stewart's
   series on register handling are in.
 - Addressed comments, please see patch descriptions for details.

in v10:

 - Removed patch ("xen/arm: vpci: check guest range"), proper fix
   for the issue is part of ("vpci/header: emulate PCI_COMMAND
   register for guests")
 - Removed patch ("pci/header: reset the command register when adding
   devices")
 - Added patch ("rangeset: add rangeset_empty() function") because
   this function is needed in ("vpci/header: handle p2m range sets
   per BAR")
 - Added ("vpci/header: handle p2m range sets per BAR") which addressed
   an issue discovered by Andrii Chepurnyi during virtio integration
 - Added ("pci: msi: pass pdev to pci_enable_msi() function"), which is
   prereq for ("pci: introduce per-domain PCI rwlock")
 - Fixed "Since v9/v8/... " comments in changelogs to reduce confusion.
   I left "Since" entries for older versions, because they were added
   by original author of the patches.

in v9:

v9 includes addressed commentes from a previous one. Also it
introduces a couple patches from Stewart. This patches are related to
vPCI use on ARM. Patch "vpci/header: rework exit path in init_bars"
was factored-out from "vpci/header: handle p2m range sets per BAR".

in v8:

The biggest change from previous, mistakenly named, v7 series is how
locking is implemented. Instead of d->vpci_rwlock we introduce
d->pci_lock which has broader scope, as it protects not only domain's
vpci state, but domain's list of PCI devices as well.

As we discussed in IRC with Roger, it is not feasible to rework all
the existing code to use the new lock right away. It was agreed that
any write access to d->pdev_list will be protected by **both**
d->pci_lock in write mode and pcidevs_lock(). Read access on other
hand should be protected by either d->pci_lock in read mode or
pcidevs_lock(). It is expected that existing code will use
pcidevs_lock() and new users will use new rw lock. Of course, this
does not mean that new users shall not use pcidevs_lock() when it is
appropriate.

Changes from previous versions are described in each separate patch.

Oleksandr Andrushchenko (1):
  vpci: translate virtual PCI bus topology for guests

Stewart Hildebrand (1):
  xen/arm: check read handler behavior

 tools/tests/vpci/emul.h |  2 +-
 xen/arch/arm/io.c       |  2 ++
 xen/arch/arm/vpci.c     |  4 +++
 xen/drivers/vpci/vpci.c | 73 +++++++++++++++++++++++++++++++++++++----
 4 files changed, 73 insertions(+), 8 deletions(-)


base-commit: 64cf7a80a17a017a6b88ea17c7f490e42baefcca
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Fri Apr 18 18:59:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 18 Apr 2025 18:59:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.959322.1351717 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5qva-000156-0H; Fri, 18 Apr 2025 18:59:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 959322.1351717; Fri, 18 Apr 2025 18: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 1u5qvZ-00014z-SQ; Fri, 18 Apr 2025 18:59:05 +0000
Received: by outflank-mailman (input) for mailman id 959322;
 Fri, 18 Apr 2025 18:59: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=gHr6=XE=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1u5qvY-00014S-Mc
 for xen-devel@lists.xenproject.org; Fri, 18 Apr 2025 18:59:04 +0000
Received: from NAM12-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam12on20631.outbound.protection.outlook.com
 [2a01:111:f403:200a::631])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 31330881-1c87-11f0-9eb0-5ba50f476ded;
 Fri, 18 Apr 2025 20:59:03 +0200 (CEST)
Received: from BL1PR13CA0025.namprd13.prod.outlook.com (2603:10b6:208:256::30)
 by CH2PR12MB4232.namprd12.prod.outlook.com (2603:10b6:610:a4::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.33; Fri, 18 Apr
 2025 18:58:59 +0000
Received: from BN3PEPF0000B36F.namprd21.prod.outlook.com
 (2603:10b6:208:256:cafe::d9) by BL1PR13CA0025.outlook.office365.com
 (2603:10b6:208:256::30) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.22 via Frontend Transport; Fri,
 18 Apr 2025 18:58:58 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BN3PEPF0000B36F.mail.protection.outlook.com (10.167.243.166) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8678.4 via Frontend Transport; Fri, 18 Apr 2025 18:58:57 +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, 18 Apr
 2025 13:58:55 -0500
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, 18 Apr
 2025 13:58:55 -0500
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, 18 Apr 2025 13:58:54 -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: 31330881-1c87-11f0-9eb0-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=iQhtwhdmDS5CR6bx98OS9ihZWmVNjchTDGQ0LBIFZGccXUmF3tlb9dLzmASTOZe0W7tMPc9ijo/so62o6GhMoNZLlLJ0gN3VsyNJFz0c/YCtbnpMU83zze5+8BBq8kqX8/PbvG9dqrDqE0BUm56iaz7vUwkkyYvuDtXzwqsuuUdNWNqqhum8VVBk06GC4j586YVI/4aIi99+Z7et1hxncqu/jyZjmBYG3qaLgahGJSGJ7/4DDPQU2VMI6ZAvSdwb4Vb6t+JkCdZfdeFAH8pI3e0tgTNrDE5PLdODOJHcXZV7OBp4V+LfEMCLaFWaPOf0i78G7ct7AknNJ1axHLjomg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=URMOqZG5s1vx2KMq+fNibyCW/yJcHW76mKqaaJIzs+U=;
 b=yaEuTQz5YkIuS1OyuOmpfQ3Rf74TYoN5jxdx5oz5Q4vcXCEHdlXgSPEmIHO7qB2gx8xLVCLONYj9I/dRdu3Nudnuzuhp4GtEHEdzhTgeWGCS21AwX180TplS0kl8nPOxbCliZxViRjZSLYLs4bGmIiaCXKcrVfhDwYd/8yxj6x8hEfkjd5HIagSXE7effT0/ZcON2kPCZTE8OdFKNgjfFqw0FuHDUiFv38Gg68/nIdDaD55wx79nNfvSyUF7j18Y70N+ByF50Ou4ZubdkanT8GNrMalFH42/zjUYIeekKTPRN5+5is+BgD+izfagNsc3Y+UTemtRwTJjsEV4WE/9+A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=temperror (sender ip
 is 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org
 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=URMOqZG5s1vx2KMq+fNibyCW/yJcHW76mKqaaJIzs+U=;
 b=J6341tr6cW4vZxviMuu7za/vbGUOP7TUl7Gk3SYY41+YC2DTenATyjTQvByi8blLi81VuEMMALgdttwn5a4BPQ82E1CDPmO3sW91R7kUyCq0S9JFMqNKrC8IdPDdf+KZRIA52KZU4Fe8+WGGqwSmIMR238jXYOwkawf3DO3YZy4=
X-MS-Exchange-Authentication-Results: spf=temperror (sender IP is
 165.204.84.17) 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)
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Stewart Hildebrand <stewart.hildebrand@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>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Julien Grall <jgrall@amazon.com>
Subject: [PATCH v20 1/2] xen/arm: check read handler behavior
Date: Fri, 18 Apr 2025 14:58:36 -0400
Message-ID: <20250418185840.335816-2-stewart.hildebrand@amd.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250418185840.335816-1-stewart.hildebrand@amd.com>
References: <20250418185840.335816-1-stewart.hildebrand@amd.com>
MIME-Version: 1.0
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: BN3PEPF0000B36F:EE_|CH2PR12MB4232:EE_
X-MS-Office365-Filtering-Correlation-Id: 9a45411a-4aae-483c-c9cb-08dd7eab12ec
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?QzJ0Vlo4Z0RqVGptUFVONkZZU3JDWDNqZTVRMGRlVkNhNE41WHIxNDhNb3I3?=
 =?utf-8?B?dU1QR01EZGNoNjZmbDFHMzNpYVNDRWFsUm9SYmE4M25JZHQvQ3BiYTBZOVAx?=
 =?utf-8?B?ZVZrUDlBTXd3RGxlcWd2SHdjcWp5ZzlkWk0xTWxRNlM3d0I4SWRaV1B3aUZs?=
 =?utf-8?B?Z3VHRzlsVzFpU1JtNXZzZGg0QW1Cd1g5bjVEa0k4Y1BCanhpNkRGdjBwa29m?=
 =?utf-8?B?d0Vjc2ljb3ZTVjI0MC9ZVVpBZmtMYkxJZFU5WFBSVVNTTFRhZTZZc0pTTXk4?=
 =?utf-8?B?bHUvSks2RXZycWpuakVVM0hsUjNoUTRiU3k0bi8vT0huMnFWcDZqYmdBeW51?=
 =?utf-8?B?dXNSQU1yMEt6UEJ0aEVXNFZ1SUljSTQveFlzbXM1enBESnFJc3BiR0JxUFox?=
 =?utf-8?B?ZXhzSFAxWjlVdk96Ry9XdDdFM09vd1FZZUlIYmZNM0tHL2tXaDRkUzV2RWk2?=
 =?utf-8?B?ZndZSWFqMFkrU25TeXFsLzhKZk9TcmZ5MUxYblY1djJyRHRuUzR6eHBSNjlQ?=
 =?utf-8?B?V3Q4K1BzbUFBeEFDSzRuZUtvY3ZSaUM2V21PclZUSnJmTEZQR0p2YzZxMW1R?=
 =?utf-8?B?Tm5WU2dnR0RFbHIxRnNFZk12K3FZaVYzb095aGwzNmh2ZkcvMitRV0ptd0ho?=
 =?utf-8?B?Sm1HMFpocmxPSTRKN2pFeXJMRU9ldjFQdUlHb1VJTzRpZkVRSHpOQjlIOFhq?=
 =?utf-8?B?TzNtSG1DK2o0UVdMVk94cEpvS0YrOWJrZlBLZEZwTDRWZE1zbkRVcWsrbXRV?=
 =?utf-8?B?aWIzcW14ZUpUZTlrL0Rvdmhzc2RxenF3dis3aGkyR003RTBYeFFPTG5DUGRv?=
 =?utf-8?B?TGpiUS9oMndjM2gwbFVWVS81MklkMTRxOTJydU1pRFVtZHM5Nmd6NExSeDYx?=
 =?utf-8?B?dGhZNGtnS1ltR0x2ZE9HV1VXWU0vZ3hhU29XZFdIbkFENzZqc01kei9XVkMy?=
 =?utf-8?B?Q0hLb3lTVnFnZE1yNmZLdTRLVm1sb3lMaUVmWUtiVmJZbFNsY3l5UWV6Q2NK?=
 =?utf-8?B?dnlYQ0toN3g4M2NGdkdPNGV4OVRJdUJiSExGUUhzTy9GOFVBN1FKdlZwOWhO?=
 =?utf-8?B?aE94WC9GT2ZiVjhRNjNUWDluVGxkNUQ4d0x3NG9NTEZWaTNzUjlsRTlHdnNv?=
 =?utf-8?B?YXVIRWo2VHZmSHk5SDY4WHZUUnk4TVY1OTd5ZHAxb1FKQnMwcENtQ05iWWI3?=
 =?utf-8?B?OERJUThiNjVGS2RDRWVFeU12YllZcnBmaC92L1lTYThPNHM5c0FFR2VUemcw?=
 =?utf-8?B?cE5zSVhwNlc4SGpLOVp5U1pwY0YzQ3JkU1FORzkwUnNWVk00SmRlY0tOUlhQ?=
 =?utf-8?B?R1ZDNi8zSlJaSm0veXBiNWliOFl4VFJNRmVURHJCMUpjK3hkdHpvMWtaY2tn?=
 =?utf-8?B?NkNFOCsraGtRMFlZSVF0YmpydXFqOWV0TUFIRHNyYUxUU0FuN28zUFdqN05i?=
 =?utf-8?B?QTh3ek1lTTZ1WTNDR045RUltRnlBWlBOWTh1QlNQcUhIdnpRL0tkY0xBL0VI?=
 =?utf-8?B?V2liTDNiY2ZFSjUxOGhpMTh0MGQyS3lZQm1xZUNGaEowaDNhUVhVUmY1Qmdk?=
 =?utf-8?B?OEpJcFlGcmp1bTFkTXlQY05EV0htcjZWR3hsa0FMWnJjYTBGcDhQVzlWa1lS?=
 =?utf-8?B?RkRpRDF1MmJMcWZXcGR5dmc2eDhBUFJIMG1DYnFzbzhhS3o3cHMzMGdSM1U4?=
 =?utf-8?B?TUZyNmIwOXFZazZJWDB1d0hCcld4clg5YWxIRldKNzdwbFBvaHpLYy9lSmpS?=
 =?utf-8?B?clFwcU9iYVBxTTA4emNEbDF4MDJoNUJEWlVFU3JpSEtzMEZRZnJqSXkvenZj?=
 =?utf-8?B?UG5KR3Z6VEk2ZjUyKzFNRG4rR29haVhvM1lVM2F2ZUplWmg0Ui9CdnA0WHpx?=
 =?utf-8?B?cEtTNDk3UGVBSjByK25taVp0Z0plb3hKck9lQWdTemk5U2FWNSs5N1M3ZzlI?=
 =?utf-8?B?eW15VVBrSzBxTHFnSUJxZi9VVUFjOTJnZi9WdFliaGlWZk0xWEZiTThnZi85?=
 =?utf-8?Q?MEYRmiigaMoLl6A5sf2aDUpIdIUAXM=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:;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: 18 Apr 2025 18:58:57.8078
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 9a45411a-4aae-483c-c9cb-08dd7eab12ec
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:
	BN3PEPF0000B36F.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR12MB4232

We expect mmio read handlers to leave the bits above the access size
zeroed. Add an ASSERT to check this aspect of read handler behavior.

Suggested-by: Roger Pau Monné <roger.pau@citrix.com>
Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
Acked-by: Julien Grall <jgrall@amazon.com>
---
There's no need to wait for the rest of the series to commit this patch.

v19->v20:
* no change

v18->v19:
* add Julien's A-b
* s/GENMASK_ULL/GENMASK/

v17->v18:
* no change

v16->v17:
* new patch

See https://lore.kernel.org/xen-devel/bc6660ef-59f1-4514-9792-067d987e3fbc@xen.org/

Also see 7db7bd0f319f ("arm/vpci: honor access size when returning an error")

Also see xen/arch/arm/ioreq.c:handle_ioserv()
---
 xen/arch/arm/io.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/xen/arch/arm/io.c b/xen/arch/arm/io.c
index 653428e16c1f..5a4b0e8f25c6 100644
--- a/xen/arch/arm/io.c
+++ b/xen/arch/arm/io.c
@@ -37,6 +37,8 @@ static enum io_state handle_read(const struct mmio_handler *handler,
     if ( !handler->ops->read(v, info, &r, handler->priv) )
         return IO_ABORT;
 
+    ASSERT((r & ~GENMASK((1U << info->dabt.size) * 8 - 1, 0)) == 0);
+
     r = sign_extend(dabt, r);
 
     set_user_reg(regs, dabt.reg, r);
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Fri Apr 18 18:59:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 18 Apr 2025 18:59:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.959328.1351727 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5qvn-0001Sw-AT; Fri, 18 Apr 2025 18:59:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 959328.1351727; Fri, 18 Apr 2025 18: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 1u5qvn-0001Sp-6a; Fri, 18 Apr 2025 18:59:19 +0000
Received: by outflank-mailman (input) for mailman id 959328;
 Fri, 18 Apr 2025 18:59: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=gHr6=XE=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1u5qvl-00014S-ND
 for xen-devel@lists.xenproject.org; Fri, 18 Apr 2025 18:59:17 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on20610.outbound.protection.outlook.com
 [2a01:111:f403:2418::610])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3944ff6d-1c87-11f0-9eb0-5ba50f476ded;
 Fri, 18 Apr 2025 20:59:16 +0200 (CEST)
Received: from BLAPR03CA0015.namprd03.prod.outlook.com (2603:10b6:208:32b::20)
 by SJ0PR12MB6928.namprd12.prod.outlook.com (2603:10b6:a03:47a::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.26; Fri, 18 Apr
 2025 18:59:10 +0000
Received: from BN3PEPF0000B370.namprd21.prod.outlook.com
 (2603:10b6:208:32b:cafe::69) by BLAPR03CA0015.outlook.office365.com
 (2603:10b6:208:32b::20) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.18 via Frontend Transport; Fri,
 18 Apr 2025 18:59:10 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BN3PEPF0000B370.mail.protection.outlook.com (10.167.243.167) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8678.4 via Frontend Transport; Fri, 18 Apr 2025 18:59:10 +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, 18 Apr
 2025 13:59:07 -0500
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, 18 Apr 2025 13:59:01 -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: 3944ff6d-1c87-11f0-9eb0-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=IEsZg2FsxS2sIvnFM/RmLv1zdoAvvCuRSPFzDNYXfNbWQG0+rSDAK+X343MsfteuOtF3wJqsmjEbPr8i4xyxkrTihfl9V4xeWdYg95WUK2CAHpPjYHA5RsiT9pg4HUkhMb0ycGX1Y6MANPSvQyYaMVi8uOkNu/l4+0/oQ7Ei4l76V9Lf69bXdkYAual752xq3wSfGuLPzKwGcunmCCwSmXjAuM9xVQEC7iecfkv4EISPps/VnAs458EdeSYSmdOyN6nEnBqd6R2/bdq/iqyzaJrEZZ++FYoAR8rO3xlzt2VpKUt0sWYNZSswfqksNDllz3ZvHI/aIqD1goaFnE/Ylg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=XAlUivpPbpK17IGyc2SL90/VS7vZTd5+wKTy79sl/LM=;
 b=LR//yiODYgOb/66CBYZ7bnUignKO/8Wuo96qo3u/awN1bkhSbBkhehgMb9vgUZeJuejT9Io7O/5zv/mIZDVMAoKa23aecqi++7NP3GbLPsSIqSiT/NSygSPPZ1Un5PgCe5WJjnFHzh0+ndC6IPPVu+H00iaLFseMeGBhZY0kEoaGEi4NNT+NsZO+ccGnUFe3OWpRSZAhT7b04HyOlUm8rtL124U06Sgmf/Ov3spjwpjtbMxShSCNiUvI1p2VqDLYL8+DtMdteh5ZzaojS/LSHJC/XZuouYVSHS26V1/l7MRcF90Nf48UA1tZBZiTzwXC6FQ1nTxcgLb2JX9tpAhkug==
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=XAlUivpPbpK17IGyc2SL90/VS7vZTd5+wKTy79sl/LM=;
 b=xMWBp32GLTp6UI4aMs6nINJH8shfO7TJpoQdXkiyyxi7moizUeFGiDfHTZYX7d9YvfAGfGVNf9H3J9iAEAdZFk/ZeI5XBKfpdG2fsamobNbAUnDVzyTluLatlm18XBnnijiE8/WFj71MDakEi6lhTzS+LxWgtUrQGyZ0Mlal0hM=
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: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, "Stewart
 Hildebrand" <stewart.hildebrand@amd.com>, Anthony PERARD
	<anthony.perard@vates.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>, Jiqian Chen <Jiqian.Chen@amd.com>, "Mykyta
 Poturai" <Mykyta_Poturai@epam.com>, Volodymyr Babchuk
	<volodymyr_babchuk@epam.com>
Subject: [PATCH v20 2/2] vpci: translate virtual PCI bus topology for guests
Date: Fri, 18 Apr 2025 14:58:37 -0400
Message-ID: <20250418185840.335816-3-stewart.hildebrand@amd.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250418185840.335816-1-stewart.hildebrand@amd.com>
References: <20250418185840.335816-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: BN3PEPF0000B370:EE_|SJ0PR12MB6928:EE_
X-MS-Office365-Filtering-Correlation-Id: e6687a8f-4988-4327-8c64-08dd7eab1a4f
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|36860700013|1800799024|82310400026|13003099007;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?wU6zZ9wBOofRvWCwtozFrZj3839oiNyZwAWJ0VHGuaVNebMb+VV6NMHKU3Ev?=
 =?us-ascii?Q?YZC1idxL7ZaR2bnt2MqeKD3tcHb6aPql8DyIWn1cDLj32Po+1xz0B8s75qCl?=
 =?us-ascii?Q?fPxrGr8GdmLFV8i08uI0KZpANHyOa6eH7B1M9+GSNQCQS+YuKAiRd1D66pJT?=
 =?us-ascii?Q?FovrO276sW0jBMOo+ZHNMLvCYyg/eWXpaADJ0qFJyZFhcfsySEkl9KtR3q7L?=
 =?us-ascii?Q?itgK8yoyibI5RapO2CjbA+j2p9ZA4s0zk3mTHWh1ZLBu6Vmb9ZwSL4/g5NGb?=
 =?us-ascii?Q?RaKlEa3Pua2/o3Twof+FdNxmBgOdzDSLMDnPRl2VtxBqShRWiCogKGk8OCPN?=
 =?us-ascii?Q?3c1Moj3+/pS/UQ0Fd5K8dEHfa0zDB0LC+XvEdD3p6Isg9gAYD3QP8xkX7YPK?=
 =?us-ascii?Q?2zLHwUXJ6cPxVjXAR6B7Moqq3Xza3khkGy7Q6ZPTpguwZotKnu5XRtjdOuyj?=
 =?us-ascii?Q?inHg4GJxfl+ILqfVYDNeUuuTbw+Ja1Z5+xE7WYYV9bJOOdzuhp1P6wnX2oi4?=
 =?us-ascii?Q?weVDdixKH4okUGAg2ppq/3pcts9cKX2HbKGPOW0uUeRIJG6+7Qogy95O0zhv?=
 =?us-ascii?Q?T9PZ2cEf5dskj6c22RPqZOSJAKc90eoeycStwcDNT28Hwzq56lk/iD8x5kZD?=
 =?us-ascii?Q?oi1iZkZeW7pVY0WNCrATOs0Sn91XVfIQpaKwG5fgfJCUHlBITuQ2yFy1N71k?=
 =?us-ascii?Q?ldjonbR5/5xs+63AIoeYM33amQ8JaYnWn01OyvVjmZankEa6qyW1pwskCqA4?=
 =?us-ascii?Q?3nZAJtOBW6kUmMMlUUb0jPsLTLkkbYO5DHCa2YqTSOFwEgnfBoVc9NO2w4Y1?=
 =?us-ascii?Q?XFtaTegzE7Lg8juEnaBtzGjzZhjL+XBCfem+9t2TPF/gQ4knG60n4RKSmh1Q?=
 =?us-ascii?Q?cPpkivoPjwTc8NjC/TXhAej7opUZd0ufsb8Vg9vh1Cocsv3dQDLv/JG3qcrD?=
 =?us-ascii?Q?cbIy8vPmyEcCqJv3t+I5TIBcDXw9efiuiRBRu+rCN+ma3fMdDWwuc9fBNnyr?=
 =?us-ascii?Q?qkBuGH5G7Ek3XcZ1jTVzVe4lZV+9EpBBMlB+j8t+3QdnD2QZgYQq4zU/vIOg?=
 =?us-ascii?Q?FhaDeU4v1N/ZTBTfNkDigIRGeeZBhNWIEGH8N6GT50121un+EssDmZhw4Sua?=
 =?us-ascii?Q?ABbEkal7wOCmEPiIpE3IS2HM3ZRIxhZhgPCjffT5Zb21qholsCdNMaJvM+Io?=
 =?us-ascii?Q?OZ9ONqoVvcYOruYZ9sQMMS33dSuF2F1o6aq7apVGnGY3dYNLrsx+uZqeFpa+?=
 =?us-ascii?Q?4mCqEypCXbhClSvaE5LdDaSLvEUjtEuRzWWBxoLqNpAO3q7HA4G+145j603e?=
 =?us-ascii?Q?dqZzQ2SriREuZUZengxfNWdsz0z8IVxdWesM1RUaUl+iDOLs5Mx9xZlNvN5f?=
 =?us-ascii?Q?VjzH1npyz/CUnUt8XYZJh+K5c0tCsv2/05h6Q1Y4ugNmlaOfb/ZeilMK5bPn?=
 =?us-ascii?Q?Ps9FHvz5/RwYkZhiw6+Awe5o7Wkw4d02PeNeuswv3+FnNsV8eyOp3p/8hCrK?=
 =?us-ascii?Q?8lO6HFVMvLkevac=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(36860700013)(1800799024)(82310400026)(13003099007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Apr 2025 18:59:10.1978
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: e6687a8f-4988-4327-8c64-08dd7eab1a4f
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:
	BN3PEPF0000B370.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR12MB6928

From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

There are two originators for the PCI configuration space access:
1. The domain that owns physical host bridge: MMIO handlers are
there so we can update vPCI register handlers with the values
written by the hardware domain, e.g. physical view of the registers
vs guest's view on the configuration space.
2. Guest access to the passed through PCI devices: we need to properly
map virtual bus topology to the physical one, e.g. pass the configuration
space access to the corresponding physical devices.

In vpci_read(), use the access size to create a mask so as to not set
any bits above the access size when returning an error.

Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
---
In v20:
* call translate_virtual_device() from within locked context of
  vpci_{read,write}
* update commit message
In v19:
* move locking to pre-patch
In v18:
* address warning in vpci test suite
In v17:
* move lock to inside vpci_translate_virtual_device()
* acks were previously given for Arm [0] and vPCI [1], but since it was
  two releases ago and the patch has changed, I didn't pick them up

[0] https://lore.kernel.org/xen-devel/4afe33f2-72e6-4755-98ce-d7f9da374e90@xen.org/
[1] https://lore.kernel.org/xen-devel/Zk70udmiriruMt0r@macbook/

In v15:
- base on top of ("arm/vpci: honor access size when returning an error")
In v11:
- Fixed format issues
- Added ASSERT_UNREACHABLE() to the dummy implementation of
vpci_translate_virtual_device()
- Moved variable in vpci_sbdf_from_gpa(), now it is easier to follow
the logic in the function
Since v9:
- Commend about required lock replaced with ASSERT()
- Style fixes
- call to vpci_translate_virtual_device folded into vpci_sbdf_from_gpa
Since v8:
- locks moved out of vpci_translate_virtual_device()
Since v6:
- add pcidevs locking to vpci_translate_virtual_device
- update wrt to the new locking scheme
Since v5:
- add vpci_translate_virtual_device for #ifndef CONFIG_HAS_VPCI_GUEST_SUPPORT
  case to simplify ifdefery
- add ASSERT(!is_hardware_domain(d)); to vpci_translate_virtual_device
- reset output register on failed virtual SBDF translation
Since v4:
- indentation fixes
- constify struct domain
- updated commit message
- updates to the new locking scheme (pdev->vpci_lock)
Since v3:
- revisit locking
- move code to vpci.c
Since v2:
 - pass struct domain instead of struct vcpu
 - constify arguments where possible
 - gate relevant code with CONFIG_HAS_VPCI_GUEST_SUPPORT
New in v2
---
 tools/tests/vpci/emul.h |  2 +-
 xen/arch/arm/vpci.c     |  4 +++
 xen/drivers/vpci/vpci.c | 73 +++++++++++++++++++++++++++++++++++++----
 3 files changed, 71 insertions(+), 8 deletions(-)

diff --git a/tools/tests/vpci/emul.h b/tools/tests/vpci/emul.h
index da446bba86b4..dd048cffbf9d 100644
--- a/tools/tests/vpci/emul.h
+++ b/tools/tests/vpci/emul.h
@@ -89,7 +89,7 @@ typedef union {
 
 #define __hwdom_init
 
-#define is_hardware_domain(d) ((void)(d), false)
+#define is_hardware_domain(d) ((void)(d), true)
 
 #define has_vpci(d) true
 
diff --git a/xen/arch/arm/vpci.c b/xen/arch/arm/vpci.c
index b63a356bb4a8..618ddb7f6547 100644
--- a/xen/arch/arm/vpci.c
+++ b/xen/arch/arm/vpci.c
@@ -34,6 +34,8 @@ static int vpci_mmio_read(struct vcpu *v, mmio_info_t *info,
     /* data is needed to prevent a pointer cast on 32bit */
     unsigned long data;
 
+    ASSERT(!bridge == !is_hardware_domain(v->domain));
+
     if ( vpci_ecam_read(sbdf, ECAM_REG_OFFSET(info->gpa),
                         1U << info->dabt.size, &data) )
     {
@@ -52,6 +54,8 @@ static int vpci_mmio_write(struct vcpu *v, mmio_info_t *info,
     struct pci_host_bridge *bridge = p;
     pci_sbdf_t sbdf = vpci_sbdf_from_gpa(bridge, info->gpa);
 
+    ASSERT(!bridge == !is_hardware_domain(v->domain));
+
     return vpci_ecam_write(sbdf, ECAM_REG_OFFSET(info->gpa),
                            1U << info->dabt.size, r);
 }
diff --git a/xen/drivers/vpci/vpci.c b/xen/drivers/vpci/vpci.c
index 1e6aa5d799b9..fc409f3fc346 100644
--- a/xen/drivers/vpci/vpci.c
+++ b/xen/drivers/vpci/vpci.c
@@ -174,6 +174,41 @@ int vpci_assign_device(struct pci_dev *pdev)
 }
 #endif /* __XEN__ */
 
+#ifdef CONFIG_HAS_VPCI_GUEST_SUPPORT
+/*
+ * Find the physical device which is mapped to the virtual device
+ * and translate virtual SBDF to the physical one.
+ */
+static const struct pci_dev *translate_virtual_device(const struct domain *d,
+                                                      pci_sbdf_t *sbdf)
+{
+    const struct pci_dev *pdev;
+
+    ASSERT(!is_hardware_domain(d));
+    ASSERT(rw_is_locked(&d->pci_lock));
+
+    for_each_pdev ( d, pdev )
+    {
+        if ( pdev->vpci && (pdev->vpci->guest_sbdf.sbdf == sbdf->sbdf) )
+        {
+            /* Replace guest SBDF with the physical one. */
+            *sbdf = pdev->sbdf;
+            return pdev;
+        }
+    }
+
+    return NULL;
+}
+#else
+static const struct pci_dev *translate_virtual_device(const struct domain *d,
+                                                      pci_sbdf_t *sbdf)
+{
+    ASSERT_UNREACHABLE();
+
+    return NULL;
+}
+#endif /* CONFIG_HAS_VPCI_GUEST_SUPPORT */
+
 static int vpci_register_cmp(const struct vpci_register *r1,
                              const struct vpci_register *r2)
 {
@@ -438,7 +473,7 @@ uint32_t vpci_read(pci_sbdf_t sbdf, unsigned int reg, unsigned int size)
     const struct pci_dev *pdev;
     const struct vpci_register *r;
     unsigned int data_offset = 0;
-    uint32_t data = ~(uint32_t)0;
+    uint32_t data = 0xffffffffU >> (32 - 8 * size);
 
     if ( !size )
     {
@@ -453,9 +488,21 @@ uint32_t vpci_read(pci_sbdf_t sbdf, unsigned int reg, unsigned int size)
      * pci_lock is sufficient.
      */
     read_lock(&d->pci_lock);
-    pdev = pci_get_pdev(d, sbdf);
-    if ( !pdev && is_hardware_domain(d) )
-        pdev = pci_get_pdev(dom_xen, sbdf);
+    if ( is_hardware_domain(d) )
+    {
+        pdev = pci_get_pdev(d, sbdf);
+        if ( !pdev )
+            pdev = pci_get_pdev(dom_xen, sbdf);
+    }
+    else
+    {
+        pdev = translate_virtual_device(d, &sbdf);
+        if ( !pdev )
+        {
+            read_unlock(&d->pci_lock);
+            return data;
+        }
+    }
     if ( !pdev || !pdev->vpci )
     {
         read_unlock(&d->pci_lock);
@@ -571,9 +618,21 @@ void vpci_write(pci_sbdf_t sbdf, unsigned int reg, unsigned int size,
      * are modifying BARs, so there is a room for improvement.
      */
     write_lock(&d->pci_lock);
-    pdev = pci_get_pdev(d, sbdf);
-    if ( !pdev && is_hardware_domain(d) )
-        pdev = pci_get_pdev(dom_xen, sbdf);
+    if ( is_hardware_domain(d) )
+    {
+        pdev = pci_get_pdev(d, sbdf);
+        if ( !pdev )
+            pdev = pci_get_pdev(dom_xen, sbdf);
+    }
+    else
+    {
+        pdev = translate_virtual_device(d, &sbdf);
+        if ( !pdev )
+        {
+            write_unlock(&d->pci_lock);
+            return;
+        }
+    }
     if ( !pdev || !pdev->vpci )
     {
         /* Ignore writes to read-only devices, which have no ->vpci. */
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Fri Apr 18 20:59:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 18 Apr 2025 20:59:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.959400.1351765 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5soI-0002ru-PT; Fri, 18 Apr 2025 20:59:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 959400.1351765; Fri, 18 Apr 2025 20: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 1u5soI-0002rn-Ma; Fri, 18 Apr 2025 20:59:42 +0000
Received: by outflank-mailman (input) for mailman id 959400;
 Fri, 18 Apr 2025 20:59: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=h+zk=XE=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1u5soH-0002rh-QX
 for xen-devel@lists.xenproject.org; Fri, 18 Apr 2025 20:59:41 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on2060b.outbound.protection.outlook.com
 [2a01:111:f403:2415::60b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 09b9434e-1c98-11f0-9eb0-5ba50f476ded;
 Fri, 18 Apr 2025 22:59:38 +0200 (CEST)
Received: from SJ0PR05CA0095.namprd05.prod.outlook.com (2603:10b6:a03:334::10)
 by PH8PR12MB7374.namprd12.prod.outlook.com (2603:10b6:510:216::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.22; Fri, 18 Apr
 2025 20:59:34 +0000
Received: from SN1PEPF0002529D.namprd05.prod.outlook.com
 (2603:10b6:a03:334:cafe::d6) by SJ0PR05CA0095.outlook.office365.com
 (2603:10b6:a03:334::10) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.14 via Frontend Transport; Fri,
 18 Apr 2025 20:59:33 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 SN1PEPF0002529D.mail.protection.outlook.com (10.167.242.4) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Fri, 18 Apr 2025 20:59:33 +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, 18 Apr
 2025 15:59:32 -0500
Received: from fedora.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, 18 Apr 2025 15:59:32 -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: 09b9434e-1c98-11f0-9eb0-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=BiZIwML8gBoXJBYyKPw57uHxeEcrwr8uo+3qvZt7bVVLekOxgOdr6ofhBKuxH6uiPqzZnNumJlICU9CIOnzRrv1DhoUV/h7D7gTtETDCYNXWJlxoWuwOYWHiHtYSyk5NoZdjbeKCK61dsUamxzoyyMgXjLd2Jzdo4XgRIKnjXpfiDjxUvYmNrZ8dhYThxovfC95qANbD5VGmTs9GeXQ4zh0Nw9zzKZLbHLpYkQEW6Z4E+hqbiJbmT+Zafx0yKZQSq2eWt1rsvYoQIJOGApmrkYOG/6ztRestSG20NVQjl2+m9gtv4tLXAsYOr9Syz/DhHMVvNzhbpKaHIcDQaEvZ+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=RAdewbTf97jUH+iFwOrNcv+kf97lMEvKgqHa8aLDe4g=;
 b=O447z78HJbN8FK7tRovHKvfhmWfSSGkjy+SIjkgyS9U6rccYvi4IOPvCosjxA8ADLW7VzPFg5btNO9eGcXbmGiSqIMpR3xoo97gzMyMlMFMjiuhJwJjRD4IZ5T0MtPf15WOqt4t7X3tItpie/Il/zsVonE5pjqfViY7iGr59HYae8qKaAo8BfXahvaZ0TTSY8JWyj4KhZFaP5TLv9zoQ1tUcXPTfhoUyen8s7FInS0KgsSAun4I9D5m/sBwDFYohuFPU1jfj1cAAFpkt+b3zJusbsVn/i/zsNxU/1Peti/UEbk0Minn2FWGu2XILRSlEdVR4LJw1xzTa6IVThzS1Dw==
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=RAdewbTf97jUH+iFwOrNcv+kf97lMEvKgqHa8aLDe4g=;
 b=bwQyPZr+RiPue858I1vtlP1Bmok6XIzWdC92KfpYeulF3YIVkjCL2B6j16UloiA+VVCkZRCuCPq/Yn0ef76UZLf7ZqOpIs50MhiCcsHIt8fkx46Rw2Wrmrq6krhAs6REaZuZXW/UZv475GON31q/IIHj6tKUR8AteJYKv2JOqJE=
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>, Juergen Gross <jgross@suse.com>,
	Julien Grall <julien@xen.org>, Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH] xenstored: Remove setjmp.h
Date: Fri, 18 Apr 2025 16:59:33 -0400
Message-ID: <20250418205933.542150-1-jason.andryuk@amd.com>
X-Mailer: git-send-email 2.49.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
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: SN1PEPF0002529D:EE_|PH8PR12MB7374:EE_
X-MS-Office365-Filtering-Correlation-Id: e6bd79dd-8b54-4925-d983-08dd7ebbeba1
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|82310400026|1800799024|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?asBI+hDvAH2EU5vsOn3cg6J9kXMWGdKMKsCHn0agOqMTQ4qO3an34s/5OImh?=
 =?us-ascii?Q?IqC/CSlY1LANhmEFtTwt5Se/aAWdutWlRlo6eaJxqCsCMjLD7OnMOfqCGOrg?=
 =?us-ascii?Q?P7rKfxilwz+yvsAet6nF0z61vTBAF5cVf5yJJomYjrOqn+B/Kxmbbb+XXmrG?=
 =?us-ascii?Q?p84D8dq904+glR7L1Re+98LNSVzxgBeNeGGwf+FJ9RqXtrh1NIpyNF7ibWnC?=
 =?us-ascii?Q?ZEgIOuv1kNr+I+DuAXlA9WnnorD9rYwFQU0fQ5CZMjoy1fP12mZL4bCD9n0W?=
 =?us-ascii?Q?Q/xhS6hoavQlsmCRJEwEd/CPuiYZv9CVpbAXGMP3ifZcJjcpmQeqMsp4gEva?=
 =?us-ascii?Q?1bN/gniHhALIXQHs06nNoyirtHMhoMgvnwG2KbW7iVJsej+A9eWLcCAhdydZ?=
 =?us-ascii?Q?G6/E4dVD+sBZCBaUbpxCg0yGSay+7EQe0yB41Tg0nEh68Xi6A4xpEl74zHH9?=
 =?us-ascii?Q?6JrxjEKdqwTNGK8PorgYh1Fq+xwpYwAMkmrUSdFI9WLvlilAKA5cNSV9j279?=
 =?us-ascii?Q?epXwOEz7Oa1II6dECA7+uAJZDnmCdF3hqQG9Jt7QEwNtwBc//QG4WXM0zPjG?=
 =?us-ascii?Q?sX9Z3H0baIcBC87jLv74RtX4457aGntkwHgmaVLWt7BhDuf6g9mPOtOqry+O?=
 =?us-ascii?Q?Kl0ktbtciwKwu8O+zTEAVFYcmfgvvTbW7xWVSD6CU6Uk2oGLlT5r+7+M5vBt?=
 =?us-ascii?Q?e7iVNhOcZKdYPsDtsHnmkthjmgjjYY1DY/MvkVUa3YZ9lli3QVc7O/IzJjqr?=
 =?us-ascii?Q?hIsQo6iVS4h0N98KSuFC6NPAdCEm/NLb1PUEickokv5mlX6bTiFU7W3oaI81?=
 =?us-ascii?Q?1nGHoNC6yuFIrYBe3YmytD+QpTLi9yFSWm6qneJ7OI6kyfu41R/HV0verkni?=
 =?us-ascii?Q?JvWzR3ISv7XkQQhQrPzqZ+v/dY7Xm8vuN42fzfEyLdp+zPuizP2kEstIqQL+?=
 =?us-ascii?Q?wqkfC0c58Dcb4JyK/PVARrIzJZ6gsB1PVyRm6asQs7TQ8eS2qbfYOv1bDUdq?=
 =?us-ascii?Q?yJ7PP+n71ro8nXN55iIVsA3CRNqSrZQ8uu/ZIzP7oLn89Hbml8jGFnqREG39?=
 =?us-ascii?Q?SzgeSVA9FmS0czt0or1Ly/VzhaWp40aYtnbDeoBCo7gtCBgJiPjx+Wdt6ER7?=
 =?us-ascii?Q?VsB72xw1kJ44cxpGOuU0E/WzPRLEFFvAude9YzK9HhQQVMpcTNHJxM41yh5U?=
 =?us-ascii?Q?DyKDswXfGh5JGQELysiTAQGzZuU73S1rqLzwFrbIAKRqQQkxcB4CfQ1DxmE4?=
 =?us-ascii?Q?hng5vqKSWpyURQrHn8R9pbzAqop0wl4dnDHucxTP4SkF/PetEwn8z3o1N2TD?=
 =?us-ascii?Q?KPj6VPQapvQRo//TFz+B8rY6PHBqa2y/rp56hZAIz2kYUxSarO6CvP3IDsxI?=
 =?us-ascii?Q?raxy4h6y3JBHhqaZgCPJXajOnmElFSqtWRUc9ohc/7s1wAF2WgRqVrXOBS53?=
 =?us-ascii?Q?+qjFCchzYkoujYwVZVBiy4ChU/zA2cY2NLu3m5ETeHOvII/PLW0zH+dyoh0H?=
 =?us-ascii?Q?umfjytN2SheBnSJWst76RDuACQiYJ3OPw8sn?=
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: 18 Apr 2025 20:59:33.3090
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: e6bd79dd-8b54-4925-d983-08dd7ebbeba1
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:
	SN1PEPF0002529D.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH8PR12MB7374

Use of setjmp/longjmp as removed in 2006, but the include remained.
Remove it now.

Fixes: 1bac3b49cd ("Import the current version of talloc...")
Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
---
I truncated the Fixes above.  The full line is:
Fixes: 1bac3b49cd ("Import the current version of talloc from the Samba 3 source base.  This gives us greater confidence that our talloc implementation is "known good".  Remove the OOM handling from consider_message: talloc_set_fail_handler is no longer supported.")
---
 tools/xenstored/core.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/tools/xenstored/core.c b/tools/xenstored/core.c
index 91b2530e5c..835402af81 100644
--- a/tools/xenstored/core.c
+++ b/tools/xenstored/core.c
@@ -35,7 +35,6 @@
 #include <getopt.h>
 #include <signal.h>
 #include <assert.h>
-#include <setjmp.h>
 
 #include <xenevtchn.h>
 #include <xen-tools/xenstore-common.h>
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Fri Apr 18 21:06:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 18 Apr 2025 21:06:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.959413.1351775 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5suQ-0004mS-E7; Fri, 18 Apr 2025 21:06:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 959413.1351775; Fri, 18 Apr 2025 21: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 1u5suQ-0004mL-AZ; Fri, 18 Apr 2025 21:06:02 +0000
Received: by outflank-mailman (input) for mailman id 959413;
 Fri, 18 Apr 2025 21: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=h+zk=XE=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1u5suO-0004mE-VW
 for xen-devel@lists.xenproject.org; Fri, 18 Apr 2025 21:06:00 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on2062c.outbound.protection.outlook.com
 [2a01:111:f403:2415::62c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ed4b72c0-1c98-11f0-9eb0-5ba50f476ded;
 Fri, 18 Apr 2025 23:05:59 +0200 (CEST)
Received: from SA9PR10CA0024.namprd10.prod.outlook.com (2603:10b6:806:a7::29)
 by MN0PR12MB5786.namprd12.prod.outlook.com (2603:10b6:208:375::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.30; Fri, 18 Apr
 2025 21:05:54 +0000
Received: from SN1PEPF0002BA4D.namprd03.prod.outlook.com
 (2603:10b6:806:a7:cafe::e4) by SA9PR10CA0024.outlook.office365.com
 (2603:10b6:806:a7::29) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.22 via Frontend Transport; Fri,
 18 Apr 2025 21:05:54 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 SN1PEPF0002BA4D.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.8655.12 via Frontend Transport; Fri, 18 Apr 2025 21:05: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; Fri, 18 Apr
 2025 16:05:53 -0500
Received: from fedora.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, 18 Apr 2025 16:05:52 -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: ed4b72c0-1c98-11f0-9eb0-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=i22Uep4FZxKgqRRVYa2R4Dv+9VQhUTwQj1gBV9rdxHUWwb4lk4OiBQ45JiT+UGD8YV1inq0uS6uOEJYombvFrn+KrGi7qnm8z4jP6D/Nq4BFUoO1dn/hGqwgPMprsHAvnmlD3ufyOXkw6DAI5nBfNAAinwcdxwSCg48Y1prX1rEEgaAMBZCt4ss3sziuNwH7t+4tpIOwTik5v2aerdEp6hU3DxbAN5k+kBuExUKc4X1kg7Y2PB1BGtlbX4DuTWmfwawztS3G6gVUqkVWBCM/o+jsKULSb8/aBwECCim/tR5rXh5UHE0HR8WD6/5vZlXt+koAKq53yos5W8Pt3UFDfQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-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+1E+txCtmQHoDz+MpR924cVPxE/ZGUWJsLMeLMmJ1s=;
 b=ozwNbtvn1dUFhIrLuM5vo1K9Qx9XMD+X7Kn+U7iW62D0DJUjQLUGZGaRq0LmF0VGihUjldEEfNfEznFoXypkPalo2svuTmLqGl3lIbwLeOIZEUXmJh5m5XyiJYstw/Rdkild+GDDSzrg3Gy1Vxa3t7wrTcz1/NecZb2BVhZ/equcm1cO6xqJk5dBqD8Hl5yrlkhTCwERqn9IwOkJp2761lCl39hZQu8+Vvf3zdBwziWz3E+l7F57ZVZOa+g6qcYeOTubWGiWOuF8LA9TJDxnjtVWgS8MEz952gKP3FsbhpHio4UY8npSgDjOiywDHif2pxTw7hwe2DJRwmMVgMrF9w==
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=y+1E+txCtmQHoDz+MpR924cVPxE/ZGUWJsLMeLMmJ1s=;
 b=ZnKACodau5x6KECUh5ZBjec4eOiYt0gHeyhahUIh39HQZ7bXXQzDrnH5n1/pgu3JRZK4a9sevbsJJ82IPSAEOEfBkkpA5bYEWiZLRu7egs1DY1aob29S84Vi7ZBMpSV2zJRHwT/UWMRb0qvg9l7iqfr1/D2oArLOSjcf5uZPz/o=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=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>, Juergen Gross <jgross@suse.com>
Subject: [PATCH v2 1/2] tools/libxl: Skip invalid IRQs
Date: Fri, 18 Apr 2025 17:05:49 -0400
Message-ID: <20250418210550.542456-2-jason.andryuk@amd.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250418210550.542456-1-jason.andryuk@amd.com>
References: <20250418210550.542456-1-jason.andryuk@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
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: SN1PEPF0002BA4D:EE_|MN0PR12MB5786:EE_
X-MS-Office365-Filtering-Correlation-Id: f279a8c7-1756-4df0-b7d1-08dd7ebcce53
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?UccTCNmmVFOswf6T6VJJ17L3dDlcmffGREZxO9HDBZKe2Of5k6Hg/aEYDbI2?=
 =?us-ascii?Q?4XEc3EYlOJc/bBLhxk49W9ozBQAlqDzW9YIo71rjAD3q3KD5UT7KRNJsaMty?=
 =?us-ascii?Q?MdkCwiJVsly683eANCbzkbV/M+9ial6N5BGPncGKf/vULAbqfsGcdBZKCu0k?=
 =?us-ascii?Q?yBHQSFyZLM8U02YvtfRf8oS2OtFUErhJrtIoYwzLo3JolFzAYVLuOaUcyrlr?=
 =?us-ascii?Q?d/VEAhsMdAWu+YsKOgm2FoYpNFDYM6FZ2wMBrqEukvk+toZqgRTsQw5T93aR?=
 =?us-ascii?Q?Ql2xoR6YamSBqih10VMw39gM7XAMU+zp5WHugzPxux7gauXeQigBB4mbCIm5?=
 =?us-ascii?Q?TxtYVtXSxjNp/su1/PHs/rsJVjWdF3HWCiooeJapNJZ65LB/yQLsvF+gNxEA?=
 =?us-ascii?Q?jeA7XpIRhyZcguH1um7HvsDGl9/pT0gofkPuTLJVmNBkXmmvoXclKoTzSKHw?=
 =?us-ascii?Q?AjQw1YEvePoObrK5GjBcx3gYkYk6B08RMFTuISdEI403gY3pg839LrmHkGg1?=
 =?us-ascii?Q?WKVBQYlOfBC/ouh5Puf7VVN1G92QFMD2geYfd69Ygtf9fTc2RjWGJlRpf2gC?=
 =?us-ascii?Q?C0FrZG6hsnCizHedZGQJR7QBl0IFV2P/bVrtG1rHncwNiUC1SZMHiA7+sJP5?=
 =?us-ascii?Q?qd62cfrU3vCtTpymvUqvdCDOI5zj7y98f33EkWezA02ymCTk7gGL5WHYcrPu?=
 =?us-ascii?Q?RsQ45wV0wCOEsvFkmY4FvJNLOsmdgxVTe0JLS65aNte89VEaelXn9ZgFS8dc?=
 =?us-ascii?Q?mEkfkvJMxxqfLGMngb7y/3KJ/8Vb1xbTzqypbGtyxnz79cNgeX8StF5pVWbm?=
 =?us-ascii?Q?6brorWWO2gTp/fI9P/QG9OK9V9Pih4NaJpg3AljA8fI/9dLzzIrYh41a1FUz?=
 =?us-ascii?Q?zCiHvvjak5a0aW4GVmXIigx1uSAPIKVKEZSTzNiDnT9yirPbV2sM7C/C51Db?=
 =?us-ascii?Q?fk2m/wbw2UwVK6+AduTDTo+5mKAurI3CKE60qprSv2kpPCS1ARy48CmuN46b?=
 =?us-ascii?Q?m02wjfwGJEutnwZ7DxKEMgfiYqmYQh6M9SduqLRCa53TDNk0sBHJxkuHBLGW?=
 =?us-ascii?Q?zil0oG888/ztcJJgklTQHtqDWtruD5ZaFHfZqn1n/pkbKokon+HroeDec6UF?=
 =?us-ascii?Q?0eGli4U1iwAlTATZudOmO9ZYTk/Vwgj8QMILVUJZVhUhe77ai1keXUx1dhJ5?=
 =?us-ascii?Q?veYnA04WOaR49SIJZ3YywgCQhKo9hlclqvGnYfcslVceQZJNbWLGSbVrsAxd?=
 =?us-ascii?Q?l9CO/4MgzUiBYHQkpSqxBTBg0kNYC0K4DEZMmWYg6vOXG9G7mfnS43rLpShT?=
 =?us-ascii?Q?iHewqPyltQfzoyo2kQltcOCL0xnPAPb5IsbRCzSB4/SZz0sOjiRKkAHNQrAS?=
 =?us-ascii?Q?98iX+GkzdyzU0ChqVhQmTuoalnT0Szd4wqSq5JN0WXUcvUDrIAP3yXu/14ZT?=
 =?us-ascii?Q?lSgsbpueDyRFQAYgq0UgfK2A5Ztb2VDVXpEGrAvSY6r0Bqc8ALJ5g0GeuZP/?=
 =?us-ascii?Q?JnVKO6K/J9CDa8zaWwDfgGJvupuBad7HMHGP?=
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: 18 Apr 2025 21:05:53.6241
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: f279a8c7-1756-4df0-b7d1-08dd7ebcce53
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:
	SN1PEPF0002BA4D.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN0PR12MB5786

A PCI device's irq field is an 8-bit number.  A value of 0xff indicates
that the device IRQ is not connected.  Additionally, the Linux ACPI code
can convert these 0xff values to IRQ_NOTCONNECTED(0x80000000) because
"0x80000000 is guaranteed to be outside the available range of
interrupts and easy to distinguish from other possible incorrect
values."  When the hypercall to assign that IRQ fails, device
passthrough as a whole fails.

Add checking for a valid IRQ and skip the IRQ handling for PCI devices
outside that range.  This allows for passthrough of devices without
legacy IRQs.

Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
---
v2:
Remove () from around fscanf()
---
 tools/libs/light/libxl_pci.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/tools/libs/light/libxl_pci.c b/tools/libs/light/libxl_pci.c
index 1647fd6f47..6ddcdef6ad 100644
--- a/tools/libs/light/libxl_pci.c
+++ b/tools/libs/light/libxl_pci.c
@@ -26,6 +26,9 @@
 #define PCI_BDF_XSPATH         "%04x-%02x-%02x-%01x"
 #define PCI_PT_QDEV_ID         "pci-pt-%02x_%02x.%01x"
 
+/* PCI Interrupt Line is an 8-bit value, 0xff means disconnected. */
+#define PCI_IRQ_LINE_LIMIT     0xff
+
 static unsigned int pci_encode_bdf(libxl_device_pci *pci)
 {
     unsigned int value;
@@ -1495,7 +1498,7 @@ static void pci_add_dm_done(libxl__egc *egc,
             LOGED(ERROR, domainid, "Couldn't open %s", sysfs_path);
             goto out_no_irq;
         }
-        if ((fscanf(f, "%u", &irq) == 1) && irq) {
+        if (fscanf(f, "%u", &irq) == 1 && irq > 0 && irq < PCI_IRQ_LINE_LIMIT) {
             r = xc_physdev_map_pirq(ctx->xch, domid, irq, &irq);
             if (r < 0) {
                 LOGED(ERROR, domainid, "xc_physdev_map_pirq irq=%d (error=%d)",
@@ -2257,7 +2260,7 @@ skip_bar:
             goto skip_legacy_irq;
         }
 
-        if ((fscanf(f, "%u", &irq) == 1) && irq) {
+        if (fscanf(f, "%u", &irq) == 1 && irq > 0 && irq < PCI_IRQ_LINE_LIMIT) {
             rc = xc_physdev_unmap_pirq(ctx->xch, domid, irq);
             if (rc < 0) {
                 /*
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Fri Apr 18 21:06:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 18 Apr 2025 21:06:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.959414.1351785 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5suS-00050y-NN; Fri, 18 Apr 2025 21:06:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 959414.1351785; Fri, 18 Apr 2025 21: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 1u5suS-00050r-K6; Fri, 18 Apr 2025 21:06:04 +0000
Received: by outflank-mailman (input) for mailman id 959414;
 Fri, 18 Apr 2025 21:06: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=h+zk=XE=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1u5suR-0004mK-6m
 for xen-devel@lists.xenproject.org; Fri, 18 Apr 2025 21:06:03 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on20606.outbound.protection.outlook.com
 [2a01:111:f403:2412::606])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ebb56653-1c98-11f0-9ffb-bf95429c2676;
 Fri, 18 Apr 2025 23:05:56 +0200 (CEST)
Received: from SA1P222CA0162.NAMP222.PROD.OUTLOOK.COM (2603:10b6:806:3c3::13)
 by PH8PR12MB8430.namprd12.prod.outlook.com (2603:10b6:510:259::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.33; Fri, 18 Apr
 2025 21:05:52 +0000
Received: from SN1PEPF0002BA50.namprd03.prod.outlook.com
 (2603:10b6:806:3c3:cafe::a8) by SA1P222CA0162.outlook.office365.com
 (2603:10b6:806:3c3::13) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.22 via Frontend Transport; Fri,
 18 Apr 2025 21:05:52 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 SN1PEPF0002BA50.mail.protection.outlook.com (10.167.242.73) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Fri, 18 Apr 2025 21:05: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; Fri, 18 Apr
 2025 16:05:50 -0500
Received: from fedora.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, 18 Apr 2025 16:05:50 -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: ebb56653-1c98-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=fhyv/4D2soGGWtgMBUdGxh4ye9aMP07/c4fat1qK9/O7MsguLlzxhuu1pDvV75KaRCCtE3K5kEcKzYVEVY2xc/9BJwmpuluC9dEJRlNJLF4nJYBlAONEa/cnDng8Ke+UVM1ufd5GNbmJGUoV2B8uyPEpnG3UJmP99rGlDvrtBl1BYv5eueQJaILy6tUSaMtLlzfGDZsBvbQ0LxB0QIxLk8AGn8ZgSKGjmNGJoPeRkbAVv9Wr0Z/uy2divbavafFHTTZwtRG/NIZRKKmSWYUMjzYMFTwloJfoV6/aXJX/rfZsPo3BNf1MXBbAXWFzb6GuUWxbFUMvKlPneZCbKy9GxA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=+LNHh1Gj/ncIaYlPLuHd5135Y5DnhQOwxjiOr9VYFJE=;
 b=Xl3bj0FT/i/9r8U66LHUn1P1l7aCRJf4em5jueeXJwU+KfRlegczzTfCjAT9d/PJn8MJnQMMiv9KwcHO4dPo4vll36axLp+pPK3JuGSRFw0iggQqB6Yis8BM3iqXVZprdr/wsbRw4ooLpjf5Vqc7xihwvQDiuafOyfu74cYcmyMEZ4QOreQQmB7n8BcCWsdEFMN+0634GnuqTseW6ypzfWlsyYalfE8nd+gaukHlxGuvwASSr8283VU6A+LnfPl7gS8I7CSaFjDgO1I/ehPBQ1SVKgAdu/yDSAvetJ7MvWRXeSvnS2+yPI8NmnHgNjJ9naAf508MnTQ6GGpRjBO34A==
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=+LNHh1Gj/ncIaYlPLuHd5135Y5DnhQOwxjiOr9VYFJE=;
 b=bZRVoHZRCL34jOAr03CyN0Cb9bl+3DhBMffPM11cvqQYTomTgR+x6KJooFf655JkgwzxWXcZLBGoXwTU++FuvZbM5A7BecHeg/n6/IaC3FgslW15zbTLLb4tntgso+hKl1UbOdwwdxjgUN0S+mX2TIV2WHy6VhVVxAKE8/a1YHo=
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>, Juergen Gross <jgross@suse.com>
Subject: [PATCH v2 0/2] libxl: Skip invalid IRQs
Date: Fri, 18 Apr 2025 17:05:48 -0400
Message-ID: <20250418210550.542456-1-jason.andryuk@amd.com>
X-Mailer: git-send-email 2.49.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
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: SN1PEPF0002BA50:EE_|PH8PR12MB8430:EE_
X-MS-Office365-Filtering-Correlation-Id: 8eedb0c0-f6d8-47aa-a2d4-08dd7ebccd2a
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|376014|82310400026|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?/JB+oohD0mRM3ajMhobRHXuixzMHr+iBk2qHUt3cd0aZoP08JJj9lRNPDqi5?=
 =?us-ascii?Q?RqnW+rrm14njW9fjUaqvuBiuOIYgb2YR2e8ObKBJXwRMA6qd/nyQJNhAqmtq?=
 =?us-ascii?Q?zcRy9x/qX1nOVKhgIzrThBsXW560ez6cyb8ZZvFc3xRrMSfh4T7W/9OuaMN3?=
 =?us-ascii?Q?Ro+kfOXHY3KOo68rx6LdTExczG8XfiWV32LGJ6slJHBBNFS+5NeSa3ofAuI/?=
 =?us-ascii?Q?hYyKMfxo46K+TFqBxBlZoZC6gScM4Rjtr+Km+R0CZKBQF1eKzAWCdFtJ4F3M?=
 =?us-ascii?Q?BaOdj5vidXdfIQd5gW7dHpKoBFFReE86UbWjzfIezJvk3+8PORQZcAP6QMgV?=
 =?us-ascii?Q?fkrUVSVk5HXd0aEdsg2KtYeAvVi4w+/E/SyaD9F/C9J/S897OoBzqociWqdJ?=
 =?us-ascii?Q?meYZ+s5z50vNZYqgOPbtAA+/U7p72XG5aqn8anyHoLGOXpqCUIrEs5eJ+/Tm?=
 =?us-ascii?Q?1AUi0dqbcR7zxez7jERd2NcMI3pzfssf265vzQVm5eiGOcrri1/sHzYeo3/X?=
 =?us-ascii?Q?NdxEQgTU0bx5H04KGq1VORF5A+bXxyd/fVXq1HKOsZbfFelV+xDaTlNoXjBR?=
 =?us-ascii?Q?FrNJwT+Ul+SwwcZBWEX+jVoVEA0ZPtg45za6n65xS1tWVLh6VwypvWj4T/K3?=
 =?us-ascii?Q?PDTuKqi1KdzYjT/jDXFM2VQSAbv/F9lsAYuzB3oxdkja2sdXJxGSkbmE56K4?=
 =?us-ascii?Q?bu+pep/uf9u2Tuqj9fLyLBV6MKf2g5P9cL0EXymfpghR0moI1MIVVkznyZkU?=
 =?us-ascii?Q?fOhZJsjtyJGGiJXvq16t6sY//aEoTg6rCPkNo2ev7bVcPlrZHHVwKSmFAwFn?=
 =?us-ascii?Q?WekHOFVqEGGWWbLCgZQ/lwPeWOgFowhai3QKZ5xk7hO30Gl8bp90+hDOPx0k?=
 =?us-ascii?Q?qSjhVbQ99+gc7zkd4j6nQ+LhM97uN4TbTyK96uYZ9j5prOuc+Imh/yyZlQi0?=
 =?us-ascii?Q?xZVgS7s2OwhsNxk7jqMd7WYjawaPeUxqRtq6SIfuVXXpddOqFs09kMpq+sqZ?=
 =?us-ascii?Q?9VC2vvMt0QptZKXcnrJKNwcd/6MdjFuZcO/7tGwLw+0W/Sxy2iQ9i7mxnVSb?=
 =?us-ascii?Q?q5AtM0Q1j4chp3zY+5vmHRe3D1fTP0ZCGee9uhWNNO60Ge6s8nMEcr8DUutR?=
 =?us-ascii?Q?eHpQKO7spzslzoFYBcYkL/YPChXyJSuDyqs7BbYJGbJ99D3rat0Y4/7RRx+Q?=
 =?us-ascii?Q?T3TwHGNl90aVbJ/mylvI+FXXFXJfrmmweZphclK4bL6uYbN526sIUEdbHYN7?=
 =?us-ascii?Q?MIo7kO+82NY6JZSumg66BSqoZ1KtNHla3/6q3khCLMkIoEIA1qmQ2T+++zhn?=
 =?us-ascii?Q?oIZXBrvQURsirvh1NDtfq96C6WXReIaejsnp0ToOAR0Xv31El0bq4BG/48OI?=
 =?us-ascii?Q?SMlGUoRe9q3sUc9svFik80wBZqwv6KcLS3lvD3UNYMrnK7EzP5BpV4wrdQfH?=
 =?us-ascii?Q?J2v6ZLZ1NBLWDtffbigFSYq34+8xuveOHTzARQ6VAdeKfuUFo8QfYjrA/kVj?=
 =?us-ascii?Q?j+xyx0+MoBH1tQNvZKf2soVDTS2O/NobLpRH?=
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)(82310400026)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Apr 2025 21:05:51.3959
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 8eedb0c0-f6d8-47aa-a2d4-08dd7ebccd2a
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:
	SN1PEPF0002BA50.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH8PR12MB8430

Allow assigning devices without a legacy IRQ.
v2 adds patch 2 to switch to unsigned int.

Jason Andryuk (2):
  tools/libxl: Skip invalid IRQs
  tools/libxl: Switch irq to unsigned int

 tools/libs/light/libxl_pci.c | 23 ++++++++++++++---------
 1 file changed, 14 insertions(+), 9 deletions(-)

-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Fri Apr 18 21:06:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 18 Apr 2025 21:06:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.959415.1351795 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5suU-0005GS-Tp; Fri, 18 Apr 2025 21:06:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 959415.1351795; Fri, 18 Apr 2025 21: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 1u5suU-0005GD-Qz; Fri, 18 Apr 2025 21:06:06 +0000
Received: by outflank-mailman (input) for mailman id 959415;
 Fri, 18 Apr 2025 21:06: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=h+zk=XE=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1u5suT-0004mE-21
 for xen-devel@lists.xenproject.org; Fri, 18 Apr 2025 21:06:05 +0000
Received: from NAM10-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam10on20630.outbound.protection.outlook.com
 [2a01:111:f403:2413::630])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f07361cf-1c98-11f0-9eb0-5ba50f476ded;
 Fri, 18 Apr 2025 23:06:04 +0200 (CEST)
Received: from SA1P222CA0167.NAMP222.PROD.OUTLOOK.COM (2603:10b6:806:3c3::15)
 by CH3PR12MB8754.namprd12.prod.outlook.com (2603:10b6:610:170::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.21; Fri, 18 Apr
 2025 21:05:55 +0000
Received: from SN1PEPF0002BA50.namprd03.prod.outlook.com
 (2603:10b6:806:3c3:cafe::4c) by SA1P222CA0167.outlook.office365.com
 (2603:10b6:806:3c3::15) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.22 via Frontend Transport; Fri,
 18 Apr 2025 21:05:55 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 SN1PEPF0002BA50.mail.protection.outlook.com (10.167.242.73) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Fri, 18 Apr 2025 21:05: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; Fri, 18 Apr
 2025 16:05:55 -0500
Received: from fedora.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, 18 Apr 2025 16:05:54 -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: f07361cf-1c98-11f0-9eb0-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=hSGDG2YDbSaL9inekLO8LBln/ZA9edrIIUDYljVvvm87kxTBAxq2pqLHVxx2GpH6eucwxy8oJDmHyJnyWWMQQOhjnpchgF3RW4LMnHOw6lAltpAyg6b0AfptZhhvAHV51pWBBIdxHdx0CC+xIThgUJuYZiyItbb1U3BGuhELLwTYcByss1ZJtGUi3A0Bkf2ezO+4yf0Jg7fqQNDBGeAME6GgOH8f46bL7ucBvNNVBUKt6aHlhkBOYQgaLXs82zpE+G8PiYOXlYCWansWEKaT4hGNps2M95l9EfcCST5cSGbQk5aliPCx31/84KC6h5jC53lLrlslDl4rUOqeNpYdsg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=oSiAkad66EbvqwDivZ4lwYmjerrf0tw+VQwkzIXpkSw=;
 b=baINv0zqDerRjL7dXF++oLSiQHF1Qu3zqVNkC/CiPSiw3S8nlLy3CxadVGha0iVRw2W1uSyE2RX4s/S0PhL+XkpeKA5+L22HOfDgiaN6bZBG4ibqhyhjAgYvQwll/H+6bGU/1VPGxWhadWGBPbXCIjmeHhw0A8q2tTi6928pKwU6xue/GrAX3Tfu8Oh45S7p3uqHc1PW7xOBiqTwW478p6P+JiWzs5VC+H9PnODK2QrPWO0g41/hJNgDw/tZL95/0heOzcCbWfdgi2do2dqWep3Q2mZF178ABGsGNcFfYe/yyWvgGvi+Q115Ib49pCZFyj0mKKvTFWaBMsLE/4HFWw==
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=oSiAkad66EbvqwDivZ4lwYmjerrf0tw+VQwkzIXpkSw=;
 b=jBAKd1CBZ1Jk9Ttk98nklZKc7wyKGJzbCbgd+jk4kJ2PluSQDUfD+OuVZ9bk5hyuwL01fGJz1l0Qa+u4KoQnFoGEIubLKA36cgz+NKluVicJ3W1rj9UMeWrbHwuHDcb4mm5d3vf65mX6X7pYHM9xHseRGf5dDOo2r9IPS2zT/OY=
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>, Juergen Gross <jgross@suse.com>
Subject: [PATCH v2 2/2] tools/libxl: Switch irq to unsigned int
Date: Fri, 18 Apr 2025 17:05:50 -0400
Message-ID: <20250418210550.542456-3-jason.andryuk@amd.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250418210550.542456-1-jason.andryuk@amd.com>
References: <20250418210550.542456-1-jason.andryuk@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
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: SN1PEPF0002BA50:EE_|CH3PR12MB8754:EE_
X-MS-Office365-Filtering-Correlation-Id: 8a1a9cad-5bed-44e1-fd2c-08dd7ebccf8c
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?Tfc1yBylF1Twjtup+DIw5RHeF21vuOMlGmVp4uNwLVe+wxfJHd0/vka6Pwbx?=
 =?us-ascii?Q?1Yjg55fChNFbwgcwAz1KEHIL2qzpSbdWpEXAExyK5jfnR0WsoASLNSINIlYg?=
 =?us-ascii?Q?aIH3gA/6ZRwuurb4ivzV0PzExiojOxCa41u3y7uf1dkpDrC2C8mjYCrnVz4R?=
 =?us-ascii?Q?tj6DHYhhGEGNyayYoGc1ZQrgRUq6m6alfEeQm2uYPys642PfxX85pW7a6JDj?=
 =?us-ascii?Q?91ZVbR56wgZ56M4PWg5MM/IkU9JMgXCSOLJD+xKbxy+H6EEFIS36O/i91hk7?=
 =?us-ascii?Q?+Ms4NRqip29TKvcju4m3S6ziijSYeJbgBt94PHLROKZ8Pt2LOMkiLX1SWjc5?=
 =?us-ascii?Q?M1ZUm7ZmBiLfNmG6ZyvK9r6k9IGQclniyfNgJBGpEHix2BbCS66FCynJiq5z?=
 =?us-ascii?Q?bMwHz1+gfkurNDKXpr0IUP3LyaSbDvLZwrQIcrdkRrWNo6eG+PkAlrmrWUnD?=
 =?us-ascii?Q?rqpe1AmDVek56YqjGImzpajF0EbbjCApe3vGTNh8xNfQH+lfMeQQE/QtSrP3?=
 =?us-ascii?Q?IKZdQV3YjU0TReDba2t9cXFyNsUc2R8A1QO3Sl76W51DHP9jUpmO4ZNQhm0M?=
 =?us-ascii?Q?iDkfeZGB4Zrb+6ZJOBpn4P+OfP5Bh/47SA+5ZZ/6Hks3eP/eYIgJREZ+QkQi?=
 =?us-ascii?Q?0YW+FsP2wFYA2fYJ55BvXetOoHFWmnKtwQj7FA2cx0O6e7wXLVutira0Aoax?=
 =?us-ascii?Q?Ye191XRhTvo9OBEbn5LixPAbfc41TrxvjwzXxnHfHf236PvJ7c/EUQ0cUkL5?=
 =?us-ascii?Q?4F7O723JxR4W+Qyc5c3oXj6QOpKsEoPb/TP+aQuQA6Nf172Ne235UGn4J2vq?=
 =?us-ascii?Q?p/Rjxg7i5VJUS0ZER8oWFMsx+yn9jRQKyL6aY/bmA8jQWiaUOzYnDUWcqrOU?=
 =?us-ascii?Q?EhUNTxIxNHgSHc7qtm9DKr+opqh4dcenE8IVHaYqB8t6fe/QBFF3zkaUgbys?=
 =?us-ascii?Q?W0svx7F384stcv5BW0VMvEGZFVblNX6ITdX3FOiY63pciCsMprV/4+Dl39y3?=
 =?us-ascii?Q?CBkc9XM1vtxl7zrlLpa8fXq0/B+WyRV1VifX8cAEueZq1Y+7+ApaWU+L7tcU?=
 =?us-ascii?Q?csv9CdcK8SxfqW1NDx3sNqKmAm8DdzbsjAtfZU7qhl2g8xog9yKxXfWkKB/l?=
 =?us-ascii?Q?Mw0Po6CDFzqPBaZAdT0Y73z5zSea1N4zpjIgb/oC4AhjL1xKbbkEySdIxYme?=
 =?us-ascii?Q?JVvqnEWXK1jgCgpBFau22P3uqfJEXRzmSeasKs1idoy8seRthmNwIJOI64Lh?=
 =?us-ascii?Q?wC4fyuZYfFHXQlYtYQ6vSnKtDrdkd7wp9F88qy8+DbOfkVUady51B78xJcK1?=
 =?us-ascii?Q?XrDcoVpC6TsWureoWvp/ZajyLDv/47uCpcxbsGV0M1qmcSokMynmae6UArr+?=
 =?us-ascii?Q?SpkVKbPLEMWKiNizXyCE2P+zlbtAPqhAUwPkEvQ+z+eN6R2ziersq7O6nvE2?=
 =?us-ascii?Q?rCKwHOHQhuRYWSsdkSTcfKUSnd5E+Sj4C/88kOVZ8oLu7BemPatA8q4mBB/o?=
 =?us-ascii?Q?c3l5WVvOtEDwa5b94VwIs+RaPjnVVvPMxd9O?=
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: 18 Apr 2025 21:05:55.6928
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 8a1a9cad-5bed-44e1-fd2c-08dd7ebccf8c
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:
	SN1PEPF0002BA50.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB8754

The PCI device irq is read with fscanf(%u).  Switch the irq variable to
unsigned int to match.

Linux driver/pci/pci-sysfs.c:irq_show() uses %u to print the value.

However, unsigned int irq doesn't compile because of:
error: pointer targets in passing argument 4 of 'xc_physdev_map_pirq' differ in signedness [-Werror=pointer-sign]

Add int pirq to provide the desired type instead of re-using irq.

Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
---
v2:
New
---
 tools/libs/light/libxl_pci.c | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/tools/libs/light/libxl_pci.c b/tools/libs/light/libxl_pci.c
index 6ddcdef6ad..a8460fb3ec 100644
--- a/tools/libs/light/libxl_pci.c
+++ b/tools/libs/light/libxl_pci.c
@@ -1420,8 +1420,8 @@ static void pci_add_dm_done(libxl__egc *egc,
     char *sysfs_path;
     FILE *f;
     unsigned long long start, end, flags, size;
-    int irq, i;
-    int r;
+    unsigned int irq;
+    int i, r;
     uint32_t flag = XEN_DOMCTL_DEV_RDM_RELAXED;
     uint32_t domainid = domid;
     bool isstubdom = libxl_is_stubdom(ctx, domid, &domainid);
@@ -1499,7 +1499,9 @@ static void pci_add_dm_done(libxl__egc *egc,
             goto out_no_irq;
         }
         if (fscanf(f, "%u", &irq) == 1 && irq > 0 && irq < PCI_IRQ_LINE_LIMIT) {
-            r = xc_physdev_map_pirq(ctx->xch, domid, irq, &irq);
+            int pirq = irq;
+
+            r = xc_physdev_map_pirq(ctx->xch, domid, irq, &pirq);
             if (r < 0) {
                 LOGED(ERROR, domainid, "xc_physdev_map_pirq irq=%d (error=%d)",
                     irq, r);
@@ -1507,10 +1509,10 @@ static void pci_add_dm_done(libxl__egc *egc,
                 rc = ERROR_FAIL;
                 goto out;
             }
-            r = xc_domain_irq_permission(ctx->xch, domid, irq, 1);
+            r = xc_domain_irq_permission(ctx->xch, domid, pirq, 1);
             if (r < 0) {
                 LOGED(ERROR, domainid,
-                    "xc_domain_irq_permission irq=%d (error=%d)", irq, r);
+                    "xc_domain_irq_permission irq=%d (error=%d)", pirq, r);
                 fclose(f);
                 rc = ERROR_FAIL;
                 goto out;
@@ -2182,8 +2184,8 @@ static void pci_remove_detached(libxl__egc *egc,
 {
     STATE_AO_GC(prs->aodev->ao);
     libxl_ctx *ctx = libxl__gc_owner(gc);
-    unsigned int start = 0, end = 0, flags = 0, size = 0;
-    int  irq = 0, i, stubdomid = 0;
+    unsigned int start = 0, end = 0, flags = 0, size = 0, irq = 0;
+    int i, stubdomid = 0;
     const char *sysfs_path;
     FILE *f;
     uint32_t domainid = prs->domid;
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Fri Apr 18 21:16:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 18 Apr 2025 21:16:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.959454.1351804 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5t4d-0007vV-QL; Fri, 18 Apr 2025 21:16:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 959454.1351804; Fri, 18 Apr 2025 21:16: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 1u5t4d-0007vO-Nc; Fri, 18 Apr 2025 21:16:35 +0000
Received: by outflank-mailman (input) for mailman id 959454;
 Fri, 18 Apr 2025 21:16: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=UscN=XE=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u5t4a-0007vI-U8
 for xen-devel@lists.xenproject.org; Fri, 18 Apr 2025 21:16:33 +0000
Received: from mail-4316.protonmail.ch (mail-4316.protonmail.ch [185.70.43.16])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 65d839ee-1c9a-11f0-9eb0-5ba50f476ded;
 Fri, 18 Apr 2025 23:16:31 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 65d839ee-1c9a-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1745010989; x=1745270189;
	bh=rVeoN0mIrN4UYSKfWzPhvFsR/ocqVehIIW+FIEqBhoU=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=Qfp/6KzNpC/dpskvAFfyiKE/1OAOxp7ZXo0EghcyojGUE5kF4lGEtQ3BzHNMgj8O0
	 OD9iWJM7Th8beVzVVS2/6ImCOpWNO4RXG28S0zz8qPmW0hdP9IGMwaMruKSMfWvCMS
	 T61ttOkLEkDClVLc8ce9kh2mYfkS1WTNjXu4rGa+ov3DmNEDJzWz1cck7bZbYyZ/u0
	 kiKx4hKCUf/pHabpqfDEfAaCK0Ba5U8pdqLbozGZ/ox+avTI7Ndyc0kbFgEEAJz4cz
	 uyFY3rcpcY46UbLui4JzVyZgdYPg5XfUEshR3SkCmGgNu7BcTfssnLVaCDjdvkChxV
	 vx4YtHbxH4eRg==
Date: Fri, 18 Apr 2025 21:16:27 +0000
To: Alejandro Vallejo <agarciav@amd.com>
From: dmkhn@proton.me
Cc: xen-devel@lists.xenproject.org, "Daniel P. Smith" <dpsmith@apertussolutions.com>, Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>, =?utf-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Jason Andryuk <jason.andryuk@amd.com>
Subject: Re: [PATCH v4 01/13] x86/boot: add cmdline to struct boot_domain
Message-ID: <aALBJ/8YUwu4vl4k@kraken>
In-Reply-To: <20250417124844.11143-2-agarciav@amd.com>
References: <20250417124844.11143-1-agarciav@amd.com> <20250417124844.11143-2-agarciav@amd.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: a947b224a22d72bf854d84031ced56ed0fa2ecad
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Thu, Apr 17, 2025 at 01:48:23PM +0100, Alejandro Vallejo wrote:
> From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
>=20
> 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.
>=20
> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
> Signed-off-by: Alejandro Vallejo <agarciav@amd.com>


Reviewed-by: Denis Mukhin <dmukhin@ford.com>

> ---
> v4:
>   * Manually nullify bd->cmdline before xfree()ing cmdline.
>   * const-ify arguments of domain_cmdline_size()
>   * Add cmdline_len to pvh_load_kernel()
> ---
>  xen/arch/x86/hvm/dom0_build.c          | 31 ++++++++--------
>  xen/arch/x86/include/asm/boot-domain.h |  1 +
>  xen/arch/x86/pv/dom0_build.c           |  4 +-
>  xen/arch/x86/setup.c                   | 51 ++++++++++++++++++++------
>  4 files changed, 57 insertions(+), 30 deletions(-)
>=20
> diff --git a/xen/arch/x86/hvm/dom0_build.c b/xen/arch/x86/hvm/dom0_build.=
c
> index 2a094b3145..49832f921c 100644
> --- a/xen/arch/x86/hvm/dom0_build.c
> +++ b/xen/arch/x86/hvm/dom0_build.c
> @@ -653,7 +653,7 @@ static int __init pvh_load_kernel(
>      void *image_start =3D image_base + image->headroom;
>      unsigned long image_len =3D image->size;
>      unsigned long initrd_len =3D initrd ? initrd->size : 0;
> -    const char *cmdline =3D image->cmdline_pa ? __va(image->cmdline_pa) =
: NULL;
> +    unsigned long cmdline_len =3D bd->cmdline ? strlen(bd->cmdline) + 1 =
: 0;
>      const char *initrd_cmdline =3D NULL;
>      struct elf_binary elf;
>      struct elf_dom_parms parms;
> @@ -736,8 +736,7 @@ static int __init pvh_load_kernel(
>              initrd =3D NULL;
>      }
>=20
> -    if ( cmdline )
> -        extra_space +=3D elf_round_up(&elf, strlen(cmdline) + 1);
> +    extra_space +=3D elf_round_up(&elf, cmdline_len);
>=20
>      last_addr =3D find_memory(d, &elf, extra_space);
>      if ( last_addr =3D=3D INVALID_PADDR )
> @@ -778,21 +777,21 @@ static int __init pvh_load_kernel(
>      /* Free temporary buffers. */
>      free_boot_modules();
>=20
> -    if ( cmdline !=3D NULL )
> +    rc =3D hvm_copy_to_guest_phys(last_addr, bd->cmdline, cmdline_len, v=
);
> +    if ( rc )
>      {
> -        rc =3D hvm_copy_to_guest_phys(last_addr, cmdline, strlen(cmdline=
) + 1, v);
> -        if ( rc )
> -        {
> -            printk("Unable to copy guest command line\n");
> -            return rc;
> -        }
> -        start_info.cmdline_paddr =3D last_addr;
> -        /*
> -         * Round up to 32/64 bits (depending on the guest kernel bitness=
) so
> -         * the modlist/start_info is aligned.
> -         */
> -        last_addr +=3D elf_round_up(&elf, strlen(cmdline) + 1);
> +        printk("Unable to copy guest command line\n");

Side note: I think it makes sense to add domain ID to all printouts in
pvh_load_kernel(). E.g. block under elf_xen_parse() logs domain ID.

> +        return rc;
>      }
> +
> +    start_info.cmdline_paddr =3D cmdline_len ? last_addr : 0;
> +
> +    /*
> +     * Round up to 32/64 bits (depending on the guest kernel bitness) so
> +     * the modlist/start_info is aligned.
> +     */
> +    last_addr +=3D elf_round_up(&elf, cmdline_len);
> +
>      if ( initrd !=3D NULL )
>      {
>          rc =3D hvm_copy_to_guest_phys(last_addr, &mod, sizeof(mod), v);
> diff --git a/xen/arch/x86/include/asm/boot-domain.h b/xen/arch/x86/includ=
e/asm/boot-domain.h
> index fcbedda0f0..d7c6042e25 100644
> --- a/xen/arch/x86/include/asm/boot-domain.h
> +++ b/xen/arch/x86/include/asm/boot-domain.h
> @@ -15,6 +15,7 @@ struct boot_domain {
>=20
>      struct boot_module *kernel;
>      struct boot_module *module;
> +    const char *cmdline;
>=20
>      struct domain *d;
>  };
> diff --git a/xen/arch/x86/pv/dom0_build.c b/xen/arch/x86/pv/dom0_build.c
> index b485eea05f..e1b78d47c2 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(const struct boot_do=
main *bd)
>      }
>=20
>      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))=
;
>=20
>  #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 3c257f0bad..4df012460d 100644
> --- a/xen/arch/x86/setup.c
> +++ b/xen/arch/x86/setup.c
> @@ -978,10 +978,30 @@ static unsigned int __init copy_bios_e820(struct e8=
20entry *map, unsigned int li
>      return n;
>  }
>=20
> -static struct domain *__init create_dom0(struct boot_info *bi)
> +static size_t __init domain_cmdline_size(const struct boot_info *bi,
> +                                         const struct boot_domain *bd)
>  {
> -    static char __initdata cmdline[MAX_GUEST_CMDLINE];
> +    size_t s =3D bi->kextra ? strlen(bi->kextra) : 0;
> +
> +    s +=3D bd->kernel->cmdline_pa ? strlen(__va(bd->kernel->cmdline_pa))=
 : 0;
>=20
> +    if ( s =3D=3D 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 w=
ith one
> +     * extra char to hold \0.
> +     */
> +    s +=3D strlen(" noapic") + strlen(" acpi=3D") + sizeof(acpi_param) +=
 1;
> +
> +    return s;
> +}
> +
> +static struct domain *__init create_dom0(struct boot_info *bi)
> +{
> +    char *cmdline =3D NULL;
> +    size_t cmdline_size;
>      struct xen_domctl_createdomain dom0_cfg =3D {
>          .flags =3D IS_ENABLED(CONFIG_TBOOT) ? XEN_DOMCTL_CDF_s3_integrit=
y : 0,
>          .max_evtchn_port =3D -1,
> @@ -1020,20 +1040,24 @@ static struct domain *__init create_dom0(struct b=
oot_info *bi)
>      if ( alloc_dom0_vcpu0(d) =3D=3D NULL )
>          panic("Error creating %pdv0\n", d);
>=20
> -    /* Grab the DOM0 command line. */
> -    if ( bd->kernel->cmdline_pa || bi->kextra )
> +    cmdline_size =3D domain_cmdline_size(bi, bd);
> +    if ( cmdline_size )
>      {
> +        if ( !(cmdline =3D 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->l=
oader));
> +            strlcpy(cmdline,
> +                    cmdline_cook(__va(bd->kernel->cmdline_pa), bi->loade=
r),
> +                    cmdline_size);
>=20
>          if ( bi->kextra )
>              /* kextra always includes exactly one leading space. */
> -            safe_strcat(cmdline, bi->kextra);
> +            strlcat(cmdline, bi->kextra, cmdline_size);
>=20
>          /* Append any extra parameters. */
>          if ( skip_ioapic_setup && !strstr(cmdline, "noapic") )
> -            safe_strcat(cmdline, " noapic");
> +            strlcat(cmdline, " noapic", cmdline_size);
>=20
>          if ( (strlen(acpi_param) =3D=3D 0) && acpi_disabled )
>          {
> @@ -1043,17 +1067,20 @@ static struct domain *__init create_dom0(struct b=
oot_info *bi)
>=20
>          if ( (strlen(acpi_param) !=3D 0) && !strstr(cmdline, "acpi=3D") =
)
>          {
> -            safe_strcat(cmdline, " acpi=3D");
> -            safe_strcat(cmdline, acpi_param);
> +            strlcat(cmdline, " acpi=3D", cmdline_size);
> +            strlcat(cmdline, acpi_param, cmdline_size);
>          }
> -
> -        bd->kernel->cmdline_pa =3D __pa(cmdline);
> +        bd->kernel->cmdline_pa =3D 0;
> +        bd->cmdline =3D cmdline;
>      }
>=20
>      bd->d =3D d;
>      if ( construct_dom0(bd) !=3D 0 )
>          panic("Could not construct domain 0\n");
>=20
> +    bd->cmdline =3D NULL;
> +    xfree(cmdline);
> +
>      return d;
>  }
>=20
> --
> 2.43.0
>=20
>=20



From xen-devel-bounces@lists.xenproject.org Fri Apr 18 21:55:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 18 Apr 2025 21:55:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.959479.1351815 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5tgT-00065O-RQ; Fri, 18 Apr 2025 21:55:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 959479.1351815; Fri, 18 Apr 2025 21:55:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5tgT-00065H-Ne; Fri, 18 Apr 2025 21:55:41 +0000
Received: by outflank-mailman (input) for mailman id 959479;
 Fri, 18 Apr 2025 21:55: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=UscN=XE=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u5tgR-00065B-FU
 for xen-devel@lists.xenproject.org; Fri, 18 Apr 2025 21:55:40 +0000
Received: from mail-24416.protonmail.ch (mail-24416.protonmail.ch
 [109.224.244.16]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id dc89bef4-1c9f-11f0-9eb0-5ba50f476ded;
 Fri, 18 Apr 2025 23:55:37 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: dc89bef4-1c9f-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1745013335; x=1745272535;
	bh=OIfcLVid6psy/hJ4DVPe0lp09d3coURkz8DGUU4fDsE=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=gJfiAEuzTTBaH/Ga1/xKf+F0brP54blPvKf301Vk4uCtmVC6Bhrmzwi/8XJAA8zE4
	 l3tD0afTBBxOX2RgevoNpxZ5Py0hM8MpPBvX2D5Ew11ly/RI0IagjqzqB9OeDbdC/8
	 rHjMgY80/LC4O4qS44lrY8zF/RsppCPX7dJXWCtCJSKwa38i9h8RrczLbunpmDnr5h
	 Q7VyIK+4LGM0xgpKHO8tHzabZctpBd3EiLvf4KIT1Xmpzp3qjWBPcw7NG/H5ZlWfmY
	 4jJ026w3OAsnweax4ucL5ynPreIgHtsiOcz7szhwc1bmzb8YY/2STPBQV+OWnpjkd8
	 mm7wH+5O+oMcQ==
Date: Fri, 18 Apr 2025 21:55:29 +0000
To: Alejandro Vallejo <agarciav@amd.com>
From: dmkhn@proton.me
Cc: xen-devel@lists.xenproject.org, "Daniel P. Smith" <dpsmith@apertussolutions.com>, Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>, =?utf-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, Jason Andryuk <jason.andryuk@amd.com>
Subject: Re: [PATCH v4 03/13] common/hyperlaunch: introduce the domain builder
Message-ID: <aALKTolElzpGmD60@kraken>
In-Reply-To: <20250417124844.11143-4-agarciav@amd.com>
References: <20250417124844.11143-1-agarciav@amd.com> <20250417124844.11143-4-agarciav@amd.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 728179361440caf02256ff384a8e010cca674479
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Thu, Apr 17, 2025 at 01:48:25PM +0100, Alejandro Vallejo wrote:
> From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
>=20
> 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.
>=20
> No functional change intended.
>=20
> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
> Signed-off-by: Alejandro Vallejo <agarciav@amd.com>
> ---
> v4:
>   * Moved from arch/x86/ to common/
>   * gated all of domain-builder/ on CONFIG_BOOT_INFO
>   * Hide the domain builder submenu for !X86
>   * Factor out the "hyperlaunch_enabled =3D false" toggle core.c
>   * Removed stub inline, as DCE makes it unnecessary
>   * Adjusted printks.
> ---
>  xen/arch/x86/include/asm/bootinfo.h |  3 ++
>  xen/arch/x86/setup.c                | 17 +++++----
>  xen/common/Makefile                 |  1 +
>  xen/common/domain-builder/Makefile  |  2 ++
>  xen/common/domain-builder/core.c    | 56 +++++++++++++++++++++++++++++
>  xen/common/domain-builder/fdt.c     | 37 +++++++++++++++++++
>  xen/common/domain-builder/fdt.h     | 12 +++++++
>  xen/include/xen/domain-builder.h    |  9 +++++
>  8 files changed, 131 insertions(+), 6 deletions(-)
>  create mode 100644 xen/common/domain-builder/Makefile
>  create mode 100644 xen/common/domain-builder/core.c
>  create mode 100644 xen/common/domain-builder/fdt.c
>  create mode 100644 xen/common/domain-builder/fdt.h
>  create mode 100644 xen/include/xen/domain-builder.h
>=20
> diff --git a/xen/arch/x86/include/asm/bootinfo.h b/xen/arch/x86/include/a=
sm/bootinfo.h
> index 3afc214c17..82c2650fcf 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,
>  };
>=20
>  struct boot_module {
> @@ -80,6 +81,8 @@ struct boot_info {
>      paddr_t memmap_addr;
>      size_t memmap_length;
>=20
> +    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/setup.c b/xen/arch/x86/setup.c
> index 4df012460d..ccc57cc70a 100644
> --- a/xen/arch/x86/setup.c
> +++ b/xen/arch/x86/setup.c
> @@ -5,6 +5,7 @@
>  #include <xen/cpuidle.h>
>  #include <xen/dmi.h>
>  #include <xen/domain.h>
> +#include <xen/domain-builder.h>
>  #include <xen/domain_page.h>
>  #include <xen/efi.h>
>  #include <xen/err.h>
> @@ -1282,9 +1283,12 @@ void asmlinkage __init noreturn __start_xen(void)
>                 bi->nr_modules);
>      }
>=20
> -    /* Dom0 kernel is always first */
> -    bi->mods[0].type =3D BOOTMOD_KERNEL;
> -    bi->domains[0].kernel =3D &bi->mods[0];
> +    builder_init(bi);
> +
> +    /* Find first unknown boot module to use as dom0 kernel */
> +    i =3D first_boot_module_index(bi, BOOTMOD_UNKNOWN);
> +    bi->mods[i].type =3D BOOTMOD_KERNEL;
> +    bi->domains[0].kernel =3D &bi->mods[i];

Nit: perhaps add convenience aliases for bi->domains[0] (e.g. dom0) and=20
for bi->mods[0] (e.g. mod)?

>=20
>      if ( pvh_boot )
>      {
> @@ -1467,8 +1471,9 @@ void asmlinkage __init noreturn __start_xen(void)
>          xen->size  =3D __2M_rwdata_end - _stext;
>      }
>=20
> -    bi->mods[0].headroom =3D
> -        bzimage_headroom(bootstrap_map_bm(&bi->mods[0]), bi->mods[0].siz=
e);
> +    bi->domains[0].kernel->headroom =3D
> +        bzimage_headroom(bootstrap_map_bm(bi->domains[0].kernel),
> +                         bi->domains[0].kernel->size);
>      bootstrap_unmap();
>=20
>  #ifndef highmem_start
> @@ -1592,7 +1597,7 @@ void asmlinkage __init noreturn __start_xen(void)
>  #endif
>      }
>=20
> -    if ( bi->mods[0].headroom && !bi->mods[0].relocated )
> +    if ( bi->domains[0].kernel->headroom && !bi->domains[0].kernel->relo=
cated )
>          panic("Not enough memory to relocate the dom0 kernel image\n");
>      for ( i =3D 0; i < bi->nr_modules; ++i )
>      {
> diff --git a/xen/common/Makefile b/xen/common/Makefile
> index 98f0873056..565837bc71 100644
> --- a/xen/common/Makefile
> +++ b/xen/common/Makefile
> @@ -11,6 +11,7 @@ obj-$(filter-out $(CONFIG_X86),$(CONFIG_ACPI)) +=3D dev=
ice.o
>  obj-$(CONFIG_HAS_DEVICE_TREE) +=3D device-tree/
>  obj-$(CONFIG_IOREQ_SERVER) +=3D dm.o
>  obj-y +=3D domain.o
> +obj-$(CONFIG_HAS_BOOT_INFO) +=3D domain-builder/
>  obj-y +=3D event_2l.o
>  obj-y +=3D event_channel.o
>  obj-$(CONFIG_EVTCHN_FIFO) +=3D event_fifo.o
> diff --git a/xen/common/domain-builder/Makefile b/xen/common/domain-build=
er/Makefile
> new file mode 100644
> index 0000000000..b10cd56b28
> --- /dev/null
> +++ b/xen/common/domain-builder/Makefile
> @@ -0,0 +1,2 @@
> +obj-$(CONFIG_DOMAIN_BUILDER) +=3D fdt.init.o
> +obj-y +=3D core.init.o
> diff --git a/xen/common/domain-builder/core.c b/xen/common/domain-builder=
/core.c
> new file mode 100644
> index 0000000000..a5b21fc179
> --- /dev/null
> +++ b/xen/common/domain-builder/core.c
> @@ -0,0 +1,56 @@
> +/* 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)
> +{
> +    bi->hyperlaunch_enabled =3D false;
> +
> +    if ( IS_ENABLED(CONFIG_DOMAIN_BUILDER) )

I would re-organize the code to remove one level of indentation, e.g.:

       if ( !IS_ENABLED(CONFIG_DOMAIN_BUILDER) )
            return;

       switch ( ret =3D has_hyperlaunch_fdt(bi) )
       ...

or even add #ifdef CONFIG_DOMAIN_BUILDER for builder_init() in the header f=
ile.

What do you think?

> +    {
> +        int ret;
> +
> +        switch ( ret =3D has_hyperlaunch_fdt(bi) )
> +        {
> +        case 0:
> +            printk(XENLOG_DEBUG "DT found: hyperlaunch\n");
> +            bi->hyperlaunch_enabled =3D true;
> +            bi->mods[0].type =3D BOOTMOD_FDT;
> +            break;
> +
> +        case -EINVAL:
> +            /* No DT found */
> +            break;
> +
> +        case -ENOENT:
> +        case -ENODATA:

Looks like this code accounts for the follow on change: current implementat=
ion
only returns -EINVAL or 0.

Is it possible to convert has_hyperlaunch_fdt() to a simple predicate?

> +            printk(XENLOG_DEBUG "DT found: non-hyperlaunch (%d)\n", ret)=
;
> +            bi->mods[0].type =3D BOOTMOD_FDT;
> +            break;
> +
> +        default:
> +            printk(XENLOG_ERR "unknown error (%d) checking hyperlaunch D=
T\n",
> +                   ret);
> +            break;
> +        }
> +    }
> +}
> +
> +/*
> + * 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/domain-builder/fdt.c b/xen/common/domain-builder/=
fdt.c
> new file mode 100644
> index 0000000000..aaf8c1cc16
> --- /dev/null
> +++ b/xen/common/domain-builder/fdt.c
> @@ -0,0 +1,37 @@
> +/* 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 <asm/bootinfo.h>
> +#include <asm/page.h>
> +#include <asm/setup.h>
> +
> +#include "fdt.h"
> +
> +int __init has_hyperlaunch_fdt(const struct boot_info *bi)

I think the function can return `bool` in current patch.

> +{
> +    int ret =3D 0;
> +    const void *fdt =3D bootstrap_map_bm(&bi->mods[HYPERLAUNCH_MODULE_ID=
X]);
> +
> +    if ( !fdt || fdt_check_header(fdt) < 0 )
> +        ret =3D -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/common/domain-builder/fdt.h b/xen/common/domain-builder/=
fdt.h
> new file mode 100644
> index 0000000000..97a45a6ec4
> --- /dev/null
> +++ b/xen/common/domain-builder/fdt.h
> @@ -0,0 +1,12 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +#ifndef __XEN_DOMAIN_BUILDER_FDT_H__
> +#define __XEN_DOMAIN_BUILDER_FDT_H__
> +
> +struct boot_info;
> +
> +/* hyperlaunch fdt is required to be module 0 */
> +#define HYPERLAUNCH_MODULE_IDX 0
> +
> +int has_hyperlaunch_fdt(const struct boot_info *bi);
> +
> +#endif /* __XEN_DOMAIN_BUILDER_FDT_H__ */
> diff --git a/xen/include/xen/domain-builder.h b/xen/include/xen/domain-bu=
ilder.h
> new file mode 100644
> index 0000000000..ac2b84775d
> --- /dev/null
> +++ b/xen/include/xen/domain-builder.h
> @@ -0,0 +1,9 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +#ifndef __XEN_DOMAIN_BUILDER_H__
> +#define __XEN_DOMAIN_BUILDER_H__
> +
> +struct boot_info;
> +
> +void builder_init(struct boot_info *bi);
> +
> +#endif /* __XEN_DOMAIN_BUILDER_H__ */
> --
> 2.43.0
>=20
>=20



From xen-devel-bounces@lists.xenproject.org Fri Apr 18 22:11:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 18 Apr 2025 22:11:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.959493.1351828 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5tvt-0000yc-2z; Fri, 18 Apr 2025 22:11:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 959493.1351828; Fri, 18 Apr 2025 22:11: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 1u5tvt-0000yV-0H; Fri, 18 Apr 2025 22:11:37 +0000
Received: by outflank-mailman (input) for mailman id 959493;
 Fri, 18 Apr 2025 22:11: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=UscN=XE=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u5tvs-0000yL-0O
 for xen-devel@lists.xenproject.org; Fri, 18 Apr 2025 22:11:36 +0000
Received: from mail-10629.protonmail.ch (mail-10629.protonmail.ch
 [79.135.106.29]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0f1b7b4a-1ca2-11f0-9ffb-bf95429c2676;
 Sat, 19 Apr 2025 00:11:21 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0f1b7b4a-1ca2-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1745014279; x=1745273479;
	bh=UzduznCgt0YnDMXSkAmeG5qYCV27giTohdJwNzVw3QQ=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=h5Z66SK18gnRYfc9nUTED9ddNiuNtck5YcH2mlcCJq4fLRXDApG5vMJq+xS1qZlNs
	 zn12qR+crHBIwBwEHGUEJG3exe+1cSW8xKeeccPnNSEe/nc66Ffrn6cG6/iov12vJ5
	 iUjLzQ8+hMMJZis9dzezgQsY8EMbouP+yIGnX3CrgDaaSzmWNgAMKegLI+cavex3IN
	 yorj/V4OD17TVSC3qo9SNqiTiO/P2z6Tfi2L1BhNgdFlTSuYQ0gX1gudVqlrBk9FYv
	 mA8Cb7UscEe20anPgXjDzpZESKUcSW3n2lz5yP00u8w3LXYjxzxN5R9tEeFi1YItg6
	 lQohEIw1wGjSw==
Date: Fri, 18 Apr 2025 22:11:15 +0000
To: Alejandro Vallejo <agarciav@amd.com>
From: dmkhn@proton.me
Cc: xen-devel@lists.xenproject.org, "Daniel P. Smith" <dpsmith@apertussolutions.com>, Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>, =?utf-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, Jason Andryuk <jason.andryuk@amd.com>
Subject: Re: [PATCH v4 04/13] x86/hyperlaunch: initial support for hyperlaunch device tree
Message-ID: <aALN/46JGBJTBCMm@kraken>
In-Reply-To: <20250417124844.11143-5-agarciav@amd.com>
References: <20250417124844.11143-1-agarciav@amd.com> <20250417124844.11143-5-agarciav@amd.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: d7daae00b9856b855276a0b5e6d1c167a9aea42c
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Thu, Apr 17, 2025 at 01:48:26PM +0100, Alejandro Vallejo wrote:
> From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
>=20
> Add the ability to detect both a formal hyperlaunch device tree or a dom0=
less
> device tree. If the hyperlaunch device tree is found, then count the numb=
er of
> domain entries, reporting an error if more than one is found.
>=20
> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
> Signed-off-by: Alejandro Vallejo <agarciav@amd.com>
> ---
> v4:
>   * Panic if we're booting on hyperlaunch, but walking the DTB fails.
>   * Remove inconsequential "else" clause in fdt.c
>   * Remove stub, as it's not required due to DCE
>   * Use min() rather than open-code it
> ---
>  xen/arch/x86/include/asm/bootinfo.h |  1 +
>  xen/common/domain-builder/core.c    | 11 +++++
>  xen/common/domain-builder/fdt.c     | 63 +++++++++++++++++++++++++++++
>  xen/common/domain-builder/fdt.h     |  1 +
>  4 files changed, 76 insertions(+)
>=20
> diff --git a/xen/arch/x86/include/asm/bootinfo.h b/xen/arch/x86/include/a=
sm/bootinfo.h
> index 82c2650fcf..1e3d582e45 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;
>=20
>      unsigned int nr_modules;
> +    unsigned int nr_domains;
>      struct boot_module mods[MAX_NR_BOOTMODS + 1];
>      struct boot_domain domains[MAX_NR_BOOTDOMS];
>  };
> diff --git a/xen/common/domain-builder/core.c b/xen/common/domain-builder=
/core.c
> index a5b21fc179..3b062e85ec 100644
> --- a/xen/common/domain-builder/core.c
> +++ b/xen/common/domain-builder/core.c
> @@ -43,6 +43,17 @@ void __init builder_init(struct boot_info *bi)
>              break;
>          }
>      }
> +
> +    if ( bi->hyperlaunch_enabled )
> +    {
> +        int ret;
> +
> +        printk(XENLOG_INFO "Hyperlaunch configuration:\n");
> +        if ( (ret =3D walk_hyperlaunch_fdt(bi)) < 0 )
> +            panic("Walk of device tree failed (%d)\n", ret);
> +
> +        printk(XENLOG_INFO "  number of domains: %u\n", bi->nr_domains);
> +    }
>  }
>=20
>  /*
> diff --git a/xen/common/domain-builder/fdt.c b/xen/common/domain-builder/=
fdt.c
> index aaf8c1cc16..b5ff8220da 100644
> --- a/xen/common/domain-builder/fdt.c
> +++ b/xen/common/domain-builder/fdt.c
> @@ -13,6 +13,36 @@
>=20
>  #include "fdt.h"
>=20
> +static int __init find_hyperlaunch_node(const void *fdt)
> +{
> +    int hv_node =3D fdt_path_offset(fdt, "/chosen/hypervisor");
> +
> +    if ( hv_node >=3D 0 )
> +    {
> +        /* Anything other than zero indicates no match */
> +        if ( fdt_node_check_compatible(fdt, hv_node, "hypervisor,xen") )
> +            return -ENODATA;
> +
> +        return hv_node;
> +    }
> +    else
> +    {
> +        /* Look for dom0less config */
> +        int node, chosen_node =3D 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") )
> +                return chosen_node;
> +        }
> +    }
> +
> +    return -ENODATA;
> +}
> +
>  int __init has_hyperlaunch_fdt(const struct boot_info *bi)
>  {
>      int ret =3D 0;
> @@ -20,7 +50,40 @@ int __init has_hyperlaunch_fdt(const struct boot_info =
*bi)
>=20
>      if ( !fdt || fdt_check_header(fdt) < 0 )
>          ret =3D -EINVAL;
> +    else
> +        ret =3D find_hyperlaunch_node(fdt);
> +
> +    bootstrap_unmap();
> +
> +    return min(0, ret);
> +}
> +
> +int __init walk_hyperlaunch_fdt(struct boot_info *bi)
> +{
> +    int ret =3D 0, hv_node, node;
> +    const void *fdt =3D bootstrap_map_bm(&bi->mods[HYPERLAUNCH_MODULE_ID=
X]);
> +
> +    if ( unlikely(!fdt) )
> +        return -EINVAL;

I think this check can be converted to ASSERT() since walk_hyperlaunch_fdt(=
)
will be called after has_hyperlaunch_fdt() where condition is checked.

> +
> +    hv_node =3D find_hyperlaunch_node(fdt);
> +    if ( hv_node < 0 )
> +    {
> +        ret =3D hv_node;
> +        goto err_out;
> +    }
> +
> +    fdt_for_each_subnode(node, fdt, hv_node)
> +    {
> +        if ( !fdt_node_check_compatible(fdt, node, "xen,domain") )
> +            bi->nr_domains++;
> +    }
> +
> +    /* Until multi-domain construction is added, throw an error */
> +    if ( bi->nr_domains !=3D 1 )
> +        printk(XENLOG_ERR "hyperlaunch only supports dom0 construction\n=
");
>=20
> + err_out:
>      bootstrap_unmap();
>=20
>      return ret;
> diff --git a/xen/common/domain-builder/fdt.h b/xen/common/domain-builder/=
fdt.h
> index 97a45a6ec4..955aead497 100644
> --- a/xen/common/domain-builder/fdt.h
> +++ b/xen/common/domain-builder/fdt.h
> @@ -8,5 +8,6 @@ struct boot_info;
>  #define HYPERLAUNCH_MODULE_IDX 0
>=20
>  int has_hyperlaunch_fdt(const struct boot_info *bi);
> +int walk_hyperlaunch_fdt(struct boot_info *bi);
>=20
>  #endif /* __XEN_DOMAIN_BUILDER_FDT_H__ */
> --
> 2.43.0
>=20
>=20



From xen-devel-bounces@lists.xenproject.org Fri Apr 18 22:30:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 18 Apr 2025 22:30:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.959512.1351862 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5uE1-0004Bc-Px; Fri, 18 Apr 2025 22:30:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 959512.1351862; Fri, 18 Apr 2025 22: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 1u5uE1-0004BV-NC; Fri, 18 Apr 2025 22:30:21 +0000
Received: by outflank-mailman (input) for mailman id 959512;
 Fri, 18 Apr 2025 22: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=UscN=XE=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u5uDy-0004BP-Qr
 for xen-devel@lists.xenproject.org; Fri, 18 Apr 2025 22:30:19 +0000
Received: from mail-4322.protonmail.ch (mail-4322.protonmail.ch [185.70.43.22])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b103a6df-1ca4-11f0-9ffb-bf95429c2676;
 Sat, 19 Apr 2025 00:30:12 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b103a6df-1ca4-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1745015410; x=1745274610;
	bh=yOmMv4r0bmdtj8gYjrO3FpqGdbgw8UmxMH2/MjqIak0=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=XSkcYN7UIuMfXvavb2d1OWkq9GxDMdiS6txEd0N+K267rZrMaahP4BpkFmq4jP7ec
	 ZeBn9bYdp4Tlaz5Hhr7DpBpZl9ZAJtTjAjmGNEITKU6ttGUTmm8JYy0dW4hpDJs3Ac
	 gKm/6tY4zxapAj9ngObedqJnd3iEkek2aTnBLEk7KTqewLQp19rBZG0CcgCP9TFnm/
	 fjha0z2vzSqtWO0R3iRrUOZylOBhhmiWrfQqtMFpeXIdGva3HbNyTl2ceH9yRTibxL
	 vA/v8ITvYF7U97UAVHtfcCFKaVXJ0/vMyw+gmxneVSlspRojEJEJGLlMLY6hz+GGj7
	 3iZHbZ9vPmRrA==
Date: Fri, 18 Apr 2025 22:30:07 +0000
To: Alejandro Vallejo <agarciav@amd.com>
From: dmkhn@proton.me
Cc: xen-devel@lists.xenproject.org, Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>, =?utf-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>, Bertrand Marquis <bertrand.marquis@arm.com>, Jason Andryuk <jason.andryuk@amd.com>
Subject: Re: [PATCH v4 05/13] x86/hyperlaunch: Add helpers to locate multiboot modules
Message-ID: <aALSauQee7Z3O8Bj@kraken>
In-Reply-To: <20250417124844.11143-6-agarciav@amd.com>
References: <20250417124844.11143-1-agarciav@amd.com> <20250417124844.11143-6-agarciav@amd.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 5c74d651b7676a213b58f9693db0e5a79410a251
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Thu, Apr 17, 2025 at 01:48:27PM +0100, Alejandro Vallejo wrote:
> Hyperlaunch mandates either a reg or module-index DT prop on nodes that
> contain `multiboot,module" under their "compatible" prop. This patch
> introduces a helper to generically find such index, appending the module
> to the list of modules if it wasn't already (i.e: because it's given via
> the "reg" prop).
>=20
> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
> Signed-off-by: Alejandro Vallejo <agarciav@amd.com>
> ---
> v4:
>   * Remove stray reg prop parser in libfdt-xen.h.
>   * Remove fdt32_as_uX accessors.
>   * Brough fdt_prop_as_u32() accesor from later patches.
>     * So it can be used in place of a hardcoded fdt32_as_u32().
>   * Limited MAX_NR_BOOTMODS to INT_MAX.
>   * Preserved BOOTMOD_XEN on module append logic.
>   * Add missing bounds check to module-index parsed in multiboot module h=
elper.
>   * Converted idx variable to uint32_t for better bounds checking.
>   * Braces from switch statement to conform to coding style.
>   * Added missing XENLOG_X.
>   * Print address_cells and size_cells on error parsing reg properties.
>   * Added (transient) missing declaration for extern helper.
>     * becomes static on the next patch.
> ---
>  xen/common/domain-builder/fdt.c     | 162 ++++++++++++++++++++++++++++
>  xen/common/domain-builder/fdt.h     |   2 +
>  xen/include/xen/domain-builder.h    |   3 +
>  xen/include/xen/libfdt/libfdt-xen.h |  11 ++
>  4 files changed, 178 insertions(+)
>=20
> diff --git a/xen/common/domain-builder/fdt.c b/xen/common/domain-builder/=
fdt.c
> index b5ff8220da..d73536fed6 100644
> --- a/xen/common/domain-builder/fdt.c
> +++ b/xen/common/domain-builder/fdt.c
> @@ -13,6 +13,168 @@
>=20
>  #include "fdt.h"
>=20
> +/*
> + * Unpacks a "reg" property into its address and size constituents.
> + *
> + * @param prop          Pointer to an FDT "reg" property.
> + * @param address_cells Number of 4-octet cells that make up an "address=
".
> + * @param size_cells    Number of 4-octet cells that make up a "size".
> + * @param p_addr[out]   Address encoded in the property.
> + * @param p_size[out]   Size encoded in the property.
> + * @returns             -EINVAL on malformed property, 0 otherwise.
> + */
> +static int __init read_fdt_prop_as_reg(const struct fdt_property *prop,

I would do s/read_fdt_prop_as_reg/fdt_prop_as_reg/ similar to fdt_prop_as_u=
32()
below.

> +                                       int address_cells, int size_cells=
,
> +                                       uint64_t *p_addr, uint64_t *p_siz=
e)
> +{
> +    const fdt32_t *cell =3D (const fdt32_t *)prop->data;
> +    uint64_t addr, size;
> +
> +    if ( fdt32_to_cpu(prop->len) !=3D
> +         (address_cells + size_cells) * sizeof(*cell) )
> +    {
> +        printk(XENLOG_ERR "  cannot read reg %lu+%lu from prop len %u\n"=
,
> +            address_cells * sizeof(*cell), size_cells * sizeof(*cell),
> +            fdt32_to_cpu(prop->len));
> +        return -EINVAL;
> +    }
> +
> +    switch ( address_cells )
> +    {
> +    case 1:
> +        addr =3D fdt32_to_cpu(*cell);
> +        break;
> +    case 2:
> +        addr =3D fdt64_to_cpu(*(const fdt64_t *)cell);
> +        break;
> +    default:
> +        printk(XENLOG_ERR "  unsupported address_cells=3D%d\n", address_=
cells);
> +        return -EINVAL;
> +    }
> +
> +    cell +=3D address_cells;
> +    switch ( size_cells )
> +    {
> +    case 1:
> +        size =3D fdt32_to_cpu(*cell);
> +        break;
> +    case 2:
> +        size =3D fdt64_to_cpu(*(const fdt64_t *)cell);
> +        break;
> +    default:
> +        printk(XENLOG_ERR "  unsupported size_cells=3D%d\n", size_cells)=
;
> +        return -EINVAL;
> +    }
> +
> +    *p_addr =3D addr;
> +    *p_size =3D size;
> +
> +    return 0;
> +}
> +
> +/*
> + * Locate a multiboot module given its node offset in the FDT.
> + *
> + * The module location may be given via either FDT property:
> + *     * reg =3D <address, size>
> + *         * Mutates `bi` to append the module.
> + *     * module-index =3D <idx>
> + *         * Leaves `bi` unchanged.
> + *
> + * @param fdt           Pointer to the full FDT.
> + * @param node          Offset for the module node.
> + * @param address_cells Number of 4-octet cells that make up an "address=
".
> + * @param size_cells    Number of 4-octet cells that make up a "size".
> + * @param bi[inout]     Xen's representation of the boot parameters.
> + * @return              -EINVAL on malformed nodes, otherwise
> + *                      index inside `bi->mods`
> + */
> +int __init fdt_read_multiboot_module(const void *fdt, int node,
> +                                     int address_cells, int size_cells,
> +                                     struct boot_info *bi)
> +{
> +    const struct fdt_property *prop;
> +    uint64_t addr, size;
> +    int ret;
> +    uint32_t idx;
> +
> +    if ( fdt_node_check_compatible(fdt, node, "multiboot,module") )
> +    {
> +        printk(XENLOG_ERR "  bad module. multiboot,module not found");
> +        return -ENODATA;
> +    }
> +
> +    /* Location given as a `module-index` property. */
> +    if ( (prop =3D fdt_get_property(fdt, node, "module-index", NULL)) )
> +    {
> +        if ( fdt_get_property(fdt, node, "reg", NULL) )
> +        {
> +            printk(XENLOG_ERR "  found both reg and module-index for mod=
ule\n");
> +            return -EINVAL;
> +        }
> +        if ( (ret =3D fdt_prop_as_u32(prop, &idx)) )
> +        {
> +            printk(XENLOG_ERR "  bad module-index prop\n");
> +            return ret;
> +        }
> +        if ( idx >=3D MAX_NR_BOOTMODS )
> +        {
> +            printk(XENLOG_ERR "  module-index overflow. %s=3D%u\n",
> +                   STR(MAX_NR_BOOTMODS), MAX_NR_BOOTMODS);
> +            return -EINVAL;
> +        }
> +
> +        return idx;
> +    }
> +
> +    /* Otherwise location given as a `reg` property. */
> +    if ( !(prop =3D fdt_get_property(fdt, node, "reg", NULL)) )
> +    {
> +        printk(XENLOG_ERR "  no location for multiboot,module\n");
> +        return -EINVAL;
> +    }
> +    if ( fdt_get_property(fdt, node, "module-index", NULL) )
> +    {
> +        printk(XENLOG_ERR "  found both reg and module-index for module\=
n");
> +        return -EINVAL;
> +    }
> +
> +    ret =3D read_fdt_prop_as_reg(prop, address_cells, size_cells, &addr,=
 &size);
> +    if ( ret < 0 )
> +    {
> +        printk(XENLOG_ERR "  failed reading reg for multiboot,module\n")=
;
> +        return -EINVAL;
> +    }
> +
> +    idx =3D bi->nr_modules;
> +    if ( idx > MAX_NR_BOOTMODS )
> +    {
> +        /*
> +         * MAX_NR_BOOTMODS must fit in 31 bits so it's representable in =
the
> +         * positive side of an int; for the return value.
> +         */
> +        BUILD_BUG_ON(MAX_NR_BOOTMODS > (uint64_t)INT_MAX);
> +        printk(XENLOG_ERR "  idx=3D%u exceeds len=3D%u\n", idx, MAX_NR_B=
OOTMODS);
> +        return -EINVAL;
> +    }
> +
> +    /*
> +     * Append new module to the existing list
> +     *
> +     * Note that bi->nr_modules points to Xen itself, so we must shift i=
t first
> +     */
> +    bi->nr_modules++;
> +    bi->mods[bi->nr_modules] =3D bi->mods[idx];
> +    bi->mods[idx] =3D (struct boot_module){
> +        .start =3D addr,
> +        .size =3D size,
> +    };
> +
> +    printk(XENLOG_INFO "  module[%u]: addr %lx size %lx\n", idx, addr, s=
ize);
> +
> +    return idx;
> +}
> +
>  static int __init find_hyperlaunch_node(const void *fdt)
>  {
>      int hv_node =3D fdt_path_offset(fdt, "/chosen/hypervisor");
> diff --git a/xen/common/domain-builder/fdt.h b/xen/common/domain-builder/=
fdt.h
> index 955aead497..8c98a256eb 100644
> --- a/xen/common/domain-builder/fdt.h
> +++ b/xen/common/domain-builder/fdt.h
> @@ -2,6 +2,8 @@
>  #ifndef __XEN_DOMAIN_BUILDER_FDT_H__
>  #define __XEN_DOMAIN_BUILDER_FDT_H__
>=20
> +#include <xen/libfdt/libfdt-xen.h>
> +
>  struct boot_info;
>=20
>  /* hyperlaunch fdt is required to be module 0 */
> diff --git a/xen/include/xen/domain-builder.h b/xen/include/xen/domain-bu=
ilder.h
> index ac2b84775d..ace6b6875b 100644
> --- a/xen/include/xen/domain-builder.h
> +++ b/xen/include/xen/domain-builder.h
> @@ -5,5 +5,8 @@
>  struct boot_info;
>=20
>  void builder_init(struct boot_info *bi);
> +int fdt_read_multiboot_module(const void *fdt, int node,
> +                              int address_cells, int size_cells,
> +                              struct boot_info *bi)
>=20
>  #endif /* __XEN_DOMAIN_BUILDER_H__ */
> diff --git a/xen/include/xen/libfdt/libfdt-xen.h b/xen/include/xen/libfdt=
/libfdt-xen.h
> index a5340bc9f4..deafb25d98 100644
> --- a/xen/include/xen/libfdt/libfdt-xen.h
> +++ b/xen/include/xen/libfdt/libfdt-xen.h
> @@ -12,6 +12,17 @@
>  #define LIBFDT_XEN_H
>=20
>  #include <xen/libfdt/libfdt.h>
> +#include <xen/errno.h>
> +
> +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;
> +
> +    *val =3D fdt32_to_cpu(*(const fdt32_t *)prop->data);
> +    return 0;
> +}

My understanding is domain builder establishes its own shims around libfdt =
so
libfdt is kept unmodified and it is easier to pick up libfdt updates.

So, IMO, this function should reside in xen/common/domain-builder/fdt.c

Thoughts?

>=20
>  static inline int fdt_get_mem_rsv_paddr(const void *fdt, int n,
>                                          paddr_t *address,
> --
> 2.43.0
>=20
>=20



From xen-devel-bounces@lists.xenproject.org Fri Apr 18 22:39:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 18 Apr 2025 22:39:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.959528.1351872 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5uMy-0005B6-PA; Fri, 18 Apr 2025 22:39:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 959528.1351872; Fri, 18 Apr 2025 22:39:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5uMy-0005Az-M6; Fri, 18 Apr 2025 22:39:36 +0000
Received: by outflank-mailman (input) for mailman id 959528;
 Fri, 18 Apr 2025 22:39: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=UscN=XE=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u5uMx-0005At-HM
 for xen-devel@lists.xenproject.org; Fri, 18 Apr 2025 22:39:35 +0000
Received: from mail-4322.protonmail.ch (mail-4322.protonmail.ch [185.70.43.22])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fd2cacc6-1ca5-11f0-9eb0-5ba50f476ded;
 Sat, 19 Apr 2025 00:39:29 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fd2cacc6-1ca5-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=mokn3byejbc5hefyiq4u7aj6ve.protonmail; t=1745015968; x=1745275168;
	bh=tL/CcJNQc9FGvrf2sfdEHk3SqdAdj4qS2iAMoUFpRq8=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=i20GIJUsUURIJ5cGh5FnZg7XF+rV6FYH1ceyJfumJpUCTypcNvgDtA4VBnhAuLmj4
	 cnrbHaznfg83eAwdehC0SMtlGF4jxKDU/erSWd/Ze7ukeLfS7TscfTPpWYU+NuBCh5
	 9dXehnlE4EMO7MRlw0kk2vqszAaJc/EfoQOAvIL0oB1mn4mPLwbntz6xjDPEXb4Ben
	 wkwrqdqpEbVLEeHjJRUb9rHaitdiiaBV0HQzg+1kPUyFfw/pGf70vBhn4+sQ14oABY
	 a6z3rvXzyQ6BAId8RzcxUhwTPrxX8kQYQ7dqlshPMUUHq05kpL9rEaMtdz2O4KiQ1W
	 zYkgi0Aa73wdA==
Date: Fri, 18 Apr 2025 22:39:23 +0000
To: Alejandro Vallejo <agarciav@amd.com>
From: dmkhn@proton.me
Cc: xen-devel@lists.xenproject.org, "Daniel P. Smith" <dpsmith@apertussolutions.com>, Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>, =?utf-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, Jason Andryuk <jason.andryuk@amd.com>
Subject: Re: [PATCH v4 06/13] x86/hyperlaunch: locate dom0 kernel with hyperlaunch
Message-ID: <aALUlz6ZgwqSb0tD@kraken>
In-Reply-To: <20250417124844.11143-7-agarciav@amd.com>
References: <20250417124844.11143-1-agarciav@amd.com> <20250417124844.11143-7-agarciav@amd.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 7fd6263066db8f7f10d77cace505a7bea9a9537e
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Thu, Apr 17, 2025 at 01:48:28PM +0100, Alejandro Vallejo wrote:
> From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
>=20
> Look for a subnode of type `multiboot,kernel` within a domain node. If
> found, locate it using the multiboot module helper to generically ensure
> it lives in the module list. If the bootargs property is present and
> there was not an MB1 string, then use the command line from the device
> tree definition.
>=20
> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
> Signed-off-by: Alejandro Vallejo <agarciav@amd.com>
> ---
> v4:
>   * Stop printing on the fallback path of builder_init().
>     It's in fact the most common path and just adds noise.
>   * Add missing XENLOG_X.
>   * Simplified check to log error on nr_domains !=3D 1.
>   * s/XENLOG_ERR/XENLOG_WARNING/ on duplicate kernel.
>   * Turned foo =3D=3D 0 into !foo in the "multiboot,kernel" check
> ---
>  xen/arch/x86/setup.c             |  5 ---
>  xen/common/domain-builder/core.c |  9 +++++
>  xen/common/domain-builder/fdt.c  | 64 ++++++++++++++++++++++++++++++--
>  xen/include/xen/domain-builder.h |  3 --
>  4 files changed, 70 insertions(+), 11 deletions(-)
>=20
> diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
> index ccc57cc70a..4f669f3c60 100644
> --- a/xen/arch/x86/setup.c
> +++ b/xen/arch/x86/setup.c
> @@ -1285,11 +1285,6 @@ void asmlinkage __init noreturn __start_xen(void)
>=20
>      builder_init(bi);
>=20
> -    /* Find first unknown boot module to use as dom0 kernel */
> -    i =3D first_boot_module_index(bi, BOOTMOD_UNKNOWN);
> -    bi->mods[i].type =3D BOOTMOD_KERNEL;
> -    bi->domains[0].kernel =3D &bi->mods[i];
> -
>      if ( pvh_boot )
>      {
>          /* pvh_init() already filled in e820_raw */
> diff --git a/xen/common/domain-builder/core.c b/xen/common/domain-builder=
/core.c
> index 3b062e85ec..924cb495a3 100644
> --- a/xen/common/domain-builder/core.c
> +++ b/xen/common/domain-builder/core.c
> @@ -54,6 +54,15 @@ void __init builder_init(struct boot_info *bi)
>=20
>          printk(XENLOG_INFO "  number of domains: %u\n", bi->nr_domains);
>      }
> +    else
> +    {
> +        /* Find first unknown boot module to use as dom0 kernel */
> +        unsigned int i =3D first_boot_module_index(bi, BOOTMOD_UNKNOWN);
> +
> +        bi->mods[i].type =3D BOOTMOD_KERNEL;
> +        bi->domains[0].kernel =3D &bi->mods[i];
> +        bi->nr_domains =3D 1;
> +    }
>  }
>=20
>  /*
> diff --git a/xen/common/domain-builder/fdt.c b/xen/common/domain-builder/=
fdt.c
> index d73536fed6..1fae6add3b 100644
> --- a/xen/common/domain-builder/fdt.c
> +++ b/xen/common/domain-builder/fdt.c
> @@ -89,9 +89,9 @@ static int __init read_fdt_prop_as_reg(const struct fdt=
_property *prop,
>   * @return              -EINVAL on malformed nodes, otherwise
>   *                      index inside `bi->mods`
>   */
> -int __init fdt_read_multiboot_module(const void *fdt, int node,
> -                                     int address_cells, int size_cells,
> -                                     struct boot_info *bi)
> +static int __init fdt_read_multiboot_module(const void *fdt, int node,
> +                                            int address_cells, int size_=
cells,
> +                                            struct boot_info *bi)
>  {
>      const struct fdt_property *prop;
>      uint64_t addr, size;
> @@ -175,6 +175,52 @@ int __init fdt_read_multiboot_module(const void *fdt=
, int node,
>      return idx;
>  }
>=20
> +static int __init process_domain_node(
> +    struct boot_info *bi, const void *fdt, int dom_node)
> +{
> +    int node;
> +    struct boot_domain *bd =3D &bi->domains[bi->nr_domains];
> +    const char *name =3D fdt_get_name(fdt, dom_node, NULL) ?: "unknown";
> +    int address_cells =3D fdt_address_cells(fdt, dom_node);
> +    int size_cells =3D fdt_size_cells(fdt, dom_node);
> +
> +    fdt_for_each_subnode(node, fdt, dom_node)
> +    {
> +        if ( !fdt_node_check_compatible(fdt, node, "multiboot,kernel") )

Suggest to restructure the code to reduce levels of indentation, e.g.:

           int idx;

           if ( fdt_node_check_compatible(fdt, node, "multiboot,kernel") )
               continue;

           if ( bd->kernel )
              ...


> +        {
> +            int idx;
> +
> +            if ( bd->kernel )
> +            {
> +                printk(XENLOG_WARNING
> +                       "  duplicate kernel for domain %s\n", name);
> +                continue;
> +            }
> +
> +            idx =3D fdt_read_multiboot_module(fdt, node, address_cells,
> +                                            size_cells, bi);
> +            if ( idx < 0 )
> +            {
> +                printk(XENLOG_ERR
> +                       "  failed processing kernel for domain %s\n", nam=
e);
> +                return idx;
> +            }
> +
> +            printk(XENLOG_INFO "  kernel: multiboot-index=3D%d\n", idx);
> +            bi->mods[idx].type =3D BOOTMOD_KERNEL;
> +            bd->kernel =3D &bi->mods[idx];
> +        }
> +    }
> +
> +    if ( !bd->kernel )
> +    {
> +        printk(XENLOG_ERR "error: no kernel assigned to domain\n");

Add domain name printout similar to above logging?

> +        return -ENODATA;
> +    }
> +
> +    return 0;
> +}
> +
>  static int __init find_hyperlaunch_node(const void *fdt)
>  {
>      int hv_node =3D fdt_path_offset(fdt, "/chosen/hypervisor");
> @@ -237,8 +283,20 @@ int __init walk_hyperlaunch_fdt(struct boot_info *bi=
)
>=20
>      fdt_for_each_subnode(node, fdt, hv_node)
>      {
> +        if ( bi->nr_domains >=3D MAX_NR_BOOTDOMS )
> +        {
> +            printk(XENLOG_WARNING "warning: only creating first %u domai=
ns\n",
> +                   MAX_NR_BOOTDOMS);
> +            break;
> +        }
> +
>          if ( !fdt_node_check_compatible(fdt, node, "xen,domain") )
> +        {
> +            if ( (ret =3D process_domain_node(bi, fdt, node)) < 0 )
> +                break;
> +
>              bi->nr_domains++;
> +        }
>      }
>=20
>      /* Until multi-domain construction is added, throw an error */
> diff --git a/xen/include/xen/domain-builder.h b/xen/include/xen/domain-bu=
ilder.h
> index ace6b6875b..ac2b84775d 100644
> --- a/xen/include/xen/domain-builder.h
> +++ b/xen/include/xen/domain-builder.h
> @@ -5,8 +5,5 @@
>  struct boot_info;
>=20
>  void builder_init(struct boot_info *bi);
> -int fdt_read_multiboot_module(const void *fdt, int node,
> -                              int address_cells, int size_cells,
> -                              struct boot_info *bi)
>=20
>  #endif /* __XEN_DOMAIN_BUILDER_H__ */
> --
> 2.43.0
>=20
>=20



From xen-devel-bounces@lists.xenproject.org Fri Apr 18 22:51:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 18 Apr 2025 22:51:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.959550.1351882 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5uY5-0008Kl-O5; Fri, 18 Apr 2025 22:51:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 959550.1351882; Fri, 18 Apr 2025 22:51: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 1u5uY5-0008Ke-L9; Fri, 18 Apr 2025 22:51:05 +0000
Received: by outflank-mailman (input) for mailman id 959550;
 Fri, 18 Apr 2025 22:51: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 1u5uY4-0008KY-Hf
 for xen-devel@lists.xenproject.org; Fri, 18 Apr 2025 22:51: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 1u5uY4-006U3f-0W;
 Fri, 18 Apr 2025 22:51:04 +0000
Received: from [143.198.24.140] (helo=[100.81.22.8])
 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 1u5uY3-001Ajk-20;
 Fri, 18 Apr 2025 22:51: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=GYl0LF6TbQRhdVlZUEofv6vEkP+8e1v8dM4edRTI5M8=; b=UjQXMBeZz1ymc8nC03vkvpnK/z
	RbksqpeXlq3YxcLD3VPLV4XNvGV7sefYYXMPO4MS1jt0+Cx7ug4b+BGr8hykjJOBpW7E4Gp8c+uNN
	Yznp5Qg0+OA3JqpFWJ8JK07rekwnL84v3j9HOcgW2g9Jw4jIyD7oTb9Tkw0WeK2HWAbA=;
Message-ID: <43ce15d8-bf94-4b3c-9c2e-d1121476056f@xen.org>
Date: Sat, 19 Apr 2025 07:50:57 +0900
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xenstored: Remove setjmp.h
Content-Language: en-GB
To: Jason Andryuk <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
 Anthony PERARD <anthony.perard@vates.tech>
References: <20250418205933.542150-1-jason.andryuk@amd.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20250418205933.542150-1-jason.andryuk@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Jason,

On 19/04/2025 05:59, Jason Andryuk wrote:
> Use of setjmp/longjmp as removed in 2006, but the include remained.
> Remove it now.
> 
> Fixes: 1bac3b49cd ("Import the current version of talloc...")

The subject truncation is ok however for the commit ID, we are expecting 
12 characters (see docs/process/sending-patches.pandoc).


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

With the remark above addressed (can be fixed on commit):

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

> ---
> I truncated the Fixes above.  The full line is:
> Fixes: 1bac3b49cd ("Import the current version of talloc from the Samba 3 source base.  This gives us greater confidence that our talloc implementation is "known good".  Remove the OOM handling from consider_message: talloc_set_fail_handler is no longer supported.")
 > --->   tools/xenstored/core.c | 1 -
>   1 file changed, 1 deletion(-)
> 
> diff --git a/tools/xenstored/core.c b/tools/xenstored/core.c
> index 91b2530e5c..835402af81 100644
> --- a/tools/xenstored/core.c
> +++ b/tools/xenstored/core.c
> @@ -35,7 +35,6 @@
>   #include <getopt.h>
>   #include <signal.h>
>   #include <assert.h>
> -#include <setjmp.h>
>   
>   #include <xenevtchn.h>
>   #include <xen-tools/xenstore-common.h>

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Fri Apr 18 22:54:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 18 Apr 2025 22:54:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.959563.1351893 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5uay-0000S1-42; Fri, 18 Apr 2025 22:54:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 959563.1351893; Fri, 18 Apr 2025 22:54: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 1u5uay-0000Ru-1J; Fri, 18 Apr 2025 22:54:04 +0000
Received: by outflank-mailman (input) for mailman id 959563;
 Fri, 18 Apr 2025 22:54: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=UscN=XE=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u5uaw-0000Rl-2W
 for xen-devel@lists.xenproject.org; Fri, 18 Apr 2025 22:54:03 +0000
Received: from mail-24418.protonmail.ch (mail-24418.protonmail.ch
 [109.224.244.18]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 03ccf9d3-1ca8-11f0-9ffb-bf95429c2676;
 Sat, 19 Apr 2025 00:53:59 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 03ccf9d3-1ca8-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1745016838; x=1745276038;
	bh=fL229BqbvUMm0mrachr4V60O/3wGRqPLzkk7FJUFjNk=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=fm/sf1yOCG5mj2xtfQgUpFKlw0lmGS5ZATgP3c01GVwTlP5lqa3OPqLt6OpWSHDM3
	 fjK8Z0U8/gN5bZL+PEhZZ4Ra4cB+3Peubb6CjrnlyCOaz8rYvcgEvFf5MKeBqFHD3e
	 1CIHdhFJcGumz4t1NQFuLkoB0H16IY3NRPWrXY+5E4p5VAK1VCBbuaqofC4Otv6Ey1
	 OatGBWP53/uSEaOAjctt82Ee/9t14XQf0+GBcSUbmMT6SCzLkgGtm3lxpIO8e7nMsM
	 ebtytz+y9dt5/DHNzAFNzkbrfXpraUlEiUzq3tyYtF8PUOFtBA6qh74K+O4oHR9ku0
	 smDs+aTNR09ZQ==
Date: Fri, 18 Apr 2025 22:53:54 +0000
To: Alejandro Vallejo <agarciav@amd.com>
From: dmkhn@proton.me
Cc: xen-devel@lists.xenproject.org, "Daniel P. Smith" <dpsmith@apertussolutions.com>, Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>, =?utf-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, Bertrand Marquis <bertrand.marquis@arm.com>, Jason Andryuk <jason.andryuk@amd.com>
Subject: Re: [PATCH v4 07/13] x86/hyperlaunch: obtain cmdline from device tree
Message-ID: <aALX/NgsSi5sTyz3@kraken>
In-Reply-To: <20250417124844.11143-8-agarciav@amd.com>
References: <20250417124844.11143-1-agarciav@amd.com> <20250417124844.11143-8-agarciav@amd.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 43d8be86eb6796d2a539c07520b3bd6acbc3cdb8
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Thu, Apr 17, 2025 at 01:48:29PM +0100, Alejandro Vallejo wrote:
> From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
>=20
> Add support to read the command line from the hyperlauunch device tree.
> The device tree command line is located in the "bootargs" property of the
> "multiboot,kernel" node.
>=20
> A boot loader command line, e.g. a grub module string field, takes
> precendence ove the device tree one since it is easier to modify.

              ^^ over

Also, I would explain the command line parsing rules in the code commentary=
 for
domain_cmdline_size() below.

>=20
> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
> Signed-off-by: Alejandro Vallejo <agarciav@amd.com>
> ---
> v4:
>   * Removed __init from header declarations.
>   * Removed ifdef guards, as DCE ensures the missing definitions don't
>     matter.
>   * Removed ifdef guards from new helpers in domain-builder/fdt.c
>     * Rely on DCE instead.
>   * Restored checks for cmdline_pa being zero.
>   * swapped offset and poffset varnames in libfdt-xen.h helper.
>   * swapped name and pname varnames in libfdt-xen.h helper.
>   * Turned foo =3D=3D 0  into !foo in libfdt-xen.h helper.
> ---
>  xen/arch/x86/include/asm/bootinfo.h |  6 ++++--
>  xen/arch/x86/setup.c                | 10 +++++++--
>  xen/common/domain-builder/core.c    | 32 +++++++++++++++++++++++++++++
>  xen/common/domain-builder/fdt.c     |  6 ++++++
>  xen/common/domain-builder/fdt.h     | 24 ++++++++++++++++++++++
>  xen/include/xen/domain-builder.h    |  4 ++++
>  xen/include/xen/libfdt/libfdt-xen.h | 23 +++++++++++++++++++++
>  7 files changed, 101 insertions(+), 4 deletions(-)
>=20
> diff --git a/xen/arch/x86/include/asm/bootinfo.h b/xen/arch/x86/include/a=
sm/bootinfo.h
> index 1e3d582e45..5b2c93b1ef 100644
> --- a/xen/arch/x86/include/asm/bootinfo.h
> +++ b/xen/arch/x86/include/asm/bootinfo.h
> @@ -35,11 +35,13 @@ struct boot_module {
>=20
>      /*
>       * 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;
>=20
>      /*
>       * A boot module may need decompressing by Xen.  Headroom is an esti=
mate of
> diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
> index 4f669f3c60..4cae13163b 100644
> --- a/xen/arch/x86/setup.c
> +++ b/xen/arch/x86/setup.c
> @@ -984,7 +984,10 @@ static size_t __init domain_cmdline_size(const struc=
t boot_info *bi,
>  {
>      size_t s =3D bi->kextra ? strlen(bi->kextra) : 0;
>=20
> -    s +=3D bd->kernel->cmdline_pa ? strlen(__va(bd->kernel->cmdline_pa))=
 : 0;
> +    if ( bd->kernel->fdt_cmdline )
> +        s +=3D builder_get_cmdline_size(bi, bd->kernel->cmdline_pa);
> +    else if ( bd->kernel->cmdline_pa )
> +        s +=3D strlen(__va(bd->kernel->cmdline_pa));
>=20
>      if ( s =3D=3D 0 )
>          return s;
> @@ -1047,7 +1050,10 @@ static struct domain *__init create_dom0(struct bo=
ot_info *bi)
>          if ( !(cmdline =3D xzalloc_array(char, cmdline_size)) )
>              panic("Error allocating cmdline buffer for %pd\n", d);
>=20
> -        if ( bd->kernel->cmdline_pa )
> +        if ( bd->kernel->fdt_cmdline )
> +            builder_get_cmdline(
> +                bi, bd->kernel->cmdline_pa, cmdline, cmdline_size);
> +        else if ( bd->kernel->cmdline_pa )
>              strlcpy(cmdline,
>                      cmdline_cook(__va(bd->kernel->cmdline_pa), bi->loade=
r),
>                      cmdline_size);
> diff --git a/xen/common/domain-builder/core.c b/xen/common/domain-builder=
/core.c
> index 924cb495a3..4b4230f2ff 100644
> --- a/xen/common/domain-builder/core.c
> +++ b/xen/common/domain-builder/core.c
> @@ -8,9 +8,41 @@
>  #include <xen/lib.h>
>=20
>  #include <asm/bootinfo.h>
> +#include <asm/setup.h>
>=20
>  #include "fdt.h"
>=20
> +size_t __init builder_get_cmdline_size(struct boot_info *bi, int offset)
> +{
> +    const void *fdt;
> +    int size;
> +
> +    if ( !IS_ENABLED(CONFIG_DOMAIN_BUILDER) )
> +        return 0;
> +
> +    fdt =3D bootstrap_map_bm(&bi->mods[HYPERLAUNCH_MODULE_IDX]);
> +    size =3D fdt_cmdline_prop_size(fdt, offset);
> +    bootstrap_unmap();
> +
> +    return max(0, size);
> +}
> +
> +int __init builder_get_cmdline(
> +    struct boot_info *bi, int offset, char *cmdline, size_t size)
> +{
> +    const void *fdt;
> +    int ret;
> +
> +    if ( !IS_ENABLED(CONFIG_DOMAIN_BUILDER) )
> +        return 0;
> +
> +    fdt =3D bootstrap_map_bm(&bi->mods[HYPERLAUNCH_MODULE_IDX]);
> +    ret =3D fdt_cmdline_prop_copy(fdt, offset, cmdline, size);
> +    bootstrap_unmap();
> +
> +    return ret;
> +}
> +
>  void __init builder_init(struct boot_info *bi)
>  {
>      bi->hyperlaunch_enabled =3D false;
> diff --git a/xen/common/domain-builder/fdt.c b/xen/common/domain-builder/=
fdt.c
> index 1fae6add3b..50fde2d007 100644
> --- a/xen/common/domain-builder/fdt.c
> +++ b/xen/common/domain-builder/fdt.c
> @@ -209,6 +209,12 @@ static int __init process_domain_node(
>              printk(XENLOG_INFO "  kernel: multiboot-index=3D%d\n", idx);
>              bi->mods[idx].type =3D BOOTMOD_KERNEL;
>              bd->kernel =3D &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] )
> +                bd->kernel->fdt_cmdline =3D fdt_get_prop_offset(
> +                    fdt, node, "bootargs", &bd->kernel->cmdline_pa);
>          }
>      }
>=20
> diff --git a/xen/common/domain-builder/fdt.h b/xen/common/domain-builder/=
fdt.h
> index 8c98a256eb..d2ae7d5c36 100644
> --- a/xen/common/domain-builder/fdt.h
> +++ b/xen/common/domain-builder/fdt.h
> @@ -9,6 +9,30 @@ struct boot_info;
>  /* hyperlaunch fdt is required to be module 0 */
>  #define HYPERLAUNCH_MODULE_IDX 0
>=20
> +static inline int __init fdt_cmdline_prop_size(const void *fdt, int offs=
et)
> +{
> +    int ret;
> +
> +    fdt_get_property_by_offset(fdt, offset, &ret);

Perhaps something like

       (void)fdt_get_property_by_offset...

since there's no need to check the return value?

> +
> +    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 =3D
> +        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(const struct boot_info *bi);
>  int walk_hyperlaunch_fdt(struct boot_info *bi);
>=20
> diff --git a/xen/include/xen/domain-builder.h b/xen/include/xen/domain-bu=
ilder.h
> index ac2b84775d..ac0fd8f60b 100644
> --- a/xen/include/xen/domain-builder.h
> +++ b/xen/include/xen/domain-builder.h
> @@ -4,6 +4,10 @@
>=20
>  struct boot_info;
>=20
> +size_t builder_get_cmdline_size(const struct boot_info *bi, int offset);
> +int builder_get_cmdline(const struct boot_info *bi, int offset,
> +                               char *cmdline, size_t size);
> +
>  void builder_init(struct boot_info *bi);
>=20
>  #endif /* __XEN_DOMAIN_BUILDER_H__ */
> diff --git a/xen/include/xen/libfdt/libfdt-xen.h b/xen/include/xen/libfdt=
/libfdt-xen.h
> index deafb25d98..afc76e7750 100644
> --- a/xen/include/xen/libfdt/libfdt-xen.h
> +++ b/xen/include/xen/libfdt/libfdt-xen.h
> @@ -24,6 +24,29 @@ static inline int __init fdt_prop_as_u32(
>      return 0;
>  }
>=20
> +static inline bool __init fdt_get_prop_offset(
> +    const void *fdt, int node, const char *pname, unsigned long *poffset=
)
> +{
> +    int ret, offset;
> +    const char *name;
> +
> +    fdt_for_each_property_offset(offset, fdt, node)
> +    {
> +        fdt_getprop_by_offset(fdt, offset, &name, &ret);

Add

           (void)fdt_get_property_by_offset...

here as well?

> +
> +        if ( ret < 0 )
> +            continue;
> +
> +        if ( !strcmp(name, pname) )
> +        {
> +            *poffset =3D offset;
> +            return true;
> +        }
> +    }
> +
> +    return false;
> +}
> +
>  static inline int fdt_get_mem_rsv_paddr(const void *fdt, int n,
>                                          paddr_t *address,
>                                          paddr_t *size)
> --
> 2.43.0
>=20
>=20



From xen-devel-bounces@lists.xenproject.org Fri Apr 18 22:58:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 18 Apr 2025 22:58:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.959576.1351903 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5ufT-00011k-KP; Fri, 18 Apr 2025 22:58:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 959576.1351903; Fri, 18 Apr 2025 22:58: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 1u5ufT-00011d-Gp; Fri, 18 Apr 2025 22:58:43 +0000
Received: by outflank-mailman (input) for mailman id 959576;
 Fri, 18 Apr 2025 22:58: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=UscN=XE=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u5ufR-00011X-Sv
 for xen-devel@lists.xenproject.org; Fri, 18 Apr 2025 22:58:41 +0000
Received: from mail-10631.protonmail.ch (mail-10631.protonmail.ch
 [79.135.106.31]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ab76a322-1ca8-11f0-9eb0-5ba50f476ded;
 Sat, 19 Apr 2025 00:58:40 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ab76a322-1ca8-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1745017119; x=1745276319;
	bh=gvK2IXpBWpYcayhH70GXF1b//QKATsklrEdCGPGk4+0=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=KU+K4sgN6Y311HLu/uswNl40xXLOrk1a/eiSOAFI+2ZLtW5wc7IlfuaUo2hF2Y2Ev
	 881Ta5SftQ3BuMMbgdJ2fiBlnv3nzwxewENcWklPyGOhkrcsNeC36ie1ynVyTe2XsY
	 HHdkHBetLEZEdlczm4m2iNbUiXg2HLepSTk84YguskY+92G5lSHyBpB9t2UBxxaR7e
	 vcRnEwrrsPk85E8/ztib5yBZmv0FaS7EegosLyHzkyB/9Y3jQQUeoQc6On3P2m1eHO
	 3Nu6zmT0JgtaA0Ubsf05EVdgJuo0fKVgONOoqqrVvxgxD7ZW8W2QWOkpmurDnyEo+U
	 FWm8JqOTvsjgw==
Date: Fri, 18 Apr 2025 22:58:36 +0000
To: Alejandro Vallejo <agarciav@amd.com>
From: dmkhn@proton.me
Cc: xen-devel@lists.xenproject.org, "Daniel P. Smith" <dpsmith@apertussolutions.com>, Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>, =?utf-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, Jason Andryuk <jason.andryuk@amd.com>
Subject: Re: [PATCH v4 08/13] x86/hyperlaunch: locate dom0 initrd with hyperlaunch
Message-ID: <aALZGCW4IXPo87wb@kraken>
In-Reply-To: <20250417124844.11143-9-agarciav@amd.com>
References: <20250417124844.11143-1-agarciav@amd.com> <20250417124844.11143-9-agarciav@amd.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 8f6007934b7ac535a88147d2d940c4d00467abd8
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Thu, Apr 17, 2025 at 01:48:30PM +0100, Alejandro Vallejo wrote:
> From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
>=20
> Look for a subnode of type `multiboot,ramdisk` within a domain node and
> parse via the fdt_read_multiboot_module() helper. After a successful
> helper call, the module index is returned and the module is guaranteed
> to be in the module list.
>=20
> Fix unused typo in adjacent comment.
>=20
> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
> Signed-off-by: Alejandro Vallejo <agarciav@amd.com>
> ---
> v4:
>   * s/XENLOG_ERR/XENLOG_WARNING/ on duplicate ramdisk.
>   * Removed stray ")" in printk
>   * s/else if/if/ (because of continue)
>   * Removed trailing continue
> ---
>  xen/arch/x86/setup.c            |  4 ++--
>  xen/common/domain-builder/fdt.c | 25 +++++++++++++++++++++++++
>  2 files changed, 27 insertions(+), 2 deletions(-)
>=20
> diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
> index 4cae13163b..76ceb5221f 100644
> --- a/xen/arch/x86/setup.c
> +++ b/xen/arch/x86/setup.c
> @@ -2150,11 +2150,11 @@ void asmlinkage __init noreturn __start_xen(void)
>       * At this point all capabilities that consume boot modules should h=
ave
>       * claimed their boot modules. Find the first unclaimed boot module =
and
>       * claim it as the initrd ramdisk. Do a second search to see if ther=
e are
> -     * any remaining unclaimed boot modules, and report them as unusued =
initrd
> +     * any remaining unclaimed boot modules, and report them as unused i=
nitrd
>       * candidates.
>       */
>      initrdidx =3D first_boot_module_index(bi, BOOTMOD_UNKNOWN);
> -    if ( initrdidx < MAX_NR_BOOTMODS )
> +    if ( !bi->hyperlaunch_enabled && initrdidx < MAX_NR_BOOTMODS )
>      {
>          bi->mods[initrdidx].type =3D BOOTMOD_RAMDISK;
>          bi->domains[0].module =3D &bi->mods[initrdidx];
> diff --git a/xen/common/domain-builder/fdt.c b/xen/common/domain-builder/=
fdt.c
> index 50fde2d007..c0f526a4ce 100644
> --- a/xen/common/domain-builder/fdt.c
> +++ b/xen/common/domain-builder/fdt.c
> @@ -216,6 +216,31 @@ static int __init process_domain_node(
>                  bd->kernel->fdt_cmdline =3D fdt_get_prop_offset(
>                      fdt, node, "bootargs", &bd->kernel->cmdline_pa);
>          }
> +        else if ( !fdt_node_check_compatible(fdt, node, "multiboot,ramdi=
sk") )
> +        {
> +            int idx;
> +
> +            if ( bd->module )
> +            {
> +                printk(XENLOG_WARNING
> +                       "Duplicate module for domain %s\n", name);
> +                continue;
> +            }
> +
> +            idx =3D fdt_read_multiboot_module(fdt, node, address_cells,
> +                                            size_cells, bi);
> +            if ( idx < 0 )
> +            {
> +                printk(XENLOG_ERR
> +                       "  failed processing module for domain %s\n",
> +                       name);
> +                return -EINVAL;

Propagate fdt_read_multiboot_module()'s error to the caller, i.e.:

                   return idx;

?

> +            }
> +
> +            printk(XENLOG_INFO "  module: multiboot-index=3D%d\n", idx);
> +            bi->mods[idx].type =3D BOOTMOD_RAMDISK;
> +            bd->module =3D &bi->mods[idx];
> +        }
>      }
>=20
>      if ( !bd->kernel )
> --
> 2.43.0
>=20
>=20



From xen-devel-bounces@lists.xenproject.org Fri Apr 18 23:08:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 18 Apr 2025 23:08:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.959592.1351913 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5up3-00032O-JG; Fri, 18 Apr 2025 23:08:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 959592.1351913; Fri, 18 Apr 2025 23:08: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 1u5up3-00032H-Fa; Fri, 18 Apr 2025 23:08:37 +0000
Received: by outflank-mailman (input) for mailman id 959592;
 Fri, 18 Apr 2025 23:08: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=UscN=XE=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u5up1-000322-D2
 for xen-devel@lists.xenproject.org; Fri, 18 Apr 2025 23:08:35 +0000
Received: from mail-4322.protonmail.ch (mail-4322.protonmail.ch [185.70.43.22])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0d601b0e-1caa-11f0-9eb0-5ba50f476ded;
 Sat, 19 Apr 2025 01:08:34 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0d601b0e-1caa-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1745017713; x=1745276913;
	bh=YRFaQj2vwdGkCWEcaiorjDZfW7+Ah4yqFKB5B1a2GlA=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=XVf3v4r57zK0J5xLhjSxBEXkn5LF6/DOVp47qp9sqJNxg+e9sVs7yr2Wv1BvK94pQ
	 xseJPQhotYl/WdnxDYbU/FO2UEXxCaCKAW+GSCOeJV0ndiy6g7NgaBKq8wIceoB0za
	 cJrNXTklHEgaXBZkVNJ72ZaiSGdMEJjx9TUmgHWs7Eq4y37s9gcxUPKvvRkCSwkiw0
	 ZRHfu1BGx9kOB8sg4YRW3nGo6WcSRxzL4oUiVb2SHyzSQ54PgCx9OrNRScj1El/D6u
	 f7nYYA6+0rDUz+liYccDGQDTSJerQ+VJxV0gZPQI85WP923/5K4eusFT1wjz3sbwuz
	 +yTlFojN/gEXA==
Date: Fri, 18 Apr 2025 23:08:28 +0000
To: Alejandro Vallejo <agarciav@amd.com>
From: dmkhn@proton.me
Cc: xen-devel@lists.xenproject.org, "Daniel P. Smith" <dpsmith@apertussolutions.com>, Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>, =?utf-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH v4 09/13] x86/hyperlaunch: add domain id parsing to domain config
Message-ID: <aALbaXZlBeWtCAZt@kraken>
In-Reply-To: <20250417124844.11143-10-agarciav@amd.com>
References: <20250417124844.11143-1-agarciav@amd.com> <20250417124844.11143-10-agarciav@amd.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 95e9b8a7295910cbcc646d4f997f08935a62b8ac
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Thu, Apr 17, 2025 at 01:48:31PM +0100, Alejandro Vallejo wrote:
> From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
>=20
> 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.
>=20
> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
> Signed-off-by: Alejandro Vallejo <agarciav@amd.com>
> ---
> v4:
>   * Add missing newline
>   * Adjusted printks
>   * Checked domid node against list of outstanding domids.
> ---
>  xen/arch/x86/setup.c            |  5 ++--
>  xen/common/domain-builder/fdt.c | 51 ++++++++++++++++++++++++++++++++-
>  2 files changed, 53 insertions(+), 3 deletions(-)
>=20
> diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
> index 76ceb5221f..04ad2d0937 100644
> --- a/xen/arch/x86/setup.c
> +++ b/xen/arch/x86/setup.c
> @@ -1033,8 +1033,9 @@ static struct domain *__init create_dom0(struct boo=
t_info *bi)
>      if ( iommu_enabled )
>          dom0_cfg.flags |=3D XEN_DOMCTL_CDF_iommu;
>=20
> -    /* Create initial domain.  Not d0 for pvshim. */
> -    bd->domid =3D get_initial_domain_id();
> +    if ( bd->domid =3D=3D DOMID_INVALID )
> +        /* Create initial domain.  Not d0 for pvshim. */
> +        bd->domid =3D get_initial_domain_id();
>      d =3D domain_create(bd->domid, &dom0_cfg, pv_shim ? 0 : CDF_privileg=
ed);
>      if ( IS_ERR(d) )
>          panic("Error creating d%u: %ld\n", bd->domid, PTR_ERR(d));
> diff --git a/xen/common/domain-builder/fdt.c b/xen/common/domain-builder/=
fdt.c
> index c0f526a4ce..0d3c713041 100644
> --- a/xen/common/domain-builder/fdt.c
> +++ b/xen/common/domain-builder/fdt.c
> @@ -2,6 +2,7 @@
>  /*
>   * Copyright (C) 2024, Apertus Solutions, LLC
>   */
> +#include <xen/domain.h>
>  #include <xen/err.h>
>  #include <xen/init.h>
>  #include <xen/lib.h>
> @@ -178,12 +179,54 @@ static int __init fdt_read_multiboot_module(const v=
oid *fdt, int node,
>  static int __init process_domain_node(
>      struct boot_info *bi, const void *fdt, int dom_node)
>  {
> -    int node;
> +    int node, property;
>      struct boot_domain *bd =3D &bi->domains[bi->nr_domains];
>      const char *name =3D fdt_get_name(fdt, dom_node, NULL) ?: "unknown";
>      int address_cells =3D fdt_address_cells(fdt, dom_node);
>      int size_cells =3D fdt_size_cells(fdt, dom_node);
>=20
> +    fdt_for_each_property_offset(property, fdt, dom_node)
> +    {
> +        const struct fdt_property *prop;
> +        const char *prop_name;
> +        int name_len, rc;
> +
> +        prop =3D fdt_get_property_by_offset(fdt, property, NULL);
> +        if ( !prop )
> +            continue; /* silently skip */
> +
> +        prop_name =3D fdt_get_string(fdt, fdt32_to_cpu(prop->nameoff), &=
name_len);
> +
> +        if ( !strncmp(prop_name, "domid", name_len) )
> +        {
> +            uint32_t val =3D DOMID_INVALID;
> +
> +            if ( (rc =3D fdt_prop_as_u32(prop, &val)) )
> +            {
> +                printk(XENLOG_ERR
> +                       "  failed processing domain id for domain %s\n", =
name);
> +                return rc;
> +            }
> +            if ( val >=3D DOMID_FIRST_RESERVED )
> +            {
> +                printk(XENLOG_ERR "  invalid domain id for domain %s\n",=
 name);
> +                return -EINVAL;
> +            }
> +
> +            for ( unsigned int i =3D 0; i < bi->nr_domains; i++ )
> +            {
> +                if ( bi->domains[i].domid =3D=3D val )
> +                {
> +                    printk(XENLOG_ERR "  duplicate id for domain %s\n", =
name);
> +                    return -EINVAL;
> +                }
> +            }
> +
> +            bd->domid =3D val;
> +            printk(XENLOG_INFO "  domid: %d\n", bd->domid);
> +        }
> +    }
> +
>      fdt_for_each_subnode(node, fdt, dom_node)
>      {
>          if ( !fdt_node_check_compatible(fdt, node, "multiboot,kernel") )
> @@ -249,6 +292,12 @@ static int __init process_domain_node(
>          return -ENODATA;
>      }
>=20
> +    if ( bd->domid =3D=3D DOMID_INVALID )
> +        bd->domid =3D get_initial_domain_id();
> +    else if ( bd->domid !=3D get_initial_domain_id() )
> +        printk(XENLOG_WARNING
> +               "Warning: Unsuported boot with missing initial domid\n");

s/Unsuported/Unsupported/

Also, add bd->domid to the printout?

> +
>      return 0;
>  }
>=20
> --
> 2.43.0
>=20
>=20



From xen-devel-bounces@lists.xenproject.org Fri Apr 18 23:10:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 18 Apr 2025 23:10:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.959604.1351923 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5uqc-0004UW-Tw; Fri, 18 Apr 2025 23:10:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 959604.1351923; Fri, 18 Apr 2025 23:10: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 1u5uqc-0004UP-QK; Fri, 18 Apr 2025 23:10:14 +0000
Received: by outflank-mailman (input) for mailman id 959604;
 Fri, 18 Apr 2025 23:10: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=UscN=XE=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u5uqc-0004UJ-4f
 for xen-devel@lists.xenproject.org; Fri, 18 Apr 2025 23:10:14 +0000
Received: from mail-24418.protonmail.ch (mail-24418.protonmail.ch
 [109.224.244.18]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 479c0de7-1caa-11f0-9ffb-bf95429c2676;
 Sat, 19 Apr 2025 01:10:12 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 479c0de7-1caa-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1745017810; x=1745277010;
	bh=Ggx9XJWtrOsKirQPVxCNOnn6wdz/asscbpbQdR83pG4=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=dt9sK1ZvpJrssp60Ai/MTZN3Famdn90GVZ/c9teMBZwdCpBCIlIvpfQw4Hsi2ICx/
	 EnUdPfwxZ49POQ9UQNpqxSkmNU8m+Akrt/ipAhpk0bJanV9uU0IaR07XnX8rn33PuH
	 c3yERlg6YQcATtnZbjOqGAe9MjQOI1aQHq8wgAea7vfsS7mG7wpnE6jTB/hBGWPQwZ
	 yNNZ0+x4PpZDAFrrs0KCS+frLk2iVH0gLIzeYtXLMiObIl0ONCWZCqXDrQ0fiLUq7M
	 46RzxWnteydC9wKFMqjjS/Tcvi6PSw7Uf2l5hC9FDuI2x6URPm7xjsmewrrwjiIQtU
	 Is118cDhbvHVg==
Date: Fri, 18 Apr 2025 23:10:05 +0000
To: Alejandro Vallejo <agarciav@amd.com>
From: dmkhn@proton.me
Cc: xen-devel@lists.xenproject.org, "Daniel P. Smith" <dpsmith@apertussolutions.com>, Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>, =?utf-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, Jason Andryuk <jason.andryuk@amd.com>
Subject: Re: [PATCH v4 10/13] x86/hyperlaunch: specify dom0 mode with device tree
Message-ID: <aALbyauYjtTErno5@kraken>
In-Reply-To: <20250417124844.11143-11-agarciav@amd.com>
References: <20250417124844.11143-1-agarciav@amd.com> <20250417124844.11143-11-agarciav@amd.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: c34f322bb8364bfbacd10fea4c5e44c4d89ec955
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Thu, Apr 17, 2025 at 01:48:32PM +0100, Alejandro Vallejo wrote:
> From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
>=20
> Enable selecting the mode in which the domain will be built and ran. This
> includes:
>=20
>   - 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)
>=20
> In the device tree, this will be represented as a bit map that will be ca=
rried
> through into struct boot_domain.
>=20
> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
> Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>
> Signed-off-by: Alejandro Vallejo <agarciav@amd.com>

Reviewed-by: Denis Mukhin <dmukhin@ford.com>

> ---
> v4:
>   * printk adjustments
>   * reject nodes with conflicting mode settings
> ---
>  xen/arch/x86/include/asm/boot-domain.h |  5 +++++
>  xen/arch/x86/setup.c                   |  3 ++-
>  xen/common/domain-builder/fdt.c        | 21 +++++++++++++++++++++
>  3 files changed, 28 insertions(+), 1 deletion(-)
>=20
> diff --git a/xen/arch/x86/include/asm/boot-domain.h b/xen/arch/x86/includ=
e/asm/boot-domain.h
> index d7c6042e25..e316d4bcde 100644
> --- a/xen/arch/x86/include/asm/boot-domain.h
> +++ b/xen/arch/x86/include/asm/boot-domain.h
> @@ -13,6 +13,11 @@
>  struct boot_domain {
>      domid_t domid;
>=20
> +                                          /* On     | Off    */
> +#define BUILD_MODE_PARAVIRT      (1 << 0) /* PV     | PVH/HVM */
> +#define BUILD_MODE_ENABLE_DM     (1 << 1) /* HVM    | PVH     */
> +    uint32_t mode;
> +
>      struct boot_module *kernel;
>      struct boot_module *module;
>      const char *cmdline;
> diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
> index 04ad2d0937..05e3d2cf2a 100644
> --- a/xen/arch/x86/setup.c
> +++ b/xen/arch/x86/setup.c
> @@ -1020,7 +1020,8 @@ static struct domain *__init create_dom0(struct boo=
t_info *bi)
>      struct boot_domain *bd =3D &bi->domains[0];
>      struct domain *d;
>=20
> -    if ( opt_dom0_pvh )
> +    if ( opt_dom0_pvh ||
> +         (bi->hyperlaunch_enabled && !(bd->mode & BUILD_MODE_PARAVIRT)) =
)
>      {
>          dom0_cfg.flags |=3D (XEN_DOMCTL_CDF_hvm |
>                             ((hvm_hap_supported() && !opt_dom0_shadow) ?
> diff --git a/xen/common/domain-builder/fdt.c b/xen/common/domain-builder/=
fdt.c
> index 0d3c713041..6809c7f917 100644
> --- a/xen/common/domain-builder/fdt.c
> +++ b/xen/common/domain-builder/fdt.c
> @@ -225,6 +225,27 @@ static int __init process_domain_node(
>              bd->domid =3D val;
>              printk(XENLOG_INFO "  domid: %d\n", bd->domid);
>          }
> +        else if ( !strncmp(prop_name, "mode", name_len) )
> +        {
> +            if ( (rc =3D fdt_prop_as_u32(prop, &bd->mode)) )
> +            {
> +                printk(XENLOG_ERR
> +                       "  failed processing mode for domain %s\n", name)=
;
> +                return rc;
> +            }
> +
> +            if ( (bd->mode & BUILD_MODE_PARAVIRT)  &&
> +                 (bd->mode & BUILD_MODE_ENABLE_DM) )
> +            {
> +                printk(XENLOG_ERR "  mode: invalid (pv+hvm)\n");
> +                return -EINVAL;
> +            }
> +
> +            printk(XENLOG_INFO "  mode: %s\n",
> +                   (bd->mode & BUILD_MODE_PARAVIRT)  ? "pv"  :
> +                   (bd->mode & BUILD_MODE_ENABLE_DM) ? "hvm" :
> +                                                       "pvh");
> +        }
>      }
>=20
>      fdt_for_each_subnode(node, fdt, dom_node)
> --
> 2.43.0
>=20
>=20



From xen-devel-bounces@lists.xenproject.org Fri Apr 18 23:21:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 18 Apr 2025 23:21:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.959618.1351932 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5v1M-0006kJ-Qv; Fri, 18 Apr 2025 23:21:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 959618.1351932; Fri, 18 Apr 2025 23:21: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 1u5v1M-0006kC-OT; Fri, 18 Apr 2025 23:21:20 +0000
Received: by outflank-mailman (input) for mailman id 959618;
 Fri, 18 Apr 2025 23:21: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=UscN=XE=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u5v1K-0006k3-Pq
 for xen-devel@lists.xenproject.org; Fri, 18 Apr 2025 23:21:19 +0000
Received: from mail-4316.protonmail.ch (mail-4316.protonmail.ch [185.70.43.16])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d3a2b326-1cab-11f0-9eb0-5ba50f476ded;
 Sat, 19 Apr 2025 01:21:16 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d3a2b326-1cab-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1745018475; x=1745277675;
	bh=ABLOqkPMsPWNWAB6FfLPsuI9qxZVMZ+kKR4Ag6WDRwc=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=B39mp4ARyVq9W+t/r4Bn8LN4uh889pJXYNbd9tmMrf6hJRSS1N4z6xlRNlVrHWwlC
	 cOE4BQcN0BImRnP8Ua0urfI/BFradd91B0pJxmO/uStp69H0iawI+hs01177INgVhr
	 QE22zhgGOXMr2k/nN/qhu5QEy8hsMcm+02bA7eQZK1gkENC69SQdJVWeq2Ye2j0RZF
	 EmLzASGHTfcz9jWdhxL5qZWdrG7CyCK0GEGTdOz+kd5V3pamMEB7FRRiq175nM6/e8
	 YT/5bBN3oHJHgzwRej1KoJtoO/tpvsk3+rqtW9yw75/jHRUebvkpjIfpDY26+RC+rf
	 CdEcmNSdbbF2A==
Date: Fri, 18 Apr 2025 23:21:10 +0000
To: Alejandro Vallejo <agarciav@amd.com>
From: dmkhn@proton.me
Cc: xen-devel@lists.xenproject.org, "Daniel P. Smith" <dpsmith@apertussolutions.com>, Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>, =?utf-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, Bertrand Marquis <bertrand.marquis@arm.com>, Jason Andryuk <jason.andryuk@amd.com>
Subject: Re: [PATCH v4 11/13] x86/hyperlaunch: add memory parsing to domain config
Message-ID: <aALeY6bt7lDCwXii@kraken>
In-Reply-To: <20250417124844.11143-12-agarciav@amd.com>
References: <20250417124844.11143-1-agarciav@amd.com> <20250417124844.11143-12-agarciav@amd.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 8de3ece4b171ec363cf4fb366f245d5306e722d3
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Thu, Apr 17, 2025 at 01:48:33PM +0100, Alejandro Vallejo wrote:
> From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
>=20
> Add three properties, memory, mem-min, and mem-max, to the domain node de=
vice
> tree parsing to define the memory allocation for a domain. All three fiel=
ds are
> expressed in kb and written as a u64 in the device tree entries.
>=20
> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
> Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>
> Signed-off-by: Alejandro Vallejo <agarciav@amd.com>
> ---
> Can't use KB() rather tha SZ_1K, as that's strictly for literals.

Oh, that's right! Thanks!

>=20
> v4:
>   * Don't override fdt_prop_as_u64() rc on error.
>   * Add separate printk statements for each memory prop error.
>   * Fix bug setting up dom0_size, dom0_min_size and dom0_max_size
>     * Was overriding dom0_size on all 3 paths.
>   * Pre-initialise max_pages of all boot_domains to be LONG_MAX, just as
>     dom0_max_size.
>     * Eventually dom0_max_size drops out in the bigger series, so we
>       need that logic to be correct.
> ---
>  xen/arch/x86/dom0_build.c              |  8 ++++++
>  xen/arch/x86/include/asm/boot-domain.h |  4 +++
>  xen/arch/x86/setup.c                   |  5 +++-
>  xen/common/domain-builder/fdt.c        | 36 ++++++++++++++++++++++++++
>  xen/include/xen/libfdt/libfdt-xen.h    | 10 +++++++
>  5 files changed, 62 insertions(+), 1 deletion(-)
>=20
> diff --git a/xen/arch/x86/dom0_build.c b/xen/arch/x86/dom0_build.c
> index 0b467fd4a4..8db24dbc0a 100644
> --- a/xen/arch/x86/dom0_build.c
> +++ b/xen/arch/x86/dom0_build.c
> @@ -627,6 +627,14 @@ int __init construct_dom0(const struct boot_domain *=
bd)
>=20
>      process_pending_softirqs();
>=20
> +    /* If param dom0_size was not set and HL config provided memory size=
 */
> +    if ( !get_memsize(&dom0_size, ULONG_MAX) && bd->mem_pages )
> +        dom0_size.nr_pages =3D bd->mem_pages;
> +    if ( !get_memsize(&dom0_min_size, ULONG_MAX) && bd->min_pages )
> +        dom0_min_size.nr_pages =3D bd->min_pages;
> +    if ( !get_memsize(&dom0_max_size, ULONG_MAX) && bd->max_pages )
> +        dom0_max_size.nr_pages =3D bd->max_pages;
> +
>      if ( is_hvm_domain(d) )
>          rc =3D dom0_construct_pvh(bd);
>      else if ( is_pv_domain(d) )
> diff --git a/xen/arch/x86/include/asm/boot-domain.h b/xen/arch/x86/includ=
e/asm/boot-domain.h
> index e316d4bcde..fa8ea1cc66 100644
> --- a/xen/arch/x86/include/asm/boot-domain.h
> +++ b/xen/arch/x86/include/asm/boot-domain.h
> @@ -18,6 +18,10 @@ struct boot_domain {
>  #define BUILD_MODE_ENABLE_DM     (1 << 1) /* HVM    | PVH     */
>      uint32_t mode;
>=20
> +    unsigned long mem_pages;
> +    unsigned long min_pages;
> +    unsigned long max_pages;
> +
>      struct boot_module *kernel;
>      struct boot_module *module;
>      const char *cmdline;
> diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
> index 05e3d2cf2a..455dad454c 100644
> --- a/xen/arch/x86/setup.c
> +++ b/xen/arch/x86/setup.c
> @@ -296,7 +296,10 @@ static const char *cmdline_cook(const char *p, const=
 char *loader_name);
>  struct boot_info __initdata xen_boot_info =3D {
>      .loader =3D "unknown",
>      .cmdline =3D "",
> -    .domains =3D { [0 ... MAX_NR_BOOTDOMS - 1] =3D { .domid =3D DOMID_IN=
VALID } },
> +    .domains =3D { [0 ... MAX_NR_BOOTDOMS - 1] =3D {
> +        .domid =3D DOMID_INVALID,
> +        .max_pages =3D ULONG_MAX,
> +    }},
>  };
>=20
>  static struct boot_info *__init multiboot_fill_boot_info(
> diff --git a/xen/common/domain-builder/fdt.c b/xen/common/domain-builder/=
fdt.c
> index 6809c7f917..90218d120a 100644
> --- a/xen/common/domain-builder/fdt.c
> +++ b/xen/common/domain-builder/fdt.c
> @@ -7,6 +7,7 @@
>  #include <xen/init.h>
>  #include <xen/lib.h>
>  #include <xen/libfdt/libfdt.h>
> +#include <xen/sizes.h>
>=20
>  #include <asm/bootinfo.h>
>  #include <asm/page.h>
> @@ -246,6 +247,41 @@ static int __init process_domain_node(
>                     (bd->mode & BUILD_MODE_ENABLE_DM) ? "hvm" :
>                                                         "pvh");
>          }
> +        else if ( strncmp(prop_name, "memory", name_len) =3D=3D 0 )

Use !strncmp(...) like in the below code?

> +        {
> +            uint64_t kb;
> +            if ( (rc =3D fdt_prop_as_u64(prop, &kb)) )
> +            {
> +                printk(XENLOG_ERR "  bad \"memory\" prop on domain %s\n"=
, name);
> +                return rc;
> +            }
> +            bd->mem_pages =3D PFN_DOWN(kb * SZ_1K);
> +            printk(XENLOG_ERR "  memory: %lu KiB\n", kb);
> +        }
> +        else if ( !strncmp(prop_name, "mem-min", name_len) )
> +        {
> +            uint64_t kb;
> +            if ( (rc =3D fdt_prop_as_u64(prop, &kb)) )
> +            {
> +                printk(XENLOG_ERR
> +                       "  bad \"mem-min\" prop on domain %s\n", name);
> +                return rc;
> +            }
> +            bd->min_pages =3D PFN_DOWN(kb * SZ_1K);
> +            printk(XENLOG_INFO "  min memory: %lu kb\n", kb);
> +        }
> +        else if ( !strncmp(prop_name, "mem-max", name_len) )
> +        {
> +            uint64_t kb;
> +            if ( (rc =3D fdt_prop_as_u64(prop, &kb)) )
> +            {
> +                printk(XENLOG_ERR
> +                       "  bad \"mem-max\" prop on domain %s\n", name);
> +                return rc;
> +            }
> +            bd->max_pages =3D PFN_DOWN(kb * SZ_1K);
> +            printk(XENLOG_INFO "  max memory: %lu KiB\n", kb);
> +        }
>      }
>=20
>      fdt_for_each_subnode(node, fdt, dom_node)
> diff --git a/xen/include/xen/libfdt/libfdt-xen.h b/xen/include/xen/libfdt=
/libfdt-xen.h
> index afc76e7750..3054b48a83 100644
> --- a/xen/include/xen/libfdt/libfdt-xen.h
> +++ b/xen/include/xen/libfdt/libfdt-xen.h
> @@ -24,6 +24,16 @@ static inline int __init fdt_prop_as_u32(
>      return 0;
>  }
>=20
> +static inline int __init fdt_prop_as_u64(
> +    const struct fdt_property *prop, uint64_t *val)
> +{
> +    if ( !prop || fdt32_to_cpu(prop->len) < sizeof(uint64_t) )
> +        return -EINVAL;
> +
> +    *val =3D fdt64_to_cpu(*(const fdt64_t *)prop->data);
> +    return 0;
> +}

Perhaps move the call to common/domain-builder/fdt.c?

> +
>  static inline bool __init fdt_get_prop_offset(
>      const void *fdt, int node, const char *pname, unsigned long *poffset=
)
>  {
> --
> 2.43.0
>=20
>=20



From xen-devel-bounces@lists.xenproject.org Fri Apr 18 23:22:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 18 Apr 2025 23:22:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.959629.1351943 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5v2T-0007Ex-4K; Fri, 18 Apr 2025 23:22:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 959629.1351943; Fri, 18 Apr 2025 23: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 1u5v2T-0007Eq-1h; Fri, 18 Apr 2025 23:22:29 +0000
Received: by outflank-mailman (input) for mailman id 959629;
 Fri, 18 Apr 2025 23:22: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=UscN=XE=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u5v2R-0006k3-Nw
 for xen-devel@lists.xenproject.org; Fri, 18 Apr 2025 23:22:27 +0000
Received: from mail-10631.protonmail.ch (mail-10631.protonmail.ch
 [79.135.106.31]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fd859493-1cab-11f0-9eb0-5ba50f476ded;
 Sat, 19 Apr 2025 01:22:26 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fd859493-1cab-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=br7ljqri75apjnjj3z5knkllz4.protonmail; t=1745018545; x=1745277745;
	bh=VJqho0Oz1oS0bMw6DBkdXhC/n84uMzlHwxttP5e9cRk=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=AHaHmU80itbYc4U+SYiJw6X2ORFbyOL+cs+eNH6AREV8gI3wUmhhA5P5pjQEW6wBQ
	 TltuwDx3OpIzA/nXvuKbDu7G7uLoYqdZxwtxVgis1wuV8ZnStZWDXMi0VInuairxvq
	 uMl/2TxPzIG9PcTal+7I7xGA+Y0ysxL5foXbHPZwfxDgU+cTMKygDFiKW92KEIx3Be
	 na1yp2URgn9hRrxiDmufU+Juzsi0PCTa2mJglRSpZKPbKmkSHtpyQUb2aX3HvRLPSY
	 XQDdvoJhIRujM9coNLGtiRftfVb1+Xo/NHmPwZt4bIwqfXUVwE0T6OPFe9dLAV/onz
	 qnSy9U6EkSyxw==
Date: Fri, 18 Apr 2025 23:22:21 +0000
To: Alejandro Vallejo <agarciav@amd.com>
From: dmkhn@proton.me
Cc: xen-devel@lists.xenproject.org, "Daniel P. Smith" <dpsmith@apertussolutions.com>, Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>, =?utf-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, Jason Andryuk <jason.andryuk@amd.com>
Subject: Re: [PATCH v4 12/13] x86/hyperlaunch: add max vcpu parsing of hyperlaunch device tree
Message-ID: <aALeq+QtFfkJv2WT@kraken>
In-Reply-To: <20250417124844.11143-13-agarciav@amd.com>
References: <20250417124844.11143-1-agarciav@amd.com> <20250417124844.11143-13-agarciav@amd.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: f568f9545a669d4af9175317c8d1a56939760ea7
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Thu, Apr 17, 2025 at 01:48:34PM +0100, Alejandro Vallejo wrote:
> From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
>=20
> Introduce the `cpus` property, named as such for dom0less compatibility, =
that
> represents the maximum number of vcpus to allocate for a domain. In the d=
evice
> tree, it will be encoded as a u32 value.
>=20
> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
> Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>
> Signed-off-by: Alejandro Vallejo <agarciav@amd.com>

Reviewed-by: Denis Mukhin <dmukhin@ford.com>

> ---
> v4:
>   * s/UINT_MAX/UINT32_MAX/ (cosmetic, but...)
>   * s/vpcpus/vcpus/ in commit message.
>   * Reworded printk()
> ---
>  xen/arch/x86/dom0_build.c              |  3 +++
>  xen/arch/x86/include/asm/boot-domain.h |  2 ++
>  xen/common/domain-builder/fdt.c        | 11 +++++++++++
>  3 files changed, 16 insertions(+)
>=20
> diff --git a/xen/arch/x86/dom0_build.c b/xen/arch/x86/dom0_build.c
> index 8db24dbc0a..f734104c74 100644
> --- a/xen/arch/x86/dom0_build.c
> +++ b/xen/arch/x86/dom0_build.c
> @@ -635,6 +635,9 @@ int __init construct_dom0(const struct boot_domain *b=
d)
>      if ( !get_memsize(&dom0_max_size, ULONG_MAX) && bd->max_pages )
>          dom0_max_size.nr_pages =3D bd->max_pages;
>=20
> +    if ( opt_dom0_max_vcpus_max =3D=3D UINT_MAX && bd->max_vcpus )
> +        opt_dom0_max_vcpus_max =3D bd->max_vcpus;
> +
>      if ( is_hvm_domain(d) )
>          rc =3D dom0_construct_pvh(bd);
>      else if ( is_pv_domain(d) )
> diff --git a/xen/arch/x86/include/asm/boot-domain.h b/xen/arch/x86/includ=
e/asm/boot-domain.h
> index fa8ea1cc66..969c02a6ea 100644
> --- a/xen/arch/x86/include/asm/boot-domain.h
> +++ b/xen/arch/x86/include/asm/boot-domain.h
> @@ -22,6 +22,8 @@ struct boot_domain {
>      unsigned long min_pages;
>      unsigned long max_pages;
>=20
> +    unsigned int max_vcpus;
> +
>      struct boot_module *kernel;
>      struct boot_module *module;
>      const char *cmdline;
> diff --git a/xen/common/domain-builder/fdt.c b/xen/common/domain-builder/=
fdt.c
> index 90218d120a..295ab6e8b3 100644
> --- a/xen/common/domain-builder/fdt.c
> +++ b/xen/common/domain-builder/fdt.c
> @@ -282,6 +282,17 @@ static int __init process_domain_node(
>              bd->max_pages =3D PFN_DOWN(kb * SZ_1K);
>              printk(XENLOG_INFO "  max memory: %lu KiB\n", kb);
>          }
> +        else if ( !strncmp(prop_name, "cpus", name_len) )
> +        {
> +            uint32_t val =3D UINT32_MAX;
> +            if ( (rc =3D fdt_prop_as_u32(prop, &val)) )
> +            {
> +                printk(XENLOG_ERR "  bad \"cpus\" prop on domain %s\n", =
name);
> +                return rc;
> +            }
> +            bd->max_vcpus =3D val;
> +            printk(XENLOG_INFO "  cpus: %d\n", bd->max_vcpus);
> +        }
>      }
>=20
>      fdt_for_each_subnode(node, fdt, dom_node)
> --
> 2.43.0
>=20
>=20



From xen-devel-bounces@lists.xenproject.org Fri Apr 18 23:24:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 18 Apr 2025 23:24:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.959642.1351952 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5v4O-0007o2-Fv; Fri, 18 Apr 2025 23:24:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 959642.1351952; Fri, 18 Apr 2025 23:24: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 1u5v4O-0007nv-Cm; Fri, 18 Apr 2025 23:24:28 +0000
Received: by outflank-mailman (input) for mailman id 959642;
 Fri, 18 Apr 2025 23:24: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=UscN=XE=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u5v4M-0007np-HK
 for xen-devel@lists.xenproject.org; Fri, 18 Apr 2025 23:24:26 +0000
Received: from mail-4322.protonmail.ch (mail-4322.protonmail.ch [185.70.43.22])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 43af7b48-1cac-11f0-9ffb-bf95429c2676;
 Sat, 19 Apr 2025 01:24:24 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 43af7b48-1cac-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1745018663; x=1745277863;
	bh=nAvzqArqYSTLRURa4P6i3KNfYYfKYXiGJKp1lDObgqc=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=G4joejYVCRw0Q/6QoVR64gS/em2jq1fddH3ExGwoij+hG3F/5EYonMmf5C4STB8Yx
	 HOPqS/EvTTzBrxT4kn3e1YkntT9ZYra1RjnT7glDHRd/YbLAId5IXgxooZnBIL6BKl
	 7eAG113vnVHL10trTBjGONtkUvmGl5aY086xT1e6kxmKh2UX0xCDeL9xhB4j1UfLSt
	 y1EDa69khs4EOtKcVBVVZU+lHhcQgvmn6oa+3qYA0qFWhPPtvehLJ0iNTAEARi2sFd
	 IeaBHq155izaqtLdtg0rEpVAwd0d+Eltv0Nrnz3mWktz9b7imyLVYmyuwXc5Hmt2SZ
	 i8Hi4rnVuSShQ==
Date: Fri, 18 Apr 2025 23:24:20 +0000
To: Alejandro Vallejo <agarciav@amd.com>
From: dmkhn@proton.me
Cc: xen-devel@lists.xenproject.org, "Daniel P. Smith" <dpsmith@apertussolutions.com>, Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>, =?utf-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, Jason Andryuk <jason.andryuk@amd.com>
Subject: Re: [PATCH v4 13/13] x86/hyperlaunch: add capabilities to boot domain
Message-ID: <aALfIbTCAO95zycA@kraken>
In-Reply-To: <20250417124844.11143-14-agarciav@amd.com>
References: <20250417124844.11143-1-agarciav@amd.com> <20250417124844.11143-14-agarciav@amd.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 3cce8b891f41d010930a5b93ca4a50da3357058e
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Thu, Apr 17, 2025 at 01:48:35PM +0100, Alejandro Vallejo wrote:
> From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
>=20
> Introduce the ability to assign capabilities to a domain via its definiti=
on 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`.
>=20
> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
> Signed-off-by: Alejandro Vallejo <agarciav@amd.com>

Reviewed-by: Denis Mukhin <dmukhin@ford.com>

> ---
> v4:
>   * Dropped Jason's R-by.
>   * Refactored caps printinng logic
>     * It just wasn't xenlog-compatible as it was.
>   * Moved pv_shim check to builder_init, so the capability is just not gi=
ven.
>     * And inlined the create_flags variable now that's tractable.
>   * Validated input capabilities after coming out of the DT.
> ---
>  xen/arch/x86/include/asm/boot-domain.h |  5 +++++
>  xen/arch/x86/setup.c                   |  3 ++-
>  xen/common/domain-builder/core.c       |  2 ++
>  xen/common/domain-builder/fdt.c        | 20 ++++++++++++++++++++
>  4 files changed, 29 insertions(+), 1 deletion(-)
>=20
> diff --git a/xen/arch/x86/include/asm/boot-domain.h b/xen/arch/x86/includ=
e/asm/boot-domain.h
> index 969c02a6ea..5c143d82af 100644
> --- a/xen/arch/x86/include/asm/boot-domain.h
> +++ b/xen/arch/x86/include/asm/boot-domain.h
> @@ -13,6 +13,11 @@
>  struct boot_domain {
>      domid_t domid;
>=20
> +#define BUILD_CAPS_NONE          (0U)
> +#define BUILD_CAPS_CONTROL       (1U << 0)
> +#define BUILD_CAPS__ALL          BUILD_CAPS_CONTROL
> +    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 455dad454c..3cdd8bc2f9 100644
> --- a/xen/arch/x86/setup.c
> +++ b/xen/arch/x86/setup.c
> @@ -1040,7 +1040,8 @@ static struct domain *__init create_dom0(struct boo=
t_info *bi)
>      if ( bd->domid =3D=3D DOMID_INVALID )
>          /* Create initial domain.  Not d0 for pvshim. */
>          bd->domid =3D get_initial_domain_id();
> -    d =3D domain_create(bd->domid, &dom0_cfg, pv_shim ? 0 : CDF_privileg=
ed);
> +    d =3D domain_create(bd->domid, &dom0_cfg,
> +            (bd->capabilities & BUILD_CAPS_CONTROL) ? CDF_privileged : 0=
);
>      if ( IS_ERR(d) )
>          panic("Error creating d%u: %ld\n", bd->domid, PTR_ERR(d));
>=20
> diff --git a/xen/common/domain-builder/core.c b/xen/common/domain-builder=
/core.c
> index 4b4230f2ff..d1a5d6125e 100644
> --- a/xen/common/domain-builder/core.c
> +++ b/xen/common/domain-builder/core.c
> @@ -8,6 +8,7 @@
>  #include <xen/lib.h>
>=20
>  #include <asm/bootinfo.h>
> +#include <asm/pv/shim.h>
>  #include <asm/setup.h>
>=20
>  #include "fdt.h"
> @@ -93,6 +94,7 @@ void __init builder_init(struct boot_info *bi)
>=20
>          bi->mods[i].type =3D BOOTMOD_KERNEL;
>          bi->domains[0].kernel =3D &bi->mods[i];
> +        bi->domains[0].capabilities |=3D pv_shim ? 0 : BUILD_CAPS_CONTRO=
L;
>          bi->nr_domains =3D 1;
>      }
>  }
> diff --git a/xen/common/domain-builder/fdt.c b/xen/common/domain-builder/=
fdt.c
> index 295ab6e8b3..3e3a84e2d0 100644
> --- a/xen/common/domain-builder/fdt.c
> +++ b/xen/common/domain-builder/fdt.c
> @@ -293,6 +293,26 @@ static int __init process_domain_node(
>              bd->max_vcpus =3D val;
>              printk(XENLOG_INFO "  cpus: %d\n", bd->max_vcpus);
>          }
> +        else if ( !strncmp(prop_name, "capabilities", name_len) )
> +        {
> +            if ( (rc =3D fdt_prop_as_u32(prop, &bd->capabilities)) )
> +            {
> +                printk(XENLOG_ERR
> +                       "  bad \"capabilities\" on domain %s\n", name);
> +                return rc;
> +            }
> +
> +            if ( bd->capabilities & ~BUILD_CAPS__ALL )
> +            {
> +                printk(XENLOG_WARNING "  unknown capabilities: %#x\n",
> +                       bd->capabilities & ~BUILD_CAPS__ALL);
> +
> +                bd->capabilities &=3D BUILD_CAPS__ALL;
> +            }
> +
> +            printk(XENLOG_INFO "  caps: %s\n",
> +                   bd->capabilities & BUILD_CAPS_CONTROL ? "c" : "");
> +        }
>      }
>=20
>      fdt_for_each_subnode(node, fdt, dom_node)
> --
> 2.43.0
>=20
>=20



From xen-devel-bounces@lists.xenproject.org Fri Apr 18 23:39:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 18 Apr 2025 23:39:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.959660.1351963 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5vId-0001Pc-S3; Fri, 18 Apr 2025 23:39:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 959660.1351963; Fri, 18 Apr 2025 23:39: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 1u5vId-0001PV-P9; Fri, 18 Apr 2025 23:39:11 +0000
Received: by outflank-mailman (input) for mailman id 959660;
 Fri, 18 Apr 2025 23:39: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=6n86=XE=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u5vIc-0001PP-7I
 for xen-devel@lists.xenproject.org; Fri, 18 Apr 2025 23:39:10 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 518880e0-1cae-11f0-9ffb-bf95429c2676;
 Sat, 19 Apr 2025 01:39:07 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id AB47443645;
 Fri, 18 Apr 2025 23:39:04 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id DCE05C4CEE2;
 Fri, 18 Apr 2025 23:39: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: 518880e0-1cae-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1745019545;
	bh=5wGAQWpQTIZX2l3pQvcOxx8yBagYYlMioXmaNEknYxQ=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=aCnWgkFbB2SgGMNSuJjwP+IBukVUZqyMytHVi2C9kqoIoh5KiPd0dT85Otn3Rsbp7
	 3T+MsOEtHCCrlRJOhpMg0ifDIijRYC83RHxezxbkJrMhvQF9+12C4vWROS+CKhm2iH
	 WPS8+7j06z0qkJ4iih84musFRUk1tR1uMDTBfz0GYYwVTWtE1DvuPxS3zgk4dGOIfl
	 M9hLdNBLUahUFBl6jQUQX0KoVbXQ+VUtCXAJjYuBepHOv9YQRFYmbybitUe19FaJcc
	 qkbgPfA0kGUXkIi7HDEyjzhwocffj3C7AJAXWdIAC5g/5k3kI0ESlDvpIz5AjvgBib
	 be0i8ocGOk/Vg==
Date: Fri, 18 Apr 2025 16:39:04 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Aleksandr Partanen <alex.pentagrid@gmail.com>
cc: qemu-devel@nongnu.org, Stefano Stabellini <sstabellini@kernel.org>, 
    "Edgar E. Iglesias" <edgar.iglesias@gmail.com>, 
    xen-devel@lists.xenproject.org, Paul Durrant <paul@xen.org>, 
    Anthony PERARD <anthony@xenproject.org>
Subject: Re: [PATCH] xen: mapcache: Fix finding matching entry
In-Reply-To: <20250410144604.214977-1-alex.pentagrid@gmail.com>
Message-ID: <alpine.DEB.2.22.394.2504181638300.785180@ubuntu-linux-20-04-desktop>
References: <20250410144604.214977-1-alex.pentagrid@gmail.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Thu, 10 Apr 2025, Aleksandr Partanen wrote:
> If we have request without lock and hit unlocked or invalid
> entry during the search, we remap it immediately,
> even if we have matching entry in next entries in bucket.
> This leads to duplication of mappings of the same size,
> and to possibility of selecting the wrong element
> during invalidation and underflow it's entry->lock counter
> 
> Signed-off-by: Aleksandr Partanen <alex.pentagrid@gmail.com>

Hi Aleksandr, thanks for the patch, it looks correct to me.

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


Edgar, would you be able to give it a look as well to make sure?


> ---
>  hw/xen/xen-mapcache.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/hw/xen/xen-mapcache.c b/hw/xen/xen-mapcache.c
> index 698b5c53ed..2c8f861fdb 100644
> --- a/hw/xen/xen-mapcache.c
> +++ b/hw/xen/xen-mapcache.c
> @@ -376,12 +376,12 @@ tryagain:
>  
>      entry = &mc->entry[address_index % mc->nr_buckets];
>  
> -    while (entry && (lock || entry->lock) && entry->vaddr_base &&
> -            (entry->paddr_index != address_index || entry->size != cache_size ||
> +    while (entry && (!entry->vaddr_base ||
> +            entry->paddr_index != address_index || entry->size != cache_size ||
>               !test_bits(address_offset >> XC_PAGE_SHIFT,
>                   test_bit_size >> XC_PAGE_SHIFT,
>                   entry->valid_mapping))) {
> -        if (!free_entry && !entry->lock) {
> +        if (!free_entry && (!entry->lock || !entry->vaddr_base)) {
>              free_entry = entry;
>              free_pentry = pentry;
>          }
> -- 
> 2.39.5
> 


From xen-devel-bounces@lists.xenproject.org Fri Apr 18 23:46:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 18 Apr 2025 23:46:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.959673.1351972 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5vPq-0003Lw-I8; Fri, 18 Apr 2025 23:46:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 959673.1351972; Fri, 18 Apr 2025 23: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 1u5vPq-0003Lp-FW; Fri, 18 Apr 2025 23:46:38 +0000
Received: by outflank-mailman (input) for mailman id 959673;
 Fri, 18 Apr 2025 23:46: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=6n86=XE=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u5vPp-0003Lj-Jd
 for xen-devel@lists.xenproject.org; Fri, 18 Apr 2025 23:46:37 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5c766a61-1caf-11f0-9ffb-bf95429c2676;
 Sat, 19 Apr 2025 01:46:35 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 2F21D61120;
 Fri, 18 Apr 2025 23:46:15 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 68FF0C4CEE2;
 Fri, 18 Apr 2025 23:46: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: 5c766a61-1caf-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1745019993;
	bh=zhQwSCGGyqZvOEkRpK1fbkf99q9VYRWbjps0ZwjydN4=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=e+G99QFto6PCmzHQ3F117Gpi0DhG+Riyt2LPc83drxSGBAj8k7nSLnVdUPBzxy14q
	 YR/F9fgFll8BxzVQ34JdcDc/52qWgE/L0PLHltDXmTeSjr3mhFz6EtAutU82wAT8DL
	 uo1fRp7Zea86aeRehE21Ff6EsbmP2jGSWsz/bq9uK8qcsiiFrYjIBFXCiiz6yV4VGA
	 4gxgpuWnEfqfSLY3BRtwTE8zJZ5cATPP9RsPeAiAFnLvRVFWUvoEjQNSy1mLvlmduj
	 oHLfunRCzRVK+NFCKhGRyNHsK8H8R5nF2abtcVLThsX81I+o3wGlK71WTDZt4+oswX
	 01LL2nFRoVhDQ==
Date: Fri, 18 Apr 2025 16:46:31 -0700 (PDT)
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>, 
    Anthony PERARD <anthony.perard@vates.tech>, 
    Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, 
    Julien Grall <julien@xen.org>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH v5] xen: debug: gcov: add condition coverage support
In-Reply-To: <20250409101105.2733236-1-volodymyr_babchuk@epam.com>
Message-ID: <alpine.DEB.2.22.394.2504181643380.785180@ubuntu-linux-20-04-desktop>
References: <20250409101105.2733236-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 Wed, 9 Apr 2025, Volodymyr Babchuk wrote:
> Condition coverage, also known as MC/DC (modified condition/decision
> coverage) is a coverage metric that tracks separate outcomes in
> boolean expressions.
> 
> This patch adds CONFIG_CONDITION_COVERAGE option to enable MC/DC for
> GCC. Clang is not supported right now because Xen can't emit version
> 10 of LLVM profile data, where MC/DC support was added.
> 
> Also, use the opportunity to convert COV_FLAGS to cov-cflags-y, which
> reduces amount of ifeqs in Rules.mk. Otherwise this patch had to add
> another nesting level with "ifeq ($(CONFIG_CONDITION_COVERAGE),y)".
> 
> Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>

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


> ---
> Changes in v5:
>  - cov-flags-y -> cov-cflags-y
>  - Clarified why Clang is not supported right now
> 
> Changes in v4:
>  - Slight formatting fixes
>  - COV_FLAGS  -> cov-flags-y
> 
> Changes in v3:
>  - Introduced CC_HAS_MCDC that checks if compiler supports
>    required feature
> 
> Changes in v2:
>  - Move gcc version check from .c file to Rules.mk (I can't find
>    an easy way to check GCC version at Kconfig level)
>  - Check for gcc 14, not gcc 14.1
> ---
>  xen/Kconfig       |  4 ++++
>  xen/Kconfig.debug |  9 +++++++++
>  xen/Rules.mk      | 14 +++++++-------
>  3 files changed, 20 insertions(+), 7 deletions(-)
> 
> diff --git a/xen/Kconfig b/xen/Kconfig
> index 2128f0ccfc..3a723db8ea 100644
> --- a/xen/Kconfig
> +++ b/xen/Kconfig
> @@ -41,6 +41,10 @@ config CC_SPLIT_SECTIONS
>  config CC_HAS_UBSAN
>  	def_bool $(cc-option,-fsanitize=undefined)
>  
> +# Compiler supports -fcondition-coverage aka MC/DC
> +config CC_HAS_MCDC
> +	def_bool $(cc-option,-fcondition-coverage)
> +
>  # Set code alignment.
>  #
>  # Allow setting on a boolean basis, and then convert such selection to an
> diff --git a/xen/Kconfig.debug b/xen/Kconfig.debug
> index f7cc5ffaab..f89cbd823b 100644
> --- a/xen/Kconfig.debug
> +++ b/xen/Kconfig.debug
> @@ -44,6 +44,15 @@ config COVERAGE
>  
>  	  If unsure, say N here.
>  
> +config CONDITION_COVERAGE
> +	bool "Condition coverage support"
> +	depends on COVERAGE && CC_HAS_MCDC
> +	help
> +	  Enable condition coverage support. Used for collecting MC/DC
> +	  (Modified Condition/Decision Coverage) metrics.
> +
> +	  If unsure, say N here.
> +
>  config DEBUG_LOCK_PROFILE
>  	bool "Lock Profiling"
>  	select DEBUG_LOCKS
> diff --git a/xen/Rules.mk b/xen/Rules.mk
> index d759cccee3..da21850926 100644
> --- a/xen/Rules.mk
> +++ b/xen/Rules.mk
> @@ -29,6 +29,7 @@ targets :=
>  subdir-y :=
>  CFLAGS-y :=
>  AFLAGS-y :=
> +cov-cflags-y :=
>  nocov-y :=
>  noubsan-y :=
>  
> @@ -133,19 +134,18 @@ $(filter %.init.o,$(obj-y) $(obj-bin-y) $(extra-y)): CFLAGS-y += -DINIT_SECTIONS
>  
>  non-init-objects = $(filter-out %.init.o, $(obj-y) $(obj-bin-y) $(extra-y))
>  
> -ifeq ($(CONFIG_COVERAGE),y)
>  ifeq ($(CONFIG_CC_IS_CLANG),y)
> -    COV_FLAGS := -fprofile-instr-generate -fcoverage-mapping
> +    cov-cflags-$(CONFIG_COVERAGE) := -fprofile-instr-generate -fcoverage-mapping
>  else
> -    COV_FLAGS := -fprofile-arcs -ftest-coverage
> +    cov-cflags-$(CONFIG_COVERAGE) := -fprofile-arcs -ftest-coverage
> +    cov-cflags-$(CONFIG_CONDITION_COVERAGE) += -fcondition-coverage
>  endif
>  
> -# Reset COV_FLAGS in cases where an objects has another one as prerequisite
> +# Reset cov-cflags-y in cases where an objects has another one as prerequisite
>  $(nocov-y) $(filter %.init.o, $(obj-y) $(obj-bin-y) $(extra-y)): \
> -    COV_FLAGS :=
> +    cov-cflags-y :=
>  
> -$(non-init-objects): _c_flags += $(COV_FLAGS)
> -endif
> +$(non-init-objects): _c_flags += $(cov-cflags-y)
>  
>  ifeq ($(CONFIG_UBSAN),y)
>  # Any -fno-sanitize= options need to come after any -fsanitize= options
> -- 
> 2.48.1
> 


From xen-devel-bounces@lists.xenproject.org Sat Apr 19 00:20:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 19 Apr 2025 00:20:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.959690.1351983 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5vw5-0000W1-GL; Sat, 19 Apr 2025 00:19:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 959690.1351983; Sat, 19 Apr 2025 00:19: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 1u5vw5-0000Vu-CL; Sat, 19 Apr 2025 00:19:57 +0000
Received: by outflank-mailman (input) for mailman id 959690;
 Sat, 19 Apr 2025 00:19: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=HXfy=XF=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u5vw3-0000Vo-G6
 for xen-devel@lists.xenproject.org; Sat, 19 Apr 2025 00:19:55 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0304d004-1cb4-11f0-9eb0-5ba50f476ded;
 Sat, 19 Apr 2025 02:19:53 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id D6B89446C1;
 Sat, 19 Apr 2025 00:19:49 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id D7085C4CEE2;
 Sat, 19 Apr 2025 00:19: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: 0304d004-1cb4-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1745021991;
	bh=TcqDSfzZHx8nTlLGYf17mV+0TwxQDxg5oLFelYu53nA=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=DKnK29OMDLGym7DIc1lfG1Nss/z/PKgaCcCznzEYGDDMRB02+9T4+rAU6NtGmGKB7
	 1wUCcBSioDz7qQ7TKTwKPBnj03vt28l9sRlsKMfE4LMVGfB5YgPN/Mcap1SsUE/0Ow
	 3ZSgqYlwwJOgagM6EaZ2vl2nEMx+QhuF1nEii8EW1ciQKRrSJbfoW7E9X0LxYiowLM
	 ufI9q+7OLCkruEkg2sgiTM9zBVUQfji2Uzd6UUIob6ktkCCq24iD6d9bS0567AMTbX
	 N4AyKz46cnnLzRHe84gx2Y0ZOJeJaLENxMTUeQPNmT9iXazAM22P3A2Y2B4Uj8dRu5
	 v9UNUaDXwhDBA==
Date: Fri, 18 Apr 2025 17:19:48 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Mykyta Poturai <Mykyta_Poturai@epam.com>
cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    Oleksandr Andrushchenko <Oleksandr_Andrushchenko@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: Re: [PATCH v3 3/4] xen/arm: add support for PCI child bus
In-Reply-To: <24a9ed02f049d3187a14a0c0ad847ff97d346b79.1744203405.git.mykyta_poturai@epam.com>
Message-ID: <alpine.DEB.2.22.394.2504181705510.785180@ubuntu-linux-20-04-desktop>
References: <cover.1744203405.git.mykyta_poturai@epam.com> <24a9ed02f049d3187a14a0c0ad847ff97d346b79.1744203405.git.mykyta_poturai@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, 9 Apr 2025, Mykyta Poturai wrote:
> From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
> 
> PCI host bridges often have different ways to access the root and child
> bus configuration spaces. One of the examples is Designware's host bridge
> and its multiple clones [1].
> 
> Linux kernel implements this by instantiating a child bus when device
> drivers provide not only the usual pci_ops to access ECAM space (this is
> the case for the generic host bridge), but also means to access the child
> bus which has a dedicated configuration space and own implementation for
> accessing the bus, e.g. child_ops.
> 
> For Xen it is not feasible to fully implement PCI bus infrastructure as
> Linux kernel does, but still child bus can be supported.
> 
> Add support for the PCI child bus which includes the following changes:
> - introduce bus mapping functions depending on SBDF
> - assign bus start and end for the child bus and re-configure the same for
>   the parent (root) bus
> - make pci_find_host_bridge be aware of multiple busses behind the same bridge
> - update pci_host_bridge_mappings, so it also doesn't map to guest the memory
>   spaces belonging to the child bus
> - make pci_host_common_probe accept one more pci_ops structure for the child bus
> - install MMIO handlers for the child bus
> - re-work vpci_mmio_{write|read} with parent and child approach in mind
> 
> [1] https://elixir.bootlin.com/linux/v5.15/source/drivers/pci/controller/dwc
> 
> Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
> Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
> ---
> v2->v3:
> * no change
> 
> v1->v2:
> * fixed compilation issues
> ---
>  xen/arch/arm/include/asm/pci.h      | 12 +++-
>  xen/arch/arm/pci/ecam.c             | 17 ++++--
>  xen/arch/arm/pci/pci-access.c       | 37 +++++++++++--
>  xen/arch/arm/pci/pci-host-common.c  | 86 +++++++++++++++++++++++------
>  xen/arch/arm/pci/pci-host-generic.c |  2 +-
>  xen/arch/arm/pci/pci-host-zynqmp.c  |  2 +-
>  xen/arch/arm/vpci.c                 | 83 ++++++++++++++++++++++------
>  7 files changed, 192 insertions(+), 47 deletions(-)
> 
> diff --git a/xen/arch/arm/include/asm/pci.h b/xen/arch/arm/include/asm/pci.h
> index 3d2ca9b5b0..addec31791 100644
> --- a/xen/arch/arm/include/asm/pci.h
> +++ b/xen/arch/arm/include/asm/pci.h
> @@ -67,6 +67,9 @@ struct pci_host_bridge {
>      uint16_t segment;                /* Segment number */
>      struct pci_config_window* cfg;   /* Pointer to the bridge config window */
>      const struct pci_ops *ops;
> +    /* Child bus */
> +    struct pci_config_window *child_cfg;
> +    const struct pci_ops *child_ops;
>      void *priv;                      /* Private data of the bridge. */
>  };
>  
> @@ -96,14 +99,19 @@ struct pci_ecam_ops {
>  /* Default ECAM ops */
>  extern const struct pci_ecam_ops pci_generic_ecam_ops;
>  
> -struct pci_host_bridge *pci_host_common_probe(struct dt_device_node *dev,
> -                                              const struct pci_ecam_ops *ops);
> +struct pci_host_bridge *
> +pci_host_common_probe(struct dt_device_node *dev,
> +                      const struct pci_ecam_ops *ops,
> +                      const struct pci_ecam_ops *child_ops);
>  int pci_generic_config_read(struct pci_host_bridge *bridge, pci_sbdf_t sbdf,
>                              uint32_t reg, uint32_t len, uint32_t *value);
>  int pci_generic_config_write(struct pci_host_bridge *bridge, pci_sbdf_t sbdf,
>                               uint32_t reg, uint32_t len, uint32_t value);
>  void __iomem *pci_ecam_map_bus(struct pci_host_bridge *bridge,
>                                 pci_sbdf_t sbdf, uint32_t where);
> +void __iomem *pci_ecam_map_bus_generic(const struct pci_config_window *cfg,
> +                                       const struct pci_ecam_ops *ops,
> +                                       pci_sbdf_t sbdf, uint32_t where);
>  bool pci_ecam_need_p2m_hwdom_mapping(struct domain *d,
>                                       struct pci_host_bridge *bridge,
>                                       uint64_t addr);
> diff --git a/xen/arch/arm/pci/ecam.c b/xen/arch/arm/pci/ecam.c
> index 3987f96b01..ad0b2c35f9 100644
> --- a/xen/arch/arm/pci/ecam.c
> +++ b/xen/arch/arm/pci/ecam.c
> @@ -20,12 +20,10 @@
>  /*
>   * Function to implement the pci_ops->map_bus method.
>   */
> -void __iomem *pci_ecam_map_bus(struct pci_host_bridge *bridge,
> -                               pci_sbdf_t sbdf, uint32_t where)
> +void __iomem *pci_ecam_map_bus_generic(const struct pci_config_window *cfg,
> +                                       const struct pci_ecam_ops *ops,
> +                                       pci_sbdf_t sbdf, uint32_t where)
>  {
> -    const struct pci_config_window *cfg = bridge->cfg;
> -    const struct pci_ecam_ops *ops =
> -        container_of(bridge->ops, const struct pci_ecam_ops, pci_ops);
>      unsigned int devfn_shift = ops->bus_shift - 8;
>      void __iomem *base;
>      unsigned int busn = sbdf.bus;
> @@ -39,6 +37,15 @@ void __iomem *pci_ecam_map_bus(struct pci_host_bridge *bridge,
>      return base + (sbdf.devfn << devfn_shift) + where;
>  }
>  
> +void __iomem *pci_ecam_map_bus(struct pci_host_bridge *bridge, pci_sbdf_t sbdf,
> +                               uint32_t where)
> +{
> +    const struct pci_ecam_ops *ops =
> +        container_of(bridge->ops, const struct pci_ecam_ops, pci_ops);
> +
> +    return pci_ecam_map_bus_generic(bridge->cfg, ops, sbdf, where);
> +}

It doesn't look like this change is necessary? It doesn't seem that
pci_ecam_map_bus_generic is used anywhere?


>  bool __init pci_ecam_need_p2m_hwdom_mapping(struct domain *d,
>                                              struct pci_host_bridge *bridge,
>                                              uint64_t addr)
> diff --git a/xen/arch/arm/pci/pci-access.c b/xen/arch/arm/pci/pci-access.c
> index 9f9aac43d7..cc4787f2b5 100644
> --- a/xen/arch/arm/pci/pci-access.c
> +++ b/xen/arch/arm/pci/pci-access.c
> @@ -18,10 +18,31 @@
>  #define INVALID_VALUE (~0U)
>  #define PCI_ERR_VALUE(len) GENMASK(0, len * 8)
>  
> +static const struct pci_ops *get_ops(struct pci_host_bridge *bridge,
> +                                     pci_sbdf_t sbdf)
> +{
> +    if ( bridge->child_ops )
> +    {
> +        struct pci_config_window *cfg = bridge->child_cfg;
> +
> +        if ( (sbdf.bus >= cfg->busn_start) && (sbdf.bus <= cfg->busn_end) )
> +            return bridge->child_ops;
> +    }
> +    return bridge->ops;
> +}
> +
> +static void __iomem *map_bus(struct pci_host_bridge *bridge, pci_sbdf_t sbdf,
> +                             uint32_t reg)

NIT: I would do static inline here


> +{
> +    const struct pci_ops *ops = get_ops(bridge, sbdf);
> +
> +    return ops->map_bus(bridge, sbdf, reg);
> +}
> +
>  int pci_generic_config_read(struct pci_host_bridge *bridge, pci_sbdf_t sbdf,
>                              uint32_t reg, uint32_t len, uint32_t *value)
>  {
> -    void __iomem *addr = bridge->ops->map_bus(bridge, sbdf, reg);
> +    void __iomem *addr = map_bus(bridge, sbdf, reg);
>  
>      if ( !addr )
>      {
> @@ -50,7 +71,7 @@ int pci_generic_config_read(struct pci_host_bridge *bridge, pci_sbdf_t sbdf,
>  int pci_generic_config_write(struct pci_host_bridge *bridge, pci_sbdf_t sbdf,
>                               uint32_t reg, uint32_t len, uint32_t value)
>  {
> -    void __iomem *addr = bridge->ops->map_bus(bridge, sbdf, reg);
> +    void __iomem *addr = map_bus(bridge, sbdf, reg);
>  
>      if ( !addr )
>          return -ENODEV;
> @@ -78,14 +99,16 @@ static uint32_t pci_config_read(pci_sbdf_t sbdf, unsigned int reg,
>  {
>      uint32_t val = PCI_ERR_VALUE(len);
>      struct pci_host_bridge *bridge = pci_find_host_bridge(sbdf.seg, sbdf.bus);
> +    const struct pci_ops *ops;
>  
>      if ( unlikely(!bridge) )
>          return val;
>  
> -    if ( unlikely(!bridge->ops->read) )
> +    ops = get_ops(bridge, sbdf);
> +    if ( unlikely(!ops->read) )
>          return val;
>  
> -    bridge->ops->read(bridge, sbdf, reg, len, &val);
> +    ops->read(bridge, sbdf, reg, len, &val);
>  
>      return val;
>  }
> @@ -94,14 +117,16 @@ static void pci_config_write(pci_sbdf_t sbdf, unsigned int reg,
>                               unsigned int len, uint32_t val)
>  {
>      struct pci_host_bridge *bridge = pci_find_host_bridge(sbdf.seg, sbdf.bus);
> +    const struct pci_ops *ops;
>  
>      if ( unlikely(!bridge) )
>          return;
>  
> -    if ( unlikely(!bridge->ops->write) )
> +    ops = get_ops(bridge, sbdf);
> +    if ( unlikely(!ops->write) )
>          return;
>  
> -    bridge->ops->write(bridge, sbdf, reg, len, val);
> +    ops->write(bridge, sbdf, reg, len, val);
>  }
>  
>  /*
> diff --git a/xen/arch/arm/pci/pci-host-common.c b/xen/arch/arm/pci/pci-host-common.c
> index 7ce9675551..2b058b5f5e 100644
> --- a/xen/arch/arm/pci/pci-host-common.c
> +++ b/xen/arch/arm/pci/pci-host-common.c
> @@ -57,17 +57,12 @@ static void pci_ecam_free(struct pci_config_window *cfg)
>      xfree(cfg);
>  }
>  
> -static struct pci_config_window * __init
> -gen_pci_init(struct dt_device_node *dev, const struct pci_ecam_ops *ops)
> +static void __init gen_pci_init_bus_range(struct dt_device_node *dev,
> +                                          struct pci_host_bridge *bridge,
> +                                          struct pci_config_window *cfg)
>  {
> -    int err, cfg_reg_idx;
>      u32 bus_range[2];
> -    paddr_t addr, size;
> -    struct pci_config_window *cfg;
> -
> -    cfg = xzalloc(struct pci_config_window);
> -    if ( !cfg )
> -        return NULL;
> +    int err;
>  
>      err = dt_property_read_u32_array(dev, "bus-range", bus_range,
>                                       ARRAY_SIZE(bus_range));
> @@ -82,6 +77,36 @@ gen_pci_init(struct dt_device_node *dev, const struct pci_ecam_ops *ops)
>          if ( cfg->busn_end > cfg->busn_start + 0xff )
>              cfg->busn_end = cfg->busn_start + 0xff;
>      }
> +}
> +
> +static void __init gen_pci_init_bus_range_child(struct dt_device_node *dev,
> +                                                struct pci_host_bridge *bridge,
> +                                                struct pci_config_window *cfg)
> +{
> +    cfg->busn_start = bridge->cfg->busn_start + 1;
> +    cfg->busn_end = bridge->cfg->busn_end;
> +    bridge->cfg->busn_end = bridge->cfg->busn_start;
> +
> +    printk(XENLOG_INFO "Root bus end updated: [bus %x-%x]\n",
> +           bridge->cfg->busn_start, bridge->cfg->busn_end);
> +}
> +
> +static struct pci_config_window *__init
> +gen_pci_init(struct dt_device_node *dev, struct pci_host_bridge *bridge,
> +             const struct pci_ecam_ops *ops,
> +             void (*init_bus_range)(struct dt_device_node *dev,
> +                                    struct pci_host_bridge *bridge,
> +                                    struct pci_config_window *cfg))
> +{
> +    int err, cfg_reg_idx;
> +    paddr_t addr, size;
> +    struct pci_config_window *cfg;
> +
> +    cfg = xzalloc(struct pci_config_window);
> +    if ( !cfg )
> +        return NULL;
> +
> +    init_bus_range(dev, bridge, cfg);
>  
>      if ( ops->cfg_reg_index )
>      {
> @@ -208,8 +233,10 @@ static int pci_bus_find_domain_nr(struct dt_device_node *dev)
>      return domain;
>  }
>  
> -struct pci_host_bridge *pci_host_common_probe(struct dt_device_node *dev,
> -                                              const struct pci_ecam_ops *ops)
> +struct pci_host_bridge *
> +pci_host_common_probe(struct dt_device_node *dev,
> +                      const struct pci_ecam_ops *ops,
> +                      const struct pci_ecam_ops *child_ops)
>  {
>      struct pci_host_bridge *bridge;
>      struct pci_config_window *cfg;
> @@ -224,7 +251,7 @@ struct pci_host_bridge *pci_host_common_probe(struct dt_device_node *dev,
>          return ERR_PTR(-ENOMEM);
>  
>      /* Parse and map our Configuration Space windows */
> -    cfg = gen_pci_init(dev, ops);
> +    cfg = gen_pci_init(dev, bridge, ops, gen_pci_init_bus_range);
>      if ( !cfg )
>      {
>          err = -ENOMEM;
> @@ -242,10 +269,29 @@ struct pci_host_bridge *pci_host_common_probe(struct dt_device_node *dev,
>          BUG();
>      }
>      bridge->segment = domain;
> +
> +    if ( child_ops )
> +    {
> +        /* Parse and map child's Configuration Space windows */
> +        cfg = gen_pci_init(dev, bridge, child_ops,
> +                           gen_pci_init_bus_range_child);
> +        if ( !cfg )
> +        {
> +            err = -ENOMEM;
> +            goto err_child;
> +        }
> +
> +        bridge->child_cfg = cfg;
> +        bridge->child_ops = &child_ops->pci_ops;
> +    }
> +
>      pci_add_host_bridge(bridge);
>  
>      return bridge;
>  
> +err_child:
> +    xfree(bridge->cfg);
> +
>  err_exit:
>      xfree(bridge);
>  
> @@ -280,9 +326,12 @@ struct pci_host_bridge *pci_find_host_bridge(uint16_t segment, uint8_t bus)
>      {
>          if ( bridge->segment != segment )
>              continue;
> -        if ( (bus < bridge->cfg->busn_start) || (bus > bridge->cfg->busn_end) )
> -            continue;
> -        return bridge;
> +        if ( bridge->child_cfg && (bus >= bridge->child_cfg->busn_start) &&
> +             (bus <= bridge->child_cfg->busn_end) )
> +            return bridge;
> +        if ( (bus >= bridge->cfg->busn_start) &&
> +             (bus <= bridge->cfg->busn_end) )
> +            return bridge;
>      }
>  
>      return NULL;
> @@ -348,6 +397,7 @@ int __init pci_host_bridge_mappings(struct domain *d)
>      {
>          const struct dt_device_node *dev = bridge->dt_node;
>          unsigned int i;
> +        bool need_mapping;
>  
>          for ( i = 0; i < dt_number_of_address(dev); i++ )
>          {
> @@ -363,7 +413,11 @@ int __init pci_host_bridge_mappings(struct domain *d)
>                  return err;
>              }
>  
> -            if ( bridge->ops->need_p2m_hwdom_mapping(d, bridge, addr) )
> +            need_mapping = bridge->ops->need_p2m_hwdom_mapping(d, bridge, addr);
> +            if ( need_mapping && bridge->child_ops )
> +                need_mapping =
> +                    bridge->child_ops->need_p2m_hwdom_mapping(d, bridge, addr);

Is this because the child bus address range is always a subset of the
parent address range?

If not, we would need to check either of them independently (|| instead
of &&).


> +            if ( need_mapping )
>              {
>                  err = map_range_to_domain(dev, addr, size, &mr_data);
>                  if ( err )
> diff --git a/xen/arch/arm/pci/pci-host-generic.c b/xen/arch/arm/pci/pci-host-generic.c
> index a6ffbda174..47cf144831 100644
> --- a/xen/arch/arm/pci/pci-host-generic.c
> +++ b/xen/arch/arm/pci/pci-host-generic.c
> @@ -29,7 +29,7 @@ static const struct dt_device_match __initconstrel gen_pci_dt_match[] =
>  static int __init pci_host_generic_probe(struct dt_device_node *dev,
>                                           const void *data)
>  {
> -    return PTR_RET(pci_host_common_probe(dev, &pci_generic_ecam_ops));
> +    return PTR_RET(pci_host_common_probe(dev, &pci_generic_ecam_ops, NULL));
>  }
>  
>  DT_DEVICE_START(pci_gen, "PCI HOST GENERIC", DEVICE_PCI_HOSTBRIDGE)
> diff --git a/xen/arch/arm/pci/pci-host-zynqmp.c b/xen/arch/arm/pci/pci-host-zynqmp.c
> index a38f2e019e..75d1235aaf 100644
> --- a/xen/arch/arm/pci/pci-host-zynqmp.c
> +++ b/xen/arch/arm/pci/pci-host-zynqmp.c
> @@ -47,7 +47,7 @@ static const struct dt_device_match __initconstrel nwl_pcie_dt_match[] =
>  static int __init pci_host_generic_probe(struct dt_device_node *dev,
>                                           const void *data)
>  {
> -    return PTR_RET(pci_host_common_probe(dev, &nwl_pcie_ops));
> +    return PTR_RET(pci_host_common_probe(dev, &nwl_pcie_ops, NULL));
>  }
>  
>  DT_DEVICE_START(pci_gen, "PCI HOST ZYNQMP", DEVICE_PCI_HOSTBRIDGE)
> diff --git a/xen/arch/arm/vpci.c b/xen/arch/arm/vpci.c
> index b63a356bb4..468aee1db7 100644
> --- a/xen/arch/arm/vpci.c
> +++ b/xen/arch/arm/vpci.c
> @@ -8,15 +8,17 @@
>  #include <asm/mmio.h>
>  
>  static pci_sbdf_t vpci_sbdf_from_gpa(const struct pci_host_bridge *bridge,
> -                                     paddr_t gpa)
> +                                     paddr_t gpa, bool use_root)
>  {
>      pci_sbdf_t sbdf;
>  
>      if ( bridge )
>      {
> -        sbdf.sbdf = VPCI_ECAM_BDF(gpa - bridge->cfg->phys_addr);
> +        const struct pci_config_window *cfg = use_root ? bridge->cfg
> +                                                       : bridge->child_cfg;
> +        sbdf.sbdf = VPCI_ECAM_BDF(gpa - cfg->phys_addr);
>          sbdf.seg = bridge->segment;
> -        sbdf.bus += bridge->cfg->busn_start;
> +        sbdf.bus += cfg->busn_start;
>      }
>      else
>          sbdf.sbdf = VPCI_ECAM_BDF(gpa - GUEST_VPCI_ECAM_BASE);
> @@ -24,11 +26,9 @@ static pci_sbdf_t vpci_sbdf_from_gpa(const struct pci_host_bridge *bridge,
>      return sbdf;
>  }
>  
> -static int vpci_mmio_read(struct vcpu *v, mmio_info_t *info,
> -                          register_t *r, void *p)
> +static int vpci_mmio_read(struct vcpu *v, mmio_info_t *info, register_t *r,
> +                          pci_sbdf_t sbdf)
>  {
> -    struct pci_host_bridge *bridge = p;
> -    pci_sbdf_t sbdf = vpci_sbdf_from_gpa(bridge, info->gpa);
>      const unsigned int access_size = (1U << info->dabt.size) * 8;
>      const register_t invalid = GENMASK_ULL(access_size - 1, 0);
>      /* data is needed to prevent a pointer cast on 32bit */
> @@ -46,31 +46,78 @@ static int vpci_mmio_read(struct vcpu *v, mmio_info_t *info,
>      return 0;
>  }
>  
> -static int vpci_mmio_write(struct vcpu *v, mmio_info_t *info,
> -                           register_t r, void *p)
> +static int vpci_mmio_read_root(struct vcpu *v, mmio_info_t *info, register_t *r,
> +                               void *p)
> +{
> +    struct pci_host_bridge *bridge = p;
> +    pci_sbdf_t sbdf = vpci_sbdf_from_gpa(bridge, info->gpa, true);
> +
> +    return vpci_mmio_read(v, info, r, sbdf);
> +}
> +
> +static int vpci_mmio_read_child(struct vcpu *v, mmio_info_t *info,
> +                                register_t *r, void *p)
>  {
>      struct pci_host_bridge *bridge = p;
> -    pci_sbdf_t sbdf = vpci_sbdf_from_gpa(bridge, info->gpa);
> +    pci_sbdf_t sbdf = vpci_sbdf_from_gpa(bridge, info->gpa, false);
> +
> +    return vpci_mmio_read(v, info, r, sbdf);
> +}
>  
> +static int vpci_mmio_write(struct vcpu *v, mmio_info_t *info, register_t r,
> +                           pci_sbdf_t sbdf)
> +{
>      return vpci_ecam_write(sbdf, ECAM_REG_OFFSET(info->gpa),
>                             1U << info->dabt.size, r);
>  }
>  
> +static int vpci_mmio_write_root(struct vcpu *v, mmio_info_t *info, register_t r,
> +                                void *p)
> +{
> +    struct pci_host_bridge *bridge = p;
> +    pci_sbdf_t sbdf = vpci_sbdf_from_gpa(bridge, info->gpa, true);
> +
> +    return vpci_mmio_write(v, info, r, sbdf);
> +}
> +
> +static int vpci_mmio_write_child(struct vcpu *v, mmio_info_t *info,
> +                                 register_t r, void *p)
> +{
> +    struct pci_host_bridge *bridge = p;
> +    pci_sbdf_t sbdf = vpci_sbdf_from_gpa(bridge, info->gpa, false);
> +
> +    return vpci_mmio_write(v, info, r, sbdf);
> +}
> +
>  static const struct mmio_handler_ops vpci_mmio_handler = {
> -    .read  = vpci_mmio_read,
> -    .write = vpci_mmio_write,
> +    .read = vpci_mmio_read_root,
> +    .write = vpci_mmio_write_root,
> +};
> +
> +static const struct mmio_handler_ops vpci_mmio_handler_child = {
> +    .read = vpci_mmio_read_child,
> +    .write = vpci_mmio_write_child,
>  };
>  
>  static int vpci_setup_mmio_handler_cb(struct domain *d,
>                                        struct pci_host_bridge *bridge)
>  {
>      struct pci_config_window *cfg = bridge->cfg;
> +    int count = 1;
>  
>      register_mmio_handler(d, &vpci_mmio_handler,
>                            cfg->phys_addr, cfg->size, bridge);
>  
> -    /* We have registered a single MMIO handler. */
> -    return 1;
> +    if ( bridge->child_ops )
> +    {
> +        struct pci_config_window *cfg = bridge->child_cfg;
> +
> +        register_mmio_handler(d, &vpci_mmio_handler_child, cfg->phys_addr,
> +                              cfg->size, bridge);
> +        count++;
> +    }
> +
> +    return count;
>  }
>  
>  int domain_vpci_init(struct domain *d)
> @@ -101,8 +148,12 @@ int domain_vpci_init(struct domain *d)
>  static int vpci_get_num_handlers_cb(struct domain *d,
>                                      struct pci_host_bridge *bridge)
>  {
> -    /* Each bridge has a single MMIO handler for the configuration space. */
> -    return 1;
> +    int count = 1;
> +
> +    if ( bridge->child_cfg )
> +        count++;
> +
> +    return count;
>  }
>  
>  unsigned int domain_vpci_get_num_mmio_handlers(struct domain *d)
> -- 
> 2.34.1
> 


From xen-devel-bounces@lists.xenproject.org Sat Apr 19 00:20:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 19 Apr 2025 00:20:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.959691.1351993 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5vwF-0001hI-Qb; Sat, 19 Apr 2025 00:20:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 959691.1351993; Sat, 19 Apr 2025 00: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 1u5vwF-0001hB-Nl; Sat, 19 Apr 2025 00:20:07 +0000
Received: by outflank-mailman (input) for mailman id 959691;
 Sat, 19 Apr 2025 00: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=HXfy=XF=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u5vwE-0001aw-BE
 for xen-devel@lists.xenproject.org; Sat, 19 Apr 2025 00:20:06 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org
 [2600:3c04:e001:324:0:1991:8:25])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 080c16a3-1cb4-11f0-9ffb-bf95429c2676;
 Sat, 19 Apr 2025 02:20:01 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 05E7D61120;
 Sat, 19 Apr 2025 00:19:41 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 423F3C4CEE2;
 Sat, 19 Apr 2025 00:19: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: 080c16a3-1cb4-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1745021999;
	bh=Tw/siFa4rXSNEcpwNLN669MNuIrJ/+ftvPQ8zajRmaU=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=ccXnzgD9msVXl4573i69O18o/6XUEAjfX8c7QPUoFMF2xaKAiSp2dTvQZeLPIEpgo
	 +RAfRE+/C+AWjj7FvL0zIbm/qqYyS5A1/EbE+5qfFTd7yKWFM5rkwvpVAXP6yxCQcW
	 psC0N/kgERuJG0hldb+ERSlviNKyscl0fsZuIksnYbr7U2gtqldIZwpKUmIkibPr+S
	 noL7aAwR0BML/4IkK7IhLswSyZtGZ/oZjPrUwCg4KJ2wAugsyByTmm5N312hGUpikP
	 HeYxp1L0IBNRU9nLupdkaYMPEZ315NIvDW86KXSGPDRbz7SvNm4G5V85HThWI934jK
	 zMYv7cPa/7uJQ==
Date: Fri, 18 Apr 2025 17:19:57 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Mykyta Poturai <Mykyta_Poturai@epam.com>
cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    Oleksandr Andrushchenko <Oleksandr_Andrushchenko@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: Re: [PATCH v3 1/4] xen/arm: allow PCI host bridge to have private
 data
In-Reply-To: <d2e51d90af19a790126e0483f2d1becbfdae2a30.1744203405.git.mykyta_poturai@epam.com>
Message-ID: <alpine.DEB.2.22.394.2504181648510.785180@ubuntu-linux-20-04-desktop>
References: <cover.1744203405.git.mykyta_poturai@epam.com> <d2e51d90af19a790126e0483f2d1becbfdae2a30.1744203405.git.mykyta_poturai@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, 9 Apr 2025, Mykyta Poturai wrote:
> From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
> 
> Some of the PCI host bridges require private data. Add priv field
> to struct pci_host_bridge, so such bridges may populate it with
> their private data.
> 
> Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
> Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>

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


> ---
> v2->v3:
> * removed priv allocation from common code
> 
> v1->v2:
> * no change
> ---
>  xen/arch/arm/include/asm/pci.h | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/xen/arch/arm/include/asm/pci.h b/xen/arch/arm/include/asm/pci.h
> index 7f77226c9b..a87672d834 100644
> --- a/xen/arch/arm/include/asm/pci.h
> +++ b/xen/arch/arm/include/asm/pci.h
> @@ -66,6 +66,7 @@ struct pci_host_bridge {
>      uint16_t segment;                /* Segment number */
>      struct pci_config_window* cfg;   /* Pointer to the bridge config window */
>      const struct pci_ops *ops;
> +    void *priv;                      /* Private data of the bridge. */
>  };
>  
>  struct pci_ops {
> -- 
> 2.34.1
> 


From xen-devel-bounces@lists.xenproject.org Sat Apr 19 00:20:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 19 Apr 2025 00:20:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.959692.1352002 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5vwJ-0001xL-0V; Sat, 19 Apr 2025 00:20:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 959692.1352002; Sat, 19 Apr 2025 00: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 1u5vwI-0001xE-Tw; Sat, 19 Apr 2025 00:20:10 +0000
Received: by outflank-mailman (input) for mailman id 959692;
 Sat, 19 Apr 2025 00: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=HXfy=XF=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u5vwI-0000Vo-60
 for xen-devel@lists.xenproject.org; Sat, 19 Apr 2025 00:20:10 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0cd2985e-1cb4-11f0-9eb0-5ba50f476ded;
 Sat, 19 Apr 2025 02:20:09 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id C6FF6446C1;
 Sat, 19 Apr 2025 00:20:06 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id E751BC4CEE2;
 Sat, 19 Apr 2025 00:20: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: 0cd2985e-1cb4-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1745022007;
	bh=CF+odxzWcg7zsi28Vur77a/FcO+EiHs3jYiVHS7CUb0=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=lcezpP5v6CLW0aO9JA5/3y2ZSC8Cm5ZU+TpjLERDTeLBAmv4UmYuEL5+GUI6YANR1
	 6vXzfqqGT+PE+WOKnyMIb2Jm0zxscHotlohV5/mhzPveouRUYO1wWhaTWs9z/Ev6uq
	 2TkfRn7Q32CCTsl4TO9Kx+GGpX//SY+HG4dCkrip9JtctjKht5llFeykEZ4hZ4pC70
	 6Zo3MhsC9B199lnHWDcGKe5WQ30rlSBRiqsu2XXDEBLXMY+DUt8xg0NPx0ZqSDDbej
	 rBS0+Xw2zfdwDvZM4EdRjJ4CG82M0+j7G9HkrTTOTWrujvwaVG//T/QEcM4pDPAxpX
	 smxGv/xuTUMLQ==
Date: Fri, 18 Apr 2025 17:20:05 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Mykyta Poturai <Mykyta_Poturai@epam.com>
cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    Oleksandr Andrushchenko <Oleksandr_Andrushchenko@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: Re: [PATCH v3 2/4] xen/arm: make pci_host_common_probe return the
 bridge
In-Reply-To: <0abee55bcc632ba1be356461e22eca2ceb11dadd.1744203405.git.mykyta_poturai@epam.com>
Message-ID: <alpine.DEB.2.22.394.2504181649010.785180@ubuntu-linux-20-04-desktop>
References: <cover.1744203405.git.mykyta_poturai@epam.com> <0abee55bcc632ba1be356461e22eca2ceb11dadd.1744203405.git.mykyta_poturai@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, 9 Apr 2025, Mykyta Poturai wrote:
> From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
> 
> Some of the PCI host bridges require additional processing during the
> probe phase. For that they need to access struct bridge of the probed
> host, so return pointer to the new bridge from pci_host_common_probe.
> 
> Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
> Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
> ---
> v2->v3:
> * no change
> 
> v1->v2:
> * no change
> ---
>  xen/arch/arm/include/asm/pci.h      |  5 +++--
>  xen/arch/arm/pci/pci-host-common.c  | 10 +++++-----
>  xen/arch/arm/pci/pci-host-generic.c |  2 +-
>  xen/arch/arm/pci/pci-host-zynqmp.c  |  2 +-
>  4 files changed, 10 insertions(+), 9 deletions(-)
> 
> diff --git a/xen/arch/arm/include/asm/pci.h b/xen/arch/arm/include/asm/pci.h
> index a87672d834..3d2ca9b5b0 100644
> --- a/xen/arch/arm/include/asm/pci.h
> +++ b/xen/arch/arm/include/asm/pci.h
> @@ -18,6 +18,7 @@
>  #ifdef CONFIG_HAS_PCI
>  
>  #include <asm/p2m.h>
> +#include <xen/err.h>
>  
>  #define pci_to_dev(pcidev) (&(pcidev)->arch.dev)
>  
> @@ -95,8 +96,8 @@ struct pci_ecam_ops {
>  /* Default ECAM ops */
>  extern const struct pci_ecam_ops pci_generic_ecam_ops;
>  
> -int pci_host_common_probe(struct dt_device_node *dev,
> -                          const struct pci_ecam_ops *ops);
> +struct pci_host_bridge *pci_host_common_probe(struct dt_device_node *dev,
> +                                              const struct pci_ecam_ops *ops);
>  int pci_generic_config_read(struct pci_host_bridge *bridge, pci_sbdf_t sbdf,
>                              uint32_t reg, uint32_t len, uint32_t *value);
>  int pci_generic_config_write(struct pci_host_bridge *bridge, pci_sbdf_t sbdf,
> diff --git a/xen/arch/arm/pci/pci-host-common.c b/xen/arch/arm/pci/pci-host-common.c
> index c0faf0f436..7ce9675551 100644
> --- a/xen/arch/arm/pci/pci-host-common.c
> +++ b/xen/arch/arm/pci/pci-host-common.c
> @@ -208,8 +208,8 @@ static int pci_bus_find_domain_nr(struct dt_device_node *dev)
>      return domain;
>  }
>  
> -int pci_host_common_probe(struct dt_device_node *dev,
> -                          const struct pci_ecam_ops *ops)
> +struct pci_host_bridge *pci_host_common_probe(struct dt_device_node *dev,
> +                                              const struct pci_ecam_ops *ops)
>  {
>      struct pci_host_bridge *bridge;
>      struct pci_config_window *cfg;
> @@ -221,7 +221,7 @@ int pci_host_common_probe(struct dt_device_node *dev,
>  
>      bridge = pci_alloc_host_bridge();
>      if ( !bridge )
> -        return -ENOMEM;
> +        return ERR_PTR(-ENOMEM);

There is a return 0 just above that needs to be changed to return NULL.


>      /* Parse and map our Configuration Space windows */
>      cfg = gen_pci_init(dev, ops);
> @@ -244,12 +244,12 @@ int pci_host_common_probe(struct dt_device_node *dev,
>      bridge->segment = domain;
>      pci_add_host_bridge(bridge);
>  
> -    return 0;
> +    return bridge;
>  
>  err_exit:
>      xfree(bridge);
>  
> -    return err;
> +    return ERR_PTR(err);
>  }
>  
>  /*
> diff --git a/xen/arch/arm/pci/pci-host-generic.c b/xen/arch/arm/pci/pci-host-generic.c
> index 46de6e43cc..a6ffbda174 100644
> --- a/xen/arch/arm/pci/pci-host-generic.c
> +++ b/xen/arch/arm/pci/pci-host-generic.c
> @@ -29,7 +29,7 @@ static const struct dt_device_match __initconstrel gen_pci_dt_match[] =
>  static int __init pci_host_generic_probe(struct dt_device_node *dev,
>                                           const void *data)
>  {
> -    return pci_host_common_probe(dev, &pci_generic_ecam_ops);
> +    return PTR_RET(pci_host_common_probe(dev, &pci_generic_ecam_ops));
>  }
>  
>  DT_DEVICE_START(pci_gen, "PCI HOST GENERIC", DEVICE_PCI_HOSTBRIDGE)
> diff --git a/xen/arch/arm/pci/pci-host-zynqmp.c b/xen/arch/arm/pci/pci-host-zynqmp.c
> index 101edb8593..a38f2e019e 100644
> --- a/xen/arch/arm/pci/pci-host-zynqmp.c
> +++ b/xen/arch/arm/pci/pci-host-zynqmp.c
> @@ -47,7 +47,7 @@ static const struct dt_device_match __initconstrel nwl_pcie_dt_match[] =
>  static int __init pci_host_generic_probe(struct dt_device_node *dev,
>                                           const void *data)
>  {
> -    return pci_host_common_probe(dev, &nwl_pcie_ops);
> +    return PTR_RET(pci_host_common_probe(dev, &nwl_pcie_ops));
>  }
>  
>  DT_DEVICE_START(pci_gen, "PCI HOST ZYNQMP", DEVICE_PCI_HOSTBRIDGE)
> -- 
> 2.34.1
> 


From xen-devel-bounces@lists.xenproject.org Sat Apr 19 01:04:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 19 Apr 2025 01:04:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.959750.1352023 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5wce-0000ro-G3; Sat, 19 Apr 2025 01:03:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 959750.1352023; Sat, 19 Apr 2025 01:03:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5wce-0000rh-Bp; Sat, 19 Apr 2025 01:03:56 +0000
Received: by outflank-mailman (input) for mailman id 959750;
 Sat, 19 Apr 2025 01:03: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=GNoH=XF=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u5wcc-0000dd-FF
 for xen-devel@lists.xenproject.org; Sat, 19 Apr 2025 01:03:54 +0000
Received: from mail-4322.protonmail.ch (mail-4322.protonmail.ch [185.70.43.22])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 28c14c9c-1cba-11f0-9ffb-bf95429c2676;
 Sat, 19 Apr 2025 03:03:52 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 28c14c9c-1cba-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1745024631; x=1745283831;
	bh=F3bwVJxkxikxRIcz+L/Xuqu0AofNvAvp6z3DvGpiibo=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=bk2jsr2wc/WzkGbcZYGPRPfqxDI0GQfLOFH9hLtDcPDzIz9KkvLs/5Mju1gDNS1gr
	 q8MIsHD2kvbq5W2qIHMIIxwcTJQc4cqIPcq5iFMawVtyasc52ReLZp/L+DJADhSrJs
	 MTmaEWdR4c6hrZbk1dqNaE+SJGfb0WjWe7W5+M6IqHUlWV4vvuZ+cKW1Rd08mZsCsX
	 xBXZzGc4WZRw6YOBuJHHdnerwnj1ftO4407+viYynvpENsCia/RhhA9RHWlQm44LTo
	 HJ6Jr4RCBfIwW0hxsOWySSepnUllHy+kOyi09o1gZzClOAifm0DbdeCfggVLowPUjj
	 WQAKlYb9Kja3g==
Date: Sat, 19 Apr 2025 01:03:47 +0000
To: xen-devel@lists.xenproject.org
From: dmkhn@proton.me
Cc: andrew.cooper3@citrix.com, cardoe@cardoe.com, marmarek@invisiblethingslab.com, sstabellini@kernel.org, dmukhin@ford.com
Subject: [PATCH v2 1/4] CI: unify x86 XTF test runner
Message-ID: <20250419010319.2572518-2-dmukhin@ford.com>
In-Reply-To: <20250419010319.2572518-1-dmukhin@ford.com>
References: <20250419010319.2572518-1-dmukhin@ford.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 1096fe74d75838731cc9926ba41157d775b2d8a1
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

From: Denis Mukhin <dmukhin@ford.com>

Add test runner script qemu-xtf.sh which is allows any XTF x86 test to be
easily executed. Test runner is invoked from the qemu-smoke* jobs with the
hardcoded parameters.

Each x86 XTF job lead time is reduced a bit since only the test-related cod=
e
is built, not the entire XTF project.

Add .gitignore to avoid committing test artifacts by mistake.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
Changes since v2:
- removed TOP
- dropped XEN_CONSOLE in favor of XEN_CMDLINE
- fixup for XTF_SRC_CONFIG
---
 automation/gitlab-ci/test.yaml                |   8 +-
 automation/scripts/.gitignore                 |   6 +
 .../scripts/include/configs/xtf-x86-64-config |   0
 automation/scripts/include/xtf-runner         | 131 ++++++++++++++++++
 automation/scripts/include/xtf-x86-64         |  31 +++++
 automation/scripts/qemu-smoke-x86-64.sh       |  26 ----
 automation/scripts/qemu-xtf.sh                |  28 ++++
 7 files changed, 200 insertions(+), 30 deletions(-)
 create mode 100644 automation/scripts/.gitignore
 create mode 100644 automation/scripts/include/configs/xtf-x86-64-config
 create mode 100644 automation/scripts/include/xtf-runner
 create mode 100644 automation/scripts/include/xtf-x86-64
 delete mode 100755 automation/scripts/qemu-smoke-x86-64.sh
 create mode 100755 automation/scripts/qemu-xtf.sh

diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yam=
l
index 5ce445b78f..3adc841335 100644
--- a/automation/gitlab-ci/test.yaml
+++ b/automation/gitlab-ci/test.yaml
@@ -659,28 +659,28 @@ qemu-alpine-x86_64-gcc:
 qemu-smoke-x86-64-gcc:
   extends: .qemu-smoke-x86-64
   script:
-    - ./automation/scripts/qemu-smoke-x86-64.sh pv 2>&1 | tee ${LOGFILE}
+    - ./automation/scripts/qemu-xtf.sh x86-64 pv64 example 2>&1 | tee ${LO=
GFILE}
   needs:
     - debian-12-x86_64-gcc-debug
=20
 qemu-smoke-x86-64-clang:
   extends: .qemu-smoke-x86-64
   script:
-    - ./automation/scripts/qemu-smoke-x86-64.sh pv 2>&1 | tee ${LOGFILE}
+    - ./automation/scripts/qemu-xtf.sh x86-64 pv64 example 2>&1 | tee ${LO=
GFILE}
   needs:
     - debian-12-x86_64-clang-debug
=20
 qemu-smoke-x86-64-gcc-pvh:
   extends: .qemu-smoke-x86-64
   script:
-    - ./automation/scripts/qemu-smoke-x86-64.sh pvh 2>&1 | tee ${LOGFILE}
+    - ./automation/scripts/qemu-xtf.sh x86-64 hvm64 example 2>&1 | tee ${L=
OGFILE}
   needs:
     - debian-12-x86_64-gcc-debug
=20
 qemu-smoke-x86-64-clang-pvh:
   extends: .qemu-smoke-x86-64
   script:
-    - ./automation/scripts/qemu-smoke-x86-64.sh pvh 2>&1 | tee ${LOGFILE}
+    - ./automation/scripts/qemu-xtf.sh x86-64 hvm64 example 2>&1 | tee ${L=
OGFILE}
   needs:
     - debian-12-x86_64-clang-debug
=20
diff --git a/automation/scripts/.gitignore b/automation/scripts/.gitignore
new file mode 100644
index 0000000000..2f2d6e1ebd
--- /dev/null
+++ b/automation/scripts/.gitignore
@@ -0,0 +1,6 @@
+!include
+
+binaries
+smoke.serial
+xen
+xtf*/
diff --git a/automation/scripts/include/configs/xtf-x86-64-config b/automat=
ion/scripts/include/configs/xtf-x86-64-config
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/automation/scripts/include/xtf-runner b/automation/scripts/inc=
lude/xtf-runner
new file mode 100644
index 0000000000..320eb65dc8
--- /dev/null
+++ b/automation/scripts/include/xtf-runner
@@ -0,0 +1,131 @@
+#!/bin/bash
+#
+# XTF test utilities.
+#
+# Environment variables:
+#   BOOT_MSG: Expected boot message
+#   FW_PREFIX: Firmware images path including '/' at the end
+#   PASSED: XTF test printout in case of a pass
+#   QEMU_PREFIX: QEMU path including '/' at the end
+#   TEST_LOG: Output log file
+#   UBOOT_CMD: U-Boot command line
+#   WORKDIR: Test working directory
+#   XEN_BINARY: Xen binary location
+#   XEN_CONSOLE: Xen console device name
+#   XTF_SRC_CONFIG: XTF config file
+#   XTF_SRC_BRANCH: XTF branch
+#   XTF_SRC_URI: XTF source code URI
+
+# Output log file
+TEST_LOG=3D"${TEST_LOG:-${XEN_ROOT}/smoke.serial}"
+# XTF test printout in case of a pass
+PASSED=3D"${PASSED:-Test result: SUCCESS}"
+# Expected boot message
+BOOT_MSG=3D"${BOOT_MSG:-Latest ChangeSet: }"
+# Test working directory
+WORKDIR=3D"${WORKDIR:-${XEN_ROOT}/binaries}"
+# XTF source code
+XTF_SRC_CONFIG=3D"${XTF_SRC_CONFIG:-include/configs/xtf-${ARCH}-config}"
+
+function die()
+{
+    set +x
+    echo "FATAL: $*" >&2
+    exit 1
+}
+
+# Build an XTF test binary.
+# $1 Test variant.
+# $2 Test name.
+function xtf_build_binary()
+{
+    local xtf_variant=3D$1
+    local xtf_name=3D$2
+    local xtf_dir=3D"xtf-${ARCH}"
+
+    # Crude check for local testing
+    if [ ! -d ${xtf_dir} ]; then
+        git clone ${XTF_SRC_URI} ${xtf_dir} -b ${XTF_SRC_BRANCH}
+    fi
+
+    make \
+        -C ${xtf_dir} \
+        -j$(nproc) \
+        $(tr '\n' ' ' < ${XTF_SRC_CONFIG}) \
+        TESTS=3Dtests/${xtf_name}
+
+    export XTF_NAME=3D"${xtf_name}"
+    export XTF_VARIANT=3D"${xtf_variant}"
+    export XTF_WORKDIR=3D"$(readlink -f ${xtf_dir})"
+    export XTF_BINARY=3D"${XTF_WORKDIR}/tests/${xtf_name}/test-${xtf_varia=
nt}-${xtf_name}"
+}
+
+# Build Xen command line for running an XTF test.
+# $1 Test variant.
+# $2 Test name.
+function xtf_build_cmdline()
+{
+    local xtf_variant=3D$1
+    local xtf_name=3D$2
+    declare -a cmdline=3D()
+
+    cmdline+=3D("${XEN_CMDLINE}")
+
+    # NB: OK to have hvm64, which is x86-only variant
+    if [[ $xtf_variant =3D=3D "hvm64" ]]; then
+        cmdline+=3D("dom0-iommu=3Dnone dom0=3Dpvh")
+    fi
+
+    export XEN_CMDLINE=3D"${cmdline[@]}"
+}
+
+# Build an XTF test environment.
+# $1 Test variant.
+# $2 Test name.
+function xtf_build_test()
+{
+    local v=3D$1
+    local xtf_name=3D$2
+    local xtf_variant=3D""
+
+    for x in ${XTF_SRC_VARIANTS}; do
+        if [[ "${x}" =3D=3D "${v}" ]]; then
+            xtf_variant=3D${v}
+            break
+        fi
+    done
+    if [[ -z $xtf_variant ]]; then
+        die "unsupported test variant '$1', supported variants: ${XTF_SRC_=
VARIANTS}"
+    fi
+
+    xtf_build_binary ${xtf_variant} ${xtf_name}
+    xtf_build_cmdline ${xtf_variant} ${xtf_name}
+}
+
+# Execute an XTF test.
+function xtf_run_test()
+{
+    rm -f ${TEST_LOG}
+    export BOOT_MSG PASSED TEST_CMD TEST_LOG UBOOT_CMD
+    ./console.exp | sed 's/\r\+$//'
+}
+
+# Setup environment and run an XTF test.
+# $1 Test variant.
+# $2 Test name.
+function xtf_test()
+{
+    # Out: FW_*, QEMU_*, XEN_{BINARY,CONSOLE}, XTF_SRC_*
+    xtf_arch_prepare
+
+    # In: XTF_SRC_*
+    # OUt: XTF_{BINARY,NAME,VARIANT,WORKDIR} and XEN_CMDLINE
+    xtf_build_test $@
+
+    # In: FW_*, QEMU_*, XTF_*, XEN_*
+    # Out: BOOT_MSG, PASSED, TEST_{CMD,LOG}, UBOOT_CMD
+    xtf_arch_setup
+
+    # In: BOOT_MSG, PASSED, TEST_{CMD,LOG}, UBOOT_CMD
+    xtf_run_test
+}
diff --git a/automation/scripts/include/xtf-x86-64 b/automation/scripts/inc=
lude/xtf-x86-64
new file mode 100644
index 0000000000..b1b0cc201e
--- /dev/null
+++ b/automation/scripts/include/xtf-x86-64
@@ -0,0 +1,31 @@
+#!/bin/bash
+#
+# XTF test utilities (x86_64).
+#
+
+# Arch-specific environment overrides.
+function xtf_arch_prepare()
+{
+    export FW_PREFIX=3D"${FW_PREFIX:-}"
+    export QEMU_PREFIX=3D"${QEMU_PREFIX:-}"
+    export XEN_BINARY=3D"${XEN_BINARY:-${WORKDIR}/xen}"
+    export XEN_CMDLINE=3D"${XEN_CMDLINE:-loglvl=3Dall noreboot console_tim=
estamps=3Dboot console=3Dcom1}"
+    export XTF_SRC_BRANCH=3D"${XTF_SRC_BRANCH:-master}"
+    export XTF_SRC_URI=3D"${XTF_SRC_URI:-https://xenbits.xen.org/git-http/=
xtf.git}"
+    export XTF_SRC_VARIANTS=3D"hvm64 pv64"
+}
+
+# Perform arch-specific XTF environment setup.
+function xtf_arch_setup()
+{
+    export TEST_CMD=3D"${QEMU_PREFIX}qemu-system-x86_64 \
+        -no-reboot \
+        -nographic \
+        -monitor none \
+        -serial stdio \
+        -m 512 \
+        -kernel ${XEN_BINARY} \
+        -initrd ${XTF_BINARY} \
+        -append \"${XEN_CMDLINE}\" \
+    "
+}
diff --git a/automation/scripts/qemu-smoke-x86-64.sh b/automation/scripts/q=
emu-smoke-x86-64.sh
deleted file mode 100755
index da0c26cc2f..0000000000
--- a/automation/scripts/qemu-smoke-x86-64.sh
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/bin/bash
-
-set -ex -o pipefail
-
-# variant should be either pv or pvh
-variant=3D$1
-
-# Clone and build XTF
-git clone https://xenbits.xen.org/git-http/xtf.git
-cd xtf && make -j$(nproc) && cd -
-
-case $variant in
-    pvh) k=3Dtest-hvm64-example    extra=3D"dom0-iommu=3Dnone dom0=3Dpvh" =
;;
-    *)   k=3Dtest-pv64-example     extra=3D ;;
-esac
-
-rm -f smoke.serial
-export TEST_CMD=3D"qemu-system-x86_64 -nographic -kernel binaries/xen \
-        -initrd xtf/tests/example/$k \
-        -append \"loglvl=3Dall console=3Dcom1 noreboot console_timestamps=
=3Dboot $extra\" \
-        -m 512 -monitor none -serial stdio"
-
-export TEST_LOG=3D"smoke.serial"
-export PASSED=3D"Test result: SUCCESS"
-
-./automation/scripts/console.exp | sed 's/\r\+$//'
diff --git a/automation/scripts/qemu-xtf.sh b/automation/scripts/qemu-xtf.s=
h
new file mode 100755
index 0000000000..55c221b36d
--- /dev/null
+++ b/automation/scripts/qemu-xtf.sh
@@ -0,0 +1,28 @@
+#!/bin/bash
+#
+# XTF test runner (QEMU).
+#
+
+set -e -o pipefail
+
+if [ $# -lt 3 ]; then
+    echo "Usage: $(basename $0) ARCH XTF-VARIANT XTF-NAME"
+    exit 0
+fi
+
+export ARCH=3D"$1"
+shift
+
+set -x
+
+export XEN_ROOT=3D"${PWD}"
+cd $(dirname $0)
+
+source include/xtf-runner
+
+if [ ! -f "include/xtf-${ARCH}" ]; then
+    die "unsupported architecture '${ARCH}'"
+fi
+source include/xtf-${ARCH}
+
+xtf_test $@
--=20
2.34.1




From xen-devel-bounces@lists.xenproject.org Sat Apr 19 01:04:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 19 Apr 2025 01:04:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.959749.1352013 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5wcd-0000eE-8m; Sat, 19 Apr 2025 01:03:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 959749.1352013; Sat, 19 Apr 2025 01:03:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5wcd-0000e7-4e; Sat, 19 Apr 2025 01:03:55 +0000
Received: by outflank-mailman (input) for mailman id 959749;
 Sat, 19 Apr 2025 01:03: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=GNoH=XF=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u5wca-0000dd-1g
 for xen-devel@lists.xenproject.org; Sat, 19 Apr 2025 01:03:53 +0000
Received: from mail-10628.protonmail.ch (mail-10628.protonmail.ch
 [79.135.106.28]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 27052fbf-1cba-11f0-9ffb-bf95429c2676;
 Sat, 19 Apr 2025 03:03:49 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 27052fbf-1cba-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1745024627; x=1745283827;
	bh=q96N8j++j1ue2taUNV3jxLvspK+8wYD4BpOrARSpv5Q=;
	h=Date:To:From:Cc:Subject:Message-ID:Feedback-ID:From:To:Cc:Date:
	 Subject:Reply-To:Feedback-ID:Message-ID:BIMI-Selector:
	 List-Unsubscribe:List-Unsubscribe-Post;
	b=bEMULnGRJvHMBG9yStwQICn0LxgHkqoYbIarW5YTKuUdY1O5IwCcOLPVu+d7aigoX
	 KVzzqofMBYkmXhEgQjWyXXVMwqxxtZIfYolwTXLg5yOTKB0GYWudPFLmY6CP+Oaiv5
	 XUZHZsVLuyBl8dvYPna4Fv3Qj+DhxsCXymn0owaoamjKHoeBlJ4ZNo3cN1/tb+nbqv
	 ooV2ogGlhztdH/Izhpp/IR/St5V3gy72tuB54lHhf+OZhC7g4NdamWnYC3qOSOdTMI
	 wRqI7GcD26jVUkMajd/QvcnU4XxXrwkPU8jwZcqV0err53lStlKD24foe2O7kJANtV
	 /+unAwhAw44hA==
Date: Sat, 19 Apr 2025 01:03:42 +0000
To: xen-devel@lists.xenproject.org
From: dmkhn@proton.me
Cc: andrew.cooper3@citrix.com, cardoe@cardoe.com, marmarek@invisiblethingslab.com, sstabellini@kernel.org, dmukhin@ford.com
Subject: [PATCH v2 0/4] CI: updates to XTF CI runners
Message-ID: <20250419010319.2572518-1-dmukhin@ford.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 495c31277949685f4ba1514556713886fded3567
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

The series started from adding new argo XTF CI job and ended up with updati=
ng
all XTF runners and related CI jobs.

It unifies the XTF runner scripts so that it is possible to use one script =
for
executing any XTF test under QEMU. That simplifies running XTFs locally and=
 in
CI.

Patch 1 reworks x86 XTF runner.
Patch 2 reworks x86 EFI XTF.
Patch 3 reworks Arm64 XTF runner.
Patch 4 adds new argo x86 XTF CI job.

CI run: https://gitlab.com/xen-project/people/dmukhin/xen/-/pipelines/17760=
14231

Denis Mukhin (4):
  CI: unify x86 XTF test runner
  CI: switch x86 EFI smoke test runner to qemu-xtf.sh
  CI: switch arm64 XTF test runner to qemu-xtf.sh
  CI: add argo x86 XTF test

 automation/gitlab-ci/test.yaml                |  23 ++-
 automation/scripts/.gitignore                 |   9 ++
 .../scripts/include/configs/xtf-arm64-config  |   2 +
 .../scripts/include/configs/xtf-x86-64-config |   0
 .../include/configs/xtf-x86-64-efi-config     |   0
 automation/scripts/include/xtf-arm64          |  81 ++++++++++
 automation/scripts/include/xtf-runner         | 138 ++++++++++++++++++
 automation/scripts/include/xtf-x86-64         |  31 ++++
 automation/scripts/include/xtf-x86-64-efi     |  52 +++++++
 automation/scripts/qemu-smoke-x86-64-efi.sh   |  43 ------
 automation/scripts/qemu-smoke-x86-64.sh       |  26 ----
 automation/scripts/qemu-xtf-dom0less-arm64.sh |  68 ---------
 automation/scripts/qemu-xtf.sh                |  28 ++++
 13 files changed, 357 insertions(+), 144 deletions(-)
 create mode 100644 automation/scripts/.gitignore
 create mode 100644 automation/scripts/include/configs/xtf-arm64-config
 create mode 100644 automation/scripts/include/configs/xtf-x86-64-config
 create mode 100644 automation/scripts/include/configs/xtf-x86-64-efi-confi=
g
 create mode 100644 automation/scripts/include/xtf-arm64
 create mode 100644 automation/scripts/include/xtf-runner
 create mode 100644 automation/scripts/include/xtf-x86-64
 create mode 100644 automation/scripts/include/xtf-x86-64-efi
 delete mode 100755 automation/scripts/qemu-smoke-x86-64-efi.sh
 delete mode 100755 automation/scripts/qemu-smoke-x86-64.sh
 delete mode 100755 automation/scripts/qemu-xtf-dom0less-arm64.sh
 create mode 100755 automation/scripts/qemu-xtf.sh

--=20
2.34.1




From xen-devel-bounces@lists.xenproject.org Sat Apr 19 01:04:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 19 Apr 2025 01:04:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.959751.1352033 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5wch-00016D-LW; Sat, 19 Apr 2025 01:03:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 959751.1352033; Sat, 19 Apr 2025 01: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 1u5wch-000166-Ig; Sat, 19 Apr 2025 01:03:59 +0000
Received: by outflank-mailman (input) for mailman id 959751;
 Sat, 19 Apr 2025 01:03: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=GNoH=XF=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u5wcg-0000dd-Gq
 for xen-devel@lists.xenproject.org; Sat, 19 Apr 2025 01:03:58 +0000
Received: from mail-24416.protonmail.ch (mail-24416.protonmail.ch
 [109.224.244.16]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2b6eadf7-1cba-11f0-9ffb-bf95429c2676;
 Sat, 19 Apr 2025 03:03:56 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2b6eadf7-1cba-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=suphjhcguffetgdy2q7waelgwe.protonmail; t=1745024635; x=1745283835;
	bh=HfwyqHc65a2c6fDlXXG5iL28PrCHMVj+m8sxLB9s/3E=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=U02Fc05+VSwdhZCmk8u6uqjSh+P8wH+5MNipgM0MTeSTWplXoiufaw88OilNT/lXI
	 UNikoAnadt+t0/oO/Uvpqowitq1nf2WIjc223hN5Bn7X6L2w6wprP/9l5qFiRU+zGc
	 WPl5YSZprgVHlKq0KnaKoudIdt94bNUQIZ7v8VTAwHH0O5XJcwt+ZOr6vOIvSOA5CF
	 oy0MaQ2RuraL5RiRoQaA23d9hMfnFUkxW1T7gHS56AW0pKsslEjeNsakigrl/aLcGh
	 YXJKXgAoBIk5kF/J7lCoTJPg96VGOmhdz25MAvBpbTAMDr+egcKmSumtT0dmoho1Z5
	 TFztuO77Vie8w==
Date: Sat, 19 Apr 2025 01:03:51 +0000
To: xen-devel@lists.xenproject.org
From: dmkhn@proton.me
Cc: andrew.cooper3@citrix.com, cardoe@cardoe.com, marmarek@invisiblethingslab.com, sstabellini@kernel.org, dmukhin@ford.com
Subject: [PATCH v2 2/4] CI: switch x86 EFI smoke test runner to qemu-xtf.sh
Message-ID: <20250419010319.2572518-3-dmukhin@ford.com>
In-Reply-To: <20250419010319.2572518-1-dmukhin@ford.com>
References: <20250419010319.2572518-1-dmukhin@ford.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: b251f973a9d426487d883a84237249e3db943fe0
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

From: Denis Mukhin <dmukhin@ford.com>

Use qemu-xtf.sh for qemu-smoke-x86-64-gcc-efi job.

Lead time is reduced a bit since not all XTF code base is built, just the
required test.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
Changes since v2:
- removed TOP
- dropped XEN_CONSOLE in favor of XEN_CMDLINE
---
 automation/gitlab-ci/test.yaml                |  2 +-
 .../include/configs/xtf-x86-64-efi-config     |  0
 automation/scripts/include/xtf-x86-64-efi     | 52 +++++++++++++++++++
 automation/scripts/qemu-smoke-x86-64-efi.sh   | 43 ---------------
 4 files changed, 53 insertions(+), 44 deletions(-)
 create mode 100644 automation/scripts/include/configs/xtf-x86-64-efi-confi=
g
 create mode 100644 automation/scripts/include/xtf-x86-64-efi
 delete mode 100755 automation/scripts/qemu-smoke-x86-64-efi.sh

diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yam=
l
index 3adc841335..ca1e4eb528 100644
--- a/automation/gitlab-ci/test.yaml
+++ b/automation/gitlab-ci/test.yaml
@@ -687,7 +687,7 @@ qemu-smoke-x86-64-clang-pvh:
 qemu-smoke-x86-64-gcc-efi:
   extends: .qemu-smoke-x86-64
   script:
-    - ./automation/scripts/qemu-smoke-x86-64-efi.sh pv 2>&1 | tee ${LOGFIL=
E}
+    - ./automation/scripts/qemu-xtf.sh x86-64-efi hvm64 example 2>&1 | tee=
 ${LOGFILE}
   needs:
     - debian-12-x86_64-gcc-debug
=20
diff --git a/automation/scripts/include/configs/xtf-x86-64-efi-config b/aut=
omation/scripts/include/configs/xtf-x86-64-efi-config
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/automation/scripts/include/xtf-x86-64-efi b/automation/scripts=
/include/xtf-x86-64-efi
new file mode 100644
index 0000000000..e0d821b3f6
--- /dev/null
+++ b/automation/scripts/include/xtf-x86-64-efi
@@ -0,0 +1,52 @@
+#!/bin/bash
+#
+# XTF test utilities (x86_64, EFI).
+#
+
+# Arch-specific environment overrides.
+function xtf_arch_prepare()
+{
+    export FW_PREFIX=3D"${FW_PREFIX:-/usr/share/OVMF/}"
+    export QEMU_PREFIX=3D"${QEMU_PREFIX:-}"
+    export XEN_BINARY=3D"${XEN_BINARY:-${WORKDIR}/xen.efi}"
+    export XEN_CMDLINE=3D"${XEN_CMDLINE:-loglvl=3Dall noreboot console_tim=
estamps=3Dboot console=3Dcom1}"
+    export XTF_SRC_BRANCH=3D"${XTF_SRC_BRANCH:-master}"
+    export XTF_SRC_URI=3D"${XTF_SRC_URI:-https://xenbits.xen.org/git-http/=
xtf.git}"
+    export XTF_SRC_VARIANTS=3D"hvm64 pv64"
+}
+
+# Perform arch-specific XTF environment setup.
+function xtf_arch_setup()
+{
+    local esp_dir=3D"${WORKDIR}/boot-esp"
+    local efi_dir=3D"${esp_dir}/EFI/BOOT"
+
+    # Generate EFI boot environment
+    mkdir -p ${efi_dir}
+    cp ${XEN_BINARY} ${efi_dir}/BOOTX64.EFI
+    cp ${XTF_BINARY} ${efi_dir}/kernel
+
+    cat > ${efi_dir}/BOOTX64.cfg <<EOF
+[global]
+default=3Dtest
+
+[test]
+options=3D${XEN_CMDLINE}
+kernel=3Dkernel
+EOF
+
+    # NB: OVMF_CODE.fd is read-only, no need to copy
+    cp ${FW_PREFIX}OVMF_VARS.fd ${WORKDIR}
+
+    export TEST_CMD=3D"${QEMU_PREFIX}qemu-system-x86_64 \
+        -no-reboot \
+        -nographic \
+        -monitor none \
+        -serial stdio \
+        -m 512 \
+        -M q35,kernel-irqchip=3Dsplit \
+        -drive if=3Dpflash,format=3Draw,readonly=3Don,file=3D${FW_PREFIX}O=
VMF_CODE.fd \
+        -drive if=3Dpflash,format=3Draw,file=3D${WORKDIR}/OVMF_VARS.fd \
+        -drive file=3Dfat:rw:${esp_dir},media=3Ddisk,index=3D0,format=3Dra=
w \
+    "
+}
diff --git a/automation/scripts/qemu-smoke-x86-64-efi.sh b/automation/scrip=
ts/qemu-smoke-x86-64-efi.sh
deleted file mode 100755
index 7572722be6..0000000000
--- a/automation/scripts/qemu-smoke-x86-64-efi.sh
+++ /dev/null
@@ -1,43 +0,0 @@
-#!/bin/bash
-
-set -ex -o pipefail
-
-# variant should be either pv or pvh
-variant=3D$1
-
-# Clone and build XTF
-git clone https://xenbits.xen.org/git-http/xtf.git
-cd xtf && make -j$(nproc) && cd -
-
-case $variant in
-    pvh) k=3Dtest-hvm64-example    extra=3D"dom0-iommu=3Dnone dom0=3Dpvh" =
;;
-    *)   k=3Dtest-pv64-example     extra=3D ;;
-esac
-
-mkdir -p boot-esp/EFI/BOOT
-cp binaries/xen.efi boot-esp/EFI/BOOT/BOOTX64.EFI
-cp xtf/tests/example/$k boot-esp/EFI/BOOT/kernel
-
-cat > boot-esp/EFI/BOOT/BOOTX64.cfg <<EOF
-[global]
-default=3Dtest
-
-[test]
-options=3Dloglvl=3Dall console=3Dcom1 noreboot console_timestamps=3Dboot $=
extra
-kernel=3Dkernel
-EOF
-
-cp /usr/share/OVMF/OVMF_CODE.fd OVMF_CODE.fd
-cp /usr/share/OVMF/OVMF_VARS.fd OVMF_VARS.fd
-
-rm -f smoke.serial
-export TEST_CMD=3D"qemu-system-x86_64 -nographic -M q35,kernel-irqchip=3Ds=
plit \
-        -drive if=3Dpflash,format=3Draw,readonly=3Don,file=3DOVMF_CODE.fd =
\
-        -drive if=3Dpflash,format=3Draw,file=3DOVMF_VARS.fd \
-        -drive file=3Dfat:rw:boot-esp,media=3Ddisk,index=3D0,format=3Draw =
\
-        -m 512 -monitor none -serial stdio"
-
-export TEST_LOG=3D"smoke.serial"
-export PASSED=3D"Test result: SUCCESS"
-
-./automation/scripts/console.exp | sed 's/\r\+$//'
--=20
2.34.1




From xen-devel-bounces@lists.xenproject.org Sat Apr 19 01:04:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 19 Apr 2025 01:04:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.959752.1352043 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5wcn-0001Oe-1N; Sat, 19 Apr 2025 01:04:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 959752.1352043; Sat, 19 Apr 2025 01: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 1u5wcm-0001OO-U5; Sat, 19 Apr 2025 01:04:04 +0000
Received: by outflank-mailman (input) for mailman id 959752;
 Sat, 19 Apr 2025 01:04: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=GNoH=XF=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u5wcl-0000dd-Is
 for xen-devel@lists.xenproject.org; Sat, 19 Apr 2025 01:04:03 +0000
Received: from mail-10631.protonmail.ch (mail-10631.protonmail.ch
 [79.135.106.31]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2e827358-1cba-11f0-9ffb-bf95429c2676;
 Sat, 19 Apr 2025 03:04:02 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2e827358-1cba-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1745024641; x=1745283841;
	bh=ZuoQGNqtJDBsakgNFkCMESjtGTtCKJIn94RMss2VMrY=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=ZPgdWvZpeXzvObcpUrHiRZ8QAeHGV4VUq1TsJTpbQQgzQjm5nbnzZMgSXzTU8jYF9
	 PGp2ozGHpRq1w1PEOnXePfz5SMXmEOehbwSniuu4oMR1RtjtqJqQ4JcDt0HuLx8seu
	 wDpBYYIWGSo6HwTvoFcx02tbPfDZg3iTsMhvLLcko5lErdPUskzVHYyTD829XlH7h1
	 AaNrhTb7pr0DbiWxHd6t3tBDDBaHBIqj8hLu7GvPeqlFa3+G80fIc68lO8FA6Bm6Ja
	 BZ3pnuCmSeU48JP2ADZj/QgMQ3aFM9GTXwjnmBwVU/9GUEQXkemXCIrz5xHCb1eVTN
	 C3YxyslR5g5Qw==
Date: Sat, 19 Apr 2025 01:03:57 +0000
To: xen-devel@lists.xenproject.org
From: dmkhn@proton.me
Cc: andrew.cooper3@citrix.com, cardoe@cardoe.com, marmarek@invisiblethingslab.com, sstabellini@kernel.org, dmukhin@ford.com
Subject: [PATCH v2 3/4] CI: switch arm64 XTF test runner to qemu-xtf.sh
Message-ID: <20250419010319.2572518-4-dmukhin@ford.com>
In-Reply-To: <20250419010319.2572518-1-dmukhin@ford.com>
References: <20250419010319.2572518-1-dmukhin@ford.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: af5b6be86f9516bfd0d40e940a408460ceb552fb
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

From: Denis Mukhin <dmukhin@ford.com>

Hook arm64 QEMU configuration to qemu-xtf.sh and use new script in arm64 CI
jobs.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
---
Changes since v2:
- removed TOP
- dropped XEN_CONSOLE in favor of XEN_CMDLINE
- I kept Stefano's R-b since the change was trivial
---
 automation/gitlab-ci/test.yaml                |  4 +-
 automation/scripts/.gitignore                 |  3 +
 .../scripts/include/configs/xtf-arm64-config  |  2 +
 automation/scripts/include/xtf-arm64          | 81 +++++++++++++++++++
 automation/scripts/qemu-xtf-dom0less-arm64.sh | 68 ----------------
 5 files changed, 88 insertions(+), 70 deletions(-)
 create mode 100644 automation/scripts/include/configs/xtf-arm64-config
 create mode 100644 automation/scripts/include/xtf-arm64
 delete mode 100755 automation/scripts/qemu-xtf-dom0less-arm64.sh

diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yam=
l
index ca1e4eb528..d6e4a0a622 100644
--- a/automation/gitlab-ci/test.yaml
+++ b/automation/gitlab-ci/test.yaml
@@ -571,7 +571,7 @@ qemu-smoke-dom0less-arm64-gcc-debug-earlyprintk:
 qemu-xtf-dom0less-arm64-gcc-hyp-xen-version:
   extends: .qemu-arm64
   script:
-    - ./automation/scripts/qemu-xtf-dom0less-arm64.sh hyp-xen-version 2>&1=
 | tee ${LOGFILE}
+    - ./automation/scripts/qemu-xtf.sh arm64 mmu64le hyp-xen-version 2>&1 =
| tee ${LOGFILE}
   needs:
     - alpine-3.18-gcc-arm64
     - qemu-system-aarch64-6.0.0-arm64-export
@@ -579,7 +579,7 @@ qemu-xtf-dom0less-arm64-gcc-hyp-xen-version:
 qemu-xtf-dom0less-arm64-gcc-debug-hyp-xen-version:
   extends: .qemu-arm64
   script:
-    - ./automation/scripts/qemu-xtf-dom0less-arm64.sh hyp-xen-version 2>&1=
 | tee ${LOGFILE}
+    - ./automation/scripts/qemu-xtf.sh arm64 mmu64le hyp-xen-version 2>&1 =
| tee ${LOGFILE}
   needs:
     - alpine-3.18-gcc-debug-arm64
     - qemu-system-aarch64-6.0.0-arm64-export
diff --git a/automation/scripts/.gitignore b/automation/scripts/.gitignore
index 2f2d6e1ebd..f853da4d89 100644
--- a/automation/scripts/.gitignore
+++ b/automation/scripts/.gitignore
@@ -1,6 +1,9 @@
 !include
=20
 binaries
+imagebuilder
 smoke.serial
 xen
 xtf*/
+
+*.rom
diff --git a/automation/scripts/include/configs/xtf-arm64-config b/automati=
on/scripts/include/configs/xtf-arm64-config
new file mode 100644
index 0000000000..9942740927
--- /dev/null
+++ b/automation/scripts/include/configs/xtf-arm64-config
@@ -0,0 +1,2 @@
+CONFIG_GICV2=3Dy
+CONFIG_SBSA_UART=3Dy
diff --git a/automation/scripts/include/xtf-arm64 b/automation/scripts/incl=
ude/xtf-arm64
new file mode 100644
index 0000000000..1a318b7aa0
--- /dev/null
+++ b/automation/scripts/include/xtf-arm64
@@ -0,0 +1,81 @@
+#!/bin/bash
+#
+# XTF test utilities (arm64).
+#
+
+# Arch-specific environment overrides.
+function xtf_arch_prepare()
+{
+    export FW_PREFIX=3D"${FW_PREFIX:-/usr/lib/u-boot/qemu_arm64/}"
+    export QEMU_PREFIX=3D"${QEMU_PREFIX:-${WORKDIR}/}"
+    export XEN_BINARY=3D"${XEN_BINARY:-${WORKDIR}/xen}"
+    export XEN_CMDLINE=3D"${XEN_CMDLINE:-loglvl=3Dall noreboot console_tim=
estamps=3Dboot console=3Ddtuart}"
+    export XTF_SRC_BRANCH=3D"${XTF_SRC_BRANCH:-xtf-arm}"
+    export XTF_SRC_URI=3D"${XTF_SRC_URI:-https://gitlab.com/xen-project/fu=
sa/xtf.git}"
+    export XTF_SRC_VARIANTS=3D"mmu64le"
+}
+
+# Perform arch-specific XTF environment setup.
+function xtf_arch_setup()
+{
+    # QEMU looks for "efi-virtio.rom" even if it is unneeded
+    curl -fsSLO https://github.com/qemu/qemu/raw/v5.2.0/pc-bios/efi-virtio=
.rom
+
+    # Crude check for local testing
+    if [ ! -d imagebuilder ]; then
+        git clone --depth 1 https://gitlab.com/xen-project/imagebuilder.gi=
t
+    fi
+
+    cat > ${WORKDIR}/config <<EOF
+MEMORY_START=3D"0x40000000"
+MEMORY_END=3D"0xC0000000"
+
+XEN=3D"xen"
+DEVICE_TREE=3D"virt-gicv2.dtb"
+
+XEN_CMD=3D"${XEN_CMDLINE}"
+
+DOMU_KERNEL[0]=3D"xtf-test"
+DOMU_MEM[0]=3D"128"
+
+NUM_DOMUS=3D1
+
+LOAD_CMD=3D"tftpb"
+UBOOT_SOURCE=3D"boot.source"
+UBOOT_SCRIPT=3D"boot.scr"
+EOF
+    cp ${XTF_BINARY} ${WORKDIR}/xtf-test
+
+    # Generate virt-gicv2.dtb
+    ${WORKDIR}/qemu-system-aarch64 \
+        -machine virtualization=3Dtrue \
+        -cpu cortex-a57 \
+        -machine type=3Dvirt \
+        -m 2048 \
+        -smp 2 \
+        -display none \
+        -machine dumpdtb=3D${WORKDIR}/virt-gicv2.dtb
+
+    # Generate U-Boot environment
+    bash -x imagebuilder/scripts/uboot-script-gen \
+        -t tftp \
+        -d ${WORKDIR}/ \
+        -c ${WORKDIR}/config
+
+    export TEST_CMD=3D"${QEMU_PREFIX}qemu-system-aarch64 \
+        -machine virtualization=3Dtrue \
+        -cpu cortex-a57 \
+        -machine type=3Dvirt \
+        -no-reboot \
+        -nographic \
+        -monitor none \
+        -serial stdio \
+        -m 2048 \
+        -smp 2 \
+        -device virtio-net-pci,netdev=3Dn0 \
+        -netdev user,id=3Dn0,tftp=3D${WORKDIR} \
+        -bios ${FW_PREFIX}u-boot.bin \
+    "
+
+    export UBOOT_CMD=3D"virtio scan; dhcp; tftpb 0x40000000 boot.scr; sour=
ce 0x40000000"
+}
diff --git a/automation/scripts/qemu-xtf-dom0less-arm64.sh b/automation/scr=
ipts/qemu-xtf-dom0less-arm64.sh
deleted file mode 100755
index 436f460c3c..0000000000
--- a/automation/scripts/qemu-xtf-dom0less-arm64.sh
+++ /dev/null
@@ -1,68 +0,0 @@
-#!/bin/bash
-
-set -ex -o pipefail
-
-# Name of the XTF test
-xtf_test=3D$1
-
-# Message returned by XTF in case of success
-passed=3D"Test result: SUCCESS"
-
-# XXX QEMU looks for "efi-virtio.rom" even if it is unneeded
-curl -fsSLO https://github.com/qemu/qemu/raw/v5.2.0/pc-bios/efi-virtio.rom
-./binaries/qemu-system-aarch64 \
-   -machine virtualization=3Dtrue \
-   -cpu cortex-a57 -machine type=3Dvirt \
-   -m 2048 -smp 2 -display none \
-   -machine dumpdtb=3Dbinaries/virt-gicv2.dtb
-
-# XTF
-# Build a single XTF test passed as a first parameter to the script.
-# Build XTF with GICv2 support to match Qemu configuration and with SBSA U=
ART
-# support, so that the test will use an emulated UART for printing message=
s.
-# This will allow us to run the test on both debug and non-debug Xen build=
s.
-rm -rf xtf
-git clone https://gitlab.com/xen-project/fusa/xtf.git -b xtf-arm
-make -C xtf TESTS=3Dtests/${xtf_test} CONFIG_SBSA_UART=3Dy CONFIG_GICV2=3D=
y -j$(nproc)
-cp xtf/tests/${xtf_test}/test-mmu64le-${xtf_test} binaries/xtf-test
-
-# ImageBuilder
-echo 'MEMORY_START=3D"0x40000000"
-MEMORY_END=3D"0xC0000000"
-
-XEN=3D"xen"
-DEVICE_TREE=3D"virt-gicv2.dtb"
-
-XEN_CMD=3D"console=3Ddtuart console_timestamps=3Dboot"
-
-DOMU_KERNEL[0]=3D"xtf-test"
-DOMU_MEM[0]=3D"128"
-
-NUM_DOMUS=3D1
-
-LOAD_CMD=3D"tftpb"
-UBOOT_SOURCE=3D"boot.source"
-UBOOT_SCRIPT=3D"boot.scr"' > binaries/config
-
-rm -rf imagebuilder
-git clone --depth 1 https://gitlab.com/xen-project/imagebuilder.git
-bash imagebuilder/scripts/uboot-script-gen -t tftp -d binaries/ -c binarie=
s/config
-
-# Run the test
-rm -f smoke.serial
-export TEST_CMD=3D"./binaries/qemu-system-aarch64 \
-    -machine virtualization=3Dtrue \
-    -cpu cortex-a57 -machine type=3Dvirt \
-    -m 2048 -monitor none -serial stdio \
-    -smp 2 \
-    -no-reboot \
-    -device virtio-net-pci,netdev=3Dn0 \
-    -netdev user,id=3Dn0,tftp=3Dbinaries \
-    -bios /usr/lib/u-boot/qemu_arm64/u-boot.bin"
-
-export UBOOT_CMD=3D"virtio scan; dhcp; tftpb 0x40000000 boot.scr; source 0=
x40000000"
-export BOOT_MSG=3D"Latest ChangeSet: "
-export TEST_LOG=3D"smoke.serial"
-export PASSED=3D"${passed}"
-
-./automation/scripts/console.exp | sed 's/\r\+$//'
--=20
2.34.1




From xen-devel-bounces@lists.xenproject.org Sat Apr 19 01:04:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 19 Apr 2025 01:04:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.959755.1352052 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5wcu-0001uB-9s; Sat, 19 Apr 2025 01:04:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 959755.1352052; Sat, 19 Apr 2025 01:04:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u5wcu-0001tM-6k; Sat, 19 Apr 2025 01:04:12 +0000
Received: by outflank-mailman (input) for mailman id 959755;
 Sat, 19 Apr 2025 01:04: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=GNoH=XF=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u5wcs-0001gk-Cx
 for xen-devel@lists.xenproject.org; Sat, 19 Apr 2025 01:04:10 +0000
Received: from mail-4322.protonmail.ch (mail-4322.protonmail.ch [185.70.43.22])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 32a17046-1cba-11f0-9eb0-5ba50f476ded;
 Sat, 19 Apr 2025 03:04:09 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 32a17046-1cba-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1745024648; x=1745283848;
	bh=IjOyuXSKVCXNqvxd/Bt16D2Dy967L2dTHaZI1BEueCQ=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=d9ojudO7Y72loNGxZ4pf1ZgXBXgwstNtyz9/fG4VP8NX4EKuGF/0FjBqDsJB8r2fG
	 kyhVoaujIy281UAmUkx4W+nNaSyVcD3tE3cqz/r2Yivpjs4c6N8uIiFUAUPhijMvdT
	 nI5VQulV6nPxXtvIfYjp38o83UL3csK2l1Z11BR5yWwnaLFfTudVhYeSPI6GpyihHd
	 GDGmjPXLA1/bhQLRnVE4VM8b96eLQJK9Y9/VD4i/K5ed/LIfZgok0XO3tqMiMMvZd+
	 +lvfT8k7YdTPI6/s0VP6MICLJjwvlbg0dFwUTmD8l0/mkqkbYStOJNg8oHajq9RsEg
	 5aElXHkRC7xJg==
Date: Sat, 19 Apr 2025 01:04:03 +0000
To: xen-devel@lists.xenproject.org
From: dmkhn@proton.me
Cc: andrew.cooper3@citrix.com, cardoe@cardoe.com, marmarek@invisiblethingslab.com, sstabellini@kernel.org, dmukhin@ford.com
Subject: [PATCH v2 4/4] CI: add argo x86 XTF test
Message-ID: <20250419010319.2572518-5-dmukhin@ford.com>
In-Reply-To: <20250419010319.2572518-1-dmukhin@ford.com>
References: <20250419010319.2572518-1-dmukhin@ford.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 0eed745644dc4aa40ba247087c7f5b6212e8ffce
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

From: Denis Mukhin <dmukhin@ford.com>

Introduce new CI job to run x86 XTF argo test under QEMU to smoke test argo
feature functionality in upstream CI.

The new job lead time is ~30s, limit max job duration to 60s.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
Depends on
   https://lore.kernel.org/xen-devel/20250416050443.919751-1-dmukhin@ford.c=
om/
---
 automation/gitlab-ci/test.yaml        | 9 +++++++++
 automation/scripts/include/xtf-runner | 7 +++++++
 2 files changed, 16 insertions(+)

diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yam=
l
index d6e4a0a622..9001efb45c 100644
--- a/automation/gitlab-ci/test.yaml
+++ b/automation/gitlab-ci/test.yaml
@@ -691,6 +691,15 @@ qemu-smoke-x86-64-gcc-efi:
   needs:
     - debian-12-x86_64-gcc-debug
=20
+qemu-xtf-argo-x86_64-gcc-debug:
+  extends: .qemu-smoke-x86-64
+  variables:
+    TEST_TIMEOUT_OVERRIDE: 60
+  script:
+    - ./automation/scripts/qemu-xtf.sh x86-64 pv64 argo 2>&1 | tee ${LOGFI=
LE}
+  needs:
+    - alpine-3.18-gcc-debug
+
 qemu-smoke-riscv64-gcc:
   extends: .qemu-riscv64
   script:
diff --git a/automation/scripts/include/xtf-runner b/automation/scripts/inc=
lude/xtf-runner
index 320eb65dc8..b7fea52dad 100644
--- a/automation/scripts/include/xtf-runner
+++ b/automation/scripts/include/xtf-runner
@@ -68,6 +68,9 @@ function xtf_build_cmdline()
     local xtf_variant=3D$1
     local xtf_name=3D$2
     declare -a cmdline=3D()
+    declare -A per_test_args=3D(
+        [argo]=3D"argo=3D1 mac-permissive=3D1"
+    )
=20
     cmdline+=3D("${XEN_CMDLINE}")
=20
@@ -76,6 +79,10 @@ function xtf_build_cmdline()
         cmdline+=3D("dom0-iommu=3Dnone dom0=3Dpvh")
     fi
=20
+    if [[ -v per_test_args[${xtf_name}] ]]; then
+        cmdline+=3D("${per_test_args[${xtf_name}]}")
+    fi
+
     export XEN_CMDLINE=3D"${cmdline[@]}"
 }
=20
--=20
2.34.1




From xen-devel-bounces@lists.xenproject.org Sat Apr 19 22:09:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 19 Apr 2025 22:09:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.960023.1352082 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6GN5-0005IF-Hl; Sat, 19 Apr 2025 22:09:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 960023.1352082; Sat, 19 Apr 2025 22: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 1u6GN5-0005I8-F0; Sat, 19 Apr 2025 22:09:11 +0000
Received: by outflank-mailman (input) for mailman id 960023;
 Sat, 19 Apr 2025 22:09:10 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=nqik=XF=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1u6GN4-0004ik-5B
 for xen-devel@lists.xenproject.org; Sat, 19 Apr 2025 22:09:10 +0000
Received: from sender4-of-o50.zoho.com (sender4-of-o50.zoho.com
 [136.143.188.50]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e97500c2-1d6a-11f0-9ffb-bf95429c2676;
 Sun, 20 Apr 2025 00:09:08 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 1745100511651881.3603769819105;
 Sat, 19 Apr 2025 15:08:31 -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: e97500c2-1d6a-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; t=1745100514; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=cWeIr/ZaTjTzuFSs20BKmaulJkwDLffqU6l4/4Exd4bwcTicA09gDRrIZ+esjjkGjuBSqeoDFjijGGZNwv9l+t84PKtg+gWkwNEHSQXTomcIOaE6F4dSKlrT/9CGdwSFw+Msd9nq3GMFy7D0M005fBm+6gmckY+B/oOfMfJjcjo=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1745100514; 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=7U1Fqb7JL6jeU93el9q9k/XaCyV8bA/5BXhduZX6xMc=; 
	b=Nr6/oxr21Mrk5E8FX+bIsGu4Va3loqycqmcZvP04UMMq/417XkiNPzfSvKAC5sQyStwhBoqY11s01Md5kqp0KcJEhfA66PPpgen68KHH5x58JpstFiTH1o/RINEAhkeNYsudp5ZdItdQB/KQqmw2ylOhAhK5wtJCZq4vK5a4Ing=
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=1745100514;
	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=7U1Fqb7JL6jeU93el9q9k/XaCyV8bA/5BXhduZX6xMc=;
	b=F/L0fBS+Zo6E2TOzI0mNrNuE6naZsgg2cNz6/6M4jA9X1qJV1h2I/83RS1z+dIvI
	7II99riovleZ6lIcwhDDHBn4JHUJOxHkTtLfXeB212ZTZNTgDsPIm3luRATrh8t0Sax
	a/3N1uxyt1gRZyEJmuKPO2ZTzYcw3+mCXriEJFQI=
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
To: xen-devel@lists.xenproject.org
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	jason.andryuk@amd.com,
	stefano.stabellini@amd.com,
	agarciav@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: [RFC 02/38] x86/hyperlaunch: correct the naming of domain ramdisk field
Date: Sat, 19 Apr 2025 18:07:44 -0400
Message-Id: <20250419220820.4234-3-dpsmith@apertussolutions.com>
X-Mailer: git-send-email 2.30.2
In-Reply-To: <20250419220820.4234-1-dpsmith@apertussolutions.com>
References: <20250419220820.4234-1-dpsmith@apertussolutions.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

The ramdisk field was incorrectly renamed to module without providing a sound
justification. Doing so creates an unnecessary indirection that can cause more
confusion than utility. The only way the field is populated is via a match of a
boot module of type BOOTMOD_RAMDISK. All usages of the field are cast into a
variables named initrd. The attempt to generalize the field name under the
guise that it could be multiplexed for other module types did so without a
valid usage. The result is there is no consideration of how that multiplexing
would even work or be deconflict with the simultaneous presence of a ramdisk.

Moving the field name back to ramdisk to make the current code flow logical. At
a later time should there be a use case that arises where additional modules
need to be passed to a domain, a more appropriate framework will be crafted
that will like be more complicated than just renaming the field to something
other than ramdisk.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
---
 xen/arch/x86/domain-builder/fdt.c      | 4 ++--
 xen/arch/x86/hvm/dom0_build.c          | 2 +-
 xen/arch/x86/include/asm/boot-domain.h | 2 +-
 xen/arch/x86/pv/dom0_build.c           | 2 +-
 xen/arch/x86/setup.c                   | 2 +-
 5 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/xen/arch/x86/domain-builder/fdt.c b/xen/arch/x86/domain-builder/fdt.c
index dbfbcffb0a9c..d2a7e010ea77 100644
--- a/xen/arch/x86/domain-builder/fdt.c
+++ b/xen/arch/x86/domain-builder/fdt.c
@@ -310,7 +310,7 @@ static int __init process_domain_node(
         {
             int idx;
 
-            if ( bd->module )
+            if ( bd->ramdisk )
             {
                 printk(XENLOG_ERR "Duplicate ramdisk module for domain %s)\n",
                        name);
@@ -328,7 +328,7 @@ static int __init process_domain_node(
 
             printk("  ramdisk: boot module %d\n", idx);
             bi->mods[idx].type = BOOTMOD_RAMDISK;
-            bd->module = &bi->mods[idx];
+            bd->ramdisk = &bi->mods[idx];
 
             continue;
         }
diff --git a/xen/arch/x86/hvm/dom0_build.c b/xen/arch/x86/hvm/dom0_build.c
index ebad5a49b8d4..176b253d3c61 100644
--- a/xen/arch/x86/hvm/dom0_build.c
+++ b/xen/arch/x86/hvm/dom0_build.c
@@ -648,7 +648,7 @@ static int __init pvh_load_kernel(
 {
     struct domain *d = bd->d;
     struct boot_module *image = bd->kernel;
-    struct boot_module *initrd = bd->module;
+    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;
diff --git a/xen/arch/x86/include/asm/boot-domain.h b/xen/arch/x86/include/asm/boot-domain.h
index 29a7d806de1a..b0f956cd734e 100644
--- a/xen/arch/x86/include/asm/boot-domain.h
+++ b/xen/arch/x86/include/asm/boot-domain.h
@@ -29,7 +29,7 @@ struct boot_domain {
     unsigned int max_vcpus;
 
     struct boot_module *kernel;
-    struct boot_module *module;
+    struct boot_module *ramdisk;
     const char *cmdline;
 
     struct domain *d;
diff --git a/xen/arch/x86/pv/dom0_build.c b/xen/arch/x86/pv/dom0_build.c
index e1b78d47c218..3b2baf057b75 100644
--- a/xen/arch/x86/pv/dom0_build.c
+++ b/xen/arch/x86/pv/dom0_build.c
@@ -375,7 +375,7 @@ static int __init dom0_construct(const struct boot_domain *bd)
     struct vcpu *v = d->vcpu[0];
 
     struct boot_module *image = bd->kernel;
-    struct boot_module *initrd = bd->module;
+    struct boot_module *initrd = bd->ramdisk;
     void *image_base;
     unsigned long image_len;
     void *image_start;
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 1e7bbc415e1d..6a939ccede3f 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -2165,7 +2165,7 @@ void asmlinkage __init noreturn __start_xen(void)
     if ( !bi->hyperlaunch_enabled && initrdidx < MAX_NR_BOOTMODS )
     {
         bi->mods[initrdidx].type = BOOTMOD_RAMDISK;
-        bi->domains[0].module = &bi->mods[initrdidx];
+        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 Apr 19 22:09:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 19 Apr 2025 22:09:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.960019.1352063 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6GMk-0004iz-5c; Sat, 19 Apr 2025 22:08:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 960019.1352063; Sat, 19 Apr 2025 22:08: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 1u6GMk-0004iq-0E; Sat, 19 Apr 2025 22:08:50 +0000
Received: by outflank-mailman (input) for mailman id 960019;
 Sat, 19 Apr 2025 22:08: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=nqik=XF=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1u6GMi-0004ik-MI
 for xen-devel@lists.xenproject.org; Sat, 19 Apr 2025 22:08:48 +0000
Received: from sender4-of-o50.zoho.com (sender4-of-o50.zoho.com
 [136.143.188.50]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id dab1ca76-1d6a-11f0-9ffb-bf95429c2676;
 Sun, 20 Apr 2025 00:08:43 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 174510051064835.59787454297157;
 Sat, 19 Apr 2025 15:08: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: dab1ca76-1d6a-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; t=1745100512; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=gpwctGYRt8O3btV9jHXd2KCVn+t1kjs5/Id1HPt2cbGqT026m8dmA2YTwe2AIeEij1nr31qKsZNf3o3orDK7+hLxggdUUhaQzTCEVvAzi3iNMT6n9Ro9doHh7fNjrJXsAd+VvNqWqMAsXQ6zIHFc99ZvB0vNiWLICW1mVbqdN6g=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1745100512; 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=JN77pQspCeOkPfnup+NGDjVXEkmaX55POW75Epj0P+M=; 
	b=Fpnoi1TDSE+n20ORDixmcAODoLeN0Olcvc9qCIs6yLkvpfowxWpLHob6conq5xfsmMXz0v/8hbMrdp3GsQzJi/yPJ9fMlJvanEDzhcpTcAXFMW+AJfAli+bDVoDDF2hmc14LDeoMyaLlxdOnFw80kvRsXLkpevvCzrAKfdC3RZM=
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=1745100512;
	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=JN77pQspCeOkPfnup+NGDjVXEkmaX55POW75Epj0P+M=;
	b=R4S63Kf+ksPn8NQdjAgaIRPp4NbvD0HNL+//O/+YBZMB0lu8eK6T3aE2dK79pllg
	BcAtQAJEeFaA16i6qgi4YLfFtorYeoNCuhJX23vD9p24NsM+eCaoBbPIulWDVozxgJq
	2RQUGeWTgcJAQ/chPyXDlOKvWh3eQiaRYzyNlzbo=
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
To: xen-devel@lists.xenproject.org
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	jason.andryuk@amd.com,
	stefano.stabellini@amd.com,
	agarciav@amd.com,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [RFC 01/38] maintainers: add new section for hyperlaunch
Date: Sat, 19 Apr 2025 18:07:43 -0400
Message-Id: <20250419220820.4234-2-dpsmith@apertussolutions.com>
X-Mailer: git-send-email 2.30.2
In-Reply-To: <20250419220820.4234-1-dpsmith@apertussolutions.com>
References: <20250419220820.4234-1-dpsmith@apertussolutions.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

Add new section to MAINTAINERS for hyperlaunch, including the files
specifically added to this point under the hyperlaunch work.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
---
 MAINTAINERS | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/MAINTAINERS b/MAINTAINERS
index c11b82eca98f..7de671efe512 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -343,6 +343,15 @@ F:	tools/misc/xenhypfs.c
 F:	xen/common/hypfs.c
 F:	xen/include/xen/hypfs.h
 
+HYPERLAUNCH
+M:	Daniel P. Smith <dpsmith@apertussolutions.com>
+M:	Christopher Clark <christopher.w.clark@gmail.com>
+S:	Supported
+F:	xen/x86/domain-builder/
+F:	xen/x86/include/asm/bootinfo.h
+F:	xen/x86/include/asm/boot-domain.h
+F:	xen/x86/include/asm/domain-builder.h
+
 IMX8QM/QXP SUPPORT
 R:	John Ernberg <john.ernberg@actia.se>
 F:	xen/arch/arm/platforms/imx8qm.c
-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Sat Apr 19 22:09:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 19 Apr 2025 22:09:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.960020.1352073 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6GMy-0004yx-AF; Sat, 19 Apr 2025 22:09:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 960020.1352073; Sat, 19 Apr 2025 22:09: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 1u6GMy-0004yo-76; Sat, 19 Apr 2025 22:09:04 +0000
Received: by outflank-mailman (input) for mailman id 960020;
 Sat, 19 Apr 2025 22:09: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=nqik=XF=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1u6GMw-0004ik-JG
 for xen-devel@lists.xenproject.org; Sat, 19 Apr 2025 22:09:02 +0000
Received: from sender4-of-o50.zoho.com (sender4-of-o50.zoho.com
 [136.143.188.50]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e4f715a3-1d6a-11f0-9ffb-bf95429c2676;
 Sun, 20 Apr 2025 00:09:00 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 17451005092371023.849891890091;
 Sat, 19 Apr 2025 15:08:29 -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: e4f715a3-1d6a-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; t=1745100512; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=KY9xIV6D1qIKDm7tQZZ3DwwdQxIbJaMpxrUzWQFBWf4ZuRI0DD6mYBa7SuyxRlcfpsTb78z5XVGIxgHht1d/3pzPav8m/3OGzBYwBNSt7kbzl0b5/fVL2ng1ZqNIoTWgt7QJ7D3JCo1azGDxvu4teS6oN+c8+BHisBRHwqyk998=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1745100512; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:MIME-Version:Message-ID:Subject:Subject:To:To:Message-Id:Reply-To; 
	bh=NzmQ6uolA8E5w5U/XEFdVN2iE4YPjBizc0u4UT10BuI=; 
	b=MmQn+SO5FNcY1qNOsYUujRgjATfSneLSIVBaBEww3x5k+n7/nm2GOhaarbNCKOTYUjBSv5O6zoyjBPG3JKAdcSCOcayh67xfqUtN0XLEq5qfdK18+pGvtSKy7F3AelksdzZy4bv29MRK26C3hyhyxKfCEUvRKwluw1gwC1ehZSw=
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=1745100512;
	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=NzmQ6uolA8E5w5U/XEFdVN2iE4YPjBizc0u4UT10BuI=;
	b=LNg/BvTDhj2VHPq5wbqm7p2xLJtHhQip1i7OEGm539DgQcPUIJRopEy0DXH8kjI5
	FI1Fw/6QWC/PNKhfpqyA2XTi0HBspISsGiOcd5ERmFxOGY3gE7p00mf6OfC8HMlmxfp
	jWI2iEhdcJ7q3zoTH60fj2Ges9kS3tWlkZ3TnOQQ=
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,
	agarciav@amd.com
Subject: [RFC 00/38] Hyperlaunch domain builder
Date: Sat, 19 Apr 2025 18:07:42 -0400
Message-Id: <20250419220820.4234-1-dpsmith@apertussolutions.com>
X-Mailer: git-send-email 2.30.2
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

NOTE: Sending this series as an RFC as it is a follow-on to the hyperlaunch
dom0 device tree series going through rounds of review right now. This specific
iteration is based off of v3 with the exception of one fix found here and
already incorporated into v4.

The Hyperlaunch domain builder series is the third split out for the
introduction of the Hyperlaunch domain builder logic. These changes focus on
introducing the ability to create multiple PVH domains at boot. The definition
for those domains will come from the Device Tree capability introduced in the
dom0 device tree 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

Daniel P. Smith (38):
  maintainers: add new section for hyperlaunch
  x86/hyperlaunch: correct the naming of domain ramdisk field
  x86/hyperlaunch: convert max vcpu determination to domain builder
  x86/hyperlaunch: convert vcpu0 creation to domain builder
  x86/hyperlaunch: move dom0 cpuid policy behind capability check
  x86/hyperlaunch: add hardware domain capability support
  x86/hyperlaunch: introduce pvh domain builder
  x86/hyperlaunch: move initial hwdom setup to dom_construct_pvh
  x86/boot: convert dom0 page calculation to use boot domain
  x86/boot: refactor dom0 page calculation
  x86/boot: generalize paging pages calculation
  x86/boot: generalize compute number of domain pages
  x86/hyperlaunch: move page computation to domain builder
  x86/hyperlaunch: move pvh p2m init to domain builder
  x86/hyperlaunch: move iommu init to domain builder
  x86/boot: move and rename sched_setup_dom0_vcpus
  x86/hyperlaunch: move pvh_setup_cpus to domain builder
  x86/boot: rename pvh acpi setup function
  x86/hyperlaunch: add domu memory map construction
  x86/hyperlaunch: move populating p2m under domain builder
  x86/hyperlaunch: move remaining pvh dom0 construction
  x86/hyperlaunch: relocate pvh_steal_ram to domain builder
  x86/hyperlaunch: add domu acpi construction
  x86/boot: export command line processing
  x86/hyperlaunch: convert create_dom0 to arch_create_dom
  x86/hyperlaunch: remove dom0-isms from arch_create_dom
  x86/hyperlaunch: introduce domain builder general dom creation
  x86/hyperlaunch: add xenstore boot capabilities flag
  x86/hyperlaunch: allocate console for domu
  x86/hyperlaunch: allocate xenstore for domu
  x86/hyperlaunch: move boot module discard to domain builder
  x86/hyperlaunch: introduce concept of core domains
  x86/boot: refactor bzimage parser to be re-enterant
  x86/hyperlaunch: introduce multidomain kconfig option
  x86/hyperlaunch: add multidomain construction logic
  x86/hyperlaunch: enable unpausing mulitple domains
  x86/hyperlaunch: generalize domid assignment
  tools: introduce hyperlaunch domain late init

 .gitignore                                |    1 +
 MAINTAINERS                               |    9 +
 tools/helpers/Makefile                    |   12 +
 tools/helpers/late-init-domains.c         |  364 +++++++
 tools/helpers/late-init-domains.h         |   18 +
 tools/helpers/xs-helpers.c                |  117 +++
 tools/helpers/xs-helpers.h                |   26 +
 xen/arch/x86/bzimage.c                    |   38 +-
 xen/arch/x86/dom0_build.c                 |  120 +--
 xen/arch/x86/domain-builder/Kconfig       |   12 +
 xen/arch/x86/domain-builder/Makefile      |    1 +
 xen/arch/x86/domain-builder/core.c        |  127 ++-
 xen/arch/x86/domain-builder/domain.c      |  421 ++++++++
 xen/arch/x86/domain-builder/fdt.c         |   37 +-
 xen/arch/x86/hvm/Makefile                 |    1 +
 xen/arch/x86/hvm/dom0_build.c             |  600 +-----------
 xen/arch/x86/hvm/dom_build.c              | 1063 +++++++++++++++++++++
 xen/arch/x86/include/asm/boot-domain.h    |   21 +-
 xen/arch/x86/include/asm/bootinfo.h       |   28 +-
 xen/arch/x86/include/asm/bzimage.h        |    5 +-
 xen/arch/x86/include/asm/dom0_build.h     |   19 +-
 xen/arch/x86/include/asm/domain-builder.h |   29 +
 xen/arch/x86/include/asm/setup.h          |    4 +-
 xen/arch/x86/pv/dom0_build.c              |   19 +-
 xen/arch/x86/setup.c                      |  207 +---
 xen/common/sched/core.c                   |   12 -
 xen/include/xen/sched.h                   |    1 -
 27 files changed, 2412 insertions(+), 900 deletions(-)
 create mode 100644 tools/helpers/late-init-domains.c
 create mode 100644 tools/helpers/late-init-domains.h
 create mode 100644 tools/helpers/xs-helpers.c
 create mode 100644 tools/helpers/xs-helpers.h
 create mode 100644 xen/arch/x86/domain-builder/domain.c
 create mode 100644 xen/arch/x86/hvm/dom_build.c

-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Sat Apr 19 22:09:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 19 Apr 2025 22:09:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.960028.1352093 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6GNE-0005jx-QI; Sat, 19 Apr 2025 22:09:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 960028.1352093; Sat, 19 Apr 2025 22:09: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 1u6GNE-0005jq-NQ; Sat, 19 Apr 2025 22:09:20 +0000
Received: by outflank-mailman (input) for mailman id 960028;
 Sat, 19 Apr 2025 22:09: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=nqik=XF=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1u6GND-0004ik-FL
 for xen-devel@lists.xenproject.org; Sat, 19 Apr 2025 22:09:19 +0000
Received: from sender4-of-o50.zoho.com (sender4-of-o50.zoho.com
 [136.143.188.50]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ef1c04f2-1d6a-11f0-9ffb-bf95429c2676;
 Sun, 20 Apr 2025 00:09:17 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 1745100512455384.54233147742355;
 Sat, 19 Apr 2025 15:08:32 -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: ef1c04f2-1d6a-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; t=1745100514; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=kea+OpCMbrU3niOqZ4LOEwuW42skHXjA8N5TrltliYaj/a6mW4QNYiGU3lwmAZbzWUKba8mcY/i6Odpa4LFMHDfqm5NiEPedJLUmR/8JJx1EcZlT04TIZXNL7b7D2YC7jI3pVtN0n6Z23FegLNH6aCmcfH03ylXooy0EOsR8i4M=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1745100514; 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=YokNzpGdgI0vQMpM08lo4NE+yMaBURARXSs0s10k4IU=; 
	b=EHi61hS/Sa1kndbQpbdGURi8SKMwBdvwG2DsXey3X1ecXJRER2y9woP9g/P5UCK85cNydRfYIcuIxJkc9UXojONewLZCHLSZ5VrqIe9rayRwu+eH4oJb9eXvF3uJo/LkD2iFFFSOUCdxSzEDF0F4OWAbeVfnNfyYO0aWTlEfiXw=
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=1745100514;
	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=YokNzpGdgI0vQMpM08lo4NE+yMaBURARXSs0s10k4IU=;
	b=CRabSLX/9Tp3KlF0bltxA3SF8iGKnnVgyojCoTdMzwINEkuTMieLstBIHwYXf8mG
	bwQUQSmn9xaDs9k6IPaAeJHUE0ut2hkmwztFL6Qi0H6K8uu1KbgNPuL2JHeJQadqDSo
	njvPS1h/vtAJ8jvF1hpBJZSso/9Yihnr0j8xHueg=
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
To: xen-devel@lists.xenproject.org
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	jason.andryuk@amd.com,
	stefano.stabellini@amd.com,
	agarciav@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: [RFC 03/38] x86/hyperlaunch: convert max vcpu determination to domain builder
Date: Sat, 19 Apr 2025 18:07:45 -0400
Message-Id: <20250419220820.4234-4-dpsmith@apertussolutions.com>
X-Mailer: git-send-email 2.30.2
In-Reply-To: <20250419220820.4234-1-dpsmith@apertussolutions.com>
References: <20250419220820.4234-1-dpsmith@apertussolutions.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

The domain configuration may request more vcpus than are present in the system.
For dom0, the function dom0_max_vcpus() was used to clamp down to physically
available vcpus. Here we are introducing a generalized version,
dom_max_vcpus(), that takes a boot domain and sets the max vcpus based on the
lesser of the requested max and the available vcpus.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
---
 xen/arch/x86/domain-builder/Makefile      |  1 +
 xen/arch/x86/domain-builder/domain.c      | 38 +++++++++++++++++++++++
 xen/arch/x86/include/asm/domain-builder.h |  1 +
 xen/arch/x86/setup.c                      |  4 +--
 4 files changed, 42 insertions(+), 2 deletions(-)
 create mode 100644 xen/arch/x86/domain-builder/domain.c

diff --git a/xen/arch/x86/domain-builder/Makefile b/xen/arch/x86/domain-builder/Makefile
index b10cd56b286b..67024b5cb213 100644
--- a/xen/arch/x86/domain-builder/Makefile
+++ b/xen/arch/x86/domain-builder/Makefile
@@ -1,2 +1,3 @@
 obj-$(CONFIG_DOMAIN_BUILDER) += fdt.init.o
 obj-y += core.init.o
+obj-y += domain.init.o
diff --git a/xen/arch/x86/domain-builder/domain.c b/xen/arch/x86/domain-builder/domain.c
new file mode 100644
index 000000000000..f2277b9e3cf3
--- /dev/null
+++ b/xen/arch/x86/domain-builder/domain.c
@@ -0,0 +1,38 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Copyright (C) 2024, Apertus Solutions, LLC
+ */
+
+#include <xen/cpumask.h>
+#include <xen/domain.h>
+#include <xen/init.h>
+#include <xen/sched.h>
+
+#include <asm/bootinfo.h>
+
+unsigned int __init dom_max_vcpus(struct boot_domain *bd)
+{
+    unsigned int limit = bd->mode & BUILD_MODE_PARAVIRT ?
+                                    MAX_VIRT_CPUS : HVM_MAX_VCPUS;
+
+    if ( bd->capabilities & BUILD_CAPS_CONTROL )
+        limit = dom0_max_vcpus();
+    else
+        limit = min(limit,
+                    (uint32_t)cpumask_weight(cpupool_valid_cpus(cpupool0)));
+
+    if ( bd->max_vcpus == 0 || bd->max_vcpus > limit )
+        bd->max_vcpus = limit;
+
+    return bd->max_vcpus;
+}
+
+/*
+ * 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/domain-builder.h b/xen/arch/x86/include/asm/domain-builder.h
index 7518b6ddf3b9..f37f73e2255b 100644
--- a/xen/arch/x86/include/asm/domain-builder.h
+++ b/xen/arch/x86/include/asm/domain-builder.h
@@ -8,5 +8,6 @@ int __init builder_get_cmdline(
     struct boot_info *bi, int offset, char *cmdline, size_t size);
 
 void builder_init(struct boot_info *bi);
+unsigned int dom_max_vcpus(struct boot_domain *bd);
 
 #endif
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 6a939ccede3f..86bbd7c72ccd 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -1010,18 +1010,18 @@ static struct domain *__init create_dom0(struct boot_info *bi)
     char *cmdline = NULL;
     size_t cmdline_size;
     unsigned int create_flags = 0;
+    struct boot_domain *bd = &bi->domains[0];
     struct xen_domctl_createdomain dom0_cfg = {
         .flags = IS_ENABLED(CONFIG_TBOOT) ? XEN_DOMCTL_CDF_s3_integrity : 0,
         .max_evtchn_port = -1,
         .max_grant_frames = -1,
         .max_maptrack_frames = -1,
         .grant_opts = XEN_DOMCTL_GRANT_version(opt_gnttab_max_version),
-        .max_vcpus = dom0_max_vcpus(),
+        .max_vcpus = dom_max_vcpus(bd),
         .arch = {
             .misc_flags = opt_dom0_msr_relaxed ? XEN_X86_MSR_RELAXED : 0,
         },
     };
-    struct boot_domain *bd = &bi->domains[0];
     struct domain *d;
 
     if ( opt_dom0_pvh ||
-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Sat Apr 19 22:10:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 19 Apr 2025 22:10:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.960051.1352103 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6GOL-0007XN-2h; Sat, 19 Apr 2025 22:10:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 960051.1352103; Sat, 19 Apr 2025 22:10: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 1u6GOK-0007XG-W4; Sat, 19 Apr 2025 22:10:28 +0000
Received: by outflank-mailman (input) for mailman id 960051;
 Sat, 19 Apr 2025 22:10: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=nqik=XF=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1u6GOJ-0007X1-SK
 for xen-devel@lists.xenproject.org; Sat, 19 Apr 2025 22:10:27 +0000
Received: from sender4-of-o50.zoho.com (sender4-of-o50.zoho.com
 [136.143.188.50]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 178494b0-1d6b-11f0-9ffb-bf95429c2676;
 Sun, 20 Apr 2025 00:10:25 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 1745100528528400.89376689653477;
 Sat, 19 Apr 2025 15:08: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: 178494b0-1d6b-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; t=1745100530; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=ORXGvRwhMA+cRRSbGW6WP9V7iTovf9ucdJ2qBGNyvnobMVFSHjUc2X5qPyEJqJ5VxY+oXjDhPOnXcEcmVeDIpN776Pu2QR47zkqM1u8cPm+xICk3q8MlYQJNuUiJteYFOGKM3f5ouWvLnzgLB0OAGbZbZkpcLp/KA4ZK8awQ8Vk=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1745100530; 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=gnnQ4e6BcNj4dPgTJVIEZjw47epf9LWkmO1rTgme/Dc=; 
	b=Ot7ULMDnjFSMdI3OUmbgLKOOELPXn+4XSUHAI3XF4xV4sk1h8OwF0drqCo6cYeadsEmXomuFfmFjpP35eyHFU52IrTs/a5FNfUdMsVnDGHIfAJxAfPpUTXih63oEaq+mxb2h5xmd/gYFTjqOSQvDz0W5q8fdI8hs1QUBMWv18d0=
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=1745100530;
	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=gnnQ4e6BcNj4dPgTJVIEZjw47epf9LWkmO1rTgme/Dc=;
	b=TaQdMbOA4rSXg7aANGudfA0WbLaPjaZqWGj+SgzDvaGeX0y/cEfD89SsQmjbg4tN
	G9+A03qun6d9pkg0WN4g1S/IkBevjeVvLF1OBwoW64irA06zLagg9ulhGhXXh4i8QLK
	jQjRATdeL+xHS4F4mrrqOuCHTHXCKRcpIUjRX1C4=
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
To: xen-devel@lists.xenproject.org
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	jason.andryuk@amd.com,
	stefano.stabellini@amd.com,
	agarciav@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: [RFC 11/38] x86/boot: generalize paging pages calculation
Date: Sat, 19 Apr 2025 18:07:53 -0400
Message-Id: <20250419220820.4234-12-dpsmith@apertussolutions.com>
X-Mailer: git-send-email 2.30.2
In-Reply-To: <20250419220820.4234-1-dpsmith@apertussolutions.com>
References: <20250419220820.4234-1-dpsmith@apertussolutions.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

Modeling after libxl__get_required_paging_memory(), refactor
dom0_paging_pages() to calculate the number of paging pages required for a
domain that is not the control or hardware domain. As the function is being
refactored, rename to dom_paging_pages() and move under the domain builder.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
---
 xen/arch/x86/dom0_build.c                 | 17 +----------------
 xen/arch/x86/domain-builder/domain.c      | 20 ++++++++++++++++++++
 xen/arch/x86/hvm/dom0_build.c             |  3 ++-
 xen/arch/x86/include/asm/dom0_build.h     |  3 ---
 xen/arch/x86/include/asm/domain-builder.h |  3 +++
 xen/arch/x86/pv/dom0_build.c              |  3 ++-
 6 files changed, 28 insertions(+), 21 deletions(-)

diff --git a/xen/arch/x86/dom0_build.c b/xen/arch/x86/dom0_build.c
index a007e424bbe3..1413e8c634a7 100644
--- a/xen/arch/x86/dom0_build.c
+++ b/xen/arch/x86/dom0_build.c
@@ -305,21 +305,6 @@ boolean_param("ro-hpet", ro_hpet);
 
 unsigned int __initdata dom0_memflags = MEMF_no_dma|MEMF_exact_node;
 
-unsigned long __init dom0_paging_pages(const struct domain *d,
-                                       unsigned long nr_pages)
-{
-    /* Keep in sync with libxl__get_required_paging_memory(). */
-    unsigned long memkb = nr_pages * (PAGE_SIZE / 1024);
-
-    memkb = 4 * (256 * d->max_vcpus +
-                 (is_pv_domain(d) ? opt_dom0_shadow || opt_pv_l1tf_hwdom
-                                  : 1 + opt_dom0_shadow) *
-                 (memkb / 1024));
-
-    return DIV_ROUND_UP(memkb, 1024) << (20 - PAGE_SHIFT);
-}
-
-
 /*
  * If allocation isn't specified, reserve 1/16th of available memory for
  * things like DMA buffers. This reservation is clamped to a maximum of 128MB.
@@ -431,7 +416,7 @@ unsigned long __init dom0_compute_nr_pages(
          */
         calculate_dom0_pages(bd, avail);
 
-        cpu_pages = dom0_paging_pages(d, bd->mem_pages);
+        cpu_pages = dom_paging_pages(bd, bd->mem_pages);
 
         if ( !iommu_use_hap_pt(d) )
             avail -= cpu_pages;
diff --git a/xen/arch/x86/domain-builder/domain.c b/xen/arch/x86/domain-builder/domain.c
index 619d36ea0b87..87f538ae26c5 100644
--- a/xen/arch/x86/domain-builder/domain.c
+++ b/xen/arch/x86/domain-builder/domain.c
@@ -10,6 +10,26 @@
 
 #include <asm/bootinfo.h>
 #include <asm/dom0_build.h>
+#include <asm/paging.h>
+#include <asm/spec_ctrl.h>
+
+unsigned long __init dom_paging_pages(
+    const struct boot_domain *bd, unsigned long nr_pages)
+{
+    /* Keep in sync with libxl__get_required_paging_memory(). */
+    unsigned long memkb = bd->mem_pages * (PAGE_SIZE / 1024);
+    unsigned long factor = 0;
+
+    if ( bd->capabilities & (BUILD_CAPS_CONTROL | BUILD_CAPS_HARDWARE) )
+        factor = is_pv_domain(bd->d) ? opt_dom0_shadow || opt_pv_l1tf_hwdom
+                                     : 1 + opt_dom0_shadow;
+    else
+        factor = !is_pv_domain(bd->d) + !paging_mode_hap(bd->d);
+
+    memkb = 4 * (256 * bd->d->max_vcpus + (factor * (memkb / 1024)));
+
+    return DIV_ROUND_UP(memkb, 1024) << (20 - PAGE_SHIFT);
+}
 
 unsigned int __init dom_max_vcpus(struct boot_domain *bd)
 {
diff --git a/xen/arch/x86/hvm/dom0_build.c b/xen/arch/x86/hvm/dom0_build.c
index a818a9a772ed..d3ad90348a1f 100644
--- a/xen/arch/x86/hvm/dom0_build.c
+++ b/xen/arch/x86/hvm/dom0_build.c
@@ -19,6 +19,7 @@
 #include <asm/bootinfo.h>
 #include <asm/bzimage.h>
 #include <asm/dom0_build.h>
+#include <asm/domain-builder.h>
 #include <asm/hvm/support.h>
 #include <asm/io_apic.h>
 #include <asm/p2m.h>
@@ -406,7 +407,7 @@ static void __init pvh_init_p2m(struct boot_domain *bd)
     pvh_setup_e820(bd->d, nr_pages);
     do {
         preempted = false;
-        paging_set_allocation(bd->d, dom0_paging_pages(bd->d, nr_pages),
+        paging_set_allocation(bd->d, dom_paging_pages(bd, nr_pages),
                               &preempted);
         process_pending_softirqs();
     } while ( preempted );
diff --git a/xen/arch/x86/include/asm/dom0_build.h b/xen/arch/x86/include/asm/dom0_build.h
index dcf71c032a17..81717b49b4ae 100644
--- a/xen/arch/x86/include/asm/dom0_build.h
+++ b/xen/arch/x86/include/asm/dom0_build.h
@@ -19,9 +19,6 @@ unsigned long dom0_compute_nr_pages(
 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);
-
 void dom0_update_physmap(bool compat, unsigned long pfn,
                          unsigned long mfn, unsigned long vphysmap_s);
 
diff --git a/xen/arch/x86/include/asm/domain-builder.h b/xen/arch/x86/include/asm/domain-builder.h
index ccfa4bd82acd..8b0b224eba41 100644
--- a/xen/arch/x86/include/asm/domain-builder.h
+++ b/xen/arch/x86/include/asm/domain-builder.h
@@ -8,6 +8,9 @@ int __init builder_get_cmdline(
     struct boot_info *bi, int offset, char *cmdline, size_t size);
 
 void builder_init(struct boot_info *bi);
+
+unsigned long dom_paging_pages(
+    const struct boot_domain *d, unsigned long nr_pages);
 unsigned int dom_max_vcpus(struct boot_domain *bd);
 struct vcpu *alloc_dom_vcpu0(struct boot_domain *bd);
 
diff --git a/xen/arch/x86/pv/dom0_build.c b/xen/arch/x86/pv/dom0_build.c
index 350a60b1e8fd..f8844b858082 100644
--- a/xen/arch/x86/pv/dom0_build.c
+++ b/xen/arch/x86/pv/dom0_build.c
@@ -17,6 +17,7 @@
 #include <asm/bootinfo.h>
 #include <asm/bzimage.h>
 #include <asm/dom0_build.h>
+#include <asm/domain-builder.h>
 #include <asm/guest.h>
 #include <asm/page.h>
 #include <asm/pv/mm.h>
@@ -1043,7 +1044,7 @@ static int __init dom0_construct(struct boot_domain *bd)
     {
         bool preempted;
 
-        nr_pt_pages = dom0_paging_pages(d, nr_pages);
+        nr_pt_pages = dom_paging_pages(bd, nr_pages);
 
         do {
             preempted = false;
-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Sat Apr 19 22:10:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 19 Apr 2025 22:10:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.960052.1352113 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6GOT-0007rC-C4; Sat, 19 Apr 2025 22:10:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 960052.1352113; Sat, 19 Apr 2025 22:10: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 1u6GOT-0007r5-95; Sat, 19 Apr 2025 22:10:37 +0000
Received: by outflank-mailman (input) for mailman id 960052;
 Sat, 19 Apr 2025 22:10: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=nqik=XF=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1u6GOR-0007X1-CG
 for xen-devel@lists.xenproject.org; Sat, 19 Apr 2025 22:10:35 +0000
Received: from sender4-of-o50.zoho.com (sender4-of-o50.zoho.com
 [136.143.188.50]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1c455903-1d6b-11f0-9ffb-bf95429c2676;
 Sun, 20 Apr 2025 00:10:33 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 1745100527528975.9353101015664;
 Sat, 19 Apr 2025 15:08: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: 1c455903-1d6b-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; t=1745100530; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=mQFgns4wlgiFGGcV0I8st8M/lQ28EOzTgXfoj9QLMsh/zr/1N5Y++d0iENcPHzWujNCIyyw4k550kmo5V7GTSWypYxH3pvmZiHmYYhpfWSmQz8dHMv3u6OOOuARIinEPl7ulkkigaEB/UMFrfClNUd4TwL/H38H/jMrrZ8MlUfA=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1745100530; 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=PuW9czx+Smh71kxlwwA/QW0luHAuyQMJevifyYw5t/k=; 
	b=ODQ+J7wMqkVXkGo1ANIcUZ7Rk2YnLRVwnQrJGzIoPUsGONt553R6Fu079lNzWlaoc6z7VlcHZp9JgLIWmahvMwRittuVDs9vqfpsMhd3TDXDPybGv6gKie2bbiXEAIXbg7cm8JSpq1x5DgqcKR+JzFUcAi1tGh46QCYLgqlPrjk=
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=1745100530;
	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=PuW9czx+Smh71kxlwwA/QW0luHAuyQMJevifyYw5t/k=;
	b=Sh2tw14027QbFU8ANCcbVzYiHbUlncxACHeVTZmbh/VThXSU3fEEKbwpBMyHfYyp
	JXlRG2o6JbcgpjpAQgTHjg3o7gLKa3ReRIZUEJjeViuy22wm7Mj5q0ssBaivT71PNkZ
	Ya8uJoCJkXmC9aTJ7BDtPmxvlbNaNrAKDtEEVMRg=
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
To: xen-devel@lists.xenproject.org
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	jason.andryuk@amd.com,
	stefano.stabellini@amd.com,
	agarciav@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: [RFC 10/38] x86/boot: refactor dom0 page calculation
Date: Sat, 19 Apr 2025 18:07:52 -0400
Message-Id: <20250419220820.4234-11-dpsmith@apertussolutions.com>
X-Mailer: git-send-email 2.30.2
In-Reply-To: <20250419220820.4234-1-dpsmith@apertussolutions.com>
References: <20250419220820.4234-1-dpsmith@apertussolutions.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

Caution is needed when dom0 is being constructed as PV using an older kernel
that does not have the elf note XEN_ELFNOTE_INIT_P2M. The logic for handling
this situation is embedded directly and takes into account whether dom0 memory
parameters were specified using the negative allocation syntax. To prepare for
generalizing domain page allocation, isolate this logic to a separate handling
function.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
---
 xen/arch/x86/dom0_build.c | 76 +++++++++++++++++++++------------------
 1 file changed, 41 insertions(+), 35 deletions(-)

diff --git a/xen/arch/x86/dom0_build.c b/xen/arch/x86/dom0_build.c
index 658d81ab598c..a007e424bbe3 100644
--- a/xen/arch/x86/dom0_build.c
+++ b/xen/arch/x86/dom0_build.c
@@ -353,12 +353,50 @@ static void __init calculate_dom0_pages(
     bd->mem_pages = nr_pages;
 }
 
+static void __init dom0_pv_restrict_pages(
+    struct boot_domain *bd, struct elf_dom_parms *parms)
+{
+    if ( (parms->p2m_base == UNSET_ADDR) && !memsize_gt_zero(&dom0_size) &&
+         (!memsize_gt_zero(&dom0_min_size) || (bd->mem_pages > bd->min_pages)) )
+    {
+        /*
+         * Legacy Linux kernels (i.e. such without a XEN_ELFNOTE_INIT_P2M
+         * note) require that there is enough virtual space beyond the initial
+         * allocation to set up their initial page tables. This space is
+         * roughly the same size as the p2m table, so make sure the initial
+         * allocation doesn't consume more than about half the space that's
+         * available between params.virt_base and the address space end.
+         */
+        unsigned long vstart, vend, end;
+        unsigned long initrd_len = bd->ramdisk ? bd->ramdisk->size : 0;
+        size_t sizeof_long = is_pv_32bit_domain(bd->d) ? sizeof(int) : sizeof(long);
+
+        vstart = parms->virt_base;
+        vend = round_pgup(parms->virt_kend);
+        if ( !parms->unmapped_initrd )
+            vend += round_pgup(initrd_len);
+        end = vend + bd->mem_pages * sizeof_long;
+
+        if ( end > vstart )
+            end += end - vstart;
+        if ( end <= vstart ||
+             (sizeof_long < sizeof(end) && end > (1UL << (8 * sizeof_long))) )
+        {
+            end = sizeof_long >= sizeof(end) ? 0 : 1UL << (8 * sizeof_long);
+            bd->mem_pages = (end - vend) / (2 * sizeof_long);
+            if ( memsize_gt_zero(&dom0_min_size) &&
+                 bd->mem_pages < bd->min_pages )
+                bd->mem_pages = bd->min_pages;
+            printk("Dom0 memory clipped to %lu pages\n", bd->mem_pages);
+        }
+    }
+}
+
 unsigned long __init dom0_compute_nr_pages(
     struct boot_domain *bd, struct elf_dom_parms *parms)
 {
     nodeid_t node;
     struct domain *d = bd->d;
-    unsigned long initrd_len = bd->ramdisk ? bd->ramdisk->size : 0;
     unsigned long avail = 0, iommu_pages = 0;
 
     for_each_node_mask ( node, dom0_nodes )
@@ -404,40 +442,8 @@ unsigned long __init dom0_compute_nr_pages(
     /* Clamp according to min/max limits and available memory (final). */
     calculate_dom0_pages(bd, avail);
 
-    if ( is_pv_domain(d) &&
-         (parms->p2m_base == UNSET_ADDR) && !memsize_gt_zero(&dom0_size) &&
-         (!memsize_gt_zero(&dom0_min_size) || (bd->mem_pages > bd->min_pages)) )
-    {
-        /*
-         * Legacy Linux kernels (i.e. such without a XEN_ELFNOTE_INIT_P2M
-         * note) require that there is enough virtual space beyond the initial
-         * allocation to set up their initial page tables. This space is
-         * roughly the same size as the p2m table, so make sure the initial
-         * allocation doesn't consume more than about half the space that's
-         * available between params.virt_base and the address space end.
-         */
-        unsigned long vstart, vend, end;
-        size_t sizeof_long = is_pv_32bit_domain(d) ? sizeof(int) : sizeof(long);
-
-        vstart = parms->virt_base;
-        vend = round_pgup(parms->virt_kend);
-        if ( !parms->unmapped_initrd )
-            vend += round_pgup(initrd_len);
-        end = vend + bd->mem_pages * sizeof_long;
-
-        if ( end > vstart )
-            end += end - vstart;
-        if ( end <= vstart ||
-             (sizeof_long < sizeof(end) && end > (1UL << (8 * sizeof_long))) )
-        {
-            end = sizeof_long >= sizeof(end) ? 0 : 1UL << (8 * sizeof_long);
-            bd->mem_pages = (end - vend) / (2 * sizeof_long);
-            if ( memsize_gt_zero(&dom0_min_size) &&
-                 bd->mem_pages < bd->min_pages )
-                bd->mem_pages = bd->min_pages;
-            printk("Dom0 memory clipped to %lu pages\n", bd->mem_pages);
-        }
-    }
+    if ( is_pv_domain(d) )
+        dom0_pv_restrict_pages(bd, parms);
 
     d->max_pages = min_t(unsigned long, bd->max_pages, UINT_MAX);
 
-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Sat Apr 19 22:10:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 19 Apr 2025 22:10:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.960053.1352122 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6GOV-0008Qn-J1; Sat, 19 Apr 2025 22:10:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 960053.1352122; Sat, 19 Apr 2025 22:10:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6GOV-0008QA-GE; Sat, 19 Apr 2025 22:10:39 +0000
Received: by outflank-mailman (input) for mailman id 960053;
 Sat, 19 Apr 2025 22:10: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=nqik=XF=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1u6GNm-0004yY-Qo
 for xen-devel@lists.xenproject.org; Sat, 19 Apr 2025 22:09:54 +0000
Received: from sender4-of-o50.zoho.com (sender4-of-o50.zoho.com
 [136.143.188.50]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 04210495-1d6b-11f0-9eb0-5ba50f476ded;
 Sun, 20 Apr 2025 00:09:53 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 1745100514979396.05443422958285;
 Sat, 19 Apr 2025 15:08: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: 04210495-1d6b-11f0-9eb0-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; t=1745100516; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=ito7tew2Glt8XnqoYYHzpIISxZA+yEIUckk8P/PFRv2kD2aRs7E2yg6DBVDDx0VsomyS7qkqet16dX/e4jzlMWsII3wcL5H9QMAVkS9GFoxumVZm7kBn8ACgtv07RRBmZFqxcPTg6CyGRcmUqlXsjcJzmDI/bJv/2Bm3tpwbZ7I=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1745100516; 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=KQRQAf1aUXgujyjY1AUdNyPpFSQKcdWAbK0B0zPjexU=; 
	b=RC+sXz9HC3sFhq1jN78fzkER/pYa/n6TTLdMm0aD/tZoP13FwzZiQJDPUDi2qdjz6nBGyUJQ5B5UNIEATo/+4SxzZrCqWjmZA2ubUewn2IDc/DS807JUp7w+qjWNGSL20zDoGv8mFzDtFgWu0C3zCTB9++rfpShdWrvWBB9XILw=
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=1745100516;
	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=KQRQAf1aUXgujyjY1AUdNyPpFSQKcdWAbK0B0zPjexU=;
	b=rB6OwGotvL33oEAvVDXdQcZdLtfmPX7/Yvn+pxbYBkIEmZVLynoyV3GVmtG7S5EJ
	fZh52+u7ZkLYaOFPXrRl+/pX/VOLdC83yi0XRMxNTs1l2It7UfTe1gBg2yX2qmwmDjf
	VzIkfoHwjVyoEOI4Z+3mggyl8qpOPE1jv8gR4/v8=
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
To: xen-devel@lists.xenproject.org
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	jason.andryuk@amd.com,
	stefano.stabellini@amd.com,
	agarciav@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: [RFC 06/38] x86/hyperlaunch: add hardware domain capability support
Date: Sat, 19 Apr 2025 18:07:48 -0400
Message-Id: <20250419220820.4234-7-dpsmith@apertussolutions.com>
X-Mailer: git-send-email 2.30.2
In-Reply-To: <20250419220820.4234-1-dpsmith@apertussolutions.com>
References: <20250419220820.4234-1-dpsmith@apertussolutions.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

Introduce a capability flag to the capabilities property of a domain node in
the hyperlaunch device tree. In the domain construction, use the capability
flag to determine if CDF_hardware should be set on the domain config.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
---
 xen/arch/x86/domain-builder/core.c     | 3 ++-
 xen/arch/x86/domain-builder/fdt.c      | 2 ++
 xen/arch/x86/include/asm/boot-domain.h | 1 +
 xen/arch/x86/setup.c                   | 8 ++++++--
 4 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/xen/arch/x86/domain-builder/core.c b/xen/arch/x86/domain-builder/core.c
index 6ab4e6fe5333..8d137ecaaf84 100644
--- a/xen/arch/x86/domain-builder/core.c
+++ b/xen/arch/x86/domain-builder/core.c
@@ -96,7 +96,8 @@ 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->domains[0].capabilities |=
+            (BUILD_CAPS_CONTROL | BUILD_CAPS_HARDWARE);
         bi->nr_domains = 1;
     }
 }
diff --git a/xen/arch/x86/domain-builder/fdt.c b/xen/arch/x86/domain-builder/fdt.c
index d2a7e010ea77..1af58ed4eb86 100644
--- a/xen/arch/x86/domain-builder/fdt.c
+++ b/xen/arch/x86/domain-builder/fdt.c
@@ -267,6 +267,8 @@ static int __init process_domain_node(
             printk("  caps: ");
             if ( bd->capabilities & BUILD_CAPS_CONTROL )
                 printk("c");
+            if ( bd->capabilities & BUILD_CAPS_HARDWARE )
+                printk(" h");
             printk("\n");
         }
     }
diff --git a/xen/arch/x86/include/asm/boot-domain.h b/xen/arch/x86/include/asm/boot-domain.h
index b0f956cd734e..18d144de2fea 100644
--- a/xen/arch/x86/include/asm/boot-domain.h
+++ b/xen/arch/x86/include/asm/boot-domain.h
@@ -15,6 +15,7 @@ struct boot_domain {
 
 #define BUILD_CAPS_NONE          (0)
 #define BUILD_CAPS_CONTROL       (1 << 0)
+#define BUILD_CAPS_HARDWARE      (1 << 1)
     uint32_t capabilities;
 
                                           /* On     | Off    */
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 41e46f05a520..760262ea3d4c 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -1035,8 +1035,12 @@ static struct domain *__init create_dom0(struct boot_info *bi)
             XEN_X86_EMU_LAPIC | XEN_X86_EMU_IOAPIC | XEN_X86_EMU_VPCI;
     }
 
-    if ( iommu_enabled )
-        dom0_cfg.flags |= XEN_DOMCTL_CDF_iommu;
+    if ( bd->capabilities & BUILD_CAPS_HARDWARE )
+    {
+        create_flags |= CDF_hardware;
+        if ( iommu_enabled )
+            dom0_cfg.flags |= XEN_DOMCTL_CDF_iommu;
+    }
 
     if ( bd->domid == DOMID_INVALID )
         /* Create initial domain.  Not d0 for pvshim. */
-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Sat Apr 19 22:10:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 19 Apr 2025 22:10:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.960054.1352129 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6GOW-0008Tj-1h; Sat, 19 Apr 2025 22:10:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 960054.1352129; Sat, 19 Apr 2025 22:10:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6GOV-0008Sa-Ov; Sat, 19 Apr 2025 22:10:39 +0000
Received: by outflank-mailman (input) for mailman id 960054;
 Sat, 19 Apr 2025 22:10:38 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=nqik=XF=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1u6GNU-0004ik-Kq
 for xen-devel@lists.xenproject.org; Sat, 19 Apr 2025 22:09:36 +0000
Received: from sender4-of-o50.zoho.com (sender4-of-o50.zoho.com
 [136.143.188.50]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f95b684d-1d6a-11f0-9ffb-bf95429c2676;
 Sun, 20 Apr 2025 00:09:35 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 1745100513263991.7777778756324;
 Sat, 19 Apr 2025 15:08:33 -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: f95b684d-1d6a-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; t=1745100516; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=efqKFhmcoG5CWJTP8QZaneW/AuCNBU3qodA6+4pfFr8a9ikNCAHFULjIl+3QnJZ7LvkHwS+I3BORSA7ovrcSdvxNRDQbuWXDdsH/oQl/KQ6QQGWnHaGCqzcbTaz2K/mxzJHC0huMQf6nXAYXa2h8BCjDggCS3jD6wQK+S/pn/gk=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1745100516; 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=RMChXQEbn8VdNk3SfUK0sU6zoeUdrE3WHdblV3zR214=; 
	b=mBoxjwbrXklJQ/ifOeMI7JI3hCA68235zuqJC8Rr+LyMi40qIJxoYHxNG4RRmnFfHuwQDIwjtm+bP+MiZeE+jTFwhFhEGehN4i+ulAqUPKkqPREtQnrQ+TksudguWwUdQiSrm+B/CxZ0rfbY7qOmUIB0OuRzg5+96wH+a3XXkv8=
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=1745100516;
	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=RMChXQEbn8VdNk3SfUK0sU6zoeUdrE3WHdblV3zR214=;
	b=E4nhnPjAKD58SIln8nfWbFzIX6XLbeGfftzUzadtVbUlfsUpB4AJHj01C33A7ll4
	rM/uP5iY98xryRfqf7yCtqNt+m+VaawEiSKUmgOgi8JW9Jw00jCJaiGSNGJB52KjL4c
	LI37EFuU8FUvB9jZuUelnBw3sL39NvnT5pbQJe88=
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
To: xen-devel@lists.xenproject.org
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	jason.andryuk@amd.com,
	stefano.stabellini@amd.com,
	agarciav@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: [RFC 04/38] x86/hyperlaunch: convert vcpu0 creation to domain builder
Date: Sat, 19 Apr 2025 18:07:46 -0400
Message-Id: <20250419220820.4234-5-dpsmith@apertussolutions.com>
X-Mailer: git-send-email 2.30.2
In-Reply-To: <20250419220820.4234-1-dpsmith@apertussolutions.com>
References: <20250419220820.4234-1-dpsmith@apertussolutions.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

Convert alloc_dom0_vcpu0() to dom0_set_affinity(), making it only set up the
node affinity based on command line parameters passed. At the same time,
introduce alloc_dom_vcpu0() as the replacement for alloc_dom0_vcpu(). Then have
alloc_dom_vcpu0() call dom0_set_affinity() when the boot domain is the control
domain, otherwise set the affinity to auto.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
---
 xen/arch/x86/dom0_build.c                 |  4 +---
 xen/arch/x86/domain-builder/domain.c      | 11 +++++++++++
 xen/arch/x86/include/asm/dom0_build.h     |  2 ++
 xen/arch/x86/include/asm/domain-builder.h |  1 +
 xen/arch/x86/setup.c                      |  5 +++--
 5 files changed, 18 insertions(+), 5 deletions(-)

diff --git a/xen/arch/x86/dom0_build.c b/xen/arch/x86/dom0_build.c
index 7b3e31a08f7d..77386cd1e20c 100644
--- a/xen/arch/x86/dom0_build.c
+++ b/xen/arch/x86/dom0_build.c
@@ -254,12 +254,10 @@ unsigned int __init dom0_max_vcpus(void)
     return max_vcpus;
 }
 
-struct vcpu *__init alloc_dom0_vcpu0(struct domain *dom0)
+void __init dom0_set_affinity(struct domain *dom0)
 {
     dom0->node_affinity = dom0_nodes;
     dom0->auto_node_affinity = !dom0_nr_pxms;
-
-    return vcpu_create(dom0, 0);
 }
 
 #ifdef CONFIG_SHADOW_PAGING
diff --git a/xen/arch/x86/domain-builder/domain.c b/xen/arch/x86/domain-builder/domain.c
index f2277b9e3cf3..619d36ea0b87 100644
--- a/xen/arch/x86/domain-builder/domain.c
+++ b/xen/arch/x86/domain-builder/domain.c
@@ -9,6 +9,7 @@
 #include <xen/sched.h>
 
 #include <asm/bootinfo.h>
+#include <asm/dom0_build.h>
 
 unsigned int __init dom_max_vcpus(struct boot_domain *bd)
 {
@@ -27,6 +28,16 @@ unsigned int __init dom_max_vcpus(struct boot_domain *bd)
     return bd->max_vcpus;
 }
 
+struct vcpu *__init alloc_dom_vcpu0(struct boot_domain *bd)
+{
+    if ( bd->capabilities & BUILD_CAPS_CONTROL )
+        dom0_set_affinity(bd->d);
+    else
+        bd->d->auto_node_affinity = true;
+
+    return vcpu_create(bd->d, 0);
+}
+
 /*
  * Local variables:
  * mode: C
diff --git a/xen/arch/x86/include/asm/dom0_build.h b/xen/arch/x86/include/asm/dom0_build.h
index ff021c24af9d..426def4115ce 100644
--- a/xen/arch/x86/include/asm/dom0_build.h
+++ b/xen/arch/x86/include/asm/dom0_build.h
@@ -8,6 +8,8 @@
 
 extern unsigned int dom0_memflags;
 
+void dom0_set_affinity(struct domain *dom0);
+
 unsigned long dom0_compute_nr_pages(struct domain *d,
                                     struct elf_dom_parms *parms,
                                     unsigned long initrd_len);
diff --git a/xen/arch/x86/include/asm/domain-builder.h b/xen/arch/x86/include/asm/domain-builder.h
index f37f73e2255b..dd47e9ac0dc6 100644
--- a/xen/arch/x86/include/asm/domain-builder.h
+++ b/xen/arch/x86/include/asm/domain-builder.h
@@ -9,5 +9,6 @@ int __init builder_get_cmdline(
 
 void builder_init(struct boot_info *bi);
 unsigned int dom_max_vcpus(struct boot_domain *bd);
+struct vcpu *alloc_dom_vcpu0(struct boot_domain *bd);
 
 #endif
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 86bbd7c72ccd..8ba9d592ed5a 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -1048,9 +1048,11 @@ static struct domain *__init create_dom0(struct boot_info *bi)
     if ( IS_ERR(d) )
         panic("Error creating d%u: %ld\n", bd->domid, PTR_ERR(d));
 
+    bd->d = d;
+
     init_dom0_cpuid_policy(d);
 
-    if ( alloc_dom0_vcpu0(d) == NULL )
+    if ( alloc_dom_vcpu0(bd) == NULL )
         panic("Error creating %pd vcpu 0\n", d);
 
     cmdline_size = domain_cmdline_size(bi, bd);
@@ -1090,7 +1092,6 @@ static struct domain *__init create_dom0(struct boot_info *bi)
         bd->cmdline = cmdline;
     }
 
-    bd->d = d;
     if ( construct_dom0(bd) != 0 )
         panic("Could not construct domain 0\n");
 
-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Sat Apr 19 22:10:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 19 Apr 2025 22:10:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.960055.1352132 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6GOW-00007H-8W; Sat, 19 Apr 2025 22:10:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 960055.1352132; Sat, 19 Apr 2025 22:10:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6GOW-00005i-1J; Sat, 19 Apr 2025 22:10:40 +0000
Received: by outflank-mailman (input) for mailman id 960055;
 Sat, 19 Apr 2025 22:10: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=nqik=XF=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1u6GOB-0004yY-9X
 for xen-devel@lists.xenproject.org; Sat, 19 Apr 2025 22:10:19 +0000
Received: from sender4-of-o50.zoho.com (sender4-of-o50.zoho.com
 [136.143.188.50]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 12fd5733-1d6b-11f0-9eb0-5ba50f476ded;
 Sun, 20 Apr 2025 00:10:18 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 174510051751992.3359385834732;
 Sat, 19 Apr 2025 15:08:37 -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: 12fd5733-1d6b-11f0-9eb0-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; t=1745100520; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=SaOsX8l+FjnqfgEJhHEIbD7BMhng1MAM5zb+rUtE8kP2g+/p3jM8zYNHcDHnCTgLyPGKXCr2h3VTe6JyuElYo4C+SQUgWQxzsd31l5CJKuQ5cc200apijNqVe88K9ndpLYn3RQUCh0WTUMFnRC/kjG3JYlgidmOGbwZDTsP939o=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1745100520; 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=wgGneFZ+dejsZVpf807k7GVId5OnyolV6BLaI9T7Y8g=; 
	b=DrgUU6SaJycbNbvFUhlf1ytPHMIxbCRmR0zudLNrJFSjn0AZ0jKxpMKLrU0xV6/9WoigVGGXo+j8FYz2108Y0HrylHYZrA01UwgDQxy8OBAUX2V61UVNqGrKhz19KkLoWfFhBA1aYlq83+MkhMpyRz1w6+htAcWZrjI4itCNkIw=
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=1745100520;
	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=wgGneFZ+dejsZVpf807k7GVId5OnyolV6BLaI9T7Y8g=;
	b=H2aExSxsNIwwonPNBwPvJ4lio0wPoITRCxetRW/aXsOaa6GSmnIlcJpsnwWIJhS0
	mAvbMiNHeVAvnM4fD6P2biVk/BA+32cULeMMcknQ3pNTPHsanWbWSU5kdnMMOGt9F7U
	QOlLOEuHz70dBsxlRMqErWkd/26Z0rMNRdb15j6w=
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
To: xen-devel@lists.xenproject.org
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	jason.andryuk@amd.com,
	stefano.stabellini@amd.com,
	agarciav@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: [RFC 09/38] x86/boot: convert dom0 page calculation to use boot domain
Date: Sat, 19 Apr 2025 18:07:51 -0400
Message-Id: <20250419220820.4234-10-dpsmith@apertussolutions.com>
X-Mailer: git-send-email 2.30.2
In-Reply-To: <20250419220820.4234-1-dpsmith@apertussolutions.com>
References: <20250419220820.4234-1-dpsmith@apertussolutions.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

This commit seeks to rework the dom0_compute_nr_pages() function to consume a
boot domain structure that may contain requested memory pages, min pages, max
pages, and the reference for the initrd. With the passing of the boot domain
struct, the initrd_size parameter is dropped. This takes into account the PVH
case, where the value 0 was passed, which is safe as initrd_size is only used
behind the is_pv_domain() check.

It introduces the calculate_dom0_pages() function that handles the command line
override of the memory pages, min pages, and max pages values. The function
also applies a clamping of memory pages to the min/max pages value.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
---
 xen/arch/x86/dom0_build.c             | 62 ++++++++++++++++-----------
 xen/arch/x86/hvm/dom0_build.c         | 12 +++---
 xen/arch/x86/include/asm/dom0_build.h | 10 ++---
 xen/arch/x86/pv/dom0_build.c          |  6 +--
 4 files changed, 51 insertions(+), 39 deletions(-)

diff --git a/xen/arch/x86/dom0_build.c b/xen/arch/x86/dom0_build.c
index 08fde953a1e0..658d81ab598c 100644
--- a/xen/arch/x86/dom0_build.c
+++ b/xen/arch/x86/dom0_build.c
@@ -330,16 +330,37 @@ static unsigned long __init default_nr_pages(unsigned long avail)
                             : min(avail / 16, 128UL << (20 - PAGE_SHIFT)));
 }
 
-unsigned long __init dom0_compute_nr_pages(
-    struct domain *d, struct elf_dom_parms *parms, unsigned long initrd_len)
+static void __init calculate_dom0_pages(
+    struct boot_domain *bd, unsigned long avail)
 {
-    nodeid_t node;
-    unsigned long avail = 0, nr_pages, min_pages, max_pages, iommu_pages = 0;
+    unsigned long nr_pages = bd->mem_pages ?: default_nr_pages(avail);
 
     /* The ordering of operands is to work around a clang5 issue. */
     if ( CONFIG_DOM0_MEM[0] && !dom0_mem_set )
         parse_dom0_mem(CONFIG_DOM0_MEM);
 
+    if ( dom0_mem_set )
+    {
+        nr_pages = get_memsize(&dom0_size, avail) ?: default_nr_pages(avail);
+        bd->min_pages = get_memsize(&dom0_min_size, avail);
+        bd->max_pages = get_memsize(&dom0_max_size, avail);
+    }
+
+    nr_pages = max(nr_pages, bd->min_pages);
+    nr_pages = min(nr_pages, bd->max_pages);
+    nr_pages = min(nr_pages, avail);
+
+    bd->mem_pages = nr_pages;
+}
+
+unsigned long __init dom0_compute_nr_pages(
+    struct boot_domain *bd, struct elf_dom_parms *parms)
+{
+    nodeid_t node;
+    struct domain *d = bd->d;
+    unsigned long initrd_len = bd->ramdisk ? bd->ramdisk->size : 0;
+    unsigned long avail = 0, iommu_pages = 0;
+
     for_each_node_mask ( node, dom0_nodes )
         avail += avail_domheap_pages_region(node, 0, 0) +
                  initial_images_nrpages(node);
@@ -366,17 +387,13 @@ unsigned long __init dom0_compute_nr_pages(
     {
         unsigned long cpu_pages;
 
-        nr_pages = get_memsize(&dom0_size, avail) ?: default_nr_pages(avail);
-
         /*
          * Clamp according to min/max limits and available memory
          * (preliminary).
          */
-        nr_pages = max(nr_pages, get_memsize(&dom0_min_size, avail));
-        nr_pages = min(nr_pages, get_memsize(&dom0_max_size, avail));
-        nr_pages = min(nr_pages, avail);
+        calculate_dom0_pages(bd, avail);
 
-        cpu_pages = dom0_paging_pages(d, nr_pages);
+        cpu_pages = dom0_paging_pages(d, bd->mem_pages);
 
         if ( !iommu_use_hap_pt(d) )
             avail -= cpu_pages;
@@ -384,18 +401,12 @@ unsigned long __init dom0_compute_nr_pages(
             avail -= cpu_pages - iommu_pages;
     }
 
-    nr_pages = get_memsize(&dom0_size, avail) ?: default_nr_pages(avail);
-    min_pages = get_memsize(&dom0_min_size, avail);
-    max_pages = get_memsize(&dom0_max_size, avail);
-
     /* Clamp according to min/max limits and available memory (final). */
-    nr_pages = max(nr_pages, min_pages);
-    nr_pages = min(nr_pages, max_pages);
-    nr_pages = min(nr_pages, avail);
+    calculate_dom0_pages(bd, avail);
 
     if ( is_pv_domain(d) &&
          (parms->p2m_base == UNSET_ADDR) && !memsize_gt_zero(&dom0_size) &&
-         (!memsize_gt_zero(&dom0_min_size) || (nr_pages > min_pages)) )
+         (!memsize_gt_zero(&dom0_min_size) || (bd->mem_pages > bd->min_pages)) )
     {
         /*
          * Legacy Linux kernels (i.e. such without a XEN_ELFNOTE_INIT_P2M
@@ -412,7 +423,7 @@ unsigned long __init dom0_compute_nr_pages(
         vend = round_pgup(parms->virt_kend);
         if ( !parms->unmapped_initrd )
             vend += round_pgup(initrd_len);
-        end = vend + nr_pages * sizeof_long;
+        end = vend + bd->mem_pages * sizeof_long;
 
         if ( end > vstart )
             end += end - vstart;
@@ -420,16 +431,17 @@ unsigned long __init dom0_compute_nr_pages(
              (sizeof_long < sizeof(end) && end > (1UL << (8 * sizeof_long))) )
         {
             end = sizeof_long >= sizeof(end) ? 0 : 1UL << (8 * sizeof_long);
-            nr_pages = (end - vend) / (2 * sizeof_long);
-            if ( memsize_gt_zero(&dom0_min_size) && nr_pages < min_pages )
-                nr_pages = min_pages;
-            printk("Dom0 memory clipped to %lu pages\n", nr_pages);
+            bd->mem_pages = (end - vend) / (2 * sizeof_long);
+            if ( memsize_gt_zero(&dom0_min_size) &&
+                 bd->mem_pages < bd->min_pages )
+                bd->mem_pages = bd->min_pages;
+            printk("Dom0 memory clipped to %lu pages\n", bd->mem_pages);
         }
     }
 
-    d->max_pages = min_t(unsigned long, max_pages, UINT_MAX);
+    d->max_pages = min_t(unsigned long, bd->max_pages, UINT_MAX);
 
-    return nr_pages;
+    return bd->mem_pages;
 }
 
 static void __init process_dom0_ioports_disable(struct domain *dom0)
diff --git a/xen/arch/x86/hvm/dom0_build.c b/xen/arch/x86/hvm/dom0_build.c
index b4ffebdde00e..a818a9a772ed 100644
--- a/xen/arch/x86/hvm/dom0_build.c
+++ b/xen/arch/x86/hvm/dom0_build.c
@@ -398,15 +398,15 @@ static __init void pvh_setup_e820(struct domain *d, unsigned long nr_pages)
     ASSERT(cur_pages == nr_pages);
 }
 
-static void __init pvh_init_p2m(struct domain *d)
+static void __init pvh_init_p2m(struct boot_domain *bd)
 {
-    unsigned long nr_pages = dom0_compute_nr_pages(d, NULL, 0);
+    unsigned long nr_pages = dom0_compute_nr_pages(bd, NULL);
     bool preempted;
 
-    pvh_setup_e820(d, nr_pages);
+    pvh_setup_e820(bd->d, nr_pages);
     do {
         preempted = false;
-        paging_set_allocation(d, dom0_paging_pages(d, nr_pages),
+        paging_set_allocation(bd->d, dom0_paging_pages(bd->d, nr_pages),
                               &preempted);
         process_pending_softirqs();
     } while ( preempted );
@@ -1312,7 +1312,7 @@ static int __init pvh_setup_acpi(struct domain *d, paddr_t start_info)
     return 0;
 }
 
-int __init dom0_construct_pvh(const struct boot_domain *bd)
+int __init dom0_construct_pvh(struct boot_domain *bd)
 {
     paddr_t entry, start_info;
     struct domain *d = bd->d;
@@ -1323,7 +1323,7 @@ int __init dom0_construct_pvh(const struct boot_domain *bd)
      * be done before the iommu initializion, since iommu initialization code
      * will likely add mappings required by devices to the p2m (ie: RMRRs).
      */
-    pvh_init_p2m(d);
+    pvh_init_p2m(bd);
 
     iommu_hwdom_init(d);
 
diff --git a/xen/arch/x86/include/asm/dom0_build.h b/xen/arch/x86/include/asm/dom0_build.h
index 426def4115ce..dcf71c032a17 100644
--- a/xen/arch/x86/include/asm/dom0_build.h
+++ b/xen/arch/x86/include/asm/dom0_build.h
@@ -10,14 +10,14 @@ extern unsigned int dom0_memflags;
 
 void dom0_set_affinity(struct domain *dom0);
 
-unsigned long dom0_compute_nr_pages(struct domain *d,
-                                    struct elf_dom_parms *parms,
-                                    unsigned long initrd_len);
 int dom0_setup_permissions(struct domain *d);
 
 struct boot_domain;
-int dom0_construct_pv(const struct boot_domain *bd);
-int dom0_construct_pvh(const struct boot_domain *bd);
+unsigned long dom0_compute_nr_pages(
+    struct boot_domain *bd, struct elf_dom_parms *parms);
+
+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/pv/dom0_build.c b/xen/arch/x86/pv/dom0_build.c
index 3b2baf057b75..350a60b1e8fd 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(const struct boot_domain *bd)
+static int __init dom0_construct(struct boot_domain *bd)
 {
     unsigned int i;
     int rc, order, machine;
@@ -503,7 +503,7 @@ static int __init dom0_construct(const struct boot_domain *bd)
         }
     }
 
-    nr_pages = dom0_compute_nr_pages(d, &parms, initrd_len);
+    nr_pages = dom0_compute_nr_pages(bd, &parms);
 
 #ifdef CONFIG_PV32
     if ( elf_32bit(&elf) )
@@ -1070,7 +1070,7 @@ out:
     return rc;
 }
 
-int __init dom0_construct_pv(const struct boot_domain *bd)
+int __init dom0_construct_pv(struct boot_domain *bd)
 {
     unsigned long cr4 = read_cr4();
     int rc;
-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Sat Apr 19 22:10:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 19 Apr 2025 22:10:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.960056.1352139 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6GOW-0000FK-QX; Sat, 19 Apr 2025 22:10:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 960056.1352139; Sat, 19 Apr 2025 22:10:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6GOW-0000Cu-EN; Sat, 19 Apr 2025 22:10:40 +0000
Received: by outflank-mailman (input) for mailman id 960056;
 Sat, 19 Apr 2025 22:10: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=nqik=XF=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1u6GO3-0004yY-0K
 for xen-devel@lists.xenproject.org; Sat, 19 Apr 2025 22:10:11 +0000
Received: from sender4-of-o50.zoho.com (sender4-of-o50.zoho.com
 [136.143.188.50]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0e441cec-1d6b-11f0-9eb0-5ba50f476ded;
 Sun, 20 Apr 2025 00:10:10 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 1745100515847991.1522635224128;
 Sat, 19 Apr 2025 15:08:35 -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: 0e441cec-1d6b-11f0-9eb0-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; t=1745100518; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=FLekLYGKv70f/oLlSKWLJacLb2lbO/uwu0tdWumon7bmSIL3n+eZTg7vH0dm+M9V5vtwEMWC8+vZbnCiEPTlqfaF4CkAREhHft5kHhoQj2j3BoPuAM67D3hmF1LwZvEme0vPd9Ekc2JpaIJ9IScWGYvWN2406jPeraqMWrbgrsE=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1745100518; 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=wffNFsu/3o3svqQKlatxNEBU5aErXWps6rcxpmCeDyU=; 
	b=LbEbEzAAJW7fRDyr2a23Z8KNe0FeiIc+qsFxxP0FLibDIpRE2v7CgMnMNwx/3xIRKQOPwETN68FKj0PmhnyTgcHSfDjRUiuIrAk1RZ0gBNd5ZK25d1isNB0j24bj6hbO1WBrGzz6YEEJnyE9kxVr6PZ7zCniSp1m6IepU4GDsmY=
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=1745100518;
	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=wffNFsu/3o3svqQKlatxNEBU5aErXWps6rcxpmCeDyU=;
	b=hLu8TvTQsrEPpMq50NbmahoIR4sOdtzAwxLMlU3q6wvyMQAAytaUHFVRvOHqLBNC
	4JQx3vg0YynZuEGOeEHBCytnWWT6VuypGCIeOYzk6tbpDyc4SCp7PBLm5oznkDEeQwm
	ggPx5KMhWsklzeSi87DIe8pGZfqBjFAgE1qaKvwQ=
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
To: xen-devel@lists.xenproject.org
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	jason.andryuk@amd.com,
	stefano.stabellini@amd.com,
	agarciav@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: [RFC 07/38] x86/hyperlaunch: introduce pvh domain builder
Date: Sat, 19 Apr 2025 18:07:49 -0400
Message-Id: <20250419220820.4234-8-dpsmith@apertussolutions.com>
X-Mailer: git-send-email 2.30.2
In-Reply-To: <20250419220820.4234-1-dpsmith@apertussolutions.com>
References: <20250419220820.4234-1-dpsmith@apertussolutions.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

Introduce dom_construct_pvh() as a wrapper around dom0_construct_pvh(). This
function will be expanded as dom0 specific construction functions are
generalized.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
---
 xen/arch/x86/dom0_build.c                 |  5 ++--
 xen/arch/x86/hvm/Makefile                 |  1 +
 xen/arch/x86/hvm/dom_build.c              | 31 +++++++++++++++++++++++
 xen/arch/x86/include/asm/domain-builder.h |  2 ++
 xen/arch/x86/include/asm/setup.h          |  2 +-
 5 files changed, 38 insertions(+), 3 deletions(-)
 create mode 100644 xen/arch/x86/hvm/dom_build.c

diff --git a/xen/arch/x86/dom0_build.c b/xen/arch/x86/dom0_build.c
index 77386cd1e20c..08fde953a1e0 100644
--- a/xen/arch/x86/dom0_build.c
+++ b/xen/arch/x86/dom0_build.c
@@ -15,6 +15,7 @@
 #include <asm/amd.h>
 #include <asm/bootinfo.h>
 #include <asm/dom0_build.h>
+#include <asm/domain-builder.h>
 #include <asm/guest.h>
 #include <asm/hpet.h>
 #include <asm/hvm/emulate.h>
@@ -613,7 +614,7 @@ int __init dom0_setup_permissions(struct domain *d)
     return rc;
 }
 
-int __init construct_dom0(const struct boot_domain *bd)
+int __init construct_dom0(struct boot_domain *bd)
 {
     int rc;
     const struct domain *d = bd->d;
@@ -637,7 +638,7 @@ int __init construct_dom0(const struct boot_domain *bd)
         opt_dom0_max_vcpus_max = bd->max_vcpus;
 
     if ( is_hvm_domain(d) )
-        rc = dom0_construct_pvh(bd);
+        rc = dom_construct_pvh(bd);
     else if ( is_pv_domain(d) )
         rc = dom0_construct_pv(bd);
     else
diff --git a/xen/arch/x86/hvm/Makefile b/xen/arch/x86/hvm/Makefile
index 4c1fa5c6c2bf..2c1662b66897 100644
--- a/xen/arch/x86/hvm/Makefile
+++ b/xen/arch/x86/hvm/Makefile
@@ -5,6 +5,7 @@ obj-y += viridian/
 obj-y += asid.o
 obj-y += dm.o
 obj-bin-y += dom0_build.init.o
+obj-bin-y += dom_build.init.o
 obj-y += domain.o
 obj-y += emulate.o
 obj-$(CONFIG_GRANT_TABLE) += grant_table.o
diff --git a/xen/arch/x86/hvm/dom_build.c b/xen/arch/x86/hvm/dom_build.c
new file mode 100644
index 000000000000..7206815d64a9
--- /dev/null
+++ b/xen/arch/x86/hvm/dom_build.c
@@ -0,0 +1,31 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * hvm/dom_build.c
+ *
+ * Dom builder for PVH guest.
+ *
+ * Copyright (C) 2017 Citrix Systems R&D
+ * Copyright (C) 2024 Apertus Solutions, LLC
+ */
+
+#include <xen/init.h>
+
+#include <asm/bootinfo.h>
+#include <asm/dom0_build.h>
+
+int __init dom_construct_pvh(struct boot_domain *bd)
+{
+    printk(XENLOG_INFO "*** Building a PVH Dom%d ***\n", bd->domid);
+
+    return dom0_construct_pvh(bd);
+}
+
+/*
+ * 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/domain-builder.h b/xen/arch/x86/include/asm/domain-builder.h
index dd47e9ac0dc6..ccfa4bd82acd 100644
--- a/xen/arch/x86/include/asm/domain-builder.h
+++ b/xen/arch/x86/include/asm/domain-builder.h
@@ -11,4 +11,6 @@ void builder_init(struct boot_info *bi);
 unsigned int dom_max_vcpus(struct boot_domain *bd);
 struct vcpu *alloc_dom_vcpu0(struct boot_domain *bd);
 
+int dom_construct_pvh(struct boot_domain *bd);
+
 #endif
diff --git a/xen/arch/x86/include/asm/setup.h b/xen/arch/x86/include/asm/setup.h
index ac34c698551e..b517da6144de 100644
--- a/xen/arch/x86/include/asm/setup.h
+++ b/xen/arch/x86/include/asm/setup.h
@@ -27,7 +27,7 @@ void subarch_init_memory(void);
 void init_IRQ(void);
 
 struct boot_domain;
-int construct_dom0(const struct boot_domain *bd);
+int construct_dom0(struct boot_domain *bd);
 
 void setup_io_bitmap(struct domain *d);
 
-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Sat Apr 19 22:10:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 19 Apr 2025 22:10:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.960059.1352163 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6GOa-00015j-5i; Sat, 19 Apr 2025 22:10:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 960059.1352163; Sat, 19 Apr 2025 22:10: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 1u6GOa-00015C-1L; Sat, 19 Apr 2025 22:10:44 +0000
Received: by outflank-mailman (input) for mailman id 960059;
 Sat, 19 Apr 2025 22:10: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=nqik=XF=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1u6GOY-0007X1-RK
 for xen-devel@lists.xenproject.org; Sat, 19 Apr 2025 22:10:42 +0000
Received: from sender4-of-o50.zoho.com (sender4-of-o50.zoho.com
 [136.143.188.50]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 20d2f687-1d6b-11f0-9ffb-bf95429c2676;
 Sun, 20 Apr 2025 00:10:41 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 1745100529351514.2214468763436;
 Sat, 19 Apr 2025 15:08:49 -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: 20d2f687-1d6b-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; t=1745100532; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=T1aF5NN6TQljao9et5SXqFehz11Af9QnkzBQFOWCzNE44VcUVNMM2RbVQs/C8P7PFEAvv6fiocvlGE/YsKM36kniCkssiwi50nlQfb5Lu9ucCzMbs3AiaNEOOhAcyJtXNeL0eVFiCC9zyHdjSCiMykbXZ9XggHq4Gg3mu68lR50=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1745100532; 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=dHzsr1tvYnNwRUTIMNNdv9WOz0SDF5NOBLHUdiE196Q=; 
	b=cQOJOTh99Hm7F629nFKX95odWCD0sT/jjGnI9UsgJZUCPcPylhDT8f+rvcXV32+pt1ZXDBijelAlfD+JYZT6K3utduJkham17dkASvjpsOTsq5ttAQK+29UTr2Z2b03m/UFUcWB5EcRC/rrR/ozcvEIr7q287S9Lcv/Y/hgDDqI=
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=1745100532;
	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=dHzsr1tvYnNwRUTIMNNdv9WOz0SDF5NOBLHUdiE196Q=;
	b=O+2YELmPK+BP1TVrgSsaiHBScKLb1fHZVGyy3WgIojkl6V4VISubM9uyFZa7a/ZZ
	E2V+cmwGPDzkYPlfxx0NAWDn6ZZRWWrWkCuWyFdHvZ5DqU7XKVoLJdCusQZfDbgbEAh
	/PebNTuCwWgQYslioghtUOboqFrcxo9PQVp1uqkw=
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
To: xen-devel@lists.xenproject.org
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	jason.andryuk@amd.com,
	stefano.stabellini@amd.com,
	agarciav@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: [RFC 12/38] x86/boot: generalize compute number of domain pages
Date: Sat, 19 Apr 2025 18:07:54 -0400
Message-Id: <20250419220820.4234-13-dpsmith@apertussolutions.com>
X-Mailer: git-send-email 2.30.2
In-Reply-To: <20250419220820.4234-1-dpsmith@apertussolutions.com>
References: <20250419220820.4234-1-dpsmith@apertussolutions.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

The amount of pages for a domain to be allocated is based on the physical nodes
a domain may be scheduled. For dom0, this can be restricted down from available
nodes via the dom0_nodes command line parameter.

Refactor dom0_compute_nr_pages() such that only apply the dom0_nodes
restriction only if the domain has the control domain or hardware domain
capability flag set. In doing so, also rename the function to
dom_compute_nr_pages().

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
---
 xen/arch/x86/dom0_build.c             | 16 +++++++++++++---
 xen/arch/x86/hvm/dom0_build.c         |  2 +-
 xen/arch/x86/include/asm/dom0_build.h |  2 +-
 xen/arch/x86/pv/dom0_build.c          |  2 +-
 4 files changed, 16 insertions(+), 6 deletions(-)

diff --git a/xen/arch/x86/dom0_build.c b/xen/arch/x86/dom0_build.c
index 1413e8c634a7..53ab1afbaa1f 100644
--- a/xen/arch/x86/dom0_build.c
+++ b/xen/arch/x86/dom0_build.c
@@ -377,14 +377,23 @@ static void __init dom0_pv_restrict_pages(
     }
 }
 
-unsigned long __init dom0_compute_nr_pages(
+unsigned long __init dom_compute_nr_pages(
     struct boot_domain *bd, struct elf_dom_parms *parms)
 {
     nodeid_t node;
+    nodemask_t nodes = { 0 };
     struct domain *d = bd->d;
     unsigned long avail = 0, iommu_pages = 0;
 
-    for_each_node_mask ( node, dom0_nodes )
+    nodes_or(nodes, nodes, node_online_map);
+
+    /* If building dom0 or hwdom, apply command line restriction. */
+    if ( bd->capabilities & (BUILD_CAPS_CONTROL | BUILD_CAPS_HARDWARE) )
+        nodes_and(nodes, nodes, dom0_nodes);
+
+    ASSERT(nodes_weight(nodes) != 0);
+
+    for_each_node_mask ( node, nodes )
         avail += avail_domheap_pages_region(node, 0, 0) +
                  initial_images_nrpages(node);
 
@@ -396,7 +405,8 @@ unsigned long __init dom0_compute_nr_pages(
         avail -= d->max_vcpus - 1;
 
     /* Reserve memory for iommu_dom0_init() (rough estimate). */
-    if ( is_iommu_enabled(d) && !iommu_hwdom_passthrough )
+    if ( is_hardware_domain(d) && is_iommu_enabled(d)
+         && !iommu_hwdom_passthrough )
     {
         unsigned int s;
 
diff --git a/xen/arch/x86/hvm/dom0_build.c b/xen/arch/x86/hvm/dom0_build.c
index d3ad90348a1f..f59af0e72810 100644
--- a/xen/arch/x86/hvm/dom0_build.c
+++ b/xen/arch/x86/hvm/dom0_build.c
@@ -401,7 +401,7 @@ static __init void pvh_setup_e820(struct domain *d, unsigned long nr_pages)
 
 static void __init pvh_init_p2m(struct boot_domain *bd)
 {
-    unsigned long nr_pages = dom0_compute_nr_pages(bd, NULL);
+    unsigned long nr_pages = dom_compute_nr_pages(bd, NULL);
     bool preempted;
 
     pvh_setup_e820(bd->d, nr_pages);
diff --git a/xen/arch/x86/include/asm/dom0_build.h b/xen/arch/x86/include/asm/dom0_build.h
index 81717b49b4ae..7275bcf9ba6b 100644
--- a/xen/arch/x86/include/asm/dom0_build.h
+++ b/xen/arch/x86/include/asm/dom0_build.h
@@ -13,7 +13,7 @@ void dom0_set_affinity(struct domain *dom0);
 int dom0_setup_permissions(struct domain *d);
 
 struct boot_domain;
-unsigned long dom0_compute_nr_pages(
+unsigned long dom_compute_nr_pages(
     struct boot_domain *bd, struct elf_dom_parms *parms);
 
 int dom0_construct_pv(struct boot_domain *bd);
diff --git a/xen/arch/x86/pv/dom0_build.c b/xen/arch/x86/pv/dom0_build.c
index f8844b858082..ad4d1cc3520c 100644
--- a/xen/arch/x86/pv/dom0_build.c
+++ b/xen/arch/x86/pv/dom0_build.c
@@ -504,7 +504,7 @@ static int __init dom0_construct(struct boot_domain *bd)
         }
     }
 
-    nr_pages = dom0_compute_nr_pages(bd, &parms);
+    nr_pages = dom_compute_nr_pages(bd, &parms);
 
 #ifdef CONFIG_PV32
     if ( elf_32bit(&elf) )
-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Sat Apr 19 22:10:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 19 Apr 2025 22:10:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.960064.1352172 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6GOf-0001k7-FB; Sat, 19 Apr 2025 22:10:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 960064.1352172; Sat, 19 Apr 2025 22:10: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 1u6GOf-0001jz-C6; Sat, 19 Apr 2025 22:10:49 +0000
Received: by outflank-mailman (input) for mailman id 960064;
 Sat, 19 Apr 2025 22:10: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=nqik=XF=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1u6GNu-0004yY-Fs
 for xen-devel@lists.xenproject.org; Sat, 19 Apr 2025 22:10:02 +0000
Received: from sender4-of-o50.zoho.com (sender4-of-o50.zoho.com
 [136.143.188.50]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0930067e-1d6b-11f0-9eb0-5ba50f476ded;
 Sun, 20 Apr 2025 00:10:01 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 1745100516695805.3400796738428;
 Sat, 19 Apr 2025 15:08:36 -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: 0930067e-1d6b-11f0-9eb0-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; t=1745100518; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=jCHtlTNbPugI4QsIOfMCSshNjkzTlnMLqAQ2vP1auU+C/EtHyN66loQ5UPnOLGrRs2fxULuzzTtaPiTNAkXIPy8FyenMkPZU2XsxZN286tyLGA/tjJnDHw1hL9XZZCgaI1B6knomTSeo60eLPRfS8SZoNuJF+DGR8NlrmN23xYI=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1745100518; 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=hhloariy0ivPaFgv7gJ7fUQsj5qmnZtQNfUz7swuU5o=; 
	b=dVWyCjoB36UUU+HPhr6g+dBMs7jIwim3s9O8c6XL8xOsoSSTARH3fK2aSancJeTn6c7fmvkRBw808Vhx2VoY6BquCbaqA1jh9rC47uWigznmrGbo26468PpzRqlA2hOjtasXa6vAePgcGzWY8qfJLjmfmHCxnVLw1tWqz7lp1J4=
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=1745100518;
	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=hhloariy0ivPaFgv7gJ7fUQsj5qmnZtQNfUz7swuU5o=;
	b=Tdje/yajFWQNPQTzSYZLWr76M0NBIGJoB30uF9T8XUCB6fNMtxoDbWIXhQnPolJV
	+gBDPbBaXqzd+ONGwKI/A5rYrYyOrOwFP11GrY59pg6ryeOhFFmeFGDbx8MycfgyKic
	t+wmv7xTJm/eqI9dDJUzklKL9xn6yON+If3tpbow=
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
To: xen-devel@lists.xenproject.org
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	jason.andryuk@amd.com,
	stefano.stabellini@amd.com,
	agarciav@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: [RFC 08/38] x86/hyperlaunch: move initial hwdom setup to dom_construct_pvh
Date: Sat, 19 Apr 2025 18:07:50 -0400
Message-Id: <20250419220820.4234-9-dpsmith@apertussolutions.com>
X-Mailer: git-send-email 2.30.2
In-Reply-To: <20250419220820.4234-1-dpsmith@apertussolutions.com>
References: <20250419220820.4234-1-dpsmith@apertussolutions.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

Relocate the initial block of hwdom setup code from dom0_construct_pvh() over
to dom_construct_pvh().

No functional change.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
---
 xen/arch/x86/hvm/dom0_build.c | 44 ------------------------------
 xen/arch/x86/hvm/dom_build.c  | 50 +++++++++++++++++++++++++++++++++++
 2 files changed, 50 insertions(+), 44 deletions(-)

diff --git a/xen/arch/x86/hvm/dom0_build.c b/xen/arch/x86/hvm/dom0_build.c
index 176b253d3c61..b4ffebdde00e 100644
--- a/xen/arch/x86/hvm/dom0_build.c
+++ b/xen/arch/x86/hvm/dom0_build.c
@@ -1312,56 +1312,12 @@ static int __init pvh_setup_acpi(struct domain *d, paddr_t start_info)
     return 0;
 }
 
-static void __hwdom_init pvh_setup_mmcfg(struct domain *d)
-{
-    unsigned int i;
-    int rc;
-
-    for ( i = 0; i < pci_mmcfg_config_num; i++ )
-    {
-        rc = register_vpci_mmcfg_handler(d, pci_mmcfg_config[i].address,
-                                         pci_mmcfg_config[i].start_bus_number,
-                                         pci_mmcfg_config[i].end_bus_number,
-                                         pci_mmcfg_config[i].pci_segment);
-        if ( rc )
-            printk("Unable to setup MMCFG handler at %#lx for segment %u\n",
-                   pci_mmcfg_config[i].address,
-                   pci_mmcfg_config[i].pci_segment);
-    }
-}
-
 int __init dom0_construct_pvh(const struct boot_domain *bd)
 {
     paddr_t entry, start_info;
     struct domain *d = bd->d;
     int rc;
 
-    printk(XENLOG_INFO "*** Building a PVH Dom%d ***\n", d->domain_id);
-
-    if ( bd->kernel == NULL )
-        panic("Missing kernel boot module for %pd construction\n", d);
-
-    if ( is_hardware_domain(d) )
-    {
-        /*
-         * MMCFG initialization must be performed before setting domain
-         * permissions, as the MCFG areas must not be part of the domain IOMEM
-         * accessible regions.
-         */
-        pvh_setup_mmcfg(d);
-
-        /*
-         * Setup permissions early so that calls to add MMIO regions to the
-         * p2m as part of vPCI setup don't fail due to permission checks.
-         */
-        rc = dom0_setup_permissions(d);
-        if ( rc )
-        {
-            printk("%pd unable to setup permissions: %d\n", d, rc);
-            return rc;
-        }
-    }
-
     /*
      * Craft dom0 physical memory map and set the paging allocation. This must
      * be done before the iommu initializion, since iommu initialization code
diff --git a/xen/arch/x86/hvm/dom_build.c b/xen/arch/x86/hvm/dom_build.c
index 7206815d64a9..b6e534226434 100644
--- a/xen/arch/x86/hvm/dom_build.c
+++ b/xen/arch/x86/hvm/dom_build.c
@@ -8,15 +8,65 @@
  * Copyright (C) 2024 Apertus Solutions, LLC
  */
 
+#include <xen/acpi.h>
 #include <xen/init.h>
+#include <xen/types.h>
+
+#include <acpi/actables.h>
 
 #include <asm/bootinfo.h>
 #include <asm/dom0_build.h>
+#include <asm/hvm/io.h>
+#include <asm/pci.h>
+
+static void __hwdom_init pvh_setup_mmcfg(struct domain *d)
+{
+    unsigned int i;
+    int rc;
+
+    for ( i = 0; i < pci_mmcfg_config_num; i++ )
+    {
+        rc = register_vpci_mmcfg_handler(d, pci_mmcfg_config[i].address,
+                                         pci_mmcfg_config[i].start_bus_number,
+                                         pci_mmcfg_config[i].end_bus_number,
+                                         pci_mmcfg_config[i].pci_segment);
+        if ( rc )
+            printk("Unable to setup MMCFG handler at %#lx for segment %u\n",
+                   pci_mmcfg_config[i].address,
+                   pci_mmcfg_config[i].pci_segment);
+    }
+}
 
 int __init dom_construct_pvh(struct boot_domain *bd)
 {
+    int rc;
+
     printk(XENLOG_INFO "*** Building a PVH Dom%d ***\n", bd->domid);
 
+    if ( bd->kernel == NULL )
+        panic("Missing kernel boot module for %pd construction\n", bd->d);
+
+    if ( is_hardware_domain(bd->d) )
+    {
+        /*
+         * MMCFG initialization must be performed before setting domain
+         * permissions, as the MCFG areas must not be part of the domain IOMEM
+         * accessible regions.
+         */
+        pvh_setup_mmcfg(bd->d);
+
+        /*
+         * Setup permissions early so that calls to add MMIO regions to the
+         * p2m as part of vPCI setup don't fail due to permission checks.
+         */
+        rc = dom0_setup_permissions(bd->d);
+        if ( rc )
+        {
+            printk("%pd unable to setup permissions: %d\n", bd->d, rc);
+            return rc;
+        }
+    }
+
     return dom0_construct_pvh(bd);
 }
 
-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Sat Apr 19 22:10:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 19 Apr 2025 22:10:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.960066.1352183 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6GOg-00020I-Sp; Sat, 19 Apr 2025 22:10:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 960066.1352183; Sat, 19 Apr 2025 22:10: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 1u6GOg-000201-NT; Sat, 19 Apr 2025 22:10:50 +0000
Received: by outflank-mailman (input) for mailman id 960066;
 Sat, 19 Apr 2025 22:10: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=nqik=XF=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1u6GNN-0004ik-Oj
 for xen-devel@lists.xenproject.org; Sat, 19 Apr 2025 22:09:29 +0000
Received: from sender4-of-o50.zoho.com (sender4-of-o50.zoho.com
 [136.143.188.50]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f48916eb-1d6a-11f0-9ffb-bf95429c2676;
 Sun, 20 Apr 2025 00:09:26 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 1745100514143191.97463134767452;
 Sat, 19 Apr 2025 15:08: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: f48916eb-1d6a-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; t=1745100516; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=EnLesCv4QdHgS2G5laY0Pexlzv+GIkpcoOLjJ/mfBaFaA5Avm/8t04M/xMfrP9N4525LY9UDsy/knSSE7RHpYD12fl53fL3PFwjtoXdHk28J+PO+p0MI8bnWzMGRPhKI66cLqZ/F/UeP9teKYXYRyDRTfME2tYhu1EyuDPKL9ls=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1745100516; 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=joeZ5CWNCE6Z2Un/cJIOF/EP6nfinf+YaJF/l3mCceo=; 
	b=b6si5+cb73AugZitj+DILLZn4LOtZhVhoJSfqiJ8d3ugzsNecqa65SI9EbEwStYCKfu/jBF7+aIZaDZZwjlw/dByGFdYzwsJEWCo1OtLmObPfUqyDCc5feug/JQacpaF/AcLG2XKD73bPozCZkM+OUtfglAhYBpkcHZ4pdvSLrg=
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=1745100516;
	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=joeZ5CWNCE6Z2Un/cJIOF/EP6nfinf+YaJF/l3mCceo=;
	b=jwe/gSb1XnvZG0Pyu6cJi03zm/soy673yJ4TTvVGXRW7YP/J0nPzWhfFNzrTB5mK
	Qk/wzD5uq8u6DtPxq9/3HE77iq30UMOEmzRtg5FzVvdQfOh22vs4Hwic5MvInReNVjp
	SAiJ/0mVdL9gOpgwV6oI2r9nHK2OYWWFk9dkqbGM=
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
To: xen-devel@lists.xenproject.org
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	jason.andryuk@amd.com,
	stefano.stabellini@amd.com,
	agarciav@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: [RFC 05/38] x86/hyperlaunch: move dom0 cpuid policy behind capability check
Date: Sat, 19 Apr 2025 18:07:47 -0400
Message-Id: <20250419220820.4234-6-dpsmith@apertussolutions.com>
X-Mailer: git-send-email 2.30.2
In-Reply-To: <20250419220820.4234-1-dpsmith@apertussolutions.com>
References: <20250419220820.4234-1-dpsmith@apertussolutions.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

To incrementally convert create_dom0() into being a generalized domain
construction function, move the dom0 specific cpuid policy behind the control
domain capability.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
---
 xen/arch/x86/setup.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 8ba9d592ed5a..41e46f05a520 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -1050,7 +1050,8 @@ static struct domain *__init create_dom0(struct boot_info *bi)
 
     bd->d = d;
 
-    init_dom0_cpuid_policy(d);
+    if ( bd->capabilities & BUILD_CAPS_CONTROL )
+        init_dom0_cpuid_policy(bd->d);
 
     if ( alloc_dom_vcpu0(bd) == NULL )
         panic("Error creating %pd vcpu 0\n", d);
-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Sat Apr 19 22:10:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 19 Apr 2025 22:10:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.960069.1352192 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6GOi-0002JS-9i; Sat, 19 Apr 2025 22:10:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 960069.1352192; Sat, 19 Apr 2025 22:10: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 1u6GOi-0002IR-3a; Sat, 19 Apr 2025 22:10:52 +0000
Received: by outflank-mailman (input) for mailman id 960069;
 Sat, 19 Apr 2025 22:10: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=nqik=XF=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1u6GOh-0007X1-2C
 for xen-devel@lists.xenproject.org; Sat, 19 Apr 2025 22:10:51 +0000
Received: from sender4-of-o50.zoho.com (sender4-of-o50.zoho.com
 [136.143.188.50]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 25938261-1d6b-11f0-9ffb-bf95429c2676;
 Sun, 20 Apr 2025 00:10:49 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 1745100530188877.5400344244114;
 Sat, 19 Apr 2025 15:08: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: 25938261-1d6b-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; t=1745100532; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=g2Pty8YVcaCEnfAg1/dz3RvPZ7/hjg2PgeRXvbCMmoSFR6cqrupwYcaTrShMGVWJe9of+kO4+h2i2bCi7uv+2rz/lGo2iVBYtPBV9OKGFDKOBV6ccWScp5iqw1J/jm77q9GGHKy70ePfp6rEPH2BFRYFo1HwgfDZYCrYoIMgDag=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1745100532; 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=i4cmCekFDOf6Zqqnx0QnwPpbFO/VkKVHyAi01YfF4U4=; 
	b=K3l7lNjDShe/rNzSGfKEyZTyV9H78ALvN/bnGuY5yFqxDZBwG7TEvL5gLFR+l/97WzIXYWVR3DBu0faBjusakgb/ZxkYa9m+4VCQ3kyVBxvbAQJY5mAS0HZT4BNUGVCKmJBszm3HzJk/XoH6AtRUZbaf3OJfrS1IJXaZxWqsdoM=
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=1745100532;
	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=i4cmCekFDOf6Zqqnx0QnwPpbFO/VkKVHyAi01YfF4U4=;
	b=nD6ofalYGXbAilkE31f+IR6dgUepXRRFNVBg418gQk+LJ8Ezg+Vi22WKzSxgNf1x
	gQMrGGTG5cFV0Lub/za+lLG22Qe6NxKomzIXHrvbVzbNWqLTwkHh3+jgUNaawRlzSJ9
	HNMafPhADieMims7WfdoM3p2zvWYonht7us32saI=
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
To: xen-devel@lists.xenproject.org
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	jason.andryuk@amd.com,
	stefano.stabellini@amd.com,
	agarciav@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: [RFC 13/38] x86/hyperlaunch: move page computation to domain builder
Date: Sat, 19 Apr 2025 18:07:55 -0400
Message-Id: <20250419220820.4234-14-dpsmith@apertussolutions.com>
X-Mailer: git-send-email 2.30.2
In-Reply-To: <20250419220820.4234-1-dpsmith@apertussolutions.com>
References: <20250419220820.4234-1-dpsmith@apertussolutions.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

The function dom_compute_nr_pages() is being moved to the domain builder. For
this to happen, the variable dom0_nodes, and the functions
calculate_dom0_pages() and dom0_pv_restrict_pages() must be exported.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
---
 xen/arch/x86/dom0_build.c                 | 75 +----------------------
 xen/arch/x86/domain-builder/domain.c      | 70 +++++++++++++++++++++
 xen/arch/x86/include/asm/dom0_build.h     |  4 +-
 xen/arch/x86/include/asm/domain-builder.h |  5 ++
 4 files changed, 81 insertions(+), 73 deletions(-)

diff --git a/xen/arch/x86/dom0_build.c b/xen/arch/x86/dom0_build.c
index 53ab1afbaa1f..e488a204372b 100644
--- a/xen/arch/x86/dom0_build.c
+++ b/xen/arch/x86/dom0_build.c
@@ -209,7 +209,7 @@ static int __init cf_check parse_dom0_nodes(const char *s)
 custom_param("dom0_nodes", parse_dom0_nodes);
 
 cpumask_t __initdata dom0_cpus;
-static nodemask_t __initdata dom0_nodes;
+nodemask_t __initdata dom0_nodes;
 
 unsigned int __init dom0_max_vcpus(void)
 {
@@ -315,8 +315,7 @@ static unsigned long __init default_nr_pages(unsigned long avail)
                             : min(avail / 16, 128UL << (20 - PAGE_SHIFT)));
 }
 
-static void __init calculate_dom0_pages(
-    struct boot_domain *bd, unsigned long avail)
+void __init calculate_dom0_pages(struct boot_domain *bd, unsigned long avail)
 {
     unsigned long nr_pages = bd->mem_pages ?: default_nr_pages(avail);
 
@@ -338,7 +337,7 @@ static void __init calculate_dom0_pages(
     bd->mem_pages = nr_pages;
 }
 
-static void __init dom0_pv_restrict_pages(
+void __init dom0_pv_restrict_pages(
     struct boot_domain *bd, struct elf_dom_parms *parms)
 {
     if ( (parms->p2m_base == UNSET_ADDR) && !memsize_gt_zero(&dom0_size) &&
@@ -377,74 +376,6 @@ static void __init dom0_pv_restrict_pages(
     }
 }
 
-unsigned long __init dom_compute_nr_pages(
-    struct boot_domain *bd, struct elf_dom_parms *parms)
-{
-    nodeid_t node;
-    nodemask_t nodes = { 0 };
-    struct domain *d = bd->d;
-    unsigned long avail = 0, iommu_pages = 0;
-
-    nodes_or(nodes, nodes, node_online_map);
-
-    /* If building dom0 or hwdom, apply command line restriction. */
-    if ( bd->capabilities & (BUILD_CAPS_CONTROL | BUILD_CAPS_HARDWARE) )
-        nodes_and(nodes, nodes, dom0_nodes);
-
-    ASSERT(nodes_weight(nodes) != 0);
-
-    for_each_node_mask ( node, nodes )
-        avail += avail_domheap_pages_region(node, 0, 0) +
-                 initial_images_nrpages(node);
-
-    /* Reserve memory for further dom0 vcpu-struct allocations... */
-    avail -= (d->max_vcpus - 1UL)
-             << get_order_from_bytes(sizeof(struct vcpu));
-    /* ...and compat_l4's, if needed. */
-    if ( is_pv_32bit_domain(d) )
-        avail -= d->max_vcpus - 1;
-
-    /* Reserve memory for iommu_dom0_init() (rough estimate). */
-    if ( is_hardware_domain(d) && is_iommu_enabled(d)
-         && !iommu_hwdom_passthrough )
-    {
-        unsigned int s;
-
-        for ( s = 9; s < BITS_PER_LONG; s += 9 )
-            iommu_pages += max_pdx >> s;
-
-        avail -= iommu_pages;
-    }
-
-    if ( paging_mode_enabled(d) || opt_dom0_shadow || opt_pv_l1tf_hwdom )
-    {
-        unsigned long cpu_pages;
-
-        /*
-         * Clamp according to min/max limits and available memory
-         * (preliminary).
-         */
-        calculate_dom0_pages(bd, avail);
-
-        cpu_pages = dom_paging_pages(bd, bd->mem_pages);
-
-        if ( !iommu_use_hap_pt(d) )
-            avail -= cpu_pages;
-        else if ( cpu_pages > iommu_pages )
-            avail -= cpu_pages - iommu_pages;
-    }
-
-    /* Clamp according to min/max limits and available memory (final). */
-    calculate_dom0_pages(bd, avail);
-
-    if ( is_pv_domain(d) )
-        dom0_pv_restrict_pages(bd, parms);
-
-    d->max_pages = min_t(unsigned long, bd->max_pages, UINT_MAX);
-
-    return bd->mem_pages;
-}
-
 static void __init process_dom0_ioports_disable(struct domain *dom0)
 {
     unsigned long io_from, io_to;
diff --git a/xen/arch/x86/domain-builder/domain.c b/xen/arch/x86/domain-builder/domain.c
index 87f538ae26c5..bdb4d9745ff2 100644
--- a/xen/arch/x86/domain-builder/domain.c
+++ b/xen/arch/x86/domain-builder/domain.c
@@ -6,6 +6,8 @@
 #include <xen/cpumask.h>
 #include <xen/domain.h>
 #include <xen/init.h>
+#include <xen/libelf.h>
+#include <xen/nodemask.h>
 #include <xen/sched.h>
 
 #include <asm/bootinfo.h>
@@ -31,6 +33,74 @@ unsigned long __init dom_paging_pages(
     return DIV_ROUND_UP(memkb, 1024) << (20 - PAGE_SHIFT);
 }
 
+unsigned long __init dom_compute_nr_pages(
+    struct boot_domain *bd, struct elf_dom_parms *parms)
+{
+    nodeid_t node;
+    nodemask_t nodes = { 0 };
+    struct domain *d = bd->d;
+    unsigned long avail = 0, iommu_pages = 0;
+
+    nodes_or(nodes, nodes, node_online_map);
+
+    /* If building dom0 or hwdom, apply command line restriction. */
+    if ( bd->capabilities & (BUILD_CAPS_CONTROL | BUILD_CAPS_HARDWARE) )
+        nodes_and(nodes, nodes, dom0_nodes);
+
+    ASSERT(nodes_weight(nodes) != 0);
+
+    for_each_node_mask ( node, nodes )
+        avail += avail_domheap_pages_region(node, 0, 0) +
+                 initial_images_nrpages(node);
+
+    /* Reserve memory for further dom0 vcpu-struct allocations... */
+    avail -= (d->max_vcpus - 1UL)
+             << get_order_from_bytes(sizeof(struct vcpu));
+    /* ...and compat_l4's, if needed. */
+    if ( is_pv_32bit_domain(d) )
+        avail -= d->max_vcpus - 1;
+
+    /* Reserve memory for iommu_dom0_init() (rough estimate). */
+    if ( is_hardware_domain(d) && is_iommu_enabled(d)
+         && !iommu_hwdom_passthrough )
+    {
+        unsigned int s;
+
+        for ( s = 9; s < BITS_PER_LONG; s += 9 )
+            iommu_pages += max_pdx >> s;
+
+        avail -= iommu_pages;
+    }
+
+    if ( paging_mode_enabled(d) || opt_dom0_shadow || opt_pv_l1tf_hwdom )
+    {
+        unsigned long cpu_pages;
+
+        /*
+         * Clamp according to min/max limits and available memory
+         * (preliminary).
+         */
+        calculate_dom0_pages(bd, avail);
+
+        cpu_pages = dom_paging_pages(bd, bd->mem_pages);
+
+        if ( !iommu_use_hap_pt(d) )
+            avail -= cpu_pages;
+        else if ( cpu_pages > iommu_pages )
+            avail -= cpu_pages - iommu_pages;
+    }
+
+    /* Clamp according to min/max limits and available memory (final). */
+    calculate_dom0_pages(bd, avail);
+
+    if ( is_pv_domain(d) )
+        dom0_pv_restrict_pages(bd, parms);
+
+    d->max_pages = min_t(unsigned long, bd->max_pages, UINT_MAX);
+
+    return bd->mem_pages;
+}
+
 unsigned int __init dom_max_vcpus(struct boot_domain *bd)
 {
     unsigned int limit = bd->mode & BUILD_MODE_PARAVIRT ?
diff --git a/xen/arch/x86/include/asm/dom0_build.h b/xen/arch/x86/include/asm/dom0_build.h
index 7275bcf9ba6b..43a402af15b7 100644
--- a/xen/arch/x86/include/asm/dom0_build.h
+++ b/xen/arch/x86/include/asm/dom0_build.h
@@ -7,13 +7,15 @@
 #include <asm/setup.h>
 
 extern unsigned int dom0_memflags;
+extern nodemask_t dom0_nodes;
 
 void dom0_set_affinity(struct domain *dom0);
 
 int dom0_setup_permissions(struct domain *d);
 
 struct boot_domain;
-unsigned long dom_compute_nr_pages(
+void calculate_dom0_pages(struct boot_domain *bd, unsigned long avail);
+void dom0_pv_restrict_pages(
     struct boot_domain *bd, struct elf_dom_parms *parms);
 
 int dom0_construct_pv(struct boot_domain *bd);
diff --git a/xen/arch/x86/include/asm/domain-builder.h b/xen/arch/x86/include/asm/domain-builder.h
index 8b0b224eba41..f9b11e06ceb8 100644
--- a/xen/arch/x86/include/asm/domain-builder.h
+++ b/xen/arch/x86/include/asm/domain-builder.h
@@ -11,6 +11,11 @@ void builder_init(struct boot_info *bi);
 
 unsigned long dom_paging_pages(
     const struct boot_domain *d, unsigned long nr_pages);
+
+struct elf_dom_parms;
+unsigned long dom_compute_nr_pages(
+    struct boot_domain *bd, struct elf_dom_parms *parms);
+
 unsigned int dom_max_vcpus(struct boot_domain *bd);
 struct vcpu *alloc_dom_vcpu0(struct boot_domain *bd);
 
-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Sat Apr 19 22:13:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 19 Apr 2025 22:13:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.960114.1352202 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6GQz-0004p9-TN; Sat, 19 Apr 2025 22:13:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 960114.1352202; Sat, 19 Apr 2025 22: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 1u6GQz-0004p0-QE; Sat, 19 Apr 2025 22:13:13 +0000
Received: by outflank-mailman (input) for mailman id 960114;
 Sat, 19 Apr 2025 22:13: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=nqik=XF=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1u6GQy-0004oZ-Ku
 for xen-devel@lists.xenproject.org; Sat, 19 Apr 2025 22:13:12 +0000
Received: from sender4-of-o50.zoho.com (sender4-of-o50.zoho.com
 [136.143.188.50]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 79c93cdc-1d6b-11f0-9ffb-bf95429c2676;
 Sun, 20 Apr 2025 00:13:10 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 1745100552863208.68927810979392;
 Sat, 19 Apr 2025 15:09: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: 79c93cdc-1d6b-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; t=1745100556; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=LHcEECMDjJj3dC1RqieD9Wr7XiwZxrVMvdlaLg9Xxgx0jSazAiWW/miGr06eWR1/1dwfR3RWIwelv+cIxcij2O7HGraU0P5T86QKyMfnxBEXNkLh5vfr+qL2J7kMDmsKHvCze6woX6nCxuwTYZFq0H9MvtOo6VLAQ2JzIwsyqYY=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1745100556; 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=5FUmF1YRY9NDE1umkBI15/zKKYB7vvic5T3QpbucTJ0=; 
	b=fzTYjYL1wH7w0gBmq5H0mV1sJyq3I/1Gxg02/oKnjCFM4mGp/+mBhvQuzkcEQI2+SOQ9eGqP5hYnnDeX7JwwK6Ua+EjlMbvo/37y8aQvBF9Wwv8ew3Ue46ZlxEkWzMW/f3Z8QATAI62VeJeZ3/5grvll3s0oPqJBTp0XxSxv5Bk=
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=1745100556;
	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=5FUmF1YRY9NDE1umkBI15/zKKYB7vvic5T3QpbucTJ0=;
	b=Oj9T8XhxwGoAp7n/4JvkPILnnCIQ6wc4eL+RcluTNx36iQLN4CXQl2pOc1y8rq1N
	vnWz81HiJA9PPTxzfcYQ3WFpnczBiEDBaNigwJc9sjOEC3tEFQXyrUI+MtwMa0hjqWZ
	1aFTz+Od1BWHjUYqhawfx3lQU3KOopzkQU7dbt8U=
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
To: xen-devel@lists.xenproject.org
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	jason.andryuk@amd.com,
	stefano.stabellini@amd.com,
	agarciav@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: [RFC 28/38] x86/hyperlaunch: add xenstore boot capabilities flag
Date: Sat, 19 Apr 2025 18:08:10 -0400
Message-Id: <20250419220820.4234-29-dpsmith@apertussolutions.com>
X-Mailer: git-send-email 2.30.2
In-Reply-To: <20250419220820.4234-1-dpsmith@apertussolutions.com>
References: <20250419220820.4234-1-dpsmith@apertussolutions.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

Add the ability to designate a domain as the Xenstore domain via the
hyperlaunch configuration.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
---
 xen/arch/x86/domain-builder/core.c     | 2 +-
 xen/arch/x86/domain-builder/domain.c   | 2 ++
 xen/arch/x86/domain-builder/fdt.c      | 2 ++
 xen/arch/x86/include/asm/boot-domain.h | 1 +
 4 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/xen/arch/x86/domain-builder/core.c b/xen/arch/x86/domain-builder/core.c
index 2f0b8bd82c3a..e21f5efbfe62 100644
--- a/xen/arch/x86/domain-builder/core.c
+++ b/xen/arch/x86/domain-builder/core.c
@@ -98,7 +98,7 @@ void __init builder_init(struct boot_info *bi)
         bi->mods[i].type = BOOTMOD_KERNEL;
         bi->domains[0].kernel = &bi->mods[i];
         bi->domains[0].capabilities |=
-            (BUILD_CAPS_CONTROL | BUILD_CAPS_HARDWARE);
+            (BUILD_CAPS_CONTROL | BUILD_CAPS_HARDWARE | BUILD_CAPS_XENSTORE);
         bi->nr_domains = 1;
     }
 }
diff --git a/xen/arch/x86/domain-builder/domain.c b/xen/arch/x86/domain-builder/domain.c
index 13f99111a3a9..c1b2e011aaa0 100644
--- a/xen/arch/x86/domain-builder/domain.c
+++ b/xen/arch/x86/domain-builder/domain.c
@@ -250,6 +250,8 @@ struct domain *__init arch_create_dom(
     if ( bd->domid == DOMID_INVALID )
         /* Create initial domain.  Not d0 for pvshim. */
         bd->domid = get_initial_domain_id();
+    if ( bd->capabilities & BUILD_CAPS_XENSTORE )
+        dom_cfg.flags |= XEN_DOMCTL_CDF_xs_domain;
     if ( bd->capabilities & BUILD_CAPS_CONTROL )
         create_flags |= CDF_privileged | CDF_hardware;
     d = domain_create(bd->domid, &dom_cfg,
diff --git a/xen/arch/x86/domain-builder/fdt.c b/xen/arch/x86/domain-builder/fdt.c
index 1af58ed4eb86..9c6c0ae09a24 100644
--- a/xen/arch/x86/domain-builder/fdt.c
+++ b/xen/arch/x86/domain-builder/fdt.c
@@ -269,6 +269,8 @@ static int __init process_domain_node(
                 printk("c");
             if ( bd->capabilities & BUILD_CAPS_HARDWARE )
                 printk(" h");
+            if ( bd->capabilities & BUILD_CAPS_XENSTORE )
+                printk(" x");
             printk("\n");
         }
     }
diff --git a/xen/arch/x86/include/asm/boot-domain.h b/xen/arch/x86/include/asm/boot-domain.h
index 18d144de2fea..32f1f8fbc4e8 100644
--- a/xen/arch/x86/include/asm/boot-domain.h
+++ b/xen/arch/x86/include/asm/boot-domain.h
@@ -16,6 +16,7 @@ struct boot_domain {
 #define BUILD_CAPS_NONE          (0)
 #define BUILD_CAPS_CONTROL       (1 << 0)
 #define BUILD_CAPS_HARDWARE      (1 << 1)
+#define BUILD_CAPS_XENSTORE      (1 << 2)
     uint32_t capabilities;
 
                                           /* On     | Off    */
-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Sat Apr 19 22:13:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 19 Apr 2025 22:13:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.960116.1352213 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6GR8-00058O-3E; Sat, 19 Apr 2025 22:13:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 960116.1352213; Sat, 19 Apr 2025 22: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 1u6GR8-00058D-0c; Sat, 19 Apr 2025 22:13:22 +0000
Received: by outflank-mailman (input) for mailman id 960116;
 Sat, 19 Apr 2025 22:13: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=nqik=XF=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1u6GR6-0004oZ-5l
 for xen-devel@lists.xenproject.org; Sat, 19 Apr 2025 22:13:20 +0000
Received: from sender4-of-o50.zoho.com (sender4-of-o50.zoho.com
 [136.143.188.50]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7e840d94-1d6b-11f0-9ffb-bf95429c2676;
 Sun, 20 Apr 2025 00:13:18 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 1745100566539673.7790316696628;
 Sat, 19 Apr 2025 15:09:26 -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: 7e840d94-1d6b-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; t=1745100570; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=QzRaWbeQpwkUFIp4sul5KdDV5Prz7T0mPj68GLFG9CCLF7kc5Ywyv2vbTrH5WXNGgi4sOAk3AjDi+7a0R8dF7ydd0a73KJMzQAB6jyomDPF6vKIIh1TRp5ekJsmuq9/Ypym7fWk7KL36XPeZilk66gqYsDudDrxBLq9lN5idbiQ=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1745100570; 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=2pfoYx7ufXR5MimMumzHjXA6Uyttums4Ez5tgMk1h/4=; 
	b=NQuHOYgx7Tuts1j2/y+NFEASXsc8GAvtPL04pGoPTHxili+yVcRc3/E2tge4dEna4Z0bFkSXWDtao0ZKBNFLpZ6H9zgFq40Tc/8wClf5nRnZmasKY1n1NwoGjIJWBO5kfPmDerNyF99eLbkvZFd5R/y+W0sazb3bdMhuqx6EzQw=
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=1745100570;
	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=2pfoYx7ufXR5MimMumzHjXA6Uyttums4Ez5tgMk1h/4=;
	b=rR5jPit++B6TRxeO/HzIn+sRw5HczLcZ+n08bCjMDCOXIe8twcjj9z284AWY68AC
	LntuqGder4hkv/YTdnuryMeTvIGRy1eIddYSJlqdz+KS5lAqrd+G4RtlwNXxv+T3IvO
	9Z21b/ZnE+W0aMhptIKv+fWIEkLHiIsCl5cqK/Xo=
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
To: xen-devel@lists.xenproject.org
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	jason.andryuk@amd.com,
	stefano.stabellini@amd.com,
	agarciav@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: [RFC 34/38] x86/hyperlaunch: introduce multidomain kconfig option
Date: Sat, 19 Apr 2025 18:08:16 -0400
Message-Id: <20250419220820.4234-35-dpsmith@apertussolutions.com>
X-Mailer: git-send-email 2.30.2
In-Reply-To: <20250419220820.4234-1-dpsmith@apertussolutions.com>
References: <20250419220820.4234-1-dpsmith@apertussolutions.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

This adds the MULTIDOMAIN_BUILDER kconfig option that will be used to enable
the domain construction path to be called multiple times. With the idea of
being able to construct multiple domains now introduced, rename construct_dom0()
to construct_dom().

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
---
 xen/arch/x86/dom0_build.c            |  9 +++++----
 xen/arch/x86/domain-builder/Kconfig  | 12 ++++++++++++
 xen/arch/x86/domain-builder/domain.c |  2 +-
 xen/arch/x86/include/asm/bootinfo.h  |  2 +-
 xen/arch/x86/include/asm/setup.h     |  2 +-
 5 files changed, 20 insertions(+), 7 deletions(-)

diff --git a/xen/arch/x86/dom0_build.c b/xen/arch/x86/dom0_build.c
index e488a204372b..8c8cb08a6f7e 100644
--- a/xen/arch/x86/dom0_build.c
+++ b/xen/arch/x86/dom0_build.c
@@ -558,15 +558,16 @@ int __init dom0_setup_permissions(struct domain *d)
     return rc;
 }
 
-int __init construct_dom0(struct boot_domain *bd)
+int __init construct_dom(struct boot_domain *bd)
 {
     int rc;
     const struct domain *d = bd->d;
 
     /* Sanity! */
-    BUG_ON(!pv_shim && d->domain_id != 0);
-    BUG_ON(d->vcpu[0] == NULL);
-    BUG_ON(d->vcpu[0]->is_initialised);
+    if ( ! IS_ENABLED(CONFIG_MULTIDOMAIN_BUILDER) )
+        BUG_ON(!pv_shim && bd->d->domain_id != 0);
+    BUG_ON(bd->d->vcpu[0] == NULL);
+    BUG_ON(bd->d->vcpu[0]->is_initialised);
 
     process_pending_softirqs();
 
diff --git a/xen/arch/x86/domain-builder/Kconfig b/xen/arch/x86/domain-builder/Kconfig
index 51d549c20df3..05d7859e6b53 100644
--- a/xen/arch/x86/domain-builder/Kconfig
+++ b/xen/arch/x86/domain-builder/Kconfig
@@ -12,4 +12,16 @@ config DOMAIN_BUILDER
 
 	  If unsure, say N.
 
+config MULTIDOMAIN_BUILDER
+	bool "Multiple domain building (UNSUPPORTED)" if UNSUPPORTED
+	depends on DOMAIN_BUILDER
+	default n
+	help
+      Enables the domain builder capability to build multiple domains
+	  using a flattened device tree.
+
+	  This feature is currently experimental.
+
+	  If unsure, say N.
+
 endmenu
diff --git a/xen/arch/x86/domain-builder/domain.c b/xen/arch/x86/domain-builder/domain.c
index b413a87cc9c9..919df1ffb1c3 100644
--- a/xen/arch/x86/domain-builder/domain.c
+++ b/xen/arch/x86/domain-builder/domain.c
@@ -399,7 +399,7 @@ struct domain *__init arch_create_dom(
     if ( !(bd->capabilities & BUILD_CAPS_HARDWARE) )
         alloc_console_evtchn(bi, bd);
 
-    if ( construct_dom0(bd) != 0 )
+    if ( construct_dom(bd) != 0 )
         panic("Could not construct domain 0\n");
 
     XFREE(cmdline);
diff --git a/xen/arch/x86/include/asm/bootinfo.h b/xen/arch/x86/include/asm/bootinfo.h
index 430ae08cf5ef..298cff303673 100644
--- a/xen/arch/x86/include/asm/bootinfo.h
+++ b/xen/arch/x86/include/asm/bootinfo.h
@@ -17,7 +17,7 @@
 #define MAX_NR_BOOTMODS 63
 
 /* Max number of boot domains that Xen can construct */
-#define MAX_NR_BOOTDOMS 1
+#define MAX_NR_BOOTDOMS 64
 
 /* Boot module binary type / purpose */
 enum bootmod_type {
diff --git a/xen/arch/x86/include/asm/setup.h b/xen/arch/x86/include/asm/setup.h
index 4b8fbdc67e05..3f6850d40d04 100644
--- a/xen/arch/x86/include/asm/setup.h
+++ b/xen/arch/x86/include/asm/setup.h
@@ -27,7 +27,7 @@ void subarch_init_memory(void);
 void init_IRQ(void);
 
 struct boot_domain;
-int construct_dom0(struct boot_domain *bd);
+int construct_dom(struct boot_domain *bd);
 
 const char *cmdline_cook(const char *p, const char *loader_name);
 
-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Sat Apr 19 22:13:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 19 Apr 2025 22:13:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.960119.1352222 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6GRG-0005XE-Ao; Sat, 19 Apr 2025 22:13:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 960119.1352222; Sat, 19 Apr 2025 22:13: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 1u6GRG-0005X2-7R; Sat, 19 Apr 2025 22:13:30 +0000
Received: by outflank-mailman (input) for mailman id 960119;
 Sat, 19 Apr 2025 22:13: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=nqik=XF=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1u6GRE-0004oZ-G7
 for xen-devel@lists.xenproject.org; Sat, 19 Apr 2025 22:13:28 +0000
Received: from sender4-of-o50.zoho.com (sender4-of-o50.zoho.com
 [136.143.188.50]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 83493424-1d6b-11f0-9ffb-bf95429c2676;
 Sun, 20 Apr 2025 00:13:26 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 174510056489920.502879948931422;
 Sat, 19 Apr 2025 15:09: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: 83493424-1d6b-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; t=1745100568; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=fQHCS4QPnpOILamjvaebZDeR8BHGW0ULo0rQJo3rxIqb4MkyDCZ+n3iUIxxuiH/e/7E/62Qf9G5SQ1RlEFjnbJdMOphQQyexKUiL0u7boabOHPsT2RAufl/xXKDAuFxCoZJNbqNxkm3jYkDekGQOl2wcP07FiHDWHoF69cf687s=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1745100568; 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=9J5GpuQpFoOEieUW2L0AylJvJrVRYTI0FgGOBBazw64=; 
	b=mZgHBox8c7XDqYwt+pOI+4q6yiZO1cIuQh86w89fhSNAmU3Gqta0CXccH+hzK7dx/4o02HpOMpXKPqt90HDearHeTdHULzAXiF92tnuqhpi54ZU0kCHOxl/ehDA6YXtD+4oNOI0U/BQ59gUXlJQaCvF3oCm7Nx74BtxRSpF8kxI=
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=1745100568;
	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=9J5GpuQpFoOEieUW2L0AylJvJrVRYTI0FgGOBBazw64=;
	b=SyqHYQcvV0xRaOfXBsErvSiGPB+ge32s7BbiKW0b9/hC7YytSM+Js9VNS6BSjLvB
	Yem6rP0Ym/oX2qUdqLH7KuungAjcHwGR5DTrEOrEJpTVGW4aEiuMUZeSvzoc6lybPZD
	X8eqZouVTojr+QsglPPWUcg7BZoQkmMWfaiJCpqU=
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
To: xen-devel@lists.xenproject.org
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	jason.andryuk@amd.com,
	stefano.stabellini@amd.com,
	agarciav@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: [RFC 32/38] x86/hyperlaunch: introduce concept of core domains
Date: Sat, 19 Apr 2025 18:08:14 -0400
Message-Id: <20250419220820.4234-33-dpsmith@apertussolutions.com>
X-Mailer: git-send-email 2.30.2
In-Reply-To: <20250419220820.4234-1-dpsmith@apertussolutions.com>
References: <20250419220820.4234-1-dpsmith@apertussolutions.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

When constructing domU, and specifically the event channels for their console
and xenstore event channels, the domid for the backing domain must be known.
Therefore, the control, hardware, and xenstore domains are deemed as core
domains, and must be constructed before any of the other domains.

This commit introduces the build_core_domains() function that will ensure the
core domains are constructed first.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
---
 xen/arch/x86/domain-builder/core.c     | 68 ++++++++++++++++++++++++--
 xen/arch/x86/include/asm/boot-domain.h |  2 +
 2 files changed, 66 insertions(+), 4 deletions(-)

diff --git a/xen/arch/x86/domain-builder/core.c b/xen/arch/x86/domain-builder/core.c
index 901efce62a61..f693aa46d278 100644
--- a/xen/arch/x86/domain-builder/core.c
+++ b/xen/arch/x86/domain-builder/core.c
@@ -103,18 +103,78 @@ void __init builder_init(struct boot_info *bi)
     }
 }
 
+static int  __init build_core_domains(struct boot_info *bi)
+{
+    int count = 0;
+    struct boot_domain *bd;
+    int hw, cd, xs;
+
+    cd = first_boot_domain_index(bi, BUILD_CAPS_CONTROL);
+    if ( cd > MAX_NR_BOOTDOMS )
+        printk(XENLOG_WARNING "No control domain was defined\n");
+    else
+    {
+        bd = &bi->domains[cd];
+
+        arch_create_dom(bi, bd);
+        if ( bd->d )
+        {
+            bd->constructed = true;
+            count++;
+        }
+    }
+
+    hw = first_boot_domain_index(bi, BUILD_CAPS_HARDWARE);
+    if ( hw > MAX_NR_BOOTDOMS )
+        printk(XENLOG_WARNING "No hardware domain was defined\n");
+    else
+    {
+        if ( hw != cd )
+        {
+            bd = &bi->domains[hw];
+
+            arch_create_dom(bi, bd);
+            if ( bd->d )
+            {
+                bd->constructed = true;
+                count++;
+            }
+        }
+    }
+
+    xs = first_boot_domain_index(bi, BUILD_CAPS_XENSTORE);
+    if ( xs > MAX_NR_BOOTDOMS )
+        printk(XENLOG_WARNING "No xenstore domain was defined\n");
+    else
+    {
+        if ( xs != cd && xs != hw )
+        {
+            bd = &bi->domains[xs];
+
+            arch_create_dom(bi, bd);
+            if ( bd->d )
+            {
+                bd->constructed = true;
+                count++;
+            }
+        }
+    }
+
+    return count;
+}
+
 unsigned int __init builder_create_domains(struct boot_info *bi)
 {
     unsigned int build_count = 0;
     struct boot_domain *bd = &bi->domains[0];
 
+    if ( bi->nr_domains == 0 )
+        panic("%s: no domains defined\n", __func__);
+
     if ( bd->kernel == NULL && bd->capabilities & BUILD_CAPS_CONTROL )
         panic("%s: control domain missing kernel\n", __func__);
 
-
-    arch_create_dom(bi, bd);
-    if ( bd->d )
-        build_count++;
+    build_count = build_core_domains(bi);
 
     /* Free temporary buffers. */
     free_boot_modules();
diff --git a/xen/arch/x86/include/asm/boot-domain.h b/xen/arch/x86/include/asm/boot-domain.h
index df2bfa0c94fa..a574f4941ed3 100644
--- a/xen/arch/x86/include/asm/boot-domain.h
+++ b/xen/arch/x86/include/asm/boot-domain.h
@@ -42,6 +42,8 @@ struct boot_domain {
         xen_pfn_t gfn;
         evtchn_port_t evtchn;
     } console, store;
+
+    bool constructed;
 };
 
 #endif
-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Sat Apr 19 22:13:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 19 Apr 2025 22:13:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.960124.1352233 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6GRM-0005wP-Jm; Sat, 19 Apr 2025 22:13:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 960124.1352233; Sat, 19 Apr 2025 22: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 1u6GRM-0005vl-Gq; Sat, 19 Apr 2025 22:13:36 +0000
Received: by outflank-mailman (input) for mailman id 960124;
 Sat, 19 Apr 2025 22:13: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=nqik=XF=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1u6GRL-0004oZ-Sp
 for xen-devel@lists.xenproject.org; Sat, 19 Apr 2025 22:13:35 +0000
Received: from sender4-of-o50.zoho.com (sender4-of-o50.zoho.com
 [136.143.188.50]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 87e8e708-1d6b-11f0-9ffb-bf95429c2676;
 Sun, 20 Apr 2025 00:13:34 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 1745100564099317.7051324884495;
 Sat, 19 Apr 2025 15:09: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: 87e8e708-1d6b-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; t=1745100571; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=ACFX41L7aYz26PiP6maGudGgR0vSKrM9BZh+cxVP9DokHpRGb11saJoTLwY+riTWZ/3lttDGtj7Wee23bsfMaDKHb0JGfHDONCkjT032rem08ghPN0yryofM8YO5+fyfizxgCNwPSNf0eyDUqqFaj5vt+PuAxN7PD687bNtBlZE=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1745100571; 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=DQEG8mIjNUEnBFfKy/NUA5oCT0cynfg6veEbEk7wCvA=; 
	b=XtRj1fE1S+3oSdcgO5sH9TkC3OSk/HLsOc3XQ/jaunuJMdvyodkphu6hYBTVtz8ZH7f1JuPXctBW99t15Kt0uH8ERrqZZNJ1V8fV9kpgoiKcpUWuStXO8/SEIeOGXMRM/t8tQIfn+ymn3ZERFQxXsfreG97RobxlZsKdJBxRDz8=
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=1745100571;
	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=DQEG8mIjNUEnBFfKy/NUA5oCT0cynfg6veEbEk7wCvA=;
	b=apSo9iKutTJzbuPWj4NB1FYsAQ7yfqohRdp8HQDepjzF4aMhbD29Ybf1h/xFpRw0
	YBfP0sXkt7YcQruh9mriCb94Na9C+II3wZ+aeFhmuaJp0svyN79WZ/2vj8ofN2UUzQl
	1m4jKFpQbMlvhDHeqFbQc+xez9nludp0Ysaj8UWw=
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
To: xen-devel@lists.xenproject.org
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	jason.andryuk@amd.com,
	stefano.stabellini@amd.com,
	agarciav@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: [RFC 31/38] x86/hyperlaunch: move boot module discard to domain builder
Date: Sat, 19 Apr 2025 18:08:13 -0400
Message-Id: <20250419220820.4234-32-dpsmith@apertussolutions.com>
X-Mailer: git-send-email 2.30.2
In-Reply-To: <20250419220820.4234-1-dpsmith@apertussolutions.com>
References: <20250419220820.4234-1-dpsmith@apertussolutions.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

Relocate the call to discard boot modules from inside the domain
construction logic to the top level domain builder. This will
ensure modules are not discarded until after all domains have been
constructed.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
---
 xen/arch/x86/domain-builder/core.c | 5 ++++-
 xen/arch/x86/hvm/dom_build.c       | 3 ---
 xen/arch/x86/pv/dom0_build.c       | 3 ---
 3 files changed, 4 insertions(+), 7 deletions(-)

diff --git a/xen/arch/x86/domain-builder/core.c b/xen/arch/x86/domain-builder/core.c
index e21f5efbfe62..901efce62a61 100644
--- a/xen/arch/x86/domain-builder/core.c
+++ b/xen/arch/x86/domain-builder/core.c
@@ -8,8 +8,8 @@
 #include <xen/lib.h>
 
 #include <asm/bootinfo.h>
-#include <asm/setup.h>
 #include <asm/domain-builder.h>
+#include <asm/setup.h>
 
 #include "fdt.h"
 
@@ -116,6 +116,9 @@ unsigned int __init builder_create_domains(struct boot_info *bi)
     if ( bd->d )
         build_count++;
 
+    /* Free temporary buffers. */
+    free_boot_modules();
+
     return build_count;
 }
 
diff --git a/xen/arch/x86/hvm/dom_build.c b/xen/arch/x86/hvm/dom_build.c
index 2798542e5483..a847c2cb16d9 100644
--- a/xen/arch/x86/hvm/dom_build.c
+++ b/xen/arch/x86/hvm/dom_build.c
@@ -854,9 +854,6 @@ static int __init pvh_load_kernel(
         last_addr = ROUNDUP(last_addr, PAGE_SIZE);
     }
 
-    /* Free temporary buffers. */
-    free_boot_modules();
-
     if ( bd->cmdline )
     {
         rc = hvm_copy_to_guest_phys(last_addr, bd->cmdline,
diff --git a/xen/arch/x86/pv/dom0_build.c b/xen/arch/x86/pv/dom0_build.c
index c3d269438313..8d941ff4486e 100644
--- a/xen/arch/x86/pv/dom0_build.c
+++ b/xen/arch/x86/pv/dom0_build.c
@@ -865,9 +865,6 @@ static int __init dom0_construct(struct boot_domain *bd)
         init_hypercall_page(d, _p(parms.virt_hypercall));
     }
 
-    /* Free temporary buffers. */
-    free_boot_modules();
-
     /* Set up start info area. */
     si = (start_info_t *)vstartinfo_start;
     clear_page(si);
-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Sat Apr 19 22:20:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 19 Apr 2025 22:20:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.960170.1352243 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6GYG-0008Sm-Ay; Sat, 19 Apr 2025 22:20:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 960170.1352243; Sat, 19 Apr 2025 22:20:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6GYG-0008Sf-7R; Sat, 19 Apr 2025 22:20:44 +0000
Received: by outflank-mailman (input) for mailman id 960170;
 Sat, 19 Apr 2025 22:20: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=nqik=XF=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1u6GS9-0004yY-N3
 for xen-devel@lists.xenproject.org; Sat, 19 Apr 2025 22:14:25 +0000
Received: from sender4-of-o50.zoho.com (sender4-of-o50.zoho.com
 [136.143.188.50]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a5cfaf31-1d6b-11f0-9eb0-5ba50f476ded;
 Sun, 20 Apr 2025 00:14:24 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 1745100570220786.7371535034937;
 Sat, 19 Apr 2025 15:09: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: a5cfaf31-1d6b-11f0-9eb0-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; t=1745100572; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=Pbv10S9WnTZ728F1uAkJV3EI27pZQXQ+wuyS6pOvbgC8d2OUr3xCl+I8fOFRRDHNJDYeuj0hvvuCr2/DvNZAV5VgBiHIAO9kLr2+kSDUgk6RzFa267B+gYRsD2L8dDIdS8Hac7MaRrFCoVuB0lERQcBAheR/8c8DsFaF7iQ0wR0=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1745100572; 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=Mw5Odp6bgq0ypnGyk6hZln2JaXDA/NCzGFeI/Jyp6zU=; 
	b=HAbKuS0Af1UZxqbyrvMGTwwx50w0oTFI0ZMwCJt7CGq8ljmnbPH7xhU9W0m/Ukwd6MCICNFBj9AG6orrF0f28cF8E+1/remIP6TKD5uKqfHM7fsDvXfcy8nq7Muiy/Udtr1vq9nQFxZn63w4h5lLqpCH3+KWoXnPmgxY9mr3FNY=
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=1745100572;
	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=Mw5Odp6bgq0ypnGyk6hZln2JaXDA/NCzGFeI/Jyp6zU=;
	b=dd9n/ghF1ifEzSqBz/wWn3kZjJ+UQyc9qwzkpiuKTLeqX8KvaR2g2ottWuqb3iCy
	CXmebl4tFVTjWSbmsFuweB4s4m7kk1f4RAXu+yoshMPWUOU+MZiKdTTziWvuOItJdyE
	vRJ/Ph1qeBti0OIAD6lCiUrZ3lQTM0hdxCtTIAAs=
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
To: xen-devel@lists.xenproject.org
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	jason.andryuk@amd.com,
	stefano.stabellini@amd.com,
	agarciav@amd.com,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [RFC 38/38] tools: introduce hyperlaunch domain late init
Date: Sat, 19 Apr 2025 18:08:20 -0400
Message-Id: <20250419220820.4234-39-dpsmith@apertussolutions.com>
X-Mailer: git-send-email 2.30.2
In-Reply-To: <20250419220820.4234-1-dpsmith@apertussolutions.com>
References: <20250419220820.4234-1-dpsmith@apertussolutions.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

The late domain init helper is a helper tool for late setup of Xenstore for a
domain that was created by the hypervisor using hyperlaunch.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
---
 .gitignore                        |   1 +
 tools/helpers/Makefile            |  12 +
 tools/helpers/late-init-domains.c | 364 ++++++++++++++++++++++++++++++
 tools/helpers/late-init-domains.h |  18 ++
 tools/helpers/xs-helpers.c        | 117 ++++++++++
 tools/helpers/xs-helpers.h        |  26 +++
 6 files changed, 538 insertions(+)
 create mode 100644 tools/helpers/late-init-domains.c
 create mode 100644 tools/helpers/late-init-domains.h
 create mode 100644 tools/helpers/xs-helpers.c
 create mode 100644 tools/helpers/xs-helpers.h

diff --git a/.gitignore b/.gitignore
index 53f5df000383..7b0c390dbe0d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -122,6 +122,7 @@ tools/flask/utils/flask-label-pci
 tools/helpers/init-dom0less
 tools/helpers/init-xenstore-domain
 tools/helpers/xen-init-dom0
+tools/helpers/late-init-domains
 tools/hotplug/common/hotplugpath.sh
 tools/hotplug/FreeBSD/rc.d/xencommons
 tools/hotplug/FreeBSD/rc.d/xendriverdomain
diff --git a/tools/helpers/Makefile b/tools/helpers/Makefile
index 09590eb5b6f0..26fa079e8b1f 100644
--- a/tools/helpers/Makefile
+++ b/tools/helpers/Makefile
@@ -14,6 +14,7 @@ ifeq ($(CONFIG_ARM),y)
 TARGETS += init-dom0less
 endif
 endif
+TARGETS += late-init-domains
 
 XEN_INIT_DOM0_OBJS = xen-init-dom0.o init-dom-json.o
 $(XEN_INIT_DOM0_OBJS): CFLAGS += $(CFLAGS_libxentoollog)
@@ -39,6 +40,14 @@ $(INIT_DOM0LESS_OBJS): CFLAGS += $(CFLAGS_libxenctrl)
 $(INIT_DOM0LESS_OBJS): CFLAGS += $(CFLAGS_libxenevtchn)
 init-dom0less: LDLIBS += $(call xenlibs-ldlibs,ctrl evtchn toollog store light guest foreignmemory)
 
+LATE_INIT_DOMAINS_OBJS = late-init-domains.o xs-helpers.o init-dom-json.o
+$(LATE_INIT_DOMAINS_OBJS): CFLAGS += $(CFLAGS_libxentoollog)
+$(LATE_INIT_DOMAINS_OBJS): CFLAGS += $(CFLAGS_libxenguest)
+$(LATE_INIT_DOMAINS_OBJS): CFLAGS += $(CFLAGS_libxenlight)
+$(LATE_INIT_DOMAINS_OBJS): CFLAGS += $(CFLAGS_libxenctrl)
+$(LATE_INIT_DOMAINS_OBJS): CFLAGS += $(CFLAGS_libxenstore)
+late-init-domains: LDLIBS += $(call xenlibs-ldlibs,ctrl toollog store light guest)
+
 .PHONY: all
 all: $(TARGETS)
 
@@ -51,6 +60,9 @@ init-xenstore-domain: $(INIT_XENSTORE_DOMAIN_OBJS)
 init-dom0less: $(INIT_DOM0LESS_OBJS)
 	$(CC) $(LDFLAGS) -o $@ $(INIT_DOM0LESS_OBJS) $(LDLIBS) $(APPEND_LDFLAGS)
 
+late-init-domains: $(LATE_INIT_DOMAINS_OBJS)
+	$(CC) $(LDFLAGS) -o $@ $(LATE_INIT_DOMAINS_OBJS) $(LDLIBS)  $(APPEND_LDFLAGS)
+
 .PHONY: install
 install: all
 	$(INSTALL_DIR) $(DESTDIR)$(LIBEXEC_BIN)
diff --git a/tools/helpers/late-init-domains.c b/tools/helpers/late-init-domains.c
new file mode 100644
index 000000000000..06911d2e93d1
--- /dev/null
+++ b/tools/helpers/late-init-domains.c
@@ -0,0 +1,364 @@
+
+#include <errno.h>
+#include <getopt.h>
+#include <inttypes.h>
+#include <libxl.h>
+#include <stdio.h>
+#include <string.h>
+#include <stdint.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <xenctrl.h>
+#include <xenguest.h>
+#include <xenstore.h>
+#include <xentoollog.h>
+#include <xen/io/xenbus.h>
+
+#include "init-dom-json.h"
+#include "late-init-domains.h"
+#include "xs-helpers.h"
+
+static struct option options[] = {
+    { "console", 0, NULL, 'c' },
+    { "xenstore", 1, NULL, 'x' },
+    { "force", 0, NULL, 'f' },
+    { "verbose", 0, NULL, 'v' },
+    { "help", 0, NULL, 'h' },
+    { NULL, 0, NULL, 0 }
+};
+
+static void usage(void)
+{
+    fprintf(stderr,
+"Usage:\n"
+"\n"
+"late-init-domains <options>\n"
+"\n"
+"where options may include:\n"
+"\n"
+"  --console <con domid>    configure the console\n"
+"  --xenstore <xs domid>    domain id of the xenstore domain\n"
+"  --force                  force domain introduction even if xenstore entries exist\n"
+"  -v[v[v]]                 verbosity constructing xenstore tree\n"
+"  --help                   help message\n");
+}
+
+#define XS_DOM_PERM(x, d, k, v)                                             \
+    ret = do_xs_write_dom_with_perm(x, d, k, v, perms, num_perms);          \
+    if ( ret != 0 ) return ret                                              \
+
+#define XS_DIR_PERM(x, p, k, v)                                             \
+    ret = do_xs_write_dir_node_with_perm(x, p, k, v, perms, num_perms);     \
+    if ( ret != 0 ) return ret                                              \
+
+static int pages_from_hvm_params(
+    struct xc_interface_core *xch, libxl_dominfo *info,
+    struct system_pages *pgs)
+{
+    int ret;
+    domid_t domid = info->domid;
+
+    ret = xc_hvm_param_get(xch, domid, HVM_PARAM_STORE_EVTCHN,
+                           &pgs->store.evtchn);
+    if (ret != 0) {
+        fprintf(stderr, "err: failed to get dom%d store evtchn\n", domid);
+        return ret;
+    }
+
+    ret = xc_hvm_param_get(xch, domid, HVM_PARAM_STORE_PFN,
+                           &pgs->store.pfn);
+    if (ret < 0) {
+        fprintf(stderr, "err: failed to get dom%d store pfn\n", domid);
+        return ret;
+    }
+
+    if ( pgs->console.enabled )
+    {
+        ret = xc_hvm_param_get(xch, domid, HVM_PARAM_CONSOLE_EVTCHN,
+                              &pgs->console.evtchn);
+        if (ret != 0) {
+            fprintf(stderr, "warn: console for dom%d not configured\n", domid);
+            pgs->console.evtchn = pgs->console.pfn = 0;
+            return 0;
+        }
+
+        ret = xc_hvm_param_get(xch, domid, HVM_PARAM_CONSOLE_PFN,
+                               &pgs->console.pfn);
+        if (ret < 0) {
+            fprintf(stderr, "warn: console for dom%d not configured\n", domid);
+            pgs->console.evtchn = pgs->console.pfn = 0;
+            return 0;
+        }
+    }
+
+    return 0;
+}
+
+static int create_xs_entries(
+    struct xs_handle *xsh, struct system_pages *pgs, libxl_dominfo *di)
+{
+    char path[128], value[16];
+    struct xs_permissions perms[2] = {
+        {.id = pgs->store.be_domid, .perms = XS_PERM_NONE},
+        {.id = di->domid, .perms = XS_PERM_READ},
+    };
+    uint32_t num_perms = (sizeof(perms) / sizeof((perms)[0]));
+    int ret = 0;
+
+    while ( do_xs_start_transaction(xsh) == 0 )
+    {
+        XS_DOM_PERM(xsh, di->domid, "", "");
+
+        snprintf(value, 16, "%d", di->domid);
+        XS_DOM_PERM(xsh, di->domid, "domid", value);
+
+        XS_DOM_PERM(xsh, di->domid, "memory", "");
+        snprintf(value, 16, "%" PRIu64, di->current_memkb);
+        XS_DOM_PERM(xsh, di->domid, "memory/target", value);
+
+        snprintf(value, 16, "%" PRIu64, di->max_memkb);
+        XS_DOM_PERM(xsh, di->domid, "memory/static-max", value);
+
+        XS_DOM_PERM(xsh, di->domid, "store", "");
+        snprintf(value, 16, "%" PRIu64, pgs->store.evtchn);
+        XS_DOM_PERM(xsh, di->domid, "store/port", value);
+
+        snprintf(value, 16, "%" PRIu64, pgs->store.pfn);
+        XS_DOM_PERM(xsh, di->domid, "store/ring-ref", value);
+
+        if ( pgs->console.enabled && pgs->console.evtchn )
+        {
+            char be_path[64], fe_path[64];
+
+            snprintf(fe_path, 64, "/local/domain/%d/console", di->domid);
+            snprintf(be_path, 64, "/local/domain/%d/backend/console/%d/0",
+                     pgs->console.be_domid, di->domid);
+
+            /* Backend entries */
+            XS_DIR_PERM(xsh, be_path, "", "");
+            snprintf(value, 16, "%d", di->domid);
+            XS_DIR_PERM(xsh, be_path, "frontend-id", value);
+            XS_DIR_PERM(xsh, be_path, "frontend", fe_path);
+            XS_DIR_PERM(xsh, be_path, "online", "1");
+            XS_DIR_PERM(xsh, be_path, "protocol", "vt100");
+
+            snprintf(value, 16, "%d", XenbusStateInitialising);
+            XS_DIR_PERM(xsh, be_path, "state", value);
+
+            /* Frontend entries */
+            XS_DOM_PERM(xsh, di->domid, "console", "");
+            snprintf(value, 16, "%d", pgs->console.be_domid);
+            XS_DIR_PERM(xsh, fe_path, "backend", be_path);
+            XS_DIR_PERM(xsh, fe_path, "backend-id", value);
+            XS_DIR_PERM(xsh, fe_path, "limit", "1048576");
+            XS_DIR_PERM(xsh, fe_path, "type", "xenconsoled");
+            XS_DIR_PERM(xsh, fe_path, "output", "pty");
+            XS_DIR_PERM(xsh, fe_path, "tty", "");
+
+            snprintf(value, 16, "%" PRIu64, pgs->console.evtchn);
+            XS_DIR_PERM(xsh, fe_path, "port", value);
+
+            snprintf(value, 16, "%" PRIu64, pgs->console.pfn);
+            XS_DIR_PERM(xsh, fe_path, "ring-ref", value);
+
+        }
+
+        snprintf(path, 128, "/libxl/%u", di->domid);
+        switch ( di->domain_type )
+        {
+        case LIBXL_DOMAIN_TYPE_PV:
+            XS_DIR_PERM(xsh, path, "type", "pv");
+            break;
+        case LIBXL_DOMAIN_TYPE_PVH:
+            XS_DIR_PERM(xsh, path, "type", "pvh");
+            break;
+        case LIBXL_DOMAIN_TYPE_HVM:
+            XS_DIR_PERM(xsh, path, "type", "hvm");
+            break;
+        default:
+            break;
+        }
+
+        ret = do_xs_end_transaction(xsh);
+        switch ( ret )
+        {
+        case 0:
+            break; /* proceed to loop break */
+        case -EAGAIN:
+            continue; /* try again */
+        default:
+            return ret; /* failed */
+        }
+
+        break;
+    }
+
+    return ret;
+}
+
+static bool init_domain(
+    struct xc_interface_core *xch, struct xs_handle *xsh,
+    struct system_pages *pgs, libxl_dominfo *di)
+{
+    xen_pfn_t con_pfn = 0L;
+    /*xc_dom_gnttab_seed will do nothing if front == back */
+    uint32_t con_domid = di->domid;
+    bool is_hvm = (di->domain_type == LIBXL_DOMAIN_TYPE_HVM ||
+                   di->domain_type == LIBXL_DOMAIN_TYPE_PVH);
+    int ret;
+
+    if ( (ret = pages_from_hvm_params(xch, di, pgs)) != 0 )
+    {
+        fprintf(stderr, "error(%d): unable to fetch dom%d system pages\n", ret,
+                di->domid);
+        return false;
+    }
+
+    if ( pgs->console.enabled && pgs->console.evtchn )
+    {
+        con_domid = pgs->console.be_domid;
+        con_pfn = pgs->console.pfn;
+    }
+
+    ret = xc_dom_gnttab_seed(xch, di->domid, is_hvm, con_pfn,
+            pgs->store.pfn, con_domid, pgs->store.be_domid);
+    if ( ret != 0 )
+    {
+        fprintf(stderr, "error (%d) setting up grant tables for dom%d\n",
+                ret, di->domid);
+        return false;
+    }
+
+    libxl_uuid_generate(&di->uuid);
+    xc_domain_sethandle(xch, di->domid,
+                        libxl_uuid_bytearray(&di->uuid));
+
+    if ( (ret = gen_stub_json_config(di->domid, &di->uuid)) != 0 )
+        fprintf(stderr, "warn(%d): unable generate dom%d json stub\n", ret,
+                di->domid);
+
+    if ( (ret = create_xs_entries(xsh, pgs, di)) != 0 )
+    {
+        fprintf(stderr, "error(%d): unable create dom%d xenstore entries\n",
+                ret, di->domid);
+        return false;
+    }
+
+    if ( !xs_introduce_domain(xsh, di->domid, pgs->store.pfn,
+                              pgs->store.evtchn) )
+    {
+        fprintf(stderr, "error introducing dom%d\n", di->domid);
+        return false;
+    }
+
+    return true;
+}
+
+int main(int argc, char** argv)
+{
+    int opt, ret, i, nb_vm = 0, count = 0;
+    bool force = false;
+    struct xs_handle *xsh = NULL;
+    struct xc_interface_core *xch = NULL;
+    xentoollog_level minmsglevel = XTL_PROGRESS;
+    xentoollog_logger *logger = NULL;
+    libxl_dominfo *info = NULL;
+    libxl_ctx *ctx;
+    struct system_pages pages = { {0} };
+
+    while ( (opt = getopt_long(argc, argv, "c:x:fv", options, NULL)) != -1 )
+    {
+        switch ( opt )
+        {
+        case 'c':
+            pages.console.be_domid = strtol(optarg, NULL, 10);
+            pages.console.enabled = true;
+            break;
+        case 'x':
+            pages.store.be_domid = strtol(optarg, NULL, 10);
+            break;
+        case 'f':
+            force = true;
+            break;
+        case 'v':
+            if ( minmsglevel > 1 )
+                minmsglevel--;
+            break;
+        case 'h':
+            usage();
+            return 0;
+        default:
+            usage();
+            return 2;
+        }
+    }
+
+    if ( optind != argc )
+    {
+        usage();
+        return 1;
+    }
+
+    logger = (xentoollog_logger *)xtl_createlogger_stdiostream(stderr,
+                                                               minmsglevel, 0);
+
+    xsh = xs_open(0);
+    xch = xc_interface_open(0, 0, 0);
+    if ( xsh == NULL || xch == NULL )
+    {
+        fprintf(stderr, "error: unable to connect to xs and/or xc interface\n");
+        ret = 1;
+        goto out;
+    }
+
+    ret = libxl_ctx_alloc(&ctx, LIBXL_VERSION, 0, NULL);
+    if (ret) {
+        fprintf(stderr, "cannot init xl context\n");
+        goto out;
+    }
+
+    info = libxl_list_domain(ctx, &nb_vm);
+    if (!info) {
+        fprintf(stderr, "libxl_list_vm failed.\n");
+        ret = 1;
+        goto out;
+    }
+
+    for (i = 0; i < nb_vm; i++) {
+        domid_t domid = info[i].domid;
+
+        /* Don't need to check for Dom0 */
+        if (!domid)
+            continue;
+
+        if ( xs_is_domain_introduced(xsh, domid) )
+        {
+            if ( !force )
+                continue;
+
+            fprintf(stderr, "warning: re-introducting domain %d\n", domid);
+        }
+
+        if ( init_domain(xch, xsh, &pages, &info[i]) )
+            count++;
+    }
+
+    printf("initialized %d out of %d domains\n", count, nb_vm);
+
+    ret = 0;
+
+out:
+    if ( info )
+        libxl_dominfo_list_free(info, nb_vm);
+
+    if ( xsh )
+        xs_close(xsh);
+
+    if ( xch )
+        xc_interface_close(xch);
+
+    if ( logger )
+        xtl_logger_destroy(logger);
+
+    return ret;
+}
diff --git a/tools/helpers/late-init-domains.h b/tools/helpers/late-init-domains.h
new file mode 100644
index 000000000000..8d071ef82ea0
--- /dev/null
+++ b/tools/helpers/late-init-domains.h
@@ -0,0 +1,18 @@
+#ifndef __LATE_INIT_PV_H
+#define __LATE_INIT_PV_H
+
+struct system_pages {
+    struct {
+        uint16_t be_domid;
+        uint64_t evtchn;
+        uint64_t pfn;
+    } store;
+    struct {
+        bool enabled;
+        uint16_t be_domid;
+        uint64_t evtchn;
+        uint64_t pfn;
+    } console;
+};
+
+#endif
diff --git a/tools/helpers/xs-helpers.c b/tools/helpers/xs-helpers.c
new file mode 100644
index 000000000000..a4d2bebbbd54
--- /dev/null
+++ b/tools/helpers/xs-helpers.c
@@ -0,0 +1,117 @@
+
+#include <err.h>
+#include <stdio.h>
+#include <string.h>
+#include <xenstore.h>
+
+#define MAX_XS_PAATH 100
+
+static xs_transaction_t t_id = XBT_NULL;
+
+int do_xs_start_transaction(struct xs_handle *xsh)
+{
+    t_id = xs_transaction_start(xsh);
+    if (t_id == XBT_NULL)
+        return -errno;
+
+    return 0;
+}
+
+int do_xs_end_transaction(struct xs_handle *xsh)
+{
+    if ( t_id == XBT_NULL )
+        return -EINVAL;
+
+    if (!xs_transaction_end(xsh, t_id, false))
+        return -errno;
+
+    return 0;
+}
+
+int do_xs_write(struct xs_handle *xsh, char *path, char *val)
+{
+    if ( !xs_write(xsh, t_id, path, val, strlen(val)) )
+    {
+        fprintf(stderr, "failed write: %s\n", path);
+        return -errno;
+    }
+
+    return 0;
+}
+
+int do_xs_perms(
+    struct xs_handle *xsh, char *path, struct xs_permissions *perms,
+    uint32_t num_perms)
+{
+    if ( !xs_set_permissions(xsh, t_id, path, perms, num_perms) )
+    {
+        fprintf(stderr, "failed set perm: %s\n", path);
+        return -errno;
+    }
+
+    return 0;
+}
+
+int do_xs_write_dir_node_with_perm(
+    struct xs_handle *xsh, char *dir, char *node, char *val,
+    struct xs_permissions *perms, uint32_t num_perms)
+{
+    char full_path[MAX_XS_PAATH];
+    int ret = 0;
+
+    /*
+     * mainly for creating a value holding node, but
+     * also support creating directory nodes.
+     */
+    if ( strlen(node) != 0 )
+        snprintf(full_path, MAX_XS_PAATH, "%s/%s", dir, node);
+    else
+        snprintf(full_path, MAX_XS_PAATH, "%s", dir);
+
+    ret = do_xs_write(xsh, full_path, val);
+    if ( ret < 0 )
+        return ret;
+
+    if ( perms != NULL && num_perms > 0 )
+        ret = do_xs_perms(xsh, full_path, perms, num_perms);
+
+    return ret;
+}
+
+int do_xs_write_dir_node(
+    struct xs_handle *xsh, char *dir, char *node, char *val)
+{
+    return do_xs_write_dir_node_with_perm(xsh, dir, node, val, NULL, 0);
+}
+
+int do_xs_write_dom_with_perm(
+    struct xs_handle *xsh, uint32_t domid, char *path, char *val,
+    struct xs_permissions *perms, uint32_t num_perms)
+{
+    char full_path[MAX_XS_PAATH];
+    int ret = 0;
+
+    /*
+     * mainly for creating a value holding node, but
+     * also support creating directory nodes.
+     */
+    if ( strlen(path) != 0 )
+        snprintf(full_path, MAX_XS_PAATH, "/local/domain/%d/%s", domid, path);
+    else
+        snprintf(full_path, MAX_XS_PAATH, "/local/domain/%d", domid);
+
+    ret = do_xs_write(xsh, full_path, val);
+    if ( ret < 0 )
+        return ret;
+
+    if ( perms != NULL && num_perms > 0 )
+        ret = do_xs_perms(xsh, full_path, perms, num_perms);
+
+    return ret;
+}
+
+int do_xs_write_dom(
+    struct xs_handle *xsh, uint32_t domid, char *path, char *val)
+{
+    return do_xs_write_dom_with_perm(xsh, domid, path, val, NULL, 0);
+}
diff --git a/tools/helpers/xs-helpers.h b/tools/helpers/xs-helpers.h
new file mode 100644
index 000000000000..89585637d4bb
--- /dev/null
+++ b/tools/helpers/xs-helpers.h
@@ -0,0 +1,26 @@
+#ifndef __XS_HELPERS_H
+#define __XS_HELPERS_H
+
+#include <xenstore.h>
+
+int do_xs_start_transaction(struct xs_handle *xsh);
+int do_xs_end_transaction(struct xs_handle *xsh);
+
+int do_xs_write(struct xs_handle *xsh, char *path, char *val);
+int do_xs_perms(
+    struct xs_handle *xsh, char *path, struct xs_permissions *perms,
+    uint32_t num_perms);
+
+int do_xs_write_dir_node_with_perm(
+    struct xs_handle *xsh, char *dir, char *node, char *val,
+    struct xs_permissions *perms, uint32_t num_perms);
+int do_xs_write_dir_node(
+    struct xs_handle *xsh, char *dir, char *node, char *val);
+
+int do_xs_write_dom_with_perm(
+    struct xs_handle *xsh, uint32_t domid, char *path, char *val,
+    struct xs_permissions *perms, uint32_t num_perms);
+int do_xs_write_dom(
+    struct xs_handle *xsh, uint32_t domid, char *path, char *val);
+
+#endif
-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Sat Apr 19 22:20:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 19 Apr 2025 22:20:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.960172.1352252 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6GYM-0000KF-JX; Sat, 19 Apr 2025 22:20:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 960172.1352252; Sat, 19 Apr 2025 22:20: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 1u6GYM-0000K6-Gl; Sat, 19 Apr 2025 22:20:50 +0000
Received: by outflank-mailman (input) for mailman id 960172;
 Sat, 19 Apr 2025 22:20: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=nqik=XF=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1u6GQp-0004yY-8Y
 for xen-devel@lists.xenproject.org; Sat, 19 Apr 2025 22:13:03 +0000
Received: from sender4-of-o50.zoho.com (sender4-of-o50.zoho.com
 [136.143.188.50]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 74ecc5bd-1d6b-11f0-9eb0-5ba50f476ded;
 Sun, 20 Apr 2025 00:13:02 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 1745100553667313.49112890011975;
 Sat, 19 Apr 2025 15:09:13 -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: 74ecc5bd-1d6b-11f0-9eb0-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; t=1745100556; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=QzgX0Y8mWmsz+AsIiWp0nfAjtW0zaD5vB/KouKf3Hf/K464Etr0B32nW8ChHLUIXQ+gkP7ESDKwHvCoZ4O4QYeFQFLiKRdsXaS2sZQVrEE1Rc6nS5dsdlYzeP35AuPHLK/+A2tB4ejwEyjck6P6gkwdogo5qxn1crJLU2Tq7Pe8=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1745100556; 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=OMaTtguVsoafCK0lkNIJcl8+/3XaPHmXDwj/NHsEKbc=; 
	b=Hws8dTO1HmPHgoq6VRIpLLm1V3Swu8XS2TR3Zvv8RSHVkoocqdM1HXimczkcegYwG1F5yCkeDgiJyt4P1QbltD2H57Du44+wWBYRHj2ngi7kjeAH9hNB0mdbw5XsSkLYEnBRjTnR8rGouh52lpyh8mw5InyG/QnG0k5Qz6qJjSI=
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=1745100556;
	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=OMaTtguVsoafCK0lkNIJcl8+/3XaPHmXDwj/NHsEKbc=;
	b=N+ctCWMWQA/vKEzT1Kw1DAvVeChBN6YzmEzDbWw7TI8jdlUFpCFBnu77ea2liOOY
	5B2n+bDZQ5UJbmUqKXNZxVavzb9OczjkaH5Vd4YSSRTEWMTSLFLWQQDEdRBFQMpYro+
	Tu+stkeUTiHvlL+uz984k83XwkvfgLRwltcwpW38=
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
To: xen-devel@lists.xenproject.org
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	jason.andryuk@amd.com,
	stefano.stabellini@amd.com,
	agarciav@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: [RFC 29/38] x86/hyperlaunch: allocate console for domu
Date: Sat, 19 Apr 2025 18:08:11 -0400
Message-Id: <20250419220820.4234-30-dpsmith@apertussolutions.com>
X-Mailer: git-send-email 2.30.2
In-Reply-To: <20250419220820.4234-1-dpsmith@apertussolutions.com>
References: <20250419220820.4234-1-dpsmith@apertussolutions.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

During domU construction, a page of memory and an event channel must be setup
for the console connection. In this commit, a page from the special page region
of domU is setup as the console page along with an event channel. The page
address and event channel are published in the HVM parameters, so they may be
published in Xenstore once it is online.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
---
 xen/arch/x86/domain-builder/domain.c   | 56 ++++++++++++++++++++++++++
 xen/arch/x86/hvm/dom_build.c           | 34 ++++++++++++++++
 xen/arch/x86/include/asm/boot-domain.h |  7 ++++
 3 files changed, 97 insertions(+)

diff --git a/xen/arch/x86/domain-builder/domain.c b/xen/arch/x86/domain-builder/domain.c
index c1b2e011aaa0..7ce069a57c5d 100644
--- a/xen/arch/x86/domain-builder/domain.c
+++ b/xen/arch/x86/domain-builder/domain.c
@@ -6,6 +6,7 @@
 #include <xen/cpumask.h>
 #include <xen/domain.h>
 #include <xen/err.h>
+#include <xen/event.h>
 #include <xen/grant_table.h>
 #include <xen/init.h>
 #include <xen/libelf.h>
@@ -187,6 +188,58 @@ void __init alloc_dom_vcpus(struct domain *d)
     domain_update_node_affinity(d);
 }
 
+static int __init alloc_dom_evtchn(
+    const struct boot_domain *d, const struct boot_domain *r,
+    evtchn_alloc_unbound_t *ec)
+{
+    int rc;
+
+    ec->dom = d->domid;
+    ec->remote_dom = r->domid;
+
+    rc = evtchn_alloc_unbound(ec, 0);
+    if ( rc )
+    {
+        printk(XENLOG_WARNING "Failed allocating event channel for %pd\n",
+               d->d);
+        return rc;
+    }
+
+    return 0;
+}
+
+static int __init alloc_console_evtchn(
+    const struct boot_info *bi, struct boot_domain *bd)
+{
+    evtchn_alloc_unbound_t evtchn_req;
+    const struct boot_domain *hwdom;
+    int idx, rc;
+
+    idx = first_boot_domain_index(bi, BUILD_CAPS_HARDWARE);
+    if ( idx < 0 )
+    {
+        printk(XENLOG_WARNING "No backing hardware domain for %pd console\n",
+               bd->d);
+        return -EINVAL;
+    }
+
+    if ( bi->domains[idx].d )
+        hwdom = &bi->domains[idx];
+    else
+    {
+        printk(XENLOG_WARNING "Hardware domain for %pd console not constructed\n",
+               bd->d);
+        return -EINVAL;
+    }
+
+    if ( (rc = alloc_dom_evtchn(bd, hwdom, &evtchn_req)) < 0 )
+        return rc;
+
+    bd->console.evtchn = evtchn_req.port;
+
+    return 0;
+}
+
 static size_t __init domain_cmdline_size(
     struct boot_info *bi, struct boot_domain *bd)
 {
@@ -309,6 +362,9 @@ struct domain *__init arch_create_dom(
         bd->cmdline = cmdline;
     }
 
+   if ( !(bd->capabilities & BUILD_CAPS_HARDWARE) )
+       alloc_console_evtchn(bi, bd);
+
     if ( construct_dom0(bd) != 0 )
         panic("Could not construct domain 0\n");
 
diff --git a/xen/arch/x86/hvm/dom_build.c b/xen/arch/x86/hvm/dom_build.c
index c482d5c2d974..934ae138e58f 100644
--- a/xen/arch/x86/hvm/dom_build.c
+++ b/xen/arch/x86/hvm/dom_build.c
@@ -9,6 +9,7 @@
  */
 
 #include <xen/acpi.h>
+#include <xen/event.h>
 #include <xen/iommu.h>
 #include <xen/init.h>
 #include <xen/softirq.h>
@@ -19,6 +20,7 @@
 #include <public/arch-x86/hvm/start_info.h>
 #include <public/hvm/e820.h>
 #include <public/hvm/hvm_vcpu.h>
+#include <public/hvm/params.h>
 
 #include <asm/bootinfo.h>
 #include <asm/bzimage.h>
@@ -899,6 +901,35 @@ static int __init pvh_load_kernel(
     return 0;
 }
 
+static int __init alloc_console_page(struct boot_domain *bd)
+{
+    paddr_t con_addr = special_pfn(SPECIALPAGE_CONSOLE) << PAGE_SHIFT;
+    uint32_t fields[4] = { 0 };
+
+    if ( !port_is_valid(bd->d, bd->console.evtchn) )
+    {
+        printk("No event channel available for %pd console\n", bd->d);
+        return -EINVAL;
+    }
+
+    /*
+     * Clear the xencons_interface fields that are located after a 1024 rx and
+     * a 2048 tx buffer, 3072 bytes.
+     */
+    if ( hvm_copy_to_guest_phys(con_addr + 3072, fields, sizeof(fields),
+                                bd->d->vcpu[0]) )
+    {
+        printk("Unable to set xenstore connection state\n");
+        return -EFAULT;
+    }
+
+    bd->console.gfn = PFN_DOWN(con_addr);
+    bd->d->arch.hvm.params[HVM_PARAM_CONSOLE_PFN] = bd->console.gfn;
+    bd->d->arch.hvm.params[HVM_PARAM_CONSOLE_EVTCHN] = bd->console.evtchn;
+
+    return 0;
+}
+
 int __init dom_construct_pvh(struct boot_domain *bd)
 {
     paddr_t entry, start_info;
@@ -975,6 +1006,9 @@ int __init dom_construct_pvh(struct boot_domain *bd)
         return rc;
     }
 
+    if ( !is_hardware_domain(bd->d) )
+        alloc_console_page(bd);
+
     if ( opt_dom0_verbose )
     {
         printk("Dom%u memory map:\n", bd->domid);
diff --git a/xen/arch/x86/include/asm/boot-domain.h b/xen/arch/x86/include/asm/boot-domain.h
index 32f1f8fbc4e8..cb6e1fab23ba 100644
--- a/xen/arch/x86/include/asm/boot-domain.h
+++ b/xen/arch/x86/include/asm/boot-domain.h
@@ -5,6 +5,9 @@
  * Copyright (c) 2024 Christopher Clark <christopher.w.clark@gmail.com>
  */
 
+#include <public/xen.h>
+#include <public/event_channel.h>
+
 #ifndef __XEN_X86_BOOTDOMAIN_H__
 #define __XEN_X86_BOOTDOMAIN_H__
 
@@ -35,6 +38,10 @@ struct boot_domain {
     const char *cmdline;
 
     struct domain *d;
+    struct {
+        xen_pfn_t gfn;
+        evtchn_port_t evtchn;
+    } console;
 };
 
 #endif
-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Sat Apr 19 22:20:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 19 Apr 2025 22:20:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.960184.1352263 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6GYU-0000r0-Tg; Sat, 19 Apr 2025 22:20:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 960184.1352263; Sat, 19 Apr 2025 22:20:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6GYU-0000qo-OM; Sat, 19 Apr 2025 22:20:58 +0000
Received: by outflank-mailman (input) for mailman id 960184;
 Sat, 19 Apr 2025 22:20: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=nqik=XF=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1u6GPZ-0007X1-65
 for xen-devel@lists.xenproject.org; Sat, 19 Apr 2025 22:11:45 +0000
Received: from sender4-of-o50.zoho.com (sender4-of-o50.zoho.com
 [136.143.188.50]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 45d07e4d-1d6b-11f0-9ffb-bf95429c2676;
 Sun, 20 Apr 2025 00:11:43 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 1745100547815772.7241650743158;
 Sat, 19 Apr 2025 15:09: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: 45d07e4d-1d6b-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; t=1745100552; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=APvg8aaqEPHAMJdH5bBudnqZmc8jkO/dVkRSffABlNQJvYjcF2pQ5/CbKWcmOAAzcDEV7UVE36MXAxNvjRuqBSfc9qWn1e6Zs71gbRoArxu8fKMlAh82B8slh5nrK1qOEMWGboLhAeLi06pWPyD70x7Z5UB6razcRkX6wTcUzoM=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1745100552; 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=t9+6TFLoyoFwcTN44ZcSyiJ24R2Iz0GpkYNzuDAFngY=; 
	b=CqPczbYcAwiXUsrzYtAsyEbNBKeHu4Jbmnv/jx9bOuQGI7r3361+v9yu3WOXjNAMlmQ7OXqDN8cRjB4720k6/gpFjED0BEaEhLQcRjEi+NmjA7yc13oGmPMwyBuWsi6i0pThrP0kZVuMhY8oS64kI6f8knwCe9S3J3uLr63qG9w=
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=1745100552;
	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=t9+6TFLoyoFwcTN44ZcSyiJ24R2Iz0GpkYNzuDAFngY=;
	b=kTlHIIGcdvRSbG1Wkbdk9VosPZ9pZydpKVpvrDIRZ3ts9JLI98NsLSU2KY1sZ7nH
	YQCIeZB+ApU5VZIWJEXQJyacJJUgcLI62VpB+QpanfC358KX41M5x6CUHDTMOHz2p6q
	T9Im1hnmUdAqVN0wGUM2aiByfISSpAxxJj3/N0RQ=
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
To: xen-devel@lists.xenproject.org
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	jason.andryuk@amd.com,
	stefano.stabellini@amd.com,
	agarciav@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: [RFC 22/38] x86/hyperlaunch: relocate pvh_steal_ram to domain builder
Date: Sat, 19 Apr 2025 18:08:04 -0400
Message-Id: <20250419220820.4234-23-dpsmith@apertussolutions.com>
X-Mailer: git-send-email 2.30.2
In-Reply-To: <20250419220820.4234-1-dpsmith@apertussolutions.com>
References: <20250419220820.4234-1-dpsmith@apertussolutions.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

The function pvh_steal_ram() is not pvh specific and can be used on any HVM
domain. Move to the domain builder and rename to hvm_steal_ram.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
---
 xen/arch/x86/hvm/dom0_build.c             | 106 +++-------------------
 xen/arch/x86/hvm/dom_build.c              |  84 +++++++++++++++++
 xen/arch/x86/include/asm/domain-builder.h |   7 ++
 3 files changed, 102 insertions(+), 95 deletions(-)

diff --git a/xen/arch/x86/hvm/dom0_build.c b/xen/arch/x86/hvm/dom0_build.c
index 23b46ef86c9f..11dfc54f5ab2 100644
--- a/xen/arch/x86/hvm/dom0_build.c
+++ b/xen/arch/x86/hvm/dom0_build.c
@@ -182,90 +182,6 @@ int __init pvh_populate_memory_range(
     return 0;
 }
 
-/* Steal RAM from the end of a memory region. */
-static int __init pvh_steal_ram(struct domain *d, unsigned long size,
-                                unsigned long align, paddr_t limit,
-                                paddr_t *addr)
-{
-    unsigned int i = d->arch.nr_e820;
-
-    /*
-     * Alignment 0 should be set to 1, so it doesn't wrap around in the
-     * calculations below.
-     */
-    align = align ? : 1;
-    while ( i-- )
-    {
-        struct e820entry *entry = &d->arch.e820[i];
-
-        if ( entry->type != E820_RAM || entry->addr + entry->size > limit )
-            continue;
-
-        *addr = (entry->addr + entry->size - size) & ~(align - 1);
-        if ( *addr < entry->addr ||
-             /* Don't steal from the low 1MB due to the copying done there. */
-             *addr < MB(1) )
-            continue;
-
-        entry->size = *addr - entry->addr;
-        return 0;
-    }
-
-    return -ENOMEM;
-}
-
-/* NB: memory map must be sorted at all times for this to work correctly. */
-static int __init pvh_add_mem_range(struct domain *d, uint64_t s, uint64_t e,
-                                    unsigned int type)
-{
-    struct e820entry *map;
-    unsigned int i;
-
-    for ( i = 0; i < d->arch.nr_e820; i++ )
-    {
-        uint64_t rs = d->arch.e820[i].addr;
-        uint64_t re = rs + d->arch.e820[i].size;
-
-        if ( rs == e && d->arch.e820[i].type == type )
-        {
-            d->arch.e820[i].addr = s;
-            return 0;
-        }
-
-        if ( re == s && d->arch.e820[i].type == type &&
-             (i + 1 == d->arch.nr_e820 || d->arch.e820[i + 1].addr >= e) )
-        {
-            d->arch.e820[i].size += e - s;
-            return 0;
-        }
-
-        if ( rs >= e )
-            break;
-
-        if ( re > s )
-            return -EEXIST;
-    }
-
-    map = xzalloc_array(struct e820entry, d->arch.nr_e820 + 1);
-    if ( !map )
-    {
-        printk(XENLOG_WARNING "E820: out of memory to add region\n");
-        return -ENOMEM;
-    }
-
-    memcpy(map, d->arch.e820, i * sizeof(*d->arch.e820));
-    memcpy(map + i + 1, d->arch.e820 + i,
-           (d->arch.nr_e820 - i) * sizeof(*d->arch.e820));
-    map[i].addr = s;
-    map[i].size = e - s;
-    map[i].type = type;
-    xfree(d->arch.e820);
-    d->arch.e820 = map;
-    d->arch.nr_e820++;
-
-    return 0;
-}
-
 static int __init pvh_setup_vmx_realmode_helpers(struct domain *d)
 {
     uint32_t rc, *ident_pt;
@@ -279,14 +195,14 @@ static int __init pvh_setup_vmx_realmode_helpers(struct domain *d)
      * TSS structure (which accounts for the first 104b) doesn't cross
      * a page boundary.
      */
-    if ( !pvh_steal_ram(d, HVM_VM86_TSS_SIZE, 128, GB(4), &gaddr) )
+    if ( !hvm_steal_ram(d, HVM_VM86_TSS_SIZE, 128, GB(4), &gaddr) )
     {
         if ( hvm_copy_to_guest_phys(gaddr, NULL, HVM_VM86_TSS_SIZE, v) !=
              HVMTRANS_okay )
             printk("Unable to zero VM86 TSS area\n");
         d->arch.hvm.params[HVM_PARAM_VM86_TSS_SIZED] =
             VM86_TSS_UPDATED | ((uint64_t)HVM_VM86_TSS_SIZE << 32) | gaddr;
-        if ( pvh_add_mem_range(d, gaddr, gaddr + HVM_VM86_TSS_SIZE,
+        if ( hvm_add_mem_range(d, gaddr, gaddr + HVM_VM86_TSS_SIZE,
                                E820_RESERVED) )
             printk("Unable to set VM86 TSS as reserved in the memory map\n");
     }
@@ -294,7 +210,7 @@ static int __init pvh_setup_vmx_realmode_helpers(struct domain *d)
         printk("Unable to allocate VM86 TSS area\n");
 
     /* Steal some more RAM for the identity page tables. */
-    if ( pvh_steal_ram(d, PAGE_SIZE, PAGE_SIZE, GB(4), &gaddr) )
+    if ( hvm_steal_ram(d, PAGE_SIZE, PAGE_SIZE, GB(4), &gaddr) )
     {
         printk("Unable to find memory to stash the identity page tables\n");
         return -ENOMEM;
@@ -316,7 +232,7 @@ static int __init pvh_setup_vmx_realmode_helpers(struct domain *d)
     unmap_domain_page(ident_pt);
     put_page(mfn_to_page(mfn));
     d->arch.hvm.params[HVM_PARAM_IDENT_PT] = gaddr;
-    if ( pvh_add_mem_range(d, gaddr, gaddr + PAGE_SIZE, E820_RESERVED) )
+    if ( hvm_add_mem_range(d, gaddr, gaddr + PAGE_SIZE, E820_RESERVED) )
             printk("Unable to set identity page tables as reserved in the memory map\n");
 
     return 0;
@@ -581,7 +497,7 @@ static int __init pvh_setup_acpi_madt(struct domain *d, paddr_t *addr)
     madt->header.checksum -= acpi_tb_checksum(ACPI_CAST_PTR(u8, madt), size);
 
     /* Place the new MADT in guest memory space. */
-    if ( pvh_steal_ram(d, size, 0, GB(4), addr) )
+    if ( hvm_steal_ram(d, size, 0, GB(4), addr) )
     {
         printk("Unable to steal guest RAM for MADT\n");
         rc = -ENOMEM;
@@ -589,7 +505,7 @@ static int __init pvh_setup_acpi_madt(struct domain *d, paddr_t *addr)
     }
 
     /* Mark this region as E820_ACPI. */
-    if ( pvh_add_mem_range(d, *addr, *addr + size, E820_ACPI) )
+    if ( hvm_add_mem_range(d, *addr, *addr + size, E820_ACPI) )
         printk("Unable to add MADT region to memory map\n");
 
     rc = hvm_copy_to_guest_phys(*addr, madt, size, d->vcpu[0]);
@@ -769,7 +685,7 @@ static int __init pvh_setup_acpi_xsdt(struct domain *d, paddr_t madt_addr,
     xsdt->header.checksum -= acpi_tb_checksum(ACPI_CAST_PTR(u8, xsdt), size);
 
     /* Place the new XSDT in guest memory space. */
-    if ( pvh_steal_ram(d, size, 0, GB(4), addr) )
+    if ( hvm_steal_ram(d, size, 0, GB(4), addr) )
     {
         printk("Unable to find guest RAM for XSDT\n");
         rc = -ENOMEM;
@@ -777,7 +693,7 @@ static int __init pvh_setup_acpi_xsdt(struct domain *d, paddr_t madt_addr,
     }
 
     /* Mark this region as E820_ACPI. */
-    if ( pvh_add_mem_range(d, *addr, *addr + size, E820_ACPI) )
+    if ( hvm_add_mem_range(d, *addr, *addr + size, E820_ACPI) )
         printk("Unable to add XSDT region to memory map\n");
 
     rc = hvm_copy_to_guest_phys(*addr, xsdt, size, d->vcpu[0]);
@@ -823,7 +739,7 @@ int __init dom0_pvh_setup_acpi(struct domain *d, paddr_t start_info)
         if ( strncmp(sig, ACPI_SIG_MADT, ACPI_NAME_SIZE)
              ? pvh_acpi_table_allowed(sig, addr, size)
              : !acpi_memory_banned(addr, size) )
-             pvh_add_mem_range(d, addr, addr + size, E820_ACPI);
+             hvm_add_mem_range(d, addr, addr + size, E820_ACPI);
     }
 
     /* Identity map ACPI e820 regions. */
@@ -892,14 +808,14 @@ int __init dom0_pvh_setup_acpi(struct domain *d, paddr_t start_info)
      * the native RSDT, and should not be used for the Dom0 kernel's boot
      * purposes (we keep it visible for post boot access).
      */
-    if ( pvh_steal_ram(d, sizeof(rsdp), 0, GB(4), &rsdp_paddr) )
+    if ( hvm_steal_ram(d, sizeof(rsdp), 0, GB(4), &rsdp_paddr) )
     {
         printk("Unable to allocate guest RAM for RSDP\n");
         return -ENOMEM;
     }
 
     /* Mark this region as E820_ACPI. */
-    if ( pvh_add_mem_range(d, rsdp_paddr, rsdp_paddr + sizeof(rsdp),
+    if ( hvm_add_mem_range(d, rsdp_paddr, rsdp_paddr + sizeof(rsdp),
                            E820_ACPI) )
         printk("Unable to add RSDP region to memory map\n");
 
diff --git a/xen/arch/x86/hvm/dom_build.c b/xen/arch/x86/hvm/dom_build.c
index 2e47ca489a71..f997f293f329 100644
--- a/xen/arch/x86/hvm/dom_build.c
+++ b/xen/arch/x86/hvm/dom_build.c
@@ -278,6 +278,38 @@ static int __init hvm_populate_p2m(struct domain *d)
     return 0;
 }
 
+/* Steal RAM from the end of a memory region. */
+int __init hvm_steal_ram(
+    struct domain *d, unsigned long size, unsigned long align, paddr_t limit,
+    paddr_t *addr)
+{
+    unsigned int i = d->arch.nr_e820;
+
+    /*
+     * Alignment 0 should be set to 1, so it doesn't wrap around in the
+     * calculations below.
+     */
+    align = align ? : 1;
+    while ( i-- )
+    {
+        struct e820entry *entry = &d->arch.e820[i];
+
+        if ( entry->type != E820_RAM || entry->addr + entry->size > limit )
+            continue;
+
+        *addr = (entry->addr + entry->size - size) & ~(align - 1);
+        if ( *addr < entry->addr ||
+             /* Don't steal from the low 1MB due to the copying done there. */
+             *addr < MB(1) )
+            continue;
+
+        entry->size = *addr - entry->addr;
+        return 0;
+    }
+
+    return -ENOMEM;
+}
+
 static paddr_t __init find_memory(
     const struct domain *d, const struct elf_binary *elf, size_t size)
 {
@@ -324,6 +356,58 @@ static paddr_t __init find_memory(
     return INVALID_PADDR;
 }
 
+/* NB: memory map must be sorted at all times for this to work correctly. */
+int __init hvm_add_mem_range(
+    struct domain *d, uint64_t s, uint64_t e, unsigned int type)
+{
+    struct e820entry *map;
+    unsigned int i;
+
+    for ( i = 0; i < d->arch.nr_e820; i++ )
+    {
+        uint64_t rs = d->arch.e820[i].addr;
+        uint64_t re = rs + d->arch.e820[i].size;
+
+        if ( rs == e && d->arch.e820[i].type == type )
+        {
+            d->arch.e820[i].addr = s;
+            return 0;
+        }
+
+        if ( re == s && d->arch.e820[i].type == type &&
+             (i + 1 == d->arch.nr_e820 || d->arch.e820[i + 1].addr >= e) )
+        {
+            d->arch.e820[i].size += e - s;
+            return 0;
+        }
+
+        if ( rs >= e )
+            break;
+
+        if ( re > s )
+            return -EEXIST;
+    }
+
+    map = xzalloc_array(struct e820entry, d->arch.nr_e820 + 1);
+    if ( !map )
+    {
+        printk(XENLOG_WARNING "E820: out of memory to add region\n");
+        return -ENOMEM;
+    }
+
+    memcpy(map, d->arch.e820, i * sizeof(*d->arch.e820));
+    memcpy(map + i + 1, d->arch.e820 + i,
+           (d->arch.nr_e820 - i) * sizeof(*d->arch.e820));
+    map[i].addr = s;
+    map[i].size = e - s;
+    map[i].type = type;
+    xfree(d->arch.e820);
+    d->arch.e820 = map;
+    d->arch.nr_e820++;
+
+    return 0;
+}
+
 static bool __init check_load_address(
     const struct domain *d, const struct elf_binary *elf)
 {
diff --git a/xen/arch/x86/include/asm/domain-builder.h b/xen/arch/x86/include/asm/domain-builder.h
index fa6fa60841ab..ee91edc3c4d1 100644
--- a/xen/arch/x86/include/asm/domain-builder.h
+++ b/xen/arch/x86/include/asm/domain-builder.h
@@ -9,10 +9,17 @@ int __init builder_get_cmdline(
 
 void builder_init(struct boot_info *bi);
 
+int hvm_add_mem_range(
+    struct domain *d, uint64_t s, uint64_t e, unsigned int type);
+
 int hvm_setup_cpus(struct domain *d, paddr_t entry, paddr_t start_info);
 int pvh_populate_memory_range(
     struct domain *d, unsigned long start, unsigned long nr_pages);
 
+int hvm_steal_ram(
+    struct domain *d, unsigned long size, unsigned long align, paddr_t limit,
+    paddr_t *addr);
+
 unsigned long dom_paging_pages(
     const struct boot_domain *d, unsigned long nr_pages);
 
-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Sat Apr 19 22:21:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 19 Apr 2025 22:21:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.960191.1352273 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6GYW-00019G-3o; Sat, 19 Apr 2025 22:21:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 960191.1352273; Sat, 19 Apr 2025 22:21:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6GYW-00018O-0D; Sat, 19 Apr 2025 22:21:00 +0000
Received: by outflank-mailman (input) for mailman id 960191;
 Sat, 19 Apr 2025 22:20: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=nqik=XF=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1u6GPH-0004yY-QT
 for xen-devel@lists.xenproject.org; Sat, 19 Apr 2025 22:11:27 +0000
Received: from sender4-of-o50.zoho.com (sender4-of-o50.zoho.com
 [136.143.188.50]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3c1eea24-1d6b-11f0-9eb0-5ba50f476ded;
 Sun, 20 Apr 2025 00:11:27 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 1745100549643175.21812378716868;
 Sat, 19 Apr 2025 15:09: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: 3c1eea24-1d6b-11f0-9eb0-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; t=1745100552; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=mHdh+3MqqcnyJBTJL7QjbHtEFSdv5ayjwpAMfjCK+JmOF4YiVEI3WkihtlD3YZHn4WKJtOhgrkmgpHfq8jS3uEPw/GaPwU/SGDrhKdFg1jg9GUVocvb/+kNefM4bt4jw6TS0VUTuI9ub7bJRFmgQQmkIqaKbaG40zFKYPErXk8Q=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1745100552; 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=3+vB3y16bSnFHLNAnwMQEpUCCQz/0/mLC5HYpt1w0xg=; 
	b=DD7ET5SPHwed/mglO1PIEBMVFCu8+M/Sh7zx9uiX8Br1O/xAP2pH8R1cWBjZxcoSVObuDn57JGfhelGndXsNpY180qQ9vnjEN4gDwtC+fIH4x8QbWEjtqqGXZzn0QibkEY29L8bjjbzaWy102Ed1PVOBvZVn1gS98z0CVop8zoY=
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=1745100552;
	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=3+vB3y16bSnFHLNAnwMQEpUCCQz/0/mLC5HYpt1w0xg=;
	b=q8cW+vRRPlYjWE78ZG08qDeDuiFpTehb90CG7MDGWPzKIdJ9/7yPHuqNJ1cIt/WA
	nAAxg0185s9lIKpsOfSG2DFrHLyb8nAXtSy7PACyPxBUSpirQ7HAL1eUP8krJVYtzbh
	0yy+3gEEuWKnEA0yYH2+9wNKiaGwQdyZ2Mm2PgEM=
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
To: xen-devel@lists.xenproject.org
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	jason.andryuk@amd.com,
	stefano.stabellini@amd.com,
	agarciav@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: [RFC 24/38] x86/boot: export command line processing
Date: Sat, 19 Apr 2025 18:08:06 -0400
Message-Id: <20250419220820.4234-25-dpsmith@apertussolutions.com>
X-Mailer: git-send-email 2.30.2
In-Reply-To: <20250419220820.4234-1-dpsmith@apertussolutions.com>
References: <20250419220820.4234-1-dpsmith@apertussolutions.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

Export the function cmdline_cook() so that it can be called outside of setup.c.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
---
 xen/arch/x86/include/asm/setup.h | 2 ++
 xen/arch/x86/setup.c             | 4 +---
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/xen/arch/x86/include/asm/setup.h b/xen/arch/x86/include/asm/setup.h
index b517da6144de..4b8fbdc67e05 100644
--- a/xen/arch/x86/include/asm/setup.h
+++ b/xen/arch/x86/include/asm/setup.h
@@ -29,6 +29,8 @@ void init_IRQ(void);
 struct boot_domain;
 int construct_dom0(struct boot_domain *bd);
 
+const char *cmdline_cook(const char *p, const char *loader_name);
+
 void setup_io_bitmap(struct domain *d);
 
 extern struct boot_info xen_boot_info;
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 760262ea3d4c..0c9f1cd98faa 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -291,8 +291,6 @@ static int __init cf_check parse_acpi_param(const char *s)
 }
 custom_param("acpi", parse_acpi_param);
 
-static const char *cmdline_cook(const char *p, const char *loader_name);
-
 struct boot_info __initdata xen_boot_info = {
     .loader = "unknown",
     .cmdline = "",
@@ -950,7 +948,7 @@ static bool __init loader_is_grub2(const char *loader_name)
  *
  * Always returns a pointer within @p.
  */
-static const char *__init cmdline_cook(const char *p, const char *loader_name)
+const char *__init cmdline_cook(const char *p, const char *loader_name)
 {
     /* Strip leading whitespace. */
     while ( *p == ' ' )
-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Sat Apr 19 22:21:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 19 Apr 2025 22:21:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.960203.1352283 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6GYc-0001os-CT; Sat, 19 Apr 2025 22:21:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 960203.1352283; Sat, 19 Apr 2025 22:21: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 1u6GYc-0001od-97; Sat, 19 Apr 2025 22:21:06 +0000
Received: by outflank-mailman (input) for mailman id 960203;
 Sat, 19 Apr 2025 22:21: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=nqik=XF=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1u6GQR-0004yY-J2
 for xen-devel@lists.xenproject.org; Sat, 19 Apr 2025 22:12:39 +0000
Received: from sender4-of-o50.zoho.com (sender4-of-o50.zoho.com
 [136.143.188.50]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 66d1af9f-1d6b-11f0-9eb0-5ba50f476ded;
 Sun, 20 Apr 2025 00:12:38 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 1745100551247651.7571400527812;
 Sat, 19 Apr 2025 15:09: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: 66d1af9f-1d6b-11f0-9eb0-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; t=1745100554; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=ISi6kBQih0IAqUVdGkDUx1hAdFnR6dedtv6RC9if7MCuq2fMCsDlSZpbnlS182rwCkBKeU3VebBPu2wofakdab4yM1s2GVHDIVDzDor2BlM7BJ2RbZS5WbSYpvzcuTMXDMrtBR0f2dpCclQW5b099M8MNe2r0nS92L5pP3D45R8=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1745100554; 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=XAtBPUpKdfuodxySJ/eiFSVT2P5Oe98nw2jobpysUkU=; 
	b=aA5oUJGC+b2Wvnqb9OOqfbQ6q5zVdFFS0mTGWBC6z2S9L/EoM3xd10InFhHbAAxqW+S9tF5ekEOE1cqZtURmUm7v85QvavSuOP32fyPHfy4rUF+KPYl6rA7QDtDgkGaN1iymDu8Rrwnw2iqCoS+ANv6rVAt4H8VJoNuE5+ly8Zk=
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=1745100553;
	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=XAtBPUpKdfuodxySJ/eiFSVT2P5Oe98nw2jobpysUkU=;
	b=jdo7Asr62vlVqo+jN4XqB//N3sLexMpHPSfc+IgIGC9oNVxfjR+8IOUpRPJ5A+XS
	SKrnrrLJ7JavfsvqALqByM458o7E2H1ssbmL7Z0V+JlLLBEJPqx+6EzTB7PwpQUVxOJ
	UJXkywCrNUt79BZbq65sZrAPTnZBMYyiGAOW0HY0=
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
To: xen-devel@lists.xenproject.org
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	jason.andryuk@amd.com,
	stefano.stabellini@amd.com,
	agarciav@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: [RFC 26/38] x86/hyperlaunch: remove dom0-isms from arch_create_dom
Date: Sat, 19 Apr 2025 18:08:08 -0400
Message-Id: <20250419220820.4234-27-dpsmith@apertussolutions.com>
X-Mailer: git-send-email 2.30.2
In-Reply-To: <20250419220820.4234-1-dpsmith@apertussolutions.com>
References: <20250419220820.4234-1-dpsmith@apertussolutions.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

Removes the dom0 naming from variables and isolates control/hardware
domain specific logic behind capabilities check.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
---
 xen/arch/x86/domain-builder/domain.c | 47 +++++++++++++++-------------
 1 file changed, 26 insertions(+), 21 deletions(-)

diff --git a/xen/arch/x86/domain-builder/domain.c b/xen/arch/x86/domain-builder/domain.c
index a82c02250b4c..13f99111a3a9 100644
--- a/xen/arch/x86/domain-builder/domain.c
+++ b/xen/arch/x86/domain-builder/domain.c
@@ -216,7 +216,7 @@ struct domain *__init arch_create_dom(
     char *cmdline = NULL;
     size_t cmdline_size;
     unsigned int create_flags = 0;
-    struct xen_domctl_createdomain dom0_cfg = {
+    struct xen_domctl_createdomain dom_cfg = {
         .flags = IS_ENABLED(CONFIG_TBOOT) ? XEN_DOMCTL_CDF_s3_integrity : 0,
         .max_evtchn_port = -1,
         .max_grant_frames = -1,
@@ -232,11 +232,11 @@ struct domain *__init arch_create_dom(
     if ( opt_dom0_pvh ||
          (bi->hyperlaunch_enabled && !(bd->mode & BUILD_MODE_PARAVIRT)) )
     {
-        dom0_cfg.flags |= (XEN_DOMCTL_CDF_hvm |
+        dom_cfg.flags |= (XEN_DOMCTL_CDF_hvm |
                            ((hvm_hap_supported() && !opt_dom0_shadow) ?
                             XEN_DOMCTL_CDF_hap : 0));
 
-        dom0_cfg.arch.emulation_flags |=
+        dom_cfg.arch.emulation_flags |=
             XEN_X86_EMU_LAPIC | XEN_X86_EMU_IOAPIC | XEN_X86_EMU_VPCI;
     }
 
@@ -244,7 +244,7 @@ struct domain *__init arch_create_dom(
     {
         create_flags |= CDF_hardware;
         if ( iommu_enabled )
-            dom0_cfg.flags |= XEN_DOMCTL_CDF_iommu;
+            dom_cfg.flags |= XEN_DOMCTL_CDF_iommu;
     }
 
     if ( bd->domid == DOMID_INVALID )
@@ -252,7 +252,7 @@ struct domain *__init arch_create_dom(
         bd->domid = get_initial_domain_id();
     if ( bd->capabilities & BUILD_CAPS_CONTROL )
         create_flags |= CDF_privileged | CDF_hardware;
-    d = domain_create(bd->domid, &dom0_cfg,
+    d = domain_create(bd->domid, &dom_cfg,
                       pv_shim ? 0 : create_flags);
     if ( IS_ERR(d) )
         panic("Error creating d%u: %ld\n", bd->domid, PTR_ERR(d));
@@ -279,25 +279,30 @@ struct domain *__init arch_create_dom(
                     cmdline_cook(__va(bd->kernel->cmdline_pa),bi->loader),
                     cmdline_size);
 
-        if ( bi->kextra )
-            /* kextra always includes exactly one leading space. */
-            strlcat(cmdline, bi->kextra, cmdline_size);
-
-        /* Append any extra parameters. */
-        if ( skip_ioapic_setup && !strstr(cmdline, "noapic") )
-            strlcat(cmdline, " noapic", cmdline_size);
-
-        if ( (strlen(acpi_param) == 0) && acpi_disabled )
+        /* Params from Xen cmd line apply only to control/hardware doms */
+        if ( bd->capabilities & (BUILD_CAPS_CONTROL | BUILD_CAPS_HARDWARE) )
         {
-            printk("ACPI is disabled, notifying Domain 0 (acpi=off)\n");
-            safe_strcpy(acpi_param, "off");
+            if ( bi->kextra )
+                /* kextra always includes exactly one leading space. */
+                strlcat(cmdline, bi->kextra, cmdline_size);
+
+            /* Append any extra parameters. */
+            if ( skip_ioapic_setup && !strstr(cmdline, "noapic") )
+                strlcat(cmdline, " noapic", cmdline_size);
+
+            if ( (strlen(acpi_param) == 0) && acpi_disabled )
+            {
+                printk("ACPI is disabled, notifying Domain 0 (acpi=off)\n");
+                safe_strcpy(acpi_param, "off");
+            }
+
+            if ( (strlen(acpi_param) != 0) && !strstr(cmdline, "acpi=") )
+            {
+                strlcat(cmdline, " acpi=", cmdline_size);
+                strlcat(cmdline, acpi_param, cmdline_size);
+            }
         }
 
-        if ( (strlen(acpi_param) != 0) && !strstr(cmdline, "acpi=") )
-        {
-            strlcat(cmdline, " acpi=", cmdline_size);
-            strlcat(cmdline, acpi_param, cmdline_size);
-        }
         bd->kernel->cmdline_pa = 0;
         bd->cmdline = cmdline;
     }
-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Sat Apr 19 22:21:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 19 Apr 2025 22:21:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.960214.1352293 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6GYh-0002RZ-Qv; Sat, 19 Apr 2025 22:21:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 960214.1352293; Sat, 19 Apr 2025 22:21: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 1u6GYh-0002RH-N5; Sat, 19 Apr 2025 22:21:11 +0000
Received: by outflank-mailman (input) for mailman id 960214;
 Sat, 19 Apr 2025 22:21:10 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=nqik=XF=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1u6GQh-0004yY-Rj
 for xen-devel@lists.xenproject.org; Sat, 19 Apr 2025 22:12:55 +0000
Received: from sender4-of-o50.zoho.com (sender4-of-o50.zoho.com
 [136.143.188.50]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 70632971-1d6b-11f0-9eb0-5ba50f476ded;
 Sun, 20 Apr 2025 00:12:54 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 1745100550463498.5819628185641;
 Sat, 19 Apr 2025 15:09: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: 70632971-1d6b-11f0-9eb0-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; t=1745100554; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=H5fkN4jq2ULvKJ9gyjiOV9wH1NLWdxyX1Q36QQ4vOI46xMR+gneHEtXCdQnGoF0bWfBkezYllrsbYAWYXChk9Y1NVN/rM2FkPFdD9Ri/IZfXg53jLYsiVl8OJ94XSBUK7ifsoWaj50RQy8fP2B4+yqfBexGeWpFayEau08/sSD0=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1745100554; 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=XCB/veqLy59i1pjLF+gLDnpye6NGCF9wk7+O4Lczmd0=; 
	b=ZLaDLcflQpthWdkHn8Rl05tSFexhUHNsV+Pvkdms/icYAZM1ZOtbLql5ZTFHU92+V4gP6rl2oPt8wVVwHHscmMvR7rYfBUHWhAucd3cd2Xcn5paYYBsIv/DYYjmbkXsLufFQ6wIAGJyvfY+xtIBzKycm6dhNDi0z6ZbYQdzz4I8=
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=1745100554;
	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=XCB/veqLy59i1pjLF+gLDnpye6NGCF9wk7+O4Lczmd0=;
	b=dF3rmo7VPvubptUCA4S8zkVCYu+4eUxLi7R8hp9GPzWm1iC4OmvmMq+vV7EOVTvQ
	uPLQEwPhLnHfT1j72XJDyiYQLp7j8Nnn7ioqSeAsrMUkEBh3CFX/PzcrsGEDzjdWesc
	wlvnhsyy04dECXKN9abDi/wvafFhLXHoQEitgkpo=
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
To: xen-devel@lists.xenproject.org
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	jason.andryuk@amd.com,
	stefano.stabellini@amd.com,
	agarciav@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: [RFC 25/38] x86/hyperlaunch: convert create_dom0 to arch_create_dom
Date: Sat, 19 Apr 2025 18:08:07 -0400
Message-Id: <20250419220820.4234-26-dpsmith@apertussolutions.com>
X-Mailer: git-send-email 2.30.2
In-Reply-To: <20250419220820.4234-1-dpsmith@apertussolutions.com>
References: <20250419220820.4234-1-dpsmith@apertussolutions.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

The only consumer of the function domain_cmdline_size() and the acpi_param
parameter is create_dom(). It is therefore reasonable to move
domain_cmdline_size() and the acpi_param parameter along with its parsing code
at the same time as create_dom0() is moved under the domain builder. While
moving create_dom0(), rename it to arch_create_dom() as the function is now
generalized.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
---
 xen/arch/x86/domain-builder/Makefile      |   2 +-
 xen/arch/x86/domain-builder/domain.c      | 172 ++++++++++++++++++++++
 xen/arch/x86/include/asm/domain-builder.h |   3 +
 xen/arch/x86/setup.c                      | 167 +--------------------
 4 files changed, 177 insertions(+), 167 deletions(-)

diff --git a/xen/arch/x86/domain-builder/Makefile b/xen/arch/x86/domain-builder/Makefile
index 67024b5cb213..cefe20abd2e6 100644
--- a/xen/arch/x86/domain-builder/Makefile
+++ b/xen/arch/x86/domain-builder/Makefile
@@ -1,3 +1,3 @@
 obj-$(CONFIG_DOMAIN_BUILDER) += fdt.init.o
 obj-y += core.init.o
-obj-y += domain.init.o
+obj-y += domain.o
diff --git a/xen/arch/x86/domain-builder/domain.c b/xen/arch/x86/domain-builder/domain.c
index 764a1af4acd3..a82c02250b4c 100644
--- a/xen/arch/x86/domain-builder/domain.c
+++ b/xen/arch/x86/domain-builder/domain.c
@@ -5,16 +5,65 @@
 
 #include <xen/cpumask.h>
 #include <xen/domain.h>
+#include <xen/err.h>
+#include <xen/grant_table.h>
 #include <xen/init.h>
 #include <xen/libelf.h>
 #include <xen/nodemask.h>
+#include <xen/param.h>
 #include <xen/sched.h>
 
 #include <asm/bootinfo.h>
+#include <asm/cpu-policy.h>
 #include <asm/dom0_build.h>
+#include <asm/domain-builder.h>
+#include <asm/io_apic.h>
 #include <asm/paging.h>
+#include <asm/pv/shim.h>
 #include <asm/spec_ctrl.h>
 
+bool __read_mostly acpi_disabled;
+bool __initdata acpi_force;
+static char __initdata acpi_param[10] = "";
+
+static int __init cf_check parse_acpi_param(const char *s)
+{
+    /* Interpret the parameter for use within Xen. */
+    if ( !parse_bool(s, NULL) )
+    {
+        disable_acpi();
+    }
+    else if ( !strcmp(s, "force") )
+    {
+        acpi_force = true;
+        acpi_ht = 1;
+        acpi_disabled = false;
+    }
+    else if ( !strcmp(s, "ht") )
+    {
+        if ( !acpi_force )
+            disable_acpi();
+        acpi_ht = 1;
+    }
+    else if ( !strcmp(s, "noirq") )
+    {
+        acpi_noirq_set();
+    }
+    else if ( !strcmp(s, "verbose") )
+    {
+        opt_acpi_verbose = true;
+        return 0;
+    }
+    else
+        return -EINVAL;
+
+    /* Save the parameter so it can be propagated to domain0. */
+    safe_strcpy(acpi_param, s);
+
+    return 0;
+}
+custom_param("acpi", parse_acpi_param);
+
 unsigned long __init dom_paging_pages(
     const struct boot_domain *bd, unsigned long nr_pages)
 {
@@ -138,6 +187,129 @@ void __init alloc_dom_vcpus(struct domain *d)
     domain_update_node_affinity(d);
 }
 
+static size_t __init domain_cmdline_size(
+    struct boot_info *bi, struct boot_domain *bd)
+{
+    size_t s = bi->kextra ? strlen(bi->kextra) : 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;
+
+    /*
+     * 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;
+}
+
+struct domain *__init arch_create_dom(
+    struct boot_info *bi, struct boot_domain *bd)
+{
+    char *cmdline = NULL;
+    size_t cmdline_size;
+    unsigned 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,
+        .max_grant_frames = -1,
+        .max_maptrack_frames = -1,
+        .grant_opts = XEN_DOMCTL_GRANT_version(opt_gnttab_max_version),
+        .max_vcpus = dom_max_vcpus(bd),
+        .arch = {
+            .misc_flags = opt_dom0_msr_relaxed ? XEN_X86_MSR_RELAXED : 0,
+        },
+    };
+    struct domain *d;
+
+    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) ?
+                            XEN_DOMCTL_CDF_hap : 0));
+
+        dom0_cfg.arch.emulation_flags |=
+            XEN_X86_EMU_LAPIC | XEN_X86_EMU_IOAPIC | XEN_X86_EMU_VPCI;
+    }
+
+    if ( bd->capabilities & BUILD_CAPS_HARDWARE )
+    {
+        create_flags |= CDF_hardware;
+        if ( iommu_enabled )
+            dom0_cfg.flags |= XEN_DOMCTL_CDF_iommu;
+    }
+
+    if ( bd->domid == DOMID_INVALID )
+        /* Create initial domain.  Not d0 for pvshim. */
+        bd->domid = get_initial_domain_id();
+    if ( bd->capabilities & BUILD_CAPS_CONTROL )
+        create_flags |= CDF_privileged | CDF_hardware;
+    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));
+
+    bd->d = d;
+
+    if ( bd->capabilities & BUILD_CAPS_CONTROL )
+        init_dom0_cpuid_policy(bd->d);
+
+    if ( alloc_dom_vcpu0(bd) == NULL )
+        panic("Error creating %pd vcpu 0\n", d);
+
+    cmdline_size = domain_cmdline_size(bi, bd);
+    if ( cmdline_size )
+    {
+        if ( !(cmdline = xzalloc_array(char, cmdline_size)) )
+            panic("Error allocating cmdline buffer for %pd\n", d);
+
+        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);
+
+        if ( bi->kextra )
+            /* kextra always includes exactly one leading space. */
+            strlcat(cmdline, bi->kextra, cmdline_size);
+
+        /* Append any extra parameters. */
+        if ( skip_ioapic_setup && !strstr(cmdline, "noapic") )
+            strlcat(cmdline, " noapic", cmdline_size);
+
+        if ( (strlen(acpi_param) == 0) && acpi_disabled )
+        {
+            printk("ACPI is disabled, notifying Domain 0 (acpi=off)\n");
+            safe_strcpy(acpi_param, "off");
+        }
+
+        if ( (strlen(acpi_param) != 0) && !strstr(cmdline, "acpi=") )
+        {
+            strlcat(cmdline, " acpi=", cmdline_size);
+            strlcat(cmdline, acpi_param, cmdline_size);
+        }
+        bd->kernel->cmdline_pa = 0;
+        bd->cmdline = cmdline;
+    }
+
+    if ( construct_dom0(bd) != 0 )
+        panic("Could not construct domain 0\n");
+
+    XFREE(cmdline);
+
+    return d;
+}
+
 /*
  * Local variables:
  * mode: C
diff --git a/xen/arch/x86/include/asm/domain-builder.h b/xen/arch/x86/include/asm/domain-builder.h
index ee91edc3c4d1..ccab02c3a1fd 100644
--- a/xen/arch/x86/include/asm/domain-builder.h
+++ b/xen/arch/x86/include/asm/domain-builder.h
@@ -9,6 +9,9 @@ int __init builder_get_cmdline(
 
 void builder_init(struct boot_info *bi);
 
+struct domain *arch_create_dom(
+    struct boot_info *bi, struct boot_domain *bd);
+
 int hvm_add_mem_range(
     struct domain *d, uint64_t s, uint64_t e, unsigned int type);
 
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 0c9f1cd98faa..8f956b6eca4f 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -249,48 +249,6 @@ static int __init cf_check parse_smap_param(const char *s)
 }
 custom_param("smap", parse_smap_param);
 
-bool __read_mostly acpi_disabled;
-bool __initdata acpi_force;
-static char __initdata acpi_param[10] = "";
-
-static int __init cf_check parse_acpi_param(const char *s)
-{
-    /* Interpret the parameter for use within Xen. */
-    if ( !parse_bool(s, NULL) )
-    {
-        disable_acpi();
-    }
-    else if ( !strcmp(s, "force") )
-    {
-        acpi_force = true;
-        acpi_ht = 1;
-        acpi_disabled = false;
-    }
-    else if ( !strcmp(s, "ht") )
-    {
-        if ( !acpi_force )
-            disable_acpi();
-        acpi_ht = 1;
-    }
-    else if ( !strcmp(s, "noirq") )
-    {
-        acpi_noirq_set();
-    }
-    else if ( !strcmp(s, "verbose") )
-    {
-        opt_acpi_verbose = true;
-        return 0;
-    }
-    else
-        return -EINVAL;
-
-    /* Save the parameter so it can be propagated to domain0. */
-    safe_strcpy(acpi_param, s);
-
-    return 0;
-}
-custom_param("acpi", parse_acpi_param);
-
 struct boot_info __initdata xen_boot_info = {
     .loader = "unknown",
     .cmdline = "",
@@ -980,129 +938,6 @@ static unsigned int __init copy_bios_e820(struct e820entry *map, unsigned int li
     return n;
 }
 
-static size_t __init domain_cmdline_size(
-    struct boot_info *bi, struct boot_domain *bd)
-{
-    size_t s = bi->kextra ? strlen(bi->kextra) : 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;
-
-    /*
-     * 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;
-    size_t cmdline_size;
-    unsigned int create_flags = 0;
-    struct boot_domain *bd = &bi->domains[0];
-    struct xen_domctl_createdomain dom0_cfg = {
-        .flags = IS_ENABLED(CONFIG_TBOOT) ? XEN_DOMCTL_CDF_s3_integrity : 0,
-        .max_evtchn_port = -1,
-        .max_grant_frames = -1,
-        .max_maptrack_frames = -1,
-        .grant_opts = XEN_DOMCTL_GRANT_version(opt_gnttab_max_version),
-        .max_vcpus = dom_max_vcpus(bd),
-        .arch = {
-            .misc_flags = opt_dom0_msr_relaxed ? XEN_X86_MSR_RELAXED : 0,
-        },
-    };
-    struct domain *d;
-
-    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) ?
-                            XEN_DOMCTL_CDF_hap : 0));
-
-        dom0_cfg.arch.emulation_flags |=
-            XEN_X86_EMU_LAPIC | XEN_X86_EMU_IOAPIC | XEN_X86_EMU_VPCI;
-    }
-
-    if ( bd->capabilities & BUILD_CAPS_HARDWARE )
-    {
-        create_flags |= CDF_hardware;
-        if ( iommu_enabled )
-            dom0_cfg.flags |= XEN_DOMCTL_CDF_iommu;
-    }
-
-    if ( bd->domid == DOMID_INVALID )
-        /* Create initial domain.  Not d0 for pvshim. */
-        bd->domid = get_initial_domain_id();
-    if ( bd->capabilities & BUILD_CAPS_CONTROL )
-        create_flags |= CDF_privileged | CDF_hardware;
-    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));
-
-    bd->d = d;
-
-    if ( bd->capabilities & BUILD_CAPS_CONTROL )
-        init_dom0_cpuid_policy(bd->d);
-
-    if ( alloc_dom_vcpu0(bd) == NULL )
-        panic("Error creating %pd vcpu 0\n", d);
-
-    cmdline_size = domain_cmdline_size(bi, bd);
-    if ( cmdline_size )
-    {
-        if ( !(cmdline = xzalloc_array(char, cmdline_size)) )
-            panic("Error allocating cmdline buffer for %pd\n", d);
-
-        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);
-
-        if ( bi->kextra )
-            /* kextra always includes exactly one leading space. */
-            strlcat(cmdline, bi->kextra, cmdline_size);
-
-        /* Append any extra parameters. */
-        if ( skip_ioapic_setup && !strstr(cmdline, "noapic") )
-            strlcat(cmdline, " noapic", cmdline_size);
-
-        if ( (strlen(acpi_param) == 0) && acpi_disabled )
-        {
-            printk("ACPI is disabled, notifying Domain 0 (acpi=off)\n");
-            safe_strcpy(acpi_param, "off");
-        }
-
-        if ( (strlen(acpi_param) != 0) && !strstr(cmdline, "acpi=") )
-        {
-            strlcat(cmdline, " acpi=", cmdline_size);
-            strlcat(cmdline, acpi_param, cmdline_size);
-        }
-        bd->kernel->cmdline_pa = 0;
-        bd->cmdline = cmdline;
-    }
-
-    if ( construct_dom0(bd) != 0 )
-        panic("Could not construct domain 0\n");
-
-    XFREE(cmdline);
-
-    return d;
-}
-
 /* How much of the directmap is prebuilt at compile time. */
 #define PREBUILT_MAP_LIMIT (1 << L2_PAGETABLE_SHIFT)
 
@@ -2180,7 +2015,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);
+    dom0 = arch_create_dom(bi, &bi->domains[0]);
     if ( !dom0 )
         panic("Could not set up DOM0 guest OS\n");
 
-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Sat Apr 19 22:21:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 19 Apr 2025 22:21:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.960230.1352303 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6GYo-0003EF-77; Sat, 19 Apr 2025 22:21:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 960230.1352303; Sat, 19 Apr 2025 22:21: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 1u6GYo-0003E0-0j; Sat, 19 Apr 2025 22:21:18 +0000
Received: by outflank-mailman (input) for mailman id 960230;
 Sat, 19 Apr 2025 22: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=nqik=XF=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1u6GPh-0007X1-96
 for xen-devel@lists.xenproject.org; Sat, 19 Apr 2025 22:11:53 +0000
Received: from sender4-of-o50.zoho.com (sender4-of-o50.zoho.com
 [136.143.188.50]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4ab84614-1d6b-11f0-9ffb-bf95429c2676;
 Sun, 20 Apr 2025 00:11:51 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 1745100533828780.5983240234141;
 Sat, 19 Apr 2025 15:08:53 -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: 4ab84614-1d6b-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; t=1745100552; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=YyT+hDUYlCb//OFSIs83gn2wDuEFjsUp1Ztasps0AeWRFQogcX+gE3ZKa07J3ENGw734w3rK5ko3tc6OtcPg3N4MTEpjDL/i+PYnsQh5wiOsONFEbKLUOStFni+SsmvRwUIXqOWvjbCFF29iadspoU3w/gG1unpprEG1/2cX5H4=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1745100552; 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=KU/isf+bIbWsd6Vdl793ESAiGNzLwhwJfrt1XINwyFs=; 
	b=UbReVHHFZ+LnnERADyahvt+K79WhHICItNe0YoacwUCX3PUCZj2Q0nE5Idp3xGOnI3GctaTtpGVzwmjLs5JbxuqHqINbjaG8IqHUdaLlAl2SrirYhKbUM7XGEoNcbK+arLvBxhUqvP4P0UDEbp9udk59iKVa2kvThpz16Pi15XQ=
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=1745100552;
	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=KU/isf+bIbWsd6Vdl793ESAiGNzLwhwJfrt1XINwyFs=;
	b=hvTngnkgipf7LENnx6jqb4sQ8ammvGkyS75dOXseclLzVDBOYW7V3Vzhu3EV7iwd
	L7bbguvERst7FOJKSLnR17O6gs+Jeczpgoorr07P1he2PPJMJnG+y1V6fRvOezVBO4h
	FdqOa6o+E9hIIBeYQI5WmNlKttGwWniddXPN7lAw=
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
To: xen-devel@lists.xenproject.org
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	jason.andryuk@amd.com,
	stefano.stabellini@amd.com,
	agarciav@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: [RFC 17/38] x86/hyperlaunch: move pvh_setup_cpus to domain builder
Date: Sat, 19 Apr 2025 18:07:59 -0400
Message-Id: <20250419220820.4234-18-dpsmith@apertussolutions.com>
X-Mailer: git-send-email 2.30.2
In-Reply-To: <20250419220820.4234-1-dpsmith@apertussolutions.com>
References: <20250419220820.4234-1-dpsmith@apertussolutions.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

The function pvh_setup_cpus() is a very general function that is usable by all
HVM domains, not just PVH. As such, renaming to hvm_setup_cpus during move.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
---
 xen/arch/x86/hvm/dom0_build.c             | 45 +----------------------
 xen/arch/x86/hvm/dom_build.c              | 45 +++++++++++++++++++++++
 xen/arch/x86/include/asm/domain-builder.h |  2 +
 3 files changed, 48 insertions(+), 44 deletions(-)

diff --git a/xen/arch/x86/hvm/dom0_build.c b/xen/arch/x86/hvm/dom0_build.c
index 2ed2d5fd7326..a3b6afc5318a 100644
--- a/xen/arch/x86/hvm/dom0_build.c
+++ b/xen/arch/x86/hvm/dom0_build.c
@@ -808,49 +808,6 @@ static int __init pvh_load_kernel(
     return 0;
 }
 
-static int __init pvh_setup_cpus(struct domain *d, paddr_t entry,
-                                 paddr_t start_info)
-{
-    struct vcpu *v = d->vcpu[0];
-    int rc;
-    /*
-     * This sets the vCPU state according to the state described in
-     * docs/misc/pvh.pandoc.
-     */
-    vcpu_hvm_context_t cpu_ctx = {
-        .mode = VCPU_HVM_MODE_32B,
-        .cpu_regs.x86_32.ebx = start_info,
-        .cpu_regs.x86_32.eip = entry,
-        .cpu_regs.x86_32.cr0 = X86_CR0_PE | X86_CR0_ET,
-        .cpu_regs.x86_32.cs_limit = ~0u,
-        .cpu_regs.x86_32.ds_limit = ~0u,
-        .cpu_regs.x86_32.es_limit = ~0u,
-        .cpu_regs.x86_32.ss_limit = ~0u,
-        .cpu_regs.x86_32.tr_limit = 0x67,
-        .cpu_regs.x86_32.cs_ar = 0xc9b,
-        .cpu_regs.x86_32.ds_ar = 0xc93,
-        .cpu_regs.x86_32.es_ar = 0xc93,
-        .cpu_regs.x86_32.ss_ar = 0xc93,
-        .cpu_regs.x86_32.tr_ar = 0x8b,
-    };
-
-    alloc_dom_vcpus(d);
-
-    rc = arch_set_info_hvm_guest(v, &cpu_ctx);
-    if ( rc )
-    {
-        printk("Unable to setup Dom0 BSP context: %d\n", rc);
-        return rc;
-    }
-
-    update_domain_wallclock_time(d);
-
-    v->is_initialised = 1;
-    clear_bit(_VPF_down, &v->pause_flags);
-
-    return 0;
-}
-
 static int __init cf_check acpi_count_intr_ovr(
     struct acpi_subtable_header *header, const unsigned long end)
 {
@@ -1319,7 +1276,7 @@ int __init dom0_construct_pvh(struct boot_domain *bd)
         return rc;
     }
 
-    rc = pvh_setup_cpus(d, entry, start_info);
+    rc = hvm_setup_cpus(bd->d, entry, start_info);
     if ( rc )
     {
         printk("Failed to setup Dom0 CPUs: %d\n", rc);
diff --git a/xen/arch/x86/hvm/dom_build.c b/xen/arch/x86/hvm/dom_build.c
index 7fa007a6926d..078e42447b0a 100644
--- a/xen/arch/x86/hvm/dom_build.c
+++ b/xen/arch/x86/hvm/dom_build.c
@@ -16,6 +16,8 @@
 
 #include <acpi/actables.h>
 
+#include <public/hvm/hvm_vcpu.h>
+
 #include <asm/bootinfo.h>
 #include <asm/dom0_build.h>
 #include <asm/domain-builder.h>
@@ -55,6 +57,49 @@ static void __init pvh_init_p2m(struct boot_domain *bd)
     } while ( preempted );
 }
 
+int __init hvm_setup_cpus(
+    struct domain *d, paddr_t entry, paddr_t start_info)
+{
+    struct vcpu *v = d->vcpu[0];
+    int rc;
+    /*
+     * This sets the vCPU state according to the state described in
+     * docs/misc/pvh.pandoc.
+     */
+    vcpu_hvm_context_t cpu_ctx = {
+        .mode = VCPU_HVM_MODE_32B,
+        .cpu_regs.x86_32.ebx = start_info,
+        .cpu_regs.x86_32.eip = entry,
+        .cpu_regs.x86_32.cr0 = X86_CR0_PE | X86_CR0_ET,
+        .cpu_regs.x86_32.cs_limit = ~0u,
+        .cpu_regs.x86_32.ds_limit = ~0u,
+        .cpu_regs.x86_32.es_limit = ~0u,
+        .cpu_regs.x86_32.ss_limit = ~0u,
+        .cpu_regs.x86_32.tr_limit = 0x67,
+        .cpu_regs.x86_32.cs_ar = 0xc9b,
+        .cpu_regs.x86_32.ds_ar = 0xc93,
+        .cpu_regs.x86_32.es_ar = 0xc93,
+        .cpu_regs.x86_32.ss_ar = 0xc93,
+        .cpu_regs.x86_32.tr_ar = 0x8b,
+    };
+
+    alloc_dom_vcpus(d);
+
+    rc = arch_set_info_hvm_guest(v, &cpu_ctx);
+    if ( rc )
+    {
+        printk("Unable to setup %pd BSP context: %d\n", d, rc);
+        return rc;
+    }
+
+    update_domain_wallclock_time(d);
+
+    v->is_initialised = 1;
+    clear_bit(_VPF_down, &v->pause_flags);
+
+    return 0;
+}
+
 int __init dom_construct_pvh(struct boot_domain *bd)
 {
     int rc;
diff --git a/xen/arch/x86/include/asm/domain-builder.h b/xen/arch/x86/include/asm/domain-builder.h
index af0a24b4edf5..7bc2fbe66bc2 100644
--- a/xen/arch/x86/include/asm/domain-builder.h
+++ b/xen/arch/x86/include/asm/domain-builder.h
@@ -9,6 +9,8 @@ int __init builder_get_cmdline(
 
 void builder_init(struct boot_info *bi);
 
+int hvm_setup_cpus(struct domain *d, paddr_t entry, paddr_t start_info);
+
 unsigned long dom_paging_pages(
     const struct boot_domain *d, unsigned long nr_pages);
 
-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Sat Apr 19 22:21:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 19 Apr 2025 22:21:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.960235.1352308 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6GYo-0003JX-MG; Sat, 19 Apr 2025 22:21:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 960235.1352308; Sat, 19 Apr 2025 22:21: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 1u6GYo-0003Im-CJ; Sat, 19 Apr 2025 22:21:18 +0000
Received: by outflank-mailman (input) for mailman id 960235;
 Sat, 19 Apr 2025 22:21: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=nqik=XF=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1u6GP0-0004yY-0f
 for xen-devel@lists.xenproject.org; Sat, 19 Apr 2025 22:11:10 +0000
Received: from sender4-of-o50.zoho.com (sender4-of-o50.zoho.com
 [136.143.188.50]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2ef04524-1d6b-11f0-9eb0-5ba50f476ded;
 Sun, 20 Apr 2025 00:11:04 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 1745100546983292.67406814920184;
 Sat, 19 Apr 2025 15:09: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: 2ef04524-1d6b-11f0-9eb0-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; t=1745100550; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=Vx7LmSizaQI8aTsjW/xcqDxUX7t05aGQcRdNG12cItMoDos1g/aYT/dOSgq9wRpLPDzmQ+D9FDOWyQVJhZQrg9IqxuVyMrMiXpDhsP/ztvwf/27PJqc9kvnEujsff4uM0Aa6wtbDzncEi+jsv7KX3psTUmhy7M2+qKIjoQGrnro=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1745100550; 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=xoJWXkXpmA/7bILpNXgjvSfpxAXFPtgVddP2jhGbb9Y=; 
	b=FM1a+nuOcoazbxGLbwEZv/wYDNIuVSPWlh0FAYGBpKftZO8mKeHaFrGan65R4Ma49VKjlicWcIpKovrTUqTwj/tVVwqx15xN8Ctuv6gUIij7SJ65JNMSCMhsH/npm/2DONYuH0B+7BBzwoffttGCZtNjM2HkD1yekeV56v18RZw=
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=1745100550;
	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=xoJWXkXpmA/7bILpNXgjvSfpxAXFPtgVddP2jhGbb9Y=;
	b=lOLk6IS7DcWYwCkOVdF1iFNpeszEdsGVHzIftxCSUCBmGBkVu57dQmH9Nt6Z2CcP
	8quJhnNdzC8tcJTYYUI80bMdXRjVhVOFsqo8dqmll/LGyA5pTplbNVgt+zCMsihDiUW
	GXaa0EnrtOLcqe1HpMJDw7L1+ftLJdW8TGHq3cD4=
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
To: xen-devel@lists.xenproject.org
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	jason.andryuk@amd.com,
	stefano.stabellini@amd.com,
	agarciav@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: [RFC 21/38] x86/hyperlaunch: move remaining pvh dom0 construction
Date: Sat, 19 Apr 2025 18:08:03 -0400
Message-Id: <20250419220820.4234-22-dpsmith@apertussolutions.com>
X-Mailer: git-send-email 2.30.2
In-Reply-To: <20250419220820.4234-1-dpsmith@apertussolutions.com>
References: <20250419220820.4234-1-dpsmith@apertussolutions.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

Move pvh_load_kernel() and its helper functions to the domain builder. With
this move, it is now possible to move the remaining logic of
dom0_construct_pvh() to the domain builder. With all the logic moved, the
function can be dropped.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
---
 xen/arch/x86/hvm/dom0_build.c         | 365 --------------------------
 xen/arch/x86/hvm/dom_build.c          | 362 ++++++++++++++++++++++++-
 xen/arch/x86/include/asm/dom0_build.h |   1 -
 3 files changed, 361 insertions(+), 367 deletions(-)

diff --git a/xen/arch/x86/hvm/dom0_build.c b/xen/arch/x86/hvm/dom0_build.c
index 73ce33fb17f1..23b46ef86c9f 100644
--- a/xen/arch/x86/hvm/dom0_build.c
+++ b/xen/arch/x86/hvm/dom0_build.c
@@ -478,335 +478,6 @@ int __init dom0_pvh_populate_p2m(struct domain *d)
 #undef MB1_PAGES
 }
 
-static paddr_t __init find_memory(
-    const struct domain *d, const struct elf_binary *elf, size_t size)
-{
-    paddr_t kernel_start = (paddr_t)elf->dest_base & PAGE_MASK;
-    paddr_t kernel_end = ROUNDUP((paddr_t)elf->dest_base + elf->dest_size,
-                                 PAGE_SIZE);
-    unsigned int i;
-
-    /*
-     * The memory map is sorted and all RAM regions starts and sizes are
-     * aligned to page boundaries.
-     */
-    for ( i = 0; i < d->arch.nr_e820; i++ )
-    {
-        paddr_t start, end = d->arch.e820[i].addr + d->arch.e820[i].size;
-
-        /* Don't use memory below 1MB, as it could overwrite BDA/EBDA/IBFT. */
-        if ( end <= MB(1) || d->arch.e820[i].type != E820_RAM )
-            continue;
-
-        start = MAX(ROUNDUP(d->arch.e820[i].addr, PAGE_SIZE), MB(1));
-
-        ASSERT(IS_ALIGNED(start, PAGE_SIZE) && IS_ALIGNED(end, PAGE_SIZE));
-
-        /*
-         * NB: Even better would be to use rangesets to determine a suitable
-         * range, in particular in case a kernel requests multiple heavily
-         * discontiguous regions (which right now we fold all into one big
-         * region).
-         */
-        if ( end <= kernel_start || start >= kernel_end )
-        {
-            /* No overlap, just check whether the region is large enough. */
-            if ( end - start >= size )
-                return start;
-        }
-        /* Deal with the kernel already being loaded in the region. */
-        else if ( kernel_start > start && kernel_start - start >= size )
-            return start;
-        else if ( kernel_end < end && end - kernel_end >= size )
-            return kernel_end;
-    }
-
-    return INVALID_PADDR;
-}
-
-static bool __init check_load_address(
-    const struct domain *d, const struct elf_binary *elf)
-{
-    paddr_t kernel_start = (uintptr_t)elf->dest_base;
-    paddr_t kernel_end = kernel_start + elf->dest_size;
-    unsigned int i;
-
-    /* Relies on a sorted memory map with adjacent entries merged. */
-    for ( i = 0; i < d->arch.nr_e820; i++ )
-    {
-        paddr_t start = d->arch.e820[i].addr;
-        paddr_t end = start + d->arch.e820[i].size;
-
-        if ( start >= kernel_end )
-            return false;
-
-        if ( d->arch.e820[i].type == E820_RAM &&
-             start <= kernel_start &&
-             end >= kernel_end )
-            return true;
-    }
-
-    return false;
-}
-
-/* Find an e820 RAM region that fits the kernel at a suitable alignment. */
-static paddr_t __init find_kernel_memory(
-    const struct domain *d, struct elf_binary *elf,
-    const struct elf_dom_parms *parms)
-{
-    paddr_t kernel_size = elf->dest_size;
-    unsigned int align;
-    unsigned int i;
-
-    if ( parms->phys_align != UNSET_ADDR32 )
-        align = parms->phys_align;
-    else if ( elf->palign >= PAGE_SIZE )
-        align = elf->palign;
-    else
-        align = MB(2);
-
-    /* Search backwards to find the highest address. */
-    for ( i = d->arch.nr_e820; i--; )
-    {
-        paddr_t start = d->arch.e820[i].addr;
-        paddr_t end = start + d->arch.e820[i].size;
-        paddr_t kstart, kend;
-
-        if ( d->arch.e820[i].type != E820_RAM ||
-             d->arch.e820[i].size < kernel_size )
-            continue;
-
-        if ( start > parms->phys_max )
-            continue;
-
-        if ( end - 1 > parms->phys_max )
-            end = parms->phys_max + 1;
-
-        kstart = (end - kernel_size) & ~(align - 1);
-        kend = kstart + kernel_size;
-
-        if ( kstart < parms->phys_min )
-            return 0;
-
-        if ( kstart >= start && kend <= end )
-            return kstart;
-    }
-
-    return 0;
-}
-
-/* Check the kernel load address, and adjust if necessary and possible. */
-static bool __init check_and_adjust_load_address(
-    const struct domain *d, struct elf_binary *elf, struct elf_dom_parms *parms)
-{
-    paddr_t reloc_base;
-
-    if ( check_load_address(d, elf) )
-        return true;
-
-    if ( !parms->phys_reloc )
-    {
-        printk("%pd kernel: Address conflict and not relocatable\n", d);
-        return false;
-    }
-
-    reloc_base = find_kernel_memory(d, elf, parms);
-    if ( !reloc_base )
-    {
-        printk("%pd kernel: Failed find a load address\n", d);
-        return false;
-    }
-
-    if ( opt_dom0_verbose )
-        printk("%pd kernel: Moving [%p, %p] -> [%"PRIpaddr", %"PRIpaddr"]\n", d,
-               elf->dest_base, elf->dest_base + elf->dest_size - 1,
-               reloc_base, reloc_base + elf->dest_size - 1);
-
-    parms->phys_entry =
-        reloc_base + (parms->phys_entry - (uintptr_t)elf->dest_base);
-    elf->dest_base = (char *)reloc_base;
-
-    return true;
-}
-
-static int __init pvh_load_kernel(
-    const 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;
-    unsigned long initrd_len = initrd ? initrd->size : 0;
-    const char *initrd_cmdline = NULL;
-    struct elf_binary elf;
-    struct elf_dom_parms parms;
-    size_t extra_space;
-    paddr_t last_addr;
-    struct hvm_start_info start_info = { 0 };
-    struct hvm_modlist_entry mod = { 0 };
-    struct vcpu *v = d->vcpu[0];
-    int rc;
-
-    if ( (rc = bzimage_parse(image_base, &image_start, &image_len)) != 0 )
-    {
-        printk("Error trying to detect bz compressed kernel\n");
-        return rc;
-    }
-
-    if ( (rc = elf_init(&elf, image_start, image_len)) != 0 )
-    {
-        printk("Unable to init ELF\n");
-        return rc;
-    }
-    if ( opt_dom0_verbose )
-        elf_set_verbose(&elf);
-    elf_parse_binary(&elf);
-    if ( (rc = elf_xen_parse(&elf, &parms, true)) != 0 )
-    {
-        printk("Unable to parse kernel for ELFNOTES\n");
-        if ( elf_check_broken(&elf) )
-            printk("%pd kernel: broken ELF: %s\n", d, elf_check_broken(&elf));
-        return rc;
-    }
-
-    if ( parms.phys_entry == UNSET_ADDR32 )
-    {
-        printk("Unable to find XEN_ELFNOTE_PHYS32_ENTRY address\n");
-        return -EINVAL;
-    }
-
-    /* Copy the OS image and free temporary buffer. */
-    elf.dest_base = (void *)(parms.virt_kstart - parms.virt_base);
-    elf.dest_size = parms.virt_kend - parms.virt_kstart;
-
-    if ( !check_and_adjust_load_address(d, &elf, &parms) )
-        return -ENOSPC;
-
-    elf_set_vcpu(&elf, v);
-    rc = elf_load_binary(&elf);
-    if ( rc < 0 )
-    {
-        printk("Failed to load kernel: %d\n", rc);
-        if ( elf_check_broken(&elf) )
-            printk("%pd kernel: broken ELF: %s\n", d, elf_check_broken(&elf));
-        return rc;
-    }
-
-    /*
-     * 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
-     * split into smaller allocations, done as a single region in order to
-     * simplify it.
-     */
-    extra_space = sizeof(start_info);
-
-    if ( initrd )
-    {
-        size_t initrd_space = elf_round_up(&elf, initrd_len);
-
-        if ( initrd->cmdline_pa )
-        {
-            initrd_cmdline = __va(initrd->cmdline_pa);
-            if ( !*initrd_cmdline )
-                initrd_cmdline = NULL;
-        }
-        if ( initrd_cmdline )
-            initrd_space += strlen(initrd_cmdline) + 1;
-
-        if ( initrd_space )
-            extra_space += ROUNDUP(initrd_space, PAGE_SIZE) + sizeof(mod);
-        else
-            initrd = NULL;
-    }
-
-    if ( bd->cmdline )
-        extra_space += elf_round_up(&elf, strlen(bd->cmdline) + 1);
-
-    last_addr = find_memory(d, &elf, extra_space);
-    if ( last_addr == INVALID_PADDR )
-    {
-        printk("Unable to find a memory region to load initrd and metadata\n");
-        return -ENOMEM;
-    }
-
-    if ( initrd != NULL )
-    {
-        rc = hvm_copy_to_guest_phys(last_addr, __va(initrd->start),
-                                    initrd_len, v);
-        if ( rc )
-        {
-            printk("Unable to copy initrd to guest\n");
-            return rc;
-        }
-
-        mod.paddr = last_addr;
-        mod.size = initrd_len;
-        last_addr += elf_round_up(&elf, initrd_len);
-        if ( initrd_cmdline )
-        {
-            size_t len = strlen(initrd_cmdline) + 1;
-
-            rc = hvm_copy_to_guest_phys(last_addr, initrd_cmdline, len, v);
-            if ( rc )
-            {
-                printk("Unable to copy module command line\n");
-                return rc;
-            }
-            mod.cmdline_paddr = last_addr;
-            last_addr += len;
-        }
-        last_addr = ROUNDUP(last_addr, PAGE_SIZE);
-    }
-
-    /* Free temporary buffers. */
-    free_boot_modules();
-
-    if ( bd->cmdline )
-    {
-        rc = hvm_copy_to_guest_phys(last_addr, bd->cmdline,
-                                    strlen(bd->cmdline) + 1, v);
-        if ( rc )
-        {
-            printk("Unable to copy guest command line\n");
-            return rc;
-        }
-        start_info.cmdline_paddr = last_addr;
-        /*
-         * Round up to 32/64 bits (depending on the guest kernel bitness) so
-         * the modlist/start_info is aligned.
-         */
-        last_addr += elf_round_up(&elf, strlen(bd->cmdline) + 1);
-    }
-    if ( initrd != NULL )
-    {
-        rc = hvm_copy_to_guest_phys(last_addr, &mod, sizeof(mod), v);
-        if ( rc )
-        {
-            printk("Unable to copy guest modules\n");
-            return rc;
-        }
-        start_info.modlist_paddr = last_addr;
-        start_info.nr_modules = 1;
-        last_addr += sizeof(mod);
-    }
-
-    start_info.magic = XEN_HVM_START_MAGIC_VALUE;
-    start_info.flags = SIF_PRIVILEGED | SIF_INITDOMAIN;
-    rc = hvm_copy_to_guest_phys(last_addr, &start_info, sizeof(start_info), v);
-    if ( rc )
-    {
-        printk("Unable to copy start info to guest\n");
-        return rc;
-    }
-
-    *entry = parms.phys_entry;
-    *start_info_addr = last_addr;
-
-    return 0;
-}
-
 static int __init cf_check acpi_count_intr_ovr(
     struct acpi_subtable_header *header, const unsigned long end)
 {
@@ -1255,42 +926,6 @@ int __init dom0_pvh_setup_acpi(struct domain *d, paddr_t start_info)
     return 0;
 }
 
-int __init dom0_construct_pvh(struct boot_domain *bd)
-{
-    paddr_t entry, start_info;
-    struct domain *d = bd->d;
-    int rc;
-
-    rc = pvh_load_kernel(bd, &entry, &start_info);
-    if ( rc )
-    {
-        printk("Failed to load Dom0 kernel\n");
-        return rc;
-    }
-
-    rc = hvm_setup_cpus(bd->d, entry, start_info);
-    if ( rc )
-    {
-        printk("Failed to setup Dom0 CPUs: %d\n", rc);
-        return rc;
-    }
-
-    rc = dom0_pvh_setup_acpi(bd->d, start_info);
-    if ( rc )
-    {
-        printk("Failed to setup Dom0 ACPI tables: %d\n", rc);
-        return rc;
-    }
-
-    if ( opt_dom0_verbose )
-    {
-        printk("Dom%u memory map:\n", d->domain_id);
-        print_e820_memory_map(d->arch.e820, d->arch.nr_e820);
-    }
-
-    return 0;
-}
-
 /*
  * Local variables:
  * mode: C
diff --git a/xen/arch/x86/hvm/dom_build.c b/xen/arch/x86/hvm/dom_build.c
index 9421dc431ba9..2e47ca489a71 100644
--- a/xen/arch/x86/hvm/dom_build.c
+++ b/xen/arch/x86/hvm/dom_build.c
@@ -16,10 +16,12 @@
 
 #include <acpi/actables.h>
 
+#include <public/arch-x86/hvm/start_info.h>
 #include <public/hvm/e820.h>
 #include <public/hvm/hvm_vcpu.h>
 
 #include <asm/bootinfo.h>
+#include <asm/bzimage.h>
 #include <asm/dom0_build.h>
 #include <asm/domain-builder.h>
 #include <asm/hvm/io.h>
@@ -276,8 +278,338 @@ static int __init hvm_populate_p2m(struct domain *d)
     return 0;
 }
 
+static paddr_t __init find_memory(
+    const struct domain *d, const struct elf_binary *elf, size_t size)
+{
+    paddr_t kernel_start = (paddr_t)elf->dest_base & PAGE_MASK;
+    paddr_t kernel_end = ROUNDUP((paddr_t)elf->dest_base + elf->dest_size,
+                                 PAGE_SIZE);
+    unsigned int i;
+
+    /*
+     * The memory map is sorted and all RAM regions starts and sizes are
+     * aligned to page boundaries.
+     */
+    for ( i = 0; i < d->arch.nr_e820; i++ )
+    {
+        paddr_t start, end = d->arch.e820[i].addr + d->arch.e820[i].size;
+
+        /* Don't use memory below 1MB, as it could overwrite BDA/EBDA/IBFT. */
+        if ( end <= MB(1) || d->arch.e820[i].type != E820_RAM )
+            continue;
+
+        start = MAX(ROUNDUP(d->arch.e820[i].addr, PAGE_SIZE), MB(1));
+
+        ASSERT(IS_ALIGNED(start, PAGE_SIZE) && IS_ALIGNED(end, PAGE_SIZE));
+
+        /*
+         * NB: Even better would be to use rangesets to determine a suitable
+         * range, in particular in case a kernel requests multiple heavily
+         * discontiguous regions (which right now we fold all into one big
+         * region).
+         */
+        if ( end <= kernel_start || start >= kernel_end )
+        {
+            /* No overlap, just check whether the region is large enough. */
+            if ( end - start >= size )
+                return start;
+        }
+        /* Deal with the kernel already being loaded in the region. */
+        else if ( kernel_start > start && kernel_start - start >= size )
+            return start;
+        else if ( kernel_end < end && end - kernel_end >= size )
+            return kernel_end;
+    }
+
+    return INVALID_PADDR;
+}
+
+static bool __init check_load_address(
+    const struct domain *d, const struct elf_binary *elf)
+{
+    paddr_t kernel_start = (uintptr_t)elf->dest_base;
+    paddr_t kernel_end = kernel_start + elf->dest_size;
+    unsigned int i;
+
+    /* Relies on a sorted memory map with adjacent entries merged. */
+    for ( i = 0; i < d->arch.nr_e820; i++ )
+    {
+        paddr_t start = d->arch.e820[i].addr;
+        paddr_t end = start + d->arch.e820[i].size;
+
+        if ( start >= kernel_end )
+            return false;
+
+        if ( d->arch.e820[i].type == E820_RAM &&
+             start <= kernel_start &&
+             end >= kernel_end )
+            return true;
+    }
+
+    return false;
+}
+
+/* Find an e820 RAM region that fits the kernel at a suitable alignment. */
+static paddr_t __init find_kernel_memory(
+    const struct domain *d, struct elf_binary *elf,
+    const struct elf_dom_parms *parms)
+{
+    paddr_t kernel_size = elf->dest_size;
+    unsigned int align;
+    unsigned int i;
+
+    if ( parms->phys_align != UNSET_ADDR32 )
+        align = parms->phys_align;
+    else if ( elf->palign >= PAGE_SIZE )
+        align = elf->palign;
+    else
+        align = MB(2);
+
+    /* Search backwards to find the highest address. */
+    for ( i = d->arch.nr_e820; i--; )
+    {
+        paddr_t start = d->arch.e820[i].addr;
+        paddr_t end = start + d->arch.e820[i].size;
+        paddr_t kstart, kend;
+
+        if ( d->arch.e820[i].type != E820_RAM ||
+             d->arch.e820[i].size < kernel_size )
+            continue;
+
+        if ( start > parms->phys_max )
+            continue;
+
+        if ( end - 1 > parms->phys_max )
+            end = parms->phys_max + 1;
+
+        kstart = (end - kernel_size) & ~(align - 1);
+        kend = kstart + kernel_size;
+
+        if ( kstart < parms->phys_min )
+            return 0;
+
+        if ( kstart >= start && kend <= end )
+            return kstart;
+    }
+
+    return 0;
+}
+
+/* Check the kernel load address, and adjust if necessary and possible. */
+static bool __init check_and_adjust_load_address(
+    const struct domain *d, struct elf_binary *elf, struct elf_dom_parms *parms)
+{
+    paddr_t reloc_base;
+
+    if ( check_load_address(d, elf) )
+        return true;
+
+    if ( !parms->phys_reloc )
+    {
+        printk("%pd kernel: Address conflict and not relocatable\n", d);
+        return false;
+    }
+
+    reloc_base = find_kernel_memory(d, elf, parms);
+    if ( !reloc_base )
+    {
+        printk("%pd kernel: Failed find a load address\n", d);
+        return false;
+    }
+
+    if ( opt_dom0_verbose )
+        printk("%pd kernel: Moving [%p, %p] -> [%"PRIpaddr", %"PRIpaddr"]\n", d,
+               elf->dest_base, elf->dest_base + elf->dest_size - 1,
+               reloc_base, reloc_base + elf->dest_size - 1);
+
+    parms->phys_entry =
+        reloc_base + (parms->phys_entry - (uintptr_t)elf->dest_base);
+    elf->dest_base = (char *)reloc_base;
+
+    return true;
+}
+
+static int __init pvh_load_kernel(
+    const 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;
+    unsigned long initrd_len = initrd ? initrd->size : 0;
+    const char *initrd_cmdline = NULL;
+    struct elf_binary elf;
+    struct elf_dom_parms parms;
+    size_t extra_space;
+    paddr_t last_addr;
+    struct hvm_start_info start_info = { 0 };
+    struct hvm_modlist_entry mod = { 0 };
+    struct vcpu *v = d->vcpu[0];
+    int rc;
+
+    if ( (rc = bzimage_parse(image_base, &image_start, &image_len)) != 0 )
+    {
+        printk("Error trying to detect bz compressed kernel\n");
+        return rc;
+    }
+
+    if ( (rc = elf_init(&elf, image_start, image_len)) != 0 )
+    {
+        printk("Unable to init ELF\n");
+        return rc;
+    }
+    if ( opt_dom0_verbose )
+        elf_set_verbose(&elf);
+    elf_parse_binary(&elf);
+    if ( (rc = elf_xen_parse(&elf, &parms, true)) != 0 )
+    {
+        printk("Unable to parse kernel for ELFNOTES\n");
+        if ( elf_check_broken(&elf) )
+            printk("%pd kernel: broken ELF: %s\n", d, elf_check_broken(&elf));
+        return rc;
+    }
+
+    if ( parms.phys_entry == UNSET_ADDR32 )
+    {
+        printk("Unable to find XEN_ELFNOTE_PHYS32_ENTRY address\n");
+        return -EINVAL;
+    }
+
+    /* Copy the OS image and free temporary buffer. */
+    elf.dest_base = (void *)(parms.virt_kstart - parms.virt_base);
+    elf.dest_size = parms.virt_kend - parms.virt_kstart;
+
+    if ( !check_and_adjust_load_address(d, &elf, &parms) )
+        return -ENOSPC;
+
+    elf_set_vcpu(&elf, v);
+    rc = elf_load_binary(&elf);
+    if ( rc < 0 )
+    {
+        printk("Failed to load kernel: %d\n", rc);
+        if ( elf_check_broken(&elf) )
+            printk("%pd kernel: broken ELF: %s\n", d, elf_check_broken(&elf));
+        return rc;
+    }
+
+    /*
+     * 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
+     * split into smaller allocations, done as a single region in order to
+     * simplify it.
+     */
+    extra_space = sizeof(start_info);
+
+    if ( initrd )
+    {
+        size_t initrd_space = elf_round_up(&elf, initrd_len);
+
+        if ( initrd->cmdline_pa )
+        {
+            initrd_cmdline = __va(initrd->cmdline_pa);
+            if ( !*initrd_cmdline )
+                initrd_cmdline = NULL;
+        }
+        if ( initrd_cmdline )
+            initrd_space += strlen(initrd_cmdline) + 1;
+
+        if ( initrd_space )
+            extra_space += ROUNDUP(initrd_space, PAGE_SIZE) + sizeof(mod);
+        else
+            initrd = NULL;
+    }
+
+    if ( bd->cmdline )
+        extra_space += elf_round_up(&elf, strlen(bd->cmdline) + 1);
+
+    last_addr = find_memory(d, &elf, extra_space);
+    if ( last_addr == INVALID_PADDR )
+    {
+        printk("Unable to find a memory region to load initrd and metadata\n");
+        return -ENOMEM;
+    }
+
+    if ( initrd != NULL )
+    {
+        rc = hvm_copy_to_guest_phys(last_addr, __va(initrd->start),
+                                    initrd_len, v);
+        if ( rc )
+        {
+            printk("Unable to copy initrd to guest\n");
+            return rc;
+        }
+
+        mod.paddr = last_addr;
+        mod.size = initrd_len;
+        last_addr += elf_round_up(&elf, initrd_len);
+        if ( initrd_cmdline )
+        {
+            size_t len = strlen(initrd_cmdline) + 1;
+
+            rc = hvm_copy_to_guest_phys(last_addr, initrd_cmdline, len, v);
+            if ( rc )
+            {
+                printk("Unable to copy module command line\n");
+                return rc;
+            }
+            mod.cmdline_paddr = last_addr;
+            last_addr += len;
+        }
+        last_addr = ROUNDUP(last_addr, PAGE_SIZE);
+    }
+
+    /* Free temporary buffers. */
+    free_boot_modules();
+
+    if ( bd->cmdline )
+    {
+        rc = hvm_copy_to_guest_phys(last_addr, bd->cmdline,
+                                    strlen(bd->cmdline) + 1, v);
+        if ( rc )
+        {
+            printk("Unable to copy guest command line\n");
+            return rc;
+        }
+        start_info.cmdline_paddr = last_addr;
+        /*
+         * Round up to 32/64 bits (depending on the guest kernel bitness) so
+         * the modlist/start_info is aligned.
+         */
+        last_addr += elf_round_up(&elf, strlen(bd->cmdline) + 1);
+    }
+    if ( initrd != NULL )
+    {
+        rc = hvm_copy_to_guest_phys(last_addr, &mod, sizeof(mod), v);
+        if ( rc )
+        {
+            printk("Unable to copy guest modules\n");
+            return rc;
+        }
+        start_info.modlist_paddr = last_addr;
+        start_info.nr_modules = 1;
+        last_addr += sizeof(mod);
+    }
+
+    start_info.magic = XEN_HVM_START_MAGIC_VALUE;
+    start_info.flags = SIF_PRIVILEGED | SIF_INITDOMAIN;
+    rc = hvm_copy_to_guest_phys(last_addr, &start_info, sizeof(start_info), v);
+    if ( rc )
+    {
+        printk("Unable to copy start info to guest\n");
+        return rc;
+    }
+
+    *entry = parms.phys_entry;
+    *start_info_addr = last_addr;
+
+    return 0;
+}
+
 int __init dom_construct_pvh(struct boot_domain *bd)
 {
+    paddr_t entry, start_info;
     int rc;
 
     printk(XENLOG_INFO "*** Building a PVH Dom%d ***\n", bd->domid);
@@ -327,7 +659,35 @@ int __init dom_construct_pvh(struct boot_domain *bd)
         return rc;
     }
 
-    return dom0_construct_pvh(bd);
+    rc = pvh_load_kernel(bd, &entry, &start_info);
+    if ( rc )
+    {
+        printk("Failed to load Dom0 kernel\n");
+        return rc;
+    }
+
+    rc = hvm_setup_cpus(bd->d, entry, start_info);
+    if ( rc )
+    {
+        printk("Failed to setup Dom0 CPUs: %d\n", rc);
+        return rc;
+    }
+
+    rc = dom0_pvh_setup_acpi(bd->d, start_info);
+    if ( rc )
+    {
+        printk("Failed to setup Dom0 ACPI tables: %d\n", rc);
+        return rc;
+    }
+
+    if ( opt_dom0_verbose )
+    {
+        printk("Dom%u memory map:\n", bd->domid);
+        print_e820_memory_map(bd->d->arch.e820, bd->d->arch.nr_e820);
+    }
+
+    printk("WARNING: PVH is an experimental mode with limited functionality\n");
+    return 0;
 }
 
 /*
diff --git a/xen/arch/x86/include/asm/dom0_build.h b/xen/arch/x86/include/asm/dom0_build.h
index 3819b3f4e7a4..6947aaa1dce3 100644
--- a/xen/arch/x86/include/asm/dom0_build.h
+++ b/xen/arch/x86/include/asm/dom0_build.h
@@ -24,7 +24,6 @@ int dom0_pvh_setup_acpi(struct domain *d, paddr_t start_info);
 int dom0_pvh_populate_p2m(struct domain *d);
 
 int dom0_construct_pv(struct boot_domain *bd);
-int dom0_construct_pvh(struct boot_domain *bd);
 
 void dom0_update_physmap(bool compat, unsigned long pfn,
                          unsigned long mfn, unsigned long vphysmap_s);
-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Sat Apr 19 22:21:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 19 Apr 2025 22:21:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.960237.1352315 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6GYp-0003O5-7Q; Sat, 19 Apr 2025 22:21:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 960237.1352315; Sat, 19 Apr 2025 22:21: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 1u6GYo-0003Lz-QS; Sat, 19 Apr 2025 22:21:18 +0000
Received: by outflank-mailman (input) for mailman id 960237;
 Sat, 19 Apr 2025 22:21: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=nqik=XF=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1u6GQa-0004yY-Es
 for xen-devel@lists.xenproject.org; Sat, 19 Apr 2025 22:12:48 +0000
Received: from sender4-of-o50.zoho.com (sender4-of-o50.zoho.com
 [136.143.188.50]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6c1f3d9a-1d6b-11f0-9eb0-5ba50f476ded;
 Sun, 20 Apr 2025 00:12:47 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 1745100552055701.4359410353334;
 Sat, 19 Apr 2025 15:09: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: 6c1f3d9a-1d6b-11f0-9eb0-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; t=1745100554; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=Pi5BETfqw22ls3M0dj/Fc9zbpkxZYOYO0Ys+U9C99s/UY5NuARj9msv0te8TZvdQ4YQEJepkp0Lh5caBXjSTgD+8cssYjNn818Ra5fzOvsuQ3L1PFSS2Lrnuk7LQrwkaFvvAT2gkZTptsZcfrKqc3E0tUxZRCy0+900I9/NtJ8E=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1745100554; 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=ErU8vuQ7J87fC+REu5nsdOrzqMN/uQj7jaoh0kca6jQ=; 
	b=TVW4abfNNk+4TTncybXwfIH8nIcwpmgRDmsMVmdLaZcQFpdP7kSlnDjJQbPVjfiMr9gCOL+7XRy7h3j0DNHHaEpd+e8V8OiuRF3+ACQcBc6fiLCVpBJvJH4Z9Bg0kPrJGTKjEz3T0XxFzNU11TIko3GoMeGmqNDBiteMFaPsBCo=
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=1745100554;
	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=ErU8vuQ7J87fC+REu5nsdOrzqMN/uQj7jaoh0kca6jQ=;
	b=vezoF10khKIC1HNu4QNYl20h7IXUDCZJLJPS1LWcA1pre8zEF6vDZoLf2at6n15B
	h6vSOc6nY/7USaAhlG3e6B06KeGfkosDYtmtwL3unr8TH/Ubp/ZtcQtz3myTkvJNEJk
	ISZrDmDb0CDDiT8VL0N4kbhWrSmEujQDETsBaHaM=
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
To: xen-devel@lists.xenproject.org
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	jason.andryuk@amd.com,
	stefano.stabellini@amd.com,
	agarciav@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: [RFC 27/38] x86/hyperlaunch: introduce domain builder general dom creation
Date: Sat, 19 Apr 2025 18:08:09 -0400
Message-Id: <20250419220820.4234-28-dpsmith@apertussolutions.com>
X-Mailer: git-send-email 2.30.2
In-Reply-To: <20250419220820.4234-1-dpsmith@apertussolutions.com>
References: <20250419220820.4234-1-dpsmith@apertussolutions.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

Introduce the builder_create_domains() function that provides the domain
construciton abstraction for the hyperlaunch domain builder.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
---
 xen/arch/x86/domain-builder/core.c        | 17 +++++++++++++++
 xen/arch/x86/include/asm/bootinfo.h       | 26 +++++++++++++++++++++++
 xen/arch/x86/include/asm/domain-builder.h |  1 +
 xen/arch/x86/setup.c                      | 23 +++++++++++++++++---
 4 files changed, 64 insertions(+), 3 deletions(-)

diff --git a/xen/arch/x86/domain-builder/core.c b/xen/arch/x86/domain-builder/core.c
index 8d137ecaaf84..2f0b8bd82c3a 100644
--- a/xen/arch/x86/domain-builder/core.c
+++ b/xen/arch/x86/domain-builder/core.c
@@ -9,6 +9,7 @@
 
 #include <asm/bootinfo.h>
 #include <asm/setup.h>
+#include <asm/domain-builder.h>
 
 #include "fdt.h"
 
@@ -102,6 +103,22 @@ void __init builder_init(struct boot_info *bi)
     }
 }
 
+unsigned int __init builder_create_domains(struct boot_info *bi)
+{
+    unsigned int build_count = 0;
+    struct boot_domain *bd = &bi->domains[0];
+
+    if ( bd->kernel == NULL && bd->capabilities & BUILD_CAPS_CONTROL )
+        panic("%s: control domain missing kernel\n", __func__);
+
+
+    arch_create_dom(bi, bd);
+    if ( bd->d )
+        build_count++;
+
+    return build_count;
+}
+
 /*
  * Local variables:
  * mode: C
diff --git a/xen/arch/x86/include/asm/bootinfo.h b/xen/arch/x86/include/asm/bootinfo.h
index 5b2c93b1ef9e..430ae08cf5ef 100644
--- a/xen/arch/x86/include/asm/bootinfo.h
+++ b/xen/arch/x86/include/asm/bootinfo.h
@@ -132,6 +132,32 @@ static inline unsigned int __init next_boot_module_index(
           (i) <= (b)->nr_modules;                       \
           (i) = next_boot_module_index(b, t, i + 1) )
 
+/*
+ * next_boot_domain_index:
+ *     Finds the next boot domain with capability cap, starting at array index
+ *     start.
+ *
+ * Returns:
+ *      Success - index in boot_domains array
+ *      Failure - a value greater than MAX_NR_BOOTDOMS
+ */
+static inline unsigned int __init next_boot_domain_index(
+    const struct boot_info *bi, uint32_t cap, unsigned int start)
+{
+    int i;
+
+    for ( i = start; i < bi->nr_domains; i++ )
+    {
+        if ( bi->domains[i].capabilities & cap )
+            return i;
+    }
+
+    return MAX_NR_BOOTDOMS + 1;
+}
+
+#define first_boot_domain_index(bi, cap)              \
+    next_boot_domain_index(bi, cap, 0)
+
 #endif /* X86_BOOTINFO_H */
 
 /*
diff --git a/xen/arch/x86/include/asm/domain-builder.h b/xen/arch/x86/include/asm/domain-builder.h
index ccab02c3a1fd..5dc5661bec07 100644
--- a/xen/arch/x86/include/asm/domain-builder.h
+++ b/xen/arch/x86/include/asm/domain-builder.h
@@ -8,6 +8,7 @@ int __init builder_get_cmdline(
     struct boot_info *bi, int offset, char *cmdline, size_t size);
 
 void builder_init(struct boot_info *bi);
+unsigned int builder_create_domains(struct boot_info *bi);
 
 struct domain *arch_create_dom(
     struct boot_info *bi, struct boot_domain *bd);
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 8f956b6eca4f..da5a8e8d8ed3 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -2015,9 +2015,26 @@ 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 = arch_create_dom(bi, &bi->domains[0]);
-    if ( !dom0 )
-        panic("Could not set up DOM0 guest OS\n");
+    ret = builder_create_domains(bi);
+    if ( ret <= 0 )
+        panic("Could not set up boot-time domains\n");
+    else
+        printk(XENLOG_INFO "Constructed %d boot-time domains\n", ret);
+
+    /* Selection order: hardware domain, control domain, first domain */
+    i = first_boot_domain_index(bi, BUILD_CAPS_HARDWARE);
+    if ( i >= MAX_NR_BOOTDOMS )
+    {
+        i = first_boot_domain_index(bi, BUILD_CAPS_CONTROL);
+        if ( i >= MAX_NR_BOOTDOMS )
+        {
+            printk(XENLOG_WARNING
+                   "A hwdom/ctrldom not detected, using 0th domain\n");
+            i = 0;
+        }
+    }
+
+    dom0 = bi->domains[i].d;
 
     heap_init_late();
 
-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Sat Apr 19 22:21:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 19 Apr 2025 22:21:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.960252.1352334 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6GYu-0004Sn-TG; Sat, 19 Apr 2025 22:21:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 960252.1352334; Sat, 19 Apr 2025 22: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 1u6GYu-0004SO-Iy; Sat, 19 Apr 2025 22:21:24 +0000
Received: by outflank-mailman (input) for mailman id 960252;
 Sat, 19 Apr 2025 22:21: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=nqik=XF=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1u6GRT-0004yY-T6
 for xen-devel@lists.xenproject.org; Sat, 19 Apr 2025 22:13:43 +0000
Received: from sender4-of-o50.zoho.com (sender4-of-o50.zoho.com
 [136.143.188.50]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8cf644d5-1d6b-11f0-9eb0-5ba50f476ded;
 Sun, 20 Apr 2025 00:13:42 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 1745100563151665.1808490006621;
 Sat, 19 Apr 2025 15:09: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: 8cf644d5-1d6b-11f0-9eb0-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; t=1745100571; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=anWjUrDEW6/RaRHcc8BAKESuY1HNFS30V8ANqIDZoiceXVZn27xsv2RbJGuRHjZ0IaHMwVcRu+7zVHlohroibwI22bER1d9BKQ7UmDclWChyY9EIMIqYzJx3bcF8Ub6dIFllkJMVDwY9r8kMt1rizFTKJ9Xgl0TtBN96UMxFTEQ=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1745100571; 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=xTTdPfDolfNjAS0Qvmz0FxzFVp9V69k5pb2zgYetYhg=; 
	b=PI1y5fbyqhMuuMmwVBO8UJrEUHmh4QVtiKXtKZhnR+yLI2gVTRsAGHtg/UaQ9XUMqwPw+NE/Oq77sRiKnZl4hcuH0BpDY1Cd57xEZCsZ0WEEzgnLybG0nUozddfdJsiKEVuv6O0uej/qnY/vNbEo3qWTOpxVUwB6SnQNoHiVtes=
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=1745100571;
	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=xTTdPfDolfNjAS0Qvmz0FxzFVp9V69k5pb2zgYetYhg=;
	b=a0ooV0zfRFp3A8MxgK6mqydxzeHTgOL5Q1RQyvzbHmvHexjOjiQzhaq1hgEwkBoq
	lXkTx2EcQsmi6a2xkWAmCTooNLxvsARFZ1rA+kwhdlmH2BOk76lJMGc8OmUH+3Lz5Nb
	194UsoKNenheT+hrBN0Fc6rWTHN0n8zgjf7uNGgo=
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
To: xen-devel@lists.xenproject.org
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	jason.andryuk@amd.com,
	stefano.stabellini@amd.com,
	agarciav@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: [RFC 30/38] x86/hyperlaunch: allocate xenstore for domu
Date: Sat, 19 Apr 2025 18:08:12 -0400
Message-Id: <20250419220820.4234-31-dpsmith@apertussolutions.com>
X-Mailer: git-send-email 2.30.2
In-Reply-To: <20250419220820.4234-1-dpsmith@apertussolutions.com>
References: <20250419220820.4234-1-dpsmith@apertussolutions.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

During domU construction, a page of memory and an event channel must be setup
for xenstore connection. In this commit, a page from the special page region of
domU is setup as the xenstore page along with an event channel. The page
address and event channel are published in the HVM parameters, so the domain
can be announced to Xenstore.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
---
 xen/arch/x86/domain-builder/domain.c   | 38 ++++++++++++++++++++++++--
 xen/arch/x86/hvm/dom_build.c           | 32 ++++++++++++++++++++++
 xen/arch/x86/include/asm/boot-domain.h |  2 +-
 3 files changed, 69 insertions(+), 3 deletions(-)

diff --git a/xen/arch/x86/domain-builder/domain.c b/xen/arch/x86/domain-builder/domain.c
index 7ce069a57c5d..b413a87cc9c9 100644
--- a/xen/arch/x86/domain-builder/domain.c
+++ b/xen/arch/x86/domain-builder/domain.c
@@ -240,6 +240,38 @@ static int __init alloc_console_evtchn(
     return 0;
 }
 
+static int __init alloc_store_evtchn(
+    const struct boot_info *bi, struct boot_domain *bd)
+{
+    evtchn_alloc_unbound_t evtchn_req;
+    const struct boot_domain *xsdom;
+    int idx, rc;
+
+    idx = first_boot_domain_index(bi, BUILD_CAPS_XENSTORE);
+    if ( idx < 0 )
+    {
+        printk(XENLOG_WARNING "No backing xenstore domain for %pdv\n",
+               bd->d);
+        return -EINVAL;
+    }
+
+    if ( bi->domains[idx].d )
+        xsdom = &bi->domains[idx];
+    else
+    {
+        printk(XENLOG_WARNING "Xenstore domain for %pd console not constructed\n",
+               bd->d);
+        return -EINVAL;
+    }
+
+    if ( (rc = alloc_dom_evtchn(bd, xsdom, &evtchn_req)) < 0 )
+        return rc;
+
+    bd->store.evtchn = evtchn_req.port;
+
+    return 0;
+}
+
 static size_t __init domain_cmdline_size(
     struct boot_info *bi, struct boot_domain *bd)
 {
@@ -362,8 +394,10 @@ struct domain *__init arch_create_dom(
         bd->cmdline = cmdline;
     }
 
-   if ( !(bd->capabilities & BUILD_CAPS_HARDWARE) )
-       alloc_console_evtchn(bi, bd);
+    if ( !(bd->capabilities & BUILD_CAPS_XENSTORE) )
+        alloc_store_evtchn(bi, bd);
+    if ( !(bd->capabilities & BUILD_CAPS_HARDWARE) )
+        alloc_console_evtchn(bi, bd);
 
     if ( construct_dom0(bd) != 0 )
         panic("Could not construct domain 0\n");
diff --git a/xen/arch/x86/hvm/dom_build.c b/xen/arch/x86/hvm/dom_build.c
index 934ae138e58f..2798542e5483 100644
--- a/xen/arch/x86/hvm/dom_build.c
+++ b/xen/arch/x86/hvm/dom_build.c
@@ -930,6 +930,35 @@ static int __init alloc_console_page(struct boot_domain *bd)
     return 0;
 }
 
+static int __init alloc_xenstore_page(struct boot_domain *bd)
+{
+    paddr_t xs_addr = special_pfn(SPECIALPAGE_XENSTORE) << PAGE_SHIFT;
+    uint32_t fields[7] = { 0, 0, 0, 0, 0, 1, 0};
+
+    if ( !port_is_valid(bd->d, bd->store.evtchn) )
+    {
+        printk("No event channel available for %pd xenstore\n", bd->d);
+        return -EINVAL;
+    }
+
+    /*
+     * Set connection field to XENSTORE_RECONNECT, where the
+     * xenstore_domain_interface fields are located after the 2 1024 buffers
+     */
+    if ( hvm_copy_to_guest_phys(xs_addr + 2048, fields, sizeof(fields),
+                                bd->d->vcpu[0]) )
+    {
+        printk("Unable to set xenstore connection state\n");
+        return -EFAULT;
+    }
+
+    bd->store.gfn = gfn_x(gaddr_to_gfn(xs_addr));
+    bd->d->arch.hvm.params[HVM_PARAM_STORE_PFN] = bd->store.gfn;
+    bd->d->arch.hvm.params[HVM_PARAM_STORE_EVTCHN] = bd->store.evtchn;
+
+    return 0;
+}
+
 int __init dom_construct_pvh(struct boot_domain *bd)
 {
     paddr_t entry, start_info;
@@ -1009,6 +1038,9 @@ int __init dom_construct_pvh(struct boot_domain *bd)
     if ( !is_hardware_domain(bd->d) )
         alloc_console_page(bd);
 
+    if ( !is_xenstore_domain(bd->d) )
+        alloc_xenstore_page(bd);
+
     if ( opt_dom0_verbose )
     {
         printk("Dom%u memory map:\n", bd->domid);
diff --git a/xen/arch/x86/include/asm/boot-domain.h b/xen/arch/x86/include/asm/boot-domain.h
index cb6e1fab23ba..df2bfa0c94fa 100644
--- a/xen/arch/x86/include/asm/boot-domain.h
+++ b/xen/arch/x86/include/asm/boot-domain.h
@@ -41,7 +41,7 @@ struct boot_domain {
     struct {
         xen_pfn_t gfn;
         evtchn_port_t evtchn;
-    } console;
+    } console, store;
 };
 
 #endif
-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Sat Apr 19 22:21:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 19 Apr 2025 22:21:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.960253.1352337 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6GYv-0004Tz-3y; Sat, 19 Apr 2025 22:21:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 960253.1352337; Sat, 19 Apr 2025 22: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 1u6GYu-0004TG-RH; Sat, 19 Apr 2025 22:21:24 +0000
Received: by outflank-mailman (input) for mailman id 960253;
 Sat, 19 Apr 2025 22:21: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=nqik=XF=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1u6GPo-0004yY-Qt
 for xen-devel@lists.xenproject.org; Sat, 19 Apr 2025 22:12:00 +0000
Received: from sender4-of-o50.zoho.com (sender4-of-o50.zoho.com
 [136.143.188.50]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4fbae569-1d6b-11f0-9eb0-5ba50f476ded;
 Sun, 20 Apr 2025 00:11:59 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 1745100546108391.4594608164257;
 Sat, 19 Apr 2025 15:09: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: 4fbae569-1d6b-11f0-9eb0-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; t=1745100552; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=kAFDjP5hC/DHyg5mi6B3pHJBMWipG3yLUNWg01uonydE8pTfNXXDcdtzsjd7XgIvtqBWlumi3KZ4KldEuVank4Zf1x3WEcRQ+ZUFYVBV0DPYpUZgP50P+XKJkRRLktcqHe00QGlc8gdd5Zz5sBrMVmC6cYAjnZzAV6lB/zZRNq0=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1745100552; 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=2KWTr4dpH7kEQOohwPUOqAsWDUBqr7T/oi51YKgyffE=; 
	b=FoRsKBowGPNcX9U26cYDOaPk1heW/XtkCmr5Nn54gMoJkfPALQ2aIu9qCH9hA5tJle8RYGw/2hTuQQJ6YhUi02FeKj8xrENcDS3dgIozCRwrW2O3GStzz7vmsgk4g5Ie9NgPB546PRG5EVOo9plLpO2y0BePs9rrjupmE+Bx6rg=
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=1745100552;
	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=2KWTr4dpH7kEQOohwPUOqAsWDUBqr7T/oi51YKgyffE=;
	b=KBYjqrE3I3JYg6L8aOmLkCsdtPMnvPTK4wDq2Ffu9BKz13Su1VI6XrULRGip/CFi
	FVxTm8YhlmRD2OONDaBReMycZUdNkYudxCy9RN47JhqcjWAywO1GaNjdr9qAihp42d6
	77/uzzeaJuTBxAryeHfDZiDHLR9beggrEY+LxikI=
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
To: xen-devel@lists.xenproject.org
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	jason.andryuk@amd.com,
	stefano.stabellini@amd.com,
	agarciav@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: [RFC 20/38] x86/hyperlaunch: move populating p2m under domain builder
Date: Sat, 19 Apr 2025 18:08:02 -0400
Message-Id: <20250419220820.4234-21-dpsmith@apertussolutions.com>
X-Mailer: git-send-email 2.30.2
In-Reply-To: <20250419220820.4234-1-dpsmith@apertussolutions.com>
References: <20250419220820.4234-1-dpsmith@apertussolutions.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

Introduce hvm_populate_p2m() for populating domU p2m maps. Rename
pvh_populate_p2m() to dom0_pvh_populate_p2m() and export it. With these
adjustments, move the calls to populate the p2m maps under domain builder.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
---
 xen/arch/x86/hvm/dom0_build.c             | 14 ++------
 xen/arch/x86/hvm/dom_build.c              | 39 +++++++++++++++++++++++
 xen/arch/x86/include/asm/dom0_build.h     |  1 +
 xen/arch/x86/include/asm/domain-builder.h |  2 ++
 4 files changed, 45 insertions(+), 11 deletions(-)

diff --git a/xen/arch/x86/hvm/dom0_build.c b/xen/arch/x86/hvm/dom0_build.c
index 8ea4c7bd2792..73ce33fb17f1 100644
--- a/xen/arch/x86/hvm/dom0_build.c
+++ b/xen/arch/x86/hvm/dom0_build.c
@@ -88,9 +88,8 @@ static int __init modify_identity_mmio(struct domain *d, unsigned long pfn,
 }
 
 /* Populate a HVM memory range using the biggest possible order. */
-static int __init pvh_populate_memory_range(struct domain *d,
-                                            unsigned long start,
-                                            unsigned long nr_pages)
+int __init pvh_populate_memory_range(
+    struct domain *d, unsigned long start, unsigned long nr_pages)
 {
     static const struct {
         unsigned long align;
@@ -399,7 +398,7 @@ void __init dom0_pvh_setup_e820(struct domain *d, unsigned long nr_pages)
     ASSERT(cur_pages == nr_pages);
 }
 
-static int __init pvh_populate_p2m(struct domain *d)
+int __init dom0_pvh_populate_p2m(struct domain *d)
 {
     struct vcpu *v = d->vcpu[0];
     unsigned int i;
@@ -1262,13 +1261,6 @@ int __init dom0_construct_pvh(struct boot_domain *bd)
     struct domain *d = bd->d;
     int rc;
 
-    rc = pvh_populate_p2m(d);
-    if ( rc )
-    {
-        printk("Failed to setup Dom0 physical memory map\n");
-        return rc;
-    }
-
     rc = pvh_load_kernel(bd, &entry, &start_info);
     if ( rc )
     {
diff --git a/xen/arch/x86/hvm/dom_build.c b/xen/arch/x86/hvm/dom_build.c
index 658d3d170e64..9421dc431ba9 100644
--- a/xen/arch/x86/hvm/dom_build.c
+++ b/xen/arch/x86/hvm/dom_build.c
@@ -23,6 +23,8 @@
 #include <asm/dom0_build.h>
 #include <asm/domain-builder.h>
 #include <asm/hvm/io.h>
+#include <asm/hvm/support.h>
+#include <asm/p2m.h>
 #include <asm/paging.h>
 #include <asm/pci.h>
 
@@ -247,6 +249,33 @@ int __init hvm_setup_cpus(
     return 0;
 }
 
+static int __init hvm_populate_p2m(struct domain *d)
+{
+    unsigned int i;
+
+    /* Populate memory map. */
+    for ( i = 0; i < d->arch.nr_e820; i++ )
+    {
+        int rc;
+        unsigned long addr, size;
+
+        if ( d->arch.e820[i].type != E820_RAM &&
+             d->arch.e820[i].type != E820_ACPI &&
+             PFN_DOWN(d->arch.e820[i].addr) != START_SPECIAL_REGION )
+                continue;
+
+        addr = PFN_DOWN(d->arch.e820[i].addr);
+        size = PFN_DOWN(d->arch.e820[i].size);
+
+        rc = pvh_populate_memory_range(d, addr, size);
+        if ( rc )
+            return rc;
+
+    }
+
+    return 0;
+}
+
 int __init dom_construct_pvh(struct boot_domain *bd)
 {
     int rc;
@@ -288,6 +317,16 @@ int __init dom_construct_pvh(struct boot_domain *bd)
     if ( is_hardware_domain(bd->d) )
         iommu_hwdom_init(bd->d);
 
+    if ( is_control_domain(bd->d) || is_hardware_domain(bd->d) )
+        rc = dom0_pvh_populate_p2m(bd->d);
+    else
+        rc = hvm_populate_p2m(bd->d);
+    if ( rc )
+    {
+        printk("Failed to setup HVM/PVH %pd physical memory map\n", bd->d);
+        return rc;
+    }
+
     return dom0_construct_pvh(bd);
 }
 
diff --git a/xen/arch/x86/include/asm/dom0_build.h b/xen/arch/x86/include/asm/dom0_build.h
index 36f563bd9d5b..3819b3f4e7a4 100644
--- a/xen/arch/x86/include/asm/dom0_build.h
+++ b/xen/arch/x86/include/asm/dom0_build.h
@@ -21,6 +21,7 @@ void dom0_pv_restrict_pages(
 void dom0_pvh_setup_e820(struct domain *d, unsigned long nr_pages);
 
 int dom0_pvh_setup_acpi(struct domain *d, paddr_t start_info);
+int dom0_pvh_populate_p2m(struct domain *d);
 
 int dom0_construct_pv(struct boot_domain *bd);
 int dom0_construct_pvh(struct boot_domain *bd);
diff --git a/xen/arch/x86/include/asm/domain-builder.h b/xen/arch/x86/include/asm/domain-builder.h
index 7bc2fbe66bc2..fa6fa60841ab 100644
--- a/xen/arch/x86/include/asm/domain-builder.h
+++ b/xen/arch/x86/include/asm/domain-builder.h
@@ -10,6 +10,8 @@ int __init builder_get_cmdline(
 void builder_init(struct boot_info *bi);
 
 int hvm_setup_cpus(struct domain *d, paddr_t entry, paddr_t start_info);
+int pvh_populate_memory_range(
+    struct domain *d, unsigned long start, unsigned long nr_pages);
 
 unsigned long dom_paging_pages(
     const struct boot_domain *d, unsigned long nr_pages);
-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Sat Apr 19 22:21:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 19 Apr 2025 22:21:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.960254.1352351 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6GYw-0004sF-IY; Sat, 19 Apr 2025 22:21:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 960254.1352351; Sat, 19 Apr 2025 22: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 1u6GYw-0004qZ-7M; Sat, 19 Apr 2025 22:21:26 +0000
Received: by outflank-mailman (input) for mailman id 960254;
 Sat, 19 Apr 2025 22:21: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=nqik=XF=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1u6GPw-0004yY-HI
 for xen-devel@lists.xenproject.org; Sat, 19 Apr 2025 22:12:08 +0000
Received: from sender4-of-o50.zoho.com (sender4-of-o50.zoho.com
 [136.143.188.50]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 54384874-1d6b-11f0-9eb0-5ba50f476ded;
 Sun, 20 Apr 2025 00:12:07 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 1745100548675466.4706189515272;
 Sat, 19 Apr 2025 15:09: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: 54384874-1d6b-11f0-9eb0-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; t=1745100552; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=ElxRJqYtZe7ohyN2i5hH9DKMkius3OTgqmRUQSCXRFxaKRBAJv56z/TU5ZF7LXnQt/ollB0by6LCc5/5l9M0DJqLHRSnJhGdRtnFVAxnXTi4pj49BuGZLsgtBig7s/ONX2vNYR6Pqve3SiPjqx5W1A6vCckRkGWM+lLSK9UGICw=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1745100552; 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=GejcDqJh4eQpJAs/6oq6gMhMd3jidjZDIYzSmQIkSCQ=; 
	b=JpR0xaxhPe6R70jq41xcFaG52X7TLQRb5rwfVubIvvuvl1yczoqyAac9kIyqJ/SKlBHldlnIidJT5QWi+tRBTpRss25uXxZ0CcIIr0dKsZAMmIE2M9712kZtUJoPbqUVR2BaRIy3TiKcnQ573Bd/e1uJoGPN+2b16wSa7dsri14=
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=1745100552;
	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=GejcDqJh4eQpJAs/6oq6gMhMd3jidjZDIYzSmQIkSCQ=;
	b=iKmWKfuSxPlOaKxRc30RWqNNqG1Apa1rBEX2BdlEgkZfQS+pImHabGak0DFLIGP2
	Z/TEWxW2yeQ4E0K7vsz49ytpuKPVjRkQ9DOqkbd8v12R5JFZXt01IMq/k3vsJsOrBka
	KCBB+CCfSmrF9I79FqQ6dPtvDbaFRmv3Oks4zAmY=
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
To: xen-devel@lists.xenproject.org
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	jason.andryuk@amd.com,
	stefano.stabellini@amd.com,
	agarciav@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: [RFC 23/38] x86/hyperlaunch: add domu acpi construction
Date: Sat, 19 Apr 2025 18:08:05 -0400
Message-Id: <20250419220820.4234-24-dpsmith@apertussolutions.com>
X-Mailer: git-send-email 2.30.2
In-Reply-To: <20250419220820.4234-1-dpsmith@apertussolutions.com>
References: <20250419220820.4234-1-dpsmith@apertussolutions.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

Introduce hvm_setup_acpi() that will construct an APCI table for a general HVM
domU guest.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
---
 xen/arch/x86/hvm/dom_build.c | 213 ++++++++++++++++++++++++++++++++++-
 1 file changed, 212 insertions(+), 1 deletion(-)

diff --git a/xen/arch/x86/hvm/dom_build.c b/xen/arch/x86/hvm/dom_build.c
index f997f293f329..c482d5c2d974 100644
--- a/xen/arch/x86/hvm/dom_build.c
+++ b/xen/arch/x86/hvm/dom_build.c
@@ -408,6 +408,214 @@ int __init hvm_add_mem_range(
     return 0;
 }
 
+static int __init hvm_setup_acpi_madt(
+    struct domain *d, struct acpi_table_madt *madt)
+{
+    struct acpi_table_header *table;
+    struct acpi_madt_local_apic *lapic;
+    acpi_status status;
+    unsigned long size = hvm_size_acpi_madt(d);
+    int i;
+
+    /* Copy the native MADT table header. */
+    status = acpi_get_table(ACPI_SIG_MADT, 0, &table);
+    if ( !ACPI_SUCCESS(status) )
+    {
+        printk("Failed to get MADT ACPI table, aborting.\n");
+        return -EINVAL;
+    }
+    madt->header = *table;
+    madt->address = APIC_DEFAULT_PHYS_BASE;
+    /*
+     * NB: this is currently set to 4, which is the revision in the ACPI
+     * spec 6.1. Sadly ACPICA doesn't provide revision numbers for the
+     * tables described in the headers.
+     */
+    madt->header.revision = min_t(unsigned char, table->revision, 4);
+
+    lapic = (void *)(madt + 1);
+
+    for ( i = 0; i < d->max_vcpus; i++ )
+    {
+        lapic->header.type = ACPI_MADT_TYPE_LOCAL_APIC;
+        lapic->header.length = sizeof(*lapic);
+        lapic->id = i * 2;
+        lapic->processor_id = i;
+        lapic->lapic_flags = ACPI_MADT_ENABLED;
+
+        lapic++;
+    }
+
+    madt->header.length = size;
+    /*
+     * Calling acpi_tb_checksum here is a layering violation, but
+     * introducing a wrapper for such simple usage seems overkill.
+     */
+    madt->header.checksum -= acpi_tb_checksum(ACPI_CAST_PTR(u8, madt), size);
+
+    return 0;
+}
+
+static int __init hvm_setup_acpi_xsdt(
+    struct domain *d, struct acpi_table_xsdt *xsdt, paddr_t madt_addr)
+{
+    struct acpi_table_header *table;
+    struct acpi_table_rsdp *rsdp;
+    unsigned long size = hvm_size_acpi_xsdt(d);
+    paddr_t xsdt_paddr;
+
+    /*
+     * Restore original DMAR table signature, we are going to filter it from
+     * the new XSDT that is presented to the guest, so it is no longer
+     * necessary to have it's signature zapped.
+     */
+    acpi_dmar_reinstate();
+
+    /* Copy the native XSDT table header. */
+    rsdp = acpi_os_map_memory(acpi_os_get_root_pointer(), sizeof(*rsdp));
+    if ( !rsdp )
+    {
+        printk("Unable to map RSDP\n");
+        return -EINVAL;
+    }
+    xsdt_paddr = rsdp->xsdt_physical_address;
+    acpi_os_unmap_memory(rsdp, sizeof(*rsdp));
+    table = acpi_os_map_memory(xsdt_paddr, sizeof(*table));
+    if ( !table )
+    {
+        printk("Unable to map XSDT\n");
+        return -EINVAL;
+    }
+    xsdt->header = *table;
+    acpi_os_unmap_memory(table, sizeof(*table));
+
+    /* Add the custom MADT. */
+    xsdt->table_offset_entry[0] = madt_addr;
+
+    xsdt->header.revision = 1;
+    xsdt->header.length = size;
+    /*
+     * Calling acpi_tb_checksum here is a layering violation, but
+     * introducing a wrapper for such simple usage seems overkill.
+     */
+    xsdt->header.checksum -= acpi_tb_checksum(ACPI_CAST_PTR(u8, xsdt), size);
+
+    return 0;
+}
+
+static int __init hvm_alloc_acpi_region(
+    struct domain *d, void **region, unsigned long size, paddr_t *addr)
+{
+    int i;
+
+    *addr = 0;
+
+    for ( i = 0; i < d->arch.nr_e820; i++ )
+    {
+        if ( d->arch.e820[i].type == E820_ACPI )
+        {
+            if ( d->arch.e820[i].size < size )
+                break;
+
+            *addr = d->arch.e820[i].addr;
+            break;
+        }
+    }
+
+    /* The e820 setup did not allocate ACPI region, steal one instead. */
+    if ( *addr == 0 )
+    {
+        if ( hvm_steal_ram(d, size, 0, GB(4), addr) )
+        {
+            printk("Unable to allocate guest RAM for RSDP\n");
+            return -ENOMEM;
+        }
+        if ( hvm_add_mem_range(d, *addr, *addr + size, E820_ACPI) )
+        {
+            printk("Unable to add RSDP region to memory map\n");
+            return -EFAULT;
+        }
+    }
+
+    *region = xzalloc_bytes(size);
+    if ( !region )
+        return -ENOMEM;
+
+    return 0;
+}
+
+static int __init hvm_setup_acpi(struct domain *d, paddr_t start_info)
+{
+    paddr_t rsdp_paddr, xsdt_paddr, madt_paddr;
+    struct acpi_table_rsdp *rsdp;
+    unsigned long size = hvm_size_acpi_region(d);
+    void *table;
+    int rc;
+
+    rc = hvm_alloc_acpi_region(d, &table, size, &rsdp_paddr);
+    if ( rc < 0 )
+        return rc;
+
+    /* RSDP */
+    rsdp = table;
+    xsdt_paddr = rsdp_paddr + sizeof(struct acpi_table_rsdp);
+
+    *rsdp = (struct acpi_table_rsdp){
+        .signature = ACPI_SIG_RSDP,
+        .revision = 2,
+        .length = sizeof(struct acpi_table_rsdp),
+        .oem_id = "XenHL\0", /* Xen Hyperlaunch */
+        .xsdt_physical_address = xsdt_paddr,
+    };
+
+    rsdp->checksum -= acpi_tb_checksum(ACPI_CAST_PTR(u8, rsdp),
+                                       ACPI_RSDP_REV0_SIZE);
+    rsdp->extended_checksum -= acpi_tb_checksum(ACPI_CAST_PTR(u8, rsdp),
+                                                sizeof(*rsdp));
+
+    /* XSDT */
+    table += sizeof(struct acpi_table_rsdp);
+    madt_paddr = xsdt_paddr + hvm_size_acpi_xsdt(d);
+
+    rc = hvm_setup_acpi_xsdt(d, table, madt_paddr);
+    if ( rc )
+    {
+        printk("Unable to construct XSDT\n");
+        goto out;
+    }
+
+
+    /* MADT */
+    table += hvm_size_acpi_xsdt(d);
+    rc = hvm_setup_acpi_madt(d, table);
+    if ( rc )
+    {
+        printk("Unable to construct MADT\n");
+        goto out;
+    }
+
+    /* Copy ACPI region into guest memory. */
+    rc = hvm_copy_to_guest_phys(rsdp_paddr, rsdp, size, d->vcpu[0]);
+    if ( rc )
+    {
+        printk("Unable to copy RSDP into guest memory\n");
+        goto out;
+    }
+
+    /* Copy RSDP address to start_info. */
+    rc = hvm_copy_to_guest_phys(
+        start_info + offsetof(struct hvm_start_info, rsdp_paddr), &rsdp_paddr,
+        sizeof(((struct hvm_start_info *) 0)->rsdp_paddr), d->vcpu[0]);
+    if ( rc )
+        printk("Unable to copy RSDP address to start info\n");
+
+ out:
+    if ( rsdp )
+        xfree(rsdp);
+
+    return rc;
+}
+
 static bool __init check_load_address(
     const struct domain *d, const struct elf_binary *elf)
 {
@@ -757,7 +965,10 @@ int __init dom_construct_pvh(struct boot_domain *bd)
         return rc;
     }
 
-    rc = dom0_pvh_setup_acpi(bd->d, start_info);
+    if ( is_control_domain(bd->d) || is_hardware_domain(bd->d) )
+        rc = dom0_pvh_setup_acpi(bd->d, start_info);
+    else
+        rc = hvm_setup_acpi(bd->d, start_info);
     if ( rc )
     {
         printk("Failed to setup Dom0 ACPI tables: %d\n", rc);
-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Sat Apr 19 22:21:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 19 Apr 2025 22:21:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.960257.1352355 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6GYw-0004v1-Tm; Sat, 19 Apr 2025 22:21:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 960257.1352355; Sat, 19 Apr 2025 22: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 1u6GYw-0004tw-Ib; Sat, 19 Apr 2025 22:21:26 +0000
Received: by outflank-mailman (input) for mailman id 960257;
 Sat, 19 Apr 2025 22: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=nqik=XF=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1u6GP5-0004yY-0x
 for xen-devel@lists.xenproject.org; Sat, 19 Apr 2025 22:11:15 +0000
Received: from sender4-of-o50.zoho.com (sender4-of-o50.zoho.com
 [136.143.188.50]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3368e8e3-1d6b-11f0-9eb0-5ba50f476ded;
 Sun, 20 Apr 2025 00:11:12 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 1745100535464486.0908090025065;
 Sat, 19 Apr 2025 15:08: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: 3368e8e3-1d6b-11f0-9eb0-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; t=1745100540; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=bCgIUk8XLrSRb2+emrpZXS/xMRZZzP/JIQEx1NDclO9uqk/xo1tzfOwUe5TWhyTHKmAUnTQxyNgwAnCptS/HRCwT6CVUODWnuJa8pIhv+1dRMx1Kd0N7jYeueGQWPMhOQHX/peSUAytuXsMQnIYK9ksVQxWCrW4G6nfgKuj+gwY=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1745100540; 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=2DObGwETdwh7JUH3NaImfvU+NN7DFUDrg2HJnLwWc6A=; 
	b=HAgOY8rb0aTpjt9jpcc8JTsXxQdP/tXtGgTf14h4A35Y1BD6tm0EP1lKs24DCbLIqL332Iazdt7b8V3ylm/MnhPfLg+1QK7kjNspHIISCIIzllaKSIIdY8aPcIxmRrJZc0B1FqBf7DQdyjmrOTmDPDiKWiD5Iby6gtbS0scO/KQ=
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=1745100540;
	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=2DObGwETdwh7JUH3NaImfvU+NN7DFUDrg2HJnLwWc6A=;
	b=j+nMrzDa8bS4dUdaFEuJ1m3fb5Ec2PI3xjnWjgqj98wZLn3l4uteUQanGDU1VSIM
	yvc6mqxYUxvOnpR+C3bad+Yh+Ut+XDE/AwFJUAY/2e7LPGY8ZsysxbKSsEnYrhPxu8C
	VCOHJC9PwyhX7FPPzoJNSlk4Reu9Cs88hBOyrqEo=
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
To: xen-devel@lists.xenproject.org
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	jason.andryuk@amd.com,
	stefano.stabellini@amd.com,
	agarciav@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: [RFC 19/38] x86/hyperlaunch: add domu memory map construction
Date: Sat, 19 Apr 2025 18:08:01 -0400
Message-Id: <20250419220820.4234-20-dpsmith@apertussolutions.com>
X-Mailer: git-send-email 2.30.2
In-Reply-To: <20250419220820.4234-1-dpsmith@apertussolutions.com>
References: <20250419220820.4234-1-dpsmith@apertussolutions.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

Introduce hvm_setup_e820() that will build the e820 memory map for a general
domU. To populate the ACPI entry, ACPI table size helpers are introduced. A
conditional is added to the domain builder to select between calling
hvm_setup_e820() and dom0_pvh_setup_e820() depending on if it is building dom0
or a domU.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
---
 xen/arch/x86/hvm/dom_build.c | 149 ++++++++++++++++++++++++++++++++++-
 1 file changed, 148 insertions(+), 1 deletion(-)

diff --git a/xen/arch/x86/hvm/dom_build.c b/xen/arch/x86/hvm/dom_build.c
index 078e42447b0a..658d3d170e64 100644
--- a/xen/arch/x86/hvm/dom_build.c
+++ b/xen/arch/x86/hvm/dom_build.c
@@ -16,6 +16,7 @@
 
 #include <acpi/actables.h>
 
+#include <public/hvm/e820.h>
 #include <public/hvm/hvm_vcpu.h>
 
 #include <asm/bootinfo.h>
@@ -43,12 +44,158 @@ static void __hwdom_init pvh_setup_mmcfg(struct domain *d)
     }
 }
 
+static unsigned long __init hvm_size_acpi_madt(struct domain *d)
+{
+    unsigned long size = sizeof(struct acpi_table_madt);
+
+    size += sizeof(struct acpi_madt_local_apic) * d->max_vcpus;
+
+    return size;
+}
+
+static unsigned long __init hvm_size_acpi_xsdt(struct domain *d)
+{
+    unsigned long size = sizeof(struct acpi_table_xsdt);
+    /* Only adding the MADT table to the XSDT. */
+    unsigned int num_tables = 1;
+
+    /*
+     * No need to add or subtract anything because struct acpi_table_xsdt
+     * includes one array slot already.
+     */
+    size += num_tables * sizeof(uint64_t);
+
+    return size;
+}
+
+static unsigned long __init hvm_size_acpi_region(struct domain *d)
+{
+    unsigned long size = sizeof(struct acpi_table_rsdp);
+
+    size += hvm_size_acpi_xsdt(d);
+    size += hvm_size_acpi_madt(d);
+
+    return ROUNDUP(size, PAGE_SIZE);
+}
+
+/* From xenguest lib */
+#define END_SPECIAL_REGION   0xff000U
+#define NR_SPECIAL_PAGES     8
+#define START_SPECIAL_REGION (END_SPECIAL_REGION - NR_SPECIAL_PAGES)
+
+#define SPECIALPAGE_PAGING   0
+#define SPECIALPAGE_ACCESS   1
+#define SPECIALPAGE_SHARING  2
+#define SPECIALPAGE_BUFIOREQ 3
+#define SPECIALPAGE_XENSTORE 4
+#define SPECIALPAGE_IOREQ    5
+#define SPECIALPAGE_IDENT_PT 6
+#define SPECIALPAGE_CONSOLE  7
+#define special_pfn(x)       (START_SPECIAL_REGION + (x))
+
+/*
+ * Allocation scheme, derived from xenlight/xenguest:
+ *
+ *                                  |  <4G MMIO Hole  |
+ * [ Low Mem ][ RDM Mem ][ >1M Mem ][ ACPI ][ Special ][ High Mem ]
+ *
+ */
+static void __init hvm_setup_e820(struct domain *d, unsigned long nr_pages)
+{
+    const uint32_t lowmem_reserved_base = 0x9e000;
+    const uint32_t rdm_base = 0xa0000, rdm_size = 0x60;
+    unsigned long low_pages, ext_pages, mmio_pages, acpi_pages, high_pages = 0;
+    unsigned long max_ext_pages = (HVM_BELOW_4G_MMIO_START - MB(1)) >> PAGE_SHIFT,
+                  page_count = 0;
+    unsigned nr = 0, e820_entries = 5;
+
+    /* low pages: below 1MB */
+    low_pages = lowmem_reserved_base >> PAGE_SHIFT;
+    if ( low_pages > nr_pages )
+        panic("Insufficient memory for HVM/PVH domain (%pd)\n", d);
+
+    acpi_pages = hvm_size_acpi_region(d) >> PAGE_SHIFT;
+    mmio_pages = acpi_pages + NR_SPECIAL_PAGES;
+
+    /* ext pages: from 1MB to mmio hole */
+    ext_pages = nr_pages - (low_pages + mmio_pages);
+    if ( ext_pages > max_ext_pages )
+        ext_pages = max_ext_pages;
+
+    /* high pages: above 4GB */
+    if ( nr_pages > (low_pages + mmio_pages + ext_pages) )
+        high_pages = nr_pages - (low_pages + mmio_pages + ext_pages);
+
+    /* If we should have a highmem range, add one more e820 entry */
+    if ( high_pages )
+        e820_entries++;
+
+    ASSERT(e820_entries < E820MAX);
+
+    d->arch.e820 = xzalloc_array(struct e820entry, e820_entries);
+    if ( !d->arch.e820 )
+        panic("Unable to allocate memory for boot domain e820 map\n");
+
+    /* usable: Low memory */
+    d->arch.e820[nr].addr = 0x000000;
+    d->arch.e820[nr].size = low_pages << PAGE_SHIFT;
+    d->arch.e820[nr].type = E820_RAM;
+    page_count += d->arch.e820[nr].size >> PAGE_SHIFT;
+    nr++;
+
+    /* reserved: lowmem reserved device memory */
+    d->arch.e820[nr].addr = rdm_base;
+    d->arch.e820[nr].size = rdm_size;
+    d->arch.e820[nr].type = E820_RESERVED;
+    nr++;
+
+    /* usable: extended memory from 1MB */
+    d->arch.e820[nr].addr = 0x100000;
+    d->arch.e820[nr].size = ext_pages << PAGE_SHIFT;
+    d->arch.e820[nr].type = E820_RAM;
+    page_count += d->arch.e820[nr].size >> PAGE_SHIFT;
+    nr++;
+
+    /* reserved: ACPI entry, ACPI_INFO_PHYSICAL_ADDRESS */
+    d->arch.e820[nr].addr = 0xFC000000;
+    d->arch.e820[nr].size = acpi_pages << PAGE_SHIFT;
+    d->arch.e820[nr].type = E820_ACPI;
+    page_count += d->arch.e820[nr].size >> PAGE_SHIFT;
+    nr++;
+
+    /* reserved: HVM special pages, X86_HVM_END_SPECIAL_REGION */
+    d->arch.e820[nr].addr = START_SPECIAL_REGION << PAGE_SHIFT;
+    d->arch.e820[nr].size = NR_SPECIAL_PAGES << PAGE_SHIFT;
+    d->arch.e820[nr].type = E820_RESERVED;
+    page_count += d->arch.e820[nr].size >> PAGE_SHIFT;
+    nr++;
+
+    /* usable: highmem */
+    if ( high_pages )
+    {
+        d->arch.e820[nr].addr = 0x100000000;
+        d->arch.e820[nr].size = high_pages << PAGE_SHIFT;
+        d->arch.e820[nr].type = E820_RAM;
+        page_count += d->arch.e820[nr].size >> PAGE_SHIFT;
+        nr++;
+    }
+
+    d->arch.nr_e820 = nr;
+
+    ASSERT(nr == e820_entries);
+    ASSERT(nr_pages == page_count);
+}
+
 static void __init pvh_init_p2m(struct boot_domain *bd)
 {
     unsigned long nr_pages = dom_compute_nr_pages(bd, NULL);
     bool preempted;
 
-    dom0_pvh_setup_e820(bd->d, nr_pages);
+    if ( bd->capabilities & (BUILD_CAPS_CONTROL | BUILD_CAPS_HARDWARE) )
+        dom0_pvh_setup_e820(bd->d, nr_pages);
+    else
+        hvm_setup_e820(bd->d, nr_pages);
+
     do {
         preempted = false;
         paging_set_allocation(bd->d, dom_paging_pages(bd, nr_pages),
-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Sat Apr 19 22:21:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 19 Apr 2025 22:21:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.960264.1352373 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6GZ0-0005tf-KT; Sat, 19 Apr 2025 22:21:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 960264.1352373; Sat, 19 Apr 2025 22:21: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 1u6GZ0-0005tB-FU; Sat, 19 Apr 2025 22:21:30 +0000
Received: by outflank-mailman (input) for mailman id 960264;
 Sat, 19 Apr 2025 22:21: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=nqik=XF=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1u6GOp-0004yY-VT
 for xen-devel@lists.xenproject.org; Sat, 19 Apr 2025 22:10:59 +0000
Received: from sender4-of-o50.zoho.com (sender4-of-o50.zoho.com
 [136.143.188.50]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2acc19f6-1d6b-11f0-9eb0-5ba50f476ded;
 Sun, 20 Apr 2025 00:10:58 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 1745100530991699.508073613059;
 Sat, 19 Apr 2025 15:08: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: 2acc19f6-1d6b-11f0-9eb0-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; t=1745100533; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=TI47jSbImDojj0GoQCgsne6LcAcZPiY8E6rV68o5qK2N1XTsj8kbYgfM6Ox/0ew1TZEns4tb77pjlEZzYXJU2AsclfkUMh5YSR3DzPcLiPMlQipLLFePTvlAk9hH4QjxnedyQMP6vOzOC5MGYAStjz486RBGz/AjzRzniHCujlk=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1745100533; 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=oYA+q2bu6uUk9qzE25f2Pzdoh1C0vsI/Nr7Od6zvzCs=; 
	b=QjwyOaC4kX8OZDeQWWm7/p/Rkq21KDVq1D4NqliOJI7lQmEj/PrIIWmEkvQWtAj35nZMfuKjc7QLrNJEGjVFOKjPBWJGiMPcSRQCrCZSTVSAwgHoYwJo8ZltpXv32ab+Coo/zNm3PVXsz8NWwPm+7fT77CWz2ObYZCpfxIwBQQk=
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=1745100533;
	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=oYA+q2bu6uUk9qzE25f2Pzdoh1C0vsI/Nr7Od6zvzCs=;
	b=Y3y8tM7Hzyn6awXzgbx8ZPcZshgVrY8EL+1GoPXJS2W9iEy/J9M5beqXh2mH4QVR
	3+Oous/KS8lqEOelc35XwbVERRSWwJscnli7KwYPwTmWM0eHup1doyWyNAQmWEdUEc/
	HXI0ynDLq1yWnpzfyp/PrM//EaXlFmsdH2W37uA8=
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
To: xen-devel@lists.xenproject.org
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	jason.andryuk@amd.com,
	stefano.stabellini@amd.com,
	agarciav@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: [RFC 14/38] x86/hyperlaunch: move pvh p2m init to domain builder
Date: Sat, 19 Apr 2025 18:07:56 -0400
Message-Id: <20250419220820.4234-15-dpsmith@apertussolutions.com>
X-Mailer: git-send-email 2.30.2
In-Reply-To: <20250419220820.4234-1-dpsmith@apertussolutions.com>
References: <20250419220820.4234-1-dpsmith@apertussolutions.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

Generalize pvh_init_p2m() for use on domU and relocate under the domain
builder. To support moving the function, dom0_pvh_setup_e820() was exported.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
---
 xen/arch/x86/hvm/dom0_build.c         | 23 +----------------------
 xen/arch/x86/hvm/dom_build.c          | 25 +++++++++++++++++++++++++
 xen/arch/x86/include/asm/dom0_build.h |  2 ++
 3 files changed, 28 insertions(+), 22 deletions(-)

diff --git a/xen/arch/x86/hvm/dom0_build.c b/xen/arch/x86/hvm/dom0_build.c
index f59af0e72810..4a371dfd66d7 100644
--- a/xen/arch/x86/hvm/dom0_build.c
+++ b/xen/arch/x86/hvm/dom0_build.c
@@ -323,7 +323,7 @@ static int __init pvh_setup_vmx_realmode_helpers(struct domain *d)
     return 0;
 }
 
-static __init void pvh_setup_e820(struct domain *d, unsigned long nr_pages)
+void __init dom0_pvh_setup_e820(struct domain *d, unsigned long nr_pages)
 {
     struct e820entry *entry, *entry_guest;
     unsigned int i;
@@ -399,20 +399,6 @@ static __init void pvh_setup_e820(struct domain *d, unsigned long nr_pages)
     ASSERT(cur_pages == nr_pages);
 }
 
-static void __init pvh_init_p2m(struct boot_domain *bd)
-{
-    unsigned long nr_pages = dom_compute_nr_pages(bd, NULL);
-    bool preempted;
-
-    pvh_setup_e820(bd->d, nr_pages);
-    do {
-        preempted = false;
-        paging_set_allocation(bd->d, dom_paging_pages(bd, nr_pages),
-                              &preempted);
-        process_pending_softirqs();
-    } while ( preempted );
-}
-
 static int __init pvh_populate_p2m(struct domain *d)
 {
     struct vcpu *v = d->vcpu[0];
@@ -1319,13 +1305,6 @@ int __init dom0_construct_pvh(struct boot_domain *bd)
     struct domain *d = bd->d;
     int rc;
 
-    /*
-     * Craft dom0 physical memory map and set the paging allocation. This must
-     * be done before the iommu initializion, since iommu initialization code
-     * will likely add mappings required by devices to the p2m (ie: RMRRs).
-     */
-    pvh_init_p2m(bd);
-
     iommu_hwdom_init(d);
 
     rc = pvh_populate_p2m(d);
diff --git a/xen/arch/x86/hvm/dom_build.c b/xen/arch/x86/hvm/dom_build.c
index b6e534226434..05064ae9ba96 100644
--- a/xen/arch/x86/hvm/dom_build.c
+++ b/xen/arch/x86/hvm/dom_build.c
@@ -10,13 +10,16 @@
 
 #include <xen/acpi.h>
 #include <xen/init.h>
+#include <xen/softirq.h>
 #include <xen/types.h>
 
 #include <acpi/actables.h>
 
 #include <asm/bootinfo.h>
 #include <asm/dom0_build.h>
+#include <asm/domain-builder.h>
 #include <asm/hvm/io.h>
+#include <asm/paging.h>
 #include <asm/pci.h>
 
 static void __hwdom_init pvh_setup_mmcfg(struct domain *d)
@@ -37,6 +40,20 @@ static void __hwdom_init pvh_setup_mmcfg(struct domain *d)
     }
 }
 
+static void __init pvh_init_p2m(struct boot_domain *bd)
+{
+    unsigned long nr_pages = dom_compute_nr_pages(bd, NULL);
+    bool preempted;
+
+    dom0_pvh_setup_e820(bd->d, nr_pages);
+    do {
+        preempted = false;
+        paging_set_allocation(bd->d, dom_paging_pages(bd, nr_pages),
+                              &preempted);
+        process_pending_softirqs();
+    } while ( preempted );
+}
+
 int __init dom_construct_pvh(struct boot_domain *bd)
 {
     int rc;
@@ -67,6 +84,14 @@ int __init dom_construct_pvh(struct boot_domain *bd)
         }
     }
 
+    /*
+     * Craft domain physical memory map and set the paging allocation. This
+     * must be done before the iommu initializion, since iommu initialization
+     * code will likely add mappings required by devices to the p2m (ie:
+     * RMRRs).
+     */
+    pvh_init_p2m(bd);
+
     return dom0_construct_pvh(bd);
 }
 
diff --git a/xen/arch/x86/include/asm/dom0_build.h b/xen/arch/x86/include/asm/dom0_build.h
index 43a402af15b7..e5debd5adf9f 100644
--- a/xen/arch/x86/include/asm/dom0_build.h
+++ b/xen/arch/x86/include/asm/dom0_build.h
@@ -18,6 +18,8 @@ void calculate_dom0_pages(struct boot_domain *bd, unsigned long avail);
 void dom0_pv_restrict_pages(
     struct boot_domain *bd, struct elf_dom_parms *parms);
 
+void dom0_pvh_setup_e820(struct domain *d, unsigned long nr_pages);
+
 int dom0_construct_pv(struct boot_domain *bd);
 int dom0_construct_pvh(struct boot_domain *bd);
 
-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Sat Apr 19 22:21:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 19 Apr 2025 22:21:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.960273.1352382 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6GZ6-0006jS-TQ; Sat, 19 Apr 2025 22:21:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 960273.1352382; Sat, 19 Apr 2025 22: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 1u6GZ6-0006iW-Oi; Sat, 19 Apr 2025 22:21:36 +0000
Received: by outflank-mailman (input) for mailman id 960273;
 Sat, 19 Apr 2025 22:21: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=nqik=XF=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1u6GRp-0004yY-7a
 for xen-devel@lists.xenproject.org; Sat, 19 Apr 2025 22:14:05 +0000
Received: from sender4-of-o50.zoho.com (sender4-of-o50.zoho.com
 [136.143.188.50]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 99dcf2b1-1d6b-11f0-9eb0-5ba50f476ded;
 Sun, 20 Apr 2025 00:14:04 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 17451005681919.729422362614287;
 Sat, 19 Apr 2025 15:09:28 -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: 99dcf2b1-1d6b-11f0-9eb0-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; t=1745100571; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=IeC677nf98P/AOhN210mWuPZjzW3XkZvyeBoTAPX42mwIDr/DA4h+bWDvezCNyORG3dsCnW2kOhzVA/TXgjehU3dJ8PwpeYXjQJOeFWOi2D0uNUf+hcAOpVN2ts93iE90mwyRkC+aEhpn4GvN9cl2XHo/HxSH4QlS0a4FVYYF24=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1745100571; 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=lqmxREyAE0WjRdlDATtWmFP941B+/fkRIhZO5eZCnWA=; 
	b=FPWgwbab7TgW70DOAImMDgvCzOT30qSfqfAFyE1HzGjTgdajGdUZwnKhq5eGFSBD+IZfVHMkdME77Ofql2gd9KyBU8Z27lP7E+c+g+AnT2FeDDJ39e2Ke5TzoMldaasVWMo1SLAqBkD8aSAJXnhhgmn49nLGRL4Ig7izl44Obic=
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=1745100571;
	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=lqmxREyAE0WjRdlDATtWmFP941B+/fkRIhZO5eZCnWA=;
	b=P3kEEki7Aklx1SZji5YoSDUrUiCWXt2CK/dZ/nV2NgfvkcUDPeRe9MdlJE9T45qc
	Lc8ywD+kPmMOwmV/b69mRRLCR5K/yR9taaSrCw3NqNcTImZyYIw4KL+j/F4b09u6vYm
	5OHY1hv4vcUVR3/8S1tLmH+cmf649GKyHCVlg8Rc=
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
To: xen-devel@lists.xenproject.org
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	jason.andryuk@amd.com,
	stefano.stabellini@amd.com,
	agarciav@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: [RFC 36/38] x86/hyperlaunch: enable unpausing mulitple domains
Date: Sat, 19 Apr 2025 18:08:18 -0400
Message-Id: <20250419220820.4234-37-dpsmith@apertussolutions.com>
X-Mailer: git-send-email 2.30.2
In-Reply-To: <20250419220820.4234-1-dpsmith@apertussolutions.com>
References: <20250419220820.4234-1-dpsmith@apertussolutions.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

This commit enables the domain builder to unpause all domains
that have been flagged to start on boot.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
---
 xen/arch/x86/domain-builder/core.c        | 20 ++++++++++++++++++++
 xen/arch/x86/include/asm/boot-domain.h    |  8 +++++---
 xen/arch/x86/include/asm/domain-builder.h |  1 +
 xen/arch/x86/setup.c                      |  8 +++++++-
 4 files changed, 33 insertions(+), 4 deletions(-)

diff --git a/xen/arch/x86/domain-builder/core.c b/xen/arch/x86/domain-builder/core.c
index 2712703e17e6..fa01b8390a23 100644
--- a/xen/arch/x86/domain-builder/core.c
+++ b/xen/arch/x86/domain-builder/core.c
@@ -6,6 +6,7 @@
 #include <xen/init.h>
 #include <xen/kconfig.h>
 #include <xen/lib.h>
+#include <xen/sched.h>
 
 #include <asm/bootinfo.h>
 #include <asm/domain-builder.h>
@@ -206,6 +207,25 @@ unsigned int __init builder_create_domains(struct boot_info *bi)
     return build_count;
 }
 
+int __init builder_unpause_domains(struct boot_info *bi)
+{
+    int i, count = 0;
+
+    for ( i = 0; i < bi->nr_domains; i++ )
+    {
+        struct boot_domain *bd = &bi->domains[i];
+
+        if ( bd->capabilities & BUILD_CAPS_HARDWARE ||
+             bd->mode & BUILD_MODE_START_ON_BOOT )
+        {
+            domain_unpause_by_systemcontroller(bd->d);
+            count++;
+        }
+    }
+
+    return count;
+}
+
 /*
  * Local variables:
  * mode: C
diff --git a/xen/arch/x86/include/asm/boot-domain.h b/xen/arch/x86/include/asm/boot-domain.h
index a574f4941ed3..b592aef84b27 100644
--- a/xen/arch/x86/include/asm/boot-domain.h
+++ b/xen/arch/x86/include/asm/boot-domain.h
@@ -22,9 +22,11 @@ struct boot_domain {
 #define BUILD_CAPS_XENSTORE      (1 << 2)
     uint32_t capabilities;
 
-                                          /* On     | Off    */
-#define BUILD_MODE_PARAVIRT      (1 << 0) /* PV     | PVH/HVM */
-#define BUILD_MODE_ENABLE_DM     (1 << 1) /* HVM    | PVH     */
+                                          /* 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  */
+#define BUILD_MODE_START_ON_BOOT (1 << 3) /* UNPAUSED | PAUSED  */
     uint32_t mode;
 
     unsigned long mem_pages;
diff --git a/xen/arch/x86/include/asm/domain-builder.h b/xen/arch/x86/include/asm/domain-builder.h
index 5dc5661bec07..df55cf52460c 100644
--- a/xen/arch/x86/include/asm/domain-builder.h
+++ b/xen/arch/x86/include/asm/domain-builder.h
@@ -9,6 +9,7 @@ int __init builder_get_cmdline(
 
 void builder_init(struct boot_info *bi);
 unsigned int builder_create_domains(struct boot_info *bi);
+int builder_unpause_domains(struct boot_info *bi);
 
 struct domain *arch_create_dom(
     struct boot_info *bi, struct boot_domain *bd);
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 09b1fc94426d..ba0dd427c81b 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -787,6 +787,7 @@ static inline bool using_2M_mapping(void)
 
 static void noreturn init_done(void)
 {
+    struct boot_info *bi = &xen_boot_info;
     void *va;
     unsigned long start, end;
     int err;
@@ -800,7 +801,12 @@ static void noreturn init_done(void)
     if ( IS_ENABLED(CONFIG_SELF_TESTS) && cpu_has_xen_shstk )
         stub_selftest();
 
-    domain_unpause_by_systemcontroller(dom0);
+    err = builder_unpause_domains(bi);
+    if ( err == 0 )
+        panic("domain builder: failed to schedule any domain to start\n");
+    else
+        printk("domain builder: unpaused %d of %d domains at boot\n", err,
+               bi->nr_domains);
 
     /* MUST be done prior to removing .init data. */
     unregister_init_virtual_region();
-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Sat Apr 19 22:21:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 19 Apr 2025 22:21:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.960275.1352389 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6GZ7-0006q6-JR; Sat, 19 Apr 2025 22:21:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 960275.1352389; Sat, 19 Apr 2025 22: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 1u6GZ7-0006nr-9o; Sat, 19 Apr 2025 22:21:37 +0000
Received: by outflank-mailman (input) for mailman id 960275;
 Sat, 19 Apr 2025 22:21: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=nqik=XF=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1u6GP9-0004yY-WA
 for xen-devel@lists.xenproject.org; Sat, 19 Apr 2025 22:11:20 +0000
Received: from sender4-of-o50.zoho.com (sender4-of-o50.zoho.com
 [136.143.188.50]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 377390f8-1d6b-11f0-9eb0-5ba50f476ded;
 Sun, 20 Apr 2025 00:11:19 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 1745100534648793.2115318942064;
 Sat, 19 Apr 2025 15:08: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: 377390f8-1d6b-11f0-9eb0-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; t=1745100540; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=EPa67t7mNi7fF2zt10Ul0B2UoAt8xxdRmVRzHl1ZUlfgt4lyO59jE+L/h3OSf/z7YD8SAo3lOkLi45aH6xgVyBUiqhqEGPu5Ko7h+Hi5Xi4pSIIjFohj1bKdi14JEMRrUEPvETir9cExUs+fRRfe5/ZfFUzfIHnvQTyrKnGHAeg=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1745100540; 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=2mkjxzW5Ru2Q92RR48HdEoTcd4H0/JB/kPW2NI5sInE=; 
	b=J4tji14XEmKCceQDiriM56toiiaDpVIvUKZVULx5y7PDUeCabDOKaYOuo/d+VaJkcBKlKFeeL4YdVsM4J0nvWrp96jPHhVip1Pcanqa1A37flOxJzAQDU+NJMvOQcCI2h5TFm+DML2d2mmdcInr/DoVzfAAWTVhe6dQrOSV3r8w=
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=1745100540;
	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=2mkjxzW5Ru2Q92RR48HdEoTcd4H0/JB/kPW2NI5sInE=;
	b=HJYDam8Try/ibd4JiDWljMjg/93cJUlaibk/F0Var7goINrYqEl/8M5SqBdTwhVB
	bv67aafshWF2D5reTbey8gETBoYDkJrs5WBodfVcxllArgjXgJD0cwka8mp6LuMTW52
	6SJEmmG0jHkfWRRADTbbyq9bSfu/xAgQsGrlF0zc=
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
To: xen-devel@lists.xenproject.org
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	jason.andryuk@amd.com,
	stefano.stabellini@amd.com,
	agarciav@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: [RFC 18/38] x86/boot: rename pvh acpi setup function
Date: Sat, 19 Apr 2025 18:08:00 -0400
Message-Id: <20250419220820.4234-19-dpsmith@apertussolutions.com>
X-Mailer: git-send-email 2.30.2
In-Reply-To: <20250419220820.4234-1-dpsmith@apertussolutions.com>
References: <20250419220820.4234-1-dpsmith@apertussolutions.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

The function pvh_setup_acpi() is dom0 specific, renaming it to
dom0_pvh_setup_acpi(). Now export the function so that it may be called by the
domain builder.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
---
 xen/arch/x86/hvm/dom0_build.c         | 4 ++--
 xen/arch/x86/include/asm/dom0_build.h | 2 ++
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/hvm/dom0_build.c b/xen/arch/x86/hvm/dom0_build.c
index a3b6afc5318a..8ea4c7bd2792 100644
--- a/xen/arch/x86/hvm/dom0_build.c
+++ b/xen/arch/x86/hvm/dom0_build.c
@@ -1125,7 +1125,7 @@ static int __init pvh_setup_acpi_xsdt(struct domain *d, paddr_t madt_addr,
     return rc;
 }
 
-static int __init pvh_setup_acpi(struct domain *d, paddr_t start_info)
+int __init dom0_pvh_setup_acpi(struct domain *d, paddr_t start_info)
 {
     unsigned long pfn, nr_pages;
     paddr_t madt_paddr, xsdt_paddr, rsdp_paddr;
@@ -1283,7 +1283,7 @@ int __init dom0_construct_pvh(struct boot_domain *bd)
         return rc;
     }
 
-    rc = pvh_setup_acpi(d, start_info);
+    rc = dom0_pvh_setup_acpi(bd->d, start_info);
     if ( rc )
     {
         printk("Failed to setup Dom0 ACPI tables: %d\n", rc);
diff --git a/xen/arch/x86/include/asm/dom0_build.h b/xen/arch/x86/include/asm/dom0_build.h
index e5debd5adf9f..36f563bd9d5b 100644
--- a/xen/arch/x86/include/asm/dom0_build.h
+++ b/xen/arch/x86/include/asm/dom0_build.h
@@ -20,6 +20,8 @@ void dom0_pv_restrict_pages(
 
 void dom0_pvh_setup_e820(struct domain *d, unsigned long nr_pages);
 
+int dom0_pvh_setup_acpi(struct domain *d, paddr_t start_info);
+
 int dom0_construct_pv(struct boot_domain *bd);
 int dom0_construct_pvh(struct boot_domain *bd);
 
-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Sat Apr 19 22:21:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 19 Apr 2025 22:21:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.960280.1352401 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6GZ9-0007JC-7A; Sat, 19 Apr 2025 22:21:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 960280.1352401; Sat, 19 Apr 2025 22: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 1u6GZ8-0007Ii-UF; Sat, 19 Apr 2025 22:21:38 +0000
Received: by outflank-mailman (input) for mailman id 960280;
 Sat, 19 Apr 2025 22:21: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=nqik=XF=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1u6GQB-0004yY-HA
 for xen-devel@lists.xenproject.org; Sat, 19 Apr 2025 22:12:23 +0000
Received: from sender4-of-o50.zoho.com (sender4-of-o50.zoho.com
 [136.143.188.50]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5d502b86-1d6b-11f0-9eb0-5ba50f476ded;
 Sun, 20 Apr 2025 00:12:22 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 1745100532920361.96569688499153;
 Sat, 19 Apr 2025 15:08:52 -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: 5d502b86-1d6b-11f0-9eb0-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; t=1745100552; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=YfUKKtKb4csvQTdwXPO7rLklEK3/gl9qjNZcNRLoloaNc4ZehP2ukKJOUB8E7ccb22bqCjM+u7GbeCAQWEXOMJaqfuy/lOvQx6tDnIXSYA48t8kQ3AUdCxE25FzcK8xp1KfR6wNVlM+5EIRGmgH/7Ld4T61A7/BVg74jvaDH9j4=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1745100552; 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=KtCDPxQ2vryCzA+51vqp2dtiv9M0gWY5QbgCmpBJWTE=; 
	b=X2+jZi5MyUn+Sh2DQdLPGVadrQg3Fu6GQEu/PXb/bRhn+L6h9Leh3WE1ns++qMM4D0xIJM4c0WHVUTReikvv6oTfGScXhSfVcqqJDYBvEDVYj+lzJXgukr3NSxnEefvhuHB+rbEWHchjpfVs4JldmfN3g6LRlR9i+XzuVgirXRY=
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=1745100552;
	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=KtCDPxQ2vryCzA+51vqp2dtiv9M0gWY5QbgCmpBJWTE=;
	b=TXGq9q33tsw1VnE9Z3Sd5ImUaTH0CJZsGF10DxBhuCz7T1Y2IWaYpGb37CtScjkk
	1mts+qiXTRuAqC/gPocvksqUx0bajWFfKQnKu7Mqr3z02gcG9tldfgyGXyHXr71ON0N
	qSw8ojvB5oOI25J5FUNqyISmNMQL6kjQR4b0CQEQ=
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
To: xen-devel@lists.xenproject.org
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	jason.andryuk@amd.com,
	stefano.stabellini@amd.com,
	agarciav@amd.com,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Dario Faggioli <dfaggioli@suse.com>,
	Juergen Gross <jgross@suse.com>,
	George Dunlap <gwd@xenproject.org>
Subject: [RFC 16/38] x86/boot: move and rename sched_setup_dom0_vcpus
Date: Sat, 19 Apr 2025 18:07:58 -0400
Message-Id: <20250419220820.4234-17-dpsmith@apertussolutions.com>
X-Mailer: git-send-email 2.30.2
In-Reply-To: <20250419220820.4234-1-dpsmith@apertussolutions.com>
References: <20250419220820.4234-1-dpsmith@apertussolutions.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

Relocated the function sched_setup_dom0_vcpus(), which was protected by an
ifdef CONFIG_X86, from common/sched to the hyperlaunch domain builder. Rename
it to alloc_dom_vcpus() to better reflect the purpose of the function.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
---
 xen/arch/x86/domain-builder/domain.c      | 10 ++++++++++
 xen/arch/x86/hvm/dom0_build.c             |  2 +-
 xen/arch/x86/include/asm/domain-builder.h |  1 +
 xen/arch/x86/pv/dom0_build.c              |  2 +-
 xen/common/sched/core.c                   | 12 ------------
 xen/include/xen/sched.h                   |  1 -
 6 files changed, 13 insertions(+), 15 deletions(-)

diff --git a/xen/arch/x86/domain-builder/domain.c b/xen/arch/x86/domain-builder/domain.c
index bdb4d9745ff2..764a1af4acd3 100644
--- a/xen/arch/x86/domain-builder/domain.c
+++ b/xen/arch/x86/domain-builder/domain.c
@@ -128,6 +128,16 @@ struct vcpu *__init alloc_dom_vcpu0(struct boot_domain *bd)
     return vcpu_create(bd->d, 0);
 }
 
+void __init alloc_dom_vcpus(struct domain *d)
+{
+    unsigned int i;
+
+    for ( i = 1; i < d->max_vcpus; i++ )
+        vcpu_create(d, i);
+
+    domain_update_node_affinity(d);
+}
+
 /*
  * Local variables:
  * mode: C
diff --git a/xen/arch/x86/hvm/dom0_build.c b/xen/arch/x86/hvm/dom0_build.c
index a68474b7856a..2ed2d5fd7326 100644
--- a/xen/arch/x86/hvm/dom0_build.c
+++ b/xen/arch/x86/hvm/dom0_build.c
@@ -834,7 +834,7 @@ static int __init pvh_setup_cpus(struct domain *d, paddr_t entry,
         .cpu_regs.x86_32.tr_ar = 0x8b,
     };
 
-    sched_setup_dom0_vcpus(d);
+    alloc_dom_vcpus(d);
 
     rc = arch_set_info_hvm_guest(v, &cpu_ctx);
     if ( rc )
diff --git a/xen/arch/x86/include/asm/domain-builder.h b/xen/arch/x86/include/asm/domain-builder.h
index f9b11e06ceb8..af0a24b4edf5 100644
--- a/xen/arch/x86/include/asm/domain-builder.h
+++ b/xen/arch/x86/include/asm/domain-builder.h
@@ -18,6 +18,7 @@ unsigned long dom_compute_nr_pages(
 
 unsigned int dom_max_vcpus(struct boot_domain *bd);
 struct vcpu *alloc_dom_vcpu0(struct boot_domain *bd);
+void alloc_dom_vcpus(struct domain *d);
 
 int dom_construct_pvh(struct boot_domain *bd);
 
diff --git a/xen/arch/x86/pv/dom0_build.c b/xen/arch/x86/pv/dom0_build.c
index ad4d1cc3520c..c3d269438313 100644
--- a/xen/arch/x86/pv/dom0_build.c
+++ b/xen/arch/x86/pv/dom0_build.c
@@ -827,7 +827,7 @@ static int __init dom0_construct(struct boot_domain *bd)
 
     printk("Dom%u has maximum %u VCPUs\n", d->domain_id, d->max_vcpus);
 
-    sched_setup_dom0_vcpus(d);
+    alloc_dom_vcpus(d);
 
     d->arch.paging.mode = 0;
 
diff --git a/xen/common/sched/core.c b/xen/common/sched/core.c
index 9043414290a8..d679d766a4b6 100644
--- a/xen/common/sched/core.c
+++ b/xen/common/sched/core.c
@@ -3479,18 +3479,6 @@ void wait(void)
     schedule();
 }
 
-#ifdef CONFIG_X86
-void __init sched_setup_dom0_vcpus(struct domain *d)
-{
-    unsigned int i;
-
-    for ( i = 1; i < d->max_vcpus; i++ )
-        vcpu_create(d, i);
-
-    domain_update_node_affinity(d);
-}
-#endif
-
 #ifdef CONFIG_COMPAT
 #include "compat.c"
 #endif
diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h
index 559d201e0c7e..4f184cd76206 100644
--- a/xen/include/xen/sched.h
+++ b/xen/include/xen/sched.h
@@ -1084,7 +1084,6 @@ static inline bool sched_has_urgent_vcpu(void)
 }
 
 void vcpu_set_periodic_timer(struct vcpu *v, s_time_t value);
-void sched_setup_dom0_vcpus(struct domain *d);
 int vcpu_temporary_affinity(struct vcpu *v, unsigned int cpu, uint8_t reason);
 int vcpu_set_hard_affinity(struct vcpu *v, const cpumask_t *affinity);
 int vcpu_affinity_domctl(struct domain *d, uint32_t cmd,
-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Sat Apr 19 22:21:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 19 Apr 2025 22:21:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.960290.1352413 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6GZC-00087c-OO; Sat, 19 Apr 2025 22:21:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 960290.1352413; Sat, 19 Apr 2025 22:21:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6GZC-00086g-Jk; Sat, 19 Apr 2025 22:21:42 +0000
Received: by outflank-mailman (input) for mailman id 960290;
 Sat, 19 Apr 2025 22:21: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=nqik=XF=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1u6GRw-0004yY-4m
 for xen-devel@lists.xenproject.org; Sat, 19 Apr 2025 22:14:12 +0000
Received: from sender4-of-o50.zoho.com (sender4-of-o50.zoho.com
 [136.143.188.50]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9e101f54-1d6b-11f0-9eb0-5ba50f476ded;
 Sun, 20 Apr 2025 00:14:11 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 1745100569215364.3088256029555;
 Sat, 19 Apr 2025 15:09:29 -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: 9e101f54-1d6b-11f0-9eb0-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; t=1745100572; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=Zz7GQ4nuwfTGIzQ+RdM5u//Ii6FutWOmtiILYk1CdY41TMjriCzgHEUG8CeJI8pG/qrSOjq/3apYJkBLVAxMVWYSIfl2dIoaI9CqW3JBEr2/yKH+y51LSlrAwpEA7COyQ8rL5k+EjafJtHufEXqIDJ7WrUI56uLAm8YuGOas6qY=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1745100572; 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=DZR98Y3OL3o2Z1GWDDRpwBAwXwd/c7ubteAm0GRcRwE=; 
	b=LbZm6+J64+yKmDeg9lPO4ATWTnNu0MhnmRp0Bv4RfGLuv0W/v5P3g16ZVIx/Fg7ZJPigqLPsZq81k/uBSRzmUo0rj1Q7lLrTwwO2XqTSA7/yi8YQ4pQXLKYlyMj/aMPEBIm+SB/owTuUZhtWN5mzGVQCIwrU+LKbbdHtj3p3QZ8=
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=1745100572;
	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=DZR98Y3OL3o2Z1GWDDRpwBAwXwd/c7ubteAm0GRcRwE=;
	b=m9b0JVzaIF6mNYu1XxmpR0LcOen+l39JxViAXvrAybkEFrjB2D2MMDdDqBbGI9wI
	0V7fXPm2XL4lhyyehpBuYQ5NTFWfIrBhOXEA3ZG4wgQLIfyyOWhK/XuXRxKULbur3bU
	p/goblu0G/VEp0yMDJ3AUjYgctVzCXRVl4DNeslg=
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
To: xen-devel@lists.xenproject.org
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	jason.andryuk@amd.com,
	stefano.stabellini@amd.com,
	agarciav@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: [RFC 37/38] x86/hyperlaunch: generalize domid assignment
Date: Sat, 19 Apr 2025 18:08:19 -0400
Message-Id: <20250419220820.4234-38-dpsmith@apertussolutions.com>
X-Mailer: git-send-email 2.30.2
In-Reply-To: <20250419220820.4234-1-dpsmith@apertussolutions.com>
References: <20250419220820.4234-1-dpsmith@apertussolutions.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
---
 xen/arch/x86/domain-builder/fdt.c | 29 +++++++++++++++++++++++++++--
 1 file changed, 27 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/domain-builder/fdt.c b/xen/arch/x86/domain-builder/fdt.c
index 9c6c0ae09a24..543a0c92adb4 100644
--- a/xen/arch/x86/domain-builder/fdt.c
+++ b/xen/arch/x86/domain-builder/fdt.c
@@ -15,6 +15,21 @@
 
 #include "fdt.h"
 
+#define MAX_DOMID  DOMID_FIRST_RESERVED
+static __initdata DECLARE_BITMAP(domid_alloc, MAX_DOMID);
+
+static domid_t find_next_domid(void)
+{
+    unsigned long n = find_next_zero_bit(domid_alloc, MAX_DOMID, 1);
+
+    if ( n == MAX_DOMID )
+        return DOMID_INVALID;
+
+    set_bit(n, domid_alloc);
+
+    return (domid_t) n;
+}
+
 /*
  * Unpacks a "reg" property into its address and size constituents.
  *
@@ -186,11 +201,21 @@ static int __init process_domain_node(
                 printk("  failed processing domain id for domain %s\n", name);
                 return -EINVAL;
             }
+
             if ( val >= DOMID_FIRST_RESERVED )
             {
-                printk("  invalid domain id for domain %s\n", name);
-                return -EINVAL;
+                if ( (val = find_next_domid()) == DOMID_INVALID )
+                {
+                    printk("  unable to allocate domid for domain %s\n", name);
+                    return -EFAULT;
+                }
             }
+            else if ( test_and_set_bit(val, domid_alloc) )
+            {
+                printk(XENLOG_ERR "ERR: domid (%d) already assigned\n", val);
+                return -EFAULT;
+            }
+
             bd->domid = (domid_t)val;
             printk("  domid: %d\n", bd->domid);
         }
-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Sat Apr 19 22:21:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 19 Apr 2025 22:21:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.960306.1352423 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6GZK-0001Ap-7b; Sat, 19 Apr 2025 22:21:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 960306.1352423; Sat, 19 Apr 2025 22:21:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6GZK-00019u-0U; Sat, 19 Apr 2025 22:21:50 +0000
Received: by outflank-mailman (input) for mailman id 960306;
 Sat, 19 Apr 2025 22:21:48 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=nqik=XF=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1u6GRb-0004yY-4k
 for xen-devel@lists.xenproject.org; Sat, 19 Apr 2025 22:13:51 +0000
Received: from sender4-of-o50.zoho.com (sender4-of-o50.zoho.com
 [136.143.188.50]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 91665486-1d6b-11f0-9eb0-5ba50f476ded;
 Sun, 20 Apr 2025 00:13:50 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 1745100567355726.0607417322368;
 Sat, 19 Apr 2025 15:09:27 -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: 91665486-1d6b-11f0-9eb0-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; t=1745100571; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=YQ8uzkmpyPlCFPyazWDIbwPOSyCAsWMBRW9+8kLSGG2F6TedD9RJkPmFFpsl6AcSIjuYGivBmQCpJwI2BE6b0w+l4OFKm2IbEKFDIlh8X65yPNkOxZkRkQG92mHFHdIASnU/CgsRIOgDDF11581qNzOs/bhA+omkhgFkM1tBJ1c=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1745100571; 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=E9G74MndY9ZXEk+L1cKEhZ2Ussr5gQpteSfUtOKkupg=; 
	b=CmD9K4OA1Tbbx0GZGexDCYspuFdY3Rd0GuF8H2aPAhbYUWy/XgfhrXBbg1eiuAS7L/lr6T6va4+/dz0/1dybBakCVS+5KiP2gvijoOIPUumN3UKJEXd+BSqGKkGFgetmF8SpRf7K1ahoKCQwAcwUkfexOMKcO1q48pz+dEwtQDs=
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=1745100571;
	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=E9G74MndY9ZXEk+L1cKEhZ2Ussr5gQpteSfUtOKkupg=;
	b=Ak7kH6RAScWmzL2O9SyT749raI8ggkrjE8Z2jZo2KvWds8rpIehLrPNFlLwJrDlg
	rP7p5JHXv5QODLyQlx3fsTn8Yz/NBMv3Ct5VuoVFLOM6t8UF2RNasCeQR/opsqGaKoI
	R4ttPJlwATDjxg1wB5+dIjOJB2U2bQCQh7gMIyhI=
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
To: xen-devel@lists.xenproject.org
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	jason.andryuk@amd.com,
	stefano.stabellini@amd.com,
	agarciav@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: [RFC 35/38] x86/hyperlaunch: add multidomain construction logic
Date: Sat, 19 Apr 2025 18:08:17 -0400
Message-Id: <20250419220820.4234-36-dpsmith@apertussolutions.com>
X-Mailer: git-send-email 2.30.2
In-Reply-To: <20250419220820.4234-1-dpsmith@apertussolutions.com>
References: <20250419220820.4234-1-dpsmith@apertussolutions.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

Introduce the logic to loop over boot_info->domains and construct
each valid entry in the array.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
---
 xen/arch/x86/domain-builder/core.c   | 32 ++++++++++++++++++++++++----
 xen/arch/x86/domain-builder/domain.c |  7 ++++--
 xen/arch/x86/hvm/dom_build.c         |  5 ++++-
 xen/arch/x86/setup.c                 | 11 ++++++----
 4 files changed, 44 insertions(+), 11 deletions(-)

diff --git a/xen/arch/x86/domain-builder/core.c b/xen/arch/x86/domain-builder/core.c
index f693aa46d278..2712703e17e6 100644
--- a/xen/arch/x86/domain-builder/core.c
+++ b/xen/arch/x86/domain-builder/core.c
@@ -166,16 +166,40 @@ static int  __init build_core_domains(struct boot_info *bi)
 unsigned int __init builder_create_domains(struct boot_info *bi)
 {
     unsigned int build_count = 0;
-    struct boot_domain *bd = &bi->domains[0];
+    int i;
 
     if ( bi->nr_domains == 0 )
         panic("%s: no domains defined\n", __func__);
 
-    if ( bd->kernel == NULL && bd->capabilities & BUILD_CAPS_CONTROL )
-        panic("%s: control domain missing kernel\n", __func__);
-
     build_count = build_core_domains(bi);
 
+    if ( ! IS_ENABLED(CONFIG_MULTIDOMAIN_BUILDER) )
+        goto out;
+
+    for ( i = 0; i < bi->nr_domains; i++ )
+    {
+        struct boot_domain *bd = &bi->domains[i];
+
+        if ( bd->constructed )
+            continue;
+
+        if ( bd->mode & BUILD_MODE_PARAVIRT )
+        {
+            printk(XENLOG_WARNING "don't support PV DomU, skipping %d\n", i);
+            continue;
+        }
+
+        arch_create_dom(bi, bd);
+        if ( bd->d )
+        {
+            bd->constructed = true;
+            build_count++;
+        }
+        else
+            printk(XENLOG_WARNING "failed to construct build domain %d\n", i);
+    }
+
+ out:
     /* Free temporary buffers. */
     free_boot_modules();
 
diff --git a/xen/arch/x86/domain-builder/domain.c b/xen/arch/x86/domain-builder/domain.c
index 919df1ffb1c3..7f5bee0dc759 100644
--- a/xen/arch/x86/domain-builder/domain.c
+++ b/xen/arch/x86/domain-builder/domain.c
@@ -321,8 +321,11 @@ struct domain *__init arch_create_dom(
                            ((hvm_hap_supported() && !opt_dom0_shadow) ?
                             XEN_DOMCTL_CDF_hap : 0));
 
-        dom_cfg.arch.emulation_flags |=
-            XEN_X86_EMU_LAPIC | XEN_X86_EMU_IOAPIC | XEN_X86_EMU_VPCI;
+        if ( bd->capabilities & BUILD_CAPS_HARDWARE )
+            dom_cfg.arch.emulation_flags |=
+                XEN_X86_EMU_LAPIC | XEN_X86_EMU_IOAPIC | XEN_X86_EMU_VPCI;
+        else
+            dom_cfg.arch.emulation_flags |= X86_EMU_LAPIC;
     }
 
     if ( bd->capabilities & BUILD_CAPS_HARDWARE )
diff --git a/xen/arch/x86/hvm/dom_build.c b/xen/arch/x86/hvm/dom_build.c
index 4f614aea34c3..db7bf9a6934a 100644
--- a/xen/arch/x86/hvm/dom_build.c
+++ b/xen/arch/x86/hvm/dom_build.c
@@ -885,7 +885,10 @@ static int __init pvh_load_kernel(
     }
 
     start_info.magic = XEN_HVM_START_MAGIC_VALUE;
-    start_info.flags = SIF_PRIVILEGED | SIF_INITDOMAIN;
+    if ( is_control_domain(d) )
+        start_info.flags = SIF_PRIVILEGED;
+    if ( is_hardware_domain(d) )
+        start_info.flags = SIF_INITDOMAIN;
     rc = hvm_copy_to_guest_phys(last_addr, &start_info, sizeof(start_info), v);
     if ( rc )
     {
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index da5a8e8d8ed3..09b1fc94426d 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -1319,10 +1319,13 @@ void asmlinkage __init noreturn __start_xen(void)
         xen->size  = __2M_rwdata_end - _stext;
     }
 
-    bi->domains[0].kernel->headroom =
-        bzimage_headroom(bootstrap_map_bm(bi->domains[0].kernel),
-                         bi->domains[0].kernel->size);
-    bootstrap_unmap();
+    for ( i = 0; i < bi->nr_domains; i++ )
+    {
+        bi->domains[i].kernel->headroom =
+            bzimage_headroom(bootstrap_map_bm(bi->domains[i].kernel),
+                             bi->domains[i].kernel->size);
+        bootstrap_unmap();
+    }
 
 #ifndef highmem_start
     /* Don't allow split below 4Gb. */
-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Sat Apr 19 22:21:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 19 Apr 2025 22:21:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.960324.1352433 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6GZQ-00029Q-DQ; Sat, 19 Apr 2025 22:21:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 960324.1352433; Sat, 19 Apr 2025 22: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 1u6GZQ-000286-9e; Sat, 19 Apr 2025 22:21:56 +0000
Received: by outflank-mailman (input) for mailman id 960324;
 Sat, 19 Apr 2025 22:21: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=nqik=XF=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1u6GRi-0004yY-0n
 for xen-devel@lists.xenproject.org; Sat, 19 Apr 2025 22:13:58 +0000
Received: from sender4-of-o50.zoho.com (sender4-of-o50.zoho.com
 [136.143.188.50]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9592cd98-1d6b-11f0-9eb0-5ba50f476ded;
 Sun, 20 Apr 2025 00:13:57 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 1745100565715336.52410652135313;
 Sat, 19 Apr 2025 15:09: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: 9592cd98-1d6b-11f0-9eb0-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; t=1745100571; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=btFqBz997oftbi6g/MDEZqH4hS3bnCM9xa+ajGHPcYMNn6oKIkgWwFRcnOgw/9YsbaDxz+8kZpCzbKxTWfDl5JolRGj9ZaOb1E9MovXzS1v+yEFawyRbtbSxvfIPjNi9mhkPGMi0I58mDAuWPZwf9kF2sqHlfwGQ9+cfGs0AWSo=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1745100571; 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=U9FvVn492x+OFP8sG0Y52wx0v+AcRwxTtLU4QhuGxA8=; 
	b=Rt49BZJVAbG5KPOvAQrMKh6xnBTRHIVqyPxzgQ/3a+0ozA8M/jnix5uHA4+inI9STTiznDUH4e+Sss+8Lidaa0SoxspD9bXvLgdQ9aMTvRdakzQW1af1tYB230X1HMBWunhtimXuED66Wb2rhmQ/HfL87ikK6zFpLWor3c+np1U=
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=1745100571;
	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=U9FvVn492x+OFP8sG0Y52wx0v+AcRwxTtLU4QhuGxA8=;
	b=jbYPsAtNflY25+wfKESia+/y49i+O/W+hrm/2+aHYP4i1GPYwxIFYqenBVHm2sv8
	zo3AjY3QUdsNKlT2ct71Iq8y17iEjiFRI9omJw+mAPMEqP2sFwUJXxcsrw1p4YD4niY
	jPIp+ZCttjs9Lx1o/HWVkUNOY71xmHrR04Bj219Y=
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
To: xen-devel@lists.xenproject.org
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	jason.andryuk@amd.com,
	stefano.stabellini@amd.com,
	agarciav@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: [RFC 33/38] x86/boot: refactor bzimage parser to be re-enterant
Date: Sat, 19 Apr 2025 18:08:15 -0400
Message-Id: <20250419220820.4234-34-dpsmith@apertussolutions.com>
X-Mailer: git-send-email 2.30.2
In-Reply-To: <20250419220820.4234-1-dpsmith@apertussolutions.com>
References: <20250419220820.4234-1-dpsmith@apertussolutions.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

The bzimage logic uses the unit global orig_image_len to hold the original
module length for the kernel when the headroom is calculated. It then uses
orig_image_len to locate the start of the bzimage when the expansion is done.
This is an issue when more than one bzimage is processed by the headroom
calculation logic, as it will leave orig_image_len set to the length of the
last bzimage it processed.

The boot module work introduced storing the headroom size on a per module
basis. By passing in the headroom from the boot module, orig_image_len is no
longer needed to locate the beginning of the bzimage after the allocated
headroom. The bzimage functions are reworked as such, allowing the removal of
orig_image_len and enabling them to be reused by multiple kernel boot modules.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
---
 xen/arch/x86/bzimage.c             | 38 ++++++++++++++++++------------
 xen/arch/x86/hvm/dom_build.c       |  3 ++-
 xen/arch/x86/include/asm/bzimage.h |  5 ++--
 xen/arch/x86/pv/dom0_build.c       |  3 ++-
 4 files changed, 30 insertions(+), 19 deletions(-)

diff --git a/xen/arch/x86/bzimage.c b/xen/arch/x86/bzimage.c
index 66f648f311e4..32f0360d25b4 100644
--- a/xen/arch/x86/bzimage.c
+++ b/xen/arch/x86/bzimage.c
@@ -68,8 +68,6 @@ static __init int bzimage_check(struct setup_header *hdr, unsigned long len)
     return 1;
 }
 
-static unsigned long __initdata orig_image_len;
-
 unsigned long __init bzimage_headroom(void *image_start,
                                       unsigned long image_length)
 {
@@ -90,7 +88,6 @@ unsigned long __init bzimage_headroom(void *image_start,
     if ( elf_is_elfbinary(image_start, image_length) )
         return 0;
 
-    orig_image_len = image_length;
     headroom = output_length(image_start, image_length);
     if (gzip_check(image_start, image_length))
     {
@@ -103,13 +100,20 @@ unsigned long __init bzimage_headroom(void *image_start,
     return headroom;
 }
 
-int __init bzimage_parse(void *image_base, void **image_start,
-                         unsigned long *image_len)
+int __init bzimage_parse(
+    void *image_base, void **image_start, unsigned long headroom,
+    unsigned long *image_len)
 {
     struct setup_header *hdr = (struct setup_header *)(*image_start);
     int err = bzimage_check(hdr, *image_len);
-    unsigned long output_len;
-
+    unsigned long module_len = *image_len;
+
+    /*
+     * Variable err will have one of three values:
+     *   -  < 0: a error occurred trying to inspect the contents
+     *   -  > 0: the image is a bzImage
+     *   - == 0: not a bzImage, could be raw elf or elf.gz (vmlinuz.gz)
+     */
     if ( err < 0 )
         return err;
 
@@ -118,21 +122,25 @@ int __init bzimage_parse(void *image_base, void **image_start,
         *image_start += (hdr->setup_sects + 1) * 512 + hdr->payload_offset;
         *image_len = hdr->payload_length;
     }
-
-    if ( elf_is_elfbinary(*image_start, *image_len) )
-        return 0;
+    else
+    {
+        if ( elf_is_elfbinary(*image_start, *image_len) )
+            return 0;
+        else
+            *image_len = *image_len - headroom;
+    }
 
     BUG_ON(!(image_base < *image_start));
 
-    output_len = output_length(*image_start, orig_image_len);
-
-    if ( (err = perform_gunzip(image_base, *image_start, orig_image_len)) > 0 )
-        err = decompress(*image_start, orig_image_len, image_base);
+    if ( (err = perform_gunzip(image_base, *image_start, *image_len)) > 0 )
+        err = decompress(*image_start, *image_len, image_base);
 
     if ( !err )
     {
+        printk(XENLOG_ERR "%s(%d): decompression failed, reseting image start and len\n",
+               __func__, err);
         *image_start = image_base;
-        *image_len = output_len;
+        *image_len = module_len;
     }
 
     return err > 0 ? 0 : err;
diff --git a/xen/arch/x86/hvm/dom_build.c b/xen/arch/x86/hvm/dom_build.c
index a847c2cb16d9..4f614aea34c3 100644
--- a/xen/arch/x86/hvm/dom_build.c
+++ b/xen/arch/x86/hvm/dom_build.c
@@ -743,7 +743,8 @@ static int __init pvh_load_kernel(
     struct vcpu *v = d->vcpu[0];
     int rc;
 
-    if ( (rc = bzimage_parse(image_base, &image_start, &image_len)) != 0 )
+    if ( (rc = bzimage_parse(image_base, &image_start, image->headroom,
+                             &image_len)) != 0 )
     {
         printk("Error trying to detect bz compressed kernel\n");
         return rc;
diff --git a/xen/arch/x86/include/asm/bzimage.h b/xen/arch/x86/include/asm/bzimage.h
index 7ed69d39103d..24c7d4b8eb68 100644
--- a/xen/arch/x86/include/asm/bzimage.h
+++ b/xen/arch/x86/include/asm/bzimage.h
@@ -5,7 +5,8 @@
 
 unsigned long bzimage_headroom(void *image_start, unsigned long image_length);
 
-int bzimage_parse(void *image_base, void **image_start,
-                  unsigned long *image_len);
+int bzimage_parse(
+    void *image_base, void **image_start, unsigned long headroom,
+    unsigned long *image_len);
 
 #endif /* __X86_BZIMAGE_H__ */
diff --git a/xen/arch/x86/pv/dom0_build.c b/xen/arch/x86/pv/dom0_build.c
index 8d941ff4486e..8b02f62892d4 100644
--- a/xen/arch/x86/pv/dom0_build.c
+++ b/xen/arch/x86/pv/dom0_build.c
@@ -427,7 +427,8 @@ static int __init dom0_construct(struct boot_domain *bd)
 
     d->max_pages = ~0U;
 
-    if ( (rc = bzimage_parse(image_base, &image_start, &image_len)) != 0 )
+    if ( (rc = bzimage_parse(image_base, &image_start, bd->kernel->headroom,
+                             &image_len)) != 0 )
         return rc;
 
     if ( (rc = elf_init(&elf, image_start, image_len)) != 0 )
-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Sat Apr 19 22:21:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 19 Apr 2025 22:21:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.960330.1352441 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6GZR-0002Uj-OQ; Sat, 19 Apr 2025 22:21:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 960330.1352441; Sat, 19 Apr 2025 22:21: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 1u6GZR-0002Sk-Kv; Sat, 19 Apr 2025 22:21:57 +0000
Received: by outflank-mailman (input) for mailman id 960330;
 Sat, 19 Apr 2025 22:21:56 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=nqik=XF=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1u6GPQ-0007X1-Fi
 for xen-devel@lists.xenproject.org; Sat, 19 Apr 2025 22:11:36 +0000
Received: from sender4-of-o50.zoho.com (sender4-of-o50.zoho.com
 [136.143.188.50]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 40babaa4-1d6b-11f0-9ffb-bf95429c2676;
 Sun, 20 Apr 2025 00:11:34 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 174510053179615.787663375016223;
 Sat, 19 Apr 2025 15:08: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: 40babaa4-1d6b-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; t=1745100552; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=GrUmxwIQbCQBJMf/yiaan/zO7WBRye4DEKlFfIdQjMq7a0ptUOFlJqs5pRCkKHPJ3syhE93a19sQZU1iwGHaxBLP1eM3NltNwWwJtsV6vDWGe0bUT0TkGUfNxZdG1x+JeH1Cor5nCkLpHp/8cqxK3XSpDJ4Atq8XjJTk5Ypv5S8=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1745100552; 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=ygLJ+ZFCfoz7loFx0eKO6lgsPYvnY/xYVSqzyygRmuE=; 
	b=bPT5yBqlCkGdnxZKUMwlLfs3fWKCOlQAL7oEkcjn3KdgeBVlQhFBlxoh3j8ho+5SB7eyRIRqlQ8ly4VWhM4vGwTuPEjGTXO0SDJ0ekOstfu/+08ow3TDU/ki/Hcuo1t1P/zPjEVFoTnI8m6N7czETZTazUDj1IdBQurOETh4Ua8=
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=1745100552;
	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=ygLJ+ZFCfoz7loFx0eKO6lgsPYvnY/xYVSqzyygRmuE=;
	b=D/csDoOiJcHTeytXMVvP+aTGC1cBWBVDr5I31ACab/vDV/I0P/2mnmutKMvkA+mE
	tVRqSDW6QUuLcoK0i9uCJpveMPlEfs7coSUGxK5AKc1PfvtOBVoGPRa6Lq/H1GUCR1h
	HZzDIB3Nax33VsovnEN3Sr5lBR1KoA7fxNU6nCMQ=
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
To: xen-devel@lists.xenproject.org
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	jason.andryuk@amd.com,
	stefano.stabellini@amd.com,
	agarciav@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: [RFC 15/38] x86/hyperlaunch: move iommu init to domain builder
Date: Sat, 19 Apr 2025 18:07:57 -0400
Message-Id: <20250419220820.4234-16-dpsmith@apertussolutions.com>
X-Mailer: git-send-email 2.30.2
In-Reply-To: <20250419220820.4234-1-dpsmith@apertussolutions.com>
References: <20250419220820.4234-1-dpsmith@apertussolutions.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

Move invocation of iommu_hwdom_init() to dom_construct_pvh() and guard it
with a hardware domain check.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
---
 xen/arch/x86/hvm/dom0_build.c | 2 --
 xen/arch/x86/hvm/dom_build.c  | 4 ++++
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/hvm/dom0_build.c b/xen/arch/x86/hvm/dom0_build.c
index 4a371dfd66d7..a68474b7856a 100644
--- a/xen/arch/x86/hvm/dom0_build.c
+++ b/xen/arch/x86/hvm/dom0_build.c
@@ -1305,8 +1305,6 @@ int __init dom0_construct_pvh(struct boot_domain *bd)
     struct domain *d = bd->d;
     int rc;
 
-    iommu_hwdom_init(d);
-
     rc = pvh_populate_p2m(d);
     if ( rc )
     {
diff --git a/xen/arch/x86/hvm/dom_build.c b/xen/arch/x86/hvm/dom_build.c
index 05064ae9ba96..7fa007a6926d 100644
--- a/xen/arch/x86/hvm/dom_build.c
+++ b/xen/arch/x86/hvm/dom_build.c
@@ -9,6 +9,7 @@
  */
 
 #include <xen/acpi.h>
+#include <xen/iommu.h>
 #include <xen/init.h>
 #include <xen/softirq.h>
 #include <xen/types.h>
@@ -92,6 +93,9 @@ int __init dom_construct_pvh(struct boot_domain *bd)
      */
     pvh_init_p2m(bd);
 
+    if ( is_hardware_domain(bd->d) )
+        iommu_hwdom_init(bd->d);
+
     return dom0_construct_pvh(bd);
 }
 
-- 
2.30.2



From xen-devel-bounces@lists.xenproject.org Sun Apr 20 09:36:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 20 Apr 2025 09:36:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.960615.1352453 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6R69-0007sQ-ND; Sun, 20 Apr 2025 09:36:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 960615.1352453; Sun, 20 Apr 2025 09:36: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 1u6R69-0007sJ-K8; Sun, 20 Apr 2025 09:36:25 +0000
Received: by outflank-mailman (input) for mailman id 960615;
 Sun, 20 Apr 2025 09:36: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=s4Ct=XG=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1u6R68-0007qU-00
 for xen-devel@lists.xenproject.org; Sun, 20 Apr 2025 09:36:24 +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 e39df173-1dca-11f0-9ffb-bf95429c2676;
 Sun, 20 Apr 2025 11:36:08 +0200 (CEST)
Received: by mail-ed1-x52d.google.com with SMTP id
 4fb4d7f45d1cf-5efe8d9ebdfso5982892a12.3
 for <xen-devel@lists.xenproject.org>; Sun, 20 Apr 2025 02:36:08 -0700 (PDT)
Received: from ?IPV6:2003:e5:873d:1a00:8e99:ce06:aa4a:2e7b?
 (p200300e5873d1a008e99ce06aa4a2e7b.dip0.t-ipconnect.de.
 [2003:e5:873d:1a00:8e99:ce06:aa4a:2e7b])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-acb6ef9669csm371879166b.161.2025.04.20.02.36.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 20 Apr 2025 02:36: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: e39df173-1dca-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745141768; x=1745746568; 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=moQJ7vnadvglfnX6IjVFJ6lVubFJcUavaM8Rfyz7LqE=;
        b=f9MmBLxUgvH0iIf+TENx51zRt1FYuQY2qM6T7iuhJKo9ARx+KZx1if6Mh1KgUAwwAt
         TS/wFJ4+lsyTdlOoDyhCR4prmS/c0i6FjpVujYBcDt/JnJCTc4hkfpAunzTvhaYlf6zD
         uFxo7tGyYK2V/l0+cH0mLfDShVI3MpA3R9fEjWSZNPWtZkbBm6mMTFT6EbqYQvsNKMcw
         2gGkz3DMzrjktUFG35l0rMxfBFqbInTiVVNpQjK9ew0h2GDqxfiu+ANsCnjUY/nf5VHA
         y9oB68W9w/kj4Fcv57diE5NpCsBe6mH8bDDuvpvQzx1A1PlxmKmeQ5HrbIqvE8b0O3IV
         +yxQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745141768; x=1745746568;
        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=moQJ7vnadvglfnX6IjVFJ6lVubFJcUavaM8Rfyz7LqE=;
        b=pGlfZUM4LP/ASKd9OXq2PWccx0xfnOhxPcVfprHezSTCY2JNAUqhsY8qNv9L44tlxM
         IX2ypV/pjRv7KoEPGMfsk8gzDSqD0qIlMMVTgONP9xUu+RaRGkqzW+1N4rHgL4fZEie8
         gSJs/9N63/jbbTXXA/GQoxw/vyoBEmlMLCrKLElaM1q8J8auBb1kr+KvVbvB2MlykSu1
         dNFiDYu2OWUNZ5UEg9GihLqCbnn+UCT1DUYiEljc3XDXfWuAWpvj7KVgV1IG5wIAIVbW
         murAUydpeBtGZozLfeiJmrbhOsdde1OySIUxzqD/ZMR7KmhtG3d/Xny0Pzw+CylPKSLq
         tJkg==
X-Forwarded-Encrypted: i=1; AJvYcCUw160nyQTyLWxvDj+yZ+xUP0Tmw3hVb+JR8INCE2UX8TKsFzLo9kFRknLW0adWY5PJMJFscQ3eP+M=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyorGKnkn3krim+1AFAD0D6pbQi9LVQNDScIQWDb4hMRDb9Ypbn
	GmcK4GBOdP/yowVn6Bup88hy2Ui38Srep3QaUGSmOLc/8vyY06bFmabviiBIIPM=
X-Gm-Gg: ASbGnctMeosHMlHD1anPXWgq7h1zMkzAWe6krSGHkdhSIH50tHvk2v3g4uVU7brHRcm
	Eop96OI/BPFT/y5oYIU6foJH3i9xI3n+UOM/Lxkdmd5TWr10FgY/EXGKr/SlmLbpsv8/Q1dd/yn
	sRjlWKh1eAeAxyab25P/mG2mkvFH9b4JoMRlRl0gTM+SrctNmGwZoKFB1BgzIjuyjdlWkZ7KIoC
	R8Wye5aq2tGoMsPA5IQDbHqjkVd5XMEWLD2fWcTVIyq/oDnEIaNdH2ZC6+UHYYASyWxVUOG85s1
	WH97gHC9atFkZL0pXC0VGajAMoNA2+B4f4E5vHkZ3RR/DXp/fbYmFOJW7TIP1NHfgggCFq4VAua
	Qz1dYsS6vr40vIMm8CEtJwgqJ+wzX+pHu7gh1LkCSnt5yptm3PyljUDa05wcAAIDKeQ==
X-Google-Smtp-Source: AGHT+IH0ZVhY51/rj98ID7AdBoOnUvS9Nhyc4tSRA4QS1UX2YYepU4T18G6ttBzMQTiCADZL0kkbMA==
X-Received: by 2002:a17:907:9413:b0:ac7:c688:9fd7 with SMTP id a640c23a62f3a-acb74b2e2ccmr853495266b.18.1745141768281;
        Sun, 20 Apr 2025 02:36:08 -0700 (PDT)
Message-ID: <382cd6a7-c91b-4bf8-a026-ef0d9e872fe6@suse.com>
Date: Sun, 20 Apr 2025 11:36:06 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC 16/38] x86/boot: move and rename sched_setup_dom0_vcpus
To: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 xen-devel@lists.xenproject.org
Cc: jason.andryuk@amd.com, stefano.stabellini@amd.com, agarciav@amd.com,
 Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Dario Faggioli <dfaggioli@suse.com>, George Dunlap <gwd@xenproject.org>
References: <20250419220820.4234-1-dpsmith@apertussolutions.com>
 <20250419220820.4234-17-dpsmith@apertussolutions.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: <20250419220820.4234-17-dpsmith@apertussolutions.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------8myDA5qyqKRI0rR0C1aQh97a"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------8myDA5qyqKRI0rR0C1aQh97a
Content-Type: multipart/mixed; boundary="------------lmpBo0yNlUrOSCn1qoC8WvCE";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 xen-devel@lists.xenproject.org
Cc: jason.andryuk@amd.com, stefano.stabellini@amd.com, agarciav@amd.com,
 Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Dario Faggioli <dfaggioli@suse.com>, George Dunlap <gwd@xenproject.org>
Message-ID: <382cd6a7-c91b-4bf8-a026-ef0d9e872fe6@suse.com>
Subject: Re: [RFC 16/38] x86/boot: move and rename sched_setup_dom0_vcpus
References: <20250419220820.4234-1-dpsmith@apertussolutions.com>
 <20250419220820.4234-17-dpsmith@apertussolutions.com>
In-Reply-To: <20250419220820.4234-17-dpsmith@apertussolutions.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=

--------------lmpBo0yNlUrOSCn1qoC8WvCE
Content-Type: multipart/mixed; boundary="------------0gRZ1AfzqBsWjHeSTfWyQXvO"

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

T24gMjAuMDQuMjUgMDA6MDcsIERhbmllbCBQLiBTbWl0aCB3cm90ZToNCj4gUmVsb2NhdGVk
IHRoZSBmdW5jdGlvbiBzY2hlZF9zZXR1cF9kb20wX3ZjcHVzKCksIHdoaWNoIHdhcyBwcm90
ZWN0ZWQgYnkgYW4NCj4gaWZkZWYgQ09ORklHX1g4NiwgZnJvbSBjb21tb24vc2NoZWQgdG8g
dGhlIGh5cGVybGF1bmNoIGRvbWFpbiBidWlsZGVyLiBSZW5hbWUNCj4gaXQgdG8gYWxsb2Nf
ZG9tX3ZjcHVzKCkgdG8gYmV0dGVyIHJlZmxlY3QgdGhlIHB1cnBvc2Ugb2YgdGhlIGZ1bmN0
aW9uLg0KDQpJJ2QgYmUgaW4gZmF2b3IgbmFtaW5nIGl0IGRvbWFpbl92Y3B1c19jcmVhdGUo
KS4NCg0KDQpKdWVyZ2VuDQo=
--------------0gRZ1AfzqBsWjHeSTfWyQXvO
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-----

--------------0gRZ1AfzqBsWjHeSTfWyQXvO--

--------------lmpBo0yNlUrOSCn1qoC8WvCE--

--------------8myDA5qyqKRI0rR0C1aQh97a
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/Ey8FAmgEwAcFAwAAAAAACgkQsN6d1ii/Ey+L
IAf/Z7LKgLSKKtD9V/dI3lCS2ytz4UYu2ooKW91B49+36PSRuGDH3dHWR3iifnpiYkN6G8S2ThJy
FVNwkuXYioqYJNIKEJQXnCoea6DIf+ewYLLKiE6DCuKSNWUc4IeXCe+Jv89zXLI70DYfJDE01+kZ
IoyQ6AYjwTtUxSUUeh9sleuKNZNwnfh9vf/BPn3JQEaRaZDq303ZOuMjdjQrFUENinRykNq8zoD1
3xFHxTgFHgBlJlt/oDjmcMV/tEcajXkLJCV5Wi70I33/HTfhHnYW8Udm40xcyv2+wJD9Ie/OpPmd
+nD52+jY+PWdQzP1BeEjQyHU4ByUByD79wip5ZvJTA==
=7ddp
-----END PGP SIGNATURE-----

--------------8myDA5qyqKRI0rR0C1aQh97a--


From xen-devel-bounces@lists.xenproject.org Sun Apr 20 09:37:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 20 Apr 2025 09:37:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.960626.1352463 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6R7G-00011F-5A; Sun, 20 Apr 2025 09:37:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 960626.1352463; Sun, 20 Apr 2025 09:37:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6R7G-000118-2U; Sun, 20 Apr 2025 09:37:34 +0000
Received: by outflank-mailman (input) for mailman id 960626;
 Sun, 20 Apr 2025 09:37:32 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=s4Ct=XG=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1u6R7E-0000zQ-KI
 for xen-devel@lists.xenproject.org; Sun, 20 Apr 2025 09:37:32 +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 14608ea6-1dcb-11f0-9ffb-bf95429c2676;
 Sun, 20 Apr 2025 11:37:30 +0200 (CEST)
Received: by mail-ej1-x62c.google.com with SMTP id
 a640c23a62f3a-ac2dfdf3c38so563064866b.3
 for <xen-devel@lists.xenproject.org>; Sun, 20 Apr 2025 02:37:30 -0700 (PDT)
Received: from ?IPV6:2003:e5:873d:1a00:8e99:ce06:aa4a:2e7b?
 (p200300e5873d1a008e99ce06aa4a2e7b.dip0.t-ipconnect.de.
 [2003:e5:873d:1a00:8e99:ce06:aa4a:2e7b])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-acb6ec5102bsm381392466b.68.2025.04.20.02.37.29
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 20 Apr 2025 02:37:29 -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: 14608ea6-1dcb-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745141850; x=1745746650; 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=QgQIwgzce6mn81FllKzjYLhPtXg/33rzsQt4hxyF/R4=;
        b=Se1nS01Z6W5y14LSBtLs0wvCIq3rkjUJmHjm763N4h3wfhiuMfBaBbMWAorseaILCH
         HXH15e2cWiz3t3dy9FjajCoPdMqOh5GWs/kajQ7rxIX52+uU6FWZNa3uOkljvw+gs18f
         bIsktuYEFPZcO6R/MFQ9NhxezjmXNXxGeHr5qTbOOoeS5z0I1erFt11k/F22LePl3wff
         lpcvi0csoQejbcrYRzPWYmymXkboYixAlzmw6kp2G1C6NoDgGH4QxLMEkjL1dzXA1Xi9
         tAIpZH+vGVUOtmaxJ1cKupZpf2oASoWXmCrEh8UXDD/aOwocCUyJRIxxqo+59tojhpFy
         zo3g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745141850; x=1745746650;
        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=QgQIwgzce6mn81FllKzjYLhPtXg/33rzsQt4hxyF/R4=;
        b=osdYwszG9ryMvck8rPkLvz0LEXkKDU/6RnZ/D5FZmO6HX0KNogJIYev/YZ+y1VTMVA
         kEvzr15CbRRf6VBQ63A9jkEwx/LmdGmX8vg7Hz/9VJ0O3qg5Bbl+RB/sJVaBIBV2138m
         3b2BRDh3QC4KS3HZLaOPSdJk93mAEvxLXFSUGyUbh5uVZZj7ZynTs/IGALLVikN4+W9G
         amtDH5K1oKXl3Ixn6Ec6ZB83TjzlaqbADoclhyfT4p6iFzVfkfUA2fuC3gIofoE/x1Le
         9S1tNpuv31dvgflOGIHaHcA1YAMda9O+ZPK+so8plHmDhb+luCrM2bXCZSaaHumHGnvO
         lRFQ==
X-Forwarded-Encrypted: i=1; AJvYcCUm+0EjwrFKvwYmJeGAasoKCwjN9rpMeVqPngOQsnQ2dlfISyEfjQ5RVDbFkx+U9WgNAxVP285YwKA=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx5XgNgSTXDO8W8zsMyrly2L97EVR9LXTbgK517u2pRzn1As/Zq
	OnYBgeZnxNu77Xuw0QSFoOECIOjeDNmNu7rxTWZ45LYezltdomuwPhyffA7cT0s=
X-Gm-Gg: ASbGncuns3VJ/aO+rRlpKDP38J3fQwL0UoNXn+s0y7UsG3QRU7xL3sH/DjqiTx4Xq9a
	MrRIBrNR9b3qAV6quZYksOG+WgKKjQE9r6hsfBQ4XlhWBLXIGZDs0hHXvxQbLt3MKG6stf4ydTa
	O8HUJT+htmYsMaEGQDmvUvb9RohgYaCiaqL0BZXWTFJX8zSskl8YLw4Mi4D54/BG3GwuZ+CZrNi
	ALFKlbiajSFo9LIl0tA2wRXanpYg5bAlCHIU7IzCTYKjNugIxrv4xNxO4tpKc/snaPpL3gsj0UX
	jHzywXKWE3gYgxHAzLtOCFf/h+PZtkz0zO85MiHBw7CFyJO7XPBoTSBS+1TI8ElmOLqocikx3Le
	ap1wBq3Z4mMCMzKnDhtYvXXu6nY/L8Rfyo7+t7xRXEC3BRob+435QJYnEb2npsQSSfQ==
X-Google-Smtp-Source: AGHT+IFWw0zaxnQZoAi4meMJMRbz+GQeFdmUieMvqhl5ojuYniRZnV/03+F6cblD1PvqRvTllQlfMQ==
X-Received: by 2002:a17:907:9450:b0:acb:205e:e0ac with SMTP id a640c23a62f3a-acb74dd7715mr777818366b.57.1745141850153;
        Sun, 20 Apr 2025 02:37:30 -0700 (PDT)
Message-ID: <b51d7c0b-a97c-4b54-872b-90382f5dfdf4@suse.com>
Date: Sun, 20 Apr 2025 11:37:29 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xenstored: Remove setjmp.h
To: Jason Andryuk <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org
Cc: Julien Grall <julien@xen.org>, Anthony PERARD <anthony.perard@vates.tech>
References: <20250418205933.542150-1-jason.andryuk@amd.com>
Content-Language: en-US
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
Autocrypt: addr=jgross@suse.com; keydata=
 xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOB
 ycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJve
 dYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJ
 NwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvx
 XP3FAp2pkW0xqG7/377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEB
 AAHNH0p1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT7CwHkEEwECACMFAlOMcK8CGwMH
 CwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRCw3p3WKL8TL8eZB/9G0juS/kDY9LhEXseh
 mE9U+iA1VsLhgDqVbsOtZ/S14LRFHczNd/Lqkn7souCSoyWsBs3/wO+OjPvxf7m+Ef+sMtr0
 G5lCWEWa9wa0IXx5HRPW/ScL+e4AVUbL7rurYMfwCzco+7TfjhMEOkC+va5gzi1KrErgNRHH
 kg3PhlnRY0Udyqx++UYkAsN4TQuEhNN32MvN0Np3WlBJOgKcuXpIElmMM5f1BBzJSKBkW0Jc
 Wy3h2Wy912vHKpPV/Xv7ZwVJ27v7KcuZcErtptDevAljxJtE7aJG6WiBzm+v9EswyWxwMCIO
 RoVBYuiocc51872tRGywc03xaQydB+9R7BHPzsBNBFOMcBYBCADLMfoA44MwGOB9YT1V4KCy
 vAfd7E0BTfaAurbG+Olacciz3yd09QOmejFZC6AnoykydyvTFLAWYcSCdISMr88COmmCbJzn
 sHAogjexXiif6ANUUlHpjxlHCCcELmZUzomNDnEOTxZFeWMTFF9Rf2k2F0Tl4E5kmsNGgtSa
 aMO0rNZoOEiD/7UfPP3dfh8JCQ1VtUUsQtT1sxos8Eb/HmriJhnaTZ7Hp3jtgTVkV0ybpgFg
 w6WMaRkrBh17mV0z2ajjmabB7SJxcouSkR0hcpNl4oM74d2/VqoW4BxxxOD1FcNCObCELfIS
 auZx+XT6s+CE7Qi/c44ibBMR7hyjdzWbABEBAAHCwF8EGAECAAkFAlOMcBYCGwwACgkQsN6d
 1ii/Ey9D+Af/WFr3q+bg/8v5tCknCtn92d5lyYTBNt7xgWzDZX8G6/pngzKyWfedArllp0Pn
 fgIXtMNV+3t8Li1Tg843EXkP7+2+CQ98MB8XvvPLYAfW8nNDV85TyVgWlldNcgdv7nn1Sq8g
 HwB2BHdIAkYce3hEoDQXt/mKlgEGsLpzJcnLKimtPXQQy9TxUaLBe9PInPd+Ohix0XOlY+Uk
 QFEx50Ki3rSDl2Zt2tnkNYKUCvTJq7jvOlaPd6d/W0tZqpyy7KVay+K4aMobDsodB3dvEAs6
 ScCnh03dDAFgIq5nsB11j3KPKdVoPlfucX2c7kGNH+LUMbzqV6beIENfNexkOfxHfw==
In-Reply-To: <20250418205933.542150-1-jason.andryuk@amd.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------iGOlWt07P7tf6btlAx8D8iOg"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------iGOlWt07P7tf6btlAx8D8iOg
Content-Type: multipart/mixed; boundary="------------JEoojZOWNEKLPzUOeaWZT0Mx";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Jason Andryuk <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org
Cc: Julien Grall <julien@xen.org>, Anthony PERARD <anthony.perard@vates.tech>
Message-ID: <b51d7c0b-a97c-4b54-872b-90382f5dfdf4@suse.com>
Subject: Re: [PATCH] xenstored: Remove setjmp.h
References: <20250418205933.542150-1-jason.andryuk@amd.com>
In-Reply-To: <20250418205933.542150-1-jason.andryuk@amd.com>

--------------JEoojZOWNEKLPzUOeaWZT0Mx
Content-Type: multipart/mixed; boundary="------------5SUpWrmFGl5u8wyscTNcdp0A"

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

T24gMTguMDQuMjUgMjI6NTksIEphc29uIEFuZHJ5dWsgd3JvdGU6DQo+IFVzZSBvZiBzZXRq
bXAvbG9uZ2ptcCBhcyByZW1vdmVkIGluIDIwMDYsIGJ1dCB0aGUgaW5jbHVkZSByZW1haW5l
ZC4NCj4gUmVtb3ZlIGl0IG5vdy4NCj4gDQo+IEZpeGVzOiAxYmFjM2I0OWNkICgiSW1wb3J0
IHRoZSBjdXJyZW50IHZlcnNpb24gb2YgdGFsbG9jLi4uIikNCj4gU2lnbmVkLW9mZi1ieTog
SmFzb24gQW5kcnl1ayA8amFzb24uYW5kcnl1a0BhbWQuY29tPg0KDQpBcGFydCBmcm9tIHRo
ZSBGaXhlczogY29tbWl0IGlkIHNob3J0ZW5pbmc6DQoNClJldmlld2VkLWJ5OiBKdWVyZ2Vu
IEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+DQoNCg0KSnVlcmdlbg0K
--------------5SUpWrmFGl5u8wyscTNcdp0A
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-----

--------------5SUpWrmFGl5u8wyscTNcdp0A--

--------------JEoojZOWNEKLPzUOeaWZT0Mx--

--------------iGOlWt07P7tf6btlAx8D8iOg
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/Ey8FAmgEwFkFAwAAAAAACgkQsN6d1ii/Ey/B
EggAln2ouHt8uWKmI1duUOOrCmCOvDRh88Pj17YkM9UB2XwLoUdrmJGtIRGa8i9dVYKazoYQEur8
2lqRe9MI7UPIzSjBGhNCmcmivmskk7iAwBjBOpY1osJnr1XS/sj66GNcwmUDhtyB8oL4wIPQyGNh
iu1sCWUkqzJVFQhaIWLeqtdaNp+FQ0p3AGT+QVhirp9E4pQ0Q6XK2xjIo3fKyzNcVdDy86icOWtd
51zycmiPBtKjQMORSBAxLpCcZrJWp3JTbhHRdzbHwxBf1vqaKabUTs9HPzhgSgQVNbqsaitfueQT
TWt4xtbtEYbUefe8y9iftazOcE38P2cg71mtsVE6JQ==
=w4yt
-----END PGP SIGNATURE-----

--------------iGOlWt07P7tf6btlAx8D8iOg--


From xen-devel-bounces@lists.xenproject.org Sun Apr 20 14:14:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 20 Apr 2025 14:14:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.960716.1352473 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6VRH-0000aF-Rc; Sun, 20 Apr 2025 14:14:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 960716.1352473; Sun, 20 Apr 2025 14:14: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 1u6VRH-0000a8-Oy; Sun, 20 Apr 2025 14:14:31 +0000
Received: by outflank-mailman (input) for mailman id 960716;
 Sun, 20 Apr 2025 14: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=dJou=XG=gmail.com=jandryuk@srs-se1.protection.inumbo.net>)
 id 1u6VRG-0000a0-Ci
 for xen-devel@lists.xenproject.org; Sun, 20 Apr 2025 14:14:30 +0000
Received: from mail-yb1-xb2d.google.com (mail-yb1-xb2d.google.com
 [2607:f8b0:4864:20::b2d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c4e22209-1df1-11f0-9eb0-5ba50f476ded;
 Sun, 20 Apr 2025 16:14:28 +0200 (CEST)
Received: by mail-yb1-xb2d.google.com with SMTP id
 3f1490d57ef6-e6a8aa771e8so2591301276.3
 for <xen-devel@lists.xenproject.org>; Sun, 20 Apr 2025 07:14:28 -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: c4e22209-1df1-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1745158467; x=1745763267; 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=4eDjS9dml/91wUZdvmU4OGbE1FbA4NuafODmKT8GZnQ=;
        b=CILb+eCMMUy3KGiUvVOVixYPzwRTAo4Uv7Mi22XJbJ0EttXj4Hg+t5+stgcyqvQPC4
         m4bAJpU5BLYsAjiMMsUDCSfbKC6v5KSyvHkQYFiNSLG/jb8aVegDaVb+PWFzCAcoX0fc
         5SgRNrKTSGd01QEH5NivP04ERfc1JlNCkn7s4zZ3NHf1kgc3Ha+L+JOJ+EnCI9voogCl
         hMoLIUGmStDCzywqkoxxuyRKseHFJVmY77ngJcXrw5mRIS8VG8u/vAWtrlpX+fHLirpn
         5RvWHc4HPYuDP4Xs4M+4RepwDw7xFrNhin3EK9oqzHFblQqTURdBqmcun0iuF7Jj5BzB
         r9Ug==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745158467; x=1745763267;
        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=4eDjS9dml/91wUZdvmU4OGbE1FbA4NuafODmKT8GZnQ=;
        b=vvycxMuPGYDJwvP9x0LGllzPjR0TpAyACLkOhFbkSuy0TwCI4RLBxBOkkY0Z+3bL/b
         zeBhAIapkuI4bux7L+A1fg3PrguR+55vMwmQ8/63KzbsBjl+NFLC1yt2faZ2SOetUtRu
         SfMLzUrFlLRBT4xlpwP7/kyGac86VB1+i46WS7M6776apX2RPn0p+BdaTCO9JOpQGshK
         8h0Rz0a8bD4T5MVOOds8DCmQ4xFiC5Fk6UbJUsc3DOOQbAYpxyQdovHuXd7Bdnb/k+n4
         MpAkdlZ+hMH+f47v4pi3qcq382hrqQeBquTaeUnvD2KkXlwbia0eCIpW9YQItb2fdLbc
         Xlww==
X-Forwarded-Encrypted: i=1; AJvYcCWRZaWph1mEQuxnzNj1aQi7Gegl/Hpr9FY1kpqyp6qzIjRjBdephGs4kD1TAKI7qnqmslehv/xSYJ4=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxa5dWCIfE+Xc/4Twk7sBsebBHx+eYmpdjrre5Ross/m2SoT8Wi
	PFM2kmAomKlhssuna5LisLznUxWhryk7+61BwchvIcxUhwhnY/NtSFtlKEWgNtBfKcm24QLGIIs
	lblJ05+9VQb4Oex8AUSIlBmGKhqc=
X-Gm-Gg: ASbGnctNxyZnFKrl5EIKEi3n4oN+4/CcPsAXH6J79jfI4vf96Sk4I6hdER5p8DIb/OI
	FCnDLa/rulMgaw3xNVgmZusF8c6JbagM0ufZTObYA04YRO7JZbN2n7Y+B6+QI1lBZ6830l0YNIj
	GT7aBvIUXe3XQ0i4zHV7A=
X-Google-Smtp-Source: AGHT+IFb4jinzLTyx0F81tBmqDEds5c5n5PRoxllZMCI/LIgHB1gA8JuBzIiJZgFWLUtbexzIfMgPXr1mSRHPlvhIk0=
X-Received: by 2002:a05:6902:2385:b0:e6d:f157:c601 with SMTP id
 3f1490d57ef6-e7297dcce7bmr11923691276.17.1745158467132; Sun, 20 Apr 2025
 07:14:27 -0700 (PDT)
MIME-Version: 1.0
References: <20250418205933.542150-1-jason.andryuk@amd.com> <43ce15d8-bf94-4b3c-9c2e-d1121476056f@xen.org>
In-Reply-To: <43ce15d8-bf94-4b3c-9c2e-d1121476056f@xen.org>
From: Jason Andryuk <jandryuk@gmail.com>
Date: Sun, 20 Apr 2025 10:14:16 -0400
X-Gm-Features: ATxdqUERcuGK1q_dvA2JYmTBTclqWt-0UkOA6zcDCYBhs_wuZ4ci3XE5LxyEFaM
Message-ID: <CAKf6xpsh47SzaA3aYNBW30jOSCGE7ekNc0-MZEZkipgq-RC8VQ@mail.gmail.com>
Subject: Re: [PATCH] xenstored: Remove setjmp.h
To: Julien Grall <julien@xen.org>
Cc: Jason Andryuk <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org, 
	Juergen Gross <jgross@suse.com>, Anthony PERARD <anthony.perard@vates.tech>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Fri, Apr 18, 2025 at 6:51=E2=80=AFPM Julien Grall <julien@xen.org> wrote=
:
>
> Hi Jason,
>
> On 19/04/2025 05:59, Jason Andryuk wrote:
> > Use of setjmp/longjmp as removed in 2006, but the include remained.

Whoops, this should be "was removed".

> > Remove it now.
> >
> > Fixes: 1bac3b49cd ("Import the current version of talloc...")
>
> The subject truncation is ok however for the commit ID, we are expecting
> 12 characters (see docs/process/sending-patches.pandoc).

Sorry about that.  I used `--pretty=3Dfixes`, but I guess I have it
misconfigured on that machine.

The 12 character ID is:
1bac3b49cdd4

>
> > Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
>
> With the remark above addressed (can be fixed on commit):
>
> Reviewed-by: Julien Grall <jgrall@amazon.com>

Thanks,
Jason


From xen-devel-bounces@lists.xenproject.org Mon Apr 21 06:19:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 21 Apr 2025 06:19:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.960836.1352513 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6kVF-0005o4-S1; Mon, 21 Apr 2025 06:19:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 960836.1352513; Mon, 21 Apr 2025 06: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 1u6kVF-0005nx-O2; Mon, 21 Apr 2025 06:19:37 +0000
Received: by outflank-mailman (input) for mailman id 960836;
 Mon, 21 Apr 2025 06: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=rBGn=XH=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1u6kVE-00057u-1y
 for xen-devel@lists.xenproject.org; Mon, 21 Apr 2025 06:19:36 +0000
Received: from NAM11-CO1-obe.outbound.protection.outlook.com
 (mail-co1nam11on20621.outbound.protection.outlook.com
 [2a01:111:f403:2416::621])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 96405587-1e78-11f0-9ffb-bf95429c2676;
 Mon, 21 Apr 2025 08:19:32 +0200 (CEST)
Received: from SJ0PR05CA0023.namprd05.prod.outlook.com (2603:10b6:a03:33b::28)
 by CH3PR12MB8545.namprd12.prod.outlook.com (2603:10b6:610:163::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.35; Mon, 21 Apr
 2025 06:19:28 +0000
Received: from SJ1PEPF000026C8.namprd04.prod.outlook.com
 (2603:10b6:a03:33b:cafe::a0) by SJ0PR05CA0023.outlook.office365.com
 (2603:10b6:a03:33b::28) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.25 via Frontend Transport; Mon,
 21 Apr 2025 06:19:27 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ1PEPF000026C8.mail.protection.outlook.com (10.167.244.105) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Mon, 21 Apr 2025 06:19:27 +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; Mon, 21 Apr
 2025 01:19:25 -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: 96405587-1e78-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ie3C+3Uu+iJEVYh/hqPZlb0ItioxCW19IzzsXI421z6JCXnX2HMirlVWCdWI5TV1vOukyxbbqcO0gsI3ym1ub1+g7oK8NKbDfx3n2ckvzESPKcnwkOrGW15wvKYy5QETRdXVTWbCF2WZGaEdDccS2x80/xgUjeyidZ6d8PAmvUbtv0W54riI54J3NC+jIz/IusMc76R7H/S+s5K2ZV8rOQVzruqg3Y9pVUtqbh5W3tUZQfZRMQRiwV9muuIXHPgJzDW44klyFmylddGd2qmeHkcwhkM9DWsmfGMHW7Sg3oWgLPWAzGNG6b1lKVWEQn7o2OpvheIEJ1aWv+i97AwWhQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=+KCgQPyUpGWL9Zy2Qdv7/Xw4+GPX2K++K1X78HD+wMQ=;
 b=Eb3Kw/YVV1mYLUAKyMlc6pz909cwLQIavIx7H2RdWukUJZ5rZDbqQ4hcZCFqnwxtCjnWda6X9HP+bG7UDUZUvl7v1uc5dWhtnGCq9qL7YpHiaCVK78Po1sYVAF1bLxs4pKFDlOTESp+eFm8PQNj2sUvxgkbYTcmb79peXtlSuY6M9Evd9jbYaEjGgDIodJgIdktXu9tr/mFeV4jLtnCSWRZ+bxK2gVPol5VuzNmXuJkoW16lkujPLn2t1jrhpWnoqPW8ap1eI9AV9K/+23KrInlsXFiROaWgyNEhh4hFTk6InfDZFC+OjN63venJuU5qMSNy/7R6a0aUmnzr8SiQ/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=+KCgQPyUpGWL9Zy2Qdv7/Xw4+GPX2K++K1X78HD+wMQ=;
 b=xCgeAVIbHGWhbvzyTglNfvV/ueZ7uiVOEPfPPw7VJaoOuyX4DXkOLIUXnahvNPF4A8gM19Krx/VCI/fOtgAz3+Y8iiw6tdpO+czkKrunahJ91zz2TM+Kd8gF/MqkS3WrS5m6ibGrO1V2SJd1BOrpBUrs4nyj9qUgp3QMRd+0rQ0=
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: Huang Rui <ray.huang@amd.com>, Jiqian Chen <Jiqian.Chen@amd.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v3 03/11] vpci/header: Emulate legacy capability list for dom0
Date: Mon, 21 Apr 2025 14:18:55 +0800
Message-ID: <20250421061903.1542652-4-Jiqian.Chen@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250421061903.1542652-1-Jiqian.Chen@amd.com>
References: <20250421061903.1542652-1-Jiqian.Chen@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: SJ1PEPF000026C8:EE_|CH3PR12MB8545:EE_
X-MS-Office365-Filtering-Correlation-Id: 86c4807b-2405-43a0-9e92-08dd809c783f
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?Uk9KRWFxczJ1MU10d1MyaGxkR2JzbzJhaUlia1N1blprSVJHQnJPQW1uektv?=
 =?utf-8?B?Zmt3c0wxcUx2dlVKY2NkcEFDV3JoMStaOGduN0cxWDNNRmFmYWxIUEg5dUhX?=
 =?utf-8?B?SjVXMkNjdWIwU016anowTkdiMEpnaFFJc2VUOVZIUjEydldnYXpJM0p3Zklh?=
 =?utf-8?B?MXBuQWVIU09uTUJ2MEJKMFcrWndYSzdzOXIwUlVFdXlJekpBbkF4cFdJaHZT?=
 =?utf-8?B?NzdwNVdYbTcySTF5WW9OVzk0cURMZ01MTnRyTzBWRGJTeE9KQUplVW9uenpy?=
 =?utf-8?B?aEg1ditiWEpOQkE0TnpzYUtGRjVsdVJPc3RYWHVpdWZRQjN4ZWRuQWFLVzdV?=
 =?utf-8?B?bVZFV3JKbjF6VzRvQ3hPY2tOUnM5SHZzME5leUtEYW14NjJoNHNHeEVnaCtS?=
 =?utf-8?B?TDlRR2JmckUzV0ZaYkFFT3NHdEJXVW0vb3BWRVRvYVhmRy9mSHJma0hvMlNF?=
 =?utf-8?B?WEdLSVhXdzdyT2srcFFyM25QNDhUNUo4ZjN0Nmphb1N2dThUaE5SM21wbmR5?=
 =?utf-8?B?WWRCYTlxblZpcVlybWhqTm5xMUZBUmJYN3Q1cUlaM0ZyZStZcTBLMnB4MTZU?=
 =?utf-8?B?cmNWbThpNDNrRFNEQmZSRXdpYVZjTno3am4xU2ZlMWhxek1lTnluUU4rU3ZP?=
 =?utf-8?B?R0orcTNncjMyVm9leG02a2FaZFVtRC9IcWZlZVdVRWovU1dTbkZpYmMyVXlY?=
 =?utf-8?B?QVBPVVYyWTE1NTZjUHo5czV5SmVTeXFGR2NVOENabnRHSDFSTTB2U2p6Z1NF?=
 =?utf-8?B?Z09sa3A4ajA2dHU0WVpSdHlBb1ozbDBFM0JYdHMvSHRqNkFlQW9seit2SEVz?=
 =?utf-8?B?aHhCaGxsTXF5T2N3ZGkrbUV2OEhxZ0ZOeHJmU29qQnBmTUg0aXd3eUVqR0t3?=
 =?utf-8?B?bVlpaXZ4RlpQeVYxeW5vY3NuaGVnRHp5MUEvZG02cjJ4dmRCSElmeERiSDVw?=
 =?utf-8?B?Q0RtcHZJY0VkT2VXb3NibitTOFZrVk1HOGRBZUNCMWJ1TnFWQ3RQNTVpOWpX?=
 =?utf-8?B?ZEhhbUNmQkY2WmhKMy9HZ0VCRW1oN3J0RjhmZTV4dE9iM3dKVXBxTndTQXRN?=
 =?utf-8?B?c0RPS0ZsK3hUeHcxVnE1ek1mUloxQ0lad3krdGh0bDJWUHN3WHBaemxnRkxO?=
 =?utf-8?B?d2ZsVXkwei9XdUYwNGg0aUpkVW4wdk5zT3VUS25lZWVQd3p3OU5saUFEODYx?=
 =?utf-8?B?K0c5aktZVmpqUWJFQk5TbHRkTDB5NEZVOE4rVDcxRFk3SzJobkY3TlRHeS94?=
 =?utf-8?B?aGxvQkk5YXpyeEw1dHVBVEtRN292QmpEL1phZ25oc29odCtrOHQ5SzFubEhl?=
 =?utf-8?B?bGpValV2WjErY3NaYUd1azRXNktDQlNGeEgvUEd3L2t0ZU52TGVpaWpRdEVu?=
 =?utf-8?B?MDdEQmpqbllHdGwyQkFHTHZkMVdzY3JjNHN2OGhSekNmb0ZrZ0FzeGhsWHI2?=
 =?utf-8?B?K3BDbUU2aVVzcXBuTzVTTW5JdFkvTllwVXlwNEZmUnE1SmJ0UEV2cVVUU3Y4?=
 =?utf-8?B?d1N2NVl1aVd3UWFKNmRMc0xpN25aTTcrYXpLZ1VSYnZhcnhQOU0reDN4L3ZB?=
 =?utf-8?B?Q0JnaDVmSU90UjVWRUExZHJHd1ljcno2Z0NFV2ZYVnRmUWpYc3hPTEVZOHNN?=
 =?utf-8?B?QlBISGhiYTNFK3hjOTdCSEJZTGxaai8zbjdJMml1cnFXbGphVEVEOVhHYlYy?=
 =?utf-8?B?MXRuOE96TmxkMDBEclluNmkrajF3Smo2Uis1Tm5WbHRIL3BuWGJyTEN3bzdG?=
 =?utf-8?B?bUJob0wrWFdtL3BaUHVqbXQxTFNBOXB0eE9NRFpQUUtWbW0xeHpMaGs3blVX?=
 =?utf-8?B?MnVaYXh0YXVkcytPaHpHaExOTmszc0JFY2FxcFFOdlFiSkFDRCtHVllLU3Iz?=
 =?utf-8?B?bDRxbFRXdHpBWWIzcmNQR0lpbkxPNXBFdGljaGkrUm52VmNMMW05VXdvSEhk?=
 =?utf-8?B?Uy9CSXhRNFY2bEhYbVRSL1dEVW9nNm5HcS9hTnpVRU5VNlFwaVVlMkF1SnIz?=
 =?utf-8?B?aGZhK3VVYklOK1pDYkNJdWk5TE81cUhRV205SFMxZmpmaW5Gd3FHQkplSjNK?=
 =?utf-8?Q?I4xjX7?=
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: 21 Apr 2025 06:19:27.5604
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 86c4807b-2405-43a0-9e92-08dd809c783f
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:
	SJ1PEPF000026C8.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB8545

Current logic of emulating legacy capability list is only for domU.
So, expand it to emulate for dom0 too. Then it will be easy to hide
a capability whose initialization fails in a function.

Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
---
cc: "Roger Pau Monné" <roger.pau@citrix.com>
---
v2->v3 changes:
* Not to add handler of PCI_CAP_LIST_ID when domain is dom0.

v1->v2 changes:
new patch.

Best regards,
Jiqian Chen.
---
 xen/drivers/vpci/header.c | 25 ++++++++++++++-----------
 1 file changed, 14 insertions(+), 11 deletions(-)

diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c
index 3e9b44454b43..c98cd211d9d7 100644
--- a/xen/drivers/vpci/header.c
+++ b/xen/drivers/vpci/header.c
@@ -749,9 +749,9 @@ static int vpci_init_capability_list(struct pci_dev *pdev)
 {
     int rc;
     bool mask_cap_list = false;
+    bool is_hwdom = is_hardware_domain(pdev->domain);
 
-    if ( !is_hardware_domain(pdev->domain) &&
-         pci_conf_read16(pdev->sbdf, PCI_STATUS) & PCI_STATUS_CAP_LIST )
+    if ( pci_conf_read16(pdev->sbdf, PCI_STATUS) & PCI_STATUS_CAP_LIST )
     {
         /* Only expose capabilities to the guest that vPCI can handle. */
         unsigned int next, ttl = 48;
@@ -759,10 +759,11 @@ static int vpci_init_capability_list(struct pci_dev *pdev)
             PCI_CAP_ID_MSI,
             PCI_CAP_ID_MSIX,
         };
+        const unsigned int *caps = is_hwdom ? NULL : supported_caps;
+        const unsigned int n = is_hwdom ? 0 : ARRAY_SIZE(supported_caps);
 
         next = pci_find_next_cap_ttl(pdev->sbdf, PCI_CAPABILITY_LIST,
-                                     supported_caps,
-                                     ARRAY_SIZE(supported_caps), &ttl);
+                                     caps, n, &ttl);
 
         rc = vpci_add_register(pdev->vpci, vpci_read_val, NULL,
                                PCI_CAPABILITY_LIST, 1,
@@ -772,7 +773,7 @@ static int vpci_init_capability_list(struct pci_dev *pdev)
 
         next &= ~3;
 
-        if ( !next )
+        if ( !next && !is_hwdom )
             /*
              * If we don't have any supported capabilities to expose to the
              * guest, mask the PCI_STATUS_CAP_LIST bit in the status
@@ -786,13 +787,15 @@ static int vpci_init_capability_list(struct pci_dev *pdev)
 
             next = pci_find_next_cap_ttl(pdev->sbdf,
                                          pos + PCI_CAP_LIST_NEXT,
-                                         supported_caps,
-                                         ARRAY_SIZE(supported_caps), &ttl);
+                                         caps, n, &ttl);
 
-            rc = vpci_add_register(pdev->vpci, vpci_hw_read8, NULL,
-                                   pos + PCI_CAP_LIST_ID, 1, NULL);
-            if ( rc )
-                return rc;
+            if ( !is_hwdom )
+            {
+                rc = vpci_add_register(pdev->vpci, vpci_hw_read8, NULL,
+                                       pos + PCI_CAP_LIST_ID, 1, NULL);
+                if ( rc )
+                    return rc;
+            }
 
             rc = vpci_add_register(pdev->vpci, vpci_read_val, NULL,
                                    pos + PCI_CAP_LIST_NEXT, 1,
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Apr 21 06:19:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 21 Apr 2025 06:19:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.960835.1352492 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6kVD-0005F0-Gd; Mon, 21 Apr 2025 06:19:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 960835.1352492; Mon, 21 Apr 2025 06:19: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 1u6kVD-0005CF-BW; Mon, 21 Apr 2025 06:19:35 +0000
Received: by outflank-mailman (input) for mailman id 960835;
 Mon, 21 Apr 2025 06:19: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=rBGn=XH=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1u6kVC-00057u-Fr
 for xen-devel@lists.xenproject.org; Mon, 21 Apr 2025 06:19:34 +0000
Received: from NAM11-CO1-obe.outbound.protection.outlook.com
 (mail-co1nam11on20609.outbound.protection.outlook.com
 [2a01:111:f403:2416::609])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 939cfaf2-1e78-11f0-9ffb-bf95429c2676;
 Mon, 21 Apr 2025 08:19:28 +0200 (CEST)
Received: from PH7P220CA0109.NAMP220.PROD.OUTLOOK.COM (2603:10b6:510:32d::11)
 by DM4PR12MB5844.namprd12.prod.outlook.com (2603:10b6:8:67::15) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.27; Mon, 21 Apr
 2025 06:19:22 +0000
Received: from SJ1PEPF000026C7.namprd04.prod.outlook.com
 (2603:10b6:510:32d:cafe::1e) by PH7P220CA0109.outlook.office365.com
 (2603:10b6:510:32d::11) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.34 via Frontend Transport; Mon,
 21 Apr 2025 06:19:21 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ1PEPF000026C7.mail.protection.outlook.com (10.167.244.104) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Mon, 21 Apr 2025 06:19:21 +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; Mon, 21 Apr
 2025 01:19:18 -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: 939cfaf2-1e78-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=qZ129VGkzxPiFxxvFB57gYMHtXl0LgwWTBVNTvpWMEeptOoovRkRAO8y2HRKQ29rqqnC2XM6FSnN8Ylg41MHIBlbRBNFHv+1FwPPEFnrogqlxsySoC6B0iy86eaXwLyZ7l70j2wx5eZwlSeJqANklOW9nAHTO2ZysScuStRl4IaYyPlGjttTB4Jg351IWVsICF5PFCV2EvL4ILN1BIomy114DteVpr3N8G+PU7pV9TEEIWl90sBflzq/kqcsEN67I3y/DdpNcOJ9wQeIHNQ4/6e4cS2sSZD8ksHFDoydL5uKWV+5MXJZKPUr7kHeVt/MaIG2cU3L/V52xFRdymU1Kw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=3VDTgeIvmCxGe9tqyXSiSHeXMpWYHb1zgl16pTf7OIo=;
 b=MOyXwmKNbIaPsQsZolzA+eGiuMLTsV4ir008BbMJKhGEReGooeT9G34MiHEl/leImDW34TCgQ74Z+9+BgfZRjWowD+UdTl8bzO5bbBzJeEHOfcg/o7rgWK0cRCG68YOGtEYsVs25c3mascX1kA6Si2SBosZD0F/4FmZ/7E+5Nks16Ecl2T5VhgfjyWeGucEJjqUWxN9dXWl7+XdF8RftbHiFXdYCoNai6E8LpwDxk8cpQlHDgyXNSPJ+xqDqMviBVkSMHTodSRkVBpYvzidJmVHncjiMV5g8qbmlmI5OONk+/ggQO61NVeX2H2QNZxLGGo5P/p3ZaDuboNVCKAc0yQ==
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=3VDTgeIvmCxGe9tqyXSiSHeXMpWYHb1zgl16pTf7OIo=;
 b=B3D3o6HPN06Oap0lnyZMeuxylV7tFSBop0hkqLeyUxeheawLPiBMF3yaHyj+VsQ/RpNtMO2BSgI660IMoH4kbec9RL81BQ5wGKLkAtOvkj53JmLD2IEoC+7G6NvG9hqdZwVIWEjTcquOU6sMQBTsUmL+S+qSfqrTNrgs7PSL0es=
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: Huang Rui <ray.huang@amd.com>, Jiqian Chen <Jiqian.Chen@amd.com>, "Andrew
 Cooper" <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, "Stefano
 Stabellini" <sstabellini@kernel.org>
Subject: [PATCH v3 00/11] Support hiding capability when its initialization fails
Date: Mon, 21 Apr 2025 14:18:52 +0800
Message-ID: <20250421061903.1542652-1-Jiqian.Chen@amd.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: SJ1PEPF000026C7:EE_|DM4PR12MB5844:EE_
X-MS-Office365-Filtering-Correlation-Id: 63ba1833-949f-4c95-a090-08dd809c749e
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|1800799024|36860700013|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?Vm96OWNETFA2SjJJWlZrRXg0UHQ3NWNHbS9nSzlNUXhyQmxjaTNPMGR2T3ZL?=
 =?utf-8?B?dUUwNmhqQUxTcG5DQUJsZkJjc1VQQ0FuczhnYzBWeXZkNUZBMlpoemNrS1pN?=
 =?utf-8?B?dmtML3pnOEN4UVI5YlV4V29VOEdtOVNiVlZnbjBkcGhqTHJOSnIydG5pdFVF?=
 =?utf-8?B?bllWSmxFUUU2LzFGZDdaMEdaN0k4aTNuVU5tUHhsR2ZrZUhyQjV6Z1hMeiti?=
 =?utf-8?B?WUFYeXJueHZLZ0c4TWc1VTgzblIvckYwZzF6OFpaRFlZeTE1aXdNenlhRnA4?=
 =?utf-8?B?eDMwMmNWNlgvK0hnZFYySWY5MlZ6RGZVWFE2aHVmQllvdFVkUE0xeE5FSlVK?=
 =?utf-8?B?c3JaY2N1ZVFtQTAxeHJCY2o4QklvcmFLekFlM3hFNFJwWDYrNkRLeElUQVNF?=
 =?utf-8?B?d21rTW9wNWc2dzBVZkU1cGFtK205c2JXbDlZQ0RsdHc5N1UzTUIzclZHTkhP?=
 =?utf-8?B?ODBPanorVTBrNFJBcDhUMWpTSk5oVTlscFB4RFhJdFMxMHduYXdJYXJmSWha?=
 =?utf-8?B?dDZqaU13dlNWUXhEMzgvcWpGejFobjNxdzFjcUlSZVRnL2lvTS9Tb3pZNzln?=
 =?utf-8?B?TUJGbVBkZ0JHWTVrT1d1OEQ5eSttU2tUeVNrcVBFYURjYUJlc2FLN2RwNmI0?=
 =?utf-8?B?aUlvNnFoQU8wU09XdHVoWG53Lzg3OVR3MXZHOFVlV1ozbHpETW8rWExlQVJ2?=
 =?utf-8?B?andScjF0VUl0ZlZIOTlBQ2JlTHFoNXFKM0NVVXZwczZ3bWNOK2tDNHVnbjJD?=
 =?utf-8?B?QlBBa3IyS3JZTVBwUWlDUEdaNHVTWEFNSm1kWjhFL3E3WVYvRlBKRXhULzVL?=
 =?utf-8?B?UWFXWWxQUGdOcUVTbEJZSFlZUTZ5NVltb0tONkt3OXpWYXFsOENPMjhNT3Bp?=
 =?utf-8?B?MG9yUDRuMU1QUFRvYkhzcmZ6M3UxRGdFb2ZLMkU5WnRnNW9LeWpOWlNCWVNv?=
 =?utf-8?B?L0dlRXUzbENSNnBoRktSL2JYb215WTJ5SDlEdDVJalpLL2RVdk41Vk1mMmxw?=
 =?utf-8?B?Nk9WYTY5SXZzK2lUa3V1d3hpRFVVR21acXhwdFBLZmg4aS8xT0FmRWc0Z3E0?=
 =?utf-8?B?MTdGeHhsU2QyWFBrWEJLb1JnbUtWcHRyL3NUZkpxU0p5blZYK3REVkFrc3hS?=
 =?utf-8?B?SXBqZE4vWjFSR1hlU3FZck45TnRSR2RBSUxMTm9vbHFEUlA4NXVnN1NzeUtU?=
 =?utf-8?B?QWZ4Sk5VNGgyTjJWYm9uRUhCYkQ0bTBhVkVJZ3JmNlRyQlNsb1g2QUE3ZkJH?=
 =?utf-8?B?dDVvcFpBY3puaXdvV3M1VFdFaHY2b0t4RGpUellTbkFNd3hJZFFXUE1PZldH?=
 =?utf-8?B?VkIrTmJ1YUNUV3hjR3I0SSt3cGJRY1B0dDFDM01vL2ZxSjdwQk1RdHNEOVhK?=
 =?utf-8?B?UUdEcGRUVTdpc3VQUVI3dDM0em5DdlI3MUlSd2RLY3h2K2FmM3haWmlzT0Iy?=
 =?utf-8?B?OHNXQi9LbWoxelB3SUh6WDdaVDg3RjNkSTZDYWRVSVplTUllQzNXSkNKVGYr?=
 =?utf-8?B?N0UwL2FCUG1TZ05iVGJXa1R4ZFdmNW1TMlRVT0l4ZVFQdkJBRzQzNVBMeS9Y?=
 =?utf-8?B?a3FBMklneFhKeFd5d1lxY0FTUnM1UzlQZEhFemVMOE5FejlpaVVHZ0M1VXg4?=
 =?utf-8?B?OEhxSk0xK3JvMWRKaGpSUW1QL283TE1oT0ZaQUtpckhzb253RmwrZFQ0ZndM?=
 =?utf-8?B?MlJCU280V1A5YzFwcUZ6Rk1xQmo1eEpncVBzeTB3Z080dm5vQXFSSVJqMTNq?=
 =?utf-8?B?cTE1OS8wcHVZbmd5VVI4MUlUMWphNHREaTg4QTcyVVFabklxWnRmakVDTFdV?=
 =?utf-8?B?N3J3bmJjOTFrRW5kdU9FT0xXYnJLY2F3d3FnOC9YV1l5MFdPWTBISys4WVpC?=
 =?utf-8?B?eWlHbURab29YSjZBME5oU0VVeEg5ZDZ2VmlLY1NjVDh5VVhxUWZQejVRSzc5?=
 =?utf-8?B?RlRtUDJaYjhabG5jbFg0RE5vT2Q4bThGQ2VlQzJ6S1ZZcjBkSFNpQ2d6UmxS?=
 =?utf-8?B?SElqejlLa1JuRHZnNEY5eWI4RmozVExWTktJZndlMDB2QU4zVjJYb3BLc2xp?=
 =?utf-8?Q?HJJwCF?=
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);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Apr 2025 06:19:21.5034
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 63ba1833-949f-4c95-a090-08dd809c749e
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:
	SJ1PEPF000026C7.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB5844

Hi,

This series is to
emulate legacy and extended capability list for dom0, including patch #1, #2, #3, #4.
hide legacy and extended capability when its initialization fails, including patch #5, #6, #7.
remove all related registers and other resources when initializing capability fails, including patch #8, #9, #10, #11.

Best regards,
Jiqian Chen.
---
cc: Andrew Cooper <andrew.cooper3@citrix.com>
cc: Anthony PERARD <anthony.perard@vates.tech>
cc: Michal Orzel <michal.orzel@amd.com>
cc: Jan Beulich <jbeulich@suse.com>
cc: Julien Grall <julien@xen.org>
cc: "Roger Pau Monné" <roger.pau@citrix.com>
cc: Stefano Stabellini <sstabellini@kernel.org>
---
Jiqian Chen (11):
  vpci/header: Move emulating cap list logic into new function
  driver/pci: Get next capability without passing caps
  vpci/header: Emulate legacy capability list for dom0
  vpci/header: Emulate extended capability list for dom0
  vpci: Refactor REGISTER_VPCI_INIT
  vpci: Hide legacy capability when it fails to initialize
  vpci: Hide extended capability when it fails to initialize
  vpci: Refactor vpci_remove_register to remove matched registers
  vpci/rebar: Remove registers when init_rebar() fails
  vpci/msi: Free MSI resources when init_msi() fails
  vpci/msix: Add function to clean MSIX resources

 tools/tests/vpci/main.c    |   4 +-
 xen/drivers/pci/pci.c      |   3 +
 xen/drivers/vpci/header.c  | 174 +++++++++++++---------
 xen/drivers/vpci/msi.c     |  28 +++-
 xen/drivers/vpci/msix.c    |  27 +++-
 xen/drivers/vpci/rebar.c   |  35 +++--
 xen/drivers/vpci/vpci.c    | 290 ++++++++++++++++++++++++++++++++-----
 xen/include/xen/pci_regs.h |   1 +
 xen/include/xen/vpci.h     |  34 +++--
 xen/include/xen/xen.lds.h  |   2 +-
 10 files changed, 459 insertions(+), 139 deletions(-)

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Apr 21 06:19:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 21 Apr 2025 06:19:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.960839.1352543 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6kVK-0006Zq-S9; Mon, 21 Apr 2025 06:19:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 960839.1352543; Mon, 21 Apr 2025 06:19: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 1u6kVK-0006Zh-P4; Mon, 21 Apr 2025 06:19:42 +0000
Received: by outflank-mailman (input) for mailman id 960839;
 Mon, 21 Apr 2025 06:19: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=rBGn=XH=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1u6kVJ-00057v-8H
 for xen-devel@lists.xenproject.org; Mon, 21 Apr 2025 06:19:41 +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 9acf559b-1e78-11f0-9eb0-5ba50f476ded;
 Mon, 21 Apr 2025 08:19:40 +0200 (CEST)
Received: from MW4P221CA0009.NAMP221.PROD.OUTLOOK.COM (2603:10b6:303:8b::14)
 by BY5PR12MB4308.namprd12.prod.outlook.com (2603:10b6:a03:20a::9) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.34; Mon, 21 Apr
 2025 06:19:34 +0000
Received: from SJ1PEPF000026C9.namprd04.prod.outlook.com
 (2603:10b6:303:8b:cafe::9) by MW4P221CA0009.outlook.office365.com
 (2603:10b6:303:8b::14) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.33 via Frontend Transport; Mon,
 21 Apr 2025 06:19:34 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ1PEPF000026C9.mail.protection.outlook.com (10.167.244.106) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Mon, 21 Apr 2025 06:19:34 +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; Mon, 21 Apr
 2025 01:19:31 -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: 9acf559b-1e78-11f0-9eb0-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=WNvfAJMEv7XLgzYe9TFpoBQuyt+Bp+Mtll6LrgirOU7APCrzashlGGJlJtW1Pknf8rfm9m+BQQIO3dPqYh5pUjoT+KDjSGb5B3GsJTRKYE2DsGwpLwF1x0hYpKjaRhliyqyINSPnrvxcEIM7M6yNELjWDTaIKRKBK7bAxREEOmQrVODHBgF6LzrM+/WdNeGTOHvLz99OY0bz6sEiZJFjjCG8vrFcboE0UWDiO1A4RoNQHauvVU0ddSG8W6hD6rCG9S18GeiyXUeq5ZgOAeCsYKvveD/8/byMPaekU9mDAaMYu0sOO9vX95GEHR6Cv1IbLJ5orhk89kJ4XdgtREEXYQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=cS709c8StYxHv0C0xi6qDIj8/5bc2jUhpF/cHHPrYgM=;
 b=l3Pqiw6rLW3IAxaensY7+9UPW7Zm3jOteXe/SRRjM2XtsdX3WjMbIn779u41pd/VYTtL9xqMKNRPsWgogNYE8Ihz0l9fNGDJXh0yG//ilnt7Rjz45c8vDoIpqRIVPKcSw/p2euxwQvsCmKXhtv8zOz4TYVMCMN3TZzfX1c5k4l07+M+la8z0K9sbVrZURkdyaBk5E+TZrQzNzSWYA9ZSNyDNu+FMqESeid6f+lkUtNM73JPrnYLt2AcPUmsLObXhvGa9klPduXV5n46oqFR46zjfBa0dy8VxaJ6qCrieJDq9nLY1mWauQM1qW2e4LOE7zoSbPEdrTUOzrhNO8+laMQ==
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=cS709c8StYxHv0C0xi6qDIj8/5bc2jUhpF/cHHPrYgM=;
 b=Gcpxo56I6/iOk4+XCnwsBElNkawuhurT30pY4Zjz4utXmr7R5kSmwsagLNvDIKHR2fcJoaA5k+DqueTbz+cjUpnTj/iB6l54EqdhaQMLtfc+ptVODDUrdPPbFB/OEWY/psEN+LWG60jMmdXBWw/RUXYpnTBjLZnX5LIr3i622q0=
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: Huang Rui <ray.huang@amd.com>, Jiqian Chen <Jiqian.Chen@amd.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v3 06/11] vpci: Hide legacy capability when it fails to initialize
Date: Mon, 21 Apr 2025 14:18:58 +0800
Message-ID: <20250421061903.1542652-7-Jiqian.Chen@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250421061903.1542652-1-Jiqian.Chen@amd.com>
References: <20250421061903.1542652-1-Jiqian.Chen@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: SJ1PEPF000026C9:EE_|BY5PR12MB4308:EE_
X-MS-Office365-Filtering-Correlation-Id: ebac3c6e-198f-4e8d-8cc1-08dd809c7c19
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?SENIOThza2lQS3ora0x3RjJRejRiSVd6LzNTSXR5ZG5USmgveFJIc3VmaVov?=
 =?utf-8?B?MUtRbFBLRkxiZUJUcTRMSkI2MHFHQUhpRGVJQ08wTW5DYjFtTVc1aFBjS0xk?=
 =?utf-8?B?UzJXSzJqNlJVNzVWY3VibGZjMTM2cEt0Rk9TcW81Y1B2SUVZdkIwL3ovSWtq?=
 =?utf-8?B?N1RmMkxqL2ZBbDQ4eitzNllJTk14dDRpUGd5MHdGUVAwSHhYWUxRS1o2RDBX?=
 =?utf-8?B?UlNPK2tBWlA1bWtSNHh1ck9jYmp5eEthMDRKQjBmdlpWUHFaYnRTZFBNN0Fn?=
 =?utf-8?B?aDZjU3FWQnlWS3l3K21WZ3BveTZqR0wwV3VUemsvaTRFQVJaamJkRms0YWRs?=
 =?utf-8?B?RjB2TlN4MnJCN1NrR1lzZ2VXQ1g5VWU1eGxPem92Tjh6UStjYjVMNXNnclBl?=
 =?utf-8?B?dzFSd3dKSEQ2TG44TktudGlFRElkVHJ1Rk9pQTViTTRJN2xWZlZxTklodjZW?=
 =?utf-8?B?Vm11RXFZc05WNTlLaWFFckljVlZCQnd3SmErekhqRk1yVVBWTkJKUEt0cWYx?=
 =?utf-8?B?OU52SHYwWUF4bEkzTkhzUVcxVmQyTTVBb29XY3VJMnlZRVJ3OERLWTdaUG5i?=
 =?utf-8?B?NThvZThHRGlyTEdzQlpGaDFvNVB4WTkxbU5TTXNtbytVRzhnaHc4a3BIU2VJ?=
 =?utf-8?B?Zm4zZEJTcFpZZkRjUWM4RGFjNjBkcmhQcU9vMVV1b1NNQUhVajl6ZEs1eEYx?=
 =?utf-8?B?QTZhTXJKRmhNbE02T3JoRjVyeFFMOW8vVDgzdXh4TCtqWXRGWCt6d0dBeTlY?=
 =?utf-8?B?c0lOcFZrRmdRVDlXOEhwODBiYTNaa2hYd0FBdjJLbDNrQk9wcURENmIzQWVx?=
 =?utf-8?B?RTdLZ0t5Z2I3NW5GdHdIRGs3aUpBVkRNaTFDZGttVnRiejg3RnhWanhvekd3?=
 =?utf-8?B?dFV2dU9YWDJoK1I5N0hZTFBvbUVmeWhLcURKanJoNlByQ3dEaVdBN0RVVmNv?=
 =?utf-8?B?Wkp2NzY2V1gxYnphdEtTTE9zT2FMTXFYcWJkMEVPQ3IzYUx2SzNCUVJyelNp?=
 =?utf-8?B?MlRjT0lyRXkrNXNodjF5YUgyTTFHaW5abmtwbkVLbVlQaFBBa0s0Q0tLdloy?=
 =?utf-8?B?RWZtUk4zMUJIR29YbkwwUVFCTENhU0s4dkVBTmNEOXc1SU1adHlVMmM5NENz?=
 =?utf-8?B?SUkweFNUKytNUEV3RW01YWZlYWtGemFnVHNRWnEzY21CMWpNTW5oRGIyd2VF?=
 =?utf-8?B?RWljNWJ4SzVOZzh0dHNMbDFleGxJWTIvekM3SHRxbXJWZ2wxV1hWWU5RVmJW?=
 =?utf-8?B?SU5jNHpZVHh5RVdBRjVaYkRQN0dWdTA3UFNSWTF1V2F3cWhnenVINTVEMnoy?=
 =?utf-8?B?TzMrMkRjRzA1aUVIVHB2TktwdWRLNk1UNVpFbDQvSVYxMlAxR0JUSVoxVDZC?=
 =?utf-8?B?RnpLT1pWendnakI5UkpGeFcrSlE0VFhESzNkTTRUZXJTWkRucHJCUWhibjc3?=
 =?utf-8?B?emFHZ0JZYXBPaXptdEY5ZlBxYy9VcG1ycjI4ZnRsQTkzTmJQU1ozbmMvY3cv?=
 =?utf-8?B?c20rUUh0bTNTUjIwRi9qUkdqRHZ4MnZoQVZTSGtUWjhBTmZBY2xsUlVMZWww?=
 =?utf-8?B?NzI0RFgxdkpqbkdJNndLK2NHRk5DMnlSOThIRlpydmZUcDl5Z1ZFUXh0TnBN?=
 =?utf-8?B?K0xNcTltMVlDQ3J5SUZIMG04bnpFS0Mya0RuWVdGaXdiL3NVS2Rsa0d0M2M1?=
 =?utf-8?B?MmxiUWZDOTR1Q0RRZHpVY2JFWlZRVzMzZ2UxUlJoUHBEdzNyMzhGRC96Skor?=
 =?utf-8?B?dFdNbHJBQlcrcHk3NW5uTitlTlIrY08waUV5ZGJZamZ2SHRkUkdNby9LWXNV?=
 =?utf-8?B?RmRveG9YMVZmMFRoTkRuSHI0RGpxY0xWYVBrQ2lYbjZaMHhRY05hZDJxa3pj?=
 =?utf-8?B?OGRSQThhNUZQQXZTaFFsa2taUUlyeE90NHNpUUpudUdBNU1XbkN1Q25OQ3JX?=
 =?utf-8?B?ZEpJMVpHM3A4eGtGK2VKNzBLeEE2NXV5TFBHaDd5b0ZPaXFkQXJlV2hrUkpu?=
 =?utf-8?B?ZjZ5ZisrL09HcjMvNkdDTnpDT1lvdkppbnYwUTdURTdEckFPY25IYVdaSE5R?=
 =?utf-8?Q?Q+Zhl1?=
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: 21 Apr 2025 06:19:34.0530
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: ebac3c6e-198f-4e8d-8cc1-08dd809c7c19
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:
	SJ1PEPF000026C9.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR12MB4308

When vpci fails to initialize a legacy capability of device, it just
return error instead of catching and processing exception. That makes
the entire device unusable.

So, add new a function to hide legacy capability when initialization
fails. And remove the failed legacy capability from the vpci emulated
legacy capability list.

Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
---
cc: "Roger Pau Monné" <roger.pau@citrix.com>
---
v2->v3 changes:
* Separated from the last version patch "vpci: Hide capability when it fails to initialize"
* Whole implementation changed because last version is wrong.
  This version adds a new helper function vpci_get_register() and uses it to get
  target handler and previous handler from vpci->handlers, then remove the target.

v1->v2 changes:
* Removed the "priorities" of initializing capabilities since it isn't used anymore.
* Added new function vpci_capability_mask() and vpci_ext_capability_mask() to
  remove failed capability from list.
* Called vpci_make_msix_hole() in the end of init_msix().

Best regards,
Jiqian Chen.
---
 xen/drivers/vpci/vpci.c | 133 +++++++++++++++++++++++++++++++++-------
 1 file changed, 112 insertions(+), 21 deletions(-)

diff --git a/xen/drivers/vpci/vpci.c b/xen/drivers/vpci/vpci.c
index 5474b66668c1..f97c7cc460a0 100644
--- a/xen/drivers/vpci/vpci.c
+++ b/xen/drivers/vpci/vpci.c
@@ -35,6 +35,22 @@ struct vpci_register {
     uint32_t rsvdz_mask;
 };
 
+static int vpci_register_cmp(const struct vpci_register *r1,
+                             const struct vpci_register *r2)
+{
+    /* Return 0 if registers overlap. */
+    if ( r1->offset < r2->offset + r2->size &&
+         r2->offset < r1->offset + r1->size )
+        return 0;
+    if ( r1->offset < r2->offset )
+        return -1;
+    if ( r1->offset > r2->offset )
+        return 1;
+
+    ASSERT_UNREACHABLE();
+    return 0;
+}
+
 #ifdef __XEN__
 extern vpci_capability_t *const __start_vpci_array[];
 extern vpci_capability_t *const __end_vpci_array[];
@@ -83,7 +99,91 @@ static int assign_virtual_sbdf(struct pci_dev *pdev)
 
 #endif /* CONFIG_HAS_VPCI_GUEST_SUPPORT */
 
-static int vpci_init_capabilities(struct pci_dev *pdev)
+static struct vpci_register *vpci_get_register(struct vpci *vpci,
+                                               const unsigned int offset,
+                                               const unsigned int size)
+{
+    const struct vpci_register r = { .offset = offset, .size = size };
+    struct vpci_register *rm;
+
+    ASSERT(spin_is_locked(&vpci->lock));
+    list_for_each_entry ( rm, &vpci->handlers, node )
+    {
+        int cmp = vpci_register_cmp(&r, rm);
+
+        if ( !cmp && rm->offset == offset && rm->size == size )
+            return rm;
+        if ( cmp <= 0 )
+            break;
+    }
+
+    return NULL;
+}
+
+static struct vpci_register *vpci_get_previous_cap_register
+                (struct vpci *vpci, const unsigned int offset)
+{
+    uint32_t next;
+    struct vpci_register *r;
+
+    if ( offset < 0x40 )
+        return NULL;
+
+    r = vpci_get_register(vpci, PCI_CAPABILITY_LIST, 1);
+    ASSERT(r);
+
+    next = (uint32_t)(uintptr_t)r->private;
+    while ( next >= 0x40 && next != offset )
+    {
+        r = vpci_get_register(vpci, next + PCI_CAP_LIST_NEXT, 1);
+        ASSERT(r);
+        next = (uint32_t)(uintptr_t)r->private;
+    }
+
+    if ( next < 0x40 )
+        return NULL;
+
+    return r;
+}
+
+static void vpci_capability_mask(struct pci_dev *pdev,
+                                 const unsigned int cap)
+{
+    const unsigned int offset = pci_find_cap_offset(pdev->sbdf, cap);
+    struct vpci_register *prev_next_r, *next_r;
+    struct vpci *vpci = pdev->vpci;
+
+    spin_lock(&vpci->lock);
+    next_r = vpci_get_register(vpci, offset + PCI_CAP_LIST_NEXT, 1);
+    if ( !next_r )
+    {
+        spin_unlock(&vpci->lock);
+        return;
+    }
+
+    prev_next_r = vpci_get_previous_cap_register(vpci, offset);
+    ASSERT(prev_next_r);
+
+    prev_next_r->private = next_r->private;
+
+    if ( !is_hardware_domain(pdev->domain) )
+    {
+        struct vpci_register *id_r =
+            vpci_get_register(vpci, offset + PCI_CAP_LIST_ID, 1);
+
+        ASSERT(id_r);
+        /* PCI_CAP_LIST_ID register of target capability */
+        list_del(&id_r->node);
+        xfree(id_r);
+    }
+
+    /* PCI_CAP_LIST_NEXT register of target capability */
+    list_del(&next_r->node);
+    spin_unlock(&vpci->lock);
+    xfree(next_r);
+}
+
+static void vpci_init_capabilities(struct pci_dev *pdev)
 {
     for ( unsigned int i = 0; i < NUM_VPCI_INIT; i++ )
     {
@@ -107,10 +207,17 @@ static int vpci_init_capabilities(struct pci_dev *pdev)
         rc = capability->init(pdev);
 
         if ( rc )
-            return rc;
+        {
+            if ( capability->fini )
+                capability->fini(pdev);
+
+            printk(XENLOG_WARNING "%pd %pp: %s cap %u init fail rc=%d, mask it\n",
+                   pdev->domain, &pdev->sbdf,
+                   is_ext ? "extended" : "legacy", cap, rc);
+            if ( !is_ext )
+                vpci_capability_mask(pdev, cap);
+        }
     }
-
-    return 0;
 }
 
 void vpci_deassign_device(struct pci_dev *pdev)
@@ -192,7 +299,7 @@ int vpci_assign_device(struct pci_dev *pdev)
     if ( rc )
         goto out;
 
-    rc = vpci_init_capabilities(pdev);
+    vpci_init_capabilities(pdev);
 
  out:
     if ( rc )
@@ -202,22 +309,6 @@ int vpci_assign_device(struct pci_dev *pdev)
 }
 #endif /* __XEN__ */
 
-static int vpci_register_cmp(const struct vpci_register *r1,
-                             const struct vpci_register *r2)
-{
-    /* Return 0 if registers overlap. */
-    if ( r1->offset < r2->offset + r2->size &&
-         r2->offset < r1->offset + r1->size )
-        return 0;
-    if ( r1->offset < r2->offset )
-        return -1;
-    if ( r1->offset > r2->offset )
-        return 1;
-
-    ASSERT_UNREACHABLE();
-    return 0;
-}
-
 /* Dummy hooks, writes are ignored, reads return 1's */
 static uint32_t cf_check vpci_ignored_read(
     const struct pci_dev *pdev, unsigned int reg, void *data)
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Apr 21 06:19:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 21 Apr 2025 06:19:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.960840.1352553 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6kVM-0006qA-BW; Mon, 21 Apr 2025 06:19:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 960840.1352553; Mon, 21 Apr 2025 06: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 1u6kVM-0006pM-5x; Mon, 21 Apr 2025 06:19:44 +0000
Received: by outflank-mailman (input) for mailman id 960840;
 Mon, 21 Apr 2025 06: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=rBGn=XH=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1u6kVJ-00057u-Vl
 for xen-devel@lists.xenproject.org; Mon, 21 Apr 2025 06:19:41 +0000
Received: from NAM12-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam12on20610.outbound.protection.outlook.com
 [2a01:111:f403:2417::610])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9adb1e11-1e78-11f0-9ffb-bf95429c2676;
 Mon, 21 Apr 2025 08:19:40 +0200 (CEST)
Received: from MW4P221CA0007.NAMP221.PROD.OUTLOOK.COM (2603:10b6:303:8b::12)
 by SA1PR12MB7246.namprd12.prod.outlook.com (2603:10b6:806:2bc::22) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.25; Mon, 21 Apr
 2025 06:19:35 +0000
Received: from SJ1PEPF000026C9.namprd04.prod.outlook.com
 (2603:10b6:303:8b:cafe::65) by MW4P221CA0007.outlook.office365.com
 (2603:10b6:303:8b::12) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.35 via Frontend Transport; Mon,
 21 Apr 2025 06:19:35 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ1PEPF000026C9.mail.protection.outlook.com (10.167.244.106) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Mon, 21 Apr 2025 06:19:34 +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; Mon, 21 Apr
 2025 01:19:33 -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: 9adb1e11-1e78-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Tn8MEpAeUpxi1WOPqTQ7Ln1cZVb0qdutZuJlN3oicoYVVm1rH8V61KHmpZKUggrnwq6i+un6/WbjpeppDzIe57w6w7wTsUI/WPxZJ/eh53aDFr0hqrySYoxtXgf/ICCGku9BoZVeFceS/+ZvDvU+Nd4rcQ29xYTZbisTPsIcvUDXzPFA65A567nHkGY+GHmmaxrhAsJLKYWeuFAHJtpEVmPELvZle/ilT+KONoRHRyxPg05+LpmNB+yGjhxXDXirOtfDBlDq7mfL6lE1g4fWA2hQ8VyQs57B37Wo9oUuIdmlBhEyFPOmoIf5/HnZjhGPV3wzcLGnWxFJegdbNNwN5w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=odOrILESrhnnD+KMb8PsZKWET0NUPER1gv9psvhTkOQ=;
 b=F4Vwc7u5ywrsSkeO8euRdniTwD0o1ZQS/2eBQ8MAk8piiWGVJ9zFc34zU8jjeV+uabuRfWAL6vjQyQI+9Ut09quEviRUtDVIrhpWtNnjIBYFRHnpAczAQ5KCXXSnKH5J0X/lp4NtdubL0UC3OAkalii+8ynfr9KfMiLnOCypEeQOK0P5m25kVPk7whB0gSrJElng3q2karwBz16w1IwnAsPRWEAP26tfAThgmBvTha9glWiVMNPdGkJoglFeeE9IWh8RKDP6NPdFEdG7hSyiVUSmha8/bMpWm2t7xb+53Xj18a/EC8kHcCnA75XpunOBzbYczJW3XD3Rn6BK3nba5w==
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=odOrILESrhnnD+KMb8PsZKWET0NUPER1gv9psvhTkOQ=;
 b=GaKGjpiX5esZx7ZrAYpe6ryRzA/j/efXMc12OJ8eAq1AstpIe+9wzCx14dc4DR1uJMuhC2Ffl0edE3145dbqm/x40nwb1zdrl0XbO6ppSWT3ErWO/uBUQKcCQRJYkKN4VYiSzmih0kD81BDaVKWd+AF092PNNMmUQ3LKWXx/wn8=
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: Huang Rui <ray.huang@amd.com>, Jiqian Chen <Jiqian.Chen@amd.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v3 07/11] vpci: Hide extended capability when it fails to initialize
Date: Mon, 21 Apr 2025 14:18:59 +0800
Message-ID: <20250421061903.1542652-8-Jiqian.Chen@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250421061903.1542652-1-Jiqian.Chen@amd.com>
References: <20250421061903.1542652-1-Jiqian.Chen@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: SJ1PEPF000026C9:EE_|SA1PR12MB7246:EE_
X-MS-Office365-Filtering-Correlation-Id: da781faf-2e47-4a79-a585-08dd809c7ca8
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?ZnRNZGxmMTZkZWVxOUdPdVFGb3FjVWJpYmwxOFFMaWo0MFdkYjhjM0xFU082?=
 =?utf-8?B?VE1FK2p2UVg1bTdWVURSa3NnUUI1UmpkaFkyVnNvazVBRkdGWVMxWXBmd1B0?=
 =?utf-8?B?UStLZ2kvMDlEaHlNSlVESHdhaVZHNXhIMHpkUitNK0NBYzdld0ZMQ25HQlZ5?=
 =?utf-8?B?ZXl2UHZqZktRcFF2MWlvRHd2LzAvc2UzV0t5WklMVmQvSlRvdHB6d21EUEcx?=
 =?utf-8?B?WmovemQ0OW4yZTEySk8vUXEyelNtYm9xUEFPcFAwTlNrOGk2OHRWamdibUR3?=
 =?utf-8?B?L1ZTNWhSSDJLcGtOYmVaVm5TbjRYeTBBNnc5dTdWaGRBb0VXUy9pd0FrMzNx?=
 =?utf-8?B?K0tRdCtmZXA4c0xYb1pyUExKNjdBY09lMXUrbDBPZTRxNkNjRyt2MkMwejZv?=
 =?utf-8?B?Y2tRTlBVMERrNlp4eURGQkplSmlIbGkyNTd1WFBDakpMZnM2VmVEdVVkVVdw?=
 =?utf-8?B?ZDhBdm1RS3lXV08zbGRZeW1ndzNjR2pVSVdUOGUwaWJCbEJqd1hSQmE3OUk0?=
 =?utf-8?B?TFEvdDQ4THk2RitpYTlUc1Ywa2d5ZVJaS0R5MC9jOFk2ZjJ4dVJQU0p0TTBl?=
 =?utf-8?B?ZFNDUkRKOUl6cEtVUzlKc2ZEQVd4RmptQ0M3Z2w0K0xiMjE2VkJHZWNrdUda?=
 =?utf-8?B?MktnSTUxcWRjOHBwTko1c0tXUHRLUnYrMStWbEFoRS9RVHlFei9wRkR5SlJK?=
 =?utf-8?B?WkJ4Q3BoVDNyN0dDVlUvMm03bnJES2dwVDBqVVl0OTlTZTBoSGthRmk0Z1RS?=
 =?utf-8?B?TkhqYzQ0bmNyZi9zM251aDFrK2pnZm43bms3eG5HUnRCRyswcFR3WHFuRHZ4?=
 =?utf-8?B?V0g0WjJNTEt0TTZkaE5GWERDUGpWSmpQZ1pGcDYvRzBua29BOVBrS0hDaGU1?=
 =?utf-8?B?bnB0cDNuaFpuWFJQbGhaclhGRVFGK2hOUnV0ZFdRTFpvR2xjdmJjQk56a3Jv?=
 =?utf-8?B?VlFjUVJEZ1EyeTlSd1VuTW53M1BnWDF0S2lET3NYYkxMcWhrNGZlTWJuT1VW?=
 =?utf-8?B?clZzVFY0VzlHWmVCQjVVZlU1dDJhNHk0Ym5tRW5GSVZsMlBIaHdNbERZUFkx?=
 =?utf-8?B?K3Uyc3pwRjBHS1B3VVpZbzJ0bnpmUm9PdnlabVZ1TU5WMU53SC91RE9hdmFw?=
 =?utf-8?B?ZDFubktCdURvaGc3RGFYYTh1cHd1cVNla2hoQkRuYnJBbnlvU0ZWY0djNmds?=
 =?utf-8?B?Vy9aMmJWOFU4anREQUZDeEQ0cWJua2NHVWZMNmNFNGFKbHk1ZXprR3pUVzhk?=
 =?utf-8?B?b0RGRHZReGVJVmh4dU1KQlg0VHF3QTlEa1JlUmNiWi9xcVpiVms4OG5GN2hR?=
 =?utf-8?B?RXRGZHBhRUptOTU1V1JWeGI3QVJYTkg0QlJldlVKL09nTWZtbU9TanlQVGVq?=
 =?utf-8?B?ZlEwK3p2R28zYlJRcUxteDdkZjFkU2w3cXhpdnNPRnh5bEFRZHNzZWQrM1pv?=
 =?utf-8?B?dGgwNVhMclFVYTdZS1VXWjlmeS9TV1RoODY5QzdVbE9abHBWTzJ2Ykh6ZFVt?=
 =?utf-8?B?Yi9qNFFjUDN0RlVQNmorRzdxUmVZOGNidWxXZi9jUHNnZUJsZUthWjJXTDQy?=
 =?utf-8?B?NllsV3ZpZndianJreWdzSW5DcjdHdG81UDN2cDVuN2YrbS9mUVRFVmN4YStp?=
 =?utf-8?B?VSt6RXF1MzkzcDM1OXZpTDRSWHNaaWJsQ1pBdUVIZjBSQU5aTE82TnN5aGNm?=
 =?utf-8?B?MmFMZ1hKK25VdzgxZzY1c0RuRldiSU5YQWNSSEpJblRPNG42KzVIU0xJTVFt?=
 =?utf-8?B?cHNheDVQaENueW5sR3pPOHYxbERLeUs0eE02ZlpmcmdpWGRIZndTYXpuTjRG?=
 =?utf-8?B?SGxmeFVZazg2ZEcwN2MveHpLYlFzaWZGZXJ3U044bHoyVGd1RFN0a3dFRHBC?=
 =?utf-8?B?VnNobTNmb01OeUR6cUxBV3ZTcWowNGhrajdaenJNTkdkdlpOSDFQcHRHbkox?=
 =?utf-8?B?bGg2cnhBUk5sVFZVUHYrWGNxY0NYMTRiM2tJamlqeXNmdEdIbnEzRHo0YkdH?=
 =?utf-8?B?dUNtSWNjSTBGR3FOR1hYcVVzSUt1MkFyNzFGWEtEcEx4NjdBYU5FWVNhMlpP?=
 =?utf-8?Q?Msera9?=
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: 21 Apr 2025 06:19:34.9908
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: da781faf-2e47-4a79-a585-08dd809c7ca8
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:
	SJ1PEPF000026C9.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB7246

When vpci fails to initialize a extended capability of device for dom0,
it just return error instead of catching and processing exception. That
makes the entire device unusable.

So, add new a function to hide extended capability when initialization
fails. And remove the failed extended capability handler from vpci
extended capability list.

Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
---
cc: "Roger Pau Monné" <roger.pau@citrix.com>
---
v2->v3 changes:
* Separated from the last version patch "vpci: Hide capability when it fails to initialize".
* Whole implementation changed because last version is wrong.
  This version gets target handler and previous handler from vpci->handlers, then remove the target.
* Note: a case in function vpci_ext_capability_mask() needs to be discussed,
  because it may change the offset of next capability when the offset of target
  capability is 0x100U(the first extended capability), my implementation is just to
  ignore and let hardware to handle the target capability.

v1->v2 changes:
* Removed the "priorities" of initializing capabilities since it isn't used anymore.
* Added new function vpci_capability_mask() and vpci_ext_capability_mask() to
  remove failed capability from list.
* Called vpci_make_msix_hole() in the end of init_msix().

Best regards,
Jiqian Chen.
---
 xen/drivers/vpci/vpci.c    | 79 ++++++++++++++++++++++++++++++++++++++
 xen/include/xen/pci_regs.h |  1 +
 2 files changed, 80 insertions(+)

diff --git a/xen/drivers/vpci/vpci.c b/xen/drivers/vpci/vpci.c
index f97c7cc460a0..8ff5169bdd18 100644
--- a/xen/drivers/vpci/vpci.c
+++ b/xen/drivers/vpci/vpci.c
@@ -183,6 +183,83 @@ static void vpci_capability_mask(struct pci_dev *pdev,
     xfree(next_r);
 }
 
+static struct vpci_register *vpci_get_previous_ext_cap_register
+                (struct vpci *vpci, const unsigned int offset)
+{
+    uint32_t header;
+    unsigned int pos = PCI_CFG_SPACE_SIZE;
+    struct vpci_register *r;
+
+    if ( offset <= PCI_CFG_SPACE_SIZE )
+        return NULL;
+
+    r = vpci_get_register(vpci, pos, 4);
+    ASSERT(r);
+
+    header = (uint32_t)(uintptr_t)r->private;
+    pos = PCI_EXT_CAP_NEXT(header);
+    while ( pos > PCI_CFG_SPACE_SIZE && pos != offset )
+    {
+        r = vpci_get_register(vpci, pos, 4);
+        ASSERT(r);
+        header = (uint32_t)(uintptr_t)r->private;
+        pos = PCI_EXT_CAP_NEXT(header);
+    }
+
+    if ( pos <= PCI_CFG_SPACE_SIZE )
+        return NULL;
+
+    return r;
+}
+
+static void vpci_ext_capability_mask(struct pci_dev *pdev,
+                                     const unsigned int cap)
+{
+    const unsigned int offset = pci_find_ext_capability(pdev->sbdf, cap);
+    struct vpci_register *rm, *prev_r;
+    struct vpci *vpci = pdev->vpci;
+    uint32_t header, pre_header;
+
+    spin_lock(&vpci->lock);
+    rm = vpci_get_register(vpci, offset, 4);
+    if ( !rm )
+    {
+        spin_unlock(&vpci->lock);
+        return;
+    }
+
+    header = (uint32_t)(uintptr_t)rm->private;
+    if ( offset == PCI_CFG_SPACE_SIZE )
+    {
+        if ( PCI_EXT_CAP_NEXT(header) <= PCI_CFG_SPACE_SIZE )
+            rm->private = (void *)(uintptr_t)0;
+        else
+            /*
+             * Else case needs to remove the capability in position 0x100U and
+             * moves the next capability to be in position 0x100U, that would
+             * cause the offset of next capability in vpci different from the
+             * hardware, then cause error accesses, so just ignore it here and
+             * hope hardware would handle the capability well.
+            */
+            printk(XENLOG_ERR "%pd %pp: ext cap %u is first cap, can't mask it\n",
+                   pdev->domain, &pdev->sbdf, cap);
+        spin_unlock(&vpci->lock);
+        return;
+    }
+
+    prev_r = vpci_get_previous_ext_cap_register(vpci, offset);
+    ASSERT(prev_r);
+
+    pre_header = (uint32_t)(uintptr_t)prev_r->private;
+    prev_r->private = (void *)(uintptr_t)((pre_header &
+                                           ~PCI_EXT_CAP_NEXT_MASK) |
+                                          (header & PCI_EXT_CAP_NEXT_MASK));
+
+    list_del(&rm->node);
+    spin_unlock(&vpci->lock);
+    xfree(rm);
+}
+
 static void vpci_init_capabilities(struct pci_dev *pdev)
 {
     for ( unsigned int i = 0; i < NUM_VPCI_INIT; i++ )
@@ -216,6 +293,8 @@ static void vpci_init_capabilities(struct pci_dev *pdev)
                    is_ext ? "extended" : "legacy", cap, rc);
             if ( !is_ext )
                 vpci_capability_mask(pdev, cap);
+            else
+                vpci_ext_capability_mask(pdev, cap);
         }
     }
 }
diff --git a/xen/include/xen/pci_regs.h b/xen/include/xen/pci_regs.h
index 27b4f44eedf3..5fe6653fded4 100644
--- a/xen/include/xen/pci_regs.h
+++ b/xen/include/xen/pci_regs.h
@@ -449,6 +449,7 @@
 #define PCI_EXT_CAP_ID(header)		((header) & 0x0000ffff)
 #define PCI_EXT_CAP_VER(header)		(((header) >> 16) & 0xf)
 #define PCI_EXT_CAP_NEXT(header)	(((header) >> 20) & 0xffc)
+#define PCI_EXT_CAP_NEXT_MASK		0xFFC00000U
 
 #define PCI_EXT_CAP_ID_ERR	1
 #define PCI_EXT_CAP_ID_VC	2
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Apr 21 06:19:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 21 Apr 2025 06:19:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.960833.1352483 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6kVD-00058J-0h; Mon, 21 Apr 2025 06:19:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 960833.1352483; Mon, 21 Apr 2025 06:19: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 1u6kVC-00058B-Rq; Mon, 21 Apr 2025 06:19:34 +0000
Received: by outflank-mailman (input) for mailman id 960833;
 Mon, 21 Apr 2025 06:19: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=rBGn=XH=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1u6kVC-00057u-0g
 for xen-devel@lists.xenproject.org; Mon, 21 Apr 2025 06:19:34 +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 94db8d72-1e78-11f0-9ffb-bf95429c2676;
 Mon, 21 Apr 2025 08:19:30 +0200 (CEST)
Received: from PH7P220CA0112.NAMP220.PROD.OUTLOOK.COM (2603:10b6:510:32d::33)
 by MN2PR12MB4407.namprd12.prod.outlook.com (2603:10b6:208:260::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.33; Mon, 21 Apr
 2025 06:19:23 +0000
Received: from SJ1PEPF000026C7.namprd04.prod.outlook.com
 (2603:10b6:510:32d:cafe::48) by PH7P220CA0112.outlook.office365.com
 (2603:10b6:510:32d::33) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.35 via Frontend Transport; Mon,
 21 Apr 2025 06:19:22 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ1PEPF000026C7.mail.protection.outlook.com (10.167.244.104) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Mon, 21 Apr 2025 06:19:22 +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; Mon, 21 Apr
 2025 01:19:21 -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: 94db8d72-1e78-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=gOOQE9TIct/aSdd0KdMgeU1VVi/lydl3Oi/o3xaQDC+ceBNBYk4AhzRPzLVOSsMNrENf50XYQ7I8fo+7yl6p/5Xccq6NHzqaJrzGU/Lo5L2TbAGfAIfTem2oRQ1b03qfXKYigcfDKDQ0Ft+bauJ4tLgPhcLHQEMnOtYrASDW19+XmjodbL4mhUUNStpAS/ZOrLnodMRc4wNk+uqSao6bN2z1Xy7UE46Wxg1P5K43HUOhyhY/vbSGG45ldxNOCWDDxz3YI7ISIlSMVVpvUml/QEqesNODGmBShDeXjaDo/fh1Mjkg2ETX5Q5dlgtUuTlTIV/vV41Kc5RNpoq4MxUXRg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=+NdYqVfoDf9xHmhA+7J0L70Y6IbKWMvcC1UUUVdHv/s=;
 b=O/YhYDQf8v4N4FbLwNztdvh1Z8yLFzOD2nD8JpRLJJZhLCHfET8A7vGqeNcGn1PCUFC+betg8rAC1bVHEAPb7SYnLMtubwkYY2nQ+1YijzMo0Ij25QzjxdovlgheH7arS6YsTVe4DWa4o7okZtHSzjaraXt1D0Qdth2M9DyEaBgrfzDtZ9SapXQ8T5uVhTmbN7LbzPvJBeJAuDt+/0qvZ1f97r2W3Iz/fI37MX5oT5KLCzXfpIvck56vVbspzmTLzY7+dfocHAKlfWaGBlMKjKcLg7+Aw/cWtEKgGZjE6KzxfOfqvNva/3ouz8tAzkCwTBYmX0oFUWUTxHOWc+Tuaw==
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=+NdYqVfoDf9xHmhA+7J0L70Y6IbKWMvcC1UUUVdHv/s=;
 b=Btmuay+XtPV6JIMSjg3u3Ems1BX1xcU3WuNZSbkEar4CU3g2oR11FJDQV1l4iBszlhzy+ftgoVNmgwRhcK/K99P0PZ95q1xjrFcEOZ8wMXSV7ZxfpmGRzznAv0GSXTbE+tonfd1/zS7w1fR3bwHl1RhRb8LRWmLQ5WiMRtpOlYU=
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: Huang Rui <ray.huang@amd.com>, Jiqian Chen <Jiqian.Chen@amd.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v3 01/11] vpci/header: Move emulating cap list logic into new function
Date: Mon, 21 Apr 2025 14:18:53 +0800
Message-ID: <20250421061903.1542652-2-Jiqian.Chen@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250421061903.1542652-1-Jiqian.Chen@amd.com>
References: <20250421061903.1542652-1-Jiqian.Chen@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: SJ1PEPF000026C7:EE_|MN2PR12MB4407:EE_
X-MS-Office365-Filtering-Correlation-Id: a7a2e904-5356-43aa-aa36-08dd809c7558
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|36860700013|1800799024|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?bWJCMUtkNXBxVWFGUkRrRWRoR2NHaVp1ajM1aWdFOEtOTHFDUEFWOFo3dHFU?=
 =?utf-8?B?dDc5OExUd2I2OEN3c0cyRWpKYUZsUmpYczhYYllEc1VqY0pVNUx0Y3dSUGJM?=
 =?utf-8?B?Vzc2aHpLakpHQWNvT2xZd3lGcGtuTTNoajVTSi9naGpZZ01hNHlsVlFGU2FD?=
 =?utf-8?B?c3E3Um5ReS9maXRmVy9NUmtYVWUxWFpiak02VkVEMUE1RmRrRDRjRDdVN3gw?=
 =?utf-8?B?aHFqYmNlUzJ2aGZvbGtZV0tMVEF5aTRaRmVrRXM5V2RwL3NHcmJvbFU0QlNo?=
 =?utf-8?B?Z2RULzRuMlN1bUVJcVVmdmdUM1hoc25sdzlNNXNqSGQ0ZXlYYW4rSk1Lb2NK?=
 =?utf-8?B?Q3V0NE44RHlGWERrWVdUUVdaclhqOXduUC9BV3p6WU9mS1p0R0xKdlBDdSsz?=
 =?utf-8?B?MUhxOXBOZzNycnE5MmFqZUEvcVFKMDAySFBuNVFjQUQzY3NSMGIrWFhPVTBy?=
 =?utf-8?B?Nml5dGRZOTFqREpnMnZLTHpwWXM5c2dFcXVFUVZHSnVSYjlZdTFxZWphQXBs?=
 =?utf-8?B?S2huUHZqNXBPWTZlamd4SHowUDB5cTdZa3Axc25jZDQ1eG80cnVQQzg3VURq?=
 =?utf-8?B?cE0yNUdmeUtKUGZZVURDb2RyQkc5Q2tlNDNleVQyekJKV1JPRFl2bnc0Ym9E?=
 =?utf-8?B?a3dLdllScG9KUXF2NVFHWE5uOFFvMVB3WkhJbVVkNGFyOUY4ZXlGWnhFbDhU?=
 =?utf-8?B?WDdCSzhrVnUzeXUyenlteUxqUlhBS3hVVm9yQlRNRUpkS0NoZXF5MlZxMllQ?=
 =?utf-8?B?RjNMZU1KVGE0djdhS3p3dFY4OC9XS1hkUkZJVm5jNnZzNCt3YTZEN3VmbXcy?=
 =?utf-8?B?QkgvUUlkaG1lOGtxWDl2M1BGL0NSeS9pNEY0eVN5NFZDS0xpQ0ZMb0o2dUxI?=
 =?utf-8?B?bER1Yjk4dmZLZHpTSVdRV2dmMWFJelBHeHhmT0xNRkl0b2Nza0NOeDhJVk1k?=
 =?utf-8?B?MC9hcGpRTDN0UGVnRXI5OTgydTM5S3lTS2ZGZnJpK2NXdUtUN1dEcGJlR2NC?=
 =?utf-8?B?SFBiSlBtLzFkbGFkQjlUbWdEQndIQjhoVExlT0VocTBEQ0dSL0N0emVQajVs?=
 =?utf-8?B?UEF0MWRpVkcvSGQ5ZG1BVk5lWitoQzVnTGpwK1JIckQrUG9BWG83eEJIZXds?=
 =?utf-8?B?RGJ6U3FJK3A1OWVNdElrN2FLY0hEZ25SSnlIZjNFU20yMnB0OTFlNWE3Nkta?=
 =?utf-8?B?d1gxeHdwWlpncVpPeTFWanJPY0VmZTJzQWhSTm1wckd4ck5yZWZrVnc4cTRJ?=
 =?utf-8?B?RlVjemg4QTAyRGtGbHc5alNJYnpLMERPZURVK2J2Q3ltbHZrZ0RiSytGYnZl?=
 =?utf-8?B?MWQzbU0vV2ZEaFZHS3hxczZJTXRFWGEzNWxNMVFSMXYyV1duY3lhY2h4cDUr?=
 =?utf-8?B?VDU3em9xWjNXcFBzcjVxY0ZiYk9HY1l6M2JJOG04ZUFzazNzZlVqa09nY3J3?=
 =?utf-8?B?MWVVQWhTK3RmZW5jMnVndlU2MHRuTzVXdm85VWRFNk5IWlZjbXd5bVAyaGZ0?=
 =?utf-8?B?Uk1YOHI2bXJtNUFnYnhiRHhRY1NsZmFsQVVzN2pDY1FDeFF4QTFDaHlBVW1w?=
 =?utf-8?B?UFdkYm1kcVZVaFJUY1JONmJlZ0Y5cWxIQTI5S1NIV2xiYkk1MjdBUU9SQ1BD?=
 =?utf-8?B?WXI5UENBZkMyV3k4cE16K0QxZStIdlY5VTJPQW15dXEyS2VzeXRDT2ZXMXFM?=
 =?utf-8?B?ZEppQ2h3blJUdjErMzJKTkdnR1h6QlVZN24ra1V0c0h1N3RjT25xdzBaeXpK?=
 =?utf-8?B?aHZUeENSbWNrV3FxOWNVTC81cE9ScW9XT3pqVnIwd1VNNTBRbjc4QXA4cG4w?=
 =?utf-8?B?ZzNGUlF3eTRGV2hpR3NvMVJQUmpWZzVGUTRvT2hVNDZzSjNvNXc0S3AwN1ZU?=
 =?utf-8?B?cFRvZTJOdWJYMVpVc1ZBWjNmM0Z4bFQ2WjF0NHA4MVlKQ3BYVlFlcVdrT09n?=
 =?utf-8?B?bFd1VXRjcTVVY0tIQjBCRzZmdXQ5eDdGWllPRmJHaU9ERXVSalNyazd4UnBJ?=
 =?utf-8?B?UHJvTTBHYmxCQXlQaTJ2dTJZb3FiSjJWcWJMVmxZVFUzb2RVQTVKRDRpdzhq?=
 =?utf-8?Q?tt5qVD?=
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)(1800799024)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Apr 2025 06:19:22.7226
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: a7a2e904-5356-43aa-aa36-08dd809c7558
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:
	SJ1PEPF000026C7.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4407

No functional changes.
Follow-on changes will benifit from this.

Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
---
cc: "Roger Pau Monné" <roger.pau@citrix.com>
---
v2->v3 changes:
new patch.

Best regards,
Jiqian Chen.
---
 xen/drivers/vpci/header.c | 138 ++++++++++++++++++++------------------
 1 file changed, 73 insertions(+), 65 deletions(-)

diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c
index ef6c965c081c..3e9b44454b43 100644
--- a/xen/drivers/vpci/header.c
+++ b/xen/drivers/vpci/header.c
@@ -745,6 +745,75 @@ static int bar_add_rangeset(const struct pci_dev *pdev, struct vpci_bar *bar,
     return !bar->mem ? -ENOMEM : 0;
 }
 
+static int vpci_init_capability_list(struct pci_dev *pdev)
+{
+    int rc;
+    bool mask_cap_list = false;
+
+    if ( !is_hardware_domain(pdev->domain) &&
+         pci_conf_read16(pdev->sbdf, PCI_STATUS) & PCI_STATUS_CAP_LIST )
+    {
+        /* Only expose capabilities to the guest that vPCI can handle. */
+        unsigned int next, ttl = 48;
+        static const unsigned int supported_caps[] = {
+            PCI_CAP_ID_MSI,
+            PCI_CAP_ID_MSIX,
+        };
+
+        next = pci_find_next_cap_ttl(pdev->sbdf, PCI_CAPABILITY_LIST,
+                                     supported_caps,
+                                     ARRAY_SIZE(supported_caps), &ttl);
+
+        rc = vpci_add_register(pdev->vpci, vpci_read_val, NULL,
+                               PCI_CAPABILITY_LIST, 1,
+                               (void *)(uintptr_t)next);
+        if ( rc )
+            return rc;
+
+        next &= ~3;
+
+        if ( !next )
+            /*
+             * If we don't have any supported capabilities to expose to the
+             * guest, mask the PCI_STATUS_CAP_LIST bit in the status
+             * register.
+             */
+            mask_cap_list = true;
+
+        while ( next && ttl )
+        {
+            unsigned int pos = next;
+
+            next = pci_find_next_cap_ttl(pdev->sbdf,
+                                         pos + PCI_CAP_LIST_NEXT,
+                                         supported_caps,
+                                         ARRAY_SIZE(supported_caps), &ttl);
+
+            rc = vpci_add_register(pdev->vpci, vpci_hw_read8, NULL,
+                                   pos + PCI_CAP_LIST_ID, 1, NULL);
+            if ( rc )
+                return rc;
+
+            rc = vpci_add_register(pdev->vpci, vpci_read_val, NULL,
+                                   pos + PCI_CAP_LIST_NEXT, 1,
+                                   (void *)(uintptr_t)next);
+            if ( rc )
+                return rc;
+
+            next &= ~3;
+        }
+    }
+
+    /* Utilize rsvdp_mask to hide PCI_STATUS_CAP_LIST from the guest. */
+    return vpci_add_register_mask(pdev->vpci, vpci_hw_read16, vpci_hw_write16,
+                                  PCI_STATUS, 2, NULL,
+                                  PCI_STATUS_RO_MASK &
+                                    ~(mask_cap_list ? PCI_STATUS_CAP_LIST : 0),
+                                  PCI_STATUS_RW1C_MASK,
+                                  mask_cap_list ? PCI_STATUS_CAP_LIST : 0,
+                                  PCI_STATUS_RSVDZ_MASK);
+}
+
 static int cf_check init_header(struct pci_dev *pdev)
 {
     uint16_t cmd;
@@ -753,7 +822,6 @@ static int cf_check init_header(struct pci_dev *pdev)
     struct vpci_header *header = &pdev->vpci->header;
     struct vpci_bar *bars = header->bars;
     int rc;
-    bool mask_cap_list = false;
     bool is_hwdom = is_hardware_domain(pdev->domain);
 
     ASSERT(rw_is_write_locked(&pdev->domain->pci_lock));
@@ -794,61 +862,12 @@ static int cf_check init_header(struct pci_dev *pdev)
     if ( rc )
         return rc;
 
+    rc = vpci_init_capability_list(pdev);
+    if ( rc )
+        return rc;
+
     if ( !is_hwdom )
     {
-        if ( pci_conf_read16(pdev->sbdf, PCI_STATUS) & PCI_STATUS_CAP_LIST )
-        {
-            /* Only expose capabilities to the guest that vPCI can handle. */
-            unsigned int next, ttl = 48;
-            static const unsigned int supported_caps[] = {
-                PCI_CAP_ID_MSI,
-                PCI_CAP_ID_MSIX,
-            };
-
-            next = pci_find_next_cap_ttl(pdev->sbdf, PCI_CAPABILITY_LIST,
-                                         supported_caps,
-                                         ARRAY_SIZE(supported_caps), &ttl);
-
-            rc = vpci_add_register(pdev->vpci, vpci_read_val, NULL,
-                                   PCI_CAPABILITY_LIST, 1,
-                                   (void *)(uintptr_t)next);
-            if ( rc )
-                return rc;
-
-            next &= ~3;
-
-            if ( !next )
-                /*
-                 * If we don't have any supported capabilities to expose to the
-                 * guest, mask the PCI_STATUS_CAP_LIST bit in the status
-                 * register.
-                 */
-                mask_cap_list = true;
-
-            while ( next && ttl )
-            {
-                unsigned int pos = next;
-
-                next = pci_find_next_cap_ttl(pdev->sbdf,
-                                             pos + PCI_CAP_LIST_NEXT,
-                                             supported_caps,
-                                             ARRAY_SIZE(supported_caps), &ttl);
-
-                rc = vpci_add_register(pdev->vpci, vpci_hw_read8, NULL,
-                                       pos + PCI_CAP_LIST_ID, 1, NULL);
-                if ( rc )
-                    return rc;
-
-                rc = vpci_add_register(pdev->vpci, vpci_read_val, NULL,
-                                       pos + PCI_CAP_LIST_NEXT, 1,
-                                       (void *)(uintptr_t)next);
-                if ( rc )
-                    return rc;
-
-                next &= ~3;
-            }
-        }
-
         /* Extended capabilities read as zero, write ignore */
         rc = vpci_add_register(pdev->vpci, vpci_read_val, NULL, 0x100, 4,
                                (void *)0);
@@ -856,17 +875,6 @@ static int cf_check init_header(struct pci_dev *pdev)
             return rc;
     }
 
-    /* Utilize rsvdp_mask to hide PCI_STATUS_CAP_LIST from the guest. */
-    rc = vpci_add_register_mask(pdev->vpci, vpci_hw_read16, vpci_hw_write16,
-                                PCI_STATUS, 2, NULL,
-                                PCI_STATUS_RO_MASK &
-                                    ~(mask_cap_list ? PCI_STATUS_CAP_LIST : 0),
-                                PCI_STATUS_RW1C_MASK,
-                                mask_cap_list ? PCI_STATUS_CAP_LIST : 0,
-                                PCI_STATUS_RSVDZ_MASK);
-    if ( rc )
-        return rc;
-
     if ( pdev->ignore_bars )
         return 0;
 
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Apr 21 06:19:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 21 Apr 2025 06:19:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.960838.1352533 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6kVI-0006IY-Ii; Mon, 21 Apr 2025 06:19:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 960838.1352533; Mon, 21 Apr 2025 06: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 1u6kVI-0006IN-FD; Mon, 21 Apr 2025 06:19:40 +0000
Received: by outflank-mailman (input) for mailman id 960838;
 Mon, 21 Apr 2025 06: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=rBGn=XH=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1u6kVH-00057v-Js
 for xen-devel@lists.xenproject.org; Mon, 21 Apr 2025 06:19:39 +0000
Received: from NAM02-DM3-obe.outbound.protection.outlook.com
 (mail-dm3nam02on20629.outbound.protection.outlook.com
 [2a01:111:f403:2405::629])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 99dd7255-1e78-11f0-9eb0-5ba50f476ded;
 Mon, 21 Apr 2025 08:19:38 +0200 (CEST)
Received: from MW4P221CA0010.NAMP221.PROD.OUTLOOK.COM (2603:10b6:303:8b::15)
 by SJ2PR12MB8832.namprd12.prod.outlook.com (2603:10b6:a03:4d0::5) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.35; Mon, 21 Apr
 2025 06:19:33 +0000
Received: from SJ1PEPF000026C9.namprd04.prod.outlook.com
 (2603:10b6:303:8b:cafe::92) by MW4P221CA0010.outlook.office365.com
 (2603:10b6:303:8b::15) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.34 via Frontend Transport; Mon,
 21 Apr 2025 06:19:33 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ1PEPF000026C9.mail.protection.outlook.com (10.167.244.106) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Mon, 21 Apr 2025 06:19:32 +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; Mon, 21 Apr
 2025 01:19:28 -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: 99dd7255-1e78-11f0-9eb0-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=p7Bq+X1XDaDlL7ne3KgoB+CZghg00QiZPw2iJ0f78QwQsxrI638nU9lBA/a/cu6Pd3Cft0t3setlJR4gScDEdw70uic0ikB5F+fI0ZLWZTMzVj2vFeKBSXoYC5UghRQCRXsmhVxKg5hW++3DZ+OjuVBYls5euYG5kq5Ka73k9Nr/CrxNfSwxdz+JkaY/8MjPGRjOWzbSIF1nbCD8fSaOdO0UQ7HYQymsJ42Au1oYXLaRwgYvJ76utN6669ByEUW1Xb7YaMmJ1sNnaskRBC1xP7nsdDttDuOI0d9bJTXszKYEW1UBUdHl6WnFxvXX1dHLtFZ3Jz79LfCRGYKZYs1Cdg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=WEvMzpvWqS275td8NdQCPoSkcPjKyBi1OV2Wa89ZesQ=;
 b=t0t5IRnPlT8npXcykmzC5PrPhMPrlCnhPgmlim2507ZaTXLPdGQgZnXVmvq9VqxafxgdEL64qSqUHHYdddTQM7RNGobfch//95kMUZm5judRNloeOFqsRzI4GCOqcOZO8M73pZYdlKQ9VDShx8MlbElz2qtQe4ZioKYTef/YMX4gaAWNDXv1kB17rMwBDlXPwQcVNVPYLSA9bSc9NPLlNEKFWEh33frxTc3c9fEAVg+pOWdjqSTrdaVRkOyEU/f3ZnaJLGjzVUUsdipNTe/4qqIsSNbZ8tR6yPTfuC10WXDwe90CT14+vH7A3rCPbItNvmq8Sm0NasrYSsbg7NW/EQ==
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=WEvMzpvWqS275td8NdQCPoSkcPjKyBi1OV2Wa89ZesQ=;
 b=GPc3/Eyh/0SzJvgieEvvDX7YqIMQR9rOB22fRKjIKPSRJt6ZSRRL6y7mtHva0kMSNJ+V1QBtzw/inPeqrnjJTiv197DTWBGUEmks1t+pGkz21+cUAGmZDnBRfPNEcdbfGTVDgecoTAiA0jtGAGdxs1pyErHZyfaJbl/yvPjo2tM=
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: Huang Rui <ray.huang@amd.com>, Jiqian Chen <Jiqian.Chen@amd.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, "Julien
 Grall" <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v3 05/11] vpci: Refactor REGISTER_VPCI_INIT
Date: Mon, 21 Apr 2025 14:18:57 +0800
Message-ID: <20250421061903.1542652-6-Jiqian.Chen@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250421061903.1542652-1-Jiqian.Chen@amd.com>
References: <20250421061903.1542652-1-Jiqian.Chen@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: SJ1PEPF000026C9:EE_|SJ2PR12MB8832:EE_
X-MS-Office365-Filtering-Correlation-Id: fae463d9-a447-4eea-8219-08dd809c7ae3
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?UnVKQmI0bEtPU0xvaGI4bVkzSlRDclBNRWRxRnBNd09zQm9ONGM2V2RnSFhq?=
 =?utf-8?B?ZEQvclBhK3daYm1jL2ZLWm94NVJQTTZIMDAwc0ROUVV5enJYZEtpaWQySWxG?=
 =?utf-8?B?eTRyQW5FTTFDeUljSjhNdTYwQmdNSDFhcEpFVDkwVDlodXFDWk5WVEtReHZF?=
 =?utf-8?B?T0M0bE83T0NabFdobGdDcFkrZHRzUlpoQ2JkRGtGc00ybDlmZkYrZ0FSdWVo?=
 =?utf-8?B?c3lWMTBXMk5wZmFjU3hNNTR4ZFFWN254MnY0YUJEVjA5czJ1TFlzQlJwZ3E3?=
 =?utf-8?B?TzZtcnkrc2c0SFlsOUIzVExUL3h3Y2NMUVhlN0VjdkZ2Zm5oc1ZVQldPbnpw?=
 =?utf-8?B?cUpCTWNxeUIySnV6c0h0ZVEzOGRRR1dhZy8wcDdaendYckFHTlplSVRsU1Bo?=
 =?utf-8?B?cUFZUFJldCtwcWpOaUlDcnVEZHZycTMzaUVUaC92TWNNaXZuQjc3T0htV3Fs?=
 =?utf-8?B?c1lDKzRMZVVUdVd4dFVTc0VvdnJjN0hSQndlQWYvd3RwZVFRUkpUUjRWRXI3?=
 =?utf-8?B?YUJMN2dLVk9mZFJhK05GK3VzTUtaN2c5OXFEaDlhRzNqY0hWUVVmVCtFMlpW?=
 =?utf-8?B?TTJ3Yk16QytVYkJaZ2czQy82dFU5MEVHOVdLL1hhQkZIeXB2ZzRjUzV5c0tv?=
 =?utf-8?B?MHRkV0xqYThaaFNnZFVzUXpEVVhSNnAyWE15YkxCWE9MU0UvR1V3eWxRaTZw?=
 =?utf-8?B?SGhwYTBRQ2dBbUhYWkRNNDdhRUdCcElIRFlLRnhOSXdVUDhWR0hENy9qZEFs?=
 =?utf-8?B?dkJ1THUrMkh1VWVXR3NVSENNcytZNXVsS0hEeGk2UDdNRjRxUjhVVmJNdXZO?=
 =?utf-8?B?TmhjS0EwZytRbnNuMDZzSWkwdndzR1FpYlJlT3JPc0ZlYjZ0STM1Z3RhM2RO?=
 =?utf-8?B?WmxHM1F4ZEYwK2FMd3pMdjd5NkVuMDZ1NmVGZTBtQ3AzWEJ4cXgvRjZPS2VS?=
 =?utf-8?B?OWREOTNWN3lta0hra3VUQWtjc2kwbW5nZ3M5QUV6Z2xLZXdkY29ER1huN3BB?=
 =?utf-8?B?TjYzQWx2djdBM1dvQy9MZktjZXNsWjN4b3ROQUdMdnlpeXd4N3Y0QzNQbkRS?=
 =?utf-8?B?eXczajAvUzZ2K3Y4VTRNZTk5UWpLZG9wVEUwTDdQYjFCcWpjQ3dkMytqUUhq?=
 =?utf-8?B?UlNNQ0FOcWI4dzBycDZLOTBYT3JNWVFERDFPQlQzaFd6N1RURkpMTnlmbUV4?=
 =?utf-8?B?blRlR3dITTJsa0lyOEdnM2h5eTlMUEZGdG10dzRKZk9FYndmWUhxblRuTzZa?=
 =?utf-8?B?UzB3UlNDYVBlTVA1OWlmNHRFSFZ0Z0E0ZXBwcTQrVGwwME5KY2dUUm9BbWlw?=
 =?utf-8?B?c09YVkgveC9ianV3YitHYk9yMmtOVnc2azdhdWh6Mk9vZXAyc0QwY1pMMU8r?=
 =?utf-8?B?bjlBYnRXdzB4VG1CT3dYNG1qV1g5aXpuVkhGMTJONkQ0YTltMHdiRnpuekpW?=
 =?utf-8?B?bWdKVVI1S1NBZERUR0tmd01hTWtyR1BUbSsvVFQvdW1ZVDNMUGdrc0xNeCt0?=
 =?utf-8?B?RUpndFRYVUU3UVVieXFmT2JwQVNsd1VrbHR5RHQzNWVINXlHdlFBZlNWRExv?=
 =?utf-8?B?UkxKTmdMTk1nUkZhRE5qWGpWRTVxMWxuMDRwOHNZeGJvYngzcE9HdzZENFNh?=
 =?utf-8?B?K29JR1MzSDlwYkw2YWlLVndxQmx1NWtQSndZZXRCMGprZ3RNcTEvbFhha3V2?=
 =?utf-8?B?VEY1NzZYZ1F6TVlRSnJER3BhQkNLbG8waXhQVnJqTFZXOWhBWEVZZEFya0VF?=
 =?utf-8?B?bytKeFhmeGMra21BNkFEcW8rY0ZhR2ZPUFRGL3QvSGxPRDVOeDRudmFFRnJO?=
 =?utf-8?B?UEwzWXdlTXF2bm9KMFpxS0oydnFWSlg5Tkp2RHdWYWxZdWprQnBNOEJJZTZx?=
 =?utf-8?B?WjJTb0ZDakVDMGNsRjZjdUFlSXhyclBIeUJXTk1SSnBpZU5OeUNLbVBCTm5B?=
 =?utf-8?B?dDJPa0tPVGs5cmVMWFcrNXJTWUtsUnNEdmF6UGFXMmpTREQrUWlSSEFiZ0dQ?=
 =?utf-8?B?K29uM2w4M2JNeERjanV5bTc3bjdjZ1pMUWxZb3hOVWQ4TDNtV2N2ZjdmUy9H?=
 =?utf-8?Q?i+3Jj4?=
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: 21 Apr 2025 06:19:32.0211
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: fae463d9-a447-4eea-8219-08dd809c7ae3
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:
	SJ1PEPF000026C9.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR12MB8832

Refactor REGISTER_VPCI_INIT to contain more capability specific
information, this is benifit for follow-on changes to hide capability
which initialization fails.

What's more, change the definition of init_header() since it is
not a capability and it is needed for all devices' PCI config space.

Note:
Call vpci_make_msix_hole() in the end of init_msix() since the
change of sequence of init_header() and init_msix().
The fini hook will be implemented in follow-on changes.

Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
---
cc: "Roger Pau Monné" <roger.pau@citrix.com>
cc: Andrew Cooper <andrew.cooper3@citrix.com>
cc: Anthony PERARD <anthony.perard@vates.tech>
cc: Michal Orzel <michal.orzel@amd.com>
cc: Jan Beulich <jbeulich@suse.com>
cc: Julien Grall <julien@xen.org>
cc: Stefano Stabellini <sstabellini@kernel.org>
---
v2->v3 changes:
* This is separated from patch "vpci: Hide capability when it fails to initialize" of v2.
* Delete __maybe_unused attribute of "out" in function vpci_assign_devic().
* Rename REGISTER_VPCI_EXTEND_CAP to REGISTER_VPCI_EXTENDED_CAP.

v1->v2 changes:
* Removed the "priorities" of initializing capabilities since it isn't used anymore.
* Added new function vpci_capability_mask() and vpci_ext_capability_mask() to remove failed capability from list.
* Called vpci_make_msix_hole() in the end of init_msix().

Best regards,
Jiqian Chen.
---
 xen/drivers/vpci/header.c |  3 +--
 xen/drivers/vpci/msi.c    |  2 +-
 xen/drivers/vpci/msix.c   |  8 +++++--
 xen/drivers/vpci/rebar.c  |  2 +-
 xen/drivers/vpci/vpci.c   | 48 +++++++++++++++++++++++++++++++--------
 xen/include/xen/vpci.h    | 28 ++++++++++++++++-------
 xen/include/xen/xen.lds.h |  2 +-
 7 files changed, 68 insertions(+), 25 deletions(-)

diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c
index ee94ad8e5037..afe4bcdfcb30 100644
--- a/xen/drivers/vpci/header.c
+++ b/xen/drivers/vpci/header.c
@@ -842,7 +842,7 @@ static int vpci_init_ext_capability_list(struct pci_dev *pdev)
     return 0;
 }
 
-static int cf_check init_header(struct pci_dev *pdev)
+int vpci_init_header(struct pci_dev *pdev)
 {
     uint16_t cmd;
     uint64_t addr, size;
@@ -1038,7 +1038,6 @@ static int cf_check init_header(struct pci_dev *pdev)
     pci_conf_write16(pdev->sbdf, PCI_COMMAND, cmd);
     return rc;
 }
-REGISTER_VPCI_INIT(init_header, VPCI_PRIORITY_MIDDLE);
 
 /*
  * Local variables:
diff --git a/xen/drivers/vpci/msi.c b/xen/drivers/vpci/msi.c
index 66e5a8a116be..ea7dc0c060ea 100644
--- a/xen/drivers/vpci/msi.c
+++ b/xen/drivers/vpci/msi.c
@@ -270,7 +270,7 @@ static int cf_check init_msi(struct pci_dev *pdev)
 
     return 0;
 }
-REGISTER_VPCI_INIT(init_msi, VPCI_PRIORITY_LOW);
+REGISTER_VPCI_LEGACY_CAP(PCI_CAP_ID_MSI, init_msi, NULL);
 
 void vpci_dump_msi(void)
 {
diff --git a/xen/drivers/vpci/msix.c b/xen/drivers/vpci/msix.c
index 6bd8c55bb48e..0228ffd9fda9 100644
--- a/xen/drivers/vpci/msix.c
+++ b/xen/drivers/vpci/msix.c
@@ -751,9 +751,13 @@ static int cf_check init_msix(struct pci_dev *pdev)
     pdev->vpci->msix = msix;
     list_add(&msix->next, &d->arch.hvm.msix_tables);
 
-    return 0;
+    spin_lock(&pdev->vpci->lock);
+    rc = vpci_make_msix_hole(pdev);
+    spin_unlock(&pdev->vpci->lock);
+
+    return rc;
 }
-REGISTER_VPCI_INIT(init_msix, VPCI_PRIORITY_HIGH);
+REGISTER_VPCI_LEGACY_CAP(PCI_CAP_ID_MSIX, init_msix, NULL);
 
 /*
  * Local variables:
diff --git a/xen/drivers/vpci/rebar.c b/xen/drivers/vpci/rebar.c
index 793937449af7..026f8f7972d9 100644
--- a/xen/drivers/vpci/rebar.c
+++ b/xen/drivers/vpci/rebar.c
@@ -118,7 +118,7 @@ static int cf_check init_rebar(struct pci_dev *pdev)
 
     return 0;
 }
-REGISTER_VPCI_INIT(init_rebar, VPCI_PRIORITY_LOW);
+REGISTER_VPCI_EXTENDED_CAP(PCI_EXT_CAP_ID_REBAR, init_rebar, NULL);
 
 /*
  * Local variables:
diff --git a/xen/drivers/vpci/vpci.c b/xen/drivers/vpci/vpci.c
index 3349b98389b8..5474b66668c1 100644
--- a/xen/drivers/vpci/vpci.c
+++ b/xen/drivers/vpci/vpci.c
@@ -36,8 +36,8 @@ struct vpci_register {
 };
 
 #ifdef __XEN__
-extern vpci_register_init_t *const __start_vpci_array[];
-extern vpci_register_init_t *const __end_vpci_array[];
+extern vpci_capability_t *const __start_vpci_array[];
+extern vpci_capability_t *const __end_vpci_array[];
 #define NUM_VPCI_INIT (__end_vpci_array - __start_vpci_array)
 
 #ifdef CONFIG_HAS_VPCI_GUEST_SUPPORT
@@ -83,6 +83,36 @@ static int assign_virtual_sbdf(struct pci_dev *pdev)
 
 #endif /* CONFIG_HAS_VPCI_GUEST_SUPPORT */
 
+static int vpci_init_capabilities(struct pci_dev *pdev)
+{
+    for ( unsigned int i = 0; i < NUM_VPCI_INIT; i++ )
+    {
+        const vpci_capability_t *capability = __start_vpci_array[i];
+        const unsigned int cap = capability->id;
+        const bool is_ext = capability->is_ext;
+        unsigned int pos;
+        int rc;
+
+        if ( !is_hardware_domain(pdev->domain) && is_ext )
+            continue;
+
+        if ( !is_ext )
+            pos = pci_find_cap_offset(pdev->sbdf, cap);
+        else
+            pos = pci_find_ext_capability(pdev->sbdf, cap);
+
+        if ( !pos || !capability->init )
+            continue;
+
+        rc = capability->init(pdev);
+
+        if ( rc )
+            return rc;
+    }
+
+    return 0;
+}
+
 void vpci_deassign_device(struct pci_dev *pdev)
 {
     unsigned int i;
@@ -128,7 +158,6 @@ void vpci_deassign_device(struct pci_dev *pdev)
 
 int vpci_assign_device(struct pci_dev *pdev)
 {
-    unsigned int i;
     const unsigned long *ro_map;
     int rc = 0;
 
@@ -159,14 +188,13 @@ int vpci_assign_device(struct pci_dev *pdev)
         goto out;
 #endif
 
-    for ( i = 0; i < NUM_VPCI_INIT; i++ )
-    {
-        rc = __start_vpci_array[i](pdev);
-        if ( rc )
-            break;
-    }
+    rc = vpci_init_header(pdev);
+    if ( rc )
+        goto out;
+
+    rc = vpci_init_capabilities(pdev);
 
- out: __maybe_unused;
+ out:
     if ( rc )
         vpci_deassign_device(pdev);
 
diff --git a/xen/include/xen/vpci.h b/xen/include/xen/vpci.h
index 9d47b8c1a50e..8e815b418b7d 100644
--- a/xen/include/xen/vpci.h
+++ b/xen/include/xen/vpci.h
@@ -13,11 +13,12 @@ typedef uint32_t vpci_read_t(const struct pci_dev *pdev, unsigned int reg,
 typedef void vpci_write_t(const struct pci_dev *pdev, unsigned int reg,
                           uint32_t val, void *data);
 
-typedef int vpci_register_init_t(struct pci_dev *dev);
-
-#define VPCI_PRIORITY_HIGH      "1"
-#define VPCI_PRIORITY_MIDDLE    "5"
-#define VPCI_PRIORITY_LOW       "9"
+typedef struct {
+    unsigned int id;
+    bool is_ext;
+    int (*init)(struct pci_dev *pdev);
+    void (*fini)(struct pci_dev *pdev);
+} vpci_capability_t;
 
 #define VPCI_ECAM_BDF(addr)     (((addr) & 0x0ffff000) >> 12)
 
@@ -29,9 +30,20 @@ typedef int vpci_register_init_t(struct pci_dev *dev);
  */
 #define VPCI_MAX_VIRT_DEV       (PCI_SLOT(~0) + 1)
 
-#define REGISTER_VPCI_INIT(x, p)                \
-  static vpci_register_init_t *const x##_entry  \
-               __used_section(".data.vpci." p) = (x)
+#define REGISTER_VPCI_CAP(cap, x, y, ext) \
+  static vpci_capability_t x##_t = { \
+        .id = (cap), \
+        .init = (x), \
+        .fini = (y), \
+        .is_ext = (ext), \
+  }; \
+  static vpci_capability_t *const x##_entry  \
+               __used_section(".data.vpci.") = &(x##_t)
+
+#define REGISTER_VPCI_LEGACY_CAP(cap, x, y) REGISTER_VPCI_CAP(cap, x, y, false)
+#define REGISTER_VPCI_EXTENDED_CAP(cap, x, y) REGISTER_VPCI_CAP(cap, x, y, true)
+
+int __must_check vpci_init_header(struct pci_dev *pdev);
 
 /* Assign vPCI to device by adding handlers. */
 int __must_check vpci_assign_device(struct pci_dev *pdev);
diff --git a/xen/include/xen/xen.lds.h b/xen/include/xen/xen.lds.h
index 16a9b1ba03db..c73222112dd3 100644
--- a/xen/include/xen/xen.lds.h
+++ b/xen/include/xen/xen.lds.h
@@ -187,7 +187,7 @@
 #define VPCI_ARRAY               \
        . = ALIGN(POINTER_ALIGN); \
        __start_vpci_array = .;   \
-       *(SORT(.data.vpci.*))     \
+       *(.data.vpci.*)     \
        __end_vpci_array = .;
 #else
 #define VPCI_ARRAY
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Apr 21 06:19:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 21 Apr 2025 06:19:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.960837.1352519 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6kVG-0005rP-5v; Mon, 21 Apr 2025 06:19:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 960837.1352519; Mon, 21 Apr 2025 06:19: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 1u6kVF-0005r5-W5; Mon, 21 Apr 2025 06:19:37 +0000
Received: by outflank-mailman (input) for mailman id 960837;
 Mon, 21 Apr 2025 06: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=rBGn=XH=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1u6kVE-00057u-FY
 for xen-devel@lists.xenproject.org; Mon, 21 Apr 2025 06:19:36 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on2061b.outbound.protection.outlook.com
 [2a01:111:f403:2414::61b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 97b748e9-1e78-11f0-9ffb-bf95429c2676;
 Mon, 21 Apr 2025 08:19:34 +0200 (CEST)
Received: from MW3PR05CA0004.namprd05.prod.outlook.com (2603:10b6:303:2b::9)
 by CH3PR12MB8583.namprd12.prod.outlook.com (2603:10b6:610:15f::12) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.35; Mon, 21 Apr
 2025 06:19:30 +0000
Received: from SJ1PEPF000026C4.namprd04.prod.outlook.com
 (2603:10b6:303:2b:cafe::60) by MW3PR05CA0004.outlook.office365.com
 (2603:10b6:303:2b::9) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.18 via Frontend Transport; Mon,
 21 Apr 2025 06:19:30 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ1PEPF000026C4.mail.protection.outlook.com (10.167.244.101) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Mon, 21 Apr 2025 06:19:29 +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; Mon, 21 Apr
 2025 01:19:27 -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: 97b748e9-1e78-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ga6CJMcifUiSpMNfb6JyEh8UzLZOy7MwrFo7jKU/tyqRidmUvaWuZFpSbHi4t6z9928QbOGZYqGslhu0hneGsRLYUBSkL2uspqcuSpaFXzoN7RQmWq4JNKpmWDkGQFvGH7EHl2XzlPelspjVv2UHOnux/JDIB85SLXTMbRAliLPrCk6ll9H6bA30IBdMYuptFGa9oc41qJQ5X4ycG9vwTc/l760lQaV1r3RxYsYGtenft8FIl1CuNqavwZWp9mj8fL4MJTeycaXoFaqXnSxmRdRx7SkA/QegIcr0Y8qZbMBKA/fB5QrVu7hiHFHpsVJQDpwAVVvaqaYtiJPKJoD6ag==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Smc1jWeK9v3ur3A4inV8stRX58Ho7A+1C8m4g9Og5wc=;
 b=LDTGpiIRx8rokYTtEA6EW+q7ROkgdbZ8vElNvGL4WUCF1GFBIBaEuE5fFbk+ZxJQqptO1P/QdBOOrems/Z6UfO/qYWdqKDvLdF5OrRjgJfqFVJlhI75mT4ZYgD0MgvVtZe5VmRkAD4FxzTMxAwOhxyhTAXJlP2kK+V2JB/Y8De0tMIWnd5XMmAizV8PbaELZlJYYNtM6+jcyeA4nkzQRGnXh4lgFXpIPmm+u8aFwLSxP95MwfswxHdhybYZmIcp1f3q6KrYVjnDLcW5lPveZNHPxX1rvzw4d4Fo3l6gYCuY41OaKYl667jZzJze14iIoqlnLkuDibouEE7X1VkSTlw==
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=Smc1jWeK9v3ur3A4inV8stRX58Ho7A+1C8m4g9Og5wc=;
 b=Opjwj0jCv7+aHI5tmgYOgceORHtW0Wh7K/L8pVcwdgUXHaTHAo7NVyPMQoBEwWNW1j7QpFE92VejDqF6aWAbngbfGVUqxCLoph21ZwIfGXIY0tM+VXQNx+s6S4WiwHVM/K4/OIei/bg1lhat9fB3VRUNZxLVGn2jNFzrLMNY7tc=
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: Huang Rui <ray.huang@amd.com>, Jiqian Chen <Jiqian.Chen@amd.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v3 04/11] vpci/header: Emulate extended capability list for dom0
Date: Mon, 21 Apr 2025 14:18:56 +0800
Message-ID: <20250421061903.1542652-5-Jiqian.Chen@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250421061903.1542652-1-Jiqian.Chen@amd.com>
References: <20250421061903.1542652-1-Jiqian.Chen@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: SJ1PEPF000026C4:EE_|CH3PR12MB8583:EE_
X-MS-Office365-Filtering-Correlation-Id: bb1fc3b8-e00f-461c-e8d0-08dd809c793c
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?RWZYYWlkQlV5WEdsMkxlYXBOVGVTVkhXajFvaEtYeWFKQk55dU5VamZkenBL?=
 =?utf-8?B?OTNYUVJiTDJlalk3QzdvU2VrM1h0MWkvTTRkdnFrZmlDVnUrOGpSYVlhUFNZ?=
 =?utf-8?B?Y1pmU3hqU05LMDhlRkNzMzF1M3NvU3lzZ0lweFJiWC9jT2hBWEJIRUE1VmFm?=
 =?utf-8?B?SHFyREdmK092dUtlQnN5d0pPQzBWaUQ4WUcwRzIzT0c2YVhFNGJoUzl1VUhN?=
 =?utf-8?B?bGtHTVA2ZkE2Wm93OTd0bjUwU09PQXU4QWZJbVpUc0MzbnNVOFk2U3hjenZM?=
 =?utf-8?B?UUxiak42MndWQVJvM2Y0SElBajhFV3oyUkVUZkpnOFdNR01jUGcwWm1GR3M3?=
 =?utf-8?B?cG82RHNwZ2k5VWxCKzdMVnZ0RVFld0VkYkhGUzF5MzQvelR6NUlnOW5iWXF2?=
 =?utf-8?B?M09jKzBPeGtNeGlnNFoybzQ3SklKVk8yOTlWR3hCVzN5Z2pzMnlRQ1U1T3JE?=
 =?utf-8?B?Njl1akdldFN0eFlLMGduUzU0bDd6ZFF6L29LVW1jVnh2elhGVHhVSEphOUlW?=
 =?utf-8?B?aGtsdEY1aXJ5N2IxVEdObjFLd3R6SFJMUWFNb0JnOWNhcnFMVkUyQzB4cnhk?=
 =?utf-8?B?VTBWditIOE4vcUcwRmtLQWkvckNHVTJvZ0hNN0lyZ0pYbDR2NXN0U0twZHZV?=
 =?utf-8?B?bmhsRUJvSHlCdW0zYXN1K21XNGFsY1luVjh2Y096OUNDSTZLYlBCZzhhWXV0?=
 =?utf-8?B?a1ZsM2ZPbTQ0UURMZm9DZWR2ckZLODQ1NEtIWVl2aytyZmx4NktmQ0NSZGdE?=
 =?utf-8?B?NFdqS2ZvOUlKSWZkUDJYMEZ3MTc4OTNJKzNJdkJjeUlvV0ZqTjlyWE9zaElt?=
 =?utf-8?B?ZkJCSTZJLys5SHBOOHFRalc0WmlEc25Va2I4RlFiN3Q1WEsyckJVRWRYY0hn?=
 =?utf-8?B?OSs5YzJvWmM2am5kZTluQzJwL3ZPejRjdDdmVVB1dXUvZWJ1TWVGdXllVnZJ?=
 =?utf-8?B?RjJ4OXpyVit2YzBla2NobE8xMU1MbDQ5UHJkSFJObVE5cVRXZlJva1RHODBs?=
 =?utf-8?B?alZVdUNTT1RaR3BwVVZ1TUdVWVhxUEUzQ3FybEgzY3c3MWdxaGJudE4wMEJF?=
 =?utf-8?B?Q01hdVFwcUxqaHVxcURCZUpaS3F6K0Q4aWNjNEFmN1pYUCtjYVlteVpxalkx?=
 =?utf-8?B?M0plbmdsK21Uczg4Ti9WOHJ3RVVoU3hraE1xTHBhYWgrdFpQeEhjU2dMWFc3?=
 =?utf-8?B?SUhtay9YdGp6SFlOczBoZUVuQkxKSXBIMm5sT0ZQR2s2L09sSVovVEgwekhj?=
 =?utf-8?B?ZXpPZkN5V2JyZ3FtQkkvMTNoVlkzSVN5ekNGOG5LS3E4RWpiZnJjQVJFMFdG?=
 =?utf-8?B?QndtVVdwVWhXeEs0QnBCcFBHVkZTMUpQZTRzSUQ5WFNteS9Pb0oyNU5iaTZE?=
 =?utf-8?B?S2VScE01b1QvR0dDdHlIQTVFNjE4aGlHQStrd2oyOVYyNTdyRTNzdDJaS0dD?=
 =?utf-8?B?cDVJUkEvN0dRNG5OeiswcGtpOUpCU0tuWkhZcUdWZWdFcml0TXI0QnBZNnpJ?=
 =?utf-8?B?MHNFaWFzUFhJSmFnbzQzUW9NTHlMUG9zOG8vU3EwQlQzeGp1YnJKYWgyVHpI?=
 =?utf-8?B?REt2Z0xjNTEvNDB1VEZuRExBaklQYTZLM2o3azFiVW5ScnJmbVAveWxPQzlC?=
 =?utf-8?B?NmJiQjBkRVNRbk1sMjBMQ09sRkVndzhvMHRDNFQrcDZwZnJMYXZzRnFxSU1i?=
 =?utf-8?B?WnJXdGh4TDlLa0F1WVV5eE00NTBMN1pZalhFS0FwWHdETkJGbFRpWXFQWHNy?=
 =?utf-8?B?Ujh6d2lCeWdXcGpIVWE0UFVmSnpBYitFMWI3V1RqYnFHczhEcU83anJLeUlv?=
 =?utf-8?B?c2FDc3Y1aUlQelBGWWplYlMwQWVScmRwN0tSLzFZWE9PUmJKRC9rZWRBSGM4?=
 =?utf-8?B?b3UvbnUxUFRIZVJ4TC8zZXRPeFJMbDBvUmpzaFJuaHdLUjB0ZXNLNzIyc1VP?=
 =?utf-8?B?Ryt3dVRINGNza09aNWZGQTF1bTV5aHRMMHJZMGZTWC93WWg2Z1JxQk42Q1dq?=
 =?utf-8?B?L0Q4d3BBUUl5N0ZGYVhNd2kwdFRBWXduNGpXNGIySWJ0R0lrYkdZKzZnZHht?=
 =?utf-8?Q?kcewPT?=
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: 21 Apr 2025 06:19:29.2360
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: bb1fc3b8-e00f-461c-e8d0-08dd809c793c
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:
	SJ1PEPF000026C4.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB8583

Add a new function to emulate extended capability list for dom0,
and call it in init_header(). So that it will be easy to hide a
extended capability whose initialization fails.

As for the extended capability list of domU, just move the logic
into above function and keep hiding it for domU.

Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
---
cc: "Roger Pau Monné" <roger.pau@citrix.com>
---
v2->v3 changes:
* In vpci_init_ext_capability_list(), when domain is domU, directly return after adding a handler(hiding all extended capability for domU).
* In vpci_init_ext_capability_list(), change condition to be "while ( pos >= 0x100U && ttl-- )" instead of "while ( pos && ttl-- )".
* Add new function vpci_hw_write32, and pass it to extended capability handler for dom0.

v1->v2 changes:
new patch

Best regards,
Jiqian Chen.
---
 xen/drivers/vpci/header.c | 36 ++++++++++++++++++++++++++++--------
 xen/drivers/vpci/vpci.c   |  6 ++++++
 xen/include/xen/vpci.h    |  2 ++
 3 files changed, 36 insertions(+), 8 deletions(-)

diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c
index c98cd211d9d7..ee94ad8e5037 100644
--- a/xen/drivers/vpci/header.c
+++ b/xen/drivers/vpci/header.c
@@ -817,6 +817,31 @@ static int vpci_init_capability_list(struct pci_dev *pdev)
                                   PCI_STATUS_RSVDZ_MASK);
 }
 
+static int vpci_init_ext_capability_list(struct pci_dev *pdev)
+{
+    unsigned int pos = PCI_CFG_SPACE_SIZE, ttl = 480;
+
+    if ( !is_hardware_domain(pdev->domain) )
+        /* Extended capabilities read as zero, write ignore for guest */
+        return vpci_add_register(pdev->vpci, vpci_read_val, NULL,
+                                 pos, 4, (void *)0);
+
+    while ( pos >= PCI_CFG_SPACE_SIZE && ttl-- )
+    {
+        uint32_t header = pci_conf_read32(pdev->sbdf, pos);
+        int rc;
+
+        rc = vpci_add_register(pdev->vpci, vpci_read_val, vpci_hw_write32,
+                               pos, 4, (void *)(uintptr_t)header);
+        if ( rc )
+            return rc;
+
+        pos = PCI_EXT_CAP_NEXT(header);
+    }
+
+    return 0;
+}
+
 static int cf_check init_header(struct pci_dev *pdev)
 {
     uint16_t cmd;
@@ -869,14 +894,9 @@ static int cf_check init_header(struct pci_dev *pdev)
     if ( rc )
         return rc;
 
-    if ( !is_hwdom )
-    {
-        /* Extended capabilities read as zero, write ignore */
-        rc = vpci_add_register(pdev->vpci, vpci_read_val, NULL, 0x100, 4,
-                               (void *)0);
-        if ( rc )
-            return rc;
-    }
+    rc = vpci_init_ext_capability_list(pdev);
+    if ( rc )
+        return rc;
 
     if ( pdev->ignore_bars )
         return 0;
diff --git a/xen/drivers/vpci/vpci.c b/xen/drivers/vpci/vpci.c
index 1e6aa5d799b9..3349b98389b8 100644
--- a/xen/drivers/vpci/vpci.c
+++ b/xen/drivers/vpci/vpci.c
@@ -232,6 +232,12 @@ void cf_check vpci_hw_write16(
     pci_conf_write16(pdev->sbdf, reg, val);
 }
 
+void cf_check vpci_hw_write32(
+    const struct pci_dev *pdev, unsigned int reg, uint32_t val, void *data)
+{
+    pci_conf_write32(pdev->sbdf, reg, val);
+}
+
 int vpci_add_register_mask(struct vpci *vpci, vpci_read_t *read_handler,
                            vpci_write_t *write_handler, unsigned int offset,
                            unsigned int size, void *data, uint32_t ro_mask,
diff --git a/xen/include/xen/vpci.h b/xen/include/xen/vpci.h
index 807401b2eaa2..9d47b8c1a50e 100644
--- a/xen/include/xen/vpci.h
+++ b/xen/include/xen/vpci.h
@@ -78,6 +78,8 @@ uint32_t cf_check vpci_hw_read32(
     const struct pci_dev *pdev, unsigned int reg, void *data);
 void cf_check vpci_hw_write16(
     const struct pci_dev *pdev, unsigned int reg, uint32_t val, void *data);
+void cf_check vpci_hw_write32(
+    const struct pci_dev *pdev, unsigned int reg, uint32_t val, void *data);
 
 /*
  * Check for pending vPCI operations on this vcpu. Returns true if the vcpu
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Apr 21 06:19:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 21 Apr 2025 06:19:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.960843.1352563 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6kVN-00076h-K4; Mon, 21 Apr 2025 06:19:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 960843.1352563; Mon, 21 Apr 2025 06:19: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 1u6kVN-00076T-Fq; Mon, 21 Apr 2025 06:19:45 +0000
Received: by outflank-mailman (input) for mailman id 960843;
 Mon, 21 Apr 2025 06:19: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=rBGn=XH=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1u6kVM-00057u-5H
 for xen-devel@lists.xenproject.org; Mon, 21 Apr 2025 06:19:44 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on20609.outbound.protection.outlook.com
 [2a01:111:f403:2414::609])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9c47d924-1e78-11f0-9ffb-bf95429c2676;
 Mon, 21 Apr 2025 08:19:42 +0200 (CEST)
Received: from MW4P221CA0018.NAMP221.PROD.OUTLOOK.COM (2603:10b6:303:8b::23)
 by SJ0PR12MB7007.namprd12.prod.outlook.com (2603:10b6:a03:486::8) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.33; Mon, 21 Apr
 2025 06:19:38 +0000
Received: from SJ1PEPF000026C9.namprd04.prod.outlook.com
 (2603:10b6:303:8b:cafe::b0) by MW4P221CA0018.outlook.office365.com
 (2603:10b6:303:8b::23) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.33 via Frontend Transport; Mon,
 21 Apr 2025 06:19:38 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ1PEPF000026C9.mail.protection.outlook.com (10.167.244.106) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Mon, 21 Apr 2025 06:19:37 +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; Mon, 21 Apr
 2025 01:19:34 -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: 9c47d924-1e78-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=QIjsrsAXzAJ/2H8L8KLTo2DPQPmLKM481ZTK4/yjf+TcKYabt+pa2mlyx8AnRzV3KPXtDZjel9sGvqf99f8Q4f6lIdXMpfUqNBo6baadCGJGTSKmlpmn+MPGvl3pJTa01cl1CC82U+rRdyE/qY3L8FPtun39jFnXdIBidUbf5ZhL1ph+4sH+n/JbIzlaojvtu/eoNCCtCbefY9IIyl5t5ycI27JsV/rT4+7WKuWuVpieCSeSawHrpiR60eyvAPR6LBd2CyzmJRPGUKWkLH6crzpPq2MUjQtYaae+s0iKmrandHSSZQ6Q1VuG280lH/bTvPArm6JOHJ0gM+I/Z31Tsw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=U+g97RZjgCjOmy0NNzS3RYBikm+tUCQTcif7ks3wE9M=;
 b=ev7D3gETMvQ18/tOIR+QsS2YxSjSlO0b/2ulkWtzjo7V0Lc/e+sXOjHeLw0EJcQJuKcosxdPgfCWTi55I9o+wBMLoYX4i/2ofH1r922MR+Uiza6pajgDKM+pL3sQvgWqieH7XuwEusTuMZdsOIbbLuW5luIpfWhViAzu0gCc1YcHJwwF+hQlHl8l8LWyTfOzNHdom5ZgIVzcRXZGez7LITt67XMQdfnt73mu5CQJcU4jNsIe6nw34qXGgX4jrpqtDQzSjX4DrSvjBr0zU6WHJVaRMo2hz0ZHi2oivUzaRaWvH1ZECA0MJBqn5H3Hu8dNvjJ1GMQ5nKXXdnSIrZ3vOA==
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=U+g97RZjgCjOmy0NNzS3RYBikm+tUCQTcif7ks3wE9M=;
 b=SE6lSFv+hJnm/hrEpGS4nRppuL1Pknl+Ue1mSq1w2Ul23cZ1UEaG3GFtWY1oU38/RX+eAcRQeViWOWOABV2tLE2slpVlHinDdArnHyJK/1jVGu6ME5laziGptDJg2M7kiGYFk0BXTVJviS43Q4R/qXwW715uljJ/6owVZ66BBfs=
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: Huang Rui <ray.huang@amd.com>, Jiqian Chen <Jiqian.Chen@amd.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>
Subject: [PATCH v3 08/11] vpci: Refactor vpci_remove_register to remove matched registers
Date: Mon, 21 Apr 2025 14:19:00 +0800
Message-ID: <20250421061903.1542652-9-Jiqian.Chen@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250421061903.1542652-1-Jiqian.Chen@amd.com>
References: <20250421061903.1542652-1-Jiqian.Chen@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: SJ1PEPF000026C9:EE_|SJ0PR12MB7007:EE_
X-MS-Office365-Filtering-Correlation-Id: 066e1ad3-c00d-4987-e05f-08dd809c7e61
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|376014|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?Z3A2Qzl5bytRZ0lMelFGWG5UVDhXM2htbVQ0bkg4cWRrMlAwblI2bnAxaFU1?=
 =?utf-8?B?ZjczSkVGc0MrMEY2Zmt0TDV5MlZaSm1ZUUxDZ1psYm1Lck0vRzFqYVNBcnZ5?=
 =?utf-8?B?VHI0ZFBpTEZKM1RLMHZDYnQrdFVhdFJHeTF3YlBZOE43SnBOeTloZUpKcUVD?=
 =?utf-8?B?OGIrYVRqdXgzY3JqU05CMlNwdnY2cTYvbnJ3Wk1aZGxTWmhVandFanJxc1hj?=
 =?utf-8?B?eVlkMkgyellNcUZjRWEwYjFlSG5GTzE4K2pHYkdHeWJLV3h6bUFPaTduN1Jk?=
 =?utf-8?B?eUhRZUdpUHlFMHlFTVZXQ1FiTG5ZRStIK21lcUJBUjNsejZpcWh3VlFaUnZB?=
 =?utf-8?B?WDZINkYwbXlFUmZEeE1pcVlQd2RjdHVsUmV6aEJmVkt3RDJXSk0vN2w2YWZX?=
 =?utf-8?B?TWpvNDg0ZHRHQTB0bXdVeVhMTzNrQzZxRUIyQ05UVkdUQmw0dDM2S0JmTHpr?=
 =?utf-8?B?V1B6VWJ1K1ArZ2tFZ01yMkZMMTl2c3ZWanZxazVrbGtBQXI1QmdMYXdqZjRX?=
 =?utf-8?B?UTl2d3V2MHNESlAyTW5QR1JYNlRPazhDZ0FScW5Ib3lMZUdEZ0hrQTNYZ2Rx?=
 =?utf-8?B?RTFMY0FEZ3NoeTdISmphOHVONUl6ZC84dUl5ak1HeThhbThxUzBGbUxzQUVR?=
 =?utf-8?B?SWRjSk4vWU4vL3lwRTdZUWs0ZksvL0M0OVN3WWltdkdISTBIYkVZeUVPSWVQ?=
 =?utf-8?B?WlJPVVZwUVBmWTdWWGpzK3pDYzNyZWpKdFUxMnZoWmVpTzgrb0tOSUd5MTA1?=
 =?utf-8?B?dEFVN3ZzWDNlWUY2VG1rd0RlbnRxTnJkTU5NZHV5ZHlLTjREUGJyNnZlR1Na?=
 =?utf-8?B?ZnQ4RVM2MWlUZVVIdGEwWVRYSlcyWVZBaG0vaXNwNWJpRnJaOVRFbmJScHNJ?=
 =?utf-8?B?SEdVSkN6WEFWL1F3UVF3Q2ZmL3pqUDhCOW96OXk5QTVUZkdTMytNTmJKODd1?=
 =?utf-8?B?bTc5ZjNac3FLQmE4aWZOVVVHVUY0Wi9Kb0pCRDJPL2w1RmphcUtyc2lXUW9J?=
 =?utf-8?B?L0tHTHZsWjAvU2pFWWZka0Nzd0haRkh6TnM0SFRSdXdxMTk1MisrT1pjYTZM?=
 =?utf-8?B?Qml5aldKZmxocnhvcXBYbzluRHVFZEhrNUdmZWNxVUJSV3RKZEdYNmxzckEy?=
 =?utf-8?B?UDk1cUVVZktXeHNBMTF4T2RTOFJpK3lIRE5vOHpZUmxhdTY1cXo1c3FROEF6?=
 =?utf-8?B?WkplUHVTNjhIaGhmUmZ0dGJSQjU5VmFpc09VUFR2R0luUU8ya2dTQ1hSMUY3?=
 =?utf-8?B?djcwZlhnMWRvLzFlbkNQejV6MHB2R3lPd1RLUngzOTAwSEV2Z2duR0xYTDNY?=
 =?utf-8?B?RzY3ZHNhbmdxbkJ0blgwMFF4dXZHMG43UFgxY3E0cVB2bWRCclc5bTNWZmVu?=
 =?utf-8?B?QllRMGtFT1BnSms1WmhzanhjUzk4dWcxNXRhVmRtbXdlZDhaT3JBV1ZpbmJK?=
 =?utf-8?B?bWE4WEFHeVJzTENaZ0NZcXBCSmx3VlNhUlNJYjdzMHFlRCtCV1J6TDNiYXpE?=
 =?utf-8?B?QzFEN3ROZjdjU2QrSG04SDFBSjJvekRJRGdEbHNyZTFPYm5GL3N6cjZvNUtX?=
 =?utf-8?B?amNOK2J3SnBjRVJLRE5WRWlJZWRDSnc2Y0gzV1pEaHBQYzhWTTd6Tk03Smhp?=
 =?utf-8?B?QWk3dTM3SUE2SjhFTTJGQTE2TTY0b25tNGtyTWRnNXN6QVlJQkZzQUV4VmZa?=
 =?utf-8?B?V1p4MUJnMS9LMHlQMWh4VXVLdmI1UjI1eUpmTEFZaHlnMHFxWGVncUFZb25Q?=
 =?utf-8?B?cEtKNVdydGVITWhQSE9CK1VYYjY1RkxtQ3ZKUGt6L0sxRVc2KzQ5azl2N0ho?=
 =?utf-8?B?TTRud1ozS3g4TVF6NFN5eWQ1VGl6Y1JjektPQlJ2bVA5MlllQXJzWmlndm85?=
 =?utf-8?B?SitIUytpMHVrdERJZWpzU05nYmtRdFdhWmZjWEtvVE51RmZWdlNSczNOWER3?=
 =?utf-8?B?dWhzeWF6ODJ4RGNjeVpsTGlCYWd1cit5bHZVZ0ljbEUrUE9VemtwZ3BKNTkw?=
 =?utf-8?B?c3N4YjBucjJJK1hGOVIrMVJhazlEM2ZwcVp0NGxHOTVjWkluMElJVWJhNVEy?=
 =?utf-8?Q?cShWPW?=
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)(376014)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Apr 2025 06:19:37.8825
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 066e1ad3-c00d-4987-e05f-08dd809c7e61
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:
	SJ1PEPF000026C9.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR12MB7007

vpci_remove_register() only supports removing a register in a time,
but the follow-on changes need to remove all registers within a
range. And vpci_remove_register() is only used for test currently.
So, refactor it to support removing all matched registers in a
calling time.

And it is no matter to remove a non exist register, so remove the
__must_check prefix.

Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
---
cc: "Roger Pau Monné" <roger.pau@citrix.com>
cc: Anthony PERARD <anthony.perard@vates.tech>
---
v2->v3 changes:
* Add new check to return error if registers overlap but not inside range.

v1->v2 changes:
new patch

Best regards,
Jiqian Chen.
---
 tools/tests/vpci/main.c |  4 ++--
 xen/drivers/vpci/vpci.c | 34 ++++++++++++++++++++--------------
 xen/include/xen/vpci.h  |  4 ++--
 3 files changed, 24 insertions(+), 18 deletions(-)

diff --git a/tools/tests/vpci/main.c b/tools/tests/vpci/main.c
index 33223db3eb77..ca72877d60cd 100644
--- a/tools/tests/vpci/main.c
+++ b/tools/tests/vpci/main.c
@@ -132,10 +132,10 @@ static void vpci_write32_mask(const struct pci_dev *pdev, unsigned int reg,
                                   rsvdz_mask))
 
 #define VPCI_REMOVE_REG(off, size)                                          \
-    assert(!vpci_remove_register(test_pdev.vpci, off, size))
+    assert(!vpci_remove_registers(test_pdev.vpci, off, size))
 
 #define VPCI_REMOVE_INVALID_REG(off, size)                                  \
-    assert(vpci_remove_register(test_pdev.vpci, off, size))
+    assert(vpci_remove_registers(test_pdev.vpci, off, size))
 
 /* Read a 32b register using all possible sizes. */
 void multiread4_check(unsigned int reg, uint32_t val)
diff --git a/xen/drivers/vpci/vpci.c b/xen/drivers/vpci/vpci.c
index 8ff5169bdd18..904770628a2a 100644
--- a/xen/drivers/vpci/vpci.c
+++ b/xen/drivers/vpci/vpci.c
@@ -497,34 +497,40 @@ int vpci_add_register_mask(struct vpci *vpci, vpci_read_t *read_handler,
     return 0;
 }
 
-int vpci_remove_register(struct vpci *vpci, unsigned int offset,
-                         unsigned int size)
+int vpci_remove_registers(struct vpci *vpci, unsigned int start,
+                          unsigned int size)
 {
-    const struct vpci_register r = { .offset = offset, .size = size };
     struct vpci_register *rm;
+    unsigned int end = start + size;
 
     spin_lock(&vpci->lock);
     list_for_each_entry ( rm, &vpci->handlers, node )
     {
-        int cmp = vpci_register_cmp(&r, rm);
-
-        /*
-         * NB: do not use a switch so that we can use break to
-         * get out of the list loop earlier if required.
-         */
-        if ( !cmp && rm->offset == offset && rm->size == size )
+        /* Remove rm if rm is inside the range. */
+        if ( rm->offset >= start && rm->offset + rm->size <= end )
         {
+            struct vpci_register *prev =
+                list_entry(rm->node.prev, struct vpci_register, node);
+
             list_del(&rm->node);
-            spin_unlock(&vpci->lock);
             xfree(rm);
-            return 0;
+            rm = prev;
+            continue;
         }
-        if ( cmp <= 0 )
+
+        /* Return error if registers overlap but not inside. */
+        if ( rm->offset + rm->size > start && rm->offset < end )
+        {
+            spin_unlock(&vpci->lock);
+            return -EINVAL;
+        }
+
+        if ( start < rm->offset )
             break;
     }
     spin_unlock(&vpci->lock);
 
-    return -ENOENT;
+    return 0;
 }
 
 /* Wrappers for performing reads/writes to the underlying hardware. */
diff --git a/xen/include/xen/vpci.h b/xen/include/xen/vpci.h
index 8e815b418b7d..4e226331fdf3 100644
--- a/xen/include/xen/vpci.h
+++ b/xen/include/xen/vpci.h
@@ -69,8 +69,8 @@ static inline int __must_check vpci_add_register(struct vpci *vpci,
                                   size, data, 0, 0, 0, 0);
 }
 
-int __must_check vpci_remove_register(struct vpci *vpci, unsigned int offset,
-                                      unsigned int size);
+int vpci_remove_registers(struct vpci *vpci, unsigned int start,
+                          unsigned int size);
 
 /* Generic read/write handlers for the PCI config space. */
 uint32_t vpci_read(pci_sbdf_t sbdf, unsigned int reg, unsigned int size);
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Apr 21 06:19:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 21 Apr 2025 06:19:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.960834.1352489 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6kVD-0005B6-B1; Mon, 21 Apr 2025 06:19:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 960834.1352489; Mon, 21 Apr 2025 06:19: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 1u6kVD-00059m-2u; Mon, 21 Apr 2025 06:19:35 +0000
Received: by outflank-mailman (input) for mailman id 960834;
 Mon, 21 Apr 2025 06:19: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=rBGn=XH=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1u6kVC-00057v-Bt
 for xen-devel@lists.xenproject.org; Mon, 21 Apr 2025 06:19:34 +0000
Received: from NAM12-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam12on2062a.outbound.protection.outlook.com
 [2a01:111:f403:2417::62a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 962f3590-1e78-11f0-9eb0-5ba50f476ded;
 Mon, 21 Apr 2025 08:19:32 +0200 (CEST)
Received: from SJ0PR05CA0026.namprd05.prod.outlook.com (2603:10b6:a03:33b::31)
 by MN2PR12MB4360.namprd12.prod.outlook.com (2603:10b6:208:266::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.35; Mon, 21 Apr
 2025 06:19:27 +0000
Received: from SJ1PEPF000026C8.namprd04.prod.outlook.com
 (2603:10b6:a03:33b:cafe::83) by SJ0PR05CA0026.outlook.office365.com
 (2603:10b6:a03:33b::31) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.23 via Frontend Transport; Mon,
 21 Apr 2025 06:19:26 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ1PEPF000026C8.mail.protection.outlook.com (10.167.244.105) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Mon, 21 Apr 2025 06:19:25 +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; Mon, 21 Apr
 2025 01:19:22 -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: 962f3590-1e78-11f0-9eb0-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=MX9dQKwPR3BHsG0Ze7MU7iXlZsiAglZXetkZek7JAbIs/qNNvhqCBOfTQMmhZPqWa6CG2mjhCB48CdLF5MtpktpXPUAXtDlRuqU11Uheh4v6ebXvvLIAp4C1B6VaG5v2NU0LIaM951iXnTW+1ATNVo3RlIbM9SOKMuxIB5F1uEjf1rlSWx4qmX8/8RGz1+55JuWXYJIlQyseiFvebaFciMtrshb70YblNLSE+2U5OE2IP47sBs/dTdUXCCrz2RA95YqJg4Jj+ynjB4WhAWT0CL0g5pUUhAtSEmwZMwgQYBpz3ilwMgZ/k+4dk9AqpgF3TBkXK1j1ZGRcL0tQQCu2lw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=qOOZ7/CpX+4Q9buwrhLclR4GH2J6CoZoWc+RjO8QAwU=;
 b=wpZEx38frry+EOwd7fZM7aZjupoR+gq1Efltt2M87ccp7umuAYAyntZrAPqzmtO5Yn0x/T58sX52IF1volDr4VUh0rgycBh03XTG3VmEWMNp74Rw2bTt8Goap46lbVZVULnajrN/pbhz+MYCxfisPNT1T04cvw962S6LYkbok+qUwuaYuNBbnHLbuBaM9B+qWu+uLYc/7e6Vto6hXUrBUjUrWZDTc7Cu+9QqVII4g51VFMyTiBRA4ZA8Jpfvyj3NEM6ywPST2ogsPSVRqUGqfP9uqkocQFVqnVTzg7WslSKm9FNA2h2RERQl74TxaUv6d6An+tG3Lc8/N4P7Afk5sA==
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=qOOZ7/CpX+4Q9buwrhLclR4GH2J6CoZoWc+RjO8QAwU=;
 b=OoLxSr1kcKK4Za43AoWSsgcdWGeWypXzvAxDJtgaR3SWYS2Ybee4JgYpesynZRz2poyqwFP13M8pqpwKD7jG0OE5YxhNdYPo5waNiV9thVByMisyu4iqcPKn3INIhpIzCKJlqAL/w3aACQsgKffxyYrwnwfV9y+pK60KKixQ9k4=
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: Huang Rui <ray.huang@amd.com>, Jiqian Chen <Jiqian.Chen@amd.com>, "Andrew
 Cooper" <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, "Stefano
 Stabellini" <sstabellini@kernel.org>
Subject: [PATCH v3 02/11] driver/pci: Get next capability without passing caps
Date: Mon, 21 Apr 2025 14:18:54 +0800
Message-ID: <20250421061903.1542652-3-Jiqian.Chen@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250421061903.1542652-1-Jiqian.Chen@amd.com>
References: <20250421061903.1542652-1-Jiqian.Chen@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: SJ1PEPF000026C8:EE_|MN2PR12MB4360:EE_
X-MS-Office365-Filtering-Correlation-Id: 5e73a68d-a281-4653-b4f2-08dd809c774e
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?cUlVVlZVVFdtdGVyTVR5L3dUN2RJSDRYZDUzb09NK0NibEVhY1htRTdzUnQ1?=
 =?utf-8?B?VlN5L3MyRUpsUjBRQ3dZTXRVOXEvS1hUQlRaV0kzaUVwQkU2eGdScVI2T05q?=
 =?utf-8?B?bjJHbjRXWnJwSnZMSFpjYVo0bHJoUGx0azJHTXp3dEF0ZjQ2MDg5UWpLdUpE?=
 =?utf-8?B?VlAyU3o1UXFwdkVhZ2NYSXkrY2RScFAvVHpoR1Jtd252clltcStwVytYSzFh?=
 =?utf-8?B?MVFHcStTdk1XU3pQZFVxWjRzUVBQS2p2MTBIci8vT3lIc05mbk1nSGZscFZz?=
 =?utf-8?B?VUJKTE42L0wrR3F1OTFiVk1TZ1Z5dTdJV3NKZUIyd3NYdE9iVW90L2FLN0xu?=
 =?utf-8?B?U2JVbmVKNnFUYm9sTWtsMmNOUjM5MW9FL3ZTTlRDNmhkeWlqKy9RQkZxVjNk?=
 =?utf-8?B?U3BmeTFBVWFpS0xkT2RjMURJODRUa3QzeExsdVpKZW1tRUZ1TkZzUFFrL0Zv?=
 =?utf-8?B?TzFHVTBnbURDNm5kZ0t4a3hjNkxkSCtVYnpOUnFnZEtGVkhHSDRvdFNIV2Fk?=
 =?utf-8?B?d1FIZnBJOHhveUk0d3JIeU5WY3F5UGtxNjJSSXZjUXMyVGk3QW9EMGVUTVJl?=
 =?utf-8?B?a3l0aHNvNERtbENMR2hyNzd3b2VSem56TEpWbFNtL2JFbDBBamp4MXNIcDJT?=
 =?utf-8?B?UFpoSituQ3A3dW44cWxWempybDIvdEJJU2d5ZklyVXpkTE5vNzlSZTlHSWU1?=
 =?utf-8?B?RC94ZlNhNmNuUDZxTE8wNUlGWXZQdVoyYTJHUUxGaFhvbzYyUnl0NTJvYmFT?=
 =?utf-8?B?cE15NW1hZGRpOWR2Z1ZIazhlM2tPSHZtYzRtMG1DTEdDOUR0bXd5K1owMTlR?=
 =?utf-8?B?V2srQmp0ajhZRzJqQnp4eDQrL1o3WnNsZHNPNmVtMnEySlhQbnV5V2RyeVVt?=
 =?utf-8?B?SHQ4VU1NbThSc0MwVW1Eczc1YXZMOVZ0NWFGVzRSYTVLak4vMjBjdit6TVV5?=
 =?utf-8?B?bkN2RzBPRmdTcXpVU3NET014ZWV4SXkzTGF1bFA4L3JZN3QxWVpDUkoxWDgw?=
 =?utf-8?B?dC9YZ09FcjRvWVFUMkZLQm4wL2hieExXektZVFZub1REZXRScjRNdFpwc0pm?=
 =?utf-8?B?Ymo1RmZlZXJIOGJRZmhUV0hkQkl5U251SDA3S1dJeXowOHVxK0JDejZ2bEE5?=
 =?utf-8?B?T0VpM3h2VDI1V0ZrLzFYY2JDTGJheEIxbDliYTVmRHhqSFcwaGxFNTJCQ0Uw?=
 =?utf-8?B?YnZMODBuNkV3ajUyY094cXBYaWExSmlpQlVZUlZvcTZzZTBRY0hTNWZIMzFt?=
 =?utf-8?B?cXB3Y3dCanBTaERUSUZEUE9HRTQ3SHZmKzZwYWd1d294WDVkc1FoR0tSMm1u?=
 =?utf-8?B?dm9FUFphWlRFMURoWWRQbjl2TlIrbkd0TUZoKzkxczhEQWZNbTlpYVYxakxR?=
 =?utf-8?B?YjFZQ2hVb1BJVDVUbHRSZk40SWIvUjdSYmtKS2pLUERGaThUYU91cFpVaTJW?=
 =?utf-8?B?Ni9vdm4yM2M0M0J5bGZjZXowdXgvVkxGNWIwT1JiazdLUU51Tmk2eW1ZTkRt?=
 =?utf-8?B?YUNlMlVwa3dFZ3VCaElVSjZRNWFuMFhkMVVhemJBTTZWUUhXRFc0eUhudEg0?=
 =?utf-8?B?MXBZSlNEQ20zZ0VZbklRcUJKNEF4R1RpZmU3dU5nQnZqMmhoQkMvbmZrYkJN?=
 =?utf-8?B?dFk1WmRVR2pKVlo5VnVpSEFLZDRMSEVFbFZ4Rzg2NGNxYWVINUFBRThGSWZX?=
 =?utf-8?B?czhmeERZankvWkE2YlZieGt3S1E3T3Y2V3dYeUZqN2NWaGhsTWNqN1ArV2ph?=
 =?utf-8?B?T0YwU05MVW4rNkdBb2Z1U0RMYnVobENRTjl2MjJkYWtYY0paSFU5anh1UDdz?=
 =?utf-8?B?bjZndHhsVXpsYUtxWms4OUt3TjV4QjIwcUg4VmpDU0FiMG9JV2EvTlJVQk5R?=
 =?utf-8?B?TDhOdVpWbW5COXJkS0dqQ3k4bkkwaTJFbXhzNVRVYitYdUM5Y3Q2a0poMm9F?=
 =?utf-8?B?TnNSeGxDdUltZXkxM0M5d3JOOWdwQjdIQ2VOS0dCbVdFNVRnSDh0ek5LNGN1?=
 =?utf-8?B?MjZVVjNYUFd6cHNZanQzbkRCQkNTN1VUbVVOSzVOMEREZDVUNkprR0ZGU25L?=
 =?utf-8?Q?0IAdnZ?=
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: 21 Apr 2025 06:19:25.9971
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 5e73a68d-a281-4653-b4f2-08dd809c774e
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:
	SJ1PEPF000026C8.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4360

Modify function pci_find_next_cap_ttl to support returning position
of next capability when size "n" is zero.

That can help caller to get next capability offset if caller just
has a information of current capability offset.

That will be used in a follow-on change.

Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
---
cc: Andrew Cooper <andrew.cooper3@citrix.com>
cc: Anthony PERARD <anthony.perard@vates.tech>
cc: Michal Orzel <michal.orzel@amd.com>
cc: Jan Beulich <jbeulich@suse.com>
cc: Julien Grall <julien@xen.org>
cc: "Roger Pau Monné" <roger.pau@citrix.com>
cc: Stefano Stabellini <sstabellini@kernel.org>
---
v2->v3 changes:
* Only check if n == 0 and add assertion for array "caps".
* Not to change pci_find_next_cap_ttl definition.

v1->v2 changes:
new patch.

Best regards,
Jiqian Chen.
---
 xen/drivers/pci/pci.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/xen/drivers/pci/pci.c b/xen/drivers/pci/pci.c
index edf5b9f7ae9f..804f4e1e6066 100644
--- a/xen/drivers/pci/pci.c
+++ b/xen/drivers/pci/pci.c
@@ -55,6 +55,9 @@ unsigned int pci_find_next_cap_ttl(pci_sbdf_t sbdf, unsigned int pos,
 
         if ( id == 0xff )
             break;
+        if ( n == 0 )
+            return pos;
+        ASSERT(caps);
         for ( i = 0; i < n; i++ )
         {
             if ( id == caps[i] )
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Apr 21 06:19:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 21 Apr 2025 06:19:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.960846.1352573 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6kVP-0007Rt-Uk; Mon, 21 Apr 2025 06:19:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 960846.1352573; Mon, 21 Apr 2025 06:19:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6kVP-0007RV-Pw; Mon, 21 Apr 2025 06:19:47 +0000
Received: by outflank-mailman (input) for mailman id 960846;
 Mon, 21 Apr 2025 06:19:46 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=rBGn=XH=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1u6kVO-00057v-Mj
 for xen-devel@lists.xenproject.org; Mon, 21 Apr 2025 06:19:46 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on20608.outbound.protection.outlook.com
 [2a01:111:f403:2415::608])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9e32d6e1-1e78-11f0-9eb0-5ba50f476ded;
 Mon, 21 Apr 2025 08:19:46 +0200 (CEST)
Received: from MW4PR04CA0377.namprd04.prod.outlook.com (2603:10b6:303:81::22)
 by BN3PR12MB9569.namprd12.prod.outlook.com (2603:10b6:408:2ca::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.35; Mon, 21 Apr
 2025 06:19:42 +0000
Received: from SJ1PEPF000026C5.namprd04.prod.outlook.com
 (2603:10b6:303:81:cafe::1b) by MW4PR04CA0377.outlook.office365.com
 (2603:10b6:303:81::22) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.34 via Frontend Transport; Mon,
 21 Apr 2025 06:19:41 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ1PEPF000026C5.mail.protection.outlook.com (10.167.244.102) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Mon, 21 Apr 2025 06:19:41 +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; Mon, 21 Apr
 2025 01:19:38 -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: 9e32d6e1-1e78-11f0-9eb0-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=b3GbvFWV3T9sbOndCdAGYgCAvTEFxxs4bZGA9p8oLrb+l79UO7dEMS0mmA8qHpcMdMDIGsxlqfNWnhXiGDh1sSDiYCSAvwdcEtI6392rA6QK+MGr+5qVrjvyPTFBkYSxBfrF+inNKEWuCulIlDSXJ557/x7fsrJAb7G4Hb3OeCl0USt2Wyj1sNr9eL+YSplQpFMU7dB4oCQnSGSJ255lvTJ1JPPRGzzHzbAEWeOKwy/M1kg1d7fcELlBG7g08ju1UvR/6qwp7SPoMDLS4LfKAPWVzrT3lACZJLjbl8Uou9mmYfYh8Tw2PN5m0g3SmesvdrT5ZgqDH7p3Z60QpuiDSA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ZbhJV+X4QM6DUMRC6Mk8VHfG8AJ7SeVNQi3bNQIZl1M=;
 b=VzCtQcUJ0o37Hg9XcIRfv5HJokUGDAABEhA3S0FqaE3KkJnAVycg0t/k9E4PG6Q9HP1/xJj40VTZ9xas6NPmbDJ+jXncGyMfT+hOzcESX+40Hc+vhc6I64JPZXsG31lg/xI7yjSTXkhAQQbyukxdrTqQGE9TC8keYIk2fLXr67w2xfDn8GI//zqFSkxjk34iQb2fRpAJ/D+Wh3N2GrV+WwqAJfrJrWhndOYalWvL46s/iPE/hM7P90XFATSIRXOdd+Tu5Nv8ZYesqwpvNDzd4JuU9YI2kgVE8OGITN/bhby1Ql5w/p/U5Zu5lyJnEbHip04/WWmp+QxWcginRXGhyA==
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=ZbhJV+X4QM6DUMRC6Mk8VHfG8AJ7SeVNQi3bNQIZl1M=;
 b=KcrUkQle6LayMDuScY75fn9wkM3Xm9BrHnCce/3h2W64Yg77IZ2/QER6Oi0q0LT/nvVNRNUmP7OnpFLPbIv9dB5uLQYFd3Ib7JLE/iODBM58VhCuZ28HLdtKynJABkxtxK4y7l+F7XJQtUuu1UstSalMtokXHAhJ5SRhaA/hw4E=
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: Huang Rui <ray.huang@amd.com>, Jiqian Chen <Jiqian.Chen@amd.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v3 10/11] vpci/msi: Free MSI resources when init_msi() fails
Date: Mon, 21 Apr 2025 14:19:02 +0800
Message-ID: <20250421061903.1542652-11-Jiqian.Chen@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250421061903.1542652-1-Jiqian.Chen@amd.com>
References: <20250421061903.1542652-1-Jiqian.Chen@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: SJ1PEPF000026C5:EE_|BN3PR12MB9569:EE_
X-MS-Office365-Filtering-Correlation-Id: aa267d89-12fd-4895-a6ff-08dd809c8054
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?bzlzQVJ4VlA1eTZ0dXpRSVBZM1ovSE1aODU4N2JuNEdXVkNLQmxhUGtvQnRQ?=
 =?utf-8?B?Zk43aWF4U0t5VStWV3lPckJzVlI2dnhUUHc3NzBPbjVwSVBCMUVRZWVVNG9w?=
 =?utf-8?B?dmttbCswKzZTU0ZreTRBZTVhV2RRWGU0bzc4VTEzQ2t4VGlBV2xhZlBHUWV3?=
 =?utf-8?B?ZTZ1YllCbXM0SGEveDRKczMwRWNaRFF1Sm1pakZFdnhKNzEvOEtGQ29sZmxI?=
 =?utf-8?B?UXJ6Nnd0aGxlQjVnaDBITVhKbm5xbDduVk1lR1JmYkptN1RHRjkwZStJUmM0?=
 =?utf-8?B?T0RkcVpoZFY1dEdtRngrSzYxaG5CUERqdnNUOG1EdFNTcXh4alRXWHR6UmVM?=
 =?utf-8?B?M2dZdzN0dFJzNHVkWE9TZVB4N1dCSGExUjlPVy8vMTJoV01FbEp6U0dFc1Er?=
 =?utf-8?B?THRxWHFKcjBVNmw5dmY4NkZBSkg5cWNtQWtCR0pXNVN2d0RteVRMY1ZOSmpW?=
 =?utf-8?B?SmNrMXF3b0FJRjRtWWcxZDVLYWMzOUFYT2IrUytldWV3dnJBYXRpUFBSdkNz?=
 =?utf-8?B?bi90T25UQXBtcldWMXdIK3RaeUsrQ2gzcmJkcWJXTTJTY2lIYklYWEc4MDJa?=
 =?utf-8?B?VEVEaVJGUXRFMzkxcVJPZlFQbUsvREtIb3lUMEE4S25sbmVCbG5uNVdNSDZw?=
 =?utf-8?B?eUszaHkwY1pwcEJOOUJUM3Rhd1R6MDlJSm91NG1ZdzRIS09kZk1GZlRvdmhy?=
 =?utf-8?B?YW5pNllxdkxiczhiK0ZvSWlJZjdpMUduTzhXMDlmT0x1ZlFySElvVkpkMTlC?=
 =?utf-8?B?Mm1VOHh2UVJOdzAxdDhGbEJkU3lVT1ZYYWQ1VnZTcU9rZXBzcGNSdGgyMmc0?=
 =?utf-8?B?OFB4alBMeWN3WVBJZDd4K0pjL1puYmpXYVBOUm5QRGVTdC95NWhqVGxQUGZv?=
 =?utf-8?B?ckJCajVXNkl2RlJnUWliejhyNFF2MTNHeUVML0pZaUhCRURNOVhQdllhSFBN?=
 =?utf-8?B?c3JReTJIR1NVSG40TjBuRjV1SjhRNWlrcFc4WGhzWUxNUXZNVjV4LzRHTWF4?=
 =?utf-8?B?Z0xudzVMbjNrb3kwZHg2T0g2dDZUcHdGZi91N0FSMkxXMnpTZG0wdUdhbFNL?=
 =?utf-8?B?TU1HeUw2VmRtWWJDKzdGZGFmMzgzYnVIY3BDUG55VWtBMjdvcGdqVmN1dlFT?=
 =?utf-8?B?Q3QxbmNxdkpaWkpTWERyaXdTM3ZQcnppVjNyWkVHKzFkV0JtcXVRcXEwNG1m?=
 =?utf-8?B?bWN5OU50Ky9zcG1lekVWM3cwTmRVSjRyMlN5cmVxT3Z5eFdtOHZCU2FxWHdV?=
 =?utf-8?B?WGpkTkJlTTVCbWJmV0wrQzAxTHloQWpMNUVEcXI0dnlTZzQ4Nzg4KytDeDBr?=
 =?utf-8?B?K3NJSFR4WEY5MGpxejNXNTR5SURVWXF5dTJ6SnJTRW4rTUVwNGNnL3pXdW05?=
 =?utf-8?B?MDZ0KzJ5KzZ5ejFTNlFKYmg0UVNXZmcxeDBJanl4bzF6azM2ajlrbitqemRB?=
 =?utf-8?B?Vk90QjNTK2I4eXU4S2ovYzZNNnBQY0dXeTdOeldRVUZuU3dYd0llb2pKdzRm?=
 =?utf-8?B?T0RrL0JQVE1zcUdBT1lCb3F3MmtZSnBCSGo2NjVMYkZ6TFhIak16STZESS9J?=
 =?utf-8?B?WVo0eGpKUWdpblZwQVRjVCtSbi9MbHEvcjU2R1lEUXMrSHNLODBISVoxYktG?=
 =?utf-8?B?MWNUVlBjRytmbG5MYnlZV2EvNUYzU1lwbkRtMmJTbUkwRGxzd0RJWkNLdW5m?=
 =?utf-8?B?aTdRL0JERHZYUzJENmtnbEtGYkxhZlhRWXhIK3IwZlY4TlpEZ2x0d0hTSHJx?=
 =?utf-8?B?Z1ZmbHdNUXoya3N2NFZ2V05nYWhaWUdycUVEa0RyazhEZ3hJOUhKT21sRlc1?=
 =?utf-8?B?WEhIQXR6OUZUMmdUdk1KVEN5NTZjSWtvbFhpUzgxN2lFTWl5SmVzL21pWm0v?=
 =?utf-8?B?aFhTSERUWUxpVVNGTjZHcm5SRWNZWnZXcXE5aXN3QnRZdndFMDNkYTRVRDJ2?=
 =?utf-8?B?N1VqTk5zRklQdm5FYVdYWE5hdWw0MS9nNkFoNzFNTWl0a29DNDZ6MUFnSkFR?=
 =?utf-8?B?R1ZhVUR6RUo2NUs5OHVVQ2I3Q2hRdDVPNnhSMFAxRjNLWFp3Tm5MbzI5Sjg0?=
 =?utf-8?Q?c4hACN?=
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: 21 Apr 2025 06:19:41.1356
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: aa267d89-12fd-4895-a6ff-08dd809c8054
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:
	SJ1PEPF000026C5.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN3PR12MB9569

When init_msi() fails, the previous new changes will hide MSI
capability, it can't rely on vpci_deassign_device() to remove
all MSI related resources anymore, those resources must be
cleaned up in failure path of init_msi.

To do that, add a new function to free MSI resources.

Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
---
cc: "Roger Pau Monné" <roger.pau@citrix.com>
---
v2->v3 changes:
* Remove all fail path, and use fini_msi() hook instead.
* Change the method to calculating the size of msi registers.

v1->v2 changes:
* Added a new function fini_msi to free all MSI resources instead of using an array to record registered registers.

Best regards,
Jiqian Chen.
---
 xen/drivers/vpci/msi.c | 28 +++++++++++++++++++++++++++-
 1 file changed, 27 insertions(+), 1 deletion(-)

diff --git a/xen/drivers/vpci/msi.c b/xen/drivers/vpci/msi.c
index ea7dc0c060ea..18b06b789827 100644
--- a/xen/drivers/vpci/msi.c
+++ b/xen/drivers/vpci/msi.c
@@ -193,6 +193,32 @@ static void cf_check mask_write(
     msi->mask = val;
 }
 
+static void fini_msi(struct pci_dev *pdev)
+{
+    unsigned int end, size;
+    struct vpci *vpci = pdev->vpci;
+    const unsigned int msi_pos = pdev->msi_pos;
+
+    if ( !msi_pos || !vpci->msi )
+        return;
+
+    if ( vpci->msi->masking )
+        end = msi_pending_bits_reg(msi_pos, vpci->msi->address64);
+    else
+        end = msi_mask_bits_reg(msi_pos, vpci->msi->address64) - 2;
+
+    size = end - msi_control_reg(msi_pos);
+
+    /*
+     * Remove all possible registered registers except capability ID
+     * register if guest and next capability pointer register, which
+     * will be removed in mask function.
+     */
+    vpci_remove_registers(vpci, msi_control_reg(msi_pos), size);
+    xfree(vpci->msi);
+    vpci->msi = NULL;
+}
+
 static int cf_check init_msi(struct pci_dev *pdev)
 {
     unsigned int pos = pdev->msi_pos;
@@ -270,7 +296,7 @@ static int cf_check init_msi(struct pci_dev *pdev)
 
     return 0;
 }
-REGISTER_VPCI_LEGACY_CAP(PCI_CAP_ID_MSI, init_msi, NULL);
+REGISTER_VPCI_LEGACY_CAP(PCI_CAP_ID_MSI, init_msi, fini_msi);
 
 void vpci_dump_msi(void)
 {
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Apr 21 06:19:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 21 Apr 2025 06:19:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.960847.1352582 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6kVR-0007iC-CE; Mon, 21 Apr 2025 06:19:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 960847.1352582; Mon, 21 Apr 2025 06:19:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6kVR-0007hs-52; Mon, 21 Apr 2025 06:19:49 +0000
Received: by outflank-mailman (input) for mailman id 960847;
 Mon, 21 Apr 2025 06:19: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=rBGn=XH=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1u6kVP-00057v-Es
 for xen-devel@lists.xenproject.org; Mon, 21 Apr 2025 06:19:47 +0000
Received: from NAM11-CO1-obe.outbound.protection.outlook.com
 (mail-co1nam11on2062a.outbound.protection.outlook.com
 [2a01:111:f403:2416::62a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9e76033c-1e78-11f0-9eb0-5ba50f476ded;
 Mon, 21 Apr 2025 08:19:46 +0200 (CEST)
Received: from MW4PR04CA0378.namprd04.prod.outlook.com (2603:10b6:303:81::23)
 by MN2PR12MB4208.namprd12.prod.outlook.com (2603:10b6:208:1d0::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.35; Mon, 21 Apr
 2025 06:19:40 +0000
Received: from SJ1PEPF000026C5.namprd04.prod.outlook.com
 (2603:10b6:303:81:cafe::e9) by MW4PR04CA0378.outlook.office365.com
 (2603:10b6:303:81::23) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.34 via Frontend Transport; Mon,
 21 Apr 2025 06:19:40 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ1PEPF000026C5.mail.protection.outlook.com (10.167.244.102) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Mon, 21 Apr 2025 06:19:39 +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; Mon, 21 Apr
 2025 01:19:36 -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: 9e76033c-1e78-11f0-9eb0-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=qPZf8WaCgygJSIKkYILIUUN3/zLTO7izle7oAocKxQPCvzJYy3uTAXuf7zhX3lIajufnx5wTqH4IRhdJ2jG3A+SWIZAJARDTKwoitHuXi58n2xosT1hIZsG2Qdy0T/g5YrrFArA0qSNw6EqgrkdIDxWLW2K2YToS8NBTMzzI/dqhmACXlD7XA/F8Taa/iC7A/r4RbqVyUtA9JwgXbNSOg4D+um+QyE0+65Qt76Znp0e0X/SaPF6s5qReDZQGlWbkwIqzb2DafCUBNDB8br3SUJMfS6GhQO9MpPNH25IUFREwjGYgMrltnf87hkNxCoOAc7P/9gYnaqvBqJuxPBhf6A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=vEn+XTSOOgAgdQZbKXHyAs59sfmZHF4X6iJ2+C/9uRw=;
 b=YfIn0wk53p7LP0v7CP2U4oH0AatFmSccGywlwIAi7G9itSN2A8SBjZd4R27xGkJJDl27/Zt2F9n5fxAGEO/DPPnRKzVIFdmgEGnVBw2xEGadGRdR/8YBDb4FPwxtoOJAV4LEQGkae4+r5Jw1SZOea8Qtq3lG/xsKbfOtao19lPGxx9e0+KFxfgfCPQCMR14xjWRdBzGSDXyQ5+aNTjCjXIdw3dcx68wt3uIuyjO6lRdd0Dlk2nvqblGLnXI9rG2LwQh9RLYon0+G73dXKjmV0bfGi5CfpeqPVY9Q6ZqtQJA1N4b5I31U+w68Y6TDgJG0FmHZrNy2xYjrp8Kids3A3w==
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=vEn+XTSOOgAgdQZbKXHyAs59sfmZHF4X6iJ2+C/9uRw=;
 b=2FfSzyIkhc9udy+wxrSN7B+wKP4diC4OzPq+rSciUXEYd2/Gqn5bhy/2u+jyDghPdwTZOLu5xvqN0v0mRH6TEgNuc1aE2TUpYD0mH/SEeinKSc5adDCxX9qt8BQODqyu8xTNNUz+zWoyO9AEAWYAaKfPqo5F0rkjCh6rJak/QIU=
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: Huang Rui <ray.huang@amd.com>, Jiqian Chen <Jiqian.Chen@amd.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v3 09/11] vpci/rebar: Remove registers when init_rebar() fails
Date: Mon, 21 Apr 2025 14:19:01 +0800
Message-ID: <20250421061903.1542652-10-Jiqian.Chen@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250421061903.1542652-1-Jiqian.Chen@amd.com>
References: <20250421061903.1542652-1-Jiqian.Chen@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: SJ1PEPF000026C5:EE_|MN2PR12MB4208:EE_
X-MS-Office365-Filtering-Correlation-Id: 0d26c478-e605-442c-21e4-08dd809c7f47
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?a3oycDVweE8xL1hGQm5XVGQyVi9OanZDTXpWU3FMUVpxdTlRWlROQlVyc0dB?=
 =?utf-8?B?T2xmQUl6VUR6WXVVcmdzMHA2d2gwV1VrRjJyZ2hEZzRrVmsvV0E4YTFGTDJw?=
 =?utf-8?B?K05XNXJ4eHN1UHJIejhJT3RvanpiVHhTalpubDM3SWs5L09QbmRRNVo4bkc2?=
 =?utf-8?B?NFlxK1d1ZlphODFsR0tSSXhEMEJKeWRxTU9JQlA0Z1A3M3J4YkEzNk1aYmNW?=
 =?utf-8?B?Tld4SnorNlU2dSt1bGY1N29BMmlhVWw2OXhCNlltWkNRSCtqQ20rcmVVYTFq?=
 =?utf-8?B?bUMrM2YyYzh4aUQwRVFUUExZMXlxTktEYTVta0tKc2o5dmpCT2d1VXk1d01i?=
 =?utf-8?B?OUQ2aytQYnRNb2w1U3F1Qnl1dnVmNkNJUHo2My9IRVVBU0kvdTNJdzh0QUVn?=
 =?utf-8?B?Rk0vV2duNlFSS3h4ZmxmNW1TVmduSWdlQmwzV0c3KzNIVUdQNitZNHF6em8y?=
 =?utf-8?B?ejZQMnJBNXo3N3lwdUNnTkNDN3VyOTNwUE4vY2dva2ZCVFZWalArcFFJQnJH?=
 =?utf-8?B?STJZeDZBMnJ3RWdyZzN6QXRGN2hlMkdYak00ZFNlUTJRcElmMDlwQjhHYUdT?=
 =?utf-8?B?bXZvbTdjZGhtc0hQMjFjTXY3UWxHNWhHV2FIcDd2cWJvUDJxZVg3Nmk3T28y?=
 =?utf-8?B?WGsyT1RHK0l3aXMrcUh6UkpPOVFHOFdDOGJUMHpsWlFZaTJ3WXRxWjIvSFR3?=
 =?utf-8?B?L3ZkVDRKT2VYSVYyMU5IVE1Bci9QcHlSNkRPR2l0V1VGaEI2VnoxWitIWGt6?=
 =?utf-8?B?YnJTOWVsaWhDeG5uS3ZsQyt4RVM4bGdTVXZSMkp5RnVUQ1VKcVNmZG5jbURh?=
 =?utf-8?B?YlQwN1VDVnFOamp5Vi9qbHhqQjVPcmVKRVJsTCtWY21mc0xOb1ZjUG1WMVlY?=
 =?utf-8?B?TVo3UUFySlEyMEg3RTlNMFMxeFprbmFTYXlVSExVaFloTDQ5Ri95M3RaWndR?=
 =?utf-8?B?QmlFOExDT25QL25mMFZpdkZNdzJPaVRYV1ZLZkwzSzJsNEo1emdiWjhKb0Ry?=
 =?utf-8?B?UjJOd3FyeEVidCtDUzNHOGFxYzhwZG5DVy81d0NKVURwSFpwcFZXNm1vTGQ1?=
 =?utf-8?B?elJQNElWZGRMOGFKb1lKTUdHUmpKU00rRG4zRm5HcW5PaTdyTElvZ0FvVnEx?=
 =?utf-8?B?bktiMVV4eGNOemdxZ2RUZHZrUmtld25QaUJIOHg5ODBDbWUxc1dkOGdKanRH?=
 =?utf-8?B?YUpTZDg4dVRWWUQzdXBSUUxWYXNLUmtLbjNKVldaQkFPTHhqaURVc1Fid2hY?=
 =?utf-8?B?R2p1THFrWm5oZWNxbVlhaVFSejg0TXBoUW1kSmNpZVVWeDdEU29FWXFqa2dP?=
 =?utf-8?B?Qk0zcGZqVFIxaWhCa3pCTlFjbmZDSER6QkUrQkR3eXZqbkVSc0hjWkRLMG45?=
 =?utf-8?B?R0xtVmdqS3Rzc2RlYWZraHF6MVh1OFo5TkRndGMzWVZHZWM4QnFoLytkWHpT?=
 =?utf-8?B?ZFkvRGlGb21OaWsvWGU5R01iMjhwREFYZXVjNnJucUdTMnJ3dllyU3JoSExy?=
 =?utf-8?B?bnlidEh1WFBVaW9ZTHdUaW9JdW9SbHlvNmxCTHZwYUV3UVI5ZEh2UjVvUENh?=
 =?utf-8?B?R2NWUWpnZWRtY0FWUzE1NjVSUm1rZHl4VHdlNGFRcjA0Ri9RODR2T0diWEgv?=
 =?utf-8?B?a0xvVHppUTVkRWdzd0JtOGxNZ2I5TklTRkd0VjZGRjdINWt3ZmhJR0hvTUYr?=
 =?utf-8?B?anZsakVRc215QkpOckg0TUZlRERCWnJ2KzYzVXRkaTJaZGs3djVjeXlHUmxz?=
 =?utf-8?B?S1pyc3B5eWxGVklUTURuRFdnejRGQUpYVFdzNkVxaC9HY3VRUEFBN2xWYVFB?=
 =?utf-8?B?eFlHWmRKODdjb3d4d3FLZnBFZWVFeDluRDE0TktyRVBVSTJQSjc2cVVGb0Fl?=
 =?utf-8?B?aS95bUVLbWlQZ0pBcXpYcDA1cHh4bkJlQUs1RUduTFVFOHJQRkVGQ0d1SnFL?=
 =?utf-8?B?TlpEQWtQSTdXQ0VuUEIrampUam0rQlRQWWRrYVZtZ2ZBZmZQR2hzNWhmL0l1?=
 =?utf-8?B?Wmx0L2NkYTFtV2thMU1rbElrWDR0NmJkNkE4RjhwaHFqZU5FR3BqYW44UlVH?=
 =?utf-8?Q?FZ/fSI?=
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: 21 Apr 2025 06:19:39.3693
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 0d26c478-e605-442c-21e4-08dd809c7f47
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:
	SJ1PEPF000026C5.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4208

When init_rebar() fails, the previous new changes will hide Rebar
capability, it can't rely on vpci_deassign_device() to remove all
Rebar related registers anymore, those registers must be removed
fini_rebar().

To do that, call vpci_remove_registers() to remove all possible
registered registers.

Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
---
cc: "Roger Pau Monné" <roger.pau@citrix.com>
---
v2->v3 changes:
* Use fini_rebar() to remove all register instead of in the failure path of init_rebar();

v1->v2 changes:
* Called vpci_remove_registers() to remove all possible registered registers instead of using a array to record all registered register.

Best regards,
Jiqian Chen.
---
 xen/drivers/vpci/rebar.c | 35 ++++++++++++++++++++++++-----------
 1 file changed, 24 insertions(+), 11 deletions(-)

diff --git a/xen/drivers/vpci/rebar.c b/xen/drivers/vpci/rebar.c
index 026f8f7972d9..325090afb0f8 100644
--- a/xen/drivers/vpci/rebar.c
+++ b/xen/drivers/vpci/rebar.c
@@ -49,6 +49,26 @@ static void cf_check rebar_ctrl_write(const struct pci_dev *pdev,
     bar->guest_addr = bar->addr;
 }
 
+static void fini_rebar(struct pci_dev *pdev)
+{
+    uint32_t ctrl;
+    unsigned int nbars;
+    unsigned int rebar_offset = pci_find_ext_capability(pdev->sbdf,
+                                                        PCI_EXT_CAP_ID_REBAR);
+
+    if ( !rebar_offset || !is_hardware_domain(pdev->domain) )
+        return;
+
+    ctrl = pci_conf_read32(pdev->sbdf, rebar_offset + PCI_REBAR_CTRL(0));
+    nbars = MASK_EXTR(ctrl, PCI_REBAR_CTRL_NBAR_MASK);
+    /*
+     * Remove all possible registered registers except header.
+     * Header register will be removed in mask function.
+     */
+    vpci_remove_registers(pdev->vpci, rebar_offset + PCI_REBAR_CAP(0),
+                          PCI_REBAR_CTRL(nbars - 1));
+}
+
 static int cf_check init_rebar(struct pci_dev *pdev)
 {
     uint32_t ctrl;
@@ -80,7 +100,7 @@ static int cf_check init_rebar(struct pci_dev *pdev)
         {
             printk(XENLOG_ERR "%pd %pp: too big BAR number %u in REBAR_CTRL\n",
                    pdev->domain, &pdev->sbdf, index);
-            continue;
+            return -EINVAL;
         }
 
         bar = &pdev->vpci->header.bars[index];
@@ -88,7 +108,7 @@ static int cf_check init_rebar(struct pci_dev *pdev)
         {
             printk(XENLOG_ERR "%pd %pp: BAR%u is not in memory space\n",
                    pdev->domain, &pdev->sbdf, index);
-            continue;
+            return -EINVAL;
         }
 
         rc = vpci_add_register(pdev->vpci, vpci_hw_read32, rebar_ctrl_write,
@@ -97,14 +117,7 @@ static int cf_check init_rebar(struct pci_dev *pdev)
         {
             printk(XENLOG_ERR "%pd %pp: BAR%u fail to add reg of REBAR_CTRL rc=%d\n",
                    pdev->domain, &pdev->sbdf, index, rc);
-            /*
-             * Ideally we would hide the ReBar capability on error, but code
-             * for doing so still needs to be written. Use continue instead
-             * to keep any already setup register hooks, as returning an
-             * error will cause the hardware domain to get unmediated access
-             * to all device registers.
-             */
-            continue;
+            return rc;
         }
 
         bar->resizable_sizes =
@@ -118,7 +131,7 @@ static int cf_check init_rebar(struct pci_dev *pdev)
 
     return 0;
 }
-REGISTER_VPCI_EXTENDED_CAP(PCI_EXT_CAP_ID_REBAR, init_rebar, NULL);
+REGISTER_VPCI_EXTENDED_CAP(PCI_EXT_CAP_ID_REBAR, init_rebar, fini_rebar);
 
 /*
  * Local variables:
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Apr 21 06:19:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 21 Apr 2025 06:19:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.960849.1352588 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6kVR-0007mv-TP; Mon, 21 Apr 2025 06:19:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 960849.1352588; Mon, 21 Apr 2025 06:19:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6kVR-0007l3-Gk; Mon, 21 Apr 2025 06:19:49 +0000
Received: by outflank-mailman (input) for mailman id 960849;
 Mon, 21 Apr 2025 06:19:48 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=rBGn=XH=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1u6kVQ-00057v-Rq
 for xen-devel@lists.xenproject.org; Mon, 21 Apr 2025 06:19:48 +0000
Received: from NAM10-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam10on2060f.outbound.protection.outlook.com
 [2a01:111:f403:2413::60f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9f9304f6-1e78-11f0-9eb0-5ba50f476ded;
 Mon, 21 Apr 2025 08:19:48 +0200 (CEST)
Received: from MW4PR04CA0386.namprd04.prod.outlook.com (2603:10b6:303:81::31)
 by SN7PR12MB6839.namprd12.prod.outlook.com (2603:10b6:806:265::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.31; Mon, 21 Apr
 2025 06:19:44 +0000
Received: from SJ1PEPF000026C5.namprd04.prod.outlook.com
 (2603:10b6:303:81:cafe::2d) by MW4PR04CA0386.outlook.office365.com
 (2603:10b6:303:81::31) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.35 via Frontend Transport; Mon,
 21 Apr 2025 06:19:43 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ1PEPF000026C5.mail.protection.outlook.com (10.167.244.102) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Mon, 21 Apr 2025 06:19:43 +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; Mon, 21 Apr
 2025 01:19:40 -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: 9f9304f6-1e78-11f0-9eb0-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=A/tnlSbusmgWhh1SHg1Ib4v7DTB74/8FhjbjZu25kKt+iiNctGfZKG+1oiTSO4f2o/fRZxIm4kv6/AA79jXQqn6zVEFXEHu3czFnxwA9kkn3g8HaYH84ReneGdoJOssXyHpnBDsVvsdEcZ2SyIBSC3OXsJD4OuTCFamUiuotJ1J0m+FVLEjMUb6YR6YvO0Ji94uaMYxcH68UlIV/vibwwC8hIVsocWQ80YEWzCz2jVQ53U+YMjKmgKmmAwQUG7OqkjXsEaos57bW804AzZ9+HbynKSxHvP4VyKXyzs0PC1p/xCuWJ1+6U0B20YA40SDSMeqmqwBzaLWq2NzbmxJtEg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=QxL1V2Itz6NoD7DRvN+OfCh1LknThOBHHwX8mxG5dWI=;
 b=v+fw5O0ly+TDb0jEyKNIfn7GI3fp74td4Nyk1At33M4QvvYCcRPdR0OKZtCRhF0wslTtTDjwPth/A0JoSMwjoUfMiyxxh3Ve6uEirBQelGZrwAwDC8QLevR7HArIN0IBYZssdNap6NxphFjJCnMit/KhJUyO9pgTN7+So+SyalPXk/DJxc12l03QdmzJ4GBooXDBQ553eC5D/B6I0IqqLYz6UnxuJTcCKfXq4iKsmULo54m3gsV+uWisxFmeH1hcgqS+6UxLWjykHcREvq5WwOVY762u8xdS80lMZhsR2JKMQfhjYqqhV+KL8aYwJQ9Vch5OO7VwrKMV9zCTXfDNQA==
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=QxL1V2Itz6NoD7DRvN+OfCh1LknThOBHHwX8mxG5dWI=;
 b=HKfuiDvf5oxhIBUs4XbhvMcf0mE4mmKfcTyOHSf/F8qTrG96JoRfwwWDvwnMVAWTz0X5afGBXwLfwjYnW3DxJqLikRoYHg+XPUXotOBvkbNl5N+MRj0WEELuzA+VjVd//p+ScAZSn96GnWSopbTAhnqJY3M9kNW0L04gC2cyvvs=
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: Huang Rui <ray.huang@amd.com>, Jiqian Chen <Jiqian.Chen@amd.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v3 11/11] vpci/msix: Add function to clean MSIX resources
Date: Mon, 21 Apr 2025 14:19:03 +0800
Message-ID: <20250421061903.1542652-12-Jiqian.Chen@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250421061903.1542652-1-Jiqian.Chen@amd.com>
References: <20250421061903.1542652-1-Jiqian.Chen@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: SJ1PEPF000026C5:EE_|SN7PR12MB6839:EE_
X-MS-Office365-Filtering-Correlation-Id: ee384c0c-4627-419a-521a-08dd809c81a7
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?S2NPcnB0QWZrbGFLNXQzeTcxOTdlNkI2dThEcm1qbE9BU1cyRG9USzRrblRy?=
 =?utf-8?B?bGNISnBMWEduN1FHa1BLUm8rdUlJVFB4dk5nVFNFZEpTZzVqa1pQUXNmQnZZ?=
 =?utf-8?B?dVptclpiQ2pKakVIZWVsUG54MGlBazY4T2hMMnhJS2pVSkt1Q3pmSWNGRWJX?=
 =?utf-8?B?RnF5QUp2aUNKUmE4cGVqU2g4TEdDa3ErbVlxY09seXBkcGxkUkN4dWt3ZXY1?=
 =?utf-8?B?VnpTMnlxSEc1YmpJQmNFVmR0VkswV05yRWs5R0k5aFNJV1hVdW5idXprNWtG?=
 =?utf-8?B?YWEwK0Fjb3M3TmU4WXBOaE9kTnBMOSsvQWlkY3c0U204NHRsL2pzMXdSUys2?=
 =?utf-8?B?RkdHaXN6SFlUc2xXNHlZblVFYUk1QW5HMzNtVE0zWldRajBUVnY0TmlRVzIy?=
 =?utf-8?B?dDU5eVA1QnBPUS9Odldkd1BmbTJDaDhxZWpHS0RNTzJEVUVFR2xBS0ZSbUNr?=
 =?utf-8?B?QzBjYTgxM0cvbnRrS3NoeEpCMFdld0ttajMyUWRuQVkvNVRCM0tNZ21TR1Ix?=
 =?utf-8?B?YUxSWUlRZmxpUzdxTHV2Y1BwWjNDd21PWkVwVjVDUFh6N1RJa3VzSmZ1MStu?=
 =?utf-8?B?aWdoOEs4ZHJLSEZWQlJ1cEpuYlZBQUpkMHVZZlhxeEUyUmZpWklMR2RLbUdM?=
 =?utf-8?B?NmNJdFZxbXl3bjlNSzh3a1lWa0UwcDNKMWpiL0FPU2lFRDVjSlVvZldHNkRa?=
 =?utf-8?B?MzlmNndScTQybWtIN01iZHkrVnZ1bXhRZ1NCMHRLZzdvZlFMUFhyTjVNRlZI?=
 =?utf-8?B?cnAxVkloQ2U3OUoxSzcxVitNNTBvd1Z1d2Q1b0lOdFU4TlJlNEVFNHlJS21o?=
 =?utf-8?B?ZmxDejVtd3lvTC9UelV6SDZycFRlRVhFd2o1ZE9hWmxOVFZWNDE5SEZ2c1V2?=
 =?utf-8?B?ZTkrNXBTUlRjVy90S0NMZUMzY1NJZUs0K1ExVS9IcmRuUkdaWVJTMGY0V0o3?=
 =?utf-8?B?SnRkbjhrb3hBeTRhWEJaMVNrNXZ4K1FNaXZtYTFSNUVNVnUxZjVQYVkvMWwz?=
 =?utf-8?B?MmwzVE9FaFlKMVZLazVBS08va0xjbTl4SVo1R280WWFRTHU1Y3FPVWxjaUR5?=
 =?utf-8?B?K21QejZtaEg4TERpZmxEK1ZFMHcvbjNHRW9WV2hyM1J3dHJnQTZwU3JFbGF0?=
 =?utf-8?B?S0ZUNUk1RGU2bUpnTUJ1dk1kbDFnN09tNFVSU1BDR2FNV1h1K0RFbVdsMTNS?=
 =?utf-8?B?TnBpdXNQVkFaVG55REFlVm5YaGZjOWlHNnd6M3BOZWM3a3NCOEtWOHpPYW5E?=
 =?utf-8?B?alh6YkhyOGh2VlgwS1hVaFFHZDB4LzVUN2lyM3gyODlqS1R5Ulg2VHhGNXgw?=
 =?utf-8?B?aTd0WWRHaXhpVU9oZWlsWkFiTDhTdE9hdXVRNnoxc2FySUY3eHhhZitOdEVj?=
 =?utf-8?B?S2o2dUhiV0tsK2tadHJ6L0RvcUJaSHVsY0lIN3NKSGZOU1dFek5WUW5NSEor?=
 =?utf-8?B?c0NQRUJuT25tNnZuYW9lWDB5Z0Z5L1VFVyt2NitwMUh4bFZhYy9nckE1S1Ex?=
 =?utf-8?B?aTFxeGFNMFNDZFB4RUp4ZFEzbnFIVHdjVnpLdDVvWHM3RjlvVFJjNXVESCtZ?=
 =?utf-8?B?Zzg3TkVQRjY2SWhiY2NudWpRTUtRQTYySGtBYms4Qjh1TkhaTGVnald1QUZY?=
 =?utf-8?B?L1BTb1ZPWWVheXZSVzBtZVNwQlhwRzJoU0JJQkFab00xNkUrUWVJSzc3NFUv?=
 =?utf-8?B?Ui9JanM0OWhRZjR0RFFiVC9BSmkwL1RTTVNyanpMblZpQm93ZUY0d2hDNUw3?=
 =?utf-8?B?ZzdsMDJZMXRNUnZRNGNrdFZ0VjEzSHNSZHBYSEg5Nzg5bzRYbndOamYxbmtK?=
 =?utf-8?B?RjBJNWFYbVJUeWwxV2ZLWEZtMlFINWlkQ1BSdUR0Qlh4LzExNjBVakdSQWhr?=
 =?utf-8?B?cXdXTjlnbEt2SUQ3cVVIYzRRWkl4Q01ldWFNOHdWVXdReWU0WkpueGxCcU1u?=
 =?utf-8?B?T3dlT0k0dnpEM0NxdFZMb3NXSDU3YzIzZGhXZDJ3dWYyMC9xL0xZNTk0TExj?=
 =?utf-8?B?QVhMSDdodndFbnRWRTM1TE5COUs2ZjFtOW96WXYrWHl2V0RCYUdybmI5U1pG?=
 =?utf-8?Q?keOb9w?=
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: 21 Apr 2025 06:19:43.3551
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: ee384c0c-4627-419a-521a-08dd809c81a7
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:
	SJ1PEPF000026C5.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR12MB6839

When init_msix() fails, it needs to clean all MSIX resources.
So, add a new function to do that.

Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
---
cc: "Roger Pau Monné" <roger.pau@citrix.com>
---
v2->v3 changes:
* Remove unnecessary clean operations in fini_msix().

v1->v2 changes:
new patch.

Best regards,
Jiqian Chen.
---
 xen/drivers/vpci/msix.c | 21 ++++++++++++++++++++-
 1 file changed, 20 insertions(+), 1 deletion(-)

diff --git a/xen/drivers/vpci/msix.c b/xen/drivers/vpci/msix.c
index 0228ffd9fda9..e322c260f6bc 100644
--- a/xen/drivers/vpci/msix.c
+++ b/xen/drivers/vpci/msix.c
@@ -703,6 +703,25 @@ int vpci_make_msix_hole(const struct pci_dev *pdev)
     return 0;
 }
 
+static void fini_msix(struct pci_dev *pdev)
+{
+    struct vpci *vpci = pdev->vpci;
+    unsigned int msix_pos = pdev->msix_pos;
+
+    if ( !msix_pos || !vpci->msix )
+        return;
+
+    list_del(&vpci->msix->next);
+
+    for ( unsigned int i = 0; i < ARRAY_SIZE(vpci->msix->table); i++ )
+        if ( vpci->msix->table[i] )
+            iounmap(vpci->msix->table[i]);
+
+    vpci_remove_registers(vpci, msix_control_reg(msix_pos), 2);
+    xfree(vpci->msix);
+    vpci->msix = NULL;
+}
+
 static int cf_check init_msix(struct pci_dev *pdev)
 {
     struct domain *d = pdev->domain;
@@ -757,7 +776,7 @@ static int cf_check init_msix(struct pci_dev *pdev)
 
     return rc;
 }
-REGISTER_VPCI_LEGACY_CAP(PCI_CAP_ID_MSIX, init_msix, NULL);
+REGISTER_VPCI_LEGACY_CAP(PCI_CAP_ID_MSIX, init_msix, fini_msix);
 
 /*
  * Local variables:
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Apr 21 07:38:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 21 Apr 2025 07:38:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.960998.1352622 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6lj2-0008EE-R4; Mon, 21 Apr 2025 07:37:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 960998.1352622; Mon, 21 Apr 2025 07: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 1u6lj2-0008E7-Ne; Mon, 21 Apr 2025 07:37:56 +0000
Received: by outflank-mailman (input) for mailman id 960998;
 Mon, 21 Apr 2025 07:37: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=Kh51=XH=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1u6lj1-0007m8-Qq
 for xen-devel@lists.xenproject.org; Mon, 21 Apr 2025 07:37:55 +0000
Received: from NAM04-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam04on20600.outbound.protection.outlook.com
 [2a01:111:f403:2408::600])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 896d24dc-1e83-11f0-9eb0-5ba50f476ded;
 Mon, 21 Apr 2025 09:37:55 +0200 (CEST)
Received: from MN2PR04CA0004.namprd04.prod.outlook.com (2603:10b6:208:d4::17)
 by MN0PR12MB6054.namprd12.prod.outlook.com (2603:10b6:208:3ce::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.33; Mon, 21 Apr
 2025 07:37:50 +0000
Received: from BN2PEPF000055DE.namprd21.prod.outlook.com
 (2603:10b6:208:d4:cafe::ca) by MN2PR04CA0004.outlook.office365.com
 (2603:10b6:208:d4::17) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.33 via Frontend Transport; Mon,
 21 Apr 2025 07:37:50 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BN2PEPF000055DE.mail.protection.outlook.com (10.167.245.8) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8678.4 via Frontend Transport; Mon, 21 Apr 2025 07:37:50 +0000
Received: from penny-System-Product-Name.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; Mon, 21 Apr 2025 02:37:47 -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: 896d24dc-1e83-11f0-9eb0-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=k74Zq/Py08UBBRG6nHXGlb7123ZLeqF2hpcMiRCfLp/chMeLTxOU/9lWbIU+DaX1HXIRkH/mh3sX8Dz/RADLYCVgLSmu/WRlswqHxT0mg4wVSD8xyG8T9Wuvxhh0gFJTLf0vvrC3sL+2KnXSugQOGWEOoM0HSyiN4TMzdT657txXy7zy1Fuxc/JnC5FCSl6UHksTXHh4GPNkTak79ih05Q+J4sjUhOjOR7JxgqtlonIeu7Snyax92+qOp/e8goH+QeLZtJxU8OSw3KrOlYpLbNFVzKCAL2tXHkfjY2Yz6wAGCRJ46S7jLgfwJLhOPkPnKhRrt2FyoqHGcx/+26iOog==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=gh6k+g8a8P3bX846oPvy8UVrY9rgIKh41SXuJfB5ceo=;
 b=k/ZreVE/CI20qncPmFxrphvpkUm5RrEwblKrEz87R0GiHOeeLJg4MRifa6dq0IAO1H8gwCrS85PoElfCRgZoS4UmYuQkjzCVrWDYUCjP3TBZqxOXUjslSX01ZtsSUxgbkbiXULgOhDj2y1H9gs7QktBXa6MFUwz9Y4vA9JWnrm4ynoF//mdgo+XrA23lLrs7Fcivp+byCynW7r55urMvTX1IIgqsesj6cVHcVfvASxSwE8YEC8clcYZhcQbIsN+X68jWMV4kCIJ3fUejCKkzfpmAWK/udBQO5RxuHQlcqHSEOSONa9hKIrQJJbjTslpXsVUm8qXHmq6hWk6GTxjzqQ==
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=gh6k+g8a8P3bX846oPvy8UVrY9rgIKh41SXuJfB5ceo=;
 b=n5xJKgc+YXouV/H8jZCqNxB6OZ/bwi4nJkHEM/5PnQjqCJLkIEntKcOQGvGOevq8d7d3nCyiEdvmel8iobiMeIHtAU88Tlpp2uC0j0d7+0wlLl/HPZ5IEmmODPYThVgHtngLrhUmYch74oGuOxYE7eGcQ3FF4AFpe+tyeMsYL4Y=
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: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, Stefano Stabellini <stefano.stabellini@amd.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, "Stefano
 Stabellini" <sstabellini@kernel.org>, Sergiy Kibrik <Sergiy_Kibrik@epam.com>,
	Penny Zheng <Penny.Zheng@amd.com>
Subject: [PATCH v3 02/20] xen: introduce CONFIG_SYSCTL
Date: Mon, 21 Apr 2025 15:37:05 +0800
Message-ID: <20250421073723.3863060-3-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250421073723.3863060-1-Penny.Zheng@amd.com>
References: <20250421073723.3863060-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: BN2PEPF000055DE:EE_|MN0PR12MB6054:EE_
X-MS-Office365-Filtering-Correlation-Id: 2111da00-48f6-4c42-0c62-08dd80a76b64
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|376014|82310400026|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?yeaawpUBG6mQ/8H8f6DU7dBEq1AtriQO3QCfEzRCJ69FTV8oH6iA2dCuCTKf?=
 =?us-ascii?Q?ON7zHZgQ6HSNerdMs1IJu/DDyoD32cEHs3yIvdGW/SJ/xoEUkfB4hxl+mXg5?=
 =?us-ascii?Q?7rjmg9v6dOcmb8lLVPVaFU5kWFtmsmbzcYuBzx/GSQqnv/GHhXcnrdCMKLgg?=
 =?us-ascii?Q?yMWAxx7LcfCnFP3SQRFAKjG1WQ6auzif31tnrH7mB48lZA6+LQIDyszOAUoN?=
 =?us-ascii?Q?VHZaGjqveFVVhODQVONMrniufWJHlut9MD4AY2jji3KFWFkKkCu5442V0bjj?=
 =?us-ascii?Q?VX96z3+5e/V8DQnY/dGVzkgplu0zrmlPK1959P6f9qrhgVrLP8wz91f5oPBo?=
 =?us-ascii?Q?RXL5Cwx8POB9m3Q/DZcBvqN9iRG4jegnatQ/PKN02a6YJpIuw84WOhoXbfUD?=
 =?us-ascii?Q?AesQaAPJXrvDQG/sSEQYw7YwYe3aq1Ae/64bpnNQiHmvuOIE92XLsn0eOoor?=
 =?us-ascii?Q?ptN2/2pulmHuOyn2IWgrfBxBqos7ZpLrzw7xiofpO/XzUvCrWnMwHGFulizt?=
 =?us-ascii?Q?PnoUxDb5PHzJSJwawgrTIN2rvCa9YhyoB6jjX201ICb4rNBS7bSta2b4WdQi?=
 =?us-ascii?Q?X/cNWptUcebjVxmApvSPT+sIKuHZZDByS+54WNYPcI5aoK847qLHFN0imL/C?=
 =?us-ascii?Q?qCGlSHA0exvSbwUFw4cWbYwkFOtgSczqbkD6hAPzFuuyz5m9WFk2T2r12tj5?=
 =?us-ascii?Q?fFfOcWn7VimHk2JX7drdcuEOofF7x6MMFudF04KO2Hi91OnrYH7am8JCbHWP?=
 =?us-ascii?Q?jsRABAmrv6nbsCf+ZbzamEtOiyWsozyHYfeDnfI9Z55z8wibpLjfF2EZpnF5?=
 =?us-ascii?Q?3oD7d2NaD8F/FMvJd7omRfIuuCRDwvxpi+ihY+7EHOmBc0cjEadpXB6akhP1?=
 =?us-ascii?Q?bMDomOQhWJONPUM2J1p7dVHWZaV9Xdakm1bRlgHxiXnab7L+iYCxbHqiE5bC?=
 =?us-ascii?Q?BCTsyxvC+HZHwBKzniuoBcvNxRtqh4+kfmk+KzepPXKbMipCGeuJPNl65ma7?=
 =?us-ascii?Q?Mptpm0z3iS+U8RvZJBsSOnJVjYpi9tzwzKAjANIRrjZS2DL1g+TSxZc6e4wo?=
 =?us-ascii?Q?GNXEyjGY5LE5yxRoceT7DSdmgB1Dz6A5N7u6EB+Ox+0Zg+KifVwW33CJl9rM?=
 =?us-ascii?Q?AI5yVinA9hu1JX88UCJWIveEP7fDKUoljeWuJvZnI6+P+JCq+56a1GjKlpI3?=
 =?us-ascii?Q?Q8mJroflL9kCAzrOfgVaRos+Ec7IUB592UtuoDl7kDCkqoRo/uzEorAzOC9h?=
 =?us-ascii?Q?cHRwoMZ0cQJplFWWWpFFGICFKQpAPRwHWBnh9bdQQwjZTaKxbzjdzBjkp/CX?=
 =?us-ascii?Q?KrYTsB4gyvJEZbTnwRKjD4EX99M2ppNgVBs6vHn2qaJEEY+KT1kARAtAyjcz?=
 =?us-ascii?Q?KIdl+SEYdJL4YQMITVDZWuLXhu4RCsBoHTvEh6yqwCRG8Qml8jW6xA9KG2Wa?=
 =?us-ascii?Q?loOdkPWa0SO8MKCOQFYTMPrK7cHhjMEi4xauZZB2rIRGEvAiPDIt7fa2HP5r?=
 =?us-ascii?Q?XN48OLwUj8XKId57Uhze6Ecn0p05cDsDcoxr?=
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: 21 Apr 2025 07:37:50.5681
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 2111da00-48f6-4c42-0c62-08dd80a76b64
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:
	BN2PEPF000055DE.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN0PR12MB6054

From: Stefano Stabellini <stefano.stabellini@amd.com>

We introduce a new Kconfig CONFIG_SYSCTL, which shall only be disabled
on some dom0less systems, to reduce Xen footprint.

Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
Signed-off-by: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
v2 -> v3:
- remove "intend to" in commit message
---
 xen/common/Kconfig | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/xen/common/Kconfig b/xen/common/Kconfig
index be28060716..d89e9ede77 100644
--- a/xen/common/Kconfig
+++ b/xen/common/Kconfig
@@ -581,4 +581,15 @@ config BUDDY_ALLOCATOR_SIZE
 	  Amount of memory reserved for the buddy allocator to serve Xen heap,
 	  working alongside the colored one.
 
+menu "Supported hypercall interfaces"
+	visible if EXPERT
+
+config SYSCTL
+	bool "Enable sysctl hypercall"
+	default y
+	help
+	  This option shall only be disabled on some dom0less systems,
+	  to reduce Xen footprint.
+endmenu
+
 endmenu
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Apr 21 07:38:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 21 Apr 2025 07:38:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.960997.1352609 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6lj0-0007oo-Gd; Mon, 21 Apr 2025 07:37:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 960997.1352609; Mon, 21 Apr 2025 07:37:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6lj0-0007o6-Al; Mon, 21 Apr 2025 07:37:54 +0000
Received: by outflank-mailman (input) for mailman id 960997;
 Mon, 21 Apr 2025 07:37: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=Kh51=XH=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1u6liy-0007m8-Su
 for xen-devel@lists.xenproject.org; Mon, 21 Apr 2025 07:37:52 +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 872f3047-1e83-11f0-9eb0-5ba50f476ded;
 Mon, 21 Apr 2025 09:37:51 +0200 (CEST)
Received: from MN2PR04CA0002.namprd04.prod.outlook.com (2603:10b6:208:d4::15)
 by DM4PR12MB8569.namprd12.prod.outlook.com (2603:10b6:8:18a::16) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.21; Mon, 21 Apr
 2025 07:37:47 +0000
Received: from BN2PEPF000055DE.namprd21.prod.outlook.com
 (2603:10b6:208:d4:cafe::ef) by MN2PR04CA0002.outlook.office365.com
 (2603:10b6:208:d4::15) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.35 via Frontend Transport; Mon,
 21 Apr 2025 07:37:47 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BN2PEPF000055DE.mail.protection.outlook.com (10.167.245.8) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8678.4 via Frontend Transport; Mon, 21 Apr 2025 07:37:47 +0000
Received: from penny-System-Product-Name.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; Mon, 21 Apr 2025 02:37:44 -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: 872f3047-1e83-11f0-9eb0-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=A8npagCwejwizWteLGdO4HJVsE0Q9DmPiQqlBv52dMNs4AaHzUgrwVmK7VwOfPZnZVZO2C+qI7XRyy8ebdRSoo37YSt6/M4J3R9Og+hMKMeJA+tcs1Yr3UYj52uwZ4ssdJhO35HHEq1Pz0SMGJSnexdf7ATAEOcGfSmyRS8X5vkfJus73RyB+FMmYWpONUqIpJInSv7hRT3HoBlNYPlQ0Iy8cXvY5oueLRkqqkdEShrSQ35Dl39TYLjujK1Qe5eGX4I3asm5DfRzzejtDtXcRTvjVwf+rkAnHVnbedo7eKOeIQ78gkS8saedYpKxhKGsAxUIKQ5ChIetMorMJBIQBA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=+U8oTWLb8OnhJdc/YwYQnpkAkE5yqnF71ljA3zNVvis=;
 b=FpAtzX8mxiG9ohzeIGM2Fj+tmgMMWMe+ebpYKoQzhgsHWxfuxGei8/BOD+LE+zcfXePG3rLzunPbnVM3WVsi/dAq3X9uXneyjvI3W+mNujd7KgUu5gSdXtQdbcEOyAb0UXi6EhzsAv8/kp862+NNHPwWfgsQVJWV6traiLWUus2yhBvs838vpB/tNIBzM5JsVf5/rgg35VWBfxospCx8VjEK66JpY6AeI/YYVqhi/k8vPvnL1FvnEVwfd/VG9v8qUeEEQBNEMjeDrVbil8d3AiumeGNAJ2aSFZwLhBWD0fpPsDbb8rBUUuSc4a2hQwM8MHVbPFswp0lbujL2eKVNmg==
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=+U8oTWLb8OnhJdc/YwYQnpkAkE5yqnF71ljA3zNVvis=;
 b=q5cXhky6TR8QG4eaLdrHYInfkpJMhl6XyXhv8s50LccrnSY6oM9TblZ0KKQ/YFSJ39PDxS3e8SfWAw/cB/0WVK6YzkPJgJqVkHK08Sr2GeNSoYlOLcPggnlDyQZy8fllbm7vp/+4sby7RrunCbCNgZhWCnzRGDFHTAnQWNduwJQ=
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: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, "Julien
 Grall" <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v3 01/20] xen/x86: remove "depends on !PV_SHIM_EXCLUSIVE"
Date: Mon, 21 Apr 2025 15:37:04 +0800
Message-ID: <20250421073723.3863060-2-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250421073723.3863060-1-Penny.Zheng@amd.com>
References: <20250421073723.3863060-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: BN2PEPF000055DE:EE_|DM4PR12MB8569:EE_
X-MS-Office365-Filtering-Correlation-Id: 59d4c7ca-fefc-4c40-5054-08dd80a769bb
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|36860700013|1800799024|82310400026|13003099007;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?pcjV8yO0aY6mZzKNjdKV+Wk4DX9kawLVFykjMsjxEzxXubBIWmHjB6nfTbQF?=
 =?us-ascii?Q?XqbGIKliPd1wBDiF4ai/04TkrJHSIS+0n3F/xMfk84QcPrX8oGeo7FFKy27P?=
 =?us-ascii?Q?k16Se/iWP3GA3p8E2qMgBh9fCImTkryl7T/RglZl0lCD+eK7cGV9Fzuc1r0A?=
 =?us-ascii?Q?qppVGTir9hXQktVkueeuz1MYuTRclhDydjcuAcMhN4jv08/f22iGI79Wi6w4?=
 =?us-ascii?Q?4Qsty9nagy9BP1IyZmlvTLBm7EkZwq6eC5zVCYIU06sTgFpif8F9Cv7Wci9l?=
 =?us-ascii?Q?Tt03gji1FyxIErZ6aMh74OvABBMjbJBIm8MjKUul4++g8kaAzbbR90KNKsxH?=
 =?us-ascii?Q?ZTGKBecFKJwyp+VAFmO/04mcArT8FrGQivYkY9izAJekARTUN7Jyhjb4oujB?=
 =?us-ascii?Q?u4XSbtEAomXQM3kKB7GYgd9k7W5Q0G8zxEyiUJrUyx3jWgTWYciPGEfZM5o1?=
 =?us-ascii?Q?dQgLONm4KlOiVzuDjvSsy8EazZfbkwBjatgY+GpuJamqPswLuYVWmVA6MUCT?=
 =?us-ascii?Q?7pZLJR80KElLp0E0oKCmD7Vpzs7Vr54AameyXfLEtWo2Vf7wieUlgrs34tqw?=
 =?us-ascii?Q?I0K3vfS+f4KuwuS9iKsw3jnBUdQyXwBVfeCJ6ErNjtsL7DNUXkFykhKx/crb?=
 =?us-ascii?Q?ix+zSMDQhY7A5Mb7n2ehHZoRPTzwFH+ZxtLkOkDvtjBKZ8p311FLmvBAAcHh?=
 =?us-ascii?Q?BoxeRjbjGbsEVKWt2rV3JI3fM30i3XlsygyaWE/ScgugJTjktcFCLelpGO1K?=
 =?us-ascii?Q?KmaV9tyE83fH61z4vvqX48azu9ifkUlz3akWdiNAwlW7rz2h2fGWvE6mSauo?=
 =?us-ascii?Q?bR/MrexaZ+iL5D36GzxA/CU9EymrNlsBBZnC63gclU1LsXgID+9m7isiBGq6?=
 =?us-ascii?Q?8Dq1mW4c/N+aaUHMkUKI8jzW41iJ126nNuNNOpYCRm/9ctqfVha9ugL/6D+H?=
 =?us-ascii?Q?ujC1PEheDQZD9zKTSAgXp5NnEwIWlZFObIyRiU96LomS7v19DeXAGI3GDeVa?=
 =?us-ascii?Q?DeYxmgpv6K9oFK0cE4UHNZFxZEgKfeIIJML7JysHyYbR+lj0nTUHIQZd9WLX?=
 =?us-ascii?Q?uxUBgRV5lBNMP5C8fPRm4vvHgmTe21AXSZQZl3b3fSdEuLf3NsymCV1ge5EZ?=
 =?us-ascii?Q?HikfeDNtF1COhlLWV8z96elAdkszoePaAvHCCEyvhyZPfZSzUCqWZXtoB/GG?=
 =?us-ascii?Q?VcwOekzwndoQVUREuuXsueH6blsRP4wSy8FWT1D9nk16S6f+NcomMCnIQET6?=
 =?us-ascii?Q?a1n2wNkDtth6+O5N6UmBoFmIrC2shlaeH9RTcwPI/3uRqR5sK/3/tlaBfULg?=
 =?us-ascii?Q?Rnmu0azexML7873Y0Sr6okHRHg5M1WdzS0aFmooQyBmNZHGnMA125Q0MV7qP?=
 =?us-ascii?Q?jEENc7wK5Umua+27qMzQaRKZCtCay73VK3BbBlj1C9SuqsiOzLQLYm7rOxdW?=
 =?us-ascii?Q?JN+xxXKH8UwYkCJHqdcK4h/Hbq9HNkAiQsLxebNyqsMjYMzOfqBawg=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)(36860700013)(1800799024)(82310400026)(13003099007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Apr 2025 07:37:47.7834
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 59d4c7ca-fefc-4c40-5054-08dd80a769bb
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:
	BN2PEPF000055DE.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB8569

Remove all "depends on !PV_SHIM_EXCLUSIVE" (also the functionally
equivalent "if !...") in Kconfig file, since negative dependancy will badly
affect allyesconfig.
This commit is based on "x86: provide an inverted Kconfig control for
shim-exclusive mode"[1]

[1] https://lists.xen.org/archives/html/xen-devel/2023-03/msg00040.html

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
---
v2 -> v3:
- remove comment for PV_SHIM_EXCLUSIVE
---
 xen/arch/x86/Kconfig      | 4 ----
 xen/arch/x86/hvm/Kconfig  | 1 -
 xen/drivers/video/Kconfig | 4 ++--
 3 files changed, 2 insertions(+), 7 deletions(-)

diff --git a/xen/arch/x86/Kconfig b/xen/arch/x86/Kconfig
index de2fa37f08..29a8b4b35c 100644
--- a/xen/arch/x86/Kconfig
+++ b/xen/arch/x86/Kconfig
@@ -138,7 +138,6 @@ config XEN_IBT
 
 config SHADOW_PAGING
 	bool "Shadow Paging"
-	default !PV_SHIM_EXCLUSIVE
 	depends on PV || HVM
 	help
 
@@ -170,7 +169,6 @@ config BIGMEM
 config TBOOT
 	bool "Xen tboot support (UNSUPPORTED)"
 	depends on INTEL && UNSUPPORTED
-	default !PV_SHIM_EXCLUSIVE
 	select CRYPTO
 	help
 	  Allows support for Trusted Boot using the Intel(R) Trusted Execution
@@ -283,7 +281,6 @@ config PV_SHIM_EXCLUSIVE
 
 	  If unsure, say N.
 
-if !PV_SHIM_EXCLUSIVE
 
 config HYPERV_GUEST
 	bool "Hyper-V Guest"
@@ -293,7 +290,6 @@ config HYPERV_GUEST
 
 	  If unsure, say N.
 
-endif
 
 config REQUIRE_NX
 	bool "Require NX (No eXecute) support"
diff --git a/xen/arch/x86/hvm/Kconfig b/xen/arch/x86/hvm/Kconfig
index 2def0f98e2..b903764bda 100644
--- a/xen/arch/x86/hvm/Kconfig
+++ b/xen/arch/x86/hvm/Kconfig
@@ -1,6 +1,5 @@
 menuconfig HVM
 	bool "HVM support"
-	depends on !PV_SHIM_EXCLUSIVE
 	default !PV_SHIM
 	select COMPAT
 	select IOREQ_SERVER
diff --git a/xen/drivers/video/Kconfig b/xen/drivers/video/Kconfig
index 245030beea..66ee1e7c9c 100644
--- a/xen/drivers/video/Kconfig
+++ b/xen/drivers/video/Kconfig
@@ -3,10 +3,10 @@ config VIDEO
 	bool
 
 config VGA
-	bool "VGA support" if !PV_SHIM_EXCLUSIVE
+	bool "VGA support"
 	select VIDEO
 	depends on X86
-	default y if !PV_SHIM_EXCLUSIVE
+	default y
 	help
 	  Enable VGA output for the Xen hypervisor.
 
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Apr 21 07:38:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 21 Apr 2025 07:38:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.960996.1352603 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6lj0-0007mQ-7C; Mon, 21 Apr 2025 07:37:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 960996.1352603; Mon, 21 Apr 2025 07:37:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6lj0-0007mJ-3q; Mon, 21 Apr 2025 07:37:54 +0000
Received: by outflank-mailman (input) for mailman id 960996;
 Mon, 21 Apr 2025 07:37: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=Kh51=XH=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1u6liy-0007m8-Hd
 for xen-devel@lists.xenproject.org; Mon, 21 Apr 2025 07:37:52 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on20606.outbound.protection.outlook.com
 [2a01:111:f403:2414::606])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 86510256-1e83-11f0-9eb0-5ba50f476ded;
 Mon, 21 Apr 2025 09:37:50 +0200 (CEST)
Received: from MN2PR04CA0021.namprd04.prod.outlook.com (2603:10b6:208:d4::34)
 by SA0PR12MB7462.namprd12.prod.outlook.com (2603:10b6:806:24b::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.25; Mon, 21 Apr
 2025 07:37:45 +0000
Received: from BN2PEPF000055DE.namprd21.prod.outlook.com
 (2603:10b6:208:d4:cafe::2b) by MN2PR04CA0021.outlook.office365.com
 (2603:10b6:208:d4::34) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.31 via Frontend Transport; Mon,
 21 Apr 2025 07:37:45 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BN2PEPF000055DE.mail.protection.outlook.com (10.167.245.8) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8678.4 via Frontend Transport; Mon, 21 Apr 2025 07:37:45 +0000
Received: from penny-System-Product-Name.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; Mon, 21 Apr 2025 02:37:39 -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: 86510256-1e83-11f0-9eb0-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=gOHTQise1nwiqhQ03qCfCL8J+g1sHQloVC+E9+JZZhtK3+IQQFhmHnFYGkPUel571kbwiVkzothrxVFqaRIr7J4v8VSpBmT+q2rkrZNZ07Cja0KBe5hoXCIagDQ0WpvxbjkPjUCmX4GYmSUsIuuR25qzx725G8BXwstmvi7XcEQ6HsgaVhhBs8ONDegxyNEF79aWuXF5xC+vZk76NOVficHGCsht9xcvS1KSnGfgdfWd04DQtqogNZ4VQ5jkn1QaTmPOtxjSfFCAuw/qdi9bg6premFNMHTshNXjCsWreiqYrvIMDcQqx/vdPXX1NpTqU51WODVPdHBLhiq/V1BnNA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=xHwtQoUXOLe8JsiTb5ocVLRP+W5abyHJLBWNclqbEuw=;
 b=rxrRGeweSOfkhU+HMMjgTdXlhEPg6Tg1cYQWdpVlA5i9OzgTNKlC/4R5maRNQAgonsk6n3ubi+0m5E04Ho+NFpYb5AYn/hBSCr+xICRwgKKti7hDd7dkcZN/vkofc88u7eOZq2TUVbi3cz2ML/J8MGdlL7yw84dvxqV+Ussvpz2l35JzmcAj0ZHsRGKpi33BCIyxN78ehfdYdBQJ1q5IDmwRnrcRO1JUc7CCI2FJwRjxDsy/CJRKVdQWkLs2e1ZHh3mlvQZpqW+VrgXRzbKwEV7ubich6UgxiUTsOoQXj2QuzoR2iB+vMHDcvRaqB14kyfcU3JoeGSj1rR6cb1yhGQ==
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=xHwtQoUXOLe8JsiTb5ocVLRP+W5abyHJLBWNclqbEuw=;
 b=k043BRLySF+Mkv6SuwGTu7mGkRk8F3zdLU0ZLKx2w2Hu6yqo6QL23oM2sc6BwR4iYI4KbyXiVHF/d9zbh7Bk+ft00gn1Jsu4VeXm4xubR3KvEYDxvBcFU/io7uUGfmVIwzQmajtMMATAnDceWmIHwHKBj1aZFcOq8+SYnilWWtY=
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: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>, <xen-devel@dornerworks.com>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, "Julien
 Grall" <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, "Daniel
 P. Smith" <dpsmith@apertussolutions.com>, Dario Faggioli
	<dfaggioli@suse.com>, Juergen Gross <jgross@suse.com>, George Dunlap
	<gwd@xenproject.org>, Nathan Studer <nathan.studer@dornerworks.com>, "Stewart
 Hildebrand" <stewart@stew.dk>, Bertrand Marquis <bertrand.marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Alistair Francis
	<alistair.francis@wdc.com>, Bob Eshleman <bobbyeshleman@gmail.com>, "Connor
 Davis" <connojdavis@gmail.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH v3 00/20] xen: introduce CONFIG_SYSCTL
Date: Mon, 21 Apr 2025 15:37:03 +0800
Message-ID: <20250421073723.3863060-1-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: BN2PEPF000055DE:EE_|SA0PR12MB7462:EE_
X-MS-Office365-Filtering-Correlation-Id: aeaeeb18-cb7d-4801-1207-08dd80a76824
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|7416014|82310400026|1800799024|36860700013|13003099007;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?B4G/rRsCNrNs6GWAFOIB4XFVL/9mhr6XudDfpMgsgnO132mZHAq+e4WHSF0Y?=
 =?us-ascii?Q?NjhDZdB7BgV+j3pUyHKNlaApvCtZFYSojd7erre+yB5YuzYm6sZzbRjqozP+?=
 =?us-ascii?Q?csxfIsDOgEM49pSW9ibLzFL5jxr96enLWw5JNTk79kGySBO+k//4zcEeqMaY?=
 =?us-ascii?Q?kh64VRdAMLVPklkgkayTCHezxZQUproLi8ODFEamArfLOVWnlBIYzQ06Rnsg?=
 =?us-ascii?Q?WqRmnylPl4uZBo8nHgCRN6QzojP9vQdIXbwxVGd7UA4Spr6/ZXX9pCKQ+T0w?=
 =?us-ascii?Q?ALMkfCiM1cw3tSFFKTV1DXqai1sqYmGQFijGDT+xFkL4bcDTILDzn7gS7rSi?=
 =?us-ascii?Q?IMG1kPXOtxxLLxiuEx4eRoAVMZgGwnvDDqv15dKCKSwDNhwWYhtL/txxfIa3?=
 =?us-ascii?Q?2tOHznIIqT34y7ecnG7qvfL3662g9NjHbDxpqo3jCVedWMH17nS+a7KcXdQP?=
 =?us-ascii?Q?dHSlvVbdIBfVV5ICrFJkRqCAP4Xli1X/cveR1xCdUOJop/e44tWsJrL5cCdQ?=
 =?us-ascii?Q?6qWFNq6DtYFoWTy1Pdqo0gG50w2g8sx87ULgIYeFtk7FBMlTo18/Uo7ZcEZ6?=
 =?us-ascii?Q?hsmv//X1dg0d4/ZdQ8q4PQJ3QN5PKdE9UAcEuAt9pAJTU1bHHvTgJCp+elQG?=
 =?us-ascii?Q?pAmGF+BoxeSKjV7FfzgcLFdhUexYveDu+r5a/at5KpFWF2CCJWlSMOJWrREq?=
 =?us-ascii?Q?8JuEkwl0DZBlQL6voG6lOjmC04G1/T9/uAFFsdBS7Xg86wrY7dbyV5ax1uVA?=
 =?us-ascii?Q?fs7et1BxG9P4GOv//DQC12WLZm5gY64tIukAOLMjwUzDI1tgduDfYq+u2ki4?=
 =?us-ascii?Q?AYiRyzmBbXP6DjRmGYAUISjlhKJaDbfzaa6gh+T6YhytCpw/4/BM/4lRhH7Y?=
 =?us-ascii?Q?h3PNgqSa64BVYY84XS3nEyyRLGDgPi9u2GP68wuorS0hXfz1HH7YOw2FCTeC?=
 =?us-ascii?Q?eyp2L30etFJjSvIg5kCsAd2nGlXMI8e7Si5uLrnpfrfzlALj7pLZCWdKkjTJ?=
 =?us-ascii?Q?pNyfc3lSzCmt2OWOt0PQVwVNo6rTycpWVPTccM4D7fMWP/sfNVECi38kk1de?=
 =?us-ascii?Q?Njo2N+VlAu7zpjHIZQOWSpo22MGybQf0sUV+MdejqX6QdH1zMQhNWqEtDWQ3?=
 =?us-ascii?Q?GyNwA7cS6kD1HF48JRqzRVtSJW/J2mIh5YntARf7vfoSvyx+8illCJ7jzdh8?=
 =?us-ascii?Q?ULFeav+BUSz46P0ICXO3lrCBmOY2O8nPoCaSoBM1AqS/ktH9nI4Tor+Gmru8?=
 =?us-ascii?Q?sA7yLWj7e1vGzkIrW1VjRtEvXvDYnKE2JivvlL3jUpbWK2r1PBJvcKJKwCMs?=
 =?us-ascii?Q?JXwy8Rbdw+pzTFWJD865peEbKChd5YFiopRUbXFBgw3L/BllqBOZGhB2i7JA?=
 =?us-ascii?Q?venhILn5P5Nauqop+EelOlRrRv2Z7g/rZQ64V4maxVQhwz6BeG3O4MjNQVrU?=
 =?us-ascii?Q?bAgQKKFnzIGhZSRcsPJiNbZgTY5FUgPSHocKw5jdeThyUZg1OiaUHnTdgCmS?=
 =?us-ascii?Q?EXUvWqIQApUKEdXwbjM//eS4BgK68FewNBUO?=
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)(7416014)(82310400026)(1800799024)(36860700013)(13003099007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Apr 2025 07:37:45.1151
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: aeaeeb18-cb7d-4801-1207-08dd80a76824
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:
	BN2PEPF000055DE.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR12MB7462

It can be beneficial for some dom0less systems to further reduce Xen footprint
and disable some hypercalls handling code, which may not to be used & required
in such systems. Each hypercall has a separate option to keep configuration
flexible.

Options to disable hypercalls:
- sysctl
- domctl
- hvm
- physdev
- platform

This patch serie is only focusing on introducing CONFIG_SYSCTL. Different
options will be covered in different patch serie.

Features, like LIVEPATCH, Overlay DTB, which fully rely on sysctl op, are also
being wrapped with proper CONFIG_SYSCTL, to reduce Xen footprint as much as
possible.

It is based on Stefano Stabellini's commit "xen: introduce kconfig options to
disable hypercalls"(
https://lore.kernel.org/xen-devel/20241219092917.3006174-1-Sergiy_Kibrik@epam.com)

Penny Zheng (18):
  xen/x86: remove "depends on !PV_SHIM_EXCLUSIVE"
  xen/xsm: wrap around xsm_sysctl with CONFIG_SYSCTL
  xen/sysctl: wrap around XEN_SYSCTL_readconsole
  xen/sysctl: make CONFIG_TRACEBUFFER depend on CONFIG_SYSCTL
  xen/sysctl: wrap around XEN_SYSCTL_sched_id
  xen/sysctl: wrap around XEN_SYSCTL_perfc_op
  xen/sysctl: wrap around XEN_SYSCTL_lockprof_op
  xen/pmstat: consolidate code into pmstat.c
  xen/pmstat: introduce CONFIG_PM_OP
  xen/sysctl: introduce CONFIG_PM_STATS
  xen/sysctl: wrap around XEN_SYSCTL_page_offline_op
  xen/sysctl: wrap around XEN_SYSCTL_cpupool_op
  xen/sysctl: wrap around XEN_SYSCTL_scheduler_op
  xen: make avail_domheap_pages() inlined into get_outstanding_claims()
  xen/sysctl: wrap around XEN_SYSCTL_physinfo
  xen/sysctl: make CONFIG_COVERAGE depend on CONFIG_SYSCTL
  xen/sysctl: make CONFIG_LIVEPATCH depend on CONFIG_SYSCTL
  xen/sysctl: wrap around arch-specific arch_do_sysctl

Stefano Stabellini (2):
  xen: introduce CONFIG_SYSCTL
  xen/sysctl: wrap around sysctl hypercall

 xen/Kconfig.debug                            |   2 +-
 xen/arch/arm/Kconfig                         |   1 +
 xen/arch/arm/Makefile                        |   2 +-
 xen/arch/riscv/stubs.c                       |   2 +
 xen/arch/x86/Kconfig                         |   4 -
 xen/arch/x86/Makefile                        |   2 +-
 xen/arch/x86/acpi/cpu_idle.c                 |   2 +
 xen/arch/x86/acpi/cpufreq/hwp.c              |   6 +
 xen/arch/x86/acpi/cpufreq/powernow.c         |   4 +
 xen/arch/x86/hvm/Kconfig                     |   1 -
 xen/arch/x86/psr.c                           |  18 +
 xen/common/Kconfig                           |  29 +-
 xen/common/Makefile                          |   2 +-
 xen/common/page_alloc.c                      |  55 +-
 xen/common/perfc.c                           |   2 +
 xen/common/sched/arinc653.c                  |   6 +
 xen/common/sched/core.c                      |   4 +
 xen/common/sched/cpupool.c                   |   8 +
 xen/common/sched/credit.c                    |   4 +
 xen/common/sched/credit2.c                   |   4 +
 xen/common/sched/private.h                   |   4 +
 xen/common/spinlock.c                        |   2 +
 xen/common/sysctl.c                          |   7 +-
 xen/drivers/acpi/Makefile                    |   3 +-
 xen/drivers/acpi/pm_op.c                     | 409 ++++++++++++++
 xen/drivers/acpi/pmstat.c                    | 559 ++++++-------------
 xen/drivers/char/console.c                   |   2 +
 xen/drivers/cpufreq/cpufreq.c                |  31 +
 xen/drivers/cpufreq/cpufreq_misc_governors.c |   2 +
 xen/drivers/cpufreq/cpufreq_ondemand.c       |   2 +
 xen/drivers/cpufreq/utility.c                | 203 -------
 xen/drivers/video/Kconfig                    |   4 +-
 xen/include/acpi/cpufreq/cpufreq.h           |   5 -
 xen/include/acpi/cpufreq/processor_perf.h    |  14 +-
 xen/include/hypercall-defs.c                 |   8 +-
 xen/include/xen/mm.h                         |   1 -
 xen/include/xsm/xsm.h                        |  18 +
 xen/xsm/dummy.c                              |   6 +
 xen/xsm/flask/hooks.c                        |  14 +
 39 files changed, 804 insertions(+), 648 deletions(-)
 create mode 100644 xen/drivers/acpi/pm_op.c

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Apr 21 07:38:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 21 Apr 2025 07:38:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.961000.1352643 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6ljA-0000OL-G2; Mon, 21 Apr 2025 07:38:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 961000.1352643; Mon, 21 Apr 2025 07:38:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6ljA-0000O8-BK; Mon, 21 Apr 2025 07:38:04 +0000
Received: by outflank-mailman (input) for mailman id 961000;
 Mon, 21 Apr 2025 07:38:02 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Kh51=XH=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1u6lj8-0007m8-J0
 for xen-devel@lists.xenproject.org; Mon, 21 Apr 2025 07:38:02 +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 8d3d9515-1e83-11f0-9eb0-5ba50f476ded;
 Mon, 21 Apr 2025 09:38:01 +0200 (CEST)
Received: from MN2PR04CA0024.namprd04.prod.outlook.com (2603:10b6:208:d4::37)
 by IA0PR12MB8303.namprd12.prod.outlook.com (2603:10b6:208:3de::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.30; Mon, 21 Apr
 2025 07:37:56 +0000
Received: from BN2PEPF000055DE.namprd21.prod.outlook.com
 (2603:10b6:208:d4:cafe::7) by MN2PR04CA0024.outlook.office365.com
 (2603:10b6:208:d4::37) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.33 via Frontend Transport; Mon,
 21 Apr 2025 07:37:55 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BN2PEPF000055DE.mail.protection.outlook.com (10.167.245.8) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8678.4 via Frontend Transport; Mon, 21 Apr 2025 07:37:55 +0000
Received: from penny-System-Product-Name.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; Mon, 21 Apr 2025 02:37:52 -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: 8d3d9515-1e83-11f0-9eb0-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Y4sPIB4uWLPaSbd7ILSBm+ZxLkrXuqDjn4nPstxmTJFiGGaU8FbzDdbKBF+6525SFqJVa1g91tlNRnJhTKTwunqyhkXtvo88ItBsI9bTZ9Kg0ec7kfuu4XnnS7yTRbEsDgkSbdJl74AQfIsniAoKIZiIJDQWdr570DHZVrsi1DoCCdspZoClAnlJSoptf51pctz+EfqiDIuDvwNGrR/q3RUngHN822tHiBch5gO6A5exDnGttV+JfL1cfAekcdIb4El96FEL17A0efLFuIogus3+OlM4fth6YLTXKKGnjKM/gkRsxi6AfSucAMG0PDBIlPK68mMX2rwUMFv43kr/Zw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=v10ezJO1RVNOYEoAI4at0ERhWAX/qYDJ48ts9ZOHevg=;
 b=LhrGP9kAscyJxc+HuNV3lHwAaVX15PUV7znKzSjQTveKb0MPDJ+uf1/0b8ztEljSiYZBvcokaR41iwBm8SiOGkzSZO6xnRSUN650tRg6DtlXQnAF8kaEhHocR6MBfZjNPB/t9Jkv4HBnJ2DEbXIPsoSCjfgwOfL1pTK+XEsZyECbrVue0/dWFtzHxkOSKO++mW4tH32hNM4vu1WHnXo+ED+exrOqKE5N71KqmwRQrUo8RDVcK9Y1fM4n6xUICGNEhTYHkllnJ7Q2vA8TgII22GgCD1mcjz2V7V7Qv5z/Y7yrQS5FFnYxJlqueum8hYMcnxIFPSSxNO3V5Mia776k7Q==
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=v10ezJO1RVNOYEoAI4at0ERhWAX/qYDJ48ts9ZOHevg=;
 b=Poee/Blq1EPsATSKeNU7anmjrGxDIilPpQmCIRNI1P+hKrn4R5hg8e/afbJrBpxTVBQJckUxDXLJeJOUtEX2LZ6RGym/WGvB8CXQjqgjV1m3q+W1hOxLe8A/G+J7g22V9/7xroMSJnpymRJIAWRtqPqWD0GTDVfqxO7uOLIJtDQ=
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: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, "Julien
 Grall" <julien@xen.org>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>, "Daniel
 P. Smith" <dpsmith@apertussolutions.com>
Subject: [PATCH v3 04/20] xen/sysctl: wrap around XEN_SYSCTL_readconsole
Date: Mon, 21 Apr 2025 15:37:07 +0800
Message-ID: <20250421073723.3863060-5-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250421073723.3863060-1-Penny.Zheng@amd.com>
References: <20250421073723.3863060-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: BN2PEPF000055DE:EE_|IA0PR12MB8303:EE_
X-MS-Office365-Filtering-Correlation-Id: 7609ec10-9daa-405b-d304-08dd80a76e8d
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|36860700013|1800799024|376014;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?0ONnWl7aud2Okh8a3BX/UT8Be+N9gNbkMhmkPuSXxaBZl6qwU65gsLdG1Q9i?=
 =?us-ascii?Q?DwD3ZQ7rOe3HZTFBuh1WnDpCGpSMFXm8/qL2U0k9xtgrxcCp4chlOp+jmB73?=
 =?us-ascii?Q?foYEBqi70T15rlZ7NnyFP/57+zelQTs7e+kw4PPidPqCKve/M/SiANvWNaWG?=
 =?us-ascii?Q?k63PhOl3gTbyiUSYu4JxHOZlzqH62YNHHpouGENE5dV83oZNVFMqAceM9fcT?=
 =?us-ascii?Q?IvgrO4Fit40YZzlwkTU21flTrB6bIpgha44tNArinBFQN7PXo7bp/ASsJxx4?=
 =?us-ascii?Q?nN/RBHtik8eX6sU4AChcz4BXhs9R4f7xOBEI28FJou/81M322vKpHNSQkzeu?=
 =?us-ascii?Q?BrSk5wteyk0QNSGG3IlD0PuCtLfc7ftewLqdByrrM7CcVQhTjdr19oPj1Lfc?=
 =?us-ascii?Q?f5YVIei87kXWXGYdh4yWpn6ZrkFxnG7tyE9YccGt0IZI8zMl9VOuH8mOp2m1?=
 =?us-ascii?Q?ndUXXjf/9zFRuXjO+l3JEi6Qie/i7N98tMK0Kk+kINzEuhOUwoM80DLTEOO+?=
 =?us-ascii?Q?ge4sKswRqAs9qn1egiWRlMvoTG9GTDtaUwAnqaVxtxzq9eTFZUtKakDAtKtZ?=
 =?us-ascii?Q?T7DypZFImG26iKSskpFK85N3ah098b5ZbAqC5URgKPYT+fAjfpBfh7PX+NwG?=
 =?us-ascii?Q?ZlVHRasQC+f+ceje+axdm5xsLlS/o8QwUwr2QA7DXOf+/22SdO+YQ8f68nVS?=
 =?us-ascii?Q?2NaulQSGRDtC2EwLHUpYnQx+x+56qqHS5gxgGpCKo6v4FGlZ0K1HkMc3CKwy?=
 =?us-ascii?Q?q4meUzSCxVhpMDZHxbyFDIdLBT0Y3gbOqu+1C9bM0icIRVhPIzbzDK6/nVOW?=
 =?us-ascii?Q?BFwqUDvE4iHzfizOLXP249vSog4Pfe3GYabxjz5yf9cnBKurM2srdWazr2GP?=
 =?us-ascii?Q?wR2eh2Grml44l3l01ruI8HLeOeJbhZF/kwCP8lxR45QAlJirAeXCdlDwaq+O?=
 =?us-ascii?Q?VEK6BTdehtgroqjKoyQUjbkhDoKdmE7kVL168+WLo71EmK22SdUoysJOGzld?=
 =?us-ascii?Q?MMJzKwdc+sf6IG0tys+9gO6bCa0yjYMITesc5e/u3Ch8jUNb03eRRIl+Z3Ru?=
 =?us-ascii?Q?jg0mVLKh/o9JqIJ5yYGbmzhgc5FQQ6bEHaXRAHWsg3X+S422Zh2CfPE8aSFZ?=
 =?us-ascii?Q?A92Upz2uXLQ9tQ3snqneSBr4XOoooSZ5ukGTntxQvmBuIDFHjnP4x/TKhkCZ?=
 =?us-ascii?Q?SSXkH8hkqpMGg7/XK5v4RBv2O7AUA99G8Ua33RANB8lVXIOR04qDL9xr0+Fq?=
 =?us-ascii?Q?ogQd7EsNZzCBr58AoPVOZUjX/ZOCPHtx3FvzftU1qQgc6Pcq+LaBhcIo96rw?=
 =?us-ascii?Q?rsEL6v3bI1DTXkXKm4lgzErWmQ5YwGeu6hXDV3TE3+gStNi6vglUmKa0p9HB?=
 =?us-ascii?Q?OdlWdUvKIX2yRviP5FSob05WuvBs7qcJEqzVuzpEoz0x6dtJuAKxFtDvPxf7?=
 =?us-ascii?Q?OtOt2yXOpTmBbUhCksLS7D0dGfIlF9D0SnWPKTzCMu3toGShxgbTFz+5LcqK?=
 =?us-ascii?Q?e+YAsGmwyZhPrxv2OIDR9A2xuEYzTCIBPr0E?=
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)(1800799024)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Apr 2025 07:37:55.8730
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 7609ec10-9daa-405b-d304-08dd80a76e8d
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:
	BN2PEPF000055DE.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PR12MB8303

The following functions is to deal with XEN_SYSCTL_readconsole sub-op, and
shall be wrapped:
- xsm_readconsole
- read_console_ring

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
---
v2 -> v3:
- move #endif up ahead of the blank line
---
 xen/common/sysctl.c        | 2 ++
 xen/drivers/char/console.c | 2 ++
 xen/include/xsm/xsm.h      | 4 ++++
 xen/xsm/dummy.c            | 2 +-
 xen/xsm/flask/hooks.c      | 4 ++--
 5 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/xen/common/sysctl.c b/xen/common/sysctl.c
index c2d99ae12e..814f153a23 100644
--- a/xen/common/sysctl.c
+++ b/xen/common/sysctl.c
@@ -58,6 +58,7 @@ long do_sysctl(XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl)
 
     switch ( op->cmd )
     {
+#ifdef CONFIG_SYSCTL
     case XEN_SYSCTL_readconsole:
         ret = xsm_readconsole(XSM_HOOK, op->u.readconsole.clear);
         if ( ret )
@@ -65,6 +66,7 @@ long do_sysctl(XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl)
 
         ret = read_console_ring(&op->u.readconsole);
         break;
+#endif /* CONFIG_SYSCTL */
 
     case XEN_SYSCTL_tbuf_op:
         ret = tb_control(&op->u.tbuf_op);
diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
index c3150fbdb7..64f7e146a7 100644
--- a/xen/drivers/char/console.c
+++ b/xen/drivers/char/console.c
@@ -336,6 +336,7 @@ static void conring_puts(const char *str, size_t len)
         conringc = conringp - conring_size;
 }
 
+#ifdef CONFIG_SYSCTL
 long read_console_ring(struct xen_sysctl_readconsole *op)
 {
     XEN_GUEST_HANDLE_PARAM(char) str;
@@ -378,6 +379,7 @@ long read_console_ring(struct xen_sysctl_readconsole *op)
 
     return 0;
 }
+#endif /* CONFIG_SYSCTL */
 
 
 /*
diff --git a/xen/include/xsm/xsm.h b/xen/include/xsm/xsm.h
index 22e2429f52..042a99449f 100644
--- a/xen/include/xsm/xsm.h
+++ b/xen/include/xsm/xsm.h
@@ -270,7 +270,11 @@ static inline int xsm_sysctl(xsm_default_t def, int cmd)
 
 static inline int xsm_readconsole(xsm_default_t def, uint32_t clear)
 {
+#ifdef CONFIG_SYSCTL
     return alternative_call(xsm_ops.readconsole, clear);
+#else
+    return -EOPNOTSUPP;
+#endif
 }
 
 static inline int xsm_evtchn_unbound(
diff --git a/xen/xsm/dummy.c b/xen/xsm/dummy.c
index 93a0665ecc..cd0e844fcf 100644
--- a/xen/xsm/dummy.c
+++ b/xen/xsm/dummy.c
@@ -24,8 +24,8 @@ static const struct xsm_ops __initconst_cf_clobber dummy_ops = {
     .domctl                        = xsm_domctl,
 #ifdef CONFIG_SYSCTL
     .sysctl                        = xsm_sysctl,
-#endif
     .readconsole                   = xsm_readconsole,
+#endif
 
     .evtchn_unbound                = xsm_evtchn_unbound,
     .evtchn_interdomain            = xsm_evtchn_interdomain,
diff --git a/xen/xsm/flask/hooks.c b/xen/xsm/flask/hooks.c
index 3a43e5a1d6..df7e10775b 100644
--- a/xen/xsm/flask/hooks.c
+++ b/xen/xsm/flask/hooks.c
@@ -934,7 +934,6 @@ static int cf_check flask_sysctl(int cmd)
         return avc_unknown_permission("sysctl", cmd);
     }
 }
-#endif /* CONFIG_SYSCTL */
 
 static int cf_check flask_readconsole(uint32_t clear)
 {
@@ -945,6 +944,7 @@ static int cf_check flask_readconsole(uint32_t clear)
 
     return domain_has_xen(current->domain, perms);
 }
+#endif /* CONFIG_SYSCTL */
 
 static inline uint32_t resource_to_perm(uint8_t access)
 {
@@ -1888,8 +1888,8 @@ static const struct xsm_ops __initconst_cf_clobber flask_ops = {
     .domctl = flask_domctl,
 #ifdef CONFIG_SYSCTL
     .sysctl = flask_sysctl,
-#endif
     .readconsole = flask_readconsole,
+#endif
 
     .evtchn_unbound = flask_evtchn_unbound,
     .evtchn_interdomain = flask_evtchn_interdomain,
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Apr 21 07:38:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 21 Apr 2025 07:38:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.960999.1352633 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6lj5-0008TN-3Q; Mon, 21 Apr 2025 07:37:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 960999.1352633; Mon, 21 Apr 2025 07:37: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 1u6lj5-0008TG-00; Mon, 21 Apr 2025 07:37:59 +0000
Received: by outflank-mailman (input) for mailman id 960999;
 Mon, 21 Apr 2025 07:37: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=Kh51=XH=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1u6lj4-0007m8-3V
 for xen-devel@lists.xenproject.org; Mon, 21 Apr 2025 07:37:58 +0000
Received: from NAM04-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam04on20612.outbound.protection.outlook.com
 [2a01:111:f403:240a::612])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8a4b8ea2-1e83-11f0-9eb0-5ba50f476ded;
 Mon, 21 Apr 2025 09:37:57 +0200 (CEST)
Received: from MN2PR04CA0017.namprd04.prod.outlook.com (2603:10b6:208:d4::30)
 by CH2PR12MB9496.namprd12.prod.outlook.com (2603:10b6:610:27e::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.35; Mon, 21 Apr
 2025 07:37:52 +0000
Received: from BN2PEPF000055DE.namprd21.prod.outlook.com
 (2603:10b6:208:d4:cafe::f1) by MN2PR04CA0017.outlook.office365.com
 (2603:10b6:208:d4::30) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.33 via Frontend Transport; Mon,
 21 Apr 2025 07:37:52 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BN2PEPF000055DE.mail.protection.outlook.com (10.167.245.8) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8678.4 via Frontend Transport; Mon, 21 Apr 2025 07:37:52 +0000
Received: from penny-System-Product-Name.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; Mon, 21 Apr 2025 02:37:50 -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: 8a4b8ea2-1e83-11f0-9eb0-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=KFsTZo+EhhnIOsK5aO4C3EBr+HZwU4hqJU/2+YsIqSJNojnfQu76/VbWyr+dMLxKaBhaPzdxdf8zZENbGQkpWvEVoy2J2hKNlv+0wd47M5kZk9dzYCJbRW3+LvpiXKXD9W3RxeZSNGOyCxj7nUYC40yTbDbf8O2L+AjgSDXq9l5TBoFNnpyoUDxB5IaSCBgiKtsqIfv2/9jutjijPQRYy7RrwRcdsLQu85DTEjVW2eULKqdw6Q0vLG1UtL0lnJWCKCkIz5kNqmn/zavBuSzUQiIo+mWEd5XdVCvqQEw4GwJ6PwFNvSvDBZmo0OJhAi6qgONBIYb1ysE22D85OlFlkA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=XWDCQOD66ZKbLyRJ3ZdoNMgnP/71ZQbglzYq68MUnMQ=;
 b=DvZ4hEXcpWBHHhlM/8JrEV5m7sfzEW7s/5J/wVyD32oZ5kIpG/Y9f9so6r+ZrxKh5oyuuwntOXZ6xhqV553XjDWuKAW3eU9/5d800ZMEOMWdTvccEyKl9RsAjYsfiSxPbGA3VQHir321JT/AiKTH7FMONlrrmd0eLoKw9OKryNYizMwF7MfkbfUteyPP84VHVVbeNyMbkGReGLFQ1zOdcdhigJWb6FVkCzMYnmLZju5rlqYdAz6rCU2zBuNMWgsPA9qVBVM+mTUHFRC61fA5NoLIchabp1aoiXCZTdw0mk0OWl7dgOOpewCXhSo/lGZOVAcJYsvSCJwPR7NA4CM8MA==
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=XWDCQOD66ZKbLyRJ3ZdoNMgnP/71ZQbglzYq68MUnMQ=;
 b=rrItc8Ysk3LZSfErRqkcG65EnPrf5YESj+vIZoRikvP+00IkS7VHwB7dIVcnpvCOPXA4I4dYEET7TY3tMx641kjUuf8LkPTwdEAgE1uPnwvDxysoXHj5nI/IYwF8t7MPpSxsK/CXtDc45B3+7w1i27Dc1T6wZeaUrniX1rBlQ8o=
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: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.com>, "Daniel P. Smith"
	<dpsmith@apertussolutions.com>, Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v3 03/20] xen/xsm: wrap around xsm_sysctl with CONFIG_SYSCTL
Date: Mon, 21 Apr 2025 15:37:06 +0800
Message-ID: <20250421073723.3863060-4-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250421073723.3863060-1-Penny.Zheng@amd.com>
References: <20250421073723.3863060-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: BN2PEPF000055DE:EE_|CH2PR12MB9496:EE_
X-MS-Office365-Filtering-Correlation-Id: cc25fabc-498a-4f2f-25a8-08dd80a76c88
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?zK6a0JhEaXyng/VVpg6RRPfJLGJeLp2wnSMBpLQj6/aq1JuOQv9RsBGp5N50?=
 =?us-ascii?Q?iF4LMwS2bS6hv2WjZnLwk0raAgCLwOq2mx/0fLV84IsmJKMNmm8g0aT0pcO7?=
 =?us-ascii?Q?JzfqG5om2+QhvL/USteMevGPAcT8pfcLKbrUJ9mMVIGXnhE+aWCAZYH8c1QC?=
 =?us-ascii?Q?laJZ6lNZR+9dplKvsxOYyoloWd3+dGoNRHb2+rJYB15ShbDltX2ApnyN/hAY?=
 =?us-ascii?Q?Ao/nW1d4vpFmzoFPh2Y9Ziiq6GmHUNlb1R99uFFai8HpA6lB4SRjdiKAr5/g?=
 =?us-ascii?Q?gspBA0SiC7j9NI/9yqWsxlhRLRptm2Ut2fZzEkxS13pVjKYkbmzXsMvIWvs+?=
 =?us-ascii?Q?lx0I1sZHoqpeG5C1TVVwPgx5Ekkbv4KJ9VvRZGox0Lk/8kX8qSKdaX8pPkNa?=
 =?us-ascii?Q?0sIIoRWXIFW/96GV31EE0mp16pOVwjt5AQjcRQg7k8R4eDSrAdd+Ech8my+2?=
 =?us-ascii?Q?ttk3omhfpnYlywOI0q2VdhAs4bwYgadcUIrhBjZO53qxkBfTjhaz9SacX0Y4?=
 =?us-ascii?Q?Gtld/ypvO4feA5BOiWAFMJjM0rGnczvV012Zf3wJRXSxD1vVM8cGkiNoDn0k?=
 =?us-ascii?Q?ZCGZ0kB+LBzIHWptfcR0vV2Nud1s1DzeSIPmqI95g47htJT0ed+iG2G4fdqb?=
 =?us-ascii?Q?4rjhoyf0u5jRaRDBxXqFhBJtUVPg9xamotlQa+8JPdVQ+kmw/JKVvrJm+VQR?=
 =?us-ascii?Q?xbeYOZYunbjSSewiSKzK0ywNg0MqgsiWQgKyF6/PWGvNrgGYZubVyvBbuXUt?=
 =?us-ascii?Q?2FI5dETwADYnBjRKOFjn6Tiw55HCqrM+wDPR38qzMLslyUa81wGbBY/yg00R?=
 =?us-ascii?Q?zmU2WJQ87QE4Ug2/ID8jE7wXkSwWhI/JctiYhjDEXfs6kezDYjeCfbwZFi+f?=
 =?us-ascii?Q?bEy3aK5HOmZvl8S0T3kTIqLpwEywuQwZkrPNmZQLTrtK4e/v9EAMsbt/Jzof?=
 =?us-ascii?Q?gYff1b/AIpgI+7pIY2W+27NiGHyTZkM44WcCRZaa6m9njfAQWJTs0BxRp/0j?=
 =?us-ascii?Q?x1fgcx7m8ylEdZd+51wTxeKuPf28E9Ek9L53m22ClCPOeaGyLFNjt0J3UoyK?=
 =?us-ascii?Q?VEeQoAY9P3IBYFvtrsyvYRhcXmcWorR7UIid8otS68ckStopwbL26Y1a8qs0?=
 =?us-ascii?Q?VHKREFJnM4YGsK2FbN9Uc4U8HcI+Rcd8/jKqjf1nPqEop6xZdCArD0x1NNg/?=
 =?us-ascii?Q?6kez28AW0aAjMHqB8VyokZvNtamTBQfhzLDX0dzjMa6Uv6PXIiuvkfHi5qD+?=
 =?us-ascii?Q?PRPOSfuwwUtKvtlWv7jW23d0x0sNbJXd7Q1Q7bGhTDMk/dbu1JZnxU4V4CW7?=
 =?us-ascii?Q?BsvJXhxQBeQyLNjbxCUryd+4KcfFpUE14I+QYMm7JxVjK1ws6eJn+4OXTQCj?=
 =?us-ascii?Q?yBS3oFJAdGcG6vF4uSZNtgNMl/xC76lkob9kHdsgRI64JkIfLbiH8x+gsESB?=
 =?us-ascii?Q?ASta+0V1mrLJ5wtR9jn7Gc02P9ikCwmjbB15PMkrG+y3ySTcKU4z8ybChXpV?=
 =?us-ascii?Q?mBAqZWdYaJSISZBHdo1TakTkHKTo9gLa5RMJ?=
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: 21 Apr 2025 07:37:52.4820
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: cc25fabc-498a-4f2f-25a8-08dd80a76c88
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:
	BN2PEPF000055DE.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR12MB9496

As function xsm_sysctl() is solely invoked in sysctl.c, we need to
wrap around it with CONFIG_SYSCTL

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
---
 xen/include/xsm/xsm.h | 4 ++++
 xen/xsm/dummy.c       | 2 ++
 xen/xsm/flask/hooks.c | 4 ++++
 3 files changed, 10 insertions(+)

diff --git a/xen/include/xsm/xsm.h b/xen/include/xsm/xsm.h
index 24acc16125..22e2429f52 100644
--- a/xen/include/xsm/xsm.h
+++ b/xen/include/xsm/xsm.h
@@ -261,7 +261,11 @@ static inline int xsm_domctl(xsm_default_t def, struct domain *d,
 
 static inline int xsm_sysctl(xsm_default_t def, int cmd)
 {
+#ifdef CONFIG_SYSCTL
     return alternative_call(xsm_ops.sysctl, cmd);
+#else
+    return -EOPNOTSUPP;
+#endif
 }
 
 static inline int xsm_readconsole(xsm_default_t def, uint32_t clear)
diff --git a/xen/xsm/dummy.c b/xen/xsm/dummy.c
index 93fbfc43cc..93a0665ecc 100644
--- a/xen/xsm/dummy.c
+++ b/xen/xsm/dummy.c
@@ -22,7 +22,9 @@ static const struct xsm_ops __initconst_cf_clobber dummy_ops = {
     .sysctl_scheduler_op           = xsm_sysctl_scheduler_op,
     .set_target                    = xsm_set_target,
     .domctl                        = xsm_domctl,
+#ifdef CONFIG_SYSCTL
     .sysctl                        = xsm_sysctl,
+#endif
     .readconsole                   = xsm_readconsole,
 
     .evtchn_unbound                = xsm_evtchn_unbound,
diff --git a/xen/xsm/flask/hooks.c b/xen/xsm/flask/hooks.c
index 6a53487ea4..3a43e5a1d6 100644
--- a/xen/xsm/flask/hooks.c
+++ b/xen/xsm/flask/hooks.c
@@ -856,6 +856,7 @@ static int cf_check flask_domctl(struct domain *d, unsigned int cmd,
     }
 }
 
+#ifdef CONFIG_SYSCTL
 static int cf_check flask_sysctl(int cmd)
 {
     switch ( cmd )
@@ -933,6 +934,7 @@ static int cf_check flask_sysctl(int cmd)
         return avc_unknown_permission("sysctl", cmd);
     }
 }
+#endif /* CONFIG_SYSCTL */
 
 static int cf_check flask_readconsole(uint32_t clear)
 {
@@ -1884,7 +1886,9 @@ static const struct xsm_ops __initconst_cf_clobber flask_ops = {
     .sysctl_scheduler_op = flask_sysctl_scheduler_op,
     .set_target = flask_set_target,
     .domctl = flask_domctl,
+#ifdef CONFIG_SYSCTL
     .sysctl = flask_sysctl,
+#endif
     .readconsole = flask_readconsole,
 
     .evtchn_unbound = flask_evtchn_unbound,
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Apr 21 07:38:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 21 Apr 2025 07:38:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.961003.1352654 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6ljE-0000mM-Pf; Mon, 21 Apr 2025 07:38:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 961003.1352654; Mon, 21 Apr 2025 07:38: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 1u6ljE-0000m2-Kg; Mon, 21 Apr 2025 07:38:08 +0000
Received: by outflank-mailman (input) for mailman id 961003;
 Mon, 21 Apr 2025 07:38: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=Kh51=XH=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1u6ljD-0000OX-EL
 for xen-devel@lists.xenproject.org; Mon, 21 Apr 2025 07:38:07 +0000
Received: from NAM04-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam04on20618.outbound.protection.outlook.com
 [2a01:111:f403:240a::618])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8ec3fd21-1e83-11f0-9ffb-bf95429c2676;
 Mon, 21 Apr 2025 09:38:05 +0200 (CEST)
Received: from BL1P221CA0044.NAMP221.PROD.OUTLOOK.COM (2603:10b6:208:5b5::16)
 by DS0PR12MB7728.namprd12.prod.outlook.com (2603:10b6:8:13a::10) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.34; Mon, 21 Apr
 2025 07:37:58 +0000
Received: from BN2PEPF000055E1.namprd21.prod.outlook.com
 (2603:10b6:208:5b5:cafe::5c) by BL1P221CA0044.outlook.office365.com
 (2603:10b6:208:5b5::16) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.36 via Frontend Transport; Mon,
 21 Apr 2025 07:37:58 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BN2PEPF000055E1.mail.protection.outlook.com (10.167.245.11) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8699.1 via Frontend Transport; Mon, 21 Apr 2025 07:37:58 +0000
Received: from penny-System-Product-Name.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; Mon, 21 Apr 2025 02:37:55 -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: 8ec3fd21-1e83-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=lYe3Nu3Pe/Y/iGxyZfhfQUPpneQ+sjrPWdpKOhkqfRiACYdGAthQxo61yAIvXv3z86hpuVmi/YSPE3FucVP2BCsTYCEPbM35801+8uVmD7srUgl5pACg5kE2IMNkWRi+HkGFgu0c/J5U8bBe5gIR0rQfrTGMJK6qNbeUUoS38K6sK5gvwA9t3T9bOS75BaoxHpfpg9GfJWeph3Baea7mm+UKlFNaUkKugopzILGifHwJpFLJJGdY06T2eoIkPpSRqDEvP2IiMEl07bwkxZ/O3c1WSFq1jmWqghHiLTo3DShnwhws/V1ZA+ZGH86NVvCTYBeYPGBXkhVN1pf0CDYmXw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=hilgACvHl4Syp1ch7k42+lgpwN4ZWXDPUPo+Y2KEs6A=;
 b=lpsNgkEF6UVj9M9Z2RC6XGPn143jLiVxSb0Xez8jFSQAAxOOFXTUYJT/FNk0aO7bZiGwYDwn+Qf9pkZEOlNZgQjkSaTAZuUNXGJ3uwS7RWZFqQUwYtOBjH7mP+uyLp+ji8eLmubVlBFw6h0cLuqvsSFfJFXtvxlQqVzedVNOf8Iz4H4WgBB9O8CDiGoSLBco6RIrmlRKgrpZzwQw5qBTOg51Y27kvUqkABhLlxM4jrEiCcybrq8NB4Y1s3izHC4uE+0UR9W9B2/Y4ReyM6Dxitre8dph+HlEDUmxK1bIHIIJA+HLeiQ/jBtTfutNjIYbGS+i8rX8gzlltKLictseQA==
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=hilgACvHl4Syp1ch7k42+lgpwN4ZWXDPUPo+Y2KEs6A=;
 b=aGfUGUUyZoU9YMKqoWMfDi7SSlRu0BiqfgnIoqAVjwD4hzQBPMYB3zrNt5CgZN07CCSnNGdRgLTYZcsun9xhvDvuxAEUi5cT+dXpe/VvKIB0KpcHDA8FsZPLWi2DR1ZoSjInUK+E3qET/NMVOMbW+5oBjdRbJAAdo68+cIvO094=
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: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, "Julien
 Grall" <julien@xen.org>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v3 05/20] xen/sysctl: make CONFIG_TRACEBUFFER depend on CONFIG_SYSCTL
Date: Mon, 21 Apr 2025 15:37:08 +0800
Message-ID: <20250421073723.3863060-6-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250421073723.3863060-1-Penny.Zheng@amd.com>
References: <20250421073723.3863060-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: BN2PEPF000055E1:EE_|DS0PR12MB7728:EE_
X-MS-Office365-Filtering-Correlation-Id: a9840dbe-20a1-450e-4ff5-08dd80a76ffd
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?7rbKJpHLB2raXc4o/xd4oenxGdI1LzvweJGCvZHQwKFDyOVeo7+lAqkO6RXi?=
 =?us-ascii?Q?0JzgI8nf7+dCu7tVcL/Qyo+dQ3crRqy5nu3pyFMbQ0TL/XC0hOezfe6n53iv?=
 =?us-ascii?Q?TxbAvtO2kjZ6MNSM5O+YAGNT1PVDewqDCZOGtz+VkZhbdy4zgaPUpwNm7XZb?=
 =?us-ascii?Q?D9osFqvTPouIHSEG7Fgz3Mmu7P+f/xnhqU1uWxh03gBHz8Lb4Vf0uP/DZAb5?=
 =?us-ascii?Q?JSovbWbCxL+zqf/2WwKHB0vKcE9cqeQ6E96c7069paZl5P3oIwT6vCxyE2Wu?=
 =?us-ascii?Q?2xaJLsgecDFMlGLN/PAuSPjIOuKkJA3A4KWW5+VnKGh0cNjNGuUQoq6FkgR7?=
 =?us-ascii?Q?v834ClhJ1A05ogAjd7Bif4rd4YEjmB6e1RQCeN8KU+ix/niDSwk0MdafeVHD?=
 =?us-ascii?Q?WFn5HIlGZKxDG79IGSR5IwStYSvrTcfHDmrChlJ66PMy327PMH+zPwism2nV?=
 =?us-ascii?Q?GY/hun1VrcKWBY6xZvguiBFZ0m6momtKm/+rqWjqrBpEm2yBePdonfJQdebu?=
 =?us-ascii?Q?RZpYaMkLcAhrgQITg8KQi83JHkPWsEyKfGnhvmAOrvs5sLioDiSfEtoH6HNv?=
 =?us-ascii?Q?vpu3aoiiK/dotbJ0L59PlYMOqhCrXoQokkaPO3pj6MKnvsOxNVlnIB3/5rqo?=
 =?us-ascii?Q?Kq0HimqNk/6y33JGn5SUTb5uumhJK8/pF97N0U7pzvH3jaE6iArk0C6n2x5F?=
 =?us-ascii?Q?EHyeEJpPYvzQo7idkQDZ0pOKaP8gH9mB1oJD3iB7F5TQu3DtDoweFeL4upZ0?=
 =?us-ascii?Q?i/wGl5ybAJYMIRM0qMr7RY1BnQLBwEmODcLk6aMZitwkx36VAiHkCR5OW2wN?=
 =?us-ascii?Q?ZSc6gHeZjPwcsFidblzbR+q/BNrGGlr4YQC3keCzaXMucj2ZvBkQCvMjiJQJ?=
 =?us-ascii?Q?cOzKXc487UkZyL1pAUYmsQ0CPLsKQ3IDKtcHFakrSbpFDdSyRiz9cS22/qzU?=
 =?us-ascii?Q?sO8j557OR25tBKJLdLSXawh/Vy7f2bgcCaFVBZa5N0LZq+n9cGwOd36oUzd9?=
 =?us-ascii?Q?YLwC0WWN2ltuUzRRv2/v5w1zn1BFMJpjF+dT8lvldr83eXlKRAB4ANZKeeHf?=
 =?us-ascii?Q?TSeux80tPCHZCMMwnlS1v9CuFmGbGamDJwPCCyYU8HqGLlf0dNe+XH0/+cBl?=
 =?us-ascii?Q?E/ns/otIswPEv6dVk9DSF23yj3/u66IGDA49lcFcu2iuaUlYFZx+37g9jDQY?=
 =?us-ascii?Q?Mux0r/SWks9syeJEqbXBoNDZSkBB+iOERtOqwqldKAp4u8Vs/1F8GMRPPo5Q?=
 =?us-ascii?Q?JjRt4dkASzWe1xTvNgNYN/MRVwLdAp1id9nkg3LeOrHSRt4N3FJkQA8sz8F4?=
 =?us-ascii?Q?VnTRNvf0XI1ARgRopx721U8zAaKXbssw9epahipHiz+Tf23B4EJtejpHJQC+?=
 =?us-ascii?Q?1vokTeICxd/EBKOvJ5KVEb5zgo/cIBEcdGxvB8qh3s9UaRCeosG+965Q+hZy?=
 =?us-ascii?Q?fVgSD60zmsLo9QLSwEuIAssHhlamIbJxHsOiCAz/NNPQRNiI51rRDxAcjvpM?=
 =?us-ascii?Q?ae4NUPKwUhmS2zg=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:;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: 21 Apr 2025 07:37:58.2823
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: a9840dbe-20a1-450e-4ff5-08dd80a76ffd
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:
	BN2PEPF000055E1.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB7728

Users could only access trace buffers via hypercal XEN_SYSCTL_tbuf_op,
so this commit makes CONFIG_TRACEBUFFER depend on CONFIG_SYSCTL

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
---
 xen/common/Kconfig | 1 +
 1 file changed, 1 insertion(+)

diff --git a/xen/common/Kconfig b/xen/common/Kconfig
index d89e9ede77..9cccc37232 100644
--- a/xen/common/Kconfig
+++ b/xen/common/Kconfig
@@ -549,6 +549,7 @@ config DTB_FILE
 config TRACEBUFFER
 	bool "Enable tracing infrastructure" if EXPERT
 	default y
+	depends on SYSCTL
 	help
 	  Enable tracing infrastructure and pre-defined tracepoints within Xen.
 	  This will allow live information about Xen's execution and performance
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Apr 21 07:38:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 21 Apr 2025 07:38:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.961006.1352662 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6ljG-00012P-0T; Mon, 21 Apr 2025 07:38:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 961006.1352662; Mon, 21 Apr 2025 07:38: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 1u6ljF-00011Y-Tm; Mon, 21 Apr 2025 07:38:09 +0000
Received: by outflank-mailman (input) for mailman id 961006;
 Mon, 21 Apr 2025 07:38:09 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Kh51=XH=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1u6ljF-0007m8-3r
 for xen-devel@lists.xenproject.org; Mon, 21 Apr 2025 07:38:09 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on2060d.outbound.protection.outlook.com
 [2a01:111:f403:2412::60d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9090a18c-1e83-11f0-9eb0-5ba50f476ded;
 Mon, 21 Apr 2025 09:38:07 +0200 (CEST)
Received: from MN2PR04CA0033.namprd04.prod.outlook.com (2603:10b6:208:d4::46)
 by SA1PR12MB5658.namprd12.prod.outlook.com (2603:10b6:806:235::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.26; Mon, 21 Apr
 2025 07:38:01 +0000
Received: from BN2PEPF000055DE.namprd21.prod.outlook.com
 (2603:10b6:208:d4:cafe::8d) by MN2PR04CA0033.outlook.office365.com
 (2603:10b6:208:d4::46) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.34 via Frontend Transport; Mon,
 21 Apr 2025 07:38:01 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BN2PEPF000055DE.mail.protection.outlook.com (10.167.245.8) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8678.4 via Frontend Transport; Mon, 21 Apr 2025 07:38:01 +0000
Received: from penny-System-Product-Name.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; Mon, 21 Apr 2025 02:37:58 -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: 9090a18c-1e83-11f0-9eb0-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=w6cuSsvftTpGWJtvCoyFCI8GiWDqr331zRj61Uk7MOfjLdex0Nugeke58IelhB09iN+cqsbbQtOa6q5h1u40iJKJkYQ93j4U0BL2YT/gyl9MUXeqUgORE7ihuj4TYj93h9gHlLNCl/BJxADoOpFGcfee2haBaGTAWgltF1WhQMyvdAuQn2D05O90KtoJeYE6NUSv4VKLWFmv16WHPaVE4CRdJb4Wuijo/FkmUg1z9lmi3+r/pX79DHeAhs/zmz9as/Z9oD80ty2cp+0qFl34XQOExBVOUl7f/QtWgB9e4dpiRCm7fXsUhzOLqa8ZrUVPUD70S2N49+/hL+L19MT12A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=dlGZ6nIZ1xZRQKXrjrM4A3O5qRVkPyMvLih7C/GSpNo=;
 b=ZlHzbc8C6XJcC/26/iGEl6n6VQVWCqx20Zgioawka2zyyuLdbh9SB+aarFQdvwZGqPCNECdMxdxP559fNP0vBo5Jf3zygSdFPgjSMCuMLwC20u0+ebVEvFPiEaohM6+mTIj6o2v89tpUjsSu+9LCBslG+5J86+0vXl5z8uGSoJS1CTefrArAuoEcUO4kPmMxP68DbBS7LX9wrT6ljInn7Kv5/6DYTSNM2zwBNkZnXrMARZOR2N7oymgWF5XPidI1TVzdSPCjSG2LXcTbaciQc+iijAQWBStYJCLnWe3egCGHlRzrKI/+3FGkLRLZbxdIatyFpgob49zGAHY9n67kUw==
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=dlGZ6nIZ1xZRQKXrjrM4A3O5qRVkPyMvLih7C/GSpNo=;
 b=mJtK9HpH2PHoaR91CLcn2pdWf2BF3Ppxh7Qqjm97KebSUCDQK4TxxnA50OyGCCdulAN4kmSj+HWeD4FZ3BdE3cbZcreRwgEZWbbKux9OVn9+7qchVDnmpqF4ZGdNB+12GsY4bOyI1zTwhQ+5gPlzLvSWw90lJRFA4UUa7wA6dcU=
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: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.com>, Dario Faggioli
	<dfaggioli@suse.com>, Juergen Gross <jgross@suse.com>, George Dunlap
	<gwd@xenproject.org>, Andrew Cooper <andrew.cooper3@citrix.com>, "Anthony
 PERARD" <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>,
	"Jan Beulich" <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, "Stefano
 Stabellini" <sstabellini@kernel.org>
Subject: [PATCH v3 06/20] xen/sysctl: wrap around XEN_SYSCTL_sched_id
Date: Mon, 21 Apr 2025 15:37:09 +0800
Message-ID: <20250421073723.3863060-7-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250421073723.3863060-1-Penny.Zheng@amd.com>
References: <20250421073723.3863060-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: BN2PEPF000055DE:EE_|SA1PR12MB5658:EE_
X-MS-Office365-Filtering-Correlation-Id: 4b814164-248c-41cc-bf2a-08dd80a771fe
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|376014|7416014|36860700013|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?cOKvB2f6ioPB2ANr0kswYbQZUGrL9S7baI4SRsNH+gUf8kK3hCIeaDMgFbdl?=
 =?us-ascii?Q?0dB+42+zftLFab1BLCFFaFBNuAMkc42+BpfDk1QnscYkWJyDiIikDAnQGd1n?=
 =?us-ascii?Q?ZnsS3S7ujl/TBfWmMEWM9kV1fPyptDZzrWPIPvSBeCaJAlDziGTS1qY7ELhh?=
 =?us-ascii?Q?aiRFfitO9Zuw1FB3qXy92DNkAFmpxTbDezICiaZSuvThiiCeNsm6dDyDa1df?=
 =?us-ascii?Q?fZ/ot3JU0s1lRNdkyDYEAucT3N8nwcNkfwWWzeXYpWEy4onDrjemxcGqENFz?=
 =?us-ascii?Q?WlOw20yVg0JpcqlFt/cypKeGbd6aHUy1RpR+KQOAlluaNZZPLR4fL39KB2d5?=
 =?us-ascii?Q?3bNd38qqjtiI/ubTM6IK9c51XBo/x6aVviQsN7XXotpc5b3N/T+ZTe1m3wbJ?=
 =?us-ascii?Q?dmApxIFSsbdGoeZ+t+A4/X8H+c25oO0KWfZU+Kqx9+kCOEjUqjzuDnUmJKWD?=
 =?us-ascii?Q?v9/uVh4rqcWv2D56HB4bSySGo0mVhvQCiLoM59ATDCkrJm4WkQBWcFQ/tAaL?=
 =?us-ascii?Q?0vH98egNMJxUfQq9cDP3ajTlpQXV0uZWLiiQBAwcoTokapMLJ4+IDDkduBck?=
 =?us-ascii?Q?duNf9pIoj9ZYOExIfPOd9TlR0z9yGEPwh9oQix5klFzASkyZ2grkVIr/3wEa?=
 =?us-ascii?Q?RjjgFP7qcHU5VUvBgMfflcer/FwZwNBq2h11tzQp6fBwBQZ0SUmVTarKfFRZ?=
 =?us-ascii?Q?e8Of1gVt1nl0DAC+X6no1zmuDD0u9db0qb5r8rfGy9KrdIeQfT9VWyfEyN62?=
 =?us-ascii?Q?gnYhgj8sYuGt2ZeWQ5dzJw1iCqc6IspPHPnXcF6t7WKohTuZ47G6nB7qYpSP?=
 =?us-ascii?Q?HWNjh0XeYNRynf467vCRxHx15dhrHDyFUSwBe/Oyb2MxO6UhBaiszR4++95W?=
 =?us-ascii?Q?h9AXsa2FMQY9O0JWF/pk+k0Twess6c2ThSXNXSP26MxcCqxzJPZduwQfBxBH?=
 =?us-ascii?Q?iu9Q87MU+IMCI3j9qfZhbvbRLUjCEFHvI+gWgCPfk8gw4nzwsz+6jV3eDt+k?=
 =?us-ascii?Q?8UWSJkRGlXiNdbwqON63ez1sKe4wLfCOkOgpMOKh6iSsn7TFMS81dVaT5dE7?=
 =?us-ascii?Q?GgD+urISK6qgzqxcRXyFxqUo4m6yRDCuimdgCUPIetRgxBVW9TtXUpRRSR8I?=
 =?us-ascii?Q?oNMaL+cT9YynKWQoc5XYgjcvDrQTsHtrd0/NOCudzAAd3zuagGSnOcb4h6rQ?=
 =?us-ascii?Q?wcdwlNODnoly1QrIN883EqFA8UO6SmHMpKSFMNO2oRVStUKzx1azt5dwE6ac?=
 =?us-ascii?Q?6u5LtJd3FPxHABr8TVc8gHaJhDhpQ+W/1bfiN+PmJLoXHXjDGNoUZZflS6C/?=
 =?us-ascii?Q?/WgOZvp5TW8gxfTvmZaMK5ELdsPxrMjQ74yvOt9hV5HSyeX/kQwJwMcMabX9?=
 =?us-ascii?Q?qK4Rn8+54bi50Tur2vy/FkmcIGBndFHqxIYALaXjDeK98LPvrx5fdRxVAe7C?=
 =?us-ascii?Q?zoPwSZYcbWfoF/vcWh8SXSIM8F1WGoAxvjNCzRK5ZvexeNmJY8zTkID/QldS?=
 =?us-ascii?Q?X0CR3Ve37/5VIki8w2wpvAZq50UFuZA7wXzL?=
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)(376014)(7416014)(36860700013)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Apr 2025 07:38:01.6472
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 4b814164-248c-41cc-bf2a-08dd80a771fe
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:
	BN2PEPF000055DE.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB5658

The following function shall be wrapped:
- scheduler_id

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
---
v2 -> v3:
- move #endif up ahead of the blank line
---
 xen/common/sched/core.c | 2 ++
 xen/common/sysctl.c     | 2 ++
 2 files changed, 4 insertions(+)

diff --git a/xen/common/sched/core.c b/xen/common/sched/core.c
index 9043414290..13fdf57e57 100644
--- a/xen/common/sched/core.c
+++ b/xen/common/sched/core.c
@@ -2069,11 +2069,13 @@ long do_set_timer_op(s_time_t timeout)
     return 0;
 }
 
+#ifdef CONFIG_SYSCTL
 /* scheduler_id - fetch ID of current scheduler */
 int scheduler_id(void)
 {
     return operations.sched_id;
 }
+#endif
 
 /* Adjust scheduling parameter for a given domain. */
 long sched_adjust(struct domain *d, struct xen_domctl_scheduler_op *op)
diff --git a/xen/common/sysctl.c b/xen/common/sysctl.c
index 814f153a23..b644347b40 100644
--- a/xen/common/sysctl.c
+++ b/xen/common/sysctl.c
@@ -72,9 +72,11 @@ long do_sysctl(XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl)
         ret = tb_control(&op->u.tbuf_op);
         break;
 
+#ifdef CONFIG_SYSCTL
     case XEN_SYSCTL_sched_id:
         op->u.sched_id.sched_id = scheduler_id();
         break;
+#endif /* CONFIG_SYSCTL */
 
     case XEN_SYSCTL_getdomaininfolist:
     { 
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Apr 21 07:38:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 21 Apr 2025 07:38:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.961011.1352673 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6ljI-0001NV-Gj; Mon, 21 Apr 2025 07:38:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 961011.1352673; Mon, 21 Apr 2025 07: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 1u6ljI-0001NC-BY; Mon, 21 Apr 2025 07:38:12 +0000
Received: by outflank-mailman (input) for mailman id 961011;
 Mon, 21 Apr 2025 07: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=Kh51=XH=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1u6ljH-0007m8-43
 for xen-devel@lists.xenproject.org; Mon, 21 Apr 2025 07:38:11 +0000
Received: from NAM10-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam10on2060c.outbound.protection.outlook.com
 [2a01:111:f403:2413::60c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 92276f3c-1e83-11f0-9eb0-5ba50f476ded;
 Mon, 21 Apr 2025 09:38:09 +0200 (CEST)
Received: from BL1P221CA0036.NAMP221.PROD.OUTLOOK.COM (2603:10b6:208:5b5::6)
 by SA1PR12MB9513.namprd12.prod.outlook.com (2603:10b6:806:45c::14) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.32; Mon, 21 Apr
 2025 07:38:04 +0000
Received: from BN2PEPF000055E1.namprd21.prod.outlook.com
 (2603:10b6:208:5b5:cafe::94) by BL1P221CA0036.outlook.office365.com
 (2603:10b6:208:5b5::6) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.36 via Frontend Transport; Mon,
 21 Apr 2025 07:38:04 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BN2PEPF000055E1.mail.protection.outlook.com (10.167.245.11) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8699.1 via Frontend Transport; Mon, 21 Apr 2025 07:38:04 +0000
Received: from penny-System-Product-Name.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; Mon, 21 Apr 2025 02:38:01 -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: 92276f3c-1e83-11f0-9eb0-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=s/xHelMs1EsbXpI6QsNfIvzryL+EuXW01gJ8TRMi1TShYPGGwFRNtaUg0pqKOHCNIA7CbNYDgPKlK/a72LKSgaAHMVdy/Pr40J1yFZaZYcPqnPGQ+/crPE5+bVnUXlW517J5X1OkoVHcCg9C5cqphlh8nw3GqUZxXjSqxSU3aEZd3YtWDEoBmeZj7cG+uWIblacie2FtnvvFYFvOFaVyQV0aVZuRcfHgAy3c7bRnZCL8XKcbBk+jhEt9jNKJiULUR1xOZcMW/LhV/CgYcbdCU+HEwzD9XZaLD3dzazXrV+ftwhqpnw+BVDbkpc1iO2XaBiE9QHgSiMfSxPD6DMa1Ug==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ZtqepNbzG/v0HEc0GM7qbXHNRHLGLqkNYOLvoJlXcTQ=;
 b=Dl8ujQ6dwkQn9CnSLPtf5dJVlMlqE26QnvrvSR49s0eMk/j9yJhnanr2ih6AhQ/MCY+SkiX6+o6B5JpUqahd0MC+XqP89EkiCKvavkMBHhLISrlKdQ+ioBQzZpKf5upjrN2lgQDpKK8Z/Un5LeTGVZD5dOh9gMmiM4SaWzPYiNQrHtNLN7kvcsqpG7o8bipS0c8Zx+ugGyIcXccj85gIjiux61vEH5aZSpIG6smiV7A+xqCEIhWUxPkgyuvj6OuOLBP71hK9SBWBIMcywWjKRVO+RvzH30Y4LORimSxdguPObqXa2ZaoHaZmtVYBi3WlJQYqM+MrR/LZa8UIuhCeZA==
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=ZtqepNbzG/v0HEc0GM7qbXHNRHLGLqkNYOLvoJlXcTQ=;
 b=ZuunVBZePe+ApZXOCVPVLUOKQN24Nw6MTabINTBUIiQrw8qN7MuhN08GY6uy0Ok+X9dhvhblMykgnhQejFmQNrBlYCxARvFfPmE7Qq/2FngIZLpQyMtTfASonJdoLGGE0uq27MvXEYGyUTYGvoVUJsHCycAkH7LfKrrOfQxJt4E=
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: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, "Julien
 Grall" <julien@xen.org>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v3 07/20] xen/sysctl: wrap around XEN_SYSCTL_perfc_op
Date: Mon, 21 Apr 2025 15:37:10 +0800
Message-ID: <20250421073723.3863060-8-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250421073723.3863060-1-Penny.Zheng@amd.com>
References: <20250421073723.3863060-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: BN2PEPF000055E1:EE_|SA1PR12MB9513:EE_
X-MS-Office365-Filtering-Correlation-Id: be46c09a-519b-4835-6d41-08dd80a773a3
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?1JmxELVEzI+GukZxogtyohaLTnzTpPG4XL32+UNF947Vn0ZHmvVMOHrkQtx5?=
 =?us-ascii?Q?2Kn3GYkZrl8N5q4oX6hWIuOMHEzda6fzYxXevwhnovdqB2T0/XZLeCG8LMCg?=
 =?us-ascii?Q?yNuyshAKydo8I2XLqlOCK/SBxpEokVxkliANbsZ6+gYMWM5CSPHkrdyA6WhM?=
 =?us-ascii?Q?r6fr5JpFt0pZN6DGMUiTrTgIVaLCJpPP1NjLGlhyhNMUbEjRXKwpI3+WxA2L?=
 =?us-ascii?Q?VDT0W/0NiSxCRB7oLV1BNgLNp2hW+OZLnnV5wtLiSltNbEWWSS3g8v3ffjo6?=
 =?us-ascii?Q?8zhH5P6BAhOnU+b9l5hRDS23DmP9Uy0Ywz75erlbn97WRhAeYJ9JNC9EIQ4K?=
 =?us-ascii?Q?8QPW1u7UK3rtBIE2s2IzuaLXSi/EYyBXHAfAOe8omBAzPPet86AuXkxoFZ4g?=
 =?us-ascii?Q?RoaXgub5CuRlKeY9QRlibsCFmBs5njgLqiH1xvQJxxZHh5B6hq5FY26gVkCd?=
 =?us-ascii?Q?A02TGgL/Rb1PpQKSwv/Evg8eb8H4ZmyCzWcHK60Xrp/9ClV/LMxhvR1K3WYG?=
 =?us-ascii?Q?LQ94QzG6dN1Mx4Sqj9ELHwGgVFCCFpMNPppZsPx7lodE+w+/K1tBd9cmaWmu?=
 =?us-ascii?Q?67n8WM9UqNe6c2c01Cwe9/xy/4uyFrdEcXB0x/h6rfcmWpBSm2MLT4+sKm29?=
 =?us-ascii?Q?kMwU7HNBEH4rpihWcoJ4rVgI17UScob95qsZKqqNYJbW3B3ZV+lkctS2H+cO?=
 =?us-ascii?Q?eckaO7v3aBeNIHsoAE+Cq0DtEabmvdYIQMujlqZm8aiDjOJYJE/2C889B7tz?=
 =?us-ascii?Q?IVulAkA+gmtWhzMy4pEJhtrYuEJhT3NPjbQU2z/P4ETtIPjj1/rc+X9DVeY4?=
 =?us-ascii?Q?1HNAqG+U6gIvjB6ClJb4qo9IIePdAbCT6P1D2u9+45RcppftuV59ojtcTIpK?=
 =?us-ascii?Q?Grimym6b6yj8sL0RQ4yyVxGOsUMBMmOHGqvBG6ARjCXn9VftVF8ZNsOWb5Cw?=
 =?us-ascii?Q?ARHhiwqvP3S7/5X8P1yUxl5Y3K2YOVJ+bR6rmMXucOJsqn1X1eX98N3yIrrT?=
 =?us-ascii?Q?Bi/QgVSWczhz8nmXu4wC4NhEL7mmq6JzPLUJtKWR/D81y78xXHcE87y3OXE0?=
 =?us-ascii?Q?BEgrFYlHrEbowkqHl3dTCBQxQfe6gs00c0BBtAt/mLXbF90RnZqa+lgWxPTA?=
 =?us-ascii?Q?Ni4WcsE1H95ny0mVVJioN/I+qhWBBoicrDwsVJveOozkNBi81Sc8M388sSEe?=
 =?us-ascii?Q?N8Q0lkr3/ir7y8zGa8HSSzGnjwjoH5wo9CAPEl54c7uhwORgKeispsCjMlFB?=
 =?us-ascii?Q?BsngxJ4DxWdVPPCAFxSUmUihJAZSpBp7AsSJLcYBGOMT69eZ20VgYsV0fwAg?=
 =?us-ascii?Q?RNwjQBnJo/eJIF1FVZJfksBZa+iWSjGP92n5x2FDp56NUR9R3Bi3b7NLVgCF?=
 =?us-ascii?Q?Jf1+vBFfWp5SjiPRT/TQM2tSqqHLN2ZwdK1Jxser3o8BqZwzVQYj2gx5EsM7?=
 =?us-ascii?Q?biDYjT1wlcpVl+be4EthhS+DHC6ICMOGHsAkw0x9EQMQV98Qmi3e7Rg0wwtY?=
 =?us-ascii?Q?TqTYAi7Grz7pr2I=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:;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: 21 Apr 2025 07:38:04.4033
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: be46c09a-519b-4835-6d41-08dd80a773a3
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:
	BN2PEPF000055E1.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB9513

perfc_control() and perfc_copy_info() are responsible for providing control
of perf counters via XEN_SYSCTL_perfc_op in DOM0, so they both shall
be wrapped.

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
---
 xen/common/perfc.c  | 2 ++
 xen/common/sysctl.c | 2 ++
 2 files changed, 4 insertions(+)

diff --git a/xen/common/perfc.c b/xen/common/perfc.c
index 8302b7cf6d..0f3b89af2c 100644
--- a/xen/common/perfc.c
+++ b/xen/common/perfc.c
@@ -149,6 +149,7 @@ void cf_check perfc_reset(unsigned char key)
     }
 }
 
+#ifdef CONFIG_SYSCTL
 static struct xen_sysctl_perfc_desc perfc_d[NR_PERFCTRS];
 static xen_sysctl_perfc_val_t *perfc_vals;
 static unsigned int      perfc_nbr_vals;
@@ -265,6 +266,7 @@ int perfc_control(struct xen_sysctl_perfc_op *pc)
 
     return rc;
 }
+#endif /* CONFIG_SYSCTL */
 
 /*
  * Local variables:
diff --git a/xen/common/sysctl.c b/xen/common/sysctl.c
index b644347b40..608e159571 100644
--- a/xen/common/sysctl.c
+++ b/xen/common/sysctl.c
@@ -117,11 +117,13 @@ long do_sysctl(XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl)
     }
     break;
 
+#ifdef CONFIG_SYSCTL
 #ifdef CONFIG_PERF_COUNTERS
     case XEN_SYSCTL_perfc_op:
         ret = perfc_control(&op->u.perfc_op);
         break;
 #endif
+#endif /* CONFIG_SYSCTL */
 
 #ifdef CONFIG_DEBUG_LOCK_PROFILE
     case XEN_SYSCTL_lockprof_op:
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Apr 21 07:40:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 21 Apr 2025 07:40:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.961048.1352682 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6llf-0004hH-Sm; Mon, 21 Apr 2025 07:40:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 961048.1352682; Mon, 21 Apr 2025 07:40: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 1u6llf-0004hA-QB; Mon, 21 Apr 2025 07:40:39 +0000
Received: by outflank-mailman (input) for mailman id 961048;
 Mon, 21 Apr 2025 07:40: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=Kh51=XH=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1u6ljl-0000OX-IA
 for xen-devel@lists.xenproject.org; Mon, 21 Apr 2025 07:38:41 +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 a3a7525f-1e83-11f0-9ffb-bf95429c2676;
 Mon, 21 Apr 2025 09:38:39 +0200 (CEST)
Received: from BN9PR03CA0142.namprd03.prod.outlook.com (2603:10b6:408:fe::27)
 by DS7PR12MB6310.namprd12.prod.outlook.com (2603:10b6:8:95::21) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.36; Mon, 21 Apr
 2025 07:38:33 +0000
Received: from BN2PEPF000055E0.namprd21.prod.outlook.com
 (2603:10b6:408:fe:cafe::b) by BN9PR03CA0142.outlook.office365.com
 (2603:10b6:408:fe::27) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.35 via Frontend Transport; Mon,
 21 Apr 2025 07:38:33 +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.8678.4 via Frontend Transport; Mon, 21 Apr 2025 07:38:32 +0000
Received: from penny-System-Product-Name.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; Mon, 21 Apr 2025 02:38:28 -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: a3a7525f-1e83-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=SF/FCEYDLtc3Dzm+o2FpMJLNflzBfpmzahAaPCwNFLazWTP7IW5YmJ+aoeR0+jReh4eFKaFvdt22UogzJl6WcGs8Md3+aQYQe+WeRIB7iQiDZio2q3ys4uekY0kFy79H076oPJXxEWMm6A+HqjqOG4B4rMaiR8fDnd/LX8UefaBJQ5K6kuPpwHHQXWd4a547hXdv61qM5edRu1RPpCno+RkppgIaIa9bDJ30aziCb4japaTSKAGI//ai8JaUHNuhHXoWnass+xslEvBzBRDI23X8n71nNGyAO2HC7d8gSnE2/Cu9+kYOkyWTYkiF80QYLEbGGDDxsQzAEaS2b7Bz8w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=qWwDXkvXuRz0vOu+dnmem7tV0xovLzB6Mu4anTEiFcU=;
 b=eLP6ynwC0JFdx6CsUMhCytsM/VSOL2BdwGUEyRyIWaZEsQ7gQvhG/t5FZZBmZXG+Gewwkm7ZV0h67VFR0LHx0WBFElibIEvyUEkPbywxzDAr3ZQ3O1HDdWreFGRxhfr23bkrK4BVjHwBu4hTguIvAdQOpz1oIUue1Kt1wo5YI8hXUSzvsgtCwsZ3tH8RKNKQxpxE4GsnW2xZFifBSBpcY+cQ+SwlzO4p/cdGsGqIXardws+jYqAszImO/SomrNaRnZwbbJYbkoNojGuzx27vg6xdozsfV9jvn8Zq74TRlKjdr1VAfLKJIr6C6OqNk7k4u2VwCKNJUosd9e3uZKKFGQ==
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=qWwDXkvXuRz0vOu+dnmem7tV0xovLzB6Mu4anTEiFcU=;
 b=ZtUR8JZNpOaOmpeN6YuBRiEC3yZMelwnevD6ZbqOiYNLkW8OkKnPBEDdK4QUsLaAXtOwMudUWgk6R4SqiCNZTZqocj9JpKlB7D8i11a58k3CDbEOyv4/XxfnO8ekyuJTA0NxWm3mBPryuNm54Fi5W17V/2Ig8juBm/tNrBaUI1g=
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: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, "Volodymyr
 Babchuk" <Volodymyr_Babchuk@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, "Jan
 Beulich" <jbeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Alistair Francis <alistair.francis@wdc.com>, "Bob
 Eshleman" <bobbyeshleman@gmail.com>, Connor Davis <connojdavis@gmail.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH v3 16/20] xen/sysctl: wrap around XEN_SYSCTL_physinfo
Date: Mon, 21 Apr 2025 15:37:19 +0800
Message-ID: <20250421073723.3863060-17-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250421073723.3863060-1-Penny.Zheng@amd.com>
References: <20250421073723.3863060-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: BN2PEPF000055E0:EE_|DS7PR12MB6310:EE_
X-MS-Office365-Filtering-Correlation-Id: ea2cecbc-3430-4f5f-ab2b-08dd80a784aa
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|82310400026|376014|7416014|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?0eyjZcfU+yjGVwfbJD/sGtP2x62xqYA80weWLtIx0fJEbXOlP74jwVcVSuQp?=
 =?us-ascii?Q?3GLkQdzReWfAKIrohAVvJ86n3d28p5k8RYA0PK68o8Z8fwgJpeWwoNSnFkQM?=
 =?us-ascii?Q?TzyMBBMJTF37AAphYu0RIEVmtbiPGom/N+hEuKtsoWoz3GNfkOlB+a7aiVFt?=
 =?us-ascii?Q?jO4DpoKVjnui3E2mt7G23P/sN2XKkJJE7fsrOC/lRF9y2XHnLcdK2UAd+/CO?=
 =?us-ascii?Q?uhU79InR34IE2aLCQVxC+kXfxoCcKp/wFsxIHv+9nyWjfHu98j1sXFC0JdDd?=
 =?us-ascii?Q?EngYpZUnqf0uWAOrx7W/5U00UgFjtoNqap9uExYnbgb+gP7wzJsxYxnjV+bM?=
 =?us-ascii?Q?8IQs64180p3AVfKQ80YNlkehME6okn7NSoQgjrjSwhu/3sHjiQgjm8Q6M8gz?=
 =?us-ascii?Q?x6+6v9fX2D2lWTpqvv7q1IjpwdVe5Au2vsOLdNNREzEAWfjrJsW0eB8RqWhE?=
 =?us-ascii?Q?AJ6kh5KjeqG9tyJHidy8mERQzNPKZ59flioiym9puOIJYlHnXX4VBL7yvh1z?=
 =?us-ascii?Q?PlRWPme0SOOZuS9kJAEN04CYa31N22e9LMxbealS3eCsotBowYTOrpCLQ7Gi?=
 =?us-ascii?Q?GuyGo3pUjqkrO3iGz/rXJYsYBH2dANdaEpP2l606NGy44P587Cb+xgDf8hEn?=
 =?us-ascii?Q?UqPCJcIkUDGOKlZU2ZcnwlZT3dLHwWXKyx32eT2u7fC/MMbs24FgGIQBQLo2?=
 =?us-ascii?Q?27uH75G2BqjErUYAPM+e38eXQc2oNwJYq2C51oKgCnZTHTr/spnRogcjbXb4?=
 =?us-ascii?Q?DJL5A6dkpQDzvA6gRP/ATSvreGZU4GxwPK5RBAaqYq9kZjrFsOkpkoDHEyJf?=
 =?us-ascii?Q?0rJqu/4PAtSp7BUJpXJl7KG60XLIvxvP/vlUfLmFlMxunXdpx3ns4bD651d5?=
 =?us-ascii?Q?oDx8rCgZcY3W2R1ei4fQ73ylzzHx+Dt8XnMUDuP9c3o6i9cU1JXA0VaegW0g?=
 =?us-ascii?Q?O+8JHEQRdU5M+RTKzjjH8Tk3pUSmDKYAkIp0EjXgD81+TppoK8fHg0Pfc95o?=
 =?us-ascii?Q?3oaBtgjrPhyGDjY1yOP54Hh4yabY+5LwjqmT6a10QEMh9Evsf9diw8p6Qy5M?=
 =?us-ascii?Q?9fugEqiX9DmwWoYkNIHDyM83HXRF7gDZn9el5ABIX9B//E7dUl4Blm3ojc9q?=
 =?us-ascii?Q?56Zb8Nal4b4CvpaxF9Sk69SYevr+JxwjWcuK2yfp2r265nW6MdY9tbw34u2t?=
 =?us-ascii?Q?ZyrVEPJTjDOsxxJIfNYo3kCHPTZZZ6pg1g3GsI57pzzKmDBdS5vh3+FeNDZ3?=
 =?us-ascii?Q?10nWTSjNHzXhLFGTDQG8wZ3Ln//T3fu6wXgDrWPbaZTWbaJW3EgcGdcIju1P?=
 =?us-ascii?Q?ClAWxBLopc3G8+cY4akMbkhscG+tLhv+HAvswUIBu1GsGhks18N0xy5+z3Kp?=
 =?us-ascii?Q?TWPUG+0O19M0eCQibGJDJR4uScGeJBXahO0E3/8ZzKI8hYRFObeJvwNesZ/x?=
 =?us-ascii?Q?fImxDuXpbknVZ+F87e3SrqaA5ClM8cFqjmry1ukhO0icKG2w/LXfWJpt5GGO?=
 =?us-ascii?Q?pufMrnhL3Ew0Fov1IFj8pMYd6dIHNr2HLBgt?=
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)(7416014)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Apr 2025 07:38:32.9719
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: ea2cecbc-3430-4f5f-ab2b-08dd80a784aa
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: DS7PR12MB6310

The following functions are only used to deal with XEN_SYSCTL_physinfo,
then they shall be wrapped:
- arch_do_physinfo
- get_outstanding_claims

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
v1 -> v2:
- no need to wrap declaration
- add transient #ifdef in sysctl.c for correct compilation
---
v2 -> v3:
- move #endif up ahead of the blank line
---
 xen/arch/arm/sysctl.c   | 2 ++
 xen/arch/riscv/stubs.c  | 2 ++
 xen/arch/x86/sysctl.c   | 2 ++
 xen/common/page_alloc.c | 2 ++
 xen/common/sysctl.c     | 2 +-
 5 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/xen/arch/arm/sysctl.c b/xen/arch/arm/sysctl.c
index 32cab4feff..2d350b700a 100644
--- a/xen/arch/arm/sysctl.c
+++ b/xen/arch/arm/sysctl.c
@@ -15,6 +15,7 @@
 #include <asm/arm64/sve.h>
 #include <public/sysctl.h>
 
+#ifdef CONFIG_SYSCTL
 void arch_do_physinfo(struct xen_sysctl_physinfo *pi)
 {
     pi->capabilities |= XEN_SYSCTL_PHYSCAP_hvm | XEN_SYSCTL_PHYSCAP_hap;
@@ -22,6 +23,7 @@ void arch_do_physinfo(struct xen_sysctl_physinfo *pi)
     pi->arch_capabilities |= MASK_INSR(sve_encode_vl(get_sys_vl_len()),
                                        XEN_SYSCTL_PHYSCAP_ARM_SVE_MASK);
 }
+#endif
 
 long arch_do_sysctl(struct xen_sysctl *sysctl,
                     XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl)
diff --git a/xen/arch/riscv/stubs.c b/xen/arch/riscv/stubs.c
index 83416d3350..295456d0c8 100644
--- a/xen/arch/riscv/stubs.c
+++ b/xen/arch/riscv/stubs.c
@@ -321,10 +321,12 @@ long arch_do_sysctl(struct xen_sysctl *sysctl,
     BUG_ON("unimplemented");
 }
 
+#ifdef CONFIG_SYSCTL
 void arch_do_physinfo(struct xen_sysctl_physinfo *pi)
 {
     BUG_ON("unimplemented");
 }
+#endif /* CONFIG_SYSCTL */
 
 /* p2m.c */
 
diff --git a/xen/arch/x86/sysctl.c b/xen/arch/x86/sysctl.c
index 1b04947516..f64addbe2b 100644
--- a/xen/arch/x86/sysctl.c
+++ b/xen/arch/x86/sysctl.c
@@ -91,6 +91,7 @@ static long cf_check smt_up_down_helper(void *data)
     return ret;
 }
 
+#ifdef CONFIG_SYSCTL
 void arch_do_physinfo(struct xen_sysctl_physinfo *pi)
 {
     memcpy(pi->hw_cap, boot_cpu_data.x86_capability,
@@ -104,6 +105,7 @@ void arch_do_physinfo(struct xen_sysctl_physinfo *pi)
     if ( IS_ENABLED(CONFIG_SHADOW_PAGING) )
         pi->capabilities |= XEN_SYSCTL_PHYSCAP_shadow;
 }
+#endif /* CONFIG_SYSCTL */
 
 long arch_do_sysctl(
     struct xen_sysctl *sysctl, XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl)
diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c
index 5803a1ef4e..36424a9245 100644
--- a/xen/common/page_alloc.c
+++ b/xen/common/page_alloc.c
@@ -601,6 +601,7 @@ out:
     return ret;
 }
 
+#ifdef CONFIG_SYSCTL
 void get_outstanding_claims(uint64_t *free_pages, uint64_t *outstanding_pages)
 {
     spin_lock(&heap_lock);
@@ -608,6 +609,7 @@ void get_outstanding_claims(uint64_t *free_pages, uint64_t *outstanding_pages)
     *free_pages = avail_heap_pages(MEMZONE_XEN + 1, NR_ZONES - 1, -1);
     spin_unlock(&heap_lock);
 }
+#endif /* CONFIG_SYSCTL */
 
 static bool __read_mostly first_node_initialised;
 #ifndef CONFIG_SEPARATE_XENHEAP
diff --git a/xen/common/sysctl.c b/xen/common/sysctl.c
index 200e0a0488..b4feb07e60 100644
--- a/xen/common/sysctl.c
+++ b/xen/common/sysctl.c
@@ -260,7 +260,6 @@ long do_sysctl(XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl)
     case XEN_SYSCTL_scheduler_op:
         ret = sched_adjust_global(&op->u.scheduler_op);
         break;
-#endif /* CONFIG_SYSCTL */
 
     case XEN_SYSCTL_physinfo:
     {
@@ -303,6 +302,7 @@ long do_sysctl(XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl)
             ret = -EFAULT;
     }
     break;
+#endif /* CONFIG_SYSCTL */
 
     case XEN_SYSCTL_numainfo:
     {
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Apr 21 07:40:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 21 Apr 2025 07:40:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.961049.1352693 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6llh-0004wu-3a; Mon, 21 Apr 2025 07:40:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 961049.1352693; Mon, 21 Apr 2025 07:40: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 1u6llh-0004wi-10; Mon, 21 Apr 2025 07:40:41 +0000
Received: by outflank-mailman (input) for mailman id 961049;
 Mon, 21 Apr 2025 07:40: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=Kh51=XH=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1u6ljm-0007m8-8j
 for xen-devel@lists.xenproject.org; Mon, 21 Apr 2025 07:38:42 +0000
Received: from NAM10-BN7-obe.outbound.protection.outlook.com
 (mail-bn7nam10on2061a.outbound.protection.outlook.com
 [2a01:111:f403:2009::61a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a59d6dc4-1e83-11f0-9eb0-5ba50f476ded;
 Mon, 21 Apr 2025 09:38:41 +0200 (CEST)
Received: from BN9PR03CA0142.namprd03.prod.outlook.com (2603:10b6:408:fe::27)
 by LV3PR12MB9439.namprd12.prod.outlook.com (2603:10b6:408:20e::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.35; Mon, 21 Apr
 2025 07:38:37 +0000
Received: from BN2PEPF000055E0.namprd21.prod.outlook.com
 (2603:10b6:408:fe:cafe::7c) by BN9PR03CA0142.outlook.office365.com
 (2603:10b6:408:fe::27) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.35 via Frontend Transport; Mon,
 21 Apr 2025 07:38:37 +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.8678.4 via Frontend Transport; Mon, 21 Apr 2025 07:38:37 +0000
Received: from penny-System-Product-Name.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; Mon, 21 Apr 2025 02:38:34 -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: a59d6dc4-1e83-11f0-9eb0-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=eyKDBHzWy8MB0c20xndSM3xCJH5E7qQ2+CeZngqztqoVSBQ/+M563bMrMrxyBW4xtl9YI0ZwdurCaIxl9zpcsyzez8fIlOV1JI5LTS866LFrL6JoYpWGAVr/7DEuFOqnvCMmbciOMPDy+Nlg2qESnUvDe5Bo74j4YNt+9j1Ehmx5mqsdQbSJyiSjyfg4lY2gPG3PHKxg9Yb1HU5hTUVuNWnSRlcaENKDteFwU67ftxLrxPn5hHtuL6YCakfH2s3yZ7H113hbEVGzgSLqEmi2N6fhr4Otl+aznHtWfJku3qja9FAsKs4BRRSud3Z0ndC+V0sJvWzhZPhyL4cgiseihQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=EnyIrDi9rVXKU6MVkCtl80IgBbsG0KVm/Y0El01Npxg=;
 b=NYa3yZe0KKb235aiWXNFQ/QdoMrvw1BycufEs2Ep1M9mnMt2x4soEGEbUywRs45/8ecUcpYUXbO4V72dGVIGPwNde0HkV0eA/tB65E1WDXVFrQOOmYqm9d7NgYZiyo93HgyoqO302zOCBU9M+8eKe4vmUp+aDLWsXDpuuvqKeW5tnwKG8qXWeHSZiyuzAJRFIWiydmewkMobgAxb2zQA9Oe3y6ETFNzjayvCwCg1+pkr/5+1WlmFqeC5laKObDZHNznPlX+v2TSqOWlyKzR58dteIAeIyqo/6YtuES50wJ73pcm9oObTyygHYL1UfqTKQtMTqcIH2VND5dl6Wp0rSw==
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=EnyIrDi9rVXKU6MVkCtl80IgBbsG0KVm/Y0El01Npxg=;
 b=DcYNoMntcUzXH2b0DawcdSFUEynYfoY+5P2lmVdVvNRGIKTbfUjdWim/CH/oKXjQd46JmU7NS1lCKQ78Alxy+AoswEljlGymO+JuP3cu3xv69pay9vJaU5b15moyMg+eo7nAivsMHJ1KpXOaarx0ILCXArep2jUaLceaIi9LZt4=
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: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, "Julien
 Grall" <julien@xen.org>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v3 18/20] xen/sysctl: make CONFIG_LIVEPATCH depend on CONFIG_SYSCTL
Date: Mon, 21 Apr 2025 15:37:21 +0800
Message-ID: <20250421073723.3863060-19-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250421073723.3863060-1-Penny.Zheng@amd.com>
References: <20250421073723.3863060-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: BN2PEPF000055E0:EE_|LV3PR12MB9439:EE_
X-MS-Office365-Filtering-Correlation-Id: 0965916b-6389-4f72-b70c-08dd80a78773
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|82310400026|1800799024|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?LwTsTGrTIP/PSy/LwHMF14DIaA6nrb7UdGRTt9Mbl4Gpg6LLUbPZxC53HGRb?=
 =?us-ascii?Q?LOBHBvdRE45inMhPQjuKCI6Vt9VGO1y0F+m5rz1WiJFLYDdOeGA5C5ErIISs?=
 =?us-ascii?Q?BKcamHTKb9KscO7rebpedtdlv6JVLbY26NInQ1Q9yH8C3sCR+vHEsOZCWqRF?=
 =?us-ascii?Q?GccgpPUOzuLMEl1uI99awUz7lBSZ8dMfuhSgOgi6yP7hT3uwR591bxnfDKLy?=
 =?us-ascii?Q?NqE6WfGsiQgCMfQtXu2Pm6hEDGZTxXQy6cdWx3h1McZz/wOB9az2PVEO6GOs?=
 =?us-ascii?Q?9gwF5LnSdDVZqifOtijbIPJar/ORRQOZayk8EVnJ0u18IzfX2o6+MuUk0m6D?=
 =?us-ascii?Q?4xL//9DOcimvgytpx7CjoPHQ4uOnB1O6gsdLOFql03fgWH5WGzSv8actCMih?=
 =?us-ascii?Q?oj1psqIx42FRLRUsJu2tRjPLnZkB6Kx6y8pkc4qt37qouChtTf8DqG1nIbtQ?=
 =?us-ascii?Q?XNOuWxkPlZaw21/1zYhOgMNDVuU1i5i33Edqyw1VWtnNt2bleBdsUD3Z+7Ym?=
 =?us-ascii?Q?hiBzOkKdGrw5mXVrQh3QiY0gc090F9iRehXM/OO/fgMI8CXU1IrZZFuRo9lK?=
 =?us-ascii?Q?xEXUUgmRHVggclJeOr4PlWhtBvxizr9wNoXy5NxGSxlw3+6KwgZNbScWmM4B?=
 =?us-ascii?Q?ETkvhVt8+oLlY7QdtsedukRykmMg3xJ+qaMDJarMlCi+A+HKezaT0ocGQ8Bg?=
 =?us-ascii?Q?N+FJALpZIlilvGBwfcAfCStBNrZ51x1h0eKQbetbgk8+9FwI/BPnAsd8jQ3r?=
 =?us-ascii?Q?xskfNGAZZCuXF0A6dMuQ1M5NYcZvM/5FXot32nAAbBE12D24UsoflC5145pL?=
 =?us-ascii?Q?UK41r1VbKTqROS3WkxsdAZ0VVxK3y6ZT9is7PHqamJXIbZmV7RtVk2rCXSov?=
 =?us-ascii?Q?9tAxDYfX2kG9Z6JNRCXlVUzlJuMsYsLyy1KFmrpxTjZ1MDovC+sSAc32Kfxl?=
 =?us-ascii?Q?epKxx7G4AJMFZfhdsWPp4cJ6jx8ovmeh4goIJTYEOQlzsRUF4IjykCppIbLP?=
 =?us-ascii?Q?7y20LwVQQXxjXaGyot4CB2MpYSw84Vz6oDw5DmTt1iw1lAkoDqSDXoQOqvPv?=
 =?us-ascii?Q?9L0FZEQiiOoSC7cdFwxNapmPAdvPqagX8yDKz7kQPKpgNIdxChjwdjsfZ45l?=
 =?us-ascii?Q?uJOA0+F9BNfZj5S6kppg/4MXwOwDzCpyIchXLfOfBcGMlFD/HC0dcIyznVSP?=
 =?us-ascii?Q?JfdEmmVEG4L7uuoazQqj82aixhhq9I9MQfBG56SVpXTIhjk5XMYBMyKYSN47?=
 =?us-ascii?Q?+afymMSDFxC747OpKhKLiTX22yBJegqIxxG3/P2XWzhstxneG8iedlQ0Xcku?=
 =?us-ascii?Q?xfwj67DsCg1DXuyx2cAqZj8HC3NfByWRF9EeamUhX97btcaF9XgxHSs0/+1P?=
 =?us-ascii?Q?mTcqx/LiXZivrPyP433fPcjszuct0WihuS1YCRGxww6XjAEdtdUM3bAfuNv6?=
 =?us-ascii?Q?Wjn7901aTub9AtKamLQFOo2/dRavr7BQEarXkB1U7iN8fgHEVosyIV7bSoRv?=
 =?us-ascii?Q?qgzicJW1OafPBrbIJLNnh8oMkEBc1Vdp0n6k?=
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: 21 Apr 2025 07:38:37.6441
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 0965916b-6389-4f72-b70c-08dd80a78773
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: LV3PR12MB9439

LIVEPATCH mechanism relies on LIVEPATCH_SYSCTL hypercall, so CONFIG_LIVEPATCH
shall depend on CONFIG_SYSCTL

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
---
v1 -> v2:
- commit message refactor
---
 xen/common/Kconfig | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/common/Kconfig b/xen/common/Kconfig
index d8e242eebc..db6f75fae5 100644
--- a/xen/common/Kconfig
+++ b/xen/common/Kconfig
@@ -457,7 +457,7 @@ config CRYPTO
 config LIVEPATCH
 	bool "Live patching support"
 	default X86
-	depends on "$(XEN_HAS_BUILD_ID)" = "y"
+	depends on "$(XEN_HAS_BUILD_ID)" = "y" && SYSCTL
 	select CC_SPLIT_SECTIONS
 	help
 	  Allows a running Xen hypervisor to be dynamically patched using
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Apr 21 07:40:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 21 Apr 2025 07:40:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.961055.1352703 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6lls-0005vj-Fq; Mon, 21 Apr 2025 07:40:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 961055.1352703; Mon, 21 Apr 2025 07:40:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6lls-0005vY-Bv; Mon, 21 Apr 2025 07:40:52 +0000
Received: by outflank-mailman (input) for mailman id 961055;
 Mon, 21 Apr 2025 07:40: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=Kh51=XH=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1u6ljv-0007m8-IQ
 for xen-devel@lists.xenproject.org; Mon, 21 Apr 2025 07:38:51 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on20615.outbound.protection.outlook.com
 [2a01:111:f403:2414::615])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id aa83b2ef-1e83-11f0-9eb0-5ba50f476ded;
 Mon, 21 Apr 2025 09:38:50 +0200 (CEST)
Received: from BN0PR10CA0005.namprd10.prod.outlook.com (2603:10b6:408:143::19)
 by IA1PR12MB6650.namprd12.prod.outlook.com (2603:10b6:208:3a1::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.33; Mon, 21 Apr
 2025 07:38:45 +0000
Received: from BN2PEPF000055DC.namprd21.prod.outlook.com
 (2603:10b6:408:143:cafe::5b) by BN0PR10CA0005.outlook.office365.com
 (2603:10b6:408:143::19) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.34 via Frontend Transport; Mon,
 21 Apr 2025 07:38:45 +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.8678.4 via Frontend Transport; Mon, 21 Apr 2025 07:38:45 +0000
Received: from penny-System-Product-Name.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; Mon, 21 Apr 2025 02:38:42 -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: aa83b2ef-1e83-11f0-9eb0-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=tWfluo6nysMMOpwDbLL8MWabMVj3oZJwOs/FcIjOzKNISCH+IEGaYFsuySXZcrcMF6VYBzfCzPBocYswpP4+HXjSSvonMFn+CaL7qsY2MisqwxnaMaRAL7LO94YXx93nuWS4r6VpUDgT/kBfM61hiWS6HAi57opZB5CKwgwyVYLKMWmd10ATpNdIzCV6eQmQ7/akkVevXQHnta+HvK1RRZPTfIMHLRo28491wMeRIDn1A8lexrg3qunT2Dn0aNWnVLcLiP/1IM8Zaxvgn3yZRCRSjotY2wk5pL+heKBV8m1QywjNe9kWt3lz4OcgxWBim4S3Ct+2N9mMzkEubFv3Zg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=oYj3NqbBx+0ow/uBVXY339j3B712DE1MxpwDgkbl8mU=;
 b=kokUlbEeK7YosUUK6Hye8ruzMNSSCwF1Lp9JzWBbn13XXX2VwXKyfLLuy/OqcjwRqQQmv8jdjaFLI6rfhUBkXko6C9bNEYyLYYgubQa3nESdM1dGX5f2L5K5dOKWPjlQfG2TMwiMKSM52As4mwwj3KaIyvSWWCNSte9zo334xE3DiBIuj0KpA9+inQ6NBS1GQ5ccciF8XbaYHZqN6t/Exl7Ynzq6PCLdvpiXMdtzXj6NeoGLPElkeuCIz8Bnqxp92n3cgTTfwUlM907P2KF1sMZcHdPePaRATjLYgWAtiytH0jZxNYNg1tsD9ehtzwKGqr/gQdSCTau+G+bmsylPJA==
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=oYj3NqbBx+0ow/uBVXY339j3B712DE1MxpwDgkbl8mU=;
 b=DsG+pF12LOZ+qYY9M0KVT2QCR8yR71r29z8u2WQASSfsQ543fgUYxqnyW5l+wyl/NUXmBB9R6BX60gwm06eLlosNrP/aZb4sfuIHYgsNcpGncr3rTssvfCupfY/qqR7egDM2tUGYMr+aUt2uBm5n8i5r98oULG5w8+pXpqARJVo=
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: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, Stefano Stabellini <stefano.stabellini@amd.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, "Stefano
 Stabellini" <sstabellini@kernel.org>, Sergiy Kibrik <Sergiy_Kibrik@epam.com>,
	Penny Zheng <Penny.Zheng@amd.com>
Subject: [PATCH v3 20/20] xen/sysctl: wrap around sysctl hypercall
Date: Mon, 21 Apr 2025 15:37:23 +0800
Message-ID: <20250421073723.3863060-21-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250421073723.3863060-1-Penny.Zheng@amd.com>
References: <20250421073723.3863060-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: BN2PEPF000055DC:EE_|IA1PR12MB6650:EE_
X-MS-Office365-Filtering-Correlation-Id: 0bbd242a-5e59-4a35-f68e-08dd80a78c24
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|376014|1800799024|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?2A+1s7RxTFS988xkHiAILteWDobbnfTEasITg2w9vgncR0bhzhVp5EOBY12L?=
 =?us-ascii?Q?chc5H8aO7IaJ1o/8VgwtZBhOsQsM4ixoBRbg9tXjqgn8M4oF/ZVwS4F+JSQF?=
 =?us-ascii?Q?CcOXVogGb8IzrDmv1yR9B1gScaj9CGHZPIzjFiflTJs8CFjJp3+ra+9omCwj?=
 =?us-ascii?Q?GILjrK80IDMZal6n2XffnCYNQFQgRjkqbBLRLZlDeKJ9FzjzVFQYBz6cwhfp?=
 =?us-ascii?Q?WUsTdJCX8NNS29xzq1iZJA1Or4xunwBXZ9wmZ/v6ImOxKg+ZwxBcsGpy1lnK?=
 =?us-ascii?Q?kLPXoWeSu3FkASMqjvLrVAZALe5xvTf1RAwX9e1NuTeHDZjzXu7i5XiusUN8?=
 =?us-ascii?Q?cZ03ZuHUk664QxARquYLzctiCEIoep71ro3WnalCLDh2x05e/BQn+sCzfFXf?=
 =?us-ascii?Q?IDLKfgshQf3WbsBNPvMIWvJhVX0i01GcdBKxjAI8FcPPBkvO10iY0r7sh4Rv?=
 =?us-ascii?Q?asLIq7/EaWGJwOsp+od1OQD6HJu5/7KIre4h4WqUf3HzMZLDZWfUz1dpJr84?=
 =?us-ascii?Q?hM0UJ0t8+ewvB6dmT/+bz+5b4G5vwt0QgNUp2oB5JasHe+akfD6RZ5XSwGKS?=
 =?us-ascii?Q?hB+M8tBq17OghXfy1Iw/Ueo7cI+V74YXOozw0cPfvM0R78dgcjccB2CNhRX+?=
 =?us-ascii?Q?YPxsMyNLKRi58s+7+yt1BVdUzv3keN0aproPemXZVp4eIWE3Fe9SezzYtSkn?=
 =?us-ascii?Q?nwByPPnrZWCXymEjJ4khvHZMnQmSMbHQ7NlYPCq0qjMuiFVdIDcsc4VnTCXJ?=
 =?us-ascii?Q?Ls3MceFWw5Z4I+nrnoaB/MYCoCspJ99smOP35K4nJA72uWrforKvL4n/j/z4?=
 =?us-ascii?Q?ZJuBo+zKkNwRVERgrdCHquS4OVc7Cb348F5l539YVBYqqRpB04wPYuWIZVy8?=
 =?us-ascii?Q?Eh8PdXY0rj4H0OGP+qMUPLotttnn8aU36VZmCohvI8YBkxVRtnbasFZPt68X?=
 =?us-ascii?Q?kfhFSZdM6xPx0CDizJTA7nSdDihP7Ddvsln8hUzE5QgqS/iQzMiMfyXCYHqs?=
 =?us-ascii?Q?jRRAM85PqAi3IEOapoDoyRRSAo7fAdpYma3Ja8woc5fIx5OY+iT6lV+yNSH6?=
 =?us-ascii?Q?aqloJ0WRKQqhklHVi9OJIDzVqWDFIkfRxkRiz6XBjs7Xhg3ItIfTZtYMebyH?=
 =?us-ascii?Q?ibjFfBLUI+ZjGu6VvRfUqmuD3Bb7zAyc4geqoefZyFLdkZdaW9oqcPZmE0yt?=
 =?us-ascii?Q?yABL/WEgolVTXWHHtP7gg3J7FIUKgWvIuvpRy2Iq0IWFeEi0xiy7Pqrz9tk3?=
 =?us-ascii?Q?zEgcv6itt3pG468ylPWw/VPYUIXfA3ELQ3JWsw1SuVQLlMchbLXmxkf5Rokw?=
 =?us-ascii?Q?v022+2kONXMMemwbJy4iFMQWXDRSGASlO4+qKSJKLOppWJiBf/HoeeKaiUsH?=
 =?us-ascii?Q?3Bstpj5vME05IV6w/bgcCgbYx+WcuiChYyaIzymJ10dhifEmCco4JixfuyV2?=
 =?us-ascii?Q?q2fl7w4La6yFh/jGQb3QYcUubbVdykXCOtnch1AJ6hmRg/98OZde96zu+BNn?=
 =?us-ascii?Q?T3oQWw4bgln3Nqs6ji/VqVpDNSnlrIXTL9ti?=
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)(376014)(1800799024)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Apr 2025 07:38:45.5184
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 0bbd242a-5e59-4a35-f68e-08dd80a78c24
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: IA1PR12MB6650

From: Stefano Stabellini <stefano.stabellini@amd.com>

Wrap sysctl hypercall def and sysctl.o with CONFIG_SYSCTL, and since
PV_SHIM_EXCLUSIVE needs sorting as a prereq in the future, we move
them out of PV_SHIM_EXCLUSIVE condition at the same time.

We also need to remove all transient "#ifdef CONFIG_SYSCTL"-s in sysctl.c.

Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
Signed-off-by: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
v1 -> v2:
- remove all transient "#ifdef CONFIG_SYSCTL"-s in sysctl.c
---
v2 -> v3:
- move out of CONFIG_PV_SHIM_EXCLUSIVE condition
---
 xen/common/Makefile          |  2 +-
 xen/common/sysctl.c          | 12 ------------
 xen/include/hypercall-defs.c |  8 ++++++--
 3 files changed, 7 insertions(+), 15 deletions(-)

diff --git a/xen/common/Makefile b/xen/common/Makefile
index 98f0873056..15ab048244 100644
--- a/xen/common/Makefile
+++ b/xen/common/Makefile
@@ -49,6 +49,7 @@ obj-y += spinlock.o
 obj-$(CONFIG_STACK_PROTECTOR) += stack-protector.o
 obj-y += stop_machine.o
 obj-y += symbols.o
+obj-$(CONFIG_SYSCTL) += sysctl.o
 obj-y += tasklet.o
 obj-y += time.o
 obj-y += timer.o
@@ -70,7 +71,6 @@ obj-$(CONFIG_COMPAT) += $(addprefix compat/,domain.o memory.o multicall.o xlat.o
 ifneq ($(CONFIG_PV_SHIM_EXCLUSIVE),y)
 obj-y += domctl.o
 obj-$(CONFIG_VM_EVENT) += monitor.o
-obj-y += sysctl.o
 endif
 
 extra-y := symbols-dummy.o
diff --git a/xen/common/sysctl.c b/xen/common/sysctl.c
index 85a1adacdd..08174a924d 100644
--- a/xen/common/sysctl.c
+++ b/xen/common/sysctl.c
@@ -58,7 +58,6 @@ long do_sysctl(XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl)
 
     switch ( op->cmd )
     {
-#ifdef CONFIG_SYSCTL
     case XEN_SYSCTL_readconsole:
         ret = xsm_readconsole(XSM_HOOK, op->u.readconsole.clear);
         if ( ret )
@@ -66,17 +65,14 @@ long do_sysctl(XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl)
 
         ret = read_console_ring(&op->u.readconsole);
         break;
-#endif /* CONFIG_SYSCTL */
 
     case XEN_SYSCTL_tbuf_op:
         ret = tb_control(&op->u.tbuf_op);
         break;
 
-#ifdef CONFIG_SYSCTL
     case XEN_SYSCTL_sched_id:
         op->u.sched_id.sched_id = scheduler_id();
         break;
-#endif /* CONFIG_SYSCTL */
 
     case XEN_SYSCTL_getdomaininfolist:
     { 
@@ -117,7 +113,6 @@ long do_sysctl(XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl)
     }
     break;
 
-#ifdef CONFIG_SYSCTL
 #ifdef CONFIG_PERF_COUNTERS
     case XEN_SYSCTL_perfc_op:
         ret = perfc_control(&op->u.perfc_op);
@@ -129,7 +124,6 @@ long do_sysctl(XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl)
         ret = spinlock_profile_control(&op->u.lockprof_op);
         break;
 #endif
-#endif /* CONFIG_SYSCTL */
 
     case XEN_SYSCTL_debug_keys:
     {
@@ -191,7 +185,6 @@ long do_sysctl(XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl)
         break;
 #endif /* CONFIG_PM_OP */
 
-#ifdef CONFIG_SYSCTL
     case XEN_SYSCTL_page_offline_op:
     {
         uint32_t *status, *ptr;
@@ -302,7 +295,6 @@ long do_sysctl(XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl)
             ret = -EFAULT;
     }
     break;
-#endif /* CONFIG_SYSCTL */
 
     case XEN_SYSCTL_numainfo:
     {
@@ -493,11 +485,7 @@ long do_sysctl(XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl)
         break;
 
     default:
-#ifdef CONFIG_SYSCTL
         ret = arch_do_sysctl(op, u_sysctl);
-#else
-        ret = -EOPNOTSUPP;
-#endif
         copyback = 0;
         break;
     }
diff --git a/xen/include/hypercall-defs.c b/xen/include/hypercall-defs.c
index 7720a29ade..c1081d87a2 100644
--- a/xen/include/hypercall-defs.c
+++ b/xen/include/hypercall-defs.c
@@ -194,8 +194,10 @@ kexec_op(unsigned long op, void *uarg)
 #ifdef CONFIG_IOREQ_SERVER
 dm_op(domid_t domid, unsigned int nr_bufs, xen_dm_op_buf_t *bufs)
 #endif
-#ifndef CONFIG_PV_SHIM_EXCLUSIVE
+#ifdef CONFIG_SYSCTL
 sysctl(xen_sysctl_t *u_sysctl)
+#endif
+#ifndef CONFIG_PV_SHIM_EXCLUSIVE
 domctl(xen_domctl_t *u_domctl)
 paging_domctl_cont(xen_domctl_t *u_domctl)
 platform_op(xen_platform_op_t *u_xenpf_op)
@@ -273,8 +275,10 @@ physdev_op                         compat   do       hvm      hvm      do_arm
 #ifdef CONFIG_HVM
 hvm_op                             do       do       do       do       do
 #endif
-#ifndef CONFIG_PV_SHIM_EXCLUSIVE
+#ifdef CONFIG_SYSCTL
 sysctl                             do       do       do       do       do
+#endif
+#ifndef CONFIG_PV_SHIM_EXCLUSIVE
 domctl                             do       do       do       do       do
 #endif
 #ifdef CONFIG_KEXEC
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Apr 21 07:41:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 21 Apr 2025 07:41:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.961079.1352713 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6lm1-0007Mg-OG; Mon, 21 Apr 2025 07:41:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 961079.1352713; Mon, 21 Apr 2025 07:41: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 1u6lm1-0007MZ-L6; Mon, 21 Apr 2025 07:41:01 +0000
Received: by outflank-mailman (input) for mailman id 961079;
 Mon, 21 Apr 2025 07:41: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=Kh51=XH=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1u6ljM-0007m8-E4
 for xen-devel@lists.xenproject.org; Mon, 21 Apr 2025 07:38:16 +0000
Received: from NAM02-SN1-obe.outbound.protection.outlook.com
 (mail-sn1nam02on20610.outbound.protection.outlook.com
 [2a01:111:f403:2406::610])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 95daf4f8-1e83-11f0-9eb0-5ba50f476ded;
 Mon, 21 Apr 2025 09:38:15 +0200 (CEST)
Received: from BN9PR03CA0146.namprd03.prod.outlook.com (2603:10b6:408:fe::31)
 by CY3PR12MB9632.namprd12.prod.outlook.com (2603:10b6:930:100::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.33; Mon, 21 Apr
 2025 07:38:10 +0000
Received: from BN2PEPF000055E0.namprd21.prod.outlook.com
 (2603:10b6:408:fe:cafe::1e) by BN9PR03CA0146.outlook.office365.com
 (2603:10b6:408:fe::31) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.35 via Frontend Transport; Mon,
 21 Apr 2025 07:38:09 +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.8678.4 via Frontend Transport; Mon, 21 Apr 2025 07:38:09 +0000
Received: from penny-System-Product-Name.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; Mon, 21 Apr 2025 02:38:07 -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: 95daf4f8-1e83-11f0-9eb0-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=rL/tl4vMXt8mdTOIFj8PYSfpuOU3WaSrPjO6IprncEYqiBCzgMs5SsZpCX9xVRpxeN68t0I0xFgfJAveMQSn3Jc+o41TiEfWuvxFtxsWmY2hrbTWUbmiuMmgwZyf/S2Tzq8aCo+QkvQXsBa9RLwMK/EHJIQpPn29tvsaAjb/tJtYINrLl7sPAsSqkbll6+dukv1AkTSXGJ95zCHdgchD1gB0lKrW+2ygJMwBNoPpeKQ7VrW2pSW+2IDIckKNTB3S+aEni0dPlVuzi39pnkumz7uap+tFvFoir31IH5dizTyv9zNJmJyr4CqLZD4+/i/ikC/HEva98WKWC1fTSmX1wg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=cFdEVvM9KEbTQvEO5iqh931D2sWFuvZKZpuM2Z14a5o=;
 b=lJVERPWZZoTr0Zcx6F/lJQrzfQ2D5tQFqRQZMk3jyl7WL383CpCG8K3mre3xSBAqAscTCpeLTt1NEc77s8YRhz7dako+aqS5jaIzIviRjgr4YTyxyJTj8DeP/RT+3ShQIot+ZBww27Qu2qShNjhUiXVU89ONtJsI7/OWHcjmcXlmjTchKZx/F7jiJNmpvrp2uw3NZHRBUpyAqgs43QKCXiOnQTm3aqJzqYNChUHbZ1ZyfIGOL2czm82csTfMfgPSLw2hXX7tTRSk+3MjWgEzexiJADUhYKcivbyMLHf51ahECMFB9mUP2zMjv/a4qN/nqea+0PvEm4zcttd4OM4CgQ==
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=cFdEVvM9KEbTQvEO5iqh931D2sWFuvZKZpuM2Z14a5o=;
 b=Mkrm8kZwMZqwAPy4Xs6fSlXmr7Iz8QdEDQPe9nIXzgnMTb7uGRgfUyJsQeBJvuiy/v9oouVF+xt7E4+dLG/KpQaP3AfwNfC5YiYmVtSv4gPerztQkdE9lwwGb7018RAOR71hL0d+0AmyQ5+LMK3haDFwQUl7LoN1fDmJ8Ej+nKw=
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: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v3 09/20] xen/pmstat: consolidate code into pmstat.c
Date: Mon, 21 Apr 2025 15:37:12 +0800
Message-ID: <20250421073723.3863060-10-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250421073723.3863060-1-Penny.Zheng@amd.com>
References: <20250421073723.3863060-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: BN2PEPF000055E0:EE_|CY3PR12MB9632:EE_
X-MS-Office365-Filtering-Correlation-Id: 0894b769-d5fb-4dc7-e806-08dd80a77684
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?RNrRbsxkRWNs5G3Y/uf809jDFFBp+f74k1X/9GOLYCFnHSZN+knOJWWxJFWh?=
 =?us-ascii?Q?gtH7RmTV8K9W1yHkbUTiCrNazRJstPuHO7xoWqwh1Yp03gA7g3H51gjksOQA?=
 =?us-ascii?Q?QuZpou2ABuxoygud+HP66b79KeqHNXuLE+bC/OaSMCh0XvW0yrn1OTa6lAJl?=
 =?us-ascii?Q?e/v1+S/XjFG7nlmvotfhpUHlGFc9T5WrZO8GZHYdRFjL0F4M4AQCcnzLFQdM?=
 =?us-ascii?Q?GUZ2OHkQYSDicC98wTZOYVFgUp5Qb41brgqNLgEac6kWdgNrB6ZgmeZb4Tao?=
 =?us-ascii?Q?vGD6HATvyLLjvzVubwXLipVwboCsiiSSMnql3kYDK7OyUYOqqSbqQyAok/eS?=
 =?us-ascii?Q?z0A1MzrH5FCEDkRdWWosCs9YFVf/youvvLXEd7gczWmfi+YbjzA3j7UhFGZn?=
 =?us-ascii?Q?1mfzx7jeDSvL7W3shHG1iJRbCtWTNtVESCwX1eKCak95sjaJeQhxNvgZGIHe?=
 =?us-ascii?Q?mktCrCSnr5Isd7riUsk8DzQMvBK0cYo5bEJV4rxyEpRtF9FFqYeocSLYvVBh?=
 =?us-ascii?Q?VCfTRrZP14TsKTvnNjFjxkrzVbvNauy3ijPQPhEexx0Ww90eF8qfBsFri+Jh?=
 =?us-ascii?Q?h5h2Ull/cbWlljfB7celXq3LDAymdzjVgI2b9mzALezor2aecW9oxzAe781a?=
 =?us-ascii?Q?Z+Iyi7QdHQUMjN6xtW2iAa7ZjwOUQgka6T1vNbDmt4bFWjUwIVJHAyS45cZy?=
 =?us-ascii?Q?WpHc4H2xHUPd3Gfxa4L8vufwmoCV4Hv574HOYVCKJRXCTpsxrLoPRrrP8FLn?=
 =?us-ascii?Q?R+dg2k+j3/PtImVuwjZJZmz82alM4hDqhavmeHox8Q6okmRL/Uc4Z1BtsxJo?=
 =?us-ascii?Q?WxY/oW21SXzEzhwpPpWOBantLunzOz2N2rTWE8gYf2O8lIfU5yYXuxFSIb1Y?=
 =?us-ascii?Q?kDBXZd8cIMhg7vNsibBa+LCOhWJELk3qITIvz6oo/t32k31K07imipNQX8NK?=
 =?us-ascii?Q?zSyoyKpuu/nO1tTYoEZNmmMv1uhQK0jBt1gNVY6KNBckBY8gMumd6dXMkuZb?=
 =?us-ascii?Q?YTgnrZiBIuNRcq2DuPO2NIscxI9nz4nELtzaqKKhcdA2toL/agTRIe9AXPGF?=
 =?us-ascii?Q?ol48OfnZ6nPeyJeLMUCbxlBbPCWqsis1gBNQTaJ6bckZEMNA/KpT/YJf320Z?=
 =?us-ascii?Q?v6beS+4z89AJCnt91UmUavVO+kWF5U5L9M1Be+WDUmj+zO/jeaWsMdA+vLrY?=
 =?us-ascii?Q?apwZ3OeQ1tTkn/ezrlCrrxQw48J/FXYbDMmoLm7Zetr6+Mb4e9WOSxcqq1dx?=
 =?us-ascii?Q?SnxTnl3orkm6A4FPUCs0swRMEakjqB4LiY3+OK9/CxA2EMRV+3y1XEJljRrI?=
 =?us-ascii?Q?ZIc/c9iXdmaNlBH8PU0rjY9K8HbgQyFCrgErCo+pevcgXx6ndhiQn7gxPzz3?=
 =?us-ascii?Q?7KBLKdFELfEsrg7xJSIIsDT4DoWZC5QMkRImjKZIZNo+J7k/6YL4O0aMG74C?=
 =?us-ascii?Q?vKPv39DvrZc9ZO3ndqs7PYjm1l+CNXTgODsOG4npf2qdeRfjW1ScaiiEPBVe?=
 =?us-ascii?Q?z8hG/1R1C/OvBhdZi+O1Fr1L+bYvsbmOZPKc?=
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: 21 Apr 2025 07:38:09.2362
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 0894b769-d5fb-4dc7-e806-08dd80a77684
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: CY3PR12MB9632

We move the following functions into drivers/acpi/pmstat.c, as they
are all designed for performance statistic:
- cpufreq_residency_update
- cpufreq_statistic_reset
- cpufreq_statistic_update
- cpufreq_statistic_init
- cpufreq_statistic_exit
Consequently, variable "cpufreq_statistic_data" and "cpufreq_statistic_lock"
shall become static.
We also move out acpi_set_pdc_bits(), as it is the handler for sub-hypercall
XEN_PM_PDC, and shall stay with the other handlers together in
drivers/cpufreq/cpufreq.c.

Various style corrections shall be applied at the same time while moving these
functions, including:
- brace for if() and for() shall live at a seperate line
- add extra space before and after bracket of if() and for()
- use array notation
- convert uint32_t into unsigned int
- convert u32 into uint32_t

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
---
v2 -> v3:
- brace for if() and for() shall live at a seperate line
- use array notation
- convert uint32_t into unsigned int
---
 xen/drivers/acpi/pmstat.c                 | 202 ++++++++++++++++++----
 xen/drivers/cpufreq/cpufreq.c             |  31 ++++
 xen/drivers/cpufreq/utility.c             | 162 -----------------
 xen/include/acpi/cpufreq/cpufreq.h        |   2 -
 xen/include/acpi/cpufreq/processor_perf.h |   4 -
 5 files changed, 201 insertions(+), 200 deletions(-)

diff --git a/xen/drivers/acpi/pmstat.c b/xen/drivers/acpi/pmstat.c
index c51b9ca358..abfdc45cc2 100644
--- a/xen/drivers/acpi/pmstat.c
+++ b/xen/drivers/acpi/pmstat.c
@@ -41,7 +41,176 @@
 #include <acpi/cpufreq/cpufreq.h>
 #include <xen/pmstat.h>
 
-DEFINE_PER_CPU_READ_MOSTLY(struct pm_px *, cpufreq_statistic_data);
+static DEFINE_PER_CPU_READ_MOSTLY(struct pm_px *, cpufreq_statistic_data);
+
+static DEFINE_PER_CPU(spinlock_t, cpufreq_statistic_lock);
+
+/*********************************************************************
+ *                    Px STATISTIC INFO                              *
+ *********************************************************************/
+
+static void cpufreq_residency_update(unsigned int cpu, uint8_t state)
+{
+    uint64_t now, total_idle_ns;
+    int64_t delta;
+    struct pm_px *pxpt = per_cpu(cpufreq_statistic_data, cpu);
+
+    total_idle_ns = get_cpu_idle_time(cpu);
+    now = NOW();
+
+    delta = (now - pxpt->prev_state_wall) -
+            (total_idle_ns - pxpt->prev_idle_wall);
+
+    if ( likely(delta >= 0) )
+        pxpt->u.pt[state].residency += delta;
+
+    pxpt->prev_state_wall = now;
+    pxpt->prev_idle_wall = total_idle_ns;
+}
+
+void cpufreq_statistic_update(unsigned int cpu, uint8_t from, uint8_t to)
+{
+    struct pm_px *pxpt;
+    const struct processor_pminfo *pmpt = processor_pminfo[cpu];
+    spinlock_t *cpufreq_statistic_lock =
+               &per_cpu(cpufreq_statistic_lock, cpu);
+
+    spin_lock(cpufreq_statistic_lock);
+
+    pxpt = per_cpu(cpufreq_statistic_data, cpu);
+    if ( !pxpt || !pmpt )
+    {
+        spin_unlock(cpufreq_statistic_lock);
+        return;
+    }
+
+    pxpt->u.last = from;
+    pxpt->u.cur = to;
+    pxpt->u.pt[to].count++;
+
+    cpufreq_residency_update(cpu, from);
+
+    pxpt->u.trans_pt[from * pmpt->perf.state_count + to]++;
+
+    spin_unlock(cpufreq_statistic_lock);
+}
+
+int cpufreq_statistic_init(unsigned int cpu)
+{
+    unsigned int i, count;
+    struct pm_px *pxpt;
+    const struct processor_pminfo *pmpt = processor_pminfo[cpu];
+    spinlock_t *cpufreq_statistic_lock = &per_cpu(cpufreq_statistic_lock, cpu);
+
+    spin_lock_init(cpufreq_statistic_lock);
+
+    if ( !pmpt )
+        return -EINVAL;
+
+    spin_lock(cpufreq_statistic_lock);
+
+    pxpt = per_cpu(cpufreq_statistic_data, cpu);
+    if ( pxpt )
+    {
+        spin_unlock(cpufreq_statistic_lock);
+        return 0;
+    }
+
+    count = pmpt->perf.state_count;
+
+    pxpt = xzalloc(struct pm_px);
+    if ( !pxpt )
+    {
+        spin_unlock(cpufreq_statistic_lock);
+        return -ENOMEM;
+    }
+    per_cpu(cpufreq_statistic_data, cpu) = pxpt;
+
+    pxpt->u.trans_pt = xzalloc_array(uint64_t, count * count);
+    if ( !pxpt->u.trans_pt )
+    {
+        xfree(pxpt);
+        spin_unlock(cpufreq_statistic_lock);
+        return -ENOMEM;
+    }
+
+    pxpt->u.pt = xzalloc_array(struct pm_px_val, count);
+    if ( !pxpt->u.pt )
+    {
+        xfree(pxpt->u.trans_pt);
+        xfree(pxpt);
+        spin_unlock(cpufreq_statistic_lock);
+        return -ENOMEM;
+    }
+
+    pxpt->u.total = pmpt->perf.state_count;
+    pxpt->u.usable = pmpt->perf.state_count - pmpt->perf.platform_limit;
+
+    for ( i = 0; i < pmpt->perf.state_count; i++ )
+        pxpt->u.pt[i].freq = pmpt->perf.states[i].core_frequency;
+
+    pxpt->prev_state_wall = NOW();
+    pxpt->prev_idle_wall = get_cpu_idle_time(cpu);
+
+    spin_unlock(cpufreq_statistic_lock);
+
+    return 0;
+}
+
+void cpufreq_statistic_exit(unsigned int cpu)
+{
+    struct pm_px *pxpt;
+    spinlock_t *cpufreq_statistic_lock = &per_cpu(cpufreq_statistic_lock, cpu);
+
+    spin_lock(cpufreq_statistic_lock);
+
+    pxpt = per_cpu(cpufreq_statistic_data, cpu);
+    if ( !pxpt )
+    {
+        spin_unlock(cpufreq_statistic_lock);
+        return;
+    }
+
+    xfree(pxpt->u.trans_pt);
+    xfree(pxpt->u.pt);
+    xfree(pxpt);
+    per_cpu(cpufreq_statistic_data, cpu) = NULL;
+
+    spin_unlock(cpufreq_statistic_lock);
+}
+
+static void cpufreq_statistic_reset(unsigned int cpu)
+{
+    unsigned int i, j, count;
+    struct pm_px *pxpt;
+    const struct processor_pminfo *pmpt = processor_pminfo[cpu];
+    spinlock_t *cpufreq_statistic_lock = &per_cpu(cpufreq_statistic_lock, cpu);
+
+    spin_lock(cpufreq_statistic_lock);
+
+    pxpt = per_cpu(cpufreq_statistic_data, cpu);
+    if ( !pmpt || !pxpt || !pxpt->u.pt || !pxpt->u.trans_pt )
+    {
+        spin_unlock(cpufreq_statistic_lock);
+        return;
+    }
+
+    count = pmpt->perf.state_count;
+
+    for ( i = 0; i < count; i++ )
+    {
+        pxpt->u.pt[i].residency = 0;
+        pxpt->u.pt[i].count = 0;
+
+        for ( j = 0; j < count; j++ )
+            pxpt->u.trans_pt[i * count + j] = 0;
+    }
+
+    pxpt->prev_state_wall = NOW();
+    pxpt->prev_idle_wall = get_cpu_idle_time(cpu);
+
+    spin_unlock(cpufreq_statistic_lock);
+}
 
 /*
  * Get PM statistic info
@@ -518,34 +687,3 @@ int do_pm_op(struct xen_sysctl_pm_op *op)
 
     return ret;
 }
-
-int acpi_set_pdc_bits(uint32_t acpi_id, XEN_GUEST_HANDLE(uint32) pdc)
-{
-    u32 bits[3];
-    int ret;
-
-    if ( copy_from_guest(bits, pdc, 2) )
-        ret = -EFAULT;
-    else if ( bits[0] != ACPI_PDC_REVISION_ID || !bits[1] )
-        ret = -EINVAL;
-    else if ( copy_from_guest_offset(bits + 2, pdc, 2, 1) )
-        ret = -EFAULT;
-    else
-    {
-        u32 mask = 0;
-
-        if ( xen_processor_pmbits & XEN_PROCESSOR_PM_CX )
-            mask |= ACPI_PDC_C_MASK | ACPI_PDC_SMP_C1PT;
-        if ( xen_processor_pmbits & XEN_PROCESSOR_PM_PX )
-            mask |= ACPI_PDC_P_MASK | ACPI_PDC_SMP_C1PT;
-        if ( xen_processor_pmbits & XEN_PROCESSOR_PM_TX )
-            mask |= ACPI_PDC_T_MASK | ACPI_PDC_SMP_C1PT;
-        bits[2] &= (ACPI_PDC_C_MASK | ACPI_PDC_P_MASK | ACPI_PDC_T_MASK |
-                    ACPI_PDC_SMP_C1PT) & ~mask;
-        ret = arch_acpi_set_pdc_bits(acpi_id, bits, mask);
-    }
-    if ( !ret && __copy_to_guest_offset(pdc, 2, bits + 2, 1) )
-        ret = -EFAULT;
-
-    return ret;
-}
diff --git a/xen/drivers/cpufreq/cpufreq.c b/xen/drivers/cpufreq/cpufreq.c
index 19e2992335..c2d777e0ec 100644
--- a/xen/drivers/cpufreq/cpufreq.c
+++ b/xen/drivers/cpufreq/cpufreq.c
@@ -588,6 +588,37 @@ out:
     return ret;
 }
 
+int acpi_set_pdc_bits(unsigned int acpi_id, XEN_GUEST_HANDLE(uint32) pdc)
+{
+    uint32_t bits[3];
+    int ret;
+
+    if ( copy_from_guest(bits, pdc, 2) )
+        ret = -EFAULT;
+    else if ( bits[0] != ACPI_PDC_REVISION_ID || !bits[1] )
+        ret = -EINVAL;
+    else if ( copy_from_guest_offset(bits + 2, pdc, 2, 1) )
+        ret = -EFAULT;
+    else
+    {
+        uint32_t mask = 0;
+
+        if ( xen_processor_pmbits & XEN_PROCESSOR_PM_CX )
+            mask |= ACPI_PDC_C_MASK | ACPI_PDC_SMP_C1PT;
+        if ( xen_processor_pmbits & XEN_PROCESSOR_PM_PX )
+            mask |= ACPI_PDC_P_MASK | ACPI_PDC_SMP_C1PT;
+        if ( xen_processor_pmbits & XEN_PROCESSOR_PM_TX )
+            mask |= ACPI_PDC_T_MASK | ACPI_PDC_SMP_C1PT;
+        bits[2] &= (ACPI_PDC_C_MASK | ACPI_PDC_P_MASK | ACPI_PDC_T_MASK |
+                    ACPI_PDC_SMP_C1PT) & ~mask;
+        ret = arch_acpi_set_pdc_bits(acpi_id, bits, mask);
+    }
+    if ( !ret && __copy_to_guest_offset(pdc, 2, bits + 2, 1) )
+        ret = -EFAULT;
+
+    return ret;
+}
+
 static void cpufreq_cmdline_common_para(struct cpufreq_policy *new_policy)
 {
     if (usr_max_freq)
diff --git a/xen/drivers/cpufreq/utility.c b/xen/drivers/cpufreq/utility.c
index e690a484f1..723045b240 100644
--- a/xen/drivers/cpufreq/utility.c
+++ b/xen/drivers/cpufreq/utility.c
@@ -35,168 +35,6 @@ struct cpufreq_driver __read_mostly cpufreq_driver;
 struct processor_pminfo *__read_mostly processor_pminfo[NR_CPUS];
 DEFINE_PER_CPU_READ_MOSTLY(struct cpufreq_policy *, cpufreq_cpu_policy);
 
-DEFINE_PER_CPU(spinlock_t, cpufreq_statistic_lock);
-
-/*********************************************************************
- *                    Px STATISTIC INFO                              *
- *********************************************************************/
-
-void cpufreq_residency_update(unsigned int cpu, uint8_t state)
-{
-    uint64_t now, total_idle_ns;
-    int64_t delta;
-    struct pm_px *pxpt = per_cpu(cpufreq_statistic_data, cpu);
-
-    total_idle_ns = get_cpu_idle_time(cpu);
-    now = NOW();
-
-    delta = (now - pxpt->prev_state_wall) - 
-            (total_idle_ns - pxpt->prev_idle_wall);
-
-    if ( likely(delta >= 0) )
-        pxpt->u.pt[state].residency += delta;
-
-    pxpt->prev_state_wall = now;
-    pxpt->prev_idle_wall = total_idle_ns;
-}
-
-void cpufreq_statistic_update(unsigned int cpu, uint8_t from, uint8_t to)
-{
-    struct pm_px *pxpt;
-    struct processor_pminfo *pmpt = processor_pminfo[cpu];
-    spinlock_t *cpufreq_statistic_lock = 
-               &per_cpu(cpufreq_statistic_lock, cpu);
-
-    spin_lock(cpufreq_statistic_lock);
-
-    pxpt = per_cpu(cpufreq_statistic_data, cpu);
-    if ( !pxpt || !pmpt ) {
-        spin_unlock(cpufreq_statistic_lock);
-        return;
-    }
-
-    pxpt->u.last = from;
-    pxpt->u.cur = to;
-    pxpt->u.pt[to].count++;
-
-    cpufreq_residency_update(cpu, from);
-
-    (*(pxpt->u.trans_pt + from * pmpt->perf.state_count + to))++;
-
-    spin_unlock(cpufreq_statistic_lock);
-}
-
-int cpufreq_statistic_init(unsigned int cpu)
-{
-    uint32_t i, count;
-    struct pm_px *pxpt;
-    const struct processor_pminfo *pmpt = processor_pminfo[cpu];
-    spinlock_t *cpufreq_statistic_lock = &per_cpu(cpufreq_statistic_lock, cpu);
-
-    spin_lock_init(cpufreq_statistic_lock);
-
-    if ( !pmpt )
-        return -EINVAL;
-
-    spin_lock(cpufreq_statistic_lock);
-
-    pxpt = per_cpu(cpufreq_statistic_data, cpu);
-    if ( pxpt ) {
-        spin_unlock(cpufreq_statistic_lock);
-        return 0;
-    }
-
-    count = pmpt->perf.state_count;
-
-    pxpt = xzalloc(struct pm_px);
-    if ( !pxpt ) {
-        spin_unlock(cpufreq_statistic_lock);
-        return -ENOMEM;
-    }
-    per_cpu(cpufreq_statistic_data, cpu) = pxpt;
-
-    pxpt->u.trans_pt = xzalloc_array(uint64_t, count * count);
-    if (!pxpt->u.trans_pt) {
-        xfree(pxpt);
-        spin_unlock(cpufreq_statistic_lock);
-        return -ENOMEM;
-    }
-
-    pxpt->u.pt = xzalloc_array(struct pm_px_val, count);
-    if (!pxpt->u.pt) {
-        xfree(pxpt->u.trans_pt);
-        xfree(pxpt);
-        spin_unlock(cpufreq_statistic_lock);
-        return -ENOMEM;
-    }
-
-    pxpt->u.total = pmpt->perf.state_count;
-    pxpt->u.usable = pmpt->perf.state_count - pmpt->perf.platform_limit;
-
-    for (i=0; i < pmpt->perf.state_count; i++)
-        pxpt->u.pt[i].freq = pmpt->perf.states[i].core_frequency;
-
-    pxpt->prev_state_wall = NOW();
-    pxpt->prev_idle_wall = get_cpu_idle_time(cpu);
-
-    spin_unlock(cpufreq_statistic_lock);
-
-    return 0;
-}
-
-void cpufreq_statistic_exit(unsigned int cpu)
-{
-    struct pm_px *pxpt;
-    spinlock_t *cpufreq_statistic_lock = &per_cpu(cpufreq_statistic_lock, cpu);
-
-    spin_lock(cpufreq_statistic_lock);
-
-    pxpt = per_cpu(cpufreq_statistic_data, cpu);
-    if (!pxpt) {
-        spin_unlock(cpufreq_statistic_lock);
-        return;
-    }
-
-    xfree(pxpt->u.trans_pt);
-    xfree(pxpt->u.pt);
-    xfree(pxpt);
-    per_cpu(cpufreq_statistic_data, cpu) = NULL;
-
-    spin_unlock(cpufreq_statistic_lock);
-}
-
-void cpufreq_statistic_reset(unsigned int cpu)
-{
-    uint32_t i, j, count;
-    struct pm_px *pxpt;
-    const struct processor_pminfo *pmpt = processor_pminfo[cpu];
-    spinlock_t *cpufreq_statistic_lock = &per_cpu(cpufreq_statistic_lock, cpu);
-
-    spin_lock(cpufreq_statistic_lock);
-
-    pxpt = per_cpu(cpufreq_statistic_data, cpu);
-    if ( !pmpt || !pxpt || !pxpt->u.pt || !pxpt->u.trans_pt ) {
-        spin_unlock(cpufreq_statistic_lock);
-        return;
-    }
-
-    count = pmpt->perf.state_count;
-
-    for (i=0; i < count; i++) {
-        pxpt->u.pt[i].residency = 0;
-        pxpt->u.pt[i].count = 0;
-
-        for (j=0; j < count; j++)
-            *(pxpt->u.trans_pt + i*count + j) = 0;
-    }
-
-    pxpt->prev_state_wall = NOW();
-    pxpt->prev_idle_wall = get_cpu_idle_time(cpu);
-
-    spin_unlock(cpufreq_statistic_lock);
-}
-
-
 /*********************************************************************
  *                   FREQUENCY TABLE HELPERS                         *
  *********************************************************************/
diff --git a/xen/include/acpi/cpufreq/cpufreq.h b/xen/include/acpi/cpufreq/cpufreq.h
index a3c84143af..241117a9af 100644
--- a/xen/include/acpi/cpufreq/cpufreq.h
+++ b/xen/include/acpi/cpufreq/cpufreq.h
@@ -20,8 +20,6 @@
 
 #include "processor_perf.h"
 
-DECLARE_PER_CPU(spinlock_t, cpufreq_statistic_lock);
-
 extern bool cpufreq_verbose;
 
 enum cpufreq_xen_opt {
diff --git a/xen/include/acpi/cpufreq/processor_perf.h b/xen/include/acpi/cpufreq/processor_perf.h
index 301104e16f..6de43f8602 100644
--- a/xen/include/acpi/cpufreq/processor_perf.h
+++ b/xen/include/acpi/cpufreq/processor_perf.h
@@ -9,11 +9,9 @@
 
 unsigned int powernow_register_driver(void);
 unsigned int get_measured_perf(unsigned int cpu, unsigned int flag);
-void cpufreq_residency_update(unsigned int cpu, uint8_t state);
 void cpufreq_statistic_update(unsigned int cpu, uint8_t from, uint8_t to);
 int  cpufreq_statistic_init(unsigned int cpu);
 void cpufreq_statistic_exit(unsigned int cpu);
-void cpufreq_statistic_reset(unsigned int cpu);
 
 int  cpufreq_limit_change(unsigned int cpu);
 
@@ -56,7 +54,5 @@ struct pm_px {
     uint64_t prev_idle_wall;
 };
 
-DECLARE_PER_CPU(struct pm_px *, cpufreq_statistic_data);
-
 int cpufreq_cpu_init(unsigned int cpu);
 #endif /* __XEN_PROCESSOR_PM_H__ */
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Apr 21 07:41:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 21 Apr 2025 07:41:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.961083.1352723 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6lm3-0007e7-6r; Mon, 21 Apr 2025 07:41:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 961083.1352723; Mon, 21 Apr 2025 07:41:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6lm3-0007dw-2m; Mon, 21 Apr 2025 07:41:03 +0000
Received: by outflank-mailman (input) for mailman id 961083;
 Mon, 21 Apr 2025 07:41: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=Kh51=XH=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1u6ljj-0007m8-9w
 for xen-devel@lists.xenproject.org; Mon, 21 Apr 2025 07:38:39 +0000
Received: from NAM04-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam04on20624.outbound.protection.outlook.com
 [2a01:111:f403:2409::624])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a07c03a9-1e83-11f0-9eb0-5ba50f476ded;
 Mon, 21 Apr 2025 09:38:33 +0200 (CEST)
Received: from BN9PR03CA0141.namprd03.prod.outlook.com (2603:10b6:408:fe::26)
 by LV8PR12MB9083.namprd12.prod.outlook.com (2603:10b6:408:18c::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.34; Mon, 21 Apr
 2025 07:38:28 +0000
Received: from BN2PEPF000055E0.namprd21.prod.outlook.com
 (2603:10b6:408:fe:cafe::15) by BN9PR03CA0141.outlook.office365.com
 (2603:10b6:408:fe::26) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.35 via Frontend Transport; Mon,
 21 Apr 2025 07:38:28 +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.8678.4 via Frontend Transport; Mon, 21 Apr 2025 07:38:28 +0000
Received: from penny-System-Product-Name.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; Mon, 21 Apr 2025 02:38:25 -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: a07c03a9-1e83-11f0-9eb0-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=rUbo6u+FIwHzf1fmZKEeuk9TC0qH5f3Ra8KodSo0CB5aO4uNuQqjIwc0U+K6pqjDPeyXNLwKWjlavSaiKSQTyAEmaS+kc9FTi2kwzONigdhOVoHG2F7c8dx3m5TTlgBT16pAznUIYKx3I2fZBBsx2OJdycxfeZbp1ok4IPkYXspsZOXmBc6Fw+z/roDUeeWer8O6h9FfDUPgfJs/hsR2/rqVaza0yEmbHgoNEVMT4F0cb4OFjlTf4vCMtdNo1ZW5PrCBGcx9pOC4qx8Sqw3RjuQlIcgutDLNYMS4doE5yNAb+iLY0KqD7jVsODHpESH0GixIB1EfU5NCs3f4eQqqhA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=xi7bdSdzath5gvgfDScXOao5+42ReAsl+Gpt0fVjHoY=;
 b=h4+hGMVpyZk8xDBAR3urPb9nG147STPtR5J+nXsBrXG6seqpwIeKqqDlFOk7YOvLOaY458SheAoEBhiVPm9MeQIS9LhbZrBoNSTKRDfge7jVMieSQSyPsa+h4ORd8SOG9J9vezHlmzXw0sdMaFZTOodAv35ysBdfSXr8cbf9b0gWyKjVFBgAow9ANgN/YM2nndHbXo/PLxFmUvJGL+RqZJWE8NNXds3niioBzjFjHw+SlzuTc6BPA+uUk8dRm9ZGmwAqaUbYZIoKiV7JPBCwwet/eSydLVIvc3V4EOmIZtJ+mjqp+/kNGPit5ttByumwjEC0MYBA+OVs+ZUD9EIelA==
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=xi7bdSdzath5gvgfDScXOao5+42ReAsl+Gpt0fVjHoY=;
 b=K0sRYlfoKqyS+eJx8veycCDifXGKWX+v7JhqoBX5/0vgyenK1OvZhi+eFUx6Rl178AMjRopaKaIdMdENB/8NwVc1skpvI/YHYjB6k+d95O4oqFRNZ1+oR4vjENrXWcOseimI2CdWUPH9E2XPsEONgXB6I3J4DU2rY/2hijhQskU=
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: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, "Julien
 Grall" <julien@xen.org>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v3 15/20] xen: make avail_domheap_pages() inlined into get_outstanding_claims()
Date: Mon, 21 Apr 2025 15:37:18 +0800
Message-ID: <20250421073723.3863060-16-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250421073723.3863060-1-Penny.Zheng@amd.com>
References: <20250421073723.3863060-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: BN2PEPF000055E0:EE_|LV8PR12MB9083:EE_
X-MS-Office365-Filtering-Correlation-Id: f26f0a91-aa86-4e08-328b-08dd80a781e7
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?aB0toL5ruTQZj+HAnbvNsF6ngbvBobZemtdMUtvNbPD12Kwp267xfOA6SXt9?=
 =?us-ascii?Q?nA/x0DmljTBusUoWTtTIWjH9CR7Y+eLiahg6R7KPkRso73OocOBUQ5cjMWnJ?=
 =?us-ascii?Q?wf1QhFgcjjACC2xnrr5fU1VqXxkGp5xr1G85U+DnVM7pQ4VKeVNImBPgfC6+?=
 =?us-ascii?Q?YPkR0klXwJhdzcwSba6Iti339QvQbh2mUW/f7JeWMFghZqip02pMGLDjIvh8?=
 =?us-ascii?Q?BHNVWooZQXNcnZV76PEt0eyKa7BSgC2nygzw8WpCzcfURhKoTFwdZ2yvD7KX?=
 =?us-ascii?Q?CFdpJ3dWf0ZSm/sCyJUNNuVGavdbQ0CXm9yW8W/cI7Ri4YFVf0/ydMUNI/nz?=
 =?us-ascii?Q?2I3uKOj6wDIrICE6H9ESEB1dYFKDtVECI/GvXKVBS0pZDh5uBEKLsBCctzth?=
 =?us-ascii?Q?cREAqwGYjI3OPgwfkH3+8rDrBH5he3v3kxWMnbLh62rbR6g3WV4ydYGHCDvZ?=
 =?us-ascii?Q?frEyNvhcvXaUSEMt4Bs7V1Qo2Ngi67RL/RnZ/CG2h/Go0WFsW0G6fH2xKKQm?=
 =?us-ascii?Q?K3ANYhxCqIX3hHFRzE1f1qhEPDZeCVZTyWg2ENNzpwVlRvty+TUIjU8UraOS?=
 =?us-ascii?Q?t7tDvqpKBhryghr9vAxGwKKCvEMqnQUPY4vNGrjcglxEg0ltz0PkTCKfTIq7?=
 =?us-ascii?Q?StsoXodaThjUjMWiuKyqh4aUeHs27JWc43J6LKwpUiGWZc5sQ5mdJPEPVz+Q?=
 =?us-ascii?Q?GaAoGZjv6DQXN/iq647aFwXtt5KD7qlDdWpW0h89IAeSr2EQYHPZtRfgBG5L?=
 =?us-ascii?Q?rtevq5k2qUkeuY8Wh6/lFoCx/TBsljtQB6EiWWPHiQfKG1//Eid6DNmUiFZ+?=
 =?us-ascii?Q?AyQZRdwJe6PuauYyLYcNydidNCYHw1hbF1ry5h2r9FtvGggb2hPIcn5pGbUd?=
 =?us-ascii?Q?XMaFQkeW4GymEiVNOUgFOEWD3eUc/z/qj8bAOT+56NRH+hnDwLRu+0Zpb1F/?=
 =?us-ascii?Q?QTHWtSfV84B8JkkR8tj1qSRjECFwTAUM6BeAjEyyAacX4KHPCSDhEnw/izkC?=
 =?us-ascii?Q?UY4EsYfWeUJnzdGKFJ6riWUkaiiwmFbR7vQBIRlQ/7AwWpp6C+U0+3NiBw2W?=
 =?us-ascii?Q?fQ3mXZaFDXWMraE61z2mxOx8OJFT1TqEQzH4qU8sWZjxUy26ypf1xo2kxMJX?=
 =?us-ascii?Q?KQyFJ9szrikn2mLpq63nAvrdBV/RNRP7DjcIrbv016Zi5y7yf+29Y2+hVDk3?=
 =?us-ascii?Q?baOHbIgpP9+vbOflq1b6mIjJCMvPtQEQCYTqevhnYBfIJ/o2rITdD2eIpINr?=
 =?us-ascii?Q?ry11GMsA11NVdUskQIZN9+38wnGo3KbFX4Jk9h6/VC22vsY2up8+yTn2MWmE?=
 =?us-ascii?Q?ctQCy2JVV2i0D2eUjqD7pGjTpiBoWWbmEc70WQA67YdcZis2AWBsLBwhuHL6?=
 =?us-ascii?Q?0X1ZapluP1BzZYgeBlnlZoIeRA1LtH6vcMb0vnlR4Bs0Apf3Y3DMtbXOR2mC?=
 =?us-ascii?Q?NErLu7VtrDwUwDPqQK+RaEdx3izHCzLz7TYQe6jvMfvLZ3GTLvo8HnaTul9L?=
 =?us-ascii?Q?WXk50wHgq8Jtu0/SDa5HXTV2UdRuUC8/Dgdc?=
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: 21 Apr 2025 07:38:28.3369
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: f26f0a91-aa86-4e08-328b-08dd80a781e7
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: LV8PR12MB9083

Function avail_domheap_pages() is only invoked by get_outstanding_claims(),
so it could be inlined into get_outstanding_claims().
Move up avail_heap_pages() to avoid declaration before
get_outstanding_claims().

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
---
v1 -> v2:
- let avail_domheap_pages() being inlined into its sole caller
- move up avail_heap_pages()
---
v2 -> v3:
- change the title
---
 xen/common/page_alloc.c | 51 ++++++++++++++++++-----------------------
 xen/include/xen/mm.h    |  1 -
 2 files changed, 22 insertions(+), 30 deletions(-)

diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c
index cc2ad4423a..5803a1ef4e 100644
--- a/xen/common/page_alloc.c
+++ b/xen/common/page_alloc.c
@@ -488,6 +488,27 @@ static long total_avail_pages;
 static DEFINE_SPINLOCK(heap_lock);
 static long outstanding_claims; /* total outstanding claims by all domains */
 
+static unsigned long avail_heap_pages(
+    unsigned int zone_lo, unsigned int zone_hi, unsigned int node)
+{
+    unsigned int i, zone;
+    unsigned long free_pages = 0;
+
+    if ( zone_hi >= NR_ZONES )
+        zone_hi = NR_ZONES - 1;
+
+    for_each_online_node(i)
+    {
+        if ( !avail[i] )
+            continue;
+        for ( zone = zone_lo; zone <= zone_hi; zone++ )
+            if ( (node == -1) || (node == i) )
+                free_pages += avail[i][zone];
+    }
+
+    return free_pages;
+}
+
 unsigned long domain_adjust_tot_pages(struct domain *d, long pages)
 {
     ASSERT(rspin_is_locked(&d->page_alloc_lock));
@@ -584,7 +605,7 @@ void get_outstanding_claims(uint64_t *free_pages, uint64_t *outstanding_pages)
 {
     spin_lock(&heap_lock);
     *outstanding_pages = outstanding_claims;
-    *free_pages =  avail_domheap_pages();
+    *free_pages = avail_heap_pages(MEMZONE_XEN + 1, NR_ZONES - 1, -1);
     spin_unlock(&heap_lock);
 }
 
@@ -1964,27 +1985,6 @@ static void init_heap_pages(
     }
 }
 
-static unsigned long avail_heap_pages(
-    unsigned int zone_lo, unsigned int zone_hi, unsigned int node)
-{
-    unsigned int i, zone;
-    unsigned long free_pages = 0;
-
-    if ( zone_hi >= NR_ZONES )
-        zone_hi = NR_ZONES - 1;
-
-    for_each_online_node(i)
-    {
-        if ( !avail[i] )
-            continue;
-        for ( zone = zone_lo; zone <= zone_hi; zone++ )
-            if ( (node == -1) || (node == i) )
-                free_pages += avail[i][zone];
-    }
-
-    return free_pages;
-}
-
 /*************************
  * COLORED SIDE-ALLOCATOR
  *
@@ -2795,13 +2795,6 @@ unsigned long avail_domheap_pages_region(
     return avail_heap_pages(zone_lo, zone_hi, node);
 }
 
-unsigned long avail_domheap_pages(void)
-{
-    return avail_heap_pages(MEMZONE_XEN + 1,
-                            NR_ZONES - 1,
-                            -1);
-}
-
 unsigned long avail_node_heap_pages(unsigned int nodeid)
 {
     return avail_heap_pages(MEMZONE_XEN, NR_ZONES -1, nodeid);
diff --git a/xen/include/xen/mm.h b/xen/include/xen/mm.h
index ae1c48a615..eda57486cf 100644
--- a/xen/include/xen/mm.h
+++ b/xen/include/xen/mm.h
@@ -140,7 +140,6 @@ struct page_info *alloc_domheap_pages(
 void free_domheap_pages(struct page_info *pg, unsigned int order);
 unsigned long avail_domheap_pages_region(
     unsigned int node, unsigned int min_width, unsigned int max_width);
-unsigned long avail_domheap_pages(void);
 unsigned long avail_node_heap_pages(unsigned int nodeid);
 #define alloc_domheap_page(d,f) (alloc_domheap_pages(d,0,f))
 #define free_domheap_page(p)  (free_domheap_pages(p,0))
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Apr 21 07:41:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 21 Apr 2025 07:41:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.961084.1352727 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6lm3-0007gk-Fd; Mon, 21 Apr 2025 07:41:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 961084.1352727; Mon, 21 Apr 2025 07:41:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6lm3-0007g2-BP; Mon, 21 Apr 2025 07:41:03 +0000
Received: by outflank-mailman (input) for mailman id 961084;
 Mon, 21 Apr 2025 07:41: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=Kh51=XH=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1u6ljJ-0007m8-4e
 for xen-devel@lists.xenproject.org; Mon, 21 Apr 2025 07:38:13 +0000
Received: from NAM04-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam04on2061f.outbound.protection.outlook.com
 [2a01:111:f403:2408::61f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 931c5ec8-1e83-11f0-9eb0-5ba50f476ded;
 Mon, 21 Apr 2025 09:38:11 +0200 (CEST)
Received: from BL1P221CA0041.NAMP221.PROD.OUTLOOK.COM (2603:10b6:208:5b5::19)
 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.8655.27; Mon, 21 Apr
 2025 07:38:07 +0000
Received: from BN2PEPF000055E1.namprd21.prod.outlook.com
 (2603:10b6:208:5b5:cafe::64) by BL1P221CA0041.outlook.office365.com
 (2603:10b6:208:5b5::19) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.36 via Frontend Transport; Mon,
 21 Apr 2025 07:38:07 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BN2PEPF000055E1.mail.protection.outlook.com (10.167.245.11) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8699.1 via Frontend Transport; Mon, 21 Apr 2025 07:38:07 +0000
Received: from penny-System-Product-Name.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; Mon, 21 Apr 2025 02:38:04 -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: 931c5ec8-1e83-11f0-9eb0-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=PJRYoi1N7OKP0hsovwBhPDOKxmLfoOp0ikH0SWmgzfKcBr4aJh2cg3kR/Y6i0Dn2cBRGETyv1s2BFJtMiE9fRiwYnvugIu2my2CCXAFzFTaE/J6BKom6KrpTcGbcvC499rjtGygdj93cogVzIq3DEC4IsN4aKvuDyeXTe28seYDz0hoBUuFBKYR8pQVLQoKmGJ5iavwrrLxEK42fCufFQDUGS7Q+NHohsyL0UjrVOZ8xNdf6QfcPUJIg+Ee+D6sxC0QEgolIjTqg0QHIVE/af54VNCsTUPeoUnfwuluXCQwcbcYOy4c1tzqWM8zzTw7x26k13YE1ugVIpaPluYKqfw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=AmYhue6f45DT6XjBHMe0aXLexIDjqwA/EdqSvJB28ZE=;
 b=W+ch+yu4eRpTc+0VGL1E5s8tbeIMSf68fWWM1JigYd3pOdGp6FOM06HCF2xch/4RBAONtX6GRWYW4Gt7avx7vGuaS5iLY14y5jgvt7dcekVcsQ42SDXEmO0q46dxH54bUemiZnSMHA6Wukbqx/aa8uunYI1KWLsk+5sLPmny4okTR+5aV6NwvmX65CcF2PWMHvvyIKj0GziEfExPXTkX3suqvajPGJFS6+0LiJzuW4sFqKk6N0bJUsmlm7BER/C1RxxUHyHRsRJe4YFg2VIXGoB1lLcHdDXXCYqE6EJult+OksdAUsSdwEAc1TTRrOyfxwlRtHe1EXTmAJLkeKgUFQ==
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=AmYhue6f45DT6XjBHMe0aXLexIDjqwA/EdqSvJB28ZE=;
 b=Jd4gOBJiKSWaq1HxJ1vqZWyT8iCSZFENob66KuK20NMJIvBtGmaN3gWx2DaXFsf51PPbGcLP/TCIMqMccDToNfnIHTddLuorCCJSqmN4UNlEHpjS2SB/ueQ9RrvHNNC13VNkr2tgEKDUY1FUpZnhP9KFhq+nVQoIvWBfBwRLnV8=
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: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, "Julien
 Grall" <julien@xen.org>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v3 08/20] xen/sysctl: wrap around XEN_SYSCTL_lockprof_op
Date: Mon, 21 Apr 2025 15:37:11 +0800
Message-ID: <20250421073723.3863060-9-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250421073723.3863060-1-Penny.Zheng@amd.com>
References: <20250421073723.3863060-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: BN2PEPF000055E1:EE_|SJ1PR12MB6124:EE_
X-MS-Office365-Filtering-Correlation-Id: 0cf3c808-31f4-4688-cc98-08dd80a77551
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|1800799024|376014|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?6rl5bhthfbN03Qu6YCfRZtjsIJoO/sMMSMStC1Uk+XHLg9i/ttPvcmVEW9JS?=
 =?us-ascii?Q?STUpOJ+rgU+ftkOcrbpPqtSLhBNpBOaXx3fZ6xTzjbrwlkVczSMNtf+zrFUx?=
 =?us-ascii?Q?XdchSp2Ex66vvL1MxbGRIZpihDI6oNdE7mR2r0sDGlNzXkz9o6BXBtlLD2la?=
 =?us-ascii?Q?bZIilxow/ts0ralyqVJvngiaMfiWhcP7sJvLGrnI7b2qdAf+pGBrtB8xGnVj?=
 =?us-ascii?Q?Y4zIPZXwz4FOfdrd9elBl6S6Nn6PPhIrQyFckDiLe5XCVTMsGqsxm7kj3oRY?=
 =?us-ascii?Q?uZk292UUJYvNhQWCH8f6jyr99FnW/BLQoJbgm0aHytKD78YuKGp553E3T7o0?=
 =?us-ascii?Q?X8R37N+bUDOfErK7d9iIpyn9Q42wvKCKQdOd8EKtdE8xFv5xPjW+1bap/K/2?=
 =?us-ascii?Q?ZyZPJzwmz69BMWdUX4WZoQyCmoHM3TwfD0Gu5WZtOj283Xx8//djq0DQ95ud?=
 =?us-ascii?Q?mimMR+/+bOt/egxV9eYmobTdPK1SDz1EG2ucoCnb0iamso+UzlMlINN+obzs?=
 =?us-ascii?Q?bolVBcTw34edlHkFveb01sINXiyRM8n9hTUQw8Mq0njbr6oRJuAlxZGt1m7V?=
 =?us-ascii?Q?hNYUEofjokLByGCr12SKjFn+gT5RANn/GU9+/u3dYtQvpm9dU+9WNZtbAvAI?=
 =?us-ascii?Q?zYzHA37QnPnHqGcnlylWVe8Dkcl9mMxNPDXj5pnkbsMj5oXu7XVDV+swdTYv?=
 =?us-ascii?Q?qeEggOEu10PQRIom2mlxLdPID5QgeKwLMa3XvZ9a6X1S2zxgqdHQFB+9Rl5u?=
 =?us-ascii?Q?zcigw5qAY2ppDnhXVf7IybIMEAjuaZXj1S26e+RSFiYOmO9ui+4ZJCMzx9fK?=
 =?us-ascii?Q?bTwxYtGOXEplkysn9I1benHu9Un8GjcIL+4S1ERkxJmXDoGMEgnlkwPZ4hRd?=
 =?us-ascii?Q?tPz2Rz0IBjAeeNpM7SRz8clod7v77HQtlAUTUWS2cv2mf3Pp1ZucG/TcoFFd?=
 =?us-ascii?Q?0Txr1u5PP5BS9ed+rDszmxrxDIx+ji77CCzRGvS9USusVw6kj79Nwv1DGAhn?=
 =?us-ascii?Q?Qo0Usf7Emgwu7H+V/fVc/5XAVwjGkAFWHzt6gVzjIEMAcxnIUllmIXP1uR2E?=
 =?us-ascii?Q?6oa/qDXWiHyYCFWnAszeIaep/HItvrB2GMxcJHGH07Hw6No/JJH/ea3yDYBp?=
 =?us-ascii?Q?ygQ/Ce4TEqxOmuLMExV+saq8uYnOzRi7aSn3OCFjq24gmncav2gh/C1iKsVJ?=
 =?us-ascii?Q?N4a25CasZkcCzN+3HTRkIIltFoll3FlcMI9XGuSVesSzgdLi82OAE0MIHo8O?=
 =?us-ascii?Q?YkaZhz9XelFeOdO6ceEl37fkBK4xmS4cjZNURjdE6vI9n+5J/ekzvX6VujqZ?=
 =?us-ascii?Q?l68+J6SDOPIlX35AYRCcXhLxBYWMSe67JnRC/Q/CbL+GRP2O9aj3u2NvexLm?=
 =?us-ascii?Q?50jTFJllHtOojFI50VyxYh4p58hGIYT0Pi1PUDp+oXlbwFlLYO/qO5rzu9nv?=
 =?us-ascii?Q?RSkFvccDcDWJVFCFEKsPMUPNyiNlSiva6Aos/ZVqMwvuyBeGqkY5XykK52r3?=
 =?us-ascii?Q?SCKej5xg0i5iV7Y=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:;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: 21 Apr 2025 07:38:07.2248
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 0cf3c808-31f4-4688-cc98-08dd80a77551
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:
	BN2PEPF000055E1.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ1PR12MB6124

The following function is only to serve spinlock profiling via
XEN_SYSCTL_lockprof_op, so it shall be wrapped:
- spinlock_profile_control

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
---
v2 -> v3:
- add the blank line
---
 xen/common/spinlock.c | 2 ++
 xen/common/sysctl.c   | 3 ++-
 2 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/xen/common/spinlock.c b/xen/common/spinlock.c
index 38caa10a2e..0389293b09 100644
--- a/xen/common/spinlock.c
+++ b/xen/common/spinlock.c
@@ -690,6 +690,7 @@ void cf_check spinlock_profile_reset(unsigned char key)
     spinlock_profile_iterate(spinlock_profile_reset_elem, NULL);
 }
 
+#ifdef CONFIG_SYSCTL
 typedef struct {
     struct xen_sysctl_lockprof_op *pc;
     int                      rc;
@@ -749,6 +750,7 @@ int spinlock_profile_control(struct xen_sysctl_lockprof_op *pc)
 
     return rc;
 }
+#endif /* CONFIG_SYSCTL */
 
 void _lock_profile_register_struct(
     int32_t type, struct lock_profile_qhead *qhead, int32_t idx)
diff --git a/xen/common/sysctl.c b/xen/common/sysctl.c
index 608e159571..2fe76362b1 100644
--- a/xen/common/sysctl.c
+++ b/xen/common/sysctl.c
@@ -123,13 +123,14 @@ long do_sysctl(XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl)
         ret = perfc_control(&op->u.perfc_op);
         break;
 #endif
-#endif /* CONFIG_SYSCTL */
 
 #ifdef CONFIG_DEBUG_LOCK_PROFILE
     case XEN_SYSCTL_lockprof_op:
         ret = spinlock_profile_control(&op->u.lockprof_op);
         break;
 #endif
+#endif /* CONFIG_SYSCTL */
+
     case XEN_SYSCTL_debug_keys:
     {
         char c;
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Apr 21 07:41:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 21 Apr 2025 07:41:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.961085.1352733 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6lm4-0007oU-0n; Mon, 21 Apr 2025 07:41:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 961085.1352733; Mon, 21 Apr 2025 07:41:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6lm3-0007nC-Q2; Mon, 21 Apr 2025 07:41:03 +0000
Received: by outflank-mailman (input) for mailman id 961085;
 Mon, 21 Apr 2025 07:41: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=Kh51=XH=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1u6ljS-0007m8-6D
 for xen-devel@lists.xenproject.org; Mon, 21 Apr 2025 07:38:22 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on20624.outbound.protection.outlook.com
 [2a01:111:f403:2415::624])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 98238977-1e83-11f0-9eb0-5ba50f476ded;
 Mon, 21 Apr 2025 09:38:20 +0200 (CEST)
Received: from BL1P221CA0035.NAMP221.PROD.OUTLOOK.COM (2603:10b6:208:5b5::8)
 by IA0PR12MB7674.namprd12.prod.outlook.com (2603:10b6:208:434::21) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.33; Mon, 21 Apr
 2025 07:38:15 +0000
Received: from BN2PEPF000055E1.namprd21.prod.outlook.com
 (2603:10b6:208:5b5:cafe::de) by BL1P221CA0035.outlook.office365.com
 (2603:10b6:208:5b5::8) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.36 via Frontend Transport; Mon,
 21 Apr 2025 07:38:15 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BN2PEPF000055E1.mail.protection.outlook.com (10.167.245.11) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8699.1 via Frontend Transport; Mon, 21 Apr 2025 07:38:15 +0000
Received: from penny-System-Product-Name.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; Mon, 21 Apr 2025 02:38:12 -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: 98238977-1e83-11f0-9eb0-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=C7w8BOmdA5Tx9FmmZVUXq4pC2LEaszAz3dAlIcKIa6JyTKe3FYfIolOI/9wyp3piSklmWUkHbGr1UfpQC5zarsyGrIzjF05ASp1z8I/155pgw153Sl/UddSqeWiz3WN0jqesFHJXiGg5Dc+WQEGf2AvzNdRYBGh+BDof2ZguOXI+LkLOygGdQbI5p9nbewm6pfXYkYh2Ky4QGqWoxGiMw4Z+KijW3FrWMEWaXPfHJA7G/26QRe5fa+van/FRbXiZV2qpnIudNWwc3saclS/quHQvOrXK27FIntqt6OuNtqqKdMcBoC2SZI8/m1kVYGZO4qef5MnGcm4oO5xLgnoYUA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=RN9U3VJ1DRj2PzopzTPyYNfYmf1OOTSE0ItrPloBlsE=;
 b=yhHk9sRB9oeuibabh9loeHrRNkAsmmWijDbCesvh4JhXtP7tBUMT74c7TjHHdAzsaAmFTKNfPUJ18PvniBaofxX/lvTVAfMDY3gXCv5CKmZhE3oy10PiHWPdB4UhqaRKYdhdNcwIjfPVax2qDkFTEkoLbP25V5V478Vlq6whe/SDg0KLcYFl2hJTwp5I41fVvvYUkB1TJsr9KCXASOVAJ8SofkteCn9J/CtNNy1rNUUUw3/w0yC+xIMbDQuuejBPLwwc0YXQTXVC65KcWRs1xBSFsXd40JflO6w0eKb2Gu86bvo+9nXeLH5tPHaXtKfrSRoU2Ki32hB0T6aW/YEMWA==
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=RN9U3VJ1DRj2PzopzTPyYNfYmf1OOTSE0ItrPloBlsE=;
 b=gdeGS3SQaIOTkBnWPIXD1Qii7SVk4MYCBHatzASHmjt/lpaj7w7sIBwaPushEEVD1Q/QUyVx0104EcyeLboF4snFAmtZKABcckT9GCzqmEiXa6YAguhL4o5nXrk1hrZdduYnmFJd0y7JwX1Pgo2IZL/7uqA51Iufl2VfyG0sd0E=
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: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, "Julien
 Grall" <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v3 11/20] xen/sysctl: introduce CONFIG_PM_STATS
Date: Mon, 21 Apr 2025 15:37:14 +0800
Message-ID: <20250421073723.3863060-12-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250421073723.3863060-1-Penny.Zheng@amd.com>
References: <20250421073723.3863060-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: BN2PEPF000055E1:EE_|IA0PR12MB7674:EE_
X-MS-Office365-Filtering-Correlation-Id: ae9ef777-4dd5-49c6-d035-08dd80a779ff
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?2DdB3gCU8qoxU9SI5Rhzt1wORpitvfvyqpUrKIubg+R6mFxNPwG8J/cTrlOl?=
 =?us-ascii?Q?EPd8irBOr6QgAwJIA82MVwIgEgPsZ5TnmiB+iZ/LjYpcGRMFjvPfg1ACavOR?=
 =?us-ascii?Q?rJ7+rBhEAOp+IZrsPxC+z03EIFRNj0x813E6XMKrNmwrsv4Tj4EVTWDNpq5H?=
 =?us-ascii?Q?t2rzUeZB/cGsksKemaQemHTZ+omYIY0umsXo97iySTm9gSLiUnpZLUpYdGai?=
 =?us-ascii?Q?F2rJHPG6xxKCJI71lzGUxyszG3KHnQXXmLcSPSNcWXDFHWaOFQyZliy3YSA2?=
 =?us-ascii?Q?U5KAuZMrBEkS66a4+FKSII1xmuBUWRi/IbsmarZ5Q7MwPiPLcDIkl8IRb12B?=
 =?us-ascii?Q?ny1puaq80OlYy0qvlDzp5vY5pu+u7OXhhaFWdR0Tp+vZj09UmY0LgwKHAUjX?=
 =?us-ascii?Q?AaaPD/zV4L4Iv4cNF6Vdvmg8r0AEkUglgltHTyIC1Un/OGsRdq3EDpL19CtW?=
 =?us-ascii?Q?mfK2Ab25QlNwog8mKaLhwYw97uKJk8IBK4Vs/zkqQNHAVm1AKTq9mtXgerrA?=
 =?us-ascii?Q?FzCl9MsDaWUGLg9pPC9aebU7jOVOMQ3H3y2WOzanZ2bDPyIynJZsd7ufoy4r?=
 =?us-ascii?Q?J0t5tjUMR7uPW3HiRkUVYFrYEEB3PymIlQrpMkt3Rsa3tC7LqW8kxaOY6pbx?=
 =?us-ascii?Q?Qp6SAk8OeID46Eiy4YCprxJ0omYRYqHoBiFhpgPG4cBar46EWwUc1l/7HBN1?=
 =?us-ascii?Q?wJB69+nvZccSkBqnnkwSCoPXkHTjmp6CzCNz8qlhkN39B71DMKTxk84t5Aqa?=
 =?us-ascii?Q?sgIxb369cSaexRXGFZZ4s9mt1YQaXWDW4N++jEyBbT8poUSEx2N8Z+jaTEdD?=
 =?us-ascii?Q?2csvwFlRs/E9p/L8bnsxhhOh58I5OVhiLOrHAMGzYCdnNcJQXPGVowMWc1SQ?=
 =?us-ascii?Q?HIu2dlfoO0TFLXNmbljzsoDD9AUQWlQzZOXbioueTLnEfzvLsPGvoXp9WP1F?=
 =?us-ascii?Q?uBmOpYw+2pZmiq+35JrhOiSI6UMDq2JpzS625b8I+Qi0yvLWl63RoEuTRAkO?=
 =?us-ascii?Q?1f1JZYR3qVgF5xIOMv4zwmM2hZPa8Z+H3UXg9WScFwO5SewZ2dqoVGaLuvXd?=
 =?us-ascii?Q?at6qX+pMHYW5fPrfDMdiL8M2DHx50E1EhUXvdFZMxdBefIMuWuvKQLsTCPgg?=
 =?us-ascii?Q?uc5J+mFvYKkEVeYFFmcSb/f5Wpd6T5bQJYIISuVFmQUdYIvFwdhlUq5sJj+y?=
 =?us-ascii?Q?UuxYjSEHXr3HX+EHbYKypOXcyIdiXuk2Ic1dqGUh2vQT3U31S7ZNf5EpqETL?=
 =?us-ascii?Q?FJqdvlisrA/nF/GcCopirhMyHRYLftyAeJyaK43SmqYA/C5JNjzS2IgjgsQW?=
 =?us-ascii?Q?L5MjfAodnP6RT/0eoWlR8ws6+cigzD3razLMNBn7hnpz9i+U32r1h914gPFr?=
 =?us-ascii?Q?KiT/rg/nuxaY0FcV9TpdNGaicsgqWfJETUrGm2Onw7ppc5OeKV5EjRbCCEy7?=
 =?us-ascii?Q?M4BTMTvkd54HBJExBJf49iPhDJn3tZucAMK1cPypOjRnsVGe2RCfGIhkTrvV?=
 =?us-ascii?Q?Xy1AihSFxh9jWak=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:;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: 21 Apr 2025 07:38:15.0759
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: ae9ef777-4dd5-49c6-d035-08dd80a779ff
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:
	BN2PEPF000055E1.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PR12MB7674

We introduce a new Kconfig CONFIG_PM_STATS for wrapping all operations
regarding performance management statistics.
The major codes reside in xen/drivers/acpi/pmstat.c, including the
pm-statistic-related sysctl op: do_get_pm_info().
CONFIG_PM_STATS also shall depend on CONFIG_SYSCTL

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
v1 -> v2:
- rename to CONFIG_PM_STATS
- fix indention and stray semicolon
- make code movements into a new commit
- No need to wrap inline functions and declarations
---
v2 -> v3:
- sepearte functions related to do_pm_op() into a new commit
- both braces shall be moved to the line with the closing parenthesis
---
 xen/arch/x86/acpi/cpu_idle.c              |  2 ++
 xen/common/Kconfig                        |  8 ++++++++
 xen/common/sysctl.c                       |  4 ++--
 xen/drivers/acpi/Makefile                 |  2 +-
 xen/include/acpi/cpufreq/processor_perf.h | 10 ++++++++++
 5 files changed, 23 insertions(+), 3 deletions(-)

diff --git a/xen/arch/x86/acpi/cpu_idle.c b/xen/arch/x86/acpi/cpu_idle.c
index 420198406d..b537ac4cd6 100644
--- a/xen/arch/x86/acpi/cpu_idle.c
+++ b/xen/arch/x86/acpi/cpu_idle.c
@@ -1487,6 +1487,7 @@ static void amd_cpuidle_init(struct acpi_processor_power *power)
         vendor_override = -1;
 }
 
+#ifdef CONFIG_PM_STATS
 uint32_t pmstat_get_cx_nr(unsigned int cpu)
 {
     return processor_powers[cpu] ? processor_powers[cpu]->count : 0;
@@ -1606,6 +1607,7 @@ int pmstat_reset_cx_stat(unsigned int cpu)
 {
     return 0;
 }
+#endif /* CONFIG_PM_STATS */
 
 void cpuidle_disable_deep_cstate(void)
 {
diff --git a/xen/common/Kconfig b/xen/common/Kconfig
index ca1f692487..d8e242eebc 100644
--- a/xen/common/Kconfig
+++ b/xen/common/Kconfig
@@ -600,4 +600,12 @@ config PM_OP
 	help
 	  This option shall enable userspace performance management control
 	  to do power/performance analyzing and tuning.
+
+config PM_STATS
+	bool "Enable Performance Management Statistics"
+	depends on ACPI && HAS_CPUFREQ && SYSCTL
+	default y
+	help
+	  Enable collection of performance management statistics to aid in
+	  analyzing and tuning power/performance characteristics of the system
 endmenu
diff --git a/xen/common/sysctl.c b/xen/common/sysctl.c
index 4ab827b694..baaad3bd42 100644
--- a/xen/common/sysctl.c
+++ b/xen/common/sysctl.c
@@ -177,11 +177,11 @@ long do_sysctl(XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl)
         op->u.availheap.avail_bytes <<= PAGE_SHIFT;
         break;
 
-#if defined (CONFIG_ACPI) && defined (CONFIG_HAS_CPUFREQ)
+#ifdef CONFIG_PM_STATS
     case XEN_SYSCTL_get_pmstat:
         ret = do_get_pm_info(&op->u.get_pmstat);
         break;
-#endif
+#endif /* CONFIG_PM_STATS */
 
 #ifdef CONFIG_PM_OP
     case XEN_SYSCTL_pm_op:
diff --git a/xen/drivers/acpi/Makefile b/xen/drivers/acpi/Makefile
index e1f84a4468..b52b006100 100644
--- a/xen/drivers/acpi/Makefile
+++ b/xen/drivers/acpi/Makefile
@@ -5,7 +5,7 @@ obj-$(CONFIG_X86) += apei/
 obj-bin-y += tables.init.o
 obj-$(CONFIG_ACPI_NUMA) += numa.o
 obj-y += osl.o
-obj-$(CONFIG_HAS_CPUFREQ) += pmstat.o
+obj-$(CONFIG_PM_STATS) += pmstat.o
 obj-$(CONFIG_PM_OP) += pm_op.o
 
 obj-$(CONFIG_X86) += hwregs.o
diff --git a/xen/include/acpi/cpufreq/processor_perf.h b/xen/include/acpi/cpufreq/processor_perf.h
index 6de43f8602..a9a3b7a372 100644
--- a/xen/include/acpi/cpufreq/processor_perf.h
+++ b/xen/include/acpi/cpufreq/processor_perf.h
@@ -9,9 +9,19 @@
 
 unsigned int powernow_register_driver(void);
 unsigned int get_measured_perf(unsigned int cpu, unsigned int flag);
+#ifdef CONFIG_PM_STATS
 void cpufreq_statistic_update(unsigned int cpu, uint8_t from, uint8_t to);
 int  cpufreq_statistic_init(unsigned int cpu);
 void cpufreq_statistic_exit(unsigned int cpu);
+#else
+static inline void cpufreq_statistic_update(unsigned int cpu, uint8_t from,
+                                            uint8_t to) {}
+static inline int cpufreq_statistic_init(unsigned int cpu)
+{
+    return 0;
+}
+static inline void cpufreq_statistic_exit(unsigned int cpu) {}
+#endif /* CONFIG_PM_STATS */
 
 int  cpufreq_limit_change(unsigned int cpu);
 
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Apr 21 07:41:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 21 Apr 2025 07:41:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.961098.1352752 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6lmA-0000Py-ID; Mon, 21 Apr 2025 07:41:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 961098.1352752; Mon, 21 Apr 2025 07: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 1u6lmA-0000Pk-Dj; Mon, 21 Apr 2025 07:41:10 +0000
Received: by outflank-mailman (input) for mailman id 961098;
 Mon, 21 Apr 2025 07:41: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=Kh51=XH=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1u6ljY-0007m8-7a
 for xen-devel@lists.xenproject.org; Mon, 21 Apr 2025 07:38:28 +0000
Received: from NAM10-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam10on20612.outbound.protection.outlook.com
 [2a01:111:f403:2413::612])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9a79db7e-1e83-11f0-9eb0-5ba50f476ded;
 Mon, 21 Apr 2025 09:38:24 +0200 (CEST)
Received: from BN1PR13CA0022.namprd13.prod.outlook.com (2603:10b6:408:e2::27)
 by SA3PR12MB7877.namprd12.prod.outlook.com (2603:10b6:806:31b::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.32; Mon, 21 Apr
 2025 07:38:18 +0000
Received: from BN2PEPF000055DA.namprd21.prod.outlook.com
 (2603:10b6:408:e2:cafe::12) by BN1PR13CA0022.outlook.office365.com
 (2603:10b6:408:e2::27) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.10 via Frontend Transport; Mon,
 21 Apr 2025 07:38:18 +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.8699.1 via Frontend Transport; Mon, 21 Apr 2025 07:38:18 +0000
Received: from penny-System-Product-Name.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; Mon, 21 Apr 2025 02:38:15 -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: 9a79db7e-1e83-11f0-9eb0-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=KiqVXOpmjUjDczYincGEBfmymwRzqP8nEHOUzYwql4QB9GIoymdA9yU1uxooJMa+Nm+9ZARo5dOYUaKhkALmqH3dABbwrbjMtNdaZ0gmCdY7RBbr8Ho3Q8/oO9nTXMGuhFKLzCu0PtzZXEncr1rpTEpKsDDJ563XMvJnJoaO3gDEiNi6N5EvBl+0DGiXG45ROQXR/leJsgK34zLhoPUBob0xISdMik8Hs3WfyPYaBIbNcNArYUDTaJK8CI7h0Nky3PPbVbivn8T84+GlnX0AxRSyqDBLe5dAvdY4l/E/RQVAVkaDa9JsdqH6pAp4bwDN2kGfydColqyIQCD1OHYmPQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=rOhRRiNHZPNu8AVL3BqYSG/H9sWAd5fdmyFUquc9k1Y=;
 b=W6pmswRHL5dBreRgm/n7sCG/fGfeB981GSyAyLCYitQHjEQiLuUoXIdwe3keLH7/433qqq5eNvoSvC6l4ZWHxJud02ol3/6ZBs7Kklk9jz1muwDek09Om3z0RIzTp+M6u4zUmnJK0Cz3WjawNvwPWIhFcnvb54dvZGu3ew1YQ4TMHFIjwQ4zyG7vs0LKN5UomfId8xRX2yf/ea/DodI0qgU849MnDQx4Z+B5dnCv2MMfDIuPT5u5rKCSov5o5GAozWQrNQUuhdM0lP6EwJJaAuR7YH/Et/mhqf5Xu8TkZSPvRop9umtcVD6pWTnHpV1xZ1tK0ywg/6GxcD40Noqpiw==
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=rOhRRiNHZPNu8AVL3BqYSG/H9sWAd5fdmyFUquc9k1Y=;
 b=4ZgUm+NbqMPDYeCfTYcO6aVK4DroMuIcGTxBPKEXn/ODuZpUUWwB4aTv6hew6+5fOj/iVYzVYj+B1mVgyIipZCgTGBnrhatL67BkZnFA4+QMpwcOv35wuA5v+BuJdpMhKakOHvuRDoBaKawFu1dELbRcyVPFv70+lsdnfTkBKag=
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: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, "Julien
 Grall" <julien@xen.org>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>, "Daniel
 P. Smith" <dpsmith@apertussolutions.com>
Subject: [PATCH v3 12/20] xen/sysctl: wrap around XEN_SYSCTL_page_offline_op
Date: Mon, 21 Apr 2025 15:37:15 +0800
Message-ID: <20250421073723.3863060-13-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250421073723.3863060-1-Penny.Zheng@amd.com>
References: <20250421073723.3863060-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: BN2PEPF000055DA:EE_|SA3PR12MB7877:EE_
X-MS-Office365-Filtering-Correlation-Id: 48f3cc6d-e35a-4bf8-1f57-08dd80a77bd1
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?Dc7B64Wegsizw8Jlrp+tL/wrwlAEJMihLEvW5Porxj8NT72J4hyTzUo2QFpk?=
 =?us-ascii?Q?Tj4fWt+wPQguvlQ4Aw5a4TwoC54diEU0tg+t0DQAXpCitKMlf73BdxBhmFmy?=
 =?us-ascii?Q?+d3ncJqtNPSHEsIXmcy1V7s2FoCybGUqbcZke2lc9M2mstFi2Z5jxtn4qEIQ?=
 =?us-ascii?Q?xW9P6uTat3t6sn0cZ6bAp4yDHq658keXsyjcGgSJIYheplsbQggN9fZ9Aiuh?=
 =?us-ascii?Q?pLmwTJQbKnbnWqvxp0RA/NhZHbYjicYrpihiPtaGzwnqo2Mz5wE4IJr1H6Lm?=
 =?us-ascii?Q?N582I0uBWvRKsoktyY4z9Dr5NQ+sS0GdPmnvtXhje0I/Z5NwqMcU9qEN1Irc?=
 =?us-ascii?Q?2Ua4ehKaaPzT+4GE6zrsoNR9W4nx8kCVwEgQY3M0qWnY4v4mrzCmI5j238Cg?=
 =?us-ascii?Q?a+1BPImnUEJffoRVnpRDlD6tLPUJXKOmIBAcYSDMv0WR75blTzX6SRbhFspn?=
 =?us-ascii?Q?pj6ZG/GPBF+ZaGKC1x99baL8oiMs1Uo5OKq8fqHcVtZabjN06PhkaCOuw4eC?=
 =?us-ascii?Q?6fs4u9lEpnXi4q8HWSjMsZhXbNGkAxCQs7oCqrU0PcaoEdIwgwW/ClTzOo7Q?=
 =?us-ascii?Q?TUGvkcwDl3ITqje+lOElwMmxC0djK5cEl4TN/hHO4iQnd1hgcsOFlJU2U5Wq?=
 =?us-ascii?Q?ijT2JHFwUuOR51ejW0FOnulgn9SbCEIJEOhtI5oAI3m6trYwPPIr3ovu7DKt?=
 =?us-ascii?Q?zPraiInQbN/H0uzwNqjbFPZg5u0YkiHLENum9Ut60UyIWa7bLAtzfo2F/r55?=
 =?us-ascii?Q?dKMrRHCIKEJoP1SooeEN4m5Q3JlnaJnZQpoevftI7pbTKyzkgWTYTV+maneY?=
 =?us-ascii?Q?yeV/11QBppUVFHoD6avArDZfy0Jyv+ecKIa+VlPS/K74q9Rq3b930wnVT+Me?=
 =?us-ascii?Q?Wxc6GK3ucPCazUWi7bF1WFU+OrCDyurfcAfuSn4Es28EGp3hr82ep0THc3Wi?=
 =?us-ascii?Q?PU5DQ5JT55Ab+1sroUZDvu/OSpH+8kFwBQuwIOw2XLk+ApU2KemoqFqs03Fq?=
 =?us-ascii?Q?RBJ8u4xePazWTsVkRSIpjDbCmqaTZSPIVj6ZjJXTq8rFhsfF+ATxqrM2wK2Y?=
 =?us-ascii?Q?x2mm4XmVJBVsObSqP/NvTJnCfsusZw26LayrNi/fZNaFzy/SwYvMsNPcyvoB?=
 =?us-ascii?Q?3TTSzplH9JTy72JnqVLfCVDNdK5vmZluA07MkfZh18i96i8gOG4DuUjP30G4?=
 =?us-ascii?Q?VIq2qBfYOR2iVkRimgJrQfmUNOnSLnikugDaeyOOns+Q+8M2D4vaeMYGgWVN?=
 =?us-ascii?Q?wbOoeCPGMm9pt99hmlqg9ZXnAMlanB3ZkDEunXmM9ilyW9XWHEaKvPtqc5a+?=
 =?us-ascii?Q?SAJmb8mD+sIIZ3eD1v4b5NmcZJPmNfNcfuCpmN1uJvxEIO2TXX7BOL49ZXWl?=
 =?us-ascii?Q?k6GRRaRoIGYSGKwEc5AX43EKtizIA5mUYgXUJFOdV2p5hMSTLDoIz4is5/uE?=
 =?us-ascii?Q?6CgyGlt6APfX25E0ytWV7v+mu17pLgEzxLvmGHDFs7Ge0ycZNP45iS9xw23q?=
 =?us-ascii?Q?RSA9J8JSZC/41zw=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(36860700013)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Apr 2025 07:38:18.1237
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 48f3cc6d-e35a-4bf8-1f57-08dd80a77bd1
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: SA3PR12MB7877

The following functions are only to deal with XEN_SYSCTL_page_offline_op,
then shall be wrapped:
- xsm_page_offline
- online_page
- query_page_offline

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
---
v1 -> v2:
- add transient #ifdef in sysctl.c for correct compilation
- no need to wrap declarations
- place the #ifdef inside the function body to have less redundancy
---
 xen/common/page_alloc.c | 2 ++
 xen/common/sysctl.c     | 2 ++
 xen/include/xsm/xsm.h   | 6 ++++++
 xen/xsm/dummy.c         | 2 ++
 xen/xsm/flask/hooks.c   | 6 ++++++
 5 files changed, 18 insertions(+)

diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c
index bd4538c28d..cc2ad4423a 100644
--- a/xen/common/page_alloc.c
+++ b/xen/common/page_alloc.c
@@ -1758,6 +1758,7 @@ int offline_page(mfn_t mfn, int broken, uint32_t *status)
     return 0;
 }
 
+#ifdef CONFIG_SYSCTL
 /*
  * Online the memory.
  *   The caller should make sure end_pfn <= max_page,
@@ -1842,6 +1843,7 @@ int query_page_offline(mfn_t mfn, uint32_t *status)
 
     return 0;
 }
+#endif /* CONFIG_SYSCTL */
 
 /*
  * This function should only be called with valid pages from the same NUMA
diff --git a/xen/common/sysctl.c b/xen/common/sysctl.c
index baaad3bd42..504e3516c3 100644
--- a/xen/common/sysctl.c
+++ b/xen/common/sysctl.c
@@ -191,6 +191,7 @@ long do_sysctl(XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl)
         break;
 #endif /* CONFIG_PM_OP */
 
+#ifdef CONFIG_SYSCTL
     case XEN_SYSCTL_page_offline_op:
     {
         uint32_t *status, *ptr;
@@ -251,6 +252,7 @@ long do_sysctl(XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl)
         copyback = 0;
     }
     break;
+#endif /* CONFIG_SYSCTL */
 
     case XEN_SYSCTL_cpupool_op:
         ret = cpupool_do_sysctl(&op->u.cpupool_op);
diff --git a/xen/include/xsm/xsm.h b/xen/include/xsm/xsm.h
index 042a99449f..5ac99904c4 100644
--- a/xen/include/xsm/xsm.h
+++ b/xen/include/xsm/xsm.h
@@ -138,7 +138,9 @@ struct xsm_ops {
     int (*resource_setup_gsi)(int gsi);
     int (*resource_setup_misc)(void);
 
+#ifdef CONFIG_SYSCTL
     int (*page_offline)(uint32_t cmd);
+#endif
     int (*hypfs_op)(void);
 
     long (*do_xsm_op)(XEN_GUEST_HANDLE_PARAM(void) op);
@@ -597,7 +599,11 @@ static inline int xsm_resource_setup_misc(xsm_default_t def)
 
 static inline int xsm_page_offline(xsm_default_t def, uint32_t cmd)
 {
+#ifdef CONFIG_SYSCTL
     return alternative_call(xsm_ops.page_offline, cmd);
+#else
+    return -EOPNOTSUPP;
+#endif
 }
 
 static inline int xsm_hypfs_op(xsm_default_t def)
diff --git a/xen/xsm/dummy.c b/xen/xsm/dummy.c
index cd0e844fcf..d46413ad8c 100644
--- a/xen/xsm/dummy.c
+++ b/xen/xsm/dummy.c
@@ -96,7 +96,9 @@ static const struct xsm_ops __initconst_cf_clobber dummy_ops = {
     .resource_setup_gsi            = xsm_resource_setup_gsi,
     .resource_setup_misc           = xsm_resource_setup_misc,
 
+#ifdef CONFIG_SYSCTL
     .page_offline                  = xsm_page_offline,
+#endif
     .hypfs_op                      = xsm_hypfs_op,
     .hvm_param                     = xsm_hvm_param,
     .hvm_param_altp2mhvm           = xsm_hvm_param_altp2mhvm,
diff --git a/xen/xsm/flask/hooks.c b/xen/xsm/flask/hooks.c
index df7e10775b..45c12aa662 100644
--- a/xen/xsm/flask/hooks.c
+++ b/xen/xsm/flask/hooks.c
@@ -1206,10 +1206,12 @@ static int cf_check flask_resource_unplug_core(void)
     return avc_current_has_perm(SECINITSID_DOMXEN, SECCLASS_RESOURCE, RESOURCE__UNPLUG, NULL);
 }
 
+#ifdef CONFIG_SYSCTL
 static int flask_resource_use_core(void)
 {
     return avc_current_has_perm(SECINITSID_DOMXEN, SECCLASS_RESOURCE, RESOURCE__USE, NULL);
 }
+#endif /* CONFIG_SYSCTL */
 
 static int cf_check flask_resource_plug_pci(uint32_t machine_bdf)
 {
@@ -1274,6 +1276,7 @@ static int cf_check flask_resource_setup_misc(void)
     return avc_current_has_perm(SECINITSID_XEN, SECCLASS_RESOURCE, RESOURCE__SETUP, NULL);
 }
 
+#ifdef CONFIG_SYSCTL
 static inline int cf_check flask_page_offline(uint32_t cmd)
 {
     switch ( cmd )
@@ -1288,6 +1291,7 @@ static inline int cf_check flask_page_offline(uint32_t cmd)
         return avc_unknown_permission("page_offline", cmd);
     }
 }
+#endif /* CONFIG_SYSCTL */
 
 static inline int cf_check flask_hypfs_op(void)
 {
@@ -1948,7 +1952,9 @@ static const struct xsm_ops __initconst_cf_clobber flask_ops = {
     .resource_setup_gsi = flask_resource_setup_gsi,
     .resource_setup_misc = flask_resource_setup_misc,
 
+#ifdef CONFIG_SYSCTL
     .page_offline = flask_page_offline,
+#endif
     .hypfs_op = flask_hypfs_op,
     .hvm_param = flask_hvm_param,
     .hvm_param_altp2mhvm = flask_hvm_param_altp2mhvm,
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Apr 21 07:41:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 21 Apr 2025 07:41:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.961103.1352762 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6lmB-0000o9-Un; Mon, 21 Apr 2025 07:41:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 961103.1352762; Mon, 21 Apr 2025 07: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 1u6lmB-0000mi-Q4; Mon, 21 Apr 2025 07:41:11 +0000
Received: by outflank-mailman (input) for mailman id 961103;
 Mon, 21 Apr 2025 07:41: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=Kh51=XH=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1u6ljR-0007m8-61
 for xen-devel@lists.xenproject.org; Mon, 21 Apr 2025 07:38:21 +0000
Received: from NAM04-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam04on20622.outbound.protection.outlook.com
 [2a01:111:f403:2408::622])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 97ad78e9-1e83-11f0-9eb0-5ba50f476ded;
 Mon, 21 Apr 2025 09:38:19 +0200 (CEST)
Received: from MN0PR05CA0025.namprd05.prod.outlook.com (2603:10b6:208:52c::13)
 by MW6PR12MB8952.namprd12.prod.outlook.com (2603:10b6:303:246::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.33; Mon, 21 Apr
 2025 07:38:13 +0000
Received: from BN2PEPF000055DD.namprd21.prod.outlook.com
 (2603:10b6:208:52c:cafe::3a) by MN0PR05CA0025.outlook.office365.com
 (2603:10b6:208:52c::13) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.12 via Frontend Transport; Mon,
 21 Apr 2025 07:38:12 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BN2PEPF000055DD.mail.protection.outlook.com (10.167.245.7) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8678.4 via Frontend Transport; Mon, 21 Apr 2025 07:38:12 +0000
Received: from penny-System-Product-Name.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; Mon, 21 Apr 2025 02:38:09 -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: 97ad78e9-1e83-11f0-9eb0-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=JoMF1mmFDBLaXxhLTXNQmUiU9lj49fR+vbvY5U07GQghEoS4KdkrCTbAzJ8gExgKJhU8422qBMm76ljEz5UrBIBsewRF/LZnuxRbuk/0JMNLBVrF59EjHq+eeFetdeT0jElaKE9vaB6TGF2Lbw7ZsTf5h5GBcJpq6veCQrya+PUOZf7TZEqxtrFSCh6Rgej4zl+RbSYSAzYYf8Pyn64i32NRfpTgcqD5LQcOFTKgp7vC8GwYb58TO4DcXNUyQOHiZR5dKegYVZ6SOzuYD92BNpm25SpkDOw4bQZRZ8iYbfdP2TQBoPbg2BITKpWCBlhNyoWDDNs9Sw/xwjQjVuX/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=o5lZPUfoWXCbTowP6nydOmEPoS2TEqlQPUd7Xt/sLXQ=;
 b=YonJ3ZVYhczEqtBKB4N5Lcd/vg5LTzKzeiuDYQhpUJ4hS7ad7ShIQAtbeSgrv6Ndkgz49/0vxf8QLQY/Hrto9OUR52JKYH84x9HCNa1OJvOjLGThG24+Tj+QzceeTxJeP8R90JwJdaEtWFAQDRm/fVG1xsVfpfZddVHaKDn1ARyaWesDozEa64hilx4NrktGeEaIvwOUeiXlFd7SXzGaQKr5Y/WJpV0IbAGN0Q3W3l7HvNLhoNcbr9bmIO2gckn0/y971TTWMTvcGoKhJ5inWYiXGb//PsjTfq0i+PTJNyrtZmufCOdMYvAz0T51kx2tYYMm14nypUEXnSpwOAsHFA==
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=o5lZPUfoWXCbTowP6nydOmEPoS2TEqlQPUd7Xt/sLXQ=;
 b=SG1URyxTJSqkleQwJUYi5M4arfuj3lJY89aDhVs1LlRyqcefmMuqvUZ7s8/rk+Eg5Nsu78UkLOeRDvSPvZK6M3IkZd3Ztrgf4eYqdTzFKMygLj76oNKDwxqu5PaZ8aaXJive3KgHCcOKzXavDuSX3XGOZyVZn5anyC9eapZMQBk=
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: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, "Julien
 Grall" <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v3 10/20] xen/pmstat: introduce CONFIG_PM_OP
Date: Mon, 21 Apr 2025 15:37:13 +0800
Message-ID: <20250421073723.3863060-11-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250421073723.3863060-1-Penny.Zheng@amd.com>
References: <20250421073723.3863060-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: BN2PEPF000055DD:EE_|MW6PR12MB8952:EE_
X-MS-Office365-Filtering-Correlation-Id: 0e8d57e2-2107-47c4-af5d-08dd80a77855
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|82310400026|1800799024|376014;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?PaCBwlSkn1CPT9Eq1Tsocz5r7liu2Ne6NSD6sDPsugQ2nAvwj3YiZF/fNil/?=
 =?us-ascii?Q?Uh5xhGmfxug4DeQcZbqNTfBozPO/7KWr1YFOZlDeJHKue0EEcgGQOtaF7dBU?=
 =?us-ascii?Q?mgmRo7QtVidAyrXXk+1mLzOzyjXWWzLQmOIdDteDvObbuxcNnyyFNm2lXG1U?=
 =?us-ascii?Q?ieEtQxv68Sa5CORUqyasgMSZ0VUcL/SeYrZJsNXNyCnO8KdZG9avhhNXKh/L?=
 =?us-ascii?Q?8vfG24sBrtvflhJLIMV0CH777Ewzb7RdTo5JRl0+i+Wd8P1uwAcP06HY4V+K?=
 =?us-ascii?Q?3CC+shq5OVyNMuc45kfy64pReqvmJwUnfVnRR9j4d79AqhZn52bXdN/7i/OE?=
 =?us-ascii?Q?pQerlRkID9Nh781d+hwBiK8vRdl5O0pd2zbx6E7sR6da8QwMN0T2EPCiO2rJ?=
 =?us-ascii?Q?ryP2S223gwNHRn+kKxAl7RsLPNEdWX6PPH48Whiz6HmDOJuUqt+DIn5g+F6O?=
 =?us-ascii?Q?WSsDF5Q04EzOOW0BwlDxnO7WdxE2eSDXHpFayX5k56LN1yIL5eS0i2LjIE/E?=
 =?us-ascii?Q?joFtbPETt3QRpgehoPyUEKYtoYl3UkxcHY2xM6zTAozPrgeh6BkYvewG9DKO?=
 =?us-ascii?Q?KsK07IS5nvnzNZFoIMq6EvywEod5PO3WXTSiZOD+fxNT08u1fenVyz3//v6u?=
 =?us-ascii?Q?N04Z3d4X0fFDrTELx9yPfF+tJk7uN5ZDxPEReWPhds3IW8eH4AqmAByjlj1F?=
 =?us-ascii?Q?k7paGJAdYGVIfXT5fzkJLW/n/foxTSgpAc2EQ9uRElj6EBw3ojC8N/iCDCHr?=
 =?us-ascii?Q?ubnm+NJKrTdqIcNHJnZc2gltIVqnog1sWOl1KllsnnfMhplu+pnQbcfZDMf5?=
 =?us-ascii?Q?w/M2m6iNh4aNyqRBcLpAVbIrjndLqOo07xnjiSPlPJR8XHHLMEo/gsGaKPQP?=
 =?us-ascii?Q?RW/fYHWqMj6K44oRBFzt84AfpR45y0oN6q/eOycGXD4sdydqxOHd1ltOaeRE?=
 =?us-ascii?Q?BNK1ClU6l9HsNcT5PmyLO7KxYvWkrzfgexGWMrRyz/3k23LIi2y8a8UPVxbZ?=
 =?us-ascii?Q?gOLs9TnmYgdggShiHVGMO7jUlp/OAWhtENzatj/urbz6V7LFT0FuaI0Qy1Ip?=
 =?us-ascii?Q?Ldrx6u9CJch72EN50CIunfHY8mgpq1ZenwyixhehY5ALny8bRs98nQGqOWmW?=
 =?us-ascii?Q?XGd9xxdZ7Qs6RDvckqbuhn+CpTROlkx9xqAm//uTHwo7klU5F2PhbHqtM9vP?=
 =?us-ascii?Q?odrIUTj6IPko6Y5yPgMHSMcwEBjrUjdDHF25CE4PF5wN8wefiP/B23e4R/RU?=
 =?us-ascii?Q?kAjWCr1qM0f8/oeB1Yh0xAB2zbjioP2s/Mx5k81Awo9Lva/wRz9EeIvp+p2B?=
 =?us-ascii?Q?KLQZm7YvOt/hdQh2UR7C+vdGFZ5KcgZNmpnAFDdnpIOib36Ff7V6K50fOn5T?=
 =?us-ascii?Q?Ekky9FJp8QpwjUhX392vbz/mMSC/YJIHZ3A6FGfemqi6x6ocn2JxkLdeCI3R?=
 =?us-ascii?Q?XIU5WunyPUxYFlkGni4xqsjdNxLmURMq9ns3hhLa2x9Lsf8+BPhvGRIPLxHu?=
 =?us-ascii?Q?WOlhUwxoVW/691JHF5QasZq9HlyMyh7kL66u?=
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: 21 Apr 2025 07:38:12.2824
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 0e8d57e2-2107-47c4-af5d-08dd80a77855
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:
	BN2PEPF000055DD.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW6PR12MB8952

We move the following functions into a new file drivers/acpi/pm_op.c, as
they are all more fitting in performance controling and only called by
do_pm_op():
 - get_cpufreq_para()
 - set_cpufreq_para()
 - set_cpufreq_gov()
 - set_cpufreq_cppc()
 - cpufreq_driver_getavg()
 - cpufreq_update_turbo()
 - cpufreq_get_turbo_status()
We introduce a new Kconfig CONFIG_PM_OP to wrap the new file.

Also, although the following helpers are only called by do_pm_op(), they have
dependency on local variable, we wrap them with CONFIG_PM_OP in place:
 - write_userspace_scaling_setspeed()
 - write_ondemand_sampling_rate()
 - write_ondemand_up_threshold()
 - get_cpufreq_ondemand_para()
 - cpufreq_driver.update()
 - get_hwp_para()
Various style corrections shall be applied at the same time while moving these
functions, including:
 - add extra space before and after bracket of if() and switch()
 - fix indentation

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
v2 -> v3
- new commit
---
 xen/arch/x86/acpi/cpufreq/hwp.c              |   6 +
 xen/arch/x86/acpi/cpufreq/powernow.c         |   4 +
 xen/common/Kconfig                           |   7 +
 xen/common/sysctl.c                          |   4 +-
 xen/drivers/acpi/Makefile                    |   1 +
 xen/drivers/acpi/pm_op.c                     | 409 +++++++++++++++++++
 xen/drivers/acpi/pmstat.c                    | 357 ----------------
 xen/drivers/cpufreq/cpufreq_misc_governors.c |   2 +
 xen/drivers/cpufreq/cpufreq_ondemand.c       |   2 +
 xen/drivers/cpufreq/utility.c                |  41 --
 xen/include/acpi/cpufreq/cpufreq.h           |   3 -
 11 files changed, 434 insertions(+), 402 deletions(-)
 create mode 100644 xen/drivers/acpi/pm_op.c

diff --git a/xen/arch/x86/acpi/cpufreq/hwp.c b/xen/arch/x86/acpi/cpufreq/hwp.c
index d5fa3d47ca..e4c09244ab 100644
--- a/xen/arch/x86/acpi/cpufreq/hwp.c
+++ b/xen/arch/x86/acpi/cpufreq/hwp.c
@@ -466,6 +466,7 @@ static int cf_check hwp_cpufreq_cpu_exit(struct cpufreq_policy *policy)
     return 0;
 }
 
+#ifdef CONFIG_PM_OP
 /*
  * The SDM reads like turbo should be disabled with MSR_IA32_PERF_CTL and
  * PERF_CTL_TURBO_DISENGAGE, but that does not seem to actually work, at least
@@ -508,6 +509,7 @@ static int cf_check hwp_cpufreq_update(unsigned int cpu, struct cpufreq_policy *
 
     return per_cpu(hwp_drv_data, cpu)->ret;
 }
+#endif /* CONFIG_PM_OP */
 
 static const struct cpufreq_driver __initconst_cf_clobber
 hwp_cpufreq_driver = {
@@ -516,9 +518,12 @@ hwp_cpufreq_driver = {
     .target = hwp_cpufreq_target,
     .init   = hwp_cpufreq_cpu_init,
     .exit   = hwp_cpufreq_cpu_exit,
+#ifdef CONFIG_PM_OP
     .update = hwp_cpufreq_update,
+#endif
 };
 
+#ifdef CONFIG_PM_OP
 int get_hwp_para(unsigned int cpu,
                  struct xen_cppc_para *cppc_para)
 {
@@ -639,6 +644,7 @@ int set_hwp_para(struct cpufreq_policy *policy,
 
     return hwp_cpufreq_target(policy, 0, 0);
 }
+#endif /* CONFIG_PM_OP */
 
 int __init hwp_register_driver(void)
 {
diff --git a/xen/arch/x86/acpi/cpufreq/powernow.c b/xen/arch/x86/acpi/cpufreq/powernow.c
index 69364e1855..12fca45b45 100644
--- a/xen/arch/x86/acpi/cpufreq/powernow.c
+++ b/xen/arch/x86/acpi/cpufreq/powernow.c
@@ -49,6 +49,7 @@ static void cf_check transition_pstate(void *pstate)
     wrmsrl(MSR_PSTATE_CTRL, *(unsigned int *)pstate);
 }
 
+#ifdef CONFIG_PM_OP
 static void cf_check update_cpb(void *data)
 {
     struct cpufreq_policy *policy = data;
@@ -77,6 +78,7 @@ static int cf_check powernow_cpufreq_update(
 
     return 0;
 }
+#endif /* CONFIG_PM_OP */
 
 static int cf_check powernow_cpufreq_target(
     struct cpufreq_policy *policy,
@@ -324,7 +326,9 @@ powernow_cpufreq_driver = {
     .target = powernow_cpufreq_target,
     .init   = powernow_cpufreq_cpu_init,
     .exit   = powernow_cpufreq_cpu_exit,
+#ifdef CONFIG_PM_OP
     .update = powernow_cpufreq_update
+#endif
 };
 
 unsigned int __init powernow_register_driver(void)
diff --git a/xen/common/Kconfig b/xen/common/Kconfig
index 9cccc37232..ca1f692487 100644
--- a/xen/common/Kconfig
+++ b/xen/common/Kconfig
@@ -593,4 +593,11 @@ config SYSCTL
 	  to reduce Xen footprint.
 endmenu
 
+config PM_OP
+	bool "Enable Performance Management Operation"
+	depends on ACPI && HAS_CPUFREQ && SYSCTL
+	default y
+	help
+	  This option shall enable userspace performance management control
+	  to do power/performance analyzing and tuning.
 endmenu
diff --git a/xen/common/sysctl.c b/xen/common/sysctl.c
index 2fe76362b1..4ab827b694 100644
--- a/xen/common/sysctl.c
+++ b/xen/common/sysctl.c
@@ -181,13 +181,15 @@ long do_sysctl(XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl)
     case XEN_SYSCTL_get_pmstat:
         ret = do_get_pm_info(&op->u.get_pmstat);
         break;
+#endif
 
+#ifdef CONFIG_PM_OP
     case XEN_SYSCTL_pm_op:
         ret = do_pm_op(&op->u.pm_op);
         if ( ret == -EAGAIN )
             copyback = 1;
         break;
-#endif
+#endif /* CONFIG_PM_OP */
 
     case XEN_SYSCTL_page_offline_op:
     {
diff --git a/xen/drivers/acpi/Makefile b/xen/drivers/acpi/Makefile
index 2fc5230253..e1f84a4468 100644
--- a/xen/drivers/acpi/Makefile
+++ b/xen/drivers/acpi/Makefile
@@ -6,6 +6,7 @@ obj-bin-y += tables.init.o
 obj-$(CONFIG_ACPI_NUMA) += numa.o
 obj-y += osl.o
 obj-$(CONFIG_HAS_CPUFREQ) += pmstat.o
+obj-$(CONFIG_PM_OP) += pm_op.o
 
 obj-$(CONFIG_X86) += hwregs.o
 obj-$(CONFIG_X86) += reboot.o
diff --git a/xen/drivers/acpi/pm_op.c b/xen/drivers/acpi/pm_op.c
new file mode 100644
index 0000000000..3123cb9556
--- /dev/null
+++ b/xen/drivers/acpi/pm_op.c
@@ -0,0 +1,409 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+
+#include <xen/acpi.h>
+#include <xen/domain.h>
+#include <xen/errno.h>
+#include <xen/guest_access.h>
+#include <xen/lib.h>
+#include <xen/sched.h>
+
+#include <acpi/cpufreq/cpufreq.h>
+#include <public/platform.h>
+#include <public/sysctl.h>
+
+/*
+ * 1. Get PM parameter
+ * 2. Provide user PM control
+ */
+static int cpufreq_update_turbo(unsigned int cpu, int new_state)
+{
+    struct cpufreq_policy *policy;
+    int curr_state;
+    int ret = 0;
+
+    if ( new_state != CPUFREQ_TURBO_ENABLED &&
+         new_state != CPUFREQ_TURBO_DISABLED )
+        return -EINVAL;
+
+    policy = per_cpu(cpufreq_cpu_policy, cpu);
+    if ( !policy )
+        return -EACCES;
+
+    if ( policy->turbo == CPUFREQ_TURBO_UNSUPPORTED )
+        return -EOPNOTSUPP;
+
+    curr_state = policy->turbo;
+    if ( curr_state == new_state )
+        return 0;
+
+    policy->turbo = new_state;
+    if ( cpufreq_driver.update )
+    {
+        ret = alternative_call(cpufreq_driver.update, cpu, policy);
+        if ( ret )
+            policy->turbo = curr_state;
+    }
+
+    return ret;
+}
+
+static int cpufreq_get_turbo_status(unsigned int cpu)
+{
+    struct cpufreq_policy *policy;
+
+    policy = per_cpu(cpufreq_cpu_policy, cpu);
+    return policy && policy->turbo == CPUFREQ_TURBO_ENABLED;
+}
+
+static int read_scaling_available_governors(char *scaling_available_governors,
+                                            unsigned int size)
+{
+    unsigned int i = 0;
+    struct cpufreq_governor *t;
+
+    if ( !scaling_available_governors )
+        return -EINVAL;
+
+    list_for_each_entry(t, &cpufreq_governor_list, governor_list)
+    {
+        i += scnprintf(&scaling_available_governors[i],
+                       CPUFREQ_NAME_LEN, "%s ", t->name);
+        if ( i > size )
+            return -EINVAL;
+    }
+    scaling_available_governors[i-1] = '\0';
+
+    return 0;
+}
+
+static int get_cpufreq_para(struct xen_sysctl_pm_op *op)
+{
+    uint32_t ret = 0;
+    const struct processor_pminfo *pmpt;
+    struct cpufreq_policy *policy;
+    uint32_t gov_num = 0;
+    uint32_t *data;
+    char     *scaling_available_governors;
+    struct list_head *pos;
+    unsigned int cpu, i = 0;
+
+    pmpt = processor_pminfo[op->cpuid];
+    policy = per_cpu(cpufreq_cpu_policy, op->cpuid);
+
+    if ( !pmpt || !pmpt->perf.states ||
+         !policy || !policy->governor )
+        return -EINVAL;
+
+    list_for_each(pos, &cpufreq_governor_list)
+        gov_num++;
+
+    if ( (op->u.get_para.cpu_num  != cpumask_weight(policy->cpus)) ||
+         (op->u.get_para.freq_num != pmpt->perf.state_count)    ||
+         (op->u.get_para.gov_num  != gov_num) )
+    {
+        op->u.get_para.cpu_num =  cpumask_weight(policy->cpus);
+        op->u.get_para.freq_num = pmpt->perf.state_count;
+        op->u.get_para.gov_num  = gov_num;
+        return -EAGAIN;
+    }
+
+    if ( !(data = xzalloc_array(uint32_t,
+                                max(op->u.get_para.cpu_num,
+                                    op->u.get_para.freq_num))) )
+        return -ENOMEM;
+
+    for_each_cpu(cpu, policy->cpus)
+        data[i++] = cpu;
+    ret = copy_to_guest(op->u.get_para.affected_cpus,
+                        data, op->u.get_para.cpu_num);
+
+    for ( i = 0; i < op->u.get_para.freq_num; i++ )
+        data[i] = pmpt->perf.states[i].core_frequency * 1000;
+    ret += copy_to_guest(op->u.get_para.scaling_available_frequencies,
+                         data, op->u.get_para.freq_num);
+
+    xfree(data);
+    if ( ret )
+        return -EFAULT;
+
+    op->u.get_para.cpuinfo_cur_freq =
+        cpufreq_driver.get ? alternative_call(cpufreq_driver.get, op->cpuid)
+                           : policy->cur;
+    op->u.get_para.cpuinfo_max_freq = policy->cpuinfo.max_freq;
+    op->u.get_para.cpuinfo_min_freq = policy->cpuinfo.min_freq;
+    op->u.get_para.turbo_enabled = cpufreq_get_turbo_status(op->cpuid);
+
+    if ( cpufreq_driver.name[0] )
+        strlcpy(op->u.get_para.scaling_driver,
+                cpufreq_driver.name, CPUFREQ_NAME_LEN);
+    else
+        strlcpy(op->u.get_para.scaling_driver, "Unknown", CPUFREQ_NAME_LEN);
+
+    if ( IS_ENABLED(CONFIG_INTEL) &&
+         !strncmp(op->u.get_para.scaling_driver, XEN_HWP_DRIVER_NAME,
+                  CPUFREQ_NAME_LEN) )
+        ret = get_hwp_para(policy->cpu, &op->u.get_para.u.cppc_para);
+    else
+    {
+        if ( !(scaling_available_governors =
+               xzalloc_array(char, gov_num * CPUFREQ_NAME_LEN)) )
+            return -ENOMEM;
+        if ( (ret = read_scaling_available_governors(
+                        scaling_available_governors,
+                        (gov_num * CPUFREQ_NAME_LEN *
+                         sizeof(*scaling_available_governors)))) )
+        {
+            xfree(scaling_available_governors);
+            return ret;
+        }
+        ret = copy_to_guest(op->u.get_para.scaling_available_governors,
+                            scaling_available_governors,
+                            gov_num * CPUFREQ_NAME_LEN);
+        xfree(scaling_available_governors);
+        if ( ret )
+            return -EFAULT;
+
+        op->u.get_para.u.s.scaling_cur_freq = policy->cur;
+        op->u.get_para.u.s.scaling_max_freq = policy->max;
+        op->u.get_para.u.s.scaling_min_freq = policy->min;
+
+        if ( policy->governor->name[0] )
+            strlcpy(op->u.get_para.u.s.scaling_governor,
+                    policy->governor->name, CPUFREQ_NAME_LEN);
+        else
+            strlcpy(op->u.get_para.u.s.scaling_governor, "Unknown",
+                    CPUFREQ_NAME_LEN);
+
+        /* governor specific para */
+        if ( !strncasecmp(op->u.get_para.u.s.scaling_governor,
+                          "userspace", CPUFREQ_NAME_LEN) )
+            op->u.get_para.u.s.u.userspace.scaling_setspeed = policy->cur;
+
+        if ( !strncasecmp(op->u.get_para.u.s.scaling_governor,
+                          "ondemand", CPUFREQ_NAME_LEN) )
+            ret = get_cpufreq_ondemand_para(
+                &op->u.get_para.u.s.u.ondemand.sampling_rate_max,
+                &op->u.get_para.u.s.u.ondemand.sampling_rate_min,
+                &op->u.get_para.u.s.u.ondemand.sampling_rate,
+                &op->u.get_para.u.s.u.ondemand.up_threshold);
+    }
+
+    return ret;
+}
+
+static int set_cpufreq_gov(struct xen_sysctl_pm_op *op)
+{
+    struct cpufreq_policy new_policy, *old_policy;
+
+    old_policy = per_cpu(cpufreq_cpu_policy, op->cpuid);
+    if ( !old_policy )
+        return -EINVAL;
+
+    memcpy(&new_policy, old_policy, sizeof(struct cpufreq_policy));
+
+    new_policy.governor = __find_governor(op->u.set_gov.scaling_governor);
+    if ( new_policy.governor == NULL )
+        return -EINVAL;
+
+    return __cpufreq_set_policy(old_policy, &new_policy);
+}
+
+static int set_cpufreq_para(struct xen_sysctl_pm_op *op)
+{
+    int ret = 0;
+    struct cpufreq_policy *policy;
+
+    policy = per_cpu(cpufreq_cpu_policy, op->cpuid);
+
+    if ( !policy || !policy->governor )
+        return -EINVAL;
+
+    if ( hwp_active() )
+        return -EOPNOTSUPP;
+
+    switch( op->u.set_para.ctrl_type )
+    {
+    case SCALING_MAX_FREQ:
+    {
+        struct cpufreq_policy new_policy;
+
+        memcpy(&new_policy, policy, sizeof(struct cpufreq_policy));
+        new_policy.max = op->u.set_para.ctrl_value;
+        ret = __cpufreq_set_policy(policy, &new_policy);
+
+        break;
+    }
+
+    case SCALING_MIN_FREQ:
+    {
+        struct cpufreq_policy new_policy;
+
+        memcpy(&new_policy, policy, sizeof(struct cpufreq_policy));
+        new_policy.min = op->u.set_para.ctrl_value;
+        ret = __cpufreq_set_policy(policy, &new_policy);
+
+        break;
+    }
+
+    case SCALING_SETSPEED:
+    {
+        unsigned int freq =op->u.set_para.ctrl_value;
+
+        if ( !strncasecmp(policy->governor->name,
+                          "userspace", CPUFREQ_NAME_LEN) )
+            ret = write_userspace_scaling_setspeed(op->cpuid, freq);
+        else
+            ret = -EINVAL;
+
+        break;
+    }
+
+    case SAMPLING_RATE:
+    {
+        unsigned int sampling_rate = op->u.set_para.ctrl_value;
+
+        if ( !strncasecmp(policy->governor->name,
+                          "ondemand", CPUFREQ_NAME_LEN) )
+            ret = write_ondemand_sampling_rate(sampling_rate);
+        else
+            ret = -EINVAL;
+
+        break;
+    }
+
+    case UP_THRESHOLD:
+    {
+        unsigned int up_threshold = op->u.set_para.ctrl_value;
+
+        if ( !strncasecmp(policy->governor->name,
+                          "ondemand", CPUFREQ_NAME_LEN) )
+            ret = write_ondemand_up_threshold(up_threshold);
+        else
+            ret = -EINVAL;
+
+        break;
+    }
+
+    default:
+        ret = -EINVAL;
+        break;
+    }
+
+    return ret;
+}
+
+static int set_cpufreq_cppc(struct xen_sysctl_pm_op *op)
+{
+    struct cpufreq_policy *policy = per_cpu(cpufreq_cpu_policy, op->cpuid);
+
+    if ( !policy || !policy->governor )
+        return -ENOENT;
+
+    if ( !hwp_active() )
+        return -EOPNOTSUPP;
+
+    return set_hwp_para(policy, &op->u.set_cppc);
+}
+
+int do_pm_op(struct xen_sysctl_pm_op *op)
+{
+    int ret = 0;
+    const struct processor_pminfo *pmpt;
+
+    switch ( op->cmd )
+    {
+    case XEN_SYSCTL_pm_op_set_sched_opt_smt:
+    {
+        uint32_t saved_value = sched_smt_power_savings;
+
+        if ( op->cpuid != 0 )
+            return -EINVAL;
+        sched_smt_power_savings = !!op->u.set_sched_opt_smt;
+        op->u.set_sched_opt_smt = saved_value;
+        return 0;
+    }
+
+    case XEN_SYSCTL_pm_op_get_max_cstate:
+        BUILD_BUG_ON(XEN_SYSCTL_CX_UNLIMITED != UINT_MAX);
+        if ( op->cpuid == 0 )
+            op->u.get_max_cstate = acpi_get_cstate_limit();
+        else if ( op->cpuid == 1 )
+            op->u.get_max_cstate = acpi_get_csubstate_limit();
+        else
+            ret = -EINVAL;
+        return ret;
+
+    case XEN_SYSCTL_pm_op_set_max_cstate:
+        if ( op->cpuid == 0 )
+            acpi_set_cstate_limit(op->u.set_max_cstate);
+        else if ( op->cpuid == 1 )
+            acpi_set_csubstate_limit(op->u.set_max_cstate);
+        else
+            ret = -EINVAL;
+        return ret;
+    }
+
+    if ( op->cpuid >= nr_cpu_ids || !cpu_online(op->cpuid) )
+        return -EINVAL;
+    pmpt = processor_pminfo[op->cpuid];
+
+    switch ( op->cmd & PM_PARA_CATEGORY_MASK )
+    {
+    case CPUFREQ_PARA:
+        if ( !(xen_processor_pmbits & XEN_PROCESSOR_PM_PX) )
+            return -ENODEV;
+        if ( !pmpt || !(pmpt->perf.init & XEN_PX_INIT) )
+            return -EINVAL;
+        break;
+    }
+
+    switch ( op->cmd )
+    {
+    case GET_CPUFREQ_PARA:
+    {
+        ret = get_cpufreq_para(op);
+        break;
+    }
+
+    case SET_CPUFREQ_GOV:
+    {
+        ret = set_cpufreq_gov(op);
+        break;
+    }
+
+    case SET_CPUFREQ_PARA:
+    {
+        ret = set_cpufreq_para(op);
+        break;
+    }
+
+    case SET_CPUFREQ_CPPC:
+        ret = set_cpufreq_cppc(op);
+        break;
+
+    case GET_CPUFREQ_AVGFREQ:
+    {
+        op->u.get_avgfreq = cpufreq_driver_getavg(op->cpuid, USR_GETAVG);
+        break;
+    }
+
+    case XEN_SYSCTL_pm_op_enable_turbo:
+    {
+        ret = cpufreq_update_turbo(op->cpuid, CPUFREQ_TURBO_ENABLED);
+        break;
+    }
+
+    case XEN_SYSCTL_pm_op_disable_turbo:
+    {
+        ret = cpufreq_update_turbo(op->cpuid, CPUFREQ_TURBO_DISABLED);
+        break;
+    }
+
+    default:
+        printk("not defined sub-hypercall @ do_pm_op\n");
+        ret = -ENOSYS;
+        break;
+    }
+
+    return ret;
+}
diff --git a/xen/drivers/acpi/pmstat.c b/xen/drivers/acpi/pmstat.c
index abfdc45cc2..61b60e59a2 100644
--- a/xen/drivers/acpi/pmstat.c
+++ b/xen/drivers/acpi/pmstat.c
@@ -330,360 +330,3 @@ int do_get_pm_info(struct xen_sysctl_get_pmstat *op)
 
     return ret;
 }
-
-/*
- * 1. Get PM parameter
- * 2. Provide user PM control
- */
-static int read_scaling_available_governors(char *scaling_available_governors,
-                                            unsigned int size)
-{
-    unsigned int i = 0;
-    struct cpufreq_governor *t;
-
-    if ( !scaling_available_governors )
-        return -EINVAL;
-
-    list_for_each_entry(t, &cpufreq_governor_list, governor_list)
-    {
-        i += scnprintf(&scaling_available_governors[i],
-                       CPUFREQ_NAME_LEN, "%s ", t->name);
-        if ( i > size )
-            return -EINVAL;
-    }
-    scaling_available_governors[i-1] = '\0';
-
-    return 0;
-}
-
-static int get_cpufreq_para(struct xen_sysctl_pm_op *op)
-{
-    uint32_t ret = 0;
-    const struct processor_pminfo *pmpt;
-    struct cpufreq_policy *policy;
-    uint32_t gov_num = 0;
-    uint32_t *data;
-    char     *scaling_available_governors;
-    struct list_head *pos;
-    unsigned int cpu, i = 0;
-
-    pmpt = processor_pminfo[op->cpuid];
-    policy = per_cpu(cpufreq_cpu_policy, op->cpuid);
-
-    if ( !pmpt || !pmpt->perf.states ||
-         !policy || !policy->governor )
-        return -EINVAL;
-
-    list_for_each(pos, &cpufreq_governor_list)
-        gov_num++;
-
-    if ( (op->u.get_para.cpu_num  != cpumask_weight(policy->cpus)) ||
-         (op->u.get_para.freq_num != pmpt->perf.state_count)    ||
-         (op->u.get_para.gov_num  != gov_num) )
-    {
-        op->u.get_para.cpu_num =  cpumask_weight(policy->cpus);
-        op->u.get_para.freq_num = pmpt->perf.state_count;
-        op->u.get_para.gov_num  = gov_num;
-        return -EAGAIN;
-    }
-
-    if ( !(data = xzalloc_array(uint32_t,
-                                max(op->u.get_para.cpu_num,
-                                    op->u.get_para.freq_num))) )
-        return -ENOMEM;
-
-    for_each_cpu(cpu, policy->cpus)
-        data[i++] = cpu;
-    ret = copy_to_guest(op->u.get_para.affected_cpus,
-                        data, op->u.get_para.cpu_num);
-
-    for ( i = 0; i < op->u.get_para.freq_num; i++ )
-        data[i] = pmpt->perf.states[i].core_frequency * 1000;
-    ret += copy_to_guest(op->u.get_para.scaling_available_frequencies,
-                         data, op->u.get_para.freq_num);
-
-    xfree(data);
-    if ( ret )
-        return -EFAULT;
-
-    op->u.get_para.cpuinfo_cur_freq =
-        cpufreq_driver.get ? alternative_call(cpufreq_driver.get, op->cpuid)
-                           : policy->cur;
-    op->u.get_para.cpuinfo_max_freq = policy->cpuinfo.max_freq;
-    op->u.get_para.cpuinfo_min_freq = policy->cpuinfo.min_freq;
-    op->u.get_para.turbo_enabled = cpufreq_get_turbo_status(op->cpuid);
-
-    if ( cpufreq_driver.name[0] )
-        strlcpy(op->u.get_para.scaling_driver,
-            cpufreq_driver.name, CPUFREQ_NAME_LEN);
-    else
-        strlcpy(op->u.get_para.scaling_driver, "Unknown", CPUFREQ_NAME_LEN);
-
-    if ( IS_ENABLED(CONFIG_INTEL) &&
-         !strncmp(op->u.get_para.scaling_driver, XEN_HWP_DRIVER_NAME,
-                  CPUFREQ_NAME_LEN) )
-        ret = get_hwp_para(policy->cpu, &op->u.get_para.u.cppc_para);
-    else
-    {
-        if ( !(scaling_available_governors =
-               xzalloc_array(char, gov_num * CPUFREQ_NAME_LEN)) )
-            return -ENOMEM;
-        if ( (ret = read_scaling_available_governors(
-                        scaling_available_governors,
-                        (gov_num * CPUFREQ_NAME_LEN *
-                         sizeof(*scaling_available_governors)))) )
-        {
-            xfree(scaling_available_governors);
-            return ret;
-        }
-        ret = copy_to_guest(op->u.get_para.scaling_available_governors,
-                            scaling_available_governors,
-                            gov_num * CPUFREQ_NAME_LEN);
-        xfree(scaling_available_governors);
-        if ( ret )
-            return -EFAULT;
-
-        op->u.get_para.u.s.scaling_cur_freq = policy->cur;
-        op->u.get_para.u.s.scaling_max_freq = policy->max;
-        op->u.get_para.u.s.scaling_min_freq = policy->min;
-
-        if ( policy->governor->name[0] )
-            strlcpy(op->u.get_para.u.s.scaling_governor,
-                policy->governor->name, CPUFREQ_NAME_LEN);
-        else
-            strlcpy(op->u.get_para.u.s.scaling_governor, "Unknown",
-                    CPUFREQ_NAME_LEN);
-
-        /* governor specific para */
-        if ( !strncasecmp(op->u.get_para.u.s.scaling_governor,
-                          "userspace", CPUFREQ_NAME_LEN) )
-            op->u.get_para.u.s.u.userspace.scaling_setspeed = policy->cur;
-
-        if ( !strncasecmp(op->u.get_para.u.s.scaling_governor,
-                          "ondemand", CPUFREQ_NAME_LEN) )
-            ret = get_cpufreq_ondemand_para(
-                &op->u.get_para.u.s.u.ondemand.sampling_rate_max,
-                &op->u.get_para.u.s.u.ondemand.sampling_rate_min,
-                &op->u.get_para.u.s.u.ondemand.sampling_rate,
-                &op->u.get_para.u.s.u.ondemand.up_threshold);
-    }
-
-    return ret;
-}
-
-static int set_cpufreq_gov(struct xen_sysctl_pm_op *op)
-{
-    struct cpufreq_policy new_policy, *old_policy;
-
-    old_policy = per_cpu(cpufreq_cpu_policy, op->cpuid);
-    if ( !old_policy )
-        return -EINVAL;
-
-    memcpy(&new_policy, old_policy, sizeof(struct cpufreq_policy));
-
-    new_policy.governor = __find_governor(op->u.set_gov.scaling_governor);
-    if (new_policy.governor == NULL)
-        return -EINVAL;
-
-    return __cpufreq_set_policy(old_policy, &new_policy);
-}
-
-static int set_cpufreq_para(struct xen_sysctl_pm_op *op)
-{
-    int ret = 0;
-    struct cpufreq_policy *policy;
-
-    policy = per_cpu(cpufreq_cpu_policy, op->cpuid);
-
-    if ( !policy || !policy->governor )
-        return -EINVAL;
-
-    if ( hwp_active() )
-        return -EOPNOTSUPP;
-
-    switch(op->u.set_para.ctrl_type)
-    {
-    case SCALING_MAX_FREQ:
-    {
-        struct cpufreq_policy new_policy;
-
-        memcpy(&new_policy, policy, sizeof(struct cpufreq_policy));
-        new_policy.max = op->u.set_para.ctrl_value;
-        ret = __cpufreq_set_policy(policy, &new_policy);
-
-        break;
-    }
-
-    case SCALING_MIN_FREQ:
-    {
-        struct cpufreq_policy new_policy;
-
-        memcpy(&new_policy, policy, sizeof(struct cpufreq_policy));
-        new_policy.min = op->u.set_para.ctrl_value;
-        ret = __cpufreq_set_policy(policy, &new_policy);
-
-        break;
-    }
-
-    case SCALING_SETSPEED:
-    {
-        unsigned int freq =op->u.set_para.ctrl_value;
-
-        if ( !strncasecmp(policy->governor->name,
-                          "userspace", CPUFREQ_NAME_LEN) )
-            ret = write_userspace_scaling_setspeed(op->cpuid, freq);
-        else
-            ret = -EINVAL;
-
-        break;
-    }
-
-    case SAMPLING_RATE:
-    {
-        unsigned int sampling_rate = op->u.set_para.ctrl_value;
-
-        if ( !strncasecmp(policy->governor->name,
-                          "ondemand", CPUFREQ_NAME_LEN) )
-            ret = write_ondemand_sampling_rate(sampling_rate);
-        else
-            ret = -EINVAL;
-
-        break;
-    }
-
-    case UP_THRESHOLD:
-    {
-        unsigned int up_threshold = op->u.set_para.ctrl_value;
-
-        if ( !strncasecmp(policy->governor->name,
-                          "ondemand", CPUFREQ_NAME_LEN) )
-            ret = write_ondemand_up_threshold(up_threshold);
-        else
-            ret = -EINVAL;
-
-        break;
-    }
-
-    default:
-        ret = -EINVAL;
-        break;
-    }
-
-    return ret;
-}
-
-static int set_cpufreq_cppc(struct xen_sysctl_pm_op *op)
-{
-    struct cpufreq_policy *policy = per_cpu(cpufreq_cpu_policy, op->cpuid);
-
-    if ( !policy || !policy->governor )
-        return -ENOENT;
-
-    if ( !hwp_active() )
-        return -EOPNOTSUPP;
-
-    return set_hwp_para(policy, &op->u.set_cppc);
-}
-
-int do_pm_op(struct xen_sysctl_pm_op *op)
-{
-    int ret = 0;
-    const struct processor_pminfo *pmpt;
-
-    switch ( op->cmd )
-    {
-    case XEN_SYSCTL_pm_op_set_sched_opt_smt:
-    {
-        uint32_t saved_value = sched_smt_power_savings;
-
-        if ( op->cpuid != 0 )
-            return -EINVAL;
-        sched_smt_power_savings = !!op->u.set_sched_opt_smt;
-        op->u.set_sched_opt_smt = saved_value;
-        return 0;
-    }
-
-    case XEN_SYSCTL_pm_op_get_max_cstate:
-        BUILD_BUG_ON(XEN_SYSCTL_CX_UNLIMITED != UINT_MAX);
-        if ( op->cpuid == 0 )
-            op->u.get_max_cstate = acpi_get_cstate_limit();
-        else if ( op->cpuid == 1 )
-            op->u.get_max_cstate = acpi_get_csubstate_limit();
-        else
-            ret = -EINVAL;
-        return ret;
-
-    case XEN_SYSCTL_pm_op_set_max_cstate:
-        if ( op->cpuid == 0 )
-            acpi_set_cstate_limit(op->u.set_max_cstate);
-        else if ( op->cpuid == 1 )
-            acpi_set_csubstate_limit(op->u.set_max_cstate);
-        else
-            ret = -EINVAL;
-        return ret;
-    }
-
-    if ( op->cpuid >= nr_cpu_ids || !cpu_online(op->cpuid) )
-        return -EINVAL;
-    pmpt = processor_pminfo[op->cpuid];
-
-    switch ( op->cmd & PM_PARA_CATEGORY_MASK )
-    {
-    case CPUFREQ_PARA:
-        if ( !(xen_processor_pmbits & XEN_PROCESSOR_PM_PX) )
-            return -ENODEV;
-        if ( !pmpt || !(pmpt->perf.init & XEN_PX_INIT) )
-            return -EINVAL;
-        break;
-    }
-
-    switch ( op->cmd )
-    {
-    case GET_CPUFREQ_PARA:
-    {
-        ret = get_cpufreq_para(op);
-        break;
-    }
-
-    case SET_CPUFREQ_GOV:
-    {
-        ret = set_cpufreq_gov(op);
-        break;
-    }
-
-    case SET_CPUFREQ_PARA:
-    {
-        ret = set_cpufreq_para(op);
-        break;
-    }
-
-    case SET_CPUFREQ_CPPC:
-        ret = set_cpufreq_cppc(op);
-        break;
-
-    case GET_CPUFREQ_AVGFREQ:
-    {
-        op->u.get_avgfreq = cpufreq_driver_getavg(op->cpuid, USR_GETAVG);
-        break;
-    }
-
-    case XEN_SYSCTL_pm_op_enable_turbo:
-    {
-        ret = cpufreq_update_turbo(op->cpuid, CPUFREQ_TURBO_ENABLED);
-        break;
-    }
-
-    case XEN_SYSCTL_pm_op_disable_turbo:
-    {
-        ret = cpufreq_update_turbo(op->cpuid, CPUFREQ_TURBO_DISABLED);
-        break;
-    }
-
-    default:
-        printk("not defined sub-hypercall @ do_pm_op\n");
-        ret = -ENOSYS;
-        break;
-    }
-
-    return ret;
-}
diff --git a/xen/drivers/cpufreq/cpufreq_misc_governors.c b/xen/drivers/cpufreq/cpufreq_misc_governors.c
index 0327fad23b..e5cb9ab02f 100644
--- a/xen/drivers/cpufreq/cpufreq_misc_governors.c
+++ b/xen/drivers/cpufreq/cpufreq_misc_governors.c
@@ -64,6 +64,7 @@ static int cf_check cpufreq_governor_userspace(
     return ret;
 }
 
+#ifdef CONFIG_PM_OP
 int write_userspace_scaling_setspeed(unsigned int cpu, unsigned int freq)
 {
     struct cpufreq_policy *policy;
@@ -80,6 +81,7 @@ int write_userspace_scaling_setspeed(unsigned int cpu, unsigned int freq)
 
     return __cpufreq_driver_target(policy, freq, CPUFREQ_RELATION_L);
 }
+#endif /* CONFIG_PM_OP */
 
 static bool __init cf_check
 cpufreq_userspace_handle_option(const char *name, const char *val)
diff --git a/xen/drivers/cpufreq/cpufreq_ondemand.c b/xen/drivers/cpufreq/cpufreq_ondemand.c
index 06cfc88d30..0126a3f5d9 100644
--- a/xen/drivers/cpufreq/cpufreq_ondemand.c
+++ b/xen/drivers/cpufreq/cpufreq_ondemand.c
@@ -57,6 +57,7 @@ static struct dbs_tuners {
 
 static DEFINE_PER_CPU(struct timer, dbs_timer);
 
+#ifdef CONFIG_PM_OP
 int write_ondemand_sampling_rate(unsigned int sampling_rate)
 {
     if ( (sampling_rate > MAX_SAMPLING_RATE / MICROSECS(1)) ||
@@ -93,6 +94,7 @@ int get_cpufreq_ondemand_para(uint32_t *sampling_rate_max,
 
     return 0;
 }
+#endif /* CONFIG_PM_OP */
 
 static void dbs_check_cpu(struct cpu_dbs_info_s *this_dbs_info)
 {
diff --git a/xen/drivers/cpufreq/utility.c b/xen/drivers/cpufreq/utility.c
index 723045b240..987c3b5929 100644
--- a/xen/drivers/cpufreq/utility.c
+++ b/xen/drivers/cpufreq/utility.c
@@ -224,47 +224,6 @@ int cpufreq_driver_getavg(unsigned int cpu, unsigned int flag)
     return policy->cur;
 }
 
-int cpufreq_update_turbo(unsigned int cpu, int new_state)
-{
-    struct cpufreq_policy *policy;
-    int curr_state;
-    int ret = 0;
-
-    if (new_state != CPUFREQ_TURBO_ENABLED &&
-        new_state != CPUFREQ_TURBO_DISABLED)
-        return -EINVAL;
-
-    policy = per_cpu(cpufreq_cpu_policy, cpu);
-    if (!policy)
-        return -EACCES;
-
-    if (policy->turbo == CPUFREQ_TURBO_UNSUPPORTED)
-        return -EOPNOTSUPP;
-
-    curr_state = policy->turbo;
-    if (curr_state == new_state)
-        return 0;
-
-    policy->turbo = new_state;
-    if (cpufreq_driver.update)
-    {
-        ret = alternative_call(cpufreq_driver.update, cpu, policy);
-        if (ret)
-            policy->turbo = curr_state;
-    }
-
-    return ret;
-}
-
-
-int cpufreq_get_turbo_status(unsigned int cpu)
-{
-    struct cpufreq_policy *policy;
-
-    policy = per_cpu(cpufreq_cpu_policy, cpu);
-    return policy && policy->turbo == CPUFREQ_TURBO_ENABLED;
-}
-
 /*********************************************************************
  *                 POLICY                                            *
  *********************************************************************/
diff --git a/xen/include/acpi/cpufreq/cpufreq.h b/xen/include/acpi/cpufreq/cpufreq.h
index 241117a9af..0742aa9f44 100644
--- a/xen/include/acpi/cpufreq/cpufreq.h
+++ b/xen/include/acpi/cpufreq/cpufreq.h
@@ -143,9 +143,6 @@ extern int cpufreq_driver_getavg(unsigned int cpu, unsigned int flag);
 #define CPUFREQ_TURBO_UNSUPPORTED   0
 #define CPUFREQ_TURBO_ENABLED       1
 
-int cpufreq_update_turbo(unsigned int cpu, int new_state);
-int cpufreq_get_turbo_status(unsigned int cpu);
-
 static inline int
 __cpufreq_governor(struct cpufreq_policy *policy, unsigned int event)
 {
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Apr 21 07:41:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 21 Apr 2025 07:41:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.961156.1352773 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6lmb-0004mV-EG; Mon, 21 Apr 2025 07:41:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 961156.1352773; Mon, 21 Apr 2025 07:41: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 1u6lmb-0004lS-Ak; Mon, 21 Apr 2025 07:41:37 +0000
Received: by outflank-mailman (input) for mailman id 961156;
 Mon, 21 Apr 2025 07:41:35 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Kh51=XH=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1u6ljd-0000OX-Dj
 for xen-devel@lists.xenproject.org; Mon, 21 Apr 2025 07:38:33 +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 9ee24299-1e83-11f0-9ffb-bf95429c2676;
 Mon, 21 Apr 2025 09:38:31 +0200 (CEST)
Received: from BN9PR03CA0143.namprd03.prod.outlook.com (2603:10b6:408:fe::28)
 by PH8PR12MB6841.namprd12.prod.outlook.com (2603:10b6:510:1c8::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.30; Mon, 21 Apr
 2025 07:38:26 +0000
Received: from BN2PEPF000055E0.namprd21.prod.outlook.com
 (2603:10b6:408:fe:cafe::2c) by BN9PR03CA0143.outlook.office365.com
 (2603:10b6:408:fe::28) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.35 via Frontend Transport; Mon,
 21 Apr 2025 07:38:25 +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.8678.4 via Frontend Transport; Mon, 21 Apr 2025 07:38:25 +0000
Received: from penny-System-Product-Name.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; Mon, 21 Apr 2025 02:38:21 -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: 9ee24299-1e83-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=SwQ9xzclX4vF9jvj5AFE9y1IBDQMGvqbzCpnZD1B9qjj+QeL2Syw2tXIn/b/3cAFQKo+Oap5NAdJgU6YcEFsuQNnkYieHHiQimD0I1Msi1vXawjN7C9ZZA5R0xh4KWyXsManwANlXTL6yiadUuPTwYmBc1PoNxfP3jLTTdH+WBKfe4PMHwBEHWX93Kb3u5J0NGnpyL2I8tgvoTQgK7v4M5TAdzrVo5GmKjDx3K/9NIYjwZEk0JDl85yDvRSXRXYF1pOm1kHL4l9Z5uiNqxrDyGIXVjPizXKdX7T69Yg59+GASb9gXg4m4CEujSRQWodfueTU2hpHNTXXiKJfYQXM9g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=811326h7nGKhsNQgjbJxWI8WN5I8IcZyj59CDFQhkag=;
 b=vSb0RaKl3CIGzr97Z7guqenMOBIK0/nlLSCagwJRzXi0qkm8Ek8ZwIhNmnRM66mD06sClvRkmsT8P/zFl+1b2LdLUNdhXpfQKd+gOkGDK3uq04erk/jdgkEDg8fqwMbPCcXys/9VHZh2rEFJhRNI8By5h/eG8Orsny5Mbb/NSR+G7VQ2/Mm7bvkwheqbOyk1bwSruOCGmWAsF+yWe2kMMcA5O7r3qsKn2L6SLVyIDQxYBH8LmKY5O0Z9Y18COPw83ENXckEuIRi02Sd4jFeUiNlPXnK4fTXvNUCcC2SLscUkn6hwfnop0m3Phn+YRKwDX8OZXmW889t+Y/ulQkrDCw==
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=811326h7nGKhsNQgjbJxWI8WN5I8IcZyj59CDFQhkag=;
 b=FYNl2+Jc2gAP3z4qRy71AULOkcmUPgrEc1Ifa6xRtlQxshQpD7sRtQpmWRqFjTIbWY9qDnIXPH1zdcX8KleMJEAos/YxQAH5BSYYO6ifSZcxYMJZ4FkqZPNKftWj+gi4h2JJKti9rF2VI2bsh1WcIBiS5dm8XlqGaoHAU5dbaVo=
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: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>, <xen-devel@dornerworks.com>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.com>, Nathan Studer
	<nathan.studer@dornerworks.com>, Stewart Hildebrand <stewart@stew.dk>, "Dario
 Faggioli" <dfaggioli@suse.com>, Juergen Gross <jgross@suse.com>, George
 Dunlap <gwd@xenproject.org>, Andrew Cooper <andrew.cooper3@citrix.com>,
	"Anthony PERARD" <anthony.perard@vates.tech>, Michal Orzel
	<michal.orzel@amd.com>, "Jan Beulich" <jbeulich@suse.com>, Julien Grall
	<julien@xen.org>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, "Stefano Stabellini" <sstabellini@kernel.org>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>
Subject: [PATCH v3 14/20] xen/sysctl: wrap around XEN_SYSCTL_scheduler_op
Date: Mon, 21 Apr 2025 15:37:17 +0800
Message-ID: <20250421073723.3863060-15-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250421073723.3863060-1-Penny.Zheng@amd.com>
References: <20250421073723.3863060-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: BN2PEPF000055E0:EE_|PH8PR12MB6841:EE_
X-MS-Office365-Filtering-Correlation-Id: bdb1ceb0-c800-4312-52ad-08dd80a78038
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|7416014|376014|1800799024|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?svymLQ7buClLqDCbDIm485GSbAljCxCQuAuKblV62k5OevxAiMzKK4IanFLf?=
 =?us-ascii?Q?01gMoGcmiR72SeU9J7bCMpW5/69bV1J4arumPu8TxbN6qKMbIUgdBIMoXe8q?=
 =?us-ascii?Q?iKBMQBKS9WiQgRscQfoGKcAqoEcL+WB7m4Snr5j5MlV0aCDGHsooGpb1xcnd?=
 =?us-ascii?Q?SdHNN8GGH5Kxs1prCAaBkzs5N5DOS7qAlY3Zhe8OXED4csYya3/CXLGhww1d?=
 =?us-ascii?Q?ECzNm0DYX46RGJ8WlQhfyEfXskBBckgSdvLVOVY9gQG0OiIpVXsW3VV0zqN4?=
 =?us-ascii?Q?+rufXbs8Tj+7+lk5YG7nRI2/0Ql9X1rpdU51hNv0ihvLEga1tPb8mHAMnHrf?=
 =?us-ascii?Q?fwzB7n5a5UxTxL13GmjoXafzms6ShNqKnQ8/Ljb9/qDTnpR0xAhmP5N0PUey?=
 =?us-ascii?Q?ITIWSSmD4bY3lwbWhjRR/Gs8oRXASzDO+bNpO1QJY24S4gRt8dWSTieArKQU?=
 =?us-ascii?Q?h2smv7jToY9HRgpuYX6BnZ8jXgjqqC2W7gvkoF/POfaGefksGIN8ZRPHrphw?=
 =?us-ascii?Q?28HjK7TzU3pKOxl5fYqnCkuLhzDEPew4n/uHqecCBYQw8ZoTw3na2/hYh9lf?=
 =?us-ascii?Q?TWesn5Jh+/T4tlHQRm12bWbQ59OCnsN4lqQw8hkfmVv1EUZf3lD4wsACi22n?=
 =?us-ascii?Q?xqUFrxmB1vu6IOAFj2NshGXFgeozuEm2j4vsYFT40s8njucMLEHo3dvp30Do?=
 =?us-ascii?Q?xr3aFBR5qcNDq0Z2uwvVOOAtSEKPFcbOyiSYSh7rF5VdMOv/UuVgbFW0KYI2?=
 =?us-ascii?Q?zdYCWx08ZmWv+/dQCPOiPegicIs7xARtfq+fD+8+VN3Kvr5zNIAPfq/7sh0n?=
 =?us-ascii?Q?9YXoqkfHgOEqLPshEKKf7+C1VWcT82ssJFWj0HWZ55aRvCf4hpzNfV1vqSJA?=
 =?us-ascii?Q?MxDeO2VmboNbef2AQV9JUabD9Z49MXlfcs6HnvR12xHjJyKLEG3gisRHF8RL?=
 =?us-ascii?Q?KbVaKDYqOwaryZ3Io4947sQENGlH+vl6xMbIaWbdTXvmD5rdRQp0NdzRjFBD?=
 =?us-ascii?Q?hiE3wGOBNEdkel17cOuKgJB9pJ7i+LZ5tJRI/8HDinaGTUoz4En5QhuP4qcl?=
 =?us-ascii?Q?P+zpP4diYkapJRzRpN0H5BCqWQlQM8HrJpF7YwckoJyy5nkx7oMc9CyGdj6E?=
 =?us-ascii?Q?Rnw1KIKJkybDfMzqscpyJea6NUaST7OIuHnmgJIMEjkM7D0yq9HyizIXKvtA?=
 =?us-ascii?Q?oDW4rjaNfNZP1bMOslYstqqifSW6JD1WwG02t4V49T/WzKCdUhC95PO4SUb2?=
 =?us-ascii?Q?sYWKtRZcLwL04lpbcC9JSov4h13P3vTS8N3s+zPY3lHiGtBI8ZK01Kexgvoi?=
 =?us-ascii?Q?0vALjaK1U8EWcdOpUqlbEfP5Xsu+RjkuMRCJZEQvVKcp3zlnTW+qfo9ySmFd?=
 =?us-ascii?Q?bsiyc+G/9uHoe0c5eHqmNeCQ8ypdQM795QMcTwpePI1vX+m6M9TalPhuqeMY?=
 =?us-ascii?Q?RWWnrnY2I/0Yezym5obwgjQLXhatGo+dzGKaCNNRjnOZ/fIEZHg3+6P8pfVh?=
 =?us-ascii?Q?webGJdc9f+gKJHEg6guHgpn/fpwSvos65aAJ?=
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)(7416014)(376014)(1800799024)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Apr 2025 07:38:25.5123
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: bdb1ceb0-c800-4312-52ad-08dd80a78038
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: PH8PR12MB6841

Function sched_adjust_global is designed for XEN_SYSCTL_scheduler_op, so
itself and its calling flow, like .adjust_global, shall all be wrapped.

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
Acked-by: Stewart Hildebrand <stewart@stew.dk> #a653
---
v1 -> v2:
- no need to wrap declarations
- add transient #ifdef in sysctl.c for correct compilation
---
v2 -> v3
- move #endif up ahead of the blank line
---
 xen/common/sched/arinc653.c | 6 ++++++
 xen/common/sched/core.c     | 2 ++
 xen/common/sched/credit.c   | 4 ++++
 xen/common/sched/credit2.c  | 4 ++++
 xen/common/sched/private.h  | 4 ++++
 xen/common/sysctl.c         | 2 +-
 xen/include/xsm/xsm.h       | 4 ++++
 xen/xsm/dummy.c             | 2 ++
 xen/xsm/flask/hooks.c       | 4 ++++
 9 files changed, 31 insertions(+), 1 deletion(-)

diff --git a/xen/common/sched/arinc653.c b/xen/common/sched/arinc653.c
index 432ccfe662..3c014c9934 100644
--- a/xen/common/sched/arinc653.c
+++ b/xen/common/sched/arinc653.c
@@ -220,6 +220,7 @@ static void update_schedule_units(const struct scheduler *ops)
                       SCHED_PRIV(ops)->schedule[i].unit_id);
 }
 
+#ifdef CONFIG_SYSCTL
 /**
  * This function is called by the adjust_global scheduler hook to put
  * in place a new ARINC653 schedule.
@@ -334,6 +335,7 @@ arinc653_sched_get(
 
     return 0;
 }
+#endif /* CONFIG_SYSCTL */
 
 /**************************************************************************
  * Scheduler callback functions                                           *
@@ -653,6 +655,7 @@ a653_switch_sched(struct scheduler *new_ops, unsigned int cpu,
     return &sr->_lock;
 }
 
+#ifdef CONFIG_SYSCTL
 /**
  * Xen scheduler callback function to perform a global (not domain-specific)
  * adjustment. It is used by the ARINC 653 scheduler to put in place a new
@@ -692,6 +695,7 @@ a653sched_adjust_global(const struct scheduler *ops,
 
     return rc;
 }
+#endif /* CONFIG_SYSCTL */
 
 /**
  * This structure defines our scheduler for Xen.
@@ -726,7 +730,9 @@ static const struct scheduler sched_arinc653_def = {
     .switch_sched   = a653_switch_sched,
 
     .adjust         = NULL,
+#ifdef CONFIG_SYSCTL
     .adjust_global  = a653sched_adjust_global,
+#endif
 
     .dump_settings  = NULL,
     .dump_cpu_state = NULL,
diff --git a/xen/common/sched/core.c b/xen/common/sched/core.c
index 13fdf57e57..ea95dea65a 100644
--- a/xen/common/sched/core.c
+++ b/xen/common/sched/core.c
@@ -2112,6 +2112,7 @@ long sched_adjust(struct domain *d, struct xen_domctl_scheduler_op *op)
     return ret;
 }
 
+#ifdef CONFIG_SYSCTL
 long sched_adjust_global(struct xen_sysctl_scheduler_op *op)
 {
     struct cpupool *pool;
@@ -2140,6 +2141,7 @@ long sched_adjust_global(struct xen_sysctl_scheduler_op *op)
 
     return rc;
 }
+#endif /* CONFIG_SYSCTL */
 
 static void vcpu_periodic_timer_work_locked(struct vcpu *v)
 {
diff --git a/xen/common/sched/credit.c b/xen/common/sched/credit.c
index a6bb321e7d..6dcf6b2c8b 100644
--- a/xen/common/sched/credit.c
+++ b/xen/common/sched/credit.c
@@ -1256,6 +1256,7 @@ __csched_set_tslice(struct csched_private *prv, unsigned int timeslice_ms)
     prv->credit = prv->credits_per_tslice * prv->ncpus;
 }
 
+#ifdef CONFIG_SYSCTL
 static int cf_check
 csched_sys_cntl(const struct scheduler *ops,
                         struct xen_sysctl_scheduler_op *sc)
@@ -1298,6 +1299,7 @@ csched_sys_cntl(const struct scheduler *ops,
     out:
     return rc;
 }
+#endif /* CONFIG_SYSCTL */
 
 static void *cf_check
 csched_alloc_domdata(const struct scheduler *ops, struct domain *dom)
@@ -2288,7 +2290,9 @@ static const struct scheduler sched_credit_def = {
 
     .adjust         = csched_dom_cntl,
     .adjust_affinity= csched_aff_cntl,
+#ifdef CONFIG_SYSCTL
     .adjust_global  = csched_sys_cntl,
+#endif
 
     .pick_resource  = csched_res_pick,
     .do_schedule    = csched_schedule,
diff --git a/xen/common/sched/credit2.c b/xen/common/sched/credit2.c
index 0a83f23725..0b3b61df57 100644
--- a/xen/common/sched/credit2.c
+++ b/xen/common/sched/credit2.c
@@ -3131,6 +3131,7 @@ csched2_aff_cntl(const struct scheduler *ops, struct sched_unit *unit,
         __clear_bit(__CSFLAG_pinned, &svc->flags);
 }
 
+#ifdef CONFIG_SYSCTL
 static int cf_check csched2_sys_cntl(
     const struct scheduler *ops, struct xen_sysctl_scheduler_op *sc)
 {
@@ -3162,6 +3163,7 @@ static int cf_check csched2_sys_cntl(
 
     return 0;
 }
+#endif /* CONFIG_SYSCTL */
 
 static void *cf_check
 csched2_alloc_domdata(const struct scheduler *ops, struct domain *dom)
@@ -4232,7 +4234,9 @@ static const struct scheduler sched_credit2_def = {
 
     .adjust         = csched2_dom_cntl,
     .adjust_affinity= csched2_aff_cntl,
+#ifdef CONFIG_SYSCTL
     .adjust_global  = csched2_sys_cntl,
+#endif
 
     .pick_resource  = csched2_res_pick,
     .migrate        = csched2_unit_migrate,
diff --git a/xen/common/sched/private.h b/xen/common/sched/private.h
index c0e7c96d24..d6884550cd 100644
--- a/xen/common/sched/private.h
+++ b/xen/common/sched/private.h
@@ -356,8 +356,10 @@ struct scheduler {
                                     struct sched_unit *unit,
                                     const struct cpumask *hard,
                                     const struct cpumask *soft);
+#ifdef CONFIG_SYSCTL
     int          (*adjust_global)  (const struct scheduler *ops,
                                     struct xen_sysctl_scheduler_op *sc);
+#endif
     void         (*dump_settings)  (const struct scheduler *ops);
     void         (*dump_cpu_state) (const struct scheduler *ops, int cpu);
     void         (*move_timers)    (const struct scheduler *ops,
@@ -510,11 +512,13 @@ static inline int sched_adjust_dom(const struct scheduler *s, struct domain *d,
     return s->adjust ? s->adjust(s, d, op) : 0;
 }
 
+#ifdef CONFIG_SYSCTL
 static inline int sched_adjust_cpupool(const struct scheduler *s,
                                        struct xen_sysctl_scheduler_op *op)
 {
     return s->adjust_global ? s->adjust_global(s, op) : 0;
 }
+#endif
 
 static inline void sched_move_timers(const struct scheduler *s,
                                      struct sched_resource *sr)
diff --git a/xen/common/sysctl.c b/xen/common/sysctl.c
index 767e0b7389..200e0a0488 100644
--- a/xen/common/sysctl.c
+++ b/xen/common/sysctl.c
@@ -256,11 +256,11 @@ long do_sysctl(XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl)
     case XEN_SYSCTL_cpupool_op:
         ret = cpupool_do_sysctl(&op->u.cpupool_op);
         break;
-#endif /* CONFIG_SYSCTL */
 
     case XEN_SYSCTL_scheduler_op:
         ret = sched_adjust_global(&op->u.scheduler_op);
         break;
+#endif /* CONFIG_SYSCTL */
 
     case XEN_SYSCTL_physinfo:
     {
diff --git a/xen/include/xsm/xsm.h b/xen/include/xsm/xsm.h
index 5ac99904c4..6e1789c314 100644
--- a/xen/include/xsm/xsm.h
+++ b/xen/include/xsm/xsm.h
@@ -57,7 +57,9 @@ struct xsm_ops {
     int (*domain_create)(struct domain *d, uint32_t ssidref);
     int (*getdomaininfo)(struct domain *d);
     int (*domctl_scheduler_op)(struct domain *d, int op);
+#ifdef CONFIG_SYSCTL
     int (*sysctl_scheduler_op)(int op);
+#endif
     int (*set_target)(struct domain *d, struct domain *e);
     int (*domctl)(struct domain *d, unsigned int cmd, uint32_t ssidref);
     int (*sysctl)(int cmd);
@@ -244,10 +246,12 @@ static inline int xsm_domctl_scheduler_op(
     return alternative_call(xsm_ops.domctl_scheduler_op, d, cmd);
 }
 
+#ifdef CONFIG_SYSCTL
 static inline int xsm_sysctl_scheduler_op(xsm_default_t def, int cmd)
 {
     return alternative_call(xsm_ops.sysctl_scheduler_op, cmd);
 }
+#endif
 
 static inline int xsm_set_target(
     xsm_default_t def, struct domain *d, struct domain *e)
diff --git a/xen/xsm/dummy.c b/xen/xsm/dummy.c
index d46413ad8c..8d44f5bfb6 100644
--- a/xen/xsm/dummy.c
+++ b/xen/xsm/dummy.c
@@ -19,7 +19,9 @@ static const struct xsm_ops __initconst_cf_clobber dummy_ops = {
     .domain_create                 = xsm_domain_create,
     .getdomaininfo                 = xsm_getdomaininfo,
     .domctl_scheduler_op           = xsm_domctl_scheduler_op,
+#ifdef CONFIG_SYSCTL
     .sysctl_scheduler_op           = xsm_sysctl_scheduler_op,
+#endif
     .set_target                    = xsm_set_target,
     .domctl                        = xsm_domctl,
 #ifdef CONFIG_SYSCTL
diff --git a/xen/xsm/flask/hooks.c b/xen/xsm/flask/hooks.c
index 45c12aa662..a7cb33a718 100644
--- a/xen/xsm/flask/hooks.c
+++ b/xen/xsm/flask/hooks.c
@@ -626,6 +626,7 @@ static int cf_check flask_domctl_scheduler_op(struct domain *d, int op)
     }
 }
 
+#ifdef CONFIG_SYSCTL
 static int cf_check flask_sysctl_scheduler_op(int op)
 {
     switch ( op )
@@ -640,6 +641,7 @@ static int cf_check flask_sysctl_scheduler_op(int op)
         return avc_unknown_permission("sysctl_scheduler_op", op);
     }
 }
+#endif /* CONFIG_SYSCTL */
 
 static int cf_check flask_set_target(struct domain *d, struct domain *t)
 {
@@ -1887,7 +1889,9 @@ static const struct xsm_ops __initconst_cf_clobber flask_ops = {
     .domain_create = flask_domain_create,
     .getdomaininfo = flask_getdomaininfo,
     .domctl_scheduler_op = flask_domctl_scheduler_op,
+#ifdef CONFIG_SYSCTL
     .sysctl_scheduler_op = flask_sysctl_scheduler_op,
+#endif
     .set_target = flask_set_target,
     .domctl = flask_domctl,
 #ifdef CONFIG_SYSCTL
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Apr 21 07:41:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 21 Apr 2025 07:41:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.961159.1352779 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6lmb-0004rb-Ra; Mon, 21 Apr 2025 07:41:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 961159.1352779; Mon, 21 Apr 2025 07:41: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 1u6lmb-0004qG-Ir; Mon, 21 Apr 2025 07:41:37 +0000
Received: by outflank-mailman (input) for mailman id 961159;
 Mon, 21 Apr 2025 07:41: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=Kh51=XH=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1u6ljs-0007m8-SC
 for xen-devel@lists.xenproject.org; Mon, 21 Apr 2025 07:38:48 +0000
Received: from NAM12-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam12on20618.outbound.protection.outlook.com
 [2a01:111:f403:200a::618])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a8709860-1e83-11f0-9eb0-5ba50f476ded;
 Mon, 21 Apr 2025 09:38:47 +0200 (CEST)
Received: from BN0PR10CA0028.namprd10.prod.outlook.com (2603:10b6:408:143::34)
 by DS0PR12MB8526.namprd12.prod.outlook.com (2603:10b6:8:163::9) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.35; Mon, 21 Apr
 2025 07:38:42 +0000
Received: from BN2PEPF000055DC.namprd21.prod.outlook.com
 (2603:10b6:408:143:cafe::8) by BN0PR10CA0028.outlook.office365.com
 (2603:10b6:408:143::34) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.35 via Frontend Transport; Mon,
 21 Apr 2025 07:38:42 +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.8678.4 via Frontend Transport; Mon, 21 Apr 2025 07:38:42 +0000
Received: from penny-System-Product-Name.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; Mon, 21 Apr 2025 02:38:37 -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: a8709860-1e83-11f0-9eb0-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=fxr/PCEtGd73pnQu23t4AhXYc+qGLtv6DJxtStBNQLLkwS0Rb5sa3Xrmx6s/5N7Kad0J6K9MUSzOtv5oSU823gjGe4qkefaF3NFyg/uVCGiaibwvfDltAsEyi33FI82ocLSqw8iC17A7CSUNn7/5i8sitr1pxeDHM67Fi8wrnoXJGaDrtqTWwieZHzn+9D/FWDiiBtJ18PdGZ1YkcPUi8TgUBak3KVBA3uMKHybl5LQZyD8YigLVt7lQJN58uCCMPLJ0ZSe7tvvDHLDhUcQhPIlgxI+pD38hscqz0oqLwIhe+ejv2WCDhzXDMQIeCdTuDl1ssxRPybRdy8ZfdW9wOg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=r4CC5cQALjU255G8esQCS8p/0H3qw2m1TSkbz36wHas=;
 b=qdU+ylGA45VPkE+R0YoID1skWHEw/EULxh2WzdQopg51OkvHiobZjv5tkYbnYReKnAWPlhP8IjCCB6NVIaGPml6ZXqx0LCqID+UFOUbg3An7u+S4TQ5MhXJHzswP3W5DTF/D4O7DeCEzZF+fVvVaqW+PBRY+pZYOxQ1FDa2ygl2b8b9OG3HEUp3HEZettTXo4Cc2OQfj3TXUzueCW449VGbtBWMFia1F/Ukghprz5SsjRLlbZVKSDTBrzmmq6XqmJC/udrdgGdrvdeeDsYwsBFL3lnaOFYqpX6UME8fh5Cfb/ZtcjNsRSnKVY0rqeFiokAGlkq4jKEflBxPMwU99+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=r4CC5cQALjU255G8esQCS8p/0H3qw2m1TSkbz36wHas=;
 b=4RIRRbzBO6fAtCt14uMLBVVG2R6VnN7quseaM6hVryyM+uVlO+epNGZNjq/DD7FoKCo0vkg0dRjVOBbm7CnGMYEHO57CuC84JnfjpOOUUf94olCtXlLXhjgOXWQlH46Gv5NXKUpUKEEhrzjU/FsvU5btLpRCT1Rgf8b5ZnBx8Tc=
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: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, "Volodymyr
 Babchuk" <Volodymyr_Babchuk@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, "Jan
 Beulich" <jbeulich@suse.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Alistair Francis <alistair.francis@wdc.com>, "Bob
 Eshleman" <bobbyeshleman@gmail.com>, Connor Davis <connojdavis@gmail.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>, Stefano Stabellini
	<stefano.stabellini@amd.com>, Sergiy Kibrik <Sergiy_Kibrik@epam.com>
Subject: [PATCH v3 19/20] xen/sysctl: wrap around arch-specific arch_do_sysctl
Date: Mon, 21 Apr 2025 15:37:22 +0800
Message-ID: <20250421073723.3863060-20-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250421073723.3863060-1-Penny.Zheng@amd.com>
References: <20250421073723.3863060-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: BN2PEPF000055DC:EE_|DS0PR12MB8526:EE_
X-MS-Office365-Filtering-Correlation-Id: bb8275ca-be2e-468b-7eb6-08dd80a78a27
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|7416014|376014|1800799024|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?oblTil7FVuukgfl5BcLzX5CSoUhrC6JRiS9XjqAAmgyvHHcOhK1JEzx5s2JS?=
 =?us-ascii?Q?znDNrFUMTRnf58ks/CxPaWxJdajiZUK1BGnWqrcVzK3NmWRZ3fFxT6jpVYHq?=
 =?us-ascii?Q?SHJqpVMAvB396U3wDqCSwkeX7shKHx/clifNbcIVLIoSV2LLrTwm+ybpWEmF?=
 =?us-ascii?Q?lWLChiYiK7uixLsh20GNMpe20XwfunQ80U+bk77w4na3jWf2nbACuVDDHkAZ?=
 =?us-ascii?Q?sIYGdB1no5ik1sPhzJJDNHWHAVQHztRAUvCm6atWY8lc3U8Kd1ZMBb/rPJCe?=
 =?us-ascii?Q?t0xLDff+2d79vQZgN4mr/nihUIGTla6ohHHGGfwlQy6jVq+VeHFB5xAZqVxv?=
 =?us-ascii?Q?i0Bl0Fcoj5fB0Yv4LTPhdM7aDfq5/c2wib9EynOwUNMr2LhNKOZv9Ip/+Rna?=
 =?us-ascii?Q?+ftt/raM60U7/XBmy5xjvRLFczgopCQUmUxfRYwJeToymUswviMC2HJ9UA6e?=
 =?us-ascii?Q?a06k/5EJYS2d8vfPVJVhS+YqhkAqbwcX1yQs0Cl/1dWRh4dR+wJGj/waOYTc?=
 =?us-ascii?Q?yJ28HSKRu56ESx5IXH6LK1DDrcumMzfrc81EBLti3/go22+w6oTqnwGbmkqD?=
 =?us-ascii?Q?sP6V7xXqKjkFuT8J3mB6cjES/bbDSA2vut+dQvl6A7q8DVTvJkoVj068GHX2?=
 =?us-ascii?Q?xtRuQBrWRluaP79NYiSWJ/WhZicVYNmgqim2TZ/rx+X1oKALRBBnGHuyg2rP?=
 =?us-ascii?Q?9nI1gvhz+Da47gsGvCa21bQNHGcVfqGu3mfCyRt1NP4acuUY69wnohUTUXT/?=
 =?us-ascii?Q?tjBGcYJG9N9rBLvf3OopmRVK4buAxBcWWpvi1m4+xrwOP5nL6fJpYR0H5xGS?=
 =?us-ascii?Q?mdv7C6SJGYBQ2TDIzAtHoCeuFr791ygjM6Xmez1I3bDVJsK/FQx25MLK9+xg?=
 =?us-ascii?Q?HSNhwv/FKQawF+1elACIUkIJmsV8CtscrNfGA+uTZqQzPcNvrJoV6YJ0WtAB?=
 =?us-ascii?Q?7QHRdhZqU+iUzQcWCI1lBA55fVRtxy9eq3Q6zVK0Pbqk959ObA/sJlMt5GjX?=
 =?us-ascii?Q?H9dsmnQWItdJPFNRnFnlzgPBxAWUeturBw2pCW6XdV+404C74HlwUBQn732F?=
 =?us-ascii?Q?oeNbqgy+04gRiYeWpLtXCdlLbboQaHkElPFHv3voADQGK7e4gHi+8ZQjFlu2?=
 =?us-ascii?Q?XoNc3s/WernYnHvwl/tFqgpDw/BEuZFRgOuGnxVCZ/WegS3p/IlAxyBPB9hm?=
 =?us-ascii?Q?hTl+/Xxps4hiNpHuOv2T0P5WXi7l4i5qJklzabYX9U1XiJFeclOttag9vHLx?=
 =?us-ascii?Q?y3lgvAA9TRC1OhCHEMtLXGzG7Yoz8iDO8endmAgg8lrncT21tSOUVG2POa7b?=
 =?us-ascii?Q?DYe2i2DJcG4yWyJEthlZLL1XcQ9EK9BDG8yxc26mV62U47P6vBp9vEg8PHim?=
 =?us-ascii?Q?mZipUofEn8kXLRs6OgrybNvJYkRxz7MgfIc6zZy9nCMIG/ekUlo95P2YDS8N?=
 =?us-ascii?Q?Dz9pBUsbxDy8mje1s0olIxHw3eqeJWPsPfwLO0Nw+lZNCgTzenaSQnJoKbqC?=
 =?us-ascii?Q?bQZqDXrnbhJHCBQ4WUcGkBfD3C7vF1WnIRhk?=
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)(7416014)(376014)(1800799024)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Apr 2025 07:38:42.1796
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: bb8275ca-be2e-468b-7eb6-08dd80a78a27
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: DS0PR12MB8526

Function arch_do_sysctl is to perform arch-specific sysctl op.
Some functions, like psr_get_info for x86, DTB overlay support for arm,
are solely available through sysctl op, then they all shall be wrapped
with CONFIG_SYSCTL

Also, remove all #ifdef CONFIG_SYSCTL-s in arch-specific sysctl.c, as
we put the guardian in Makefile for the whole file.
Since PV_SHIM_EXCLUSIVE needs sorting as a prereq in the future, we move
obj-$(CONFIG_SYSCTL) += sysctl.o out of PV_SHIM_EXCLUSIVE condition.

Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
Signed-off-by: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
- use "depends on" for config OVERLAY_DTB
- no need to wrap declaration
- add transient #ifdef in sysctl.c for correct compilation
---
v2 -> v3
- move obj-$(CONFIG_SYSCTL) += sysctl.o out of PV_SHIM_EXCLUSIVE condition
- move copyback out of #ifdef
- add #else process for default label
---
 xen/arch/arm/Kconfig   |  1 +
 xen/arch/arm/Makefile  |  2 +-
 xen/arch/arm/sysctl.c  |  2 --
 xen/arch/riscv/stubs.c |  2 +-
 xen/arch/x86/Makefile  |  2 +-
 xen/arch/x86/psr.c     | 18 ++++++++++++++++++
 xen/arch/x86/sysctl.c  |  2 --
 xen/common/sysctl.c    |  4 ++++
 8 files changed, 26 insertions(+), 7 deletions(-)

diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
index da8a406f5a..9ac015b0cd 100644
--- a/xen/arch/arm/Kconfig
+++ b/xen/arch/arm/Kconfig
@@ -144,6 +144,7 @@ config HAS_ITS
 
 config OVERLAY_DTB
 	bool "DTB overlay support (UNSUPPORTED)" if UNSUPPORTED
+	depends on SYSCTL
 	help
 	  Dynamic addition/removal of Xen device tree nodes using a dtbo.
 
diff --git a/xen/arch/arm/Makefile b/xen/arch/arm/Makefile
index 4837ad467a..7c6015b84d 100644
--- a/xen/arch/arm/Makefile
+++ b/xen/arch/arm/Makefile
@@ -54,7 +54,7 @@ obj-y += smpboot.o
 obj-$(CONFIG_STATIC_EVTCHN) += static-evtchn.init.o
 obj-$(CONFIG_STATIC_MEMORY) += static-memory.init.o
 obj-$(CONFIG_STATIC_SHM) += static-shmem.init.o
-obj-y += sysctl.o
+obj-$(CONFIG_SYSCTL) += sysctl.o
 obj-y += time.o
 obj-y += traps.o
 obj-y += vcpreg.o
diff --git a/xen/arch/arm/sysctl.c b/xen/arch/arm/sysctl.c
index 2d350b700a..32cab4feff 100644
--- a/xen/arch/arm/sysctl.c
+++ b/xen/arch/arm/sysctl.c
@@ -15,7 +15,6 @@
 #include <asm/arm64/sve.h>
 #include <public/sysctl.h>
 
-#ifdef CONFIG_SYSCTL
 void arch_do_physinfo(struct xen_sysctl_physinfo *pi)
 {
     pi->capabilities |= XEN_SYSCTL_PHYSCAP_hvm | XEN_SYSCTL_PHYSCAP_hap;
@@ -23,7 +22,6 @@ void arch_do_physinfo(struct xen_sysctl_physinfo *pi)
     pi->arch_capabilities |= MASK_INSR(sve_encode_vl(get_sys_vl_len()),
                                        XEN_SYSCTL_PHYSCAP_ARM_SVE_MASK);
 }
-#endif
 
 long arch_do_sysctl(struct xen_sysctl *sysctl,
                     XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl)
diff --git a/xen/arch/riscv/stubs.c b/xen/arch/riscv/stubs.c
index 295456d0c8..cb9b90591a 100644
--- a/xen/arch/riscv/stubs.c
+++ b/xen/arch/riscv/stubs.c
@@ -315,13 +315,13 @@ unsigned long raw_copy_from_guest(void *to, const void __user *from,
 
 /* sysctl.c */
 
+#ifdef CONFIG_SYSCTL
 long arch_do_sysctl(struct xen_sysctl *sysctl,
                     XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl)
 {
     BUG_ON("unimplemented");
 }
 
-#ifdef CONFIG_SYSCTL
 void arch_do_physinfo(struct xen_sysctl_physinfo *pi)
 {
     BUG_ON("unimplemented");
diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
index f59c9665fd..1602f4fd21 100644
--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -64,6 +64,7 @@ obj-y += smpboot.o
 obj-y += spec_ctrl.o
 obj-y += srat.o
 obj-y += string.o
+obj-$(CONFIG_SYSCTL) += sysctl.o
 obj-y += time.o
 obj-y += traps-setup.o
 obj-y += traps.o
@@ -79,7 +80,6 @@ ifneq ($(CONFIG_PV_SHIM_EXCLUSIVE),y)
 obj-y += domctl.o
 obj-y += platform_hypercall.o
 obj-$(CONFIG_COMPAT) += x86_64/platform_hypercall.o
-obj-y += sysctl.o
 endif
 
 extra-y += asm-macros.i
diff --git a/xen/arch/x86/psr.c b/xen/arch/x86/psr.c
index 5815a35335..499d320e61 100644
--- a/xen/arch/x86/psr.c
+++ b/xen/arch/x86/psr.c
@@ -133,9 +133,11 @@ static const struct feat_props {
      */
     enum psr_type alt_type;
 
+#ifdef CONFIG_SYSCTL
     /* get_feat_info is used to return feature HW info through sysctl. */
     bool (*get_feat_info)(const struct feat_node *feat,
                           uint32_t data[], unsigned int array_len);
+#endif
 
     /* write_msr is used to write out feature MSR register. */
     void (*write_msr)(unsigned int cos, uint32_t val, enum psr_type type);
@@ -418,6 +420,7 @@ static bool mba_init_feature(const struct cpuid_leaf *regs,
     return true;
 }
 
+#ifdef CONFIG_SYSCTL
 static bool cf_check cat_get_feat_info(
     const struct feat_node *feat, uint32_t data[], unsigned int array_len)
 {
@@ -430,6 +433,7 @@ static bool cf_check cat_get_feat_info(
 
     return true;
 }
+#endif /* CONFIG_SYSCTL */
 
 /* L3 CAT props */
 static void cf_check l3_cat_write_msr(
@@ -442,11 +446,14 @@ static const struct feat_props l3_cat_props = {
     .cos_num = 1,
     .type[0] = PSR_TYPE_L3_CBM,
     .alt_type = PSR_TYPE_UNKNOWN,
+#ifdef CONFIG_SYSCTL
     .get_feat_info = cat_get_feat_info,
+#endif
     .write_msr = l3_cat_write_msr,
     .sanitize = cat_check_cbm,
 };
 
+#ifdef CONFIG_SYSCTL
 /* L3 CDP props */
 static bool cf_check l3_cdp_get_feat_info(
     const struct feat_node *feat, uint32_t data[], uint32_t array_len)
@@ -458,6 +465,7 @@ static bool cf_check l3_cdp_get_feat_info(
 
     return true;
 }
+#endif /* CONFIG_SYSCTL */
 
 static void cf_check l3_cdp_write_msr(
     unsigned int cos, uint32_t val, enum psr_type type)
@@ -473,7 +481,9 @@ static const struct feat_props l3_cdp_props = {
     .type[0] = PSR_TYPE_L3_DATA,
     .type[1] = PSR_TYPE_L3_CODE,
     .alt_type = PSR_TYPE_L3_CBM,
+#ifdef CONFIG_SYSCTL
     .get_feat_info = l3_cdp_get_feat_info,
+#endif
     .write_msr = l3_cdp_write_msr,
     .sanitize = cat_check_cbm,
 };
@@ -489,11 +499,14 @@ static const struct feat_props l2_cat_props = {
     .cos_num = 1,
     .type[0] = PSR_TYPE_L2_CBM,
     .alt_type = PSR_TYPE_UNKNOWN,
+#ifdef CONFIG_SYSCTL
     .get_feat_info = cat_get_feat_info,
+#endif
     .write_msr = l2_cat_write_msr,
     .sanitize = cat_check_cbm,
 };
 
+#ifdef CONFIG_SYSCTL
 /* MBA props */
 static bool cf_check mba_get_feat_info(
     const struct feat_node *feat, uint32_t data[], unsigned int array_len)
@@ -508,6 +521,7 @@ static bool cf_check mba_get_feat_info(
 
     return true;
 }
+#endif /* CONFIG_SYSCTL */
 
 static void cf_check mba_write_msr(
     unsigned int cos, uint32_t val, enum psr_type type)
@@ -545,7 +559,9 @@ static const struct feat_props mba_props = {
     .cos_num = 1,
     .type[0] = PSR_TYPE_MBA_THRTL,
     .alt_type = PSR_TYPE_UNKNOWN,
+#ifdef CONFIG_SYSCTL
     .get_feat_info = mba_get_feat_info,
+#endif
     .write_msr = mba_write_msr,
     .sanitize = mba_sanitize_thrtl,
 };
@@ -808,6 +824,7 @@ static struct psr_socket_info *get_socket_info(unsigned int socket)
     return socket_info + socket;
 }
 
+#ifdef CONFIG_SYSCTL
 int psr_get_info(unsigned int socket, enum psr_type type,
                  uint32_t data[], unsigned int array_len)
 {
@@ -839,6 +856,7 @@ int psr_get_info(unsigned int socket, enum psr_type type,
 
     return -EINVAL;
 }
+#endif /* CONFIG_SYSCTL */
 
 int psr_get_val(struct domain *d, unsigned int socket,
                 uint32_t *val, enum psr_type type)
diff --git a/xen/arch/x86/sysctl.c b/xen/arch/x86/sysctl.c
index f64addbe2b..1b04947516 100644
--- a/xen/arch/x86/sysctl.c
+++ b/xen/arch/x86/sysctl.c
@@ -91,7 +91,6 @@ static long cf_check smt_up_down_helper(void *data)
     return ret;
 }
 
-#ifdef CONFIG_SYSCTL
 void arch_do_physinfo(struct xen_sysctl_physinfo *pi)
 {
     memcpy(pi->hw_cap, boot_cpu_data.x86_capability,
@@ -105,7 +104,6 @@ void arch_do_physinfo(struct xen_sysctl_physinfo *pi)
     if ( IS_ENABLED(CONFIG_SHADOW_PAGING) )
         pi->capabilities |= XEN_SYSCTL_PHYSCAP_shadow;
 }
-#endif /* CONFIG_SYSCTL */
 
 long arch_do_sysctl(
     struct xen_sysctl *sysctl, XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl)
diff --git a/xen/common/sysctl.c b/xen/common/sysctl.c
index b4feb07e60..85a1adacdd 100644
--- a/xen/common/sysctl.c
+++ b/xen/common/sysctl.c
@@ -493,7 +493,11 @@ long do_sysctl(XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl)
         break;
 
     default:
+#ifdef CONFIG_SYSCTL
         ret = arch_do_sysctl(op, u_sysctl);
+#else
+        ret = -EOPNOTSUPP;
+#endif
         copyback = 0;
         break;
     }
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Apr 21 07:41:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 21 Apr 2025 07:41:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.961167.1352793 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6lmp-0006Ir-3I; Mon, 21 Apr 2025 07:41:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 961167.1352793; Mon, 21 Apr 2025 07:41: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 1u6lmp-0006Ih-0P; Mon, 21 Apr 2025 07:41:51 +0000
Received: by outflank-mailman (input) for mailman id 961167;
 Mon, 21 Apr 2025 07:41: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=Kh51=XH=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1u6ljk-0007m8-A9
 for xen-devel@lists.xenproject.org; Mon, 21 Apr 2025 07:38:40 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on20630.outbound.protection.outlook.com
 [2a01:111:f403:2414::630])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a340b8fe-1e83-11f0-9eb0-5ba50f476ded;
 Mon, 21 Apr 2025 09:38:38 +0200 (CEST)
Received: from BN9PR03CA0234.namprd03.prod.outlook.com (2603:10b6:408:f8::29)
 by CY8PR12MB7362.namprd12.prod.outlook.com (2603:10b6:930:52::5) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.33; Mon, 21 Apr
 2025 07:38:35 +0000
Received: from BN2PEPF000055DF.namprd21.prod.outlook.com
 (2603:10b6:408:f8:cafe::d5) by BN9PR03CA0234.outlook.office365.com
 (2603:10b6:408:f8::29) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.34 via Frontend Transport; Mon,
 21 Apr 2025 07:38:35 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BN2PEPF000055DF.mail.protection.outlook.com (10.167.245.9) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8678.4 via Frontend Transport; Mon, 21 Apr 2025 07:38:34 +0000
Received: from penny-System-Product-Name.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; Mon, 21 Apr 2025 02:38:32 -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: a340b8fe-1e83-11f0-9eb0-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=YtT4ELWSd9huXwW75KTVR22+C9q+hRzjGCeuP0PPXbMSrUz4894wXOosK4OM0SXP6gscuH7t2EWDkl0s1h+SZ12C4UBciHiouH5WZtt/whojNyBUT8ZL9i0lDaDAR9vj4O5xu1mzmFjrDXh6pWJw7xJFRreeCc22Ik4dhwNcx49SQ6P7Sjf9M0pyetslrTPal2Jo4Fu6r9vibHgD69FAhg71wRCfneK+KguZ0VODzR1c2Czu7z927/7tJUieobxwoVGSF2fQtB5XQbNaqFrVnGszw8I1bU2+kbp9CGIm1uI8HMJeRBjrNP0exn5CnUieWwIrEOBpGppKFUqQAfc8LQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=N0coEvbNIv0VbAslUDsH+eGX4i+dWXPk3ASTSHLtwxU=;
 b=ZMvjQzFTa+3anupjl4L0gmJdS5xib1cdPvTppcYkVZgwYe9YTea62ImPgfred1P6xHvH/rBPuXduageU2PkBoDmIcfWtufW7WfJ8sbQyIVw7JnG5GjwhbVnLqw9fG5PujfRTnOpx61+FRVKsof1m3oWp7D4saIoNtDDodvjW/vV0lu2tGRJw7qLBuU/1WN/Ky8XKnH5Buih5rmHPpC4fF5IsV4bWp6zHtF2Dz9doKWRybpnfNGzwPmw8XSRX+Ff0yfgUVBhY3VgUNOtieCQPqONUfNnJQ4mM3h/+sIGx9tjZCznQAXokPH7hnWoU4iiMKgCsIGHuw4zgfVxG0o9a0Q==
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=N0coEvbNIv0VbAslUDsH+eGX4i+dWXPk3ASTSHLtwxU=;
 b=A1adtXLTpQoco4iOPG7qbS96gGlV6V7slmSlqFh6ZU+KN4uoGg81Wut+AmgWB5wP3ZhEcn1h/WPTTuiPkooj0+nqyRpHLeiks3vQMRKKlxylaikCflSAH9UMeNywZWBNIfjeqc5HQSknv9XOkdIsGUy6JMA1dOUBh5o3yhB53Os=
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: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, "Julien
 Grall" <julien@xen.org>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v3 17/20] xen/sysctl: make CONFIG_COVERAGE depend on CONFIG_SYSCTL
Date: Mon, 21 Apr 2025 15:37:20 +0800
Message-ID: <20250421073723.3863060-18-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250421073723.3863060-1-Penny.Zheng@amd.com>
References: <20250421073723.3863060-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: BN2PEPF000055DF:EE_|CY8PR12MB7362:EE_
X-MS-Office365-Filtering-Correlation-Id: bae1f005-c9db-4fc0-48fa-08dd80a785ca
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|376014|82310400026|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?ZIRb7Zw8xY2tI+P34Zf+sblaMMMqUv2Zy3FgaCT6PoyhuZDj3HRocMRDhZ7d?=
 =?us-ascii?Q?18nHDVNwA6wUFwihoCeSE6TWsDAWiBI6MLCrVMoYrQXg5Oc4Wy89LKk0nlJN?=
 =?us-ascii?Q?dX0PFUgB2Lunr6htLmXnTiLrQWxBOvMGYaIfnhYP8KbJy0KrYuu8eq+wPYaM?=
 =?us-ascii?Q?6jN3lGX0Yn1PMSqVbT/YruA6a0yI3m53pQvWL0sM3Ejg9b5R53yqaaZlRYyk?=
 =?us-ascii?Q?m+8cbDFUA4gmPviRvQUXgPvECqC6c0BCmmYGZcMxY6qg/ykqyQgcZKoTNiff?=
 =?us-ascii?Q?XnTTg8u2toDarb5g0EyiwTUhA9LlzltSGJVKE+fITthS2Xo81N6IKE2dcEUY?=
 =?us-ascii?Q?Bf2aPOdb9r5O47PCFRZFfrlly218kjWsuagv+WYRYrwi14c/t4O7AweghKPv?=
 =?us-ascii?Q?jqTC1zcsR5VWB3QdKd2kC33kAbKAPOpP6FUVzDWR1++gtDM5nchONJFEFQ0Y?=
 =?us-ascii?Q?sJ/E/78/yzw3lbrNY2QCHx00sZjDXIHEl3SwgzPHxh0Wvt5q/Vh4GuF4o//c?=
 =?us-ascii?Q?lsvxM8TW+parSztcIz+TZs08QzuV+62KZYWH4a0UgUxiPRogCmtXomfcY7n/?=
 =?us-ascii?Q?psKtT5HYeND5no6CT9Pq78owJRxSBA1+z5xAPwH9qybE/S1C1pb8e43b/s9m?=
 =?us-ascii?Q?LzZXC3h0pI454vOIbc+XRS0tCn2Uv5/j3OogPBBmJ2Urd22X4numkEDXTxrM?=
 =?us-ascii?Q?HegYQXJzhqnR0oKgsITe1Og6sPuBblg4jFByhZH9kmV302QoB2S8LWAHMr+R?=
 =?us-ascii?Q?r2fHLmS5Dqa0QBpEoS9Np+Fj7XG0IZ80fv4KDiIk8uVBvnfJZINx+sLj8d8a?=
 =?us-ascii?Q?5bqSjT68zG9trLpZc/HTzSK4lsJxXebqnQpOuSZTDRRBJOU1RV2sjJG84CwU?=
 =?us-ascii?Q?+2Ccww4ZzSNxuj/tcHimFVhdLqcKQLE9iHyX7qtEtYhum5So7tTEN4khD0Nq?=
 =?us-ascii?Q?Cdt4ECP15KMBp+oL6QLoQ/dKFSPkZoRX4p+6VK+MgrrTjXAkVF2Xs6OYDSDg?=
 =?us-ascii?Q?xPjVCAEv41953A7aRHtNZPKMlVVd62pt9UNpdTAgGmUyaZ1aiSWsba4Nnwf7?=
 =?us-ascii?Q?2ajBkhiQ6hCdnn98y9ybV7SLrn0Y5ptLh4S+M/T7QPZnNwbQlBZUmJRxH3cd?=
 =?us-ascii?Q?B761yolIG6h6sGL3bC/JElB/gDEO1jnU6XToEtt5/xDivlY2edLL4YVWFk/j?=
 =?us-ascii?Q?GsH6j4H2ysuoRNycBF3LddNor3L/aqrGS6X93ei3NHmFwXWda0NWpYSxBinS?=
 =?us-ascii?Q?6TWoTBHRVDeKYumDJjFjB1KmHxTbeqZgvvz6T3597m71M6Ohdsyu6/LjBUwF?=
 =?us-ascii?Q?XahHkkNon4AWvXVNKebMcU9+/JmYmEnBw4esYxEwZxObMPifb96fVDKHibO6?=
 =?us-ascii?Q?PDfjIv9Psreq3A3OyjZ0nT63Tl+ZlKStA38znon9OQ9PuFbF3ToTkOgJSIfl?=
 =?us-ascii?Q?Z1IYSgeKnoBr5yPG4GiraX2vjvLeiGqxzZ6psZ/kbUfcSlWuWHNSRmXZx2Sz?=
 =?us-ascii?Q?HzdDIVduUpH/tnvfjZX/Pt9DNOjdi+drVHJC?=
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: 21 Apr 2025 07:38:34.8574
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: bae1f005-c9db-4fc0-48fa-08dd80a785ca
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:
	BN2PEPF000055DF.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR12MB7362

All coverage-related op shall be wrapped around with CONFIG_SYSCTL,
so this commit makes CONFIG_COVERAGE depend on CONFIG_SYSCTL.

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
---
v1 -> v2:
- commit message refactor
---
 xen/Kconfig.debug | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/Kconfig.debug b/xen/Kconfig.debug
index f7cc5ffaab..84d26b3f46 100644
--- a/xen/Kconfig.debug
+++ b/xen/Kconfig.debug
@@ -37,7 +37,7 @@ config SELF_TESTS
 
 config COVERAGE
 	bool "Code coverage support"
-	depends on !LIVEPATCH
+	depends on !LIVEPATCH && SYSCTL
 	select SUPPRESS_DUPLICATE_SYMBOL_WARNINGS if !ENFORCE_UNIQUE_SYMBOLS
 	help
 	  Enable code coverage support.
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Apr 21 07:41:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 21 Apr 2025 07:41:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.961168.1352798 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6lmp-0006ME-DB; Mon, 21 Apr 2025 07:41:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 961168.1352798; Mon, 21 Apr 2025 07:41: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 1u6lmp-0006L9-89; Mon, 21 Apr 2025 07:41:51 +0000
Received: by outflank-mailman (input) for mailman id 961168;
 Mon, 21 Apr 2025 07:41: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=Kh51=XH=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1u6ljd-0007m8-8a
 for xen-devel@lists.xenproject.org; Mon, 21 Apr 2025 07:38:33 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on2061a.outbound.protection.outlook.com
 [2a01:111:f403:2415::61a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9bd363bf-1e83-11f0-9eb0-5ba50f476ded;
 Mon, 21 Apr 2025 09:38:26 +0200 (CEST)
Received: from BN9PR03CA0126.namprd03.prod.outlook.com (2603:10b6:408:fe::11)
 by CY3PR12MB9554.namprd12.prod.outlook.com (2603:10b6:930:109::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.35; Mon, 21 Apr
 2025 07:38:21 +0000
Received: from BN2PEPF000055E0.namprd21.prod.outlook.com
 (2603:10b6:408:fe:cafe::7b) by BN9PR03CA0126.outlook.office365.com
 (2603:10b6:408:fe::11) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.35 via Frontend Transport; Mon,
 21 Apr 2025 07:38:21 +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.8678.4 via Frontend Transport; Mon, 21 Apr 2025 07:38:21 +0000
Received: from penny-System-Product-Name.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; Mon, 21 Apr 2025 02:38:18 -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: 9bd363bf-1e83-11f0-9eb0-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=vDksez5OTh0pz65AQA4OHTzlX8+W4S5hgjzjik8KCOxxHPK4qoY17WHvhD6J3bbsq2M6OOkxuKy8kFTloXVZvFQSaZ27aZR2NxWrXfSNs6DgvslqC28XKR0a8YQfapUE89CRcbA0WGdpYnh+3vPdc4Vfv+2HXRXSC7FbNydFUWLQxyJ1LEQ/9FtamYtwBhPbBOnR/EujyHMIRC/Z99uEIQp0/Y59YnoaADfxrE4mLHcI7M778lXrJPuzKovJAli3YR3NqRe64H6+fsoapuLxmsGJ+ZUTGj4w9remxvCjSOnFU2/Evl6ZS7a6YeBiuolHyEPUf5H53dAQJsjhfrulbA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=QQXcalj/v4jEH1lTcqQu1NCuh3EhcbUREvGNsTW+ECE=;
 b=GUPYiKt+CPeQa+NY/Z8urZCAH5UIgiUzPI8T0Gm3R7AwBzoPaX3S/wU5f5eaNRSLf517HgcLQaEtoWKDkQ6ea6Wvbal2SHIZnnHRpuLza6Cj94yk+n88NMGd87JlAEJWkWpIuFGu+WWlZbrKMfDw9OpP6mOAUjjz5ILaGiktFRxJurH28fD6nHht6bs+VIO8K8Ogssbb6htWdd6NlFqcFPqyAk/z/ZDHvFOtBvdlgmONqRi3285sY93mJFyNqjyCHTHNsAPS3Hp8YbObsn3iZyc6Iau+k+CeYziBjusWp65cuR1a1DY4+aYiNK8rRwd31lfIuLw1dsbOGiEhx/WaLw==
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=QQXcalj/v4jEH1lTcqQu1NCuh3EhcbUREvGNsTW+ECE=;
 b=1VaR4qp4aww5jnE7crnFVeVgOiC875b8y0OrN9CMarRtxF1eKBA0iTIN8K1jm/q5gqOR/oPfug6J6GhusAE1ahAj7dzeUZVK/S/brCncda1XfSEGkq2qbSY0OjfaqvshS9CrOuD0YjQmAa1mydPD4V6snXbHLWn8tfGaQwGfE0c=
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: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.com>, Dario Faggioli
	<dfaggioli@suse.com>, Juergen Gross <jgross@suse.com>, George Dunlap
	<gwd@xenproject.org>, Andrew Cooper <andrew.cooper3@citrix.com>, "Anthony
 PERARD" <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>,
	"Jan Beulich" <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, "Stefano
 Stabellini" <sstabellini@kernel.org>
Subject: [PATCH v3 13/20] xen/sysctl: wrap around XEN_SYSCTL_cpupool_op
Date: Mon, 21 Apr 2025 15:37:16 +0800
Message-ID: <20250421073723.3863060-14-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250421073723.3863060-1-Penny.Zheng@amd.com>
References: <20250421073723.3863060-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: BN2PEPF000055E0:EE_|CY3PR12MB9554:EE_
X-MS-Office365-Filtering-Correlation-Id: efda5a8b-4ecd-4468-4781-08dd80a77dcb
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|376014|7416014|1800799024|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?3JKdo3qGvt3l4ag9jd2AByD/zb0aQh0ZFRiqRE1SfguxtPXAp03aCYZe8RN6?=
 =?us-ascii?Q?yveb/lL/xYfyPVxhpxatlsHo52w9jX9H2LfGL1xVwOjmpez+H1N2PzH6CR5W?=
 =?us-ascii?Q?slhuDClmkjSp6U16SoUOBOLH9U/xBh8ozKkihwg7hSx3XtJBmHirXLwxjSL9?=
 =?us-ascii?Q?RM6c+fiv6g7m2nSBJQPtPSz1nPmurexOy7Ghiu08uRNci99+5/USKGyxLSpI?=
 =?us-ascii?Q?3fIgU3GBVPedrGHL87T+JPvLj9yYmljeHBxBkYiup/MGPSN8nxUVv4NfjGVD?=
 =?us-ascii?Q?2gnera8v2Lcm/my2uZak0B1VfWhy5IegBu0VcOHBOg8l5ZS/02IOkLP1xg+h?=
 =?us-ascii?Q?DHFCP2yiOHy1bXdz14OjHPsSqFLKq4PolyP47EdmOGsYGji9J4uF49lEY6NM?=
 =?us-ascii?Q?sbAvyEQxFmf2KjWbf0uQjwMdkuhDJGGwLGsQv+IxIpF35na+juBCPUG7iLaH?=
 =?us-ascii?Q?jPEXV5P5xjnxBiIlI5pPDPgZ5v/CNfikY7GRc9mda7bIu2Eq+tFqULrXKOXG?=
 =?us-ascii?Q?8EsVRPhO+AsyLOl4ccGJYjPk71TOxiNd5XJd/7kWCsLldl++fO3hJVaWABrl?=
 =?us-ascii?Q?TcH92Bz6MuyrW0qi6MNNHyhJM+3bYnG9+rl7QAUkj5dUMMfyyC2JzZ+35p++?=
 =?us-ascii?Q?L3ItiYEsdmmxNQ4spmcZTrxWcgpCNZIEYPqXE+RtdHJs6+re2iOkdUHH1RIs?=
 =?us-ascii?Q?d+oMEuhC0BGY6Xye33RzJReXiyCufIkdPCxUACibi8DZjBFA261bJa7RvGHm?=
 =?us-ascii?Q?N//5feygHe6+M/e9jrpPA6H2D1RyHFA4+rMXT09KCT2YKVBryQ+IekHvNyY2?=
 =?us-ascii?Q?3PsXNWrcCBhjSz+kTEhtMIDJp7Tw9eVEHe53H55YyhZwEXWA7vV9MZFlhwAm?=
 =?us-ascii?Q?Zjfd6RTp3pBOXPth/SBSumN+YMH7mf+PNOy1ShFlbpOp/pBJOl+9TS7kt1fz?=
 =?us-ascii?Q?S9Ldhlf+hc2ZAa83yUhj4B3cBxsJ8SnDkR7/Cb22jUcPCShkOXuwOnnCKpzG?=
 =?us-ascii?Q?r6+ChsUXEditTX946GGnb32KRcOFBsUq6Lo4V7Upl40zsPpnHen3EnyA2KSH?=
 =?us-ascii?Q?hPfclQLbSNKzuAwx1yWBN+dUi68jS5Ha+NYY5G292pkuBmRhHszQeOVGMt9N?=
 =?us-ascii?Q?WsBDN3ZGj+iPdeK12LBV5yQlWGAcHKvfN2D5qBpc1e+01ZQ0bwC4rYkufsJI?=
 =?us-ascii?Q?y9Kqs2yNg6wLzTj2C4PP0JeDE6xMqeURa4bHtHju4VXnZV+aA3kt2Ki6oaul?=
 =?us-ascii?Q?zSX4MdThqEt1UoZ0MH18K40E7zp8UGTUrYzVKellE0IkU7ltUBhYKTvFbjsW?=
 =?us-ascii?Q?Qg/abXMY9hLp6xR3dSoCRihp4LNoocgAazRhK0QTv6/4IO5R6QInOF27zJ36?=
 =?us-ascii?Q?P1EsQoiiRoF7QpS0aQxEKqw7OzS5Ef3coMv51RjEZ1dzSXM4ad4D6Ut6XWBR?=
 =?us-ascii?Q?WgZnQ2fMZWLYugB6frF/4xJtCYk8d/iIDgkg0L8jtk0a+WMMQDSLQmPiazlB?=
 =?us-ascii?Q?WKxtR4LJM/37i/ybZNFm4vDVQBqoqfwtOALj?=
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)(376014)(7416014)(1800799024)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Apr 2025 07:38:21.4418
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: efda5a8b-4ecd-4468-4781-08dd80a77dcb
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: CY3PR12MB9554

Function cpupool_do_sysctl is designed for doing cpupool related sysctl
operations, and shall be wrapped.

The following static functions are only called by cpupool_do_sysctl(), then
shall be wrapped too:
- cpupool_get_next_by_id
- cpupool_destroy
- cpupool_unassign_cpu_helper
- cpupool_unassign_cpu

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
---
v1 -> v2:
- no need to wrap declaration
- add transient #ifdef in sysctl.c for correct compilation
---
v2 -> v3
- move #endif up ahead of the blank line
---
 xen/common/sched/cpupool.c | 8 ++++++++
 xen/common/sysctl.c        | 2 +-
 2 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/xen/common/sched/cpupool.c b/xen/common/sched/cpupool.c
index 3d02c7b706..f5459c2779 100644
--- a/xen/common/sched/cpupool.c
+++ b/xen/common/sched/cpupool.c
@@ -241,10 +241,12 @@ struct cpupool *cpupool_get_by_id(unsigned int poolid)
     return __cpupool_get_by_id(poolid, true);
 }
 
+#ifdef CONFIG_SYSCTL
 static struct cpupool *cpupool_get_next_by_id(unsigned int poolid)
 {
     return __cpupool_get_by_id(poolid, false);
 }
+#endif /* CONFIG_SYSCTL */
 
 void cpupool_put(struct cpupool *pool)
 {
@@ -352,6 +354,7 @@ static struct cpupool *cpupool_create(unsigned int poolid,
 
     return ERR_PTR(ret);
 }
+#ifdef CONFIG_SYSCTL
 /*
  * destroys the given cpupool
  * returns 0 on success, 1 else
@@ -379,6 +382,7 @@ static int cpupool_destroy(struct cpupool *c)
     debugtrace_printk("cpupool_destroy(pool=%u)\n", c->cpupool_id);
     return 0;
 }
+#endif /* CONFIG_SYSCTL */
 
 /*
  * Move domain to another cpupool
@@ -568,6 +572,7 @@ static int cpupool_unassign_cpu_start(struct cpupool *c, unsigned int cpu)
     return ret;
 }
 
+#ifdef CONFIG_SYSCTL
 static long cf_check cpupool_unassign_cpu_helper(void *info)
 {
     struct cpupool *c = info;
@@ -633,6 +638,7 @@ static int cpupool_unassign_cpu(struct cpupool *c, unsigned int cpu)
     }
     return continue_hypercall_on_cpu(work_cpu, cpupool_unassign_cpu_helper, c);
 }
+#endif /* CONFIG_SYSCTL */
 
 /*
  * add a new domain to a cpupool
@@ -810,6 +816,7 @@ static void cpupool_cpu_remove_forced(unsigned int cpu)
     rcu_read_unlock(&sched_res_rculock);
 }
 
+#ifdef CONFIG_SYSCTL
 /*
  * do cpupool related sysctl operations
  */
@@ -975,6 +982,7 @@ int cpupool_do_sysctl(struct xen_sysctl_cpupool_op *op)
 
     return ret;
 }
+#endif /* CONFIG_SYSCTL */
 
 unsigned int cpupool_get_id(const struct domain *d)
 {
diff --git a/xen/common/sysctl.c b/xen/common/sysctl.c
index 504e3516c3..767e0b7389 100644
--- a/xen/common/sysctl.c
+++ b/xen/common/sysctl.c
@@ -252,11 +252,11 @@ long do_sysctl(XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl)
         copyback = 0;
     }
     break;
-#endif /* CONFIG_SYSCTL */
 
     case XEN_SYSCTL_cpupool_op:
         ret = cpupool_do_sysctl(&op->u.cpupool_op);
         break;
+#endif /* CONFIG_SYSCTL */
 
     case XEN_SYSCTL_scheduler_op:
         ret = sched_adjust_global(&op->u.scheduler_op);
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Apr 21 17:54:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 21 Apr 2025 17:54:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.961379.1352813 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6vLR-0007wy-W6; Mon, 21 Apr 2025 17:54:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 961379.1352813; Mon, 21 Apr 2025 17: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 1u6vLR-0007wq-S9; Mon, 21 Apr 2025 17:54:13 +0000
Received: by outflank-mailman (input) for mailman id 961379;
 Mon, 21 Apr 2025 17:54:12 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=k4Vt=XH=g.ecc.u-tokyo.ac.jp=ishiir@srs-se1.protection.inumbo.net>)
 id 1u6vLP-0007wk-DR
 for xen-devel@lists.xenproject.org; Mon, 21 Apr 2025 17:54:12 +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 9b836f0b-1ed9-11f0-9ffb-bf95429c2676;
 Mon, 21 Apr 2025 19:54:01 +0200 (CEST)
Received: by mail-ed1-x52e.google.com with SMTP id
 4fb4d7f45d1cf-5e5deb6482cso9386928a12.1
 for <xen-devel@lists.xenproject.org>; Mon, 21 Apr 2025 10:54:01 -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: 9b836f0b-1ed9-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=g.ecc.u-tokyo.ac.jp; s=google; t=1745258041; x=1745862841; darn=lists.xenproject.org;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:from:to:cc:subject:date:message-id:reply-to;
        bh=rgpbcd0UHgkLVgzrjd4scDmmUyBha2wUHEHGK7CtbMs=;
        b=F8Z7dcDi0yHuocHtVnUnzeRDeBpRkxCgR81vrOX6utFTUHG4RhiG8hunfi2oc833eM
         Tt/50BXbyS2hoOsaHjT6fHN81awD+YgGs7jMvfLAkWh/PzcsaOSE6069bjfht/RVfofI
         NjUJz/I7FLiNi75axi1yABq5R1aBBK9GJUnx4sVMW4i+Dz1V2HWkeCARJ3An8RA8WG6u
         NiFyRZjvAkdxtW/Q+MQ7AUdEfPrTxjuHUPrFyd89ThZFRXSiTqn5LsEBkTF6zPHotiln
         /dKEC52kpRPD6g88HeQg6SCVnKjG3aDHAiTkturkEgk0vexHb99L8ZY5+WTsjFzCHZEO
         5xrg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745258041; x=1745862841;
        h=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=rgpbcd0UHgkLVgzrjd4scDmmUyBha2wUHEHGK7CtbMs=;
        b=W4Z49ywlJ4TqH2rbI/zxYGpclNsFjBK8TI068IG7umTLWFdiLVG/sAJ35NgaYP6h+Z
         FOMuOaTyplKroBPboh/MVxMHwLrnpzes1+frjjccG8yDC9jbvM+JrbTZZm++MXTlGQEK
         a1wZ+5vWlUmyPgzL6aZ+Ahh1cv9RYYUxgHoj8AaXrgJDsBVDE+eVRo8DEdWq9nS1/Rlp
         WOXqBYVTcjvt2tLEdYqXHdJwCJWi7Co/dG8SaEVjLQ62Bt9RXCDmYYnBm6JbpCQKWXL4
         qMogLzZGgl50mHc2tmUEjYjsb0F5i7HjMeUTDG3d4arBTRw6LqpYJsMHsGmjSEjovFkp
         Qydg==
X-Gm-Message-State: AOJu0YwHHGwJKnRYzZWU3GiQCyWITje3WIWTbaeEBNt4pLd1NIRGXSRR
	bFpAVazFAXVMbu04lD3LoMtr/n7GJ+3xq0PVck60IxM/RwGYpei7Fh4h0b6OXUsmsla4H5WBDhg
	7g57IUpLEkagBunzoO+QuhISgkGhSltExSzRyFpaCST04yrIRYLG+ww==
X-Gm-Gg: ASbGnctXTzOq6hzLiYw8HiGZkpReMbnOAyr3fdApLoyD5x+XXIg5KVFgrBth3bwmv7k
	8bDDDvS2eBHBzG8JnS4nyQQkjAPJJ4OaH9annj/LzwMg/RI15oAKRWrK3XqQ/odDd1bcfNn3omX
	3D/ryYa86MerEhuLojfFRTtA7To+5pvsAxn/C6fjIK6ooe1FQ240UaquY=
X-Google-Smtp-Source: AGHT+IHWqR+rHse8iF2D1/VGGzwEcgksMXHwtL61c4ERMF1j2/9r+Wwtnlcx8bCbXZWSxOaTmj7vgdjhGQ9XYUKbGTQ=
X-Received: by 2002:a17:907:1b16:b0:abf:6a8d:76b8 with SMTP id
 a640c23a62f3a-acb6ec517bamr1169416566b.11.1745258040879; Mon, 21 Apr 2025
 10:54:00 -0700 (PDT)
MIME-Version: 1.0
References: <CA+aCS-Ha4jSYFfxhOwMGiGJPdCOtgBJLt=3Q=v9dfp6SQJys4w@mail.gmail.com>
 <1415ddc9-81f3-4d50-b735-7e44a7f656d5@citrix.com> <CA+aCS-H2wkiVOMvCS7cCPojduXdStMYzHn7SxintNyg0vS_Bhg@mail.gmail.com>
In-Reply-To: <CA+aCS-H2wkiVOMvCS7cCPojduXdStMYzHn7SxintNyg0vS_Bhg@mail.gmail.com>
From: REIMA ISHII <ishiir@g.ecc.u-tokyo.ac.jp>
Date: Tue, 22 Apr 2025 02:53:49 +0900
X-Gm-Features: ATxdqUHw7hh_Tf_W6oHItl9JyxFMR4IMXupq2jtJ5GPAIo9rx5-AuYWMmxym1zU
Message-ID: <CA+aCS-E0WtbnSM7FuPL0jruXLjdFaZOa9aS0gyy_x5JDRWh50A@mail.gmail.com>
Subject: Re: [BUG] Nested Virtualization Bug on x86-64 AMD CPU
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: xen-devel@lists.xenproject.org, 
	Takahiro Shinagawa <shina@ecc.u-tokyo.ac.jp>
Content-Type: multipart/alternative; boundary="00000000000091ce4206334d8dec"

--00000000000091ce4206334d8dec
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

I am writing to follow up on the bug report I sent, regarding a BUG()
triggered in Xen when performing a nested VMRUN with CR0.PG=3D0 in Long
Mode. The issue was discussed with Andrew Cooper at that time, and I
would like to check if there have been any updates or plans for
addressing this issue.

To briefly recap:
- The problem occurs when an L1 hypervisor, while in 64-bit mode,
executes VMRUN with CR0.PG=3D0 in VMCB12, targeting a 64-bit L2 guest.
- Instead of raising VMEXIT_INVALID, the system encounters a BUG() at
`nsvm_vmcb_guest_intercepts_exitcode`.
- VMEXIT reason observed was 0x402 (AVIC_NOACCEL), although Xen does not
support AVIC.

Andrew pointed out that this could indicate either a missing validity
check (as the state LMA=3D1 && PG=3D0 is invalid) or possible memory
corruption.

Given that this issue could potentially allow a guest VM to trigger a
hypervisor panic, I believe it might be worth formally recognizing and
addressing.
May I kindly ask if this has been acknowledged as a bug internally, or
if there are any plans to handle this case safely (e.g., raising
VMEXIT_INVALID instead of BUG()) in future Xen releases?

Thank you very much for your time


On Wed, Dec 6, 2023 at 12:05=E2=80=AFPM Reima ISHII <ishiir@g.ecc.u-tokyo.a=
c.jp>
wrote:

> Thank you for your prompt response.
>
> On Tue, Dec 5, 2023 at 11:43=E2=80=AFPM Andrew Cooper <andrew.cooper3@cit=
rix.com>
> wrote:
> > Who is still in 64-bit mode ?
> >
> > It is legal for a 64-bit L1 to VMRUN into a 32-bit L2 with PG=3D0.
> >
> > But I'm guessing that you mean L2 is also 64-bit, and we're clearing PG=
,
> > thus creating an illegal state (LMA=3D1 && PG=3D0) in VMCB12.
> >
> > And yes, in that case (virtual) VMRUN at L1 ought to fail with
> > VMEXIT_INVALID.
>
> Yes, you are correct in your understanding. This issue is triggered by
> VMRUN execution to 64-bit L2 guests, when CR0.PG is cleared in VMCB12.
> Contrary to the expected behavior where a VMRUN at L1 should fail with
> VMEXIT_INVALID, the VMRUN does not fail but instead, the system
> encounters a BUG().
>
> > As an incidental observation, that function is particularly absurd and
> > the two switches should be merged.
> >
> > VMExit reason 0x402 is AVIC_NOACCEL and Xen has no support for AVIC in
> > the slightest right now.  i.e. Xen shouldn't have AVIC active in the
> > VMCB, and should never any AVIC related VMExits.
> >
> > It is possible that we've got memory corruption, and have accidentally
> > activated AVIC in the VMCB.
>
> The idea of potential memory corruption activating AVIC in the VMCB is
> certainly an interesting perspective. While I'm not sure how exactly
> such memory corruption could occur, the suggestion does provide a
> compelling explanation for the VMExit reason 0x402 (AVIC_NOACCEL),
> particularly considering Xen's current lack of AVIC support.
>
> > But, is this by any chance all running nested under KVM in your fuzzer?
>
> No, KVM was not used. The issue was observed on a Xen hypervisor's
> domU HVM running directly on the hardware. Within the guest HVM, a
> simple custom hypervisor was utilized.
>
> --
> Graduate School of Information Science and Technology, The University of
> Tokyo
> Reima Ishii
> ishiir@g.ecc.u-tokyo.ac.jp
>


--=20
=E6=9D=B1=E4=BA=AC=E5=A4=A7=E5=AD=A6=E5=A4=A7=E5=AD=A6=E9=99=A2 =E6=83=85=
=E5=A0=B1=E7=90=86=E5=B7=A5=E5=AD=A6=E7=B3=BB=E7=A0=94=E7=A9=B6=E7=A7=91 =
=E3=82=B7=E3=82=B9=E3=83=86=E3=83=A0=E6=83=85=E5=A0=B1=E5=AD=A6=E5=B0=82=E6=
=94=BB =E4=BF=AE=E5=A3=AB2=E5=B9=B4
=E7=9F=B3=E4=BA=95=E7=8E=B2=E7=9C=9F
ishiir@g.ecc.u-tokyo.ac.jp

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

<div dir=3D"ltr">I am writing to follow up on the bug report I sent, regard=
ing a BUG()<br>triggered in Xen when performing a nested VMRUN with <a href=
=3D"http://CR0.PG">CR0.PG</a>=3D0 in Long<br>Mode. The issue was discussed =
with Andrew Cooper at that time, and I<br>would like to check if there have=
 been any updates or plans for<br>addressing this issue.<br><br>To briefly =
recap:<br>- The problem occurs when an L1 hypervisor, while in 64-bit mode,=
<br>executes VMRUN with <a href=3D"http://CR0.PG">CR0.PG</a>=3D0 in VMCB12,=
 targeting a 64-bit L2 guest.<br>- Instead of raising VMEXIT_INVALID, the s=
ystem encounters a BUG() at<br>`nsvm_vmcb_guest_intercepts_exitcode`.<br>- =
VMEXIT reason observed was 0x402 (AVIC_NOACCEL), although Xen does not<br>s=
upport AVIC.<br><br>Andrew pointed out that this could indicate either a mi=
ssing validity<br>check (as the state LMA=3D1 &amp;&amp; PG=3D0 is invalid)=
 or possible memory<br>corruption.<br><br>Given that this issue could poten=
tially allow a guest VM to trigger a<br>hypervisor panic, I believe it migh=
t be worth formally recognizing and<br>addressing.<br>May I kindly ask if t=
his has been acknowledged as a bug internally, or<br>if there are any plans=
 to handle this case safely (e.g., raising<br>VMEXIT_INVALID instead of BUG=
()) in future Xen releases?<br><br>Thank you very much for your time</div><=
br><br><div class=3D"gmail_quote gmail_quote_container"><div dir=3D"ltr" cl=
ass=3D"gmail_attr">On Wed, Dec 6, 2023 at 12:05=E2=80=AFPM Reima ISHII &lt;=
<a href=3D"mailto:ishiir@g.ecc.u-tokyo.ac.jp">ishiir@g.ecc.u-tokyo.ac.jp</a=
>&gt; wrote:<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0px=
 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Tha=
nk you for your prompt response.<br>
<br>
On Tue, Dec 5, 2023 at 11:43=E2=80=AFPM Andrew Cooper &lt;<a href=3D"mailto=
:andrew.cooper3@citrix.com" target=3D"_blank">andrew.cooper3@citrix.com</a>=
&gt; wrote:<br>
&gt; Who is still in 64-bit mode ?<br>
&gt;<br>
&gt; It is legal for a 64-bit L1 to VMRUN into a 32-bit L2 with PG=3D0.<br>
&gt;<br>
&gt; But I&#39;m guessing that you mean L2 is also 64-bit, and we&#39;re cl=
earing PG,<br>
&gt; thus creating an illegal state (LMA=3D1 &amp;&amp; PG=3D0) in VMCB12.<=
br>
&gt;<br>
&gt; And yes, in that case (virtual) VMRUN at L1 ought to fail with<br>
&gt; VMEXIT_INVALID.<br>
<br>
Yes, you are correct in your understanding. This issue is triggered by<br>
VMRUN execution to 64-bit L2 guests, when <a href=3D"http://CR0.PG" rel=3D"=
noreferrer" target=3D"_blank">CR0.PG</a> is cleared in VMCB12.<br>
Contrary to the expected behavior where a VMRUN at L1 should fail with<br>
VMEXIT_INVALID, the VMRUN does not fail but instead, the system<br>
encounters a BUG().<br>
<br>
&gt; As an incidental observation, that function is particularly absurd and=
<br>
&gt; the two switches should be merged.<br>
&gt;<br>
&gt; VMExit reason 0x402 is AVIC_NOACCEL and Xen has no support for AVIC in=
<br>
&gt; the slightest right now.=C2=A0 i.e. Xen shouldn&#39;t have AVIC active=
 in the<br>
&gt; VMCB, and should never any AVIC related VMExits.<br>
&gt;<br>
&gt; It is possible that we&#39;ve got memory corruption, and have accident=
ally<br>
&gt; activated AVIC in the VMCB.<br>
<br>
The idea of potential memory corruption activating AVIC in the VMCB is<br>
certainly an interesting perspective. While I&#39;m not sure how exactly<br=
>
such memory corruption could occur, the suggestion does provide a<br>
compelling explanation for the VMExit reason 0x402 (AVIC_NOACCEL),<br>
particularly considering Xen&#39;s current lack of AVIC support.<br>
<br>
&gt; But, is this by any chance all running nested under KVM in your fuzzer=
?<br>
<br>
No, KVM was not used. The issue was observed on a Xen hypervisor&#39;s<br>
domU HVM running directly on the hardware. Within the guest HVM, a<br>
simple custom hypervisor was utilized.<br>
<br>
-- <br>
Graduate School of Information Science and Technology, The University of To=
kyo<br>
Reima Ishii<br>
<a href=3D"mailto:ishiir@g.ecc.u-tokyo.ac.jp" target=3D"_blank">ishiir@g.ec=
c.u-tokyo.ac.jp</a><br>
</blockquote></div><div><br clear=3D"all"></div><br><span class=3D"gmail_si=
gnature_prefix">-- </span><br><div dir=3D"ltr" class=3D"gmail_signature"><d=
iv dir=3D"ltr"><div>=E6=9D=B1=E4=BA=AC=E5=A4=A7=E5=AD=A6=E5=A4=A7=E5=AD=A6=
=E9=99=A2 =E6=83=85=E5=A0=B1=E7=90=86=E5=B7=A5=E5=AD=A6=E7=B3=BB=E7=A0=94=
=E7=A9=B6=E7=A7=91 =E3=82=B7=E3=82=B9=E3=83=86=E3=83=A0=E6=83=85=E5=A0=B1=
=E5=AD=A6=E5=B0=82=E6=94=BB =E4=BF=AE=E5=A3=AB2=E5=B9=B4</div><div>=E7=9F=
=B3=E4=BA=95=E7=8E=B2=E7=9C=9F</div><div><a href=3D"mailto:ishiir@g.ecc.u-t=
okyo.ac.jp" target=3D"_blank">ishiir@g.ecc.u-tokyo.ac.jp</a></div></div></d=
iv>

--00000000000091ce4206334d8dec--


From xen-devel-bounces@lists.xenproject.org Mon Apr 21 18:00:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 21 Apr 2025 18:00:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.961391.1352822 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6vRH-00016Q-JG; Mon, 21 Apr 2025 18:00:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 961391.1352822; Mon, 21 Apr 2025 18:00: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 1u6vRH-00016J-Gj; Mon, 21 Apr 2025 18:00:15 +0000
Received: by outflank-mailman (input) for mailman id 961391;
 Mon, 21 Apr 2025 18:00: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=k4Vt=XH=g.ecc.u-tokyo.ac.jp=ishiir@srs-se1.protection.inumbo.net>)
 id 1u6vRF-00016C-Ov
 for xen-devel@lists.xenproject.org; Mon, 21 Apr 2025 18:00:13 +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 771cb765-1eda-11f0-9eb0-5ba50f476ded;
 Mon, 21 Apr 2025 20:00:10 +0200 (CEST)
Received: by mail-ej1-x62b.google.com with SMTP id
 a640c23a62f3a-ac3b12e8518so725768366b.0
 for <xen-devel@lists.xenproject.org>; Mon, 21 Apr 2025 11:00: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: 771cb765-1eda-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=g.ecc.u-tokyo.ac.jp; s=google; t=1745258409; x=1745863209; 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=i4OyooXtAMJ7RI/dNOEQze6eeOWbdYtFYMmHJPS1Oqs=;
        b=LYsHmhpTtm9m3pBajSAwumCFVrH21B1yr5evv9c86ljQyMxGvKWcil7EEAjCXIlZun
         CO/WLoW7P3RcwMvKZG6LND+N92kV/NLvB2yV6p9wQaB38udb6mSvekyDtG7OnKYkOk+M
         NMUpilCUItJAjvJFdTOmRkfxdvhJ4n5DqAprXLSl6htDq1X+YRPviBPoKMKFOeVgO+mc
         WSoiOSyciypcsDXxL+r2j8YE4CdVIGNkky9w3JwgeH3SrcH/ye2ya+Ux+zyMDYKz+l63
         jYZ5SwAsH8myNDM1SM3uiC+CcG0TEqjsQLcJ3tc0ybhiPfSZMgnyTAwQ6n0e7qd2KeBh
         qG4A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745258409; x=1745863209;
        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=i4OyooXtAMJ7RI/dNOEQze6eeOWbdYtFYMmHJPS1Oqs=;
        b=oRAtnbYjDuyWaYlx73QLIxbz71R2AUv4urvmfnkfxpdgcEVopJzXepneuqS59HmYsR
         x8AmuGuM4owkTdQbY52rAsf8CO8aG6fWPJ0sdlMpulIWHs9s5aLWkA5WBCUt8TELjeSH
         qfG11JQlzKI83VOVHxZXK2ga/tAKXtuJyGaIRrSRRkZtlCrNZjVDjPwh1ab70wpvN3L5
         4IeS0KH0MURP+sIq3U6Stf/0g7gyWB11P8Xyf6ZdED/hyJFq5QOSbu24YdDcI1IzylOt
         FgIKnwGFqolT8nv3vX37TQ13nWl7G+F38bMnlxk6JvaXu8DW0wCsIibzvvMRzDgTXuLR
         cSEQ==
X-Gm-Message-State: AOJu0YwfjLs2XXqLimu0eQDftxYYek+q05kfbi8iGvX8Uu31M8A2oex/
	3JHovXpYvrUrp7GfHAFKrDeWN/7NEoGqwtbKHK0nvBCOKVjls9xpyiiMbCraFvy3wmg8vyljdRT
	Vx0lj7hO3Z/XaQ+iPU1Pck8972Dqoqld1Q04B6hLqUZFAYmBoeRlG+A==
X-Gm-Gg: ASbGncuxqgLU8jWr9QtllJrKmzxACtdNuYHaFt0niWr46WL9frYW4fDBitMI7HU5UfU
	G8EYwg6rat5H95C9y/dJsUSqkjaTKKm5VEr2HDXzSbDh72LmlhpFyY4P8FMVuMqmfS5z3VptERv
	tdAb62cxmEAuTRPHnwdeCo5LOca0yuTfYqYhc6JPQcFbseiynXAobXwCg=
X-Google-Smtp-Source: AGHT+IGBpFHdtBo42Gsb/jsTSeYUUYqNGICeBdtbW2oUo1UabPrAvkrZo9WRcq7uunm0KVe+4dj+ChDtKW0P5vvcqP4=
X-Received: by 2002:a17:906:c10b:b0:acb:6081:14ec with SMTP id
 a640c23a62f3a-acb74e8da8amr1117388366b.61.1745258409029; Mon, 21 Apr 2025
 11:00:09 -0700 (PDT)
MIME-Version: 1.0
References: <CA+aCS-EBA38cuP52_tKxomyiyEJani1+9d3HpqpT3BS2sRFECg@mail.gmail.com>
In-Reply-To: <CA+aCS-EBA38cuP52_tKxomyiyEJani1+9d3HpqpT3BS2sRFECg@mail.gmail.com>
From: REIMA ISHII <ishiir@g.ecc.u-tokyo.ac.jp>
Date: Tue, 22 Apr 2025 02:59:58 +0900
X-Gm-Features: ATxdqUHGLZnMGn7xcFOyjaeCTfLIqFAAOeB441VIDe90xGBEcPrXL9yWz1TB6d4
Message-ID: <CA+aCS-GcAnziL8njhzOo+MoN0w-GfcpG66m4URwO+O4iVEtWDA@mail.gmail.com>
Subject: Re: [BUG] Assertion failure with vmcb->_vintr.fields.vgif in nested SVM
To: xen-devel@lists.xenproject.org
Cc: Takahiro Shinagawa <shina@ecc.u-tokyo.ac.jp>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi,
I would like to follow up on the bug report I sent regarding a nested
SVM issue in Xen, where an invalid CR4 value in VMCB12 leads to an
assertion failure during VMRUN.

As I haven't seen any updates or feedback, I wanted to kindly check if
this issue has been acknowledged internally, or if there are any plans
for addressing this case in future releases.

Since this issue can potentially cause a hypervisor panic, I believe it
would be valuable to handle this safely.

Thank you for your time


On Mon, Nov 13, 2023 at 4:36=E2=80=AFPM Reima ISHII <ishiir@g.ecc.u-tokyo.a=
c.jp> wrote:
>
> Hi Xen Development Team,
>
> I am reporting a potential bug in the nested SVM implementation of the
> Xen hypervisor, observed under specific conditions in a DomU HVM
> guest.
>
> L1 on the DomU HVM guest sets a bit in CR4 of the VMCB12 save area
> that is not part of hvm_cr4_guest_valid_bits and performs a VMRUN.
> Subsequently, hvm_set_cr4 on the xen hypervisor fails and
> nsvm_vcpu_vmexit_inject causes an assertion failure.
>
> The environment is as follows:
> - Xen Version: Xen-4.18-unstable (commit
> 290f82375d828ef93f831a5ef028f1283aa1ea47)
> - Architecture: x86_64 (AMD)
>
> The potential impact on system stability and release builds remains
> uncertain, but this issue might pose a problem and merits attention
> for improved robustness in nested virtualization scenarios.
>
> (XEN) arch/x86/hvm/svm/nestedsvm.c:554:d1v0 hvm_set_cr4 failed, rc: 2
> (XEN) d1v0[nsvm_vmcb_prepare4vmrun]: CR4: invalid value 0x20020 (valid
> 0x750fff, rejected 0x20000)
> (XEN) arch/x86/hvm/svm/nestedsvm.c:658:d1v0 virtual vmcb invalid
> (XEN) arch/x86/hvm/svm/nestedsvm.c:729:d1v0 prepare4vmrun failed, ret =3D=
 1
> (XEN) arch/x86/hvm/svm/nestedsvm.c:768:d1v0 inject VMEXIT(INVALID)
> (XEN) Assertion 'vmcb->_vintr.fields.vgif =3D=3D 0' failed at
> arch/x86/hvm/svm/nestedsvm.c:799
> (XEN) Debugging connection not set up.
> (XEN) ----[ Xen-4.18-unstable  x86_64  debug=3Dy gcov=3Dy  Tainted:   C  =
  ]----
> (XEN) CPU:    2
> (XEN) RIP:    e008:[<ffff82d04029bef6>] nsvm_vcpu_switch+0x34e/0x502
> (XEN) RFLAGS: 0000000000010202   CONTEXT: hypervisor (d1v0)
> (XEN) rax: ffff830839677000   rbx: ffff83083967b000   rcx: 00000000000000=
30
> (XEN) rdx: 0000000000000000   rsi: 0000000000000003   rdi: ffff83083967b0=
00
> (XEN) rbp: ffff83083abb7ee8   rsp: ffff83083abb7ed0   r8:  00000000000000=
10
> (XEN) r9:  0000000000750fff   r10: 0000000000040000   r11: 00000000000000=
00
> (XEN) r12: ffff83083abb7ef8   r13: ffffffffffffffff   r14: 00000000000000=
00
> (XEN) r15: 0000000000000000   cr0: 000000008005003b   cr4: 0000000000f506=
e0
> (XEN) cr3: 00000008397bb000   cr2: 0000000000000000
> (XEN) fsb: 0000000000000000   gsb: 0000000000000000   gss: 00000000000000=
00
> (XEN) ds: 0000   es: 0000   fs: 0033   gs: 0033   ss: 0000   cs: e008
> (XEN) Xen code around <ffff82d04029bef6> (nsvm_vcpu_switch+0x34e/0x502):
> (XEN)  48 83 05 7a c5 3b 00 01 <0f> 0b 48 83 05 78 c5 3b 00 01 48 83 05 6=
0 c5 3b
> (XEN) Xen stack trace from rsp=3Dffff83083abb7ed0:
> (XEN)    ffff83083967b000 0000000000000000 0000000000000000 00007cf7c5448=
0e7
> (XEN)    ffff82d0402a49d6 0000000000000000 0000000000000000 0000000000000=
000
> (XEN)    0000000000000000 0000000000126000 0000000000000000 0000000000000=
000
> (XEN)    0000000000000000 0000000000000000 0000000000000000 0000000000126=
000
> (XEN)    0000000000000000 0000000000000000 0000000000000000 000000000012a=
f30
> (XEN)    0000beef0000beef 00000000001056f3 000000bf0000beef 0000000000000=
002
> (XEN)    000000000012af60 000000000000beef 800000083abfbeef 800000083abfb=
eef
> (XEN)    800000083abfbeef 800000083abfbeef 0000e01000000002 ffff83083967b=
000
> (XEN)    00000037fa582000 0000000000f506e0 0000000000000000 0000000000000=
000
> (XEN)    8000030300000000 800000083abff100
> (XEN) Xen call trace:
> (XEN)    [<ffff82d04029bef6>] R nsvm_vcpu_switch+0x34e/0x502
> (XEN)    [<ffff82d0402a49d6>] F svm_asm_do_resume+0x16/0x187
> (XEN)
> (XEN) debugtrace_dump() global buffer starting
> 1 cpupool_create(pool=3D0,sched=3D6)
> 2 Created cpupool 0 with scheduler SMP Credit Scheduler rev2 (credit2)
> 3 cpupool_add_domain(dom=3D0,pool=3D0) n_dom 1 rc 0
> 4-14 p2m: p2m_alloc_table(): allocating p2m table
> 15 cpupool_add_domain(dom=3D1,pool=3D0) n_dom 2 rc 0
> (XEN) wrap: 0
> (XEN) debugtrace_dump() global buffer finished
> (XEN)
> (XEN) ****************************************
> (XEN) Panic on CPU 2:
> (XEN) Assertion 'vmcb->_vintr.fields.vgif =3D=3D 0' failed at
> arch/x86/hvm/svm/nestedsvm.c:799
> (XEN) ****************************************
>
> Thanks,
>
> --
> Graduate School of Information Science and Technology, The University of =
Tokyo
> Reima Ishii
> ishiir@g.ecc.u-tokyo.ac.jp



--=20
Graduate School of Information Science and Technology, The University of To=
kyo
Reima Ishii
ishiir@g.ecc.u-tokyo.ac.jp


From xen-devel-bounces@lists.xenproject.org Mon Apr 21 19:52:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 21 Apr 2025 19:52:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.961414.1352833 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6xC6-0007eg-5y; Mon, 21 Apr 2025 19:52:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 961414.1352833; Mon, 21 Apr 2025 19:52: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 1u6xC6-0007eZ-2z; Mon, 21 Apr 2025 19:52:42 +0000
Received: by outflank-mailman (input) for mailman id 961414;
 Mon, 21 Apr 2025 19:52: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=J93P=XH=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u6xC4-0007eT-Vv
 for xen-devel@lists.xenproject.org; Mon, 21 Apr 2025 19:52:41 +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 2dfc47ed-1eea-11f0-9eb0-5ba50f476ded;
 Mon, 21 Apr 2025 21:52:39 +0200 (CEST)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-43cf628cb14so39442225e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 21 Apr 2025 12:52:39 -0700 (PDT)
Received: from [192.168.86.29] ([83.104.178.215])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39efa420816sm13002357f8f.15.2025.04.21.12.52.37
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 21 Apr 2025 12:52:37 -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: 2dfc47ed-1eea-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745265158; x=1745869958; 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=pGxCz2toYIC/kff9vdTGqDBP36stBwE/3hjfuO606FU=;
        b=c5cYCdMnd+8HHYJ0JCUWGwDtG+tDxdoiEFHjZ5wj88tYUgbxVLSlcQcRIoVHQvXLn2
         cfR181MyLytiqTPG3VagpTuAW5rgajcZYbtyKJiMljhek+wxWsBKWrbD8uUxA+GtgSqw
         +mklleRcdxfCPoATQbaJwtXNf5PUm1oiN45ok=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745265158; x=1745869958;
        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=pGxCz2toYIC/kff9vdTGqDBP36stBwE/3hjfuO606FU=;
        b=OdhdQ3cHIxjvGGCrjmYO9+sxQYd7pliCNJybAxqHC2d5OlTk4sF6S+1D2N8dasJ6r7
         fzWi95VKDPdjvwyHlFcRWZ2f1vM0oK4JiBKWK+hkjwrlK7csJzd2dSdB3jEfj2qC5DxS
         tSqsa1Q4T4+vGVZ+emh5SeMOa90w3CrgYnbukVSnd/nq7I7U6SgmpFXer8F2t7I9/pGg
         OE8+wvVH5V79QKQnjVmjQamKLzskD+BfyX/DOD9OKKuq7QqHXyludnL0Oh0HhbwJCk5r
         jyW0Js3g/CxE8hOx8+NBpRAYjIzBiZzqbxkRaT18sDx6Z021zjgC2hpqcorij545/mxt
         vIig==
X-Gm-Message-State: AOJu0YyfI5e++ksxzYIvr1JYhbMWvD/YJNqsGFEryS2V+l9CLxhbN/As
	UTABsW9WZ4KOe0xKHOYFPAG6Zloyi8oxriZ/mBFGKerC6sFhfGB3R/Ho0Qp473EuejE2mZlw8G7
	o9Zg=
X-Gm-Gg: ASbGncvvj/gUxK+ZvZIM0CWpZgbAH8/BL6a9Kv9B3UEfY68GL9N4szdtObOj4gmrf48
	u2CIKHVSu2KziJHxdUgRNram+7eMY0i3aKYtmW9vtyMLiMkOP01hqJiUa1MF3Pxv1hoWpJks/BN
	VfIn63k8+KKUtAU+9fPWO9rHJMxBMkn8vzvFqNZaTUx0szF6TxKZGW7qpx3stkT7ENCnMgXsRAH
	LrxhUJL7QTckNOO4X9LyEJhMpGJRfzNGKJr8cxXZWrqvZndfvb4qnIFNV8/9dqDmdxZO4vIMKj4
	RJMO6ZOl5+WHMDEs+ZlJ3OaWoiZs41g8HFYXQY26/ijZ8+7EdHJlYuMrsQQYUb3M
X-Google-Smtp-Source: AGHT+IH06iGEdccTHTqTKoLnZUbhej5PuynSnDgldRuyiEFda0FJZT82zW0sqBs0cNS+lkBHe31wSg==
X-Received: by 2002:a05:6000:2907:b0:39f:d03:f567 with SMTP id ffacd0b85a97d-39f0d03f56amr2597181f8f.16.1745265158372;
        Mon, 21 Apr 2025 12:52:38 -0700 (PDT)
Message-ID: <6fd54b87-1312-46b0-8f5c-ce186f60629f@citrix.com>
Date: Mon, 21 Apr 2025 20:52:37 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [BUG] Assertion failure with vmcb->_vintr.fields.vgif in nested
 SVM
To: xen-devel@lists.xenproject.org, REIMA ISHII <ishiir@g.ecc.u-tokyo.ac.jp>
References: <CA+aCS-EBA38cuP52_tKxomyiyEJani1+9d3HpqpT3BS2sRFECg@mail.gmail.com>
 <CA+aCS-GcAnziL8njhzOo+MoN0w-GfcpG66m4URwO+O4iVEtWDA@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==
Cc: Takahiro Shinagawa <shina@ecc.u-tokyo.ac.jp>
In-Reply-To: <CA+aCS-GcAnziL8njhzOo+MoN0w-GfcpG66m4URwO+O4iVEtWDA@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 21/04/2025 6:59 pm, REIMA ISHII wrote:
> Hi,
> I would like to follow up on the bug report I sent regarding a nested
> SVM issue in Xen, where an invalid CR4 value in VMCB12 leads to an
> assertion failure during VMRUN.
>
> As I haven't seen any updates or feedback, I wanted to kindly check if
> this issue has been acknowledged internally, or if there are any plans
> for addressing this case in future releases.
>
> Since this issue can potentially cause a hypervisor panic, I believe it
> would be valuable to handle this safely.
>
> Thank you for your time

Sorry, both issues fell between the cracks.

I've opened https://gitlab.com/xen-project/xen/-/issues/215 and so it
doesn't get lost again.

> On Mon, Nov 13, 2023 at 4:36 PM Reima ISHII <ishiir@g.ecc.u-tokyo.ac.jp> wrote:
>> Hi Xen Development Team,
>>
>> I am reporting a potential bug in the nested SVM implementation of the
>> Xen hypervisor, observed under specific conditions in a DomU HVM
>> guest.
>>
>> L1 on the DomU HVM guest sets a bit in CR4 of the VMCB12 save area
>> that is not part of hvm_cr4_guest_valid_bits and performs a VMRUN.
>> Subsequently, hvm_set_cr4 on the xen hypervisor fails and
>> nsvm_vcpu_vmexit_inject causes an assertion failure.
>>
>> The environment is as follows:
>> - Xen Version: Xen-4.18-unstable (commit
>> 290f82375d828ef93f831a5ef028f1283aa1ea47)
>> - Architecture: x86_64 (AMD)
>>
>> The potential impact on system stability and release builds remains
>> uncertain, but this issue might pose a problem and merits attention
>> for improved robustness in nested virtualization scenarios.
>>
>> (XEN) arch/x86/hvm/svm/nestedsvm.c:554:d1v0 hvm_set_cr4 failed, rc: 2
>> (XEN) d1v0[nsvm_vmcb_prepare4vmrun]: CR4: invalid value 0x20020 (valid
>> 0x750fff, rejected 0x20000)
>> (XEN) arch/x86/hvm/svm/nestedsvm.c:658:d1v0 virtual vmcb invalid
>> (XEN) arch/x86/hvm/svm/nestedsvm.c:729:d1v0 prepare4vmrun failed, ret = 1
>> (XEN) arch/x86/hvm/svm/nestedsvm.c:768:d1v0 inject VMEXIT(INVALID)
>> (XEN) Assertion 'vmcb->_vintr.fields.vgif == 0' failed at
>> arch/x86/hvm/svm/nestedsvm.c:799
>> (XEN) Debugging connection not set up.
>> (XEN) ----[ Xen-4.18-unstable  x86_64  debug=y gcov=y  Tainted:   C    ]----
>> (XEN) CPU:    2
>> (XEN) RIP:    e008:[<ffff82d04029bef6>] nsvm_vcpu_switch+0x34e/0x502
>> (XEN) RFLAGS: 0000000000010202   CONTEXT: hypervisor (d1v0)
>> (XEN) rax: ffff830839677000   rbx: ffff83083967b000   rcx: 0000000000000030
>> (XEN) rdx: 0000000000000000   rsi: 0000000000000003   rdi: ffff83083967b000
>> (XEN) rbp: ffff83083abb7ee8   rsp: ffff83083abb7ed0   r8:  0000000000000010
>> (XEN) r9:  0000000000750fff   r10: 0000000000040000   r11: 0000000000000000
>> (XEN) r12: ffff83083abb7ef8   r13: ffffffffffffffff   r14: 0000000000000000
>> (XEN) r15: 0000000000000000   cr0: 000000008005003b   cr4: 0000000000f506e0
>> (XEN) cr3: 00000008397bb000   cr2: 0000000000000000
>> (XEN) fsb: 0000000000000000   gsb: 0000000000000000   gss: 0000000000000000
>> (XEN) ds: 0000   es: 0000   fs: 0033   gs: 0033   ss: 0000   cs: e008
>> (XEN) Xen code around <ffff82d04029bef6> (nsvm_vcpu_switch+0x34e/0x502):
>> (XEN)  48 83 05 7a c5 3b 00 01 <0f> 0b 48 83 05 78 c5 3b 00 01 48 83 05 60 c5 3b
>> (XEN) Xen stack trace from rsp=ffff83083abb7ed0:
>> (XEN)    ffff83083967b000 0000000000000000 0000000000000000 00007cf7c54480e7
>> (XEN)    ffff82d0402a49d6 0000000000000000 0000000000000000 0000000000000000
>> (XEN)    0000000000000000 0000000000126000 0000000000000000 0000000000000000
>> (XEN)    0000000000000000 0000000000000000 0000000000000000 0000000000126000
>> (XEN)    0000000000000000 0000000000000000 0000000000000000 000000000012af30
>> (XEN)    0000beef0000beef 00000000001056f3 000000bf0000beef 0000000000000002
>> (XEN)    000000000012af60 000000000000beef 800000083abfbeef 800000083abfbeef
>> (XEN)    800000083abfbeef 800000083abfbeef 0000e01000000002 ffff83083967b000
>> (XEN)    00000037fa582000 0000000000f506e0 0000000000000000 0000000000000000
>> (XEN)    8000030300000000 800000083abff100
>> (XEN) Xen call trace:
>> (XEN)    [<ffff82d04029bef6>] R nsvm_vcpu_switch+0x34e/0x502
>> (XEN)    [<ffff82d0402a49d6>] F svm_asm_do_resume+0x16/0x187
>> (XEN)
>> (XEN) debugtrace_dump() global buffer starting
>> 1 cpupool_create(pool=0,sched=6)
>> 2 Created cpupool 0 with scheduler SMP Credit Scheduler rev2 (credit2)
>> 3 cpupool_add_domain(dom=0,pool=0) n_dom 1 rc 0
>> 4-14 p2m: p2m_alloc_table(): allocating p2m table
>> 15 cpupool_add_domain(dom=1,pool=0) n_dom 2 rc 0
>> (XEN) wrap: 0
>> (XEN) debugtrace_dump() global buffer finished
>> (XEN)
>> (XEN) ****************************************
>> (XEN) Panic on CPU 2:
>> (XEN) Assertion 'vmcb->_vintr.fields.vgif == 0' failed at
>> arch/x86/hvm/svm/nestedsvm.c:799
>> (XEN) ****************************************

This is fun.  The ASSERT() is incorrect, but that's also not the real
issue here.

The real bug is trying to raise #GP in the virtual vmentry path because
of bad control register state.  It should trigger a virtual vmexit
reporting VMEXIT_INVALID.

As for the ASSERT(), (v)GIF blocks external interrupts (inc INIT, NMI
and any #MC which can be delayed).  It does not block exceptions, so a
#GP ought to be able to be injected like this.


The real issue here is the reuse of the helpers for main `MOV CR`.  They
simply don't behave correctly for nested virt. 

Unfortunately, this is going to be quite complicated to fix.  I have no
idea when I'm going to have enough time to look into this.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Apr 21 19:57:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 21 Apr 2025 19:57:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.961429.1352843 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6xGZ-0008I7-PI; Mon, 21 Apr 2025 19:57:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 961429.1352843; Mon, 21 Apr 2025 19:57:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6xGZ-0008I0-LY; Mon, 21 Apr 2025 19:57:19 +0000
Received: by outflank-mailman (input) for mailman id 961429;
 Mon, 21 Apr 2025 19:57: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=J93P=XH=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u6xGY-0008Hu-GL
 for xen-devel@lists.xenproject.org; Mon, 21 Apr 2025 19:57:18 +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 d15e8355-1eea-11f0-9ffb-bf95429c2676;
 Mon, 21 Apr 2025 21:57:13 +0200 (CEST)
Received: by mail-wr1-x432.google.com with SMTP id
 ffacd0b85a97d-39d83782ef6so3811602f8f.0
 for <xen-devel@lists.xenproject.org>; Mon, 21 Apr 2025 12:57:13 -0700 (PDT)
Received: from [192.168.86.29] ([83.104.178.215])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39efa42082csm12682161f8f.3.2025.04.21.12.57.12
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 21 Apr 2025 12:57: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: d15e8355-1eea-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745265433; x=1745870233; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=fCI9GIz3tQx69mZRHQOydIWdQRCRJDxY6m4AQBClgkE=;
        b=eqsZXtyq70BNcj14YFbHrbBtHaww3VMlUHg11HCrBIGQPxYF5ln2sr9f0A6vhQUz+Y
         5QVm0zu+q7PZG7oEWpYXee3QH0QsuQi4wsLpPDRml6PnVGTClLbyoS50Ab84riWAS7C8
         yj0Kmf473lJNHM2qdJ1KmSvf69dpGe5pAtsVM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745265433; x=1745870233;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=fCI9GIz3tQx69mZRHQOydIWdQRCRJDxY6m4AQBClgkE=;
        b=DaPQO6DdR0sAAYmV/YHcPqjQKk2Rr3kuBmAK4TcvKft2vAAAztLiYnY6I+Dgd14tIY
         GJ1/CjYaFSweqYZII6EyyPkcO43OphFaSGEADzVzcWbrPzgITtj39axpVqwI9svSphm+
         ExaOKte/4A+EqA+XHfwUcVtD4gJQcZ0lXi9gYj8UPONGFbNafm1Rxx2ooa5NdiEUeWYO
         g2ToKLaHbGul7oWTAiRhzY7tgQzC0BhL1FYvA/Mg/fje3S2IPaAqxreaylrtkH7kGD4r
         tf6N5/FCkSJG48Y+ftW8B36ruxNXrE4ZYB82POnjwHxS3gADeWeEAn/Uk78PyAHeByg4
         Orog==
X-Gm-Message-State: AOJu0YxxSTlD+r7FN3zQeD6TL1GijS+GrespNxM70w1+A+kLVNvYXoib
	5Wa0Rc6/fRv5ex4cKo9Bx+RQsEBWFhckvytt47O7MjlWI50fCZ431dnK84FuvYQbplolW+qo0bx
	ovDg=
X-Gm-Gg: ASbGncsBRhhy72zA0+3FZz64Qasg7ffTbQITO7gJ5aWM3Cz/Cc+LyJ7UBY3gymw+hGz
	cziidF7pZGv4GXzTjebfxBrBN3rzHF9n+Auxcxe9Xki897TuhHX0i8A69444fDBlD6XGSYpjbVe
	KecJ8o7vMfN9LZSNEkelISu60rnZ/6moprkc18gkV/Uw61WtRr7WMTq1vyTV+YmbJxM9iE61Wv+
	iff3XAW58qSrbP3VgwUHKTQjsXMYu/bYvYWwVn2SYH9RseoYZiWPwH1tTFO1vUx6JfOdJoDWBDa
	swlZgmc/wCl/L5qkpzxjh1VhcF0cUwqYY4BR6HHiLJPQYb90V3YuSg==
X-Google-Smtp-Source: AGHT+IHJWddlpzHq2KGpbGF2LNXbLCMSu1y87N/iQhJVRiZ1J0zqEsCQ3bY6drnrT2v8sSAPHNXo+Q==
X-Received: by 2002:a05:6000:240a:b0:39c:2c0b:8db4 with SMTP id ffacd0b85a97d-39ef8ba5d0dmr11598487f8f.10.1745265432840;
        Mon, 21 Apr 2025 12:57:12 -0700 (PDT)
Message-ID: <92af3712-a163-4aef-abc9-beb8d1d1eda6@citrix.com>
Date: Mon, 21 Apr 2025 20:57:11 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [BUG] Nested Virtualization Bug on x86-64 AMD CPU
To: REIMA ISHII <ishiir@g.ecc.u-tokyo.ac.jp>
Cc: xen-devel@lists.xenproject.org,
 Takahiro Shinagawa <shina@ecc.u-tokyo.ac.jp>
References: <CA+aCS-Ha4jSYFfxhOwMGiGJPdCOtgBJLt=3Q=v9dfp6SQJys4w@mail.gmail.com>
 <1415ddc9-81f3-4d50-b735-7e44a7f656d5@citrix.com>
 <CA+aCS-H2wkiVOMvCS7cCPojduXdStMYzHn7SxintNyg0vS_Bhg@mail.gmail.com>
 <CA+aCS-E0WtbnSM7FuPL0jruXLjdFaZOa9aS0gyy_x5JDRWh50A@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: <CA+aCS-E0WtbnSM7FuPL0jruXLjdFaZOa9aS0gyy_x5JDRWh50A@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 21/04/2025 6:53 pm, REIMA ISHII wrote:
> I am writing to follow up on the bug report I sent, regarding a BUG()
> triggered in Xen when performing a nested VMRUN with CR0.PG
> <http://CR0.PG>=0 in Long
> Mode. The issue was discussed with Andrew Cooper at that time, and I
> would like to check if there have been any updates or plans for
> addressing this issue.
>
> To briefly recap:
> - The problem occurs when an L1 hypervisor, while in 64-bit mode,
> executes VMRUN with CR0.PG <http://CR0.PG>=0 in VMCB12, targeting a
> 64-bit L2 guest.
> - Instead of raising VMEXIT_INVALID, the system encounters a BUG() at
> `nsvm_vmcb_guest_intercepts_exitcode`.
> - VMEXIT reason observed was 0x402 (AVIC_NOACCEL), although Xen does not
> support AVIC.
>
> Andrew pointed out that this could indicate either a missing validity
> check (as the state LMA=1 && PG=0 is invalid) or possible memory
> corruption.
>
> Given that this issue could potentially allow a guest VM to trigger a
> hypervisor panic, I believe it might be worth formally recognizing and
> addressing.
> May I kindly ask if this has been acknowledged as a bug internally, or
> if there are any plans to handle this case safely (e.g., raising
> VMEXIT_INVALID instead of BUG()) in future Xen releases?
>
> Thank you very much for your time

Sorry, also fell between the cracks.  I've opened
https://gitlab.com/xen-project/xen/-/issues/216

Again, no idea when I'll have time to look into this.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Apr 21 20:39:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 21 Apr 2025 20:39:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.961442.1352853 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6xvR-0005op-M9; Mon, 21 Apr 2025 20:39:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 961442.1352853; Mon, 21 Apr 2025 20:39:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6xvR-0005oi-I5; Mon, 21 Apr 2025 20:39:33 +0000
Received: by outflank-mailman (input) for mailman id 961442;
 Mon, 21 Apr 2025 20:39:32 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=nRXx=XH=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u6xvQ-0005oc-MO
 for xen-devel@lists.xenproject.org; Mon, 21 Apr 2025 20:39:32 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org
 [2600:3c04:e001:324:0:1991:8:25])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b6d7dc55-1ef0-11f0-9ffb-bf95429c2676;
 Mon, 21 Apr 2025 22:39:26 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id CC1AF61154;
 Mon, 21 Apr 2025 20:39:05 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 69A3CC4CEE4;
 Mon, 21 Apr 2025 20:39:23 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b6d7dc55-1ef0-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1745267964;
	bh=djEi/NfnH1oKIaY+jTSzZ766wdlERVedtPGzonrxwto=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=jJ5YdsLh6qJxJ3Sj9ElEcpCbFV2hFANI6o2D+K2vhQOfAgP4napgo0iRNNscNJrZb
	 oYJJQDO8VPX6FIDLyTLdzTWZxtYlDEqUWBEdYDtfr3J2+rTT/zZeP0bfTn76DeN993
	 pgrE04AFz42CqxR1VzbeO5GTysQ9Cw2g+n7zGGp9D2j18mnSJOWfS4DYN5DAFcjr09
	 33Fz5dn7pHmU3re/NJ6hNhHHNOv7PhZ/cKG+4s1elzRl0HmJ7CIVqASlIlfYA59+tD
	 ciGMhZ57g1tenPSGue8qmn5eP2GQlLqXyeJmbAm1tR9lFUoURFS9/6qvVpeigvlmjE
	 JkSpiZe95d8TA==
Date: Mon, 21 Apr 2025 13:39:21 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: dmkhn@proton.me
cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com, 
    cardoe@cardoe.com, marmarek@invisiblethingslab.com, sstabellini@kernel.org, 
    dmukhin@ford.com
Subject: Re: [PATCH v2 1/4] CI: unify x86 XTF test runner
In-Reply-To: <20250419010319.2572518-2-dmukhin@ford.com>
Message-ID: <alpine.DEB.2.22.394.2504211337580.785180@ubuntu-linux-20-04-desktop>
References: <20250419010319.2572518-1-dmukhin@ford.com> <20250419010319.2572518-2-dmukhin@ford.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Sat, 19 Apr 2025, dmkhn@proton.me wrote:
> From: Denis Mukhin <dmukhin@ford.com>
> 
> Add test runner script qemu-xtf.sh which is allows any XTF x86 test to be
> easily executed. Test runner is invoked from the qemu-smoke* jobs with the
> hardcoded parameters.
> 
> Each x86 XTF job lead time is reduced a bit since only the test-related code
> is built, not the entire XTF project.
> 
> Add .gitignore to avoid committing test artifacts by mistake.
> 
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> ---
> Changes since v2:
> - removed TOP
> - dropped XEN_CONSOLE in favor of XEN_CMDLINE
> - fixup for XTF_SRC_CONFIG

Much better!


> ---
>  automation/gitlab-ci/test.yaml                |   8 +-
>  automation/scripts/.gitignore                 |   6 +
>  .../scripts/include/configs/xtf-x86-64-config |   0
>  automation/scripts/include/xtf-runner         | 131 ++++++++++++++++++
>  automation/scripts/include/xtf-x86-64         |  31 +++++
>  automation/scripts/qemu-smoke-x86-64.sh       |  26 ----
>  automation/scripts/qemu-xtf.sh                |  28 ++++
>  7 files changed, 200 insertions(+), 30 deletions(-)
>  create mode 100644 automation/scripts/.gitignore
>  create mode 100644 automation/scripts/include/configs/xtf-x86-64-config
>  create mode 100644 automation/scripts/include/xtf-runner
>  create mode 100644 automation/scripts/include/xtf-x86-64
>  delete mode 100755 automation/scripts/qemu-smoke-x86-64.sh
>  create mode 100755 automation/scripts/qemu-xtf.sh
> 
> diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
> index 5ce445b78f..3adc841335 100644
> --- a/automation/gitlab-ci/test.yaml
> +++ b/automation/gitlab-ci/test.yaml
> @@ -659,28 +659,28 @@ qemu-alpine-x86_64-gcc:
>  qemu-smoke-x86-64-gcc:
>    extends: .qemu-smoke-x86-64
>    script:
> -    - ./automation/scripts/qemu-smoke-x86-64.sh pv 2>&1 | tee ${LOGFILE}
> +    - ./automation/scripts/qemu-xtf.sh x86-64 pv64 example 2>&1 | tee ${LOGFILE}
>    needs:
>      - 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}
> +    - ./automation/scripts/qemu-xtf.sh x86-64 pv64 example 2>&1 | tee ${LOGFILE}
>    needs:
>      - 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}
> +    - ./automation/scripts/qemu-xtf.sh x86-64 hvm64 example 2>&1 | tee ${LOGFILE}
>    needs:
>      - 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}
> +    - ./automation/scripts/qemu-xtf.sh x86-64 hvm64 example 2>&1 | tee ${LOGFILE}
>    needs:
>      - debian-12-x86_64-clang-debug
>  
> diff --git a/automation/scripts/.gitignore b/automation/scripts/.gitignore
> new file mode 100644
> index 0000000000..2f2d6e1ebd
> --- /dev/null
> +++ b/automation/scripts/.gitignore
> @@ -0,0 +1,6 @@
> +!include

Why !include ?


> +binaries
> +smoke.serial
> +xen
> +xtf*/
> diff --git a/automation/scripts/include/configs/xtf-x86-64-config b/automation/scripts/include/configs/xtf-x86-64-config
> new file mode 100644
> index 0000000000..e69de29bb2
> diff --git a/automation/scripts/include/xtf-runner b/automation/scripts/include/xtf-runner
> new file mode 100644
> index 0000000000..320eb65dc8
> --- /dev/null
> +++ b/automation/scripts/include/xtf-runner
> @@ -0,0 +1,131 @@
> +#!/bin/bash
> +#
> +# XTF test utilities.
> +#
> +# Environment variables:
> +#   BOOT_MSG: Expected boot message
> +#   FW_PREFIX: Firmware images path including '/' at the end
> +#   PASSED: XTF test printout in case of a pass
> +#   QEMU_PREFIX: QEMU path including '/' at the end
> +#   TEST_LOG: Output log file
> +#   UBOOT_CMD: U-Boot command line
> +#   WORKDIR: Test working directory
> +#   XEN_BINARY: Xen binary location
> +#   XEN_CONSOLE: Xen console device name
> +#   XTF_SRC_CONFIG: XTF config file
> +#   XTF_SRC_BRANCH: XTF branch
> +#   XTF_SRC_URI: XTF source code URI
> +
> +# Output log file
> +TEST_LOG="${TEST_LOG:-${XEN_ROOT}/smoke.serial}"
> +# XTF test printout in case of a pass
> +PASSED="${PASSED:-Test result: SUCCESS}"
> +# Expected boot message
> +BOOT_MSG="${BOOT_MSG:-Latest ChangeSet: }"
> +# Test working directory
> +WORKDIR="${WORKDIR:-${XEN_ROOT}/binaries}"
> +# XTF source code
> +XTF_SRC_CONFIG="${XTF_SRC_CONFIG:-include/configs/xtf-${ARCH}-config}"
> +
> +function die()
> +{
> +    set +x
> +    echo "FATAL: $*" >&2
> +    exit 1
> +}
> +
> +# Build an XTF test binary.
> +# $1 Test variant.
> +# $2 Test name.
> +function xtf_build_binary()
> +{
> +    local xtf_variant=$1
> +    local xtf_name=$2
> +    local xtf_dir="xtf-${ARCH}"
> +
> +    # Crude check for local testing
> +    if [ ! -d ${xtf_dir} ]; then
> +        git clone ${XTF_SRC_URI} ${xtf_dir} -b ${XTF_SRC_BRANCH}
> +    fi
> +
> +    make \
> +        -C ${xtf_dir} \
> +        -j$(nproc) \
> +        $(tr '\n' ' ' < ${XTF_SRC_CONFIG}) \
> +        TESTS=tests/${xtf_name}
> +
> +    export XTF_NAME="${xtf_name}"
> +    export XTF_VARIANT="${xtf_variant}"
> +    export XTF_WORKDIR="$(readlink -f ${xtf_dir})"
> +    export XTF_BINARY="${XTF_WORKDIR}/tests/${xtf_name}/test-${xtf_variant}-${xtf_name}"
> +}
> +
> +# Build Xen command line for running an XTF test.
> +# $1 Test variant.
> +# $2 Test name.
> +function xtf_build_cmdline()
> +{
> +    local xtf_variant=$1
> +    local xtf_name=$2
> +    declare -a cmdline=()
> +
> +    cmdline+=("${XEN_CMDLINE}")
> +
> +    # NB: OK to have hvm64, which is x86-only variant
> +    if [[ $xtf_variant == "hvm64" ]]; then
> +        cmdline+=("dom0-iommu=none dom0=pvh")
> +    fi
> +
> +    export XEN_CMDLINE="${cmdline[@]}"
> +}
> +
> +# Build an XTF test environment.
> +# $1 Test variant.
> +# $2 Test name.
> +function xtf_build_test()
> +{
> +    local v=$1
> +    local xtf_name=$2
> +    local xtf_variant=""
> +
> +    for x in ${XTF_SRC_VARIANTS}; do
> +        if [[ "${x}" == "${v}" ]]; then
> +            xtf_variant=${v}
> +            break
> +        fi
> +    done
> +    if [[ -z $xtf_variant ]]; then
> +        die "unsupported test variant '$1', supported variants: ${XTF_SRC_VARIANTS}"
> +    fi
> +
> +    xtf_build_binary ${xtf_variant} ${xtf_name}
> +    xtf_build_cmdline ${xtf_variant} ${xtf_name}
> +}
> +
> +# Execute an XTF test.
> +function xtf_run_test()
> +{
> +    rm -f ${TEST_LOG}
> +    export BOOT_MSG PASSED TEST_CMD TEST_LOG UBOOT_CMD
> +    ./console.exp | sed 's/\r\+$//'
> +}
> +
> +# Setup environment and run an XTF test.
> +# $1 Test variant.
> +# $2 Test name.
> +function xtf_test()
> +{
> +    # Out: FW_*, QEMU_*, XEN_{BINARY,CONSOLE}, XTF_SRC_*
> +    xtf_arch_prepare
> +
> +    # In: XTF_SRC_*
> +    # OUt: XTF_{BINARY,NAME,VARIANT,WORKDIR} and XEN_CMDLINE
> +    xtf_build_test $@
> +
> +    # In: FW_*, QEMU_*, XTF_*, XEN_*
> +    # Out: BOOT_MSG, PASSED, TEST_{CMD,LOG}, UBOOT_CMD
> +    xtf_arch_setup
> +
> +    # In: BOOT_MSG, PASSED, TEST_{CMD,LOG}, UBOOT_CMD
> +    xtf_run_test
> +}
> diff --git a/automation/scripts/include/xtf-x86-64 b/automation/scripts/include/xtf-x86-64
> new file mode 100644
> index 0000000000..b1b0cc201e
> --- /dev/null
> +++ b/automation/scripts/include/xtf-x86-64
> @@ -0,0 +1,31 @@
> +#!/bin/bash
> +#
> +# XTF test utilities (x86_64).
> +#
> +
> +# Arch-specific environment overrides.
> +function xtf_arch_prepare()
> +{
> +    export FW_PREFIX="${FW_PREFIX:-}"
> +    export QEMU_PREFIX="${QEMU_PREFIX:-}"
> +    export XEN_BINARY="${XEN_BINARY:-${WORKDIR}/xen}"
> +    export XEN_CMDLINE="${XEN_CMDLINE:-loglvl=all noreboot console_timestamps=boot console=com1}"
> +    export XTF_SRC_BRANCH="${XTF_SRC_BRANCH:-master}"
> +    export XTF_SRC_URI="${XTF_SRC_URI:-https://xenbits.xen.org/git-http/xtf.git}"
> +    export XTF_SRC_VARIANTS="hvm64 pv64"
> +}
> +
> +# Perform arch-specific XTF environment setup.
> +function xtf_arch_setup()
> +{
> +    export TEST_CMD="${QEMU_PREFIX}qemu-system-x86_64 \
> +        -no-reboot \
> +        -nographic \
> +        -monitor none \
> +        -serial stdio \
> +        -m 512 \
> +        -kernel ${XEN_BINARY} \
> +        -initrd ${XTF_BINARY} \
> +        -append \"${XEN_CMDLINE}\" \
> +    "
> +}
> diff --git a/automation/scripts/qemu-smoke-x86-64.sh b/automation/scripts/qemu-smoke-x86-64.sh
> deleted file mode 100755
> index da0c26cc2f..0000000000
> --- a/automation/scripts/qemu-smoke-x86-64.sh
> +++ /dev/null
> @@ -1,26 +0,0 @@
> -#!/bin/bash
> -
> -set -ex -o pipefail
> -
> -# variant should be either pv or pvh
> -variant=$1
> -
> -# Clone and build XTF
> -git clone https://xenbits.xen.org/git-http/xtf.git
> -cd xtf && make -j$(nproc) && cd -
> -
> -case $variant in
> -    pvh) k=test-hvm64-example    extra="dom0-iommu=none dom0=pvh" ;;
> -    *)   k=test-pv64-example     extra= ;;
> -esac
> -
> -rm -f smoke.serial
> -export TEST_CMD="qemu-system-x86_64 -nographic -kernel binaries/xen \
> -        -initrd xtf/tests/example/$k \
> -        -append \"loglvl=all console=com1 noreboot console_timestamps=boot $extra\" \
> -        -m 512 -monitor none -serial stdio"
> -
> -export TEST_LOG="smoke.serial"
> -export PASSED="Test result: SUCCESS"
> -
> -./automation/scripts/console.exp | sed 's/\r\+$//'
> diff --git a/automation/scripts/qemu-xtf.sh b/automation/scripts/qemu-xtf.sh
> new file mode 100755
> index 0000000000..55c221b36d
> --- /dev/null
> +++ b/automation/scripts/qemu-xtf.sh
> @@ -0,0 +1,28 @@
> +#!/bin/bash
> +#
> +# XTF test runner (QEMU).
> +#
> +
> +set -e -o pipefail
> +
> +if [ $# -lt 3 ]; then
> +    echo "Usage: $(basename $0) ARCH XTF-VARIANT XTF-NAME"
> +    exit 0
> +fi
> +
> +export ARCH="$1"
> +shift
> +
> +set -x
> +
> +export XEN_ROOT="${PWD}"
> +cd $(dirname $0)
> +
> +source include/xtf-runner
> +
> +if [ ! -f "include/xtf-${ARCH}" ]; then
> +    die "unsupported architecture '${ARCH}'"
> +fi
> +source include/xtf-${ARCH}
> +
> +xtf_test $@
> -- 
> 2.34.1
> 
> 


From xen-devel-bounces@lists.xenproject.org Mon Apr 21 20:39:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 21 Apr 2025 20:39:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.961443.1352862 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6xvX-00063n-SH; Mon, 21 Apr 2025 20:39:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 961443.1352862; Mon, 21 Apr 2025 20:39: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 1u6xvX-00063e-PK; Mon, 21 Apr 2025 20:39:39 +0000
Received: by outflank-mailman (input) for mailman id 961443;
 Mon, 21 Apr 2025 20:39: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=nRXx=XH=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u6xvW-000634-2m
 for xen-devel@lists.xenproject.org; Mon, 21 Apr 2025 20:39:38 +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 bcc5e02c-1ef0-11f0-9eb0-5ba50f476ded;
 Mon, 21 Apr 2025 22:39:36 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by nyc.source.kernel.org (Postfix) with ESMTP id F0759A4BE06;
 Mon, 21 Apr 2025 20:34:06 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id D895EC4CEE4;
 Mon, 21 Apr 2025 20:39:33 +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: bcc5e02c-1ef0-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1745267974;
	bh=yVt4eZaqa9Vm8qM8LjqhbIy57iO2fl9YQeXupfdcHNQ=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=OjTfEG7MtuQRZj96N32TDTnuaX3QQ/eXCNoj+VgTOv3Jf0MC6qhUssc4P1PM3sXHU
	 +s7SkIkIzGDk8p/oy6+RFNfNmdnbvARkykDSGXaEHkxL5q0i6CfQVLbFM/S3dtDMrT
	 gEbM1bNm0GGRsExbk7+n87JD+Oyv0aIH7kb8XIGTEi5uFy6rFwlvu2MKJEMP0Qd/tI
	 VXFYbsT+ThETuwT1ZdcUCGfDL7h6hLbf44VGeJRRpjmFWplLUCGz9Etz972sjJ0jmP
	 TARiizmzD9BSVuoYSu6iPAP8do3jPfYptYegQ9kS+c7+/V2jNHshpCrnMXdjyPeSWE
	 RwIlQ/7CidQlg==
Date: Mon, 21 Apr 2025 13:39:32 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: dmkhn@proton.me
cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com, 
    cardoe@cardoe.com, marmarek@invisiblethingslab.com, sstabellini@kernel.org, 
    dmukhin@ford.com
Subject: Re: [PATCH v2 2/4] CI: switch x86 EFI smoke test runner to
 qemu-xtf.sh
In-Reply-To: <20250419010319.2572518-3-dmukhin@ford.com>
Message-ID: <alpine.DEB.2.22.394.2504211338190.785180@ubuntu-linux-20-04-desktop>
References: <20250419010319.2572518-1-dmukhin@ford.com> <20250419010319.2572518-3-dmukhin@ford.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Sat, 19 Apr 2025, dmkhn@proton.me wrote:
> From: Denis Mukhin <dmukhin@ford.com>
> 
> Use qemu-xtf.sh for qemu-smoke-x86-64-gcc-efi job.
> 
> Lead time is reduced a bit since not all XTF code base is built, just the
> required test.
> 
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> ---
> Changes since v2:
> - removed TOP
> - dropped XEN_CONSOLE in favor of XEN_CMDLINE
> ---
>  automation/gitlab-ci/test.yaml                |  2 +-
>  .../include/configs/xtf-x86-64-efi-config     |  0
>  automation/scripts/include/xtf-x86-64-efi     | 52 +++++++++++++++++++
>  automation/scripts/qemu-smoke-x86-64-efi.sh   | 43 ---------------
>  4 files changed, 53 insertions(+), 44 deletions(-)
>  create mode 100644 automation/scripts/include/configs/xtf-x86-64-efi-config
>  create mode 100644 automation/scripts/include/xtf-x86-64-efi
>  delete mode 100755 automation/scripts/qemu-smoke-x86-64-efi.sh
> 
> diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
> index 3adc841335..ca1e4eb528 100644
> --- a/automation/gitlab-ci/test.yaml
> +++ b/automation/gitlab-ci/test.yaml
> @@ -687,7 +687,7 @@ qemu-smoke-x86-64-clang-pvh:
>  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}
> +    - ./automation/scripts/qemu-xtf.sh x86-64-efi hvm64 example 2>&1 | tee ${LOGFILE}

Isn't it supposed to be pv64 as variant of the test to match what we had
before?


>    needs:
>      - debian-12-x86_64-gcc-debug
>  
> diff --git a/automation/scripts/include/configs/xtf-x86-64-efi-config b/automation/scripts/include/configs/xtf-x86-64-efi-config
> new file mode 100644
> index 0000000000..e69de29bb2
> diff --git a/automation/scripts/include/xtf-x86-64-efi b/automation/scripts/include/xtf-x86-64-efi
> new file mode 100644
> index 0000000000..e0d821b3f6
> --- /dev/null
> +++ b/automation/scripts/include/xtf-x86-64-efi
> @@ -0,0 +1,52 @@
> +#!/bin/bash
> +#
> +# XTF test utilities (x86_64, EFI).
> +#
> +
> +# Arch-specific environment overrides.
> +function xtf_arch_prepare()
> +{
> +    export FW_PREFIX="${FW_PREFIX:-/usr/share/OVMF/}"
> +    export QEMU_PREFIX="${QEMU_PREFIX:-}"
> +    export XEN_BINARY="${XEN_BINARY:-${WORKDIR}/xen.efi}"
> +    export XEN_CMDLINE="${XEN_CMDLINE:-loglvl=all noreboot console_timestamps=boot console=com1}"
> +    export XTF_SRC_BRANCH="${XTF_SRC_BRANCH:-master}"
> +    export XTF_SRC_URI="${XTF_SRC_URI:-https://xenbits.xen.org/git-http/xtf.git}"
> +    export XTF_SRC_VARIANTS="hvm64 pv64"
> +}
> +
> +# Perform arch-specific XTF environment setup.
> +function xtf_arch_setup()
> +{
> +    local esp_dir="${WORKDIR}/boot-esp"
> +    local efi_dir="${esp_dir}/EFI/BOOT"
> +
> +    # Generate EFI boot environment
> +    mkdir -p ${efi_dir}
> +    cp ${XEN_BINARY} ${efi_dir}/BOOTX64.EFI
> +    cp ${XTF_BINARY} ${efi_dir}/kernel
> +
> +    cat > ${efi_dir}/BOOTX64.cfg <<EOF
> +[global]
> +default=test
> +
> +[test]
> +options=${XEN_CMDLINE}
> +kernel=kernel
> +EOF
> +
> +    # NB: OVMF_CODE.fd is read-only, no need to copy
> +    cp ${FW_PREFIX}OVMF_VARS.fd ${WORKDIR}
> +
> +    export TEST_CMD="${QEMU_PREFIX}qemu-system-x86_64 \
> +        -no-reboot \
> +        -nographic \
> +        -monitor none \
> +        -serial stdio \
> +        -m 512 \
> +        -M q35,kernel-irqchip=split \
> +        -drive if=pflash,format=raw,readonly=on,file=${FW_PREFIX}OVMF_CODE.fd \
> +        -drive if=pflash,format=raw,file=${WORKDIR}/OVMF_VARS.fd \
> +        -drive file=fat:rw:${esp_dir},media=disk,index=0,format=raw \
> +    "
> +}
> diff --git a/automation/scripts/qemu-smoke-x86-64-efi.sh b/automation/scripts/qemu-smoke-x86-64-efi.sh
> deleted file mode 100755
> index 7572722be6..0000000000
> --- a/automation/scripts/qemu-smoke-x86-64-efi.sh
> +++ /dev/null
> @@ -1,43 +0,0 @@
> -#!/bin/bash
> -
> -set -ex -o pipefail
> -
> -# variant should be either pv or pvh
> -variant=$1
> -
> -# Clone and build XTF
> -git clone https://xenbits.xen.org/git-http/xtf.git
> -cd xtf && make -j$(nproc) && cd -
> -
> -case $variant in
> -    pvh) k=test-hvm64-example    extra="dom0-iommu=none dom0=pvh" ;;
> -    *)   k=test-pv64-example     extra= ;;
> -esac
> -
> -mkdir -p boot-esp/EFI/BOOT
> -cp binaries/xen.efi boot-esp/EFI/BOOT/BOOTX64.EFI
> -cp xtf/tests/example/$k boot-esp/EFI/BOOT/kernel
> -
> -cat > boot-esp/EFI/BOOT/BOOTX64.cfg <<EOF
> -[global]
> -default=test
> -
> -[test]
> -options=loglvl=all console=com1 noreboot console_timestamps=boot $extra
> -kernel=kernel
> -EOF
> -
> -cp /usr/share/OVMF/OVMF_CODE.fd OVMF_CODE.fd
> -cp /usr/share/OVMF/OVMF_VARS.fd OVMF_VARS.fd
> -
> -rm -f smoke.serial
> -export TEST_CMD="qemu-system-x86_64 -nographic -M q35,kernel-irqchip=split \
> -        -drive if=pflash,format=raw,readonly=on,file=OVMF_CODE.fd \
> -        -drive if=pflash,format=raw,file=OVMF_VARS.fd \
> -        -drive file=fat:rw:boot-esp,media=disk,index=0,format=raw \
> -        -m 512 -monitor none -serial stdio"
> -
> -export TEST_LOG="smoke.serial"
> -export PASSED="Test result: SUCCESS"
> -
> -./automation/scripts/console.exp | sed 's/\r\+$//'
> -- 
> 2.34.1
> 
> 


From xen-devel-bounces@lists.xenproject.org Mon Apr 21 20:39:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 21 Apr 2025 20:39:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.961444.1352873 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6xve-0006MD-3x; Mon, 21 Apr 2025 20:39:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 961444.1352873; Mon, 21 Apr 2025 20:39: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 1u6xve-0006M0-1A; Mon, 21 Apr 2025 20:39:46 +0000
Received: by outflank-mailman (input) for mailman id 961444;
 Mon, 21 Apr 2025 20: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=nRXx=XH=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u6xvc-0005oc-3L
 for xen-devel@lists.xenproject.org; Mon, 21 Apr 2025 20:39:44 +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 c0516620-1ef0-11f0-9ffb-bf95429c2676;
 Mon, 21 Apr 2025 22:39:42 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by nyc.source.kernel.org (Postfix) with ESMTP id 4A62AA4BE06;
 Mon, 21 Apr 2025 20:34:13 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 33651C4CEE4;
 Mon, 21 Apr 2025 20:39: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: c0516620-1ef0-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1745267981;
	bh=cIrFY4mi3gt5JfhJgxVvgR0f8dlTZkXRBoOuVORCxkA=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=pL/hiug3wpumaOr1ZYIEBbIlGO+ULSvx5r3wGIagrTol2CIDW2tB5Ujy/g0/splQF
	 aHu6crh1kVtj4b0s6qUsNu3T5JHUgKmxGTBzdEHox0tPyhysoLA+yvzDwiaIH6UMO3
	 Nd01t/tQEuv4j9abDivzI8JF///ST2T2dE6JZpLmdVUybf+5A/y9wdoPP5Jvb6/xSe
	 j1crDP5H7lpKJjEllAg1mEtIZXUkSBY9SyF7Abu/gzk/XVeoFYuYNwsScEDvwNK9JL
	 Pc7cFUcsshlIp9nE+r37JVkhFRszQTaGV7+02nCl2KutgZ+hmF94ybcS5zntJO/nx8
	 VHkFOGNIyw4Fg==
Date: Mon, 21 Apr 2025 13:39:38 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: dmkhn@proton.me
cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com, 
    cardoe@cardoe.com, marmarek@invisiblethingslab.com, sstabellini@kernel.org, 
    dmukhin@ford.com
Subject: Re: [PATCH v2 4/4] CI: add argo x86 XTF test
In-Reply-To: <20250419010319.2572518-5-dmukhin@ford.com>
Message-ID: <alpine.DEB.2.22.394.2504211338530.785180@ubuntu-linux-20-04-desktop>
References: <20250419010319.2572518-1-dmukhin@ford.com> <20250419010319.2572518-5-dmukhin@ford.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Sat, 19 Apr 2025, dmkhn@proton.me wrote:
> From: Denis Mukhin <dmukhin@ford.com>
> 
> Introduce new CI job to run x86 XTF argo test under QEMU to smoke test argo
> feature functionality in upstream CI.
> 
> The new job lead time is ~30s, limit max job duration to 60s.
> 
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>

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


> ---
> Depends on
>    https://lore.kernel.org/xen-devel/20250416050443.919751-1-dmukhin@ford.com/
> ---
>  automation/gitlab-ci/test.yaml        | 9 +++++++++
>  automation/scripts/include/xtf-runner | 7 +++++++
>  2 files changed, 16 insertions(+)
> 
> diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
> index d6e4a0a622..9001efb45c 100644
> --- a/automation/gitlab-ci/test.yaml
> +++ b/automation/gitlab-ci/test.yaml
> @@ -691,6 +691,15 @@ qemu-smoke-x86-64-gcc-efi:
>    needs:
>      - debian-12-x86_64-gcc-debug
>  
> +qemu-xtf-argo-x86_64-gcc-debug:
> +  extends: .qemu-smoke-x86-64
> +  variables:
> +    TEST_TIMEOUT_OVERRIDE: 60
> +  script:
> +    - ./automation/scripts/qemu-xtf.sh x86-64 pv64 argo 2>&1 | tee ${LOGFILE}
> +  needs:
> +    - alpine-3.18-gcc-debug
> +
>  qemu-smoke-riscv64-gcc:
>    extends: .qemu-riscv64
>    script:
> diff --git a/automation/scripts/include/xtf-runner b/automation/scripts/include/xtf-runner
> index 320eb65dc8..b7fea52dad 100644
> --- a/automation/scripts/include/xtf-runner
> +++ b/automation/scripts/include/xtf-runner
> @@ -68,6 +68,9 @@ function xtf_build_cmdline()
>      local xtf_variant=$1
>      local xtf_name=$2
>      declare -a cmdline=()
> +    declare -A per_test_args=(
> +        [argo]="argo=1 mac-permissive=1"
> +    )
>  
>      cmdline+=("${XEN_CMDLINE}")
>  
> @@ -76,6 +79,10 @@ function xtf_build_cmdline()
>          cmdline+=("dom0-iommu=none dom0=pvh")
>      fi
>  
> +    if [[ -v per_test_args[${xtf_name}] ]]; then
> +        cmdline+=("${per_test_args[${xtf_name}]}")
> +    fi
> +
>      export XEN_CMDLINE="${cmdline[@]}"
>  }
>  
> -- 
> 2.34.1
> 
> 


From xen-devel-bounces@lists.xenproject.org Mon Apr 21 20:55:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 21 Apr 2025 20:55:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.961481.1352884 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6yAb-0001lk-Jf; Mon, 21 Apr 2025 20:55:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 961481.1352884; Mon, 21 Apr 2025 20: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 1u6yAb-0001ld-Ea; Mon, 21 Apr 2025 20:55:13 +0000
Received: by outflank-mailman (input) for mailman id 961481;
 Mon, 21 Apr 2025 20: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=nRXx=XH=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u6yAa-0001lX-MU
 for xen-devel@lists.xenproject.org; Mon, 21 Apr 2025 20:55: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 e4fc0fd5-1ef2-11f0-9ffb-bf95429c2676;
 Mon, 21 Apr 2025 22:55:03 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 4F1825C5844;
 Mon, 21 Apr 2025 20:52:44 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9B3E8C4CEE4;
 Mon, 21 Apr 2025 20:54: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: e4fc0fd5-1ef2-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1745268901;
	bh=BVbkA8k/6Gw/DKOJPmwEaGiYujMyEDeKrZ0qw9jWziM=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=rkOHoUBWR35D316Nv90zERlWkQ4WCoaBgQy32PbZZD9glAthkeXE1GYxliEaUrIfA
	 Ab7PbtZObdUVI1+4Qs8ziS1xf5Ow3f6SVo7Cb1uoN+9n9jfLk2eihcisPlLS5YTOfI
	 3UfQM6EmenFlLEzEDYT6uP18Op+i60B0kxmo9CRn+GVoh2VBVaZzuO/iFCtc3B/iEK
	 OmwLYs2M40f6gzpr1uNIG7jMXBMsSgmCPrLdXF0fxyHLxxh9K+nlwQ2bVcVZisBiNk
	 u+AI9BVC2rmP53vj+Ke7rXfKQF9o9zEQpO16La5FFQ/oM21/KfMCjzuQ4Awq9aaJlB
	 XdShKBJnx98KA==
Date: Mon, 21 Apr 2025 13:54:58 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Penny Zheng <Penny.Zheng@amd.com>
cc: xen-devel@lists.xenproject.org, ray.huang@amd.com, 
    Stefano Stabellini <stefano.stabellini@amd.com>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    Anthony PERARD <anthony.perard@vates.tech>, 
    Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, 
    Julien Grall <julien@xen.org>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Sergiy Kibrik <Sergiy_Kibrik@epam.com>
Subject: Re: [PATCH v3 02/20] xen: introduce CONFIG_SYSCTL
In-Reply-To: <20250421073723.3863060-3-Penny.Zheng@amd.com>
Message-ID: <alpine.DEB.2.22.394.2504211354290.785180@ubuntu-linux-20-04-desktop>
References: <20250421073723.3863060-1-Penny.Zheng@amd.com> <20250421073723.3863060-3-Penny.Zheng@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, 21 Apr 2025, Penny Zheng wrote:
> From: Stefano Stabellini <stefano.stabellini@amd.com>
> 
> We introduce a new Kconfig CONFIG_SYSCTL, which shall only be disabled
> on some dom0less systems, to reduce Xen footprint.
> 
> Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
> Signed-off-by: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
> Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>

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


> ---
> v2 -> v3:
> - remove "intend to" in commit message
> ---
>  xen/common/Kconfig | 11 +++++++++++
>  1 file changed, 11 insertions(+)
> 
> diff --git a/xen/common/Kconfig b/xen/common/Kconfig
> index be28060716..d89e9ede77 100644
> --- a/xen/common/Kconfig
> +++ b/xen/common/Kconfig
> @@ -581,4 +581,15 @@ config BUDDY_ALLOCATOR_SIZE
>  	  Amount of memory reserved for the buddy allocator to serve Xen heap,
>  	  working alongside the colored one.
>  
> +menu "Supported hypercall interfaces"
> +	visible if EXPERT
> +
> +config SYSCTL
> +	bool "Enable sysctl hypercall"
> +	default y
> +	help
> +	  This option shall only be disabled on some dom0less systems,
> +	  to reduce Xen footprint.
> +endmenu
> +
>  endmenu
> -- 
> 2.34.1
> 


From xen-devel-bounces@lists.xenproject.org Mon Apr 21 21:09:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 21 Apr 2025 21:09:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.961493.1352892 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6yOL-0003n8-Ls; Mon, 21 Apr 2025 21:09:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 961493.1352892; Mon, 21 Apr 2025 21:09: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 1u6yOL-0003n1-Ie; Mon, 21 Apr 2025 21:09:25 +0000
Received: by outflank-mailman (input) for mailman id 961493;
 Mon, 21 Apr 2025 21: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=nRXx=XH=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u6yOJ-0003mv-T6
 for xen-devel@lists.xenproject.org; Mon, 21 Apr 2025 21:09: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 e4a3482b-1ef4-11f0-9eb0-5ba50f476ded;
 Mon, 21 Apr 2025 23:09:21 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id A2A5E5C4A70;
 Mon, 21 Apr 2025 21:07:02 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1E1AEC4CEE4;
 Mon, 21 Apr 2025 21:09:17 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e4a3482b-1ef4-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1745269759;
	bh=9/XThAiTYoti++2Gk3GjxkMBDXGF5LVzbsq2x18tZEA=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=edPlcV+z4gPKbJiHmzGl1JWm6xlO22M+Zx+MEylmc11IGNUevyQU6vrFaub950BIY
	 /NayPrG9dnn+nKrc+Gy0EJ5IrqmTlPMkuarnEUNq5Rj0RRWELtHQSETZOOWkpz/b0P
	 bZn5ExZGHO+Tf/vKckGHencRCWGtAj5vnqxlT67u7Eyg5/jSR7dCDScl2XVR66wklW
	 HBANgguRHlUE2brDlhl4J4gkby9PJSIeJPmhnIgMYhLHEQNAw9p7qDq1G1tznnkiZc
	 ywUd7l1yIU11eaLGoY5vhv9DYx3kiqKLC21/jnZ7kTiT+HEaHvpM5KXbBEIWQtM3Mo
	 m8zemT9nuUbXQ==
Date: Mon, 21 Apr 2025 14:09:16 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Penny Zheng <Penny.Zheng@amd.com>
cc: xen-devel@lists.xenproject.org, ray.huang@amd.com, 
    Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Anthony PERARD <anthony.perard@vates.tech>, 
    Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>, 
    Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH v3 10/20] xen/pmstat: introduce CONFIG_PM_OP
In-Reply-To: <20250421073723.3863060-11-Penny.Zheng@amd.com>
Message-ID: <alpine.DEB.2.22.394.2504211408590.785180@ubuntu-linux-20-04-desktop>
References: <20250421073723.3863060-1-Penny.Zheng@amd.com> <20250421073723.3863060-11-Penny.Zheng@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, 21 Apr 2025, Penny Zheng wrote:
> We move the following functions into a new file drivers/acpi/pm_op.c, as
> they are all more fitting in performance controling and only called by
> do_pm_op():
>  - get_cpufreq_para()
>  - set_cpufreq_para()
>  - set_cpufreq_gov()
>  - set_cpufreq_cppc()
>  - cpufreq_driver_getavg()
>  - cpufreq_update_turbo()
>  - cpufreq_get_turbo_status()
> We introduce a new Kconfig CONFIG_PM_OP to wrap the new file.
> 
> Also, although the following helpers are only called by do_pm_op(), they have
> dependency on local variable, we wrap them with CONFIG_PM_OP in place:
>  - write_userspace_scaling_setspeed()
>  - write_ondemand_sampling_rate()
>  - write_ondemand_up_threshold()
>  - get_cpufreq_ondemand_para()
>  - cpufreq_driver.update()
>  - get_hwp_para()
> Various style corrections shall be applied at the same time while moving these
> functions, including:
>  - add extra space before and after bracket of if() and switch()
>  - fix indentation
> 
> Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>

I manually checked the code movement for correctness

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



> ---
> v2 -> v3
> - new commit
> ---
>  xen/arch/x86/acpi/cpufreq/hwp.c              |   6 +
>  xen/arch/x86/acpi/cpufreq/powernow.c         |   4 +
>  xen/common/Kconfig                           |   7 +
>  xen/common/sysctl.c                          |   4 +-
>  xen/drivers/acpi/Makefile                    |   1 +
>  xen/drivers/acpi/pm_op.c                     | 409 +++++++++++++++++++
>  xen/drivers/acpi/pmstat.c                    | 357 ----------------
>  xen/drivers/cpufreq/cpufreq_misc_governors.c |   2 +
>  xen/drivers/cpufreq/cpufreq_ondemand.c       |   2 +
>  xen/drivers/cpufreq/utility.c                |  41 --
>  xen/include/acpi/cpufreq/cpufreq.h           |   3 -
>  11 files changed, 434 insertions(+), 402 deletions(-)
>  create mode 100644 xen/drivers/acpi/pm_op.c
> 
> diff --git a/xen/arch/x86/acpi/cpufreq/hwp.c b/xen/arch/x86/acpi/cpufreq/hwp.c
> index d5fa3d47ca..e4c09244ab 100644
> --- a/xen/arch/x86/acpi/cpufreq/hwp.c
> +++ b/xen/arch/x86/acpi/cpufreq/hwp.c
> @@ -466,6 +466,7 @@ static int cf_check hwp_cpufreq_cpu_exit(struct cpufreq_policy *policy)
>      return 0;
>  }
>  
> +#ifdef CONFIG_PM_OP
>  /*
>   * The SDM reads like turbo should be disabled with MSR_IA32_PERF_CTL and
>   * PERF_CTL_TURBO_DISENGAGE, but that does not seem to actually work, at least
> @@ -508,6 +509,7 @@ static int cf_check hwp_cpufreq_update(unsigned int cpu, struct cpufreq_policy *
>  
>      return per_cpu(hwp_drv_data, cpu)->ret;
>  }
> +#endif /* CONFIG_PM_OP */
>  
>  static const struct cpufreq_driver __initconst_cf_clobber
>  hwp_cpufreq_driver = {
> @@ -516,9 +518,12 @@ hwp_cpufreq_driver = {
>      .target = hwp_cpufreq_target,
>      .init   = hwp_cpufreq_cpu_init,
>      .exit   = hwp_cpufreq_cpu_exit,
> +#ifdef CONFIG_PM_OP
>      .update = hwp_cpufreq_update,
> +#endif
>  };
>  
> +#ifdef CONFIG_PM_OP
>  int get_hwp_para(unsigned int cpu,
>                   struct xen_cppc_para *cppc_para)
>  {
> @@ -639,6 +644,7 @@ int set_hwp_para(struct cpufreq_policy *policy,
>  
>      return hwp_cpufreq_target(policy, 0, 0);
>  }
> +#endif /* CONFIG_PM_OP */
>  
>  int __init hwp_register_driver(void)
>  {
> diff --git a/xen/arch/x86/acpi/cpufreq/powernow.c b/xen/arch/x86/acpi/cpufreq/powernow.c
> index 69364e1855..12fca45b45 100644
> --- a/xen/arch/x86/acpi/cpufreq/powernow.c
> +++ b/xen/arch/x86/acpi/cpufreq/powernow.c
> @@ -49,6 +49,7 @@ static void cf_check transition_pstate(void *pstate)
>      wrmsrl(MSR_PSTATE_CTRL, *(unsigned int *)pstate);
>  }
>  
> +#ifdef CONFIG_PM_OP
>  static void cf_check update_cpb(void *data)
>  {
>      struct cpufreq_policy *policy = data;
> @@ -77,6 +78,7 @@ static int cf_check powernow_cpufreq_update(
>  
>      return 0;
>  }
> +#endif /* CONFIG_PM_OP */
>  
>  static int cf_check powernow_cpufreq_target(
>      struct cpufreq_policy *policy,
> @@ -324,7 +326,9 @@ powernow_cpufreq_driver = {
>      .target = powernow_cpufreq_target,
>      .init   = powernow_cpufreq_cpu_init,
>      .exit   = powernow_cpufreq_cpu_exit,
> +#ifdef CONFIG_PM_OP
>      .update = powernow_cpufreq_update
> +#endif
>  };
>  
>  unsigned int __init powernow_register_driver(void)
> diff --git a/xen/common/Kconfig b/xen/common/Kconfig
> index 9cccc37232..ca1f692487 100644
> --- a/xen/common/Kconfig
> +++ b/xen/common/Kconfig
> @@ -593,4 +593,11 @@ config SYSCTL
>  	  to reduce Xen footprint.
>  endmenu
>  
> +config PM_OP
> +	bool "Enable Performance Management Operation"
> +	depends on ACPI && HAS_CPUFREQ && SYSCTL
> +	default y
> +	help
> +	  This option shall enable userspace performance management control
> +	  to do power/performance analyzing and tuning.
>  endmenu
> diff --git a/xen/common/sysctl.c b/xen/common/sysctl.c
> index 2fe76362b1..4ab827b694 100644
> --- a/xen/common/sysctl.c
> +++ b/xen/common/sysctl.c
> @@ -181,13 +181,15 @@ long do_sysctl(XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl)
>      case XEN_SYSCTL_get_pmstat:
>          ret = do_get_pm_info(&op->u.get_pmstat);
>          break;
> +#endif
>  
> +#ifdef CONFIG_PM_OP
>      case XEN_SYSCTL_pm_op:
>          ret = do_pm_op(&op->u.pm_op);
>          if ( ret == -EAGAIN )
>              copyback = 1;
>          break;
> -#endif
> +#endif /* CONFIG_PM_OP */
>  
>      case XEN_SYSCTL_page_offline_op:
>      {
> diff --git a/xen/drivers/acpi/Makefile b/xen/drivers/acpi/Makefile
> index 2fc5230253..e1f84a4468 100644
> --- a/xen/drivers/acpi/Makefile
> +++ b/xen/drivers/acpi/Makefile
> @@ -6,6 +6,7 @@ obj-bin-y += tables.init.o
>  obj-$(CONFIG_ACPI_NUMA) += numa.o
>  obj-y += osl.o
>  obj-$(CONFIG_HAS_CPUFREQ) += pmstat.o
> +obj-$(CONFIG_PM_OP) += pm_op.o
>  
>  obj-$(CONFIG_X86) += hwregs.o
>  obj-$(CONFIG_X86) += reboot.o
> diff --git a/xen/drivers/acpi/pm_op.c b/xen/drivers/acpi/pm_op.c
> new file mode 100644
> index 0000000000..3123cb9556
> --- /dev/null
> +++ b/xen/drivers/acpi/pm_op.c
> @@ -0,0 +1,409 @@
> +/* SPDX-License-Identifier: GPL-2.0-or-later */
> +
> +#include <xen/acpi.h>
> +#include <xen/domain.h>
> +#include <xen/errno.h>
> +#include <xen/guest_access.h>
> +#include <xen/lib.h>
> +#include <xen/sched.h>
> +
> +#include <acpi/cpufreq/cpufreq.h>
> +#include <public/platform.h>
> +#include <public/sysctl.h>
> +
> +/*
> + * 1. Get PM parameter
> + * 2. Provide user PM control
> + */
> +static int cpufreq_update_turbo(unsigned int cpu, int new_state)
> +{
> +    struct cpufreq_policy *policy;
> +    int curr_state;
> +    int ret = 0;
> +
> +    if ( new_state != CPUFREQ_TURBO_ENABLED &&
> +         new_state != CPUFREQ_TURBO_DISABLED )
> +        return -EINVAL;
> +
> +    policy = per_cpu(cpufreq_cpu_policy, cpu);
> +    if ( !policy )
> +        return -EACCES;
> +
> +    if ( policy->turbo == CPUFREQ_TURBO_UNSUPPORTED )
> +        return -EOPNOTSUPP;
> +
> +    curr_state = policy->turbo;
> +    if ( curr_state == new_state )
> +        return 0;
> +
> +    policy->turbo = new_state;
> +    if ( cpufreq_driver.update )
> +    {
> +        ret = alternative_call(cpufreq_driver.update, cpu, policy);
> +        if ( ret )
> +            policy->turbo = curr_state;
> +    }
> +
> +    return ret;
> +}
> +
> +static int cpufreq_get_turbo_status(unsigned int cpu)
> +{
> +    struct cpufreq_policy *policy;
> +
> +    policy = per_cpu(cpufreq_cpu_policy, cpu);
> +    return policy && policy->turbo == CPUFREQ_TURBO_ENABLED;
> +}
> +
> +static int read_scaling_available_governors(char *scaling_available_governors,
> +                                            unsigned int size)
> +{
> +    unsigned int i = 0;
> +    struct cpufreq_governor *t;
> +
> +    if ( !scaling_available_governors )
> +        return -EINVAL;
> +
> +    list_for_each_entry(t, &cpufreq_governor_list, governor_list)
> +    {
> +        i += scnprintf(&scaling_available_governors[i],
> +                       CPUFREQ_NAME_LEN, "%s ", t->name);
> +        if ( i > size )
> +            return -EINVAL;
> +    }
> +    scaling_available_governors[i-1] = '\0';
> +
> +    return 0;
> +}
> +
> +static int get_cpufreq_para(struct xen_sysctl_pm_op *op)
> +{
> +    uint32_t ret = 0;
> +    const struct processor_pminfo *pmpt;
> +    struct cpufreq_policy *policy;
> +    uint32_t gov_num = 0;
> +    uint32_t *data;
> +    char     *scaling_available_governors;
> +    struct list_head *pos;
> +    unsigned int cpu, i = 0;
> +
> +    pmpt = processor_pminfo[op->cpuid];
> +    policy = per_cpu(cpufreq_cpu_policy, op->cpuid);
> +
> +    if ( !pmpt || !pmpt->perf.states ||
> +         !policy || !policy->governor )
> +        return -EINVAL;
> +
> +    list_for_each(pos, &cpufreq_governor_list)
> +        gov_num++;
> +
> +    if ( (op->u.get_para.cpu_num  != cpumask_weight(policy->cpus)) ||
> +         (op->u.get_para.freq_num != pmpt->perf.state_count)    ||
> +         (op->u.get_para.gov_num  != gov_num) )
> +    {
> +        op->u.get_para.cpu_num =  cpumask_weight(policy->cpus);
> +        op->u.get_para.freq_num = pmpt->perf.state_count;
> +        op->u.get_para.gov_num  = gov_num;
> +        return -EAGAIN;
> +    }
> +
> +    if ( !(data = xzalloc_array(uint32_t,
> +                                max(op->u.get_para.cpu_num,
> +                                    op->u.get_para.freq_num))) )
> +        return -ENOMEM;
> +
> +    for_each_cpu(cpu, policy->cpus)
> +        data[i++] = cpu;
> +    ret = copy_to_guest(op->u.get_para.affected_cpus,
> +                        data, op->u.get_para.cpu_num);
> +
> +    for ( i = 0; i < op->u.get_para.freq_num; i++ )
> +        data[i] = pmpt->perf.states[i].core_frequency * 1000;
> +    ret += copy_to_guest(op->u.get_para.scaling_available_frequencies,
> +                         data, op->u.get_para.freq_num);
> +
> +    xfree(data);
> +    if ( ret )
> +        return -EFAULT;
> +
> +    op->u.get_para.cpuinfo_cur_freq =
> +        cpufreq_driver.get ? alternative_call(cpufreq_driver.get, op->cpuid)
> +                           : policy->cur;
> +    op->u.get_para.cpuinfo_max_freq = policy->cpuinfo.max_freq;
> +    op->u.get_para.cpuinfo_min_freq = policy->cpuinfo.min_freq;
> +    op->u.get_para.turbo_enabled = cpufreq_get_turbo_status(op->cpuid);
> +
> +    if ( cpufreq_driver.name[0] )
> +        strlcpy(op->u.get_para.scaling_driver,
> +                cpufreq_driver.name, CPUFREQ_NAME_LEN);
> +    else
> +        strlcpy(op->u.get_para.scaling_driver, "Unknown", CPUFREQ_NAME_LEN);
> +
> +    if ( IS_ENABLED(CONFIG_INTEL) &&
> +         !strncmp(op->u.get_para.scaling_driver, XEN_HWP_DRIVER_NAME,
> +                  CPUFREQ_NAME_LEN) )
> +        ret = get_hwp_para(policy->cpu, &op->u.get_para.u.cppc_para);
> +    else
> +    {
> +        if ( !(scaling_available_governors =
> +               xzalloc_array(char, gov_num * CPUFREQ_NAME_LEN)) )
> +            return -ENOMEM;
> +        if ( (ret = read_scaling_available_governors(
> +                        scaling_available_governors,
> +                        (gov_num * CPUFREQ_NAME_LEN *
> +                         sizeof(*scaling_available_governors)))) )
> +        {
> +            xfree(scaling_available_governors);
> +            return ret;
> +        }
> +        ret = copy_to_guest(op->u.get_para.scaling_available_governors,
> +                            scaling_available_governors,
> +                            gov_num * CPUFREQ_NAME_LEN);
> +        xfree(scaling_available_governors);
> +        if ( ret )
> +            return -EFAULT;
> +
> +        op->u.get_para.u.s.scaling_cur_freq = policy->cur;
> +        op->u.get_para.u.s.scaling_max_freq = policy->max;
> +        op->u.get_para.u.s.scaling_min_freq = policy->min;
> +
> +        if ( policy->governor->name[0] )
> +            strlcpy(op->u.get_para.u.s.scaling_governor,
> +                    policy->governor->name, CPUFREQ_NAME_LEN);
> +        else
> +            strlcpy(op->u.get_para.u.s.scaling_governor, "Unknown",
> +                    CPUFREQ_NAME_LEN);
> +
> +        /* governor specific para */
> +        if ( !strncasecmp(op->u.get_para.u.s.scaling_governor,
> +                          "userspace", CPUFREQ_NAME_LEN) )
> +            op->u.get_para.u.s.u.userspace.scaling_setspeed = policy->cur;
> +
> +        if ( !strncasecmp(op->u.get_para.u.s.scaling_governor,
> +                          "ondemand", CPUFREQ_NAME_LEN) )
> +            ret = get_cpufreq_ondemand_para(
> +                &op->u.get_para.u.s.u.ondemand.sampling_rate_max,
> +                &op->u.get_para.u.s.u.ondemand.sampling_rate_min,
> +                &op->u.get_para.u.s.u.ondemand.sampling_rate,
> +                &op->u.get_para.u.s.u.ondemand.up_threshold);
> +    }
> +
> +    return ret;
> +}
> +
> +static int set_cpufreq_gov(struct xen_sysctl_pm_op *op)
> +{
> +    struct cpufreq_policy new_policy, *old_policy;
> +
> +    old_policy = per_cpu(cpufreq_cpu_policy, op->cpuid);
> +    if ( !old_policy )
> +        return -EINVAL;
> +
> +    memcpy(&new_policy, old_policy, sizeof(struct cpufreq_policy));
> +
> +    new_policy.governor = __find_governor(op->u.set_gov.scaling_governor);
> +    if ( new_policy.governor == NULL )
> +        return -EINVAL;
> +
> +    return __cpufreq_set_policy(old_policy, &new_policy);
> +}
> +
> +static int set_cpufreq_para(struct xen_sysctl_pm_op *op)
> +{
> +    int ret = 0;
> +    struct cpufreq_policy *policy;
> +
> +    policy = per_cpu(cpufreq_cpu_policy, op->cpuid);
> +
> +    if ( !policy || !policy->governor )
> +        return -EINVAL;
> +
> +    if ( hwp_active() )
> +        return -EOPNOTSUPP;
> +
> +    switch( op->u.set_para.ctrl_type )
> +    {
> +    case SCALING_MAX_FREQ:
> +    {
> +        struct cpufreq_policy new_policy;
> +
> +        memcpy(&new_policy, policy, sizeof(struct cpufreq_policy));
> +        new_policy.max = op->u.set_para.ctrl_value;
> +        ret = __cpufreq_set_policy(policy, &new_policy);
> +
> +        break;
> +    }
> +
> +    case SCALING_MIN_FREQ:
> +    {
> +        struct cpufreq_policy new_policy;
> +
> +        memcpy(&new_policy, policy, sizeof(struct cpufreq_policy));
> +        new_policy.min = op->u.set_para.ctrl_value;
> +        ret = __cpufreq_set_policy(policy, &new_policy);
> +
> +        break;
> +    }
> +
> +    case SCALING_SETSPEED:
> +    {
> +        unsigned int freq =op->u.set_para.ctrl_value;
> +
> +        if ( !strncasecmp(policy->governor->name,
> +                          "userspace", CPUFREQ_NAME_LEN) )
> +            ret = write_userspace_scaling_setspeed(op->cpuid, freq);
> +        else
> +            ret = -EINVAL;
> +
> +        break;
> +    }
> +
> +    case SAMPLING_RATE:
> +    {
> +        unsigned int sampling_rate = op->u.set_para.ctrl_value;
> +
> +        if ( !strncasecmp(policy->governor->name,
> +                          "ondemand", CPUFREQ_NAME_LEN) )
> +            ret = write_ondemand_sampling_rate(sampling_rate);
> +        else
> +            ret = -EINVAL;
> +
> +        break;
> +    }
> +
> +    case UP_THRESHOLD:
> +    {
> +        unsigned int up_threshold = op->u.set_para.ctrl_value;
> +
> +        if ( !strncasecmp(policy->governor->name,
> +                          "ondemand", CPUFREQ_NAME_LEN) )
> +            ret = write_ondemand_up_threshold(up_threshold);
> +        else
> +            ret = -EINVAL;
> +
> +        break;
> +    }
> +
> +    default:
> +        ret = -EINVAL;
> +        break;
> +    }
> +
> +    return ret;
> +}
> +
> +static int set_cpufreq_cppc(struct xen_sysctl_pm_op *op)
> +{
> +    struct cpufreq_policy *policy = per_cpu(cpufreq_cpu_policy, op->cpuid);
> +
> +    if ( !policy || !policy->governor )
> +        return -ENOENT;
> +
> +    if ( !hwp_active() )
> +        return -EOPNOTSUPP;
> +
> +    return set_hwp_para(policy, &op->u.set_cppc);
> +}
> +
> +int do_pm_op(struct xen_sysctl_pm_op *op)
> +{
> +    int ret = 0;
> +    const struct processor_pminfo *pmpt;
> +
> +    switch ( op->cmd )
> +    {
> +    case XEN_SYSCTL_pm_op_set_sched_opt_smt:
> +    {
> +        uint32_t saved_value = sched_smt_power_savings;
> +
> +        if ( op->cpuid != 0 )
> +            return -EINVAL;
> +        sched_smt_power_savings = !!op->u.set_sched_opt_smt;
> +        op->u.set_sched_opt_smt = saved_value;
> +        return 0;
> +    }
> +
> +    case XEN_SYSCTL_pm_op_get_max_cstate:
> +        BUILD_BUG_ON(XEN_SYSCTL_CX_UNLIMITED != UINT_MAX);
> +        if ( op->cpuid == 0 )
> +            op->u.get_max_cstate = acpi_get_cstate_limit();
> +        else if ( op->cpuid == 1 )
> +            op->u.get_max_cstate = acpi_get_csubstate_limit();
> +        else
> +            ret = -EINVAL;
> +        return ret;
> +
> +    case XEN_SYSCTL_pm_op_set_max_cstate:
> +        if ( op->cpuid == 0 )
> +            acpi_set_cstate_limit(op->u.set_max_cstate);
> +        else if ( op->cpuid == 1 )
> +            acpi_set_csubstate_limit(op->u.set_max_cstate);
> +        else
> +            ret = -EINVAL;
> +        return ret;
> +    }
> +
> +    if ( op->cpuid >= nr_cpu_ids || !cpu_online(op->cpuid) )
> +        return -EINVAL;
> +    pmpt = processor_pminfo[op->cpuid];
> +
> +    switch ( op->cmd & PM_PARA_CATEGORY_MASK )
> +    {
> +    case CPUFREQ_PARA:
> +        if ( !(xen_processor_pmbits & XEN_PROCESSOR_PM_PX) )
> +            return -ENODEV;
> +        if ( !pmpt || !(pmpt->perf.init & XEN_PX_INIT) )
> +            return -EINVAL;
> +        break;
> +    }
> +
> +    switch ( op->cmd )
> +    {
> +    case GET_CPUFREQ_PARA:
> +    {
> +        ret = get_cpufreq_para(op);
> +        break;
> +    }
> +
> +    case SET_CPUFREQ_GOV:
> +    {
> +        ret = set_cpufreq_gov(op);
> +        break;
> +    }
> +
> +    case SET_CPUFREQ_PARA:
> +    {
> +        ret = set_cpufreq_para(op);
> +        break;
> +    }
> +
> +    case SET_CPUFREQ_CPPC:
> +        ret = set_cpufreq_cppc(op);
> +        break;
> +
> +    case GET_CPUFREQ_AVGFREQ:
> +    {
> +        op->u.get_avgfreq = cpufreq_driver_getavg(op->cpuid, USR_GETAVG);
> +        break;
> +    }
> +
> +    case XEN_SYSCTL_pm_op_enable_turbo:
> +    {
> +        ret = cpufreq_update_turbo(op->cpuid, CPUFREQ_TURBO_ENABLED);
> +        break;
> +    }
> +
> +    case XEN_SYSCTL_pm_op_disable_turbo:
> +    {
> +        ret = cpufreq_update_turbo(op->cpuid, CPUFREQ_TURBO_DISABLED);
> +        break;
> +    }
> +
> +    default:
> +        printk("not defined sub-hypercall @ do_pm_op\n");
> +        ret = -ENOSYS;
> +        break;
> +    }
> +
> +    return ret;
> +}
> diff --git a/xen/drivers/acpi/pmstat.c b/xen/drivers/acpi/pmstat.c
> index abfdc45cc2..61b60e59a2 100644
> --- a/xen/drivers/acpi/pmstat.c
> +++ b/xen/drivers/acpi/pmstat.c
> @@ -330,360 +330,3 @@ int do_get_pm_info(struct xen_sysctl_get_pmstat *op)
>  
>      return ret;
>  }
> -
> -/*
> - * 1. Get PM parameter
> - * 2. Provide user PM control
> - */
> -static int read_scaling_available_governors(char *scaling_available_governors,
> -                                            unsigned int size)
> -{
> -    unsigned int i = 0;
> -    struct cpufreq_governor *t;
> -
> -    if ( !scaling_available_governors )
> -        return -EINVAL;
> -
> -    list_for_each_entry(t, &cpufreq_governor_list, governor_list)
> -    {
> -        i += scnprintf(&scaling_available_governors[i],
> -                       CPUFREQ_NAME_LEN, "%s ", t->name);
> -        if ( i > size )
> -            return -EINVAL;
> -    }
> -    scaling_available_governors[i-1] = '\0';
> -
> -    return 0;
> -}
> -
> -static int get_cpufreq_para(struct xen_sysctl_pm_op *op)
> -{
> -    uint32_t ret = 0;
> -    const struct processor_pminfo *pmpt;
> -    struct cpufreq_policy *policy;
> -    uint32_t gov_num = 0;
> -    uint32_t *data;
> -    char     *scaling_available_governors;
> -    struct list_head *pos;
> -    unsigned int cpu, i = 0;
> -
> -    pmpt = processor_pminfo[op->cpuid];
> -    policy = per_cpu(cpufreq_cpu_policy, op->cpuid);
> -
> -    if ( !pmpt || !pmpt->perf.states ||
> -         !policy || !policy->governor )
> -        return -EINVAL;
> -
> -    list_for_each(pos, &cpufreq_governor_list)
> -        gov_num++;
> -
> -    if ( (op->u.get_para.cpu_num  != cpumask_weight(policy->cpus)) ||
> -         (op->u.get_para.freq_num != pmpt->perf.state_count)    ||
> -         (op->u.get_para.gov_num  != gov_num) )
> -    {
> -        op->u.get_para.cpu_num =  cpumask_weight(policy->cpus);
> -        op->u.get_para.freq_num = pmpt->perf.state_count;
> -        op->u.get_para.gov_num  = gov_num;
> -        return -EAGAIN;
> -    }
> -
> -    if ( !(data = xzalloc_array(uint32_t,
> -                                max(op->u.get_para.cpu_num,
> -                                    op->u.get_para.freq_num))) )
> -        return -ENOMEM;
> -
> -    for_each_cpu(cpu, policy->cpus)
> -        data[i++] = cpu;
> -    ret = copy_to_guest(op->u.get_para.affected_cpus,
> -                        data, op->u.get_para.cpu_num);
> -
> -    for ( i = 0; i < op->u.get_para.freq_num; i++ )
> -        data[i] = pmpt->perf.states[i].core_frequency * 1000;
> -    ret += copy_to_guest(op->u.get_para.scaling_available_frequencies,
> -                         data, op->u.get_para.freq_num);
> -
> -    xfree(data);
> -    if ( ret )
> -        return -EFAULT;
> -
> -    op->u.get_para.cpuinfo_cur_freq =
> -        cpufreq_driver.get ? alternative_call(cpufreq_driver.get, op->cpuid)
> -                           : policy->cur;
> -    op->u.get_para.cpuinfo_max_freq = policy->cpuinfo.max_freq;
> -    op->u.get_para.cpuinfo_min_freq = policy->cpuinfo.min_freq;
> -    op->u.get_para.turbo_enabled = cpufreq_get_turbo_status(op->cpuid);
> -
> -    if ( cpufreq_driver.name[0] )
> -        strlcpy(op->u.get_para.scaling_driver,
> -            cpufreq_driver.name, CPUFREQ_NAME_LEN);
> -    else
> -        strlcpy(op->u.get_para.scaling_driver, "Unknown", CPUFREQ_NAME_LEN);
> -
> -    if ( IS_ENABLED(CONFIG_INTEL) &&
> -         !strncmp(op->u.get_para.scaling_driver, XEN_HWP_DRIVER_NAME,
> -                  CPUFREQ_NAME_LEN) )
> -        ret = get_hwp_para(policy->cpu, &op->u.get_para.u.cppc_para);
> -    else
> -    {
> -        if ( !(scaling_available_governors =
> -               xzalloc_array(char, gov_num * CPUFREQ_NAME_LEN)) )
> -            return -ENOMEM;
> -        if ( (ret = read_scaling_available_governors(
> -                        scaling_available_governors,
> -                        (gov_num * CPUFREQ_NAME_LEN *
> -                         sizeof(*scaling_available_governors)))) )
> -        {
> -            xfree(scaling_available_governors);
> -            return ret;
> -        }
> -        ret = copy_to_guest(op->u.get_para.scaling_available_governors,
> -                            scaling_available_governors,
> -                            gov_num * CPUFREQ_NAME_LEN);
> -        xfree(scaling_available_governors);
> -        if ( ret )
> -            return -EFAULT;
> -
> -        op->u.get_para.u.s.scaling_cur_freq = policy->cur;
> -        op->u.get_para.u.s.scaling_max_freq = policy->max;
> -        op->u.get_para.u.s.scaling_min_freq = policy->min;
> -
> -        if ( policy->governor->name[0] )
> -            strlcpy(op->u.get_para.u.s.scaling_governor,
> -                policy->governor->name, CPUFREQ_NAME_LEN);
> -        else
> -            strlcpy(op->u.get_para.u.s.scaling_governor, "Unknown",
> -                    CPUFREQ_NAME_LEN);
> -
> -        /* governor specific para */
> -        if ( !strncasecmp(op->u.get_para.u.s.scaling_governor,
> -                          "userspace", CPUFREQ_NAME_LEN) )
> -            op->u.get_para.u.s.u.userspace.scaling_setspeed = policy->cur;
> -
> -        if ( !strncasecmp(op->u.get_para.u.s.scaling_governor,
> -                          "ondemand", CPUFREQ_NAME_LEN) )
> -            ret = get_cpufreq_ondemand_para(
> -                &op->u.get_para.u.s.u.ondemand.sampling_rate_max,
> -                &op->u.get_para.u.s.u.ondemand.sampling_rate_min,
> -                &op->u.get_para.u.s.u.ondemand.sampling_rate,
> -                &op->u.get_para.u.s.u.ondemand.up_threshold);
> -    }
> -
> -    return ret;
> -}
> -
> -static int set_cpufreq_gov(struct xen_sysctl_pm_op *op)
> -{
> -    struct cpufreq_policy new_policy, *old_policy;
> -
> -    old_policy = per_cpu(cpufreq_cpu_policy, op->cpuid);
> -    if ( !old_policy )
> -        return -EINVAL;
> -
> -    memcpy(&new_policy, old_policy, sizeof(struct cpufreq_policy));
> -
> -    new_policy.governor = __find_governor(op->u.set_gov.scaling_governor);
> -    if (new_policy.governor == NULL)
> -        return -EINVAL;
> -
> -    return __cpufreq_set_policy(old_policy, &new_policy);
> -}
> -
> -static int set_cpufreq_para(struct xen_sysctl_pm_op *op)
> -{
> -    int ret = 0;
> -    struct cpufreq_policy *policy;
> -
> -    policy = per_cpu(cpufreq_cpu_policy, op->cpuid);
> -
> -    if ( !policy || !policy->governor )
> -        return -EINVAL;
> -
> -    if ( hwp_active() )
> -        return -EOPNOTSUPP;
> -
> -    switch(op->u.set_para.ctrl_type)
> -    {
> -    case SCALING_MAX_FREQ:
> -    {
> -        struct cpufreq_policy new_policy;
> -
> -        memcpy(&new_policy, policy, sizeof(struct cpufreq_policy));
> -        new_policy.max = op->u.set_para.ctrl_value;
> -        ret = __cpufreq_set_policy(policy, &new_policy);
> -
> -        break;
> -    }
> -
> -    case SCALING_MIN_FREQ:
> -    {
> -        struct cpufreq_policy new_policy;
> -
> -        memcpy(&new_policy, policy, sizeof(struct cpufreq_policy));
> -        new_policy.min = op->u.set_para.ctrl_value;
> -        ret = __cpufreq_set_policy(policy, &new_policy);
> -
> -        break;
> -    }
> -
> -    case SCALING_SETSPEED:
> -    {
> -        unsigned int freq =op->u.set_para.ctrl_value;
> -
> -        if ( !strncasecmp(policy->governor->name,
> -                          "userspace", CPUFREQ_NAME_LEN) )
> -            ret = write_userspace_scaling_setspeed(op->cpuid, freq);
> -        else
> -            ret = -EINVAL;
> -
> -        break;
> -    }
> -
> -    case SAMPLING_RATE:
> -    {
> -        unsigned int sampling_rate = op->u.set_para.ctrl_value;
> -
> -        if ( !strncasecmp(policy->governor->name,
> -                          "ondemand", CPUFREQ_NAME_LEN) )
> -            ret = write_ondemand_sampling_rate(sampling_rate);
> -        else
> -            ret = -EINVAL;
> -
> -        break;
> -    }
> -
> -    case UP_THRESHOLD:
> -    {
> -        unsigned int up_threshold = op->u.set_para.ctrl_value;
> -
> -        if ( !strncasecmp(policy->governor->name,
> -                          "ondemand", CPUFREQ_NAME_LEN) )
> -            ret = write_ondemand_up_threshold(up_threshold);
> -        else
> -            ret = -EINVAL;
> -
> -        break;
> -    }
> -
> -    default:
> -        ret = -EINVAL;
> -        break;
> -    }
> -
> -    return ret;
> -}
> -
> -static int set_cpufreq_cppc(struct xen_sysctl_pm_op *op)
> -{
> -    struct cpufreq_policy *policy = per_cpu(cpufreq_cpu_policy, op->cpuid);
> -
> -    if ( !policy || !policy->governor )
> -        return -ENOENT;
> -
> -    if ( !hwp_active() )
> -        return -EOPNOTSUPP;
> -
> -    return set_hwp_para(policy, &op->u.set_cppc);
> -}
> -
> -int do_pm_op(struct xen_sysctl_pm_op *op)
> -{
> -    int ret = 0;
> -    const struct processor_pminfo *pmpt;
> -
> -    switch ( op->cmd )
> -    {
> -    case XEN_SYSCTL_pm_op_set_sched_opt_smt:
> -    {
> -        uint32_t saved_value = sched_smt_power_savings;
> -
> -        if ( op->cpuid != 0 )
> -            return -EINVAL;
> -        sched_smt_power_savings = !!op->u.set_sched_opt_smt;
> -        op->u.set_sched_opt_smt = saved_value;
> -        return 0;
> -    }
> -
> -    case XEN_SYSCTL_pm_op_get_max_cstate:
> -        BUILD_BUG_ON(XEN_SYSCTL_CX_UNLIMITED != UINT_MAX);
> -        if ( op->cpuid == 0 )
> -            op->u.get_max_cstate = acpi_get_cstate_limit();
> -        else if ( op->cpuid == 1 )
> -            op->u.get_max_cstate = acpi_get_csubstate_limit();
> -        else
> -            ret = -EINVAL;
> -        return ret;
> -
> -    case XEN_SYSCTL_pm_op_set_max_cstate:
> -        if ( op->cpuid == 0 )
> -            acpi_set_cstate_limit(op->u.set_max_cstate);
> -        else if ( op->cpuid == 1 )
> -            acpi_set_csubstate_limit(op->u.set_max_cstate);
> -        else
> -            ret = -EINVAL;
> -        return ret;
> -    }
> -
> -    if ( op->cpuid >= nr_cpu_ids || !cpu_online(op->cpuid) )
> -        return -EINVAL;
> -    pmpt = processor_pminfo[op->cpuid];
> -
> -    switch ( op->cmd & PM_PARA_CATEGORY_MASK )
> -    {
> -    case CPUFREQ_PARA:
> -        if ( !(xen_processor_pmbits & XEN_PROCESSOR_PM_PX) )
> -            return -ENODEV;
> -        if ( !pmpt || !(pmpt->perf.init & XEN_PX_INIT) )
> -            return -EINVAL;
> -        break;
> -    }
> -
> -    switch ( op->cmd )
> -    {
> -    case GET_CPUFREQ_PARA:
> -    {
> -        ret = get_cpufreq_para(op);
> -        break;
> -    }
> -
> -    case SET_CPUFREQ_GOV:
> -    {
> -        ret = set_cpufreq_gov(op);
> -        break;
> -    }
> -
> -    case SET_CPUFREQ_PARA:
> -    {
> -        ret = set_cpufreq_para(op);
> -        break;
> -    }
> -
> -    case SET_CPUFREQ_CPPC:
> -        ret = set_cpufreq_cppc(op);
> -        break;
> -
> -    case GET_CPUFREQ_AVGFREQ:
> -    {
> -        op->u.get_avgfreq = cpufreq_driver_getavg(op->cpuid, USR_GETAVG);
> -        break;
> -    }
> -
> -    case XEN_SYSCTL_pm_op_enable_turbo:
> -    {
> -        ret = cpufreq_update_turbo(op->cpuid, CPUFREQ_TURBO_ENABLED);
> -        break;
> -    }
> -
> -    case XEN_SYSCTL_pm_op_disable_turbo:
> -    {
> -        ret = cpufreq_update_turbo(op->cpuid, CPUFREQ_TURBO_DISABLED);
> -        break;
> -    }
> -
> -    default:
> -        printk("not defined sub-hypercall @ do_pm_op\n");
> -        ret = -ENOSYS;
> -        break;
> -    }
> -
> -    return ret;
> -}
> diff --git a/xen/drivers/cpufreq/cpufreq_misc_governors.c b/xen/drivers/cpufreq/cpufreq_misc_governors.c
> index 0327fad23b..e5cb9ab02f 100644
> --- a/xen/drivers/cpufreq/cpufreq_misc_governors.c
> +++ b/xen/drivers/cpufreq/cpufreq_misc_governors.c
> @@ -64,6 +64,7 @@ static int cf_check cpufreq_governor_userspace(
>      return ret;
>  }
>  
> +#ifdef CONFIG_PM_OP
>  int write_userspace_scaling_setspeed(unsigned int cpu, unsigned int freq)
>  {
>      struct cpufreq_policy *policy;
> @@ -80,6 +81,7 @@ int write_userspace_scaling_setspeed(unsigned int cpu, unsigned int freq)
>  
>      return __cpufreq_driver_target(policy, freq, CPUFREQ_RELATION_L);
>  }
> +#endif /* CONFIG_PM_OP */
>  
>  static bool __init cf_check
>  cpufreq_userspace_handle_option(const char *name, const char *val)
> diff --git a/xen/drivers/cpufreq/cpufreq_ondemand.c b/xen/drivers/cpufreq/cpufreq_ondemand.c
> index 06cfc88d30..0126a3f5d9 100644
> --- a/xen/drivers/cpufreq/cpufreq_ondemand.c
> +++ b/xen/drivers/cpufreq/cpufreq_ondemand.c
> @@ -57,6 +57,7 @@ static struct dbs_tuners {
>  
>  static DEFINE_PER_CPU(struct timer, dbs_timer);
>  
> +#ifdef CONFIG_PM_OP
>  int write_ondemand_sampling_rate(unsigned int sampling_rate)
>  {
>      if ( (sampling_rate > MAX_SAMPLING_RATE / MICROSECS(1)) ||
> @@ -93,6 +94,7 @@ int get_cpufreq_ondemand_para(uint32_t *sampling_rate_max,
>  
>      return 0;
>  }
> +#endif /* CONFIG_PM_OP */
>  
>  static void dbs_check_cpu(struct cpu_dbs_info_s *this_dbs_info)
>  {
> diff --git a/xen/drivers/cpufreq/utility.c b/xen/drivers/cpufreq/utility.c
> index 723045b240..987c3b5929 100644
> --- a/xen/drivers/cpufreq/utility.c
> +++ b/xen/drivers/cpufreq/utility.c
> @@ -224,47 +224,6 @@ int cpufreq_driver_getavg(unsigned int cpu, unsigned int flag)
>      return policy->cur;
>  }
>  
> -int cpufreq_update_turbo(unsigned int cpu, int new_state)
> -{
> -    struct cpufreq_policy *policy;
> -    int curr_state;
> -    int ret = 0;
> -
> -    if (new_state != CPUFREQ_TURBO_ENABLED &&
> -        new_state != CPUFREQ_TURBO_DISABLED)
> -        return -EINVAL;
> -
> -    policy = per_cpu(cpufreq_cpu_policy, cpu);
> -    if (!policy)
> -        return -EACCES;
> -
> -    if (policy->turbo == CPUFREQ_TURBO_UNSUPPORTED)
> -        return -EOPNOTSUPP;
> -
> -    curr_state = policy->turbo;
> -    if (curr_state == new_state)
> -        return 0;
> -
> -    policy->turbo = new_state;
> -    if (cpufreq_driver.update)
> -    {
> -        ret = alternative_call(cpufreq_driver.update, cpu, policy);
> -        if (ret)
> -            policy->turbo = curr_state;
> -    }
> -
> -    return ret;
> -}
> -
> -
> -int cpufreq_get_turbo_status(unsigned int cpu)
> -{
> -    struct cpufreq_policy *policy;
> -
> -    policy = per_cpu(cpufreq_cpu_policy, cpu);
> -    return policy && policy->turbo == CPUFREQ_TURBO_ENABLED;
> -}
> -
>  /*********************************************************************
>   *                 POLICY                                            *
>   *********************************************************************/
> diff --git a/xen/include/acpi/cpufreq/cpufreq.h b/xen/include/acpi/cpufreq/cpufreq.h
> index 241117a9af..0742aa9f44 100644
> --- a/xen/include/acpi/cpufreq/cpufreq.h
> +++ b/xen/include/acpi/cpufreq/cpufreq.h
> @@ -143,9 +143,6 @@ extern int cpufreq_driver_getavg(unsigned int cpu, unsigned int flag);
>  #define CPUFREQ_TURBO_UNSUPPORTED   0
>  #define CPUFREQ_TURBO_ENABLED       1
>  
> -int cpufreq_update_turbo(unsigned int cpu, int new_state);
> -int cpufreq_get_turbo_status(unsigned int cpu);
> -
>  static inline int
>  __cpufreq_governor(struct cpufreq_policy *policy, unsigned int event)
>  {
> -- 
> 2.34.1
> 


From xen-devel-bounces@lists.xenproject.org Mon Apr 21 21:12:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 21 Apr 2025 21:12:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.961508.1352903 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6yRi-0005jT-8L; Mon, 21 Apr 2025 21:12:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 961508.1352903; Mon, 21 Apr 2025 21:12: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 1u6yRi-0005jM-5Z; Mon, 21 Apr 2025 21:12:54 +0000
Received: by outflank-mailman (input) for mailman id 961508;
 Mon, 21 Apr 2025 21:12: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=nRXx=XH=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u6yRg-0005jG-7n
 for xen-devel@lists.xenproject.org; Mon, 21 Apr 2025 21:12:52 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 61981bca-1ef5-11f0-9eb0-5ba50f476ded;
 Mon, 21 Apr 2025 23:12:51 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 6203A6115F;
 Mon, 21 Apr 2025 21:12:30 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 10C48C4CEE4;
 Mon, 21 Apr 2025 21:12:47 +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: 61981bca-1ef5-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1745269969;
	bh=x4Ry+yAMLjZjX6wy72FRDXG21CUUF3lvgFzBcYje9IE=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=Aiih96HbRAfbAREfVZ06fr3pAyWcb9lEbsScvw08zkvmJtcNNXM2HDlKNxeFfoDFR
	 aBX+6fdA+LDKAqC1vklTotXeW1lasUEJKd8E1iBxepfPeHigMjOap9NN7MOS3ihSeU
	 p+EBW0LAsyNSfWYxQUTEEPRetJ48mc/mod5EUDtAAMVLXJ89ABGEGSMgOp7sEFnPWe
	 qtYEvpFo18DJIfAZv/pGe2vHKiNWnBa9COdAv51hrxQUzAei61aOab6yttdc1ug9GA
	 imoPfFsA+xMyjyAmj6skHiwF40hT0syzHGFVHDwREy4YGtYFif4HA6Ez+yWXN3Wgrf
	 yTCAv6zKnCGJg==
Date: Mon, 21 Apr 2025 14:12:46 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Penny Zheng <Penny.Zheng@amd.com>
cc: xen-devel@lists.xenproject.org, ray.huang@amd.com, 
    Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Anthony PERARD <anthony.perard@vates.tech>, 
    Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>, 
    Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH v3 11/20] xen/sysctl: introduce CONFIG_PM_STATS
In-Reply-To: <20250421073723.3863060-12-Penny.Zheng@amd.com>
Message-ID: <alpine.DEB.2.22.394.2504211412370.785180@ubuntu-linux-20-04-desktop>
References: <20250421073723.3863060-1-Penny.Zheng@amd.com> <20250421073723.3863060-12-Penny.Zheng@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, 21 Apr 2025, Penny Zheng wrote:
> We introduce a new Kconfig CONFIG_PM_STATS for wrapping all operations
> regarding performance management statistics.
> The major codes reside in xen/drivers/acpi/pmstat.c, including the
> pm-statistic-related sysctl op: do_get_pm_info().
> CONFIG_PM_STATS also shall depend on CONFIG_SYSCTL
> 
> Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>

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


> ---
> v1 -> v2:
> - rename to CONFIG_PM_STATS
> - fix indention and stray semicolon
> - make code movements into a new commit
> - No need to wrap inline functions and declarations
> ---
> v2 -> v3:
> - sepearte functions related to do_pm_op() into a new commit
> - both braces shall be moved to the line with the closing parenthesis
> ---
>  xen/arch/x86/acpi/cpu_idle.c              |  2 ++
>  xen/common/Kconfig                        |  8 ++++++++
>  xen/common/sysctl.c                       |  4 ++--
>  xen/drivers/acpi/Makefile                 |  2 +-
>  xen/include/acpi/cpufreq/processor_perf.h | 10 ++++++++++
>  5 files changed, 23 insertions(+), 3 deletions(-)
> 
> diff --git a/xen/arch/x86/acpi/cpu_idle.c b/xen/arch/x86/acpi/cpu_idle.c
> index 420198406d..b537ac4cd6 100644
> --- a/xen/arch/x86/acpi/cpu_idle.c
> +++ b/xen/arch/x86/acpi/cpu_idle.c
> @@ -1487,6 +1487,7 @@ static void amd_cpuidle_init(struct acpi_processor_power *power)
>          vendor_override = -1;
>  }
>  
> +#ifdef CONFIG_PM_STATS
>  uint32_t pmstat_get_cx_nr(unsigned int cpu)
>  {
>      return processor_powers[cpu] ? processor_powers[cpu]->count : 0;
> @@ -1606,6 +1607,7 @@ int pmstat_reset_cx_stat(unsigned int cpu)
>  {
>      return 0;
>  }
> +#endif /* CONFIG_PM_STATS */
>  
>  void cpuidle_disable_deep_cstate(void)
>  {
> diff --git a/xen/common/Kconfig b/xen/common/Kconfig
> index ca1f692487..d8e242eebc 100644
> --- a/xen/common/Kconfig
> +++ b/xen/common/Kconfig
> @@ -600,4 +600,12 @@ config PM_OP
>  	help
>  	  This option shall enable userspace performance management control
>  	  to do power/performance analyzing and tuning.
> +
> +config PM_STATS
> +	bool "Enable Performance Management Statistics"
> +	depends on ACPI && HAS_CPUFREQ && SYSCTL
> +	default y
> +	help
> +	  Enable collection of performance management statistics to aid in
> +	  analyzing and tuning power/performance characteristics of the system
>  endmenu
> diff --git a/xen/common/sysctl.c b/xen/common/sysctl.c
> index 4ab827b694..baaad3bd42 100644
> --- a/xen/common/sysctl.c
> +++ b/xen/common/sysctl.c
> @@ -177,11 +177,11 @@ long do_sysctl(XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl)
>          op->u.availheap.avail_bytes <<= PAGE_SHIFT;
>          break;
>  
> -#if defined (CONFIG_ACPI) && defined (CONFIG_HAS_CPUFREQ)
> +#ifdef CONFIG_PM_STATS
>      case XEN_SYSCTL_get_pmstat:
>          ret = do_get_pm_info(&op->u.get_pmstat);
>          break;
> -#endif
> +#endif /* CONFIG_PM_STATS */
>  
>  #ifdef CONFIG_PM_OP
>      case XEN_SYSCTL_pm_op:
> diff --git a/xen/drivers/acpi/Makefile b/xen/drivers/acpi/Makefile
> index e1f84a4468..b52b006100 100644
> --- a/xen/drivers/acpi/Makefile
> +++ b/xen/drivers/acpi/Makefile
> @@ -5,7 +5,7 @@ obj-$(CONFIG_X86) += apei/
>  obj-bin-y += tables.init.o
>  obj-$(CONFIG_ACPI_NUMA) += numa.o
>  obj-y += osl.o
> -obj-$(CONFIG_HAS_CPUFREQ) += pmstat.o
> +obj-$(CONFIG_PM_STATS) += pmstat.o
>  obj-$(CONFIG_PM_OP) += pm_op.o
>  
>  obj-$(CONFIG_X86) += hwregs.o
> diff --git a/xen/include/acpi/cpufreq/processor_perf.h b/xen/include/acpi/cpufreq/processor_perf.h
> index 6de43f8602..a9a3b7a372 100644
> --- a/xen/include/acpi/cpufreq/processor_perf.h
> +++ b/xen/include/acpi/cpufreq/processor_perf.h
> @@ -9,9 +9,19 @@
>  
>  unsigned int powernow_register_driver(void);
>  unsigned int get_measured_perf(unsigned int cpu, unsigned int flag);
> +#ifdef CONFIG_PM_STATS
>  void cpufreq_statistic_update(unsigned int cpu, uint8_t from, uint8_t to);
>  int  cpufreq_statistic_init(unsigned int cpu);
>  void cpufreq_statistic_exit(unsigned int cpu);
> +#else
> +static inline void cpufreq_statistic_update(unsigned int cpu, uint8_t from,
> +                                            uint8_t to) {}
> +static inline int cpufreq_statistic_init(unsigned int cpu)
> +{
> +    return 0;
> +}
> +static inline void cpufreq_statistic_exit(unsigned int cpu) {}
> +#endif /* CONFIG_PM_STATS */
>  
>  int  cpufreq_limit_change(unsigned int cpu);
>  
> -- 
> 2.34.1
> 


From xen-devel-bounces@lists.xenproject.org Mon Apr 21 21:20:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 21 Apr 2025 21:20:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.961520.1352914 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6yYf-00074f-17; Mon, 21 Apr 2025 21:20:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 961520.1352914; Mon, 21 Apr 2025 21:20: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 1u6yYe-00074S-RZ; Mon, 21 Apr 2025 21:20:04 +0000
Received: by outflank-mailman (input) for mailman id 961520;
 Mon, 21 Apr 2025 21:20: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=nRXx=XH=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u6yYd-0006fC-6t
 for xen-devel@lists.xenproject.org; Mon, 21 Apr 2025 21:20:03 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org
 [2600:3c04:e001:324:0:1991:8:25])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 61efc0e3-1ef6-11f0-9ffb-bf95429c2676;
 Mon, 21 Apr 2025 23:20:01 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 61E4E6115F;
 Mon, 21 Apr 2025 21:19:40 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 13BCCC4CEE4;
 Mon, 21 Apr 2025 21:19: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: 61efc0e3-1ef6-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1745270399;
	bh=lgTL+ijpOlR9d7mhJqFsS3mjCC6x6cHKkBHEy9O11ew=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=gMXR8evjiP/40QUlV7axCRBlT6Z3nS9RfNT6ZdSsa2c1JTzNnTA9QEVTHK4sG27E5
	 aOJAILbQCazX1O45RrOUcmsgHaUo8PrUOvWEED4lFdnWHs6f5lOfPd/5uFqrokhmBU
	 JNfOvA43H3iD+G2rclwMBdauMSVXfS2DiCa3p6xnUVzkngRNlYzlzL//TFXunYtU0c
	 xqdHsv3CQKvI26+cRSp3O/L1WVj9fmoov56ZFVyM1WDK8XDCET7TyyPl5wMHzJ35CB
	 ovis1SsqBxaiQ4h5BTwLUyoGS8M7y0cWhrQ7IRsCCuenXwWcxyeZA0e9vNBc5Gl4G7
	 kIsgTPCDTmGbw==
Date: Mon, 21 Apr 2025 14:19:55 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Penny Zheng <Penny.Zheng@amd.com>
cc: xen-devel@lists.xenproject.org, ray.huang@amd.com, 
    Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
    Bertrand Marquis <bertrand.marquis@arm.com>, 
    Michal Orzel <michal.orzel@amd.com>, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    Anthony PERARD <anthony.perard@vates.tech>, 
    Jan Beulich <jbeulich@suse.com>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Alistair Francis <alistair.francis@wdc.com>, 
    Bob Eshleman <bobbyeshleman@gmail.com>, 
    Connor Davis <connojdavis@gmail.com>, 
    Oleksii Kurochko <oleksii.kurochko@gmail.com>, 
    Stefano Stabellini <stefano.stabellini@amd.com>, 
    Sergiy Kibrik <Sergiy_Kibrik@epam.com>
Subject: Re: [PATCH v3 19/20] xen/sysctl: wrap around arch-specific
 arch_do_sysctl
In-Reply-To: <20250421073723.3863060-20-Penny.Zheng@amd.com>
Message-ID: <alpine.DEB.2.22.394.2504211419320.785180@ubuntu-linux-20-04-desktop>
References: <20250421073723.3863060-1-Penny.Zheng@amd.com> <20250421073723.3863060-20-Penny.Zheng@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, 21 Apr 2025, Penny Zheng wrote:
> Function arch_do_sysctl is to perform arch-specific sysctl op.
> Some functions, like psr_get_info for x86, DTB overlay support for arm,
> are solely available through sysctl op, then they all shall be wrapped
> with CONFIG_SYSCTL
> 
> Also, remove all #ifdef CONFIG_SYSCTL-s in arch-specific sysctl.c, as
> we put the guardian in Makefile for the whole file.
> Since PV_SHIM_EXCLUSIVE needs sorting as a prereq in the future, we move
> obj-$(CONFIG_SYSCTL) += sysctl.o out of PV_SHIM_EXCLUSIVE condition.
> 
> Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
> Signed-off-by: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
> Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>

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


> ---
> - use "depends on" for config OVERLAY_DTB
> - no need to wrap declaration
> - add transient #ifdef in sysctl.c for correct compilation
> ---
> v2 -> v3
> - move obj-$(CONFIG_SYSCTL) += sysctl.o out of PV_SHIM_EXCLUSIVE condition
> - move copyback out of #ifdef
> - add #else process for default label



From xen-devel-bounces@lists.xenproject.org Mon Apr 21 21:22:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 21 Apr 2025 21:22:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.961530.1352924 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u6yad-0008Ea-CL; Mon, 21 Apr 2025 21:22:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 961530.1352924; Mon, 21 Apr 2025 21:22: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 1u6yad-0008ET-6v; Mon, 21 Apr 2025 21:22:07 +0000
Received: by outflank-mailman (input) for mailman id 961530;
 Mon, 21 Apr 2025 21: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=nRXx=XH=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u6yab-0008EL-TH
 for xen-devel@lists.xenproject.org; Mon, 21 Apr 2025 21:22:05 +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 a9841503-1ef6-11f0-9ffb-bf95429c2676;
 Mon, 21 Apr 2025 23:22:00 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by nyc.source.kernel.org (Postfix) with ESMTP id E78BFA4BE75;
 Mon, 21 Apr 2025 21:16:31 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 56F15C4CEEA;
 Mon, 21 Apr 2025 21: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: a9841503-1ef6-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1745270519;
	bh=n84rm+nWUrfiGiHjggkh+TNicvKA+F086gGbBaZGyl8=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=TEOQ2NyVgLwh+neZaT7FxsioXJPJ99NNls+hWhVZHvkzpfZo6vEQ1Jk4gLOPV0cSG
	 Wwx5QNziNI4VLMN0FjQlJX5pIZO0jD1LH9Fzv/Cd0SpYkaNtT77Y3bnUMqsXSrkKHZ
	 6dzkeM0sSbGKD1nlmYoVwtcgqcBt68QmuD3DGBX3zlpQbh1HS5eLh2+CISxG+/qxm1
	 X3UuPgoSyz7IlLOnXgxuOQwYHHqjYUmX48C0mGH2G7tGgcd+DY78gHjm0RZymMkz3w
	 58Hhx60zwn/+EP463l83TjKDhDBC2Lgg8J9gSlVRgs+ZsVgauXGtfNiTKYwEXYfKB4
	 pcgFh1XmYKNOw==
Date: Mon, 21 Apr 2025 14:21:56 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Penny Zheng <Penny.Zheng@amd.com>
cc: xen-devel@lists.xenproject.org, ray.huang@amd.com, 
    Stefano Stabellini <stefano.stabellini@amd.com>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    Anthony PERARD <anthony.perard@vates.tech>, 
    Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, 
    Julien Grall <julien@xen.org>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Sergiy Kibrik <Sergiy_Kibrik@epam.com>
Subject: Re: [PATCH v3 20/20] xen/sysctl: wrap around sysctl hypercall
In-Reply-To: <20250421073723.3863060-21-Penny.Zheng@amd.com>
Message-ID: <alpine.DEB.2.22.394.2504211421400.785180@ubuntu-linux-20-04-desktop>
References: <20250421073723.3863060-1-Penny.Zheng@amd.com> <20250421073723.3863060-21-Penny.Zheng@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, 21 Apr 2025, Penny Zheng wrote:
> From: Stefano Stabellini <stefano.stabellini@amd.com>
> 
> Wrap sysctl hypercall def and sysctl.o with CONFIG_SYSCTL, and since
> PV_SHIM_EXCLUSIVE needs sorting as a prereq in the future, we move
> them out of PV_SHIM_EXCLUSIVE condition at the same time.
> 
> We also need to remove all transient "#ifdef CONFIG_SYSCTL"-s in sysctl.c.
> 
> Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
> Signed-off-by: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
> Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>

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


> ---
> v1 -> v2:
> - remove all transient "#ifdef CONFIG_SYSCTL"-s in sysctl.c
> ---
> v2 -> v3:
> - move out of CONFIG_PV_SHIM_EXCLUSIVE condition
> ---
>  xen/common/Makefile          |  2 +-
>  xen/common/sysctl.c          | 12 ------------
>  xen/include/hypercall-defs.c |  8 ++++++--
>  3 files changed, 7 insertions(+), 15 deletions(-)



From xen-devel-bounces@lists.xenproject.org Mon Apr 21 23:38:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 21 Apr 2025 23:38:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.961545.1352932 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u70hx-0007eM-IF; Mon, 21 Apr 2025 23:37:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 961545.1352932; Mon, 21 Apr 2025 23:37:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u70hx-0007eF-Fe; Mon, 21 Apr 2025 23:37:49 +0000
Received: by outflank-mailman (input) for mailman id 961545;
 Mon, 21 Apr 2025 23:37: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=nRXx=XH=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u70hw-0007e9-9O
 for xen-devel@lists.xenproject.org; Mon, 21 Apr 2025 23:37:48 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 96ef409f-1f09-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 01:37:30 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id A31C46116A;
 Mon, 21 Apr 2025 23:37:09 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6464DC4CEE4;
 Mon, 21 Apr 2025 23:37: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: 96ef409f-1f09-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1745278648;
	bh=mjx1knEyHSYCiIbgHgNGGgZ3brDQ+LAuRUGuCgGeYYw=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=Sr6QTKz3vbSkkfuRdQVMGRxK82DstU49ObsYXjzjKVJKqk3T9iNk32+H2+0sovECF
	 6X3jd2rhjCvB7/nSepj2OVk1JN2oHweVh7QjnxBe83j/djhf4K48rU/vqFcmOJj7/I
	 TdTx/FMhyuS2GahfZQCWEY0THa9G/N3Lyjd8+gEEYbcX9vvR8ph4yxuLK4gubcQDfO
	 7qneXUAMY9exdh3WRTiAJJHPSOw6mTwnWDHEtqMZGq7f8vp0MiQpQPVZ1MTk8XpL2L
	 7n4X7W+Yx+Q1R8BuPR4PF4309PQcFf5DjEVMLjbBFOW8iBI6X/TXl9jBNIddBY9FRA
	 3o7SSfTy5JeDA==
Date: Mon, 21 Apr 2025 16:37:25 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jan Beulich <jbeulich@suse.com>
cc: Mykyta Poturai <Mykyta_Poturai@epam.com>, 
    Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
    Bertrand Marquis <bertrand.marquis@arm.com>, 
    Michal Orzel <michal.orzel@amd.com>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Stewart Hildebrand <stewart.hildebrand@amd.com>, 
    "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v9 2/8] iommu/arm: Introduce iommu_add_dt_pci_sideband_ids
 API
In-Reply-To: <634cecb8-1452-4cbe-9b3d-98554a5e4df8@suse.com>
Message-ID: <alpine.DEB.2.22.394.2504211637180.785180@ubuntu-linux-20-04-desktop>
References: <cover.1741958647.git.mykyta_poturai@epam.com> <95d779f00127defa37f3c5056c762ea0da47fc53.1741958647.git.mykyta_poturai@epam.com> <d646b0b9-bae8-4f97-908a-f2e52cac708d@suse.com> <710bfddb-6ce3-4b11-bcd8-91f17d4f5be2@epam.com>
 <9a0ac3c1-e448-4acd-a471-d8d8e14fbc44@suse.com> <8df846ba-2ec7-467a-a097-0b9c2e4f51dc@epam.com> <634cecb8-1452-4cbe-9b3d-98554a5e4df8@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, 20 Mar 2025, Jan Beulich wrote:
> On 20.03.2025 11:47, Mykyta Poturai wrote:
> > On 19.03.25 17:28, Jan Beulich wrote:
> >> On 19.03.2025 16:21, Mykyta Poturai wrote:
> >>> On 17.03.25 16:56, Jan Beulich wrote:
> >>>> On 14.03.2025 14:34, Mykyta Poturai wrote:
> >>>>> From: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
> >>>>>
> >>>>> The main purpose of this patch is to add a way to register PCI device
> >>>>> (which is behind the IOMMU) using the generic PCI-IOMMU DT bindings [1]
> >>>>> before assigning that device to a domain.
> >>>>>
> >>>>> This behaves similarly to the existing iommu_add_dt_device API, except it
> >>>>> handles PCI devices, and it is to be invoked from the add_device hook in the
> >>>>> SMMU driver.
> >>>>>
> >>>>> The function dt_map_id to translate an ID through a downstream mapping
> >>>>> (which is also suitable for mapping Requester ID) was borrowed from Linux
> >>>>> (v5.10-rc6) and updated according to the Xen code base.
> >>>>>
> >>>>> [1] https://www.kernel.org/doc/Documentation/devicetree/bindings/pci/pci-iommu.txt
> >>>>>
> >>>>> Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
> >>>>> Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
> >>>>> Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
> >>>>> ---
> >>>>> Regarding pci_for_each_dma_alias question: getting host bridge node
> >>>>> directly seems like a simpler solution with the same result. AFAIU
> >>>>> with pci_for_each_dma_alias in linux we would arrive to the host brige
> >>>>> node anyway, but also try to call dt_map_id for each device along the
> >>>>> way. I am not sure why exactly it is done this way in linux, as
> >>>>> according to the pci-iommu.txt, iommu-map node can only be present in
> >>>>> the PCI root.
> >>>>>
> >>>>> v8->v9:
> >>>>> * replace DT_NO_IOMMU with 1
> >>>>> * guard iommu_add_pci_sideband_ids with CONFIG_ARM
> >>>>
> >>>> I fear I'm confused: Isn't this contradicting ...
> >>>>
> >>>>> v7->v8:
> >>>>> * ENOSYS->EOPNOTSUPP
> >>>>> * move iommu_add_pci_sideband_ids to iommu.c to fix x86 build
> >>>>
> >>>> ... this earlier change? Really, with there being no caller, I can't see
> >>>> why there could be any build issue here affecting only x86. Except for
> >>>> Misra complaining about unreachable code being introduced, which I'm sure
> >>>> I said before should be avoided.
> >>>
> >>> The original reason for moving this function was the conflicting ACPI
> >>> and EFI headers, I described it in V8 comments here[1].
> >>>
> >>>>
> >>>>> --- a/xen/drivers/passthrough/iommu.c
> >>>>> +++ b/xen/drivers/passthrough/iommu.c
> >>>>> @@ -20,6 +20,7 @@
> >>>>>    #include <xen/param.h>
> >>>>>    #include <xen/softirq.h>
> >>>>>    #include <xen/keyhandler.h>
> >>>>> +#include <xen/acpi.h>
> >>>>>    #include <xsm/xsm.h>
> >>>>>
> >>>>>    #ifdef CONFIG_X86
> >>>>> @@ -744,6 +745,20 @@ int __init iommu_get_extra_reserved_device_memory(iommu_grdm_t *func,
> >>>>>        return 0;
> >>>>>    }
> >>>>>
> >>>>> +#ifdef CONFIG_ARM
> >>>>
> >>>> I realize we have CONFIG_X86 here as well (visible even in context of the
> >>>> earlier hunk. Yet then the goal ought to be to reduce these anomalies, not
> >>>> add new ones. Since I don't have a clear picture of what's wanted, I'm also
> >>>> in trouble suggesting any alternative, I'm afraid.
> >>>
> >>> Here is a short summary:
> >>>
> >>> The main problem is that we need this function somewhere, but there is
> >>> no good place for it. It is only called on ARM for now but it's not
> >>> ARM-specific by nature and can be eventually used on other platforms as
> >>> well. It can't be just dropped because of the effort to support the
> >>> co-existence of DT and ACPI. It also can't be declared as a static
> >>> function because it requires the inclusion of <xen/acpi.h> for
> >>> acpi_disabled define, which leads to build errors[1]. And without ifdef
> >>> guards it would be a MISRA violation.
> >>
> >> An abridged version of this ought to go in the patch description, I think.
> >> This is special, so it needs calling out.
> >>
> >> As to the placement - would making an entirely new .c file possibly help?
> >> (Then, instead of in the patch description, maybe the special aspect could
> >> be put in a code comment at the top of the file.)
> > 
> > It seems to me creating a new file would be overkill for one small 
> > function. I considered moving it to xen/drivers/passthrough/arm/iommu.c 
> > to reduce ifdefs but I feared it would suggest that it is arch-specific 
> > a bit too strongly. So maybe move it there after all if you think it 
> > would be better?
> 
> Well - with "#ifdef CONFIG_ARM" around it's Arm-specific too, isn't it?
> IOW - either have a proper (even if simple) abstraction, or perhaps indeed
> put it there (if that's also okay with the Arm maintainers).

I am OK with that


From xen-devel-bounces@lists.xenproject.org Mon Apr 21 23:50:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 21 Apr 2025 23:50:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.961557.1352942 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u70uY-0001zN-I3; Mon, 21 Apr 2025 23:50:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 961557.1352942; Mon, 21 Apr 2025 23:50:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u70uY-0001zG-FT; Mon, 21 Apr 2025 23:50:50 +0000
Received: by outflank-mailman (input) for mailman id 961557;
 Mon, 21 Apr 2025 23:50: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=nRXx=XH=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u70uX-0001zA-2p
 for xen-devel@lists.xenproject.org; Mon, 21 Apr 2025 23:50:49 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org
 [2600:3c0a:e001:78e:0:1991:8:25])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 71e02abb-1f0b-11f0-9eb0-5ba50f476ded;
 Tue, 22 Apr 2025 01:50:47 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 51B264A007;
 Mon, 21 Apr 2025 23:50:44 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 968CCC4CEE4;
 Mon, 21 Apr 2025 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: 71e02abb-1f0b-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1745279445;
	bh=YHdDgloOoyjisUCB6dHzYNbwVnyh+feIpfjBOGsOP40=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=Y/ZPELW9bHeCvP83GzNGK3vLM3nZS0H+h61aG2NNkPAX5deT+PXh4gZVc+9h9hIkb
	 FAIpdbeO6/xDDThiLKm4Kog8D6gPpJW2vpXcHyOSBuM1sInMorO0uHgpQyIXqskdRc
	 sQcmuk9Zy8psnSK5NV0cLih/P8sUB4yzfY4Je9yUx7IrhpWYyxmx1YKORwqleTch8D
	 Ma19K8jlNqVBdXTSNUXiAZmv08uw0Nw53FQo7ggyCePeu1GssAhVkSG3ylOTnlWXrF
	 WHP9raLKoDkmWrd48qow0Albt5G1WqkjU1xA94+YtquuK8pCJ0X4NXN90TtzQd50u7
	 7I5u3zA414wiw==
Date: Mon, 21 Apr 2025 16:50:43 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Mykyta Poturai <Mykyta_Poturai@epam.com>
cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    Stewart Hildebrand <stewart.hildebrand@amd.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
    Bertrand Marquis <bertrand.marquis@arm.com>, 
    Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH v9 3/8] iommu/arm: iommu_add_dt_pci_sideband_ids phantom
 handling
In-Reply-To: <f9954a18b28b2233ef1478855994ce979a779e76.1741958647.git.mykyta_poturai@epam.com>
Message-ID: <alpine.DEB.2.22.394.2504211650330.785180@ubuntu-linux-20-04-desktop>
References: <cover.1741958647.git.mykyta_poturai@epam.com> <f9954a18b28b2233ef1478855994ce979a779e76.1741958647.git.mykyta_poturai@epam.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Fri, 14 Mar 2025, Mykyta Poturai wrote:
> From: Stewart Hildebrand <stewart.hildebrand@amd.com>
> 
> Handle phantom functions in iommu_add_dt_pci_sideband_ids(). Each phantom
> function will have a unique requestor ID (RID)/BDF. On ARM, we need to
> map/translate the RID/BDF to an AXI stream ID for each phantom function
> according to the pci-iommu device tree mapping [1]. The RID/BDF -> AXI stream ID
> mapping in DT could allow phantom devices (i.e. devices with phantom functions)
> to use different AXI stream IDs based on the (phantom) function.
> 
> [1] https://www.kernel.org/doc/Documentation/devicetree/bindings/pci/pci-iommu.txt
> 
> Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>

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


> ---
> v8->v9:
> * replace DT_NO_IOMMU with 1
> 
> v7->v8:
> * no change
> 
> v6->v7:
> * no change
> 
> v5->v6:
> * no change
> 
> v4->v5:
> * no change
> 
> v3->v4:
> * s/iommu_dt_pci_map_id/dt_map_id/
> 
> v2->v3:
> * new patch title (was: iommu/arm: iommu_add_dt_pci_device phantom handling)
> * rework loop to reduce duplication
> * s/iommu_fwspec_free(pci_to_dev(pdev))/iommu_fwspec_free(dev)/
> 
> v1->v2:
> * new patch
> 
> ---
> TODO: investigate Jan's comment [2]
> [2] https://lore.kernel.org/xen-devel/806a2978-19fb-4d31-ab6a-35ea7317c8de@suse.com/
> ---
>  xen/drivers/passthrough/device_tree.c | 33 ++++++++++++++++-----------
>  1 file changed, 20 insertions(+), 13 deletions(-)
> 
> diff --git a/xen/drivers/passthrough/device_tree.c b/xen/drivers/passthrough/device_tree.c
> index 37e1437b65..f5850a2607 100644
> --- a/xen/drivers/passthrough/device_tree.c
> +++ b/xen/drivers/passthrough/device_tree.c
> @@ -169,6 +169,7 @@ int iommu_add_dt_pci_sideband_ids(struct pci_dev *pdev)
>      struct device *dev = pci_to_dev(pdev);
>      const struct dt_device_node *np;
>      int rc;
> +    unsigned int devfn = pdev->devfn;
>  
>      if ( !iommu_enabled )
>          return 1;
> @@ -183,21 +184,27 @@ int iommu_add_dt_pci_sideband_ids(struct pci_dev *pdev)
>      if ( !np )
>          return -ENODEV;
>  
> -    /*
> -     * According to the Documentation/devicetree/bindings/pci/pci-iommu.txt
> -     * from Linux.
> -     */
> -    rc = dt_map_id(np, PCI_BDF(pdev->bus, pdev->devfn), "iommu-map",
> -                   "iommu-map-mask", &iommu_spec.np, iommu_spec.args);
> -    if ( rc )
> -        return (rc == -ENODEV) ? 1 : rc;
> +    do {
> +        /*
> +         * According to the Documentation/devicetree/bindings/pci/pci-iommu.txt
> +         * from Linux.
> +         */
> +        rc = dt_map_id(np, PCI_BDF(pdev->bus, devfn), "iommu-map",
> +                       "iommu-map-mask", &iommu_spec.np, iommu_spec.args);
> +        if ( rc )
> +            return (rc == -ENODEV) ? 1 : rc;
>  
> -    rc = iommu_dt_xlate(dev, &iommu_spec, ops);
> -    if ( rc < 0 )
> -    {
> -        iommu_fwspec_free(dev);
> -        return -EINVAL;
> +        rc = iommu_dt_xlate(dev, &iommu_spec, ops);
> +        if ( rc < 0 )
> +        {
> +            iommu_fwspec_free(dev);
> +            return -EINVAL;
> +        }
> +
> +        devfn += pdev->phantom_stride;
>      }
> +    while ( (devfn != pdev->devfn) &&
> +            (PCI_SLOT(devfn) == PCI_SLOT(pdev->devfn)) );
>  
>      return rc;
>  }
> -- 
> 2.34.1
> 


From xen-devel-bounces@lists.xenproject.org Tue Apr 22 00:19:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 00:19:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.961574.1352952 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u71Lj-0005i0-BW; Tue, 22 Apr 2025 00:18:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 961574.1352952; Tue, 22 Apr 2025 00:18: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 1u71Lj-0005ht-8l; Tue, 22 Apr 2025 00:18:55 +0000
Received: by outflank-mailman (input) for mailman id 961574;
 Tue, 22 Apr 2025 00:18: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=eQRL=XI=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u71Lh-0005hn-RF
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 00:18:53 +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 5b3d33bc-1f0f-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 02:18:47 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by nyc.source.kernel.org (Postfix) with ESMTP id AF091A4BDDF;
 Tue, 22 Apr 2025 00:13:17 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 11081C4CEE4;
 Tue, 22 Apr 2025 00:18:43 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5b3d33bc-1f0f-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1745281125;
	bh=d/rbRLFf/WPTiNsK6UpC44Kl3Kit4qbD0Ls3ayVByOE=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=CMmW+UGgwt6wAYBPLl2tvLkt3PPKPIHtubtbaYE7Bfa8A4N+2gySVmzar6KD7Lqg3
	 A79EkflOgVsgj/PSEEiIlRwCzCmIle/jrGG2F24kpAVl26omzS0t/I1Xue00TYGZfV
	 qo3t7mG9ybfWvF9NNcEq+khBmhDF+hyvNbJPAhoB1/t9Z7t+3Z4FlGbzMDgjX67fFh
	 Ypa2YeDhxsgWUP1rD2WBT7mdGgs5xUgPRzc28HfJo47JvysKrVFzqVpFKKhWL7I42l
	 YXbHIxXSGiImcd3T978WEaWSxmvexwurFvSSZbKIdHFH8JJ4e0ccN9nkwD4cZrRKXo
	 p3vcThWnJeKNA==
Date: Mon, 21 Apr 2025 17:18:42 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Mykyta Poturai <Mykyta_Poturai@epam.com>
cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>, 
    Julien Grall <julien@xen.org>, Rahul Singh <rahul.singh@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>, 
    Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>, 
    Stewart Hildebrand <stewart.hildebrand@amd.com>
Subject: Re: [PATCH v9 4/8] xen/arm: smmuv2: Add PCI devices support for
 SMMUv2
In-Reply-To: <fa31ae5fa173348b4c0abf714d3c32f182e8860b.1741958647.git.mykyta_poturai@epam.com>
Message-ID: <alpine.DEB.2.22.394.2504211701190.785180@ubuntu-linux-20-04-desktop>
References: <cover.1741958647.git.mykyta_poturai@epam.com> <fa31ae5fa173348b4c0abf714d3c32f182e8860b.1741958647.git.mykyta_poturai@epam.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Fri, 14 Mar 2025, Mykyta Poturai wrote:
> From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
> 
> Implement support for PCI devices in the SMMU driver. Make arm_smmu_master
> structure to hold a pointer to the device to allow it to hold PCI devices.
> Trigger iommu-map parsing when new PCI device is added. Add checks to
> assign/deassign functions to ensure PCI devices are handled correctly.
> Implement basic quarantining.
> 
> All pci devices are automatically assigned to hardware domain if it exists
> to ensure it can probe them.
> 
> TODO:
> Implement scratch page quarantining support.
> 
> Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
> Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
> Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
> Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
> ---
> v8->v9:
> * no change
> 
> v7->v8:
> * no change
> 
> v6->v7:
> * use d->pci_lock in arm_smmu_assign_dev()
> * remove !is_hardware_domain and pdev->domain == d checks in assign to
>   support future dom0less use case when dom0 is using vPCI
> * remove stale todo in dev_get_dev_node
> * don't print ""
> * remove redundant dt_device_is_protected check
> * remove assign/deassing prints
> * change assign logic to remove reassign reimplementation
> * check if pdev->domain exists before assigning to it
> * explain pdev->devfn check
> * make reassign check stricter and update comment
> 
> v5->v6:
> * check for hardware_domain == NULL (dom0less test case)
> * locking: assign pdev->domain before list_add()
> 
> v4->v5:
> * assign device to pdev->domain (usually dom0) by default in add_device() hook
> * deassign from hwdom
> * rebase on top of ("dynamic node programming using overlay dtbo") series
> * remove TODO in comment about device prints
> * add TODO regarding locking
> * fixup after dropping ("xen/arm: Move is_protected flag to struct device")
> 
> v3->v4:
> * add new device_is_protected check in add_device hook to match SMMUv3 and
>   IPMMU-VMSA drivers
> 
> v2->v3:
> * invoke iommu_add_pci_sideband_ids() from add_device hook
> 
> v1->v2:
> * ignore add_device/assign_device/reassign_device calls for phantom functions
>   (i.e. devfn != pdev->devfn)
> 
> downstream->v1:
> * wrap unused function in #ifdef 0
> * remove the remove_device() stub since it was submitted separately to the list
>   [XEN][PATCH v6 12/19] xen/smmu: Add remove_device callback for smmu_iommu ops
>   https://lists.xenproject.org/archives/html/xen-devel/2023-05/msg00204.html
> * arm_smmu_(de)assign_dev: return error instead of crashing system
> * update condition in arm_smmu_reassign_dev
> * style fixup
> * add && !is_hardware_domain(d) into condition in arm_smmu_assign_dev()
> 
> (cherry picked from commit 0c11a7f65f044c26d87d1e27ac6283ef1f9cfb7a from
>  the downstream branch spider-master from
>  https://github.com/xen-troops/xen.git)
> ---
>  xen/drivers/passthrough/arm/smmu.c | 190 ++++++++++++++++++++++-------
>  1 file changed, 147 insertions(+), 43 deletions(-)
> 
> diff --git a/xen/drivers/passthrough/arm/smmu.c b/xen/drivers/passthrough/arm/smmu.c
> index 03d22bce1e..cfddcbb1ad 100644
> --- a/xen/drivers/passthrough/arm/smmu.c
> +++ b/xen/drivers/passthrough/arm/smmu.c
> @@ -132,11 +132,21 @@ enum irqreturn {
>  
>  typedef enum irqreturn irqreturn_t;
>  
> -/* Device logger functions
> - * TODO: Handle PCI
> - */
> -#define dev_print(dev, lvl, fmt, ...)						\
> -	 printk(lvl "smmu: %s: " fmt, dt_node_full_name(dev_to_dt(dev)), ## __VA_ARGS__)
> +/* Device logger functions */
> +#ifndef CONFIG_HAS_PCI
> +#define dev_print(dev, lvl, fmt, ...)    \
> +    printk(lvl "smmu: %s: " fmt, dev_name(dev), ## __VA_ARGS__)
> +#else
> +#define dev_print(dev, lvl, fmt, ...) ({                                \
> +    if ( !dev_is_pci((dev)) )                                           \
> +        printk(lvl "smmu: %s: " fmt, dev_name((dev)), ## __VA_ARGS__);  \
> +    else                                                                \
> +    {                                                                   \
> +        struct pci_dev *pdev = dev_to_pci((dev));                       \
> +        printk(lvl "smmu: %pp: " fmt, &pdev->sbdf, ## __VA_ARGS__);     \
> +    }                                                                   \
> +})
> +#endif
>  
>  #define dev_dbg(dev, fmt, ...) dev_print(dev, XENLOG_DEBUG, fmt, ## __VA_ARGS__)
>  #define dev_notice(dev, fmt, ...) dev_print(dev, XENLOG_INFO, fmt, ## __VA_ARGS__)
> @@ -188,6 +198,7 @@ static void __iomem *devm_ioremap_resource(struct device *dev,
>   * Xen: PCI functions
>   * TODO: It should be implemented when PCI will be supported
>   */
> +#if 0 /* unused */
>  #define to_pci_dev(dev)	(NULL)
>  static inline int pci_for_each_dma_alias(struct pci_dev *pdev,
>  					 int (*fn) (struct pci_dev *pdev,
> @@ -197,6 +208,7 @@ static inline int pci_for_each_dma_alias(struct pci_dev *pdev,
>  	BUG();
>  	return 0;
>  }
> +#endif

I think we should remove them if they are not used.


>  /* Xen: misc */
>  #define PHYS_MASK_SHIFT		PADDR_BITS
> @@ -631,7 +643,7 @@ struct arm_smmu_master_cfg {
>  	for (i = 0; idx = (cfg)->smendx[i], (i) < (num); ++(i))
>  
>  struct arm_smmu_master {
> -	struct device_node		*of_node;
> +	struct device			*dev;
>  	struct rb_node			node;
>  	struct arm_smmu_master_cfg	cfg;
>  };
> @@ -723,7 +735,7 @@ arm_smmu_get_fwspec(struct arm_smmu_master_cfg *cfg)
>  {
>  	struct arm_smmu_master *master = container_of(cfg,
>  			                                      struct arm_smmu_master, cfg);
> -	return dev_iommu_fwspec_get(&master->of_node->dev);
> +	return dev_iommu_fwspec_get(master->dev);
>  }
>  
>  static void parse_driver_options(struct arm_smmu_device *smmu)
> @@ -742,21 +754,11 @@ static void parse_driver_options(struct arm_smmu_device *smmu)
>  
>  static struct device_node *dev_get_dev_node(struct device *dev)
>  {
> -#if 0 /* Xen: TODO: Add support for PCI */
> -	if (dev_is_pci(dev)) {
> -		struct pci_bus *bus = to_pci_dev(dev)->bus;
> -
> -		while (!pci_is_root_bus(bus))
> -			bus = bus->parent;
> -		return bus->bridge->parent->of_node;
> -	}
> -#endif
> -
>  	return dev->of_node;
>  }
>  
>  static struct arm_smmu_master *find_smmu_master(struct arm_smmu_device *smmu,
> -						struct device_node *dev_node)
> +						struct device *dev)
>  {
>  	struct rb_node *node = smmu->masters.rb_node;
>  
> @@ -765,9 +767,9 @@ static struct arm_smmu_master *find_smmu_master(struct arm_smmu_device *smmu,
>  
>  		master = container_of(node, struct arm_smmu_master, node);
>  
> -		if (dev_node < master->of_node)
> +		if (dev < master->dev)
>  			node = node->rb_left;
> -		else if (dev_node > master->of_node)
> +		else if (dev > master->dev)
>  			node = node->rb_right;
>  		else
>  			return master;
> @@ -802,9 +804,9 @@ static int insert_smmu_master(struct arm_smmu_device *smmu,
>  			= container_of(*new, struct arm_smmu_master, node);
>  
>  		parent = *new;
> -		if (master->of_node < this->of_node)
> +		if (master->dev < this->dev)
>  			new = &((*new)->rb_left);
> -		else if (master->of_node > this->of_node)
> +		else if (master->dev > this->dev)
>  			new = &((*new)->rb_right);
>  		else
>  			return -EEXIST;
> @@ -836,28 +838,30 @@ static int arm_smmu_dt_add_device_legacy(struct arm_smmu_device *smmu,
>  	struct arm_smmu_master *master;
>  	struct device_node *dev_node = dev_get_dev_node(dev);
>  
> -	master = find_smmu_master(smmu, dev_node);
> +	master = find_smmu_master(smmu, dev);
>  	if (master) {
>  		dev_err(dev,
> -			"rejecting multiple registrations for master device %s\n",
> -			dev_node->name);
> +			"rejecting multiple registrations for master device\n");
>  		return -EBUSY;
>  	}
>  
>  	master = devm_kzalloc(dev, sizeof(*master), GFP_KERNEL);
>  	if (!master)
>  		return -ENOMEM;
> -	master->of_node = dev_node;
> +	master->dev = dev;
>  
> -	/* Xen: Let Xen know that the device is protected by an SMMU */
> -	dt_device_set_protected(dev_node);
> +	if ( !dev_is_pci(dev) )
> +	{
> +		/* Xen: Let Xen know that the device is protected by an SMMU */
> +		dt_device_set_protected(dev_node);
> +	}
>  
>  	for (i = 0; i < fwspec->num_ids; ++i) {
>  		if (!(smmu->features & ARM_SMMU_FEAT_STREAM_MATCH) &&
>  		     (fwspec->ids[i] >= smmu->num_mapping_groups)) {
>  			dev_err(dev,
> -				"stream ID for master device %s greater than maximum allowed (%d)\n",
> -				dev_node->name, smmu->num_mapping_groups);
> +				"SMMU stream ID %d is greater than maximum allowed (%d)\n",
> +				fwspec->ids[i], smmu->num_mapping_groups);
>  			return -ERANGE;
>  		}
>  		master->cfg.smendx[i] = INVALID_SMENDX;
> @@ -872,7 +876,7 @@ static int arm_smmu_dt_remove_device_legacy(struct arm_smmu_device *smmu,
>  	struct device_node *dev_node = dev_get_dev_node(dev);
>  	int ret;
>  
> -	master = find_smmu_master(smmu, dev_node);
> +	master = find_smmu_master(smmu, dev);
>  	if (master == NULL) {
>  		dev_err(dev,
>  			"No registrations found for master device %s\n",
> @@ -884,8 +888,9 @@ static int arm_smmu_dt_remove_device_legacy(struct arm_smmu_device *smmu,
>  	if (ret)
>  		return ret;
>  
> -	/* Protected by dt_host_lock and dtdevs_lock as caller holds these locks. */
> -	dev_node->is_protected = false;
> +	if ( !dev_is_pci(dev) )
> +		/* Protected by dt_host_lock and dtdevs_lock as caller holds these locks. */
> +		dev_node->is_protected = false;
>  
>  	kfree(master);
>  	return 0;
> @@ -914,6 +919,12 @@ static int register_smmu_master(struct arm_smmu_device *smmu,
>  					     fwspec);
>  }
>  
> +/* Forward declaration */
> +static int arm_smmu_assign_dev(struct domain *d, u8 devfn,
> +			       struct device *dev, u32 flag);
> +static int arm_smmu_deassign_dev(struct domain *d, uint8_t devfn,
> +				 struct device *dev);
> +
>  /*
>   * The driver which supports generic IOMMU DT bindings must have this
>   * callback implemented.
> @@ -938,6 +949,23 @@ static int arm_smmu_dt_add_device_generic(u8 devfn, struct device *dev)
>  {
>  	struct arm_smmu_device *smmu;
>  	struct iommu_fwspec *fwspec;
> +	int ret;
> +
> +#ifdef CONFIG_HAS_PCI
> +	if ( dev_is_pci(dev) )
> +	{
> +		struct pci_dev *pdev = dev_to_pci(dev);
> +		int ret;
> +
> +		/* Ignore calls for phantom functions */
> +		if ( devfn != pdev->devfn )
> +			return 0;
> +
> +		ret = iommu_add_pci_sideband_ids(pdev);
> +		if ( ret < 0 )
> +			iommu_fwspec_free(dev);

Should we return here in case of errors?


> +	}
> +#endif
>  
>  	fwspec = dev_iommu_fwspec_get(dev);
>  	if (fwspec == NULL)
> @@ -947,7 +975,25 @@ static int arm_smmu_dt_add_device_generic(u8 devfn, struct device *dev)
>  	if (smmu == NULL)
>  		return -ENXIO;
>  
> -	return arm_smmu_dt_add_device_legacy(smmu, dev, fwspec);
> +	ret = arm_smmu_dt_add_device_legacy(smmu, dev, fwspec);
> +	if ( ret )
> +		return ret;
> +
> +#ifdef CONFIG_HAS_PCI
> +	if ( dev_is_pci(dev) )
> +	{
> +		struct pci_dev *pdev = dev_to_pci(dev);
> +
> +		/*
> +		 * During PHYSDEVOP_pci_device_add, Xen does not assign the
> +		 * device, so we must do it here.
> +		 */
> +		if ( pdev->domain )
> +			ret = arm_smmu_assign_dev(pdev->domain, devfn, dev, 0);
> +	}
> +#endif
> +
> +	return ret;
>  }
>  
>  static int arm_smmu_dt_xlate_generic(struct device *dev,
> @@ -970,11 +1016,10 @@ static struct arm_smmu_device *find_smmu_for_device(struct device *dev)
>  {
>  	struct arm_smmu_device *smmu;
>  	struct arm_smmu_master *master = NULL;
> -	struct device_node *dev_node = dev_get_dev_node(dev);
>  
>  	spin_lock(&arm_smmu_devices_lock);
>  	list_for_each_entry(smmu, &arm_smmu_devices, list) {
> -		master = find_smmu_master(smmu, dev_node);
> +		master = find_smmu_master(smmu, dev);
>  		if (master)
>  			break;
>  	}
> @@ -2066,6 +2111,7 @@ static bool arm_smmu_capable(enum iommu_cap cap)
>  }
>  #endif
>  
> +#if 0 /* Not used */
>  static int __arm_smmu_get_pci_sid(struct pci_dev *pdev, u16 alias, void *data)
>  {
>  	*((u16 *)data) = alias;
> @@ -2076,6 +2122,7 @@ static void __arm_smmu_release_pci_iommudata(void *data)
>  {
>  	kfree(data);
>  }
> +#endif
>  
>  static int arm_smmu_add_device(struct device *dev)
>  {
> @@ -2083,12 +2130,13 @@ static int arm_smmu_add_device(struct device *dev)
>  	struct arm_smmu_master_cfg *cfg;
>  	struct iommu_group *group;
>  	void (*releasefn)(void *data) = NULL;
> -	int ret;
>  
>  	smmu = find_smmu_for_device(dev);
>  	if (!smmu)
>  		return -ENODEV;
>  
> +	/* There is no need to distinguish here, thanks to PCI-IOMMU DT bindings */

Let's remove this code then. This driver deviated too much from the
Linux original anyway to worry about the ability to update the code


> +#if 0
>  	if (dev_is_pci(dev)) {
>  		struct pci_dev *pdev = to_pci_dev(dev);
>  		struct iommu_fwspec *fwspec;
> @@ -2113,10 +2161,12 @@ static int arm_smmu_add_device(struct device *dev)
>  				       &fwspec->ids[0]);
>  		releasefn = __arm_smmu_release_pci_iommudata;
>  		cfg->smmu = smmu;
> -	} else {
> +	} else
> +#endif
> +	{
>  		struct arm_smmu_master *master;
>  
> -		master = find_smmu_master(smmu, dev->of_node);
> +		master = find_smmu_master(smmu, dev);
>  		if (!master) {
>  			return -ENODEV;
>  		}
> @@ -2784,6 +2834,42 @@ static int arm_smmu_assign_dev(struct domain *d, u8 devfn,
>  			return -ENOMEM;
>  	}
>  
> +#ifdef CONFIG_HAS_PCI
> +	if ( dev_is_pci(dev) )
> +	{
> +		struct pci_dev *pdev = dev_to_pci(dev);
> +
> +		/* Ignore calls for phantom functions */
> +		if ( devfn != pdev->devfn )
> +			return 0;
> +
> +		ASSERT(pcidevs_locked());
> +
> +		write_lock(&pdev->domain->pci_lock);
> +		list_del(&pdev->domain_list);
> +		write_unlock(&pdev->domain->pci_lock);
> +
> +		pdev->domain = d;
> +
> +		write_lock(&d->pci_lock);
> +		list_add(&pdev->domain_list, &d->pdev_list);
> +		write_unlock(&d->pci_lock);
> +
> +		/* dom_io is used as a sentinel for quarantined devices */
> +		if ( d == dom_io )
> +		{
> +			struct iommu_domain *domain = dev_iommu_domain(dev);
> +			if ( !iommu_quarantine )
> +				return 0;
> +
> +			if ( domain && domain->priv )
> +				arm_smmu_deassign_dev(domain->priv->cfg.domain, devfn, dev);
> +
> +			return 0;
> +		}
> +	}
> +#endif
> +
>  	if (!dev_iommu_group(dev)) {
>  		ret = arm_smmu_add_device(dev);
>  		if (ret)
> @@ -2833,11 +2919,27 @@ out:
>  	return ret;
>  }
>  
> -static int arm_smmu_deassign_dev(struct domain *d, struct device *dev)
> +static int arm_smmu_deassign_dev(struct domain *d, uint8_t devfn,
> +				 struct device *dev)
>  {
>  	struct iommu_domain *domain = dev_iommu_domain(dev);
>  	struct arm_smmu_xen_domain *xen_domain;
>  
> +#ifdef CONFIG_HAS_PCI
> +	if ( dev_is_pci(dev) )
> +	{
> +		struct pci_dev *pdev = dev_to_pci(dev);
> +
> +		/* Ignore calls for phantom functions */
> +		if ( devfn != pdev->devfn )
> +			return 0;
> +
> +		/* dom_io is used as a sentinel for quarantined devices */
> +		if ( d == dom_io )
> +			return 0;
> +	}
> +#endif
> +
>  	xen_domain = dom_iommu(d)->arch.priv;
>  
>  	if (!domain || domain->priv->cfg.domain != d) {
> @@ -2864,14 +2966,16 @@ static int arm_smmu_reassign_dev(struct domain *s, struct domain *t,
>  {
>  	int ret = 0;
>  
> -	/* Don't allow remapping on other domain than hwdom */
> -	if ( t && !is_hardware_domain(t) )
> +	/* Don't allow remapping on other domain than hwdom
> +	 * or dom_io for PCI devices
> +	 */
> +	if ( t && !is_hardware_domain(t) && (t != dom_io || !dev_is_pci(dev)) )
>  		return -EPERM;
>  
>  	if (t == s)
>  		return 0;
>  
> -	ret = arm_smmu_deassign_dev(s, dev);
> +	ret = arm_smmu_deassign_dev(s, devfn, dev);
>  	if (ret)
>  		return ret;
>  
> -- 
> 2.34.1
> 


From xen-devel-bounces@lists.xenproject.org Tue Apr 22 00:21:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 00:21:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.961584.1352963 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u71No-0007IB-Mf; Tue, 22 Apr 2025 00:21:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 961584.1352963; Tue, 22 Apr 2025 00:21: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 1u71No-0007I4-Jz; Tue, 22 Apr 2025 00:21:04 +0000
Received: by outflank-mailman (input) for mailman id 961584;
 Tue, 22 Apr 2025 00: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=eQRL=XI=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u71Nn-0007Hy-Fh
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 00:21:03 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org
 [2600:3c04:e001:324:0:1991:8:25])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id aafe8ae0-1f0f-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 02:21:01 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 495C06116A;
 Tue, 22 Apr 2025 00:20:40 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 23A50C4CEE4;
 Tue, 22 Apr 2025 00:20: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: aafe8ae0-1f0f-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1745281259;
	bh=yEwDvuqmyGgsFhW8jKlaut3NaGF9FI0cGuuDcQ1bBEs=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=jWkqIwQv/XTSxppEsqafGYajMH7UXOJdz0gcE80dDnoqVdp1MjJsm4QspahLulpVh
	 GFiBI+ULhRuTeBnmR7NQLebyBuYLNsZyNppYRGKgWpEICP580vPNZIR211bkRL0aIR
	 w1TnwLhcncw2TZcOFfb4W6mX1EXKWnBkqbxvIYc41Zl7LrJOcP/IhZ6WMd48rkskvE
	 vkFfHQjEO9i6ZluSknMLLUFe9YgQiUYHDy3KJ0quaoMsaVqEFJV4+Vy6NwYZWLf5DX
	 id6ge8OqaN2yCernACJr858k/4ixlz0Xi312v82TQ74d/4cVPQXjDuAJhTeSnmI660
	 W8+7Yoq/UMlpA==
Date: Mon, 21 Apr 2025 17:20:56 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Mykyta Poturai <Mykyta_Poturai@epam.com>
cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    Rahul Singh <rahul.singh@arm.com>, 
    Bertrand Marquis <bertrand.marquis@arm.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
    Michal Orzel <michal.orzel@amd.com>, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
    Stewart Hildebrand <stewart.hildebrand@amd.com>
Subject: Re: [PATCH v9 5/8] xen/arm: smmuv3: Add PCI devices support for
 SMMUv3
In-Reply-To: <96dd4cb828377a5a09881ddb5ee5ded1df3dde1e.1741958647.git.mykyta_poturai@epam.com>
Message-ID: <alpine.DEB.2.22.394.2504211719400.785180@ubuntu-linux-20-04-desktop>
References: <cover.1741958647.git.mykyta_poturai@epam.com> <96dd4cb828377a5a09881ddb5ee5ded1df3dde1e.1741958647.git.mykyta_poturai@epam.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Fri, 14 Mar 2025, Mykyta Poturai wrote:
> From: Rahul Singh <rahul.singh@arm.com>
> 
> Implement support for PCI devices in the SMMU driver. Trigger iommu-map
> parsing when new PCI device is added. Add checks to assign/deassign
> functions to ensure PCI devices are handled correctly. Implement basic
> quarantining.
> 
> All pci devices are automatically assigned to hardware domain if it exists
> to ensure it can probe them.
> 
> TODO:
> Implement scratch page quarantining support.
> 
> Signed-off-by: Rahul Singh <rahul.singh@arm.com>
> Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
> Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
> ---
> v8->v9:
> * no change
> 
> v7->v8:
> * no change
> 
> v6->v7:
> * address TODO: use d->pci_lock in arm_smmu_assign_dev()
> * remove !is_hardware_domain and pdev->domain == d checks in assign to
>   support future dom0less use case when dom0 is using vPCI
> * check if pdev->domain exists before assigning to it
> * don't print ""
> * change assign logic to remove reassign reimplementation
> * explain pdev->devfn check
> * make reassign check stricter and update comment
> 
> v5->v6:
> * check for hardware_domain == NULL (dom0less test case)
> * locking: assign pdev->domain before list_add()
> 
> v4->v5:
> * deassign from hwdom
> * add TODO regarding locking
> * fixup after dropping ("xen/arm: Move is_protected flag to struct device")
> 
> v3->v4:
> * no change
> 
> v2->v3:
> * rebase
> * invoke iommu_add_pci_sideband_ids() from add_device hook
> 
> v1->v2:
> * ignore add_device/assign_device/reassign_device calls for phantom functions
>   (i.e. devfn != pdev->devfn)
> 
> downstream->v1:
> * rebase
> * move 2 replacements of s/dt_device_set_protected(dev_to_dt(dev))/device_set_protected(dev)/
>   from this commit to ("xen/arm: Move is_protected flag to struct device")
>   so as to not break ability to bisect
> * adjust patch title (remove stray space)
> * arm_smmu_(de)assign_dev: return error instead of crashing system
> * remove arm_smmu_remove_device() stub
> * update condition in arm_smmu_reassign_dev
> * style fixup
> 
> (cherry picked from commit 7ed6c3ab250d899fe6e893a514278e406a2893e8 from
>  the downstream branch poc/pci-passthrough from
>  https://gitlab.com/xen-project/people/bmarquis/xen-arm-poc.git)
> ---
>  xen/drivers/passthrough/arm/smmu-v3.c | 117 +++++++++++++++++++++++---
>  1 file changed, 106 insertions(+), 11 deletions(-)
> 
> diff --git a/xen/drivers/passthrough/arm/smmu-v3.c b/xen/drivers/passthrough/arm/smmu-v3.c
> index cee5724022..9c7c13f800 100644
> --- a/xen/drivers/passthrough/arm/smmu-v3.c
> +++ b/xen/drivers/passthrough/arm/smmu-v3.c
> @@ -1467,14 +1467,35 @@ static bool arm_smmu_sid_in_range(struct arm_smmu_device *smmu, u32 sid)
>  }
>  /* Forward declaration */
>  static struct arm_smmu_device *arm_smmu_get_by_dev(const struct device *dev);
> +static int arm_smmu_assign_dev(struct domain *d, u8 devfn, struct device *dev,
> +			       u32 flag);
> +static int arm_smmu_deassign_dev(struct domain *d, uint8_t devfn,
> +				 struct device *dev);
>  
>  static int arm_smmu_add_device(u8 devfn, struct device *dev)
>  {
>  	int i, ret;
>  	struct arm_smmu_device *smmu;
>  	struct arm_smmu_master *master;
> -	struct iommu_fwspec *fwspec = dev_iommu_fwspec_get(dev);
> +	struct iommu_fwspec *fwspec;
> +
> +#ifdef CONFIG_HAS_PCI
> +	if ( dev_is_pci(dev) )
> +	{
> +		struct pci_dev *pdev = dev_to_pci(dev);
> +		int ret;
> +				
> +		/* Ignore calls for phantom functions */
> +		if ( devfn != pdev->devfn )
> +			return 0;
> +
> +		ret = iommu_add_pci_sideband_ids(pdev);
> +		if ( ret < 0 )
> +			iommu_fwspec_free(dev);

Do we need to return on error?


> +	}
> +#endif
>  
> +	fwspec = dev_iommu_fwspec_get(dev);
>  	if (!fwspec)
>  		return -ENODEV;
>  
> @@ -1519,17 +1540,38 @@ static int arm_smmu_add_device(u8 devfn, struct device *dev)
>  	 */
>  	arm_smmu_enable_pasid(master);
>  
> -	if (dt_device_is_protected(dev_to_dt(dev))) {
> -		dev_err(dev, "Already added to SMMUv3\n");
> -		return -EEXIST;
> -	}
> +	if ( !dev_is_pci(dev) )
> +	{
> +		if (dt_device_is_protected(dev_to_dt(dev))) {
> +			dev_err(dev, "Already added to SMMUv3\n");
> +			return -EEXIST;
> +		}
>  
> -	/* Let Xen know that the master device is protected by an IOMMU. */
> -	dt_device_set_protected(dev_to_dt(dev));
> +		/* Let Xen know that the master device is protected by an IOMMU. */
> +		dt_device_set_protected(dev_to_dt(dev));
> +	}
>  
>  	dev_info(dev, "Added master device (SMMUv3 %s StreamIds %u)\n",
>  			dev_name(fwspec->iommu_dev), fwspec->num_ids);
>  
> +#ifdef CONFIG_HAS_PCI
> +	if ( dev_is_pci(dev) )
> +	{
> +		struct pci_dev *pdev = dev_to_pci(dev);
> +
> +		/*
> +		 * During PHYSDEVOP_pci_device_add, Xen does not assign the
> +		 * device, so we must do it here.
> +		 */
> +		if ( pdev->domain )
> +		{
> +			ret = arm_smmu_assign_dev(pdev->domain, devfn, dev, 0);
> +			if (ret)
> +				goto err_free_master;
> +		}
> +	}
> +#endif
> +
>  	return 0;
>  
>  err_free_master:
> @@ -2622,6 +2664,42 @@ static int arm_smmu_assign_dev(struct domain *d, u8 devfn,
>  	struct arm_smmu_domain *smmu_domain;
>  	struct arm_smmu_xen_domain *xen_domain = dom_iommu(d)->arch.priv;
>  
> +#ifdef CONFIG_HAS_PCI
> +	if ( dev_is_pci(dev) )
> +	{
> +		struct pci_dev *pdev = dev_to_pci(dev);
> +
> +		/* Ignore calls for phantom functions */
> +		if ( devfn != pdev->devfn )
> +			return 0;
> +
> +		ASSERT(pcidevs_locked());
> +
> +		write_lock(&pdev->domain->pci_lock);
> +		list_del(&pdev->domain_list);
> +		write_unlock(&pdev->domain->pci_lock);
> +
> +		pdev->domain = d;
> +
> +		write_lock(&d->pci_lock);
> +		list_add(&pdev->domain_list, &d->pdev_list);
> +		write_unlock(&d->pci_lock);
> +
> +		/* dom_io is used as a sentinel for quarantined devices */
> +		if ( d == dom_io )
> +		{
> +			struct arm_smmu_master *master = dev_iommu_priv_get(dev);
> +			if ( !iommu_quarantine )
> +				return 0;
> +
> +			if ( master && master->domain )
> +				arm_smmu_deassign_dev(master->domain->d, devfn, dev);
> +
> +			return 0;
> +		}
> +	}
> +#endif
> +
>  	spin_lock(&xen_domain->lock);
>  
>  	/*
> @@ -2655,7 +2733,7 @@ out:
>  	return ret;
>  }
>  
> -static int arm_smmu_deassign_dev(struct domain *d, struct device *dev)
> +static int arm_smmu_deassign_dev(struct domain *d, uint8_t devfn, struct device *dev)
>  {
>  	struct iommu_domain *io_domain = arm_smmu_get_domain(d, dev);
>  	struct arm_smmu_xen_domain *xen_domain = dom_iommu(d)->arch.priv;
> @@ -2667,6 +2745,21 @@ static int arm_smmu_deassign_dev(struct domain *d, struct device *dev)
>  		return -ESRCH;
>  	}
>  
> +#ifdef CONFIG_HAS_PCI
> +	if ( dev_is_pci(dev) )
> +	{
> +		struct pci_dev *pdev = dev_to_pci(dev);
> +
> +		/* Ignore calls for phantom functions */
> +		if ( devfn != pdev->devfn )
> +			return 0;
> +
> +		/* dom_io is used as a sentinel for quarantined devices */
> +		if ( d == dom_io )
> +			return 0;
> +	}
> +#endif
> +
>  	spin_lock(&xen_domain->lock);
>  
>  	arm_smmu_detach_dev(master);
> @@ -2685,14 +2778,16 @@ static int arm_smmu_reassign_dev(struct domain *s, struct domain *t,
>  {
>  	int ret = 0;
>  
> -	/* Don't allow remapping on other domain than hwdom */
> -	if ( t && !is_hardware_domain(t) )
> +	/* Don't allow remapping on other domain than hwdom
> +	 * or dom_io for PCI devices
> +	 */
> +	if ( t && !is_hardware_domain(t) && (t != dom_io || !dev_is_pci(dev)) )
>  		return -EPERM;
>  
>  	if (t == s)
>  		return 0;
>  
> -	ret = arm_smmu_deassign_dev(s, dev);
> +	ret = arm_smmu_deassign_dev(s, devfn, dev);
>  	if (ret)
>  		return ret;
>  
> -- 
> 2.34.1
> 


From xen-devel-bounces@lists.xenproject.org Tue Apr 22 00:25:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 00:25:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.961598.1352973 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u71Rv-0007t8-6V; Tue, 22 Apr 2025 00:25:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 961598.1352973; Tue, 22 Apr 2025 00: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 1u71Rv-0007t1-3R; Tue, 22 Apr 2025 00:25:19 +0000
Received: by outflank-mailman (input) for mailman id 961598;
 Tue, 22 Apr 2025 00: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=eQRL=XI=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u71Rt-0007sv-JW
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 00:25: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 42b64ee6-1f10-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 02:25:15 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by nyc.source.kernel.org (Postfix) with ESMTP id 43E8DA4BEE1;
 Tue, 22 Apr 2025 00:19:46 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 847BAC4CEE4;
 Tue, 22 Apr 2025 00:25: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: 42b64ee6-1f10-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1745281514;
	bh=NOgGudpGVd6y6b9MOT/BSmwCRZbR/r7Tn6OIzOtNyPM=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=fue5xmICQba/xRsXZS0gfmgIx8pQA4vi95YMT48pV5dDZuyf3RA5Sv9UHvpi5/xCo
	 erq1AC65w8ZJZx0LAHlgJssEALkD5psIznniiSqhr335HVPEIO+3Z3SeBqEatzxIbn
	 +u57PZjIWlrE0zELz5lqdYpiiDreShBeFx8alFdbjTNC9VA0f/sRYuiKf/5M025wHP
	 E1s0NBikXcZDXfUkzq/gawvfh59RUlDfSXB+g5/2qrxJGp5o5/ZUYM4M3EBoC8x2x1
	 efeopYquvTxwE+Nf3qN8StLk7jPtFDFFSe0jfn2bnamWsUqx7doiMJ/SOHIha8ltJI
	 H6M7G8GyO0Kmw==
Date: Mon, 21 Apr 2025 17:25:10 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Mykyta Poturai <Mykyta_Poturai@epam.com>
cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    Stewart Hildebrand <stewart.hildebrand@amd.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
    Bertrand Marquis <bertrand.marquis@arm.com>, 
    Michal Orzel <michal.orzel@amd.com>, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    Anthony PERARD <anthony.perard@vates.tech>, 
    Jan Beulich <jbeulich@suse.com>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Subject: Re: [PATCH v9 7/8] xen/arm: enable dom0 to use PCI devices with
 pci-passthrough=no
In-Reply-To: <132afbca390edd6e9fd7b1ffacf6c5aff0d29aa7.1741958647.git.mykyta_poturai@epam.com>
Message-ID: <alpine.DEB.2.22.394.2504211724230.785180@ubuntu-linux-20-04-desktop>
References: <cover.1741958647.git.mykyta_poturai@epam.com> <132afbca390edd6e9fd7b1ffacf6c5aff0d29aa7.1741958647.git.mykyta_poturai@epam.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Fri, 14 Mar 2025, Mykyta Poturai wrote:
> From: Stewart Hildebrand <stewart.hildebrand@amd.com>
> 
> Enable the use of IOMMU + PCI in dom0 without having to specify
> "pci-passthrough=yes". We rely on dom0 to initialize the PCI controller
> and perform a PHYSDEVOP_pci_device_add call to add each device to SMMU.
> 
> Enable pci_init() for initializing Xen's internal PCI subsystem, and
> allow PHYSDEVOP_pci_device_add when pci-passthrough is disabled.
> 
> Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
> Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
> ---
> hmm. Since
>   dec9e02f3190 ("xen: avoid generation of stub <asm/pci.h> header")
> Should we also move is_pci_passthrough_enabled() back to xen/arch/arm/include/asm/pci.h ?
> Not sure if PPC/RISC-V will plan on using this check.
> 
> v8-v9:
> * move iommu_enabled check inside is_pci_passthrough_enabled()
> 
> v7->v8:
> * bring back x86 definition of is_pci_passthrough_enabled()
> 
> v6->v7:
> * remove x86 definition of is_pci_passthrough_enabled()
> * update comments
> * make pci_physdev_op checks stricter
> 
> v5->v6:
> * new patch - this effectively replaces
>   ("Revert "xen/arm: Add cmdline boot option "pci-passthrough = <boolean>""")
> ---
>  xen/arch/arm/domain_build.c    |  2 +-
>  xen/arch/arm/include/asm/pci.h |  5 +----
>  xen/arch/arm/pci/pci.c         | 11 ++++++++++-
>  xen/arch/x86/include/asm/pci.h |  2 +-
>  xen/drivers/pci/physdev.c      |  4 ++--
>  xen/include/xen/pci.h          |  2 +-
>  6 files changed, 16 insertions(+), 10 deletions(-)
> 
> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
> index 7b47abade1..fbd6db9438 100644
> --- a/xen/arch/arm/domain_build.c
> +++ b/xen/arch/arm/domain_build.c
> @@ -526,7 +526,7 @@ static int __init handle_linux_pci_domain(struct kernel_info *kinfo,
>      uint16_t segment;
>      int res;
>  
> -    if ( !is_pci_passthrough_enabled() )
> +    if ( !is_pci_passthrough_enabled(false) )
>          return 0;
>  
>      if ( !dt_device_type_is_equal(node, "pci") )
> diff --git a/xen/arch/arm/include/asm/pci.h b/xen/arch/arm/include/asm/pci.h
> index 7f77226c9b..3ae85b4666 100644
> --- a/xen/arch/arm/include/asm/pci.h
> +++ b/xen/arch/arm/include/asm/pci.h
> @@ -111,10 +111,7 @@ pci_find_host_bridge_node(const struct pci_dev *pdev);
>  int pci_get_host_bridge_segment(const struct dt_device_node *node,
>                                  uint16_t *segment);
>  
> -static always_inline bool is_pci_passthrough_enabled(void)
> -{
> -    return pci_passthrough_enabled;
> -}
> +bool is_pci_passthrough_enabled(bool dom0);
>  
>  void arch_pci_init_pdev(struct pci_dev *pdev);
>  
> diff --git a/xen/arch/arm/pci/pci.c b/xen/arch/arm/pci/pci.c
> index 78b97beaef..79bb8728a4 100644
> --- a/xen/arch/arm/pci/pci.c
> +++ b/xen/arch/arm/pci/pci.c
> @@ -16,9 +16,18 @@
>  #include <xen/device_tree.h>
>  #include <xen/errno.h>
>  #include <xen/init.h>
> +#include <xen/iommu.h>
>  #include <xen/param.h>
>  #include <xen/pci.h>
>  
> +bool is_pci_passthrough_enabled(bool dom0)
> +{
> +    if ( dom0 )
> +        return pci_passthrough_enabled || iommu_enabled;

Could this be written as:

    if ( is_hardware_domain(current->domain) )
        return pci_passthrough_enabled || iommu_enabled;

If so, then I think it would be better, if not:

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



> +    return pci_passthrough_enabled;
> +}
> +
>  /*
>   * PIRQ event channels are not supported on Arm, so nothing to do.
>   */
> @@ -85,7 +94,7 @@ static int __init pci_init(void)
>       * Enable PCI passthrough when has been enabled explicitly
>       * (pci-passthrough=on).
>       */
> -    if ( !pci_passthrough_enabled )
> +    if ( !is_pci_passthrough_enabled(true) )
>          return 0;
>  
>      pci_segments_init();
> diff --git a/xen/arch/x86/include/asm/pci.h b/xen/arch/x86/include/asm/pci.h
> index fd5480d67d..bffeaa507d 100644
> --- a/xen/arch/x86/include/asm/pci.h
> +++ b/xen/arch/x86/include/asm/pci.h
> @@ -50,7 +50,7 @@ extern int pci_mmcfg_config_num;
>  extern struct acpi_mcfg_allocation *pci_mmcfg_config;
>  
>  /* Unlike ARM, PCI passthrough is always enabled for x86. */
> -static always_inline bool is_pci_passthrough_enabled(void)
> +static always_inline bool is_pci_passthrough_enabled(__maybe_unused bool dom0)
>  {
>      return true;
>  }
> diff --git a/xen/drivers/pci/physdev.c b/xen/drivers/pci/physdev.c
> index 0161a85e1e..18448b94b3 100644
> --- a/xen/drivers/pci/physdev.c
> +++ b/xen/drivers/pci/physdev.c
> @@ -19,7 +19,7 @@ ret_t pci_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
>          struct pci_dev_info pdev_info;
>          nodeid_t node = NUMA_NO_NODE;
>  
> -        if ( !is_pci_passthrough_enabled() )
> +        if ( !is_pci_passthrough_enabled(true) )
>              return -EOPNOTSUPP;
>  
>          ret = -EFAULT;
> @@ -57,7 +57,7 @@ ret_t pci_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
>      case PHYSDEVOP_pci_device_remove: {
>          struct physdev_pci_device dev;
>  
> -        if ( !is_pci_passthrough_enabled() )
> +        if ( !is_pci_passthrough_enabled(true) )
>              return -EOPNOTSUPP;
>  
>          ret = -EFAULT;
> diff --git a/xen/include/xen/pci.h b/xen/include/xen/pci.h
> index f784e91160..c4a49cf584 100644
> --- a/xen/include/xen/pci.h
> +++ b/xen/include/xen/pci.h
> @@ -74,7 +74,7 @@ typedef union {
>  
>  struct arch_pci_dev { };
>  
> -static inline bool is_pci_passthrough_enabled(void)
> +static inline bool is_pci_passthrough_enabled(__maybe_unused bool dom0)
>  {
>      return false;
>  }
> -- 
> 2.34.1
> 


From xen-devel-bounces@lists.xenproject.org Tue Apr 22 00:32:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 00:32:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.961613.1352982 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u71YV-0001MX-US; Tue, 22 Apr 2025 00:32:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 961613.1352982; Tue, 22 Apr 2025 00:32: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 1u71YV-0001MQ-Rs; Tue, 22 Apr 2025 00:32:07 +0000
Received: by outflank-mailman (input) for mailman id 961613;
 Tue, 22 Apr 2025 00:32: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=eQRL=XI=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u71YU-0001MH-7c
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 00:32:06 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3437a3df-1f11-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 02:32:00 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id CFA2661166;
 Tue, 22 Apr 2025 00:31:39 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id BBC5FC4CEE4;
 Tue, 22 Apr 2025 00:31: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: 3437a3df-1f11-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1745281918;
	bh=AQ6JGaQKHVgdA+ZMSKPEwbyjxki9McwGNS0rdB2xuUE=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=TYt4iJh93lU5SExECnCUq1OAdrdae/gy9USb+rx/fS8IyyNxWrpjGgebeyu+9MxaE
	 3zStH4sko5/k1lyjBcf+PBVCQqaCPoMPjfnwfrnE7+CMDxiNgFDFBa5K2gJwsFeVSd
	 p5pYdrJHPDga916iowaUtr+gPd140sw2mqnmapUmE7RaxZTtWMnI/FHCkaxDlGmtHz
	 AIg7i2FpwtdywbDhnfZkmGbiyqjfVC944gCpBmFWH+7SVwTZnhyuBKcmGmkYTuHZS1
	 b72nFI4byMhiksC1UlknxuyQtFwpl5HWcuyqoiaVpIQ6NjuJMPHpaQHJXm4U4k1AbR
	 b35pavrLbDSnQ==
Date: Mon, 21 Apr 2025 17:31:56 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Mykyta Poturai <Mykyta_Poturai@epam.com>
cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    Rahul Singh <rahul.singh@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>, 
    Stewart Hildebrand <stewart.hildebrand@amd.com>
Subject: Re: [PATCH v9 8/8] xen/arm: Map ITS doorbell register to IOMMU page
 tables
In-Reply-To: <e5072a66707b70892f60bb5e0757ae3f74c2d601.1741958647.git.mykyta_poturai@epam.com>
Message-ID: <alpine.DEB.2.22.394.2504211728560.785180@ubuntu-linux-20-04-desktop>
References: <cover.1741958647.git.mykyta_poturai@epam.com> <e5072a66707b70892f60bb5e0757ae3f74c2d601.1741958647.git.mykyta_poturai@epam.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Fri, 14 Mar 2025, Mykyta Poturai wrote:
> From: Rahul Singh <rahul.singh@arm.com>
> 
> When ITS is enabled and PCI devices that are behind an SMMU generate an
> MSI interrupt, SMMU fault will be observed as there is currently no
> mapping in p2m table for the ITS translation register (GITS_TRANSLATER).
> 
> A mapping is required in the iommu page tables so that the device can
> generate the MSI interrupt writing to the GITS_TRANSLATER register.
> 
> The GITS_TRANSLATER register is a 32-bit register, and there is nothing
> else in a page containing it, so map that page.
> 
> Signed-off-by: Rahul Singh <rahul.singh@arm.com>
> Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
> Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
> ---
> This patch was originally picked up from [1], and commit description
> loosely borrowed from [2].
> 
> Example SMMUv3 fault (qemu-system-aarch64 virt model), ITS base 0x8080000:
> 
> (XEN) SMMUv3: /smmuv3@9050000: event 0x10 received:
> (XEN) SMMUv3: /smmuv3@9050000:  0x0000000800000010
> (XEN) SMMUv3: /smmuv3@9050000:  0x0000008000000000
> (XEN) SMMUv3: /smmuv3@9050000:  0x0000000008090040
> (XEN) SMMUv3: /smmuv3@9050000:  0x0000000000000000
> 
> Example SMMUv2 fault (AMD/Xilinx Versal), ITS base 0xf9020000:
> 
> (XEN) smmu: /axi/smmu@fd800000: Unhandled context fault: fsr=0x402, iova=0xf9030040, fsynr=0x12, cb=0
> 
> v8->v9:
> * no changes
> 
> v7->v8:
> * no changes
> 
> v6->v7:
> * add tlb flush after mapping
> * style: update formatting
> * revert back to printk with XENLOG_G_ERR
> 
> v5->v6:
> * switch to iommu_map() interface
> * fix page_count argument
> * style fixup
> * use gprintk instead of printk
> * add my Signed-off-by
> * move to vgic_v3_its_init_virtual()
> 
> v4->v5:
> * new patch
> 
> [1] https://lists.xenproject.org/archives/html/xen-devel/2023-07/msg00483.html
> [2] https://gitlab.com/xen-project/people/bmarquis/xen-arm-poc/-/commit/6232a0d53377009bb7fbc3c3ab81d0153734be6b
> ---
>  xen/arch/arm/vgic-v3-its.c | 20 ++++++++++++++++++++
>  1 file changed, 20 insertions(+)
> 
> diff --git a/xen/arch/arm/vgic-v3-its.c b/xen/arch/arm/vgic-v3-its.c
> index c65c1dbf52..376254f206 100644
> --- a/xen/arch/arm/vgic-v3-its.c
> +++ b/xen/arch/arm/vgic-v3-its.c
> @@ -1478,6 +1478,26 @@ static int vgic_v3_its_init_virtual(struct domain *d, paddr_t guest_addr,
>  
>      register_mmio_handler(d, &vgic_its_mmio_handler, guest_addr, SZ_64K, its);
>  
> +    if ( is_iommu_enabled(its->d) )
> +    {
> +        mfn_t mfn = maddr_to_mfn(its->doorbell_address);
> +        unsigned int flush_flags = 0;
> +        int ret = iommu_map(its->d, _dfn(mfn_x(mfn)), mfn, 1, IOMMUF_writable,
> +                            &flush_flags);

Should this be:

        int ret = iommu_map(its->d, _dfn(PFN_DOWN(its->doorbell_address)), mfn, 1, IOMMUF_writable,
                            &flush_flags);

?


> +        if ( ret < 0 )
> +        {
> +            printk(XENLOG_G_ERR
> +                    "GICv3: Map ITS translation register for %pd failed.\n",
> +                    its->d);
> +            return ret;
> +        }
> +
> +        ret = iommu_iotlb_flush(its->d, _dfn(mfn_x(mfn)), 1, flush_flags);

And this:

       ret = iommu_iotlb_flush(its->d, _dfn(PFN_DOWN(its->doorbell_address)), 1, flush_flags);

?

The original code in this patch assumes that the mapping is 1:1 but
actually its->doorbell_address is set to guest_addr +
ITS_DOORBELL_OFFSET and could potentially be not 1:1 ?

> +        if ( ret < 0 )
> +            return ret;
> +    }
> +
>      /* Register the virtual ITS to be able to clean it up later. */
>      list_add_tail(&its->vits_list, &d->arch.vgic.vits_list);
>  
> -- 
> 2.34.1
> 


From xen-devel-bounces@lists.xenproject.org Tue Apr 22 00:40:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 00:40:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.961625.1352993 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u71gF-0002nL-OS; Tue, 22 Apr 2025 00:40:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 961625.1352993; Tue, 22 Apr 2025 00:40: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 1u71gF-0002nE-K3; Tue, 22 Apr 2025 00:40:07 +0000
Received: by outflank-mailman (input) for mailman id 961625;
 Tue, 22 Apr 2025 00:40: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=eQRL=XI=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u71gE-0002aE-Cq
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 00:40:06 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 536a8790-1f12-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 02:40:03 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id A13BB49D56;
 Tue, 22 Apr 2025 00:39:59 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id D7B81C4CEE4;
 Tue, 22 Apr 2025 00:39: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: 536a8790-1f12-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1745282401;
	bh=3JuZtQS2AMDcTK1zUkU/gUd0qHWbJelOpwPhhmxip+k=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=bkToZzlSPQ++p0xVomRhTiNLB7kuLoN87Kceb78Oz5NjrL26E3/0bS95GKwF/PHAm
	 bFiSVF3y+J0abi4a2AtURB9XiqyjlrASpilyo8qWhdCY8w5mJPFT59NDeZw1lceDhI
	 MdjqHupU4hsT4eid64KY40do1hbeeOWQDQ6pPNzWo2ztyDclv3JAYR3BqdMbkrgU2Q
	 xtOo1EX3cKrSAu4QWRXOKPbwta6d31NxyyHFbeoPtWMF2yP34zc1MaArCPRgGFfT6g
	 5/t8oKDw9DRGQnlR3VazY7v0jOz7o+QB6s3Q0Yn5tnBjImV74IcQjUdLcsI7NApKNO
	 4aaoLMxGMnG5A==
Date: Mon, 21 Apr 2025 17:39:58 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Mykyta Poturai <Mykyta_Poturai@epam.com>
cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
    Bertrand Marquis <bertrand.marquis@arm.com>, 
    Michal Orzel <michal.orzel@amd.com>, 
    Stewart Hildebrand <stewart.hildebrand@amd.com>, 
    Julien Grall <jgrall@amazon.com>
Subject: Re: [PATCH v9 1/8] iommu/arm: Add iommu_dt_xlate()
In-Reply-To: <d44b09bdce11137574f3a54ffd4abb6e8a9b1d5f.1741958647.git.mykyta_poturai@epam.com>
Message-ID: <alpine.DEB.2.22.394.2504211739520.785180@ubuntu-linux-20-04-desktop>
References: <cover.1741958647.git.mykyta_poturai@epam.com> <d44b09bdce11137574f3a54ffd4abb6e8a9b1d5f.1741958647.git.mykyta_poturai@epam.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Fri, 14 Mar 2025, Mykyta Poturai wrote:
> From: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
> 
> Move code for processing DT IOMMU specifier to a separate helper.
> This helper will be re-used for adding PCI devices by the subsequent
> patches as we will need exact the same actions for processing
> DT PCI-IOMMU specifier.
> 
> Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
> Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
> Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
> Reviewed-by: Julien Grall <jgrall@amazon.com>

Committed


From xen-devel-bounces@lists.xenproject.org Tue Apr 22 01:16:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 01:16:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.961637.1353008 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u72FF-000786-Es; Tue, 22 Apr 2025 01:16:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 961637.1353008; Tue, 22 Apr 2025 01: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 1u72FF-00077z-A5; Tue, 22 Apr 2025 01:16:17 +0000
Received: by outflank-mailman (input) for mailman id 961637;
 Tue, 22 Apr 2025 01:16: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=8D33=XI=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u72FC-00077t-Jp
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 01:16:15 +0000
Received: from mail-10631.protonmail.ch (mail-10631.protonmail.ch
 [79.135.106.31]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 59f09a13-1f17-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 03:16:00 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 59f09a13-1f17-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1745284557; x=1745543757;
	bh=/F+DYral6rY1fKs2AxCoRLU8bgtfLuZCw1WO7W82OEk=;
	h=Date:To:From:Cc:Subject:Message-ID:Feedback-ID:From:To:Cc:Date:
	 Subject:Reply-To:Feedback-ID:Message-ID:BIMI-Selector:
	 List-Unsubscribe:List-Unsubscribe-Post;
	b=RbfOD9T4/US0uGXTiE9aVMN/U4YgDO2tv2sLa6248BZHJin99wKGmi6/OIwivyd0S
	 P2KTgYoS8NQdttY9EiAZw1B/S2o8Y11WXi+K38bl9lBwzR5aFrC99kzTkrQ9JzeZFA
	 AQ3fezmLlXnyUS6r8X3Lz5Y5FV4mdtRn7DeyfHTNzjubpjKqdfPw15ygMZPSk6I/c+
	 eY3P3Mam4rxLYm76xSVbMeUGICSY9lplgmSZt8d/ayZE3FkrEWb1VIQKMfrLVfvCib
	 eB/dCfGWAJAuHPIKmYNKMXoCx56x2CoUIZ+d1MS724Mdr/U67A29HMiYXB812An+R2
	 ql+bhDyUMIpYw==
Date: Tue, 22 Apr 2025 01:15:53 +0000
To: xen-devel@lists.xenproject.org
From: dmkhn@proton.me
Cc: andrew.cooper3@citrix.com, jbeulich@suse.com, roger.pau@citrix.com, dmukhin@ford.com
Subject: [PATCH v2] x86/vmx: Update __vmread() signature
Message-ID: <20250422011530.3010312-1-dmukhin@ford.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: a376b09d611f1ce0a9d572984fd1c1c4ba368c8c
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

From: Denis Mukhin <dmukhin@ford.com>

Current implementation of __vmread() returns the result via pointer argumen=
t
which leads to having excess code in some places.

Update the signature of __vmread() to return `unsigned long` and drop the
pointer argument as per suggestion in [1].

Update all call sites everywhere in the VT-x code.

[1] https://lore.kernel.org/xen-devel/c452a1d7-4a57-4c5f-8a83-36a74ff228ec@=
citrix.com/

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
bloat-o-meter reports:
add/remove: 0/0 grow/shrink: 2/3 up/down: 8/-28 (-20)
Function                                     old     new   delta
vmx_vmexit_handler                          7000    7005      +5
nvmx_hap_walk_L1_p2m                         258     261      +3
vmx_do_resume                                485     484      -1
shadow_to_vvmcs_bulk                         304     294     -10
vvmcs_to_shadow_bulk                         296     279     -17
Total: Before=3D3540972, After=3D3540952, chg -0.00%

Changes since v1:
- Limited the scope of the change to __vmread() signature change only
- Link to v1: https://lore.kernel.org/xen-devel/20250408011454.2274613-1-dm=
ukhin@ford.com/
- Link to CI: https://gitlab.com/xen-project/people/dmukhin/xen/-/pipelines=
/1778785297
---
 xen/arch/x86/cpu/vpmu_intel.c          |   3 +-
 xen/arch/x86/hvm/vmx/intr.c            |  26 +---
 xen/arch/x86/hvm/vmx/realmode.c        |   2 +-
 xen/arch/x86/hvm/vmx/vmcs.c            |  11 +-
 xen/arch/x86/hvm/vmx/vmx.c             | 208 +++++++++++--------------
 xen/arch/x86/hvm/vmx/vvmx.c            |  43 +++--
 xen/arch/x86/include/asm/hvm/vmx/vmx.h |  19 +--
 7 files changed, 132 insertions(+), 180 deletions(-)

diff --git a/xen/arch/x86/cpu/vpmu_intel.c b/xen/arch/x86/cpu/vpmu_intel.c
index 7ce98ee42e..3c08448ba4 100644
--- a/xen/arch/x86/cpu/vpmu_intel.c
+++ b/xen/arch/x86/cpu/vpmu_intel.c
@@ -796,8 +796,7 @@ static int cf_check core2_vpmu_do_interrupt(void)
     else
     {
         /* No PMC overflow but perhaps a Trace Message interrupt. */
-        __vmread(GUEST_IA32_DEBUGCTL, &msr_content);
-        if ( !(msr_content & IA32_DEBUGCTLMSR_TR) )
+        if ( !(__vmread(GUEST_IA32_DEBUGCTL) & IA32_DEBUGCTLMSR_TR) )
             return 0;
     }
=20
diff --git a/xen/arch/x86/hvm/vmx/intr.c b/xen/arch/x86/hvm/vmx/intr.c
index 91b407e6bc..9e9217e8b6 100644
--- a/xen/arch/x86/hvm/vmx/intr.c
+++ b/xen/arch/x86/hvm/vmx/intr.c
@@ -63,9 +63,8 @@ static void vmx_enable_intr_window(struct vcpu *v, struct=
 hvm_intack intack)
=20
     if ( unlikely(tb_init_done) )
     {
-        unsigned long intr;
+        unsigned long intr =3D __vmread(VM_ENTRY_INTR_INFO);
=20
-        __vmread(VM_ENTRY_INTR_INFO, &intr);
         TRACE(TRC_HVM_INTR_WINDOW, intack.vector, intack.source,
               (intr & INTR_INFO_VALID_MASK) ? intr & 0xff : -1);
     }
@@ -81,9 +80,8 @@ static void vmx_enable_intr_window(struct vcpu *v, struct=
 hvm_intack intack)
          * we may immediately vmexit and hance make no progress!
          * (see SDM 3B 21.3, "Other Causes of VM Exits").
          */
-        unsigned long intr_shadow;
+        unsigned long intr_shadow =3D __vmread(GUEST_INTERRUPTIBILITY_INFO=
);
=20
-        __vmread(GUEST_INTERRUPTIBILITY_INFO, &intr_shadow);
         if ( intr_shadow & VMX_INTR_SHADOW_STI )
         {
             /* Having both STI-blocking and MOV-SS-blocking fails vmentry.=
 */
@@ -144,14 +142,8 @@ enum hvm_intblk cf_check nvmx_intr_blocked(struct vcpu=
 *v)
         if ( nvcpu->nv_vmexit_pending ||
              nvcpu->nv_vmswitch_in_progress )
             r =3D hvm_intblk_rflags_ie;
-        else
-        {
-            unsigned long intr_info;
-
-            __vmread(VM_ENTRY_INTR_INFO, &intr_info);
-            if ( intr_info & INTR_INFO_VALID_MASK )
-                r =3D hvm_intblk_rflags_ie;
-        }
+        else if ( __vmread(VM_ENTRY_INTR_INFO) & INTR_INFO_VALID_MASK )
+            r =3D hvm_intblk_rflags_ie;
     }
     else if ( nvcpu->nv_vmentry_pending )
         r =3D hvm_intblk_rflags_ie;
@@ -253,8 +245,6 @@ void asmlinkage vmx_intr_assist(void)
     pt_vector =3D pt_update_irq(v);
=20
     do {
-        unsigned long intr_info;
-
         intack =3D hvm_vcpu_has_pending_irq(v);
         if ( likely(intack.source =3D=3D hvm_intsrc_none) )
             goto out;
@@ -275,8 +265,7 @@ void asmlinkage vmx_intr_assist(void)
                 goto out;
             }
=20
-            __vmread(VM_ENTRY_INTR_INFO, &intr_info);
-            if ( intr_info & INTR_INFO_VALID_MASK )
+            if ( __vmread(VM_ENTRY_INTR_INFO) & INTR_INFO_VALID_MASK )
             {
                 if ( (intack.source =3D=3D hvm_intsrc_pic) ||
                      (intack.source =3D=3D hvm_intsrc_nmi) ||
@@ -299,8 +288,7 @@ void asmlinkage vmx_intr_assist(void)
         }
         else
         {
-            __vmread(VM_ENTRY_INTR_INFO, &intr_info);
-            if ( intr_info & INTR_INFO_VALID_MASK )
+            if ( __vmread(VM_ENTRY_INTR_INFO) & INTR_INFO_VALID_MASK )
             {
                 vmx_enable_intr_window(v, intack);
                 goto out;
@@ -377,7 +365,7 @@ void asmlinkage vmx_intr_assist(void)
         }
=20
         /* we need update the RVI field */
-        __vmread(GUEST_INTR_STATUS, &status);
+        status =3D __vmread(GUEST_INTR_STATUS);
         status &=3D ~VMX_GUEST_INTR_STATUS_SUBFIELD_BITMASK;
         status |=3D VMX_GUEST_INTR_STATUS_SUBFIELD_BITMASK &
                     intack.vector;
diff --git a/xen/arch/x86/hvm/vmx/realmode.c b/xen/arch/x86/hvm/vmx/realmod=
e.c
index ff44ddcfa6..ee7a3570ec 100644
--- a/xen/arch/x86/hvm/vmx/realmode.c
+++ b/xen/arch/x86/hvm/vmx/realmode.c
@@ -159,7 +159,7 @@ void vmx_realmode(struct cpu_user_regs *regs)
     unsigned int emulations =3D 0;
=20
     /* Get-and-clear VM_ENTRY_INTR_INFO. */
-    __vmread(VM_ENTRY_INTR_INFO, &intr_info);
+    intr_info =3D __vmread(VM_ENTRY_INTR_INFO);
     if ( intr_info & INTR_INFO_VALID_MASK )
         __vmwrite(VM_ENTRY_INTR_INFO, 0);
=20
diff --git a/xen/arch/x86/hvm/vmx/vmcs.c b/xen/arch/x86/hvm/vmx/vmcs.c
index a44475ae15..c2e4410f89 100644
--- a/xen/arch/x86/hvm/vmx/vmcs.c
+++ b/xen/arch/x86/hvm/vmx/vmcs.c
@@ -1031,7 +1031,7 @@ u64 virtual_vmcs_vmread(const struct vcpu *v, u32 vmc=
s_encoding)
     u64 res;
=20
     virtual_vmcs_enter(v);
-    __vmread(vmcs_encoding, &res);
+    res =3D __vmread(vmcs_encoding);
     virtual_vmcs_exit(v);
=20
     return res;
@@ -1691,7 +1691,7 @@ void vmx_vcpu_flush_pml_buffer(struct vcpu *v)
=20
     vmx_vmcs_enter(v);
=20
-    __vmread(GUEST_PML_INDEX, &pml_idx);
+    pml_idx =3D __vmread(GUEST_PML_INDEX);
=20
     /* Do nothing if PML buffer is empty. */
     if ( pml_idx =3D=3D (NR_PML_ENTRIES - 1) )
@@ -1874,9 +1874,8 @@ void vmx_destroy_vmcs(struct vcpu *v)
 void vmx_vmentry_failure(void)
 {
     struct vcpu *curr =3D current;
-    unsigned long error;
+    unsigned long error =3D __vmread(VM_INSTRUCTION_ERROR);
=20
-    __vmread(VM_INSTRUCTION_ERROR, &error);
     gprintk(XENLOG_ERR, "VM%s error: %#lx\n",
             curr->arch.hvm.vmx.launched ? "RESUME" : "LAUNCH", error);
=20
@@ -1905,7 +1904,6 @@ void cf_check vmx_do_resume(void)
 {
     struct vcpu *v =3D current;
     bool debug_state;
-    unsigned long host_cr4;
=20
     if ( v->arch.hvm.vmx.active_cpu =3D=3D smp_processor_id() )
         vmx_vmcs_reload(v);
@@ -1957,8 +1955,7 @@ void cf_check vmx_do_resume(void)
     hvm_do_resume(v);
=20
     /* Sync host CR4 in case its value has changed. */
-    __vmread(HOST_CR4, &host_cr4);
-    if ( host_cr4 !=3D read_cr4() )
+    if ( __vmread(HOST_CR4) !=3D read_cr4() )
         __vmwrite(HOST_CR4, read_cr4());
=20
     reset_stack_and_jump(vmx_asm_do_vmentry);
diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c
index 4883bd823d..a95d46f019 100644
--- a/xen/arch/x86/hvm/vmx/vmx.c
+++ b/xen/arch/x86/hvm/vmx/vmx.c
@@ -902,7 +902,7 @@ int cf_check vmx_guest_x86_mode(struct vcpu *v)
         return X86_MODE_REAL;
     if ( unlikely(guest_cpu_user_regs()->eflags & X86_EFLAGS_VM) )
         return X86_MODE_VM86;
-    __vmread(GUEST_CS_AR_BYTES, &cs_ar_bytes);
+    cs_ar_bytes =3D __vmread(GUEST_CS_AR_BYTES);
     if ( hvm_long_mode_active(v) &&
          likely(cs_ar_bytes & X86_SEG_AR_CS_LM_ACTIVE) )
         return X86_MODE_64BIT;
@@ -926,7 +926,7 @@ static void vmx_save_dr(struct vcpu *v)
     v->arch.dr[3] =3D read_debugreg(3);
     v->arch.dr6   =3D read_debugreg(6);
     /* DR7 must be saved as it is used by vmx_restore_dr(). */
-    __vmread(GUEST_DR7, &v->arch.dr7);
+    v->arch.dr7 =3D __vmread(GUEST_DR7);
 }
=20
 static void __restore_debug_registers(struct vcpu *v)
@@ -963,17 +963,17 @@ static void vmx_vmcs_save(struct vcpu *v, struct hvm_=
hw_cpu *c)
=20
     vmx_vmcs_enter(v);
=20
-    __vmread(GUEST_SYSENTER_CS, &c->sysenter_cs);
-    __vmread(GUEST_SYSENTER_ESP, &c->sysenter_esp);
-    __vmread(GUEST_SYSENTER_EIP, &c->sysenter_eip);
+    c->sysenter_cs =3D __vmread(GUEST_SYSENTER_CS);
+    c->sysenter_esp =3D __vmread(GUEST_SYSENTER_ESP);
+    c->sysenter_eip =3D __vmread(GUEST_SYSENTER_EIP);
=20
-    __vmread(VM_ENTRY_INTR_INFO, &ev);
+    ev =3D __vmread(VM_ENTRY_INTR_INFO);
     if ( (ev & INTR_INFO_VALID_MASK) &&
          hvm_event_needs_reinjection(MASK_EXTR(ev, INTR_INFO_INTR_TYPE_MAS=
K),
                                      ev & INTR_INFO_VECTOR_MASK) )
     {
         c->pending_event =3D ev;
-        __vmread(VM_ENTRY_EXCEPTION_ERROR_CODE, &ev);
+        ev =3D __vmread(VM_ENTRY_EXCEPTION_ERROR_CODE);
         c->error_code =3D ev;
     }
=20
@@ -1197,11 +1197,7 @@ static void cf_check vmx_ctxt_switch_to(struct vcpu =
*v)
=20
 unsigned int vmx_get_cpl(void)
 {
-    unsigned long attr;
-
-    __vmread(GUEST_SS_AR_BYTES, &attr);
-
-    return MASK_EXTR(attr, X86_SEG_AR_DPL);
+    return MASK_EXTR(__vmread(GUEST_SS_AR_BYTES), X86_SEG_AR_DPL);
 }
=20
 static unsigned int cf_check _vmx_get_cpl(struct vcpu *v)
@@ -1271,14 +1267,14 @@ static void cf_check vmx_get_segment_register(
         fallthrough;
=20
     case x86_seg_es ... x86_seg_gs:
-        __vmread(GUEST_SEG_SELECTOR(tmp_seg), &sel);
-        __vmread(GUEST_SEG_AR_BYTES(tmp_seg), &attr);
+        sel =3D __vmread(GUEST_SEG_SELECTOR(tmp_seg));
+        attr =3D __vmread(GUEST_SEG_AR_BYTES(tmp_seg));
         fallthrough;
=20
     case x86_seg_gdtr:
     case x86_seg_idtr:
-        __vmread(GUEST_SEG_LIMIT(tmp_seg),    &limit);
-        __vmread(GUEST_SEG_BASE(tmp_seg),     &reg->base);
+        limit =3D __vmread(GUEST_SEG_LIMIT(tmp_seg));
+        reg->base =3D __vmread(GUEST_SEG_BASE(tmp_seg));
         break;
=20
     default:
@@ -1436,7 +1432,7 @@ static int cf_check vmx_get_guest_pat(struct vcpu *v,=
 u64 *gpat)
         return 0;
=20
     vmx_vmcs_enter(v);
-    __vmread(GUEST_PAT, gpat);
+    *gpat =3D __vmread(GUEST_PAT);
     vmx_vmcs_exit(v);
     return 1;
 }
@@ -1555,11 +1551,7 @@ static void cf_check vmx_init_hypercall_page(void *p=
)
=20
 static unsigned int cf_check vmx_get_interrupt_shadow(struct vcpu *v)
 {
-    unsigned long intr_shadow;
-
-    __vmread(GUEST_INTERRUPTIBILITY_INFO, &intr_shadow);
-
-    return intr_shadow;
+    return __vmread(GUEST_INTERRUPTIBILITY_INFO);
 }
=20
 static void cf_check vmx_set_interrupt_shadow(
@@ -1573,12 +1565,12 @@ static void cf_check vmx_get_nonreg_state(struct vc=
pu *v,
 {
     vmx_vmcs_enter(v);
=20
-    __vmread(GUEST_ACTIVITY_STATE, &nrs->vmx.activity_state);
-    __vmread(GUEST_INTERRUPTIBILITY_INFO, &nrs->vmx.interruptibility_info)=
;
-    __vmread(GUEST_PENDING_DBG_EXCEPTIONS, &nrs->vmx.pending_dbg);
+    nrs->vmx.activity_state =3D __vmread(GUEST_ACTIVITY_STATE);
+    nrs->vmx.interruptibility_info =3D __vmread(GUEST_INTERRUPTIBILITY_INF=
O);
+    nrs->vmx.pending_dbg =3D __vmread(GUEST_PENDING_DBG_EXCEPTIONS);
=20
     if ( cpu_has_vmx_virtual_intr_delivery )
-        __vmread(GUEST_INTR_STATUS, &nrs->vmx.interrupt_status);
+        nrs->vmx.interrupt_status =3D __vmread(GUEST_INTR_STATUS);
=20
     vmx_vmcs_exit(v);
 }
@@ -1896,7 +1888,7 @@ static void cf_check vmx_update_guest_efer(struct vcp=
u *v)
      * The intended guest running mode is derived from VM_ENTRY_IA32E_MODE=
,
      * which (architecturally) is the guest's LMA setting.
      */
-    __vmread(VM_ENTRY_CONTROLS, &entry_ctls);
+    entry_ctls =3D __vmread(VM_ENTRY_CONTROLS);
=20
     entry_ctls &=3D ~VM_ENTRY_IA32E_MODE;
     if ( guest_efer & EFER_LMA )
@@ -2063,9 +2055,10 @@ static void cf_check vmx_inject_event(const struct x=
86_event *event)
         {
             unsigned long val;
=20
-            __vmread(GUEST_DR7, &val);
+            val =3D __vmread(GUEST_DR7);
             __vmwrite(GUEST_DR7, val & ~DR_GENERAL_DETECT);
-            __vmread(GUEST_IA32_DEBUGCTL, &val);
+
+            val =3D __vmread(GUEST_IA32_DEBUGCTL);
             __vmwrite(GUEST_IA32_DEBUGCTL, val & ~IA32_DEBUGCTLMSR_LBR);
         }
         if ( cpu_has_monitor_trap_flag )
@@ -2089,7 +2082,7 @@ static void cf_check vmx_inject_event(const struct x8=
6_event *event)
     if ( nestedhvm_vcpu_in_guestmode(curr) )
         intr_info =3D vcpu_2_nvmx(curr).intr.intr_info;
     else
-        __vmread(VM_ENTRY_INTR_INFO, &intr_info);
+        intr_info =3D __vmread(VM_ENTRY_INTR_INFO);
=20
     if ( unlikely(intr_info & INTR_INFO_VALID_MASK) &&
          (MASK_EXTR(intr_info, INTR_INFO_INTR_TYPE_MASK) =3D=3D X86_ET_HW_=
EXC) )
@@ -2125,12 +2118,9 @@ static void cf_check vmx_inject_event(const struct x=
86_event *event)
=20
 static bool cf_check vmx_event_pending(const struct vcpu *v)
 {
-    unsigned long intr_info;
-
     ASSERT(v =3D=3D current);
-    __vmread(VM_ENTRY_INTR_INFO, &intr_info);
=20
-    return intr_info & INTR_INFO_VALID_MASK;
+    return __vmread(VM_ENTRY_INTR_INFO) & INTR_INFO_VALID_MASK;
 }
=20
 static void cf_check vmx_set_info_guest(struct vcpu *v)
@@ -2149,7 +2139,7 @@ static void cf_check vmx_set_info_guest(struct vcpu *=
v)
      * to set the GUEST_PENDING_DBG_EXCEPTIONS.BS here incurs
      * immediately vmexit and hence make no progress.
      */
-    __vmread(GUEST_INTERRUPTIBILITY_INFO, &intr_shadow);
+    intr_shadow =3D __vmread(GUEST_INTERRUPTIBILITY_INFO);
     if ( v->domain->debugger_attached &&
          (v->arch.user_regs.eflags & X86_EFLAGS_TF) &&
          (intr_shadow & VMX_INTR_SHADOW_STI) )
@@ -2178,7 +2168,7 @@ static u8 set_svi(int isr)
     if ( isr < 0 )
         isr =3D 0;
=20
-    __vmread(GUEST_INTR_STATUS, &status);
+    status =3D __vmread(GUEST_INTR_STATUS);
     old =3D status >> VMX_GUEST_INTR_STATUS_SVI_OFFSET;
     if ( isr !=3D old )
     {
@@ -2518,9 +2508,9 @@ static bool cf_check vmx_vcpu_emulate_ve(struct vcpu =
*v)
     veinfo->eptp_index =3D vcpu_altp2m(v).p2midx;
=20
     vmx_vmcs_enter(v);
-    __vmread(EXIT_QUALIFICATION, &veinfo->exit_qualification);
-    __vmread(GUEST_LINEAR_ADDRESS, &veinfo->gla);
-    __vmread(GUEST_PHYSICAL_ADDRESS, &veinfo->gpa);
+    veinfo->exit_qualification =3D __vmread(EXIT_QUALIFICATION);
+    veinfo->gla =3D __vmread(GUEST_LINEAR_ADDRESS);
+    veinfo->gpa =3D __vmread(GUEST_PHYSICAL_ADDRESS);
     vmx_vmcs_exit(v);
=20
     hvm_inject_hw_exception(X86_EXC_VE,
@@ -2541,8 +2531,8 @@ static bool cf_check vmx_get_pending_event(
     unsigned long intr_info, error_code;
=20
     vmx_vmcs_enter(v);
-    __vmread(VM_ENTRY_INTR_INFO, &intr_info);
-    __vmread(VM_ENTRY_EXCEPTION_ERROR_CODE, &error_code);
+    intr_info =3D __vmread(VM_ENTRY_INTR_INFO);
+    error_code =3D __vmread(VM_ENTRY_EXCEPTION_ERROR_CODE);
     vmx_vmcs_exit(v);
=20
     if ( !(intr_info & INTR_INFO_VALID_MASK) )
@@ -2739,11 +2729,11 @@ static uint64_t cf_check vmx_get_reg(struct vcpu *v=
, unsigned int reg)
     {
     case MSR_SPEC_CTRL:
         ASSERT(cpu_has_vmx_virt_spec_ctrl);
-        __vmread(SPEC_CTRL_SHADOW, &val);
+        val =3D __vmread(SPEC_CTRL_SHADOW);
         break;
=20
     case MSR_IA32_BNDCFGS:
-        __vmread(GUEST_BNDCFGS, &val);
+        val =3D __vmread(GUEST_BNDCFGS);
         break;
=20
     default:
@@ -3161,9 +3151,9 @@ void __init vmx_fill_funcs(void)
  */
 static int get_instruction_length(void)
 {
-    unsigned long len;
+    /* Safe: callers audited */
+    unsigned long len =3D __vmread(VM_EXIT_INSTRUCTION_LEN);
=20
-    __vmread(VM_EXIT_INSTRUCTION_LEN, &len); /* Safe: callers audited */
     BUG_ON((len < 1) || (len > MAX_INST_LEN));
     return len;
 }
@@ -3176,7 +3166,7 @@ void update_guest_eip(void)
     regs->rip +=3D get_instruction_length(); /* Safe: callers audited */
     regs->eflags &=3D ~X86_EFLAGS_RF;
=20
-    __vmread(GUEST_INTERRUPTIBILITY_INFO, &x);
+    x =3D __vmread(GUEST_INTERRUPTIBILITY_INFO);
     if ( x & (VMX_INTR_SHADOW_STI | VMX_INTR_SHADOW_MOV_SS) )
     {
         x &=3D ~(VMX_INTR_SHADOW_STI | VMX_INTR_SHADOW_MOV_SS);
@@ -3424,21 +3414,21 @@ static int cf_check vmx_msr_read_intercept(
     switch ( msr )
     {
     case MSR_IA32_SYSENTER_CS:
-        __vmread(GUEST_SYSENTER_CS, msr_content);
+        *msr_content =3D __vmread(GUEST_SYSENTER_CS);
         break;
     case MSR_IA32_SYSENTER_ESP:
-        __vmread(GUEST_SYSENTER_ESP, msr_content);
+        *msr_content =3D __vmread(GUEST_SYSENTER_ESP);
         break;
     case MSR_IA32_SYSENTER_EIP:
-        __vmread(GUEST_SYSENTER_EIP, msr_content);
+        *msr_content =3D __vmread(GUEST_SYSENTER_EIP);
         break;
=20
     case MSR_FS_BASE:
-        __vmread(GUEST_FS_BASE, msr_content);
+        *msr_content =3D __vmread(GUEST_FS_BASE);
         break;
=20
     case MSR_GS_BASE:
-        __vmread(GUEST_GS_BASE, msr_content);
+        *msr_content =3D __vmread(GUEST_GS_BASE);
         break;
=20
     case MSR_SHADOW_GS_BASE:
@@ -3462,7 +3452,7 @@ static int cf_check vmx_msr_read_intercept(
         break;
=20
     case MSR_IA32_DEBUGCTLMSR:
-        __vmread(GUEST_IA32_DEBUGCTL, msr_content);
+        *msr_content =3D __vmread(GUEST_IA32_DEBUGCTL);
         break;
=20
     case MSR_IA32_VMX_BASIC...MSR_IA32_VMX_VMFUNC:
@@ -3828,7 +3818,7 @@ static void vmx_do_extint(struct cpu_user_regs *regs)
 {
     unsigned long vector;
=20
-    __vmread(VM_EXIT_INTR_INFO, &vector);
+    vector =3D __vmread(VM_EXIT_INTR_INFO);
     BUG_ON(!(vector & INTR_INFO_VALID_MASK));
=20
     vector &=3D INTR_INFO_VECTOR_MASK;
@@ -3893,7 +3883,7 @@ static void ept_handle_violation(ept_qual_t q, paddr_=
t gpa)
=20
     if ( q.gla_valid )
     {
-        __vmread(GUEST_LINEAR_ADDRESS, &gla);
+        gla =3D __vmread(GUEST_LINEAR_ADDRESS);
         npfec.gla_valid =3D 1;
         if( q.gla_fault )
             npfec.kind =3D npfec_kind_with_gla;
@@ -3944,7 +3934,7 @@ static void vmx_failed_vmentry(unsigned int exit_reas=
on,
     struct vcpu *curr =3D current;
=20
     printk("%pv vmentry failure (reason %#x): ", curr, exit_reason);
-    __vmread(EXIT_QUALIFICATION, &exit_qualification);
+    exit_qualification =3D __vmread(EXIT_QUALIFICATION);
     switch ( failed_vmentry_reason )
     {
     case EXIT_REASON_INVALID_GUEST_STATE:
@@ -4001,13 +3991,12 @@ void vmx_enter_realmode(struct cpu_user_regs *regs)
=20
 static int vmx_handle_eoi_write(void)
 {
-    unsigned long exit_qualification;
+    unsigned long exit_qualification =3D __vmread(EXIT_QUALIFICATION);
=20
     /*
      * 1. Must be a linear access data write.
      * 2. Data write must be to the EOI register.
      */
-    __vmread(EXIT_QUALIFICATION, &exit_qualification);
     if ( (((exit_qualification >> 12) & 0xf) =3D=3D 1) &&
          ((exit_qualification & 0xfff) =3D=3D APIC_EOI) )
     {
@@ -4033,21 +4022,14 @@ static void vmx_propagate_intr(unsigned long intr)
         .vector =3D MASK_EXTR(intr, INTR_INFO_VECTOR_MASK),
         .type =3D MASK_EXTR(intr, INTR_INFO_INTR_TYPE_MASK),
     };
-    unsigned long tmp;
=20
     if ( intr & INTR_INFO_DELIVER_CODE_MASK )
-    {
-        __vmread(VM_EXIT_INTR_ERROR_CODE, &tmp);
-        event.error_code =3D tmp;
-    }
+        event.error_code =3D __vmread(VM_EXIT_INTR_ERROR_CODE);
     else
         event.error_code =3D X86_EVENT_NO_EC;
=20
     if ( event.type >=3D X86_ET_SW_INT )
-    {
-        __vmread(VM_EXIT_INSTRUCTION_LEN, &tmp);
-        event.insn_len =3D tmp;
-    }
+        event.insn_len =3D __vmread(VM_EXIT_INSTRUCTION_LEN);
     else
         event.insn_len =3D 0;
=20
@@ -4071,7 +4053,7 @@ static void vmx_idtv_reinject(unsigned long idtv_info=
)
             {
                 unsigned long ec;
=20
-                __vmread(IDT_VECTORING_ERROR_CODE, &ec);
+                ec =3D __vmread(IDT_VECTORING_ERROR_CODE);
                 __vmwrite(VM_ENTRY_EXCEPTION_ERROR_CODE, ec);
             }
         }
@@ -4086,7 +4068,7 @@ static void vmx_idtv_reinject(unsigned long idtv_info=
)
         {
             unsigned long intr_info;
=20
-            __vmread(GUEST_INTERRUPTIBILITY_INFO, &intr_info);
+            intr_info =3D __vmread(GUEST_INTERRUPTIBILITY_INFO);
             __vmwrite(GUEST_INTERRUPTIBILITY_INFO,
                       intr_info & ~VMX_INTR_SHADOW_NMI);
         }
@@ -4111,8 +4093,8 @@ static void vmx_handle_descriptor_access(uint32_t exi=
t_reason)
     uint64_t exit_qualification;
     unsigned int desc;
=20
-    __vmread(EXIT_QUALIFICATION, &exit_qualification);
-    __vmread(VMX_INSTRUCTION_INFO, &instr_info);
+    exit_qualification =3D __vmread(EXIT_QUALIFICATION);
+    instr_info =3D __vmread(VMX_INSTRUCTION_INFO);
=20
     if ( exit_reason =3D=3D EXIT_REASON_ACCESS_GDTR_OR_IDTR )
     {
@@ -4137,7 +4119,7 @@ static int vmx_handle_apic_write(void)
     unsigned long exit_qualification;
=20
     ASSERT(cpu_has_vmx_apic_reg_virt);
-    __vmread(EXIT_QUALIFICATION, &exit_qualification);
+    exit_qualification =3D __vmread(EXIT_QUALIFICATION);
=20
     return vlapic_apicv_write(current, exit_qualification & 0xfff);
 }
@@ -4146,7 +4128,7 @@ static void undo_nmis_unblocked_by_iret(void)
 {
     unsigned long guest_info;
=20
-    __vmread(GUEST_INTERRUPTIBILITY_INFO, &guest_info);
+    guest_info =3D __vmread(GUEST_INTERRUPTIBILITY_INFO);
     __vmwrite(GUEST_INTERRUPTIBILITY_INFO,
               guest_info | VMX_INTR_SHADOW_NMI);
 }
@@ -4159,12 +4141,12 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_=
regs *regs)
     struct vcpu *v =3D current;
     struct domain *currd =3D v->domain;
=20
-    __vmread(GUEST_RIP,    &regs->rip);
-    __vmread(GUEST_RSP,    &regs->rsp);
-    __vmread(GUEST_RFLAGS, &regs->rflags);
+    regs->rip =3D __vmread(GUEST_RIP);
+    regs->rsp =3D __vmread(GUEST_RSP);
+    regs->rflags =3D __vmread(GUEST_RFLAGS);
=20
     if ( hvm_long_mode_active(v) )
-        __vmread(GUEST_CS_AR_BYTES, &cs_ar_bytes);
+        cs_ar_bytes =3D __vmread(GUEST_CS_AR_BYTES);
=20
     hvm_sanitize_regs_fields(regs, !(cs_ar_bytes & X86_SEG_AR_CS_LM_ACTIVE=
));
=20
@@ -4174,17 +4156,17 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_=
regs *regs)
          * Xen allows the guest to modify some CR4 bits directly, update c=
ached
          * values to match.
          */
-        __vmread(GUEST_CR4, &v->arch.hvm.hw_cr[4]);
+        v->arch.hvm.hw_cr[4] =3D __vmread(GUEST_CR4);
         v->arch.hvm.guest_cr[4] &=3D v->arch.hvm.vmx.cr4_host_mask;
         v->arch.hvm.guest_cr[4] |=3D (v->arch.hvm.hw_cr[4] &
                                     ~v->arch.hvm.vmx.cr4_host_mask);
=20
-        __vmread(GUEST_CR3, &v->arch.hvm.hw_cr[3]);
+        v->arch.hvm.hw_cr[3] =3D __vmread(GUEST_CR3);
         if ( vmx_unrestricted_guest(v) || hvm_paging_enabled(v) )
             v->arch.hvm.guest_cr[3] =3D v->arch.hvm.hw_cr[3];
     }
=20
-    __vmread(VM_EXIT_REASON, &exit_reason);
+    exit_reason =3D __vmread(VM_EXIT_REASON);
=20
     if ( hvm_long_mode_active(v) )
         TRACE_TIME(TRC_HVM_VMX_EXIT64, exit_reason, regs->rip, regs->rip >=
> 32);
@@ -4200,7 +4182,7 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_re=
gs *regs)
         vmx_do_extint(regs);
         break;
     case EXIT_REASON_EXCEPTION_NMI:
-        __vmread(VM_EXIT_INTR_INFO, &intr_info);
+        intr_info =3D __vmread(VM_EXIT_INTR_INFO);
         BUG_ON(!(intr_info & INTR_INFO_VALID_MASK));
         vector =3D intr_info & INTR_INFO_VECTOR_MASK;
         if ( vector =3D=3D X86_EXC_MC )
@@ -4237,12 +4219,12 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_=
regs *regs)
=20
         if ( v->arch.hvm.vmx.secondary_exec_control &
             SECONDARY_EXEC_ENABLE_VIRT_EXCEPTIONS )
-            __vmread(EPTP_INDEX, &idx);
+        {
+            idx =3D __vmread(EPTP_INDEX);
+        }
         else
         {
-            unsigned long eptp;
-
-            __vmread(EPT_POINTER, &eptp);
+            unsigned long eptp =3D __vmread(EPT_POINTER);
=20
             if ( (idx =3D p2m_find_altp2m_by_eptp(v->domain, eptp)) =3D=3D
                  INVALID_ALTP2M )
@@ -4259,10 +4241,7 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_r=
egs *regs)
=20
     if ( unlikely(currd->arch.monitor.vmexit_enabled) )
     {
-        int rc;
-
-        __vmread(EXIT_QUALIFICATION, &exit_qualification);
-        rc =3D hvm_monitor_vmexit(exit_reason, exit_qualification);
+        int rc =3D hvm_monitor_vmexit(exit_reason, __vmread(EXIT_QUALIFICA=
TION));
         if ( rc < 0 )
             goto exit_and_crash;
         if ( rc )
@@ -4327,7 +4306,7 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_re=
gs *regs)
=20
     hvm_maybe_deassert_evtchn_irq();
=20
-    __vmread(IDT_VECTORING_INFO, &idtv_info);
+    idtv_info =3D __vmread(IDT_VECTORING_INFO);
     if ( exit_reason !=3D EXIT_REASON_TASK_SWITCH )
         vmx_idtv_reinject(idtv_info);
=20
@@ -4362,7 +4341,7 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_re=
gs *regs)
              * Updates DR6 where debugger can peek (See 3B 23.2.1,
              * Table 23-1, "Exit Qualification for Debug Exceptions").
              */
-            __vmread(EXIT_QUALIFICATION, &exit_qualification);
+            exit_qualification =3D __vmread(EXIT_QUALIFICATION);
             TRACE(TRC_HVM_TRAP_DEBUG, exit_qualification);
             __restore_debug_registers(v);
             write_debugreg(6, exit_qualification | DR_STATUS_RESERVED_ONE)=
;
@@ -4388,29 +4367,25 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_=
regs *regs)
              */
             if ( unlikely(regs->eflags & X86_EFLAGS_TF) )
             {
-                unsigned long int_info;
-
-                __vmread(GUEST_INTERRUPTIBILITY_INFO, &int_info);
+                unsigned long int_info =3D __vmread(GUEST_INTERRUPTIBILITY=
_INFO);
=20
                 if ( int_info & (VMX_INTR_SHADOW_STI | VMX_INTR_SHADOW_MOV=
_SS) )
                 {
-                    unsigned long pending_dbg;
+                    unsigned long exc =3D __vmread(GUEST_PENDING_DBG_EXCEP=
TIONS);
=20
-                    __vmread(GUEST_PENDING_DBG_EXCEPTIONS, &pending_dbg);
-                    __vmwrite(GUEST_PENDING_DBG_EXCEPTIONS,
-                              pending_dbg | DR_STEP);
+                    __vmwrite(GUEST_PENDING_DBG_EXCEPTIONS, exc | DR_STEP)=
;
                 }
             }
=20
             if ( !v->domain->debugger_attached )
             {
                 unsigned long insn_len =3D 0;
-                int rc;
                 unsigned long trap_type =3D MASK_EXTR(intr_info,
                                                     INTR_INFO_INTR_TYPE_MA=
SK);
+                int rc;
=20
                 if ( trap_type >=3D X86_ET_SW_INT )
-                    __vmread(VM_EXIT_INSTRUCTION_LEN, &insn_len);
+                    insn_len =3D __vmread(VM_EXIT_INSTRUCTION_LEN);
=20
                 rc =3D hvm_monitor_debug(regs->rip,
                                        HVM_MONITOR_DEBUG_EXCEPTION,
@@ -4428,10 +4403,9 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_r=
egs *regs)
             TRACE(TRC_HVM_TRAP, vector);
             if ( !v->domain->debugger_attached )
             {
-                unsigned long insn_len;
+                unsigned long insn_len =3D __vmread(VM_EXIT_INSTRUCTION_LE=
N);
                 int rc;
=20
-                __vmread(VM_EXIT_INSTRUCTION_LEN, &insn_len);
                 rc =3D hvm_monitor_debug(regs->rip,
                                        HVM_MONITOR_SOFTWARE_BREAKPOINT,
                                        X86_ET_SW_EXC,
@@ -4454,8 +4428,8 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_re=
gs *regs)
             vmx_fpu_dirty_intercept();
             break;
         case X86_EXC_PF:
-            __vmread(EXIT_QUALIFICATION, &exit_qualification);
-            __vmread(VM_EXIT_INTR_ERROR_CODE, &ecode);
+            exit_qualification =3D __vmread(EXIT_QUALIFICATION);
+            ecode =3D __vmread(VM_EXIT_INTR_ERROR_CODE);
             regs->error_code =3D ecode;
=20
             HVM_DBG_LOG(DBG_LEVEL_VMMU,
@@ -4522,7 +4496,7 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_re=
gs *regs)
         };
         unsigned int inst_len, source;
=20
-        __vmread(EXIT_QUALIFICATION, &exit_qualification);
+        exit_qualification =3D __vmread(EXIT_QUALIFICATION);
         source =3D (exit_qualification >> 30) & 3;
         /* Vectored event should fill in interrupt information. */
         WARN_ON((source =3D=3D 3) && !(idtv_info & INTR_INFO_VALID_MASK));
@@ -4536,9 +4510,9 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_re=
gs *regs)
                      > 3)) /* IntrType > 3? */
             ? get_instruction_length() /* Safe: SDM 3B 23.2.4 */ : 0;
         if ( (source =3D=3D 3) && (idtv_info & INTR_INFO_DELIVER_CODE_MASK=
) )
-            __vmread(IDT_VECTORING_ERROR_CODE, &ecode);
+            ecode =3D __vmread(IDT_VECTORING_ERROR_CODE);
         else
-             ecode =3D -1;
+            ecode =3D -1;
=20
         hvm_task_switch(exit_qualification, reasons[source], ecode, inst_l=
en,
                         0 /* EFLAGS.RF already updated. */);
@@ -4565,7 +4539,7 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_re=
gs *regs)
         break;
     case EXIT_REASON_INVLPG:
         update_guest_eip(); /* Safe: INVLPG */
-        __vmread(EXIT_QUALIFICATION, &exit_qualification);
+        exit_qualification =3D __vmread(EXIT_QUALIFICATION);
         vmx_invlpg_intercept(exit_qualification);
         break;
     case EXIT_REASON_RDTSCP:
@@ -4591,13 +4565,13 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_=
regs *regs)
=20
     case EXIT_REASON_CR_ACCESS:
     {
-        __vmread(EXIT_QUALIFICATION, &exit_qualification);
+        exit_qualification =3D __vmread(EXIT_QUALIFICATION);
         if ( vmx_cr_access(exit_qualification) =3D=3D X86EMUL_OKAY )
             update_guest_eip(); /* Safe: MOV Cn, LMSW, CLTS */
         break;
     }
     case EXIT_REASON_DR_ACCESS:
-        __vmread(EXIT_QUALIFICATION, &exit_qualification);
+        exit_qualification =3D __vmread(EXIT_QUALIFICATION);
         vmx_dr_access(exit_qualification, regs);
         break;
     case EXIT_REASON_MSR_READ:
@@ -4671,7 +4645,7 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_re=
gs *regs)
         break;
=20
     case EXIT_REASON_EOI_INDUCED:
-        __vmread(EXIT_QUALIFICATION, &exit_qualification);
+        exit_qualification =3D __vmread(EXIT_QUALIFICATION);
=20
         ASSERT(cpu_has_vmx_virtual_intr_delivery);
=20
@@ -4695,7 +4669,7 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_re=
gs *regs)
         unsigned int bytes;
         int rc;
=20
-        __vmread(EXIT_QUALIFICATION, &io_qual.raw);
+        io_qual.raw =3D __vmread(EXIT_QUALIFICATION);
         bytes =3D io_qual.size + 1;
=20
         rc =3D hvm_monitor_io(io_qual.port, bytes, io_qual.in, io_qual.str=
);
@@ -4728,10 +4702,9 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_r=
egs *regs)
=20
     case EXIT_REASON_EPT_VIOLATION:
     {
-        paddr_t gpa;
+        paddr_t gpa =3D __vmread(GUEST_PHYSICAL_ADDRESS);
=20
-        __vmread(GUEST_PHYSICAL_ADDRESS, &gpa);
-        __vmread(EXIT_QUALIFICATION, &exit_qualification);
+        exit_qualification =3D __vmread(EXIT_QUALIFICATION);
=20
         if ( unlikely(exit_qualification & INTR_INFO_NMI_UNBLOCKED_BY_IRET=
) &&
              !(idtv_info & INTR_INFO_VALID_MASK) )
@@ -4743,9 +4716,8 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_re=
gs *regs)
=20
     case EXIT_REASON_EPT_MISCONFIG:
     {
-        paddr_t gpa;
+        paddr_t gpa =3D __vmread(GUEST_PHYSICAL_ADDRESS);
=20
-        __vmread(GUEST_PHYSICAL_ADDRESS, &gpa);
         if ( !ept_handle_misconfig(gpa) )
             goto exit_and_crash;
         break;
@@ -4781,7 +4753,7 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_re=
gs *regs)
         break;
=20
     case EXIT_REASON_PML_FULL:
-        __vmread(EXIT_QUALIFICATION, &exit_qualification);
+        exit_qualification =3D __vmread(EXIT_QUALIFICATION);
=20
         if ( unlikely(exit_qualification & INTR_INFO_NMI_UNBLOCKED_BY_IRET=
) &&
              !(idtv_info & INTR_INFO_VALID_MASK) )
@@ -4804,7 +4776,7 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_re=
gs *regs)
         break;
=20
     case EXIT_REASON_NOTIFY:
-        __vmread(EXIT_QUALIFICATION, &exit_qualification);
+        exit_qualification =3D __vmread(EXIT_QUALIFICATION);
=20
         if ( unlikely(exit_qualification & NOTIFY_VM_CONTEXT_INVALID) )
         {
diff --git a/xen/arch/x86/hvm/vmx/vvmx.c b/xen/arch/x86/hvm/vmx/vvmx.c
index ceb5e5a322..09be4f3602 100644
--- a/xen/arch/x86/hvm/vmx/vvmx.c
+++ b/xen/arch/x86/hvm/vmx/vvmx.c
@@ -400,8 +400,7 @@ static int decode_vmx_inst(struct cpu_user_regs *regs,
     unsigned long base, index, seg_base, disp, offset;
     int scale, size;
=20
-    __vmread(VMX_INSTRUCTION_INFO, &offset);
-    info.word =3D offset;
+    info.word =3D __vmread(VMX_INSTRUCTION_INFO);
=20
     if ( info.fields.memreg ) {
         decode->type =3D VMX_INST_MEMREG_TYPE_REG;
@@ -428,7 +427,7 @@ static int decode_vmx_inst(struct cpu_user_regs *regs,
=20
         scale =3D 1 << info.fields.scaling;
=20
-        __vmread(EXIT_QUALIFICATION, &disp);
+        disp =3D __vmread(EXIT_QUALIFICATION);
=20
         size =3D 1 << (info.fields.addr_size + 1);
=20
@@ -997,7 +996,7 @@ static void vvmcs_to_shadow_bulk(struct vcpu *v, unsign=
ed int n,
=20
     virtual_vmcs_enter(v);
     for ( i =3D 0; i < n; i++ )
-        __vmread(field[i], &value[i]);
+        value[i] =3D __vmread(field[i]);
     virtual_vmcs_exit(v);
=20
     for ( i =3D 0; i < n; i++ )
@@ -1012,7 +1011,7 @@ fallback:
=20
 static inline void shadow_to_vvmcs(const struct vcpu *v, unsigned int fiel=
d)
 {
-    unsigned long value;
+    unsigned long value =3D 0;
=20
     if ( vmread_safe(field, &value) =3D=3D 0 )
         set_vvmcs(v, field, value);
@@ -1036,7 +1035,7 @@ static void shadow_to_vvmcs_bulk(struct vcpu *v, unsi=
gned int n,
     }
=20
     for ( i =3D 0; i < n; i++ )
-        __vmread(field[i], &value[i]);
+        value[i] =3D __vmread(field[i]);
=20
     virtual_vmcs_enter(v);
     for ( i =3D 0; i < n; i++ )
@@ -1405,7 +1404,7 @@ static void nvmx_update_apicv(struct vcpu *v)
     }
     else
        /* Keep previous SVI if there's any. */
-       __vmread(GUEST_INTR_STATUS, &status);
+       status =3D __vmread(GUEST_INTR_STATUS);
=20
     rvi =3D vlapic_has_pending_irq(v);
     if ( rvi !=3D -1 )
@@ -1687,7 +1686,6 @@ static int nvmx_handle_vmresume(struct cpu_user_regs =
*regs)
     bool launched;
     struct vcpu *v =3D current;
     struct nestedvmx *nvmx =3D &vcpu_2_nvmx(v);
-    unsigned long intr_shadow;
     int rc;
=20
     if ( !vvmcx_valid(v) )
@@ -1696,8 +1694,7 @@ static int nvmx_handle_vmresume(struct cpu_user_regs =
*regs)
         return X86EMUL_OKAY;       =20
     }
=20
-    __vmread(GUEST_INTERRUPTIBILITY_INFO, &intr_shadow);
-    if ( intr_shadow & VMX_INTR_SHADOW_MOV_SS )
+    if ( __vmread(GUEST_INTERRUPTIBILITY_INFO) & VMX_INTR_SHADOW_MOV_SS )
     {
         vmfail_valid(regs, VMX_INSN_VMENTRY_BLOCKED_BY_MOV_SS);
         return X86EMUL_OKAY;
@@ -1723,7 +1720,6 @@ static int nvmx_handle_vmlaunch(struct cpu_user_regs =
*regs)
     bool launched;
     struct vcpu *v =3D current;
     struct nestedvmx *nvmx =3D &vcpu_2_nvmx(v);
-    unsigned long intr_shadow;
     int rc;
=20
     if ( !vvmcx_valid(v) )
@@ -1732,8 +1728,7 @@ static int nvmx_handle_vmlaunch(struct cpu_user_regs =
*regs)
         return X86EMUL_OKAY;
     }
=20
-    __vmread(GUEST_INTERRUPTIBILITY_INFO, &intr_shadow);
-    if ( intr_shadow & VMX_INTR_SHADOW_MOV_SS )
+    if ( __vmread(GUEST_INTERRUPTIBILITY_INFO) & VMX_INTR_SHADOW_MOV_SS )
     {
         vmfail_valid(regs, VMX_INSN_VMENTRY_BLOCKED_BY_MOV_SS);
         return X86EMUL_OKAY;
@@ -2355,7 +2350,7 @@ int cf_check nvmx_hap_walk_L1_p2m(
=20
     vmx_vmcs_enter(v);
=20
-    __vmread(EXIT_QUALIFICATION, &exit_qual);
+    exit_qual =3D __vmread(EXIT_QUALIFICATION);
     rc =3D nept_translate_l2ga(v, L2_gpa, page_order, rwx_rights, &gfn, p2=
m_acc,
                              &exit_qual, &exit_reason);
     switch ( rc )
@@ -2391,7 +2386,7 @@ void nvmx_idtv_handling(void)
     struct nestedvcpu *nvcpu =3D &vcpu_nestedhvm(v);
     unsigned long idtv_info, reason;
=20
-    __vmread(IDT_VECTORING_INFO, &idtv_info);
+    idtv_info =3D __vmread(IDT_VECTORING_INFO);
     if ( likely(!(idtv_info & INTR_INFO_VALID_MASK)) )
         return;
=20
@@ -2399,7 +2394,7 @@ void nvmx_idtv_handling(void)
      * If L0 can solve the fault that causes idt vectoring, it should
      * be reinjected, otherwise, pass to L1.
      */
-    __vmread(VM_EXIT_REASON, &reason);
+    reason =3D __vmread(VM_EXIT_REASON);
     if ( (uint16_t)reason !=3D EXIT_REASON_EPT_VIOLATION ?
          !(nvmx->intr.intr_info & INTR_INFO_VALID_MASK) :
          !nvcpu->nv_vmexit_pending )
@@ -2407,7 +2402,7 @@ void nvmx_idtv_handling(void)
         __vmwrite(VM_ENTRY_INTR_INFO, idtv_info & ~INTR_INFO_RESVD_BITS_MA=
SK);
         if ( idtv_info & INTR_INFO_DELIVER_CODE_MASK )
         {
-            __vmread(IDT_VECTORING_ERROR_CODE, &reason);
+            reason =3D __vmread(IDT_VECTORING_ERROR_CODE);
             __vmwrite(VM_ENTRY_EXCEPTION_ERROR_CODE, reason);
         }
         /*
@@ -2418,7 +2413,7 @@ void nvmx_idtv_handling(void)
          * This means EXIT_INSTRUCTION_LEN is always valid here, for
          * software interrupts both injected by L1, and generated in L2.
          */
-        __vmread(VM_EXIT_INSTRUCTION_LEN, &reason);
+        reason =3D __vmread(VM_EXIT_INSTRUCTION_LEN);
         __vmwrite(VM_ENTRY_INSTRUCTION_LEN, reason);
    }
 }
@@ -2452,7 +2447,7 @@ int nvmx_n2_vmexit_handler(struct cpu_user_regs *regs=
,
         u64 exec_bitmap;
         int vector;
=20
-        __vmread(VM_EXIT_INTR_INFO, &intr_info);
+        intr_info =3D __vmread(VM_EXIT_INTR_INFO);
         vector =3D intr_info & INTR_INFO_VECTOR_MASK;
         /*
          * decided by L0 and L1 exception bitmap, if the vetor is set by
@@ -2531,7 +2526,7 @@ int nvmx_n2_vmexit_handler(struct cpu_user_regs *regs=
,
             unsigned long qual;
             u16 port, size;
=20
-            __vmread(EXIT_QUALIFICATION, &qual);
+            qual =3D __vmread(EXIT_QUALIFICATION);
             port =3D qual >> 16;
             size =3D (qual & 7) + 1;
             do {
@@ -2638,7 +2633,7 @@ int nvmx_n2_vmexit_handler(struct cpu_user_regs *regs=
,
         cr_access_qual_t qual;
         u32 mask =3D 0;
=20
-        __vmread(EXIT_QUALIFICATION, &qual.raw);
+        qual.raw =3D __vmread(EXIT_QUALIFICATION);
         /* also according to guest exec_control */
         ctrl =3D __n2_exec_control(v);
=20
@@ -2680,7 +2675,7 @@ int nvmx_n2_vmexit_handler(struct cpu_user_regs *regs=
,
                 {
                     u64 cr0_gh_mask =3D get_vvmcs(v, CR0_GUEST_HOST_MASK);
=20
-                    __vmread(CR0_READ_SHADOW, &old_val);
+                    old_val =3D __vmread(CR0_READ_SHADOW);
                     changed_bits =3D old_val ^ val;
                     if ( changed_bits & cr0_gh_mask )
                         nvcpu->nv_vmexit_pending =3D 1;
@@ -2696,7 +2691,7 @@ int nvmx_n2_vmexit_handler(struct cpu_user_regs *regs=
,
                 {
                     u64 cr4_gh_mask =3D get_vvmcs(v, CR4_GUEST_HOST_MASK);
=20
-                    __vmread(CR4_READ_SHADOW, &old_val);
+                    old_val =3D __vmread(CR4_READ_SHADOW);
                     changed_bits =3D old_val ^ val;
                     if ( changed_bits & cr4_gh_mask )
                         nvcpu->nv_vmexit_pending =3D 1;
@@ -2732,7 +2727,7 @@ int nvmx_n2_vmexit_handler(struct cpu_user_regs *regs=
,
             {
                 u64 cr0_gh_mask =3D get_vvmcs(v, CR0_GUEST_HOST_MASK);
=20
-                __vmread(CR0_READ_SHADOW, &old_val);
+                old_val =3D __vmread(CR0_READ_SHADOW);
                 old_val &=3D X86_CR0_PE|X86_CR0_MP|X86_CR0_EM|X86_CR0_TS;
                 val =3D qual.lmsw_data &
                       (X86_CR0_PE|X86_CR0_MP|X86_CR0_EM|X86_CR0_TS);
diff --git a/xen/arch/x86/include/asm/hvm/vmx/vmx.h b/xen/arch/x86/include/=
asm/hvm/vmx/vmx.h
index 33d3d43a38..fbbf9acce8 100644
--- a/xen/arch/x86/include/asm/hvm/vmx/vmx.h
+++ b/xen/arch/x86/include/asm/hvm/vmx/vmx.h
@@ -320,16 +320,20 @@ static always_inline void __vmpclear(u64 addr)
     BUG();
 }
=20
-static always_inline void __vmread(unsigned long field, unsigned long *val=
ue)
+static always_inline unsigned long __vmread(unsigned long field)
 {
-    asm volatile ( "vmread %1, %0\n\t"
+    unsigned long value;
+
+    asm volatile ( "vmread %[field], %[value]\n\t"
                    /* CF=3D=3D1 or ZF=3D=3D1 --> BUG() */
                    UNLIKELY_START(be, vmread)
                    _ASM_BUGFRAME_TEXT(0)
                    UNLIKELY_END_SECTION
-                   : "=3Drm" (*value)
-                   : "r" (field),
+                   : [value] "=3Drm" (value)
+                   : [field] "r" (field),
                      _ASM_BUGFRAME_INFO(BUGFRAME_bug, __LINE__, __FILE__, =
0) );
+
+    return value;
 }
=20
 static always_inline void __vmwrite(unsigned long field, unsigned long val=
ue)
@@ -363,7 +367,7 @@ static inline enum vmx_insn_errno vmread_safe(unsigned =
long field,
     if ( unlikely(fail_invalid) )
         ret =3D VMX_INSN_FAIL_INVALID;
     else if ( unlikely(fail_valid) )
-        __vmread(VM_INSTRUCTION_ERROR, &ret);
+        ret =3D __vmread(VM_INSTRUCTION_ERROR);
=20
     return ret;
 }
@@ -371,8 +375,6 @@ static inline enum vmx_insn_errno vmread_safe(unsigned =
long field,
 static inline enum vmx_insn_errno vmwrite_safe(unsigned long field,
                                                unsigned long value)
 {
-    unsigned long ret;
-
     asm goto ( "vmwrite %[value], %[field]\n\t"
                "jc %l[vmfail_invalid]\n\t"
                "jz %l[vmfail_error]"
@@ -386,8 +388,7 @@ static inline enum vmx_insn_errno vmwrite_safe(unsigned=
 long field,
     return VMX_INSN_FAIL_INVALID;
=20
  vmfail_error:
-    __vmread(VM_INSTRUCTION_ERROR, &ret);
-    return ret;
+    return __vmread(VM_INSTRUCTION_ERROR);
 }
=20
 static always_inline void __invept(unsigned long type, uint64_t eptp)
--=20
2.34.1




From xen-devel-bounces@lists.xenproject.org Tue Apr 22 06:24:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 06:24:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.961669.1353017 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u772Z-0001mQ-RS; Tue, 22 Apr 2025 06:23:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 961669.1353017; Tue, 22 Apr 2025 06:23:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u772Z-0001mI-NE; Tue, 22 Apr 2025 06:23:31 +0000
Received: by outflank-mailman (input) for mailman id 961669;
 Tue, 22 Apr 2025 06:23:30 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=f4Vg=XI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u772Y-0001mC-23
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 06:23:30 +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 464c59ea-1f42-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 08:23:15 +0200 (CEST)
Received: by mail-wr1-x42f.google.com with SMTP id
 ffacd0b85a97d-39ac56756f6so4657771f8f.2
 for <xen-devel@lists.xenproject.org>; Mon, 21 Apr 2025 23:23:15 -0700 (PDT)
Received: from [10.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-4406d5a9e6csm164685085e9.1.2025.04.21.23.23.14
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 21 Apr 2025 23:23: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: 464c59ea-1f42-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745302995; x=1745907795; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=70iTuBy0pAYM6hB/WUqWVv+V12glWn8GNi+sHtRdTU4=;
        b=G9LoNtjUSpwWlrGFKXu3+rSauOMLTBTOgd1lc5hIcWDnwJAwvNoZGApnwsrsdxLydZ
         Oy5atQHIJ+kxK9CDbn178K37cTvoKmcBWIq2SBGwNuzB9SbdJUXMHN5eFGUWugee7+QK
         xBvlKEpTJ/YX25vLCgOA0jFuKZLCCsUng+tbtA66NBAjzuGN0/oyh+EAe9e/gzSd1Nek
         T0sE1P1tKJEJ9t1pHsViuFjJnfEPiQu9KvHRbSHdak+TqNa47qkC+o0/ChQLaHadkBfc
         IoWoZbD0FhGIsmQTDSWYQV0PHWczuvLL/gA7MNlClyLu2dSG52WX8laYhUuFhoFRpy9z
         zdoQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745302995; x=1745907795;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=70iTuBy0pAYM6hB/WUqWVv+V12glWn8GNi+sHtRdTU4=;
        b=ebmir3vwididl6VFgJuLUM3K+Egq0mAeJGmIBc/whP6mN/DIxUgJWm+q8sM9+/Y/RI
         /bE4sWSY33UE7df7icbnZWHUA53DrxmS4ydmDr9lOfdyPdV+7uMUDr6Z+PCKwzE3+Okz
         2rT3qRTVdv5paBeSjqJOdQDjxH0da1LWarLDYRu4Sp0WWdc3Icv+Fck7TrO9AY45hBMt
         YqqIEkNJkAD45cu64ZO0sNCcytmJdddi3q03eSxWmfFO1I18k484/qhX6KiIK3B20e0I
         ZZC0Ry4S5x+tJgXcxB6/0Nak9m1NFNTsewAsQJjhUeHRSq629l0utMS9GMwZxMdFnSJQ
         vmrQ==
X-Forwarded-Encrypted: i=1; AJvYcCWzYOKVEs5Mz8kqzDDcRVx1zPHidbdCBgAqO46ExMs397dsEbHjLz+28QLgMJwT/3R1yu7hnPCXCMA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwyyYvgdcGj/4GqrbF9qS/JWuFAONSPEX0zXsLlX5EfaI42HKuL
	vUpP5xPEfF9O1XWSelcw4JIp11IgcMXAFZk+O9SnRFF/jCLjCWnERtzd7UPFRA==
X-Gm-Gg: ASbGncuCiHGpzjyCQ+W7SjtPdWQFrj3DzCSlTpsRGTK5F3CpAUQpKblTsTffaR/nMbl
	3XP9IL3LMRA7GUQ1T0Nn5X9xnYyN8kJ+pRYomGx47gVsFdbFrwO8fDe5xGqAt12MHccZbzVw+AU
	7zHlGzllP2WkHUCKmSkEeNAMBbmZ+y4UhbbRsiNuaJ6UGxFGNXJRMZ2gcRAj/rudjlMwCVognEH
	S//CCMf/OwlPNGEtHi/t3QgZHaLAQA4ZBwvPc4wq6LYfMDQuAkTJvUvmqGSHPhmThT4ZLxZKvoN
	6HNawsKf7sn+qvtvKJ103G2YSAGeGly+U2IxPuHyxHEFMJ6E0Z6Afn86S55XL+wykNE1aEh9Mpb
	N9o3UbwdSKjmgf2pMra4YOwGutg==
X-Google-Smtp-Source: AGHT+IFCIBGBhxPLv8dW7GkDdvIwAOboZFXvqH+TtEz3xJDccozhcZtBcyf4WpLOLFakS1odw/yIww==
X-Received: by 2002:a05:6000:250f:b0:39e:f51d:9cf9 with SMTP id ffacd0b85a97d-39efbb01f56mr11015184f8f.48.1745302995209;
        Mon, 21 Apr 2025 23:23:15 -0700 (PDT)
Message-ID: <f1266283-7166-428a-a4f1-e260e60f70fa@suse.com>
Date: Tue, 22 Apr 2025 08:23:17 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] compat/memory: avoid UB shifts in XENMEM_exchange
 handling
To: Jason Andryuk <jason.andryuk@amd.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Manuel Andreas <manuel.andreas@tum.de>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <ffd8f532-6714-4f56-a358-71ab580202b6@suse.com>
 <ebae7fb0-382c-4db3-a37c-db458af3299b@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: <ebae7fb0-382c-4db3-a37c-db458af3299b@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 17.04.2025 18:50, Jason Andryuk wrote:
> On 2025-04-17 10:08, Jan Beulich wrote:
>> Add an early basic check, yielding the same error code as the more
>> thorough on the the main handler would produce.
> 
> "as the more thorough check in the main handler"...

I had already correct the typo ("on" when "one" was meant).

>> Fixes: b8a7efe8528a ("Enable compatibility mode operation for HYPERVISOR_memory_op")
>> Reported-by: Manuel Andreas <manuel.andreas@tum.de>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> 
> With that:
> 
> Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>

Thanks.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 22 06:46:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 06:46:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.961685.1353032 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u77OY-0004hB-Nz; Tue, 22 Apr 2025 06:46:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 961685.1353032; Tue, 22 Apr 2025 06:46:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u77OY-0004h4-JF; Tue, 22 Apr 2025 06:46:14 +0000
Received: by outflank-mailman (input) for mailman id 961685;
 Tue, 22 Apr 2025 06:46: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=f4Vg=XI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u77OX-0004gy-M9
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 06:46:13 +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 7a4a9f6c-1f45-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 08:46:11 +0200 (CEST)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-43d0618746bso35280165e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 21 Apr 2025 23:46:11 -0700 (PDT)
Received: from [10.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-4406d6e0364sm158292755e9.38.2025.04.21.23.46.10
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 21 Apr 2025 23:46: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: 7a4a9f6c-1f45-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745304371; x=1745909171; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=goNbJTkZTQdJBFY9N6JtVlZDHZoN3LR5Kvcrw9p6VJw=;
        b=VwzPdWaGO7r7Eo+MMyphjk5PMBt1C7rbwr/ahezIWsgxai7Toz2o3oGdYLhdRSBF2a
         gOm1JwDnRu8LMKpt5+1wACHk2nL2fis+1jCL8Pp4xp8FeYhPMxg6E/qkVkSwNU60EoKD
         oQRxyn2RZsm4CZIpvG4ZxKXagsUAJUVFmwY+lcv9upegaYyTvGnaJoBT2SwdMsfQpXKE
         zg/7zk1bcRkLVtzD8c9hHPfdLUzLVbY2ZOnKkeaThZJDPVH0FiSEALnphLIP1b7JkrvS
         zt3xSrXEelmpuFynLp7cG1UUTXoyZ1v7kTbwMNsBKef2r99RQ0WwYBW5klef8elHK7a0
         yfTA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745304371; x=1745909171;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=goNbJTkZTQdJBFY9N6JtVlZDHZoN3LR5Kvcrw9p6VJw=;
        b=qw5FNDxcEabu2im3POEBuSGBVggq/a0spNciezsSBob4cEcWu/pShnzd1dmmVfMsLw
         nlwwTbjoap2d17Zf6yhtZpQCSO8CwIv8CoSOx6yJrpp2cAnoOREHQJRI+WD1Nx+7qhJy
         UtAjKxGsGNKbDIP5v+g+wrVp+StP/Hb0wscE3gPOfwWa8CLSVN5GhbIR4W7XOOii8Nzl
         nf7N68aNu3Y3Y5BERYZudPwRg4v+lScHJuFrWLb4+fLRBTUpLFMhSY0lweNV5GhuXOf1
         ME6HBRoBfXzXKg8aLadiIeC6bDLAbqRF/N9tSKPOtBCC6dYBviRbSGwNmBWWgA1jnXww
         iWhA==
X-Forwarded-Encrypted: i=1; AJvYcCVBHCpXnUB0OLv5294+/1YbaDjyPzr/k8X7WjCjVoyq7vYGaekmWr7GBQmpFeNqfM5jRt+HcabfbkI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzhGXVPEVxU6NUo55gdnfPBJV2kg3rqvUqMogvO0jgadFYCOy/7
	EebvFsUx9qLxAge1Iar9Xn14ugXcq4SKkxCjDUftH+7DTqCIg24x/NcbQIWndQ==
X-Gm-Gg: ASbGncu2AdEO88crEZlLU0C79vI4+hiYeISlQwSKS100LkSDz2RkmChf5MxdiTFuOJF
	QYt2BpMadbgRU6jWWKovdHGijAZysNWWQZxgtQNoZ1AILvkKOs7H46WA7pebviTyQujipTpPOZp
	iABGjr3L/NS1pGXaPpfK5mSiQKtLmurBkV3TLDabASILqv1Us7JQIsgAwNXJZ2YiA+mJPHTQHIo
	eIWrDYPdjeJX2M8oL9Mv3VgdekOh5YWDzqVim81AWjaCBxbbflyOZyMSs0Ysxf5BwKGXdrdUb9V
	3+xWsiqJdOXteRErXyuwZ0FF+2Jad01qajrvaMbMI+ZY/ViweTxRAgsOTQjWQR0exq2+LKelT8z
	ZfjgWIeEUm9Ii+7qNG/lovNPi9A==
X-Google-Smtp-Source: AGHT+IHEB9aZj6e4amFP4n2by2E+rDakfFHK6yAf5sKAFanoEDd+RGa8vnORxFULfbZ2AmfEKPl3hg==
X-Received: by 2002:a05:600c:4707:b0:43c:efed:732c with SMTP id 5b1f17b1804b1-4406ac27536mr91096385e9.28.1745304370943;
        Mon, 21 Apr 2025 23:46:10 -0700 (PDT)
Message-ID: <32297a1f-418f-403b-9529-e9f2620e1279@suse.com>
Date: Tue, 22 Apr 2025 08:46:13 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 2/4] x86/hvm: fix handling of accesses to partial r/o
 MMIO pages
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: <20250417152514.13702-1-roger.pau@citrix.com>
 <20250417152514.13702-3-roger.pau@citrix.com>
 <f71bc0f8-8de1-4ecd-a2c0-a420e991e429@suse.com>
 <aAErECZ1Ys-Nufon@macbook.lan>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <aAErECZ1Ys-Nufon@macbook.lan>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 17.04.2025 18:23, Roger Pau Monné wrote:
> On Thu, Apr 17, 2025 at 05:38:54PM +0200, Jan Beulich wrote:
>> On 17.04.2025 17:25, Roger Pau Monne wrote:
>>> --- /dev/null
>>> +++ b/xen/arch/x86/hvm/mmio.c
>>> @@ -0,0 +1,125 @@
>>> +/* SPDX-License-Identifier: GPL-2.0-only */
>>> +/*
>>> + * MMIO related routines.
>>> + *
>>> + * Copyright (c) 2025 Cloud Software Group
>>> + */
>>> +
>>> +#include <xen/io.h>
>>> +#include <xen/mm.h>
>>> +
>>> +#include <asm/p2m.h>
>>> +
>>> +static int cf_check subpage_mmio_accept(struct vcpu *v, unsigned long addr)
>>> +{
>>> +    p2m_type_t t;
>>> +    mfn_t mfn = get_gfn_query_unlocked(v->domain, PFN_DOWN(addr), &t);
>>> +
>>> +    return !mfn_eq(mfn, INVALID_MFN) && t == p2m_mmio_direct &&
>>> +           subpage_mmio_find_page(mfn);
>>> +}
>>> +
>>> +/*
>>> + * The guest has read access to those regions, and consequently read accesses
>>> + * shouldn't fault.  However read-modify-write operations may take this path,
>>> + * so handling of reads is necessary.
>>> + */
>>> +static int cf_check subpage_mmio_read(
>>> +    struct vcpu *v, unsigned long addr, unsigned int len, unsigned long *data)
>>> +{
>>> +    struct domain *d = v->domain;
>>> +    unsigned long gfn = PFN_DOWN(addr);
>>> +    p2m_type_t t;
>>> +    mfn_t mfn;
>>> +    struct subpage_ro_range *entry;
>>> +    volatile void __iomem *mem;
>>> +
>>> +    *data = ~0UL;
>>> +
>>> +    if ( !IS_ALIGNED(len | addr, len) )
>>
>> What's the point of doing the | ? len can't be misaligned with itself?
> 
> Hm, it's the same form that's used in mmio_ro_emulated_write(), I
> assumed it was to catch illegal access lengths, like 3.

Oh, I see. But that's not using IS_ALIGNED(), and imo validly so, despite the
apparent open-coding. IS_ALIGNED() requires the 2nd argument to be a power of
two. The combined check there is folding the power-of-2 one with the is-
aligned one.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 22 06:50:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 06:50:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.961697.1353041 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u77T6-0006Kh-6w; Tue, 22 Apr 2025 06:50:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 961697.1353041; Tue, 22 Apr 2025 06: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 1u77T6-0006Ka-3a; Tue, 22 Apr 2025 06:50:56 +0000
Received: by outflank-mailman (input) for mailman id 961697;
 Tue, 22 Apr 2025 06: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=f4Vg=XI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u77T5-0006KU-5d
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 06:50:55 +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 220c5525-1f46-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 08:50:52 +0200 (CEST)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-43690d4605dso38133165e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 21 Apr 2025 23:50:52 -0700 (PDT)
Received: from [10.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-39efa43bef1sm13898306f8f.49.2025.04.21.23.50.51
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 21 Apr 2025 23:50:52 -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: 220c5525-1f46-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745304652; x=1745909452; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=DqGAc+NTxDpGdquOAibZ6B2EGrQKikik1OQ6kdoOxuc=;
        b=Zo1v7fRDmViQO9cZokhDjkZwRlh6yS191fqwkCS3dgDLz7T1n7+ySs8tQWHcnmkEwT
         /4+6VDU4rhIZb4JBteZrP2QjJKJEafR5fT/SmUSMF/+730CC+pPTLfw8PIsr9xO3oTwb
         ZyeSLzbI+9HKAZBq0jI2t6t6IdJ+d1wSwaW0nuasfWQ/de2ay4a2Hpmo78bssYXlu/xb
         DDw2YugisbMxSjBIMmIZcUlZ2w468f3ObUp2R5VrKNcvq7zVs17R7n4u3M2mKY3Q7Avt
         zVunNZgmmhsSfk5s+sdPY9bn9AEMtmz84duWHW1+yS5R/GcCWVFMTRM23GTX9g3VdbTm
         2Wfw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745304652; x=1745909452;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=DqGAc+NTxDpGdquOAibZ6B2EGrQKikik1OQ6kdoOxuc=;
        b=rE7rtDvSBjTy1uECJeQccNYWCu5EkJ8ps/W/kz8tfXl28zgy+grE6wZiQjFL1NwWky
         J1CgtMDHIoy5MT30GliQwCQ0qyUvu7MDvJPnUU9ybwQT+eKpuHctI6gCu11wTCvx/7kE
         qRCwSaYMV/IFUAoyu4O3Dn0AtMjPzgZLZX9K+lHx7XBg5iI0A+vAncYwLJjYDPrDg0wV
         iWp+msS3nIF+BW35SAT+VC7si8IolgZb7LYxIuALHxKarrZbRpREqdHqB5lW1S1KKVF8
         EHCzMdJoPEVeb5NK63cgcPMzfYy4DNzN+mOSYM9K+tfeXlC9hmuL3c36dZuVjd6S4bOl
         X9hA==
X-Forwarded-Encrypted: i=1; AJvYcCUdmRyIxE61VLUXs28kd4M3hH6JWIcs8liFD7PCl0aYkW8USe+WQpNxTxvBWdYmTmVga+Rpyw7ogSs=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxfs4IjB2GZia7DzV4oHhpBeacLQ3jD1ejqUELrnwUCimsoRDQb
	F6jaAMSwb+C4+gT7LrDBzj/Bf+E7CBLh+gyQUNEVBAn9ArBfdXwfWegpSiJ2RQ==
X-Gm-Gg: ASbGncsbT1SsIy8F6iONFLX3Fi9E92zZ50qRQKgiu+ulM3VHariZ4WPU3WHkYAYsqqc
	SgpvgwgQHNAhKzmT7/Rg617tSn1NmNTMkBFBWAeiMFT0WZpkW2qSWi5/fPGCdTfXc/p8SLlFevu
	ZvpT/6eNmxOdl64bq2LLSJcqS9kMfTgH41BGerseTaz5eVQgJY8wJ3uWBgHhwJOdIZv1+i1uiN+
	KNkYupqmsmQpPKe7JiVjgHLGRF7uEiFYzA6e2L72l0Wx4xfItda8i6Dy9QJbyfFdDO3iYu9nvLJ
	vkQ62b9yazk9v3QkqLNp5iaLCyeZciQTA7vCi938JchMB7zdjEcLh+FSmd8KErCUPFeUyTYg5Xn
	1Pj8+xRakZ8EDakF8oy8VTdS8Yw==
X-Google-Smtp-Source: AGHT+IE/pYa9r1/US++OuGixF4dX5miDOM0RtSO+avwsjyYRbHaiI8Hee3tqFtFSnLK3XtFIe+5p0Q==
X-Received: by 2002:a05:600c:1911:b0:43d:9d5:474d with SMTP id 5b1f17b1804b1-4406aa8b882mr128079345e9.0.1745304652355;
        Mon, 21 Apr 2025 23:50:52 -0700 (PDT)
Message-ID: <a92a292d-a283-41f2-816d-1db51a6789fb@suse.com>
Date: Tue, 22 Apr 2025 08:50:54 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 18/19] xen/sysctl: wrap around arch-specific
 arch_do_sysctl
To: "Penny, Zheng" <penny.zheng@amd.com>
Cc: "Huang, Ray" <Ray.Huang@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 "Orzel, Michal" <Michal.Orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 "Stabellini, Stefano" <stefano.stabellini@amd.com>,
 Sergiy Kibrik <Sergiy_Kibrik@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20250326055053.3313146-1-Penny.Zheng@amd.com>
 <20250326055053.3313146-19-Penny.Zheng@amd.com>
 <33b166be-21db-473e-a59a-3779436c0494@suse.com>
 <DM4PR12MB845116DF8BF05D205BD8622FE1BF2@DM4PR12MB8451.namprd12.prod.outlook.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <DM4PR12MB845116DF8BF05D205BD8622FE1BF2@DM4PR12MB8451.namprd12.prod.outlook.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 18.04.2025 11:46, Penny, Zheng wrote:
> [Public]
> 
> Hi，
> 
>> -----Original Message-----
>> From: Jan Beulich <jbeulich@suse.com>
>> Sent: Tuesday, April 1, 2025 10:47 PM
>> To: Penny, Zheng <penny.zheng@amd.com>
>> Cc: Huang, Ray <Ray.Huang@amd.com>; Stefano Stabellini
>> <sstabellini@kernel.org>; Julien Grall <julien@xen.org>; Bertrand Marquis
>> <bertrand.marquis@arm.com>; Orzel, Michal <Michal.Orzel@amd.com>;
>> Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>; Andrew Cooper
>> <andrew.cooper3@citrix.com>; Anthony PERARD <anthony.perard@vates.tech>;
>> Roger Pau Monné <roger.pau@citrix.com>; Alistair Francis
>> <alistair.francis@wdc.com>; Bob Eshleman <bobbyeshleman@gmail.com>;
>> Connor Davis <connojdavis@gmail.com>; Oleksii Kurochko
>> <oleksii.kurochko@gmail.com>; Stabellini, Stefano
>> <stefano.stabellini@amd.com>; Sergiy Kibrik <Sergiy_Kibrik@epam.com>; xen-
>> devel@lists.xenproject.org
>> Subject: Re: [PATCH v2 18/19] xen/sysctl: wrap around arch-specific
>> arch_do_sysctl
>>
>> On 26.03.2025 06:50, Penny Zheng wrote:
>>> Function arch_do_sysctl is to perform arch-specific sysctl op.
>>> Some functions, like psr_get_info for x86, DTB overlay support for
>>> arm, are solely available through sysctl op, then they all shall be
>>> wrapped with CONFIG_SYSCTL Also, remove all #ifdef CONFIG_SYSCTL-s in
>>> arch-specific sysctl.c, as we put the guardian in Makefile for the
>>> whole file.
>>>
>>> Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
>>> Signed-off-by: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
>>> Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
>>> ---
>>> - use "depends on" for config OVERLAY_DTB
>>> - no need to wrap declaration
>>> - add transient #ifdef in sysctl.c for correct compilation
>>> ---
>>>  xen/arch/arm/Kconfig   |  1 +
>>>  xen/arch/arm/Makefile  |  2 +-
>>>  xen/arch/arm/sysctl.c  |  2 --
>>>  xen/arch/riscv/stubs.c |  2 +-
>>>  xen/arch/x86/Makefile  |  2 +-
>>>  xen/arch/x86/psr.c     | 18 ++++++++++++++++++
>>>  xen/arch/x86/sysctl.c  |  2 --
>>>  xen/common/sysctl.c    |  2 ++
>>>  8 files changed, 24 insertions(+), 7 deletions(-)
>>>
>>> diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig index
>>> ffdff1f0a3..aa1b4a6e6b 100644
>>> --- a/xen/arch/arm/Kconfig
>>> +++ b/xen/arch/arm/Kconfig
>>> @@ -141,6 +141,7 @@ config HAS_ITS
>>>
>>>  config OVERLAY_DTB
>>>     bool "DTB overlay support (UNSUPPORTED)" if UNSUPPORTED
>>> +   depends on SYSCTL
>>>     help
>>>       Dynamic addition/removal of Xen device tree nodes using a dtbo.
>>>
>>> diff --git a/xen/arch/arm/Makefile b/xen/arch/arm/Makefile index
>>> 4837ad467a..7c6015b84d 100644
>>> --- a/xen/arch/arm/Makefile
>>> +++ b/xen/arch/arm/Makefile
>>> @@ -54,7 +54,7 @@ obj-y += smpboot.o
>>>  obj-$(CONFIG_STATIC_EVTCHN) += static-evtchn.init.o
>>>  obj-$(CONFIG_STATIC_MEMORY) += static-memory.init.o
>>>  obj-$(CONFIG_STATIC_SHM) += static-shmem.init.o -obj-y += sysctl.o
>>> +obj-$(CONFIG_SYSCTL) += sysctl.o
>>>  obj-y += time.o
>>>  obj-y += traps.o
>>>  obj-y += vcpreg.o
>>> diff --git a/xen/arch/arm/sysctl.c b/xen/arch/arm/sysctl.c index
>>> 2d350b700a..32cab4feff 100644
>>> --- a/xen/arch/arm/sysctl.c
>>> +++ b/xen/arch/arm/sysctl.c
>>> @@ -15,7 +15,6 @@
>>>  #include <asm/arm64/sve.h>
>>>  #include <public/sysctl.h>
>>>
>>> -#ifdef CONFIG_SYSCTL
>>>  void arch_do_physinfo(struct xen_sysctl_physinfo *pi)  {
>>>      pi->capabilities |= XEN_SYSCTL_PHYSCAP_hvm |
>>> XEN_SYSCTL_PHYSCAP_hap; @@ -23,7 +22,6 @@ void
>> arch_do_physinfo(struct xen_sysctl_physinfo *pi)
>>>      pi->arch_capabilities |= MASK_INSR(sve_encode_vl(get_sys_vl_len()),
>>>
>>> XEN_SYSCTL_PHYSCAP_ARM_SVE_MASK);  } -#endif
>>>
>>>  long arch_do_sysctl(struct xen_sysctl *sysctl,
>>>                      XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl)
>>> diff --git a/xen/arch/riscv/stubs.c b/xen/arch/riscv/stubs.c index
>>> 7b3f748886..ae865e1972 100644
>>> --- a/xen/arch/riscv/stubs.c
>>> +++ b/xen/arch/riscv/stubs.c
>>> @@ -322,13 +322,13 @@ unsigned long raw_copy_from_guest(void *to,
>>> const void __user *from,
>>>
>>>  /* sysctl.c */
>>>
>>> +#ifdef CONFIG_SYSCTL
>>>  long arch_do_sysctl(struct xen_sysctl *sysctl,
>>>                      XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl)  {
>>>      BUG_ON("unimplemented");
>>>  }
>>>
>>> -#ifdef CONFIG_SYSCTL
>>>  void arch_do_physinfo(struct xen_sysctl_physinfo *pi)  {
>>>      BUG_ON("unimplemented");
>>> diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile index
>>> f59c9665fd..837eafcbc0 100644
>>> --- a/xen/arch/x86/Makefile
>>> +++ b/xen/arch/x86/Makefile
>>> @@ -79,7 +79,7 @@ ifneq ($(CONFIG_PV_SHIM_EXCLUSIVE),y)  obj-y +=
>>> domctl.o  obj-y += platform_hypercall.o
>>>  obj-$(CONFIG_COMPAT) += x86_64/platform_hypercall.o -obj-y +=
>>> sysctl.o
>>> +obj-$(CONFIG_SYSCTL) += sysctl.o
>>>  endif
>>
>> I think I had indicated before that this shouldn't stay inside the conditional, but
>> move back up. Whether that is to happen here or while addressing my respective
>> comment on patch 01 I can't easily tell.
> 
> We want that "PV_SHIM_EXCLUSIVE likely wants / needs sorting as
> a prereq anyway", does the prereq here mean that prereq in kconfig,
> something like
> ```
> config SYSCTL
>       depends on xxx
> ```

I'm sorry, but I fear I can't interpret what you're saying (possibly asking).

>>> --- a/xen/common/sysctl.c
>>> +++ b/xen/common/sysctl.c
>>> @@ -490,8 +490,10 @@ long
>> do_sysctl(XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl)
>>>          break;
>>>
>>>      default:
>>> +#ifdef CONFIG_SYSCTL
>>>          ret = arch_do_sysctl(op, u_sysctl);
>>>          copyback = 0;
>>> +#endif
>>>          break;
>>>      }
>>
>> This isn't enough. "ret" is 0 when reaching the default: label, but may not stay 0 for
>> the return from the function. I understand (expect) this is going to be dropped
>> again in the next patch, but even if only transiently needed this should be kept
>> correct imo. Things might be different if patch 02 introduced the option without a
>> prompt, i.e. always enabled. Then all the #ifdef-ary added up to here would be
>> merely syntactic sugar. In fact in that case you could omit all the transient #ifdef
>> that the last patch is going to remove again. Please consider going that route.
>>
>> Otherwise I think the #endif also needs moving up, for copyback to still be cleared
>> here.
>>
> 
> I'll change it to as follows to complement case for CONFIG_SYSCTL==n, plz correct me if I understand wrongly here:
> ```
>       default:
> +#ifdef CONFIG_SYSCTL
>          ret = arch_do_sysctl(op, u_sysctl);
> +#else
> +        ret = -EOPNOTSUPP;
> +#endif
>          copyback = 0;
>          break;
> ```

This is an option, yes, yet I'd like my other outline to be taken into consideration,
too (for imo resulting in less churn overall).

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 22 06:57:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 06:57:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.961709.1353051 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u77Z8-0006w3-SB; Tue, 22 Apr 2025 06:57:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 961709.1353051; Tue, 22 Apr 2025 06: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 1u77Z8-0006vw-O0; Tue, 22 Apr 2025 06:57:10 +0000
Received: by outflank-mailman (input) for mailman id 961709;
 Tue, 22 Apr 2025 06: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=f4Vg=XI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u77Z7-0006v5-Fr
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 06:57:09 +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 01979166-1f47-11f0-9eb0-5ba50f476ded;
 Tue, 22 Apr 2025 08:57:08 +0200 (CEST)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-39c0dfad22aso3293227f8f.2
 for <xen-devel@lists.xenproject.org>; Mon, 21 Apr 2025 23:57:07 -0700 (PDT)
Received: from [10.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-39efa420683sm14191286f8f.20.2025.04.21.23.57.06
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 21 Apr 2025 23:57: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: 01979166-1f47-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745305027; x=1745909827; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ID17WFPefFDHfGmSoZ97O39hAhlQPH1GxgRm05uwzmw=;
        b=bGxgnItmseTM20ERbtwxBn8mas/Gshps0Ztok7pFc2GjmpAeDlP8xXVaOWKymZyeBO
         t0ejGsGA2eHrz/iJ2bxddIFrhS4VzlE+BvMzoSoW4kmK0u5yx2m/OTb1o974heCtNQ2M
         taYxWfzbDXMwEtTc8iD+rJWuhyGLV3wCYA8Me7bpcMDv7CzBy7KmDk7eqNzL3CbvRdzu
         JHKmmV/SOmCKRzL2v8aeqYcenZ9Kavb7rDRI1qmR8jYVxFq/pm8J3z+zyqn/bsLBZ8UD
         NRnC1yNLvnuP6yrMBovJRk/FKuKZifp2bvYokejRwZoTXyV5YAdwS9tGgtiMaI7zdfjF
         HsRQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745305027; x=1745909827;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ID17WFPefFDHfGmSoZ97O39hAhlQPH1GxgRm05uwzmw=;
        b=hr6UQe7k9dGrk4shsgGLZhKfyW2ZVaSYTZf5fNrF2daKFBBjjZBIm5TOlJ24KTQPfB
         Kfu7XVAjs2n9rEW0F7IWCeuN3ET5BOTomNmPZMp4wRR5pVpWFNTv6Koc2/UYkGToA1NX
         mkiFii9Fu3uOCcbzr2rxmpXLqoFWdlkhj6NhbiOU3v1VoSdhPZtVpXJvTIWsVro6QOci
         zH1t+own0o63TjqztS0JWxkvDeN1xxXwZbPdWWr8L7NQZx0ncgoL0/tuGMtju5dsSH9T
         PoAbeE8xs4SAcDpu5yYSF/ff40oQj2WdmBCTYWsDBr9X61GmpMqo01uAm3qUQi12bAgB
         khBw==
X-Forwarded-Encrypted: i=1; AJvYcCVXB88iDCSRMQmb9tuM3J8waBM5MVQ0zYbo/PHxUVm1oLuTmPHdb3jOMFc6nEyNMkktHx0yqCL63Bk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YywXNAPlkdNLurN12/RCiCFGKVrYKCFWDLFIUuCbDTpeT6c72GD
	RWPxVpG9EIm2iP2qKBKb9fmRXFoB19CBIFXwS41lJ2eSi5zG7GemUncFiEMxng==
X-Gm-Gg: ASbGncvtp4GBL9tpBBUd3aB8eiGPbHGp1JqkLKeRJMfFL6kl8RQhc/3jWkmDI47U/2J
	+k+fcyqhwlpyp/dHFbbyQNVK1IwLX/vm+0B2scvP9dI0t5wqegnXwmI6erZz2IlSgZpMOSlnCOj
	b6kofXIWtlFGY2fXBtss5gkzbGI9hqqL+rSKb0hOsXiPrZJmvrFZyHFDeuxAlueRg8jKXujPRso
	kFDO/BDGBQwF9B/TriUTzh2/R0LRVI0c1lm+w2dPnY0K+DXtqCp55EwnnrAst9xalvszW/HD+GI
	OkcZ6eIgKeEA9psjcxTLIbzf34phKHd8XQXChvbOB5aVa96JL57/geshTAqcU+JNDCzsjReflgs
	dZ4VgnV1+wD+VY/b/zJg5GJ3GYg==
X-Google-Smtp-Source: AGHT+IEh9xe5f8HavrqQuLLpJE56RoTbQtdSPCgDCEjo/2/uQp+SWic4BK+X4HtdEymqKTS1bWVd9w==
X-Received: by 2002:a5d:5f54:0:b0:391:22a9:4408 with SMTP id ffacd0b85a97d-39efba4ad94mr10711981f8f.16.1745305027386;
        Mon, 21 Apr 2025 23:57:07 -0700 (PDT)
Message-ID: <21deb3c2-9c84-4d86-9716-318f4130578f@suse.com>
Date: Tue, 22 Apr 2025 08:57:09 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 02/13] kconfig: introduce domain builder config options
To: Alejandro Vallejo <agarciav@amd.com>
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20250417124844.11143-1-agarciav@amd.com>
 <20250417124844.11143-3-agarciav@amd.com>
 <6b7728d0-0464-44ad-8af6-e2816e83a2a6@suse.com>
 <D991SW75LNIE.1QUE1HVLCS7W3@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: <D991SW75LNIE.1QUE1HVLCS7W3@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 17.04.2025 18:18, Alejandro Vallejo wrote:
> On Thu Apr 17, 2025 at 4:00 PM BST, Jan Beulich wrote:
>> On 17.04.2025 14:48, Alejandro Vallejo wrote:
>>> --- /dev/null
>>> +++ b/xen/common/domain-builder/Kconfig
>>> @@ -0,0 +1,18 @@
>>> +
>>> +menu "Domain Builder Features"
>>> +depends on HAS_BOOT_INFO
>>
>> That is, what's going to further be added here will not ...
>>
>>> +config DOMAIN_BUILDER
>>
>> ...depend on this, but just on HAS_BOOT_INFO? Seems not very likely, but
>> I'll be looking forward to learn what the plans are.
> 
> CONFIG_HAS_BOOT_INFO has nothing to do with future plans.  The domain
> builder is tightly integrated with the boot_info infrastructure and
> cannot be used (or linked) unless the arch-specific definitions are
> present. It cannot function without it. And this movement from arch/ to
> common/ forces this new Kconfig to gate core.c on boot_info existing
> (because it's in asm/bootinfo.h atm). I _COULD_ also move the boot_info
> elsewhere, but without a drive to actually use it, that seems a bit
> pointless.
> 
> HAS_BOOT_INFO && !DOMAIN_BUILDER still links core.c, because that
> contains the common initialiser for boot_info.

Which, as voiced earlier, I have reservations against. The entire
domain-builder/ sub-tree would imo better not be recursed into when
DOMAIN_BUILDER=n.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 22 07:02:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 07:02:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.961724.1353062 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u77eB-0000Pl-IH; Tue, 22 Apr 2025 07:02:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 961724.1353062; Tue, 22 Apr 2025 07:02: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 1u77eB-0000Pe-Dw; Tue, 22 Apr 2025 07:02:23 +0000
Received: by outflank-mailman (input) for mailman id 961724;
 Tue, 22 Apr 2025 07:02: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=f4Vg=XI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u77eA-0000PY-8M
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 07:02:22 +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 b6ea55bb-1f47-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 09:02:12 +0200 (CEST)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-43d07ca6a80so23014755e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 00:02:12 -0700 (PDT)
Received: from [10.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-4406d6dfe4esm159911805e9.33.2025.04.22.00.02.10
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 22 Apr 2025 00:02: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: b6ea55bb-1f47-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745305331; x=1745910131; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=7CHFRSyu8dPjSYeLexPNX3I4OBr9SDzB58c4i0VyPDI=;
        b=QYE9xSR2UjIzOPmUJ9R3jncjZJaW8gp09KBfMot5y3GiX9flTGNmwwSR7vc9cW7FGv
         gs1Are6MhUiVlQENiJRsH8rZxqplaxugSVYChA6W0GzubZt/cUbQdsvIhI2lRrqlpBPv
         B5+oVytrb2/2IOS1Rnfe0Lsbrhv1ClqO03YgkCM7apfR7I0yKtdm4k0oAGL7HbhAjiYc
         ehM5ghzFxk1SI+GFGSUqkzxwMSjgPGhjTlNNhMoA6nNi3eIX8wE/epw67czhVVxgcPGQ
         QM/IfipLjM+EHipGI3EUqEiS7u3VsyfBq83JwTorxX333JXWCc9gUlL1CviD37w9LdhJ
         dvWw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745305331; x=1745910131;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=7CHFRSyu8dPjSYeLexPNX3I4OBr9SDzB58c4i0VyPDI=;
        b=H5csavAsgkpu04LaQsmAMFXJGE2iROe8nOa1iDKsjT2C6kyUfPA0SZ8tLY4xJM855N
         xjPd85Ad2wj4Dxs83QMfaYCdqAGTFVRF/PpEbSTYEEVvH91twuk43FwXW0agHa7ayZcy
         FiozSLIbiwx1od12RZEWvXKhZBzuyRps0WVw1C6yvYSI1TDo3q/P1WuCsLsRuxfFTFsj
         hdPtLJnuAvncWTYqWZMBA/MudX7AGZKrbjso8TIB5oaxYWwcdeM/Mu3fTDIEhIjcOwVE
         q7axWfwihlhu5DiHa75Mm+vSwGyClHTAvru57iMLCiQ/c0AxrkBD/+84j61i1tqFwHa+
         jHRg==
X-Forwarded-Encrypted: i=1; AJvYcCWNgzyYTInpKuy5QfSbQZQcTBcJ44Xygl/LuFucdBk2v+FC4R6VmTCzUDnErxrWKr5xZbKBaYd1VSI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyUnmvVseUxRCy2nl7HKnNy/q2/BqZZEaTANfPC025ovDBUuyJT
	VwVQi8byFDsQR+DwlyHZW6AmZJH0l11D52F/BMf3YBoxI/JVz1gLpafezSPv8A==
X-Gm-Gg: ASbGncvxQiu/J7qDo8LOstL6gceRbDT2F68M39HpP8xlGr/PX0XeUl6QQCWlWGABZDK
	jpYKd4kK8vKu2xfuDa8yPgmi5uS0nacH1QjlxwgFpC1VvZ70n2DzV3mtKEeJI1s2N/UDSGcHgn8
	UOvsxTDQJ2jYCqfKkkCKkrstspOfIVvnFMpGKc4nMffzgPMenSuzpXsES61/U9o5cg65cH/160Y
	fInTj27HSOqQtNs7yZJ1eDTf58YLtfJw8SqDs6e6P7oXz/4oBcYJMQ+8VJVRfOjaxYMbPpkydbW
	J4Gk+I3TeqbUAnqdRjkznGxZy+uUy8dAQQzhf1ywSomqn6HeaRufTS+OyuaJsoHJZ0TdEhNvHIe
	SagfLKjEg34lZnQ6O3p30n+ht0Q==
X-Google-Smtp-Source: AGHT+IEHnl30xlBVAq1iLpi0EO/Lyr63mMuqSOvS4olrDcmJL750c5xU5fLyTUrzUw7lxdfMCpNmXw==
X-Received: by 2002:a05:600c:1c07:b0:43c:f6c6:578c with SMTP id 5b1f17b1804b1-4406aba5a1amr139931005e9.15.1745305331638;
        Tue, 22 Apr 2025 00:02:11 -0700 (PDT)
Message-ID: <d63a6410-7053-4f75-aeda-6cd4e36bd302@suse.com>
Date: Tue, 22 Apr 2025 09:02:13 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 10/14] xen/riscv: implementation of aplic and imsic
 operations
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Romain Caritey <Romain.Caritey@microchip.com>, xen-devel@lists.xenproject.org
References: <cover.1744126720.git.oleksii.kurochko@gmail.com>
 <74a07ed7c596bbcf581010685e01bfdfa19164f5.1744126720.git.oleksii.kurochko@gmail.com>
 <3426df1b-938a-4d20-a533-dd6695473db0@suse.com>
 <5f922b70-d4c2-4e6e-ad05-f91afc70ee73@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: <5f922b70-d4c2-4e6e-ad05-f91afc70ee73@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 18.04.2025 12:43, Oleksii Kurochko wrote:
> 
> On 4/15/25 4:53 PM, Jan Beulich wrote:
>> On 08.04.2025 17:57, Oleksii Kurochko wrote:
>>> --- a/xen/arch/riscv/imsic.c
>>> +++ b/xen/arch/riscv/imsic.c
>>> @@ -14,12 +14,68 @@
>>>   #include <xen/errno.h>
>>>   #include <xen/init.h>
>>>   #include <xen/macros.h>
>>> +#include <xen/spinlock.h>
>>>   #include <xen/xmalloc.h>
>>>   
>>>   #include <asm/imsic.h>
>>>   
>>>   static struct imsic_config imsic_cfg;
>>>   
>>> +#define imsic_csr_set(c, v)     \
>>> +do {                            \
>>> +    csr_write(CSR_SISELECT, c); \
>>> +    csr_set(CSR_SIREG, v);      \
>>> +} while (0)
>>> +
>>> +#define imsic_csr_clear(c, v)   \
>>> +do {                            \
>>> +    csr_write(CSR_SISELECT, c); \
>>> +    csr_clear(CSR_SIREG, v);    \
>>> +} while (0)
>> Coming back to these (the later patch adds one more here): How expensive are
>> these CSR writes? IOW would it perhaps make sense to maintain a local cache
>> of the last written SISELECT value, to avoid writing the same one again if
>> the same windowed register needs accessing twice in a row?
> 
> CSRs belong to the HART, so access to them is very fast.

Can you back this by any data? I view CSRs as somewhat similar to x86'es MSRs,
and access (writes in particular) to some of them is rather slow.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 22 07:45:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 07:45:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.961738.1353071 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u78Jk-0005xh-HS; Tue, 22 Apr 2025 07:45:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 961738.1353071; Tue, 22 Apr 2025 07:45: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 1u78Jk-0005xa-Dk; Tue, 22 Apr 2025 07:45:20 +0000
Received: by outflank-mailman (input) for mailman id 961738;
 Tue, 22 Apr 2025 07:45: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=f4Vg=XI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u78Jj-0005xU-3N
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 07:45:19 +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 b6d6284c-1f4d-11f0-9eb0-5ba50f476ded;
 Tue, 22 Apr 2025 09:45:09 +0200 (CEST)
Received: by mail-wr1-x42c.google.com with SMTP id
 ffacd0b85a97d-39c266c2dd5so4858487f8f.3
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 00:45:09 -0700 (PDT)
Received: from [10.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-39efa43ce6bsm14381132f8f.55.2025.04.22.00.45.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 22 Apr 2025 00:45: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: b6d6284c-1f4d-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745307908; x=1745912708; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=fomW9Lvj35WiPEFxePjwNyha006EBTUk9gLqMS9nX3A=;
        b=KL6M19wYe65Bx8McDhfVVXkXOG6zKp7ZqWso/NAZ/VdUN0ypyGE+F2ViryhsjIgHXg
         9K8HtJGfP50C9EPuupGYyVOBHiZwqnJ4FiwnE+WMhMQKwAifLH8sCUClwMt2T9kY6UhL
         wNZRMsqOWDPXRAxKULbtF+PcqN3dponm6aaymZQWBqTHB+0mgtkJ/tnWftMGzW7RYUGU
         IJqeOT6KXmkR9pjh9IVrTHZ8OCpWijaP/vEXKJNVO7Tj4T0cxDhSextTTSIDwk1g4Uzd
         qootT76T5utDO7FpCIvOZCmNp8k1XeCoQKhDfrFV7ye59VunfcKs7+xNeNx/f36an21Q
         PKlA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745307908; x=1745912708;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=fomW9Lvj35WiPEFxePjwNyha006EBTUk9gLqMS9nX3A=;
        b=dgcXMjqbj52ljod/BzdbFpclXW1ssdjRdMw1F510yFiT82xuW6v7+qCrZjfPATWE2o
         UKE9LWBK8LIwCgK8mrn8j+XtB4jKcniFk/qf1su6SA9KeH/JW4upKJYEVxwex+Je6YJZ
         JjlmdDyimkE6FFP6cBH40emT+WzOz8chgK5T4ISALUlSTuwwan2mCuOlrSm+gsUjKpNk
         0UsPaiR9e0s70c8UOq9/9QvzvPPIaqU04OX5x4Z7Ninec9FlHLSeQiwgroZfJ6XWKDaO
         wYNeXjTfYNI4iaXlc5KUr4pf5r0dacTxUfLWAqGg6FQrUrhkJeuKq3UEfTC/50pxGnfS
         8RkA==
X-Forwarded-Encrypted: i=1; AJvYcCUvM/4NwOu8JkcRJG/XfWj+63QeYqDZseeHAZOUHtt6I1sTWU87PU8dGhpo5A/5WkNkjswNkZjBwlU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwKNr5osiiK/Ib8zx2XjNTVuz+EOJoW6LSNemzx0vbGYwNVRqXi
	42qwCjRdKbPNfSE1QfOQwuTcByFsTH7NdxaUewtK4k/4KZyUJY4yLEMr/09Tlw==
X-Gm-Gg: ASbGnctm81JkHmOXPMyuEXo6UhN+Fbuo245ubWh96Ufyo2WMsdnzQZDAeL7hitL4LIU
	JTJk4Vyptga43S9zO5uKagq/57aORMfcLcVZPaStWtiVvEuFKugu27+JLe6n3oCYaNNiORrDDfb
	a44FWYICVZZaCvODnIqB+xzP+78aCiL7ntwjP4qmx5SJAYNOe03GLEUDwujLIVHF0/ymhPha7VQ
	C9JXMosKh/2xlhKtj5yGOqG/pFiv+E6fwl5YEJThjvXQx0dimBSTShQSiDtz0olZx7ppF14QWJE
	BtiZwOegkFTeDRJJhTlpu+jqrIjCTtogF4NWPlNmq40SSoo1MpWd2W4Zi2g/9D2U7iuGdWhTCC7
	okOr+1ThwPtsG+nvCwjjiTLaIVg==
X-Google-Smtp-Source: AGHT+IHBPoFkeHg6ZaAuhnufDSPLFJPqNlS6d5+rh5uDfnK8JLMsRkccLam/lUV9Hi1GQn8FQSQL7w==
X-Received: by 2002:a5d:6d88:0:b0:39c:2669:d7f4 with SMTP id ffacd0b85a97d-39efbad7d40mr10854107f8f.43.1745307908448;
        Tue, 22 Apr 2025 00:45:08 -0700 (PDT)
Message-ID: <b73ca490-921b-4151-ad81-16d531634846@suse.com>
Date: Tue, 22 Apr 2025 09:45:10 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH 0/4] Physical address hypercall ABI ("HVMv2")
To: Teddy Astie <teddy.astie@vates.tech>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Juergen Gross
 <jgross@suse.com>, xen-devel@lists.xenproject.org
References: <cover.1744981654.git.teddy.astie@vates.tech>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <cover.1744981654.git.teddy.astie@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 18.04.2025 16:18, Teddy Astie wrote:
> In current HVM mode, when a hypercall references a structure in guest memory,
> it is passed to the hypervisor as its "linear address" (e.g virtual address for
> the x86 long mode).
> One of the caveats is that this linear address (GVA) is generally not directly
> usable by the Xen and needs to be translated from GVA to GPA then HPA. This
> implies a complex and potentially expensive lookup of the pagetables inside the
> guest. This can be significant, especially if the P2M cannot use efficiently
> superpages (or with e.g XSA-304).
> 
> This proposal introduce a new mode where all addresses used for hypercalls are
> GPADDR instead of GVADDR, therefore, looking up the HPA related to this GPA
> only needs a P2M lookup and not looking through the inside-guest pagetables.
> 
> This mode is opt-in and must be enabled explicitely by the toolstack.

Which I view as a severe downside (leaving aside the PVH Dom0 aspect): This way
a guest needs to be converted all in one go. While doable, it'll be increasingly
risky with the size of the guest kernel code base.

A prior proposal of mine was to add an indicator to hypercall numbers (e.g. to
set the top bit there), to indicate which of the two models a particular
hypercall invocation uses.

Aiui Andrew had yet different (albeit also never spelled out) plans.

Jan



From xen-devel-bounces@lists.xenproject.org Tue Apr 22 07:49:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 07:49:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.961750.1353082 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u78NN-0006XZ-Vn; Tue, 22 Apr 2025 07:49:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 961750.1353082; Tue, 22 Apr 2025 07:49: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 1u78NN-0006XS-Rk; Tue, 22 Apr 2025 07:49:05 +0000
Received: by outflank-mailman (input) for mailman id 961750;
 Tue, 22 Apr 2025 07:49:04 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=f4Vg=XI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u78NM-0006XM-1a
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 07:49:04 +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 3cdcdae6-1f4e-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 09:48:53 +0200 (CEST)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-43ea40a6e98so43403875e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 00:48:53 -0700 (PDT)
Received: from [10.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-4406d5acd08sm164234765e9.12.2025.04.22.00.48.52
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 22 Apr 2025 00:48:52 -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: 3cdcdae6-1f4e-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745308133; x=1745912933; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=+Fc1WsV9CBrIkhgp9ADyKaekSoaAxJ5WKoDeI5lDbYE=;
        b=KZLa4S8xuyetm/PUArc5IVFA+qBVjMEsptHm5q9PVNvpadAAH8Vjia8A5iEkqnsiTQ
         a33MdZwyq6MhDsL9pFCmldDpICTE3jXpE+df9bk6hWjgV3rRIUX5KCVS+1B6hMhkRXAV
         m5emBaPmQ/MtDNHH2vzSzzXhcEsSjUuOHrEd9FwqwSaJkm91qKuRZ8K2AtefBztPLjRL
         c99NQEvMIDQPoVeUPUT2gbabmj7Ctkf1GkBYSlo+14Cf5cAPvB8P7BCpY5aBeipKB6HG
         7Fpq9VV2yyFLZGT8m+bH0Pf4z23zwWYplt80ubqK4k8//YxFM8TkkluKPfXe5zqdBOdQ
         WrRg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745308133; x=1745912933;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=+Fc1WsV9CBrIkhgp9ADyKaekSoaAxJ5WKoDeI5lDbYE=;
        b=ujyiW1zLuvZ5nbhFfTjimvpqHOWIWp68lb/fePSwY520JKiIZXw2RD/pFya7bO52Qk
         2pdGnbk5i7wp/IOZoCfnhlWXLnyEmmOWuGerv9NcmxqrJAaAaMwSBrqOAzoJXvWE53SR
         HgCS0QNx+I62wEZIWHqbXe/wtOUpPW5D2amSTbSA+cRvDoxneEGovpNJiwNPpry4iN2Y
         tf7kgJTheIRuelmPxB6+ldkdjPHkQ93wPvyEV4+UR5A4Wo8VaQ3AaYjQRCKeQf2CoFKW
         /9C+G0i+PB4gA0nhMDtFVnACqpdabRZ42l6u6WianIzMmLFTaeTlk3SXBHnEP0EtSwNL
         kySw==
X-Forwarded-Encrypted: i=1; AJvYcCUv8qDTYT1zwPoxsRfhfSZDrJV/fWxerdJbOMx7y0WpWLC9VZWyg8qWCpo1oAuHBB+2Ri0y4BUdKpU=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy5NYjJDWjblbXUWv9zvI5x5XifayV8RT6QV1jvQYUdKVIcGB4u
	rJ1GC+JVO5xNgXNktqkiYmNlmbBbE4R2elMJ+Q4OrcpW9qaBCtCAH5sxnIMW1w==
X-Gm-Gg: ASbGncuMtpo/zVIAVip0jN9Sg2GMlDBvM7fIRY2N3sJO2tzB3hXVfFWwXUFCNnhYcLb
	/0tvTDwKp8BcSuirLmD+IawcVLgHw7RoN/yve/pw4uRmtvyGGGkYrUVWhk3m1gil/YPooB1E4Jo
	99Xx2k+EFSiihc7GqgunGDQCK+zScFkGpAopxQ1sfUQ5Ra1uJDiO3I5h6XDgkYx+JtziR7/3fqH
	ztU1uyUv088Td7xwanh7aQ37+rEAOmD9rRtgAqX1YidHtq7YUWqiztUNR+esvfwV9WwP87SF956
	61HuYRn+w3DBZVm25op/GWWqwvhdsl8FFBqwHEzH8vvKFiM2IQhDDAo1Qi9E7SiR+IlnBgrrgse
	qW9cjz0B5kDgH2YMocjc4bOd1wg==
X-Google-Smtp-Source: AGHT+IG6+GXbNlVFXxE84ak8wV4rC3HD52rDJfYpkpoGP68i7Mm+mzQ548KefYr0eqLp43AXXmpcYQ==
X-Received: by 2002:a05:6000:188e:b0:39c:1258:7e1a with SMTP id ffacd0b85a97d-39efbb0c199mr10272367f8f.59.1745308133284;
        Tue, 22 Apr 2025 00:48:53 -0700 (PDT)
Message-ID: <40bdb025-f625-4494-9d0c-81003faaf8cb@suse.com>
Date: Tue, 22 Apr 2025 09:48:55 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v20 2/2] vpci: translate virtual PCI bus topology for
 guests
To: Stewart Hildebrand <stewart.hildebrand@amd.com>
Cc: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.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>,
 Jiqian Chen <Jiqian.Chen@amd.com>, Mykyta Poturai <Mykyta_Poturai@epam.com>,
 xen-devel@lists.xenproject.org
References: <20250418185840.335816-1-stewart.hildebrand@amd.com>
 <20250418185840.335816-3-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: <20250418185840.335816-3-stewart.hildebrand@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 18.04.2025 20:58, Stewart Hildebrand wrote:
> --- a/xen/drivers/vpci/vpci.c
> +++ b/xen/drivers/vpci/vpci.c
> @@ -174,6 +174,41 @@ int vpci_assign_device(struct pci_dev *pdev)
>  }
>  #endif /* __XEN__ */
>  
> +#ifdef CONFIG_HAS_VPCI_GUEST_SUPPORT
> +/*
> + * Find the physical device which is mapped to the virtual device
> + * and translate virtual SBDF to the physical one.
> + */
> +static const struct pci_dev *translate_virtual_device(const struct domain *d,
> +                                                      pci_sbdf_t *sbdf)
> +{
> +    const struct pci_dev *pdev;
> +
> +    ASSERT(!is_hardware_domain(d));
> +    ASSERT(rw_is_locked(&d->pci_lock));
> +
> +    for_each_pdev ( d, pdev )
> +    {
> +        if ( pdev->vpci && (pdev->vpci->guest_sbdf.sbdf == sbdf->sbdf) )
> +        {
> +            /* Replace guest SBDF with the physical one. */
> +            *sbdf = pdev->sbdf;
> +            return pdev;
> +        }
> +    }
> +
> +    return NULL;
> +}
> +#else
> +static const struct pci_dev *translate_virtual_device(const struct domain *d,
> +                                                      pci_sbdf_t *sbdf)
> +{
> +    ASSERT_UNREACHABLE();
> +
> +    return NULL;
> +}
> +#endif /* CONFIG_HAS_VPCI_GUEST_SUPPORT */

I'm not a maintainer of this code, but if I was I'd strictly request that the
#ifdef move inside the function, to limit redundancy. Even the "return NULL"
is common between both forms.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 22 07:56:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 07:56:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.961762.1353091 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u78U5-0008Il-Kr; Tue, 22 Apr 2025 07:56:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 961762.1353091; Tue, 22 Apr 2025 07:56:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u78U5-0008Ie-Ho; Tue, 22 Apr 2025 07:56:01 +0000
Received: by outflank-mailman (input) for mailman id 961762;
 Tue, 22 Apr 2025 07:56: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=f4Vg=XI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u78U5-0008IY-4y
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 07:56:01 +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 3a48e5bc-1f4f-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 09:55:59 +0200 (CEST)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-39ac56756f6so4741043f8f.2
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 00:55:59 -0700 (PDT)
Received: from [10.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-4406d5a9dbesm163834925e9.7.2025.04.22.00.55.58
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 22 Apr 2025 00:55:58 -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: 3a48e5bc-1f4f-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745308558; x=1745913358; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=2tcTu37YtIsT1En3wmhK2gW1hGg3NOVbVAan2hVjtKc=;
        b=Rh9Fv2/tz6LInKyYbEaGtEFWxFVMThD2VxzHxb2KlnHc3IvDD14MqjOmy3bFzwS9Pg
         ThADEZZ2vpHgRD5XQZDHZxty4PABvl5/88/jraIcG0OneVrUnxZjx0pFvkRucsoJluQf
         9UpnciQfMIC9HpZVdiJi8Snvi8b7q82mNg6198XfyoGp5mnuRTVUUT5jXUPacfyQhySp
         yM5kZWk97A+zCPyasHg3ICvvNYFYtRLNOSBrDdliDdEKNo3p1CKuGfALsL//ejrBxHr+
         TFltlTQmzTJMMD449flUGwoqxHpAj+ob/BCLXiNcgfpR0r0n4x+RoHHl5WsaOsa/gCcC
         cgrQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745308558; x=1745913358;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=2tcTu37YtIsT1En3wmhK2gW1hGg3NOVbVAan2hVjtKc=;
        b=bM3p1IItOrnXMpmfqWo0tRLDBSR1MPIV3d1xu+XSgnUkHiRzw9AFvjvR8AU+4P/8kJ
         PFaSRVkX8Xi1aFRTlAF+973+KLMeSokZo9/bZbPLbuSWG0vzOQAmU4foyxmYW6DAjLpy
         UqKM05DIwEP2LuOxSsMqQtCoBUCs7B2Wp5qcm3JG/k7CkaRGj8jwGKkT8Kk5upnGAVKD
         W+AMHgqsZq6wGlyXP1P7ythRY+xX9dJV79LBTQjDr5ThVFSI9Ca+sWD/8wxgtcYuzKSt
         UkaJCRoO7ZiQ5HR4K7F/Ke6DAPIqRbN73DjEIPgyACep+dEITDWYQobG9Ga0x4R1bKNk
         3zjA==
X-Forwarded-Encrypted: i=1; AJvYcCXpI6TgX0CrVbPXZpbGRJ7J20urx1mK3EdFYlRxnhWDHOGgXK8cJtzaJgoEl33EUEu6ujMsaeMHim0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyamjLmVsaMVmdYAxZ5w7UNKYgBNIEamz4XwcQlzrNRf/OfXXYa
	vSTRP1AzRvMGT4L1RQBYb5rAvPI3uBTW3Zgm63+naiDtFR2zftAyLVKOCty6zA==
X-Gm-Gg: ASbGncusczDjbfbjjHgxQ/a5yDtgVGU2aSMCZMH6c60o0d2LxFQkbLTIRU3t1sh7WYq
	D+V1efe718/IuYqUh/HblUKM/FzxANKPfvPH2ceDUUPE/lSrv0dH+VavEIPkrih1sbD9MxKAYBg
	gJmwb2CDqhNCqVqt/hJs2fJZb8+kfvhJgOf97Ji7zmMuOwtarvnLvSM62506d7d2JT/Z3u6BYlb
	asDJ4wz24TfxDMhVS5ILojBUTj9P9GJz8ftRujQA97wfmiGr3jxg3tYoUXJmG7jGG3B714V29rm
	xrJOmJ2cs5W7krj+rtdHwzrIZOWiQPVFJ3D5iE4F/11DOxoaDpR27QRL5I0SOHGnwT9yv4dSikB
	bCpIL6pIQ6zmxeCl2EA+SomQSxCZuZURYc0ct
X-Google-Smtp-Source: AGHT+IEz5I3dCPsLNn9XIGWPS6j0SL8bQXczrrllReovYkMDIUYgdlbWj9QjlHIhcJRIFP4m7HoRkw==
X-Received: by 2002:a05:6000:4205:b0:39e:dbec:aaee with SMTP id ffacd0b85a97d-39efbb1f40dmr10383039f8f.58.1745308558516;
        Tue, 22 Apr 2025 00:55:58 -0700 (PDT)
Message-ID: <c76427bb-87b4-4c51-a057-1942b9c3d92c@suse.com>
Date: Tue, 22 Apr 2025 09:56:00 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] x86/vmx: Update __vmread() signature
To: dmkhn@proton.me, xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com, roger.pau@citrix.com, dmukhin@ford.com
References: <20250422011530.3010312-1-dmukhin@ford.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20250422011530.3010312-1-dmukhin@ford.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 22.04.2025 03:15, dmkhn@proton.me wrote:
> From: Denis Mukhin <dmukhin@ford.com>
> 
> Current implementation of __vmread() returns the result via pointer argument
> which leads to having excess code in some places.
> 
> Update the signature of __vmread() to return `unsigned long` and drop the
> pointer argument as per suggestion in [1].
> 
> Update all call sites everywhere in the VT-x code.

You did read Andrew's reply to v1 before posting v2, didn't you?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 22 08:23:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 08:23:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.961784.1353155 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u78ub-0005vj-R4; Tue, 22 Apr 2025 08:23:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 961784.1353155; Tue, 22 Apr 2025 08: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 1u78ub-0005u1-Di; Tue, 22 Apr 2025 08:23:25 +0000
Received: by outflank-mailman (input) for mailman id 961784;
 Tue, 22 Apr 2025 08:23: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=Qhpm=XI=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u78ua-0004wM-5H
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 08:23:24 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0a7698bd-1f53-11f0-9eb0-5ba50f476ded;
 Tue, 22 Apr 2025 10:23:18 +0200 (CEST)
Received: from terminus.zytor.com (terminus.zytor.com
 [IPv6:2607:7c80:54:3:0:0:0:136]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53M8MG9K1954391
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Tue, 22 Apr 2025 01:22:33 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0a7698bd-1f53-11f0-9eb0-5ba50f476ded
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53M8MG9K1954391
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745310154;
	bh=hH40dRMC8icMs0Kq/gRLpfnhusccGZZqYtPjziXUIq0=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=hcEX0Oma3CVnkwxqS8bKBIm18tqvV7335h9MWMF4E8wAMoT4z1itaFgVa2bu1H7Lv
	 Ga+u823XXqz9EiWUYA9XlCQeHFfgScC5iggnF6WJwS4CQfGeYOy+x+oIvnckcTBzB6
	 8V7NP2nGUmfkFx31xOhz6KwJe5WcJid/C9tfwl98yFuEFykSa3egLEr8WStBfP/6oh
	 K8ADOv9Wdb6X6GRIlWoxPenpyB34mw1V1qvbQ8zIfGnVmMda21cc2+p+ghtOaC0a2V
	 V8nAVloDomWCJYiVBeBOXpRIQBAsncCQrgBQ+uMQZJ1te/DZTdjVSMkiakmJECg5VO
	 psDTTjszTfsAw==
From: "Xin Li (Intel)" <xin@zytor.com>
To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
        linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
        netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        acme@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com,
        peterz@infradead.org, namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com
Subject: [RFC PATCH v2 06/34] x86/msr: Use the alternatives mechanism to read PMC
Date: Tue, 22 Apr 2025 01:21:47 -0700
Message-ID: <20250422082216.1954310-7-xin@zytor.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250422082216.1954310-1-xin@zytor.com>
References: <20250422082216.1954310-1-xin@zytor.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

To eliminate the indirect call overhead introduced by the pv_ops API,
use the alternatives mechanism to read PMC:

    1) When built with !CONFIG_XEN_PV, X86_FEATURE_XENPV becomes a
       disabled feature, preventing the Xen PMC read code from being
       built and ensuring the native code is executed unconditionally.

    2) When built with CONFIG_XEN_PV:

       2.1) If not running on the Xen hypervisor (!X86_FEATURE_XENPV),
            the kernel runtime binary is patched to unconditionally
            jump to the native PMC read code.

       2.2) If running on the Xen hypervisor (X86_FEATURE_XENPV), the
            kernel runtime binary is patched to unconditionally jump
            to the Xen PMC read code.

Consequently, remove the pv_ops PMC read API.

Signed-off-by: Xin Li (Intel) <xin@zytor.com>
---
 arch/x86/include/asm/msr.h            | 31 ++++++++++++++++++++-------
 arch/x86/include/asm/paravirt.h       |  5 -----
 arch/x86/include/asm/paravirt_types.h |  2 --
 arch/x86/kernel/paravirt.c            |  1 -
 arch/x86/xen/enlighten_pv.c           |  2 --
 drivers/net/vmxnet3/vmxnet3_drv.c     |  2 +-
 6 files changed, 24 insertions(+), 19 deletions(-)

diff --git a/arch/x86/include/asm/msr.h b/arch/x86/include/asm/msr.h
index 01dc8e61ef97..33cf506e2fd6 100644
--- a/arch/x86/include/asm/msr.h
+++ b/arch/x86/include/asm/msr.h
@@ -8,6 +8,7 @@
 
 #include <asm/asm.h>
 #include <asm/errno.h>
+#include <asm/cpufeature.h>
 #include <asm/cpumask.h>
 #include <uapi/asm/msr.h>
 #include <asm/shared/msr.h>
@@ -73,6 +74,10 @@ static inline void do_trace_read_msr(u32 msr, u64 val, int failed) {}
 static inline void do_trace_rdpmc(u32 msr, u64 val, int failed) {}
 #endif
 
+#ifdef CONFIG_XEN_PV
+extern u64 xen_read_pmc(int counter);
+#endif
+
 /*
  * __rdmsr() and __wrmsr() are the two primitives which are the bare minimum MSR
  * accessors and should not have any tracing or other functionality piggybacking
@@ -170,16 +175,32 @@ native_write_msr_safe(u32 msr, u32 low, u32 high)
 extern int rdmsr_safe_regs(u32 regs[8]);
 extern int wrmsr_safe_regs(u32 regs[8]);
 
-static inline u64 native_read_pmc(int counter)
+static __always_inline u64 native_rdpmcq(int counter)
 {
 	DECLARE_ARGS(val, low, high);
 
-	asm volatile("rdpmc" : EAX_EDX_RET(val, low, high) : "c" (counter));
+	asm_inline volatile("rdpmc" : EAX_EDX_RET(val, low, high) : "c" (counter));
+
 	if (tracepoint_enabled(rdpmc))
 		do_trace_rdpmc(counter, EAX_EDX_VAL(val, low, high), 0);
+
 	return EAX_EDX_VAL(val, low, high);
 }
 
+static __always_inline u64 rdpmcq(int counter)
+{
+#ifdef CONFIG_XEN_PV
+	if (cpu_feature_enabled(X86_FEATURE_XENPV))
+		return xen_read_pmc(counter);
+#endif
+
+	/*
+	 * 1) When built with !CONFIG_XEN_PV.
+	 * 2) When built with CONFIG_XEN_PV but not running on Xen hypervisor.
+	 */
+	return native_rdpmcq(counter);
+}
+
 #ifdef CONFIG_PARAVIRT_XXL
 #include <asm/paravirt.h>
 #else
@@ -233,12 +254,6 @@ static inline int rdmsrq_safe(u32 msr, u64 *p)
 	*p = native_read_msr_safe(msr, &err);
 	return err;
 }
-
-static __always_inline u64 rdpmcq(int counter)
-{
-	return native_read_pmc(counter);
-}
-
 #endif	/* !CONFIG_PARAVIRT_XXL */
 
 /* Instruction opcode for WRMSRNS supported in binutils >= 2.40 */
diff --git a/arch/x86/include/asm/paravirt.h b/arch/x86/include/asm/paravirt.h
index 590824916394..c7689f5f70d6 100644
--- a/arch/x86/include/asm/paravirt.h
+++ b/arch/x86/include/asm/paravirt.h
@@ -239,11 +239,6 @@ static inline int rdmsrq_safe(unsigned msr, u64 *p)
 	return err;
 }
 
-static __always_inline u64 rdpmcq(int counter)
-{
-	return PVOP_CALL1(u64, cpu.read_pmc, counter);
-}
-
 static inline void paravirt_alloc_ldt(struct desc_struct *ldt, unsigned entries)
 {
 	PVOP_VCALL2(cpu.alloc_ldt, ldt, entries);
diff --git a/arch/x86/include/asm/paravirt_types.h b/arch/x86/include/asm/paravirt_types.h
index 631c306ce1ff..475f508531d6 100644
--- a/arch/x86/include/asm/paravirt_types.h
+++ b/arch/x86/include/asm/paravirt_types.h
@@ -101,8 +101,6 @@ struct pv_cpu_ops {
 	u64 (*read_msr_safe)(unsigned int msr, int *err);
 	int (*write_msr_safe)(unsigned int msr, unsigned low, unsigned high);
 
-	u64 (*read_pmc)(int counter);
-
 	void (*start_context_switch)(struct task_struct *prev);
 	void (*end_context_switch)(struct task_struct *next);
 #endif
diff --git a/arch/x86/kernel/paravirt.c b/arch/x86/kernel/paravirt.c
index 1ccd05d8999f..28d195ad7514 100644
--- a/arch/x86/kernel/paravirt.c
+++ b/arch/x86/kernel/paravirt.c
@@ -132,7 +132,6 @@ struct paravirt_patch_template pv_ops = {
 	.cpu.write_msr		= native_write_msr,
 	.cpu.read_msr_safe	= native_read_msr_safe,
 	.cpu.write_msr_safe	= native_write_msr_safe,
-	.cpu.read_pmc		= native_read_pmc,
 	.cpu.load_tr_desc	= native_load_tr_desc,
 	.cpu.set_ldt		= native_set_ldt,
 	.cpu.load_gdt		= native_load_gdt,
diff --git a/arch/x86/xen/enlighten_pv.c b/arch/x86/xen/enlighten_pv.c
index 846b5737d320..9fbe187aff00 100644
--- a/arch/x86/xen/enlighten_pv.c
+++ b/arch/x86/xen/enlighten_pv.c
@@ -1236,8 +1236,6 @@ static const typeof(pv_ops) xen_cpu_ops __initconst = {
 		.read_msr_safe = xen_read_msr_safe,
 		.write_msr_safe = xen_write_msr_safe,
 
-		.read_pmc = xen_read_pmc,
-
 		.load_tr_desc = paravirt_nop,
 		.set_ldt = xen_set_ldt,
 		.load_gdt = xen_load_gdt,
diff --git a/drivers/net/vmxnet3/vmxnet3_drv.c b/drivers/net/vmxnet3/vmxnet3_drv.c
index 7edd0b5e0e77..8af3b4d7ef4d 100644
--- a/drivers/net/vmxnet3/vmxnet3_drv.c
+++ b/drivers/net/vmxnet3/vmxnet3_drv.c
@@ -151,7 +151,7 @@ static u64
 vmxnet3_get_cycles(int pmc)
 {
 #ifdef CONFIG_X86
-	return native_read_pmc(pmc);
+	return native_rdpmcq(pmc);
 #else
 	return 0;
 #endif
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 22 08:23:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 08:23:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.961778.1353111 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u78uZ-0005AU-1A; Tue, 22 Apr 2025 08:23:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 961778.1353111; Tue, 22 Apr 2025 08: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 1u78uY-0005AN-Tx; Tue, 22 Apr 2025 08:23:22 +0000
Received: by outflank-mailman (input) for mailman id 961778;
 Tue, 22 Apr 2025 08: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=Qhpm=XI=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u78uX-0004wM-61
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 08:23:21 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0b950c4d-1f53-11f0-9eb0-5ba50f476ded;
 Tue, 22 Apr 2025 10:23:19 +0200 (CEST)
Received: from terminus.zytor.com (terminus.zytor.com
 [IPv6:2607:7c80:54:3:0:0:0:136]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53M8MG9N1954391
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Tue, 22 Apr 2025 01:22:38 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0b950c4d-1f53-11f0-9eb0-5ba50f476ded
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53M8MG9N1954391
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745310160;
	bh=fbJnWtTq9obtgTU/Lma7WAz0yq4D3lVBsvZaY+1Z5fs=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=fz4KTPrFlZOPu7Ad1BierSmHsj97cJ3HwU46GfU9c4zQ48NxZGpjLX6slUlsokCO0
	 4xlliWRpPkfsUMMPkXBb9GNHLmUgduGYR/Rskic9b7sZP/p+LxzbEtOw78olSobs9G
	 ORuOuj0McqrDPuInHQiYwxmYbrWzgJHRXc14cHQPd4zY/g9yqoofBYiNjiEHxF2NkY
	 dj7DAY0zNt0U+sXlItRhYuyJBQXg/acXr7I7rBcL0tJaAfipwl1y3rcyW5x0mLyP3C
	 Xno7ixoagmmS2q3B8Ytaw5MjR7mKGnndC8HIp5PyTF5TP+uK53eLtVcRLBIM8cpWUk
	 6dCZLOATluRuQ==
From: "Xin Li (Intel)" <xin@zytor.com>
To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
        linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
        netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        acme@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com,
        peterz@infradead.org, namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com
Subject: [RFC PATCH v2 09/34] x86/msr: Add the native_rdmsrq() helper
Date: Tue, 22 Apr 2025 01:21:50 -0700
Message-ID: <20250422082216.1954310-10-xin@zytor.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250422082216.1954310-1-xin@zytor.com>
References: <20250422082216.1954310-1-xin@zytor.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

__rdmsr() is the lowest-level primitive MSR read API, implemented in
assembly code and returning an MSR value in a u64 integer, on top of
which a convenience wrapper native_rdmsr() is defined to return an MSR
value in two u32 integers.  For some reason, native_rdmsrq() is not
defined and __rdmsr() is directly used when it needs to return an MSR
value in a u64 integer.

Add the native_rdmsrq() helper, which is simply an alias of __rdmsr(),
to make native_rdmsr() and native_rdmsrq() a pair of MSR read APIs.

Signed-off-by: Xin Li (Intel) <xin@zytor.com>
---

Change in v2:
* Split into two changes and add the native_rdmsrl() helper in the
  first one with a proper explanation (Ingo).
---
 arch/x86/include/asm/msr.h | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/arch/x86/include/asm/msr.h b/arch/x86/include/asm/msr.h
index b50cbd3299b3..2ab8effea4cd 100644
--- a/arch/x86/include/asm/msr.h
+++ b/arch/x86/include/asm/msr.h
@@ -112,6 +112,11 @@ do {							\
 	(void)((val2) = (u32)(__val >> 32));		\
 } while (0)
 
+static __always_inline u64 native_rdmsrq(u32 msr)
+{
+	return __rdmsr(msr);
+}
+
 #define native_wrmsr(msr, low, high)			\
 	__wrmsr(msr, low, high)
 
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 22 08:23:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 08:23:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.961777.1353100 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u78uX-0004wg-QO; Tue, 22 Apr 2025 08:23:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 961777.1353100; Tue, 22 Apr 2025 08: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 1u78uX-0004wY-Ne; Tue, 22 Apr 2025 08:23:21 +0000
Received: by outflank-mailman (input) for mailman id 961777;
 Tue, 22 Apr 2025 08: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=Qhpm=XI=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u78uW-0004wM-JZ
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 08:23:20 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0ac6eb8b-1f53-11f0-9eb0-5ba50f476ded;
 Tue, 22 Apr 2025 10:23:18 +0200 (CEST)
Received: from terminus.zytor.com (terminus.zytor.com
 [IPv6:2607:7c80:54:3:0:0:0:136]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53M8MG9H1954391
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Tue, 22 Apr 2025 01:22:26 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0ac6eb8b-1f53-11f0-9eb0-5ba50f476ded
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53M8MG9H1954391
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745310148;
	bh=mNpHziw81ylHHpqc1SxmLLn7DCCjcGwbF9kQxURfyb0=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=WGSG51uvub6A5rzsml4txgFzoajXAdfoda1G/nE+NTRoBDlL4LvMcYXj0gdkcO1F9
	 wJvAWM4IlePONZVgX8QjJekCwYCll4jk6VQSBCwxg/rMvXk4+4zIMsDQ4DsAjs3CMb
	 qDbJ6d65Rpd2r8+RcMPy69MtcbHwLb94ttXoRRlz5IirDQCIZyegbO7WOyKkFmYoYY
	 CIoYXaTNvuhjXhq5m59Ar/2CyeoMVEGV2uOFr4IdQ9GbjLEEaJUr4u8kdh7e15iJmd
	 eey5z4DOLmG8haxBJOdUoul5SiKAtTEpWcXtiCuz0PvhJ0r8uyuGOBYquz4X4VfGOg
	 V/BPsaCXOjQpg==
From: "Xin Li (Intel)" <xin@zytor.com>
To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
        linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
        netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        acme@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com,
        peterz@infradead.org, namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com
Subject: [RFC PATCH v2 03/34] x86/msr: Rename rdpmcl() to rdpmcq()
Date: Tue, 22 Apr 2025 01:21:44 -0700
Message-ID: <20250422082216.1954310-4-xin@zytor.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250422082216.1954310-1-xin@zytor.com>
References: <20250422082216.1954310-1-xin@zytor.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Signed-off-by: Xin Li (Intel) <xin@zytor.com>
---
 arch/x86/events/amd/uncore.c              |  2 +-
 arch/x86/events/core.c                    |  2 +-
 arch/x86/events/intel/core.c              |  4 ++--
 arch/x86/events/intel/ds.c                |  2 +-
 arch/x86/include/asm/msr.h                |  2 +-
 arch/x86/include/asm/paravirt.h           |  2 +-
 arch/x86/kernel/cpu/resctrl/pseudo_lock.c | 12 ++++++------
 7 files changed, 13 insertions(+), 13 deletions(-)

diff --git a/arch/x86/events/amd/uncore.c b/arch/x86/events/amd/uncore.c
index f231e1078e51..b9933ab3116c 100644
--- a/arch/x86/events/amd/uncore.c
+++ b/arch/x86/events/amd/uncore.c
@@ -152,7 +152,7 @@ static void amd_uncore_read(struct perf_event *event)
 	if (hwc->event_base_rdpmc < 0)
 		rdmsrq(hwc->event_base, new);
 	else
-		rdpmcl(hwc->event_base_rdpmc, new);
+		rdpmcq(hwc->event_base_rdpmc, new);
 
 	local64_set(&hwc->prev_count, new);
 	delta = (new << COUNTER_SHIFT) - (prev << COUNTER_SHIFT);
diff --git a/arch/x86/events/core.c b/arch/x86/events/core.c
index d390472f6c10..3da1f0b3446c 100644
--- a/arch/x86/events/core.c
+++ b/arch/x86/events/core.c
@@ -139,7 +139,7 @@ u64 x86_perf_event_update(struct perf_event *event)
 	 */
 	prev_raw_count = local64_read(&hwc->prev_count);
 	do {
-		rdpmcl(hwc->event_base_rdpmc, new_raw_count);
+		rdpmcq(hwc->event_base_rdpmc, new_raw_count);
 	} while (!local64_try_cmpxchg(&hwc->prev_count,
 				      &prev_raw_count, new_raw_count));
 
diff --git a/arch/x86/events/intel/core.c b/arch/x86/events/intel/core.c
index 1aed31514869..ba623e6cae1b 100644
--- a/arch/x86/events/intel/core.c
+++ b/arch/x86/events/intel/core.c
@@ -2739,12 +2739,12 @@ static u64 intel_update_topdown_event(struct perf_event *event, int metric_end,
 
 	if (!val) {
 		/* read Fixed counter 3 */
-		rdpmcl((3 | INTEL_PMC_FIXED_RDPMC_BASE), slots);
+		rdpmcq((3 | INTEL_PMC_FIXED_RDPMC_BASE), slots);
 		if (!slots)
 			return 0;
 
 		/* read PERF_METRICS */
-		rdpmcl(INTEL_PMC_FIXED_RDPMC_METRICS, metrics);
+		rdpmcq(INTEL_PMC_FIXED_RDPMC_METRICS, metrics);
 	} else {
 		slots = val[0];
 		metrics = val[1];
diff --git a/arch/x86/events/intel/ds.c b/arch/x86/events/intel/ds.c
index f33395c2e925..4074567219de 100644
--- a/arch/x86/events/intel/ds.c
+++ b/arch/x86/events/intel/ds.c
@@ -2279,7 +2279,7 @@ intel_pmu_save_and_restart_reload(struct perf_event *event, int count)
 	WARN_ON(this_cpu_read(cpu_hw_events.enabled));
 
 	prev_raw_count = local64_read(&hwc->prev_count);
-	rdpmcl(hwc->event_base_rdpmc, new_raw_count);
+	rdpmcq(hwc->event_base_rdpmc, new_raw_count);
 	local64_set(&hwc->prev_count, new_raw_count);
 
 	/*
diff --git a/arch/x86/include/asm/msr.h b/arch/x86/include/asm/msr.h
index e05466e486fc..ed32637b1df6 100644
--- a/arch/x86/include/asm/msr.h
+++ b/arch/x86/include/asm/msr.h
@@ -234,7 +234,7 @@ static inline int rdmsrq_safe(u32 msr, u64 *p)
 	return err;
 }
 
-#define rdpmcl(counter, val) ((val) = native_read_pmc(counter))
+#define rdpmcq(counter, val) ((val) = native_read_pmc(counter))
 
 #endif	/* !CONFIG_PARAVIRT_XXL */
 
diff --git a/arch/x86/include/asm/paravirt.h b/arch/x86/include/asm/paravirt.h
index c4dedb984735..63ca099f8368 100644
--- a/arch/x86/include/asm/paravirt.h
+++ b/arch/x86/include/asm/paravirt.h
@@ -244,7 +244,7 @@ static inline u64 paravirt_read_pmc(int counter)
 	return PVOP_CALL1(u64, cpu.read_pmc, counter);
 }
 
-#define rdpmcl(counter, val) ((val) = paravirt_read_pmc(counter))
+#define rdpmcq(counter, val) ((val) = paravirt_read_pmc(counter))
 
 static inline void paravirt_alloc_ldt(struct desc_struct *ldt, unsigned entries)
 {
diff --git a/arch/x86/kernel/cpu/resctrl/pseudo_lock.c b/arch/x86/kernel/cpu/resctrl/pseudo_lock.c
index 26c354bdea07..a5e21f44b0ca 100644
--- a/arch/x86/kernel/cpu/resctrl/pseudo_lock.c
+++ b/arch/x86/kernel/cpu/resctrl/pseudo_lock.c
@@ -1019,8 +1019,8 @@ static int measure_residency_fn(struct perf_event_attr *miss_attr,
 	 * used in L1 cache, second to capture accurate value that does not
 	 * include cache misses incurred because of instruction loads.
 	 */
-	rdpmcl(hit_pmcnum, hits_before);
-	rdpmcl(miss_pmcnum, miss_before);
+	rdpmcq(hit_pmcnum, hits_before);
+	rdpmcq(miss_pmcnum, miss_before);
 	/*
 	 * From SDM: Performing back-to-back fast reads are not guaranteed
 	 * to be monotonic.
@@ -1028,8 +1028,8 @@ static int measure_residency_fn(struct perf_event_attr *miss_attr,
 	 * before proceeding.
 	 */
 	rmb();
-	rdpmcl(hit_pmcnum, hits_before);
-	rdpmcl(miss_pmcnum, miss_before);
+	rdpmcq(hit_pmcnum, hits_before);
+	rdpmcq(miss_pmcnum, miss_before);
 	/*
 	 * Use LFENCE to ensure all previous instructions are retired
 	 * before proceeding.
@@ -1051,8 +1051,8 @@ static int measure_residency_fn(struct perf_event_attr *miss_attr,
 	 * before proceeding.
 	 */
 	rmb();
-	rdpmcl(hit_pmcnum, hits_after);
-	rdpmcl(miss_pmcnum, miss_after);
+	rdpmcq(hit_pmcnum, hits_after);
+	rdpmcq(miss_pmcnum, miss_after);
 	/*
 	 * Use LFENCE to ensure all previous instructions are retired
 	 * before proceeding.
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 22 08:23:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 08:23:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.961783.1353145 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u78ub-0005n2-43; Tue, 22 Apr 2025 08:23:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 961783.1353145; Tue, 22 Apr 2025 08: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 1u78ua-0005ku-UH; Tue, 22 Apr 2025 08:23:24 +0000
Received: by outflank-mailman (input) for mailman id 961783;
 Tue, 22 Apr 2025 08:23: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=Qhpm=XI=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u78uZ-0004wX-G5
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 08:23:23 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0b2a1400-1f53-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 10:23:19 +0200 (CEST)
Received: from terminus.zytor.com (terminus.zytor.com
 [IPv6:2607:7c80:54:3:0:0:0:136]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53M8MG9S1954391
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Tue, 22 Apr 2025 01:22:49 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0b2a1400-1f53-11f0-9ffb-bf95429c2676
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53M8MG9S1954391
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745310171;
	bh=tgzUrlRfHVNmuhey2aHHRIY5ipoKFEwgpjfhEzZ9bZY=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=cSUq20FJ1es+IIhRb98fV1d5F5NvXSUm1EMpz1+tO0YnVvnuTJaFjsStronse55k5
	 YxZtOYxcfkDzQLV4kClq6Bh9fQSG39eicOmoWqumnSOinsUbwn6q998dOSYad0zsE1
	 XTVUr6fpYzuVa8qpsuccsUw3Ow+s/jyBTD5r2pg0D9UWVh301tVKqpsTK+wFXOiuaD
	 N0eQT6AhQXD63t318ErncqLrfB5Jcz79t3Isvxia9piGM6jDV7ZfMM3vN8awrIAAmE
	 baBmekkbHBPV6QEgBNF1TdwtwUqOlgXwgXJkAJ4oGprjAmWEMzvfq69Je187jfLeDB
	 aWRCULSzY6RQw==
From: "Xin Li (Intel)" <xin@zytor.com>
To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
        linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
        netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        acme@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com,
        peterz@infradead.org, namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com
Subject: [RFC PATCH v2 14/34] x86/msr: refactor pv_cpu_ops.write_msr{_safe}()
Date: Tue, 22 Apr 2025 01:21:55 -0700
Message-ID: <20250422082216.1954310-15-xin@zytor.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250422082216.1954310-1-xin@zytor.com>
References: <20250422082216.1954310-1-xin@zytor.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

An MSR value is represented as a 64-bit unsigned integer, with existing
MSR instructions storing it in EDX:EAX as two 32-bit segments.

The new immediate form MSR instructions, however, utilize a 64-bit
general-purpose register to store the MSR value.  To unify the usage of
all MSR instructions, let the default MSR access APIs accept an MSR
value as a single 64-bit argument instead of two 32-bit segments.

The dual 32-bit APIs are still available as convenient wrappers over the
APIs that handle an MSR value as a single 64-bit argument.

The following illustrates the updated derivation of the MSR write APIs:

                 __wrmsrq(u32 msr, u64 val)
                   /                  \
                  /                    \
           native_wrmsrq(msr, val)    native_wrmsr(msr, low, high)
                 |
                 |
           native_write_msr(msr, val)
                /          \
               /            \
       wrmsrq(msr, val)    wrmsr(msr, low, high)

When CONFIG_PARAVIRT is enabled, wrmsrq() and wrmsr() are defined on top
of paravirt_write_msr():

            paravirt_write_msr(u32 msr, u64 val)
               /             \
              /               \
          wrmsrq(msr, val)    wrmsr(msr, low, high)

paravirt_write_msr() invokes cpu.write_msr(msr, val), an indirect layer
of pv_ops MSR write call:

    If on native:

            cpu.write_msr = native_write_msr

    If on Xen:

            cpu.write_msr = xen_write_msr

Therefore, refactor pv_cpu_ops.write_msr{_safe}() to accept an MSR value
in a single u64 argument, replacing the current dual u32 arguments.

No functional change intended.

Signed-off-by: Xin Li (Intel) <xin@zytor.com>
---

Change in v2:
* Spell out the reason why use a single u64 argument to pass the MSR
  value in the lowest level APIs (Andrew Cooper).
---
 arch/x86/include/asm/msr.h            | 35 ++++++++++++---------------
 arch/x86/include/asm/paravirt.h       | 27 +++++++++++----------
 arch/x86/include/asm/paravirt_types.h |  4 +--
 arch/x86/kernel/kvmclock.c            |  2 +-
 arch/x86/kvm/svm/svm.c                | 15 +++---------
 arch/x86/xen/enlighten_pv.c           | 29 +++++++++-------------
 6 files changed, 46 insertions(+), 66 deletions(-)

diff --git a/arch/x86/include/asm/msr.h b/arch/x86/include/asm/msr.h
index 2ab8effea4cd..dd1114053173 100644
--- a/arch/x86/include/asm/msr.h
+++ b/arch/x86/include/asm/msr.h
@@ -97,12 +97,12 @@ static __always_inline u64 __rdmsr(u32 msr)
 	return EAX_EDX_VAL(val, low, high);
 }
 
-static __always_inline void __wrmsr(u32 msr, u32 low, u32 high)
+static __always_inline void __wrmsrq(u32 msr, u64 val)
 {
 	asm volatile("1: wrmsr\n"
 		     "2:\n"
 		     _ASM_EXTABLE_TYPE(1b, 2b, EX_TYPE_WRMSR)
-		     : : "c" (msr), "a"(low), "d" (high) : "memory");
+		     : : "c" (msr), "a" ((u32)val), "d" ((u32)(val >> 32)) : "memory");
 }
 
 #define native_rdmsr(msr, val1, val2)			\
@@ -118,11 +118,10 @@ static __always_inline u64 native_rdmsrq(u32 msr)
 }
 
 #define native_wrmsr(msr, low, high)			\
-	__wrmsr(msr, low, high)
+	__wrmsrq((msr), (u64)(high) << 32 | (low))
 
 #define native_wrmsrq(msr, val)				\
-	__wrmsr((msr), (u32)((u64)(val)),		\
-		       (u32)((u64)(val) >> 32))
+	__wrmsrq((msr), (val))
 
 static inline u64 native_read_msr(u32 msr)
 {
@@ -151,11 +150,8 @@ static inline u64 native_read_msr_safe(u32 msr, int *err)
 }
 
 /* Can be uninlined because referenced by paravirt */
-static inline void notrace
-native_write_msr(u32 msr, u32 low, u32 high)
+static inline void notrace native_write_msr(u32 msr, u64 val)
 {
-	u64 val = (u64)high << 32 | low;
-
 	native_wrmsrq(msr, val);
 
 	if (tracepoint_enabled(write_msr))
@@ -163,8 +159,7 @@ native_write_msr(u32 msr, u32 low, u32 high)
 }
 
 /* Can be uninlined because referenced by paravirt */
-static inline int notrace
-native_write_msr_safe(u32 msr, u32 low, u32 high)
+static inline int notrace native_write_msr_safe(u32 msr, u64 val)
 {
 	int err;
 
@@ -172,10 +167,10 @@ native_write_msr_safe(u32 msr, u32 low, u32 high)
 		     "2:\n\t"
 		     _ASM_EXTABLE_TYPE_REG(1b, 2b, EX_TYPE_WRMSR_SAFE, %[err])
 		     : [err] "=a" (err)
-		     : "c" (msr), "0" (low), "d" (high)
+		     : "c" (msr), "0" ((u32)val), "d" ((u32)(val >> 32))
 		     : "memory");
 	if (tracepoint_enabled(write_msr))
-		do_trace_write_msr(msr, ((u64)high << 32 | low), err);
+		do_trace_write_msr(msr, val, err);
 	return err;
 }
 
@@ -227,7 +222,7 @@ do {								\
 
 static inline void wrmsr(u32 msr, u32 low, u32 high)
 {
-	native_write_msr(msr, low, high);
+	native_write_msr(msr, (u64)high << 32 | low);
 }
 
 #define rdmsrq(msr, val)			\
@@ -235,13 +230,13 @@ static inline void wrmsr(u32 msr, u32 low, u32 high)
 
 static inline void wrmsrq(u32 msr, u64 val)
 {
-	native_write_msr(msr, (u32)(val & 0xffffffffULL), (u32)(val >> 32));
+	native_write_msr(msr, val);
 }
 
 /* wrmsr with exception handling */
-static inline int wrmsr_safe(u32 msr, u32 low, u32 high)
+static inline int wrmsrq_safe(u32 msr, u64 val)
 {
-	return native_write_msr_safe(msr, low, high);
+	return native_write_msr_safe(msr, val);
 }
 
 /* rdmsr with exception handling */
@@ -279,11 +274,11 @@ static __always_inline void wrmsrns(u32 msr, u64 val)
 }
 
 /*
- * 64-bit version of wrmsr_safe():
+ * Dual u32 version of wrmsrq_safe():
  */
-static inline int wrmsrq_safe(u32 msr, u64 val)
+static inline int wrmsr_safe(u32 msr, u32 low, u32 high)
 {
-	return wrmsr_safe(msr, (u32)val,  (u32)(val >> 32));
+	return wrmsrq_safe(msr, (u64)high << 32 | low);
 }
 
 struct msr __percpu *msrs_alloc(void);
diff --git a/arch/x86/include/asm/paravirt.h b/arch/x86/include/asm/paravirt.h
index c7689f5f70d6..1bd1dad8da5a 100644
--- a/arch/x86/include/asm/paravirt.h
+++ b/arch/x86/include/asm/paravirt.h
@@ -180,10 +180,9 @@ static inline u64 paravirt_read_msr(unsigned msr)
 	return PVOP_CALL1(u64, cpu.read_msr, msr);
 }
 
-static inline void paravirt_write_msr(unsigned msr,
-				      unsigned low, unsigned high)
+static inline void paravirt_write_msr(u32 msr, u64 val)
 {
-	PVOP_VCALL3(cpu.write_msr, msr, low, high);
+	PVOP_VCALL2(cpu.write_msr, msr, val);
 }
 
 static inline u64 paravirt_read_msr_safe(unsigned msr, int *err)
@@ -191,10 +190,9 @@ static inline u64 paravirt_read_msr_safe(unsigned msr, int *err)
 	return PVOP_CALL2(u64, cpu.read_msr_safe, msr, err);
 }
 
-static inline int paravirt_write_msr_safe(unsigned msr,
-					  unsigned low, unsigned high)
+static inline int paravirt_write_msr_safe(u32 msr, u64 val)
 {
-	return PVOP_CALL3(int, cpu.write_msr_safe, msr, low, high);
+	return PVOP_CALL2(int, cpu.write_msr_safe, msr, val);
 }
 
 #define rdmsr(msr, val1, val2)			\
@@ -204,22 +202,25 @@ do {						\
 	val2 = _l >> 32;			\
 } while (0)
 
-#define wrmsr(msr, val1, val2)			\
-do {						\
-	paravirt_write_msr(msr, val1, val2);	\
-} while (0)
+static __always_inline void wrmsr(u32 msr, u32 low, u32 high)
+{
+	paravirt_write_msr(msr, (u64)high << 32 | low);
+}
 
 #define rdmsrq(msr, val)			\
 do {						\
 	val = paravirt_read_msr(msr);		\
 } while (0)
 
-static inline void wrmsrq(unsigned msr, u64 val)
+static inline void wrmsrq(u32 msr, u64 val)
 {
-	wrmsr(msr, (u32)val, (u32)(val>>32));
+	paravirt_write_msr(msr, val);
 }
 
-#define wrmsr_safe(msr, a, b)	paravirt_write_msr_safe(msr, a, b)
+static inline int wrmsrq_safe(u32 msr, u64 val)
+{
+	return paravirt_write_msr_safe(msr, val)
+}
 
 /* rdmsr with exception handling */
 #define rdmsr_safe(msr, a, b)				\
diff --git a/arch/x86/include/asm/paravirt_types.h b/arch/x86/include/asm/paravirt_types.h
index 475f508531d6..91b3423d36ce 100644
--- a/arch/x86/include/asm/paravirt_types.h
+++ b/arch/x86/include/asm/paravirt_types.h
@@ -92,14 +92,14 @@ struct pv_cpu_ops {
 
 	/* Unsafe MSR operations.  These will warn or panic on failure. */
 	u64 (*read_msr)(unsigned int msr);
-	void (*write_msr)(unsigned int msr, unsigned low, unsigned high);
+	void (*write_msr)(u32 msr, u64 val);
 
 	/*
 	 * Safe MSR operations.
 	 * read sets err to 0 or -EIO.  write returns 0 or -EIO.
 	 */
 	u64 (*read_msr_safe)(unsigned int msr, int *err);
-	int (*write_msr_safe)(unsigned int msr, unsigned low, unsigned high);
+	int (*write_msr_safe)(u32 msr, u64 val);
 
 	void (*start_context_switch)(struct task_struct *prev);
 	void (*end_context_switch)(struct task_struct *next);
diff --git a/arch/x86/kernel/kvmclock.c b/arch/x86/kernel/kvmclock.c
index 0af797930ccb..ca0a49eeac4a 100644
--- a/arch/x86/kernel/kvmclock.c
+++ b/arch/x86/kernel/kvmclock.c
@@ -196,7 +196,7 @@ static void kvm_setup_secondary_clock(void)
 void kvmclock_disable(void)
 {
 	if (msr_kvm_system_time)
-		native_write_msr(msr_kvm_system_time, 0, 0);
+		native_write_msr(msr_kvm_system_time, 0);
 }
 
 static void __init kvmclock_init_mem(void)
diff --git a/arch/x86/kvm/svm/svm.c b/arch/x86/kvm/svm/svm.c
index 67657b3a36ce..4ef9978dce70 100644
--- a/arch/x86/kvm/svm/svm.c
+++ b/arch/x86/kvm/svm/svm.c
@@ -475,7 +475,6 @@ static void svm_inject_exception(struct kvm_vcpu *vcpu)
 
 static void svm_init_erratum_383(void)
 {
-	u32 low, high;
 	int err;
 	u64 val;
 
@@ -489,10 +488,7 @@ static void svm_init_erratum_383(void)
 
 	val |= (1ULL << 47);
 
-	low  = lower_32_bits(val);
-	high = upper_32_bits(val);
-
-	native_write_msr_safe(MSR_AMD64_DC_CFG, low, high);
+	native_write_msr_safe(MSR_AMD64_DC_CFG, val);
 
 	erratum_383_found = true;
 }
@@ -2167,17 +2163,12 @@ static bool is_erratum_383(void)
 
 	/* Clear MCi_STATUS registers */
 	for (i = 0; i < 6; ++i)
-		native_write_msr_safe(MSR_IA32_MCx_STATUS(i), 0, 0);
+		native_write_msr_safe(MSR_IA32_MCx_STATUS(i), 0);
 
 	value = native_read_msr_safe(MSR_IA32_MCG_STATUS, &err);
 	if (!err) {
-		u32 low, high;
-
 		value &= ~(1ULL << 2);
-		low    = lower_32_bits(value);
-		high   = upper_32_bits(value);
-
-		native_write_msr_safe(MSR_IA32_MCG_STATUS, low, high);
+		native_write_msr_safe(MSR_IA32_MCG_STATUS, value);
 	}
 
 	/* Flush tlb to evict multi-match entries */
diff --git a/arch/x86/xen/enlighten_pv.c b/arch/x86/xen/enlighten_pv.c
index 9a89cb29fa35..052f68c92111 100644
--- a/arch/x86/xen/enlighten_pv.c
+++ b/arch/x86/xen/enlighten_pv.c
@@ -1111,10 +1111,8 @@ static u64 xen_do_read_msr(unsigned int msr, int *err)
 	return val;
 }
 
-static void set_seg(u32 which, u32 low, u32 high)
+static void set_seg(u32 which, u64 base)
 {
-	u64 base = ((u64)high << 32) | low;
-
 	if (HYPERVISOR_set_segment_base(which, base))
 		WARN(1, "Xen set_segment_base(%u, %llx) failed\n", which, base);
 }
@@ -1124,23 +1122,21 @@ static void set_seg(u32 which, u32 low, u32 high)
  * With err == NULL write_msr() semantics are selected.
  * Supplying an err pointer requires err to be pre-initialized with 0.
  */
-static void xen_do_write_msr(unsigned int msr, unsigned int low,
-			     unsigned int high, int *err)
+static void xen_do_write_msr(u32 msr, u64 val, int *err)
 {
-	u64 val;
 	bool emulated;
 
 	switch (msr) {
 	case MSR_FS_BASE:
-		set_seg(SEGBASE_FS, low, high);
+		set_seg(SEGBASE_FS, val);
 		break;
 
 	case MSR_KERNEL_GS_BASE:
-		set_seg(SEGBASE_GS_USER, low, high);
+		set_seg(SEGBASE_GS_USER, val);
 		break;
 
 	case MSR_GS_BASE:
-		set_seg(SEGBASE_GS_KERNEL, low, high);
+		set_seg(SEGBASE_GS_KERNEL, val);
 		break;
 
 	case MSR_STAR:
@@ -1156,15 +1152,13 @@ static void xen_do_write_msr(unsigned int msr, unsigned int low,
 		break;
 
 	default:
-		val = (u64)high << 32 | low;
-
 		if (pmu_msr_chk_emulated(msr, &val, false, &emulated) && emulated)
 			return;
 
 		if (err)
-			*err = native_write_msr_safe(msr, low, high);
+			*err = native_write_msr_safe(msr, val);
 		else
-			native_write_msr(msr, low, high);
+			native_write_msr(msr, val);
 	}
 }
 
@@ -1173,12 +1167,11 @@ static u64 xen_read_msr_safe(unsigned int msr, int *err)
 	return xen_do_read_msr(msr, err);
 }
 
-static int xen_write_msr_safe(unsigned int msr, unsigned int low,
-			      unsigned int high)
+static int xen_write_msr_safe(u32 msr, u64 val)
 {
 	int err = 0;
 
-	xen_do_write_msr(msr, low, high, &err);
+	xen_do_write_msr(msr, val, &err);
 
 	return err;
 }
@@ -1190,11 +1183,11 @@ static u64 xen_read_msr(unsigned int msr)
 	return xen_do_read_msr(msr, xen_msr_safe ? &err : NULL);
 }
 
-static void xen_write_msr(unsigned int msr, unsigned low, unsigned high)
+static void xen_write_msr(u32 msr, u64 val)
 {
 	int err;
 
-	xen_do_write_msr(msr, low, high, xen_msr_safe ? &err : NULL);
+	xen_do_write_msr(msr, val, xen_msr_safe ? &err : NULL);
 }
 
 /* This is called once we have the cpu_possible_mask */
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 22 08:23:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 08:23:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.961781.1353129 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u78ua-0005Rp-0h; Tue, 22 Apr 2025 08:23:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 961781.1353129; Tue, 22 Apr 2025 08: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 1u78uZ-0005P8-QO; Tue, 22 Apr 2025 08:23:23 +0000
Received: by outflank-mailman (input) for mailman id 961781;
 Tue, 22 Apr 2025 08:23: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=Qhpm=XI=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u78uY-0004wX-Fk
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 08:23:22 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0b4dc295-1f53-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 10:23:19 +0200 (CEST)
Received: from terminus.zytor.com (terminus.zytor.com
 [IPv6:2607:7c80:54:3:0:0:0:136]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53M8MG9W1954391
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Tue, 22 Apr 2025 01:22:57 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0b4dc295-1f53-11f0-9ffb-bf95429c2676
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53M8MG9W1954391
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745310178;
	bh=XaAm3SgdeuQpqxiLf3TgiBnvvEMb/sqRjazcaLW8DyU=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=aNQDlhh2xlWRbyeJukGWTC/vCCeQb6zitL4jNCcMF4/UqfnsnIPrjB234ggYDAm4n
	 /OAUTUCS6m8svXdcAJEjhiXvD0bvb7pxXmCp56esSiGCgBDU/fm2+V6WjpHdn7ALNZ
	 dqP/5qRa1S0+Lp3LRQ3WFTfiGwPFPXzUffyVlWhaYmG78Chtndnv8OFzZqmNpS7l6c
	 ImhtFxmMTaZOLVSxB5DGLhb3HeAISjXz4cKumUDuLcQuWXuj7fm47baKL82vIov6cz
	 70aPro2cmGmDIDjFIgcRsQs+TcX09RekPiJ/6zWfrES6Aw+7U7SmR69YRnJ8YiJwsn
	 YbU2jKXeJuZUg==
From: "Xin Li (Intel)" <xin@zytor.com>
To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
        linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
        netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        acme@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com,
        peterz@infradead.org, namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com
Subject: [RFC PATCH v2 18/34] x86/opcode: Add immediate form MSR instructions
Date: Tue, 22 Apr 2025 01:21:59 -0700
Message-ID: <20250422082216.1954310-19-xin@zytor.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250422082216.1954310-1-xin@zytor.com>
References: <20250422082216.1954310-1-xin@zytor.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add the instruction opcodes used by the immediate form WRMSRNS/RDMSR
to x86-opcode-map.

Signed-off-by: Xin Li (Intel) <xin@zytor.com>
---
 arch/x86/lib/x86-opcode-map.txt       | 5 +++--
 tools/arch/x86/lib/x86-opcode-map.txt | 5 +++--
 2 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/arch/x86/lib/x86-opcode-map.txt b/arch/x86/lib/x86-opcode-map.txt
index caedb3ef6688..e64f52321d6d 100644
--- a/arch/x86/lib/x86-opcode-map.txt
+++ b/arch/x86/lib/x86-opcode-map.txt
@@ -839,7 +839,7 @@ f1: MOVBE My,Gy | MOVBE Mw,Gw (66) | CRC32 Gd,Ey (F2) | CRC32 Gd,Ew (66&F2)
 f2: ANDN Gy,By,Ey (v)
 f3: Grp17 (1A)
 f5: BZHI Gy,Ey,By (v) | PEXT Gy,By,Ey (F3),(v) | PDEP Gy,By,Ey (F2),(v) | WRUSSD/Q My,Gy (66)
-f6: ADCX Gy,Ey (66) | ADOX Gy,Ey (F3) | MULX By,Gy,rDX,Ey (F2),(v) | WRSSD/Q My,Gy
+f6: ADCX Gy,Ey (66) | ADOX Gy,Ey (F3) | MULX By,Gy,rDX,Ey (F2),(v) | WRSSD/Q My,Gy | RDMSR Rq,Gq (F2),(11B) | WRMSRNS Gq,Rq (F3),(11B)
 f7: BEXTR Gy,Ey,By (v) | SHLX Gy,Ey,By (66),(v) | SARX Gy,Ey,By (F3),(v) | SHRX Gy,Ey,By (F2),(v)
 f8: MOVDIR64B Gv,Mdqq (66) | ENQCMD Gv,Mdqq (F2) | ENQCMDS Gv,Mdqq (F3) | URDMSR Rq,Gq (F2),(11B) | UWRMSR Gq,Rq (F3),(11B)
 f9: MOVDIRI My,Gy
@@ -1014,7 +1014,7 @@ f1: CRC32 Gy,Ey (es) | CRC32 Gy,Ey (66),(es) | INVVPID Gy,Mdq (F3),(ev)
 f2: INVPCID Gy,Mdq (F3),(ev)
 f4: TZCNT Gv,Ev (es) | TZCNT Gv,Ev (66),(es)
 f5: LZCNT Gv,Ev (es) | LZCNT Gv,Ev (66),(es)
-f6: Grp3_1 Eb (1A),(ev)
+f6: Grp3_1 Eb (1A),(ev) | RDMSR Rq,Gq (F2),(11B),(ev) | WRMSRNS Gq,Rq (F3),(11B),(ev)
 f7: Grp3_2 Ev (1A),(es)
 f8: MOVDIR64B Gv,Mdqq (66),(ev) | ENQCMD Gv,Mdqq (F2),(ev) | ENQCMDS Gv,Mdqq (F3),(ev) | URDMSR Rq,Gq (F2),(11B),(ev) | UWRMSR Gq,Rq (F3),(11B),(ev)
 f9: MOVDIRI My,Gy (ev)
@@ -1103,6 +1103,7 @@ EndTable
 Table: VEX map 7
 Referrer:
 AVXcode: 7
+f6: RDMSR Rq,Id (F2),(v1),(11B) | WRMSRNS Id,Rq (F3),(v1),(11B)
 f8: URDMSR Rq,Id (F2),(v1),(11B) | UWRMSR Id,Rq (F3),(v1),(11B)
 EndTable
 
diff --git a/tools/arch/x86/lib/x86-opcode-map.txt b/tools/arch/x86/lib/x86-opcode-map.txt
index caedb3ef6688..e64f52321d6d 100644
--- a/tools/arch/x86/lib/x86-opcode-map.txt
+++ b/tools/arch/x86/lib/x86-opcode-map.txt
@@ -839,7 +839,7 @@ f1: MOVBE My,Gy | MOVBE Mw,Gw (66) | CRC32 Gd,Ey (F2) | CRC32 Gd,Ew (66&F2)
 f2: ANDN Gy,By,Ey (v)
 f3: Grp17 (1A)
 f5: BZHI Gy,Ey,By (v) | PEXT Gy,By,Ey (F3),(v) | PDEP Gy,By,Ey (F2),(v) | WRUSSD/Q My,Gy (66)
-f6: ADCX Gy,Ey (66) | ADOX Gy,Ey (F3) | MULX By,Gy,rDX,Ey (F2),(v) | WRSSD/Q My,Gy
+f6: ADCX Gy,Ey (66) | ADOX Gy,Ey (F3) | MULX By,Gy,rDX,Ey (F2),(v) | WRSSD/Q My,Gy | RDMSR Rq,Gq (F2),(11B) | WRMSRNS Gq,Rq (F3),(11B)
 f7: BEXTR Gy,Ey,By (v) | SHLX Gy,Ey,By (66),(v) | SARX Gy,Ey,By (F3),(v) | SHRX Gy,Ey,By (F2),(v)
 f8: MOVDIR64B Gv,Mdqq (66) | ENQCMD Gv,Mdqq (F2) | ENQCMDS Gv,Mdqq (F3) | URDMSR Rq,Gq (F2),(11B) | UWRMSR Gq,Rq (F3),(11B)
 f9: MOVDIRI My,Gy
@@ -1014,7 +1014,7 @@ f1: CRC32 Gy,Ey (es) | CRC32 Gy,Ey (66),(es) | INVVPID Gy,Mdq (F3),(ev)
 f2: INVPCID Gy,Mdq (F3),(ev)
 f4: TZCNT Gv,Ev (es) | TZCNT Gv,Ev (66),(es)
 f5: LZCNT Gv,Ev (es) | LZCNT Gv,Ev (66),(es)
-f6: Grp3_1 Eb (1A),(ev)
+f6: Grp3_1 Eb (1A),(ev) | RDMSR Rq,Gq (F2),(11B),(ev) | WRMSRNS Gq,Rq (F3),(11B),(ev)
 f7: Grp3_2 Ev (1A),(es)
 f8: MOVDIR64B Gv,Mdqq (66),(ev) | ENQCMD Gv,Mdqq (F2),(ev) | ENQCMDS Gv,Mdqq (F3),(ev) | URDMSR Rq,Gq (F2),(11B),(ev) | UWRMSR Gq,Rq (F3),(11B),(ev)
 f9: MOVDIRI My,Gy (ev)
@@ -1103,6 +1103,7 @@ EndTable
 Table: VEX map 7
 Referrer:
 AVXcode: 7
+f6: RDMSR Rq,Id (F2),(v1),(11B) | WRMSRNS Id,Rq (F3),(v1),(11B)
 f8: URDMSR Rq,Id (F2),(v1),(11B) | UWRMSR Id,Rq (F3),(v1),(11B)
 EndTable
 
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 22 08:23:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 08:23:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.961782.1353137 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u78ua-0005aO-GZ; Tue, 22 Apr 2025 08:23:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 961782.1353137; Tue, 22 Apr 2025 08:23: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 1u78ua-0005Yt-8y; Tue, 22 Apr 2025 08:23:24 +0000
Received: by outflank-mailman (input) for mailman id 961782;
 Tue, 22 Apr 2025 08:23: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=Qhpm=XI=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u78uZ-0004wM-4y
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 08:23:23 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0b05e9a0-1f53-11f0-9eb0-5ba50f476ded;
 Tue, 22 Apr 2025 10:23:18 +0200 (CEST)
Received: from terminus.zytor.com (terminus.zytor.com
 [IPv6:2607:7c80:54:3:0:0:0:136]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53M8MG9J1954391
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Tue, 22 Apr 2025 01:22:31 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0b05e9a0-1f53-11f0-9eb0-5ba50f476ded
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53M8MG9J1954391
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745310152;
	bh=2fX9OBA6uAgolGV2mwCjcajGTCrZX3UzmQx9++m7S8w=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=DWloroeBI0Xco+1f4PQTeYOR+vYxwQ6OWrLvdsoNKKSO7CBjg/hE29Yiga1DMWA6a
	 3vjJgLMxR6/Kq1B4f3AtI2es9FoJ5qy02eFKKKI96lyZVVL8RDLAlkYglcv8alS0Qf
	 WcSregt3TEEKdcYBIPtoG6YGq2XfT7SY3xWvzXDaQnXgzRD4xy21W88jQ5y3uEu7b6
	 1pQ93SrdhPxcmqTgXqXEgwbVpDt1UW0nZ3vhjRNRm4Bz3ilkQ2KvD4xwcW5uo/xdRZ
	 iWqoZnPrxYn/rhNZ4bGCGPJoZdnXc9udd1Mjqp99UFtk+G5UJNIl0iraeMYyl4BFtQ
	 7iVfP7LKBPL8Q==
From: "Xin Li (Intel)" <xin@zytor.com>
To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
        linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
        netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        acme@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com,
        peterz@infradead.org, namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com
Subject: [RFC PATCH v2 05/34] x86/msr: Return u64 consistently in Xen PMC read functions
Date: Tue, 22 Apr 2025 01:21:46 -0700
Message-ID: <20250422082216.1954310-6-xin@zytor.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250422082216.1954310-1-xin@zytor.com>
References: <20250422082216.1954310-1-xin@zytor.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The pv_ops PMC read API is defined as:
        u64 (*read_pmc)(int counter);

But Xen PMC read functions return unsigned long long, make them
return u64 consistently.

Signed-off-by: Xin Li (Intel) <xin@zytor.com>
---
 arch/x86/xen/pmu.c     | 6 +++---
 arch/x86/xen/xen-ops.h | 2 +-
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/arch/x86/xen/pmu.c b/arch/x86/xen/pmu.c
index f06987b0efc3..9c1682af620a 100644
--- a/arch/x86/xen/pmu.c
+++ b/arch/x86/xen/pmu.c
@@ -346,7 +346,7 @@ bool pmu_msr_write(unsigned int msr, uint32_t low, uint32_t high, int *err)
 	return true;
 }
 
-static unsigned long long xen_amd_read_pmc(int counter)
+static u64 xen_amd_read_pmc(int counter)
 {
 	struct xen_pmu_amd_ctxt *ctxt;
 	uint64_t *counter_regs;
@@ -366,7 +366,7 @@ static unsigned long long xen_amd_read_pmc(int counter)
 	return counter_regs[counter];
 }
 
-static unsigned long long xen_intel_read_pmc(int counter)
+static u64 xen_intel_read_pmc(int counter)
 {
 	struct xen_pmu_intel_ctxt *ctxt;
 	uint64_t *fixed_counters;
@@ -396,7 +396,7 @@ static unsigned long long xen_intel_read_pmc(int counter)
 	return arch_cntr_pair[counter].counter;
 }
 
-unsigned long long xen_read_pmc(int counter)
+u64 xen_read_pmc(int counter)
 {
 	if (boot_cpu_data.x86_vendor != X86_VENDOR_INTEL)
 		return xen_amd_read_pmc(counter);
diff --git a/arch/x86/xen/xen-ops.h b/arch/x86/xen/xen-ops.h
index 25e318ef27d6..dc886c3cc24d 100644
--- a/arch/x86/xen/xen-ops.h
+++ b/arch/x86/xen/xen-ops.h
@@ -274,7 +274,7 @@ static inline void xen_pmu_finish(int cpu) {}
 bool pmu_msr_read(unsigned int msr, uint64_t *val, int *err);
 bool pmu_msr_write(unsigned int msr, uint32_t low, uint32_t high, int *err);
 int pmu_apic_update(uint32_t reg);
-unsigned long long xen_read_pmc(int counter);
+u64 xen_read_pmc(int counter);
 
 #ifdef CONFIG_SMP
 
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 22 08:23:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 08:23:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.961780.1353120 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u78uZ-0005K4-JA; Tue, 22 Apr 2025 08:23:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 961780.1353120; Tue, 22 Apr 2025 08: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 1u78uZ-0005IQ-FW; Tue, 22 Apr 2025 08:23:23 +0000
Received: by outflank-mailman (input) for mailman id 961780;
 Tue, 22 Apr 2025 08:23: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=Qhpm=XI=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u78uY-0004wM-4f
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 08:23:22 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0bafc6b3-1f53-11f0-9eb0-5ba50f476ded;
 Tue, 22 Apr 2025 10:23:19 +0200 (CEST)
Received: from terminus.zytor.com (terminus.zytor.com
 [IPv6:2607:7c80:54:3:0:0:0:136]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53M8MG9R1954391
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Tue, 22 Apr 2025 01:22:47 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0bafc6b3-1f53-11f0-9eb0-5ba50f476ded
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53M8MG9R1954391
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745310169;
	bh=hElDV5Vze4WAsf0tFZEf35YrdP6qWjxDv4JzPANXVNk=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=KtH0j43nk+Duf810zw1CEZbj53zexfsA4TSV0B76pxE9B3Sj1oCxiID+KXn1gmORq
	 vu21eQ4c+tmMchOpXFtsfl+poNPSuVCMyQEoTucNuKqh68DeJWNwQYHG2wEEn23sg+
	 1dLcK1ohYsx8lYF42FO6EUtkBUGnHmF1DeuOngZIDHY1MY+76NmeADYp9e+nBhq8bn
	 Ehm+TadXMIp/OyRm+L7atsclg5gNJjCVXv+kLzElC+F0KilwKtEZ9UNRRrcN6CG/Lv
	 Xdp6B4Pk8wYadmONeIh3mea2pnQKdrfmQDXjlUn7TWOlTGJbb5C8vw+ahCl0mRZQEL
	 y0QzP7N4WO1Mw==
From: "Xin Li (Intel)" <xin@zytor.com>
To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
        linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
        netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        acme@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com,
        peterz@infradead.org, namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com
Subject: [RFC PATCH v2 13/34] x86/xen/msr: Remove the error pointer argument from set_reg()
Date: Tue, 22 Apr 2025 01:21:54 -0700
Message-ID: <20250422082216.1954310-14-xin@zytor.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250422082216.1954310-1-xin@zytor.com>
References: <20250422082216.1954310-1-xin@zytor.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

set_reg() is used to write the following MSRs on Xen:

    MSR_FS_BASE
    MSR_KERNEL_GS_BASE
    MSR_GS_BASE

But none of these MSRs are written using any MSR write safe API.
Therefore there is no need to pass an error pointer argument to
set_reg() for returning an error code to be used in MSR safe APIs.

Remove the error pointer argument.

Signed-off-by: Xin Li (Intel) <xin@zytor.com>
---
 arch/x86/xen/enlighten_pv.c | 16 +++++-----------
 1 file changed, 5 insertions(+), 11 deletions(-)

diff --git a/arch/x86/xen/enlighten_pv.c b/arch/x86/xen/enlighten_pv.c
index b5a8bceb5f56..9a89cb29fa35 100644
--- a/arch/x86/xen/enlighten_pv.c
+++ b/arch/x86/xen/enlighten_pv.c
@@ -1111,17 +1111,11 @@ static u64 xen_do_read_msr(unsigned int msr, int *err)
 	return val;
 }
 
-static void set_seg(unsigned int which, unsigned int low, unsigned int high,
-		    int *err)
+static void set_seg(u32 which, u32 low, u32 high)
 {
 	u64 base = ((u64)high << 32) | low;
 
-	if (HYPERVISOR_set_segment_base(which, base) == 0)
-		return;
-
-	if (err)
-		*err = -EIO;
-	else
+	if (HYPERVISOR_set_segment_base(which, base))
 		WARN(1, "Xen set_segment_base(%u, %llx) failed\n", which, base);
 }
 
@@ -1138,15 +1132,15 @@ static void xen_do_write_msr(unsigned int msr, unsigned int low,
 
 	switch (msr) {
 	case MSR_FS_BASE:
-		set_seg(SEGBASE_FS, low, high, err);
+		set_seg(SEGBASE_FS, low, high);
 		break;
 
 	case MSR_KERNEL_GS_BASE:
-		set_seg(SEGBASE_GS_USER, low, high, err);
+		set_seg(SEGBASE_GS_USER, low, high);
 		break;
 
 	case MSR_GS_BASE:
-		set_seg(SEGBASE_GS_KERNEL, low, high, err);
+		set_seg(SEGBASE_GS_KERNEL, low, high);
 		break;
 
 	case MSR_STAR:
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 22 08:23:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 08:23:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.961779.1353118 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u78uZ-0005DO-Be; Tue, 22 Apr 2025 08:23:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 961779.1353118; Tue, 22 Apr 2025 08: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 1u78uZ-0005Cb-3w; Tue, 22 Apr 2025 08:23:23 +0000
Received: by outflank-mailman (input) for mailman id 961779;
 Tue, 22 Apr 2025 08:23: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=Qhpm=XI=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u78uX-0004wX-Pf
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 08:23:21 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0a8edea2-1f53-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 10:23:18 +0200 (CEST)
Received: from terminus.zytor.com (terminus.zytor.com
 [IPv6:2607:7c80:54:3:0:0:0:136]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53M8MG9I1954391
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Tue, 22 Apr 2025 01:22:29 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0a8edea2-1f53-11f0-9ffb-bf95429c2676
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53M8MG9I1954391
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745310150;
	bh=LVsPA2fgI6zP2WHSw0Nia0LCB15Xp7S+WVy/cleUJE0=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=QGVnEjv8tkGkgZOr/+y8tNZXRRi8XZB8ZUa+hfPMwgCsh/bvO2xAJc9VhI65ltj5f
	 LMenRE/fk3S5bW+6vEW/9EjVTjmw+65DjmMvRnz6VuJvvPndtokirGhHIMxOWUzT2M
	 bIUKmTb6xJsOQYxjwZVpD51rGRaiashhG0EWnYIoNFDkiI2ospc66RIjCIqRJWJ/CP
	 +fpEFOvt1EWqbNyzTmd3AOW9kLnosooHZzpFKsuIPLbiVSdFUwzHvJkSu7shtN70qV
	 rM9/AEtTfOcxs3bRd6Mxjf9DlDoUk5oHlzv2vYsxQwfHSorx8cOLau0HjwAXgZ8ds3
	 mK4Mot9OoKckQ==
From: "Xin Li (Intel)" <xin@zytor.com>
To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
        linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
        netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        acme@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com,
        peterz@infradead.org, namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com
Subject: [RFC PATCH v2 04/34] x86/msr: Convert rdpmcq() into a function
Date: Tue, 22 Apr 2025 01:21:45 -0700
Message-ID: <20250422082216.1954310-5-xin@zytor.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250422082216.1954310-1-xin@zytor.com>
References: <20250422082216.1954310-1-xin@zytor.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Signed-off-by: Xin Li (Intel) <xin@zytor.com>
---
 arch/x86/events/amd/uncore.c              |  2 +-
 arch/x86/events/core.c                    |  2 +-
 arch/x86/events/intel/core.c              |  4 ++--
 arch/x86/events/intel/ds.c                |  2 +-
 arch/x86/include/asm/msr.h                |  5 ++++-
 arch/x86/include/asm/paravirt.h           |  4 +---
 arch/x86/kernel/cpu/resctrl/pseudo_lock.c | 12 ++++++------
 7 files changed, 16 insertions(+), 15 deletions(-)

diff --git a/arch/x86/events/amd/uncore.c b/arch/x86/events/amd/uncore.c
index b9933ab3116c..f2601c662783 100644
--- a/arch/x86/events/amd/uncore.c
+++ b/arch/x86/events/amd/uncore.c
@@ -152,7 +152,7 @@ static void amd_uncore_read(struct perf_event *event)
 	if (hwc->event_base_rdpmc < 0)
 		rdmsrq(hwc->event_base, new);
 	else
-		rdpmcq(hwc->event_base_rdpmc, new);
+		new = rdpmcq(hwc->event_base_rdpmc);
 
 	local64_set(&hwc->prev_count, new);
 	delta = (new << COUNTER_SHIFT) - (prev << COUNTER_SHIFT);
diff --git a/arch/x86/events/core.c b/arch/x86/events/core.c
index 3da1f0b3446c..0a3939b9965e 100644
--- a/arch/x86/events/core.c
+++ b/arch/x86/events/core.c
@@ -139,7 +139,7 @@ u64 x86_perf_event_update(struct perf_event *event)
 	 */
 	prev_raw_count = local64_read(&hwc->prev_count);
 	do {
-		rdpmcq(hwc->event_base_rdpmc, new_raw_count);
+		new_raw_count = rdpmcq(hwc->event_base_rdpmc);
 	} while (!local64_try_cmpxchg(&hwc->prev_count,
 				      &prev_raw_count, new_raw_count));
 
diff --git a/arch/x86/events/intel/core.c b/arch/x86/events/intel/core.c
index ba623e6cae1b..4370d0d86013 100644
--- a/arch/x86/events/intel/core.c
+++ b/arch/x86/events/intel/core.c
@@ -2739,12 +2739,12 @@ static u64 intel_update_topdown_event(struct perf_event *event, int metric_end,
 
 	if (!val) {
 		/* read Fixed counter 3 */
-		rdpmcq((3 | INTEL_PMC_FIXED_RDPMC_BASE), slots);
+		slots = rdpmcq(3 | INTEL_PMC_FIXED_RDPMC_BASE);
 		if (!slots)
 			return 0;
 
 		/* read PERF_METRICS */
-		rdpmcq(INTEL_PMC_FIXED_RDPMC_METRICS, metrics);
+		metrics = rdpmcq(INTEL_PMC_FIXED_RDPMC_METRICS);
 	} else {
 		slots = val[0];
 		metrics = val[1];
diff --git a/arch/x86/events/intel/ds.c b/arch/x86/events/intel/ds.c
index 4074567219de..845439fd9c03 100644
--- a/arch/x86/events/intel/ds.c
+++ b/arch/x86/events/intel/ds.c
@@ -2279,7 +2279,7 @@ intel_pmu_save_and_restart_reload(struct perf_event *event, int count)
 	WARN_ON(this_cpu_read(cpu_hw_events.enabled));
 
 	prev_raw_count = local64_read(&hwc->prev_count);
-	rdpmcq(hwc->event_base_rdpmc, new_raw_count);
+	new_raw_count = rdpmcq(hwc->event_base_rdpmc);
 	local64_set(&hwc->prev_count, new_raw_count);
 
 	/*
diff --git a/arch/x86/include/asm/msr.h b/arch/x86/include/asm/msr.h
index ed32637b1df6..01dc8e61ef97 100644
--- a/arch/x86/include/asm/msr.h
+++ b/arch/x86/include/asm/msr.h
@@ -234,7 +234,10 @@ static inline int rdmsrq_safe(u32 msr, u64 *p)
 	return err;
 }
 
-#define rdpmcq(counter, val) ((val) = native_read_pmc(counter))
+static __always_inline u64 rdpmcq(int counter)
+{
+	return native_read_pmc(counter);
+}
 
 #endif	/* !CONFIG_PARAVIRT_XXL */
 
diff --git a/arch/x86/include/asm/paravirt.h b/arch/x86/include/asm/paravirt.h
index 63ca099f8368..590824916394 100644
--- a/arch/x86/include/asm/paravirt.h
+++ b/arch/x86/include/asm/paravirt.h
@@ -239,13 +239,11 @@ static inline int rdmsrq_safe(unsigned msr, u64 *p)
 	return err;
 }
 
-static inline u64 paravirt_read_pmc(int counter)
+static __always_inline u64 rdpmcq(int counter)
 {
 	return PVOP_CALL1(u64, cpu.read_pmc, counter);
 }
 
-#define rdpmcq(counter, val) ((val) = paravirt_read_pmc(counter))
-
 static inline void paravirt_alloc_ldt(struct desc_struct *ldt, unsigned entries)
 {
 	PVOP_VCALL2(cpu.alloc_ldt, ldt, entries);
diff --git a/arch/x86/kernel/cpu/resctrl/pseudo_lock.c b/arch/x86/kernel/cpu/resctrl/pseudo_lock.c
index a5e21f44b0ca..276ffab194f6 100644
--- a/arch/x86/kernel/cpu/resctrl/pseudo_lock.c
+++ b/arch/x86/kernel/cpu/resctrl/pseudo_lock.c
@@ -1019,8 +1019,8 @@ static int measure_residency_fn(struct perf_event_attr *miss_attr,
 	 * used in L1 cache, second to capture accurate value that does not
 	 * include cache misses incurred because of instruction loads.
 	 */
-	rdpmcq(hit_pmcnum, hits_before);
-	rdpmcq(miss_pmcnum, miss_before);
+	hits_before = rdpmcq(hit_pmcnum);
+	miss_before = rdpmcq(miss_pmcnum);
 	/*
 	 * From SDM: Performing back-to-back fast reads are not guaranteed
 	 * to be monotonic.
@@ -1028,8 +1028,8 @@ static int measure_residency_fn(struct perf_event_attr *miss_attr,
 	 * before proceeding.
 	 */
 	rmb();
-	rdpmcq(hit_pmcnum, hits_before);
-	rdpmcq(miss_pmcnum, miss_before);
+	hits_before = rdpmcq(hit_pmcnum);
+	miss_before = rdpmcq(miss_pmcnum);
 	/*
 	 * Use LFENCE to ensure all previous instructions are retired
 	 * before proceeding.
@@ -1051,8 +1051,8 @@ static int measure_residency_fn(struct perf_event_attr *miss_attr,
 	 * before proceeding.
 	 */
 	rmb();
-	rdpmcq(hit_pmcnum, hits_after);
-	rdpmcq(miss_pmcnum, miss_after);
+	hits_after = rdpmcq(hit_pmcnum);
+	miss_after = rdpmcq(miss_pmcnum);
 	/*
 	 * Use LFENCE to ensure all previous instructions are retired
 	 * before proceeding.
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 22 08:23:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 08:23:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.961785.1353173 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u78ud-0006Uy-Cf; Tue, 22 Apr 2025 08:23:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 961785.1353173; Tue, 22 Apr 2025 08:23: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 1u78ud-0006Ti-2s; Tue, 22 Apr 2025 08:23:27 +0000
Received: by outflank-mailman (input) for mailman id 961785;
 Tue, 22 Apr 2025 08:23: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=Qhpm=XI=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u78ua-0004wX-GP
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 08:23:24 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0b64665d-1f53-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 10:23:19 +0200 (CEST)
Received: from terminus.zytor.com (terminus.zytor.com
 [IPv6:2607:7c80:54:3:0:0:0:136]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53M8MG9Q1954391
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Tue, 22 Apr 2025 01:22:44 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0b64665d-1f53-11f0-9ffb-bf95429c2676
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53M8MG9Q1954391
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745310167;
	bh=1VgQf4QInSDQLzZ+1XUhguUTrkXvawFaEvDB+uGxtVM=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=PxUOo6k2ygRA60Nwwh//GGmJ2Ha25YqcuuadFmBT9kb1B0PYfv6Aywtx1iVRLb9BX
	 Fj19RkC5hv8Sp/5xrXDu9u9ly5DcABPKX/vm0TRbuxcIZElbLl9gCac7HgrOAD88Tn
	 2pYSZ/+5KDeI4ZgydWimYqeKvfaOFnXYFTKuKkphpfKHP7Oxq5j7JldvtBkd7nq6BZ
	 t/NtOGh8DANYccVS0g5u+IJWleUBogtX3IuQR6ftaSD3LJp8UXHEPuFjDNC7EcRq10
	 df5RT52Kc7UjBWr8D24hnur7y8Zo5qGDf32z3E6BpdSccjOFnylRA2HEY5y5jIKf7W
	 fG4OSdCdfxxgw==
From: "Xin Li (Intel)" <xin@zytor.com>
To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
        linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
        netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        acme@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com,
        peterz@infradead.org, namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com
Subject: [RFC PATCH v2 12/34] x86/msr: Remove pmu_msr_{read,write}()
Date: Tue, 22 Apr 2025 01:21:53 -0700
Message-ID: <20250422082216.1954310-13-xin@zytor.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250422082216.1954310-1-xin@zytor.com>
References: <20250422082216.1954310-1-xin@zytor.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

As pmu_msr_{read,write}() are now wrappers of pmu_msr_chk_emulated(),
remove them and use pmu_msr_chk_emulated() directly.

While at it, convert the data type of MSR index to u32 in functions
called in pmu_msr_chk_emulated().

Suggested-by: H. Peter Anvin (Intel) <hpa@zytor.com>
Signed-off-by: Xin Li (Intel) <xin@zytor.com>
---
 arch/x86/xen/enlighten_pv.c | 17 ++++++++++-------
 arch/x86/xen/pmu.c          | 24 ++++--------------------
 arch/x86/xen/xen-ops.h      |  3 +--
 3 files changed, 15 insertions(+), 29 deletions(-)

diff --git a/arch/x86/xen/enlighten_pv.c b/arch/x86/xen/enlighten_pv.c
index 1418758b57ff..b5a8bceb5f56 100644
--- a/arch/x86/xen/enlighten_pv.c
+++ b/arch/x86/xen/enlighten_pv.c
@@ -1089,8 +1089,9 @@ static void xen_write_cr4(unsigned long cr4)
 static u64 xen_do_read_msr(unsigned int msr, int *err)
 {
 	u64 val = 0;	/* Avoid uninitialized value for safe variant. */
+	bool emulated;
 
-	if (pmu_msr_read(msr, &val, err))
+	if (pmu_msr_chk_emulated(msr, &val, true, &emulated) && emulated)
 		return val;
 
 	if (err)
@@ -1133,6 +1134,7 @@ static void xen_do_write_msr(unsigned int msr, unsigned int low,
 			     unsigned int high, int *err)
 {
 	u64 val;
+	bool emulated;
 
 	switch (msr) {
 	case MSR_FS_BASE:
@@ -1162,12 +1164,13 @@ static void xen_do_write_msr(unsigned int msr, unsigned int low,
 	default:
 		val = (u64)high << 32 | low;
 
-		if (!pmu_msr_write(msr, val)) {
-			if (err)
-				*err = native_write_msr_safe(msr, low, high);
-			else
-				native_write_msr(msr, low, high);
-		}
+		if (pmu_msr_chk_emulated(msr, &val, false, &emulated) && emulated)
+			return;
+
+		if (err)
+			*err = native_write_msr_safe(msr, low, high);
+		else
+			native_write_msr(msr, low, high);
 	}
 }
 
diff --git a/arch/x86/xen/pmu.c b/arch/x86/xen/pmu.c
index 95caae97a394..afb02f43ee3f 100644
--- a/arch/x86/xen/pmu.c
+++ b/arch/x86/xen/pmu.c
@@ -128,7 +128,7 @@ static inline uint32_t get_fam15h_addr(u32 addr)
 	return addr;
 }
 
-static inline bool is_amd_pmu_msr(unsigned int msr)
+static bool is_amd_pmu_msr(u32 msr)
 {
 	if (boot_cpu_data.x86_vendor != X86_VENDOR_AMD &&
 	    boot_cpu_data.x86_vendor != X86_VENDOR_HYGON)
@@ -194,8 +194,7 @@ static bool is_intel_pmu_msr(u32 msr_index, int *type, int *index)
 	}
 }
 
-static bool xen_intel_pmu_emulate(unsigned int msr, u64 *val, int type,
-				  int index, bool is_read)
+static bool xen_intel_pmu_emulate(u32 msr, u64 *val, int type, int index, bool is_read)
 {
 	uint64_t *reg = NULL;
 	struct xen_pmu_intel_ctxt *ctxt;
@@ -257,7 +256,7 @@ static bool xen_intel_pmu_emulate(unsigned int msr, u64 *val, int type,
 	return false;
 }
 
-static bool xen_amd_pmu_emulate(unsigned int msr, u64 *val, bool is_read)
+static bool xen_amd_pmu_emulate(u32 msr, u64 *val, bool is_read)
 {
 	uint64_t *reg = NULL;
 	int i, off = 0;
@@ -298,8 +297,7 @@ static bool xen_amd_pmu_emulate(unsigned int msr, u64 *val, bool is_read)
 	return false;
 }
 
-static bool pmu_msr_chk_emulated(unsigned int msr, uint64_t *val, bool is_read,
-				 bool *emul)
+bool pmu_msr_chk_emulated(u32 msr, u64 *val, bool is_read, bool *emul)
 {
 	int type, index = 0;
 
@@ -313,20 +311,6 @@ static bool pmu_msr_chk_emulated(unsigned int msr, uint64_t *val, bool is_read,
 	return true;
 }
 
-bool pmu_msr_read(u32 msr, u64 *val)
-{
-	bool emulated;
-
-	return pmu_msr_chk_emulated(msr, val, true, &emulated) && emulated;
-}
-
-bool pmu_msr_write(u32 msr, u64 val)
-{
-	bool emulated;
-
-	return pmu_msr_chk_emulated(msr, &val, false, &emulated) && emulated;
-}
-
 static u64 xen_amd_read_pmc(int counter)
 {
 	struct xen_pmu_amd_ctxt *ctxt;
diff --git a/arch/x86/xen/xen-ops.h b/arch/x86/xen/xen-ops.h
index a1875e10be31..fde9f9d7415f 100644
--- a/arch/x86/xen/xen-ops.h
+++ b/arch/x86/xen/xen-ops.h
@@ -271,8 +271,7 @@ void xen_pmu_finish(int cpu);
 static inline void xen_pmu_init(int cpu) {}
 static inline void xen_pmu_finish(int cpu) {}
 #endif
-bool pmu_msr_read(u32 msr, u64 *val);
-bool pmu_msr_write(u32 msr, u64 val);
+bool pmu_msr_chk_emulated(u32 msr, u64 *val, bool is_read, bool *emul);
 int pmu_apic_update(uint32_t reg);
 u64 xen_read_pmc(int counter);
 
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 22 08:23:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 08:23:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.961786.1353179 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u78ue-0006bo-0u; Tue, 22 Apr 2025 08:23:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 961786.1353179; Tue, 22 Apr 2025 08:23: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 1u78ud-0006Zu-L7; Tue, 22 Apr 2025 08:23:27 +0000
Received: by outflank-mailman (input) for mailman id 961786;
 Tue, 22 Apr 2025 08: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=Qhpm=XI=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u78ub-0004wM-5a
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 08:23:25 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0c52d903-1f53-11f0-9eb0-5ba50f476ded;
 Tue, 22 Apr 2025 10:23:21 +0200 (CEST)
Received: from terminus.zytor.com (terminus.zytor.com
 [IPv6:2607:7c80:54:3:0:0:0:136]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53M8MG9M1954391
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Tue, 22 Apr 2025 01:22:36 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0c52d903-1f53-11f0-9eb0-5ba50f476ded
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53M8MG9M1954391
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745310158;
	bh=ZDjz7zZ6jpSk7UYBX1f+/D6FpEpADYtgSJeGI0K8PfU=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=JnM1tOMn1uOqwogaGDb5MA0EnSbBUePNLnpaO/hoa8wawH5peRy9eV+Mxx6gdUAsP
	 4J+kDIbBA+tj1HaAosm+HAGN3bs6BDN2tw/gvDOb3rz0QBzJKtmPhVFCU1gjPZARLN
	 cVFTJm2CNABewq6f0h4AUzPrxnKJY7GgDt4k+LmQnyeNf/IJcVPLHUmkr4KgzM4ddw
	 cpG5h9ajIgNj3NZXg8iZqKaJefvUYCb83TLTbKiVCSqsmym2tgrGB9O/MnG0tdrpqX
	 e49cOPxt2MjmuEMWTIfxUCvSYUho6LiyNa9c/tKoPjWL4drYZI2WdYQ+dXK3vNAiOJ
	 HJ3Be9VSRalww==
From: "Xin Li (Intel)" <xin@zytor.com>
To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
        linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
        netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        acme@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com,
        peterz@infradead.org, namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com
Subject: [RFC PATCH v2 08/34] x86/msr: Convert a native_wrmsr() use to native_wrmsrq()
Date: Tue, 22 Apr 2025 01:21:49 -0700
Message-ID: <20250422082216.1954310-9-xin@zytor.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250422082216.1954310-1-xin@zytor.com>
References: <20250422082216.1954310-1-xin@zytor.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Convert a native_wrmsr() use to native_wrmsrq() to zap meaningless type
conversions when a u64 MSR value is splitted into two u32.

Signed-off-by: Xin Li (Intel) <xin@zytor.com>
---
 arch/x86/include/asm/sev-internal.h | 7 +------
 1 file changed, 1 insertion(+), 6 deletions(-)

diff --git a/arch/x86/include/asm/sev-internal.h b/arch/x86/include/asm/sev-internal.h
index 73cb774c3639..9da509e52e11 100644
--- a/arch/x86/include/asm/sev-internal.h
+++ b/arch/x86/include/asm/sev-internal.h
@@ -101,12 +101,7 @@ static inline u64 sev_es_rd_ghcb_msr(void)
 
 static __always_inline void sev_es_wr_ghcb_msr(u64 val)
 {
-	u32 low, high;
-
-	low  = (u32)(val);
-	high = (u32)(val >> 32);
-
-	native_wrmsr(MSR_AMD64_SEV_ES_GHCB, low, high);
+	native_wrmsrq(MSR_AMD64_SEV_ES_GHCB, val);
 }
 
 enum es_result sev_es_ghcb_hv_call(struct ghcb *ghcb,
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 22 08:23:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 08:23:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.961787.1353188 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u78ue-0006mq-Lk; Tue, 22 Apr 2025 08:23:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 961787.1353188; Tue, 22 Apr 2025 08: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 1u78ue-0006l4-6U; Tue, 22 Apr 2025 08:23:28 +0000
Received: by outflank-mailman (input) for mailman id 961787;
 Tue, 22 Apr 2025 08:23: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=Qhpm=XI=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u78ub-0004wX-Gn
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 08:23:25 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0ad4ecd9-1f53-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 10:23:18 +0200 (CEST)
Received: from terminus.zytor.com (terminus.zytor.com
 [IPv6:2607:7c80:54:3:0:0:0:136]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53M8MG9F1954391
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Tue, 22 Apr 2025 01:22:22 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0ad4ecd9-1f53-11f0-9ffb-bf95429c2676
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53M8MG9F1954391
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745310144;
	bh=gofr29Us7GJwE+ep+JSVtswMwKTsjSvf3ByH2Ru+lMY=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=C+FHL7l1DozIF9G3dyP8TJEkWL4mb+IbzggFlvUHen/RMc6m8raGVFoPqJTk1NloE
	 dZEvycUnAXEB+wMZfgOQgp8M7ntf0J0NYGe5AWNwyKSvmonnj0D3+yR3eYhx6wihMv
	 cbXC2V4zp5cqC6kq70UtDQC71N3d8i/2m8Yp2DtlJze9Ps9J0z6WDGvYaj8GYIO1E6
	 aFROF2AMz5JriybNNFSrbo4djA+VO/OFXxmQpoMKOQ9J9Y8vIl/Eda+WEtNJJYyOnv
	 lpZh7KcgftJhdhV4JmJK/hirxkQJt4YDV8FOC/FXYUao/OGh7u3HXxEXgFRrimFNNO
	 bUzyvFISvm1gQ==
From: "Xin Li (Intel)" <xin@zytor.com>
To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
        linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
        netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        acme@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com,
        peterz@infradead.org, namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com
Subject: [RFC PATCH v2 01/34] x86/msr: Move rdtsc{,_ordered}() to <asm/tsc.h>
Date: Tue, 22 Apr 2025 01:21:42 -0700
Message-ID: <20250422082216.1954310-2-xin@zytor.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250422082216.1954310-1-xin@zytor.com>
References: <20250422082216.1954310-1-xin@zytor.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Relocate rdtsc{,_ordered}() from <asm/msr.h> to <asm/tsc.h>, and
subsequently remove the inclusion of <asm/msr.h> in <asm/tsc.h>.
Consequently, <asm/msr.h> must be included in several source files
that previously did not require it.

Signed-off-by: Xin Li (Intel) <xin@zytor.com>
---
 arch/x86/boot/startup/sme.c                   |  1 +
 arch/x86/events/msr.c                         |  3 +
 arch/x86/events/perf_event.h                  |  1 +
 arch/x86/events/probe.c                       |  2 +
 arch/x86/hyperv/ivm.c                         |  1 +
 arch/x86/include/asm/fred.h                   |  1 +
 arch/x86/include/asm/microcode.h              |  2 +
 arch/x86/include/asm/mshyperv.h               |  1 +
 arch/x86/include/asm/msr.h                    | 55 +-------------
 arch/x86/include/asm/suspend_32.h             |  1 +
 arch/x86/include/asm/suspend_64.h             |  1 +
 arch/x86/include/asm/switch_to.h              |  2 +
 arch/x86/include/asm/tsc.h                    | 76 ++++++++++++++++++-
 arch/x86/kernel/cpu/resctrl/pseudo_lock.c     |  1 +
 arch/x86/kernel/fpu/xstate.h                  |  1 +
 arch/x86/kernel/hpet.c                        |  1 +
 arch/x86/kernel/process_64.c                  |  1 +
 arch/x86/kernel/trace_clock.c                 |  2 +-
 arch/x86/kernel/tsc_sync.c                    |  1 +
 arch/x86/lib/kaslr.c                          |  2 +-
 arch/x86/realmode/init.c                      |  1 +
 drivers/acpi/processor_perflib.c              |  1 +
 drivers/acpi/processor_throttling.c           |  3 +-
 drivers/cpufreq/amd-pstate-ut.c               |  2 +
 drivers/hwmon/hwmon-vid.c                     |  4 +
 drivers/net/vmxnet3/vmxnet3_drv.c             |  4 +
 .../intel/speed_select_if/isst_if_common.c    |  1 +
 drivers/platform/x86/intel/turbo_max_3.c      |  1 +
 28 files changed, 115 insertions(+), 58 deletions(-)

diff --git a/arch/x86/boot/startup/sme.c b/arch/x86/boot/startup/sme.c
index 5738b31c8e60..591d6a4d2e59 100644
--- a/arch/x86/boot/startup/sme.c
+++ b/arch/x86/boot/startup/sme.c
@@ -44,6 +44,7 @@
 #include <asm/sections.h>
 #include <asm/coco.h>
 #include <asm/sev.h>
+#include <asm/msr.h>
 
 #define PGD_FLAGS		_KERNPG_TABLE_NOENC
 #define P4D_FLAGS		_KERNPG_TABLE_NOENC
diff --git a/arch/x86/events/msr.c b/arch/x86/events/msr.c
index 8970ecef87c5..c39e49cecace 100644
--- a/arch/x86/events/msr.c
+++ b/arch/x86/events/msr.c
@@ -3,6 +3,9 @@
 #include <linux/sysfs.h>
 #include <linux/nospec.h>
 #include <asm/cpu_device_id.h>
+#include <asm/msr.h>
+#include <asm/tsc.h>
+
 #include "probe.h"
 
 enum perf_msr_id {
diff --git a/arch/x86/events/perf_event.h b/arch/x86/events/perf_event.h
index b29b452b1187..53ef48b4c65c 100644
--- a/arch/x86/events/perf_event.h
+++ b/arch/x86/events/perf_event.h
@@ -17,6 +17,7 @@
 #include <asm/fpu/xstate.h>
 #include <asm/intel_ds.h>
 #include <asm/cpu.h>
+#include <asm/msr.h>
 
 /* To enable MSR tracing please use the generic trace points. */
 
diff --git a/arch/x86/events/probe.c b/arch/x86/events/probe.c
index fda35cf25528..bb719d0d3f0b 100644
--- a/arch/x86/events/probe.c
+++ b/arch/x86/events/probe.c
@@ -2,6 +2,8 @@
 #include <linux/export.h>
 #include <linux/types.h>
 #include <linux/bits.h>
+
+#include <asm/msr.h>
 #include "probe.h"
 
 static umode_t
diff --git a/arch/x86/hyperv/ivm.c b/arch/x86/hyperv/ivm.c
index 1b8a2415183b..8209de792388 100644
--- a/arch/x86/hyperv/ivm.c
+++ b/arch/x86/hyperv/ivm.c
@@ -22,6 +22,7 @@
 #include <asm/realmode.h>
 #include <asm/e820/api.h>
 #include <asm/desc.h>
+#include <asm/msr.h>
 #include <uapi/asm/vmx.h>
 
 #ifdef CONFIG_AMD_MEM_ENCRYPT
diff --git a/arch/x86/include/asm/fred.h b/arch/x86/include/asm/fred.h
index 2a29e5216881..12b34d5b2953 100644
--- a/arch/x86/include/asm/fred.h
+++ b/arch/x86/include/asm/fred.h
@@ -9,6 +9,7 @@
 #include <linux/const.h>
 
 #include <asm/asm.h>
+#include <asm/msr.h>
 #include <asm/trapnr.h>
 
 /*
diff --git a/arch/x86/include/asm/microcode.h b/arch/x86/include/asm/microcode.h
index 263ea3dd0001..107a1aaa211b 100644
--- a/arch/x86/include/asm/microcode.h
+++ b/arch/x86/include/asm/microcode.h
@@ -2,6 +2,8 @@
 #ifndef _ASM_X86_MICROCODE_H
 #define _ASM_X86_MICROCODE_H
 
+#include <asm/msr.h>
+
 struct cpu_signature {
 	unsigned int sig;
 	unsigned int pf;
diff --git a/arch/x86/include/asm/mshyperv.h b/arch/x86/include/asm/mshyperv.h
index bab5ccfc60a7..15d00dace70f 100644
--- a/arch/x86/include/asm/mshyperv.h
+++ b/arch/x86/include/asm/mshyperv.h
@@ -8,6 +8,7 @@
 #include <linux/io.h>
 #include <asm/nospec-branch.h>
 #include <asm/paravirt.h>
+#include <asm/msr.h>
 #include <hyperv/hvhdk.h>
 
 /*
diff --git a/arch/x86/include/asm/msr.h b/arch/x86/include/asm/msr.h
index 2ccc78ebc3d7..2caa13830e11 100644
--- a/arch/x86/include/asm/msr.h
+++ b/arch/x86/include/asm/msr.h
@@ -12,6 +12,7 @@
 #include <uapi/asm/msr.h>
 #include <asm/shared/msr.h>
 
+#include <linux/types.h>
 #include <linux/percpu.h>
 
 struct msr_info {
@@ -169,60 +170,6 @@ native_write_msr_safe(u32 msr, u32 low, u32 high)
 extern int rdmsr_safe_regs(u32 regs[8]);
 extern int wrmsr_safe_regs(u32 regs[8]);
 
-/**
- * rdtsc() - returns the current TSC without ordering constraints
- *
- * rdtsc() returns the result of RDTSC as a 64-bit integer.  The
- * only ordering constraint it supplies is the ordering implied by
- * "asm volatile": it will put the RDTSC in the place you expect.  The
- * CPU can and will speculatively execute that RDTSC, though, so the
- * results can be non-monotonic if compared on different CPUs.
- */
-static __always_inline u64 rdtsc(void)
-{
-	DECLARE_ARGS(val, low, high);
-
-	asm volatile("rdtsc" : EAX_EDX_RET(val, low, high));
-
-	return EAX_EDX_VAL(val, low, high);
-}
-
-/**
- * rdtsc_ordered() - read the current TSC in program order
- *
- * rdtsc_ordered() returns the result of RDTSC as a 64-bit integer.
- * It is ordered like a load to a global in-memory counter.  It should
- * be impossible to observe non-monotonic rdtsc_unordered() behavior
- * across multiple CPUs as long as the TSC is synced.
- */
-static __always_inline u64 rdtsc_ordered(void)
-{
-	DECLARE_ARGS(val, low, high);
-
-	/*
-	 * The RDTSC instruction is not ordered relative to memory
-	 * access.  The Intel SDM and the AMD APM are both vague on this
-	 * point, but empirically an RDTSC instruction can be
-	 * speculatively executed before prior loads.  An RDTSC
-	 * immediately after an appropriate barrier appears to be
-	 * ordered as a normal load, that is, it provides the same
-	 * ordering guarantees as reading from a global memory location
-	 * that some other imaginary CPU is updating continuously with a
-	 * time stamp.
-	 *
-	 * Thus, use the preferred barrier on the respective CPU, aiming for
-	 * RDTSCP as the default.
-	 */
-	asm volatile(ALTERNATIVE_2("rdtsc",
-				   "lfence; rdtsc", X86_FEATURE_LFENCE_RDTSC,
-				   "rdtscp", X86_FEATURE_RDTSCP)
-			: EAX_EDX_RET(val, low, high)
-			/* RDTSCP clobbers ECX with MSR_TSC_AUX. */
-			:: "ecx");
-
-	return EAX_EDX_VAL(val, low, high);
-}
-
 static inline u64 native_read_pmc(int counter)
 {
 	DECLARE_ARGS(val, low, high);
diff --git a/arch/x86/include/asm/suspend_32.h b/arch/x86/include/asm/suspend_32.h
index d8416b3bf832..e8e5aab06255 100644
--- a/arch/x86/include/asm/suspend_32.h
+++ b/arch/x86/include/asm/suspend_32.h
@@ -9,6 +9,7 @@
 
 #include <asm/desc.h>
 #include <asm/fpu/api.h>
+#include <asm/msr.h>
 
 /* image of the saved processor state */
 struct saved_context {
diff --git a/arch/x86/include/asm/suspend_64.h b/arch/x86/include/asm/suspend_64.h
index 54df06687d83..b512f9665f78 100644
--- a/arch/x86/include/asm/suspend_64.h
+++ b/arch/x86/include/asm/suspend_64.h
@@ -9,6 +9,7 @@
 
 #include <asm/desc.h>
 #include <asm/fpu/api.h>
+#include <asm/msr.h>
 
 /*
  * Image of the saved processor state, used by the low level ACPI suspend to
diff --git a/arch/x86/include/asm/switch_to.h b/arch/x86/include/asm/switch_to.h
index 75248546403d..4f21df7af715 100644
--- a/arch/x86/include/asm/switch_to.h
+++ b/arch/x86/include/asm/switch_to.h
@@ -52,6 +52,8 @@ do {									\
 } while (0)
 
 #ifdef CONFIG_X86_32
+#include <asm/msr.h>
+
 static inline void refresh_sysenter_cs(struct thread_struct *thread)
 {
 	/* Only happens when SEP is enabled, no need to test "SEP"arately: */
diff --git a/arch/x86/include/asm/tsc.h b/arch/x86/include/asm/tsc.h
index 94408a784c8e..13335a130edf 100644
--- a/arch/x86/include/asm/tsc.h
+++ b/arch/x86/include/asm/tsc.h
@@ -7,7 +7,81 @@
 
 #include <asm/cpufeature.h>
 #include <asm/processor.h>
-#include <asm/msr.h>
+
+/*
+ * both i386 and x86_64 returns 64-bit value in edx:eax, but gcc's "A"
+ * constraint has different meanings. For i386, "A" means exactly
+ * edx:eax, while for x86_64 it doesn't mean rdx:rax or edx:eax. Instead,
+ * it means rax *or* rdx.
+ */
+#ifdef CONFIG_X86_64
+/* Using 64-bit values saves one instruction clearing the high half of low */
+#define DECLARE_ARGS(val, low, high)	unsigned long low, high
+#define EAX_EDX_VAL(val, low, high)	((low) | (high) << 32)
+#define EAX_EDX_RET(val, low, high)	"=a" (low), "=d" (high)
+#else
+#define DECLARE_ARGS(val, low, high)	u64 val
+#define EAX_EDX_VAL(val, low, high)	(val)
+#define EAX_EDX_RET(val, low, high)	"=A" (val)
+#endif
+
+/**
+ * rdtsc() - returns the current TSC without ordering constraints
+ *
+ * rdtsc() returns the result of RDTSC as a 64-bit integer.  The
+ * only ordering constraint it supplies is the ordering implied by
+ * "asm volatile": it will put the RDTSC in the place you expect.  The
+ * CPU can and will speculatively execute that RDTSC, though, so the
+ * results can be non-monotonic if compared on different CPUs.
+ */
+static __always_inline u64 rdtsc(void)
+{
+	DECLARE_ARGS(val, low, high);
+
+	asm volatile("rdtsc" : EAX_EDX_RET(val, low, high));
+
+	return EAX_EDX_VAL(val, low, high);
+}
+
+/**
+ * rdtsc_ordered() - read the current TSC in program order
+ *
+ * rdtsc_ordered() returns the result of RDTSC as a 64-bit integer.
+ * It is ordered like a load to a global in-memory counter.  It should
+ * be impossible to observe non-monotonic rdtsc_unordered() behavior
+ * across multiple CPUs as long as the TSC is synced.
+ */
+static __always_inline u64 rdtsc_ordered(void)
+{
+	DECLARE_ARGS(val, low, high);
+
+	/*
+	 * The RDTSC instruction is not ordered relative to memory
+	 * access.  The Intel SDM and the AMD APM are both vague on this
+	 * point, but empirically an RDTSC instruction can be
+	 * speculatively executed before prior loads.  An RDTSC
+	 * immediately after an appropriate barrier appears to be
+	 * ordered as a normal load, that is, it provides the same
+	 * ordering guarantees as reading from a global memory location
+	 * that some other imaginary CPU is updating continuously with a
+	 * time stamp.
+	 *
+	 * Thus, use the preferred barrier on the respective CPU, aiming for
+	 * RDTSCP as the default.
+	 */
+	asm volatile(ALTERNATIVE_2("rdtsc",
+				   "lfence; rdtsc", X86_FEATURE_LFENCE_RDTSC,
+				   "rdtscp", X86_FEATURE_RDTSCP)
+			: EAX_EDX_RET(val, low, high)
+			/* RDTSCP clobbers ECX with MSR_TSC_AUX. */
+			:: "ecx");
+
+	return EAX_EDX_VAL(val, low, high);
+}
+
+#undef DECLARE_ARGS
+#undef EAX_EDX_VAL
+#undef EAX_EDX_RET
 
 /*
  * Standard way to access the cycle counter.
diff --git a/arch/x86/kernel/cpu/resctrl/pseudo_lock.c b/arch/x86/kernel/cpu/resctrl/pseudo_lock.c
index 2a82eb6a0376..26c354bdea07 100644
--- a/arch/x86/kernel/cpu/resctrl/pseudo_lock.c
+++ b/arch/x86/kernel/cpu/resctrl/pseudo_lock.c
@@ -25,6 +25,7 @@
 #include <asm/cpu_device_id.h>
 #include <asm/resctrl.h>
 #include <asm/perf_event.h>
+#include <asm/msr.h>
 
 #include "../../events/perf_event.h" /* For X86_CONFIG() */
 #include "internal.h"
diff --git a/arch/x86/kernel/fpu/xstate.h b/arch/x86/kernel/fpu/xstate.h
index a3b7dcbdb060..52ce19289989 100644
--- a/arch/x86/kernel/fpu/xstate.h
+++ b/arch/x86/kernel/fpu/xstate.h
@@ -5,6 +5,7 @@
 #include <asm/cpufeature.h>
 #include <asm/fpu/xstate.h>
 #include <asm/fpu/xcr.h>
+#include <asm/msr.h>
 
 #ifdef CONFIG_X86_64
 DECLARE_PER_CPU(u64, xfd_state);
diff --git a/arch/x86/kernel/hpet.c b/arch/x86/kernel/hpet.c
index cc5d12232216..c9982a7c9536 100644
--- a/arch/x86/kernel/hpet.c
+++ b/arch/x86/kernel/hpet.c
@@ -12,6 +12,7 @@
 #include <asm/hpet.h>
 #include <asm/time.h>
 #include <asm/mwait.h>
+#include <asm/msr.h>
 
 #undef  pr_fmt
 #define pr_fmt(fmt) "hpet: " fmt
diff --git a/arch/x86/kernel/process_64.c b/arch/x86/kernel/process_64.c
index 24e1ccf22912..cfa9c031de91 100644
--- a/arch/x86/kernel/process_64.c
+++ b/arch/x86/kernel/process_64.c
@@ -57,6 +57,7 @@
 #include <asm/unistd.h>
 #include <asm/fsgsbase.h>
 #include <asm/fred.h>
+#include <asm/msr.h>
 #ifdef CONFIG_IA32_EMULATION
 /* Not included via unistd.h */
 #include <asm/unistd_32_ia32.h>
diff --git a/arch/x86/kernel/trace_clock.c b/arch/x86/kernel/trace_clock.c
index b8e7abe00b06..708d61743d15 100644
--- a/arch/x86/kernel/trace_clock.c
+++ b/arch/x86/kernel/trace_clock.c
@@ -4,7 +4,7 @@
  */
 #include <asm/trace_clock.h>
 #include <asm/barrier.h>
-#include <asm/msr.h>
+#include <asm/tsc.h>
 
 /*
  * trace_clock_x86_tsc(): A clock that is just the cycle counter.
diff --git a/arch/x86/kernel/tsc_sync.c b/arch/x86/kernel/tsc_sync.c
index f1c7a86dbf49..ec3aa340d351 100644
--- a/arch/x86/kernel/tsc_sync.c
+++ b/arch/x86/kernel/tsc_sync.c
@@ -21,6 +21,7 @@
 #include <linux/kernel.h>
 #include <linux/smp.h>
 #include <linux/nmi.h>
+#include <asm/msr.h>
 #include <asm/tsc.h>
 
 struct tsc_adjust {
diff --git a/arch/x86/lib/kaslr.c b/arch/x86/lib/kaslr.c
index a58f451a7dd3..b5893928d55c 100644
--- a/arch/x86/lib/kaslr.c
+++ b/arch/x86/lib/kaslr.c
@@ -8,7 +8,7 @@
  */
 #include <asm/asm.h>
 #include <asm/kaslr.h>
-#include <asm/msr.h>
+#include <asm/tsc.h>
 #include <asm/archrandom.h>
 #include <asm/e820/api.h>
 #include <asm/shared/io.h>
diff --git a/arch/x86/realmode/init.c b/arch/x86/realmode/init.c
index 263787b4800c..ed5c63c0b4e5 100644
--- a/arch/x86/realmode/init.c
+++ b/arch/x86/realmode/init.c
@@ -9,6 +9,7 @@
 #include <asm/realmode.h>
 #include <asm/tlbflush.h>
 #include <asm/crash.h>
+#include <asm/msr.h>
 #include <asm/sev.h>
 
 struct real_mode_header *real_mode_header;
diff --git a/drivers/acpi/processor_perflib.c b/drivers/acpi/processor_perflib.c
index 53996f1a2d80..64b8d1e19594 100644
--- a/drivers/acpi/processor_perflib.c
+++ b/drivers/acpi/processor_perflib.c
@@ -20,6 +20,7 @@
 #include <acpi/processor.h>
 #ifdef CONFIG_X86
 #include <asm/cpufeature.h>
+#include <asm/msr.h>
 #endif
 
 #define ACPI_PROCESSOR_FILE_PERFORMANCE	"performance"
diff --git a/drivers/acpi/processor_throttling.c b/drivers/acpi/processor_throttling.c
index 00d045e5f524..8482e9a8a7aa 100644
--- a/drivers/acpi/processor_throttling.c
+++ b/drivers/acpi/processor_throttling.c
@@ -18,9 +18,10 @@
 #include <linux/sched.h>
 #include <linux/cpufreq.h>
 #include <linux/acpi.h>
+#include <linux/uaccess.h>
 #include <acpi/processor.h>
 #include <asm/io.h>
-#include <linux/uaccess.h>
+#include <asm/asm.h>
 
 /* ignore_tpc:
  *  0 -> acpi processor driver doesn't ignore _TPC values
diff --git a/drivers/cpufreq/amd-pstate-ut.c b/drivers/cpufreq/amd-pstate-ut.c
index 707fa81c749f..c8d031b297d2 100644
--- a/drivers/cpufreq/amd-pstate-ut.c
+++ b/drivers/cpufreq/amd-pstate-ut.c
@@ -31,6 +31,8 @@
 
 #include <acpi/cppc_acpi.h>
 
+#include <asm/msr.h>
+
 #include "amd-pstate.h"
 
 
diff --git a/drivers/hwmon/hwmon-vid.c b/drivers/hwmon/hwmon-vid.c
index 6d1175a51832..2df4956296ed 100644
--- a/drivers/hwmon/hwmon-vid.c
+++ b/drivers/hwmon/hwmon-vid.c
@@ -15,6 +15,10 @@
 #include <linux/kernel.h>
 #include <linux/hwmon-vid.h>
 
+#ifdef CONFIG_X86
+#include <asm/msr.h>
+#endif
+
 /*
  * Common code for decoding VID pins.
  *
diff --git a/drivers/net/vmxnet3/vmxnet3_drv.c b/drivers/net/vmxnet3/vmxnet3_drv.c
index 3df6aabc7e33..7edd0b5e0e77 100644
--- a/drivers/net/vmxnet3/vmxnet3_drv.c
+++ b/drivers/net/vmxnet3/vmxnet3_drv.c
@@ -27,6 +27,10 @@
 #include <linux/module.h>
 #include <net/ip6_checksum.h>
 
+#ifdef CONFIG_X86
+#include <asm/msr.h>
+#endif
+
 #include "vmxnet3_int.h"
 #include "vmxnet3_xdp.h"
 
diff --git a/drivers/platform/x86/intel/speed_select_if/isst_if_common.c b/drivers/platform/x86/intel/speed_select_if/isst_if_common.c
index 44dcd165b4c0..8a5713593811 100644
--- a/drivers/platform/x86/intel/speed_select_if/isst_if_common.c
+++ b/drivers/platform/x86/intel/speed_select_if/isst_if_common.c
@@ -21,6 +21,7 @@
 
 #include <asm/cpu_device_id.h>
 #include <asm/intel-family.h>
+#include <asm/msr.h>
 
 #include "isst_if_common.h"
 
diff --git a/drivers/platform/x86/intel/turbo_max_3.c b/drivers/platform/x86/intel/turbo_max_3.c
index 7e538bbd5b50..b5af3e91ba04 100644
--- a/drivers/platform/x86/intel/turbo_max_3.c
+++ b/drivers/platform/x86/intel/turbo_max_3.c
@@ -17,6 +17,7 @@
 
 #include <asm/cpu_device_id.h>
 #include <asm/intel-family.h>
+#include <asm/msr.h>
 
 #define MSR_OC_MAILBOX			0x150
 #define MSR_OC_MAILBOX_CMD_OFFSET	32
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 22 08:23:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 08:23:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.961788.1353196 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u78uf-0006yE-Ij; Tue, 22 Apr 2025 08:23:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 961788.1353196; Tue, 22 Apr 2025 08:23: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 1u78ue-0006vx-UP; Tue, 22 Apr 2025 08:23:28 +0000
Received: by outflank-mailman (input) for mailman id 961788;
 Tue, 22 Apr 2025 08: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=Qhpm=XI=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u78uc-0004wM-5a
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 08:23:26 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0c784155-1f53-11f0-9eb0-5ba50f476ded;
 Tue, 22 Apr 2025 10:23:21 +0200 (CEST)
Received: from terminus.zytor.com (terminus.zytor.com
 [IPv6:2607:7c80:54:3:0:0:0:136]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53M8MG9X1954391
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Tue, 22 Apr 2025 01:22:59 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0c784155-1f53-11f0-9eb0-5ba50f476ded
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53M8MG9X1954391
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745310181;
	bh=NNx/bsW0ODtmJpfsi048P3Fj6b4nBpFrrvypKuPXLIg=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=cbIqq/wL911bUtP7+WKZQwUp5BP2uQDF0M396c/1wV9SxBhoCkZqNqqK/X5WlcGHr
	 ashWQDaWODnE6g9w4+IW/hSEyKjNsaVVVc+pObXiea4M3kb3inrzeAuXhSDfHp6Cx+
	 HfUn2y8wZAC5H0mjajud2hEDrBLl2csSFGl0BMmU/YjJkF1ob54eK/BjPWWd13ikh9
	 kLIBXoce48SGlAb8V3FWMUzo67hW5FrpbagoXdvt+RFV1FYEkIe1lKQFkOEY7FcA+R
	 eeiYsX+Bcaf3/8X8V8OUbwLjuG+YkH53wOp7lVVoobhRWAMn1YmRpvzx2zJd94GdB2
	 hN1HWhqneMGyA==
From: "Xin Li (Intel)" <xin@zytor.com>
To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
        linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
        netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        acme@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com,
        peterz@infradead.org, namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com
Subject: [RFC PATCH v2 19/34] x86/extable: Add support for immediate form MSR instructions
Date: Tue, 22 Apr 2025 01:22:00 -0700
Message-ID: <20250422082216.1954310-20-xin@zytor.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250422082216.1954310-1-xin@zytor.com>
References: <20250422082216.1954310-1-xin@zytor.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Signed-off-by: Xin Li (Intel) <xin@zytor.com>
---
 arch/x86/include/asm/msr.h | 18 ++++++++++++++++++
 arch/x86/mm/extable.c      | 39 +++++++++++++++++++++++++++++++++-----
 2 files changed, 52 insertions(+), 5 deletions(-)

diff --git a/arch/x86/include/asm/msr.h b/arch/x86/include/asm/msr.h
index c955339be9c9..8f7a67b1c61c 100644
--- a/arch/x86/include/asm/msr.h
+++ b/arch/x86/include/asm/msr.h
@@ -78,6 +78,24 @@ static inline void do_trace_rdpmc(u32 msr, u64 val, int failed) {}
 extern u64 xen_read_pmc(int counter);
 #endif
 
+/*
+ * Called only from an MSR fault handler, the instruction pointer points to
+ * the MSR access instruction that caused the fault.
+ */
+static __always_inline bool is_msr_imm_insn(void *ip)
+{
+	/*
+	 * A full decoder for immediate form MSR instructions appears excessive.
+	 */
+#ifdef CONFIG_X86_64
+	const u8 msr_imm_insn_prefix[] = { 0xc4, 0xe7 };
+
+	return !memcmp(ip, msr_imm_insn_prefix, sizeof(msr_imm_insn_prefix));
+#else
+	return false;
+#endif
+}
+
 /*
  * __rdmsr() and __wrmsr() are the two primitives which are the bare minimum MSR
  * accessors and should not have any tracing or other functionality piggybacking
diff --git a/arch/x86/mm/extable.c b/arch/x86/mm/extable.c
index bf8dab18be97..f1743babafc8 100644
--- a/arch/x86/mm/extable.c
+++ b/arch/x86/mm/extable.c
@@ -167,23 +167,52 @@ static bool ex_handler_uaccess(const struct exception_table_entry *fixup,
 static bool ex_handler_msr(const struct exception_table_entry *fixup,
 			   struct pt_regs *regs, bool wrmsr, bool safe, int reg)
 {
+	bool imm_insn = is_msr_imm_insn((void *)regs->ip);
+	u32 msr;
+
+	if (imm_insn)
+		/*
+		 * The 32-bit immediate specifying a MSR is encoded into
+		 * byte 5 ~ 8 of an immediate form MSR instruction.
+		 */
+		msr = *(u32 *)(regs->ip + 5);
+	else
+		msr = (u32)regs->cx;
+
 	if (__ONCE_LITE_IF(!safe && wrmsr)) {
-		pr_warn("unchecked MSR access error: WRMSR to 0x%x (tried to write 0x%08x%08x) at rIP: 0x%lx (%pS)\n",
-			(unsigned int)regs->cx, (unsigned int)regs->dx,
-			(unsigned int)regs->ax,  regs->ip, (void *)regs->ip);
+		/*
+		 * To maintain consistency with existing RDMSR and WRMSR(NS) instructions,
+		 * the register operand for immediate form MSR instructions is ALWAYS
+		 * encoded as RAX in <asm/msr.h> for reading or writing the MSR value.
+		 */
+		u64 msr_val = regs->ax;
+
+		if (!imm_insn) {
+			/*
+			 * On processors that support the Intel 64 architecture, the
+			 * high-order 32 bits of each of RAX and RDX are ignored.
+			 */
+			msr_val &= 0xffffffff;
+			msr_val |= (u64)regs->dx << 32;
+		}
+
+		pr_warn("unchecked MSR access error: WRMSR to 0x%x (tried to write 0x%016llx) at rIP: 0x%lx (%pS)\n",
+			msr, msr_val, regs->ip, (void *)regs->ip);
 		show_stack_regs(regs);
 	}
 
 	if (__ONCE_LITE_IF(!safe && !wrmsr)) {
 		pr_warn("unchecked MSR access error: RDMSR from 0x%x at rIP: 0x%lx (%pS)\n",
-			(unsigned int)regs->cx, regs->ip, (void *)regs->ip);
+			msr, regs->ip, (void *)regs->ip);
 		show_stack_regs(regs);
 	}
 
 	if (!wrmsr) {
 		/* Pretend that the read succeeded and returned 0. */
 		regs->ax = 0;
-		regs->dx = 0;
+
+		if (!imm_insn)
+			regs->dx = 0;
 	}
 
 	if (safe)
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 22 08:23:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 08:23:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.961789.1353203 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u78ug-0007AH-GE; Tue, 22 Apr 2025 08:23:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 961789.1353203; Tue, 22 Apr 2025 08:23:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u78uf-00077Q-LP; Tue, 22 Apr 2025 08:23:29 +0000
Received: by outflank-mailman (input) for mailman id 961789;
 Tue, 22 Apr 2025 08:23: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=Qhpm=XI=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u78uc-0004wX-Gk
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 08:23:26 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0bb5c65b-1f53-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 10:23:20 +0200 (CEST)
Received: from terminus.zytor.com (terminus.zytor.com
 [IPv6:2607:7c80:54:3:0:0:0:136]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53M8MG9O1954391
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Tue, 22 Apr 2025 01:22:40 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0bb5c65b-1f53-11f0-9ffb-bf95429c2676
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53M8MG9O1954391
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745310162;
	bh=mQ56Cdr59Ix+D1+VlxlBq9nRvtyoizRT1tcHxxOdSyc=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=YreaAE1bBxLeGD94yQsuRGK8Y5PYgYhVXVGbG+bCsK/9wMmPjs4xtG1dHGEYBqRda
	 m0bH5rOYOSW0B4cKA9Ir3UM+NiFcxEmQhkuMZSoEYaNCH9AANvR3g6XyHT4ZVDLrPc
	 NcXAWvHSkZHRpxUuL31u3nYoJg5/uqq6pFHs04Dm6VKKeidfHNf8xPRlvo3OMLSMQ7
	 x6UNpM9UCBLesy0o6R5LG84vpbth/c4Ktc2KeL9V5G7iDyZDaVJl60+Ay/Mhj7Rj6+
	 SwOqTsmwZYo63uNUJGzR0YD2XK2Tfls2otD3shWT0Obsj5iA/K+8FZFJw91uTGL479
	 aRcrxR3ykhc5A==
From: "Xin Li (Intel)" <xin@zytor.com>
To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
        linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
        netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        acme@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com,
        peterz@infradead.org, namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com
Subject: [RFC PATCH v2 10/34] x86/msr: Convert __rdmsr() uses to native_rdmsrq() uses
Date: Tue, 22 Apr 2025 01:21:51 -0700
Message-ID: <20250422082216.1954310-11-xin@zytor.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250422082216.1954310-1-xin@zytor.com>
References: <20250422082216.1954310-1-xin@zytor.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

__rdmsr() is the lowest level primitive MSR read API, and its direct
use is NOT preferred.  Use its wrapper function native_rdmsrq() instead.

No functional change intended.

This change also prepares for using the alternatives mechanism to access
MSRs: uses of native_rdmsr{,q}() don't need to change, but the approaches
how they perform MSR operations are binary patched during boot time upon
availability of MSR instructions.

Signed-off-by: Xin Li (Intel) <xin@zytor.com>
---
 arch/x86/boot/startup/sme.c               | 4 ++--
 arch/x86/events/amd/brs.c                 | 2 +-
 arch/x86/hyperv/hv_vtl.c                  | 4 ++--
 arch/x86/hyperv/ivm.c                     | 2 +-
 arch/x86/include/asm/mshyperv.h           | 2 +-
 arch/x86/include/asm/sev-internal.h       | 2 +-
 arch/x86/kernel/cpu/common.c              | 2 +-
 arch/x86/kernel/cpu/mce/core.c            | 4 ++--
 arch/x86/kernel/cpu/resctrl/pseudo_lock.c | 2 +-
 arch/x86/kvm/vmx/vmx.c                    | 4 ++--
 10 files changed, 14 insertions(+), 14 deletions(-)

diff --git a/arch/x86/boot/startup/sme.c b/arch/x86/boot/startup/sme.c
index 591d6a4d2e59..5e147bf5a0a8 100644
--- a/arch/x86/boot/startup/sme.c
+++ b/arch/x86/boot/startup/sme.c
@@ -524,7 +524,7 @@ void __head sme_enable(struct boot_params *bp)
 	me_mask = 1UL << (ebx & 0x3f);
 
 	/* Check the SEV MSR whether SEV or SME is enabled */
-	sev_status = msr = __rdmsr(MSR_AMD64_SEV);
+	sev_status = msr = native_rdmsrq(MSR_AMD64_SEV);
 	feature_mask = (msr & MSR_AMD64_SEV_ENABLED) ? AMD_SEV_BIT : AMD_SME_BIT;
 
 	/*
@@ -555,7 +555,7 @@ void __head sme_enable(struct boot_params *bp)
 			return;
 
 		/* For SME, check the SYSCFG MSR */
-		msr = __rdmsr(MSR_AMD64_SYSCFG);
+		msr = native_rdmsrq(MSR_AMD64_SYSCFG);
 		if (!(msr & MSR_AMD64_SYSCFG_MEM_ENCRYPT))
 			return;
 	}
diff --git a/arch/x86/events/amd/brs.c b/arch/x86/events/amd/brs.c
index 3f5ecfd80d1e..06f35a6b58a5 100644
--- a/arch/x86/events/amd/brs.c
+++ b/arch/x86/events/amd/brs.c
@@ -49,7 +49,7 @@ static __always_inline void set_debug_extn_cfg(u64 val)
 
 static __always_inline u64 get_debug_extn_cfg(void)
 {
-	return __rdmsr(MSR_AMD_DBG_EXTN_CFG);
+	return native_rdmsrq(MSR_AMD_DBG_EXTN_CFG);
 }
 
 static bool __init amd_brs_detect(void)
diff --git a/arch/x86/hyperv/hv_vtl.c b/arch/x86/hyperv/hv_vtl.c
index 13242ed8ff16..c6343e699154 100644
--- a/arch/x86/hyperv/hv_vtl.c
+++ b/arch/x86/hyperv/hv_vtl.c
@@ -149,11 +149,11 @@ static int hv_vtl_bringup_vcpu(u32 target_vp_index, int cpu, u64 eip_ignored)
 	input->vp_context.rip = rip;
 	input->vp_context.rsp = rsp;
 	input->vp_context.rflags = 0x0000000000000002;
-	input->vp_context.efer = __rdmsr(MSR_EFER);
+	input->vp_context.efer = native_rdmsrq(MSR_EFER);
 	input->vp_context.cr0 = native_read_cr0();
 	input->vp_context.cr3 = __native_read_cr3();
 	input->vp_context.cr4 = native_read_cr4();
-	input->vp_context.msr_cr_pat = __rdmsr(MSR_IA32_CR_PAT);
+	input->vp_context.msr_cr_pat = native_rdmsrq(MSR_IA32_CR_PAT);
 	input->vp_context.idtr.limit = idt_ptr.size;
 	input->vp_context.idtr.base = idt_ptr.address;
 	input->vp_context.gdtr.limit = gdt_ptr.size;
diff --git a/arch/x86/hyperv/ivm.c b/arch/x86/hyperv/ivm.c
index 8209de792388..09a165a3c41e 100644
--- a/arch/x86/hyperv/ivm.c
+++ b/arch/x86/hyperv/ivm.c
@@ -111,7 +111,7 @@ u64 hv_ghcb_hypercall(u64 control, void *input, void *output, u32 input_size)
 
 static inline u64 rd_ghcb_msr(void)
 {
-	return __rdmsr(MSR_AMD64_SEV_ES_GHCB);
+	return native_rdmsrq(MSR_AMD64_SEV_ES_GHCB);
 }
 
 static inline void wr_ghcb_msr(u64 val)
diff --git a/arch/x86/include/asm/mshyperv.h b/arch/x86/include/asm/mshyperv.h
index 15d00dace70f..778444310cfb 100644
--- a/arch/x86/include/asm/mshyperv.h
+++ b/arch/x86/include/asm/mshyperv.h
@@ -305,7 +305,7 @@ void hv_set_non_nested_msr(unsigned int reg, u64 value);
 
 static __always_inline u64 hv_raw_get_msr(unsigned int reg)
 {
-	return __rdmsr(reg);
+	return native_rdmsrq(reg);
 }
 
 #else /* CONFIG_HYPERV */
diff --git a/arch/x86/include/asm/sev-internal.h b/arch/x86/include/asm/sev-internal.h
index 9da509e52e11..d259bcec220a 100644
--- a/arch/x86/include/asm/sev-internal.h
+++ b/arch/x86/include/asm/sev-internal.h
@@ -96,7 +96,7 @@ int svsm_perform_call_protocol(struct svsm_call *call);
 
 static inline u64 sev_es_rd_ghcb_msr(void)
 {
-	return __rdmsr(MSR_AMD64_SEV_ES_GHCB);
+	return native_rdmsrq(MSR_AMD64_SEV_ES_GHCB);
 }
 
 static __always_inline void sev_es_wr_ghcb_msr(u64 val)
diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c
index de1a25217053..10da3da5b81f 100644
--- a/arch/x86/kernel/cpu/common.c
+++ b/arch/x86/kernel/cpu/common.c
@@ -164,7 +164,7 @@ static void ppin_init(struct cpuinfo_x86 *c)
 
 	/* Is the enable bit set? */
 	if (val & 2UL) {
-		c->ppin = __rdmsr(info->msr_ppin);
+		c->ppin = native_rdmsrq(info->msr_ppin);
 		set_cpu_cap(c, info->feature);
 		return;
 	}
diff --git a/arch/x86/kernel/cpu/mce/core.c b/arch/x86/kernel/cpu/mce/core.c
index 1ae75ec7ac95..32286bad75e6 100644
--- a/arch/x86/kernel/cpu/mce/core.c
+++ b/arch/x86/kernel/cpu/mce/core.c
@@ -121,7 +121,7 @@ void mce_prep_record_common(struct mce *m)
 {
 	m->cpuid	= cpuid_eax(1);
 	m->cpuvendor	= boot_cpu_data.x86_vendor;
-	m->mcgcap	= __rdmsr(MSR_IA32_MCG_CAP);
+	m->mcgcap	= native_rdmsrq(MSR_IA32_MCG_CAP);
 	/* need the internal __ version to avoid deadlocks */
 	m->time		= __ktime_get_real_seconds();
 }
@@ -1298,7 +1298,7 @@ static noinstr bool mce_check_crashing_cpu(void)
 	    (crashing_cpu != -1 && crashing_cpu != cpu)) {
 		u64 mcgstatus;
 
-		mcgstatus = __rdmsr(MSR_IA32_MCG_STATUS);
+		mcgstatus = native_rdmsrq(MSR_IA32_MCG_STATUS);
 
 		if (boot_cpu_data.x86_vendor == X86_VENDOR_ZHAOXIN) {
 			if (mcgstatus & MCG_STATUS_LMCES)
diff --git a/arch/x86/kernel/cpu/resctrl/pseudo_lock.c b/arch/x86/kernel/cpu/resctrl/pseudo_lock.c
index 9ab033d6856a..185317c6b509 100644
--- a/arch/x86/kernel/cpu/resctrl/pseudo_lock.c
+++ b/arch/x86/kernel/cpu/resctrl/pseudo_lock.c
@@ -482,7 +482,7 @@ int resctrl_arch_pseudo_lock_fn(void *_plr)
 	 * the buffer and evict pseudo-locked memory read earlier from the
 	 * cache.
 	 */
-	saved_msr = __rdmsr(MSR_MISC_FEATURE_CONTROL);
+	saved_msr = native_rdmsrq(MSR_MISC_FEATURE_CONTROL);
 	native_wrmsrq(MSR_MISC_FEATURE_CONTROL, prefetch_disable_bits);
 	closid_p = this_cpu_read(pqr_state.cur_closid);
 	rmid_p = this_cpu_read(pqr_state.cur_rmid);
diff --git a/arch/x86/kvm/vmx/vmx.c b/arch/x86/kvm/vmx/vmx.c
index 1547bfacd40f..e73c1d5ba6c4 100644
--- a/arch/x86/kvm/vmx/vmx.c
+++ b/arch/x86/kvm/vmx/vmx.c
@@ -380,7 +380,7 @@ static __always_inline void vmx_disable_fb_clear(struct vcpu_vmx *vmx)
 	if (!vmx->disable_fb_clear)
 		return;
 
-	msr = __rdmsr(MSR_IA32_MCU_OPT_CTRL);
+	msr = native_rdmsrq(MSR_IA32_MCU_OPT_CTRL);
 	msr |= FB_CLEAR_DIS;
 	native_wrmsrq(MSR_IA32_MCU_OPT_CTRL, msr);
 	/* Cache the MSR value to avoid reading it later */
@@ -7307,7 +7307,7 @@ void noinstr vmx_spec_ctrl_restore_host(struct vcpu_vmx *vmx,
 		return;
 
 	if (flags & VMX_RUN_SAVE_SPEC_CTRL)
-		vmx->spec_ctrl = __rdmsr(MSR_IA32_SPEC_CTRL);
+		vmx->spec_ctrl = native_rdmsrq(MSR_IA32_SPEC_CTRL);
 
 	/*
 	 * If the guest/host SPEC_CTRL values differ, restore the host value.
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 22 08:23:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 08:23:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.961790.1353208 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u78ug-0007GD-J1; Tue, 22 Apr 2025 08:23:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 961790.1353208; Tue, 22 Apr 2025 08:23:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u78ug-0007Ed-4q; Tue, 22 Apr 2025 08:23:30 +0000
Received: by outflank-mailman (input) for mailman id 961790;
 Tue, 22 Apr 2025 08:23: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=Qhpm=XI=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u78ud-0004wM-5p
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 08:23:27 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0d318768-1f53-11f0-9eb0-5ba50f476ded;
 Tue, 22 Apr 2025 10:23:22 +0200 (CEST)
Received: from terminus.zytor.com (terminus.zytor.com
 [IPv6:2607:7c80:54:3:0:0:0:136]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53M8MG9U1954391
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Tue, 22 Apr 2025 01:22:53 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0d318768-1f53-11f0-9eb0-5ba50f476ded
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53M8MG9U1954391
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745310174;
	bh=tKwShxS8SnH3+r0XrY4puuThpPUtqn9sxGzBAvLv2qE=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=XB6Bl9mXdDXZ6uItIj7HmLj7+SgdGBr4//8M02L9kJyhIy3nGwHmq06Q+9ILpfIlb
	 DSW1MBRBqfeODTFbogdeHWzIgmLXyURs0ZW2ugh2lPSGw0OKHOrvNKtbLD+nZ4lrTa
	 qIuGgzEaupHFGvAC+Tbg8gTVGMhiiY1uK2ST8DoPpunwIb7quo5Cjs7FvMp7lz3q7O
	 pE6XjV47oI+sHnWs9sPDeMj+IBucjeTvRUtGK5ilXHJsQnNbtPFggDyMZFoo2A4oNo
	 14+LS6Gf83CPkNWu/aX+A7mTB9LH5hngobXqbCOjg1NK53i/1WPuQwdrG5HQPub9ZJ
	 /825s1gxrDgXw==
From: "Xin Li (Intel)" <xin@zytor.com>
To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
        linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
        netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        acme@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com,
        peterz@infradead.org, namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com
Subject: [RFC PATCH v2 16/34] x86/msr: Change function type of native_read_msr_safe()
Date: Tue, 22 Apr 2025 01:21:57 -0700
Message-ID: <20250422082216.1954310-17-xin@zytor.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250422082216.1954310-1-xin@zytor.com>
References: <20250422082216.1954310-1-xin@zytor.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Change function type of native_read_msr_safe() to

    int native_read_msr_safe(u32 msr, u64 *val)

to make it the same as the type of native_write_msr_safe().

Signed-off-by: Xin Li (Intel) <xin@zytor.com>
---
 arch/x86/include/asm/msr.h            | 21 +++++++++++----------
 arch/x86/include/asm/paravirt_types.h |  4 ++--
 arch/x86/kvm/svm/svm.c                | 19 +++++++------------
 arch/x86/xen/enlighten_pv.c           |  9 ++++++---
 arch/x86/xen/pmu.c                    | 14 ++++++++------
 5 files changed, 34 insertions(+), 33 deletions(-)

diff --git a/arch/x86/include/asm/msr.h b/arch/x86/include/asm/msr.h
index dd1114053173..c955339be9c9 100644
--- a/arch/x86/include/asm/msr.h
+++ b/arch/x86/include/asm/msr.h
@@ -135,18 +135,22 @@ static inline u64 native_read_msr(u32 msr)
 	return val;
 }
 
-static inline u64 native_read_msr_safe(u32 msr, int *err)
+static inline int native_read_msr_safe(u32 msr, u64 *p)
 {
+	int err;
 	DECLARE_ARGS(val, low, high);
 
 	asm volatile("1: rdmsr ; xor %[err],%[err]\n"
 		     "2:\n\t"
 		     _ASM_EXTABLE_TYPE_REG(1b, 2b, EX_TYPE_RDMSR_SAFE, %[err])
-		     : [err] "=r" (*err), EAX_EDX_RET(val, low, high)
+		     : [err] "=r" (err), EAX_EDX_RET(val, low, high)
 		     : "c" (msr));
 	if (tracepoint_enabled(read_msr))
-		do_trace_read_msr(msr, EAX_EDX_VAL(val, low, high), *err);
-	return EAX_EDX_VAL(val, low, high);
+		do_trace_read_msr(msr, EAX_EDX_VAL(val, low, high), err);
+
+	*p = EAX_EDX_VAL(val, low, high);
+
+	return err;
 }
 
 /* Can be uninlined because referenced by paravirt */
@@ -242,8 +246,8 @@ static inline int wrmsrq_safe(u32 msr, u64 val)
 /* rdmsr with exception handling */
 #define rdmsr_safe(msr, low, high)				\
 ({								\
-	int __err;						\
-	u64 __val = native_read_msr_safe((msr), &__err);	\
+	u64 __val;						\
+	int __err = native_read_msr_safe((msr), &__val);	\
 	(*low) = (u32)__val;					\
 	(*high) = (u32)(__val >> 32);				\
 	__err;							\
@@ -251,10 +255,7 @@ static inline int wrmsrq_safe(u32 msr, u64 val)
 
 static inline int rdmsrq_safe(u32 msr, u64 *p)
 {
-	int err;
-
-	*p = native_read_msr_safe(msr, &err);
-	return err;
+	return native_read_msr_safe(msr, p);
 }
 #endif	/* !CONFIG_PARAVIRT_XXL */
 
diff --git a/arch/x86/include/asm/paravirt_types.h b/arch/x86/include/asm/paravirt_types.h
index 91b3423d36ce..d2db38c32bc5 100644
--- a/arch/x86/include/asm/paravirt_types.h
+++ b/arch/x86/include/asm/paravirt_types.h
@@ -96,9 +96,9 @@ struct pv_cpu_ops {
 
 	/*
 	 * Safe MSR operations.
-	 * read sets err to 0 or -EIO.  write returns 0 or -EIO.
+	 * Returns 0 or -EIO.
 	 */
-	u64 (*read_msr_safe)(unsigned int msr, int *err);
+	int (*read_msr_safe)(unsigned int msr, u64 *val);
 	int (*write_msr_safe)(u32 msr, u64 val);
 
 	void (*start_context_switch)(struct task_struct *prev);
diff --git a/arch/x86/kvm/svm/svm.c b/arch/x86/kvm/svm/svm.c
index 4ef9978dce70..838606f784c9 100644
--- a/arch/x86/kvm/svm/svm.c
+++ b/arch/x86/kvm/svm/svm.c
@@ -475,15 +475,13 @@ static void svm_inject_exception(struct kvm_vcpu *vcpu)
 
 static void svm_init_erratum_383(void)
 {
-	int err;
 	u64 val;
 
 	if (!static_cpu_has_bug(X86_BUG_AMD_TLB_MMATCH))
 		return;
 
 	/* Use _safe variants to not break nested virtualization */
-	val = native_read_msr_safe(MSR_AMD64_DC_CFG, &err);
-	if (err)
+	if (native_read_msr_safe(MSR_AMD64_DC_CFG, &val))
 		return;
 
 	val |= (1ULL << 47);
@@ -648,13 +646,12 @@ static int svm_enable_virtualization_cpu(void)
 	 * erratum is present everywhere).
 	 */
 	if (cpu_has(&boot_cpu_data, X86_FEATURE_OSVW)) {
-		uint64_t len, status = 0;
+		u64 len, status = 0;
 		int err;
 
-		len = native_read_msr_safe(MSR_AMD64_OSVW_ID_LENGTH, &err);
+		err = native_read_msr_safe(MSR_AMD64_OSVW_ID_LENGTH, &len);
 		if (!err)
-			status = native_read_msr_safe(MSR_AMD64_OSVW_STATUS,
-						      &err);
+			err = native_read_msr_safe(MSR_AMD64_OSVW_STATUS, &status);
 
 		if (err)
 			osvw_status = osvw_len = 0;
@@ -2145,14 +2142,13 @@ static int ac_interception(struct kvm_vcpu *vcpu)
 
 static bool is_erratum_383(void)
 {
-	int err, i;
+	int i;
 	u64 value;
 
 	if (!erratum_383_found)
 		return false;
 
-	value = native_read_msr_safe(MSR_IA32_MC0_STATUS, &err);
-	if (err)
+	if (native_read_msr_safe(MSR_IA32_MC0_STATUS, &value))
 		return false;
 
 	/* Bit 62 may or may not be set for this mce */
@@ -2165,8 +2161,7 @@ static bool is_erratum_383(void)
 	for (i = 0; i < 6; ++i)
 		native_write_msr_safe(MSR_IA32_MCx_STATUS(i), 0);
 
-	value = native_read_msr_safe(MSR_IA32_MCG_STATUS, &err);
-	if (!err) {
+	if (!native_read_msr_safe(MSR_IA32_MCG_STATUS, &value)) {
 		value &= ~(1ULL << 2);
 		native_write_msr_safe(MSR_IA32_MCG_STATUS, value);
 	}
diff --git a/arch/x86/xen/enlighten_pv.c b/arch/x86/xen/enlighten_pv.c
index 052f68c92111..195e6501a000 100644
--- a/arch/x86/xen/enlighten_pv.c
+++ b/arch/x86/xen/enlighten_pv.c
@@ -1095,7 +1095,7 @@ static u64 xen_do_read_msr(unsigned int msr, int *err)
 		return val;
 
 	if (err)
-		val = native_read_msr_safe(msr, err);
+		*err = native_read_msr_safe(msr, &val);
 	else
 		val = native_read_msr(msr);
 
@@ -1162,9 +1162,12 @@ static void xen_do_write_msr(u32 msr, u64 val, int *err)
 	}
 }
 
-static u64 xen_read_msr_safe(unsigned int msr, int *err)
+static int xen_read_msr_safe(unsigned int msr, u64 *val)
 {
-	return xen_do_read_msr(msr, err);
+	int err;
+
+	*val = xen_do_read_msr(msr, &err);
+	return err;
 }
 
 static int xen_write_msr_safe(u32 msr, u64 val)
diff --git a/arch/x86/xen/pmu.c b/arch/x86/xen/pmu.c
index afb02f43ee3f..ee908dfcff48 100644
--- a/arch/x86/xen/pmu.c
+++ b/arch/x86/xen/pmu.c
@@ -319,11 +319,12 @@ static u64 xen_amd_read_pmc(int counter)
 	uint8_t xenpmu_flags = get_xenpmu_flags();
 
 	if (!xenpmu_data || !(xenpmu_flags & XENPMU_IRQ_PROCESSING)) {
-		uint32_t msr;
-		int err;
+		u32 msr;
+		u64 val;
 
 		msr = amd_counters_base + (counter * amd_msr_step);
-		return native_read_msr_safe(msr, &err);
+		native_read_msr_safe(msr, &val);
+		return val;
 	}
 
 	ctxt = &xenpmu_data->pmu.c.amd;
@@ -340,15 +341,16 @@ static u64 xen_intel_read_pmc(int counter)
 	uint8_t xenpmu_flags = get_xenpmu_flags();
 
 	if (!xenpmu_data || !(xenpmu_flags & XENPMU_IRQ_PROCESSING)) {
-		uint32_t msr;
-		int err;
+		u32 msr;
+		u64 val;
 
 		if (counter & (1 << INTEL_PMC_TYPE_SHIFT))
 			msr = MSR_CORE_PERF_FIXED_CTR0 + (counter & 0xffff);
 		else
 			msr = MSR_IA32_PERFCTR0 + counter;
 
-		return native_read_msr_safe(msr, &err);
+		native_read_msr_safe(msr, &val);
+		return val;
 	}
 
 	ctxt = &xenpmu_data->pmu.c.intel;
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 22 08:23:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 08:23:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.961791.1353218 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u78ui-0007VC-5u; Tue, 22 Apr 2025 08:23:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 961791.1353218; Tue, 22 Apr 2025 08:23:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u78uh-0007OH-1B; Tue, 22 Apr 2025 08:23:31 +0000
Received: by outflank-mailman (input) for mailman id 961791;
 Tue, 22 Apr 2025 08:23: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=Qhpm=XI=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u78ud-0004wX-H1
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 08:23:27 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0c0e4951-1f53-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 10:23:20 +0200 (CEST)
Received: from terminus.zytor.com (terminus.zytor.com
 [IPv6:2607:7c80:54:3:0:0:0:136]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53M8MG9P1954391
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Tue, 22 Apr 2025 01:22:42 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0c0e4951-1f53-11f0-9ffb-bf95429c2676
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53M8MG9P1954391
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745310164;
	bh=DiJ//ZCDdr9jGcfbSpj9Ofv6WJfHxK1CVTdlWhlF0ig=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=awo00TyT4cngwFyInD7AfuKbrTVw6bBZi3n6QyYwm0hfsJ7d5DOK6ryUYZ3uscVVA
	 FF+/ZckvDC7vJBMN9CfhH0oB+rd6uUZellPGM3U8hSIrlyK6PBfkibWxmrGRbllYd1
	 mE2ZFVrjThdSNLdX6irdbeka6A0ak4pjCNrLUx38kXIvxj25yQ4iJCUhdh/khFEnXG
	 zYoEbXMPDWF9GI7E0m8RnYVRjYYkqS5swH1ZyZ2jVOmguT3He0hBROzSc2OnEczHY3
	 OzNunzBKTcjX5LDne8JZTMzyp65l9t4ZqXugbpDnuQ/AfCTDwojG2MrD7a94yT3wHk
	 joHUW+H9AE6gw==
From: "Xin Li (Intel)" <xin@zytor.com>
To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
        linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
        netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        acme@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com,
        peterz@infradead.org, namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com
Subject: [RFC PATCH v2 11/34] x86/msr: Remove calling native_{read,write}_msr{,_safe}() in pmu_msr_{read,write}()
Date: Tue, 22 Apr 2025 01:21:52 -0700
Message-ID: <20250422082216.1954310-12-xin@zytor.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250422082216.1954310-1-xin@zytor.com>
References: <20250422082216.1954310-1-xin@zytor.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

hpa found that pmu_msr_write() is actually a completely pointless
function [1]: all it does is shuffle some arguments, then calls
pmu_msr_chk_emulated() and if it returns true AND the emulated flag
is clear then does *exactly the same thing* that the calling code
would have done if pmu_msr_write() itself had returned true.  And
pmu_msr_read() does the equivalent stupidity.

Remove the calls to native_{read,write}_msr{,_safe}() within
pmu_msr_{read,write}().  Instead reuse the existing calling code
that decides whether to call native_{read,write}_msr{,_safe}() based
on the return value from pmu_msr_{read,write}().  Consequently,
eliminate the need to pass an error pointer to pmu_msr_{read,write}().

While at it, refactor pmu_msr_write() to take the MSR value as a u64
argument, replacing the current dual u32 arguments, because the dual
u32 arguments were only used to call native_write_msr{,_safe}(), which
has now been removed.

[1]: https://lore.kernel.org/lkml/0ec48b84-d158-47c6-b14c-3563fd14bcc4@zytor.com/

Suggested-by: H. Peter Anvin (Intel) <hpa@zytor.com>
Sign-off-by: Xin Li (Intel) <xin@zytor.com>
---
 arch/x86/xen/enlighten_pv.c |  6 +++++-
 arch/x86/xen/pmu.c          | 27 ++++-----------------------
 arch/x86/xen/xen-ops.h      |  4 ++--
 3 files changed, 11 insertions(+), 26 deletions(-)

diff --git a/arch/x86/xen/enlighten_pv.c b/arch/x86/xen/enlighten_pv.c
index 9fbe187aff00..1418758b57ff 100644
--- a/arch/x86/xen/enlighten_pv.c
+++ b/arch/x86/xen/enlighten_pv.c
@@ -1132,6 +1132,8 @@ static void set_seg(unsigned int which, unsigned int low, unsigned int high,
 static void xen_do_write_msr(unsigned int msr, unsigned int low,
 			     unsigned int high, int *err)
 {
+	u64 val;
+
 	switch (msr) {
 	case MSR_FS_BASE:
 		set_seg(SEGBASE_FS, low, high, err);
@@ -1158,7 +1160,9 @@ static void xen_do_write_msr(unsigned int msr, unsigned int low,
 		break;
 
 	default:
-		if (!pmu_msr_write(msr, low, high, err)) {
+		val = (u64)high << 32 | low;
+
+		if (!pmu_msr_write(msr, val)) {
 			if (err)
 				*err = native_write_msr_safe(msr, low, high);
 			else
diff --git a/arch/x86/xen/pmu.c b/arch/x86/xen/pmu.c
index 9c1682af620a..95caae97a394 100644
--- a/arch/x86/xen/pmu.c
+++ b/arch/x86/xen/pmu.c
@@ -313,37 +313,18 @@ static bool pmu_msr_chk_emulated(unsigned int msr, uint64_t *val, bool is_read,
 	return true;
 }
 
-bool pmu_msr_read(unsigned int msr, uint64_t *val, int *err)
+bool pmu_msr_read(u32 msr, u64 *val)
 {
 	bool emulated;
 
-	if (!pmu_msr_chk_emulated(msr, val, true, &emulated))
-		return false;
-
-	if (!emulated) {
-		*val = err ? native_read_msr_safe(msr, err)
-			   : native_read_msr(msr);
-	}
-
-	return true;
+	return pmu_msr_chk_emulated(msr, val, true, &emulated) && emulated;
 }
 
-bool pmu_msr_write(unsigned int msr, uint32_t low, uint32_t high, int *err)
+bool pmu_msr_write(u32 msr, u64 val)
 {
-	uint64_t val = ((uint64_t)high << 32) | low;
 	bool emulated;
 
-	if (!pmu_msr_chk_emulated(msr, &val, false, &emulated))
-		return false;
-
-	if (!emulated) {
-		if (err)
-			*err = native_write_msr_safe(msr, low, high);
-		else
-			native_write_msr(msr, low, high);
-	}
-
-	return true;
+	return pmu_msr_chk_emulated(msr, &val, false, &emulated) && emulated;
 }
 
 static u64 xen_amd_read_pmc(int counter)
diff --git a/arch/x86/xen/xen-ops.h b/arch/x86/xen/xen-ops.h
index dc886c3cc24d..a1875e10be31 100644
--- a/arch/x86/xen/xen-ops.h
+++ b/arch/x86/xen/xen-ops.h
@@ -271,8 +271,8 @@ void xen_pmu_finish(int cpu);
 static inline void xen_pmu_init(int cpu) {}
 static inline void xen_pmu_finish(int cpu) {}
 #endif
-bool pmu_msr_read(unsigned int msr, uint64_t *val, int *err);
-bool pmu_msr_write(unsigned int msr, uint32_t low, uint32_t high, int *err);
+bool pmu_msr_read(u32 msr, u64 *val);
+bool pmu_msr_write(u32 msr, u64 val);
 int pmu_apic_update(uint32_t reg);
 u64 xen_read_pmc(int counter);
 
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 22 08:23:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 08:23:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.961792.1353228 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u78uj-0007nG-Cj; Tue, 22 Apr 2025 08:23:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 961792.1353228; Tue, 22 Apr 2025 08:23:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u78ui-0007iB-7L; Tue, 22 Apr 2025 08:23:32 +0000
Received: by outflank-mailman (input) for mailman id 961792;
 Tue, 22 Apr 2025 08:23: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=Qhpm=XI=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u78ue-0004wM-69
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 08:23:28 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0f39a560-1f53-11f0-9eb0-5ba50f476ded;
 Tue, 22 Apr 2025 10:23:25 +0200 (CEST)
Received: from terminus.zytor.com (terminus.zytor.com
 [IPv6:2607:7c80:54:3:0:0:0:136]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53M8MG9b1954391
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Tue, 22 Apr 2025 01:23:07 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0f39a560-1f53-11f0-9eb0-5ba50f476ded
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53M8MG9b1954391
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745310189;
	bh=1txH+adcfOwIr5LH/ZlSlDHGsa/VNPa8LSISbt9l4Ro=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=OxFRBToWvEqJ0D8+VHe17wCVzLMgXTwVfmryl84uMGCcCa1OR1gcYgk3F9JimIkEm
	 Id/7hCRonS1tRSe3XbDtDY2rOOSRAECeUFgk8SnqUTUQVMI7fMsmlmLdA+V1Isnccx
	 NyOxGoeye8+rFjFY7d/LaanWDAMzgutZnK7I8bQcQOzDgKbXuT2nLEFt3l17FoQjbN
	 0MBd1FBVWKYzzM4HdY+mKWx4rA3pjbiDgR4YfpiXTsRCo/G4/quQSJEIDnLLYiZ/pn
	 +gaaR0PJHyRUhR9gBfrfjXO0nxpya9KvdRYx5dSosavK3jrRh2vDAAe1RpFOl3uFKb
	 EUpT5J98djaIA==
From: "Xin Li (Intel)" <xin@zytor.com>
To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
        linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
        netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        acme@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com,
        peterz@infradead.org, namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com
Subject: [RFC PATCH v2 23/34] x86/extable: Remove new dead code in ex_handler_msr()
Date: Tue, 22 Apr 2025 01:22:04 -0700
Message-ID: <20250422082216.1954310-24-xin@zytor.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250422082216.1954310-1-xin@zytor.com>
References: <20250422082216.1954310-1-xin@zytor.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The MSR read APIs no longer expect RAX or EDX:EAX to be cleared upon
returning from #GP caused by MSR read instructions.

The MSR safe APIs no longer assume -EIO being returned in a register
from #GP caused by MSR instructions.

Remove new dead code due to above changes.

Signed-off-by: Xin Li (Intel) <xin@zytor.com>
---
 arch/x86/mm/extable.c | 21 +++++----------------
 1 file changed, 5 insertions(+), 16 deletions(-)

diff --git a/arch/x86/mm/extable.c b/arch/x86/mm/extable.c
index 6bf4c2a43c2c..ea3fe7f32772 100644
--- a/arch/x86/mm/extable.c
+++ b/arch/x86/mm/extable.c
@@ -165,7 +165,7 @@ static bool ex_handler_uaccess(const struct exception_table_entry *fixup,
 }
 
 static bool ex_handler_msr(const struct exception_table_entry *fixup,
-			   struct pt_regs *regs, bool wrmsr, bool safe, int reg)
+			   struct pt_regs *regs, bool wrmsr, bool safe)
 {
 	bool imm_insn = is_msr_imm_insn((void *)regs->ip);
 	u32 msr;
@@ -207,17 +207,6 @@ static bool ex_handler_msr(const struct exception_table_entry *fixup,
 		show_stack_regs(regs);
 	}
 
-	if (!wrmsr) {
-		/* Pretend that the read succeeded and returned 0. */
-		regs->ax = 0;
-
-		if (!imm_insn)
-			regs->dx = 0;
-	}
-
-	if (safe)
-		*pt_regs_nr(regs, reg) = -EIO;
-
 	return ex_handler_default(fixup, regs);
 }
 
@@ -395,13 +384,13 @@ int fixup_exception(struct pt_regs *regs, int trapnr, unsigned long error_code,
 		case EX_TYPE_BPF:
 			return ex_handler_bpf(e, regs);
 		case EX_TYPE_WRMSR:
-			return ex_handler_msr(e, regs, true, false, reg);
+			return ex_handler_msr(e, regs, true, false);
 		case EX_TYPE_RDMSR:
-			return ex_handler_msr(e, regs, false, false, reg);
+			return ex_handler_msr(e, regs, false, false);
 		case EX_TYPE_WRMSR_SAFE:
-			return ex_handler_msr(e, regs, true, true, reg);
+			return ex_handler_msr(e, regs, true, true);
 		case EX_TYPE_RDMSR_SAFE:
-			return ex_handler_msr(e, regs, false, true, reg);
+			return ex_handler_msr(e, regs, false, true);
 		case EX_TYPE_WRMSR_IN_MCE:
 			ex_handler_msr_mce(regs, true);
 			break;
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 22 08:23:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 08:23:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.961793.1353239 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u78uk-00088N-Ol; Tue, 22 Apr 2025 08:23:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 961793.1353239; Tue, 22 Apr 2025 08:23: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 1u78uj-00083w-Mz; Tue, 22 Apr 2025 08:23:33 +0000
Received: by outflank-mailman (input) for mailman id 961793;
 Tue, 22 Apr 2025 08:23: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=Qhpm=XI=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u78ue-0004wX-H7
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 08:23:28 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0c182c7e-1f53-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 10:23:20 +0200 (CEST)
Received: from terminus.zytor.com (terminus.zytor.com
 [IPv6:2607:7c80:54:3:0:0:0:136]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53M8MG9T1954391
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Tue, 22 Apr 2025 01:22:51 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0c182c7e-1f53-11f0-9ffb-bf95429c2676
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53M8MG9T1954391
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745310173;
	bh=EmAyA4H2zym7MMXbzGaqyeyz7QXZZDV9O+Z4+Oh7wSA=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=P7TTfABuMHPAhcQRaJGoDAbjaTPcJUAkbZU5kypZHeWS/AMW1L/3K2v2yCDUtHiyF
	 NSHf1DyvbWITNZpDRj5sbGWdR8CvrQ/XCywXQghInGFqOhC2P6JM/YbpnLVao7rZH6
	 JOvEZQjD0cdY/iFs0oG7WcdBLLgBjXxfuMVsbznGP+03gLNj6TryaD94VK6pPnRQhw
	 Joqd+sPZhGyYu1MUzVX21z1/v/K3WlRsT8j6cO6IkXbUOaOBSw4YNml4XxSFGD01Oa
	 ktEgcbhadMBm/y96Z1Qx2KggyySX9ZJLplswD7wOAepciggZt4HsF7uj0cuZFb4nqI
	 JWhKcTqnwJerg==
From: "Xin Li (Intel)" <xin@zytor.com>
To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
        linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
        netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        acme@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com,
        peterz@infradead.org, namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com
Subject: [RFC PATCH v2 15/34] x86/msr: Replace wrmsr(msr, low, 0) with wrmsrq(msr, low)
Date: Tue, 22 Apr 2025 01:21:56 -0700
Message-ID: <20250422082216.1954310-16-xin@zytor.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250422082216.1954310-1-xin@zytor.com>
References: <20250422082216.1954310-1-xin@zytor.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Signed-off-by: Xin Li (Intel) <xin@zytor.com>
---
 arch/x86/hyperv/hv_apic.c                 | 6 +++---
 arch/x86/include/asm/apic.h               | 2 +-
 arch/x86/include/asm/switch_to.h          | 2 +-
 arch/x86/kernel/cpu/amd.c                 | 2 +-
 arch/x86/kernel/cpu/common.c              | 8 ++++----
 arch/x86/kernel/cpu/resctrl/pseudo_lock.c | 4 ++--
 arch/x86/kernel/cpu/resctrl/rdtgroup.c    | 2 +-
 arch/x86/kernel/cpu/umwait.c              | 4 ++--
 arch/x86/kernel/kvm.c                     | 2 +-
 9 files changed, 16 insertions(+), 16 deletions(-)

diff --git a/arch/x86/hyperv/hv_apic.c b/arch/x86/hyperv/hv_apic.c
index c450e67cb0a4..4d617ee59377 100644
--- a/arch/x86/hyperv/hv_apic.c
+++ b/arch/x86/hyperv/hv_apic.c
@@ -75,10 +75,10 @@ static void hv_apic_write(u32 reg, u32 val)
 {
 	switch (reg) {
 	case APIC_EOI:
-		wrmsr(HV_X64_MSR_EOI, val, 0);
+		wrmsrq(HV_X64_MSR_EOI, val);
 		break;
 	case APIC_TASKPRI:
-		wrmsr(HV_X64_MSR_TPR, val, 0);
+		wrmsrq(HV_X64_MSR_TPR, val);
 		break;
 	default:
 		native_apic_mem_write(reg, val);
@@ -92,7 +92,7 @@ static void hv_apic_eoi_write(void)
 	if (hvp && (xchg(&hvp->apic_assist, 0) & 0x1))
 		return;
 
-	wrmsr(HV_X64_MSR_EOI, APIC_EOI_ACK, 0);
+	wrmsrq(HV_X64_MSR_EOI, APIC_EOI_ACK);
 }
 
 static bool cpu_is_self(int cpu)
diff --git a/arch/x86/include/asm/apic.h b/arch/x86/include/asm/apic.h
index 0174dd548327..68e10e30fe9b 100644
--- a/arch/x86/include/asm/apic.h
+++ b/arch/x86/include/asm/apic.h
@@ -209,7 +209,7 @@ static inline void native_apic_msr_write(u32 reg, u32 v)
 	    reg == APIC_LVR)
 		return;
 
-	wrmsr(APIC_BASE_MSR + (reg >> 4), v, 0);
+	wrmsrq(APIC_BASE_MSR + (reg >> 4), v);
 }
 
 static inline void native_apic_msr_eoi(void)
diff --git a/arch/x86/include/asm/switch_to.h b/arch/x86/include/asm/switch_to.h
index 4f21df7af715..499b1c15cc8b 100644
--- a/arch/x86/include/asm/switch_to.h
+++ b/arch/x86/include/asm/switch_to.h
@@ -61,7 +61,7 @@ static inline void refresh_sysenter_cs(struct thread_struct *thread)
 		return;
 
 	this_cpu_write(cpu_tss_rw.x86_tss.ss1, thread->sysenter_cs);
-	wrmsr(MSR_IA32_SYSENTER_CS, thread->sysenter_cs, 0);
+	wrmsrq(MSR_IA32_SYSENTER_CS, thread->sysenter_cs);
 }
 #endif
 
diff --git a/arch/x86/kernel/cpu/amd.c b/arch/x86/kernel/cpu/amd.c
index 1f7925e45b46..6132a3c529cc 100644
--- a/arch/x86/kernel/cpu/amd.c
+++ b/arch/x86/kernel/cpu/amd.c
@@ -1206,7 +1206,7 @@ void amd_set_dr_addr_mask(unsigned long mask, unsigned int dr)
 	if (per_cpu(amd_dr_addr_mask, cpu)[dr] == mask)
 		return;
 
-	wrmsr(amd_msr_dr_addr_masks[dr], mask, 0);
+	wrmsrq(amd_msr_dr_addr_masks[dr], mask);
 	per_cpu(amd_dr_addr_mask, cpu)[dr] = mask;
 }
 
diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c
index 10da3da5b81f..99d8a8c15ba5 100644
--- a/arch/x86/kernel/cpu/common.c
+++ b/arch/x86/kernel/cpu/common.c
@@ -2019,9 +2019,9 @@ void enable_sep_cpu(void)
 	 */
 
 	tss->x86_tss.ss1 = __KERNEL_CS;
-	wrmsr(MSR_IA32_SYSENTER_CS, tss->x86_tss.ss1, 0);
-	wrmsr(MSR_IA32_SYSENTER_ESP, (unsigned long)(cpu_entry_stack(cpu) + 1), 0);
-	wrmsr(MSR_IA32_SYSENTER_EIP, (unsigned long)entry_SYSENTER_32, 0);
+	wrmsrq(MSR_IA32_SYSENTER_CS, tss->x86_tss.ss1);
+	wrmsrq(MSR_IA32_SYSENTER_ESP, (unsigned long)(cpu_entry_stack(cpu) + 1));
+	wrmsrq(MSR_IA32_SYSENTER_EIP, (unsigned long)entry_SYSENTER_32);
 
 	put_cpu();
 }
@@ -2235,7 +2235,7 @@ static inline void setup_getcpu(int cpu)
 	struct desc_struct d = { };
 
 	if (boot_cpu_has(X86_FEATURE_RDTSCP) || boot_cpu_has(X86_FEATURE_RDPID))
-		wrmsr(MSR_TSC_AUX, cpudata, 0);
+		wrmsrq(MSR_TSC_AUX, cpudata);
 
 	/* Store CPU and node number in limit. */
 	d.limit0 = cpudata;
diff --git a/arch/x86/kernel/cpu/resctrl/pseudo_lock.c b/arch/x86/kernel/cpu/resctrl/pseudo_lock.c
index 185317c6b509..cc534a83f19d 100644
--- a/arch/x86/kernel/cpu/resctrl/pseudo_lock.c
+++ b/arch/x86/kernel/cpu/resctrl/pseudo_lock.c
@@ -905,7 +905,7 @@ int resctrl_arch_measure_cycles_lat_fn(void *_plr)
 	 * Disable hardware prefetchers.
 	 */
 	rdmsr(MSR_MISC_FEATURE_CONTROL, saved_low, saved_high);
-	wrmsr(MSR_MISC_FEATURE_CONTROL, prefetch_disable_bits, 0x0);
+	wrmsrq(MSR_MISC_FEATURE_CONTROL, prefetch_disable_bits);
 	mem_r = READ_ONCE(plr->kmem);
 	/*
 	 * Dummy execute of the time measurement to load the needed
@@ -1001,7 +1001,7 @@ static int measure_residency_fn(struct perf_event_attr *miss_attr,
 	 * Disable hardware prefetchers.
 	 */
 	rdmsr(MSR_MISC_FEATURE_CONTROL, saved_low, saved_high);
-	wrmsr(MSR_MISC_FEATURE_CONTROL, prefetch_disable_bits, 0x0);
+	wrmsrq(MSR_MISC_FEATURE_CONTROL, prefetch_disable_bits);
 
 	/* Initialize rest of local variables */
 	/*
diff --git a/arch/x86/kernel/cpu/resctrl/rdtgroup.c b/arch/x86/kernel/cpu/resctrl/rdtgroup.c
index f4a2ee2a6404..73ed83f1dff8 100644
--- a/arch/x86/kernel/cpu/resctrl/rdtgroup.c
+++ b/arch/x86/kernel/cpu/resctrl/rdtgroup.c
@@ -1707,7 +1707,7 @@ void resctrl_arch_mon_event_config_write(void *_config_info)
 		pr_warn_once("Invalid event id %d\n", config_info->evtid);
 		return;
 	}
-	wrmsr(MSR_IA32_EVT_CFG_BASE + index, config_info->mon_config, 0);
+	wrmsrq(MSR_IA32_EVT_CFG_BASE + index, config_info->mon_config);
 }
 
 static void mbm_config_write_domain(struct rdt_resource *r,
diff --git a/arch/x86/kernel/cpu/umwait.c b/arch/x86/kernel/cpu/umwait.c
index 0050eae153bb..933fcd7ff250 100644
--- a/arch/x86/kernel/cpu/umwait.c
+++ b/arch/x86/kernel/cpu/umwait.c
@@ -33,7 +33,7 @@ static DEFINE_MUTEX(umwait_lock);
 static void umwait_update_control_msr(void * unused)
 {
 	lockdep_assert_irqs_disabled();
-	wrmsr(MSR_IA32_UMWAIT_CONTROL, READ_ONCE(umwait_control_cached), 0);
+	wrmsrq(MSR_IA32_UMWAIT_CONTROL, READ_ONCE(umwait_control_cached));
 }
 
 /*
@@ -71,7 +71,7 @@ static int umwait_cpu_offline(unsigned int cpu)
 	 * the original control MSR value in umwait_init(). So there
 	 * is no race condition here.
 	 */
-	wrmsr(MSR_IA32_UMWAIT_CONTROL, orig_umwait_control_cached, 0);
+	wrmsrq(MSR_IA32_UMWAIT_CONTROL, orig_umwait_control_cached);
 
 	return 0;
 }
diff --git a/arch/x86/kernel/kvm.c b/arch/x86/kernel/kvm.c
index 44a45df7200a..bc9d21d7395f 100644
--- a/arch/x86/kernel/kvm.c
+++ b/arch/x86/kernel/kvm.c
@@ -399,7 +399,7 @@ static void kvm_disable_steal_time(void)
 	if (!has_steal_clock)
 		return;
 
-	wrmsr(MSR_KVM_STEAL_TIME, 0, 0);
+	wrmsrq(MSR_KVM_STEAL_TIME, 0);
 }
 
 static u64 kvm_steal_clock(int cpu)
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 22 08:23:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 08:23:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.961794.1353246 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u78um-00008B-NN; Tue, 22 Apr 2025 08:23:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 961794.1353246; Tue, 22 Apr 2025 08:23: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 1u78ul-0008SG-I9; Tue, 22 Apr 2025 08:23:35 +0000
Received: by outflank-mailman (input) for mailman id 961794;
 Tue, 22 Apr 2025 08:23:29 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Qhpm=XI=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u78uf-0004wM-6Q
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 08:23:29 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0f699cac-1f53-11f0-9eb0-5ba50f476ded;
 Tue, 22 Apr 2025 10:23:26 +0200 (CEST)
Received: from terminus.zytor.com (terminus.zytor.com
 [IPv6:2607:7c80:54:3:0:0:0:136]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53M8MG9a1954391
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Tue, 22 Apr 2025 01:23:05 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0f699cac-1f53-11f0-9eb0-5ba50f476ded
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53M8MG9a1954391
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745310187;
	bh=kSMr7RD7HY/M1n+drsBYA+dTa0bsodjA/Xja0eKYtpA=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=dk8fSv+AkELIlRdpChMel9SZnbgJwXWLUal3Sr5HedtvF0oEaDqZZh6Mdxa7mmUOT
	 pqQdxNOxwQ4ybP6YSHN2p3qgPm+AHwGHY6vRqs34rDOln9kiX04a8OVrfTSTyv9hBb
	 34WIeGV4sB3p1zaJqo+aOqc44RNU8Kq4ppqMimtdoBQAG7VGMAbMWiZKoImvIN0gSV
	 OO41Y95uih4tueaVJRntAe4BEy85pl8eYbyQlzkndESIEuNB0Z85J+RvyIIkgLX7aw
	 WNJLctduOI+9g2lQPfZSVT+8+Ar7uKwRHKuaPTStQaEsQaOM0C52LZpyqgNVVR8jQ/
	 8Uzgb4Yr3XL9w==
From: "Xin Li (Intel)" <xin@zytor.com>
To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
        linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
        netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        acme@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com,
        peterz@infradead.org, namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com
Subject: [RFC PATCH v2 22/34] x86/msr: Utilize the alternatives mechanism to read MSR
Date: Tue, 22 Apr 2025 01:22:03 -0700
Message-ID: <20250422082216.1954310-23-xin@zytor.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250422082216.1954310-1-xin@zytor.com>
References: <20250422082216.1954310-1-xin@zytor.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

To eliminate the indirect call overhead introduced by the pv_ops API,
utilize the alternatives mechanism to read MSR:

    1) When built with !CONFIG_XEN_PV, X86_FEATURE_XENPV becomes a
       disabled feature, preventing the Xen code from being built
       and ensuring the native code is executed unconditionally.

    2) When built with CONFIG_XEN_PV:

       2.1) If not running on the Xen hypervisor (!X86_FEATURE_XENPV),
            the kernel runtime binary is patched to unconditionally
            jump to the native MSR read code.

       2.2) If running on the Xen hypervisor (X86_FEATURE_XENPV), the
            kernel runtime binary is patched to unconditionally jump
            to the Xen MSR read code.

The alternatives mechanism is also used to choose the new immediate
form MSR read instruction when it's available.

Consequently, remove the pv_ops MSR read APIs and the Xen callbacks.

Suggested-by: H. Peter Anvin (Intel) <hpa@zytor.com>
Signed-off-by: Xin Li (Intel) <xin@zytor.com>
---
 arch/x86/include/asm/msr.h            | 277 +++++++++++++++++++-------
 arch/x86/include/asm/paravirt.h       |  40 ----
 arch/x86/include/asm/paravirt_types.h |   9 -
 arch/x86/kernel/paravirt.c            |   2 -
 arch/x86/xen/enlighten_pv.c           |  48 ++---
 arch/x86/xen/xen-asm.S                |  49 +++++
 arch/x86/xen/xen-ops.h                |   7 +
 7 files changed, 279 insertions(+), 153 deletions(-)

diff --git a/arch/x86/include/asm/msr.h b/arch/x86/include/asm/msr.h
index bd3bdb3c3d23..5271cb002b23 100644
--- a/arch/x86/include/asm/msr.h
+++ b/arch/x86/include/asm/msr.h
@@ -75,6 +75,7 @@ static inline void do_trace_rdpmc(u32 msr, u64 val, int failed) {}
 #endif
 
 #ifdef CONFIG_XEN_PV
+extern void asm_xen_read_msr(void);
 extern void asm_xen_write_msr(void);
 extern u64 xen_read_pmc(int counter);
 #endif
@@ -88,6 +89,8 @@ extern u64 xen_read_pmc(int counter);
 
 /* The GNU Assembler (Gas) with Binutils 2.41 adds the .insn directive support */
 #if defined(CONFIG_AS_IS_GNU) && CONFIG_AS_VERSION >= 24100
+#define ASM_RDMSR_IMM			\
+	" .insn VEX.128.F2.M7.W0 0xf6 /0, %[msr]%{:u32}, %[val]\n\t"
 #define ASM_WRMSRNS_IMM			\
 	" .insn VEX.128.F3.M7.W0 0xf6 /0, %[val], %[msr]%{:u32}\n\t"
 #else
@@ -97,10 +100,17 @@ extern u64 xen_read_pmc(int counter);
  * The register operand is encoded as %rax because all uses of the immediate
  * form MSR access instructions reference %rax as the register operand.
  */
+#define ASM_RDMSR_IMM			\
+	" .byte 0xc4,0xe7,0x7b,0xf6,0xc0; .long %c[msr]"
 #define ASM_WRMSRNS_IMM			\
 	" .byte 0xc4,0xe7,0x7a,0xf6,0xc0; .long %c[msr]"
 #endif
 
+#define RDMSR_AND_SAVE_RESULT		\
+	"rdmsr\n\t"			\
+	"shl $0x20, %%rdx\n\t"		\
+	"or %%rdx, %%rax\n\t"
+
 #define PREPARE_RDX_FOR_WRMSR		\
 	"mov %%rax, %%rdx\n\t"		\
 	"shr $0x20, %%rdx\n\t"
@@ -127,35 +137,135 @@ static __always_inline bool is_msr_imm_insn(void *ip)
 #endif
 }
 
-static __always_inline u64 __rdmsr(u32 msr)
+/*
+ * There are two sets of APIs for MSR accesses: native APIs and generic APIs.
+ * Native MSR APIs execute MSR instructions directly, regardless of whether the
+ * CPU is paravirtualized or native.  Generic MSR APIs determine the appropriate
+ * MSR access method at runtime, allowing them to be used generically on both
+ * paravirtualized and native CPUs.
+ *
+ * When the compiler can determine the MSR number at compile time, the APIs
+ * with the suffix _constant() are used to enable the immediate form MSR
+ * instructions when available.  The APIs with the suffix _variable() are
+ * used when the MSR number is not known until run time.
+ *
+ * Below is a diagram illustrating the derivation of the MSR read APIs:
+ *
+ *      __native_rdmsrq_variable()    __native_rdmsrq_constant()
+ *                         \           /
+ *                          \         /
+ *                         __native_rdmsrq()   -----------------------
+ *                            /     \                                |
+ *                           /       \                               |
+ *               native_rdmsrq()    native_read_msr_safe()           |
+ *                   /    \                                          |
+ *                  /      \                                         |
+ *      native_rdmsr()    native_read_msr()                          |
+ *                                                                   |
+ *                                                                   |
+ *                                                                   |
+ *                    __xenpv_rdmsrq()                               |
+ *                         |                                         |
+ *                         |                                         |
+ *                      __rdmsrq()   <--------------------------------
+ *                       /    \
+ *                      /      \
+ *                 rdmsrq()   rdmsrq_safe()
+ *                    /          \
+ *                   /            \
+ *                rdmsr()        rdmsr_safe()
+ */
+
+static __always_inline bool __native_rdmsrq_variable(u32 msr, u64 *val, int type)
 {
-	DECLARE_ARGS(val, low, high);
+#ifdef CONFIG_X86_64
+	BUILD_BUG_ON(__builtin_constant_p(msr));
 
-	asm volatile("1: rdmsr\n"
-		     "2:\n"
-		     _ASM_EXTABLE_TYPE(1b, 2b, EX_TYPE_RDMSR)
-		     : EAX_EDX_RET(val, low, high) : "c" (msr));
+	asm_inline volatile goto(
+		"1:\n"
+		RDMSR_AND_SAVE_RESULT
+		_ASM_EXTABLE_TYPE(1b, %l[badmsr], %c[type])	/* For RDMSR */
 
-	return EAX_EDX_VAL(val, low, high);
+		: [val] "=a" (*val)
+		: "c" (msr), [type] "i" (type)
+		: "rdx"
+		: badmsr);
+#else
+	asm_inline volatile goto(
+		"1: rdmsr\n\t"
+		_ASM_EXTABLE_TYPE(1b, %l[badmsr], %c[type])	/* For RDMSR */
+
+		: "=A" (*val)
+		: "c" (msr), [type] "i" (type)
+		:
+		: badmsr);
+#endif
+
+	return false;
+
+badmsr:
+	*val = 0;
+
+	return true;
 }
 
-#define native_rdmsr(msr, val1, val2)			\
-do {							\
-	u64 __val = __rdmsr((msr));			\
-	(void)((val1) = (u32)__val);			\
-	(void)((val2) = (u32)(__val >> 32));		\
-} while (0)
+#ifdef CONFIG_X86_64
+static __always_inline bool __native_rdmsrq_constant(u32 msr, u64 *val, int type)
+{
+	BUILD_BUG_ON(!__builtin_constant_p(msr));
+
+	asm_inline volatile goto(
+		"1:\n"
+		ALTERNATIVE("mov %[msr], %%ecx\n\t"
+			    "2:\n"
+			    RDMSR_AND_SAVE_RESULT,
+			    ASM_RDMSR_IMM,
+			    X86_FEATURE_MSR_IMM)
+		_ASM_EXTABLE_TYPE(1b, %l[badmsr], %c[type])	/* For RDMSR immediate */
+		_ASM_EXTABLE_TYPE(2b, %l[badmsr], %c[type])	/* For RDMSR */
+
+		: [val] "=a" (*val)
+		: [msr] "i" (msr), [type] "i" (type)
+		: "ecx", "rdx"
+		: badmsr);
+
+	return false;
+
+badmsr:
+	*val = 0;
+
+	return true;
+}
+#endif
+
+static __always_inline bool __native_rdmsrq(u32 msr, u64 *val, int type)
+{
+#ifdef CONFIG_X86_64
+	if (__builtin_constant_p(msr))
+		return __native_rdmsrq_constant(msr, val, type);
+#endif
+
+	return __native_rdmsrq_variable(msr, val, type);
+}
 
 static __always_inline u64 native_rdmsrq(u32 msr)
 {
-	return __rdmsr(msr);
+	u64 val = 0;
+
+	__native_rdmsrq(msr, &val, EX_TYPE_RDMSR);
+	return val;
 }
 
+#define native_rdmsr(msr, low, high)			\
+do {							\
+	u64 __val = native_rdmsrq(msr);			\
+	(void)((low) = (u32)__val);			\
+	(void)((high) = (u32)(__val >> 32));		\
+} while (0)
+
 static inline u64 native_read_msr(u32 msr)
 {
-	u64 val;
-
-	val = __rdmsr(msr);
+	u64 val = native_rdmsrq(msr);
 
 	if (tracepoint_enabled(read_msr))
 		do_trace_read_msr(msr, val, 0);
@@ -163,36 +273,91 @@ static inline u64 native_read_msr(u32 msr)
 	return val;
 }
 
-static inline int native_read_msr_safe(u32 msr, u64 *p)
+static inline int native_read_msr_safe(u32 msr, u64 *val)
 {
 	int err;
-	DECLARE_ARGS(val, low, high);
 
-	asm volatile("1: rdmsr ; xor %[err],%[err]\n"
-		     "2:\n\t"
-		     _ASM_EXTABLE_TYPE_REG(1b, 2b, EX_TYPE_RDMSR_SAFE, %[err])
-		     : [err] "=r" (err), EAX_EDX_RET(val, low, high)
-		     : "c" (msr));
-	if (tracepoint_enabled(read_msr))
-		do_trace_read_msr(msr, EAX_EDX_VAL(val, low, high), err);
+	err = __native_rdmsrq(msr, val, EX_TYPE_RDMSR_SAFE) ? -EIO : 0;
 
-	*p = EAX_EDX_VAL(val, low, high);
+	if (tracepoint_enabled(read_msr))
+		do_trace_read_msr(msr, *val, err);
 
 	return err;
 }
 
+#ifdef CONFIG_XEN_PV
+/* No plan to support immediate form MSR instructions in Xen */
+static __always_inline bool __xenpv_rdmsrq(u32 msr, u64 *val, int type)
+{
+	asm_inline volatile goto(
+		"1: call asm_xen_read_msr\n\t"
+		_ASM_EXTABLE_TYPE(1b, %l[badmsr], %c[type])	/* For CALL */
+
+		: [val] "=a" (*val), ASM_CALL_CONSTRAINT
+		: "c" (msr), [type] "i" (type)
+		: "rdx"
+		: badmsr);
+
+	return false;
+
+badmsr:
+	*val = 0;
+
+	return true;
+}
+#endif
+
+static __always_inline bool __rdmsrq(u32 msr, u64 *val, int type)
+{
+	bool ret;
+
+#ifdef CONFIG_XEN_PV
+	if (cpu_feature_enabled(X86_FEATURE_XENPV))
+		return __xenpv_rdmsrq(msr, val, type);
+#endif
+
+	/*
+	 * 1) When built with !CONFIG_XEN_PV.
+	 * 2) When built with CONFIG_XEN_PV but not running on Xen hypervisor.
+	 */
+	ret = __native_rdmsrq(msr, val, type);
+
+	if (tracepoint_enabled(read_msr))
+		do_trace_read_msr(msr, *val, ret ? -EIO : 0);
+
+	return ret;
+}
+
+#define rdmsrq(msr, val)				\
+do {							\
+	u64 ___val = 0;					\
+	__rdmsrq((msr), &___val, EX_TYPE_RDMSR);	\
+	(val) = ___val;					\
+} while (0)
+
+#define rdmsr(msr, low, high)				\
+do {							\
+	u64 __val = 0;					\
+	rdmsrq((msr), __val);				\
+	(void)((low) = (u32)__val);			\
+	(void)((high) = (u32)(__val >> 32));		\
+} while (0)
+
+static __always_inline int rdmsrq_safe(u32 msr, u64 *val)
+{
+	return __rdmsrq(msr, val, EX_TYPE_RDMSR_SAFE) ? -EIO : 0;
+}
+
+#define rdmsr_safe(msr, low, high)			\
+({							\
+	u64 __val = 0;					\
+	int __err = rdmsrq_safe((msr), &__val);		\
+	(*low) = (u32)__val;				\
+	(*high) = (u32)(__val >> 32);			\
+	__err;						\
+})
+
 /*
- * There are two sets of APIs for MSR accesses: native APIs and generic APIs.
- * Native MSR APIs execute MSR instructions directly, regardless of whether the
- * CPU is paravirtualized or native.  Generic MSR APIs determine the appropriate
- * MSR access method at runtime, allowing them to be used generically on both
- * paravirtualized and native CPUs.
- *
- * When the compiler can determine the MSR number at compile time, the APIs
- * with the suffix _constant() are used to enable the immediate form MSR
- * instructions when available.  The APIs with the suffix _variable() are
- * used when the MSR number is not known until run time.
- *
  * Below is a diagram illustrating the derivation of the MSR write APIs:
  *
  *      __native_wrmsrq_variable()    __native_wrmsrq_constant()
@@ -420,42 +585,6 @@ static __always_inline u64 rdpmcq(int counter)
 	return native_rdpmcq(counter);
 }
 
-#ifdef CONFIG_PARAVIRT_XXL
-#include <asm/paravirt.h>
-#else
-#include <linux/errno.h>
-/*
- * Access to machine-specific registers (available on 586 and better only)
- * Note: the rd* operations modify the parameters directly (without using
- * pointer indirection), this allows gcc to optimize better
- */
-
-#define rdmsr(msr, low, high)					\
-do {								\
-	u64 __val = native_read_msr((msr));			\
-	(void)((low) = (u32)__val);				\
-	(void)((high) = (u32)(__val >> 32));			\
-} while (0)
-
-#define rdmsrq(msr, val)			\
-	((val) = native_read_msr((msr)))
-
-/* rdmsr with exception handling */
-#define rdmsr_safe(msr, low, high)				\
-({								\
-	u64 __val;						\
-	int __err = native_read_msr_safe((msr), &__val);	\
-	(*low) = (u32)__val;					\
-	(*high) = (u32)(__val >> 32);				\
-	__err;							\
-})
-
-static inline int rdmsrq_safe(u32 msr, u64 *p)
-{
-	return native_read_msr_safe(msr, p);
-}
-#endif	/* !CONFIG_PARAVIRT_XXL */
-
 struct msr __percpu *msrs_alloc(void);
 void msrs_free(struct msr __percpu *msrs);
 int msr_set_bit(u32 msr, u8 bit);
diff --git a/arch/x86/include/asm/paravirt.h b/arch/x86/include/asm/paravirt.h
index 6634f6cf801f..e248a77b719f 100644
--- a/arch/x86/include/asm/paravirt.h
+++ b/arch/x86/include/asm/paravirt.h
@@ -175,46 +175,6 @@ static inline void __write_cr4(unsigned long x)
 	PVOP_VCALL1(cpu.write_cr4, x);
 }
 
-static inline u64 paravirt_read_msr(unsigned msr)
-{
-	return PVOP_CALL1(u64, cpu.read_msr, msr);
-}
-
-static inline u64 paravirt_read_msr_safe(unsigned msr, int *err)
-{
-	return PVOP_CALL2(u64, cpu.read_msr_safe, msr, err);
-}
-
-#define rdmsr(msr, val1, val2)			\
-do {						\
-	u64 _l = paravirt_read_msr(msr);	\
-	val1 = (u32)_l;				\
-	val2 = _l >> 32;			\
-} while (0)
-
-#define rdmsrq(msr, val)			\
-do {						\
-	val = paravirt_read_msr(msr);		\
-} while (0)
-
-/* rdmsr with exception handling */
-#define rdmsr_safe(msr, a, b)				\
-({							\
-	int _err;					\
-	u64 _l = paravirt_read_msr_safe(msr, &_err);	\
-	(*a) = (u32)_l;					\
-	(*b) = _l >> 32;				\
-	_err;						\
-})
-
-static inline int rdmsrq_safe(unsigned msr, u64 *p)
-{
-	int err;
-
-	*p = paravirt_read_msr_safe(msr, &err);
-	return err;
-}
-
 static inline void paravirt_alloc_ldt(struct desc_struct *ldt, unsigned entries)
 {
 	PVOP_VCALL2(cpu.alloc_ldt, ldt, entries);
diff --git a/arch/x86/include/asm/paravirt_types.h b/arch/x86/include/asm/paravirt_types.h
index 18bb0e5bd22f..ae31ecf08933 100644
--- a/arch/x86/include/asm/paravirt_types.h
+++ b/arch/x86/include/asm/paravirt_types.h
@@ -90,15 +90,6 @@ struct pv_cpu_ops {
 	void (*cpuid)(unsigned int *eax, unsigned int *ebx,
 		      unsigned int *ecx, unsigned int *edx);
 
-	/* Unsafe MSR operations.  These will warn or panic on failure. */
-	u64 (*read_msr)(unsigned int msr);
-
-	/*
-	 * Safe MSR operations.
-	 * Returns 0 or -EIO.
-	 */
-	int (*read_msr_safe)(unsigned int msr, u64 *val);
-
 	void (*start_context_switch)(struct task_struct *prev);
 	void (*end_context_switch)(struct task_struct *next);
 #endif
diff --git a/arch/x86/kernel/paravirt.c b/arch/x86/kernel/paravirt.c
index 62bf66f61821..9f5eb8a78040 100644
--- a/arch/x86/kernel/paravirt.c
+++ b/arch/x86/kernel/paravirt.c
@@ -128,8 +128,6 @@ struct paravirt_patch_template pv_ops = {
 	.cpu.read_cr0		= native_read_cr0,
 	.cpu.write_cr0		= native_write_cr0,
 	.cpu.write_cr4		= native_write_cr4,
-	.cpu.read_msr		= native_read_msr,
-	.cpu.read_msr_safe	= native_read_msr_safe,
 	.cpu.load_tr_desc	= native_load_tr_desc,
 	.cpu.set_ldt		= native_set_ldt,
 	.cpu.load_gdt		= native_load_gdt,
diff --git a/arch/x86/xen/enlighten_pv.c b/arch/x86/xen/enlighten_pv.c
index 4672de7fc084..267e241b9236 100644
--- a/arch/x86/xen/enlighten_pv.c
+++ b/arch/x86/xen/enlighten_pv.c
@@ -1086,19 +1086,26 @@ static void xen_write_cr4(unsigned long cr4)
 	native_write_cr4(cr4);
 }
 
-static u64 xen_do_read_msr(unsigned int msr, int *err)
+/*
+ * Return true in xen_rdmsr_ret_type to indicate the requested MSR read has
+ * been done successfully.
+ */
+struct xen_rdmsr_ret_type xen_read_msr(u32 msr)
 {
-	u64 val = 0;	/* Avoid uninitialized value for safe variant. */
-	bool emulated;
+	struct xen_rdmsr_ret_type ret;
 
-	if (pmu_msr_chk_emulated(msr, &val, true, &emulated) && emulated)
-		return val;
+	ret.done = true;
 
-	if (err)
-		*err = native_read_msr_safe(msr, &val);
-	else
-		val = native_read_msr(msr);
+	if (pmu_msr_chk_emulated(msr, &ret.val, true, &ret.done) && ret.done)
+		return ret;
+
+	ret.val = 0;
+	ret.done = false;
+	return ret;
+}
 
+u64 xen_read_msr_fixup(u32 msr, u64 val)
+{
 	switch (msr) {
 	case MSR_IA32_APICBASE:
 		val &= ~X2APIC_ENABLE;
@@ -1107,7 +1114,11 @@ static u64 xen_do_read_msr(unsigned int msr, int *err)
 		else
 			val &= ~MSR_IA32_APICBASE_BSP;
 		break;
+
+	default:
+		break;
 	}
+
 	return val;
 }
 
@@ -1159,21 +1170,6 @@ bool xen_write_msr(u32 msr, u64 val)
 	}
 }
 
-static int xen_read_msr_safe(unsigned int msr, u64 *val)
-{
-	int err;
-
-	*val = xen_do_read_msr(msr, &err);
-	return err;
-}
-
-static u64 xen_read_msr(unsigned int msr)
-{
-	int err;
-
-	return xen_do_read_msr(msr, xen_msr_safe ? &err : NULL);
-}
-
 /* This is called once we have the cpu_possible_mask */
 void __init xen_setup_vcpu_info_placement(void)
 {
@@ -1208,10 +1204,6 @@ static const typeof(pv_ops) xen_cpu_ops __initconst = {
 
 		.write_cr4 = xen_write_cr4,
 
-		.read_msr = xen_read_msr,
-
-		.read_msr_safe = xen_read_msr_safe,
-
 		.load_tr_desc = paravirt_nop,
 		.set_ldt = xen_set_ldt,
 		.load_gdt = xen_load_gdt,
diff --git a/arch/x86/xen/xen-asm.S b/arch/x86/xen/xen-asm.S
index eecce47fbe49..62270ef85c56 100644
--- a/arch/x86/xen/xen-asm.S
+++ b/arch/x86/xen/xen-asm.S
@@ -406,3 +406,52 @@ SYM_CODE_END(xen_entry_SYSCALL_compat)
 	RET
 SYM_FUNC_END(asm_xen_write_msr)
 EXPORT_SYMBOL_GPL(asm_xen_write_msr)
+
+/*
+ * MSR number in %ecx, MSR value will be returned in %rax.
+ *
+ * The prototype of the Xen C code:
+ * 	struct { u64 val, bool done } xen_read_msr(u32 msr)
+ */
+SYM_FUNC_START(asm_xen_read_msr)
+	ENDBR
+	FRAME_BEGIN
+	XEN_SAVE_CALLEE_REGS_FOR_MSR
+	mov %ecx, %edi		/* MSR number */
+	call xen_read_msr
+	test %dl, %dl		/* %dl=1, i.e., ZF=0, meaning successfully done */
+	XEN_RESTORE_CALLEE_REGS_FOR_MSR
+	jnz 2f
+
+	/*
+	 * Falls through to the native RDMSR instruction if xen_read_msr() failed,
+	 * i.e., the MSR access should be executed natively, which will trigger a
+	 * #GP fault...
+	 */
+1:	rdmsr
+
+	/*
+	 * Note, #GP on RDMSR is reflected to the caller of this function through
+	 * EX_TYPE_FUNC_REWIND, which enforces a coupling between the caller and
+	 * callee, IOW the callee is able to calculate the address of the CALL
+	 * instruction in the caller that invoked it.
+	 *
+	 * The top of the stack points directly at the return address;
+	 * back up by 5 bytes (length of the CALL instruction in the caller) from
+	 * the return address.
+	 */
+	_ASM_EXTABLE_FUNC_REWIND(1b, -5, FRAME_OFFSET / (BITS_PER_LONG / 8))
+
+	shl $0x20, %rdx
+	or %rdx, %rax
+
+	XEN_SAVE_CALLEE_REGS_FOR_MSR
+	mov %ecx, %edi
+	mov %rax, %rsi
+	call xen_read_msr_fixup
+	XEN_RESTORE_CALLEE_REGS_FOR_MSR
+
+2:	FRAME_END
+	RET
+SYM_FUNC_END(asm_xen_read_msr)
+EXPORT_SYMBOL_GPL(asm_xen_read_msr)
diff --git a/arch/x86/xen/xen-ops.h b/arch/x86/xen/xen-ops.h
index 56712242262a..483526ec13c6 100644
--- a/arch/x86/xen/xen-ops.h
+++ b/arch/x86/xen/xen-ops.h
@@ -146,7 +146,14 @@ __visible unsigned long xen_read_cr2_direct(void);
 /* These are not functions, and cannot be called normally */
 __visible void xen_iret(void);
 
+struct xen_rdmsr_ret_type {
+	u64 val;
+	bool done;
+};
+
 extern bool xen_write_msr(u32 msr, u64 val);
+extern struct xen_rdmsr_ret_type xen_read_msr(u32 msr);
+extern u64 xen_read_msr_fixup(u32 msr, u64 val);
 
 extern int xen_panic_handler_init(void);
 
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 22 08:23:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 08:23:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.961795.1353257 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u78uo-0000Q9-2b; Tue, 22 Apr 2025 08:23:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 961795.1353257; Tue, 22 Apr 2025 08:23: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 1u78um-0000JY-SX; Tue, 22 Apr 2025 08:23:36 +0000
Received: by outflank-mailman (input) for mailman id 961795;
 Tue, 22 Apr 2025 08:23: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=Qhpm=XI=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u78uf-0004wX-HK
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 08:23:29 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0a775dff-1f53-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 10:23:18 +0200 (CEST)
Received: from terminus.zytor.com (terminus.zytor.com
 [IPv6:2607:7c80:54:3:0:0:0:136]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53M8MG9V1954391
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Tue, 22 Apr 2025 01:22:55 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0a775dff-1f53-11f0-9ffb-bf95429c2676
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53M8MG9V1954391
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745310176;
	bh=vxOJJAeQ3QVhVHFsGY7fwS1GjjJpZ7N17Khlb3T0KJ4=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=Jy0JHc0dkXPO6+PoCsc/ghqsBA98GapdHusalbDHv2JvwwmKYBCTsptia25WKTvJ0
	 DCpTD+oAXTIPBb7rYWih1BxLvxPo48WMKJkz4pfTLESRumk2xbAyq93d1bV+CH+Ghy
	 4kZiCKbITI8t79BKx4lgQegjLXupqHXLtB9UVMI5Hqy0yqQAIiuEwWktp8HJ4Sok5I
	 X9gUdMcrA4RUi3L2Nz/snJKwMnjwlvFWMUDDQqbAcUI0GovT4A6cTbBKIrdrGnZwvg
	 RaaXcFf0yDxPeY+VwJFXb56xtFUYandu9CX0IvawELRbNE0SssJXJp8G8FEpbxN/2x
	 hmBOaqa2bEMnA==
From: "Xin Li (Intel)" <xin@zytor.com>
To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
        linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
        netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        acme@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com,
        peterz@infradead.org, namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com
Subject: [RFC PATCH v2 17/34] x86/cpufeatures: Add a CPU feature bit for MSR immediate form instructions
Date: Tue, 22 Apr 2025 01:21:58 -0700
Message-ID: <20250422082216.1954310-18-xin@zytor.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250422082216.1954310-1-xin@zytor.com>
References: <20250422082216.1954310-1-xin@zytor.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The immediate form of MSR access instructions are primarily motivated
by performance, not code size: by having the MSR number in an immediate,
it is available *much* earlier in the pipeline, which allows the
hardware much more leeway about how a particular MSR is handled.

Use a scattered CPU feature bit for MSR immediate form instructions.

Suggested-by: Borislav Petkov (AMD) <bp@alien8.de>
Signed-off-by: Xin Li (Intel) <xin@zytor.com>
---
 arch/x86/include/asm/cpufeatures.h | 1 +
 arch/x86/kernel/cpu/scattered.c    | 1 +
 2 files changed, 2 insertions(+)

diff --git a/arch/x86/include/asm/cpufeatures.h b/arch/x86/include/asm/cpufeatures.h
index 7642310276a8..1dc6dc794018 100644
--- a/arch/x86/include/asm/cpufeatures.h
+++ b/arch/x86/include/asm/cpufeatures.h
@@ -482,6 +482,7 @@
 #define X86_FEATURE_AMD_WORKLOAD_CLASS	(21*32+ 7) /* Workload Classification */
 #define X86_FEATURE_PREFER_YMM		(21*32+ 8) /* Avoid ZMM registers due to downclocking */
 #define X86_FEATURE_APX			(21*32+ 9) /* Advanced Performance Extensions */
+#define X86_FEATURE_MSR_IMM		(21*32+10) /* MSR immediate form instructions */
 
 /*
  * BUG word(s)
diff --git a/arch/x86/kernel/cpu/scattered.c b/arch/x86/kernel/cpu/scattered.c
index dbf6d71bdf18..c63ddbf35a71 100644
--- a/arch/x86/kernel/cpu/scattered.c
+++ b/arch/x86/kernel/cpu/scattered.c
@@ -27,6 +27,7 @@ static const struct cpuid_bit cpuid_bits[] = {
 	{ X86_FEATURE_APERFMPERF,		CPUID_ECX,  0, 0x00000006, 0 },
 	{ X86_FEATURE_EPB,			CPUID_ECX,  3, 0x00000006, 0 },
 	{ X86_FEATURE_INTEL_PPIN,		CPUID_EBX,  0, 0x00000007, 1 },
+	{ X86_FEATURE_MSR_IMM,			CPUID_ECX,  5, 0x00000007, 1 },
 	{ X86_FEATURE_APX,			CPUID_EDX, 21, 0x00000007, 1 },
 	{ X86_FEATURE_RRSBA_CTRL,		CPUID_EDX,  2, 0x00000007, 2 },
 	{ X86_FEATURE_BHI_CTRL,			CPUID_EDX,  4, 0x00000007, 2 },
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 22 08:23:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 08:23:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.961796.1353266 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u78ur-0000zs-3k; Tue, 22 Apr 2025 08:23:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 961796.1353266; Tue, 22 Apr 2025 08:23: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 1u78uq-0000tH-29; Tue, 22 Apr 2025 08:23:40 +0000
Received: by outflank-mailman (input) for mailman id 961796;
 Tue, 22 Apr 2025 08:23: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=Qhpm=XI=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u78ug-0004wX-HT
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 08:23:30 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0cbc136b-1f53-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 10:23:21 +0200 (CEST)
Received: from terminus.zytor.com (terminus.zytor.com
 [IPv6:2607:7c80:54:3:0:0:0:136]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53M8MG9L1954391
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Tue, 22 Apr 2025 01:22:34 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0cbc136b-1f53-11f0-9ffb-bf95429c2676
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53M8MG9L1954391
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745310156;
	bh=SmxUyQE70FAaQfnW45bmQwaH3mwMqOlVkW3bcWeB26U=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=iINnLEAJhcfm25VHl9BH+Xo0l16Q/sZPGlx7+WlqwP0ehPqqqkvu6yHy+O8PgHs+U
	 HfKtD70R5fYl6gfI4Aq77Ni0VspmRxRN8t/+ITP8PDqwROmTzqcDXDTKOUl0q52O/x
	 kNkqR3HxfpOlmjRDDomZzOrYqYYw57goThrvNGJJID8guCi8b7ijNhaYFxhN1wAMhF
	 L3BQU2gHq7JcftvX/oI1VX96HpWG/uYVG1kvop7kafKputBaothCF8urBXatakpG1d
	 lsmMt0d4XXmNk6/s+RcushWv8vPzSElNBFN11k4tscFnEQOF1BooWUiLW6lx3kHW43
	 sf5HDD0ajYtew==
From: "Xin Li (Intel)" <xin@zytor.com>
To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
        linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
        netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        acme@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com,
        peterz@infradead.org, namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com
Subject: [RFC PATCH v2 07/34] x86/msr: Convert __wrmsr() uses to native_wrmsr{,q}() uses
Date: Tue, 22 Apr 2025 01:21:48 -0700
Message-ID: <20250422082216.1954310-8-xin@zytor.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250422082216.1954310-1-xin@zytor.com>
References: <20250422082216.1954310-1-xin@zytor.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

__wrmsr() is the lowest level primitive MSR write API, and its direct
use is NOT preferred.  Use its wrapper function native_wrmsrq() instead.

No functional change intended.

This change also prepares for using the alternatives mechanism to access
MSRs: uses of native_wrmsr{,q}() don't need to change, but the approaches
how they perform MSR operations are binary patched during boot time upon
availability of MSR instructions.

Signed-off-by: Xin Li (Intel) <xin@zytor.com>
---

Change in v2:
* Use native_wrmsr() where natural [rmid_p, closid_p] high/lo parameters
  can be used, without the shift-uglification (Ingo).
---
 arch/x86/events/amd/brs.c                 | 2 +-
 arch/x86/include/asm/apic.h               | 2 +-
 arch/x86/include/asm/msr.h                | 6 ++++--
 arch/x86/kernel/cpu/mce/core.c            | 2 +-
 arch/x86/kernel/cpu/resctrl/pseudo_lock.c | 6 +++---
 5 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/arch/x86/events/amd/brs.c b/arch/x86/events/amd/brs.c
index ec4e8a4cace4..3f5ecfd80d1e 100644
--- a/arch/x86/events/amd/brs.c
+++ b/arch/x86/events/amd/brs.c
@@ -44,7 +44,7 @@ static inline unsigned int brs_to(int idx)
 static __always_inline void set_debug_extn_cfg(u64 val)
 {
 	/* bits[4:3] must always be set to 11b */
-	__wrmsr(MSR_AMD_DBG_EXTN_CFG, val | 3ULL << 3, val >> 32);
+	native_wrmsrq(MSR_AMD_DBG_EXTN_CFG, val | 3ULL << 3);
 }
 
 static __always_inline u64 get_debug_extn_cfg(void)
diff --git a/arch/x86/include/asm/apic.h b/arch/x86/include/asm/apic.h
index 1c136f54651c..0174dd548327 100644
--- a/arch/x86/include/asm/apic.h
+++ b/arch/x86/include/asm/apic.h
@@ -214,7 +214,7 @@ static inline void native_apic_msr_write(u32 reg, u32 v)
 
 static inline void native_apic_msr_eoi(void)
 {
-	__wrmsr(APIC_BASE_MSR + (APIC_EOI >> 4), APIC_EOI_ACK, 0);
+	native_wrmsrq(APIC_BASE_MSR + (APIC_EOI >> 4), APIC_EOI_ACK);
 }
 
 static inline u32 native_apic_msr_read(u32 reg)
diff --git a/arch/x86/include/asm/msr.h b/arch/x86/include/asm/msr.h
index 33cf506e2fd6..b50cbd3299b3 100644
--- a/arch/x86/include/asm/msr.h
+++ b/arch/x86/include/asm/msr.h
@@ -149,10 +149,12 @@ static inline u64 native_read_msr_safe(u32 msr, int *err)
 static inline void notrace
 native_write_msr(u32 msr, u32 low, u32 high)
 {
-	__wrmsr(msr, low, high);
+	u64 val = (u64)high << 32 | low;
+
+	native_wrmsrq(msr, val);
 
 	if (tracepoint_enabled(write_msr))
-		do_trace_write_msr(msr, ((u64)high << 32 | low), 0);
+		do_trace_write_msr(msr, val, 0);
 }
 
 /* Can be uninlined because referenced by paravirt */
diff --git a/arch/x86/kernel/cpu/mce/core.c b/arch/x86/kernel/cpu/mce/core.c
index 255927f0284e..1ae75ec7ac95 100644
--- a/arch/x86/kernel/cpu/mce/core.c
+++ b/arch/x86/kernel/cpu/mce/core.c
@@ -1306,7 +1306,7 @@ static noinstr bool mce_check_crashing_cpu(void)
 		}
 
 		if (mcgstatus & MCG_STATUS_RIPV) {
-			__wrmsr(MSR_IA32_MCG_STATUS, 0, 0);
+			native_wrmsrq(MSR_IA32_MCG_STATUS, 0);
 			return true;
 		}
 	}
diff --git a/arch/x86/kernel/cpu/resctrl/pseudo_lock.c b/arch/x86/kernel/cpu/resctrl/pseudo_lock.c
index 276ffab194f6..9ab033d6856a 100644
--- a/arch/x86/kernel/cpu/resctrl/pseudo_lock.c
+++ b/arch/x86/kernel/cpu/resctrl/pseudo_lock.c
@@ -483,7 +483,7 @@ int resctrl_arch_pseudo_lock_fn(void *_plr)
 	 * cache.
 	 */
 	saved_msr = __rdmsr(MSR_MISC_FEATURE_CONTROL);
-	__wrmsr(MSR_MISC_FEATURE_CONTROL, prefetch_disable_bits, 0x0);
+	native_wrmsrq(MSR_MISC_FEATURE_CONTROL, prefetch_disable_bits);
 	closid_p = this_cpu_read(pqr_state.cur_closid);
 	rmid_p = this_cpu_read(pqr_state.cur_rmid);
 	mem_r = plr->kmem;
@@ -495,7 +495,7 @@ int resctrl_arch_pseudo_lock_fn(void *_plr)
 	 * pseudo-locked followed by reading of kernel memory to load it
 	 * into the cache.
 	 */
-	__wrmsr(MSR_IA32_PQR_ASSOC, rmid_p, plr->closid);
+	native_wrmsr(MSR_IA32_PQR_ASSOC, rmid_p, plr->closid);
 
 	/*
 	 * Cache was flushed earlier. Now access kernel memory to read it
@@ -532,7 +532,7 @@ int resctrl_arch_pseudo_lock_fn(void *_plr)
 	 * Critical section end: restore closid with capacity bitmask that
 	 * does not overlap with pseudo-locked region.
 	 */
-	__wrmsr(MSR_IA32_PQR_ASSOC, rmid_p, closid_p);
+	native_wrmsr(MSR_IA32_PQR_ASSOC, rmid_p, closid_p);
 
 	/* Re-enable the hardware prefetcher(s) */
 	wrmsrq(MSR_MISC_FEATURE_CONTROL, saved_msr);
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 22 08:26:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 08:26:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.961885.1353301 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u78xi-0006rJ-Dw; Tue, 22 Apr 2025 08:26:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 961885.1353301; Tue, 22 Apr 2025 08:26:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u78xi-0006rC-Ar; Tue, 22 Apr 2025 08:26:38 +0000
Received: by outflank-mailman (input) for mailman id 961885;
 Tue, 22 Apr 2025 08:26:37 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=f4Vg=XI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u78xh-0006qQ-4t
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 08:26:37 +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 80a4c982-1f53-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 10:26:35 +0200 (CEST)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-39ee651e419so2646907f8f.3
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 01:26:35 -0700 (PDT)
Received: from [10.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-39efa493377sm14653260f8f.62.2025.04.22.01.26.34
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 22 Apr 2025 01:26: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: 80a4c982-1f53-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745310394; x=1745915194; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=pD8xyaTDuAVwQBspdA9NWn5m+f5GsW0lAwhnT0jcyys=;
        b=aa6lbrbCEU9N5G2eNdw3Gxank91kDLQBuAkIkQEV9K4DJCqy4Q00++3i5Mbe+jVoPS
         0JxeIBuc4nF8Z3+0LksVzqiP4ge3HIPOpqBb1MyA6FWbBiakxbVu1kBxeNDcRk15MZJJ
         F7on27vlAHB7a3Bdu4dw4InueegoOH5+veLV/cIsG602JhelH16t8IcAtlD/gtF0NqpK
         E9OsFGoVN1VshRxrGR6RD7j2vUqF7Ln7hGdd2+UQOu7cwM014kz0n9Mo7VbIOUvBcYLg
         wAkQ53fw/DPs02cuu8nF5lnhKPoPXWF3inA/KUxGpujxP+a1K1xjxo5GSZm7eM3FalXY
         bFZA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745310394; x=1745915194;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=pD8xyaTDuAVwQBspdA9NWn5m+f5GsW0lAwhnT0jcyys=;
        b=SVIuhG1qwca/gdUPjxi0jYwMbFjXssuq39UJV9oSKelXHf7ze7He9CbJn4R5SPIdr1
         ogtdeD2rm/+SUMJU2jojdH/rjaBFtU+PRhRcdnJ5Vn2Ffb/PClDkrzomMbnYnoiSWOrV
         Qw0fnB4SzqZsobRcsXLXRK71Eted6tQoJFsrXLzuSAusCmX+bFp5Mbp8Y/4gynGGuvvz
         TQljldGVOVqQDWLdkjj7101yFFNGV/JMNmRoA+POHbhCGEbUPlgbVc2XazHoSfrNlmpE
         rZSYjAG3Ibg61L/PhltpGcHDJsd+Tvmy6nHBV2cTQ2qkKyxZXUT4Cgi/i1DCcIywzJKj
         rJHw==
X-Forwarded-Encrypted: i=1; AJvYcCXdNg7XjN/jWh9236bI1yfSASxxBWLq/Wg+VrHy7P/t6Hp25bhmmo0uiydJQgDh9cB/WZYkjMa7Z58=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw0ldl+/i1o9CgbLFOydPfSNI/IgcuxXxsjs0urmHnVvmXRFI8+
	esUdwwCskAUU+DlKgLuYfU1BuuRRvq5q7V5EVFlsVvARtMDgP2+jplFjekVuKA==
X-Gm-Gg: ASbGncu1qWNAmK4R35ZmHMUwBmz+ZpxeDYHKtF76gLc8otkw8BLIZeFUk0G6q+ya+gb
	LpltBba8mUF531HJ8C26GKTJ5YCtBTy0GSrmeGfYS48b1QUDMgihCP7YJTNMgQ5Krw7oAZPrgwe
	Dzp77pKbpOqZzUjQadL98OjKNASaSZJvcxnQPD3P+nT3fPEy775WerdAgIFLZendAojpC27bNll
	i4xSvNGkGg3X3NuzeaMKDsnOd1vhbo2pyGOQCGq7dhPLxEkWeQCpWou+KaocGxoPRpUwWLlJqpL
	qEVIrUUm3oPdMmjsnJo+tR6mpIrZy+cnK6CoFQTZzUwP5OsDf9TZt5BHmmReg9SOm3HEajWXVoS
	647nYIE435b6ORjw9NcXHH72b8A==
X-Google-Smtp-Source: AGHT+IEb3OADhD6mIWq982GtKFHXw5KBG9aPqit0VSqs1uARfcyVzwJGRu9MpUZw6skxIurSQNYEWA==
X-Received: by 2002:a05:6000:2506:b0:39c:1ef6:4364 with SMTP id ffacd0b85a97d-39efba47496mr11370765f8f.14.1745310394536;
        Tue, 22 Apr 2025 01:26:34 -0700 (PDT)
Message-ID: <463cd02d-febc-4878-90b5-9272f91b9033@suse.com>
Date: Tue, 22 Apr 2025 10:26:37 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/intel: workaround several MONITOR/MWAIT errata
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20250417161913.14661-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: <20250417161913.14661-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 17.04.2025 18:19, Roger Pau Monne wrote:
> --- a/xen/arch/x86/acpi/cpu_idle.c
> +++ b/xen/arch/x86/acpi/cpu_idle.c
> @@ -441,8 +441,14 @@ void cpuidle_wakeup_mwait(cpumask_t *mask)
>      cpumask_andnot(mask, mask, &target);
>  }
>  
> +/* Force sending of a wakeup IPI regardless of mwait usage. */
> +bool force_mwait_ipi_wakeup __read_mostly;

Nit: Annotation between type and identifier, please.

> @@ -380,6 +380,43 @@ static void probe_c3_errata(const struct cpuinfo_x86 *c)
>      }
>  }
>  
> +/*
> + * APL30: One use of the MONITOR/MWAIT instruction pair is to allow a logical
> + * processor to wait in a sleep state until a store to the armed address range
> + * occurs. Due to this erratum, stores to the armed address range may not
> + * trigger MWAIT to resume execution.
> + *
> + * ICX143: Under complex microarchitectural conditions, a monitor that is armed
> + * with the MWAIT instruction may not be triggered, leading to a processor
> + * hang.
> + *
> + * LNL030: Problem P-cores may not exit power state Core C6 on monitor hit.

I didn't manage to spot all three spec updates; none of these have a ucode fix,
hence permitting the workaround to be avoided?

Since CPX is 3rd Gen Xeon Scalable just like ICX is, I'm surprised that one's
unaffected. The most recent spec update there is a year old than ICX'es, so
may simply be too old to include the erratum?

Sunny Cove is used by further Icelake models - they're known to be unaffected?

> + * Force the sending of an IPI in those cases.
> + */
> +static void probe_mwait_errata(void)
> +{
> +    static const struct x86_cpu_id models[] = {
> +        /* Apollo Lake */
> +        INTEL_FAM6_MODEL(0x5C),
> +        /* Ice Lake */
> +        INTEL_FAM6_MODEL(0x6A),
> +        INTEL_FAM6_MODEL(0x6C),
> +        /* Lunar Lake */
> +        INTEL_FAM6_MODEL(0xBD),

Use identifiers from intel-family.h here?

> +        { }
> +    };
> +#undef INTEL_FAM6_MODEL
> +
> +    if ( boot_cpu_has(X86_FEATURE_MONITOR) && !force_mwait_ipi_wakeup &&
> +         x86_match_cpu(models) )
> +    {
> +        printk(XENLOG_WARNING
> +               "Forcing IPI MWAIT wakeup due to CPU erratum\n");
> +        force_mwait_ipi_wakeup = true;
> +    }
> +}

Do we really need to cater for asymmetric systems? IOW can't we do this once
on the BSP? Otherwise - why the use of boot_cpu_has() here? Oh, wait ...

> @@ -406,6 +443,8 @@ static void Intel_errata_workarounds(struct cpuinfo_x86 *c)
>  		__set_bit(X86_FEATURE_CLFLUSH_MONITOR, c->x86_capability);
>  
>  	probe_c3_errata(c);
> +	if (c == &boot_cpu_data)
> +		probe_mwait_errata();
>  }

..., you do this for the BSP only. Then why's the function not __init and
the global variable not __ro_after_init (and models[] __initconst)?

(Later) Except that this path is also taken for S3 resume, from
recheck_cpu_features(). This shouldn't alter the variable value anymore,
though. A disagreement ought to result in recheck_cpu_features() to
report failure. (Imo perhaps better to avoid the call above during resume.)

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 22 08:31:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 08:31:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.961914.1353310 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u792H-0000FG-SF; Tue, 22 Apr 2025 08:31:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 961914.1353310; Tue, 22 Apr 2025 08:31: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 1u792H-0000F9-PG; Tue, 22 Apr 2025 08:31:21 +0000
Received: by outflank-mailman (input) for mailman id 961914;
 Tue, 22 Apr 2025 08:31: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=Qhpm=XI=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u78vN-0004wX-Py
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 08:24:13 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1e1f63d1-1f53-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 10:23:50 +0200 (CEST)
Received: from terminus.zytor.com (terminus.zytor.com
 [IPv6:2607:7c80:54:3:0:0:0:136]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53M8MG9l1954391
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Tue, 22 Apr 2025 01:23:28 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1e1f63d1-1f53-11f0-9ffb-bf95429c2676
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53M8MG9l1954391
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745310210;
	bh=WuTf4DKpHMtSM1ra3KvkSmb+zvqoPj+dUC25U2G1occ=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=QKcrrs1CLj1GklRXrRY5aS2PCtwaEhGTlYpiDyTQTjEtLCtpGP6PF4lU6okTlCAxs
	 YcOPgbljQyNdip4ad/TqaWX7E6oaZNhnbuHaO/9CAxKWtXtH5IcEpsPeCqrhCapA2j
	 7/sjlQ+echmy0OGy5x+sG8HYkRhBfTDD46yscv1eNtFvuMspT3EJZSfGIsXT9FuHEP
	 lwGS4cuq9Pl52a1bmYOQrcwDRDzLfN6Hjtx3Y5PSt1EOkUcnE2fwjGxqtkl4sfrZ/e
	 1E4b3AKvled+9XSPax5BGjZyR4j5ep8Tvn55jTFJhcMHXdiudbJQjCPXUevI1KzTbM
	 JdJzBLsp4NdOg==
From: "Xin Li (Intel)" <xin@zytor.com>
To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
        linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
        netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        acme@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com,
        peterz@infradead.org, namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com
Subject: [RFC PATCH v2 33/34] x86/msr: Move the ARGS macros after the MSR read/write APIs
Date: Tue, 22 Apr 2025 01:22:14 -0700
Message-ID: <20250422082216.1954310-34-xin@zytor.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250422082216.1954310-1-xin@zytor.com>
References: <20250422082216.1954310-1-xin@zytor.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Since the ARGS macros are no longer used in the MSR read/write API
implementation, move them after their definitions.

Signed-off-by: Xin Li (Intel) <xin@zytor.com>
---
 arch/x86/include/asm/msr.h | 38 +++++++++++++++++++++-----------------
 1 file changed, 21 insertions(+), 17 deletions(-)

diff --git a/arch/x86/include/asm/msr.h b/arch/x86/include/asm/msr.h
index b4447ba4d6c2..be593a15a838 100644
--- a/arch/x86/include/asm/msr.h
+++ b/arch/x86/include/asm/msr.h
@@ -38,23 +38,6 @@ struct saved_msrs {
 	struct saved_msr *array;
 };
 
-/*
- * both i386 and x86_64 returns 64-bit value in edx:eax, but gcc's "A"
- * constraint has different meanings. For i386, "A" means exactly
- * edx:eax, while for x86_64 it doesn't mean rdx:rax or edx:eax. Instead,
- * it means rax *or* rdx.
- */
-#ifdef CONFIG_X86_64
-/* Using 64-bit values saves one instruction clearing the high half of low */
-#define DECLARE_ARGS(val, low, high)	unsigned long low, high
-#define EAX_EDX_VAL(val, low, high)	((low) | (high) << 32)
-#define EAX_EDX_RET(val, low, high)	"=a" (low), "=d" (high)
-#else
-#define DECLARE_ARGS(val, low, high)	u64 val
-#define EAX_EDX_VAL(val, low, high)	(val)
-#define EAX_EDX_RET(val, low, high)	"=A" (val)
-#endif
-
 /*
  * Be very careful with includes. This header is prone to include loops.
  */
@@ -559,6 +542,23 @@ static __always_inline int wrmsr_safe(u32 msr, u32 low, u32 high)
 extern int rdmsr_safe_regs(u32 regs[8]);
 extern int wrmsr_safe_regs(u32 regs[8]);
 
+/*
+ * both i386 and x86_64 returns 64-bit value in edx:eax, but gcc's "A"
+ * constraint has different meanings. For i386, "A" means exactly
+ * edx:eax, while for x86_64 it doesn't mean rdx:rax or edx:eax. Instead,
+ * it means rax *or* rdx.
+ */
+#ifdef CONFIG_X86_64
+/* Using 64-bit values saves one instruction clearing the high half of low */
+#define DECLARE_ARGS(val, low, high)	unsigned long low, high
+#define EAX_EDX_VAL(val, low, high)	((low) | (high) << 32)
+#define EAX_EDX_RET(val, low, high)	"=a" (low), "=d" (high)
+#else
+#define DECLARE_ARGS(val, low, high)	u64 val
+#define EAX_EDX_VAL(val, low, high)	(val)
+#define EAX_EDX_RET(val, low, high)	"=A" (val)
+#endif
+
 static __always_inline u64 native_rdpmcq(int counter)
 {
 	DECLARE_ARGS(val, low, high);
@@ -571,6 +571,10 @@ static __always_inline u64 native_rdpmcq(int counter)
 	return EAX_EDX_VAL(val, low, high);
 }
 
+#undef DECLARE_ARGS
+#undef EAX_EDX_VAL
+#undef EAX_EDX_RET
+
 static __always_inline u64 rdpmcq(int counter)
 {
 #ifdef CONFIG_XEN_PV
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 22 08:31:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 08:31:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.961933.1353320 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u792q-0000wA-2v; Tue, 22 Apr 2025 08:31:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 961933.1353320; Tue, 22 Apr 2025 08:31: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 1u792q-0000w3-0Q; Tue, 22 Apr 2025 08:31:56 +0000
Received: by outflank-mailman (input) for mailman id 961933;
 Tue, 22 Apr 2025 08:31: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=Qhpm=XI=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u78vA-0004wX-Nq
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 08:24:00 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1a1106b8-1f53-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 10:23:44 +0200 (CEST)
Received: from terminus.zytor.com (terminus.zytor.com
 [IPv6:2607:7c80:54:3:0:0:0:136]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53M8MG9k1954391
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Tue, 22 Apr 2025 01:23:26 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1a1106b8-1f53-11f0-9ffb-bf95429c2676
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53M8MG9k1954391
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745310207;
	bh=RsMt57mlaVk9CocrxjydLh4eE9MOuCS2P68NuQfut0U=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=KfOau+bNZ/tY6KfWMZGNcMxqK1rglE1wkeTuZolxBRhAickqGvWKN/4Qz9B2mmuIl
	 oDw6BUhQMWrY3r31kLQPr8RGOOK8cTYW2QNw2b+TEbZi/tWFs5DlaKiKWVjJEV3bGW
	 wl3qqGp4z5D6tJ7OOmN6yeKxXJzggCTzeNwMfC/dA7ESam0+T6sxHCsX50uhF54bxD
	 HkHgd2xOgyQRa/LcauymKkTW/1LS+6P1DhPyORguEzAyNoN+DEZ+6Xw5/xIQDR/ldR
	 RvnM1+AxAR+4uk/vjBOgTRs8JOEl8GDXbY9oZ9+HCOdGf2CGGSi1yBlqpHC/R8fIIc
	 VCxpAQ46OhJbA==
From: "Xin Li (Intel)" <xin@zytor.com>
To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
        linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
        netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        acme@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com,
        peterz@infradead.org, namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com
Subject: [RFC PATCH v2 32/34] x86/msr: Rename native_read_msr_safe() to native_rdmsrq_safe()
Date: Tue, 22 Apr 2025 01:22:13 -0700
Message-ID: <20250422082216.1954310-33-xin@zytor.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250422082216.1954310-1-xin@zytor.com>
References: <20250422082216.1954310-1-xin@zytor.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Signed-off-by: Xin Li (Intel) <xin@zytor.com>
---
 arch/x86/include/asm/msr.h |  4 ++--
 arch/x86/kvm/svm/svm.c     | 10 +++++-----
 arch/x86/xen/pmu.c         |  4 ++--
 3 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/arch/x86/include/asm/msr.h b/arch/x86/include/asm/msr.h
index 4c7aa9e7fbac..b4447ba4d6c2 100644
--- a/arch/x86/include/asm/msr.h
+++ b/arch/x86/include/asm/msr.h
@@ -157,7 +157,7 @@ static __always_inline bool is_msr_imm_insn(void *ip)
  *                         __native_rdmsrq()   -----------------------
  *                            /     \                                |
  *                           /       \                               |
- *        native_rdmsrq_no_trace()    native_read_msr_safe()         |
+ *        native_rdmsrq_no_trace()    native_rdmsrq_safe()           |
  *                   /      \                                        |
  *                  /        \                                       |
  * native_rdmsr_no_trace()    native_rdmsrq()                        |
@@ -273,7 +273,7 @@ static inline u64 native_rdmsrq(u32 msr)
 	return val;
 }
 
-static inline int native_read_msr_safe(u32 msr, u64 *val)
+static inline int native_rdmsrq_safe(u32 msr, u64 *val)
 {
 	int err;
 
diff --git a/arch/x86/kvm/svm/svm.c b/arch/x86/kvm/svm/svm.c
index 01dd3cd20730..251fd9366b35 100644
--- a/arch/x86/kvm/svm/svm.c
+++ b/arch/x86/kvm/svm/svm.c
@@ -481,7 +481,7 @@ static void svm_init_erratum_383(void)
 		return;
 
 	/* Use _safe variants to not break nested virtualization */
-	if (native_read_msr_safe(MSR_AMD64_DC_CFG, &val))
+	if (native_rdmsrq_safe(MSR_AMD64_DC_CFG, &val))
 		return;
 
 	val |= (1ULL << 47);
@@ -649,9 +649,9 @@ static int svm_enable_virtualization_cpu(void)
 		u64 len, status = 0;
 		int err;
 
-		err = native_read_msr_safe(MSR_AMD64_OSVW_ID_LENGTH, &len);
+		err = native_rdmsrq_safe(MSR_AMD64_OSVW_ID_LENGTH, &len);
 		if (!err)
-			err = native_read_msr_safe(MSR_AMD64_OSVW_STATUS, &status);
+			err = native_rdmsrq_safe(MSR_AMD64_OSVW_STATUS, &status);
 
 		if (err)
 			osvw_status = osvw_len = 0;
@@ -2148,7 +2148,7 @@ static bool is_erratum_383(void)
 	if (!erratum_383_found)
 		return false;
 
-	if (native_read_msr_safe(MSR_IA32_MC0_STATUS, &value))
+	if (native_rdmsrq_safe(MSR_IA32_MC0_STATUS, &value))
 		return false;
 
 	/* Bit 62 may or may not be set for this mce */
@@ -2161,7 +2161,7 @@ static bool is_erratum_383(void)
 	for (i = 0; i < 6; ++i)
 		native_wrmsrq_safe(MSR_IA32_MCx_STATUS(i), 0);
 
-	if (!native_read_msr_safe(MSR_IA32_MCG_STATUS, &value)) {
+	if (!native_rdmsrq_safe(MSR_IA32_MCG_STATUS, &value)) {
 		value &= ~(1ULL << 2);
 		native_wrmsrq_safe(MSR_IA32_MCG_STATUS, value);
 	}
diff --git a/arch/x86/xen/pmu.c b/arch/x86/xen/pmu.c
index ee908dfcff48..66d2c6fc7bfa 100644
--- a/arch/x86/xen/pmu.c
+++ b/arch/x86/xen/pmu.c
@@ -323,7 +323,7 @@ static u64 xen_amd_read_pmc(int counter)
 		u64 val;
 
 		msr = amd_counters_base + (counter * amd_msr_step);
-		native_read_msr_safe(msr, &val);
+		native_rdmsrq_safe(msr, &val);
 		return val;
 	}
 
@@ -349,7 +349,7 @@ static u64 xen_intel_read_pmc(int counter)
 		else
 			msr = MSR_IA32_PERFCTR0 + counter;
 
-		native_read_msr_safe(msr, &val);
+		native_rdmsrq_safe(msr, &val);
 		return val;
 	}
 
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 22 08:32:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 08:32:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.961941.1353331 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7933-0001NJ-Fq; Tue, 22 Apr 2025 08:32:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 961941.1353331; Tue, 22 Apr 2025 08:32: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 1u7933-0001NA-BX; Tue, 22 Apr 2025 08:32:09 +0000
Received: by outflank-mailman (input) for mailman id 961941;
 Tue, 22 Apr 2025 08:32: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=Qhpm=XI=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u78uk-0004wX-IW
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 08:23:34 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0f2df908-1f53-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 10:23:25 +0200 (CEST)
Received: from terminus.zytor.com (terminus.zytor.com
 [IPv6:2607:7c80:54:3:0:0:0:136]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53M8MG9Z1954391
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Tue, 22 Apr 2025 01:23:03 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0f2df908-1f53-11f0-9ffb-bf95429c2676
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53M8MG9Z1954391
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745310185;
	bh=SbFiqhpbEovrK+LS0VBC/tyDAZ8ViG+4jyr/a40aPa0=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=hXQwswW0EIq1GXsIdTTdlsmac4Ckmw7cL/SALCqoewd6gCGQXChXGtTsoS3S39jnV
	 Nowa4E8N7IAmCY+Y6yzI8ipd1xkA30BhCu/NC86sXKDjTYM8EIsO+8EH36a+8+ySFH
	 1brFFlqy48+6W4xkPu0fKFHrfQIHwgi49N22uBh7AtX0JMahohyUbVW8F1R22hOLan
	 q2dy+35krNJcaUnwtDmjqE2OLcuen46yUjhCfUZZK+k/PXrWjBJ9GFmNYiehg7vX99
	 OykPagDxBcFgIAGGDVuEaXYTcBRcMMpyHsNvoAeAMPc+LpKYGjR6USukd0JQncqgNw
	 zZ9D1k5iwVvyw==
From: "Xin Li (Intel)" <xin@zytor.com>
To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
        linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
        netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        acme@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com,
        peterz@infradead.org, namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com
Subject: [RFC PATCH v2 21/34] x86/msr: Utilize the alternatives mechanism to write MSR
Date: Tue, 22 Apr 2025 01:22:02 -0700
Message-ID: <20250422082216.1954310-22-xin@zytor.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250422082216.1954310-1-xin@zytor.com>
References: <20250422082216.1954310-1-xin@zytor.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The story started from tglx's reply in [1]:

  For actual performance relevant code the current PV ops mechanics
  are a horrorshow when the op defaults to the native instruction.

  look at wrmsrl():

  wrmsrl(msr, val
   wrmsr(msr, (u32)val, (u32)val >> 32))
    paravirt_write_msr(msr, low, high)
      PVOP_VCALL3(cpu.write_msr, msr, low, high)

  Which results in

	mov	$msr, %edi
	mov	$val, %rdx
	mov	%edx, %esi
	shr	$0x20, %rdx
	call	native_write_msr

  and native_write_msr() does at minimum:

	mov    %edi,%ecx
	mov    %esi,%eax
	wrmsr
	ret

  In the worst case 'ret' is going through the return thunk. Not to
  talk about function prologues and whatever.

  This becomes even more silly for trivial instructions like STI/CLI
  or in the worst case paravirt_nop().

  The call makes only sense, when the native default is an actual
  function, but for the trivial cases it's a blatant engineering
  trainwreck.

Later a consensus was reached to utilize the alternatives mechanism to
eliminate the indirect call overhead introduced by the pv_ops APIs:

    1) When built with !CONFIG_XEN_PV, X86_FEATURE_XENPV becomes a
       disabled feature, preventing the Xen code from being built
       and ensuring the native code is executed unconditionally.

    2) When built with CONFIG_XEN_PV:

       2.1) If not running on the Xen hypervisor (!X86_FEATURE_XENPV),
            the kernel runtime binary is patched to unconditionally
            jump to the native MSR write code.

       2.2) If running on the Xen hypervisor (X86_FEATURE_XENPV), the
            kernel runtime binary is patched to unconditionally jump
            to the Xen MSR write code.

The alternatives mechanism is also used to choose the new immediate
form MSR write instruction when it's available.

Consequently, remove the pv_ops MSR write APIs and the Xen callbacks.

[1]: https://lore.kernel.org/lkml/87y1h81ht4.ffs@tglx/

Originally-by: H. Peter Anvin (Intel) <hpa@zytor.com>
Signed-off-by: Xin Li (Intel) <xin@zytor.com>
---
 arch/x86/include/asm/fred.h           |   2 +-
 arch/x86/include/asm/msr.h            | 294 ++++++++++++++++++++------
 arch/x86/include/asm/paravirt.h       |  25 ---
 arch/x86/include/asm/paravirt_types.h |   2 -
 arch/x86/kernel/paravirt.c            |   2 -
 arch/x86/xen/enlighten_pv.c           |  41 +---
 arch/x86/xen/xen-asm.S                |  64 ++++++
 arch/x86/xen/xen-ops.h                |   2 +
 8 files changed, 302 insertions(+), 130 deletions(-)

diff --git a/arch/x86/include/asm/fred.h b/arch/x86/include/asm/fred.h
index 12b34d5b2953..8ae4429e5401 100644
--- a/arch/x86/include/asm/fred.h
+++ b/arch/x86/include/asm/fred.h
@@ -101,7 +101,7 @@ static __always_inline void fred_update_rsp0(void)
 	unsigned long rsp0 = (unsigned long) task_stack_page(current) + THREAD_SIZE;
 
 	if (cpu_feature_enabled(X86_FEATURE_FRED) && (__this_cpu_read(fred_rsp0) != rsp0)) {
-		wrmsrns(MSR_IA32_FRED_RSP0, rsp0);
+		native_wrmsrq(MSR_IA32_FRED_RSP0, rsp0);
 		__this_cpu_write(fred_rsp0, rsp0);
 	}
 }
diff --git a/arch/x86/include/asm/msr.h b/arch/x86/include/asm/msr.h
index 8f7a67b1c61c..bd3bdb3c3d23 100644
--- a/arch/x86/include/asm/msr.h
+++ b/arch/x86/include/asm/msr.h
@@ -75,9 +75,40 @@ static inline void do_trace_rdpmc(u32 msr, u64 val, int failed) {}
 #endif
 
 #ifdef CONFIG_XEN_PV
+extern void asm_xen_write_msr(void);
 extern u64 xen_read_pmc(int counter);
 #endif
 
+/* The GNU Assembler (Gas) with Binutils 2.40 adds WRMSRNS support */
+#if defined(CONFIG_AS_IS_GNU) && CONFIG_AS_VERSION >= 24000
+#define ASM_WRMSRNS		"wrmsrns"
+#else
+#define ASM_WRMSRNS		_ASM_BYTES(0x0f,0x01,0xc6)
+#endif
+
+/* The GNU Assembler (Gas) with Binutils 2.41 adds the .insn directive support */
+#if defined(CONFIG_AS_IS_GNU) && CONFIG_AS_VERSION >= 24100
+#define ASM_WRMSRNS_IMM			\
+	" .insn VEX.128.F3.M7.W0 0xf6 /0, %[val], %[msr]%{:u32}\n\t"
+#else
+/*
+ * Note, clang also doesn't support the .insn directive.
+ *
+ * The register operand is encoded as %rax because all uses of the immediate
+ * form MSR access instructions reference %rax as the register operand.
+ */
+#define ASM_WRMSRNS_IMM			\
+	" .byte 0xc4,0xe7,0x7a,0xf6,0xc0; .long %c[msr]"
+#endif
+
+#define PREPARE_RDX_FOR_WRMSR		\
+	"mov %%rax, %%rdx\n\t"		\
+	"shr $0x20, %%rdx\n\t"
+
+#define PREPARE_RCX_RDX_FOR_WRMSR	\
+	"mov %[msr], %%ecx\n\t"		\
+	PREPARE_RDX_FOR_WRMSR
+
 /*
  * Called only from an MSR fault handler, the instruction pointer points to
  * the MSR access instruction that caused the fault.
@@ -96,13 +127,6 @@ static __always_inline bool is_msr_imm_insn(void *ip)
 #endif
 }
 
-/*
- * __rdmsr() and __wrmsr() are the two primitives which are the bare minimum MSR
- * accessors and should not have any tracing or other functionality piggybacking
- * on them - those are *purely* for accessing MSRs and nothing more. So don't even
- * think of extending them - you will be slapped with a stinking trout or a frozen
- * shark will reach you, wherever you are! You've been warned.
- */
 static __always_inline u64 __rdmsr(u32 msr)
 {
 	DECLARE_ARGS(val, low, high);
@@ -115,14 +139,6 @@ static __always_inline u64 __rdmsr(u32 msr)
 	return EAX_EDX_VAL(val, low, high);
 }
 
-static __always_inline void __wrmsrq(u32 msr, u64 val)
-{
-	asm volatile("1: wrmsr\n"
-		     "2:\n"
-		     _ASM_EXTABLE_TYPE(1b, 2b, EX_TYPE_WRMSR)
-		     : : "c" (msr), "a" ((u32)val), "d" ((u32)(val >> 32)) : "memory");
-}
-
 #define native_rdmsr(msr, val1, val2)			\
 do {							\
 	u64 __val = __rdmsr((msr));			\
@@ -135,12 +151,6 @@ static __always_inline u64 native_rdmsrq(u32 msr)
 	return __rdmsr(msr);
 }
 
-#define native_wrmsr(msr, low, high)			\
-	__wrmsrq((msr), (u64)(high) << 32 | (low))
-
-#define native_wrmsrq(msr, val)				\
-	__wrmsrq((msr), (val))
-
 static inline u64 native_read_msr(u32 msr)
 {
 	u64 val;
@@ -171,7 +181,132 @@ static inline int native_read_msr_safe(u32 msr, u64 *p)
 	return err;
 }
 
-/* Can be uninlined because referenced by paravirt */
+/*
+ * There are two sets of APIs for MSR accesses: native APIs and generic APIs.
+ * Native MSR APIs execute MSR instructions directly, regardless of whether the
+ * CPU is paravirtualized or native.  Generic MSR APIs determine the appropriate
+ * MSR access method at runtime, allowing them to be used generically on both
+ * paravirtualized and native CPUs.
+ *
+ * When the compiler can determine the MSR number at compile time, the APIs
+ * with the suffix _constant() are used to enable the immediate form MSR
+ * instructions when available.  The APIs with the suffix _variable() are
+ * used when the MSR number is not known until run time.
+ *
+ * Below is a diagram illustrating the derivation of the MSR write APIs:
+ *
+ *      __native_wrmsrq_variable()    __native_wrmsrq_constant()
+ *                         \           /
+ *                          \         /
+ *                         __native_wrmsrq()   -----------------------
+ *                            /     \                                |
+ *                           /       \                               |
+ *               native_wrmsrq()    native_write_msr_safe()          |
+ *                   /    \                                          |
+ *                  /      \                                         |
+ *      native_wrmsr()    native_write_msr()                         |
+ *                                                                   |
+ *                                                                   |
+ *                                                                   |
+ *                   __xenpv_wrmsrq()                                |
+ *                         |                                         |
+ *                         |                                         |
+ *                      __wrmsrq()   <--------------------------------
+ *                       /    \
+ *                      /      \
+ *                 wrmsrq()   wrmsrq_safe()
+ *                    /          \
+ *                   /            \
+ *                wrmsr()        wrmsr_safe()
+ */
+
+/*
+ * Non-serializing WRMSR, when available.
+ *
+ * Otherwise, it falls back to a serializing WRMSR.
+ */
+static __always_inline bool __native_wrmsrq_variable(u32 msr, u64 val, int type)
+{
+#ifdef CONFIG_X86_64
+	BUILD_BUG_ON(__builtin_constant_p(msr));
+#endif
+
+	/*
+	 * WRMSR is 2 bytes.  WRMSRNS is 3 bytes.  Pad WRMSR with a redundant
+	 * DS prefix to avoid a trailing NOP.
+	 */
+	asm_inline volatile goto(
+		"1:\n"
+		ALTERNATIVE("ds wrmsr",
+			    ASM_WRMSRNS,
+			    X86_FEATURE_WRMSRNS)
+		_ASM_EXTABLE_TYPE(1b, %l[badmsr], %c[type])
+
+		:
+		: "c" (msr), "a" ((u32)val), "d" ((u32)(val >> 32)), [type] "i" (type)
+		: "memory"
+		: badmsr);
+
+	return false;
+
+badmsr:
+	return true;
+}
+
+#ifdef CONFIG_X86_64
+/*
+ * Non-serializing WRMSR or its immediate form, when available.
+ *
+ * Otherwise, it falls back to a serializing WRMSR.
+ */
+static __always_inline bool __native_wrmsrq_constant(u32 msr, u64 val, int type)
+{
+	BUILD_BUG_ON(!__builtin_constant_p(msr));
+
+	asm_inline volatile goto(
+		"1:\n"
+		ALTERNATIVE_2(PREPARE_RCX_RDX_FOR_WRMSR
+			      "2: ds wrmsr",
+			      PREPARE_RCX_RDX_FOR_WRMSR
+			      ASM_WRMSRNS,
+			      X86_FEATURE_WRMSRNS,
+			      ASM_WRMSRNS_IMM,
+			      X86_FEATURE_MSR_IMM)
+		_ASM_EXTABLE_TYPE(1b, %l[badmsr], %c[type])	/* For WRMSRNS immediate */
+		_ASM_EXTABLE_TYPE(2b, %l[badmsr], %c[type])	/* For WRMSR(NS) */
+
+		:
+		: [val] "a" (val), [msr] "i" (msr), [type] "i" (type)
+		: "memory", "ecx", "rdx"
+		: badmsr);
+
+	return false;
+
+badmsr:
+	return true;
+}
+#endif
+
+static __always_inline bool __native_wrmsrq(u32 msr, u64 val, int type)
+{
+#ifdef CONFIG_X86_64
+	if (__builtin_constant_p(msr))
+		return __native_wrmsrq_constant(msr, val, type);
+#endif
+
+	return __native_wrmsrq_variable(msr, val, type);
+}
+
+static __always_inline void native_wrmsrq(u32 msr, u64 val)
+{
+	__native_wrmsrq(msr, val, EX_TYPE_WRMSR);
+}
+
+static __always_inline void native_wrmsr(u32 msr, u32 low, u32 high)
+{
+	native_wrmsrq(msr, (u64)high << 32 | low);
+}
+
 static inline void notrace native_write_msr(u32 msr, u64 val)
 {
 	native_wrmsrq(msr, val);
@@ -180,22 +315,82 @@ static inline void notrace native_write_msr(u32 msr, u64 val)
 		do_trace_write_msr(msr, val, 0);
 }
 
-/* Can be uninlined because referenced by paravirt */
 static inline int notrace native_write_msr_safe(u32 msr, u64 val)
 {
-	int err;
+	int err = __native_wrmsrq(msr, val, EX_TYPE_WRMSR_SAFE) ? -EIO : 0;
 
-	asm volatile("1: wrmsr ; xor %[err],%[err]\n"
-		     "2:\n\t"
-		     _ASM_EXTABLE_TYPE_REG(1b, 2b, EX_TYPE_WRMSR_SAFE, %[err])
-		     : [err] "=a" (err)
-		     : "c" (msr), "0" ((u32)val), "d" ((u32)(val >> 32))
-		     : "memory");
 	if (tracepoint_enabled(write_msr))
 		do_trace_write_msr(msr, val, err);
+
 	return err;
 }
 
+#ifdef CONFIG_XEN_PV
+/* No plan to support immediate form MSR instructions in Xen */
+static __always_inline bool __xenpv_wrmsrq(u32 msr, u64 val, int type)
+{
+	asm_inline volatile goto(
+		"call asm_xen_write_msr\n\t"
+		"jnz 2f\n\t"
+		ALTERNATIVE("1: ds wrmsr",
+			    ASM_WRMSRNS,
+			    X86_FEATURE_WRMSRNS)
+		"2:\n"
+		_ASM_EXTABLE_TYPE(1b, %l[badmsr], %c[type])	/* For WRMSR(NS) */
+
+		: ASM_CALL_CONSTRAINT
+		: "a" (val), "c" (msr), [type] "i" (type)
+		: "memory", "rdx"
+		: badmsr);
+
+	return false;
+
+badmsr:
+	return true;
+}
+#endif
+
+static __always_inline bool __wrmsrq(u32 msr, u64 val, int type)
+{
+	bool ret;
+
+#ifdef CONFIG_XEN_PV
+	if (cpu_feature_enabled(X86_FEATURE_XENPV))
+		return __xenpv_wrmsrq(msr, val, type);
+#endif
+
+	/*
+	 * 1) When built with !CONFIG_XEN_PV.
+	 * 2) When built with CONFIG_XEN_PV but not running on Xen hypervisor.
+	 */
+	ret = __native_wrmsrq(msr, val, type);
+
+	if (tracepoint_enabled(write_msr))
+		do_trace_write_msr(msr, val, ret ? -EIO : 0);
+
+	return ret;
+}
+
+static __always_inline void wrmsrq(u32 msr, u64 val)
+{
+	__wrmsrq(msr, val, EX_TYPE_WRMSR);
+}
+
+static __always_inline void wrmsr(u32 msr, u32 low, u32 high)
+{
+	wrmsrq(msr, (u64)high << 32 | low);
+}
+
+static __always_inline int wrmsrq_safe(u32 msr, u64 val)
+{
+	return __wrmsrq(msr, val, EX_TYPE_WRMSR_SAFE) ? -EIO : 0;
+}
+
+static __always_inline int wrmsr_safe(u32 msr, u32 low, u32 high)
+{
+	return wrmsrq_safe(msr, (u64)high << 32 | low);
+}
+
 extern int rdmsr_safe_regs(u32 regs[8]);
 extern int wrmsr_safe_regs(u32 regs[8]);
 
@@ -242,25 +437,9 @@ do {								\
 	(void)((high) = (u32)(__val >> 32));			\
 } while (0)
 
-static inline void wrmsr(u32 msr, u32 low, u32 high)
-{
-	native_write_msr(msr, (u64)high << 32 | low);
-}
-
 #define rdmsrq(msr, val)			\
 	((val) = native_read_msr((msr)))
 
-static inline void wrmsrq(u32 msr, u64 val)
-{
-	native_write_msr(msr, val);
-}
-
-/* wrmsr with exception handling */
-static inline int wrmsrq_safe(u32 msr, u64 val)
-{
-	return native_write_msr_safe(msr, val);
-}
-
 /* rdmsr with exception handling */
 #define rdmsr_safe(msr, low, high)				\
 ({								\
@@ -277,29 +456,6 @@ static inline int rdmsrq_safe(u32 msr, u64 *p)
 }
 #endif	/* !CONFIG_PARAVIRT_XXL */
 
-/* Instruction opcode for WRMSRNS supported in binutils >= 2.40 */
-#define WRMSRNS _ASM_BYTES(0x0f,0x01,0xc6)
-
-/* Non-serializing WRMSR, when available.  Falls back to a serializing WRMSR. */
-static __always_inline void wrmsrns(u32 msr, u64 val)
-{
-	/*
-	 * WRMSR is 2 bytes.  WRMSRNS is 3 bytes.  Pad WRMSR with a redundant
-	 * DS prefix to avoid a trailing NOP.
-	 */
-	asm volatile("1: " ALTERNATIVE("ds wrmsr", WRMSRNS, X86_FEATURE_WRMSRNS)
-		     "2: " _ASM_EXTABLE_TYPE(1b, 2b, EX_TYPE_WRMSR)
-		     : : "c" (msr), "a" ((u32)val), "d" ((u32)(val >> 32)));
-}
-
-/*
- * Dual u32 version of wrmsrq_safe():
- */
-static inline int wrmsr_safe(u32 msr, u32 low, u32 high)
-{
-	return wrmsrq_safe(msr, (u64)high << 32 | low);
-}
-
 struct msr __percpu *msrs_alloc(void);
 void msrs_free(struct msr __percpu *msrs);
 int msr_set_bit(u32 msr, u8 bit);
diff --git a/arch/x86/include/asm/paravirt.h b/arch/x86/include/asm/paravirt.h
index 1bd1dad8da5a..6634f6cf801f 100644
--- a/arch/x86/include/asm/paravirt.h
+++ b/arch/x86/include/asm/paravirt.h
@@ -180,21 +180,11 @@ static inline u64 paravirt_read_msr(unsigned msr)
 	return PVOP_CALL1(u64, cpu.read_msr, msr);
 }
 
-static inline void paravirt_write_msr(u32 msr, u64 val)
-{
-	PVOP_VCALL2(cpu.write_msr, msr, val);
-}
-
 static inline u64 paravirt_read_msr_safe(unsigned msr, int *err)
 {
 	return PVOP_CALL2(u64, cpu.read_msr_safe, msr, err);
 }
 
-static inline int paravirt_write_msr_safe(u32 msr, u64 val)
-{
-	return PVOP_CALL2(int, cpu.write_msr_safe, msr, val);
-}
-
 #define rdmsr(msr, val1, val2)			\
 do {						\
 	u64 _l = paravirt_read_msr(msr);	\
@@ -202,26 +192,11 @@ do {						\
 	val2 = _l >> 32;			\
 } while (0)
 
-static __always_inline void wrmsr(u32 msr, u32 low, u32 high)
-{
-	paravirt_write_msr(msr, (u64)high << 32 | low);
-}
-
 #define rdmsrq(msr, val)			\
 do {						\
 	val = paravirt_read_msr(msr);		\
 } while (0)
 
-static inline void wrmsrq(u32 msr, u64 val)
-{
-	paravirt_write_msr(msr, val);
-}
-
-static inline int wrmsrq_safe(u32 msr, u64 val)
-{
-	return paravirt_write_msr_safe(msr, val)
-}
-
 /* rdmsr with exception handling */
 #define rdmsr_safe(msr, a, b)				\
 ({							\
diff --git a/arch/x86/include/asm/paravirt_types.h b/arch/x86/include/asm/paravirt_types.h
index d2db38c32bc5..18bb0e5bd22f 100644
--- a/arch/x86/include/asm/paravirt_types.h
+++ b/arch/x86/include/asm/paravirt_types.h
@@ -92,14 +92,12 @@ struct pv_cpu_ops {
 
 	/* Unsafe MSR operations.  These will warn or panic on failure. */
 	u64 (*read_msr)(unsigned int msr);
-	void (*write_msr)(u32 msr, u64 val);
 
 	/*
 	 * Safe MSR operations.
 	 * Returns 0 or -EIO.
 	 */
 	int (*read_msr_safe)(unsigned int msr, u64 *val);
-	int (*write_msr_safe)(u32 msr, u64 val);
 
 	void (*start_context_switch)(struct task_struct *prev);
 	void (*end_context_switch)(struct task_struct *next);
diff --git a/arch/x86/kernel/paravirt.c b/arch/x86/kernel/paravirt.c
index 28d195ad7514..62bf66f61821 100644
--- a/arch/x86/kernel/paravirt.c
+++ b/arch/x86/kernel/paravirt.c
@@ -129,9 +129,7 @@ struct paravirt_patch_template pv_ops = {
 	.cpu.write_cr0		= native_write_cr0,
 	.cpu.write_cr4		= native_write_cr4,
 	.cpu.read_msr		= native_read_msr,
-	.cpu.write_msr		= native_write_msr,
 	.cpu.read_msr_safe	= native_read_msr_safe,
-	.cpu.write_msr_safe	= native_write_msr_safe,
 	.cpu.load_tr_desc	= native_load_tr_desc,
 	.cpu.set_ldt		= native_set_ldt,
 	.cpu.load_gdt		= native_load_gdt,
diff --git a/arch/x86/xen/enlighten_pv.c b/arch/x86/xen/enlighten_pv.c
index 195e6501a000..4672de7fc084 100644
--- a/arch/x86/xen/enlighten_pv.c
+++ b/arch/x86/xen/enlighten_pv.c
@@ -1118,26 +1118,26 @@ static void set_seg(u32 which, u64 base)
 }
 
 /*
- * Support write_msr_safe() and write_msr() semantics.
- * With err == NULL write_msr() semantics are selected.
- * Supplying an err pointer requires err to be pre-initialized with 0.
+ * Return true to indicate the requested MSR write has been done successfully,
+ * otherwise return false to have the calling MSR write primitives in msr.h to
+ * fail.
  */
-static void xen_do_write_msr(u32 msr, u64 val, int *err)
+bool xen_write_msr(u32 msr, u64 val)
 {
 	bool emulated;
 
 	switch (msr) {
 	case MSR_FS_BASE:
 		set_seg(SEGBASE_FS, val);
-		break;
+		return true;
 
 	case MSR_KERNEL_GS_BASE:
 		set_seg(SEGBASE_GS_USER, val);
-		break;
+		return true;
 
 	case MSR_GS_BASE:
 		set_seg(SEGBASE_GS_KERNEL, val);
-		break;
+		return true;
 
 	case MSR_STAR:
 	case MSR_CSTAR:
@@ -1149,16 +1149,13 @@ static void xen_do_write_msr(u32 msr, u64 val, int *err)
 		/* Fast syscall setup is all done in hypercalls, so
 		   these are all ignored.  Stub them out here to stop
 		   Xen console noise. */
-		break;
+		return true;
 
 	default:
 		if (pmu_msr_chk_emulated(msr, &val, false, &emulated) && emulated)
-			return;
+			return true;
 
-		if (err)
-			*err = native_write_msr_safe(msr, val);
-		else
-			native_write_msr(msr, val);
+		return false;
 	}
 }
 
@@ -1170,15 +1167,6 @@ static int xen_read_msr_safe(unsigned int msr, u64 *val)
 	return err;
 }
 
-static int xen_write_msr_safe(u32 msr, u64 val)
-{
-	int err = 0;
-
-	xen_do_write_msr(msr, val, &err);
-
-	return err;
-}
-
 static u64 xen_read_msr(unsigned int msr)
 {
 	int err;
@@ -1186,13 +1174,6 @@ static u64 xen_read_msr(unsigned int msr)
 	return xen_do_read_msr(msr, xen_msr_safe ? &err : NULL);
 }
 
-static void xen_write_msr(u32 msr, u64 val)
-{
-	int err;
-
-	xen_do_write_msr(msr, val, xen_msr_safe ? &err : NULL);
-}
-
 /* This is called once we have the cpu_possible_mask */
 void __init xen_setup_vcpu_info_placement(void)
 {
@@ -1228,10 +1209,8 @@ static const typeof(pv_ops) xen_cpu_ops __initconst = {
 		.write_cr4 = xen_write_cr4,
 
 		.read_msr = xen_read_msr,
-		.write_msr = xen_write_msr,
 
 		.read_msr_safe = xen_read_msr_safe,
-		.write_msr_safe = xen_write_msr_safe,
 
 		.load_tr_desc = paravirt_nop,
 		.set_ldt = xen_set_ldt,
diff --git a/arch/x86/xen/xen-asm.S b/arch/x86/xen/xen-asm.S
index 461bb1526502..eecce47fbe49 100644
--- a/arch/x86/xen/xen-asm.S
+++ b/arch/x86/xen/xen-asm.S
@@ -342,3 +342,67 @@ SYM_CODE_END(xen_entry_SYSENTER_compat)
 SYM_CODE_END(xen_entry_SYSCALL_compat)
 
 #endif	/* CONFIG_IA32_EMULATION */
+
+/*
+ * To leverage the alternatives mechanism and eliminate the overhead of Xen
+ * MSR and PMU counter access on native systems, as well as to enable new MSR
+ * instructions based on their availability, assembly trampoline functions
+ * are introduced when CONFIG_XEN_PV is enabled.
+ *
+ * Since these trampoline functions are invoked without saving callee registers,
+ * they must save the callee registers and the frame pointer.
+ */
+.macro XEN_SAVE_CALLEE_REGS_FOR_MSR
+	push %rcx
+	push %rdi
+	push %rsi
+	push %r8
+	push %r9
+	push %r10
+	push %r11
+.endm
+
+.macro XEN_RESTORE_CALLEE_REGS_FOR_MSR
+	pop %r11
+	pop %r10
+	pop %r9
+	pop %r8
+	pop %rsi
+	pop %rdi
+	pop %rcx
+.endm
+
+/*
+ * MSR number in %ecx, MSR value in %rax.
+ *
+ * %edx is set up to match %rax >> 32 like the native stub
+ * is expected to do
+ *
+ * Let xen_write_msr() return 'false' if the MSR access should
+ * be executed natively, IOW, 'true' means it has done the job.
+ *
+ * 	bool xen_write_msr(u32 msr, u64 value)
+ *
+ * If ZF=1 then this will fall down to the actual native WRMSR[NS]
+ * instruction.
+ *
+ * This also removes the need for Xen to maintain different safe and
+ * unsafe MSR routines, as the difference is handled by the same
+ * trap handler as is used natively.
+ */
+ SYM_FUNC_START(asm_xen_write_msr)
+	ENDBR
+	FRAME_BEGIN
+	push %rax		/* Save in case of native fallback */
+	XEN_SAVE_CALLEE_REGS_FOR_MSR
+	mov %ecx, %edi		/* MSR number */
+	mov %rax, %rsi		/* MSR data */
+	call xen_write_msr
+	test %al, %al		/* %al=1, i.e., ZF=0, means successfully done */
+	XEN_RESTORE_CALLEE_REGS_FOR_MSR
+	mov 4(%rsp), %edx	/* Set up %edx for native execution */
+	pop %rax
+	FRAME_END
+	RET
+SYM_FUNC_END(asm_xen_write_msr)
+EXPORT_SYMBOL_GPL(asm_xen_write_msr)
diff --git a/arch/x86/xen/xen-ops.h b/arch/x86/xen/xen-ops.h
index fde9f9d7415f..56712242262a 100644
--- a/arch/x86/xen/xen-ops.h
+++ b/arch/x86/xen/xen-ops.h
@@ -146,6 +146,8 @@ __visible unsigned long xen_read_cr2_direct(void);
 /* These are not functions, and cannot be called normally */
 __visible void xen_iret(void);
 
+extern bool xen_write_msr(u32 msr, u64 val);
+
 extern int xen_panic_handler_init(void);
 
 int xen_cpuhp_setup(int (*cpu_up_prepare_cb)(unsigned int),
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 22 08:32:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 08:32:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.961944.1353340 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7934-0001c1-NM; Tue, 22 Apr 2025 08:32:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 961944.1353340; Tue, 22 Apr 2025 08:32: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 1u7934-0001bu-KP; Tue, 22 Apr 2025 08:32:10 +0000
Received: by outflank-mailman (input) for mailman id 961944;
 Tue, 22 Apr 2025 08:32: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=Qhpm=XI=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u78v5-0004wX-NV
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 08:23:55 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1965d340-1f53-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 10:23:42 +0200 (CEST)
Received: from terminus.zytor.com (terminus.zytor.com
 [IPv6:2607:7c80:54:3:0:0:0:136]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53M8MG9j1954391
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Tue, 22 Apr 2025 01:23:24 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1965d340-1f53-11f0-9ffb-bf95429c2676
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53M8MG9j1954391
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745310205;
	bh=PfH0d70H/awMl+pIfi176SABhujHw41azze32+OJXmk=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=JnWtZCemkFX6NCD7mP/s8qoAFT3h3Gb+Fvc+J5Mk02eaVtZrWyrmVnlpXwmVAvy41
	 houfWnQz9wGOKn2yRaZanE3IjEltuS0f/5cW2rlJmBwVly9l6LLAqVurtWi3thuZcM
	 ji5BPEgLgOQkXAsMX4hjSxG1dqBUP9qrDSURde+feL4tlBBsfHS0nQPq1ugkmkwkBm
	 Qf94NiRrS85WPrGN0VWgL6mlH/GHv4SGGPAIIC3MsntY56esV8EU1L6d8KeTVhVlvC
	 nqDxaHuS3Och/kSL44qglJbmmo1kO2jM0JXyCV2y6tezwHqg8Wal5lhgPQfwgfhBGG
	 UQBpBNOph9P0Q==
From: "Xin Li (Intel)" <xin@zytor.com>
To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
        linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
        netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        acme@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com,
        peterz@infradead.org, namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com
Subject: [RFC PATCH v2 31/34] x86/msr: Rename native_read_msr() to native_rdmsrq()
Date: Tue, 22 Apr 2025 01:22:12 -0700
Message-ID: <20250422082216.1954310-32-xin@zytor.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250422082216.1954310-1-xin@zytor.com>
References: <20250422082216.1954310-1-xin@zytor.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Signed-off-by: Xin Li (Intel) <xin@zytor.com>
---
 arch/x86/hyperv/ivm.c      | 2 +-
 arch/x86/include/asm/msr.h | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/arch/x86/hyperv/ivm.c b/arch/x86/hyperv/ivm.c
index dfddf522e838..8860c6c0f013 100644
--- a/arch/x86/hyperv/ivm.c
+++ b/arch/x86/hyperv/ivm.c
@@ -319,7 +319,7 @@ int hv_snp_boot_ap(u32 cpu, unsigned long start_ip)
 	asm volatile("movl %%ds, %%eax;" : "=a" (vmsa->ds.selector));
 	hv_populate_vmcb_seg(vmsa->ds, vmsa->gdtr.base);
 
-	vmsa->efer = native_read_msr(MSR_EFER);
+	vmsa->efer = native_rdmsrq(MSR_EFER);
 
 	vmsa->cr4 = native_read_cr4();
 	vmsa->cr3 = __native_read_cr3();
diff --git a/arch/x86/include/asm/msr.h b/arch/x86/include/asm/msr.h
index dfaac42b6258..4c7aa9e7fbac 100644
--- a/arch/x86/include/asm/msr.h
+++ b/arch/x86/include/asm/msr.h
@@ -160,7 +160,7 @@ static __always_inline bool is_msr_imm_insn(void *ip)
  *        native_rdmsrq_no_trace()    native_read_msr_safe()         |
  *                   /      \                                        |
  *                  /        \                                       |
- * native_rdmsr_no_trace()    native_read_msr()                      |
+ * native_rdmsr_no_trace()    native_rdmsrq()                        |
  *                                                                   |
  *                                                                   |
  *                                                                   |
@@ -263,7 +263,7 @@ do {							\
 	(void)((high) = (u32)(__val >> 32));		\
 } while (0)
 
-static inline u64 native_read_msr(u32 msr)
+static inline u64 native_rdmsrq(u32 msr)
 {
 	u64 val = native_rdmsrq_no_trace(msr);
 
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 22 08:32:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 08:32:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.961952.1353351 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7939-00022H-U7; Tue, 22 Apr 2025 08:32:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 961952.1353351; Tue, 22 Apr 2025 08:32: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 1u7939-000228-RH; Tue, 22 Apr 2025 08:32:15 +0000
Received: by outflank-mailman (input) for mailman id 961952;
 Tue, 22 Apr 2025 08:32:15 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Qhpm=XI=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u78um-0004wX-Iw
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 08:23:36 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 12ba42fa-1f53-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 10:23:31 +0200 (CEST)
Received: from terminus.zytor.com (terminus.zytor.com
 [IPv6:2607:7c80:54:3:0:0:0:136]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53M8MG9e1954391
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Tue, 22 Apr 2025 01:23:13 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 12ba42fa-1f53-11f0-9ffb-bf95429c2676
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53M8MG9e1954391
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745310195;
	bh=q4OhUI0rI50amKpqfciINYanq1RzzEK8yJ83O6y9rJ8=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=OmKf37njdufOCKOu1+/pioZjS9aCdJkKDwOrFoBSJhYk4elP9gADQavcBJBzNl94M
	 EIiY4v+5MJyXJSD3W/yIBbOBl42wgPprtbbrq1AfBAyn6/JOU6QaZPM3JueHwmQQ1g
	 +KoW7aGTIXud9UNjjTcoKiR/eFW2JlRTjAThtiGF+xCNvMVYrZ7lw2ZIbbUz9KNdY0
	 lPhh9NdtSqPJkUj5p+Wp804iYdMmNhvdZECXFxI2/+4EvygMdqQCV95AoKEVyrcLOd
	 JUQ0rKKSP9GX6VJZM+ZRBvVN+7dPJtDzIyqhp4lXTnJyvDE1Q5Ebb4iaj/H5En1k1N
	 N66LR8lz6prnw==
From: "Xin Li (Intel)" <xin@zytor.com>
To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
        linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
        netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        acme@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com,
        peterz@infradead.org, namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com
Subject: [RFC PATCH v2 26/34] x86/msr: Rename native_wrmsr() to native_wrmsr_no_trace()
Date: Tue, 22 Apr 2025 01:22:07 -0700
Message-ID: <20250422082216.1954310-27-xin@zytor.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250422082216.1954310-1-xin@zytor.com>
References: <20250422082216.1954310-1-xin@zytor.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

native_wrmsr() doesn't do trace thus can be used in noinstr context,
rename it to native_wrmsr_no_trace() to make it explicit.

Signed-off-by: Xin Li (Intel) <xin@zytor.com>
---
 arch/x86/include/asm/msr.h                | 8 ++++----
 arch/x86/kernel/cpu/resctrl/pseudo_lock.c | 4 ++--
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/arch/x86/include/asm/msr.h b/arch/x86/include/asm/msr.h
index d130bdeed3ce..2a62a899f7a5 100644
--- a/arch/x86/include/asm/msr.h
+++ b/arch/x86/include/asm/msr.h
@@ -367,9 +367,9 @@ static __always_inline int rdmsrq_safe(u32 msr, u64 *val)
  *                            /     \                                |
  *                           /       \                               |
  *        native_wrmsrq_no_trace()    native_write_msr_safe()        |
- *                   /    \                                          |
- *                  /      \                                         |
- *      native_wrmsr()    native_write_msr()                         |
+ *                   /        \                                      |
+ *                  /          \                                     |
+ * native_wrmsr_no_trace()    native_write_msr()                     |
  *                                                                   |
  *                                                                   |
  *                                                                   |
@@ -467,7 +467,7 @@ static __always_inline void native_wrmsrq_no_trace(u32 msr, u64 val)
 	__native_wrmsrq(msr, val, EX_TYPE_WRMSR);
 }
 
-static __always_inline void native_wrmsr(u32 msr, u32 low, u32 high)
+static __always_inline void native_wrmsr_no_trace(u32 msr, u32 low, u32 high)
 {
 	native_wrmsrq_no_trace(msr, (u64)high << 32 | low);
 }
diff --git a/arch/x86/kernel/cpu/resctrl/pseudo_lock.c b/arch/x86/kernel/cpu/resctrl/pseudo_lock.c
index e970a0de894f..184bc1b3fb02 100644
--- a/arch/x86/kernel/cpu/resctrl/pseudo_lock.c
+++ b/arch/x86/kernel/cpu/resctrl/pseudo_lock.c
@@ -495,7 +495,7 @@ int resctrl_arch_pseudo_lock_fn(void *_plr)
 	 * pseudo-locked followed by reading of kernel memory to load it
 	 * into the cache.
 	 */
-	native_wrmsr(MSR_IA32_PQR_ASSOC, rmid_p, plr->closid);
+	native_wrmsr_no_trace(MSR_IA32_PQR_ASSOC, rmid_p, plr->closid);
 
 	/*
 	 * Cache was flushed earlier. Now access kernel memory to read it
@@ -532,7 +532,7 @@ int resctrl_arch_pseudo_lock_fn(void *_plr)
 	 * Critical section end: restore closid with capacity bitmask that
 	 * does not overlap with pseudo-locked region.
 	 */
-	native_wrmsr(MSR_IA32_PQR_ASSOC, rmid_p, closid_p);
+	native_wrmsr_no_trace(MSR_IA32_PQR_ASSOC, rmid_p, closid_p);
 
 	/* Re-enable the hardware prefetcher(s) */
 	wrmsrq(MSR_MISC_FEATURE_CONTROL, saved_msr);
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 22 08:32:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 08:32:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.961953.1353356 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u793A-00025F-98; Tue, 22 Apr 2025 08:32:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 961953.1353356; Tue, 22 Apr 2025 08: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 1u793A-00023o-26; Tue, 22 Apr 2025 08:32:16 +0000
Received: by outflank-mailman (input) for mailman id 961953;
 Tue, 22 Apr 2025 08:32:15 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Qhpm=XI=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u78um-0004wM-QA
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 08:23:36 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 14069631-1f53-11f0-9eb0-5ba50f476ded;
 Tue, 22 Apr 2025 10:23:33 +0200 (CEST)
Received: from terminus.zytor.com (terminus.zytor.com
 [IPv6:2607:7c80:54:3:0:0:0:136]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53M8MG9f1954391
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Tue, 22 Apr 2025 01:23:15 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 14069631-1f53-11f0-9eb0-5ba50f476ded
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53M8MG9f1954391
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745310197;
	bh=n9SvQ+6gLfKPeJxZo0ixRWTtLNf7Ind1ig8lOaFKHRg=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=JPM2elO1cKqKRmNOT5WRj7ojg2yaJuuZ/6RneSxHgf10deYK+Y7ngp9qNQakxHc9b
	 Wsg8uG8q6cSmvwlgeJ6PFS2VwvUlEZwd/LO3Y7lH/odwkiDSFGchLPsgqm7UgOwPwJ
	 YL8xps4uREMf97Zc12/2mrarAGPeDrtCw6ugZUk9/MOAoIHZN1WY5EuwEHgXjpSz51
	 yJfDvs/7rmfx8C8y4FtDWPthXdwtb2hgw7mwPRlXoqWQ2O75Ak43Bzdjii0ltr0hKy
	 e46ml6+1ZMMn436GDY7jbddaePt9Y4Kf4BrvAyZWkwflLKHZSQPDgePwOQ5ZUW2rNp
	 VpBDzdmZF41qA==
From: "Xin Li (Intel)" <xin@zytor.com>
To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
        linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
        netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        acme@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com,
        peterz@infradead.org, namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com
Subject: [RFC PATCH v2 27/34] x86/msr: Rename native_write_msr() to native_wrmsrq()
Date: Tue, 22 Apr 2025 01:22:08 -0700
Message-ID: <20250422082216.1954310-28-xin@zytor.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250422082216.1954310-1-xin@zytor.com>
References: <20250422082216.1954310-1-xin@zytor.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Signed-off-by: Xin Li (Intel) <xin@zytor.com>
---
 arch/x86/include/asm/msr.h | 4 ++--
 arch/x86/kernel/kvmclock.c | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/arch/x86/include/asm/msr.h b/arch/x86/include/asm/msr.h
index 2a62a899f7a5..72a1c3301d46 100644
--- a/arch/x86/include/asm/msr.h
+++ b/arch/x86/include/asm/msr.h
@@ -369,7 +369,7 @@ static __always_inline int rdmsrq_safe(u32 msr, u64 *val)
  *        native_wrmsrq_no_trace()    native_write_msr_safe()        |
  *                   /        \                                      |
  *                  /          \                                     |
- * native_wrmsr_no_trace()    native_write_msr()                     |
+ * native_wrmsr_no_trace()    native_wrmsrq()                        |
  *                                                                   |
  *                                                                   |
  *                                                                   |
@@ -472,7 +472,7 @@ static __always_inline void native_wrmsr_no_trace(u32 msr, u32 low, u32 high)
 	native_wrmsrq_no_trace(msr, (u64)high << 32 | low);
 }
 
-static inline void notrace native_write_msr(u32 msr, u64 val)
+static inline void notrace native_wrmsrq(u32 msr, u64 val)
 {
 	native_wrmsrq_no_trace(msr, val);
 
diff --git a/arch/x86/kernel/kvmclock.c b/arch/x86/kernel/kvmclock.c
index ca0a49eeac4a..36417fed7f18 100644
--- a/arch/x86/kernel/kvmclock.c
+++ b/arch/x86/kernel/kvmclock.c
@@ -196,7 +196,7 @@ static void kvm_setup_secondary_clock(void)
 void kvmclock_disable(void)
 {
 	if (msr_kvm_system_time)
-		native_write_msr(msr_kvm_system_time, 0);
+		native_wrmsrq(msr_kvm_system_time, 0);
 }
 
 static void __init kvmclock_init_mem(void)
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 22 08:32:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 08:32:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.961998.1353371 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u793i-0003sa-MV; Tue, 22 Apr 2025 08:32:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 961998.1353371; Tue, 22 Apr 2025 08: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 1u793i-0003sT-Ie; Tue, 22 Apr 2025 08:32:50 +0000
Received: by outflank-mailman (input) for mailman id 961998;
 Tue, 22 Apr 2025 08: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=Qhpm=XI=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u78vM-0004wX-Pr
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 08:24:12 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1d376244-1f53-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 10:23:49 +0200 (CEST)
Received: from terminus.zytor.com (terminus.zytor.com
 [IPv6:2607:7c80:54:3:0:0:0:136]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53M8MG9m1954391
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Tue, 22 Apr 2025 01:23:30 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1d376244-1f53-11f0-9ffb-bf95429c2676
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53M8MG9m1954391
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745310212;
	bh=qnYCpm2Cl6ZIZ5hId3xkbPkJqqrZQFZfyOkhGDhffqY=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=Uc1b2MMHUkmSSWkI2MOrRUT6ZGc7p2OK1RO57VTRGzrFk3nJp7mExF9yRLqhXwrcN
	 BEEh5kJRgcNa0ORqLGKos3bgYft/LGNyer5Hj/VmrWBwEfN4bo5k4h7fYDJnj7l0iH
	 x3KPzP8Y8/4VNpO8JH9Yfwzhho87jdCmeXcBpjzy/qaN1+VLUT/st/KMk2S7jIMbTL
	 ErV/dz7vQ+VWICcFlhVd+X7D1ljAh8bI0Ed7Om76UDvHltu1oSI+3z4c9vWm1fO4pm
	 4dTYUhuIvfW4g6DD8/vRKD69Q3YVmGv0OG8qFORLYD4AB4LVkHungT3s69bi00Wvfu
	 KweyIKTZ9esZQ==
From: "Xin Li (Intel)" <xin@zytor.com>
To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
        linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
        netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        acme@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com,
        peterz@infradead.org, namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com
Subject: [RFC PATCH v2 34/34] x86/msr: Convert native_rdmsr_no_trace() uses to native_rdmsrq_no_trace() uses
Date: Tue, 22 Apr 2025 01:22:15 -0700
Message-ID: <20250422082216.1954310-35-xin@zytor.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250422082216.1954310-1-xin@zytor.com>
References: <20250422082216.1954310-1-xin@zytor.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Convert native_rdmsr_no_trace() uses to native_rdmsrq_no_trace() uses
cleanly with the use of struct msr, and remove native_rdmsr_no_trace().

Signed-off-by: Xin Li (Intel) <xin@zytor.com>
---
 arch/x86/include/asm/microcode.h      |  6 +++---
 arch/x86/include/asm/msr.h            | 13 +++----------
 arch/x86/kernel/cpu/microcode/amd.c   |  8 ++------
 arch/x86/kernel/cpu/microcode/core.c  |  4 ++--
 arch/x86/kernel/cpu/microcode/intel.c |  6 +++---
 5 files changed, 13 insertions(+), 24 deletions(-)

diff --git a/arch/x86/include/asm/microcode.h b/arch/x86/include/asm/microcode.h
index d581fdaf1f36..1d9641349744 100644
--- a/arch/x86/include/asm/microcode.h
+++ b/arch/x86/include/asm/microcode.h
@@ -61,7 +61,7 @@ static inline int intel_microcode_get_datasize(struct microcode_header_intel *hd
 
 static inline u32 intel_get_microcode_revision(void)
 {
-	u32 rev, dummy;
+	struct msr val;
 
 	native_wrmsrq_no_trace(MSR_IA32_UCODE_REV, 0);
 
@@ -69,9 +69,9 @@ static inline u32 intel_get_microcode_revision(void)
 	native_cpuid_eax(1);
 
 	/* get the current revision from MSR 0x8B */
-	native_rdmsr_no_trace(MSR_IA32_UCODE_REV, dummy, rev);
+	val.q = native_rdmsrq_no_trace(MSR_IA32_UCODE_REV);
 
-	return rev;
+	return val.h;
 }
 #endif /* !CONFIG_CPU_SUP_INTEL */
 
diff --git a/arch/x86/include/asm/msr.h b/arch/x86/include/asm/msr.h
index be593a15a838..aebcd846af3e 100644
--- a/arch/x86/include/asm/msr.h
+++ b/arch/x86/include/asm/msr.h
@@ -141,9 +141,9 @@ static __always_inline bool is_msr_imm_insn(void *ip)
  *                            /     \                                |
  *                           /       \                               |
  *        native_rdmsrq_no_trace()    native_rdmsrq_safe()           |
- *                   /      \                                        |
- *                  /        \                                       |
- * native_rdmsr_no_trace()    native_rdmsrq()                        |
+ *               /                                                   |
+ *              /                                                    |
+ *      native_rdmsrq()                                              |
  *                                                                   |
  *                                                                   |
  *                                                                   |
@@ -239,13 +239,6 @@ static __always_inline u64 native_rdmsrq_no_trace(u32 msr)
 	return val;
 }
 
-#define native_rdmsr_no_trace(msr, low, high)		\
-do {							\
-	u64 __val = native_rdmsrq_no_trace(msr);	\
-	(void)((low) = (u32)__val);			\
-	(void)((high) = (u32)(__val >> 32));		\
-} while (0)
-
 static inline u64 native_rdmsrq(u32 msr)
 {
 	u64 val = native_rdmsrq_no_trace(msr);
diff --git a/arch/x86/kernel/cpu/microcode/amd.c b/arch/x86/kernel/cpu/microcode/amd.c
index f1f275ddab57..b4d66e79089c 100644
--- a/arch/x86/kernel/cpu/microcode/amd.c
+++ b/arch/x86/kernel/cpu/microcode/amd.c
@@ -254,11 +254,7 @@ static bool verify_sha256_digest(u32 patch_id, u32 cur_rev, const u8 *data, unsi
 
 static u32 get_patch_level(void)
 {
-	u32 rev, dummy __always_unused;
-
-	native_rdmsr_no_trace(MSR_AMD64_PATCH_LEVEL, rev, dummy);
-
-	return rev;
+	return native_rdmsrq_no_trace(MSR_AMD64_PATCH_LEVEL);
 }
 
 static union cpuid_1_eax ucode_rev_to_cpuid(unsigned int val)
@@ -835,7 +831,7 @@ static struct ucode_patch *find_patch(unsigned int cpu)
 
 void reload_ucode_amd(unsigned int cpu)
 {
-	u32 rev, dummy __always_unused;
+	u32 rev;
 	struct microcode_amd *mc;
 	struct ucode_patch *p;
 
diff --git a/arch/x86/kernel/cpu/microcode/core.c b/arch/x86/kernel/cpu/microcode/core.c
index 9bda8fd987ab..81b264373d3e 100644
--- a/arch/x86/kernel/cpu/microcode/core.c
+++ b/arch/x86/kernel/cpu/microcode/core.c
@@ -81,10 +81,10 @@ struct early_load_data early_data;
  */
 static bool amd_check_current_patch_level(void)
 {
-	u32 lvl, dummy, i;
+	u32 lvl, i;
 	u32 *levels;
 
-	native_rdmsr_no_trace(MSR_AMD64_PATCH_LEVEL, lvl, dummy);
+	lvl = native_rdmsrq_no_trace(MSR_AMD64_PATCH_LEVEL);
 
 	levels = final_levels;
 
diff --git a/arch/x86/kernel/cpu/microcode/intel.c b/arch/x86/kernel/cpu/microcode/intel.c
index c0307b1ad63d..1b484214f3ee 100644
--- a/arch/x86/kernel/cpu/microcode/intel.c
+++ b/arch/x86/kernel/cpu/microcode/intel.c
@@ -75,11 +75,11 @@ void intel_collect_cpu_info(struct cpu_signature *sig)
 	sig->rev = intel_get_microcode_revision();
 
 	if (IFM(x86_family(sig->sig), x86_model(sig->sig)) >= INTEL_PENTIUM_III_DESCHUTES) {
-		unsigned int val[2];
+		struct msr val;
 
 		/* get processor flags from MSR 0x17 */
-		native_rdmsr_no_trace(MSR_IA32_PLATFORM_ID, val[0], val[1]);
-		sig->pf = 1 << ((val[1] >> 18) & 7);
+		val.q = native_rdmsrq_no_trace(MSR_IA32_PLATFORM_ID);
+		sig->pf = 1 << ((val.h >> 18) & 7);
 	}
 }
 EXPORT_SYMBOL_GPL(intel_collect_cpu_info);
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 22 08:32:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 08:32:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.962002.1353381 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u793m-0004Bl-Rm; Tue, 22 Apr 2025 08:32:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 962002.1353381; Tue, 22 Apr 2025 08: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 1u793m-0004Be-Oy; Tue, 22 Apr 2025 08:32:54 +0000
Received: by outflank-mailman (input) for mailman id 962002;
 Tue, 22 Apr 2025 08:32: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=Qhpm=XI=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u78uk-0004wM-QB
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 08:23:34 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 132477dd-1f53-11f0-9eb0-5ba50f476ded;
 Tue, 22 Apr 2025 10:23:32 +0200 (CEST)
Received: from terminus.zytor.com (terminus.zytor.com
 [IPv6:2607:7c80:54:3:0:0:0:136]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53M8MG9d1954391
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Tue, 22 Apr 2025 01:23:11 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 132477dd-1f53-11f0-9eb0-5ba50f476ded
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53M8MG9d1954391
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745310193;
	bh=surLjFBivIIEufZnV9GysArl3hqE7z9bLE2rz9eXLVY=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=PDVPu9XQHbsy+9zMB77AuUPJAFzP6+3MovevbJMBmQVh/3iVUCYwI5Ng1h0xT30vm
	 X8HfQftwL0hag/dd4pb7oRSGGFlpdc5yUKF1aLAtQjdTnu6WUfuwsxheUgx5rH1l3I
	 VFJ+eXJ5UUCW8fv8acq5ydfQce4mXeEXCPGFye3tcXqJaX2GSNUs4pIGDEhbMrQ960
	 oBgHwyc9FaWWsdewM2UB4aEXKOAPOSMghbAOOdGe/uEpV21elRfjtANUuRWv5NbX/h
	 S8xE7Lxl3sNA9/kFkD2QVJVloW74MhhCeuDf/dOEyAHbDkTIynJQA/jRK7RFP66Jf1
	 hLdcobD2D4VHQ==
From: "Xin Li (Intel)" <xin@zytor.com>
To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
        linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
        netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        acme@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com,
        peterz@infradead.org, namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com
Subject: [RFC PATCH v2 25/34] x86/msr: Rename native_wrmsrq() to native_wrmsrq_no_trace()
Date: Tue, 22 Apr 2025 01:22:06 -0700
Message-ID: <20250422082216.1954310-26-xin@zytor.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250422082216.1954310-1-xin@zytor.com>
References: <20250422082216.1954310-1-xin@zytor.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

native_wrmsrq() doesn't do trace thus can be used in noinstr context,
rename it to native_wrmsrq_no_trace() to make it explicit.

Signed-off-by: Xin Li (Intel) <xin@zytor.com>
---
 arch/x86/events/amd/brs.c                 | 2 +-
 arch/x86/hyperv/ivm.c                     | 2 +-
 arch/x86/include/asm/apic.h               | 2 +-
 arch/x86/include/asm/fred.h               | 2 +-
 arch/x86/include/asm/microcode.h          | 2 +-
 arch/x86/include/asm/msr.h                | 8 ++++----
 arch/x86/include/asm/sev-internal.h       | 2 +-
 arch/x86/include/asm/spec-ctrl.h          | 2 +-
 arch/x86/kernel/cpu/mce/core.c            | 2 +-
 arch/x86/kernel/cpu/microcode/amd.c       | 2 +-
 arch/x86/kernel/cpu/microcode/intel.c     | 2 +-
 arch/x86/kernel/cpu/resctrl/pseudo_lock.c | 2 +-
 arch/x86/kvm/vmx/vmx.c                    | 8 ++++----
 13 files changed, 19 insertions(+), 19 deletions(-)

diff --git a/arch/x86/events/amd/brs.c b/arch/x86/events/amd/brs.c
index 06f35a6b58a5..0153616a97cd 100644
--- a/arch/x86/events/amd/brs.c
+++ b/arch/x86/events/amd/brs.c
@@ -44,7 +44,7 @@ static inline unsigned int brs_to(int idx)
 static __always_inline void set_debug_extn_cfg(u64 val)
 {
 	/* bits[4:3] must always be set to 11b */
-	native_wrmsrq(MSR_AMD_DBG_EXTN_CFG, val | 3ULL << 3);
+	native_wrmsrq_no_trace(MSR_AMD_DBG_EXTN_CFG, val | 3ULL << 3);
 }
 
 static __always_inline u64 get_debug_extn_cfg(void)
diff --git a/arch/x86/hyperv/ivm.c b/arch/x86/hyperv/ivm.c
index 09a165a3c41e..821609af5bd2 100644
--- a/arch/x86/hyperv/ivm.c
+++ b/arch/x86/hyperv/ivm.c
@@ -116,7 +116,7 @@ static inline u64 rd_ghcb_msr(void)
 
 static inline void wr_ghcb_msr(u64 val)
 {
-	native_wrmsrq(MSR_AMD64_SEV_ES_GHCB, val);
+	native_wrmsrq_no_trace(MSR_AMD64_SEV_ES_GHCB, val);
 }
 
 static enum es_result hv_ghcb_hv_call(struct ghcb *ghcb, u64 exit_code,
diff --git a/arch/x86/include/asm/apic.h b/arch/x86/include/asm/apic.h
index 68e10e30fe9b..442127c3e1f5 100644
--- a/arch/x86/include/asm/apic.h
+++ b/arch/x86/include/asm/apic.h
@@ -214,7 +214,7 @@ static inline void native_apic_msr_write(u32 reg, u32 v)
 
 static inline void native_apic_msr_eoi(void)
 {
-	native_wrmsrq(APIC_BASE_MSR + (APIC_EOI >> 4), APIC_EOI_ACK);
+	native_wrmsrq_no_trace(APIC_BASE_MSR + (APIC_EOI >> 4), APIC_EOI_ACK);
 }
 
 static inline u32 native_apic_msr_read(u32 reg)
diff --git a/arch/x86/include/asm/fred.h b/arch/x86/include/asm/fred.h
index 8ae4429e5401..3a58545415d9 100644
--- a/arch/x86/include/asm/fred.h
+++ b/arch/x86/include/asm/fred.h
@@ -101,7 +101,7 @@ static __always_inline void fred_update_rsp0(void)
 	unsigned long rsp0 = (unsigned long) task_stack_page(current) + THREAD_SIZE;
 
 	if (cpu_feature_enabled(X86_FEATURE_FRED) && (__this_cpu_read(fred_rsp0) != rsp0)) {
-		native_wrmsrq(MSR_IA32_FRED_RSP0, rsp0);
+		native_wrmsrq_no_trace(MSR_IA32_FRED_RSP0, rsp0);
 		__this_cpu_write(fred_rsp0, rsp0);
 	}
 }
diff --git a/arch/x86/include/asm/microcode.h b/arch/x86/include/asm/microcode.h
index 107a1aaa211b..da482f430d80 100644
--- a/arch/x86/include/asm/microcode.h
+++ b/arch/x86/include/asm/microcode.h
@@ -63,7 +63,7 @@ static inline u32 intel_get_microcode_revision(void)
 {
 	u32 rev, dummy;
 
-	native_wrmsrq(MSR_IA32_UCODE_REV, 0);
+	native_wrmsrq_no_trace(MSR_IA32_UCODE_REV, 0);
 
 	/* As documented in the SDM: Do a CPUID 1 here */
 	native_cpuid_eax(1);
diff --git a/arch/x86/include/asm/msr.h b/arch/x86/include/asm/msr.h
index 5271cb002b23..d130bdeed3ce 100644
--- a/arch/x86/include/asm/msr.h
+++ b/arch/x86/include/asm/msr.h
@@ -366,7 +366,7 @@ static __always_inline int rdmsrq_safe(u32 msr, u64 *val)
  *                         __native_wrmsrq()   -----------------------
  *                            /     \                                |
  *                           /       \                               |
- *               native_wrmsrq()    native_write_msr_safe()          |
+ *        native_wrmsrq_no_trace()    native_write_msr_safe()        |
  *                   /    \                                          |
  *                  /      \                                         |
  *      native_wrmsr()    native_write_msr()                         |
@@ -462,19 +462,19 @@ static __always_inline bool __native_wrmsrq(u32 msr, u64 val, int type)
 	return __native_wrmsrq_variable(msr, val, type);
 }
 
-static __always_inline void native_wrmsrq(u32 msr, u64 val)
+static __always_inline void native_wrmsrq_no_trace(u32 msr, u64 val)
 {
 	__native_wrmsrq(msr, val, EX_TYPE_WRMSR);
 }
 
 static __always_inline void native_wrmsr(u32 msr, u32 low, u32 high)
 {
-	native_wrmsrq(msr, (u64)high << 32 | low);
+	native_wrmsrq_no_trace(msr, (u64)high << 32 | low);
 }
 
 static inline void notrace native_write_msr(u32 msr, u64 val)
 {
-	native_wrmsrq(msr, val);
+	native_wrmsrq_no_trace(msr, val);
 
 	if (tracepoint_enabled(write_msr))
 		do_trace_write_msr(msr, val, 0);
diff --git a/arch/x86/include/asm/sev-internal.h b/arch/x86/include/asm/sev-internal.h
index d259bcec220a..7eb030702435 100644
--- a/arch/x86/include/asm/sev-internal.h
+++ b/arch/x86/include/asm/sev-internal.h
@@ -101,7 +101,7 @@ static inline u64 sev_es_rd_ghcb_msr(void)
 
 static __always_inline void sev_es_wr_ghcb_msr(u64 val)
 {
-	native_wrmsrq(MSR_AMD64_SEV_ES_GHCB, val);
+	native_wrmsrq_no_trace(MSR_AMD64_SEV_ES_GHCB, val);
 }
 
 enum es_result sev_es_ghcb_hv_call(struct ghcb *ghcb,
diff --git a/arch/x86/include/asm/spec-ctrl.h b/arch/x86/include/asm/spec-ctrl.h
index 00b7e0398210..8cf69849bbbe 100644
--- a/arch/x86/include/asm/spec-ctrl.h
+++ b/arch/x86/include/asm/spec-ctrl.h
@@ -84,7 +84,7 @@ static inline u64 ssbd_tif_to_amd_ls_cfg(u64 tifn)
 static __always_inline void __update_spec_ctrl(u64 val)
 {
 	__this_cpu_write(x86_spec_ctrl_current, val);
-	native_wrmsrq(MSR_IA32_SPEC_CTRL, val);
+	native_wrmsrq_no_trace(MSR_IA32_SPEC_CTRL, val);
 }
 
 #ifdef CONFIG_SMP
diff --git a/arch/x86/kernel/cpu/mce/core.c b/arch/x86/kernel/cpu/mce/core.c
index b854a60238de..bd3cb984ccb9 100644
--- a/arch/x86/kernel/cpu/mce/core.c
+++ b/arch/x86/kernel/cpu/mce/core.c
@@ -1321,7 +1321,7 @@ static noinstr bool mce_check_crashing_cpu(void)
 		}
 
 		if (mcgstatus & MCG_STATUS_RIPV) {
-			native_wrmsrq(MSR_IA32_MCG_STATUS, 0);
+			native_wrmsrq_no_trace(MSR_IA32_MCG_STATUS, 0);
 			return true;
 		}
 	}
diff --git a/arch/x86/kernel/cpu/microcode/amd.c b/arch/x86/kernel/cpu/microcode/amd.c
index 1798a6c027f8..41c553396500 100644
--- a/arch/x86/kernel/cpu/microcode/amd.c
+++ b/arch/x86/kernel/cpu/microcode/amd.c
@@ -607,7 +607,7 @@ static bool __apply_microcode_amd(struct microcode_amd *mc, u32 *cur_rev,
 	if (!verify_sha256_digest(mc->hdr.patch_id, *cur_rev, (const u8 *)p_addr, psize))
 		return false;
 
-	native_wrmsrq(MSR_AMD64_PATCH_LOADER, p_addr);
+	native_wrmsrq_no_trace(MSR_AMD64_PATCH_LOADER, p_addr);
 
 	if (x86_family(bsp_cpuid_1_eax) == 0x17) {
 		unsigned long p_addr_end = p_addr + psize - 1;
diff --git a/arch/x86/kernel/cpu/microcode/intel.c b/arch/x86/kernel/cpu/microcode/intel.c
index 86e1047f738f..26e13dc4cedd 100644
--- a/arch/x86/kernel/cpu/microcode/intel.c
+++ b/arch/x86/kernel/cpu/microcode/intel.c
@@ -320,7 +320,7 @@ static enum ucode_state __apply_microcode(struct ucode_cpu_info *uci,
 	}
 
 	/* write microcode via MSR 0x79 */
-	native_wrmsrq(MSR_IA32_UCODE_WRITE, (unsigned long)mc->bits);
+	native_wrmsrq_no_trace(MSR_IA32_UCODE_WRITE, (unsigned long)mc->bits);
 
 	rev = intel_get_microcode_revision();
 	if (rev != mc->hdr.rev)
diff --git a/arch/x86/kernel/cpu/resctrl/pseudo_lock.c b/arch/x86/kernel/cpu/resctrl/pseudo_lock.c
index cc534a83f19d..e970a0de894f 100644
--- a/arch/x86/kernel/cpu/resctrl/pseudo_lock.c
+++ b/arch/x86/kernel/cpu/resctrl/pseudo_lock.c
@@ -483,7 +483,7 @@ int resctrl_arch_pseudo_lock_fn(void *_plr)
 	 * cache.
 	 */
 	saved_msr = native_rdmsrq(MSR_MISC_FEATURE_CONTROL);
-	native_wrmsrq(MSR_MISC_FEATURE_CONTROL, prefetch_disable_bits);
+	native_wrmsrq_no_trace(MSR_MISC_FEATURE_CONTROL, prefetch_disable_bits);
 	closid_p = this_cpu_read(pqr_state.cur_closid);
 	rmid_p = this_cpu_read(pqr_state.cur_rmid);
 	mem_r = plr->kmem;
diff --git a/arch/x86/kvm/vmx/vmx.c b/arch/x86/kvm/vmx/vmx.c
index e73c1d5ba6c4..b53575dee64a 100644
--- a/arch/x86/kvm/vmx/vmx.c
+++ b/arch/x86/kvm/vmx/vmx.c
@@ -382,7 +382,7 @@ static __always_inline void vmx_disable_fb_clear(struct vcpu_vmx *vmx)
 
 	msr = native_rdmsrq(MSR_IA32_MCU_OPT_CTRL);
 	msr |= FB_CLEAR_DIS;
-	native_wrmsrq(MSR_IA32_MCU_OPT_CTRL, msr);
+	native_wrmsrq_no_trace(MSR_IA32_MCU_OPT_CTRL, msr);
 	/* Cache the MSR value to avoid reading it later */
 	vmx->msr_ia32_mcu_opt_ctrl = msr;
 }
@@ -393,7 +393,7 @@ static __always_inline void vmx_enable_fb_clear(struct vcpu_vmx *vmx)
 		return;
 
 	vmx->msr_ia32_mcu_opt_ctrl &= ~FB_CLEAR_DIS;
-	native_wrmsrq(MSR_IA32_MCU_OPT_CTRL, vmx->msr_ia32_mcu_opt_ctrl);
+	native_wrmsrq_no_trace(MSR_IA32_MCU_OPT_CTRL, vmx->msr_ia32_mcu_opt_ctrl);
 }
 
 static void vmx_update_fb_clear_dis(struct kvm_vcpu *vcpu, struct vcpu_vmx *vmx)
@@ -6745,7 +6745,7 @@ static noinstr void vmx_l1d_flush(struct kvm_vcpu *vcpu)
 	vcpu->stat.l1d_flush++;
 
 	if (static_cpu_has(X86_FEATURE_FLUSH_L1D)) {
-		native_wrmsrq(MSR_IA32_FLUSH_CMD, L1D_FLUSH);
+		native_wrmsrq_no_trace(MSR_IA32_FLUSH_CMD, L1D_FLUSH);
 		return;
 	}
 
@@ -7318,7 +7318,7 @@ void noinstr vmx_spec_ctrl_restore_host(struct vcpu_vmx *vmx,
 	 */
 	if (cpu_feature_enabled(X86_FEATURE_KERNEL_IBRS) ||
 	    vmx->spec_ctrl != hostval)
-		native_wrmsrq(MSR_IA32_SPEC_CTRL, hostval);
+		native_wrmsrq_no_trace(MSR_IA32_SPEC_CTRL, hostval);
 
 	barrier_nospec();
 }
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 22 08:33:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 08:33:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.962010.1353391 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u793w-0004cc-31; Tue, 22 Apr 2025 08:33:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 962010.1353391; Tue, 22 Apr 2025 08:33: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 1u793v-0004cT-WC; Tue, 22 Apr 2025 08:33:04 +0000
Received: by outflank-mailman (input) for mailman id 962010;
 Tue, 22 Apr 2025 08:33: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=Qhpm=XI=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u78ul-0004wX-Ir
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 08:23:35 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 118c77b3-1f53-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 10:23:29 +0200 (CEST)
Received: from terminus.zytor.com (terminus.zytor.com
 [IPv6:2607:7c80:54:3:0:0:0:136]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53M8MG9c1954391
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Tue, 22 Apr 2025 01:23:09 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 118c77b3-1f53-11f0-9ffb-bf95429c2676
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53M8MG9c1954391
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745310191;
	bh=sK7SiEcLnDzK1DJz1rvdwY9xA/sqvcg2VrbN9TcPHbg=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=foWRBYLsKAd18ivlovmpAbGclkDRxT1gihjkFNepAQkuXKH79JRP4ulwlbvMqwqjP
	 suJQ6v0PsxMNzpKDmTjfE93RTV8V4gdoIR1d3JcQCSVVdKiFQhtivKD6EKhIDH+GvA
	 pmr4R679vcjmvWNhbOk9b+590Omb7eLnU3x+Um/wSBr4mUnyhDNssmAuPp5adjEKNR
	 oZMbEABpZ3jLduPbsg/STQMgOMmdpaBwCIu1MuDUpjSPvSNdVKRkzoakFpe/Lso2Ci
	 xcBEorcc04dH7iKh95hVNKLSN78H46XgSqj4+4Nrve/RjaXkyN82gMV1u86fsqhsvJ
	 +LDnx8McRaOiw==
From: "Xin Li (Intel)" <xin@zytor.com>
To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
        linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
        netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        acme@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com,
        peterz@infradead.org, namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com
Subject: [RFC PATCH v2 24/34] x86/mce: Use native MSR API __native_{wr,rd}msrq()
Date: Tue, 22 Apr 2025 01:22:05 -0700
Message-ID: <20250422082216.1954310-25-xin@zytor.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250422082216.1954310-1-xin@zytor.com>
References: <20250422082216.1954310-1-xin@zytor.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Use native MSR API __native_{wr,rd}msrq() instead of MSR assemely.

Signed-off-by: Xin Li (Intel) <xin@zytor.com>
---
 arch/x86/kernel/cpu/mce/core.c | 55 +++++++++++++++++++++-------------
 1 file changed, 35 insertions(+), 20 deletions(-)

diff --git a/arch/x86/kernel/cpu/mce/core.c b/arch/x86/kernel/cpu/mce/core.c
index 32286bad75e6..b854a60238de 100644
--- a/arch/x86/kernel/cpu/mce/core.c
+++ b/arch/x86/kernel/cpu/mce/core.c
@@ -370,13 +370,40 @@ static int msr_to_offset(u32 msr)
 
 void ex_handler_msr_mce(struct pt_regs *regs, bool wrmsr)
 {
+	bool imm_insn = is_msr_imm_insn((void *)regs->ip);
+	u32 msr;
+
+	if (imm_insn)
+		/*
+		 * The 32-bit immediate specifying a MSR is encoded into
+		 * byte 5 ~ 8 of an immediate form MSR instruction.
+		 */
+		msr = *(u32 *)(regs->ip + 5);
+	else
+		msr = (u32)regs->cx;
+
 	if (wrmsr) {
-		pr_emerg("MSR access error: WRMSR to 0x%x (tried to write 0x%08x%08x) at rIP: 0x%lx (%pS)\n",
-			 (unsigned int)regs->cx, (unsigned int)regs->dx, (unsigned int)regs->ax,
-			 regs->ip, (void *)regs->ip);
+		/*
+		 * To maintain consistency with existing RDMSR and WRMSR(NS) instructions,
+		 * the register operand for immediate form MSR instructions is ALWAYS
+		 * encoded as RAX in <asm/msr.h> for reading or writing the MSR value.
+		 */
+		u64 msr_val = regs->ax;
+
+		if (!imm_insn) {
+			/*
+			 * On processors that support the Intel 64 architecture, the
+			 * high-order 32 bits of each of RAX and RDX are ignored.
+			 */
+			msr_val &= 0xffffffff;
+			msr_val |= (u64)regs->dx << 32;
+		}
+
+		pr_emerg("MSR access error: WRMSR to 0x%x (tried to write 0x%016llx) at rIP: 0x%lx (%pS)\n",
+			 msr, msr_val, regs->ip, (void *)regs->ip);
 	} else {
 		pr_emerg("MSR access error: RDMSR from 0x%x at rIP: 0x%lx (%pS)\n",
-			 (unsigned int)regs->cx, regs->ip, (void *)regs->ip);
+			 msr, regs->ip, (void *)regs->ip);
 	}
 
 	show_stack_regs(regs);
@@ -390,7 +417,7 @@ void ex_handler_msr_mce(struct pt_regs *regs, bool wrmsr)
 /* MSR access wrappers used for error injection */
 noinstr u64 mce_rdmsrq(u32 msr)
 {
-	DECLARE_ARGS(val, low, high);
+	u64 val;
 
 	if (__this_cpu_read(injectm.finished)) {
 		int offset;
@@ -414,19 +441,13 @@ noinstr u64 mce_rdmsrq(u32 msr)
 	 * architectural violation and needs to be reported to hw vendor. Panic
 	 * the box to not allow any further progress.
 	 */
-	asm volatile("1: rdmsr\n"
-		     "2:\n"
-		     _ASM_EXTABLE_TYPE(1b, 2b, EX_TYPE_RDMSR_IN_MCE)
-		     : EAX_EDX_RET(val, low, high) : "c" (msr));
+	__native_rdmsrq(msr, &val, EX_TYPE_RDMSR_IN_MCE);
 
-
-	return EAX_EDX_VAL(val, low, high);
+	return val;
 }
 
 static noinstr void mce_wrmsrq(u32 msr, u64 v)
 {
-	u32 low, high;
-
 	if (__this_cpu_read(injectm.finished)) {
 		int offset;
 
@@ -441,14 +462,8 @@ static noinstr void mce_wrmsrq(u32 msr, u64 v)
 		return;
 	}
 
-	low  = (u32)v;
-	high = (u32)(v >> 32);
-
 	/* See comment in mce_rdmsrq() */
-	asm volatile("1: wrmsr\n"
-		     "2:\n"
-		     _ASM_EXTABLE_TYPE(1b, 2b, EX_TYPE_WRMSR_IN_MCE)
-		     : : "c" (msr), "a"(low), "d" (high) : "memory");
+	__native_wrmsrq(msr, v, EX_TYPE_WRMSR_IN_MCE);
 }
 
 /*
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 22 08:33:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 08:33:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.962028.1353400 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u794E-0005Mi-Eq; Tue, 22 Apr 2025 08:33:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 962028.1353400; Tue, 22 Apr 2025 08:33: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 1u794E-0005MZ-Bx; Tue, 22 Apr 2025 08:33:22 +0000
Received: by outflank-mailman (input) for mailman id 962028;
 Tue, 22 Apr 2025 08:33:21 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Qhpm=XI=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u78uj-0004wX-IW
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 08:23:33 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0aca085a-1f53-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 10:23:18 +0200 (CEST)
Received: from terminus.zytor.com (terminus.zytor.com
 [IPv6:2607:7c80:54:3:0:0:0:136]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53M8MG9E1954391
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Tue, 22 Apr 2025 01:22:20 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0aca085a-1f53-11f0-9ffb-bf95429c2676
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53M8MG9E1954391
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745310142;
	bh=mYcTzU0oObhvxWiZx+iiw1dueV7yQ96m6ct2fgUgxlA=;
	h=From:To:Cc:Subject:Date:From;
	b=coQSwlhZKMasXch4vb9MccuN5lPE6K+czznn/cj5lrt8w3zCTLqPI3EvxgT/JXgLR
	 JyjiL4Jdfd1e6yDi2uLRF74KLb5HbAUDLx0QLG/V9QoskVA0B1JdssAt+3pkfAUH4L
	 HDOXgxSKh2KwOCizLlzk8+EehNeWtMVP7zozfQ2aTEAvuLwOKDLIJKJmFyE6XndVkg
	 iA+/X2cnKdqtk4yn7E856l7cmqtDR8XRCST0c8ZnAr47yysDHIB/AA6NA04jrNwZAr
	 EBPETFtsShEkDGlZrttN07OBL96YEQmtzFzBPc9HAWOPDwlfAZyYRr7G/9WrED437W
	 CowiWvGjoZBkA==
From: "Xin Li (Intel)" <xin@zytor.com>
To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
        linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
        netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        acme@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com,
        peterz@infradead.org, namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com
Subject: [RFC PATCH v2 00/34] MSR refactor with new MSR instructions support
Date: Tue, 22 Apr 2025 01:21:41 -0700
Message-ID: <20250422082216.1954310-1-xin@zytor.com>
X-Mailer: git-send-email 2.49.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Obviously the existing MSR code and the pv_ops MSR access APIs need some
love: https://lore.kernel.org/lkml/87y1h81ht4.ffs@tglx/

hpa has started a discussion about how to refactor it last October:
https://lore.kernel.org/lkml/7a4de623-ecda-4369-a7ae-0c43ef328177@zytor.com/

The consensus so far is to utilize the alternatives mechanism to eliminate
the Xen MSR access overhead on native systems and enable new MSR instructions
based on their availability.

To achieve this, a code refactor is required:

Patch 1 relocates rdtsc{,_ordered}() from <asm/msr.h> to <asm/tsc.h> and
removes the inclusion of <asm/msr.h> in <asm/tsc.h>.  As a result,
<asm/msr.h> must now be explicitly included in several source files where
it was previously included implicitly through <asm/tsc.h>.

Patches 2 ~ 6 refactor the code to use the alternatives mechanism to read
PMC.

Patches 7 ~ 16 unify and simplify the MSR API definitions and usages.

Patches 17 ~ 19 add basic support for immediate form MSR instructions,
e.g., its CPU feature bit and opcode.

Patch 20 adds a new exception type to allow a function call inside an
alternative for instruction emulation to "kick back" the exception into
the alternatives pattern, possibly invoking a different exception handling
pattern there, or at least indicating the "real" location of the fault.

patches 21 and 22 refactor the code to use the alternatives mechanism to
read and write MSR.

Patches 23 ~ 34 are afterwards cleanups.


H. Peter Anvin (Intel) (1):
  x86/extable: Implement EX_TYPE_FUNC_REWIND

Xin Li (Intel) (33):
  x86/msr: Move rdtsc{,_ordered}() to <asm/tsc.h>
  x86/msr: Remove rdpmc()
  x86/msr: Rename rdpmcl() to rdpmcq()
  x86/msr: Convert rdpmcq() into a function
  x86/msr: Return u64 consistently in Xen PMC read functions
  x86/msr: Use the alternatives mechanism to read PMC
  x86/msr: Convert __wrmsr() uses to native_wrmsr{,q}() uses
  x86/msr: Convert a native_wrmsr() use to native_wrmsrq()
  x86/msr: Add the native_rdmsrq() helper
  x86/msr: Convert __rdmsr() uses to native_rdmsrq() uses
  x86/msr: Remove calling native_{read,write}_msr{,_safe}() in
    pmu_msr_{read,write}()
  x86/msr: Remove pmu_msr_{read,write}()
  x86/xen/msr: Remove the error pointer argument from set_reg()
  x86/msr: refactor pv_cpu_ops.write_msr{_safe}()
  x86/msr: Replace wrmsr(msr, low, 0) with wrmsrq(msr, low)
  x86/msr: Change function type of native_read_msr_safe()
  x86/cpufeatures: Add a CPU feature bit for MSR immediate form
    instructions
  x86/opcode: Add immediate form MSR instructions
  x86/extable: Add support for immediate form MSR instructions
  x86/msr: Utilize the alternatives mechanism to write MSR
  x86/msr: Utilize the alternatives mechanism to read MSR
  x86/extable: Remove new dead code in ex_handler_msr()
  x86/mce: Use native MSR API __native_{wr,rd}msrq()
  x86/msr: Rename native_wrmsrq() to native_wrmsrq_no_trace()
  x86/msr: Rename native_wrmsr() to native_wrmsr_no_trace()
  x86/msr: Rename native_write_msr() to native_wrmsrq()
  x86/msr: Rename native_write_msr_safe() to native_wrmsrq_safe()
  x86/msr: Rename native_rdmsrq() to native_rdmsrq_no_trace()
  x86/msr: Rename native_rdmsr() to native_rdmsr_no_trace()
  x86/msr: Rename native_read_msr() to native_rdmsrq()
  x86/msr: Rename native_read_msr_safe() to native_rdmsrq_safe()
  x86/msr: Move the ARGS macros after the MSR read/write APIs
  x86/msr: Convert native_rdmsr_no_trace() uses to
    native_rdmsrq_no_trace() uses

 arch/x86/boot/startup/sme.c                   |   5 +-
 arch/x86/events/amd/brs.c                     |   4 +-
 arch/x86/events/amd/uncore.c                  |   2 +-
 arch/x86/events/core.c                        |   2 +-
 arch/x86/events/intel/core.c                  |   4 +-
 arch/x86/events/intel/ds.c                    |   2 +-
 arch/x86/events/msr.c                         |   3 +
 arch/x86/events/perf_event.h                  |   1 +
 arch/x86/events/probe.c                       |   2 +
 arch/x86/hyperv/hv_apic.c                     |   6 +-
 arch/x86/hyperv/hv_vtl.c                      |   4 +-
 arch/x86/hyperv/ivm.c                         |   7 +-
 arch/x86/include/asm/apic.h                   |   4 +-
 arch/x86/include/asm/asm.h                    |   6 +
 arch/x86/include/asm/cpufeatures.h            |   1 +
 arch/x86/include/asm/extable_fixup_types.h    |   1 +
 arch/x86/include/asm/fred.h                   |   3 +-
 arch/x86/include/asm/microcode.h              |  10 +-
 arch/x86/include/asm/mshyperv.h               |   3 +-
 arch/x86/include/asm/msr.h                    | 637 ++++++++++++------
 arch/x86/include/asm/paravirt.h               |  78 ---
 arch/x86/include/asm/paravirt_types.h         |  13 -
 arch/x86/include/asm/sev-internal.h           |   9 +-
 arch/x86/include/asm/spec-ctrl.h              |   2 +-
 arch/x86/include/asm/suspend_32.h             |   1 +
 arch/x86/include/asm/suspend_64.h             |   1 +
 arch/x86/include/asm/switch_to.h              |   4 +-
 arch/x86/include/asm/tsc.h                    |  76 ++-
 arch/x86/kernel/cpu/amd.c                     |   2 +-
 arch/x86/kernel/cpu/common.c                  |  10 +-
 arch/x86/kernel/cpu/mce/core.c                |  61 +-
 arch/x86/kernel/cpu/microcode/amd.c           |  10 +-
 arch/x86/kernel/cpu/microcode/core.c          |   4 +-
 arch/x86/kernel/cpu/microcode/intel.c         |   8 +-
 arch/x86/kernel/cpu/resctrl/pseudo_lock.c     |  25 +-
 arch/x86/kernel/cpu/resctrl/rdtgroup.c        |   2 +-
 arch/x86/kernel/cpu/scattered.c               |   1 +
 arch/x86/kernel/cpu/umwait.c                  |   4 +-
 arch/x86/kernel/fpu/xstate.h                  |   1 +
 arch/x86/kernel/hpet.c                        |   1 +
 arch/x86/kernel/kvm.c                         |   2 +-
 arch/x86/kernel/kvmclock.c                    |   2 +-
 arch/x86/kernel/paravirt.c                    |   5 -
 arch/x86/kernel/process_64.c                  |   1 +
 arch/x86/kernel/trace_clock.c                 |   2 +-
 arch/x86/kernel/tsc_sync.c                    |   1 +
 arch/x86/kvm/svm/svm.c                        |  34 +-
 arch/x86/kvm/vmx/vmx.c                        |  12 +-
 arch/x86/lib/kaslr.c                          |   2 +-
 arch/x86/lib/x86-opcode-map.txt               |   5 +-
 arch/x86/mm/extable.c                         | 181 +++--
 arch/x86/realmode/init.c                      |   1 +
 arch/x86/xen/enlighten_pv.c                   | 112 ++-
 arch/x86/xen/pmu.c                            |  63 +-
 arch/x86/xen/xen-asm.S                        | 113 ++++
 arch/x86/xen/xen-ops.h                        |  14 +-
 drivers/acpi/processor_perflib.c              |   1 +
 drivers/acpi/processor_throttling.c           |   3 +-
 drivers/cpufreq/amd-pstate-ut.c               |   2 +
 drivers/hwmon/hwmon-vid.c                     |   4 +
 drivers/net/vmxnet3/vmxnet3_drv.c             |   6 +-
 .../intel/speed_select_if/isst_if_common.c    |   1 +
 drivers/platform/x86/intel/turbo_max_3.c      |   1 +
 tools/arch/x86/lib/x86-opcode-map.txt         |   5 +-
 64 files changed, 988 insertions(+), 605 deletions(-)


base-commit: f30a0c0d2b08b355c01392538de8fc872387cb2b
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 22 08:33:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 08:33:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.962041.1353410 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u794T-00067X-NB; Tue, 22 Apr 2025 08:33:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 962041.1353410; Tue, 22 Apr 2025 08:33: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 1u794T-00066Q-JL; Tue, 22 Apr 2025 08:33:37 +0000
Received: by outflank-mailman (input) for mailman id 962041;
 Tue, 22 Apr 2025 08:33: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=Qhpm=XI=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u78uz-0004wM-TJ
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 08:23:49 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 17b62d18-1f53-11f0-9eb0-5ba50f476ded;
 Tue, 22 Apr 2025 10:23:40 +0200 (CEST)
Received: from terminus.zytor.com (terminus.zytor.com
 [IPv6:2607:7c80:54:3:0:0:0:136]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53M8MG9i1954391
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Tue, 22 Apr 2025 01:23:21 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 17b62d18-1f53-11f0-9eb0-5ba50f476ded
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53M8MG9i1954391
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745310203;
	bh=KF9UoUhpkeUaxol5GmRaBP0wotoAE475jYCZa+6vJrk=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=N6j53RZda7Hnrm3Z8UyJWyl2m7EfT1Jh76ZttRjn46pCv8YaQQ+xpoMdgq0mPnpKT
	 EwUMoOWhnYnb1/5hgNgmETHvL/rJmUEuW/oCXN9+U/55daY2aP+9r3mvUTRZj/8bsV
	 Hiuiyy+A89g2q4kl9x9SYelhIwx/krb/rTlGpcOePi8Lcb7Yrrt0i5MwE/MwittSk8
	 DUwskE+3zk5l9DH1aLljDwGukqrX7eL9Kc94LgWeRGlyrPWt2CjUbcUdgwBwaB+ifk
	 emZJByhMB2HFpmTeT9i0/P2Ha3s458mTGVQRX0DFn5l6yAdmgruipzB9tsCHO66Px/
	 QI5yU9wp4aydw==
From: "Xin Li (Intel)" <xin@zytor.com>
To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
        linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
        netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        acme@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com,
        peterz@infradead.org, namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com
Subject: [RFC PATCH v2 30/34] x86/msr: Rename native_rdmsr() to native_rdmsr_no_trace()
Date: Tue, 22 Apr 2025 01:22:11 -0700
Message-ID: <20250422082216.1954310-31-xin@zytor.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250422082216.1954310-1-xin@zytor.com>
References: <20250422082216.1954310-1-xin@zytor.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

native_rdmsr() doesn't do trace thus can be used in noinstr context,
rename it to native_rdmsr_no_trace() to make it explicit.

Signed-off-by: Xin Li (Intel) <xin@zytor.com>
---
 arch/x86/include/asm/microcode.h      | 2 +-
 arch/x86/include/asm/msr.h            | 8 ++++----
 arch/x86/kernel/cpu/microcode/amd.c   | 2 +-
 arch/x86/kernel/cpu/microcode/core.c  | 2 +-
 arch/x86/kernel/cpu/microcode/intel.c | 2 +-
 5 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/arch/x86/include/asm/microcode.h b/arch/x86/include/asm/microcode.h
index da482f430d80..d581fdaf1f36 100644
--- a/arch/x86/include/asm/microcode.h
+++ b/arch/x86/include/asm/microcode.h
@@ -69,7 +69,7 @@ static inline u32 intel_get_microcode_revision(void)
 	native_cpuid_eax(1);
 
 	/* get the current revision from MSR 0x8B */
-	native_rdmsr(MSR_IA32_UCODE_REV, dummy, rev);
+	native_rdmsr_no_trace(MSR_IA32_UCODE_REV, dummy, rev);
 
 	return rev;
 }
diff --git a/arch/x86/include/asm/msr.h b/arch/x86/include/asm/msr.h
index 050d750a5ab7..dfaac42b6258 100644
--- a/arch/x86/include/asm/msr.h
+++ b/arch/x86/include/asm/msr.h
@@ -158,9 +158,9 @@ static __always_inline bool is_msr_imm_insn(void *ip)
  *                            /     \                                |
  *                           /       \                               |
  *        native_rdmsrq_no_trace()    native_read_msr_safe()         |
- *                   /    \                                          |
- *                  /      \                                         |
- *      native_rdmsr()    native_read_msr()                          |
+ *                   /      \                                        |
+ *                  /        \                                       |
+ * native_rdmsr_no_trace()    native_read_msr()                      |
  *                                                                   |
  *                                                                   |
  *                                                                   |
@@ -256,7 +256,7 @@ static __always_inline u64 native_rdmsrq_no_trace(u32 msr)
 	return val;
 }
 
-#define native_rdmsr(msr, low, high)			\
+#define native_rdmsr_no_trace(msr, low, high)		\
 do {							\
 	u64 __val = native_rdmsrq_no_trace(msr);	\
 	(void)((low) = (u32)__val);			\
diff --git a/arch/x86/kernel/cpu/microcode/amd.c b/arch/x86/kernel/cpu/microcode/amd.c
index 41c553396500..f1f275ddab57 100644
--- a/arch/x86/kernel/cpu/microcode/amd.c
+++ b/arch/x86/kernel/cpu/microcode/amd.c
@@ -256,7 +256,7 @@ static u32 get_patch_level(void)
 {
 	u32 rev, dummy __always_unused;
 
-	native_rdmsr(MSR_AMD64_PATCH_LEVEL, rev, dummy);
+	native_rdmsr_no_trace(MSR_AMD64_PATCH_LEVEL, rev, dummy);
 
 	return rev;
 }
diff --git a/arch/x86/kernel/cpu/microcode/core.c b/arch/x86/kernel/cpu/microcode/core.c
index b3658d11e7b6..9bda8fd987ab 100644
--- a/arch/x86/kernel/cpu/microcode/core.c
+++ b/arch/x86/kernel/cpu/microcode/core.c
@@ -84,7 +84,7 @@ static bool amd_check_current_patch_level(void)
 	u32 lvl, dummy, i;
 	u32 *levels;
 
-	native_rdmsr(MSR_AMD64_PATCH_LEVEL, lvl, dummy);
+	native_rdmsr_no_trace(MSR_AMD64_PATCH_LEVEL, lvl, dummy);
 
 	levels = final_levels;
 
diff --git a/arch/x86/kernel/cpu/microcode/intel.c b/arch/x86/kernel/cpu/microcode/intel.c
index 26e13dc4cedd..c0307b1ad63d 100644
--- a/arch/x86/kernel/cpu/microcode/intel.c
+++ b/arch/x86/kernel/cpu/microcode/intel.c
@@ -78,7 +78,7 @@ void intel_collect_cpu_info(struct cpu_signature *sig)
 		unsigned int val[2];
 
 		/* get processor flags from MSR 0x17 */
-		native_rdmsr(MSR_IA32_PLATFORM_ID, val[0], val[1]);
+		native_rdmsr_no_trace(MSR_IA32_PLATFORM_ID, val[0], val[1]);
 		sig->pf = 1 << ((val[1] >> 18) & 7);
 	}
 }
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 22 08:34:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 08:34:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.962075.1353421 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u794t-00072v-VX; Tue, 22 Apr 2025 08:34:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 962075.1353421; Tue, 22 Apr 2025 08: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 1u794t-00072o-SX; Tue, 22 Apr 2025 08:34:03 +0000
Received: by outflank-mailman (input) for mailman id 962075;
 Tue, 22 Apr 2025 08:34: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=Qhpm=XI=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u78v1-0004wX-MW
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 08:23:51 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 17267c62-1f53-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 10:23:39 +0200 (CEST)
Received: from terminus.zytor.com (terminus.zytor.com
 [IPv6:2607:7c80:54:3:0:0:0:136]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53M8MG9g1954391
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Tue, 22 Apr 2025 01:23:18 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 17267c62-1f53-11f0-9ffb-bf95429c2676
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53M8MG9g1954391
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745310199;
	bh=KjomXZ5P3Zbm1klfdzn3LReOwRDs2PdqfVOgUPEXtew=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=MammLggyo/MjNNAwAcGt2FRRqSlsggJGU25zpYplrm30iO3Y/UZa+69mVrL7h5AdS
	 +QF2vmuyoTUyD+PdpH0lcuLBEfsSmWJnEV4E43GwV3sP/7cQrcCY/s75xekunodRVa
	 MBCN8M8aF0nhj0PDdRAf4MrLwGcINYVauVcmEuaMv8xJCquK+hO/zGDpXej860AYjg
	 NOT8SBUSpQ3ULjUuZ/sIg7bsPjGu5PLZtigXd69vD9lGPI77KfO9GCa1dmtAwL41Tk
	 B7LFh5ljq9pZHluYM3LgLnmCHGK++CYmGWll/VVGfqOlZWhC1wu5qdivPclw361f2G
	 tQVJYMIZbWMzA==
From: "Xin Li (Intel)" <xin@zytor.com>
To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
        linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
        netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        acme@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com,
        peterz@infradead.org, namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com
Subject: [RFC PATCH v2 28/34] x86/msr: Rename native_write_msr_safe() to native_wrmsrq_safe()
Date: Tue, 22 Apr 2025 01:22:09 -0700
Message-ID: <20250422082216.1954310-29-xin@zytor.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250422082216.1954310-1-xin@zytor.com>
References: <20250422082216.1954310-1-xin@zytor.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Signed-off-by: Xin Li (Intel) <xin@zytor.com>
---
 arch/x86/include/asm/msr.h | 4 ++--
 arch/x86/kvm/svm/svm.c     | 6 +++---
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/arch/x86/include/asm/msr.h b/arch/x86/include/asm/msr.h
index 72a1c3301d46..a1c63bed14be 100644
--- a/arch/x86/include/asm/msr.h
+++ b/arch/x86/include/asm/msr.h
@@ -366,7 +366,7 @@ static __always_inline int rdmsrq_safe(u32 msr, u64 *val)
  *                         __native_wrmsrq()   -----------------------
  *                            /     \                                |
  *                           /       \                               |
- *        native_wrmsrq_no_trace()    native_write_msr_safe()        |
+ *        native_wrmsrq_no_trace()    native_wrmsrq_safe()           |
  *                   /        \                                      |
  *                  /          \                                     |
  * native_wrmsr_no_trace()    native_wrmsrq()                        |
@@ -480,7 +480,7 @@ static inline void notrace native_wrmsrq(u32 msr, u64 val)
 		do_trace_write_msr(msr, val, 0);
 }
 
-static inline int notrace native_write_msr_safe(u32 msr, u64 val)
+static inline int notrace native_wrmsrq_safe(u32 msr, u64 val)
 {
 	int err = __native_wrmsrq(msr, val, EX_TYPE_WRMSR_SAFE) ? -EIO : 0;
 
diff --git a/arch/x86/kvm/svm/svm.c b/arch/x86/kvm/svm/svm.c
index 838606f784c9..01dd3cd20730 100644
--- a/arch/x86/kvm/svm/svm.c
+++ b/arch/x86/kvm/svm/svm.c
@@ -486,7 +486,7 @@ static void svm_init_erratum_383(void)
 
 	val |= (1ULL << 47);
 
-	native_write_msr_safe(MSR_AMD64_DC_CFG, val);
+	native_wrmsrq_safe(MSR_AMD64_DC_CFG, val);
 
 	erratum_383_found = true;
 }
@@ -2159,11 +2159,11 @@ static bool is_erratum_383(void)
 
 	/* Clear MCi_STATUS registers */
 	for (i = 0; i < 6; ++i)
-		native_write_msr_safe(MSR_IA32_MCx_STATUS(i), 0);
+		native_wrmsrq_safe(MSR_IA32_MCx_STATUS(i), 0);
 
 	if (!native_read_msr_safe(MSR_IA32_MCG_STATUS, &value)) {
 		value &= ~(1ULL << 2);
-		native_write_msr_safe(MSR_IA32_MCG_STATUS, value);
+		native_wrmsrq_safe(MSR_IA32_MCG_STATUS, value);
 	}
 
 	/* Flush tlb to evict multi-match entries */
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 22 08:34:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 08:34:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.962083.1353431 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7953-0007Pz-6I; Tue, 22 Apr 2025 08:34:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 962083.1353431; Tue, 22 Apr 2025 08:34: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 1u7953-0007Ps-3D; Tue, 22 Apr 2025 08:34:13 +0000
Received: by outflank-mailman (input) for mailman id 962083;
 Tue, 22 Apr 2025 08:34:11 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Qhpm=XI=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u78ux-0004wM-TT
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 08:23:47 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 172d9d2c-1f53-11f0-9eb0-5ba50f476ded;
 Tue, 22 Apr 2025 10:23:39 +0200 (CEST)
Received: from terminus.zytor.com (terminus.zytor.com
 [IPv6:2607:7c80:54:3:0:0:0:136]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53M8MG9h1954391
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Tue, 22 Apr 2025 01:23:19 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 172d9d2c-1f53-11f0-9eb0-5ba50f476ded
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53M8MG9h1954391
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745310201;
	bh=HZ6mNNbZ7ulzph9dMmRPGpUoSI6d0gZZ7dCJYm/kVRo=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=bhOnyEJJ9eA/e2yJpfrvVgyfJSJRYVg7h8wU1lJUr8G7Pna/4/NLi+alPmNV+SLRK
	 Uo8LDKcvd0Pk5gC6kAB15JJcOI7+0ixbYobSD9S0ZkC7VSMyiQmcJ67McllPf46ule
	 Zo//0nO6Loi0Zm3hZIoJu5gSw+5ZCTgTLpB+N7vw24j4D7huPiDQAIXQ0mMYlE28Iu
	 JM+TWlUg9eQw7SWWSKY+QaKd6tM1sIujXGDJmyW5dZHdNPzvi4RUSSLufTAC57nokH
	 MNXZdSlARgUnRzsuDgzLRJT7LYVtmLxfbvHlFRDyLxwsptSQyd6JLbwRKWTnLYST6j
	 R0HGqr7RcZJWA==
From: "Xin Li (Intel)" <xin@zytor.com>
To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
        linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
        netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        acme@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com,
        peterz@infradead.org, namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com
Subject: [RFC PATCH v2 29/34] x86/msr: Rename native_rdmsrq() to native_rdmsrq_no_trace()
Date: Tue, 22 Apr 2025 01:22:10 -0700
Message-ID: <20250422082216.1954310-30-xin@zytor.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250422082216.1954310-1-xin@zytor.com>
References: <20250422082216.1954310-1-xin@zytor.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

native_rdmsrq() doesn't do trace thus can be used in noinstr context,
rename it to native_rdmsrq_no_trace() to make it explicit.

Signed-off-by: Xin Li (Intel) <xin@zytor.com>
---
 arch/x86/boot/startup/sme.c               | 4 ++--
 arch/x86/events/amd/brs.c                 | 2 +-
 arch/x86/hyperv/hv_vtl.c                  | 4 ++--
 arch/x86/hyperv/ivm.c                     | 2 +-
 arch/x86/include/asm/mshyperv.h           | 2 +-
 arch/x86/include/asm/msr.h                | 8 ++++----
 arch/x86/include/asm/sev-internal.h       | 2 +-
 arch/x86/kernel/cpu/common.c              | 2 +-
 arch/x86/kernel/cpu/mce/core.c            | 4 ++--
 arch/x86/kernel/cpu/resctrl/pseudo_lock.c | 2 +-
 arch/x86/kvm/vmx/vmx.c                    | 4 ++--
 11 files changed, 18 insertions(+), 18 deletions(-)

diff --git a/arch/x86/boot/startup/sme.c b/arch/x86/boot/startup/sme.c
index 5e147bf5a0a8..859d92ad91a4 100644
--- a/arch/x86/boot/startup/sme.c
+++ b/arch/x86/boot/startup/sme.c
@@ -524,7 +524,7 @@ void __head sme_enable(struct boot_params *bp)
 	me_mask = 1UL << (ebx & 0x3f);
 
 	/* Check the SEV MSR whether SEV or SME is enabled */
-	sev_status = msr = native_rdmsrq(MSR_AMD64_SEV);
+	sev_status = msr = native_rdmsrq_no_trace(MSR_AMD64_SEV);
 	feature_mask = (msr & MSR_AMD64_SEV_ENABLED) ? AMD_SEV_BIT : AMD_SME_BIT;
 
 	/*
@@ -555,7 +555,7 @@ void __head sme_enable(struct boot_params *bp)
 			return;
 
 		/* For SME, check the SYSCFG MSR */
-		msr = native_rdmsrq(MSR_AMD64_SYSCFG);
+		msr = native_rdmsrq_no_trace(MSR_AMD64_SYSCFG);
 		if (!(msr & MSR_AMD64_SYSCFG_MEM_ENCRYPT))
 			return;
 	}
diff --git a/arch/x86/events/amd/brs.c b/arch/x86/events/amd/brs.c
index 0153616a97cd..0623b6d775fb 100644
--- a/arch/x86/events/amd/brs.c
+++ b/arch/x86/events/amd/brs.c
@@ -49,7 +49,7 @@ static __always_inline void set_debug_extn_cfg(u64 val)
 
 static __always_inline u64 get_debug_extn_cfg(void)
 {
-	return native_rdmsrq(MSR_AMD_DBG_EXTN_CFG);
+	return native_rdmsrq_no_trace(MSR_AMD_DBG_EXTN_CFG);
 }
 
 static bool __init amd_brs_detect(void)
diff --git a/arch/x86/hyperv/hv_vtl.c b/arch/x86/hyperv/hv_vtl.c
index c6343e699154..9e41e380ad26 100644
--- a/arch/x86/hyperv/hv_vtl.c
+++ b/arch/x86/hyperv/hv_vtl.c
@@ -149,11 +149,11 @@ static int hv_vtl_bringup_vcpu(u32 target_vp_index, int cpu, u64 eip_ignored)
 	input->vp_context.rip = rip;
 	input->vp_context.rsp = rsp;
 	input->vp_context.rflags = 0x0000000000000002;
-	input->vp_context.efer = native_rdmsrq(MSR_EFER);
+	input->vp_context.efer = native_rdmsrq_no_trace(MSR_EFER);
 	input->vp_context.cr0 = native_read_cr0();
 	input->vp_context.cr3 = __native_read_cr3();
 	input->vp_context.cr4 = native_read_cr4();
-	input->vp_context.msr_cr_pat = native_rdmsrq(MSR_IA32_CR_PAT);
+	input->vp_context.msr_cr_pat = native_rdmsrq_no_trace(MSR_IA32_CR_PAT);
 	input->vp_context.idtr.limit = idt_ptr.size;
 	input->vp_context.idtr.base = idt_ptr.address;
 	input->vp_context.gdtr.limit = gdt_ptr.size;
diff --git a/arch/x86/hyperv/ivm.c b/arch/x86/hyperv/ivm.c
index 821609af5bd2..dfddf522e838 100644
--- a/arch/x86/hyperv/ivm.c
+++ b/arch/x86/hyperv/ivm.c
@@ -111,7 +111,7 @@ u64 hv_ghcb_hypercall(u64 control, void *input, void *output, u32 input_size)
 
 static inline u64 rd_ghcb_msr(void)
 {
-	return native_rdmsrq(MSR_AMD64_SEV_ES_GHCB);
+	return native_rdmsrq_no_trace(MSR_AMD64_SEV_ES_GHCB);
 }
 
 static inline void wr_ghcb_msr(u64 val)
diff --git a/arch/x86/include/asm/mshyperv.h b/arch/x86/include/asm/mshyperv.h
index 778444310cfb..ab94221ff38d 100644
--- a/arch/x86/include/asm/mshyperv.h
+++ b/arch/x86/include/asm/mshyperv.h
@@ -305,7 +305,7 @@ void hv_set_non_nested_msr(unsigned int reg, u64 value);
 
 static __always_inline u64 hv_raw_get_msr(unsigned int reg)
 {
-	return native_rdmsrq(reg);
+	return native_rdmsrq_no_trace(reg);
 }
 
 #else /* CONFIG_HYPERV */
diff --git a/arch/x86/include/asm/msr.h b/arch/x86/include/asm/msr.h
index a1c63bed14be..050d750a5ab7 100644
--- a/arch/x86/include/asm/msr.h
+++ b/arch/x86/include/asm/msr.h
@@ -157,7 +157,7 @@ static __always_inline bool is_msr_imm_insn(void *ip)
  *                         __native_rdmsrq()   -----------------------
  *                            /     \                                |
  *                           /       \                               |
- *               native_rdmsrq()    native_read_msr_safe()           |
+ *        native_rdmsrq_no_trace()    native_read_msr_safe()         |
  *                   /    \                                          |
  *                  /      \                                         |
  *      native_rdmsr()    native_read_msr()                          |
@@ -248,7 +248,7 @@ static __always_inline bool __native_rdmsrq(u32 msr, u64 *val, int type)
 	return __native_rdmsrq_variable(msr, val, type);
 }
 
-static __always_inline u64 native_rdmsrq(u32 msr)
+static __always_inline u64 native_rdmsrq_no_trace(u32 msr)
 {
 	u64 val = 0;
 
@@ -258,14 +258,14 @@ static __always_inline u64 native_rdmsrq(u32 msr)
 
 #define native_rdmsr(msr, low, high)			\
 do {							\
-	u64 __val = native_rdmsrq(msr);			\
+	u64 __val = native_rdmsrq_no_trace(msr);	\
 	(void)((low) = (u32)__val);			\
 	(void)((high) = (u32)(__val >> 32));		\
 } while (0)
 
 static inline u64 native_read_msr(u32 msr)
 {
-	u64 val = native_rdmsrq(msr);
+	u64 val = native_rdmsrq_no_trace(msr);
 
 	if (tracepoint_enabled(read_msr))
 		do_trace_read_msr(msr, val, 0);
diff --git a/arch/x86/include/asm/sev-internal.h b/arch/x86/include/asm/sev-internal.h
index 7eb030702435..743da9fc7454 100644
--- a/arch/x86/include/asm/sev-internal.h
+++ b/arch/x86/include/asm/sev-internal.h
@@ -96,7 +96,7 @@ int svsm_perform_call_protocol(struct svsm_call *call);
 
 static inline u64 sev_es_rd_ghcb_msr(void)
 {
-	return native_rdmsrq(MSR_AMD64_SEV_ES_GHCB);
+	return native_rdmsrq_no_trace(MSR_AMD64_SEV_ES_GHCB);
 }
 
 static __always_inline void sev_es_wr_ghcb_msr(u64 val)
diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c
index 99d8a8c15ba5..9d2de568cb96 100644
--- a/arch/x86/kernel/cpu/common.c
+++ b/arch/x86/kernel/cpu/common.c
@@ -164,7 +164,7 @@ static void ppin_init(struct cpuinfo_x86 *c)
 
 	/* Is the enable bit set? */
 	if (val & 2UL) {
-		c->ppin = native_rdmsrq(info->msr_ppin);
+		c->ppin = native_rdmsrq_no_trace(info->msr_ppin);
 		set_cpu_cap(c, info->feature);
 		return;
 	}
diff --git a/arch/x86/kernel/cpu/mce/core.c b/arch/x86/kernel/cpu/mce/core.c
index bd3cb984ccb9..9f7538b9d2fa 100644
--- a/arch/x86/kernel/cpu/mce/core.c
+++ b/arch/x86/kernel/cpu/mce/core.c
@@ -121,7 +121,7 @@ void mce_prep_record_common(struct mce *m)
 {
 	m->cpuid	= cpuid_eax(1);
 	m->cpuvendor	= boot_cpu_data.x86_vendor;
-	m->mcgcap	= native_rdmsrq(MSR_IA32_MCG_CAP);
+	m->mcgcap	= native_rdmsrq_no_trace(MSR_IA32_MCG_CAP);
 	/* need the internal __ version to avoid deadlocks */
 	m->time		= __ktime_get_real_seconds();
 }
@@ -1313,7 +1313,7 @@ static noinstr bool mce_check_crashing_cpu(void)
 	    (crashing_cpu != -1 && crashing_cpu != cpu)) {
 		u64 mcgstatus;
 
-		mcgstatus = native_rdmsrq(MSR_IA32_MCG_STATUS);
+		mcgstatus = native_rdmsrq_no_trace(MSR_IA32_MCG_STATUS);
 
 		if (boot_cpu_data.x86_vendor == X86_VENDOR_ZHAOXIN) {
 			if (mcgstatus & MCG_STATUS_LMCES)
diff --git a/arch/x86/kernel/cpu/resctrl/pseudo_lock.c b/arch/x86/kernel/cpu/resctrl/pseudo_lock.c
index 184bc1b3fb02..819c07a23c6d 100644
--- a/arch/x86/kernel/cpu/resctrl/pseudo_lock.c
+++ b/arch/x86/kernel/cpu/resctrl/pseudo_lock.c
@@ -482,7 +482,7 @@ int resctrl_arch_pseudo_lock_fn(void *_plr)
 	 * the buffer and evict pseudo-locked memory read earlier from the
 	 * cache.
 	 */
-	saved_msr = native_rdmsrq(MSR_MISC_FEATURE_CONTROL);
+	saved_msr = native_rdmsrq_no_trace(MSR_MISC_FEATURE_CONTROL);
 	native_wrmsrq_no_trace(MSR_MISC_FEATURE_CONTROL, prefetch_disable_bits);
 	closid_p = this_cpu_read(pqr_state.cur_closid);
 	rmid_p = this_cpu_read(pqr_state.cur_rmid);
diff --git a/arch/x86/kvm/vmx/vmx.c b/arch/x86/kvm/vmx/vmx.c
index b53575dee64a..cdbbfa0b9851 100644
--- a/arch/x86/kvm/vmx/vmx.c
+++ b/arch/x86/kvm/vmx/vmx.c
@@ -380,7 +380,7 @@ static __always_inline void vmx_disable_fb_clear(struct vcpu_vmx *vmx)
 	if (!vmx->disable_fb_clear)
 		return;
 
-	msr = native_rdmsrq(MSR_IA32_MCU_OPT_CTRL);
+	msr = native_rdmsrq_no_trace(MSR_IA32_MCU_OPT_CTRL);
 	msr |= FB_CLEAR_DIS;
 	native_wrmsrq_no_trace(MSR_IA32_MCU_OPT_CTRL, msr);
 	/* Cache the MSR value to avoid reading it later */
@@ -7307,7 +7307,7 @@ void noinstr vmx_spec_ctrl_restore_host(struct vcpu_vmx *vmx,
 		return;
 
 	if (flags & VMX_RUN_SAVE_SPEC_CTRL)
-		vmx->spec_ctrl = native_rdmsrq(MSR_IA32_SPEC_CTRL);
+		vmx->spec_ctrl = native_rdmsrq_no_trace(MSR_IA32_SPEC_CTRL);
 
 	/*
 	 * If the guest/host SPEC_CTRL values differ, restore the host value.
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 22 08:34:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 08:34:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.962085.1353441 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7954-0007h0-KO; Tue, 22 Apr 2025 08:34:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 962085.1353441; Tue, 22 Apr 2025 08: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 1u7954-0007gr-Go; Tue, 22 Apr 2025 08:34:14 +0000
Received: by outflank-mailman (input) for mailman id 962085;
 Tue, 22 Apr 2025 08:34:13 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Qhpm=XI=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u78uh-0004wX-IE
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 08:23:31 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0da84ba2-1f53-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 10:23:23 +0200 (CEST)
Received: from terminus.zytor.com (terminus.zytor.com
 [IPv6:2607:7c80:54:3:0:0:0:136]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53M8MG9Y1954391
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Tue, 22 Apr 2025 01:23:01 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0da84ba2-1f53-11f0-9ffb-bf95429c2676
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53M8MG9Y1954391
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745310183;
	bh=C6RK2fGRo87/f3fhWDh3Rej6GAV9BaF6uT8JNGWqWns=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=BHi1R6AyC9e0eh53/qDzjqBE+qQb4RzEZPU1rW+urzk4SW5zJKcQ990fyyFIzp3Ny
	 +ZO85XRSMlAItHcKxgVVuJ6bIFtxLdCzXCHEgZWwiSSp0I8ycHoE0kJWCt5vzx+Pgh
	 awTbjmxkSsaICsvEZ+f3G2x+NbMFPXt07P3uzry3qjGx+2+6ti08zGvKxuLOJ51QP+
	 Ze0/EZLEQhvkUUadlbZ9OJhPmV9dDJYOW9+dzQ1lM8BWN9kqIMaDRpHZAdWmrJFL7Y
	 OlvBsHTB19+9i+iy38t2OKh1xVb6wdoxeXiicjINWboz+d3fS/QhnsGL7tMDSnNgRM
	 ZbLi44P9yvsYw==
From: "Xin Li (Intel)" <xin@zytor.com>
To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
        linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
        netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        acme@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com,
        peterz@infradead.org, namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com
Subject: [RFC PATCH v2 20/34] x86/extable: Implement EX_TYPE_FUNC_REWIND
Date: Tue, 22 Apr 2025 01:22:01 -0700
Message-ID: <20250422082216.1954310-21-xin@zytor.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250422082216.1954310-1-xin@zytor.com>
References: <20250422082216.1954310-1-xin@zytor.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: "H. Peter Anvin (Intel)" <hpa@zytor.com>

Add a new exception type, which allows emulating an exception as if it
had happened at or near the call site of a function.  This allows a
function call inside an alternative for instruction emulation to "kick
back" the exception into the alternatives pattern, possibly invoking a
different exception handling pattern there, or at least indicating the
"real" location of the fault.

Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
Signed-off-by: Xin Li (Intel) <xin@zytor.com>
---
 arch/x86/include/asm/asm.h                 |   6 +
 arch/x86/include/asm/extable_fixup_types.h |   1 +
 arch/x86/mm/extable.c                      | 135 +++++++++++++--------
 3 files changed, 91 insertions(+), 51 deletions(-)

diff --git a/arch/x86/include/asm/asm.h b/arch/x86/include/asm/asm.h
index a9f07799e337..722340d7c1af 100644
--- a/arch/x86/include/asm/asm.h
+++ b/arch/x86/include/asm/asm.h
@@ -243,5 +243,11 @@ register unsigned long current_stack_pointer asm(_ASM_SP);
 #define _ASM_EXTABLE_FAULT(from, to)				\
 	_ASM_EXTABLE_TYPE(from, to, EX_TYPE_FAULT)
 
+#define _ASM_EXTABLE_FUNC_REWIND(from, ipdelta, spdelta)	\
+	_ASM_EXTABLE_TYPE(from, from /* unused */,		\
+			  EX_TYPE_FUNC_REWIND |			\
+			  EX_DATA_REG(spdelta) |		\
+			  EX_DATA_IMM(ipdelta))
+
 #endif /* __KERNEL__ */
 #endif /* _ASM_X86_ASM_H */
diff --git a/arch/x86/include/asm/extable_fixup_types.h b/arch/x86/include/asm/extable_fixup_types.h
index 906b0d5541e8..9cd1cea45052 100644
--- a/arch/x86/include/asm/extable_fixup_types.h
+++ b/arch/x86/include/asm/extable_fixup_types.h
@@ -67,5 +67,6 @@
 #define	EX_TYPE_ZEROPAD			20 /* longword load with zeropad on fault */
 
 #define	EX_TYPE_ERETU			21
+#define	EX_TYPE_FUNC_REWIND		22
 
 #endif
diff --git a/arch/x86/mm/extable.c b/arch/x86/mm/extable.c
index f1743babafc8..6bf4c2a43c2c 100644
--- a/arch/x86/mm/extable.c
+++ b/arch/x86/mm/extable.c
@@ -319,6 +319,27 @@ static bool ex_handler_eretu(const struct exception_table_entry *fixup,
 }
 #endif
 
+/*
+ * Emulate a fault taken at the call site of a function.
+ *
+ * The combined reg and flags field are used as an unsigned number of
+ * machine words to pop off the stack before the return address, then
+ * the signed imm field is used as a delta from the return IP address.
+ */
+static bool ex_handler_func_rewind(struct pt_regs *regs, int data)
+{
+	const long ipdelta = FIELD_GET(EX_DATA_IMM_MASK, data);
+	const unsigned long pops = FIELD_GET(EX_DATA_REG_MASK | EX_DATA_FLAG_MASK, data);
+	unsigned long *sp;
+
+	sp = (unsigned long *)regs->sp;
+	sp += pops;
+	regs->ip = *sp++ + ipdelta;
+	regs->sp = (unsigned long)sp;
+
+	return true;
+}
+
 int ex_get_fixup_type(unsigned long ip)
 {
 	const struct exception_table_entry *e = search_exception_tables(ip);
@@ -331,6 +352,7 @@ int fixup_exception(struct pt_regs *regs, int trapnr, unsigned long error_code,
 {
 	const struct exception_table_entry *e;
 	int type, reg, imm;
+	bool again;
 
 #ifdef CONFIG_PNPBIOS
 	if (unlikely(SEGMENT_IS_PNP_CODE(regs->cs))) {
@@ -346,60 +368,71 @@ int fixup_exception(struct pt_regs *regs, int trapnr, unsigned long error_code,
 	}
 #endif
 
-	e = search_exception_tables(regs->ip);
-	if (!e)
-		return 0;
-
-	type = FIELD_GET(EX_DATA_TYPE_MASK, e->data);
-	reg  = FIELD_GET(EX_DATA_REG_MASK,  e->data);
-	imm  = FIELD_GET(EX_DATA_IMM_MASK,  e->data);
-
-	switch (type) {
-	case EX_TYPE_DEFAULT:
-	case EX_TYPE_DEFAULT_MCE_SAFE:
-		return ex_handler_default(e, regs);
-	case EX_TYPE_FAULT:
-	case EX_TYPE_FAULT_MCE_SAFE:
-		return ex_handler_fault(e, regs, trapnr);
-	case EX_TYPE_UACCESS:
-		return ex_handler_uaccess(e, regs, trapnr, fault_addr);
-	case EX_TYPE_CLEAR_FS:
-		return ex_handler_clear_fs(e, regs);
-	case EX_TYPE_FPU_RESTORE:
-		return ex_handler_fprestore(e, regs);
-	case EX_TYPE_BPF:
-		return ex_handler_bpf(e, regs);
-	case EX_TYPE_WRMSR:
-		return ex_handler_msr(e, regs, true, false, reg);
-	case EX_TYPE_RDMSR:
-		return ex_handler_msr(e, regs, false, false, reg);
-	case EX_TYPE_WRMSR_SAFE:
-		return ex_handler_msr(e, regs, true, true, reg);
-	case EX_TYPE_RDMSR_SAFE:
-		return ex_handler_msr(e, regs, false, true, reg);
-	case EX_TYPE_WRMSR_IN_MCE:
-		ex_handler_msr_mce(regs, true);
-		break;
-	case EX_TYPE_RDMSR_IN_MCE:
-		ex_handler_msr_mce(regs, false);
-		break;
-	case EX_TYPE_POP_REG:
-		regs->sp += sizeof(long);
-		fallthrough;
-	case EX_TYPE_IMM_REG:
-		return ex_handler_imm_reg(e, regs, reg, imm);
-	case EX_TYPE_FAULT_SGX:
-		return ex_handler_sgx(e, regs, trapnr);
-	case EX_TYPE_UCOPY_LEN:
-		return ex_handler_ucopy_len(e, regs, trapnr, fault_addr, reg, imm);
-	case EX_TYPE_ZEROPAD:
-		return ex_handler_zeropad(e, regs, fault_addr);
+	do {
+		e = search_exception_tables(regs->ip);
+		if (!e)
+			return 0;
+
+		again = false;
+
+		type = FIELD_GET(EX_DATA_TYPE_MASK, e->data);
+		reg  = FIELD_GET(EX_DATA_REG_MASK,  e->data);
+		imm  = FIELD_GET(EX_DATA_IMM_MASK,  e->data);
+
+		switch (type) {
+		case EX_TYPE_DEFAULT:
+		case EX_TYPE_DEFAULT_MCE_SAFE:
+			return ex_handler_default(e, regs);
+		case EX_TYPE_FAULT:
+		case EX_TYPE_FAULT_MCE_SAFE:
+			return ex_handler_fault(e, regs, trapnr);
+		case EX_TYPE_UACCESS:
+			return ex_handler_uaccess(e, regs, trapnr, fault_addr);
+		case EX_TYPE_CLEAR_FS:
+			return ex_handler_clear_fs(e, regs);
+		case EX_TYPE_FPU_RESTORE:
+			return ex_handler_fprestore(e, regs);
+		case EX_TYPE_BPF:
+			return ex_handler_bpf(e, regs);
+		case EX_TYPE_WRMSR:
+			return ex_handler_msr(e, regs, true, false, reg);
+		case EX_TYPE_RDMSR:
+			return ex_handler_msr(e, regs, false, false, reg);
+		case EX_TYPE_WRMSR_SAFE:
+			return ex_handler_msr(e, regs, true, true, reg);
+		case EX_TYPE_RDMSR_SAFE:
+			return ex_handler_msr(e, regs, false, true, reg);
+		case EX_TYPE_WRMSR_IN_MCE:
+			ex_handler_msr_mce(regs, true);
+			break;
+		case EX_TYPE_RDMSR_IN_MCE:
+			ex_handler_msr_mce(regs, false);
+			break;
+		case EX_TYPE_POP_REG:
+			regs->sp += sizeof(long);
+			fallthrough;
+		case EX_TYPE_IMM_REG:
+			return ex_handler_imm_reg(e, regs, reg, imm);
+		case EX_TYPE_FAULT_SGX:
+			return ex_handler_sgx(e, regs, trapnr);
+		case EX_TYPE_UCOPY_LEN:
+			return ex_handler_ucopy_len(e, regs, trapnr, fault_addr, reg, imm);
+		case EX_TYPE_ZEROPAD:
+			return ex_handler_zeropad(e, regs, fault_addr);
 #ifdef CONFIG_X86_FRED
-	case EX_TYPE_ERETU:
-		return ex_handler_eretu(e, regs, error_code);
+		case EX_TYPE_ERETU:
+			return ex_handler_eretu(e, regs, error_code);
 #endif
-	}
+		case EX_TYPE_FUNC_REWIND:
+			again = ex_handler_func_rewind(regs, e->data);
+			break;
+		default:
+			break;	/* Will BUG() */
+		}
+	} while (again);
+
 	BUG();
+	return 0;
 }
 
 extern unsigned int early_recursion_flag;
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 22 08:34:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 08:34:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.962094.1353451 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u795N-00009T-TD; Tue, 22 Apr 2025 08:34:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 962094.1353451; Tue, 22 Apr 2025 08:34: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 1u795N-00009M-P0; Tue, 22 Apr 2025 08:34:33 +0000
Received: by outflank-mailman (input) for mailman id 962094;
 Tue, 22 Apr 2025 08:34: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=Qhpm=XI=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u78ui-0004wX-IS
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 08:23:32 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0a98037f-1f53-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 10:23:18 +0200 (CEST)
Received: from terminus.zytor.com (terminus.zytor.com
 [IPv6:2607:7c80:54:3:0:0:0:136]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53M8MG9G1954391
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Tue, 22 Apr 2025 01:22:24 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0a98037f-1f53-11f0-9ffb-bf95429c2676
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53M8MG9G1954391
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745310146;
	bh=IoPTRGWe2Y3cj4mu9rrTWSQjJVT8gGehrwqKDjIdcAQ=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=b1z8RlaqquIXeYBqIgAy+u/r/q47lKeO8pCBYXjerdwtNfjtGgxePxuKRH1G8q7Eg
	 3yr5aijpEOpIzQRR4VI95BAlBgsgxvAjMKpeoxc8AmYPQDI2WH7ESLigIPAoWSaJha
	 lTiBdiyZXvX61dgoYdVd4h8eAdxh5SIPVz3MC8rQW9bkPs5PakJ7J11JQ1LIEovXF5
	 OE/aPM5jxUO7eRx2T5+gGxwuzqRYYxNf0xIOCyXWR6eEAXQ6FBb9vzoj5U+Lt3CyAd
	 D4Pxs/8oSukBmPJ9BE/q/qb5j/rNcjBlzuv/7Iw8PZHjSubwTAJSuLzuPx2ys04J8n
	 xkcnr5QGmv2YA==
From: "Xin Li (Intel)" <xin@zytor.com>
To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
        linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
        netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        acme@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com,
        peterz@infradead.org, namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com
Subject: [RFC PATCH v2 02/34] x86/msr: Remove rdpmc()
Date: Tue, 22 Apr 2025 01:21:43 -0700
Message-ID: <20250422082216.1954310-3-xin@zytor.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250422082216.1954310-1-xin@zytor.com>
References: <20250422082216.1954310-1-xin@zytor.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

rdpmc() is not used anywhere, remove it.

Signed-off-by: Xin Li (Intel) <xin@zytor.com>
---
 arch/x86/include/asm/msr.h      | 7 -------
 arch/x86/include/asm/paravirt.h | 7 -------
 2 files changed, 14 deletions(-)

diff --git a/arch/x86/include/asm/msr.h b/arch/x86/include/asm/msr.h
index 2caa13830e11..e05466e486fc 100644
--- a/arch/x86/include/asm/msr.h
+++ b/arch/x86/include/asm/msr.h
@@ -234,13 +234,6 @@ static inline int rdmsrq_safe(u32 msr, u64 *p)
 	return err;
 }
 
-#define rdpmc(counter, low, high)			\
-do {							\
-	u64 _l = native_read_pmc((counter));		\
-	(low)  = (u32)_l;				\
-	(high) = (u32)(_l >> 32);			\
-} while (0)
-
 #define rdpmcl(counter, val) ((val) = native_read_pmc(counter))
 
 #endif	/* !CONFIG_PARAVIRT_XXL */
diff --git a/arch/x86/include/asm/paravirt.h b/arch/x86/include/asm/paravirt.h
index 86a77528792d..c4dedb984735 100644
--- a/arch/x86/include/asm/paravirt.h
+++ b/arch/x86/include/asm/paravirt.h
@@ -244,13 +244,6 @@ static inline u64 paravirt_read_pmc(int counter)
 	return PVOP_CALL1(u64, cpu.read_pmc, counter);
 }
 
-#define rdpmc(counter, low, high)		\
-do {						\
-	u64 _l = paravirt_read_pmc(counter);	\
-	low = (u32)_l;				\
-	high = _l >> 32;			\
-} while (0)
-
 #define rdpmcl(counter, val) ((val) = paravirt_read_pmc(counter))
 
 static inline void paravirt_alloc_ldt(struct desc_struct *ldt, unsigned entries)
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 22 08:39:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 08:39:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.962154.1353460 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u799j-0001tz-Cv; Tue, 22 Apr 2025 08:39:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 962154.1353460; Tue, 22 Apr 2025 08: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 1u799j-0001ts-A7; Tue, 22 Apr 2025 08:39:03 +0000
Received: by outflank-mailman (input) for mailman id 962154;
 Tue, 22 Apr 2025 08:39: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=mE8E=XI=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1u799i-0001tm-R6
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 08:39:02 +0000
Received: from mail-ed1-x52e.google.com (mail-ed1-x52e.google.com
 [2a00:1450:4864:20::52e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3d0938ac-1f55-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 10:39:00 +0200 (CEST)
Received: by mail-ed1-x52e.google.com with SMTP id
 4fb4d7f45d1cf-5e5dce099f4so5903402a12.1
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 01:39:00 -0700 (PDT)
Received: from ?IPV6:2003:e5:873d:1a00:8e99:ce06:aa4a:2e7b?
 (p200300e5873d1a008e99ce06aa4a2e7b.dip0.t-ipconnect.de.
 [2003:e5:873d:1a00:8e99:ce06:aa4a:2e7b])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-acb6eefd8besm623509666b.122.2025.04.22.01.38.58
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 22 Apr 2025 01:38: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: 3d0938ac-1f55-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745311140; x=1745915940; 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=0ax55UGcTWOWHuVz+3BJ6ZXy/45nBJzHHncbaK4NkZI=;
        b=P/Nzwr+JLxZf6GvLppKJ7l1agIvmNTLqRsuhi6EByjuTv9jYM75XG3o/MMSCxcNGb0
         EkuzG3WpeIpLZ9qWXGWUylhFW0+kGzlu0lLCNEN7zvmfiI3sCdVLXsGwvAZ+b+/cvjKd
         9qVR2gMSXzM7pAx4NGWgaGz5lk+U0Pv/0eqIAjL/GD9FV6MAORGDegDfi148v5F/TZO0
         wBMeNAH3s9Tpj+kgjKYkJJTiXHtdFTD62DBgVsfaVU8KRRbTIGb6W2aWT9gYiA1NhouM
         SgVYubtcODOLdpsIFez/rKvfspXRJMM7vsYVD55VpaltnMLZGJj4fEmviuHNHpKi/xWE
         AioA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745311140; x=1745915940;
        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=0ax55UGcTWOWHuVz+3BJ6ZXy/45nBJzHHncbaK4NkZI=;
        b=oOd3l9jaYqJjD6nBC3KEVTTlys3ZgaFbWqeQe++Saa+TIjDWHsWurwMa/xTcvH5z+A
         dZxdvGEZcJNpdBV5c/AgHorkhbesDSD/nArEcjdh83efcdDsVWkLknvfyWg5esvHuMPF
         rs57fKsCnvAMADKzKz8p+odKM2AX+R/MOE5tpDq2336uaJPr6kdz0dziOwi38pHkB6/g
         BoEEhzx+3sFISlmVhboIBOaL4Q0Ix/msv+IycZdO2JhcGowy7i/A/7fHTMp2mPlsBDvK
         UgdqROC+O7YsqCOvViDlCLWel0OSItkqWaYF558Pm8wYjrRxNUBD0Y+HEliPbipUSWbc
         joZA==
X-Forwarded-Encrypted: i=1; AJvYcCV8I8+KAgsARL/pubCmPNHU6h31sV8QBrlJq8MQuSMRn8EjFgTABSQ+h8k73ST3wAkR+7MNXrwiecg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwiqRPhhFZVySYp/Q6YR4wpDfgOU8rCG49cVPZmgTUFVk8J4GtY
	jllIO3qslV6KQF81ta8ltfvyXOGqM3L5UXZDF+hi2Mxry+ZSwL45p5tWFVuDlj0=
X-Gm-Gg: ASbGncv8+0EcldsyuCF7SNbNLpuybhTn3pfrcedEX3i3ApNmutsg755UrvFHHa1FSXi
	TjkMbK1BJmJtg7kEoyhNIAuzHFz6mqIo3KsECp0jVcgubvY/V4qysFLujQ+pOfzzEXrFKtTCEsK
	pyyULNhO6d6aA+6SU+wCM+4CYhDoUn9ZuzQx5T5LQSlkDb3XKVOiPQqbqXOsVCiJk0I82Z/8Ug7
	Xrz01Jz/+3h31z2nJ0i2aLBuee7zcUCsIR0u6eYmaNFx+L4a53DHcpJmHuMI60F2EzoK4w5RkY9
	cACgI08MDeGDEj2sLN0IYYWzM2GuVjLL4vcIH3bkeO2cpCZsRQ3Gznc0LYG3Yikj/wtCFVbSxOQ
	prwolbp+lIkFdZDmC0/MVKieCvMTmx0zfYIJ/Y+ty/ITEZ46kylSo2uUIAWWWakV8kZlT8o/29e
	7x
X-Google-Smtp-Source: AGHT+IEmp/5XJLTqP5S0pRZ5YtwXiVrJr7qIcIrg0GxrIdRMvNGGFjSJJZr5xRVxQvA2fct+zsz19A==
X-Received: by 2002:a17:907:1c14:b0:aca:95e7:9977 with SMTP id a640c23a62f3a-acb74b508b5mr1316747266b.28.1745311139866;
        Tue, 22 Apr 2025 01:38:59 -0700 (PDT)
Message-ID: <fbb509e8-0bd6-480f-be32-fd0895255a21@suse.com>
Date: Tue, 22 Apr 2025 10:38:57 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH v2 06/34] x86/msr: Use the alternatives mechanism to
 read PMC
To: "Xin Li (Intel)" <xin@zytor.com>, linux-kernel@vger.kernel.org,
 kvm@vger.kernel.org, linux-perf-users@vger.kernel.org,
 linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
 linux-pm@vger.kernel.org, linux-edac@vger.kernel.org,
 xen-devel@lists.xenproject.org, linux-acpi@vger.kernel.org,
 linux-hwmon@vger.kernel.org, netdev@vger.kernel.org,
 platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
 dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com, acme@kernel.org,
 andrew.cooper3@citrix.com, peterz@infradead.org, namhyung@kernel.org,
 mark.rutland@arm.com, alexander.shishkin@linux.intel.com, jolsa@kernel.org,
 irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
 wei.liu@kernel.org, ajay.kaher@broadcom.com,
 bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
 pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
 luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
 haiyangz@microsoft.com, decui@microsoft.com
References: <20250422082216.1954310-1-xin@zytor.com>
 <20250422082216.1954310-7-xin@zytor.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: <20250422082216.1954310-7-xin@zytor.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------oWGr0D8fp74ylaTm4CQbbsBV"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------oWGr0D8fp74ylaTm4CQbbsBV
Content-Type: multipart/mixed; boundary="------------qqqJQkp59jKjmbEZC1Vwrfie";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: "Xin Li (Intel)" <xin@zytor.com>, linux-kernel@vger.kernel.org,
 kvm@vger.kernel.org, linux-perf-users@vger.kernel.org,
 linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
 linux-pm@vger.kernel.org, linux-edac@vger.kernel.org,
 xen-devel@lists.xenproject.org, linux-acpi@vger.kernel.org,
 linux-hwmon@vger.kernel.org, netdev@vger.kernel.org,
 platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
 dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com, acme@kernel.org,
 andrew.cooper3@citrix.com, peterz@infradead.org, namhyung@kernel.org,
 mark.rutland@arm.com, alexander.shishkin@linux.intel.com, jolsa@kernel.org,
 irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
 wei.liu@kernel.org, ajay.kaher@broadcom.com,
 bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
 pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
 luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
 haiyangz@microsoft.com, decui@microsoft.com
Message-ID: <fbb509e8-0bd6-480f-be32-fd0895255a21@suse.com>
Subject: Re: [RFC PATCH v2 06/34] x86/msr: Use the alternatives mechanism to
 read PMC
References: <20250422082216.1954310-1-xin@zytor.com>
 <20250422082216.1954310-7-xin@zytor.com>
In-Reply-To: <20250422082216.1954310-7-xin@zytor.com>

--------------qqqJQkp59jKjmbEZC1Vwrfie
Content-Type: multipart/mixed; boundary="------------xefsIXpq0wxo0BM9i717snKf"

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

T24gMjIuMDQuMjUgMTA6MjEsIFhpbiBMaSAoSW50ZWwpIHdyb3RlOg0KPiBUbyBlbGltaW5h
dGUgdGhlIGluZGlyZWN0IGNhbGwgb3ZlcmhlYWQgaW50cm9kdWNlZCBieSB0aGUgcHZfb3Bz
IEFQSSwNCj4gdXNlIHRoZSBhbHRlcm5hdGl2ZXMgbWVjaGFuaXNtIHRvIHJlYWQgUE1DOg0K
DQpXaGljaCBpbmRpcmVjdCBjYWxsIG92ZXJoZWFkPyBUaGUgaW5kaXJlY3QgY2FsbCBpcyBw
YXRjaGVkIHZpYSB0aGUNCmFsdGVybmF0aXZlIG1lY2hhbmlzbSB0byBhIGRpcmVjdCBvbmUu
DQoNCj4gDQo+ICAgICAgMSkgV2hlbiBidWlsdCB3aXRoICFDT05GSUdfWEVOX1BWLCBYODZf
RkVBVFVSRV9YRU5QViBiZWNvbWVzIGENCj4gICAgICAgICBkaXNhYmxlZCBmZWF0dXJlLCBw
cmV2ZW50aW5nIHRoZSBYZW4gUE1DIHJlYWQgY29kZSBmcm9tIGJlaW5nDQo+ICAgICAgICAg
YnVpbHQgYW5kIGVuc3VyaW5nIHRoZSBuYXRpdmUgY29kZSBpcyBleGVjdXRlZCB1bmNvbmRp
dGlvbmFsbHkuDQoNCldpdGhvdXQgQ09ORklHX1hFTl9QViBDT05GSUdfUEFSQVZJUlRfWFhM
IGlzIG5vdCBzZWxlY3RlZCwgcmVzdWx0aW5nIGluDQpuYXRpdmUgY29kZSBhbnl3YXkuDQoN
Cj4gDQo+ICAgICAgMikgV2hlbiBidWlsdCB3aXRoIENPTkZJR19YRU5fUFY6DQo+IA0KPiAg
ICAgICAgIDIuMSkgSWYgbm90IHJ1bm5pbmcgb24gdGhlIFhlbiBoeXBlcnZpc29yICghWDg2
X0ZFQVRVUkVfWEVOUFYpLA0KPiAgICAgICAgICAgICAgdGhlIGtlcm5lbCBydW50aW1lIGJp
bmFyeSBpcyBwYXRjaGVkIHRvIHVuY29uZGl0aW9uYWxseQ0KPiAgICAgICAgICAgICAganVt
cCB0byB0aGUgbmF0aXZlIFBNQyByZWFkIGNvZGUuDQo+IA0KPiAgICAgICAgIDIuMikgSWYg
cnVubmluZyBvbiB0aGUgWGVuIGh5cGVydmlzb3IgKFg4Nl9GRUFUVVJFX1hFTlBWKSwgdGhl
DQo+ICAgICAgICAgICAgICBrZXJuZWwgcnVudGltZSBiaW5hcnkgaXMgcGF0Y2hlZCB0byB1
bmNvbmRpdGlvbmFsbHkganVtcA0KPiAgICAgICAgICAgICAgdG8gdGhlIFhlbiBQTUMgcmVh
ZCBjb2RlLg0KPiANCj4gQ29uc2VxdWVudGx5LCByZW1vdmUgdGhlIHB2X29wcyBQTUMgcmVh
ZCBBUEkuDQoNCkkgZG9uJ3Qgc2VlIHRoZSB2YWx1ZSBvZiB0aGlzIHBhdGNoLg0KDQpJdCBh
ZGRzIG1vcmUgI2lmZGVmIGFuZCBjb2RlIGxpbmVzIHdpdGhvdXQgYW55IHJlYWwgZ2Fpbi4N
Cg0KSW4gY2FzZSB0aGUgeDg2IG1haW50YWluZXJzIHRoaW5rIGl0IGlzIHN0aWxsIHdvcnRo
IGl0LCBJIHdvbid0IG9iamVjdC4NCg0KDQpKdWVyZ2VuDQoNCj4gDQo+IFNpZ25lZC1vZmYt
Ynk6IFhpbiBMaSAoSW50ZWwpIDx4aW5Aenl0b3IuY29tPg0KPiAtLS0NCj4gICBhcmNoL3g4
Ni9pbmNsdWRlL2FzbS9tc3IuaCAgICAgICAgICAgIHwgMzEgKysrKysrKysrKysrKysrKysr
KystLS0tLS0tDQo+ICAgYXJjaC94ODYvaW5jbHVkZS9hc20vcGFyYXZpcnQuaCAgICAgICB8
ICA1IC0tLS0tDQo+ICAgYXJjaC94ODYvaW5jbHVkZS9hc20vcGFyYXZpcnRfdHlwZXMuaCB8
ICAyIC0tDQo+ICAgYXJjaC94ODYva2VybmVsL3BhcmF2aXJ0LmMgICAgICAgICAgICB8ICAx
IC0NCj4gICBhcmNoL3g4Ni94ZW4vZW5saWdodGVuX3B2LmMgICAgICAgICAgIHwgIDIgLS0N
Cj4gICBkcml2ZXJzL25ldC92bXhuZXQzL3ZteG5ldDNfZHJ2LmMgICAgIHwgIDIgKy0NCj4g
ICA2IGZpbGVzIGNoYW5nZWQsIDI0IGluc2VydGlvbnMoKyksIDE5IGRlbGV0aW9ucygtKQ0K
PiANCj4gZGlmZiAtLWdpdCBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL21zci5oIGIvYXJjaC94
ODYvaW5jbHVkZS9hc20vbXNyLmgNCj4gaW5kZXggMDFkYzhlNjFlZjk3Li4zM2NmNTA2ZTJm
ZDYgMTAwNjQ0DQo+IC0tLSBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL21zci5oDQo+ICsrKyBi
L2FyY2gveDg2L2luY2x1ZGUvYXNtL21zci5oDQo+IEBAIC04LDYgKzgsNyBAQA0KPiAgIA0K
PiAgICNpbmNsdWRlIDxhc20vYXNtLmg+DQo+ICAgI2luY2x1ZGUgPGFzbS9lcnJuby5oPg0K
PiArI2luY2x1ZGUgPGFzbS9jcHVmZWF0dXJlLmg+DQo+ICAgI2luY2x1ZGUgPGFzbS9jcHVt
YXNrLmg+DQo+ICAgI2luY2x1ZGUgPHVhcGkvYXNtL21zci5oPg0KPiAgICNpbmNsdWRlIDxh
c20vc2hhcmVkL21zci5oPg0KPiBAQCAtNzMsNiArNzQsMTAgQEAgc3RhdGljIGlubGluZSB2
b2lkIGRvX3RyYWNlX3JlYWRfbXNyKHUzMiBtc3IsIHU2NCB2YWwsIGludCBmYWlsZWQpIHt9
DQo+ICAgc3RhdGljIGlubGluZSB2b2lkIGRvX3RyYWNlX3JkcG1jKHUzMiBtc3IsIHU2NCB2
YWwsIGludCBmYWlsZWQpIHt9DQo+ICAgI2VuZGlmDQo+ICAgDQo+ICsjaWZkZWYgQ09ORklH
X1hFTl9QVg0KPiArZXh0ZXJuIHU2NCB4ZW5fcmVhZF9wbWMoaW50IGNvdW50ZXIpOw0KPiAr
I2VuZGlmDQo+ICsNCj4gICAvKg0KPiAgICAqIF9fcmRtc3IoKSBhbmQgX193cm1zcigpIGFy
ZSB0aGUgdHdvIHByaW1pdGl2ZXMgd2hpY2ggYXJlIHRoZSBiYXJlIG1pbmltdW0gTVNSDQo+
ICAgICogYWNjZXNzb3JzIGFuZCBzaG91bGQgbm90IGhhdmUgYW55IHRyYWNpbmcgb3Igb3Ro
ZXIgZnVuY3Rpb25hbGl0eSBwaWdneWJhY2tpbmcNCj4gQEAgLTE3MCwxNiArMTc1LDMyIEBA
IG5hdGl2ZV93cml0ZV9tc3Jfc2FmZSh1MzIgbXNyLCB1MzIgbG93LCB1MzIgaGlnaCkNCj4g
ICBleHRlcm4gaW50IHJkbXNyX3NhZmVfcmVncyh1MzIgcmVnc1s4XSk7DQo+ICAgZXh0ZXJu
IGludCB3cm1zcl9zYWZlX3JlZ3ModTMyIHJlZ3NbOF0pOw0KPiAgIA0KPiAtc3RhdGljIGlu
bGluZSB1NjQgbmF0aXZlX3JlYWRfcG1jKGludCBjb3VudGVyKQ0KPiArc3RhdGljIF9fYWx3
YXlzX2lubGluZSB1NjQgbmF0aXZlX3JkcG1jcShpbnQgY291bnRlcikNCj4gICB7DQo+ICAg
CURFQ0xBUkVfQVJHUyh2YWwsIGxvdywgaGlnaCk7DQo+ICAgDQo+IC0JYXNtIHZvbGF0aWxl
KCJyZHBtYyIgOiBFQVhfRURYX1JFVCh2YWwsIGxvdywgaGlnaCkgOiAiYyIgKGNvdW50ZXIp
KTsNCj4gKwlhc21faW5saW5lIHZvbGF0aWxlKCJyZHBtYyIgOiBFQVhfRURYX1JFVCh2YWws
IGxvdywgaGlnaCkgOiAiYyIgKGNvdW50ZXIpKTsNCj4gKw0KPiAgIAlpZiAodHJhY2Vwb2lu
dF9lbmFibGVkKHJkcG1jKSkNCj4gICAJCWRvX3RyYWNlX3JkcG1jKGNvdW50ZXIsIEVBWF9F
RFhfVkFMKHZhbCwgbG93LCBoaWdoKSwgMCk7DQo+ICsNCj4gICAJcmV0dXJuIEVBWF9FRFhf
VkFMKHZhbCwgbG93LCBoaWdoKTsNCj4gICB9DQo+ICAgDQo+ICtzdGF0aWMgX19hbHdheXNf
aW5saW5lIHU2NCByZHBtY3EoaW50IGNvdW50ZXIpDQo+ICt7DQo+ICsjaWZkZWYgQ09ORklH
X1hFTl9QVg0KPiArCWlmIChjcHVfZmVhdHVyZV9lbmFibGVkKFg4Nl9GRUFUVVJFX1hFTlBW
KSkNCj4gKwkJcmV0dXJuIHhlbl9yZWFkX3BtYyhjb3VudGVyKTsNCj4gKyNlbmRpZg0KPiAr
DQo+ICsJLyoNCj4gKwkgKiAxKSBXaGVuIGJ1aWx0IHdpdGggIUNPTkZJR19YRU5fUFYuDQo+
ICsJICogMikgV2hlbiBidWlsdCB3aXRoIENPTkZJR19YRU5fUFYgYnV0IG5vdCBydW5uaW5n
IG9uIFhlbiBoeXBlcnZpc29yLg0KPiArCSAqLw0KPiArCXJldHVybiBuYXRpdmVfcmRwbWNx
KGNvdW50ZXIpOw0KPiArfQ0KPiArDQo+ICAgI2lmZGVmIENPTkZJR19QQVJBVklSVF9YWEwN
Cj4gICAjaW5jbHVkZSA8YXNtL3BhcmF2aXJ0Lmg+DQo+ICAgI2Vsc2UNCj4gQEAgLTIzMywx
MiArMjU0LDYgQEAgc3RhdGljIGlubGluZSBpbnQgcmRtc3JxX3NhZmUodTMyIG1zciwgdTY0
ICpwKQ0KPiAgIAkqcCA9IG5hdGl2ZV9yZWFkX21zcl9zYWZlKG1zciwgJmVycik7DQo+ICAg
CXJldHVybiBlcnI7DQo+ICAgfQ0KPiAtDQo+IC1zdGF0aWMgX19hbHdheXNfaW5saW5lIHU2
NCByZHBtY3EoaW50IGNvdW50ZXIpDQo+IC17DQo+IC0JcmV0dXJuIG5hdGl2ZV9yZWFkX3Bt
Yyhjb3VudGVyKTsNCj4gLX0NCj4gLQ0KPiAgICNlbmRpZgkvKiAhQ09ORklHX1BBUkFWSVJU
X1hYTCAqLw0KPiAgIA0KPiAgIC8qIEluc3RydWN0aW9uIG9wY29kZSBmb3IgV1JNU1JOUyBz
dXBwb3J0ZWQgaW4gYmludXRpbHMgPj0gMi40MCAqLw0KPiBkaWZmIC0tZ2l0IGEvYXJjaC94
ODYvaW5jbHVkZS9hc20vcGFyYXZpcnQuaCBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL3BhcmF2
aXJ0LmgNCj4gaW5kZXggNTkwODI0OTE2Mzk0Li5jNzY4OWY1ZjcwZDYgMTAwNjQ0DQo+IC0t
LSBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL3BhcmF2aXJ0LmgNCj4gKysrIGIvYXJjaC94ODYv
aW5jbHVkZS9hc20vcGFyYXZpcnQuaA0KPiBAQCAtMjM5LDExICsyMzksNiBAQCBzdGF0aWMg
aW5saW5lIGludCByZG1zcnFfc2FmZSh1bnNpZ25lZCBtc3IsIHU2NCAqcCkNCj4gICAJcmV0
dXJuIGVycjsNCj4gICB9DQo+ICAgDQo+IC1zdGF0aWMgX19hbHdheXNfaW5saW5lIHU2NCBy
ZHBtY3EoaW50IGNvdW50ZXIpDQo+IC17DQo+IC0JcmV0dXJuIFBWT1BfQ0FMTDEodTY0LCBj
cHUucmVhZF9wbWMsIGNvdW50ZXIpOw0KPiAtfQ0KPiAtDQo+ICAgc3RhdGljIGlubGluZSB2
b2lkIHBhcmF2aXJ0X2FsbG9jX2xkdChzdHJ1Y3QgZGVzY19zdHJ1Y3QgKmxkdCwgdW5zaWdu
ZWQgZW50cmllcykNCj4gICB7DQo+ICAgCVBWT1BfVkNBTEwyKGNwdS5hbGxvY19sZHQsIGxk
dCwgZW50cmllcyk7DQo+IGRpZmYgLS1naXQgYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wYXJh
dmlydF90eXBlcy5oIGIvYXJjaC94ODYvaW5jbHVkZS9hc20vcGFyYXZpcnRfdHlwZXMuaA0K
PiBpbmRleCA2MzFjMzA2Y2UxZmYuLjQ3NWY1MDg1MzFkNiAxMDA2NDQNCj4gLS0tIGEvYXJj
aC94ODYvaW5jbHVkZS9hc20vcGFyYXZpcnRfdHlwZXMuaA0KPiArKysgYi9hcmNoL3g4Ni9p
bmNsdWRlL2FzbS9wYXJhdmlydF90eXBlcy5oDQo+IEBAIC0xMDEsOCArMTAxLDYgQEAgc3Ry
dWN0IHB2X2NwdV9vcHMgew0KPiAgIAl1NjQgKCpyZWFkX21zcl9zYWZlKSh1bnNpZ25lZCBp
bnQgbXNyLCBpbnQgKmVycik7DQo+ICAgCWludCAoKndyaXRlX21zcl9zYWZlKSh1bnNpZ25l
ZCBpbnQgbXNyLCB1bnNpZ25lZCBsb3csIHVuc2lnbmVkIGhpZ2gpOw0KPiAgIA0KPiAtCXU2
NCAoKnJlYWRfcG1jKShpbnQgY291bnRlcik7DQo+IC0NCj4gICAJdm9pZCAoKnN0YXJ0X2Nv
bnRleHRfc3dpdGNoKShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnByZXYpOw0KPiAgIAl2b2lkICgq
ZW5kX2NvbnRleHRfc3dpdGNoKShzdHJ1Y3QgdGFza19zdHJ1Y3QgKm5leHQpOw0KPiAgICNl
bmRpZg0KPiBkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL3BhcmF2aXJ0LmMgYi9hcmNo
L3g4Ni9rZXJuZWwvcGFyYXZpcnQuYw0KPiBpbmRleCAxY2NkMDVkODk5OWYuLjI4ZDE5NWFk
NzUxNCAxMDA2NDQNCj4gLS0tIGEvYXJjaC94ODYva2VybmVsL3BhcmF2aXJ0LmMNCj4gKysr
IGIvYXJjaC94ODYva2VybmVsL3BhcmF2aXJ0LmMNCj4gQEAgLTEzMiw3ICsxMzIsNiBAQCBz
dHJ1Y3QgcGFyYXZpcnRfcGF0Y2hfdGVtcGxhdGUgcHZfb3BzID0gew0KPiAgIAkuY3B1Lndy
aXRlX21zcgkJPSBuYXRpdmVfd3JpdGVfbXNyLA0KPiAgIAkuY3B1LnJlYWRfbXNyX3NhZmUJ
PSBuYXRpdmVfcmVhZF9tc3Jfc2FmZSwNCj4gICAJLmNwdS53cml0ZV9tc3Jfc2FmZQk9IG5h
dGl2ZV93cml0ZV9tc3Jfc2FmZSwNCj4gLQkuY3B1LnJlYWRfcG1jCQk9IG5hdGl2ZV9yZWFk
X3BtYywNCj4gICAJLmNwdS5sb2FkX3RyX2Rlc2MJPSBuYXRpdmVfbG9hZF90cl9kZXNjLA0K
PiAgIAkuY3B1LnNldF9sZHQJCT0gbmF0aXZlX3NldF9sZHQsDQo+ICAgCS5jcHUubG9hZF9n
ZHQJCT0gbmF0aXZlX2xvYWRfZ2R0LA0KPiBkaWZmIC0tZ2l0IGEvYXJjaC94ODYveGVuL2Vu
bGlnaHRlbl9wdi5jIGIvYXJjaC94ODYveGVuL2VubGlnaHRlbl9wdi5jDQo+IGluZGV4IDg0
NmI1NzM3ZDMyMC4uOWZiZTE4N2FmZjAwIDEwMDY0NA0KPiAtLS0gYS9hcmNoL3g4Ni94ZW4v
ZW5saWdodGVuX3B2LmMNCj4gKysrIGIvYXJjaC94ODYveGVuL2VubGlnaHRlbl9wdi5jDQo+
IEBAIC0xMjM2LDggKzEyMzYsNiBAQCBzdGF0aWMgY29uc3QgdHlwZW9mKHB2X29wcykgeGVu
X2NwdV9vcHMgX19pbml0Y29uc3QgPSB7DQo+ICAgCQkucmVhZF9tc3Jfc2FmZSA9IHhlbl9y
ZWFkX21zcl9zYWZlLA0KPiAgIAkJLndyaXRlX21zcl9zYWZlID0geGVuX3dyaXRlX21zcl9z
YWZlLA0KPiAgIA0KPiAtCQkucmVhZF9wbWMgPSB4ZW5fcmVhZF9wbWMsDQo+IC0NCj4gICAJ
CS5sb2FkX3RyX2Rlc2MgPSBwYXJhdmlydF9ub3AsDQo+ICAgCQkuc2V0X2xkdCA9IHhlbl9z
ZXRfbGR0LA0KPiAgIAkJLmxvYWRfZ2R0ID0geGVuX2xvYWRfZ2R0LA0KPiBkaWZmIC0tZ2l0
IGEvZHJpdmVycy9uZXQvdm14bmV0My92bXhuZXQzX2Rydi5jIGIvZHJpdmVycy9uZXQvdm14
bmV0My92bXhuZXQzX2Rydi5jDQo+IGluZGV4IDdlZGQwYjVlMGU3Ny4uOGFmM2I0ZDdlZjRk
IDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL25ldC92bXhuZXQzL3ZteG5ldDNfZHJ2LmMNCj4g
KysrIGIvZHJpdmVycy9uZXQvdm14bmV0My92bXhuZXQzX2Rydi5jDQo+IEBAIC0xNTEsNyAr
MTUxLDcgQEAgc3RhdGljIHU2NA0KPiAgIHZteG5ldDNfZ2V0X2N5Y2xlcyhpbnQgcG1jKQ0K
PiAgIHsNCj4gICAjaWZkZWYgQ09ORklHX1g4Ng0KPiAtCXJldHVybiBuYXRpdmVfcmVhZF9w
bWMocG1jKTsNCj4gKwlyZXR1cm4gbmF0aXZlX3JkcG1jcShwbWMpOw0KPiAgICNlbHNlDQo+
ICAgCXJldHVybiAwOw0KPiAgICNlbmRpZg0KDQo=
--------------xefsIXpq0wxo0BM9i717snKf
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-----

--------------xefsIXpq0wxo0BM9i717snKf--

--------------qqqJQkp59jKjmbEZC1Vwrfie--

--------------oWGr0D8fp74ylaTm4CQbbsBV
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/Ey8FAmgHVaEFAwAAAAAACgkQsN6d1ii/Ey+4
Iwf+P9Anst6NLwWqmB/uty6SQtRbl27XWkzPR5WuXxRCqzw/TzMJRycI3KQdOG3uwJm2SavyMaCW
uoBR5Q6dEVl+HR/HEjYcFUPrht8UBU/DPjII+Mw9av5BTpbqZbeWcSXzGpssCKT6LSdMz2lL9/z7
tJ/TqijlLR9rqocXgE+4glFgcv3QAefO1du0hLZqrVI4MA7R/q9ygvviVnq5XE3roR21AiFmxJ3+
hrYYFSKQ62D4hp5zgr+XlPdiGmhSZuUeJqd0xKaIBX/gB2zoAeUsbxxinEe73DfRVQCw+zG9WpP1
oUZyBiVvIe4saCtWqIFn8SB/re/GmwczEUAFjiN8Kg==
=Nnhs
-----END PGP SIGNATURE-----

--------------oWGr0D8fp74ylaTm4CQbbsBV--


From xen-devel-bounces@lists.xenproject.org Tue Apr 22 08:40:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 08:40:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.962167.1353471 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u79An-0003NU-SZ; Tue, 22 Apr 2025 08:40:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 962167.1353471; Tue, 22 Apr 2025 08:40: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 1u79An-0003NN-OE; Tue, 22 Apr 2025 08:40:09 +0000
Received: by outflank-mailman (input) for mailman id 962167;
 Tue, 22 Apr 2025 08: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=mE8E=XI=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1u79Am-0003NF-6O
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 08:40:08 +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 6428497d-1f55-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 10:40:06 +0200 (CEST)
Received: by mail-ed1-x52f.google.com with SMTP id
 4fb4d7f45d1cf-5e6c18e2c7dso9057594a12.3
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 01:40:06 -0700 (PDT)
Received: from ?IPV6:2003:e5:873d:1a00:8e99:ce06:aa4a:2e7b?
 (p200300e5873d1a008e99ce06aa4a2e7b.dip0.t-ipconnect.de.
 [2003:e5:873d:1a00:8e99:ce06:aa4a:2e7b])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-acb6ec42af6sm623016066b.43.2025.04.22.01.40.03
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 22 Apr 2025 01:40: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: 6428497d-1f55-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745311206; x=1745916006; 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=CUMHG1QvxG5BH5figTxBO0Gnu9UORHUCkgf8ecXGmgI=;
        b=Yc3b0aXoyZNb6+A7wzSpCgcqu3u8h4iFDIr4mBcB9YolUmNRSM9ZOlmCNPAhbwCNPW
         rUxRN51v5M9gJ1CIKxG5EGb+qeJktcbTIajzgLcQgRZi3Nw4xynVaagQ8R0Xr6AVu6+O
         LMvuh7bW6nVh0FehLnG20pWvXkDsc64ZOhurlpSwcawhNv4gW6kbT9CrAYCTTQ70PnG1
         cGh8IRlXUhtCNQYc+RY5XVkdTnrDlAFzHFWDZt1ppr9OhOIi6545FzYfP0h6qkd2sa9+
         zGozLDMMkk8dcUCDDlE0YNnD+V36qXzSgRmXRU8AuirwDnuCDiIjTuYJReNd0l48PbI2
         Tb8Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745311206; x=1745916006;
        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=CUMHG1QvxG5BH5figTxBO0Gnu9UORHUCkgf8ecXGmgI=;
        b=K1gmKxatKn7gAsY9KgzLptlC0bDsJrAjH328LDED7Q7ysa9rxWm0/cuBcgpmYyPHto
         QXb02XL3jMFM0uAx5ROSupMGF9T3//jHhfmurznElyisGAzeuNEfX3Q3b2lEE6xCqYud
         UcDU6jXiumAeVf5hFubnC45LSBD2d8QCgKCt7VZ8c9Zl1CO7KWidu0okFvSO/qtA8XAc
         3GpG9j5IVfBQW9QwR8y0RQOdpXCXHi3kqyj1mcYIwPh7G+7bOk7/iLsyxhZ7Xcq/WzoT
         uouH9IDicz2BkCOfYBz5U2v1Hi3POenL8MJjfIJKXpHH9bsQPjaAF0IIe7OkDqQxZJpk
         w6mg==
X-Forwarded-Encrypted: i=1; AJvYcCWdDLtzBF8+MmwM7xDTaeJmJW3LGP2cLOc/3tce0MUK2+JD2bA9z7bkhUDL9MvmmpfU2XATe+//CaY=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx1UcYUvhFfpkkzP/zMFEr1djXno6H69RbImLJ+OmVe5P7X0XAv
	8WY+y0ucaqeZZ0VM6CFPIOGEXE/kCqL/guMVr60/FxpIhYo9Lb0Ds6lL6Wlhqzo=
X-Gm-Gg: ASbGncvg0dxfLTskcZU2eJ8N4M9VWfoGNfL+bWrS1HJ/2TMCjciAlqsDi198Uvslh/V
	HVSVTIsszszAs1nWVkU4ACwryngEfgWM5ZdLnjLNRlqg940L8quU98eDEx+h3yVavIhYU+Fj4yh
	BPw4WYOlXCHH2rZimYGw3I4vjASkmnxpIRTkxjLa3KVMlbrvTLd5tvsQ49PudckdLIx9j+DBdkK
	53sfzMSU0C4tBlOhv+ktZ8UnXZjpwHUvn6SUctBnE3G5YRRUB6tkxQnbHE0R3NZrbPUO4uhV66r
	ppenjejQQbbnjOxxy+oDzERkVblJfxwTKKsgBoNsencxyjWZKYrJI9hxQ/U6lBafiSncXDZe5gq
	lhUIHWvHY9+By0GrA/Ky21esw1G5IWEgc1ipc2ErIwj5wDfKzIe0H3fKYjDUuohg6ng==
X-Google-Smtp-Source: AGHT+IEqRtfMiY1DWfkilqUfgWds2faWrE7hVCyGOEEmvjcgFKPAUYOnV2kf16210MIzcS8WQAu72w==
X-Received: by 2002:a17:907:3e9e:b0:ac6:e327:8de7 with SMTP id a640c23a62f3a-acb74d9b0f2mr1110204866b.42.1745311205533;
        Tue, 22 Apr 2025 01:40:05 -0700 (PDT)
Message-ID: <72f5c841-f710-42a6-8236-fdf2a8e4c8dc@suse.com>
Date: Tue, 22 Apr 2025 10:40:03 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH v2 05/34] x86/msr: Return u64 consistently in Xen PMC
 read functions
To: "Xin Li (Intel)" <xin@zytor.com>, linux-kernel@vger.kernel.org,
 kvm@vger.kernel.org, linux-perf-users@vger.kernel.org,
 linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
 linux-pm@vger.kernel.org, linux-edac@vger.kernel.org,
 xen-devel@lists.xenproject.org, linux-acpi@vger.kernel.org,
 linux-hwmon@vger.kernel.org, netdev@vger.kernel.org,
 platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
 dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com, acme@kernel.org,
 andrew.cooper3@citrix.com, peterz@infradead.org, namhyung@kernel.org,
 mark.rutland@arm.com, alexander.shishkin@linux.intel.com, jolsa@kernel.org,
 irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
 wei.liu@kernel.org, ajay.kaher@broadcom.com,
 bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
 pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
 luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
 haiyangz@microsoft.com, decui@microsoft.com
References: <20250422082216.1954310-1-xin@zytor.com>
 <20250422082216.1954310-6-xin@zytor.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: <20250422082216.1954310-6-xin@zytor.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------WAMohfNsrm1k14t8nB6fK70k"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------WAMohfNsrm1k14t8nB6fK70k
Content-Type: multipart/mixed; boundary="------------5GE4asvy3qe50nApI1ewKtAF";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: "Xin Li (Intel)" <xin@zytor.com>, linux-kernel@vger.kernel.org,
 kvm@vger.kernel.org, linux-perf-users@vger.kernel.org,
 linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
 linux-pm@vger.kernel.org, linux-edac@vger.kernel.org,
 xen-devel@lists.xenproject.org, linux-acpi@vger.kernel.org,
 linux-hwmon@vger.kernel.org, netdev@vger.kernel.org,
 platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
 dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com, acme@kernel.org,
 andrew.cooper3@citrix.com, peterz@infradead.org, namhyung@kernel.org,
 mark.rutland@arm.com, alexander.shishkin@linux.intel.com, jolsa@kernel.org,
 irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
 wei.liu@kernel.org, ajay.kaher@broadcom.com,
 bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
 pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
 luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
 haiyangz@microsoft.com, decui@microsoft.com
Message-ID: <72f5c841-f710-42a6-8236-fdf2a8e4c8dc@suse.com>
Subject: Re: [RFC PATCH v2 05/34] x86/msr: Return u64 consistently in Xen PMC
 read functions
References: <20250422082216.1954310-1-xin@zytor.com>
 <20250422082216.1954310-6-xin@zytor.com>
In-Reply-To: <20250422082216.1954310-6-xin@zytor.com>

--------------5GE4asvy3qe50nApI1ewKtAF
Content-Type: multipart/mixed; boundary="------------iKeJnAHhWV9cjLJ7DPQ5kCij"

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

T24gMjIuMDQuMjUgMTA6MjEsIFhpbiBMaSAoSW50ZWwpIHdyb3RlOg0KPiBUaGUgcHZfb3Bz
IFBNQyByZWFkIEFQSSBpcyBkZWZpbmVkIGFzOg0KPiAgICAgICAgICB1NjQgKCpyZWFkX3Bt
YykoaW50IGNvdW50ZXIpOw0KPiANCj4gQnV0IFhlbiBQTUMgcmVhZCBmdW5jdGlvbnMgcmV0
dXJuIHVuc2lnbmVkIGxvbmcgbG9uZywgbWFrZSB0aGVtDQo+IHJldHVybiB1NjQgY29uc2lz
dGVudGx5Lg0KPiANCj4gU2lnbmVkLW9mZi1ieTogWGluIExpIChJbnRlbCkgPHhpbkB6eXRv
ci5jb20+DQoNClJldmlld2VkLWJ5OiBKdWVyZ2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+
DQoNCg0KSnVlcmdlbg0K
--------------iKeJnAHhWV9cjLJ7DPQ5kCij
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-----

--------------iKeJnAHhWV9cjLJ7DPQ5kCij--

--------------5GE4asvy3qe50nApI1ewKtAF--

--------------WAMohfNsrm1k14t8nB6fK70k
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/Ey8FAmgHVeMFAwAAAAAACgkQsN6d1ii/Ey/j
jwf9FjFuU15+W0uDc4zGUao0fzYML/q56lEOOYrN4qdKg7Yz+aaWPgbfFayS8jYd5vCuKMJIvKNt
O86pjk2/3l+taVz9alop2FXdFTDucTrCjVyr9kiHeU7o93sniRH7ELuty0Z3bGDSnUdwVxENGs3H
np8FT9FW6QshiK+IGY/HOHuL102pAHR5W262cqwH+XOb1TmJGIgPOa2Q9OgT7FL3/DP96w09wOAZ
N7lzNJ+tfdaNiWco0hLCRohvUIu3CTO825cLYVvzS2iXQ4HKqCzHhBbmODUVDzLXJAQt2dIW00gZ
oehEL6ci5yZLt30VHIeYyHucROrYtXypolEX9nTPFw==
=COw5
-----END PGP SIGNATURE-----

--------------WAMohfNsrm1k14t8nB6fK70k--


From xen-devel-bounces@lists.xenproject.org Tue Apr 22 08:41:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 08:41:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.962181.1353481 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u79Bj-00040i-3S; Tue, 22 Apr 2025 08:41:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 962181.1353481; Tue, 22 Apr 2025 08: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 1u79Bj-00040b-0o; Tue, 22 Apr 2025 08:41:07 +0000
Received: by outflank-mailman (input) for mailman id 962181;
 Tue, 22 Apr 2025 08:41: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=NnGu=XI=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1u79Bh-00040R-Cz
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 08:41: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 853b4d70-1f55-11f0-9eb0-5ba50f476ded;
 Tue, 22 Apr 2025 10:41:01 +0200 (CEST)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-ac339f53df9so832164566b.1
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 01:41:02 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-64-225.play-internet.pl.
 [109.243.64.225]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-acb6eefcfa2sm636766066b.92.2025.04.22.01.41.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 22 Apr 2025 01:41: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: 853b4d70-1f55-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1745311261; x=1745916061; darn=lists.xenproject.org;
        h=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=eW5ASIYjxNP4+wn5Y9nmaZ95avMjpLygdzEZ8L4k980=;
        b=Ep0eILCYZyATCddoZwTLTRrDi93AcG3elJq79S5qdHy0oL4dkZ8uAgxNz2a44tgTBl
         ivxKvmh9x2iGOjUIBDM/0HNC4B6PhXuer5p/E3r2GtVwMg5DHLWWXKke2XDrGxFqLVeW
         MlvadoYl3Ic3ivzMpzEk5brULQIj7ZLxZmf9S+Q5WCCIwFMUDFj4S/CpVbYC0FHv151C
         ISNuMbdJIbJQ6xBgxVRQJnIlr27grIOm0IPgrsaU+ckBz59oEbKMZAiO6SPPsxeUiifX
         ChVHpD7gUY7icUuq3/KtFUMxt4QIDzwQ2PdoQHQeD2PLCneLykFpZ/bTra/Hsj99ZJgr
         Sryg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745311261; x=1745916061;
        h=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=eW5ASIYjxNP4+wn5Y9nmaZ95avMjpLygdzEZ8L4k980=;
        b=tfqtwUUQLbrVhSxr19ODEingiqtaPUNy2xUikkmk+DcKyQe4a6KTeLEJpRsacI5d22
         HkZPmAdffTz2gmvZK1XR1x4rfDx+dcrggZNmU2fPNZcOokGc3tMRoG6RIBb8VKaxgZAS
         Hj//X05P58Ag06LW8GPMuGqPP4Dt2lV9VIO8IkeSR1f5IGdTV2u0fdXWu+15GXMFLTmk
         VbfPppETdUfWjoj17ehNsZRri3S5l1MkzecCvduxp8tDpSGBoHSLiA+iA5oIHI9RjvX9
         Ufn39rB1hCifVrCzM5m135MNHbdZmYFh+dPQrVXk5R5KMBA0xcNYuJO5eS6rT0stT8Yk
         16VA==
X-Forwarded-Encrypted: i=1; AJvYcCXMSF+teNU4Hk8d6bk7i4B8IF2hLKr9EpPh/mQhe4j7qdHJvZAKbyiMBqfDAIxe3XnMy1Jun4NTyRc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzLRFZkuBbBKhNJVpl2r5hIue4yywnHjXgDYf0F5U4Llt3HLmEy
	0qGdjipRFq4kKkF2Og5NR+zhpb9h7jSjTjjJlXDvUmJ6MhAqJe0oioYE4g==
X-Gm-Gg: ASbGncu3zci8nlzj2GMDwfqvdHvQJwoYAK6/8gU516AWKKBRnRFV3MckcFywOUQZLma
	1DOkNsi2aQQng2+zTorzQLp4I34d3S4VD82XMYDxDu3C2wx0c+xELHmJEJCBDyo6hZoQba1DTn8
	Nja36+5o2W5cr1Uq39Pn6l9lfRSFLaBZGo2Z5x+dlf38iWvvBJ1A0i6qny4R5JdKJlbZu37Ad0x
	aVsNv443CAnf+2CjnA8bKQjWwcttRTWY5WKrN5AIW8R8Afc6xQpKuLdSFGC5nguXaXUxWwprX8x
	CrLM2+ybsvkrTC0IgRP8h4JogY99DhMBki9JTeG6onkkPXIsp76CTzu1OGc48VRavJjHUriej3d
	KCXZZe53zmMyzmFzE
X-Google-Smtp-Source: AGHT+IGJ6RKyijNxI+j3ARpYQe2Th7rPTmOz+kcVvWpOKUC1Reun7aAwurDYb1oKHnabayuJ+0hZZQ==
X-Received: by 2002:a17:907:7d8a:b0:ac7:ecea:8472 with SMTP id a640c23a62f3a-acb74b816d9mr1053030366b.26.1745311260911;
        Tue, 22 Apr 2025 01:41:00 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------Ho6TGRJ0d0m5hKpEbce6puvQ"
Message-ID: <676c1627-95a0-46a0-b132-3f3ac2fdda01@gmail.com>
Date: Tue, 22 Apr 2025 10:40:59 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 03/14] xen/riscv: introduce ioremap()
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1744126720.git.oleksii.kurochko@gmail.com>
 <6d91eeabe2735de93bfcf2a2420e2059a8f35e52.1744126720.git.oleksii.kurochko@gmail.com>
 <84089b6d-efeb-4613-85b9-eb10d11d7338@suse.com>
 <f315bc11-c537-4dca-9e62-a6d3f02733e4@gmail.com>
 <6b226b72-11a4-4004-b42d-0e280de83539@suse.com>
 <bbfdc4a0-54f0-4a9d-aa6d-2cf85ec03411@gmail.com>
 <a71db245-5b0b-435e-8e58-cb43c5162862@suse.com>
 <7d5356a5-53b7-4d1b-82ff-bc6f81a2f445@gmail.com>
 <6f50dea4-60e6-46b0-9363-d943ba553334@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <6f50dea4-60e6-46b0-9363-d943ba553334@suse.com>

This is a multi-part message in MIME format.
--------------Ho6TGRJ0d0m5hKpEbce6puvQ
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 4/17/25 4:49 PM, Jan Beulich wrote:
> On 17.04.2025 16:37, Oleksii Kurochko wrote:
>> On 4/17/25 4:24 PM, Jan Beulich wrote:
>>> On 17.04.2025 16:20, Oleksii Kurochko wrote:
>>>> On 4/15/25 1:02 PM, Jan Beulich wrote:
>>>>> On 15.04.2025 12:29, Oleksii Kurochko wrote:
>>>>>> On 4/10/25 5:13 PM, Jan Beulich wrote:
>>>>>>> On 08.04.2025 17:57, Oleksii Kurochko wrote:
>>>>>>>> Based on RISC-V unpriviliged spec ( Version 20240411 ):
>>>>>>>> ```
>>>>>>>> For implementations that conform to the RISC-V Unix Platform Specification,
>>>>>>>> I/O devices and DMA operations are required to access memory coherently and
>>>>>>>> via strongly ordered I/O channels. Therefore, accesses to regular main memory
>>>>>>>> regions that are concurrently accessed by external devices can also use the
>>>>>>>> standard synchronization mechanisms. Implementations that do not conform
>>>>>>>> to the Unix Platform Specification and/or in which devices do not access
>>>>>>>> memory coherently will need to use mechanisms
>>>>>>>> (which are currently platform-specific or device-specific) to enforce
>>>>>>>> coherency.
>>>>>>>>
>>>>>>>> I/O regions in the address space should be considered non-cacheable
>>>>>>>> regions in the PMAs for those regions. Such regions can be considered coherent
>>>>>>>> by the PMA if they are not cached by any agent.
>>>>>>>> ```
>>>>>>>> and [1]:
>>>>>>>> ```
>>>>>>>> The current riscv linux implementation requires SOC system to support
>>>>>>>> memory coherence between all I/O devices and CPUs. But some SOC systems
>>>>>>>> cannot maintain the coherence and they need support cache clean/invalid
>>>>>>>> operations to synchronize data.
>>>>>>>>
>>>>>>>> Current implementation is no problem with SiFive FU540, because FU540
>>>>>>>> keeps all IO devices and DMA master devices coherence with CPU. But to a
>>>>>>>> traditional SOC vendor, it may already have a stable non-coherency SOC
>>>>>>>> system, the need is simply to replace the CPU with RV CPU and rebuild
>>>>>>>> the whole system with IO-coherency is very expensive.
>>>>>>>> ```
>>>>>>>>
>>>>>>>> and the fact that all known ( to me ) CPUs that support the H-extension
>>>>>>>> and that ones is going to be supported by Xen have memory coherency
>>>>>>>> between all I/O devices and CPUs, so it is currently safe to use the
>>>>>>>> PAGE_HYPERVISOR attribute.
>>>>>>>> However, in cases where a platform does not support memory coherency, it
>>>>>>>> should support CMO extensions and Svpbmt. In this scenario, updates to
>>>>>>>> ioremap will be necessary.
>>>>>>>> For now, a compilation error will be generated to ensure that the need to
>>>>>>>> update ioremap() is not overlooked.
>>>>>>>>
>>>>>>>> [1]https://patchwork.kernel.org/project/linux-riscv/patch/1555947870-23014-1-git-send-email-guoren@kernel.org/
>>>>>>> But MMIO access correctness isn't just a matter of coherency. There may not
>>>>>>> be any caching involved in most cases, or else you may observe significantly
>>>>>>> delayed or even dropped (folded with later ones) writes, and reads may be
>>>>>>> serviced from the cache instead of going to actual MMIO. Therefore ...
>>>>>>>
>>>>>>>> --- a/xen/arch/riscv/Kconfig
>>>>>>>> +++ b/xen/arch/riscv/Kconfig
>>>>>>>> @@ -15,6 +15,18 @@ config ARCH_DEFCONFIG
>>>>>>>>      	string
>>>>>>>>      	default "arch/riscv/configs/tiny64_defconfig"
>>>>>>>>      
>>>>>>>> +config HAS_SVPBMT
>>>>>>>> +	bool
>>>>>>>> +	help
>>>>>>>> +	  This config enables usage of Svpbmt ISA-extension ( Supervisor-mode:
>>>>>>>> +	  page-based memory types).
>>>>>>>> +
>>>>>>>> +	  The memory type for a page contains a combination of attributes
>>>>>>>> +	  that indicate the cacheability, idempotency, and ordering
>>>>>>>> +	  properties for access to that page.
>>>>>>>> +
>>>>>>>> +	  The Svpbmt extension is only available on 64-bit cpus.
>>>>>>> ... I kind of expect this extension (or anything else that there might be) will need
>>>>>>> making use of.
>>>>>> In cases where the Svpbmt extension isn't available, PMA (Physical Memory Attributes)
>>>>>> is used to control which memory regions are cacheable, non-cacheable, readable, writable,
>>>>>> etc. PMA is configured in M-mode by the firmware (e.g., OpenSBI), as is done in Andes
>>>>>> cores, or it can be fixed at design time, as in SiFive cores.
>>>>> How would things work if there was a need to map a RAM page uncacheable (via
>>>>> ioremap() or otherwise)?
>>>> My understanding is that Svpbmt is only needed when someone wants to change the memory
>>>> attribute of a page set by PMA.
>>>>
>>>> The question is if non-cacheable RAM page is really needed if we have a coherency?
>>> Aiui coherency here is among CPUs.
>> ```
>> For implementations that conform to the RISC-V Unix Platform Specification,
>> I/O devices and DMA operations are required to access memory coherently and
>> via strongly ordered I/O channels. Therefore, accesses to regular main memory
>> regions that are concurrently accessed by external devices can also use the
>> standard synchronization mechanisms. Implementations that do not conform
>> to the Unix Platform Specification and/or in which devices do not access
>> memory coherently will need to use mechanisms
>> (which are currently platform-specific or device-specific) to enforce
>> coherency.
>> ```
>> Based on this from the spec, coherency here is not only among CPUs.
>>
>>
>>> Properties of devices in the system are
>>> largely unknown?
>> Yes, but still not sure what kind of property requires ioremap() which won't work
>> without Svpmbt. Could you please tell me an example?
> Well, above you said they all need to access memory coherently. That's the
> "property" I was referring to.

Do you mean that device could have a property which tell that it would like to have non-cachable
region used for that? I haven't seen such property in device tree files.

Do we have in Xen cases when Xen wants to have map part of RAM as non-cachebale and it is only the
one option?

I am also thinking why it can't be used cachable region + barrier (if we don't have memory coherency
for everything).

Anyway, if it isn't an option to have mapped cacheble region + barrier then there is no any choice
and the support of Svpmbt is required.

>
>>> (Beyond this there may also be special situations in which
>>> one really cares about data going directly to RAM.)
>> If there are such special cases, I assume that the firmware or hardware (in the case
>> of fixed PMA) will provide a non-cacheable region.
> How could they? Firmware may be unaware of specific properties of specific
> devices a user adds to a system.

(this is not real case, just thoughts) Firmware could by default provide part of RAM as
non-cacheable region and then hypervisor/kernel use this region for allocation. But I agree
that it isn't the best thing to manage that.


~ Oleksii

>> In that case, the user should be
>> aware of this region and use it for those specific scenarios.
>>
>> ~ Oleksii
>>
--------------Ho6TGRJ0d0m5hKpEbce6puvQ
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 4/17/25 4:49 PM, Jan Beulich wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:6f50dea4-60e6-46b0-9363-d943ba553334@suse.com">
      <pre wrap="" class="moz-quote-pre">On 17.04.2025 16:37, Oleksii Kurochko wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">
On 4/17/25 4:24 PM, Jan Beulich wrote:
</pre>
        <blockquote type="cite">
          <pre wrap="" class="moz-quote-pre">On 17.04.2025 16:20, Oleksii Kurochko wrote:
</pre>
          <blockquote type="cite">
            <pre wrap="" class="moz-quote-pre">On 4/15/25 1:02 PM, Jan Beulich wrote:
</pre>
            <blockquote type="cite">
              <pre wrap="" class="moz-quote-pre">On 15.04.2025 12:29, Oleksii Kurochko wrote:
</pre>
              <blockquote type="cite">
                <pre wrap="" class="moz-quote-pre">On 4/10/25 5:13 PM, Jan Beulich wrote:
</pre>
                <blockquote type="cite">
                  <pre wrap="" class="moz-quote-pre">On 08.04.2025 17:57, Oleksii Kurochko wrote:
</pre>
                  <blockquote type="cite">
                    <pre wrap="" class="moz-quote-pre">Based on RISC-V unpriviliged spec ( Version 20240411 ):
```
For implementations that conform to the RISC-V Unix Platform Specification,
I/O devices and DMA operations are required to access memory coherently and
via strongly ordered I/O channels. Therefore, accesses to regular main memory
regions that are concurrently accessed by external devices can also use the
standard synchronization mechanisms. Implementations that do not conform
to the Unix Platform Specification and/or in which devices do not access
memory coherently will need to use mechanisms
(which are currently platform-specific or device-specific) to enforce
coherency.

I/O regions in the address space should be considered non-cacheable
regions in the PMAs for those regions. Such regions can be considered coherent
by the PMA if they are not cached by any agent.
```
and [1]:
```
The current riscv linux implementation requires SOC system to support
memory coherence between all I/O devices and CPUs. But some SOC systems
cannot maintain the coherence and they need support cache clean/invalid
operations to synchronize data.

Current implementation is no problem with SiFive FU540, because FU540
keeps all IO devices and DMA master devices coherence with CPU. But to a
traditional SOC vendor, it may already have a stable non-coherency SOC
system, the need is simply to replace the CPU with RV CPU and rebuild
the whole system with IO-coherency is very expensive.
```

and the fact that all known ( to me ) CPUs that support the H-extension
and that ones is going to be supported by Xen have memory coherency
between all I/O devices and CPUs, so it is currently safe to use the
PAGE_HYPERVISOR attribute.
However, in cases where a platform does not support memory coherency, it
should support CMO extensions and Svpbmt. In this scenario, updates to
ioremap will be necessary.
For now, a compilation error will be generated to ensure that the need to
update ioremap() is not overlooked.

[1]<a class="moz-txt-link-freetext" href="https://patchwork.kernel.org/project/linux-riscv/patch/1555947870-23014-1-git-send-email-guoren@kernel.org/">https://patchwork.kernel.org/project/linux-riscv/patch/1555947870-23014-1-git-send-email-guoren@kernel.org/</a>
</pre>
                  </blockquote>
                  <pre wrap="" class="moz-quote-pre">But MMIO access correctness isn't just a matter of coherency. There may not
be any caching involved in most cases, or else you may observe significantly
delayed or even dropped (folded with later ones) writes, and reads may be
serviced from the cache instead of going to actual MMIO. Therefore ...

</pre>
                  <blockquote type="cite">
                    <pre wrap="" class="moz-quote-pre">--- a/xen/arch/riscv/Kconfig
+++ b/xen/arch/riscv/Kconfig
@@ -15,6 +15,18 @@ config ARCH_DEFCONFIG
    	string
    	default "arch/riscv/configs/tiny64_defconfig"
    
+config HAS_SVPBMT
+	bool
+	help
+	  This config enables usage of Svpbmt ISA-extension ( Supervisor-mode:
+	  page-based memory types).
+
+	  The memory type for a page contains a combination of attributes
+	  that indicate the cacheability, idempotency, and ordering
+	  properties for access to that page.
+
+	  The Svpbmt extension is only available on 64-bit cpus.
</pre>
                  </blockquote>
                  <pre wrap="" class="moz-quote-pre">... I kind of expect this extension (or anything else that there might be) will need
making use of.
</pre>
                </blockquote>
                <pre wrap="" class="moz-quote-pre">In cases where the Svpbmt extension isn't available, PMA (Physical Memory Attributes)
is used to control which memory regions are cacheable, non-cacheable, readable, writable,
etc. PMA is configured in M-mode by the firmware (e.g., OpenSBI), as is done in Andes
cores, or it can be fixed at design time, as in SiFive cores.
</pre>
              </blockquote>
              <pre wrap="" class="moz-quote-pre">How would things work if there was a need to map a RAM page uncacheable (via
ioremap() or otherwise)?
</pre>
            </blockquote>
            <pre wrap="" class="moz-quote-pre">My understanding is that Svpbmt is only needed when someone wants to change the memory
attribute of a page set by PMA.

The question is if non-cacheable RAM page is really needed if we have a coherency?
</pre>
          </blockquote>
          <pre wrap="" class="moz-quote-pre">Aiui coherency here is among CPUs.
</pre>
        </blockquote>
        <pre wrap="" class="moz-quote-pre">
```
For implementations that conform to the RISC-V Unix Platform Specification,
I/O devices and DMA operations are required to access memory coherently and
via strongly ordered I/O channels. Therefore, accesses to regular main memory
regions that are concurrently accessed by external devices can also use the
standard synchronization mechanisms. Implementations that do not conform
to the Unix Platform Specification and/or in which devices do not access
memory coherently will need to use mechanisms
(which are currently platform-specific or device-specific) to enforce
coherency.
```
Based on this from the spec, coherency here is not only among CPUs.


</pre>
        <blockquote type="cite">
          <pre wrap="" class="moz-quote-pre">Properties of devices in the system are
largely unknown?
</pre>
        </blockquote>
        <pre wrap="" class="moz-quote-pre">
Yes, but still not sure what kind of property requires ioremap() which won't work
without Svpmbt. Could you please tell me an example?
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Well, above you said they all need to access memory coherently. That's the
"property" I was referring to.</pre>
    </blockquote>
    <pre>Do you mean that device could have a property which tell that it would like to have non-cachable
region used for that? I haven't seen such property in device tree files.

Do we have in Xen cases when Xen wants to have map part of RAM as non-cachebale and it is only the
one option?

I am also thinking why it can't be used cachable region + barrier (if we don't have memory coherency
for everything).

Anyway, if it isn't an option to have mapped cacheble region + barrier then there is no any choice
and the support of Svpmbt is required.

</pre>
    <blockquote type="cite"
      cite="mid:6f50dea4-60e6-46b0-9363-d943ba553334@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <blockquote type="cite">
          <pre wrap="" class="moz-quote-pre">(Beyond this there may also be special situations in which
one really cares about data going directly to RAM.)
</pre>
        </blockquote>
        <pre wrap="" class="moz-quote-pre">
If there are such special cases, I assume that the firmware or hardware (in the case
of fixed PMA) will provide a non-cacheable region.
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
How could they? Firmware may be unaware of specific properties of specific
devices a user adds to a system.</pre>
    </blockquote>
    <pre>(this is not real case, just thoughts) Firmware could by default provide part of RAM as
non-cacheable region and then hypervisor/kernel use this region for allocation. But I agree
that it isn't the best thing to manage that.


~ Oleksii</pre>
    <blockquote type="cite"
      cite="mid:6f50dea4-60e6-46b0-9363-d943ba553334@suse.com">
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">In that case, the user should be
aware of this region and use it for those specific scenarios.

~ Oleksii

</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
</pre>
    </blockquote>
  </body>
</html>

--------------Ho6TGRJ0d0m5hKpEbce6puvQ--


From xen-devel-bounces@lists.xenproject.org Tue Apr 22 09:00:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 09:00:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.962278.1353490 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u79Tx-0003kb-KQ; Tue, 22 Apr 2025 08:59:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 962278.1353490; Tue, 22 Apr 2025 08:59: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 1u79Tx-0003kU-HY; Tue, 22 Apr 2025 08:59:57 +0000
Received: by outflank-mailman (input) for mailman id 962278;
 Tue, 22 Apr 2025 08: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=mE8E=XI=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1u79Tw-0003j5-4w
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 08:59:56 +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 27cfe5b4-1f58-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 10:59:53 +0200 (CEST)
Received: by mail-wr1-x429.google.com with SMTP id
 ffacd0b85a97d-39c0dfba946so3240207f8f.3
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 01:59:53 -0700 (PDT)
Received: from ?IPV6:2003:e5:873d:1a00:8e99:ce06:aa4a:2e7b?
 (p200300e5873d1a008e99ce06aa4a2e7b.dip0.t-ipconnect.de.
 [2003:e5:873d:1a00:8e99:ce06:aa4a:2e7b])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4406d5acccdsm163039815e9.11.2025.04.22.01.59.51
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 22 Apr 2025 01:59:52 -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: 27cfe5b4-1f58-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745312393; x=1745917193; 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=ujyn0VKVe/xF+dYczM9VnE6xq8ijmCm9Y16p78vYay4=;
        b=KoJChgyMVymca3c7A41IUOzDGpFlimKHtAQ3uTiVP5mAMLYU+cm+4jXwUznllvOFcr
         PiQK6FmusNzUxjn5Q8GNtS5cmcwRLZyiWvI3JRNcb1J0JZ4If46OeXu8zamIbthshx1k
         W8PWZwmcCdPsn7MRltRwUmMGXPKcq7G4f8MI/TKMEYLOCYwaEHmKoOFUV+S3b1Ev3VzO
         fBzMxrbE4eY4ttCq8SRfjLgLVEePbeH+y78qgb29zCrNAJfY50d4VE0nqqYvEBLnqQzu
         JmiWuPa3N9crZ7KDQlfJUdn/VkSaJg5jlU894R/EKxH4ReNOGdz7cy3psQs47CE0uT2+
         1f5g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745312393; x=1745917193;
        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=ujyn0VKVe/xF+dYczM9VnE6xq8ijmCm9Y16p78vYay4=;
        b=wHnrhtYzXn+cXf6Ojdt1vDAuFDqjbBu52RVVKWsv/ZPkQpLff84RLIQeQ/S+Z8g39A
         oe8Gwhumq3oYMLIWDywq0VN6ceuwDFaT30bAxoVn3Y7JVjmPtRpyyCo5XntrBHmv/JZD
         mat7fnogm2w/bYgYYJ5H+D7Qe9I30nKpg6Mve91Utl4pycqfm351mRhgVpoJpbg7LG3z
         0VejVuTiiJI5w+ZJzdjmJy90OJJdXaYdrxlp6xJ3z2Bwijzvh6l38w38RR1fVkR3Tw+6
         6sjRAV6eEVZVMDGLxdYA3HS/Gua46QASMzx0JFvv4FJvfmBGOiftj0lc8TtBwi1rIoNV
         0VoQ==
X-Forwarded-Encrypted: i=1; AJvYcCW1BjChJR3DLAFHUH8IH+FkLZDlimtMo2BIJjGDDk13qieXKAoEdQqCwX3Xm/EWShxs5G5daL3KUtY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzDSgVCQ31DvUeFtoAEz47kfPowi/j3WJ11IXb1WFrfw328N5Xo
	b41kVAGYdniqqwTVxPGdblh0WxbNpVmVxSSzx/swULjjYyBRfJvBPXf+lKeZMvo=
X-Gm-Gg: ASbGnct9/K2v8iAbVkiOsP7BLDrfwGtY6UUU5cIUVt0IXKwPBEDbUW/ob2koEQmYhvm
	Thzk7ta2IrMWFoYlBnhcxqghuoKr+2NHmpME6CWdf0YZSFi3JWR+8tsr2CmCc271CAe76T/iqHD
	cXVIfXDkeJkfDUDHvF3tiYpOX/lX6WdQwsH4j2Qw9p6x42s4w/HwIPZYL6YLmmI/2Ir9efirKo4
	qb472HqXBUYmG7v4MqBpWGVVTnrcIuJLpIiP8Yh13jvFrS1jCcIhkiGV9TQORIYPkh4SZVKBC9O
	5QFrTsq7tDRHzuIJu6hGRDiXgpDUPXZXqQFBGqORTVX7PacSaqi9h/YVK6FESrSQiTaPgMmrEvP
	5hvdGFtwl4JVh5dxJFnrGo6D+Ywvcr/NxDPzu7CrI9Ts4xOZ/VtWxmvLlVL6rZ9+oaw==
X-Google-Smtp-Source: AGHT+IHhAxs5QMTZ7btt0BxV1tkAgF4gAnB1ObDDlK+iQMS14fyL4RdcPyHNPw8fbHs/dOwMDpgnkQ==
X-Received: by 2002:a05:6000:1887:b0:39a:c9d9:877b with SMTP id ffacd0b85a97d-39efba5eae1mr10977975f8f.27.1745312392891;
        Tue, 22 Apr 2025 01:59:52 -0700 (PDT)
Message-ID: <91f9217a-cc2d-4a6e-bada-290312f73d82@suse.com>
Date: Tue, 22 Apr 2025 10:59:50 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH v2 22/34] x86/msr: Utilize the alternatives mechanism
 to read MSR
To: "Xin Li (Intel)" <xin@zytor.com>, linux-kernel@vger.kernel.org,
 kvm@vger.kernel.org, linux-perf-users@vger.kernel.org,
 linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
 linux-pm@vger.kernel.org, linux-edac@vger.kernel.org,
 xen-devel@lists.xenproject.org, linux-acpi@vger.kernel.org,
 linux-hwmon@vger.kernel.org, netdev@vger.kernel.org,
 platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
 dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com, acme@kernel.org,
 andrew.cooper3@citrix.com, peterz@infradead.org, namhyung@kernel.org,
 mark.rutland@arm.com, alexander.shishkin@linux.intel.com, jolsa@kernel.org,
 irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
 wei.liu@kernel.org, ajay.kaher@broadcom.com,
 bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
 pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
 luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
 haiyangz@microsoft.com, decui@microsoft.com
References: <20250422082216.1954310-1-xin@zytor.com>
 <20250422082216.1954310-23-xin@zytor.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: <20250422082216.1954310-23-xin@zytor.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------un2AYJFRoeghgHfedleEX9ZN"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------un2AYJFRoeghgHfedleEX9ZN
Content-Type: multipart/mixed; boundary="------------j8Mm72KUaJS15LtVM5GZpzd8";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: "Xin Li (Intel)" <xin@zytor.com>, linux-kernel@vger.kernel.org,
 kvm@vger.kernel.org, linux-perf-users@vger.kernel.org,
 linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
 linux-pm@vger.kernel.org, linux-edac@vger.kernel.org,
 xen-devel@lists.xenproject.org, linux-acpi@vger.kernel.org,
 linux-hwmon@vger.kernel.org, netdev@vger.kernel.org,
 platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
 dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com, acme@kernel.org,
 andrew.cooper3@citrix.com, peterz@infradead.org, namhyung@kernel.org,
 mark.rutland@arm.com, alexander.shishkin@linux.intel.com, jolsa@kernel.org,
 irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
 wei.liu@kernel.org, ajay.kaher@broadcom.com,
 bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
 pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
 luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
 haiyangz@microsoft.com, decui@microsoft.com
Message-ID: <91f9217a-cc2d-4a6e-bada-290312f73d82@suse.com>
Subject: Re: [RFC PATCH v2 22/34] x86/msr: Utilize the alternatives mechanism
 to read MSR
References: <20250422082216.1954310-1-xin@zytor.com>
 <20250422082216.1954310-23-xin@zytor.com>
In-Reply-To: <20250422082216.1954310-23-xin@zytor.com>

--------------j8Mm72KUaJS15LtVM5GZpzd8
Content-Type: multipart/mixed; boundary="------------nQ9cpx1ohBCDhUhDRNjrikdZ"

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

T24gMjIuMDQuMjUgMTA6MjIsIFhpbiBMaSAoSW50ZWwpIHdyb3RlOg0KPiBUbyBlbGltaW5h
dGUgdGhlIGluZGlyZWN0IGNhbGwgb3ZlcmhlYWQgaW50cm9kdWNlZCBieSB0aGUgcHZfb3Bz
IEFQSSwNCj4gdXRpbGl6ZSB0aGUgYWx0ZXJuYXRpdmVzIG1lY2hhbmlzbSB0byByZWFkIE1T
UjoNCj4gDQo+ICAgICAgMSkgV2hlbiBidWlsdCB3aXRoICFDT05GSUdfWEVOX1BWLCBYODZf
RkVBVFVSRV9YRU5QViBiZWNvbWVzIGENCj4gICAgICAgICBkaXNhYmxlZCBmZWF0dXJlLCBw
cmV2ZW50aW5nIHRoZSBYZW4gY29kZSBmcm9tIGJlaW5nIGJ1aWx0DQo+ICAgICAgICAgYW5k
IGVuc3VyaW5nIHRoZSBuYXRpdmUgY29kZSBpcyBleGVjdXRlZCB1bmNvbmRpdGlvbmFsbHku
DQo+IA0KPiAgICAgIDIpIFdoZW4gYnVpbHQgd2l0aCBDT05GSUdfWEVOX1BWOg0KPiANCj4g
ICAgICAgICAyLjEpIElmIG5vdCBydW5uaW5nIG9uIHRoZSBYZW4gaHlwZXJ2aXNvciAoIVg4
Nl9GRUFUVVJFX1hFTlBWKSwNCj4gICAgICAgICAgICAgIHRoZSBrZXJuZWwgcnVudGltZSBi
aW5hcnkgaXMgcGF0Y2hlZCB0byB1bmNvbmRpdGlvbmFsbHkNCj4gICAgICAgICAgICAgIGp1
bXAgdG8gdGhlIG5hdGl2ZSBNU1IgcmVhZCBjb2RlLg0KPiANCj4gICAgICAgICAyLjIpIElm
IHJ1bm5pbmcgb24gdGhlIFhlbiBoeXBlcnZpc29yIChYODZfRkVBVFVSRV9YRU5QViksIHRo
ZQ0KPiAgICAgICAgICAgICAga2VybmVsIHJ1bnRpbWUgYmluYXJ5IGlzIHBhdGNoZWQgdG8g
dW5jb25kaXRpb25hbGx5IGp1bXANCj4gICAgICAgICAgICAgIHRvIHRoZSBYZW4gTVNSIHJl
YWQgY29kZS4NCj4gDQo+IFRoZSBhbHRlcm5hdGl2ZXMgbWVjaGFuaXNtIGlzIGFsc28gdXNl
ZCB0byBjaG9vc2UgdGhlIG5ldyBpbW1lZGlhdGUNCj4gZm9ybSBNU1IgcmVhZCBpbnN0cnVj
dGlvbiB3aGVuIGl0J3MgYXZhaWxhYmxlLg0KPiANCj4gQ29uc2VxdWVudGx5LCByZW1vdmUg
dGhlIHB2X29wcyBNU1IgcmVhZCBBUElzIGFuZCB0aGUgWGVuIGNhbGxiYWNrcy4NCg0KU2Ft
ZSBhcyB0aGUgY29tbWVudCB0byBwYXRjaCA1OiB0aGVyZSBpcyBubyBpbmRpcmVjdCBjYWxs
IG92ZXJoZWFkIGFmdGVyDQp0aGUgc3lzdGVtIGhhcyBjb21lIHVwLg0KDQoNCkp1ZXJnZW4N
Cg==
--------------nQ9cpx1ohBCDhUhDRNjrikdZ
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-----

--------------nQ9cpx1ohBCDhUhDRNjrikdZ--

--------------j8Mm72KUaJS15LtVM5GZpzd8--

--------------un2AYJFRoeghgHfedleEX9ZN
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/Ey8FAmgHWoYFAwAAAAAACgkQsN6d1ii/Ey8D
BQf+OA19Vpg0eUa4ERij9S9MXvQgixkI0nFzR7la2M7mGDzjkkOaQEkFSUweGf7z1sWPEFz2Rcur
2jPu4DTZw1n2NfYf2nwEVrOyAXJPCWled0ZzTbfLlwXAg4fSvz1po/QW2sin5kuNqFUKuq3lUIXs
QBnKaTx2+pzCnVp2E+E6cKb05IPjd46gZn5Vzgc1XF0Q0RSkM4J74f+mD+GKJMEL8PqfgzTH9Gb6
uNQjjbf1nLrKiauc2xpYec2q6IndTJhHBZKvMzBVAM45WeTDAiZQFUGYtFg10xQ7N1ZKfi1z8j1+
E70SrF18uNYtrFViiyjvuYSE3PLZwksXAkLqtLb8gQ==
=hDW8
-----END PGP SIGNATURE-----

--------------un2AYJFRoeghgHfedleEX9ZN--


From xen-devel-bounces@lists.xenproject.org Tue Apr 22 09:07:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 09:07:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.962291.1353500 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u79bS-0001IL-As; Tue, 22 Apr 2025 09:07:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 962291.1353500; Tue, 22 Apr 2025 09: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 1u79bS-0001IE-8A; Tue, 22 Apr 2025 09:07:42 +0000
Received: by outflank-mailman (input) for mailman id 962291;
 Tue, 22 Apr 2025 09:07: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=f4Vg=XI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u79bQ-0001I8-4d
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 09:07:40 +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 3c4e7448-1f59-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 11:07:37 +0200 (CEST)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-43cebe06e9eso40211805e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 02:07:37 -0700 (PDT)
Received: from [10.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-39efa4930e4sm14534397f8f.73.2025.04.22.02.07.36
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 22 Apr 2025 02:07:36 -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: 3c4e7448-1f59-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745312857; x=1745917657; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=q83YwY7BjNLqZmGvYnsKuRIjQV/SXdEW6KJv9xbE8oM=;
        b=B2yQjhcw62j6UrqH60RXkN9ZPidmyS6qZJcf/H4ZGbIwNGfFaldomHtnsdp8mqja7F
         jTl6QhEgMtWL3eZI2a45oZfluuEOh3F4bdR95w3R8uB7Ozld62PcFGFAdClfFSBMYh2l
         sS1CkARndtUfu+k5mi/IaC3FxvcR1rDf4yuNZvlXHlWnyUVY6EBaL+eW5tI4Qtk700RL
         BO0ASdlzCX+Xe8wivgwxzBr3V1fHrTAP23yNTvE9ivD3BJQedRxj0nbnKVS55msBnVgY
         J1eOJY3Ek1+LTosqnS6cklWrCfovHyOFRBWkpPByGVg8EeaIpBYXY0Wmeu3PXvZNZK2Y
         QiqA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745312857; x=1745917657;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=q83YwY7BjNLqZmGvYnsKuRIjQV/SXdEW6KJv9xbE8oM=;
        b=scGbSggSdDSuHhbWQHaCpfdTpF4/Vmz+92Ilq68wtaN5naLGdk+Z9jdLdKTANhsXHd
         xKjxO9P+GO5mFMXYfqgHN11SkP7OXwshJuebOaJiKx2NjmtvgZSF4yxcLv/1KQiLnk0+
         VgirbQR56umIkCufL722y7bNao4zI24x+TL6FTL24FcHWSbPFqxWxQtP4Y92R3qCiMPg
         ZPaDn10U93Qv2gk3UaiS7nftKRsZUiim7Kwko9wF2NUTrhH3/KLuGjr9rt46k9OlQjfA
         y4HGkw+GqtPvuZXtvuHi9Lv6jmovVgXBWc+SUrMEXpsmT1Q2W/MbHBQK3TXb62lwdlGO
         8cYQ==
X-Forwarded-Encrypted: i=1; AJvYcCVWpfN4HVAYZP/3ZqYKkPJ91OuzkNfG7nCtkF1YwhO3SDVdACfjneZZqcUZrZ+bI7VyAqMlwaRKiJY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyAA+gnRUJHNTpK/DkCALx1iuuc3Ec30XremPgqcn+46e078rNF
	+OqPmx0iAEiU2jhQW6mY4RwyhlX444VMmUkeAJNysIAf4XhQ3y+C5RkQCisfsw==
X-Gm-Gg: ASbGncsiqN1Dgkl/5ihb4Anm3EGQ0e19Q07azEbYR78qV+0Bg9rp3mUV9RK26OSDS5X
	UPUPaCo6tYWOKyy+cAZixIPLWM8ACZX9ABeE6gieoMugr/yt1QJgMqZPttQ+GzF7jpix0fq8JWU
	NnnXfoPVWmS/Dd44FmvgoIm32wD9DrGb5QhF3OR4hIRS5qPBsR5D9JdyaJV9t2pVDcfYKJ6b7u/
	dCrshOZSdaSulU41cgYeC1Vw4rPAgUG4yAoJXVXr0jnaLqHeD++kfcRIWdcanspNyudiVmYRXIM
	5KQKKIGaOsj5LlBCCXDxlGxC4evlDOKZj1gXiSNxJEJ5AKBChjPW+igQJEb3o22nqeUlsY7/Bv2
	t6WYJC9N6eO2c5SOO2as5B8KNkOXSw87uCHK1
X-Google-Smtp-Source: AGHT+IE1aAPLWmJMOMYzPAlPrNvW9KoMmrrOHg/u5UnT/szAx1Qfy3n+aKXE6G+pv3GEcMX8vOw29g==
X-Received: by 2002:a05:600c:3c9d:b0:43c:f8fc:f69a with SMTP id 5b1f17b1804b1-4406ab676fdmr129403525e9.4.1745312856840;
        Tue, 22 Apr 2025 02:07:36 -0700 (PDT)
Message-ID: <7794150f-4a43-4ec8-bd9e-ee439cbf722c@suse.com>
Date: Tue, 22 Apr 2025 11:07:38 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/AMD: Convert rdmsr_amd_safe() to use asm goto()
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: <20250407153510.1863243-1-andrew.cooper3@citrix.com>
 <1df6b4c9-7309-49cd-8046-019d94139c57@suse.com>
 <06c64f49-a70e-48c3-8480-f2ed9ac4a001@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: <06c64f49-a70e-48c3-8480-f2ed9ac4a001@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 17.04.2025 19:24, Andrew Cooper wrote:
> On 07/04/2025 4:48 pm, Jan Beulich wrote:
>> On 07.04.2025 17:35, Andrew Cooper wrote:
>>> Unlike the WRMSR side, we can't use asm goto() unconditionally, because our
>>> toolchain baseline doesn't support asm goto with outputs.
>> Is there actually a benefit we gain from now needing to maintain two different
>> pieces of logic fulfilling the same purpose?
> 
> IMO, yes.  Besides getting rid of .fixup/unlikely, the code generation
> is better-enough to warrant it, including getting the common path
> correct (the referenced labels are all considered cold).
> 
> e.g. for this change, we go from:
> 
>     xor    %esi,%esi
>     rdmsr
>     test   %esi,%esi
>     jne    <init_amd+0x540>
>     and    $0xfffffffe,%edx
>     wrmsr
> 
> (note the forward branch) to simply:
> 
>     rdmsr
>     and    $0xfffffffe,%edx
>     wrmsr
> 
> because the exception table redirect is directly into init_amd.cold, and
> we don't have to hold `int err` in a register across the asm() block.
> 
> This is an intentionally simple example to get the infrastructure in,
> but vmread() will definitely benefit.
> 
>>
>>> Also, there's a different errata workaround we'll need if we want to use asm
>>> goto() with "+" constraints:
>>>
>>> config CC_HAS_ASM_GOTO_TIED_OUTPUT
>>> 	depends on CC_HAS_ASM_GOTO_OUTPUT
>>> 	# Detect buggy gcc and clang, fixed in gcc-11 clang-14.
>>> 	def_bool $(success,echo 'int foo(int *x) { asm goto (".long (%l[bar]) - .": "+m"(*x) ::: bar); return *x; bar: return 0; }' | $CC -x c - -c -o /dev/null)
>>>
>>> I'm tempted to put it in straight away, lest we forget about it.
>> Perhaps best if we really want to go this route. Yet then - why "TIED"? Isn't
>> "tied" the term they use when referring to an earlier operand by using a
>> digit (or the operand's name in square brackets)?
> 
> This is straight from Linux.  I've not looked at the issue in detail.

So what I see is that Sean in Linux commit 1aa0e8b144b6 uses this term also
in the description. I'm unconvinced it's correct, though. Gcc doc doesn't
call the "+" modifier anything special, and it calls the numeric constraints
(for which "+" can be a shorthand in certain cases) "matching constraint".

We can of course sort the naming in the eventual patch pulling in that
behavior, yet I'd like to suggest already now that we don't blindly follow
Linux'es naming (unless the choice can be backed by some doc reference).

>>> --- a/xen/Kconfig
>>> +++ b/xen/Kconfig
>>> @@ -41,6 +41,20 @@ config CC_SPLIT_SECTIONS
>>>  config CC_HAS_UBSAN
>>>  	def_bool $(cc-option,-fsanitize=undefined)
>>>  
>>> +# Fixed in GCC 14, 13.3, 12.4 and 11.5
>>> +# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113921
>>> +config GCC_ASM_GOTO_OUTPUT_BROKEN
>>> +	bool
>>> +	depends on CC_IS_GCC
>>> +	default y if GCC_VERSION < 110500
>>> +	default y if GCC_VERSION >= 120000 && GCC_VERSION < 120400
>>> +	default y if GCC_VERSION >= 130000 && GCC_VERSION < 130300
>> Unlike for pre-release versions (x.0.y) I view this as problematic. Distros
>> are likely to have backported the fix before the minor releases took place.
>> Or they may have backported without ever meaning to follow later minor
>> releases. We'd needlessly exclude them here. Imo ...
>>
>>> +config CC_HAS_ASM_GOTO_OUTPUT
>>> +	def_bool y
>>> +	depends on !GCC_ASM_GOTO_OUTPUT_BROKEN
>>> +	depends on $(success,echo 'int foo(int x) { asm goto ("": "=r"(x) ::: bar); return x; bar: return 0; }' | $(CC) -x c - -c -o /dev/null)
>> ... the only option is to actually probe for support as well as the (non-)
>> buggy-ness.
> 
> There is no sensible way to probe.  It compiles fine, but (AIUI) fails
> to spill registers correctly on some paths, which also makes it very
> sensitive to other optimisations.

Hmm, okay, Linux commit f2f6a8e88717 kind of suggests that there might have
been more issues in gcc. Really I can't help the impression that the issue
still wasn't fully understood, and hence may re-surface in another context.
In which case I guess I agree the above is the best we can do for the time
being, until we learn of further breakage:
Reviewed-by: Jan Beulich <jbeulich@suse.com>

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 22 09:09:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 09:09:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.962302.1353510 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u79dK-0001p7-L6; Tue, 22 Apr 2025 09:09:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 962302.1353510; Tue, 22 Apr 2025 09:09: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 1u79dK-0001p0-Ic; Tue, 22 Apr 2025 09:09:38 +0000
Received: by outflank-mailman (input) for mailman id 962302;
 Tue, 22 Apr 2025 09:09: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=eV03=XI=kernel.org=patchwork-bot+netdevbpf@srs-se1.protection.inumbo.net>)
 id 1u79dJ-0001ou-Q2
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 09:09:37 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 80833870-1f59-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 11:09:32 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 7DDB34A7BB;
 Tue, 22 Apr 2025 09:09:29 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id CAF17C4CEE9;
 Tue, 22 Apr 2025 09:09:30 +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
 7107A39D6546; Tue, 22 Apr 2025 09:10: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: 80833870-1f59-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1745312970;
	bh=vz2jGYSY9oKDBgzu86yZLAUblBgnnaoGNFo9xbS5InE=;
	h=Subject:From:Date:References:In-Reply-To:To:Cc:From;
	b=rnlwGH7276RFaEUFuhe+paW6L4DhAzLSYIxKPJAtPO7J6cB3riqGMer25WHWGqL4s
	 a7HL0WdzUr4RM9XZBE4cvS3uClE58mKzn8oRUCYKmdiEwAywN/GvrtZ+D0elGMp4l3
	 hy74hf0NexQ7ev6chMryY0TdNBu78Je2HpqL6dY6gzjKUBIum2Dl7eLICBbJZVBowD
	 DJN+m4hF5lz88/wiwPd9aYZCtUC0cMFZQWlDe9iWojr37qgI5yOALLAmLfsvfXuM08
	 CvqA929Le9muTGTK11sLg47snjAZe9Th1tXiu+KYGwaq2eXCGBu47vUooV/2FJ7oTf
	 yVm7MlTBsGqUw==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Subject: Re: [PATCH v2] xen-netfront: handle NULL returned by
 xdp_convert_buff_to_frame()
From: patchwork-bot+netdevbpf@kernel.org
Message-Id: 
 <174531300924.1477965.13156830298760999777.git-patchwork-notify@kernel.org>
Date: Tue, 22 Apr 2025 09:10:09 +0000
References: <20250417122118.1009824-1-sdl@nppct.ru>
In-Reply-To: <20250417122118.1009824-1-sdl@nppct.ru>
To: Alexey Nepomnyashih <sdl@nppct.ru>
Cc: jgross@suse.com, sstabellini@kernel.org, oleksandr_tyshchenko@epam.com,
 davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com,
 ast@kernel.org, daniel@iogearbox.net, hawk@kernel.org,
 john.fastabend@gmail.com, xen-devel@lists.xenproject.org,
 netdev@vger.kernel.org, linux-kernel@vger.kernel.org, bpf@vger.kernel.org,
 lvc-project@linuxtesting.org, stable@vger.kernel.org

Hello:

This patch was applied to netdev/net.git (main)
by Jakub Kicinski <kuba@kernel.org>:

On Thu, 17 Apr 2025 12:21:17 +0000 you wrote:
> The function xdp_convert_buff_to_frame() may return NULL if it fails
> to correctly convert the XDP buffer into an XDP frame due to memory
> constraints, internal errors, or invalid data. Failing to check for NULL
> may lead to a NULL pointer dereference if the result is used later in
> processing, potentially causing crashes, data corruption, or undefined
> behavior.
> 
> [...]

Here is the summary with links:
  - [v2] xen-netfront: handle NULL returned by xdp_convert_buff_to_frame()
    https://git.kernel.org/netdev/net/c/cc3628dcd851

You are awesome, thank you!
-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html




From xen-devel-bounces@lists.xenproject.org Tue Apr 22 09:13:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 09:13:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.962315.1353521 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u79h1-0003z6-4Q; Tue, 22 Apr 2025 09:13:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 962315.1353521; Tue, 22 Apr 2025 09: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 1u79h1-0003yz-1A; Tue, 22 Apr 2025 09:13:27 +0000
Received: by outflank-mailman (input) for mailman id 962315;
 Tue, 22 Apr 2025 09: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=Qhpm=XI=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u79gz-0003yt-RA
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 09:13:25 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0a7bad9b-1f5a-11f0-9eb0-5ba50f476ded;
 Tue, 22 Apr 2025 11:13:24 +0200 (CEST)
Received: from [192.168.7.202] ([71.202.166.45]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53M9Clo71988629
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NO);
 Tue, 22 Apr 2025 02:12:47 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0a7bad9b-1f5a-11f0-9eb0-5ba50f476ded
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53M9Clo71988629
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745313171;
	bh=5MyMi1dWDpqM4+680ZRWUMemTrM7gOfrACTzG+hcvhU=;
	h=Date:Subject:To:Cc:References:From:In-Reply-To:From;
	b=ZPeuqs2QxCZr+2CQbzBLOCpW3Aawds6/1cwg0KOGkN4s7Xzb3PZq6E2KiAUhdSklS
	 6bmAZ9hG+CfiogKMARVhoVzL3oriBG5dyHPHGBto0/mSKUTbfZ4aFLYUysVlh6JFC/
	 ZfI2lvkhOZHiUCZh+IkdkYywF31eKyF7de+lHzDs4b9fjhHs57HIRf++LaLMNtLPKY
	 QczCdjB0+4sEGoXJlmUjHhZjwRqeUafNM/3rfcGnb2CJu8EO98o0Ia9j/fEpQcfhQG
	 lCV0OoOhQjfirIbZQCPq86OrgvY0dVY0/wQxoL36KQ5giQ3vDEnESbBhySaQesbEM7
	 0Bz5uP6uYbAzw==
Message-ID: <a482b4df-f662-4d5d-8100-ade07afcdc24@zytor.com>
Date: Tue, 22 Apr 2025 02:12:46 -0700
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH v2 06/34] x86/msr: Use the alternatives mechanism to
 read PMC
To: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>,
        linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
        linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
        netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        acme@kernel.org, andrew.cooper3@citrix.com, peterz@infradead.org,
        namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com
References: <20250422082216.1954310-1-xin@zytor.com>
 <20250422082216.1954310-7-xin@zytor.com>
 <fbb509e8-0bd6-480f-be32-fd0895255a21@suse.com>
Content-Language: en-US
From: Xin Li <xin@zytor.com>
Autocrypt: addr=xin@zytor.com; keydata=
 xsDNBGUPz1cBDACS/9yOJGojBFPxFt0OfTWuMl0uSgpwk37uRrFPTTLw4BaxhlFL0bjs6q+0
 2OfG34R+a0ZCuj5c9vggUMoOLdDyA7yPVAJU0OX6lqpg6z/kyQg3t4jvajG6aCgwSDx5Kzg5
 Rj3AXl8k2wb0jdqRB4RvaOPFiHNGgXCs5Pkux/qr0laeFIpzMKMootGa4kfURgPhRzUaM1vy
 bsMsL8vpJtGUmitrSqe5dVNBH00whLtPFM7IbzKURPUOkRRiusFAsw0a1ztCgoFczq6VfAVu
 raTye0L/VXwZd+aGi401V2tLsAHxxckRi9p3mc0jExPc60joK+aZPy6amwSCy5kAJ/AboYtY
 VmKIGKx1yx8POy6m+1lZ8C0q9b8eJ8kWPAR78PgT37FQWKYS1uAroG2wLdK7FiIEpPhCD+zH
 wlslo2ETbdKjrLIPNehQCOWrT32k8vFNEMLP5G/mmjfNj5sEf3IOKgMTMVl9AFjsINLHcxEQ
 6T8nGbX/n3msP6A36FDfdSEAEQEAAc0WWGluIExpIDx4aW5Aenl0b3IuY29tPsLBDQQTAQgA
 NxYhBIUq/WFSDTiOvUIqv2u9DlcdrjdRBQJlD89XBQkFo5qAAhsDBAsJCAcFFQgJCgsFFgID
 AQAACgkQa70OVx2uN1HUpgv/cM2fsFCQodLArMTX5nt9yqAWgA5t1srri6EgS8W3F+3Kitge
 tYTBKu6j5BXuXaX3vyfCm+zajDJN77JHuYnpcKKr13VcZi1Swv6Jx1u0II8DOmoDYLb1Q2ZW
 v83W55fOWJ2g72x/UjVJBQ0sVjAngazU3ckc0TeNQlkcpSVGa/qBIHLfZraWtdrNAQT4A1fa
 sWGuJrChBFhtKbYXbUCu9AoYmmbQnsx2EWoJy3h7OjtfFapJbPZql+no5AJ3Mk9eE5oWyLH+
 QWqtOeJM7kKvn/dBudokFSNhDUw06e7EoVPSJyUIMbYtUO7g2+Atu44G/EPP0yV0J4lRO6EA
 wYRXff7+I1jIWEHpj5EFVYO6SmBg7zF2illHEW31JAPtdDLDHYcZDfS41caEKOQIPsdzQkaQ
 oW2hchcjcMPAfyhhRzUpVHLPxLCetP8vrVhTvnaZUo0xaVYb3+wjP+D5j/3+hwblu2agPsaE
 vgVbZ8Fx3TUxUPCAdr/p73DGg57oHjgezsDNBGUPz1gBDAD4Mg7hMFRQqlzotcNSxatlAQNL
 MadLfUTFz8wUUa21LPLrHBkUwm8RujehJrzcVbPYwPXIO0uyL/F///CogMNx7Iwo6by43KOy
 g89wVFhyy237EY76j1lVfLzcMYmjBoTH95fJC/lVb5Whxil6KjSN/R/y3jfG1dPXfwAuZ/4N
 cMoOslWkfZKJeEut5aZTRepKKF54T5r49H9F7OFLyxrC/uI9UDttWqMxcWyCkHh0v1Di8176
 jjYRNTrGEfYfGxSp+3jYL3PoNceIMkqM9haXjjGl0W1B4BidK1LVYBNov0rTEzyr0a1riUrp
 Qk+6z/LHxCM9lFFXnqH7KWeToTOPQebD2B/Ah5CZlft41i8L6LOF/LCuDBuYlu/fI2nuCc8d
 m4wwtkou1Y/kIwbEsE/6RQwRXUZhzO6llfoN96Fczr/RwvPIK5SVMixqWq4QGFAyK0m/1ap4
 bhIRrdCLVQcgU4glo17vqfEaRcTW5SgX+pGs4KIPPBE5J/ABD6pBnUUAEQEAAcLA/AQYAQgA
 JhYhBIUq/WFSDTiOvUIqv2u9DlcdrjdRBQJlD89ZBQkFo5qAAhsMAAoJEGu9DlcdrjdR4C0L
 /RcjolEjoZW8VsyxWtXazQPnaRvzZ4vhmGOsCPr2BPtMlSwDzTlri8BBG1/3t/DNK4JLuwEj
 OAIE3fkkm+UG4Kjud6aNeraDI52DRVCSx6xff3bjmJsJJMb12mWglN6LjdF6K+PE+OTJUh2F
 dOhslN5C2kgl0dvUuevwMgQF3IljLmi/6APKYJHjkJpu1E6luZec/lRbetHuNFtbh3xgFIJx
 2RpgVDP4xB3f8r0I+y6ua+p7fgOjDLyoFjubRGed0Be45JJQEn7A3CSb6Xu7NYobnxfkwAGZ
 Q81a2XtvNS7Aj6NWVoOQB5KbM4yosO5+Me1V1SkX2jlnn26JPEvbV3KRFcwV5RnDxm4OQTSk
 PYbAkjBbm+tuJ/Sm+5Yp5T/BnKz21FoCS8uvTiziHj2H7Cuekn6F8EYhegONm+RVg3vikOpn
 gao85i4HwQTK9/D1wgJIQkdwWXVMZ6q/OALaBp82vQ2U9sjTyFXgDjglgh00VRAHP7u1Rcu4
 l75w1xInsg==
In-Reply-To: <fbb509e8-0bd6-480f-be32-fd0895255a21@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 4/22/2025 1:38 AM, Jürgen Groß wrote:
> On 22.04.25 10:21, Xin Li (Intel) wrote:
>> To eliminate the indirect call overhead introduced by the pv_ops API,
>> use the alternatives mechanism to read PMC:
> 
> Which indirect call overhead? The indirect call is patched via the
> alternative mechanism to a direct one.
> 

See below.


>>
>>      1) When built with !CONFIG_XEN_PV, X86_FEATURE_XENPV becomes a
>>         disabled feature, preventing the Xen PMC read code from being
>>         built and ensuring the native code is executed unconditionally.
> 
> Without CONFIG_XEN_PV CONFIG_PARAVIRT_XXL is not selected, resulting in
> native code anyway.

Yes, this is kept in this patch, but in a little different way.

> 
>>
>>      2) When built with CONFIG_XEN_PV:
>>
>>         2.1) If not running on the Xen hypervisor (!X86_FEATURE_XENPV),
>>              the kernel runtime binary is patched to unconditionally
>>              jump to the native PMC read code.
>>
>>         2.2) If running on the Xen hypervisor (X86_FEATURE_XENPV), the
>>              kernel runtime binary is patched to unconditionally jump
>>              to the Xen PMC read code.
>>
>> Consequently, remove the pv_ops PMC read API.
> 
> I don't see the value of this patch.
> 
> It adds more #ifdef and code lines without any real gain.
> 
> In case the x86 maintainers think it is still worth it, I won't object.

I think we want to totally bypass pv_ops in the case 2.1).

Do you mean the indirect call is patched to call native code *directly*
for 2.1?  I don't know it, can you please elaborate?

AFAIK, Xen PV has been the sole user of pv_ops for nearly 20 years. This
raises significant doubts about whether pv_ops provides Linux with the
value of being a well-abstracted "CPU" or "Platform".  And the x86
maintainers have said that it's a maintenance nightmare.

Thanks!
     Xin


From xen-devel-bounces@lists.xenproject.org Tue Apr 22 09:14:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 09:14:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.962329.1353531 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u79iR-00056R-H8; Tue, 22 Apr 2025 09:14:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 962329.1353531; Tue, 22 Apr 2025 09:14: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 1u79iR-00056K-EL; Tue, 22 Apr 2025 09:14:55 +0000
Received: by outflank-mailman (input) for mailman id 962329;
 Tue, 22 Apr 2025 09:14: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=f4Vg=XI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u79iQ-00056E-Et
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 09:14:54 +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 401ebf99-1f5a-11f0-9eb0-5ba50f476ded;
 Tue, 22 Apr 2025 11:14:53 +0200 (CEST)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-43cfe574976so35293755e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 02:14:53 -0700 (PDT)
Received: from [10.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-4406d6db173sm163519635e9.32.2025.04.22.02.14.51
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 22 Apr 2025 02:14:52 -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: 401ebf99-1f5a-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745313293; x=1745918093; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=iT5sY5OL5ZIc0o2BGYHqECERloywEviExkO+9RPjjz8=;
        b=NmkEPhhrGxZksA3OiWFYncJWFmDNkj2M1RzbCXpXoTBgpAeHwfPHX5AWoUgHSRNkmY
         35ch938tQYMBh92M7AdrTQS7tjExjh/uEGvhtUb9G1I/fD0PjPOxb+wjhGiG+NyjbKUo
         X27DYLbitnmcG5PQGvECgCDZVxRMRddgkqAwuQuSKdowtoqi8gqc2XG3E3aBzvT9EUYb
         mw9HLQ3q8gs0BwAyLQBApO11fQXT/b8EFIVWgEvEoJlivEvcHeUDE9XDhrt2uF6mKT3o
         2ixHdV0LhDITeUUE0hqi74ZQW9k1UTzwUTLh/J8qsfLWXrOzGDc5liCnjd0L23Y005tt
         AGdg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745313293; x=1745918093;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=iT5sY5OL5ZIc0o2BGYHqECERloywEviExkO+9RPjjz8=;
        b=lMFjDkbHVRj3fLrj6UpcDW2jw903tXK12JdkK/1UZiCID7m0ggNjItgXuetSo6TNnJ
         ey+WMoDWI4mgGokpwKHdCFCX+VtB38rvlqsFVR6Y2csGrtNOrWecy52DDjXobK09U187
         jMXc2Xsp5rmGnetbdwh4GRndQH09HH1wB8pOUCfJpY+qKBLqjVdKG+Exc0TGYf2EJ1J/
         pvpkel4r/v6PgoROI2GVxcyBqDaZ5mwkG24jogpDqyzsAjuMeGPwLV/yD2P5PvSI7luL
         Kt6KGttOcClM93VYtNrwO42NHzpStOlXFOwyeSzYDhKjRK35kRAE/o2y8FF+sWk/81zU
         6F4g==
X-Forwarded-Encrypted: i=1; AJvYcCWKuAQkDsb+/mjzNyRbCZb+HbaX1nxhfEWTjB6VxQzpHow5DYlmBdJbIGqhQ3UharzGUJTWIyyLFdI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YypOFtwbbIg3znP4Mf4TfHXabanO4Px9MrXiomqO8GO1QUaU63B
	mRW866mx1jbiw+2tZR88z0kOzm5Ei4l+6FQ0ppUjrm1uYqNjy7hrt2Zxzvn6dA==
X-Gm-Gg: ASbGnctwrtexapRtMV/aaPNdYdIaEMBLo90PXKqWLu7QkvEcojRjj29kAHOHoAdLg9t
	Ymgoy7O/auegDDkNSjGXXV7IGDW/2LpzT+r8SF7oXg2OWvr2HqpkHKgmU43t2w3TohlNoNUm55f
	rgPCn9/0h+VIGZHDIvY3xSe6UGDoEnWDCgJ4EnfqO6hF3l6d2S0BQS4grQINZbSX+YmYP+F4Vys
	4KNRqhSOt7SPasz2E6mVGJ544WGQznfw5R+kwnlun8ys71oRuud1ah//G4/BNv+CSARn6meZPwb
	7n7naCi6lXW3C9Rtbq7GFNvpQtUBhDO2QgkrAFGyNpLERQ9s/Mt2wr3r5Mr/P5rj9KO//Clxa/D
	uj7cxXnQPvtMN6iASH6vQ10bCByzXD2jSPqXr
X-Google-Smtp-Source: AGHT+IEERSk8hvlO1qBLtn+eU+VX2W3/VH8SpH4dENG594AiEfD8Vt3s6+r851wJereRqkWCnJS5Cw==
X-Received: by 2002:a05:600c:1e18:b0:43b:cb12:ba6d with SMTP id 5b1f17b1804b1-4406ab7ab1emr143363155e9.3.1745313292580;
        Tue, 22 Apr 2025 02:14:52 -0700 (PDT)
Message-ID: <28142d86-0845-4bb3-a0bb-e4903f898abf@suse.com>
Date: Tue, 22 Apr 2025 11:14:54 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 03/14] xen/riscv: introduce ioremap()
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1744126720.git.oleksii.kurochko@gmail.com>
 <6d91eeabe2735de93bfcf2a2420e2059a8f35e52.1744126720.git.oleksii.kurochko@gmail.com>
 <84089b6d-efeb-4613-85b9-eb10d11d7338@suse.com>
 <f315bc11-c537-4dca-9e62-a6d3f02733e4@gmail.com>
 <6b226b72-11a4-4004-b42d-0e280de83539@suse.com>
 <bbfdc4a0-54f0-4a9d-aa6d-2cf85ec03411@gmail.com>
 <a71db245-5b0b-435e-8e58-cb43c5162862@suse.com>
 <7d5356a5-53b7-4d1b-82ff-bc6f81a2f445@gmail.com>
 <6f50dea4-60e6-46b0-9363-d943ba553334@suse.com>
 <676c1627-95a0-46a0-b132-3f3ac2fdda01@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: <676c1627-95a0-46a0-b132-3f3ac2fdda01@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 22.04.2025 10:40, Oleksii Kurochko wrote:
> 
> On 4/17/25 4:49 PM, Jan Beulich wrote:
>> On 17.04.2025 16:37, Oleksii Kurochko wrote:
>>> On 4/17/25 4:24 PM, Jan Beulich wrote:
>>>> On 17.04.2025 16:20, Oleksii Kurochko wrote:
>>>>> On 4/15/25 1:02 PM, Jan Beulich wrote:
>>>>>> On 15.04.2025 12:29, Oleksii Kurochko wrote:
>>>>>>> On 4/10/25 5:13 PM, Jan Beulich wrote:
>>>>>>>> On 08.04.2025 17:57, Oleksii Kurochko wrote:
>>>>>>>>> Based on RISC-V unpriviliged spec ( Version 20240411 ):
>>>>>>>>> ```
>>>>>>>>> For implementations that conform to the RISC-V Unix Platform Specification,
>>>>>>>>> I/O devices and DMA operations are required to access memory coherently and
>>>>>>>>> via strongly ordered I/O channels. Therefore, accesses to regular main memory
>>>>>>>>> regions that are concurrently accessed by external devices can also use the
>>>>>>>>> standard synchronization mechanisms. Implementations that do not conform
>>>>>>>>> to the Unix Platform Specification and/or in which devices do not access
>>>>>>>>> memory coherently will need to use mechanisms
>>>>>>>>> (which are currently platform-specific or device-specific) to enforce
>>>>>>>>> coherency.
>>>>>>>>>
>>>>>>>>> I/O regions in the address space should be considered non-cacheable
>>>>>>>>> regions in the PMAs for those regions. Such regions can be considered coherent
>>>>>>>>> by the PMA if they are not cached by any agent.
>>>>>>>>> ```
>>>>>>>>> and [1]:
>>>>>>>>> ```
>>>>>>>>> The current riscv linux implementation requires SOC system to support
>>>>>>>>> memory coherence between all I/O devices and CPUs. But some SOC systems
>>>>>>>>> cannot maintain the coherence and they need support cache clean/invalid
>>>>>>>>> operations to synchronize data.
>>>>>>>>>
>>>>>>>>> Current implementation is no problem with SiFive FU540, because FU540
>>>>>>>>> keeps all IO devices and DMA master devices coherence with CPU. But to a
>>>>>>>>> traditional SOC vendor, it may already have a stable non-coherency SOC
>>>>>>>>> system, the need is simply to replace the CPU with RV CPU and rebuild
>>>>>>>>> the whole system with IO-coherency is very expensive.
>>>>>>>>> ```
>>>>>>>>>
>>>>>>>>> and the fact that all known ( to me ) CPUs that support the H-extension
>>>>>>>>> and that ones is going to be supported by Xen have memory coherency
>>>>>>>>> between all I/O devices and CPUs, so it is currently safe to use the
>>>>>>>>> PAGE_HYPERVISOR attribute.
>>>>>>>>> However, in cases where a platform does not support memory coherency, it
>>>>>>>>> should support CMO extensions and Svpbmt. In this scenario, updates to
>>>>>>>>> ioremap will be necessary.
>>>>>>>>> For now, a compilation error will be generated to ensure that the need to
>>>>>>>>> update ioremap() is not overlooked.
>>>>>>>>>
>>>>>>>>> [1]https://patchwork.kernel.org/project/linux-riscv/patch/1555947870-23014-1-git-send-email-guoren@kernel.org/
>>>>>>>> But MMIO access correctness isn't just a matter of coherency. There may not
>>>>>>>> be any caching involved in most cases, or else you may observe significantly
>>>>>>>> delayed or even dropped (folded with later ones) writes, and reads may be
>>>>>>>> serviced from the cache instead of going to actual MMIO. Therefore ...
>>>>>>>>
>>>>>>>>> --- a/xen/arch/riscv/Kconfig
>>>>>>>>> +++ b/xen/arch/riscv/Kconfig
>>>>>>>>> @@ -15,6 +15,18 @@ config ARCH_DEFCONFIG
>>>>>>>>>      	string
>>>>>>>>>      	default "arch/riscv/configs/tiny64_defconfig"
>>>>>>>>>      
>>>>>>>>> +config HAS_SVPBMT
>>>>>>>>> +	bool
>>>>>>>>> +	help
>>>>>>>>> +	  This config enables usage of Svpbmt ISA-extension ( Supervisor-mode:
>>>>>>>>> +	  page-based memory types).
>>>>>>>>> +
>>>>>>>>> +	  The memory type for a page contains a combination of attributes
>>>>>>>>> +	  that indicate the cacheability, idempotency, and ordering
>>>>>>>>> +	  properties for access to that page.
>>>>>>>>> +
>>>>>>>>> +	  The Svpbmt extension is only available on 64-bit cpus.
>>>>>>>> ... I kind of expect this extension (or anything else that there might be) will need
>>>>>>>> making use of.
>>>>>>> In cases where the Svpbmt extension isn't available, PMA (Physical Memory Attributes)
>>>>>>> is used to control which memory regions are cacheable, non-cacheable, readable, writable,
>>>>>>> etc. PMA is configured in M-mode by the firmware (e.g., OpenSBI), as is done in Andes
>>>>>>> cores, or it can be fixed at design time, as in SiFive cores.
>>>>>> How would things work if there was a need to map a RAM page uncacheable (via
>>>>>> ioremap() or otherwise)?
>>>>> My understanding is that Svpbmt is only needed when someone wants to change the memory
>>>>> attribute of a page set by PMA.
>>>>>
>>>>> The question is if non-cacheable RAM page is really needed if we have a coherency?
>>>> Aiui coherency here is among CPUs.
>>> ```
>>> For implementations that conform to the RISC-V Unix Platform Specification,
>>> I/O devices and DMA operations are required to access memory coherently and
>>> via strongly ordered I/O channels. Therefore, accesses to regular main memory
>>> regions that are concurrently accessed by external devices can also use the
>>> standard synchronization mechanisms. Implementations that do not conform
>>> to the Unix Platform Specification and/or in which devices do not access
>>> memory coherently will need to use mechanisms
>>> (which are currently platform-specific or device-specific) to enforce
>>> coherency.
>>> ```
>>> Based on this from the spec, coherency here is not only among CPUs.
>>>
>>>
>>>> Properties of devices in the system are
>>>> largely unknown?
>>> Yes, but still not sure what kind of property requires ioremap() which won't work
>>> without Svpmbt. Could you please tell me an example?
>> Well, above you said they all need to access memory coherently. That's the
>> "property" I was referring to.
> 
> Do you mean that device could have a property which tell that it would like to have non-cachable
> region used for that? I haven't seen such property in device tree files.
> 
> Do we have in Xen cases when Xen wants to have map part of RAM as non-cachebale and it is only the
> one option?

On x86 we have the case that IOMMUs may access memory non-coherently. This is
particular means that IOMMU page table updates (which necessarily live in RAM)
need to be done quite carefully. As it's all our code, we deal with the
situation by issuing cache flushes, avoiding the need for UC mappings.

Graphics engines may have similar constraints, aiui. With the driver code not
being part of Xen, we wouldn't be able to use a similar "simplification" there.
UC mappings would be pretty much unavoidable.

> I am also thinking why it can't be used cachable region + barrier (if we don't have memory coherency
> for everything).

Not sure what exactly you're asking here (if anything). An answer would very
likely depend on the specific kind of barrier you're thinking about. The
question would be what, if any, effect a barrier would have on the cache(s).

> Anyway, if it isn't an option to have mapped cacheble region + barrier then there is no any choice
> and the support of Svpmbt is required.

Quite possible.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 22 09:21:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 09:21:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.962342.1353540 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u79oY-0007va-3K; Tue, 22 Apr 2025 09:21:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 962342.1353540; Tue, 22 Apr 2025 09:21: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 1u79oY-0007vT-0q; Tue, 22 Apr 2025 09:21:14 +0000
Received: by outflank-mailman (input) for mailman id 962342;
 Tue, 22 Apr 2025 09:21: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=Qhpm=XI=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u79oW-0007u5-C9
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 09:21:12 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1f98da93-1f5b-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 11:21:09 +0200 (CEST)
Received: from [192.168.7.202] ([71.202.166.45]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53M9KXTP1995439
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NO);
 Tue, 22 Apr 2025 02:20:33 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1f98da93-1f5b-11f0-9ffb-bf95429c2676
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53M9KXTP1995439
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745313638;
	bh=cLR0wjbhwRTduGhrcmgQgQdpIXcDkWnqVuLKh1m13oQ=;
	h=Date:Subject:To:Cc:References:From:In-Reply-To:From;
	b=aTCKescadr0sHc1OBNab3mt0WNOdORNOUu7rpBETQ6vGwSMvW5FXLhE2vfj1fe1w6
	 kxqgtHLh80BykH4vNphE7UVD2umMuSaHZ0X7BB8pQmc61E8lzA//9+HuTE4ROZLaHQ
	 dQx1WOTNwbk243SjOLe1tpFcPH9y12xx7ogDIZhREF4ji6RETc9TF7kIMeKjF5mIsX
	 eMDXrP0TRl7JUiIRx2OTEz9i2vbZmrKeMtWUxjkY/XflI7iXlGFVwA24g71d0hbH9Y
	 ZcmCp02WLH6iMipEkRPpY3a67hmjRhqj5K+CZV5FH7x7JFpmsNnSuIPtKmy58Xt4bk
	 MKbcDfnoCUCnA==
Message-ID: <7fea6158-9b7d-4bfb-b709-729266803c32@zytor.com>
Date: Tue, 22 Apr 2025 02:20:32 -0700
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH v2 22/34] x86/msr: Utilize the alternatives mechanism
 to read MSR
To: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>,
        linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
        linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
        netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        acme@kernel.org, andrew.cooper3@citrix.com, peterz@infradead.org,
        namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com
References: <20250422082216.1954310-1-xin@zytor.com>
 <20250422082216.1954310-23-xin@zytor.com>
 <91f9217a-cc2d-4a6e-bada-290312f73d82@suse.com>
Content-Language: en-US
From: Xin Li <xin@zytor.com>
Autocrypt: addr=xin@zytor.com; keydata=
 xsDNBGUPz1cBDACS/9yOJGojBFPxFt0OfTWuMl0uSgpwk37uRrFPTTLw4BaxhlFL0bjs6q+0
 2OfG34R+a0ZCuj5c9vggUMoOLdDyA7yPVAJU0OX6lqpg6z/kyQg3t4jvajG6aCgwSDx5Kzg5
 Rj3AXl8k2wb0jdqRB4RvaOPFiHNGgXCs5Pkux/qr0laeFIpzMKMootGa4kfURgPhRzUaM1vy
 bsMsL8vpJtGUmitrSqe5dVNBH00whLtPFM7IbzKURPUOkRRiusFAsw0a1ztCgoFczq6VfAVu
 raTye0L/VXwZd+aGi401V2tLsAHxxckRi9p3mc0jExPc60joK+aZPy6amwSCy5kAJ/AboYtY
 VmKIGKx1yx8POy6m+1lZ8C0q9b8eJ8kWPAR78PgT37FQWKYS1uAroG2wLdK7FiIEpPhCD+zH
 wlslo2ETbdKjrLIPNehQCOWrT32k8vFNEMLP5G/mmjfNj5sEf3IOKgMTMVl9AFjsINLHcxEQ
 6T8nGbX/n3msP6A36FDfdSEAEQEAAc0WWGluIExpIDx4aW5Aenl0b3IuY29tPsLBDQQTAQgA
 NxYhBIUq/WFSDTiOvUIqv2u9DlcdrjdRBQJlD89XBQkFo5qAAhsDBAsJCAcFFQgJCgsFFgID
 AQAACgkQa70OVx2uN1HUpgv/cM2fsFCQodLArMTX5nt9yqAWgA5t1srri6EgS8W3F+3Kitge
 tYTBKu6j5BXuXaX3vyfCm+zajDJN77JHuYnpcKKr13VcZi1Swv6Jx1u0II8DOmoDYLb1Q2ZW
 v83W55fOWJ2g72x/UjVJBQ0sVjAngazU3ckc0TeNQlkcpSVGa/qBIHLfZraWtdrNAQT4A1fa
 sWGuJrChBFhtKbYXbUCu9AoYmmbQnsx2EWoJy3h7OjtfFapJbPZql+no5AJ3Mk9eE5oWyLH+
 QWqtOeJM7kKvn/dBudokFSNhDUw06e7EoVPSJyUIMbYtUO7g2+Atu44G/EPP0yV0J4lRO6EA
 wYRXff7+I1jIWEHpj5EFVYO6SmBg7zF2illHEW31JAPtdDLDHYcZDfS41caEKOQIPsdzQkaQ
 oW2hchcjcMPAfyhhRzUpVHLPxLCetP8vrVhTvnaZUo0xaVYb3+wjP+D5j/3+hwblu2agPsaE
 vgVbZ8Fx3TUxUPCAdr/p73DGg57oHjgezsDNBGUPz1gBDAD4Mg7hMFRQqlzotcNSxatlAQNL
 MadLfUTFz8wUUa21LPLrHBkUwm8RujehJrzcVbPYwPXIO0uyL/F///CogMNx7Iwo6by43KOy
 g89wVFhyy237EY76j1lVfLzcMYmjBoTH95fJC/lVb5Whxil6KjSN/R/y3jfG1dPXfwAuZ/4N
 cMoOslWkfZKJeEut5aZTRepKKF54T5r49H9F7OFLyxrC/uI9UDttWqMxcWyCkHh0v1Di8176
 jjYRNTrGEfYfGxSp+3jYL3PoNceIMkqM9haXjjGl0W1B4BidK1LVYBNov0rTEzyr0a1riUrp
 Qk+6z/LHxCM9lFFXnqH7KWeToTOPQebD2B/Ah5CZlft41i8L6LOF/LCuDBuYlu/fI2nuCc8d
 m4wwtkou1Y/kIwbEsE/6RQwRXUZhzO6llfoN96Fczr/RwvPIK5SVMixqWq4QGFAyK0m/1ap4
 bhIRrdCLVQcgU4glo17vqfEaRcTW5SgX+pGs4KIPPBE5J/ABD6pBnUUAEQEAAcLA/AQYAQgA
 JhYhBIUq/WFSDTiOvUIqv2u9DlcdrjdRBQJlD89ZBQkFo5qAAhsMAAoJEGu9DlcdrjdR4C0L
 /RcjolEjoZW8VsyxWtXazQPnaRvzZ4vhmGOsCPr2BPtMlSwDzTlri8BBG1/3t/DNK4JLuwEj
 OAIE3fkkm+UG4Kjud6aNeraDI52DRVCSx6xff3bjmJsJJMb12mWglN6LjdF6K+PE+OTJUh2F
 dOhslN5C2kgl0dvUuevwMgQF3IljLmi/6APKYJHjkJpu1E6luZec/lRbetHuNFtbh3xgFIJx
 2RpgVDP4xB3f8r0I+y6ua+p7fgOjDLyoFjubRGed0Be45JJQEn7A3CSb6Xu7NYobnxfkwAGZ
 Q81a2XtvNS7Aj6NWVoOQB5KbM4yosO5+Me1V1SkX2jlnn26JPEvbV3KRFcwV5RnDxm4OQTSk
 PYbAkjBbm+tuJ/Sm+5Yp5T/BnKz21FoCS8uvTiziHj2H7Cuekn6F8EYhegONm+RVg3vikOpn
 gao85i4HwQTK9/D1wgJIQkdwWXVMZ6q/OALaBp82vQ2U9sjTyFXgDjglgh00VRAHP7u1Rcu4
 l75w1xInsg==
In-Reply-To: <91f9217a-cc2d-4a6e-bada-290312f73d82@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 4/22/2025 1:59 AM, Jürgen Groß wrote:
> On 22.04.25 10:22, Xin Li (Intel) wrote:
>> To eliminate the indirect call overhead introduced by the pv_ops API,
>> utilize the alternatives mechanism to read MSR:
>>
>>      1) When built with !CONFIG_XEN_PV, X86_FEATURE_XENPV becomes a
>>         disabled feature, preventing the Xen code from being built
>>         and ensuring the native code is executed unconditionally.
>>
>>      2) When built with CONFIG_XEN_PV:
>>
>>         2.1) If not running on the Xen hypervisor (!X86_FEATURE_XENPV),
>>              the kernel runtime binary is patched to unconditionally
>>              jump to the native MSR read code.
>>
>>         2.2) If running on the Xen hypervisor (X86_FEATURE_XENPV), the
>>              kernel runtime binary is patched to unconditionally jump
>>              to the Xen MSR read code.
>>
>> The alternatives mechanism is also used to choose the new immediate
>> form MSR read instruction when it's available.
>>
>> Consequently, remove the pv_ops MSR read APIs and the Xen callbacks.
> 
> Same as the comment to patch 5: there is no indirect call overhead after
> the system has come up.
> 

Please check https://lore.kernel.org/lkml/87y1h81ht4.ffs@tglx/.

And it's was also mentioned in the previous patch:

https://lore.kernel.org/lkml/20250422082216.1954310-22-xin@zytor.com/

Please let me know what I have missed.

Thanks!
     Xin




From xen-devel-bounces@lists.xenproject.org Tue Apr 22 09:28:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 09:28:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.962354.1353551 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u79vN-0004WD-Oh; Tue, 22 Apr 2025 09:28:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 962354.1353551; Tue, 22 Apr 2025 09: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 1u79vN-0004W6-Ll; Tue, 22 Apr 2025 09:28:17 +0000
Received: by outflank-mailman (input) for mailman id 962354;
 Tue, 22 Apr 2025 09: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=mE8E=XI=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1u79vM-0004Vr-4t
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 09:28:16 +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 1dbfc10a-1f5c-11f0-9eb0-5ba50f476ded;
 Tue, 22 Apr 2025 11:28:14 +0200 (CEST)
Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org
 [IPv6:2a07:de40:b281:104:10:150:64:97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out1.suse.de (Postfix) with ESMTPS id 18940211CA;
 Tue, 22 Apr 2025 09:28:13 +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 B4C20139D5;
 Tue, 22 Apr 2025 09:28:11 +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 mOqAKithB2hIYwAAD6G6ig
 (envelope-from <jgross@suse.com>); Tue, 22 Apr 2025 09:28: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: 1dbfc10a-1f5c-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1745314093; 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=Isqzsei5TyXRZ7Kh444KzkiTKqyDoqePoeCewqGXj1c=;
	b=WJO0WAx6oCF3ikUvqpE4aCyYMLdmUQGcz2z4dJKnd9XzpuTcugFdktpSDAkX9XAgwweCu2
	Uz4plux39lNKV1A6iGt+Rjw4539GkLf1LJ2wDjvMINRyE67AEDK9IAEhWyUWlP3zxkw9Va
	z2oIqPwTDf76wchMhgotmuTVBPWyaNs=
Authentication-Results: smtp-out1.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=WJO0WAx6
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1745314093; 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=Isqzsei5TyXRZ7Kh444KzkiTKqyDoqePoeCewqGXj1c=;
	b=WJO0WAx6oCF3ikUvqpE4aCyYMLdmUQGcz2z4dJKnd9XzpuTcugFdktpSDAkX9XAgwweCu2
	Uz4plux39lNKV1A6iGt+Rjw4539GkLf1LJ2wDjvMINRyE67AEDK9IAEhWyUWlP3zxkw9Va
	z2oIqPwTDf76wchMhgotmuTVBPWyaNs=
Message-ID: <bfeba521-0a49-42d0-bf83-15d031dfc6da@suse.com>
Date: Tue, 22 Apr 2025 11:28:10 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH v2 06/34] x86/msr: Use the alternatives mechanism to
 read PMC
To: Xin Li <xin@zytor.com>, linux-kernel@vger.kernel.org,
 kvm@vger.kernel.org, linux-perf-users@vger.kernel.org,
 linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
 linux-pm@vger.kernel.org, linux-edac@vger.kernel.org,
 xen-devel@lists.xenproject.org, linux-acpi@vger.kernel.org,
 linux-hwmon@vger.kernel.org, netdev@vger.kernel.org,
 platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
 dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com, acme@kernel.org,
 andrew.cooper3@citrix.com, peterz@infradead.org, namhyung@kernel.org,
 mark.rutland@arm.com, alexander.shishkin@linux.intel.com, jolsa@kernel.org,
 irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
 wei.liu@kernel.org, ajay.kaher@broadcom.com,
 bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
 pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
 luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
 haiyangz@microsoft.com, decui@microsoft.com
References: <20250422082216.1954310-1-xin@zytor.com>
 <20250422082216.1954310-7-xin@zytor.com>
 <fbb509e8-0bd6-480f-be32-fd0895255a21@suse.com>
 <a482b4df-f662-4d5d-8100-ade07afcdc24@zytor.com>
Content-Language: en-US
From: Juergen Gross <jgross@suse.com>
Autocrypt: addr=jgross@suse.com; keydata=
 xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOB
 ycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJve
 dYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJ
 NwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvx
 XP3FAp2pkW0xqG7/377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEB
 AAHNH0p1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT7CwHkEEwECACMFAlOMcK8CGwMH
 CwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRCw3p3WKL8TL8eZB/9G0juS/kDY9LhEXseh
 mE9U+iA1VsLhgDqVbsOtZ/S14LRFHczNd/Lqkn7souCSoyWsBs3/wO+OjPvxf7m+Ef+sMtr0
 G5lCWEWa9wa0IXx5HRPW/ScL+e4AVUbL7rurYMfwCzco+7TfjhMEOkC+va5gzi1KrErgNRHH
 kg3PhlnRY0Udyqx++UYkAsN4TQuEhNN32MvN0Np3WlBJOgKcuXpIElmMM5f1BBzJSKBkW0Jc
 Wy3h2Wy912vHKpPV/Xv7ZwVJ27v7KcuZcErtptDevAljxJtE7aJG6WiBzm+v9EswyWxwMCIO
 RoVBYuiocc51872tRGywc03xaQydB+9R7BHPzsBNBFOMcBYBCADLMfoA44MwGOB9YT1V4KCy
 vAfd7E0BTfaAurbG+Olacciz3yd09QOmejFZC6AnoykydyvTFLAWYcSCdISMr88COmmCbJzn
 sHAogjexXiif6ANUUlHpjxlHCCcELmZUzomNDnEOTxZFeWMTFF9Rf2k2F0Tl4E5kmsNGgtSa
 aMO0rNZoOEiD/7UfPP3dfh8JCQ1VtUUsQtT1sxos8Eb/HmriJhnaTZ7Hp3jtgTVkV0ybpgFg
 w6WMaRkrBh17mV0z2ajjmabB7SJxcouSkR0hcpNl4oM74d2/VqoW4BxxxOD1FcNCObCELfIS
 auZx+XT6s+CE7Qi/c44ibBMR7hyjdzWbABEBAAHCwF8EGAECAAkFAlOMcBYCGwwACgkQsN6d
 1ii/Ey9D+Af/WFr3q+bg/8v5tCknCtn92d5lyYTBNt7xgWzDZX8G6/pngzKyWfedArllp0Pn
 fgIXtMNV+3t8Li1Tg843EXkP7+2+CQ98MB8XvvPLYAfW8nNDV85TyVgWlldNcgdv7nn1Sq8g
 HwB2BHdIAkYce3hEoDQXt/mKlgEGsLpzJcnLKimtPXQQy9TxUaLBe9PInPd+Ohix0XOlY+Uk
 QFEx50Ki3rSDl2Zt2tnkNYKUCvTJq7jvOlaPd6d/W0tZqpyy7KVay+K4aMobDsodB3dvEAs6
 ScCnh03dDAFgIq5nsB11j3KPKdVoPlfucX2c7kGNH+LUMbzqV6beIENfNexkOfxHfw==
In-Reply-To: <a482b4df-f662-4d5d-8100-ade07afcdc24@zytor.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------i1ufDKWM9txfyXVXpiWBIZPH"
X-Rspamd-Queue-Id: 18940211CA
X-Spam-Level: 
X-Spamd-Result: default: False [-6.41 / 50.00];
	BAYES_HAM(-3.00)[100.00%];
	SIGNED_PGP(-2.00)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	R_DKIM_ALLOW(-0.20)[suse.com:s=susede1];
	MIME_UNKNOWN(0.10)[application/pgp-keys];
	MIME_BASE64_TEXT(0.10)[];
	MX_GOOD(-0.01)[];
	FUZZY_BLOCKED(0.00)[rspamd.com];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	ARC_NA(0.00)[];
	SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	RBL_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	RCPT_COUNT_TWELVE(0.00)[41];
	MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	FROM_HAS_DN(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)[];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	RECEIVED_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:106:10:150:64:167:received];
	R_RATELIMIT(0.00)[to_ip_from(RLkdkdrsxe9hqhhs5ask8616i6)];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	HAS_ATTACHMENT(0.00)[];
	DKIM_TRACE(0.00)[suse.com:+];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:dkim,suse.com:mid,imap1.dmz-prg2.suse.org:helo,imap1.dmz-prg2.suse.org:rdns]
X-Rspamd-Server: rspamd2.dmz-prg2.suse.org
X-Rspamd-Action: no action
X-Spam-Score: -6.41
X-Spam-Flag: NO

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------i1ufDKWM9txfyXVXpiWBIZPH
Content-Type: multipart/mixed; boundary="------------t79jkH1vw0nTqZ7sc29K922g";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Xin Li <xin@zytor.com>, linux-kernel@vger.kernel.org,
 kvm@vger.kernel.org, linux-perf-users@vger.kernel.org,
 linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
 linux-pm@vger.kernel.org, linux-edac@vger.kernel.org,
 xen-devel@lists.xenproject.org, linux-acpi@vger.kernel.org,
 linux-hwmon@vger.kernel.org, netdev@vger.kernel.org,
 platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
 dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com, acme@kernel.org,
 andrew.cooper3@citrix.com, peterz@infradead.org, namhyung@kernel.org,
 mark.rutland@arm.com, alexander.shishkin@linux.intel.com, jolsa@kernel.org,
 irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
 wei.liu@kernel.org, ajay.kaher@broadcom.com,
 bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
 pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
 luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
 haiyangz@microsoft.com, decui@microsoft.com
Message-ID: <bfeba521-0a49-42d0-bf83-15d031dfc6da@suse.com>
Subject: Re: [RFC PATCH v2 06/34] x86/msr: Use the alternatives mechanism to
 read PMC
References: <20250422082216.1954310-1-xin@zytor.com>
 <20250422082216.1954310-7-xin@zytor.com>
 <fbb509e8-0bd6-480f-be32-fd0895255a21@suse.com>
 <a482b4df-f662-4d5d-8100-ade07afcdc24@zytor.com>
In-Reply-To: <a482b4df-f662-4d5d-8100-ade07afcdc24@zytor.com>

--------------t79jkH1vw0nTqZ7sc29K922g
Content-Type: multipart/mixed; boundary="------------k2rhN54GrX7NriGRI3BHxg0x"

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

T24gMjIuMDQuMjUgMTE6MTIsIFhpbiBMaSB3cm90ZToNCj4gT24gNC8yMi8yMDI1IDE6Mzgg
QU0sIErDvHJnZW4gR3Jvw58gd3JvdGU6DQo+PiBPbiAyMi4wNC4yNSAxMDoyMSwgWGluIExp
IChJbnRlbCkgd3JvdGU6DQo+Pj4gVG8gZWxpbWluYXRlIHRoZSBpbmRpcmVjdCBjYWxsIG92
ZXJoZWFkIGludHJvZHVjZWQgYnkgdGhlIHB2X29wcyBBUEksDQo+Pj4gdXNlIHRoZSBhbHRl
cm5hdGl2ZXMgbWVjaGFuaXNtIHRvIHJlYWQgUE1DOg0KPj4NCj4+IFdoaWNoIGluZGlyZWN0
IGNhbGwgb3ZlcmhlYWQ/IFRoZSBpbmRpcmVjdCBjYWxsIGlzIHBhdGNoZWQgdmlhIHRoZQ0K
Pj4gYWx0ZXJuYXRpdmUgbWVjaGFuaXNtIHRvIGEgZGlyZWN0IG9uZS4NCj4+DQo+IA0KPiBT
ZWUgYmVsb3cuDQo+IA0KPiANCj4+Pg0KPj4+IMKgwqDCoMKgIDEpIFdoZW4gYnVpbHQgd2l0
aCAhQ09ORklHX1hFTl9QViwgWDg2X0ZFQVRVUkVfWEVOUFYgYmVjb21lcyBhDQo+Pj4gwqDC
oMKgwqDCoMKgwqAgZGlzYWJsZWQgZmVhdHVyZSwgcHJldmVudGluZyB0aGUgWGVuIFBNQyBy
ZWFkIGNvZGUgZnJvbSBiZWluZw0KPj4+IMKgwqDCoMKgwqDCoMKgIGJ1aWx0IGFuZCBlbnN1
cmluZyB0aGUgbmF0aXZlIGNvZGUgaXMgZXhlY3V0ZWQgdW5jb25kaXRpb25hbGx5Lg0KPj4N
Cj4+IFdpdGhvdXQgQ09ORklHX1hFTl9QViBDT05GSUdfUEFSQVZJUlRfWFhMIGlzIG5vdCBz
ZWxlY3RlZCwgcmVzdWx0aW5nIGluDQo+PiBuYXRpdmUgY29kZSBhbnl3YXkuDQo+IA0KPiBZ
ZXMsIHRoaXMgaXMga2VwdCBpbiB0aGlzIHBhdGNoLCBidXQgaW4gYSBsaXR0bGUgZGlmZmVy
ZW50IHdheS4NCj4gDQo+Pg0KPj4+DQo+Pj4gwqDCoMKgwqAgMikgV2hlbiBidWlsdCB3aXRo
IENPTkZJR19YRU5fUFY6DQo+Pj4NCj4+PiDCoMKgwqDCoMKgwqDCoCAyLjEpIElmIG5vdCBy
dW5uaW5nIG9uIHRoZSBYZW4gaHlwZXJ2aXNvciAoIVg4Nl9GRUFUVVJFX1hFTlBWKSwNCj4+
PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdGhlIGtlcm5lbCBydW50aW1lIGJpbmFyeSBp
cyBwYXRjaGVkIHRvIHVuY29uZGl0aW9uYWxseQ0KPj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoCBqdW1wIHRvIHRoZSBuYXRpdmUgUE1DIHJlYWQgY29kZS4NCj4+Pg0KPj4+IMKgwqDC
oMKgwqDCoMKgIDIuMikgSWYgcnVubmluZyBvbiB0aGUgWGVuIGh5cGVydmlzb3IgKFg4Nl9G
RUFUVVJFX1hFTlBWKSwgdGhlDQo+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGtlcm5l
bCBydW50aW1lIGJpbmFyeSBpcyBwYXRjaGVkIHRvIHVuY29uZGl0aW9uYWxseSBqdW1wDQo+
Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHRvIHRoZSBYZW4gUE1DIHJlYWQgY29kZS4N
Cj4+Pg0KPj4+IENvbnNlcXVlbnRseSwgcmVtb3ZlIHRoZSBwdl9vcHMgUE1DIHJlYWQgQVBJ
Lg0KPj4NCj4+IEkgZG9uJ3Qgc2VlIHRoZSB2YWx1ZSBvZiB0aGlzIHBhdGNoLg0KPj4NCj4+
IEl0IGFkZHMgbW9yZSAjaWZkZWYgYW5kIGNvZGUgbGluZXMgd2l0aG91dCBhbnkgcmVhbCBn
YWluLg0KPj4NCj4+IEluIGNhc2UgdGhlIHg4NiBtYWludGFpbmVycyB0aGluayBpdCBpcyBz
dGlsbCB3b3J0aCBpdCwgSSB3b24ndCBvYmplY3QuDQo+IA0KPiBJIHRoaW5rIHdlIHdhbnQg
dG8gdG90YWxseSBieXBhc3MgcHZfb3BzIGluIHRoZSBjYXNlIDIuMSkuDQo+IA0KPiBEbyB5
b3UgbWVhbiB0aGUgaW5kaXJlY3QgY2FsbCBpcyBwYXRjaGVkIHRvIGNhbGwgbmF0aXZlIGNv
ZGUgKmRpcmVjdGx5Kg0KPiBmb3IgMi4xP8KgIEkgZG9uJ3Qga25vdyBpdCwgY2FuIHlvdSBw
bGVhc2UgZWxhYm9yYXRlPw0KDQpBbGwgcGFyYXZpcnQgaW5kaXJlY3QgY2FsbHMgYXJlIHBh
dGNoZWQgdG8gZGlyZWN0IGNhbGxzIHZpYSB0aGUgbm9ybWFsDQphbHRlcm5hdGl2ZSBwYXRj
aCBtZWNoYW5pc20uDQoNCkhhdmUgYSBsb29rIGF0IGFsdF9yZXBsYWNlX2NhbGwoKSBpbiBh
cmNoL3g4Ni9rZXJuZWwvYWx0ZXJuYXRpdmUuYw0KDQo+IEFGQUlLLCBYZW4gUFYgaGFzIGJl
ZW4gdGhlIHNvbGUgdXNlciBvZiBwdl9vcHMgZm9yIG5lYXJseSAyMCB5ZWFycy4gVGhpcw0K
DQpOb3QgcXVpdGUuIFRoZXJlIHdhcyBsZ3Vlc3QgdW50aWwgSSByaXBwZWQgaXQgb3V0LiA6
LSkNCg0KQW5kIHNvbWUgdXNlIGNhc2VzIGFyZSBsZWZ0IGZvciBLVk0gYW5kIEh5cGVyLVYg
Z3Vlc3RzIChJIGhhdmUga2VwdCB0aG9zZQ0KYmVoaW5kIENPTkZJR19QQVJBVklSVCwgd2hp
bGUgdGhlIFhlbi1zcGVjaWZpYyBwYXJ0cyBhcmUgYmVoaW5kDQpDT05GSUdfUEFSQVZJUlRf
WFhMIG5vdykuDQoNCj4gcmFpc2VzIHNpZ25pZmljYW50IGRvdWJ0cyBhYm91dCB3aGV0aGVy
IHB2X29wcyBwcm92aWRlcyBMaW51eCB3aXRoIHRoZQ0KPiB2YWx1ZSBvZiBiZWluZyBhIHdl
bGwtYWJzdHJhY3RlZCAiQ1BVIiBvciAiUGxhdGZvcm0iLsKgIEFuZCB0aGUgeDg2DQo+IG1h
aW50YWluZXJzIGhhdmUgc2FpZCB0aGF0IGl0J3MgYSBtYWludGVuYW5jZSBuaWdodG1hcmUu
DQoNCkkgaGF2ZSB3b3JrZWQgcmF0aGVyIGhhcmQgdG8gbWFrZSBpdCBsZXNzIGludHJ1c2l2
ZSwgZXNwZWNpYWxseSBieSByZW1vdmluZw0KdGhlIHBhcmF2aXJ0IHNwZWNpZmljIGNvZGUg
cGF0Y2hpbmcgKG5vdyBhbGwgZG9uZSB2aWEgYWx0ZXJuYXRpdmUgcGF0Y2hpbmcpDQphbmQg
YnkgcmVtb3ZpbmcgMzItYml0IFhlbiBQViBtb2RlLg0KDQoNCkp1ZXJnZW4NCg==
--------------k2rhN54GrX7NriGRI3BHxg0x
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-----

--------------k2rhN54GrX7NriGRI3BHxg0x--

--------------t79jkH1vw0nTqZ7sc29K922g--

--------------i1ufDKWM9txfyXVXpiWBIZPH
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/Ey8FAmgHYSsFAwAAAAAACgkQsN6d1ii/Ey8t
BAf/Xay1uGeOD69VQbulD5vOfWkJTcR0Set2Ks1eR2Vni6kcV54vp/BhiSm/odLCaeK6XO/CupIM
hmeYc1rLkQuUKoS3D8zYmb2d6lilx6lmkEPIw2C1bz6ceEcYRgHk/nu0soK05iUQK4x4SoFUXJMu
oQ498RSAV8OhVpgYalYwt5h6l5sjqCeuOPeTqEokiLUB544rVfx21WTI6djKReonnep9/DZd9YC0
DYfrmMpBev4bopMQyF1Ac0JO7EOyMxKcVaBT+odf3yFSpeLuLk6Lnnbi2pNL9YXscx7PvHn7hr/h
qDUjlLIdezwa3/1AX1203eHNZvMLMJ8jag9r/EO1dg==
=N5ER
-----END PGP SIGNATURE-----

--------------i1ufDKWM9txfyXVXpiWBIZPH--


From xen-devel-bounces@lists.xenproject.org Tue Apr 22 09:35:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 09:35:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.962375.1353584 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7A2e-00083E-OS; Tue, 22 Apr 2025 09:35:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 962375.1353584; Tue, 22 Apr 2025 09:35: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 1u7A2e-000837-LZ; Tue, 22 Apr 2025 09:35:48 +0000
Received: by outflank-mailman (input) for mailman id 962375;
 Tue, 22 Apr 2025 09:35: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=f4Vg=XI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u7A2d-00082x-FB
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 09:35: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 29e2f8b3-1f5d-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 11:35:44 +0200 (CEST)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-43ce71582e9so39282045e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 02:35:45 -0700 (PDT)
Received: from [10.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-39efa4931c3sm14502789f8f.77.2025.04.22.02.35.43
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 22 Apr 2025 02:35:44 -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: 29e2f8b3-1f5d-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745314545; x=1745919345; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=bwXGvhhQgN3p6ubTvnfZSVqjPEeYrrFxNRv75IimuIM=;
        b=CijB3j41i2Tv3eBd64dZHnZtlF2X0vDht+i2ERIwaKYDHrQrApPY9BQAA2NgbIh0nA
         9QsXW5gwfcn3rLHv+AoBO+iHwnIVUkFY+2BiRw44m/yG4Bib0UFyZTa8tTs/PIyS1Wu4
         lb1eq2BfsdOnDY6jOwUP9RShJVzXiv0GiTX9IaHMegT4jeb8yXmfkaiSEh369+SblnNR
         QgZkSGamzxLzbfltr0ZidaiAZd4Ja25aCGYgWY0kzHYclJcHEN7bQHJi/Y1z7Iw+ICaj
         +sFF5OLmEupmoWpRGMo0raPncRrFu/wBzRi+7JuGkBwEYspGyTmmuBvM8H1nmqxEfGFy
         Gd7A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745314545; x=1745919345;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=bwXGvhhQgN3p6ubTvnfZSVqjPEeYrrFxNRv75IimuIM=;
        b=cIw1qzUtQphHscH9hEt+iZj2UNsMz8Ssj0g65c1XbIo/4PtcN6vJly8ua8nk35vRUs
         BbzCb7jaQxI+3c6XqhLSrMahw3c+bGVU+guJPvl4Jf7zdSdLsb+AF6ClNSAvzlRILDgz
         ZHEG0KMUBYjknraSX1kO/OMTWbl1unVEVq1UQ0f96Us7OhXECGVC9/o/4vBI5P6jhlFI
         naoU77/NM+vXEmdaaP6ZI+96pQGR9FskAND1zEerlfk5Zcuyu6c3xAIMnlEQ8Kc8yZb0
         2X4lZBL5cm+avFszkFnsvYwzg3246t6u1Wmz4ZYo/FFnCkJry3QUDDrjvFuLJVNzNDx5
         XtUw==
X-Forwarded-Encrypted: i=1; AJvYcCUkD/go1QWWlpw+QXP60O5uik7cgEzHN0Ln5hGT4NH1mEJmsUbP8LaGhvCExcRu7QCiKbuCArbZe2Q=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzW6GeZQ2t2VnL5EYHT3UDMu9jPzlPWJYs2lDfzBB4z0RXLoToj
	rflHFeIVCGGtWtir6bSk/H+FpNz5R6DJ35OcomW5GMKzQwR9lRrx0TzIHSJrhg==
X-Gm-Gg: ASbGnctjRbmoq0KoOMROpAxzm9labVw7eM1HHb0AE9ZkUgkW5HaxYOeh19cn04bKvbG
	9oi6PFhNNfVFgkM1dz9TQ5KUkAsdnaZpzlUioCHzH4Jj5IFGrzEAsa0ZoKyW+cXDB87fUe/CKKO
	iT1Wtghp0NO5Dh3+LvRiYWwPsKsTW7RoMJ5zGS81QyuPT3bBQbx/ddX3TIO1vUCZtBZgpLFQRKM
	X/xfZAurITbx9BL5iDx6oSOUyfAduKeLW5DzY0Br5iq0s/9SCIRTfcwCZfzowRUaDys2+Sp5WQQ
	Yu9Pja3RwVi1jz2Jvv9wP5BQdEuaZqnN87F+oIxnBOQRR2aC6KbIjetvn9+sRF/Ukw36acjua/4
	orv+4vV9+mgWfh+otkWGLXMzPaA==
X-Google-Smtp-Source: AGHT+IFHr6Ylp6Snel56WwTgDBEVa14oLhrnxZ7jdih+hC+d+LpHAE0Ip6b8jTjzCQ/eAj4hCi7E8A==
X-Received: by 2002:a05:600c:b8c:b0:43c:fc04:6d48 with SMTP id 5b1f17b1804b1-4406aa8955bmr144869835e9.0.1745314544630;
        Tue, 22 Apr 2025 02:35:44 -0700 (PDT)
Message-ID: <ad19c0b3-a7c8-4416-832f-7cb92119cc52@suse.com>
Date: Tue, 22 Apr 2025 11:35:46 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5] xen/riscv: Increase XEN_VIRT_SIZE
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <9fbb5e1389b84bed2e95f99e4c383d0215c7a524.1744889185.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: <9fbb5e1389b84bed2e95f99e4c383d0215c7a524.1744889185.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 17.04.2025 18:08, Oleksii Kurochko wrote:
> A randconfig job failed with the following issue:
>   riscv64-linux-gnu-ld: Xen too large for early-boot assumptions
> 
> The reason is that enabling the UBSAN config increased the size of
> the Xen binary.
> 
> Increase XEN_VIRT_SIZE to reserve enough space, allowing both UBSAN
> and GCOV to be enabled together, with some slack for future growth.
> 
> Additionally, add checks to verify that XEN_VIRT_START is 1GB-aligned
> and XEN_VIRT_SIZE is 2MB-aligned to reduce the number of page tables
> needed for the initial mapping. In the future, when 2MB mappings are
> used for .text (rx), .rodata (r), and .data (rw), this will also help
> reduce TLB pressure.
> 
> Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

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




From xen-devel-bounces@lists.xenproject.org Tue Apr 22 09:57:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 09:57:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.962387.1353595 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7ANH-0001jA-CN; Tue, 22 Apr 2025 09:57:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 962387.1353595; Tue, 22 Apr 2025 09:57: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 1u7ANH-0001j3-9K; Tue, 22 Apr 2025 09:57:07 +0000
Received: by outflank-mailman (input) for mailman id 962387;
 Tue, 22 Apr 2025 09:57: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=mE8E=XI=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1u7ANF-0001ix-J9
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 09:57:05 +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 24dcc09a-1f60-11f0-9eb0-5ba50f476ded;
 Tue, 22 Apr 2025 11:57:04 +0200 (CEST)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-43cfba466b2so49642585e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 02:57:04 -0700 (PDT)
Received: from ?IPV6:2003:e5:873d:1a00:8e99:ce06:aa4a:2e7b?
 (p200300e5873d1a008e99ce06aa4a2e7b.dip0.t-ipconnect.de.
 [2003:e5:873d:1a00:8e99:ce06:aa4a:2e7b])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4406d5a9ed9sm170762645e9.3.2025.04.22.02.57.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 22 Apr 2025 02:57: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: 24dcc09a-1f60-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745315824; x=1745920624; 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=ra2hUSK0u1Z8gUcixrox3gM8oCMvOjxq55/e3XVGs0c=;
        b=a6JvRwCIxUwvAQyj4NF7emxyuIoqjxAavO/umSoFXwUqnj11XppOQmHqjB+Wxm8bgq
         jzJJfYMmgi6B0tuAezPhyczFufWb/aDOxDLxu2kdeXYCn31fV+1XCauYj+39VODir28z
         QmAgzTulElVElvFwxUBTWIe5TvU902Wz5KepbIcPJKM0QWptXPLrW4HkhpoiVs43QCv3
         SwOhCONSXNOFsO7Md2CFv0pRITQlUEQbQsvCkhpTTnpihsKw79po54QP5AKsyR9y14nu
         6kByyEgkv2X8gRLrWB567+Haiqqq9J+JRaoX+hYEke+LkLW5vhOCjGEOP7GxkuDcWkkX
         Ifag==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745315824; x=1745920624;
        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=ra2hUSK0u1Z8gUcixrox3gM8oCMvOjxq55/e3XVGs0c=;
        b=pWvGD/kuYHBnrRIvLRR4gYdgGHQqVCraEWLihBhxTs0/G051tnzi019Q9XGoWbvm/L
         T0WiJKmp+qldBgr9ZFtKeid3d7emYXa21f9YKLdtbXBykQwvPsCkUSL9vZyvyij9u8hC
         UbAhJDp9CMsNOMmWu8Tk+WHGryAAJxpwEw/ZKVJjob2tU+f2VvnY2tG4Y8nAkQmihuUP
         djl47ZBKGam9LHr6rLK5hAs1jUhppLrevucOX4RfBVSBhK47vOcJthqBMf0UJ03Yxvcc
         38KZVivdtaUP9wWbUSUrFbATur3iZwed5BdDoYC/76f+cEG3P2LNdT05xrZaAjBuy5po
         YiCQ==
X-Forwarded-Encrypted: i=1; AJvYcCWzvHssfjzl/AJttKpXeeMy6lNFDH6q80I2bzhjIbrh9OoO7KbPjyCVfd+lr9BgmYPoNqyX5mCEzcY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzmobuLHTkOzajIP6cKyRrpD3jMpZNRloOm2ddqsXNwJ+x2CIZH
	jiqUGwYbJT+Quz/8g0Ba9Gbv/OfVVdxLgJdu9/FYn8haC7JlO+1G4cBtxEphz7s=
X-Gm-Gg: ASbGncuEw2a8FyuV4a/5QBPDpjiAkj6LDw4o4B9g1OlajJFMMJEXbFf9alPbGzVfwQL
	/Snr52dkf88BOxomesf/JIi1iXW9jh9kISZDXd1uzm36X9CdeH9hf0hEpE5i6r/m8p5jN3tZepe
	4Xqh5e+N8NqHPNh1KP7IdDdk8UNSsyr1wvk0gTe1P66Kq5K9OCmKUuyG0bkXaO89EKOWluTFJ0I
	RciWQtdJFTiIsnmMvmoKxxOuWTI6ZvxLvcVoyHvhNg9borCihkefEmNv7236u593qEx7YdVYT90
	odJ1a8cmrbyUuvbS/aWAtBoewzQoWq/sH7wa6UzZQgDR5IUN3NjEebqfY+qkB3ExLG/G8Vd54TJ
	mYDI/sDCG1YjPQwe01SCPSruKCJy3pb9C7mf4TnlcNPlmE8gs1YjNilB0dcGZZ32ecQ==
X-Google-Smtp-Source: AGHT+IEegHaHYzFVYqyqvV4s9CP9vHbxqmxDIAALjlbfcfnjkYigut/sITLzJii3S/SE6bsFdLLg+g==
X-Received: by 2002:a05:600c:384b:b0:43d:b85:1831 with SMTP id 5b1f17b1804b1-4406aa872edmr146519085e9.0.1745315823722;
        Tue, 22 Apr 2025 02:57:03 -0700 (PDT)
Message-ID: <b2624e84-6fab-44a3-affc-ce0847cd3da4@suse.com>
Date: Tue, 22 Apr 2025 11:57:01 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH v2 21/34] x86/msr: Utilize the alternatives mechanism
 to write MSR
To: "Xin Li (Intel)" <xin@zytor.com>, linux-kernel@vger.kernel.org,
 kvm@vger.kernel.org, linux-perf-users@vger.kernel.org,
 linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
 linux-pm@vger.kernel.org, linux-edac@vger.kernel.org,
 xen-devel@lists.xenproject.org, linux-acpi@vger.kernel.org,
 linux-hwmon@vger.kernel.org, netdev@vger.kernel.org,
 platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
 dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com, acme@kernel.org,
 andrew.cooper3@citrix.com, peterz@infradead.org, namhyung@kernel.org,
 mark.rutland@arm.com, alexander.shishkin@linux.intel.com, jolsa@kernel.org,
 irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
 wei.liu@kernel.org, ajay.kaher@broadcom.com,
 bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
 pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
 luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
 haiyangz@microsoft.com, decui@microsoft.com
References: <20250422082216.1954310-1-xin@zytor.com>
 <20250422082216.1954310-22-xin@zytor.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: <20250422082216.1954310-22-xin@zytor.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------8vGI03Dqxf6ImVX0xeh765vV"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------8vGI03Dqxf6ImVX0xeh765vV
Content-Type: multipart/mixed; boundary="------------2IPlD0AsRlb1LDytrzf7MO1r";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: "Xin Li (Intel)" <xin@zytor.com>, linux-kernel@vger.kernel.org,
 kvm@vger.kernel.org, linux-perf-users@vger.kernel.org,
 linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
 linux-pm@vger.kernel.org, linux-edac@vger.kernel.org,
 xen-devel@lists.xenproject.org, linux-acpi@vger.kernel.org,
 linux-hwmon@vger.kernel.org, netdev@vger.kernel.org,
 platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
 dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com, acme@kernel.org,
 andrew.cooper3@citrix.com, peterz@infradead.org, namhyung@kernel.org,
 mark.rutland@arm.com, alexander.shishkin@linux.intel.com, jolsa@kernel.org,
 irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
 wei.liu@kernel.org, ajay.kaher@broadcom.com,
 bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
 pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
 luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
 haiyangz@microsoft.com, decui@microsoft.com
Message-ID: <b2624e84-6fab-44a3-affc-ce0847cd3da4@suse.com>
Subject: Re: [RFC PATCH v2 21/34] x86/msr: Utilize the alternatives mechanism
 to write MSR
References: <20250422082216.1954310-1-xin@zytor.com>
 <20250422082216.1954310-22-xin@zytor.com>
In-Reply-To: <20250422082216.1954310-22-xin@zytor.com>

--------------2IPlD0AsRlb1LDytrzf7MO1r
Content-Type: multipart/mixed; boundary="------------TWjE0O8m3DPylu59JiT9iwph"

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

T24gMjIuMDQuMjUgMTA6MjIsIFhpbiBMaSAoSW50ZWwpIHdyb3RlOg0KPiBUaGUgc3Rvcnkg
c3RhcnRlZCBmcm9tIHRnbHgncyByZXBseSBpbiBbMV06DQo+IA0KPiAgICBGb3IgYWN0dWFs
IHBlcmZvcm1hbmNlIHJlbGV2YW50IGNvZGUgdGhlIGN1cnJlbnQgUFYgb3BzIG1lY2hhbmlj
cw0KPiAgICBhcmUgYSBob3Jyb3JzaG93IHdoZW4gdGhlIG9wIGRlZmF1bHRzIHRvIHRoZSBu
YXRpdmUgaW5zdHJ1Y3Rpb24uDQo+IA0KPiAgICBsb29rIGF0IHdybXNybCgpOg0KPiANCj4g
ICAgd3Jtc3JsKG1zciwgdmFsDQo+ICAgICB3cm1zcihtc3IsICh1MzIpdmFsLCAodTMyKXZh
bCA+PiAzMikpDQo+ICAgICAgcGFyYXZpcnRfd3JpdGVfbXNyKG1zciwgbG93LCBoaWdoKQ0K
PiAgICAgICAgUFZPUF9WQ0FMTDMoY3B1LndyaXRlX21zciwgbXNyLCBsb3csIGhpZ2gpDQo+
IA0KPiAgICBXaGljaCByZXN1bHRzIGluDQo+IA0KPiAJbW92CSRtc3IsICVlZGkNCj4gCW1v
dgkkdmFsLCAlcmR4DQo+IAltb3YJJWVkeCwgJWVzaQ0KPiAJc2hyCSQweDIwLCAlcmR4DQo+
IAljYWxsCW5hdGl2ZV93cml0ZV9tc3INCj4gDQo+ICAgIGFuZCBuYXRpdmVfd3JpdGVfbXNy
KCkgZG9lcyBhdCBtaW5pbXVtOg0KPiANCj4gCW1vdiAgICAlZWRpLCVlY3gNCj4gCW1vdiAg
ICAlZXNpLCVlYXgNCj4gCXdybXNyDQo+IAlyZXQNCj4gDQo+ICAgIEluIHRoZSB3b3JzdCBj
YXNlICdyZXQnIGlzIGdvaW5nIHRocm91Z2ggdGhlIHJldHVybiB0aHVuay4gTm90IHRvDQo+
ICAgIHRhbGsgYWJvdXQgZnVuY3Rpb24gcHJvbG9ndWVzIGFuZCB3aGF0ZXZlci4NCj4gDQo+
ICAgIFRoaXMgYmVjb21lcyBldmVuIG1vcmUgc2lsbHkgZm9yIHRyaXZpYWwgaW5zdHJ1Y3Rp
b25zIGxpa2UgU1RJL0NMSQ0KPiAgICBvciBpbiB0aGUgd29yc3QgY2FzZSBwYXJhdmlydF9u
b3AoKS4NCg0KVGhpcyBpcyBub25zZW5zZS4NCg0KSW4gdGhlIG5vbi1YZW4gY2FzZSB0aGUg
aW5pdGlhbCBpbmRpcmVjdCBjYWxsIGlzIGRpcmVjdGx5IHJlcGxhY2VkIHdpdGgNClNUSS9D
TEkgdmlhIGFsdGVybmF0aXZlIHBhdGNoaW5nLCB3aGlsZSBmb3IgWGVuIGl0IGlzIHJlcGxh
Y2VkIGJ5IGEgZGlyZWN0DQpjYWxsLg0KDQpUaGUgcGFyYXZpcnRfbm9wKCkgY2FzZSBpcyBo
YW5kbGVkIGluIGFsdF9yZXBsYWNlX2NhbGwoKSBieSByZXBsYWNpbmcgdGhlDQppbmRpcmVj
dCBjYWxsIHdpdGggYSBub3AgaW4gY2FzZSB0aGUgdGFyZ2V0IG9mIHRoZSBjYWxsIHdhcyBw
YXJhdmlydF9ub3AoKQ0KKHdoaWNoIGlzIGluIGZhY3Qgbm9fZnVuYygpKS4NCg0KPiANCj4g
ICAgVGhlIGNhbGwgbWFrZXMgb25seSBzZW5zZSwgd2hlbiB0aGUgbmF0aXZlIGRlZmF1bHQg
aXMgYW4gYWN0dWFsDQo+ICAgIGZ1bmN0aW9uLCBidXQgZm9yIHRoZSB0cml2aWFsIGNhc2Vz
IGl0J3MgYSBibGF0YW50IGVuZ2luZWVyaW5nDQo+ICAgIHRyYWlud3JlY2suDQoNClRoZSB0
cml2aWFsIGNhc2VzIGFyZSBhbGwgaGFuZGxlZCBhcyBzdGF0ZWQgYWJvdmU6IGEgZGlyZWN0
IHJlcGxhY2VtZW50DQppbnN0cnVjdGlvbiBpcyBwbGFjZWQgYXQgdGhlIGluZGlyZWN0IGNh
bGwgcG9zaXRpb24uDQoNCj4gTGF0ZXIgYSBjb25zZW5zdXMgd2FzIHJlYWNoZWQgdG8gdXRp
bGl6ZSB0aGUgYWx0ZXJuYXRpdmVzIG1lY2hhbmlzbSB0bw0KPiBlbGltaW5hdGUgdGhlIGlu
ZGlyZWN0IGNhbGwgb3ZlcmhlYWQgaW50cm9kdWNlZCBieSB0aGUgcHZfb3BzIEFQSXM6DQo+
IA0KPiAgICAgIDEpIFdoZW4gYnVpbHQgd2l0aCAhQ09ORklHX1hFTl9QViwgWDg2X0ZFQVRV
UkVfWEVOUFYgYmVjb21lcyBhDQo+ICAgICAgICAgZGlzYWJsZWQgZmVhdHVyZSwgcHJldmVu
dGluZyB0aGUgWGVuIGNvZGUgZnJvbSBiZWluZyBidWlsdA0KPiAgICAgICAgIGFuZCBlbnN1
cmluZyB0aGUgbmF0aXZlIGNvZGUgaXMgZXhlY3V0ZWQgdW5jb25kaXRpb25hbGx5Lg0KDQpU
aGlzIGlzIHRoZSBjYXNlIHRvZGF5IGFscmVhZHkuIFRoZXJlIGlzIG5vIG5lZWQgZm9yIGFu
eSBjaGFuZ2UgdG8gaGF2ZQ0KdGhpcyBpbiBwbGFjZS4NCg0KPiANCj4gICAgICAyKSBXaGVu
IGJ1aWx0IHdpdGggQ09ORklHX1hFTl9QVjoNCj4gDQo+ICAgICAgICAgMi4xKSBJZiBub3Qg
cnVubmluZyBvbiB0aGUgWGVuIGh5cGVydmlzb3IgKCFYODZfRkVBVFVSRV9YRU5QViksDQo+
ICAgICAgICAgICAgICB0aGUga2VybmVsIHJ1bnRpbWUgYmluYXJ5IGlzIHBhdGNoZWQgdG8g
dW5jb25kaXRpb25hbGx5DQo+ICAgICAgICAgICAgICBqdW1wIHRvIHRoZSBuYXRpdmUgTVNS
IHdyaXRlIGNvZGUuDQo+IA0KPiAgICAgICAgIDIuMikgSWYgcnVubmluZyBvbiB0aGUgWGVu
IGh5cGVydmlzb3IgKFg4Nl9GRUFUVVJFX1hFTlBWKSwgdGhlDQo+ICAgICAgICAgICAgICBr
ZXJuZWwgcnVudGltZSBiaW5hcnkgaXMgcGF0Y2hlZCB0byB1bmNvbmRpdGlvbmFsbHkganVt
cA0KPiAgICAgICAgICAgICAgdG8gdGhlIFhlbiBNU1Igd3JpdGUgY29kZS4NCg0KSSBjYW4n
dCBzZWUgd2hhdCBpcyBkaWZmZXJlbnQgaGVyZSBjb21wYXJlZCB0byB0b2RheSdzIHN0YXRl
Lg0KDQo+IA0KPiBUaGUgYWx0ZXJuYXRpdmVzIG1lY2hhbmlzbSBpcyBhbHNvIHVzZWQgdG8g
Y2hvb3NlIHRoZSBuZXcgaW1tZWRpYXRlDQo+IGZvcm0gTVNSIHdyaXRlIGluc3RydWN0aW9u
IHdoZW4gaXQncyBhdmFpbGFibGUuDQoNClllcywgdGhpcyBuZWVkcyB0byBiZSBhZGRlZC4N
Cg0KPiBDb25zZXF1ZW50bHksIHJlbW92ZSB0aGUgcHZfb3BzIE1TUiB3cml0ZSBBUElzIGFu
ZCB0aGUgWGVuIGNhbGxiYWNrcy4NCg0KSSBzdGlsbCBkb24ndCBzZWUgYSBtYWpvciBkaWZm
ZXJlbmNlIHRvIHRvZGF5J3Mgc29sdXRpb24uDQoNCk9ubHkgdGhlICJwYXJhdmlydCIgdGVy
bSBoYXMgYmVlbiBlbGltaW5hdGVkLg0KDQoNCkp1ZXJnZW4NCg==
--------------TWjE0O8m3DPylu59JiT9iwph
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-----

--------------TWjE0O8m3DPylu59JiT9iwph--

--------------2IPlD0AsRlb1LDytrzf7MO1r--

--------------8vGI03Dqxf6ImVX0xeh765vV
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/Ey8FAmgHZ+0FAwAAAAAACgkQsN6d1ii/Ey9o
Kwf+Ka8aDvktSdKOtwo3ZdG8CXGbhTVU/RFRiiCX+p/ja038CoQl+/SDzpsd9r4wApdxZeP3Kw5A
w9rGmV/b+b6SjhX9aMR5V6/WtL+8fHF3ahX8pZQB436Zmltil3ORUWP2bUJ1XBDf0uuNEnS2orO8
7i7LqV+E+lvJtjsS+Ml6iQQUwETDFQEfShG2bFqyCbaxEPKeZqdEiCUoVQ85jAksvE0UEujITh/K
V8dUgromwUTsyo2GZkgjDh9ewmx+4xkMLCLChn6rFRGVOPjQ62XoTE0KqPecMkfV0JiDCiKgSmBZ
/zmgOaF+fasyXqt62Tb/l2F9PvlX5TGvS5kMqcpYDQ==
=zY3y
-----END PGP SIGNATURE-----

--------------8vGI03Dqxf6ImVX0xeh765vV--


From xen-devel-bounces@lists.xenproject.org Tue Apr 22 09:58:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 09:58:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.962397.1353605 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7AOA-0002FK-Ku; Tue, 22 Apr 2025 09:58:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 962397.1353605; Tue, 22 Apr 2025 09:58: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 1u7AOA-0002F5-Hb; Tue, 22 Apr 2025 09:58:02 +0000
Received: by outflank-mailman (input) for mailman id 962397;
 Tue, 22 Apr 2025 09:58: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=mE8E=XI=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1u7AO9-0001ix-AI
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 09:58:01 +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 4660a6b5-1f60-11f0-9eb0-5ba50f476ded;
 Tue, 22 Apr 2025 11:58:00 +0200 (CEST)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-39c1ef4acf2so3011710f8f.0
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 02:58:00 -0700 (PDT)
Received: from ?IPV6:2003:e5:873d:1a00:8e99:ce06:aa4a:2e7b?
 (p200300e5873d1a008e99ce06aa4a2e7b.dip0.t-ipconnect.de.
 [2003:e5:873d:1a00:8e99:ce06:aa4a:2e7b])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39efa4207afsm14838749f8f.12.2025.04.22.02.57.58
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 22 Apr 2025 02:57: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: 4660a6b5-1f60-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745315880; x=1745920680; 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=tO6B4uusGXWb6S1d5vB39Y8e5rVhKy79xlXkhC2hD/8=;
        b=P89FawpQJtvLX/wOJQGYwyVIkyTeG7hnjK3fTwrkmlVr8ZzdOovLD01EGoTPHJ/NdO
         1FXdPL/RLkY/GTVd3SBkwlupV1MiU7z3Uh+iG4Kh3NZUQU4SiryKQVZmKv0A+2xlj/KX
         X0YQTt1fDsKMieSBcLvGq7Ou2VfLuZXnMtRJui+jGFu0K7QUYF0zpNnzX/ybGjFt3Hbi
         wI8CGhICDKPGYfPdIkrCqMBepZR8Gqi3L6YZm91KDK+KABCE/FWzY8kMR28ogJ6OpQlw
         q0ak0sjpY5qCoib/Pu8pQfpHY7B+nkbBRPyKiD3q8jFWdTe8XXQ4gUwAk9q3aJayOWrm
         CEtw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745315880; x=1745920680;
        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=tO6B4uusGXWb6S1d5vB39Y8e5rVhKy79xlXkhC2hD/8=;
        b=PSRcn1T3KgdtOOjsBGxObqZywbT0Yr4ZJ/pCS5QPDBhs4YlcVgfoFPc174BPqUWLUq
         fVJP1Ki6qWJnYpK9XURdN+4Cn9a1Mw5TQ3OATTwevk9dfSb2K2Z/D2MwWwZVq2jp7Mb/
         ir666kuONbFFtRg4N0xL6LXZLuGY2+O6VxBxqPfHQbd78Be7x6yRkSz3GqFJmxR2j7I1
         2+tlLDYGFKSCQ3h3c2KGp33VugpvAdewocuBqbMTVD9L1q9QqYfp6pwpK/e2/2zEbEl5
         BVrAuDqZIaDZqaYNH1eQj1FqXkRIyNIBUI5vg/HXO1pOYNNg3kBGxJqci8VBBQuaJICF
         anxQ==
X-Forwarded-Encrypted: i=1; AJvYcCW86xBFDJgIyErWNYkr0mxAzyWocTQbVcJm6IfY2Ee/2usZxdDDoO0j+NthiodIWedvu4vJgRAwaA4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyokmOSw3qayunVTHCWKkypsbggxcKqEwKVqgxrx/YeghjQpfAU
	EPuU+nSWxHFbfGCvyOXwf8ylacs3YZJwpdiOB8itiNcQNsVn+5SqTmDW+53B25w=
X-Gm-Gg: ASbGncsg7Ug+x/T+XHHL25PvKcl/qvAijLA0ZCei4NETAE6envJ8aj76EmMx1CCGng3
	JVF33ZByovno1GiFGhElhEWX4+C4BBa2pBaxs1KaqdMtzvYcC5HydzApl22IrbZ/OlYm80mZaHe
	NHjPi8Qe2H0A2L6lGoIDJPRn0RlKk7njZ3+PTrcJBVyXCZHqD+4jnmi4b8chg7ouy24NdxYFi36
	tTWJz59Je0Tq19jRmDD/vXaQMqaNtf1ftFJ/EUofk/4Q6FkmS9olHdtMxEmqxW6VBHpAta4aDTj
	NCJS2RnqziLUUrNQy9ToW8cMCBHWEnU8jzC20xEQgoZKj8UryRV/KrC/NuE9Dg+W67f4KIU0676
	GTvt5Fy/9SUrmdznGiJzACaqdtnSRVPAIBCUoJqPAikEM7boIqqS39Pwy/nGvJDE9gw==
X-Google-Smtp-Source: AGHT+IGwOEvoLsyGlKbLK2I7EO3CV112zbLo9AuOo2VfG3qa8/zautum4TxS9/Et7Lbmpeas2d4LEQ==
X-Received: by 2002:a5d:584e:0:b0:39c:2264:43ea with SMTP id ffacd0b85a97d-39efba2a69bmr12519153f8f.3.1745315879983;
        Tue, 22 Apr 2025 02:57:59 -0700 (PDT)
Message-ID: <6046a6d0-bae3-41bb-9960-82c403f62476@suse.com>
Date: Tue, 22 Apr 2025 11:57:57 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH v2 22/34] x86/msr: Utilize the alternatives mechanism
 to read MSR
To: Xin Li <xin@zytor.com>, linux-kernel@vger.kernel.org,
 kvm@vger.kernel.org, linux-perf-users@vger.kernel.org,
 linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
 linux-pm@vger.kernel.org, linux-edac@vger.kernel.org,
 xen-devel@lists.xenproject.org, linux-acpi@vger.kernel.org,
 linux-hwmon@vger.kernel.org, netdev@vger.kernel.org,
 platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
 dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com, acme@kernel.org,
 andrew.cooper3@citrix.com, peterz@infradead.org, namhyung@kernel.org,
 mark.rutland@arm.com, alexander.shishkin@linux.intel.com, jolsa@kernel.org,
 irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
 wei.liu@kernel.org, ajay.kaher@broadcom.com,
 bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
 pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
 luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
 haiyangz@microsoft.com, decui@microsoft.com
References: <20250422082216.1954310-1-xin@zytor.com>
 <20250422082216.1954310-23-xin@zytor.com>
 <91f9217a-cc2d-4a6e-bada-290312f73d82@suse.com>
 <7fea6158-9b7d-4bfb-b709-729266803c32@zytor.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: <7fea6158-9b7d-4bfb-b709-729266803c32@zytor.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------LRC1NKAgjBDvH3dBaZRyJS4G"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------LRC1NKAgjBDvH3dBaZRyJS4G
Content-Type: multipart/mixed; boundary="------------2vrbMGF8pPaZHLnA82JDRyos";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Xin Li <xin@zytor.com>, linux-kernel@vger.kernel.org,
 kvm@vger.kernel.org, linux-perf-users@vger.kernel.org,
 linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
 linux-pm@vger.kernel.org, linux-edac@vger.kernel.org,
 xen-devel@lists.xenproject.org, linux-acpi@vger.kernel.org,
 linux-hwmon@vger.kernel.org, netdev@vger.kernel.org,
 platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
 dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com, acme@kernel.org,
 andrew.cooper3@citrix.com, peterz@infradead.org, namhyung@kernel.org,
 mark.rutland@arm.com, alexander.shishkin@linux.intel.com, jolsa@kernel.org,
 irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
 wei.liu@kernel.org, ajay.kaher@broadcom.com,
 bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
 pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
 luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
 haiyangz@microsoft.com, decui@microsoft.com
Message-ID: <6046a6d0-bae3-41bb-9960-82c403f62476@suse.com>
Subject: Re: [RFC PATCH v2 22/34] x86/msr: Utilize the alternatives mechanism
 to read MSR
References: <20250422082216.1954310-1-xin@zytor.com>
 <20250422082216.1954310-23-xin@zytor.com>
 <91f9217a-cc2d-4a6e-bada-290312f73d82@suse.com>
 <7fea6158-9b7d-4bfb-b709-729266803c32@zytor.com>
In-Reply-To: <7fea6158-9b7d-4bfb-b709-729266803c32@zytor.com>

--------------2vrbMGF8pPaZHLnA82JDRyos
Content-Type: multipart/mixed; boundary="------------0gah4xKFvsHE00D3flXrnkz1"

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

T24gMjIuMDQuMjUgMTE6MjAsIFhpbiBMaSB3cm90ZToNCj4gT24gNC8yMi8yMDI1IDE6NTkg
QU0sIErDvHJnZW4gR3Jvw58gd3JvdGU6DQo+PiBPbiAyMi4wNC4yNSAxMDoyMiwgWGluIExp
IChJbnRlbCkgd3JvdGU6DQo+Pj4gVG8gZWxpbWluYXRlIHRoZSBpbmRpcmVjdCBjYWxsIG92
ZXJoZWFkIGludHJvZHVjZWQgYnkgdGhlIHB2X29wcyBBUEksDQo+Pj4gdXRpbGl6ZSB0aGUg
YWx0ZXJuYXRpdmVzIG1lY2hhbmlzbSB0byByZWFkIE1TUjoNCj4+Pg0KPj4+IMKgwqDCoMKg
IDEpIFdoZW4gYnVpbHQgd2l0aCAhQ09ORklHX1hFTl9QViwgWDg2X0ZFQVRVUkVfWEVOUFYg
YmVjb21lcyBhDQo+Pj4gwqDCoMKgwqDCoMKgwqAgZGlzYWJsZWQgZmVhdHVyZSwgcHJldmVu
dGluZyB0aGUgWGVuIGNvZGUgZnJvbSBiZWluZyBidWlsdA0KPj4+IMKgwqDCoMKgwqDCoMKg
IGFuZCBlbnN1cmluZyB0aGUgbmF0aXZlIGNvZGUgaXMgZXhlY3V0ZWQgdW5jb25kaXRpb25h
bGx5Lg0KPj4+DQo+Pj4gwqDCoMKgwqAgMikgV2hlbiBidWlsdCB3aXRoIENPTkZJR19YRU5f
UFY6DQo+Pj4NCj4+PiDCoMKgwqDCoMKgwqDCoCAyLjEpIElmIG5vdCBydW5uaW5nIG9uIHRo
ZSBYZW4gaHlwZXJ2aXNvciAoIVg4Nl9GRUFUVVJFX1hFTlBWKSwNCj4+PiDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqAgdGhlIGtlcm5lbCBydW50aW1lIGJpbmFyeSBpcyBwYXRjaGVkIHRv
IHVuY29uZGl0aW9uYWxseQ0KPj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBqdW1wIHRv
IHRoZSBuYXRpdmUgTVNSIHJlYWQgY29kZS4NCj4+Pg0KPj4+IMKgwqDCoMKgwqDCoMKgIDIu
MikgSWYgcnVubmluZyBvbiB0aGUgWGVuIGh5cGVydmlzb3IgKFg4Nl9GRUFUVVJFX1hFTlBW
KSwgdGhlDQo+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGtlcm5lbCBydW50aW1lIGJp
bmFyeSBpcyBwYXRjaGVkIHRvIHVuY29uZGl0aW9uYWxseSBqdW1wDQo+Pj4gwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgIHRvIHRoZSBYZW4gTVNSIHJlYWQgY29kZS4NCj4+Pg0KPj4+IFRo
ZSBhbHRlcm5hdGl2ZXMgbWVjaGFuaXNtIGlzIGFsc28gdXNlZCB0byBjaG9vc2UgdGhlIG5l
dyBpbW1lZGlhdGUNCj4+PiBmb3JtIE1TUiByZWFkIGluc3RydWN0aW9uIHdoZW4gaXQncyBh
dmFpbGFibGUuDQo+Pj4NCj4+PiBDb25zZXF1ZW50bHksIHJlbW92ZSB0aGUgcHZfb3BzIE1T
UiByZWFkIEFQSXMgYW5kIHRoZSBYZW4gY2FsbGJhY2tzLg0KPj4NCj4+IFNhbWUgYXMgdGhl
IGNvbW1lbnQgdG8gcGF0Y2ggNTogdGhlcmUgaXMgbm8gaW5kaXJlY3QgY2FsbCBvdmVyaGVh
ZCBhZnRlcg0KPj4gdGhlIHN5c3RlbSBoYXMgY29tZSB1cC4NCj4+DQo+IA0KPiBQbGVhc2Ug
Y2hlY2sgaHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcvbGttbC84N3kxaDgxaHQ0LmZmc0B0Z2x4
Ly4NCj4gDQo+IEFuZCBpdCdzIHdhcyBhbHNvIG1lbnRpb25lZCBpbiB0aGUgcHJldmlvdXMg
cGF0Y2g6DQo+IA0KPiBodHRwczovL2xvcmUua2VybmVsLm9yZy9sa21sLzIwMjUwNDIyMDgy
MjE2LjE5NTQzMTAtMjIteGluQHp5dG9yLmNvbS8NCj4gDQo+IFBsZWFzZSBsZXQgbWUga25v
dyB3aGF0IEkgaGF2ZSBtaXNzZWQuDQoNClBsZWFzZSBzZWUgbXkgcmVzcG9uc2UgdG8gdGhl
IHByZXZpb3VzIHBhdGNoLg0KDQoNCkp1ZXJnZW4NCg==
--------------0gah4xKFvsHE00D3flXrnkz1
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-----

--------------0gah4xKFvsHE00D3flXrnkz1--

--------------2vrbMGF8pPaZHLnA82JDRyos--

--------------LRC1NKAgjBDvH3dBaZRyJS4G
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/Ey8FAmgHaCYFAwAAAAAACgkQsN6d1ii/Ey88
2gf9G2X7seedpgkuVi3Kr8ramS2kAPeIhTmk5YzYNI/baO7kJni9Bz3A8CJrjqPBQos1/m+ZHUnL
HHqgoLhq+2kdhHVUY+nPYIPdebmYLTHvd3gC+R7swUzJf55bQGENKLO6WtuH5sksovruObmjap7C
sbHKsWYiAx51NvcRCMZPJAmT8N/+KqAAPfqutdEhiGIfuSkyH9cA34H3Dg/y2hLs4SMppXznwBe7
TXOOblqw8TxiQKwP05dQo56KdIc6ap06wnELQWlmjSZUSIkSyD4RvmANZE0jAxiFKQr00dtaGUxz
eaA239uDGL6mfOq/W/cBOw0vspmUeBL6fc4RZErgyw==
=mYH8
-----END PGP SIGNATURE-----

--------------LRC1NKAgjBDvH3dBaZRyJS4G--


From xen-devel-bounces@lists.xenproject.org Tue Apr 22 10:10:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 10:10:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.962413.1353614 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7AZn-0006bm-OI; Tue, 22 Apr 2025 10:10:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 962413.1353614; Tue, 22 Apr 2025 10:10:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7AZn-0006bF-Kh; Tue, 22 Apr 2025 10:10:03 +0000
Received: by outflank-mailman (input) for mailman id 962413;
 Tue, 22 Apr 2025 10:10: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=9r0M=XI=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u7AZm-00064Z-6o
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 10:10:02 +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 f1f49a17-1f61-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 12:09:58 +0200 (CEST)
Received: by mail-wr1-x433.google.com with SMTP id
 ffacd0b85a97d-39d83782ef6so4181246f8f.0
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 03:09:58 -0700 (PDT)
Received: from [192.168.86.29] ([83.104.178.215])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4406d5ccc97sm169821825e9.25.2025.04.22.03.09.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 22 Apr 2025 03:09:57 -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: f1f49a17-1f61-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745316597; x=1745921397; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=1LTdCQlie2f1sx5yNyLtBh71A/ooQFxi1kwFBLZZzic=;
        b=YbV0G1493+zlQhSBa/2fJO5dm53YcKDJKhCg/RbP/b7Hm5WjkodvFCBZ2jTaKe6f8/
         5RnuviW5qMbN4ThUn+3S41gHYF+1H3jQ6G+BSlVWCiOx06odnUHUJc+zzmtJP9YLe/Fj
         9auLkp/wUIiELN3hGIN8ZI5pzOBn4W0T8wEJM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745316597; x=1745921397;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=1LTdCQlie2f1sx5yNyLtBh71A/ooQFxi1kwFBLZZzic=;
        b=LgGj1F9jcVoHK4UjpjcYGgSEER3NPAKL4+dpfYwBFF9JFaYt4707s2NYEB+NTN8sv0
         kn4OXmyZJO+Dr7k3suH8XoL2pi/NeZLFr/mNi6IKcyLzOoWlr4kF6AsDWSu3qYM5qO91
         5OYDb1PqBndj9YB36CFfTcLSjbCDnPLSaJyu0rOc0H7GrrvgNGicVQAh/vA9tS56YYMF
         NyoWWAcrTub+Ce+DmhYVg3eACXEPMVuYTb0NjmF58m4en0rwV5WIC8XTk9fhFV/CEP5B
         mo41DgGAvJEJAOUXskDBKwleSgSeMqza49Iqb9CGKF03YDTfZirX2PmE4370z+odS4ni
         f9OA==
X-Gm-Message-State: AOJu0Yyfh9wnRsprs3eSI3Lx917mU5QZbrAqcFMsrX6yYp0nOURze5Xd
	hbrZ72PT4bkqh6yUiAUONrtGcv3S/QLe6IBkzs3QMhD8zorIC4pLsDRRogx1Yy4=
X-Gm-Gg: ASbGnctXmmCXF0BurtXi8O3WUNBXwwImTKU6xSn7ueWkx09eMQfk9a/+GKvz2EoUrr/
	iPqmxn7tLK4IMQG/NdWjfn6FyLvU5PZzKmY68bH/2ELBNgKI5HkDlotVaMm0+Bnni5RtbBgc07s
	SOy077d1Q9kTfWDP8DVgA6Q3L/8R3oGExrBv+1ItagZpMYuWLYh5ct5MPQaguuqSOoW7KeCxUnb
	YacJf7Sbcsk7t4Xmd4WW0VIyo9LRWzYWi7Tey7ti1K3M4sk0RDVnFxNMI4iQLFgI/4RdoJlxJPt
	bEdRFAgDZF7pwwiuO6XEGKhUjgQ75VJgdCQhYT4Xg8xCYEyLDwBIEw==
X-Google-Smtp-Source: AGHT+IGJE0m6+MjRWi1ZnFfCU5JAuGfQpzWnc448tKUMbLsvTIDKjnyjTOw378wiR6/ASkDsNFON0g==
X-Received: by 2002:a05:6000:43cc:20b0:39f:c05:c220 with SMTP id ffacd0b85a97d-39f0c05c2camr3332030f8f.22.1745316597621;
        Tue, 22 Apr 2025 03:09:57 -0700 (PDT)
Message-ID: <2657a0bb-7f89-435c-b743-a8d66d0a7c18@citrix.com>
Date: Tue, 22 Apr 2025 11:09:56 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/intel: workaround several MONITOR/MWAIT errata
To: Jan Beulich <jbeulich@suse.com>, Roger Pau Monne <roger.pau@citrix.com>
Cc: xen-devel@lists.xenproject.org
References: <20250417161913.14661-1-roger.pau@citrix.com>
 <463cd02d-febc-4878-90b5-9272f91b9033@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: <463cd02d-febc-4878-90b5-9272f91b9033@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 22/04/2025 9:26 am, Jan Beulich wrote:
> On 17.04.2025 18:19, Roger Pau Monne wrote:
>> @@ -380,6 +380,43 @@ static void probe_c3_errata(const struct cpuinfo_x86 *c)
>>      }
>>  }
>>  
>> +/*
>> + * APL30: One use of the MONITOR/MWAIT instruction pair is to allow a logical
>> + * processor to wait in a sleep state until a store to the armed address range
>> + * occurs. Due to this erratum, stores to the armed address range may not
>> + * trigger MWAIT to resume execution.
>> + *
>> + * ICX143: Under complex microarchitectural conditions, a monitor that is armed
>> + * with the MWAIT instruction may not be triggered, leading to a processor
>> + * hang.
>> + *
>> + * LNL030: Problem P-cores may not exit power state Core C6 on monitor hit.
> I didn't manage to spot all three spec updates; none of these have a ucode fix,
> hence permitting the workaround to be avoided?
>
> Since CPX is 3rd Gen Xeon Scalable just like ICX is, I'm surprised that one's
> unaffected. The most recent spec update there is a year old than ICX'es, so
> may simply be too old to include the erratum?

CPX being "3rd generation" is especially creative marketing.  It's
literally another stepping of SKX/CLX with some extra AVX512
instructions, so is an entire "tock" away from ICX.

> Sunny Cove is used by further Icelake models - they're known to be unaffected?

ICX143 is specific to the server design.  It doesn't affect the client
design.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Apr 22 10:41:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 10:41:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.962431.1353650 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7B3k-0002Nm-BJ; Tue, 22 Apr 2025 10:41:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 962431.1353650; Tue, 22 Apr 2025 10: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 1u7B3k-0002Nf-6T; Tue, 22 Apr 2025 10:41:00 +0000
Received: by outflank-mailman (input) for mailman id 962431;
 Tue, 22 Apr 2025 10:40:59 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Bndg=XI=cloud.com=frediano.ziglio@srs-se1.protection.inumbo.net>)
 id 1u7B3j-0002NZ-KH
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 10:40:59 +0000
Received: from mail-oi1-x230.google.com (mail-oi1-x230.google.com
 [2607:f8b0:4864:20::230])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 45c7069c-1f66-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 12:40:57 +0200 (CEST)
Received: by mail-oi1-x230.google.com with SMTP id
 5614622812f47-3feb3f54339so4355561b6e.1
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 03:40:57 -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: 45c7069c-1f66-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1745318456; x=1745923256; 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=XPksKxGDLIJspVPYxNnjXk8SSb1jQd5/N5NOjXAnpA0=;
        b=lflIb358bl2FJ11Kdy/L493z3wPnEpKcbupCZzMgxFWbfV0JmmsG6Eqn7eUdTf9G1P
         XAspN1HHlNYrcgyGpG7Fg5r+ebMw7neRd10I8mCE/aObla2UgKuACCVCEiuCnuCBYZvH
         A/6EABDzUhsF2ss80OaxmNlNaxz3eKu03WjtU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745318456; x=1745923256;
        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=XPksKxGDLIJspVPYxNnjXk8SSb1jQd5/N5NOjXAnpA0=;
        b=UCekx+CBBJh98zpyqqV6WPKAZWCjJfgFrnZUGimJ+yjQi+X1kWkBAc8qNOZl0oiB0h
         PzKcqSaQVATUGNpGjWGFAxAQZnFuVqahU110a3CEy+0pEfWKY7gwiE56jp5qCfr/u4d2
         MkSvWVDW5gG/Jd+VdwhDpbYMOLxVtO0br+8g1GTBB4yzNdJs2L6Aq7TAkJ6NvOzyyLEr
         NYSbK8lJr4uolfIZRaVsUWX8IA7JeXPjmE2bg8XBu6PdVs3PsNfA75oFGXQdCN/1oIO5
         k0HHEeyWS2TyGwoa0XFT36ck9ZGNuWtNrNmbTigmdJfakUVbVqoC8YQWOk+3i28BjXP1
         e64A==
X-Gm-Message-State: AOJu0YwWRsH5o/HiDH49WUHTBA56eyP/HZhVU5ZtgZ+0LK4oiMr55xJd
	h8p/D10Vew8SCk1ZqSNmIxz9TyTDiRMlIr8ZePjdFYriyGopPMNgYsE4vUwKwDw1fYKBwLQIMPg
	PYcqjllmQVaJj2bMtZEY15uTfCTzLoFdyUZFNMw==
X-Gm-Gg: ASbGncsEyZskoZhTcziY48ockVg76x1+wVbvOABF6q5NCuf9yIKWZaG4qf0C8RI8n6v
	+iEVbLbq1pHfgHHb0cFBlRIE1C4splm+ANUQndnweZlpoo8dtkV9nR0evJvGJPr7kKKj6O2u6f6
	9m8oqeZHoarAyvz19QE9XXeg==
X-Google-Smtp-Source: AGHT+IE3S5VjutP5NuuMApBuOsQhd6cjqo5nr5124K1eC827hqpVOojoPY6AkQgsfZDzJM/+OajdADFof+ZmoC2N0FY=
X-Received: by 2002:a05:6808:3845:b0:3f8:f8c6:5500 with SMTP id
 5614622812f47-401c0c5b1b5mr9769321b6e.34.1745318456005; Tue, 22 Apr 2025
 03:40:56 -0700 (PDT)
MIME-Version: 1.0
References: <20250417161913.14661-1-roger.pau@citrix.com>
In-Reply-To: <20250417161913.14661-1-roger.pau@citrix.com>
From: Frediano Ziglio <frediano.ziglio@cloud.com>
Date: Tue, 22 Apr 2025 11:40:44 +0100
X-Gm-Features: ATxdqUE86MCEVRalQ120jPFmsYQFrN7RoHPvNx2x1z0li8JGZwnLSVymWKljdW8
Message-ID: <CACHz=ZgnaJuHTOrhhNEDtctV8HP7X8GZDP9HMAy7TTDUk+dcmQ@mail.gmail.com>
Subject: Re: [PATCH] x86/intel: workaround several MONITOR/MWAIT errata
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 Thu, Apr 17, 2025 at 5:19=E2=80=AFPM Roger Pau Monne <roger.pau@citrix.c=
om> wrote:
>
> There are several errata on Intel regarding the usage of the MONITOR/MWAI=
T
> instructions, all having in common that stores to the monitored region
> might not wake up the CPU.
>
> Fix them by forcing the sending of an IPI for the affected models.
>
> The Ice Lake issue has been reproduced internally on XenServer hardware,
> and the fix does seem to prevent it.  The symptom was APs getting stuck i=
n
> the idle loop immediately after bring up, which in turn prevented the BSP
> from making progress.  This would happen before the watchdog was
> initialized, and hence the whole system would get stuck.
>
> Signed-off-by: Roger Pau Monn=C3=A9 <roger.pau@citrix.com>
> ---
> Apollo and Lunar Lake fixes have not been tested, due to lack of hardware=
.
> ---
>  xen/arch/x86/acpi/cpu_idle.c     |  6 +++++
>  xen/arch/x86/cpu/intel.c         | 41 +++++++++++++++++++++++++++++++-
>  xen/arch/x86/include/asm/mwait.h |  3 +++
>  3 files changed, 49 insertions(+), 1 deletion(-)
>
> diff --git a/xen/arch/x86/acpi/cpu_idle.c b/xen/arch/x86/acpi/cpu_idle.c
> index 420198406def..f8f11f3c31e4 100644
> --- a/xen/arch/x86/acpi/cpu_idle.c
> +++ b/xen/arch/x86/acpi/cpu_idle.c
> @@ -441,8 +441,14 @@ void cpuidle_wakeup_mwait(cpumask_t *mask)
>      cpumask_andnot(mask, mask, &target);
>  }
>
> +/* Force sending of a wakeup IPI regardless of mwait usage. */
> +bool force_mwait_ipi_wakeup __read_mostly;
> +
>  bool arch_skip_send_event_check(unsigned int cpu)
>  {
> +    if ( force_mwait_ipi_wakeup )
> +        return false;
> +
>      /*
>       * This relies on softirq_pending() and mwait_wakeup() to access dat=
a
>       * on the same cache line.
> diff --git a/xen/arch/x86/cpu/intel.c b/xen/arch/x86/cpu/intel.c
> index 6a680ba38dc9..9d7c6ea297a9 100644
> --- a/xen/arch/x86/cpu/intel.c
> +++ b/xen/arch/x86/cpu/intel.c
> @@ -8,6 +8,7 @@
>  #include <asm/intel-family.h>
>  #include <asm/processor.h>
>  #include <asm/msr.h>
> +#include <asm/mwait.h>
>  #include <asm/uaccess.h>
>  #include <asm/mpspec.h>
>  #include <asm/apic.h>
> @@ -368,7 +369,6 @@ static void probe_c3_errata(const struct cpuinfo_x86 =
*c)
>          INTEL_FAM6_MODEL(0x25),
>          { }
>      };
> -#undef INTEL_FAM6_MODEL
>
>      /* Serialized by the AP bringup code. */
>      if ( max_cstate > 1 && (c->apicid & (c->x86_num_siblings - 1)) &&
> @@ -380,6 +380,43 @@ static void probe_c3_errata(const struct cpuinfo_x86=
 *c)
>      }
>  }
>
> +/*
> + * APL30: One use of the MONITOR/MWAIT instruction pair is to allow a lo=
gical
> + * processor to wait in a sleep state until a store to the armed address=
 range
> + * occurs. Due to this erratum, stores to the armed address range may no=
t
> + * trigger MWAIT to resume execution.
> + *
> + * ICX143: Under complex microarchitectural conditions, a monitor that i=
s armed
> + * with the MWAIT instruction may not be triggered, leading to a process=
or
> + * hang.
> + *
> + * LNL030: Problem P-cores may not exit power state Core C6 on monitor h=
it.
> + *
> + * Force the sending of an IPI in those cases.
> + */
> +static void probe_mwait_errata(void)
> +{
> +    static const struct x86_cpu_id models[] =3D {
> +        /* Apollo Lake */
> +        INTEL_FAM6_MODEL(0x5C),
> +        /* Ice Lake */
> +        INTEL_FAM6_MODEL(0x6A),
> +        INTEL_FAM6_MODEL(0x6C),

Intel patch for Linux only adds model 0x6a, not 0x6c. Did we manage to
reproduce on 0x6c? Which patch is more correct? Surely we are on the
safer side.

> +        /* Lunar Lake */
> +        INTEL_FAM6_MODEL(0xBD),
> +        { }
> +    };
> +#undef INTEL_FAM6_MODEL
> +
> +    if ( boot_cpu_has(X86_FEATURE_MONITOR) && !force_mwait_ipi_wakeup &&
> +         x86_match_cpu(models) )
> +    {
> +        printk(XENLOG_WARNING
> +               "Forcing IPI MWAIT wakeup due to CPU erratum\n");
> +        force_mwait_ipi_wakeup =3D true;
> +    }
> +}
> +
>  /*
>   * P4 Xeon errata 037 workaround.
>   * Hardware prefetcher may cause stale data to be loaded into the cache.
> @@ -406,6 +443,8 @@ static void Intel_errata_workarounds(struct cpuinfo_x=
86 *c)
>                 __set_bit(X86_FEATURE_CLFLUSH_MONITOR, c->x86_capability)=
;
>
>         probe_c3_errata(c);
> +       if (c =3D=3D &boot_cpu_data)
> +               probe_mwait_errata();
>  }
>
>
> diff --git a/xen/arch/x86/include/asm/mwait.h b/xen/arch/x86/include/asm/=
mwait.h
> index 000a692f6d19..c52cd3f51011 100644
> --- a/xen/arch/x86/include/asm/mwait.h
> +++ b/xen/arch/x86/include/asm/mwait.h
> @@ -13,6 +13,9 @@
>
>  #define MWAIT_ECX_INTERRUPT_BREAK      0x1
>
> +/* Force sending of a wakeup IPI regardless of mwait usage. */
> +extern bool force_mwait_ipi_wakeup;
> +
>  void mwait_idle_with_hints(unsigned int eax, unsigned int ecx);
>  #ifdef CONFIG_INTEL
>  bool mwait_pc10_supported(void);

Frediano


From xen-devel-bounces@lists.xenproject.org Tue Apr 22 10:42:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 10:42:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.962442.1353659 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7B5Q-0003Rf-K9; Tue, 22 Apr 2025 10:42:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 962442.1353659; Tue, 22 Apr 2025 10:42: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 1u7B5Q-0003RY-Gx; Tue, 22 Apr 2025 10:42:44 +0000
Received: by outflank-mailman (input) for mailman id 962442;
 Tue, 22 Apr 2025 10:42: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=9r0M=XI=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u7B5P-0003RS-FK
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 10:42:43 +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 841ce7ba-1f66-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 12:42:41 +0200 (CEST)
Received: by mail-wr1-x42e.google.com with SMTP id
 ffacd0b85a97d-39ee5ac4321so5309721f8f.1
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 03:42:41 -0700 (PDT)
Received: from [192.168.86.29] ([83.104.178.215])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39efa4206ecsm15045034f8f.17.2025.04.22.03.42.39
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 22 Apr 2025 03:42: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: 841ce7ba-1f66-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745318561; x=1745923361; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=cEAcCITgCZlFb0FFI7Ce9M77/ndP4lQw/OVXiH0H6fU=;
        b=gqivNc0thpc/F+Kb28ueZkFKpwpQKBSx4r/UnElf99sW4JtKlngOrp5qSc06DtvIaT
         KgMZOg4qkFTTLHmKjhoJwS0swIiCHU7kBa+viVFClPZl01Zuu8YXVjpBDOmW1//cPgF9
         WV3kX/HjrqPBm0Bujw3eJ+C9Gi++XpLomWkHo=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745318561; x=1745923361;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=cEAcCITgCZlFb0FFI7Ce9M77/ndP4lQw/OVXiH0H6fU=;
        b=bFciUq4SemLdClBN8fB50R+KHCp77DjDGTEPnZ4c8M95Ig0C8pMGXNqBjhsrZiNXQD
         Z3aDdAV1Jx7fg84r0y4RSJx4FWIvgWLRalWupWjnz76UXUGmxWlw957562tq/vRblb7T
         LneOhx+whyXIYQGfzx79YINb4HvxnMAgk6ayy3NCXtDaD4ufC+qcBSDrVNt1xJgfrgQb
         lPnthfF6Rig/b3MJAwkb8wNGFqwC+/8otQ5dFPyRxrGKtin2oWqZOcs06znu9dgSdGaB
         PvsHgOZosfwByyshAj/zdWVzmX3eSnF4e/n5tQRmVpBgqA5qgkvr+X1hwoeR6nWpKTv6
         UOMw==
X-Forwarded-Encrypted: i=1; AJvYcCXCsFz6XpIsUbypdQoE+r0Or08rq2B8YlhYDkFwbheIcx2fDPquss1jjTPveL9uZy2k6XfDphEmZGY=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy7f3wbHB3LHFyPQVSeZl9UQfYefd1ZEee1lEX8loZDUR9xacp5
	EfuJDAGlSOSRBYBzoGScD9OcyfkzxdQRDnIzfaQYv/NkS15wlBOBU8opmb4Xdd4=
X-Gm-Gg: ASbGncs4gxOrah8yiRZ97dtbNY9K9RsvreoeS+iLTG9mEcSYuD/0w13ak273EjoGojs
	QvhTNPVKuL3buubmmvhigtmK2EsbuCvo99cLH1K3SeX0LYJBYdNmqxPP7yCK3kkbLbMYUNJIz2V
	EVgckv1ZZTu2/CIxxkGS1lfZLGPq0f67BBPFsyHekszhbvoYg1ZyvtTJRVPcHSGz/izNA8qXz/b
	ipn8zEwX7KyK98JrC5AM2AehYTEXpZD8jmUw0WPnIb5pf0f8prQNRFixmmY/OLOQDQC7EtKtWOU
	BBdnd72n2K55OqrbbXk+I29N1FvZIYo0iL9CJiaRkgOTW9HX2XIJNxQDtulWMYWV
X-Google-Smtp-Source: AGHT+IFshSVxxnT414btGk5nO1lpSMLo3orcg4h9qSN03ojdxExlma+TWutGJde4EKrivzLIx4BMBA==
X-Received: by 2002:a05:6000:4029:b0:391:38a5:efa with SMTP id ffacd0b85a97d-39efba46359mr11917408f8f.23.1745318560718;
        Tue, 22 Apr 2025 03:42:40 -0700 (PDT)
Message-ID: <04d46a38-e7bb-4059-87b4-3f262575a8e5@citrix.com>
Date: Tue, 22 Apr 2025 11:42:39 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/AMD: Convert rdmsr_amd_safe() to use asm goto()
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: <20250407153510.1863243-1-andrew.cooper3@citrix.com>
 <1df6b4c9-7309-49cd-8046-019d94139c57@suse.com>
 <06c64f49-a70e-48c3-8480-f2ed9ac4a001@citrix.com>
 <7794150f-4a43-4ec8-bd9e-ee439cbf722c@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: <7794150f-4a43-4ec8-bd9e-ee439cbf722c@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 22/04/2025 10:07 am, Jan Beulich wrote:
> On 17.04.2025 19:24, Andrew Cooper wrote:
>> On 07/04/2025 4:48 pm, Jan Beulich wrote:
>>> On 07.04.2025 17:35, Andrew Cooper wrote:
>>>> Unlike the WRMSR side, we can't use asm goto() unconditionally, because our
>>>> toolchain baseline doesn't support asm goto with outputs.
>>> Is there actually a benefit we gain from now needing to maintain two different
>>> pieces of logic fulfilling the same purpose?
>> IMO, yes.  Besides getting rid of .fixup/unlikely, the code generation
>> is better-enough to warrant it, including getting the common path
>> correct (the referenced labels are all considered cold).
>>
>> e.g. for this change, we go from:
>>
>>     xor    %esi,%esi
>>     rdmsr
>>     test   %esi,%esi
>>     jne    <init_amd+0x540>
>>     and    $0xfffffffe,%edx
>>     wrmsr
>>
>> (note the forward branch) to simply:
>>
>>     rdmsr
>>     and    $0xfffffffe,%edx
>>     wrmsr
>>
>> because the exception table redirect is directly into init_amd.cold, and
>> we don't have to hold `int err` in a register across the asm() block.
>>
>> This is an intentionally simple example to get the infrastructure in,
>> but vmread() will definitely benefit.
>>
>>>> Also, there's a different errata workaround we'll need if we want to use asm
>>>> goto() with "+" constraints:
>>>>
>>>> config CC_HAS_ASM_GOTO_TIED_OUTPUT
>>>> 	depends on CC_HAS_ASM_GOTO_OUTPUT
>>>> 	# Detect buggy gcc and clang, fixed in gcc-11 clang-14.
>>>> 	def_bool $(success,echo 'int foo(int *x) { asm goto (".long (%l[bar]) - .": "+m"(*x) ::: bar); return *x; bar: return 0; }' | $CC -x c - -c -o /dev/null)
>>>>
>>>> I'm tempted to put it in straight away, lest we forget about it.
>>> Perhaps best if we really want to go this route. Yet then - why "TIED"? Isn't
>>> "tied" the term they use when referring to an earlier operand by using a
>>> digit (or the operand's name in square brackets)?
>> This is straight from Linux.  I've not looked at the issue in detail.
> So what I see is that Sean in Linux commit 1aa0e8b144b6 uses this term also
> in the description. I'm unconvinced it's correct, though. Gcc doc doesn't
> call the "+" modifier anything special, and it calls the numeric constraints
> (for which "+" can be a shorthand in certain cases) "matching constraint".
>
> We can of course sort the naming in the eventual patch pulling in that
> behavior, yet I'd like to suggest already now that we don't blindly follow
> Linux'es naming (unless the choice can be backed by some doc reference).

In the meantime, I found
https://clang.llvm.org/docs/LanguageExtensions.html#asm-goto-with-output-constraints

"When using tied-outputs (i.e. outputs that are inputs and outputs, not
just outputs) with the +r constraint"

So Clang does name this case specifically as tied outputs.

>
>>>> --- a/xen/Kconfig
>>>> +++ b/xen/Kconfig
>>>> @@ -41,6 +41,20 @@ config CC_SPLIT_SECTIONS
>>>>  config CC_HAS_UBSAN
>>>>  	def_bool $(cc-option,-fsanitize=undefined)
>>>>  
>>>> +# Fixed in GCC 14, 13.3, 12.4 and 11.5
>>>> +# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113921
>>>> +config GCC_ASM_GOTO_OUTPUT_BROKEN
>>>> +	bool
>>>> +	depends on CC_IS_GCC
>>>> +	default y if GCC_VERSION < 110500
>>>> +	default y if GCC_VERSION >= 120000 && GCC_VERSION < 120400
>>>> +	default y if GCC_VERSION >= 130000 && GCC_VERSION < 130300
>>> Unlike for pre-release versions (x.0.y) I view this as problematic. Distros
>>> are likely to have backported the fix before the minor releases took place.
>>> Or they may have backported without ever meaning to follow later minor
>>> releases. We'd needlessly exclude them here. Imo ...
>>>
>>>> +config CC_HAS_ASM_GOTO_OUTPUT
>>>> +	def_bool y
>>>> +	depends on !GCC_ASM_GOTO_OUTPUT_BROKEN
>>>> +	depends on $(success,echo 'int foo(int x) { asm goto ("": "=r"(x) ::: bar); return x; bar: return 0; }' | $(CC) -x c - -c -o /dev/null)
>>> ... the only option is to actually probe for support as well as the (non-)
>>> buggy-ness.
>> There is no sensible way to probe.  It compiles fine, but (AIUI) fails
>> to spill registers correctly on some paths, which also makes it very
>> sensitive to other optimisations.
> Hmm, okay, Linux commit f2f6a8e88717 kind of suggests that there might have
> been more issues in gcc. Really I can't help the impression that the issue
> still wasn't fully understood, and hence may re-surface in another context.
> In which case I guess I agree the above is the best we can do for the time
> being, until we learn of further breakage:
> Reviewed-by: Jan Beulich <jbeulich@suse.com>

Thanks.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Apr 22 10:51:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 10:51:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.962456.1353668 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7BDk-0006Qz-CQ; Tue, 22 Apr 2025 10:51:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 962456.1353668; Tue, 22 Apr 2025 10:51: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 1u7BDk-0006Qs-9h; Tue, 22 Apr 2025 10:51:20 +0000
Received: by outflank-mailman (input) for mailman id 962456;
 Tue, 22 Apr 2025 10: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=9r0M=XI=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u7BDi-0006Qj-LQ
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 10:51:18 +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 b775fe91-1f67-11f0-9eb0-5ba50f476ded;
 Tue, 22 Apr 2025 12:51:17 +0200 (CEST)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-43cf848528aso37206405e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 03:51:17 -0700 (PDT)
Received: from [192.168.86.29] ([83.104.178.215])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4406d6db1b3sm170934415e9.29.2025.04.22.03.51.15
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 22 Apr 2025 03:51: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: b775fe91-1f67-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745319076; x=1745923876; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=2B2Y4gj/u3jpgelTu1PasFoVXd/QwLST1YxNtwV/iOw=;
        b=e2xKMt9P7dQ2+oIzUV7MeZn9pashPEHasgDH59hkESfBHgtKRCNRyjgnCwMpp5a5qU
         c6NXyjjrqjm6vW2GdMHf9wi0DLOQe02Pke6Wmu/aNc/I3ji7YjQhcaI8/AmnnXq4SY5D
         ivx/S5PU8xdU6XMyfL+dVeULP7u3Ev4ANE15I=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745319076; x=1745923876;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=2B2Y4gj/u3jpgelTu1PasFoVXd/QwLST1YxNtwV/iOw=;
        b=OJEy4myergJuE2Y5nCDOVKbjjov9hSAFlj6kHdrTfpjlXO0ReubZw3x935Cy/7N6Dt
         0ECVvqIUtN0jVUMpFB1GFvBeiCqcfj4JzYjTaC5VfBIWeUjZvn+KX/kxowyZiuWZJOmw
         7tjih9l8WUu+f6ZLStYmtzzzKFxKGRF8q7vbPyKzxfmoohwhD0R6l692SdiU+5b8gyyP
         lXG+Ky0Hm9cqEgX/cTpV7tBZ25Td4BnhhWR+OR8XDNAfpbPBGaIoLI54MAKhjn5LSUAr
         XLO0Vx11dIb8XMBF3VrbEAe8OyKx/cftPZpSgES6OBWY9NjispXUthgTbh8Zlq5MjCvD
         U8GA==
X-Gm-Message-State: AOJu0Yx5xlSp9+nWbuRNsE8tpmC/9qPvAAw+fIFtrv2KzLehGZ63rJZd
	jxgzLzqAtzKKj2iY7bvCbl8K8xBTxadGZvwvv8g22Ko/VYzEBM1WYW5qCt2Vz+g=
X-Gm-Gg: ASbGncs1yK9vXOsNqDi/STe7RDr39dKHz3HjYXiFcNI0RDhmZC2iqJerC8jrjq4Co7G
	pP3WJ5eg6kA6gC3Y5NSfPuh15wbTihQBpHmZwRaU7deYnZldSg0qwQo50/QXxI4dSVk15INy2Zr
	MgV60FEs1FQGYqpq0ykbEALo/aqVS3C3fhIJH2+AOBjtM/nqwNttOrklJFdTD95nV7dBd7+5iK9
	Ext/ymEUWuteKGfrKEuuhpAjKuG59MhmIqZBgOdTVF5NhkiuASN9EcDMeXFI1fMe93Rt9p4GWIN
	KUqzNfhprGMaOWFjqqJjudEJ9niBC2S+MZX/934X8LlcVdNLVwQhBEBMC8GDEfwR
X-Google-Smtp-Source: AGHT+IF05Io9/GKqK6anDGsES+fG6Y7Zmn66RSp0mBeQ0E3FLKLqWnyMRmSLaOQvzcBQZbp1HxXzSA==
X-Received: by 2002:a05:600c:1e10:b0:43d:300f:fa1d with SMTP id 5b1f17b1804b1-4406ac62b75mr152819005e9.31.1745319076267;
        Tue, 22 Apr 2025 03:51:16 -0700 (PDT)
Message-ID: <3468d309-5165-4b9a-a249-1a3e35396224@citrix.com>
Date: Tue, 22 Apr 2025 11:51:14 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/intel: workaround several MONITOR/MWAIT errata
To: Frediano Ziglio <frediano.ziglio@cloud.com>,
 Roger Pau Monne <roger.pau@citrix.com>
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>
References: <20250417161913.14661-1-roger.pau@citrix.com>
 <CACHz=ZgnaJuHTOrhhNEDtctV8HP7X8GZDP9HMAy7TTDUk+dcmQ@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=ZgnaJuHTOrhhNEDtctV8HP7X8GZDP9HMAy7TTDUk+dcmQ@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 22/04/2025 11:40 am, Frediano Ziglio wrote:
> On Thu, Apr 17, 2025 at 5:19 PM Roger Pau Monne <roger.pau@citrix.com> wrote:
>> diff --git a/xen/arch/x86/cpu/intel.c b/xen/arch/x86/cpu/intel.c
>> index 6a680ba38dc9..9d7c6ea297a9 100644
>> --- a/xen/arch/x86/cpu/intel.c
>> +++ b/xen/arch/x86/cpu/intel.c
>> @@ -380,6 +380,43 @@ static void probe_c3_errata(const struct cpuinfo_x86 *c)
>>      }
>>  }
>>
>> +/*
>> + * APL30: One use of the MONITOR/MWAIT instruction pair is to allow a logical
>> + * processor to wait in a sleep state until a store to the armed address range
>> + * occurs. Due to this erratum, stores to the armed address range may not
>> + * trigger MWAIT to resume execution.
>> + *
>> + * ICX143: Under complex microarchitectural conditions, a monitor that is armed
>> + * with the MWAIT instruction may not be triggered, leading to a processor
>> + * hang.
>> + *
>> + * LNL030: Problem P-cores may not exit power state Core C6 on monitor hit.
>> + *
>> + * Force the sending of an IPI in those cases.
>> + */
>> +static void probe_mwait_errata(void)
>> +{
>> +    static const struct x86_cpu_id models[] = {
>> +        /* Apollo Lake */
>> +        INTEL_FAM6_MODEL(0x5C),
>> +        /* Ice Lake */
>> +        INTEL_FAM6_MODEL(0x6A),
>> +        INTEL_FAM6_MODEL(0x6C),
> Intel patch for Linux only adds model 0x6a, not 0x6c. Did we manage to
> reproduce on 0x6c? Which patch is more correct? Surely we are on the
> safer side.

It only affects 0x6a, but I can't go into why.  Now that Linux is
picking up this workaround, we should follow Dave Hansen managed to get
out of Intel's internal bugtracker on the matter.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Apr 22 11:12:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 11:12:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.962472.1353679 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7BYK-0005M0-4U; Tue, 22 Apr 2025 11:12:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 962472.1353679; Tue, 22 Apr 2025 11: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 1u7BYK-0005Lt-1F; Tue, 22 Apr 2025 11:12:36 +0000
Received: by outflank-mailman (input) for mailman id 962472;
 Tue, 22 Apr 2025 11:12: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=mE8E=XI=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1u7BYI-0005Ke-8G
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 11:12:34 +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 af95950a-1f6a-11f0-9eb0-5ba50f476ded;
 Tue, 22 Apr 2025 13:12:32 +0200 (CEST)
Received: by mail-ed1-x52b.google.com with SMTP id
 4fb4d7f45d1cf-5f62ef3c383so6623991a12.2
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 04:12:32 -0700 (PDT)
Received: from ?IPV6:2003:e5:873d:1a00:8e99:ce06:aa4a:2e7b?
 (p200300e5873d1a008e99ce06aa4a2e7b.dip0.t-ipconnect.de.
 [2003:e5:873d:1a00:8e99:ce06:aa4a:2e7b])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5f6255955desm5883244a12.42.2025.04.22.04.12.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 22 Apr 2025 04:12:31 -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: af95950a-1f6a-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745320352; x=1745925152; 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=HbAdebwwSkDRp8Zgf5aDR6pizpHXoZHnETme9N2Yg1k=;
        b=ew5rQo1HTZmbfpITaEFf71k9J1eizukJzjQKlUV7zo5ArToIr3wQAnAQgdYwotyWZp
         aCBVJlpQftuGSq5FKFuXMBcqAvbuLzYScStvQRmj2pSBFAsqPgBZOTYuAUTitHSESWV7
         6xmWe89R0S9f/MMhuLSlFDhCc8w0aM1BHvAgtL5TD/omAxkheto6s/qbd2CF3ZZC5tjo
         AjZf5gQIAGHNBnwV/2MFpqh1TZ+RJsLTYiUorUu1/AnVILYtRx/n5/Lk3VuUguvTaskg
         7IZpQ4YgVVpgrBZtQSQyiNxySra0MPAaJ32nyvqBxzE8scdj50UtO/8XrDDPGhYq2MJK
         V/yw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745320352; x=1745925152;
        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=HbAdebwwSkDRp8Zgf5aDR6pizpHXoZHnETme9N2Yg1k=;
        b=L0xdpjOthH9bRniDHpNtmL8d50ClaoWWx8aVnG81tYfyPrIGm/+4Xa2savBqWXtGw+
         tuLWzCiUYm9WKpmxZK7iHIrczOjZuFv0W/uP6DdUHGDYRwv2shQOlEqKevMQ+xNbn9Jl
         9Acq1HbpNTBHuBPaVxX+WqluOqlBAsU+ljmWfi0DwbA7hZbEb4WL97cI6JYSXfG9ss95
         +Y/falwKtCWFoDx+592+djzPqX6eIz+aczt3bZMXT3fjzgT5CBfrUcnfFhorDX7Ha/zS
         Y6/agl7WOHwLtsmD+mBzJNRgSUE6ruZJjqHYZ+O41CWRHmEUygAWGlLX3Gz27YWdyMV/
         qiKA==
X-Forwarded-Encrypted: i=1; AJvYcCUxLrPRqOlUBslR0CLDjoAc2o8fuobNzxtfIkGeM4jyHhSibwB8M1iEIgyJs3jo/EEtONI2owC53PQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyoaWHOCJDDz5dcKg30KJoRgQSJfSRdmAXUD/KGIIzt1wvnqEuk
	hpX9y+P/5JYKhm84s6xqH7MmsqENty0e2+Xxwk3MUd/nJhWHFUStiprJnmIZfYw=
X-Gm-Gg: ASbGncsByVJrh4zyNqx+uFlvRNA9WYdz8Sfdee3IQC+avtV/iEQU2OIlu6MrYoXfdbO
	BkAQDCrBedwB+eUDRfjhK4Uw5ypnx5O2sLbr/clLiZRppnvuZqcaab4nTrg7YRhU5Vbu0QRUHIP
	F9c7FZK3x+hSO9hnw950EL47qt4TRWc5ddcmxvyRF3tU54QQVVU9hJpwSpD6g0JKH6SduS8EWfJ
	0SPmXHpo9YFXrfWkXnstSLxb0VnIOtLWF5qQDQcrZUAZ0R0NWiv3Ed1ikW0OmU5L/WbsKg6qhqM
	N/osxEqtATLyJ+C/rxXUiY63jresmmUQhkOaAkLLsDQGdgbXZDBMdk59aVmch7AJthiL4Y6xBxV
	GvYyrlfB8w5czucKHmI3+TNTANwf8FHJ4Z+mopK0TfMh5XsRyxcg9mPdVoNJO36spCA==
X-Google-Smtp-Source: AGHT+IF9m95WiXUpBye08Dscg87Ue04kFj4L7cyfEtlbfKxo8dSfsIDCiMOWksv81FO3UDg6s2ditQ==
X-Received: by 2002:a05:6402:40cf:b0:5ed:c6aa:8c68 with SMTP id 4fb4d7f45d1cf-5f62855457bmr12465252a12.5.1745320351517;
        Tue, 22 Apr 2025 04:12:31 -0700 (PDT)
Message-ID: <080351cb-6c3d-4540-953d-6205f1ff0745@suse.com>
Date: Tue, 22 Apr 2025 13:12:29 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH v2 22/34] x86/msr: Utilize the alternatives mechanism
 to read MSR
To: "Xin Li (Intel)" <xin@zytor.com>, linux-kernel@vger.kernel.org,
 kvm@vger.kernel.org, linux-perf-users@vger.kernel.org,
 linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
 linux-pm@vger.kernel.org, linux-edac@vger.kernel.org,
 xen-devel@lists.xenproject.org, linux-acpi@vger.kernel.org,
 linux-hwmon@vger.kernel.org, netdev@vger.kernel.org,
 platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
 dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com, acme@kernel.org,
 andrew.cooper3@citrix.com, peterz@infradead.org, namhyung@kernel.org,
 mark.rutland@arm.com, alexander.shishkin@linux.intel.com, jolsa@kernel.org,
 irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
 wei.liu@kernel.org, ajay.kaher@broadcom.com,
 bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
 pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
 luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
 haiyangz@microsoft.com, decui@microsoft.com
References: <20250422082216.1954310-1-xin@zytor.com>
 <20250422082216.1954310-23-xin@zytor.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: <20250422082216.1954310-23-xin@zytor.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------YQuihR0OR54PElblEk79lEg9"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------YQuihR0OR54PElblEk79lEg9
Content-Type: multipart/mixed; boundary="------------WJCFhpTJKlCw7fKTGzqt7dma";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: "Xin Li (Intel)" <xin@zytor.com>, linux-kernel@vger.kernel.org,
 kvm@vger.kernel.org, linux-perf-users@vger.kernel.org,
 linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
 linux-pm@vger.kernel.org, linux-edac@vger.kernel.org,
 xen-devel@lists.xenproject.org, linux-acpi@vger.kernel.org,
 linux-hwmon@vger.kernel.org, netdev@vger.kernel.org,
 platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
 dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com, acme@kernel.org,
 andrew.cooper3@citrix.com, peterz@infradead.org, namhyung@kernel.org,
 mark.rutland@arm.com, alexander.shishkin@linux.intel.com, jolsa@kernel.org,
 irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
 wei.liu@kernel.org, ajay.kaher@broadcom.com,
 bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
 pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
 luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
 haiyangz@microsoft.com, decui@microsoft.com
Message-ID: <080351cb-6c3d-4540-953d-6205f1ff0745@suse.com>
Subject: Re: [RFC PATCH v2 22/34] x86/msr: Utilize the alternatives mechanism
 to read MSR
References: <20250422082216.1954310-1-xin@zytor.com>
 <20250422082216.1954310-23-xin@zytor.com>
In-Reply-To: <20250422082216.1954310-23-xin@zytor.com>

--------------WJCFhpTJKlCw7fKTGzqt7dma
Content-Type: multipart/mixed; boundary="------------7CQNfatosOVDsfChQ7Z2L9fT"

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

T24gMjIuMDQuMjUgMTA6MjIsIFhpbiBMaSAoSW50ZWwpIHdyb3RlOg0KPiBUbyBlbGltaW5h
dGUgdGhlIGluZGlyZWN0IGNhbGwgb3ZlcmhlYWQgaW50cm9kdWNlZCBieSB0aGUgcHZfb3Bz
IEFQSSwNCj4gdXRpbGl6ZSB0aGUgYWx0ZXJuYXRpdmVzIG1lY2hhbmlzbSB0byByZWFkIE1T
UjoNCj4gDQo+ICAgICAgMSkgV2hlbiBidWlsdCB3aXRoICFDT05GSUdfWEVOX1BWLCBYODZf
RkVBVFVSRV9YRU5QViBiZWNvbWVzIGENCj4gICAgICAgICBkaXNhYmxlZCBmZWF0dXJlLCBw
cmV2ZW50aW5nIHRoZSBYZW4gY29kZSBmcm9tIGJlaW5nIGJ1aWx0DQo+ICAgICAgICAgYW5k
IGVuc3VyaW5nIHRoZSBuYXRpdmUgY29kZSBpcyBleGVjdXRlZCB1bmNvbmRpdGlvbmFsbHku
DQo+IA0KPiAgICAgIDIpIFdoZW4gYnVpbHQgd2l0aCBDT05GSUdfWEVOX1BWOg0KPiANCj4g
ICAgICAgICAyLjEpIElmIG5vdCBydW5uaW5nIG9uIHRoZSBYZW4gaHlwZXJ2aXNvciAoIVg4
Nl9GRUFUVVJFX1hFTlBWKSwNCj4gICAgICAgICAgICAgIHRoZSBrZXJuZWwgcnVudGltZSBi
aW5hcnkgaXMgcGF0Y2hlZCB0byB1bmNvbmRpdGlvbmFsbHkNCj4gICAgICAgICAgICAgIGp1
bXAgdG8gdGhlIG5hdGl2ZSBNU1IgcmVhZCBjb2RlLg0KPiANCj4gICAgICAgICAyLjIpIElm
IHJ1bm5pbmcgb24gdGhlIFhlbiBoeXBlcnZpc29yIChYODZfRkVBVFVSRV9YRU5QViksIHRo
ZQ0KPiAgICAgICAgICAgICAga2VybmVsIHJ1bnRpbWUgYmluYXJ5IGlzIHBhdGNoZWQgdG8g
dW5jb25kaXRpb25hbGx5IGp1bXANCj4gICAgICAgICAgICAgIHRvIHRoZSBYZW4gTVNSIHJl
YWQgY29kZS4NCj4gDQo+IFRoZSBhbHRlcm5hdGl2ZXMgbWVjaGFuaXNtIGlzIGFsc28gdXNl
ZCB0byBjaG9vc2UgdGhlIG5ldyBpbW1lZGlhdGUNCj4gZm9ybSBNU1IgcmVhZCBpbnN0cnVj
dGlvbiB3aGVuIGl0J3MgYXZhaWxhYmxlLg0KPiANCj4gQ29uc2VxdWVudGx5LCByZW1vdmUg
dGhlIHB2X29wcyBNU1IgcmVhZCBBUElzIGFuZCB0aGUgWGVuIGNhbGxiYWNrcy4NCj4gDQo+
IFN1Z2dlc3RlZC1ieTogSC4gUGV0ZXIgQW52aW4gKEludGVsKSA8aHBhQHp5dG9yLmNvbT4N
Cj4gU2lnbmVkLW9mZi1ieTogWGluIExpIChJbnRlbCkgPHhpbkB6eXRvci5jb20+DQo+IC0t
LQ0KPiAgIGFyY2gveDg2L2luY2x1ZGUvYXNtL21zci5oICAgICAgICAgICAgfCAyNzcgKysr
KysrKysrKysrKysrKysrKy0tLS0tLS0NCj4gICBhcmNoL3g4Ni9pbmNsdWRlL2FzbS9wYXJh
dmlydC5oICAgICAgIHwgIDQwIC0tLS0NCj4gICBhcmNoL3g4Ni9pbmNsdWRlL2FzbS9wYXJh
dmlydF90eXBlcy5oIHwgICA5IC0NCj4gICBhcmNoL3g4Ni9rZXJuZWwvcGFyYXZpcnQuYyAg
ICAgICAgICAgIHwgICAyIC0NCj4gICBhcmNoL3g4Ni94ZW4vZW5saWdodGVuX3B2LmMgICAg
ICAgICAgIHwgIDQ4ICsrLS0tDQo+ICAgYXJjaC94ODYveGVuL3hlbi1hc20uUyAgICAgICAg
ICAgICAgICB8ICA0OSArKysrKw0KPiAgIGFyY2gveDg2L3hlbi94ZW4tb3BzLmggICAgICAg
ICAgICAgICAgfCAgIDcgKw0KPiAgIDcgZmlsZXMgY2hhbmdlZCwgMjc5IGluc2VydGlvbnMo
KyksIDE1MyBkZWxldGlvbnMoLSkNCj4gDQo+IGRpZmYgLS1naXQgYS9hcmNoL3g4Ni9pbmNs
dWRlL2FzbS9tc3IuaCBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL21zci5oDQo+IGluZGV4IGJk
M2JkYjNjM2QyMy4uNTI3MWNiMDAyYjIzIDEwMDY0NA0KPiAtLS0gYS9hcmNoL3g4Ni9pbmNs
dWRlL2FzbS9tc3IuaA0KPiArKysgYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9tc3IuaA0KPiBA
QCAtNzUsNiArNzUsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgZG9fdHJhY2VfcmRwbWModTMy
IG1zciwgdTY0IHZhbCwgaW50IGZhaWxlZCkge30NCj4gICAjZW5kaWYNCj4gICANCj4gICAj
aWZkZWYgQ09ORklHX1hFTl9QVg0KPiArZXh0ZXJuIHZvaWQgYXNtX3hlbl9yZWFkX21zcih2
b2lkKTsNCj4gICBleHRlcm4gdm9pZCBhc21feGVuX3dyaXRlX21zcih2b2lkKTsNCj4gICBl
eHRlcm4gdTY0IHhlbl9yZWFkX3BtYyhpbnQgY291bnRlcik7DQo+ICAgI2VuZGlmDQo+IEBA
IC04OCw2ICs4OSw4IEBAIGV4dGVybiB1NjQgeGVuX3JlYWRfcG1jKGludCBjb3VudGVyKTsN
Cj4gICANCj4gICAvKiBUaGUgR05VIEFzc2VtYmxlciAoR2FzKSB3aXRoIEJpbnV0aWxzIDIu
NDEgYWRkcyB0aGUgLmluc24gZGlyZWN0aXZlIHN1cHBvcnQgKi8NCj4gICAjaWYgZGVmaW5l
ZChDT05GSUdfQVNfSVNfR05VKSAmJiBDT05GSUdfQVNfVkVSU0lPTiA+PSAyNDEwMA0KPiAr
I2RlZmluZSBBU01fUkRNU1JfSU1NCQkJXA0KPiArCSIgLmluc24gVkVYLjEyOC5GMi5NNy5X
MCAweGY2IC8wLCAlW21zcl0lezp1MzJ9LCAlW3ZhbF1cblx0Ig0KPiAgICNkZWZpbmUgQVNN
X1dSTVNSTlNfSU1NCQkJXA0KPiAgIAkiIC5pbnNuIFZFWC4xMjguRjMuTTcuVzAgMHhmNiAv
MCwgJVt2YWxdLCAlW21zcl0lezp1MzJ9XG5cdCINCj4gICAjZWxzZQ0KPiBAQCAtOTcsMTAg
KzEwMCwxNyBAQCBleHRlcm4gdTY0IHhlbl9yZWFkX3BtYyhpbnQgY291bnRlcik7DQo+ICAg
ICogVGhlIHJlZ2lzdGVyIG9wZXJhbmQgaXMgZW5jb2RlZCBhcyAlcmF4IGJlY2F1c2UgYWxs
IHVzZXMgb2YgdGhlIGltbWVkaWF0ZQ0KPiAgICAqIGZvcm0gTVNSIGFjY2VzcyBpbnN0cnVj
dGlvbnMgcmVmZXJlbmNlICVyYXggYXMgdGhlIHJlZ2lzdGVyIG9wZXJhbmQuDQo+ICAgICov
DQo+ICsjZGVmaW5lIEFTTV9SRE1TUl9JTU0JCQlcDQo+ICsJIiAuYnl0ZSAweGM0LDB4ZTcs
MHg3YiwweGY2LDB4YzA7IC5sb25nICVjW21zcl0iDQo+ICAgI2RlZmluZSBBU01fV1JNU1JO
U19JTU0JCQlcDQo+ICAgCSIgLmJ5dGUgMHhjNCwweGU3LDB4N2EsMHhmNiwweGMwOyAubG9u
ZyAlY1ttc3JdIg0KPiAgICNlbmRpZg0KPiAgIA0KPiArI2RlZmluZSBSRE1TUl9BTkRfU0FW
RV9SRVNVTFQJCVwNCj4gKwkicmRtc3Jcblx0IgkJCVwNCj4gKwkic2hsICQweDIwLCAlJXJk
eFxuXHQiCQlcDQo+ICsJIm9yICUlcmR4LCAlJXJheFxuXHQiDQo+ICsNCj4gICAjZGVmaW5l
IFBSRVBBUkVfUkRYX0ZPUl9XUk1TUgkJXA0KPiAgIAkibW92ICUlcmF4LCAlJXJkeFxuXHQi
CQlcDQo+ICAgCSJzaHIgJDB4MjAsICUlcmR4XG5cdCINCj4gQEAgLTEyNywzNSArMTM3LDEz
NSBAQCBzdGF0aWMgX19hbHdheXNfaW5saW5lIGJvb2wgaXNfbXNyX2ltbV9pbnNuKHZvaWQg
KmlwKQ0KPiAgICNlbmRpZg0KPiAgIH0NCj4gICANCj4gLXN0YXRpYyBfX2Fsd2F5c19pbmxp
bmUgdTY0IF9fcmRtc3IodTMyIG1zcikNCj4gKy8qDQo+ICsgKiBUaGVyZSBhcmUgdHdvIHNl
dHMgb2YgQVBJcyBmb3IgTVNSIGFjY2Vzc2VzOiBuYXRpdmUgQVBJcyBhbmQgZ2VuZXJpYyBB
UElzLg0KPiArICogTmF0aXZlIE1TUiBBUElzIGV4ZWN1dGUgTVNSIGluc3RydWN0aW9ucyBk
aXJlY3RseSwgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIHRoZQ0KPiArICogQ1BVIGlzIHBhcmF2
aXJ0dWFsaXplZCBvciBuYXRpdmUuICBHZW5lcmljIE1TUiBBUElzIGRldGVybWluZSB0aGUg
YXBwcm9wcmlhdGUNCj4gKyAqIE1TUiBhY2Nlc3MgbWV0aG9kIGF0IHJ1bnRpbWUsIGFsbG93
aW5nIHRoZW0gdG8gYmUgdXNlZCBnZW5lcmljYWxseSBvbiBib3RoDQo+ICsgKiBwYXJhdmly
dHVhbGl6ZWQgYW5kIG5hdGl2ZSBDUFVzLg0KPiArICoNCj4gKyAqIFdoZW4gdGhlIGNvbXBp
bGVyIGNhbiBkZXRlcm1pbmUgdGhlIE1TUiBudW1iZXIgYXQgY29tcGlsZSB0aW1lLCB0aGUg
QVBJcw0KPiArICogd2l0aCB0aGUgc3VmZml4IF9jb25zdGFudCgpIGFyZSB1c2VkIHRvIGVu
YWJsZSB0aGUgaW1tZWRpYXRlIGZvcm0gTVNSDQo+ICsgKiBpbnN0cnVjdGlvbnMgd2hlbiBh
dmFpbGFibGUuICBUaGUgQVBJcyB3aXRoIHRoZSBzdWZmaXggX3ZhcmlhYmxlKCkgYXJlDQo+
ICsgKiB1c2VkIHdoZW4gdGhlIE1TUiBudW1iZXIgaXMgbm90IGtub3duIHVudGlsIHJ1biB0
aW1lLg0KPiArICoNCj4gKyAqIEJlbG93IGlzIGEgZGlhZ3JhbSBpbGx1c3RyYXRpbmcgdGhl
IGRlcml2YXRpb24gb2YgdGhlIE1TUiByZWFkIEFQSXM6DQo+ICsgKg0KPiArICogICAgICBf
X25hdGl2ZV9yZG1zcnFfdmFyaWFibGUoKSAgICBfX25hdGl2ZV9yZG1zcnFfY29uc3RhbnQo
KQ0KPiArICogICAgICAgICAgICAgICAgICAgICAgICAgXCAgICAgICAgICAgLw0KPiArICog
ICAgICAgICAgICAgICAgICAgICAgICAgIFwgICAgICAgICAvDQo+ICsgKiAgICAgICAgICAg
ICAgICAgICAgICAgICBfX25hdGl2ZV9yZG1zcnEoKSAgIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tDQo+ICsgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvICAgICBcICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB8DQo+ICsgKiAgICAgICAgICAgICAgICAgICAgICAg
ICAgIC8gICAgICAgXCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8DQo+ICsgKiAg
ICAgICAgICAgICAgIG5hdGl2ZV9yZG1zcnEoKSAgICBuYXRpdmVfcmVhZF9tc3Jfc2FmZSgp
ICAgICAgICAgICB8DQo+ICsgKiAgICAgICAgICAgICAgICAgICAvICAgIFwgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8DQo+ICsgKiAgICAgICAgICAgICAg
ICAgIC8gICAgICBcICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8
DQo+ICsgKiAgICAgIG5hdGl2ZV9yZG1zcigpICAgIG5hdGl2ZV9yZWFkX21zcigpICAgICAg
ICAgICAgICAgICAgICAgICAgICB8DQo+ICsgKiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8DQo+ICsgKiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB8DQo+ICsgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8DQo+ICsgKiAgICAgICAgICAgICAgICAg
ICAgX194ZW5wdl9yZG1zcnEoKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8DQo+
ICsgKiAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB8DQo+ICsgKiAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8DQo+ICsgKiAgICAgICAg
ICAgICAgICAgICAgICBfX3JkbXNycSgpICAgPC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tDQo+ICsgKiAgICAgICAgICAgICAgICAgICAgICAgLyAgICBcDQo+ICsgKiAgICAg
ICAgICAgICAgICAgICAgICAvICAgICAgXA0KPiArICogICAgICAgICAgICAgICAgIHJkbXNy
cSgpICAgcmRtc3JxX3NhZmUoKQ0KPiArICogICAgICAgICAgICAgICAgICAgIC8gICAgICAg
ICAgXA0KPiArICogICAgICAgICAgICAgICAgICAgLyAgICAgICAgICAgIFwNCj4gKyAqICAg
ICAgICAgICAgICAgIHJkbXNyKCkgICAgICAgIHJkbXNyX3NhZmUoKQ0KPiArICovDQo+ICsN
Cj4gK3N0YXRpYyBfX2Fsd2F5c19pbmxpbmUgYm9vbCBfX25hdGl2ZV9yZG1zcnFfdmFyaWFi
bGUodTMyIG1zciwgdTY0ICp2YWwsIGludCB0eXBlKQ0KPiAgIHsNCj4gLQlERUNMQVJFX0FS
R1ModmFsLCBsb3csIGhpZ2gpOw0KPiArI2lmZGVmIENPTkZJR19YODZfNjQNCj4gKwlCVUlM
RF9CVUdfT04oX19idWlsdGluX2NvbnN0YW50X3AobXNyKSk7DQo+ICAgDQo+IC0JYXNtIHZv
bGF0aWxlKCIxOiByZG1zclxuIg0KPiAtCQkgICAgICIyOlxuIg0KPiAtCQkgICAgIF9BU01f
RVhUQUJMRV9UWVBFKDFiLCAyYiwgRVhfVFlQRV9SRE1TUikNCj4gLQkJICAgICA6IEVBWF9F
RFhfUkVUKHZhbCwgbG93LCBoaWdoKSA6ICJjIiAobXNyKSk7DQo+ICsJYXNtX2lubGluZSB2
b2xhdGlsZSBnb3RvKA0KPiArCQkiMTpcbiINCj4gKwkJUkRNU1JfQU5EX1NBVkVfUkVTVUxU
DQo+ICsJCV9BU01fRVhUQUJMRV9UWVBFKDFiLCAlbFtiYWRtc3JdLCAlY1t0eXBlXSkJLyog
Rm9yIFJETVNSICovDQo+ICAgDQo+IC0JcmV0dXJuIEVBWF9FRFhfVkFMKHZhbCwgbG93LCBo
aWdoKTsNCj4gKwkJOiBbdmFsXSAiPWEiICgqdmFsKQ0KPiArCQk6ICJjIiAobXNyKSwgW3R5
cGVdICJpIiAodHlwZSkNCj4gKwkJOiAicmR4Ig0KPiArCQk6IGJhZG1zcik7DQo+ICsjZWxz
ZQ0KPiArCWFzbV9pbmxpbmUgdm9sYXRpbGUgZ290bygNCj4gKwkJIjE6IHJkbXNyXG5cdCIN
Cj4gKwkJX0FTTV9FWFRBQkxFX1RZUEUoMWIsICVsW2JhZG1zcl0sICVjW3R5cGVdKQkvKiBG
b3IgUkRNU1IgKi8NCj4gKw0KPiArCQk6ICI9QSIgKCp2YWwpDQo+ICsJCTogImMiIChtc3Ip
LCBbdHlwZV0gImkiICh0eXBlKQ0KPiArCQk6DQo+ICsJCTogYmFkbXNyKTsNCj4gKyNlbmRp
Zg0KPiArDQo+ICsJcmV0dXJuIGZhbHNlOw0KPiArDQo+ICtiYWRtc3I6DQo+ICsJKnZhbCA9
IDA7DQo+ICsNCj4gKwlyZXR1cm4gdHJ1ZTsNCj4gICB9DQo+ICAgDQo+IC0jZGVmaW5lIG5h
dGl2ZV9yZG1zcihtc3IsIHZhbDEsIHZhbDIpCQkJXA0KPiAtZG8gewkJCQkJCQlcDQo+IC0J
dTY0IF9fdmFsID0gX19yZG1zcigobXNyKSk7CQkJXA0KPiAtCSh2b2lkKSgodmFsMSkgPSAo
dTMyKV9fdmFsKTsJCQlcDQo+IC0JKHZvaWQpKCh2YWwyKSA9ICh1MzIpKF9fdmFsID4+IDMy
KSk7CQlcDQo+IC19IHdoaWxlICgwKQ0KPiArI2lmZGVmIENPTkZJR19YODZfNjQNCj4gK3N0
YXRpYyBfX2Fsd2F5c19pbmxpbmUgYm9vbCBfX25hdGl2ZV9yZG1zcnFfY29uc3RhbnQodTMy
IG1zciwgdTY0ICp2YWwsIGludCB0eXBlKQ0KPiArew0KPiArCUJVSUxEX0JVR19PTighX19i
dWlsdGluX2NvbnN0YW50X3AobXNyKSk7DQo+ICsNCj4gKwlhc21faW5saW5lIHZvbGF0aWxl
IGdvdG8oDQo+ICsJCSIxOlxuIg0KPiArCQlBTFRFUk5BVElWRSgibW92ICVbbXNyXSwgJSVl
Y3hcblx0Ig0KPiArCQkJICAgICIyOlxuIg0KPiArCQkJICAgIFJETVNSX0FORF9TQVZFX1JF
U1VMVCwNCj4gKwkJCSAgICBBU01fUkRNU1JfSU1NLA0KPiArCQkJICAgIFg4Nl9GRUFUVVJF
X01TUl9JTU0pDQo+ICsJCV9BU01fRVhUQUJMRV9UWVBFKDFiLCAlbFtiYWRtc3JdLCAlY1t0
eXBlXSkJLyogRm9yIFJETVNSIGltbWVkaWF0ZSAqLw0KPiArCQlfQVNNX0VYVEFCTEVfVFlQ
RSgyYiwgJWxbYmFkbXNyXSwgJWNbdHlwZV0pCS8qIEZvciBSRE1TUiAqLw0KPiArDQo+ICsJ
CTogW3ZhbF0gIj1hIiAoKnZhbCkNCj4gKwkJOiBbbXNyXSAiaSIgKG1zciksIFt0eXBlXSAi
aSIgKHR5cGUpDQo+ICsJCTogImVjeCIsICJyZHgiDQo+ICsJCTogYmFkbXNyKTsNCj4gKw0K
PiArCXJldHVybiBmYWxzZTsNCj4gKw0KPiArYmFkbXNyOg0KPiArCSp2YWwgPSAwOw0KPiAr
DQo+ICsJcmV0dXJuIHRydWU7DQo+ICt9DQo+ICsjZW5kaWYNCj4gKw0KPiArc3RhdGljIF9f
YWx3YXlzX2lubGluZSBib29sIF9fbmF0aXZlX3JkbXNycSh1MzIgbXNyLCB1NjQgKnZhbCwg
aW50IHR5cGUpDQo+ICt7DQo+ICsjaWZkZWYgQ09ORklHX1g4Nl82NA0KPiArCWlmIChfX2J1
aWx0aW5fY29uc3RhbnRfcChtc3IpKQ0KPiArCQlyZXR1cm4gX19uYXRpdmVfcmRtc3JxX2Nv
bnN0YW50KG1zciwgdmFsLCB0eXBlKTsNCj4gKyNlbmRpZg0KPiArDQo+ICsJcmV0dXJuIF9f
bmF0aXZlX3JkbXNycV92YXJpYWJsZShtc3IsIHZhbCwgdHlwZSk7DQo+ICt9DQo+ICAgDQo+
ICAgc3RhdGljIF9fYWx3YXlzX2lubGluZSB1NjQgbmF0aXZlX3JkbXNycSh1MzIgbXNyKQ0K
PiAgIHsNCj4gLQlyZXR1cm4gX19yZG1zcihtc3IpOw0KPiArCXU2NCB2YWwgPSAwOw0KPiAr
DQo+ICsJX19uYXRpdmVfcmRtc3JxKG1zciwgJnZhbCwgRVhfVFlQRV9SRE1TUik7DQo+ICsJ
cmV0dXJuIHZhbDsNCj4gICB9DQo+ICAgDQo+ICsjZGVmaW5lIG5hdGl2ZV9yZG1zcihtc3Is
IGxvdywgaGlnaCkJCQlcDQo+ICtkbyB7CQkJCQkJCVwNCj4gKwl1NjQgX192YWwgPSBuYXRp
dmVfcmRtc3JxKG1zcik7CQkJXA0KPiArCSh2b2lkKSgobG93KSA9ICh1MzIpX192YWwpOwkJ
CVwNCj4gKwkodm9pZCkoKGhpZ2gpID0gKHUzMikoX192YWwgPj4gMzIpKTsJCVwNCj4gK30g
d2hpbGUgKDApDQo+ICsNCj4gICBzdGF0aWMgaW5saW5lIHU2NCBuYXRpdmVfcmVhZF9tc3Io
dTMyIG1zcikNCj4gICB7DQo+IC0JdTY0IHZhbDsNCj4gLQ0KPiAtCXZhbCA9IF9fcmRtc3Io
bXNyKTsNCj4gKwl1NjQgdmFsID0gbmF0aXZlX3JkbXNycShtc3IpOw0KPiAgIA0KPiAgIAlp
ZiAodHJhY2Vwb2ludF9lbmFibGVkKHJlYWRfbXNyKSkNCj4gICAJCWRvX3RyYWNlX3JlYWRf
bXNyKG1zciwgdmFsLCAwKTsNCj4gQEAgLTE2MywzNiArMjczLDkxIEBAIHN0YXRpYyBpbmxp
bmUgdTY0IG5hdGl2ZV9yZWFkX21zcih1MzIgbXNyKQ0KPiAgIAlyZXR1cm4gdmFsOw0KPiAg
IH0NCj4gICANCj4gLXN0YXRpYyBpbmxpbmUgaW50IG5hdGl2ZV9yZWFkX21zcl9zYWZlKHUz
MiBtc3IsIHU2NCAqcCkNCj4gK3N0YXRpYyBpbmxpbmUgaW50IG5hdGl2ZV9yZWFkX21zcl9z
YWZlKHUzMiBtc3IsIHU2NCAqdmFsKQ0KPiAgIHsNCj4gICAJaW50IGVycjsNCj4gLQlERUNM
QVJFX0FSR1ModmFsLCBsb3csIGhpZ2gpOw0KPiAgIA0KPiAtCWFzbSB2b2xhdGlsZSgiMTog
cmRtc3IgOyB4b3IgJVtlcnJdLCVbZXJyXVxuIg0KPiAtCQkgICAgICIyOlxuXHQiDQo+IC0J
CSAgICAgX0FTTV9FWFRBQkxFX1RZUEVfUkVHKDFiLCAyYiwgRVhfVFlQRV9SRE1TUl9TQUZF
LCAlW2Vycl0pDQo+IC0JCSAgICAgOiBbZXJyXSAiPXIiIChlcnIpLCBFQVhfRURYX1JFVCh2
YWwsIGxvdywgaGlnaCkNCj4gLQkJICAgICA6ICJjIiAobXNyKSk7DQo+IC0JaWYgKHRyYWNl
cG9pbnRfZW5hYmxlZChyZWFkX21zcikpDQo+IC0JCWRvX3RyYWNlX3JlYWRfbXNyKG1zciwg
RUFYX0VEWF9WQUwodmFsLCBsb3csIGhpZ2gpLCBlcnIpOw0KPiArCWVyciA9IF9fbmF0aXZl
X3JkbXNycShtc3IsIHZhbCwgRVhfVFlQRV9SRE1TUl9TQUZFKSA/IC1FSU8gOiAwOw0KPiAg
IA0KPiAtCSpwID0gRUFYX0VEWF9WQUwodmFsLCBsb3csIGhpZ2gpOw0KPiArCWlmICh0cmFj
ZXBvaW50X2VuYWJsZWQocmVhZF9tc3IpKQ0KPiArCQlkb190cmFjZV9yZWFkX21zcihtc3Is
ICp2YWwsIGVycik7DQo+ICAgDQo+ICAgCXJldHVybiBlcnI7DQo+ICAgfQ0KPiAgIA0KPiAr
I2lmZGVmIENPTkZJR19YRU5fUFYNCj4gKy8qIE5vIHBsYW4gdG8gc3VwcG9ydCBpbW1lZGlh
dGUgZm9ybSBNU1IgaW5zdHJ1Y3Rpb25zIGluIFhlbiAqLw0KPiArc3RhdGljIF9fYWx3YXlz
X2lubGluZSBib29sIF9feGVucHZfcmRtc3JxKHUzMiBtc3IsIHU2NCAqdmFsLCBpbnQgdHlw
ZSkNCj4gK3sNCj4gKwlhc21faW5saW5lIHZvbGF0aWxlIGdvdG8oDQo+ICsJCSIxOiBjYWxs
IGFzbV94ZW5fcmVhZF9tc3Jcblx0Ig0KPiArCQlfQVNNX0VYVEFCTEVfVFlQRSgxYiwgJWxb
YmFkbXNyXSwgJWNbdHlwZV0pCS8qIEZvciBDQUxMICovDQo+ICsNCj4gKwkJOiBbdmFsXSAi
PWEiICgqdmFsKSwgQVNNX0NBTExfQ09OU1RSQUlOVA0KPiArCQk6ICJjIiAobXNyKSwgW3R5
cGVdICJpIiAodHlwZSkNCj4gKwkJOiAicmR4Ig0KPiArCQk6IGJhZG1zcik7DQo+ICsNCj4g
KwlyZXR1cm4gZmFsc2U7DQo+ICsNCj4gK2JhZG1zcjoNCj4gKwkqdmFsID0gMDsNCj4gKw0K
PiArCXJldHVybiB0cnVlOw0KPiArfQ0KPiArI2VuZGlmDQo+ICsNCj4gK3N0YXRpYyBfX2Fs
d2F5c19pbmxpbmUgYm9vbCBfX3JkbXNycSh1MzIgbXNyLCB1NjQgKnZhbCwgaW50IHR5cGUp
DQo+ICt7DQo+ICsJYm9vbCByZXQ7DQo+ICsNCj4gKyNpZmRlZiBDT05GSUdfWEVOX1BWDQo+
ICsJaWYgKGNwdV9mZWF0dXJlX2VuYWJsZWQoWDg2X0ZFQVRVUkVfWEVOUFYpKQ0KPiArCQly
ZXR1cm4gX194ZW5wdl9yZG1zcnEobXNyLCB2YWwsIHR5cGUpOw0KDQpJIGRvbid0IHRoaW5r
IHRoaXMgd2lsbCB3b3JrIGZvciB0aGUgWGVuIFBWIGNhc2UuDQoNClg4Nl9GRUFUVVJFX1hF
TlBWIGlzIHNldCBvbmx5IGFmdGVyIHRoZSBmaXJzdCBNU1IgaXMgYmVpbmcgcmVhZC4NCg0K
VGhpcyBjYW4gYmUgZml4ZWQgYnkgc2V0dGluZyB0aGUgZmVhdHVyZSBlYXJsaWVyLCBidXQg
aXQgc2hvd3MgdGhhdCB0aGUNCnBhcmF2aXJ0IGZlYXR1cmUgaGFzIGl0cyBiZW5lZml0cyBp
biBzdWNoIGNhc2VzLg0KDQoNCkp1ZXJnZW4NCg==
--------------7CQNfatosOVDsfChQ7Z2L9fT
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-----

--------------7CQNfatosOVDsfChQ7Z2L9fT--

--------------WJCFhpTJKlCw7fKTGzqt7dma--

--------------YQuihR0OR54PElblEk79lEg9
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/Ey8FAmgHeZ0FAwAAAAAACgkQsN6d1ii/Ey/d
FQf7B+/VXxYF93NH2fUAvs3O/pK7dJSdmv13J2EO1ysfYxJslQeL8n38s6hC9d8W9HHTDKIZ2G6u
U6/vrTKuwM1UzkjA6edLsItJas9sNYHCwEp6noARbXxOr6fvs/bY9km0gQkwxXp+RvG3GcVUd25L
63Cx29hVbQd6wyHQ2MxGpaAUVztKPBc/vvoCJzrk0yqivTPA5OkcKQ+NXozxpOwn1lvy8xldZS4i
5yezZp1m90RrgaRNijPIgXZsoaG8AjSnVqA1MuEJ5Bhq/1juinjW1ffxBDpqkMczRmctWH4HcSCp
998IPw+oO1TXbNtoIpGH+eD/kxQ5oJgw4x8/+rc3YQ==
=ogef
-----END PGP SIGNATURE-----

--------------YQuihR0OR54PElblEk79lEg9--


From xen-devel-bounces@lists.xenproject.org Tue Apr 22 11:33:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 11:33:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.962486.1353689 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7Bs6-00048m-Jb; Tue, 22 Apr 2025 11:33:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 962486.1353689; Tue, 22 Apr 2025 11: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 1u7Bs6-00048f-Gb; Tue, 22 Apr 2025 11:33:02 +0000
Received: by outflank-mailman (input) for mailman id 962486;
 Tue, 22 Apr 2025 11: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=9r0M=XI=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u7Bs5-00048Z-Br
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 11:33:01 +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 7f75dce3-1f6d-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 13:32:40 +0200 (CEST)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-43d0618746bso37840495e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 04:32:51 -0700 (PDT)
Received: from localhost.localdomain ([83.104.178.215])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39efa420837sm15138139f8f.10.2025.04.22.04.32.49
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 22 Apr 2025 04:32:49 -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: 7f75dce3-1f6d-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745321570; x=1745926370; 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=jpTKQttLiBHNEDZW3APbDimIwb5bokk8sMguz82w6ms=;
        b=M9xQ7vs83EkJ/p1UEvgYNDQ5Oduv7wkyU5tUaXOPZV7muE5opDEfLa5xt78SBJlO+o
         Ui32VNN9FzoBkPnoUaT+Ww1RfExiwD5uJFKKBNxoaWjE2wc7VBn343r4RNgueCD23+YN
         k0N29s5NTDs6xtM/VccD0iamMdQlaKsS6sjv0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745321570; x=1745926370;
        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=jpTKQttLiBHNEDZW3APbDimIwb5bokk8sMguz82w6ms=;
        b=G5IcwVauR+V4zGmCdpTGQPtcyD3NixIfmfaQNQH7NDZHoMfOAIjhUCRVhqT61xeDai
         bHhNdnXarhwGSIh12S2diRG539tk35IwQbEEI8x1Yu1JOXOPEzBHrZO7+kj3GpKWOZWI
         MFcsel0bsf6KPyA69GyZpUXLiX30SrksF18kvzX3tOCDPhTc2cipqqdXVbpyrMN7dk5/
         eHvNUXMmW1wlGHxyh/Nv4XYzSktzyhuqHw67zYvp0s+A+uV1XIS+Mh1zMM96yGBZcM7P
         Oj/tMYKqGhKXNTC6+AdJMcKXH9h4ax8FHr6llnHYZzVTpDrp0i5lg+HsHBfMG5hJaEtu
         g7ew==
X-Gm-Message-State: AOJu0YzSp1EGIpbJ5JXYRtGcqsLHu9jb9JVmVMRoPcHEQ9j5n3eqScsQ
	FXtPAR6KWCSTcCp2QMnbchiorBXViBV0kp0luJJdsVLFhzL7e4emHaE2d8KCY3i+zi9kf+c/POk
	NeASQNQ==
X-Gm-Gg: ASbGncuRN0/2N3y22MX/6AoUGJa0dL2760+zgFiIvP8y7RvGJRlV51RDZff1QEkTmBe
	meIiQc37aGSx2Lifo6pEPJza94n4VaV07vQOitzKNL0NHNk8hR79WRoYJfgo729QMcwj7PR5emR
	CqgSXeHoFtgMPfq0nsu9YTBtNh9E+R9ImJmC0eP1b2zXwpAZ8thPEn9gE76X2PcYA3X4v8hqC3H
	zblMTpOjZCo8bdUdQFphWfLde9h6NEkkuTb0wQjV86NrvcC9MdMP6Thfh8gZ69ut/vcpW2KfrrP
	/qwmH1+E7naTh/ENi7sYu79eiBUxNC1n2JfM4bBMO5qukvqO7yQnkxXH+EAGiw==
X-Google-Smtp-Source: AGHT+IEHB7DQNU06KK65+/JOA++i3WFvjLEGq5NuQ05z5O5lxmRUsa04T5POqrW5ysiX4SEErh9Zlg==
X-Received: by 2002:a05:6000:144a:b0:39e:f9e8:d083 with SMTP id ffacd0b85a97d-39efbb05a20mr12020177f8f.50.1745321570274;
        Tue, 22 Apr 2025 04:32:50 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH] xen/link: Include .debug_str_offsets in DWARF2_DEBUG_SECTIONS
Date: Tue, 22 Apr 2025 12:32:47 +0100
Message-Id: <20250422113247.1285339-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

Building Xen with Clang-17 yields the following warning:

  ld: warning: orphan section `.debug_str_offsets' from `prelink.o' being placed in section `.debug_str_offsets'
  ld: ./.xen.efi.0xffff82d040000000.0:/4: section below image base
  ld: ./.xen.efi.0xffff82d040000000.1:/4: section below image base
  ld: warning: orphan section `.debug_str_offsets' from `prelink.o' being placed in section `.debug_str_offsets'
  ld: xen.efi:/4: section below image base

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Michal Orzel <michal.orzel@amd.com>
CC: Jan Beulich <jbeulich@suse.com>
CC: Julien Grall <julien@xen.org>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
---
 xen/include/xen/xen.lds.h | 1 +
 1 file changed, 1 insertion(+)

diff --git a/xen/include/xen/xen.lds.h b/xen/include/xen/xen.lds.h
index 16a9b1ba03db..bf75e22953bc 100644
--- a/xen/include/xen/xen.lds.h
+++ b/xen/include/xen/xen.lds.h
@@ -56,6 +56,7 @@
   DECL_DEBUG2(.debug_info, .gnu.linkonce.wi.*, 1) \
   DECL_DEBUG(.debug_types, 1)                     \
   DECL_DEBUG(.debug_str, 1)                       \
+  DECL_DEBUG(.debug_str_offsets, 1)               \
   DECL_DEBUG2(.debug_line, .debug_line.*, 1)      \
   DECL_DEBUG(.debug_line_str, 1)                  \
   DECL_DEBUG(.debug_names, 4)                     \
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Tue Apr 22 11:33:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 11:33:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.962488.1353698 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7BsH-0004QH-Tx; Tue, 22 Apr 2025 11:33:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 962488.1353698; Tue, 22 Apr 2025 11: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 1u7BsH-0004Q5-RT; Tue, 22 Apr 2025 11:33:13 +0000
Received: by outflank-mailman (input) for mailman id 962488;
 Tue, 22 Apr 2025 11: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=9r0M=XI=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u7BsG-00048Z-HN
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 11:33:12 +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 8b5164c6-1f6d-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 13:32:59 +0200 (CEST)
Received: by mail-wr1-x429.google.com with SMTP id
 ffacd0b85a97d-39ac9aea656so6343041f8f.3
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 04:33:11 -0700 (PDT)
Received: from localhost.localdomain ([83.104.178.215])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39efa420816sm15195591f8f.15.2025.04.22.04.33.09
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 22 Apr 2025 04:33: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: 8b5164c6-1f6d-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745321590; x=1745926390; 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=Fx+o/dQ58isqOyEG718e5dLb1KkGAs/SXDSdWo0AZ+8=;
        b=EmEyMplD1wf+ngEGqUcqp33XPUS1gVPRzZCaUah+2k5bUHzlpAQna/ZMgHaYtR6bQ1
         y52Td+0zBouNUzu6/HgSG2XrV+JweZ5BCqJ3Pvohr0csbrvlo7icMDSku5H8osUp4I6k
         vdrfVFll3WPL8KeNny16fdniqfHVB7Nfh9bmE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745321590; x=1745926390;
        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=Fx+o/dQ58isqOyEG718e5dLb1KkGAs/SXDSdWo0AZ+8=;
        b=KnPMQb7bRm3u0RIl1ZCoO+HVpmNxG5kYGyk1qnF+6fb/MQ8r64mXafC4/t323Z9X92
         54fSO/gZ2kKrq58ETQFiQaAJbw7g/cXbKGbT6oh0I1J4WcB0dnfiDx4lh8IW/Qkjwzri
         aMK1U820iMucUBdVprQxHRmmDlf9sUtflCJBA9s7cB6Lh3ndrm5do0XxbZJrIBt+EpGQ
         lGW9D19qp6xPzZCmCyl6lFrF4GL7ezfT78q8syWQx7TqTnR03eGsmU2NV34MjI1rWqHa
         Y/GjaPivxsIdhBKJ+2WjY8bpvHBrn4r7bJFFs0AJZeHxu/S6noaQU2r8EYr59lefEuTb
         fVBw==
X-Gm-Message-State: AOJu0YwLVp/bvh7fIGTFsM+M/yTWlMra9aiXJokNa06uzb/6DkSw51wk
	YwX7QEtT8EboUVDVF9TPr7z/aPdJZKk7jHHujECbUKlW9SiBu24az+HU2eINqy5PV30rI1qHoEx
	bKSmF2w==
X-Gm-Gg: ASbGncu9NoRe11c8y9SjuWrG5cuCGpSARG2CFA4icW5v6c+9w560bSgy858CzfeDj2x
	bAgJui4jzbhvEZZxU5JH6A2ig6ZKTu0BAjOPHlZ7CTcrDpXPnkcWXqeSgCx4JwpIj0ZqF5ts2Cl
	wjrWDZOcLGVqSnnidjXgMU4AsGzRIV7cYanLhg3sEI1TqUSKP0MgiMTmC3hRETLJW0x+ywO3SOQ
	kFJLp4mbSwLYj4zX73yh31lb8fwlZiH/Esh9ZDSWv55tVtzwhxURVfMiFjy5H177CckYtUCw0Nw
	5dms7yKkFhz2iVJD29koI37jiSLLLrjWBIJOXGmlrAgkVzPf5f/yywdbof2zEg==
X-Google-Smtp-Source: AGHT+IHQXe4zXh5S3iWTfzymfmpb18OE3/B48Bqywyw4taEp8wiQN1jy/yf/I/+5uvbLPr8iBrtEpg==
X-Received: by 2002:a05:6000:713:b0:39e:cbc7:ad45 with SMTP id ffacd0b85a97d-39efbaf6c2emr10858331f8f.52.1745321590230;
        Tue, 22 Apr 2025 04:33:10 -0700 (PDT)
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/alternative: Clean up headers
Date: Tue, 22 Apr 2025 12:33:07 +0100
Message-Id: <20250422113307.1285890-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

alternative.h doesn't need lib.h now that macros.h exists.  Futhermore, STR()
is already the prevailing style, so convert the final __stringify() to drop
stringify.h 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/include/asm/alternative.h | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/xen/arch/x86/include/asm/alternative.h b/xen/arch/x86/include/asm/alternative.h
index 38472fb58e2d..7326ad942836 100644
--- a/xen/arch/x86/include/asm/alternative.h
+++ b/xen/arch/x86/include/asm/alternative.h
@@ -4,8 +4,10 @@
 #ifdef __ASSEMBLY__
 #include <asm/alternative-asm.h>
 #else
-#include <xen/lib.h>
-#include <xen/stringify.h>
+
+#include <xen/macros.h>
+#include <xen/types.h>
+
 #include <asm/asm-macros.h>
 #include <asm/cpufeatureset.h>
 
@@ -65,7 +67,7 @@ extern void alternative_branches(void);
         " .endif\n"                                                     \
         " .long .LXEN%=_orig_s - .\n"             /* label           */ \
         " .long " alt_repl_s(num)" - .\n"         /* new instruction */ \
-        " .word " __stringify(feature) "\n"       /* feature bit     */ \
+        " .word " STR(feature) "\n"               /* feature bit     */ \
         " .byte " alt_orig_len "\n"               /* source len      */ \
         " .byte " alt_repl_len(num) "\n"          /* replacement len */ \
         " .byte " alt_pad_len "\n"                /* padding len     */ \
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Tue Apr 22 11:35:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 11:35:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.962508.1353709 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7BuG-0005Ep-9d; Tue, 22 Apr 2025 11:35:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 962508.1353709; Tue, 22 Apr 2025 11: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 1u7BuG-0005Ei-5z; Tue, 22 Apr 2025 11:35:16 +0000
Received: by outflank-mailman (input) for mailman id 962508;
 Tue, 22 Apr 2025 11:35: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=9r0M=XI=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u7BuF-0005Ec-Hs
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 11:35:15 +0000
Received: from mail-wr1-x42d.google.com (mail-wr1-x42d.google.com
 [2a00:1450:4864:20::42d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id db8dd3a1-1f6d-11f0-9eb0-5ba50f476ded;
 Tue, 22 Apr 2025 13:35:14 +0200 (CEST)
Received: by mail-wr1-x42d.google.com with SMTP id
 ffacd0b85a97d-39c14016868so4978056f8f.1
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 04:35:14 -0700 (PDT)
Received: from localhost.localdomain ([83.104.178.215])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4406d5d7a3dsm167656355e9.38.2025.04.22.04.35.12
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 22 Apr 2025 04:35: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: db8dd3a1-1f6d-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745321714; x=1745926514; 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=nLl2IiuN1Ius5KXo58ziw+JF/UvN8/kRxgfNqrTmPcs=;
        b=CvWDjrBaVN46jrmDm/CtHVQsDloel1t2zVGS00oSjwOcTg7m7sVVcHQOqS2PnVGtzH
         eMS5yDwe6J/wXg+DRSK+xp2vhdge1LlGxRx/3FEfRr83uTDJJ2B1eI9mzgAdsnRLvJtL
         hxJR0p4eIYwPO8FOJX33n23eUC3nHdIef56HM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745321714; x=1745926514;
        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=nLl2IiuN1Ius5KXo58ziw+JF/UvN8/kRxgfNqrTmPcs=;
        b=kcBvLwlY4RGHaaZaV3OSu1HHnuWJQCcLO+VRj2qq77Zck8nSTe2dGur+wIO3BGWWSH
         ery9ogB+lITTDlpqTRWv82NxQb4eA83XUA4CuZ//POhiVrYA9NfAAT9KfG0Or3+ZPCPo
         hb1H7HxkaYscaRLqnnfe33M6l7Kxemh7aUyLaEHKAz++fdcpgY9HybOrfpIO809eOfUf
         yHJ0tvQc28Cg6SDZB0vUnGJ49tIQVOo3xZvNGG4rOiSL1lnIUnDZWM7vXYJm0okYYCNL
         0Uv//p4w7K3+C0x48d/v4eaY+dLDfnJXyN+IoKyRuGzoZkR72CS5E2UgNs1P8Q3lwXvf
         4kUg==
X-Gm-Message-State: AOJu0YzitQV72dIxlO75WBT25ST1GGbl7XagnyfNAerHnqYUV3Aavi5w
	r8Ak9zsg9reZT8XIF0x7TudrV0Q9mqSy9iAkYrQY31HY6zrlNmHBCFSMW7UsrrER2L8w4eU/ewn
	x4B7SSQ==
X-Gm-Gg: ASbGncuLitAXVBzxgr9jrcy/13por7VpFunaq1OB/MP3HdDpE1ESePGUCGFD0JkF0B6
	9NhszinoXtG0pwzJccXPPtQAAaz7peE6SrmZwISCJHa5uu1Oud/4rVKEKb2aaAggcGNMPkVOuF1
	blYlV2UNe0KZFaaPfZK3R1nc15eIkNmwLzBBOL8lIPrtXwjSh+ueJPZgMu+5zWZBkgw4i3kON9g
	FBeaTvzVYIjeAtKU3upqePjudeIk48xqSaJGxSwCc4cdYJRK2/aDhmfZeMF3dgWwEL5pMAQR/za
	os8XJCy3mWhoVR5NH6rqGKEh0BMyFzkrI1wSdz7a3TtsZ0sYeO4sGxsm/LpSOuUOwJRxbfJM
X-Google-Smtp-Source: AGHT+IHdNlS/YQuZ79G4+papOZakmYteO53HzCogr+9/V7qKlaJqQ3Zcr8R8VS4if9C24G8cRQbSgg==
X-Received: by 2002:a05:6000:2483:b0:39c:1efd:ed8f with SMTP id ffacd0b85a97d-39efbaf2590mr11348414f8f.50.1745321713930;
        Tue, 22 Apr 2025 04:35:13 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH] xen: Drop CONFIG_CC_HAS_UBSAN
Date: Tue, 22 Apr 2025 12:35:09 +0100
Message-Id: <20250422113509.1286581-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 supported toolchains now have it.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Michal Orzel <michal.orzel@amd.com>
CC: Jan Beulich <jbeulich@suse.com>
CC: Julien Grall <julien@xen.org>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
---
 xen/Kconfig       | 4 ----
 xen/Kconfig.debug | 2 +-
 2 files changed, 1 insertion(+), 5 deletions(-)

diff --git a/xen/Kconfig b/xen/Kconfig
index 2128f0ccfc0b..72fdb8376087 100644
--- a/xen/Kconfig
+++ b/xen/Kconfig
@@ -37,10 +37,6 @@ config CC_HAS_VISIBILITY_ATTRIBUTE
 config CC_SPLIT_SECTIONS
 	bool
 
-# Compiler supports -fsanitize=undefined
-config CC_HAS_UBSAN
-	def_bool $(cc-option,-fsanitize=undefined)
-
 # Set code alignment.
 #
 # Allow setting on a boolean basis, and then convert such selection to an
diff --git a/xen/Kconfig.debug b/xen/Kconfig.debug
index f7cc5ffaabd7..c4a8d86912e0 100644
--- a/xen/Kconfig.debug
+++ b/xen/Kconfig.debug
@@ -98,7 +98,7 @@ config SCRUB_DEBUG
 
 config UBSAN
 	bool "Undefined behaviour sanitizer"
-	depends on HAS_UBSAN && CC_HAS_UBSAN
+	depends on HAS_UBSAN
 	help
 	  Enable undefined behaviour sanitizer. It uses compiler to insert code
 	  snippets so that undefined behaviours in C are detected during runtime.
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Tue Apr 22 11:35:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 11:35:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.962518.1353718 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7Buj-0005hk-Fx; Tue, 22 Apr 2025 11:35:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 962518.1353718; Tue, 22 Apr 2025 11:35: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 1u7Buj-0005hd-DT; Tue, 22 Apr 2025 11:35:45 +0000
Received: by outflank-mailman (input) for mailman id 962518;
 Tue, 22 Apr 2025 11:35: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=9r0M=XI=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u7Bui-0005aF-E9
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 11:35:44 +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 e5df8193-1f6d-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 13:35:31 +0200 (CEST)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-39ee682e0ddso2886628f8f.1
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 04:35:42 -0700 (PDT)
Received: from localhost.localdomain ([83.104.178.215])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39efa4930f1sm15114100f8f.61.2025.04.22.04.35.41
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 22 Apr 2025 04:35: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: e5df8193-1f6d-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745321742; x=1745926542; 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=EtM6oH1/QwQPXrgXxwGaMB3JlKPEHpk52MOvd8U/gPA=;
        b=iIMsF7z284pDc8wZOuGphnjk4DqRDcJA0sDFFH2oCONDcwiJ6BhYWh6jFT8f1Jfszo
         vTfX3o6eZnPAHXhF9+ozp5oHNTtF5pZUUhblRUdioZvhI8XiL/BO7YVNNMZX3gEByzbn
         aBCKUmuqKddGMu+rKM0BGpgCz8SQ5TLzpU6gI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745321742; x=1745926542;
        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=EtM6oH1/QwQPXrgXxwGaMB3JlKPEHpk52MOvd8U/gPA=;
        b=cJNx+i4Kuis7d5rYNgsijOqVRDo48m7N7Gk59DeC6qSx6ohbCtXRM4LG1Xzhr63tzo
         OEOOrQJDRM8MHB9d72i63qScSHRuRkmjdZWrjQ/TAnL0mLV7uKG38TqWD5Pb1dCzKH9c
         shvppRcbrgWzhCxaxobCgT6Ap0caqoevEx4sioe1aSdsQnjXGhH54xZTDWmeNIIgiMEw
         q6iLgKslvWixl3Fvxcq1OsXeaUNu/zg8cvDueA7iVJfbVB4/KnRYyz7Sp0+r7KQpJa9X
         7ONE1Jzl3zconJeQIEylUNWg3omohQ0X3mgumM+Uzyc1ILlQiXh3ixcHUUnBUjNbsMhV
         09Yg==
X-Gm-Message-State: AOJu0Yy5wrhDuCkI1n7h0oCnvZH8sMQhWn1+L1jLqp7NLi5y8survEJT
	qogzIWbSTYq884/A0s8MTmVh+Bp2XisPslrMgV6bSw80iTdRGNs4vBoXI1SvTHhypA5zh4a4hJZ
	qpaqHCw==
X-Gm-Gg: ASbGncvxUd0liLTNSDsHG5YhJZASQvFaagAV4EJero881ze3hKLJ6ih6xZebsreV3uu
	7J7J0paG7q2a5a/PhwAXq+UuawOtSyKuy6RArGdexsmOewiF5FdBOHLQ20cMUCLv4wi5Pon2rSd
	/FUcHbBdA2ms4UmgPDO++tBrCQamxTMJWiEo+dREWW7+jdV7hbuZhIEa2+HYnXxC+jwxYmquUuK
	Focyw3dg2M8ldKvdyjoIsjeJ5Tv92PtzvGsA5cGQh6Y+xSgv9kflcaQzc3MZiZgPjgS/JmrI7dG
	3ejop4klupiECcYoabHLuSgfOHu2L6lSnwsJ46pMInfpBSSnMYyJN1AVcflwZt3SE+WANmHw
X-Google-Smtp-Source: AGHT+IHIqgerNAVVkSIWBev0RIWZ0Rkw1SpnZGyp+ydMHrwrGKoOX9y2Om1S4Tstqr9nBzS0+l7fiA==
X-Received: by 2002:a05:6000:2913:b0:390:e853:85bd with SMTP id ffacd0b85a97d-39efbaf2b8fmr11384729f8f.48.1745321742175;
        Tue, 22 Apr 2025 04:35:42 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH] xen: Drop CONFIG_CC_HAS_VISIBILITY_ATTRIBUTE
Date: Tue, 22 Apr 2025 12:35:37 +0100
Message-Id: <20250422113537.1286981-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 supported toolchains now have it.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Michal Orzel <michal.orzel@amd.com>
CC: Jan Beulich <jbeulich@suse.com>
CC: Julien Grall <julien@xen.org>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
---
 xen/Kconfig                | 4 ----
 xen/include/xen/compiler.h | 2 --
 2 files changed, 6 deletions(-)

diff --git a/xen/Kconfig b/xen/Kconfig
index 72fdb8376087..ae1c401a981e 100644
--- a/xen/Kconfig
+++ b/xen/Kconfig
@@ -29,10 +29,6 @@ config LD_IS_GNU
 config LD_IS_LLVM
 	def_bool $(success,$(LD) --version | head -n 1 | grep -q "^LLD")
 
-# -fvisibility=hidden reduces -fpic cost, if it's available
-config CC_HAS_VISIBILITY_ATTRIBUTE
-	def_bool $(cc-option,-fvisibility=hidden)
-
 # Use -f{function,data}-sections compiler parameters
 config CC_SPLIT_SECTIONS
 	bool
diff --git a/xen/include/xen/compiler.h b/xen/include/xen/compiler.h
index 38b8fa3d386d..c68fab189154 100644
--- a/xen/include/xen/compiler.h
+++ b/xen/include/xen/compiler.h
@@ -17,10 +17,8 @@
 
 #endif /* Compiler checks. */
 
-#ifdef CONFIG_CC_HAS_VISIBILITY_ATTRIBUTE
 /* Results in more efficient PIC code (no indirections through GOT or PLT). */
 #pragma GCC visibility push(hidden)
-#endif
 
 #define barrier()     __asm__ __volatile__("": : :"memory")
 
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Tue Apr 22 11:40:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 11:40:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.962534.1353730 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7Byt-0006Zb-3v; Tue, 22 Apr 2025 11:40:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 962534.1353730; Tue, 22 Apr 2025 11:40: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 1u7Bys-0006Z6-TI; Tue, 22 Apr 2025 11:40:02 +0000
Received: by outflank-mailman (input) for mailman id 962534;
 Tue, 22 Apr 2025 11:40: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=9r0M=XI=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u7Byr-0006Kq-4Z
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 11:40:01 +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 85e332a7-1f6e-11f0-9eb0-5ba50f476ded;
 Tue, 22 Apr 2025 13:40:00 +0200 (CEST)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-43cf0d787eeso59300675e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 04:40:00 -0700 (PDT)
Received: from localhost.localdomain ([83.104.178.215])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4406d5ace47sm168773615e9.15.2025.04.22.04.39.58
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 22 Apr 2025 04:39: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: 85e332a7-1f6e-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745321999; x=1745926799; 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=NVvfU+7eqssZP5v8gRrvIDHpMR4zRCPW6LahQGOlmQc=;
        b=WvKtJCNhxi4e1Z88LFl/mHhsrO7/IXLZxxBUI41+uY871jFR5ANek18TtREot4GhJW
         uqGwQgoGdLOsgKnMN84QJ+ZMoOvDaZP8u/vzEE2JJVH0EUrhuZ6Hu1PRfnnzxJJr/Q/o
         nnoTsfBF1cpXcIFT2Ga/Iz3Eyp3SGfBG46Ns4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745321999; x=1745926799;
        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=NVvfU+7eqssZP5v8gRrvIDHpMR4zRCPW6LahQGOlmQc=;
        b=R8FmLbVw+Ic1Pd/RO6xmPlZR9gKFgV2/3cOcHSQLp6/WnGgFuDhk1vuWAgyN62BrJK
         F87mE06xnLIAcLgWKhsvKzr01R7nLpUoTviAPuxgS9BiLE68gHy2ZkJ+EYX4Ozd1B5O/
         A1PB8Cli7W02wCl5K32tZnn4dtMw7d3xsv41eJLh2JplZj75HowQ/CXqabaiSjIhomsg
         siDbu9hBdEAAwZ1j2x1LZ4iCh3+CCMzdo3/svmi47Rv/8rOE45RiuwvoXBTR1LcsQGI/
         O2XsSgDazvPUAayIWuU/W/g7Jk7eSowZ6poeERwtFC1EpJqkE0AgeFtCGjj6UzCpoPE0
         MJmw==
X-Gm-Message-State: AOJu0YyK/d3H6yMP94LXQ9n+bIGWF1HgwPLo9WTWdasZ5YKLSgbVNxgF
	nTkamelvJddrXcxJndXUfR3ZmvvIEtVDYKpVaXAiO27NYQs7djs2McRtl21Ao6cOp3mOOdTR7mn
	VV3gqZg==
X-Gm-Gg: ASbGncuCPogFVqOUoCz8yknK8q3FFnvvBbVuq5+TzQqN78PJ9cMRuh9AJyIw9ppaKx3
	TekZdr1W9m6euXx9ze+9rSfeUTLBtgDfYt+cySXMTSPi6oslT36vNqg6fxs4j7dCU+5/Pms5/GY
	+XwkkvccV+HEfD7cH16MYVQn8InsnJTfmKoe1tNuOz3eDWz7xRDRY2PK3NuEMXqqNsfYX/Mwccy
	57wMfevIBL59Ht9t6ua4ZHqCbftiO8SWI3go4qHMaYBgNHJnFApxrS3N5LB9XesIoNGXsjc1VpH
	Kr2d9bhKgoAeIvEKGz7s2DgyrUYSSqTMvIb8HIBGL0lVXpCh75nyKhrjQCLCfw==
X-Google-Smtp-Source: AGHT+IFh/SoOkzGy8D+hs6AwiJ4PzitgLsehuM9ho/5k8caXBO32iheEMFL6e33SgWcWSrqI8SqgWA==
X-Received: by 2002:a05:600c:1c8e:b0:43c:f44c:72a6 with SMTP id 5b1f17b1804b1-4406ab6c278mr143300505e9.2.1745321999478;
        Tue, 22 Apr 2025 04:39:59 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH] xen: Use asm inline when available for alternatives
Date: Tue, 22 Apr 2025 12:39:57 +0100
Message-Id: <20250422113957.1289290-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

Compilers estimate the size of an asm() block for inlining purposes.

Constructs such as ALTERNATIVE appear large due to the metadata, depsite often
only being a handful of instructions.  asm inline() overrides the estimation
to identify the block as being small.

This has a substantial impact on inlining decisions, expected to be for the
better given that the compiler has a more accurate picture to work with.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Julien Grall <julien@xen.org>
CC: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
CC: Bertrand Marquis <bertrand.marquis@arm.com>
CC: Michal Orzel <michal.orzel@amd.com>
---
 xen/Kconfig                               |  4 +++
 xen/arch/arm/include/asm/alternative.h    |  4 +--
 xen/arch/arm/include/asm/arm64/flushtlb.h |  4 +--
 xen/arch/arm/include/asm/arm64/io.h       | 43 ++++++++++++++---------
 xen/arch/arm/include/asm/cpuerrata.h      |  8 ++---
 xen/arch/arm/include/asm/cpufeature.h     |  8 ++---
 xen/arch/arm/include/asm/page.h           | 12 ++++---
 xen/arch/arm/include/asm/processor.h      |  7 ++--
 xen/arch/arm/include/asm/sysregs.h        | 10 +++---
 xen/arch/arm/mmu/p2m.c                    |  3 +-
 xen/arch/x86/include/asm/alternative.h    | 36 ++++++++++---------
 xen/include/xen/compiler.h                | 14 ++++++++
 12 files changed, 95 insertions(+), 58 deletions(-)

diff --git a/xen/Kconfig b/xen/Kconfig
index ae1c401a981e..ab4ab42ae987 100644
--- a/xen/Kconfig
+++ b/xen/Kconfig
@@ -29,6 +29,10 @@ config LD_IS_GNU
 config LD_IS_LLVM
 	def_bool $(success,$(LD) --version | head -n 1 | grep -q "^LLD")
 
+config CC_HAS_ASM_INLINE
+	# GCC >= 9, Clang >= 11
+	def_bool $(success,echo 'void foo(void) { asm inline (""); }' | $(CC) -x c - -c -o /dev/null)
+
 # Use -f{function,data}-sections compiler parameters
 config CC_SPLIT_SECTIONS
 	bool
diff --git a/xen/arch/arm/include/asm/alternative.h b/xen/arch/arm/include/asm/alternative.h
index 22477d9497a3..1563f03a0f5a 100644
--- a/xen/arch/arm/include/asm/alternative.h
+++ b/xen/arch/arm/include/asm/alternative.h
@@ -209,9 +209,9 @@ alternative_endif
 #endif  /*  __ASSEMBLY__  */
 
 /*
- * Usage: asm(ALTERNATIVE(oldinstr, newinstr, feature));
+ * Usage: asm_inline (ALTERNATIVE(oldinstr, newinstr, feature));
  *
- * Usage: asm(ALTERNATIVE(oldinstr, newinstr, feature, CONFIG_FOO));
+ * Usage: asm_inline (ALTERNATIVE(oldinstr, newinstr, feature, CONFIG_FOO));
  * N.B. If CONFIG_FOO is specified, but not selected, the whole block
  *      will be omitted, including oldinstr.
  */
diff --git a/xen/arch/arm/include/asm/arm64/flushtlb.h b/xen/arch/arm/include/asm/arm64/flushtlb.h
index 45642201d147..3b99c11b50d1 100644
--- a/xen/arch/arm/include/asm/arm64/flushtlb.h
+++ b/xen/arch/arm/include/asm/arm64/flushtlb.h
@@ -31,7 +31,7 @@
 #define TLB_HELPER(name, tlbop, sh)              \
 static inline void name(void)                    \
 {                                                \
-    asm volatile(                                \
+    asm_inline volatile (                        \
         "dsb  "  # sh  "st;"                     \
         "tlbi "  # tlbop  ";"                    \
         ALTERNATIVE(                             \
@@ -55,7 +55,7 @@ static inline void name(void)                    \
 #define TLB_HELPER_VA(name, tlbop)               \
 static inline void name(vaddr_t va)              \
 {                                                \
-    asm volatile(                                \
+    asm_inline volatile (                        \
         "tlbi "  # tlbop  ", %0;"                \
         ALTERNATIVE(                             \
             "nop; nop;",                         \
diff --git a/xen/arch/arm/include/asm/arm64/io.h b/xen/arch/arm/include/asm/arm64/io.h
index 7d5959877759..ac90b729c44d 100644
--- a/xen/arch/arm/include/asm/arm64/io.h
+++ b/xen/arch/arm/include/asm/arm64/io.h
@@ -51,40 +51,51 @@ static inline void __raw_writeq(u64 val, volatile void __iomem *addr)
 static inline u8 __raw_readb(const volatile void __iomem *addr)
 {
         u8 val;
-        asm volatile(ALTERNATIVE("ldrb %w0, [%1]",
-                                 "ldarb %w0, [%1]",
-                                 ARM64_WORKAROUND_DEVICE_LOAD_ACQUIRE)
-                     : "=r" (val) : "r" (addr));
+
+        asm_inline volatile (
+            ALTERNATIVE("ldrb %w0, [%1]",
+                        "ldarb %w0, [%1]",
+                        ARM64_WORKAROUND_DEVICE_LOAD_ACQUIRE)
+            : "=r" (val) : "r" (addr) );
+
         return val;
 }
 
 static inline u16 __raw_readw(const volatile void __iomem *addr)
 {
         u16 val;
-        asm volatile(ALTERNATIVE("ldrh %w0, [%1]",
-                                 "ldarh %w0, [%1]",
-                                 ARM64_WORKAROUND_DEVICE_LOAD_ACQUIRE)
-                     : "=r" (val) : "r" (addr));
+        asm_inline volatile (
+            ALTERNATIVE("ldrh %w0, [%1]",
+                        "ldarh %w0, [%1]",
+                        ARM64_WORKAROUND_DEVICE_LOAD_ACQUIRE)
+            : "=r" (val) : "r" (addr) );
+
         return val;
 }
 
 static inline u32 __raw_readl(const volatile void __iomem *addr)
 {
         u32 val;
-        asm volatile(ALTERNATIVE("ldr %w0, [%1]",
-                                 "ldar %w0, [%1]",
-                                 ARM64_WORKAROUND_DEVICE_LOAD_ACQUIRE)
-                     : "=r" (val) : "r" (addr));
+
+        asm_inline volatile (
+            ALTERNATIVE("ldr %w0, [%1]",
+                        "ldar %w0, [%1]",
+                        ARM64_WORKAROUND_DEVICE_LOAD_ACQUIRE)
+            : "=r" (val) : "r" (addr) );
+
         return val;
 }
 
 static inline u64 __raw_readq(const volatile void __iomem *addr)
 {
         u64 val;
-        asm volatile(ALTERNATIVE("ldr %0, [%1]",
-                                 "ldar %0, [%1]",
-                                 ARM64_WORKAROUND_DEVICE_LOAD_ACQUIRE)
-                     : "=r" (val) : "r" (addr));
+
+        asm_inline volatile (
+            ALTERNATIVE("ldr %0, [%1]",
+                        "ldar %0, [%1]",
+                        ARM64_WORKAROUND_DEVICE_LOAD_ACQUIRE)
+            : "=r" (val) : "r" (addr) );
+
         return val;
 }
 
diff --git a/xen/arch/arm/include/asm/cpuerrata.h b/xen/arch/arm/include/asm/cpuerrata.h
index 8d7e7b9375bd..1799a16d7e7f 100644
--- a/xen/arch/arm/include/asm/cpuerrata.h
+++ b/xen/arch/arm/include/asm/cpuerrata.h
@@ -16,10 +16,10 @@ static inline bool check_workaround_##erratum(void)             \
     {                                                           \
         register_t ret;                                         \
                                                                 \
-        asm volatile (ALTERNATIVE("mov %0, #0",                 \
-                                  "mov %0, #1",                 \
-                                  feature)                      \
-                      : "=r" (ret));                            \
+        asm_inline volatile (                                   \
+            ALTERNATIVE("mov %0, #0",                           \
+                        "mov %0, #1", feature)                  \
+            : "=r" (ret) );                                     \
                                                                 \
         return unlikely(ret);                                   \
     }                                                           \
diff --git a/xen/arch/arm/include/asm/cpufeature.h b/xen/arch/arm/include/asm/cpufeature.h
index 50297e53d90e..b6df18801166 100644
--- a/xen/arch/arm/include/asm/cpufeature.h
+++ b/xen/arch/arm/include/asm/cpufeature.h
@@ -102,10 +102,10 @@ static inline bool cpus_have_cap(unsigned int num)
 #define cpus_have_const_cap(num) ({                 \
         register_t __ret;                           \
                                                     \
-        asm volatile (ALTERNATIVE("mov %0, #0",     \
-                                  "mov %0, #1",     \
-                                  num)              \
-                      : "=r" (__ret));              \
+        asm_inline volatile (                       \
+            ALTERNATIVE("mov %0, #0",               \
+                        "mov %0, #1", num)          \
+            : "=r" (__ret) );                       \
                                                     \
         unlikely(__ret);                            \
         })
diff --git a/xen/arch/arm/include/asm/page.h b/xen/arch/arm/include/asm/page.h
index 69f817d1e68a..27bc96b9f401 100644
--- a/xen/arch/arm/include/asm/page.h
+++ b/xen/arch/arm/include/asm/page.h
@@ -176,7 +176,8 @@ static inline int invalidate_dcache_va_range(const void *p, unsigned long size)
     {
         size -= dcache_line_bytes - ((uintptr_t)p & cacheline_mask);
         p = (void *)((uintptr_t)p & ~cacheline_mask);
-        asm volatile (__clean_and_invalidate_dcache_one(0) : : "r" (p));
+        asm_inline volatile (
+            __clean_and_invalidate_dcache_one(0) :: "r" (p) );
         p += dcache_line_bytes;
     }
 
@@ -185,7 +186,8 @@ static inline int invalidate_dcache_va_range(const void *p, unsigned long size)
         asm volatile (__invalidate_dcache_one(0) : : "r" (p + idx));
 
     if ( size > 0 )
-        asm volatile (__clean_and_invalidate_dcache_one(0) : : "r" (p + idx));
+        asm_inline volatile (
+            __clean_and_invalidate_dcache_one(0) :: "r" (p + idx) );
 
     dsb(sy);           /* So we know the flushes happen before continuing */
 
@@ -209,7 +211,7 @@ static inline int clean_dcache_va_range(const void *p, unsigned long size)
     p = (void *)((uintptr_t)p & ~cacheline_mask);
     for ( ; size >= dcache_line_bytes;
             idx += dcache_line_bytes, size -= dcache_line_bytes )
-        asm volatile (__clean_dcache_one(0) : : "r" (p + idx));
+        asm_inline volatile ( __clean_dcache_one(0) : : "r" (p + idx) );
     dsb(sy);           /* So we know the flushes happen before continuing */
     /* ARM callers assume that dcache_* functions cannot fail. */
     return 0;
@@ -247,7 +249,7 @@ static inline int clean_and_invalidate_dcache_va_range
     if ( sizeof(x) > MIN_CACHELINE_BYTES || sizeof(x) > alignof(x) )    \
         clean_dcache_va_range(_p, sizeof(x));                           \
     else                                                                \
-        asm volatile (                                                  \
+        asm_inline volatile (                                           \
             "dsb sy;"   /* Finish all earlier writes */                 \
             __clean_dcache_one(0)                                       \
             "dsb sy;"   /* Finish flush before continuing */            \
@@ -259,7 +261,7 @@ static inline int clean_and_invalidate_dcache_va_range
     if ( sizeof(x) > MIN_CACHELINE_BYTES || sizeof(x) > alignof(x) )    \
         clean_and_invalidate_dcache_va_range(_p, sizeof(x));            \
     else                                                                \
-        asm volatile (                                                  \
+        asm_inline volatile (                                           \
             "dsb sy;"   /* Finish all earlier writes */                 \
             __clean_and_invalidate_dcache_one(0)                        \
             "dsb sy;"   /* Finish flush before continuing */            \
diff --git a/xen/arch/arm/include/asm/processor.h b/xen/arch/arm/include/asm/processor.h
index 60b587db697f..9cbc4f911061 100644
--- a/xen/arch/arm/include/asm/processor.h
+++ b/xen/arch/arm/include/asm/processor.h
@@ -607,9 +607,10 @@ register_t get_default_cptr_flags(void);
 #define SYNCHRONIZE_SERROR(feat)                                  \
     do {                                                          \
         ASSERT(local_abort_is_enabled());                         \
-        asm volatile(ALTERNATIVE("dsb sy; isb",                   \
-                                 "nop; nop", feat)                \
-                                 : : : "memory");                 \
+        asm_inline volatile (                                     \
+            ALTERNATIVE("dsb sy; isb",                            \
+                        "nop; nop", feat)                         \
+            ::: "memory" );                                       \
     } while (0)
 
 /*
diff --git a/xen/arch/arm/include/asm/sysregs.h b/xen/arch/arm/include/asm/sysregs.h
index 61e30c9e517c..5c2d362be3d8 100644
--- a/xen/arch/arm/include/asm/sysregs.h
+++ b/xen/arch/arm/include/asm/sysregs.h
@@ -22,11 +22,13 @@ static inline register_t read_sysreg_par(void)
      * DMB SY before and after accessing it, as part of the workaround for the
      * errata 1508412.
      */
-    asm volatile(ALTERNATIVE("nop", "dmb sy", ARM64_WORKAROUND_1508412,
-                 CONFIG_ARM64_ERRATUM_1508412));
+    asm_inline volatile (
+        ALTERNATIVE("nop", "dmb sy", ARM64_WORKAROUND_1508412,
+                    CONFIG_ARM64_ERRATUM_1508412) );
     par_el1 = READ_SYSREG64(PAR_EL1);
-    asm volatile(ALTERNATIVE("nop", "dmb sy", ARM64_WORKAROUND_1508412,
-                 CONFIG_ARM64_ERRATUM_1508412));
+    asm_inline volatile (
+        ALTERNATIVE("nop", "dmb sy", ARM64_WORKAROUND_1508412,
+                    CONFIG_ARM64_ERRATUM_1508412) );
 
     return par_el1;
 }
diff --git a/xen/arch/arm/mmu/p2m.c b/xen/arch/arm/mmu/p2m.c
index 7642dbc7c55b..d96078f547d5 100644
--- a/xen/arch/arm/mmu/p2m.c
+++ b/xen/arch/arm/mmu/p2m.c
@@ -228,7 +228,8 @@ void p2m_restore_state(struct vcpu *n)
      * registers associated to EL1/EL0 translations regime have been
      * synchronized.
      */
-    asm volatile(ALTERNATIVE("nop", "isb", ARM64_WORKAROUND_AT_SPECULATE));
+    asm_inline volatile (
+        ALTERNATIVE("nop", "isb", ARM64_WORKAROUND_AT_SPECULATE) );
     WRITE_SYSREG64(p2m->vttbr, VTTBR_EL2);
 
     last_vcpu_ran = &p2m->last_vcpu_ran[smp_processor_id()];
diff --git a/xen/arch/x86/include/asm/alternative.h b/xen/arch/x86/include/asm/alternative.h
index 38472fb58e2d..4c8be51d0e23 100644
--- a/xen/arch/x86/include/asm/alternative.h
+++ b/xen/arch/x86/include/asm/alternative.h
@@ -116,12 +116,13 @@ extern void alternative_branches(void);
  * without volatile and memory clobber.
  */
 #define alternative(oldinstr, newinstr, feature)                        \
-        asm volatile (ALTERNATIVE(oldinstr, newinstr, feature) : : : "memory")
+    asm_inline volatile ( ALTERNATIVE(oldinstr, newinstr, feature)      \
+                          ::: "memory" )
 
 #define alternative_2(oldinstr, newinstr1, feature1, newinstr2, feature2) \
-	asm volatile (ALTERNATIVE_2(oldinstr, newinstr1, feature1,	\
-				    newinstr2, feature2)		\
-		      : : : "memory")
+    asm_inline volatile ( ALTERNATIVE_2(oldinstr, newinstr1, feature1,  \
+                                        newinstr2, feature2)            \
+                          ::: "memory" )
 
 /*
  * Alternative inline assembly with input.
@@ -133,14 +134,14 @@ extern void alternative_branches(void);
  * If you use variable sized constraints like "m" or "g" in the
  * replacement make sure to pad to the worst case length.
  */
-#define alternative_input(oldinstr, newinstr, feature, input...)	\
-	asm volatile (ALTERNATIVE(oldinstr, newinstr, feature)		\
-		      : : input)
+#define alternative_input(oldinstr, newinstr, feature, input...)        \
+    asm_inline volatile ( ALTERNATIVE(oldinstr, newinstr, feature)      \
+                          :: input )
 
 /* Like alternative_input, but with a single output argument */
-#define alternative_io(oldinstr, newinstr, feature, output, input...)	\
-	asm volatile (ALTERNATIVE(oldinstr, newinstr, feature)		\
-		      : output : input)
+#define alternative_io(oldinstr, newinstr, feature, output, input...)   \
+    asm_inline volatile ( ALTERNATIVE(oldinstr, newinstr, feature)      \
+                          : output : input )
 
 /*
  * This is similar to alternative_io. But it has two features and
@@ -150,11 +151,11 @@ extern void alternative_branches(void);
  * Otherwise, if CPU has feature1, newinstr1 is used.
  * Otherwise, oldinstr is used.
  */
-#define alternative_io_2(oldinstr, newinstr1, feature1, newinstr2,	\
-			 feature2, output, input...)			\
-	asm volatile(ALTERNATIVE_2(oldinstr, newinstr1, feature1,	\
-				   newinstr2, feature2)			\
-		     : output : input)
+#define alternative_io_2(oldinstr, newinstr1, feature1, newinstr2,      \
+                         feature2, output, input...)                    \
+    asm_inline volatile ( ALTERNATIVE_2(oldinstr, newinstr1, feature1,  \
+                                        newinstr2, feature2)            \
+                          : output : input )
 
 /* Use this macro(s) if you need more than one output parameter. */
 #define ASM_OUTPUT2(a...) a
@@ -234,8 +235,9 @@ extern void alternative_branches(void);
     rettype ret_;                                                  \
     register unsigned long r10_ asm("r10");                        \
     register unsigned long r11_ asm("r11");                        \
-    asm volatile (ALTERNATIVE("call *%c[addr](%%rip)", "call .",   \
-                              X86_FEATURE_ALWAYS)                  \
+    asm_inline volatile (                                          \
+        ALTERNATIVE("call *%c[addr](%%rip)", "call .",             \
+                    X86_FEATURE_ALWAYS)                            \
                   : ALT_CALL ## n ## _OUT, "=a" (ret_),            \
                     "=r" (r10_), "=r" (r11_) ASM_CALL_CONSTRAINT   \
                   : [addr] "i" (&(func)), "g" (func)               \
diff --git a/xen/include/xen/compiler.h b/xen/include/xen/compiler.h
index c68fab189154..d9b133016bb6 100644
--- a/xen/include/xen/compiler.h
+++ b/xen/include/xen/compiler.h
@@ -53,6 +53,20 @@
 #define unreachable() __builtin_unreachable()
 #endif
 
+/*
+ * Compilers estimate the size of an asm() block for inlining purposes.
+ * Constructs such as ALTERNATIVE appear large due to the metadata, depsite
+ * often only being a handful of instructions.  asm inline() overrides the
+ * estimation to identify the block as being small.
+ *
+ * Note: __inline is needed to avoid getting caught up in INIT_SECTIONS_ONLY.
+ */
+#if CONFIG_CC_HAS_ASM_INLINE
+# define asm_inline asm __inline
+#else
+# define asm_inline asm
+#endif
+
 /*
  * Add the pseudo keyword 'fallthrough' so case statement blocks
  * must end with any of these keywords:
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Tue Apr 22 11:41:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 11:41:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.962550.1353739 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7C0U-0008HJ-FV; Tue, 22 Apr 2025 11:41:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 962550.1353739; Tue, 22 Apr 2025 11:41:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7C0U-0008HC-CO; Tue, 22 Apr 2025 11:41:42 +0000
Received: by outflank-mailman (input) for mailman id 962550;
 Tue, 22 Apr 2025 11:41: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=9r0M=XI=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u7C0T-00085L-Dh
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 11:41: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 b98dc6e3-1f6e-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 13:41:27 +0200 (CEST)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-43cec5cd73bso32508095e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 04:41:38 -0700 (PDT)
Received: from localhost.localdomain ([83.104.178.215])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4406d5bbd8asm170611385e9.23.2025.04.22.04.41.35
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 22 Apr 2025 04:41:36 -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: b98dc6e3-1f6e-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745322097; x=1745926897; 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=DNRoRMIV3mPbRJOU5zpVZ3h9hj11xcU/yw8OKGBMsdM=;
        b=pxRmZWtmdIQ28rd0lSVTkMnxK+0GynbhB2zMLKc6OdFfvRRf+F7iAttNLYSeSAs/Jm
         iwYrgHL4cMIPZxe1M187iu0wBovukYbnwTLOKOqw3Oh/ucbQWUuvreGbg1EIRXh081dn
         c7VSdm36ydmAoGcbeyyU9p+u80Jt+HzeenAFA=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745322097; x=1745926897;
        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=DNRoRMIV3mPbRJOU5zpVZ3h9hj11xcU/yw8OKGBMsdM=;
        b=U+JV5ef0IPf/WBJxRJE62MvCWOB6NVz8yG5b5oZ2J46QlgGu9rQPiagsEkHsDJXzqJ
         tLTTCUruz5YdxYuymfrZsR+G0lRruMUkESwq7x78ZfC243Cyo6BnfI48Ikg6WiXApu0h
         rld83lRG69Xd2STUPc9kIh0K4NGkNmKOL5hU8rEIlEAGLal5RqfduHLdNyrysRjcN7r+
         4BJCSl7zyvny5h4p0Lp3nsGoXqV9S3uaDD9lHm2KmMV5q/tvKt8dFtvQqwwqnZ5F3y83
         k10HAyKHqSLzKEwl6Xf45p3jUGyWtQV3pVK6QLFWFsm2oBnCNvPtCI1ObNXDFNbfuswz
         S5Ug==
X-Gm-Message-State: AOJu0YwjJus4m+g0sZkCM2lQZyE1cDhbdObC8l9eZxrjEQY8QKRNw9I4
	+/FpAPG3/8OEBKFKj6wFIZXHYPUTODXMmo3pmC3dMRmVkggMQawUOMJPoo9YCwhOaFCf3OmE00u
	hgng20Q==
X-Gm-Gg: ASbGncvwLvq+WxwQFWNEwrJSDcK4iod4a2SlxEAIuNQu0k4myGu0EuLmbvHFHogBg1c
	xhxe342QOAqqIHCLrPeojnYYIBDwQsAiZBlNPv2iibELzOn7Yk9Ut07E26whcQPXwWPLWMgan/E
	LfK37VPWpgAN+VBZmLKOWpq2WEoJbyMSeLGqwEL/ngT55e+90sHWSGYI1/r596X+JYXNwO6moQO
	8SyuDPjwq7pwPVSR9tG1QA+U9Jbhr+efc9WugeAk+UuhUIDTNh39fqG2bz7DLoyzElMzqleir5p
	LGd0q9K2I69m3wm1UwSRSFVzLTw9ENHAElKqLgsL6feaj9AS9rO+jW8CyEfoyg==
X-Google-Smtp-Source: AGHT+IEkUiKybHlRk7K4jXCi61eyqX96jUQJ53U/d8Dw5A2W2RN0c7HxHwZ/eZVUfmZy9hDDAWoyPQ==
X-Received: by 2002:a05:600c:848c:b0:43c:e467:d6ce with SMTP id 5b1f17b1804b1-440715b5f22mr123364115e9.4.1745322097118;
        Tue, 22 Apr 2025 04:41:37 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH] xen: Consistently use alignof()
Date: Tue, 22 Apr 2025 12:41:34 +0100
Message-Id: <20250422114134.1291254-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

We have a mix of all 3 spellings in Xen, as well as having compatibility in
compiler.h for older C standards.

Remove the use of __alignof() and __alignof__(), which reduced code volume a
little.

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Julien Grall <julien@xen.org>
CC: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
CC: Bertrand Marquis <bertrand.marquis@arm.com>
CC: Michal Orzel <michal.orzel@amd.com>

x86_emulate.c and compat-build-header.py still use __alignof() because they
have code used outside of Xen.

The compiler.h compatibilty checks for < C11, whereas it was C23 when they
became keywords.  Nothing seems to mind, so I've left it alone.
---
 xen/arch/x86/xstate.c                |  4 ++--
 xen/common/coverage/gcc_3_4.c        |  4 ++--
 xen/common/device-tree/device-tree.c |  8 ++++----
 xen/include/xen/config.h             |  2 +-
 xen/include/xen/percpu.h             |  2 +-
 xen/include/xen/xmalloc.h            | 16 ++++++++--------
 xen/include/xen/xvmalloc.h           | 16 ++++++++--------
 7 files changed, 26 insertions(+), 26 deletions(-)

diff --git a/xen/arch/x86/xstate.c b/xen/arch/x86/xstate.c
index 3d249518a1b7..d423bf7978da 100644
--- a/xen/arch/x86/xstate.c
+++ b/xen/arch/x86/xstate.c
@@ -542,8 +542,8 @@ int xstate_alloc_save_area(struct vcpu *v)
     }
 
     /* XSAVE/XRSTOR requires the save area be 64-byte-boundary aligned. */
-    BUILD_BUG_ON(__alignof(*save_area) < 64);
-    save_area = _xvzalloc(size, __alignof(*save_area));
+    BUILD_BUG_ON(alignof(*save_area) < 64);
+    save_area = _xvzalloc(size, alignof(*save_area));
     if ( save_area == NULL )
         return -ENOMEM;
 
diff --git a/xen/common/coverage/gcc_3_4.c b/xen/common/coverage/gcc_3_4.c
index 3631f4bc2535..393e3c866d74 100644
--- a/xen/common/coverage/gcc_3_4.c
+++ b/xen/common/coverage/gcc_3_4.c
@@ -199,8 +199,8 @@ static size_t get_fn_size(const struct gcov_info *info)
 
     size = sizeof(struct gcov_fn_info) + num_counter_active(info) *
         sizeof(unsigned int);
-    if ( __alignof__(struct gcov_fn_info) > sizeof(unsigned int) )
-        size = ROUNDUP(size, __alignof__(struct gcov_fn_info));
+    if ( alignof(struct gcov_fn_info) > sizeof(unsigned int) )
+        size = ROUNDUP(size, alignof(struct gcov_fn_info));
     return size;
 }
 
diff --git a/xen/common/device-tree/device-tree.c b/xen/common/device-tree/device-tree.c
index 90fee2ba0315..e4dea4b42a1d 100644
--- a/xen/common/device-tree/device-tree.c
+++ b/xen/common/device-tree/device-tree.c
@@ -1885,7 +1885,7 @@ static unsigned long unflatten_dt_node(const void *fdt,
     }
 
     np = unflatten_dt_alloc(&mem, sizeof(struct dt_device_node) + allocl,
-                            __alignof__(struct dt_device_node));
+                            alignof(struct dt_device_node));
     if ( allnextpp )
     {
         memset(np, 0, sizeof(*np));
@@ -1963,7 +1963,7 @@ static unsigned long unflatten_dt_node(const void *fdt,
             has_name = 1;
         l = strlen(pname) + 1;
         pp = unflatten_dt_alloc(&mem, sizeof(struct dt_property),
-                                __alignof__(struct dt_property));
+                                alignof(struct dt_property));
         if ( allnextpp )
         {
             /* We accept flattened tree phandles either in
@@ -2010,7 +2010,7 @@ static unsigned long unflatten_dt_node(const void *fdt,
             pa = p1;
         sz = (pa - ps) + 1;
         pp = unflatten_dt_alloc(&mem, sizeof(struct dt_property) + sz,
-                                __alignof__(struct dt_property));
+                                alignof(struct dt_property));
         if ( allnextpp )
         {
             pp->name = "name";
@@ -2088,7 +2088,7 @@ int unflatten_device_tree(const void *fdt, struct dt_device_node **mynodes)
     dt_dprintk("  size is %#lx allocating...\n", size);
 
     /* Allocate memory for the expanded device tree */
-    mem = (unsigned long)_xmalloc (size + 4, __alignof__(struct dt_device_node));
+    mem = (unsigned long)_xmalloc(size + 4, alignof(struct dt_device_node));
     if ( !mem )
         return -ENOMEM;
 
diff --git a/xen/include/xen/config.h b/xen/include/xen/config.h
index 1d7195066c08..479c3bac8925 100644
--- a/xen/include/xen/config.h
+++ b/xen/include/xen/config.h
@@ -105,7 +105,7 @@
 #define BITS_PER_LONG   (BITS_PER_BYTE * BYTES_PER_LONG)
 #define BITS_PER_LLONG  (BITS_PER_BYTE * __SIZEOF_LONG_LONG__)
 
-/* It is assumed that sizeof(void *) == __alignof(void *) */
+/* It is assumed that sizeof(void *) == alignof(void *) */
 #define POINTER_ALIGN   __SIZEOF_POINTER__
 
 #if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
diff --git a/xen/include/xen/percpu.h b/xen/include/xen/percpu.h
index e7f585c7ed69..62a6259b2bc1 100644
--- a/xen/include/xen/percpu.h
+++ b/xen/include/xen/percpu.h
@@ -18,7 +18,7 @@
 
 #define DEFINE_PER_CPU_PAGE_ALIGNED(type, name) \
     typedef char name ## _chk_t \
-        [BUILD_BUG_ON_ZERO(__alignof(type) & (PAGE_SIZE - 1))]; \
+        [BUILD_BUG_ON_ZERO(alignof(type) & (PAGE_SIZE - 1))]; \
     __DEFINE_PER_CPU(__section(".bss.percpu.page_aligned"), \
                      type, _ ## name)
 
diff --git a/xen/include/xen/xmalloc.h b/xen/include/xen/xmalloc.h
index f0412fb4e021..b7616c3b9038 100644
--- a/xen/include/xen/xmalloc.h
+++ b/xen/include/xen/xmalloc.h
@@ -13,8 +13,8 @@
  */
 
 /* Allocate space for typed object. */
-#define xmalloc(_type) ((_type *)_xmalloc(sizeof(_type), __alignof__(_type)))
-#define xzalloc(_type) ((_type *)_xzalloc(sizeof(_type), __alignof__(_type)))
+#define xmalloc(_type) ((_type *)_xmalloc(sizeof(_type), alignof(_type)))
+#define xzalloc(_type) ((_type *)_xzalloc(sizeof(_type), alignof(_type)))
 
 /*
  * Allocate space for a typed object and copy an existing instance.
@@ -34,24 +34,24 @@
 
 /* Allocate space for array of typed objects. */
 #define xmalloc_array(_type, _num) \
-    ((_type *)_xmalloc_array(sizeof(_type), __alignof__(_type), _num))
+    ((_type *)_xmalloc_array(sizeof(_type), alignof(_type), _num))
 #define xzalloc_array(_type, _num) \
-    ((_type *)_xzalloc_array(sizeof(_type), __alignof__(_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))
+                                   alignof(typeof(*(_ptr))), _num))
 
 /* Allocate space for a structure with a flexible array of typed objects. */
 #define xzalloc_flex_struct(type, field, nr) \
-    ((type *)_xzalloc(offsetof(type, field[nr]), __alignof__(type)))
+    ((type *)_xzalloc(offsetof(type, field[nr]), alignof(type)))
 
 #define xmalloc_flex_struct(type, field, nr) \
-    ((type *)_xmalloc(offsetof(type, field[nr]), __alignof__(type)))
+    ((type *)_xmalloc(offsetof(type, field[nr]), alignof(type)))
 
 /* Re-allocate space for a structure with a flexible array of typed objects. */
 #define xrealloc_flex_struct(ptr, field, nr)                           \
     ((typeof(ptr))_xrealloc(ptr, offsetof(typeof(*(ptr)), field[nr]),  \
-                            __alignof__(typeof(*(ptr)))))
+                            alignof(typeof(*(ptr)))))
 
 /* Allocate untyped storage. */
 #define xmalloc_bytes(_bytes) _xmalloc(_bytes, SMP_CACHE_BYTES)
diff --git a/xen/include/xen/xvmalloc.h b/xen/include/xen/xvmalloc.h
index 7686d49f8154..d2288c175814 100644
--- a/xen/include/xen/xvmalloc.h
+++ b/xen/include/xen/xvmalloc.h
@@ -10,13 +10,13 @@
  */
 
 /* Allocate space for typed object. */
-#define xvmalloc(_type) ((_type *)_xvmalloc(sizeof(_type), __alignof__(_type)))
-#define xvzalloc(_type) ((_type *)_xvzalloc(sizeof(_type), __alignof__(_type)))
+#define xvmalloc(_type) ((_type *)_xvmalloc(sizeof(_type), alignof(_type)))
+#define xvzalloc(_type) ((_type *)_xvzalloc(sizeof(_type), alignof(_type)))
 
 /* Allocate space for a typed object and copy an existing instance. */
 #define xvmemdup(ptr)                                          \
 ({                                                             \
-    void *p_ = _xvmalloc(sizeof(*(ptr)), __alignof__(*(ptr))); \
+    void *p_ = _xvmalloc(sizeof(*(ptr)), alignof(*(ptr))); \
     if ( p_ )                                                  \
         memcpy(p_, ptr, sizeof(*(ptr)));                       \
     (typeof(*(ptr)) *)p_;                                      \
@@ -24,21 +24,21 @@
 
 /* Allocate space for array of typed objects. */
 #define xvmalloc_array(_type, _num) \
-    ((_type *)_xvmalloc_array(sizeof(_type), __alignof__(_type), _num))
+    ((_type *)_xvmalloc_array(sizeof(_type), alignof(_type), _num))
 #define xvzalloc_array(_type, _num) \
-    ((_type *)_xvzalloc_array(sizeof(_type), __alignof__(_type), _num))
+    ((_type *)_xvzalloc_array(sizeof(_type), alignof(_type), _num))
 
 /* Allocate space for a structure with a flexible array of typed objects. */
 #define xvzalloc_flex_struct(type, field, nr) \
-    ((type *)_xvzalloc(offsetof(type, field[nr]), __alignof__(type)))
+    ((type *)_xvzalloc(offsetof(type, field[nr]), alignof(type)))
 
 #define xvmalloc_flex_struct(type, field, nr) \
-    ((type *)_xvmalloc(offsetof(type, field[nr]), __alignof__(type)))
+    ((type *)_xvmalloc(offsetof(type, field[nr]), alignof(type)))
 
 /* Re-allocate space for a structure with a flexible array of typed objects. */
 #define xvrealloc_flex_struct(ptr, field, nr)                          \
     ((typeof(ptr))_xvrealloc(ptr, offsetof(typeof(*(ptr)), field[nr]), \
-                             __alignof__(typeof(*(ptr)))))
+                             alignof(typeof(*(ptr)))))
 
 #ifdef CONFIG_HAS_VMAP
 
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Tue Apr 22 12:13:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 12:13:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.962569.1353748 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7CVK-0008Mi-UI; Tue, 22 Apr 2025 12:13:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 962569.1353748; Tue, 22 Apr 2025 12:13:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7CVK-0008Mb-Rb; Tue, 22 Apr 2025 12:13:34 +0000
Received: by outflank-mailman (input) for mailman id 962569;
 Tue, 22 Apr 2025 12:13:33 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=f4Vg=XI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u7CVJ-0008MV-EV
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 12:13:33 +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 33be6f98-1f73-11f0-9eb0-5ba50f476ded;
 Tue, 22 Apr 2025 14:13:30 +0200 (CEST)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-3914bc3e01aso3104139f8f.2
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 05:13:30 -0700 (PDT)
Received: from [10.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-39efa4933e7sm15223530f8f.65.2025.04.22.05.13.28
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 22 Apr 2025 05:13:29 -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: 33be6f98-1f73-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745324009; x=1745928809; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=GCsyidbxF9lIZ627mP92SNzPhGUsxD8EdDhkvNyFxsM=;
        b=CrT1dRgm5gydE34pz7SvKgEA37Ft4xxX0pCQAb4255nnTWlsHgl6F2m/q2v1iIGFeB
         8QflFO12yeULjwv16RzjsTakDXe/ZFhPpUMBpMsxBU/+kxlfqOTGgfLzSLiqw3Rawr5B
         i1hGz0/l2NcGZEupFxSG5VkV7r7bCY8q7tiDBB2M7w91cJRHi+3IsLUQ5ODoQu1M40bg
         vxUWFBDEzbWrOAxShqX/RDRbTZT82AgYonZLj1Zw0fVYf94rnMPdV1gd/VcWsGPEwrMK
         YICIamvKw/TboQT0c+dHgzO7JvIP/Qhm8DBKnlDwA3MQzjj5Iw6NJpeLPVIZfvyZWkLn
         zA3A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745324009; x=1745928809;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=GCsyidbxF9lIZ627mP92SNzPhGUsxD8EdDhkvNyFxsM=;
        b=aFW7JvodVzMShGQbKOz8C4qLHCNsKQ1yUAR4eIa2/8B5FMVCmhvJTcXGIHEydBKYuH
         T97wmjbZyRp+rMUKOWFqE5Yk9o3yR8nN87JZtOZTwWNg7yISwPuh1vw66XYfK/Mpg6z/
         w5LYhv0z7jea48JT1I+zAiUApwMe1+d9qz/u/51kChCMHjMDU/os/vctiidGfCEPXkmB
         o20r62HTqKsFxdjdVfF/h87qroHX8hvewCzXxgzQ+62Cuyz6CgcrMDjX9u//rJ0ewVtB
         FvWxVuIlxX5wyaLKbPTVGq8ZjLDsvhedhc7zF5HdVjVIvRoEb0j463VJtsio8XKqgpiz
         r5BQ==
X-Forwarded-Encrypted: i=1; AJvYcCXFl2yORXHIWo8qAB3w7TQG3nlio/uBp6RyyAhXlz+SrwXv91L9FkTGgNvr66y8ZUDmXIebDKvfV8U=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw6QC1J+LZ9pJhkI2JcoSTn5U+ZT97GBL7sbJCpWNV04NohGEyo
	B8F2IhlKeiOf8Bd4AMQiN5GitfE4TOGVlyZg2f0UioL5XVkSK6Cj23vXabkKyA==
X-Gm-Gg: ASbGnctE3ZWJ1Fv1e+2RQUi+o0s46tf7i2V01uT7/4+JCYIUSHy0LK+IvmIQI7VClIt
	SOaYZijYLprH7lKjWZdFPQlbokpOoeCVtAgS1NN4yMZehK24pb5OHNKzXieogvdde0pR3RbnArl
	KnVt/sEnvx36Mj8x+py2wkh5DmGZ3N9SOBh5UzyAA7e3YBUZoWb0ZcR1kbPhmyXU3T6pvZkRUGr
	L7KzsrVtCZ4AzWDyce9teQC9HN1s8QGM9/8hKP1EyBdrLj6vVg2PIe/5DOP5wP4oefLZUC9bw+j
	4/P2GUkRuk25Y9LIISP0Pzkpfhd3agTXS4/pdJigj05/kk86iikJlmQWqes+78ghokTqYMzHfWH
	g4yaeCQ2v+epuOhK/ZFVexq1kWQ==
X-Google-Smtp-Source: AGHT+IFwQDW4zCSQVrMmSPu6KHE55qikwRmb6TeWvXYeju2/DSLJRFS8KxtaxOqCXYu6AbEFShbrfQ==
X-Received: by 2002:a05:6000:438a:b0:39e:cbd2:9ad2 with SMTP id ffacd0b85a97d-39efba2aa44mr11387508f8f.4.1745324009403;
        Tue, 22 Apr 2025 05:13:29 -0700 (PDT)
Message-ID: <82a02afa-c1b7-4656-8f34-bd4886c9fb9f@suse.com>
Date: Tue, 22 Apr 2025 14:13:28 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/link: Include .debug_str_offsets in
 DWARF2_DEBUG_SECTIONS
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250422113247.1285339-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: <20250422113247.1285339-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 22.04.2025 13:32, Andrew Cooper wrote:
> --- a/xen/include/xen/xen.lds.h
> +++ b/xen/include/xen/xen.lds.h
> @@ -56,6 +56,7 @@
>    DECL_DEBUG2(.debug_info, .gnu.linkonce.wi.*, 1) \
>    DECL_DEBUG(.debug_types, 1)                     \
>    DECL_DEBUG(.debug_str, 1)                       \
> +  DECL_DEBUG(.debug_str_offsets, 1)               \

The alignment wants to be at least 4. I don't think it needs to be 8, as
I don't expect us to require a 64-bit Dwarf container any time soon. Then:
Reviewed-by: Jan Beulich <jbeulich@suse.com>

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 22 12:14:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 12:14:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.962578.1353760 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7CWP-0000RD-8D; Tue, 22 Apr 2025 12:14:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 962578.1353760; Tue, 22 Apr 2025 12: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 1u7CWP-0000R6-4I; Tue, 22 Apr 2025 12:14:41 +0000
Received: by outflank-mailman (input) for mailman id 962578;
 Tue, 22 Apr 2025 12:14: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=f4Vg=XI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u7CWN-0000Om-Rh
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 12:14:39 +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 53e27ffe-1f73-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 14:14:23 +0200 (CEST)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-43d07ca6a80so24685735e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 05:14:34 -0700 (PDT)
Received: from [10.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-39efa420705sm14972505f8f.8.2025.04.22.05.14.33
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 22 Apr 2025 05:14: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: 53e27ffe-1f73-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745324074; x=1745928874; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=8CAEnamdARsHZAY1f0KqIX3/hSUPv7RCBYAgD0+sjL8=;
        b=UB8sstMSWcfQwcbQYGMqOcbAkjho5le1ThHP8Fgq/IrpDlgjyeTBBiWZ47fGyQycjR
         7VY3NXNxqSlk2BLFPRWqH1X3n+GLUlA5qwVgQpy71HckhbSgK5Ln1xpLr27VA75tXArd
         SKj+BricIB0nI0A43K1Id9XsgsakF1ly2wqPNSle8GPkoWBIBRAW2ttT5VzAThQLpRQM
         NPX/YTiKV4lCJzokpp0SNj0KSxoZVX4lS1edsz7AOookDy8X/DmZNZ3ET54/qd7T8l2H
         20NA06af0MfLHXRXLxRJmS68EAyoL6dp7M5lKrkeynD3Oh3UeK539J0OXmkDm742/r2l
         vXOw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745324074; x=1745928874;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=8CAEnamdARsHZAY1f0KqIX3/hSUPv7RCBYAgD0+sjL8=;
        b=KMPzw4J1wGOhF5NBt4lqK9dJT9kXFTQ9DEcfF0zq367hxP83K0JBpy1qRC7h8SlSWZ
         kU6fBpdGzUy36L7werSz7UWCpppuU2EipxMM43kdQ9riaQ5fpCsZRby66RrxR2HgQgS1
         KX+LVu43g/a1UUa3QibGtwt0RfX1whxVYKjGUmOCETz9+bX8IdjfzRIS/Wp2FIkmla/g
         XT25WFgm/R3XMPRnHo7UMxqme2vkf4XgWNU+IEJ6oKPxk6vCx7aKRvMH0VVpxeL4A+91
         Igg6jaswhAHGM92+reNgNpaQYMRcB8w6RAVpUXrguD58/p2Pqxna0/2IOwoWZEw0yCJu
         mFKA==
X-Forwarded-Encrypted: i=1; AJvYcCXfUEqA8sppsLKZ17VynR2dAzNLSw1Kdh+BDq2l6qhwYtbF1F5M9xUlenOPXcZERYPtTVPJlTG9HlI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxHKV0w2nJEWqNoMNmCleKnRNdnv+jirxwqMZEc8J8OMiYBh3EB
	ZdLhAog/1lkUgrlBDX0/FwO/djwANxLzHicIVtEp4hq+YE32vK+wOPhKgoM8wg==
X-Gm-Gg: ASbGncui31nd+V9cEgzAOymCrpX/5fDBR3Piy1K8qah7fAfk9NusHdcStbvs7rHoQVn
	TAYeZC54F0q7ykanDGMf685/OrmlSTJD2y+IYTLGgzigDN6jw2QUQWtap6JfxSeSYxlYzwtqaks
	qFdqZR3StHM6WiKApyVBKENBQqVcBcdWmxtejXMdnuOfGkbSYMup09aK4rVumq2GC4lCsF+Fh3B
	+5yuwSVvfbLExvQU7V1ggfOcQPA/0jgXEEyfydmuRiL5ADu9tx/mJ9N9hUNFIbEgXElyZJyG5e1
	My0hDvn25sdmWeyFZJWVXs9QiCGp/cBZK1MSbCf/E6JfRAalnUH5SlMA4d3amu0QlgGkcjN2vFw
	kXa33zaGk4XQ1PNt3o0/D6MzzNA==
X-Google-Smtp-Source: AGHT+IESxwox5B5+fqsLFlUhw1bADXS3wJDKuHyW4GeOr9nMr4ECsPcWGYJLdWeDinjp4Ik4CtiyqA==
X-Received: by 2002:a05:600c:1f83:b0:43d:53c:1ad6 with SMTP id 5b1f17b1804b1-4406abf93b2mr120845665e9.26.1745324074342;
        Tue, 22 Apr 2025 05:14:34 -0700 (PDT)
Message-ID: <53cd2d0d-41b7-4002-b511-e25a7b15c3c8@suse.com>
Date: Tue, 22 Apr 2025 14:14:33 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/alternative: Clean up headers
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250422113307.1285890-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: <20250422113307.1285890-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 22.04.2025 13:33, Andrew Cooper wrote:
> alternative.h doesn't need lib.h now that macros.h exists.  Futhermore, STR()
> is already the prevailing style, so convert the final __stringify() to drop
> stringify.h too.
> 
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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




From xen-devel-bounces@lists.xenproject.org Tue Apr 22 12:33:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 12:33:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.962591.1353769 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7CoU-0004Y4-M7; Tue, 22 Apr 2025 12:33:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 962591.1353769; Tue, 22 Apr 2025 12:33: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 1u7CoU-0004Xx-JL; Tue, 22 Apr 2025 12:33:22 +0000
Received: by outflank-mailman (input) for mailman id 962591;
 Tue, 22 Apr 2025 12:33: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=Bndg=XI=cloud.com=frediano.ziglio@srs-se1.protection.inumbo.net>)
 id 1u7CoS-0004Xr-Sn
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 12:33:21 +0000
Received: from mail-oi1-x22d.google.com (mail-oi1-x22d.google.com
 [2607:f8b0:4864:20::22d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f87bac19-1f75-11f0-9eb0-5ba50f476ded;
 Tue, 22 Apr 2025 14:33:19 +0200 (CEST)
Received: by mail-oi1-x22d.google.com with SMTP id
 5614622812f47-3f6ab1b8fc1so3186999b6e.0
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 05:33: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: f87bac19-1f75-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1745325198; x=1745929998; 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=YTvFDScCjV+mbpJI+xtXSigey/L5KQSx13qWlYT4oZY=;
        b=hLZovLjtZfTcfGzGJShSsr5Vj4l6NBSqC0riJvKHXzjcc96mF3dcAcw2mdyOBEd9YA
         clwwUlm7ySWThRUNQzDAoBdajriUfarf3JeFdqwIBqy2QPqGzpXkt5qbu32ciFaLCtW1
         dv/2MxK6Fz0HgDnh/3M4T5KYS8aHduiMBW2AI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745325198; x=1745929998;
        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=YTvFDScCjV+mbpJI+xtXSigey/L5KQSx13qWlYT4oZY=;
        b=u7fvsc2U80617a5TymMVk74Lanc4Iji/y4CeA0bMLOTNfpP6uph64O3SbnB2jVUPXX
         6OsBCHwgKUpUzoEiXs92ZtCzRMt5KR9iuwLFYP5pvsm5OtxbgxZY67EEBsWygC0A98Y6
         ejApeLNDfFVwqm2qfAfDCJC/OguOuaBmD80HWBvZw8yn4G/0MevPyjdelf3NwuzrNRbW
         HmO8Ns/ZHscROHa7ImBXK1eSfWY86NhfzFOwoj/Oe1jjFMS11N+PWI6jP9NPzd9ecbwL
         JGDcHcD/CkORWxNaim4OPdSNDt5E6FX4Rc4FXJ2Q2dDnL2ddnymoImNuYykFnVsaOXDW
         8MDQ==
X-Gm-Message-State: AOJu0YyvK5uLlvvo3cjM8mpx91fxf24qcxg05i0DloSeMPwUXu4Hqt2n
	Xhm10by4+woXfSXwFharvP2XNGM29eEdzW3/c++FpVnF7CB8Fi8bnKBAf3HEZDIHUuUFw6bgpZi
	Ii5+0qDCfTDcOihCJLCWWddpRrsPzjYZnViQpWw==
X-Gm-Gg: ASbGncujnxCCUEZu4rwUmB8Gqd2xwWQ0iM56Uat2v8oHLXoeQgqZnWOCx6o0c9uOyhB
	8GPxFC3qV3yE/bXEiqzminN8/lrCpJdFz0v78IjQIhkblRIvkxCEHT51sqOU08l7GLRvp06Qkia
	Oa4+MYDUfp71uLkNtTnCPIoA==
X-Google-Smtp-Source: AGHT+IE6VOzA5MJbsyszsFSlfN4hLGUcbYbcUKIkXpnzLVRJxv1/gnebcUqvnT7vlnc4117Aoua8LmbxPtYAJ7vCXAw=
X-Received: by 2002:a05:6808:8107:b0:3fa:cf11:1493 with SMTP id
 5614622812f47-401c091fedamr8356149b6e.1.1745325198285; Tue, 22 Apr 2025
 05:33:18 -0700 (PDT)
MIME-Version: 1.0
References: <20250422113957.1289290-1-andrew.cooper3@citrix.com>
In-Reply-To: <20250422113957.1289290-1-andrew.cooper3@citrix.com>
From: Frediano Ziglio <frediano.ziglio@cloud.com>
Date: Tue, 22 Apr 2025 13:33:07 +0100
X-Gm-Features: ATxdqUGaJ0cqhdVuWi62ZpCctcRNVb2HCdIIz9HjyVGUcl4yHJFLiuftyqx6dSs
Message-ID: <CACHz=ZgJWAOFFBeKr81byA-H+rvqEDmHtUMTyon6vOTPt7UjOg@mail.gmail.com>
Subject: Re: [PATCH] xen: Use asm inline when available for alternatives
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>, 
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Bertrand Marquis <bertrand.marquis@arm.com>, 
	Michal Orzel <michal.orzel@amd.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Tue, Apr 22, 2025 at 12:40=E2=80=AFPM Andrew Cooper
<andrew.cooper3@citrix.com> wrote:
>
> Compilers estimate the size of an asm() block for inlining purposes.
>
> Constructs such as ALTERNATIVE appear large due to the metadata, depsite =
often
> only being a handful of instructions.  asm inline() overrides the estimat=
ion
> to identify the block as being small.
>
> This has a substantial impact on inlining decisions, expected to be for t=
he
> better given that the compiler has a more accurate picture to work with.
>
> 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: Stefano Stabellini <sstabellini@kernel.org>
> CC: Julien Grall <julien@xen.org>
> CC: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
> CC: Bertrand Marquis <bertrand.marquis@arm.com>
> CC: Michal Orzel <michal.orzel@amd.com>
> ---
>  xen/Kconfig                               |  4 +++
>  xen/arch/arm/include/asm/alternative.h    |  4 +--
>  xen/arch/arm/include/asm/arm64/flushtlb.h |  4 +--
>  xen/arch/arm/include/asm/arm64/io.h       | 43 ++++++++++++++---------
>  xen/arch/arm/include/asm/cpuerrata.h      |  8 ++---
>  xen/arch/arm/include/asm/cpufeature.h     |  8 ++---
>  xen/arch/arm/include/asm/page.h           | 12 ++++---
>  xen/arch/arm/include/asm/processor.h      |  7 ++--
>  xen/arch/arm/include/asm/sysregs.h        | 10 +++---
>  xen/arch/arm/mmu/p2m.c                    |  3 +-
>  xen/arch/x86/include/asm/alternative.h    | 36 ++++++++++---------
>  xen/include/xen/compiler.h                | 14 ++++++++
>  12 files changed, 95 insertions(+), 58 deletions(-)
>
> diff --git a/xen/Kconfig b/xen/Kconfig
> index ae1c401a981e..ab4ab42ae987 100644
> --- a/xen/Kconfig
> +++ b/xen/Kconfig
> @@ -29,6 +29,10 @@ config LD_IS_GNU
>  config LD_IS_LLVM
>         def_bool $(success,$(LD) --version | head -n 1 | grep -q "^LLD")
>
> +config CC_HAS_ASM_INLINE
> +       # GCC >=3D 9, Clang >=3D 11
> +       def_bool $(success,echo 'void foo(void) { asm inline (""); }' | $=
(CC) -x c - -c -o /dev/null)
> +

Why not check for "asm __inline" instead of "asm inline" ? The
asm_inline macro below uses "asm __inline".
They are mainly synonyms but it would look more coherent.

>  # Use -f{function,data}-sections compiler parameters
>  config CC_SPLIT_SECTIONS
>         bool
> diff --git a/xen/arch/arm/include/asm/alternative.h b/xen/arch/arm/includ=
e/asm/alternative.h
> index 22477d9497a3..1563f03a0f5a 100644
> --- a/xen/arch/arm/include/asm/alternative.h
> +++ b/xen/arch/arm/include/asm/alternative.h
> @@ -209,9 +209,9 @@ alternative_endif
>  #endif  /*  __ASSEMBLY__  */
>
>  /*
> - * Usage: asm(ALTERNATIVE(oldinstr, newinstr, feature));
> + * Usage: asm_inline (ALTERNATIVE(oldinstr, newinstr, feature));
>   *
> - * Usage: asm(ALTERNATIVE(oldinstr, newinstr, feature, CONFIG_FOO));
> + * Usage: asm_inline (ALTERNATIVE(oldinstr, newinstr, feature, CONFIG_FO=
O));
>   * N.B. If CONFIG_FOO is specified, but not selected, the whole block
>   *      will be omitted, including oldinstr.
>   */
> diff --git a/xen/arch/arm/include/asm/arm64/flushtlb.h b/xen/arch/arm/inc=
lude/asm/arm64/flushtlb.h
> index 45642201d147..3b99c11b50d1 100644
> --- a/xen/arch/arm/include/asm/arm64/flushtlb.h
> +++ b/xen/arch/arm/include/asm/arm64/flushtlb.h
> @@ -31,7 +31,7 @@
>  #define TLB_HELPER(name, tlbop, sh)              \
>  static inline void name(void)                    \
>  {                                                \
> -    asm volatile(                                \
> +    asm_inline volatile (                        \
>          "dsb  "  # sh  "st;"                     \
>          "tlbi "  # tlbop  ";"                    \
>          ALTERNATIVE(                             \
> @@ -55,7 +55,7 @@ static inline void name(void)                    \
>  #define TLB_HELPER_VA(name, tlbop)               \
>  static inline void name(vaddr_t va)              \
>  {                                                \
> -    asm volatile(                                \
> +    asm_inline volatile (                        \
>          "tlbi "  # tlbop  ", %0;"                \
>          ALTERNATIVE(                             \
>              "nop; nop;",                         \
> diff --git a/xen/arch/arm/include/asm/arm64/io.h b/xen/arch/arm/include/a=
sm/arm64/io.h
> index 7d5959877759..ac90b729c44d 100644
> --- a/xen/arch/arm/include/asm/arm64/io.h
> +++ b/xen/arch/arm/include/asm/arm64/io.h
> @@ -51,40 +51,51 @@ static inline void __raw_writeq(u64 val, volatile voi=
d __iomem *addr)
>  static inline u8 __raw_readb(const volatile void __iomem *addr)
>  {
>          u8 val;
> -        asm volatile(ALTERNATIVE("ldrb %w0, [%1]",
> -                                 "ldarb %w0, [%1]",
> -                                 ARM64_WORKAROUND_DEVICE_LOAD_ACQUIRE)
> -                     : "=3Dr" (val) : "r" (addr));
> +
> +        asm_inline volatile (
> +            ALTERNATIVE("ldrb %w0, [%1]",
> +                        "ldarb %w0, [%1]",
> +                        ARM64_WORKAROUND_DEVICE_LOAD_ACQUIRE)
> +            : "=3Dr" (val) : "r" (addr) );
> +
>          return val;
>  }
>
>  static inline u16 __raw_readw(const volatile void __iomem *addr)
>  {
>          u16 val;
> -        asm volatile(ALTERNATIVE("ldrh %w0, [%1]",
> -                                 "ldarh %w0, [%1]",
> -                                 ARM64_WORKAROUND_DEVICE_LOAD_ACQUIRE)
> -                     : "=3Dr" (val) : "r" (addr));
> +        asm_inline volatile (
> +            ALTERNATIVE("ldrh %w0, [%1]",
> +                        "ldarh %w0, [%1]",
> +                        ARM64_WORKAROUND_DEVICE_LOAD_ACQUIRE)
> +            : "=3Dr" (val) : "r" (addr) );
> +
>          return val;
>  }
>
>  static inline u32 __raw_readl(const volatile void __iomem *addr)
>  {
>          u32 val;
> -        asm volatile(ALTERNATIVE("ldr %w0, [%1]",
> -                                 "ldar %w0, [%1]",
> -                                 ARM64_WORKAROUND_DEVICE_LOAD_ACQUIRE)
> -                     : "=3Dr" (val) : "r" (addr));
> +
> +        asm_inline volatile (
> +            ALTERNATIVE("ldr %w0, [%1]",
> +                        "ldar %w0, [%1]",
> +                        ARM64_WORKAROUND_DEVICE_LOAD_ACQUIRE)
> +            : "=3Dr" (val) : "r" (addr) );
> +
>          return val;
>  }
>
>  static inline u64 __raw_readq(const volatile void __iomem *addr)
>  {
>          u64 val;
> -        asm volatile(ALTERNATIVE("ldr %0, [%1]",
> -                                 "ldar %0, [%1]",
> -                                 ARM64_WORKAROUND_DEVICE_LOAD_ACQUIRE)
> -                     : "=3Dr" (val) : "r" (addr));
> +
> +        asm_inline volatile (
> +            ALTERNATIVE("ldr %0, [%1]",
> +                        "ldar %0, [%1]",
> +                        ARM64_WORKAROUND_DEVICE_LOAD_ACQUIRE)
> +            : "=3Dr" (val) : "r" (addr) );
> +
>          return val;
>  }
>
> diff --git a/xen/arch/arm/include/asm/cpuerrata.h b/xen/arch/arm/include/=
asm/cpuerrata.h
> index 8d7e7b9375bd..1799a16d7e7f 100644
> --- a/xen/arch/arm/include/asm/cpuerrata.h
> +++ b/xen/arch/arm/include/asm/cpuerrata.h
> @@ -16,10 +16,10 @@ static inline bool check_workaround_##erratum(void)  =
           \
>      {                                                           \
>          register_t ret;                                         \
>                                                                  \
> -        asm volatile (ALTERNATIVE("mov %0, #0",                 \
> -                                  "mov %0, #1",                 \
> -                                  feature)                      \
> -                      : "=3Dr" (ret));                            \
> +        asm_inline volatile (                                   \
> +            ALTERNATIVE("mov %0, #0",                           \
> +                        "mov %0, #1", feature)                  \
> +            : "=3Dr" (ret) );                                     \
>                                                                  \
>          return unlikely(ret);                                   \
>      }                                                           \
> diff --git a/xen/arch/arm/include/asm/cpufeature.h b/xen/arch/arm/include=
/asm/cpufeature.h
> index 50297e53d90e..b6df18801166 100644
> --- a/xen/arch/arm/include/asm/cpufeature.h
> +++ b/xen/arch/arm/include/asm/cpufeature.h
> @@ -102,10 +102,10 @@ static inline bool cpus_have_cap(unsigned int num)
>  #define cpus_have_const_cap(num) ({                 \
>          register_t __ret;                           \
>                                                      \
> -        asm volatile (ALTERNATIVE("mov %0, #0",     \
> -                                  "mov %0, #1",     \
> -                                  num)              \
> -                      : "=3Dr" (__ret));              \
> +        asm_inline volatile (                       \
> +            ALTERNATIVE("mov %0, #0",               \
> +                        "mov %0, #1", num)          \
> +            : "=3Dr" (__ret) );                       \
>                                                      \
>          unlikely(__ret);                            \
>          })
> diff --git a/xen/arch/arm/include/asm/page.h b/xen/arch/arm/include/asm/p=
age.h
> index 69f817d1e68a..27bc96b9f401 100644
> --- a/xen/arch/arm/include/asm/page.h
> +++ b/xen/arch/arm/include/asm/page.h
> @@ -176,7 +176,8 @@ static inline int invalidate_dcache_va_range(const vo=
id *p, unsigned long size)
>      {
>          size -=3D dcache_line_bytes - ((uintptr_t)p & cacheline_mask);
>          p =3D (void *)((uintptr_t)p & ~cacheline_mask);
> -        asm volatile (__clean_and_invalidate_dcache_one(0) : : "r" (p));
> +        asm_inline volatile (
> +            __clean_and_invalidate_dcache_one(0) :: "r" (p) );
>          p +=3D dcache_line_bytes;
>      }
>
> @@ -185,7 +186,8 @@ static inline int invalidate_dcache_va_range(const vo=
id *p, unsigned long size)
>          asm volatile (__invalidate_dcache_one(0) : : "r" (p + idx));
>
>      if ( size > 0 )
> -        asm volatile (__clean_and_invalidate_dcache_one(0) : : "r" (p + =
idx));
> +        asm_inline volatile (
> +            __clean_and_invalidate_dcache_one(0) :: "r" (p + idx) );
>
>      dsb(sy);           /* So we know the flushes happen before continuin=
g */
>
> @@ -209,7 +211,7 @@ static inline int clean_dcache_va_range(const void *p=
, unsigned long size)
>      p =3D (void *)((uintptr_t)p & ~cacheline_mask);
>      for ( ; size >=3D dcache_line_bytes;
>              idx +=3D dcache_line_bytes, size -=3D dcache_line_bytes )
> -        asm volatile (__clean_dcache_one(0) : : "r" (p + idx));
> +        asm_inline volatile ( __clean_dcache_one(0) : : "r" (p + idx) );
>      dsb(sy);           /* So we know the flushes happen before continuin=
g */
>      /* ARM callers assume that dcache_* functions cannot fail. */
>      return 0;
> @@ -247,7 +249,7 @@ static inline int clean_and_invalidate_dcache_va_rang=
e
>      if ( sizeof(x) > MIN_CACHELINE_BYTES || sizeof(x) > alignof(x) )    =
\
>          clean_dcache_va_range(_p, sizeof(x));                           =
\
>      else                                                                =
\
> -        asm volatile (                                                  =
\
> +        asm_inline volatile (                                           =
\
>              "dsb sy;"   /* Finish all earlier writes */                 =
\
>              __clean_dcache_one(0)                                       =
\
>              "dsb sy;"   /* Finish flush before continuing */            =
\
> @@ -259,7 +261,7 @@ static inline int clean_and_invalidate_dcache_va_rang=
e
>      if ( sizeof(x) > MIN_CACHELINE_BYTES || sizeof(x) > alignof(x) )    =
\
>          clean_and_invalidate_dcache_va_range(_p, sizeof(x));            =
\
>      else                                                                =
\
> -        asm volatile (                                                  =
\
> +        asm_inline volatile (                                           =
\
>              "dsb sy;"   /* Finish all earlier writes */                 =
\
>              __clean_and_invalidate_dcache_one(0)                        =
\
>              "dsb sy;"   /* Finish flush before continuing */            =
\
> diff --git a/xen/arch/arm/include/asm/processor.h b/xen/arch/arm/include/=
asm/processor.h
> index 60b587db697f..9cbc4f911061 100644
> --- a/xen/arch/arm/include/asm/processor.h
> +++ b/xen/arch/arm/include/asm/processor.h
> @@ -607,9 +607,10 @@ register_t get_default_cptr_flags(void);
>  #define SYNCHRONIZE_SERROR(feat)                                  \
>      do {                                                          \
>          ASSERT(local_abort_is_enabled());                         \
> -        asm volatile(ALTERNATIVE("dsb sy; isb",                   \
> -                                 "nop; nop", feat)                \
> -                                 : : : "memory");                 \
> +        asm_inline volatile (                                     \
> +            ALTERNATIVE("dsb sy; isb",                            \
> +                        "nop; nop", feat)                         \
> +            ::: "memory" );                                       \
>      } while (0)
>
>  /*
> diff --git a/xen/arch/arm/include/asm/sysregs.h b/xen/arch/arm/include/as=
m/sysregs.h
> index 61e30c9e517c..5c2d362be3d8 100644
> --- a/xen/arch/arm/include/asm/sysregs.h
> +++ b/xen/arch/arm/include/asm/sysregs.h
> @@ -22,11 +22,13 @@ static inline register_t read_sysreg_par(void)
>       * DMB SY before and after accessing it, as part of the workaround f=
or the
>       * errata 1508412.
>       */
> -    asm volatile(ALTERNATIVE("nop", "dmb sy", ARM64_WORKAROUND_1508412,
> -                 CONFIG_ARM64_ERRATUM_1508412));
> +    asm_inline volatile (
> +        ALTERNATIVE("nop", "dmb sy", ARM64_WORKAROUND_1508412,
> +                    CONFIG_ARM64_ERRATUM_1508412) );
>      par_el1 =3D READ_SYSREG64(PAR_EL1);
> -    asm volatile(ALTERNATIVE("nop", "dmb sy", ARM64_WORKAROUND_1508412,
> -                 CONFIG_ARM64_ERRATUM_1508412));
> +    asm_inline volatile (
> +        ALTERNATIVE("nop", "dmb sy", ARM64_WORKAROUND_1508412,
> +                    CONFIG_ARM64_ERRATUM_1508412) );
>
>      return par_el1;
>  }
> diff --git a/xen/arch/arm/mmu/p2m.c b/xen/arch/arm/mmu/p2m.c
> index 7642dbc7c55b..d96078f547d5 100644
> --- a/xen/arch/arm/mmu/p2m.c
> +++ b/xen/arch/arm/mmu/p2m.c
> @@ -228,7 +228,8 @@ void p2m_restore_state(struct vcpu *n)
>       * registers associated to EL1/EL0 translations regime have been
>       * synchronized.
>       */
> -    asm volatile(ALTERNATIVE("nop", "isb", ARM64_WORKAROUND_AT_SPECULATE=
));
> +    asm_inline volatile (
> +        ALTERNATIVE("nop", "isb", ARM64_WORKAROUND_AT_SPECULATE) );
>      WRITE_SYSREG64(p2m->vttbr, VTTBR_EL2);
>
>      last_vcpu_ran =3D &p2m->last_vcpu_ran[smp_processor_id()];
> diff --git a/xen/arch/x86/include/asm/alternative.h b/xen/arch/x86/includ=
e/asm/alternative.h
> index 38472fb58e2d..4c8be51d0e23 100644
> --- a/xen/arch/x86/include/asm/alternative.h
> +++ b/xen/arch/x86/include/asm/alternative.h
> @@ -116,12 +116,13 @@ extern void alternative_branches(void);
>   * without volatile and memory clobber.
>   */
>  #define alternative(oldinstr, newinstr, feature)                        =
\
> -        asm volatile (ALTERNATIVE(oldinstr, newinstr, feature) : : : "me=
mory")
> +    asm_inline volatile ( ALTERNATIVE(oldinstr, newinstr, feature)      =
\
> +                          ::: "memory" )
>
>  #define alternative_2(oldinstr, newinstr1, feature1, newinstr2, feature2=
) \
> -       asm volatile (ALTERNATIVE_2(oldinstr, newinstr1, feature1,      \
> -                                   newinstr2, feature2)                \
> -                     : : : "memory")
> +    asm_inline volatile ( ALTERNATIVE_2(oldinstr, newinstr1, feature1,  =
\
> +                                        newinstr2, feature2)            =
\
> +                          ::: "memory" )
>
>  /*
>   * Alternative inline assembly with input.
> @@ -133,14 +134,14 @@ extern void alternative_branches(void);
>   * If you use variable sized constraints like "m" or "g" in the
>   * replacement make sure to pad to the worst case length.
>   */
> -#define alternative_input(oldinstr, newinstr, feature, input...)       \
> -       asm volatile (ALTERNATIVE(oldinstr, newinstr, feature)          \
> -                     : : input)
> +#define alternative_input(oldinstr, newinstr, feature, input...)        =
\
> +    asm_inline volatile ( ALTERNATIVE(oldinstr, newinstr, feature)      =
\
> +                          :: input )
>
>  /* Like alternative_input, but with a single output argument */
> -#define alternative_io(oldinstr, newinstr, feature, output, input...)  \
> -       asm volatile (ALTERNATIVE(oldinstr, newinstr, feature)          \
> -                     : output : input)
> +#define alternative_io(oldinstr, newinstr, feature, output, input...)   =
\
> +    asm_inline volatile ( ALTERNATIVE(oldinstr, newinstr, feature)      =
\
> +                          : output : input )
>
>  /*
>   * This is similar to alternative_io. But it has two features and
> @@ -150,11 +151,11 @@ extern void alternative_branches(void);
>   * Otherwise, if CPU has feature1, newinstr1 is used.
>   * Otherwise, oldinstr is used.
>   */
> -#define alternative_io_2(oldinstr, newinstr1, feature1, newinstr2,     \
> -                        feature2, output, input...)                    \
> -       asm volatile(ALTERNATIVE_2(oldinstr, newinstr1, feature1,       \
> -                                  newinstr2, feature2)                 \
> -                    : output : input)
> +#define alternative_io_2(oldinstr, newinstr1, feature1, newinstr2,      =
\
> +                         feature2, output, input...)                    =
\
> +    asm_inline volatile ( ALTERNATIVE_2(oldinstr, newinstr1, feature1,  =
\
> +                                        newinstr2, feature2)            =
\
> +                          : output : input )
>
>  /* Use this macro(s) if you need more than one output parameter. */
>  #define ASM_OUTPUT2(a...) a
> @@ -234,8 +235,9 @@ extern void alternative_branches(void);
>      rettype ret_;                                                  \
>      register unsigned long r10_ asm("r10");                        \
>      register unsigned long r11_ asm("r11");                        \
> -    asm volatile (ALTERNATIVE("call *%c[addr](%%rip)", "call .",   \
> -                              X86_FEATURE_ALWAYS)                  \
> +    asm_inline volatile (                                          \
> +        ALTERNATIVE("call *%c[addr](%%rip)", "call .",             \
> +                    X86_FEATURE_ALWAYS)                            \
>                    : ALT_CALL ## n ## _OUT, "=3Da" (ret_),            \
>                      "=3Dr" (r10_), "=3Dr" (r11_) ASM_CALL_CONSTRAINT   \
>                    : [addr] "i" (&(func)), "g" (func)               \
> diff --git a/xen/include/xen/compiler.h b/xen/include/xen/compiler.h
> index c68fab189154..d9b133016bb6 100644
> --- a/xen/include/xen/compiler.h
> +++ b/xen/include/xen/compiler.h
> @@ -53,6 +53,20 @@
>  #define unreachable() __builtin_unreachable()
>  #endif
>
> +/*
> + * Compilers estimate the size of an asm() block for inlining purposes.
> + * Constructs such as ALTERNATIVE appear large due to the metadata, deps=
ite
> + * often only being a handful of instructions.  asm inline() overrides t=
he
> + * estimation to identify the block as being small.
> + *
> + * Note: __inline is needed to avoid getting caught up in INIT_SECTIONS_=
ONLY.
> + */
> +#if CONFIG_CC_HAS_ASM_INLINE
> +# define asm_inline asm __inline

Here ^^^

> +#else
> +# define asm_inline asm
> +#endif
> +
>  /*
>   * Add the pseudo keyword 'fallthrough' so case statement blocks
>   * must end with any of these keywords:

Frediano


From xen-devel-bounces@lists.xenproject.org Tue Apr 22 12:38:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 12:38:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.962606.1353779 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7Ctq-0005C6-Bw; Tue, 22 Apr 2025 12:38:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 962606.1353779; Tue, 22 Apr 2025 12:38: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 1u7Ctq-0005Bz-90; Tue, 22 Apr 2025 12:38:54 +0000
Received: by outflank-mailman (input) for mailman id 962606;
 Tue, 22 Apr 2025 12:38: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=x+QI=XI=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1u7Cto-0005Bt-Se
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 12:38:53 +0000
Received: from sender4-of-o50.zoho.com (sender4-of-o50.zoho.com
 [136.143.188.50]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b6a5be0d-1f76-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 14:38:39 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 1745325506786682.1587355772821;
 Tue, 22 Apr 2025 05:38:26 -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: b6a5be0d-1f76-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; t=1745325510; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=aa9UhWdOKXEvT3xiGSLaciT2D5ok7UuK/bJrKuzbxS6bQM8BejbPAr649gsxoX2Q1pJPPFmxXuOFzRuuu4RGUwJa0SFWoyEQEtH9NbRKBQvwm09IFAuMorJG8wuMp5jOZbw81beG+LkqTz/8sjeXnsfVtFMQsvFskX26FSD8mEE=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1745325510; 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=U4Il1WB3Zhajzw8PrXAZu6yMs2qDAD3yLF/5UshslVk=; 
	b=Dlc9f0CEW1VCZddNG0nIWOQ+2qw1azDs4IGyB9N2vGLmlHcXWxr9EGl7g4iTd/CZVRPnTYR9MHvRQKixFJ5Y3MIGnG21k8UtenPP+scOPo+nGFJntpd48p5PMgWIAeEXMgL2KAdo8YXav3LW/XQsJbmTzdqX9B//faSdvHNBbJk=
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=1745325510;
	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=U4Il1WB3Zhajzw8PrXAZu6yMs2qDAD3yLF/5UshslVk=;
	b=WFPqXjPC/kDcT+8Qt9xtxb1lwfruxFz5nLWD6FYh3PsE4NyHIBU4/zUaeSdi9inr
	ZBzKq7dE4pHs/I2nglceZM9kK7Ftd2z9+va/rYxmsB1NX5R8t1dJ+oUFyBwSOwV7Qpr
	T/AStr9dfbyTG5ZnLz/b6ZZ9/uCXcfPU1yEm9Nk0=
Message-ID: <26cb8a8e-a6e6-4fd5-940b-290a21c2e464@apertussolutions.com>
Date: Tue, 22 Apr 2025 08:38:24 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC 16/38] x86/boot: move and rename sched_setup_dom0_vcpus
Content-Language: en-US
To: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>,
 xen-devel@lists.xenproject.org
Cc: jason.andryuk@amd.com, stefano.stabellini@amd.com, agarciav@amd.com,
 Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Dario Faggioli <dfaggioli@suse.com>, George Dunlap <gwd@xenproject.org>
References: <20250419220820.4234-1-dpsmith@apertussolutions.com>
 <20250419220820.4234-17-dpsmith@apertussolutions.com>
 <382cd6a7-c91b-4bf8-a026-ef0d9e872fe6@suse.com>
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
Autocrypt: addr=dpsmith@apertussolutions.com; keydata=
 xsJuBFYrueARCACPWL3r2bCSI6TrkIE/aRzj4ksFYPzLkJbWLZGBRlv7HQLvs6i/K4y/b4fs
 JDq5eL4e9BdfdnZm/b+K+Gweyc0Px2poDWwKVTFFRgxKWq9R7McwNnvuZ4nyXJBVn7PTEn/Z
 G7D08iZg94ZsnUdeXfgYdJrqmdiWA6iX9u84ARHUtb0K4r5WpLUMcQ8PVmnv1vVrs/3Wy/Rb
 foxebZNWxgUiSx+d02e3Ad0aEIur1SYXXv71mqKwyi/40CBSHq2jk9eF6zmEhaoFi5+MMMgX
 X0i+fcBkvmT0N88W4yCtHhHQds+RDbTPLGm8NBVJb7R5zbJmuQX7ADBVuNYIU8hx3dF3AQCm
 601w0oZJ0jGOV1vXQgHqZYJGHg5wuImhzhZJCRESIwf+PJxik7TJOgBicko1hUVOxJBZxoe0
 x+/SO6tn+s8wKlR1Yxy8gYN9ZRqV2I83JsWZbBXMG1kLzV0SAfk/wq0PAppA1VzrQ3JqXg7T
 MZ3tFgxvxkYqUP11tO2vrgys+InkZAfjBVMjqXWHokyQPpihUaW0a8mr40w9Qui6DoJj7+Gg
 DtDWDZ7Zcn2hoyrypuht88rUuh1JuGYD434Q6qwQjUDlY+4lgrUxKdMD8R7JJWt38MNlTWvy
 rMVscvZUNc7gxcmnFUn41NPSKqzp4DDRbmf37Iz/fL7i01y7IGFTXaYaF3nEACyIUTr/xxi+
 MD1FVtEtJncZNkRn7WBcVFGKMAf+NEeaeQdGYQ6mGgk++i/vJZxkrC/a9ZXme7BhWRP485U5
 sXpFoGjdpMn4VlC7TFk2qsnJi3yF0pXCKVRy1ukEls8o+4PF2JiKrtkCrWCimB6jxGPIG3lk
 3SuKVS/din3RHz+7Sr1lXWFcGYDENmPd/jTwr1A1FiHrSj+u21hnJEHi8eTa9029F1KRfocp
 ig+k0zUEKmFPDabpanI323O5Tahsy7hwf2WOQwTDLvQ+eqQu40wbb6NocmCNFjtRhNZWGKJS
 b5GrGDGu/No5U6w73adighEuNcCSNBsLyUe48CE0uTO7eAL6Vd+2k28ezi6XY4Y0mgASJslb
 NwW54LzSSM0uRGFuaWVsIFAuIFNtaXRoIDxkcHNtaXRoQGFwZXJ0dXNzb2x1dGlvbnMuY29t
 PsJ6BBMRCAAiBQJWK7ngAhsjBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRBTc6WbYpR8
 KrQ9AP94+xjtFfJ8gj5c7PVx06Zv9rcmFUqQspZ5wSEkvxOuQQEAg6qEsPYegI7iByLVzNEg
 7B7fUG7pqWIfMqFwFghYhQzOwU0EViu54BAIAL6MXXNlrJ5tRUf+KMBtVz1LJQZRt/uxWrCb
 T06nZjnbp2UcceuYNbISOVHGXTzu38r55YzpkEA8eURQf+5hjtvlrOiHxvpD+Z6WcpV6rrMB
 kcAKWiZTQihW2HoGgVB3gwG9dCh+n0X5OzliAMiGK2a5iqnIZi3o0SeW6aME94bSkTkuj6/7
 OmH9KAzK8UnlhfkoMg3tXW8L6/5CGn2VyrjbB/rcrbIR4mCQ+yCUlocuOjFCJhBd10AG1IcX
 OXUa/ux+/OAV9S5mkr5Fh3kQxYCTcTRt8RY7+of9RGBk10txi94dXiU2SjPbassvagvu/hEi
 twNHms8rpkSJIeeq0/cAAwUH/jV3tXpaYubwcL2tkk5ggL9Do+/Yo2WPzXmbp8vDiJPCvSJW
 rz2NrYkd/RoX+42DGqjfu8Y04F9XehN1zZAFmCDUqBMa4tEJ7kOT1FKJTqzNVcgeKNBGcT7q
 27+wsqbAerM4A0X/F/ctjYcKwNtXck1Bmd/T8kiw2IgyeOC+cjyTOSwKJr2gCwZXGi5g+2V8
 NhJ8n72ISPnOh5KCMoAJXmCF+SYaJ6hIIFARmnuessCIGw4ylCRIU/TiXK94soilx5aCqb1z
 ke943EIUts9CmFAHt8cNPYOPRd20pPu4VFNBuT4fv9Ys0iv0XGCEP+sos7/pgJ3gV3pCOric
 p15jV4PCYQQYEQgACQUCViu54AIbDAAKCRBTc6WbYpR8Khu7AP9NJrBUn94C/3PeNbtQlEGZ
 NV46Mx5HF0P27lH3sFpNrwD/dVdZ5PCnHQYBZ287ZxVfVr4Zuxjo5yJbRjT93Hl0vMY=
In-Reply-To: <382cd6a7-c91b-4bf8-a026-ef0d9e872fe6@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External


On 4/20/25 05:36, Jürgen Groß wrote:
> On 20.04.25 00:07, Daniel P. Smith wrote:
>> Relocated the function sched_setup_dom0_vcpus(), which was protected 
>> by an
>> ifdef CONFIG_X86, from common/sched to the hyperlaunch domain builder. 
>> Rename
>> it to alloc_dom_vcpus() to better reflect the purpose of the function.
> 
> I'd be in favor naming it domain_vcpus_create().

Yah, that's a much better name.

v/r,
dps



From xen-devel-bounces@lists.xenproject.org Tue Apr 22 12:42:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 12:42:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.962617.1353788 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7Cwx-0007Jx-Pq; Tue, 22 Apr 2025 12:42:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 962617.1353788; Tue, 22 Apr 2025 12: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 1u7Cwx-0007Jq-Mx; Tue, 22 Apr 2025 12:42:07 +0000
Received: by outflank-mailman (input) for mailman id 962617;
 Tue, 22 Apr 2025 12:42:07 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=f4Vg=XI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u7Cwx-0007Jh-0V
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 12:42: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 26886fa6-1f77-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 14:41:46 +0200 (CEST)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-43cf05f0c3eso37581095e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 05:41:57 -0700 (PDT)
Received: from [10.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-4406d5bbcaasm176022605e9.21.2025.04.22.05.41.55
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 22 Apr 2025 05:41: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: 26886fa6-1f77-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745325716; x=1745930516; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=eVU4F1fI1UbsJWlfx7arzsz0Bq7z0pnhG8f2SQJ7/7k=;
        b=a8saeTOavbvBUTsmGK0UhXVma4zNQHi9iJVSuEoPTw3FbigK7rVGMeLgkLJNlXMTDB
         MfmZ3QVEPhDXtge5LS1d35KVY5gVFf7CfcMLabHfHwFFrWcmx7am/YIzEekiIjcxVyNN
         K3ovthiGThmcvKT9PoRJHi7gsoI2eqlV96ViZ674JpfiyQj5p90nJd843ZkB0XtRsFj5
         5gsLeF9On1KduBZUTzjDAaXlzdHUXOnARiku424xFjAzRTULobr2UXgpvLCzv2gofD3P
         QNeeQG7QCVIN1X1tKdmCO6y93+aThSQDwTK86dzyvqBu56ZML75R5oZrfKBbCsRVO/xb
         CQtQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745325716; x=1745930516;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=eVU4F1fI1UbsJWlfx7arzsz0Bq7z0pnhG8f2SQJ7/7k=;
        b=DrM8jwa58mXIk7HiSEUeIP63/F0JrjkwXlMUB4RqiV0nJIE3SUCtcdgqRRxnJm8UZ7
         KDnmEY0kYX0QfsPcfq6LyTmUAEZymsUeVfjmtIeA4Obzz60bFwyEqEATwceFM048bTkv
         VSsYR1dsW/VeImlN7w+xeFpcnS2M6q4nyvZV4PIc3Ii3qhG2GcCeI0cDUTFbbj9pIYZI
         4hBgKcqjj4IXsJiAVGrpeePannbTNwmoeNESinqtuDhcQLCDlc2vL0WAccaOinxErnhL
         4CyuGeCdZXozYOQmBjG9L/QAZvbEh52mBrNnrtRzpEE+/Htb1Rb4gjg/61qONgxR+CZW
         uWYQ==
X-Forwarded-Encrypted: i=1; AJvYcCW/ImbdInoxYLRdUvmFYXMgyp7LdQM4qOrwu1VHtBgbCaQuEfUxjGA9UJcyoSOsv1ISBmDi/q62LKs=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxHZzPjA+agYcPY5PUS4s2hJn2ZcOJKKxC1+aYkD5S9PPNHf81J
	pBpaUgTwciwJaZM/tLO4WoN1Vj3aD3K2ju2PchE9uyZg4qBj/+Unn6DqHYf0SQ==
X-Gm-Gg: ASbGncu851Eog412Yih5QIZVxvarjEJFxSAxnKh5lJi6bIeKbIxhhGYUTnpykRHalav
	PAKnfm5HjpW2dBnXL5U/2tYQMachGBjIl8iXjS/HFnKWhqje/tEtUW8AEq4bSwUJN4/eij7f4fg
	XRTQ4rooLVy6A7wupr3g85+wYsAIqRYs6gtwzfDS73JC41K5MvW8pAObqRTE+6TrzHaVBWT4JTw
	WTAXGpX7qskKne4aqgePqbJcgXEebXi8HrJ4vRSJfvkVCEx/bOGow8xgSXeZwJMBE6Fy+mPVSuM
	PRQcPIZSViZAAk/3oDbhALupt0tXlTLz9zm+QYKrBbtqaBo4Kw/vvCJe3fjmIoYOYO9U+/jydwl
	17GQVoX1LW4Rr+nciQw4AIO3Rlg==
X-Google-Smtp-Source: AGHT+IH7kt6ituyyE0QGcGeVfDbcMqvuR5WGQuBctBLqW7Xjb3eWsz/D/k9bXPB89KMzF8pnR20FBA==
X-Received: by 2002:a05:600c:3c91:b0:43d:7de:16e3 with SMTP id 5b1f17b1804b1-4406ac0edd9mr119306545e9.24.1745325716191;
        Tue, 22 Apr 2025 05:41:56 -0700 (PDT)
Message-ID: <87e14fad-3c5b-40eb-be73-3bb2d63fe5d9@suse.com>
Date: Tue, 22 Apr 2025 14:41:55 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen: Drop CONFIG_CC_HAS_UBSAN
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250422113509.1286581-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: <20250422113509.1286581-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 22.04.2025 13:35, Andrew Cooper wrote:
> All supported toolchains now have it.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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




From xen-devel-bounces@lists.xenproject.org Tue Apr 22 12:42:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 12:42:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.962626.1353799 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7Cxg-0007q1-1E; Tue, 22 Apr 2025 12:42:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 962626.1353799; Tue, 22 Apr 2025 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 1u7Cxf-0007pu-Um; Tue, 22 Apr 2025 12:42:51 +0000
Received: by outflank-mailman (input) for mailman id 962626;
 Tue, 22 Apr 2025 12:42:50 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=f4Vg=XI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u7Cxe-0007dt-9g
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 12:42:50 +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 4c78fe5c-1f77-11f0-9eb0-5ba50f476ded;
 Tue, 22 Apr 2025 14:42:49 +0200 (CEST)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-39c1efc457bso3122228f8f.2
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 05:42:49 -0700 (PDT)
Received: from [10.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-39f069df9fcsm9903574f8f.16.2025.04.22.05.42.48
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 22 Apr 2025 05:42: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: 4c78fe5c-1f77-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745325769; x=1745930569; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=eVU4F1fI1UbsJWlfx7arzsz0Bq7z0pnhG8f2SQJ7/7k=;
        b=F745PGTHERtYksxNmooF+f80F2O9ZlMdKUUvtFIfdBvfHvzB/3B7TUfHu/lSGdVGce
         jKAh9iTtAuD1VhBQfWaE61FVw9nA8REsp83nEhTMK2TTb/wJg8PBRyeaQ3c6bIQ2RRye
         AeczrMIU04SKWfMUVd8xnFDQv/uGM/r9KAAn01F8ocwe7kGZUGelqhDlttRivE+7bLVB
         I+eltV74DB3fXd1/38J6p3gftXaKTpCh2wHBpHVBSCZ6skCx8KBYMokt3DzAZID/UQj9
         kuBYuj5oPh4ut88x+yIFL1walEDRx4/tpEz47uFVJtdGsMHWztJnYWi4Hl4dYnaO8+fp
         SoPw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745325769; x=1745930569;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=eVU4F1fI1UbsJWlfx7arzsz0Bq7z0pnhG8f2SQJ7/7k=;
        b=TQvXVNDulFLlDBa213OmKRBDqjrbddGxb0/9KCiMeNDtJMicl9RXUuGSPisj88erAX
         /D6H/D6gA3nMLU8y1sjIZjtvSAdkrngrQ9RhSKo7gzc4gPNiBffF041Ap7CXXImli13k
         jkujD6TdxbLQwzpnAvCKVz1U1UismGlx3KCJBqXA+M4hNh7dX8upkFU8bTwWIogVIaOs
         YLTOyXO7MBSzxayr2UAGjbU0tqT6+fFq1rTAkzEqHl4jn5btb3wBGsMnDdqQe2SqKI1J
         1Nuwg4BwlMDiIMch1Q+IzgyxOr7T28avvfkEpSxDXYRospTnKsIWQlDl04a0r3Y8lPx2
         c+Ig==
X-Forwarded-Encrypted: i=1; AJvYcCWlk1WwVzF1wBNvGk9VCw31ZbxZHjpE7dHFUmyiD5PNabysUp/PLS18fIPGS/Woc0Nup/VI71aVRQs=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzJYa7Ue7AL5pdnZCf43HHE04kzY1PQ8U2TezFaAqXCydprA20K
	34r9lpYRd3thzKEeZjl0xm3DeYOjpXmodzyZ9TsySkucQFErS1nd7vDSZTfFDg==
X-Gm-Gg: ASbGncvHHYO6p9PUv5EdR5rh4JtImJzJvGIsDH2qrUjxoLQ4FpmxFY/llZ5+asGBR1M
	Kp9mm3niebpmPMq3qrU3Ij2hpxckHoPlY3XWg6ttm/cM5gI6PEAK1kOVaClV50kIki/M5SiyI48
	IcEl7iiByZ3oMuvLasAwRcMF2xKYugKTX6UNFshrYAcCKk+n5rUqOl6LJEP+9BbwnlGCrewvZUr
	ttttWbwLNKUfhaZWpMJwRNwdffWDyMmYgT/l3ne4PK4fbr9DvOIRFeisur/A8I3Wi2kLEypLkxo
	9OgFoACBPdlsZi5E6Zs13t+Hq/wXw66hMrtmf5w36hx9B66aSl0JD8avyCy/ZicLq4yerWBe8vK
	qMPSaV+S2bcDisczQtnhDVE5gXw==
X-Google-Smtp-Source: AGHT+IHw5Mh/xN4Cg1cH1m8YrsqUquwKdRO7rJjE74W0xDJE6yapOttEyX2hh50/GLYscHMbgZpBGA==
X-Received: by 2002:a05:6000:40ce:b0:39e:cbd2:9211 with SMTP id ffacd0b85a97d-39efbaf70b4mr10913809f8f.55.1745325768749;
        Tue, 22 Apr 2025 05:42:48 -0700 (PDT)
Message-ID: <603614cb-186c-4d29-93a5-2044575ed469@suse.com>
Date: Tue, 22 Apr 2025 14:42:47 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen: Drop CONFIG_CC_HAS_VISIBILITY_ATTRIBUTE
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250422113537.1286981-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: <20250422113537.1286981-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 22.04.2025 13:35, Andrew Cooper wrote:
> All supported toolchains now have it.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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




From xen-devel-bounces@lists.xenproject.org Tue Apr 22 12:52:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 12:52:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.962639.1353810 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7D7B-0001g8-Tx; Tue, 22 Apr 2025 12:52:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 962639.1353810; Tue, 22 Apr 2025 12:52: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 1u7D7B-0001g1-Q7; Tue, 22 Apr 2025 12:52:41 +0000
Received: by outflank-mailman (input) for mailman id 962639;
 Tue, 22 Apr 2025 12:52: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=f4Vg=XI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u7D7A-0001fv-6N
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 12:52:40 +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 ab28768a-1f78-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 14:52:37 +0200 (CEST)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-43cef035a3bso35467395e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 05:52:37 -0700 (PDT)
Received: from [10.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-39efa4a4856sm14929166f8f.81.2025.04.22.05.52.36
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 22 Apr 2025 05:52:36 -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: ab28768a-1f78-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745326357; x=1745931157; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=bE/jHnlYVgixbgWAMsy/KdCYr+LmN1M00uv5a0GYY6I=;
        b=cuPQUka9c8jvP+sFgTBBM+5AaL0kh+YmHYQNu7e7U/Bw0wBPcCq4CrVklz62Tuz7nY
         MHC4I8xxOUhQxq3ESTWArO946n/sz8zRgGQJEyMTEAFD7Lt98vhr8/CKBvdAfHZyHj2F
         QSvYFEB8fj+ldFK75y4De5nPVBYVMYzAmuihbTs/fdgzjDoFIsOPMiRfep1pYV8JBNs3
         Py/+/rO0Aw7JDRSNLAiC+OPoucjXuaD/QiAtA1BYAqt3/Q7ruhDRndkbmQ2UZRi8AoKI
         V8ikrzWaBtloIGmea3Jr+3DpJq5PB+sMiIGu8N6gbGr0YN31SbsNXfyvTP+tREMqUoF8
         OHXA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745326357; x=1745931157;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=bE/jHnlYVgixbgWAMsy/KdCYr+LmN1M00uv5a0GYY6I=;
        b=YfANFf6om1ZKaJzc/XwCZ20m0+sq1UeyFjNrZmISTRYbv+J6qYijAX5to/wiOt64Vo
         u2MLIkIvQ5cUC3OUfqvfgEqxjYgLThfXM2inVJwXNjv2Lh5tF2ox7m3ya+gPM0n3r2qk
         6L5JB5yhxwTfMkyoSZ8STcrRc5P7xj0NJNDT8bRJOyBW1qVe1sC60dYN+AcNISB0nqt9
         Fd8xQP8bwcoiXL9MYaIAzMc6GYxBAl4zKeiVrwWlhWmMut6bxfjXBMRZgUG69KOnMWbj
         nqMknQ75n8RMM9JPrDjjoOLi+0QN746i4oEhkOU5rVxfA3baALmaGe8LD/z43IvXi0S7
         DgqA==
X-Forwarded-Encrypted: i=1; AJvYcCWbe2GVD6G9SxRe4xsMa2yV3ZQvw5jye2GQ8vQJ+g3jhQrIvVkIodEX+0zRJr7ww+5e/qLZVqy0/lI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwFbbI6uUnojgQOqiUgRkXp1QaSIzNt4wvJ7swUdF0riQt+Kv19
	af0wSSvm3XxdjjlQsjesUVOpXUga4wnnWmU2uQGlZMoRFuSmiWIC/jgSaOIZSA==
X-Gm-Gg: ASbGncteZSzo8IPnSWS7UgnSmUwhTtMI6J8YAyj7fR8N8c0jc35EYAMhkIOVPsbspLi
	AdeHFPY5yovYHYqMM9xbdB2IQCJ8LunIIXAJuraOHJuR3bycg9emGZhwcGZXRQwcjJe86ZOKVFh
	r8MPsJZyOBVshoLgx5bo/gpMfH8AfvxeolUKmLQK8RlAIubEdQi952r5lr+ccLlciS7HBy2amMw
	XqmqX7IrTpOD+mqz6rBcErI9rf7KUj08AniQPXCCEUb8h1d3ur/puaQ2uOPpN8XSRXBlfuBBO6G
	yTYpSfVp1arvVd1rQSWn55NPZ4IX7/igF75bJmu8LfEl/luS2tn9wigfMsNgBW+dw2wHWuvGo2C
	yD/IMEN/cMZFiP6xbdSxgipt2/g==
X-Google-Smtp-Source: AGHT+IEKobdzgQVn3tWdMvVuaZwFKRs1j63qCbgoiumvlDSXlviK5Bg7pGUWWjQKHIQmFnPYHimm9Q==
X-Received: by 2002:a05:600c:4fcf:b0:440:6a37:be0d with SMTP id 5b1f17b1804b1-4406abb245cmr146779015e9.15.1745326357216;
        Tue, 22 Apr 2025 05:52:37 -0700 (PDT)
Message-ID: <9990d438-6ebf-4308-89f5-ecacf04ea89b@suse.com>
Date: Tue, 22 Apr 2025 14:52:35 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen: Use asm inline when available for alternatives
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>, Julien Grall <julien@xen.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250422113957.1289290-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: <20250422113957.1289290-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 22.04.2025 13:39, Andrew Cooper wrote:
> Compilers estimate the size of an asm() block for inlining purposes.
> 
> Constructs such as ALTERNATIVE appear large due to the metadata, depsite often
> only being a handful of instructions.  asm inline() overrides the estimation
> to identify the block as being small.
> 
> This has a substantial impact on inlining decisions, expected to be for the
> better given that the compiler has a more accurate picture to work with.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

So this is effectively a generalized version of
https://lists.xen.org/archives/html/xen-devel/2022-08/msg00712.html
with ...

> --- a/xen/Kconfig
> +++ b/xen/Kconfig
> @@ -29,6 +29,10 @@ config LD_IS_GNU
>  config LD_IS_LLVM
>  	def_bool $(success,$(LD) --version | head -n 1 | grep -q "^LLD")
>  
> +config CC_HAS_ASM_INLINE
> +	# GCC >= 9, Clang >= 11
> +	def_bool $(success,echo 'void foo(void) { asm inline (""); }' | $(CC) -x c - -c -o /dev/null)

... detection once again done in Kconfig (only). I don't think I had any
feedback there; I'm hence having a hard time seeing why I should now like
this any better than mine was liked.

In any event it's clearly increasingly necessary that we finally get the
detection aspect settled.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 22 12:58:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 12:58:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.962651.1353819 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7DCJ-0002GO-Em; Tue, 22 Apr 2025 12:57:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 962651.1353819; Tue, 22 Apr 2025 12: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 1u7DCJ-0002GH-CE; Tue, 22 Apr 2025 12:57:59 +0000
Received: by outflank-mailman (input) for mailman id 962651;
 Tue, 22 Apr 2025 12:57: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=f4Vg=XI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u7DCI-0002GA-0b
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 12:57:58 +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 695a76e6-1f79-11f0-9eb0-5ba50f476ded;
 Tue, 22 Apr 2025 14:57:56 +0200 (CEST)
Received: by mail-wr1-x42a.google.com with SMTP id
 ffacd0b85a97d-39c0dfba946so3464807f8f.3
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 05:57:56 -0700 (PDT)
Received: from [10.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-39efa43bef1sm14938907f8f.49.2025.04.22.05.57.55
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 22 Apr 2025 05:57: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: 695a76e6-1f79-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745326676; x=1745931476; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=XeEWnGwG0q3dUrLy23IGzh+gE6GAFlLjKebReEEWiD4=;
        b=Z/BFEROsQhI6qFOy4jdU9tFm8jdn4+QzH3cdLWxF5vFwkChL3v5qNDRdxiqYYbHnhw
         FMQ9bDIErlbYr8EEuAl2ryTepn84hzaOcrIcBqDD/byGk7zChmb0AmLTarQnwmGuJTgR
         7pFGvkK0OAsV7vNcmHQI047X9StvxJQQBKcA8KElnY2vNte0RTZfULW/2ZXaDDYEmDrs
         JqrlA12iJejLOAPr7agtgZXphZwpjxE/jIHpBRXdVH0sh2Sp7Dgn5Cp7WhaDtOii6hSt
         yEja7soZ89zthH5jdKFhvVuJxymEUwp6pQeobkagO06JZKuzWvYvIp8V69FHlKnUFCEN
         kONA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745326676; x=1745931476;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=XeEWnGwG0q3dUrLy23IGzh+gE6GAFlLjKebReEEWiD4=;
        b=DwwM6yARQ5JgjmzwMvkp9jxpuibklLU+EDuWvmp8jvseo8HdsE52guSI3WvFCxkNum
         zwhDVZ4RmovagBTTi31jtaUzNNTR1naSYtzcbyskI14kiuc5yCzaeJc918NgMpEcbQBK
         9s4oHM7UDmGrccbal4mBG9EtLa1QiWpdklyUbmynPfwc7AjxomG3V9x78vyQDPcXeQN4
         SLRBgIX99P2Wd+9ltHfHXmFxZwphOt/fJdRok2ggPS3yPhxkTrwQT0e4fHZwjFg52FP4
         PBC5L468T4lLeOK0r2TzzlTZcvk98w2LpgVVxU+4T5n/MbMDEoi3zc362/LZWtXbocuu
         vOpQ==
X-Forwarded-Encrypted: i=1; AJvYcCVibDUdKMIBODCMPQL1nM5fVaGpU+WaRrje3wgCsHRT1OULyHjRY7l4oruHi/e+fGeVITo81qVaDIU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxGhVVI8kFtOZE17RSOhj+nLLFClimi0HFh60yEAkEDf2xYZI7o
	7aFIRzAKc9l+YjT1CJozf2ju401IrbIA3VScOw520EPtVfRJJ1DvhpgxhUn6iA==
X-Gm-Gg: ASbGncuefDGsjpZUBB/YN+zS1GGVPfTxDX0kO9q4+5GoapnTyyJSUjUJXoAp+MuFosf
	0sqLL6DgWYucj7meRDqiXhZ+bdYSV0+dmXe+c5SKxCin+x5GyYlVUNVYoKtZwwpwmLxZUWGL7q4
	mFFWYA7ZzOhMIkd/WlGarmNCdYFcd/STkwnjSWUom99yls7ij0FqSNn8d99czCExxrb7Ob6oBAg
	NvTq7Jnwtups4E7TgBK1rwKnwBQToUQogH2mLnjVAhKVpDjkHFY7czexAOi7cqwfqPvw1Scolhq
	E6F79YxvFOOuq2ulPYGL1h3oA115fNZ9RvUiSt/3mjMnRoEezzEAP9IEQbKv3eaHeFRlnt3mr9n
	X1OLWMo9a1ucLBqtQbjzayQgsCxgy4rD9xdj8
X-Google-Smtp-Source: AGHT+IFBY1RfGcULCf+SFTYFid41qr3bOAVTqUxl5ZXZjq0+2P6hDxTviQ1CRoE87Y+ykUxhLqcxFw==
X-Received: by 2002:a5d:6d81:0:b0:39e:e557:7d9 with SMTP id ffacd0b85a97d-39efba2e660mr12481150f8f.5.1745326676207;
        Tue, 22 Apr 2025 05:57:56 -0700 (PDT)
Message-ID: <d2a16309-2a28-4669-bb14-6e348034d93a@suse.com>
Date: Tue, 22 Apr 2025 14:57:55 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen: Consistently use alignof()
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>, Julien Grall <julien@xen.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250422114134.1291254-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: <20250422114134.1291254-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 22.04.2025 13:41, Andrew Cooper wrote:
> We have a mix of all 3 spellings in Xen, as well as having compatibility in
> compiler.h for older C standards.
> 
> Remove the use of __alignof() and __alignof__(), which reduced code volume a
> little.
> 
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Acked-by: Jan Beulich <jbeulich@suse.com>
as it seems sufficiently unlikely that ...

> ---
>  xen/arch/x86/xstate.c                |  4 ++--
>  xen/common/coverage/gcc_3_4.c        |  4 ++--
>  xen/common/device-tree/device-tree.c |  8 ++++----
>  xen/include/xen/config.h             |  2 +-
>  xen/include/xen/percpu.h             |  2 +-
>  xen/include/xen/xmalloc.h            | 16 ++++++++--------
>  xen/include/xen/xvmalloc.h           | 16 ++++++++--------
>  7 files changed, 26 insertions(+), 26 deletions(-)

... the headers here might want re-using from outside of xen/. As mentioned
on Matrix the other day when a question was raised about asm() vs its
similar alternative spellings, I think it's generally a good idea to keep
headers tidy of possible name space conflicts. Just that for the ones
touched here this seems pretty unimportant.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 22 14:31:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 14:31:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.962672.1353828 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7Eee-0000ic-Pp; Tue, 22 Apr 2025 14:31:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 962672.1353828; Tue, 22 Apr 2025 14:31: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 1u7Eee-0000iV-NH; Tue, 22 Apr 2025 14:31:20 +0000
Received: by outflank-mailman (input) for mailman id 962672;
 Tue, 22 Apr 2025 14:31: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=NnGu=XI=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1u7Eee-0000iP-3Q
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 14:31:20 +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 73af3365-1f86-11f0-9eb0-5ba50f476ded;
 Tue, 22 Apr 2025 16:31:17 +0200 (CEST)
Received: by mail-wr1-x42a.google.com with SMTP id
 ffacd0b85a97d-39ac8e7688aso3213093f8f.2
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 07:31:17 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-64-225.play-internet.pl.
 [109.243.64.225]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39efa43315esm15227413f8f.26.2025.04.22.07.31.15
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 22 Apr 2025 07:31: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: 73af3365-1f86-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1745332277; x=1745937077; darn=lists.xenproject.org;
        h=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=Pzhz5Z4svm9Ipol0ctPoC9x+X53KTEygxDK4TbkpdtY=;
        b=Fh+9D8l3jVMApC7RTsNkGk6Yhnrfa9VOzEE+BLkvTFtNEQLvju4Nutn0Rfb4u+8XKU
         201gk3O0yyv23wbzLTI+Wt84CYHhfoQTRYtTeLwWOPPZU9lBmCqjcZfEi8Fd38m5vChQ
         rXYbvG1WI/WcS4R9L3UBDlUCHas90YfzKF5v5vV3u94Ww9pdyPMKbvNxY7j8/J6x2fmc
         A8dAZY5deiHqXHp7YeYBF2Js+QE9zccs3q+nO+emSyW/5z04/+muDQT2NcUmmWEMEkrR
         nCQFU54vIzc5Y3gzvuEx+RN8z/D6Tzy866kaRZnyoPzt6hEam+sHrB/Aj6kBBp+NJKxa
         iF2w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745332277; x=1745937077;
        h=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=Pzhz5Z4svm9Ipol0ctPoC9x+X53KTEygxDK4TbkpdtY=;
        b=F0sbpzvFphLRoYwwciS+lpCMPhwiDIsZHtma5I2VUm8GUE5P7rWnfWuLA+KKxCIkOt
         pCP0lGqw5ovsKp0b5qzxnmZ/9g0JR296JExzroyogvbdb5UPNGRFEzBnszVe+Zy8cGfi
         aiVQK2+AtXc4EfAIBMeqy3TDzIB79iYZxdFywB+5ehUYSORGVlK24bNhHQh9jg6ByvYW
         VDv+JEPbn3oSPXpvQ2cBc/4y2mB1w+rfRMX7c2H5vZToEf1Mixr5zLabo6saLV0Vz+8D
         5Q1ZfSExPmQufunJTvym8tXgnsB82TBVfJn5fgJVTN2lwjQOZTH0qKGdmakA5vueM7mv
         VkEg==
X-Forwarded-Encrypted: i=1; AJvYcCXZRO0tQLYXgj0qJZEp+4q9CQi4A4m2uH+q7wHK3Y/mXA+yeOepJm/4c/ju4FE/EnOH+7Jm0Cu7vFk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwJdP2SBEOWH/u3at5ax56+bxw7aloBbO/sH6uQXYwoTRQtS1LC
	R3zvdPvsg95XU2Wlo5SiD4QRMk0k0kJ6uyRvXlqMTGGtB9kOrFlS
X-Gm-Gg: ASbGncv/PXHzYd+dqnpRIxxCRlUDeKNdr7bwDkuSBaMUFJPv3DUYCp2m2uCnSg/sjWB
	i6SdtB/1PcoBNQvo8j8TcigrssjCyxY+E8/c92Y7gFoX/Mqedtc7syWgQzNyV79vSRblhok9UXD
	ansoeieAPIKWow9dslvPd2x62Fv8oaVZJNMizNevVEXAeAAL8Cszzz+Kb6QGLDdP1B6lJ9XzGoP
	OMBuzLLgrjTUVHxQ4O6+0GF/wE+yf5p8VcMWNnOv5jusTVSP7Jr7tcYoh0jgfjlY6k2LDPIZtWu
	Yjtx5YITMfdE02K0xKC2mzgNa5uvv1KJi2mSX93QqjbqoKm84f+it8i+r0UR20OmzXmUXsjs1LR
	XP1Y7UMhYv1ChDyDW
X-Google-Smtp-Source: AGHT+IEvNHEcZQdlImYphmVebZ6XhYAyC4/lahzIDqH+Y2XPhIdceAv3tlXN+plebE3USH7GZ0SR3w==
X-Received: by 2002:a05:6000:400d:b0:391:22e2:cd21 with SMTP id ffacd0b85a97d-39efbacdcbdmr12255022f8f.36.1745332276617;
        Tue, 22 Apr 2025 07:31:16 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------VFPEvqbyl7lOVLOcFbd0TO8o"
Message-ID: <7856ff9f-3cd8-4591-930e-9c9d43cedcd7@gmail.com>
Date: Tue, 22 Apr 2025 16:31:14 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/8] xen/arm: drop declaration of
 handle_device_interrupts()
To: "Orzel, Michal" <michal.orzel@amd.com>, xen-devel@lists.xenproject.org
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <cover.1744626032.git.oleksii.kurochko@gmail.com>
 <ec1bfe540b4588c749fcdc932bd93da96db1d8a2.1744626032.git.oleksii.kurochko@gmail.com>
 <b6bb9905-befd-4ebd-a50d-a5a1c82f53bc@amd.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <b6bb9905-befd-4ebd-a50d-a5a1c82f53bc@amd.com>

This is a multi-part message in MIME format.
--------------VFPEvqbyl7lOVLOcFbd0TO8o
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 4/17/25 9:38 AM, Orzel, Michal wrote:
>
> On 14/04/2025 17:56, Oleksii Kurochko wrote:
>> There is no any users of handle_device_interrupts() thereby it
>> could be dropped.
> It reads as if you were dropping a definition. There is no definition, therefore
> no users. Prototype was added by accident in:
> 8d2c3ab18cc1fce46945bd3aa1819a7aea0c564e

I will reword it to:
  There is no definition of handle_device_interrupts() thereby it could be dropped.

Should I add Fixes tag to mention that it was added by accident in
8d2c3ab18cc1fce46945bd3aa1819a7aea0c564e? Or it will be enough just to mention that
in the commit message?

>
>> Signed-off-by: Oleksii Kurochko<oleksii.kurochko@gmail.com>
> With the commit msg updated to be more meaningful:
> Reviewed-by: Michal Orzel<michal.orzel@amd.com>

Thanks.

~ Oleksii

--------------VFPEvqbyl7lOVLOcFbd0TO8o
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 4/17/25 9:38 AM, Orzel, Michal
      wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:b6bb9905-befd-4ebd-a50d-a5a1c82f53bc@amd.com">
      <pre wrap="" class="moz-quote-pre">

On 14/04/2025 17:56, Oleksii Kurochko wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">There is no any users of handle_device_interrupts() thereby it
could be dropped.
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">It reads as if you were dropping a definition. There is no definition, therefore
no users. Prototype was added by accident in:
8d2c3ab18cc1fce46945bd3aa1819a7aea0c564e</pre>
    </blockquote>
    <pre>I will reword it to:
 There is no definition of handle_device_interrupts() thereby it could be dropped.

Should I add Fixes tag to mention that it was added by accident in 
8d2c3ab18cc1fce46945bd3aa1819a7aea0c564e? Or it will be enough just to mention that
in the commit message?

</pre>
    <blockquote type="cite"
      cite="mid:b6bb9905-befd-4ebd-a50d-a5a1c82f53bc@amd.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">
Signed-off-by: Oleksii Kurochko <a class="moz-txt-link-rfc2396E" href="mailto:oleksii.kurochko@gmail.com">&lt;oleksii.kurochko@gmail.com&gt;</a>
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
With the commit msg updated to be more meaningful:
Reviewed-by: Michal Orzel <a class="moz-txt-link-rfc2396E" href="mailto:michal.orzel@amd.com">&lt;michal.orzel@amd.com&gt;</a></pre>
    </blockquote>
    <pre>Thanks.

~ Oleksii</pre>
  </body>
</html>

--------------VFPEvqbyl7lOVLOcFbd0TO8o--


From xen-devel-bounces@lists.xenproject.org Tue Apr 22 14:32:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 14:32:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.962682.1353839 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7Efj-0001EF-30; Tue, 22 Apr 2025 14:32:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 962682.1353839; Tue, 22 Apr 2025 14: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 1u7Efi-0001E8-Vz; Tue, 22 Apr 2025 14:32:26 +0000
Received: by outflank-mailman (input) for mailman id 962682;
 Tue, 22 Apr 2025 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=1zWz=XI=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1u7Efh-00010Y-4d
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 14:32:25 +0000
Received: from NAM12-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam12on20623.outbound.protection.outlook.com
 [2a01:111:f403:2417::623])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 99dd7f82-1f86-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 16:32:22 +0200 (CEST)
Received: from BN9PR12MB5273.namprd12.prod.outlook.com (2603:10b6:408:11e::22)
 by CH3PR12MB7524.namprd12.prod.outlook.com (2603:10b6:610:146::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.33; Tue, 22 Apr
 2025 14:32:18 +0000
Received: from BN9PR12MB5273.namprd12.prod.outlook.com
 ([fe80::cf66:58ab:47be:4b13]) by BN9PR12MB5273.namprd12.prod.outlook.com
 ([fe80::cf66:58ab:47be:4b13%5]) with mapi id 15.20.8655.033; Tue, 22 Apr 2025
 14:32:18 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 99dd7f82-1f86-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=mci1DKuVSeMxX2ukNQM7S73VKEHpXyXcxCS/1ETwgcwqccLDDhEnEgfKFhG7OvAt/o8U7GPt9Cik4blDbQMNWPUTeUwnyXJ02a8oDOPKs5bSJeMT+VjBltiaQSFAM62gJKRAkh8vaWyL0zAF8AEfrXqHefp2V4XeS+MAWzD8wymhNTmPrhIfgyFnl8+R1h/jnMny2BuU5AaFDaCYhuDKH9EAltE76xO94mcXVZIMBeJswOUJREePW2ReERyIXEC4RggqA+PM5lAMO+He4Y6irl0igwG9cuKpgjf8BDt7atNtzboauKaTn0qmFUsg5fp4YndRG5QX9YkTadNIxQGT4g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=VZwLw7lY6hQLgw9bsrxesqQ/4PM1E9WVEr6CrY8ffSY=;
 b=dVeAgm54UpupGdiAmhEZHRaPAGLKyvvWfIxhM1twxTmQgsR6NNl2iO+rr/ZfjhCODV8LE4jV2WcNvN/jJy4940XiwJIQzmfacz3VxwKRZ+x2RFuAbHWb1ioq6jLyIDHX2yES4kvYXLcVu7J0Vku/Ns3WaoCcF2bDqrVcoQRzN2n0P30jkenH43lHm6IpSmSAFU99dvjUfeS4g7zbUAvixes8oYePUD6bw62B6rqB9dJKc40MDK+gSnoKEF6mfHMkNJ1IY0QuSeCL1Qw+cANxVP4mLT7UHg9xX9juV0HKIorheHAMQFwvtwVRiAnW3JgC7MsDWwe3anJdz+Dg/W/TqA==
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=VZwLw7lY6hQLgw9bsrxesqQ/4PM1E9WVEr6CrY8ffSY=;
 b=jZiUZro2HX5jmi+BcdyxKL8o7/3WtSJoZPpmH3tI7DO/2qqTgJA9DSVUf3pQZBNBx1zv/T3O3wPowOa0I4m8V6oExvsbXMsbNltjw4H1u3KAVmnhKjpYyEYVs8DIlP2+rLmYWycMraQ3xOJZA0zVMEBbHDpxN8Eou4z3bAwAO+w=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <50a1ea9d-f1da-410d-9129-967d8283b5b8@amd.com>
Date: Tue, 22 Apr 2025 16:32:15 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/8] xen/arm: drop declaration of
 handle_device_interrupts()
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: <cover.1744626032.git.oleksii.kurochko@gmail.com>
 <ec1bfe540b4588c749fcdc932bd93da96db1d8a2.1744626032.git.oleksii.kurochko@gmail.com>
 <b6bb9905-befd-4ebd-a50d-a5a1c82f53bc@amd.com>
 <7856ff9f-3cd8-4591-930e-9c9d43cedcd7@gmail.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <7856ff9f-3cd8-4591-930e-9c9d43cedcd7@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR2P281CA0138.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:9e::7) To BN9PR12MB5273.namprd12.prod.outlook.com
 (2603:10b6:408:11e::22)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN9PR12MB5273:EE_|CH3PR12MB7524:EE_
X-MS-Office365-Filtering-Correlation-Id: 8b24e4ca-7226-4d59-b9d5-08dd81aa7c40
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?SDVvVGhrSjliQllYbUpkVWdMTUpEMXp6encxTGNNU1VGVWpoR0NxZjNHcjhy?=
 =?utf-8?B?MTN3djg2NDdabXM2aW1ubFcvT3BVSXhTYmpZNUNVNFptNmtaTHY5WFVxV2Zr?=
 =?utf-8?B?akJqYW9QTFBVSTJVQ3pOczhVWFB1YXY3UENhbTlrdmZTRlRWeW80eXdqUWFW?=
 =?utf-8?B?Wmc1SW1sUnJuU2h4UWhIRlduL3ZGSE9oVm9lVTN0OFRBTWwwa0VHVzRhWWRu?=
 =?utf-8?B?Znp3YjJpOCt2SHNMdlVVVlV2Rmt5OVY1TVZKR2REZnJSWmUxUGNrRzZuT3pv?=
 =?utf-8?B?RTNPRkR6eWk0RkVkS3pqOUNpR2ZjcU9nMHBnMlVLaFVDdFJFL2dTcWpQVGo2?=
 =?utf-8?B?cHA1TDg0d3RiVTNpNDd5OUd2bmNSTUNaaERSZ254N1RYM0pqMG14cEJCWUkr?=
 =?utf-8?B?U29Cczl1YkxzcmxKYjlLSDg2QkRsOXdMUDlSUTJiblN0WXZXZm5HQTVyQS9D?=
 =?utf-8?B?MzhyWkJkbmlWZXpMVFpuWWZYb04vbll3cFdqWEl4amorNk1MOXVyenFheDZw?=
 =?utf-8?B?SldIRG5QSmJ4d1YrUTlhSzdNZ1lld3B5eFlZRXVQdnhOMFczZEVxK3Fkazl6?=
 =?utf-8?B?a2RZellRalRGNTQ1NVdCT3ROTDZlN2pMVzZTbHRjMUJack5ZTmJkMmpFSDhm?=
 =?utf-8?B?RExxQmlhSVJCWkJFUVIraWowbjJNVGhidmt0QnpwM0tSbzZmMmltQXgzWUdm?=
 =?utf-8?B?dkFzR0xyWjFVUnM4SkJEdjBReGJGQmMvSGdRWHEzZ0F1RVdFVndBSlNuSmhU?=
 =?utf-8?B?VFdUT2RVaDJBNkZBVWRJc2Z3bTdrdEtjd2xoUVdaY25mekNtNi8wN1VEK2ds?=
 =?utf-8?B?cmlyZ0VIL1FEOWM5U29tbTc5cmo4dWN2NVNET2hBS1JvZGNuV0t5M1NoaDVW?=
 =?utf-8?B?ZkVwTUdBZ21HaTVscmpQbkUzY2F6R21hQ0lvWGxnOGMrUUkrSG4xRXFXV3R5?=
 =?utf-8?B?N0VISHg1OTlvRkFyQ3N3NStGdnRCV1JidTI3QUNMOXI2ZDB2elZ0N2pGaVZR?=
 =?utf-8?B?K2JuSmdoWEtiZ0JTdzN3KzQyUWFQandQdTJmaXp3ZHZ6UksxekFBREIyS2NX?=
 =?utf-8?B?NG13YTFxRkpRWGUyclBtbXRad1Bnb3NhMURNNEN0UWhMUDhqN1p4ZElQM21z?=
 =?utf-8?B?UkhGczBzMlk0VnVTQkEyVm5TdzVLUDJZbVpIcHI3QjdJb3dCVWF3QkZMUm5H?=
 =?utf-8?B?VWZ3QzhTQkxvakVoZ25uYithTnJQNDRXa2ptajlKZHdVL25jQUVYRDgyRHlp?=
 =?utf-8?B?S1AwOS9BSTFrcTFSWFNwUVB1WUJFU2Zuc1lNZmlQTEhqZnVlZ1paWm5JTlpt?=
 =?utf-8?B?NDJBNVFkMDkyem1PMnFiM2dTdlJ5TW8wcks5ZC9VSWhvbTU3UkVMYU5MMXJD?=
 =?utf-8?B?emZRR2k0V1ZDU0lzeTk1Y3R2amtDYzQrdEJFM2M2b0RRU3ZhSGIxQjhnS1lZ?=
 =?utf-8?B?YXA2b3hZdEhYUXZ2K0xlUWM2WS9hYlR6M0toSmtvbGhOcGxEV29zckVLMlJr?=
 =?utf-8?B?Z0ZDT1I5bGkxWXJacHdyeVAza3ZONjZ6d1owVGFrRVVyamFWTUFZOXFxY2Q0?=
 =?utf-8?B?TGluTzg4L2JKcG9SMWZTQmpYU29lVzU1ZHZuQXFVNnF5blFRUThFNkRLc2Vn?=
 =?utf-8?B?emFjYXJqakVKd3JsanFVQ0xiVHVrYUJGVVlEeE5wRW5uQkNoY2s2OUgyOGYr?=
 =?utf-8?B?VG4xYzYwVTVnYnJRR3ZweXZNVHBWdzdQS2RXRCtTSm5Hb2xMYm5Xc3hHQ0dO?=
 =?utf-8?B?UmtKOWZ3bzdrZy93ZXpqSGhXNlFhL3Y1OVdtWGRJVzhqdjgvSFM4eU9Icklx?=
 =?utf-8?B?b2JTU2E1dmFHdW95UjlnWlNEcEtXd24vNlhFNEhwN0orUVV1aitMNnUvaFBu?=
 =?utf-8?B?K0huWDZjRlRLSmVxN1FDNGh6THJuUzZZN3dndUJrbW81c0ljeWZkT3dBcUQ3?=
 =?utf-8?Q?WXxkgpjUGL8=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN9PR12MB5273.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?K2ZPSDhaTW5yS1RMMmJPaVBkZGxTUEU3M05IRUhCTS9kTm81L21uS05sZUVq?=
 =?utf-8?B?cHAvbk0xWGViVlE2dU1qbFQ5VHBTb0o3ZGZuaytMRk1lbURKc3ptMVZqUU1R?=
 =?utf-8?B?cFpZejJNdGlSanZjYzdsUlpHdXU3RklyV0R3RjZQRmZnRXdVZVQxWTRZK00y?=
 =?utf-8?B?ZmhNMU50cXUvR3c5Rm01UDMwVnFJTDdTNGJCVGt2Y3YrdGswcHBLSjdLS2hF?=
 =?utf-8?B?bkhYaDdnTlA4OEYwNGpJdzBGOGZvS1QrQkozMmNkMXBWSUtYekdlMTBpaHZo?=
 =?utf-8?B?SWxDOC9pTXZIRDBCcC9YajBhZENEcXNETERkYXRLTTdwNHM3NVRhYjlwOWM2?=
 =?utf-8?B?S3pCa1FLNkNqbVFWYUFIcmxyOFRXcHRDajNSV0paOS9qcWdONWlMNUd6bllk?=
 =?utf-8?B?UEZVR2ZsSi9UU2NVaGR6WElHNVJvb09jcjIyUmxnZk5iTTdwT2JIRnljSjg0?=
 =?utf-8?B?NGF0VWxYVlRUZWhKYVFMSXBYcVVmcGo1c1pzQlZyZytaeTlib3ZYSklWcjQ0?=
 =?utf-8?B?UlVYb0ZzUUdtRHFMN1NlMitIWXRYc1JGcDJuZGlJbGdnK2xDaWYwNDhoTDE0?=
 =?utf-8?B?OGI2cVZiVm9NbU0wcXVMblYveTlsRG9kY0FPSGtlbWJiM2QyOVUrZDh4VERF?=
 =?utf-8?B?RXdjMnZ6WE5ZWlB1RllWYlcxL1FRN0Z1NzJUQ0RvbmU0WmhJbXFMY2ZVbmd6?=
 =?utf-8?B?MFg2ZS9QcXRiNkloUEtrdzB4ZmZqTWtjdlJFc09qeldJUDhrZ0NyQVBaa1hJ?=
 =?utf-8?B?TllYOWF4amhFYkdPQ1hFR3lLSnVzNzhEdzRVZDBsbCtlTXY0Y2M5SHFzWDE1?=
 =?utf-8?B?UloxY3BaRXlIN2R5emt3eUI4ZkFsN0F3ZFhCeExHT3FVdEx5eDc4cm9kNmxu?=
 =?utf-8?B?ajdKcHpYaVI2Wk16Rml1dmZrd01mMHNIb2VJd2dOUXVNY2d4YTlvazVxNkY1?=
 =?utf-8?B?eXZwSzVIWHVHdVhsRUNNMVd1VExiN3BnalNYSzc5UitScFkvN2U4bW96ekl0?=
 =?utf-8?B?czN0cVFkZkE2aUx3ZGxRMDJCZ21WbTNhNmcwWEZQSzc5RzNkd3krZzljUkFY?=
 =?utf-8?B?dVZCbGM4NUpwVWtkYVlSa0JPV0lBSmJOT2R3bHI0RXBocDMzb1VHUCsrSU1M?=
 =?utf-8?B?cVB5b2lUYmlwdjAwdVgvWFRPK281UHVrTERyZU50aXdBcW9DRWZsSTQwU2Nl?=
 =?utf-8?B?RnV2OGlEOUlrNVVpRFdoa2VmY1NRMW10RURWaEpKb0gwK2RzOXpHMlNmdm9P?=
 =?utf-8?B?Z2Y4dllnazZXT2xrUUk2RC9wN2IzWlNGYVVyRkhTYVdiVE9zdExpTGhteVky?=
 =?utf-8?B?MlBoc2o4Vmx1VS9NUWdocWtJdkJDYzhTTlp5cHNvQ0hscHNUUy94TEE2OENa?=
 =?utf-8?B?Zk82L2UzU3pINHk3NHBqWFAwbHZ6eVV2Znp2UDB6Qk9QVFN4ZExvZ0kzQzgz?=
 =?utf-8?B?aE5DUitXa09OZFp6THZmdTZEKzNwcEx3UXR5VVozYzNjYjdyUnN2aHdNMnha?=
 =?utf-8?B?NUJCc1MvOEFrSmhjRm9pU3R4ZFlIOG5sSVIrMXBsV2p0eTF6TlpnbDllZzhK?=
 =?utf-8?B?VDdwQ1NkR2k4c09nM0UyWVlsNWJjWktHbUFTOWNtWWlabXA0bVlDa1RVMHBW?=
 =?utf-8?B?c05xUW8wTElYaWd5Ulc0bGJObmFjck5GelptK0doSHVieG1RY0o0cXAxak1J?=
 =?utf-8?B?cmthQ3U1OEE3bWRCN1VDK0ZnRXFJVElURG5YaTk2aEd5WlR1RThkaG4xYmFJ?=
 =?utf-8?B?dGpFQm9oUmdTUjRvcytaZlhMc2lHeTFsTTNSL2tBWG4yQWdyOGkzRmEweG9y?=
 =?utf-8?B?bGxVSUdvdWFYMXovakVpdHdZNXl1T1V4aHBTdXpieEU5dndmaVAra2pKWURW?=
 =?utf-8?B?amxyT2x3clFRcEZrQVBBUXkrQnZobUdWVWZ5MUhrY0dwckdmQ05zWGI1a0tS?=
 =?utf-8?B?U05naFd3K09DcFFwUHFjU3IrK0dQVmVITHdReXdiT3ZIKy8wTEJrWnNjMlBv?=
 =?utf-8?B?OXVqZlB5VTRjMmFzM1NiT2Z6R0pPM2xZV1VLdURnSzB3OFRqWVRJUE5LdUsx?=
 =?utf-8?B?d1RaYmU5WXh2TUh6YzY0RWZkK2NTdmtGQlU5dWFBanlVVmRuNzF4cFoxejBt?=
 =?utf-8?Q?Ab38=3D?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 8b24e4ca-7226-4d59-b9d5-08dd81aa7c40
X-MS-Exchange-CrossTenant-AuthSource: BN9PR12MB5273.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Apr 2025 14:32:18.7596
 (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: eidZ4CvrMmUiL9qRkcjTdDLN6EIASrUGh8xvAfgXDoX3vUBXJsshegl1K+Tvf7hM
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB7524



On 22/04/2025 16:31, Oleksii Kurochko wrote:
> 
> On 4/17/25 9:38 AM, Orzel, Michal wrote:
>> On 14/04/2025 17:56, Oleksii Kurochko wrote:
>>> There is no any users of handle_device_interrupts() thereby it
>>> could be dropped.
>> It reads as if you were dropping a definition. There is no definition, therefore
>> no users. Prototype was added by accident in:
>> 8d2c3ab18cc1fce46945bd3aa1819a7aea0c564e
> 
> I will reword it to:
>  There is no definition of handle_device_interrupts() thereby it could be dropped.
> 
> Should I add Fixes tag to mention that it was added by accident in 
> 8d2c3ab18cc1fce46945bd3aa1819a7aea0c564e? Or it will be enough just to mention that
> in the commit message?
No need for Fixes tag.

~Michal

> 
>>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>> With the commit msg updated to be more meaningful:
>> Reviewed-by: Michal Orzel <michal.orzel@amd.com>
> 
> Thanks.
> 
> ~ Oleksii
> 



From xen-devel-bounces@lists.xenproject.org Tue Apr 22 14:42:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 14:42:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.962696.1353849 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7Ep3-00031S-Uq; Tue, 22 Apr 2025 14:42:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 962696.1353849; Tue, 22 Apr 2025 14: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 1u7Ep3-00031L-Rq; Tue, 22 Apr 2025 14:42:05 +0000
Received: by outflank-mailman (input) for mailman id 962696;
 Tue, 22 Apr 2025 14:42: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=9r0M=XI=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u7Ep2-00031F-VK
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 14:42:04 +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 f3c96dc0-1f87-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 16:42:02 +0200 (CEST)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-39c14016868so5259818f8f.1
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 07:42:01 -0700 (PDT)
Received: from [192.168.86.29] ([83.104.178.215])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39efa43319csm15748505f8f.38.2025.04.22.07.42.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 22 Apr 2025 07:42: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: f3c96dc0-1f87-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745332921; x=1745937721; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=tOvLbPYmB9xOTdupQOQPZNZXhySugORIJllVBlp09fs=;
        b=nobM/bdyGULOi2zUqiQyvcmES3fiv08Gq7+cVJjcUR0RtDpDcX1ldPXYsf2F3SwTv1
         JdceIlzusG9bwRTIExHpcUD3pYeVn0WAEf7RlNo86/kkXf/Nlmbl3MZE3Woz6KnAMmXW
         rJYvPSh6BH6iNLWA9joEjHc0+9TWWleuECjH4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745332921; x=1745937721;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=tOvLbPYmB9xOTdupQOQPZNZXhySugORIJllVBlp09fs=;
        b=wuqoLuR6jGahQiyc0dmeu1zPEu207dV4xcNau9XSuIgYT6Mlxoz43z7Rm9oY4gUd8h
         i2RtLqAb74uYyOMp6TjCXsfD8UP35pmzmbo1nozxJOmRJM0BS7wmJZoyEQI+XYJhjtgD
         RL2xJgwRuDiFQjT1oXfkCxhvOlm0VV1D1zxWvXGWGiZO9ZHFkcdxnvpDuMhF5j5ybPnQ
         iqKbbsQigVhDw8qfORtSKCWula75pDHP3m8BHrpBQrbxl1kiIaYL9rDfL3hvMTCzJpF+
         CugbfSG1jZc0TqJt2j12OfWGrhGEH0r1WOlYG/7KqfQWIPyNNeaZGKtagwuFBNbdZCj/
         34ZA==
X-Forwarded-Encrypted: i=1; AJvYcCUTjw3a4HlejKgRrRN4JelhTmsJSTvM8Q64QV2yVRVrAGevH754pHCHCUCim2jhwCc+O+fhOqLzOiA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxKbHSmjgmgaxg8NhtT49ZjovnKANKsMCKcB1yTMhJWUWWs+TET
	l1mYNxndugcwzVLZCed4VZVVdN1It9M/N6XzAaEllY1XMJX2jtYkvtBzOlSG994=
X-Gm-Gg: ASbGnctgz/6SkLxruCUQfnXNRM1/wlFrTdin6taN65Tjklv4V28DO8lwcFDyOSgBXmc
	/Dsiq3jttjwUlI7VBQMM9yGoDoMZxW41ibG2Lzm1dYklyI+iKly+0nWUrf68EzkuR7N56NUHqUM
	4ZchLjzUmHI41IVpzE3DS3CWDJNBLGzO45K7JjzoSihr2mvQ3BFUjWuoGmm9HY7je3jC9bMBTMX
	QETz8T5zNKEJDbtztG8IplrUq3JSKGy20gBhFU+Sa333QgbULaZpYJMv4sIn/x4eyBuFedB28gK
	vJqWVGAyIWR/tug4lURDl4Stj8mCvh0NItfQb5SNeMfNSAM4XuF71w==
X-Google-Smtp-Source: AGHT+IGyo/Fsvc+itcIG3nFG5wmArJrUINANGwSuqf2GNGQ3PvEa9YV3c2GnVcM0G1cdE+13D4fklw==
X-Received: by 2002:a5d:5f4c:0:b0:39c:12ce:6a0 with SMTP id ffacd0b85a97d-39efba4398amr14148277f8f.21.1745332921339;
        Tue, 22 Apr 2025 07:42:01 -0700 (PDT)
Message-ID: <53964eef-bfad-4d3e-93e5-8a18ba2f3cc3@citrix.com>
Date: Tue, 22 Apr 2025 15:42:00 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/link: Include .debug_str_offsets in
 DWARF2_DEBUG_SECTIONS
To: Jan Beulich <jbeulich@suse.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250422113247.1285339-1-andrew.cooper3@citrix.com>
 <82a02afa-c1b7-4656-8f34-bd4886c9fb9f@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: <82a02afa-c1b7-4656-8f34-bd4886c9fb9f@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 22/04/2025 1:13 pm, Jan Beulich wrote:
> On 22.04.2025 13:32, Andrew Cooper wrote:
>> --- a/xen/include/xen/xen.lds.h
>> +++ b/xen/include/xen/xen.lds.h
>> @@ -56,6 +56,7 @@
>>    DECL_DEBUG2(.debug_info, .gnu.linkonce.wi.*, 1) \
>>    DECL_DEBUG(.debug_types, 1)                     \
>>    DECL_DEBUG(.debug_str, 1)                       \
>> +  DECL_DEBUG(.debug_str_offsets, 1)               \
> The alignment wants to be at least 4.

I checked before making this patch, and Clang uses alignment 1 on the
section:

> [8134] .debug_str_offsets PROGBITS        0000000000000000 16fe11d
> 21c868 00      0   0  1
> [8135] .rela.debug_str_offsets RELA       0000000000000000 2089e08
> ca6b60 18   I 8136 8134  8

Is there an official spec on the matter?

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Apr 22 14:46:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 14:46:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.962707.1353858 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7EtC-0003b6-E7; Tue, 22 Apr 2025 14:46:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 962707.1353858; Tue, 22 Apr 2025 14: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 1u7EtC-0003az-Ay; Tue, 22 Apr 2025 14:46:22 +0000
Received: by outflank-mailman (input) for mailman id 962707;
 Tue, 22 Apr 2025 14:46: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=f4Vg=XI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u7EtB-0003at-AP
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 14:46:21 +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 8869e8db-1f88-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 16:46:11 +0200 (CEST)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-43cf848528aso39380585e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 07:46:11 -0700 (PDT)
Received: from [10.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-4406d6dfe4esm174788745e9.33.2025.04.22.07.46.10
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 22 Apr 2025 07:46: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: 8869e8db-1f88-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745333171; x=1745937971; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=tq3bLS60OtZQwZ8RKs91TCHStfyD8zsWHDBgp1u9xQU=;
        b=LbBZ1iLTf7f4hQZXlsJMKKsUo+TN8+EEoK69/JaAr3iBegdEoZxynEJS/pbbNBvvLo
         JjTqnJ8h7qQxaj9ZaVyC5GClzgfwo2L7hApB5LfuaskC0BbEoiXZe1kxrnh+IstxkWsh
         b0Vy0Rl0xwh8v8i80MaSmTfhXyxOcdnK9np+fRZMFEj8t27xBbxgcdkbPk60VORr8Gpx
         P+75MNMmzNCQGfk7lAoAT8xc1vovvPBT5yJ88SMwngH3pP/yxrl+OG6yz6Ds0WY1LvNJ
         P/yCz1PCLy35G8AryE2GxSZfTM+bECCUY6SiqDcCdWLYXu7cUTYsNX337GalfPwAs5pQ
         EcSQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745333171; x=1745937971;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=tq3bLS60OtZQwZ8RKs91TCHStfyD8zsWHDBgp1u9xQU=;
        b=FGvDYvBK6qQXtfBVcubph3pyk9CS03KDPytsP0OLPbShoJYhDprD0dmgrKLcOZrGGl
         Zzin396rIHuWUqUJrKl3bU4idlh2YhJBlJK9foZw9A0BSuW4rfeomJZX/BX9jV1Hfhax
         nQnqdZewMdLsXBKp+Tg9SKxDXJxQesOMNC5NfQN0TvjGDN5b8fK2YWaMpudCxKPMcAau
         4Qe4zMUSnL9MatwYqrE061aOM0KhdpPxlrq39mgHtLsiycYSdNB+ETaeAx/AN+2M49da
         8I2b6mzp76gsNoFS2G+GnyaSCfLIVKU6n1z1c5E5bi7HbH5C1DdtTUsmKvNYXS7BZP2x
         B8Og==
X-Forwarded-Encrypted: i=1; AJvYcCV0jeX44XQn33glp3GiHgR1IMr6hKf436kTUd2i2l4SIi+DAXYqLmrZSDmYbjEEHs3n0TvcuXBuQ0E=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yyu0Py2IwYmtL7OyjqNw5az6IQDliAFbWmFJFvGzyK/tVEfX7lc
	knMw7d+5Lqj6fdxWkAahD3rszupNC5EpUEJ3FTzmNvkGeJmll0ereM42mWm7Cg==
X-Gm-Gg: ASbGncuwjAP82jWyTW3mTI0Q/owtJpFbTODTl7ZwHURRySHE06lGyCsj2+zaX7PjuYT
	C7aMmbDo3/C3CgTzYtDh/IYCnhDJYVFs2GjS7EXPQgr5whOQp2qLmEiFUMAJqYvYxWSq2hPtMPB
	uKrqnJyh6tZhm/wwzfCbZ5bN2jB7WeV3uXG/3PLkEgDsnrRfZtV+iMsKaQJAoUZsTBCVNG5Ud/N
	YHRhBvOPMwlhcFRF/hDYBS0Au72sw0lehg+gqFdN5+gD+PeBb6OnNiLnOWEyVpTvg902yYTVECT
	Z4fw3hkhG2lb+yK3ZPwL9xLfSTm4FQPoTK1OQ5hwOhRckO1ciHOo9ItmMn5ZsyiGXY/3kwsROMM
	byNr+mC//epzdObiUdmhVnCXk2A==
X-Google-Smtp-Source: AGHT+IGrb4FoI6XzoNoQvtkLk6D7AbXWJRARXvrqAuve5ULTlwr732gqgx1QeEljpLX7ExPg8vW5lA==
X-Received: by 2002:a05:600c:3592:b0:439:9e13:2dd7 with SMTP id 5b1f17b1804b1-4408188366cmr79770875e9.2.1745333170681;
        Tue, 22 Apr 2025 07:46:10 -0700 (PDT)
Message-ID: <868507a4-a1ac-4900-b59e-76ed182ee6ff@suse.com>
Date: Tue, 22 Apr 2025 16:46:09 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/link: Include .debug_str_offsets in
 DWARF2_DEBUG_SECTIONS
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250422113247.1285339-1-andrew.cooper3@citrix.com>
 <82a02afa-c1b7-4656-8f34-bd4886c9fb9f@suse.com>
 <53964eef-bfad-4d3e-93e5-8a18ba2f3cc3@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: <53964eef-bfad-4d3e-93e5-8a18ba2f3cc3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 22.04.2025 16:42, Andrew Cooper wrote:
> On 22/04/2025 1:13 pm, Jan Beulich wrote:
>> On 22.04.2025 13:32, Andrew Cooper wrote:
>>> --- a/xen/include/xen/xen.lds.h
>>> +++ b/xen/include/xen/xen.lds.h
>>> @@ -56,6 +56,7 @@
>>>    DECL_DEBUG2(.debug_info, .gnu.linkonce.wi.*, 1) \
>>>    DECL_DEBUG(.debug_types, 1)                     \
>>>    DECL_DEBUG(.debug_str, 1)                       \
>>> +  DECL_DEBUG(.debug_str_offsets, 1)               \
>> The alignment wants to be at least 4.
> 
> I checked before making this patch, and Clang uses alignment 1 on the
> section:
> 
>> [8134] .debug_str_offsets PROGBITS        0000000000000000 16fe11d
>> 21c868 00      0   0  1

Oh, I'm surprised. The table holding 4- (or 8-) byte values, it should
have better alignment already in object files, I would think. Feels like
a bug / oversight in Clang.

>> [8135] .rela.debug_str_offsets RELA       0000000000000000 2089e08
>> ca6b60 18   I 8136 8134  8
> 
> Is there an official spec on the matter?

I did look through the Dwarf5 spec, but could find any detail of this
kind there.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 22 14:58:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 14:58:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.962722.1353868 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7F4w-0005YI-Iq; Tue, 22 Apr 2025 14:58:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 962722.1353868; Tue, 22 Apr 2025 14: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 1u7F4w-0005YB-GF; Tue, 22 Apr 2025 14:58:30 +0000
Received: by outflank-mailman (input) for mailman id 962722;
 Tue, 22 Apr 2025 14: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=f4Vg=XI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u7F4v-0005Y4-MR
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 14:58:29 +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 3fa88908-1f8a-11f0-9eb0-5ba50f476ded;
 Tue, 22 Apr 2025 16:58:28 +0200 (CEST)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-43d2d952eb1so39099285e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 07:58:28 -0700 (PDT)
Received: from [10.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-39efa43d03csm15783843f8f.59.2025.04.22.07.58.26
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 22 Apr 2025 07:58:27 -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: 3fa88908-1f8a-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745333908; x=1745938708; 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=uImX/fwjwp91REhn3nBIw62d38NWImG2xUXfN5FBn4s=;
        b=cE3jXov2AUxGpevUB3yWDBeCY9sZ6VA2L+y7Rw3Eg5j7lvm1w7OfMG0mzQtU+sEehR
         DqUEX5tOUYuiFWUFekAP6LxQQo457YrN/4OZOql8+D6412KxHBcmVxM3K8uc1I78klB3
         Bg9LjsDx8Qw6bUXEiSYUewJ7N9ay8DEwHeynlzHJXrdrrgVlOqfWLyA8EWjT5MKicImi
         kZ9pmPTdM+PBQ8jQH7FFq09bmj5zAKSOK0NFELU9kP7NuYUYWsOrRMP1CfBqSmdN7OkQ
         8BMxU9txz5N+6dyi4J7/6LA2Qq/qtAhtmgfJwl2AdciDNby4bQENg+A12qRy2+Cfbx6y
         6P6A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745333908; x=1745938708;
        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=uImX/fwjwp91REhn3nBIw62d38NWImG2xUXfN5FBn4s=;
        b=UwPxbQJd1O1d6MIJmOUb93xvhuEdeC+eeEEmmQDdbXlmnQm+6dMGNdnW6dcOUGYUna
         aj4LxBHBlnFvPcCft5z5kdvmKvFnPLQptLLsbYR6mQ5JD26gcPgd/M4lwhEsxgMPmLaj
         VfMPTlrsqKqQ7yCxjwAO1Bbv9wLFBAU2/ZnruqgTwLvw7d18hEqqB5TGmEazBAtGmonD
         PRt+EUE2W0n61aPhOx4xLlQkNjgaJVd6AtuHSmrfUbKDxj85zXeYkS3T27+v5lYOxL8Y
         AVc7bJTEJCCTsUzboKFWsxZckBiUFHEbcoiYE5ViS5jD5Ti76lyvsFk+Oy2dlR6GZv8w
         LR1g==
X-Forwarded-Encrypted: i=1; AJvYcCXCmE6Ylq9b1Z8PURBPhOVUVdgn14hEGjFnC1lm5+RBJc0gIir/reHpq/OnFctrOUTVT2bYvFS7A8k=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw0IPFl3Wf5vq7Y2xzVLsDg9MGrHuZp7Aeg2QZVOrBlEBawDj3W
	ozuSn/FyTnX+XdWvrZwKp8kTErIG8DdzNG41PN8lIzmXx0eQprus9fxMZJqGNQ==
X-Gm-Gg: ASbGncvN00YgX+CaGIlQMNAUM0kCEQlrNqcEUZYcl8P9t04mhesrRu8T+UmmTEbzrPH
	6x+RKT9blssjvwtx0UmQ0kkZTFIQduWrAB/tc7vOowkpOzq7DdAj7vslE24cN+BtnwRYcTaWIj4
	2DVYrWgheaZBaxeNdSXHwL4362cWgdjPuHmjFPLjKPprR+GMYc8X3O2JIZ6RQCjzGAjvbOfsxmR
	1PLrKZr6zV8xCzglS7CeHnMBh+Yw/VCavdD9hDHRGmDnNXzy3aAwlb3gTRnyM6lzPwOtlgfb2D2
	WQDSmXls7O5QiKCgfJ6f4dpd7NA/kj2NypPShYLId//K3d5JJoOuXKDoyVON1F19duQP6z71Zsi
	4VPa4YmlBtnXHfxpn0I4GXRHRDw==
X-Google-Smtp-Source: AGHT+IEtXMsBXtiSGz03VudkO+Hi/TSFbA13D0GUkRa6ysXR0O4r+pWp56JTpLmWkpR2EBvjaKyYTA==
X-Received: by 2002:a05:600c:848c:b0:43c:e467:d6ce with SMTP id 5b1f17b1804b1-440715b5f22mr131147595e9.4.1745333907732;
        Tue, 22 Apr 2025 07:58:27 -0700 (PDT)
Message-ID: <2a5c3937-0539-4e2a-a0cc-556ec20db5f9@suse.com>
Date: Tue, 22 Apr 2025 16:58:26 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Ping: [PATCH RESEND] x86/EFI: correct mkreloc header (field) reading
From: Jan Beulich <jbeulich@suse.com>
To: Marek Marczykowski <marmarek@invisiblethingslab.com>,
 Daniel Smith <dpsmith@apertussolutions.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: <49b9d483-824d-4247-a642-f19f5c16fd5d@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: <49b9d483-824d-4247-a642-f19f5c16fd5d@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 10.04.2025 09:45, Jan Beulich wrote:
> With us now reading the full combined optional and NT headers, the
> subsequent reading of (and seeking to) NT header fields is wrong. Since
> PE32 and PE32+ NT headers are different anyway (beyond the image base
> oddity extending across both headers), switch to using a union. This
> allows to fetch the image base more directly then.
> 
> Additionally add checking to map_section(), which would have caught at
> least the wrong (zero) image size that we previously used.
> 
> Fixes: f7f42accbbbb ("x86/efi: Use generic PE/COFF structures")
> Reported-by: Roger Pau Monné <roger.pau@citrix.com>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

May I ask for an ack (or otherwise) please?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 22 15:02:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 15:02:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.962734.1353879 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7F91-0007Oa-2Z; Tue, 22 Apr 2025 15:02:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 962734.1353879; Tue, 22 Apr 2025 15:02: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 1u7F90-0007OT-Vu; Tue, 22 Apr 2025 15:02:42 +0000
Received: by outflank-mailman (input) for mailman id 962734;
 Tue, 22 Apr 2025 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=x+QI=XI=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1u7F8z-0007ON-Qt
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 15:02:41 +0000
Received: from sender4-of-o50.zoho.com (sender4-of-o50.zoho.com
 [136.143.188.50]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d4ab5322-1f8a-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 17:02:39 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 1745334153605693.8409076041785;
 Tue, 22 Apr 2025 08:02:33 -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: d4ab5322-1f8a-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; t=1745334156; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=DPfTQ0ioWK/qZ7bQNHR7Hx1a/SfX91y0+/+GmqMRs224xzaUxthG7yZ0Udi/5KwjnsIA8MLa6BkEGUuIXdkGKyDWGda/b2lpZH2YZHS9a1G5Gqfw28oewDJhvfoT6PAJ6elz6GRv9QHKRTUFPp4J1JmRsyvJUJ9dIMUb41yR8UQ=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1745334156; 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=NBi8ML5IP/IzZshr9qu2Ou8h/VwmC8bdNVKo56XhYLo=; 
	b=BPVwtHlBjwavKSRM7Vvp46tItQ6E36doNqgleSN9SAA3Q60VNQNXknkAChqJf71q3yX0mjg5M/l05pIdbxF3YgzZ1KboHhhnkpmcsL7rVycf4n6Tr5h12g9JhUMYmPr8uPIykaVUFTIZk1632avyHGe7tsmX/mt0SahkduUWCRM=
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=1745334156;
	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=NBi8ML5IP/IzZshr9qu2Ou8h/VwmC8bdNVKo56XhYLo=;
	b=iZG+h6qL4sE+kXTUAQygWVlJ6PcAXl/ifOJaWUwEOiF5OyDrMlfGohWicIdV3Fub
	x6JXEa2yc9Mnx0Z0l28gZmHYUZNpNfRXG7ONndFACiTN0yFzwq5uAAntYhDlB3q6EkB
	SYRjbAhUSSa1S5fODRLA4v5yEEh8S0qKaZGtcJy4=
Message-ID: <8af2938b-ecb5-460f-8281-a6308a8c18f7@apertussolutions.com>
Date: Tue, 22 Apr 2025 11:02:32 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH RESEND] x86/EFI: correct mkreloc header (field) reading
Content-Language: en-US
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Marek Marczykowski <marmarek@invisiblethingslab.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <49b9d483-824d-4247-a642-f19f5c16fd5d@suse.com>
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
Autocrypt: addr=dpsmith@apertussolutions.com; keydata=
 xsJuBFYrueARCACPWL3r2bCSI6TrkIE/aRzj4ksFYPzLkJbWLZGBRlv7HQLvs6i/K4y/b4fs
 JDq5eL4e9BdfdnZm/b+K+Gweyc0Px2poDWwKVTFFRgxKWq9R7McwNnvuZ4nyXJBVn7PTEn/Z
 G7D08iZg94ZsnUdeXfgYdJrqmdiWA6iX9u84ARHUtb0K4r5WpLUMcQ8PVmnv1vVrs/3Wy/Rb
 foxebZNWxgUiSx+d02e3Ad0aEIur1SYXXv71mqKwyi/40CBSHq2jk9eF6zmEhaoFi5+MMMgX
 X0i+fcBkvmT0N88W4yCtHhHQds+RDbTPLGm8NBVJb7R5zbJmuQX7ADBVuNYIU8hx3dF3AQCm
 601w0oZJ0jGOV1vXQgHqZYJGHg5wuImhzhZJCRESIwf+PJxik7TJOgBicko1hUVOxJBZxoe0
 x+/SO6tn+s8wKlR1Yxy8gYN9ZRqV2I83JsWZbBXMG1kLzV0SAfk/wq0PAppA1VzrQ3JqXg7T
 MZ3tFgxvxkYqUP11tO2vrgys+InkZAfjBVMjqXWHokyQPpihUaW0a8mr40w9Qui6DoJj7+Gg
 DtDWDZ7Zcn2hoyrypuht88rUuh1JuGYD434Q6qwQjUDlY+4lgrUxKdMD8R7JJWt38MNlTWvy
 rMVscvZUNc7gxcmnFUn41NPSKqzp4DDRbmf37Iz/fL7i01y7IGFTXaYaF3nEACyIUTr/xxi+
 MD1FVtEtJncZNkRn7WBcVFGKMAf+NEeaeQdGYQ6mGgk++i/vJZxkrC/a9ZXme7BhWRP485U5
 sXpFoGjdpMn4VlC7TFk2qsnJi3yF0pXCKVRy1ukEls8o+4PF2JiKrtkCrWCimB6jxGPIG3lk
 3SuKVS/din3RHz+7Sr1lXWFcGYDENmPd/jTwr1A1FiHrSj+u21hnJEHi8eTa9029F1KRfocp
 ig+k0zUEKmFPDabpanI323O5Tahsy7hwf2WOQwTDLvQ+eqQu40wbb6NocmCNFjtRhNZWGKJS
 b5GrGDGu/No5U6w73adighEuNcCSNBsLyUe48CE0uTO7eAL6Vd+2k28ezi6XY4Y0mgASJslb
 NwW54LzSSM0uRGFuaWVsIFAuIFNtaXRoIDxkcHNtaXRoQGFwZXJ0dXNzb2x1dGlvbnMuY29t
 PsJ6BBMRCAAiBQJWK7ngAhsjBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRBTc6WbYpR8
 KrQ9AP94+xjtFfJ8gj5c7PVx06Zv9rcmFUqQspZ5wSEkvxOuQQEAg6qEsPYegI7iByLVzNEg
 7B7fUG7pqWIfMqFwFghYhQzOwU0EViu54BAIAL6MXXNlrJ5tRUf+KMBtVz1LJQZRt/uxWrCb
 T06nZjnbp2UcceuYNbISOVHGXTzu38r55YzpkEA8eURQf+5hjtvlrOiHxvpD+Z6WcpV6rrMB
 kcAKWiZTQihW2HoGgVB3gwG9dCh+n0X5OzliAMiGK2a5iqnIZi3o0SeW6aME94bSkTkuj6/7
 OmH9KAzK8UnlhfkoMg3tXW8L6/5CGn2VyrjbB/rcrbIR4mCQ+yCUlocuOjFCJhBd10AG1IcX
 OXUa/ux+/OAV9S5mkr5Fh3kQxYCTcTRt8RY7+of9RGBk10txi94dXiU2SjPbassvagvu/hEi
 twNHms8rpkSJIeeq0/cAAwUH/jV3tXpaYubwcL2tkk5ggL9Do+/Yo2WPzXmbp8vDiJPCvSJW
 rz2NrYkd/RoX+42DGqjfu8Y04F9XehN1zZAFmCDUqBMa4tEJ7kOT1FKJTqzNVcgeKNBGcT7q
 27+wsqbAerM4A0X/F/ctjYcKwNtXck1Bmd/T8kiw2IgyeOC+cjyTOSwKJr2gCwZXGi5g+2V8
 NhJ8n72ISPnOh5KCMoAJXmCF+SYaJ6hIIFARmnuessCIGw4ylCRIU/TiXK94soilx5aCqb1z
 ke943EIUts9CmFAHt8cNPYOPRd20pPu4VFNBuT4fv9Ys0iv0XGCEP+sos7/pgJ3gV3pCOric
 p15jV4PCYQQYEQgACQUCViu54AIbDAAKCRBTc6WbYpR8Khu7AP9NJrBUn94C/3PeNbtQlEGZ
 NV46Mx5HF0P27lH3sFpNrwD/dVdZ5PCnHQYBZ287ZxVfVr4Zuxjo5yJbRjT93Hl0vMY=
In-Reply-To: <49b9d483-824d-4247-a642-f19f5c16fd5d@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External


On 4/10/25 03:45, Jan Beulich wrote:
> With us now reading the full combined optional and NT headers, the
> subsequent reading of (and seeking to) NT header fields is wrong. Since
> PE32 and PE32+ NT headers are different anyway (beyond the image base
> oddity extending across both headers), switch to using a union. This
> allows to fetch the image base more directly then.
> 
> Additionally add checking to map_section(), which would have caught at
> least the wrong (zero) image size that we previously used.
> 
> Fixes: f7f42accbbbb ("x86/efi: Use generic PE/COFF structures")
> Reported-by: Roger Pau Monné <roger.pau@citrix.com>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---

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


From xen-devel-bounces@lists.xenproject.org Tue Apr 22 15:03:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 15:03:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.962738.1353890 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7F9Q-0007ka-An; Tue, 22 Apr 2025 15:03:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 962738.1353890; Tue, 22 Apr 2025 15:03: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 1u7F9Q-0007kT-6L; Tue, 22 Apr 2025 15:03:08 +0000
Received: by outflank-mailman (input) for mailman id 962738;
 Tue, 22 Apr 2025 15:03: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=Cc2d=XI=flex--seanjc.bounces.google.com=3pq8HaAYKCWsbNJWSLPXXPUN.LXVgNW-MNeNUURbcb.gNWYaXSNLc.XaP@srs-se1.protection.inumbo.net>)
 id 1u7F9O-0007ON-Lu
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 15:03:06 +0000
Received: from mail-pj1-x104a.google.com (mail-pj1-x104a.google.com
 [2607:f8b0:4864:20::104a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e404042d-1f8a-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 17:03:04 +0200 (CEST)
Received: by mail-pj1-x104a.google.com with SMTP id
 98e67ed59e1d1-308677f7d8cso4887708a91.1
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 08:03:04 -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: e404042d-1f8a-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20230601; t=1745334183; x=1745938983; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:from:to:cc:subject:date:message-id:reply-to;
        bh=ZR743ev6ExzRYE8cINx+AM9cywgAmFfoIc+SqezuNJU=;
        b=Cr4WTGTdI1iM8gD0wuETgqmcQF0RJ+zv7cz4cOs8MekFEWpKYDr2Za2cQobjSzzt96
         NQwWqpyJnwhizqXVSGR6DUsBXqYmcE7PXjE3EeYJ+Gmeu+ywky9/P6fcd9NcRF78gBaM
         zIftMYo8wE4NOtj6q9HvozvpR7HmxiywnrkaKhYTX4bHzmJLKI8DKS85DUA6v55mtZQo
         j/wBw+jhFcS1kTXuXVoq7ieRr6CXMhCehAV35AZQvupz3cOfgDIbPnJMjo0ChTkogix9
         TpNDhUG1wMNTYdiHl6oTn/c/YnOcBlblXe5Yk/eF2YqsNAxqeXqNlGgQWzzeoGB9k2xy
         a/Yw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745334183; x=1745938983;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=ZR743ev6ExzRYE8cINx+AM9cywgAmFfoIc+SqezuNJU=;
        b=KERXqYF8iz/mZdpQViQLeMwqZn4Mova6J3Gd4Suu+3rZyGa2t7rHi5NFJVGR6FUqS7
         uZcRjrBkCBKH143lCBj5TmmiDTCFqbUzlEt+ntwi3KBeOlcI9Qs4IX9HaKGyUKMQQE/F
         iFXySFfR2l2odavquu1CU5HI98PG2O+kx0jYfJFjPOfaydyrehB1pEE2d3MFbC827GPF
         Uzkg8/Sc/I04eMWJMECgQ0IQvJzo0LkYj9vT5t37AolZrSgEy0Ey6f/55D2k/xixvp9t
         xCOyvesn/I/+ZxWgF8RNDr6OjC/dR3tBNuG8dj0OErp8KpQVDdLzQsQF8grrTCNCvqmQ
         aDqQ==
X-Forwarded-Encrypted: i=1; AJvYcCUIof4Is5pKNUGFhcppTChUCrRZ5dnzUB6i7TWIaFRJadqgCybdkXvdoFZ/mnpbxBmirA3f0mYk8so=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwDAjF/S7qRMphD9sn3eHk5vIRpCBsNdTvqG7qfqbQlh9CjvVun
	7SrrwmDYneNX9oKUtfoK162s4BJT/WIX4Rs8ey2Q/LJkAjaIRZ2WrZa+GQtWyte3vPXFDSsfdRD
	1ig==
X-Google-Smtp-Source: AGHT+IEIapJZJRM9UWSGs3HX5eEFDXXhucM1QTXJfnPOK/9YTrDfsNmQubNfg9xjcSY4LHTjaYmG0pXn5/g=
X-Received: from pjbsn11.prod.google.com ([2002:a17:90b:2e8b:b0:308:861f:fddb])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a17:90b:3a0c:b0:2ef:31a9:95c6
 with SMTP id 98e67ed59e1d1-3087bb56439mr25794718a91.14.1745334182926; Tue, 22
 Apr 2025 08:03:02 -0700 (PDT)
Date: Tue, 22 Apr 2025 08:03:01 -0700
In-Reply-To: <20250422082216.1954310-1-xin@zytor.com>
Mime-Version: 1.0
References: <20250422082216.1954310-1-xin@zytor.com>
Message-ID: <aAevpauKYWwObsB7@google.com>
Subject: Re: [RFC PATCH v2 00/34] MSR refactor with new MSR instructions support
From: Sean Christopherson <seanjc@google.com>
To: "Xin Li (Intel)" <xin@zytor.com>
Cc: linux-kernel@vger.kernel.org, kvm@vger.kernel.org, 
	linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org, 
	virtualization@lists.linux.dev, linux-pm@vger.kernel.org, 
	linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org, 
	linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org, 
	netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org, 
	tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, 
	dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com, acme@kernel.org, 
	jgross@suse.com, andrew.cooper3@citrix.com, peterz@infradead.org, 
	namhyung@kernel.org, mark.rutland@arm.com, alexander.shishkin@linux.intel.com, 
	jolsa@kernel.org, irogers@google.com, adrian.hunter@intel.com, 
	kan.liang@linux.intel.com, wei.liu@kernel.org, ajay.kaher@broadcom.com, 
	bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com, 
	pbonzini@redhat.com, vkuznets@redhat.com, luto@kernel.org, 
	boris.ostrovsky@oracle.com, kys@microsoft.com, haiyangz@microsoft.com, 
	decui@microsoft.com
Content-Type: text/plain; charset="us-ascii"

On Tue, Apr 22, 2025, Xin Li (Intel) wrote:
> base-commit: f30a0c0d2b08b355c01392538de8fc872387cb2b

This commit doesn't exist in Linus' tree or the tip tree, and the series doesn't
apply cleanly on any of the "obvious" choices.  Reviewing a 34 patches series
without being able to apply it is a wee bit difficult...


From xen-devel-bounces@lists.xenproject.org Tue Apr 22 15:07:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 15:07:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.962758.1353918 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7FDM-0000WA-AY; Tue, 22 Apr 2025 15:07:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 962758.1353918; Tue, 22 Apr 2025 15:07: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 1u7FDM-0000W1-81; Tue, 22 Apr 2025 15:07:12 +0000
Received: by outflank-mailman (input) for mailman id 962758;
 Tue, 22 Apr 2025 15:07: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=BiSK=XI=3mdeb.com=sergii.dmytruk@srs-se1.protection.inumbo.net>)
 id 1u7FDL-0008SP-C6
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 15:07:11 +0000
Received: from 8.mo581.mail-out.ovh.net (8.mo581.mail-out.ovh.net
 [46.105.77.114]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 76858b95-1f8b-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 17:07:10 +0200 (CEST)
Received: from director11.ghost.mail-out.ovh.net (unknown [10.109.176.70])
 by mo581.mail-out.ovh.net (Postfix) with ESMTP id 4Zhlvd0QvTz12mP
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 15:07:08 +0000 (UTC)
Received: from ghost-submission-5b5ff79f4f-2t4kc (unknown [10.110.101.193])
 by director11.ghost.mail-out.ovh.net (Postfix) with ESMTPS id 0225F1FEF3;
 Tue, 22 Apr 2025 15:07:07 +0000 (UTC)
Received: from 3mdeb.com ([37.59.142.103])
 by ghost-submission-5b5ff79f4f-2t4kc with ESMTPSA
 id SGspLJuwB2j18gAAr3ZL9g
 (envelope-from <sergii.dmytruk@3mdeb.com>); Tue, 22 Apr 2025 15:07: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: 76858b95-1f8b-11f0-9ffb-bf95429c2676
Authentication-Results:garm.ovh; auth=pass (GARM-103G005201491dd-ee8b-4e3d-a321-d1be40ce40d6,
                    7E508E014E7E7C169EB13C6E22C3C4EBF1F0FDD7) smtp.auth=sergii.dmytruk@3mdeb.com
X-OVh-ClientIp:176.111.181.178
From: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	trenchboot-devel@googlegroups.com
Subject: [PATCH 02/21] include/xen/slr_table.h: Secure Launch Resource Table definitions
Date: Tue, 22 Apr 2025 18:06:36 +0300
Message-ID: <1cf5d940e666b2b292fc84ed1fbb8a95cd57f027.1745172094.git.sergii.dmytruk@3mdeb.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <cover.1745172094.git.sergii.dmytruk@3mdeb.com>
References: <cover.1745172094.git.sergii.dmytruk@3mdeb.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Ovh-Tracer-Id: 12726046651032122524
X-VR-SPAMSTATE: OK
X-VR-SPAMSCORE: -100
X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvgeegtdehucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuqfggjfdpvefjgfevmfevgfenuceurghilhhouhhtmecuhedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurhephffvvefufffkofgjfhgggfestdekredtredttdenucfhrhhomhepufgvrhhgihhiucffmhihthhruhhkuceoshgvrhhgihhirdgumhihthhruhhkseefmhguvggsrdgtohhmqeenucggtffrrghtthgvrhhnpefhheefheduieelieekfffgfffgfedutdevleevvdfhfffgledvgfdtuddtheefieenucfkphepuddvjedrtddrtddruddpudejiedrudduuddrudekuddrudejkedpfeejrdehledrudegvddruddtfeenucevlhhushhtvghrufhiiigvpedvnecurfgrrhgrmhepihhnvghtpeduvdejrddtrddtrddupdhmrghilhhfrhhomhepshgvrhhgihhirdgumhihthhruhhkseefmhguvggsrdgtohhmpdhnsggprhgtphhtthhopedupdhrtghpthhtohepgigvnhdquggvvhgvlheslhhishhtshdrgigvnhhprhhojhgvtghtrdhorhhgpdfovfetjfhoshhtpehmohehkedumgdpmhhouggvpehsmhhtphhouhht
DKIM-Signature: a=rsa-sha256; bh=dDtdgcHnfkXCPp7L7iFTIH8st3ZVtYKD9N66kBM8l/c=;
 c=relaxed/relaxed; d=3mdeb.com; h=From; s=ovhmo3617313-selector1;
 t=1745334429; v=1;
 b=EhUXmcKxumCFWEJ1CUeQnxu95MelrizzdBQ4ELOzRuDJewvq9ZWy4neVL6dktTtlAUTnE2k+
 qEXes4XdhhGHhy3L4Mcblrfuu35Oig4QI1keHg1K7V319AFg+47nENfy55uGbQJCFz8W98ObHpR
 BG1I/LJmw5j6QNAvYeP3VA8ODpPP95bPWjFK7hlstWaMwTS1oRJ6vtoPxmdf93i+wdYRPg650UU
 11YyefrDrnVKicn+cEN4w6eIljcPOdh50Gmx/mURa0Tdq4GONKcRCzm2JKq2qwFPypHNuTGRHMr
 RchthE1jOhXUYKo9G56zNOKW1tCN+sH7meMmvKdDfFP3A==

The file provides constants, structures and several helper functions for
parsing SLRT.

Signed-off-by: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
---
 xen/include/xen/slr_table.h | 274 ++++++++++++++++++++++++++++++++++++
 1 file changed, 274 insertions(+)
 create mode 100644 xen/include/xen/slr_table.h

diff --git a/xen/include/xen/slr_table.h b/xen/include/xen/slr_table.h
new file mode 100644
index 0000000000..e9dbac5d0a
--- /dev/null
+++ b/xen/include/xen/slr_table.h
@@ -0,0 +1,274 @@
+/* SPDX-License-Identifier: GPL-3.0-or-later */
+
+/*
+ *  Copyright (C) 2023  Oracle and/or its affiliates.
+ *
+ *  Secure Launch Resource Table definitions
+ */
+
+#ifndef _SLR_TABLE_H
+#define _SLR_TABLE_H
+
+#include <xen/types.h>
+
+#define UEFI_SLR_TABLE_GUID \
+    { 0x877a9b2a, 0x0385, 0x45d1, { 0xa0, 0x34, 0x9d, 0xac, 0x9c, 0x9e, 0x56, 0x5f } }
+
+/* SLR table header values */
+#define SLR_TABLE_MAGIC         0x4452544d
+#define SLR_TABLE_REVISION      1
+
+/* Current revisions for the policy and UEFI config */
+#define SLR_POLICY_REVISION         1
+#define SLR_UEFI_CONFIG_REVISION    1
+
+/* SLR defined architectures */
+#define SLR_INTEL_TXT   1
+#define SLR_AMD_SKINIT  2
+
+/* SLR defined bootloaders */
+#define SLR_BOOTLOADER_INVALID  0
+#define SLR_BOOTLOADER_GRUB     1
+
+/* Log formats */
+#define SLR_DRTM_TPM12_LOG      1
+#define SLR_DRTM_TPM20_LOG      2
+
+/* DRTM Policy Entry Flags */
+#define SLR_POLICY_FLAG_MEASURED    0x1
+#define SLR_POLICY_IMPLICIT_SIZE    0x2
+
+/* Array Lengths */
+#define TPM_EVENT_INFO_LENGTH       32
+#define TXT_VARIABLE_MTRRS_LENGTH   32
+
+/* Tags */
+#define SLR_ENTRY_INVALID       0x0000
+#define SLR_ENTRY_DL_INFO       0x0001
+#define SLR_ENTRY_LOG_INFO      0x0002
+#define SLR_ENTRY_DRTM_POLICY   0x0003
+#define SLR_ENTRY_INTEL_INFO    0x0004
+#define SLR_ENTRY_AMD_INFO      0x0005
+#define SLR_ENTRY_ARM_INFO      0x0006
+#define SLR_ENTRY_UEFI_INFO     0x0007
+#define SLR_ENTRY_UEFI_CONFIG   0x0008
+#define SLR_ENTRY_END           0xffff
+
+/* Entity Types */
+#define SLR_ET_UNSPECIFIED        0x0000
+#define SLR_ET_SLRT               0x0001
+#define SLR_ET_BOOT_PARAMS        0x0002
+#define SLR_ET_SETUP_DATA         0x0003
+#define SLR_ET_CMDLINE            0x0004
+#define SLR_ET_UEFI_MEMMAP        0x0005
+#define SLR_ET_RAMDISK            0x0006
+#define SLR_ET_MULTIBOOT2_INFO    0x0007
+#define SLR_ET_MULTIBOOT2_MODULE  0x0008
+#define SLR_ET_TXT_OS2MLE         0x0010
+#define SLR_ET_UNUSED             0xffff
+
+/*
+ * Primary SLR Table Header
+ */
+struct slr_table
+{
+    uint32_t magic;
+    uint16_t revision;
+    uint16_t architecture;
+    uint32_t size;
+    uint32_t max_size;
+    /* entries[] */
+} __packed;
+
+/*
+ * Common SLRT Table Header
+ */
+struct slr_entry_hdr
+{
+    uint32_t tag;
+    uint32_t size;
+} __packed;
+
+/*
+ * Boot loader context
+ */
+struct slr_bl_context
+{
+    uint16_t bootloader;
+    uint16_t reserved[3];
+    uint64_t context;
+} __packed;
+
+/*
+ * Prototype of a function pointed to by slr_entry_dl_info::dl_handler.
+ */
+typedef void (*dl_handler_func)(struct slr_bl_context *bl_context);
+
+/*
+ * DRTM Dynamic Launch Configuration
+ */
+struct slr_entry_dl_info
+{
+    struct slr_entry_hdr hdr;
+    uint64_t dce_size;
+    uint64_t dce_base;
+    uint64_t dlme_size;
+    uint64_t dlme_base;
+    uint64_t dlme_entry;
+    struct slr_bl_context bl_context;
+    uint64_t dl_handler;
+} __packed;
+
+/*
+ * TPM Log Information
+ */
+struct slr_entry_log_info
+{
+    struct slr_entry_hdr hdr;
+    uint16_t format;
+    uint16_t reserved;
+    uint32_t size;
+    uint64_t addr;
+} __packed;
+
+/*
+ * DRTM Measurement Entry
+ */
+struct slr_policy_entry
+{
+    uint16_t pcr;
+    uint16_t entity_type;
+    uint16_t flags;
+    uint16_t reserved;
+    uint64_t size;
+    uint64_t entity;
+    char evt_info[TPM_EVENT_INFO_LENGTH];
+} __packed;
+
+/*
+ * DRTM Measurement Policy
+ */
+struct slr_entry_policy
+{
+    struct slr_entry_hdr hdr;
+    uint16_t reserved[2];
+    uint16_t revision;
+    uint16_t nr_entries;
+    struct slr_policy_entry policy_entries[];
+} __packed;
+
+/*
+ * Secure Launch defined MTRR saving structures
+ */
+struct slr_txt_mtrr_pair
+{
+    uint64_t mtrr_physbase;
+    uint64_t mtrr_physmask;
+} __packed;
+
+struct slr_txt_mtrr_state
+{
+    uint64_t default_mem_type;
+    uint64_t mtrr_vcnt;
+    struct slr_txt_mtrr_pair mtrr_pair[TXT_VARIABLE_MTRRS_LENGTH];
+} __packed;
+
+/*
+ * Intel TXT Info table
+ */
+struct slr_entry_intel_info
+{
+    struct slr_entry_hdr hdr;
+    uint64_t boot_params_base;
+    uint64_t txt_heap;
+    uint64_t saved_misc_enable_msr;
+    struct slr_txt_mtrr_state saved_bsp_mtrrs;
+} __packed;
+
+/*
+ * AMD SKINIT Info table
+ */
+struct slr_entry_amd_info
+{
+    struct slr_entry_hdr hdr;
+    uint64_t next;
+    uint32_t type;
+    uint32_t len;
+    uint64_t slrt_size;
+    uint64_t slrt_base;
+    uint64_t boot_params_base;
+    uint16_t psp_version;
+    uint16_t reserved[3];
+} __packed;
+
+/*
+ * ARM DRTM Info table
+ */
+struct slr_entry_arm_info
+{
+    struct slr_entry_hdr hdr;
+} __packed;
+
+/*
+ * UEFI config measurement entry
+ */
+struct slr_uefi_cfg_entry
+{
+    uint16_t pcr;
+    uint16_t reserved;
+    uint32_t size;
+    uint64_t cfg; /* address or value */
+    char evt_info[TPM_EVENT_INFO_LENGTH];
+} __packed;
+
+struct slr_entry_uefi_config
+{
+    struct slr_entry_hdr hdr;
+    uint16_t reserved[2];
+    uint16_t revision;
+    uint16_t nr_entries;
+    struct slr_uefi_cfg_entry uefi_cfg_entries[];
+} __packed;
+
+static inline void *
+slr_end_of_entries(struct slr_table *table)
+{
+    return (uint8_t *)table + table->size;
+}
+
+static inline struct slr_entry_hdr *
+slr_next_entry(struct slr_table *table, struct slr_entry_hdr *curr)
+{
+    struct slr_entry_hdr *next = (struct slr_entry_hdr *)
+                                 ((uint8_t *)curr + curr->size);
+
+    if ( (void *)next >= slr_end_of_entries(table) )
+        return NULL;
+    if ( next->tag == SLR_ENTRY_END )
+        return NULL;
+
+    return next;
+}
+
+static inline struct slr_entry_hdr *
+slr_next_entry_by_tag (struct slr_table *table,
+                       struct slr_entry_hdr *entry,
+                       uint16_t tag)
+{
+    if ( !entry ) /* Start from the beginning */
+        entry = (struct slr_entry_hdr *)((uint8_t *)table + sizeof(*table));
+
+    for ( ; ; )
+    {
+        if ( entry->tag == tag )
+            return entry;
+
+        entry = slr_next_entry(table, entry);
+        if ( !entry )
+            return NULL;
+    }
+
+    return NULL;
+}
+
+#endif /* _SLR_TABLE_H */
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 22 15:07:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 15:07:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.962756.1353899 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7FDH-0008Sf-Pd; Tue, 22 Apr 2025 15:07:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 962756.1353899; Tue, 22 Apr 2025 15:07:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7FDH-0008SY-Mn; Tue, 22 Apr 2025 15:07:07 +0000
Received: by outflank-mailman (input) for mailman id 962756;
 Tue, 22 Apr 2025 15:07:06 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=BiSK=XI=3mdeb.com=sergii.dmytruk@srs-se1.protection.inumbo.net>)
 id 1u7FDF-0008SP-VN
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 15:07:06 +0000
Received: from 7.mo575.mail-out.ovh.net (7.mo575.mail-out.ovh.net
 [46.105.63.230]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 72d052a3-1f8b-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 17:07:03 +0200 (CEST)
Received: from director9.ghost.mail-out.ovh.net (unknown [10.108.2.141])
 by mo575.mail-out.ovh.net (Postfix) with ESMTP id 4ZhlvV3Vc8z23r6
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 15:07:02 +0000 (UTC)
Received: from ghost-submission-5b5ff79f4f-vrv7z (unknown [10.110.101.237])
 by director9.ghost.mail-out.ovh.net (Postfix) with ESMTPS id 7A48B1FD2E;
 Tue, 22 Apr 2025 15:07:00 +0000 (UTC)
Received: from 3mdeb.com ([37.59.142.98])
 by ghost-submission-5b5ff79f4f-vrv7z with ESMTPSA
 id UoTGDZSwB2hgEQwA4lIjWg
 (envelope-from <sergii.dmytruk@3mdeb.com>); Tue, 22 Apr 2025 15:07: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: 72d052a3-1f8b-11f0-9ffb-bf95429c2676
Authentication-Results:garm.ovh; auth=pass (GARM-98R002eaee5505-9d14-4991-bcb3-3672c91ef34e,
                    7E508E014E7E7C169EB13C6E22C3C4EBF1F0FDD7) smtp.auth=sergii.dmytruk@3mdeb.com
X-OVh-ClientIp:176.111.181.178
From: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
To: xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Lukasz Hawrylko <lukasz@hawrylko.pl>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	=?UTF-8?q?Mateusz=20M=C3=B3wka?= <mateusz.mowka@intel.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	trenchboot-devel@googlegroups.com
Subject: [PATCH 00/21] x86: Trenchboot Secure Launch DRTM (Xen)
Date: Tue, 22 Apr 2025 18:06:34 +0300
Message-ID: <cover.1745172094.git.sergii.dmytruk@3mdeb.com>
X-Mailer: git-send-email 2.49.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Ovh-Tracer-Id: 12724357798888715420
X-VR-SPAMSTATE: OK
X-VR-SPAMSCORE: -51
X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvgeegtdehucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuqfggjfdpvefjgfevmfevgfenuceurghilhhouhhtmecuhedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnegoufhushhpvggtthffohhmrghinhculdegledmnecujfgurhephffvvefufffkofggtgfgsehtkeertdertdejnecuhfhrohhmpefuvghrghhiihcuffhmhihtrhhukhcuoehsvghrghhiihdrughmhihtrhhukhesfehmuggvsgdrtghomheqnecuggftrfgrthhtvghrnhepgffhkeeujefhvdeugeektdekjeeiheejkedvheefieeghedufeeuveehheejheegnecuffhomhgrihhnpehtrhgvnhgthhgsohhothdrohhrghdpshhouhhrtggvfhhorhhgvgdrnhgvthdpkhgvrhhnvghlrdhorhhgnecukfhppeduvdejrddtrddtrddupddujeeirdduuddurddukedurddujeekpdefjedrheelrddugedvrdelkeenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepihhnvghtpeduvdejrddtrddtrddupdhmrghilhhfrhhomhepshgvrhhgihhirdgumhihthhruhhkseefmhguvggsrdgtohhmpdhnsggprhgtphhtthhopedupdhrtghpthhtohepgigvnhdquggvvhgvlheslhhishhtshdrgigvnhhprhhojhgvtghtrdhorhhgpdfovfetjfhoshhtpehmohehjeehmgdpmhhouggvpehsmhhtphhouhht
DKIM-Signature: a=rsa-sha256; bh=uzs5IQT4ILJYVMtN0crPFxKj1iOMog379n6QJoG3VMQ=;
 c=relaxed/relaxed; d=3mdeb.com; h=From; s=ovhmo3617313-selector1;
 t=1745334422; v=1;
 b=Bb2cVwRP//zqfngfp2av6kNtV12d6qR0cORBsUJF5R2cyVZ1aMxE8V510WMfrIoRWRuQpkB5
 NzXn/SR9DJWpbexnpk9XI+agDrQhbr5xNZ+NRexQC50TW+/Ifo65MgMqPKALBPkdTiuWHLNDmQl
 MPE8QmzbNIpfvuqM3KxoH2AtRKxPVGOCaHF5eH7UJz5O25uRqhrrQDOwJRv3Cd+iIMq4skhed+L
 8y+2l7f9gVCOD2allC1Ss6jPJAsahv8vcULyNMjlv7Xpa7DDE/GB/XEe8mSUQ3bT2bo3CAqgtK6
 B29tqF4TPsN9wCWhrqtHW5h8AWsncTvAyqpdtCGvMlioA==

The aim of the [TrenchBoot] project is to provide an implementation of
DRTM that is generic enough to cover various use cases:
 - Intel TXT and AMD SKINIT on x86 CPUs
 - legacy and UEFI boot
 - TPM1.2 and TPM2.0
 - (in the future) DRTM on Arm CPUs

DRTM is a version of a measured launch that starts on request rather
than at the start of a boot cycle.  One of its advantages is in not
including the firmware in the chain of trust.

Xen already supports DRTM via [tboot] which targets Intel TXT only.
tboot employs encapsulates some of the DRTM details within itself while
with TrenchBoot Xen (or Linux) is meant to be a self-contained payload
for a TrenchBoot-enabled bootloader (think GRUB).  The one exception is
that UEFI case requires calling back into bootloader to initiate DRTM,
which is necessary to give Xen a chance of querying all the information
it needs from the firmware before performing DRTM start.

>From reading the above tboot might seem like a more abstracted, but the
reality is that the payload needs to have DRTM-specific knowledge either
way.  TrenchBoot in principle allows coming up with independent
implementations of bootloaders and payloads that are compatible with
each other.

The "x86/boot: choose AP stack based on APIC ID" patch is shared with
[Parallelize AP bring-up] series which is required here because Intel
TXT always releases all APs simultaneously.  The rest of the patches are
unique.

-----

[TrenchBoot]: https://trenchboot.org/
[tboot]: https://sourceforge.net/p/tboot/wiki/Home/
[Parallelize AP bring-up]: https://lore.kernel.org/xen-devel/cover.1699982111.git.krystian.hebel@3mdeb.com/

-----

Kacper Stojek (2):
  x86/boot: add MLE header and new entry point
  xen/arch/x86: reserve TXT memory

Krystian Hebel (7):
  x86/include/asm/intel_txt.h: constants and accessors for TXT registers
    and heap
  x86/boot/slaunch_early: early TXT checks and boot data retrieval
  x86/intel_txt.c: restore boot MTRRs
  lib/sha1.c: add file
  x86/tpm.c: code for early hashing and extending PCRs (for TPM1.2)
  x86/boot: choose AP stack based on APIC ID
  x86/smpboot.c: TXT AP bringup

Michał Żygowski (2):
  x86/hvm: Check for VMX in SMX when slaunch active
  x86/cpu: report SMX, TXT and SKINIT capabilities

Sergii Dmytruk (10):
  include/xen/slr_table.h: Secure Launch Resource Table definitions
  x86/boot/slaunch_early: implement early initialization
  x86/mtrr: expose functions for pausing caching
  lib/sha256.c: add file
  x86/tpm.c: support extending PCRs of TPM2.0
  x86/tpm.c: implement event log for TPM2.0
  arch/x86: process DRTM policy
  x86/boot: find MBI and SLRT on AMD
  arch/x86: support slaunch with AMD SKINIT
  x86/slaunch: support EFI boot

 .gitignore                                  |    1 +
 docs/hypervisor-guide/x86/how-xen-boots.rst |    7 +
 xen/arch/x86/Makefile                       |   12 +-
 xen/arch/x86/boot/Makefile                  |   10 +-
 xen/arch/x86/boot/head.S                    |  250 +++++
 xen/arch/x86/boot/slaunch_early.c           |  105 ++
 xen/arch/x86/boot/trampoline.S              |   40 +-
 xen/arch/x86/boot/x86_64.S                  |   42 +-
 xen/arch/x86/cpu/amd.c                      |   14 +
 xen/arch/x86/cpu/cpu.h                      |    1 +
 xen/arch/x86/cpu/hygon.c                    |    1 +
 xen/arch/x86/cpu/intel.c                    |   44 +
 xen/arch/x86/cpu/mtrr/generic.c             |   51 +-
 xen/arch/x86/e820.c                         |    5 +
 xen/arch/x86/efi/efi-boot.h                 |   90 +-
 xen/arch/x86/efi/fixmlehdr.c                |  122 +++
 xen/arch/x86/hvm/vmx/vmcs.c                 |    3 +-
 xen/arch/x86/include/asm/apicdef.h          |    4 +
 xen/arch/x86/include/asm/intel_txt.h        |  452 ++++++++
 xen/arch/x86/include/asm/mm.h               |    3 +
 xen/arch/x86/include/asm/msr-index.h        |    3 +
 xen/arch/x86/include/asm/mtrr.h             |    8 +
 xen/arch/x86/include/asm/processor.h        |    1 +
 xen/arch/x86/include/asm/slaunch.h          |   91 ++
 xen/arch/x86/include/asm/tpm.h              |   19 +
 xen/arch/x86/intel_txt.c                    |  177 ++++
 xen/arch/x86/setup.c                        |   32 +-
 xen/arch/x86/slaunch.c                      |  464 ++++++++
 xen/arch/x86/smpboot.c                      |   57 +
 xen/arch/x86/tboot.c                        |   20 +-
 xen/arch/x86/tpm.c                          | 1057 +++++++++++++++++++
 xen/common/efi/boot.c                       |    4 +
 xen/common/efi/runtime.c                    |    1 +
 xen/include/xen/efi.h                       |    1 +
 xen/include/xen/sha1.h                      |   12 +
 xen/include/xen/sha256.h                    |   12 +
 xen/include/xen/slr_table.h                 |  274 +++++
 xen/lib/Makefile                            |    2 +
 xen/lib/sha1.c                              |  240 +++++
 xen/lib/sha256.c                            |  238 +++++
 40 files changed, 3914 insertions(+), 56 deletions(-)
 create mode 100644 xen/arch/x86/boot/slaunch_early.c
 create mode 100644 xen/arch/x86/efi/fixmlehdr.c
 create mode 100644 xen/arch/x86/include/asm/intel_txt.h
 create mode 100644 xen/arch/x86/include/asm/slaunch.h
 create mode 100644 xen/arch/x86/include/asm/tpm.h
 create mode 100644 xen/arch/x86/intel_txt.c
 create mode 100644 xen/arch/x86/slaunch.c
 create mode 100644 xen/arch/x86/tpm.c
 create mode 100644 xen/include/xen/sha1.h
 create mode 100644 xen/include/xen/sha256.h
 create mode 100644 xen/include/xen/slr_table.h
 create mode 100644 xen/lib/sha1.c
 create mode 100644 xen/lib/sha256.c


base-commit: df68a4cb7ed9418f0c5af56a717714b5280737e4
prerequisite-patch-id: 1c3014908bc6e1a5cab8de609270efdb1c412335
prerequisite-patch-id: 850544a1f9639283f2269ea75b630400dd1976aa
prerequisite-patch-id: 69e042a46f8ac0e3f85853e77082caf250719a8d
prerequisite-patch-id: d6c6d27bbe8ff2f5d96852a6eed72a4c99b61356
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 22 15:07:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 15:07:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.962757.1353909 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7FDK-0000Fa-08; Tue, 22 Apr 2025 15:07:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 962757.1353909; Tue, 22 Apr 2025 15:07: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 1u7FDJ-0000FT-Tj; Tue, 22 Apr 2025 15:07:09 +0000
Received: by outflank-mailman (input) for mailman id 962757;
 Tue, 22 Apr 2025 15:07: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=BiSK=XI=3mdeb.com=sergii.dmytruk@srs-se1.protection.inumbo.net>)
 id 1u7FDI-0008SP-AM
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 15:07:08 +0000
Received: from 11.mo583.mail-out.ovh.net (11.mo583.mail-out.ovh.net
 [46.105.47.167]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 74a6e330-1f8b-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 17:07:06 +0200 (CEST)
Received: from director8.ghost.mail-out.ovh.net (unknown [10.108.17.23])
 by mo583.mail-out.ovh.net (Postfix) with ESMTP id 4ZhlvY6gTmz1Wvl
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 15:07:05 +0000 (UTC)
Received: from ghost-submission-5b5ff79f4f-pjxff (unknown [10.110.118.174])
 by director8.ghost.mail-out.ovh.net (Postfix) with ESMTPS id AEBDD1FE80;
 Tue, 22 Apr 2025 15:07:04 +0000 (UTC)
Received: from 3mdeb.com ([37.59.142.111])
 by ghost-submission-5b5ff79f4f-pjxff with ESMTPSA
 id OXW0GJiwB2ixGAEA3arALQ
 (envelope-from <sergii.dmytruk@3mdeb.com>); Tue, 22 Apr 2025 15:07: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: 74a6e330-1f8b-11f0-9ffb-bf95429c2676
Authentication-Results:garm.ovh; auth=pass (GARM-111S005bd2e2365-bfb7-40b6-aafa-0791b63c51d7,
                    7E508E014E7E7C169EB13C6E22C3C4EBF1F0FDD7) smtp.auth=sergii.dmytruk@3mdeb.com
X-OVh-ClientIp:176.111.181.178
From: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
To: xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Lukasz Hawrylko <lukasz@hawrylko.pl>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	=?UTF-8?q?Mateusz=20M=C3=B3wka?= <mateusz.mowka@intel.com>,
	trenchboot-devel@googlegroups.com
Subject: [PATCH 01/21] x86/include/asm/intel_txt.h: constants and accessors for TXT registers and heap
Date: Tue, 22 Apr 2025 18:06:35 +0300
Message-ID: <e551352d28dbb8a322edc9646d2fa7b3b34f4d5a.1745172094.git.sergii.dmytruk@3mdeb.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <cover.1745172094.git.sergii.dmytruk@3mdeb.com>
References: <cover.1745172094.git.sergii.dmytruk@3mdeb.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Ovh-Tracer-Id: 12725202225531434140
X-VR-SPAMSTATE: OK
X-VR-SPAMSCORE: -100
X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvgeegtdehucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuqfggjfdpvefjgfevmfevgfenuceurghilhhouhhtmecuhedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurhephffvvefufffkofgjfhgggfestdekredtredttdenucfhrhhomhepufgvrhhgihhiucffmhihthhruhhkuceoshgvrhhgihhirdgumhihthhruhhkseefmhguvggsrdgtohhmqeenucggtffrrghtthgvrhhnpefhheefheduieelieekfffgfffgfedutdevleevvdfhfffgledvgfdtuddtheefieenucfkphepuddvjedrtddrtddruddpudejiedrudduuddrudekuddrudejkedpfeejrdehledrudegvddrudduudenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepihhnvghtpeduvdejrddtrddtrddupdhmrghilhhfrhhomhepshgvrhhgihhirdgumhihthhruhhkseefmhguvggsrdgtohhmpdhnsggprhgtphhtthhopedupdhrtghpthhtohepgigvnhdquggvvhgvlheslhhishhtshdrgigvnhhprhhojhgvtghtrdhorhhgpdfovfetjfhoshhtpehmohehkeefmgdpmhhouggvpehsmhhtphhouhht
DKIM-Signature: a=rsa-sha256; bh=zjfvm6tMPNPpoqe92b4S9vihWXD1gBOX5E2QXl7N77Y=;
 c=relaxed/relaxed; d=3mdeb.com; h=From; s=ovhmo3617313-selector1;
 t=1745334426; v=1;
 b=RCQDK2olpwPZN4P76SfneliZU9W7Z5UedOIFN797GT0ejA2ps4nBfSjzWO1rerG/PPG0NMh/
 Qlh5FW+uxQdWnd6vwYFQyhw0R5bZPYE4tW7w/5SLA47ew0WJeKwaveSa+fnQM1W9vdbB++fUWuL
 LMdCEsxZntepzbDc5HOwtxNORZU+U+8M1pGeez1EK8eVZWyeYdPMdnXPquh1qDdoD0ye9YKtM2k
 E+Ir47gbkI2B2nuSwJH8NyLLReVuVV+xIgXYucQqDS7ot4qM7/kDLdgYtV8DPmPTW7xdprGI0tc
 X57LLPgbPvttkVyOQnWY5tpouDLhHvoZoEIXS5sja09xw==

From: Krystian Hebel <krystian.hebel@3mdeb.com>

The file contains TXT register spaces base address, registers offsets,
error codes and inline functions for accessing structures stored on
TXT heap.

Signed-off-by: Krystian Hebel <krystian.hebel@3mdeb.com>
Signed-off-by: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
---
 xen/arch/x86/include/asm/intel_txt.h | 272 +++++++++++++++++++++++++++
 xen/arch/x86/tboot.c                 |  20 +-
 2 files changed, 274 insertions(+), 18 deletions(-)
 create mode 100644 xen/arch/x86/include/asm/intel_txt.h

diff --git a/xen/arch/x86/include/asm/intel_txt.h b/xen/arch/x86/include/asm/intel_txt.h
new file mode 100644
index 0000000000..2cc6eb5be9
--- /dev/null
+++ b/xen/arch/x86/include/asm/intel_txt.h
@@ -0,0 +1,272 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+
+/*
+ * TXT configuration registers (offsets from TXT_{PUB, PRIV}_CONFIG_REGS_BASE)
+ */
+#define TXT_PUB_CONFIG_REGS_BASE        0xfed30000
+#define TXT_PRIV_CONFIG_REGS_BASE       0xfed20000
+
+/*
+ * The same set of registers is exposed twice (with different permissions) and
+ * they are allocated continuously with page alignment.
+ */
+#define NR_TXT_CONFIG_SIZE \
+    (TXT_PUB_CONFIG_REGS_BASE - TXT_PRIV_CONFIG_REGS_BASE)
+
+/* Offsets from pub/priv config space. */
+#define TXTCR_STS                       0x0000
+#define TXTCR_ESTS                      0x0008
+#define TXTCR_ERRORCODE                 0x0030
+#define TXTCR_CMD_RESET                 0x0038
+#define TXTCR_CMD_CLOSE_PRIVATE         0x0048
+#define TXTCR_DIDVID                    0x0110
+#define TXTCR_VER_EMIF                  0x0200
+#define TXTCR_CMD_UNLOCK_MEM_CONFIG     0x0218
+#define TXTCR_SINIT_BASE                0x0270
+#define TXTCR_SINIT_SIZE                0x0278
+#define TXTCR_MLE_JOIN                  0x0290
+#define TXTCR_HEAP_BASE                 0x0300
+#define TXTCR_HEAP_SIZE                 0x0308
+#define TXTCR_SCRATCHPAD                0x0378
+#define TXTCR_CMD_OPEN_LOCALITY1        0x0380
+#define TXTCR_CMD_CLOSE_LOCALITY1       0x0388
+#define TXTCR_CMD_OPEN_LOCALITY2        0x0390
+#define TXTCR_CMD_CLOSE_LOCALITY2       0x0398
+#define TXTCR_CMD_SECRETS               0x08e0
+#define TXTCR_CMD_NO_SECRETS            0x08e8
+#define TXTCR_E2STS                     0x08f0
+
+/*
+ * Secure Launch Defined Error Codes used in MLE-initiated TXT resets.
+ *
+ * TXT Specification
+ * Appendix I ACM Error Codes
+ */
+#define SLAUNCH_ERROR_GENERIC                0xc0008001
+#define SLAUNCH_ERROR_TPM_INIT               0xc0008002
+#define SLAUNCH_ERROR_TPM_INVALID_LOG20      0xc0008003
+#define SLAUNCH_ERROR_TPM_LOGGING_FAILED     0xc0008004
+#define SLAUNCH_ERROR_REGION_STRADDLE_4GB    0xc0008005
+#define SLAUNCH_ERROR_TPM_EXTEND             0xc0008006
+#define SLAUNCH_ERROR_MTRR_INV_VCNT          0xc0008007
+#define SLAUNCH_ERROR_MTRR_INV_DEF_TYPE      0xc0008008
+#define SLAUNCH_ERROR_MTRR_INV_BASE          0xc0008009
+#define SLAUNCH_ERROR_MTRR_INV_MASK          0xc000800a
+#define SLAUNCH_ERROR_MSR_INV_MISC_EN        0xc000800b
+#define SLAUNCH_ERROR_INV_AP_INTERRUPT       0xc000800c
+#define SLAUNCH_ERROR_INTEGER_OVERFLOW       0xc000800d
+#define SLAUNCH_ERROR_HEAP_WALK              0xc000800e
+#define SLAUNCH_ERROR_HEAP_MAP               0xc000800f
+#define SLAUNCH_ERROR_REGION_ABOVE_4GB       0xc0008010
+#define SLAUNCH_ERROR_HEAP_INVALID_DMAR      0xc0008011
+#define SLAUNCH_ERROR_HEAP_DMAR_SIZE         0xc0008012
+#define SLAUNCH_ERROR_HEAP_DMAR_MAP          0xc0008013
+#define SLAUNCH_ERROR_HI_PMR_BASE            0xc0008014
+#define SLAUNCH_ERROR_HI_PMR_SIZE            0xc0008015
+#define SLAUNCH_ERROR_LO_PMR_BASE            0xc0008016
+#define SLAUNCH_ERROR_LO_PMR_SIZE            0xc0008017
+#define SLAUNCH_ERROR_LO_PMR_MLE             0xc0008018
+#define SLAUNCH_ERROR_INITRD_TOO_BIG         0xc0008019
+#define SLAUNCH_ERROR_HEAP_ZERO_OFFSET       0xc000801a
+#define SLAUNCH_ERROR_WAKE_BLOCK_TOO_SMALL   0xc000801b
+#define SLAUNCH_ERROR_MLE_BUFFER_OVERLAP     0xc000801c
+#define SLAUNCH_ERROR_BUFFER_BEYOND_PMR      0xc000801d
+#define SLAUNCH_ERROR_OS_SINIT_BAD_VERSION   0xc000801e
+#define SLAUNCH_ERROR_EVENTLOG_MAP           0xc000801f
+#define SLAUNCH_ERROR_TPM_NUMBER_ALGS        0xc0008020
+#define SLAUNCH_ERROR_TPM_UNKNOWN_DIGEST     0xc0008021
+#define SLAUNCH_ERROR_TPM_INVALID_EVENT      0xc0008022
+
+#define SLAUNCH_BOOTLOADER_MAGIC             0x4c534254
+
+#ifndef __ASSEMBLY__
+
+/* Need to differentiate between pre- and post paging enabled. */
+#ifdef __EARLY_SLAUNCH__
+#include <xen/macros.h>
+#define _txt(x) _p(x)
+#else
+#include <xen/types.h>
+#include <asm/page.h>   // __va()
+#define _txt(x) __va(x)
+#endif
+
+/*
+ * Always use private space as some of registers are either read-only or not
+ * present in public space.
+ */
+static inline uint64_t read_txt_reg(int reg_no)
+{
+    volatile uint64_t *reg = _txt(TXT_PRIV_CONFIG_REGS_BASE + reg_no);
+    return *reg;
+}
+
+static inline void write_txt_reg(int reg_no, uint64_t val)
+{
+    volatile uint64_t *reg = _txt(TXT_PRIV_CONFIG_REGS_BASE + reg_no);
+    *reg = val;
+    /* This serves as TXT register barrier */
+    (void)read_txt_reg(TXTCR_ESTS);
+}
+
+static inline void txt_reset(uint32_t error)
+{
+    write_txt_reg(TXTCR_ERRORCODE, error);
+    write_txt_reg(TXTCR_CMD_NO_SECRETS, 1);
+    write_txt_reg(TXTCR_CMD_UNLOCK_MEM_CONFIG, 1);
+    write_txt_reg(TXTCR_CMD_RESET, 1);
+    while (1);
+}
+
+/*
+ * Secure Launch defined OS/MLE TXT Heap table
+ */
+struct txt_os_mle_data {
+    uint32_t version;
+    uint32_t reserved;
+    uint64_t slrt;
+    uint64_t txt_info;
+    uint32_t ap_wake_block;
+    uint32_t ap_wake_block_size;
+    uint8_t mle_scratch[64];
+} __packed;
+
+/*
+ * TXT specification defined BIOS data TXT Heap table
+ */
+struct txt_bios_data {
+    uint32_t version; /* Currently 5 for TPM 1.2 and 6 for TPM 2.0 */
+    uint32_t bios_sinit_size;
+    uint64_t reserved1;
+    uint64_t reserved2;
+    uint32_t num_logical_procs;
+    /* Versions >= 3 && < 5 */
+    uint32_t sinit_flags;
+    /* Versions >= 5 with updates in version 6 */
+    uint32_t mle_flags;
+    /* Versions >= 4 */
+    /* Ext Data Elements */
+} __packed;
+
+/*
+ * TXT specification defined OS/SINIT TXT Heap table
+ */
+struct txt_os_sinit_data {
+    uint32_t version;       /* Currently 6 for TPM 1.2 and 7 for TPM 2.0 */
+    uint32_t flags;         /* Reserved in version 6 */
+    uint64_t mle_ptab;
+    uint64_t mle_size;
+    uint64_t mle_hdr_base;
+    uint64_t vtd_pmr_lo_base;
+    uint64_t vtd_pmr_lo_size;
+    uint64_t vtd_pmr_hi_base;
+    uint64_t vtd_pmr_hi_size;
+    uint64_t lcp_po_base;
+    uint64_t lcp_po_size;
+    uint32_t capabilities;
+    /* Version = 5 */
+    uint64_t efi_rsdt_ptr;  /* RSD*P* in versions >= 6 */
+    /* Versions >= 6 */
+    /* Ext Data Elements */
+} __packed;
+
+/*
+ * TXT specification defined SINIT/MLE TXT Heap table
+ */
+struct txt_sinit_mle_data {
+    uint32_t version;  /* Current values are 6 through 9 */
+    /* Versions <= 8, fields until lcp_policy_control must be 0 for >= 9 */
+    uint8_t bios_acm_id[20];
+    uint32_t edx_senter_flags;
+    uint64_t mseg_valid;
+    uint8_t sinit_hash[20];
+    uint8_t mle_hash[20];
+    uint8_t stm_hash[20];
+    uint8_t lcp_policy_hash[20];
+    uint32_t lcp_policy_control;
+    /* Versions >= 7 */
+    uint32_t rlp_wakeup_addr;
+    uint32_t reserved;
+    uint32_t num_of_sinit_mdrs;
+    uint32_t sinit_mdrs_table_offset;
+    uint32_t sinit_vtd_dmar_table_size;
+    uint32_t sinit_vtd_dmar_table_offset;
+    /* Versions >= 8 */
+    uint32_t processor_scrtm_status;
+    /* Versions >= 9 */
+    /* Ext Data Elements */
+} __packed;
+
+/*
+ * Functions to extract data from the Intel TXT Heap Memory. The layout
+ * of the heap is as follows:
+ *  +------------------------------------+
+ *  | Size of Bios Data table (uint64_t) |
+ *  +------------------------------------+
+ *  | Bios Data table                    |
+ *  +------------------------------------+
+ *  | Size of OS MLE table (uint64_t)    |
+ *  +------------------------------------+
+ *  | OS MLE table                       |
+ *  +--------------------------------    +
+ *  | Size of OS SINIT table (uint64_t)  |
+ *  +------------------------------------+
+ *  | OS SINIT table                     |
+ *  +------------------------------------+
+ *  | Size of SINIT MLE table (uint64_t) |
+ *  +------------------------------------+
+ *  | SINIT MLE table                    |
+ *  +------------------------------------+
+ *
+ *  NOTE: the table size fields include the 8 byte size field itself.
+ */
+static inline uint64_t txt_bios_data_size(void *heap)
+{
+    return *((uint64_t *)heap) - sizeof(uint64_t);
+}
+
+static inline void *txt_bios_data_start(void *heap)
+{
+    return heap + sizeof(uint64_t);
+}
+
+static inline uint64_t txt_os_mle_data_size(void *heap)
+{
+    return *((uint64_t *)(txt_bios_data_start(heap) +
+                          txt_bios_data_size(heap))) -
+        sizeof(uint64_t);
+}
+
+static inline void *txt_os_mle_data_start(void *heap)
+{
+    return txt_bios_data_start(heap) + txt_bios_data_size(heap) +
+        sizeof(uint64_t);
+}
+
+static inline uint64_t txt_os_sinit_data_size(void *heap)
+{
+    return *((uint64_t *)(txt_os_mle_data_start(heap) +
+                          txt_os_mle_data_size(heap))) -
+        sizeof(uint64_t);
+}
+
+static inline void *txt_os_sinit_data_start(void *heap)
+{
+    return txt_os_mle_data_start(heap) + txt_os_mle_data_size(heap) +
+        sizeof(uint64_t);
+}
+
+static inline uint64_t txt_sinit_mle_data_size(void *heap)
+{
+    return *((uint64_t *)(txt_os_sinit_data_start(heap) +
+                          txt_os_sinit_data_size(heap))) -
+        sizeof(uint64_t);
+}
+
+static inline void *txt_sinit_mle_data_start(void *heap)
+{
+    return txt_os_sinit_data_start(heap) + txt_os_sinit_data_size(heap) +
+        sizeof(uint64_t);
+}
+
+#endif /* __ASSEMBLY__ */
diff --git a/xen/arch/x86/tboot.c b/xen/arch/x86/tboot.c
index d5db60d335..f68354c374 100644
--- a/xen/arch/x86/tboot.c
+++ b/xen/arch/x86/tboot.c
@@ -15,6 +15,7 @@
 #include <asm/tboot.h>
 #include <asm/setup.h>
 #include <asm/trampoline.h>
+#include <asm/intel_txt.h>
 
 #include <crypto/vmac.h>
 
@@ -35,23 +36,6 @@ static uint64_t __initdata sinit_base, __initdata sinit_size;
 
 static bool __ro_after_init is_vtd;
 
-/*
- * TXT configuration registers (offsets from TXT_{PUB, PRIV}_CONFIG_REGS_BASE)
- */
-
-#define TXT_PUB_CONFIG_REGS_BASE       0xfed30000
-#define TXT_PRIV_CONFIG_REGS_BASE      0xfed20000
-
-/* # pages for each config regs space - used by fixmap */
-#define NR_TXT_CONFIG_PAGES     ((TXT_PUB_CONFIG_REGS_BASE -                \
-                                  TXT_PRIV_CONFIG_REGS_BASE) >> PAGE_SHIFT)
-
-/* offsets from pub/priv config space */
-#define TXTCR_SINIT_BASE            0x0270
-#define TXTCR_SINIT_SIZE            0x0278
-#define TXTCR_HEAP_BASE             0x0300
-#define TXTCR_HEAP_SIZE             0x0308
-
 #define SHA1_SIZE      20
 typedef uint8_t   sha1_hash_t[SHA1_SIZE];
 
@@ -409,7 +393,7 @@ int __init tboot_protect_mem_regions(void)
 
     /* TXT Private Space */
     rc = e820_change_range_type(&e820, TXT_PRIV_CONFIG_REGS_BASE,
-                 TXT_PRIV_CONFIG_REGS_BASE + NR_TXT_CONFIG_PAGES * PAGE_SIZE,
+                 TXT_PRIV_CONFIG_REGS_BASE + NR_TXT_CONFIG_SIZE,
                  E820_RESERVED, E820_UNUSABLE);
     if ( !rc )
         return 0;
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 22 15:07:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 15:07:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.962759.1353928 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7FDO-0000mS-Hv; Tue, 22 Apr 2025 15:07:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 962759.1353928; Tue, 22 Apr 2025 15:07: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 1u7FDO-0000mL-FL; Tue, 22 Apr 2025 15:07:14 +0000
Received: by outflank-mailman (input) for mailman id 962759;
 Tue, 22 Apr 2025 15:07: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=BiSK=XI=3mdeb.com=sergii.dmytruk@srs-se1.protection.inumbo.net>)
 id 1u7FDN-0000lQ-U4
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 15:07:13 +0000
Received: from 9.mo584.mail-out.ovh.net (9.mo584.mail-out.ovh.net
 [46.105.40.176]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 784a0c4c-1f8b-11f0-9eb0-5ba50f476ded;
 Tue, 22 Apr 2025 17:07:13 +0200 (CEST)
Received: from director10.ghost.mail-out.ovh.net (unknown [10.109.139.54])
 by mo584.mail-out.ovh.net (Postfix) with ESMTP id 4Zhlvh2KgYz1YL3
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 15:07:12 +0000 (UTC)
Received: from ghost-submission-5b5ff79f4f-w2sd9 (unknown [10.110.178.161])
 by director10.ghost.mail-out.ovh.net (Postfix) with ESMTPS id 05C811FEDD;
 Tue, 22 Apr 2025 15:07:10 +0000 (UTC)
Received: from 3mdeb.com ([37.59.142.106])
 by ghost-submission-5b5ff79f4f-w2sd9 with ESMTPSA
 id gjHvMp6wB2hCUgIAGwf5/A
 (envelope-from <sergii.dmytruk@3mdeb.com>); Tue, 22 Apr 2025 15:07: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: 784a0c4c-1f8b-11f0-9eb0-5ba50f476ded
Authentication-Results:garm.ovh; auth=pass (GARM-106R00600220e96-ded3-40a4-a6af-caa494199e46,
                    7E508E014E7E7C169EB13C6E22C3C4EBF1F0FDD7) smtp.auth=sergii.dmytruk@3mdeb.com
X-OVh-ClientIp:176.111.181.178
From: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	trenchboot-devel@googlegroups.com
Subject: [PATCH 03/21] x86/boot: add MLE header and new entry point
Date: Tue, 22 Apr 2025 18:06:37 +0300
Message-ID: <e92fd3dc9241b56686eba65f255eea16462d8954.1745172094.git.sergii.dmytruk@3mdeb.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <cover.1745172094.git.sergii.dmytruk@3mdeb.com>
References: <cover.1745172094.git.sergii.dmytruk@3mdeb.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Ovh-Tracer-Id: 12727172547972674716
X-VR-SPAMSTATE: OK
X-VR-SPAMSCORE: -100
X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvgeegtdehucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuqfggjfdpvefjgfevmfevgfenuceurghilhhouhhtmecuhedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurhephffvvefufffkofgjfhgggfestdekredtredttdenucfhrhhomhepufgvrhhgihhiucffmhihthhruhhkuceoshgvrhhgihhirdgumhihthhruhhkseefmhguvggsrdgtohhmqeenucggtffrrghtthgvrhhnpeekudegfeduieegudeijeelleekfedvvdfhheehvefhudekjeeifeegtdduveehtdenucffohhmrghinhephhgvrggurdhssgenucfkphepuddvjedrtddrtddruddpudejiedrudduuddrudekuddrudejkedpfeejrdehledrudegvddruddtieenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepihhnvghtpeduvdejrddtrddtrddupdhmrghilhhfrhhomhepshgvrhhgihhirdgumhihthhruhhkseefmhguvggsrdgtohhmpdhnsggprhgtphhtthhopedupdhrtghpthhtohepgigvnhdquggvvhgvlheslhhishhtshdrgigvnhhprhhojhgvtghtrdhorhhgpdfovfetjfhoshhtpehmohehkeegmgdpmhhouggvpehsmhhtphhouhht
DKIM-Signature: a=rsa-sha256; bh=C/zzp0aIagiRDRrNb1hyYGPHNAie/7wpVquzYMh9D/s=;
 c=relaxed/relaxed; d=3mdeb.com; h=From; s=ovhmo3617313-selector1;
 t=1745334432; v=1;
 b=auk5A/R6YHWHvx1XnF4GvLDHLDBtWcmvNNfqC7u2is7mNE5UMP0AzCURaqHc5VcWnMoU8Sfc
 t4O+v5Gh2ynvSqGtOmbf8TIuacg/jqjxA9l59nwogPyEfv3e/c8txFV8U5hZ5WmpVmDbtNVwagb
 ToAIyn/bihPLHBderKuCWCU9RusWgl/qCTGQ66QA+Xin73jPC093zNuBtDStXuisAkztwvg98Mv
 0Xm3RRoM7HNwuIe/zzjePj8b0IYpiYGUK+RysuEOIGqHbjwW+RKsjMvcGf6YDmgtkiLSlffvLoG
 TGjlN07ALlNihncoDcwKVidPf4MhTQPHx22uLk6QdRVqg==

From: Kacper Stojek <kacper.stojek@3mdeb.com>

Signed-off-by: Kacper Stojek <kacper.stojek@3mdeb.com>
Signed-off-by: Krystian Hebel <krystian.hebel@3mdeb.com>
Signed-off-by: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
---
 docs/hypervisor-guide/x86/how-xen-boots.rst |  5 ++
 xen/arch/x86/boot/head.S                    | 53 +++++++++++++++++++++
 2 files changed, 58 insertions(+)

diff --git a/docs/hypervisor-guide/x86/how-xen-boots.rst b/docs/hypervisor-guide/x86/how-xen-boots.rst
index 8b3229005c..050fe9c61f 100644
--- a/docs/hypervisor-guide/x86/how-xen-boots.rst
+++ b/docs/hypervisor-guide/x86/how-xen-boots.rst
@@ -55,6 +55,11 @@ If ``CONFIG_PVH_GUEST`` was selected at build time, an Elf note is included
 which indicates the ability to use the PVH boot protocol, and registers
 ``__pvh_start`` as the entrypoint, entered in 32bit mode.
 
+A combination of Multiboot 2 and MLE headers is used to implement DRTM for
+legacy (BIOS) boot. The separate entry point is used mainly to differentiate
+from other kinds of boots. It moves a magic number to EAX before jumping into
+common startup code.
+
 
 xen.gz
 ~~~~~~
diff --git a/xen/arch/x86/boot/head.S b/xen/arch/x86/boot/head.S
index 77bb7a9e21..cd951ad2dc 100644
--- a/xen/arch/x86/boot/head.S
+++ b/xen/arch/x86/boot/head.S
@@ -4,6 +4,7 @@
 #include <public/xen.h>
 #include <asm/asm_defns.h>
 #include <asm/fixmap.h>
+#include <asm/intel_txt.h>
 #include <asm/page.h>
 #include <asm/processor.h>
 #include <asm/msr-index.h>
@@ -126,6 +127,25 @@ multiboot2_header:
         .size multiboot2_header, . - multiboot2_header
         .type multiboot2_header, @object
 
+        .balign 16
+mle_header:
+        .long   0x9082ac5a  /* UUID0 */
+        .long   0x74a7476f  /* UUID1 */
+        .long   0xa2555c0f  /* UUID2 */
+        .long   0x42b651cb  /* UUID3 */
+        .long   0x00000034  /* MLE header size */
+        .long   0x00020002  /* MLE version 2.2 */
+        .long   (slaunch_stub_entry - start)  /* Linear entry point of MLE (SINIT virt. address) */
+        .long   0x00000000  /* First valid page of MLE */
+        .long   0x00000000  /* Offset within binary of first byte of MLE */
+        .long   (_end - start)  /* Offset within binary of last byte + 1 of MLE */
+        .long   0x00000723  /* Bit vector of MLE-supported capabilities */
+        .long   0x00000000  /* Starting linear address of command line (unused) */
+        .long   0x00000000  /* Ending linear address of command line (unused) */
+
+        .size mle_header, .-mle_header
+        .type mle_header, @object
+
         .section .init.rodata, "a", @progbits
 
 .Lbad_cpu_msg: .asciz "ERR: Not a 64-bit CPU!"
@@ -332,6 +352,38 @@ cs32_switch:
         /* Jump to earlier loaded address. */
         jmp     *%edi
 
+        /*
+         * Entry point for TrenchBoot Secure Launch on Intel TXT platforms.
+         *
+         * CPU is in 32b protected mode with paging disabled. On entry:
+         * - %ebx = %eip = MLE entry point,
+         * - stack pointer is undefined,
+         * - CS is flat 4GB code segment,
+         * - DS, ES, SS, FS and GS are undefined according to TXT SDG, but this
+         *   would make it impossible to initialize GDTR, because GDT base must
+         *   be relocated in the descriptor, which requires write access that
+         *   CS doesn't provide. Instead we have to assume that DS is set by
+         *   SINIT ACM as flat 4GB data segment.
+         *
+         * Additional restrictions:
+         * - some MSRs are partially cleared, among them IA32_MISC_ENABLE, so
+         *   some capabilities might be reported as disabled even if they are
+         *   supported by CPU
+         * - interrupts (including NMIs and SMIs) are disabled and must be
+         *   enabled later
+         * - trying to enter real mode results in reset
+         * - APs must be brought up by MONITOR or GETSEC[WAKEUP], depending on
+         *   which is supported by a given SINIT ACM
+         */
+slaunch_stub_entry:
+        /* Calculate the load base address. */
+        mov     %ebx, %esi
+        sub     $sym_offs(slaunch_stub_entry), %esi
+
+        /* Mark Secure Launch boot protocol and jump to common entry. */
+        mov     $SLAUNCH_BOOTLOADER_MAGIC, %eax
+        jmp     .Lset_stack
+
 #ifdef CONFIG_PVH_GUEST
 ELFNOTE(Xen, XEN_ELFNOTE_PHYS32_ENTRY, .long sym_offs(__pvh_start))
 
@@ -371,6 +423,7 @@ __start:
         /* Restore the clobbered field. */
         mov     %edx, (%ebx)
 
+.Lset_stack:
         /* Set up stack. */
         lea     STACK_SIZE - CPUINFO_sizeof + sym_esi(cpu0_stack), %esp
 
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 22 15:07:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 15:07:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.962760.1353939 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7FDR-00014J-SF; Tue, 22 Apr 2025 15:07:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 962760.1353939; Tue, 22 Apr 2025 15:07: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 1u7FDR-00014A-OR; Tue, 22 Apr 2025 15:07:17 +0000
Received: by outflank-mailman (input) for mailman id 962760;
 Tue, 22 Apr 2025 15:07: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=BiSK=XI=3mdeb.com=sergii.dmytruk@srs-se1.protection.inumbo.net>)
 id 1u7FDQ-0000lQ-TF
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 15:07:16 +0000
Received: from 19.mo561.mail-out.ovh.net (19.mo561.mail-out.ovh.net
 [178.32.98.231]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7a2a3a88-1f8b-11f0-9eb0-5ba50f476ded;
 Tue, 22 Apr 2025 17:07:16 +0200 (CEST)
Received: from director7.ghost.mail-out.ovh.net (unknown [10.108.25.15])
 by mo561.mail-out.ovh.net (Postfix) with ESMTP id 4Zhlvl2j2fz1bff
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 15:07:15 +0000 (UTC)
Received: from ghost-submission-5b5ff79f4f-bt6hd (unknown [10.110.178.210])
 by director7.ghost.mail-out.ovh.net (Postfix) with ESMTPS id 70DE61FE99;
 Tue, 22 Apr 2025 15:07:14 +0000 (UTC)
Received: from 3mdeb.com ([37.59.142.101])
 by ghost-submission-5b5ff79f4f-bt6hd with ESMTPSA
 id nK3OBqKwB2ge+RAAyP1w0w
 (envelope-from <sergii.dmytruk@3mdeb.com>); Tue, 22 Apr 2025 15:07: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: 7a2a3a88-1f8b-11f0-9eb0-5ba50f476ded
Authentication-Results:garm.ovh; auth=pass (GARM-101G004b327d7ef-90ae-41a5-ba9a-3cc7237e961b,
                    7E508E014E7E7C169EB13C6E22C3C4EBF1F0FDD7) smtp.auth=sergii.dmytruk@3mdeb.com
X-OVh-ClientIp:176.111.181.178
From: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
To: xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	trenchboot-devel@googlegroups.com
Subject: [PATCH 04/21] x86/boot/slaunch_early: implement early initialization
Date: Tue, 22 Apr 2025 18:06:38 +0300
Message-ID: <0e67e075eeba3c78c0db55f65caa233f94c38d78.1745172094.git.sergii.dmytruk@3mdeb.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <cover.1745172094.git.sergii.dmytruk@3mdeb.com>
References: <cover.1745172094.git.sergii.dmytruk@3mdeb.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Ovh-Tracer-Id: 12728016974653797532
X-VR-SPAMSTATE: OK
X-VR-SPAMSCORE: -100
X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvgeegtdehucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuqfggjfdpvefjgfevmfevgfenuceurghilhhouhhtmecuhedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurhephffvvefufffkofgjfhgggfestdekredtredttdenucfhrhhomhepufgvrhhgihhiucffmhihthhruhhkuceoshgvrhhgihhirdgumhihthhruhhkseefmhguvggsrdgtohhmqeenucggtffrrghtthgvrhhnpeffjefgudevkeetudegueeihfdthfejgfeileekuefggeegtdegveehfeehfeefueenucffohhmrghinhepsggrshgvrdhmrghppdhhvggrugdrshgsnecukfhppeduvdejrddtrddtrddupddujeeirdduuddurddukedurddujeekpdefjedrheelrddugedvrddutddunecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehinhgvthepuddvjedrtddrtddruddpmhgrihhlfhhrohhmpehsvghrghhiihdrughmhihtrhhukhesfehmuggvsgdrtghomhdpnhgspghrtghpthhtohepuddprhgtphhtthhopeigvghnqdguvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdpoffvtefjohhsthepmhhoheeiudgmpdhmohguvgepshhmthhpohhuth
DKIM-Signature: a=rsa-sha256; bh=pt0Pi7ZFKQj7O1HXO7Pvp5p5rmWoJu6O09JQ4IeitBY=;
 c=relaxed/relaxed; d=3mdeb.com; h=From; s=ovhmo3617313-selector1;
 t=1745334435; v=1;
 b=huZeoKq35ciMwpgmCBtw6yuOubC+UUl99fN2sDkcWf4NpVDJbf3Fj0b/W/ab1K3i/oEnHr3p
 rmy2MbYBQzx9tv5weaavXuvgM+AgHbIMQcL9B4qJK+FR6FeqTKpxePynJQUv7U7dgJypGs/8Uyb
 NoAiHOwRFi3sYuS2zAFe5RuX2XJA0uY3e6cW/8VTmEroE0T4L46slgJuXW3MIpSZ5n4M9ZbuR7m
 Yq1NInvlSUe2QPxo/rle3aP7ZNYGHg/1mr19WarM+lDF6d4/AFQPg/QINQVsxE6x3SKOQLXPkou
 9RReqkIr8hELbY2bkuUl8P6kF0JYXKpq21jviVOesZpLg==

Make head.S invoke a C function to retrieve MBI and SLRT addresses in a
platform-specific way.  This is also the place to perform sanity checks
of DRTM.

Signed-off-by: Krystian Hebel <krystian.hebel@3mdeb.com>
Signed-off-by: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
---
 xen/arch/x86/Makefile                |  1 +
 xen/arch/x86/boot/Makefile           |  5 +++-
 xen/arch/x86/boot/head.S             | 43 ++++++++++++++++++++++++++++
 xen/arch/x86/boot/slaunch_early.c    | 41 ++++++++++++++++++++++++++
 xen/arch/x86/include/asm/intel_txt.h | 16 +++++++++++
 xen/arch/x86/include/asm/slaunch.h   | 19 ++++++++++++
 xen/arch/x86/slaunch.c               | 26 +++++++++++++++++
 7 files changed, 150 insertions(+), 1 deletion(-)
 create mode 100644 xen/arch/x86/boot/slaunch_early.c
 create mode 100644 xen/arch/x86/include/asm/slaunch.h
 create mode 100644 xen/arch/x86/slaunch.c

diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
index f59c9665fd..571cad160d 100644
--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -59,6 +59,7 @@ obj-$(CONFIG_COMPAT) += x86_64/physdev.o
 obj-$(CONFIG_X86_PSR) += psr.o
 obj-y += setup.o
 obj-y += shutdown.o
+obj-y += slaunch.o
 obj-y += smp.o
 obj-y += smpboot.o
 obj-y += spec_ctrl.o
diff --git a/xen/arch/x86/boot/Makefile b/xen/arch/x86/boot/Makefile
index be91a5757a..d0015f7d19 100644
--- a/xen/arch/x86/boot/Makefile
+++ b/xen/arch/x86/boot/Makefile
@@ -5,6 +5,7 @@ obj-bin-y += $(obj64)
 obj32 := cmdline.32.o
 obj32 += reloc.32.o
 obj32 += reloc-trampoline.32.o
+obj32 += slaunch_early.32.o
 
 obj64 := reloc-trampoline.o
 
@@ -28,6 +29,8 @@ $(obj32): XEN_CFLAGS := $(CFLAGS_x86_32) -fpic
 $(obj)/%.32.o: $(src)/%.c FORCE
 	$(call if_changed_rule,cc_o_c)
 
+$(obj)/slaunch_early.32.o: XEN_CFLAGS += -D__EARLY_SLAUNCH__
+
 orphan-handling-$(call ld-option,--orphan-handling=error) := --orphan-handling=error
 LDFLAGS_DIRECT-$(call ld-option,--warn-rwx-segments) := --no-warn-rwx-segments
 LDFLAGS_DIRECT += $(LDFLAGS_DIRECT-y)
@@ -81,7 +84,7 @@ cmd_combine = \
               --bin1      $(obj)/built-in-32.base.bin \
               --bin2      $(obj)/built-in-32.offset.bin \
               --map       $(obj)/built-in-32.base.map \
-              --exports   cmdline_parse_early,reloc,reloc_trampoline32 \
+              --exports   cmdline_parse_early,reloc,reloc_trampoline32,slaunch_early_init \
               --output    $@
 
 targets += built-in-32.S
diff --git a/xen/arch/x86/boot/head.S b/xen/arch/x86/boot/head.S
index cd951ad2dc..e522a36305 100644
--- a/xen/arch/x86/boot/head.S
+++ b/xen/arch/x86/boot/head.S
@@ -472,6 +472,10 @@ __start:
         /* Bootloaders may set multiboot{1,2}.mem_lower to a nonzero value. */
         xor     %edx,%edx
 
+        /* Check for TrenchBoot slaunch bootloader. */
+        cmp     $SLAUNCH_BOOTLOADER_MAGIC, %eax
+        je      .Lslaunch_proto
+
         /* Check for Multiboot2 bootloader. */
         cmp     $MULTIBOOT2_BOOTLOADER_MAGIC,%eax
         je      .Lmultiboot2_proto
@@ -487,6 +491,45 @@ __start:
         cmovnz  MB_mem_lower(%ebx),%edx
         jmp     trampoline_bios_setup
 
+.Lslaunch_proto:
+        /*
+         * Upon reaching here, CPU state mostly matches the one setup by the
+         * bootloader with ESP, ESI and EDX being clobbered above.
+         */
+
+        /* Save information that TrenchBoot slaunch was used. */
+        movb    $1, sym_esi(slaunch_active)
+
+        /*
+         * Prepare space for output parameter of slaunch_early_init(), which is
+         * a structure of two uint32_t fields.
+         */
+        sub     $8, %esp
+
+        push    %esp                             /* pointer to output structure */
+        lea     sym_offs(__2M_rwdata_end), %ecx  /* end of target image */
+        lea     sym_offs(_start), %edx           /* target base address */
+        mov     %esi, %eax                       /* load base address */
+        /*
+         * slaunch_early_init(load/eax, tgt/edx, tgt_end/ecx, ret/stk) using
+         * fastcall calling convention.
+         */
+        call    slaunch_early_init
+        add     $4, %esp                         /* pop the fourth parameter */
+
+        /* Move outputs of slaunch_early_init() from stack into registers. */
+        pop     %eax  /* physical MBI address */
+        pop     %edx  /* physical SLRT address */
+
+        /* Save physical address of SLRT for C code. */
+        mov     %edx, sym_esi(slaunch_slrt)
+
+        /* Store MBI address in EBX where MB2 code expects it. */
+        mov     %eax, %ebx
+
+        /* Move magic number expected by Multiboot 2 to EAX and fall through. */
+        movl    $MULTIBOOT2_BOOTLOADER_MAGIC, %eax
+
 .Lmultiboot2_proto:
         /* Skip Multiboot2 information fixed part. */
         lea     (MB2_fixed_sizeof+MULTIBOOT2_TAG_ALIGN-1)(%ebx),%ecx
diff --git a/xen/arch/x86/boot/slaunch_early.c b/xen/arch/x86/boot/slaunch_early.c
new file mode 100644
index 0000000000..177267248f
--- /dev/null
+++ b/xen/arch/x86/boot/slaunch_early.c
@@ -0,0 +1,41 @@
+/*
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ *
+ * Copyright (c) 2022-2025 3mdeb Sp. z o.o. All rights reserved.
+ */
+
+#include <xen/slr_table.h>
+#include <xen/types.h>
+#include <asm/intel_txt.h>
+
+struct early_init_results
+{
+    uint32_t mbi_pa;
+    uint32_t slrt_pa;
+} __packed;
+
+void slaunch_early_init(uint32_t load_base_addr,
+                        uint32_t tgt_base_addr,
+                        uint32_t tgt_end_addr,
+                        struct early_init_results *result)
+{
+    void *txt_heap;
+    struct txt_os_mle_data *os_mle;
+    struct slr_table *slrt;
+    struct slr_entry_intel_info *intel_info;
+
+    txt_heap = txt_init();
+    os_mle = txt_os_mle_data_start(txt_heap);
+
+    result->slrt_pa = os_mle->slrt;
+    result->mbi_pa = 0;
+
+    slrt = (struct slr_table *)(uintptr_t)os_mle->slrt;
+
+    intel_info = (struct slr_entry_intel_info *)
+        slr_next_entry_by_tag(slrt, NULL, SLR_ENTRY_INTEL_INFO);
+    if ( intel_info == NULL || intel_info->hdr.size != sizeof(*intel_info) )
+        return;
+
+    result->mbi_pa = intel_info->boot_params_base;
+}
diff --git a/xen/arch/x86/include/asm/intel_txt.h b/xen/arch/x86/include/asm/intel_txt.h
index 2cc6eb5be9..b973640c56 100644
--- a/xen/arch/x86/include/asm/intel_txt.h
+++ b/xen/arch/x86/include/asm/intel_txt.h
@@ -269,4 +269,20 @@ static inline void *txt_sinit_mle_data_start(void *heap)
         sizeof(uint64_t);
 }
 
+static inline void *txt_init(void)
+{
+    void *txt_heap;
+
+    /* Clear the TXT error register for a clean start of the day. */
+    write_txt_reg(TXTCR_ERRORCODE, 0);
+
+    txt_heap = _p(read_txt_reg(TXTCR_HEAP_BASE));
+
+    if ( txt_os_mle_data_size(txt_heap) < sizeof(struct txt_os_mle_data) ||
+         txt_os_sinit_data_size(txt_heap) < sizeof(struct txt_os_sinit_data) )
+        txt_reset(SLAUNCH_ERROR_GENERIC);
+
+    return txt_heap;
+}
+
 #endif /* __ASSEMBLY__ */
diff --git a/xen/arch/x86/include/asm/slaunch.h b/xen/arch/x86/include/asm/slaunch.h
new file mode 100644
index 0000000000..08cc2657f0
--- /dev/null
+++ b/xen/arch/x86/include/asm/slaunch.h
@@ -0,0 +1,19 @@
+/*
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ *
+ * Copyright (c) 2022-2025 3mdeb Sp. z o.o. All rights reserved.
+ */
+
+#ifndef _ASM_X86_SLAUNCH_H_
+#define _ASM_X86_SLAUNCH_H_
+
+#include <xen/types.h>
+
+extern bool slaunch_active;
+
+/*
+ * Retrieves pointer to SLRT.  Checks table's validity and maps it as necessary.
+ */
+struct slr_table *slaunch_get_slrt(void);
+
+#endif /* _ASM_X86_SLAUNCH_H_ */
diff --git a/xen/arch/x86/slaunch.c b/xen/arch/x86/slaunch.c
new file mode 100644
index 0000000000..0404084b02
--- /dev/null
+++ b/xen/arch/x86/slaunch.c
@@ -0,0 +1,26 @@
+/*
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ *
+ * Copyright (c) 2022-2025 3mdeb Sp. z o.o. All rights reserved.
+ */
+
+#include <xen/compiler.h>
+#include <xen/init.h>
+#include <xen/macros.h>
+#include <xen/types.h>
+#include <asm/slaunch.h>
+
+/*
+ * These variables are assigned to by the code near Xen's entry point.
+ * slaunch_slrt is not declared in slaunch.h to facilitate accessing the
+ * variable through slaunch_get_slrt().
+ */
+bool __initdata slaunch_active;
+uint32_t __initdata slaunch_slrt; /* physical address */
+
+/* Using slaunch_active in head.S assumes it's a single byte in size, so enforce
+ * this assumption. */
+static void __maybe_unused compile_time_checks(void)
+{
+    BUILD_BUG_ON(sizeof(slaunch_active) != 1);
+}
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 22 15:07:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 15:07:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.962761.1353949 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7FDW-0001RV-A7; Tue, 22 Apr 2025 15:07:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 962761.1353949; Tue, 22 Apr 2025 15:07: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 1u7FDW-0001RM-6J; Tue, 22 Apr 2025 15:07:22 +0000
Received: by outflank-mailman (input) for mailman id 962761;
 Tue, 22 Apr 2025 15:07: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=BiSK=XI=3mdeb.com=sergii.dmytruk@srs-se1.protection.inumbo.net>)
 id 1u7FDU-0008SP-8g
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 15:07:20 +0000
Received: from 7.mo561.mail-out.ovh.net (7.mo561.mail-out.ovh.net
 [46.105.57.200]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7bd5597b-1f8b-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 17:07:18 +0200 (CEST)
Received: from director6.ghost.mail-out.ovh.net (unknown [10.109.148.7])
 by mo561.mail-out.ovh.net (Postfix) with ESMTP id 4Zhlvp1ZgRz1bl7
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 15:07:18 +0000 (UTC)
Received: from ghost-submission-5b5ff79f4f-2rjjd (unknown [10.110.96.65])
 by director6.ghost.mail-out.ovh.net (Postfix) with ESMTPS id 7D1F31FECD;
 Tue, 22 Apr 2025 15:07:17 +0000 (UTC)
Received: from 3mdeb.com ([37.59.142.109])
 by ghost-submission-5b5ff79f4f-2rjjd with ESMTPSA
 id LdyRDaWwB2htQAEAITd0qQ
 (envelope-from <sergii.dmytruk@3mdeb.com>); Tue, 22 Apr 2025 15:07: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: 7bd5597b-1f8b-11f0-9ffb-bf95429c2676
Authentication-Results:garm.ovh; auth=pass (GARM-109S003a3e5d368-64c5-4915-82bc-18f6a6b58197,
                    7E508E014E7E7C169EB13C6E22C3C4EBF1F0FDD7) smtp.auth=sergii.dmytruk@3mdeb.com
X-OVh-ClientIp:176.111.181.178
From: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
To: xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	trenchboot-devel@googlegroups.com
Subject: [PATCH 05/21] x86/boot/slaunch_early: early TXT checks and boot data retrieval
Date: Tue, 22 Apr 2025 18:06:39 +0300
Message-ID: <86c2de54e0ebcd1632b921c56858cc77eba51ee1.1745172094.git.sergii.dmytruk@3mdeb.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <cover.1745172094.git.sergii.dmytruk@3mdeb.com>
References: <cover.1745172094.git.sergii.dmytruk@3mdeb.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Ovh-Tracer-Id: 12728861399315887260
X-VR-SPAMSTATE: OK
X-VR-SPAMSCORE: -100
X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvgeegtdehucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuqfggjfdpvefjgfevmfevgfenuceurghilhhouhhtmecuhedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurhephffvvefufffkofgjfhgggfestdekredtredttdenucfhrhhomhepufgvrhhgihhiucffmhihthhruhhkuceoshgvrhhgihhirdgumhihthhruhhkseefmhguvggsrdgtohhmqeenucggtffrrghtthgvrhhnpefhheefheduieelieekfffgfffgfedutdevleevvdfhfffgledvgfdtuddtheefieenucfkphepuddvjedrtddrtddruddpudejiedrudduuddrudekuddrudejkedpfeejrdehledrudegvddruddtleenucevlhhushhtvghrufhiiigvpedvnecurfgrrhgrmhepihhnvghtpeduvdejrddtrddtrddupdhmrghilhhfrhhomhepshgvrhhgihhirdgumhihthhruhhkseefmhguvggsrdgtohhmpdhnsggprhgtphhtthhopedupdhrtghpthhtohepgigvnhdquggvvhgvlheslhhishhtshdrgigvnhhprhhojhgvtghtrdhorhhgpdfovfetjfhoshhtpehmohehiedumgdpmhhouggvpehsmhhtphhouhht
DKIM-Signature: a=rsa-sha256; bh=sDqAgp/M0rnx3UyLlpBLSL73Y4pMrP7a5rwyrX+6GX8=;
 c=relaxed/relaxed; d=3mdeb.com; h=From; s=ovhmo3617313-selector1;
 t=1745334438; v=1;
 b=Zuu/Of5ekkE/TpMsCupV07C79TRv0Y+ECiG3wE2Tn188knJG6/3dQHIdUr3k8aGZ49d24LhE
 apO9r32EhL8IhIA5bYTgdjlDZ2SkqBik7e11/noVBmGyhjmaejzqSNmZVZbxnr52eaQEfHtQz7Z
 lNHxT5lO3PVllnrhc1xwirbqSPsc4st9hOeQlCb/AKgx57s+loVoqotajp9lwKbUcLB2E+Y1880
 pA4bpxf4uX/vjWSP4yrDKrok4G/OGDYCl2Z+FG118lioYHOqmAPQDzmBR4l3vlCGjUGkCgf/CVa
 IjJOS/us1lUhu7ukKvMKNIKrgigivggJIs/hNMQgzEyxQ==

From: Krystian Hebel <krystian.hebel@3mdeb.com>

The tests validate that important parts of memory are protected against
DMA attacks, including Xen and MBI. Modules can be tested later, when it
is possible to report issues to a user before invoking TXT reset.

TPM event log validation is temporarily disabled due to an issue with
its allocation by bootloader (GRUB) which will need to be modified to
address this. Ultimately event log will also have to be validated early
as it is used immediately after these tests to hold MBI measurements.
See larger comment in txt_verify_pmr_ranges().

Signed-off-by: Krystian Hebel <krystian.hebel@3mdeb.com>
Signed-off-by: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
---
 xen/arch/x86/boot/slaunch_early.c    |   6 ++
 xen/arch/x86/include/asm/intel_txt.h | 111 +++++++++++++++++++++++++++
 2 files changed, 117 insertions(+)

diff --git a/xen/arch/x86/boot/slaunch_early.c b/xen/arch/x86/boot/slaunch_early.c
index 177267248f..af8aa29ae0 100644
--- a/xen/arch/x86/boot/slaunch_early.c
+++ b/xen/arch/x86/boot/slaunch_early.c
@@ -22,10 +22,13 @@ void slaunch_early_init(uint32_t load_base_addr,
     void *txt_heap;
     struct txt_os_mle_data *os_mle;
     struct slr_table *slrt;
+    struct txt_os_sinit_data *os_sinit;
     struct slr_entry_intel_info *intel_info;
+    uint32_t size = tgt_end_addr - tgt_base_addr;
 
     txt_heap = txt_init();
     os_mle = txt_os_mle_data_start(txt_heap);
+    os_sinit = txt_os_sinit_data_start(txt_heap);
 
     result->slrt_pa = os_mle->slrt;
     result->mbi_pa = 0;
@@ -38,4 +41,7 @@ void slaunch_early_init(uint32_t load_base_addr,
         return;
 
     result->mbi_pa = intel_info->boot_params_base;
+
+    txt_verify_pmr_ranges(os_mle, os_sinit, intel_info,
+                          load_base_addr, tgt_base_addr, size);
 }
diff --git a/xen/arch/x86/include/asm/intel_txt.h b/xen/arch/x86/include/asm/intel_txt.h
index b973640c56..7170baf6fb 100644
--- a/xen/arch/x86/include/asm/intel_txt.h
+++ b/xen/arch/x86/include/asm/intel_txt.h
@@ -81,6 +81,8 @@
 
 #ifndef __ASSEMBLY__
 
+#include <xen/slr_table.h>
+
 /* Need to differentiate between pre- and post paging enabled. */
 #ifdef __EARLY_SLAUNCH__
 #include <xen/macros.h>
@@ -285,4 +287,113 @@ static inline void *txt_init(void)
     return txt_heap;
 }
 
+static inline int is_in_pmr(struct txt_os_sinit_data *os_sinit, uint64_t base,
+                            uint32_t size, int check_high)
+{
+    /* Check for size overflow. */
+    if ( base + size < base )
+        txt_reset(SLAUNCH_ERROR_INTEGER_OVERFLOW);
+
+    /* Low range always starts at 0, so its size is also end address. */
+    if ( base >= os_sinit->vtd_pmr_lo_base &&
+         base + size <= os_sinit->vtd_pmr_lo_size )
+        return 1;
+
+    if ( check_high && os_sinit->vtd_pmr_hi_size != 0 )
+    {
+        if ( os_sinit->vtd_pmr_hi_base + os_sinit->vtd_pmr_hi_size <
+             os_sinit->vtd_pmr_hi_size )
+            txt_reset(SLAUNCH_ERROR_INTEGER_OVERFLOW);
+        if ( base >= os_sinit->vtd_pmr_hi_base &&
+             base + size <= os_sinit->vtd_pmr_hi_base +
+                            os_sinit->vtd_pmr_hi_size )
+            return 1;
+    }
+
+    return 0;
+}
+
+static inline void txt_verify_pmr_ranges(struct txt_os_mle_data *os_mle,
+                                         struct txt_os_sinit_data *os_sinit,
+                                         struct slr_entry_intel_info *info,
+                                         uint32_t load_base_addr,
+                                         uint32_t tgt_base_addr,
+                                         uint32_t xen_size)
+{
+    int check_high_pmr = 0;
+
+    /* Verify the value of the low PMR base. It should always be 0. */
+    if ( os_sinit->vtd_pmr_lo_base != 0 )
+        txt_reset(SLAUNCH_ERROR_LO_PMR_BASE);
+
+    /*
+     * Low PMR size should not be 0 on current platforms. There is an ongoing
+     * transition to TPR-based DMA protection instead of PMR-based; this is not
+     * yet supported by the code.
+     */
+    if ( os_sinit->vtd_pmr_lo_size == 0 )
+        txt_reset(SLAUNCH_ERROR_LO_PMR_SIZE);
+
+    /* Check if regions overlap. Treat regions with no hole between as error. */
+    if ( os_sinit->vtd_pmr_hi_size != 0 &&
+         os_sinit->vtd_pmr_hi_base <= os_sinit->vtd_pmr_lo_size )
+        txt_reset(SLAUNCH_ERROR_HI_PMR_BASE);
+
+    /* All regions accessed by 32b code must be below 4G. */
+    if ( os_sinit->vtd_pmr_hi_base + os_sinit->vtd_pmr_hi_size <=
+         0x100000000ull )
+        check_high_pmr = 1;
+
+    /*
+     * ACM checks that TXT heap and MLE memory is protected against DMA. We have
+     * to check if MBI and whole Xen memory is protected. The latter is done in
+     * case bootloader failed to set whole image as MLE and to make sure that
+     * both pre- and post-relocation code is protected.
+     */
+
+    /* Check if all of Xen before relocation is covered by PMR. */
+    if ( !is_in_pmr(os_sinit, load_base_addr, xen_size, check_high_pmr) )
+        txt_reset(SLAUNCH_ERROR_LO_PMR_MLE);
+
+    /* Check if all of Xen after relocation is covered by PMR. */
+    if ( load_base_addr != tgt_base_addr &&
+         !is_in_pmr(os_sinit, tgt_base_addr, xen_size, check_high_pmr) )
+        txt_reset(SLAUNCH_ERROR_LO_PMR_MLE);
+
+    /*
+     * If present, check that MBI is covered by PMR. MBI starts with 'uint32_t
+     * total_size'.
+     */
+    if ( info->boot_params_base != 0 &&
+         !is_in_pmr(os_sinit, info->boot_params_base,
+                    *(uint32_t *)(uintptr_t)info->boot_params_base,
+                    check_high_pmr) )
+        txt_reset(SLAUNCH_ERROR_BUFFER_BEYOND_PMR);
+
+    /* Check if TPM event log (if present) is covered by PMR. */
+    /*
+     * FIXME: currently commented out as GRUB allocates it in a hole between
+     * PMR and reserved RAM, due to 2MB resolution of PMR. There are no other
+     * easy-to-use DMA protection mechanisms that would allow to protect that
+     * part of memory. TPR (TXT DMA Protection Range) gives 1MB resolution, but
+     * it still wouldn't be enough.
+     *
+     * One possible solution would be for GRUB to allocate log at lower address,
+     * but this would further increase memory space fragmentation. Another
+     * option is to align PMR up instead of down, making PMR cover part of
+     * reserved region, but it is unclear what the consequences may be.
+     *
+     * In tboot this issue was resolved by reserving leftover chunks of memory
+     * in e820 and/or UEFI memory map. This is also a valid solution, but would
+     * require more changes to GRUB than the ones listed above, as event log is
+     * allocated much earlier than PMRs.
+     */
+    /*
+    if ( os_mle->evtlog_addr != 0 && os_mle->evtlog_size != 0 &&
+         !is_in_pmr(os_sinit, os_mle->evtlog_addr, os_mle->evtlog_size,
+                    check_high_pmr) )
+        txt_reset(SLAUNCH_ERROR_BUFFER_BEYOND_PMR);
+    */
+}
+
 #endif /* __ASSEMBLY__ */
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 22 15:07:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 15:07:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.962765.1353959 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7FDY-0001ji-IR; Tue, 22 Apr 2025 15:07:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 962765.1353959; Tue, 22 Apr 2025 15:07:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7FDY-0001jY-Es; Tue, 22 Apr 2025 15:07:24 +0000
Received: by outflank-mailman (input) for mailman id 962765;
 Tue, 22 Apr 2025 15:07: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=BiSK=XI=3mdeb.com=sergii.dmytruk@srs-se1.protection.inumbo.net>)
 id 1u7FDX-0008SP-CB
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 15:07:23 +0000
Received: from 8.mo583.mail-out.ovh.net (8.mo583.mail-out.ovh.net
 [178.32.116.78]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7da3cf56-1f8b-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 17:07:21 +0200 (CEST)
Received: from director8.ghost.mail-out.ovh.net (unknown [10.108.25.16])
 by mo583.mail-out.ovh.net (Postfix) with ESMTP id 4Zhlvs0mQ0z1hRD
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 15:07:21 +0000 (UTC)
Received: from ghost-submission-5b5ff79f4f-9jk7j (unknown [10.110.164.38])
 by director8.ghost.mail-out.ovh.net (Postfix) with ESMTPS id 4B0F81FEC8;
 Tue, 22 Apr 2025 15:07:20 +0000 (UTC)
Received: from 3mdeb.com ([37.59.142.105])
 by ghost-submission-5b5ff79f4f-9jk7j with ESMTPSA
 id 8J+EB6iwB2h4GgEATnw8yA
 (envelope-from <sergii.dmytruk@3mdeb.com>); Tue, 22 Apr 2025 15:07:20 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7da3cf56-1f8b-11f0-9ffb-bf95429c2676
Authentication-Results:garm.ovh; auth=pass (GARM-105G006566173e4-e8e0-4e73-a28e-31db44e7d3fa,
                    7E508E014E7E7C169EB13C6E22C3C4EBF1F0FDD7) smtp.auth=sergii.dmytruk@3mdeb.com
X-OVh-ClientIp:176.111.181.178
From: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
To: xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	trenchboot-devel@googlegroups.com
Subject: [PATCH 06/21] xen/arch/x86: reserve TXT memory
Date: Tue, 22 Apr 2025 18:06:40 +0300
Message-ID: <39d9839d4cb3bafbe7b43f91d472c50cce1e720f.1745172094.git.sergii.dmytruk@3mdeb.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <cover.1745172094.git.sergii.dmytruk@3mdeb.com>
References: <cover.1745172094.git.sergii.dmytruk@3mdeb.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Ovh-Tracer-Id: 12729705823544194204
X-VR-SPAMSTATE: OK
X-VR-SPAMSCORE: -100
X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvgeegtdehucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuqfggjfdpvefjgfevmfevgfenuceurghilhhouhhtmecuhedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurhephffvvefufffkofgjfhggtgfgsehtkeertdertdejnecuhfhrohhmpefuvghrghhiihcuffhmhihtrhhukhcuoehsvghrghhiihdrughmhihtrhhukhesfehmuggvsgdrtghomheqnecuggftrfgrthhtvghrnhepgeekffeiiedtveekhfdugeffveeigefgleegvdeghefftdetheefueeliedukedvnecukfhppeduvdejrddtrddtrddupddujeeirdduuddurddukedurddujeekpdefjedrheelrddugedvrddutdehnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehinhgvthepuddvjedrtddrtddruddpmhgrihhlfhhrohhmpehsvghrghhiihdrughmhihtrhhukhesfehmuggvsgdrtghomhdpnhgspghrtghpthhtohepuddprhgtphhtthhopeigvghnqdguvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdpoffvtefjohhsthepmhhoheekfegmpdhmohguvgepshhmthhpohhuth
DKIM-Signature: a=rsa-sha256; bh=HvumLBFYP6CuHegJXtZM9ondyMXqUewjKdXuvImTbxE=;
 c=relaxed/relaxed; d=3mdeb.com; h=From; s=ovhmo3617313-selector1;
 t=1745334441; v=1;
 b=bzfRhvdQ9bEu02yLXJWY9MSF6ulVuy0R9bzwIolKpiQQEXpuPgN+fCe1SHKnb6viuRztcOHd
 XB+VZ6mGsR0qVjW9xBqjGh/SnyB7dpbySnXmswD0rVdV/E7BljgA1nY/7jnVuc9SF6JXwyRczvA
 XGwDyAw3Ay4RZ352XhC3SCbgE1p8O/py8wy0Mfjb/SGJH1lREARR0rju64K0i+fhYDc87r2rU1f
 mj5qPnYTJCQr/zUUrKdAab6UQBl2dT45gwUpMjw6RoL1Odflzi+NpUeRpECetR7niyG9ALmO3wD
 NwIU9xFr0Mcfgt8zuhCGPKScWGmKWYSVHXeY0Hh9m13zw==

From: Kacper Stojek <kacper.stojek@3mdeb.com>

TXT heap, SINIT and TXT private space are marked as reserved or unused
in e820 to protect from unintended uses.

Signed-off-by: Kacper Stojek <kacper.stojek@3mdeb.com>
Signed-off-by: Krystian Hebel <krystian.hebel@3mdeb.com>
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Signed-off-by: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
---
 xen/arch/x86/Makefile                |   1 +
 xen/arch/x86/include/asm/intel_txt.h |   6 ++
 xen/arch/x86/include/asm/mm.h        |   3 +
 xen/arch/x86/include/asm/slaunch.h   |  44 ++++++++++++
 xen/arch/x86/intel_txt.c             | 102 +++++++++++++++++++++++++++
 xen/arch/x86/setup.c                 |  10 ++-
 xen/arch/x86/slaunch.c               |  96 +++++++++++++++++++++++++
 7 files changed, 259 insertions(+), 3 deletions(-)
 create mode 100644 xen/arch/x86/intel_txt.c

diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
index 571cad160d..cae548f7e9 100644
--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -40,6 +40,7 @@ obj-$(CONFIG_GDBSX) += gdbsx.o
 obj-y += hypercall.o
 obj-y += i387.o
 obj-y += i8259.o
+obj-y += intel_txt.o
 obj-y += io_apic.o
 obj-$(CONFIG_LIVEPATCH) += alternative.o livepatch.o
 obj-y += msi.o
diff --git a/xen/arch/x86/include/asm/intel_txt.h b/xen/arch/x86/include/asm/intel_txt.h
index 7170baf6fb..85ef9f6245 100644
--- a/xen/arch/x86/include/asm/intel_txt.h
+++ b/xen/arch/x86/include/asm/intel_txt.h
@@ -396,4 +396,10 @@ static inline void txt_verify_pmr_ranges(struct txt_os_mle_data *os_mle,
     */
 }
 
+/* Prepares for accesses to TXT-specific memory. */
+void txt_map_mem_regions(void);
+
+/* Marks TXT-specific memory as used to avoid its corruption. */
+void txt_reserve_mem_regions(void);
+
 #endif /* __ASSEMBLY__ */
diff --git a/xen/arch/x86/include/asm/mm.h b/xen/arch/x86/include/asm/mm.h
index a1bc8cc274..061cb12a5b 100644
--- a/xen/arch/x86/include/asm/mm.h
+++ b/xen/arch/x86/include/asm/mm.h
@@ -106,6 +106,9 @@
 #define _PGC_need_scrub   _PGC_allocated
 #define PGC_need_scrub    PGC_allocated
 
+/* How much of the directmap is prebuilt at compile time. */
+#define PREBUILT_MAP_LIMIT (1 << L2_PAGETABLE_SHIFT)
+
 #ifndef CONFIG_BIGMEM
 /*
  * This definition is solely for the use in struct page_info (and
diff --git a/xen/arch/x86/include/asm/slaunch.h b/xen/arch/x86/include/asm/slaunch.h
index 08cc2657f0..78d3c8bf37 100644
--- a/xen/arch/x86/include/asm/slaunch.h
+++ b/xen/arch/x86/include/asm/slaunch.h
@@ -7,13 +7,57 @@
 #ifndef _ASM_X86_SLAUNCH_H_
 #define _ASM_X86_SLAUNCH_H_
 
+#include <xen/slr_table.h>
 #include <xen/types.h>
 
 extern bool slaunch_active;
 
+/*
+ * evt_log is assigned a physical address and the caller must map it to
+ * virtual, if needed.
+ */
+static inline void find_evt_log(struct slr_table *slrt, void **evt_log,
+                                uint32_t *evt_log_size)
+{
+    struct slr_entry_log_info *log_info;
+
+    log_info = (struct slr_entry_log_info *)
+        slr_next_entry_by_tag(slrt, NULL, SLR_ENTRY_LOG_INFO);
+    if ( log_info != NULL )
+    {
+        *evt_log = _p(log_info->addr);
+        *evt_log_size = log_info->size;
+    }
+    else
+    {
+        *evt_log = NULL;
+        *evt_log_size = 0;
+    }
+}
+
 /*
  * Retrieves pointer to SLRT.  Checks table's validity and maps it as necessary.
  */
 struct slr_table *slaunch_get_slrt(void);
 
+/*
+ * Prepares for accesses to essential data structures setup by boot environment.
+ */
+void slaunch_map_mem_regions(void);
+
+/* Marks regions of memory as used to avoid their corruption. */
+void slaunch_reserve_mem_regions(void);
+
+/*
+ * This helper function is used to map memory using L2 page tables by aligning
+ * mapped regions to 2MB. This way page allocator (which at this point isn't
+ * yet initialized) isn't needed for creating new L1 mappings. The function
+ * also checks and skips memory already mapped by the prebuilt tables.
+ *
+ * There is no unmap_l2() because the function is meant to be used by the code
+ * that accesses DRTM-related memory soon after which Xen rebuilds memory maps,
+ * effectively dropping all existing mappings.
+ */
+int slaunch_map_l2(unsigned long paddr, unsigned long size);
+
 #endif /* _ASM_X86_SLAUNCH_H_ */
diff --git a/xen/arch/x86/intel_txt.c b/xen/arch/x86/intel_txt.c
new file mode 100644
index 0000000000..4a4e404007
--- /dev/null
+++ b/xen/arch/x86/intel_txt.c
@@ -0,0 +1,102 @@
+/*
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ *
+ * Copyright (c) 2022-2025 3mdeb Sp. z o.o. All rights reserved.
+ */
+
+#include <xen/bug.h>
+#include <xen/init.h>
+#include <xen/lib.h>
+#include <xen/types.h>
+#include <asm/e820.h>
+#include <asm/intel_txt.h>
+#include <asm/slaunch.h>
+
+static uint64_t __initdata txt_heap_base, txt_heap_size;
+
+void __init txt_map_mem_regions(void)
+{
+    int rc;
+
+    rc = slaunch_map_l2(TXT_PRIV_CONFIG_REGS_BASE, NR_TXT_CONFIG_SIZE);
+    BUG_ON(rc != 0);
+
+    txt_heap_base = read_txt_reg(TXTCR_HEAP_BASE);
+    BUG_ON(txt_heap_base == 0);
+
+    txt_heap_size = read_txt_reg(TXTCR_HEAP_SIZE);
+    BUG_ON(txt_heap_size == 0);
+
+    rc = slaunch_map_l2(txt_heap_base, txt_heap_size);
+    BUG_ON(rc != 0);
+}
+
+/* Mark RAM region as RESERVED if it isn't marked that way already. */
+static int __init mark_ram_as(struct e820map *e820, uint64_t start,
+                              uint64_t end, uint32_t type)
+{
+    unsigned int i;
+    uint32_t from_type = E820_RAM;
+
+    for ( i = 0; i < e820->nr_map; i++ )
+    {
+        uint64_t rs = e820->map[i].addr;
+        uint64_t re = rs + e820->map[i].size;
+        if ( start >= rs && end <= re )
+            break;
+    }
+
+    /*
+     * Allow the range to be unlisted since we're only preventing RAM from
+     * use.
+     */
+    if ( i == e820->nr_map )
+        return 1;
+
+    /*
+     * e820_change_range_type() fails if the range is already marked with the
+     * desired type. Don't consider it an error if firmware has done it for us.
+     */
+    if ( e820->map[i].type == type )
+        return 1;
+
+    /* E820_ACPI or E820_NVS are really unexpected, but others are fine. */
+    if ( e820->map[i].type == E820_RESERVED ||
+         e820->map[i].type == E820_UNUSABLE )
+        from_type = e820->map[i].type;
+
+    return e820_change_range_type(e820, start, end, from_type, type);
+}
+
+void __init txt_reserve_mem_regions(void)
+{
+    int rc;
+    uint64_t sinit_base, sinit_size;
+
+    /* TXT Heap */
+    BUG_ON(txt_heap_base == 0);
+    printk("SLAUNCH: reserving TXT heap (%#lx - %#lx)\n", txt_heap_base,
+           txt_heap_base + txt_heap_size);
+    rc = mark_ram_as(&e820_raw, txt_heap_base, txt_heap_base + txt_heap_size,
+                     E820_RESERVED);
+    BUG_ON(rc == 0);
+
+    sinit_base = read_txt_reg(TXTCR_SINIT_BASE);
+    BUG_ON(sinit_base == 0);
+
+    sinit_size = read_txt_reg(TXTCR_SINIT_SIZE);
+    BUG_ON(sinit_size == 0);
+
+    /* SINIT */
+    printk("SLAUNCH: reserving SINIT memory (%#lx - %#lx)\n", sinit_base,
+           sinit_base + sinit_size);
+    rc = mark_ram_as(&e820_raw, sinit_base, sinit_base + sinit_size,
+                     E820_RESERVED);
+    BUG_ON(rc == 0);
+
+    /* TXT Private Space */
+    rc = mark_ram_as(&e820_raw, TXT_PRIV_CONFIG_REGS_BASE,
+                     TXT_PRIV_CONFIG_REGS_BASE + NR_TXT_CONFIG_SIZE,
+                     E820_UNUSABLE);
+    BUG_ON(rc == 0);
+}
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 24b36c1a59..403d976449 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -52,6 +52,7 @@
 #include <asm/prot-key.h>
 #include <asm/pv/domain.h>
 #include <asm/setup.h>
+#include <asm/slaunch.h>
 #include <asm/smp.h>
 #include <asm/spec_ctrl.h>
 #include <asm/tboot.h>
@@ -1058,9 +1059,6 @@ static struct domain *__init create_dom0(struct boot_info *bi)
     return d;
 }
 
-/* How much of the directmap is prebuilt at compile time. */
-#define PREBUILT_MAP_LIMIT (1 << L2_PAGETABLE_SHIFT)
-
 void asmlinkage __init noreturn __start_xen(void)
 {
     const char *memmap_type = NULL;
@@ -1396,6 +1394,12 @@ void asmlinkage __init noreturn __start_xen(void)
 #endif
     }
 
+    if ( slaunch_active )
+    {
+        slaunch_map_mem_regions();
+        slaunch_reserve_mem_regions();
+    }
+
     /* Sanitise the raw E820 map to produce a final clean version. */
     max_page = raw_max_page = init_e820(memmap_type, &e820_raw);
 
diff --git a/xen/arch/x86/slaunch.c b/xen/arch/x86/slaunch.c
index 0404084b02..20e277cc5c 100644
--- a/xen/arch/x86/slaunch.c
+++ b/xen/arch/x86/slaunch.c
@@ -7,7 +7,11 @@
 #include <xen/compiler.h>
 #include <xen/init.h>
 #include <xen/macros.h>
+#include <xen/mm.h>
 #include <xen/types.h>
+#include <asm/e820.h>
+#include <asm/intel_txt.h>
+#include <asm/page.h>
 #include <asm/slaunch.h>
 
 /*
@@ -24,3 +28,95 @@ static void __maybe_unused compile_time_checks(void)
 {
     BUILD_BUG_ON(sizeof(slaunch_active) != 1);
 }
+
+struct slr_table *__init slaunch_get_slrt(void)
+{
+    static struct slr_table *slrt;
+
+    if (slrt == NULL) {
+        int rc;
+
+        slrt = __va(slaunch_slrt);
+
+        rc = slaunch_map_l2(slaunch_slrt, PAGE_SIZE);
+        BUG_ON(rc != 0);
+
+        if ( slrt->magic != SLR_TABLE_MAGIC )
+            panic("SLRT has invalid magic value: %#08x!\n", slrt->magic);
+        /* XXX: are newer revisions allowed? */
+        if ( slrt->revision != SLR_TABLE_REVISION )
+            panic("SLRT is of unsupported revision: %#04x!\n", slrt->revision);
+        if ( slrt->architecture != SLR_INTEL_TXT )
+            panic("SLRT is for unexpected architecture: %#04x!\n",
+                  slrt->architecture);
+        if ( slrt->size > slrt->max_size )
+            panic("SLRT is larger than its max size: %#08x > %#08x!\n",
+                  slrt->size, slrt->max_size);
+
+        if ( slrt->size > PAGE_SIZE )
+        {
+            rc = slaunch_map_l2(slaunch_slrt, slrt->size);
+            BUG_ON(rc != 0);
+        }
+    }
+
+    return slrt;
+}
+
+void __init slaunch_map_mem_regions(void)
+{
+    void *evt_log_addr;
+    uint32_t evt_log_size;
+
+    /* Vendor-specific part. */
+    txt_map_mem_regions();
+
+    find_evt_log(slaunch_get_slrt(), &evt_log_addr, &evt_log_size);
+    if ( evt_log_addr != NULL )
+    {
+        int rc = slaunch_map_l2((uintptr_t)evt_log_addr, evt_log_size);
+        BUG_ON(rc != 0);
+    }
+}
+
+void __init slaunch_reserve_mem_regions(void)
+{
+    int rc;
+
+    void *evt_log_addr;
+    uint32_t evt_log_size;
+
+    /* Vendor-specific part. */
+    txt_reserve_mem_regions();
+
+    find_evt_log(slaunch_get_slrt(), &evt_log_addr, &evt_log_size);
+    if ( evt_log_addr != NULL )
+    {
+        printk("SLAUNCH: reserving event log (%#lx - %#lx)\n",
+               (uint64_t)evt_log_addr,
+               (uint64_t)evt_log_addr + evt_log_size);
+        rc = reserve_e820_ram(&e820_raw, (uint64_t)evt_log_addr,
+                              (uint64_t)evt_log_addr + evt_log_size);
+        BUG_ON(rc == 0);
+    }
+}
+
+int __init slaunch_map_l2(unsigned long paddr, unsigned long size)
+{
+    unsigned long aligned_paddr = paddr & ~((1ULL << L2_PAGETABLE_SHIFT) - 1);
+    unsigned long pages = ((paddr + size) - aligned_paddr);
+    pages = ROUNDUP(pages, 1ULL << L2_PAGETABLE_SHIFT) >> PAGE_SHIFT;
+
+    if ( aligned_paddr + pages * PAGE_SIZE <= PREBUILT_MAP_LIMIT )
+        return 0;
+
+    if ( aligned_paddr < PREBUILT_MAP_LIMIT )
+    {
+        pages -= (PREBUILT_MAP_LIMIT - aligned_paddr) >> PAGE_SHIFT;
+        aligned_paddr = PREBUILT_MAP_LIMIT;
+    }
+
+    return map_pages_to_xen((uintptr_t)__va(aligned_paddr),
+                            maddr_to_mfn(aligned_paddr),
+                            pages, PAGE_HYPERVISOR);
+}
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 22 15:07:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 15:07:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.962774.1353970 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7FDd-0002E4-TR; Tue, 22 Apr 2025 15:07:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 962774.1353970; Tue, 22 Apr 2025 15:07:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7FDd-0002Dr-N0; Tue, 22 Apr 2025 15:07:29 +0000
Received: by outflank-mailman (input) for mailman id 962774;
 Tue, 22 Apr 2025 15:07: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=BiSK=XI=3mdeb.com=sergii.dmytruk@srs-se1.protection.inumbo.net>)
 id 1u7FDd-0008SP-0e
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 15:07:29 +0000
Received: from 1.mo560.mail-out.ovh.net (1.mo560.mail-out.ovh.net
 [46.105.63.121]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7f7a7aab-1f8b-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 17:07:25 +0200 (CEST)
Received: from director1.ghost.mail-out.ovh.net (unknown [10.108.25.16])
 by mo560.mail-out.ovh.net (Postfix) with ESMTP id 4Zhlvw0s3Lz27Y7
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 15:07:23 +0000 (UTC)
Received: from ghost-submission-5b5ff79f4f-fnzlb (unknown [10.108.42.75])
 by director1.ghost.mail-out.ovh.net (Postfix) with ESMTPS id 2E3471FEA2;
 Tue, 22 Apr 2025 15:07:22 +0000 (UTC)
Received: from 3mdeb.com ([37.59.142.105])
 by ghost-submission-5b5ff79f4f-fnzlb with ESMTPSA
 id N52PL6qwB2i2/wQAUkQdEw
 (envelope-from <sergii.dmytruk@3mdeb.com>); Tue, 22 Apr 2025 15:07: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: 7f7a7aab-1f8b-11f0-9ffb-bf95429c2676
Authentication-Results:garm.ovh; auth=pass (GARM-105G006674ba4df-a111-49e8-8f59-2ab0d0e0c115,
                    7E508E014E7E7C169EB13C6E22C3C4EBF1F0FDD7) smtp.auth=sergii.dmytruk@3mdeb.com
X-OVh-ClientIp:176.111.181.178
From: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
To: xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	trenchboot-devel@googlegroups.com
Subject: [PATCH 07/21] x86/mtrr: expose functions for pausing caching
Date: Tue, 22 Apr 2025 18:06:41 +0300
Message-ID: <d3237171f5964b82d1de916c401172f6f406faec.1745172094.git.sergii.dmytruk@3mdeb.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <cover.1745172094.git.sergii.dmytruk@3mdeb.com>
References: <cover.1745172094.git.sergii.dmytruk@3mdeb.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Ovh-Tracer-Id: 12730268772191679644
X-VR-SPAMSTATE: OK
X-VR-SPAMSCORE: -100
X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvgeegtdehucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuqfggjfdpvefjgfevmfevgfenuceurghilhhouhhtmecuhedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurhephffvvefufffkofgjfhgggfestdekredtredttdenucfhrhhomhepufgvrhhgihhiucffmhihthhruhhkuceoshgvrhhgihhirdgumhihthhruhhkseefmhguvggsrdgtohhmqeenucggtffrrghtthgvrhhnpefhheefheduieelieekfffgfffgfedutdevleevvdfhfffgledvgfdtuddtheefieenucfkphepuddvjedrtddrtddruddpudejiedrudduuddrudekuddrudejkedpfeejrdehledrudegvddruddtheenucevlhhushhtvghrufhiiigvpedunecurfgrrhgrmhepihhnvghtpeduvdejrddtrddtrddupdhmrghilhhfrhhomhepshgvrhhgihhirdgumhihthhruhhkseefmhguvggsrdgtohhmpdhnsggprhgtphhtthhopedupdhrtghpthhtohepgigvnhdquggvvhgvlheslhhishhtshdrgigvnhhprhhojhgvtghtrdhorhhgpdfovfetjfhoshhtpehmohehiedtmgdpmhhouggvpehsmhhtphhouhht
DKIM-Signature: a=rsa-sha256; bh=p5/X8odYi3YN7N37QJCMftuc5hqSiV9vDM1ybqq3iiI=;
 c=relaxed/relaxed; d=3mdeb.com; h=From; s=ovhmo3617313-selector1;
 t=1745334444; v=1;
 b=l1vUQY5hsQn3ZgjUTDZJJXrr01X7MmNzXwCZd8f8lJEWw5Cx/7e1M/N9kRWj6XJMfCx+hQO+
 kXk8/lMQSTXgwmEmmIPuvZlL8gBXMyD4X7Eqa6K3YnEZWM5uxDmJ3Aum/d+WPK4IuRWugyoLF5i
 fAa9hu8CfIqKaQ0CHRPKN961MQ0rDkDJitet6UxKq2w55AYbPFoqQx48FS/ZlG33yl6WHK7Ozlx
 i8fmzi8ebwqwPUoMje2PADCKCgFWLQmLyqR77x288GddgCSFTZzQSUa8AA6fq7s4jPvHJS6OYuE
 b/a7By/oOkqZDTmcUapk8+CCZwpAcHCJ9VsbTttgKRvPQ==

This allows the functionality to be reused by other units that need to
update MTRRs.

This also gets rid of a static variable.

Signed-off-by: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
---
 xen/arch/x86/cpu/mtrr/generic.c | 51 ++++++++++++++++-----------------
 xen/arch/x86/include/asm/mtrr.h |  8 ++++++
 2 files changed, 33 insertions(+), 26 deletions(-)

diff --git a/xen/arch/x86/cpu/mtrr/generic.c b/xen/arch/x86/cpu/mtrr/generic.c
index c587e9140e..2a8dd1d8ff 100644
--- a/xen/arch/x86/cpu/mtrr/generic.c
+++ b/xen/arch/x86/cpu/mtrr/generic.c
@@ -396,9 +396,7 @@ static bool set_mtrr_var_ranges(unsigned int index, struct mtrr_var_range *vr)
 	return changed;
 }
 
-static uint64_t deftype;
-
-static unsigned long set_mtrr_state(void)
+static unsigned long set_mtrr_state(uint64_t *deftype)
 /*  [SUMMARY] Set the MTRR state for this CPU.
     <state> The MTRR state information to read.
     <ctxt> Some relevant CPU context.
@@ -416,14 +414,12 @@ static unsigned long set_mtrr_state(void)
 	if (mtrr_state.have_fixed && set_fixed_ranges(mtrr_state.fixed_ranges))
 		change_mask |= MTRR_CHANGE_MASK_FIXED;
 
-	/*  Set_mtrr_restore restores the old value of MTRRdefType,
-	   so to set it we fiddle with the saved value  */
-	if ((deftype & 0xff) != mtrr_state.def_type
-	    || MASK_EXTR(deftype, MTRRdefType_E) != mtrr_state.enabled
-	    || MASK_EXTR(deftype, MTRRdefType_FE) != mtrr_state.fixed_enabled) {
-		deftype = (deftype & ~0xcff) | mtrr_state.def_type |
-		          MASK_INSR(mtrr_state.enabled, MTRRdefType_E) |
-		          MASK_INSR(mtrr_state.fixed_enabled, MTRRdefType_FE);
+	if ((*deftype & 0xff) != mtrr_state.def_type
+	    || MASK_EXTR(*deftype, MTRRdefType_E) != mtrr_state.enabled
+	    || MASK_EXTR(*deftype, MTRRdefType_FE) != mtrr_state.fixed_enabled) {
+		*deftype = (*deftype & ~0xcff) | mtrr_state.def_type |
+		           MASK_INSR(mtrr_state.enabled, MTRRdefType_E) |
+		           MASK_INSR(mtrr_state.fixed_enabled, MTRRdefType_FE);
 		change_mask |= MTRR_CHANGE_MASK_DEFTYPE;
 	}
 
@@ -440,9 +436,10 @@ static DEFINE_SPINLOCK(set_atomicity_lock);
  * has been called.
  */
 
-static bool prepare_set(void)
+struct mtrr_pausing_state mtrr_pause_caching(void)
 {
 	unsigned long cr4;
+	struct mtrr_pausing_state state;
 
 	/*  Note that this is not ideal, since the cache is only flushed/disabled
 	   for this CPU while the MTRRs are changed, but changing this requires
@@ -462,7 +459,9 @@ static bool prepare_set(void)
 	alternative("wbinvd", "", X86_FEATURE_XEN_SELFSNOOP);
 
 	cr4 = read_cr4();
-	if (cr4 & X86_CR4_PGE)
+	state.pge = cr4 & X86_CR4_PGE;
+
+	if (state.pge)
 		write_cr4(cr4 & ~X86_CR4_PGE);
 	else if (use_invpcid)
 		invpcid_flush_all();
@@ -470,27 +469,27 @@ static bool prepare_set(void)
 		write_cr3(read_cr3());
 
 	/*  Save MTRR state */
-	rdmsrl(MSR_MTRRdefType, deftype);
+	rdmsrl(MSR_MTRRdefType, state.def_type);
 
 	/*  Disable MTRRs, and set the default type to uncached  */
-	mtrr_wrmsr(MSR_MTRRdefType, deftype & ~0xcff);
+	mtrr_wrmsr(MSR_MTRRdefType, state.def_type & ~0xcff);
 
 	/* Again, only flush caches if we have to. */
 	alternative("wbinvd", "", X86_FEATURE_XEN_SELFSNOOP);
 
-	return cr4 & X86_CR4_PGE;
+	return state;
 }
 
-static void post_set(bool pge)
+void mtrr_resume_caching(struct mtrr_pausing_state state)
 {
 	/* Intel (P6) standard MTRRs */
-	mtrr_wrmsr(MSR_MTRRdefType, deftype);
+	mtrr_wrmsr(MSR_MTRRdefType, state.def_type);
 
 	/*  Enable caches  */
 	write_cr0(read_cr0() & ~X86_CR0_CD);
 
 	/*  Reenable CR4.PGE (also flushes the TLB) */
-	if (pge)
+	if (state.pge)
 		write_cr4(read_cr4() | X86_CR4_PGE);
 	else if (use_invpcid)
 		invpcid_flush_all();
@@ -504,15 +503,15 @@ void mtrr_set_all(void)
 {
 	unsigned long mask, count;
 	unsigned long flags;
-	bool pge;
+	struct mtrr_pausing_state pausing_state;
 
 	local_irq_save(flags);
-	pge = prepare_set();
+	pausing_state = mtrr_pause_caching();
 
 	/* Actually set the state */
-	mask = set_mtrr_state();
+	mask = set_mtrr_state(&pausing_state.def_type);
 
-	post_set(pge);
+	mtrr_resume_caching(pausing_state);
 	local_irq_restore(flags);
 
 	/*  Use the atomic bitops to update the global mask  */
@@ -537,12 +536,12 @@ void mtrr_set(
 {
 	unsigned long flags;
 	struct mtrr_var_range *vr;
-	bool pge;
+	struct mtrr_pausing_state pausing_state;
 
 	vr = &mtrr_state.var_ranges[reg];
 
 	local_irq_save(flags);
-	pge = prepare_set();
+	pausing_state = mtrr_pause_caching();
 
 	if (size == 0) {
 		/* The invalid bit is kept in the mask, so we simply clear the
@@ -563,7 +562,7 @@ void mtrr_set(
 		mtrr_wrmsr(MSR_IA32_MTRR_PHYSMASK(reg), vr->mask);
 	}
 
-	post_set(pge);
+	mtrr_resume_caching(pausing_state);
 	local_irq_restore(flags);
 }
 
diff --git a/xen/arch/x86/include/asm/mtrr.h b/xen/arch/x86/include/asm/mtrr.h
index 25d442659d..82ea427ba0 100644
--- a/xen/arch/x86/include/asm/mtrr.h
+++ b/xen/arch/x86/include/asm/mtrr.h
@@ -66,6 +66,14 @@ extern uint8_t pat_type_2_pte_flags(uint8_t pat_type);
 extern void mtrr_aps_sync_begin(void);
 extern void mtrr_aps_sync_end(void);
 
+struct mtrr_pausing_state {
+	bool pge;
+	uint64_t def_type;
+};
+
+extern struct mtrr_pausing_state mtrr_pause_caching(void);
+extern void mtrr_resume_caching(struct mtrr_pausing_state state);
+
 extern bool mtrr_var_range_msr_set(struct domain *d, struct mtrr_state *m,
                                    uint32_t msr, uint64_t msr_content);
 extern bool mtrr_fix_range_msr_set(struct domain *d, struct mtrr_state *m,
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 22 15:07:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 15:07:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.962778.1353978 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7FDh-0002hN-A8; Tue, 22 Apr 2025 15:07:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 962778.1353978; Tue, 22 Apr 2025 15:07: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 1u7FDh-0002hC-6v; Tue, 22 Apr 2025 15:07:33 +0000
Received: by outflank-mailman (input) for mailman id 962778;
 Tue, 22 Apr 2025 15:07: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=BiSK=XI=3mdeb.com=sergii.dmytruk@srs-se1.protection.inumbo.net>)
 id 1u7FDf-0000lQ-GT
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 15:07:31 +0000
Received: from 16.mo583.mail-out.ovh.net (16.mo583.mail-out.ovh.net
 [87.98.174.144]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 825c7e38-1f8b-11f0-9eb0-5ba50f476ded;
 Tue, 22 Apr 2025 17:07:30 +0200 (CEST)
Received: from director6.ghost.mail-out.ovh.net (unknown [10.109.148.21])
 by mo583.mail-out.ovh.net (Postfix) with ESMTP id 4Zhlw11xj6z1gwT
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 15:07:29 +0000 (UTC)
Received: from ghost-submission-5b5ff79f4f-6tjtj (unknown [10.110.178.32])
 by director6.ghost.mail-out.ovh.net (Postfix) with ESMTPS id 518011FEC4;
 Tue, 22 Apr 2025 15:07:28 +0000 (UTC)
Received: from 3mdeb.com ([37.59.142.113])
 by ghost-submission-5b5ff79f4f-6tjtj with ESMTPSA
 id XczlBbCwB2gtAQEAHtJGkA
 (envelope-from <sergii.dmytruk@3mdeb.com>); Tue, 22 Apr 2025 15:07:28 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 825c7e38-1f8b-11f0-9eb0-5ba50f476ded
Authentication-Results:garm.ovh; auth=pass (GARM-113S007e787a2bd-89e1-430c-a228-f3b8fb6ac07a,
                    7E508E014E7E7C169EB13C6E22C3C4EBF1F0FDD7) smtp.auth=sergii.dmytruk@3mdeb.com
X-OVh-ClientIp:176.111.181.178
From: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	trenchboot-devel@googlegroups.com
Subject: [PATCH 09/21] lib/sha1.c: add file
Date: Tue, 22 Apr 2025 18:06:43 +0300
Message-ID: <8dec423182ed60e2233ed87d98066fed6dc20caf.1745172094.git.sergii.dmytruk@3mdeb.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <cover.1745172094.git.sergii.dmytruk@3mdeb.com>
References: <cover.1745172094.git.sergii.dmytruk@3mdeb.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Ovh-Tracer-Id: 12731957624680330396
X-VR-SPAMSTATE: OK
X-VR-SPAMSCORE: -100
X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvgeegtdehucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuqfggjfdpvefjgfevmfevgfenuceurghilhhouhhtmecuhedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurhephffvvefufffkofgjfhgggfestdekredtredttdenucfhrhhomhepufgvrhhgihhiucffmhihthhruhhkuceoshgvrhhgihhirdgumhihthhruhhkseefmhguvggsrdgtohhmqeenucggtffrrghtthgvrhhnpeeiteejtdffveekuddtgfegteffkefhgedujeehfeefveekvdevveevteeufeevteenucffohhmrghinhepghhithhhuhgsrdgtohhmnecukfhppeduvdejrddtrddtrddupddujeeirdduuddurddukedurddujeekpdefjedrheelrddugedvrdduudefnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehinhgvthepuddvjedrtddrtddruddpmhgrihhlfhhrohhmpehsvghrghhiihdrughmhihtrhhukhesfehmuggvsgdrtghomhdpnhgspghrtghpthhtohepuddprhgtphhtthhopeigvghnqdguvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdpoffvtefjohhsthepmhhoheekfegmpdhmohguvgepshhmthhpohhuth
DKIM-Signature: a=rsa-sha256; bh=WDJT0W+j5imcAWnKzPI6gEyLmrSG03CfujuYBuS2VuQ=;
 c=relaxed/relaxed; d=3mdeb.com; h=From; s=ovhmo3617313-selector1;
 t=1745334449; v=1;
 b=UM7ZURbYhRRjQiFbl+pHtxZI+t5eXVeafpdrNRYGif+JnCVnauX1q3w+R+agFXTXvTxycoY8
 K/zkiFFYN+IEs1tMSWwMDKWIdSOTUPMizO22JcWzReXz3SkWwWrPgQuQsDsr3Hn3oTKYlXuBH/P
 MCPhTu+8SjWRWZsxauiCXM5/1xHufeTEr2f2SnjHaVhSPo95NeehkjHVHhZuCOTYIe4q40uays0
 Of5g6Ipa7VPRkBZVNoH3YoKnbNZAY4G19p1WOCELba3wkpbyhfYbf2uSS+VCSNFG1CTUvCtpOIA
 BSl83zhAYMUvpKcoQZcK8KcjmIztsMhnvPWmncXmmjOlQ==

From: Krystian Hebel <krystian.hebel@3mdeb.com>

The code comes from [1] and is licensed under GPL-2.0 license.
It's a combination of:
 - include/crypto/sha1.h
 - include/crypto/sha1_base.h
 - lib/crypto/sha1.c
 - crypto/sha1_generic.c

Changes:
 - includes
 - formatting
 - renames and splicing of some trivial functions that are called once
 - dropping of `int` return values (only zero was ever returned)
 - getting rid of references to `struct shash_desc`

[1]: https://github.com/torvalds/linux/tree/afdab700f65e14070d8ab92175544b1c62b8bf03

Signed-off-by: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
Signed-off-by: Krystian Hebel <krystian.hebel@3mdeb.com>
---
 xen/include/xen/sha1.h |  12 +++
 xen/lib/Makefile       |   1 +
 xen/lib/sha1.c         | 240 +++++++++++++++++++++++++++++++++++++++++
 3 files changed, 253 insertions(+)
 create mode 100644 xen/include/xen/sha1.h
 create mode 100644 xen/lib/sha1.c

diff --git a/xen/include/xen/sha1.h b/xen/include/xen/sha1.h
new file mode 100644
index 0000000000..752dfdf827
--- /dev/null
+++ b/xen/include/xen/sha1.h
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+
+#ifndef __XEN_SHA1_H
+#define __XEN_SHA1_H
+
+#include <xen/inttypes.h>
+
+#define SHA1_DIGEST_SIZE  20
+
+void sha1_hash(const u8 *data, unsigned int len, u8 *out);
+
+#endif /* !__XEN_SHA1_H */
diff --git a/xen/lib/Makefile b/xen/lib/Makefile
index 76dc86fab0..0d5774b8d7 100644
--- a/xen/lib/Makefile
+++ b/xen/lib/Makefile
@@ -38,6 +38,7 @@ lib-y += strtoll.o
 lib-y += strtoul.o
 lib-y += strtoull.o
 lib-$(CONFIG_X86) += x86-generic-hweightl.o
+lib-$(CONFIG_X86) += sha1.o
 lib-$(CONFIG_X86) += xxhash32.o
 lib-$(CONFIG_X86) += xxhash64.o
 
diff --git a/xen/lib/sha1.c b/xen/lib/sha1.c
new file mode 100644
index 0000000000..a11822519d
--- /dev/null
+++ b/xen/lib/sha1.c
@@ -0,0 +1,240 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * SHA1 routine optimized to do word accesses rather than byte accesses,
+ * and to avoid unnecessary copies into the context array.
+ *
+ * This was based on the git SHA1 implementation.
+ */
+
+#include <xen/bitops.h>
+#include <xen/types.h>
+#include <xen/sha1.h>
+#include <xen/unaligned.h>
+
+/*
+ * If you have 32 registers or more, the compiler can (and should)
+ * try to change the array[] accesses into registers. However, on
+ * machines with less than ~25 registers, that won't really work,
+ * and at least gcc will make an unholy mess of it.
+ *
+ * So to avoid that mess which just slows things down, we force
+ * the stores to memory to actually happen (we might be better off
+ * with a 'W(t)=(val);asm("":"+m" (W(t))' there instead, as
+ * suggested by Artur Skawina - that will also make gcc unable to
+ * try to do the silly "optimize away loads" part because it won't
+ * see what the value will be).
+ *
+ * Ben Herrenschmidt reports that on PPC, the C version comes close
+ * to the optimized asm with this (ie on PPC you don't want that
+ * 'volatile', since there are lots of registers).
+ *
+ * On ARM we get the best code generation by forcing a full memory barrier
+ * between each SHA_ROUND, otherwise gcc happily get wild with spilling and
+ * the stack frame size simply explode and performance goes down the drain.
+ */
+
+#ifdef CONFIG_X86
+  #define setW(x, val) (*(volatile uint32_t *)&W(x) = (val))
+#elif defined(CONFIG_ARM)
+  #define setW(x, val) do { W(x) = (val); __asm__("":::"memory"); } while ( 0 )
+#else
+  #define setW(x, val) (W(x) = (val))
+#endif
+
+/* This "rolls" over the 512-bit array */
+#define W(x) (array[(x) & 15])
+
+/*
+ * Where do we get the source from? The first 16 iterations get it from
+ * the input data, the next mix it from the 512-bit array.
+ */
+#define SHA_SRC(t) get_unaligned_be32((uint32_t *)data + t)
+#define SHA_MIX(t) rol32(W(t + 13) ^ W(t + 8) ^ W(t + 2) ^ W(t), 1)
+
+#define SHA_ROUND(t, input, fn, constant, A, B, C, D, E) do { \
+        uint32_t TEMP = input(t); setW(t, TEMP);              \
+        E += TEMP + rol32(A, 5) + (fn) + (constant);          \
+        B = ror32(B, 2);                                      \
+        TEMP = E; E = D; D = C; C = B; B = A; A = TEMP;       \
+    } while ( 0 )
+
+#define T_0_15(t, A, B, C, D, E)  \
+        SHA_ROUND(t, SHA_SRC, (((C ^ D) & B) ^ D), 0x5a827999, A, B, C, D, E)
+#define T_16_19(t, A, B, C, D, E) \
+        SHA_ROUND(t, SHA_MIX, (((C ^ D) & B) ^ D), 0x5a827999, A, B, C, D, E)
+#define T_20_39(t, A, B, C, D, E) \
+        SHA_ROUND(t, SHA_MIX, (B ^ C ^ D), 0x6ed9eba1, A, B, C, D, E)
+#define T_40_59(t, A, B, C, D, E)                                             \
+        SHA_ROUND(t, SHA_MIX, ((B & C) + (D & (B ^ C))), 0x8f1bbcdc, A, B, C, \
+                  D, E)
+#define T_60_79(t, A, B, C, D, E) \
+        SHA_ROUND(t, SHA_MIX, (B ^ C ^ D), 0xca62c1d6, A, B, C, D, E)
+
+#define SHA1_BLOCK_SIZE         64
+#define SHA1_WORKSPACE_WORDS    16
+
+struct sha1_state {
+    uint32_t state[SHA1_DIGEST_SIZE / 4];
+    uint64_t count;
+    uint8_t buffer[SHA1_BLOCK_SIZE];
+};
+
+typedef void sha1_block_fn(struct sha1_state *sst, const uint8_t *src, int blocks);
+
+/**
+ * sha1_transform - single block SHA1 transform (deprecated)
+ *
+ * @digest: 160 bit digest to update
+ * @data:   512 bits of data to hash
+ * @array:  16 words of workspace (see note)
+ *
+ * This function executes SHA-1's internal compression function.  It updates the
+ * 160-bit internal state (@digest) with a single 512-bit data block (@data).
+ *
+ * Don't use this function.  SHA-1 is no longer considered secure.  And even if
+ * you do have to use SHA-1, this isn't the correct way to hash something with
+ * SHA-1 as this doesn't handle padding and finalization.
+ *
+ * Note: If the hash is security sensitive, the caller should be sure
+ * to clear the workspace. This is left to the caller to avoid
+ * unnecessary clears between chained hashing operations.
+ */
+void sha1_transform(uint32_t *digest, const uint8_t *data, uint32_t *array)
+{
+    uint32_t A, B, C, D, E;
+    unsigned int i = 0;
+
+    A = digest[0];
+    B = digest[1];
+    C = digest[2];
+    D = digest[3];
+    E = digest[4];
+
+    /* Round 1 - iterations 0-16 take their input from 'data' */
+    for ( ; i < 16; ++i )
+        T_0_15(i, A, B, C, D, E);
+
+    /* Round 1 - tail. Input from 512-bit mixing array */
+    for ( ; i < 20; ++i )
+        T_16_19(i, A, B, C, D, E);
+
+    /* Round 2 */
+    for ( ; i < 40; ++i )
+        T_20_39(i, A, B, C, D, E);
+
+    /* Round 3 */
+    for ( ; i < 60; ++i )
+        T_40_59(i, A, B, C, D, E);
+
+    /* Round 4 */
+    for ( ; i < 80; ++i )
+        T_60_79(i, A, B, C, D, E);
+
+    digest[0] += A;
+    digest[1] += B;
+    digest[2] += C;
+    digest[3] += D;
+    digest[4] += E;
+}
+
+static void sha1_init(struct sha1_state *sctx)
+{
+    sctx->state[0] = 0x67452301UL;
+    sctx->state[1] = 0xefcdab89UL;
+    sctx->state[2] = 0x98badcfeUL;
+    sctx->state[3] = 0x10325476UL;
+    sctx->state[4] = 0xc3d2e1f0UL;
+    sctx->count = 0;
+}
+
+static void sha1_do_update(struct sha1_state *sctx,
+                           const uint8_t *data,
+                           unsigned int len,
+                           sha1_block_fn *block_fn)
+{
+    unsigned int partial = sctx->count % SHA1_BLOCK_SIZE;
+
+    sctx->count += len;
+
+    if ( unlikely((partial + len) >= SHA1_BLOCK_SIZE) )
+    {
+        int blocks;
+
+        if ( partial )
+        {
+            int p = SHA1_BLOCK_SIZE - partial;
+
+            memcpy(sctx->buffer + partial, data, p);
+            data += p;
+            len -= p;
+
+            block_fn(sctx, sctx->buffer, 1);
+        }
+
+        blocks = len / SHA1_BLOCK_SIZE;
+        len %= SHA1_BLOCK_SIZE;
+
+        if ( blocks )
+        {
+            block_fn(sctx, data, blocks);
+            data += blocks * SHA1_BLOCK_SIZE;
+        }
+        partial = 0;
+    }
+    if ( len )
+        memcpy(sctx->buffer + partial, data, len);
+}
+
+static void sha1_do_finalize(struct sha1_state *sctx, sha1_block_fn *block_fn)
+{
+    const int bit_offset = SHA1_BLOCK_SIZE - sizeof(__be64);
+    __be64 *bits = (__be64 *)(sctx->buffer + bit_offset);
+    unsigned int partial = sctx->count % SHA1_BLOCK_SIZE;
+
+    sctx->buffer[partial++] = 0x80;
+    if ( partial > bit_offset )
+    {
+        memset(sctx->buffer + partial, 0x0, SHA1_BLOCK_SIZE - partial);
+        partial = 0;
+
+        block_fn(sctx, sctx->buffer, 1);
+    }
+
+    memset(sctx->buffer + partial, 0x0, bit_offset - partial);
+    *bits = cpu_to_be64(sctx->count << 3);
+    block_fn(sctx, sctx->buffer, 1);
+}
+
+static void sha1_finish(struct sha1_state *sctx, uint8_t *out)
+{
+    __be32 *digest = (__be32 *)out;
+    int i;
+
+    for ( i = 0; i < SHA1_DIGEST_SIZE / sizeof(__be32); i++ )
+        put_unaligned_be32(sctx->state[i], digest++);
+
+    memset(sctx, 0, sizeof(*sctx));
+}
+
+static void sha1_generic_block_fn(struct sha1_state *sctx, const uint8_t *src,
+                                  int blocks)
+{
+    uint32_t temp[SHA1_WORKSPACE_WORDS];
+
+    while ( blocks-- )
+    {
+        sha1_transform(sctx->state, src, temp);
+        src += SHA1_BLOCK_SIZE;
+    }
+    memset(temp, 0, sizeof(temp));
+}
+
+void sha1_hash(const uint8_t *data, unsigned int len, uint8_t *out)
+{
+    struct sha1_state sctx;
+
+    sha1_init(&sctx);
+    sha1_do_update(&sctx, data, len, sha1_generic_block_fn);
+    sha1_do_finalize(&sctx, sha1_generic_block_fn);
+    sha1_finish(&sctx, out);
+}
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 22 15:09:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 15:09:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.962812.1353989 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7FFl-0004mW-L2; Tue, 22 Apr 2025 15:09:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 962812.1353989; Tue, 22 Apr 2025 15:09:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7FFl-0004mP-IC; Tue, 22 Apr 2025 15:09:41 +0000
Received: by outflank-mailman (input) for mailman id 962812;
 Tue, 22 Apr 2025 15:09:40 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=AmJA=XI=flex--seanjc.bounces.google.com=3MLEHaAYKCfcrdZmibfnnfkd.bnlwdm-cdudkkhrsr.wdmoqnidbs.nqf@srs-se1.protection.inumbo.net>)
 id 1u7FFk-0004m0-0S
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 15:09:40 +0000
Received: from mail-pj1-x1049.google.com (mail-pj1-x1049.google.com
 [2607:f8b0:4864:20::1049])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ce8d05e7-1f8b-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 17:09:38 +0200 (CEST)
Received: by mail-pj1-x1049.google.com with SMTP id
 98e67ed59e1d1-3085f5855c4so4816312a91.1
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 08:09:38 -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: ce8d05e7-1f8b-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20230601; t=1745334576; x=1745939376; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:from:to:cc:subject:date:message-id:reply-to;
        bh=rRXArVhux4Bsw70YvwQ+lh5zlccYMqH0xPXNTi9FZ8g=;
        b=uchJLT83A1P/9DSgC2lZQTvyUFPUPUuGTWXf/wB4cpTHDDUs36gBUrrlvDViFddkj2
         lXv4lV8K/zRwXm5/71oFCep55jUdVa5SpAlOQc4B8mE9lzl7mMGPKB+fbFzSWRMvf8i5
         oNQ1KGZJb4HybJvozoEH06GhprDc2mTel1kM78mBWJlUdVyp23fGiKWEDK4xHTY+nlfv
         qsV4rEW6HhLCQUtLuizwt/OMl44hjJ/e+IEPcjalE1emtnEx3NG5ZneT8n+Ms/q0pRxQ
         RqJsPJIqh7RMXGcaARVXD+BRz50CItr6AbxxrwQrMlRopKKyLONXJGHv+wKbka237d4J
         XVqw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745334576; x=1745939376;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=rRXArVhux4Bsw70YvwQ+lh5zlccYMqH0xPXNTi9FZ8g=;
        b=Cg7I2k8oyeylyVJtwCySPMwJjhg3S1YeVRHsx1Ibv+i8Pvc5Jp7VLSQAPZTnBX/neU
         XC6vwpHI7BPRRexEupthay+IZwWCUqiJgbjDV6SX0VL98x1m/PFz14nrXLdq1pr6v95l
         ljwytCj8DC3IJjspbGu4AwSD+USIA/zye9e2mrpGbr+QJ8cDqE0Q8LwQy0Y9N4m1KoKc
         Eo29fU0zhhaIhxZyzIM3ovk+z7VWgx2Gc/QKwZBTxg77wwaECrxta0gSr6x720dSPhrV
         x/WC3MAllA+30NSOkcDzAHoQyXlZrzg+SlXK+IVKFLTaWhRR7WgYbxu3UApV1xUfpkBo
         PqTQ==
X-Forwarded-Encrypted: i=1; AJvYcCXuo+Ekd50NQLBRRM1srZNQ1/NYHxqo+I0sAGdsvnw1KuLpgoUTneI9F3G5fLpnYWbsSBX1b+0NfWU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyqifirEu9/c+JRLsU82pcZXEAnc98VGj1PTwuxT2B/pdnxHAZA
	cCTPkBU0aPIxvRyBA3HsZLMhXjw9Gm2l3J4WKjdFA20PG/ggWZcf1dPTwzBRfAwimmovapcko4t
	HVw==
X-Google-Smtp-Source: AGHT+IHGR6YFubcBkAQrqhkjsdDwq21aLEhFyH8uteoXFGo84CYqI3Y4PMerNLsX7Qx/XFlRMipUTrfnrN0=
X-Received: from pjbrr7.prod.google.com ([2002:a17:90b:2b47:b0:2fc:2c9c:880])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a17:90b:4ecf:b0:2ff:692b:b15
 with SMTP id 98e67ed59e1d1-3087bbca3b0mr26039866a91.33.1745334576501; Tue, 22
 Apr 2025 08:09:36 -0700 (PDT)
Date: Tue, 22 Apr 2025 08:09:34 -0700
In-Reply-To: <20250422082216.1954310-11-xin@zytor.com>
Mime-Version: 1.0
References: <20250422082216.1954310-1-xin@zytor.com> <20250422082216.1954310-11-xin@zytor.com>
Message-ID: <aAexLqjhKncFyw2V@google.com>
Subject: Re: [RFC PATCH v2 10/34] x86/msr: Convert __rdmsr() uses to
 native_rdmsrq() uses
From: Sean Christopherson <seanjc@google.com>
To: "Xin Li (Intel)" <xin@zytor.com>
Cc: linux-kernel@vger.kernel.org, kvm@vger.kernel.org, 
	linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org, 
	virtualization@lists.linux.dev, linux-pm@vger.kernel.org, 
	linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org, 
	linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org, 
	netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org, 
	tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, 
	dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com, acme@kernel.org, 
	jgross@suse.com, andrew.cooper3@citrix.com, peterz@infradead.org, 
	namhyung@kernel.org, mark.rutland@arm.com, alexander.shishkin@linux.intel.com, 
	jolsa@kernel.org, irogers@google.com, adrian.hunter@intel.com, 
	kan.liang@linux.intel.com, wei.liu@kernel.org, ajay.kaher@broadcom.com, 
	bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com, 
	pbonzini@redhat.com, vkuznets@redhat.com, luto@kernel.org, 
	boris.ostrovsky@oracle.com, kys@microsoft.com, haiyangz@microsoft.com, 
	decui@microsoft.com
Content-Type: text/plain; charset="us-ascii"

On Tue, Apr 22, 2025, Xin Li (Intel) wrote:
> __rdmsr() is the lowest level primitive MSR read API, and its direct
> use is NOT preferred.

Doesn't mean it's wrong.

> Use its wrapper function native_rdmsrq() instead.

...

> diff --git a/arch/x86/kvm/vmx/vmx.c b/arch/x86/kvm/vmx/vmx.c
> index 1547bfacd40f..e73c1d5ba6c4 100644
> --- a/arch/x86/kvm/vmx/vmx.c
> +++ b/arch/x86/kvm/vmx/vmx.c
> @@ -380,7 +380,7 @@ static __always_inline void vmx_disable_fb_clear(struct vcpu_vmx *vmx)
>  	if (!vmx->disable_fb_clear)
>  		return;
>  
> -	msr = __rdmsr(MSR_IA32_MCU_OPT_CTRL);
> +	msr = native_rdmsrq(MSR_IA32_MCU_OPT_CTRL);
>  	msr |= FB_CLEAR_DIS;
>  	native_wrmsrq(MSR_IA32_MCU_OPT_CTRL, msr);
>  	/* Cache the MSR value to avoid reading it later */
> @@ -7307,7 +7307,7 @@ void noinstr vmx_spec_ctrl_restore_host(struct vcpu_vmx *vmx,
>  		return;
>  
>  	if (flags & VMX_RUN_SAVE_SPEC_CTRL)
> -		vmx->spec_ctrl = __rdmsr(MSR_IA32_SPEC_CTRL);
> +		vmx->spec_ctrl = native_rdmsrq(MSR_IA32_SPEC_CTRL);

And what guarantees that native_rdmsrq() won't have tracing?  Ugh, a later patch
renames native_rdmsrq() => native_rdmsrq_no_trace().

I really don't like this.  It makes simple and obvious code:

	vmx->spec_ctrl = __rdmsr(MSR_IA32_SPEC_CTRL);

so much harder to read:

	vmx->spec_ctrl = native_rdmsrq_no_trace(MSR_IA32_SPEC_CTRL);

and does so in a way that is difficult to review, e.g. I have to peek ahead to
understand that this is even ok.

I strongly prefer that we find a way to not require such verbose APIs, especially
if KVM ends up using native variants throughout.  Xen PV is supposed to be the
odd one out, yet native code is what suffers.  Blech.


From xen-devel-bounces@lists.xenproject.org Tue Apr 22 15:10:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 15:10:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.962832.1353999 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7FGd-0006N1-V0; Tue, 22 Apr 2025 15:10:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 962832.1353999; Tue, 22 Apr 2025 15: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 1u7FGd-0006Mu-Rg; Tue, 22 Apr 2025 15:10:35 +0000
Received: by outflank-mailman (input) for mailman id 962832;
 Tue, 22 Apr 2025 15:10: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=BiSK=XI=3mdeb.com=sergii.dmytruk@srs-se1.protection.inumbo.net>)
 id 1u7FE6-0008SP-7A
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 15:07:58 +0000
Received: from 20.mo584.mail-out.ovh.net (20.mo584.mail-out.ovh.net
 [46.105.33.73]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8e0b909d-1f8b-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 17:07:49 +0200 (CEST)
Received: from director11.ghost.mail-out.ovh.net (unknown [10.108.17.76])
 by mo584.mail-out.ovh.net (Postfix) with ESMTP id 4ZhlwN5Qk1z1YQL
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 15:07:48 +0000 (UTC)
Received: from ghost-submission-5b5ff79f4f-66vcx (unknown [10.110.113.119])
 by director11.ghost.mail-out.ovh.net (Postfix) with ESMTPS id 3970E1FEEB;
 Tue, 22 Apr 2025 15:07:48 +0000 (UTC)
Received: from 3mdeb.com ([37.59.142.103])
 by ghost-submission-5b5ff79f4f-66vcx with ESMTPSA
 id r4pwBMSwB2iYPQEAq1tSyQ
 (envelope-from <sergii.dmytruk@3mdeb.com>); Tue, 22 Apr 2025 15:07: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: 8e0b909d-1f8b-11f0-9ffb-bf95429c2676
Authentication-Results:garm.ovh; auth=pass (GARM-103G005d376d45a-cfc9-4d09-aaa1-7133b0f28e22,
                    7E508E014E7E7C169EB13C6E22C3C4EBF1F0FDD7) smtp.auth=sergii.dmytruk@3mdeb.com
X-OVh-ClientIp:176.111.181.178
From: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
To: xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	trenchboot-devel@googlegroups.com
Subject: [PATCH 16/21] x86/smpboot.c: TXT AP bringup
Date: Tue, 22 Apr 2025 18:06:50 +0300
Message-ID: <ba71f47de004151a417329208cc0605610e07ff3.1745172094.git.sergii.dmytruk@3mdeb.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <cover.1745172094.git.sergii.dmytruk@3mdeb.com>
References: <cover.1745172094.git.sergii.dmytruk@3mdeb.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Ovh-Tracer-Id: 12737305649478808732
X-VR-SPAMSTATE: OK
X-VR-SPAMSCORE: -100
X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvgeegtdehucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuqfggjfdpvefjgfevmfevgfenuceurghilhhouhhtmecuhedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurhephffvvefufffkofgjfhgggfestdekredtredttdenucfhrhhomhepufgvrhhgihhiucffmhihthhruhhkuceoshgvrhhgihhirdgumhihthhruhhkseefmhguvggsrdgtohhmqeenucggtffrrghtthgvrhhnpeeggeeuvddvtedtteevudejjeeitdefhfetkeeggeffffelfeeivdffudeltdeihfenucffohhmrghinhepthhrrghmphholhhinhgvrdhssgenucfkphepuddvjedrtddrtddruddpudejiedrudduuddrudekuddrudejkedpfeejrdehledrudegvddruddtfeenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepihhnvghtpeduvdejrddtrddtrddupdhmrghilhhfrhhomhepshgvrhhgihhirdgumhihthhruhhkseefmhguvggsrdgtohhmpdhnsggprhgtphhtthhopedupdhrtghpthhtohepgigvnhdquggvvhgvlheslhhishhtshdrgigvnhhprhhojhgvtghtrdhorhhgpdfovfetjfhoshhtpehmohehkeegmgdpmhhouggvpehsmhhtphhouhht
DKIM-Signature: a=rsa-sha256; bh=eCAcImKtxvGqrMC6IMfND+wqKXNaj+5QRm1VUSFFf6Q=;
 c=relaxed/relaxed; d=3mdeb.com; h=From; s=ovhmo3617313-selector1;
 t=1745334468; v=1;
 b=BTTsWKQhiy2ji/HA+zVzcTvPrRzPrWM3DDwZrXnK57EzhDtfsApr0AEnkbmMAz3zGCoG9DPr
 JB3I01ws5oyUzLav2KRp1YNzbCP+t38BXUxZ71ihVh4S952YKPwxnBn48t8GFKV7fwyPc6bwwMM
 +qK1Xi0CoOb/Ri+55mieycjGnNlQaFpx+zesmSScQphhXyaHphmzCtIr2NDaYlMFhPg/BjRSIqm
 ShD6+kJlkCbnJ34+Wb+VGfhjrkFh6RIHOtlC4ENj4p9goAmLUNPGfrGwiVPKS6hwBdvSEnU2Hyu
 sPqmwUsUkDYFpvjSvtG3f89vOCi0lqoXecH27ef47GbNA==

From: Krystian Hebel <krystian.hebel@3mdeb.com>

On Intel TXT, APs are started in one of two ways, depending on ACM
which reports it in its information table. In both cases, all APs are
started simultaneously after BSP requests them to do so. Two possible
ways are:
- GETSEC[WAKEUP] instruction,
- MONITOR address.

GETSEC[WAKEUP] requires versions >= 7 of SINIT to MLE Data, but there is
no clear mapping of that version with regard to processor family and
it's not known which CPUs actually use it. It could have been designed
for TXT support on CPUs that lack MONITOR/MWAIT, because GETSEC[WAKEUP]
seems to be more complicated, in software and hardware alike.

This patch implements only MONITOR approach, GETSEC[WAKEUP] support will
be added later once more details and means of testing are available and
if there is a practical need for it.

With this patch, every AP goes through assembly part, and only when in
start_secondary() in C they re-enter MONITOR/MWAIT iff they are not the
AP that was asked to boot. The same address is reused for simplicity,
and on next wakeup call APs don't have to go through assembly part
again (GDT, paging, stack setting).

Signed-off-by: Krystian Hebel <krystian.hebel@3mdeb.com>
Signed-off-by: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
---
 xen/arch/x86/boot/trampoline.S       | 19 +++++++++-
 xen/arch/x86/include/asm/intel_txt.h |  6 +++
 xen/arch/x86/include/asm/processor.h |  1 +
 xen/arch/x86/smpboot.c               | 57 ++++++++++++++++++++++++++++
 4 files changed, 82 insertions(+), 1 deletion(-)

diff --git a/xen/arch/x86/boot/trampoline.S b/xen/arch/x86/boot/trampoline.S
index ed593acc46..5989d3a69a 100644
--- a/xen/arch/x86/boot/trampoline.S
+++ b/xen/arch/x86/boot/trampoline.S
@@ -58,6 +58,16 @@ GLOBAL(entry_SIPI16)
         ljmpl   $BOOT_CS32,$bootsym_rel(trampoline_protmode_entry,6)
 
         .code32
+GLOBAL(txt_ap_entry)
+        /*
+         * APs enter here in protected mode without paging. GDT is set in JOIN
+         * structure, it points to trampoline_gdt. Interrupts are disabled by
+         * TXT (including NMI and SMI), so IDT doesn't matter at this point.
+         * The only missing point is telling that we are AP by saving non-zero
+         * value in EBX.
+         */
+        mov     $1, %ebx
+
 trampoline_protmode_entry:
         /* Set up a few descriptors: on entry only CS is guaranteed good. */
         mov     $BOOT_DS,%eax
@@ -143,7 +153,7 @@ start64:
         .word   0
 idt_48: .word   0, 0, 0 # base = limit = 0
 
-trampoline_gdt:
+GLOBAL(trampoline_gdt)
         .word   0                  /* 0x0000: unused (reused for GDTR) */
 gdt_48:
         .word   .Ltrampoline_gdt_end - trampoline_gdt - 1
@@ -154,6 +164,13 @@ gdt_48:
         .quad   0x00cf93000000ffff /* 0x0018: ring 0 data */
         .quad   0x00009b000000ffff /* 0x0020: real-mode code @ BOOT_TRAMPOLINE */
         .quad   0x000093000000ffff /* 0x0028: real-mode data @ BOOT_TRAMPOLINE */
+        /*
+         * Intel TXT requires these two in exact order. This isn't compatible
+         * with order required by syscall, so we have duplicated entries...
+         * If order ever changes, update selector numbers in asm/intel_txt.h.
+         */
+        .quad   0x00cf9b000000ffff /* 0x0030: ring 0 code, 32-bit mode */
+        .quad   0x00cf93000000ffff /* 0x0038: ring 0 data */
 .Ltrampoline_gdt_end:
 
         /* Relocations for trampoline Real Mode segments. */
diff --git a/xen/arch/x86/include/asm/intel_txt.h b/xen/arch/x86/include/asm/intel_txt.h
index 0a36ef66d1..af997c9da6 100644
--- a/xen/arch/x86/include/asm/intel_txt.h
+++ b/xen/arch/x86/include/asm/intel_txt.h
@@ -79,6 +79,9 @@
 
 #define SLAUNCH_BOOTLOADER_MAGIC             0x4c534254
 
+#define TXT_AP_BOOT_CS                  0x0030
+#define TXT_AP_BOOT_DS                  0x0038
+
 #ifndef __ASSEMBLY__
 
 #include <xen/slr_table.h>
@@ -93,6 +96,9 @@
 #define _txt(x) __va(x)
 #endif
 
+extern char txt_ap_entry[];
+extern uint32_t trampoline_gdt[];
+
 /*
  * Always use private space as some of registers are either read-only or not
  * present in public space.
diff --git a/xen/arch/x86/include/asm/processor.h b/xen/arch/x86/include/asm/processor.h
index 75af7ea3c4..9957e3cb9e 100644
--- a/xen/arch/x86/include/asm/processor.h
+++ b/xen/arch/x86/include/asm/processor.h
@@ -473,6 +473,7 @@ void set_in_mcu_opt_ctrl(uint32_t mask, uint32_t val);
 enum ap_boot_method {
     AP_BOOT_NORMAL,
     AP_BOOT_SKINIT,
+    AP_BOOT_TXT,
 };
 extern enum ap_boot_method ap_boot_method;
 
diff --git a/xen/arch/x86/smpboot.c b/xen/arch/x86/smpboot.c
index 54207e6d88..1ff26761ab 100644
--- a/xen/arch/x86/smpboot.c
+++ b/xen/arch/x86/smpboot.c
@@ -29,6 +29,7 @@
 #include <asm/flushtlb.h>
 #include <asm/guest.h>
 #include <asm/idt.h>
+#include <asm/intel_txt.h>
 #include <asm/io_apic.h>
 #include <asm/irq-vectors.h>
 #include <asm/mc146818rtc.h>
@@ -37,6 +38,7 @@
 #include <asm/mtrr.h>
 #include <asm/prot-key.h>
 #include <asm/setup.h>
+#include <asm/slaunch.h>
 #include <asm/spec_ctrl.h>
 #include <asm/tboot.h>
 #include <asm/time.h>
@@ -325,6 +327,29 @@ void asmlinkage start_secondary(void *unused)
      */
     unsigned int cpu = booting_cpu;
 
+    if ( ap_boot_method == AP_BOOT_TXT ) {
+        uint64_t misc_enable;
+        uint32_t my_apicid;
+        struct txt_sinit_mle_data *sinit_mle =
+              txt_sinit_mle_data_start(__va(read_txt_reg(TXTCR_HEAP_BASE)));
+
+        /* TXT released us with MONITOR disabled in IA32_MISC_ENABLE. */
+        rdmsrl(MSR_IA32_MISC_ENABLE, misc_enable);
+        wrmsrl(MSR_IA32_MISC_ENABLE,
+               misc_enable | MSR_IA32_MISC_ENABLE_MONITOR_ENABLE);
+
+        /* get_apic_id() reads from x2APIC if it thinks it is enabled. */
+        x2apic_ap_setup();
+        my_apicid = get_apic_id();
+
+        while ( my_apicid != x86_cpu_to_apicid[cpu] ) {
+            asm volatile ("monitor; xor %0,%0; mwait"
+                          :: "a"(__va(sinit_mle->rlp_wakeup_addr)), "c"(0),
+                          "d"(0) : "memory");
+            cpu = booting_cpu;
+        }
+    }
+
     /* Critical region without IDT or TSS.  Any fault is deadly! */
 
     set_current(idle_vcpu[cpu]);
@@ -421,6 +446,28 @@ void asmlinkage start_secondary(void *unused)
     startup_cpu_idle_loop();
 }
 
+static int wake_aps_in_txt(void)
+{
+    struct txt_sinit_mle_data *sinit_mle =
+              txt_sinit_mle_data_start(__va(read_txt_reg(TXTCR_HEAP_BASE)));
+    uint32_t *wakeup_addr = __va(sinit_mle->rlp_wakeup_addr);
+
+    uint32_t join[4] = {
+        trampoline_gdt[1],               /* GDT limit */
+        bootsym_phys(trampoline_gdt),    /* GDT base */
+        TXT_AP_BOOT_CS,                  /* CS selector, DS = CS+8 */
+        bootsym_phys(txt_ap_entry)       /* EIP */
+    };
+
+    write_txt_reg(TXTCR_MLE_JOIN, __pa(join));
+
+    smp_mb();
+
+    *wakeup_addr = 1;
+
+    return 0;
+}
+
 static int wakeup_secondary_cpu(int phys_apicid, unsigned long start_eip)
 {
     unsigned long send_status = 0, accept_status = 0;
@@ -443,6 +490,9 @@ static int wakeup_secondary_cpu(int phys_apicid, unsigned long start_eip)
     if ( tboot_in_measured_env() && !tboot_wake_ap(phys_apicid, start_eip) )
         return 0;
 
+    if ( ap_boot_method == AP_BOOT_TXT )
+        return wake_aps_in_txt();
+
     /*
      * Be paranoid about clearing APIC errors.
      */
@@ -1150,6 +1200,13 @@ static struct notifier_block cpu_smpboot_nfb = {
 
 void __init smp_prepare_cpus(void)
 {
+    /*
+     * If the platform is performing a Secure Launch via TXT, secondary
+     * CPUs (APs) will need to be woken up in a TXT-specific way.
+     */
+    if ( slaunch_active && boot_cpu_data.x86_vendor == X86_VENDOR_INTEL )
+        ap_boot_method = AP_BOOT_TXT;
+
     register_cpu_notifier(&cpu_smpboot_nfb);
 
     mtrr_aps_sync_begin();
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 22 15:10:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 15:10:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.962838.1354009 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7FGm-0006lP-AD; Tue, 22 Apr 2025 15:10:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 962838.1354009; Tue, 22 Apr 2025 15:10: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 1u7FGm-0006lG-5X; Tue, 22 Apr 2025 15:10:44 +0000
Received: by outflank-mailman (input) for mailman id 962838;
 Tue, 22 Apr 2025 15:10: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=BiSK=XI=3mdeb.com=sergii.dmytruk@srs-se1.protection.inumbo.net>)
 id 1u7FEI-0008SP-9m
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 15:08:10 +0000
Received: from 8.mo582.mail-out.ovh.net (8.mo582.mail-out.ovh.net
 [178.33.42.204]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 968e4884-1f8b-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 17:08:03 +0200 (CEST)
Received: from director11.ghost.mail-out.ovh.net (unknown [10.109.176.110])
 by mo582.mail-out.ovh.net (Postfix) with ESMTP id 4Zhlwf6xQpz1bPs
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 15:08:02 +0000 (UTC)
Received: from ghost-submission-5b5ff79f4f-86gjs (unknown [10.110.118.75])
 by director11.ghost.mail-out.ovh.net (Postfix) with ESMTPS id 556AE1FF03;
 Tue, 22 Apr 2025 15:08:02 +0000 (UTC)
Received: from 3mdeb.com ([37.59.142.108])
 by ghost-submission-5b5ff79f4f-86gjs with ESMTPSA
 id eWpyAdKwB2hq8wAAiLZzDg
 (envelope-from <sergii.dmytruk@3mdeb.com>); Tue, 22 Apr 2025 15:08: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: 968e4884-1f8b-11f0-9ffb-bf95429c2676
Authentication-Results:garm.ovh; auth=pass (GARM-108S002681ac38e-e960-4b16-b2af-646d803af872,
                    7E508E014E7E7C169EB13C6E22C3C4EBF1F0FDD7) smtp.auth=sergii.dmytruk@3mdeb.com
X-OVh-ClientIp:176.111.181.178
From: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
To: xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	trenchboot-devel@googlegroups.com
Subject: [PATCH 21/21] x86/cpu: report SMX, TXT and SKINIT capabilities
Date: Tue, 22 Apr 2025 18:06:55 +0300
Message-ID: <5b40dbb1b30ce1e4bf7aed3e0ab7357db40d51ac.1745172094.git.sergii.dmytruk@3mdeb.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <cover.1745172094.git.sergii.dmytruk@3mdeb.com>
References: <cover.1745172094.git.sergii.dmytruk@3mdeb.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Ovh-Tracer-Id: 12741246295885329564
X-VR-SPAMSTATE: OK
X-VR-SPAMSCORE: -100
X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvgeegtdehucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuqfggjfdpvefjgfevmfevgfenuceurghilhhouhhtmecuhedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurhephffvvefufffkofgjfhggtgfgsehtkeertdertdejnecuhfhrohhmpefuvghrghhiihcuffhmhihtrhhukhcuoehsvghrghhiihdrughmhihtrhhukhesfehmuggvsgdrtghomheqnecuggftrfgrthhtvghrnhepgeekffeiiedtveekhfdugeffveeigefgleegvdeghefftdetheefueeliedukedvnecukfhppeduvdejrddtrddtrddupddujeeirdduuddurddukedurddujeekpdefjedrheelrddugedvrddutdeknecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehinhgvthepuddvjedrtddrtddruddpmhgrihhlfhhrohhmpehsvghrghhiihdrughmhihtrhhukhesfehmuggvsgdrtghomhdpnhgspghrtghpthhtohepuddprhgtphhtthhopeigvghnqdguvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdpoffvtefjohhsthepmhhoheekvdgmpdhmohguvgepshhmthhpohhuth
DKIM-Signature: a=rsa-sha256; bh=u1i8lAG0kzr5pAfgDXgiX2oc2nU8MOoTSYHcysfLbnY=;
 c=relaxed/relaxed; d=3mdeb.com; h=From; s=ovhmo3617313-selector1;
 t=1745334483; v=1;
 b=VYr6oLYiwmn7ou/SifLAnmZ0APAtJ3ahbBKYAaR6uA30Rx8QFqgu40s8xwiCixQfxj5yg40F
 BhqASz0kXVS9dBGpdwOUOF4+Oil7easweehwegbTBVALpni0+SckQV7unWAzSQ/7jV1pvbsQygD
 0FvkLwM2UR7KUprgoz9nHkIjpDjZpsCifV4i6J77WHcMljj2bq0vnSI1/TYcm0mwiwBcEZBcH9m
 z0NedCW+IDRc3hbYs0CHKnCZUIwy3kGQs1S3Qn2dpwhhNgumghwxPv03d/EzU8C4bJb1gjOUe3m
 6nxTfhW6Xcsnq1f0AKmnogUtkYF22+iirePd9rv8pkTlg==

From: Michał Żygowski <michal.zygowski@3mdeb.com>

Report TXT capabilities so that dom0 can query the Intel TXT or AMD
SKINIT support information using xl dmesg.

Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Signed-off-by: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
---
 xen/arch/x86/cpu/amd.c               | 14 +++++++++
 xen/arch/x86/cpu/cpu.h               |  1 +
 xen/arch/x86/cpu/hygon.c             |  1 +
 xen/arch/x86/cpu/intel.c             | 44 ++++++++++++++++++++++++++++
 xen/arch/x86/include/asm/intel_txt.h |  5 ++++
 5 files changed, 65 insertions(+)

diff --git a/xen/arch/x86/cpu/amd.c b/xen/arch/x86/cpu/amd.c
index ce4e1df710..8be135dbc1 100644
--- a/xen/arch/x86/cpu/amd.c
+++ b/xen/arch/x86/cpu/amd.c
@@ -671,6 +671,19 @@ void amd_log_freq(const struct cpuinfo_x86 *c)
 #undef FREQ
 }
 
+void amd_log_skinit(const struct cpuinfo_x86 *c)
+{
+    /* Run only on BSP to report the capability only once */
+    if ( smp_processor_id() )
+        return;
+
+    printk("CPU: SKINIT capability ");
+    if ( !test_bit(X86_FEATURE_SKINIT, &boot_cpu_data.x86_capability) )
+        printk("not supported\n");
+    else
+        printk("supported\n");
+}
+
 void cf_check early_init_amd(struct cpuinfo_x86 *c)
 {
 	if (c == &boot_cpu_data)
@@ -1320,6 +1333,7 @@ static void cf_check init_amd(struct cpuinfo_x86 *c)
 	check_syscfg_dram_mod_en();
 
 	amd_log_freq(c);
+	amd_log_skinit(c);
 }
 
 const struct cpu_dev __initconst_cf_clobber amd_cpu_dev = {
diff --git a/xen/arch/x86/cpu/cpu.h b/xen/arch/x86/cpu/cpu.h
index 8be65e975a..5bcf118a93 100644
--- a/xen/arch/x86/cpu/cpu.h
+++ b/xen/arch/x86/cpu/cpu.h
@@ -20,6 +20,7 @@ extern bool detect_extended_topology(struct cpuinfo_x86 *c);
 
 void cf_check early_init_amd(struct cpuinfo_x86 *c);
 void amd_log_freq(const struct cpuinfo_x86 *c);
+void amd_log_skinit(const struct cpuinfo_x86 *c);
 void amd_init_lfence(struct cpuinfo_x86 *c);
 void amd_init_ssbd(const struct cpuinfo_x86 *c);
 void amd_init_spectral_chicken(void);
diff --git a/xen/arch/x86/cpu/hygon.c b/xen/arch/x86/cpu/hygon.c
index f7508cc8fc..6ebb8b5fab 100644
--- a/xen/arch/x86/cpu/hygon.c
+++ b/xen/arch/x86/cpu/hygon.c
@@ -85,6 +85,7 @@ static void cf_check init_hygon(struct cpuinfo_x86 *c)
 	}
 
 	amd_log_freq(c);
+	amd_log_skinit(c);
 }
 
 const struct cpu_dev __initconst_cf_clobber hygon_cpu_dev = {
diff --git a/xen/arch/x86/cpu/intel.c b/xen/arch/x86/cpu/intel.c
index 6a680ba38d..618bd5540e 100644
--- a/xen/arch/x86/cpu/intel.c
+++ b/xen/arch/x86/cpu/intel.c
@@ -13,6 +13,7 @@
 #include <asm/apic.h>
 #include <asm/i387.h>
 #include <asm/trampoline.h>
+#include <asm/intel_txt.h>
 
 #include "cpu.h"
 
@@ -571,6 +572,47 @@ static void init_intel_perf(struct cpuinfo_x86 *c)
     }
 }
 
+/*
+ * Print out the SMX and TXT capabilties, so that dom0 can determine if the
+ * system is DRTM-capable.
+ */
+static void intel_log_smx_txt(struct cpuinfo_x86 *c)
+{
+    unsigned long cr4_val, getsec_caps;
+
+    /* Run only on BSP to report the SMX/TXT caps only once */
+    if ( smp_processor_id() )
+        return;
+
+    printk("CPU: SMX capability ");
+    if ( !test_bit(X86_FEATURE_SMX, &boot_cpu_data.x86_capability) )
+    {
+        printk("not supported\n");
+        return;
+    }
+    printk("supported\n");
+
+    /* Can't run GETSEC without VMX and SMX */
+    if ( !test_bit(X86_FEATURE_VMX, &boot_cpu_data.x86_capability) )
+        return;
+
+    cr4_val = read_cr4();
+    if ( !(cr4_val & X86_CR4_SMXE) )
+        write_cr4(cr4_val | X86_CR4_SMXE);
+
+    asm volatile ("getsec\n"
+        : "=a" (getsec_caps)
+        : "a" (GETSEC_CAPABILITIES), "b" (0) :);
+
+    if ( getsec_caps & GETSEC_CAP_TXT_CHIPSET )
+        printk("Chipset supports TXT\n");
+    else
+        printk("Chipset does not support TXT\n");
+
+    if ( !(cr4_val & X86_CR4_SMXE) )
+        write_cr4(cr4_val & ~X86_CR4_SMXE);
+}
+
 static void cf_check init_intel(struct cpuinfo_x86 *c)
 {
 	/* Detect the extended topology information if available */
@@ -585,6 +627,8 @@ static void cf_check init_intel(struct cpuinfo_x86 *c)
 		detect_ht(c);
 	}
 
+	intel_log_smx_txt(c);
+
 	/* Work around errata */
 	Intel_errata_workarounds(c);
 
diff --git a/xen/arch/x86/include/asm/intel_txt.h b/xen/arch/x86/include/asm/intel_txt.h
index af997c9da6..76ec651b11 100644
--- a/xen/arch/x86/include/asm/intel_txt.h
+++ b/xen/arch/x86/include/asm/intel_txt.h
@@ -82,6 +82,11 @@
 #define TXT_AP_BOOT_CS                  0x0030
 #define TXT_AP_BOOT_DS                  0x0038
 
+/* EAX value for GETSEC leaf functions. Intel SDM: GETSEC[CAPABILITIES] */
+#define GETSEC_CAPABILITIES             0
+/* Intel SDM: GETSEC Capability Result Encoding */
+#define GETSEC_CAP_TXT_CHIPSET          1
+
 #ifndef __ASSEMBLY__
 
 #include <xen/slr_table.h>
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 22 15:11:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 15:11:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.962867.1354019 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7FH7-0007gz-Ge; Tue, 22 Apr 2025 15:11:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 962867.1354019; Tue, 22 Apr 2025 15:11: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 1u7FH7-0007fd-DY; Tue, 22 Apr 2025 15:11:05 +0000
Received: by outflank-mailman (input) for mailman id 962867;
 Tue, 22 Apr 2025 15:11: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=BiSK=XI=3mdeb.com=sergii.dmytruk@srs-se1.protection.inumbo.net>)
 id 1u7FE3-0008SP-6W
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 15:07:55 +0000
Received: from 4.mo561.mail-out.ovh.net (4.mo561.mail-out.ovh.net
 [178.33.46.10]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8ca362ab-1f8b-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 17:07:47 +0200 (CEST)
Received: from director8.ghost.mail-out.ovh.net (unknown [10.109.139.191])
 by mo561.mail-out.ovh.net (Postfix) with ESMTP id 4ZhlwL2sR1z1bj9
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 15:07:46 +0000 (UTC)
Received: from ghost-submission-5b5ff79f4f-65nmq (unknown [10.108.54.81])
 by director8.ghost.mail-out.ovh.net (Postfix) with ESMTPS id AF9DD1FEA4;
 Tue, 22 Apr 2025 15:07:45 +0000 (UTC)
Received: from 3mdeb.com ([37.59.142.96])
 by ghost-submission-5b5ff79f4f-65nmq with ESMTPSA
 id E/pvGcGwB2hj+gQA5l9ADw
 (envelope-from <sergii.dmytruk@3mdeb.com>); Tue, 22 Apr 2025 15:07: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: 8ca362ab-1f8b-11f0-9ffb-bf95429c2676
Authentication-Results:garm.ovh; auth=pass (GARM-96R00148cda405-a492-42a4-ad09-544000b1966e,
                    7E508E014E7E7C169EB13C6E22C3C4EBF1F0FDD7) smtp.auth=sergii.dmytruk@3mdeb.com
X-OVh-ClientIp:176.111.181.178
From: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
To: xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	trenchboot-devel@googlegroups.com
Subject: [PATCH 15/21] x86/boot: choose AP stack based on APIC ID
Date: Tue, 22 Apr 2025 18:06:49 +0300
Message-ID: <219f2eedb59963f92f23c87d691966aa60393826.1745172094.git.sergii.dmytruk@3mdeb.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <cover.1745172094.git.sergii.dmytruk@3mdeb.com>
References: <cover.1745172094.git.sergii.dmytruk@3mdeb.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Ovh-Tracer-Id: 12736742698577409180
X-VR-SPAMSTATE: OK
X-VR-SPAMSCORE: -100
X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvgeegtdehucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuqfggjfdpvefjgfevmfevgfenuceurghilhhouhhtmecuhedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurhephffvvefufffkofgjfhgggfestdekredtredttdenucfhrhhomhepufgvrhhgihhiucffmhihthhruhhkuceoshgvrhhgihhirdgumhihthhruhhkseefmhguvggsrdgtohhmqeenucggtffrrghtthgvrhhnpeevleeiheduleelgfelgeeiveetgeduhfehffefgffhledtvefhledvgfekfefhueenucffohhmrghinhephhgvrggurdhssgdpthhrrghmphholhhinhgvrdhssgdpgiekiegpieegrdhssgenucfkphepuddvjedrtddrtddruddpudejiedrudduuddrudekuddrudejkedpfeejrdehledrudegvddrleeinecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehinhgvthepuddvjedrtddrtddruddpmhgrihhlfhhrohhmpehsvghrghhiihdrughmhihtrhhukhesfehmuggvsgdrtghomhdpnhgspghrtghpthhtohepuddprhgtphhtthhopeigvghnqdguvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdpoffvtefjohhsthepmhhoheeiudgmpdhmohguvgepshhmthhpohhuth
DKIM-Signature: a=rsa-sha256; bh=b6AA3YS5vl2hqWUdhcK5y1DSeFNonfqn1RmJZfPaJQA=;
 c=relaxed/relaxed; d=3mdeb.com; h=From; s=ovhmo3617313-selector1;
 t=1745334466; v=1;
 b=HF3TOUQoJvieFLEyz7S6DHqoNM01PldhnbsL1PkLXl1eEi+EFPoEM4gshbbbsDc841rQbOnz
 8fPEq/+JdWEU4ysPFb+ReFPRPNh3PD9tS7DaNywp0xnbqIjcp+16mzYiEhqJZZmfSW8k1QLUTXh
 NP88fun2ETpQBJHuphgF/T70Dzkpetknup0OQAeAg/7FsGm2rWSjcw0vdHuS7NwLP3wPyC3CRy8
 /V0iEbafqAraNPK1sXUKPaonOno41YKDfnf2qhUhLOMTmoSDBe2H3qJujEHallbiZ7YP9/czXZs
 imWYklotkgnmsxxssLoAW0zlhhw85r2OMWWCVOwijuF/g==

From: Krystian Hebel <krystian.hebel@3mdeb.com>

This is made as the first step of making parallel AP bring-up possible.
It should be enough for pre-C code.

Parallel AP bring-up is necessary because TXT by design releases all APs
at once. In addition to that it reduces number of IPIs (and more
importantly, delays between them) required to start all logical
processors. This results in significant reduction of boot time, even
when DRTM is not used, with performance gain growing with the number of
logical CPUs.

Signed-off-by: Krystian Hebel <krystian.hebel@3mdeb.com>
Signed-off-by: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
---
 xen/arch/x86/boot/head.S             |  1 +
 xen/arch/x86/boot/trampoline.S       | 21 +++++++++++++++++++++
 xen/arch/x86/boot/x86_64.S           | 28 +++++++++++++++++++++++++++-
 xen/arch/x86/include/asm/apicdef.h   |  4 ++++
 xen/arch/x86/include/asm/msr-index.h |  3 +++
 xen/arch/x86/setup.c                 |  7 +++++++
 6 files changed, 63 insertions(+), 1 deletion(-)

diff --git a/xen/arch/x86/boot/head.S b/xen/arch/x86/boot/head.S
index 0b7903070a..419bf58d5c 100644
--- a/xen/arch/x86/boot/head.S
+++ b/xen/arch/x86/boot/head.S
@@ -8,6 +8,7 @@
 #include <asm/page.h>
 #include <asm/processor.h>
 #include <asm/msr-index.h>
+#include <asm/apicdef.h>
 #include <asm/cpufeature.h>
 #include <asm/trampoline.h>
 
diff --git a/xen/arch/x86/boot/trampoline.S b/xen/arch/x86/boot/trampoline.S
index a92e399fbe..ed593acc46 100644
--- a/xen/arch/x86/boot/trampoline.S
+++ b/xen/arch/x86/boot/trampoline.S
@@ -71,6 +71,27 @@ trampoline_protmode_entry:
         mov     $X86_CR4_PAE,%ecx
         mov     %ecx,%cr4
 
+        /*
+         * Get APIC ID while we're in non-paged mode. Start by checking if
+         * x2APIC is enabled.
+         */
+        mov     $MSR_APIC_BASE, %ecx
+        rdmsr
+        test    $APIC_BASE_EXTD, %eax
+        jnz     .Lx2apic
+
+        /* Not x2APIC, read from MMIO */
+        and     $APIC_BASE_ADDR_MASK, %eax
+        mov     APIC_ID(%eax), %esp
+        shr     $24, %esp
+        jmp     1f
+
+.Lx2apic:
+        mov     $(MSR_X2APIC_FIRST + (APIC_ID >> MSR_X2APIC_SHIFT)), %ecx
+        rdmsr
+        mov     %eax, %esp
+1:
+
         /* Load pagetable base register. */
         mov     $sym_offs(idle_pg_table),%eax
         add     bootsym_rel(trampoline_xen_phys_start,4,%eax)
diff --git a/xen/arch/x86/boot/x86_64.S b/xen/arch/x86/boot/x86_64.S
index 08ae97e261..ac33576d8f 100644
--- a/xen/arch/x86/boot/x86_64.S
+++ b/xen/arch/x86/boot/x86_64.S
@@ -15,7 +15,33 @@ ENTRY(__high_start)
         mov     $XEN_MINIMAL_CR4,%rcx
         mov     %rcx,%cr4
 
-        mov     stack_start(%rip),%rsp
+        test    %ebx,%ebx
+        cmovz   stack_start(%rip), %rsp
+        jz      .L_stack_set
+
+        /* APs only: get stack base from APIC ID saved in %esp. */
+        mov     $-1, %rax
+        lea     x86_cpu_to_apicid(%rip), %rcx
+1:
+        add     $1, %rax
+        cmp     $NR_CPUS, %eax
+        jb      2f
+        hlt
+2:
+        cmp     %esp, (%rcx, %rax, 4)
+        jne     1b
+
+        /* %eax is now Xen CPU index. */
+        lea     stack_base(%rip), %rcx
+        mov     (%rcx, %rax, 8), %rsp
+
+        test    %rsp,%rsp
+        jnz     1f
+        hlt
+1:
+        add     $(STACK_SIZE - CPUINFO_sizeof), %rsp
+
+.L_stack_set:
 
         /* Reset EFLAGS (subsumes CLI and CLD). */
         pushq   $0
diff --git a/xen/arch/x86/include/asm/apicdef.h b/xen/arch/x86/include/asm/apicdef.h
index 63dab01dde..e093a2aa3c 100644
--- a/xen/arch/x86/include/asm/apicdef.h
+++ b/xen/arch/x86/include/asm/apicdef.h
@@ -121,6 +121,10 @@
 
 #define MAX_IO_APICS 128
 
+#ifndef __ASSEMBLY__
+
 extern bool x2apic_enabled;
 
+#endif /* !__ASSEMBLY__ */
+
 #endif
diff --git a/xen/arch/x86/include/asm/msr-index.h b/xen/arch/x86/include/asm/msr-index.h
index 22d9e76e55..794cf44abe 100644
--- a/xen/arch/x86/include/asm/msr-index.h
+++ b/xen/arch/x86/include/asm/msr-index.h
@@ -169,6 +169,9 @@
 #define MSR_X2APIC_FIRST                    0x00000800
 #define MSR_X2APIC_LAST                     0x000008ff
 
+/* MSR offset can be obtained by shifting MMIO offset this number of bits to the right. */
+#define MSR_X2APIC_SHIFT                    4
+
 #define MSR_X2APIC_TPR                      0x00000808
 #define MSR_X2APIC_PPR                      0x0000080a
 #define MSR_X2APIC_EOI                      0x0000080b
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 403d976449..c6ebdc3c6b 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -2068,6 +2068,7 @@ void asmlinkage __init noreturn __start_xen(void)
      */
     if ( !pv_shim )
     {
+        /* Separate loop to make parallel AP bringup possible. */
         for_each_present_cpu ( i )
         {
             /* Set up cpu_to_node[]. */
@@ -2075,6 +2076,12 @@ void asmlinkage __init noreturn __start_xen(void)
             /* Set up node_to_cpumask based on cpu_to_node[]. */
             numa_add_cpu(i);
 
+            if ( stack_base[i] == NULL )
+                stack_base[i] = cpu_alloc_stack(i);
+        }
+
+        for_each_present_cpu ( i )
+        {
             if ( (park_offline_cpus || num_online_cpus() < max_cpus) &&
                  !cpu_online(i) )
             {
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 22 15:11:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 15:11:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.962873.1354029 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7FH8-0007xZ-NF; Tue, 22 Apr 2025 15:11:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 962873.1354029; Tue, 22 Apr 2025 15:11: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 1u7FH8-0007xQ-JW; Tue, 22 Apr 2025 15:11:06 +0000
Received: by outflank-mailman (input) for mailman id 962873;
 Tue, 22 Apr 2025 15:11: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=BiSK=XI=3mdeb.com=sergii.dmytruk@srs-se1.protection.inumbo.net>)
 id 1u7FDn-0000lQ-NY
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 15:07:39 +0000
Received: from 3.mo561.mail-out.ovh.net (3.mo561.mail-out.ovh.net
 [46.105.44.175]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 87b4c9eb-1f8b-11f0-9eb0-5ba50f476ded;
 Tue, 22 Apr 2025 17:07:38 +0200 (CEST)
Received: from director5.ghost.mail-out.ovh.net (unknown [10.109.148.79])
 by mo561.mail-out.ovh.net (Postfix) with ESMTP id 4ZhlwB25jwz1bkB
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 15:07:38 +0000 (UTC)
Received: from ghost-submission-5b5ff79f4f-6lh9k (unknown [10.110.118.244])
 by director5.ghost.mail-out.ovh.net (Postfix) with ESMTPS id 607401FEB0;
 Tue, 22 Apr 2025 15:07:37 +0000 (UTC)
Received: from 3mdeb.com ([37.59.142.107])
 by ghost-submission-5b5ff79f4f-6lh9k with ESMTPSA
 id 5U5yDrmwB2ghLAEAYYaAsQ
 (envelope-from <sergii.dmytruk@3mdeb.com>); Tue, 22 Apr 2025 15:07: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: 87b4c9eb-1f8b-11f0-9eb0-5ba50f476ded
Authentication-Results:garm.ovh; auth=pass (GARM-107S001d849ccc2-e4d5-46c9-818c-6ce398306f16,
                    7E508E014E7E7C169EB13C6E22C3C4EBF1F0FDD7) smtp.auth=sergii.dmytruk@3mdeb.com
X-OVh-ClientIp:176.111.181.178
From: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
To: xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	trenchboot-devel@googlegroups.com
Subject: [PATCH 12/21] x86/tpm.c: support extending PCRs of TPM2.0
Date: Tue, 22 Apr 2025 18:06:46 +0300
Message-ID: <755e15243aa8f510ad1b8b4a463dc5235dd4a7e0.1745172094.git.sergii.dmytruk@3mdeb.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <cover.1745172094.git.sergii.dmytruk@3mdeb.com>
References: <cover.1745172094.git.sergii.dmytruk@3mdeb.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Ovh-Tracer-Id: 12734209424960959644
X-VR-SPAMSTATE: OK
X-VR-SPAMSCORE: -100
X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvgeegtdehucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuqfggjfdpvefjgfevmfevgfenuceurghilhhouhhtmecuhedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurhephffvvefufffkofgjfhgggfestdekredtredttdenucfhrhhomhepufgvrhhgihhiucffmhihthhruhhkuceoshgvrhhgihhirdgumhihthhruhhkseefmhguvggsrdgtohhmqeenucggtffrrghtthgvrhhnpedvhfehudekhfevieefffefvdefjeeggeekuefhgeehjeehgfeiieekjeeliefhffenucffohhmrghinhepuhhpuggrthgvpggtrdgurghtrgdpfhhinhhishhhpggtrdgurghtrgenucfkphepuddvjedrtddrtddruddpudejiedrudduuddrudekuddrudejkedpfeejrdehledrudegvddruddtjeenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepihhnvghtpeduvdejrddtrddtrddupdhmrghilhhfrhhomhepshgvrhhgihhirdgumhihthhruhhkseefmhguvggsrdgtohhmpdhnsggprhgtphhtthhopedupdhrtghpthhtohepgigvnhdquggvvhgvlheslhhishhtshdrgigvnhhprhhojhgvtghtrdhorhhgpdfovfetjfhoshhtpehmohehiedumgdpmhhouggvpehsmhhtphhouhht
DKIM-Signature: a=rsa-sha256; bh=LnQanrLZSiseLtQH/HLftA62py2wzTEodAlV4bGhsCQ=;
 c=relaxed/relaxed; d=3mdeb.com; h=From; s=ovhmo3617313-selector1;
 t=1745334458; v=1;
 b=Bxc1cM6TL/BrqXqKe3g8zOG0coHU6IUVJ/Nm7s7kgKb6+lAc2/igrYrMQ7IjtBfOQiqVfqWG
 e2trFbz+kCKEJzVc5Dq/ebEnMZQeodvHdiJUdqYwt310LPqgjDCS80kmK5Pm/OKljGqM/b5vvqx
 fNyQKBcCX7S4zU4RbIsIVwnvK1SkcbHOaVNOdiLFV2EnlnUr00nVCI/x3cH+d4gqOsNEVnvNnD5
 7PEBAmeYR4gQCC83X5w/0/4injkq5mHNQ6a3lTCR2EkV4d/ftcSkd3KzRILhXsk98oBXHT52Nlu
 JiKXYg2hNaKe0PGcP9Bkrymlyn6UXiuQ8r4mXtNEZVDKg==

SHA1 and SHA256 are hard-coded here, but their support by the TPM is
checked.  Addition of event log for TPM2.0 will generalize the code
further.

Signed-off-by: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
---
 xen/arch/x86/tpm.c | 465 +++++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 453 insertions(+), 12 deletions(-)

diff --git a/xen/arch/x86/tpm.c b/xen/arch/x86/tpm.c
index 8cf836d0df..9d20cff94e 100644
--- a/xen/arch/x86/tpm.c
+++ b/xen/arch/x86/tpm.c
@@ -5,6 +5,7 @@
  */
 
 #include <xen/sha1.h>
+#include <xen/sha256.h>
 #include <xen/types.h>
 #include <asm/intel_txt.h>
 #include <asm/slaunch.h>
@@ -30,6 +31,15 @@ struct slr_table *slaunch_get_slrt(void)
  * other part of Xen.  Providing implementation of builtin functions in this
  * case is necessary if compiler chooses to not use an inline builtin.
  */
+void *memset(void *dest, int c, size_t n)
+{
+    uint8_t *d = dest;
+
+    while ( n-- )
+        *d++ = c;
+
+    return dest;
+}
 void *memcpy(void *dest, const void *src, size_t n)
 {
     const uint8_t *s = src;
@@ -65,6 +75,7 @@ void *memcpy(void *dest, const void *src, size_t n)
 
 #define swap16(x)       __builtin_bswap16(x)
 #define swap32(x)       __builtin_bswap32(x)
+#define memset(s, c, n) __builtin_memset(s, c, n)
 #define memcpy(d, s, n) __builtin_memcpy(d, s, n)
 
 static inline volatile uint32_t tis_read32(unsigned reg)
@@ -146,14 +157,15 @@ static inline bool is_tpm12(void)
             (tis_read32(TPM_STS_(0)) & TPM_FAMILY_MASK) == 0);
 }
 
-/****************************** TPM1.2 specific *******************************/
-#define TPM_ORD_Extend              0x00000014
-#define TPM_ORD_SHA1Start           0x000000A0
-#define TPM_ORD_SHA1Update          0x000000A1
-#define TPM_ORD_SHA1CompleteExtend  0x000000A3
+/****************************** TPM1.2 & TPM2.0 *******************************/
 
-#define TPM_TAG_RQU_COMMAND         0x00C1
-#define TPM_TAG_RSP_COMMAND         0x00C4
+/*
+ * TPM1.2 is required to support commands of up to 1101 bytes, vendors rarely
+ * go above that. Limit maximum size of block of data to be hashed to 1024.
+ *
+ * TPM2.0 should support hashing of at least 1024 bytes.
+ */
+#define MAX_HASH_BLOCK      1024
 
 /* All fields of following structs are big endian. */
 struct tpm_cmd_hdr {
@@ -168,6 +180,17 @@ struct tpm_rsp_hdr {
     uint32_t    returnCode;
 } __packed;
 
+/****************************** TPM1.2 specific *******************************/
+
+#define TPM_ORD_Extend              0x00000014
+#define TPM_ORD_SHA1Start           0x000000A0
+#define TPM_ORD_SHA1Update          0x000000A1
+#define TPM_ORD_SHA1CompleteExtend  0x000000A3
+
+#define TPM_TAG_RQU_COMMAND         0x00C1
+#define TPM_TAG_RSP_COMMAND         0x00C4
+
+/* All fields of following structs are big endian. */
 struct extend_cmd {
     struct tpm_cmd_hdr h;
     uint32_t pcrNum;
@@ -233,11 +256,6 @@ struct txt_ev_log_container_12 {
 };
 
 #ifdef __EARLY_SLAUNCH__
-/*
- * TPM1.2 is required to support commands of up to 1101 bytes, vendors rarely
- * go above that. Limit maximum size of block of data to be hashed to 1024.
- */
-#define MAX_HASH_BLOCK      1024
 #define CMD_RSP_BUF_SIZE    (sizeof(struct sha1_update_cmd) + MAX_HASH_BLOCK)
 
 union cmd_rsp {
@@ -393,6 +411,400 @@ static void *create_log_event12(struct txt_ev_log_container_12 *evt_log,
 
 /************************** end of TPM1.2 specific ****************************/
 
+/****************************** TPM2.0 specific *******************************/
+
+/*
+ * These constants are for TPM2.0 but don't have a distinct prefix to match
+ * names in the specification.
+ */
+
+#define TPM_HT_PCR   0x00
+
+#define TPM_RH_NULL  0x40000007
+#define TPM_RS_PW    0x40000009
+
+#define HR_SHIFT     24
+#define HR_PCR       (TPM_HT_PCR << HR_SHIFT)
+
+#define TPM_ST_NO_SESSIONS  0x8001
+#define TPM_ST_SESSIONS     0x8002
+
+#define TPM_ALG_SHA1        0x0004
+#define TPM_ALG_SHA256      0x000b
+#define TPM_ALG_NULL        0x0010
+
+#define TPM2_PCR_Extend                 0x00000182
+#define TPM2_PCR_HashSequenceStart      0x00000186
+#define TPM2_PCR_SequenceUpdate         0x0000015C
+#define TPM2_PCR_EventSequenceComplete  0x00000185
+
+#define PUT_BYTES(p, bytes, size)  do {  \
+        memcpy((p), (bytes), (size));    \
+        (p) += (size);                   \
+    } while ( 0 )
+
+#define PUT_16BIT(p, data) do {          \
+        *(uint16_t *)(p) = swap16(data); \
+        (p) += 2;                        \
+    } while ( 0 )
+
+/* All fields of following structs are big endian. */
+struct tpm2_session_header {
+    uint32_t handle;
+    uint16_t nonceSize;
+    uint8_t nonce[0];
+    uint8_t attrs;
+    uint16_t hmacSize;
+    uint8_t hmac[0];
+} __packed;
+
+struct tpm2_extend_cmd {
+    struct tpm_cmd_hdr h;
+    uint32_t pcrHandle;
+    uint32_t sessionHdrSize;
+    struct tpm2_session_header pcrSession;
+    uint32_t hashCount;
+    uint8_t hashes[0];
+} __packed;
+
+struct tpm2_extend_rsp {
+    struct tpm_rsp_hdr h;
+} __packed;
+
+struct tpm2_sequence_start_cmd {
+    struct tpm_cmd_hdr h;
+    uint16_t hmacSize;
+    uint8_t hmac[0];
+    uint16_t hashAlg;
+} __packed;
+
+struct tpm2_sequence_start_rsp {
+    struct tpm_rsp_hdr h;
+    uint32_t sequenceHandle;
+} __packed;
+
+struct tpm2_sequence_update_cmd {
+    struct tpm_cmd_hdr h;
+    uint32_t sequenceHandle;
+    uint32_t sessionHdrSize;
+    struct tpm2_session_header session;
+    uint16_t dataSize;
+    uint8_t data[0];
+} __packed;
+
+struct tpm2_sequence_update_rsp {
+    struct tpm_rsp_hdr h;
+} __packed;
+
+struct tpm2_sequence_complete_cmd {
+    struct tpm_cmd_hdr h;
+    uint32_t pcrHandle;
+    uint32_t sequenceHandle;
+    uint32_t sessionHdrSize;
+    struct tpm2_session_header pcrSession;
+    struct tpm2_session_header sequenceSession;
+    uint16_t dataSize;
+    uint8_t data[0];
+} __packed;
+
+struct tpm2_sequence_complete_rsp {
+    struct tpm_rsp_hdr h;
+    uint32_t paramSize;
+    uint32_t hashCount;
+    uint8_t hashes[0];
+    /*
+     * Each hash is represented as:
+     * struct {
+     *     uint16_t hashAlg;
+     *     uint8_t hash[size of hashAlg];
+     * };
+     */
+} __packed;
+
+/*
+ * These two structure are for convenience, they don't correspond to anything in
+ * any spec.
+ */
+struct tpm2_log_hash {
+    uint16_t alg;  /* TPM_ALG_* */
+    uint16_t size;
+    uint8_t *data; /* Non-owning reference to a buffer inside log entry. */
+};
+/* Should be more than enough for now and awhile in the future. */
+#define MAX_HASH_COUNT 8
+struct tpm2_log_hashes {
+    uint32_t count;
+    struct tpm2_log_hash hashes[MAX_HASH_COUNT];
+};
+
+#ifdef __EARLY_SLAUNCH__
+
+union tpm2_cmd_rsp {
+    uint8_t b[sizeof(struct tpm2_sequence_update_cmd) + MAX_HASH_BLOCK];
+    struct tpm_cmd_hdr c;
+    struct tpm_rsp_hdr r;
+    struct tpm2_sequence_start_cmd start_c;
+    struct tpm2_sequence_start_rsp start_r;
+    struct tpm2_sequence_update_cmd update_c;
+    struct tpm2_sequence_update_rsp update_r;
+    struct tpm2_sequence_complete_cmd finish_c;
+    struct tpm2_sequence_complete_rsp finish_r;
+};
+
+static uint32_t tpm2_hash_extend(unsigned loc, const uint8_t *buf,
+                                 unsigned size, unsigned pcr,
+                                 struct tpm2_log_hashes *log_hashes)
+{
+    uint32_t seq_handle;
+    unsigned max_bytes = MAX_HASH_BLOCK;
+
+    union tpm2_cmd_rsp cmd_rsp;
+    unsigned o_size;
+    unsigned i;
+    uint8_t *p;
+    uint32_t rc;
+
+    cmd_rsp.start_c = (struct tpm2_sequence_start_cmd) {
+        .h.tag = swap16(TPM_ST_NO_SESSIONS),
+        .h.paramSize = swap32(sizeof(cmd_rsp.start_c)),
+        .h.ordinal = swap32(TPM2_PCR_HashSequenceStart),
+        .hashAlg = swap16(TPM_ALG_NULL), /* Compute all supported hashes. */
+    };
+
+    request_locality(loc);
+
+    o_size = sizeof(cmd_rsp);
+    send_cmd(loc, cmd_rsp.b, swap32(cmd_rsp.c.paramSize), &o_size);
+
+    if ( cmd_rsp.r.tag == swap16(TPM_ST_NO_SESSIONS) &&
+         cmd_rsp.r.paramSize == swap32(10) )
+    {
+        rc = swap32(cmd_rsp.r.returnCode);
+        if ( rc != 0 )
+            goto error;
+    }
+
+    seq_handle = swap32(cmd_rsp.start_r.sequenceHandle);
+
+    while ( size > 64 )
+    {
+        if ( size < max_bytes )
+            max_bytes = size & ~(64 - 1);
+
+        cmd_rsp.update_c = (struct tpm2_sequence_update_cmd) {
+            .h.tag = swap16(TPM_ST_SESSIONS),
+            .h.paramSize = swap32(sizeof(cmd_rsp.update_c) + max_bytes),
+            .h.ordinal = swap32(TPM2_PCR_SequenceUpdate),
+            .sequenceHandle = swap32(seq_handle),
+            .sessionHdrSize = swap32(sizeof(struct tpm2_session_header)),
+            .session.handle = swap32(TPM_RS_PW),
+            .dataSize = swap16(max_bytes),
+        };
+
+        memcpy(cmd_rsp.update_c.data, buf, max_bytes);
+
+        o_size = sizeof(cmd_rsp);
+        send_cmd(loc, cmd_rsp.b, swap32(cmd_rsp.c.paramSize), &o_size);
+
+        if ( cmd_rsp.r.tag == swap16(TPM_ST_NO_SESSIONS) &&
+             cmd_rsp.r.paramSize == swap32(10) )
+        {
+            rc = swap32(cmd_rsp.r.returnCode);
+            if ( rc != 0 )
+                goto error;
+        }
+
+        size -= max_bytes;
+        buf += max_bytes;
+    }
+
+    cmd_rsp.finish_c = (struct tpm2_sequence_complete_cmd) {
+        .h.tag = swap16(TPM_ST_SESSIONS),
+        .h.paramSize = swap32(sizeof(cmd_rsp.finish_c) + size),
+        .h.ordinal = swap32(TPM2_PCR_EventSequenceComplete),
+        .pcrHandle = swap32(HR_PCR + pcr),
+        .sequenceHandle = swap32(seq_handle),
+        .sessionHdrSize = swap32(sizeof(struct tpm2_session_header)*2),
+        .pcrSession.handle = swap32(TPM_RS_PW),
+        .sequenceSession.handle = swap32(TPM_RS_PW),
+        .dataSize = swap16(size),
+    };
+
+    memcpy(cmd_rsp.finish_c.data, buf, size);
+
+    o_size = sizeof(cmd_rsp);
+    send_cmd(loc, cmd_rsp.b, swap32(cmd_rsp.c.paramSize), &o_size);
+
+    if ( cmd_rsp.r.tag == swap16(TPM_ST_NO_SESSIONS) &&
+         cmd_rsp.r.paramSize == swap32(10) )
+    {
+        rc = swap32(cmd_rsp.r.returnCode);
+        if ( rc != 0 )
+            goto error;
+    }
+
+    p = cmd_rsp.finish_r.hashes;
+    for ( i = 0; i < swap32(cmd_rsp.finish_r.hashCount); ++i )
+    {
+        unsigned j;
+        uint16_t hash_type;
+
+        hash_type = swap16(*(uint16_t *)p);
+        p += sizeof(uint16_t);
+
+        for ( j = 0; j < log_hashes->count; ++j )
+        {
+            struct tpm2_log_hash *hash = &log_hashes->hashes[j];
+            if ( hash->alg == hash_type )
+            {
+                memcpy(hash->data, p, hash->size);
+                p += hash->size;
+                break;
+            }
+        }
+
+        if ( j == log_hashes->count )
+            /* Can't continue parsing without knowing hash size. */
+            break;
+    }
+
+    rc = 0;
+
+error:
+    relinquish_locality(loc);
+    return rc;
+}
+
+#else
+
+union tpm2_cmd_rsp {
+    /* Enough space for multiple hashes. */
+    uint8_t b[sizeof(struct tpm2_extend_cmd) + 1024];
+    struct tpm_cmd_hdr c;
+    struct tpm_rsp_hdr r;
+    struct tpm2_extend_cmd extend_c;
+    struct tpm2_extend_rsp extend_r;
+};
+
+static uint32_t tpm20_pcr_extend(unsigned loc, uint32_t pcr_handle,
+                                 const struct tpm2_log_hashes *log_hashes)
+{
+    union tpm2_cmd_rsp cmd_rsp;
+    unsigned o_size;
+    unsigned i;
+    uint8_t *p;
+
+    cmd_rsp.extend_c = (struct tpm2_extend_cmd) {
+        .h.tag = swap16(TPM_ST_SESSIONS),
+        .h.ordinal = swap32(TPM2_PCR_Extend),
+        .pcrHandle = swap32(pcr_handle),
+        .sessionHdrSize = swap32(sizeof(struct tpm2_session_header)),
+        .pcrSession.handle = swap32(TPM_RS_PW),
+        .hashCount = swap32(log_hashes->count),
+    };
+
+    p = cmd_rsp.extend_c.hashes;
+    for ( i = 0; i < log_hashes->count; ++i )
+    {
+        const struct tpm2_log_hash *hash = &log_hashes->hashes[i];
+
+        if ( p + sizeof(uint16_t) + hash->size > &cmd_rsp.b[sizeof(cmd_rsp)] )
+        {
+            printk(XENLOG_ERR "Hit TPM message size implementation limit: %ld\n",
+                   sizeof(cmd_rsp));
+            return -1;
+        }
+
+        *(uint16_t *)p = swap16(hash->alg);
+        p += sizeof(uint16_t);
+
+        memcpy(p, hash->data, hash->size);
+        p += hash->size;
+    }
+
+    /* Fill in command size (size of the whole buffer). */
+    cmd_rsp.extend_c.h.paramSize = swap32(sizeof(cmd_rsp.extend_c) +
+                                          (p - cmd_rsp.extend_c.hashes)),
+
+    o_size = sizeof(cmd_rsp);
+    send_cmd(loc, cmd_rsp.b, swap32(cmd_rsp.c.paramSize), &o_size);
+
+    return swap32(cmd_rsp.r.returnCode);
+}
+
+static bool tpm_supports_hash(unsigned loc, const struct tpm2_log_hash *hash)
+{
+    uint32_t rc;
+    struct tpm2_log_hashes hashes = {
+        .count = 1,
+        .hashes[0] = *hash,
+    };
+
+    /*
+     * This is a valid way of checking hash support, using it to not implement
+     * TPM2_GetCapability().
+     */
+    rc = tpm20_pcr_extend(loc, /*pcr_handle=*/TPM_RH_NULL, &hashes);
+
+    return rc == 0;
+}
+
+static uint32_t tpm2_hash_extend(unsigned loc, const uint8_t *buf,
+                                 unsigned size, unsigned pcr,
+                                 const struct tpm2_log_hashes *log_hashes)
+{
+    uint32_t rc;
+    unsigned i;
+    struct tpm2_log_hashes supported_hashes = {0};
+
+    request_locality(loc);
+
+    for ( i = 0; i < log_hashes->count; ++i )
+    {
+        const struct tpm2_log_hash *hash = &log_hashes->hashes[i];
+        if ( !tpm_supports_hash(loc, hash) )
+        {
+            printk(XENLOG_WARNING "Skipped hash unsupported by TPM: %d\n",
+                   hash->alg);
+            continue;
+        }
+
+        if ( hash->alg == TPM_ALG_SHA1 )
+        {
+            sha1_hash(buf, size, hash->data);
+        }
+        else if ( hash->alg == TPM_ALG_SHA256 )
+        {
+            sha256_hash(buf, size, hash->data);
+        }
+        else
+        {
+            /* This is called "OneDigest" in TXT Software Development Guide. */
+            memset(hash->data, 0, size);
+            hash->data[0] = 1;
+        }
+
+        if ( supported_hashes.count == MAX_HASH_COUNT )
+        {
+            printk(XENLOG_ERR "Hit hash count implementation limit: %d\n",
+                   MAX_HASH_COUNT);
+            return -1;
+        }
+
+        supported_hashes.hashes[supported_hashes.count] = *hash;
+        ++supported_hashes.count;
+    }
+
+    rc = tpm20_pcr_extend(loc, HR_PCR + pcr, &supported_hashes);
+    relinquish_locality(loc);
+
+    return rc;
+}
+
+#endif /* __EARLY_SLAUNCH__ */
+
+/************************** end of TPM2.0 specific ****************************/
+
 void tpm_hash_extend(unsigned loc, unsigned pcr, const uint8_t *buf,
                      unsigned size, uint32_t type, const uint8_t *log_data,
                      unsigned log_data_size)
@@ -419,6 +831,35 @@ void tpm_hash_extend(unsigned loc, unsigned pcr, const uint8_t *buf,
         {
 #ifndef __EARLY_SLAUNCH__
             printk(XENLOG_ERR "Extending PCR%u failed\n", pcr);
+#endif
+        }
+    } else {
+        uint8_t sha1_digest[SHA1_DIGEST_SIZE];
+        uint8_t sha256_digest[SHA256_DIGEST_SIZE];
+        uint32_t rc;
+
+        struct tpm2_log_hashes log_hashes = {
+            .count = 2,
+            .hashes = {
+                {
+                    .alg = TPM_ALG_SHA1,
+                    .size = SHA1_DIGEST_SIZE,
+                    .data = sha1_digest,
+                },
+                {
+                    .alg = TPM_ALG_SHA256,
+                    .size = SHA256_DIGEST_SIZE,
+                    .data = sha256_digest,
+                },
+            },
+        };
+
+        rc = tpm2_hash_extend(loc, buf, size, pcr, &log_hashes);
+        if ( rc != 0 )
+        {
+#ifndef __EARLY_SLAUNCH__
+            printk(XENLOG_ERR "Extending PCR%u failed with TPM error: 0x%08x\n",
+                   pcr, rc);
 #endif
         }
     }
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 22 15:11:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 15:11:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.962883.1354039 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7FHD-0008OB-48; Tue, 22 Apr 2025 15:11:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 962883.1354039; Tue, 22 Apr 2025 15:11: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 1u7FHD-0008NZ-17; Tue, 22 Apr 2025 15:11:11 +0000
Received: by outflank-mailman (input) for mailman id 962883;
 Tue, 22 Apr 2025 15:11: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=NnGu=XI=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1u7FEc-0008SP-L7
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 15:08:30 +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 a597ed4f-1f8b-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 17:08:28 +0200 (CEST)
Received: by mail-wr1-x42c.google.com with SMTP id
 ffacd0b85a97d-39ac9aea656so6707541f8f.3
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 08:08:28 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-64-225.play-internet.pl.
 [109.243.64.225]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39efa4a4b68sm15530650f8f.87.2025.04.22.08.08.26
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 22 Apr 2025 08:08:27 -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: a597ed4f-1f8b-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1745334508; x=1745939308; darn=lists.xenproject.org;
        h=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=1h7HOtRok7EODaipP4CuzZ0e5STJDWpbufVebAiWTHU=;
        b=DigpKn7WL/lxFFKeeb3bUc11Kkf5TorfgMkBBnDSrpBAkh7dMiBQ/MoMyCrkQUIDrr
         wiBtT/1mQtoakOm18GA3wiGD0veWho6px5QSVxcdYmR8ePVbm4YiX5VxSfFIL5obom10
         9Qa0UIDfdVzp5AFeHeFsua1gFDnzRDWHhB83gdG6DknQ09S359dgZqr6Nx3YGERFV4oF
         qImwzlFJwsYmoE7Zmj/jXdN8dzllmsI07glmn8fC1D9eIcS6oEezhFi+4GQMJ/cNa0uN
         ZyCyYRAVsyvEzSg05EMHl1oBpAOyZtp4fpmLwbnTrA+WISbPC5T1i5iFmoDFneeno6KA
         67lg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745334508; x=1745939308;
        h=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=1h7HOtRok7EODaipP4CuzZ0e5STJDWpbufVebAiWTHU=;
        b=I0X/G8o+KKApDkJ/h4pEB+mu9+/S3hgbBXymqq+dQg2BmgksUC+d9V6i04vEpGkPZM
         xU1T1U7ElVYX1Fu8sJxKM7DNm5qKZcjELqjfBO5AOljg8bmJdUVHIwz+NcVG471CfnyG
         gv773gJfj2aIlnYW+IyeYgy1UY34Hb80P6FszCuG/lTMM2J5mtWA+MYvEFZSUbd/I/P0
         naCudZpJm9wOAOjlyvAr7DcCx094xpLj5sHY5ieVUaTpkr4ugvYy1VsfPY/a7IJM8/yW
         aISR5q81mKcM8FflIwp4oe0KEHArLZAmDSRpZV4ivjAe2uESVB/Ym2g/DbB1fI6Qo1IC
         Yqhg==
X-Forwarded-Encrypted: i=1; AJvYcCX0iFE8as+8mX5A2g+wjr5MqXi2UxVUZxFCeCRbr7flCe0+IezKtE/OjBRmuNceM+Xlr0YVwblqiCM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzaLZ2QAQMkngIIAPOpu/cb9rh2w9m5LIQLBFrj12l14DpC3gWp
	qZ+0lo8adaPW+c+PrBZbtPGBDxORNFINZA0VhqZFBmHvHhCPeXno
X-Gm-Gg: ASbGncskr/GnIQtxp8lfeoHTJd1hL9yrhPEshO5MlyQYSKn+p9gUs1P1f02iTJBow/x
	OBo0zgQuYCW6qpyh3pAAgafEPOYUlxAiMvIrPhxHeNuG6dA+9YYmZiX0+GD8uOIMQsqdTIDil1Q
	NqIqA5SnfoS8RDoIs7dSAwk6qNvhnfP0OzyIrnerbYn4ZyTNGSIT52dA3JXlveCWH+GplYRz2dN
	fochXZijsIQTmtd6zgb5rVsVhbUn41cvS+6nOZVwxs704mPPJsgLbPi7dKQH71qUdGwxl9vbyhG
	cGNLP/0VmF/FzDV49vzYfIyEDRnWTQe6xoORZKupltFFzRpvTLZta+5gy8u0JNMXx7fqmZ35dM5
	+oT9UKtVeSfNUTGYm
X-Google-Smtp-Source: AGHT+IGg1eXWBcl4whkua/8T0xKJXs4s6hbRVuK9Wvt/nYY04+bTvbnaT6zssG3NnGWQzuRl1bCZ+w==
X-Received: by 2002:a05:6000:2483:b0:391:13d6:c9f0 with SMTP id ffacd0b85a97d-39efbaf2647mr12479649f8f.47.1745334507584;
        Tue, 22 Apr 2025 08:08:27 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------FjK0MV04SamkBxU0ZExrOsUE"
Message-ID: <e6cc1553-fd92-4870-82a9-6db5bca42299@gmail.com>
Date: Tue, 22 Apr 2025 17:08:26 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/8] xen/common: dom0less: make some parts of Arm's
 CONFIG_DOM0LESS common
To: "Orzel, Michal" <michal.orzel@amd.com>, xen-devel@lists.xenproject.org
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>, Jan Beulich <jbeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <cover.1744626032.git.oleksii.kurochko@gmail.com>
 <c31977cb20be408ac695ec44edaa6e058e6ec10f.1744626032.git.oleksii.kurochko@gmail.com>
 <6e0ec1f3-08e5-475f-8d66-f3814e047760@amd.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <6e0ec1f3-08e5-475f-8d66-f3814e047760@amd.com>

This is a multi-part message in MIME format.
--------------FjK0MV04SamkBxU0ZExrOsUE
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 4/17/25 10:08 AM, Orzel, Michal wrote:
> I'm ok with making dom0less common in principle but I don't know if we should
> keep using the word dom0less which we all know is confusing. In one of the
> maintainers call we agreed on using "predefined domUs" to denote the concept of
> starting domUs at boot in a static way. This was so that we could have a common
> name for parts that are common between dom0less and hyperlaunch, while leaving
> dom0less/hyperlaunch to denote arch specific bits. We need more opinions here.
>
> On 14/04/2025 17:56, Oleksii Kurochko wrote:
>> Move some parts of Arm's Dom0Less code to be reused by other architectures.
>> At the moment, RISC-V is going to reuse these parts.
>>
>> Move dom0less-build.h from the Arm-specific directory to asm-generic
>> as these header is expected to be the same across acrhictectures with
>> some updates: add the following declaration of construct_domU(),
>> arch_xen_domctl_createdomain() and arch_create_domus() as there are
>> some parts which are still architecture-specific.
> Why do we need arch_xen_domctl_createdomain() and arch_create_domus()?
> FWICS the latter already takes d_cfg as parameter. I think we could get away
> with just a single arch specific function called during domU creation to e.g.
> cover arch specific DT bindings.

Agree, arch_xen_domctl_createdomain() could be dropped and we can live only with
arch_create_domus(). I'll drop it.

>
> Also, if there are already functions with _domU, use it instead of _domu (i.e.
> lowercase) for consistency.

Sure, I'll align the names.

>
>> Introduce HAS_DOM0LESS to provide ability to enable generic Dom0less
>> code for an architecture.
>>
>> Relocate the CONFIG_DOM0LESS configuration to the common with adding
>> "depends on HAS_DOM0LESS" to not break builds for architectures which
>> don't support CONFIG_DOM0LESS config, especically it would be useful
>> to not provide stubs for  construct_domU(), arch_xen_domctl_createdomain()
>> and arch_create_domus() in case of *-randconfig which may set
>> CONFIG_DOM0LESS=y.
>>
>> Move is_dom0less_mode() function to the common code, as it depends on
>> boot modules that are already part of the common code.
>>
>> Move create_domUs() function to the common code with some updates:
>> - Add function arch_xen_domctl_createdomain() as structure
>>    xen_domctl_createdomain may have some arch-spicific information and
>>    initialization.
>> - Add arch_create_domus() to cover parsing of arch-specific features,
>>    for example, SVE (Scalar Vector Extension ) exists only in Arm.
>>
>> Signed-off-by: Oleksii Kurochko<oleksii.kurochko@gmail.com>
>> ---
>> Changes in v2:
>>   - Convert 'depends on Arm' to 'depends on HAS_DOM0LESS' for
>>     CONFIG_DOM0LESS_BOOT.
>>   - Change 'default Arm' to 'default y' for CONFIG_DOM0LESS_BOOT as there is
>>     dependency on HAS_DOM0LESS.
>>   - Introduce HAS_DOM0LESS and enable it for Arm.
>>   - Update the commit message.
>> ---
>>   xen/arch/arm/Kconfig                      |   9 +-
>>   xen/arch/arm/dom0less-build.c             | 270 ++++++----------------
>>   xen/arch/arm/include/asm/Makefile         |   1 +
>>   xen/arch/arm/include/asm/dom0less-build.h |  32 ---
>>   xen/common/Kconfig                        |  12 +
>>   xen/common/device-tree/Makefile           |   1 +
>>   xen/common/device-tree/dom0less-build.c   | 161 +++++++++++++
>>   xen/include/asm-generic/dom0less-build.h  |  40 ++++
>>   8 files changed, 287 insertions(+), 239 deletions(-)
>>   delete mode 100644 xen/arch/arm/include/asm/dom0less-build.h
>>   create mode 100644 xen/common/device-tree/dom0less-build.c
>>   create mode 100644 xen/include/asm-generic/dom0less-build.h
>>
>> diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
>> index 565f288331..060389c3c8 100644
>> --- a/xen/arch/arm/Kconfig
>> +++ b/xen/arch/arm/Kconfig
>> @@ -15,6 +15,7 @@ config ARM
>>   	select GENERIC_UART_INIT
>>   	select HAS_ALTERNATIVE if HAS_VMAP
>>   	select HAS_DEVICE_TREE
>> +	select HAS_DOM0LESS
>>   	select HAS_UBSAN
>>   
>>   config ARCH_DEFCONFIG
>> @@ -119,14 +120,6 @@ config GICV2
>>   	  Driver for the ARM Generic Interrupt Controller v2.
>>   	  If unsure, say Y
>>   
>> -config DOM0LESS_BOOT
>> -	bool "Dom0less boot support" if EXPERT
>> -	default y
>> -	help
>> -	  Dom0less boot support enables Xen to create and start domU guests during
>> -	  Xen boot without the need of a control domain (Dom0), which could be
>> -	  present anyway.
>> -
>>   config GICV3
>>   	bool "GICv3 driver"
>>   	depends on !NEW_VGIC
>> diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
>> index bd15563750..7ec3f85795 100644
>> --- a/xen/arch/arm/dom0less-build.c
>> +++ b/xen/arch/arm/dom0less-build.c
>> @@ -20,38 +20,6 @@
>>   #include <asm/static-memory.h>
>>   #include <asm/static-shmem.h>
>>   
>> -bool __init is_dom0less_mode(void)
>> -{
>> -    struct bootmodules *mods = &bootinfo.modules;
>> -    struct bootmodule *mod;
>> -    unsigned int i;
>> -    bool dom0found = false;
>> -    bool domUfound = false;
>> -
>> -    /* Look into the bootmodules */
>> -    for ( i = 0 ; i < mods->nr_mods ; i++ )
>> -    {
>> -        mod = &mods->module[i];
>> -        /* Find if dom0 and domU kernels are present */
>> -        if ( mod->kind == BOOTMOD_KERNEL )
>> -        {
>> -            if ( mod->domU == false )
>> -            {
>> -                dom0found = true;
>> -                break;
>> -            }
>> -            else
>> -                domUfound = true;
>> -        }
>> -    }
>> -
>> -    /*
>> -     * If there is no dom0 kernel but at least one domU, then we are in
>> -     * dom0less mode
>> -     */
>> -    return ( !dom0found && domUfound );
>> -}
>> -
>>   #ifdef CONFIG_VGICV2
>>   static int __init make_gicv2_domU_node(struct kernel_info *kinfo)
>>   {
>> @@ -869,8 +837,8 @@ static inline int domain_p2m_set_allocation(struct domain *d, uint64_t mem,
>>   }
>>   #endif /* CONFIG_ARCH_PAGING_MEMPOOL */
>>   
>> -static int __init construct_domU(struct domain *d,
>> -                                 const struct dt_device_node *node)
>> +int __init construct_domU(struct domain *d,
>> +                          const struct dt_device_node *node)
>>   {
>>       struct kernel_info kinfo = KERNEL_INFO_INIT;
>>       const char *dom0less_enhanced;
>> @@ -965,188 +933,92 @@ static int __init construct_domU(struct domain *d,
>>       return alloc_xenstore_params(&kinfo);
>>   }
>>   
>> -void __init create_domUs(void)
>> -{
>> -    struct dt_device_node *node;
>> -    const char *dom0less_iommu;
>> -    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)
>> -    {
>> -        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,
>> -            /*
>> -             * The default of 1023 should be sufficient for guests because
>> -             * on ARM we don't bind physical interrupts to event channels.
>> -             * The only use of the evtchn port is inter-domain communications.
>> -             * 1023 is also the default value used in libxl.
>> -             */
>> -            .max_evtchn_port = 1023,
>> -            .max_grant_frames = -1,
>> -            .max_maptrack_frames = -1,
>> -            .grant_opts = XEN_DOMCTL_GRANT_version(opt_gnttab_max_version),
>> -        };
>> -        unsigned int flags = 0U;
>> -        uint32_t val;
>> -        int rc;
>> -
>> -        if ( !dt_device_is_compatible(node, "xen,domain") )
>> -            continue;
>> -
>> -        if ( (max_init_domid + 1) >= DOMID_FIRST_RESERVED )
>> -            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") )
>> -        {
>> -            if ( !(flags & CDF_staticmem) )
>> -                panic("direct-map is not valid for domain %s without static allocation.\n",
>> -                      dt_node_name(node));
>> -
>> -            flags |= CDF_directmap;
>> -        }
>>   
>> -        if ( !dt_property_read_u32(node, "cpus", &d_cfg.max_vcpus) )
>> -            panic("Missing property 'cpus' for domain %s\n",
>> -                  dt_node_name(node));
>> -
>> -        if ( !dt_property_read_string(node, "passthrough", &dom0less_iommu) &&
>> -             !strcmp(dom0less_iommu, "enabled") )
>> -            iommu = true;
>> +struct xen_domctl_createdomain __init arch_xen_domctl_createdomain(void)
> Out of curiosity. Why by value?

Just bad design. I planned to update that in the next patch version before you noticed that
it could be droppped, at all.

But it should be safe as I expected that RVO will be used based on dissassembler:
002ccf88 <arch_xen_domctl_createdomain>:
   2ccf88:       e16d41f0        strd    r4, [sp, #-16]!
   2ccf8c:       e58db008        str     fp, [sp, #8]
   2ccf90:       e58de00c        str     lr, [sp, #12]
   2ccf94:       e28db00c        add     fp, sp, #12
   2ccf98:       e1a04000        mov     r4, r0
   2ccf9c:       e3a02048        mov     r2, #72 @ 0x48
   2ccfa0:       e3a01000        mov     r1, #0
   2ccfa4:       ebfe6da5        bl      268640 <memset>
   2ccfa8:       e30b32b4        movw    r3, #45748      @ 0xb2b4
   2ccfac:       e340302a        movt    r3, #42 @ 0x2a
   2ccfb0:       e5933000        ldr     r3, [r3]
   2ccfb4:       e203300f        and     r3, r3, #15
   2ccfb8:       e3a02003        mov     r2, #3
   2ccfbc:       e5842014        str     r2, [r4, #20]
   2ccfc0:       e30023ff        movw    r2, #1023       @ 0x3ff
   2ccfc4:       e5842020        str     r2, [r4, #32]
   2ccfc8:       e3e02000        mvn     r2, #0
   2ccfcc:       e5842024        str     r2, [r4, #36]   @ 0x24
   2ccfd0:       e5842028        str     r2, [r4, #40]   @ 0x28
   2ccfd4:       e584302c        str     r3, [r4, #44]   @ 0x2c
   2ccfd8:       e1a00004        mov     r0, r4
   2ccfdc:       e24bd00c        sub     sp, fp, #12
   2ccfe0:       e1cd40d0        ldrd    r4, [sp]
   2ccfe4:       e59db008        ldr     fp, [sp, #8]
   2ccfe8:       e28dd00c        add     sp, sp, #12
   2ccfec:       e49df004        pop     {pc}            @ (ldr pc, [sp], #4
So, basically, it is transformed to void arch_xen_domctl_createdomain(struct xen_domctl_createdomain *ret) by compiler.
If I'm not mistaken something. It was pretty long time ago when I used Arm assembly.

>
>> +{
>> +    struct xen_domctl_createdomain d_cfg = {
>> +        .arch.gic_version = XEN_DOMCTL_CONFIG_GIC_NATIVE,
>> +        .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.
>> +            * The only use of the evtchn port is inter-domain communications.
>> +            * 1023 is also the default value used in libxl.
>> +            */
>> +        .max_evtchn_port = 1023,
>> +        .max_grant_frames = -1,
>> +        .max_maptrack_frames = -1,
>> +        .grant_opts = XEN_DOMCTL_GRANT_version(opt_gnttab_max_version),
>> +    };
>> +
>> +    return d_cfg;
>> +}
>>   
>> -        if ( iommu_enabled &&
>> -             (iommu || dt_find_compatible_node(node, NULL,
>> -                                               "multiboot,device-tree")) )
>> -            d_cfg.flags |= XEN_DOMCTL_CDF_iommu;
>> +void __init arch_create_domus(struct dt_device_node *node,
>> +                       struct xen_domctl_createdomain *d_cfg,
>> +                       unsigned int flags)
>> +{
>> +    uint32_t val;
>>   
>> -        if ( !dt_property_read_u32(node, "nr_spis", &d_cfg.arch.nr_spis) )
>> -        {
>> -            int vpl011_virq = GUEST_VPL011_SPI;
>> -
>> -            d_cfg.arch.nr_spis = VGIC_DEF_NR_SPIS;
>> -
>> -            /*
>> -             * The VPL011 virq is GUEST_VPL011_SPI, unless direct-map is
>> -             * set, in which case it'll match the hardware.
>> -             *
>> -             * Since the domain is not yet created, we can't use
>> -             * d->arch.vpl011.irq. So the logic to find the vIRQ has to
>> -             * be hardcoded.
>> -             * The logic here shall be consistent with the one in
>> -             * domain_vpl011_init().
>> -             */
>> -            if ( flags & CDF_directmap )
>> -            {
>> -                vpl011_virq = serial_irq(SERHND_DTUART);
>> -                if ( vpl011_virq < 0 )
>> -                    panic("Error getting IRQ number for this serial port %d\n",
>> -                          SERHND_DTUART);
>> -            }
>> +    if ( !dt_property_read_u32(node, "nr_spis", &d_cfg->arch.nr_spis) )
>> +    {
>> +        int vpl011_virq = GUEST_VPL011_SPI;
>>   
>> -            /*
>> -             * vpl011 uses one emulated SPI. If vpl011 is requested, make
>> -             * sure that we allocate enough SPIs for it.
>> -             */
>> -            if ( dt_property_read_bool(node, "vpl011") )
>> -                d_cfg.arch.nr_spis = MAX(d_cfg.arch.nr_spis,
>> -                                         vpl011_virq - 32 + 1);
>> -        }
>> +        d_cfg->arch.nr_spis = VGIC_DEF_NR_SPIS;
>>   
>> -        /* Get the optional property domain-cpupool */
>> -        cpupool_node = dt_parse_phandle(node, "domain-cpupool", 0);
>> -        if ( cpupool_node )
>> +        /*
>> +         * The VPL011 virq is GUEST_VPL011_SPI, unless direct-map is
>> +         * set, in which case it'll match the hardware.
>> +         *
>> +         * Since the domain is not yet created, we can't use
>> +         * d->arch.vpl011.irq. So the logic to find the vIRQ has to
>> +         * be hardcoded.
>> +         * The logic here shall be consistent with the one in
>> +         * domain_vpl011_init().
>> +         */
>> +        if ( flags & CDF_directmap )
>>           {
>> -            int pool_id = btcpupools_get_domain_pool_id(cpupool_node);
>> -            if ( pool_id < 0 )
>> -                panic("Error getting cpupool id from domain-cpupool (%d)\n",
>> -                      pool_id);
>> -            d_cfg.cpupool_id = pool_id;
>> +            vpl011_virq = serial_irq(SERHND_DTUART);
>> +            if ( vpl011_virq < 0 )
>> +                panic("Error getting IRQ number for this serial port %d\n",
>> +                        SERHND_DTUART);
>>           }
>>   
>> -        if ( dt_property_read_u32(node, "max_grant_version", &val) )
>> -            d_cfg.grant_opts = XEN_DOMCTL_GRANT_version(val);
>> +        /*
>> +         * vpl011 uses one emulated SPI. If vpl011 is requested, make
>> +         * sure that we allocate enough SPIs for it.
>> +         */
>> +        if ( dt_property_read_bool(node, "vpl011") )
>> +            d_cfg->arch.nr_spis = MAX(d_cfg->arch.nr_spis,
>> +                                      vpl011_virq - 32 + 1);
>> +    }
>>   
>> -        if ( dt_property_read_u32(node, "max_grant_frames", &val) )
>> -        {
>> -            if ( val > INT32_MAX )
>> -                panic("max_grant_frames (%"PRIu32") overflow\n", val);
>> -            d_cfg.max_grant_frames = val;
>> -        }
>> +    if ( dt_get_property(node, "sve", &val) )
>> +    {
>> +#ifdef CONFIG_ARM64_SVE
>> +        unsigned int sve_vl_bits;
>> +        bool ret = false;
>>   
>> -        if ( dt_property_read_u32(node, "max_maptrack_frames", &val) )
>> +        if ( !val )
>>           {
>> -            if ( val > INT32_MAX )
>> -                panic("max_maptrack_frames (%"PRIu32") overflow\n", val);
>> -            d_cfg.max_maptrack_frames = val;
>> +            /* Property found with no value, means max HW VL supported */
>> +            ret = sve_domctl_vl_param(-1, &sve_vl_bits);
>>           }
>> -
>> -        if ( dt_get_property(node, "sve", &val) )
>> +        else
>>           {
>> -#ifdef CONFIG_ARM64_SVE
>> -            unsigned int sve_vl_bits;
>> -            bool ret = false;
>> -
>> -            if ( !val )
>> -            {
>> -                /* Property found with no value, means max HW VL supported */
>> -                ret = sve_domctl_vl_param(-1, &sve_vl_bits);
>> -            }
>> +            if ( dt_property_read_u32(node, "sve", &val) )
>> +                ret = sve_domctl_vl_param(val, &sve_vl_bits);
>>               else
>> -            {
>> -                if ( dt_property_read_u32(node, "sve", &val) )
>> -                    ret = sve_domctl_vl_param(val, &sve_vl_bits);
>> -                else
>> -                    panic("Error reading 'sve' property\n");
>> -            }
>> +                panic("Error reading 'sve' property\n");
>> +        }
>>   
>> -            if ( ret )
>> -                d_cfg.arch.sve_vl = sve_encode_vl(sve_vl_bits);
>> -            else
>> -                panic("SVE vector length error\n");
>> +        if ( ret )
>> +            d_cfg->arch.sve_vl = sve_encode_vl(sve_vl_bits);
>> +        else
>> +            panic("SVE vector length error\n");
>>   #else
>> -            panic("'sve' property found, but CONFIG_ARM64_SVE not selected\n");
>> +        panic("'sve' property found, but CONFIG_ARM64_SVE not selected\n");
>>   #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
>> -         * domain_create() with a domid > 0. (domid == 0 is reserved for Dom0)
>> -         */
>> -        d = domain_create(++max_init_domid, &d_cfg, flags);
>> -        if ( IS_ERR(d) )
>> -            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);
>> -
>> -        rc = construct_domU(d, node);
>> -        if ( rc )
>> -            panic("Could not set up domain %s (rc = %d)\n",
>> -                  dt_node_name(node), rc);
>>       }
>>   }
>>   
>> diff --git a/xen/arch/arm/include/asm/Makefile b/xen/arch/arm/include/asm/Makefile
>> index 4a4036c951..831c914cce 100644
>> --- a/xen/arch/arm/include/asm/Makefile
>> +++ b/xen/arch/arm/include/asm/Makefile
>> @@ -1,6 +1,7 @@
>>   # SPDX-License-Identifier: GPL-2.0-only
>>   generic-y += altp2m.h
>>   generic-y += device.h
>> +generic-y += dom0less-build.h
>>   generic-y += hardirq.h
>>   generic-y += iocap.h
>>   generic-y += paging.h
>> diff --git a/xen/arch/arm/include/asm/dom0less-build.h b/xen/arch/arm/include/asm/dom0less-build.h
>> deleted file mode 100644
>> index 5864944bda..0000000000
>> --- a/xen/arch/arm/include/asm/dom0less-build.h
>> +++ /dev/null
>> @@ -1,32 +0,0 @@
>> -/* SPDX-License-Identifier: GPL-2.0-only */
>> -
>> -#ifndef __ASM_DOM0LESS_BUILD_H_
>> -#define __ASM_DOM0LESS_BUILD_H_
>> -
>> -#include <xen/stdbool.h>
>> -
>> -#ifdef CONFIG_DOM0LESS_BOOT
>> -
>> -void create_domUs(void);
>> -bool is_dom0less_mode(void);
>> -
>> -#else /* !CONFIG_DOM0LESS_BOOT */
>> -
>> -static inline void create_domUs(void) {}
>> -static inline bool is_dom0less_mode(void)
>> -{
>> -    return false;
>> -}
>> -
>> -#endif /* CONFIG_DOM0LESS_BOOT */
>> -
>> -#endif /* __ASM_DOM0LESS_BUILD_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 06ae9751aa..2fd79aea5b 100644
>> --- a/xen/common/Kconfig
>> +++ b/xen/common/Kconfig
>> @@ -12,6 +12,15 @@ config CORE_PARKING
>>   	bool
>>   	depends on NR_CPUS > 1
>>   
>> +config DOM0LESS_BOOT
>> +	bool "Dom0less boot support" if EXPERT
>> +	depends on HAS_DOM0LESS
> You put dom0less code under device-tree, yet I don't see any of these Kconfig
> options being dependent on HAS_DEVICE_TREE. I think this is wrong.

Agree, HAS_DEVICE_TREE should be as a dependency here.

>> +#ifndef __ASM_GENERIC_DOM0LESS_BUILD_H__
>> +#define __ASM_GENERIC_DOM0LESS_BUILD_H__
>> +
>> +#include <xen/stdbool.h>
>> +
>> +#ifdef CONFIG_DOM0LESS_BOOT
>> +
>> +#include <public/domctl.h>
>> +
>> +void create_domUs(void);
>> +bool is_dom0less_mode(void);
>> +
>> +int construct_domU(struct domain *d, const struct dt_device_node *node);
> I don't see necessary headers included for these structs

I will use forward declarations for that.

Thanks for review.

~ Oleksii

--------------FjK0MV04SamkBxU0ZExrOsUE
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 4/17/25 10:08 AM, Orzel, Michal
      wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:6e0ec1f3-08e5-475f-8d66-f3814e047760@amd.com">
      <pre wrap="" class="moz-quote-pre">I'm ok with making dom0less common in principle but I don't know if we should
keep using the word dom0less which we all know is confusing. In one of the
maintainers call we agreed on using "predefined domUs" to denote the concept of
starting domUs at boot in a static way. This was so that we could have a common
name for parts that are common between dom0less and hyperlaunch, while leaving
dom0less/hyperlaunch to denote arch specific bits. We need more opinions here.

On 14/04/2025 17:56, Oleksii Kurochko wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">Move some parts of Arm's Dom0Less code to be reused by other architectures.
At the moment, RISC-V is going to reuse these parts.

Move dom0less-build.h from the Arm-specific directory to asm-generic
as these header is expected to be the same across acrhictectures with
some updates: add the following declaration of construct_domU(),
arch_xen_domctl_createdomain() and arch_create_domus() as there are
some parts which are still architecture-specific.
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">Why do we need arch_xen_domctl_createdomain() and arch_create_domus()?
FWICS the latter already takes d_cfg as parameter. I think we could get away
with just a single arch specific function called during domU creation to e.g.
cover arch specific DT bindings.</pre>
    </blockquote>
    <pre>Agree, arch_xen_domctl_createdomain() could be dropped and we can live only with
arch_create_domus(). I'll drop it.
</pre>
    <blockquote type="cite"
      cite="mid:6e0ec1f3-08e5-475f-8d66-f3814e047760@amd.com">
      <pre wrap="" class="moz-quote-pre">

Also, if there are already functions with _domU, use it instead of _domu (i.e.
lowercase) for consistency.</pre>
    </blockquote>
    <pre>Sure, I'll align the names.

</pre>
    <blockquote type="cite"
      cite="mid:6e0ec1f3-08e5-475f-8d66-f3814e047760@amd.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">
Introduce HAS_DOM0LESS to provide ability to enable generic Dom0less
code for an architecture.

Relocate the CONFIG_DOM0LESS configuration to the common with adding
"depends on HAS_DOM0LESS" to not break builds for architectures which
don't support CONFIG_DOM0LESS config, especically it would be useful
to not provide stubs for  construct_domU(), arch_xen_domctl_createdomain()
and arch_create_domus() in case of *-randconfig which may set
CONFIG_DOM0LESS=y.

Move is_dom0less_mode() function to the common code, as it depends on
boot modules that are already part of the common code.

Move create_domUs() function to the common code with some updates:
- Add function arch_xen_domctl_createdomain() as structure
  xen_domctl_createdomain may have some arch-spicific information and
  initialization.
- Add arch_create_domus() to cover parsing of arch-specific features,
  for example, SVE (Scalar Vector Extension ) exists only in Arm.

Signed-off-by: Oleksii Kurochko <a class="moz-txt-link-rfc2396E" href="mailto:oleksii.kurochko@gmail.com">&lt;oleksii.kurochko@gmail.com&gt;</a>
---
Changes in v2:
 - Convert 'depends on Arm' to 'depends on HAS_DOM0LESS' for
   CONFIG_DOM0LESS_BOOT.
 - Change 'default Arm' to 'default y' for CONFIG_DOM0LESS_BOOT as there is
   dependency on HAS_DOM0LESS.
 - Introduce HAS_DOM0LESS and enable it for Arm.
 - Update the commit message.
---
 xen/arch/arm/Kconfig                      |   9 +-
 xen/arch/arm/dom0less-build.c             | 270 ++++++----------------
 xen/arch/arm/include/asm/Makefile         |   1 +
 xen/arch/arm/include/asm/dom0less-build.h |  32 ---
 xen/common/Kconfig                        |  12 +
 xen/common/device-tree/Makefile           |   1 +
 xen/common/device-tree/dom0less-build.c   | 161 +++++++++++++
 xen/include/asm-generic/dom0less-build.h  |  40 ++++
 8 files changed, 287 insertions(+), 239 deletions(-)
 delete mode 100644 xen/arch/arm/include/asm/dom0less-build.h
 create mode 100644 xen/common/device-tree/dom0less-build.c
 create mode 100644 xen/include/asm-generic/dom0less-build.h

diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
index 565f288331..060389c3c8 100644
--- a/xen/arch/arm/Kconfig
+++ b/xen/arch/arm/Kconfig
@@ -15,6 +15,7 @@ config ARM
 	select GENERIC_UART_INIT
 	select HAS_ALTERNATIVE if HAS_VMAP
 	select HAS_DEVICE_TREE
+	select HAS_DOM0LESS
 	select HAS_UBSAN
 
 config ARCH_DEFCONFIG
@@ -119,14 +120,6 @@ config GICV2
 	  Driver for the ARM Generic Interrupt Controller v2.
 	  If unsure, say Y
 
-config DOM0LESS_BOOT
-	bool "Dom0less boot support" if EXPERT
-	default y
-	help
-	  Dom0less boot support enables Xen to create and start domU guests during
-	  Xen boot without the need of a control domain (Dom0), which could be
-	  present anyway.
-
 config GICV3
 	bool "GICv3 driver"
 	depends on !NEW_VGIC
diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
index bd15563750..7ec3f85795 100644
--- a/xen/arch/arm/dom0less-build.c
+++ b/xen/arch/arm/dom0less-build.c
@@ -20,38 +20,6 @@
 #include &lt;asm/static-memory.h&gt;
 #include &lt;asm/static-shmem.h&gt;
 
-bool __init is_dom0less_mode(void)
-{
-    struct bootmodules *mods = &amp;bootinfo.modules;
-    struct bootmodule *mod;
-    unsigned int i;
-    bool dom0found = false;
-    bool domUfound = false;
-
-    /* Look into the bootmodules */
-    for ( i = 0 ; i &lt; mods-&gt;nr_mods ; i++ )
-    {
-        mod = &amp;mods-&gt;module[i];
-        /* Find if dom0 and domU kernels are present */
-        if ( mod-&gt;kind == BOOTMOD_KERNEL )
-        {
-            if ( mod-&gt;domU == false )
-            {
-                dom0found = true;
-                break;
-            }
-            else
-                domUfound = true;
-        }
-    }
-
-    /*
-     * If there is no dom0 kernel but at least one domU, then we are in
-     * dom0less mode
-     */
-    return ( !dom0found &amp;&amp; domUfound );
-}
-
 #ifdef CONFIG_VGICV2
 static int __init make_gicv2_domU_node(struct kernel_info *kinfo)
 {
@@ -869,8 +837,8 @@ static inline int domain_p2m_set_allocation(struct domain *d, uint64_t mem,
 }
 #endif /* CONFIG_ARCH_PAGING_MEMPOOL */
 
-static int __init construct_domU(struct domain *d,
-                                 const struct dt_device_node *node)
+int __init construct_domU(struct domain *d,
+                          const struct dt_device_node *node)
 {
     struct kernel_info kinfo = KERNEL_INFO_INIT;
     const char *dom0less_enhanced;
@@ -965,188 +933,92 @@ static int __init construct_domU(struct domain *d,
     return alloc_xenstore_params(&amp;kinfo);
 }
 
-void __init create_domUs(void)
-{
-    struct dt_device_node *node;
-    const char *dom0less_iommu;
-    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)
-    {
-        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,
-            /*
-             * The default of 1023 should be sufficient for guests because
-             * on ARM we don't bind physical interrupts to event channels.
-             * The only use of the evtchn port is inter-domain communications.
-             * 1023 is also the default value used in libxl.
-             */
-            .max_evtchn_port = 1023,
-            .max_grant_frames = -1,
-            .max_maptrack_frames = -1,
-            .grant_opts = XEN_DOMCTL_GRANT_version(opt_gnttab_max_version),
-        };
-        unsigned int flags = 0U;
-        uint32_t val;
-        int rc;
-
-        if ( !dt_device_is_compatible(node, "xen,domain") )
-            continue;
-
-        if ( (max_init_domid + 1) &gt;= DOMID_FIRST_RESERVED )
-            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") )
-        {
-            if ( !(flags &amp; CDF_staticmem) )
-                panic("direct-map is not valid for domain %s without static allocation.\n",
-                      dt_node_name(node));
-
-            flags |= CDF_directmap;
-        }
 
-        if ( !dt_property_read_u32(node, "cpus", &amp;d_cfg.max_vcpus) )
-            panic("Missing property 'cpus' for domain %s\n",
-                  dt_node_name(node));
-
-        if ( !dt_property_read_string(node, "passthrough", &amp;dom0less_iommu) &amp;&amp;
-             !strcmp(dom0less_iommu, "enabled") )
-            iommu = true;
+struct xen_domctl_createdomain __init arch_xen_domctl_createdomain(void)
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">Out of curiosity. Why by value?</pre>
    </blockquote>
    <pre>Just bad design. I planned to update that in the next patch version before you noticed that
it could be droppped, at all.

But it should be safe as I expected that RVO will be used based on dissassembler:
002ccf88 &lt;arch_xen_domctl_createdomain&gt;:
  2ccf88:       e16d41f0        strd    r4, [sp, #-16]!
  2ccf8c:       e58db008        str     fp, [sp, #8]
  2ccf90:       e58de00c        str     lr, [sp, #12]
  2ccf94:       e28db00c        add     fp, sp, #12
  2ccf98:       e1a04000        mov     r4, r0
  2ccf9c:       e3a02048        mov     r2, #72 @ 0x48
  2ccfa0:       e3a01000        mov     r1, #0
  2ccfa4:       ebfe6da5        bl      268640 &lt;memset&gt;
  2ccfa8:       e30b32b4        movw    r3, #45748      @ 0xb2b4
  2ccfac:       e340302a        movt    r3, #42 @ 0x2a
  2ccfb0:       e5933000        ldr     r3, [r3]
  2ccfb4:       e203300f        and     r3, r3, #15
  2ccfb8:       e3a02003        mov     r2, #3
  2ccfbc:       e5842014        str     r2, [r4, #20]
  2ccfc0:       e30023ff        movw    r2, #1023       @ 0x3ff
  2ccfc4:       e5842020        str     r2, [r4, #32]
  2ccfc8:       e3e02000        mvn     r2, #0
  2ccfcc:       e5842024        str     r2, [r4, #36]   @ 0x24
  2ccfd0:       e5842028        str     r2, [r4, #40]   @ 0x28
  2ccfd4:       e584302c        str     r3, [r4, #44]   @ 0x2c
  2ccfd8:       e1a00004        mov     r0, r4
  2ccfdc:       e24bd00c        sub     sp, fp, #12
  2ccfe0:       e1cd40d0        ldrd    r4, [sp]
  2ccfe4:       e59db008        ldr     fp, [sp, #8]
  2ccfe8:       e28dd00c        add     sp, sp, #12
  2ccfec:       e49df004        pop     {pc}            @ (ldr pc, [sp], #4
So, basically, it is transformed to void arch_xen_domctl_createdomain(struct xen_domctl_createdomain *ret) by compiler.
If I'm not mistaken something. It was pretty long time ago when I used Arm assembly.

</pre>
    <blockquote type="cite"
      cite="mid:6e0ec1f3-08e5-475f-8d66-f3814e047760@amd.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+{
+    struct xen_domctl_createdomain d_cfg = {
+        .arch.gic_version = XEN_DOMCTL_CONFIG_GIC_NATIVE,
+        .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.
+            * The only use of the evtchn port is inter-domain communications.
+            * 1023 is also the default value used in libxl.
+            */
+        .max_evtchn_port = 1023,
+        .max_grant_frames = -1,
+        .max_maptrack_frames = -1,
+        .grant_opts = XEN_DOMCTL_GRANT_version(opt_gnttab_max_version),
+    };
+
+    return d_cfg;
+}
 
-        if ( iommu_enabled &amp;&amp;
-             (iommu || dt_find_compatible_node(node, NULL,
-                                               "multiboot,device-tree")) )
-            d_cfg.flags |= XEN_DOMCTL_CDF_iommu;
+void __init arch_create_domus(struct dt_device_node *node,
+                       struct xen_domctl_createdomain *d_cfg,
+                       unsigned int flags)
+{
+    uint32_t val;
 
-        if ( !dt_property_read_u32(node, "nr_spis", &amp;d_cfg.arch.nr_spis) )
-        {
-            int vpl011_virq = GUEST_VPL011_SPI;
-
-            d_cfg.arch.nr_spis = VGIC_DEF_NR_SPIS;
-
-            /*
-             * The VPL011 virq is GUEST_VPL011_SPI, unless direct-map is
-             * set, in which case it'll match the hardware.
-             *
-             * Since the domain is not yet created, we can't use
-             * d-&gt;arch.vpl011.irq. So the logic to find the vIRQ has to
-             * be hardcoded.
-             * The logic here shall be consistent with the one in
-             * domain_vpl011_init().
-             */
-            if ( flags &amp; CDF_directmap )
-            {
-                vpl011_virq = serial_irq(SERHND_DTUART);
-                if ( vpl011_virq &lt; 0 )
-                    panic("Error getting IRQ number for this serial port %d\n",
-                          SERHND_DTUART);
-            }
+    if ( !dt_property_read_u32(node, "nr_spis", &amp;d_cfg-&gt;arch.nr_spis) )
+    {
+        int vpl011_virq = GUEST_VPL011_SPI;
 
-            /*
-             * vpl011 uses one emulated SPI. If vpl011 is requested, make
-             * sure that we allocate enough SPIs for it.
-             */
-            if ( dt_property_read_bool(node, "vpl011") )
-                d_cfg.arch.nr_spis = MAX(d_cfg.arch.nr_spis,
-                                         vpl011_virq - 32 + 1);
-        }
+        d_cfg-&gt;arch.nr_spis = VGIC_DEF_NR_SPIS;
 
-        /* Get the optional property domain-cpupool */
-        cpupool_node = dt_parse_phandle(node, "domain-cpupool", 0);
-        if ( cpupool_node )
+        /*
+         * The VPL011 virq is GUEST_VPL011_SPI, unless direct-map is
+         * set, in which case it'll match the hardware.
+         *
+         * Since the domain is not yet created, we can't use
+         * d-&gt;arch.vpl011.irq. So the logic to find the vIRQ has to
+         * be hardcoded.
+         * The logic here shall be consistent with the one in
+         * domain_vpl011_init().
+         */
+        if ( flags &amp; CDF_directmap )
         {
-            int pool_id = btcpupools_get_domain_pool_id(cpupool_node);
-            if ( pool_id &lt; 0 )
-                panic("Error getting cpupool id from domain-cpupool (%d)\n",
-                      pool_id);
-            d_cfg.cpupool_id = pool_id;
+            vpl011_virq = serial_irq(SERHND_DTUART);
+            if ( vpl011_virq &lt; 0 )
+                panic("Error getting IRQ number for this serial port %d\n",
+                        SERHND_DTUART);
         }
 
-        if ( dt_property_read_u32(node, "max_grant_version", &amp;val) )
-            d_cfg.grant_opts = XEN_DOMCTL_GRANT_version(val);
+        /*
+         * vpl011 uses one emulated SPI. If vpl011 is requested, make
+         * sure that we allocate enough SPIs for it.
+         */
+        if ( dt_property_read_bool(node, "vpl011") )
+            d_cfg-&gt;arch.nr_spis = MAX(d_cfg-&gt;arch.nr_spis,
+                                      vpl011_virq - 32 + 1);
+    }
 
-        if ( dt_property_read_u32(node, "max_grant_frames", &amp;val) )
-        {
-            if ( val &gt; INT32_MAX )
-                panic("max_grant_frames (%"PRIu32") overflow\n", val);
-            d_cfg.max_grant_frames = val;
-        }
+    if ( dt_get_property(node, "sve", &amp;val) )
+    {
+#ifdef CONFIG_ARM64_SVE
+        unsigned int sve_vl_bits;
+        bool ret = false;
 
-        if ( dt_property_read_u32(node, "max_maptrack_frames", &amp;val) )
+        if ( !val )
         {
-            if ( val &gt; INT32_MAX )
-                panic("max_maptrack_frames (%"PRIu32") overflow\n", val);
-            d_cfg.max_maptrack_frames = val;
+            /* Property found with no value, means max HW VL supported */
+            ret = sve_domctl_vl_param(-1, &amp;sve_vl_bits);
         }
-
-        if ( dt_get_property(node, "sve", &amp;val) )
+        else
         {
-#ifdef CONFIG_ARM64_SVE
-            unsigned int sve_vl_bits;
-            bool ret = false;
-
-            if ( !val )
-            {
-                /* Property found with no value, means max HW VL supported */
-                ret = sve_domctl_vl_param(-1, &amp;sve_vl_bits);
-            }
+            if ( dt_property_read_u32(node, "sve", &amp;val) )
+                ret = sve_domctl_vl_param(val, &amp;sve_vl_bits);
             else
-            {
-                if ( dt_property_read_u32(node, "sve", &amp;val) )
-                    ret = sve_domctl_vl_param(val, &amp;sve_vl_bits);
-                else
-                    panic("Error reading 'sve' property\n");
-            }
+                panic("Error reading 'sve' property\n");
+        }
 
-            if ( ret )
-                d_cfg.arch.sve_vl = sve_encode_vl(sve_vl_bits);
-            else
-                panic("SVE vector length error\n");
+        if ( ret )
+            d_cfg-&gt;arch.sve_vl = sve_encode_vl(sve_vl_bits);
+        else
+            panic("SVE vector length error\n");
 #else
-            panic("'sve' property found, but CONFIG_ARM64_SVE not selected\n");
+        panic("'sve' property found, but CONFIG_ARM64_SVE not selected\n");
 #endif
-        }
-
-        dt_property_read_string(node, "llc-colors", &amp;llc_colors_str);
-        if ( !llc_coloring_enabled &amp;&amp; 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
-         * domain_create() with a domid &gt; 0. (domid == 0 is reserved for Dom0)
-         */
-        d = domain_create(++max_init_domid, &amp;d_cfg, flags);
-        if ( IS_ERR(d) )
-            panic("Error creating domain %s (rc = %ld)\n",
-                  dt_node_name(node), PTR_ERR(d));
-
-        if ( llc_coloring_enabled &amp;&amp;
-             (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-&gt;is_console = true;
-        dt_device_set_used_by(node, d-&gt;domain_id);
-
-        rc = construct_domU(d, node);
-        if ( rc )
-            panic("Could not set up domain %s (rc = %d)\n",
-                  dt_node_name(node), rc);
     }
 }
 
diff --git a/xen/arch/arm/include/asm/Makefile b/xen/arch/arm/include/asm/Makefile
index 4a4036c951..831c914cce 100644
--- a/xen/arch/arm/include/asm/Makefile
+++ b/xen/arch/arm/include/asm/Makefile
@@ -1,6 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0-only
 generic-y += altp2m.h
 generic-y += device.h
+generic-y += dom0less-build.h
 generic-y += hardirq.h
 generic-y += iocap.h
 generic-y += paging.h
diff --git a/xen/arch/arm/include/asm/dom0less-build.h b/xen/arch/arm/include/asm/dom0less-build.h
deleted file mode 100644
index 5864944bda..0000000000
--- a/xen/arch/arm/include/asm/dom0less-build.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-only */
-
-#ifndef __ASM_DOM0LESS_BUILD_H_
-#define __ASM_DOM0LESS_BUILD_H_
-
-#include &lt;xen/stdbool.h&gt;
-
-#ifdef CONFIG_DOM0LESS_BOOT
-
-void create_domUs(void);
-bool is_dom0less_mode(void);
-
-#else /* !CONFIG_DOM0LESS_BOOT */
-
-static inline void create_domUs(void) {}
-static inline bool is_dom0less_mode(void)
-{
-    return false;
-}
-
-#endif /* CONFIG_DOM0LESS_BOOT */
-
-#endif /* __ASM_DOM0LESS_BUILD_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 06ae9751aa..2fd79aea5b 100644
--- a/xen/common/Kconfig
+++ b/xen/common/Kconfig
@@ -12,6 +12,15 @@ config CORE_PARKING
 	bool
 	depends on NR_CPUS &gt; 1
 
+config DOM0LESS_BOOT
+	bool "Dom0less boot support" if EXPERT
+	depends on HAS_DOM0LESS
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">You put dom0less code under device-tree, yet I don't see any of these Kconfig
options being dependent on HAS_DEVICE_TREE. I think this is wrong.</pre>
    </blockquote>
    <pre>Agree, HAS_DEVICE_TREE should be as a dependency here.</pre>
    <blockquote type="cite"
      cite="mid:6e0ec1f3-08e5-475f-8d66-f3814e047760@amd.com">
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+#ifndef __ASM_GENERIC_DOM0LESS_BUILD_H__
+#define __ASM_GENERIC_DOM0LESS_BUILD_H__
+
+#include &lt;xen/stdbool.h&gt;
+
+#ifdef CONFIG_DOM0LESS_BOOT
+
+#include &lt;public/domctl.h&gt;
+
+void create_domUs(void);
+bool is_dom0less_mode(void);
+
+int construct_domU(struct domain *d, const struct dt_device_node *node);
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">I don't see necessary headers included for these structs</pre>
    </blockquote>
    <pre>I will use forward declarations for that.

Thanks for review.

~ Oleksii</pre>
  </body>
</html>

--------------FjK0MV04SamkBxU0ZExrOsUE--


From xen-devel-bounces@lists.xenproject.org Tue Apr 22 15:11:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 15:11:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.962891.1354049 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7FHJ-0000Ne-Ks; Tue, 22 Apr 2025 15:11:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 962891.1354049; Tue, 22 Apr 2025 15: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 1u7FHJ-0000NX-H4; Tue, 22 Apr 2025 15:11:17 +0000
Received: by outflank-mailman (input) for mailman id 962891;
 Tue, 22 Apr 2025 15: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=BiSK=XI=3mdeb.com=sergii.dmytruk@srs-se1.protection.inumbo.net>)
 id 1u7FEA-0008SP-7y
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 15:08:02 +0000
Received: from 7.mo560.mail-out.ovh.net (7.mo560.mail-out.ovh.net
 [188.165.48.182]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8f8dbb7c-1f8b-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 17:07:52 +0200 (CEST)
Received: from director7.ghost.mail-out.ovh.net (unknown [10.108.2.211])
 by mo560.mail-out.ovh.net (Postfix) with ESMTP id 4ZhlwR2cxVz27KG
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 15:07:51 +0000 (UTC)
Received: from ghost-submission-5b5ff79f4f-5mx5v (unknown [10.110.113.89])
 by director7.ghost.mail-out.ovh.net (Postfix) with ESMTPS id C731B1FE99;
 Tue, 22 Apr 2025 15:07:50 +0000 (UTC)
Received: from 3mdeb.com ([37.59.142.102])
 by ghost-submission-5b5ff79f4f-5mx5v with ESMTPSA
 id 6d3rJ8awB2hQGwEA812aCQ
 (envelope-from <sergii.dmytruk@3mdeb.com>); Tue, 22 Apr 2025 15:07: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: 8f8dbb7c-1f8b-11f0-9ffb-bf95429c2676
Authentication-Results:garm.ovh; auth=pass (GARM-102R0042577f9f3-4f70-4acc-b692-f60e8c0d63bf,
                    7E508E014E7E7C169EB13C6E22C3C4EBF1F0FDD7) smtp.auth=sergii.dmytruk@3mdeb.com
X-OVh-ClientIp:176.111.181.178
From: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
To: xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	trenchboot-devel@googlegroups.com
Subject: [PATCH 17/21] arch/x86: process DRTM policy
Date: Tue, 22 Apr 2025 18:06:51 +0300
Message-ID: <94b9a4fe07cdc021565152b11660f891481fec41.1745172094.git.sergii.dmytruk@3mdeb.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <cover.1745172094.git.sergii.dmytruk@3mdeb.com>
References: <cover.1745172094.git.sergii.dmytruk@3mdeb.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Ovh-Tracer-Id: 12738150072529826972
X-VR-SPAMSTATE: OK
X-VR-SPAMSCORE: -100
X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvgeegtdehucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuqfggjfdpvefjgfevmfevgfenuceurghilhhouhhtmecuhedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurhephffvvefufffkofgjfhgggfestdekredtredttdenucfhrhhomhepufgvrhhgihhiucffmhihthhruhhkuceoshgvrhhgihhirdgumhihthhruhhkseefmhguvggsrdgtohhmqeenucggtffrrghtthgvrhhnpefhheefheduieelieekfffgfffgfedutdevleevvdfhfffgledvgfdtuddtheefieenucfkphepuddvjedrtddrtddruddpudejiedrudduuddrudekuddrudejkedpfeejrdehledrudegvddruddtvdenucevlhhushhtvghrufhiiigvpeegnecurfgrrhgrmhepihhnvghtpeduvdejrddtrddtrddupdhmrghilhhfrhhomhepshgvrhhgihhirdgumhihthhruhhkseefmhguvggsrdgtohhmpdhnsggprhgtphhtthhopedupdhrtghpthhtohepgigvnhdquggvvhgvlheslhhishhtshdrgigvnhhprhhojhgvtghtrdhorhhgpdfovfetjfhoshhtpehmohehiedtmgdpmhhouggvpehsmhhtphhouhht
DKIM-Signature: a=rsa-sha256; bh=129GEHzguLJjiOdLxJGdFrfFBCK6um2LAlVWYMCEXnQ=;
 c=relaxed/relaxed; d=3mdeb.com; h=From; s=ovhmo3617313-selector1;
 t=1745334471; v=1;
 b=HwBdOQbo9/jwh1fJmfmK6sVmhYJm0uuYUUsuQVDS1fBtSAK3iTTNF7CvKNdfAQ8gPPEov+iD
 y1qH8qyAFBxtg7o7ag1KTenTuW7vda2UWEZukst/AD02ZKLwAJIRADvWzf419tVt3NDHx2pa/9A
 D2bGPXgG6JW3EIlBJ7rEmLcSUw3y7L+uQhf+t7k1npGEAmFNwXwQF4OAX5PxCqevjHR3AdLZhlx
 skeqGyq85/KxTkW//8lS/nflbZe0eNPNuk6wDg/jo0gx6CoMPzFv6HQURfRq3EKR6wiOEj7aYcW
 0kPz7SkcpuT2F0goiNmXLni+Cs8waW4XK+wB66VcFmnFQ==

Go through entires in the DRTM policy of SLRT to hash and extend data
that they describe into corresponding PCRs.

Addresses are being zeroed on measuring platform-specific data to
prevent measurements from changing when the only thing that has changed
is an address.  Addresses can vary due to bootloader, firmware or user
doing something differently or just if GRUB gets bigger in size due to
inclusion of more modules and ends up offsetting newly allocated memory.

Signed-off-by: Krystian Hebel <krystian.hebel@3mdeb.com>
Signed-off-by: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
---
 xen/arch/x86/include/asm/slaunch.h |  14 ++
 xen/arch/x86/setup.c               |  15 ++
 xen/arch/x86/slaunch.c             | 213 +++++++++++++++++++++++++++++
 3 files changed, 242 insertions(+)

diff --git a/xen/arch/x86/include/asm/slaunch.h b/xen/arch/x86/include/asm/slaunch.h
index b9b50f20c6..5cfd9e95af 100644
--- a/xen/arch/x86/include/asm/slaunch.h
+++ b/xen/arch/x86/include/asm/slaunch.h
@@ -24,6 +24,8 @@
 #define DLE_EVTYPE_SLAUNCH_START   (DLE_EVTYPE_BASE + 0x103)
 #define DLE_EVTYPE_SLAUNCH_END     (DLE_EVTYPE_BASE + 0x104)
 
+struct boot_info;
+
 extern bool slaunch_active;
 
 /*
@@ -62,6 +64,18 @@ void slaunch_map_mem_regions(void);
 /* Marks regions of memory as used to avoid their corruption. */
 void slaunch_reserve_mem_regions(void);
 
+/* Measures essential parts of SLR table before making use of them. */
+void slaunch_measure_slrt(void);
+
+/*
+ * Takes measurements of DRTM policy entries except for MBI and SLRT which
+ * should have been measured by the time this is called. Also performs sanity
+ * checks of the policy and panics on failure. In particular, the function
+ * verifies that DRTM is consistent with modules obtained from MultibootInfo
+ * (MBI) and written to struct boot_info in setup.c.
+ */
+void slaunch_process_drtm_policy(const struct boot_info *bi);
+
 /*
  * This helper function is used to map memory using L2 page tables by aligning
  * mapped regions to 2MB. This way page allocator (which at this point isn't
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index c6ebdc3c6b..b62e23b29e 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -1397,6 +1397,13 @@ void asmlinkage __init noreturn __start_xen(void)
     if ( slaunch_active )
     {
         slaunch_map_mem_regions();
+
+        /*
+         * SLRT needs to be measured here because it is used by init_e820(), the
+         * rest is measured slightly below by slaunch_process_drtm_policy().
+         */
+        slaunch_measure_slrt();
+
         slaunch_reserve_mem_regions();
     }
 
@@ -1418,6 +1425,14 @@ void asmlinkage __init noreturn __start_xen(void)
     /* Create a temporary copy of the E820 map. */
     memcpy(&boot_e820, &e820, sizeof(e820));
 
+    /*
+     * Process all yet unmeasured DRTM entries after E820 initialization to not
+     * do this while memory is uncached (too slow). This must also happen before
+     * modules are relocated or used.
+     */
+    if ( slaunch_active )
+        slaunch_process_drtm_policy(bi);
+
     /* Early kexec reservation (explicit static start address). */
     nr_pages = 0;
     for ( i = 0; i < e820.nr_map; i++ )
diff --git a/xen/arch/x86/slaunch.c b/xen/arch/x86/slaunch.c
index 7b13b0a852..772971119a 100644
--- a/xen/arch/x86/slaunch.c
+++ b/xen/arch/x86/slaunch.c
@@ -9,9 +9,11 @@
 #include <xen/macros.h>
 #include <xen/mm.h>
 #include <xen/types.h>
+#include <asm/bootinfo.h>
 #include <asm/e820.h>
 #include <asm/intel_txt.h>
 #include <asm/page.h>
+#include <asm/processor.h>
 #include <asm/slaunch.h>
 #include <asm/tpm.h>
 
@@ -106,6 +108,217 @@ void __init slaunch_reserve_mem_regions(void)
     }
 }
 
+void __init slaunch_measure_slrt(void)
+{
+    struct slr_table *slrt = slaunch_get_slrt();
+
+    if ( slrt->revision == 1 )
+    {
+        /*
+         * In revision one of the SLRT, only platform-specific info table is
+         * measured.
+         */
+        struct slr_entry_intel_info tmp;
+        struct slr_entry_intel_info *entry;
+
+        entry = (struct slr_entry_intel_info *)
+            slr_next_entry_by_tag(slrt, NULL, SLR_ENTRY_INTEL_INFO);
+        if ( entry == NULL )
+            panic("SLRT is missing Intel-specific information!\n");
+
+        tmp = *entry;
+        tmp.boot_params_base = 0;
+        tmp.txt_heap = 0;
+
+        tpm_hash_extend(DRTM_LOC, DRTM_DATA_PCR, (uint8_t *)&tmp,
+                        sizeof(tmp), DLE_EVTYPE_SLAUNCH, NULL, 0);
+    }
+    else
+    {
+        /*
+         * slaunch_get_slrt() checks that the revision is valid, so we must not get
+         * here unless the code is wrong.
+         */
+        panic("Unhandled SLRT revision: %d!\n", slrt->revision);
+    }
+}
+
+static struct slr_entry_policy *__init slr_get_policy(struct slr_table *slrt)
+{
+    struct slr_entry_policy *policy;
+
+    policy = (struct slr_entry_policy *)
+        slr_next_entry_by_tag(slrt, NULL, SLR_ENTRY_DRTM_POLICY);
+    if (policy == NULL)
+        panic("SLRT is missing DRTM policy!\n");
+
+    /* XXX: are newer revisions allowed? */
+    if ( policy->revision != SLR_POLICY_REVISION )
+        panic("DRTM policy in SLRT is of unsupported revision: %#04x!\n",
+              slrt->revision);
+
+    return policy;
+}
+
+static void __init
+check_slrt_policy_entry(struct slr_policy_entry *policy_entry,
+                        int idx,
+                        struct slr_table *slrt)
+{
+    if ( policy_entry->entity_type != SLR_ET_SLRT )
+        panic("Expected DRTM policy entry #%d to describe SLRT, got %#04x!\n",
+              idx, policy_entry->entity_type);
+    if ( policy_entry->pcr != DRTM_DATA_PCR )
+        panic("SLRT was measured to PCR-%d instead of PCR-%d!\n", DRTM_DATA_PCR,
+              policy_entry->pcr);
+    if ( policy_entry->entity != (uint64_t)__pa(slrt) )
+        panic("SLRT address (%#08lx) differs from its DRTM entry (%#08lx)\n",
+              __pa(slrt), policy_entry->entity);
+}
+
+/* Returns number of policy entries that were already measured. */
+static unsigned int __init
+check_drtm_policy(struct slr_table *slrt,
+                  struct slr_entry_policy *policy,
+                  struct slr_policy_entry *policy_entry,
+                  const struct boot_info *bi)
+{
+    uint32_t i;
+    uint32_t num_mod_entries;
+
+    if ( policy->nr_entries < 2 )
+        panic("DRTM policy in SLRT contains less than 2 entries (%d)!\n",
+              policy->nr_entries);
+
+    /*
+     * MBI policy entry must be the first one, so that measuring order matches
+     * policy order.
+     */
+    if ( policy_entry[0].entity_type != SLR_ET_MULTIBOOT2_INFO )
+        panic("First entry of DRTM policy in SLRT is not MBI: %#04x!\n",
+              policy_entry[0].entity_type);
+    if ( policy_entry[0].pcr != DRTM_DATA_PCR )
+        panic("MBI was measured to %d instead of %d PCR!\n", DRTM_DATA_PCR,
+              policy_entry[0].pcr);
+
+    /* SLRT policy entry must be the second one. */
+    check_slrt_policy_entry(&policy_entry[1], 1, slrt);
+
+    for ( i = 0; i < bi->nr_modules; i++ )
+    {
+        uint16_t j;
+        const struct boot_module *mod = &bi->mods[i];
+
+        if (mod->relocated || mod->released)
+        {
+            panic("Multiboot module \"%s\" (at %d) was consumed before measurement\n",
+                  (const char *)__va(mod->cmdline_pa), i);
+        }
+
+        for ( j = 2; j < policy->nr_entries; j++ )
+        {
+            if ( policy_entry[j].entity_type != SLR_ET_MULTIBOOT2_MODULE )
+                continue;
+
+            if ( policy_entry[j].entity == mod->start &&
+                 policy_entry[j].size == mod->size )
+                break;
+        }
+
+        if ( j >= policy->nr_entries )
+        {
+            panic("Couldn't find Multiboot module \"%s\" (at %d) in DRTM of Secure Launch\n",
+                  (const char *)__va(mod->cmdline_pa), i);
+        }
+    }
+
+    num_mod_entries = 0;
+    for ( i = 0; i < policy->nr_entries; i++ )
+    {
+        if ( policy_entry[i].entity_type == SLR_ET_MULTIBOOT2_MODULE )
+            num_mod_entries++;
+    }
+
+    if ( bi->nr_modules != num_mod_entries )
+    {
+        panic("Unexpected number of Multiboot modules: %d instead of %d\n",
+              (int)bi->nr_modules, (int)num_mod_entries);
+    }
+
+    /*
+     * MBI was measured in tpm_extend_mbi().
+     * SLRT was measured in tpm_measure_slrt().
+     */
+    return 2;
+}
+
+void __init slaunch_process_drtm_policy(const struct boot_info *bi)
+{
+    struct slr_table *slrt;
+    struct slr_entry_policy *policy;
+    struct slr_policy_entry *policy_entry;
+    uint16_t i;
+    unsigned int measured;
+
+    slrt = slaunch_get_slrt();
+
+    policy = slr_get_policy(slrt);
+    policy_entry = (struct slr_policy_entry *)
+        ((uint8_t *)policy + sizeof(*policy));
+
+    measured = check_drtm_policy(slrt, policy, policy_entry, bi);
+    for ( i = 0; i < measured; i++ )
+        policy_entry[i].flags |= SLR_POLICY_FLAG_MEASURED;
+
+    for ( i = measured; i < policy->nr_entries; i++ )
+    {
+        int rc;
+        uint64_t start = policy_entry[i].entity;
+        uint64_t size = policy_entry[i].size;
+
+        /* No already measured entries are expected here. */
+        if ( policy_entry[i].flags & SLR_POLICY_FLAG_MEASURED )
+            panic("DRTM entry at %d was measured out of order!\n", i);
+
+        switch ( policy_entry[i].entity_type )
+        {
+        case SLR_ET_MULTIBOOT2_INFO:
+            panic("Duplicated MBI entry in DRTM of Secure Launch at %d\n", i);
+        case SLR_ET_SLRT:
+            panic("Duplicated SLRT entry in DRTM of Secure Launch at %d\n", i);
+
+        case SLR_ET_UNSPECIFIED:
+        case SLR_ET_BOOT_PARAMS:
+        case SLR_ET_SETUP_DATA:
+        case SLR_ET_CMDLINE:
+        case SLR_ET_UEFI_MEMMAP:
+        case SLR_ET_RAMDISK:
+        case SLR_ET_MULTIBOOT2_MODULE:
+        case SLR_ET_TXT_OS2MLE:
+            /* Measure this entry below. */
+            break;
+
+        case SLR_ET_UNUSED:
+            /* Skip this entry. */
+            continue;
+        }
+
+        if ( policy_entry[i].flags & SLR_POLICY_IMPLICIT_SIZE )
+            panic("Unexpected implicitly-sized DRTM entry of Secure Launch at %d (type %d, info: %s)\n",
+                  i, policy_entry[i].entity_type, policy_entry[i].evt_info);
+
+        rc = slaunch_map_l2(start, size);
+        BUG_ON(rc != 0);
+
+        tpm_hash_extend(DRTM_LOC, policy_entry[i].pcr, __va(start), size,
+                        DLE_EVTYPE_SLAUNCH, (uint8_t *)policy_entry[i].evt_info,
+                        strnlen(policy_entry[i].evt_info,
+                                TPM_EVENT_INFO_LENGTH));
+
+        policy_entry[i].flags |= SLR_POLICY_FLAG_MEASURED;
+    }
+}
+
 int __init slaunch_map_l2(unsigned long paddr, unsigned long size)
 {
     unsigned long aligned_paddr = paddr & ~((1ULL << L2_PAGETABLE_SHIFT) - 1);
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 22 15:11:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 15:11:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.962912.1354059 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7FHf-0001kL-RG; Tue, 22 Apr 2025 15:11:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 962912.1354059; Tue, 22 Apr 2025 15:11: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 1u7FHf-0001kE-Oe; Tue, 22 Apr 2025 15:11:39 +0000
Received: by outflank-mailman (input) for mailman id 962912;
 Tue, 22 Apr 2025 15:11: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=BiSK=XI=3mdeb.com=sergii.dmytruk@srs-se1.protection.inumbo.net>)
 id 1u7FDy-0008SP-56
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 15:07:50 +0000
Received: from 1.mo576.mail-out.ovh.net (1.mo576.mail-out.ovh.net
 [178.33.251.173]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 89296b44-1f8b-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 17:07:41 +0200 (CEST)
Received: from director5.ghost.mail-out.ovh.net (unknown [10.109.148.79])
 by mo576.mail-out.ovh.net (Postfix) with ESMTP id 4ZhlwD2hlvz2D5X
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 15:07:40 +0000 (UTC)
Received: from ghost-submission-5b5ff79f4f-fbc5b (unknown [10.110.113.124])
 by director5.ghost.mail-out.ovh.net (Postfix) with ESMTPS id C4B0F1FEB5;
 Tue, 22 Apr 2025 15:07:39 +0000 (UTC)
Received: from 3mdeb.com ([37.59.142.113])
 by ghost-submission-5b5ff79f4f-fbc5b with ESMTPSA
 id k7jPJruwB2hGLQgAnYYF5A
 (envelope-from <sergii.dmytruk@3mdeb.com>); Tue, 22 Apr 2025 15:07: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: 89296b44-1f8b-11f0-9ffb-bf95429c2676
Authentication-Results:garm.ovh; auth=pass (GARM-113S0071813dc17-e6f0-4e43-af1d-cc6a0fd55999,
                    7E508E014E7E7C169EB13C6E22C3C4EBF1F0FDD7) smtp.auth=sergii.dmytruk@3mdeb.com
X-OVh-ClientIp:176.111.181.178
From: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
To: xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	trenchboot-devel@googlegroups.com
Subject: [PATCH 13/21] x86/hvm: Check for VMX in SMX when slaunch active
Date: Tue, 22 Apr 2025 18:06:47 +0300
Message-ID: <c8d9306577b1f3bac28c2534c1b9196ff6b87639.1745172094.git.sergii.dmytruk@3mdeb.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <cover.1745172094.git.sergii.dmytruk@3mdeb.com>
References: <cover.1745172094.git.sergii.dmytruk@3mdeb.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Ovh-Tracer-Id: 12735053849832436892
X-VR-SPAMSTATE: OK
X-VR-SPAMSCORE: -100
X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvgeegtdehucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuqfggjfdpvefjgfevmfevgfenuceurghilhhouhhtmecuhedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurhephffvvefufffkofgjfhggtgfgsehtkeertdertdejnecuhfhrohhmpefuvghrghhiihcuffhmhihtrhhukhcuoehsvghrghhiihdrughmhihtrhhukhesfehmuggvsgdrtghomheqnecuggftrfgrthhtvghrnhepgeekffeiiedtveekhfdugeffveeigefgleegvdeghefftdetheefueeliedukedvnecukfhppeduvdejrddtrddtrddupddujeeirdduuddurddukedurddujeekpdefjedrheelrddugedvrdduudefnecuvehluhhsthgvrhfuihiivgepudenucfrrghrrghmpehinhgvthepuddvjedrtddrtddruddpmhgrihhlfhhrohhmpehsvghrghhiihdrughmhihtrhhukhesfehmuggvsgdrtghomhdpnhgspghrtghpthhtohepuddprhgtphhtthhopeigvghnqdguvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdpoffvtefjohhsthepmhhoheejiegmpdhmohguvgepshhmthhpohhuth
DKIM-Signature: a=rsa-sha256; bh=QnIKAND7PaaYiBZpdm/P7GTarwHPzvaPJ5XCEeh+pOQ=;
 c=relaxed/relaxed; d=3mdeb.com; h=From; s=ovhmo3617313-selector1;
 t=1745334460; v=1;
 b=Ob2XXwnh0Oj98vogXenJ8/EWMgUpQW3+GA5zPSWUc5+XX34PxAcT1hozWlaBYkR9pkRbl/7F
 LD3HA30FU/FaXL4cvLtEyTdtn/927e53xOMGzw3yYVzhRDE58doLrEUd/MWaUUoyNdtGI0jtNPp
 iWc5nYsM03154Sbost0vQ5U1cYGnnZMrDkma7AuWI6JBigzGmOoOFNEFKrIR2acpVM6pBRS+hxm
 FU3AUh+bqzncY7pzbEO5ZInWDq1Bbie4Rb9N9db8a0gOxgzifIZPqTKurpgd6QH22blQapgdvHp
 uB7J2RZ5EAG9dD5cqVgBFruCqcM8x++806RwMaRvY/aWQ==

From: Michał Żygowski <michal.zygowski@3mdeb.com>

Check whther IA32_FEATURE_CONTROL has the proper bits enabled to run
VMX in SMX when slaunch is active.

Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
---
 xen/arch/x86/hvm/vmx/vmcs.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/xen/arch/x86/hvm/vmx/vmcs.c b/xen/arch/x86/hvm/vmx/vmcs.c
index a44475ae15..ef38903775 100644
--- a/xen/arch/x86/hvm/vmx/vmcs.c
+++ b/xen/arch/x86/hvm/vmx/vmcs.c
@@ -30,6 +30,7 @@
 #include <asm/msr.h>
 #include <asm/processor.h>
 #include <asm/shadow.h>
+#include <asm/slaunch.h>
 #include <asm/spec_ctrl.h>
 #include <asm/tboot.h>
 #include <asm/xstate.h>
@@ -724,7 +725,7 @@ static int _vmx_cpu_up(bool bsp)
     bios_locked = !!(eax & IA32_FEATURE_CONTROL_LOCK);
     if ( bios_locked )
     {
-        if ( !(eax & (tboot_in_measured_env()
+        if ( !(eax & (tboot_in_measured_env() || slaunch_active
                       ? IA32_FEATURE_CONTROL_ENABLE_VMXON_INSIDE_SMX
                       : IA32_FEATURE_CONTROL_ENABLE_VMXON_OUTSIDE_SMX)) )
         {
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 22 15:11:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 15:11:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.962915.1354064 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7FHg-0001nl-4a; Tue, 22 Apr 2025 15:11:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 962915.1354064; Tue, 22 Apr 2025 15:11: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 1u7FHg-0001nV-0P; Tue, 22 Apr 2025 15:11:40 +0000
Received: by outflank-mailman (input) for mailman id 962915;
 Tue, 22 Apr 2025 15:11: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=BiSK=XI=3mdeb.com=sergii.dmytruk@srs-se1.protection.inumbo.net>)
 id 1u7FE6-0000lQ-6b
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 15:07:58 +0000
Received: from 9.mo575.mail-out.ovh.net (9.mo575.mail-out.ovh.net
 [46.105.78.111]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 926bccc5-1f8b-11f0-9eb0-5ba50f476ded;
 Tue, 22 Apr 2025 17:07:57 +0200 (CEST)
Received: from director7.ghost.mail-out.ovh.net (unknown [10.109.148.164])
 by mo575.mail-out.ovh.net (Postfix) with ESMTP id 4ZhlwX1w9Bz248Y
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 15:07:56 +0000 (UTC)
Received: from ghost-submission-5b5ff79f4f-nms5s (unknown [10.110.178.134])
 by director7.ghost.mail-out.ovh.net (Postfix) with ESMTPS id B3A101FEAA;
 Tue, 22 Apr 2025 15:07:55 +0000 (UTC)
Received: from 3mdeb.com ([37.59.142.102])
 by ghost-submission-5b5ff79f4f-nms5s with ESMTPSA
 id i36RIsuwB2hUKwEAU17rnA
 (envelope-from <sergii.dmytruk@3mdeb.com>); Tue, 22 Apr 2025 15:07: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: 926bccc5-1f8b-11f0-9eb0-5ba50f476ded
Authentication-Results:garm.ovh; auth=pass (GARM-102R004575aa24b-0849-480e-bb35-126f49a28834,
                    7E508E014E7E7C169EB13C6E22C3C4EBF1F0FDD7) smtp.auth=sergii.dmytruk@3mdeb.com
X-OVh-ClientIp:176.111.181.178
From: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
To: xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	trenchboot-devel@googlegroups.com
Subject: [PATCH 19/21] arch/x86: support slaunch with AMD SKINIT
Date: Tue, 22 Apr 2025 18:06:53 +0300
Message-ID: <b576150b342cb94f412cca9830c3f5549a2d071c.1745172094.git.sergii.dmytruk@3mdeb.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <cover.1745172094.git.sergii.dmytruk@3mdeb.com>
References: <cover.1745172094.git.sergii.dmytruk@3mdeb.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Ovh-Tracer-Id: 12739557450121852060
X-VR-SPAMSTATE: OK
X-VR-SPAMSCORE: -100
X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvgeegtdehucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuqfggjfdpvefjgfevmfevgfenuceurghilhhouhhtmecuhedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurhephffvvefufffkofgjfhgggfestdekredtredttdenucfhrhhomhepufgvrhhgihhiucffmhihthhruhhkuceoshgvrhhgihhirdgumhihthhruhhkseefmhguvggsrdgtohhmqeenucggtffrrghtthgvrhhnpefhheefheduieelieekfffgfffgfedutdevleevvdfhfffgledvgfdtuddtheefieenucfkphepuddvjedrtddrtddruddpudejiedrudduuddrudekuddrudejkedpfeejrdehledrudegvddruddtvdenucevlhhushhtvghrufhiiigvpeegnecurfgrrhgrmhepihhnvghtpeduvdejrddtrddtrddupdhmrghilhhfrhhomhepshgvrhhgihhirdgumhihthhruhhkseefmhguvggsrdgtohhmpdhnsggprhgtphhtthhopedupdhrtghpthhtohepgigvnhdquggvvhgvlheslhhishhtshdrgigvnhhprhhojhgvtghtrdhorhhgpdfovfetjfhoshhtpehmohehjeehmgdpmhhouggvpehsmhhtphhouhht
DKIM-Signature: a=rsa-sha256; bh=dN47+FKasGXf+xZ5Qn1PeaSOV8B25eq4lyTXWs7/Yrk=;
 c=relaxed/relaxed; d=3mdeb.com; h=From; s=ovhmo3617313-selector1;
 t=1745334476; v=1;
 b=khrQcXRWhwYxdTb2OD+/e5SM8HlR7Mk9318iEEMp4LN9x9x8kFkt5TLQxp6P1CTeryGqbp/f
 91NZjPvj2Oueo+5aXYEVlFp6mMDhNF5r1BtQZ9prX5uuluNa8RcG5elD3iKUdd1m5HyjEhYSbsL
 cCero6htrSihhycrUUvLkchwYW84IFkjlX1Qg6P0iexlpkjQPkmGWSbDbQnSW34w3e2CBa5G2iO
 CB3GsCm7f65eQ6vmfN9rHalgMLDRjJ3DIs2SZQo3CxGt9b5S35vM+mqhKZ9pzQEHtwVib0Z6wZt
 LxrAYWHUIMyweXYZgHQ1QOXxHVF6opXNJvKgLt64ItR1w==

This mostly involves not running Intel-specific code when on AMD.

There are only a few new AMD-specific implementation details:
 - finding SLB start and size and then mapping and reserving it in e820
 - managing offset for adding the next TPM log entry (TXT-compatible
   data prepared by SKL is stored inside of vendor data field within TCG
   header)

Signed-off-by: Krystian Hebel <krystian.hebel@3mdeb.com>
Signed-off-by: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
---
 xen/arch/x86/e820.c    |  2 +-
 xen/arch/x86/slaunch.c | 90 ++++++++++++++++++++++++++++++++++--------
 xen/arch/x86/tpm.c     | 68 ++++++++++++++++++++++++++++++-
 3 files changed, 141 insertions(+), 19 deletions(-)

diff --git a/xen/arch/x86/e820.c b/xen/arch/x86/e820.c
index d105d1918a..177c428883 100644
--- a/xen/arch/x86/e820.c
+++ b/xen/arch/x86/e820.c
@@ -444,7 +444,7 @@ static uint64_t __init mtrr_top_of_ram(void)
     ASSERT(paddr_bits);
     addr_mask = ((1ULL << paddr_bits) - 1) & PAGE_MASK;
 
-    if ( slaunch_active )
+    if ( slaunch_active && boot_cpu_data.x86_vendor == X86_VENDOR_INTEL )
         txt_restore_mtrrs(e820_verbose);
 
     rdmsrl(MSR_MTRRcap, mtrr_cap);
diff --git a/xen/arch/x86/slaunch.c b/xen/arch/x86/slaunch.c
index 772971119a..51a488a8e0 100644
--- a/xen/arch/x86/slaunch.c
+++ b/xen/arch/x86/slaunch.c
@@ -17,6 +17,10 @@
 #include <asm/slaunch.h>
 #include <asm/tpm.h>
 
+/* SLB is 64k, 64k-aligned */
+#define SKINIT_SLB_SIZE   0x10000
+#define SKINIT_SLB_ALIGN  0x10000
+
 /*
  * These variables are assigned to by the code near Xen's entry point.
  * slaunch_slrt is not declared in slaunch.h to facilitate accessing the
@@ -38,6 +42,8 @@ struct slr_table *__init slaunch_get_slrt(void)
 
     if (slrt == NULL) {
         int rc;
+        bool intel_cpu = (boot_cpu_data.x86_vendor == X86_VENDOR_INTEL);
+        uint16_t slrt_architecture = intel_cpu ? SLR_INTEL_TXT : SLR_AMD_SKINIT;
 
         slrt = __va(slaunch_slrt);
 
@@ -49,9 +55,9 @@ struct slr_table *__init slaunch_get_slrt(void)
         /* XXX: are newer revisions allowed? */
         if ( slrt->revision != SLR_TABLE_REVISION )
             panic("SLRT is of unsupported revision: %#04x!\n", slrt->revision);
-        if ( slrt->architecture != SLR_INTEL_TXT )
-            panic("SLRT is for unexpected architecture: %#04x!\n",
-                  slrt->architecture);
+        if ( slrt->architecture != slrt_architecture )
+            panic("SLRT is for unexpected architecture: %#04x != %#04x!\n",
+                  slrt->architecture, slrt_architecture);
         if ( slrt->size > slrt->max_size )
             panic("SLRT is larger than its max size: %#08x > %#08x!\n",
                   slrt->size, slrt->max_size);
@@ -66,6 +72,23 @@ struct slr_table *__init slaunch_get_slrt(void)
     return slrt;
 }
 
+static uint32_t __init get_slb_start(void)
+{
+    /*
+     * The runtime computation relies on size being a power of 2 and equal to
+     * alignment. Make sure these assumptions hold.
+     */
+    BUILD_BUG_ON(SKINIT_SLB_SIZE != SKINIT_SLB_ALIGN);
+    BUILD_BUG_ON(SKINIT_SLB_SIZE == 0);
+    BUILD_BUG_ON((SKINIT_SLB_SIZE & (SKINIT_SLB_SIZE - 1)) != 0);
+
+    /*
+     * Rounding any address within SLB down to alignment gives SLB base and
+     * SLRT is inside SLB on AMD.
+     */
+    return slaunch_slrt & ~(SKINIT_SLB_SIZE - 1);
+}
+
 void __init slaunch_map_mem_regions(void)
 {
     int rc;
@@ -76,7 +99,10 @@ void __init slaunch_map_mem_regions(void)
     BUG_ON(rc != 0);
 
     /* Vendor-specific part. */
-    txt_map_mem_regions();
+    if ( boot_cpu_data.x86_vendor == X86_VENDOR_INTEL )
+        txt_map_mem_regions();
+    else if ( boot_cpu_data.x86_vendor == X86_VENDOR_AMD )
+        slaunch_map_l2(get_slb_start(), SKINIT_SLB_SIZE);
 
     find_evt_log(slaunch_get_slrt(), &evt_log_addr, &evt_log_size);
     if ( evt_log_addr != NULL )
@@ -94,7 +120,18 @@ void __init slaunch_reserve_mem_regions(void)
     uint32_t evt_log_size;
 
     /* Vendor-specific part. */
-    txt_reserve_mem_regions();
+    if ( boot_cpu_data.x86_vendor == X86_VENDOR_INTEL )
+    {
+        txt_reserve_mem_regions();
+    }
+    else if ( boot_cpu_data.x86_vendor == X86_VENDOR_AMD )
+    {
+        uint64_t slb_start = get_slb_start();
+        uint64_t slb_end = slb_start + SKINIT_SLB_SIZE;
+        printk("SLAUNCH: reserving SLB (%#lx - %#lx)\n", slb_start, slb_end);
+        rc = reserve_e820_ram(&e820_raw, slb_start, slb_end);
+        BUG_ON(rc == 0);
+    }
 
     find_evt_log(slaunch_get_slrt(), &evt_log_addr, &evt_log_size);
     if ( evt_log_addr != NULL )
@@ -118,20 +155,41 @@ void __init slaunch_measure_slrt(void)
          * In revision one of the SLRT, only platform-specific info table is
          * measured.
          */
-        struct slr_entry_intel_info tmp;
-        struct slr_entry_intel_info *entry;
+        if ( boot_cpu_data.x86_vendor == X86_VENDOR_INTEL )
+        {
+            struct slr_entry_intel_info tmp;
+            struct slr_entry_intel_info *entry;
+
+            entry = (struct slr_entry_intel_info *)
+                slr_next_entry_by_tag(slrt, NULL, SLR_ENTRY_INTEL_INFO);
+            if ( entry == NULL )
+                panic("SLRT is missing Intel-specific information!\n");
 
-        entry = (struct slr_entry_intel_info *)
-            slr_next_entry_by_tag(slrt, NULL, SLR_ENTRY_INTEL_INFO);
-        if ( entry == NULL )
-            panic("SLRT is missing Intel-specific information!\n");
+            tmp = *entry;
+            tmp.boot_params_base = 0;
+            tmp.txt_heap = 0;
 
-        tmp = *entry;
-        tmp.boot_params_base = 0;
-        tmp.txt_heap = 0;
+            tpm_hash_extend(DRTM_LOC, DRTM_DATA_PCR, (uint8_t *)&tmp,
+                            sizeof(tmp), DLE_EVTYPE_SLAUNCH, NULL, 0);
+        }
+        else if ( boot_cpu_data.x86_vendor == X86_VENDOR_AMD )
+        {
+            struct slr_entry_amd_info tmp;
+            struct slr_entry_amd_info *entry;
+
+            entry = (struct slr_entry_amd_info *)
+                slr_next_entry_by_tag(slrt, NULL, SLR_ENTRY_AMD_INFO);
+            if ( entry == NULL )
+                panic("SLRT is missing AMD-specific information!\n");
 
-        tpm_hash_extend(DRTM_LOC, DRTM_DATA_PCR, (uint8_t *)&tmp,
-                        sizeof(tmp), DLE_EVTYPE_SLAUNCH, NULL, 0);
+            tmp = *entry;
+            tmp.next = 0;
+            tmp.slrt_base = 0;
+            tmp.boot_params_base = 0;
+
+            tpm_hash_extend(DRTM_LOC, DRTM_DATA_PCR, (uint8_t *)&tmp,
+                            sizeof(tmp), DLE_EVTYPE_SLAUNCH, NULL, 0);
+        }
     }
     else
     {
diff --git a/xen/arch/x86/tpm.c b/xen/arch/x86/tpm.c
index c51bd9b496..8562296681 100644
--- a/xen/arch/x86/tpm.c
+++ b/xen/arch/x86/tpm.c
@@ -10,6 +10,7 @@
 #include <asm/intel_txt.h>
 #include <asm/slaunch.h>
 #include <asm/tpm.h>
+#include <asm/x86-vendors.h>
 
 #ifdef __EARLY_SLAUNCH__
 
@@ -51,11 +52,31 @@ void *memcpy(void *dest, const void *src, size_t n)
     return dest;
 }
 
+static bool is_amd_cpu(void)
+{
+    /*
+     * asm/processor.h can't be included in early code, which means neither
+     * cpuid() function nor boot_cpu_data can be used here.
+     */
+    uint32_t eax, ebx, ecx, edx;
+    asm volatile ( "cpuid"
+          : "=a" (eax), "=b" (ebx), "=c" (ecx), "=d" (edx)
+          : "0" (0), "c" (0) );
+    return ebx == X86_VENDOR_AMD_EBX
+        && ecx == X86_VENDOR_AMD_ECX
+        && edx == X86_VENDOR_AMD_EDX;
+}
+
 #else   /* __EARLY_SLAUNCH__ */
 
 #include <xen/mm.h>
 #include <xen/pfn.h>
 
+static bool is_amd_cpu(void)
+{
+    return boot_cpu_data.x86_vendor == X86_VENDOR_AMD;
+}
+
 #endif  /* __EARLY_SLAUNCH__ */
 
 #define TPM_LOC_REG(loc, reg)   (0x1000 * (loc) + (reg))
@@ -242,6 +263,21 @@ struct TPM12_PCREvent {
     uint8_t Data[];
 };
 
+struct tpm1_spec_id_event {
+    uint32_t pcrIndex;
+    uint32_t eventType;
+    uint8_t digest[20];
+    uint32_t eventSize;
+    uint8_t signature[16];
+    uint32_t platformClass;
+    uint8_t specVersionMinor;
+    uint8_t specVersionMajor;
+    uint8_t specErrata;
+    uint8_t uintnSize;
+    uint8_t vendorInfoSize;
+    uint8_t vendorInfo[0];  /* variable number of members */
+} __packed;
+
 struct txt_ev_log_container_12 {
     char        Signature[20];      /* "TXT Event Container", null-terminated */
     uint8_t     Reserved[12];
@@ -385,6 +421,16 @@ static void *create_log_event12(struct txt_ev_log_container_12 *evt_log,
 {
     struct TPM12_PCREvent *new_entry;
 
+    if ( is_amd_cpu() )
+    {
+        /*
+         * On AMD, TXT-compatible structure is stored as vendor data of
+         * TCG-defined event log header.
+         */
+        struct tpm1_spec_id_event *spec_id = (void *)evt_log;
+        evt_log = (struct txt_ev_log_container_12 *)&spec_id->vendorInfo[0];
+    }
+
     new_entry = (void *)(((uint8_t *)evt_log) + evt_log->NextEventOffset);
 
     /*
@@ -833,11 +879,29 @@ static uint32_t tpm2_hash_extend(unsigned loc, const uint8_t *buf,
 
 #endif /* __EARLY_SLAUNCH__ */
 
-static struct heap_event_log_pointer_element2_1 *find_evt_log_ext_data(void)
+static struct heap_event_log_pointer_element2_1 *
+find_evt_log_ext_data(struct tpm2_spec_id_event *evt_log)
 {
     struct txt_os_sinit_data *os_sinit;
     struct txt_ext_data_element *ext_data;
 
+    if ( is_amd_cpu() )
+    {
+        /*
+         * Event log pointer is defined by TXT specification, but
+         * secure-kernel-loader provides a compatible structure in vendor data
+         * of the log.
+         */
+        const uint8_t *data_size =
+            (void *)&evt_log->digestSizes[evt_log->digestCount];
+
+        if ( *data_size != sizeof(struct heap_event_log_pointer_element2_1) )
+            return NULL;
+
+        /* Vendor data directly follows one-byte size. */
+        return (void *)(data_size + 1);
+    }
+
     os_sinit = txt_os_sinit_data_start(__va(read_txt_reg(TXTCR_HEAP_BASE)));
     ext_data = (void *)((uint8_t *)os_sinit + sizeof(*os_sinit));
 
@@ -871,7 +935,7 @@ create_log_event20(struct tpm2_spec_id_event *evt_log, uint32_t evt_log_size,
     unsigned i;
     uint8_t *p;
 
-    log_ext_data = find_evt_log_ext_data();
+    log_ext_data = find_evt_log_ext_data(evt_log);
     if ( log_ext_data == NULL )
         return log_hashes;
 
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 22 15:11:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 15:11:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.962918.1354073 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7FHg-00021b-Pu; Tue, 22 Apr 2025 15:11:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 962918.1354073; Tue, 22 Apr 2025 15:11: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 1u7FHg-0001xL-I0; Tue, 22 Apr 2025 15:11:40 +0000
Received: by outflank-mailman (input) for mailman id 962918;
 Tue, 22 Apr 2025 15:11: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=BiSK=XI=3mdeb.com=sergii.dmytruk@srs-se1.protection.inumbo.net>)
 id 1u7FDz-0008SP-5M
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 15:07:51 +0000
Received: from 3.mo576.mail-out.ovh.net (3.mo576.mail-out.ovh.net
 [188.165.52.203]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8ae939b3-1f8b-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 17:07:44 +0200 (CEST)
Received: from director3.ghost.mail-out.ovh.net (unknown [10.109.148.7])
 by mo576.mail-out.ovh.net (Postfix) with ESMTP id 4ZhlwH3HfPz2DCl
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 15:07:43 +0000 (UTC)
Received: from ghost-submission-5b5ff79f4f-mpjxb (unknown [10.110.118.78])
 by director3.ghost.mail-out.ovh.net (Postfix) with ESMTPS id C25F31FD7E;
 Tue, 22 Apr 2025 15:07:42 +0000 (UTC)
Received: from 3mdeb.com ([37.59.142.114])
 by ghost-submission-5b5ff79f4f-mpjxb with ESMTPSA
 id vJE/H76wB2jlHAEAnyCgnQ
 (envelope-from <sergii.dmytruk@3mdeb.com>); Tue, 22 Apr 2025 15:07: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: 8ae939b3-1f8b-11f0-9ffb-bf95429c2676
Authentication-Results:garm.ovh; auth=pass (GARM-114S0085759b711-6f7c-440a-b72e-c55f80fdac69,
                    7E508E014E7E7C169EB13C6E22C3C4EBF1F0FDD7) smtp.auth=sergii.dmytruk@3mdeb.com
X-OVh-ClientIp:176.111.181.178
From: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
To: xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	trenchboot-devel@googlegroups.com
Subject: [PATCH 14/21] x86/tpm.c: implement event log for TPM2.0
Date: Tue, 22 Apr 2025 18:06:48 +0300
Message-ID: <eb749d601b6b63b38863e09fc200e31f11691667.1745172094.git.sergii.dmytruk@3mdeb.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <cover.1745172094.git.sergii.dmytruk@3mdeb.com>
References: <cover.1745172094.git.sergii.dmytruk@3mdeb.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Ovh-Tracer-Id: 12735898272645887132
X-VR-SPAMSTATE: OK
X-VR-SPAMSCORE: -100
X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvgeegtdehucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuqfggjfdpvefjgfevmfevgfenuceurghilhhouhhtmecuhedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurhephffvvefufffkofgjfhgggfestdekredtredttdenucfhrhhomhepufgvrhhgihhiucffmhihthhruhhkuceoshgvrhhgihhirdgumhihthhruhhkseefmhguvggsrdgtohhmqeenucggtffrrghtthgvrhhnpefhheefheduieelieekfffgfffgfedutdevleevvdfhfffgledvgfdtuddtheefieenucfkphepuddvjedrtddrtddruddpudejiedrudduuddrudekuddrudejkedpfeejrdehledrudegvddruddugeenucevlhhushhtvghrufhiiigvpedvnecurfgrrhgrmhepihhnvghtpeduvdejrddtrddtrddupdhmrghilhhfrhhomhepshgvrhhgihhirdgumhihthhruhhkseefmhguvggsrdgtohhmpdhnsggprhgtphhtthhopedupdhrtghpthhtohepgigvnhdquggvvhgvlheslhhishhtshdrgigvnhhprhhojhgvtghtrdhorhhgpdfovfetjfhoshhtpehmohehjeeimgdpmhhouggvpehsmhhtphhouhht
DKIM-Signature: a=rsa-sha256; bh=T61jHKWxEyBmDecdf456UHbRJDcNzp3Tqc6ErxnPgMo=;
 c=relaxed/relaxed; d=3mdeb.com; h=From; s=ovhmo3617313-selector1;
 t=1745334463; v=1;
 b=aN8ECJA8xJD3Use9Teyf+m5QUeSti8p+rLeG/DxchcjoSc/Fqsb6hzAve8xRbh3kM290gR0b
 qRXbQ7ZtofuiIYUugXabxt/TcNLvigGdgtAHuNP/p3+WuIdjKvebiWDNy4CDxOsCXu3eAJUHAlE
 hvquB8EfKSpwpf99Vuco+3S9soUgi5okX0hzlL/c0/duuIL0I2Kl4JmFVPcburpeYvj8zWQHz2d
 4fdm1cTzhLojIWCauMjNjfBYJrgsQm3mp6WFbD1V1a/Xs+vSryVNwSjI+2V1q6ZQ3ABDHOC1vJW
 HasGdAfwJ4iI+CUelvOrxSKMdMh+PknArdy95rVcsIv/Q==

Signed-off-by: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
---
 xen/arch/x86/include/asm/intel_txt.h |  33 ++++++
 xen/arch/x86/tpm.c                   | 169 ++++++++++++++++++++++-----
 2 files changed, 175 insertions(+), 27 deletions(-)

diff --git a/xen/arch/x86/include/asm/intel_txt.h b/xen/arch/x86/include/asm/intel_txt.h
index 9083260cf9..0a36ef66d1 100644
--- a/xen/arch/x86/include/asm/intel_txt.h
+++ b/xen/arch/x86/include/asm/intel_txt.h
@@ -199,6 +199,39 @@ struct txt_sinit_mle_data {
     /* Ext Data Elements */
 } __packed;
 
+/* Types of extended data. */
+#define TXT_HEAP_EXTDATA_TYPE_END                    0
+#define TXT_HEAP_EXTDATA_TYPE_BIOS_SPEC_VER          1
+#define TXT_HEAP_EXTDATA_TYPE_ACM                    2
+#define TXT_HEAP_EXTDATA_TYPE_STM                    3
+#define TXT_HEAP_EXTDATA_TYPE_CUSTOM                 4
+#define TXT_HEAP_EXTDATA_TYPE_MADT                   6
+#define TXT_HEAP_EXTDATA_TYPE_EVENT_LOG_POINTER2_1   8
+#define TXT_HEAP_EXTDATA_TYPE_MCFG                   9
+#define TXT_HEAP_EXTDATA_TYPE_TPR_REQ               13
+#define TXT_HEAP_EXTDATA_TYPE_DTPR                  14
+#define TXT_HEAP_EXTDATA_TYPE_CEDT                  15
+
+/*
+ * Self-describing data structure that is used for extensions to TXT heap
+ * tables.
+ */
+struct txt_ext_data_element {
+    uint32_t type;   /* One of TXT_HEAP_EXTDATA_TYPE_*. */
+    uint32_t size;
+    uint8_t data[0]; /* size bytes. */
+} __packed;
+
+/*
+ * Extended data describing TPM 2.0 log.
+ */
+struct heap_event_log_pointer_element2_1 {
+    uint64_t physical_address;
+    uint32_t allocated_event_container_size;
+    uint32_t first_record_offset;
+    uint32_t next_record_offset;
+} __packed;
+
 /*
  * Functions to extract data from the Intel TXT Heap Memory. The layout
  * of the heap is as follows:
diff --git a/xen/arch/x86/tpm.c b/xen/arch/x86/tpm.c
index 9d20cff94e..c51bd9b496 100644
--- a/xen/arch/x86/tpm.c
+++ b/xen/arch/x86/tpm.c
@@ -537,6 +537,44 @@ struct tpm2_log_hashes {
     struct tpm2_log_hash hashes[MAX_HASH_COUNT];
 };
 
+struct tpm2_pcr_event_header {
+    uint32_t pcrIndex;
+    uint32_t eventType;
+    uint32_t digestCount;
+    uint8_t digests[0];
+    /*
+     * Each hash is represented as:
+     * struct {
+     *     uint16_t hashAlg;
+     *     uint8_t hash[size of hashAlg];
+     * };
+     */
+    /* uint32_t eventSize; */
+    /* uint8_t event[0]; */
+} __packed;
+
+struct tpm2_digest_sizes {
+    uint16_t algId;
+    uint16_t digestSize;
+} __packed;
+
+struct tpm2_spec_id_event {
+    uint32_t pcrIndex;
+    uint32_t eventType;
+    uint8_t digest[20];
+    uint32_t eventSize;
+    uint8_t signature[16];
+    uint32_t platformClass;
+    uint8_t specVersionMinor;
+    uint8_t specVersionMajor;
+    uint8_t specErrata;
+    uint8_t uintnSize;
+    uint32_t digestCount;
+    struct tpm2_digest_sizes digestSizes[0]; /* variable number of members */
+    /* uint8_t vendorInfoSize; */
+    /* uint8_t vendorInfo[vendorInfoSize]; */
+} __packed;
+
 #ifdef __EARLY_SLAUNCH__
 
 union tpm2_cmd_rsp {
@@ -770,19 +808,11 @@ static uint32_t tpm2_hash_extend(unsigned loc, const uint8_t *buf,
         }
 
         if ( hash->alg == TPM_ALG_SHA1 )
-        {
             sha1_hash(buf, size, hash->data);
-        }
         else if ( hash->alg == TPM_ALG_SHA256 )
-        {
             sha256_hash(buf, size, hash->data);
-        }
         else
-        {
-            /* This is called "OneDigest" in TXT Software Development Guide. */
-            memset(hash->data, 0, size);
-            hash->data[0] = 1;
-        }
+            /* create_log_event20() took care of initializing the digest. */;
 
         if ( supported_hashes.count == MAX_HASH_COUNT )
         {
@@ -803,6 +833,102 @@ static uint32_t tpm2_hash_extend(unsigned loc, const uint8_t *buf,
 
 #endif /* __EARLY_SLAUNCH__ */
 
+static struct heap_event_log_pointer_element2_1 *find_evt_log_ext_data(void)
+{
+    struct txt_os_sinit_data *os_sinit;
+    struct txt_ext_data_element *ext_data;
+
+    os_sinit = txt_os_sinit_data_start(__va(read_txt_reg(TXTCR_HEAP_BASE)));
+    ext_data = (void *)((uint8_t *)os_sinit + sizeof(*os_sinit));
+
+    /*
+     * Find TXT_HEAP_EXTDATA_TYPE_EVENT_LOG_POINTER2_1 which is necessary to
+     * know where to put the next entry.
+     */
+    while ( ext_data->type != TXT_HEAP_EXTDATA_TYPE_END )
+    {
+        if ( ext_data->type == TXT_HEAP_EXTDATA_TYPE_EVENT_LOG_POINTER2_1 )
+            break;
+        ext_data = (void *)&ext_data->data[ext_data->size];
+    }
+
+    if ( ext_data->type == TXT_HEAP_EXTDATA_TYPE_END )
+        return NULL;
+
+    return (void *)&ext_data->data[0];
+}
+
+static struct tpm2_log_hashes
+create_log_event20(struct tpm2_spec_id_event *evt_log, uint32_t evt_log_size,
+                   uint32_t pcr, uint32_t type, const uint8_t *data,
+                   unsigned data_size)
+{
+    struct tpm2_log_hashes log_hashes = {0};
+
+    struct heap_event_log_pointer_element2_1 *log_ext_data;
+    struct tpm2_pcr_event_header *new_entry;
+    uint32_t entry_size;
+    unsigned i;
+    uint8_t *p;
+
+    log_ext_data = find_evt_log_ext_data();
+    if ( log_ext_data == NULL )
+        return log_hashes;
+
+    entry_size = sizeof(*new_entry);
+    for ( i = 0; i < evt_log->digestCount; ++i )
+    {
+        entry_size += sizeof(uint16_t); /* hash type */
+        entry_size += evt_log->digestSizes[i].digestSize;
+    }
+    entry_size += sizeof(uint32_t); /* data size field */
+    entry_size += data_size;
+
+    /*
+     * Check if there is enough space left for new entry.
+     * Note: it is possible to introduce a gap in event log if entry with big
+     * data_size is followed by another entry with smaller data. Maybe we should
+     * cap the event log size in such case?
+     */
+    if ( log_ext_data->next_record_offset + entry_size > evt_log_size )
+        return log_hashes;
+
+    new_entry = (void *)((uint8_t *)evt_log + log_ext_data->next_record_offset);
+    log_ext_data->next_record_offset += entry_size;
+
+    new_entry->pcrIndex = pcr;
+    new_entry->eventType = type;
+    new_entry->digestCount = evt_log->digestCount;
+
+    p = &new_entry->digests[0];
+    for ( i = 0; i < evt_log->digestCount; ++i )
+    {
+        uint16_t alg = evt_log->digestSizes[i].algId;
+        uint16_t size = evt_log->digestSizes[i].digestSize;
+
+        *(uint16_t *)p = alg;
+        p += sizeof(uint16_t);
+
+        log_hashes.hashes[i].alg = alg;
+        log_hashes.hashes[i].size = size;
+        log_hashes.hashes[i].data = p;
+        p += size;
+
+        /* This is called "OneDigest" in TXT Software Development Guide. */
+        memset(log_hashes.hashes[i].data, 0, size);
+        log_hashes.hashes[i].data[0] = 1;
+    }
+    log_hashes.count = evt_log->digestCount;
+
+    *(uint32_t *)p = data_size;
+    p += sizeof(uint32_t);
+
+    if ( data && data_size > 0 )
+        memcpy(p, data, data_size);
+
+    return log_hashes;
+}
+
 /************************** end of TPM2.0 specific ****************************/
 
 void tpm_hash_extend(unsigned loc, unsigned pcr, const uint8_t *buf,
@@ -833,26 +959,15 @@ void tpm_hash_extend(unsigned loc, unsigned pcr, const uint8_t *buf,
             printk(XENLOG_ERR "Extending PCR%u failed\n", pcr);
 #endif
         }
-    } else {
-        uint8_t sha1_digest[SHA1_DIGEST_SIZE];
-        uint8_t sha256_digest[SHA256_DIGEST_SIZE];
+    }
+    else
+    {
         uint32_t rc;
 
-        struct tpm2_log_hashes log_hashes = {
-            .count = 2,
-            .hashes = {
-                {
-                    .alg = TPM_ALG_SHA1,
-                    .size = SHA1_DIGEST_SIZE,
-                    .data = sha1_digest,
-                },
-                {
-                    .alg = TPM_ALG_SHA256,
-                    .size = SHA256_DIGEST_SIZE,
-                    .data = sha256_digest,
-                },
-            },
-        };
+        struct tpm2_spec_id_event *evt_log = evt_log_addr;
+        struct tpm2_log_hashes log_hashes =
+            create_log_event20(evt_log, evt_log_size, pcr, type, log_data,
+                               log_data_size);
 
         rc = tpm2_hash_extend(loc, buf, size, pcr, &log_hashes);
         if ( rc != 0 )
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 22 15:11:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 15:11:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.962924.1354089 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7FHn-0002q3-VJ; Tue, 22 Apr 2025 15:11:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 962924.1354089; Tue, 22 Apr 2025 15:11: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 1u7FHn-0002ps-Qo; Tue, 22 Apr 2025 15:11:47 +0000
Received: by outflank-mailman (input) for mailman id 962924;
 Tue, 22 Apr 2025 15:11: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=BiSK=XI=3mdeb.com=sergii.dmytruk@srs-se1.protection.inumbo.net>)
 id 1u7FDo-0008SP-2z
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 15:07:40 +0000
Received: from 3.mo550.mail-out.ovh.net (3.mo550.mail-out.ovh.net
 [46.105.60.232]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 85d7467e-1f8b-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 17:07:35 +0200 (CEST)
Received: from director5.ghost.mail-out.ovh.net (unknown [10.108.17.28])
 by mo550.mail-out.ovh.net (Postfix) with ESMTP id 4Zhlw673wCz1SH0
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 15:07:34 +0000 (UTC)
Received: from ghost-submission-5b5ff79f4f-6tjtj (unknown [10.110.113.175])
 by director5.ghost.mail-out.ovh.net (Postfix) with ESMTPS id 3C0EF1FE9C;
 Tue, 22 Apr 2025 15:07:34 +0000 (UTC)
Received: from 3mdeb.com ([37.59.142.104])
 by ghost-submission-5b5ff79f4f-6tjtj with ESMTPSA
 id ZjdlOrWwB2g1AQEAHtJGkA
 (envelope-from <sergii.dmytruk@3mdeb.com>); Tue, 22 Apr 2025 15: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: 85d7467e-1f8b-11f0-9ffb-bf95429c2676
Authentication-Results:garm.ovh; auth=pass (GARM-104R00566ba59df-84da-4b2d-9200-fbaad77c07ca,
                    7E508E014E7E7C169EB13C6E22C3C4EBF1F0FDD7) smtp.auth=sergii.dmytruk@3mdeb.com
X-OVh-ClientIp:176.111.181.178
From: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
To: xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	trenchboot-devel@googlegroups.com
Subject: [PATCH 11/21] x86/tpm.c: code for early hashing and extending PCRs (for TPM1.2)
Date: Tue, 22 Apr 2025 18:06:45 +0300
Message-ID: <582d247c62748d37ae4982bdfb250b80051fdc8c.1745172094.git.sergii.dmytruk@3mdeb.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <cover.1745172094.git.sergii.dmytruk@3mdeb.com>
References: <cover.1745172094.git.sergii.dmytruk@3mdeb.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Ovh-Tracer-Id: 12733364997088064668
X-VR-SPAMSTATE: OK
X-VR-SPAMSCORE: -100
X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvgeegtdehucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuqfggjfdpvefjgfevmfevgfenuceurghilhhouhhtmecuhedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurhephffvvefufffkofgjfhgggfestdekredtredttdenucfhrhhomhepufgvrhhgihhiucffmhihthhruhhkuceoshgvrhhgihhirdgumhihthhruhhkseefmhguvggsrdgtohhmqeenucggtffrrghtthgvrhhnpeffjefgudevkeetudegueeihfdthfejgfeileekuefggeegtdegveehfeehfeefueenucffohhmrghinhepsggrshgvrdhmrghppdhhvggrugdrshgsnecukfhppeduvdejrddtrddtrddupddujeeirdduuddurddukedurddujeekpdefjedrheelrddugedvrddutdegnecuvehluhhsthgvrhfuihiivgepudenucfrrghrrghmpehinhgvthepuddvjedrtddrtddruddpmhgrihhlfhhrohhmpehsvghrghhiihdrughmhihtrhhukhesfehmuggvsgdrtghomhdpnhgspghrtghpthhtohepuddprhgtphhtthhopeigvghnqdguvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdpoffvtefjohhsthepmhhoheehtdgmpdhmohguvgepshhmthhpohhuth
DKIM-Signature: a=rsa-sha256; bh=LQ1Vqe1g6RI6JDcVkxzenf+apwtvgdiVGCvexZNSFH8=;
 c=relaxed/relaxed; d=3mdeb.com; h=From; s=ovhmo3617313-selector1;
 t=1745334455; v=1;
 b=dDplnzYEQqox6HEw+6yHAYs5SLrXTwyLbV9PGn8liZ/1d0RHGNGTut/46mZwL7AIgR1Nuiwy
 vE15PzwGVthF+hniyLKLc2oLUEqtI+3lDFcwtU/E/d6dfK5RrnGvyrEXWie0KGt9UqWQrAdVQu4
 MHephxrJ8T/6bBUgRvd+5ZaQh7Fnwa27wQ4mpKaTKpsy2GP923PPplC+IRp2wP/5gaop5fd4iF3
 OuKD+W1IhTzW+GfuVlEaDnAVZp5getKoAH7mlTfl/GrELh6aSpYuOvAhmLu9T0Fa4V8ki+fc1cd
 jlY7F8BsFtiFTKBXOAMgkbtknlj6xhFbLg71i7Co8N1xw==

From: Krystian Hebel <krystian.hebel@3mdeb.com>

This file is built twice: for early 32b mode without paging to measure
MBI and for 64b code to measure dom0 kernel and initramfs. Since MBI
is small, the first case uses TPM to do the hashing. Kernel and
initramfs on the other hand are too big, sending them to the TPM would
take multiple minutes.

Signed-off-by: Krystian Hebel <krystian.hebel@3mdeb.com>
Signed-off-by: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
---
 xen/arch/x86/Makefile              |   1 +
 xen/arch/x86/boot/Makefile         |   7 +-
 xen/arch/x86/boot/head.S           |   3 +
 xen/arch/x86/include/asm/slaunch.h |  14 +
 xen/arch/x86/include/asm/tpm.h     |  19 ++
 xen/arch/x86/slaunch.c             |   7 +-
 xen/arch/x86/tpm.c                 | 437 +++++++++++++++++++++++++++++
 7 files changed, 486 insertions(+), 2 deletions(-)
 create mode 100644 xen/arch/x86/include/asm/tpm.h
 create mode 100644 xen/arch/x86/tpm.c

diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
index cae548f7e9..7d1027a50f 100644
--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -67,6 +67,7 @@ obj-y += spec_ctrl.o
 obj-y += srat.o
 obj-y += string.o
 obj-y += time.o
+obj-y += tpm.o
 obj-y += traps-setup.o
 obj-y += traps.o
 obj-$(CONFIG_INTEL) += tsx.o
diff --git a/xen/arch/x86/boot/Makefile b/xen/arch/x86/boot/Makefile
index d0015f7d19..ab37ab1fb7 100644
--- a/xen/arch/x86/boot/Makefile
+++ b/xen/arch/x86/boot/Makefile
@@ -6,6 +6,7 @@ obj32 := cmdline.32.o
 obj32 += reloc.32.o
 obj32 += reloc-trampoline.32.o
 obj32 += slaunch_early.32.o
+obj32 += tpm_early.32.o
 
 obj64 := reloc-trampoline.o
 
@@ -31,6 +32,10 @@ $(obj)/%.32.o: $(src)/%.c FORCE
 
 $(obj)/slaunch_early.32.o: XEN_CFLAGS += -D__EARLY_SLAUNCH__
 
+$(obj)/tpm_early.32.o: XEN_CFLAGS += -D__EARLY_SLAUNCH__
+$(obj)/tpm_early.32.o: $(src)/../tpm.c FORCE
+	$(call if_changed_rule,cc_o_c)
+
 orphan-handling-$(call ld-option,--orphan-handling=error) := --orphan-handling=error
 LDFLAGS_DIRECT-$(call ld-option,--warn-rwx-segments) := --no-warn-rwx-segments
 LDFLAGS_DIRECT += $(LDFLAGS_DIRECT-y)
@@ -84,7 +89,7 @@ cmd_combine = \
               --bin1      $(obj)/built-in-32.base.bin \
               --bin2      $(obj)/built-in-32.offset.bin \
               --map       $(obj)/built-in-32.base.map \
-              --exports   cmdline_parse_early,reloc,reloc_trampoline32,slaunch_early_init \
+              --exports   cmdline_parse_early,reloc,reloc_trampoline32,slaunch_early_init,tpm_extend_mbi \
               --output    $@
 
 targets += built-in-32.S
diff --git a/xen/arch/x86/boot/head.S b/xen/arch/x86/boot/head.S
index e522a36305..0b7903070a 100644
--- a/xen/arch/x86/boot/head.S
+++ b/xen/arch/x86/boot/head.S
@@ -527,6 +527,9 @@ __start:
         /* Store MBI address in EBX where MB2 code expects it. */
         mov     %eax, %ebx
 
+        /* tpm_extend_mbi(mbi/eax, slrt/edx) using fastcall. */
+        call    tpm_extend_mbi
+
         /* Move magic number expected by Multiboot 2 to EAX and fall through. */
         movl    $MULTIBOOT2_BOOTLOADER_MAGIC, %eax
 
diff --git a/xen/arch/x86/include/asm/slaunch.h b/xen/arch/x86/include/asm/slaunch.h
index 78d3c8bf37..b9b50f20c6 100644
--- a/xen/arch/x86/include/asm/slaunch.h
+++ b/xen/arch/x86/include/asm/slaunch.h
@@ -10,6 +10,20 @@
 #include <xen/slr_table.h>
 #include <xen/types.h>
 
+#define DRTM_LOC                   2
+#define DRTM_CODE_PCR              17
+#define DRTM_DATA_PCR              18
+
+/*
+ * Secure Launch event log entry types. The TXT specification defines the base
+ * event value as 0x400 for DRTM values, use it regardless of the DRTM for
+ * consistency.
+ */
+#define DLE_EVTYPE_BASE            0x400
+#define DLE_EVTYPE_SLAUNCH         (DLE_EVTYPE_BASE + 0x102)
+#define DLE_EVTYPE_SLAUNCH_START   (DLE_EVTYPE_BASE + 0x103)
+#define DLE_EVTYPE_SLAUNCH_END     (DLE_EVTYPE_BASE + 0x104)
+
 extern bool slaunch_active;
 
 /*
diff --git a/xen/arch/x86/include/asm/tpm.h b/xen/arch/x86/include/asm/tpm.h
new file mode 100644
index 0000000000..d46eba673c
--- /dev/null
+++ b/xen/arch/x86/include/asm/tpm.h
@@ -0,0 +1,19 @@
+/*
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ *
+ * Copyright (c) 2022-2025 3mdeb Sp. z o.o. All rights reserved.
+ */
+
+#ifndef _ASM_X86_TPM_H_
+#define _ASM_X86_TPM_H_
+
+#include <xen/types.h>
+
+#define TPM_TIS_BASE  0xFED40000
+#define TPM_TIS_SIZE  0x00010000
+
+void tpm_hash_extend(unsigned loc, unsigned pcr, const uint8_t *buf,
+                     unsigned size, uint32_t type, const uint8_t *log_data,
+                     unsigned log_data_size);
+
+#endif /* _ASM_X86_TPM_H_ */
diff --git a/xen/arch/x86/slaunch.c b/xen/arch/x86/slaunch.c
index 20e277cc5c..7b13b0a852 100644
--- a/xen/arch/x86/slaunch.c
+++ b/xen/arch/x86/slaunch.c
@@ -13,6 +13,7 @@
 #include <asm/intel_txt.h>
 #include <asm/page.h>
 #include <asm/slaunch.h>
+#include <asm/tpm.h>
 
 /*
  * These variables are assigned to by the code near Xen's entry point.
@@ -65,16 +66,20 @@ struct slr_table *__init slaunch_get_slrt(void)
 
 void __init slaunch_map_mem_regions(void)
 {
+    int rc;
     void *evt_log_addr;
     uint32_t evt_log_size;
 
+    rc = slaunch_map_l2(TPM_TIS_BASE, TPM_TIS_SIZE);
+    BUG_ON(rc != 0);
+
     /* Vendor-specific part. */
     txt_map_mem_regions();
 
     find_evt_log(slaunch_get_slrt(), &evt_log_addr, &evt_log_size);
     if ( evt_log_addr != NULL )
     {
-        int rc = slaunch_map_l2((uintptr_t)evt_log_addr, evt_log_size);
+        rc = slaunch_map_l2((uintptr_t)evt_log_addr, evt_log_size);
         BUG_ON(rc != 0);
     }
 }
diff --git a/xen/arch/x86/tpm.c b/xen/arch/x86/tpm.c
new file mode 100644
index 0000000000..8cf836d0df
--- /dev/null
+++ b/xen/arch/x86/tpm.c
@@ -0,0 +1,437 @@
+/*
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ *
+ * Copyright (c) 2022-2025 3mdeb Sp. z o.o. All rights reserved.
+ */
+
+#include <xen/sha1.h>
+#include <xen/types.h>
+#include <asm/intel_txt.h>
+#include <asm/slaunch.h>
+#include <asm/tpm.h>
+
+#ifdef __EARLY_SLAUNCH__
+
+#ifdef __va
+#error "__va defined in non-paged mode!"
+#endif
+
+#define __va(x)     _p(x)
+
+/* Implementation of slaunch_get_slrt() for early TPM code. */
+static uint32_t slrt_location;
+struct slr_table *slaunch_get_slrt(void)
+{
+    return __va(slrt_location);
+}
+
+/*
+ * The code is being compiled as a standalone binary without linking to any
+ * other part of Xen.  Providing implementation of builtin functions in this
+ * case is necessary if compiler chooses to not use an inline builtin.
+ */
+void *memcpy(void *dest, const void *src, size_t n)
+{
+    const uint8_t *s = src;
+    uint8_t *d = dest;
+
+    while ( n-- )
+        *d++ = *s++;
+
+    return dest;
+}
+
+#else   /* __EARLY_SLAUNCH__ */
+
+#include <xen/mm.h>
+#include <xen/pfn.h>
+
+#endif  /* __EARLY_SLAUNCH__ */
+
+#define TPM_LOC_REG(loc, reg)   (0x1000 * (loc) + (reg))
+
+#define TPM_ACCESS_(x)          TPM_LOC_REG(x, 0x00)
+#define ACCESS_REQUEST_USE       (1 << 1)
+#define ACCESS_ACTIVE_LOCALITY   (1 << 5)
+#define TPM_INTF_CAPABILITY_(x) TPM_LOC_REG(x, 0x14)
+#define INTF_VERSION_MASK        0x70000000
+#define TPM_STS_(x)             TPM_LOC_REG(x, 0x18)
+#define TPM_FAMILY_MASK          0x0C000000
+#define STS_DATA_AVAIL           (1 << 4)
+#define STS_TPM_GO               (1 << 5)
+#define STS_COMMAND_READY        (1 << 6)
+#define STS_VALID                (1 << 7)
+#define TPM_DATA_FIFO_(x)       TPM_LOC_REG(x, 0x24)
+
+#define swap16(x)       __builtin_bswap16(x)
+#define swap32(x)       __builtin_bswap32(x)
+#define memcpy(d, s, n) __builtin_memcpy(d, s, n)
+
+static inline volatile uint32_t tis_read32(unsigned reg)
+{
+    return *(volatile uint32_t *)__va(TPM_TIS_BASE + reg);
+}
+
+static inline volatile uint8_t tis_read8(unsigned reg)
+{
+    return *(volatile uint8_t *)__va(TPM_TIS_BASE + reg);
+}
+
+static inline void tis_write8(unsigned reg, uint8_t val)
+{
+    *(volatile uint8_t *)__va(TPM_TIS_BASE + reg) = val;
+}
+
+static inline void request_locality(unsigned loc)
+{
+    tis_write8(TPM_ACCESS_(loc), ACCESS_REQUEST_USE);
+    /* Check that locality was actually activated. */
+    while ( (tis_read8(TPM_ACCESS_(loc)) & ACCESS_ACTIVE_LOCALITY) == 0 );
+}
+
+static inline void relinquish_locality(unsigned loc)
+{
+    tis_write8(TPM_ACCESS_(loc), ACCESS_ACTIVE_LOCALITY);
+}
+
+static void send_cmd(unsigned loc, uint8_t *buf, unsigned i_size,
+                     unsigned *o_size)
+{
+    /*
+     * Value of "data available" bit counts only when "valid" field is set as
+     * well.
+     */
+    const unsigned data_avail = STS_VALID | STS_DATA_AVAIL;
+
+    unsigned i;
+
+    /* Make sure TPM can accept a command. */
+    if ( (tis_read8(TPM_STS_(loc)) & STS_COMMAND_READY) == 0 )
+    {
+        /* Abort current command. */
+        tis_write8(TPM_STS_(loc), STS_COMMAND_READY);
+        /* Wait until TPM is ready for a new one. */
+        while ( (tis_read8(TPM_STS_(loc)) & STS_COMMAND_READY) == 0 );
+    }
+
+    for ( i = 0; i < i_size; i++ )
+        tis_write8(TPM_DATA_FIFO_(loc), buf[i]);
+
+    tis_write8(TPM_STS_(loc), STS_TPM_GO);
+
+    /* Wait for the first byte of response. */
+    while ( (tis_read8(TPM_STS_(loc)) & data_avail) != data_avail);
+
+    for ( i = 0; i < *o_size && tis_read8(TPM_STS_(loc)) & data_avail; i++ )
+        buf[i] = tis_read8(TPM_DATA_FIFO_(loc));
+
+    if ( i < *o_size )
+        *o_size = i;
+
+    tis_write8(TPM_STS_(loc), STS_COMMAND_READY);
+}
+
+static inline bool is_tpm12(void)
+{
+    /*
+     * If one of these conditions is true:
+     *  - INTF_CAPABILITY_x.interfaceVersion is 0 (TIS <= 1.21)
+     *  - INTF_CAPABILITY_x.interfaceVersion is 2 (TIS == 1.3)
+     *  - STS_x.tpmFamily is 0
+     * we're dealing with TPM1.2.
+     */
+    uint32_t intf_version = tis_read32(TPM_INTF_CAPABILITY_(0))
+                          & INTF_VERSION_MASK;
+    return (intf_version == 0x00000000 || intf_version == 0x20000000 ||
+            (tis_read32(TPM_STS_(0)) & TPM_FAMILY_MASK) == 0);
+}
+
+/****************************** TPM1.2 specific *******************************/
+#define TPM_ORD_Extend              0x00000014
+#define TPM_ORD_SHA1Start           0x000000A0
+#define TPM_ORD_SHA1Update          0x000000A1
+#define TPM_ORD_SHA1CompleteExtend  0x000000A3
+
+#define TPM_TAG_RQU_COMMAND         0x00C1
+#define TPM_TAG_RSP_COMMAND         0x00C4
+
+/* All fields of following structs are big endian. */
+struct tpm_cmd_hdr {
+    uint16_t    tag;
+    uint32_t    paramSize;
+    uint32_t    ordinal;
+} __packed;
+
+struct tpm_rsp_hdr {
+    uint16_t    tag;
+    uint32_t    paramSize;
+    uint32_t    returnCode;
+} __packed;
+
+struct extend_cmd {
+    struct tpm_cmd_hdr h;
+    uint32_t pcrNum;
+    uint8_t inDigest[SHA1_DIGEST_SIZE];
+} __packed;
+
+struct extend_rsp {
+    struct tpm_rsp_hdr h;
+    uint8_t outDigest[SHA1_DIGEST_SIZE];
+} __packed;
+
+struct sha1_start_cmd {
+    struct tpm_cmd_hdr h;
+} __packed;
+
+struct sha1_start_rsp {
+    struct tpm_rsp_hdr h;
+    uint32_t maxNumBytes;
+} __packed;
+
+struct sha1_update_cmd {
+    struct tpm_cmd_hdr h;
+    uint32_t numBytes;          /* Must be a multiple of 64 */
+    uint8_t hashData[];
+} __packed;
+
+struct sha1_update_rsp {
+    struct tpm_rsp_hdr h;
+} __packed;
+
+struct sha1_complete_extend_cmd {
+    struct tpm_cmd_hdr h;
+    uint32_t pcrNum;
+    uint32_t hashDataSize;      /* 0-64, inclusive */
+    uint8_t hashData[];
+} __packed;
+
+struct sha1_complete_extend_rsp {
+    struct tpm_rsp_hdr h;
+    uint8_t hashValue[SHA1_DIGEST_SIZE];
+    uint8_t outDigest[SHA1_DIGEST_SIZE];
+} __packed;
+
+struct TPM12_PCREvent {
+    uint32_t PCRIndex;
+    uint32_t Type;
+    uint8_t Digest[SHA1_DIGEST_SIZE];
+    uint32_t Size;
+    uint8_t Data[];
+};
+
+struct txt_ev_log_container_12 {
+    char        Signature[20];      /* "TXT Event Container", null-terminated */
+    uint8_t     Reserved[12];
+    uint8_t     ContainerVerMajor;
+    uint8_t     ContainerVerMinor;
+    uint8_t     PCREventVerMajor;
+    uint8_t     PCREventVerMinor;
+    uint32_t    ContainerSize;      /* Allocated size */
+    uint32_t    PCREventsOffset;
+    uint32_t    NextEventOffset;
+    struct TPM12_PCREvent   PCREvents[];
+};
+
+#ifdef __EARLY_SLAUNCH__
+/*
+ * TPM1.2 is required to support commands of up to 1101 bytes, vendors rarely
+ * go above that. Limit maximum size of block of data to be hashed to 1024.
+ */
+#define MAX_HASH_BLOCK      1024
+#define CMD_RSP_BUF_SIZE    (sizeof(struct sha1_update_cmd) + MAX_HASH_BLOCK)
+
+union cmd_rsp {
+    struct sha1_start_cmd start_c;
+    struct sha1_start_rsp start_r;
+    struct sha1_update_cmd update_c;
+    struct sha1_update_rsp update_r;
+    struct sha1_complete_extend_cmd finish_c;
+    struct sha1_complete_extend_rsp finish_r;
+    uint8_t buf[CMD_RSP_BUF_SIZE];
+};
+
+/* Returns true on success. */
+static bool tpm12_hash_extend(unsigned loc, const uint8_t *buf, unsigned size,
+                              unsigned pcr, uint8_t *out_digest)
+{
+    union cmd_rsp cmd_rsp;
+    unsigned max_bytes = MAX_HASH_BLOCK;
+    unsigned o_size = sizeof(cmd_rsp);
+    bool success = false;
+
+    request_locality(loc);
+
+    cmd_rsp.start_c = (struct sha1_start_cmd) {
+        .h.tag = swap16(TPM_TAG_RQU_COMMAND),
+        .h.paramSize = swap32(sizeof(struct sha1_start_cmd)),
+        .h.ordinal = swap32(TPM_ORD_SHA1Start),
+    };
+
+    send_cmd(loc, cmd_rsp.buf, sizeof(struct sha1_start_cmd), &o_size);
+    if ( o_size < sizeof(struct sha1_start_rsp) )
+        goto error;
+
+    if ( max_bytes > swap32(cmd_rsp.start_r.maxNumBytes) )
+        max_bytes = swap32(cmd_rsp.start_r.maxNumBytes);
+
+    while ( size > 64 )
+    {
+        if ( size < max_bytes )
+            max_bytes = size & ~(64 - 1);
+
+        o_size = sizeof(cmd_rsp);
+
+        cmd_rsp.update_c = (struct sha1_update_cmd){
+            .h.tag = swap16(TPM_TAG_RQU_COMMAND),
+            .h.paramSize = swap32(sizeof(struct sha1_update_cmd) + max_bytes),
+            .h.ordinal = swap32(TPM_ORD_SHA1Update),
+            .numBytes = swap32(max_bytes),
+        };
+        memcpy(cmd_rsp.update_c.hashData, buf, max_bytes);
+
+        send_cmd(loc, cmd_rsp.buf, sizeof(struct sha1_update_cmd) + max_bytes,
+                 &o_size);
+        if ( o_size < sizeof(struct sha1_update_rsp) )
+            goto error;
+
+        size -= max_bytes;
+        buf += max_bytes;
+    }
+
+    o_size = sizeof(cmd_rsp);
+
+    cmd_rsp.finish_c = (struct sha1_complete_extend_cmd) {
+        .h.tag = swap16(TPM_TAG_RQU_COMMAND),
+        .h.paramSize = swap32(sizeof(struct sha1_complete_extend_cmd) + size),
+        .h.ordinal = swap32(TPM_ORD_SHA1CompleteExtend),
+        .pcrNum = swap32(pcr),
+        .hashDataSize = swap32(size),
+    };
+    memcpy(cmd_rsp.finish_c.hashData, buf, size);
+
+    send_cmd(loc, cmd_rsp.buf, sizeof(struct sha1_complete_extend_cmd) + size,
+             &o_size);
+    if ( o_size < sizeof(struct sha1_complete_extend_rsp) )
+        goto error;
+
+    if ( out_digest != NULL )
+        memcpy(out_digest, cmd_rsp.finish_r.hashValue, SHA1_DIGEST_SIZE);
+
+    success = true;
+
+error:
+    relinquish_locality(loc);
+    return success;
+}
+
+#else
+
+union cmd_rsp {
+    struct extend_cmd extend_c;
+    struct extend_rsp extend_r;
+};
+
+/* Returns true on success. */
+static bool tpm12_hash_extend(unsigned loc, const uint8_t *buf, unsigned size,
+                              unsigned pcr, uint8_t *out_digest)
+{
+    union cmd_rsp cmd_rsp;
+    unsigned o_size = sizeof(cmd_rsp);
+
+    sha1_hash(buf, size, out_digest);
+
+    request_locality(loc);
+
+    cmd_rsp.extend_c = (struct extend_cmd) {
+        .h.tag = swap16(TPM_TAG_RQU_COMMAND),
+        .h.paramSize = swap32(sizeof(struct extend_cmd)),
+        .h.ordinal = swap32(TPM_ORD_Extend),
+        .pcrNum = swap32(pcr),
+    };
+
+    memcpy(cmd_rsp.extend_c.inDigest, out_digest, SHA1_DIGEST_SIZE);
+
+    send_cmd(loc, (uint8_t *)&cmd_rsp, sizeof(struct extend_cmd), &o_size);
+
+    relinquish_locality(loc);
+
+    return (o_size >= sizeof(struct extend_rsp));
+}
+
+#endif /* __EARLY_SLAUNCH__ */
+
+static void *create_log_event12(struct txt_ev_log_container_12 *evt_log,
+                                uint32_t evt_log_size, uint32_t pcr,
+                                uint32_t type, const uint8_t *data,
+                                unsigned data_size)
+{
+    struct TPM12_PCREvent *new_entry;
+
+    new_entry = (void *)(((uint8_t *)evt_log) + evt_log->NextEventOffset);
+
+    /*
+     * Check if there is enough space left for new entry.
+     * Note: it is possible to introduce a gap in event log if entry with big
+     * data_size is followed by another entry with smaller data. Maybe we should
+     * cap the event log size in such case?
+     */
+    if ( evt_log->NextEventOffset + sizeof(struct TPM12_PCREvent) + data_size
+         > evt_log_size )
+        return NULL;
+
+    evt_log->NextEventOffset += sizeof(struct TPM12_PCREvent) + data_size;
+
+    new_entry->PCRIndex = pcr;
+    new_entry->Type = type;
+    new_entry->Size = data_size;
+
+    if ( data && data_size > 0 )
+        memcpy(new_entry->Data, data, data_size);
+
+    return new_entry->Digest;
+}
+
+/************************** end of TPM1.2 specific ****************************/
+
+void tpm_hash_extend(unsigned loc, unsigned pcr, const uint8_t *buf,
+                     unsigned size, uint32_t type, const uint8_t *log_data,
+                     unsigned log_data_size)
+{
+    void *evt_log_addr;
+    uint32_t evt_log_size;
+
+    find_evt_log(slaunch_get_slrt(), &evt_log_addr, &evt_log_size);
+    evt_log_addr = __va((uintptr_t)evt_log_addr);
+
+    if ( is_tpm12() )
+    {
+        uint8_t sha1_digest[SHA1_DIGEST_SIZE];
+
+        struct txt_ev_log_container_12 *evt_log = evt_log_addr;
+        void *entry_digest = create_log_event12(evt_log, evt_log_size, pcr,
+                                                type, log_data, log_data_size);
+
+        /* We still need to write computed hash somewhere. */
+        if ( entry_digest == NULL )
+            entry_digest = sha1_digest;
+
+        if ( !tpm12_hash_extend(loc, buf, size, pcr, entry_digest) )
+        {
+#ifndef __EARLY_SLAUNCH__
+            printk(XENLOG_ERR "Extending PCR%u failed\n", pcr);
+#endif
+        }
+    }
+}
+
+#ifdef __EARLY_SLAUNCH__
+void tpm_extend_mbi(uint32_t *mbi, uint32_t slrt_pa)
+{
+    /* Need this to implement slaunch_get_slrt() for early TPM code. */
+    slrt_location = slrt_pa;
+
+    /* MBI starts with uint32_t total_size. */
+    tpm_hash_extend(DRTM_LOC, DRTM_DATA_PCR, (uint8_t *)mbi, *mbi,
+                    DLE_EVTYPE_SLAUNCH, NULL, 0);
+}
+#endif
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 22 15:11:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 15:11:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.962927.1354099 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7FHp-0003Ae-CM; Tue, 22 Apr 2025 15:11:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 962927.1354099; Tue, 22 Apr 2025 15: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 1u7FHp-00039a-7P; Tue, 22 Apr 2025 15:11:49 +0000
Received: by outflank-mailman (input) for mailman id 962927;
 Tue, 22 Apr 2025 15:11: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=BiSK=XI=3mdeb.com=sergii.dmytruk@srs-se1.protection.inumbo.net>)
 id 1u7FDh-0000lQ-Gd
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 15:07:33 +0000
Received: from 10.mo550.mail-out.ovh.net (10.mo550.mail-out.ovh.net
 [178.32.96.102]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8423ef29-1f8b-11f0-9eb0-5ba50f476ded;
 Tue, 22 Apr 2025 17:07:32 +0200 (CEST)
Received: from director8.ghost.mail-out.ovh.net (unknown [10.108.2.23])
 by mo550.mail-out.ovh.net (Postfix) with ESMTP id 4Zhlw428byz1Xrw
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 15:07:32 +0000 (UTC)
Received: from ghost-submission-5b5ff79f4f-f9k6v (unknown [10.110.118.84])
 by director8.ghost.mail-out.ovh.net (Postfix) with ESMTPS id 69FDB1FD44;
 Tue, 22 Apr 2025 15:07:31 +0000 (UTC)
Received: from 3mdeb.com ([37.59.142.104])
 by ghost-submission-5b5ff79f4f-f9k6v with ESMTPSA
 id rxlND7OwB2hWRgEAxaKnhg
 (envelope-from <sergii.dmytruk@3mdeb.com>); Tue, 22 Apr 2025 15:07: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: 8423ef29-1f8b-11f0-9eb0-5ba50f476ded
Authentication-Results:garm.ovh; auth=pass (GARM-104R00542a86e06-f440-4221-95ca-16fc201bff01,
                    7E508E014E7E7C169EB13C6E22C3C4EBF1F0FDD7) smtp.auth=sergii.dmytruk@3mdeb.com
X-OVh-ClientIp:176.111.181.178
From: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	trenchboot-devel@googlegroups.com
Subject: [PATCH 10/21] lib/sha256.c: add file
Date: Tue, 22 Apr 2025 18:06:44 +0300
Message-ID: <92b461c8d5981a523293341346274b6cc1b76d9b.1745172094.git.sergii.dmytruk@3mdeb.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <cover.1745172094.git.sergii.dmytruk@3mdeb.com>
References: <cover.1745172094.git.sergii.dmytruk@3mdeb.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Ovh-Tracer-Id: 12732802049230353564
X-VR-SPAMSTATE: OK
X-VR-SPAMSCORE: -105
X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvgeegtdehucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuqfggjfdpvefjgfevmfevgfenuceurghilhhouhhtmecuhedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnegfrhhlucfvnfffucdlqdehmdenucfjughrpefhvfevufffkffojghfggfgsedtkeertdertddtnecuhfhrohhmpefuvghrghhiihcuffhmhihtrhhukhcuoehsvghrghhiihdrughmhihtrhhukhesfehmuggvsgdrtghomheqnecuggftrfgrthhtvghrnhepvedvgfeukeehhfevuddvheetudekkefggfeiveehvefhgfehgfffhffgvefhudejnecuffhomhgrihhnpehgihhthhhusgdrtghomhdpnhhishhtrdhgohhvnecukfhppeduvdejrddtrddtrddupddujeeirdduuddurddukedurddujeekpdefjedrheelrddugedvrddutdegnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehinhgvthepuddvjedrtddrtddruddpmhgrihhlfhhrohhmpehsvghrghhiihdrughmhihtrhhukhesfehmuggvsgdrtghomhdpnhgspghrtghpthhtohepuddprhgtphhtthhopeigvghnqdguvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdpoffvtefjohhsthepmhhoheehtdgmpdhmohguvgepshhmthhpohhuth
DKIM-Signature: a=rsa-sha256; bh=cpM4QmeM8xWvrjEkqxDqzsZbZ3g224BrNjdlnp8nQ/I=;
 c=relaxed/relaxed; d=3mdeb.com; h=From; s=ovhmo3617313-selector1;
 t=1745334452; v=1;
 b=LE9iVO/+PznrQo2udORusIQdcf0bKmGUAd4jA8Eo1BR+HmyxpHzggY9ZMLdnkwEp9pdwbPRb
 EI2KJINBdDu6fFBwmQIje9ajHi7/eHzOlHTqqEeceHzwDZaipnNUc4XYfwt0TCJy1v8QrehKJvR
 2g0twC6fZSvdDhlyktFja1KStZIepnop32DPDj04pmi6c9IQF85uPnnO0bi4bPaeV5JRGg4UD2e
 bIM/otbqekD4+1bOZuuKDxCUhvGuF7zdiex7xNJnTal/W+ffN6yfJQtyH0GYQFnEFhx1hp7nBfS
 mNg7paDZJfTok8C26E1M4R9b9+dwfZCo1K/37gMB2Bp2w==

The code comes from [1] and is licensed under GPL-2.0 or later version
of the license.  It's a combination of:
 - include/crypto/sha2.h
 - include/crypto/sha256_base.h
 - lib/crypto/sha256.c
 - crypto/sha256_generic.c

Changes:
 - includes
 - formatting
 - renames and splicing of some trivial functions that are called once
 - dropping of `int` return values (only zero was ever returned)
 - getting rid of references to `struct shash_desc`

[1]: https://github.com/torvalds/linux/tree/afdab700f65e14070d8ab92175544b1c62b8bf03

Signed-off-by: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
Signed-off-by: Krystian Hebel <krystian.hebel@3mdeb.com>
---
 xen/include/xen/sha256.h |  12 ++
 xen/lib/Makefile         |   1 +
 xen/lib/sha256.c         | 238 +++++++++++++++++++++++++++++++++++++++
 3 files changed, 251 insertions(+)
 create mode 100644 xen/include/xen/sha256.h
 create mode 100644 xen/lib/sha256.c

diff --git a/xen/include/xen/sha256.h b/xen/include/xen/sha256.h
new file mode 100644
index 0000000000..703eddc198
--- /dev/null
+++ b/xen/include/xen/sha256.h
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+
+#ifndef __XEN_SHA256_H
+#define __XEN_SHA256_H
+
+#include <xen/inttypes.h>
+
+#define SHA256_DIGEST_SIZE  32
+
+void sha256_hash(const u8 *data, unsigned int len, u8 *out);
+
+#endif /* !__XEN_SHA256_H */
diff --git a/xen/lib/Makefile b/xen/lib/Makefile
index 0d5774b8d7..c7a8d1bb02 100644
--- a/xen/lib/Makefile
+++ b/xen/lib/Makefile
@@ -39,6 +39,7 @@ lib-y += strtoul.o
 lib-y += strtoull.o
 lib-$(CONFIG_X86) += x86-generic-hweightl.o
 lib-$(CONFIG_X86) += sha1.o
+lib-$(CONFIG_X86) += sha256.o
 lib-$(CONFIG_X86) += xxhash32.o
 lib-$(CONFIG_X86) += xxhash64.o
 
diff --git a/xen/lib/sha256.c b/xen/lib/sha256.c
new file mode 100644
index 0000000000..369a52af80
--- /dev/null
+++ b/xen/lib/sha256.c
@@ -0,0 +1,238 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+/*
+ * SHA-256, as specified in
+ * http://csrc.nist.gov/groups/STM/cavp/documents/shs/sha256-384-512.pdf
+ *
+ * SHA-256 code by Jean-Luc Cooke <jlcooke@certainkey.com>.
+ *
+ * Copyright (c) Jean-Luc Cooke <jlcooke@certainkey.com>
+ * Copyright (c) Andrew McDonald <andrew@mcdonald.org.uk>
+ * Copyright (c) 2002 James Morris <jmorris@intercode.com.au>
+ * Copyright (c) 2014 Red Hat Inc.
+ */
+
+#include <xen/bitops.h>
+#include <xen/sha256.h>
+#include <xen/unaligned.h>
+
+#define SHA256_BLOCK_SIZE 64
+
+struct sha256_state {
+    uint32_t state[SHA256_DIGEST_SIZE / 4];
+    uint64_t count;
+    uint8_t buf[SHA256_BLOCK_SIZE];
+};
+
+typedef void sha256_block_fn(struct sha256_state *sst, uint8_t const *src,
+                             int blocks);
+
+static const uint32_t SHA256_K[] = {
+    0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,
+    0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,
+    0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,
+    0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,
+    0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,
+    0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,
+    0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7,
+    0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,
+    0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,
+    0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,
+    0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3,
+    0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,
+    0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5,
+    0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,
+    0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,
+    0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2,
+};
+
+static uint32_t Ch(uint32_t x, uint32_t y, uint32_t z)
+{
+    return z ^ (x & (y ^ z));
+}
+
+static uint32_t Maj(uint32_t x, uint32_t y, uint32_t z)
+{
+    return (x & y) | (z & (x | y));
+}
+
+#define e0(x)       (ror32(x, 2) ^ ror32(x, 13) ^ ror32(x, 22))
+#define e1(x)       (ror32(x, 6) ^ ror32(x, 11) ^ ror32(x, 25))
+#define s0(x)       (ror32(x, 7) ^ ror32(x, 18) ^ (x >> 3))
+#define s1(x)       (ror32(x, 17) ^ ror32(x, 19) ^ (x >> 10))
+
+static void LOAD_OP(int I, uint32_t *W, const uint8_t *input)
+{
+    W[I] = get_unaligned_be32((uint32_t *)input + I);
+}
+
+static void BLEND_OP(int I, uint32_t *W)
+{
+    W[I] = s1(W[I - 2]) + W[I - 7] + s0(W[I - 15]) + W[I - 16];
+}
+
+#define SHA256_ROUND(i, a, b, c, d, e, f, g, h) do {       \
+        uint32_t t1, t2;                                   \
+        t1 = h + e1(e) + Ch(e, f, g) + SHA256_K[i] + W[i]; \
+        t2 = e0(a) + Maj(a, b, c);                         \
+        d += t1;                                           \
+        h = t1 + t2;                                       \
+    } while ( 0 )
+
+static void sha256_init(struct sha256_state *sctx)
+{
+    sctx->state[0] = 0x6a09e667UL;
+    sctx->state[1] = 0xbb67ae85UL;
+    sctx->state[2] = 0x3c6ef372UL;
+    sctx->state[3] = 0xa54ff53aUL;
+    sctx->state[4] = 0x510e527fUL;
+    sctx->state[5] = 0x9b05688cUL;
+    sctx->state[6] = 0x1f83d9abUL;
+    sctx->state[7] = 0x5be0cd19UL;
+    sctx->count = 0;
+}
+
+static void sha256_do_update(struct sha256_state *sctx,
+                             const uint8_t *data,
+                             unsigned int len,
+                             sha256_block_fn *block_fn)
+{
+    unsigned int partial = sctx->count % SHA256_BLOCK_SIZE;
+
+    sctx->count += len;
+
+    if ( unlikely((partial + len) >= SHA256_BLOCK_SIZE) )
+    {
+        int blocks;
+
+        if ( partial )
+        {
+            int p = SHA256_BLOCK_SIZE - partial;
+
+            memcpy(sctx->buf + partial, data, p);
+            data += p;
+            len -= p;
+
+            block_fn(sctx, sctx->buf, 1);
+        }
+
+        blocks = len / SHA256_BLOCK_SIZE;
+        len %= SHA256_BLOCK_SIZE;
+
+        if ( blocks )
+        {
+            block_fn(sctx, data, blocks);
+            data += blocks * SHA256_BLOCK_SIZE;
+        }
+        partial = 0;
+    }
+    if ( len )
+        memcpy(sctx->buf + partial, data, len);
+}
+
+static void sha256_do_finalize(struct sha256_state *sctx,
+                               sha256_block_fn *block_fn)
+{
+    const int bit_offset = SHA256_BLOCK_SIZE - sizeof(__be64);
+    __be64 *bits = (__be64 *)(sctx->buf + bit_offset);
+    unsigned int partial = sctx->count % SHA256_BLOCK_SIZE;
+
+    sctx->buf[partial++] = 0x80;
+    if ( partial > bit_offset )
+    {
+        memset(sctx->buf + partial, 0x0, SHA256_BLOCK_SIZE - partial);
+        partial = 0;
+
+        block_fn(sctx, sctx->buf, 1);
+    }
+
+    memset(sctx->buf + partial, 0x0, bit_offset - partial);
+    *bits = cpu_to_be64(sctx->count << 3);
+    block_fn(sctx, sctx->buf, 1);
+}
+
+static void sha256_finish(struct sha256_state *sctx, uint8_t *out,
+                          unsigned int digest_size)
+{
+    __be32 *digest = (__be32 *)out;
+    int i;
+
+    for ( i = 0; digest_size > 0; i++, digest_size -= sizeof(__be32) )
+        put_unaligned_be32(sctx->state[i], digest++);
+
+    memset(sctx, 0, sizeof(*sctx));
+}
+
+static void sha256_transform(uint32_t *state, const uint8_t *input, uint32_t *W)
+{
+    uint32_t a, b, c, d, e, f, g, h;
+    int i;
+
+    /* load the input */
+    for ( i = 0; i < 16; i += 8 )
+    {
+        LOAD_OP(i + 0, W, input);
+        LOAD_OP(i + 1, W, input);
+        LOAD_OP(i + 2, W, input);
+        LOAD_OP(i + 3, W, input);
+        LOAD_OP(i + 4, W, input);
+        LOAD_OP(i + 5, W, input);
+        LOAD_OP(i + 6, W, input);
+        LOAD_OP(i + 7, W, input);
+    }
+
+    /* now blend */
+    for ( i = 16; i < 64; i += 8 )
+    {
+        BLEND_OP(i + 0, W);
+        BLEND_OP(i + 1, W);
+        BLEND_OP(i + 2, W);
+        BLEND_OP(i + 3, W);
+        BLEND_OP(i + 4, W);
+        BLEND_OP(i + 5, W);
+        BLEND_OP(i + 6, W);
+        BLEND_OP(i + 7, W);
+    }
+
+    /* load the state into our registers */
+    a = state[0]; b = state[1]; c = state[2]; d = state[3];
+    e = state[4]; f = state[5]; g = state[6]; h = state[7];
+
+    /* now iterate */
+    for ( i = 0; i < 64; i += 8 )
+    {
+        SHA256_ROUND(i + 0, a, b, c, d, e, f, g, h);
+        SHA256_ROUND(i + 1, h, a, b, c, d, e, f, g);
+        SHA256_ROUND(i + 2, g, h, a, b, c, d, e, f);
+        SHA256_ROUND(i + 3, f, g, h, a, b, c, d, e);
+        SHA256_ROUND(i + 4, e, f, g, h, a, b, c, d);
+        SHA256_ROUND(i + 5, d, e, f, g, h, a, b, c);
+        SHA256_ROUND(i + 6, c, d, e, f, g, h, a, b);
+        SHA256_ROUND(i + 7, b, c, d, e, f, g, h, a);
+    }
+
+    state[0] += a; state[1] += b; state[2] += c; state[3] += d;
+    state[4] += e; state[5] += f; state[6] += g; state[7] += h;
+}
+
+static void sha256_transform_blocks(struct sha256_state *sctx,
+                                    const uint8_t *input, int blocks)
+{
+    uint32_t W[64];
+
+    do {
+        sha256_transform(sctx->state, input, W);
+        input += SHA256_BLOCK_SIZE;
+    } while ( --blocks );
+
+    memset(W, 0, sizeof(W));
+}
+
+void sha256_hash(const uint8_t *data, unsigned int len, uint8_t *out)
+{
+    struct sha256_state sctx;
+
+    sha256_init(&sctx);
+    sha256_do_update(&sctx, data, len, sha256_transform_blocks);
+    sha256_do_finalize(&sctx, sha256_transform_blocks);
+    sha256_finish(&sctx, out, SHA256_DIGEST_SIZE);
+}
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 22 15:11:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 15:11:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.962928.1354103 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7FHp-0003EC-Nz; Tue, 22 Apr 2025 15:11:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 962928.1354103; Tue, 22 Apr 2025 15: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 1u7FHp-0003DI-HC; Tue, 22 Apr 2025 15:11:49 +0000
Received: by outflank-mailman (input) for mailman id 962928;
 Tue, 22 Apr 2025 15:11: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=BiSK=XI=3mdeb.com=sergii.dmytruk@srs-se1.protection.inumbo.net>)
 id 1u7FEG-0008SP-9U
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 15:08:08 +0000
Received: from 5.mo561.mail-out.ovh.net (5.mo561.mail-out.ovh.net
 [87.98.178.36]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 94ea4496-1f8b-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 17:08:00 +0200 (CEST)
Received: from director11.ghost.mail-out.ovh.net (unknown [10.108.9.153])
 by mo561.mail-out.ovh.net (Postfix) with ESMTP id 4Zhlwc074qz1bjJ
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 15:07:59 +0000 (UTC)
Received: from ghost-submission-5b5ff79f4f-x6hdq (unknown [10.110.188.91])
 by director11.ghost.mail-out.ovh.net (Postfix) with ESMTPS id 5B90A1FDA8;
 Tue, 22 Apr 2025 15:07:58 +0000 (UTC)
Received: from 3mdeb.com ([37.59.142.103])
 by ghost-submission-5b5ff79f4f-x6hdq with ESMTPSA
 id kFjTCs6wB2iueg0A90cl8Q
 (envelope-from <sergii.dmytruk@3mdeb.com>); Tue, 22 Apr 2025 15:07: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: 94ea4496-1f8b-11f0-9ffb-bf95429c2676
Authentication-Results:garm.ovh; auth=pass (GARM-103G005fae82b8b-1c63-4759-a6cf-121a4a369e1f,
                    7E508E014E7E7C169EB13C6E22C3C4EBF1F0FDD7) smtp.auth=sergii.dmytruk@3mdeb.com
X-OVh-ClientIp:176.111.181.178
From: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	trenchboot-devel@googlegroups.com
Subject: [PATCH 20/21] x86/slaunch: support EFI boot
Date: Tue, 22 Apr 2025 18:06:54 +0300
Message-ID: <279c33f1d0d05884d57944cff86fc92b8ab98b26.1745172094.git.sergii.dmytruk@3mdeb.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <cover.1745172094.git.sergii.dmytruk@3mdeb.com>
References: <cover.1745172094.git.sergii.dmytruk@3mdeb.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Ovh-Tracer-Id: 12740401871211246748
X-VR-SPAMSTATE: OK
X-VR-SPAMSCORE: -100
X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvgeegtdehucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuqfggjfdpvefjgfevmfevgfenuceurghilhhouhhtmecuhedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurhephffvvefufffkofgjfhgggfestdekredtredttdenucfhrhhomhepufgvrhhgihhiucffmhihthhruhhkuceoshgvrhhgihhirdgumhihthhruhhkseefmhguvggsrdgtohhmqeenucggtffrrghtthgvrhhnpeelleekkefhieekieefkefgtefhvdehkeefvdffteefgfevleelkeekvdegkeduvdenucffohhmrghinhephhgvrggurdhssgdpgiekiegpieegrdhssgenucfkphepuddvjedrtddrtddruddpudejiedrudduuddrudekuddrudejkedpfeejrdehledrudegvddruddtfeenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepihhnvghtpeduvdejrddtrddtrddupdhmrghilhhfrhhomhepshgvrhhgihhirdgumhihthhruhhkseefmhguvggsrdgtohhmpdhnsggprhgtphhtthhopedupdhrtghpthhtohepgigvnhdquggvvhgvlheslhhishhtshdrgigvnhhprhhojhgvtghtrdhorhhgpdfovfetjfhoshhtpehmohehiedumgdpmhhouggvpehsmhhtphhouhht
DKIM-Signature: a=rsa-sha256; bh=qG64dpn9PR/fEbXLL9OzWDJMx+F6GCFAjnUeULgKj4g=;
 c=relaxed/relaxed; d=3mdeb.com; h=From; s=ovhmo3617313-selector1;
 t=1745334480; v=1;
 b=KtHpxg++9PHi/o058Fq5jT0t3I6ZwvtjDiM6hvCCCI0S8BeH+AzkiDZBlnYiAZMpawJ3tr9K
 RoGsvpTw9NwKMNJbRvnmcoECz9UJxCYlsrRjjB6BWbfJ7fvTwTpOL4pgrBNZBwKhEFQ3cfHg8Fk
 DjLet0FR06qvQOBd4O96ciT/O/zTPz6C8MPmGskKb+0t2MBPZUZ8BtKS3IrlQEIsmppeWNamKsD
 rSW5LO234KbO1vr7/ykeOhd5AZlZuqYczs374wtb62QP7cBVGa+WfetKzm5+WLojPW814EhAa2B
 3UkWy5pjjiyREQWnM2rcb5fxXOGY1u1I5GDErHJZhkRxw==

When running on an EFI-enabled system, Xen needs to have access to Boot
Services in order to initialize itself properly and reach a state in
which a dom0 kernel can operate without issues.

This means that DRTM must be started in the middle of Xen's
initialization process.  This effect is achieved via a callback into
bootloader (GRUB) which is responsible for initiating DRTM and
continuing Xen's initialization process.  The latter is done by
branching in Slaunch entry point on a flag to switch back into long mode
before calling the same function which Xen would execute as the next
step without DRTM.

Signed-off-by: Krystian Hebel <krystian.hebel@3mdeb.com>
Signed-off-by: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
---
 .gitignore                                  |   1 +
 docs/hypervisor-guide/x86/how-xen-boots.rst |  10 +-
 xen/arch/x86/Makefile                       |   9 +-
 xen/arch/x86/boot/head.S                    | 124 ++++++++++++++++++++
 xen/arch/x86/boot/x86_64.S                  |  14 ++-
 xen/arch/x86/efi/efi-boot.h                 |  90 +++++++++++++-
 xen/arch/x86/efi/fixmlehdr.c                | 122 +++++++++++++++++++
 xen/arch/x86/slaunch.c                      |  74 +++++++++++-
 xen/common/efi/boot.c                       |   4 +
 xen/common/efi/runtime.c                    |   1 +
 xen/include/xen/efi.h                       |   1 +
 11 files changed, 437 insertions(+), 13 deletions(-)
 create mode 100644 xen/arch/x86/efi/fixmlehdr.c

diff --git a/.gitignore b/.gitignore
index 53f5df0003..dab829d7e1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -201,6 +201,7 @@ xen/.xen.elf32
 xen/System.map
 xen/arch/x86/efi.lds
 xen/arch/x86/efi/check.efi
+xen/arch/x86/efi/fixmlehdr
 xen/arch/x86/efi/mkreloc
 xen/arch/x86/include/asm/asm-macros.h
 xen/arch/*/xen.lds
diff --git a/docs/hypervisor-guide/x86/how-xen-boots.rst b/docs/hypervisor-guide/x86/how-xen-boots.rst
index 050fe9c61f..63f81a8198 100644
--- a/docs/hypervisor-guide/x86/how-xen-boots.rst
+++ b/docs/hypervisor-guide/x86/how-xen-boots.rst
@@ -55,10 +55,12 @@ If ``CONFIG_PVH_GUEST`` was selected at build time, an Elf note is included
 which indicates the ability to use the PVH boot protocol, and registers
 ``__pvh_start`` as the entrypoint, entered in 32bit mode.
 
-A combination of Multiboot 2 and MLE headers is used to implement DRTM for
-legacy (BIOS) boot. The separate entry point is used mainly to differentiate
-from other kinds of boots. It moves a magic number to EAX before jumping into
-common startup code.
+A combination of Multiboot 2 and MLE headers is used to implement DRTM. The
+separate entry point is used mainly to differentiate from other kinds of boots.
+For a legacy (BIOS) boot, it moves a magic number to EAX before jumping into
+common startup code.  For a EFI boot, it resumes execution of Xen.efi which was
+paused by handing control to a part of a bootloader responsible for initiating
+DRTM sequence.
 
 
 xen.gz
diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
index 7d1027a50f..af4dd16f8a 100644
--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -90,6 +90,7 @@ extra-y += xen.lds
 
 hostprogs-y += boot/mkelf32
 hostprogs-y += efi/mkreloc
+hostprogs-y += efi/fixmlehdr
 
 $(obj)/efi/mkreloc: HOSTCFLAGS += -I$(srctree)/include
 
@@ -141,6 +142,10 @@ $(TARGET): $(TARGET)-syms $(efi-y) $(obj)/boot/mkelf32
 
 CFLAGS-$(XEN_BUILD_EFI) += -DXEN_BUILD_EFI
 
+ifeq ($(XEN_BUILD_EFI),y)
+XEN_AFLAGS += -DXEN_BUILD_EFI
+endif
+
 $(TARGET)-syms: $(objtree)/prelink.o $(obj)/xen.lds
 	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds -N $< $(build_id_linker) \
 	    $(objtree)/common/symbols-dummy.o -o $(dot-target).0
@@ -210,7 +215,7 @@ note_file_option ?= $(note_file)
 
 extra-$(XEN_BUILD_PE) += efi.lds
 ifeq ($(XEN_BUILD_PE),y)
-$(TARGET).efi: $(objtree)/prelink.o $(note_file) $(obj)/efi.lds $(obj)/efi/relocs-dummy.o $(obj)/efi/mkreloc
+$(TARGET).efi: $(objtree)/prelink.o $(note_file) $(obj)/efi.lds $(obj)/efi/relocs-dummy.o $(obj)/efi/mkreloc $(obj)/efi/fixmlehdr
 ifeq ($(CONFIG_DEBUG_INFO),y)
 	$(if $(filter --strip-debug,$(EFI_LDFLAGS)),echo,:) "Will strip debug info from $(@F)"
 endif
@@ -237,6 +242,8 @@ endif
 	$(LD) $(call EFI_LDFLAGS,$(VIRT_BASE)) -T $(obj)/efi.lds -N $< \
 	      $(dot-target).1r.o $(dot-target).1s.o $(orphan-handling-y) \
 	      $(note_file_option) -o $@
+	# take image offset into account
+	$(obj)/efi/fixmlehdr $@ $(XEN_IMG_OFFSET)
 	$(NM) -pa --format=sysv $@ \
 		| $(objtree)/tools/symbols --all-symbols --xensyms --sysv --sort \
 		> $@.map
diff --git a/xen/arch/x86/boot/head.S b/xen/arch/x86/boot/head.S
index 3184b6883a..27b63fae32 100644
--- a/xen/arch/x86/boot/head.S
+++ b/xen/arch/x86/boot/head.S
@@ -397,6 +397,12 @@ slaunch_stub_entry:
         mov     %ebx, %esi
         sub     $sym_offs(slaunch_stub_entry), %esi
 
+#ifdef XEN_BUILD_EFI
+        /* If the flag is already set, then Xen should continue execution. */
+        cmpb    $0, sym_esi(slaunch_active)
+        jne     slaunch_efi_jumpback
+#endif
+
         /* On AMD, %ebp holds the base address of SLB, save it for later. */
         mov     %ebp, %ebx
 
@@ -836,6 +842,124 @@ trampoline_setup:
         /* Jump into the relocated trampoline. */
         lret
 
+#ifdef XEN_BUILD_EFI
+
+        /*
+         * The state matches that of slaunch_stub_entry above, but with %esi
+         * already initialized.
+         */
+slaunch_efi_jumpback:
+        lea     STACK_SIZE - CPUINFO_sizeof + sym_esi(cpu0_stack), %esp
+
+        /* Prepare gdt and segments. */
+        add     %esi, sym_esi(gdt_boot_base)
+        lgdt    sym_esi(gdt_boot_descr)
+
+        mov     $BOOT_DS, %ecx
+        mov     %ecx, %ds
+        mov     %ecx, %es
+        mov     %ecx, %ss
+
+        push    $BOOT_CS32
+        lea     sym_esi(.Lgdt_is_set),%edx
+        push    %edx
+        lret
+.Lgdt_is_set:
+
+        /*
+         * Stash TSC as above because it was zeroed on jumping into bootloader
+         * to not interfere with measurements.
+         */
+        rdtsc
+        mov     %eax,     sym_esi(boot_tsc_stamp)
+        mov     %edx, 4 + sym_esi(boot_tsc_stamp)
+
+        /*
+         * Clear the pagetables before the use. We are loaded below 4GiB and
+         * this avoids the need for writing to higher dword of each entry.
+         * Additionally, this ensures those dwords are actually zero and the
+         * mappings aren't manipulated from outside.
+         */
+        lea     sym_esi(bootmap_start), %edi
+        lea     sym_esi(bootmap_end), %ecx
+        sub     %edi, %ecx
+        xor     %eax, %eax
+        shr     $2, %ecx
+        rep stosl
+
+        /* 1x L1 page, 512 entries mapping total of 2M. */
+        lea     sym_esi(l1_bootmap), %edi
+        mov     $512, %ecx
+        mov     $(__PAGE_HYPERVISOR + 512 * PAGE_SIZE), %edx
+.Lfill_l1_identmap:
+        sub     $PAGE_SIZE, %edx
+        /* Loop runs for ecx=[512..1] for entries [511..0], hence -8. */
+        mov     %edx, -8(%edi,%ecx,8)
+        loop    .Lfill_l1_identmap
+
+        /* 4x L2 pages, each page mapping 1G of RAM. */
+        lea     sym_esi(l2_bootmap), %edi
+        /* 1st entry points to L1. */
+        lea     (sym_offs(l1_bootmap) + __PAGE_HYPERVISOR)(%esi), %edx
+        mov     %edx, (%edi)
+        /* Other entries are 2MB pages. */
+        mov     $(4 * 512 - 1), %ecx
+        /*
+         * Value below should be 4GB + flags, which wouldn't fit in 32b
+         * register. To avoid warning from the assembler, 4GB is skipped here.
+         * Substitution in first iteration makes the value roll over and point
+         * to 4GB - 2MB + flags.
+         */
+        mov     $(_PAGE_PSE + __PAGE_HYPERVISOR), %edx
+.Lfill_l2_identmap:
+        sub     $(1 << L2_PAGETABLE_SHIFT), %edx
+        /* Loop runs for ecx=[2047..1] for entries [2047..1]. */
+        mov     %edx, (%edi,%ecx,8)
+        loop    .Lfill_l2_identmap
+
+        /* 1x L3 page, mapping the 4x L2 pages. */
+        lea     sym_esi(l3_bootmap), %edi
+        mov     $4, %ecx
+        lea     (sym_offs(l2_bootmap) + 4 * PAGE_SIZE + __PAGE_HYPERVISOR)(%esi), %edx
+.Lfill_l3_identmap:
+        sub     $PAGE_SIZE, %edx
+        /* Loop runs for ecx=[4..1] for entries [3..0], hence -8. */
+        mov     %edx, -8(%edi,%ecx,8)
+        loop    .Lfill_l3_identmap
+
+        /* 1x L4 page, mapping the L3 page. */
+        lea     (sym_offs(l3_bootmap) + __PAGE_HYPERVISOR)(%esi), %edx
+        mov     %edx, sym_esi(l4_bootmap)
+
+        /* Restore CR4, PAE must be enabled before IA-32e mode */
+        mov     %cr4, %ecx
+        or      $X86_CR4_PAE, %ecx
+        mov     %ecx, %cr4
+
+        /* Load PML4 table location into PT base register */
+        lea     sym_esi(l4_bootmap), %eax
+        mov     %eax, %cr3
+
+        /* Enable IA-32e mode and paging */
+        mov     $MSR_EFER, %ecx
+        rdmsr
+        or      $EFER_LME >> 8, %ah
+        wrmsr
+
+        mov     %cr0, %eax
+        or      $X86_CR0_PG | X86_CR0_NE | X86_CR0_TS | X86_CR0_MP, %eax
+        mov     %eax, %cr0
+
+        /* Now in IA-32e compatibility mode, use lret to jump to 64b mode */
+        lea     sym_esi(start_xen_from_efi), %ecx
+        push    $BOOT_CS64
+        push    %ecx
+        lret
+
+.global start_xen_from_efi
+
+#endif /* XEN_BUILD_EFI */
+
 ENTRY(trampoline_start)
 #include "trampoline.S"
 ENTRY(trampoline_end)
diff --git a/xen/arch/x86/boot/x86_64.S b/xen/arch/x86/boot/x86_64.S
index ac33576d8f..67896f5fe5 100644
--- a/xen/arch/x86/boot/x86_64.S
+++ b/xen/arch/x86/boot/x86_64.S
@@ -221,14 +221,22 @@ GLOBAL(__page_tables_end)
 /* Init pagetables. Enough page directories to map into 4GB. */
         .section .init.data, "aw", @progbits
 
-DATA_LOCAL(l1_bootmap, PAGE_SIZE)
+bootmap_start:
+
+DATA_LOCAL(l1_bootmap, PAGE_SIZE) /* 1x L1 page, mapping 2M of RAM. */
         .fill L1_PAGETABLE_ENTRIES, 8, 0
 END(l1_bootmap)
 
-DATA(l2_bootmap, PAGE_SIZE)
+DATA(l2_bootmap, PAGE_SIZE) /* 4x L2 pages, each mapping 1G of RAM. */
         .fill 4 * L2_PAGETABLE_ENTRIES, 8, 0
 END(l2_bootmap)
 
-DATA(l3_bootmap, PAGE_SIZE)
+DATA(l3_bootmap, PAGE_SIZE) /* 1x L3 page, mapping the 4x L2 pages. */
         .fill L3_PAGETABLE_ENTRIES, 8, 0
 END(l3_bootmap)
+
+DATA_LOCAL(l4_bootmap, PAGE_SIZE) /* 1x L4 page, mapping the L3 page. */
+        .fill L4_PAGETABLE_ENTRIES, 8, 0
+END(l4_bootmap)
+
+bootmap_end:
diff --git a/xen/arch/x86/efi/efi-boot.h b/xen/arch/x86/efi/efi-boot.h
index 1d8902a9a7..1cfb4582d4 100644
--- a/xen/arch/x86/efi/efi-boot.h
+++ b/xen/arch/x86/efi/efi-boot.h
@@ -5,6 +5,12 @@
  */
 #include <xen/vga.h>
 
+/*
+ * Tell <asm/intel_txt.h> to access TXT registers without address translation
+ * which has not yet been set up.
+ */
+#define __EARLY_SLAUNCH__
+
 #include <asm/boot-helpers.h>
 #include <asm/e820.h>
 #include <asm/edd.h>
@@ -13,8 +19,11 @@
 #include <asm/setup.h>
 #include <asm/trampoline.h>
 #include <asm/efi.h>
+#include <asm/intel_txt.h>
+#include <asm/slaunch.h>
 
 static struct file __initdata ucode;
+static uint64_t __initdata xen_image_size;
 static multiboot_info_t __initdata mbi = {
     .flags = MBI_MODULES | MBI_LOADERNAME
 };
@@ -230,10 +239,29 @@ static void __init efi_arch_pre_exit_boot(void)
     }
 }
 
-static void __init noreturn efi_arch_post_exit_boot(void)
+void __init noreturn start_xen_from_efi(void)
 {
     u64 cr4 = XEN_MINIMAL_CR4 & ~X86_CR4_PGE, efer;
 
+    if ( slaunch_active )
+    {
+        struct slr_table *slrt = (struct slr_table *)efi.slr;
+        struct slr_entry_intel_info *intel_info;
+
+        intel_info = (struct slr_entry_intel_info *)
+            slr_next_entry_by_tag(slrt, NULL, SLR_ENTRY_INTEL_INFO);
+        if ( intel_info != NULL )
+        {
+            void *txt_heap = txt_init();
+            struct txt_os_mle_data *os_mle = txt_os_mle_data_start(txt_heap);
+            struct txt_os_sinit_data *os_sinit =
+                txt_os_sinit_data_start(txt_heap);
+
+            txt_verify_pmr_ranges(os_mle, os_sinit, intel_info, xen_phys_start,
+                                  xen_phys_start, xen_image_size);
+        }
+    }
+
     efi_arch_relocate_image(__XEN_VIRT_START - xen_phys_start);
     memcpy(_p(trampoline_phys), trampoline_start, cfg.size);
 
@@ -279,6 +307,65 @@ static void __init noreturn efi_arch_post_exit_boot(void)
     unreachable();
 }
 
+extern uint32_t slaunch_slrt;
+
+static void __init attempt_secure_launch(void)
+{
+    struct slr_table *slrt;
+    struct slr_entry_dl_info *dlinfo;
+    dl_handler_func handler_callback;
+
+    /* The presence of this table indicates a Secure Launch boot. */
+    slrt = (struct slr_table *)efi.slr;
+    if ( efi.slr == EFI_INVALID_TABLE_ADDR || slrt->magic != SLR_TABLE_MAGIC ||
+         slrt->revision != SLR_TABLE_REVISION )
+        return;
+
+    /* Avoid calls into firmware after DRTM. */
+    __clear_bit(EFI_RS, &efi_flags);
+
+    /*
+     * Make measurements less sensitive to hardware-specific details.
+     *
+     * Intentionally leaving efi_ct and efi_num_ct intact.
+     */
+    efi_ih = 0;
+    efi_bs = NULL;
+    efi_bs_revision = 0;
+    efi_rs = NULL;
+    efi_version = 0;
+    efi_fw_vendor = NULL;
+    efi_fw_revision = 0;
+    StdOut = NULL;
+    StdErr = NULL;
+    boot_tsc_stamp = 0;
+
+    slaunch_active = true;
+    slaunch_slrt = efi.slr;
+
+    /* Jump through DL stub to initiate Secure Launch. */
+    dlinfo = (struct slr_entry_dl_info *)
+        slr_next_entry_by_tag(slrt, NULL, SLR_ENTRY_DL_INFO);
+
+    handler_callback = (dl_handler_func)dlinfo->dl_handler;
+    handler_callback(&dlinfo->bl_context);
+
+    unreachable();
+}
+
+static void __init noreturn efi_arch_post_exit_boot(void)
+{
+    /*
+     * If Secure Launch happens, attempt_secure_launch() doesn't return and
+     * start_xen_from_efi() is invoked after DRTM has been initiated.
+     * Otherwise, attempt_secure_launch() returns and execution continues as
+     * usual.
+     */
+    attempt_secure_launch();
+
+    start_xen_from_efi();
+}
+
 static void __init efi_arch_cfg_file_early(const EFI_LOADED_IMAGE *image,
                                            EFI_FILE_HANDLE dir_handle,
                                            const char *section)
@@ -775,6 +862,7 @@ static void __init efi_arch_halt(void)
 static void __init efi_arch_load_addr_check(const EFI_LOADED_IMAGE *loaded_image)
 {
     xen_phys_start = (UINTN)loaded_image->ImageBase;
+    xen_image_size = loaded_image->ImageSize;
     if ( (xen_phys_start + loaded_image->ImageSize - 1) >> 32 )
         blexit(L"Xen must be loaded below 4Gb.");
     if ( xen_phys_start & ((1 << L2_PAGETABLE_SHIFT) - 1) )
diff --git a/xen/arch/x86/efi/fixmlehdr.c b/xen/arch/x86/efi/fixmlehdr.c
new file mode 100644
index 0000000000..d443f3d75d
--- /dev/null
+++ b/xen/arch/x86/efi/fixmlehdr.c
@@ -0,0 +1,122 @@
+#include <stdint.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#define PREFIX_SIZE (4*1024)
+
+struct mle_header
+{
+    uint8_t uuid[16];
+    uint32_t header_len;
+    uint32_t version;
+    uint32_t entry_point;
+    uint32_t first_valid_page;
+    uint32_t mle_start;
+    uint32_t mle_end;
+    uint32_t capabilities;
+    uint32_t cmdline_start;
+    uint32_t cmdline_end;
+} __attribute__ ((packed));
+
+static const uint8_t MLE_HEADER_UUID[] = {
+    0x5a, 0xac, 0x82, 0x90, 0x6f, 0x47, 0xa7, 0x74,
+    0x0f, 0x5c, 0x55, 0xa2, 0xcb, 0x51, 0xb6, 0x42
+};
+
+int main(int argc, char *argv[])
+{
+    FILE *fp;
+    struct mle_header header;
+    int i;
+    char *end_ptr;
+    long long correction;
+    const char *file_path;
+
+    if ( argc != 3 )
+    {
+        fprintf(stderr, "Usage: %s <xen.efi> <entry-correction>\n", argv[0]);
+        return 1;
+    }
+
+    correction = strtoll(argv[2], &end_ptr, 0);
+    if ( *end_ptr != '\0' )
+    {
+        fprintf(stderr, "Failed to parse '%s' as a number\n", argv[2]);
+        return 1;
+    }
+    if ( correction < INT32_MIN  )
+    {
+        fprintf(stderr, "Correction '%s' is too small\n", argv[2]);
+        return 1;
+    }
+    if ( correction > INT32_MAX  )
+    {
+        fprintf(stderr, "Correction '%s' is too large\n", argv[2]);
+        return 1;
+    }
+
+    file_path = argv[1];
+
+    fp = fopen(file_path, "r+");
+    if ( fp == NULL )
+    {
+        fprintf(stderr, "Failed to open %s\n", file_path);
+        return 1;
+    }
+
+    for ( i = 0; i < PREFIX_SIZE; i += 16 )
+    {
+        uint8_t bytes[16];
+
+        if ( fread(bytes, sizeof(bytes), 1, fp) != 1 )
+        {
+            fprintf(stderr, "Failed to find MLE header in %s\n", file_path);
+            goto fail;
+        }
+
+        if ( memcmp(bytes, MLE_HEADER_UUID, 16) == 0 )
+        {
+            break;
+        }
+    }
+
+    if ( i >= PREFIX_SIZE )
+    {
+        fprintf(stderr, "Failed to find MLE header in %s\n", file_path);
+        goto fail;
+    }
+
+    if ( fseek(fp, -16, SEEK_CUR) )
+    {
+        fprintf(stderr, "Failed to seek back to MLE header in %s\n", file_path);
+        goto fail;
+    }
+
+    if ( fread(&header, sizeof(header), 1, fp) != 1 )
+    {
+        fprintf(stderr, "Failed to read MLE header from %s\n", file_path);
+        goto fail;
+    }
+
+    if ( fseek(fp, -(int)sizeof(header), SEEK_CUR) )
+    {
+        fprintf(stderr, "Failed to seek back again to MLE header in %s\n",
+                file_path);
+        goto fail;
+    }
+
+    header.entry_point += correction;
+
+    if ( fwrite(&header, sizeof(header), 1, fp) != 1 )
+    {
+        fprintf(stderr, "Failed to write MLE header in %s\n", file_path);
+        goto fail;
+    }
+
+    return 0;
+
+fail:
+    fclose(fp);
+    return 1;
+}
diff --git a/xen/arch/x86/slaunch.c b/xen/arch/x86/slaunch.c
index 51a488a8e0..a4b7d00da5 100644
--- a/xen/arch/x86/slaunch.c
+++ b/xen/arch/x86/slaunch.c
@@ -5,6 +5,7 @@
  */
 
 #include <xen/compiler.h>
+#include <xen/efi.h>
 #include <xen/init.h>
 #include <xen/macros.h>
 #include <xen/mm.h>
@@ -243,10 +244,23 @@ check_drtm_policy(struct slr_table *slrt,
 {
     uint32_t i;
     uint32_t num_mod_entries;
+    int min_entries;
 
-    if ( policy->nr_entries < 2 )
-        panic("DRTM policy in SLRT contains less than 2 entries (%d)!\n",
-              policy->nr_entries);
+    min_entries = efi_enabled(EFI_BOOT) ? 1 : 2;
+    if ( policy->nr_entries < min_entries )
+    {
+        panic("DRTM policy in SLRT contains less than %d entries (%d)!\n",
+              min_entries, policy->nr_entries);
+    }
+
+    if ( efi_enabled(EFI_BOOT) )
+    {
+        check_slrt_policy_entry(&policy_entry[0], 0, slrt);
+        /* SLRT was measured in tpm_measure_slrt(). */
+        return 1;
+    }
+
+    /* This must be legacy MultiBoot2 boot. */
 
     /*
      * MBI policy entry must be the first one, so that measuring order matches
@@ -315,6 +329,7 @@ void __init slaunch_process_drtm_policy(const struct boot_info *bi)
     struct slr_table *slrt;
     struct slr_entry_policy *policy;
     struct slr_policy_entry *policy_entry;
+    int rc;
     uint16_t i;
     unsigned int measured;
 
@@ -330,7 +345,6 @@ void __init slaunch_process_drtm_policy(const struct boot_info *bi)
 
     for ( i = measured; i < policy->nr_entries; i++ )
     {
-        int rc;
         uint64_t start = policy_entry[i].entity;
         uint64_t size = policy_entry[i].size;
 
@@ -375,6 +389,58 @@ void __init slaunch_process_drtm_policy(const struct boot_info *bi)
 
         policy_entry[i].flags |= SLR_POLICY_FLAG_MEASURED;
     }
+
+    /*
+     * On x86 EFI platforms Xen reads its command-line options and kernel/initrd
+     * from configuration files (several can be chained). Bootloader can't know
+     * contents of the configuration beforehand without parsing it, so there
+     * will be no corresponding policy entries. Instead, measure command-line
+     * and all modules here.
+     */
+    if ( efi_enabled(EFI_BOOT) )
+    {
+#define LOG_DATA(str) (uint8_t *)(str), (sizeof(str) - 1)
+
+        tpm_hash_extend(DRTM_LOC, DRTM_DATA_PCR,
+                        (const uint8_t *)bi->cmdline, strlen(bi->cmdline),
+                        DLE_EVTYPE_SLAUNCH, LOG_DATA("Xen's command line"));
+
+        for ( i = 0; i < bi->nr_modules; i++ )
+        {
+            const struct boot_module *mod = &bi->mods[i];
+
+            paddr_t string = mod->cmdline_pa;
+            paddr_t start = mod->start;
+            size_t size = mod->size;
+
+            if ( mod->relocated || mod->released )
+            {
+                panic("A module \"%s\" (#%d) was consumed before measurement\n",
+                      (const char *)__va(string), i);
+            }
+
+            /*
+             * Measuring module's name separately because module's command-line
+             * parameters are appended to its name when present.
+             *
+             * 2 MiB is minimally mapped size and it should more than suffice.
+             */
+            rc = slaunch_map_l2(string, 2 * 1024 * 1024);
+            BUG_ON(rc != 0);
+
+            tpm_hash_extend(DRTM_LOC, DRTM_DATA_PCR,
+                            __va(string), strlen(__va(string)),
+                            DLE_EVTYPE_SLAUNCH, LOG_DATA("MB module string"));
+
+            rc = slaunch_map_l2(start, size);
+            BUG_ON(rc != 0);
+
+            tpm_hash_extend(DRTM_LOC, DRTM_CODE_PCR, __va(start), size,
+                            DLE_EVTYPE_SLAUNCH, LOG_DATA("MB module"));
+        }
+
+#undef LOG_DATA
+    }
 }
 
 int __init slaunch_map_l2(unsigned long paddr, unsigned long size)
diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c
index 143b5681ba..eb4ce6991a 100644
--- a/xen/common/efi/boot.c
+++ b/xen/common/efi/boot.c
@@ -19,6 +19,7 @@
 #if EFI_PAGE_SIZE != PAGE_SIZE
 # error Cannot use xen/pfn.h here!
 #endif
+#include <xen/slr_table.h>
 #include <xen/string.h>
 #include <xen/stringify.h>
 #ifdef CONFIG_X86
@@ -1004,6 +1005,7 @@ static void __init efi_tables(void)
         static EFI_GUID __initdata mps_guid = MPS_TABLE_GUID;
         static EFI_GUID __initdata smbios_guid = SMBIOS_TABLE_GUID;
         static EFI_GUID __initdata smbios3_guid = SMBIOS3_TABLE_GUID;
+        static EFI_GUID __initdata slr_guid = UEFI_SLR_TABLE_GUID;
 
         if ( match_guid(&acpi2_guid, &efi_ct[i].VendorGuid) )
             efi.acpi20 = (unsigned long)efi_ct[i].VendorTable;
@@ -1015,6 +1017,8 @@ static void __init efi_tables(void)
             efi.smbios = (unsigned long)efi_ct[i].VendorTable;
         if ( match_guid(&smbios3_guid, &efi_ct[i].VendorGuid) )
             efi.smbios3 = (unsigned long)efi_ct[i].VendorTable;
+        if ( match_guid(&slr_guid, &efi_ct[i].VendorGuid) )
+            efi.slr = (unsigned long)efi_ct[i].VendorTable;
         if ( match_guid(&esrt_guid, &efi_ct[i].VendorGuid) )
             esrt = (UINTN)efi_ct[i].VendorTable;
     }
diff --git a/xen/common/efi/runtime.c b/xen/common/efi/runtime.c
index 7e1fce291d..e1b339f162 100644
--- a/xen/common/efi/runtime.c
+++ b/xen/common/efi/runtime.c
@@ -70,6 +70,7 @@ struct efi __read_mostly efi = {
 	.mps    = EFI_INVALID_TABLE_ADDR,
 	.smbios = EFI_INVALID_TABLE_ADDR,
 	.smbios3 = EFI_INVALID_TABLE_ADDR,
+	.slr    = EFI_INVALID_TABLE_ADDR,
 };
 
 const struct efi_pci_rom *__read_mostly efi_pci_roms;
diff --git a/xen/include/xen/efi.h b/xen/include/xen/efi.h
index 160804e294..614dfce66a 100644
--- a/xen/include/xen/efi.h
+++ b/xen/include/xen/efi.h
@@ -19,6 +19,7 @@ struct efi {
     unsigned long acpi20;       /* ACPI table (ACPI 2.0) */
     unsigned long smbios;       /* SM BIOS table */
     unsigned long smbios3;      /* SMBIOS v3 table */
+    unsigned long slr;          /* SLR table */
 };
 
 extern struct efi efi;
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 22 15:11:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 15:11:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.962929.1354109 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7FHq-0003IG-4R; Tue, 22 Apr 2025 15:11:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 962929.1354109; Tue, 22 Apr 2025 15:11: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 1u7FHp-0003Fq-PU; Tue, 22 Apr 2025 15:11:49 +0000
Received: by outflank-mailman (input) for mailman id 962929;
 Tue, 22 Apr 2025 15:11: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=BiSK=XI=3mdeb.com=sergii.dmytruk@srs-se1.protection.inumbo.net>)
 id 1u7FE4-0000lQ-6G
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 15:07:56 +0000
Received: from 7.mo561.mail-out.ovh.net (7.mo561.mail-out.ovh.net
 [46.105.57.200]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 90ff1a55-1f8b-11f0-9eb0-5ba50f476ded;
 Tue, 22 Apr 2025 17:07:54 +0200 (CEST)
Received: from director3.ghost.mail-out.ovh.net (unknown [10.108.9.185])
 by mo561.mail-out.ovh.net (Postfix) with ESMTP id 4ZhlwT6KDtz1Vpv
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 15:07:53 +0000 (UTC)
Received: from ghost-submission-5b5ff79f4f-bdf69 (unknown [10.110.113.85])
 by director3.ghost.mail-out.ovh.net (Postfix) with ESMTPS id 470DD1FECE;
 Tue, 22 Apr 2025 15:07:53 +0000 (UTC)
Received: from 3mdeb.com ([37.59.142.113])
 by ghost-submission-5b5ff79f4f-bdf69 with ESMTPSA
 id PKeRB8mwB2gwAgEApOgNEw
 (envelope-from <sergii.dmytruk@3mdeb.com>); Tue, 22 Apr 2025 15:07: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: 90ff1a55-1f8b-11f0-9eb0-5ba50f476ded
Authentication-Results:garm.ovh; auth=pass (GARM-113S0070d80c0b3-fb59-4334-bfb1-fe97bb1ee1d4,
                    7E508E014E7E7C169EB13C6E22C3C4EBF1F0FDD7) smtp.auth=sergii.dmytruk@3mdeb.com
X-OVh-ClientIp:176.111.181.178
From: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
To: xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	trenchboot-devel@googlegroups.com
Subject: [PATCH 18/21] x86/boot: find MBI and SLRT on AMD
Date: Tue, 22 Apr 2025 18:06:52 +0300
Message-ID: <b65c10f13c3a20bb1c0ec9ce442d9d2b648a628c.1745172094.git.sergii.dmytruk@3mdeb.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <cover.1745172094.git.sergii.dmytruk@3mdeb.com>
References: <cover.1745172094.git.sergii.dmytruk@3mdeb.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Ovh-Tracer-Id: 12738713025288385692
X-VR-SPAMSTATE: OK
X-VR-SPAMSCORE: -100
X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvgeegtdehucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuqfggjfdpvefjgfevmfevgfenuceurghilhhouhhtmecuhedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurhephffvvefufffkofgjfhgggfestdekredtredttdenucfhrhhomhepufgvrhhgihhiucffmhihthhruhhkuceoshgvrhhgihhirdgumhihthhruhhkseefmhguvggsrdgtohhmqeenucggtffrrghtthgvrhhnpeekudegfeduieegudeijeelleekfedvvdfhheehvefhudekjeeifeegtdduveehtdenucffohhmrghinhephhgvrggurdhssgenucfkphepuddvjedrtddrtddruddpudejiedrudduuddrudekuddrudejkedpfeejrdehledrudegvddruddufeenucevlhhushhtvghrufhiiigvpedvnecurfgrrhgrmhepihhnvghtpeduvdejrddtrddtrddupdhmrghilhhfrhhomhepshgvrhhgihhirdgumhihthhruhhkseefmhguvggsrdgtohhmpdhnsggprhgtphhtthhopedupdhrtghpthhtohepgigvnhdquggvvhgvlheslhhishhtshdrgigvnhhprhhojhgvtghtrdhorhhgpdfovfetjfhoshhtpehmohehiedumgdpmhhouggvpehsmhhtphhouhht
DKIM-Signature: a=rsa-sha256; bh=sp9a+tVV+MdMlgl518lDopid9ohZl/zyTedobX0/Er8=;
 c=relaxed/relaxed; d=3mdeb.com; h=From; s=ovhmo3617313-selector1;
 t=1745334474; v=1;
 b=cODW4xUEiFo+3IyvWis60XNePxjrqZQ1fICmIOhjdsoNH91ZBBI9is4LyDyBRZ72HsPd9NrO
 D7nS0JjwnK9pK5nDhrRs/4htR+C4rgAPNTjOfXqgEMIe2v8Ln1t4sKHn8fjQyKuq8y0kSlIJuyL
 XwXodz+6MNlEtgr4tVM5wmTNkHFVGyk0W6YwNs7l1PdAmD5vsmUtlpB8WCJh67ePyKUk5D9LuMz
 8Rf1K/XXcIQb6vKlKXiIrtmAHA6WQELtpj/9qwbbKKd8mZTVDOm9g9JM1FAAyniSp7QZPd2HAIj
 km5FT6k2LHSELmBYfpUYd49jZl5SFi2W7beXxMwdYZwNA==

Use slr_entry_amd_info::boot_params_base on AMD with SKINIT to get MBI
location.

Another thing of interest is the location of SLRT which is bootloader's
data after SKL.

Signed-off-by: Krystian Hebel <krystian.hebel@3mdeb.com>
Signed-off-by: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
---
 xen/arch/x86/boot/head.S          | 38 ++++++++++++++++----
 xen/arch/x86/boot/slaunch_early.c | 58 +++++++++++++++++++++++++++++++
 2 files changed, 90 insertions(+), 6 deletions(-)

diff --git a/xen/arch/x86/boot/head.S b/xen/arch/x86/boot/head.S
index 419bf58d5c..3184b6883a 100644
--- a/xen/arch/x86/boot/head.S
+++ b/xen/arch/x86/boot/head.S
@@ -354,10 +354,12 @@ cs32_switch:
         jmp     *%edi
 
         /*
-         * Entry point for TrenchBoot Secure Launch on Intel TXT platforms.
+         * Entry point for TrenchBoot Secure Launch, common for Intel TXT and
+         * AMD Secure Startup, but state is slightly different.
          *
+         * On Intel:
          * CPU is in 32b protected mode with paging disabled. On entry:
-         * - %ebx = %eip = MLE entry point,
+         * - %ebx = %eip = this entry point,
          * - stack pointer is undefined,
          * - CS is flat 4GB code segment,
          * - DS, ES, SS, FS and GS are undefined according to TXT SDG, but this
@@ -375,13 +377,34 @@ cs32_switch:
          * - trying to enter real mode results in reset
          * - APs must be brought up by MONITOR or GETSEC[WAKEUP], depending on
          *   which is supported by a given SINIT ACM
+         *
+         * On AMD (as implemented by TrenchBoot's SKL):
+         * CPU is in 32b protected mode with paging disabled. On entry:
+         * - %ebx = %eip = this entry point,
+         * - %ebp holds base address of SKL
+         * - stack pointer is treated as undefined for parity with TXT,
+         * - CS is flat 4GB code segment,
+         * - DS, ES, SS are flat 4GB data segments, but treated as undefined for
+         *   parity with TXT.
+         *
+         * Additional restrictions:
+         * - interrupts (including NMIs and SMIs) are disabled and must be
+         *   enabled later
+         * - APs must be brought up by SIPI without an INIT
          */
 slaunch_stub_entry:
         /* Calculate the load base address. */
         mov     %ebx, %esi
         sub     $sym_offs(slaunch_stub_entry), %esi
 
-        /* Mark Secure Launch boot protocol and jump to common entry. */
+        /* On AMD, %ebp holds the base address of SLB, save it for later. */
+        mov     %ebp, %ebx
+
+        /*
+         * Mark Secure Launch boot protocol and jump to common entry. Note that
+         * all general purpose registers except %ebx and %esi are clobbered
+         * between here and .Lslaunch_proto.
+         */
         mov     $SLAUNCH_BOOTLOADER_MAGIC, %eax
         jmp     .Lset_stack
 
@@ -508,15 +531,18 @@ __start:
         sub     $8, %esp
 
         push    %esp                             /* pointer to output structure */
+        push    %ebx                             /* Slaunch parameter on AMD */
         lea     sym_offs(__2M_rwdata_end), %ecx  /* end of target image */
         lea     sym_offs(_start), %edx           /* target base address */
         mov     %esi, %eax                       /* load base address */
         /*
-         * slaunch_early_init(load/eax, tgt/edx, tgt_end/ecx, ret/stk) using
-         * fastcall calling convention.
+         * slaunch_early_init(load/eax, tgt/edx, tgt_end/ecx,
+         *                     slaunch/stk, ret/stk)
+         *
+         * Uses fastcall calling convention.
          */
         call    slaunch_early_init
-        add     $4, %esp                         /* pop the fourth parameter */
+        add     $8, %esp                         /* pop last two parameters */
 
         /* Move outputs of slaunch_early_init() from stack into registers. */
         pop     %eax  /* physical MBI address */
diff --git a/xen/arch/x86/boot/slaunch_early.c b/xen/arch/x86/boot/slaunch_early.c
index af8aa29ae0..d53faf8ab0 100644
--- a/xen/arch/x86/boot/slaunch_early.c
+++ b/xen/arch/x86/boot/slaunch_early.c
@@ -7,6 +7,20 @@
 #include <xen/slr_table.h>
 #include <xen/types.h>
 #include <asm/intel_txt.h>
+#include <asm/x86-vendors.h>
+
+/*
+ * The AMD-defined structure layout for the SLB. The last two fields are
+ * SL-specific.
+ */
+struct skinit_sl_header
+{
+    uint16_t skl_entry_point;
+    uint16_t length;
+    uint8_t reserved[62];
+    uint16_t skl_info_offset;
+    uint16_t bootloader_data_offset;
+} __packed;
 
 struct early_init_results
 {
@@ -14,9 +28,25 @@ struct early_init_results
     uint32_t slrt_pa;
 } __packed;
 
+static bool is_intel_cpu(void)
+{
+    /*
+     * asm/processor.h can't be included in early code, which means neither
+     * cpuid() function nor boot_cpu_data can be used here.
+     */
+    uint32_t eax, ebx, ecx, edx;
+    asm volatile ( "cpuid"
+          : "=a" (eax), "=b" (ebx), "=c" (ecx), "=d" (edx)
+          : "0" (0), "c" (0) );
+    return ebx == X86_VENDOR_INTEL_EBX
+        && ecx == X86_VENDOR_INTEL_ECX
+        && edx == X86_VENDOR_INTEL_EDX;
+}
+
 void slaunch_early_init(uint32_t load_base_addr,
                         uint32_t tgt_base_addr,
                         uint32_t tgt_end_addr,
+                        uint32_t slaunch_param,
                         struct early_init_results *result)
 {
     void *txt_heap;
@@ -26,6 +56,34 @@ void slaunch_early_init(uint32_t load_base_addr,
     struct slr_entry_intel_info *intel_info;
     uint32_t size = tgt_end_addr - tgt_base_addr;
 
+    if ( !is_intel_cpu() )
+    {
+        /*
+         * Not an Intel CPU. Currently the only other option is AMD with SKINIT
+         * and secure-kernel-loader (SKL).
+         */
+        struct slr_entry_amd_info *amd_info;
+        const struct skinit_sl_header *sl_header = (void *)slaunch_param;
+
+        /*
+         * slaunch_param holds a physical address of SLB.
+         * Bootloader's data is SLRT.
+         */
+        result->slrt_pa = slaunch_param + sl_header->bootloader_data_offset;
+        result->mbi_pa = 0;
+
+        slrt = (struct slr_table *)(uintptr_t)result->slrt_pa;
+
+        amd_info = (struct slr_entry_amd_info *)
+            slr_next_entry_by_tag(slrt, NULL, SLR_ENTRY_AMD_INFO);
+        /* Basic checks only, SKL checked and consumed the rest. */
+        if ( amd_info == NULL || amd_info->hdr.size != sizeof(*amd_info) )
+            return;
+
+        result->mbi_pa = amd_info->boot_params_base;
+        return;
+    }
+
     txt_heap = txt_init();
     os_mle = txt_os_mle_data_start(txt_heap);
     os_sinit = txt_os_sinit_data_start(txt_heap);
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 22 15:11:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 15:11:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.962932.1354128 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7FHt-0004B3-Jj; Tue, 22 Apr 2025 15:11:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 962932.1354128; Tue, 22 Apr 2025 15:11: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 1u7FHt-0004Ai-GQ; Tue, 22 Apr 2025 15:11:53 +0000
Received: by outflank-mailman (input) for mailman id 962932;
 Tue, 22 Apr 2025 15:11: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=BiSK=XI=3mdeb.com=sergii.dmytruk@srs-se1.protection.inumbo.net>)
 id 1u7FDf-0008SP-11
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 15:07:31 +0000
Received: from 20.mo561.mail-out.ovh.net (20.mo561.mail-out.ovh.net
 [178.33.47.94]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 809aa93f-1f8b-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 17:07:26 +0200 (CEST)
Received: from director11.ghost.mail-out.ovh.net (unknown [10.108.17.43])
 by mo561.mail-out.ovh.net (Postfix) with ESMTP id 4Zhlvy1SYxz1bff
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 15:07:26 +0000 (UTC)
Received: from ghost-submission-5b5ff79f4f-mvlcc (unknown [10.110.101.71])
 by director11.ghost.mail-out.ovh.net (Postfix) with ESMTPS id AB8761FEDA;
 Tue, 22 Apr 2025 15:07:25 +0000 (UTC)
Received: from 3mdeb.com ([37.59.142.98])
 by ghost-submission-5b5ff79f4f-mvlcc with ESMTPSA
 id on18H62wB2g6DAMAc7wzUg
 (envelope-from <sergii.dmytruk@3mdeb.com>); Tue, 22 Apr 2025 15:07: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: 809aa93f-1f8b-11f0-9ffb-bf95429c2676
Authentication-Results:garm.ovh; auth=pass (GARM-98R0025029bdf6-a19a-43c1-ab4f-c9279025d592,
                    7E508E014E7E7C169EB13C6E22C3C4EBF1F0FDD7) smtp.auth=sergii.dmytruk@3mdeb.com
X-OVh-ClientIp:176.111.181.178
From: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
To: xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	trenchboot-devel@googlegroups.com
Subject: [PATCH 08/21] x86/intel_txt.c: restore boot MTRRs
Date: Tue, 22 Apr 2025 18:06:42 +0300
Message-ID: <c30b55dbb0151c670a059e1793954db72c20e52c.1745172094.git.sergii.dmytruk@3mdeb.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <cover.1745172094.git.sergii.dmytruk@3mdeb.com>
References: <cover.1745172094.git.sergii.dmytruk@3mdeb.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Ovh-Tracer-Id: 12731113198865003676
X-VR-SPAMSTATE: OK
X-VR-SPAMSCORE: -100
X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvgeegtdehucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuqfggjfdpvefjgfevmfevgfenuceurghilhhouhhtmecuhedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurhephffvvefufffkofgjfhggtgfgsehtkeertdertdejnecuhfhrohhmpefuvghrghhiihcuffhmhihtrhhukhcuoehsvghrghhiihdrughmhihtrhhukhesfehmuggvsgdrtghomheqnecuggftrfgrthhtvghrnhepgeekffeiiedtveekhfdugeffveeigefgleegvdeghefftdetheefueeliedukedvnecukfhppeduvdejrddtrddtrddupddujeeirdduuddurddukedurddujeekpdefjedrheelrddugedvrdelkeenucevlhhushhtvghrufhiiigvpedunecurfgrrhgrmhepihhnvghtpeduvdejrddtrddtrddupdhmrghilhhfrhhomhepshgvrhhgihhirdgumhihthhruhhkseefmhguvggsrdgtohhmpdhnsggprhgtphhtthhopedupdhrtghpthhtohepgigvnhdquggvvhgvlheslhhishhtshdrgigvnhhprhhojhgvtghtrdhorhhgpdfovfetjfhoshhtpehmohehiedumgdpmhhouggvpehsmhhtphhouhht
DKIM-Signature: a=rsa-sha256; bh=atIJHb5u5BzMaEAqMtxR7F3lNcEkYecLrvOEGcPgaig=;
 c=relaxed/relaxed; d=3mdeb.com; h=From; s=ovhmo3617313-selector1;
 t=1745334446; v=1;
 b=JmKQN1Ex6ipXU3g+QLVq7J8OWcVlW2MZnYEoDgYOd3PhGi0iW2XDuwKoHB/933w5YcCsig6b
 0YFdfyFA1dibsNFt2wIHlQ2iqJf8LsUY8W5zIdFCNU/GEZE4Vw6sQOHEMhqFMilkHFFtKj/PIOI
 zpUJFd67bzvl6F2CRjVF8oH2OSVLwNlFwN64bM9MbcCRmtjGDcxWEZaICK5kkcslHpwOm3Vt8Be
 BCRm7Zjzq8L5QVP+HzPWtNcO00I5yV/6y1oXYKWplnI2ecjT6w237bjZ/Qn7A29iUU30Rubj2LA
 SiRdwzdArDUapboSYD4izkb5+YdSvVdD5HJ4jNhPVmjvg==

From: Krystian Hebel <krystian.hebel@3mdeb.com>

In preparation for TXT SENTER call, GRUB had to modify MTRR settings
to be UC for everything except SINIT ACM. Old values are restored
from SLRT where they were saved by the bootloader.

Signed-off-by: Krystian Hebel <krystian.hebel@3mdeb.com>
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Signed-off-by: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
---
 xen/arch/x86/e820.c                  |  5 ++
 xen/arch/x86/include/asm/intel_txt.h |  3 ++
 xen/arch/x86/intel_txt.c             | 75 ++++++++++++++++++++++++++++
 3 files changed, 83 insertions(+)

diff --git a/xen/arch/x86/e820.c b/xen/arch/x86/e820.c
index ca577c0bde..d105d1918a 100644
--- a/xen/arch/x86/e820.c
+++ b/xen/arch/x86/e820.c
@@ -11,6 +11,8 @@
 #include <asm/mtrr.h>
 #include <asm/msr.h>
 #include <asm/guest.h>
+#include <asm/intel_txt.h>
+#include <asm/slaunch.h>
 
 /*
  * opt_mem: Limit maximum address of physical RAM.
@@ -442,6 +444,9 @@ static uint64_t __init mtrr_top_of_ram(void)
     ASSERT(paddr_bits);
     addr_mask = ((1ULL << paddr_bits) - 1) & PAGE_MASK;
 
+    if ( slaunch_active )
+        txt_restore_mtrrs(e820_verbose);
+
     rdmsrl(MSR_MTRRcap, mtrr_cap);
     rdmsrl(MSR_MTRRdefType, mtrr_def);
 
diff --git a/xen/arch/x86/include/asm/intel_txt.h b/xen/arch/x86/include/asm/intel_txt.h
index 85ef9f6245..9083260cf9 100644
--- a/xen/arch/x86/include/asm/intel_txt.h
+++ b/xen/arch/x86/include/asm/intel_txt.h
@@ -402,4 +402,7 @@ void txt_map_mem_regions(void);
 /* Marks TXT-specific memory as used to avoid its corruption. */
 void txt_reserve_mem_regions(void);
 
+/* Restores original MTRR values saved by a bootloader before starting DRTM. */
+void txt_restore_mtrrs(bool e820_verbose);
+
 #endif /* __ASSEMBLY__ */
diff --git a/xen/arch/x86/intel_txt.c b/xen/arch/x86/intel_txt.c
index 4a4e404007..8ffcab0e61 100644
--- a/xen/arch/x86/intel_txt.c
+++ b/xen/arch/x86/intel_txt.c
@@ -10,6 +10,8 @@
 #include <xen/types.h>
 #include <asm/e820.h>
 #include <asm/intel_txt.h>
+#include <asm/msr.h>
+#include <asm/mtrr.h>
 #include <asm/slaunch.h>
 
 static uint64_t __initdata txt_heap_base, txt_heap_size;
@@ -100,3 +102,76 @@ void __init txt_reserve_mem_regions(void)
                      E820_UNUSABLE);
     BUG_ON(rc == 0);
 }
+
+void __init txt_restore_mtrrs(bool e820_verbose)
+{
+    struct slr_entry_intel_info *intel_info;
+    uint64_t mtrr_cap, mtrr_def, base, mask;
+    unsigned int i;
+    uint64_t def_type;
+    struct mtrr_pausing_state pausing_state;
+
+    rdmsrl(MSR_MTRRcap, mtrr_cap);
+    rdmsrl(MSR_MTRRdefType, mtrr_def);
+
+    if ( e820_verbose )
+    {
+        printk("MTRRs set previously for SINIT ACM:\n");
+        printk(" MTRR cap: %"PRIx64" type: %"PRIx64"\n", mtrr_cap, mtrr_def);
+
+        for ( i = 0; i < (uint8_t)mtrr_cap; i++ )
+        {
+            rdmsrl(MSR_IA32_MTRR_PHYSBASE(i), base);
+            rdmsrl(MSR_IA32_MTRR_PHYSMASK(i), mask);
+
+            printk(" MTRR[%d]: base %"PRIx64" mask %"PRIx64"\n",
+                   i, base, mask);
+        }
+    }
+
+    intel_info = (struct slr_entry_intel_info *)
+        slr_next_entry_by_tag(slaunch_get_slrt(), NULL, SLR_ENTRY_INTEL_INFO);
+
+    if ( (mtrr_cap & 0xFF) != intel_info->saved_bsp_mtrrs.mtrr_vcnt )
+    {
+        printk("Bootloader saved %ld MTRR values, but there should be %ld\n",
+               intel_info->saved_bsp_mtrrs.mtrr_vcnt, mtrr_cap & 0xFF);
+        /* Choose the smaller one to be on the safe side. */
+        mtrr_cap = (mtrr_cap & 0xFF) > intel_info->saved_bsp_mtrrs.mtrr_vcnt ?
+                   intel_info->saved_bsp_mtrrs.mtrr_vcnt : mtrr_cap;
+    }
+
+    def_type = intel_info->saved_bsp_mtrrs.default_mem_type;
+    pausing_state = mtrr_pause_caching();
+
+    for ( i = 0; i < (uint8_t)mtrr_cap; i++ )
+    {
+        base = intel_info->saved_bsp_mtrrs.mtrr_pair[i].mtrr_physbase;
+        mask = intel_info->saved_bsp_mtrrs.mtrr_pair[i].mtrr_physmask;
+        wrmsrl(MSR_IA32_MTRR_PHYSBASE(i), base);
+        wrmsrl(MSR_IA32_MTRR_PHYSMASK(i), mask);
+    }
+
+    pausing_state.def_type = def_type;
+    mtrr_resume_caching(pausing_state);
+
+    if ( e820_verbose )
+    {
+        printk("Restored MTRRs:\n"); /* Printed by caller, mtrr_top_of_ram(). */
+
+        /* If MTRRs are not enabled or WB is not a default type, MTRRs won't be printed */
+        if ( !test_bit(11, &def_type) || ((uint8_t)def_type == X86_MT_WB) )
+        {
+            for ( i = 0; i < (uint8_t)mtrr_cap; i++ )
+            {
+                rdmsrl(MSR_IA32_MTRR_PHYSBASE(i), base);
+                rdmsrl(MSR_IA32_MTRR_PHYSMASK(i), mask);
+                printk(" MTRR[%d]: base %"PRIx64" mask %"PRIx64"\n",
+                       i, base, mask);
+            }
+        }
+    }
+
+    /* Restore IA32_MISC_ENABLES */
+    wrmsrl(MSR_IA32_MISC_ENABLE, intel_info->saved_misc_enable_msr);
+}
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 22 15:23:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 15:23:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.963005.1354139 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7FTF-0008LG-NI; Tue, 22 Apr 2025 15:23:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 963005.1354139; Tue, 22 Apr 2025 15:23: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 1u7FTF-0008L9-Jl; Tue, 22 Apr 2025 15:23:37 +0000
Received: by outflank-mailman (input) for mailman id 963005;
 Tue, 22 Apr 2025 15:23: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=f4Vg=XI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u7FTE-0008L1-Ch
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 15:23:36 +0000
Received: from mail-wm1-x32c.google.com (mail-wm1-x32c.google.com
 [2a00:1450:4864:20::32c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c088c36b-1f8d-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 17:23:33 +0200 (CEST)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-43cf848528aso39747295e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 08:23:32 -0700 (PDT)
Received: from [10.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-4406d5bbe1csm180372725e9.24.2025.04.22.08.23.31
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 22 Apr 2025 08:23:31 -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: c088c36b-1f8d-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745335412; x=1745940212; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=A+dFIFkStbh8OoCB8gwOS5OmcsYKWmPAJW+RI/ru8BQ=;
        b=duB31LftXL/jIwjCAGS2e1AhYUYWdFVh9Kkl6f0EsRfkirK+mqVLEO7IqXkp49Ig51
         AE9RHdqhR9MHMO3fl+ihQSLLqAeZQ7ChIKZDuoYlzV7sogHPpjOkVPzfdxISaG0qzT/g
         GOBJ7t63Qt8qSMq0CCC1ipMQ3Bq1es0J02/WYYkVJzt3Z12cIwhXHewB0HYozxRw6GEO
         4AQZWj8vraA2/yB5dZjm64JtfX96ZcY2SDJiglKk2kMzhKbboasHGlh82AtjLAw4KNig
         z80k1h0Rf7EF1Ey84i1eZwmfvLy4KNHJDjXMbxCdg9Z21q+AeHfMS/NkwKkgWSfVMuKH
         7cPw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745335412; x=1745940212;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=A+dFIFkStbh8OoCB8gwOS5OmcsYKWmPAJW+RI/ru8BQ=;
        b=lOitqg/012G3ynvfSN9Wqnj81U4BOH/J+cX1INUDOo/lAnwK/XiHhlcOcNbez0Vynq
         XOrjHurM1vafFaJgD+HnZWndYbpgDiOs3NSeElxt9qhbSGRf8pOWc6Ok7FzFVfTocgcH
         jedQ7E4B4MippCP88zwn1NqDYZE4mKZoXrw3+oX7kv+I/M6o/WlvFsJmV1z9QfqX5DNa
         FgDJu01drslUb4rLuxHs6MjF9fqIC/M5w99r0ngrr15NyNSecfecWb5i8oU2WNQcRDh9
         Jm2NyDfgFsgT6rnsPWlPXiTjQdwXMdWv964JXqPlVr9Lu/J15h+iFMgJrfUs0jv+3eFw
         9NSg==
X-Forwarded-Encrypted: i=1; AJvYcCWhAeX/NmSQmBD300F6nLMu22E9CgpDfHxP8i1m2D+a3euFO2hDp98kP/uFiY/Ma8sApUil59rMmzk=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxe9dio39m3nTmlbRQj5H6e1isHQMR2WAgoOZncPYH+BH1x/zxp
	oyEshIzoH5wr3O/Ldhk46eYTCBCcUIiXmkz6h0JF6s3qBYmXv7+ll8jBXP+NOw==
X-Gm-Gg: ASbGnctfaHzgbT8plKT09A7kCLFOArszXPy+LpnMa8R5GFG8jwykH19r0z+nHpV7PY9
	dZhctr5VpHbQsrRrhLxL9eZvTVfI+pdpr0Yl24eRDhO1TQ1kiUw3vsVcnQItEnocN4zyxkWunhM
	Gprit98i3AZoCgBvJiONEv+Cp8FPTZmdotiK31AX3wmYTUp7CnzcBKIlzaT0L+/zGs8LnISBEIv
	ckht1IlmSjgS0b9DggZgl9VN+rxcBFGrbdwIqPsuuR9FiTxEf9hSSlKr5hcLHhKjFSkUfy7hs38
	jk/DpksaW5s4IBUOC/fQFCh58eNu9Z5Jy3vPAnAeW34jkRkVSHuWZ7jht1d59N4P5rR7WEJDMje
	ajN+umxLZpsFhacBLeup2RmywN8nVldMZYpKh
X-Google-Smtp-Source: AGHT+IHov0IEH8tmALj62+5UKNuImTfypssiO3bqJl1FsRgIsea+X2eU2+ja7hJN8m4phHG2OiCQ6g==
X-Received: by 2002:a05:600c:3acf:b0:43d:40b0:5b with SMTP id 5b1f17b1804b1-4406ac1fc09mr120989455e9.25.1745335412244;
        Tue, 22 Apr 2025 08:23:32 -0700 (PDT)
Message-ID: <6929b073-6a5f-4b34-af5b-96b7b5ac62d6@suse.com>
Date: Tue, 22 Apr 2025 17:23:30 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 00/21] x86: Trenchboot Secure Launch DRTM (Xen)
To: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Lukasz Hawrylko <lukasz@hawrylko.pl>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Mateusz_M=C3=B3wka?= <mateusz.mowka@intel.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, trenchboot-devel@googlegroups.com,
 xen-devel@lists.xenproject.org
References: <cover.1745172094.git.sergii.dmytruk@3mdeb.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/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.1745172094.git.sergii.dmytruk@3mdeb.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 22.04.2025 17:06, Sergii Dmytruk wrote:
> Kacper Stojek (2):
>   x86/boot: add MLE header and new entry point
>   xen/arch/x86: reserve TXT memory
> 
> Krystian Hebel (7):
>   x86/include/asm/intel_txt.h: constants and accessors for TXT registers
>     and heap
>   x86/boot/slaunch_early: early TXT checks and boot data retrieval
>   x86/intel_txt.c: restore boot MTRRs
>   lib/sha1.c: add file
>   x86/tpm.c: code for early hashing and extending PCRs (for TPM1.2)
>   x86/boot: choose AP stack based on APIC ID
>   x86/smpboot.c: TXT AP bringup
> 
> Michał Żygowski (2):
>   x86/hvm: Check for VMX in SMX when slaunch active
>   x86/cpu: report SMX, TXT and SKINIT capabilities
> 
> Sergii Dmytruk (10):
>   include/xen/slr_table.h: Secure Launch Resource Table definitions
>   x86/boot/slaunch_early: implement early initialization
>   x86/mtrr: expose functions for pausing caching
>   lib/sha256.c: add file
>   x86/tpm.c: support extending PCRs of TPM2.0
>   x86/tpm.c: implement event log for TPM2.0
>   arch/x86: process DRTM policy
>   x86/boot: find MBI and SLRT on AMD
>   arch/x86: support slaunch with AMD SKINIT
>   x86/slaunch: support EFI boot
> 
>  .gitignore                                  |    1 +
>  docs/hypervisor-guide/x86/how-xen-boots.rst |    7 +
>  xen/arch/x86/Makefile                       |   12 +-
>  xen/arch/x86/boot/Makefile                  |   10 +-
>  xen/arch/x86/boot/head.S                    |  250 +++++
>  xen/arch/x86/boot/slaunch_early.c           |  105 ++
>  xen/arch/x86/boot/trampoline.S              |   40 +-
>  xen/arch/x86/boot/x86_64.S                  |   42 +-
>  xen/arch/x86/cpu/amd.c                      |   14 +
>  xen/arch/x86/cpu/cpu.h                      |    1 +
>  xen/arch/x86/cpu/hygon.c                    |    1 +
>  xen/arch/x86/cpu/intel.c                    |   44 +
>  xen/arch/x86/cpu/mtrr/generic.c             |   51 +-
>  xen/arch/x86/e820.c                         |    5 +
>  xen/arch/x86/efi/efi-boot.h                 |   90 +-
>  xen/arch/x86/efi/fixmlehdr.c                |  122 +++
>  xen/arch/x86/hvm/vmx/vmcs.c                 |    3 +-
>  xen/arch/x86/include/asm/apicdef.h          |    4 +
>  xen/arch/x86/include/asm/intel_txt.h        |  452 ++++++++
>  xen/arch/x86/include/asm/mm.h               |    3 +
>  xen/arch/x86/include/asm/msr-index.h        |    3 +
>  xen/arch/x86/include/asm/mtrr.h             |    8 +
>  xen/arch/x86/include/asm/processor.h        |    1 +
>  xen/arch/x86/include/asm/slaunch.h          |   91 ++
>  xen/arch/x86/include/asm/tpm.h              |   19 +
>  xen/arch/x86/intel_txt.c                    |  177 ++++
>  xen/arch/x86/setup.c                        |   32 +-
>  xen/arch/x86/slaunch.c                      |  464 ++++++++
>  xen/arch/x86/smpboot.c                      |   57 +
>  xen/arch/x86/tboot.c                        |   20 +-
>  xen/arch/x86/tpm.c                          | 1057 +++++++++++++++++++
>  xen/common/efi/boot.c                       |    4 +
>  xen/common/efi/runtime.c                    |    1 +
>  xen/include/xen/efi.h                       |    1 +
>  xen/include/xen/sha1.h                      |   12 +
>  xen/include/xen/sha256.h                    |   12 +
>  xen/include/xen/slr_table.h                 |  274 +++++
>  xen/lib/Makefile                            |    2 +
>  xen/lib/sha1.c                              |  240 +++++
>  xen/lib/sha256.c                            |  238 +++++
>  40 files changed, 3914 insertions(+), 56 deletions(-)
>  create mode 100644 xen/arch/x86/boot/slaunch_early.c
>  create mode 100644 xen/arch/x86/efi/fixmlehdr.c
>  create mode 100644 xen/arch/x86/include/asm/intel_txt.h
>  create mode 100644 xen/arch/x86/include/asm/slaunch.h
>  create mode 100644 xen/arch/x86/include/asm/tpm.h
>  create mode 100644 xen/arch/x86/intel_txt.c
>  create mode 100644 xen/arch/x86/slaunch.c
>  create mode 100644 xen/arch/x86/tpm.c
>  create mode 100644 xen/include/xen/sha1.h
>  create mode 100644 xen/include/xen/sha256.h
>  create mode 100644 xen/include/xen/slr_table.h

Just one basic nit right here: In the names of new files you add, please
prefer dashes over underscores.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 22 15:25:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 15:25:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.963026.1354149 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7FVU-0000uj-5y; Tue, 22 Apr 2025 15:25:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 963026.1354149; Tue, 22 Apr 2025 15:25:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7FVU-0000uc-3U; Tue, 22 Apr 2025 15:25:56 +0000
Received: by outflank-mailman (input) for mailman id 963026;
 Tue, 22 Apr 2025 15:25: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=NnGu=XI=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1u7FIk-00053b-M7
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 15:12:46 +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 3ed5bc41-1f8c-11f0-9eb0-5ba50f476ded;
 Tue, 22 Apr 2025 17:12:46 +0200 (CEST)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-43edb40f357so39825935e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 08:12:45 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-64-225.play-internet.pl.
 [109.243.64.225]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4406d5acdd4sm176051415e9.14.2025.04.22.08.12.44
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 22 Apr 2025 08:12:44 -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: 3ed5bc41-1f8c-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1745334765; x=1745939565; darn=lists.xenproject.org;
        h=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=oiUqEBuY4Ss8TzKkuyi1daOGwN2KW+4XMKyBVzNRhfU=;
        b=iu+RlvdDqgpvCXHkrIohZCRyGje8Ly+uLZP64LFBxfpak68TIJmGKnodXLQtsGzYxc
         xjm8cpqoL6QKm3ZU6Dca+6R+5VyxEZxI8RDi2ba86kCrv3+lY1dF9Ko8jsvJ0M4iwbpu
         Ppoqy5J52SqpiDbkGcpwKYp9CLtmKCvAiWWtLLFqHG/S32PlozhzjLnCHk4XvqbIryNT
         Lhe1ZnKBiWmD4KRZaspwvx13uYRtgup3S08tXk3Y0aYRUKpbi/mlfoTRagZ8zko7DZb5
         r5I0gjXnhVywqyU+rz9ApXcM7cRnwArQk6av/VlI37k1g8idGmUqysPH0i2BSB7Tfmxq
         lOJg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745334765; x=1745939565;
        h=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=oiUqEBuY4Ss8TzKkuyi1daOGwN2KW+4XMKyBVzNRhfU=;
        b=HEfnhpEVxP+fjY3YvmmxM36KGJuRZWENt0eYh6tdqUYUvncRxAUSjnGYqUnhRjj6uK
         UP0YhPm9lR2fJ/r/1nyq5t2sjq56i2XRDqW5CrIdCt6VMiURQIZnSVsqhom9TKbGwxAR
         fEwW/41QtnZKLoCvt4FtK+uKTf2R9SM3KvYJxlwUIikry9+O/0KWI89Q8N0vGv1ioUmn
         EkjQVOREH1zPJNbCQ9lYrBFz6ECXFjdhlpW4wh6U0wyswlXGk+bZG5oNmjvgyleJ2Rik
         jZ6g1uoiSVxjNrpPYQJ9H+WJ1gjQ2K4eThr6GGRxNeEOpXsX9Y5zCEzkPv88SWSd/QXR
         /+vg==
X-Forwarded-Encrypted: i=1; AJvYcCVtVpSwylw27zHmSf7T0V+kG6GIlviqZhMHpiXw/c9kSaZOyjiGceQ/HB8J0S4GrE/t0qV0PbHxtWU=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx5wofsWkeKBw1UC9BqBYUFW2smD4Fpo28/iSEoGbfCp+xtkOJi
	wvycU/usQ+cK777ve8TjuNUPLhh66wwxJqIWObxwDiVj+iOOl90l
X-Gm-Gg: ASbGncuW0KOLj2yXjgfCi2g4CYTa5/C+o+r0vROAKLg+7odH5CIVfq83w8u2fKrHxLc
	a/48B99PLQEz0rZh3jwRmylYD4zUX+fpIZ7EAm8MPrzOZgwfAhZUgdaKZYcfl7UmYIC5JUzQilB
	SSSLf9w22DUxSnv8YWvvegVcJ0mUo8ixXVL3Hm9xQXDlm+Rc9mTmnrXVkw80zecqSmfy6Rdmyqh
	GS/jrGRc1K0/P+tyHAVuPqxARv2bLCwbytGj+SGIw0QCXV7fEvUStRQ2dSHm5VRSfBWfbp8M4eY
	Iycp+/8U9iXWRbQHWw0RSBQCVmzqWVYb2uRQGPTVzzSKPEaU4gDCigOiQ7dmCiIpPk3eU0kKnKE
	lOxqRz3QCYwpT6GhO
X-Google-Smtp-Source: AGHT+IERZlGz/oPhzxTG22sOsD9Gd4gkfx86jY4wtwNZkuUU5qA5pBbQ/7eEDxABrgUX7pPviZVucg==
X-Received: by 2002:a05:600c:3c9b:b0:43c:ec4c:25b1 with SMTP id 5b1f17b1804b1-4406abfbcd7mr127875805e9.23.1745334765263;
        Tue, 22 Apr 2025 08:12:45 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------5dwnZhe09JW5CNlehNPefJLI"
Message-ID: <3181aaf7-e1a8-48de-8f16-dad0dfad0cdc@gmail.com>
Date: Tue, 22 Apr 2025 17:12:44 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 5/8] asm-generic: move some parts of Arm's
 domain_build.h to common
To: Jan Beulich <jbeulich@suse.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <cover.1744626032.git.oleksii.kurochko@gmail.com>
 <1c67078147c4a89e46f253f040bef5046fac9ca9.1744626032.git.oleksii.kurochko@gmail.com>
 <1e7ba51b-8943-4001-be2f-9181e7362223@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <1e7ba51b-8943-4001-be2f-9181e7362223@suse.com>

This is a multi-part message in MIME format.
--------------5dwnZhe09JW5CNlehNPefJLI
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 4/17/25 4:36 PM, Jan Beulich wrote:
> On 14.04.2025 17:56, Oleksii Kurochko wrote:
>> --- /dev/null
>> +++ b/xen/include/xen/fdt-domain-build.h
>> @@ -0,0 +1,46 @@
>> +/* SPDX-License-Identifier: GPL-2.0-only */
>> +#ifndef __XEN_FDT_DOMAIN_BUILD_H__
>> +#define __XEN_FDT_DOMAIN_BUILD_H__
>> +
>> +#include <xen/bootfdt.h>
>> +#include <xen/device_tree.h>
>> +#include <xen/fdt-kernel.h>
>> +#include <xen/types.h>
>> +
>> +#if __has_include(<asm/domain_build.h>)
>> +#   include <asm/domain_build.h>
>> +#endif
> Why is this conditional include needed? There's ...

To use everywhere just the generic header xen/fdt-domain-build.h instead of both
xen/fdt-domain-build.h and <asm/domain_build.h>.

~ Oleksii

>
>> +struct domain;
>> +struct page_info;
>> +struct membanks;
>> +
>> +typedef bool (*alloc_domheap_mem_cb)(struct domain *d, struct page_info *pg,
>> +                                     unsigned int order, void *extra);
>> +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 make_chosen_node(const struct kernel_info *kinfo);
>> +int make_cpus_node(const struct domain *d, void *fdt);
>> +int make_hypervisor_node(struct domain *d, const struct kernel_info *kinfo,
>> +                         int addrcells, int sizecells);
>> +int make_memory_node(const struct kernel_info *kinfo, int addrcells,
>> +                     int sizecells, const struct membanks *mem);
>> +int make_timer_node(const struct kernel_info *kinfo);
>> +
>> +unsigned int get_allocation_size(paddr_t size);
>> +
>> +#endif /* __XEN_FDT_DOMAIN_BUILD_H__ */
> ... nothing here showing any dependency thereon.
>
> Jan
--------------5dwnZhe09JW5CNlehNPefJLI
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 4/17/25 4:36 PM, Jan Beulich wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:1e7ba51b-8943-4001-be2f-9181e7362223@suse.com">
      <pre wrap="" class="moz-quote-pre">On 14.04.2025 17:56, Oleksii Kurochko wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">--- /dev/null
+++ b/xen/include/xen/fdt-domain-build.h
@@ -0,0 +1,46 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+#ifndef __XEN_FDT_DOMAIN_BUILD_H__
+#define __XEN_FDT_DOMAIN_BUILD_H__
+
+#include &lt;xen/bootfdt.h&gt;
+#include &lt;xen/device_tree.h&gt;
+#include &lt;xen/fdt-kernel.h&gt;
+#include &lt;xen/types.h&gt;
+
+#if __has_include(&lt;asm/domain_build.h&gt;)
+#   include &lt;asm/domain_build.h&gt;
+#endif
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Why is this conditional include needed? There's ...</pre>
    </blockquote>
    <pre>To use everywhere just the generic header xen/fdt-domain-build.h instead of both
xen/fdt-domain-build.h and &lt;asm/domain_build.h&gt;.

~ Oleksii
</pre>
    <blockquote type="cite"
      cite="mid:1e7ba51b-8943-4001-be2f-9181e7362223@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+struct domain;
+struct page_info;
+struct membanks;
+
+typedef bool (*alloc_domheap_mem_cb)(struct domain *d, struct page_info *pg,
+                                     unsigned int order, void *extra);
+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 make_chosen_node(const struct kernel_info *kinfo);
+int make_cpus_node(const struct domain *d, void *fdt);
+int make_hypervisor_node(struct domain *d, const struct kernel_info *kinfo,
+                         int addrcells, int sizecells);
+int make_memory_node(const struct kernel_info *kinfo, int addrcells,
+                     int sizecells, const struct membanks *mem);
+int make_timer_node(const struct kernel_info *kinfo);
+
+unsigned int get_allocation_size(paddr_t size);
+
+#endif /* __XEN_FDT_DOMAIN_BUILD_H__ */
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
... nothing here showing any dependency thereon.

Jan
</pre>
    </blockquote>
  </body>
</html>

--------------5dwnZhe09JW5CNlehNPefJLI--


From xen-devel-bounces@lists.xenproject.org Tue Apr 22 15:26:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 15:26:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.963043.1354159 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7FW5-0001SF-Dt; Tue, 22 Apr 2025 15:26:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 963043.1354159; Tue, 22 Apr 2025 15:26: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 1u7FW5-0001S8-AY; Tue, 22 Apr 2025 15:26:33 +0000
Received: by outflank-mailman (input) for mailman id 963043;
 Tue, 22 Apr 2025 15: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=NnGu=XI=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1u7FW3-0001BV-Q1
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 15:26:31 +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 2877fe4a-1f8e-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 17:26:27 +0200 (CEST)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-43ede096d73so39279615e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 08:26:27 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-64-225.play-internet.pl.
 [109.243.64.225]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4406d5acccdsm175431155e9.11.2025.04.22.08.26.24
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 22 Apr 2025 08:26:26 -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: 2877fe4a-1f8e-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1745335586; x=1745940386; darn=lists.xenproject.org;
        h=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=2i+b3sG20yNAfVUCtSo4JTOzMhUrm01QUTcDtC3O6a0=;
        b=U19urJKmQqAWqMtdtSz95eS+MClN1HvA+nYRDepdeA9Cn6X3Erh0k6gEtOEW2Lal11
         C6Y9fU7yuj8+7hDMrriorcpgQcGy8712fECMagh8INp+CeKi1gVx0txwdTbv6i/Kvvwo
         RqXiJGQaaOLGxmQ9YbBLZAuXkTfZWt3499teOxn7uJod8HjASEmtZh2BwDj+Cut9vzpc
         LN/vHAG8lBDHBm3mYpXzxiiKlvRmX75nu2VR3y1q+ZTWn9/PGiPY7sFstwtsjr6AmmUD
         clGhSVVAx5CDs5Uza4LoUoBoB70Ds+8XTaYSg0TuJEMDCmhrS9Fn04fsF41LqejbGmWf
         sAvQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745335586; x=1745940386;
        h=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=2i+b3sG20yNAfVUCtSo4JTOzMhUrm01QUTcDtC3O6a0=;
        b=oxklElPdNiMOHM0EeL0rg387RR1KvOxz+v9rsGwJMYKAQXgExOh1mR0pAOU7wJTj+B
         lbT91giC7CmVi2dNfLONGh8q8/7vlGFKMRUl3tVNCCZ2aHlyOu3Clfz87neComymPtyY
         hTeZVyXpJOTUe9qulDKs5ksmvCh54dAmusa+ViIju99YGleEQvq5HIfvL2AT5z+f0AKl
         kUIDEE2d4e6/fhBctx00ZPUBoAd+U97Wp4c1DUQ1RzNZ439c+hpWHpErDNbDgnE7MAaC
         B8Y3l1Axdnh0DhOYBSN+G80N+pIBb8UZnYFtw/lHcFAEjQWJq6gtP6hVTrZ/WoGe2d6k
         mPBw==
X-Forwarded-Encrypted: i=1; AJvYcCXaU2XHUi6N2TeY+LwlNVUaAcpfHunYq9PIZKF9glRjBGq5+ME2DGUabckQRwCWbrZ5f9h76GFRytw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwtPArWXVHWpQ1ufHr2rxdq34FZMdNlw9GdwKhdc38/qZeJpN+t
	WVSybPybCzm4gxjI8ktDIsj2P1KMP1D5jSkEEbR0g42RrVj/yxmy
X-Gm-Gg: ASbGncubhaCs7nZ1dwzEH4fTcX3p76QrOi7Mn0NDk+QKHcmQW2bvw9EAHCowKs1wIpO
	fEPFbqf1byiIs9197QFwKVCouX0jd0AJ9e/JC5Mc069J/3vhR+W15DQ7Msyp59cWLxNArPsjxCa
	0uckDThOsk2mQwgdvrNEhQwtIk2lEScf8rJ7BgCCdtIBxPtywaULOZZmSoyl5KxWo5RgUTRVpTp
	AorrOpwqGHwmPM0zRBLabAzO+ea9GKcveplBSQ35AYtSmBS7wodrHQIh6FcfK+j05j0MG8ymZo/
	1rAHM2CDn+czxkSjeTQJFYqmHPi4/8/760IXd2+n+h1tESDALpHySvpwxqlCWhCI1CbROIlXp1p
	54vBqYP9VpDdXkrcX
X-Google-Smtp-Source: AGHT+IET30Bf3iJASEFOK54y1bumZUsTSU5F8JDqdnMgPzjpFnDysZ7tQv/69K1JXIkob+R1nOZrVw==
X-Received: by 2002:a05:6000:c08:b0:3a0:65bc:3543 with SMTP id ffacd0b85a97d-3a065bc358amr447562f8f.35.1745335586533;
        Tue, 22 Apr 2025 08:26:26 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------HNrnkjgiINFiv5zEhkZO2Fg5"
Message-ID: <6010658f-9e29-40d9-902c-890cb27a2a4b@gmail.com>
Date: Tue, 22 Apr 2025 17:26:24 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 7/8] xen/common: dom0less: introduce common
 domain-build.c
To: Jan Beulich <jbeulich@suse.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <cover.1744626032.git.oleksii.kurochko@gmail.com>
 <9dbf651ce177a7292f80879373e86a51305f216e.1744626032.git.oleksii.kurochko@gmail.com>
 <faa552cb-d933-492b-b3ed-e803856265ab@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <faa552cb-d933-492b-b3ed-e803856265ab@suse.com>

This is a multi-part message in MIME format.
--------------HNrnkjgiINFiv5zEhkZO2Fg5
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 4/17/25 4:45 PM, Jan Beulich wrote:
> On 14.04.2025 17:56, Oleksii Kurochko wrote:
>> --- a/xen/include/xen/fdt-domain-build.h
>> +++ b/xen/include/xen/fdt-domain-build.h
>> @@ -5,6 +5,7 @@
>>   #include <xen/bootfdt.h>
>>   #include <xen/device_tree.h>
>>   #include <xen/fdt-kernel.h>
>> +#include <xen/mm.h>
>>   #include <xen/types.h>
>>   
>>   #if __has_include(<asm/domain_build.h>)
>> @@ -32,7 +33,37 @@ int make_memory_node(const struct kernel_info *kinfo, int addrcells,
>>                        int sizecells, const struct membanks *mem);
>>   int make_timer_node(const struct kernel_info *kinfo);
>>   
>> -unsigned int get_allocation_size(paddr_t size);
>> +
>> +static inline int get_allocation_size(paddr_t size)
>> +{
>> +    /*
>> +     * get_order_from_bytes returns the order greater than or equal to
>> +     * the given size, but we need less than or equal. Adding one to
>> +     * the size pushes an evenly aligned size into the next order, so
>> +     * we can then unconditionally subtract 1 from the order which is
>> +     * returned.
>> +     */
>> +    return get_order_from_bytes(size + 1) - 1;
>> +}
>> +
>> +typedef unsigned long (*copy_to_guest_phys_cb)(struct domain *d,
>> +                                               paddr_t gpa,
>> +                                               void *buf,
> This very much looks like the latest now, when the code is made common,
> it wants to be const void *. Even if this may require another prereq
> patch.
>
> However, instead of using a function pointer, couldn't the now common
> code call copy_to_guest_phys_flush_dcache() conditionally upon
> IS_ENABLED(CONFIG_<whatever>)?

I thought about having IS_ENABLED(CONFIG_ARM) as, at the moment, this is necessary to
be called only for Arm as guest domain on Arm could be ran with cache disabled so to be sure
that DTB, kernel and initrd is fully in RAM this function should be called.

For RISC-V, it isn't possible case as guest domain won't run with cache disabled.

> Or provide a weak
> copy_to_guest_phys_flush_dcache() which would simply call
> copy_to_guest_phys()?

Could it be a weak function with empty implementation?
Is copy_to_guest_phys() implemented for other archs?


~ Oleksii

--------------HNrnkjgiINFiv5zEhkZO2Fg5
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 4/17/25 4:45 PM, Jan Beulich wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:faa552cb-d933-492b-b3ed-e803856265ab@suse.com">
      <pre wrap="" class="moz-quote-pre">On 14.04.2025 17:56, Oleksii Kurochko wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">--- a/xen/include/xen/fdt-domain-build.h
+++ b/xen/include/xen/fdt-domain-build.h
@@ -5,6 +5,7 @@
 #include &lt;xen/bootfdt.h&gt;
 #include &lt;xen/device_tree.h&gt;
 #include &lt;xen/fdt-kernel.h&gt;
+#include &lt;xen/mm.h&gt;
 #include &lt;xen/types.h&gt;
 
 #if __has_include(&lt;asm/domain_build.h&gt;)
@@ -32,7 +33,37 @@ int make_memory_node(const struct kernel_info *kinfo, int addrcells,
                      int sizecells, const struct membanks *mem);
 int make_timer_node(const struct kernel_info *kinfo);
 
-unsigned int get_allocation_size(paddr_t size);
+
+static inline int get_allocation_size(paddr_t size)
+{
+    /*
+     * get_order_from_bytes returns the order greater than or equal to
+     * the given size, but we need less than or equal. Adding one to
+     * the size pushes an evenly aligned size into the next order, so
+     * we can then unconditionally subtract 1 from the order which is
+     * returned.
+     */
+    return get_order_from_bytes(size + 1) - 1;
+}
+
+typedef unsigned long (*copy_to_guest_phys_cb)(struct domain *d,
+                                               paddr_t gpa,
+                                               void *buf,
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
This very much looks like the latest now, when the code is made common,
it wants to be const void *. Even if this may require another prereq
patch.

However, instead of using a function pointer, couldn't the now common
code call copy_to_guest_phys_flush_dcache() conditionally upon
IS_ENABLED(CONFIG_&lt;whatever&gt;)? </pre>
    </blockquote>
    <pre>I thought about having IS_ENABLED(CONFIG_ARM) as, at the moment, this is necessary to
be called only for Arm as guest domain on Arm could be ran with cache disabled so to be sure
that DTB, kernel and initrd is fully in RAM this function should be called.

For RISC-V, it isn't possible case as guest domain won't run with cache disabled.
</pre>
    <blockquote type="cite"
      cite="mid:faa552cb-d933-492b-b3ed-e803856265ab@suse.com">
      <pre wrap="" class="moz-quote-pre">Or provide a weak
copy_to_guest_phys_flush_dcache() which would simply call
copy_to_guest_phys()?</pre>
    </blockquote>
    <pre>Could it be a weak function with empty implementation?
Is copy_to_guest_phys() implemented for other archs?


~ Oleksii</pre>
  </body>
</html>

--------------HNrnkjgiINFiv5zEhkZO2Fg5--


From xen-devel-bounces@lists.xenproject.org Tue Apr 22 15:36:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 15:36:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.963118.1354169 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7Ffi-0006Xd-Ap; Tue, 22 Apr 2025 15:36:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 963118.1354169; Tue, 22 Apr 2025 15:36: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 1u7Ffi-0006XW-6y; Tue, 22 Apr 2025 15:36:30 +0000
Received: by outflank-mailman (input) for mailman id 963118;
 Tue, 22 Apr 2025 15:36: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=f4Vg=XI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u7Ffg-0006Us-AB
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 15:36:28 +0000
Received: from mail-wm1-x32c.google.com (mail-wm1-x32c.google.com
 [2a00:1450:4864:20::32c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8c8293d0-1f8f-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 17:36:24 +0200 (CEST)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-4394a0c65fcso58735255e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 08:36:24 -0700 (PDT)
Received: from [10.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-4406d6db1b3sm180775875e9.29.2025.04.22.08.36.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 22 Apr 2025 08:36: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: 8c8293d0-1f8f-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745336184; x=1745940984; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=E5L5GIdUonFlQn7DbV5XuGRLBKT2L2yQDEKrOzFLrOg=;
        b=AQFlKT56cejkwVkbJc0lmtyOgx5lmKaWeMhRS5NmmBU/dQTo5LVr0z5szZIup6GiR5
         hw6JTQ8GqcAqjffDHa0d+wOds4bhwjRIXZxIEDob0g2ox604xvIZulfMBqP+udi4WDp1
         OBS9K8bY2rI2IGy18TiAG+UgnY4S8XzHQGEtqEja5oLtsh6dpIIZobu221z0CzjJYnuv
         qXbteJdq30A4gXKxK1gEykv8SaAyEHS/bOUNiH17mnYqc9G8PJyJtUkNGB+5nOgJBERW
         TpU8Do7C5I6VmZq/6d2KKQmYvGAW4GI8A8tHYAXRe2Shp8dVI7zPSF/e0bgflMZ73cfl
         bu5w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745336184; x=1745940984;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=E5L5GIdUonFlQn7DbV5XuGRLBKT2L2yQDEKrOzFLrOg=;
        b=xKd583ty1pPHprRLV1WQe3kNckuWafQPGpC/AjgUBR1df4JfZ9d4bRQnquVD8zCRxj
         bTlBWhnDB98ZfPoO5JvBDYU1f09Zdtl1hfI3exrtq1TxaMtdR7RkISYa4XtFAAZG/BRd
         xIak7pMxFqtSSyn8AwmIBnbIV0Za+KLKuiqtLrdiArAyHbgGNzK07ECSbVxM2Sn8Y1VL
         VCChgq1e7GO2CorpbVWiG2mOWV7uk05jnN86oP98bYFmkh+E+D0+da5GCofMi5jj6Z6s
         VwEypgrKJJVlwPA0l4yOnqBqXr4E79WQQ/t+VKQIZTOWl5CLZuvDK9fDEjwHxTYqbqI/
         YUow==
X-Forwarded-Encrypted: i=1; AJvYcCVn4pgy2W32PxPu/AlMFJ9tiKwnrR/bupfm3EFVQpbqgH/n4beQKVHNcJEwD/O18A1ECqvcgFVVIMk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyxKCPXdCGpwPLQQ5oExKGVJa9Yk4RYvb0+upiIi+gAuaBt8VV9
	Znoat7T0yk/IGySK8aC4ZKUWNaVgTzq7tanLn+FY3qqZgV1ZYhvuSGTy1bbhrQ==
X-Gm-Gg: ASbGncvxs5gRg54zcjiAmaQMrpLbS+mOmGaxzCR4jr7vplJ+fItm/RqoEm1crE10K5m
	AVPp65UBHla10/9G+CL2rxTcjf4wtiVnrVgkrjNeC0x2gfg/8ft1KeqtN/yjwoJDw4CpYEEGQGX
	xxOKUDOhaS7sURmFXDcxWtouLa7SWEx1VryKOsGTCkbFQH3Fs/MMtMVpo3y3AYaHRyGRNCef63r
	o2+wfc7xdHTXG3raecKVY+b94rmZZ3/x0+dJuNhTaFmeaiZUDj8puTgMVofM3g5SmAYHbubkRTt
	qv6MlH7kFRtOIlLOvUFgHEynhXTkD8MRk3wDB6eJhEMY0NscRlfKQUICT1fNJZVqzxsbFdzQJVM
	J7UUh1bVCoFpsEQG3H8V319kwwQ==
X-Google-Smtp-Source: AGHT+IHR9THzz0vb8F5y3c1q45QrTQLVge0OmO9gMmFd7h3X3/BR+nPdntu/u4zIJAG/7LIigCBE0A==
X-Received: by 2002:a05:600c:a4b:b0:43d:683:8cb2 with SMTP id 5b1f17b1804b1-4406ab96871mr158178465e9.14.1745336183653;
        Tue, 22 Apr 2025 08:36:23 -0700 (PDT)
Message-ID: <a0dcf27e-a066-4e5f-97b2-e5f178e1b941@suse.com>
Date: Tue, 22 Apr 2025 17:36:22 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 09/21] lib/sha1.c: add file
To: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>,
 Krystian Hebel <krystian.hebel@3mdeb.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 trenchboot-devel@googlegroups.com, xen-devel@lists.xenproject.org
References: <cover.1745172094.git.sergii.dmytruk@3mdeb.com>
 <8dec423182ed60e2233ed87d98066fed6dc20caf.1745172094.git.sergii.dmytruk@3mdeb.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <8dec423182ed60e2233ed87d98066fed6dc20caf.1745172094.git.sergii.dmytruk@3mdeb.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 22.04.2025 17:06, Sergii Dmytruk wrote:
> From: Krystian Hebel <krystian.hebel@3mdeb.com>
> 
> The code comes from [1] and is licensed under GPL-2.0 license.
> It's a combination of:
>  - include/crypto/sha1.h
>  - include/crypto/sha1_base.h
>  - lib/crypto/sha1.c
>  - crypto/sha1_generic.c
> 
> Changes:
>  - includes
>  - formatting
>  - renames and splicing of some trivial functions that are called once
>  - dropping of `int` return values (only zero was ever returned)
>  - getting rid of references to `struct shash_desc`

Since you did move the code to (largely) Xen style, a few further requests
in that direction:

> --- /dev/null
> +++ b/xen/include/xen/sha1.h
> @@ -0,0 +1,12 @@
> +/* SPDX-License-Identifier: GPL-2.0 */
> +
> +#ifndef __XEN_SHA1_H
> +#define __XEN_SHA1_H
> +
> +#include <xen/inttypes.h>
> +
> +#define SHA1_DIGEST_SIZE  20
> +
> +void sha1_hash(const u8 *data, unsigned int len, u8 *out);

uint8_t please in both instances here, and more generally {,u}int<N>_t
in place of {s,u}<N>.

> --- a/xen/lib/Makefile
> +++ b/xen/lib/Makefile
> @@ -38,6 +38,7 @@ lib-y += strtoll.o
>  lib-y += strtoul.o
>  lib-y += strtoull.o
>  lib-$(CONFIG_X86) += x86-generic-hweightl.o
> +lib-$(CONFIG_X86) += sha1.o

Please obey to alphabetic sorting.

> --- /dev/null
> +++ b/xen/lib/sha1.c
> @@ -0,0 +1,240 @@
> +/* SPDX-License-Identifier: GPL-2.0 */
> +/*
> + * SHA1 routine optimized to do word accesses rather than byte accesses,
> + * and to avoid unnecessary copies into the context array.
> + *
> + * This was based on the git SHA1 implementation.
> + */
> +
> +#include <xen/bitops.h>
> +#include <xen/types.h>
> +#include <xen/sha1.h>
> +#include <xen/unaligned.h>
> +
> +/*
> + * If you have 32 registers or more, the compiler can (and should)
> + * try to change the array[] accesses into registers. However, on
> + * machines with less than ~25 registers, that won't really work,
> + * and at least gcc will make an unholy mess of it.
> + *
> + * So to avoid that mess which just slows things down, we force
> + * the stores to memory to actually happen (we might be better off
> + * with a 'W(t)=(val);asm("":"+m" (W(t))' there instead, as
> + * suggested by Artur Skawina - that will also make gcc unable to
> + * try to do the silly "optimize away loads" part because it won't
> + * see what the value will be).
> + *
> + * Ben Herrenschmidt reports that on PPC, the C version comes close
> + * to the optimized asm with this (ie on PPC you don't want that
> + * 'volatile', since there are lots of registers).
> + *
> + * On ARM we get the best code generation by forcing a full memory barrier
> + * between each SHA_ROUND, otherwise gcc happily get wild with spilling and
> + * the stack frame size simply explode and performance goes down the drain.
> + */
> +
> +#ifdef CONFIG_X86
> +  #define setW(x, val) (*(volatile uint32_t *)&W(x) = (val))

The # of pre-processor directives generally wants to be in the first column.

> +#elif defined(CONFIG_ARM)
> +  #define setW(x, val) do { W(x) = (val); __asm__("":::"memory"); } while ( 0 )

__asm__ ( "" ::: "memory" );

as far as style goes. But then I see no need to open-code barrier().

> +#else
> +  #define setW(x, val) (W(x) = (val))
> +#endif
> +
> +/* This "rolls" over the 512-bit array */
> +#define W(x) (array[(x) & 15])
> +
> +/*
> + * Where do we get the source from? The first 16 iterations get it from
> + * the input data, the next mix it from the 512-bit array.
> + */
> +#define SHA_SRC(t) get_unaligned_be32((uint32_t *)data + t)
> +#define SHA_MIX(t) rol32(W(t + 13) ^ W(t + 8) ^ W(t + 2) ^ W(t), 1)

I fear Misra isn't going to like the lack of parenthesization of macro
arguments used in expressions. This looks to be an issue with most
macros here.

> +#define SHA_ROUND(t, input, fn, constant, A, B, C, D, E) do { \
> +        uint32_t TEMP = input(t); setW(t, TEMP);              \
> +        E += TEMP + rol32(A, 5) + (fn) + (constant);          \
> +        B = ror32(B, 2);                                      \
> +        TEMP = E; E = D; D = C; C = B; B = A; A = TEMP;       \
> +    } while ( 0 )
> +
> +#define T_0_15(t, A, B, C, D, E)  \
> +        SHA_ROUND(t, SHA_SRC, (((C ^ D) & B) ^ D), 0x5a827999, A, B, C, D, E)
> +#define T_16_19(t, A, B, C, D, E) \
> +        SHA_ROUND(t, SHA_MIX, (((C ^ D) & B) ^ D), 0x5a827999, A, B, C, D, E)
> +#define T_20_39(t, A, B, C, D, E) \
> +        SHA_ROUND(t, SHA_MIX, (B ^ C ^ D), 0x6ed9eba1, A, B, C, D, E)
> +#define T_40_59(t, A, B, C, D, E)                                             \
> +        SHA_ROUND(t, SHA_MIX, ((B & C) + (D & (B ^ C))), 0x8f1bbcdc, A, B, C, \
> +                  D, E)
> +#define T_60_79(t, A, B, C, D, E) \
> +        SHA_ROUND(t, SHA_MIX, (B ^ C ^ D), 0xca62c1d6, A, B, C, D, E)
> +
> +#define SHA1_BLOCK_SIZE         64
> +#define SHA1_WORKSPACE_WORDS    16
> +
> +struct sha1_state {
> +    uint32_t state[SHA1_DIGEST_SIZE / 4];
> +    uint64_t count;
> +    uint8_t buffer[SHA1_BLOCK_SIZE];
> +};
> +
> +typedef void sha1_block_fn(struct sha1_state *sst, const uint8_t *src, int blocks);

Please respect line length restrictions. The use of plain int here also looks
questionable, as just from the name that parameter looks like it can't have a
negative argument passed for it. This will want adjusting elsewhere as well.

> +/**
> + * sha1_transform - single block SHA1 transform (deprecated)
> + *
> + * @digest: 160 bit digest to update
> + * @data:   512 bits of data to hash
> + * @array:  16 words of workspace (see note)
> + *
> + * This function executes SHA-1's internal compression function.  It updates the
> + * 160-bit internal state (@digest) with a single 512-bit data block (@data).
> + *
> + * Don't use this function.  SHA-1 is no longer considered secure.  And even if
> + * you do have to use SHA-1, this isn't the correct way to hash something with
> + * SHA-1 as this doesn't handle padding and finalization.
> + *
> + * Note: If the hash is security sensitive, the caller should be sure
> + * to clear the workspace. This is left to the caller to avoid
> + * unnecessary clears between chained hashing operations.
> + */
> +void sha1_transform(uint32_t *digest, const uint8_t *data, uint32_t *array)

You add no declaration of this function in the header. Should it be static?
This would also help with the "Don't use ..." part of the comment.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 22 15:36:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 15:36:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.963121.1354179 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7Fg1-0006xM-Jp; Tue, 22 Apr 2025 15:36:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 963121.1354179; Tue, 22 Apr 2025 15: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 1u7Fg1-0006xD-H6; Tue, 22 Apr 2025 15:36:49 +0000
Received: by outflank-mailman (input) for mailman id 963121;
 Tue, 22 Apr 2025 15: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=NnGu=XI=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1u7Fg0-0006wW-Sk
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 15:36:48 +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 99c1ed22-1f8f-11f0-9eb0-5ba50f476ded;
 Tue, 22 Apr 2025 17:36:47 +0200 (CEST)
Received: by mail-wr1-x429.google.com with SMTP id
 ffacd0b85a97d-3a064a3e143so441377f8f.3
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 08:36:47 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-64-225.play-internet.pl.
 [109.243.64.225]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39efa420683sm15692394f8f.20.2025.04.22.08.36.45
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 22 Apr 2025 08:36: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: 99c1ed22-1f8f-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1745336206; x=1745941006; darn=lists.xenproject.org;
        h=in-reply-to:content-language:references:cc:to:from:subject
         :user-agent:mime-version:date:message-id:from:to:cc:subject:date
         :message-id:reply-to;
        bh=gZouUHaOXGJo6zsh+NMun7vt5sY2xVQyjZc7KQyc4Bo=;
        b=LcAL5DzyqgyOjlmH/AKGDFlt1lc8ad5WWiU7YTZegsLrPV+OIYtuf1OYT16hY67PAb
         W5l7CGjBMU/HXHVchmrJhBDLS0hi+xPwygZUs92AKLcXdQAeGeYZOLygTiB3JsoAQhu/
         H+M2kN1fyou19o5GhWxm5IQQsD/L1YTzjUE/Bs5AUg3C86RWnwRvZTrSDOL4vmiZMoFe
         6yrNfQdAgwFf28bVlqveUy8ilZS60WzE7gilplbHT/LVJ+bbyVAMMJBBL7AIxk/Azi1j
         0O6/CAH9wxB2fko6XDnKYif4uwzmUqcx4RSl9oA/VYoQy9n0FWSLy1G8+sOLX0jkHlAS
         PReA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745336206; x=1745941006;
        h=in-reply-to: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=gZouUHaOXGJo6zsh+NMun7vt5sY2xVQyjZc7KQyc4Bo=;
        b=G/dXySvz94ClWXQTWaT8hKGyJb3s7/kEj9UMm4tVhSKjXDJrDcXP+t3Sj9GD7Cwt97
         a0YNz76pknZLYzNt8mKe3AjW85iexmngpGRX+5DVysbJ7HBY4hpB4hIQgBsh2lHJGQmk
         l/AeSd3s7MASCSZHj1lm/45+lue1Gnh5LzadUXN57/2PW+OhTPa8qcH0hJvnszK0p2kR
         Y1brIt5tMm1YTQyv2NKLGbji66a2zcjAeMHTURy9HE/67ElKpDRyTs/QPzTGqKajrwt5
         LJrbvYSrmr0i+oxiDlRVfAsU4NWNaxFEw9feaFYpmqyJwPqfsWmD0bPfs8y+DIxYiikS
         OBGw==
X-Forwarded-Encrypted: i=1; AJvYcCXbWAnnwriqmlQZJnNB6AMQlq+vpPX9ZZ5TKqEyViRJ0eR0+G0O6zEqyTRiEuHgWXRDaX2U2vmTEcA=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy4KT5h4Sgg85qO2W9zfoKwTn0fIHTjhUueA7Kbo8Io72Oaf/DW
	BsqgOgefTUOlO3PTRF90W+scvNkV2JOMT2xX9Zkuc3zDZV3vDbCN
X-Gm-Gg: ASbGncsDePfF9DLkigcpeS0oHDJyRwNpyMHcT9XD1XJQWroYxeMq89dAcaauuBkTPo3
	5ozsSzdXn2uSiei4WqxA1WWZBzXjMwQ3mfE3F2OrrVgGi/JgPwxX0qakhAVyjcRYPNVNv/jYjp2
	tVEa7Kuy3IyjsmA+ryRmiazeKTn2Z/HK1X+rqYNLaJbrTA6o1VI6tCuPnrFMW/rY4BA96tJBuhI
	NDbZZJo+x3fInE66ZjAz0bBPo+SPJvY0Qe9O/n/hYuCqcJAJdlZrVj7qVAGgSCfkf2353ZB0xyI
	pyZEDLz132UatuVkvjFr4EYRpIy5DXWsQmoeMHeEDddNbUyCIvCfTtitJH0YtD8Rzsb0szUNYMq
	8eVJXMXEmrDNTkwFl
X-Google-Smtp-Source: AGHT+IEDYIw3dMMtAEfq6f2xhKa/NvdCq5+gU1hGChfeZAVKLdAcSScLAC/lj0nSK5nou6jDXVkiqw==
X-Received: by 2002:a05:6000:144d:b0:39c:1257:dbaa with SMTP id ffacd0b85a97d-39efbaf2477mr12161038f8f.58.1745336206423;
        Tue, 22 Apr 2025 08:36:46 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------SnOcsL6gdKBY7OSz5IHvCJ8M"
Message-ID: <54f90f7f-cbce-47bd-96d0-d395aa698db8@gmail.com>
Date: Tue, 22 Apr 2025 17:36:45 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 7/8] xen/common: dom0less: introduce common
 domain-build.c
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <cover.1744626032.git.oleksii.kurochko@gmail.com>
 <9dbf651ce177a7292f80879373e86a51305f216e.1744626032.git.oleksii.kurochko@gmail.com>
 <faa552cb-d933-492b-b3ed-e803856265ab@suse.com>
 <6010658f-9e29-40d9-902c-890cb27a2a4b@gmail.com>
Content-Language: en-US
In-Reply-To: <6010658f-9e29-40d9-902c-890cb27a2a4b@gmail.com>

This is a multi-part message in MIME format.
--------------SnOcsL6gdKBY7OSz5IHvCJ8M
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 4/22/25 5:26 PM, Oleksii Kurochko wrote:
>
>
> On 4/17/25 4:45 PM, Jan Beulich wrote:
>> On 14.04.2025 17:56, Oleksii Kurochko wrote:
>>> --- a/xen/include/xen/fdt-domain-build.h
>>> +++ b/xen/include/xen/fdt-domain-build.h
>>> @@ -5,6 +5,7 @@
>>>   #include <xen/bootfdt.h>
>>>   #include <xen/device_tree.h>
>>>   #include <xen/fdt-kernel.h>
>>> +#include <xen/mm.h>
>>>   #include <xen/types.h>
>>>   
>>>   #if __has_include(<asm/domain_build.h>)
>>> @@ -32,7 +33,37 @@ int make_memory_node(const struct kernel_info *kinfo, int addrcells,
>>>                        int sizecells, const struct membanks *mem);
>>>   int make_timer_node(const struct kernel_info *kinfo);
>>>   
>>> -unsigned int get_allocation_size(paddr_t size);
>>> +
>>> +static inline int get_allocation_size(paddr_t size)
>>> +{
>>> +    /*
>>> +     * get_order_from_bytes returns the order greater than or equal to
>>> +     * the given size, but we need less than or equal. Adding one to
>>> +     * the size pushes an evenly aligned size into the next order, so
>>> +     * we can then unconditionally subtract 1 from the order which is
>>> +     * returned.
>>> +     */
>>> +    return get_order_from_bytes(size + 1) - 1;
>>> +}
>>> +
>>> +typedef unsigned long (*copy_to_guest_phys_cb)(struct domain *d,
>>> +                                               paddr_t gpa,
>>> +                                               void *buf,
>> This very much looks like the latest now, when the code is made common,
>> it wants to be const void *. Even if this may require another prereq
>> patch.
>>
>> However, instead of using a function pointer, couldn't the now common
>> code call copy_to_guest_phys_flush_dcache() conditionally upon
>> IS_ENABLED(CONFIG_<whatever>)?
> I thought about having IS_ENABLED(CONFIG_ARM) as, at the moment, this is necessary to
> be called only for Arm as guest domain on Arm could be ran with cache disabled so to be sure
> that DTB, kernel and initrd is fully in RAM this function should be called.
>
> For RISC-V, it isn't possible case as guest domain won't run with cache disabled.

Here I meant flush_dcache() part of copy_to_guest_phys_flush_dcache().

~ Oleksii

>> Or provide a weak
>> copy_to_guest_phys_flush_dcache() which would simply call
>> copy_to_guest_phys()?
> Could it be a weak function with empty implementation?
> Is copy_to_guest_phys() implemented for other archs?

--------------SnOcsL6gdKBY7OSz5IHvCJ8M
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 4/22/25 5:26 PM, Oleksii Kurochko
      wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:6010658f-9e29-40d9-902c-890cb27a2a4b@gmail.com">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <p><br>
      </p>
      <div class="moz-cite-prefix">On 4/17/25 4:45 PM, Jan Beulich
        wrote:<br>
      </div>
      <blockquote type="cite"
        cite="mid:faa552cb-d933-492b-b3ed-e803856265ab@suse.com">
        <pre wrap="" class="moz-quote-pre">On 14.04.2025 17:56, Oleksii Kurochko wrote:
</pre>
        <blockquote type="cite">
          <pre wrap="" class="moz-quote-pre">--- a/xen/include/xen/fdt-domain-build.h
+++ b/xen/include/xen/fdt-domain-build.h
@@ -5,6 +5,7 @@
 #include &lt;xen/bootfdt.h&gt;
 #include &lt;xen/device_tree.h&gt;
 #include &lt;xen/fdt-kernel.h&gt;
+#include &lt;xen/mm.h&gt;
 #include &lt;xen/types.h&gt;
 
 #if __has_include(&lt;asm/domain_build.h&gt;)
@@ -32,7 +33,37 @@ int make_memory_node(const struct kernel_info *kinfo, int addrcells,
                      int sizecells, const struct membanks *mem);
 int make_timer_node(const struct kernel_info *kinfo);
 
-unsigned int get_allocation_size(paddr_t size);
+
+static inline int get_allocation_size(paddr_t size)
+{
+    /*
+     * get_order_from_bytes returns the order greater than or equal to
+     * the given size, but we need less than or equal. Adding one to
+     * the size pushes an evenly aligned size into the next order, so
+     * we can then unconditionally subtract 1 from the order which is
+     * returned.
+     */
+    return get_order_from_bytes(size + 1) - 1;
+}
+
+typedef unsigned long (*copy_to_guest_phys_cb)(struct domain *d,
+                                               paddr_t gpa,
+                                               void *buf,
</pre>
        </blockquote>
        <pre wrap="" class="moz-quote-pre">This very much looks like the latest now, when the code is made common,
it wants to be const void *. Even if this may require another prereq
patch.

However, instead of using a function pointer, couldn't the now common
code call copy_to_guest_phys_flush_dcache() conditionally upon
IS_ENABLED(CONFIG_&lt;whatever&gt;)? </pre>
      </blockquote>
      <pre>I thought about having IS_ENABLED(CONFIG_ARM) as, at the moment, this is necessary to
be called only for Arm as guest domain on Arm could be ran with cache disabled so to be sure
that DTB, kernel and initrd is fully in RAM this function should be called.

For RISC-V, it isn't possible case as guest domain won't run with cache disabled.</pre>
    </blockquote>
    <pre>Here I meant flush_dcache() part of copy_to_guest_phys_flush_dcache().

~ Oleksii
</pre>
    <blockquote type="cite"
      cite="mid:6010658f-9e29-40d9-902c-890cb27a2a4b@gmail.com">
      <pre>
</pre>
      <blockquote type="cite"
        cite="mid:faa552cb-d933-492b-b3ed-e803856265ab@suse.com">
        <pre wrap="" class="moz-quote-pre">Or provide a weak
copy_to_guest_phys_flush_dcache() which would simply call
copy_to_guest_phys()?</pre>
      </blockquote>
      <pre>Could it be a weak function with empty implementation?
Is copy_to_guest_phys() implemented for other archs?</pre>
    </blockquote>
    <br>
  </body>
</html>

--------------SnOcsL6gdKBY7OSz5IHvCJ8M--


From xen-devel-bounces@lists.xenproject.org Tue Apr 22 15:37:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 15:37:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.963137.1354189 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7FgQ-0007lQ-Rr; Tue, 22 Apr 2025 15:37:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 963137.1354189; Tue, 22 Apr 2025 15:37: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 1u7FgQ-0007lH-Os; Tue, 22 Apr 2025 15:37:14 +0000
Received: by outflank-mailman (input) for mailman id 963137;
 Tue, 22 Apr 2025 15:37: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=9r0M=XI=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u7FgP-0006Us-W8
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 15:37:14 +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 a90402aa-1f8f-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 17:37:12 +0200 (CEST)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-43cf3192f3bso53184395e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 08:37:12 -0700 (PDT)
Received: from [192.168.86.29] ([83.104.178.215])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4406d5cf2easm178560685e9.31.2025.04.22.08.37.10
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 22 Apr 2025 08:37: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: a90402aa-1f8f-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745336232; x=1745941032; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=4M3NQO1R9Y+RPywxsZg+mVkXKrfH+NxzjZBUECv19gM=;
        b=YWn3u4oEP5zGaMqhqURTMoe2STOCS1eq3I4tvtU9KXm12sny5JhdMqAqzyTTk76q3H
         gkTyCNsIAx9tQw3PhxLloCGyt9sD0XD4V4bDnfPHaeTkbk36uvCXCYLZKSdwx1AukTFk
         xpDseCY00/S53oK5aAwjrDWOpxUOCuvrUdoxQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745336232; x=1745941032;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=4M3NQO1R9Y+RPywxsZg+mVkXKrfH+NxzjZBUECv19gM=;
        b=OCVsxOXw9VFic9WsSId2aVmGYa03RWSea7+l/DLvXORPJ4HZsfl37taTFglMmrfPZY
         oXqoqp4Bpz7Qf1wf0n3kRZkqIypc9cLj2gB2MWs9J4+ZDilamvlBVRwF+GA7mdNHIf+e
         9AmzXpawPMXxnhI3CmN4izjIpfoe4z24P+VmNJfZ2UsFcMDGYhtk5d2LVR1kNUtAodlh
         zrwcnAx7t4ElZsrsEV5ahB+ERnA5d5E64SEgI+FGM8p2NodPDk5St5A21q2hFlfIEhlH
         vuSFUNrIr1FTAuPldrioL3KqAkJcgJhmwzqqCLb61f9JCUOaemaGxiPvWnj4StIBJHfv
         g18g==
X-Forwarded-Encrypted: i=1; AJvYcCXfQhJJZLtXr4QYLMd8nWPUS6f+0rdtPkm1E7FieD9CVvaK2BV5pEp79HvV3cRSeGQ2IxcNI4Cktac=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyHCYXE7a4ozbxMDZrA7ULYLx5pLP2RQyzjmKzNkYTnktyrFpAJ
	RQUU8gxSx+D7Ovk5xD3HzR2d4Kn/dbIkWko9Jg1d03maCG3qHPn54YR/nK3m0ro=
X-Gm-Gg: ASbGncuP4UzVp0jNSBhj3M9mWiQNcUTyZ2fFT2ws+1XuQsJCuw8fpVDNJvFpgRpRnwF
	4m001+BYg01D7IPWVevSZllPotsUkbqbKEG6tita9qKSj9kX9w2ulah0UtrbeUrf3KrlAolBSvl
	R2bFfAYyYZxr9ENO9SvTeDHCtUsjqLy6sq2zovfCoyGyrA+kIUrEEjAsJSWDeuH8lsJxMp5sA2I
	66q4MghdVDQn5ytzIGvPCsMq+YE+Qmrxhig13Hy9uaGkoOhtaEBTCR++aHniiFbHCWMl1VmhrZr
	dDJeCuYm/dowvNrWx4VLBq5HgBwN+fbO7DHDedU5Y31kBArHsn7zgw==
X-Google-Smtp-Source: AGHT+IFcxQesg0zcJ/QrkOPfU37o00FmPt/lu6zUa5CggsQV2s1SKWn3CCGK5L0toYo32ruNNuDeFA==
X-Received: by 2002:a05:600c:3d96:b0:43c:f895:cb4e with SMTP id 5b1f17b1804b1-4406aba6809mr149324465e9.17.1745336231747;
        Tue, 22 Apr 2025 08:37:11 -0700 (PDT)
Message-ID: <233f9fd0-b531-4373-998e-1e7295357ae2@citrix.com>
Date: Tue, 22 Apr 2025 16:37:10 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 10/21] lib/sha256.c: add file
To: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>, xen-devel@lists.xenproject.org
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 trenchboot-devel@googlegroups.com
References: <cover.1745172094.git.sergii.dmytruk@3mdeb.com>
 <92b461c8d5981a523293341346274b6cc1b76d9b.1745172094.git.sergii.dmytruk@3mdeb.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: <92b461c8d5981a523293341346274b6cc1b76d9b.1745172094.git.sergii.dmytruk@3mdeb.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 22/04/2025 4:06 pm, Sergii Dmytruk wrote:
>  xen/include/xen/sha256.h |  12 ++
>  xen/lib/Makefile         |   1 +
>  xen/lib/sha256.c         | 238 +++++++++++++++++++++++++++++++++++++++
>  3 files changed, 251 insertions(+)
>  create mode 100644 xen/include/xen/sha256.h
>  create mode 100644 xen/lib/sha256.c

I added SHA2 a little while back, derived from the Trenchboot tree.

See 372af524411f5a013bcb0b117073d8d07c026563 (and a few follow-up fixes).

It should have everything needed, but we can adjust if necessary.

We need to integrate SHA1 in a similar way.  Xen now has various MISRA
requirements to adhere to, which requires some adjustments, but I can
advise if it isn't clear from the sha2 work I already did.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Apr 22 15:39:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 15:39:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.963158.1354198 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7FiD-0000gx-5n; Tue, 22 Apr 2025 15:39:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 963158.1354198; Tue, 22 Apr 2025 15:39: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 1u7FiD-0000gq-30; Tue, 22 Apr 2025 15:39:05 +0000
Received: by outflank-mailman (input) for mailman id 963158;
 Tue, 22 Apr 2025 15:39: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=f4Vg=XI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u7FiC-0000ge-8W
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 15:39: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 eaa5aa0b-1f8f-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 17:39:02 +0200 (CEST)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-43cfa7e7f54so37652015e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 08:39:02 -0700 (PDT)
Received: from [10.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-4406d5bbc07sm181499105e9.17.2025.04.22.08.39.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 22 Apr 2025 08:39:01 -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: eaa5aa0b-1f8f-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745336342; x=1745941142; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=IBEA4/vakKbtAnNfNG8JaXeodFI8SjuhcRM5NLq0x7M=;
        b=IkVv4s6LKgkiZhXFIAbIn+f1RrkRNaWImuBbQ+YiNQEnIJ18y8M9Yk0EAhIxxy/ILL
         2vAhBbc00FgaTNQ3aAUE/Wd0oycQClx0ohzKwZ1KCYzZmtARTePj13cWtS2egjSY2mJG
         beDvopQTLMskjm5sAXBWB0YoyMYXKyhmfLk+hTAqoGzT/9q+KNpMSBcsIrR98uoERFAn
         7qjaNMCz0XaUj98+8IEa5+lbwpMtv3i89HIWMaj7buIO6CSyvTLtCGmMGaSko/sAxFg9
         YVByC4ctFIG/V2W8cImLFOYLekq7DIiAUS74IeuI+2swNBque7mcWikFL55mcs5pujhN
         Tteg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745336342; x=1745941142;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=IBEA4/vakKbtAnNfNG8JaXeodFI8SjuhcRM5NLq0x7M=;
        b=cwejBEtUJnjPmZJbWV9xaQyc9ahBd3b3xmvhPnTUzeCQCaNffN0VllvVrYvUXxGQ5m
         lGsvKhCnaNXzpjqnGLPC1qE6Yj3EX4IWsoTMU5WFLH4q+Jbhrw8ijLOfD1Tr9pc5wys+
         Ze37hgPwDfzX0dp75Ld/IWUqHPbP6ak3FGEVCNd5C/4YZmGPo5u8GzARTqKn/s5H+yVH
         eJJKfeLZnulUVreR5cKIUFL45fkDjIYh41eEAwCIo/PewpsbvRcNgTWxxN8zrXyiw6TP
         BwIb8iIRdYCkwcEAwtJlI+qqTKpy63QVXIgLJAvoykbsiQVSYvgNOv6w80lciZrG2fgi
         CXog==
X-Forwarded-Encrypted: i=1; AJvYcCWVcxudNouMGeASAcWmYDYe0vXIjnLkTJla121KSj5Ys9znqfetKUlXbAvv2hhnF6tO2cc6BREs0Os=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxY9QuTaFZDav0dMTLAjiMI4bAGX8rmrc9VzrYUDrhNzlZYtREc
	qr/aYjTuar2YremtYE/mEEaqCpWm0HdDGqgJtTs8WQ5ZvSIJuEfZk+Amf08Puw==
X-Gm-Gg: ASbGnctavfbcUMsTZNQu6QSq1gfnUjr6kxLgWi3BlmIyPUO0AKgWyCopcFbts35tex0
	6Fgg8dr/U8WH//fA/Ih6nOdAROYRw2uhferQGOi/fxWoPQEq3A6cdjKtTzlLiUOKw1G/UEj0LH1
	Gub8OhZWMGGSOEwi356HHV29Hk1b+1LTzB6V68Am3GT6smb6WRYpX3R3IQy3d2gbx5RIr0cip1V
	UelccOxi0O7yAwAi0i3Y/b2dhyYd2FpLluGT4VHCi4oUo6dNsDXTfQ5OBI/6KsPoMagZd1tdxCG
	4mTp9PN4QEGnId2b4BKcpjUZ7FXSEShcdzF4mbEyfnLXG665bup/+cYf+6DNqB+tAcTdrC815Lx
	LEOojcdim3jO8DcJKP0BPfBjUZEQIjzz26ouf
X-Google-Smtp-Source: AGHT+IFzTSr1WKQ3I9k3l8hzqN2T9hYE6FmgKB929mfbeJfUJ6F/+Iul5BlPK72VK78m35sT8S1NfA==
X-Received: by 2002:a05:600c:5012:b0:43d:b33:679c with SMTP id 5b1f17b1804b1-4406b2acc3emr142907345e9.14.1745336341924;
        Tue, 22 Apr 2025 08:39:01 -0700 (PDT)
Message-ID: <52c13dcc-ab4a-41c8-9f89-f0aeeed3c1b5@suse.com>
Date: Tue, 22 Apr 2025 17:39:00 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 10/21] lib/sha256.c: add file
To: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 trenchboot-devel@googlegroups.com, xen-devel@lists.xenproject.org
References: <cover.1745172094.git.sergii.dmytruk@3mdeb.com>
 <92b461c8d5981a523293341346274b6cc1b76d9b.1745172094.git.sergii.dmytruk@3mdeb.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <92b461c8d5981a523293341346274b6cc1b76d9b.1745172094.git.sergii.dmytruk@3mdeb.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 22.04.2025 17:06, Sergii Dmytruk wrote:
> The code comes from [1] and is licensed under GPL-2.0 or later version
> of the license.  It's a combination of:
>  - include/crypto/sha2.h
>  - include/crypto/sha256_base.h
>  - lib/crypto/sha256.c
>  - crypto/sha256_generic.c
> 
> Changes:
>  - includes
>  - formatting
>  - renames and splicing of some trivial functions that are called once
>  - dropping of `int` return values (only zero was ever returned)
>  - getting rid of references to `struct shash_desc`
> 
> [1]: https://github.com/torvalds/linux/tree/afdab700f65e14070d8ab92175544b1c62b8bf03
> 
> Signed-off-by: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
> Signed-off-by: Krystian Hebel <krystian.hebel@3mdeb.com>

Most comments just give on patch 09 apply here as well.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 22 15:43:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 15:43:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.963174.1354209 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7Fm5-0003T3-Lq; Tue, 22 Apr 2025 15:43:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 963174.1354209; Tue, 22 Apr 2025 15: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 1u7Fm5-0003Sw-Hy; Tue, 22 Apr 2025 15:43:05 +0000
Received: by outflank-mailman (input) for mailman id 963174;
 Tue, 22 Apr 2025 15: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=f4Vg=XI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u7Fm3-0003RX-Mw
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 15:43:03 +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 79556548-1f90-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 17:43:02 +0200 (CEST)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-43ed8d32a95so46739805e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 08:43:01 -0700 (PDT)
Received: from [10.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-4407c5c7916sm121017995e9.27.2025.04.22.08.43.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 22 Apr 2025 08:43: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: 79556548-1f90-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745336581; x=1745941381; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=4TobmocEiqslu8onLFlVQt+DalcpztYYjeKdBb2+ZCc=;
        b=Rwru5d+4k6snnoKxST2ZQOUK7g0jtOs1fEYOBxYlXkjgP9yNw0KgqQ2ENXTFagWUpx
         gJ+B1LtYxARntLGErhxZyMyWuKvXZf+gCV8MPcp6hHjX7IjXP4vdbkIRXlQ5BgeyJ53v
         lQv3y5eVS2q+Xm4c5Nk1QPvz7+d6u/QCMtpa0HTFiUMik3pTR6P9rWFScaVGV9gM3kO7
         6RW+2BIFunfZNWRofr6SSEVayMENvECRgCdOBfijQgRyhqUEn4ImEmZFCmDQjAQe1FA0
         UqwvKY8xB7vWoEpZqDyZWMEWAmbG1tvBZi1izAvyzR6I+SpwQenpeTnr2LIV+QUgaBW5
         Wf6w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745336581; x=1745941381;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=4TobmocEiqslu8onLFlVQt+DalcpztYYjeKdBb2+ZCc=;
        b=H+cdQZMOiLNkgsEdbsQP7WtLW9P5UvcvAwBUyLW3YmZOgdSiB9L5xC+uJo2IDKMMmX
         YNYoXgV7FQIuXR9DUhRDj/z9FgiWm0dAKj5vAmwmtsd73gYQX//wzKkvM2t4pIg7W/D6
         2SbpNr6Lk2pXfl6jotCJqZAUa39/nVIYcvneFYJW9W38DULsDlzsB74mTCMefEcGp8Mc
         ZJMTn6axfY+qg85Pjv4CKL6gtpW+AbPjIioUyJ4Mg8pzRGAt4XUw7VMZOyvPZrgviTuq
         1jkgWDWIjxr0zSpUNy8/RRJ5VOxq/c+T+FTS3vY7FsEm4E8bnVFcwBa8y37PUdxB1EHa
         BDPA==
X-Forwarded-Encrypted: i=1; AJvYcCW0DO8zLojTzGnO1/ylEsNuHEcIr1PoyZGmRJ5MgBTNsFFEiHfS9QDaNie50DIWgF89VmWDDWjuVlc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzNQUJudrAoKXTk4f7FSFWTYXSMTGXjecwSmt6W6ZDFoNqTsPUE
	SMiCytCrDh2F7rL0rJvBYYFNawn1GmMOLtu9udR+5zEZZ2CpuYlvCDypE+948Q==
X-Gm-Gg: ASbGnctyJzMdahsg6e5gd0yWB51/OvMNTk/Ljti4CpfVSPxRYc218iWt/YcqeJSizkG
	ce6m9cfQzxb6QH29ZMnnKafJT8M7OqmarDDxPNq2yMl61RP7+FWhy0BYTDwSJcauLEfCOlCqMKh
	U2Fpb1ueozdQn/OtuGYD0iNt4CT4L1KEdJ/J0BLB3++j1pFRyMj3sIl26OzEuJU8aynzdcU1iu4
	6CBzEMgXI2n2IEUZf10ec0LxwObMXf9iqjmzd3tEQFZ5p77PBQ89k6t15or7+qrBXANXkuHL5CI
	sAH02pRXrqUpv4OopCmy6iL8xFJSVetZoK+H5uFaYH4CB8i2bfyyH7pOul5PxuhJa/Pj8WhovxZ
	1jdHZkmYmSe/dwTwJq2UiTq7POQ==
X-Google-Smtp-Source: AGHT+IEYc9Fp6/LR0hBcpYboV/AhYUUAmRl4kQ06qt0qnqSBc9NlLo6M5yvG+pafkK+tGf9hXYhRwA==
X-Received: by 2002:a05:600c:3d08:b0:43b:cc3c:60bc with SMTP id 5b1f17b1804b1-4406aba7ecdmr168420395e9.15.1745336581159;
        Tue, 22 Apr 2025 08:43:01 -0700 (PDT)
Message-ID: <e7480755-49b7-417b-aa5b-4102abee770b@suse.com>
Date: Tue, 22 Apr 2025 17:43:00 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 5/8] asm-generic: move some parts of Arm's
 domain_build.h to common
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <cover.1744626032.git.oleksii.kurochko@gmail.com>
 <1c67078147c4a89e46f253f040bef5046fac9ca9.1744626032.git.oleksii.kurochko@gmail.com>
 <1e7ba51b-8943-4001-be2f-9181e7362223@suse.com>
 <3181aaf7-e1a8-48de-8f16-dad0dfad0cdc@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: <3181aaf7-e1a8-48de-8f16-dad0dfad0cdc@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 22.04.2025 17:12, Oleksii Kurochko wrote:
> On 4/17/25 4:36 PM, Jan Beulich wrote:
>> On 14.04.2025 17:56, Oleksii Kurochko wrote:
>>> --- /dev/null
>>> +++ b/xen/include/xen/fdt-domain-build.h
>>> @@ -0,0 +1,46 @@
>>> +/* SPDX-License-Identifier: GPL-2.0-only */
>>> +#ifndef __XEN_FDT_DOMAIN_BUILD_H__
>>> +#define __XEN_FDT_DOMAIN_BUILD_H__
>>> +
>>> +#include <xen/bootfdt.h>
>>> +#include <xen/device_tree.h>
>>> +#include <xen/fdt-kernel.h>
>>> +#include <xen/types.h>
>>> +
>>> +#if __has_include(<asm/domain_build.h>)
>>> +#   include <asm/domain_build.h>
>>> +#endif
>> Why is this conditional include needed? There's ...
> 
> To use everywhere just the generic header xen/fdt-domain-build.h instead of both
> xen/fdt-domain-build.h and <asm/domain_build.h>.

But elsewhere we're actively trying to remove dependencies between headers.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 22 15:53:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 15:53:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.963194.1354219 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7Fw8-0007hU-KM; Tue, 22 Apr 2025 15:53:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 963194.1354219; Tue, 22 Apr 2025 15:53: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 1u7Fw8-0007hN-HI; Tue, 22 Apr 2025 15:53:28 +0000
Received: by outflank-mailman (input) for mailman id 963194;
 Tue, 22 Apr 2025 15:53: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=f4Vg=XI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u7Fw7-0007hH-CD
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 15:53:27 +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 eceaa9ca-1f91-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 17:53:25 +0200 (CEST)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-43ce70f9afbso46444675e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 08:53:25 -0700 (PDT)
Received: from [10.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-4406d5d69bbsm175768875e9.34.2025.04.22.08.53.23
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 22 Apr 2025 08:53: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: eceaa9ca-1f91-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745337205; x=1745942005; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=yE4vTqawGHNjeaoMjayfoIo6/hpXgVKm5lv2CicEbak=;
        b=QcLkppj0ZEr4rd1u0AttWXchEMwRTdIKdelkdltCFRWwSdgUD2ufHcMoZqouiGfvqb
         wAe8ByjfceV/g4biWBPUdGtHzhkulFy5ziEH7I8FNO6r0TK62qtKv/+0i5hJJaHBxWHe
         nLeVBeqIIxhpZ1oGmr2FxeM01gAXXoIhOS7UJTjmakFOcIBnYNHbP7IWO5C+9LL2C1Nh
         ctobIOu6dwLvcaIqP1SEoemtM4mDM6L5AbBP+rmxYibugMaNAQtGmGrl1bGF9uroMtxa
         Q/PFYDiMTKmrK9GiYaRvM1TFkjM7zj5Oprz8GYvy7IJQXOTXsQisEiOZApqCYkTfyvBp
         8eTA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745337205; x=1745942005;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=yE4vTqawGHNjeaoMjayfoIo6/hpXgVKm5lv2CicEbak=;
        b=JEv1xsviQlCHE8uqh1nl7thqcOJpskPtiLqxbsmISOdl74NV+Modm4Z4xsrdXQhPSQ
         7UuZBPvkxvXAMcwtnztHh2Or6j45iQMSZYFD5N5yySX8Fzj3F0Q2p5TafybT9zP1o4vD
         AJ4T8m+8uBWVFoDaTsjuDr4o82sm3lxH7x5GUXWrlptBbwJLbiE1fpmt2TeoIZrzm3Gu
         IboopiwEIwRbiD942OnHoJKNyq8LXknywNlQDia3Ulosudm0qVWJlKGC8DybwL31FqzJ
         Tgkpt90XDQ+mlTIWD+KvLShK6iJWDykc/JgyhmQAGuuPBn31fuEpQBvKxHp5sITcgfs7
         WDLQ==
X-Forwarded-Encrypted: i=1; AJvYcCXLDQCjw7dnL/Lga3GBMj+iPVC8ksL9nJqZc9VlWWmJSoN359l40hPh9bTZcJLPuday2M4nmZt5enQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzX3/8v/1MzG97T7QGObNzBtwI4tiCL8WACt59DhJGTBd294ASk
	d4O7FW2sYVKIBb0BDvD6IbgGI3NRQHfTXjKjLUykTEa6nsEHJkgcOhpXCxisFw==
X-Gm-Gg: ASbGncstnHr/sdCh0OgSkubI4SqHahp+y1mMCSTOqz/xcR5XnSJm6Vw4ok7U+tZ21/j
	aKx/KWUevCjIJtBItoMghoqlacB93odS/ZsQg6HDtiD2WXuKJ0mXgLkw3BznEC8lAIlu0N2IGfP
	3qJhYzNf+PGzcKa/9krYnoYJU6OAWkBteIQgI3/YdFJIjqbYK6JkHKG2HuNpesi9pHWYMmQs/pM
	3mrZVPdWtpySBQej1xiWpXnCAWcUWDV/9Nkv9bpGGz9b3KBoiWSP2iyitfNgc57KWpPnCJRsPkb
	MKlqC0u6tI/1TACvOKR6H2G8Bv2Cst7KmaaeS/r0PnvSs+p7PrMF8+jfH1NuOjSBVmoDqSMGmlP
	IjcXSTzdLX8kZoOheCfxjixn25g==
X-Google-Smtp-Source: AGHT+IGe53vyA5B4792gpagjzkMJt8aZJIq+nefO3Wl7FctEtSy+ugCB92kaN8JfL+pnepocxizXZQ==
X-Received: by 2002:a05:600c:a143:b0:43d:878c:7c40 with SMTP id 5b1f17b1804b1-44076c9c6fbmr97584575e9.10.1745337204521;
        Tue, 22 Apr 2025 08:53:24 -0700 (PDT)
Message-ID: <cb4451c0-6176-48a4-8bad-b428c3866e46@suse.com>
Date: Tue, 22 Apr 2025 17:53:23 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 7/8] xen/common: dom0less: introduce common
 domain-build.c
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <cover.1744626032.git.oleksii.kurochko@gmail.com>
 <9dbf651ce177a7292f80879373e86a51305f216e.1744626032.git.oleksii.kurochko@gmail.com>
 <faa552cb-d933-492b-b3ed-e803856265ab@suse.com>
 <6010658f-9e29-40d9-902c-890cb27a2a4b@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: <6010658f-9e29-40d9-902c-890cb27a2a4b@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 22.04.2025 17:26, Oleksii Kurochko wrote:
> 
> On 4/17/25 4:45 PM, Jan Beulich wrote:
>> On 14.04.2025 17:56, Oleksii Kurochko wrote:
>>> --- a/xen/include/xen/fdt-domain-build.h
>>> +++ b/xen/include/xen/fdt-domain-build.h
>>> @@ -5,6 +5,7 @@
>>>   #include <xen/bootfdt.h>
>>>   #include <xen/device_tree.h>
>>>   #include <xen/fdt-kernel.h>
>>> +#include <xen/mm.h>
>>>   #include <xen/types.h>
>>>   
>>>   #if __has_include(<asm/domain_build.h>)
>>> @@ -32,7 +33,37 @@ int make_memory_node(const struct kernel_info *kinfo, int addrcells,
>>>                        int sizecells, const struct membanks *mem);
>>>   int make_timer_node(const struct kernel_info *kinfo);
>>>   
>>> -unsigned int get_allocation_size(paddr_t size);
>>> +
>>> +static inline int get_allocation_size(paddr_t size)
>>> +{
>>> +    /*
>>> +     * get_order_from_bytes returns the order greater than or equal to
>>> +     * the given size, but we need less than or equal. Adding one to
>>> +     * the size pushes an evenly aligned size into the next order, so
>>> +     * we can then unconditionally subtract 1 from the order which is
>>> +     * returned.
>>> +     */
>>> +    return get_order_from_bytes(size + 1) - 1;
>>> +}
>>> +
>>> +typedef unsigned long (*copy_to_guest_phys_cb)(struct domain *d,
>>> +                                               paddr_t gpa,
>>> +                                               void *buf,
>> This very much looks like the latest now, when the code is made common,
>> it wants to be const void *. Even if this may require another prereq
>> patch.
>>
>> However, instead of using a function pointer, couldn't the now common
>> code call copy_to_guest_phys_flush_dcache() conditionally upon
>> IS_ENABLED(CONFIG_<whatever>)?
> 
> I thought about having IS_ENABLED(CONFIG_ARM) as, at the moment, this is necessary to
> be called only for Arm as guest domain on Arm could be ran with cache disabled so to be sure
> that DTB, kernel and initrd is fully in RAM this function should be called.
> 
> For RISC-V, it isn't possible case as guest domain won't run with cache disabled.
> 
>> Or provide a weak
>> copy_to_guest_phys_flush_dcache() which would simply call
>> copy_to_guest_phys()?
> 
> Could it be a weak function with empty implementation?

Not really, no, as the fallback has to work for the case where cache
management isn't explicitly necessary.

> Is copy_to_guest_phys() implemented for other archs?

What "other" are you thinking about here? An arch wanting to use this
code would need to provide one. But x86, for example, isn't going to
build this code aiui, and hence has no need for such a function. We
have hvm_copy_to_guest_phys() there.

Hmm, but I notice only now that Arm has no plain copy_to_guest_phys().
This certainly breaks the fallback idea I had outlined. So perhaps I
should recommend that you stick to the function pointer approach for
now, unless Arm folks come up with any good suggestion. (I notice PPC
has a (stub) copy_to_guest_phys_flush_dcache(), too; it's unclear to
me whether that's really needed there, or whether it isn't more like
RISC-V in this regard.)

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 22 15:59:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 15:59:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.963206.1354228 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7G1l-0001Mp-7Q; Tue, 22 Apr 2025 15:59:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 963206.1354228; Tue, 22 Apr 2025 15:59: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 1u7G1l-0001Mi-4C; Tue, 22 Apr 2025 15:59:17 +0000
Received: by outflank-mailman (input) for mailman id 963206;
 Tue, 22 Apr 2025 15:59: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=f4Vg=XI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u7G1k-0001Mc-3p
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 15:59:16 +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 bd212850-1f92-11f0-9eb0-5ba50f476ded;
 Tue, 22 Apr 2025 17:59:14 +0200 (CEST)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-43edb40f357so40268095e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 08:59:15 -0700 (PDT)
Received: from [10.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-39efa4931c3sm15597193f8f.77.2025.04.22.08.59.13
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 22 Apr 2025 08:59: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: bd212850-1f92-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745337554; x=1745942354; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=f+NtweL+G+1J3ZSnbT2CXDmoz0wL//KyqmqYGIcC2cE=;
        b=gLIh4Tf/AO47iHOpGMZp0BzJF+uYWky6OcLiiM7Er72imJedQJ3opmllq2XHEpb0a4
         YGeBNIzi5Px3fm5ISYVaMdBfA28NvVKd+o1Hz8Tt9Q4hjJ7+QyZm31gwkEmToXgft5IR
         hAJ9QyKN5GHRChln8+kEJr3M6TWxyaqYIuQHkQIWcUED8PmX4Zu27tnO2GYFwTfoKz6S
         08S7Mpp+c2CSJ625Q0LsCL/7Xhts0SV25uso+255UsxjXNg4vpnFL0Pfvwh/7hFVkBYi
         Ye1Fr3puMGvpxVUJHqb+nTuVbAK3UiSDGALJO6vSWYqTwfjYCVEvwH+1CCdnaN64NA/d
         PUrw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745337554; x=1745942354;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=f+NtweL+G+1J3ZSnbT2CXDmoz0wL//KyqmqYGIcC2cE=;
        b=KxgyRgF0F/Ii/t0dtOCOJEAWVC269u1xNSnhPorNMsjfEAbkERdKn7fEGasJzPM4lw
         IV4a5GY9jkr+aNjyxYUsuSMMQCSDFZLY1WL9GxJkmEgmfO+6qYNY7MdhLgg/RgPxRxhW
         RSIE7BMTcbTx+Cjik2eJCCNapWYcOl/wfgTgRvulWTrJQVaIUNK3Cxuk0Hj5ufcXlot+
         l+5VJxrxwjl3X8l5/O02EDoHl0URl+iPlWarAUJBy0rYOlJuBT40aaLiEAXWweRtarFn
         4TYfdLkku/dLuVu2Cv3pF0UB5W0w0AJKHKW2rTJ/LxwlNUXne6+wmSo8xVt1tYf5xln+
         M7TQ==
X-Forwarded-Encrypted: i=1; AJvYcCX8vKp/V4NAqschr3TQugYmg81eZHGcUdtH8LjG405jZ4HCO/JXomJxgh9aaKpwCp1odIV5IBTZ/pQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy8Lp1jYHYATfNGiK1Kofs1Md79NS6MrmAd7+v2RSSmckm+fQrE
	2JBSoCB+q79WZO8trkTn1eYHUkqsXCTK3RqXGTvNtivFoyzrfNfvBx93Vzt/nw==
X-Gm-Gg: ASbGncupp+Ag1GRndWH+UWpe1C/zErnY1B6RAueyOiNeWpNnHtZS2KVPhOYlwMjrO50
	8dz2LN1723pBHFdcDHn1dEzq69MdGMQ9jg7nbi4s75J3z3oS0Fy98uj36Ak/a96XaNZfkye9nvc
	HF5pMRJjK39r0S+k5Rd11uGnO75hRBncCk5LljBzFyJnOYRSCd9KwVyVjX4LX+zed+OF0/I+iEo
	2oZURQ39nbSuFItcqsTp4/+RdwID9rjjHYeYj8qtqUSmKh5N501tG79F1Li2e6B6vKvYhZP8bd2
	GetijBjMKEVQ97qIh9rJ/+C9KtaIgYgvamPgn3nG6Q1CSRJIto7lW4HaNhm3ueduW3RK8qEL1b6
	dg4Z6siAGtrvmvqsZ7lZPkqnxpg==
X-Google-Smtp-Source: AGHT+IGPFzG8PTSnMf0+eIZMiXBBMLbVhnqhdkIyVuyDC6R8i72HeKvNkgrTiUYyVFOv00umnYCECQ==
X-Received: by 2002:a05:6000:40cd:b0:39a:d32c:fb5e with SMTP id ffacd0b85a97d-39efba3cbe4mr13028827f8f.21.1745337554516;
        Tue, 22 Apr 2025 08:59:14 -0700 (PDT)
Message-ID: <a0ede35c-ca58-4d0f-893c-f498052682b4@suse.com>
Date: Tue, 22 Apr 2025 17:59:13 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 02/11] driver/pci: Get next capability without passing
 caps
To: Jiqian Chen <Jiqian.Chen@amd.com>
Cc: Huang Rui <ray.huang@amd.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20250421061903.1542652-1-Jiqian.Chen@amd.com>
 <20250421061903.1542652-3-Jiqian.Chen@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: <20250421061903.1542652-3-Jiqian.Chen@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 21.04.2025 08:18, Jiqian Chen wrote:
> Modify function pci_find_next_cap_ttl to support returning position
> of next capability when size "n" is zero.
> 
> That can help caller to get next capability offset if caller just
> has a information of current capability offset.
> 
> That will be used in a follow-on change.
> 
> Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>

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

> --- a/xen/drivers/pci/pci.c
> +++ b/xen/drivers/pci/pci.c
> @@ -55,6 +55,9 @@ unsigned int pci_find_next_cap_ttl(pci_sbdf_t sbdf, unsigned int pos,
>  
>          if ( id == 0xff )
>              break;
> +        if ( n == 0 )
> +            return pos;
> +        ASSERT(caps);
>          for ( i = 0; i < n; i++ )
>          {
>              if ( id == caps[i] )

... blank lines around you insertion might have been nice. I may take the
liberty of adding them while committing.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 22 16:01:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 16:01:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.963216.1354238 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7G3y-0003yR-IG; Tue, 22 Apr 2025 16:01:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 963216.1354238; Tue, 22 Apr 2025 16: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 1u7G3y-0003yK-Fl; Tue, 22 Apr 2025 16:01:34 +0000
Received: by outflank-mailman (input) for mailman id 963216;
 Tue, 22 Apr 2025 16:01: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=f4Vg=XI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u7G3x-0003vh-NC
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 16:01:33 +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 0ed54677-1f93-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 18:01:31 +0200 (CEST)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-43cfba466b2so54300595e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 09:01:31 -0700 (PDT)
Received: from [10.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-4406d563297sm179211705e9.0.2025.04.22.09.01.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 22 Apr 2025 09:01:31 -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: 0ed54677-1f93-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745337691; x=1745942491; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=5Hj8XFoDAu3jFNqXJ99rb/QBGUOrMPhyziddAyvehpI=;
        b=WoKLyQgZUnYhRcY5Z0d4o3x7hwDs2bg8Z4qTZwOw/sfPdl6wNLvlFNwLejNb+c1uLC
         5nkQgbtNkGIFK5Cozee3MFOQzGwCEWbw6gsT7FniQChlv8tl1t42Hg8UesU1kbAxxjbT
         9jqPx+s6glSqfMBWeXPsnoMMIVE1N/o/D1ldn+b2DjBOMKwWa0jEzJ9WbjFXNPaSfPED
         nZuxpvmL1f/iAg3GTWFwn0xAJ95Vwv5hCjRpYnvqfpKPfuqASPAEdzKq1B+Y9nfhX2W6
         wxZKtXc+oZp2IkJAddrrkMVSCJx9S2IXrjCVh7e69naDask7rL6e6AEs/sTFXDH8vP6Z
         oy2A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745337691; x=1745942491;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=5Hj8XFoDAu3jFNqXJ99rb/QBGUOrMPhyziddAyvehpI=;
        b=ViKzdOfDrypHe7zV8ON1SnhbJnB/kw+vWDXpszh/5vD/OgoH8yilaw+M1sWtyWKDa6
         XeHRH414Wacqrhv1XAn1mnwQXn9gtrjX8xRjrMbkMcgGrrNWk3e+MHYLzWbpX1wl5Ahe
         Vq15d3hnIfADKdg3stPIhhkpXMM9HbcSdKmtdFztrkM7As2BGVX8WeaSYn7j63RyqsbE
         pokKxAB/79b8t4VRS2LHIQ6Ra9S9di5g1EwKZ9TrV3VfnREXTAz3UQSL15WZ49+yycse
         ChRF+T0nyLXn39hyHJadX9j6KzbJadayf4+0RMF01TCr0B02yg47SHGRH1oebRkLu6al
         EHyQ==
X-Forwarded-Encrypted: i=1; AJvYcCX45ffyd221GYh7PK5/6LST5Ts1xJBfIiorNaxs3wDSI8x8gQGBrXZe25ERUnDNm3a0hT/gkLWUwP0=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz40oHVTYEeZ30pZkpGUUGBvqibIpOZ6Y5e8iWq5X4ijY8wdqY3
	e84PuSBLtPvbYi1sXlCdgUyK4hu/Smu2iNPbaciXwvZueJNg+Im32kClb2YuqA==
X-Gm-Gg: ASbGnctyhZKfI30nap2VXypJAmYJtOGwgSpWiPayBzhVZu1kb3CRy2TraXPBQ40hVU6
	4tPKyGguvX7nDMymB9dIDXnQ1kZ+lpzezUthyptO5aqM4GkW1wFI6kEiwK339GEDzZk2GOb+3NY
	trECFj0JRlRysG9L/QcomKTXNJLAYZNW90Gcv/7qyvHf3mkHobuJUCw2yzUN4QT0whZ4S+WORoj
	w0vQ1a0MqDHKmcuyt4EFcIzBifKih/7XTNjlpwsv88vEkT8Gagi0aEBViSm6ACWr9stA3yJVhv8
	99yJ/ZWwo+hit6NyxAfj6iokUHYsEdR1J1I+aYcZHgK1usbpdF02fl5PbMQcNSirPz+4OfH4DAU
	4HYqz2S0Lk6/FQx5p2+znh4vwdA==
X-Google-Smtp-Source: AGHT+IH+C8YFk4/IEVOi0C9gyRyLZikQOLbxj4xKk5FWjl4EVytKY+CLsSOuke9REJRlBgzlabg+zA==
X-Received: by 2002:a05:600c:5490:b0:43c:fd72:f039 with SMTP id 5b1f17b1804b1-44072c876d8mr108660915e9.11.1745337691311;
        Tue, 22 Apr 2025 09:01:31 -0700 (PDT)
Message-ID: <a60a1843-e15e-495e-98f4-f55b64ab336d@suse.com>
Date: Tue, 22 Apr 2025 18:01:30 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 03/11] vpci/header: Emulate legacy capability list for
 dom0
To: Jiqian Chen <Jiqian.Chen@amd.com>
Cc: Huang Rui <ray.huang@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
References: <20250421061903.1542652-1-Jiqian.Chen@amd.com>
 <20250421061903.1542652-4-Jiqian.Chen@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: <20250421061903.1542652-4-Jiqian.Chen@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 21.04.2025 08:18, Jiqian Chen wrote:
> @@ -759,10 +759,11 @@ static int vpci_init_capability_list(struct pci_dev *pdev)
>              PCI_CAP_ID_MSI,
>              PCI_CAP_ID_MSIX,
>          };
> +        const unsigned int *caps = is_hwdom ? NULL : supported_caps;
> +        const unsigned int n = is_hwdom ? 0 : ARRAY_SIZE(supported_caps);
>  
>          next = pci_find_next_cap_ttl(pdev->sbdf, PCI_CAPABILITY_LIST,
> -                                     supported_caps,
> -                                     ARRAY_SIZE(supported_caps), &ttl);
> +                                     caps, n, &ttl);

As per the v3 adjustment to patch 02, you can pass supported_caps here in
all cases. Only n needs to be zero for the hwdom case.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 22 16:03:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 16:03:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.963227.1354248 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7G5n-0004py-Td; Tue, 22 Apr 2025 16:03:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 963227.1354248; Tue, 22 Apr 2025 16:03: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 1u7G5n-0004pr-Qz; Tue, 22 Apr 2025 16:03:27 +0000
Received: by outflank-mailman (input) for mailman id 963227;
 Tue, 22 Apr 2025 16:03: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=f4Vg=XI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u7G5m-0004pj-EO
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 16:03:26 +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 5268f2e3-1f93-11f0-9eb0-5ba50f476ded;
 Tue, 22 Apr 2025 18:03:25 +0200 (CEST)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-39c0dfad22aso3839879f8f.2
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 09:03:25 -0700 (PDT)
Received: from [10.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-39efa4a4f2dsm15844535f8f.95.2025.04.22.09.03.24
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 22 Apr 2025 09:03: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: 5268f2e3-1f93-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745337805; x=1745942605; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=kn6gzp6n3FAtn1xNbobRXBscRY37qdIYkrfqkjjpXH4=;
        b=JaM0nf4SpLL4c7mggarGVMrVMBwDKxOvUfxKTtAI/O3VQ1y/2RyGAdJMRid0vPO7+D
         +Eg7EGzHnmH55Zi4zI8yaPWDXv+Cvv1RhSVN85aLTz3zgy22PPUE1MQw5u3IMp0y+O7K
         FgB7Hz/cU238wxtWD4mLp2yqfChl9Iu3iAccUvyYG807phzHJ/1ZVj0wNPCqgdpcUwlj
         X3N8s01ElaiuFTJQ0B92VV5Lf/wIijnjGUKB48uxwcey+5iV2bbNSTxXzfo9sHaNeCa2
         6fyj9DNIOc42RtScAQF6SDEuvdMgomyT6cJZ8CVyDtLjg56WZxR8mygEPpR8bxX5PQU2
         XPqA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745337805; x=1745942605;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=kn6gzp6n3FAtn1xNbobRXBscRY37qdIYkrfqkjjpXH4=;
        b=HgJ3o9hOJTEh9PAkyNhTybg2a4pJDN2fCUkuPwJJADBxBL5ICx8Qgoz+wX/Lse2J7d
         3jxeav/o6jgCXbSlCmr4QLHjqeFKatKkOUhKxU1+Jbxcoddscz1oA83Erk9Dh/yOWkDA
         CgOm2c0x6wu1riYvoE3TEvJw+xCHEzyjOl2yVhErtxYGxkx06O8eOSDmysKXZtI2i68L
         nt3x5umRoUIgaN2oRERVfCrI+AuLlMlt1UNtJw2xYmkVL3/pEqoX2tInO7Ealz7niMv+
         HoVR8riZ5Oa9QB8cs73EmsutuA83rRgyf81A2aOBQTBjVzuK0eONzpO2PbyUfkibpONI
         Q5pw==
X-Forwarded-Encrypted: i=1; AJvYcCVjbJ6TaIljWbAH/JJtD9T5hAI8iGregr7T+HqIFm13GPs/qPk16fTw9GyRG87OU2nN4bh8RaymMn4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyX2jYiAinZh+9w6e7IvfIl3tJd9C8KMM/QjVvbbSwNxYXZ9rcT
	sBfEiehuwf9GptT9K6aD3LQdBDfQRwvA+OSB0dog46GdUz2uW1LBKPVj1QTVQg==
X-Gm-Gg: ASbGncszAO6FNIRTlLwYhKPcvi5799F6JhZExSTrGU7E072CZ+2ZkFWDUwgQaa/9ScW
	1aKEifm7qx/hEUWeD/Ael+o1Z4dcBINHQOBHtbByecjIOS+Z1HSN0sp1p6/Ky0xi6eB7ULIRCTC
	2w7RG0FINDfCH5EVJU+guB7VuSoy8s+jLLv5jaZpDYNS8YXE96lGh5EjbWuhg7djTK7aUiNevz4
	jUEWoT9NajWK1ptNpadlmNyk/e83D+8z0juroIM2GjghYYsLf8mJC+pBzMdmttCtQIeNETOkmRs
	yqODdJ5FavQtnRIIfW/5Z2veQg0v8GW1Z0UW3SMpcByl/CNs/Bpbymw4dQ8AL+VpxiVM+fHwlsP
	xEXMwEjo+SoY/CzHaMrQ8dYrbBA==
X-Google-Smtp-Source: AGHT+IExj/zHTJ73WUCPafrrP35p+3Ra0bBzWVe+wggnEG9Om/ibpt6URww4fG0gttnC95CUymnd0Q==
X-Received: by 2002:a05:6000:2503:b0:38d:cf33:31d6 with SMTP id ffacd0b85a97d-39efba2f341mr12989824f8f.3.1745337804873;
        Tue, 22 Apr 2025 09:03:24 -0700 (PDT)
Message-ID: <545079b5-7159-4f47-8100-df387fffe57a@suse.com>
Date: Tue, 22 Apr 2025 18:03:23 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 05/11] vpci: Refactor REGISTER_VPCI_INIT
To: Jiqian Chen <Jiqian.Chen@amd.com>
Cc: Huang Rui <ray.huang@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20250421061903.1542652-1-Jiqian.Chen@amd.com>
 <20250421061903.1542652-6-Jiqian.Chen@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: <20250421061903.1542652-6-Jiqian.Chen@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 21.04.2025 08:18, Jiqian Chen wrote:
> Refactor REGISTER_VPCI_INIT to contain more capability specific
> information, this is benifit for follow-on changes to hide capability
> which initialization fails.
> 
> What's more, change the definition of init_header() since it is
> not a capability and it is needed for all devices' PCI config space.
> 
> Note:
> Call vpci_make_msix_hole() in the end of init_msix() since the
> change of sequence of init_header() and init_msix().
> The fini hook will be implemented in follow-on changes.
> 
> Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>

>From the description I can't derive the need for ...

> --- a/xen/include/xen/xen.lds.h
> +++ b/xen/include/xen/xen.lds.h
> @@ -187,7 +187,7 @@
>  #define VPCI_ARRAY               \
>         . = ALIGN(POINTER_ALIGN); \
>         __start_vpci_array = .;   \
> -       *(SORT(.data.vpci.*))     \
> +       *(.data.vpci.*)     \
>         __end_vpci_array = .;
>  #else
>  #define VPCI_ARRAY

... this change.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 22 16:06:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 16:06:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.963243.1354258 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7G92-0006CM-E5; Tue, 22 Apr 2025 16:06:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 963243.1354258; Tue, 22 Apr 2025 16: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 1u7G92-0006CF-BY; Tue, 22 Apr 2025 16:06:48 +0000
Received: by outflank-mailman (input) for mailman id 963243;
 Tue, 22 Apr 2025 16:06: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=f4Vg=XI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u7G91-0006C9-6n
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 16:06:47 +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 ca140b7e-1f93-11f0-9eb0-5ba50f476ded;
 Tue, 22 Apr 2025 18:06:46 +0200 (CEST)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-43d04ea9d9aso25516285e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 09:06:46 -0700 (PDT)
Received: from [10.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-4406d5bbcc3sm180726865e9.19.2025.04.22.09.06.44
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 22 Apr 2025 09:06: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: ca140b7e-1f93-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745338006; x=1745942806; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=0MujALK7hRILETvo7c+tPYqHjHElPCWdCDGjnhPZnug=;
        b=gRhyGQFoZP7CvCGT5xlylftQbFSigdq+EHNpv9uwb6xMh2LNts12SJD8BFDdiYn7Zs
         zsr9AhGpo8rQvCutJ1KA//oLvb+ia32tR1HPvWQd3Hk9kcqc3IN4pdLbXcGWzEW2QD4p
         KYVS7AWks+yd+3bmKEQZVRYyzMnQ6Gp6mZ9+/4c0Qt0/CH7+3/6JCHuCWT6pTyb74Ymj
         QVQeO1KeTXCZ8fmx1m9OXbzsfj5g0hUFJU21+iMV73QgkC2V8RHDTfsyeUXqmqIyyLYE
         25/qi+2l8Mz17adcnRUAViGvWWd7ioz7jjjJRgglHO1ZEFM5KdasevB0FqVwV9mpHXB2
         gL9Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745338006; x=1745942806;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=0MujALK7hRILETvo7c+tPYqHjHElPCWdCDGjnhPZnug=;
        b=kz4aDaJUrg46JasKSvosQ/MCo7IsEGiQmJIrOmkkc1PspYMX2gfrej1eYxd+tXlhKq
         H1S5Sdwa5+gjdX+REHOc47CzHlAQej/Xat1gRlNjb7RsKnNJ1euvyTW8OxGE1Re2soc7
         cxXL7GPnlC5qf/S7OHE4gxXuXy0LMbOua2a36xGSk27rXDuljl3s27uC10l23JqBXl4B
         VOprihhmRyyzqxVGFiAsJGK86KvSGoQImutW6WJFhJHwEIqRc3fp1jT6kOEn2Nec+DuA
         OYjRCd8FSbXCQcJYgT1HitRrTwJMsiayUHkDrjosD/6HGg8NH/m8ONegx0NPwsNlq2UV
         ei+w==
X-Forwarded-Encrypted: i=1; AJvYcCWySjzQ15FGiz7QB33Ybu1TKTTxalEofT0cBxsI8yphmt0b5pj4gHh9S7sHenPtI4h7WoLk7Te642k=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw8lww9qP50tGXGv9mDQhGWW67CzkbDlYUfivzTU91rGNFfMYnQ
	WM6uS9VfaRiTrum+VPQSZu3Qe0fWPFWubfwCUfUmKhPT4TA9DeCaK3s3z5pIRQ==
X-Gm-Gg: ASbGnctz1YqzQPv0kLcxaethTbxA2Xdb2Zp/KwLuBz4bgYuKJjTTOiTFWEP8fg68v01
	iv6Yaf6XDXtQr9Sb4QnDOOh57d+neaFK5yX2SXQ+Omad2057vm2ZNGK6kt4L8MRU1rNJE9hCCks
	4ZNQ20K5ZL50lD2qthkRHP9wcK4XWRvnASOpbtIWoNdORJFlJEB1SOMo3OyapXQV9jC7o1tDgBg
	CsPvgmEGciJi8Lh6+HoNISTw0giZOFZ6jAB8J1MW1U16AGCilf6KMrVmL1ELMiNW9P1Qfeno83j
	uq//aHEe0lkoq56q+9y7X86OGXRim9J2okqqK+lJ5rBRW2If5YxJXuL1jHDMFxkAFuRu/xgeBY/
	1Lpo9beCgFuZo9UT+GA2bvB7QRg==
X-Google-Smtp-Source: AGHT+IGXdZnfWTZOZbPlNyc1JaDuOIvClBhJqWlp3l+GimgiC51DXGN3+KU3zhlRCpaMLaFfe1YiLA==
X-Received: by 2002:a05:600c:a405:b0:439:91dd:cf9c with SMTP id 5b1f17b1804b1-4407163e193mr142252665e9.10.1745338005706;
        Tue, 22 Apr 2025 09:06:45 -0700 (PDT)
Message-ID: <af333718-8a7b-4e97-a24e-16699b6dd0bf@suse.com>
Date: Tue, 22 Apr 2025 18:06:44 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 07/11] vpci: Hide extended capability when it fails to
 initialize
To: Jiqian Chen <Jiqian.Chen@amd.com>
Cc: Huang Rui <ray.huang@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
References: <20250421061903.1542652-1-Jiqian.Chen@amd.com>
 <20250421061903.1542652-8-Jiqian.Chen@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: <20250421061903.1542652-8-Jiqian.Chen@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 21.04.2025 08:18, Jiqian Chen wrote:
> --- a/xen/include/xen/pci_regs.h
> +++ b/xen/include/xen/pci_regs.h
> @@ -449,6 +449,7 @@
>  #define PCI_EXT_CAP_ID(header)		((header) & 0x0000ffff)
>  #define PCI_EXT_CAP_VER(header)		(((header) >> 16) & 0xf)
>  #define PCI_EXT_CAP_NEXT(header)	(((header) >> 20) & 0xffc)
> +#define PCI_EXT_CAP_NEXT_MASK		0xFFC00000U

To avoid introducing redundancy, imo this addition calls for

#define PCI_EXT_CAP_NEXT(header)	MASK_EXTR(header, PCI_EXT_CAP_NEXT_MASK)

now.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 22 16:19:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 16:19:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.963255.1354268 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7GKj-0002PG-F0; Tue, 22 Apr 2025 16:18:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 963255.1354268; Tue, 22 Apr 2025 16:18: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 1u7GKj-0002P9-C3; Tue, 22 Apr 2025 16:18:53 +0000
Received: by outflank-mailman (input) for mailman id 963255;
 Tue, 22 Apr 2025 16:18: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=8D33=XI=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u7GKg-0002OS-VU
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 16:18:52 +0000
Received: from mail-4316.protonmail.ch (mail-4316.protonmail.ch [185.70.43.16])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 78a47a94-1f95-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 18:18:48 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 78a47a94-1f95-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=wzhp7zypfvdudhwah4q4aokfcq.protonmail; t=1745338727; x=1745597927;
	bh=RxqPh/u5o+W0O92qKYtGYhL4kdEF/pStYpUPNgHfHDw=;
	h=Date:To:From:Cc:Subject:Message-ID:Feedback-ID:From:To:Cc:Date:
	 Subject:Reply-To:Feedback-ID:Message-ID:BIMI-Selector:
	 List-Unsubscribe:List-Unsubscribe-Post;
	b=NrEmbszwLDyQ7L623KzitNS/3qdugPMBex351I6Ye/2zqCcks5g4xnQNlbA+GFbX+
	 RBktgYuTHov+jAi9AX7ZRy5vqNUVsSnmKgukjG8Nq5yjYHeM+ULv6cT2GMr+3Fzf7w
	 qhuPbtnSfhOiBigDWSY25t7kumGLv8do/UBFYBjISgoHxPjwcY70jxG0Y3VDvnrDUC
	 Cbu8eL4i6TmysIUaNMDTrAkFW/NLGfYQZWX1MTf6fmVd2CniZeQjF/ooC8Yr8NfeXE
	 ULqQnwy2q8nyYuA8qaQiesfyXFcenbJ+/CiTlvkyC3ira1oCvCh6TidJ3MhqoDelhu
	 DDgkMZtbcd3KA==
Date: Tue, 22 Apr 2025 16:18:42 +0000
To: xen-devel@lists.xenproject.org
From: dmkhn@proton.me
Cc: andrew.cooper3@citrix.com, cardoe@cardoe.com, marmarek@invisiblethingslab.com, sstabellini@kernel.org, dmukhin@ford.com
Subject: [PATCH v3 0/4] CI: updates to XTF CI runners
Message-ID: <20250422161819.2089738-1-dmukhin@ford.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: a8ebc4fc85e2c8467449300be7bf36dfb54c3af2
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

The series started from adding new argo XTF CI job and ended up with updati=
ng
all XTF runners and related CI jobs.

It unifies the XTF runner scripts so that it is possible to use one script =
for
executing any XTF test under QEMU. That simplifies running XTFs locally and=
 in
CI.

Patch 1 reworks x86 XTF runner.
Patch 2 reworks x86 EFI XTF.
Patch 3 reworks Arm64 XTF runner.
Patch 4 adds new argo x86 XTF CI job.

CI run: https://gitlab.com/xen-project/people/dmukhin/xen/-/pipelines/17788=
12896

Denis Mukhin (4):
  CI: unify x86 XTF test runner
  CI: switch x86 EFI smoke test runner to qemu-xtf.sh
  CI: switch arm64 XTF test runner to qemu-xtf.sh
  CI: add argo x86 XTF test

 automation/gitlab-ci/test.yaml                |  23 ++-
 automation/scripts/.gitignore                 |   6 +
 .../scripts/include/configs/xtf-arm64-config  |   2 +
 .../scripts/include/configs/xtf-x86-64-config |   0
 .../include/configs/xtf-x86-64-efi-config     |   0
 automation/scripts/include/xtf-arm64          |  81 ++++++++++
 automation/scripts/include/xtf-runner         | 138 ++++++++++++++++++
 automation/scripts/include/xtf-x86-64         |  31 ++++
 automation/scripts/include/xtf-x86-64-efi     |  52 +++++++
 automation/scripts/qemu-smoke-x86-64-efi.sh   |  43 ------
 automation/scripts/qemu-smoke-x86-64.sh       |  26 ----
 automation/scripts/qemu-xtf-dom0less-arm64.sh |  68 ---------
 automation/scripts/qemu-xtf.sh                |  28 ++++
 13 files changed, 354 insertions(+), 144 deletions(-)
 create mode 100644 automation/scripts/.gitignore
 create mode 100644 automation/scripts/include/configs/xtf-arm64-config
 create mode 100644 automation/scripts/include/configs/xtf-x86-64-config
 create mode 100644 automation/scripts/include/configs/xtf-x86-64-efi-confi=
g
 create mode 100644 automation/scripts/include/xtf-arm64
 create mode 100644 automation/scripts/include/xtf-runner
 create mode 100644 automation/scripts/include/xtf-x86-64
 create mode 100644 automation/scripts/include/xtf-x86-64-efi
 delete mode 100755 automation/scripts/qemu-smoke-x86-64-efi.sh
 delete mode 100755 automation/scripts/qemu-smoke-x86-64.sh
 delete mode 100755 automation/scripts/qemu-xtf-dom0less-arm64.sh
 create mode 100755 automation/scripts/qemu-xtf.sh

--=20
2.34.1




From xen-devel-bounces@lists.xenproject.org Tue Apr 22 16:19:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 16:19:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.963256.1354279 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7GKo-0002dh-Lu; Tue, 22 Apr 2025 16:18:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 963256.1354279; Tue, 22 Apr 2025 16: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 1u7GKo-0002da-JB; Tue, 22 Apr 2025 16:18:58 +0000
Received: by outflank-mailman (input) for mailman id 963256;
 Tue, 22 Apr 2025 16: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=8D33=XI=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u7GKn-0002OS-92
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 16:18:57 +0000
Received: from mail-24418.protonmail.ch (mail-24418.protonmail.ch
 [109.224.244.18]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7ce87d51-1f95-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 18:18:55 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7ce87d51-1f95-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1745338734; x=1745597934;
	bh=cC1DUbTqLJP2turpxpo8Ir6SiwbJmcivVBgKSyKgylI=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=g8srYZux20E2kk1ydjTTnJ4Er423l4yUHKjy/pzf8KcyRea0/x7JnG2ZLRavKuZP+
	 SAVSCDiZHFPXhWtW+cnb8VH8Eh+dTuGObfSYcAP2cm5e6kXkrQaC8TnkuIKC0NPE2n
	 nMggJwfxxzn0j+QA13Kvd+wsmj8LrDlckHYhj8Ey3jZSFE/CGO420DWL071rxG8raZ
	 1weoiqhXrXInONCZI+V879ODuidKnOyNpogJRjPtTCu99FtHa6357IBRC8JfwFO29o
	 xQz56jHtTzTCl3yxQd1lmFQAikZFYWl1O8RTYong7wTNx0HrWpUlEkvH1ToEKrIzU5
	 XNGKDLf6yqz2w==
Date: Tue, 22 Apr 2025 16:18:48 +0000
To: xen-devel@lists.xenproject.org
From: dmkhn@proton.me
Cc: andrew.cooper3@citrix.com, cardoe@cardoe.com, marmarek@invisiblethingslab.com, sstabellini@kernel.org, dmukhin@ford.com
Subject: [PATCH v3 1/4] CI: unify x86 XTF test runner
Message-ID: <20250422161819.2089738-2-dmukhin@ford.com>
In-Reply-To: <20250422161819.2089738-1-dmukhin@ford.com>
References: <20250422161819.2089738-1-dmukhin@ford.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 72deb3348aabf2b5b16338c2277023a485907b8a
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

From: Denis Mukhin <dmukhin@ford.com>

Add test runner script qemu-xtf.sh which is allows any XTF x86 test to be
easily executed. Test runner is invoked from the qemu-smoke* jobs with the
hardcoded parameters.

Each x86 XTF job lead time is reduced a bit since only the test-related cod=
e
is built, not the entire XTF project.

Add .gitignore to avoid committing test artifacts by mistake.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
Changes v2->v3:
- fixes for .gitignore
---
 automation/gitlab-ci/test.yaml                |   8 +-
 automation/scripts/.gitignore                 |   3 +
 .../scripts/include/configs/xtf-x86-64-config |   0
 automation/scripts/include/xtf-runner         | 131 ++++++++++++++++++
 automation/scripts/include/xtf-x86-64         |  31 +++++
 automation/scripts/qemu-smoke-x86-64.sh       |  26 ----
 automation/scripts/qemu-xtf.sh                |  28 ++++
 7 files changed, 197 insertions(+), 30 deletions(-)
 create mode 100644 automation/scripts/.gitignore
 create mode 100644 automation/scripts/include/configs/xtf-x86-64-config
 create mode 100644 automation/scripts/include/xtf-runner
 create mode 100644 automation/scripts/include/xtf-x86-64
 delete mode 100755 automation/scripts/qemu-smoke-x86-64.sh
 create mode 100755 automation/scripts/qemu-xtf.sh

diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yam=
l
index 5ce445b78f..3adc841335 100644
--- a/automation/gitlab-ci/test.yaml
+++ b/automation/gitlab-ci/test.yaml
@@ -659,28 +659,28 @@ qemu-alpine-x86_64-gcc:
 qemu-smoke-x86-64-gcc:
   extends: .qemu-smoke-x86-64
   script:
-    - ./automation/scripts/qemu-smoke-x86-64.sh pv 2>&1 | tee ${LOGFILE}
+    - ./automation/scripts/qemu-xtf.sh x86-64 pv64 example 2>&1 | tee ${LO=
GFILE}
   needs:
     - debian-12-x86_64-gcc-debug
=20
 qemu-smoke-x86-64-clang:
   extends: .qemu-smoke-x86-64
   script:
-    - ./automation/scripts/qemu-smoke-x86-64.sh pv 2>&1 | tee ${LOGFILE}
+    - ./automation/scripts/qemu-xtf.sh x86-64 pv64 example 2>&1 | tee ${LO=
GFILE}
   needs:
     - debian-12-x86_64-clang-debug
=20
 qemu-smoke-x86-64-gcc-pvh:
   extends: .qemu-smoke-x86-64
   script:
-    - ./automation/scripts/qemu-smoke-x86-64.sh pvh 2>&1 | tee ${LOGFILE}
+    - ./automation/scripts/qemu-xtf.sh x86-64 hvm64 example 2>&1 | tee ${L=
OGFILE}
   needs:
     - debian-12-x86_64-gcc-debug
=20
 qemu-smoke-x86-64-clang-pvh:
   extends: .qemu-smoke-x86-64
   script:
-    - ./automation/scripts/qemu-smoke-x86-64.sh pvh 2>&1 | tee ${LOGFILE}
+    - ./automation/scripts/qemu-xtf.sh x86-64 hvm64 example 2>&1 | tee ${L=
OGFILE}
   needs:
     - debian-12-x86_64-clang-debug
=20
diff --git a/automation/scripts/.gitignore b/automation/scripts/.gitignore
new file mode 100644
index 0000000000..310a577bef
--- /dev/null
+++ b/automation/scripts/.gitignore
@@ -0,0 +1,3 @@
+/binaries/
+/smoke.serial
+/xtf-*/
diff --git a/automation/scripts/include/configs/xtf-x86-64-config b/automat=
ion/scripts/include/configs/xtf-x86-64-config
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/automation/scripts/include/xtf-runner b/automation/scripts/inc=
lude/xtf-runner
new file mode 100644
index 0000000000..320eb65dc8
--- /dev/null
+++ b/automation/scripts/include/xtf-runner
@@ -0,0 +1,131 @@
+#!/bin/bash
+#
+# XTF test utilities.
+#
+# Environment variables:
+#   BOOT_MSG: Expected boot message
+#   FW_PREFIX: Firmware images path including '/' at the end
+#   PASSED: XTF test printout in case of a pass
+#   QEMU_PREFIX: QEMU path including '/' at the end
+#   TEST_LOG: Output log file
+#   UBOOT_CMD: U-Boot command line
+#   WORKDIR: Test working directory
+#   XEN_BINARY: Xen binary location
+#   XEN_CONSOLE: Xen console device name
+#   XTF_SRC_CONFIG: XTF config file
+#   XTF_SRC_BRANCH: XTF branch
+#   XTF_SRC_URI: XTF source code URI
+
+# Output log file
+TEST_LOG=3D"${TEST_LOG:-${XEN_ROOT}/smoke.serial}"
+# XTF test printout in case of a pass
+PASSED=3D"${PASSED:-Test result: SUCCESS}"
+# Expected boot message
+BOOT_MSG=3D"${BOOT_MSG:-Latest ChangeSet: }"
+# Test working directory
+WORKDIR=3D"${WORKDIR:-${XEN_ROOT}/binaries}"
+# XTF source code
+XTF_SRC_CONFIG=3D"${XTF_SRC_CONFIG:-include/configs/xtf-${ARCH}-config}"
+
+function die()
+{
+    set +x
+    echo "FATAL: $*" >&2
+    exit 1
+}
+
+# Build an XTF test binary.
+# $1 Test variant.
+# $2 Test name.
+function xtf_build_binary()
+{
+    local xtf_variant=3D$1
+    local xtf_name=3D$2
+    local xtf_dir=3D"xtf-${ARCH}"
+
+    # Crude check for local testing
+    if [ ! -d ${xtf_dir} ]; then
+        git clone ${XTF_SRC_URI} ${xtf_dir} -b ${XTF_SRC_BRANCH}
+    fi
+
+    make \
+        -C ${xtf_dir} \
+        -j$(nproc) \
+        $(tr '\n' ' ' < ${XTF_SRC_CONFIG}) \
+        TESTS=3Dtests/${xtf_name}
+
+    export XTF_NAME=3D"${xtf_name}"
+    export XTF_VARIANT=3D"${xtf_variant}"
+    export XTF_WORKDIR=3D"$(readlink -f ${xtf_dir})"
+    export XTF_BINARY=3D"${XTF_WORKDIR}/tests/${xtf_name}/test-${xtf_varia=
nt}-${xtf_name}"
+}
+
+# Build Xen command line for running an XTF test.
+# $1 Test variant.
+# $2 Test name.
+function xtf_build_cmdline()
+{
+    local xtf_variant=3D$1
+    local xtf_name=3D$2
+    declare -a cmdline=3D()
+
+    cmdline+=3D("${XEN_CMDLINE}")
+
+    # NB: OK to have hvm64, which is x86-only variant
+    if [[ $xtf_variant =3D=3D "hvm64" ]]; then
+        cmdline+=3D("dom0-iommu=3Dnone dom0=3Dpvh")
+    fi
+
+    export XEN_CMDLINE=3D"${cmdline[@]}"
+}
+
+# Build an XTF test environment.
+# $1 Test variant.
+# $2 Test name.
+function xtf_build_test()
+{
+    local v=3D$1
+    local xtf_name=3D$2
+    local xtf_variant=3D""
+
+    for x in ${XTF_SRC_VARIANTS}; do
+        if [[ "${x}" =3D=3D "${v}" ]]; then
+            xtf_variant=3D${v}
+            break
+        fi
+    done
+    if [[ -z $xtf_variant ]]; then
+        die "unsupported test variant '$1', supported variants: ${XTF_SRC_=
VARIANTS}"
+    fi
+
+    xtf_build_binary ${xtf_variant} ${xtf_name}
+    xtf_build_cmdline ${xtf_variant} ${xtf_name}
+}
+
+# Execute an XTF test.
+function xtf_run_test()
+{
+    rm -f ${TEST_LOG}
+    export BOOT_MSG PASSED TEST_CMD TEST_LOG UBOOT_CMD
+    ./console.exp | sed 's/\r\+$//'
+}
+
+# Setup environment and run an XTF test.
+# $1 Test variant.
+# $2 Test name.
+function xtf_test()
+{
+    # Out: FW_*, QEMU_*, XEN_{BINARY,CONSOLE}, XTF_SRC_*
+    xtf_arch_prepare
+
+    # In: XTF_SRC_*
+    # OUt: XTF_{BINARY,NAME,VARIANT,WORKDIR} and XEN_CMDLINE
+    xtf_build_test $@
+
+    # In: FW_*, QEMU_*, XTF_*, XEN_*
+    # Out: BOOT_MSG, PASSED, TEST_{CMD,LOG}, UBOOT_CMD
+    xtf_arch_setup
+
+    # In: BOOT_MSG, PASSED, TEST_{CMD,LOG}, UBOOT_CMD
+    xtf_run_test
+}
diff --git a/automation/scripts/include/xtf-x86-64 b/automation/scripts/inc=
lude/xtf-x86-64
new file mode 100644
index 0000000000..b1b0cc201e
--- /dev/null
+++ b/automation/scripts/include/xtf-x86-64
@@ -0,0 +1,31 @@
+#!/bin/bash
+#
+# XTF test utilities (x86_64).
+#
+
+# Arch-specific environment overrides.
+function xtf_arch_prepare()
+{
+    export FW_PREFIX=3D"${FW_PREFIX:-}"
+    export QEMU_PREFIX=3D"${QEMU_PREFIX:-}"
+    export XEN_BINARY=3D"${XEN_BINARY:-${WORKDIR}/xen}"
+    export XEN_CMDLINE=3D"${XEN_CMDLINE:-loglvl=3Dall noreboot console_tim=
estamps=3Dboot console=3Dcom1}"
+    export XTF_SRC_BRANCH=3D"${XTF_SRC_BRANCH:-master}"
+    export XTF_SRC_URI=3D"${XTF_SRC_URI:-https://xenbits.xen.org/git-http/=
xtf.git}"
+    export XTF_SRC_VARIANTS=3D"hvm64 pv64"
+}
+
+# Perform arch-specific XTF environment setup.
+function xtf_arch_setup()
+{
+    export TEST_CMD=3D"${QEMU_PREFIX}qemu-system-x86_64 \
+        -no-reboot \
+        -nographic \
+        -monitor none \
+        -serial stdio \
+        -m 512 \
+        -kernel ${XEN_BINARY} \
+        -initrd ${XTF_BINARY} \
+        -append \"${XEN_CMDLINE}\" \
+    "
+}
diff --git a/automation/scripts/qemu-smoke-x86-64.sh b/automation/scripts/q=
emu-smoke-x86-64.sh
deleted file mode 100755
index da0c26cc2f..0000000000
--- a/automation/scripts/qemu-smoke-x86-64.sh
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/bin/bash
-
-set -ex -o pipefail
-
-# variant should be either pv or pvh
-variant=3D$1
-
-# Clone and build XTF
-git clone https://xenbits.xen.org/git-http/xtf.git
-cd xtf && make -j$(nproc) && cd -
-
-case $variant in
-    pvh) k=3Dtest-hvm64-example    extra=3D"dom0-iommu=3Dnone dom0=3Dpvh" =
;;
-    *)   k=3Dtest-pv64-example     extra=3D ;;
-esac
-
-rm -f smoke.serial
-export TEST_CMD=3D"qemu-system-x86_64 -nographic -kernel binaries/xen \
-        -initrd xtf/tests/example/$k \
-        -append \"loglvl=3Dall console=3Dcom1 noreboot console_timestamps=
=3Dboot $extra\" \
-        -m 512 -monitor none -serial stdio"
-
-export TEST_LOG=3D"smoke.serial"
-export PASSED=3D"Test result: SUCCESS"
-
-./automation/scripts/console.exp | sed 's/\r\+$//'
diff --git a/automation/scripts/qemu-xtf.sh b/automation/scripts/qemu-xtf.s=
h
new file mode 100755
index 0000000000..55c221b36d
--- /dev/null
+++ b/automation/scripts/qemu-xtf.sh
@@ -0,0 +1,28 @@
+#!/bin/bash
+#
+# XTF test runner (QEMU).
+#
+
+set -e -o pipefail
+
+if [ $# -lt 3 ]; then
+    echo "Usage: $(basename $0) ARCH XTF-VARIANT XTF-NAME"
+    exit 0
+fi
+
+export ARCH=3D"$1"
+shift
+
+set -x
+
+export XEN_ROOT=3D"${PWD}"
+cd $(dirname $0)
+
+source include/xtf-runner
+
+if [ ! -f "include/xtf-${ARCH}" ]; then
+    die "unsupported architecture '${ARCH}'"
+fi
+source include/xtf-${ARCH}
+
+xtf_test $@
--=20
2.34.1




From xen-devel-bounces@lists.xenproject.org Tue Apr 22 16:19:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 16:19:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.963257.1354288 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7GKt-0002w6-Sj; Tue, 22 Apr 2025 16:19:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 963257.1354288; Tue, 22 Apr 2025 16: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 1u7GKt-0002vz-QA; Tue, 22 Apr 2025 16:19:03 +0000
Received: by outflank-mailman (input) for mailman id 963257;
 Tue, 22 Apr 2025 16: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=8D33=XI=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u7GKs-0002uR-Bf
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 16:19:02 +0000
Received: from mail-4316.protonmail.ch (mail-4316.protonmail.ch [185.70.43.16])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7fb53ab8-1f95-11f0-9eb0-5ba50f476ded;
 Tue, 22 Apr 2025 18:19:00 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7fb53ab8-1f95-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1745338739; x=1745597939;
	bh=gMICI6B3lH/LI8Bo7Noz0rmmlJx0a8snq/+0lLRbH+M=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=UCsXDTVoq5B31Qd6bE7qOehw7bEXQcUzWtrVOQzvvOe9RnCE4HsZdbEEf6t7L9cxJ
	 UQVpxqq885WHgWXUqLoDFM6GkR24RnrVQFnI4Vb7rVdNC1Xv/MM/ycZ2v9smmSh740
	 uCsnMIMO4Mfv/Iwpd+5XaQdFVWBVn9FLXflLZ3QrHhYU1aeZecfUJiSczAOblheLf3
	 ZCCKchQXIkuKYJsjsT4CEU6CgCzTZ6RT+w7/r2+PupglHfHMfyduAh27eGwoUWuHFR
	 teJX6Q4lFo+KYE6Hh9UN5t4SPq9HLCsOTpREpic2h5hqrzR5SPHLHk1sWzBZ0IqcX2
	 iltd8Vk+ARiLw==
Date: Tue, 22 Apr 2025 16:18:53 +0000
To: xen-devel@lists.xenproject.org
From: dmkhn@proton.me
Cc: andrew.cooper3@citrix.com, cardoe@cardoe.com, marmarek@invisiblethingslab.com, sstabellini@kernel.org, dmukhin@ford.com
Subject: [PATCH v3 2/4] CI: switch x86 EFI smoke test runner to qemu-xtf.sh
Message-ID: <20250422161819.2089738-3-dmukhin@ford.com>
In-Reply-To: <20250422161819.2089738-1-dmukhin@ford.com>
References: <20250422161819.2089738-1-dmukhin@ford.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: a54f0f1eabfa8fd521b8068cfcc7d05cc1e3615b
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

From: Denis Mukhin <dmukhin@ford.com>

Use qemu-xtf.sh for qemu-smoke-x86-64-gcc-efi job.

Lead time is reduced a bit since not all XTF code base is built, just the
required test.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
Changes v2->v3:
- use pv64 variant for EFI job
---
 automation/gitlab-ci/test.yaml                |  2 +-
 .../include/configs/xtf-x86-64-efi-config     |  0
 automation/scripts/include/xtf-x86-64-efi     | 52 +++++++++++++++++++
 automation/scripts/qemu-smoke-x86-64-efi.sh   | 43 ---------------
 4 files changed, 53 insertions(+), 44 deletions(-)
 create mode 100644 automation/scripts/include/configs/xtf-x86-64-efi-confi=
g
 create mode 100644 automation/scripts/include/xtf-x86-64-efi
 delete mode 100755 automation/scripts/qemu-smoke-x86-64-efi.sh

diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yam=
l
index 3adc841335..1d89575b24 100644
--- a/automation/gitlab-ci/test.yaml
+++ b/automation/gitlab-ci/test.yaml
@@ -687,7 +687,7 @@ qemu-smoke-x86-64-clang-pvh:
 qemu-smoke-x86-64-gcc-efi:
   extends: .qemu-smoke-x86-64
   script:
-    - ./automation/scripts/qemu-smoke-x86-64-efi.sh pv 2>&1 | tee ${LOGFIL=
E}
+    - ./automation/scripts/qemu-xtf.sh x86-64-efi pv64 example 2>&1 | tee =
${LOGFILE}
   needs:
     - debian-12-x86_64-gcc-debug
=20
diff --git a/automation/scripts/include/configs/xtf-x86-64-efi-config b/aut=
omation/scripts/include/configs/xtf-x86-64-efi-config
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/automation/scripts/include/xtf-x86-64-efi b/automation/scripts=
/include/xtf-x86-64-efi
new file mode 100644
index 0000000000..e0d821b3f6
--- /dev/null
+++ b/automation/scripts/include/xtf-x86-64-efi
@@ -0,0 +1,52 @@
+#!/bin/bash
+#
+# XTF test utilities (x86_64, EFI).
+#
+
+# Arch-specific environment overrides.
+function xtf_arch_prepare()
+{
+    export FW_PREFIX=3D"${FW_PREFIX:-/usr/share/OVMF/}"
+    export QEMU_PREFIX=3D"${QEMU_PREFIX:-}"
+    export XEN_BINARY=3D"${XEN_BINARY:-${WORKDIR}/xen.efi}"
+    export XEN_CMDLINE=3D"${XEN_CMDLINE:-loglvl=3Dall noreboot console_tim=
estamps=3Dboot console=3Dcom1}"
+    export XTF_SRC_BRANCH=3D"${XTF_SRC_BRANCH:-master}"
+    export XTF_SRC_URI=3D"${XTF_SRC_URI:-https://xenbits.xen.org/git-http/=
xtf.git}"
+    export XTF_SRC_VARIANTS=3D"hvm64 pv64"
+}
+
+# Perform arch-specific XTF environment setup.
+function xtf_arch_setup()
+{
+    local esp_dir=3D"${WORKDIR}/boot-esp"
+    local efi_dir=3D"${esp_dir}/EFI/BOOT"
+
+    # Generate EFI boot environment
+    mkdir -p ${efi_dir}
+    cp ${XEN_BINARY} ${efi_dir}/BOOTX64.EFI
+    cp ${XTF_BINARY} ${efi_dir}/kernel
+
+    cat > ${efi_dir}/BOOTX64.cfg <<EOF
+[global]
+default=3Dtest
+
+[test]
+options=3D${XEN_CMDLINE}
+kernel=3Dkernel
+EOF
+
+    # NB: OVMF_CODE.fd is read-only, no need to copy
+    cp ${FW_PREFIX}OVMF_VARS.fd ${WORKDIR}
+
+    export TEST_CMD=3D"${QEMU_PREFIX}qemu-system-x86_64 \
+        -no-reboot \
+        -nographic \
+        -monitor none \
+        -serial stdio \
+        -m 512 \
+        -M q35,kernel-irqchip=3Dsplit \
+        -drive if=3Dpflash,format=3Draw,readonly=3Don,file=3D${FW_PREFIX}O=
VMF_CODE.fd \
+        -drive if=3Dpflash,format=3Draw,file=3D${WORKDIR}/OVMF_VARS.fd \
+        -drive file=3Dfat:rw:${esp_dir},media=3Ddisk,index=3D0,format=3Dra=
w \
+    "
+}
diff --git a/automation/scripts/qemu-smoke-x86-64-efi.sh b/automation/scrip=
ts/qemu-smoke-x86-64-efi.sh
deleted file mode 100755
index 7572722be6..0000000000
--- a/automation/scripts/qemu-smoke-x86-64-efi.sh
+++ /dev/null
@@ -1,43 +0,0 @@
-#!/bin/bash
-
-set -ex -o pipefail
-
-# variant should be either pv or pvh
-variant=3D$1
-
-# Clone and build XTF
-git clone https://xenbits.xen.org/git-http/xtf.git
-cd xtf && make -j$(nproc) && cd -
-
-case $variant in
-    pvh) k=3Dtest-hvm64-example    extra=3D"dom0-iommu=3Dnone dom0=3Dpvh" =
;;
-    *)   k=3Dtest-pv64-example     extra=3D ;;
-esac
-
-mkdir -p boot-esp/EFI/BOOT
-cp binaries/xen.efi boot-esp/EFI/BOOT/BOOTX64.EFI
-cp xtf/tests/example/$k boot-esp/EFI/BOOT/kernel
-
-cat > boot-esp/EFI/BOOT/BOOTX64.cfg <<EOF
-[global]
-default=3Dtest
-
-[test]
-options=3Dloglvl=3Dall console=3Dcom1 noreboot console_timestamps=3Dboot $=
extra
-kernel=3Dkernel
-EOF
-
-cp /usr/share/OVMF/OVMF_CODE.fd OVMF_CODE.fd
-cp /usr/share/OVMF/OVMF_VARS.fd OVMF_VARS.fd
-
-rm -f smoke.serial
-export TEST_CMD=3D"qemu-system-x86_64 -nographic -M q35,kernel-irqchip=3Ds=
plit \
-        -drive if=3Dpflash,format=3Draw,readonly=3Don,file=3DOVMF_CODE.fd =
\
-        -drive if=3Dpflash,format=3Draw,file=3DOVMF_VARS.fd \
-        -drive file=3Dfat:rw:boot-esp,media=3Ddisk,index=3D0,format=3Draw =
\
-        -m 512 -monitor none -serial stdio"
-
-export TEST_LOG=3D"smoke.serial"
-export PASSED=3D"Test result: SUCCESS"
-
-./automation/scripts/console.exp | sed 's/\r\+$//'
--=20
2.34.1




From xen-devel-bounces@lists.xenproject.org Tue Apr 22 16:19:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 16:19:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.963264.1354299 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7GL5-0003Vw-8p; Tue, 22 Apr 2025 16:19:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 963264.1354299; Tue, 22 Apr 2025 16:19: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 1u7GL5-0003Vl-4q; Tue, 22 Apr 2025 16:19:15 +0000
Received: by outflank-mailman (input) for mailman id 963264;
 Tue, 22 Apr 2025 16:19: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=8D33=XI=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u7GL3-0002OS-B8
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 16:19:13 +0000
Received: from mail-4322.protonmail.ch (mail-4322.protonmail.ch [185.70.43.22])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8688f88f-1f95-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 18:19:11 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8688f88f-1f95-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1745338751; x=1745597951;
	bh=Oxzopb2Smy8wHitpBXm9PkJA3tLunHfsAtM0n7PUwIE=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=ddniTTcuTQ8E+9TlrnrhoHnavJgaYwNo+DkDLZMkiLU+qO7Sremt3zzcKWjzHotJ2
	 Dsv+CD5sSa5QBeRhthDN1nfWUXnVbBailLiHkO3HK/4WY9fb04zruJLN+LSKgYwKCV
	 tUVJQIbqKYNrFNkAK/fT2hIUy/6xKx1U/4jQ9oBjO5Emw9FvH5THGq3/Jw8TXudUuG
	 hsDDg522KD3gvhFZ6PPwwNPtiRjaEpeVA386yFbczdesSgg+JZM+BQJXQerNk1llrN
	 CpLv+awBzsTmU9Ik/fDmCM/dn57wJtjqqxXVqL1Nblym7jXZSp2d/zTwrJw8Nw7AzI
	 +KLB3R8KSF2MA==
Date: Tue, 22 Apr 2025 16:18:59 +0000
To: xen-devel@lists.xenproject.org
From: dmkhn@proton.me
Cc: andrew.cooper3@citrix.com, cardoe@cardoe.com, marmarek@invisiblethingslab.com, sstabellini@kernel.org, dmukhin@ford.com
Subject: [PATCH v3 3/4] CI: switch arm64 XTF test runner to qemu-xtf.sh
Message-ID: <20250422161819.2089738-4-dmukhin@ford.com>
In-Reply-To: <20250422161819.2089738-1-dmukhin@ford.com>
References: <20250422161819.2089738-1-dmukhin@ford.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 463a1c55ac49d624fc10569fc5d79917ac781576
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

From: Denis Mukhin <dmukhin@ford.com>

Hook arm64 QEMU configuration to qemu-xtf.sh and use new script in arm64 CI
jobs.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
---
Changes v2->v3:
- .gitignore fixup
- Kept Stefano's R-b since the change was trivial
---
 automation/gitlab-ci/test.yaml                |  4 +-
 automation/scripts/.gitignore                 |  3 +
 .../scripts/include/configs/xtf-arm64-config  |  2 +
 automation/scripts/include/xtf-arm64          | 81 +++++++++++++++++++
 automation/scripts/qemu-xtf-dom0less-arm64.sh | 68 ----------------
 5 files changed, 88 insertions(+), 70 deletions(-)
 create mode 100644 automation/scripts/include/configs/xtf-arm64-config
 create mode 100644 automation/scripts/include/xtf-arm64
 delete mode 100755 automation/scripts/qemu-xtf-dom0less-arm64.sh

diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yam=
l
index 1d89575b24..a603d4039a 100644
--- a/automation/gitlab-ci/test.yaml
+++ b/automation/gitlab-ci/test.yaml
@@ -571,7 +571,7 @@ qemu-smoke-dom0less-arm64-gcc-debug-earlyprintk:
 qemu-xtf-dom0less-arm64-gcc-hyp-xen-version:
   extends: .qemu-arm64
   script:
-    - ./automation/scripts/qemu-xtf-dom0less-arm64.sh hyp-xen-version 2>&1=
 | tee ${LOGFILE}
+    - ./automation/scripts/qemu-xtf.sh arm64 mmu64le hyp-xen-version 2>&1 =
| tee ${LOGFILE}
   needs:
     - alpine-3.18-gcc-arm64
     - qemu-system-aarch64-6.0.0-arm64-export
@@ -579,7 +579,7 @@ qemu-xtf-dom0less-arm64-gcc-hyp-xen-version:
 qemu-xtf-dom0less-arm64-gcc-debug-hyp-xen-version:
   extends: .qemu-arm64
   script:
-    - ./automation/scripts/qemu-xtf-dom0less-arm64.sh hyp-xen-version 2>&1=
 | tee ${LOGFILE}
+    - ./automation/scripts/qemu-xtf.sh arm64 mmu64le hyp-xen-version 2>&1 =
| tee ${LOGFILE}
   needs:
     - alpine-3.18-gcc-debug-arm64
     - qemu-system-aarch64-6.0.0-arm64-export
diff --git a/automation/scripts/.gitignore b/automation/scripts/.gitignore
index 310a577bef..a01b533c60 100644
--- a/automation/scripts/.gitignore
+++ b/automation/scripts/.gitignore
@@ -1,3 +1,6 @@
 /binaries/
+/imagebuilder/
 /smoke.serial
 /xtf-*/
+
+*.rom
diff --git a/automation/scripts/include/configs/xtf-arm64-config b/automati=
on/scripts/include/configs/xtf-arm64-config
new file mode 100644
index 0000000000..9942740927
--- /dev/null
+++ b/automation/scripts/include/configs/xtf-arm64-config
@@ -0,0 +1,2 @@
+CONFIG_GICV2=3Dy
+CONFIG_SBSA_UART=3Dy
diff --git a/automation/scripts/include/xtf-arm64 b/automation/scripts/incl=
ude/xtf-arm64
new file mode 100644
index 0000000000..1a318b7aa0
--- /dev/null
+++ b/automation/scripts/include/xtf-arm64
@@ -0,0 +1,81 @@
+#!/bin/bash
+#
+# XTF test utilities (arm64).
+#
+
+# Arch-specific environment overrides.
+function xtf_arch_prepare()
+{
+    export FW_PREFIX=3D"${FW_PREFIX:-/usr/lib/u-boot/qemu_arm64/}"
+    export QEMU_PREFIX=3D"${QEMU_PREFIX:-${WORKDIR}/}"
+    export XEN_BINARY=3D"${XEN_BINARY:-${WORKDIR}/xen}"
+    export XEN_CMDLINE=3D"${XEN_CMDLINE:-loglvl=3Dall noreboot console_tim=
estamps=3Dboot console=3Ddtuart}"
+    export XTF_SRC_BRANCH=3D"${XTF_SRC_BRANCH:-xtf-arm}"
+    export XTF_SRC_URI=3D"${XTF_SRC_URI:-https://gitlab.com/xen-project/fu=
sa/xtf.git}"
+    export XTF_SRC_VARIANTS=3D"mmu64le"
+}
+
+# Perform arch-specific XTF environment setup.
+function xtf_arch_setup()
+{
+    # QEMU looks for "efi-virtio.rom" even if it is unneeded
+    curl -fsSLO https://github.com/qemu/qemu/raw/v5.2.0/pc-bios/efi-virtio=
.rom
+
+    # Crude check for local testing
+    if [ ! -d imagebuilder ]; then
+        git clone --depth 1 https://gitlab.com/xen-project/imagebuilder.gi=
t
+    fi
+
+    cat > ${WORKDIR}/config <<EOF
+MEMORY_START=3D"0x40000000"
+MEMORY_END=3D"0xC0000000"
+
+XEN=3D"xen"
+DEVICE_TREE=3D"virt-gicv2.dtb"
+
+XEN_CMD=3D"${XEN_CMDLINE}"
+
+DOMU_KERNEL[0]=3D"xtf-test"
+DOMU_MEM[0]=3D"128"
+
+NUM_DOMUS=3D1
+
+LOAD_CMD=3D"tftpb"
+UBOOT_SOURCE=3D"boot.source"
+UBOOT_SCRIPT=3D"boot.scr"
+EOF
+    cp ${XTF_BINARY} ${WORKDIR}/xtf-test
+
+    # Generate virt-gicv2.dtb
+    ${WORKDIR}/qemu-system-aarch64 \
+        -machine virtualization=3Dtrue \
+        -cpu cortex-a57 \
+        -machine type=3Dvirt \
+        -m 2048 \
+        -smp 2 \
+        -display none \
+        -machine dumpdtb=3D${WORKDIR}/virt-gicv2.dtb
+
+    # Generate U-Boot environment
+    bash -x imagebuilder/scripts/uboot-script-gen \
+        -t tftp \
+        -d ${WORKDIR}/ \
+        -c ${WORKDIR}/config
+
+    export TEST_CMD=3D"${QEMU_PREFIX}qemu-system-aarch64 \
+        -machine virtualization=3Dtrue \
+        -cpu cortex-a57 \
+        -machine type=3Dvirt \
+        -no-reboot \
+        -nographic \
+        -monitor none \
+        -serial stdio \
+        -m 2048 \
+        -smp 2 \
+        -device virtio-net-pci,netdev=3Dn0 \
+        -netdev user,id=3Dn0,tftp=3D${WORKDIR} \
+        -bios ${FW_PREFIX}u-boot.bin \
+    "
+
+    export UBOOT_CMD=3D"virtio scan; dhcp; tftpb 0x40000000 boot.scr; sour=
ce 0x40000000"
+}
diff --git a/automation/scripts/qemu-xtf-dom0less-arm64.sh b/automation/scr=
ipts/qemu-xtf-dom0less-arm64.sh
deleted file mode 100755
index 436f460c3c..0000000000
--- a/automation/scripts/qemu-xtf-dom0less-arm64.sh
+++ /dev/null
@@ -1,68 +0,0 @@
-#!/bin/bash
-
-set -ex -o pipefail
-
-# Name of the XTF test
-xtf_test=3D$1
-
-# Message returned by XTF in case of success
-passed=3D"Test result: SUCCESS"
-
-# XXX QEMU looks for "efi-virtio.rom" even if it is unneeded
-curl -fsSLO https://github.com/qemu/qemu/raw/v5.2.0/pc-bios/efi-virtio.rom
-./binaries/qemu-system-aarch64 \
-   -machine virtualization=3Dtrue \
-   -cpu cortex-a57 -machine type=3Dvirt \
-   -m 2048 -smp 2 -display none \
-   -machine dumpdtb=3Dbinaries/virt-gicv2.dtb
-
-# XTF
-# Build a single XTF test passed as a first parameter to the script.
-# Build XTF with GICv2 support to match Qemu configuration and with SBSA U=
ART
-# support, so that the test will use an emulated UART for printing message=
s.
-# This will allow us to run the test on both debug and non-debug Xen build=
s.
-rm -rf xtf
-git clone https://gitlab.com/xen-project/fusa/xtf.git -b xtf-arm
-make -C xtf TESTS=3Dtests/${xtf_test} CONFIG_SBSA_UART=3Dy CONFIG_GICV2=3D=
y -j$(nproc)
-cp xtf/tests/${xtf_test}/test-mmu64le-${xtf_test} binaries/xtf-test
-
-# ImageBuilder
-echo 'MEMORY_START=3D"0x40000000"
-MEMORY_END=3D"0xC0000000"
-
-XEN=3D"xen"
-DEVICE_TREE=3D"virt-gicv2.dtb"
-
-XEN_CMD=3D"console=3Ddtuart console_timestamps=3Dboot"
-
-DOMU_KERNEL[0]=3D"xtf-test"
-DOMU_MEM[0]=3D"128"
-
-NUM_DOMUS=3D1
-
-LOAD_CMD=3D"tftpb"
-UBOOT_SOURCE=3D"boot.source"
-UBOOT_SCRIPT=3D"boot.scr"' > binaries/config
-
-rm -rf imagebuilder
-git clone --depth 1 https://gitlab.com/xen-project/imagebuilder.git
-bash imagebuilder/scripts/uboot-script-gen -t tftp -d binaries/ -c binarie=
s/config
-
-# Run the test
-rm -f smoke.serial
-export TEST_CMD=3D"./binaries/qemu-system-aarch64 \
-    -machine virtualization=3Dtrue \
-    -cpu cortex-a57 -machine type=3Dvirt \
-    -m 2048 -monitor none -serial stdio \
-    -smp 2 \
-    -no-reboot \
-    -device virtio-net-pci,netdev=3Dn0 \
-    -netdev user,id=3Dn0,tftp=3Dbinaries \
-    -bios /usr/lib/u-boot/qemu_arm64/u-boot.bin"
-
-export UBOOT_CMD=3D"virtio scan; dhcp; tftpb 0x40000000 boot.scr; source 0=
x40000000"
-export BOOT_MSG=3D"Latest ChangeSet: "
-export TEST_LOG=3D"smoke.serial"
-export PASSED=3D"${passed}"
-
-./automation/scripts/console.exp | sed 's/\r\+$//'
--=20
2.34.1




From xen-devel-bounces@lists.xenproject.org Tue Apr 22 16:19:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 16:19:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.963265.1354305 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7GL5-0003ZF-JZ; Tue, 22 Apr 2025 16:19:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 963265.1354305; Tue, 22 Apr 2025 16:19: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 1u7GL5-0003Y1-BK; Tue, 22 Apr 2025 16:19:15 +0000
Received: by outflank-mailman (input) for mailman id 963265;
 Tue, 22 Apr 2025 16:19: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=8D33=XI=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u7GL3-0002uR-La
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 16:19:13 +0000
Received: from mail-10630.protonmail.ch (mail-10630.protonmail.ch
 [79.135.106.30]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8722221b-1f95-11f0-9eb0-5ba50f476ded;
 Tue, 22 Apr 2025 18:19:12 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8722221b-1f95-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=kws2ikdhtvcfbjqicgoxdcmfgi.protonmail; t=1745338751; x=1745597951;
	bh=lluC37bYu1rla9tiJD23HA8Ll/epPWACSifBUXpaAG4=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=ddyv90S+nKj9XjI4HZ20RzmtBHGFVOpnihAqyWGTPtLHFw41M1dh8/NVmb4NDwTUI
	 siuAAf2zlKGqOF0H5nxPDGmXirU1JEYAH7zmb2CFE98Z/DKM2fhatPagrRHH9npWql
	 RTR4hlrPmuI6qUtY5+FonthnLqRtfxjsPlBhScQUmTo0oRofaj2UAQ7u02NUD5k3ZJ
	 wcnEsUlWt5hHZXWdP8MgZrQpXatbkBk5RIplSE+rbnKZOyyou9SoNz0t5p4/igE0Ku
	 UC9gDAniwy/djaY+LgrD+LyP/zxvI5o1xdI+lTSQ5W0vzVWex4V1Zlv9RysAnRY0Zp
	 OK9+pJZQZGcNw==
Date: Tue, 22 Apr 2025 16:19:06 +0000
To: xen-devel@lists.xenproject.org
From: dmkhn@proton.me
Cc: andrew.cooper3@citrix.com, cardoe@cardoe.com, marmarek@invisiblethingslab.com, sstabellini@kernel.org, dmukhin@ford.com
Subject: [PATCH v3 4/4] CI: add argo x86 XTF test
Message-ID: <20250422161819.2089738-5-dmukhin@ford.com>
In-Reply-To: <20250422161819.2089738-1-dmukhin@ford.com>
References: <20250422161819.2089738-1-dmukhin@ford.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 7fbbef330dd6936ec6b0785d770909581a7d0fb2
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

From: Denis Mukhin <dmukhin@ford.com>

Introduce new CI job to run x86 XTF argo test under QEMU to smoke test argo
feature functionality in upstream CI.

The new job lead time is ~30s, limit max job duration to 60s.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
---
Changes v2->v3:
- Added Stefano's R-b
---
 automation/gitlab-ci/test.yaml        | 9 +++++++++
 automation/scripts/include/xtf-runner | 7 +++++++
 2 files changed, 16 insertions(+)

diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yam=
l
index a603d4039a..eba41f4048 100644
--- a/automation/gitlab-ci/test.yaml
+++ b/automation/gitlab-ci/test.yaml
@@ -691,6 +691,15 @@ qemu-smoke-x86-64-gcc-efi:
   needs:
     - debian-12-x86_64-gcc-debug
=20
+qemu-xtf-argo-x86_64-gcc-debug:
+  extends: .qemu-smoke-x86-64
+  variables:
+    TEST_TIMEOUT_OVERRIDE: 60
+  script:
+    - ./automation/scripts/qemu-xtf.sh x86-64 pv64 argo 2>&1 | tee ${LOGFI=
LE}
+  needs:
+    - alpine-3.18-gcc-debug
+
 qemu-smoke-riscv64-gcc:
   extends: .qemu-riscv64
   script:
diff --git a/automation/scripts/include/xtf-runner b/automation/scripts/inc=
lude/xtf-runner
index 320eb65dc8..b7fea52dad 100644
--- a/automation/scripts/include/xtf-runner
+++ b/automation/scripts/include/xtf-runner
@@ -68,6 +68,9 @@ function xtf_build_cmdline()
     local xtf_variant=3D$1
     local xtf_name=3D$2
     declare -a cmdline=3D()
+    declare -A per_test_args=3D(
+        [argo]=3D"argo=3D1 mac-permissive=3D1"
+    )
=20
     cmdline+=3D("${XEN_CMDLINE}")
=20
@@ -76,6 +79,10 @@ function xtf_build_cmdline()
         cmdline+=3D("dom0-iommu=3Dnone dom0=3Dpvh")
     fi
=20
+    if [[ -v per_test_args[${xtf_name}] ]]; then
+        cmdline+=3D("${per_test_args[${xtf_name}]}")
+    fi
+
     export XEN_CMDLINE=3D"${cmdline[@]}"
 }
=20
--=20
2.34.1




From xen-devel-bounces@lists.xenproject.org Tue Apr 22 16:29:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 16:29:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.963318.1354319 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7GUb-0000bC-DW; Tue, 22 Apr 2025 16:29:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 963318.1354319; Tue, 22 Apr 2025 16:29:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7GUb-0000b5-At; Tue, 22 Apr 2025 16:29:05 +0000
Received: by outflank-mailman (input) for mailman id 963318;
 Tue, 22 Apr 2025 16:29: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=8D33=XI=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u7GUZ-0000az-VU
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 16:29:04 +0000
Received: from mail-24416.protonmail.ch (mail-24416.protonmail.ch
 [109.224.244.16]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e61e9774-1f96-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 18:29:01 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e61e9774-1f96-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=3vri65bgmjeddjyw7ovyzq4viq.protonmail; t=1745339339; x=1745598539;
	bh=HKXlaVKEJ7zdbfr3/E/gUoac2E0bE0p0R8PW2zcWveE=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=FZGh00wz2V9sQmfSiEwD7UxXBliVH6JkJgqgmdIbMdBPSXetPH28bnt66eKI72TP4
	 Oo2X0/TiMMXDjh1VBvwzw7yTFkwRJQ6842Vzxi9It02NDzJMuUaG5Zu8Z2LXYfR0pK
	 g1/5c74Mhl4OinmBvnbrYoUDRd+EMMHHROOIR+Q6BXUkbLSlNLkdJRijE85DNXhv/Z
	 HlNm6p23OzJ83kx9pXvVI6Zy+0Rp4Um0FFM4eu3XFwyuVptrmZagIwrYRdYNhZglVV
	 ovhasfqYKlsyTxfLuiCPVfORj/g3XiZjvUSDzc0lRk8qdGBJcUGmjmJUVAQFcX1DXE
	 1AvKXj6QbCS0Q==
Date: Tue, 22 Apr 2025 16:28:55 +0000
To: Stefano Stabellini <sstabellini@kernel.org>
From: dmkhn@proton.me
Cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com, cardoe@cardoe.com, marmarek@invisiblethingslab.com, dmukhin@ford.com
Subject: Re: [PATCH v2 1/4] CI: unify x86 XTF test runner
Message-ID: <aAfDw9jU8KE0G+6S@starscream>
In-Reply-To: <alpine.DEB.2.22.394.2504211337580.785180@ubuntu-linux-20-04-desktop>
References: <20250419010319.2572518-1-dmukhin@ford.com> <20250419010319.2572518-2-dmukhin@ford.com> <alpine.DEB.2.22.394.2504211337580.785180@ubuntu-linux-20-04-desktop>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 9bd378bd1f2ec95288c536a63c045634ddcfa914
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Mon, Apr 21, 2025 at 01:39:21PM -0700, Stefano Stabellini wrote:
> On Sat, 19 Apr 2025, dmkhn@proton.me wrote:
> > From: Denis Mukhin <dmukhin@ford.com>
> >
> > Add test runner script qemu-xtf.sh which is allows any XTF x86 test to =
be
> > easily executed. Test runner is invoked from the qemu-smoke* jobs with =
the
> > hardcoded parameters.
> >
> > Each x86 XTF job lead time is reduced a bit since only the test-related=
 code
> > is built, not the entire XTF project.
> >
> > Add .gitignore to avoid committing test artifacts by mistake.
> >
> > Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> > ---
> > Changes since v2:
> > - removed TOP
> > - dropped XEN_CONSOLE in favor of XEN_CMDLINE
> > - fixup for XTF_SRC_CONFIG
>=20
> Much better!
>=20
>=20
> > ---
> >  automation/gitlab-ci/test.yaml                |   8 +-
> >  automation/scripts/.gitignore                 |   6 +
> >  .../scripts/include/configs/xtf-x86-64-config |   0
> >  automation/scripts/include/xtf-runner         | 131 ++++++++++++++++++
> >  automation/scripts/include/xtf-x86-64         |  31 +++++
> >  automation/scripts/qemu-smoke-x86-64.sh       |  26 ----
> >  automation/scripts/qemu-xtf.sh                |  28 ++++
> >  7 files changed, 200 insertions(+), 30 deletions(-)
> >  create mode 100644 automation/scripts/.gitignore
> >  create mode 100644 automation/scripts/include/configs/xtf-x86-64-confi=
g
> >  create mode 100644 automation/scripts/include/xtf-runner
> >  create mode 100644 automation/scripts/include/xtf-x86-64
> >  delete mode 100755 automation/scripts/qemu-smoke-x86-64.sh
> >  create mode 100755 automation/scripts/qemu-xtf.sh
> >
> > diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test=
.yaml
> > index 5ce445b78f..3adc841335 100644
> > --- a/automation/gitlab-ci/test.yaml
> > +++ b/automation/gitlab-ci/test.yaml
> > @@ -659,28 +659,28 @@ qemu-alpine-x86_64-gcc:
> >  qemu-smoke-x86-64-gcc:
> >    extends: .qemu-smoke-x86-64
> >    script:
> > -    - ./automation/scripts/qemu-smoke-x86-64.sh pv 2>&1 | tee ${LOGFIL=
E}
> > +    - ./automation/scripts/qemu-xtf.sh x86-64 pv64 example 2>&1 | tee =
${LOGFILE}
> >    needs:
> >      - 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 ${LOGFIL=
E}
> > +    - ./automation/scripts/qemu-xtf.sh x86-64 pv64 example 2>&1 | tee =
${LOGFILE}
> >    needs:
> >      - 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 ${LOGFI=
LE}
> > +    - ./automation/scripts/qemu-xtf.sh x86-64 hvm64 example 2>&1 | tee=
 ${LOGFILE}
> >    needs:
> >      - 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 ${LOGFI=
LE}
> > +    - ./automation/scripts/qemu-xtf.sh x86-64 hvm64 example 2>&1 | tee=
 ${LOGFILE}
> >    needs:
> >      - debian-12-x86_64-clang-debug
> >
> > diff --git a/automation/scripts/.gitignore b/automation/scripts/.gitign=
ore
> > new file mode 100644
> > index 0000000000..2f2d6e1ebd
> > --- /dev/null
> > +++ b/automation/scripts/.gitignore
> > @@ -0,0 +1,6 @@
> > +!include
>=20
> Why !include ?

Forgot to clean this up, thanks.
In my local environment, I test like the following:

  cd automation/scripts
  WORKDIR=3D... ./qemu-xtf.sh x86-64 pv64 example

The XTF runner script will clone XTF repo at automation/scripts/xtf-$ARCH
which will clash with include/xtf-$ARCH fragments.

Fixed in v3.

>=20
>=20
> > +binaries
> > +smoke.serial
> > +xen
> > +xtf*/
> > diff --git a/automation/scripts/include/configs/xtf-x86-64-config b/aut=
omation/scripts/include/configs/xtf-x86-64-config
> > new file mode 100644
> > index 0000000000..e69de29bb2
> > diff --git a/automation/scripts/include/xtf-runner b/automation/scripts=
/include/xtf-runner
> > new file mode 100644
> > index 0000000000..320eb65dc8
> > --- /dev/null
> > +++ b/automation/scripts/include/xtf-runner
> > @@ -0,0 +1,131 @@
> > +#!/bin/bash
> > +#
> > +# XTF test utilities.
> > +#
> > +# Environment variables:
> > +#   BOOT_MSG: Expected boot message
> > +#   FW_PREFIX: Firmware images path including '/' at the end
> > +#   PASSED: XTF test printout in case of a pass
> > +#   QEMU_PREFIX: QEMU path including '/' at the end
> > +#   TEST_LOG: Output log file
> > +#   UBOOT_CMD: U-Boot command line
> > +#   WORKDIR: Test working directory
> > +#   XEN_BINARY: Xen binary location
> > +#   XEN_CONSOLE: Xen console device name
> > +#   XTF_SRC_CONFIG: XTF config file
> > +#   XTF_SRC_BRANCH: XTF branch
> > +#   XTF_SRC_URI: XTF source code URI
> > +
> > +# Output log file
> > +TEST_LOG=3D"${TEST_LOG:-${XEN_ROOT}/smoke.serial}"
> > +# XTF test printout in case of a pass
> > +PASSED=3D"${PASSED:-Test result: SUCCESS}"
> > +# Expected boot message
> > +BOOT_MSG=3D"${BOOT_MSG:-Latest ChangeSet: }"
> > +# Test working directory
> > +WORKDIR=3D"${WORKDIR:-${XEN_ROOT}/binaries}"
> > +# XTF source code
> > +XTF_SRC_CONFIG=3D"${XTF_SRC_CONFIG:-include/configs/xtf-${ARCH}-config=
}"
> > +
> > +function die()
> > +{
> > +    set +x
> > +    echo "FATAL: $*" >&2
> > +    exit 1
> > +}
> > +
> > +# Build an XTF test binary.
> > +# $1 Test variant.
> > +# $2 Test name.
> > +function xtf_build_binary()
> > +{
> > +    local xtf_variant=3D$1
> > +    local xtf_name=3D$2
> > +    local xtf_dir=3D"xtf-${ARCH}"
> > +
> > +    # Crude check for local testing
> > +    if [ ! -d ${xtf_dir} ]; then
> > +        git clone ${XTF_SRC_URI} ${xtf_dir} -b ${XTF_SRC_BRANCH}
> > +    fi
> > +
> > +    make \
> > +        -C ${xtf_dir} \
> > +        -j$(nproc) \
> > +        $(tr '\n' ' ' < ${XTF_SRC_CONFIG}) \
> > +        TESTS=3Dtests/${xtf_name}
> > +
> > +    export XTF_NAME=3D"${xtf_name}"
> > +    export XTF_VARIANT=3D"${xtf_variant}"
> > +    export XTF_WORKDIR=3D"$(readlink -f ${xtf_dir})"
> > +    export XTF_BINARY=3D"${XTF_WORKDIR}/tests/${xtf_name}/test-${xtf_v=
ariant}-${xtf_name}"
> > +}
> > +
> > +# Build Xen command line for running an XTF test.
> > +# $1 Test variant.
> > +# $2 Test name.
> > +function xtf_build_cmdline()
> > +{
> > +    local xtf_variant=3D$1
> > +    local xtf_name=3D$2
> > +    declare -a cmdline=3D()
> > +
> > +    cmdline+=3D("${XEN_CMDLINE}")
> > +
> > +    # NB: OK to have hvm64, which is x86-only variant
> > +    if [[ $xtf_variant =3D=3D "hvm64" ]]; then
> > +        cmdline+=3D("dom0-iommu=3Dnone dom0=3Dpvh")
> > +    fi
> > +
> > +    export XEN_CMDLINE=3D"${cmdline[@]}"
> > +}
> > +
> > +# Build an XTF test environment.
> > +# $1 Test variant.
> > +# $2 Test name.
> > +function xtf_build_test()
> > +{
> > +    local v=3D$1
> > +    local xtf_name=3D$2
> > +    local xtf_variant=3D""
> > +
> > +    for x in ${XTF_SRC_VARIANTS}; do
> > +        if [[ "${x}" =3D=3D "${v}" ]]; then
> > +            xtf_variant=3D${v}
> > +            break
> > +        fi
> > +    done
> > +    if [[ -z $xtf_variant ]]; then
> > +        die "unsupported test variant '$1', supported variants: ${XTF_=
SRC_VARIANTS}"
> > +    fi
> > +
> > +    xtf_build_binary ${xtf_variant} ${xtf_name}
> > +    xtf_build_cmdline ${xtf_variant} ${xtf_name}
> > +}
> > +
> > +# Execute an XTF test.
> > +function xtf_run_test()
> > +{
> > +    rm -f ${TEST_LOG}
> > +    export BOOT_MSG PASSED TEST_CMD TEST_LOG UBOOT_CMD
> > +    ./console.exp | sed 's/\r\+$//'
> > +}
> > +
> > +# Setup environment and run an XTF test.
> > +# $1 Test variant.
> > +# $2 Test name.
> > +function xtf_test()
> > +{
> > +    # Out: FW_*, QEMU_*, XEN_{BINARY,CONSOLE}, XTF_SRC_*
> > +    xtf_arch_prepare
> > +
> > +    # In: XTF_SRC_*
> > +    # OUt: XTF_{BINARY,NAME,VARIANT,WORKDIR} and XEN_CMDLINE
> > +    xtf_build_test $@
> > +
> > +    # In: FW_*, QEMU_*, XTF_*, XEN_*
> > +    # Out: BOOT_MSG, PASSED, TEST_{CMD,LOG}, UBOOT_CMD
> > +    xtf_arch_setup
> > +
> > +    # In: BOOT_MSG, PASSED, TEST_{CMD,LOG}, UBOOT_CMD
> > +    xtf_run_test
> > +}
> > diff --git a/automation/scripts/include/xtf-x86-64 b/automation/scripts=
/include/xtf-x86-64
> > new file mode 100644
> > index 0000000000..b1b0cc201e
> > --- /dev/null
> > +++ b/automation/scripts/include/xtf-x86-64
> > @@ -0,0 +1,31 @@
> > +#!/bin/bash
> > +#
> > +# XTF test utilities (x86_64).
> > +#
> > +
> > +# Arch-specific environment overrides.
> > +function xtf_arch_prepare()
> > +{
> > +    export FW_PREFIX=3D"${FW_PREFIX:-}"
> > +    export QEMU_PREFIX=3D"${QEMU_PREFIX:-}"
> > +    export XEN_BINARY=3D"${XEN_BINARY:-${WORKDIR}/xen}"
> > +    export XEN_CMDLINE=3D"${XEN_CMDLINE:-loglvl=3Dall noreboot console=
_timestamps=3Dboot console=3Dcom1}"
> > +    export XTF_SRC_BRANCH=3D"${XTF_SRC_BRANCH:-master}"
> > +    export XTF_SRC_URI=3D"${XTF_SRC_URI:-https://xenbits.xen.org/git-h=
ttp/xtf.git}"
> > +    export XTF_SRC_VARIANTS=3D"hvm64 pv64"
> > +}
> > +
> > +# Perform arch-specific XTF environment setup.
> > +function xtf_arch_setup()
> > +{
> > +    export TEST_CMD=3D"${QEMU_PREFIX}qemu-system-x86_64 \
> > +        -no-reboot \
> > +        -nographic \
> > +        -monitor none \
> > +        -serial stdio \
> > +        -m 512 \
> > +        -kernel ${XEN_BINARY} \
> > +        -initrd ${XTF_BINARY} \
> > +        -append \"${XEN_CMDLINE}\" \
> > +    "
> > +}
> > diff --git a/automation/scripts/qemu-smoke-x86-64.sh b/automation/scrip=
ts/qemu-smoke-x86-64.sh
> > deleted file mode 100755
> > index da0c26cc2f..0000000000
> > --- a/automation/scripts/qemu-smoke-x86-64.sh
> > +++ /dev/null
> > @@ -1,26 +0,0 @@
> > -#!/bin/bash
> > -
> > -set -ex -o pipefail
> > -
> > -# variant should be either pv or pvh
> > -variant=3D$1
> > -
> > -# Clone and build XTF
> > -git clone https://xenbits.xen.org/git-http/xtf.git
> > -cd xtf && make -j$(nproc) && cd -
> > -
> > -case $variant in
> > -    pvh) k=3Dtest-hvm64-example    extra=3D"dom0-iommu=3Dnone dom0=3Dp=
vh" ;;
> > -    *)   k=3Dtest-pv64-example     extra=3D ;;
> > -esac
> > -
> > -rm -f smoke.serial
> > -export TEST_CMD=3D"qemu-system-x86_64 -nographic -kernel binaries/xen =
\
> > -        -initrd xtf/tests/example/$k \
> > -        -append \"loglvl=3Dall console=3Dcom1 noreboot console_timesta=
mps=3Dboot $extra\" \
> > -        -m 512 -monitor none -serial stdio"
> > -
> > -export TEST_LOG=3D"smoke.serial"
> > -export PASSED=3D"Test result: SUCCESS"
> > -
> > -./automation/scripts/console.exp | sed 's/\r\+$//'
> > diff --git a/automation/scripts/qemu-xtf.sh b/automation/scripts/qemu-x=
tf.sh
> > new file mode 100755
> > index 0000000000..55c221b36d
> > --- /dev/null
> > +++ b/automation/scripts/qemu-xtf.sh
> > @@ -0,0 +1,28 @@
> > +#!/bin/bash
> > +#
> > +# XTF test runner (QEMU).
> > +#
> > +
> > +set -e -o pipefail
> > +
> > +if [ $# -lt 3 ]; then
> > +    echo "Usage: $(basename $0) ARCH XTF-VARIANT XTF-NAME"
> > +    exit 0
> > +fi
> > +
> > +export ARCH=3D"$1"
> > +shift
> > +
> > +set -x
> > +
> > +export XEN_ROOT=3D"${PWD}"
> > +cd $(dirname $0)
> > +
> > +source include/xtf-runner
> > +
> > +if [ ! -f "include/xtf-${ARCH}" ]; then
> > +    die "unsupported architecture '${ARCH}'"
> > +fi
> > +source include/xtf-${ARCH}
> > +
> > +xtf_test $@
> > --
> > 2.34.1
> >
> >



From xen-devel-bounces@lists.xenproject.org Tue Apr 22 16:29:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 16:29:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.963328.1354328 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7GVL-0001AY-LT; Tue, 22 Apr 2025 16:29:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 963328.1354328; Tue, 22 Apr 2025 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 1u7GVL-0001AR-Ix; Tue, 22 Apr 2025 16:29:51 +0000
Received: by outflank-mailman (input) for mailman id 963328;
 Tue, 22 Apr 2025 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=8D33=XI=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u7GVK-0000qu-5H
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 16:29:50 +0000
Received: from mail-4316.protonmail.ch (mail-4316.protonmail.ch [185.70.43.16])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 028ef47b-1f97-11f0-9eb0-5ba50f476ded;
 Tue, 22 Apr 2025 18:29:49 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 028ef47b-1f97-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1745339388; x=1745598588;
	bh=8MxSXmL1a16x1YVjgT64BgEUVKM+WEFMs/mIAXtdUZo=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=MdKr/Y7OetxcolQnwsbZcXZ67L3O8bpkaLKC0UpWOg5LrlC8k9NDtdynQF9LGCGwS
	 K/sDAJlvhWrkb233dH3Mo6X0gNhs6NUDLsgWm7HqKFxfZQttvQB5931h3vyq8e6cj4
	 FbpVwcPtDxr0pR1PbKnhm6W9HUnkuFzTcN+UTW1Gica9gkILLJ6+QD1nEh4PoK9U4U
	 TVTVNr2R29w9aE70KuOQcRSwEq7SdrGspGTn3NWORQmUBbR9VYDwJLidjdODXlRF4y
	 a2yL0fYLufaVDA45Yuqk78yqfK4WOFfQBIr07TqbJv0JxDFei5dqQ74GhrYKgSdljA
	 4tg0DQZDpkGWA==
Date: Tue, 22 Apr 2025 16:29:42 +0000
To: Stefano Stabellini <sstabellini@kernel.org>
From: dmkhn@proton.me
Cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com, cardoe@cardoe.com, marmarek@invisiblethingslab.com, dmukhin@ford.com
Subject: Re: [PATCH v2 2/4] CI: switch x86 EFI smoke test runner to qemu-xtf.sh
Message-ID: <aAfD8qmJtsFiRX8D@starscream>
In-Reply-To: <alpine.DEB.2.22.394.2504211338190.785180@ubuntu-linux-20-04-desktop>
References: <20250419010319.2572518-1-dmukhin@ford.com> <20250419010319.2572518-3-dmukhin@ford.com> <alpine.DEB.2.22.394.2504211338190.785180@ubuntu-linux-20-04-desktop>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 303af7d351e22cb09d470353af2c7a03b018df91
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Mon, Apr 21, 2025 at 01:39:32PM -0700, Stefano Stabellini wrote:
> On Sat, 19 Apr 2025, dmkhn@proton.me wrote:
> > From: Denis Mukhin <dmukhin@ford.com>
> >
> > Use qemu-xtf.sh for qemu-smoke-x86-64-gcc-efi job.
> >
> > Lead time is reduced a bit since not all XTF code base is built, just t=
he
> > required test.
> >
> > Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> > ---
> > Changes since v2:
> > - removed TOP
> > - dropped XEN_CONSOLE in favor of XEN_CMDLINE
> > ---
> >  automation/gitlab-ci/test.yaml                |  2 +-
> >  .../include/configs/xtf-x86-64-efi-config     |  0
> >  automation/scripts/include/xtf-x86-64-efi     | 52 +++++++++++++++++++
> >  automation/scripts/qemu-smoke-x86-64-efi.sh   | 43 ---------------
> >  4 files changed, 53 insertions(+), 44 deletions(-)
> >  create mode 100644 automation/scripts/include/configs/xtf-x86-64-efi-c=
onfig
> >  create mode 100644 automation/scripts/include/xtf-x86-64-efi
> >  delete mode 100755 automation/scripts/qemu-smoke-x86-64-efi.sh
> >
> > diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test=
.yaml
> > index 3adc841335..ca1e4eb528 100644
> > --- a/automation/gitlab-ci/test.yaml
> > +++ b/automation/gitlab-ci/test.yaml
> > @@ -687,7 +687,7 @@ qemu-smoke-x86-64-clang-pvh:
> >  qemu-smoke-x86-64-gcc-efi:
> >    extends: .qemu-smoke-x86-64
> >    script:
> > -    - ./automation/scripts/qemu-smoke-x86-64-efi.sh pv 2>&1 | tee ${LO=
GFILE}
> > +    - ./automation/scripts/qemu-xtf.sh x86-64-efi hvm64 example 2>&1 |=
 tee ${LOGFILE}
>=20
> Isn't it supposed to be pv64 as variant of the test to match what we had
> before?

Yes, that should be pv64; thanks!

>=20
>=20
> >    needs:
> >      - debian-12-x86_64-gcc-debug
> >
> > diff --git a/automation/scripts/include/configs/xtf-x86-64-efi-config b=
/automation/scripts/include/configs/xtf-x86-64-efi-config
> > new file mode 100644
> > index 0000000000..e69de29bb2
> > diff --git a/automation/scripts/include/xtf-x86-64-efi b/automation/scr=
ipts/include/xtf-x86-64-efi
> > new file mode 100644
> > index 0000000000..e0d821b3f6
> > --- /dev/null
> > +++ b/automation/scripts/include/xtf-x86-64-efi
> > @@ -0,0 +1,52 @@
> > +#!/bin/bash
> > +#
> > +# XTF test utilities (x86_64, EFI).
> > +#
> > +
> > +# Arch-specific environment overrides.
> > +function xtf_arch_prepare()
> > +{
> > +    export FW_PREFIX=3D"${FW_PREFIX:-/usr/share/OVMF/}"
> > +    export QEMU_PREFIX=3D"${QEMU_PREFIX:-}"
> > +    export XEN_BINARY=3D"${XEN_BINARY:-${WORKDIR}/xen.efi}"
> > +    export XEN_CMDLINE=3D"${XEN_CMDLINE:-loglvl=3Dall noreboot console=
_timestamps=3Dboot console=3Dcom1}"
> > +    export XTF_SRC_BRANCH=3D"${XTF_SRC_BRANCH:-master}"
> > +    export XTF_SRC_URI=3D"${XTF_SRC_URI:-https://xenbits.xen.org/git-h=
ttp/xtf.git}"
> > +    export XTF_SRC_VARIANTS=3D"hvm64 pv64"
> > +}
> > +
> > +# Perform arch-specific XTF environment setup.
> > +function xtf_arch_setup()
> > +{
> > +    local esp_dir=3D"${WORKDIR}/boot-esp"
> > +    local efi_dir=3D"${esp_dir}/EFI/BOOT"
> > +
> > +    # Generate EFI boot environment
> > +    mkdir -p ${efi_dir}
> > +    cp ${XEN_BINARY} ${efi_dir}/BOOTX64.EFI
> > +    cp ${XTF_BINARY} ${efi_dir}/kernel
> > +
> > +    cat > ${efi_dir}/BOOTX64.cfg <<EOF
> > +[global]
> > +default=3Dtest
> > +
> > +[test]
> > +options=3D${XEN_CMDLINE}
> > +kernel=3Dkernel
> > +EOF
> > +
> > +    # NB: OVMF_CODE.fd is read-only, no need to copy
> > +    cp ${FW_PREFIX}OVMF_VARS.fd ${WORKDIR}
> > +
> > +    export TEST_CMD=3D"${QEMU_PREFIX}qemu-system-x86_64 \
> > +        -no-reboot \
> > +        -nographic \
> > +        -monitor none \
> > +        -serial stdio \
> > +        -m 512 \
> > +        -M q35,kernel-irqchip=3Dsplit \
> > +        -drive if=3Dpflash,format=3Draw,readonly=3Don,file=3D${FW_PREF=
IX}OVMF_CODE.fd \
> > +        -drive if=3Dpflash,format=3Draw,file=3D${WORKDIR}/OVMF_VARS.fd=
 \
> > +        -drive file=3Dfat:rw:${esp_dir},media=3Ddisk,index=3D0,format=
=3Draw \
> > +    "
> > +}
> > diff --git a/automation/scripts/qemu-smoke-x86-64-efi.sh b/automation/s=
cripts/qemu-smoke-x86-64-efi.sh
> > deleted file mode 100755
> > index 7572722be6..0000000000
> > --- a/automation/scripts/qemu-smoke-x86-64-efi.sh
> > +++ /dev/null
> > @@ -1,43 +0,0 @@
> > -#!/bin/bash
> > -
> > -set -ex -o pipefail
> > -
> > -# variant should be either pv or pvh
> > -variant=3D$1
> > -
> > -# Clone and build XTF
> > -git clone https://xenbits.xen.org/git-http/xtf.git
> > -cd xtf && make -j$(nproc) && cd -
> > -
> > -case $variant in
> > -    pvh) k=3Dtest-hvm64-example    extra=3D"dom0-iommu=3Dnone dom0=3Dp=
vh" ;;
> > -    *)   k=3Dtest-pv64-example     extra=3D ;;
> > -esac
> > -
> > -mkdir -p boot-esp/EFI/BOOT
> > -cp binaries/xen.efi boot-esp/EFI/BOOT/BOOTX64.EFI
> > -cp xtf/tests/example/$k boot-esp/EFI/BOOT/kernel
> > -
> > -cat > boot-esp/EFI/BOOT/BOOTX64.cfg <<EOF
> > -[global]
> > -default=3Dtest
> > -
> > -[test]
> > -options=3Dloglvl=3Dall console=3Dcom1 noreboot console_timestamps=3Dbo=
ot $extra
> > -kernel=3Dkernel
> > -EOF
> > -
> > -cp /usr/share/OVMF/OVMF_CODE.fd OVMF_CODE.fd
> > -cp /usr/share/OVMF/OVMF_VARS.fd OVMF_VARS.fd
> > -
> > -rm -f smoke.serial
> > -export TEST_CMD=3D"qemu-system-x86_64 -nographic -M q35,kernel-irqchip=
=3Dsplit \
> > -        -drive if=3Dpflash,format=3Draw,readonly=3Don,file=3DOVMF_CODE=
.fd \
> > -        -drive if=3Dpflash,format=3Draw,file=3DOVMF_VARS.fd \
> > -        -drive file=3Dfat:rw:boot-esp,media=3Ddisk,index=3D0,format=3D=
raw \
> > -        -m 512 -monitor none -serial stdio"
> > -
> > -export TEST_LOG=3D"smoke.serial"
> > -export PASSED=3D"Test result: SUCCESS"
> > -
> > -./automation/scripts/console.exp | sed 's/\r\+$//'
> > --
> > 2.34.1
> >
> >



From xen-devel-bounces@lists.xenproject.org Tue Apr 22 17:14:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 17:14:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.963353.1354371 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7HCi-00089b-BH; Tue, 22 Apr 2025 17:14:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 963353.1354371; Tue, 22 Apr 2025 17: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 1u7HCi-00089U-8f; Tue, 22 Apr 2025 17:14:40 +0000
Received: by outflank-mailman (input) for mailman id 963353;
 Tue, 22 Apr 2025 17: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=9r0M=XI=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u7HCg-000880-OW
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 17:14:38 +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 41df46ad-1f9d-11f0-9eb0-5ba50f476ded;
 Tue, 22 Apr 2025 19:14:32 +0200 (CEST)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-440685d6afcso51508865e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 10:14:32 -0700 (PDT)
Received: from [192.168.86.29] ([83.104.178.215])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4406d5aced6sm31818805e9.16.2025.04.22.10.14.31
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 22 Apr 2025 10:14:31 -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: 41df46ad-1f9d-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745342072; x=1745946872; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=gGthYO2s59y3+AtQUrxBgwnBHEE+YlwhZq/V8D0EEB0=;
        b=RyGB0FQPO4wX+xZDbFaIj4T8qriS2Em9Br/xtDIsK+iUjVNGzUu9VcEux6Q8QwFvzW
         sy70R8ydJCkotFczppBN8l6C/wv5o3mgFYYFdEjaxAN2sYL9UgKznP8tH3MKouAav05q
         UP3N/q6ASMvz75kTa9tc/jN4V/iYRyG8WmIWg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745342072; x=1745946872;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=gGthYO2s59y3+AtQUrxBgwnBHEE+YlwhZq/V8D0EEB0=;
        b=w+tsu9R2uIDad/3+/5U8tk+6NABmiI2XcH1DmB/5TkvEYgpXV8Ay6MojgxoSuqES1B
         h5FQjyXBjA0quRA9wbjZMN3m7ZQERlUdE9/2Qt+5/Nyv9g+pQLGMAa2eEp8I9sXcxFzM
         MXi2T56whFQQM9+lg+oQZS1gWGVwveIgTK6JPfVPPdCOj/7Ju7rjI9NQTQmxrlpix+4U
         HfvqL5xi7ZC8VzGd77CU+/TbmSZxhkm8L2GNrJMMTuYCcB7+tyhmO8RNYNf01jcbQhzG
         6dRNAl/BmN5e28aCqoEToQIVKGe7RV4bVf87UQc7YpFl2oYz7u20xIjnMVwRi2AHCSfd
         nWXQ==
X-Forwarded-Encrypted: i=1; AJvYcCWSo/tWfAuhIzQY5rVFUhtUOLKA3p30NcFFrEEb9TsKMpX60i8HEK+7VQ/XFxa8MjjC/DQJCyc8IDo=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzl0xpxNwX4u7NXD55Cmm3hJGs2WoO0wBxzm2KaZ7rr/EFPiLUU
	04m4Ak540KxCZKDK3eycRz9kBe17oiY5W9H8HmSMn4xu6n0CKbVj1dj0t18nF2I=
X-Gm-Gg: ASbGncvzt9ebxyFg6cVt7ZvpN6v+B2k7oa1gquxgLdAREq8J5v/fh7gWPjewYezJoNt
	sy/rD7of7Y5yzKlxVBT52bGm6lA0Vwb/PMTymaAbhfdpDathRLZaZCP3WQeI7jb4iXtAiyElJbB
	tNeGqsw1ZIG8TN/vTiYrz4RNSI2w28+ZNcdUKLKzILaAkAbUyrTpzabhnx7eHwHrCHCES7pSr+j
	DiTnGzM6xt0VHyHZe7ivUXuWJfQ4Le74Vl12q7FlEwgN05BPfJWRXr2QQHAQpOQgk2GZlMct3pU
	0GEL9VIezVDwE8cyMbwLZhUZ6bmOU8cGT6M0akGTiwbdMTN/g0r+ag==
X-Google-Smtp-Source: AGHT+IEuLPqjMZ43+RYFFC1f5W+4Pgvd5Q4aVBATCksa1deGx6/BzaIaMFoA6ZZE8Z1virNbG6ZQaA==
X-Received: by 2002:a05:600c:350a:b0:43c:e7ae:4bc9 with SMTP id 5b1f17b1804b1-4406ab7a56dmr114884225e9.1.1745342071986;
        Tue, 22 Apr 2025 10:14:31 -0700 (PDT)
Message-ID: <744934f4-f56f-4dc7-bccb-c32f2829d1da@citrix.com>
Date: Tue, 22 Apr 2025 18:14:30 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 00/21] x86: Trenchboot Secure Launch DRTM (Xen)
To: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>, xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Lukasz Hawrylko <lukasz@hawrylko.pl>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Mateusz_M=C3=B3wka?= <mateusz.mowka@intel.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, trenchboot-devel@googlegroups.com
References: <cover.1745172094.git.sergii.dmytruk@3mdeb.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: <cover.1745172094.git.sergii.dmytruk@3mdeb.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 22/04/2025 4:06 pm, Sergii Dmytruk wrote:
> The aim of the [TrenchBoot] project is to provide an implementation of
> DRTM that is generic enough to cover various use cases:
>  - Intel TXT and AMD SKINIT on x86 CPUs
>  - legacy and UEFI boot
>  - TPM1.2 and TPM2.0
>  - (in the future) DRTM on Arm CPUs
>
> DRTM is a version of a measured launch that starts on request rather
> than at the start of a boot cycle.  One of its advantages is in not
> including the firmware in the chain of trust.
>
> Xen already supports DRTM via [tboot] which targets Intel TXT only.
> tboot employs encapsulates some of the DRTM details within itself while
> with TrenchBoot Xen (or Linux) is meant to be a self-contained payload
> for a TrenchBoot-enabled bootloader (think GRUB).  The one exception is
> that UEFI case requires calling back into bootloader to initiate DRTM,
> which is necessary to give Xen a chance of querying all the information
> it needs from the firmware before performing DRTM start.
>
> From reading the above tboot might seem like a more abstracted, but the
> reality is that the payload needs to have DRTM-specific knowledge either
> way.  TrenchBoot in principle allows coming up with independent
> implementations of bootloaders and payloads that are compatible with
> each other.
>
> The "x86/boot: choose AP stack based on APIC ID" patch is shared with
> [Parallelize AP bring-up] series which is required here because Intel
> TXT always releases all APs simultaneously.  The rest of the patches are
> unique.

I've stripped out the sha2 patch and fixed up to use the existing sha2,
then kicked off some CI testing:

https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/1780285393
https://cirrus-ci.com/build/5452335868018688

When the dust has settled, I'll talk you through the failures.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Apr 22 17:31:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 17:31:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.963365.1354381 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7HSZ-0004fM-LG; Tue, 22 Apr 2025 17:31:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 963365.1354381; Tue, 22 Apr 2025 17: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 1u7HSZ-0004fF-Hp; Tue, 22 Apr 2025 17:31:03 +0000
Received: by outflank-mailman (input) for mailman id 963365;
 Tue, 22 Apr 2025 17: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=9r0M=XI=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u7HSY-0004f3-7v
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 17:31:02 +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 8f355079-1f9f-11f0-9eb0-5ba50f476ded;
 Tue, 22 Apr 2025 19:31:01 +0200 (CEST)
Received: by mail-wr1-x436.google.com with SMTP id
 ffacd0b85a97d-39d83782ef6so97867f8f.0
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 10:31:01 -0700 (PDT)
Received: from localhost.localdomain ([83.104.178.215])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39efa4332c1sm15688551f8f.27.2025.04.22.10.30.59
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 22 Apr 2025 10:31: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: 8f355079-1f9f-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745343060; x=1745947860; 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=fDuByuyOOFhbgD50zGPWZG63weSszpXERV96xJ8Qdd4=;
        b=Fb+DfQWas+IrSnzBms+nY332sgc0ZgEgvVeLLoY9Yim3MlaQiZYu1rZOGk/VASajAz
         ewglseSU+C2W5IZXgpHqu/TFrrJUH6ppTAipXQk296gugAv22u4NokrSGzW8Bp/Vsul1
         Om/0FD4ZFY4u2ns1Bx/EkO+6RnUqEP4V4y7NY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745343060; x=1745947860;
        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=fDuByuyOOFhbgD50zGPWZG63weSszpXERV96xJ8Qdd4=;
        b=RNBxD2pWOhST8Wc7QqBzzJ9WVo7nL1vDZRDQZ9SZ/ge7x4RxVEA37/GtOI1o+2Fejb
         eUYmUpYOjPNAR57TRvf6aDvIe+B2PWNU3XLj5WFj/zOISTQIjJz91rO88v34qojPi+xT
         Y5pTp+9M6nRmQa0bnYWnjxz8jQaSswekfELQJLnZXP4iruKMMfxSkGJP2aqn7ktGlRjs
         /umj/MQ/jvsHa7f5z5kMmCnOgvsyr261DuI2WJkTffvqkbWehgB0bfYhAFXsc0XLBGqy
         d8oFdPiq8XIKHfY/mpU30oIyOf6PWfiex4qBN3kAPwBuUpCRkESgOeduZiUGJi8ksgPI
         3oiQ==
X-Gm-Message-State: AOJu0YyBEm2YRaloY7Ui/Q7AsaQJ+xTqnE0OrtrOl9pY41e7jpB5V0kz
	cPQbvMNOSdVIuqMzuiZe60jzCO0+Nc7Gwwh9ZMqw6sLAaMPuccoHhv9oyc82TLAgQ7tOPCj7iOx
	MLm0=
X-Gm-Gg: ASbGncty+dMFWqS9/cnnCTy9Ck0toWhdSH4H+LPg3UJUR8N5bohZ/uF3GEWeIOBR/3i
	MT0LBtcYH5BKqeRQy30YfDObtIDQfg4RS8RrqvkWXO0oEe4p2OAs78+xusLkRwiLS7eKyZofFHv
	fWHorszwLR4ieZgqvyyquVVMm/ikD/0nc39BK1UyuxzEAlTNBzRpwp+NXBMGbcQyZ+Qla+g214i
	Fitj0qOPvm2QgixVSizxrTy/F9GThyjdVZ2q6Fr775PZcFp/V6Bo8uVJEJCeoikskgCFueeWcWs
	s1x1XFjxoPJTNL2X3u7E+Wrxzm7nMPh1M2gO3sbN97QEQJv5iGoFA5oIQyfuxkK0Fyfw8yrC
X-Google-Smtp-Source: AGHT+IGxOf7g6Ttp17yfEj+tKPNCz/6Ma7toS5dZNfRorDWsv/xskKu8dffg6uQAZ3h/sJ80BT8Eeg==
X-Received: by 2002:adf:e04f:0:b0:39b:32fc:c025 with SMTP id ffacd0b85a97d-39ef89b5d9amr10316961f8f.2.1745343060664;
        Tue, 22 Apr 2025 10:31:00 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH] arm/alternative: Drop unused includes of asm/alternative.h
Date: Tue, 22 Apr 2025 18:30:58 +0100
Message-Id: <20250422173058.1459730-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Julien Grall <julien@xen.org>
CC: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
CC: Bertrand Marquis <bertrand.marquis@arm.com>
CC: Michal Orzel <michal.orzel@amd.com>
---
 xen/arch/arm/arm64/cache.S | 2 --
 xen/arch/arm/domain.c      | 1 -
 2 files changed, 3 deletions(-)

diff --git a/xen/arch/arm/arm64/cache.S b/xen/arch/arm/arm64/cache.S
index 66ed85f73503..c0a8ca163a47 100644
--- a/xen/arch/arm/arm64/cache.S
+++ b/xen/arch/arm/arm64/cache.S
@@ -19,8 +19,6 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#include <asm/alternative.h>
-
 /*
  * dcache_line_size - get the minimum D-cache line size from the CTR register.
  */
diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
index dc4b4e84c1c3..23cf8729f1d7 100644
--- a/xen/arch/arm/domain.c
+++ b/xen/arch/arm/domain.c
@@ -12,7 +12,6 @@
 #include <xen/softirq.h>
 #include <xen/wait.h>
 
-#include <asm/alternative.h>
 #include <asm/arm64/sve.h>
 #include <asm/cpuerrata.h>
 #include <asm/cpufeature.h>
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Tue Apr 22 17:52:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 17:52:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.963377.1354390 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7Hn6-0002xT-9Q; Tue, 22 Apr 2025 17:52:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 963377.1354390; Tue, 22 Apr 2025 17:52: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 1u7Hn6-0002xM-6l; Tue, 22 Apr 2025 17:52:16 +0000
Received: by outflank-mailman (input) for mailman id 963377;
 Tue, 22 Apr 2025 17:52: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=Qhpm=XI=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u7Hn5-0002vy-Fi
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 17:52:15 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 84209b1e-1fa2-11f0-9eb0-5ba50f476ded;
 Tue, 22 Apr 2025 19:52:12 +0200 (CEST)
Received: from [192.168.7.202] ([71.202.166.45]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53MHpKcw2355011
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NO);
 Tue, 22 Apr 2025 10:51:20 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 84209b1e-1fa2-11f0-9eb0-5ba50f476ded
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53MHpKcw2355011
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745344284;
	bh=rFPFOxh07YQOPNQeOEZTdVhMGdZpRwExW7XWemhAAAc=;
	h=Date:Subject:To:Cc:References:From:In-Reply-To:From;
	b=YjZW6aKhRpgJytE5GhVir2qestF3DCS/CzYBraBrI1+eqedS8JuNCmk8lGP5yrGHU
	 dKpFaNveGqqwaCiXgcxo+9E0aZZzenoVFKtrRsWfD3luxBjXmuGIkZwXQeOpiWbEd4
	 dJnwZOCd0FF6QfjMgL7uT8gBwsvsLHXgdNXX/GJxaYqcDijsFlFCzEXz++8qUiHnA7
	 atYwZogQ/qsUvEE3igWyPAnJs0nTs8Oxx060cbVOf1UhHUQyYdtlToEaACsVFrVteY
	 H2tS1TUyjsJ6IH57pbBTkqnN9K8YArFEHolw9bITu9w/FVlIam8ZCPXGAxqspQwzYX
	 P73L3Fc5KiJKA==
Message-ID: <cb4e24a0-fdb7-46d2-9b0e-200f5e3e4c96@zytor.com>
Date: Tue, 22 Apr 2025 10:51:19 -0700
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH v2 00/34] MSR refactor with new MSR instructions
 support
To: Sean Christopherson <seanjc@google.com>
Cc: linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
        linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
        netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org,
        tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        acme@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com,
        peterz@infradead.org, namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, luto@kernel.org,
        boris.ostrovsky@oracle.com, kys@microsoft.com, haiyangz@microsoft.com,
        decui@microsoft.com
References: <20250422082216.1954310-1-xin@zytor.com>
 <aAevpauKYWwObsB7@google.com>
Content-Language: en-US
From: Xin Li <xin@zytor.com>
Autocrypt: addr=xin@zytor.com; keydata=
 xsDNBGUPz1cBDACS/9yOJGojBFPxFt0OfTWuMl0uSgpwk37uRrFPTTLw4BaxhlFL0bjs6q+0
 2OfG34R+a0ZCuj5c9vggUMoOLdDyA7yPVAJU0OX6lqpg6z/kyQg3t4jvajG6aCgwSDx5Kzg5
 Rj3AXl8k2wb0jdqRB4RvaOPFiHNGgXCs5Pkux/qr0laeFIpzMKMootGa4kfURgPhRzUaM1vy
 bsMsL8vpJtGUmitrSqe5dVNBH00whLtPFM7IbzKURPUOkRRiusFAsw0a1ztCgoFczq6VfAVu
 raTye0L/VXwZd+aGi401V2tLsAHxxckRi9p3mc0jExPc60joK+aZPy6amwSCy5kAJ/AboYtY
 VmKIGKx1yx8POy6m+1lZ8C0q9b8eJ8kWPAR78PgT37FQWKYS1uAroG2wLdK7FiIEpPhCD+zH
 wlslo2ETbdKjrLIPNehQCOWrT32k8vFNEMLP5G/mmjfNj5sEf3IOKgMTMVl9AFjsINLHcxEQ
 6T8nGbX/n3msP6A36FDfdSEAEQEAAc0WWGluIExpIDx4aW5Aenl0b3IuY29tPsLBDQQTAQgA
 NxYhBIUq/WFSDTiOvUIqv2u9DlcdrjdRBQJlD89XBQkFo5qAAhsDBAsJCAcFFQgJCgsFFgID
 AQAACgkQa70OVx2uN1HUpgv/cM2fsFCQodLArMTX5nt9yqAWgA5t1srri6EgS8W3F+3Kitge
 tYTBKu6j5BXuXaX3vyfCm+zajDJN77JHuYnpcKKr13VcZi1Swv6Jx1u0II8DOmoDYLb1Q2ZW
 v83W55fOWJ2g72x/UjVJBQ0sVjAngazU3ckc0TeNQlkcpSVGa/qBIHLfZraWtdrNAQT4A1fa
 sWGuJrChBFhtKbYXbUCu9AoYmmbQnsx2EWoJy3h7OjtfFapJbPZql+no5AJ3Mk9eE5oWyLH+
 QWqtOeJM7kKvn/dBudokFSNhDUw06e7EoVPSJyUIMbYtUO7g2+Atu44G/EPP0yV0J4lRO6EA
 wYRXff7+I1jIWEHpj5EFVYO6SmBg7zF2illHEW31JAPtdDLDHYcZDfS41caEKOQIPsdzQkaQ
 oW2hchcjcMPAfyhhRzUpVHLPxLCetP8vrVhTvnaZUo0xaVYb3+wjP+D5j/3+hwblu2agPsaE
 vgVbZ8Fx3TUxUPCAdr/p73DGg57oHjgezsDNBGUPz1gBDAD4Mg7hMFRQqlzotcNSxatlAQNL
 MadLfUTFz8wUUa21LPLrHBkUwm8RujehJrzcVbPYwPXIO0uyL/F///CogMNx7Iwo6by43KOy
 g89wVFhyy237EY76j1lVfLzcMYmjBoTH95fJC/lVb5Whxil6KjSN/R/y3jfG1dPXfwAuZ/4N
 cMoOslWkfZKJeEut5aZTRepKKF54T5r49H9F7OFLyxrC/uI9UDttWqMxcWyCkHh0v1Di8176
 jjYRNTrGEfYfGxSp+3jYL3PoNceIMkqM9haXjjGl0W1B4BidK1LVYBNov0rTEzyr0a1riUrp
 Qk+6z/LHxCM9lFFXnqH7KWeToTOPQebD2B/Ah5CZlft41i8L6LOF/LCuDBuYlu/fI2nuCc8d
 m4wwtkou1Y/kIwbEsE/6RQwRXUZhzO6llfoN96Fczr/RwvPIK5SVMixqWq4QGFAyK0m/1ap4
 bhIRrdCLVQcgU4glo17vqfEaRcTW5SgX+pGs4KIPPBE5J/ABD6pBnUUAEQEAAcLA/AQYAQgA
 JhYhBIUq/WFSDTiOvUIqv2u9DlcdrjdRBQJlD89ZBQkFo5qAAhsMAAoJEGu9DlcdrjdR4C0L
 /RcjolEjoZW8VsyxWtXazQPnaRvzZ4vhmGOsCPr2BPtMlSwDzTlri8BBG1/3t/DNK4JLuwEj
 OAIE3fkkm+UG4Kjud6aNeraDI52DRVCSx6xff3bjmJsJJMb12mWglN6LjdF6K+PE+OTJUh2F
 dOhslN5C2kgl0dvUuevwMgQF3IljLmi/6APKYJHjkJpu1E6luZec/lRbetHuNFtbh3xgFIJx
 2RpgVDP4xB3f8r0I+y6ua+p7fgOjDLyoFjubRGed0Be45JJQEn7A3CSb6Xu7NYobnxfkwAGZ
 Q81a2XtvNS7Aj6NWVoOQB5KbM4yosO5+Me1V1SkX2jlnn26JPEvbV3KRFcwV5RnDxm4OQTSk
 PYbAkjBbm+tuJ/Sm+5Yp5T/BnKz21FoCS8uvTiziHj2H7Cuekn6F8EYhegONm+RVg3vikOpn
 gao85i4HwQTK9/D1wgJIQkdwWXVMZ6q/OALaBp82vQ2U9sjTyFXgDjglgh00VRAHP7u1Rcu4
 l75w1xInsg==
In-Reply-To: <aAevpauKYWwObsB7@google.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 4/22/2025 8:03 AM, Sean Christopherson wrote:
> On Tue, Apr 22, 2025, Xin Li (Intel) wrote:
>> base-commit: f30a0c0d2b08b355c01392538de8fc872387cb2b
> 
> This commit doesn't exist in Linus' tree or the tip tree, and the series doesn't
> apply cleanly on any of the "obvious" choices.  Reviewing a 34 patches series
> without being able to apply it is a wee bit difficult...
> 

$ git show f30a0c0d2b08b355c01392538de8fc872387cb2b
commit f30a0c0d2b08b355c01392538de8fc872387cb2b
Merge: 49b517e68cf7 e396dd85172c
Author: Ingo Molnar <mingo@kernel.org>
Date:   Tue Apr 22 08:37:32 2025 +0200

     Merge branch into tip/master: 'x86/sev'

      # New commits in x86/sev:
         e396dd85172c ("x86/sev: Register tpm-svsm platform device")
         93b7c6b3ce91 ("tpm: Add SNP SVSM vTPM driver")
         b2849b072366 ("svsm: Add header with SVSM_VTPM_CMD helpers")
         770de678bc28 ("x86/sev: Add SVSM vTPM probe/send_command 
functions")

     Signed-off-by: Ingo Molnar <mingo@kernel.org>


You probably need to git pull from the tip tree :-)


From xen-devel-bounces@lists.xenproject.org Tue Apr 22 18:06:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 18:06:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.963389.1354401 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7I0M-0006vr-E5; Tue, 22 Apr 2025 18:05:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 963389.1354401; Tue, 22 Apr 2025 18:05: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 1u7I0M-0006vk-A9; Tue, 22 Apr 2025 18:05:58 +0000
Received: by outflank-mailman (input) for mailman id 963389;
 Tue, 22 Apr 2025 18:05: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=tUTc=XI=intel.com=tony.luck@srs-se1.protection.inumbo.net>)
 id 1u7I0L-0006ve-4A
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 18:05:57 +0000
Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.13])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6dd9c27c-1fa4-11f0-9eb0-5ba50f476ded;
 Tue, 22 Apr 2025 20:05:54 +0200 (CEST)
Received: from fmviesa006.fm.intel.com ([10.60.135.146])
 by fmvoesa107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 22 Apr 2025 11:05:52 -0700
Received: from orsmsx902.amr.corp.intel.com ([10.22.229.24])
 by fmviesa006.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 22 Apr 2025 11:05:50 -0700
Received: from ORSMSX901.amr.corp.intel.com (10.22.229.23) by
 ORSMSX902.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.1544.14; Tue, 22 Apr 2025 11:05:48 -0700
Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by
 ORSMSX901.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.1544.14 via Frontend Transport; Tue, 22 Apr 2025 11:05:48 -0700
Received: from NAM02-DM3-obe.outbound.protection.outlook.com (104.47.56.44) by
 edgegateway.intel.com (134.134.137.102) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.1.2507.44; Tue, 22 Apr 2025 11:05:48 -0700
Received: from DS7PR11MB6077.namprd11.prod.outlook.com (2603:10b6:8:87::16) by
 MN0PR11MB6088.namprd11.prod.outlook.com (2603:10b6:208:3cc::9) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.8655.35; Tue, 22 Apr 2025 18:05:42 +0000
Received: from DS7PR11MB6077.namprd11.prod.outlook.com
 ([fe80::509c:f906:cc6:2bec]) by DS7PR11MB6077.namprd11.prod.outlook.com
 ([fe80::509c:f906:cc6:2bec%6]) with mapi id 15.20.8655.033; Tue, 22 Apr 2025
 18: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: 6dd9c27c-1fa4-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1745345155; x=1776881155;
  h=from:to:cc:subject:date:message-id:references:
   in-reply-to:content-transfer-encoding:mime-version;
  bh=fmAdz9mZqTCN037YSzugE3/GeiNS0t4uIgkiQsljs1Q=;
  b=FVs/cn1IznZebWhpipa7R8/92ahMdE+N/1ZQvUPsgH1kKGuxOSBe+eda
   JEl9lnybg6LYksXPmeFjofgEm4FwjuE5dO+156wmbRAzmA8DJuhumZFwp
   mWjQQJA+NuM0wHSqFZKoOcF6XIoiDV+JFq2MGLJDLYhbL4z8f2r5taOD+
   GxVprCrFgGrnQX1qxuprYVsM5k+/W435PaOaG24M6tZR+ERmP2n19L9mE
   5KJ8IyMYQ9afBNN5YT6ARnTOLe6n9CaIq7kYjgb5kd3e+92cPFqy44fEx
   XJAMOooUSp6jNtMCwLxPbnNVlDIgSDeKz/s7qV/ScapJh+5dbYZrDv/61
   w==;
X-CSE-ConnectionGUID: 2SwRIt9GRe+ynQ1HQ8uywA==
X-CSE-MsgGUID: UQKMVMgRThmqDX5SF4nXmQ==
X-IronPort-AV: E=McAfee;i="6700,10204,11411"; a="49584031"
X-IronPort-AV: E=Sophos;i="6.15,231,1739865600"; 
   d="scan'208";a="49584031"
X-CSE-ConnectionGUID: tg6rkUyDRWGhawluYDiHHA==
X-CSE-MsgGUID: bPODpd7jQKGtpFn08n+9WA==
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="6.15,231,1739865600"; 
   d="scan'208";a="131933484"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=wrHKsvfnU9PUH7UuFFBAKds2RzsV7AJtfFBIgcEHljyS/04NTJlXSfs1U4QEfP4p2UBn/65rrCem1wuwjh5a10IvLD+HlPqPtlQu1aHUaiNBdBXOMQ8do2djyaQbrLqVsYWAcYvBNjkLmJIewyRoRDpE0W2+1gDIrsWSxynsbOHCIutE195AvDOCNgf3C7wfX4Jmd1tLsnev+BgEWwY1m7QdekK0cGhFYR4eBXp+rj3bYVBmuec4ToG1dWWGleI+GJLFeirEn2qc4ypwnIO5Y36qj81jCaS4Yv/hpDdysfYVa42Jugu0iovV1jezh3S7vWyY+TOV5tKfa3Hv/j1W+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=fmAdz9mZqTCN037YSzugE3/GeiNS0t4uIgkiQsljs1Q=;
 b=fhJIc0H1dxS2IisbW9T7TGDVhr/UJ2sshViBlOTx65nUbwyZWNacgD5Nb4WeDhCd/zrrltjKdLXMcm1gykMjncsDef796sR17kBzBUFlh/8XxlyXF2vRUvj0noF6RoyCoBiSRPoYNsWNbCnX5iOtWM4/FEtg/I6er3Op9zqMuvXL2tm0efuKteh2vCyWUTCBlYjhu7e6YSZR2c9sA3if1NScfM18AUbky26n0Zp+ZQrdkxsl/OhVfpJ5Pq6GvvhchNU+zJ8O+CMW7kwLWYptsvIl06bmzacFcROtXGUgXFyfRXJwqdjlxXQLWBMwOEOdsP6JAkEagnxUimNx4aM91g==
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
From: "Luck, Tony" <tony.luck@intel.com>
To: Xin Li <xin@zytor.com>, Sean Christopherson <seanjc@google.com>
CC: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"kvm@vger.kernel.org" <kvm@vger.kernel.org>,
	"linux-perf-users@vger.kernel.org" <linux-perf-users@vger.kernel.org>,
	"linux-hyperv@vger.kernel.org" <linux-hyperv@vger.kernel.org>,
	"virtualization@lists.linux.dev" <virtualization@lists.linux.dev>,
	"linux-pm@vger.kernel.org" <linux-pm@vger.kernel.org>,
	"linux-edac@vger.kernel.org" <linux-edac@vger.kernel.org>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"linux-acpi@vger.kernel.org" <linux-acpi@vger.kernel.org>,
	"linux-hwmon@vger.kernel.org" <linux-hwmon@vger.kernel.org>,
	"netdev@vger.kernel.org" <netdev@vger.kernel.org>,
	"platform-driver-x86@vger.kernel.org" <platform-driver-x86@vger.kernel.org>,
	"tglx@linutronix.de" <tglx@linutronix.de>, "mingo@redhat.com"
	<mingo@redhat.com>, "bp@alien8.de" <bp@alien8.de>,
	"dave.hansen@linux.intel.com" <dave.hansen@linux.intel.com>, "x86@kernel.org"
	<x86@kernel.org>, "hpa@zytor.com" <hpa@zytor.com>, "acme@kernel.org"
	<acme@kernel.org>, "jgross@suse.com" <jgross@suse.com>,
	"andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
	"peterz@infradead.org" <peterz@infradead.org>, "namhyung@kernel.org"
	<namhyung@kernel.org>, "mark.rutland@arm.com" <mark.rutland@arm.com>,
	"alexander.shishkin@linux.intel.com" <alexander.shishkin@linux.intel.com>,
	"jolsa@kernel.org" <jolsa@kernel.org>, "irogers@google.com"
	<irogers@google.com>, "Hunter, Adrian" <adrian.hunter@intel.com>,
	"kan.liang@linux.intel.com" <kan.liang@linux.intel.com>, "wei.liu@kernel.org"
	<wei.liu@kernel.org>, "ajay.kaher@broadcom.com" <ajay.kaher@broadcom.com>,
	"bcm-kernel-feedback-list@broadcom.com"
	<bcm-kernel-feedback-list@broadcom.com>, "pbonzini@redhat.com"
	<pbonzini@redhat.com>, "vkuznets@redhat.com" <vkuznets@redhat.com>,
	"luto@kernel.org" <luto@kernel.org>, "Ostrovsky, Boris"
	<boris.ostrovsky@oracle.com>, "kys@microsoft.com" <kys@microsoft.com>,
	"haiyangz@microsoft.com" <haiyangz@microsoft.com>, "Cui, Dexuan"
	<decui@microsoft.com>
Subject: RE: [RFC PATCH v2 00/34] MSR refactor with new MSR instructions
 support
Thread-Topic: [RFC PATCH v2 00/34] MSR refactor with new MSR instructions
 support
Thread-Index: AQHbs1/RMUZdzVvoTE+K/82snKlUebOvyIiAgAAvBoCAAAKQYA==
Date: Tue, 22 Apr 2025 18:05:41 +0000
Message-ID: <DS7PR11MB6077B4D80EB7020C4D3FCD52FCBB2@DS7PR11MB6077.namprd11.prod.outlook.com>
References: <20250422082216.1954310-1-xin@zytor.com>
 <aAevpauKYWwObsB7@google.com>
 <cb4e24a0-fdb7-46d2-9b0e-200f5e3e4c96@zytor.com>
In-Reply-To: <cb4e24a0-fdb7-46d2-9b0e-200f5e3e4c96@zytor.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=intel.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DS7PR11MB6077:EE_|MN0PR11MB6088:EE_
x-ms-office365-filtering-correlation-id: 763d126e-1844-418b-2adc-08dd81c84bbf
x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|7416014|376014|1800799024|366016|38070700018;
x-microsoft-antispam-message-info: =?utf-8?B?NVNMRjdwSjlnNjNrb0syeUVacnkrQVlBeXk1QUhFbjd5clhnSG1seHcvak84?=
 =?utf-8?B?aCsranpwNG5xRytsMThCTDhETUtXb1J3RmdzV1laQk0rWVBFQ1hENHN2cThM?=
 =?utf-8?B?Y0doa1ArMFNKc1J1SkZmV0sxVFRzTlB0NkQzM0QvTlE2RzlXajJNWlRYeGQ0?=
 =?utf-8?B?MXBYVUpyZXYra0V0Z084RDhPQk9rUUlqK1ZlS1VIc0g4TjlkYWJFUmNINStF?=
 =?utf-8?B?SllvaHNDOWRwNjkvck5HNzN3NmxIOHlmYlNESjk2ays2RG5OYmhWL1BNWmFu?=
 =?utf-8?B?YTA0QnMyNmhKRVhFUkwzU1ExSHZTNGpCOXRsZlBzWEdISmhqVWFRWlRWTW5q?=
 =?utf-8?B?RmhKemlWOUs1cGU2QThORDEvR1g3NnQ2Z0NWMXBpTzh6bVhDcExWS0k0MVVO?=
 =?utf-8?B?N0VoSExXSW04SlovY2dvT2lkVHlWejAwWGR3NzFYSVZYZUdnQ2lreS9aYnpF?=
 =?utf-8?B?cTBaeFBjT2xtNXZwcGIzbXNwWEF5dW04ZjhudDFnK1JWb29RbzNYeVpySzVP?=
 =?utf-8?B?YmRDRGJKSGJsQXJZTG5UNkx6cEZicGpnUnhkZi9mTGZGZEVoSDJVRjFNYmo2?=
 =?utf-8?B?RVB0dklvM1NOM2dBN2dEYWQwUXFpa0dOWHBCbFFhWndKaWhRRm9helFlR3dm?=
 =?utf-8?B?UnpnS3dwSUphbFBiUHhOVlJxWER5TUFmWU5NZENpVnJJdURrSEZ4b21vejl1?=
 =?utf-8?B?b0c0T1ZIU0xseTIyTzBEaGJobEJ2Y2JvT2EyN0xtdUY5VzdnZVlmM2QySkFt?=
 =?utf-8?B?Ukg2UWNGcHNsbVJ2d2RkK0tPR01YSHZoWVo4MENNZlhlbjNhVDhldkVMZTZQ?=
 =?utf-8?B?U2J4Q29HWmVKZG9xV2R4eE1FQ0hBelkxTk52d2wxMTBVSVVqeWRxaFV0Zmdt?=
 =?utf-8?B?RDM0c0U3QkpOMW5LTm5tNzdiNzdaUU93YWJsTUxKUU41TE1Za3M2WDZxS3F4?=
 =?utf-8?B?UERaYktoODdEMTdwUWJUTFp4OHZWVHVDTHVSZDFxUHliM21pWlN0NVhCYTRk?=
 =?utf-8?B?aEVmMDQ1elBMSUxUK0VDaGZSb28rN0lRYjZBTmtjLy9lMlo5NC82dXRhK1FJ?=
 =?utf-8?B?b3VjVkpUOVg2cnZjY1ZHc3Y0bElSdHM5OHZhRVBJM2psdjdZQnZidjFtM3hL?=
 =?utf-8?B?T09Na3FnVnFiMkVZbHdRbndWdTlvRExxMlNSQ2drSnNjM0JiSnVDNkVUZWNT?=
 =?utf-8?B?TFZzTFpKSk5aSGl4a25JZkdXRE4vK09WVmNNdHZtRjRKTHpGNUVLOTc2ZEVT?=
 =?utf-8?B?NTRFTG8vUW5VbVpFT3BMb0lNeXRoSWozK2YzU0NsdFowdmlaY3Zkcythb1Zr?=
 =?utf-8?B?Rmh0Vk5CdnFCeE82aXlqbDVPdDlUWjZLQ09oVkt2UDdibzlySDRYbkgrbmEx?=
 =?utf-8?B?MW9RQVBTdVpNb003VEx1KzBGRTU3RmRFVDVKTnV1bEViLzA5bmFsazZGRWJE?=
 =?utf-8?B?YW9EQUdkK05yR0poTlZLam04QklTU0tFOVVzRnRTODdVOHVYMU1vUlRscDZs?=
 =?utf-8?B?MUlRZEJZWGpRNTZsQ0wyQUp6eUNlNzRLbHh3UHlGMG9aNTRXRHlEVGp1a09v?=
 =?utf-8?B?TFdMeHRJMXo2bVFidldMVW9jRnhOanZ0UHAxRUZVL3dlVlExYWt1dkswVVlB?=
 =?utf-8?B?cmFMQjAxSXBsT0NzNFZGMktKbktSbVpaR3FSSmpTbFpEbW9FYlR3VGtiYnh1?=
 =?utf-8?B?OWtIWldDKytBQ0F2MlZjUVlHbFFGYUdLUy8wQUVsb3pCYmRHeGFHeDlYR1F5?=
 =?utf-8?B?eUFqMlFmdHd0K0plRGVid2p0TEZibUsvUFNpNkVtMTN2REFzN2Yza2hQbWFo?=
 =?utf-8?B?U3lETmVSZVpPZnFlRTVCK3M4eFlaY1dKUFVmQm55ZDJyTjhyUC9CSGowL3k4?=
 =?utf-8?B?dzYxdk4xTzJGcUVkNUJ6N1FhbTNPNndBcGhKV09YNmllTGYwcnVwSElUQmVG?=
 =?utf-8?B?MVYxVXNjR0VremVYUU9ESDBZeFZPNFpwQ1VSRFYyY2Z5Ni9NdUVWQzdSdkZB?=
 =?utf-8?B?R2N0amk3L2J3PT0=?=
x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR11MB6077.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(1800799024)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: =?utf-8?B?VDU0SnMzZmhUZXFhY2NTc3FLUkJFS0c0RXZNQURGU2FWN1JXS3F1b1FGelNU?=
 =?utf-8?B?S3pHQXZBRmhZVEJJR2tSTzlMZTlncFNaOVNGUjFPTmV5bHJubVMxZmVsdncr?=
 =?utf-8?B?cGdIWWRHZldSU29FVzg0dzBLQlpMVFBaTjFranN3bmVMalFWVno2SUVaTXpI?=
 =?utf-8?B?blQ4aTJrbVVqTXNRSXhweFpDUHpqMnB5SmxkNWZkV1o1YWNxVlRSTEpzckEr?=
 =?utf-8?B?YzdFZ0d1VE5tWGJRS0NyZE1XVXNFR3lqUktPeEVQbWl5UE4rT083czBGM21s?=
 =?utf-8?B?b0dJT1RGMjVyYXRxVGNGNFh4STYwZTExSjhYVE5Jb2FGZHdYYmlZKzZXc01S?=
 =?utf-8?B?T2dUczlnUFZvRXozRFV4QjB2WUxSYzZhUnI0ckt0QXQrU1lRekdaSE5tTzU0?=
 =?utf-8?B?eVBxd29MelRFR3hXYkl6bGhCWm0vbzZDSzNxRTBVZVVZSEFOZ0ZkRjM2Q2E4?=
 =?utf-8?B?akR2dGpjbDd5MXp6UVd2bmhIblc4NUwwZ0kreGRkVWgxcXNCV1N4SUp3KytM?=
 =?utf-8?B?eU9EY1lrR0d1aGhadjkvQm5BSFMydVBJb3ZBMTJlalJ6S29iVHhVTjc0NzYz?=
 =?utf-8?B?S1NGRnBQR3dTbGpIUVpHc1JpZUJneFVQdDBneit1T3NMaklSY0I0cVBmM3VS?=
 =?utf-8?B?b3VuTVBCUkxXbTNKTHJGS0hBSUdBTTdpV0dLNlM2a1JBajdHZUlDcjQ2eEZG?=
 =?utf-8?B?cnBkWFliR0RNVy9iVnVERVRYeW9MZS9vd3BFVHlPUW1MYm56a0JqeXc0OXYw?=
 =?utf-8?B?UXFJL3c4WXpObDNvVDBPOGQ0N2tnTmVOUHB0R3l3VTlJY29OL0w4SjQ1TFZR?=
 =?utf-8?B?cWV6bW1HRFYwYlYxVnlROTV6YUYwcEJzaER0djV2M1V0ZUZFSVJPa2ozMjhn?=
 =?utf-8?B?Sm1JTzBuMHZmWkpvdERQcEJDVFNGUm1DZWVKcWc2dUtUdDJkaWFualMzVlhX?=
 =?utf-8?B?S0tEb0ZtTlJmblVXNk5vT3ZXRnhIampneU1uUzN5TE0wMTF3NGJLc3JXYzZ1?=
 =?utf-8?B?Qm1tRGo0WXQwNU91bkwySzhFUXRvY2lieTBzMzFvZnEzeVNPdnpxLzRDY1dy?=
 =?utf-8?B?SmhIQzV1MU1udDhXb2pEZkhQUGxKanN1dXZEQ1pYeEM5eHpRMUhNZk1HYjcw?=
 =?utf-8?B?bTc2ZmN5VGJuRW8yQWlVUkNvT1RySDdlVEVRRnB2ZHJVaklCclZyODIyOU0x?=
 =?utf-8?B?L3paU0crNDc1Ym5mYmZxVkhmNjU4NlhQRnQzQVU3MWw4a09UT1QxN2NmZkU4?=
 =?utf-8?B?TXp2cm1aeSt1U1VPaWhoS3lrNFlRTEJKMDl0ZHlaVWJmLzhaQWRBWTQ2VGxT?=
 =?utf-8?B?L3VBNzMvNS85VnpxR2V1QVlkSzdIelo3TUtFL3cvVFhVU0UwM3JkOW1LNjdp?=
 =?utf-8?B?Nng4SXFSWDJzbFFRK0JhS2NOWkFydGZMeUNvbWNDZUZsZmFMTmFKOTVSNEtv?=
 =?utf-8?B?Sk02VHJ6UjU0YWdLNWx4TTdORmZ6ZHNGb21XOTlzNXVyQjdGcjhRUThHaGx4?=
 =?utf-8?B?dm1xR3h4QXhKaUQ0dzdPay9LR0FOWkE0dEtYM1NBWGNyUFpRWnpjRGZ5Z0ox?=
 =?utf-8?B?M1ZqRTZvSkgyNk4vM2YvNllJZndSZjFzcWxCWFVtbDBCTXozUFdqQVptYzIx?=
 =?utf-8?B?TC81M1k2enEvVE1vbEtJbVNNanVRTWJmazBBK0l3ZDhxaTVwK2w5dTV5eFEv?=
 =?utf-8?B?VDI4UmdSQjZQWktBUW5EckcxZTMvSnJsZzNtY1pPbW0wTEhnUGlFV0RRWTJr?=
 =?utf-8?B?ZDNvbnBWQnNYVU5jNTdaSitHZ1B5YnlMNC9KbWNJdm9IS0c4MzRPcVJWOXBG?=
 =?utf-8?B?ZzVkOVVPaEtqNU5IbGxEeVRFTXd2TE84UGl1Tkw0TGorWWRWSHpBR1pNeGZm?=
 =?utf-8?B?V2FISEgzQ0RkejZ4eFE2dGE1aVRsVG9BNUVjTXNFdUdCY1hQVTRPSi9MNjVM?=
 =?utf-8?B?R3NiUHoxc2JyQ1BDSmg1ekQ2V1FKYlFIZy9GOGlOdWFFMldJbDh3SnlXeTE1?=
 =?utf-8?B?M3FpWHlNZllsNmxtWXhtdDY0K0NHbXNuNHhKVmRMeFJaVWNCWkIzemdRbUlm?=
 =?utf-8?B?YS9ST2pNcUR5TG12QlJaUEtyTTRhTThjTjh1TWcwYzJXN01ibVNGMUtNNDlw?=
 =?utf-8?Q?FVrmRNZ2LQl0HyAqX6qEXK1RN?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DS7PR11MB6077.namprd11.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 763d126e-1844-418b-2adc-08dd81c84bbf
X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Apr 2025 18:05:42.0035
 (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: +aUKkLnmD8IKryCluzdAkPymTPTebGJmXNuuTWarOq92+NwQOOsEDuxXO+aI6KHoa6UnYiM7Pm8RVOlXH9MOLA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN0PR11MB6088
X-OriginatorOrg: intel.com

PiA+PiBiYXNlLWNvbW1pdDogZjMwYTBjMGQyYjA4YjM1NWMwMTM5MjUzOGRlOGZjODcyMzg3Y2Iy
Yg0KPiA+DQo+ID4gVGhpcyBjb21taXQgZG9lc24ndCBleGlzdCBpbiBMaW51cycgdHJlZSBvciB0
aGUgdGlwIHRyZWUsIGFuZCB0aGUgc2VyaWVzIGRvZXNuJ3QNCj4gPiBhcHBseSBjbGVhbmx5IG9u
IGFueSBvZiB0aGUgIm9idmlvdXMiIGNob2ljZXMuICBSZXZpZXdpbmcgYSAzNCBwYXRjaGVzIHNl
cmllcw0KPiA+IHdpdGhvdXQgYmVpbmcgYWJsZSB0byBhcHBseSBpdCBpcyBhIHdlZSBiaXQgZGlm
ZmljdWx0Li4uDQo+ID4NCj4NCj4gJCBnaXQgc2hvdyBmMzBhMGMwZDJiMDhiMzU1YzAxMzkyNTM4
ZGU4ZmM4NzIzODdjYjJiDQo+IGNvbW1pdCBmMzBhMGMwZDJiMDhiMzU1YzAxMzkyNTM4ZGU4ZmM4
NzIzODdjYjJiDQo+IE1lcmdlOiA0OWI1MTdlNjhjZjcgZTM5NmRkODUxNzJjDQo+IEF1dGhvcjog
SW5nbyBNb2xuYXIgPG1pbmdvQGtlcm5lbC5vcmc+DQo+IERhdGU6ICAgVHVlIEFwciAyMiAwODoz
NzozMiAyMDI1ICswMjAwDQo+DQo+ICAgICAgTWVyZ2UgYnJhbmNoIGludG8gdGlwL21hc3Rlcjog
J3g4Ni9zZXYnDQo+DQo+ICAgICAgICMgTmV3IGNvbW1pdHMgaW4geDg2L3NldjoNCj4gICAgICAg
ICAgZTM5NmRkODUxNzJjICgieDg2L3NldjogUmVnaXN0ZXIgdHBtLXN2c20gcGxhdGZvcm0gZGV2
aWNlIikNCj4gICAgICAgICAgOTNiN2M2YjNjZTkxICgidHBtOiBBZGQgU05QIFNWU00gdlRQTSBk
cml2ZXIiKQ0KPiAgICAgICAgICBiMjg0OWIwNzIzNjYgKCJzdnNtOiBBZGQgaGVhZGVyIHdpdGgg
U1ZTTV9WVFBNX0NNRCBoZWxwZXJzIikNCj4gICAgICAgICAgNzcwZGU2NzhiYzI4ICgieDg2L3Nl
djogQWRkIFNWU00gdlRQTSBwcm9iZS9zZW5kX2NvbW1hbmQNCj4gZnVuY3Rpb25zIikNCj4NCj4g
ICAgICBTaWduZWQtb2ZmLWJ5OiBJbmdvIE1vbG5hciA8bWluZ29Aa2VybmVsLm9yZz4NCj4NCj4N
Cj4gWW91IHByb2JhYmx5IG5lZWQgdG8gZ2l0IHB1bGwgZnJvbSB0aGUgdGlwIHRyZWUgOi0pDQoN
CklmIHBvc3NpYmxlLCB5b3Ugc2hvdWxkIGF2b2lkIGJhc2luZyBhIHNlcmllcyBvbiB0aXAvbWFz
dGVyIGFzIGl0IGdldHMgcmVjcmVhdGVkDQpmcmVxdWVudGx5IGJ5IG1lcmdpbmcgYWxsIHRoZSB0
b3BpYyBicmFuY2hlcy4gVGhlIFNIQTEgaXMgaGVyZSB0b2RheSwgZ29uZQ0KdG9tb3Jyb3cuDQoN
CklmIHlvdXIgY2hhbmdlcyBvbmx5IGRlcGVuZCBvbiBvbmUgVElQIHRvcGljIGJyYW5jaCwgYmFz
ZSBvbiB0aGF0IGFuZCBtZW50aW9uDQppbiB0aGUgY292ZXIgbGV0dGVyIChhcyB3ZWxsIGFzIHRo
ZSBTSEExIHN1cHBsaWVkIGZyb20gZ2l0IGZvcm1hdC1wYXRjaGVzIC0tYmFzZT14eHgpLg0KDQpJ
ZiB5b3UgZG8gZGVwZW5kIG9uIG11bHRpcGxlIHRpcCB0b3BpYyBicmFuY2hlcywgdGhlbiBtYXli
ZSB0aXAvbWFzdGVyIGlzIHlvdXINCm9ubHkgaG9wZS4gQnV0IGluIHRoYXQgY2FzZSBjb3ZlciBs
ZXR0ZXIgc2hvdWxkIHNheSAidGlwL21hc3RlciBhcyBvZiB5eXktbW0tZGQuDQoNCi1Ub255DQo=


From xen-devel-bounces@lists.xenproject.org Tue Apr 22 18:33:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 18:33:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.963404.1354411 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7IR3-0006Sk-JM; Tue, 22 Apr 2025 18:33:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 963404.1354411; Tue, 22 Apr 2025 18:33: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 1u7IR3-0006Sd-GN; Tue, 22 Apr 2025 18:33:33 +0000
Received: by outflank-mailman (input) for mailman id 963404;
 Tue, 22 Apr 2025 18:33: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=BiSK=XI=3mdeb.com=sergii.dmytruk@srs-se1.protection.inumbo.net>)
 id 1u7IR1-0006SX-81
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 18:33:32 +0000
Received: from 5.mo561.mail-out.ovh.net (5.mo561.mail-out.ovh.net
 [87.98.178.36]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 48e89b91-1fa8-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 20:33:28 +0200 (CEST)
Received: from director1.ghost.mail-out.ovh.net (unknown [10.108.17.245])
 by mo561.mail-out.ovh.net (Postfix) with ESMTP id 4ZhrTh0ZcZz1TCg
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 18:33:27 +0000 (UTC)
Received: from ghost-submission-5b5ff79f4f-gtld4 (unknown [10.110.168.145])
 by director1.ghost.mail-out.ovh.net (Postfix) with ESMTPS id 8DA4A1FD2D;
 Tue, 22 Apr 2025 18:33:25 +0000 (UTC)
Received: from 3mdeb.com ([37.59.142.101])
 by ghost-submission-5b5ff79f4f-gtld4 with ESMTPSA
 id o4ofGPXgB2jqkQMAtQ4H7w
 (envelope-from <sergii.dmytruk@3mdeb.com>); Tue, 22 Apr 2025 18:33: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: 48e89b91-1fa8-11f0-9ffb-bf95429c2676
Authentication-Results:garm.ovh; auth=pass (GARM-101G0040c329dd6-f0cc-4c6a-8bff-12cdd1a88635,
                    7E508E014E7E7C169EB13C6E22C3C4EBF1F0FDD7) smtp.auth=sergii.dmytruk@3mdeb.com
X-OVh-ClientIp:176.111.181.178
Date: Tue, 22 Apr 2025 21:33:19 +0300
From: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>,
	Lukasz Hawrylko <lukasz@hawrylko.pl>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Mateusz =?iso-8859-1?Q?M=F3wka?= <mateusz.mowka@intel.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Marek =?iso-8859-1?Q?Marczykowski-G=F3recki?= <marmarek@invisiblethingslab.com>,
	trenchboot-devel@googlegroups.com, xen-devel@lists.xenproject.org
Subject: Re: [PATCH 00/21] x86: Trenchboot Secure Launch DRTM (Xen)
Message-ID: <aAfg725PHN7z-tnm@MjU3Nj>
References: <cover.1745172094.git.sergii.dmytruk@3mdeb.com>
 <6929b073-6a5f-4b34-af5b-96b7b5ac62d6@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <6929b073-6a5f-4b34-af5b-96b7b5ac62d6@suse.com>
X-Ovh-Tracer-Id: 16210425385970807897
X-VR-SPAMSTATE: OK
X-VR-SPAMSCORE: -100
X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvgeeggeeiucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuqfggjfdpvefjgfevmfevgfenuceurghilhhouhhtmecuhedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurhepfffhvfevuffkfhggtggujgesthdtredttddtvdenucfhrhhomhepufgvrhhgihhiucffmhihthhruhhkuceoshgvrhhgihhirdgumhihthhruhhkseefmhguvggsrdgtohhmqeenucggtffrrghtthgvrhhnpedvgfevgedtfffhudegveeiheekteduveeffeegtdeljeelvdefuedtteduieevleenucfkphepuddvjedrtddrtddruddpudejiedrudduuddrudekuddrudejkedpfeejrdehledrudegvddruddtudenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepihhnvghtpeduvdejrddtrddtrddupdhmrghilhhfrhhomhepshgvrhhgihhirdgumhihthhruhhkseefmhguvggsrdgtohhmpdhnsggprhgtphhtthhopedupdhrtghpthhtohepgigvnhdquggvvhgvlheslhhishhtshdrgigvnhhprhhojhgvtghtrdhorhhgpdfovfetjfhoshhtpehmohehiedumgdpmhhouggvpehsmhhtphhouhht
DKIM-Signature: a=rsa-sha256; bh=einFtMg4Z/CVJOKyceayt3o6jQlFZ4bZlgaRWZCXMUo=;
 c=relaxed/relaxed; d=3mdeb.com; h=From; s=ovhmo3617313-selector1;
 t=1745346808; v=1;
 b=TtH9FP4LvPh4nYj5SckqAEur3JBV9psGGllwK5skWoHbfaVNWaiJkOKD/wa2dz2i8nJxnJBN
 hTct/RRCL+Bkq/uq/sFR4tq3pL95ZSZIYnkgr8l9DAyf8wljFsgRNwJyJBs72HvvyxdsKg2KIuS
 aZJpUXqyJVRuu72UNrWWDxlwqCHdmGemFmISFvjOeW9eYnET7rtHuYVGnyFoO/dDhhdaEjPa91S
 VenuUYqOELg0okKL8abXeafmQ3ezOgsnhfYS1HuzT8QaRDpU/U2+EGypY6b0am6MSYpaNT1zMyn
 65TYBKG8XCEkwzfCM8uZuNR6aNGocTt3foxC/gBMXc3TA==

On Tue, Apr 22, 2025 at 05:23:30PM +0200, Jan Beulich wrote:
> Just one basic nit right here: In the names of new files you add, please
> prefer dashes over underscores.

I wasn't aware of this preference, will be updated in the next version.

> Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 22 19:01:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 19:01:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.963421.1354425 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7Irt-0005mh-Oz; Tue, 22 Apr 2025 19:01:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 963421.1354425; Tue, 22 Apr 2025 19:01:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7Irt-0005ma-Lg; Tue, 22 Apr 2025 19:01:17 +0000
Received: by outflank-mailman (input) for mailman id 963421;
 Tue, 22 Apr 2025 19:01:15 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Pc5Z=XI=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1u7Irr-0005Df-9k
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 19:01:15 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 244364e8-1fac-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 21:01:05 +0200 (CEST)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id 119F84EE3BFD;
 Tue, 22 Apr 2025 21:01:04 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 244364e8-1fac-11f0-9ffb-bf95429c2676
Authentication-Results: bugseng.com; arc=none smtp.remote-ip=162.55.131.47
ARC-Seal: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; cv=none; t=1745348464;
	b=ZtuFp38PxVWP+1y0nRu7U88Qqc9SVOeFVYSwF1EH3lYyKI+5b1blxDFSGZKbejr46Gvc
	 SrK/KTISb1GUA7E3du2iZiqc9Zo12pe7HMN6DQm/b+7c7zljTilw4rS3euDK5hSd9NfUq
	 F59dbIZNbp+mOYibd4m6rk9609PYFzj3T240N7G7nuZEvVeO1JblrSG0jhPkHecolZgNG
	 dFqGEQvE6eLdbI2/Mu31ksgaZFHhWi4dTZNUvZ3NlYZbDam8N/hwu+LP1ycctwgBU4cXS
	 Py/FULIllmmDG7VZBPNt2Zvx/4odeB0w1rtsm/YBiR2OXILMBu/rKVJI/kcEbshJbQQ68
	 1Uwm96rF0m8K1A76deYIcRPBKgRiY3yOAcxxRyjJY/5eKbmh0o6fXoI5E5jT5evmL5yLA
	 2SbyNp8I8Opfq3CYP59kiQYo/f2ki1XKip6GxJEAszQc3OAZS3LdFvrUdCSGzxJkbG31Q
	 BQtcuMNG18BUy2B8dCcHRkwqYXvD8EkZfBVy6dhN8VlJpUjjn+kGq4uhLFjkWCzjrwPbr
	 4r7NOh1huhJ1O/FEn3uR2tsO7l7VKsANLgXndZWnsPGluxF6pwrSxB/jglmRwOAlaBSpA
	 NV3h8gsXrSDtfRr+Y788c4Nf2AwPDc6RuyjMP1nB0rcbCHGiHokeuZkJGaPLbDE=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1745348464;
	h=DKIM-Signature:MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:
	 References:Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=+s+gggOC/GE1hGe36xVfHIlyY2icP3Fbq0H5LB/hC5Q=;
	b=TYQrR7Y2+vkZmdD281B0bUpNIP0+GED/sovi3SKb2XO21RG8xCJQdHzAryzy+rI2ayot
	 XazXkYaSzl/4PsyKTwFdLtKmXzyoSxCKYzbSqBMXW5ujhVbSVdObpVOe6v+HhUGnDKPre
	 70qWDItxCGgXUIAedqA4kPtkwYiUb2R7xergZNI2NrEInIf71c7gIRlL3Q/X47u/rMXCU
	 6484xcQ5ARp/rfiU5jCLAvDaCKl5RQ4IX4OUvBrL7TzdHRe2GHBhNOBi8wi6i2US8hNqN
	 ZseE/hBplJG/lnaO6fSIVSo1nUQekBrFnH03cSxb+vkd+u9lADeTBQje2Sep1gFOKAUF3
	 ahR8K6we9iGBoNsBiC5iN1uAXIE/+2iHmcES2h5wjjFrV9wsLZWjGbZwFbq6RkyLfwEDt
	 T76041sTGzT6oPSL1+TJ87Oc9KiYaI1Mk0JmNxTf08udHWfSSy8APloNmm6qeU8qghakV
	 t5wtZUZnRAw8gFhrFJxXgkdVnPwGBiA7pfKSUQjqELdxiEvePer7NimfZ8NOzwfOlTL60
	 98p9Y8ZP/UC2mE4R5g1MiNKN5uU3j+aCwNQHnQreQaxf/9pywoElbvP62EI7zD+RpA2C+
	 D2D47ALriB9I2Na5K7QYX5kmkafePt+CkIPtllpjayLXHC52g8wMPFaWEs/8ZJ8=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1745348464; bh=RTBJSrqWoOgIb5vJwah0Okw40ejugbs8EuJ1F3sRGTc=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=G4LInXVXQwuiK2m4uU8IM4M/f9bX6yQXANtIR6/h5jbydaNyrp2idjkdFNszmAfqZ
	 XJU9shU7yJyf3tNdiVphzbyuLKGvFP2bqqhz6WCPIFFkLnQgm7sYLUPAuOYoHiM60/
	 e1lJHoHo7hJ/3KNFq6iQWeL9RK1cIOT+qivYv+jlDun8yXpu2Fx9x8cN/eoJ7zhev8
	 vSk3SR7Jw0AGCRNWKWi+XIr8ahcFYWhUeU3K7mvHZ1zmRuwLWOO8zCSjvNNLh2GAiJ
	 rWYKu/GAfI1lLnEjdJekiHpG/J1fLlf16xzsQLDfourT+1D27E7t7LxjzG7Olt9qau
	 qeHKxDEX/wQjA==
MIME-Version: 1.0
Date: Tue, 22 Apr 2025 21:01:04 +0200
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>,
 xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Lukasz Hawrylko
 <lukasz@hawrylko.pl>, "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Mateusz_M=C3=B3wka?= <mateusz.mowka@intel.com>, Anthony PERARD
 <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Julien
 Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, trenchboot-devel@googlegroups.com
Subject: Re: [PATCH 00/21] x86: Trenchboot Secure Launch DRTM (Xen)
In-Reply-To: <744934f4-f56f-4dc7-bccb-c32f2829d1da@citrix.com>
References: <cover.1745172094.git.sergii.dmytruk@3mdeb.com>
 <744934f4-f56f-4dc7-bccb-c32f2829d1da@citrix.com>
Message-ID: <a8193a5ef223a3d015f3d6ddbbbc2535@bugseng.com>
X-Sender: nicola.vetrini@bugseng.com
Organization: BUGSENG s.r.l.
Content-Type: text/plain; charset=US-ASCII;
 format=flowed
Content-Transfer-Encoding: 7bit

On 2025-04-22 19:14, Andrew Cooper wrote:
> On 22/04/2025 4:06 pm, Sergii Dmytruk wrote:
>> The aim of the [TrenchBoot] project is to provide an implementation of
>> DRTM that is generic enough to cover various use cases:
>>  - Intel TXT and AMD SKINIT on x86 CPUs
>>  - legacy and UEFI boot
>>  - TPM1.2 and TPM2.0
>>  - (in the future) DRTM on Arm CPUs
>> 
>> DRTM is a version of a measured launch that starts on request rather
>> than at the start of a boot cycle.  One of its advantages is in not
>> including the firmware in the chain of trust.
>> 
>> Xen already supports DRTM via [tboot] which targets Intel TXT only.
>> tboot employs encapsulates some of the DRTM details within itself 
>> while
>> with TrenchBoot Xen (or Linux) is meant to be a self-contained payload
>> for a TrenchBoot-enabled bootloader (think GRUB).  The one exception 
>> is
>> that UEFI case requires calling back into bootloader to initiate DRTM,
>> which is necessary to give Xen a chance of querying all the 
>> information
>> it needs from the firmware before performing DRTM start.
>> 
>> From reading the above tboot might seem like a more abstracted, but 
>> the
>> reality is that the payload needs to have DRTM-specific knowledge 
>> either
>> way.  TrenchBoot in principle allows coming up with independent
>> implementations of bootloaders and payloads that are compatible with
>> each other.
>> 
>> The "x86/boot: choose AP stack based on APIC ID" patch is shared with
>> [Parallelize AP bring-up] series which is required here because Intel
>> TXT always releases all APs simultaneously.  The rest of the patches 
>> are
>> unique.
> 
> I've stripped out the sha2 patch and fixed up to use the existing sha2,
> then kicked off some CI testing:
> 
> https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/1780285393
> https://cirrus-ci.com/build/5452335868018688
> 
> When the dust has settled, I'll talk you through the failures.
> 

Accidental use of C18 here

https://saas.eclairit.com:3787/fs/var/local/eclair/xen-project.ecdf/xen-project/hardware/xen-staging/ECLAIR_normal/andrew/tb-v1.1/X86_64/9791028023/PROJECT.ecd;/by_service/MC3A2.D1.1.html

> ~Andrew

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


From xen-devel-bounces@lists.xenproject.org Tue Apr 22 19:18:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 19:18:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.963441.1354435 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7J8M-0000N5-5L; Tue, 22 Apr 2025 19:18:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 963441.1354435; Tue, 22 Apr 2025 19:18:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7J8M-0000My-2L; Tue, 22 Apr 2025 19:18:18 +0000
Received: by outflank-mailman (input) for mailman id 963441;
 Tue, 22 Apr 2025 19:18: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=eQRL=XI=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u7J8L-0000Ms-KS
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 19:18:17 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 89cc727d-1fae-11f0-9eb0-5ba50f476ded;
 Tue, 22 Apr 2025 21:18:16 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 4D8A0437D3;
 Tue, 22 Apr 2025 19:18:12 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id BC2C9C4CEE9;
 Tue, 22 Apr 2025 19:18: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: 89cc727d-1fae-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1745349493;
	bh=UK71251gmHrpbE4GoMq3+Q1TCKZtPTKBOwn/ti16NT4=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=Ue5F6En1AsvCixHsm/mYzNkboBKKyPN/9TwWqib6g1UnacvBvHTONLSO9ixhcymAW
	 piTYU57/C7Nii+dBcZHtCZD+XeEp7FfU282Z6187jN8y+rPU6wVOwZ4ikTWeQgTaAg
	 hxJWXY/RiBP+a6U9l9r9aCRYhhqMxcO1cuyw8VPm54UGOt267eyjDUgnvY5Da+O1Wt
	 YLVIzUGLlKK5+LtJqp/cf+EtJP8s3UbocIDMzijzyLC5hMnvfzvqvAREaVdZonSWO8
	 j5ED0CH5MnKyeG3IqkF3CZersieYaXQ+a3i++7G+qtM/CtCMm1uC9htaCofZVTnYFs
	 cqSFtkiTH5kHg==
Date: Tue, 22 Apr 2025 12:18:12 -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: Xen-devel <xen-devel@lists.xenproject.org>, 
    Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
    Bertrand Marquis <bertrand.marquis@arm.com>, 
    Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH] arm/alternative: Drop unused includes of
 asm/alternative.h
In-Reply-To: <20250422173058.1459730-1-andrew.cooper3@citrix.com>
Message-ID: <alpine.DEB.2.22.394.2504221218070.785180@ubuntu-linux-20-04-desktop>
References: <20250422173058.1459730-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 Tue, 22 Apr 2025, Andrew Cooper wrote:
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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


> ---
> CC: Stefano Stabellini <sstabellini@kernel.org>
> CC: Julien Grall <julien@xen.org>
> CC: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
> CC: Bertrand Marquis <bertrand.marquis@arm.com>
> CC: Michal Orzel <michal.orzel@amd.com>
> ---
>  xen/arch/arm/arm64/cache.S | 2 --
>  xen/arch/arm/domain.c      | 1 -
>  2 files changed, 3 deletions(-)
> 
> diff --git a/xen/arch/arm/arm64/cache.S b/xen/arch/arm/arm64/cache.S
> index 66ed85f73503..c0a8ca163a47 100644
> --- a/xen/arch/arm/arm64/cache.S
> +++ b/xen/arch/arm/arm64/cache.S
> @@ -19,8 +19,6 @@
>   * along with this program.  If not, see <http://www.gnu.org/licenses/>.
>   */
>  
> -#include <asm/alternative.h>
> -
>  /*
>   * dcache_line_size - get the minimum D-cache line size from the CTR register.
>   */
> diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
> index dc4b4e84c1c3..23cf8729f1d7 100644
> --- a/xen/arch/arm/domain.c
> +++ b/xen/arch/arm/domain.c
> @@ -12,7 +12,6 @@
>  #include <xen/softirq.h>
>  #include <xen/wait.h>
>  
> -#include <asm/alternative.h>
>  #include <asm/arm64/sve.h>
>  #include <asm/cpuerrata.h>
>  #include <asm/cpufeature.h>
> -- 
> 2.39.5
> 


From xen-devel-bounces@lists.xenproject.org Tue Apr 22 19:45:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 19:45:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.963453.1354446 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7JYO-0006Ka-6L; Tue, 22 Apr 2025 19:45:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 963453.1354446; Tue, 22 Apr 2025 19: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 1u7JYO-0006KT-28; Tue, 22 Apr 2025 19:45:12 +0000
Received: by outflank-mailman (input) for mailman id 963453;
 Tue, 22 Apr 2025 19:45: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=JQpG=XI=kernel.org=mingo@srs-se1.protection.inumbo.net>)
 id 1u7JYN-0006KM-BC
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 19:45:11 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org
 [2600:3c04:e001:324:0:1991:8:25])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4ba0cb09-1fb2-11f0-9eb0-5ba50f476ded;
 Tue, 22 Apr 2025 21:45:09 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 343436115E;
 Tue, 22 Apr 2025 19:44:47 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 47763C4CEE9;
 Tue, 22 Apr 2025 19:45: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: 4ba0cb09-1fb2-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1745351107;
	bh=SM6p/VeZczxklqTLgYwK5TNBFJzXTVCYUxX3c44n8dY=;
	h=Date:From:To:Cc:Subject:References:In-Reply-To:From;
	b=Vd9uFVutD/DiNg1ZxIBzrJdFL1jU2G6puZbnWNQs6i3n+kf4rc7vjxbWQL0R1Xh0o
	 JPrl6gnfZMUUMuCJ+LVDo47kM2iYR+B7MWiVlw8xE3k2+6jJlOnMuWlpfzng1j0fuc
	 eAe80vnHzBUZ/9P+E1w7FDylcBKZ7LPAR6dUi4s5hvfw4GYmiln7dnDRhkWFTZuLNC
	 OAUF4DLx/eqv0HGxif/3d/pgrzjjX7T3fipHd75VA+jrtzIbVoN5ZCL9JUglMrUv//
	 znxygIRCg4iMtIS6pOSxN31eRvCq5hhNGISN9GHZk2Q+nZkcDEYGreaG3shaMFEoS7
	 b+FuRzJGQ+M5g==
Date: Tue, 22 Apr 2025 21:44:57 +0200
From: Ingo Molnar <mingo@kernel.org>
To: "Luck, Tony" <tony.luck@intel.com>
Cc: Xin Li <xin@zytor.com>, Sean Christopherson <seanjc@google.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"kvm@vger.kernel.org" <kvm@vger.kernel.org>,
	"linux-perf-users@vger.kernel.org" <linux-perf-users@vger.kernel.org>,
	"linux-hyperv@vger.kernel.org" <linux-hyperv@vger.kernel.org>,
	"virtualization@lists.linux.dev" <virtualization@lists.linux.dev>,
	"linux-pm@vger.kernel.org" <linux-pm@vger.kernel.org>,
	"linux-edac@vger.kernel.org" <linux-edac@vger.kernel.org>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"linux-acpi@vger.kernel.org" <linux-acpi@vger.kernel.org>,
	"linux-hwmon@vger.kernel.org" <linux-hwmon@vger.kernel.org>,
	"netdev@vger.kernel.org" <netdev@vger.kernel.org>,
	"platform-driver-x86@vger.kernel.org" <platform-driver-x86@vger.kernel.org>,
	"tglx@linutronix.de" <tglx@linutronix.de>,
	"mingo@redhat.com" <mingo@redhat.com>,
	"bp@alien8.de" <bp@alien8.de>,
	"dave.hansen@linux.intel.com" <dave.hansen@linux.intel.com>,
	"x86@kernel.org" <x86@kernel.org>, "hpa@zytor.com" <hpa@zytor.com>,
	"acme@kernel.org" <acme@kernel.org>,
	"jgross@suse.com" <jgross@suse.com>,
	"andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
	"peterz@infradead.org" <peterz@infradead.org>,
	"namhyung@kernel.org" <namhyung@kernel.org>,
	"mark.rutland@arm.com" <mark.rutland@arm.com>,
	"alexander.shishkin@linux.intel.com" <alexander.shishkin@linux.intel.com>,
	"jolsa@kernel.org" <jolsa@kernel.org>,
	"irogers@google.com" <irogers@google.com>,
	"Hunter, Adrian" <adrian.hunter@intel.com>,
	"kan.liang@linux.intel.com" <kan.liang@linux.intel.com>,
	"wei.liu@kernel.org" <wei.liu@kernel.org>,
	"ajay.kaher@broadcom.com" <ajay.kaher@broadcom.com>,
	"bcm-kernel-feedback-list@broadcom.com" <bcm-kernel-feedback-list@broadcom.com>,
	"pbonzini@redhat.com" <pbonzini@redhat.com>,
	"vkuznets@redhat.com" <vkuznets@redhat.com>,
	"luto@kernel.org" <luto@kernel.org>,
	"Ostrovsky, Boris" <boris.ostrovsky@oracle.com>,
	"kys@microsoft.com" <kys@microsoft.com>,
	"haiyangz@microsoft.com" <haiyangz@microsoft.com>,
	"Cui, Dexuan" <decui@microsoft.com>
Subject: Re: [RFC PATCH v2 00/34] MSR refactor with new MSR instructions
 support
Message-ID: <aAfxuby_0eZZTrj-@gmail.com>
References: <20250422082216.1954310-1-xin@zytor.com>
 <aAevpauKYWwObsB7@google.com>
 <cb4e24a0-fdb7-46d2-9b0e-200f5e3e4c96@zytor.com>
 <DS7PR11MB6077B4D80EB7020C4D3FCD52FCBB2@DS7PR11MB6077.namprd11.prod.outlook.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <DS7PR11MB6077B4D80EB7020C4D3FCD52FCBB2@DS7PR11MB6077.namprd11.prod.outlook.com>


* Luck, Tony <tony.luck@intel.com> wrote:

> > >> base-commit: f30a0c0d2b08b355c01392538de8fc872387cb2b
> > >
> > > This commit doesn't exist in Linus' tree or the tip tree, and the series doesn't
> > > apply cleanly on any of the "obvious" choices.  Reviewing a 34 patches series
> > > without being able to apply it is a wee bit difficult...
> > >
> >
> > $ git show f30a0c0d2b08b355c01392538de8fc872387cb2b
> > commit f30a0c0d2b08b355c01392538de8fc872387cb2b
> > Merge: 49b517e68cf7 e396dd85172c
> > Author: Ingo Molnar <mingo@kernel.org>
> > Date:   Tue Apr 22 08:37:32 2025 +0200
> >
> >      Merge branch into tip/master: 'x86/sev'
> >
> >       # New commits in x86/sev:
> >          e396dd85172c ("x86/sev: Register tpm-svsm platform device")
> >          93b7c6b3ce91 ("tpm: Add SNP SVSM vTPM driver")
> >          b2849b072366 ("svsm: Add header with SVSM_VTPM_CMD helpers")
> >          770de678bc28 ("x86/sev: Add SVSM vTPM probe/send_command
> > functions")
> >
> >      Signed-off-by: Ingo Molnar <mingo@kernel.org>
> >
> >
> > You probably need to git pull from the tip tree :-)
> 
> If possible, you should avoid basing a series on tip/master as it 
> gets recreated frequently by merging all the topic branches. The SHA1 
> is here today, gone tomorrow.

Correct, although for x86 patch submissions via email it's not wrong: 
what applies today will likely apply tomorrow as well, regardless of 
the SHA1 change. :-)

> If your changes only depend on one TIP topic branch, base on that and 
> mention in the cover letter (as well as the SHA1 supplied from git 
> format-patches --base=xxx).

Yeah, the main dependency this series has is tip:x86/msr I believe:

  git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git x86/msr

Which SHA1's should be stable at this point.

Thanks,

	Ingo



From xen-devel-bounces@lists.xenproject.org Tue Apr 22 19:46:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 19:46:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.963464.1354454 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7JZi-0007Hd-E4; Tue, 22 Apr 2025 19:46:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 963464.1354454; Tue, 22 Apr 2025 19: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 1u7JZi-0007HW-BV; Tue, 22 Apr 2025 19:46:34 +0000
Received: by outflank-mailman (input) for mailman id 963464;
 Tue, 22 Apr 2025 19:46: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=eQRL=XI=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u7JZh-0007Ft-9e
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 19:46:33 +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 7d17208b-1fb2-11f0-9eb0-5ba50f476ded;
 Tue, 22 Apr 2025 21:46:31 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by nyc.source.kernel.org (Postfix) with ESMTP id 7B253A49A9E;
 Tue, 22 Apr 2025 19:41:02 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 19EBBC4CEE9;
 Tue, 22 Apr 2025 19:46: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: 7d17208b-1fb2-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1745351190;
	bh=vrTaokyr+xNjHJZrSMRyxJ5IWiY7Lsrt5Dv/xD7n7Yo=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=lQ64FktvciHrh+pBL5dc1cCuAx0eVkF4irXIhe6AmwHKZ0x3VTzg1msWrG81/JDPM
	 tox3IRRXDDC90iTJ2DirERlTxCmSgZn45ONwXYaZO+LA1gZg0WQ+R/7CyOsElZf1nI
	 OmsPKLaTnOr7RWWD4syDl6tv6W3r8slXb5DLNvIu7aEuZmCJFISkS9Mn7mJb2GnO0R
	 ztFEHPbQBrRR41oeDhFVdE1qScUpv7SWF+FTkBrHm2yt+U/5uTMDclXVboNshkh+WL
	 lIQoJV/3tEGZhF2082oXheR1olaIiSz+CnS4bLXZRRlssB1bjeP7LkqlywMOyAslYn
	 tH+J861oOx6kg==
Date: Tue, 22 Apr 2025 12:46:28 -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: 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>, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
    Bertrand Marquis <bertrand.marquis@arm.com>, 
    Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH] xen: Use asm inline when available for alternatives
In-Reply-To: <20250422113957.1289290-1-andrew.cooper3@citrix.com>
Message-ID: <alpine.DEB.2.22.394.2504221244360.785180@ubuntu-linux-20-04-desktop>
References: <20250422113957.1289290-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-1665946697-1745351093=:785180"
Content-ID: <alpine.DEB.2.22.394.2504221245020.785180@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-1665946697-1745351093=:785180
Content-Type: text/plain; CHARSET=UTF-8
Content-Transfer-Encoding: 8BIT
Content-ID: <alpine.DEB.2.22.394.2504221245021.785180@ubuntu-linux-20-04-desktop>

On Tue, 22 Apr 2025, Andrew Cooper wrote:
> Compilers estimate the size of an asm() block for inlining purposes.
> 
> Constructs such as ALTERNATIVE appear large due to the metadata, depsite often
> only being a handful of instructions.  asm inline() overrides the estimation
> to identify the block as being small.
> 
> This has a substantial impact on inlining decisions, expected to be for the
> better given that the compiler has a more accurate picture to work with.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Hi Andrew,

If we are going to use asm_inline, please add a note to
docs/misra/C-language-toolchain.rst where we keep record of all the
language extensions we use.




> ---
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Roger Pau Monné <roger.pau@citrix.com>
> CC: Stefano Stabellini <sstabellini@kernel.org>
> CC: Julien Grall <julien@xen.org>
> CC: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
> CC: Bertrand Marquis <bertrand.marquis@arm.com>
> CC: Michal Orzel <michal.orzel@amd.com>
> ---
>  xen/Kconfig                               |  4 +++
>  xen/arch/arm/include/asm/alternative.h    |  4 +--
>  xen/arch/arm/include/asm/arm64/flushtlb.h |  4 +--
>  xen/arch/arm/include/asm/arm64/io.h       | 43 ++++++++++++++---------
>  xen/arch/arm/include/asm/cpuerrata.h      |  8 ++---
>  xen/arch/arm/include/asm/cpufeature.h     |  8 ++---
>  xen/arch/arm/include/asm/page.h           | 12 ++++---
>  xen/arch/arm/include/asm/processor.h      |  7 ++--
>  xen/arch/arm/include/asm/sysregs.h        | 10 +++---
>  xen/arch/arm/mmu/p2m.c                    |  3 +-
>  xen/arch/x86/include/asm/alternative.h    | 36 ++++++++++---------
>  xen/include/xen/compiler.h                | 14 ++++++++
>  12 files changed, 95 insertions(+), 58 deletions(-)
> 
> diff --git a/xen/Kconfig b/xen/Kconfig
> index ae1c401a981e..ab4ab42ae987 100644
> --- a/xen/Kconfig
> +++ b/xen/Kconfig
> @@ -29,6 +29,10 @@ config LD_IS_GNU
>  config LD_IS_LLVM
>  	def_bool $(success,$(LD) --version | head -n 1 | grep -q "^LLD")
>  
> +config CC_HAS_ASM_INLINE
> +	# GCC >= 9, Clang >= 11
> +	def_bool $(success,echo 'void foo(void) { asm inline (""); }' | $(CC) -x c - -c -o /dev/null)
> +
>  # Use -f{function,data}-sections compiler parameters
>  config CC_SPLIT_SECTIONS
>  	bool
> diff --git a/xen/arch/arm/include/asm/alternative.h b/xen/arch/arm/include/asm/alternative.h
> index 22477d9497a3..1563f03a0f5a 100644
> --- a/xen/arch/arm/include/asm/alternative.h
> +++ b/xen/arch/arm/include/asm/alternative.h
> @@ -209,9 +209,9 @@ alternative_endif
>  #endif  /*  __ASSEMBLY__  */
>  
>  /*
> - * Usage: asm(ALTERNATIVE(oldinstr, newinstr, feature));
> + * Usage: asm_inline (ALTERNATIVE(oldinstr, newinstr, feature));
>   *
> - * Usage: asm(ALTERNATIVE(oldinstr, newinstr, feature, CONFIG_FOO));
> + * Usage: asm_inline (ALTERNATIVE(oldinstr, newinstr, feature, CONFIG_FOO));
>   * N.B. If CONFIG_FOO is specified, but not selected, the whole block
>   *      will be omitted, including oldinstr.
>   */
> diff --git a/xen/arch/arm/include/asm/arm64/flushtlb.h b/xen/arch/arm/include/asm/arm64/flushtlb.h
> index 45642201d147..3b99c11b50d1 100644
> --- a/xen/arch/arm/include/asm/arm64/flushtlb.h
> +++ b/xen/arch/arm/include/asm/arm64/flushtlb.h
> @@ -31,7 +31,7 @@
>  #define TLB_HELPER(name, tlbop, sh)              \
>  static inline void name(void)                    \
>  {                                                \
> -    asm volatile(                                \
> +    asm_inline volatile (                        \
>          "dsb  "  # sh  "st;"                     \
>          "tlbi "  # tlbop  ";"                    \
>          ALTERNATIVE(                             \
> @@ -55,7 +55,7 @@ static inline void name(void)                    \
>  #define TLB_HELPER_VA(name, tlbop)               \
>  static inline void name(vaddr_t va)              \
>  {                                                \
> -    asm volatile(                                \
> +    asm_inline volatile (                        \
>          "tlbi "  # tlbop  ", %0;"                \
>          ALTERNATIVE(                             \
>              "nop; nop;",                         \
> diff --git a/xen/arch/arm/include/asm/arm64/io.h b/xen/arch/arm/include/asm/arm64/io.h
> index 7d5959877759..ac90b729c44d 100644
> --- a/xen/arch/arm/include/asm/arm64/io.h
> +++ b/xen/arch/arm/include/asm/arm64/io.h
> @@ -51,40 +51,51 @@ static inline void __raw_writeq(u64 val, volatile void __iomem *addr)
>  static inline u8 __raw_readb(const volatile void __iomem *addr)
>  {
>          u8 val;
> -        asm volatile(ALTERNATIVE("ldrb %w0, [%1]",
> -                                 "ldarb %w0, [%1]",
> -                                 ARM64_WORKAROUND_DEVICE_LOAD_ACQUIRE)
> -                     : "=r" (val) : "r" (addr));
> +
> +        asm_inline volatile (
> +            ALTERNATIVE("ldrb %w0, [%1]",
> +                        "ldarb %w0, [%1]",
> +                        ARM64_WORKAROUND_DEVICE_LOAD_ACQUIRE)
> +            : "=r" (val) : "r" (addr) );
> +
>          return val;
>  }
>  
>  static inline u16 __raw_readw(const volatile void __iomem *addr)
>  {
>          u16 val;
> -        asm volatile(ALTERNATIVE("ldrh %w0, [%1]",
> -                                 "ldarh %w0, [%1]",
> -                                 ARM64_WORKAROUND_DEVICE_LOAD_ACQUIRE)
> -                     : "=r" (val) : "r" (addr));
> +        asm_inline volatile (
> +            ALTERNATIVE("ldrh %w0, [%1]",
> +                        "ldarh %w0, [%1]",
> +                        ARM64_WORKAROUND_DEVICE_LOAD_ACQUIRE)
> +            : "=r" (val) : "r" (addr) );
> +
>          return val;
>  }
>  
>  static inline u32 __raw_readl(const volatile void __iomem *addr)
>  {
>          u32 val;
> -        asm volatile(ALTERNATIVE("ldr %w0, [%1]",
> -                                 "ldar %w0, [%1]",
> -                                 ARM64_WORKAROUND_DEVICE_LOAD_ACQUIRE)
> -                     : "=r" (val) : "r" (addr));
> +
> +        asm_inline volatile (
> +            ALTERNATIVE("ldr %w0, [%1]",
> +                        "ldar %w0, [%1]",
> +                        ARM64_WORKAROUND_DEVICE_LOAD_ACQUIRE)
> +            : "=r" (val) : "r" (addr) );
> +
>          return val;
>  }
>  
>  static inline u64 __raw_readq(const volatile void __iomem *addr)
>  {
>          u64 val;
> -        asm volatile(ALTERNATIVE("ldr %0, [%1]",
> -                                 "ldar %0, [%1]",
> -                                 ARM64_WORKAROUND_DEVICE_LOAD_ACQUIRE)
> -                     : "=r" (val) : "r" (addr));
> +
> +        asm_inline volatile (
> +            ALTERNATIVE("ldr %0, [%1]",
> +                        "ldar %0, [%1]",
> +                        ARM64_WORKAROUND_DEVICE_LOAD_ACQUIRE)
> +            : "=r" (val) : "r" (addr) );
> +
>          return val;
>  }
>  
> diff --git a/xen/arch/arm/include/asm/cpuerrata.h b/xen/arch/arm/include/asm/cpuerrata.h
> index 8d7e7b9375bd..1799a16d7e7f 100644
> --- a/xen/arch/arm/include/asm/cpuerrata.h
> +++ b/xen/arch/arm/include/asm/cpuerrata.h
> @@ -16,10 +16,10 @@ static inline bool check_workaround_##erratum(void)             \
>      {                                                           \
>          register_t ret;                                         \
>                                                                  \
> -        asm volatile (ALTERNATIVE("mov %0, #0",                 \
> -                                  "mov %0, #1",                 \
> -                                  feature)                      \
> -                      : "=r" (ret));                            \
> +        asm_inline volatile (                                   \
> +            ALTERNATIVE("mov %0, #0",                           \
> +                        "mov %0, #1", feature)                  \
> +            : "=r" (ret) );                                     \
>                                                                  \
>          return unlikely(ret);                                   \
>      }                                                           \
> diff --git a/xen/arch/arm/include/asm/cpufeature.h b/xen/arch/arm/include/asm/cpufeature.h
> index 50297e53d90e..b6df18801166 100644
> --- a/xen/arch/arm/include/asm/cpufeature.h
> +++ b/xen/arch/arm/include/asm/cpufeature.h
> @@ -102,10 +102,10 @@ static inline bool cpus_have_cap(unsigned int num)
>  #define cpus_have_const_cap(num) ({                 \
>          register_t __ret;                           \
>                                                      \
> -        asm volatile (ALTERNATIVE("mov %0, #0",     \
> -                                  "mov %0, #1",     \
> -                                  num)              \
> -                      : "=r" (__ret));              \
> +        asm_inline volatile (                       \
> +            ALTERNATIVE("mov %0, #0",               \
> +                        "mov %0, #1", num)          \
> +            : "=r" (__ret) );                       \
>                                                      \
>          unlikely(__ret);                            \
>          })
> diff --git a/xen/arch/arm/include/asm/page.h b/xen/arch/arm/include/asm/page.h
> index 69f817d1e68a..27bc96b9f401 100644
> --- a/xen/arch/arm/include/asm/page.h
> +++ b/xen/arch/arm/include/asm/page.h
> @@ -176,7 +176,8 @@ static inline int invalidate_dcache_va_range(const void *p, unsigned long size)
>      {
>          size -= dcache_line_bytes - ((uintptr_t)p & cacheline_mask);
>          p = (void *)((uintptr_t)p & ~cacheline_mask);
> -        asm volatile (__clean_and_invalidate_dcache_one(0) : : "r" (p));
> +        asm_inline volatile (
> +            __clean_and_invalidate_dcache_one(0) :: "r" (p) );
>          p += dcache_line_bytes;
>      }
>  
> @@ -185,7 +186,8 @@ static inline int invalidate_dcache_va_range(const void *p, unsigned long size)
>          asm volatile (__invalidate_dcache_one(0) : : "r" (p + idx));
>  
>      if ( size > 0 )
> -        asm volatile (__clean_and_invalidate_dcache_one(0) : : "r" (p + idx));
> +        asm_inline volatile (
> +            __clean_and_invalidate_dcache_one(0) :: "r" (p + idx) );
>  
>      dsb(sy);           /* So we know the flushes happen before continuing */
>  
> @@ -209,7 +211,7 @@ static inline int clean_dcache_va_range(const void *p, unsigned long size)
>      p = (void *)((uintptr_t)p & ~cacheline_mask);
>      for ( ; size >= dcache_line_bytes;
>              idx += dcache_line_bytes, size -= dcache_line_bytes )
> -        asm volatile (__clean_dcache_one(0) : : "r" (p + idx));
> +        asm_inline volatile ( __clean_dcache_one(0) : : "r" (p + idx) );
>      dsb(sy);           /* So we know the flushes happen before continuing */
>      /* ARM callers assume that dcache_* functions cannot fail. */
>      return 0;
> @@ -247,7 +249,7 @@ static inline int clean_and_invalidate_dcache_va_range
>      if ( sizeof(x) > MIN_CACHELINE_BYTES || sizeof(x) > alignof(x) )    \
>          clean_dcache_va_range(_p, sizeof(x));                           \
>      else                                                                \
> -        asm volatile (                                                  \
> +        asm_inline volatile (                                           \
>              "dsb sy;"   /* Finish all earlier writes */                 \
>              __clean_dcache_one(0)                                       \
>              "dsb sy;"   /* Finish flush before continuing */            \
> @@ -259,7 +261,7 @@ static inline int clean_and_invalidate_dcache_va_range
>      if ( sizeof(x) > MIN_CACHELINE_BYTES || sizeof(x) > alignof(x) )    \
>          clean_and_invalidate_dcache_va_range(_p, sizeof(x));            \
>      else                                                                \
> -        asm volatile (                                                  \
> +        asm_inline volatile (                                           \
>              "dsb sy;"   /* Finish all earlier writes */                 \
>              __clean_and_invalidate_dcache_one(0)                        \
>              "dsb sy;"   /* Finish flush before continuing */            \
> diff --git a/xen/arch/arm/include/asm/processor.h b/xen/arch/arm/include/asm/processor.h
> index 60b587db697f..9cbc4f911061 100644
> --- a/xen/arch/arm/include/asm/processor.h
> +++ b/xen/arch/arm/include/asm/processor.h
> @@ -607,9 +607,10 @@ register_t get_default_cptr_flags(void);
>  #define SYNCHRONIZE_SERROR(feat)                                  \
>      do {                                                          \
>          ASSERT(local_abort_is_enabled());                         \
> -        asm volatile(ALTERNATIVE("dsb sy; isb",                   \
> -                                 "nop; nop", feat)                \
> -                                 : : : "memory");                 \
> +        asm_inline volatile (                                     \
> +            ALTERNATIVE("dsb sy; isb",                            \
> +                        "nop; nop", feat)                         \
> +            ::: "memory" );                                       \
>      } while (0)
>  
>  /*
> diff --git a/xen/arch/arm/include/asm/sysregs.h b/xen/arch/arm/include/asm/sysregs.h
> index 61e30c9e517c..5c2d362be3d8 100644
> --- a/xen/arch/arm/include/asm/sysregs.h
> +++ b/xen/arch/arm/include/asm/sysregs.h
> @@ -22,11 +22,13 @@ static inline register_t read_sysreg_par(void)
>       * DMB SY before and after accessing it, as part of the workaround for the
>       * errata 1508412.
>       */
> -    asm volatile(ALTERNATIVE("nop", "dmb sy", ARM64_WORKAROUND_1508412,
> -                 CONFIG_ARM64_ERRATUM_1508412));
> +    asm_inline volatile (
> +        ALTERNATIVE("nop", "dmb sy", ARM64_WORKAROUND_1508412,
> +                    CONFIG_ARM64_ERRATUM_1508412) );
>      par_el1 = READ_SYSREG64(PAR_EL1);
> -    asm volatile(ALTERNATIVE("nop", "dmb sy", ARM64_WORKAROUND_1508412,
> -                 CONFIG_ARM64_ERRATUM_1508412));
> +    asm_inline volatile (
> +        ALTERNATIVE("nop", "dmb sy", ARM64_WORKAROUND_1508412,
> +                    CONFIG_ARM64_ERRATUM_1508412) );
>  
>      return par_el1;
>  }
> diff --git a/xen/arch/arm/mmu/p2m.c b/xen/arch/arm/mmu/p2m.c
> index 7642dbc7c55b..d96078f547d5 100644
> --- a/xen/arch/arm/mmu/p2m.c
> +++ b/xen/arch/arm/mmu/p2m.c
> @@ -228,7 +228,8 @@ void p2m_restore_state(struct vcpu *n)
>       * registers associated to EL1/EL0 translations regime have been
>       * synchronized.
>       */
> -    asm volatile(ALTERNATIVE("nop", "isb", ARM64_WORKAROUND_AT_SPECULATE));
> +    asm_inline volatile (
> +        ALTERNATIVE("nop", "isb", ARM64_WORKAROUND_AT_SPECULATE) );
>      WRITE_SYSREG64(p2m->vttbr, VTTBR_EL2);
>  
>      last_vcpu_ran = &p2m->last_vcpu_ran[smp_processor_id()];
> diff --git a/xen/arch/x86/include/asm/alternative.h b/xen/arch/x86/include/asm/alternative.h
> index 38472fb58e2d..4c8be51d0e23 100644
> --- a/xen/arch/x86/include/asm/alternative.h
> +++ b/xen/arch/x86/include/asm/alternative.h
> @@ -116,12 +116,13 @@ extern void alternative_branches(void);
>   * without volatile and memory clobber.
>   */
>  #define alternative(oldinstr, newinstr, feature)                        \
> -        asm volatile (ALTERNATIVE(oldinstr, newinstr, feature) : : : "memory")
> +    asm_inline volatile ( ALTERNATIVE(oldinstr, newinstr, feature)      \
> +                          ::: "memory" )
>  
>  #define alternative_2(oldinstr, newinstr1, feature1, newinstr2, feature2) \
> -	asm volatile (ALTERNATIVE_2(oldinstr, newinstr1, feature1,	\
> -				    newinstr2, feature2)		\
> -		      : : : "memory")
> +    asm_inline volatile ( ALTERNATIVE_2(oldinstr, newinstr1, feature1,  \
> +                                        newinstr2, feature2)            \
> +                          ::: "memory" )
>  
>  /*
>   * Alternative inline assembly with input.
> @@ -133,14 +134,14 @@ extern void alternative_branches(void);
>   * If you use variable sized constraints like "m" or "g" in the
>   * replacement make sure to pad to the worst case length.
>   */
> -#define alternative_input(oldinstr, newinstr, feature, input...)	\
> -	asm volatile (ALTERNATIVE(oldinstr, newinstr, feature)		\
> -		      : : input)
> +#define alternative_input(oldinstr, newinstr, feature, input...)        \
> +    asm_inline volatile ( ALTERNATIVE(oldinstr, newinstr, feature)      \
> +                          :: input )
>  
>  /* Like alternative_input, but with a single output argument */
> -#define alternative_io(oldinstr, newinstr, feature, output, input...)	\
> -	asm volatile (ALTERNATIVE(oldinstr, newinstr, feature)		\
> -		      : output : input)
> +#define alternative_io(oldinstr, newinstr, feature, output, input...)   \
> +    asm_inline volatile ( ALTERNATIVE(oldinstr, newinstr, feature)      \
> +                          : output : input )
>  
>  /*
>   * This is similar to alternative_io. But it has two features and
> @@ -150,11 +151,11 @@ extern void alternative_branches(void);
>   * Otherwise, if CPU has feature1, newinstr1 is used.
>   * Otherwise, oldinstr is used.
>   */
> -#define alternative_io_2(oldinstr, newinstr1, feature1, newinstr2,	\
> -			 feature2, output, input...)			\
> -	asm volatile(ALTERNATIVE_2(oldinstr, newinstr1, feature1,	\
> -				   newinstr2, feature2)			\
> -		     : output : input)
> +#define alternative_io_2(oldinstr, newinstr1, feature1, newinstr2,      \
> +                         feature2, output, input...)                    \
> +    asm_inline volatile ( ALTERNATIVE_2(oldinstr, newinstr1, feature1,  \
> +                                        newinstr2, feature2)            \
> +                          : output : input )
>  
>  /* Use this macro(s) if you need more than one output parameter. */
>  #define ASM_OUTPUT2(a...) a
> @@ -234,8 +235,9 @@ extern void alternative_branches(void);
>      rettype ret_;                                                  \
>      register unsigned long r10_ asm("r10");                        \
>      register unsigned long r11_ asm("r11");                        \
> -    asm volatile (ALTERNATIVE("call *%c[addr](%%rip)", "call .",   \
> -                              X86_FEATURE_ALWAYS)                  \
> +    asm_inline volatile (                                          \
> +        ALTERNATIVE("call *%c[addr](%%rip)", "call .",             \
> +                    X86_FEATURE_ALWAYS)                            \
>                    : ALT_CALL ## n ## _OUT, "=a" (ret_),            \
>                      "=r" (r10_), "=r" (r11_) ASM_CALL_CONSTRAINT   \
>                    : [addr] "i" (&(func)), "g" (func)               \
> diff --git a/xen/include/xen/compiler.h b/xen/include/xen/compiler.h
> index c68fab189154..d9b133016bb6 100644
> --- a/xen/include/xen/compiler.h
> +++ b/xen/include/xen/compiler.h
> @@ -53,6 +53,20 @@
>  #define unreachable() __builtin_unreachable()
>  #endif
>  
> +/*
> + * Compilers estimate the size of an asm() block for inlining purposes.
> + * Constructs such as ALTERNATIVE appear large due to the metadata, depsite
> + * often only being a handful of instructions.  asm inline() overrides the
> + * estimation to identify the block as being small.
> + *
> + * Note: __inline is needed to avoid getting caught up in INIT_SECTIONS_ONLY.
> + */
> +#if CONFIG_CC_HAS_ASM_INLINE
> +# define asm_inline asm __inline
> +#else
> +# define asm_inline asm
> +#endif
> +
>  /*
>   * Add the pseudo keyword 'fallthrough' so case statement blocks
>   * must end with any of these keywords:
> -- 
> 2.39.5
> 
--8323329-1665946697-1745351093=:785180--


From xen-devel-bounces@lists.xenproject.org Tue Apr 22 19:52:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 19:52:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.963480.1354465 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7JfH-0001tX-41; Tue, 22 Apr 2025 19:52:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 963480.1354465; Tue, 22 Apr 2025 19:52: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 1u7JfH-0001tQ-1T; Tue, 22 Apr 2025 19:52:19 +0000
Received: by outflank-mailman (input) for mailman id 963480;
 Tue, 22 Apr 2025 19:52: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=dB82=XI=flex--seanjc.bounces.google.com=3OvMHaAYKCYc3plyunrzzrwp.nzx8py-op6pwwt343.8py02zupn4.z2r@srs-se1.protection.inumbo.net>)
 id 1u7JfF-0001tK-LM
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 19:52:17 +0000
Received: from mail-pj1-x104a.google.com (mail-pj1-x104a.google.com
 [2607:f8b0:4864:20::104a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2b3ea38e-1fb3-11f0-9eb0-5ba50f476ded;
 Tue, 22 Apr 2025 21:51:24 +0200 (CEST)
Received: by mail-pj1-x104a.google.com with SMTP id
 98e67ed59e1d1-30364fc706fso4885189a91.3
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 12:51: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: 2b3ea38e-1fb3-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20230601; t=1745351483; x=1745956283; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:from:to:cc:subject:date:message-id:reply-to;
        bh=mH6UGx1+cJUt0+vdtDYj5GNgwh2+pJEonMo7kApLLOI=;
        b=p9w18MM12KU7PuLQqhXeFlaZM2pAHPeaxeoIdGJOtaHmqyQ2p0ztwJ6rmw+s1I7nG2
         zuSpvjpyfgIch+6NXD7xqUrvbcZTQcoYsfMGz59K2B/4m3ch8znvBpywjLmayFd9UMMw
         DD8kECf1nRme3mEBb4mXALq8AjjPasBn6cw0i8YclxsLjYqlOGBS1MtkfslN+om+eYcN
         k+8ixyZgSNeatJB7nRfewlv2Qm9tSdmCTm88Z0+6EoDma8qNV3rw4nktwJBa7+K2vhfa
         ewaOwT+0+tk7K78Yy7eTtPaZRjJMuCn2dfzLo4TuQHOmiIajI8Ax7bCV/d01mB9XhmDM
         3ddg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745351483; x=1745956283;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=mH6UGx1+cJUt0+vdtDYj5GNgwh2+pJEonMo7kApLLOI=;
        b=pytysf0GICjl+B653n2bSOBQp06ZLo+H7urj2nQo+BwFO4Iqz4LxtC5C4CVfhRB5C8
         LQ8bO2Usib7Vw9Tm3zYVXbtaSdtTSS7CQTkk9mfBUE4dokmmGvCA0cevYSl5htUEZeux
         O0sbQrjCFyvtiC1o8Wb/Zx2xRLVRN6Xpc7Cg3VWZxWlvvS0/g1iVeWKc4fldbIo2f1KM
         MnyGXQkhOHoZT/2bxMNmduk/iGV3krVNmotuC4kBEUmaN3WrBg/ih3Yt9mthPjpWWj3i
         nq3wSewJ+kIenNyWwRYcsRCSLhyi7IWlqws2QDcWk+dEMKHfN65HvHs+zAAA6bikCsfb
         toxA==
X-Forwarded-Encrypted: i=1; AJvYcCVojOkZm+LcWtOscTOIxKufDaum+QCGTkpaMqaYVI8I25dauSUQavgvhqMKMjFjQeDzIOhrwYCVtxc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwWF6FKqykMqcz1ieJZSBkUYx3rcQuMTXmFDxe9vm96hqKv1J6s
	8N65Gfxbz+fSnvj1PWqrqA6enjmU5GYG80VeaBqkT6313pkEYa4AP/8DJq8tGUeJIxIeMvdzhWQ
	HWg==
X-Google-Smtp-Source: AGHT+IGkV0RcloCvNwgssDSlkXsqRo5n8/rzSZ0U6QUVt02K3Nbge8IReH8D+uHUWVsCRD28uFY//07FCPo=
X-Received: from pjbsr7.prod.google.com ([2002:a17:90b:4e87:b0:301:2679:9d9])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a17:90b:4b90:b0:2ee:bc7b:9237
 with SMTP id 98e67ed59e1d1-3087bb9ede2mr21004314a91.27.1745351482796; Tue, 22
 Apr 2025 12:51:22 -0700 (PDT)
Date: Tue, 22 Apr 2025 12:51:21 -0700
In-Reply-To: <aAfxuby_0eZZTrj-@gmail.com>
Mime-Version: 1.0
References: <20250422082216.1954310-1-xin@zytor.com> <aAevpauKYWwObsB7@google.com>
 <cb4e24a0-fdb7-46d2-9b0e-200f5e3e4c96@zytor.com> <DS7PR11MB6077B4D80EB7020C4D3FCD52FCBB2@DS7PR11MB6077.namprd11.prod.outlook.com>
 <aAfxuby_0eZZTrj-@gmail.com>
Message-ID: <aAfzOWnYzcPjZDEI@google.com>
Subject: Re: [RFC PATCH v2 00/34] MSR refactor with new MSR instructions support
From: Sean Christopherson <seanjc@google.com>
To: Ingo Molnar <mingo@kernel.org>
Cc: Tony Luck <tony.luck@intel.com>, Xin Li <xin@zytor.com>, 
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>, "kvm@vger.kernel.org" <kvm@vger.kernel.org>, 
	"linux-perf-users@vger.kernel.org" <linux-perf-users@vger.kernel.org>, 
	"linux-hyperv@vger.kernel.org" <linux-hyperv@vger.kernel.org>, 
	"virtualization@lists.linux.dev" <virtualization@lists.linux.dev>, 
	"linux-pm@vger.kernel.org" <linux-pm@vger.kernel.org>, 
	"linux-edac@vger.kernel.org" <linux-edac@vger.kernel.org>, 
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
	"linux-acpi@vger.kernel.org" <linux-acpi@vger.kernel.org>, 
	"linux-hwmon@vger.kernel.org" <linux-hwmon@vger.kernel.org>, 
	"netdev@vger.kernel.org" <netdev@vger.kernel.org>, 
	"platform-driver-x86@vger.kernel.org" <platform-driver-x86@vger.kernel.org>, 
	"tglx@linutronix.de" <tglx@linutronix.de>, "mingo@redhat.com" <mingo@redhat.com>, "bp@alien8.de" <bp@alien8.de>, 
	"dave.hansen@linux.intel.com" <dave.hansen@linux.intel.com>, "x86@kernel.org" <x86@kernel.org>, 
	"hpa@zytor.com" <hpa@zytor.com>, "acme@kernel.org" <acme@kernel.org>, "jgross@suse.com" <jgross@suse.com>, 
	"andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>, "peterz@infradead.org" <peterz@infradead.org>, 
	"namhyung@kernel.org" <namhyung@kernel.org>, "mark.rutland@arm.com" <mark.rutland@arm.com>, 
	"alexander.shishkin@linux.intel.com" <alexander.shishkin@linux.intel.com>, "jolsa@kernel.org" <jolsa@kernel.org>, 
	"irogers@google.com" <irogers@google.com>, Adrian Hunter <adrian.hunter@intel.com>, 
	"kan.liang@linux.intel.com" <kan.liang@linux.intel.com>, "wei.liu@kernel.org" <wei.liu@kernel.org>, 
	"ajay.kaher@broadcom.com" <ajay.kaher@broadcom.com>, 
	"bcm-kernel-feedback-list@broadcom.com" <bcm-kernel-feedback-list@broadcom.com>, 
	"pbonzini@redhat.com" <pbonzini@redhat.com>, "vkuznets@redhat.com" <vkuznets@redhat.com>, 
	"luto@kernel.org" <luto@kernel.org>, Boris Ostrovsky <boris.ostrovsky@oracle.com>, 
	"kys@microsoft.com" <kys@microsoft.com>, "haiyangz@microsoft.com" <haiyangz@microsoft.com>, 
	Dexuan Cui <decui@microsoft.com>
Content-Type: text/plain; charset="us-ascii"

On Tue, Apr 22, 2025, Ingo Molnar wrote:
> 
> * Luck, Tony <tony.luck@intel.com> wrote:
> 
> > > >> base-commit: f30a0c0d2b08b355c01392538de8fc872387cb2b
> > > >
> > > > This commit doesn't exist in Linus' tree or the tip tree, and the series doesn't
> > > > apply cleanly on any of the "obvious" choices.  Reviewing a 34 patches series
> > > > without being able to apply it is a wee bit difficult...
> > > >
> > >
> > > $ git show f30a0c0d2b08b355c01392538de8fc872387cb2b
> > > commit f30a0c0d2b08b355c01392538de8fc872387cb2b
> > > Merge: 49b517e68cf7 e396dd85172c
> > > Author: Ingo Molnar <mingo@kernel.org>
> > > Date:   Tue Apr 22 08:37:32 2025 +0200
> > >
> > >      Merge branch into tip/master: 'x86/sev'
> > >
> > >       # New commits in x86/sev:
> > >          e396dd85172c ("x86/sev: Register tpm-svsm platform device")
> > >          93b7c6b3ce91 ("tpm: Add SNP SVSM vTPM driver")
> > >          b2849b072366 ("svsm: Add header with SVSM_VTPM_CMD helpers")
> > >          770de678bc28 ("x86/sev: Add SVSM vTPM probe/send_command
> > > functions")
> > >
> > >      Signed-off-by: Ingo Molnar <mingo@kernel.org>
> > >
> > >
> > > You probably need to git pull from the tip tree :-)
> > 
> > If possible, you should avoid basing a series on tip/master as it 
> > gets recreated frequently by merging all the topic branches. The SHA1 
> > is here today, gone tomorrow.
> 
> Correct, although for x86 patch submissions via email it's not wrong: 
> what applies today will likely apply tomorrow as well, regardless of 
> the SHA1 change. :-)

Yeah, but as Tony pointed out, when using base commit that may be ephemeral, then
the cover letter needs to call out the tree+branch.  This series applies on the
current tip/master, but there was nothing to clue me into that fact.


From xen-devel-bounces@lists.xenproject.org Tue Apr 22 19:53:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 19:53:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.963491.1354474 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7JgM-0002Qb-E3; Tue, 22 Apr 2025 19:53:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 963491.1354474; Tue, 22 Apr 2025 19:53: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 1u7JgM-0002QU-BF; Tue, 22 Apr 2025 19:53:26 +0000
Received: by outflank-mailman (input) for mailman id 963491;
 Tue, 22 Apr 2025 19:53: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=9r0M=XI=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u7JgK-0002QN-P8
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 19:53:24 +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 72e1bb6d-1fb3-11f0-9eb0-5ba50f476ded;
 Tue, 22 Apr 2025 21:53:23 +0200 (CEST)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-39c1ef4ae3aso154372f8f.1
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 12:53:23 -0700 (PDT)
Received: from [192.168.86.29] ([83.104.178.215])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39efa4a4d8asm16527011f8f.93.2025.04.22.12.53.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 22 Apr 2025 12:53:22 -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: 72e1bb6d-1fb3-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745351603; x=1745956403; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=osSNIwr+LZ7tjllRgzOWHZHM+v+YXHs30BXQZd4MfD8=;
        b=sZWFU7gE8R5ndG5eGlUh0X0F+145QVf//bYyL9jWKzgBp9C6ZcuG4OymnxHWc/aDxA
         t83u7CmwPIxeHxiXofo5+9786+wVFcQ94ntYSHplXX9I8wItlYYuh6o0vH8XC6jcizwO
         UXKsYUrfDd2inPPw8n2w7h8kT2YkCUTu3lgOA=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745351603; x=1745956403;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=osSNIwr+LZ7tjllRgzOWHZHM+v+YXHs30BXQZd4MfD8=;
        b=doLPLXJkbP3azXZFK960jgHh9vIjwFE63o9vJxMW65l5pSPTCmTEKrzGKIGQy1uNTB
         ljBMEDHXtCSs0COF4NlieWqbRqbd6WzKIay83AZE91IwB7kGh1yzLbtozuBnsK7tXnNf
         aR2GMveDel90MAHjRQ/uReHrJV6hfnnsFcfuFUfbecZ7H/ntEuqNMtzEzJttGKlwwmLM
         jUK0YslpZYBeqIJOzvD8NWjEeGtfg4/SmgbH53VgU39GDgWPIuMztTYc4Fya/yF97dhJ
         NmJc4MgyNR6mRs3LUxYY3DA00umSyUG9AiMctM1O4c9Vl2Te4SpzQVDPTMcIi1SsaB3p
         3VMg==
X-Gm-Message-State: AOJu0YzXQeLuvIvKXYT7xPRHVrr3pNeSAMVusCRlXCHDrps0eFzKsPq/
	+PpjQyyCTYbatb93ymWpb0gMtOE4Y0hg2C6WsL6lDp56HrZ/mS97tEbIV7lXOpA=
X-Gm-Gg: ASbGncs51heyqwn215jxUnQYquYdLqDdHRgsZwtVc5sbyto6mHnqLWFGqqyrsKSIpN7
	u9rwiyMMitjb/RrfXxdKREYC8Qk3PAuJkM5g/ACEy3vlL4g2uvdkdPX7vqAotF1HSOb+ZntZO4E
	xvMiVgEqpX58WSM4Nzk7pojj1YNvauv9NnHruT/VlPW1F00mXpfoj6jBWquKbe5AOVGpve781jO
	djkeq31dcQfpeo6s8gb/EEXonEXTNxOdEqICgisBSI4CbSO0OJw+HB7qMUYRXcUACJXVg2e2yVg
	Ws4JBZqn1Z0jWifpv33nsTPCM6Iw4+vACmLSx/z+tMMGRbva+OeFug==
X-Google-Smtp-Source: AGHT+IGnsQVxvoNlTsruL8LcQD9H3lDtH7yW2PR7xTb2nzzLPcFrNgkXcqfh6J93y4Y7jK5KF2bEbg==
X-Received: by 2002:a5d:47cf:0:b0:390:ef45:1a36 with SMTP id ffacd0b85a97d-3a067247839mr205768f8f.19.1745351603218;
        Tue, 22 Apr 2025 12:53:23 -0700 (PDT)
Message-ID: <0570b0ed-607c-49fa-b82e-29ffac60f873@citrix.com>
Date: Tue, 22 Apr 2025 20:53:21 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen: Use asm inline when available for alternatives
To: Stefano Stabellini <sstabellini@kernel.org>
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>, Julien Grall <julien@xen.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>
References: <20250422113957.1289290-1-andrew.cooper3@citrix.com>
 <alpine.DEB.2.22.394.2504221244360.785180@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.2504221244360.785180@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 22/04/2025 8:46 pm, Stefano Stabellini wrote:
> On Tue, 22 Apr 2025, Andrew Cooper wrote:
>> Compilers estimate the size of an asm() block for inlining purposes.
>>
>> Constructs such as ALTERNATIVE appear large due to the metadata, depsite often
>> only being a handful of instructions.  asm inline() overrides the estimation
>> to identify the block as being small.
>>
>> This has a substantial impact on inlining decisions, expected to be for the
>> better given that the compiler has a more accurate picture to work with.
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Hi Andrew,
>
> If we are going to use asm_inline, please add a note to
> docs/misra/C-language-toolchain.rst where we keep record of all the
> language extensions we use.

It's just asm(), and that's already discussed.

I'm not sure what else you think is warranted.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Apr 22 19:59:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 19:59:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.963503.1354485 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7Jlh-00033D-18; Tue, 22 Apr 2025 19:58:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 963503.1354485; Tue, 22 Apr 2025 19: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 1u7Jlg-000336-Tk; Tue, 22 Apr 2025 19:58:56 +0000
Received: by outflank-mailman (input) for mailman id 963503;
 Tue, 22 Apr 2025 19:58: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=eQRL=XI=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u7Jlg-000330-8T
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 19:58:56 +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 3720d91e-1fb4-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 21:58:53 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by nyc.source.kernel.org (Postfix) with ESMTP id 3AF46A49BD1;
 Tue, 22 Apr 2025 19:53:24 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id C5B07C4CEE9;
 Tue, 22 Apr 2025 19:58: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: 3720d91e-1fb4-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1745351932;
	bh=12FdkuiGG235ZnTqyb+9SKm5fYfj6QyV/r20vHxpaTQ=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=OTqoN94vck/06SO+1mvs2ixeyoy29otQP+2gtW9RZWPdzqNnJmSWorpHnXz+ty76o
	 1cHMs1E8XvsRlLPBoEzkxT2VKkCBBG4Ia1ktMEKo8+I9doQoCdRYCBW3IaxcSS+JRR
	 alLRpLdX0qu24JBzGfws+vXlNo+V2qZnNJmZJ04UM37N6EG6kINJc+31Gm70IqSqXB
	 6KWnI36kJbzvxd/uIUKI0VTOl2sleN7ZQV3+jDL3tA2mHW2gUAae5FFMeGfecH8nbl
	 7E6QXj4fDyMcRlrOa9YtFDbe4ENbvym8rkyEKU/qc4eXOkaT7+kVffmo4t9dcq3utX
	 U8h0qFesr+BMQ==
Date: Tue, 22 Apr 2025 12:58:50 -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>, 
    Jan Beulich <JBeulich@suse.com>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Julien Grall <julien@xen.org>, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
    Bertrand Marquis <bertrand.marquis@arm.com>, 
    Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH] xen: Use asm inline when available for alternatives
In-Reply-To: <0570b0ed-607c-49fa-b82e-29ffac60f873@citrix.com>
Message-ID: <alpine.DEB.2.22.394.2504221256080.785180@ubuntu-linux-20-04-desktop>
References: <20250422113957.1289290-1-andrew.cooper3@citrix.com> <alpine.DEB.2.22.394.2504221244360.785180@ubuntu-linux-20-04-desktop> <0570b0ed-607c-49fa-b82e-29ffac60f873@citrix.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Tue, 22 Apr 2025, Andrew Cooper wrote:
> On 22/04/2025 8:46 pm, Stefano Stabellini wrote:
> > On Tue, 22 Apr 2025, Andrew Cooper wrote:
> >> Compilers estimate the size of an asm() block for inlining purposes.
> >>
> >> Constructs such as ALTERNATIVE appear large due to the metadata, depsite often
> >> only being a handful of instructions.  asm inline() overrides the estimation
> >> to identify the block as being small.
> >>
> >> This has a substantial impact on inlining decisions, expected to be for the
> >> better given that the compiler has a more accurate picture to work with.
> >>
> >> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> > Hi Andrew,
> >
> > If we are going to use asm_inline, please add a note to
> > docs/misra/C-language-toolchain.rst where we keep record of all the
> > language extensions we use.
> 
> It's just asm(), and that's already discussed.
> 
> I'm not sure what else you think is warranted.


If it is just asm() then there is nothing to do. We only need to
document extensions to the language, nothing else. Many of them are
already documented under docs/misra/C-language-toolchain.rst (see for
instance asm and __asm__).

I see the critical part of the patch for this question is:

> +#if CONFIG_CC_HAS_ASM_INLINE
> +# define asm_inline asm __inline
> +#else
> +# define asm_inline asm
> +#endif

it looks like __inline is an extension ?


From xen-devel-bounces@lists.xenproject.org Tue Apr 22 20:01:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 20:01:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.963514.1354495 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7JoA-0004eo-By; Tue, 22 Apr 2025 20:01:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 963514.1354495; Tue, 22 Apr 2025 20: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 1u7JoA-0004eh-9K; Tue, 22 Apr 2025 20:01:30 +0000
Received: by outflank-mailman (input) for mailman id 963514;
 Tue, 22 Apr 2025 20: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=Pc5Z=XI=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1u7Jo9-0004eZ-1A
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 20:01:29 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 89099c37-1fb4-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 22:01:10 +0200 (CEST)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id 592DA4EE3BFD;
 Tue, 22 Apr 2025 22:01:09 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 89099c37-1fb4-11f0-9ffb-bf95429c2676
Authentication-Results: bugseng.com; arc=none smtp.remote-ip=162.55.131.47
ARC-Seal: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; cv=none; t=1745352069;
	b=KEY4VHgwMLcp4QYqo6h79iYS5pAsuAn2Q7AAGgRfuLJz2R2xVaxgtQJ2s43ZhZVPwfri
	 NYUajcxReU8lsD5lnjq3ovxp+Ez9hgaJU31hSQFn7TtqhKIp+MOoV2mNDdI0pRoja5eVv
	 WwgdsDmKr98lWF7JXWn8Yi3GiADRPpR5cDRolM2Cu4//GG0kg+QU3LSPpYkgeqiP0oUBV
	 46nf07WdWrEIZQJxyy7QjvU5qfHFAuSA+m+rUyiFqq0lq/ltZcUoAb/Teqj59JD8ZU7KW
	 keTrJfj0L/YzqSCWblJp/EKFlV2a9ta4uHN3liNvn5Cpi+2+rYj0ZI1Ha04wP++0XyS/D
	 M94/W7MKpKPutbp/i5GWw8/0GPegK6CBrkt5/cevrYaF+xCV3fCSwGaoF4uUXStDaV3LG
	 /cE6VJ2gKEWy3NqB/3J7QQkcOWKsbSR4O+7q0gwpac5pXG7B9CSAzGUn3uqsNH00watfl
	 K1Q31NcV+sxJsWACkc5cOxew1cd31+iAmuIYsQGG4jWS8OnKi30DG+2Lbn/B2xv2ak/pp
	 /I7sPX+GZRRU5Fzh55dltyZDDESS3uilIPSf1pgFBiskPnkrxaRMci504W59+StOqWd9B
	 EuyGqC1kg92dnEmfeVguo3I2UpaJI2UO9eLOdseACiraiS/cUGjZlqUu+yE/3Og=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1745352069;
	h=DKIM-Signature:MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:
	 References:Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=Ezr7LE1ZKebIk4F/uzS1ggyeJ30f3cfbqylG5CaobAM=;
	b=hncIkLGXfO3pBvQguQKUedYaJ1NhfOfVsOJLN5exTW1AOYSerD9giT87dRRBmaE8Hwbb
	 nUF6QQwFNMVx6D15bYCVLuaNK98/IxrWaZbc63qEqSV9jPf6gDObHx7v+wamDEX4ftqWl
	 kGjbTGQOucj3Uf7nDayNUeS0QoU7AMBDQxdZzG8sNgb3dID83AC1fjl+Vjy2Chj4oDI3n
	 EdMGIeWUgwAE1q+NkiTrhtL235CD2z+E1eWBGa00bQApfBTWr4A/tScXIUziEkXUgfGmJ
	 p/6Fr1ylK+hFdMc5PGGeB63yE6s++sv2+mGtts2SNqSWD73v0r5AKM+SKm0V/SDgIa0Qo
	 U1MBQMVtROb8wYZ8KzCMcQ35ngfyjEf+T0H4KDczYgUCDxLWFbSujB4h8Yw+rjRqcLI+5
	 gyqnFxMh/udFY+t5ClBOqpVLarsIYmDBEiXEBJlAlgBTKuoF1qC+ceDPfArpukBUme4wK
	 2DGSjPeIBOGIIKBBkPwVylDKQU3pOyV8Rgmj55UI83v1m6u1r0f9TwXRSb1qZFn5hz/cL
	 VhhCUm9u8o1qX4U7jAeK4KoQJZ5R4TlZoYnH8wEC/Ri8s+BE7A9jGdRy5YLd0nFnVJ882
	 QQZeRYZgxhWoWaXrhkKgn7kmYRwG+dioaMTXgUQu4sUCMrLxUuuqcEqh6iy/A2U=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1745352069; bh=62GCsUr3yZ8xhHobo1L8VEWXhdW5YIn5+eLe3c1D2hk=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=sJr4ptNyqMD/TwVXWps2l4oSjdkYEQCwdFFfhttZpYW/z+a5nVAt9lAANjuvjO4xv
	 rINqFPdeeRBEkIFrrKqBnLZH/CzqouYlbmBco84lH/MrzIVWZFyvA6jZ+ASVZqKiBZ
	 +IeCmDayiMGEE+WQ7RK8rgNVLzGTCRh2mhsLMgRJ5s+Q9LrEyg6SppxXHFRgBrvwTQ
	 rOvu/CyL+uZN4ViJwpDKcA8kb6fjFXzooKIvNd/sgjjIISdQ/sn7JfvOR6utM40BVI
	 fJCYc3VJqf5NQ7kFyzhoyPjQ+0zmb1PKIpAMiFn/9mztZLK7J2k7s/JrC+xZKJcj3V
	 TEruel0S7UuQw==
MIME-Version: 1.0
Date: Tue, 22 Apr 2025 22:01:09 +0200
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Xen-devel
 <xen-devel@lists.xenproject.org>, Jan Beulich <JBeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Julien Grall
 <julien@xen.org>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Bertrand
 Marquis <bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH] xen: Use asm inline when available for alternatives
In-Reply-To: <alpine.DEB.2.22.394.2504221256080.785180@ubuntu-linux-20-04-desktop>
References: <20250422113957.1289290-1-andrew.cooper3@citrix.com>
 <alpine.DEB.2.22.394.2504221244360.785180@ubuntu-linux-20-04-desktop>
 <0570b0ed-607c-49fa-b82e-29ffac60f873@citrix.com>
 <alpine.DEB.2.22.394.2504221256080.785180@ubuntu-linux-20-04-desktop>
Message-ID: <f315f38e20432bc9f62ae2d4b04582a4@bugseng.com>
X-Sender: nicola.vetrini@bugseng.com
Organization: BUGSENG s.r.l.
Content-Type: text/plain; charset=US-ASCII;
 format=flowed
Content-Transfer-Encoding: 7bit

On 2025-04-22 21:58, Stefano Stabellini wrote:
> On Tue, 22 Apr 2025, Andrew Cooper wrote:
>> On 22/04/2025 8:46 pm, Stefano Stabellini wrote:
>> > On Tue, 22 Apr 2025, Andrew Cooper wrote:
>> >> Compilers estimate the size of an asm() block for inlining purposes.
>> >>
>> >> Constructs such as ALTERNATIVE appear large due to the metadata, depsite often
>> >> only being a handful of instructions.  asm inline() overrides the estimation
>> >> to identify the block as being small.
>> >>
>> >> This has a substantial impact on inlining decisions, expected to be for the
>> >> better given that the compiler has a more accurate picture to work with.
>> >>
>> >> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>> > Hi Andrew,
>> >
>> > If we are going to use asm_inline, please add a note to
>> > docs/misra/C-language-toolchain.rst where we keep record of all the
>> > language extensions we use.
>> 
>> It's just asm(), and that's already discussed.
>> 
>> I'm not sure what else you think is warranted.
> 
> 
> If it is just asm() then there is nothing to do. We only need to
> document extensions to the language, nothing else. Many of them are
> already documented under docs/misra/C-language-toolchain.rst (see for
> instance asm and __asm__).
> 
> I see the critical part of the patch for this question is:
> 
>> +#if CONFIG_CC_HAS_ASM_INLINE
>> +# define asm_inline asm __inline
>> +#else
>> +# define asm_inline asm
>> +#endif
> 
> it looks like __inline is an extension ?

I see. It was added to the tool configuration, but not there in the rst 
(__inline__ as well), hence why there are no CI failures.

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


From xen-devel-bounces@lists.xenproject.org Tue Apr 22 20:02:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 20:02:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.963527.1354505 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7JpW-0005CO-Lp; Tue, 22 Apr 2025 20:02:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 963527.1354505; Tue, 22 Apr 2025 20:02:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7JpW-0005CH-Ix; Tue, 22 Apr 2025 20:02:54 +0000
Received: by outflank-mailman (input) for mailman id 963527;
 Tue, 22 Apr 2025 20:02: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=eQRL=XI=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u7JpV-0005A4-GD
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 20:02:53 +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 c58ae1e4-1fb4-11f0-9eb0-5ba50f476ded;
 Tue, 22 Apr 2025 22:02:52 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by nyc.source.kernel.org (Postfix) with ESMTP id 7606BA49D0D;
 Tue, 22 Apr 2025 19:57:23 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 004B7C4CEE9;
 Tue, 22 Apr 2025 20:02: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: c58ae1e4-1fb4-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1745352171;
	bh=cu24jOGkNDFbCvPg8/QFPz9ipzAtDZKuFe9GQz98ZdQ=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=Yds8uBl+iTezUoy/p7ITxkgOfleBTXBHI03Fviw9tIVi/qtb1v6bpM+NnSqOPU+FM
	 ftZAZa/Sxr2k6KVPzlAWf3Uxdz0jwcJxctn/EkCN+xDBiulPvyarwHuK6k9Ob/iuSr
	 R3g6yZH+Fyhnrq9s4fR2H2Imo6YcDz1fJue0my31/9uA3VC6kEPmK6/NyVAvEM8EnX
	 aiyJgTNBrcPvoj/AJZqaXg+4qLz5aaq272M3STB/uHZLKxQ7E99mJjfazlGHrjPkIu
	 nWi2GCCvN5JjbUKk6bXoxDhYMAjfCMWtgXnechuinS2IktsjsOVRrBrZmS6RDg9Ct5
	 +/u+9CcWEuHOg==
Date: Tue, 22 Apr 2025 13:02:49 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
cc: Stefano Stabellini <sstabellini@kernel.org>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    Xen-devel <xen-devel@lists.xenproject.org>, 
    Jan Beulich <JBeulich@suse.com>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Julien Grall <julien@xen.org>, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
    Bertrand Marquis <bertrand.marquis@arm.com>, 
    Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH] xen: Use asm inline when available for alternatives
In-Reply-To: <f315f38e20432bc9f62ae2d4b04582a4@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2504221302120.785180@ubuntu-linux-20-04-desktop>
References: <20250422113957.1289290-1-andrew.cooper3@citrix.com> <alpine.DEB.2.22.394.2504221244360.785180@ubuntu-linux-20-04-desktop> <0570b0ed-607c-49fa-b82e-29ffac60f873@citrix.com> <alpine.DEB.2.22.394.2504221256080.785180@ubuntu-linux-20-04-desktop>
 <f315f38e20432bc9f62ae2d4b04582a4@bugseng.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Tue, 22 Apr 2025, Nicola Vetrini wrote:
> On 2025-04-22 21:58, Stefano Stabellini wrote:
> > On Tue, 22 Apr 2025, Andrew Cooper wrote:
> > > On 22/04/2025 8:46 pm, Stefano Stabellini wrote:
> > > > On Tue, 22 Apr 2025, Andrew Cooper wrote:
> > > >> Compilers estimate the size of an asm() block for inlining purposes.
> > > >>
> > > >> Constructs such as ALTERNATIVE appear large due to the metadata,
> > > depsite often
> > > >> only being a handful of instructions.  asm inline() overrides the
> > > estimation
> > > >> to identify the block as being small.
> > > >>
> > > >> This has a substantial impact on inlining decisions, expected to be for
> > > the
> > > >> better given that the compiler has a more accurate picture to work
> > > with.
> > > >>
> > > >> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> > > > Hi Andrew,
> > > >
> > > > If we are going to use asm_inline, please add a note to
> > > > docs/misra/C-language-toolchain.rst where we keep record of all the
> > > > language extensions we use.
> > > 
> > > It's just asm(), and that's already discussed.
> > > 
> > > I'm not sure what else you think is warranted.
> > 
> > 
> > If it is just asm() then there is nothing to do. We only need to
> > document extensions to the language, nothing else. Many of them are
> > already documented under docs/misra/C-language-toolchain.rst (see for
> > instance asm and __asm__).
> > 
> > I see the critical part of the patch for this question is:
> > 
> > > +#if CONFIG_CC_HAS_ASM_INLINE
> > > +# define asm_inline asm __inline
> > > +#else
> > > +# define asm_inline asm
> > > +#endif
> > 
> > it looks like __inline is an extension ?
> 
> I see. It was added to the tool configuration, but not there in the rst
> (__inline__ as well), hence why there are no CI failures.

I see __inline__|__inline in toolchain.ecl. Nicola, would you be up for
sending a small patch to docs/misra/C-language-toolchain.rst to add them?


From xen-devel-bounces@lists.xenproject.org Tue Apr 22 20:04:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 20:04:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.963541.1354514 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7Jqb-0005mj-1z; Tue, 22 Apr 2025 20:04:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 963541.1354514; Tue, 22 Apr 2025 20:04: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 1u7Jqa-0005mc-VJ; Tue, 22 Apr 2025 20:04:00 +0000
Received: by outflank-mailman (input) for mailman id 963541;
 Tue, 22 Apr 2025 20:03: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=9r0M=XI=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u7JqZ-0005mR-Qp
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 20:03:59 +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 ece7f94f-1fb4-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 22:03:57 +0200 (CEST)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-43d2d952eb1so41483285e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 13:03:57 -0700 (PDT)
Received: from [192.168.86.29] ([83.104.178.215])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39efa43cb43sm16457974f8f.53.2025.04.22.13.03.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 22 Apr 2025 13:03:56 -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: ece7f94f-1fb4-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745352237; x=1745957037; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=OD20kEYi5HUmXlUomfPs8a6f0KUDAWuvK1Lu2aSLbuI=;
        b=NLAO04u6y/BVbSazHfM24dcWIo8QIbK14akniamZt1IufRyBXIUwgnr7Y62jgLBTFg
         gpHdlofNAsWMz7tlZBXMbge/1E85xTyNrzIDM6IPZU9QwKMjPO+YcmQc/GKrjh9hO17Y
         nmB523S04PZ81QCrhIPgRg7SzMamSFw+iALU4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745352237; x=1745957037;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=OD20kEYi5HUmXlUomfPs8a6f0KUDAWuvK1Lu2aSLbuI=;
        b=E+nv3a0LWsjYsai5UnkGHA33Z2yAYQm+9hv1SWN8kOmTH77kV5d5DE6j1vmvxTkL1g
         00s+wqWkfLVpUhuk4JkZ2xyB9t1lSwax2I7/TsbOFJ5hg5Cr7Z1lkF10/Z360DZihy9S
         SdGrYvMgBhU6UnqdtVMjpTV/U8x/VRnLBkATLWl5spGvJdSzTlWS6D11ZrhrzxeflB0A
         66ZX+w4+OreqzHgVR2/0FvvX7NYeKMxoOu71W3rB0TmXcRz6Pq0J6ZNkZ3JPbXJMaUzg
         BhujnvCo6utohm9iOVh2clabYVYr5osodfpxmk0PkOdDB5Lw0kqv1AUM3HSrrsjtqnXf
         4zaA==
X-Gm-Message-State: AOJu0YxphAmb091PzLGrZQtVHplIBhyfA4Kan7/kAqRGUqmQSApgp0V7
	FrqVrks7Ugh93c2qgEwwE6+Sw/JuKc80eGQx1BKCzzL6kd9wKkH/4lJyoT9s7v4=
X-Gm-Gg: ASbGnctS4q+V3yhd1B6Kiv7NsX0jThxiOTyVMt9WlbISS/yAay+49H0AcsQlfumSZXC
	CmkePHUE3yg+0YlHhyv9m5wU7/5DGQRNUFTy9a715BLy9KtjUadwHv8V5FHF3mbuyX67a2xe+5s
	wqEQ48mZXquMode7BzQp8n22VRniE0hFDyrPDOLmwXNG5nZUMEFhi9SOXHE1vkNk+mEMdc0ubNk
	MgLqosAM8I2KX1cAdIvcW6WEs6TzQ66EIJ0cdfRwVnb0K00Jeg0mXr234a688AJgrl7h6q3nlT5
	xs0tsZyKRsLr2zwWN2Xg1wKAVk4jntRUZxf7xV27Zr9v+7C4tfYwfQ==
X-Google-Smtp-Source: AGHT+IH7ro1peWyefsVtXm+F2nJYEzE2NwXAluo24e2jXgie7rfJgrBM6KR3qtDDU9uWg6ku1jKFRw==
X-Received: by 2002:a5d:584b:0:b0:391:412b:e23f with SMTP id ffacd0b85a97d-39efba3c819mr12797958f8f.15.1745352237267;
        Tue, 22 Apr 2025 13:03:57 -0700 (PDT)
Message-ID: <34ef06c8-cb13-4078-bd39-ad176edfaae7@citrix.com>
Date: Tue, 22 Apr 2025 21:03:55 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen: Use asm inline when available for alternatives
To: Stefano Stabellini <sstabellini@kernel.org>
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>, Julien Grall <julien@xen.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>
References: <20250422113957.1289290-1-andrew.cooper3@citrix.com>
 <alpine.DEB.2.22.394.2504221244360.785180@ubuntu-linux-20-04-desktop>
 <0570b0ed-607c-49fa-b82e-29ffac60f873@citrix.com>
 <alpine.DEB.2.22.394.2504221256080.785180@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.2504221256080.785180@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 22/04/2025 8:58 pm, Stefano Stabellini wrote:
> On Tue, 22 Apr 2025, Andrew Cooper wrote:
>> On 22/04/2025 8:46 pm, Stefano Stabellini wrote:
>>> On Tue, 22 Apr 2025, Andrew Cooper wrote:
>>>> Compilers estimate the size of an asm() block for inlining purposes.
>>>>
>>>> Constructs such as ALTERNATIVE appear large due to the metadata, depsite often
>>>> only being a handful of instructions.  asm inline() overrides the estimation
>>>> to identify the block as being small.
>>>>
>>>> This has a substantial impact on inlining decisions, expected to be for the
>>>> better given that the compiler has a more accurate picture to work with.
>>>>
>>>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>>> Hi Andrew,
>>>
>>> If we are going to use asm_inline, please add a note to
>>> docs/misra/C-language-toolchain.rst where we keep record of all the
>>> language extensions we use.
>> It's just asm(), and that's already discussed.
>>
>> I'm not sure what else you think is warranted.
>
> If it is just asm() then there is nothing to do. We only need to
> document extensions to the language, nothing else. Many of them are
> already documented under docs/misra/C-language-toolchain.rst (see for
> instance asm and __asm__).
>
> I see the critical part of the patch for this question is:
>
>> +#if CONFIG_CC_HAS_ASM_INLINE
>> +# define asm_inline asm __inline
>> +#else
>> +# define asm_inline asm
>> +#endif
> it looks like __inline is an extension ?

That's just inline.  (It's an alternative spelling, and we discuss those
too.)

The reason it's not plain "asm inline" is because of the (deviated)
"#define inline inline __init", where an eventual "asm inline __init
(..." is a syntax error.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Apr 22 20:08:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 20:08:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.963556.1354524 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7JvN-0007GA-IJ; Tue, 22 Apr 2025 20:08:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 963556.1354524; Tue, 22 Apr 2025 20:08:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7JvN-0007G3-Fj; Tue, 22 Apr 2025 20:08:57 +0000
Received: by outflank-mailman (input) for mailman id 963556;
 Tue, 22 Apr 2025 20:08:56 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Pc5Z=XI=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1u7JvM-0007Fx-46
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 20:08:56 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9d9d55f0-1fb5-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 22:08:54 +0200 (CEST)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id 5E9334EE3BFD;
 Tue, 22 Apr 2025 22:08:53 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9d9d55f0-1fb5-11f0-9ffb-bf95429c2676
Authentication-Results: bugseng.com; arc=none smtp.remote-ip=162.55.131.47
ARC-Seal: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; cv=none; t=1745352533;
	b=bLDzmOWr/qPVVHikxCUP9Mgq+twt4ogCXwFqdmiiCp/XpKFCOywgUvvYUDVPgWY6ffOi
	 mcuPuPVmC6s0UCSXIkQmHN5GOnpOfIJ0gbph25L0v7L3ILbd8kcSeML6lf3+LUqZWkmPW
	 pOWy5m00d8Yeug4XGJZcQnm4lCaQ9ikQSnXqvVbpp596Go7gcM1fhKA24Nf63JVyqcA4d
	 agNVUbmDYTpyCHQgE1Y11IQOrWlBFtIL9XEhZQsDuWsFkaI6kZ/CuiVFgTWvIZb8t87XQ
	 vn3a0f4sejVmfIoFjUlcZAjnvR5y/j5HF9SO+Bxch/h214MKO7MU8SbRIhzCjCXvPlYXY
	 Vp61k6GWnFEBsfsiS+Dr5H42C9P/JtAKLHTUirdRuymf7vNKv5aaSSwl06Q8hrDnX9FSv
	 aed1z289XDF8YYfsJfQ/uHATzQWmUvUjigav71LDFXv+kyPR0J/zrdi3/q28Rs7yhndIq
	 pzusWisgwggPW2SjSNDUI92T2D3xs53cvlraxkfL9hJLcxmkbyqsJQoubqKSajT19MrxC
	 gu8RK/apc9vESQP+WAoJS46tyhmCDM/bxFU7H9nbkzo0ISzA0cOifQMcGHiRjzDSq/Qkg
	 RUIZBe4FewC7ln9/R0SgyUHxPOFbmfJb9aVPm2MKkIUTWC4EDnlq1azGqjYZK3w=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1745352533;
	h=DKIM-Signature:MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:
	 References:Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=iEgoPqnlAVz+MSXJq2/xh+j1parUoL7zyWn9E2545Qs=;
	b=hCeAhHN7ycLYuDLADTuIWPddNELbKx8xrxZqgqRAo99bLb/ayZ14JJcXy8x04J9YDGat
	 l0sCxStS55IfxeRPgi7NA1+8wZR8bqdj3/dMK0tvdXln16d9SLwjNvEbud9kuYEDPlj40
	 4gANzNjFgIL2GEuIoUNIlP3ekGvx9/2uQDx9a0tZ7Eq6Tet7r0jXhX/MqCrGzBhhsf47E
	 0fBU9ofcEUhuPBkiSEScW8A3Mum0hpuSjFZCtNuRfehZP7L+nzSpIy0dKNfuMKvUbDnZ+
	 H+plVPHM5taOkfkYxahSaewXVL2FI/1Flq9oYU21MoHgXkgyFdozu8xaAb+L70Ut96O8l
	 oIeBcr7UjCYywi8ZXsh4CdkHZmd/yHIB4N784disVmJJDgVN0BhVQgBfkQY6Zp8pD6N1k
	 20dYo1yubAY8i+P9fBdw8zQxNuqgHJCHhgyJiOIFwx0Yn2bFbq6Gn32MS0OKYwc7r7+4r
	 uFAxkhKnlWSXhYKODEHNgO+QbO1ECKHrF/v1oE0hOHXqSnDIQ0kxiivcJP9gPNU7woJYJ
	 1Qc4lmj1i4QnUeADzw3NR8O7p6ORTt+/j5ma/AQnY1vECZjmU/RBeL+YU0H0YxdVNhxBj
	 dyQsF1YItpr845jF5eYvVs/8mrtxKEXsA7ta3KYN3HVUpv1v1GMwxwZD2KbL+ww=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1745352533; bh=RRihhV4R9nDE0e+h7xyXVcGUfHlzwn6B8iz9MIbUemY=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=oSS+Sk7rMbiq5mBTKUVm5SlX1rZMbRFkqO8SfTP+hvG13RwTGhEVuCoux5jmSBKoU
	 pBQkJYh46emJoMVx+vWVpDXFDg/ydaMonKdDsS6k3MDqVq/qrI6VnK3R9OWqsmV7nv
	 ff4iDwdbr58DN7ERqUVrcfLfUrNMYuRaJB3RSXZBHwCwgEQgUSGjJ6jbEzPlKo8uXb
	 BbeXNbqQGwx+mL+qhtAD6AbhKZesLx7SNCY+iN4ZYyqwwp1WF8p5M4AqOkdumFybb1
	 OEwh9+SlzyZsMxM0BUb/Uiy7rfyvVzbYrdldYRgpdSsxjI9/vijDbPxIE+wVPw2q+k
	 ybZL/zfqMxzjw==
MIME-Version: 1.0
Date: Tue, 22 Apr 2025 22:08:53 +0200
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Xen-devel
 <xen-devel@lists.xenproject.org>, Jan Beulich <JBeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Julien Grall
 <julien@xen.org>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Bertrand
 Marquis <bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH] xen: Use asm inline when available for alternatives
In-Reply-To: <alpine.DEB.2.22.394.2504221302120.785180@ubuntu-linux-20-04-desktop>
References: <20250422113957.1289290-1-andrew.cooper3@citrix.com>
 <alpine.DEB.2.22.394.2504221244360.785180@ubuntu-linux-20-04-desktop>
 <0570b0ed-607c-49fa-b82e-29ffac60f873@citrix.com>
 <alpine.DEB.2.22.394.2504221256080.785180@ubuntu-linux-20-04-desktop>
 <f315f38e20432bc9f62ae2d4b04582a4@bugseng.com>
 <alpine.DEB.2.22.394.2504221302120.785180@ubuntu-linux-20-04-desktop>
Message-ID: <60e776075c8861f825ef2589b9053792@bugseng.com>
X-Sender: nicola.vetrini@bugseng.com
Organization: BUGSENG s.r.l.
Content-Type: text/plain; charset=US-ASCII;
 format=flowed
Content-Transfer-Encoding: 7bit

On 2025-04-22 22:02, Stefano Stabellini wrote:
> On Tue, 22 Apr 2025, Nicola Vetrini wrote:
>> On 2025-04-22 21:58, Stefano Stabellini wrote:
>> > On Tue, 22 Apr 2025, Andrew Cooper wrote:
>> > > On 22/04/2025 8:46 pm, Stefano Stabellini wrote:
>> > > > On Tue, 22 Apr 2025, Andrew Cooper wrote:
>> > > >> Compilers estimate the size of an asm() block for inlining purposes.
>> > > >>
>> > > >> Constructs such as ALTERNATIVE appear large due to the metadata,
>> > > depsite often
>> > > >> only being a handful of instructions.  asm inline() overrides the
>> > > estimation
>> > > >> to identify the block as being small.
>> > > >>
>> > > >> This has a substantial impact on inlining decisions, expected to be for
>> > > the
>> > > >> better given that the compiler has a more accurate picture to work
>> > > with.
>> > > >>
>> > > >> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>> > > > Hi Andrew,
>> > > >
>> > > > If we are going to use asm_inline, please add a note to
>> > > > docs/misra/C-language-toolchain.rst where we keep record of all the
>> > > > language extensions we use.
>> > >
>> > > It's just asm(), and that's already discussed.
>> > >
>> > > I'm not sure what else you think is warranted.
>> >
>> >
>> > If it is just asm() then there is nothing to do. We only need to
>> > document extensions to the language, nothing else. Many of them are
>> > already documented under docs/misra/C-language-toolchain.rst (see for
>> > instance asm and __asm__).
>> >
>> > I see the critical part of the patch for this question is:
>> >
>> > > +#if CONFIG_CC_HAS_ASM_INLINE
>> > > +# define asm_inline asm __inline
>> > > +#else
>> > > +# define asm_inline asm
>> > > +#endif
>> >
>> > it looks like __inline is an extension ?
>> 
>> I see. It was added to the tool configuration, but not there in the 
>> rst
>> (__inline__ as well), hence why there are no CI failures.
> 
> I see __inline__|__inline in toolchain.ecl. Nicola, would you be up for
> sending a small patch to docs/misra/C-language-toolchain.rst to add 
> them?

Yes, no problem. I'll take the occasion to see whether there are other 
gaps. Perhaps there's a clever way to ensure these files do not go out 
of sync?

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


From xen-devel-bounces@lists.xenproject.org Tue Apr 22 20:12:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 20:12:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.963568.1354534 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7Jyo-0001L6-1B; Tue, 22 Apr 2025 20:12:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 963568.1354534; Tue, 22 Apr 2025 20:12: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 1u7Jyn-0001Kz-UQ; Tue, 22 Apr 2025 20:12:29 +0000
Received: by outflank-mailman (input) for mailman id 963568;
 Tue, 22 Apr 2025 20:12: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=eQRL=XI=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u7Jyn-0001Kt-9v
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 20:12:29 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org
 [2600:3c0a:e001:78e:0:1991:8:25])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1b6b0b84-1fb6-11f0-9eb0-5ba50f476ded;
 Tue, 22 Apr 2025 22:12:27 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 0E4C54AA06;
 Tue, 22 Apr 2025 20:12:23 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 004BBC4CEEB;
 Tue, 22 Apr 2025 20:12: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: 1b6b0b84-1fb6-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1745352744;
	bh=4SoGW/nXSxgQnXveS4f2pxuDYysOeczQeRS4VV5sQBo=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=kNcDgTdOhyeKig/Oda1VsuIVtixgfhT+vDdzaHDizeIrLEHMevOPWQ4HvTfvT00lz
	 BzTB0t3acHq3myg6QWF14HBJk7qH1rFiH8BQe1wLDLmiaMy44jb+2a07mBHnuGymWu
	 pI4ALeynWVgVXb5wzrvhIxr6Hn49gML5YSEkYVXiua/s0Jg1PVxElIzbPxWDhPrgf6
	 Aentc6+VP+wiHGipekLvn4M7DdQ7yruHSNnQiaq2JO6t1VUZZwvPbsxBpLAVXjxcQe
	 JFQ8zieAKRxRdeLLHQd6HWesWaFbarEtkzg1O9ShgwogRbbxkbCXecWP004QYtKjK+
	 rOyjrWHKA3afA==
Date: Tue, 22 Apr 2025 13:12:22 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
cc: Stefano Stabellini <sstabellini@kernel.org>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    Xen-devel <xen-devel@lists.xenproject.org>, 
    Jan Beulich <JBeulich@suse.com>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Julien Grall <julien@xen.org>, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
    Bertrand Marquis <bertrand.marquis@arm.com>, 
    Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH] xen: Use asm inline when available for alternatives
In-Reply-To: <60e776075c8861f825ef2589b9053792@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2504221311050.785180@ubuntu-linux-20-04-desktop>
References: <20250422113957.1289290-1-andrew.cooper3@citrix.com> <alpine.DEB.2.22.394.2504221244360.785180@ubuntu-linux-20-04-desktop> <0570b0ed-607c-49fa-b82e-29ffac60f873@citrix.com> <alpine.DEB.2.22.394.2504221256080.785180@ubuntu-linux-20-04-desktop>
 <f315f38e20432bc9f62ae2d4b04582a4@bugseng.com> <alpine.DEB.2.22.394.2504221302120.785180@ubuntu-linux-20-04-desktop> <60e776075c8861f825ef2589b9053792@bugseng.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Tue, 22 Apr 2025, Nicola Vetrini wrote:
> On 2025-04-22 22:02, Stefano Stabellini wrote:
> > On Tue, 22 Apr 2025, Nicola Vetrini wrote:
> > > On 2025-04-22 21:58, Stefano Stabellini wrote:
> > > > On Tue, 22 Apr 2025, Andrew Cooper wrote:
> > > > > On 22/04/2025 8:46 pm, Stefano Stabellini wrote:
> > > > > > On Tue, 22 Apr 2025, Andrew Cooper wrote:
> > > > > >> Compilers estimate the size of an asm() block for inlining
> > > purposes.
> > > > > >>
> > > > > >> Constructs such as ALTERNATIVE appear large due to the metadata,
> > > > > depsite often
> > > > > >> only being a handful of instructions.  asm inline() overrides the
> > > > > estimation
> > > > > >> to identify the block as being small.
> > > > > >>
> > > > > >> This has a substantial impact on inlining decisions, expected to be
> > > for
> > > > > the
> > > > > >> better given that the compiler has a more accurate picture to work
> > > > > with.
> > > > > >>
> > > > > >> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> > > > > > Hi Andrew,
> > > > > >
> > > > > > If we are going to use asm_inline, please add a note to
> > > > > > docs/misra/C-language-toolchain.rst where we keep record of all the
> > > > > > language extensions we use.
> > > > >
> > > > > It's just asm(), and that's already discussed.
> > > > >
> > > > > I'm not sure what else you think is warranted.
> > > >
> > > >
> > > > If it is just asm() then there is nothing to do. We only need to
> > > > document extensions to the language, nothing else. Many of them are
> > > > already documented under docs/misra/C-language-toolchain.rst (see for
> > > > instance asm and __asm__).
> > > >
> > > > I see the critical part of the patch for this question is:
> > > >
> > > > > +#if CONFIG_CC_HAS_ASM_INLINE
> > > > > +# define asm_inline asm __inline
> > > > > +#else
> > > > > +# define asm_inline asm
> > > > > +#endif
> > > >
> > > > it looks like __inline is an extension ?
> > > 
> > > I see. It was added to the tool configuration, but not there in the rst
> > > (__inline__ as well), hence why there are no CI failures.
> > 
> > I see __inline__|__inline in toolchain.ecl. Nicola, would you be up for
> > sending a small patch to docs/misra/C-language-toolchain.rst to add them?
> 
> Yes, no problem. I'll take the occasion to see whether there are other gaps.

Thanks!


> Perhaps there's a clever way to ensure these files do not go out of sync?

It would take a bit of work, but we could have the list of extensions in
json (like exclude-list.json or safe.json), then we could generate both
C-language-toolchain.rst and toolchain.ecl from the json file.


From xen-devel-bounces@lists.xenproject.org Tue Apr 22 20:23:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 20:23:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.963580.1354546 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7K95-00034f-Vk; Tue, 22 Apr 2025 20:23:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 963580.1354546; Tue, 22 Apr 2025 20: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 1u7K95-00034Y-Rk; Tue, 22 Apr 2025 20:23:07 +0000
Received: by outflank-mailman (input) for mailman id 963580;
 Tue, 22 Apr 2025 20: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=9r0M=XI=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u7K94-00034S-Ra
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 20:23:06 +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 988a84fc-1fb7-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 22:23:04 +0200 (CEST)
Received: by mail-wr1-x429.google.com with SMTP id
 ffacd0b85a97d-39ac9aea656so7131443f8f.3
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 13:23:04 -0700 (PDT)
Received: from [192.168.86.29] ([83.104.178.215])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39efa4330d8sm16695020f8f.33.2025.04.22.13.23.02
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 22 Apr 2025 13:23: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: 988a84fc-1fb7-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745353384; x=1745958184; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=AIvWt5pMUo6UnScq1FNG6amcll0cAdU9YYX6d0KaakE=;
        b=g7KzW9x6TTMYdUFrDWlIJTa8hEbbpBPIRXPV2F/U7RLVFupmDKKJfXn6ub/CfMEdWx
         fHQkUT9cGs0h/cfpcrfLXF91RFcv6ChHsHTo0uo+T1BuisdXSj7hP2eOgg7YXzxIkjzH
         t3h86mzg/wggdkF0Lc25Q9xcVI+s+7M5rrKzg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745353384; x=1745958184;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=AIvWt5pMUo6UnScq1FNG6amcll0cAdU9YYX6d0KaakE=;
        b=lIj7ZuKR1aW48YSxqE9Tg1iThdBtWu42rmBlxLsO3ImUxQ7h6UpRuZm77H2cTlAXlg
         8so9DhtbrHiTApWSKgrsT/38u3bImKrDOuobOZOjZ0+srSgZCkOTUVBnK0c7htOLfF34
         q4TbPtkzJ2nY/4a22A0yfiAU//cHp0yNvyyl46KXeTeTyQdvoA4hYG2l8apTXnp7AkDy
         38PWXCwYV6NPGi4s9bsBdQtYeUY/wtLs0QMXlqLaXEo7r/xLdveKu1ABaO+H1Bp7ks/S
         qKca3mjSjyn+Au1A2kd9R3HSAnjCWnJXMNE2TE4TB4dobFahymWkhE6EXXnhGRWVIqdT
         hhcw==
X-Forwarded-Encrypted: i=1; AJvYcCWQnCDmsL+emmxzqbHQA8zt5oLTUeRQGqaB42PGwh2GzubJJsFkoJc0piHyBzh6Dlgcwby3F8/QVsY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwXo4slZOq5xIqzTE0JYSfpfazv8OJ4Shob01Mr5dfjr/8t1lVU
	OZPe3PSCprGw7bcbhPosZzXDcAQZ6o57KEMtZ7BlBE2AMsCZyCsaBiL40FQCbnA=
X-Gm-Gg: ASbGncvPyMwff1C5j3b8Bcn55za8XAD6BKL4Kl4ZcbssS/2QNAy5bItC1sf6MAvub3o
	n/Df6oe2sstUjhVqu+Q4ZVB7QP0/HGkJgFQFcHhaRZgz9ppcJH9ZZC0fE2XFXv6L+BFJuG67amc
	wJxxMgBvLT08SlK62al3kJ/a1taisCnVjhGdbmjdnzXEkK3wmDeJ6yG7eTf/Q4Q/sAVwSiUd6bl
	02dj4hY+dawKtxCpMZhdycptcx4L/6Zq2tqpLnThSym8BhgPE/GbkND9mC5hrTh6jQ4SK7lu5Kp
	wh6bzOfKhlzCFcA3RYhefoMFmAhKtMoNoV583GjJEJzyy174JD3UFTwCV+1DGxz5
X-Google-Smtp-Source: AGHT+IG41MPOMzIk5HtfFxmbe0Xae4oi1gdV7Bni+1G+w4WVtaN4O8FSBhw8BHMPaq4iyw475Y1exQ==
X-Received: by 2002:a05:6000:4029:b0:390:ee01:68fa with SMTP id ffacd0b85a97d-39efba454demr12520039f8f.24.1745353384217;
        Tue, 22 Apr 2025 13:23:04 -0700 (PDT)
Message-ID: <6bd0a24d-4f16-4d21-a660-c29407952bb2@citrix.com>
Date: Tue, 22 Apr 2025 21:23:02 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 02/21] include/xen/slr_table.h: Secure Launch Resource
 Table definitions
To: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>, xen-devel@lists.xenproject.org
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 trenchboot-devel@googlegroups.com
References: <cover.1745172094.git.sergii.dmytruk@3mdeb.com>
 <1cf5d940e666b2b292fc84ed1fbb8a95cd57f027.1745172094.git.sergii.dmytruk@3mdeb.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: <1cf5d940e666b2b292fc84ed1fbb8a95cd57f027.1745172094.git.sergii.dmytruk@3mdeb.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 22/04/2025 4:06 pm, Sergii Dmytruk wrote:
> diff --git a/xen/include/xen/slr_table.h b/xen/include/xen/slr_table.h
> new file mode 100644
> index 0000000000..e9dbac5d0a
> --- /dev/null
> +++ b/xen/include/xen/slr_table.h
> @@ -0,0 +1,274 @@
> +/* SPDX-License-Identifier: GPL-3.0-or-later */

I'm sorry, but we cannot accept this submission.

Xen is GPL-2-only, and can only accept source code compatible with this
license.  Everything else in this series appears to be compatible (and
therefore is fine), but this patch is not.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Apr 22 20:36:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 20:36:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.963594.1354554 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7KLy-0006KB-4k; Tue, 22 Apr 2025 20:36:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 963594.1354554; Tue, 22 Apr 2025 20:36: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 1u7KLy-0006K4-28; Tue, 22 Apr 2025 20:36:26 +0000
Received: by outflank-mailman (input) for mailman id 963594;
 Tue, 22 Apr 2025 20:36: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=Mlhl=XI=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1u7KLw-0006Ju-5x
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 20:36:24 +0000
Received: from NAM02-SN1-obe.outbound.protection.outlook.com
 (mail-sn1nam02on20611.outbound.protection.outlook.com
 [2a01:111:f403:2406::611])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 733bd911-1fb9-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 22:36:21 +0200 (CEST)
Received: from MN2PR15CA0058.namprd15.prod.outlook.com (2603:10b6:208:237::27)
 by MW4PR12MB7192.namprd12.prod.outlook.com (2603:10b6:303:22a::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.35; Tue, 22 Apr
 2025 20:36:15 +0000
Received: from BN3PEPF0000B073.namprd04.prod.outlook.com
 (2603:10b6:208:237:cafe::dd) by MN2PR15CA0058.outlook.office365.com
 (2603:10b6:208:237::27) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.36 via Frontend Transport; Tue,
 22 Apr 2025 20:36:15 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BN3PEPF0000B073.mail.protection.outlook.com (10.167.243.118) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Tue, 22 Apr 2025 20:36:15 +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, 22 Apr
 2025 15:36:14 -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; Tue, 22 Apr
 2025 15:36:14 -0500
Received: from [172.21.185.2] (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, 22 Apr 2025 15:36:13 -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: 733bd911-1fb9-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=qHzXARSI4O/Vott8ctBucqHfvJJNzSXzhIwoU5vPWZWlo4/4iEiMqexxhUvbzu5H9FzjyuAi9MBrx3RnqPV6XfKq8lt4InAbY6Z4/k5+BF10gnbvlPpAMmFoqUlz9/Ua5n7Wmo1dbgct3/Dz4tl5nNGMyGMSn4sO3NecMs5BMbn1ewCyUnvKSoRHD/Q0KDjwv7mIo6Y1j6pOPEsiT3Hbb3pYk+OnyeUoklmg6WAjiF5ud+V/RzmlOXiZu1FXSl/NQA2JtAdV4ugZrSKedS2gsFbLAXTZVPLvCUMEdc09K9sWrwYNMi3qsFr95mdiqhVkQPs9lLIXo72HOqdNidu39g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=8oXO5QoTi8r8Dw8E3bAp/gKVmnB2ON8qNU9lNTLxzRQ=;
 b=e8RWv3TWkuwmOhbHFBi4L6XhAF9Wqfd4Gr+jyKH2jZjOEv5ASfgKIJb8PxCYYKXZamSi9MhOtNuuxJSNfmmGhB037xPnNkbLjlZ2+pU+t49+P96XRq77BmOo5igIXwSJnaxO8Ixn2Bwbuhx4OA7jTKd0LsbjVCWrFUIQS0lvCp7UWugGYsM/D9rLCpcV766BM5BgyxMfzCzZPFfwkREg4Ij/ja3RtSSTFXHVTchNcel7hB6/w0LxCVdeLKPR1Qk6zEoX5uK10i//oN+yUhO1dtzzHOpo80S+c97OTAN6me8BFMJWzzq+Y6LWiKYZCulOBmwl8N2Q03yT6X71olB/wA==
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=8oXO5QoTi8r8Dw8E3bAp/gKVmnB2ON8qNU9lNTLxzRQ=;
 b=U4tQmTz9meWh43MTckpVYZo0oYd3dcoR60gZ3bCkdp/zrTrV/i9FALIdCTTeGHvki3XeXt6qMW0ZlEoGEk9N1eLng/128qzbQXhC+JporS3TCVas+d8fTo72TIdkHb1FUDgh511T6mWS4gOHu89r41MpwMQLcFP0fEUBLHZKhg8=
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: <b3069950-ac03-4603-866c-27c6166bfecf@amd.com>
Date: Tue, 22 Apr 2025 16:36:18 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC 03/38] x86/hyperlaunch: convert max vcpu determination to
 domain builder
To: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	<xen-devel@lists.xenproject.org>
CC: <stefano.stabellini@amd.com>, <agarciav@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: <20250419220820.4234-1-dpsmith@apertussolutions.com>
 <20250419220820.4234-4-dpsmith@apertussolutions.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <20250419220820.4234-4-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: BN3PEPF0000B073:EE_|MW4PR12MB7192:EE_
X-MS-Office365-Filtering-Correlation-Id: 9a42faa3-c3eb-4b6a-ee9e-08dd81dd53d4
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|376014|1800799024|82310400026|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?bFFnbmxuelBkbEdSWHZ2WmlGbnJXVTFyS083a0tkejBxQ0MrWTU0dE1wbkFD?=
 =?utf-8?B?K3pjNUQ2UWtYQkZLaWZaaTFDTVp0ZUVLaGt2Uk83b0tTSGxoKy9XV09Vekdl?=
 =?utf-8?B?eUEySnV3UDFKS1lMZW5Ya0dsazZJZ3FPZ1h2RFdReXY0VFNnUnMxTFBpc3VD?=
 =?utf-8?B?aDlYaWZNb1VDQ0lUOTc4R0NyZVhhQjlMbTgrMDBTU215QXZBbzRBelNGM3dL?=
 =?utf-8?B?RnA3Q2xIcjNONHF6Z3c1dVQrWlFGa29OemVsMDVudytBVjJZRFh4Q3JBRTVo?=
 =?utf-8?B?dXJTdEVXcVg1a0M1cGVueTRFSlIvbWZYeEhoL1VYUzkxSVRZc25tY1h2QlNz?=
 =?utf-8?B?STd0WlcrbFFJaG1LSndVT1FOK3NSSG96d0ZZUE5LbU85QmpIa0FIa1hDQWFj?=
 =?utf-8?B?NHY3NHdrU2ZtQTgybWZDQ1BtcWNhSnZBTWpnanRrOFFLejJiM1h4WmVJVVR6?=
 =?utf-8?B?MER1U3I1dUFtdHpLZGJtNjFKRHlua0dtenkweksraUFtTGtaMjArbG45YXFF?=
 =?utf-8?B?eFFXV2JqVTZBMUJzMEx1dEl4VlF0MTlyQkxxamFMN0NUY0JSYWF1aUhsVXk5?=
 =?utf-8?B?cnl3VkZ0WXRzUjBqMTROYjNEclBDUUd3bzVPS2NSSFVHUmp4cWFoMTIxdEdp?=
 =?utf-8?B?TGFmUnAyQWdOUmpMNXBnUGZGMjZXZlBJUzhPZnd5d0lpRE9kRFN2MTdiNFd4?=
 =?utf-8?B?eGpYVmJIWWI5QkFLVW5NNDM5bXI4Zlk2SlYrcmd3R3dvRm5JQ2hrbVEwRHBV?=
 =?utf-8?B?NSt6NHN6L3pUVTRvQnVRMTFMd1RHOUdQMkpCYnYwMkNCdUlhcWIyYVExRmIx?=
 =?utf-8?B?N00yQ2xVM3ZzVmpkbU9MOCt3c2ptQ0RZTHZFK2kxQW42WDNHL01JNHRSZ3Jn?=
 =?utf-8?B?Uitja0hlclJMRWFhbVRBMGRrYmQzTXhoVTgrVTYvZlBueFFLYVlGcVJLRStS?=
 =?utf-8?B?RmV5aStQMXN2T1pjWUxBVU9ZcVRkeUZDUkd0UTJ5S0JibTl4T0sxdCtJMmpC?=
 =?utf-8?B?eEduZmxEeVRMQmwvRmdGMWIzUk5WbkhFUVJuWGt4T1Fya3pXd1pVOGlIMWZB?=
 =?utf-8?B?NFdEMjVEK1hnNlZ0WVowNXlOelMrV01waXA4RzBDdGFLM2hkajVCbXNJakZG?=
 =?utf-8?B?b2UzeEVnc0NCUkZrazRadzRseGZrZFVtMEpZcWQwWms5UzJnc1FHTkp6ZFB5?=
 =?utf-8?B?MEJPVGZ0TDU3eXNCbVpMRGovTzhvK01LRFlYZGVzNEJKcFc1ZnBkN3k0WDJK?=
 =?utf-8?B?cTN6V214bnQ3dnloSi9EcEFXUHYwWUplZGIxTHhMYmJJQnNPWkErWmdFckZ2?=
 =?utf-8?B?bnoyVmxWNnh4VTB0YXBoNHREZDRid3p1NGdWeWM2N3JCWlorRnBvM2ttZTdr?=
 =?utf-8?B?cEVtaUdpOWQ1SlhHNUtBTGc0L2dUMGxDQXViMzVjWWd1ZGdHdHBxRzdyVytN?=
 =?utf-8?B?MFcvNUZLN1JUM01ZTlJvZVE1ZGlVWkFuUHNNbWgvb0xSdzQ3ZElwMnlOUVhm?=
 =?utf-8?B?eEFhODJhNGF4RmFQamhtWmFTaWRSbTNNUmRkY1ZmNmE0NTdwaWdNRkFvWEhU?=
 =?utf-8?B?N1FNV3FJSHFHUERxZnlCM2xYQzhmSXN1ekcrcmpQZWphOFM5TC8zU3UvSUZS?=
 =?utf-8?B?cHR1WU5UcXZyLzZRV1lpbGZXZ3U1ZEVxUytoNm5FT1ZFOVVCamtTcFNXakNh?=
 =?utf-8?B?dUhKVWd1bW51OXltcHVlSlpleEhiVTIzV1YwOWhacnpIVHlkdTlUdHZMcURm?=
 =?utf-8?B?dGEwTnFtaFZscWhBTllCVTFuMUNScllGNWV2OVJsSGQvUWorTjUwa3d6UDFW?=
 =?utf-8?B?OU5WRitFWWlqekxoaEUyTG51R0tqcVczb3lkM1hDMkh1ZzA3NGFESGMzTllZ?=
 =?utf-8?B?K1VnRTE1b01aZENqbElUYmtWbi9XSTQwVWVnWUYwV0lXdmZGdVdkK1Vwb1JV?=
 =?utf-8?B?L0FIeXU2SEk3czN6WWlCdXI4eHVJbnNCYWNqdDdiYkNZajh0NjhqK2twZlcz?=
 =?utf-8?B?ZWZUQ0Q2ay8zMkhnOGhxaXFVZVA0UGhwN2NPd3ZBM3dETCtDU0lZZXFOYThH?=
 =?utf-8?Q?xrs8qH?=
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)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Apr 2025 20:36:15.0228
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 9a42faa3-c3eb-4b6a-ee9e-08dd81dd53d4
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:
	BN3PEPF0000B073.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR12MB7192

On 2025-04-19 18:07, Daniel P. Smith wrote:
> The domain configuration may request more vcpus than are present in the system.
> For dom0, the function dom0_max_vcpus() was used to clamp down to physically
> available vcpus. Here we are introducing a generalized version,
> dom_max_vcpus(), that takes a boot domain and sets the max vcpus based on the
> lesser of the requested max and the available vcpus.
> 
> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
> ---

> diff --git a/xen/arch/x86/domain-builder/domain.c b/xen/arch/x86/domain-builder/domain.c
> new file mode 100644
> index 000000000000..f2277b9e3cf3
> --- /dev/null
> +++ b/xen/arch/x86/domain-builder/domain.c
> @@ -0,0 +1,38 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +/*
> + * Copyright (C) 2024, Apertus Solutions, LLC
> + */
> +
> +#include <xen/cpumask.h>
> +#include <xen/domain.h>
> +#include <xen/init.h>
> +#include <xen/sched.h>
> +
> +#include <asm/bootinfo.h>
> +
> +unsigned int __init dom_max_vcpus(struct boot_domain *bd)
> +{
> +    unsigned int limit = bd->mode & BUILD_MODE_PARAVIRT ?
> +                                    MAX_VIRT_CPUS : HVM_MAX_VCPUS;
> +
> +    if ( bd->capabilities & BUILD_CAPS_CONTROL )

I added xen/include/public/bootfdt.h with DOMAIN_CAPS_CONTROL and the 
other capabilities to provide common values.

> +        limit = dom0_max_vcpus();

dom0_max_vcpus() applies Xen's dom0_max_vcpus command line option.  That 
is desirable for a traditional dom0.  For a disaggregated, Hyperlaunch 
system, I'm not sure it's appropriate.  Considering there can multiple 
control domains, it's more questionable.

Might it be better to only apply Xen "dom0" command line options to 
non-hyperlaunch dom0?  Or a domain with all of 
BUILD_CAPS_CONTROL/HARDWARE/XENSTORE?

I guess it could stay as-is, but it seems unusual.

Regards,
Jason


From xen-devel-bounces@lists.xenproject.org Tue Apr 22 20:47:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 20:47:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.963606.1354565 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7KWA-0000AS-3A; Tue, 22 Apr 2025 20:46:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 963606.1354565; Tue, 22 Apr 2025 20:46: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 1u7KW9-0000AL-Vg; Tue, 22 Apr 2025 20:46:57 +0000
Received: by outflank-mailman (input) for mailman id 963606;
 Tue, 22 Apr 2025 20:46: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=G4yS=XI=oracle.com=ross.philipson@srs-se1.protection.inumbo.net>)
 id 1u7KW8-0000A9-7x
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 20:46:56 +0000
Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com
 [205.220.165.32]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ea27f61f-1fba-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 22:46:51 +0200 (CEST)
Received: from pps.filterd (m0246617.ppops.net [127.0.0.1])
 by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 53MKg1Fo030814;
 Tue, 22 Apr 2025 20:46:38 GMT
Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com
 (iadpaimrmta03.appoci.oracle.com [130.35.103.27])
 by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4644cswgan-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Tue, 22 Apr 2025 20:46:35 +0000 (GMT)
Received: from pps.filterd
 (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1])
 by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2)
 with ESMTP id 53MKOAX7005171; Tue, 22 Apr 2025 20:46:18 GMT
Received: from nam11-bn8-obe.outbound.protection.outlook.com
 (mail-bn8nam11lp2169.outbound.protection.outlook.com [104.47.58.169])
 by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id
 46429a5qe1-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Tue, 22 Apr 2025 20:46:18 +0000
Received: from DS0PR10MB7224.namprd10.prod.outlook.com (2603:10b6:8:f5::14) by
 SA2PR10MB4524.namprd10.prod.outlook.com (2603:10b6:806:118::8) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.8655.35; Tue, 22 Apr 2025 20:46:16 +0000
Received: from DS0PR10MB7224.namprd10.prod.outlook.com
 ([fe80::c57:383f:cfb2:47f8]) by DS0PR10MB7224.namprd10.prod.outlook.com
 ([fe80::c57:383f:cfb2:47f8%5]) with mapi id 15.20.8655.033; Tue, 22 Apr 2025
 20:46: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: ea27f61f-1fba-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc
	:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=
	corp-2023-11-20; bh=Vf5u8qy1ulQX9fTmNEmHZg7Co1btDNkIPrSJNM+6j1U=; b=
	PXbyO5qMr/s9FUDhrKo4169reGqeH2s5OvN4XAyaT7GpKUp8zJXYAH/MZUUk9gKj
	6wiHA3583JAcixKGcmOoSSLCv7Weh2PUXut/yajsu/wUhKrlSpEKGma/QstmxZQJ
	Daj0xKmIfExHlLwKppvaSjBjoFDd5rDn4xovCauptPe4MPXgv/fRqXgL8v1v8xO/
	l5qWxMFeA/SbSLsWJM5KLH2RAObkC1b0MzcrLp+i8MNnk8m1zXQM0jxFA43wCrQo
	DTf65qCV10moTFmBSf8BUJL2O+MYteWYrIRZZGGeAmWa9rKQkA+F1AJTPaGNFThJ
	Cceotsq67mpGbkOcmJE88A==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=NCJNSjJaHoRAZUvoN2YIsqU0TsyuqCUZxJZTgcUEtXYZtfJezO4Fj8SYo7v0qU/WiYZFwh1hprejDSbcv7uTs6KRr41/bYGa6eMbjPdXHscbQ2Y4l9+EYROObtZ3d74A22wza7A4CbqYP0H8dQVJTa54VKfPU1uhasm+wTDkW2kqHKSYRscSDsZtWCbX33jIz7XUIyONGigQff7aFaXV4+mpKkJ/zH/ZmhdL2I9vrZLuQo4q6T6HsvXXMm+E2l7RmIDlQeAP6qieOQ32XN1EjrEVFXbXigRJ4ZDdTiGUZF8fQCByEiXVqx/q5iKu3loKdKmKpv2oFI9fXxhCIWsPYg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Vf5u8qy1ulQX9fTmNEmHZg7Co1btDNkIPrSJNM+6j1U=;
 b=I+J98LcF5fzBfemgQ/ZcvqzvOpYJCVYMlGu96b/bVbeFhig/frIRJqYrUgnSplEMD+4B/tVZfLqhOM6+GQ37gWWB2Db9U0AEr0VkKewItpMXbgffewLtRUKdR5eyxeLP+/BkpCRqRsyMKCb3Lcs5njTfFcixOg5Qh5rl6rmqNONA+UDzR+RGWdWx4Hk21HwbEx7pcotFk1VrJuiBSPcs4KCJ4ofC0wX8yjlLx8POy0UfTOtChTMAvHA7Lp34K9udRca9vT7IbPjzzNVi2XruvMjFe3Z0U5ViNgSRGQStzAfFcp27CWOpZc3K/pRb6fDPrVf89NIM3401Gt+CYWorbw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com;
 dkim=pass header.d=oracle.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Vf5u8qy1ulQX9fTmNEmHZg7Co1btDNkIPrSJNM+6j1U=;
 b=LrGPUreBS2YyBZJKlwW74XxACZ1Uh6wusgA5rE/oRKJrBNioSfSB8Pb+qTSdP/Q9sLh4n30hi5eGJXIISVsSVxDk8+LicvmiQuecnbJSslB5BdR9ToYfa49k/j7dWwpFnzCtPtCvvBTDPFcJ4Q/3uG/hsd7W03zncBO8SrLhC4s=
Message-ID: <87ad3627-088c-442b-bc2b-89586a082599@oracle.com>
Date: Tue, 22 Apr 2025 13:46:14 -0700
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 02/21] include/xen/slr_table.h: Secure Launch Resource
 Table definitions
To: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>, xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
        Anthony PERARD <anthony.perard@vates.tech>,
        Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
        Julien Grall <julien@xen.org>,
        =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>,
        Stefano Stabellini <sstabellini@kernel.org>,
        trenchboot-devel@googlegroups.com
References: <cover.1745172094.git.sergii.dmytruk@3mdeb.com>
 <1cf5d940e666b2b292fc84ed1fbb8a95cd57f027.1745172094.git.sergii.dmytruk@3mdeb.com>
Content-Language: en-US
From: ross.philipson@oracle.com
In-Reply-To: <1cf5d940e666b2b292fc84ed1fbb8a95cd57f027.1745172094.git.sergii.dmytruk@3mdeb.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: PH0PR07CA0114.namprd07.prod.outlook.com
 (2603:10b6:510:4::29) To DS0PR10MB7224.namprd10.prod.outlook.com
 (2603:10b6:8:f5::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS0PR10MB7224:EE_|SA2PR10MB4524:EE_
X-MS-Office365-Filtering-Correlation-Id: b700b0ed-04a0-46aa-1e81-08dd81deba54
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|7416014|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?eG1wbDYzTU95Mkt3OExQZ0YrbHNiSmFhZFROR205S3NLVHBWWFlKblJMU3d3?=
 =?utf-8?B?emZHVUV2YWdIM2pVMytVcFd4b2U1ZVR2NEJPbktnQkFYZFd6blpLU1AzZVll?=
 =?utf-8?B?citTbWwweVFZWkVoMEFyN0xzUWpDTlo0Vm1jNWF2WU1tZGVJMVp3QU13ZTM1?=
 =?utf-8?B?T3ZMd3ovbGFlK0ZRUDZIaThYT3ZxOUZsSGNNTjJ1a1ByanRLQTNsREZzMnNq?=
 =?utf-8?B?aWZ2UUdhaitYUy92Rk1sOVhoVjlBKzNPOFVJR1lOZTFldU05b1dQblFNNVRi?=
 =?utf-8?B?dUhuQWcyVXlWZUUvZ05GcDJDeFRVUVVXeFQ5NG0yY1N0SjJpYmhMbHJtM0RU?=
 =?utf-8?B?S1N0dnZYd1k4Mjc3VlNOOG5pR2dZbTczcWZucFl5QlpCeDV6MHUwcmVaOXFV?=
 =?utf-8?B?VVpqd2U5Z1ErYVRxNXdsT3c1YjhVNTJtNUFTNU83UEZUbUNocE9NUkN6QzV2?=
 =?utf-8?B?MGtLUE5EKzVRNFpCNmNZaVhkNklSWFdwWFdOMFA1VEtWcjI3MTdLZmNmS3N5?=
 =?utf-8?B?ZWN0ZXg1VGRxV3RHZDhXQk40SlVqQjBqcng0NFg1YXE5Q0ltTzc0WjBJdEsx?=
 =?utf-8?B?TjVncjBOYnJyczVkU0ViRnduMG05QnpmRlpqSkZKV0NoTTJNcE84MnRTM09w?=
 =?utf-8?B?Rzc2RHp1WDFhR0N6YkxmQ1E2SGdYSGZRYVpvbVpmK05OVWRyQ3JWTGU4UGp4?=
 =?utf-8?B?ZU1JcHpFYlJ1MUl1T1FRWWwvRGMrd2pnWDN0TVdiNWhIQk9vbU9haVkwcjNB?=
 =?utf-8?B?ZVpLR0dhYTNpRHl0Q0E2Y0E5MytvNC92VmNRRXZ2T0JPVkErbExJOU9oZWhE?=
 =?utf-8?B?d2hCSTZRd3VOT1hRZ2RvWmEzalR5R3duVC9VUXpPL3NydHdxQUJXbTFaY2w2?=
 =?utf-8?B?M28yZHBHbzlsZVM2YjVGdWNHdm5IUkF0aFc2eDhhc2wzcGYvb0t2elZkM212?=
 =?utf-8?B?clFkTXVFTW1FQmZGbWg1MnFoeHRPN3pmUHkvODRzOFB1MnFlaGpXNkplajh0?=
 =?utf-8?B?Y1NnTFVBZC9WeU51c1FnTzRHYmVKRGtwdzh6VmJkZHdGeUVLRFZSUGxjamdr?=
 =?utf-8?B?UW9yczJaOHJMcXZNK2lLRUZhN0ZKUmNKc3ZuTkFuNTE3TFowVllpVHdJclhy?=
 =?utf-8?B?YzVOZExTWitwVk1mVHpmUUlhUDRuSUN2RnAvNityNXIrWnBmRGpLcFJxa3Bj?=
 =?utf-8?B?TDlIWURZWmRFdUpkdHpmQ0NMT0pDVkluMkZRUjEzNG5xMklCMzgycVgzU2Q5?=
 =?utf-8?B?QkVncXlrWkNFSXM3ZXcwVXlqa01uOG1OdmJpNEd6SnAwUzJid1U5clZjcURX?=
 =?utf-8?B?MEJiNmZPQVNCVnE2NjdkVUJnUnpLQ1F1YldMcFEyL1FkUnpIRUgrODB6V1Qw?=
 =?utf-8?B?RTc5Vk1SZ01ScVBJOFd3VldreVlDbzIvRTRKWFZzdVdMZEN4bFVlZzdzUVpO?=
 =?utf-8?B?MDlWQU5BVXpNcXdpc1kvS3ppR01pOWZIYmVHUlphTWJFYjE0ZUNuUkFBcTZL?=
 =?utf-8?B?Ymh0ZmFMOUFKMFlpUnRWMkxSc3crdnhKd0pmbXRNVU9FdU9UZFFFSVh5QTRa?=
 =?utf-8?B?VlFDc2F4RWFFVjR2NE8yb1RZVlBLME5qaWluWkpGcTlSN2xpUmltMkQrN1Fh?=
 =?utf-8?B?ZGVxZHFMQmRTYzBaYmJ5djBvZG4zYTRQZGhQKy9NTG9JMi8yQU8xQUJNK2lw?=
 =?utf-8?B?ckYwYk1GOXkxSzljY3Y0SEJyOGtsbzF2M3c5dkJMd2RFem5hNjlvWllobHRD?=
 =?utf-8?B?ZmRQRFFpekRRZUI5WTRNaFZ6TytXTFI5cDEyK29vVUxDTnNHSkZlZzl3ZjhR?=
 =?utf-8?B?eCs2YVJ6Q1lzaHZOVzNGVVArYzN2NmIzWWtjbk5MUnZQQ1VUQjNrS1lnSkow?=
 =?utf-8?B?eDVGMjZnZUZDenZKQnM3NFpCUkJTUXNJellNcU5TU1cvdWIxU2JWeFJSS21T?=
 =?utf-8?Q?cWrUDdmSHxM=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS0PR10MB7224.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(7416014)(376014)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?ZGRqUmljbW9JcDk4NzlEMlRPRmk2blJYOFFjTjk5RlU3TC9Eb1VVMGR1YjRj?=
 =?utf-8?B?RmxxQTFKNGU4bUpOOGtJRFJ1M09aL0EzUktXaU9NQkp0ckRieW1kekZSVE5l?=
 =?utf-8?B?a28wcmRwbmg1U0xTczNJYlYzTm5WOXZ2d0dwb00rSDZ4ZDZWRm5WMC9hcTQ5?=
 =?utf-8?B?cGN6WmpiOVZNMkZoMjc0MmduZjV5c0htUkJYb2orejNNWG13SUVDZ21BNXMv?=
 =?utf-8?B?NGVlRmhVMFR5aGxGc2VJNXlOcXFJZ2gyUElNYTJxUDZqOVBvV210M0pGbjFj?=
 =?utf-8?B?eFQwb1RKd1N1dk9NaEtUdFM4Q3JsZDdpVjE4YWdHaWt2VkdZMXdtUkdOMHA1?=
 =?utf-8?B?NnlBamxnV2k0aVZGOFdUNndyUW5aQkE3aVM3ZjEwUG50c0UzeXFmczRrVHFH?=
 =?utf-8?B?TDFvak5EeEdYYmExRzg4OWg3QnBvMnpYajgrcmdrL0hBYWdsOElKS0dXaSsr?=
 =?utf-8?B?QmExRmgwZU5MUkxRZ0RCTDdWYlJBL1RLbnpaUGNHNDdaS0tJUUxXSGtoK2ww?=
 =?utf-8?B?NnNUeGx5ZWNVV1ZKTVkvRzQxRVdaUlB0bmpGMUduM1hVM1ZJMGs3ckxpZ1Zr?=
 =?utf-8?B?MGkySEZPeWFSRmlQSm83MlhLUTVUSUNCdW1HUTE3TXlWQzB3eE1PSWl3NGRD?=
 =?utf-8?B?ajVVemlrZ3FmUjl2K2MxWjVNVEZTQng4WUFrUUVsVWxzRFo4b0RaQUhHeHRs?=
 =?utf-8?B?ckRxaWFRMnh6K2ZMRmZOb2FHRmtMa3IxS3A0T2w5bkhJWE5zdlZuUno3UkVw?=
 =?utf-8?B?YzNsTS9odlpHREwwd0tkbTZ3UERYcmZhdnZ4SGQxZ3BnKzhaQ1RTZzhKL2RQ?=
 =?utf-8?B?aWprNmpwbDRkNjNsZGdsOHIvaHBPQ1U3VnFaQ0puVmU1UG5jVWRNR0hrZHJU?=
 =?utf-8?B?N21WSTNRdFJUSmpTNFh0RTA0WGp6aWoySjJnalNQdXNCbHpxbVN1cTNpaXVo?=
 =?utf-8?B?WGF5SWN6SEpYclJPakRYVUZzKzBiRk5ML0dBWUdCcjBLbGdlRjdRWjJLSVk2?=
 =?utf-8?B?bG91Rm1CQ0JjUHpjNGtac05na2l1TGhXRXpTcTFOR0xPbE45L25Dc29sR0Np?=
 =?utf-8?B?NU9oTFQvMU4xeVVGL3ZOd2F3djF5ZUNhY0kwUU1BZ3NYV3kwUlRJdmdRNHhW?=
 =?utf-8?B?SVE0aUUreUR1TVkxQWFPdS9tZUhBRGpOdEJrWVZsVDRZcG9yYTF3a2RKRzhs?=
 =?utf-8?B?bCs4WHZ0WG5SOTNLODgzM1B5T0hsRTV2akt1em01bHdSZ3dDY056cG02M2Vq?=
 =?utf-8?B?Qi9KQUk4ZXBtQVUydDAvMFFqT1lGTExzRyttY0hIYlFwQUcyK3pSQWY0ZEFL?=
 =?utf-8?B?YlhaQWZsdXF2OWE2Q1ErRkwvMzM5UDNnVDI4Qm94bndsUkVSTGNkM3Fzb1ht?=
 =?utf-8?B?Zk9mQ2RGSURRK2ZlYmhZY1lhQUVEOTVxSnJBcU1nSmVtb1BTT2hobHpycHBz?=
 =?utf-8?B?Zi9keHhaTS9YbWVxV3BpTFNjcFFydXB3SUV3Rno2NmhwMkQ3YjM2WG1FR25X?=
 =?utf-8?B?d1lVNVk4a3RnSEM3TUpBYjFubG5zVEJTeFI1Y3pZUzBlaTNzdU5kc1RrQjVr?=
 =?utf-8?B?bW9jZ3o2SThwOXRsdG4yVnExeDhncGZFemtSZnQrd2xpaDByc04zcURMTWpY?=
 =?utf-8?B?L0ZTQkZMN2JPSkV1Qmo3dW1IVDQ4eWJ5U2dGTytpbGZiZTBIemk5aE1FMnl1?=
 =?utf-8?B?TmhMaWI1SmlmQTc2Nm5NcnpYaEd0b3U3RVd2cnZ4emRoSWx5TVRRUXhObllY?=
 =?utf-8?B?MlF2alpQcUlQb2FIVnZtTHB4ZnZxclZvNWJZdEtuSXA1Z2Q0RnhSZFBzYnBM?=
 =?utf-8?B?ajUrZVkzaGVKdUhiVnRuZzE3eFE0QkdGN3lGNm91VGJQLzFVa05OSmE5ejZv?=
 =?utf-8?B?N0s0ZnNXR0Q0R2w3clp0M3R0cks2bDdNSkg3TERWck43Z0tQcmdCcFM2Uzd6?=
 =?utf-8?B?dXdHVWZHNEtJOXllRi85dFJaQmxpcmZKOFF5bkFvNzlJTzZ2Z1pEYndId05v?=
 =?utf-8?B?QnR6TjBUUTZUcFovQkY0SHdEdVhnK3dwclNKVXJUeHFraTN1NHA3TnNwdWRx?=
 =?utf-8?B?bW40YnZIalpFdlpQakg3WXA4YkMra2VENWZDMFhlQ1FLS291ZHJZWDdEVmpO?=
 =?utf-8?B?SXVvWldBOUxlazBKSVIwYXFFdFIzdmJHRGkxZWNnTG5CWnRCUnRBckQ1UUtN?=
 =?utf-8?B?R0E9PQ==?=
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	hNCXVs4X0I0JS644UZXcDj+YVA3jBAOYtDY26wOVqv+ph/s1FvSpsaoXO+CUnCRR1Cc3YE2/gYFWg8kdJq2LIJ2lWc7FZk/Q/AN4EdBp4HLUK1hfzRnchnaP/uakaJoRMDbkBwvKBbGfZGpfmh9xWUYf0s/vozssLEwAVcLCJMIJDdueDW6mD6qbJrQZ5E5b2zKdUL1Bmi5OS+0x66VQaHcLtWWdNV/oGIf6CkLwCdqAXNIgMPP6+qLbtqT4AdMm8ZMCLge9t3A8OA1yb7O6EloQZ7j6rrZTX+9dU0HFFFb7GTHnEOZaY2KavkSemi1YM3wbHOBMUqG15VdwpRudiyeP5pRKVY/AvHMQRPOhWMkQiBmkjLSo7F9mFWpDGgS+2XpqXvxZNeXIfAKsASJDmNs5vfAHjKGrtwy6xwrBub3W595dJE2XxfDSDyCbiI+iImlNZt0PeTKQt7LBPvR5OSVXrctyKRKD7U4V4r34RleDNlZTquBTedShKX7lxTDsG93EV2hlho5DcdAPcy8wElw9FWHgxYj/9HMm767V880uA+Wmpxa8RghHa2eytrYIvV/Ik7f7SZsq54+ceD6ddSyKvOCg7VBK+neTKq8/Cbs=
X-OriginatorOrg: oracle.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b700b0ed-04a0-46aa-1e81-08dd81deba54
X-MS-Exchange-CrossTenant-AuthSource: DS0PR10MB7224.namprd10.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Apr 2025 20:46:16.7128
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: FqsR7t8xpLLRJSA00NP9zNr8+tt4KZy8j/HD5uvdjpUlNtXmCqtfqVGo2gsxIDdT4etLyNc/Uta14RInrBfIZzpYBJsibV80h7Qez382Xkw=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR10MB4524
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1095,Hydra:6.0.680,FMLib:17.12.68.34
 definitions=2025-04-22_10,2025-04-22_01,2024-11-22_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 bulkscore=0
 mlxlogscore=999 mlxscore=0 malwarescore=0 spamscore=0 suspectscore=0
 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2502280000 definitions=main-2504220156
X-Proofpoint-ORIG-GUID: G69b56GIzMtGgdThksJ7rbJdBmxvyuIw
X-Proofpoint-GUID: G69b56GIzMtGgdThksJ7rbJdBmxvyuIw

On 4/22/25 8:06 AM, Sergii Dmytruk wrote:
> The file provides constants, structures and several helper functions for
> parsing SLRT.
> 
> Signed-off-by: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
> ---
>   xen/include/xen/slr_table.h | 274 ++++++++++++++++++++++++++++++++++++
>   1 file changed, 274 insertions(+)
>   create mode 100644 xen/include/xen/slr_table.h
> 
> diff --git a/xen/include/xen/slr_table.h b/xen/include/xen/slr_table.h
> new file mode 100644
> index 0000000000..e9dbac5d0a
> --- /dev/null
> +++ b/xen/include/xen/slr_table.h
> @@ -0,0 +1,274 @@
> +/* SPDX-License-Identifier: GPL-3.0-or-later */
> +
> +/*
> + *  Copyright (C) 2023  Oracle and/or its affiliates.
> + *
> + *  Secure Launch Resource Table definitions
> + */
> +
> +#ifndef _SLR_TABLE_H
> +#define _SLR_TABLE_H
> +
> +#include <xen/types.h>
> +
> +#define UEFI_SLR_TABLE_GUID \
> +    { 0x877a9b2a, 0x0385, 0x45d1, { 0xa0, 0x34, 0x9d, 0xac, 0x9c, 0x9e, 0x56, 0x5f } }
> +
> +/* SLR table header values */
> +#define SLR_TABLE_MAGIC         0x4452544d
> +#define SLR_TABLE_REVISION      1
> +
> +/* Current revisions for the policy and UEFI config */
> +#define SLR_POLICY_REVISION         1
> +#define SLR_UEFI_CONFIG_REVISION    1
> +
> +/* SLR defined architectures */
> +#define SLR_INTEL_TXT   1
> +#define SLR_AMD_SKINIT  2
> +
> +/* SLR defined bootloaders */
> +#define SLR_BOOTLOADER_INVALID  0
> +#define SLR_BOOTLOADER_GRUB     1
> +
> +/* Log formats */
> +#define SLR_DRTM_TPM12_LOG      1
> +#define SLR_DRTM_TPM20_LOG      2
> +
> +/* DRTM Policy Entry Flags */
> +#define SLR_POLICY_FLAG_MEASURED    0x1
> +#define SLR_POLICY_IMPLICIT_SIZE    0x2
> +
> +/* Array Lengths */
> +#define TPM_EVENT_INFO_LENGTH       32
> +#define TXT_VARIABLE_MTRRS_LENGTH   32
> +
> +/* Tags */
> +#define SLR_ENTRY_INVALID       0x0000
> +#define SLR_ENTRY_DL_INFO       0x0001
> +#define SLR_ENTRY_LOG_INFO      0x0002
> +#define SLR_ENTRY_DRTM_POLICY   0x0003
> +#define SLR_ENTRY_INTEL_INFO    0x0004
> +#define SLR_ENTRY_AMD_INFO      0x0005
> +#define SLR_ENTRY_ARM_INFO      0x0006
> +#define SLR_ENTRY_UEFI_INFO     0x0007
> +#define SLR_ENTRY_UEFI_CONFIG   0x0008
> +#define SLR_ENTRY_END           0xffff
> +
> +/* Entity Types */
> +#define SLR_ET_UNSPECIFIED        0x0000
> +#define SLR_ET_SLRT               0x0001
> +#define SLR_ET_BOOT_PARAMS        0x0002
> +#define SLR_ET_SETUP_DATA         0x0003
> +#define SLR_ET_CMDLINE            0x0004
> +#define SLR_ET_UEFI_MEMMAP        0x0005
> +#define SLR_ET_RAMDISK            0x0006
> +#define SLR_ET_MULTIBOOT2_INFO    0x0007
> +#define SLR_ET_MULTIBOOT2_MODULE  0x0008
> +#define SLR_ET_TXT_OS2MLE         0x0010
> +#define SLR_ET_UNUSED             0xffff
> +
> +/*
> + * Primary SLR Table Header
> + */
> +struct slr_table
> +{
> +    uint32_t magic;
> +    uint16_t revision;
> +    uint16_t architecture;
> +    uint32_t size;
> +    uint32_t max_size;
> +    /* entries[] */
> +} __packed;
> +
> +/*
> + * Common SLRT Table Header
> + */
> +struct slr_entry_hdr
> +{
> +    uint32_t tag;
> +    uint32_t size;
> +} __packed;
> +
> +/*
> + * Boot loader context
> + */
> +struct slr_bl_context
> +{
> +    uint16_t bootloader;
> +    uint16_t reserved[3];
> +    uint64_t context;
> +} __packed;
> +
> +/*
> + * Prototype of a function pointed to by slr_entry_dl_info::dl_handler.
> + */
> +typedef void (*dl_handler_func)(struct slr_bl_context *bl_context);
> +
> +/*
> + * DRTM Dynamic Launch Configuration
> + */
> +struct slr_entry_dl_info
> +{
> +    struct slr_entry_hdr hdr;
> +    uint64_t dce_size;
> +    uint64_t dce_base;
> +    uint64_t dlme_size;
> +    uint64_t dlme_base;
> +    uint64_t dlme_entry;
> +    struct slr_bl_context bl_context;
> +    uint64_t dl_handler;
> +} __packed;
> +
> +/*
> + * TPM Log Information
> + */
> +struct slr_entry_log_info
> +{
> +    struct slr_entry_hdr hdr;
> +    uint16_t format;
> +    uint16_t reserved;
> +    uint32_t size;
> +    uint64_t addr;
> +} __packed;
> +
> +/*
> + * DRTM Measurement Entry
> + */
> +struct slr_policy_entry
> +{
> +    uint16_t pcr;
> +    uint16_t entity_type;
> +    uint16_t flags;
> +    uint16_t reserved;
> +    uint64_t size;
> +    uint64_t entity;
> +    char evt_info[TPM_EVENT_INFO_LENGTH];
> +} __packed;
> +
> +/*
> + * DRTM Measurement Policy
> + */
> +struct slr_entry_policy
> +{
> +    struct slr_entry_hdr hdr;
> +    uint16_t reserved[2];
> +    uint16_t revision;
> +    uint16_t nr_entries;
> +    struct slr_policy_entry policy_entries[];
> +} __packed;
> +
> +/*
> + * Secure Launch defined MTRR saving structures
> + */
> +struct slr_txt_mtrr_pair
> +{
> +    uint64_t mtrr_physbase;
> +    uint64_t mtrr_physmask;
> +} __packed;
> +
> +struct slr_txt_mtrr_state
> +{
> +    uint64_t default_mem_type;
> +    uint64_t mtrr_vcnt;
> +    struct slr_txt_mtrr_pair mtrr_pair[TXT_VARIABLE_MTRRS_LENGTH];
> +} __packed;
> +
> +/*
> + * Intel TXT Info table
> + */
> +struct slr_entry_intel_info
> +{
> +    struct slr_entry_hdr hdr;
> +    uint64_t boot_params_base;
> +    uint64_t txt_heap;
> +    uint64_t saved_misc_enable_msr;
> +    struct slr_txt_mtrr_state saved_bsp_mtrrs;
> +} __packed;
> +
> +/*
> + * AMD SKINIT Info table
> + */
> +struct slr_entry_amd_info
> +{
> +    struct slr_entry_hdr hdr;
> +    uint64_t next;
> +    uint32_t type;
> +    uint32_t len;
> +    uint64_t slrt_size;
> +    uint64_t slrt_base;
> +    uint64_t boot_params_base;
> +    uint16_t psp_version;
> +    uint16_t reserved[3];
> +} __packed;
> +
> +/*
> + * ARM DRTM Info table
> + */
> +struct slr_entry_arm_info
> +{
> +    struct slr_entry_hdr hdr;
> +} __packed;

You can probably ditch this for now.

> +
> +/*
> + * UEFI config measurement entry
> + */
> +struct slr_uefi_cfg_entry
> +{
> +    uint16_t pcr;
> +    uint16_t reserved;
> +    uint32_t size;
> +    uint64_t cfg; /* address or value */
> +    char evt_info[TPM_EVENT_INFO_LENGTH];
> +} __packed;
> +
> +struct slr_entry_uefi_config
> +{
> +    struct slr_entry_hdr hdr;
> +    uint16_t reserved[2];
> +    uint16_t revision;
> +    uint16_t nr_entries;
> +    struct slr_uefi_cfg_entry uefi_cfg_entries[];
> +} __packed;
> +
> +static inline void *
> +slr_end_of_entries(struct slr_table *table)
> +{
> +    return (uint8_t *)table + table->size;
> +}
> +
> +static inline struct slr_entry_hdr *
> +slr_next_entry(struct slr_table *table, struct slr_entry_hdr *curr)
> +{
> +    struct slr_entry_hdr *next = (struct slr_entry_hdr *)
> +                                 ((uint8_t *)curr + curr->size);
> +
> +    if ( (void *)next >= slr_end_of_entries(table) )
> +        return NULL;
> +    if ( next->tag == SLR_ENTRY_END )
> +        return NULL;
> +
> +    return next;
> +}
> +
> +static inline struct slr_entry_hdr *
> +slr_next_entry_by_tag (struct slr_table *table,
> +                       struct slr_entry_hdr *entry,
> +                       uint16_t tag)
> +{
> +    if ( !entry ) /* Start from the beginning */
> +        entry = (struct slr_entry_hdr *)((uint8_t *)table + sizeof(*table));
> +
> +    for ( ; ; )
> +    {
> +        if ( entry->tag == tag )
> +            return entry;
> +
> +        entry = slr_next_entry(table, entry);
> +        if ( !entry )
> +            return NULL;
> +    }
> +
> +    return NULL;
> +}

I am surprised you did not need the slr_add_entry() function. How do you 
add entries to the SLRT?

Thanks
Ross

> +
> +#endif /* _SLR_TABLE_H */



From xen-devel-bounces@lists.xenproject.org Tue Apr 22 20:54:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 20:54:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.963621.1354574 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7KdB-0002Qv-SH; Tue, 22 Apr 2025 20:54:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 963621.1354574; Tue, 22 Apr 2025 20: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 1u7KdB-0002Qo-Pm; Tue, 22 Apr 2025 20:54:13 +0000
Received: by outflank-mailman (input) for mailman id 963621;
 Tue, 22 Apr 2025 20:54: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=eQRL=XI=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u7KdA-0002Qh-U0
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 20:54:12 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ef78cf67-1fbb-11f0-9eb0-5ba50f476ded;
 Tue, 22 Apr 2025 22:54:11 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 5E22843A22;
 Tue, 22 Apr 2025 20:54:06 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id C9911C4CEE9;
 Tue, 22 Apr 2025 20:54: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: ef78cf67-1fbb-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1745355247;
	bh=BMIpjrE12oAKLIL7A8dG+r+KjAp2iS4MSD0NmPpAZdc=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=fuVQ6yUIcboANdxqdZAN3CxwW8WHsnCNQudBLhi2GSlaU8nOGxVqYUalPtjhHJ0lN
	 zpwKRil7pQ0hZfPxsIJ8rVr6SX1bHJIAIvl9O4cKeKjOagImKeGFIG1LPsOvpe1Mr2
	 mjPWQ8VbfKFNBzM4VlgKV6dKNOGT1lsqcdZs9ksOIkz8v2AYwerKo/TZ+GEhDk/eFI
	 +VP8cjeXIjSqszcJpWylf/HwXT3PvH1gCMmEDmNTNX34MtK2I3GDeaQ1MlObPghwIs
	 YKThJPluts4esK/S+iyICaVmWK/HzaomXqhoEXOhzzj7VwPWWLAXqcGu+YbeE5I7m3
	 88rKRmak6ngTA==
Date: Tue, 22 Apr 2025 13:54:06 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: dmkhn@proton.me
cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com, 
    cardoe@cardoe.com, marmarek@invisiblethingslab.com, sstabellini@kernel.org, 
    dmukhin@ford.com
Subject: Re: [PATCH v3 0/4] CI: updates to XTF CI runners
In-Reply-To: <20250422161819.2089738-1-dmukhin@ford.com>
Message-ID: <alpine.DEB.2.22.394.2504221353300.785180@ubuntu-linux-20-04-desktop>
References: <20250422161819.2089738-1-dmukhin@ford.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Tue, 22 Apr 2025, dmkhn@proton.me wrote:

> The series started from adding new argo XTF CI job and ended up with updating
> all XTF runners and related CI jobs.
> 
> It unifies the XTF runner scripts so that it is possible to use one script for
> executing any XTF test under QEMU. That simplifies running XTFs locally and in
> CI.
> 
> Patch 1 reworks x86 XTF runner.
> Patch 2 reworks x86 EFI XTF.
> Patch 3 reworks Arm64 XTF runner.
> Patch 4 adds new argo x86 XTF CI job.

I committed the first 3 patches. For the last patch, I take we need to
wait for the argo test to land in XTF?


From xen-devel-bounces@lists.xenproject.org Tue Apr 22 21:54:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 21:54:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.963644.1354609 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7LZT-00046D-6q; Tue, 22 Apr 2025 21:54:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 963644.1354609; Tue, 22 Apr 2025 21:54: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 1u7LZT-000466-4G; Tue, 22 Apr 2025 21:54:27 +0000
Received: by outflank-mailman (input) for mailman id 963644;
 Tue, 22 Apr 2025 21:54: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=8D33=XI=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u7LZQ-00045y-SI
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 21:54:25 +0000
Received: from mail-4316.protonmail.ch (mail-4316.protonmail.ch [185.70.43.16])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 58d3ca53-1fc4-11f0-9eb0-5ba50f476ded;
 Tue, 22 Apr 2025 23:54:22 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 58d3ca53-1fc4-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1745358860; x=1745618060;
	bh=LjVbmF3NWsK1zB/FLxBedwgZFIRKUK+ERhCkaW6RVO4=;
	h=Date:To:From:Cc:Subject:Message-ID:Feedback-ID:From:To:Cc:Date:
	 Subject:Reply-To:Feedback-ID:Message-ID:BIMI-Selector:
	 List-Unsubscribe:List-Unsubscribe-Post;
	b=DX8NaCjbxsHJu/ujGnkn5JnAJk62J0vKsg9yKSy0a2Ge9kLD45RqLqXDcQOpUjc3Z
	 o0WJDF+cIA482sNmSJ3on79Mfir8Dlc6s61kUqgFfjvWm5McApJ20YouMYauy1O5W7
	 tFtXkxOavZmC+iArYGxYJoA9aLYO+F9hfq5aQcOzcwF4ywL7x2j6wWBEa8ozIwgTOo
	 pj148m6uVneKPR4/lxaMLCiaiMRo0Mo7bU8HYHM5oPODRDkw1wanxUBQbI/2keQGSk
	 FoIudcT8gduPNAI0RQ5Cp8sYehpnD9D2xOXNaJZtQRLKyfVy+oc/PrHRjsNtggXBGb
	 +znvW7PCjomSw==
Date: Tue, 22 Apr 2025 21:54:15 +0000
To: xen-devel@lists.xenproject.org
From: dmkhn@proton.me
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org, dmukhin@ford.com
Subject: [PATCH v4] xen/domain: unify domain ID allocation
Message-ID: <20250422215322.521464-1-dmukhin@ford.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 6b5eaac72788aab661aee0fce5394525e5ff09c4
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

From: Denis Mukhin <dmukhin@ford.com>

Currently, hypervisor code has two different non-system domain ID allocatio=
n
algorithms:

  (a) Arm port allocates IDs sequentially based on max_init_domid;

  (b) x86 has another algorithm implementation embedded into
      XEN_DOMCTL_createdomain; does not use max_init_domid, but does simila=
r
      thing wrt sequentially allocating IDs.

It makes sense to have a common helper code for such task across architectu=
res
(Arm and x86).

Wrap the domain ID allocation as an arch-independent function domid_alloc()=
 in
common/domain.c.

Allocation algorithm:
- If an explicit domain ID is provided, verify its availability and
  use it if ID is unused;
- Otherwise, perform an exhaustive search starting from the end of the used
  domain ID range, excluding hardware_domid.

Move the is_free_domid() helper closer to domid_alloc(). Simplify
is_free_domid() by removing the domain ID range check, as the ID is now
guaranteed to be within the valid range. Additionally, update the predicate=
 to
return a bool value instead of an int.

No functional change intended.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
Changes v3->v4:
- fixed the behavior of domctl ID allocator to match the original behavior
  in case of exhaustive search
- use domid_t input argument in domid_alloc()
- use DOMID_INVALID as an indicator of performing an exhaustive search
- use DOMID_INVALID as an indicator of allocator failure
- use %pd formatting for domain ID printouts in the modified code
- some comments fixups
- Link to v2: https://lore.kernel.org/xen-devel/20250416061509.934220-1-dmu=
khin@ford.com/
- CI run: https://gitlab.com/xen-project/people/dmukhin/xen/-/pipelines/178=
0576277=20
---
 xen/arch/arm/dom0less-build.c | 17 ++++++------
 xen/arch/arm/domain_build.c   | 17 ++++++++----
 xen/arch/x86/setup.c          | 11 +++++---
 xen/common/domain.c           | 51 +++++++++++++++++++++++++++++++++++
 xen/common/domctl.c           | 41 +++-------------------------
 xen/include/xen/domain.h      |  2 ++
 6 files changed, 84 insertions(+), 55 deletions(-)

diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
index a356fc94fc..61e01b7306 100644
--- a/xen/arch/arm/dom0less-build.c
+++ b/xen/arch/arm/dom0less-build.c
@@ -1038,15 +1038,13 @@ void __init create_domUs(void)
         };
         unsigned int flags =3D 0U;
         bool has_dtb =3D false;
+        domid_t domid;
         uint32_t val;
         int rc;
=20
         if ( !dt_device_is_compatible(node, "xen,domain") )
             continue;
=20
-        if ( (max_init_domid + 1) >=3D DOMID_FIRST_RESERVED )
-            panic("No more domain IDs available\n");
-
         if ( dt_property_read_u32(node, "capabilities", &val) )
         {
             if ( val & ~DOMAIN_CAPS_MASK )
@@ -1218,12 +1216,13 @@ void __init create_domUs(void)
         if ( !llc_coloring_enabled && llc_colors_str )
             panic("'llc-colors' found, but LLC coloring is disabled\n");
=20
-        /*
-         * The variable max_init_domid is initialized with zero, so here i=
t's
-         * very important to use the pre-increment operator to call
-         * domain_create() with a domid > 0. (domid =3D=3D 0 is reserved f=
or Dom0)
-         */
-        d =3D domain_create(++max_init_domid, &d_cfg, flags);
+        domid =3D domid_alloc(DOMID_INVALID);
+        if ( domid =3D=3D DOMID_INVALID )
+            panic("Error allocating ID for domain %s\n", dt_node_name(node=
));
+        if ( max_init_domid < domid )
+            max_init_domid =3D domid;
+
+        d =3D domain_create(domid, &d_cfg, flags);
         if ( IS_ERR(d) )
             panic("Error creating domain %s (rc =3D %ld)\n",
                   dt_node_name(node), PTR_ERR(d));
diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index 270a6b97e4..fe968dd66b 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -2371,6 +2371,7 @@ void __init create_dom0(void)
         .grant_opts =3D XEN_DOMCTL_GRANT_version(opt_gnttab_max_version),
     };
     unsigned int flags =3D CDF_privileged | CDF_hardware;
+    domid_t domid;
     int rc;
=20
     /* The vGIC for DOM0 is exactly emulating the hardware GIC */
@@ -2395,19 +2396,25 @@ void __init create_dom0(void)
     if ( !llc_coloring_enabled )
         flags |=3D CDF_directmap;
=20
-    dom0 =3D domain_create(0, &dom0_cfg, flags);
+    domid =3D domid_alloc(get_initial_domain_id());
+    if ( domid =3D=3D  DOMID_INVALID )
+        panic("Error allocating domain ID %d\n", get_initial_domain_id());
+
+    dom0 =3D domain_create(domid, &dom0_cfg, flags);
     if ( IS_ERR(dom0) )
-        panic("Error creating domain 0 (rc =3D %ld)\n", PTR_ERR(dom0));
+        panic("Error creating domain %d (rc =3D %ld)\n", domid, PTR_ERR(do=
m0));
=20
     if ( llc_coloring_enabled && (rc =3D dom0_set_llc_colors(dom0)) )
-        panic("Error initializing LLC coloring for domain 0 (rc =3D %d)\n"=
, rc);
+        panic("Error initializing LLC coloring for domain %pd (rc =3D %d)\=
n",
+              dom0, rc);
=20
     if ( alloc_dom0_vcpu0(dom0) =3D=3D NULL )
-        panic("Error creating domain 0 vcpu0\n");
+        panic("Error creating domain %pdv0\n", dom0);
=20
     rc =3D construct_dom0(dom0);
     if ( rc )
-        panic("Could not set up DOM0 guest OS (rc =3D %d)\n", rc);
+        panic("Could not set up guest OS for domain %pd (rc =3D %d)\n",
+              dom0, rc);
=20
     set_xs_domain(dom0);
 }
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 24b36c1a59..e61c023085 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -1009,8 +1009,11 @@ static struct domain *__init create_dom0(struct boot=
_info *bi)
     if ( iommu_enabled )
         dom0_cfg.flags |=3D XEN_DOMCTL_CDF_iommu;
=20
-    /* Create initial domain.  Not d0 for pvshim. */
-    bd->domid =3D get_initial_domain_id();
+    /* Allocate initial domain ID. Not d0 for pvshim. */
+    bd->domid =3D domid_alloc(get_initial_domain_id());
+    if ( bd->domid =3D=3D DOMID_INVALID )
+        panic("Error allocating domain ID %d\n", get_initial_domain_id());
+
     d =3D domain_create(bd->domid, &dom0_cfg,
                       pv_shim ? 0 : CDF_privileged | CDF_hardware);
     if ( IS_ERR(d) )
@@ -1038,7 +1041,7 @@ static struct domain *__init create_dom0(struct boot_=
info *bi)
=20
         if ( (strlen(acpi_param) =3D=3D 0) && acpi_disabled )
         {
-            printk("ACPI is disabled, notifying Domain 0 (acpi=3Doff)\n");
+            printk("ACPI is disabled, notifying domain %pd (acpi=3Doff)\n"=
, d);
             safe_strcpy(acpi_param, "off");
         }
=20
@@ -1053,7 +1056,7 @@ static struct domain *__init create_dom0(struct boot_=
info *bi)
=20
     bd->d =3D d;
     if ( construct_dom0(bd) !=3D 0 )
-        panic("Could not construct domain 0\n");
+        panic("Could not construct domain %pd\n", d);
=20
     return d;
 }
diff --git a/xen/common/domain.c b/xen/common/domain.c
index abf1969e60..7c0f7a4990 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -66,6 +66,57 @@ DEFINE_RCU_READ_LOCK(domlist_read_lock);
 static struct domain *domain_hash[DOMAIN_HASH_SIZE];
 struct domain *domain_list;
=20
+/* Domain ID allocator */
+static unsigned int domid_last;
+
+static inline bool is_free_domid(domid_t dom)
+{
+    struct domain *d =3D rcu_lock_domain_by_id(dom);
+
+    if ( d )
+        rcu_unlock_domain(d);
+
+    return !d;
+}
+
+/*
+ * Allocate new domain ID based on the hint.
+ *
+ * If hint is outside of valid [0..DOMID_FIRST_RESERVED - 1] range of IDs,
+ * perform an exhaustive search starting from the end of the used domain I=
D
+ * range, excluding hardware_domid.
+ */
+domid_t domid_alloc(domid_t hint)
+{
+    domid_t domid =3D DOMID_INVALID;
+
+    if ( hint < DOMID_FIRST_RESERVED )
+    {
+        /* Exact match. */
+        if ( is_free_domid(hint) )
+            domid =3D hint;
+    }
+    else
+    {
+        for ( domid =3D domid_last + 1; domid !=3D domid_last; domid++ )
+        {
+            if ( domid =3D=3D DOMID_FIRST_RESERVED )
+                domid =3D 0;
+
+            if ( domid =3D=3D hardware_domid )
+                continue;
+
+            if ( is_free_domid(domid) )
+                break;
+        }
+
+        if ( domid !=3D domid_last )
+            domid_last =3D domid;
+    }
+
+    return domid;
+}
+
 /*
  * Insert a domain into the domlist/hash.  This allows the domain to be lo=
oked
  * up by domid, and therefore to be the subject of hypercalls/etc.
diff --git a/xen/common/domctl.c b/xen/common/domctl.c
index bfe2e1f9f0..2e02139660 100644
--- a/xen/common/domctl.c
+++ b/xen/common/domctl.c
@@ -49,20 +49,6 @@ static int xenctl_bitmap_to_nodemask(nodemask_t *nodemas=
k,
                                    MAX_NUMNODES);
 }
=20
-static inline int is_free_domid(domid_t dom)
-{
-    struct domain *d;
-
-    if ( dom >=3D DOMID_FIRST_RESERVED )
-        return 0;
-
-    if ( (d =3D rcu_lock_domain_by_id(dom)) =3D=3D NULL )
-        return 1;
-
-    rcu_unlock_domain(d);
-    return 0;
-}
-
 void getdomaininfo(struct domain *d, struct xen_domctl_getdomaininfo *info=
)
 {
     struct vcpu *v;
@@ -421,34 +407,15 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u=
_domctl)
=20
     case XEN_DOMCTL_createdomain:
     {
-        domid_t        dom;
-        static domid_t rover =3D 0;
+        domid_t domid =3D domid_alloc(op->domain);
=20
-        dom =3D op->domain;
-        if ( (dom > 0) && (dom < DOMID_FIRST_RESERVED) )
+        if ( domid =3D=3D DOMID_INVALID )
         {
             ret =3D -EEXIST;
-            if ( !is_free_domid(dom) )
-                break;
-        }
-        else
-        {
-            for ( dom =3D rover + 1; dom !=3D rover; dom++ )
-            {
-                if ( dom =3D=3D DOMID_FIRST_RESERVED )
-                    dom =3D 1;
-                if ( is_free_domid(dom) )
-                    break;
-            }
-
-            ret =3D -ENOMEM;
-            if ( dom =3D=3D rover )
-                break;
-
-            rover =3D dom;
+            break;
         }
=20
-        d =3D domain_create(dom, &op->u.createdomain, false);
+        d =3D domain_create(domid, &op->u.createdomain, false);
         if ( IS_ERR(d) )
         {
             ret =3D PTR_ERR(d);
diff --git a/xen/include/xen/domain.h b/xen/include/xen/domain.h
index e10baf2615..43e9411fc0 100644
--- a/xen/include/xen/domain.h
+++ b/xen/include/xen/domain.h
@@ -38,6 +38,8 @@ void arch_get_domain_info(const struct domain *d,
=20
 domid_t get_initial_domain_id(void);
=20
+domid_t domid_alloc(domid_t hint);
+
 /* CDF_* constant. Internal flags for domain creation. */
 /* Is this a privileged domain? */
 #define CDF_privileged           (1U << 0)
--=20
2.34.1




From xen-devel-bounces@lists.xenproject.org Tue Apr 22 21:59:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 21:59:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.963656.1354618 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7LeZ-0004jY-Oi; Tue, 22 Apr 2025 21:59:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 963656.1354618; Tue, 22 Apr 2025 21:59: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 1u7LeZ-0004jR-Lo; Tue, 22 Apr 2025 21:59:43 +0000
Received: by outflank-mailman (input) for mailman id 963656;
 Tue, 22 Apr 2025 21:59: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=8D33=XI=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u7LeY-0004jL-2m
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 21:59:42 +0000
Received: from mail-10629.protonmail.ch (mail-10629.protonmail.ch
 [79.135.106.29]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1676e483-1fc5-11f0-9ffb-bf95429c2676;
 Tue, 22 Apr 2025 23:59:39 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1676e483-1fc5-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1745359176; x=1745618376;
	bh=2+oH3BWGDwwjZQ2cDZSmMq4tzizV5ZVbPr1C0BWN/7k=;
	h=Date:To:From:Cc:Subject:Message-ID:Feedback-ID:From:To:Cc:Date:
	 Subject:Reply-To:Feedback-ID:Message-ID:BIMI-Selector:
	 List-Unsubscribe:List-Unsubscribe-Post;
	b=b9GB7vLH8nxShnT5wk1ewE0/J/STpmFVgySUMxcGfKtldMEs+fruBO07Er6ahHsQI
	 DqvJmNssXUJ+iWfx2M/FYnnWsXMJl8Rr6Tq88pk8GS4a4jWpqg/cKZUVm4VyQHARyJ
	 eIXsbYm8QZoFnvCBlESvjWRC3+Jj229AsZKS7RrMjTgLhSMIoJ9VwoiixozNX7fRHp
	 Pxc8hTMEpXzHliDp0W9GbRKPdyaa9zAEacDlUUJRPGJPG+AXRc4tufq/2nCQJfqt+D
	 IoZd+Rem1SirKBciRZz8Tis0sbS/weievXtwh0b8YbX+ly3HDWD/jnGSiHE7bpn+9n
	 iY6+D0bKr04uA==
Date: Tue, 22 Apr 2025 21:59:30 +0000
To: xen-devel@lists.xenproject.org
From: dmkhn@proton.me
Cc: andrew.cooper3@citrix.com, jbeulich@suse.com, roger.pau@citrix.com, dmukhin@ford.com
Subject: [PATCH v3] x86/vmx: Update __vmread() signature
Message-ID: <20250422215833.522007-1-dmukhin@ford.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 69e969bfbe84103eebbeaecfccc4383df922d35d
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

From: Denis Mukhin <dmukhin@ford.com>

Current implementation of __vmread() returns the result via pointer argumen=
t
which leads to having excess code in some places.

Update the signature of __vmread() to return `unsigned long` and drop the
pointer argument as per suggestion in [1].

Rename __vmread() to vmread() as per suggestion in [2].

Update all call sites everywhere in the VT-x code.

[1] https://lore.kernel.org/xen-devel/c452a1d7-4a57-4c5f-8a83-36a74ff228ec@=
citrix.com/
[2] https://lore.kernel.org/xen-devel/0d01646b-83e3-4a02-b365-d149d2664e73@=
citrix.com/

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
Changes v2->v3:
- renamed __vmread() to vmread() as per suggestion in [2]
- Link to v2: https://lore.kernel.org/xen-devel/20250422011530.3010312-1-dm=
ukhin@ford.com/
- CI run: https://gitlab.com/xen-project/people/dmukhin/xen/-/pipelines/178=
0259753
---
 docs/misra/function-macro-properties.json |   2 +-
 xen/arch/x86/cpu/vpmu_intel.c             |   3 +-
 xen/arch/x86/hvm/vmx/intr.c               |  26 +--
 xen/arch/x86/hvm/vmx/realmode.c           |   2 +-
 xen/arch/x86/hvm/vmx/vmcs.c               |  11 +-
 xen/arch/x86/hvm/vmx/vmx.c                | 210 ++++++++++------------
 xen/arch/x86/hvm/vmx/vvmx.c               |  43 ++---
 xen/arch/x86/include/asm/domain.h         |   2 +-
 xen/arch/x86/include/asm/hvm/vmx/vmx.h    |  19 +-
 9 files changed, 135 insertions(+), 183 deletions(-)

diff --git a/docs/misra/function-macro-properties.json b/docs/misra/functio=
n-macro-properties.json
index 74058297b5..10b436e758 100644
--- a/docs/misra/function-macro-properties.json
+++ b/docs/misra/function-macro-properties.json
@@ -154,7 +154,7 @@
       },
       {
          "type": "function",
-         "value": "^__vmread.*$",
+         "value": "^vmread.*$",
          "properties":{
             "pointee_write": "2=3Dalways",
             "pointee_read": "2=3Dnever",
diff --git a/xen/arch/x86/cpu/vpmu_intel.c b/xen/arch/x86/cpu/vpmu_intel.c
index 7ce98ee42e..7860b7c055 100644
--- a/xen/arch/x86/cpu/vpmu_intel.c
+++ b/xen/arch/x86/cpu/vpmu_intel.c
@@ -796,8 +796,7 @@ static int cf_check core2_vpmu_do_interrupt(void)
     else
     {
         /* No PMC overflow but perhaps a Trace Message interrupt. */
-        __vmread(GUEST_IA32_DEBUGCTL, &msr_content);
-        if ( !(msr_content & IA32_DEBUGCTLMSR_TR) )
+        if ( !(vmread(GUEST_IA32_DEBUGCTL) & IA32_DEBUGCTLMSR_TR) )
             return 0;
     }
=20
diff --git a/xen/arch/x86/hvm/vmx/intr.c b/xen/arch/x86/hvm/vmx/intr.c
index 91b407e6bc..07b0811fd5 100644
--- a/xen/arch/x86/hvm/vmx/intr.c
+++ b/xen/arch/x86/hvm/vmx/intr.c
@@ -63,9 +63,8 @@ static void vmx_enable_intr_window(struct vcpu *v, struct=
 hvm_intack intack)
=20
     if ( unlikely(tb_init_done) )
     {
-        unsigned long intr;
+        unsigned long intr =3D vmread(VM_ENTRY_INTR_INFO);
=20
-        __vmread(VM_ENTRY_INTR_INFO, &intr);
         TRACE(TRC_HVM_INTR_WINDOW, intack.vector, intack.source,
               (intr & INTR_INFO_VALID_MASK) ? intr & 0xff : -1);
     }
@@ -81,9 +80,8 @@ static void vmx_enable_intr_window(struct vcpu *v, struct=
 hvm_intack intack)
          * we may immediately vmexit and hance make no progress!
          * (see SDM 3B 21.3, "Other Causes of VM Exits").
          */
-        unsigned long intr_shadow;
+        unsigned long intr_shadow =3D vmread(GUEST_INTERRUPTIBILITY_INFO);
=20
-        __vmread(GUEST_INTERRUPTIBILITY_INFO, &intr_shadow);
         if ( intr_shadow & VMX_INTR_SHADOW_STI )
         {
             /* Having both STI-blocking and MOV-SS-blocking fails vmentry.=
 */
@@ -144,14 +142,8 @@ enum hvm_intblk cf_check nvmx_intr_blocked(struct vcpu=
 *v)
         if ( nvcpu->nv_vmexit_pending ||
              nvcpu->nv_vmswitch_in_progress )
             r =3D hvm_intblk_rflags_ie;
-        else
-        {
-            unsigned long intr_info;
-
-            __vmread(VM_ENTRY_INTR_INFO, &intr_info);
-            if ( intr_info & INTR_INFO_VALID_MASK )
-                r =3D hvm_intblk_rflags_ie;
-        }
+        else if ( vmread(VM_ENTRY_INTR_INFO) & INTR_INFO_VALID_MASK )
+            r =3D hvm_intblk_rflags_ie;
     }
     else if ( nvcpu->nv_vmentry_pending )
         r =3D hvm_intblk_rflags_ie;
@@ -253,8 +245,6 @@ void asmlinkage vmx_intr_assist(void)
     pt_vector =3D pt_update_irq(v);
=20
     do {
-        unsigned long intr_info;
-
         intack =3D hvm_vcpu_has_pending_irq(v);
         if ( likely(intack.source =3D=3D hvm_intsrc_none) )
             goto out;
@@ -275,8 +265,7 @@ void asmlinkage vmx_intr_assist(void)
                 goto out;
             }
=20
-            __vmread(VM_ENTRY_INTR_INFO, &intr_info);
-            if ( intr_info & INTR_INFO_VALID_MASK )
+            if ( vmread(VM_ENTRY_INTR_INFO) & INTR_INFO_VALID_MASK )
             {
                 if ( (intack.source =3D=3D hvm_intsrc_pic) ||
                      (intack.source =3D=3D hvm_intsrc_nmi) ||
@@ -299,8 +288,7 @@ void asmlinkage vmx_intr_assist(void)
         }
         else
         {
-            __vmread(VM_ENTRY_INTR_INFO, &intr_info);
-            if ( intr_info & INTR_INFO_VALID_MASK )
+            if ( vmread(VM_ENTRY_INTR_INFO) & INTR_INFO_VALID_MASK )
             {
                 vmx_enable_intr_window(v, intack);
                 goto out;
@@ -377,7 +365,7 @@ void asmlinkage vmx_intr_assist(void)
         }
=20
         /* we need update the RVI field */
-        __vmread(GUEST_INTR_STATUS, &status);
+        status =3D vmread(GUEST_INTR_STATUS);
         status &=3D ~VMX_GUEST_INTR_STATUS_SUBFIELD_BITMASK;
         status |=3D VMX_GUEST_INTR_STATUS_SUBFIELD_BITMASK &
                     intack.vector;
diff --git a/xen/arch/x86/hvm/vmx/realmode.c b/xen/arch/x86/hvm/vmx/realmod=
e.c
index ff44ddcfa6..40cbc273d0 100644
--- a/xen/arch/x86/hvm/vmx/realmode.c
+++ b/xen/arch/x86/hvm/vmx/realmode.c
@@ -159,7 +159,7 @@ void vmx_realmode(struct cpu_user_regs *regs)
     unsigned int emulations =3D 0;
=20
     /* Get-and-clear VM_ENTRY_INTR_INFO. */
-    __vmread(VM_ENTRY_INTR_INFO, &intr_info);
+    intr_info =3D vmread(VM_ENTRY_INTR_INFO);
     if ( intr_info & INTR_INFO_VALID_MASK )
         __vmwrite(VM_ENTRY_INTR_INFO, 0);
=20
diff --git a/xen/arch/x86/hvm/vmx/vmcs.c b/xen/arch/x86/hvm/vmx/vmcs.c
index a44475ae15..2386e67d28 100644
--- a/xen/arch/x86/hvm/vmx/vmcs.c
+++ b/xen/arch/x86/hvm/vmx/vmcs.c
@@ -1031,7 +1031,7 @@ u64 virtual_vmcs_vmread(const struct vcpu *v, u32 vmc=
s_encoding)
     u64 res;
=20
     virtual_vmcs_enter(v);
-    __vmread(vmcs_encoding, &res);
+    res =3D vmread(vmcs_encoding);
     virtual_vmcs_exit(v);
=20
     return res;
@@ -1691,7 +1691,7 @@ void vmx_vcpu_flush_pml_buffer(struct vcpu *v)
=20
     vmx_vmcs_enter(v);
=20
-    __vmread(GUEST_PML_INDEX, &pml_idx);
+    pml_idx =3D vmread(GUEST_PML_INDEX);
=20
     /* Do nothing if PML buffer is empty. */
     if ( pml_idx =3D=3D (NR_PML_ENTRIES - 1) )
@@ -1874,9 +1874,8 @@ void vmx_destroy_vmcs(struct vcpu *v)
 void vmx_vmentry_failure(void)
 {
     struct vcpu *curr =3D current;
-    unsigned long error;
+    unsigned long error =3D vmread(VM_INSTRUCTION_ERROR);
=20
-    __vmread(VM_INSTRUCTION_ERROR, &error);
     gprintk(XENLOG_ERR, "VM%s error: %#lx\n",
             curr->arch.hvm.vmx.launched ? "RESUME" : "LAUNCH", error);
=20
@@ -1905,7 +1904,6 @@ void cf_check vmx_do_resume(void)
 {
     struct vcpu *v =3D current;
     bool debug_state;
-    unsigned long host_cr4;
=20
     if ( v->arch.hvm.vmx.active_cpu =3D=3D smp_processor_id() )
         vmx_vmcs_reload(v);
@@ -1957,8 +1955,7 @@ void cf_check vmx_do_resume(void)
     hvm_do_resume(v);
=20
     /* Sync host CR4 in case its value has changed. */
-    __vmread(HOST_CR4, &host_cr4);
-    if ( host_cr4 !=3D read_cr4() )
+    if ( vmread(HOST_CR4) !=3D read_cr4() )
         __vmwrite(HOST_CR4, read_cr4());
=20
     reset_stack_and_jump(vmx_asm_do_vmentry);
diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c
index 4883bd823d..272b3144d1 100644
--- a/xen/arch/x86/hvm/vmx/vmx.c
+++ b/xen/arch/x86/hvm/vmx/vmx.c
@@ -902,7 +902,7 @@ int cf_check vmx_guest_x86_mode(struct vcpu *v)
         return X86_MODE_REAL;
     if ( unlikely(guest_cpu_user_regs()->eflags & X86_EFLAGS_VM) )
         return X86_MODE_VM86;
-    __vmread(GUEST_CS_AR_BYTES, &cs_ar_bytes);
+    cs_ar_bytes =3D vmread(GUEST_CS_AR_BYTES);
     if ( hvm_long_mode_active(v) &&
          likely(cs_ar_bytes & X86_SEG_AR_CS_LM_ACTIVE) )
         return X86_MODE_64BIT;
@@ -926,7 +926,7 @@ static void vmx_save_dr(struct vcpu *v)
     v->arch.dr[3] =3D read_debugreg(3);
     v->arch.dr6   =3D read_debugreg(6);
     /* DR7 must be saved as it is used by vmx_restore_dr(). */
-    __vmread(GUEST_DR7, &v->arch.dr7);
+    v->arch.dr7 =3D vmread(GUEST_DR7);
 }
=20
 static void __restore_debug_registers(struct vcpu *v)
@@ -952,7 +952,7 @@ static void __restore_debug_registers(struct vcpu *v)
  */
 static void vmx_restore_dr(struct vcpu *v)
 {
-    /* NB. __vmread() is not usable here, so we cannot read from the VMCS.=
 */
+    /* NB. vmread() is not usable here, so we cannot read from the VMCS. *=
/
     if ( unlikely(v->arch.dr7 & DR7_ACTIVE_MASK) )
         __restore_debug_registers(v);
 }
@@ -963,17 +963,17 @@ static void vmx_vmcs_save(struct vcpu *v, struct hvm_=
hw_cpu *c)
=20
     vmx_vmcs_enter(v);
=20
-    __vmread(GUEST_SYSENTER_CS, &c->sysenter_cs);
-    __vmread(GUEST_SYSENTER_ESP, &c->sysenter_esp);
-    __vmread(GUEST_SYSENTER_EIP, &c->sysenter_eip);
+    c->sysenter_cs =3D vmread(GUEST_SYSENTER_CS);
+    c->sysenter_esp =3D vmread(GUEST_SYSENTER_ESP);
+    c->sysenter_eip =3D vmread(GUEST_SYSENTER_EIP);
=20
-    __vmread(VM_ENTRY_INTR_INFO, &ev);
+    ev =3D vmread(VM_ENTRY_INTR_INFO);
     if ( (ev & INTR_INFO_VALID_MASK) &&
          hvm_event_needs_reinjection(MASK_EXTR(ev, INTR_INFO_INTR_TYPE_MAS=
K),
                                      ev & INTR_INFO_VECTOR_MASK) )
     {
         c->pending_event =3D ev;
-        __vmread(VM_ENTRY_EXCEPTION_ERROR_CODE, &ev);
+        ev =3D vmread(VM_ENTRY_EXCEPTION_ERROR_CODE);
         c->error_code =3D ev;
     }
=20
@@ -1197,11 +1197,7 @@ static void cf_check vmx_ctxt_switch_to(struct vcpu =
*v)
=20
 unsigned int vmx_get_cpl(void)
 {
-    unsigned long attr;
-
-    __vmread(GUEST_SS_AR_BYTES, &attr);
-
-    return MASK_EXTR(attr, X86_SEG_AR_DPL);
+    return MASK_EXTR(vmread(GUEST_SS_AR_BYTES), X86_SEG_AR_DPL);
 }
=20
 static unsigned int cf_check _vmx_get_cpl(struct vcpu *v)
@@ -1271,14 +1267,14 @@ static void cf_check vmx_get_segment_register(
         fallthrough;
=20
     case x86_seg_es ... x86_seg_gs:
-        __vmread(GUEST_SEG_SELECTOR(tmp_seg), &sel);
-        __vmread(GUEST_SEG_AR_BYTES(tmp_seg), &attr);
+        sel =3D vmread(GUEST_SEG_SELECTOR(tmp_seg));
+        attr =3D vmread(GUEST_SEG_AR_BYTES(tmp_seg));
         fallthrough;
=20
     case x86_seg_gdtr:
     case x86_seg_idtr:
-        __vmread(GUEST_SEG_LIMIT(tmp_seg),    &limit);
-        __vmread(GUEST_SEG_BASE(tmp_seg),     &reg->base);
+        limit =3D vmread(GUEST_SEG_LIMIT(tmp_seg));
+        reg->base =3D vmread(GUEST_SEG_BASE(tmp_seg));
         break;
=20
     default:
@@ -1436,7 +1432,7 @@ static int cf_check vmx_get_guest_pat(struct vcpu *v,=
 u64 *gpat)
         return 0;
=20
     vmx_vmcs_enter(v);
-    __vmread(GUEST_PAT, gpat);
+    *gpat =3D vmread(GUEST_PAT);
     vmx_vmcs_exit(v);
     return 1;
 }
@@ -1555,11 +1551,7 @@ static void cf_check vmx_init_hypercall_page(void *p=
)
=20
 static unsigned int cf_check vmx_get_interrupt_shadow(struct vcpu *v)
 {
-    unsigned long intr_shadow;
-
-    __vmread(GUEST_INTERRUPTIBILITY_INFO, &intr_shadow);
-
-    return intr_shadow;
+    return vmread(GUEST_INTERRUPTIBILITY_INFO);
 }
=20
 static void cf_check vmx_set_interrupt_shadow(
@@ -1573,12 +1565,12 @@ static void cf_check vmx_get_nonreg_state(struct vc=
pu *v,
 {
     vmx_vmcs_enter(v);
=20
-    __vmread(GUEST_ACTIVITY_STATE, &nrs->vmx.activity_state);
-    __vmread(GUEST_INTERRUPTIBILITY_INFO, &nrs->vmx.interruptibility_info)=
;
-    __vmread(GUEST_PENDING_DBG_EXCEPTIONS, &nrs->vmx.pending_dbg);
+    nrs->vmx.activity_state =3D vmread(GUEST_ACTIVITY_STATE);
+    nrs->vmx.interruptibility_info =3D vmread(GUEST_INTERRUPTIBILITY_INFO)=
;
+    nrs->vmx.pending_dbg =3D vmread(GUEST_PENDING_DBG_EXCEPTIONS);
=20
     if ( cpu_has_vmx_virtual_intr_delivery )
-        __vmread(GUEST_INTR_STATUS, &nrs->vmx.interrupt_status);
+        nrs->vmx.interrupt_status =3D vmread(GUEST_INTR_STATUS);
=20
     vmx_vmcs_exit(v);
 }
@@ -1896,7 +1888,7 @@ static void cf_check vmx_update_guest_efer(struct vcp=
u *v)
      * The intended guest running mode is derived from VM_ENTRY_IA32E_MODE=
,
      * which (architecturally) is the guest's LMA setting.
      */
-    __vmread(VM_ENTRY_CONTROLS, &entry_ctls);
+    entry_ctls =3D vmread(VM_ENTRY_CONTROLS);
=20
     entry_ctls &=3D ~VM_ENTRY_IA32E_MODE;
     if ( guest_efer & EFER_LMA )
@@ -2063,9 +2055,10 @@ static void cf_check vmx_inject_event(const struct x=
86_event *event)
         {
             unsigned long val;
=20
-            __vmread(GUEST_DR7, &val);
+            val =3D vmread(GUEST_DR7);
             __vmwrite(GUEST_DR7, val & ~DR_GENERAL_DETECT);
-            __vmread(GUEST_IA32_DEBUGCTL, &val);
+
+            val =3D vmread(GUEST_IA32_DEBUGCTL);
             __vmwrite(GUEST_IA32_DEBUGCTL, val & ~IA32_DEBUGCTLMSR_LBR);
         }
         if ( cpu_has_monitor_trap_flag )
@@ -2089,7 +2082,7 @@ static void cf_check vmx_inject_event(const struct x8=
6_event *event)
     if ( nestedhvm_vcpu_in_guestmode(curr) )
         intr_info =3D vcpu_2_nvmx(curr).intr.intr_info;
     else
-        __vmread(VM_ENTRY_INTR_INFO, &intr_info);
+        intr_info =3D vmread(VM_ENTRY_INTR_INFO);
=20
     if ( unlikely(intr_info & INTR_INFO_VALID_MASK) &&
          (MASK_EXTR(intr_info, INTR_INFO_INTR_TYPE_MASK) =3D=3D X86_ET_HW_=
EXC) )
@@ -2125,12 +2118,9 @@ static void cf_check vmx_inject_event(const struct x=
86_event *event)
=20
 static bool cf_check vmx_event_pending(const struct vcpu *v)
 {
-    unsigned long intr_info;
-
     ASSERT(v =3D=3D current);
-    __vmread(VM_ENTRY_INTR_INFO, &intr_info);
=20
-    return intr_info & INTR_INFO_VALID_MASK;
+    return vmread(VM_ENTRY_INTR_INFO) & INTR_INFO_VALID_MASK;
 }
=20
 static void cf_check vmx_set_info_guest(struct vcpu *v)
@@ -2149,7 +2139,7 @@ static void cf_check vmx_set_info_guest(struct vcpu *=
v)
      * to set the GUEST_PENDING_DBG_EXCEPTIONS.BS here incurs
      * immediately vmexit and hence make no progress.
      */
-    __vmread(GUEST_INTERRUPTIBILITY_INFO, &intr_shadow);
+    intr_shadow =3D vmread(GUEST_INTERRUPTIBILITY_INFO);
     if ( v->domain->debugger_attached &&
          (v->arch.user_regs.eflags & X86_EFLAGS_TF) &&
          (intr_shadow & VMX_INTR_SHADOW_STI) )
@@ -2178,7 +2168,7 @@ static u8 set_svi(int isr)
     if ( isr < 0 )
         isr =3D 0;
=20
-    __vmread(GUEST_INTR_STATUS, &status);
+    status =3D vmread(GUEST_INTR_STATUS);
     old =3D status >> VMX_GUEST_INTR_STATUS_SVI_OFFSET;
     if ( isr !=3D old )
     {
@@ -2518,9 +2508,9 @@ static bool cf_check vmx_vcpu_emulate_ve(struct vcpu =
*v)
     veinfo->eptp_index =3D vcpu_altp2m(v).p2midx;
=20
     vmx_vmcs_enter(v);
-    __vmread(EXIT_QUALIFICATION, &veinfo->exit_qualification);
-    __vmread(GUEST_LINEAR_ADDRESS, &veinfo->gla);
-    __vmread(GUEST_PHYSICAL_ADDRESS, &veinfo->gpa);
+    veinfo->exit_qualification =3D vmread(EXIT_QUALIFICATION);
+    veinfo->gla =3D vmread(GUEST_LINEAR_ADDRESS);
+    veinfo->gpa =3D vmread(GUEST_PHYSICAL_ADDRESS);
     vmx_vmcs_exit(v);
=20
     hvm_inject_hw_exception(X86_EXC_VE,
@@ -2541,8 +2531,8 @@ static bool cf_check vmx_get_pending_event(
     unsigned long intr_info, error_code;
=20
     vmx_vmcs_enter(v);
-    __vmread(VM_ENTRY_INTR_INFO, &intr_info);
-    __vmread(VM_ENTRY_EXCEPTION_ERROR_CODE, &error_code);
+    intr_info =3D vmread(VM_ENTRY_INTR_INFO);
+    error_code =3D vmread(VM_ENTRY_EXCEPTION_ERROR_CODE);
     vmx_vmcs_exit(v);
=20
     if ( !(intr_info & INTR_INFO_VALID_MASK) )
@@ -2739,11 +2729,11 @@ static uint64_t cf_check vmx_get_reg(struct vcpu *v=
, unsigned int reg)
     {
     case MSR_SPEC_CTRL:
         ASSERT(cpu_has_vmx_virt_spec_ctrl);
-        __vmread(SPEC_CTRL_SHADOW, &val);
+        val =3D vmread(SPEC_CTRL_SHADOW);
         break;
=20
     case MSR_IA32_BNDCFGS:
-        __vmread(GUEST_BNDCFGS, &val);
+        val =3D vmread(GUEST_BNDCFGS);
         break;
=20
     default:
@@ -3161,9 +3151,9 @@ void __init vmx_fill_funcs(void)
  */
 static int get_instruction_length(void)
 {
-    unsigned long len;
+    /* Safe: callers audited */
+    unsigned long len =3D vmread(VM_EXIT_INSTRUCTION_LEN);
=20
-    __vmread(VM_EXIT_INSTRUCTION_LEN, &len); /* Safe: callers audited */
     BUG_ON((len < 1) || (len > MAX_INST_LEN));
     return len;
 }
@@ -3176,7 +3166,7 @@ void update_guest_eip(void)
     regs->rip +=3D get_instruction_length(); /* Safe: callers audited */
     regs->eflags &=3D ~X86_EFLAGS_RF;
=20
-    __vmread(GUEST_INTERRUPTIBILITY_INFO, &x);
+    x =3D vmread(GUEST_INTERRUPTIBILITY_INFO);
     if ( x & (VMX_INTR_SHADOW_STI | VMX_INTR_SHADOW_MOV_SS) )
     {
         x &=3D ~(VMX_INTR_SHADOW_STI | VMX_INTR_SHADOW_MOV_SS);
@@ -3424,21 +3414,21 @@ static int cf_check vmx_msr_read_intercept(
     switch ( msr )
     {
     case MSR_IA32_SYSENTER_CS:
-        __vmread(GUEST_SYSENTER_CS, msr_content);
+        *msr_content =3D vmread(GUEST_SYSENTER_CS);
         break;
     case MSR_IA32_SYSENTER_ESP:
-        __vmread(GUEST_SYSENTER_ESP, msr_content);
+        *msr_content =3D vmread(GUEST_SYSENTER_ESP);
         break;
     case MSR_IA32_SYSENTER_EIP:
-        __vmread(GUEST_SYSENTER_EIP, msr_content);
+        *msr_content =3D vmread(GUEST_SYSENTER_EIP);
         break;
=20
     case MSR_FS_BASE:
-        __vmread(GUEST_FS_BASE, msr_content);
+        *msr_content =3D vmread(GUEST_FS_BASE);
         break;
=20
     case MSR_GS_BASE:
-        __vmread(GUEST_GS_BASE, msr_content);
+        *msr_content =3D vmread(GUEST_GS_BASE);
         break;
=20
     case MSR_SHADOW_GS_BASE:
@@ -3462,7 +3452,7 @@ static int cf_check vmx_msr_read_intercept(
         break;
=20
     case MSR_IA32_DEBUGCTLMSR:
-        __vmread(GUEST_IA32_DEBUGCTL, msr_content);
+        *msr_content =3D vmread(GUEST_IA32_DEBUGCTL);
         break;
=20
     case MSR_IA32_VMX_BASIC...MSR_IA32_VMX_VMFUNC:
@@ -3828,7 +3818,7 @@ static void vmx_do_extint(struct cpu_user_regs *regs)
 {
     unsigned long vector;
=20
-    __vmread(VM_EXIT_INTR_INFO, &vector);
+    vector =3D vmread(VM_EXIT_INTR_INFO);
     BUG_ON(!(vector & INTR_INFO_VALID_MASK));
=20
     vector &=3D INTR_INFO_VECTOR_MASK;
@@ -3893,7 +3883,7 @@ static void ept_handle_violation(ept_qual_t q, paddr_=
t gpa)
=20
     if ( q.gla_valid )
     {
-        __vmread(GUEST_LINEAR_ADDRESS, &gla);
+        gla =3D vmread(GUEST_LINEAR_ADDRESS);
         npfec.gla_valid =3D 1;
         if( q.gla_fault )
             npfec.kind =3D npfec_kind_with_gla;
@@ -3944,7 +3934,7 @@ static void vmx_failed_vmentry(unsigned int exit_reas=
on,
     struct vcpu *curr =3D current;
=20
     printk("%pv vmentry failure (reason %#x): ", curr, exit_reason);
-    __vmread(EXIT_QUALIFICATION, &exit_qualification);
+    exit_qualification =3D vmread(EXIT_QUALIFICATION);
     switch ( failed_vmentry_reason )
     {
     case EXIT_REASON_INVALID_GUEST_STATE:
@@ -4001,13 +3991,12 @@ void vmx_enter_realmode(struct cpu_user_regs *regs)
=20
 static int vmx_handle_eoi_write(void)
 {
-    unsigned long exit_qualification;
+    unsigned long exit_qualification =3D vmread(EXIT_QUALIFICATION);
=20
     /*
      * 1. Must be a linear access data write.
      * 2. Data write must be to the EOI register.
      */
-    __vmread(EXIT_QUALIFICATION, &exit_qualification);
     if ( (((exit_qualification >> 12) & 0xf) =3D=3D 1) &&
          ((exit_qualification & 0xfff) =3D=3D APIC_EOI) )
     {
@@ -4033,21 +4022,14 @@ static void vmx_propagate_intr(unsigned long intr)
         .vector =3D MASK_EXTR(intr, INTR_INFO_VECTOR_MASK),
         .type =3D MASK_EXTR(intr, INTR_INFO_INTR_TYPE_MASK),
     };
-    unsigned long tmp;
=20
     if ( intr & INTR_INFO_DELIVER_CODE_MASK )
-    {
-        __vmread(VM_EXIT_INTR_ERROR_CODE, &tmp);
-        event.error_code =3D tmp;
-    }
+        event.error_code =3D vmread(VM_EXIT_INTR_ERROR_CODE);
     else
         event.error_code =3D X86_EVENT_NO_EC;
=20
     if ( event.type >=3D X86_ET_SW_INT )
-    {
-        __vmread(VM_EXIT_INSTRUCTION_LEN, &tmp);
-        event.insn_len =3D tmp;
-    }
+        event.insn_len =3D vmread(VM_EXIT_INSTRUCTION_LEN);
     else
         event.insn_len =3D 0;
=20
@@ -4071,7 +4053,7 @@ static void vmx_idtv_reinject(unsigned long idtv_info=
)
             {
                 unsigned long ec;
=20
-                __vmread(IDT_VECTORING_ERROR_CODE, &ec);
+                ec =3D vmread(IDT_VECTORING_ERROR_CODE);
                 __vmwrite(VM_ENTRY_EXCEPTION_ERROR_CODE, ec);
             }
         }
@@ -4086,7 +4068,7 @@ static void vmx_idtv_reinject(unsigned long idtv_info=
)
         {
             unsigned long intr_info;
=20
-            __vmread(GUEST_INTERRUPTIBILITY_INFO, &intr_info);
+            intr_info =3D vmread(GUEST_INTERRUPTIBILITY_INFO);
             __vmwrite(GUEST_INTERRUPTIBILITY_INFO,
                       intr_info & ~VMX_INTR_SHADOW_NMI);
         }
@@ -4111,8 +4093,8 @@ static void vmx_handle_descriptor_access(uint32_t exi=
t_reason)
     uint64_t exit_qualification;
     unsigned int desc;
=20
-    __vmread(EXIT_QUALIFICATION, &exit_qualification);
-    __vmread(VMX_INSTRUCTION_INFO, &instr_info);
+    exit_qualification =3D vmread(EXIT_QUALIFICATION);
+    instr_info =3D vmread(VMX_INSTRUCTION_INFO);
=20
     if ( exit_reason =3D=3D EXIT_REASON_ACCESS_GDTR_OR_IDTR )
     {
@@ -4137,7 +4119,7 @@ static int vmx_handle_apic_write(void)
     unsigned long exit_qualification;
=20
     ASSERT(cpu_has_vmx_apic_reg_virt);
-    __vmread(EXIT_QUALIFICATION, &exit_qualification);
+    exit_qualification =3D vmread(EXIT_QUALIFICATION);
=20
     return vlapic_apicv_write(current, exit_qualification & 0xfff);
 }
@@ -4146,7 +4128,7 @@ static void undo_nmis_unblocked_by_iret(void)
 {
     unsigned long guest_info;
=20
-    __vmread(GUEST_INTERRUPTIBILITY_INFO, &guest_info);
+    guest_info =3D vmread(GUEST_INTERRUPTIBILITY_INFO);
     __vmwrite(GUEST_INTERRUPTIBILITY_INFO,
               guest_info | VMX_INTR_SHADOW_NMI);
 }
@@ -4159,12 +4141,12 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_=
regs *regs)
     struct vcpu *v =3D current;
     struct domain *currd =3D v->domain;
=20
-    __vmread(GUEST_RIP,    &regs->rip);
-    __vmread(GUEST_RSP,    &regs->rsp);
-    __vmread(GUEST_RFLAGS, &regs->rflags);
+    regs->rip =3D vmread(GUEST_RIP);
+    regs->rsp =3D vmread(GUEST_RSP);
+    regs->rflags =3D vmread(GUEST_RFLAGS);
=20
     if ( hvm_long_mode_active(v) )
-        __vmread(GUEST_CS_AR_BYTES, &cs_ar_bytes);
+        cs_ar_bytes =3D vmread(GUEST_CS_AR_BYTES);
=20
     hvm_sanitize_regs_fields(regs, !(cs_ar_bytes & X86_SEG_AR_CS_LM_ACTIVE=
));
=20
@@ -4174,17 +4156,17 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_=
regs *regs)
          * Xen allows the guest to modify some CR4 bits directly, update c=
ached
          * values to match.
          */
-        __vmread(GUEST_CR4, &v->arch.hvm.hw_cr[4]);
+        v->arch.hvm.hw_cr[4] =3D vmread(GUEST_CR4);
         v->arch.hvm.guest_cr[4] &=3D v->arch.hvm.vmx.cr4_host_mask;
         v->arch.hvm.guest_cr[4] |=3D (v->arch.hvm.hw_cr[4] &
                                     ~v->arch.hvm.vmx.cr4_host_mask);
=20
-        __vmread(GUEST_CR3, &v->arch.hvm.hw_cr[3]);
+        v->arch.hvm.hw_cr[3] =3D vmread(GUEST_CR3);
         if ( vmx_unrestricted_guest(v) || hvm_paging_enabled(v) )
             v->arch.hvm.guest_cr[3] =3D v->arch.hvm.hw_cr[3];
     }
=20
-    __vmread(VM_EXIT_REASON, &exit_reason);
+    exit_reason =3D vmread(VM_EXIT_REASON);
=20
     if ( hvm_long_mode_active(v) )
         TRACE_TIME(TRC_HVM_VMX_EXIT64, exit_reason, regs->rip, regs->rip >=
> 32);
@@ -4200,7 +4182,7 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_re=
gs *regs)
         vmx_do_extint(regs);
         break;
     case EXIT_REASON_EXCEPTION_NMI:
-        __vmread(VM_EXIT_INTR_INFO, &intr_info);
+        intr_info =3D vmread(VM_EXIT_INTR_INFO);
         BUG_ON(!(intr_info & INTR_INFO_VALID_MASK));
         vector =3D intr_info & INTR_INFO_VECTOR_MASK;
         if ( vector =3D=3D X86_EXC_MC )
@@ -4237,12 +4219,12 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_=
regs *regs)
=20
         if ( v->arch.hvm.vmx.secondary_exec_control &
             SECONDARY_EXEC_ENABLE_VIRT_EXCEPTIONS )
-            __vmread(EPTP_INDEX, &idx);
+        {
+            idx =3D vmread(EPTP_INDEX);
+        }
         else
         {
-            unsigned long eptp;
-
-            __vmread(EPT_POINTER, &eptp);
+            unsigned long eptp =3D vmread(EPT_POINTER);
=20
             if ( (idx =3D p2m_find_altp2m_by_eptp(v->domain, eptp)) =3D=3D
                  INVALID_ALTP2M )
@@ -4259,10 +4241,7 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_r=
egs *regs)
=20
     if ( unlikely(currd->arch.monitor.vmexit_enabled) )
     {
-        int rc;
-
-        __vmread(EXIT_QUALIFICATION, &exit_qualification);
-        rc =3D hvm_monitor_vmexit(exit_reason, exit_qualification);
+        int rc =3D hvm_monitor_vmexit(exit_reason, vmread(EXIT_QUALIFICATI=
ON));
         if ( rc < 0 )
             goto exit_and_crash;
         if ( rc )
@@ -4327,7 +4306,7 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_re=
gs *regs)
=20
     hvm_maybe_deassert_evtchn_irq();
=20
-    __vmread(IDT_VECTORING_INFO, &idtv_info);
+    idtv_info =3D vmread(IDT_VECTORING_INFO);
     if ( exit_reason !=3D EXIT_REASON_TASK_SWITCH )
         vmx_idtv_reinject(idtv_info);
=20
@@ -4362,7 +4341,7 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_re=
gs *regs)
              * Updates DR6 where debugger can peek (See 3B 23.2.1,
              * Table 23-1, "Exit Qualification for Debug Exceptions").
              */
-            __vmread(EXIT_QUALIFICATION, &exit_qualification);
+            exit_qualification =3D vmread(EXIT_QUALIFICATION);
             TRACE(TRC_HVM_TRAP_DEBUG, exit_qualification);
             __restore_debug_registers(v);
             write_debugreg(6, exit_qualification | DR_STATUS_RESERVED_ONE)=
;
@@ -4388,29 +4367,25 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_=
regs *regs)
              */
             if ( unlikely(regs->eflags & X86_EFLAGS_TF) )
             {
-                unsigned long int_info;
-
-                __vmread(GUEST_INTERRUPTIBILITY_INFO, &int_info);
+                unsigned long int_info =3D vmread(GUEST_INTERRUPTIBILITY_I=
NFO);
=20
                 if ( int_info & (VMX_INTR_SHADOW_STI | VMX_INTR_SHADOW_MOV=
_SS) )
                 {
-                    unsigned long pending_dbg;
+                    unsigned long exc =3D vmread(GUEST_PENDING_DBG_EXCEPTI=
ONS);
=20
-                    __vmread(GUEST_PENDING_DBG_EXCEPTIONS, &pending_dbg);
-                    __vmwrite(GUEST_PENDING_DBG_EXCEPTIONS,
-                              pending_dbg | DR_STEP);
+                    __vmwrite(GUEST_PENDING_DBG_EXCEPTIONS, exc | DR_STEP)=
;
                 }
             }
=20
             if ( !v->domain->debugger_attached )
             {
                 unsigned long insn_len =3D 0;
-                int rc;
                 unsigned long trap_type =3D MASK_EXTR(intr_info,
                                                     INTR_INFO_INTR_TYPE_MA=
SK);
+                int rc;
=20
                 if ( trap_type >=3D X86_ET_SW_INT )
-                    __vmread(VM_EXIT_INSTRUCTION_LEN, &insn_len);
+                    insn_len =3D vmread(VM_EXIT_INSTRUCTION_LEN);
=20
                 rc =3D hvm_monitor_debug(regs->rip,
                                        HVM_MONITOR_DEBUG_EXCEPTION,
@@ -4428,10 +4403,9 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_r=
egs *regs)
             TRACE(TRC_HVM_TRAP, vector);
             if ( !v->domain->debugger_attached )
             {
-                unsigned long insn_len;
+                unsigned long insn_len =3D vmread(VM_EXIT_INSTRUCTION_LEN)=
;
                 int rc;
=20
-                __vmread(VM_EXIT_INSTRUCTION_LEN, &insn_len);
                 rc =3D hvm_monitor_debug(regs->rip,
                                        HVM_MONITOR_SOFTWARE_BREAKPOINT,
                                        X86_ET_SW_EXC,
@@ -4454,8 +4428,8 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_re=
gs *regs)
             vmx_fpu_dirty_intercept();
             break;
         case X86_EXC_PF:
-            __vmread(EXIT_QUALIFICATION, &exit_qualification);
-            __vmread(VM_EXIT_INTR_ERROR_CODE, &ecode);
+            exit_qualification =3D vmread(EXIT_QUALIFICATION);
+            ecode =3D vmread(VM_EXIT_INTR_ERROR_CODE);
             regs->error_code =3D ecode;
=20
             HVM_DBG_LOG(DBG_LEVEL_VMMU,
@@ -4522,7 +4496,7 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_re=
gs *regs)
         };
         unsigned int inst_len, source;
=20
-        __vmread(EXIT_QUALIFICATION, &exit_qualification);
+        exit_qualification =3D vmread(EXIT_QUALIFICATION);
         source =3D (exit_qualification >> 30) & 3;
         /* Vectored event should fill in interrupt information. */
         WARN_ON((source =3D=3D 3) && !(idtv_info & INTR_INFO_VALID_MASK));
@@ -4536,9 +4510,9 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_re=
gs *regs)
                      > 3)) /* IntrType > 3? */
             ? get_instruction_length() /* Safe: SDM 3B 23.2.4 */ : 0;
         if ( (source =3D=3D 3) && (idtv_info & INTR_INFO_DELIVER_CODE_MASK=
) )
-            __vmread(IDT_VECTORING_ERROR_CODE, &ecode);
+            ecode =3D vmread(IDT_VECTORING_ERROR_CODE);
         else
-             ecode =3D -1;
+            ecode =3D -1;
=20
         hvm_task_switch(exit_qualification, reasons[source], ecode, inst_l=
en,
                         0 /* EFLAGS.RF already updated. */);
@@ -4565,7 +4539,7 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_re=
gs *regs)
         break;
     case EXIT_REASON_INVLPG:
         update_guest_eip(); /* Safe: INVLPG */
-        __vmread(EXIT_QUALIFICATION, &exit_qualification);
+        exit_qualification =3D vmread(EXIT_QUALIFICATION);
         vmx_invlpg_intercept(exit_qualification);
         break;
     case EXIT_REASON_RDTSCP:
@@ -4591,13 +4565,13 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_=
regs *regs)
=20
     case EXIT_REASON_CR_ACCESS:
     {
-        __vmread(EXIT_QUALIFICATION, &exit_qualification);
+        exit_qualification =3D vmread(EXIT_QUALIFICATION);
         if ( vmx_cr_access(exit_qualification) =3D=3D X86EMUL_OKAY )
             update_guest_eip(); /* Safe: MOV Cn, LMSW, CLTS */
         break;
     }
     case EXIT_REASON_DR_ACCESS:
-        __vmread(EXIT_QUALIFICATION, &exit_qualification);
+        exit_qualification =3D vmread(EXIT_QUALIFICATION);
         vmx_dr_access(exit_qualification, regs);
         break;
     case EXIT_REASON_MSR_READ:
@@ -4671,7 +4645,7 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_re=
gs *regs)
         break;
=20
     case EXIT_REASON_EOI_INDUCED:
-        __vmread(EXIT_QUALIFICATION, &exit_qualification);
+        exit_qualification =3D vmread(EXIT_QUALIFICATION);
=20
         ASSERT(cpu_has_vmx_virtual_intr_delivery);
=20
@@ -4695,7 +4669,7 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_re=
gs *regs)
         unsigned int bytes;
         int rc;
=20
-        __vmread(EXIT_QUALIFICATION, &io_qual.raw);
+        io_qual.raw =3D vmread(EXIT_QUALIFICATION);
         bytes =3D io_qual.size + 1;
=20
         rc =3D hvm_monitor_io(io_qual.port, bytes, io_qual.in, io_qual.str=
);
@@ -4728,10 +4702,9 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_r=
egs *regs)
=20
     case EXIT_REASON_EPT_VIOLATION:
     {
-        paddr_t gpa;
+        paddr_t gpa =3D vmread(GUEST_PHYSICAL_ADDRESS);
=20
-        __vmread(GUEST_PHYSICAL_ADDRESS, &gpa);
-        __vmread(EXIT_QUALIFICATION, &exit_qualification);
+        exit_qualification =3D vmread(EXIT_QUALIFICATION);
=20
         if ( unlikely(exit_qualification & INTR_INFO_NMI_UNBLOCKED_BY_IRET=
) &&
              !(idtv_info & INTR_INFO_VALID_MASK) )
@@ -4743,9 +4716,8 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_re=
gs *regs)
=20
     case EXIT_REASON_EPT_MISCONFIG:
     {
-        paddr_t gpa;
+        paddr_t gpa =3D vmread(GUEST_PHYSICAL_ADDRESS);
=20
-        __vmread(GUEST_PHYSICAL_ADDRESS, &gpa);
         if ( !ept_handle_misconfig(gpa) )
             goto exit_and_crash;
         break;
@@ -4781,7 +4753,7 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_re=
gs *regs)
         break;
=20
     case EXIT_REASON_PML_FULL:
-        __vmread(EXIT_QUALIFICATION, &exit_qualification);
+        exit_qualification =3D vmread(EXIT_QUALIFICATION);
=20
         if ( unlikely(exit_qualification & INTR_INFO_NMI_UNBLOCKED_BY_IRET=
) &&
              !(idtv_info & INTR_INFO_VALID_MASK) )
@@ -4804,7 +4776,7 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_re=
gs *regs)
         break;
=20
     case EXIT_REASON_NOTIFY:
-        __vmread(EXIT_QUALIFICATION, &exit_qualification);
+        exit_qualification =3D vmread(EXIT_QUALIFICATION);
=20
         if ( unlikely(exit_qualification & NOTIFY_VM_CONTEXT_INVALID) )
         {
diff --git a/xen/arch/x86/hvm/vmx/vvmx.c b/xen/arch/x86/hvm/vmx/vvmx.c
index ceb5e5a322..ab1c4631ab 100644
--- a/xen/arch/x86/hvm/vmx/vvmx.c
+++ b/xen/arch/x86/hvm/vmx/vvmx.c
@@ -400,8 +400,7 @@ static int decode_vmx_inst(struct cpu_user_regs *regs,
     unsigned long base, index, seg_base, disp, offset;
     int scale, size;
=20
-    __vmread(VMX_INSTRUCTION_INFO, &offset);
-    info.word =3D offset;
+    info.word =3D vmread(VMX_INSTRUCTION_INFO);
=20
     if ( info.fields.memreg ) {
         decode->type =3D VMX_INST_MEMREG_TYPE_REG;
@@ -428,7 +427,7 @@ static int decode_vmx_inst(struct cpu_user_regs *regs,
=20
         scale =3D 1 << info.fields.scaling;
=20
-        __vmread(EXIT_QUALIFICATION, &disp);
+        disp =3D vmread(EXIT_QUALIFICATION);
=20
         size =3D 1 << (info.fields.addr_size + 1);
=20
@@ -997,7 +996,7 @@ static void vvmcs_to_shadow_bulk(struct vcpu *v, unsign=
ed int n,
=20
     virtual_vmcs_enter(v);
     for ( i =3D 0; i < n; i++ )
-        __vmread(field[i], &value[i]);
+        value[i] =3D vmread(field[i]);
     virtual_vmcs_exit(v);
=20
     for ( i =3D 0; i < n; i++ )
@@ -1012,7 +1011,7 @@ fallback:
=20
 static inline void shadow_to_vvmcs(const struct vcpu *v, unsigned int fiel=
d)
 {
-    unsigned long value;
+    unsigned long value =3D 0;
=20
     if ( vmread_safe(field, &value) =3D=3D 0 )
         set_vvmcs(v, field, value);
@@ -1036,7 +1035,7 @@ static void shadow_to_vvmcs_bulk(struct vcpu *v, unsi=
gned int n,
     }
=20
     for ( i =3D 0; i < n; i++ )
-        __vmread(field[i], &value[i]);
+        value[i] =3D vmread(field[i]);
=20
     virtual_vmcs_enter(v);
     for ( i =3D 0; i < n; i++ )
@@ -1405,7 +1404,7 @@ static void nvmx_update_apicv(struct vcpu *v)
     }
     else
        /* Keep previous SVI if there's any. */
-       __vmread(GUEST_INTR_STATUS, &status);
+       status =3D vmread(GUEST_INTR_STATUS);
=20
     rvi =3D vlapic_has_pending_irq(v);
     if ( rvi !=3D -1 )
@@ -1687,7 +1686,6 @@ static int nvmx_handle_vmresume(struct cpu_user_regs =
*regs)
     bool launched;
     struct vcpu *v =3D current;
     struct nestedvmx *nvmx =3D &vcpu_2_nvmx(v);
-    unsigned long intr_shadow;
     int rc;
=20
     if ( !vvmcx_valid(v) )
@@ -1696,8 +1694,7 @@ static int nvmx_handle_vmresume(struct cpu_user_regs =
*regs)
         return X86EMUL_OKAY;       =20
     }
=20
-    __vmread(GUEST_INTERRUPTIBILITY_INFO, &intr_shadow);
-    if ( intr_shadow & VMX_INTR_SHADOW_MOV_SS )
+    if ( vmread(GUEST_INTERRUPTIBILITY_INFO) & VMX_INTR_SHADOW_MOV_SS )
     {
         vmfail_valid(regs, VMX_INSN_VMENTRY_BLOCKED_BY_MOV_SS);
         return X86EMUL_OKAY;
@@ -1723,7 +1720,6 @@ static int nvmx_handle_vmlaunch(struct cpu_user_regs =
*regs)
     bool launched;
     struct vcpu *v =3D current;
     struct nestedvmx *nvmx =3D &vcpu_2_nvmx(v);
-    unsigned long intr_shadow;
     int rc;
=20
     if ( !vvmcx_valid(v) )
@@ -1732,8 +1728,7 @@ static int nvmx_handle_vmlaunch(struct cpu_user_regs =
*regs)
         return X86EMUL_OKAY;
     }
=20
-    __vmread(GUEST_INTERRUPTIBILITY_INFO, &intr_shadow);
-    if ( intr_shadow & VMX_INTR_SHADOW_MOV_SS )
+    if ( vmread(GUEST_INTERRUPTIBILITY_INFO) & VMX_INTR_SHADOW_MOV_SS )
     {
         vmfail_valid(regs, VMX_INSN_VMENTRY_BLOCKED_BY_MOV_SS);
         return X86EMUL_OKAY;
@@ -2355,7 +2350,7 @@ int cf_check nvmx_hap_walk_L1_p2m(
=20
     vmx_vmcs_enter(v);
=20
-    __vmread(EXIT_QUALIFICATION, &exit_qual);
+    exit_qual =3D vmread(EXIT_QUALIFICATION);
     rc =3D nept_translate_l2ga(v, L2_gpa, page_order, rwx_rights, &gfn, p2=
m_acc,
                              &exit_qual, &exit_reason);
     switch ( rc )
@@ -2391,7 +2386,7 @@ void nvmx_idtv_handling(void)
     struct nestedvcpu *nvcpu =3D &vcpu_nestedhvm(v);
     unsigned long idtv_info, reason;
=20
-    __vmread(IDT_VECTORING_INFO, &idtv_info);
+    idtv_info =3D vmread(IDT_VECTORING_INFO);
     if ( likely(!(idtv_info & INTR_INFO_VALID_MASK)) )
         return;
=20
@@ -2399,7 +2394,7 @@ void nvmx_idtv_handling(void)
      * If L0 can solve the fault that causes idt vectoring, it should
      * be reinjected, otherwise, pass to L1.
      */
-    __vmread(VM_EXIT_REASON, &reason);
+    reason =3D vmread(VM_EXIT_REASON);
     if ( (uint16_t)reason !=3D EXIT_REASON_EPT_VIOLATION ?
          !(nvmx->intr.intr_info & INTR_INFO_VALID_MASK) :
          !nvcpu->nv_vmexit_pending )
@@ -2407,7 +2402,7 @@ void nvmx_idtv_handling(void)
         __vmwrite(VM_ENTRY_INTR_INFO, idtv_info & ~INTR_INFO_RESVD_BITS_MA=
SK);
         if ( idtv_info & INTR_INFO_DELIVER_CODE_MASK )
         {
-            __vmread(IDT_VECTORING_ERROR_CODE, &reason);
+            reason =3D vmread(IDT_VECTORING_ERROR_CODE);
             __vmwrite(VM_ENTRY_EXCEPTION_ERROR_CODE, reason);
         }
         /*
@@ -2418,7 +2413,7 @@ void nvmx_idtv_handling(void)
          * This means EXIT_INSTRUCTION_LEN is always valid here, for
          * software interrupts both injected by L1, and generated in L2.
          */
-        __vmread(VM_EXIT_INSTRUCTION_LEN, &reason);
+        reason =3D vmread(VM_EXIT_INSTRUCTION_LEN);
         __vmwrite(VM_ENTRY_INSTRUCTION_LEN, reason);
    }
 }
@@ -2452,7 +2447,7 @@ int nvmx_n2_vmexit_handler(struct cpu_user_regs *regs=
,
         u64 exec_bitmap;
         int vector;
=20
-        __vmread(VM_EXIT_INTR_INFO, &intr_info);
+        intr_info =3D vmread(VM_EXIT_INTR_INFO);
         vector =3D intr_info & INTR_INFO_VECTOR_MASK;
         /*
          * decided by L0 and L1 exception bitmap, if the vetor is set by
@@ -2531,7 +2526,7 @@ int nvmx_n2_vmexit_handler(struct cpu_user_regs *regs=
,
             unsigned long qual;
             u16 port, size;
=20
-            __vmread(EXIT_QUALIFICATION, &qual);
+            qual =3D vmread(EXIT_QUALIFICATION);
             port =3D qual >> 16;
             size =3D (qual & 7) + 1;
             do {
@@ -2638,7 +2633,7 @@ int nvmx_n2_vmexit_handler(struct cpu_user_regs *regs=
,
         cr_access_qual_t qual;
         u32 mask =3D 0;
=20
-        __vmread(EXIT_QUALIFICATION, &qual.raw);
+        qual.raw =3D vmread(EXIT_QUALIFICATION);
         /* also according to guest exec_control */
         ctrl =3D __n2_exec_control(v);
=20
@@ -2680,7 +2675,7 @@ int nvmx_n2_vmexit_handler(struct cpu_user_regs *regs=
,
                 {
                     u64 cr0_gh_mask =3D get_vvmcs(v, CR0_GUEST_HOST_MASK);
=20
-                    __vmread(CR0_READ_SHADOW, &old_val);
+                    old_val =3D vmread(CR0_READ_SHADOW);
                     changed_bits =3D old_val ^ val;
                     if ( changed_bits & cr0_gh_mask )
                         nvcpu->nv_vmexit_pending =3D 1;
@@ -2696,7 +2691,7 @@ int nvmx_n2_vmexit_handler(struct cpu_user_regs *regs=
,
                 {
                     u64 cr4_gh_mask =3D get_vvmcs(v, CR4_GUEST_HOST_MASK);
=20
-                    __vmread(CR4_READ_SHADOW, &old_val);
+                    old_val =3D vmread(CR4_READ_SHADOW);
                     changed_bits =3D old_val ^ val;
                     if ( changed_bits & cr4_gh_mask )
                         nvcpu->nv_vmexit_pending =3D 1;
@@ -2732,7 +2727,7 @@ int nvmx_n2_vmexit_handler(struct cpu_user_regs *regs=
,
             {
                 u64 cr0_gh_mask =3D get_vvmcs(v, CR0_GUEST_HOST_MASK);
=20
-                __vmread(CR0_READ_SHADOW, &old_val);
+                old_val =3D vmread(CR0_READ_SHADOW);
                 old_val &=3D X86_CR0_PE|X86_CR0_MP|X86_CR0_EM|X86_CR0_TS;
                 val =3D qual.lmsw_data &
                       (X86_CR0_PE|X86_CR0_MP|X86_CR0_EM|X86_CR0_TS);
diff --git a/xen/arch/x86/include/asm/domain.h b/xen/arch/x86/include/asm/d=
omain.h
index 5fc1d1e5d0..3a24668773 100644
--- a/xen/arch/x86/include/asm/domain.h
+++ b/xen/arch/x86/include/asm/domain.h
@@ -595,7 +595,7 @@ struct arch_vcpu
=20
     /* Debug registers. */
     unsigned long dr[4];
-    unsigned long dr7; /* Ideally int, but __vmread() needs long. */
+    unsigned long dr7; /* Ideally int, but vmread() needs long. */
     unsigned int dr6;
=20
     /* other state */
diff --git a/xen/arch/x86/include/asm/hvm/vmx/vmx.h b/xen/arch/x86/include/=
asm/hvm/vmx/vmx.h
index 33d3d43a38..8bdb042988 100644
--- a/xen/arch/x86/include/asm/hvm/vmx/vmx.h
+++ b/xen/arch/x86/include/asm/hvm/vmx/vmx.h
@@ -320,16 +320,20 @@ static always_inline void __vmpclear(u64 addr)
     BUG();
 }
=20
-static always_inline void __vmread(unsigned long field, unsigned long *val=
ue)
+static always_inline unsigned long vmread(unsigned long field)
 {
-    asm volatile ( "vmread %1, %0\n\t"
+    unsigned long value;
+
+    asm volatile ( "vmread %[field], %[value]\n\t"
                    /* CF=3D=3D1 or ZF=3D=3D1 --> BUG() */
                    UNLIKELY_START(be, vmread)
                    _ASM_BUGFRAME_TEXT(0)
                    UNLIKELY_END_SECTION
-                   : "=3Drm" (*value)
-                   : "r" (field),
+                   : [value] "=3Drm" (value)
+                   : [field] "r" (field),
                      _ASM_BUGFRAME_INFO(BUGFRAME_bug, __LINE__, __FILE__, =
0) );
+
+    return value;
 }
=20
 static always_inline void __vmwrite(unsigned long field, unsigned long val=
ue)
@@ -363,7 +367,7 @@ static inline enum vmx_insn_errno vmread_safe(unsigned =
long field,
     if ( unlikely(fail_invalid) )
         ret =3D VMX_INSN_FAIL_INVALID;
     else if ( unlikely(fail_valid) )
-        __vmread(VM_INSTRUCTION_ERROR, &ret);
+        ret =3D vmread(VM_INSTRUCTION_ERROR);
=20
     return ret;
 }
@@ -371,8 +375,6 @@ static inline enum vmx_insn_errno vmread_safe(unsigned =
long field,
 static inline enum vmx_insn_errno vmwrite_safe(unsigned long field,
                                                unsigned long value)
 {
-    unsigned long ret;
-
     asm goto ( "vmwrite %[value], %[field]\n\t"
                "jc %l[vmfail_invalid]\n\t"
                "jz %l[vmfail_error]"
@@ -386,8 +388,7 @@ static inline enum vmx_insn_errno vmwrite_safe(unsigned=
 long field,
     return VMX_INSN_FAIL_INVALID;
=20
  vmfail_error:
-    __vmread(VM_INSTRUCTION_ERROR, &ret);
-    return ret;
+    return vmread(VM_INSTRUCTION_ERROR);
 }
=20
 static always_inline void __invept(unsigned long type, uint64_t eptp)
--=20
2.34.1




From xen-devel-bounces@lists.xenproject.org Tue Apr 22 22:02:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 22:02:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.963668.1354630 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7Lgp-0006WB-AQ; Tue, 22 Apr 2025 22:02:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 963668.1354630; Tue, 22 Apr 2025 22:02:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7Lgp-0006W4-6A; Tue, 22 Apr 2025 22:02:03 +0000
Received: by outflank-mailman (input) for mailman id 963668;
 Tue, 22 Apr 2025 22:02: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=8D33=XI=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u7Lgn-0006Vw-Mp
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 22:02:01 +0000
Received: from mail-4316.protonmail.ch (mail-4316.protonmail.ch [185.70.43.16])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6a172e17-1fc5-11f0-9ffb-bf95429c2676;
 Wed, 23 Apr 2025 00:01:59 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6a172e17-1fc5-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1745359319; x=1745618519;
	bh=lZljoNL+R2lxF1GXxPJxkv7kzdUwJ95v0+U56DH+QTs=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=Cl8euVUzyv6gE/vQK1AO09pB5JxugHNcNrUmlr6eogMJAQYE5oZhumil/GhE+WsSA
	 RaoQItlMraEbKiNdxW7kDZRqqBZ+dmwUG6W+DYZviq75fB6gDUXYemMY6zU67jcQHj
	 Zo+GthEMmFfsaYmZJL9HFHT++HWLVwfVcl0a0JTsFBnaYZ0iP/8ejkwLsIjL5v6+px
	 gmLsKsxNrxNfpe6qIfzhKcTqN36naCayLqxWBVJNcYF+mvLFeTaJILiwZN3eyM5zni
	 VqvlnB/D+y1LIwhho9OynGqPaMV28bjK0hWzQ2VtHf3GbEgXs+5R0lvf32UNpoDDJ+
	 yRh0h4rJJ5y+Q==
Date: Tue, 22 Apr 2025 22:01:54 +0000
To: Stefano Stabellini <sstabellini@kernel.org>
From: dmkhn@proton.me
Cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com, cardoe@cardoe.com, marmarek@invisiblethingslab.com, dmukhin@ford.com
Subject: Re: [PATCH v3 0/4] CI: updates to XTF CI runners
Message-ID: <aAgRzwTYUZwp1jG3@starscream>
In-Reply-To: <alpine.DEB.2.22.394.2504221353300.785180@ubuntu-linux-20-04-desktop>
References: <20250422161819.2089738-1-dmukhin@ford.com> <alpine.DEB.2.22.394.2504221353300.785180@ubuntu-linux-20-04-desktop>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: ab230ce683a4a38dd3c5b2611047f99ea5a6afc5
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Tue, Apr 22, 2025 at 01:54:06PM -0700, Stefano Stabellini wrote:
> On Tue, 22 Apr 2025, dmkhn@proton.me wrote:
>=20
> > The series started from adding new argo XTF CI job and ended up with up=
dating
> > all XTF runners and related CI jobs.
> >
> > It unifies the XTF runner scripts so that it is possible to use one scr=
ipt for
> > executing any XTF test under QEMU. That simplifies running XTFs locally=
 and in
> > CI.
> >
> > Patch 1 reworks x86 XTF runner.
> > Patch 2 reworks x86 EFI XTF.
> > Patch 3 reworks Arm64 XTF runner.
> > Patch 4 adds new argo x86 XTF CI job.
>=20
> I committed the first 3 patches. For the last patch, I take we need to
> wait for the argo test to land in XTF?

Thanks!

Yes, we need argo XTF test.



From xen-devel-bounces@lists.xenproject.org Tue Apr 22 22:12:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 22:12:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.963683.1354639 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7Lqc-0008NB-5N; Tue, 22 Apr 2025 22:12:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 963683.1354639; Tue, 22 Apr 2025 22: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 1u7Lqc-0008N4-2a; Tue, 22 Apr 2025 22:12:10 +0000
Received: by outflank-mailman (input) for mailman id 963683;
 Tue, 22 Apr 2025 22:12: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=8D33=XI=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u7Lqa-0008My-2p
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 22:12:08 +0000
Received: from mail-24418.protonmail.ch (mail-24418.protonmail.ch
 [109.224.244.18]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d2a45ee5-1fc6-11f0-9ffb-bf95429c2676;
 Wed, 23 Apr 2025 00:12:04 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d2a45ee5-1fc6-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=ot7zphdvgnbhbibcztnz3ebdca.protonmail; t=1745359923; x=1745619123;
	bh=o5AHj7v0rUutiT+6KBYPqTIG1FrzXaYJUK/nbhzU95c=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=D5z+c6o1wmEQEyBinIeCqEuQl+z2qklKnX33s7IOmRX5PDZMLNCgEqpLJRwQYb3n9
	 m8Sj9PBDJiwxLQfPuDvg+uKWuuozS7E9wuoeoDk7JHmKidDHVGrjcXvMXPJpSmOKar
	 KomcSVw2HiMaq1/bX6VojmcogakQ5yQnJWKHDXrRacTha5XzS4VkYmMkbPJmuGm6Ui
	 umKGE78YdnVltntYFl3MCfib2fMFqQxKdyU2rvBCWftpLQAAd/Sm1PyhRz928/z9YB
	 LTaknsTaBn51dbgcPZxSFX4HaWN7POjbX8b+FU7s6YyMTGI5XbtJ3z99YGuxGv9h+S
	 j7rcTYBwEmqCQ==
Date: Tue, 22 Apr 2025 22:11:59 +0000
To: Jan Beulich <jbeulich@suse.com>
From: dmkhn@proton.me
Cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com, roger.pau@citrix.com, dmukhin@ford.com
Subject: Re: [PATCH v2] x86/vmx: Update __vmread() signature
Message-ID: <aAgUKi8DadC6ZPMI@starscream>
In-Reply-To: <c76427bb-87b4-4c51-a057-1942b9c3d92c@suse.com>
References: <20250422011530.3010312-1-dmukhin@ford.com> <c76427bb-87b4-4c51-a057-1942b9c3d92c@suse.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: dbfef3c29a2f18c4cb6830008ae13af7b9b5baca
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Tue, Apr 22, 2025 at 09:56:00AM +0200, Jan Beulich wrote:
> On 22.04.2025 03:15, dmkhn@proton.me wrote:
> > From: Denis Mukhin <dmukhin@ford.com>
> >
> > Current implementation of __vmread() returns the result via pointer arg=
ument
> > which leads to having excess code in some places.
> >
> > Update the signature of __vmread() to return `unsigned long` and drop t=
he
> > pointer argument as per suggestion in [1].
> >
> > Update all call sites everywhere in the VT-x code.
>=20
> You did read Andrew's reply to v1 before posting v2, didn't you?

I missed to address the function name change request, posted v3:
  https://lore.kernel.org/xen-devel/20250422215833.522007-1-dmukhin@ford.co=
m/

>=20
> Jan



From xen-devel-bounces@lists.xenproject.org Tue Apr 22 22:15:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 22:15:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.963694.1354648 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7Ltl-0000a6-Ip; Tue, 22 Apr 2025 22:15:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 963694.1354648; Tue, 22 Apr 2025 22:15: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 1u7Ltl-0000Zz-GH; Tue, 22 Apr 2025 22:15:25 +0000
Received: by outflank-mailman (input) for mailman id 963694;
 Tue, 22 Apr 2025 22:15: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=BiSK=XI=3mdeb.com=sergii.dmytruk@srs-se1.protection.inumbo.net>)
 id 1u7Ltj-0000Zt-RY
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 22:15:24 +0000
Received: from 9.mo575.mail-out.ovh.net (9.mo575.mail-out.ovh.net
 [46.105.78.111]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4777a149-1fc7-11f0-9ffb-bf95429c2676;
 Wed, 23 Apr 2025 00:15:20 +0200 (CEST)
Received: from director6.ghost.mail-out.ovh.net (unknown [10.108.9.148])
 by mo575.mail-out.ovh.net (Postfix) with ESMTP id 4ZhxPh1cNCz1nZ4
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 22:15:20 +0000 (UTC)
Received: from ghost-submission-5b5ff79f4f-wxqb8 (unknown [10.111.174.155])
 by director6.ghost.mail-out.ovh.net (Postfix) with ESMTPS id 5ED371FD1E;
 Tue, 22 Apr 2025 22:15:18 +0000 (UTC)
Received: from 3mdeb.com ([37.59.142.97])
 by ghost-submission-5b5ff79f4f-wxqb8 with ESMTPSA
 id XYn9BPYUCGgZaQIAj6qUzw
 (envelope-from <sergii.dmytruk@3mdeb.com>); Tue, 22 Apr 2025 22:15: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: 4777a149-1fc7-11f0-9ffb-bf95429c2676
Authentication-Results:garm.ovh; auth=pass (GARM-97G00297444c32-6e75-4c2b-82dc-193c2c9f8288,
                    E44920665798B4DCDE3BF656E3E0060933CCD35A) smtp.auth=sergii.dmytruk@3mdeb.com
X-OVh-ClientIp:176.111.181.178
Date: Wed, 23 Apr 2025 01:15:08 +0300
From: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Krystian Hebel <krystian.hebel@3mdeb.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
	Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	trenchboot-devel@googlegroups.com, xen-devel@lists.xenproject.org
Subject: Re: [PATCH 09/21] lib/sha1.c: add file
Message-ID: <aAgU7Oy_wkNYmgBF@MjU3Nj>
References: <cover.1745172094.git.sergii.dmytruk@3mdeb.com>
 <8dec423182ed60e2233ed87d98066fed6dc20caf.1745172094.git.sergii.dmytruk@3mdeb.com>
 <a0dcf27e-a066-4e5f-97b2-e5f178e1b941@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <a0dcf27e-a066-4e5f-97b2-e5f178e1b941@suse.com>
X-Ovh-Tracer-Id: 1510676202228397145
X-VR-SPAMSTATE: OK
X-VR-SPAMSCORE: -100
X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvgeegledtucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuqfggjfdpvefjgfevmfevgfenuceurghilhhouhhtmecuhedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurhepfffhvfevuffkfhggtggujgesthdtredttddtvdenucfhrhhomhepufgvrhhgihhiucffmhihthhruhhkuceoshgvrhhgihhirdgumhihthhruhhkseefmhguvggsrdgtohhmqeenucggtffrrghtthgvrhhnpedvgfevgedtfffhudegveeiheekteduveeffeegtdeljeelvdefuedtteduieevleenucfkphepuddvjedrtddrtddruddpudejiedrudduuddrudekuddrudejkedpfeejrdehledrudegvddrleejnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehinhgvthepuddvjedrtddrtddruddpmhgrihhlfhhrohhmpehsvghrghhiihdrughmhihtrhhukhesfehmuggvsgdrtghomhdpnhgspghrtghpthhtohepuddprhgtphhtthhopeigvghnqdguvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdpoffvtefjohhsthepmhhoheejhegmpdhmohguvgepshhmthhpohhuth
DKIM-Signature: a=rsa-sha256; bh=osNLxsaFq2SShPgkGKDtrQZzGauLYum/aG085GmJLN0=;
 c=relaxed/relaxed; d=3mdeb.com; h=From; s=ovhmo3617313-selector1;
 t=1745360120; v=1;
 b=Z10R59jeAQYmApd14Qg2mFnVGWZUE58hmoUDTVgLxg82z/o2QawKlXkVedepTQEWwqb4Ddv7
 hCC3JwBfGO6ShT+4PUxA3+8K+S+uPNkqfhE3eFPrJU6T/2Af0bHMPqRhBr9zuUeSthb7yBxT6U3
 KnQaM8D7K2e2AHF5jc0426t43+CfRzWM1OIfKTxNnQjnDHp2DhR7A2xn/esD/Sq3hjTuIFWPV6T
 /pxRhud4X/tLYCb2+nfdbImTG5ZvqqnWkZ7T+vrJ9UEx5lPU4iv+qjvlQ660nWrsIskGX5SNjCN
 WwX3AVPR3Y7kNNomN0ZlGGsBRRj1wQUKFugWUVXHWRblg==

On Tue, Apr 22, 2025 at 05:36:22PM +0200, Jan Beulich wrote:
> On 22.04.2025 17:06, Sergii Dmytruk wrote:
> > From: Krystian Hebel <krystian.hebel@3mdeb.com>
> >
> > The code comes from [1] and is licensed under GPL-2.0 license.
> > It's a combination of:
> >  - include/crypto/sha1.h
> >  - include/crypto/sha1_base.h
> >  - lib/crypto/sha1.c
> >  - crypto/sha1_generic.c
> >
> > Changes:
> >  - includes
> >  - formatting
> >  - renames and splicing of some trivial functions that are called once
> >  - dropping of `int` return values (only zero was ever returned)
> >  - getting rid of references to `struct shash_desc`
>
> Since you did move the code to (largely) Xen style, a few further requests
> in that direction:

Rewriting the patch due to a comment by Andrew Cooper obsoletes most of
your comments, but thanks for them anyway.

>
> Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 22 22:17:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 22:17:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.963705.1354659 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7Lvy-00019w-SH; Tue, 22 Apr 2025 22:17:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 963705.1354659; Tue, 22 Apr 2025 22:17: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 1u7Lvy-00019p-PD; Tue, 22 Apr 2025 22:17:42 +0000
Received: by outflank-mailman (input) for mailman id 963705;
 Tue, 22 Apr 2025 22:17: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=8D33=XI=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u7Lvw-00019h-MK
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 22:17:41 +0000
Received: from mail-24417.protonmail.ch (mail-24417.protonmail.ch
 [109.224.244.17]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 98cc7618-1fc7-11f0-9eb0-5ba50f476ded;
 Wed, 23 Apr 2025 00:17:38 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 98cc7618-1fc7-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1745360256; x=1745619456;
	bh=7Wu2uOPStbgSJHG7Qg7V3UBIekIE4bEuyBNMyQr086w=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=nSmS32hXFdUT1Wka/S0+DyShONS2R486osd7VIfhOWtqPW6/tAkNOLFZzmG76B2+9
	 6MKiyDBRZcMOID4mUNKlr0PHaSEbHLq5y2w2KZgLp93y34YWrlCJQaS09aQBXQmbub
	 LFdPXkZbc83iEDLZPnCcqVkbAr6PTfb9Vt6RktG9W2r/pRnhLlrl8dAsskGZLrbDRE
	 RdKnuAyeNIAIZfnb3FHx4M04ZqJ6v2P/TbqhgTRH0dwJTSJK9G/KD2SJcC38GAdeHD
	 LVJ0X8Z3q945IhCQUC2a8BCEjC6EBEtkYog5loOekApOxkKZp/dUS3PN1aOdq+kMes
	 3zyimYVXODAQA==
Date: Tue, 22 Apr 2025 22:17:33 +0000
To: Jan Beulich <jbeulich@suse.com>
From: dmkhn@proton.me
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org, dmukhin@ford.com, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v3] xen/domain: unify domain ID allocation
Message-ID: <aAgVeonUoPltoPE1@starscream>
In-Reply-To: <7c5c1e59-248f-4b62-9e15-fdb692fd1c7c@suse.com>
References: <20250416061509.934220-1-dmukhin@ford.com> <7c5c1e59-248f-4b62-9e15-fdb692fd1c7c@suse.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 512200601c6bafbffe1055a193b6fde8a5618861
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Thu, Apr 17, 2025 at 11:47:07AM +0200, Jan Beulich wrote:
> On 16.04.2025 08:15, dmkhn@proton.me wrote:
> > From: Denis Mukhin <dmukhin@ford.com>
> >
> > Unify the logic of domain ID allocation, so that both the initial domai=
n
> > creation and the usage by domctl use the same helper function across
> > architectures (Arm and x86).
> >
> > Wrap the domain ID allocation as an arch-independent function domid_all=
oc() in
> > common/domain.c.
> >
> > Allocation algorithm:
> > - If an explicit domain ID is provided, verify its availability and
> >   use it if ID is unused;
> > - Otherwise, perform an exhaustive search for the first available ID
> >   within the [0..DOMID_FIRST_RESERVED) range, excluding hardware_domid.
> >
> > Move the is_free_domid() helper closer to domid_alloc(). Simplify
> > is_free_domid() by removing the domain ID range check, as the ID is now
> > guaranteed to be within the valid range. Additionally, update the predi=
cate to
> > return a bool value instead of an int.
> >
> > Signed-off-by: Denis Mukhin <dmukhin@ford.com>
>=20
> Please can you clarify whether this is intended to be no functional chang=
e
> (as far as one would be able to observe from the outside)? (It isn't, and
> when it isn't, the behavioral change needs justifying. Which I fear you
> won't be able to, in which case it needs undoing. Not using the first
> unused ID is a deliberate property of the present allocation scheme.)

Reverted the algorithm to the original one (v4).
Thanks for review!

>=20
> > ---
> >  xen/arch/arm/dom0less-build.c | 19 ++++++++-------
> >  xen/arch/arm/domain_build.c   | 19 +++++++++++----
> >  xen/arch/x86/setup.c          |  8 +++++--
> >  xen/common/domain.c           | 45 +++++++++++++++++++++++++++++++++++
> >  xen/common/domctl.c           | 45 ++++-------------------------------
> >  xen/include/xen/domain.h      |  2 ++
> >  6 files changed, 81 insertions(+), 57 deletions(-)
>=20
> This suggests it's not clearly an improvement. And I'm heavily inclined
> to ask (also considering the above) that this simply be dropped.
>=20
> > --- a/xen/arch/arm/domain_build.c
> > +++ b/xen/arch/arm/domain_build.c
> > @@ -2370,6 +2370,7 @@ void __init create_dom0(void)
> >          .grant_opts =3D XEN_DOMCTL_GRANT_version(opt_gnttab_max_versio=
n),
> >      };
> >      unsigned int flags =3D CDF_privileged;
> > +    domid_t domid;
> >      int rc;
> >
> >      /* The vGIC for DOM0 is exactly emulating the hardware GIC */
> > @@ -2394,19 +2395,27 @@ void __init create_dom0(void)
> >      if ( !llc_coloring_enabled )
> >          flags |=3D CDF_directmap;
> >
> > -    dom0 =3D domain_create(0, &dom0_cfg, flags);
> > +    rc =3D domid_alloc(get_initial_domain_id());
> > +    if ( rc < 0 )
> > +        panic("Error allocating domain ID %d (rc =3D %d)\n",
> > +              get_initial_domain_id(), rc);
> > +    domid =3D rc;
> > +
> > +    dom0 =3D domain_create(domid, &dom0_cfg, flags);
> >      if ( IS_ERR(dom0) )
> > -        panic("Error creating domain 0 (rc =3D %ld)\n", PTR_ERR(dom0))=
;
> > +        panic("Error creating domain %d (rc =3D %ld)\n", domid, PTR_ER=
R(dom0));
>=20
> Up to here using domid is okay. However, ...
>=20
> >      if ( llc_coloring_enabled && (rc =3D dom0_set_llc_colors(dom0)) )
> > -        panic("Error initializing LLC coloring for domain 0 (rc =3D %d=
)\n", rc);
> > +        panic("Error initializing LLC coloring for domain %d (rc =3D %=
d)\n",
> > +              domid, rc);
> >
> >      if ( alloc_dom0_vcpu0(dom0) =3D=3D NULL )
> > -        panic("Error creating domain 0 vcpu0\n");
> > +        panic("Error creating domain %d vcpu0\n", domid);
> >
> >      rc =3D construct_dom0(dom0);
> >      if ( rc )
> > -        panic("Could not set up DOM0 guest OS (rc =3D %d)\n", rc);
> > +        panic("Could not set up guest OS for domain %d (rc =3D %d)\n",
> > +              domid, rc);
> >  }
>=20
> ... these all would better use %pd, when already being touched.
>=20
> While touching all of these I think you also want to aim at making output
> match that %pd or %pv would result in, if they were usable at those place=
s.
>=20
> > --- a/xen/arch/x86/setup.c
> > +++ b/xen/arch/x86/setup.c
> > @@ -1009,8 +1009,12 @@ static struct domain *__init create_dom0(struct =
boot_info *bi)
> >      if ( iommu_enabled )
> >          dom0_cfg.flags |=3D XEN_DOMCTL_CDF_iommu;
> >
> > -    /* Create initial domain.  Not d0 for pvshim. */
> > -    bd->domid =3D get_initial_domain_id();
> > +    /* Allocate initial domain ID. Not d0 for pvshim. */
> > +    bd->domid =3D domid_alloc(get_initial_domain_id());
>=20
> You're clipping the int return value to domid_t here, and thus ...
>=20
> > +    if ( bd->domid < 0 )
>=20
> ... this condition will be always false. I'm surprised the compiler didn'=
t
> flag this for you.
>=20
> > --- a/xen/common/domain.c
> > +++ b/xen/common/domain.c
> > @@ -66,6 +66,51 @@ DEFINE_RCU_READ_LOCK(domlist_read_lock);
> >  static struct domain *domain_hash[DOMAIN_HASH_SIZE];
> >  struct domain *domain_list;
> >
> > +static inline bool is_free_domid(domid_t dom)
> > +{
> > +    struct domain *d =3D rcu_lock_domain_by_id(dom);
> > +
> > +    if ( d )
> > +        rcu_unlock_domain(d);
> > +
> > +    return !d;
> > +}
> > +
> > +/*
> > + * Allocate new domain ID based on the hint.
> > + *
> > + * If hint is outside of valid [0..DOMID_FIRST_RESERVED] range of IDs,
>=20
> That's [0, DOMID_FIRST_RESERVED), to be unambiguous. In C array initializ=
er
> notation it would be [0 ... DOMID_FIRST_RESERVED - 1].
>=20
> > + * perform an exhaustive search of the first free domain ID excluding
> > + * hardware_domid.
> > + */
> > +int domid_alloc(int hint)
>=20
> I would have thought that I did comment already on the parameter being pl=
ain
> int.
>=20
> > +{
> > +    domid_t domid;
> > +
> > +    if ( hint >=3D 0 && hint < DOMID_FIRST_RESERVED )
> > +    {
> > +        if ( !is_free_domid(hint) )
> > +            return -EEXIST;
> > +
> > +        domid =3D hint;
> > +    }
> > +    else
> > +    {
> > +        for ( domid =3D 0; domid < DOMID_FIRST_RESERVED; domid++ )
> > +        {
> > +            if ( domid =3D=3D hardware_domid )
> > +                continue;
> > +            if ( is_free_domid(domid) )
> > +                break;
> > +        }
> > +
> > +        if ( domid =3D=3D DOMID_FIRST_RESERVED )
> > +            return -ENOMEM;
>=20
> There's no memory allocation here, so why ENOMEM? ENOSPC may already be s=
lightly
> better.
>=20
> Jan



From xen-devel-bounces@lists.xenproject.org Tue Apr 22 22:20:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 22:20:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.963717.1354668 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7Lyo-0002f3-85; Tue, 22 Apr 2025 22:20:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 963717.1354668; Tue, 22 Apr 2025 22:20:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7Lyo-0002ew-5A; Tue, 22 Apr 2025 22:20:38 +0000
Received: by outflank-mailman (input) for mailman id 963717;
 Tue, 22 Apr 2025 22:20: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=BiSK=XI=3mdeb.com=sergii.dmytruk@srs-se1.protection.inumbo.net>)
 id 1u7Lyn-0002ep-2R
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 22:20:37 +0000
Received: from 2.mo583.mail-out.ovh.net (2.mo583.mail-out.ovh.net
 [178.33.109.111]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 02ca4b4e-1fc8-11f0-9ffb-bf95429c2676;
 Wed, 23 Apr 2025 00:20:35 +0200 (CEST)
Received: from director7.ghost.mail-out.ovh.net (unknown [10.108.17.88])
 by mo583.mail-out.ovh.net (Postfix) with ESMTP id 4ZhxWk3g79z1d8F
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 22:20:34 +0000 (UTC)
Received: from ghost-submission-5b5ff79f4f-g4n6d (unknown [10.110.113.153])
 by director7.ghost.mail-out.ovh.net (Postfix) with ESMTPS id 7156D1FE5A;
 Tue, 22 Apr 2025 22:20:33 +0000 (UTC)
Received: from 3mdeb.com ([37.59.142.96])
 by ghost-submission-5b5ff79f4f-g4n6d with ESMTPSA
 id RYJNDDEWCGgZCgsAXdXU8Q
 (envelope-from <sergii.dmytruk@3mdeb.com>); Tue, 22 Apr 2025 22:20: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: 02ca4b4e-1fc8-11f0-9ffb-bf95429c2676
Authentication-Results:garm.ovh; auth=pass (GARM-96R001f2a1d7d1-30d0-4ccc-a361-6b7b42468a05,
                    E44920665798B4DCDE3BF656E3E0060933CCD35A) smtp.auth=sergii.dmytruk@3mdeb.com
X-OVh-ClientIp:176.111.181.178
Date: Wed, 23 Apr 2025 01:20:27 +0300
From: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: xen-devel@lists.xenproject.org,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	trenchboot-devel@googlegroups.com
Subject: Re: [PATCH 10/21] lib/sha256.c: add file
Message-ID: <aAgWK7GhHw3oFel-@MjU3Nj>
References: <cover.1745172094.git.sergii.dmytruk@3mdeb.com>
 <92b461c8d5981a523293341346274b6cc1b76d9b.1745172094.git.sergii.dmytruk@3mdeb.com>
 <233f9fd0-b531-4373-998e-1e7295357ae2@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <233f9fd0-b531-4373-998e-1e7295357ae2@citrix.com>
X-Ovh-Tracer-Id: 1599340821330637980
X-VR-SPAMSTATE: OK
X-VR-SPAMSCORE: -100
X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvgeegleduucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuqfggjfdpvefjgfevmfevgfenuceurghilhhouhhtmecuhedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurhepfffhvfevuffkfhggtggugfgjsehtkeertddttddunecuhfhrohhmpefuvghrghhiihcuffhmhihtrhhukhcuoehsvghrghhiihdrughmhihtrhhukhesfehmuggvsgdrtghomheqnecuggftrfgrthhtvghrnhepueeiudeuveffkeetveelgeehhffgheehgfegjeekleffgeelffetjeefieetleeknecukfhppeduvdejrddtrddtrddupddujeeirdduuddurddukedurddujeekpdefjedrheelrddugedvrdelieenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepihhnvghtpeduvdejrddtrddtrddupdhmrghilhhfrhhomhepshgvrhhgihhirdgumhihthhruhhkseefmhguvggsrdgtohhmpdhnsggprhgtphhtthhopedupdhrtghpthhtohepgigvnhdquggvvhgvlheslhhishhtshdrgigvnhhprhhojhgvtghtrdhorhhgpdfovfetjfhoshhtpehmohehkeefmgdpmhhouggvpehsmhhtphhouhht
DKIM-Signature: a=rsa-sha256; bh=mz9QouMr9hCMdijmlJGXuoPiKE2mobEEixq3BIjpuQY=;
 c=relaxed/relaxed; d=3mdeb.com; h=From; s=ovhmo3617313-selector1;
 t=1745360434; v=1;
 b=ImqZB+cvBT6K/xVfa4X0l/oE/a8zQuDcuvY83t/FIES3n10fHb1/67Px6YopSrqaejnLGTjp
 MEFb+MXmSIrU9wapGbJuzIsNKYPCMHcL/JBZC1D8cQXTM88bweS0ZaBC/nxpgqxxCvMmk5fqGJ9
 MjhiqXaoRyZkMrF9yTs1zQfIF8yxVCrn8gy+fgiQM/1nINCYgJCxqNfVRqrrOYxhRQA3yDRc/Wa
 pOQ7gy5nlTwp29KGprcN2jdtKSu7WL4fiNB3NvGVHSWqPyPx4Y7TOU14tbUpGVbE1iD4sbjPsBk
 bkFwY/disMCOw/rBpHhbPNx3u0SyV388Jw7gCySt7fQ5w==

On Tue, Apr 22, 2025 at 04:37:10PM +0100, Andrew Cooper wrote:
> On 22/04/2025 4:06 pm, Sergii Dmytruk wrote:
> >  xen/include/xen/sha256.h |  12 ++
> >  xen/lib/Makefile         |   1 +
> >  xen/lib/sha256.c         | 238 +++++++++++++++++++++++++++++++++++++++
> >  3 files changed, 251 insertions(+)
> >  create mode 100644 xen/include/xen/sha256.h
> >  create mode 100644 xen/lib/sha256.c
> 
> I added SHA2 a little while back, derived from the Trenchboot tree.
> 
> See 372af524411f5a013bcb0b117073d8d07c026563 (and a few follow-up fixes).
> 
> It should have everything needed, but we can adjust if necessary.
> 
> We need to integrate SHA1 in a similar way. Xen now has various MISRA
> requirements to adhere to, which requires some adjustments, but I can
> advise if it isn't clear from the sha2 work I already did.
> 
> ~Andrew

Oh, I actually checked for existing hash implementations before sending
the patches...  Need to remove untracked files which made it hard to see
the new file.

Thanks, I think I figured out the modifications you've made for SHA256
and almost done getting rid of macros for SHA1.


From xen-devel-bounces@lists.xenproject.org Tue Apr 22 22:50:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 22:50:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.963734.1354678 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7MR6-0006Rd-Ew; Tue, 22 Apr 2025 22:49:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 963734.1354678; Tue, 22 Apr 2025 22:49:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7MR6-0006RW-BE; Tue, 22 Apr 2025 22:49:52 +0000
Received: by outflank-mailman (input) for mailman id 963734;
 Tue, 22 Apr 2025 22:49: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=8D33=XI=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u7MR3-0006RO-Sp
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 22:49:50 +0000
Received: from mail-24418.protonmail.ch (mail-24418.protonmail.ch
 [109.224.244.18]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 10c05767-1fcc-11f0-9eb0-5ba50f476ded;
 Wed, 23 Apr 2025 00:49:36 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 10c05767-1fcc-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1745362175; x=1745621375;
	bh=7Tiu9Iu1Vf6mewfEGQrmZmHxsU95Kc/YwPjUiSH05w4=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=K5h5/rhOY7C6gRlAj11s/UcRLetoWuY72036pIxzrZBtTkib2bsqUgdwcGi9quU3s
	 1bIkvpFseiPjmExSPGrft09aPX2MEPaTo4O4xwd/ego0QX3Afu84LoF+octPpO7u/Y
	 VF67WR4k96Tg5/RCpgk9m5827idGeT7vTuLCt1i37sZwPvIyG/MIus3XHp4cekJ+FV
	 FFXf4Dh7QXiNiavxEksGqqEK8XmaydVRx0acnhJbSv/KV2LgFBLaKIgXQiTC+/AzDi
	 3GEAzbWKxaib6iXLkS8qm10swQWSPnYsakA+KFeJ692hOvqVnKzG+92tBQYLt0/rt4
	 Gby9+aSTykRFw==
Date: Tue, 22 Apr 2025 22:49:30 +0000
To: Jan Beulich <jbeulich@suse.com>
From: dmkhn@proton.me
Cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com, anthony.perard@vates.tech, julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org, dmukhin@ford.com
Subject: Re: [PATCH v1 2/3] x86/domain: add helpers to simplify emulation flags management
Message-ID: <aAgc9H6mxOvnZXk9@starscream>
In-Reply-To: <d21969b3-a48c-4d80-a8a9-5d04b67ed90f@suse.com>
References: <20250401005224.461325-1-dmukhin@ford.com> <20250401005224.461325-3-dmukhin@ford.com> <d21969b3-a48c-4d80-a8a9-5d04b67ed90f@suse.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 1f525c738878c15c8e17a810db24e85360b321da
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Tue, Apr 08, 2025 at 05:23:17PM +0200, Jan Beulich wrote:
> On 01.04.2025 02:52, dmkhn@proton.me wrote:
> > From: Denis Mukhin <dmukhin@ford.com>
> >
> > Introduce XEN_X86_EMU_BASELINE and XEN_X86_EMU_OPTIONAL to simplify
> > d->arch.emulation_flags management in the code.
>=20
> If the simplification is limited to ...
>=20
> > --- 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 =3D XEN_X86_EMU_ALL &
> > -                                      ~(XEN_X86_EMU_VPCI |
> > -                                        XEN_X86_EMU_USE_PIRQ);
> > +        config.arch.emulation_flags =3D XEN_X86_EMU_BASELINE;
> >  #elif defined (__arm__) || defined(__aarch64__)
> >      config.arch.gic_version =3D XEN_DOMCTL_CONFIG_GIC_NATIVE;
> >  #else
>=20
> ... just this, I'm not convinced that's worth introducing yet two more it=
ems
> into the namespace.

Sorry, it took me a while to get back to the series.

The X86_EMU_BASELINE mask is used in two places: in the toolstack (xc.c) an=
d
in domain.c, emulation_flags_ok(), so adding a new flag may require updates
in two places.

Perhaps it will be better to merge this patch 2 with patch 3 to highlight t=
hat?=20

>=20
> > --- a/xen/include/public/arch-x86/xen.h
> > +++ b/xen/include/public/arch-x86/xen.h
> > @@ -290,6 +290,13 @@ struct xen_arch_domainconfig {
> >                                       XEN_X86_EMU_VGA | XEN_X86_EMU_IOM=
MU |   \
> >                                       XEN_X86_EMU_PIT | XEN_X86_EMU_USE=
_PIRQ |\
> >                                       XEN_X86_EMU_VPCI)
> > +
> > +#define XEN_X86_EMU_OPTIONAL        (XEN_X86_EMU_VPCI | \
> > +                                     XEN_X86_EMU_USE_PIRQ)
> > +
> > +#define XEN_X86_EMU_BASELINE        (XEN_X86_EMU_ALL & ~XEN_X86_EMU_OP=
TIONAL)
> > +
> > +    /* Hardware emulation flags. */
> >      uint32_t emulation_flags;
>=20
> The comment isn't quite accurate here (and hence perhaps also not in the
> earlier patch): XEN_X86_EMU_USE_PIRQ isn't exactly about emulation of any=
thing
> hardware-ish.
>=20
> Jan



From xen-devel-bounces@lists.xenproject.org Tue Apr 22 23:38:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 22 Apr 2025 23:38:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.963757.1354689 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7NBh-0005RJ-Vz; Tue, 22 Apr 2025 23:38:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 963757.1354689; Tue, 22 Apr 2025 23:38: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 1u7NBh-0005RC-T7; Tue, 22 Apr 2025 23:38:01 +0000
Received: by outflank-mailman (input) for mailman id 963757;
 Tue, 22 Apr 2025 23:37: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=8D33=XI=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u7NBe-0005Qx-SE
 for xen-devel@lists.xenproject.org; Tue, 22 Apr 2025 23:37:59 +0000
Received: from mail-24416.protonmail.ch (mail-24416.protonmail.ch
 [109.224.244.16]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ceee8035-1fd2-11f0-9eb0-5ba50f476ded;
 Wed, 23 Apr 2025 01:37:52 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ceee8035-1fd2-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1745365071; x=1745624271;
	bh=gjP3EGsNseK5YgTfoovawhW3/3/7Cydu7Tdbrr6oyyM=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=U3oqeeKG/76KKbeo6YmzGawBvGgEQXtVxT//g42Dy2tAlXWWhFQSXyDsOQuZJ4Lj0
	 nzvk8e//BVhsdIGBcl45NID6eO8/BDIYeiWazyI7/2zGaHuYP6VZuE8G+LQQgArFmF
	 PryNLv+JtaELOkiRNRlhZCLK7r7fEMV/Nxa/DhPds5Z3IcE+KVRXk6btjPnKTG7hYI
	 B05LYcMyizrIOZ1hlDabaH564S0yDEkVI8CGoI7Y3Ox9QZGUBQ5Ne3ep2XeBnlGlpE
	 waghD6SftzkS2SxDlKG4m3WH3vX1lD5QeAfSR/GOqk1BH4ugSrh5/qzWl7f0bPihc7
	 4S91dsr/ZD1yg==
Date: Tue, 22 Apr 2025 23:37:47 +0000
To: Jan Beulich <jbeulich@suse.com>
From: dmkhn@proton.me
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org, dmukhin@ford.com, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v1 3/3] xen/domain: rewrite emulation_flags_ok()
Message-ID: <aAgoSHWRDE1cE2LB@starscream>
In-Reply-To: <c14efb79-54c1-438d-813e-15f635813ccc@suse.com>
References: <20250401005224.461325-1-dmukhin@ford.com> <20250401005224.461325-4-dmukhin@ford.com> <c14efb79-54c1-438d-813e-15f635813ccc@suse.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 2aa787f89394c56eb03097064500c86b97510a8e
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Tue, Apr 08, 2025 at 05:34:27PM +0200, Jan Beulich wrote:
> On 01.04.2025 02:52, dmkhn@proton.me wrote:
> > From: Denis Mukhin <dmukhin@ford.com>
> >
> > Rewrite emulation_flags_ok() using XEN_X86_EMU_{OPTIONAL,BASELINE}
> > to simplify future modifications.
> >
> > Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> > ---
> > Came in the context of NS16550 emulator v3 series:
> >   https://lore.kernel.org/xen-devel/20250103-vuart-ns8250-v3-v1-0-c5d36=
b31d66c@ford.com/
> >
> > After modifying emulation_flags_ok() with a new NS16550 vUART
> > configuration switch passed from the toolstack for the HVM
> > case, I decided to look into how to improve emulation_flags_ok().
> > ---
> >  xen/arch/x86/domain.c | 29 +++++++++++------------------
> >  1 file changed, 11 insertions(+), 18 deletions(-)
>=20
> There is a readability win, yes.
>=20
> > --- a/xen/arch/x86/domain.c
> > +++ b/xen/arch/x86/domain.c
> > @@ -750,25 +750,18 @@ static bool emulation_flags_ok(const struct domai=
n *d, uint32_t emflags)
> >      BUILD_BUG_ON(X86_EMU_ALL !=3D XEN_X86_EMU_ALL);
> >  #endif
> >
> > -    if ( is_hvm_domain(d) )
> > -    {
> > -        if ( is_hardware_domain(d) &&
> > -             emflags !=3D (X86_EMU_VPCI | X86_EMU_LAPIC | X86_EMU_IOAP=
IC) )
> > -            return false;
> > -        if ( !is_hardware_domain(d) &&
> > -             /* HVM PIRQ feature is user-selectable. */
> > -             (emflags & ~X86_EMU_USE_PIRQ) !=3D
> > -             (X86_EMU_ALL & ~(X86_EMU_VPCI | X86_EMU_USE_PIRQ)) &&
> > -             emflags !=3D X86_EMU_LAPIC )
> > -            return false;
> > -    }
> > -    else if ( emflags !=3D 0 && emflags !=3D X86_EMU_PIT )
> > -    {
> > -        /* PV or classic PVH. */
> > -        return false;
> > -    }
> > +    /* PV or classic PVH */
> > +    if ( !is_hvm_domain(d) )
> > +        return emflags =3D=3D 0 || emflags =3D=3D XEN_X86_EMU_PIT;
>=20
> What's "classic PVH" here? This got to be PVHv1, which is dead. As you to=
uch /
> move such a comment, you want to adjust it so it's at least no longer sta=
le.

Looks like the comment should say "PV".

>=20
> > -    return true;
> > +    /* HVM */
> > +    if ( is_hardware_domain(d) )
> > +        return emflags =3D=3D (XEN_X86_EMU_LAPIC |
> > +                           XEN_X86_EMU_IOAPIC |
> > +                           XEN_X86_EMU_VPCI);
> > +
> > +    return (emflags & ~XEN_X86_EMU_OPTIONAL) =3D=3D XEN_X86_EMU_BASELI=
NE ||
> > +            emflags =3D=3D XEN_X86_EMU_LAPIC;
>=20
> There was a comment about X86_EMU_USE_PIRQ being optional, which you've l=
ost
> together with (only) that (i.e. not at the same time including vPCI) opti=
onality.
>=20
> Furthermore you move from X86_EMU_* namespace to XEN_X86_EMU_* one withou=
t even
> mentioning that (and the reason to do so) in the description. Aiui the fu=
nction
> deliberately uses the internal names, not the public interface ones.
>=20
> Jan



From xen-devel-bounces@lists.xenproject.org Wed Apr 23 01:02:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 01:02:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.963781.1354753 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7OVq-0001zp-Kh; Wed, 23 Apr 2025 01:02:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 963781.1354753; Wed, 23 Apr 2025 01:02:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7OVq-0001zi-H1; Wed, 23 Apr 2025 01:02:54 +0000
Received: by outflank-mailman (input) for mailman id 963781;
 Wed, 23 Apr 2025 01:02:53 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=dLR5=XJ=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u7OVp-0000o7-Go
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 01:02:53 +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 adfa9e1d-1fde-11f0-9ffb-bf95429c2676;
 Wed, 23 Apr 2025 03:02:51 +0200 (CEST)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-43edecbfb94so60202185e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 18:02:51 -0700 (PDT)
Received: from localhost.localdomain ([83.104.178.215])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-44092d2326dsm6707635e9.15.2025.04.22.18.02.49
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 22 Apr 2025 18:02: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: adfa9e1d-1fde-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745370171; x=1745974971; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Az5L3AwTen2X3hdYSvHBPLsXM8erZfsxm7tPT2WuzcM=;
        b=MCOTSkLhYaRq+hIqlwtxj3afDYyjkDl/ZhkgXZGXQl1rgK9fer32P7F3rFFGEfvZUG
         XAWXyPf+ZAqxrM8nUmUzSxs+gIHzC5/gkDNlBswHnlCq/YulV4P7BVGjKs2jilI5jC6R
         EzFnSA6eZc4WGRYwY5tyv/NQO/Kuwb5UG2pq8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745370171; x=1745974971;
        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=Az5L3AwTen2X3hdYSvHBPLsXM8erZfsxm7tPT2WuzcM=;
        b=kPrxHcRvufn8ysk3L1UHxAxaleiE+M/Uq8moPCiTol3ik8gxTCK1sPJy2yESgj7mNp
         bB6KCxBiRRe+fjvDxCuMCkYe8Ir7xcGBdjkbP/xkE3BW50OUoKJ3MisR3xWQ0absDaYG
         KOM3/YIYruQWzl0CS9XP/I+4sD73+aL+HoNkVExT0q3pfPHFog7PhppKS79xhfcsRark
         cGw9t8b6kCyRWJrGEaEVkqtBWUGtzkk7r+NZ5g1vfHpDjAJ7H9NIIdIONoGAZWyVgC4V
         qU8z22Vz7CKi+NAvd7u+muC8tSZZVxeEHDKAPL4p3ToPWFBLEVu/DXJ4CaW0idJLO1Bc
         2+XA==
X-Gm-Message-State: AOJu0Yz1ck47lV6wk7OoXlSHcBIytwXeX+OA1n7wMsD992Hh7CptNDOt
	EO5EmFGYAFx9aOfK451351gpgDXV9iOVFl8ohpfTbKJ98oBd1DBoZZDfJhfrSHPdOvhDQxoNsQC
	+
X-Gm-Gg: ASbGncs9MKmwSl7CdJgMPZ/7FtIS0Xp7qNpPSXTeJiZRBVpCsDCK/AMLHhnrCc5kj8J
	UJxJvPHtY2vhC7iVJIg8WrDmOdLwryPZf0J1L8JPe7wqvRmYSed1HnlJ3PMv9M7No5htLHQUokh
	k8snJH7BdJGtqrEsGEdzs921A002NnZPnIeYo0H9sGD3bwc0Ji1LE9TY4S9bfjURWd6T8DYXbby
	7Xh3qkpj8SaVC7fi18FbyR25Fow5iUL/qaVAFWnyHFSRRS6kRyxeYqo4dUyGybtOx9H3QYJ24Wa
	A4+n6w2zaM6loteIEsiyznSofanPejRkMUMgPh6BHvv2cdUs9+RfKY9rM210UQ==
X-Google-Smtp-Source: AGHT+IEcxiy7BCMC8dQM+wTEIGNnjB9Ygk8LgBhJdkXFw8myBmCXysxUCn4C1uwaGlXg9SIIKR4tqA==
X-Received: by 2002:a05:600c:1c9d:b0:43c:fb95:c76f with SMTP id 5b1f17b1804b1-4406ab93151mr166134125e9.9.1745370170847;
        Tue, 22 Apr 2025 18:02:50 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH 5/8] x86/altcall: Introduce new simpler scheme
Date: Wed, 23 Apr 2025 02:02:34 +0100
Message-Id: <20250423010237.1528582-6-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250423010237.1528582-1-andrew.cooper3@citrix.com>
References: <20250423010237.1528582-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Encoding altcalls as regular alternatives leads to an unreasonable amount of
complexity in _apply_alternatives().

Introduce apply_alt_calls(), and an .alt_call_sites section which simply
tracks the source address (relative, to save on space).  That's literally all
that is needed in order to devirtualise the function pointers.

apply_alt_calls() is mostly as per _apply_alternatives(), except the size is
known to be 6 bytes.  Drop the logic for JMP *RIPREL, as there's no support
for tailcall optimisations, nor a feasbile plan on how to introduce support.
Pad with a redundant prefix to avoid needing a separate NOP on the end.

Wire it up in nmi_apply_alternatives(), although the section is empty at this
juncture so nothing happens in practice.

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

Finding a 6-byte UD instruction that is distinct from ud2 turns out to be
quite challengning.  The easy way involves a length changing prefix, which is
best avoided.  Suggestions for alternative patterns welcome.

---
 xen/arch/x86/alternative.c                  | 94 +++++++++++++++++++++
 xen/arch/x86/include/asm/alternative-call.h |  7 ++
 xen/arch/x86/xen.lds.S                      |  4 +
 3 files changed, 105 insertions(+)

diff --git a/xen/arch/x86/alternative.c b/xen/arch/x86/alternative.c
index 4b9f8d860153..f6594e21a14c 100644
--- a/xen/arch/x86/alternative.c
+++ b/xen/arch/x86/alternative.c
@@ -388,6 +388,92 @@ static int init_or_livepatch _apply_alternatives(struct alt_instr *start,
     return 0;
 }
 
+/*
+ * At build time, alternative calls are emitted as:
+ *   ff 15 xx xx xx xx  =>  call *disp32(%rip)
+ *
+ * During boot, we devirtualise by editing to:
+ *   2e e8 xx xx xx xx  =>  cs call disp32
+ *
+ * or, if the function pointer is still NULL, poison to:
+ *   0f 0b 0f 0b 0f 0b  =>  ud2a (x3)
+ */
+static int init_or_livepatch apply_alt_calls(
+    const struct alt_call *start, const struct alt_call *end)
+{
+    const struct alt_call *a;
+
+    for ( a = start; a < end; a++ )
+    {
+        const uint8_t *dest;
+        uint8_t buf[6], *orig = ALT_CALL_PTR(a);
+        long disp;
+
+        /* It's likely that this won't change, but check just to be safe. */
+        BUILD_BUG_ON(ALT_CALL_LEN(a) != 6);
+
+        if ( orig[0] != 0xff || orig[1] != 0x15 )
+        {
+            printk(XENLOG_ERR
+                   "Altcall for %ps [%6ph] not CALL *RIPREL\n",
+                   orig, orig);
+            return -EINVAL;
+        }
+
+        disp = *(int32_t *)(orig + 2);
+        dest = *(const void **)(orig + 6 + disp);
+
+        if ( dest )
+        {
+            /*
+             * When building for CET-IBT, all function pointer targets
+             * should have an endbr64 instruction.
+             *
+             * If this is not the case, leave a warning because
+             * something is probably wrong with the build.  A CET-IBT
+             * enabled system might have exploded already.
+             *
+             * Otherwise, skip the endbr64 instruction.  This is a
+             * marginal perf improvement which saves on instruction
+             * decode bandwidth.
+             */
+            if ( IS_ENABLED(CONFIG_XEN_IBT) )
+            {
+                if ( is_endbr64(dest) )
+                    dest += ENDBR64_LEN;
+                else
+                    printk(XENLOG_WARNING
+                           "Altcall %ps dest %ps has no endbr64\n",
+                           orig, dest);
+            }
+
+            disp = dest - (orig + 6);
+            ASSERT(disp == (int32_t)disp);
+
+            buf[0] = 0x2e;
+            buf[1] = 0xe8;
+            *(int32_t *)(buf + 2) = disp;
+        }
+        else
+        {
+            /*
+             * The function pointer is still NULL.  Seal the whole call, as
+             * it's not used.
+             */
+            buf[0] = 0x0f;
+            buf[1] = 0x0b;
+            buf[2] = 0x0f;
+            buf[3] = 0x0b;
+            buf[4] = 0x0f;
+            buf[5] = 0x0b;
+        }
+
+        text_poke(orig, buf, sizeof(buf));
+    }
+
+    return 0;
+}
+
 #ifdef CONFIG_LIVEPATCH
 int apply_alternatives(struct alt_instr *start, struct alt_instr *end)
 {
@@ -401,6 +487,7 @@ static unsigned int __initdata alt_todo;
 static unsigned int __initdata alt_done;
 
 extern struct alt_instr __alt_instructions[], __alt_instructions_end[];
+extern struct alt_call __alt_call_sites_start[], __alt_call_sites_end[];
 
 /*
  * At boot time, we patch alternatives in NMI context.  This means that the
@@ -435,6 +522,13 @@ static int __init cf_check nmi_apply_alternatives(
         if ( rc )
             panic("Unable to apply alternatives: %d\n", rc);
 
+        if ( alt_todo & ALT_CALLS )
+        {
+            rc = apply_alt_calls(__alt_call_sites_start, __alt_call_sites_end);
+            if ( rc )
+                panic("Unable to apply alternative calls: %d\n", rc);
+        }
+
         /*
          * Reinstate perms on .text to be RX.  This also cleans out the dirty
          * bits, which matters when CET Shstk is active.
diff --git a/xen/arch/x86/include/asm/alternative-call.h b/xen/arch/x86/include/asm/alternative-call.h
index 828ea32a9625..49a04a7cc45b 100644
--- a/xen/arch/x86/include/asm/alternative-call.h
+++ b/xen/arch/x86/include/asm/alternative-call.h
@@ -4,6 +4,13 @@
 
 #include <asm/alternative.h>
 
+/* Simply the relative position of the source call. */
+struct alt_call {
+    int32_t offset;
+};
+#define ALT_CALL_PTR(a) ((void *)&(a)->offset + (a)->offset)
+#define ALT_CALL_LEN(a) (6)
+
 /*
  * Machinery to allow converting indirect to direct calls, when the called
  * function is determined once at boot and later never changed.
diff --git a/xen/arch/x86/xen.lds.S b/xen/arch/x86/xen.lds.S
index d4dd6434c466..53bafc98a536 100644
--- a/xen/arch/x86/xen.lds.S
+++ b/xen/arch/x86/xen.lds.S
@@ -260,6 +260,10 @@ SECTIONS
         __alt_instructions = .;
         *(.altinstructions)
         __alt_instructions_end = .;
+        . = ALIGN(4);
+        __alt_call_sites_start = .;
+        *(.alt_call_sites)
+        __alt_call_sites_end = .;
 
        LOCK_PROFILE_DATA
 
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Wed Apr 23 01:02:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 01:02:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.963777.1354713 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7OVl-000129-CD; Wed, 23 Apr 2025 01:02:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 963777.1354713; Wed, 23 Apr 2025 01:02: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 1u7OVl-000122-9Z; Wed, 23 Apr 2025 01:02:49 +0000
Received: by outflank-mailman (input) for mailman id 963777;
 Wed, 23 Apr 2025 01:02: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=dLR5=XJ=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u7OVk-0000oH-Dg
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 01:02:48 +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 abab4d9f-1fde-11f0-9eb0-5ba50f476ded;
 Wed, 23 Apr 2025 03:02:47 +0200 (CEST)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-43edecbfb94so60201785e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 18:02:47 -0700 (PDT)
Received: from localhost.localdomain ([83.104.178.215])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-44092d2326dsm6707635e9.15.2025.04.22.18.02.44
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 22 Apr 2025 18:02: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: abab4d9f-1fde-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745370166; x=1745974966; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=QBk2Bkks19S53TDx+/MMHfe9z/s9WQXhsbPDXWcJ6Gk=;
        b=UMwEaKw68htl2NZxRZCqHqyz5XU1JLqQmCWbhQGsW/fDSibnA9Gp/cIls2vDMLEz2c
         72s+8aewG3PmAHdZCffpfkE110N7d6vOfyY77Kys5mXMlRKD4v85oXPg6SzutPfr5SBG
         IcJM1G8woGvnuRzPNEi0LgE9SblLHWV+u4/gI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745370166; x=1745974966;
        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=QBk2Bkks19S53TDx+/MMHfe9z/s9WQXhsbPDXWcJ6Gk=;
        b=iqoUWaOPgdLUNlDLyNAs+QGv5xmQqtTgaCux70X902Jt3mYsIIhskuG423nE6dNYvR
         kggoNBNIrotSnv4b2VObVlxZvRGYT0S3RY90ujYXIHu0UmauWug6J8I6vGLW8KrxKNoZ
         +hzZ+qGu2fBYna+TgKwakyJj366iwM1DTJKIHVLJITpK7wrGdNwu9rMqoey/WqaDUqEq
         +wNhMIZvdjBLmYHY3fGOpU9IMxwa8GEzBu1fPW6yfY43PSi+n+UiwTlBNjFaXcOqjCfE
         NvDbeFocVYvjvX6WKxUrkW4ZHzmGDjZQttoUc46+p+UzSX7dYRIrLHK28MiJqr24T/TQ
         OQCw==
X-Gm-Message-State: AOJu0YyTjmQcR7nSjtLso+uDnrcshs6LzahY700bwoBCqchWTWf1LtSz
	xE4Qq699G+4Gdy880vaTiREUOa1G/2KRjmmQ/kTuzQR6BjOM21kXPfpqcvR6mwTLVzQ218NZdYc
	1
X-Gm-Gg: ASbGncsvj/q3Pe1mPpgSGqHC0ky9jarxXiWmQRzcaXtCyG+NGzQ+XOp4pbXuWPgpgF5
	b3g2uR5xsAb6jZ9QvQsbZn2zeNljmjWjUGdwKulENoWOwXrioJoqt7/qykqTFlNiHtGWRdqaJyi
	6SUb1FcGmRM0Nz0d2xo57D+xiFOvp4i50HvkDdC7fWrPjjJflpW39DY8e/PuxHJxBPRWNE8xbcj
	c7PfgYRzgp9wzSbMuj8h7+Oi13WYTb5mVt9nJ5N9GujdzcG4c/Zl86Ch7Nk2QnH55FfnzhusvOR
	2TN5JTCRNh4wyEHiEa0Jh2ZRJLQ6AqFWYSATlBgKHmTiNzpmdloCMBf9DiTmoA==
X-Google-Smtp-Source: AGHT+IECRcenPSj7qe5KMmpxDDkvujUjR3cZAXi+zIeQHDXnn5RCoe4eX1JvNdayYhnQ/L4lk0wKIQ==
X-Received: by 2002:a05:600c:cc4:b0:43b:ce3c:19d0 with SMTP id 5b1f17b1804b1-4406ac176ecmr146769205e9.29.1745370166523;
        Tue, 22 Apr 2025 18:02:46 -0700 (PDT)
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/8] x86/altcall: Rename alternative_branches() to boot_apply_alt_calls()
Date: Wed, 23 Apr 2025 02:02:31 +0100
Message-Id: <20250423010237.1528582-3-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250423010237.1528582-1-andrew.cooper3@citrix.com>
References: <20250423010237.1528582-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The alternatives APIs are not great; rename alternative_branches() to be more
precise.  Centralise the declaration in xen/alternative-call.h, in the
expectation that x86 won't be the only user in the long term.

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/alternative.c             |  2 +-
 xen/arch/x86/include/asm/alternative.h |  1 -
 xen/arch/x86/setup.c                   |  3 ++-
 xen/include/xen/alternative-call.h     | 10 +++++++++-
 4 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/xen/arch/x86/alternative.c b/xen/arch/x86/alternative.c
index 1ba35cb9ede9..d1a3b7ea7ca6 100644
--- a/xen/arch/x86/alternative.c
+++ b/xen/arch/x86/alternative.c
@@ -493,7 +493,7 @@ void __init alternative_instructions(void)
     _alternative_instructions(false);
 }
 
-void __init alternative_branches(void)
+void __init boot_apply_alt_calls(void)
 {
     local_irq_disable();
     _alternative_instructions(true);
diff --git a/xen/arch/x86/include/asm/alternative.h b/xen/arch/x86/include/asm/alternative.h
index 2d2ace97f794..29c3d724b07f 100644
--- a/xen/arch/x86/include/asm/alternative.h
+++ b/xen/arch/x86/include/asm/alternative.h
@@ -29,7 +29,6 @@ extern void add_nops(void *insns, unsigned int len);
 /* Similar to alternative_instructions except it can be run with IRQs enabled. */
 extern int apply_alternatives(struct alt_instr *start, struct alt_instr *end);
 extern void alternative_instructions(void);
-extern void alternative_branches(void);
 
 #define alt_orig_len       "(.LXEN%=_orig_e - .LXEN%=_orig_s)"
 #define alt_pad_len        "(.LXEN%=_orig_p - .LXEN%=_orig_e)"
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index cf1ea040dd90..25189541244d 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -1,4 +1,5 @@
 #include <xen/acpi.h>
+#include <xen/alternative-call.h>
 #include <xen/bitops.h>
 #include <xen/console.h>
 #include <xen/cpu.h>
@@ -2082,7 +2083,7 @@ void asmlinkage __init noreturn __start_xen(void)
 
     do_presmp_initcalls();
 
-    alternative_branches();
+    boot_apply_alt_calls();
 
     /*
      * NB: when running as a PV shim VCPUOP_up/down is wired to the shim
diff --git a/xen/include/xen/alternative-call.h b/xen/include/xen/alternative-call.h
index 39339c3f0f76..3c855bfa44f5 100644
--- a/xen/include/xen/alternative-call.h
+++ b/xen/include/xen/alternative-call.h
@@ -17,6 +17,8 @@
  *   generation requirements are to emit a function pointer call at build
  *   time, and stash enough metadata to simplify the call at boot once the
  *   implementation has been resolved.
+ * - Implement boot_apply_alt_calls() to convert the function pointer calls
+ *   into direct calls on boot.
  * - Select ALTERNATIVE_CALL in Kconfig.
  *
  * To use:
@@ -57,7 +59,13 @@
 # define __alt_call_maybe_initdata __initdata
 #endif
 
-#else
+/*
+ * Devirtualise the alternative_{,v}call()'s on boot.  Convert still-NULL
+ * function pointers into traps.
+ */
+void boot_apply_alt_calls(void);
+
+#else /* CONFIG_ALTERNATIVE_CALL */
 
 #define alternative_call(func, args...)  (func)(args)
 #define alternative_vcall(func, args...) (func)(args)
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Wed Apr 23 01:02:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 01:02:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.963780.1354743 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7OVp-0001kG-8x; Wed, 23 Apr 2025 01:02:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 963780.1354743; Wed, 23 Apr 2025 01:02: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 1u7OVp-0001k2-39; Wed, 23 Apr 2025 01:02:53 +0000
Received: by outflank-mailman (input) for mailman id 963780;
 Wed, 23 Apr 2025 01:02: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=dLR5=XJ=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u7OVn-0000oH-2p
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 01:02:51 +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 aa88e0c7-1fde-11f0-9eb0-5ba50f476ded;
 Wed, 23 Apr 2025 03:02:45 +0200 (CEST)
Received: by mail-wr1-x432.google.com with SMTP id
 ffacd0b85a97d-39c266c1389so4317299f8f.1
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 18:02:45 -0700 (PDT)
Received: from localhost.localdomain ([83.104.178.215])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-44092d2326dsm6707635e9.15.2025.04.22.18.02.42
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 22 Apr 2025 18:02:43 -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: aa88e0c7-1fde-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745370165; x=1745974965; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=4YZT122JRc5fL7nppkrV93A7BiGANzdSfpXbbRGCgmE=;
        b=nWczUQqGxDdDNCCmYnk9bryi/tXnXU6PjKOGgZhD5YohoeqKpt7WFAAn6h4xZJzqcB
         +r0Gco0nmxfctyp2WAq5ibHI+oACc977sfNWU+0/mZIRbRW1Ij0PC2wSS79MuWh4nuqN
         AFbsjKhFCDine4OA+Y+h7Kqea8Z1Wv5j8BsEE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745370165; x=1745974965;
        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=4YZT122JRc5fL7nppkrV93A7BiGANzdSfpXbbRGCgmE=;
        b=gIMBh5euoWy5jDKiGsRJeuAocPK8dlCmXWXv3h2f4xqSJ1DoOBCuCdC+adz86Ebzih
         n4xPDQrT7ndJYdElRBCZhzAfyARu8jFbnJCXl86jbOCQPeQmO8bBlIuET2EGRIC6CPi/
         ZZyj//NNSf+NH40SneQPI5+tRGeNcZvgbQyZw/n1ID9pkjFf5K9l0FSDgiV0Duny2NoU
         IHhSwSENoskJKxwj4qaAkgP+BlCr0xsPmeo+n2fVTY1aByH6Amc9700giMJDCwzYRtbp
         yYw23SLaFQBQs+aUOGEyqfvPxBx7cY0kKGtGqtSR0IqAywMkjJKvW97uc7M9wq6AGFrv
         zpGA==
X-Gm-Message-State: AOJu0YxBVI06aH+Mv3wh1dNXQNTzy4PN09bjMuwpUHluBsYxORMPO/UN
	Bcku2o8XyVlRWuydQ2u0QPtySVv4PJQz8USJJnSsm8e6kzLfjPtdqhuJdoMasd7riOO5mCdBNFE
	9
X-Gm-Gg: ASbGncvW5ANDwyGRszGZfKp22qUArTq4veSmeSvCrAaFY/UnTT1rRheFXTYaP34ZaFS
	vMks9CEhjKjYtlxR23JuSKjRrV0/AcupE3piSmxCaeaVUcjeKoMkKDhyhUr/hH6UqXQx5rhOtSE
	rb5TgNBiv6bsrLPwlzfEYu3toRn38srb7HKj5Mj2DJTDH9P/1YqO8cUrDhdG5hsH+gmDxNqRLT/
	S+wQtqjj9DVQVioswFf/F1CiYD+ycThQjiiFl6YzAqa+GbjfWmaKPeTvUo1c/3m7dpJMc0gzD3w
	Wz9/QQz6bhtO+KkJROxY4yGreUR3Wj7e2AA0YJ3YalmLCi8YRoEN2a72oJGLRQ==
X-Google-Smtp-Source: AGHT+IEeZpTt1UmspNBku1CKlp8q4FyAU25r/v9pESJP2ptVpg/buA3gtThD0Ucrbd2+mu4iWWbp9w==
X-Received: by 2002:a5d:5f87:0:b0:391:29f:4f87 with SMTP id ffacd0b85a97d-39efbaee69fmr12718487f8f.49.1745370164518;
        Tue, 22 Apr 2025 18:02:44 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"consulting @ bugseng . com" <consulting@bugseng.com>,
	Nicola Vetrini <nicola.vetrini@bugseng.com>
Subject: [PATCH 1/8] x86/altcall: Split alternative-call.h out of alternative.h
Date: Wed, 23 Apr 2025 02:02:30 +0100
Message-Id: <20250423010237.1528582-2-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250423010237.1528582-1-andrew.cooper3@citrix.com>
References: <20250423010237.1528582-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

... in preparation for changing how they're implemented.

Update the MISRA deviations with the new path.

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Michal Orzel <michal.orzel@amd.com>
CC: Jan Beulich <jbeulich@suse.com>
CC: Julien Grall <julien@xen.org>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: consulting@bugseng.com <consulting@bugseng.com>
CC: Nicola Vetrini <nicola.vetrini@bugseng.com>

In terms of naming, while tailcalls can technically be jumps, they're still
usually reasoned about as being calls.

It appears that everywhere else which needs alternative_{v,}call() gets it
transitively through hvm.h
---
 .../eclair_analysis/ECLAIR/deviations.ecl     |   4 +-
 .../asm/{alternative.h => alternative-call.h} | 171 +-----------
 xen/arch/x86/include/asm/alternative.h        | 262 ------------------
 xen/arch/x86/include/asm/hvm/hvm.h            |   2 +-
 xen/common/core_parking.c                     |   4 +-
 xen/include/xen/alternative-call.h            |  10 +-
 6 files changed, 16 insertions(+), 437 deletions(-)
 copy xen/arch/x86/include/asm/{alternative.h => alternative-call.h} (64%)

diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl b/automation/eclair_analysis/ECLAIR/deviations.ecl
index 2c8fb9271391..9c67358d4663 100644
--- a/automation/eclair_analysis/ECLAIR/deviations.ecl
+++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
@@ -414,8 +414,8 @@ of the short-circuit evaluation strategy of such logical operators."
 -doc_end
 
 -doc_begin="Macros alternative_v?call[0-9] use sizeof and typeof to check that the argument types match the corresponding parameter ones."
--config=MC3A2.R13.6,reports+={deliberate,"any_area(any_loc(any_exp(macro(^alternative_vcall[0-9]$))&&file(^xen/arch/x86/include/asm/alternative\\.h*$)))"}
--config=B.UNEVALEFF,reports+={deliberate,"any_area(any_loc(any_exp(macro(^alternative_v?call[0-9]$))&&file(^xen/arch/x86/include/asm/alterantive\\.h*$)))"}
+-config=MC3A2.R13.6,reports+={deliberate,"any_area(any_loc(any_exp(macro(^alternative_vcall[0-9]$))&&file(^xen/arch/x86/include/asm/alternative-call\\.h*$)))"}
+-config=B.UNEVALEFF,reports+={deliberate,"any_area(any_loc(any_exp(macro(^alternative_v?call[0-9]$))&&file(^xen/arch/x86/include/asm/alterantive-call\\.h*$)))"}
 -doc_end
 
 -doc_begin="Anything, no matter how complicated, inside the BUILD_BUG_ON macro is subject to a compile-time evaluation without relevant side effects."
diff --git a/xen/arch/x86/include/asm/alternative.h b/xen/arch/x86/include/asm/alternative-call.h
similarity index 64%
copy from xen/arch/x86/include/asm/alternative.h
copy to xen/arch/x86/include/asm/alternative-call.h
index 7326ad942836..828ea32a9625 100644
--- a/xen/arch/x86/include/asm/alternative.h
+++ b/xen/arch/x86/include/asm/alternative-call.h
@@ -1,165 +1,8 @@
-#ifndef __X86_ALTERNATIVE_H__
-#define __X86_ALTERNATIVE_H__
+/* SPDX-License-Identifier: GPL-2.0-only */
+#ifndef X86_ALTERNATIVE_CALL_H
+#define X86_ALTERNATIVE_CALL_H
 
-#ifdef __ASSEMBLY__
-#include <asm/alternative-asm.h>
-#else
-
-#include <xen/macros.h>
-#include <xen/types.h>
-
-#include <asm/asm-macros.h>
-#include <asm/cpufeatureset.h>
-
-struct __packed alt_instr {
-    int32_t  orig_offset;   /* original instruction */
-    int32_t  repl_offset;   /* offset to replacement instruction */
-    uint16_t cpuid;         /* cpuid bit set for replacement */
-    uint8_t  orig_len;      /* length of original instruction */
-    uint8_t  repl_len;      /* length of new instruction */
-    uint8_t  pad_len;       /* length of build-time padding */
-    uint8_t  priv;          /* Private, for use by apply_alternatives() */
-};
-
-#define __ALT_PTR(a,f)      ((uint8_t *)((void *)&(a)->f + (a)->f))
-#define ALT_ORIG_PTR(a)     __ALT_PTR(a, orig_offset)
-#define ALT_REPL_PTR(a)     __ALT_PTR(a, repl_offset)
-
-extern void add_nops(void *insns, unsigned int len);
-/* Similar to alternative_instructions except it can be run with IRQs enabled. */
-extern int apply_alternatives(struct alt_instr *start, struct alt_instr *end);
-extern void alternative_instructions(void);
-extern void alternative_branches(void);
-
-#define alt_orig_len       "(.LXEN%=_orig_e - .LXEN%=_orig_s)"
-#define alt_pad_len        "(.LXEN%=_orig_p - .LXEN%=_orig_e)"
-#define alt_total_len      "(.LXEN%=_orig_p - .LXEN%=_orig_s)"
-#define alt_repl_s(num)    ".LXEN%=_repl_s"#num
-#define alt_repl_e(num)    ".LXEN%=_repl_e"#num
-#define alt_repl_len(num)  "(" alt_repl_e(num) " - " alt_repl_s(num) ")"
-
-/*
- * GAS's idea of true is sometimes 1 and sometimes -1, while Clang's idea
- * was consistently 1 up to 6.x (it matches GAS's now).  Transform it to
- * uniformly 1.
- */
-#define AS_TRUE(x) "((" x ") & 1)"
-
-#define as_max(a, b) "(("a") ^ ((("a") ^ ("b")) & -("AS_TRUE("("a") < ("b")")")))"
-
-#define OLDINSTR(oldinstr, padding)                              \
-    ".LXEN%=_orig_s:\n\t" oldinstr "\n .LXEN%=_orig_e:\n\t"      \
-    ".LXEN%=_diff = " padding "\n\t"                             \
-    "mknops ("AS_TRUE(".LXEN%=_diff > 0")" * .LXEN%=_diff)\n\t"  \
-    ".LXEN%=_orig_p:\n\t"
-
-#define OLDINSTR_1(oldinstr, n1)                                 \
-    OLDINSTR(oldinstr, alt_repl_len(n1) "-" alt_orig_len)
-
-#define OLDINSTR_2(oldinstr, n1, n2)                             \
-    OLDINSTR(oldinstr,                                           \
-             as_max(alt_repl_len(n1),                            \
-                    alt_repl_len(n2)) "-" alt_orig_len)
-
-#define ALTINSTR_ENTRY(feature, num)                                    \
-        " .if " STR(feature) " >= " STR(NCAPINTS * 32) "\n"             \
-        " .error \"alternative feature outside of featureset range\"\n" \
-        " .endif\n"                                                     \
-        " .long .LXEN%=_orig_s - .\n"             /* label           */ \
-        " .long " alt_repl_s(num)" - .\n"         /* new instruction */ \
-        " .word " STR(feature) "\n"               /* feature bit     */ \
-        " .byte " alt_orig_len "\n"               /* source len      */ \
-        " .byte " alt_repl_len(num) "\n"          /* replacement len */ \
-        " .byte " alt_pad_len "\n"                /* padding len     */ \
-        " .byte 0\n"                              /* priv            */
-
-#define DISCARD_ENTRY(num)                        /* repl <= total */   \
-        " .byte 0xff + (" alt_repl_len(num) ") - (" alt_total_len ")\n"
-
-#define ALTINSTR_REPLACEMENT(newinstr, num)       /* replacement */     \
-        alt_repl_s(num)":\n\t" newinstr "\n" alt_repl_e(num) ":\n\t"
-
-/* alternative assembly primitive: */
-#define ALTERNATIVE(oldinstr, newinstr, feature)                        \
-        OLDINSTR_1(oldinstr, 1)                                         \
-        ".pushsection .altinstructions, \"a\", @progbits\n"             \
-        ALTINSTR_ENTRY(feature, 1)                                      \
-        ".section .discard, \"a\", @progbits\n"                         \
-        ".byte " alt_total_len "\n" /* total_len <= 255 */              \
-        DISCARD_ENTRY(1)                                                \
-        ".section .altinstr_replacement, \"ax\", @progbits\n"           \
-        ALTINSTR_REPLACEMENT(newinstr, 1)                               \
-        ".popsection\n"
-
-#define ALTERNATIVE_2(oldinstr, newinstr1, feature1, newinstr2, feature2) \
-        OLDINSTR_2(oldinstr, 1, 2)                                      \
-        ".pushsection .altinstructions, \"a\", @progbits\n"             \
-        ALTINSTR_ENTRY(feature1, 1)                                     \
-        ALTINSTR_ENTRY(feature2, 2)                                     \
-        ".section .discard, \"a\", @progbits\n"                         \
-        ".byte " alt_total_len "\n" /* total_len <= 255 */              \
-        DISCARD_ENTRY(1)                                                \
-        DISCARD_ENTRY(2)                                                \
-        ".section .altinstr_replacement, \"ax\", @progbits\n"           \
-        ALTINSTR_REPLACEMENT(newinstr1, 1)                              \
-        ALTINSTR_REPLACEMENT(newinstr2, 2)                              \
-        ".popsection\n"
-
-/*
- * Alternative instructions for different CPU types or capabilities.
- *
- * This allows to use optimized instructions even on generic binary
- * kernels.
- *
- * length of oldinstr must be longer or equal the length of newinstr
- * It can be padded with nops as needed.
- *
- * For non barrier like inlines please define new variants
- * without volatile and memory clobber.
- */
-#define alternative(oldinstr, newinstr, feature)                        \
-        asm volatile (ALTERNATIVE(oldinstr, newinstr, feature) : : : "memory")
-
-#define alternative_2(oldinstr, newinstr1, feature1, newinstr2, feature2) \
-	asm volatile (ALTERNATIVE_2(oldinstr, newinstr1, feature1,	\
-				    newinstr2, feature2)		\
-		      : : : "memory")
-
-/*
- * Alternative inline assembly with input.
- *
- * Pecularities:
- * No memory clobber here.
- * Argument numbers start with 1.
- * Best is to use constraints that are fixed size (like (%1) ... "r")
- * If you use variable sized constraints like "m" or "g" in the
- * replacement make sure to pad to the worst case length.
- */
-#define alternative_input(oldinstr, newinstr, feature, input...)	\
-	asm volatile (ALTERNATIVE(oldinstr, newinstr, feature)		\
-		      : : input)
-
-/* Like alternative_input, but with a single output argument */
-#define alternative_io(oldinstr, newinstr, feature, output, input...)	\
-	asm volatile (ALTERNATIVE(oldinstr, newinstr, feature)		\
-		      : output : input)
-
-/*
- * This is similar to alternative_io. But it has two features and
- * respective instructions.
- *
- * If CPU has feature2, newinstr2 is used.
- * Otherwise, if CPU has feature1, newinstr1 is used.
- * Otherwise, oldinstr is used.
- */
-#define alternative_io_2(oldinstr, newinstr1, feature1, newinstr2,	\
-			 feature2, output, input...)			\
-	asm volatile(ALTERNATIVE_2(oldinstr, newinstr1, feature1,	\
-				   newinstr2, feature2)			\
-		     : output : input)
-
-/* Use this macro(s) if you need more than one output parameter. */
-#define ASM_OUTPUT2(a...) a
+#include <asm/alternative.h>
 
 /*
  * Machinery to allow converting indirect to direct calls, when the called
@@ -303,7 +146,7 @@ extern void alternative_branches(void);
 })
 
 #define alternative_call3(func, arg1, arg2, arg3) ({     \
-    typeof(arg1) v1_ = (arg1);                            \
+    typeof(arg1) v1_ = (arg1);                           \
     typeof(arg2) v2_ = (arg2);                           \
     typeof(arg3) v3_ = (arg3);                           \
     ALT_CALL_ARG(v1_, 1);                                \
@@ -423,6 +266,4 @@ extern void alternative_branches(void);
 #define alternative_call(func, args...) \
     alternative_call_(count_args(args))(func, ## args)
 
-#endif /*  !__ASSEMBLY__  */
-
-#endif /* __X86_ALTERNATIVE_H__ */
+#endif /* X86_ALTERNATIVE_CALL_H */
diff --git a/xen/arch/x86/include/asm/alternative.h b/xen/arch/x86/include/asm/alternative.h
index 7326ad942836..2d2ace97f794 100644
--- a/xen/arch/x86/include/asm/alternative.h
+++ b/xen/arch/x86/include/asm/alternative.h
@@ -161,268 +161,6 @@ extern void alternative_branches(void);
 /* Use this macro(s) if you need more than one output parameter. */
 #define ASM_OUTPUT2(a...) a
 
-/*
- * Machinery to allow converting indirect to direct calls, when the called
- * function is determined once at boot and later never changed.
- */
-
-#define ALT_CALL_arg1 "rdi"
-#define ALT_CALL_arg2 "rsi"
-#define ALT_CALL_arg3 "rdx"
-#define ALT_CALL_arg4 "rcx"
-#define ALT_CALL_arg5 "r8"
-#define ALT_CALL_arg6 "r9"
-
-#ifdef CONFIG_CC_IS_CLANG
-/*
- * Clang doesn't follow the psABI and doesn't truncate parameter values at the
- * callee.  This can lead to bad code being generated when using alternative
- * calls.
- *
- * Workaround it by using a temporary intermediate variable that's zeroed
- * before being assigned the parameter value, as that forces clang to zero the
- * register at the caller.
- *
- * This has been reported upstream:
- * https://github.com/llvm/llvm-project/issues/12579
- * https://github.com/llvm/llvm-project/issues/82598
- */
-#define ALT_CALL_ARG(arg, n)                                            \
-    register unsigned long a ## n ## _ asm ( ALT_CALL_arg ## n ) = ({   \
-        unsigned long tmp = 0;                                          \
-        BUILD_BUG_ON(sizeof(arg) > sizeof(unsigned long));              \
-        *(typeof(arg) *)&tmp = (arg);                                   \
-        tmp;                                                            \
-    })
-#else
-#define ALT_CALL_ARG(arg, n) \
-    register typeof(arg) a ## n ## _ asm ( ALT_CALL_arg ## n ) = \
-        ({ BUILD_BUG_ON(sizeof(arg) > sizeof(void *)); (arg); })
-#endif
-#define ALT_CALL_NO_ARG(n) \
-    register unsigned long a ## n ## _ asm ( ALT_CALL_arg ## n )
-
-#define ALT_CALL_NO_ARG6 ALT_CALL_NO_ARG(6)
-#define ALT_CALL_NO_ARG5 ALT_CALL_NO_ARG(5); ALT_CALL_NO_ARG6
-#define ALT_CALL_NO_ARG4 ALT_CALL_NO_ARG(4); ALT_CALL_NO_ARG5
-#define ALT_CALL_NO_ARG3 ALT_CALL_NO_ARG(3); ALT_CALL_NO_ARG4
-#define ALT_CALL_NO_ARG2 ALT_CALL_NO_ARG(2); ALT_CALL_NO_ARG3
-#define ALT_CALL_NO_ARG1 ALT_CALL_NO_ARG(1); ALT_CALL_NO_ARG2
-
-/*
- * Unfortunately ALT_CALL_NO_ARG() above can't use a fake initializer (to
- * suppress "uninitialized variable" warnings), as various versions of gcc
- * older than 8.1 fall on the nose in various ways with that (always because
- * of some other construct elsewhere in the same function needing to use the
- * same hard register). Otherwise the asm() below could uniformly use "+r"
- * output constraints, making unnecessary all these ALT_CALL<n>_OUT macros.
- */
-#define ALT_CALL0_OUT "=r" (a1_), "=r" (a2_), "=r" (a3_), \
-                      "=r" (a4_), "=r" (a5_), "=r" (a6_)
-#define ALT_CALL1_OUT "+r" (a1_), "=r" (a2_), "=r" (a3_), \
-                      "=r" (a4_), "=r" (a5_), "=r" (a6_)
-#define ALT_CALL2_OUT "+r" (a1_), "+r" (a2_), "=r" (a3_), \
-                      "=r" (a4_), "=r" (a5_), "=r" (a6_)
-#define ALT_CALL3_OUT "+r" (a1_), "+r" (a2_), "+r" (a3_), \
-                      "=r" (a4_), "=r" (a5_), "=r" (a6_)
-#define ALT_CALL4_OUT "+r" (a1_), "+r" (a2_), "+r" (a3_), \
-                      "+r" (a4_), "=r" (a5_), "=r" (a6_)
-#define ALT_CALL5_OUT "+r" (a1_), "+r" (a2_), "+r" (a3_), \
-                      "+r" (a4_), "+r" (a5_), "=r" (a6_)
-#define ALT_CALL6_OUT "+r" (a1_), "+r" (a2_), "+r" (a3_), \
-                      "+r" (a4_), "+r" (a5_), "+r" (a6_)
-
-#define alternative_callN(n, rettype, func) ({                     \
-    rettype ret_;                                                  \
-    register unsigned long r10_ asm("r10");                        \
-    register unsigned long r11_ asm("r11");                        \
-    asm volatile (ALTERNATIVE("call *%c[addr](%%rip)", "call .",   \
-                              X86_FEATURE_ALWAYS)                  \
-                  : ALT_CALL ## n ## _OUT, "=a" (ret_),            \
-                    "=r" (r10_), "=r" (r11_) ASM_CALL_CONSTRAINT   \
-                  : [addr] "i" (&(func)), "g" (func)               \
-                  : "memory" );                                    \
-    ret_;                                                          \
-})
-
-#define alternative_vcall0(func) ({             \
-    ALT_CALL_NO_ARG1;                           \
-    (void)sizeof(func());                       \
-    (void)alternative_callN(0, int, func);      \
-})
-
-#define alternative_call0(func) ({              \
-    ALT_CALL_NO_ARG1;                           \
-    alternative_callN(0, typeof(func()), func); \
-})
-
-#define alternative_vcall1(func, arg) ({           \
-    typeof(arg) v1_ = (arg);                       \
-    ALT_CALL_ARG(v1_, 1);                          \
-    ALT_CALL_NO_ARG2;                              \
-    (void)sizeof(func(arg));                       \
-    (void)alternative_callN(1, int, func);         \
-})
-
-#define alternative_call1(func, arg) ({            \
-    typeof(arg) v1_ = (arg);                       \
-    ALT_CALL_ARG(v1_, 1);                          \
-    ALT_CALL_NO_ARG2;                              \
-    alternative_callN(1, typeof(func(arg)), func); \
-})
-
-#define alternative_vcall2(func, arg1, arg2) ({           \
-    typeof(arg1) v1_ = (arg1);                            \
-    typeof(arg2) v2_ = (arg2);                            \
-    ALT_CALL_ARG(v1_, 1);                                 \
-    ALT_CALL_ARG(v2_, 2);                                 \
-    ALT_CALL_NO_ARG3;                                     \
-    (void)sizeof(func(arg1, arg2));                       \
-    (void)alternative_callN(2, int, func);                \
-})
-
-#define alternative_call2(func, arg1, arg2) ({            \
-    typeof(arg1) v1_ = (arg1);                            \
-    typeof(arg2) v2_ = (arg2);                            \
-    ALT_CALL_ARG(v1_, 1);                                 \
-    ALT_CALL_ARG(v2_, 2);                                 \
-    ALT_CALL_NO_ARG3;                                     \
-    alternative_callN(2, typeof(func(arg1, arg2)), func); \
-})
-
-#define alternative_vcall3(func, arg1, arg2, arg3) ({    \
-    typeof(arg1) v1_ = (arg1);                           \
-    typeof(arg2) v2_ = (arg2);                           \
-    typeof(arg3) v3_ = (arg3);                           \
-    ALT_CALL_ARG(v1_, 1);                                \
-    ALT_CALL_ARG(v2_, 2);                                \
-    ALT_CALL_ARG(v3_, 3);                                \
-    ALT_CALL_NO_ARG4;                                    \
-    (void)sizeof(func(arg1, arg2, arg3));                \
-    (void)alternative_callN(3, int, func);               \
-})
-
-#define alternative_call3(func, arg1, arg2, arg3) ({     \
-    typeof(arg1) v1_ = (arg1);                            \
-    typeof(arg2) v2_ = (arg2);                           \
-    typeof(arg3) v3_ = (arg3);                           \
-    ALT_CALL_ARG(v1_, 1);                                \
-    ALT_CALL_ARG(v2_, 2);                                \
-    ALT_CALL_ARG(v3_, 3);                                \
-    ALT_CALL_NO_ARG4;                                    \
-    alternative_callN(3, typeof(func(arg1, arg2, arg3)), \
-                      func);                             \
-})
-
-#define alternative_vcall4(func, arg1, arg2, arg3, arg4) ({ \
-    typeof(arg1) v1_ = (arg1);                              \
-    typeof(arg2) v2_ = (arg2);                              \
-    typeof(arg3) v3_ = (arg3);                              \
-    typeof(arg4) v4_ = (arg4);                              \
-    ALT_CALL_ARG(v1_, 1);                                   \
-    ALT_CALL_ARG(v2_, 2);                                   \
-    ALT_CALL_ARG(v3_, 3);                                   \
-    ALT_CALL_ARG(v4_, 4);                                   \
-    ALT_CALL_NO_ARG5;                                       \
-    (void)sizeof(func(arg1, arg2, arg3, arg4));             \
-    (void)alternative_callN(4, int, func);                  \
-})
-
-#define alternative_call4(func, arg1, arg2, arg3, arg4) ({  \
-    typeof(arg1) v1_ = (arg1);                              \
-    typeof(arg2) v2_ = (arg2);                              \
-    typeof(arg3) v3_ = (arg3);                              \
-    typeof(arg4) v4_ = (arg4);                              \
-    ALT_CALL_ARG(v1_, 1);                                   \
-    ALT_CALL_ARG(v2_, 2);                                   \
-    ALT_CALL_ARG(v3_, 3);                                   \
-    ALT_CALL_ARG(v4_, 4);                                   \
-    ALT_CALL_NO_ARG5;                                       \
-    alternative_callN(4, typeof(func(arg1, arg2,            \
-                                     arg3, arg4)),          \
-                      func);                                \
-})
-
-#define alternative_vcall5(func, arg1, arg2, arg3, arg4, arg5) ({ \
-    typeof(arg1) v1_ = (arg1);                                    \
-    typeof(arg2) v2_ = (arg2);                                    \
-    typeof(arg3) v3_ = (arg3);                                    \
-    typeof(arg4) v4_ = (arg4);                                    \
-    typeof(arg5) v5_ = (arg5);                                    \
-    ALT_CALL_ARG(v1_, 1);                                         \
-    ALT_CALL_ARG(v2_, 2);                                         \
-    ALT_CALL_ARG(v3_, 3);                                         \
-    ALT_CALL_ARG(v4_, 4);                                         \
-    ALT_CALL_ARG(v5_, 5);                                         \
-    ALT_CALL_NO_ARG6;                                             \
-    (void)sizeof(func(arg1, arg2, arg3, arg4, arg5));             \
-    (void)alternative_callN(5, int, func);                        \
-})
-
-#define alternative_call5(func, arg1, arg2, arg3, arg4, arg5) ({  \
-    typeof(arg1) v1_ = (arg1);                                    \
-    typeof(arg2) v2_ = (arg2);                                    \
-    typeof(arg3) v3_ = (arg3);                                    \
-    typeof(arg4) v4_ = (arg4);                                    \
-    typeof(arg5) v5_ = (arg5);                                    \
-    ALT_CALL_ARG(v1_, 1);                                         \
-    ALT_CALL_ARG(v2_, 2);                                         \
-    ALT_CALL_ARG(v3_, 3);                                         \
-    ALT_CALL_ARG(v4_, 4);                                         \
-    ALT_CALL_ARG(v5_, 5);                                         \
-    ALT_CALL_NO_ARG6;                                             \
-    alternative_callN(5, typeof(func(arg1, arg2, arg3,            \
-                                     arg4, arg5)),                \
-                      func);                                      \
-})
-
-#define alternative_vcall6(func, arg1, arg2, arg3, arg4, arg5, arg6) ({ \
-    typeof(arg1) v1_ = (arg1);                                          \
-    typeof(arg2) v2_ = (arg2);                                          \
-    typeof(arg3) v3_ = (arg3);                                          \
-    typeof(arg4) v4_ = (arg4);                                          \
-    typeof(arg5) v5_ = (arg5);                                          \
-    typeof(arg6) v6_ = (arg6);                                          \
-    ALT_CALL_ARG(v1_, 1);                                               \
-    ALT_CALL_ARG(v2_, 2);                                               \
-    ALT_CALL_ARG(v3_, 3);                                               \
-    ALT_CALL_ARG(v4_, 4);                                               \
-    ALT_CALL_ARG(v5_, 5);                                               \
-    ALT_CALL_ARG(v6_, 6);                                               \
-    (void)sizeof(func(arg1, arg2, arg3, arg4, arg5, arg6));             \
-    (void)alternative_callN(6, int, func);                              \
-})
-
-#define alternative_call6(func, arg1, arg2, arg3, arg4, arg5, arg6) ({  \
-    typeof(arg1) v1_ = (arg1);                                          \
-    typeof(arg2) v2_ = (arg2);                                          \
-    typeof(arg3) v3_ = (arg3);                                          \
-    typeof(arg4) v4_ = (arg4);                                          \
-    typeof(arg5) v5_ = (arg5);                                          \
-    typeof(arg6) v6_ = (arg6);                                          \
-    ALT_CALL_ARG(v1_, 1);                                               \
-    ALT_CALL_ARG(v2_, 2);                                               \
-    ALT_CALL_ARG(v3_, 3);                                               \
-    ALT_CALL_ARG(v4_, 4);                                               \
-    ALT_CALL_ARG(v5_, 5);                                               \
-    ALT_CALL_ARG(v6_, 6);                                               \
-    alternative_callN(6, typeof(func(arg1, arg2, arg3,                  \
-                                     arg4, arg5, arg6)),                \
-                      func);                                            \
-})
-
-#define alternative_vcall__(nr) alternative_vcall ## nr
-#define alternative_call__(nr)  alternative_call ## nr
-
-#define alternative_vcall_(nr) alternative_vcall__(nr)
-#define alternative_call_(nr)  alternative_call__(nr)
-
-#define alternative_vcall(func, args...) \
-    alternative_vcall_(count_args(args))(func, ## args)
-
-#define alternative_call(func, args...) \
-    alternative_call_(count_args(args))(func, ## args)
-
 #endif /*  !__ASSEMBLY__  */
 
 #endif /* __X86_ALTERNATIVE_H__ */
diff --git a/xen/arch/x86/include/asm/hvm/hvm.h b/xen/arch/x86/include/asm/hvm/hvm.h
index 963e8201130a..bf8bc2e100bd 100644
--- a/xen/arch/x86/include/asm/hvm/hvm.h
+++ b/xen/arch/x86/include/asm/hvm/hvm.h
@@ -9,9 +9,9 @@
 #ifndef __ASM_X86_HVM_HVM_H__
 #define __ASM_X86_HVM_HVM_H__
 
+#include <xen/alternative-call.h>
 #include <xen/mm.h>
 
-#include <asm/alternative.h>
 #include <asm/asm_defns.h>
 #include <asm/current.h>
 #include <asm/x86_emulate.h>
diff --git a/xen/common/core_parking.c b/xen/common/core_parking.c
index a970ffeab8c3..7d6a18cdcf4c 100644
--- a/xen/common/core_parking.c
+++ b/xen/common/core_parking.c
@@ -15,10 +15,10 @@
  *  General Public License for more details.
  */
 
-#include <xen/types.h>
+#include <xen/alternative-call.h>
 #include <xen/cpu.h>
-#include <xen/init.h>
 #include <xen/cpumask.h>
+#include <xen/init.h>
 #include <xen/param.h>
 
 #include <asm/smp.h>
diff --git a/xen/include/xen/alternative-call.h b/xen/include/xen/alternative-call.h
index 62672b732431..39339c3f0f76 100644
--- a/xen/include/xen/alternative-call.h
+++ b/xen/include/xen/alternative-call.h
@@ -13,10 +13,10 @@
  *
  * For architectures to support:
  *
- * - Implement alternative_{,v}call() in asm/alternative.h.  Code generation
- *   requirements are to emit a function pointer call at build time, and stash
- *   enough metadata to simplify the call at boot once the implementation has
- *   been resolved.
+ * - Implement alternative_{,v}call() in asm/alternative-call.h.  Code
+ *   generation requirements are to emit a function pointer call at build
+ *   time, and stash enough metadata to simplify the call at boot once the
+ *   implementation has been resolved.
  * - Select ALTERNATIVE_CALL in Kconfig.
  *
  * To use:
@@ -48,7 +48,7 @@
 
 #ifdef CONFIG_ALTERNATIVE_CALL
 
-#include <asm/alternative.h>
+#include <asm/alternative-call.h>
 
 #ifdef CONFIG_LIVEPATCH
 /* Must keep for livepatches to resolve alternative calls. */
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Wed Apr 23 01:02:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 01:02:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.963779.1354733 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7OVn-0001U7-RL; Wed, 23 Apr 2025 01:02:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 963779.1354733; Wed, 23 Apr 2025 01: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 1u7OVn-0001U0-OG; Wed, 23 Apr 2025 01:02:51 +0000
Received: by outflank-mailman (input) for mailman id 963779;
 Wed, 23 Apr 2025 01:02: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=dLR5=XJ=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u7OVm-0000oH-K2
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 01:02:50 +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 ad6af910-1fde-11f0-9eb0-5ba50f476ded;
 Wed, 23 Apr 2025 03:02:50 +0200 (CEST)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-43edecbfb94so60202035e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 18:02:50 -0700 (PDT)
Received: from localhost.localdomain ([83.104.178.215])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-44092d2326dsm6707635e9.15.2025.04.22.18.02.48
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 22 Apr 2025 18:02: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: ad6af910-1fde-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745370169; x=1745974969; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=exMk98fnpxUzFTmE09OArkpIowUpunQwoLTBGbFt2Tg=;
        b=ceyCFnjKtT1PhgwhpZj6iqeRYcOdoBqgcbd7EpAA0KGdKmR4K4nXtXzeiCM6Ia8Hfk
         BfPKljDpKq3BdShTU97s+b+cOU3YIYf3IhPiW+hVj+4Mw9TT+yvvlsoqKrCClLsZFVM5
         sY8otVNTKOk0Oaei7ie1GAj7MYTKpURPQPF3c=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745370169; x=1745974969;
        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=exMk98fnpxUzFTmE09OArkpIowUpunQwoLTBGbFt2Tg=;
        b=m33eOJmY8SNV6GBskPgY6YRRf9Z1HMu+jsaSbsyrYirUkSuJx8YPdZDOiODDa/glsJ
         2WjyAwpdlFnzQHqLq96u7JCYy0LgAmPUtCi/xKGAHey0GYZpkk7QL4+D1t9Zzk53vRHe
         4PsNUL1yh7C/4vLOXfvZp7KXRM+56kzsklBDOSAJxH1sck5HkR7nMkqBbsQ3uKJWYag+
         KWT6X/EliVbGI4Xu1OhwJQOJ+bj3FDwDmfsz09ouzVTqhfY+ZiATPZCfOL2oD0iy7MyJ
         /r0z5qSoxsqmZDAsp8DB5sBtGwre1DVRMW5T1E9p8uPFgS6hidNOzadA6ZurZVkfOW8h
         j6Yw==
X-Gm-Message-State: AOJu0YzI9JTUhrPPJPBRRiyPF7Kn7gd9AojghenHAN7bWMhPQ+AB0PHz
	Xz5ENCJeXK/Z5KdkLszEW0CWRpfSjJkTik/CrxZU8hmKkfqLtWjMxWFEVb7scFmXwfiNo3DeuQN
	7
X-Gm-Gg: ASbGncsn9X40Vle4chA6B2czeLdV4Wcs1FM8bebTVpcGFrSvFFp1I42BvcReo3adckc
	eP7Y8XNxoC3e9v1t5W4w3yaTqRW2qJc8CcLRJVRVd4krievCNmqcpPYOgefy6L/1OWhs0jdLd6G
	ekeTq6mTVZmNc6ZxyHqKAN7Vh/SvTMZlzQt9GSuKmKIipzwBlWWgOp78df9/ghRaj/9lK9LqqZV
	TsTyiNgibDxNK3o6PMWZyjee1HEi5aJK+sKUVyKV5QDd0PTk6K1E/tsypZb10uFkxeh6iRpO99b
	0sILBPP0rcF08zZb3CQbqzGPlUSPzbxuqSDevTsIRAdWaI0kKcpqWG6eej8law==
X-Google-Smtp-Source: AGHT+IH4X0icwZPWLJVXoteY83CJDqNeTRyDblvh+veuV/K4x3dPMcKehsphiBwyufugxNA23Nt/ig==
X-Received: by 2002:a05:600c:3d09:b0:43d:47b7:b32d with SMTP id 5b1f17b1804b1-4406abfad84mr136167215e9.25.1745370169420;
        Tue, 22 Apr 2025 18:02:49 -0700 (PDT)
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/8] x86/alternatives: Factor seal_endbr64() out of _apply_alternatives()
Date: Wed, 23 Apr 2025 02:02:33 +0100
Message-Id: <20250423010237.1528582-5-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250423010237.1528582-1-andrew.cooper3@citrix.com>
References: <20250423010237.1528582-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

We are going to need to reposition the call in a change with several moving
parts.

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/alternative.c | 70 ++++++++++++++++++++++----------------
 1 file changed, 40 insertions(+), 30 deletions(-)

diff --git a/xen/arch/x86/alternative.c b/xen/arch/x86/alternative.c
index 9aa591b364a4..4b9f8d860153 100644
--- a/xen/arch/x86/alternative.c
+++ b/xen/arch/x86/alternative.c
@@ -162,6 +162,44 @@ text_poke(void *addr, const void *opcode, size_t len)
 extern void *const __initdata_cf_clobber_start[];
 extern void *const __initdata_cf_clobber_end[];
 
+/*
+ * In CET-IBT enabled builds, clobber endbr64 instructions after altcall has
+ * finished optimising all indirect branches to direct ones.
+ */
+static void __init seal_endbr64(void)
+{
+    void *const *val;
+    unsigned int clobbered = 0;
+
+    if ( !cpu_has_xen_ibt )
+        return;
+
+    /*
+     * This is some minor structure (ab)use.  We walk the entire contents
+     * of .init.{ro,}data.cf_clobber as if it were an array of pointers.
+     *
+     * If the pointer points into .text, and at an endbr64 instruction,
+     * nop out the endbr64.  This causes the pointer to no longer be a
+     * legal indirect branch target under CET-IBT.  This is a
+     * defence-in-depth measure, to reduce the options available to an
+     * adversary who has managed to hijack a function pointer.
+     */
+    for ( val = __initdata_cf_clobber_start;
+          val < __initdata_cf_clobber_end;
+          val++ )
+    {
+        void *ptr = *val;
+
+        if ( !is_kernel_text(ptr) || !is_endbr64(ptr) )
+            continue;
+
+        place_endbr64_poison(ptr);
+        clobbered++;
+    }
+
+    printk("altcall: Optimised away %u endbr64 instructions\n", clobbered);
+}
+
 /*
  * Replace instructions with better alternatives for this CPU type.
  * This runs before SMP is initialized to avoid SMP problems with
@@ -344,36 +382,8 @@ static int init_or_livepatch _apply_alternatives(struct alt_instr *start,
      * Clobber endbr64 instructions now that altcall has finished optimising
      * all indirect branches to direct ones.
      */
-    if ( force && cpu_has_xen_ibt && system_state < SYS_STATE_active )
-    {
-        void *const *val;
-        unsigned int clobbered = 0;
-
-        /*
-         * This is some minor structure (ab)use.  We walk the entire contents
-         * of .init.{ro,}data.cf_clobber as if it were an array of pointers.
-         *
-         * If the pointer points into .text, and at an endbr64 instruction,
-         * nop out the endbr64.  This causes the pointer to no longer be a
-         * legal indirect branch target under CET-IBT.  This is a
-         * defence-in-depth measure, to reduce the options available to an
-         * adversary who has managed to hijack a function pointer.
-         */
-        for ( val = __initdata_cf_clobber_start;
-              val < __initdata_cf_clobber_end;
-              val++ )
-        {
-            void *ptr = *val;
-
-            if ( !is_kernel_text(ptr) || !is_endbr64(ptr) )
-                continue;
-
-            place_endbr64_poison(ptr);
-            clobbered++;
-        }
-
-        printk("altcall: Optimised away %u endbr64 instructions\n", clobbered);
-    }
+    if ( force && system_state < SYS_STATE_active )
+        seal_endbr64();
 
     return 0;
 }
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Wed Apr 23 01:02:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 01:02:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.963778.1354722 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7OVm-0001Fr-IX; Wed, 23 Apr 2025 01:02:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 963778.1354722; Wed, 23 Apr 2025 01:02: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 1u7OVm-0001Fk-Fo; Wed, 23 Apr 2025 01:02:50 +0000
Received: by outflank-mailman (input) for mailman id 963778;
 Wed, 23 Apr 2025 01: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=dLR5=XJ=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u7OVl-0000oH-2l
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 01:02: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 ac78f74a-1fde-11f0-9eb0-5ba50f476ded;
 Wed, 23 Apr 2025 03:02:48 +0200 (CEST)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-43cf0d787eeso67688295e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 18:02:48 -0700 (PDT)
Received: from localhost.localdomain ([83.104.178.215])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-44092d2326dsm6707635e9.15.2025.04.22.18.02.46
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 22 Apr 2025 18:02: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: ac78f74a-1fde-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745370168; x=1745974968; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Hixb/ZwuxNqQ0rmjpvM4G3/QpMDCCkyGKcIaO2DF2yg=;
        b=RjlGaz3BAFrynbTC29EjpQtESSz2LoFW7nPfAzd5GddUurdmcIekNRaFH21URheUqh
         9cMYY2b8R9EJLUOqqd7egQn9Pwond3y6PMmIqX6tenjniIO9mwrkXUHCleEXZ0FInckg
         nU7DnJ9TVLbmBAVLyNJd3YspSgs1E7lgkO328=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745370168; x=1745974968;
        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=Hixb/ZwuxNqQ0rmjpvM4G3/QpMDCCkyGKcIaO2DF2yg=;
        b=t4J3nQt5YzXekkLwjvrlNz8GKOVywz8C8hKK29lQZPzXHMC1ezc7n8VJ/V2z2TcaOK
         9ICeE0KusW3QoWv+cxLDCSc3lxwN08gGfy282KqB1O8yVBIlS3XiKliQWJInr5mBRqSB
         kMUzVbhkGBxD9H9sjqOz25VSLK8TWSOcX9Gd1VH9YPDuhg4cC78d5csC8s/RokAd2wLp
         2lGlgU/7dvxzONALTZ3M4ANRRqqoFDgvw+ShoLIn6VoUpYjbraR+FHI9Q8ZhQrvGOaPF
         EUHqKSN11/Q5HHSAi7ODJ7p6icq/uJzak2oJf5LsqWSNgStPJsE59bE4Ix2ejznBjNSv
         gEtg==
X-Gm-Message-State: AOJu0YwfnPxIfY0Qv4FLYGUxHqCrO5c3+eIbARphyCtMUG6/8x8wxJnp
	BT0tIHxknSMlqFhzssKx0AeHSuku4nRg0KqjKPFnrvsX9gjOHtNYUHW1IdFuGWLAzH0LPY6ArLx
	s
X-Gm-Gg: ASbGnctZixydjEScJokOXtL3SGS1Tjg/eZBDO+m1Y+ChyQn+ijbtG9dqtPkzXov3peE
	CcFR0Ii1w/aJJXEXBQzSnpVq/hXNJhat89Ftu5iu4lb5yQgnHkgm8NnmjxybncVLBRwsSe8JcBB
	kgVqPxif1weX2GvvigpRz4+EYhgM4+089vDwg7JrbTUNHQBS5TlXaEdKtVPJINzhzNIK/cHOabN
	NJls92OibasyzfM7LDSUiJxh8uXvCkHHCF+fSvwfPP/GQKeTiqGSrt6COy2rUsdm0m2qHG/oxGx
	n42QrkcZaKdDXuYbcedYs7ifZG7BJrNv9pXJ/J0MLWBgoRSvQY8XYhna40HmGg==
X-Google-Smtp-Source: AGHT+IGG65bPPpjp6zyCd08HRoORDUf6/LHaa7fgyod4T8zNUbNxIP+hfw/DjUz88TWXAFtevruM/w==
X-Received: by 2002:a05:600c:3d96:b0:43c:f895:cb4e with SMTP id 5b1f17b1804b1-4406aba6809mr162887685e9.17.1745370167910;
        Tue, 22 Apr 2025 18:02:47 -0700 (PDT)
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/8] x86/alternatives: Rework information passing into nmi_apply_alternatives()
Date: Wed, 23 Apr 2025 02:02:32 +0100
Message-Id: <20250423010237.1528582-4-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250423010237.1528582-1-andrew.cooper3@citrix.com>
References: <20250423010237.1528582-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

nmi_apply_alternatives() is soon going to need to dispatch to multiple
functions, and a force parameter is not a good way of passing information.

Introduce ALT_INSNS and ALT_CALLS to pass in at the top level to select the
operation(s) desired.  They represent what will happen when we've separated
the altcalls out of the general alternative instructions infrastructure,
although in the short term we still need to synthesise the force parameter for
_apply_alternatives().

Move two externs to reduce their scope a little.

No functional change.

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

diff --git a/xen/arch/x86/alternative.c b/xen/arch/x86/alternative.c
index d1a3b7ea7ca6..9aa591b364a4 100644
--- a/xen/arch/x86/alternative.c
+++ b/xen/arch/x86/alternative.c
@@ -19,8 +19,6 @@
 
 #define MAX_PATCH_LEN (255-1)
 
-extern struct alt_instr __alt_instructions[], __alt_instructions_end[];
-
 #ifdef K8_NOP1
 static const unsigned char k8nops[] init_or_livepatch_const = {
     K8_NOP1,
@@ -387,9 +385,13 @@ int apply_alternatives(struct alt_instr *start, struct alt_instr *end)
 }
 #endif
 
+#define ALT_INSNS (1U << 0)
+#define ALT_CALLS (1U << 1)
 static unsigned int __initdata alt_todo;
 static unsigned int __initdata alt_done;
 
+extern struct alt_instr __alt_instructions[], __alt_instructions_end[];
+
 /*
  * At boot time, we patch alternatives in NMI context.  This means that the
  * active NMI-shadow will defer any further NMIs, removing the slim race
@@ -419,7 +421,7 @@ static int __init cf_check nmi_apply_alternatives(
         flush_local(FLUSH_TLB_GLOBAL);
 
         rc = _apply_alternatives(__alt_instructions, __alt_instructions_end,
-                                 alt_done);
+                                 alt_todo == ALT_CALLS);
         if ( rc )
             panic("Unable to apply alternatives: %d\n", rc);
 
@@ -442,7 +444,7 @@ static int __init cf_check nmi_apply_alternatives(
  * This routine is called with local interrupt disabled and used during
  * bootup.
  */
-static void __init _alternative_instructions(bool force)
+static void __init _alternative_instructions(unsigned int what)
 {
     unsigned int i;
     nmi_callback_t *saved_nmi_callback;
@@ -460,7 +462,7 @@ static void __init _alternative_instructions(bool force)
     ASSERT(!local_irq_is_enabled());
 
     /* Set what operation to perform /before/ setting the callback. */
-    alt_todo = 1u << force;
+    alt_todo = what;
     barrier();
 
     /*
@@ -490,12 +492,12 @@ static void __init _alternative_instructions(bool force)
 void __init alternative_instructions(void)
 {
     arch_init_ideal_nops();
-    _alternative_instructions(false);
+    _alternative_instructions(ALT_INSNS);
 }
 
 void __init boot_apply_alt_calls(void)
 {
     local_irq_disable();
-    _alternative_instructions(true);
+    _alternative_instructions(ALT_CALLS);
     local_irq_enable();
 }
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Wed Apr 23 01:02:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 01:02:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.963776.1354703 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7OVk-0000oP-6w; Wed, 23 Apr 2025 01:02:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 963776.1354703; Wed, 23 Apr 2025 01:02:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7OVk-0000oI-3C; Wed, 23 Apr 2025 01:02:48 +0000
Received: by outflank-mailman (input) for mailman id 963776;
 Wed, 23 Apr 2025 01:02: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=dLR5=XJ=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u7OVi-0000o7-Jl
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 01:02:46 +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 a8d0814a-1fde-11f0-9ffb-bf95429c2676;
 Wed, 23 Apr 2025 03:02:42 +0200 (CEST)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-43d2d952eb1so42695445e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 18:02:43 -0700 (PDT)
Received: from localhost.localdomain ([83.104.178.215])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-44092d2326dsm6707635e9.15.2025.04.22.18.02.41
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 22 Apr 2025 18:02: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: a8d0814a-1fde-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745370162; x=1745974962; 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=tdHdelCaXxtoqb9ewIU/MGzLV6t4uBfGR2RMb0/HxVk=;
        b=LbzBUUsmkpq0ePvjjEYZARqapNT+MI1uqgBf9iX++9IVf/l6O08qMzptkPSQczrcej
         yIaTZ06bG+JYnXfRpJ99ZPEl73EU8xT6QndPUDtiByvvjq14Ie2cHmMNDN7VvRU74D6o
         peXV5EfYuo7VhOjJhx9nRwG2sXJJ6kcAHeU9I=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745370162; x=1745974962;
        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=tdHdelCaXxtoqb9ewIU/MGzLV6t4uBfGR2RMb0/HxVk=;
        b=GTjbFYYpoutIDTcbXIEF9ixryVWBqIPMORSMdcm+8sU0ZwaF6YOqlZ31n6aeWpDvxb
         ktFJWmbO0jA/Mcl9Ul2BzLEu+l8CIebfu5jZX6FMp9MoLM0Aux1kqmh2XVMU6/qWN4vj
         xiMGIn/ReQnjtLmqCcrxSoWgQbmqcqo/4GT4pQH1YcHWQB5cz5jeVSd2QVGSUQt9SbDS
         l9YI61+rMptCjlYuAbV5jxFJKO+n0PN8C5mDmV5bUIOTfVpf+ro3qQs0OcIKM3mA0kxh
         W5ZPDvlED7KN9E3Cm625CL+azCzS3t4cs042dMHpt4hYFf/WGWs1zB8EJZI9LDF7Cx0t
         fLqA==
X-Gm-Message-State: AOJu0YzUcDphvMXalngh+fupuMk5lmmdZIgDoLiBwhGRxJQShQqvZrn2
	bPo12lkLByPoGClI9++U094TfpK61dDiIEZh2sLUEFJnZaqqlzlyiSq+4mjxEbJkebn62z2O41O
	W
X-Gm-Gg: ASbGncvtxtdEGCzr32gfkf/+a6LeJiAlT6a1IamFDDZde295YuVmkdHRbJrHCxbqVuR
	qJkwmoTv6MZTbUNTYAvLaIcNEZPxgPnWu3B/7jYRPHwWMd90r2a1ka1QkUCIiCx8B/KU4x3BPM0
	AVr4t8JLoB5uJ1yobNMNhtZnz+jLFUJOuIGL03kTtamAR1nAV00Uce4XQbRwfcbTAs/gtGb+V+p
	83Bqg7gS7F+RtOC0fXRMf3DgusLFnQQfLD06qreShM+o7yUxYwmqEd19A8KjSz+2B69q777cyWW
	5IXbdIJabl/5scN0phxP5i4gWDkZCOpTSAnj32ShykNlrKssqAwmeystQFAJ6A==
X-Google-Smtp-Source: AGHT+IHsiRl1hnAhNz5ox8fxGn3OJdYF2FVlhK35s5eCwVqqH9pNHXSPP7ZsWiGfzvmZv9CLGS7qDw==
X-Received: by 2002:a05:600c:1383:b0:43c:f16a:641e with SMTP id 5b1f17b1804b1-4406ab6c6e8mr139009435e9.6.1745370162336;
        Tue, 22 Apr 2025 18:02:42 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"consulting @ bugseng . com" <consulting@bugseng.com>,
	Nicola Vetrini <nicola.vetrini@bugseng.com>,
	Ross Lagerwall <ross.lagerwall@citrix.com>
Subject: [PATCH 0/8] x86/altcall: Switch to a simpler scheme
Date: Wed, 23 Apr 2025 02:02:29 +0100
Message-Id: <20250423010237.1528582-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

See patch 7 for details.  This simplifies _apply_alternatives() specifically
by removing a special and quite complicated case, and encodes the metadata
about altcalls differently and more efficiently.

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

Andrew Cooper (8):
  x86/altcall: Split alternative-call.h out of alternative.h
  x86/altcall: Rename alternative_branches() to boot_apply_alt_calls()
  x86/alternatives: Rework information passing into
    nmi_apply_alternatives()
  x86/alternatives: Factor seal_endbr64() out of _apply_alternatives()
  x86/altcall: Introduce new simpler scheme
  xen/livepatch: Support new altcall scheme
  x86/altcall: Switch to simpler scheme
  x86/alternatives: Simplify _apply_alternatives() now altcall is
    separate

 .../eclair_analysis/ECLAIR/deviations.ecl     |   4 +-
 xen/arch/x86/alternative.c                    | 267 ++++++++++--------
 .../asm/{alternative.h => alternative-call.h} | 179 +-----------
 xen/arch/x86/include/asm/alternative.h        | 263 -----------------
 xen/arch/x86/include/asm/hvm/hvm.h            |   2 +-
 xen/arch/x86/setup.c                          |   3 +-
 xen/arch/x86/xen.lds.S                        |   4 +
 xen/common/core_parking.c                     |   4 +-
 xen/common/livepatch.c                        |  58 ++++
 xen/include/xen/alternative-call.h            |  24 +-
 10 files changed, 252 insertions(+), 556 deletions(-)
 copy xen/arch/x86/include/asm/{alternative.h => alternative-call.h} (63%)

-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Wed Apr 23 01:02:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 01:02:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.963782.1354763 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7OVr-0002GJ-Td; Wed, 23 Apr 2025 01:02:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 963782.1354763; Wed, 23 Apr 2025 01:02: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 1u7OVr-0002FT-Pd; Wed, 23 Apr 2025 01:02:55 +0000
Received: by outflank-mailman (input) for mailman id 963782;
 Wed, 23 Apr 2025 01:02: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=dLR5=XJ=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u7OVq-0000o7-Nd
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 01:02:54 +0000
Received: from mail-wm1-x335.google.com (mail-wm1-x335.google.com
 [2a00:1450:4864:20::335])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id aeb9fdbb-1fde-11f0-9ffb-bf95429c2676;
 Wed, 23 Apr 2025 03:02:52 +0200 (CEST)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-43edecbfb94so60202285e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 18:02:53 -0700 (PDT)
Received: from localhost.localdomain ([83.104.178.215])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-44092d2326dsm6707635e9.15.2025.04.22.18.02.51
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 22 Apr 2025 18:02: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: aeb9fdbb-1fde-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745370172; x=1745974972; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Car784Mg7m/YLG0YJpvUcaWm7zKGiPIHLzmw/ReGrpU=;
        b=CchcjBVMooWXmEQy5dnwCxDF+wmyKeycAw1nqkWwRgBpHFIrilg2DV26YWhiaUcz9x
         RyiT6wFA1ia9K8n3nRqHSw5ab0CjApJUCJ6UOPFLGzm07aUcwNi7a4MYltR2AYIYT4Te
         zlYE0qk3ubAx6lA6GvC+nv6nShUj1dU8un2n4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745370172; x=1745974972;
        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=Car784Mg7m/YLG0YJpvUcaWm7zKGiPIHLzmw/ReGrpU=;
        b=IWlIsdV2ZA9vC54S7wKFpnh0EOg9ige8JoWE/4zrLXBBunyLOWxZxJFXLHuBx7U09F
         N7+KwQk4JjKR3XTSiK493yz5kl+8yfMq/wL+Ac5eohmwBelJeHGXLh0lNn6aRm9lUy3g
         6nCuwQomD6KpLcmRGzyOrevVRJj8qzbDW5KwGPXNDrkP4bQOtI3W25fO0Cf+9rx3pwVA
         tbUPczEpjqbPWzgRW1V148suNctEi6o3fboWQnQ4GOckV4SoNxHpy28E0wCqvTJw2Ya0
         HMJIelRMcV0ONuNSXypacuj2p4DJJriMJ67IKAPidrKtZpywSsYj6bnVDF7Y14X9rsAA
         sBrA==
X-Gm-Message-State: AOJu0YzHtA6qcuZWK/GoASWXZ94QpUysqzqUAEeW7wVG8xKO+xYl6g8u
	N9QXevOOjc0y2/WtQP5Q7V7udc4Sqvyo+Kh0OBjQCY1ATZucqNox8Y06DRV8msGcKhACBKHZ28M
	E
X-Gm-Gg: ASbGncuLUJS7CDpOfRIHujcEBHt1QivF46JqZdWqGtFtTAV/o47/3lvFg8BC30sXQBM
	B+cgXKK0f/9F9kjqhgUgKxhN2Ce7bStqNEXpnqJyWbT4h2i+wdGvr8RWG3E6qE4eDfE2PkZrb1v
	VaQ5tWNSI4pAH4vF33YG7cC8pH0SdaBALxEPxgh7dh/z+RmLrtjLC2vGqE0gcP9dBKM86sLJvJs
	tfcTklBzb6NOM485X1WB3MM5LvCW5bJy+MgFJqdfIFN047GVuboLBzNgwShgXGmh+aEhWhi20vI
	RH1Y24GJ/Uiny86SgfcGUzM5ewmWbbBpMnOqcmXClnmaTkRKXkhAJ+8y7HjuzA==
X-Google-Smtp-Source: AGHT+IHCwz6HUV+NnETadrfzXBEL0LGCaI1Bo4OwY8mvAP0xChdNkPdYskXTtgnH8JOWTKFH6CTRLw==
X-Received: by 2002:a05:600c:1c28:b0:440:6a37:be30 with SMTP id 5b1f17b1804b1-4406aba5c25mr143876665e9.16.1745370172253;
        Tue, 22 Apr 2025 18:02:52 -0700 (PDT)
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>,
	Ross Lagerwall <ross.lagerwall@citrix.com>
Subject: [PATCH 6/8] xen/livepatch: Support new altcall scheme
Date: Wed, 23 Apr 2025 02:02:35 +0100
Message-Id: <20250423010237.1528582-7-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250423010237.1528582-1-andrew.cooper3@citrix.com>
References: <20250423010237.1528582-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The new altcall scheme uses an .alt_call_sites section.  Wire this up in very
much the same way as the .altinstructions section, although there is less
sanity checking necessary.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Ross Lagerwall <ross.lagerwall@citrix.com>
---
 xen/arch/x86/alternative.c         |  6 ++++
 xen/common/livepatch.c             | 58 ++++++++++++++++++++++++++++++
 xen/include/xen/alternative-call.h |  8 +++--
 3 files changed, 70 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/alternative.c b/xen/arch/x86/alternative.c
index f6594e21a14c..22af224f08f7 100644
--- a/xen/arch/x86/alternative.c
+++ b/xen/arch/x86/alternative.c
@@ -479,6 +479,12 @@ int apply_alternatives(struct alt_instr *start, struct alt_instr *end)
 {
     return _apply_alternatives(start, end, true);
 }
+
+int livepatch_apply_alt_calls(const struct alt_call *start,
+                              const struct alt_call *end)
+{
+    return apply_alt_calls(start, end);
+}
 #endif
 
 #define ALT_INSNS (1U << 0)
diff --git a/xen/common/livepatch.c b/xen/common/livepatch.c
index 6ce77bf021b7..be9b7e367553 100644
--- a/xen/common/livepatch.c
+++ b/xen/common/livepatch.c
@@ -905,6 +905,64 @@ static int prepare_payload(struct payload *payload,
 #endif
     }
 
+    sec = livepatch_elf_sec_by_name(elf, ".alt_call_sites");
+    if ( sec )
+    {
+#ifdef CONFIG_ALTERNATIVE_CALL
+        const struct alt_call *a, *start, *end;
+
+        if ( !section_ok(elf, sec, sizeof(*a)) )
+            return -EINVAL;
+
+        /* Tolerate an empty .alt_call_sites section... */
+        if ( sec->sec->sh_size == 0 )
+            goto alt_call_done;
+
+        /* ... but otherwise, there needs to be something to alter... */
+        if ( payload->text_size == 0 )
+        {
+            printk(XENLOG_ERR LIVEPATCH "%s Alternative calls provided, but no .text\n",
+                   elf->name);
+            return -EINVAL;
+        }
+
+        start = sec->addr;
+        end = sec->addr + sec->sec->sh_size;
+
+        for ( a = start; a < end; a++ )
+        {
+            const void *orig = ALT_CALL_PTR(a);
+            size_t len = ALT_CALL_LEN(a);
+
+            /* orig must be fully within .text. */
+            if ( orig       < payload->text_addr ||
+                 len        > payload->text_size ||
+                 orig + len > payload->text_addr + payload->text_size )
+            {
+                printk(XENLOG_ERR LIVEPATCH
+                       "%s: Alternative call %p+%#zx outside payload text %p+%#zx\n",
+                       elf->name, orig, len,
+                       payload->text_addr, payload->text_size);
+                return -EINVAL;
+            }
+        }
+
+        rc = livepatch_apply_alt_calls(start, end);
+        if ( rc )
+        {
+            printk(XENLOG_ERR LIVEPATCH "%s: Applying alternative calls failed: %d\n",
+                   elf->name, rc);
+            return rc;
+        }
+
+    alt_call_done:;
+#else /* CONFIG_ALTERNATIVE_CALL */
+        printk(XENLOG_ERR LIVEPATCH "%s: Alternative calls not supported\n",
+               elf->name);
+        return -EOPNOTSUPP;
+#endif /* !CONFIG_ALTERNATIVE_CALL */
+    }
+
     sec = livepatch_elf_sec_by_name(elf, ".ex_table");
     if ( sec )
     {
diff --git a/xen/include/xen/alternative-call.h b/xen/include/xen/alternative-call.h
index 3c855bfa44f5..767c2149bce7 100644
--- a/xen/include/xen/alternative-call.h
+++ b/xen/include/xen/alternative-call.h
@@ -17,8 +17,8 @@
  *   generation requirements are to emit a function pointer call at build
  *   time, and stash enough metadata to simplify the call at boot once the
  *   implementation has been resolved.
- * - Implement boot_apply_alt_calls() to convert the function pointer calls
- *   into direct calls on boot.
+ * - Implement {boot,livepatch}_apply_alt_calls() to convert the function
+ *   pointer calls into direct calls on boot/livepatch.
  * - Select ALTERNATIVE_CALL in Kconfig.
  *
  * To use:
@@ -65,6 +65,10 @@
  */
 void boot_apply_alt_calls(void);
 
+/* As per boot_apply_alt_calls() but for a livepatch. */
+int livepatch_apply_alt_calls(const struct alt_call *start,
+                              const struct alt_call *end);
+
 #else /* CONFIG_ALTERNATIVE_CALL */
 
 #define alternative_call(func, args...)  (func)(args)
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Wed Apr 23 01:02:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 01:02:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.963783.1354773 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7OVt-0002XL-8z; Wed, 23 Apr 2025 01:02:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 963783.1354773; Wed, 23 Apr 2025 01:02: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 1u7OVt-0002WI-3z; Wed, 23 Apr 2025 01:02:57 +0000
Received: by outflank-mailman (input) for mailman id 963783;
 Wed, 23 Apr 2025 01: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=dLR5=XJ=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u7OVr-0000o7-QY
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 01:02:55 +0000
Received: from mail-wm1-x334.google.com (mail-wm1-x334.google.com
 [2a00:1450:4864:20::334])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id af6e1111-1fde-11f0-9ffb-bf95429c2676;
 Wed, 23 Apr 2025 03:02:53 +0200 (CEST)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-43d04dc73b7so53142435e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 18:02:54 -0700 (PDT)
Received: from localhost.localdomain ([83.104.178.215])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-44092d2326dsm6707635e9.15.2025.04.22.18.02.52
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 22 Apr 2025 18:02:52 -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: af6e1111-1fde-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745370173; x=1745974973; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=LoWKMqHtqBPDLmEPFfxaswFqTNu87oQfZQ9HmGyS6OI=;
        b=mOg5wIgTIonFrTfHloaskb6MhkA1TkBb4XO66TKPJI/wApelk4ONDdGXVWpCMvreDL
         +XL3BvtdEwfrwjc7iqjwfrbe+6zdIZ6cXTGJT9KZkqUNhN1iDn2BfEGL5E2sYOapIu1B
         cuwEDGwvyOmXEDZDB8p/NzfEQvYCFSEIUg+T0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745370173; x=1745974973;
        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=LoWKMqHtqBPDLmEPFfxaswFqTNu87oQfZQ9HmGyS6OI=;
        b=rWGTj8d5MmMtMmIb8yDLy36lQ2xtAFwAC2lOY/PyVTvSyr+xoKGD47bFeD4Zk49+lP
         +M5jKLvKM3JxaWXwrIBOzQvj3E/xRAVrlXE1+AvH/eUC5aw75DpjUxiVZARU7Sfe8ynX
         AoLDSLauxWktIKBIOcB/xRdg2guGs+Mh6GrD1i/AhD4zOEdxMQCTsKfERbSG1ORCpREB
         ps5lowLu/cN7NnQfYeu7/m4c/89vgodtrLH36v3/pQ5claB7Nn5dydAwPSEWYbRmC7vv
         zYxqlAci1frDHpbhPQ38x4BS+Mw7Ryamq0AulMrocjQCTZqamDCLzTHozu+StwTKOvb8
         0yRw==
X-Gm-Message-State: AOJu0Yxc4xK0/imT1ECML5QNZ6ZnWWIL2mCB3OWv4pn35vzGtSBQiv5I
	CAWi+Y3wYxNkWKiWQ9HCJMEtscm+0yYyPf/7+nbUr/4IFdDSS8oBiwMwWbPbrKoEi7dEZiWlOuv
	/
X-Gm-Gg: ASbGncvC/j8oJW6JUn2/IOsbhfzmrCqxpPuo4RGiSo1vGMIL9ad8EX/FyB30NrD4c0V
	e4iMNFso2jnDSvuUwrbyts1Ha9DuC7bqeiPFNazsr2gtQ1zUXJEyTCwYrcEnk1AVKFnKKXja+w1
	e3dHEcU88WNwAw+fj90PwSTSQfDpIqU85xoE6258O6UFonGpIs5aQCa4hdsjgqWvR+aZ8o6W3Lk
	Rszpjc60v2LVAPsHUpIRMKiM2kaUm5qls6NPFPVnbJm5nWat69lilGQfdpKgaDGRLQy4b8WpfCo
	SFnosVIzMk6lF+wBnC+uIKfLpai08Vzp3jXrkTztkZoKu/csqjA0T2g5CnDofA==
X-Google-Smtp-Source: AGHT+IHzp4hNlxBfSm5YRXWG9V+oQpZjMac/1ALmOGUgU+tXdqLeroMdU4JaXHiFRcvBaTqZatJL9A==
X-Received: by 2002:a05:600c:5110:b0:43c:e70d:44f0 with SMTP id 5b1f17b1804b1-4406aba758cmr134644925e9.19.1745370173253;
        Tue, 22 Apr 2025 18:02:53 -0700 (PDT)
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 7/8] x86/altcall: Switch to simpler scheme
Date: Wed, 23 Apr 2025 02:02:36 +0100
Message-Id: <20250423010237.1528582-8-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250423010237.1528582-1-andrew.cooper3@citrix.com>
References: <20250423010237.1528582-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

With all the infrastructure in place, switch from using ALTERNATIVE() to
simply populating .alt_call_sites.

Before, _apply_alternatives() would devirtualise in two passes; the first
being opportunistic, and the second (signified by the force parameter) sealing
any call with a still-NULL function pointer.

Now, all devirtualising is performed together, at the point in time of the
second pass previously.  The call to seal_endbr64() needs delaying until after
apply_alt_calls() is complete, or we have a narrow window with real indirect
branches and no ENDBR64 instructions.

Under the hood, the following changes are happening:

  Section                Old size   New size   Change (%)
  .alt_call_sites               0    0x00730   +0x0730
  .altinstructions        0x1350a    0x11fe0   -0x152a (-7%)
  .altinstr_replacement   0x015f2    0x00e35   -0x07bd (-23%)

The changes aren't quite equal because inlining is affected by the smaller
asm() block.  Nevertheless, the metadata is held in 1/3 of the space, and
there are no CALL instructions held in the replacement section any more.

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/alternative.c                  | 9 ++-------
 xen/arch/x86/include/asm/alternative-call.h | 9 ++++++---
 2 files changed, 8 insertions(+), 10 deletions(-)

diff --git a/xen/arch/x86/alternative.c b/xen/arch/x86/alternative.c
index 22af224f08f7..047bfc6e424b 100644
--- a/xen/arch/x86/alternative.c
+++ b/xen/arch/x86/alternative.c
@@ -378,13 +378,6 @@ static int init_or_livepatch _apply_alternatives(struct alt_instr *start,
         text_poke(orig, buf, total_len);
     }
 
-    /*
-     * Clobber endbr64 instructions now that altcall has finished optimising
-     * all indirect branches to direct ones.
-     */
-    if ( force && system_state < SYS_STATE_active )
-        seal_endbr64();
-
     return 0;
 }
 
@@ -533,6 +526,8 @@ static int __init cf_check nmi_apply_alternatives(
             rc = apply_alt_calls(__alt_call_sites_start, __alt_call_sites_end);
             if ( rc )
                 panic("Unable to apply alternative calls: %d\n", rc);
+
+            seal_endbr64();
         }
 
         /*
diff --git a/xen/arch/x86/include/asm/alternative-call.h b/xen/arch/x86/include/asm/alternative-call.h
index 49a04a7cc45b..bbc49a5274d9 100644
--- a/xen/arch/x86/include/asm/alternative-call.h
+++ b/xen/arch/x86/include/asm/alternative-call.h
@@ -2,7 +2,8 @@
 #ifndef X86_ALTERNATIVE_CALL_H
 #define X86_ALTERNATIVE_CALL_H
 
-#include <asm/alternative.h>
+#include <xen/macros.h>
+#include <xen/stdint.h>
 
 /* Simply the relative position of the source call. */
 struct alt_call {
@@ -86,8 +87,10 @@ struct alt_call {
     rettype ret_;                                                  \
     register unsigned long r10_ asm("r10");                        \
     register unsigned long r11_ asm("r11");                        \
-    asm volatile (ALTERNATIVE("call *%c[addr](%%rip)", "call .",   \
-                              X86_FEATURE_ALWAYS)                  \
+    asm volatile ("1: call *%c[addr](%%rip)\n\t"                   \
+                  ".pushsection .alt_call_sites, \"a\", @progbits\n\t"  \
+                  ".long 1b - .\n\t"                               \
+                  ".popsection"                                    \
                   : ALT_CALL ## n ## _OUT, "=a" (ret_),            \
                     "=r" (r10_), "=r" (r11_) ASM_CALL_CONSTRAINT   \
                   : [addr] "i" (&(func)), "g" (func)               \
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Wed Apr 23 01:02:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 01:02:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.963784.1354783 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7OVu-0002pR-Kp; Wed, 23 Apr 2025 01:02:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 963784.1354783; Wed, 23 Apr 2025 01:02: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 1u7OVu-0002oc-Ef; Wed, 23 Apr 2025 01:02:58 +0000
Received: by outflank-mailman (input) for mailman id 963784;
 Wed, 23 Apr 2025 01:02:56 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=dLR5=XJ=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u7OVs-0000o7-Rt
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 01:02:56 +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 b003983b-1fde-11f0-9ffb-bf95429c2676;
 Wed, 23 Apr 2025 03:02:54 +0200 (CEST)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-43d04ea9d9aso27507465e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 18:02:55 -0700 (PDT)
Received: from localhost.localdomain ([83.104.178.215])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-44092d2326dsm6707635e9.15.2025.04.22.18.02.53
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 22 Apr 2025 18:02:53 -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: b003983b-1fde-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745370174; x=1745974974; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=WM99xQkfEqKEfaoeOHiMOk1AMVGIEVl2DOVVorR/k20=;
        b=VppJHc+7D/gKKgSwwvk+7RDIx46S06vNNcBcAuaTFHFmm0EdFrD8CtqpxHNDWpYD89
         E4AnyiRonMlcp9qGlFOlMlm3GUp4ZLCaLnf4MwYgquYPQeVIgE3wQh/lhSl0NpMrejNi
         TBrgD9HMKSrFgFzNVLFjK0LaKucs4l7ZXKYjg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745370174; x=1745974974;
        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=WM99xQkfEqKEfaoeOHiMOk1AMVGIEVl2DOVVorR/k20=;
        b=aqPB7su9SuuOwIlDu0nNAazsTcrIYQUkqIeittdvrAdXBhsvoc8ScxIA9+v6AIn7Uh
         9cMXnibpFFP4Pzg2PlkIthmhqfPZyPyHwZlyO0TjOyoDnmJL4PTnRz4m0o7cJQP3tpN2
         EnxGaKEjfiNqbfXbRkdtkvpQnCCtkm6JSWOlLXXp+lAdjP7zSzgt/eJkX+qM0iF56Hk4
         hLqypc+2Frsg7p4U1B0Lz1rbnqZL44AQtZ9cxLtVUe9Z5O9i0r5ogn23Wpks6RUmvt1a
         ahyQT0Rx7jf684n94hO4D8D2q8kTj+uUaIiuWEY0vbHLCVd1UUR5jeuNiZHDLBzwhaNP
         5Hug==
X-Gm-Message-State: AOJu0YxqXJOXd2Ey3OCBC/22oqozdpYU/bPEuUbJxD1/BRKUTza5CQdY
	/jZvFFmaBBzlJKCol9bNcNjRBX+ADcPftiohs25RCSq4m1bCJVKdBdHHo/MEXVSnoIINgYb5ssh
	R
X-Gm-Gg: ASbGncufDOUeZgobZ7NfLmyzc77nDjd0WASrtCp3ZoOvwk9ZTz2LywQH53Ny253exVW
	X3dU9TQ7kwRaSmH0Ht2CjNdCKozym9ADqekRmOieJdRmBhjfMAPgGrez1XQsf69pQSwmFjUq77q
	tYlytmNXvPo527snM/QCpdLfF+EqGgX8Pq24LrQAxEN2anXhaWDAvZFuGSE4Qh7ro/OM2MWwSkZ
	6fGjxSpVpkj8Q4gvHVVFRkxK7i9tQ8qPukCgt2MTQc7KBMSzCmGlKMBHPxNuWGi4kJ8PXK5IKv7
	5kOvznwVl5EgsCAlo98XGirT6ygdcHoECAPTRgVeUSAHCU42Y4+1q9DvJHo8oA==
X-Google-Smtp-Source: AGHT+IFn46uQ6sYjyAjEfhBOcPUByRdj/eRnE8QJcm+B9LeRRzCCKUSJ9COZ57h4R/MfMJ4dQ+GmlA==
X-Received: by 2002:a05:600c:a13:b0:43d:46de:b0eb with SMTP id 5b1f17b1804b1-4408ab25c8amr54880075e9.12.1745370174407;
        Tue, 22 Apr 2025 18:02:54 -0700 (PDT)
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 8/8] x86/alternatives: Simplify _apply_alternatives() now altcall is separate
Date: Wed, 23 Apr 2025 02:02:37 +0100
Message-Id: <20250423010237.1528582-9-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250423010237.1528582-1-andrew.cooper3@citrix.com>
References: <20250423010237.1528582-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

With altcall handled separately, the special case in _apply_alternatives() is
unused and can be dropped.  The force parameter (used to signify the seal
pass) can be removed too.

In turn, nmi_apply_alternatives() no longer needs to call
_apply_alternatives() on the second pass.

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/alternative.c | 94 ++++----------------------------------
 1 file changed, 10 insertions(+), 84 deletions(-)

diff --git a/xen/arch/x86/alternative.c b/xen/arch/x86/alternative.c
index 047bfc6e424b..43b009888c02 100644
--- a/xen/arch/x86/alternative.c
+++ b/xen/arch/x86/alternative.c
@@ -206,14 +206,9 @@ static void __init seal_endbr64(void)
  * self modifying code. This implies that asymmetric systems where
  * APs have less capabilities than the boot processor are not handled.
  * Tough. Make sure you disable such features by hand.
- *
- * The caller will set the "force" argument to true for the final
- * invocation, such that no CALLs/JMPs to NULL pointers will be left
- * around. See also the further comment below.
  */
 static int init_or_livepatch _apply_alternatives(struct alt_instr *start,
-                                                 struct alt_instr *end,
-                                                 bool force)
+                                                 struct alt_instr *end)
 {
     struct alt_instr *a, *base;
 
@@ -274,10 +269,7 @@ static int init_or_livepatch _apply_alternatives(struct alt_instr *start,
 
         /* Skip patch sites already handled during the first pass. */
         if ( a->priv )
-        {
-            ASSERT(force);
             continue;
-        }
 
         /* If there is no replacement to make, see about optimising the nops. */
         if ( !boot_cpu_has(a->cpuid) )
@@ -301,76 +293,7 @@ static int init_or_livepatch _apply_alternatives(struct alt_instr *start,
 
         /* 0xe8/0xe9 are relative branches; fix the offset. */
         if ( a->repl_len >= 5 && (*buf & 0xfe) == 0xe8 )
-        {
-            /*
-             * Detect the special case of indirect-to-direct branch patching:
-             * - replacement is a direct CALL/JMP (opcodes 0xE8/0xE9; already
-             *   checked above),
-             * - replacement's displacement is -5 (pointing back at the very
-             *   insn, which makes no sense in a real replacement insn),
-             * - original is an indirect CALL/JMP (opcodes 0xFF/2 or 0xFF/4)
-             *   using RIP-relative addressing.
-             * Some branch destinations may still be NULL when we come here
-             * the first time. Defer patching of those until the post-presmp-
-             * initcalls re-invocation (with force set to true). If at that
-             * point the branch destination is still NULL, insert "UD2; UD0"
-             * (for ease of recognition) instead of CALL/JMP.
-             */
-            if ( a->cpuid == X86_FEATURE_ALWAYS &&
-                 *(int32_t *)(buf + 1) == -5 &&
-                 a->orig_len >= 6 &&
-                 orig[0] == 0xff &&
-                 orig[1] == (*buf & 1 ? 0x25 : 0x15) )
-            {
-                long disp = *(int32_t *)(orig + 2);
-                const uint8_t *dest = *(void **)(orig + 6 + disp);
-
-                if ( dest )
-                {
-                    /*
-                     * When building for CET-IBT, all function pointer targets
-                     * should have an endbr64 instruction.
-                     *
-                     * If this is not the case, leave a warning because
-                     * something is probably wrong with the build.  A CET-IBT
-                     * enabled system might have exploded already.
-                     *
-                     * Otherwise, skip the endbr64 instruction.  This is a
-                     * marginal perf improvement which saves on instruction
-                     * decode bandwidth.
-                     */
-                    if ( IS_ENABLED(CONFIG_XEN_IBT) )
-                    {
-                        if ( is_endbr64(dest) )
-                            dest += ENDBR64_LEN;
-                        else
-                            printk(XENLOG_WARNING
-                                   "altcall %ps dest %ps has no endbr64\n",
-                                   orig, dest);
-                    }
-
-                    disp = dest - (orig + 5);
-                    ASSERT(disp == (int32_t)disp);
-                    *(int32_t *)(buf + 1) = disp;
-                }
-                else if ( force )
-                {
-                    buf[0] = 0x0f;
-                    buf[1] = 0x0b;
-                    buf[2] = 0x0f;
-                    buf[3] = 0xff;
-                    buf[4] = 0xff;
-                }
-                else
-                    continue;
-            }
-            else if ( force && system_state < SYS_STATE_active )
-                ASSERT_UNREACHABLE();
-            else
-                *(int32_t *)(buf + 1) += repl - orig;
-        }
-        else if ( force && system_state < SYS_STATE_active  )
-            ASSERT_UNREACHABLE();
+            *(int32_t *)(buf + 1) += repl - orig;
 
         a->priv = 1;
 
@@ -470,7 +393,7 @@ static int init_or_livepatch apply_alt_calls(
 #ifdef CONFIG_LIVEPATCH
 int apply_alternatives(struct alt_instr *start, struct alt_instr *end)
 {
-    return _apply_alternatives(start, end, true);
+    return _apply_alternatives(start, end);
 }
 
 int livepatch_apply_alt_calls(const struct alt_call *start,
@@ -516,10 +439,13 @@ static int __init cf_check nmi_apply_alternatives(
                                  PAGE_HYPERVISOR_RWX);
         flush_local(FLUSH_TLB_GLOBAL);
 
-        rc = _apply_alternatives(__alt_instructions, __alt_instructions_end,
-                                 alt_todo == ALT_CALLS);
-        if ( rc )
-            panic("Unable to apply alternatives: %d\n", rc);
+        if ( alt_todo & ALT_INSNS )
+        {
+            rc = _apply_alternatives(__alt_instructions,
+                                     __alt_instructions_end);
+            if ( rc )
+                panic("Unable to apply alternatives: %d\n", rc);
+        }
 
         if ( alt_todo & ALT_CALLS )
         {
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Wed Apr 23 03:13:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 03:13:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.963899.1354797 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7QYB-0007fv-LF; Wed, 23 Apr 2025 03:13:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 963899.1354797; Wed, 23 Apr 2025 03: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 1u7QYB-0007fo-I8; Wed, 23 Apr 2025 03:13:27 +0000
Received: by outflank-mailman (input) for mailman id 963899;
 Wed, 23 Apr 2025 03:13: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=EGKH=XJ=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1u7QY9-0007fh-P5
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 03:13:25 +0000
Received: from NAM04-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam04on20629.outbound.protection.outlook.com
 [2a01:111:f403:2409::629])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e83f4b5b-1ff0-11f0-9ffb-bf95429c2676;
 Wed, 23 Apr 2025 05:13:21 +0200 (CEST)
Received: from BL1PR12MB5849.namprd12.prod.outlook.com (2603:10b6:208:384::18)
 by IA1PR12MB8520.namprd12.prod.outlook.com (2603:10b6:208:44d::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.22; Wed, 23 Apr
 2025 03:13:16 +0000
Received: from BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::b77f:9333:3a5a:d285]) by BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::b77f:9333:3a5a:d285%4]) with mapi id 15.20.8655.033; Wed, 23 Apr 2025
 03:13: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: e83f4b5b-1ff0-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Qxe/ajEW+lQHF5qeajhhs4QCRXJ5BcTa8o/ZoC4/fFDj8ptdDvSqCM3UhKle7TpcfjK0WUVSaHpWIZ2+Qev7NmQYEJCZghlqaz+fV+qYZFVWJNsJsIAjwTJM0jE4e4anDLetk4OeIQm2SxUFMOygGHKrfBBbhI2w9jlllymyDZmGJPeBf4FPnXITNgVZo1LwvMbBV1LN1E0FPPZFogy8ZKkNlGxkRWh7Mmd4iLqJXC0+BCXoAode1nepIxyFrvgIEbs1bX7gownPksbv0GtIrcGafGtOtF7S+NnR4toLTxAk7Zx2F307miS5l07hszDsaJBQSSja37NbbHK3JsiKCQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ed1HVcjbl+EBoNKSdFW/uFiWpW7xV/VA8EAMeFrwaz8=;
 b=SBTyB/d6EFj3KK85IldRmSUNQ+PXK/jajkQdoDhoHnzf7E6SlVIecsw1TCEr5BmT5RmCGBdCuBg5eGsyp1sN4a+C3BkiT4of7AftZpA24NieVtoXRDkG0K7J0jfB6JnnxcW18uNdEH6E44zQhfRp5HIKMtaAidbmJ9C+fbu4xyrOa6T/JZAZ3aVu4HmYssTod4aaYYSJDJizyhcmCLdMuEp3FHvJeV70ZdgRLXgP7rl0pzNJ3EMySA2oTyCeWmwShGYM/t2jJ+DZTCzAVxNyo0dN9r+9W2jl3PIol2p6QezuZLtWNT7PhWlFktLliLUZWmouXZznV9v+73EqW6eWNQ==
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=ed1HVcjbl+EBoNKSdFW/uFiWpW7xV/VA8EAMeFrwaz8=;
 b=jGQbJSZA4hV6m6OE8yHJkv9IzqNCJd7bP7MiZZ/74MGr26PaCFTorzvUzIvRj2ypE0UorZFuLRCXGLfHY3hMDshMaZPVAJX/2qBKrtmESnAHCHNnG7mQfJlTwN2pTTkynNV1+7lNoEr91nRbfa3/diMoWkkpM8APIrehl31J7DE=
From: "Chen, Jiqian" <Jiqian.Chen@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "Huang, Ray" <Ray.Huang@amd.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	"Orzel, Michal" <Michal.Orzel@amd.com>, Julien Grall <julien@xen.org>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Stefano
 Stabellini <sstabellini@kernel.org>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>, "Chen, Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [PATCH v3 02/11] driver/pci: Get next capability without passing
 caps
Thread-Topic: [PATCH v3 02/11] driver/pci: Get next capability without passing
 caps
Thread-Index: AQHbsoVXQBbkP7I+H0O+xO6/Zu2wRbOv2fGAgAE+FAA=
Date: Wed, 23 Apr 2025 03:13:16 +0000
Message-ID:
 <BL1PR12MB58496CCFC316FCEC2A3B09C6E7BA2@BL1PR12MB5849.namprd12.prod.outlook.com>
References: <20250421061903.1542652-1-Jiqian.Chen@amd.com>
 <20250421061903.1542652-3-Jiqian.Chen@amd.com>
 <a0ede35c-ca58-4d0f-893c-f498052682b4@suse.com>
In-Reply-To: <a0ede35c-ca58-4d0f-893c-f498052682b4@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.8655.031)
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_|IA1PR12MB8520:EE_
x-ms-office365-filtering-correlation-id: c1c931d4-dcb2-4644-cbfe-08dd8214caad
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?a0dROUg4YllrdzgzMTVqWVF4bVQ1allyUTVGWmRBYmdqcWJjdlRyUmVYWkQ1?=
 =?utf-8?B?Ym9XVUlDMGo1K3FDeThtc25VbGMyM0h1d1RNN0h6T212YkRFdFFsSkZmRVln?=
 =?utf-8?B?QlRnM0ZtaVk4UkltS0tZV01Cb3RmUGIyR09YYU9paFJUQ21IenZvdGdCY1Rk?=
 =?utf-8?B?ZE1jczNDTytYcEwvNFU3bFlmTjZsMEpCdStNbnM5cmJRalJwMUc2TlY1R0h3?=
 =?utf-8?B?K0NTUHhVT3RrbHgvV1AybDM2UXJxc0NPQXFxR1ZtZm9OcC8zMU40dms2dnZO?=
 =?utf-8?B?eEVEYzFNQnN0T3ZGeEw0cEsrQmVGOEFhUFpBRjV5Ry96WVIzSStvNzZ5VHZX?=
 =?utf-8?B?T3lDZFRDVWs4RkNUOFpZbWZDYlk5Vk1BSkpYMEgwd1BURnFjY0hQZ3hZeWoz?=
 =?utf-8?B?V1Z2Zlh3dlg3YzRyUXlLbzhQKzh2RlJadWZ3S3JjczBBaVIrUzM5aVROL1pC?=
 =?utf-8?B?MHdISFBmaWtiazdXa3E5ZXY0SkY1bE9pOWpSSjFiUEZDSmxkenZZZlVSeFIw?=
 =?utf-8?B?ZjBkMURBOW1yWGMvdVJ3VGlDRDdEcDE0WHg4RFFZMVYzclZXRUgzYmV1QlRa?=
 =?utf-8?B?VmtneHJzTzJsTDREcXUyWjVsL3h0eGJPZmJHOVVrSzhiT3EyWFFaRXVkQ0lC?=
 =?utf-8?B?Q2ozSUZ4aTBvRGZxMzhMWWlIbE5OcU95czhiQ1FOT09XSFV0RWVIZHgrUkhP?=
 =?utf-8?B?R3BSbXJMc2lGQUZhUDBVS2VDbDJFRFB4QkQxQXZqWkZ5WmZ1aWJoSXd5RXlB?=
 =?utf-8?B?aXBsNSt4YmluUGdQZ0JrVjQxUjhkdTlFc0RxZXRuM2EvSnZzZmZEUmRvbFRI?=
 =?utf-8?B?YS9vc3pVQW4vdG9TeE95czRCSmZ3djJQWGhOV3BMaldHbXN2QjlrNEJUMTBH?=
 =?utf-8?B?eFptVndpUFlpQXRtNDVJcmdnbktSbDFlMGh4bWhNVEFhVHl1bDUrakhzR3Bi?=
 =?utf-8?B?Mk9KV0NJRGFEV09uVlFhSzlsNnUwY205L3pJMkh3QVJaSUYxS3pKZFVZUjFw?=
 =?utf-8?B?U1o3b3JGVlp4cjBibk50UVBMYXRqdEltVTdnZnNIdllVU0NxeDUvckY3WjJw?=
 =?utf-8?B?UnBhM0FvV3hTamx6SWE0cVJzNDZBeGRnTDEydlc0K3NPeGtBeEplaTNOaVFP?=
 =?utf-8?B?S0Uvd2hGY0hNSHVZWGtkNkFETUNwTkpmYzRaeXd5Z1pvblRvZXpoN3BRTFhI?=
 =?utf-8?B?c1B0TDJFTGpIdGs3dFJVbnVubmxHY0NrT0FzS1ZSa3o1T3AxWDN2NkU2aGtV?=
 =?utf-8?B?U3czMDRCUFpNWGpacngralc2ODZiU1hOSUpQYXVuczFsZGtWTlZWdEJJRnRa?=
 =?utf-8?B?WHJJNXpscnptTWp3RGtHVTdXSEFSY3hRU21PVU44MGpYYnFmNFRLTDRkSTNi?=
 =?utf-8?B?VlFWWmFZYW1vakJUTU5BQ0ZlYjV6bkh5bFJlZnVWQmE4TWdFbURZc3E1cDVV?=
 =?utf-8?B?QnY1RldsQ1Q4Y2UweExOK2RCTXdrL2NTZVlpVDAwdjZYdnRKY0lUOTVGU0dm?=
 =?utf-8?B?TytSSW1MUjJEVjhENStBem1ZUVNJUEViVnAvMThxQkkySHIwK3M5djA3TzZX?=
 =?utf-8?B?MVhUVDA5b09ITHpiSzI0T0pDZVp1bWVyalV3ZTdrWGZKM1pJeGUwY1k3bW5G?=
 =?utf-8?B?dmV3M09qRnZ1THl5OXJ3bjdSVGExOG5SVnkvMFNlNThJYVdlMGNRcFRMOTlH?=
 =?utf-8?B?ZWFTSFJTY0FBTy9IRWtqSWQ1UEQvSlFYN3NZbVlIN1RsUzVmeXg0MGd0T0V5?=
 =?utf-8?B?UHpnV0RCRkRXUGVLSHo1Z1ZpbnRjYjhOUHdIb1IwVDV2aDhvQjB0THBsMlJm?=
 =?utf-8?B?RnBYS1lUOS8xQmxQZ0ozdHBpcms5ZEIvUWNnZzI1TTBTM3B3MkJjanZ3OUVP?=
 =?utf-8?B?TUFTaVdzeVFZYmxQRkRxNXpBQXk1UGhoNE1GVUVIQ2l2V2JwTUx3WittQW1w?=
 =?utf-8?B?MldKWVlWUnUrTnBTUEc5ZVg2cTM2bEQ0MU42OGluN2xKZGZBNm8xbTJKdnZj?=
 =?utf-8?Q?RTwUQG/ZYitqIeUldVVUpr40/aLivc=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?NW5wRStzcWRuWitXTHEycGZuOEd1NklnWklmQ1hiUEdUaENIT3VYUUZQb2hR?=
 =?utf-8?B?ci84WHMxMG4zSW5LcGtGcSt4eUNsSk8xcGpUbXJqbU1LWEUwRkIzZ3BmRWhK?=
 =?utf-8?B?UUxJWkcyeWd1a3JlMTdEeWdFQ2J1RmtzU01sclhBQkt3ckxqWlRGZ1JGSjVI?=
 =?utf-8?B?YkJjUW9VMXlnWTlqMnhPaEJBaVZQOURFSUxhc3ZPMVdPdkl1Z09HdEsrendP?=
 =?utf-8?B?eFFXaWRhZnRJT2tDN3Q3eDR4ejdCRGI4amd4SnJiRFVlM2RZaHh5dnkrWllQ?=
 =?utf-8?B?bE9IUTh6Q25GK3lzMjJ1N2pRVFRRMXovWE80YXA5MDdFVUxYT2doK21uU3Zs?=
 =?utf-8?B?SEo1RmJIOUJnVUozd0xudnFGUFNYczd0bmhMdFNxeUk3ejBFSUhOemFsRWp4?=
 =?utf-8?B?MldvQldhK01FYVdOV0xHNytqdDJVSzI3aEp0TlcrTlNoZnpMZDB6VHM0enVa?=
 =?utf-8?B?YktQdkRHTHpOc0V5RXJJZnFhYThSN1hUZnFsMzlxSnRpOXduRGlNVXpWQWxP?=
 =?utf-8?B?Q05Bb25lU3RSOHlOZktFWUxMR1c5TjJHUHEvZGNySGViVXlJemVJN2FTdlI5?=
 =?utf-8?B?dDg4QmdxTnZTb2NvTU0yVEZpZXdibDc5K3ZISWtONW1CRENXa0JON1J6ZHpm?=
 =?utf-8?B?TE8zeitIYlJIOXJrZkNiQlFjdG1vTUw1a1JqcndMdU5DUy9FWUNtL1ladUc0?=
 =?utf-8?B?bXltMUpHOVJmcnlkMVhTeUJYbmtyd1lQRHlwUE1kV0NDSTdFWC83ZEJHQkg3?=
 =?utf-8?B?c0o4Yk93QlNkMFY5ekdsV2g3RnZiVy9mS3hRVjl3bGExME1oUmtHTGFORnI4?=
 =?utf-8?B?dTJ5bGtxZXB3UFFxRnZJN0dYMk81Q1dEVDB4L2tjRHZKcDRES0c1S1pkT1Ju?=
 =?utf-8?B?WUgrVUJuYXplTkp4aU52dkJkcEZnZ21qY01xQ1JOZWJybjlRckMwazY2N1Y3?=
 =?utf-8?B?M3gwbDBIQzRRTlY0QTRrYk1STytyeXhxajhkelZ1N3hId0E2WGZYR29wejhm?=
 =?utf-8?B?ZGlRRkRxWTNWUDg5cXh5TzJaMzY5MFpVeE9MREVGQjQxQ3lLRjF2ajgwamg0?=
 =?utf-8?B?NVBHZ1VvdTcwNEh5S29scHczR1JuRDRJa3BKc1M5TjJOUnZsdXdMbFZoZG9L?=
 =?utf-8?B?MWNkdElTT3o4NG8wd1IyWXZZVGpsNklWQVM2eEJKQjJZbFRNUTA3cmYxVldu?=
 =?utf-8?B?MnA5TmdGYWRQOHhyUEdsV2JRTEFiOHgxWDA2V2xWSy9JTFJFbERNYklvZElN?=
 =?utf-8?B?SExxcmlUMmdybHhxQW5XdGYwLzB3MUNyV0VYeG04TTVucEZhcjBrL0p4V1VB?=
 =?utf-8?B?RTJkSHNxSHV2bGtyK2JuSXBtYUVldUNQYkZCNWVWVTRJWVhxdHN6M3JRQVVy?=
 =?utf-8?B?UWp6NWthV05LTHZGVERnNThVZjBJWG1LLzZVblVqREEzZVA4cExIME1HSUNR?=
 =?utf-8?B?VnpQV1dvZnFlRGhUci9DMkRlNnMzUi9FMzRQUWJtTzhTYmx4TEZqREVvSkFW?=
 =?utf-8?B?eGlUdTdNekRteE5VNkU4bVdFMDJVcDU4Z04vZmlXQUo3SDMvYlFudkNnR0Zk?=
 =?utf-8?B?aFhEbTAxUGE1VWNRbnFYVmhtclBiZmNVTmNLaE1oZ25IQ095ZDU2a1cyTU56?=
 =?utf-8?B?RVFtSHZ5bjU0c0pGZ0FXVE03NGFmWnErNDBaZnFSS0JMaUJGakFKOUMrcFlP?=
 =?utf-8?B?bTFkbmpDSGkxNE11OHRqRHB4MWpDdlpoNXRQRWFIaXNXWUpJRjRnYWY1WHhP?=
 =?utf-8?B?Q3hlR3kyeXVyK1VOUjE3WEJSQ29zWVhCTHhmNEVOQ1pjTXVpKzdCRmFVczJs?=
 =?utf-8?B?Q3dtWWVJMVB5LzFSTE45alAyZ3ExQlFXOVROYzFzOFo0VmQ2bWtjSmpXWFZ5?=
 =?utf-8?B?NzUySUFLSnRNNEJWNkczMGlXNnVQVGs4QWNuL0tiRmowSUhUTVphczZPMXVR?=
 =?utf-8?B?WDZPd2YzZGZpZVhsZEZvV01ieE1DQzV5b0lXMHhTQ21xcnMrd2FUSlErUnNX?=
 =?utf-8?B?WkN1S1BIcnBPUEIxQ0tIakQyaWcxVXBrZ0tsQUkxeVU3eGovUlExSzhneW9F?=
 =?utf-8?B?T0wvVHRWdWtib3FaSFFyOHJ0b0oxekR6THFtRFIzZDRPTTgrU1BLTjRsZGFt?=
 =?utf-8?Q?vqpQ=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <7CBA37A0DD2F5848BAA479761A1D0AE4@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: c1c931d4-dcb2-4644-cbfe-08dd8214caad
X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Apr 2025 03:13:16.7235
 (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: Jn8/4gvJ9LdlXlyNiDP8PkaSXfsij1Bg/eV1sbD2mdgR9fR6Mjum6wO1fTArw2ARe9WtMFQyjpHo5yPAYYQUYQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB8520

T24gMjAyNS80LzIyIDIzOjU5LCBKYW4gQmV1bGljaCB3cm90ZToNCj4gT24gMjEuMDQuMjAyNSAw
ODoxOCwgSmlxaWFuIENoZW4gd3JvdGU6DQo+PiBNb2RpZnkgZnVuY3Rpb24gcGNpX2ZpbmRfbmV4
dF9jYXBfdHRsIHRvIHN1cHBvcnQgcmV0dXJuaW5nIHBvc2l0aW9uDQo+PiBvZiBuZXh0IGNhcGFi
aWxpdHkgd2hlbiBzaXplICJuIiBpcyB6ZXJvLg0KPj4NCj4+IFRoYXQgY2FuIGhlbHAgY2FsbGVy
IHRvIGdldCBuZXh0IGNhcGFiaWxpdHkgb2Zmc2V0IGlmIGNhbGxlciBqdXN0DQo+PiBoYXMgYSBp
bmZvcm1hdGlvbiBvZiBjdXJyZW50IGNhcGFiaWxpdHkgb2Zmc2V0Lg0KPj4NCj4+IFRoYXQgd2ls
bCBiZSB1c2VkIGluIGEgZm9sbG93LW9uIGNoYW5nZS4NCj4+DQo+PiBTaWduZWQtb2ZmLWJ5OiBK
aXFpYW4gQ2hlbiA8SmlxaWFuLkNoZW5AYW1kLmNvbT4NCj4gDQo+IEFja2VkLWJ5OiBKYW4gQmV1
bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQpUaGFuayB5b3UuDQoNCj4gYWxiZWl0IC4uLg0KPiAN
Cj4+IC0tLSBhL3hlbi9kcml2ZXJzL3BjaS9wY2kuYw0KPj4gKysrIGIveGVuL2RyaXZlcnMvcGNp
L3BjaS5jDQo+PiBAQCAtNTUsNiArNTUsOSBAQCB1bnNpZ25lZCBpbnQgcGNpX2ZpbmRfbmV4dF9j
YXBfdHRsKHBjaV9zYmRmX3Qgc2JkZiwgdW5zaWduZWQgaW50IHBvcywNCj4+ICANCj4+ICAgICAg
ICAgIGlmICggaWQgPT0gMHhmZiApDQo+PiAgICAgICAgICAgICAgYnJlYWs7DQo+PiArICAgICAg
ICBpZiAoIG4gPT0gMCApDQo+PiArICAgICAgICAgICAgcmV0dXJuIHBvczsNCj4+ICsgICAgICAg
IEFTU0VSVChjYXBzKTsNCj4+ICAgICAgICAgIGZvciAoIGkgPSAwOyBpIDwgbjsgaSsrICkNCj4+
ICAgICAgICAgIHsNCj4+ICAgICAgICAgICAgICBpZiAoIGlkID09IGNhcHNbaV0gKQ0KPiANCj4g
Li4uIGJsYW5rIGxpbmVzIGFyb3VuZCB5b3UgaW5zZXJ0aW9uIG1pZ2h0IGhhdmUgYmVlbiBuaWNl
LiBJIG1heSB0YWtlIHRoZQ0KPiBsaWJlcnR5IG9mIGFkZGluZyB0aGVtIHdoaWxlIGNvbW1pdHRp
bmcuDQpUaGF0J3MgZmluZSwgcGxlYXNlIGFkZC4NCg0KPiANCj4gSmFuDQoNCi0tIA0KQmVzdCBy
ZWdhcmRzLA0KSmlxaWFuIENoZW4uDQo=


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 03:31:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 03:31:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.963911.1354807 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7QpZ-0002JY-3O; Wed, 23 Apr 2025 03:31:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 963911.1354807; Wed, 23 Apr 2025 03:31: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 1u7QpZ-0002JR-0Q; Wed, 23 Apr 2025 03:31:25 +0000
Received: by outflank-mailman (input) for mailman id 963911;
 Wed, 23 Apr 2025 03:31:23 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=EGKH=XJ=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1u7QpX-0002JL-FI
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 03:31:23 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on2060b.outbound.protection.outlook.com
 [2a01:111:f403:2412::60b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6c7272d8-1ff3-11f0-9ffb-bf95429c2676;
 Wed, 23 Apr 2025 05:31:20 +0200 (CEST)
Received: from PH7PR12MB5854.namprd12.prod.outlook.com (2603:10b6:510:1d5::20)
 by DM6PR12MB4330.namprd12.prod.outlook.com (2603:10b6:5:21d::20) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.35; Wed, 23 Apr
 2025 03:31:16 +0000
Received: from PH7PR12MB5854.namprd12.prod.outlook.com
 ([fe80::bd58:fa72:e622:dd76]) by PH7PR12MB5854.namprd12.prod.outlook.com
 ([fe80::bd58:fa72:e622:dd76%5]) with mapi id 15.20.8655.033; Wed, 23 Apr 2025
 03:31: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: 6c7272d8-1ff3-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=rruxgc2iVLNztS+GUgK60lmRL6HU3RFMUwiyozK4L9+KnU2GPYld3qaDRsL2VsVMDskAHfIXDINgOv3RG9dnz7luY9xi9Muw20e/nLGFHaP7cokeLCXRcjEM4jhZurxY61NBnG+QceXY+w0/aevxKsCENzKFAmAxyvg69hf7QS0VjeWqGcUcMOJAvFq0aCS1jP6qiwk4OtQiO5nfgiWC3c6QVHKoPKiSKX9tzy2C0r0Kqt2K/SdTt0hJ+vgfgSHydMMXswfAAe66eUTRF79zdh8JYHj3hrCCp5W0uTLPkH290l+2WBDd7WcKGWqJkd2t3dvj7CLYy8avLLeqU2WGhw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=1BvF9/3y2RiDdh4AnkdVlx5R4oAGyRJDzRMfqWQpQ5M=;
 b=xI+F8VZFDsp0wLOlnZddyDHHdMWDHwyqxmRg+MM3nKaivtUN3U8Y9Rh08ICAdDU+IsixtZP24A0y5n4cRoGCnlGiSM91aAit0vGp+ezgT09geAcpfiz1qqi6JrMIBKsdk/nD081b5aI/2Ln30tKIJYJsm+RfiS2O+b3aaNkxcFu5WIXJ5G2SBEd3/WU0Nx7YCyAyz4zN+yip/Nss656LMWSkDk3r36uD2BNAK6k8snhJYbWETEQnz+b9FfqniuimGd7JdtoETy9DXIP/qmCR2JTHyUCZDbLGMgFVpeB4Fq4JBSvTYpCTwYOVMlY7au/vHIa2UrAtYVZoyag3ERBx+g==
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=1BvF9/3y2RiDdh4AnkdVlx5R4oAGyRJDzRMfqWQpQ5M=;
 b=j00B82qSo+j5aJ2IlGOXbSeInbPpAQifkOmpzffNf8lvNyjxVP2bS1qBh6gNvJ1sxDon6KG7eWJ//q1DGuap4T3MDh9TkoptOkkPYVTM+BjvMls2wl3Rr/k1fZH1+9brJ4l/OVl17+QztXwdl5byyTn69gd5AYykahlutKCUegU=
From: "Chen, Jiqian" <Jiqian.Chen@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, "Huang,
 Ray" <Ray.Huang@amd.com>, "Chen, Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [PATCH v3 03/11] vpci/header: Emulate legacy capability list for
 dom0
Thread-Topic: [PATCH v3 03/11] vpci/header: Emulate legacy capability list for
 dom0
Thread-Index: AQHbsoVY0As/JNC0IkWc2g8aH+9wh7Ov2pQAgAFGpwA=
Date: Wed, 23 Apr 2025 03:31:16 +0000
Message-ID:
 <PH7PR12MB58541ACB964BC8274D787B8EE7BA2@PH7PR12MB5854.namprd12.prod.outlook.com>
References: <20250421061903.1542652-1-Jiqian.Chen@amd.com>
 <20250421061903.1542652-4-Jiqian.Chen@amd.com>
 <a60a1843-e15e-495e-98f4-f55b64ab336d@suse.com>
In-Reply-To: <a60a1843-e15e-495e-98f4-f55b64ab336d@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-exchange-imapappendstamp: PH7PR12MB5854.namprd12.prod.outlook.com
 (15.20.8655.031)
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: PH7PR12MB5854:EE_|DM6PR12MB4330:EE_
x-ms-office365-filtering-correlation-id: 8939a6ee-e78f-4c3b-aeeb-08dd82174e15
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?RG1TbzBiTnVlcjRtejlkTnNuVkpKN0xmRG04M0VTNmJDc0krdjQxNnN1WlhT?=
 =?utf-8?B?L3VJZlR5UW03OVpuRTdvV1h3OWRiYVhoeDRMY1Ard3lKcEFlZUt1em0vaFJ0?=
 =?utf-8?B?R05WcE9zdGhkUDJQa2o2YVV3VFNGR003YUxOd0J6TGduV25VblRtSVh4bHMy?=
 =?utf-8?B?eEtlUStPR0htQUdhbXNmOTJDb290bS83YTRRT0xSRU4vZTY5a2FpbEJ0cjQ0?=
 =?utf-8?B?bm0xUGZ6c0thZHRwdzVsWFlqdFZXZXphOVdZdjNLQ0FwSTdnTXk2ejk5L2hD?=
 =?utf-8?B?RjJBSHFzNFdLS01YM0RoMGVSR2owQjIvcW9ObFBsWnNZdFhjNEgxS05OMXNz?=
 =?utf-8?B?Z2VsSEkrelp6djA5QlNJTURRSjFEQTZnUC9SRTRzWU9hS3lDN1BUazJXUjRG?=
 =?utf-8?B?UVJuaXdFY3pHV05RODZhQjFGK3ZWY0JnUUZYMmphV0FuQ3pxb1RVV09DWkkv?=
 =?utf-8?B?UjMxeEdvMVNJTytPRGREUVZHeXFYQXdWVlRpYjVyTnJrOVlEbk9kbloxbmpi?=
 =?utf-8?B?N2lvb3NwSjRFT2wxbFBaamY3ZmVvRFUzeWVEU2hXV3VTUnpqNExaMEkxellR?=
 =?utf-8?B?aU9aS2lZOVVDWU0wTWRNdUNjdEpuMllCU1RRVVNqaW5QRUZOb1l0WEh0TGF5?=
 =?utf-8?B?a3g0SThWZkpWWmZmeUEyN2JzSGQxY0hwek5hcFIxZHhNaGV4YXBmMjluTFF5?=
 =?utf-8?B?NFdDZ1o4aU1tYlh5a3kvQktYOEpibUNLRi9yb2JYUnc2RnRTUmpmSi82UXFa?=
 =?utf-8?B?RGVKT2lxbW9NWWxYcm1VYSs5NHRnZ0VsVEFId2Z3NnFSQlJoUHV2OFFkbUF1?=
 =?utf-8?B?UDBuUXZBT3ZGRnhoSUNZeFVhZnh2TjdjWTlvTlprYW5NVmZ2aFZoSGdyTVJx?=
 =?utf-8?B?YnUwcXF0R1I3Vmoxd1N1K1lVU1JRbEp3UVNaMnRBUWt3RDR3YWozeUFGSmlZ?=
 =?utf-8?B?NWlTUENmMXIyaFVuVnBTakMvaHpHN0ZOY004eG8vV2NkQVdOOW9yaEE0RkJk?=
 =?utf-8?B?dE9kek1RaFNlcWlTUkQydllpdnB1MHY1T1BSbTJkcDFGMlRoc1hHUUU3dnRB?=
 =?utf-8?B?Z1ZCRncybVQzYTBNK3Q4Qm1IK3NqVmI0OStHSldaRTRsTHF4MmF4UHBKV1hG?=
 =?utf-8?B?WVYyU0gxT1lydmo0RnBKMHlRWFpGUmNwQ1piNHdLRHRFUU4vTW9sSlRLNXpR?=
 =?utf-8?B?RXE2T1NGdnZnYzIxWHN6dDhBNXBPQ3lQMGNmWW45Rm1PRUVOY1QzQW9oeVNp?=
 =?utf-8?B?b3JYYUp6S1JyOU02U1hLVzBDVFJGWDhyTWc2M3JOQ1dEZEdJQ2YyaHFLN3Zv?=
 =?utf-8?B?akZRT3Y3SndEWGY3N3hFWFNDbjNFYTkyWmwwMEowNG1ON1FxMkpQZVpCNTJH?=
 =?utf-8?B?dVVOcFMwdTV4L1VUeFJyRTdueisxbExCSkhVNkI4QlBiL2VYK0dZTHBsdGM1?=
 =?utf-8?B?OXNvN2NBenBOaTdONHBLT0lvTmUwb0xmUERNQ0FCUmJ6YlBVRVZFcG5qY1Nj?=
 =?utf-8?B?TXhRam04VWozcVh1b25aTUdwZWc1TlhIeEtIZUNMSmdjclVIVGFRaHBWUVBN?=
 =?utf-8?B?RnovZ3k2ZUFrQzBhamUxRFlmZGE4dHBEY042U2tMcEtueC9meERXTHJMUzVM?=
 =?utf-8?B?WTJ5Y21tZit5MFhyTjdCZ2RFVWFsODN3VmFzaVdUcXRqNWhvTFRaTU5iU1Uw?=
 =?utf-8?B?Tzh1RGRYQjgrbkQva1ZHTDdraVNoN1dBUDJEb2QyWmlHaXZpQThHMS9XK0Ux?=
 =?utf-8?B?ZXAySmpRTDMxZHFjcWhaTXg0L0QzWUxERUdBRjU4RDZYTVJnSFF6cTg1ZTRY?=
 =?utf-8?B?VHIxNERkWnRjMTN2T3c2cGkrdzVrU0NYV2YrNzZRVGRUaGtKWStiU2VjWjFB?=
 =?utf-8?B?dXQxenRYdW1CQnc5Slhmd3ZQTW92UmNsWXAvL0pnclVaTEhXUGhzNXMvai9Y?=
 =?utf-8?B?eDJ0S2lJU3R0UUpJZzljZGpXNWc4SUd0WUxONWVHSEhkYXpDeklOMHBwUnVM?=
 =?utf-8?B?SVVXTTRQdnJ3PT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH7PR12MB5854.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?b2NiNFNhVFJLSDRISEJMOEtaUmZEenVrZk1RRzV3ZXk2M0M5NnU1cEZkbm0z?=
 =?utf-8?B?bGdURDZNdVpzTWU1czBJd1ZpWlNkNmFrenRoMU55NncxVnRzK0dOTmtObW5V?=
 =?utf-8?B?R3Uyd3dSaCt4NmpkQTJ4M1cwUjdCRUszVDhLWU53bEhjM09uS2k2R1E1NDhW?=
 =?utf-8?B?N1RYcTJiTEhmWmoycE1vTGFpV1k4NmJEZlJBN3RZd1VJb0FDQktkQ2pReUx3?=
 =?utf-8?B?d0dDRFgzczhWdU94NXFmK0dlT25MSHZvRVJZUkh4cFpTbit4N3d3VUtiY3pS?=
 =?utf-8?B?UTVqTEtvSSt1Wk5YMHRVTFdVWGs3dFNvVnF0TFBlY2ZSUmtnNHlMQW5LTUJF?=
 =?utf-8?B?dThCTVBRR010Q2lUZkYvU2VES1p0WDlhYkM1TlhSV21BQUdTMWlCWUJPOGM0?=
 =?utf-8?B?V2NqcEl2K1I0RkFkeUp4dlhRR091QXFEcHhNRUErckxzR2RSRGxsWDBuSjNK?=
 =?utf-8?B?VzAvUnN1UG5qTTF2T0hoWmJUb2FWOUZvcTR2VlZXb2MyS01jd1lNMzFhTHpD?=
 =?utf-8?B?WmN0RHhEZnhQMSt0UlhXV3JXYzgxNWkxdlNiYW9kQ3lnNnFKU0xuWDUvWlFP?=
 =?utf-8?B?c1BiQ29DbnZCbVdHZHdyWkt0T3E2ditha2lka2FwbjFpR1I2QjlOMHJLRnVn?=
 =?utf-8?B?bVZJcGtiRm1yKzNWTTNjZlQzMmQ1cU81blZDa2IxVzFHZUFmRmhRTWQvLzBu?=
 =?utf-8?B?Z1BabDVTbWlwa1puL0hxMWN0eHk4U0pFaXAwS1d0VGZUcTFWczBZdElkNDMv?=
 =?utf-8?B?ckNuemhjdHVlMkxpUWV3TFNadWpWU215Tm5GdDRIOCtMa0xlWTU5c3ljTzMy?=
 =?utf-8?B?REJFZ2RTdXowRkJ2STFzcXRZK1JJUHE4UVJ6Vm1Bc2J5MjNxZzhPdFhySlY2?=
 =?utf-8?B?cnRZcVdZWlNpbkVhUk0wQjk4WVNyQkxZbXQyWUt0RURvbFpBQTVmcFdvSzZv?=
 =?utf-8?B?ZS9VSXV1TXR6dXdKNGlnc0p2cStLUWxtaFlRQnh4OEtjOFVQRnE5Vzgza3lM?=
 =?utf-8?B?bGV2Yk16S2ROQ1BmaVVhMC9EdU1TWjFEVGlzN3hQQmRWV2xWcittc2o0bWsz?=
 =?utf-8?B?OE16NUZlZ3pMT2RFQmhHNkJmcVlZTGZOM3NITjg2YlE1RFFaR3JKdEpJT0ti?=
 =?utf-8?B?Mkl6ajVjSzZSeEdzNUVPUGJtUnNwYjFXRG10NGNWa2JqU2dDMnlHNFhTSUI2?=
 =?utf-8?B?VmNGL3drNzlJSmVNQU1Yb0M1SWFibXhFZzFYdzg5MXBVdm5ONGhwTzN1VzVF?=
 =?utf-8?B?ZHYrU3NSMFZmeFBiT2p1R2ErMllrV1NHbHpYcisyTldveTlGNXVMbzdqWGxT?=
 =?utf-8?B?K3grd2E4WmRhWWJoOHhxSDYvNEdtVHVteVhyTUpHMVlaYXZsOUo5MndnZTRm?=
 =?utf-8?B?bzA4ZEw0Z0toMEhZY0VUTy9rd0dFMlZlY0I2MTNQQ0o0OE13dkhXOHhPRHl4?=
 =?utf-8?B?SFBMZStoSkpEQ05GbWdHSkVHYURVM1ZrQlhQUkkxa3QxUHY0WGsrTUFNbXE4?=
 =?utf-8?B?blBOcm80QUdaVDgyRExEODBIbi9ZTStqMmpVZG1KUDJqNUNGdG9uNkRobFlT?=
 =?utf-8?B?M3ppRnJiblpIRVYrZHp2TnBBTU9wSXlja0NVeDNkTnVYT0RqamMyajdRaW5J?=
 =?utf-8?B?YzFXMVdaNW1veElSc0c0M1dSaExVTTF1TnluVUh4bEkwRW9kT3pkVmx0bmh2?=
 =?utf-8?B?S0Vja2swRzN5bVVLQVgwcFhNdlZOQ3pmK0JQcnY5a2loV01JRjVoQ2Z6NVdI?=
 =?utf-8?B?cDFtelh0V2tLdnBTeGFSSUNRSTNUdHdGWkE5VXZ3emIyNllWT2pBSFQ1OGVw?=
 =?utf-8?B?Ritic0syc0NsRFg2VllpZVNzN21wdXM0RFRkVGRVR2pFVXFPSDFJdFlBeUtr?=
 =?utf-8?B?ZGxBZWNteHhoZjBSTzZ4bVNiRXltdkFQZTQvVE1LRkxWWnFJR0dlUFMyMXUy?=
 =?utf-8?B?VHBKMGs1VG9XWjI0aEl3WEZuMlhRMCtUWXhGQmtHNWZDWHViN01sTlVkbGI4?=
 =?utf-8?B?Z0dmTmFkR2t5MmdHTmxlQTZJZk5EZHJaMTFLTzFuMzlhU2p1RG85QkRYem1R?=
 =?utf-8?B?UWtVVG1NZ0l6eFB3eUpCdmlYenNzWW9zT3hRMDI3NTdabnVVMFpzZVNPNDNa?=
 =?utf-8?Q?tCzk=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <573B15EBB7BCCB47ABF4097E6AA2BE30@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: PH7PR12MB5854.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 8939a6ee-e78f-4c3b-aeeb-08dd82174e15
X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Apr 2025 03:31:16.1784
 (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: M9Qe+C8LOK1/VvjcckvaNAr7diblfDHxS2EmK8IMjErA6rpNrQoONKktEhIMJ2q3NeBXfJPkYXtCOTbrEbiCog==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4330

T24gMjAyNS80LzIzIDAwOjAxLCBKYW4gQmV1bGljaCB3cm90ZToNCj4gT24gMjEuMDQuMjAyNSAw
ODoxOCwgSmlxaWFuIENoZW4gd3JvdGU6DQo+PiBAQCAtNzU5LDEwICs3NTksMTEgQEAgc3RhdGlj
IGludCB2cGNpX2luaXRfY2FwYWJpbGl0eV9saXN0KHN0cnVjdCBwY2lfZGV2ICpwZGV2KQ0KPj4g
ICAgICAgICAgICAgIFBDSV9DQVBfSURfTVNJLA0KPj4gICAgICAgICAgICAgIFBDSV9DQVBfSURf
TVNJWCwNCj4+ICAgICAgICAgIH07DQo+PiArICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgKmNh
cHMgPSBpc19od2RvbSA/IE5VTEwgOiBzdXBwb3J0ZWRfY2FwczsNCj4+ICsgICAgICAgIGNvbnN0
IHVuc2lnbmVkIGludCBuID0gaXNfaHdkb20gPyAwIDogQVJSQVlfU0laRShzdXBwb3J0ZWRfY2Fw
cyk7DQo+PiAgDQo+PiAgICAgICAgICBuZXh0ID0gcGNpX2ZpbmRfbmV4dF9jYXBfdHRsKHBkZXYt
PnNiZGYsIFBDSV9DQVBBQklMSVRZX0xJU1QsDQo+PiAtICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHN1cHBvcnRlZF9jYXBzLA0KPj4gLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBBUlJBWV9TSVpFKHN1cHBvcnRlZF9jYXBzKSwgJnR0bCk7DQo+PiArICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhcHMsIG4sICZ0dGwpOw0KPiANCj4g
QXMgcGVyIHRoZSB2MyBhZGp1c3RtZW50IHRvIHBhdGNoIDAyLCB5b3UgY2FuIHBhc3Mgc3VwcG9y
dGVkX2NhcHMgaGVyZSBpbg0KPiBhbGwgY2FzZXMuIE9ubHkgbiBuZWVkcyB0byBiZSB6ZXJvIGZv
ciB0aGUgaHdkb20gY2FzZS4NCk9oLCByaWdodC4gSSB3aWxsIGNoYW5nZSBpbiBuZXh0IHZlcnNp
b24uDQoNCj4gDQo+IEphbg0KDQotLSANCkJlc3QgcmVnYXJkcywNCkppcWlhbiBDaGVuLg0K


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 03:49:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 03:49:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.963922.1354817 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7R7N-0004Jm-Jj; Wed, 23 Apr 2025 03:49:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 963922.1354817; Wed, 23 Apr 2025 03:49:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7R7N-0004Jf-Ff; Wed, 23 Apr 2025 03:49:49 +0000
Received: by outflank-mailman (input) for mailman id 963922;
 Wed, 23 Apr 2025 03:49: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=EGKH=XJ=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1u7R7L-0004JZ-Jh
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 03:49:47 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on2061e.outbound.protection.outlook.com
 [2a01:111:f403:2415::61e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fc2908ef-1ff5-11f0-9ffb-bf95429c2676;
 Wed, 23 Apr 2025 05:49:41 +0200 (CEST)
Received: from PH7PR12MB5854.namprd12.prod.outlook.com (2603:10b6:510:1d5::20)
 by CH3PR12MB8259.namprd12.prod.outlook.com (2603:10b6:610:124::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.36; Wed, 23 Apr
 2025 03:49:38 +0000
Received: from PH7PR12MB5854.namprd12.prod.outlook.com
 ([fe80::bd58:fa72:e622:dd76]) by PH7PR12MB5854.namprd12.prod.outlook.com
 ([fe80::bd58:fa72:e622:dd76%5]) with mapi id 15.20.8655.033; Wed, 23 Apr 2025
 03:49: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: fc2908ef-1ff5-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=lOxPf5Fjh0OnIZpXdTgngW5TD7x63oEeJ4FQnYllEWowX0U6ingtcXfOQOMrddri+GG80zJCY4FE6R+CfnObKpSu3XGvnhCjgIs81iBvhs05hqrEzdGD5cmbTLqjrGCNATUc7+F+C4iDiFX61nh9Q8Hk2eN1eHA0KaDYcWzOV9KCqYEBVUgerHqqwC7YzFkdrSr219kXj5KNo1xT+dKHD++4zxpaRPfGMy7PvKp/1YZnsmdhPZzz9aGfdTsTHkHxL81Dq4+bSfg790Qu6D9LSUT9uLFbemyFqUy9DMk5ZH+baoCNFMCxA/1Kci+bu4VLMJI/Zp6pZwtcEXnKwu8CeQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=heckH4zwfJlPex+mRGYYqXGFR9rnvefybkN6MR4COvw=;
 b=HIoH7KNn/uSBCGjSOhWLYzVYfUR0ARQ4mufopoFMQJjIkGOcuKVJ4nz5vDn9HBYTTz87GIB8nazUf508myXwgzPXNo2RuCoJF5wI8syza15wHf56v2j+tMiiiyhB+0Gv9y9Rz1u2edeWJb85yGspF2eLRLHtbuMxDNmjpW+QSBeHXIc+9m1zxqvWkbzmYkBD1L4X42zSLFkt108CcfAS3DZb/a2DT2zGRxwAT3wbzq+qXISA0infMo0lFT9UxpbdghrZMyRINz70C35bwXCRzaTuDA7j2taLfyrd2CUnwl30XYj0LmMjSbLRcEdVytoiTk4BOQA6BwbilZfL0stqHw==
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=heckH4zwfJlPex+mRGYYqXGFR9rnvefybkN6MR4COvw=;
 b=Ca8Nhdi5XC8hw/F7mFZJJPW2RGt3aFBGSKetLSuVnbPzddfB6l2P7lf3HU4jfj5zbtSNidrXiew+x7+ouTvrSjNiUH9t3dX5YY25pi4/vroE+6oNyZKuZcXWiYSidj4MyhyjjA0k3sEFINEM+6T739pcS9Kot7TzbbKxUYMj07s=
From: "Chen, Jiqian" <Jiqian.Chen@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "Huang, Ray" <Ray.Huang@amd.com>, =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>, Andrew Cooper <andrew.cooper3@citrix.com>, Anthony
 PERARD <anthony.perard@vates.tech>, "Orzel, Michal" <Michal.Orzel@amd.com>,
	Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, "Chen,
 Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [PATCH v3 05/11] vpci: Refactor REGISTER_VPCI_INIT
Thread-Topic: [PATCH v3 05/11] vpci: Refactor REGISTER_VPCI_INIT
Thread-Index: AQHbsoVaTdJd8UN3wUOnIdqQLAHMILOv2xuAgAFJegA=
Date: Wed, 23 Apr 2025 03:49:37 +0000
Message-ID:
 <PH7PR12MB585404EEEC765754A3DE458FE7BA2@PH7PR12MB5854.namprd12.prod.outlook.com>
References: <20250421061903.1542652-1-Jiqian.Chen@amd.com>
 <20250421061903.1542652-6-Jiqian.Chen@amd.com>
 <545079b5-7159-4f47-8100-df387fffe57a@suse.com>
In-Reply-To: <545079b5-7159-4f47-8100-df387fffe57a@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-exchange-imapappendstamp: PH7PR12MB5854.namprd12.prod.outlook.com
 (15.20.8655.031)
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: PH7PR12MB5854:EE_|CH3PR12MB8259:EE_
x-ms-office365-filtering-correlation-id: b49f9199-df00-4d92-ea84-08dd8219dea3
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?U2o4VndyWUI5dEdvM2tISnU5dFMxekFXcm5YWjRZa1JSZUFtcmJqSzdHNkNH?=
 =?utf-8?B?ek1xaUpCQjYyTlVyUTNPUXpiczF0U1JtTzFFTExsMUF4OXROZ0FBbGJCbTJJ?=
 =?utf-8?B?OW9OQzBwZjBpRjYwWnprcDQ4KzZ0cDcyRW5yTnpvMzB0MVRaK1NLeWYyb2ZH?=
 =?utf-8?B?NnVRZUEyK0c2T210UDhNUldvNTdzUUpXYkFORjBmN1ZOQnIwRzFzRTU5ZFZs?=
 =?utf-8?B?Qnd5NUp2clVqZld4bkJjbkdXcFQwdUhXUzhlQlM5OG56Unk4Zk1CWGJzREYx?=
 =?utf-8?B?cXFyc1lTRVRvaFdGUFZlWlI4VEJ6QmdmeFErR3o5a05naHJKME1WUHpGTmtY?=
 =?utf-8?B?NUxPQjBaUlFLVVVmR0s1MGk0b0lNbisyTnQvQXNEcWJKbk42endZODdpZ2xW?=
 =?utf-8?B?ZjBLendacFduL1A1Nm00SFZpOWFVNHZGRGY3MWwydndYOTlHYm4yRmJ5TkE3?=
 =?utf-8?B?SWhid3JTdEQ0SnhNR0MrdzdTTGRZeFRDaWUyWk1DMHU0MythTmU2Rk1WRjJa?=
 =?utf-8?B?MmtyYW5CVHkyY0o3NXdkaEI0alYrcEhRY1pOYUJYMTJ3d1lzZ1dhaXZhV3FD?=
 =?utf-8?B?ZGxWYXhlTllDdjBCalBqd1BTL0hvSGhZbC9CRFV4YTJoS2N6eEJkZ09yWVo0?=
 =?utf-8?B?cGRoZi9CRjlWeFhZK0dwV0dJbXZpRHVFNlowWnVXRFVrTXl2amVYLzVJbWZn?=
 =?utf-8?B?T2htNnF1bEhiM1V4NUFVN3pVQWhmOWh0ZFBWdW8wMUFzMFlKZjc3LytVeFZl?=
 =?utf-8?B?Nmg1Y0dvZHdqenZXYlhFTnZVa1ErSGEvK3BTN1RoRS94b3lOdml5Mi90NkJU?=
 =?utf-8?B?S1l2b0JKYnY5OEJmQnd6ZndIanQ2NFQ4U3E5UE05Y3prOWRUK2tCMDNPL1NO?=
 =?utf-8?B?b3pjTXdmSVhHVExrMVJ6ekhoUURzdytSRnpLeVROd2NvYWNVQk05OVFuKzRh?=
 =?utf-8?B?WU1STUZaZHhpNHovQUg4R0MrODV4UGlQbUx3K29sZldUaUR0TkJTMHRGZThX?=
 =?utf-8?B?TjhkMlUweFBsYkhBa2NXZ1JUSFRTYUFadkxZbTJnajQzTXBTOFJIVmZLbTBS?=
 =?utf-8?B?bU1GRzJkYXNDSmxBWmZYcE5VMGVhOStWSWc1MDFYZVcwWWNISGJXTy9May84?=
 =?utf-8?B?VHZYM09mS1haNmhWU1k4amhSVXJhSjlKTk5FN1M4YlA3K21jaHJWVVlkcktF?=
 =?utf-8?B?SjFUbXErMGg0Y0VncFRQQ1djbjkvWmRzYmR4bUNxbUk5L2NQYmRhaHJjdnpP?=
 =?utf-8?B?dTlHSFY2NUdFZ3BZK2VDcm92VlV3L2VNTFJhYVlMYnNJRGN6WmREUm96OUNm?=
 =?utf-8?B?bUlmOUdmUjkrTUNqZjlRYWluZTFPdmdxc1o4YkNtTlNscjY3U0h1Z09Wbzg4?=
 =?utf-8?B?Q0hZN0JjaTJ1Uk1KNXpTaWhhd0s5TGNOUWV3SUhPeW1sVnpSb2RtS01EUlVX?=
 =?utf-8?B?U2tlTU9MOUJBNWIwWGVVN3lHcEhFRmgvWHZ6cE9RTHBDOHFUaFpKeEdDeU5W?=
 =?utf-8?B?U2YvcTBkMnlja0JCcnlkbW1aZjZ2ZTBkYjUwYjZqY0tRQUVxTTVraVU2cldG?=
 =?utf-8?B?ZURDV1pCK0lJdmVpdkY5NGdPbENGQkkzaWhod3FmUmpkSTZ2ejAwUzNPbVJ3?=
 =?utf-8?B?cENham1BeVRDaVVVNFdXNnVCNzlhT0ZmZlZwWlYwdVlaQXcvTk5hOVp5VC9o?=
 =?utf-8?B?bmFLTTdURE9WTzViZXlxVkY5M04rdmpVdW1xY2NCTkVYeDFxb21tcUJRbzYv?=
 =?utf-8?B?bkIzWkJCTmVFb0FvZ2JRWFdZNnNJdFFKdW9Oc0VjeGg5dWp1dEtGUmZpUHEx?=
 =?utf-8?B?UGFFb09YbGdRWFlIcTZwc3hkcVlZTFl1M0lNRU9rNm8wdlF3MWpwL2FOSDV6?=
 =?utf-8?B?Uzh1WHd2L1hGOHVnWTlHdjl6VEN5enVZUWxpbWphZHdHekg0VGFVLzRmN1VX?=
 =?utf-8?B?SHRRVDg0SWtabVBLTkFEVUVPRUZvWDBwRmtDajlYeWRuc1NZUnZyZGRpc21Y?=
 =?utf-8?Q?W2HxhAV5npsbxjHwi24EIEfV87Cf8A=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH7PR12MB5854.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?K2MwckVucGNvN2FJbzZYZ0VOZFVBdWNXSk1lWUh6aWo2ZWNGblhXMk4zSE8x?=
 =?utf-8?B?a1VkbmZ5Zm10ajIvS2Q2eDJaUGpSTzdTemU5akJZWVJmRVJGQnlKT3hReDZW?=
 =?utf-8?B?L0ZDTElZZGl3c3Z5aHNHYnNwTlhUY1hXdXk3Z2VNWXpuNlFRcEk2Y1pWOTRO?=
 =?utf-8?B?N3R2NXVyT3haeFV5azlvTW9rL0pzcEthcHQwSGRxQmtKOTlUSGg0R0VrRE9u?=
 =?utf-8?B?aEZzUXRLaG1HeUVMdU1leENudmxhU25rVnRRb1hOd0NsL1RhYnMrU2VlSEdV?=
 =?utf-8?B?R2FYYUxydUlJOHhqUjhFL3BwSVlnVFpKS1FrMm8yMDVlYmNvbTYxVndVZlps?=
 =?utf-8?B?TmRlbWFadG1YVCs5aW9hamJQTHU0MkhIMFo4aGhlaEs5aVhKR2N1NmZLTFBU?=
 =?utf-8?B?b000QXpwSk1CQkh3SFgxZHM2SEtvcTFlUG9qWVVRQVhPMXV6R3hkYTJyRDVo?=
 =?utf-8?B?YkUvNHdVeklDRU1XUDFRVnk0VFVLZ0dodXdUK3ljT2RoamdhdHFqRWw5TEpB?=
 =?utf-8?B?QUZXN3NLLzBhZ0pmbEpqcFNTWXg3YUdqb0VLcS84UWNrNVZGZHdoM3pLeXNS?=
 =?utf-8?B?V0dFOFU1dS9RYjJUTXVyUHNBbnFCbjVzQVduV3cyMFJNYkRiL0dDR1FzM2lz?=
 =?utf-8?B?Yk83M0w5TjgyaDlzZ2tHV2JtazlIT3YzOTkybmhBVUdxQUNWeU04Z05JODdm?=
 =?utf-8?B?bnFyK3FQaG0zVlRCMTJGYUJBRGxjSnpOeHRiNXhVTVltRGNtL3d1dWNBK1NR?=
 =?utf-8?B?THcrVzRVemZPdGRxTitJbFRWSmJPY3IrbjRqckZ5UUdaa21YWEkzZklZTkpY?=
 =?utf-8?B?aDYxRFZLbkdtQ0d5Qm95OU1VRDIzbUdxZUhFSXlRL3l2NEVDbU56Qkp5Y2VL?=
 =?utf-8?B?Mk5uRDlOTFQrRG4vV1pWZDhQOG1QeDRKMmI2Q1RxWmh4ZWR3cTlXTUFab0wv?=
 =?utf-8?B?clZudUJUejVtekdxdlE2RExvd3ltTmJWeFFlTnFFaXZ5K2hJaHJGSmlrYVFy?=
 =?utf-8?B?TmNCelBodjJhcUNEUXZXWGM3Z2JnSmhCRTA4bVFyTDFhUFpYMGZMRkxsZUM1?=
 =?utf-8?B?TWlubU1PbEM0UjlhMmMwQitKRXYvWC84Wlh5MkQyRUdCbkVaTDZaemJrZUdX?=
 =?utf-8?B?Y1JjQkZrZTVGR01nYlhJekNlMkp0bko2N1RvQjhneWhxZlN6N3NxaHlTMkxZ?=
 =?utf-8?B?TzNJSUhxUThIdkY5ZnNMbHlWUHZHWGQ0YW1QQlhmQnVlc00zNlhibVBFMWZH?=
 =?utf-8?B?VFErMlA1Q0wzc1RndENkRWJpQXlPWVFKQzIvbWhObUJ3cGZLRVE4ZEk4MW94?=
 =?utf-8?B?Mll1M2ZFT29vNG5OTzcvYzE4dm53Q2dybmlPVSs1bUxFZlRKQnJFUjhWTkc4?=
 =?utf-8?B?anJucDBacjgzVkR2M2hhcERySVJqcExreHcwaEErQlJMeEUveWhYV0FSNmwz?=
 =?utf-8?B?czBmZFNuQ3JvUTA1T01VY2VXSnd6Nm15dWZISWRSa01iRWJES2RCVU5rOWtU?=
 =?utf-8?B?ek9aWGRzNWl0NFlzSnIxWHpEMlZGRzkxTHV3cHMyUDJZaVAwS3hXRk5zM25r?=
 =?utf-8?B?Z25OZDdybTdWY0FHSGJGWjFQWit4MmFkQ0hraTdhMVJUc3d4aS84eTFnS2hE?=
 =?utf-8?B?U2U5RVUzTm92THhqL1kvZ0xNeDhsbnpxelRjTEJWbmlHc2QwSi90UWI0R0t2?=
 =?utf-8?B?NWVhK1N5ckpIbW5FSklROVR3cVVlNU9MKy9UYjFiRjVPZjRVUlNrN2E3dmN0?=
 =?utf-8?B?ZFJsMHY4OVRoN0dlNUREOFowb2ZtVGc0M01Bd0ZWWUJLTmMwVlE5bmFGTCtx?=
 =?utf-8?B?aVpxQ0JnOHhiU3JHMGV3OEFRR2ZWRm5oMUhxZXJQZ010K2libWZKM2FQTTBT?=
 =?utf-8?B?NnlsL3NkcEVOYi8xemtrOE1DREp5Njd0RnVmYStETWZtVmNtVzhlKzRrVnNW?=
 =?utf-8?B?aWJTeEVBZ2FCZEZhQm5ubXBhKzdOTTVqQ3A1UjluYnozWXJ5TXBzQ2FGYlVG?=
 =?utf-8?B?SHFtNUNKcEp2UTE3RU1jbkV2dFREakY2WmNZM0dOVWh0QzJITDFGL2FpYlVn?=
 =?utf-8?B?R0ZoSjJ1bmVaRS9FaWJHcGtqc1ZabHdoN3A3Y2pHMllMbjl5blFQVlJueXZu?=
 =?utf-8?Q?Zvzg=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <DCC28A16FCF10740AC5257D2D62C2ECC@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: PH7PR12MB5854.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b49f9199-df00-4d92-ea84-08dd8219dea3
X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Apr 2025 03:49:37.7088
 (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: MdK2FAm9nYWFD/P7tZ3HUKacM6kMKBT+ldBXsvwA7nU4oVqgDfc1XUYZinrTZkeNbtDDJoOmpIue7+kcljnHMQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB8259

T24gMjAyNS80LzIzIDAwOjAzLCBKYW4gQmV1bGljaCB3cm90ZToNCj4gT24gMjEuMDQuMjAyNSAw
ODoxOCwgSmlxaWFuIENoZW4gd3JvdGU6DQo+PiBSZWZhY3RvciBSRUdJU1RFUl9WUENJX0lOSVQg
dG8gY29udGFpbiBtb3JlIGNhcGFiaWxpdHkgc3BlY2lmaWMNCj4+IGluZm9ybWF0aW9uLCB0aGlz
IGlzIGJlbmlmaXQgZm9yIGZvbGxvdy1vbiBjaGFuZ2VzIHRvIGhpZGUgY2FwYWJpbGl0eQ0KPj4g
d2hpY2ggaW5pdGlhbGl6YXRpb24gZmFpbHMuDQo+Pg0KPj4gV2hhdCdzIG1vcmUsIGNoYW5nZSB0
aGUgZGVmaW5pdGlvbiBvZiBpbml0X2hlYWRlcigpIHNpbmNlIGl0IGlzDQo+PiBub3QgYSBjYXBh
YmlsaXR5IGFuZCBpdCBpcyBuZWVkZWQgZm9yIGFsbCBkZXZpY2VzJyBQQ0kgY29uZmlnIHNwYWNl
Lg0KPj4NCj4+IE5vdGU6DQo+PiBDYWxsIHZwY2lfbWFrZV9tc2l4X2hvbGUoKSBpbiB0aGUgZW5k
IG9mIGluaXRfbXNpeCgpIHNpbmNlIHRoZQ0KPj4gY2hhbmdlIG9mIHNlcXVlbmNlIG9mIGluaXRf
aGVhZGVyKCkgYW5kIGluaXRfbXNpeCgpLg0KPj4gVGhlIGZpbmkgaG9vayB3aWxsIGJlIGltcGxl
bWVudGVkIGluIGZvbGxvdy1vbiBjaGFuZ2VzLg0KPj4NCj4+IFNpZ25lZC1vZmYtYnk6IEppcWlh
biBDaGVuIDxKaXFpYW4uQ2hlbkBhbWQuY29tPg0KPiANCj4gRnJvbSB0aGUgZGVzY3JpcHRpb24g
SSBjYW4ndCBkZXJpdmUgdGhlIG5lZWQgZm9yIC4uLg0KPiANCj4+IC0tLSBhL3hlbi9pbmNsdWRl
L3hlbi94ZW4ubGRzLmgNCj4+ICsrKyBiL3hlbi9pbmNsdWRlL3hlbi94ZW4ubGRzLmgNCj4+IEBA
IC0xODcsNyArMTg3LDcgQEANCj4+ICAjZGVmaW5lIFZQQ0lfQVJSQVkgICAgICAgICAgICAgICBc
DQo+PiAgICAgICAgIC4gPSBBTElHTihQT0lOVEVSX0FMSUdOKTsgXA0KPj4gICAgICAgICBfX3N0
YXJ0X3ZwY2lfYXJyYXkgPSAuOyAgIFwNCj4+IC0gICAgICAgKihTT1JUKC5kYXRhLnZwY2kuKikp
ICAgICBcDQo+PiArICAgICAgICooLmRhdGEudnBjaS4qKSAgICAgXA0KPj4gICAgICAgICBfX2Vu
ZF92cGNpX2FycmF5ID0gLjsNCj4+ICAjZWxzZQ0KPj4gICNkZWZpbmUgVlBDSV9BUlJBWQ0KPiAN
Cj4gLi4uIHRoaXMgY2hhbmdlLg0KQXMgSSB1bmRlcnN0YW5kIHRoaXMsIHRoaXMgaXMgdXNlZCBm
b3IgaW5pdGlhbGl6aW5nIGFsbCBjYXBhYmlsaXRpZXMgYWNjb3JkaW5nIHRvIHByaW9yaXR5IGJl
Zm9yZS4NClRoYXQgaXMgbXNpeCA+IGhlYWRlciA+IG90aGVyIGNhcGFiaWxpdGllcy4NCk15IHBh
dGNoIHJlbW92ZXMgdGhlIHByaW9yaXR5IGFuZCBpbml0aWFsaXppbmcgYWxsIGNhcGFiaWxpdGll
cyBkb2Vzbid0IGRlcGVuZCBvbiBwcmlvcml0eSBhbnltb3JlLg0KU28gSSB0aGluayB0aGlzIGlz
IG5vdCBuZWVkZWQgYW55bW9yZS4NCkRvIHlvdSBtZWFuIEkgc2hvdWxkIGFkZCBzb21lIGV4cGxh
bmF0aW9uIGluIHRoZSBjb21taXQgbWVzc2FnZT8NCg0KPiANCj4gSmFuDQoNCi0tIA0KQmVzdCBy
ZWdhcmRzLA0KSmlxaWFuIENoZW4uDQo=


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 06:14:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 06:14:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.963937.1354826 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7TMs-0008Kd-KS; Wed, 23 Apr 2025 06:13:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 963937.1354826; Wed, 23 Apr 2025 06: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 1u7TMs-0008KW-HO; Wed, 23 Apr 2025 06:13:58 +0000
Received: by outflank-mailman (input) for mailman id 963937;
 Wed, 23 Apr 2025 06: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=rvAI=XJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u7TMr-0008KQ-Az
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 06:13:57 +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 1d8ae8d2-200a-11f0-9ffb-bf95429c2676;
 Wed, 23 Apr 2025 08:13:47 +0200 (CEST)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-43d2d952eb1so43691555e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 23:13:49 -0700 (PDT)
Received: from [10.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-44092d2331dsm13121285e9.12.2025.04.22.23.13.48
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 22 Apr 2025 23:13: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: 1d8ae8d2-200a-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745388829; x=1745993629; 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=adX12jlWSKSON4g0n3hQbCmdhkZU5r8cRx47tHlYEvo=;
        b=VaN2uqLd6Hg1knbj467tPUKkTE5BDCaVjKwpjfSHLwcRux1T7Ul/dWithImwpIQQwT
         TRp2/gfQa3hGxdy9OBbC53uH1V8lMuQ01aKXLuu73JNJujrg23dwUH0uuNXm/ucHL8Bx
         oQzI40hpdBp5dYcIKDXlXRSzzj84rfIjGYI1lr5rPfpG5Yc4E8dUv+9DaOliQsD2dDaS
         hj78H/zqA4rR/6ubvFksNvcRR5oNDiyDogghgA2O8H837bTZAga1NVB8Cx73liJ3oZD3
         juMThuHQL8BrksJ6DhOlj143o9TF5kEkOahvbkeXu6nhe7GTb2/h2gqF9y/ziEvp3frN
         diKQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745388829; x=1745993629;
        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=adX12jlWSKSON4g0n3hQbCmdhkZU5r8cRx47tHlYEvo=;
        b=G4lvUc7xCWfILz5EzdN/MHBzNVv/tWAp6ZkppnQIWesvlxkPR9R2F2OqwOBG7qkg5Z
         H68qN5M2w1BbcZ0idITQLTaDpL39gUnI3fkbejh126ma1l3quVfiC7k9c1EQvOC1TPNf
         pAam04opp6uFX/tKwbLEFocmCCjgTtR1/7NF+wmCkWDUZUqiS6Ho6hdfzds8HhuGhP/d
         gD0WbxNLkX1n/DerT+5tCLNpE66cLzgw8IkPLP0fky1lagk1RK6ljJ/rZP7vAe9UGLVs
         SfZJm/s29oeccmejbC0uZ5nzKWhRPylzH1ijKLAhWRnLE74Tn3opCk9M9bEGjXrKN5K1
         J/+g==
X-Gm-Message-State: AOJu0YzH5yTDte/SvP73OpT1422yz9V7c1EQGzIhAZwFvct9TABRNzmv
	BwRBqgb822GKIN4+2H9mt0uP6jxYi0GPtuuh4MxtDwNNNyGH3Oe6HWsOsQaac16M58Inj8VNHEI
	=
X-Gm-Gg: ASbGncvTKeM+7L+PuVFH1oGAAtVFqmcQdUpZfjvWIM+Ah1TnRqiW6YWA4YxeuC17vwE
	c3QpupdrvPXkLoZkhq5CkdZqEt4H1wqYW8ocISmov0acI5sFnQjxfVgLxCTN+fkfwQD0Hp6lUDp
	BmtWYnttGB8c+2TfVd9b37mJf4uSv5gA160620RaYfoMnY8fVgvvBtJryhsSxFlS7o8PamMeqv6
	lF3A3GtxAw84v0dxV3u0tgPcyap302LxJOLEzCAoUmsf/35KkSjhKGjfMbfl2+5rgDl+owOr80X
	BoV6Flh8BDzWUzlbNiwVNRb5otvf05YXI05xAgUc7ZFFWpEu9+ybhcUBaUh/HmE7DSdILKoOT+e
	Vi3wiwl/ICeJU4PKqBjltwi+W5g==
X-Google-Smtp-Source: AGHT+IHVFNiRIY2pSKSrj/i944mGtlmwW80r9lswaaMETBIonkr1Lm+VQr8LE4dF0Lrj1bM0q2sKxA==
X-Received: by 2002:a05:600c:3acf:b0:43d:209:21fd with SMTP id 5b1f17b1804b1-4406ac2040dmr169959325e9.30.1745388828948;
        Tue, 22 Apr 2025 23:13:48 -0700 (PDT)
Message-ID: <df3f3203-d660-4b7d-b771-871d16a8ec43@suse.com>
Date: Wed, 23 Apr 2025 08:13:47 +0200
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: adjust BSF/BSR behavior as to EFLAGS
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+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

SDM revision 087 points out that apparently as of quite some time ago on
Intel hardware BSF and BSR may alter all arithmetic flags, not just ZF.
Because of the inconsistency (and because documentation doesn't look to
be quite right about PF), best we can do is simply take the flag values
from what the processor produces, just like we do for various other
arithmetic insns. (Note also that AMD and Intel have always been
disagreeing on arithmetic flags other than ZF.)

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
Since I happened to look at it, I wonder whether for e.g. SHLD/SHRD we
wouldn't be better off using _emulate_2op_SrcV_nobyte() as well; we
already do so in x86_emul_rmw(), after all.

--- a/xen/arch/x86/x86_emulate/x86_emulate.c
+++ b/xen/arch/x86/x86_emulate/x86_emulate.c
@@ -5268,16 +5268,14 @@ x86_emulate(
         break;
 
     case X86EMUL_OPC(0x0f, 0xbc): /* bsf or tzcnt */
-    {
-        bool zf;
-
-        asm ( "bsf %2,%0" ASM_FLAG_OUT(, "; setz %1")
-              : "=r" (dst.val), ASM_FLAG_OUT("=@ccz", "=qm") (zf)
-              : "rm" (src.val) );
-        _regs.eflags &= ~X86_EFLAGS_ZF;
         if ( (vex.pfx == vex_f3) && vcpu_has_bmi1() )
         {
-            _regs.eflags &= ~X86_EFLAGS_CF;
+            bool zf;
+
+            asm ( "bsf %2,%0" ASM_FLAG_OUT(, "; setz %1")
+                  : "=r" (dst.val), ASM_FLAG_OUT("=@ccz", "=qm") (zf)
+                  : "rm" (src.val) );
+            _regs.eflags &= ~(X86_EFLAGS_ZF | X86_EFLAGS_CF);
             if ( zf )
             {
                 _regs.eflags |= X86_EFLAGS_CF;
@@ -5286,25 +5284,23 @@ x86_emulate(
             else if ( !dst.val )
                 _regs.eflags |= X86_EFLAGS_ZF;
         }
-        else if ( zf )
+        else
         {
-            _regs.eflags |= X86_EFLAGS_ZF;
-            dst.type = OP_NONE;
+            emulate_2op_SrcV_srcmem("bsf", src, dst, _regs.eflags);
+            if ( _regs.eflags & X86_EFLAGS_ZF )
+                dst.type = OP_NONE;
         }
         break;
-    }
 
     case X86EMUL_OPC(0x0f, 0xbd): /* bsr or lzcnt */
-    {
-        bool zf;
-
-        asm ( "bsr %2,%0" ASM_FLAG_OUT(, "; setz %1")
-              : "=r" (dst.val), ASM_FLAG_OUT("=@ccz", "=qm") (zf)
-              : "rm" (src.val) );
-        _regs.eflags &= ~X86_EFLAGS_ZF;
         if ( (vex.pfx == vex_f3) && vcpu_has_lzcnt() )
         {
-            _regs.eflags &= ~X86_EFLAGS_CF;
+            bool zf;
+
+            asm ( "bsr %2,%0" ASM_FLAG_OUT(, "; setz %1")
+                  : "=r" (dst.val), ASM_FLAG_OUT("=@ccz", "=qm") (zf)
+                  : "rm" (src.val) );
+            _regs.eflags &= ~(X86_EFLAGS_ZF | X86_EFLAGS_CF);
             if ( zf )
             {
                 _regs.eflags |= X86_EFLAGS_CF;
@@ -5317,13 +5313,13 @@ x86_emulate(
                     _regs.eflags |= X86_EFLAGS_ZF;
             }
         }
-        else if ( zf )
+        else
         {
-            _regs.eflags |= X86_EFLAGS_ZF;
-            dst.type = OP_NONE;
+            emulate_2op_SrcV_srcmem("bsr", src, dst, _regs.eflags);
+            if ( _regs.eflags & X86_EFLAGS_ZF )
+                dst.type = OP_NONE;
         }
         break;
-    }
 
     case X86EMUL_OPC(0x0f, 0xbe): /* movsx rm8,r{16,32,64} */
         /* Recompute DstReg as we may have decoded AH/BH/CH/DH. */


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 06:27:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 06:27:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.963949.1354836 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7TZc-0001nF-N8; Wed, 23 Apr 2025 06:27:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 963949.1354836; Wed, 23 Apr 2025 06: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 1u7TZc-0001n8-K4; Wed, 23 Apr 2025 06:27:08 +0000
Received: by outflank-mailman (input) for mailman id 963949;
 Wed, 23 Apr 2025 06:27: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=rvAI=XJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u7TZb-0001mx-09
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 06:27:07 +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 f92a0faa-200b-11f0-9ffb-bf95429c2676;
 Wed, 23 Apr 2025 08:27:04 +0200 (CEST)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-39ee57c0b8cso5838420f8f.0
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 23:27:04 -0700 (PDT)
Received: from [10.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-39efa4a4c0fsm17511391f8f.88.2025.04.22.23.27.03
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 22 Apr 2025 23:27: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: f92a0faa-200b-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745389624; x=1745994424; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=COfbRuIFrf9h7CbonrEVgc2mLz03aPLcJOHh9QDCIkM=;
        b=cjbNqbnCvzB2lD9ebP+p8Z/Z1FCwAbyYnuzx0BJBUmVb+8Zq5dyqJ9llvKjBIiL8Y5
         ZN33DuNP+7zxgQpZ36yMyKb1DJYTjAPlp3k2/Hd7uiG50QiQNi7th6Ri7FOEh0/H0gYK
         cFalUIRMgv5ztzSYDuKjYhEoVY09c/t1VqHX4sQbljE2Q9vOcYmBj0grXl2wpCoAlFjN
         UrB4QhtsNBhV4A+nqm/Qmovlw/fLgZP5DlpiHWPRpi9XfQplf07k/w23nCd0K2PBwkYL
         kYEfKaIOLifdxQa5NcVRsYy42iWbACNloEIgKxApU+FXR1QWEGKfm2EN+30XFxZcHwtH
         2ciw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745389624; x=1745994424;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=COfbRuIFrf9h7CbonrEVgc2mLz03aPLcJOHh9QDCIkM=;
        b=mQ3NrWuQms9CNacJbcStXM98dKQxY+uH4Vn3whY/nlon0vUNFJXGKAu4dHL0U6rza0
         78OgsfvnpttyzYDSdkzeYVpR9qCBcgZlnvuNbTDHGUlLOXI+pZn3uF+vFl0skiAy4f+w
         s2Cb40eL/aPlEG6qbhkSn2V2hEhLk3VBmtmKxxxuh6tJVEaTe5bkXHeAR1dIxqdYSMwS
         etLcFHoM6fiueFUirYYpK0D5KJm8Y9Y6KI+nKvpTDDwN3WnBqSAVG7jSHONnV3mhUXkp
         a9fGnx/a0I6AYa7yCyoNNGtE1xjIieuz2kQfEoOdSM1kwBE3SPOmQ4SeAspXiIzEn5QU
         mQOA==
X-Gm-Message-State: AOJu0YwN8HicYDaUXaxrsx1yzQQLcoFlMT0lLISmROmpqang/nhHCh/w
	MLoGkiiSuBuFBeu+6Zm2ekKfZy+qQe26Mxw+3vF091j/YFdlB2xekMC/8IHIVg==
X-Gm-Gg: ASbGnctC1vpsurKszm2Ziqy2BNN71b/6jBeHFfsJ621E8LR6bYduGyZ3A3Ov12kY/dA
	eR+4i/XZwuIIhggP4t++uHHzUjfDGGpUbhEBZqqS3BgXw6LE5zSEB2dLsvFWuYLPcXWEntj/kKM
	+qDrOX8R0N7uk1vmNkVW/405qNhvnnQJv0ObcZIk0VgSgl0IU06fC1eFJlCjqBE7OEI3TkxAey0
	jk79dYjJ8gTmn/47VqSAdozAYGYgH6XfLgOz1ODPyxR9zcEf8DqQUmfhjA+0GydvIy1iUEYeJuL
	CjxnGpEYt+6r+gnJPQG37TErcXFl18pvVjmPmToxDkaTVVAM39u58DHlatmDWzx3hnrPNDFdHOE
	KOR4ccwKaMCYmIBc9CISUrnenpiYg1+qRK00z
X-Google-Smtp-Source: AGHT+IErImIRuySM8NipZRXVIoYqKQ2X9+rpQu8BMAPV5jVDpTc4bX64Z4PDorOpES5IlE6uVvO1tw==
X-Received: by 2002:a5d:64a5:0:b0:391:4914:3c6a with SMTP id ffacd0b85a97d-39efba5c644mr12786814f8f.29.1745389624093;
        Tue, 22 Apr 2025 23:27:04 -0700 (PDT)
Message-ID: <8296e9e0-0834-4255-8e3d-ff3f455e3c28@suse.com>
Date: Wed, 23 Apr 2025 08:27:03 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/3] misra: add deviation for rules 21.1 and 21.2
To: Stefano Stabellini <sstabellini@kernel.org>,
 Victor Lira <victorm.lira@amd.com>
Cc: xen-devel@lists.xenproject.org,
 Nicola Vetrini <nicola.vetrini@bugseng.com>,
 Federico Serafini <federico.serafini@bugseng.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>
References: <790f9cae9a75b9f29554943c08abb6537647644e.1745364478.git.victorm.lira@amd.com>
 <alpine.DEB.2.22.394.2504221650500.785180@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.2504221650500.785180@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 23.04.2025 01:51, Stefano Stabellini wrote:
> On Tue, 22 Apr 2025, victorm.lira@amd.com wrote:
>> From: Nicola Vetrini <nicola.vetrini@bugseng.com>
>>
>> MISRA C Rules 21.1 ("#define and #undef shall not be used on a
>> reserved identifier or reserved macro name") and R21.2 ("A reserved
>> identifier or reserved macro name shall not be declared") violations
>> are not problematic for Xen, as it does not use the C or POSIX
>> libraries.
>>
>> Xen uses -fno-builtin and -nostdinc to ensure this, but there are still
>> __builtin_* functions from the compiler that are available so
>> a deviation is formulated for all identifiers not starting with
>> "__builtin_".
>>
>> The missing text of a deviation for Rule 21.2 is added to
>> docs/misra/deviations.rst.
>>
>> To avoid regressions, tag both rules as clean and add them to the
>> monitored set.
>>
>> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
>> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
>> Signed-off-by: Victor Lira <victorm.lira@amd.com>
> 
> This makes sense and it is noncontroversial.
> 
> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>

This entire series will apparently need re-sending, as the list address
was typo-ed. Patches need to be on the list before going in (with perhaps
the sole exception being XSA fixes).

Jan


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 06:39:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 06:39:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.963961.1354846 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7TlJ-0003fl-Oe; Wed, 23 Apr 2025 06:39:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 963961.1354846; Wed, 23 Apr 2025 06: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 1u7TlJ-0003fe-LY; Wed, 23 Apr 2025 06:39:13 +0000
Received: by outflank-mailman (input) for mailman id 963961;
 Wed, 23 Apr 2025 06: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=rvAI=XJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u7TlI-0003fW-75
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 06:39:12 +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 a94b50a2-200d-11f0-9ffb-bf95429c2676;
 Wed, 23 Apr 2025 08:39:09 +0200 (CEST)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-43d04ea9d9aso28218805e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 23:39:09 -0700 (PDT)
Received: from [10.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-39efa4a4c0fsm17543023f8f.88.2025.04.22.23.39.08
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 22 Apr 2025 23:39: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: a94b50a2-200d-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745390349; x=1745995149; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=4Ue+qqTC36a+FROa5W9mhM9YF8TeGG9QVTvtEIt355A=;
        b=Dh0mEnsUYZnIVWfa5X7s5JZaSap6pIazQouuXtPK3IVqv+UCkNE3zMP5pM9ocR2R9P
         mr3F31oZF7itJMgWs9ERPbghdde9+t7ZosAiKDRueVqPJgkPDU9kdr5WV3EeyMvSlQvG
         yM0MDPnbpWeeaNuT/1yY4+0DFPdJ2c3nFu0/ZTpEMOekgD0tZJBvilo9F0iabb1iaSff
         0nRqufnv+f170mog0uhGk8DQLSeexK40e/Pi1P+BtKk8r8v0xhF+wj1I/Y4tR4hxu9C3
         Z/AMybdjq4GlLMwwl7Rs23kLQ556eNh73fH/jdSmD1PR3yWItpmU3l6Z6ObLqkc8zRpw
         7T9g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745390349; x=1745995149;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=4Ue+qqTC36a+FROa5W9mhM9YF8TeGG9QVTvtEIt355A=;
        b=SkOU95aYEPVc+gej2oTgbbCJPsnQFppggs6sC6ChXiiwSSi0GR5RiYoP31QEI3DCpP
         GyAN5m4wCIk5Tv77OBuodIrixf+/J89JTYpZwzpArjNeOGomjq+QNfzF9nWMmg1H6r5n
         3yHEdjv0vzFc2L4oILWwzYyQ1no9NR4lmAo1m4yLM5CIVQrOPXo8m7nEOE4i1BjzEp+E
         Ayt8mi2Vs6q1ReDM9jvXGQ6AluK0RkwEMOZwFYkXDHTYsPqPScpDk1amYp0djjr8QQ7+
         Urdnn8Wj9QsltPi3mJm8CNsTNvrxYze8KcJvfxxker7XebU5bUlgEDau2a1OXjCLfl4S
         B+Pw==
X-Forwarded-Encrypted: i=1; AJvYcCV55tKv8bfXABYVLqfx0A7fSKuOW0vuvxjRAL0q3atNORgWJccA5W9BWmWPpZqdtF3zt92MH9ahdyg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxXf4gZseS9PjibqPSSZSnFyGlqslfpi5rV1BdNm2w5JrdIlwxM
	bNuVitWhxh5hUtrW5yeI88kNOOWEH68MupYcBRG+2YT+Vt2cDcempUNai5UeAA==
X-Gm-Gg: ASbGncvbE9DedVCEpwTsX8oR0JH0KPYKFG3V+LC1D5uRb5Li4AuIiYB9MNX9XFeXqfB
	3Wl01HPsAqsugz437VqVCVIsx8PC5jb9Nn5QJ/5qEJaABJnXRi+c8PMe1FugJszORmQzqskF99T
	n5wrjREkPse3HVnI73sMa3c9B9ZkfcYeRN/Il9G/QhXGlaACO96ZZsJKLyvWy7UD66gOPOiuuTf
	VBkao06GzeRDQVi6WDyRZj0K/skOIuABRXaAmlPm4VlyYfTXaS5g8XZmsTaQA2iOfBR9BKrShPZ
	MNmOv7BiO3waPj8hWgYrBHsrqbmzKyFWwk7q4mZls/nGCo3uYZAWMq+a7S7wANKhOFeh+RhwarV
	Ajf1AH9FfbuQHrJBsnFrjUepCaQ==
X-Google-Smtp-Source: AGHT+IG8IdX1znkNPKccF0nX6NUSo/2PQl7HdEJu/JSTvq2lR6pko2gZPZXTPNWPSyNQ9mMplMln1A==
X-Received: by 2002:a05:600c:3b8b:b0:43d:fa5d:9314 with SMTP id 5b1f17b1804b1-4406ac272d1mr119102515e9.32.1745390349111;
        Tue, 22 Apr 2025 23:39:09 -0700 (PDT)
Message-ID: <20989ef0-a906-4ad2-818b-e52dd49b868d@suse.com>
Date: Wed, 23 Apr 2025 08:39:07 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/3] misra: add deviation for rules 21.1 and 21.2
To: victorm.lira@amd.com
Cc: Nicola Vetrini <nicola.vetrini@bugseng.com>,
 Federico Serafini <federico.serafini@bugseng.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <790f9cae9a75b9f29554943c08abb6537647644e.1745364478.git.victorm.lira@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: <790f9cae9a75b9f29554943c08abb6537647644e.1745364478.git.victorm.lira@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 23.04.2025 01:43, victorm.lira@amd.com wrote:
> From: Nicola Vetrini <nicola.vetrini@bugseng.com>
> 
> MISRA C Rules 21.1 ("#define and #undef shall not be used on a
> reserved identifier or reserved macro name") and R21.2 ("A reserved
> identifier or reserved macro name shall not be declared") violations
> are not problematic for Xen, as it does not use the C or POSIX
> libraries.

In the course of all the Misra discussions it was pointed out more than
once that it's not just the titles which matter, but also the
"Amplification" text. While the latter two of the three bullet points
applying to both rules clearly are library-centric, the first one isn't.
In that light it's entirely unclear to me how ...

> Xen uses -fno-builtin and -nostdinc to ensure this, but there are still
> __builtin_* functions from the compiler that are available so
> a deviation is formulated for all identifiers not starting with
> "__builtin_".
> 
> The missing text of a deviation for Rule 21.2 is added to
> docs/misra/deviations.rst.
> 
> To avoid regressions, tag both rules as clean and add them to the
> monitored set.

... our code base could be anywhere near clean towards these two rules.

(Unlike I would normally do, I'm leaving the entire patch in context, so
on the list - lacking the submission - it'll be visible in its entirety.)

Jan

> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
> Signed-off-by: Victor Lira <victorm.lira@amd.com>
> ---
> Cc: Andrew Cooper <andrew.cooper3@citrix.com>
> Cc: Anthony PERARD <anthony.perard@vates.tech>
> Cc: Michal Orzel <michal.orzel@amd.com>
> Cc: Jan Beulich <jbeulich@suse.com>
> Cc: Julien Grall <julien@xen.org>
> Cc: Roger Pau Monné <roger.pau@citrix.com>
> Cc: Stefano Stabellini <sstabellini@kernel.org>
> Cc: Nicola Vetrini <nicola.vetrini@bugseng.com>
> Cc: Federico Serafini <federico.serafini@bugseng.com>
> Cc: Bertrand Marquis <bertrand.marquis@arm.com>
> ---
>  .../eclair_analysis/ECLAIR/deviations.ecl     |  9 ++++++-
>  .../eclair_analysis/ECLAIR/monitored.ecl      |  2 ++
>  automation/eclair_analysis/ECLAIR/tagging.ecl |  2 ++
>  docs/misra/deviations.rst                     | 26 ++++++++++++++++++-
>  4 files changed, 37 insertions(+), 2 deletions(-)
> 
> diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl b/automation/eclair_analysis/ECLAIR/deviations.ecl
> index 2c8fb92713..ffa23b53b7 100644
> --- a/automation/eclair_analysis/ECLAIR/deviations.ecl
> +++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
> @@ -639,8 +639,15 @@ in the expansion."
>  # Series 21.
>  #
> 
> +-doc_begin="Xen does not use C and POSIX libraries:
> +identifiers reserved by these libraries can be used safely, except for those
> +beginning with '__builtin_'."
> +-config=MC3A2.R21.1,macros={safe, "!^__builtin_.*$"}
> +-config=MC3A2.R21.2,declarations={safe, "!^__builtin_.*$"}
> +-doc_end
> +
>  -doc_begin="or, and and xor are reserved identifiers because they constitute alternate
> -spellings for the corresponding operators (they are defined as macros by iso646.h).
> +spellings for the corresponding logical operators (as defined in header 'iso646.h').
>  However, Xen doesn't use standard library headers, so there is no risk of overlap."
>  -config=MC3A2.R21.2,reports+={safe, "any_area(stmt(ref(kind(label)&&^(or|and|xor|not)$)))"}
>  -doc_end
> diff --git a/automation/eclair_analysis/ECLAIR/monitored.ecl b/automation/eclair_analysis/ECLAIR/monitored.ecl
> index 8351996ec8..da229a0d84 100644
> --- a/automation/eclair_analysis/ECLAIR/monitored.ecl
> +++ b/automation/eclair_analysis/ECLAIR/monitored.ecl
> @@ -79,6 +79,8 @@
>  -enable=MC3A2.R20.12
>  -enable=MC3A2.R20.13
>  -enable=MC3A2.R20.14
> +-enable=MC3A2.R21.1
> +-enable=MC3A2.R21.2
>  -enable=MC3A2.R21.3
>  -enable=MC3A2.R21.4
>  -enable=MC3A2.R21.5
> diff --git a/automation/eclair_analysis/ECLAIR/tagging.ecl b/automation/eclair_analysis/ECLAIR/tagging.ecl
> index 1d078d8905..3292bf751e 100644
> --- a/automation/eclair_analysis/ECLAIR/tagging.ecl
> +++ b/automation/eclair_analysis/ECLAIR/tagging.ecl
> @@ -88,6 +88,8 @@ MC3A2.R20.11||
>  MC3A2.R20.12||
>  MC3A2.R20.13||
>  MC3A2.R20.14||
> +MC3A2.R21.1||
> +MC3A2.R21.2||
>  MC3A2.R21.3||
>  MC3A2.R21.4||
>  MC3A2.R21.5||
> diff --git a/docs/misra/deviations.rst b/docs/misra/deviations.rst
> index fe0b1e10a2..d116aca7b9 100644
> --- a/docs/misra/deviations.rst
> +++ b/docs/misra/deviations.rst
> @@ -587,7 +587,31 @@ Deviations related to MISRA C:2012 Rules:
>         construct is deviated only in Translation Units that present a violation
>         of the Rule due to uses of this macro.
>       - Tagged as `deliberate` for ECLAIR.
> -
> +
> +   * - R21.1
> +     - Rule 21.1 reports identifiers reserved for the C and POSIX standard
> +       libraries. Xen does not use such libraries and all translation units
> +       are compiled with option `-nostdinc`, therefore there is no reason to
> +       avoid to use `#define` or `#undef` on such identifiers except for those
> +       beginning with `__builtin_` for which compilers may perform (wrong)
> +       optimizations.
> +     - Tagged as `safe` for ECLAIR.
> +
> +   * - R21.2
> +     - Rule 21.2 reports identifiers reserved for the C and POSIX standard
> +       libraries. Xen does not use such libraries and all translation units
> +       are compiled with option `-nostdinc`, therefore there is no reason to
> +       avoid declaring such identifiers except for those beginning with
> +       `__builtin_` for which compilers may perform (wrong) optimizations.
> +     - Tagged as `safe` for ECLAIR.
> +
> +   * - R21.2
> +     - `or`, `and` and `xor` are reserved identifiers because they constitute
> +       alternate spellings for the corresponding logical operators
> +       (as defined in Standard Library header `\<iso646.h\>`). Xen does not use
> +       Standard library headers, so there is no risk of overlap.
> +     - Tagged as `safe` for ECLAIR.
> +
>     * - R21.9
>       - Xen does not use the `bsearch` and `qsort` functions provided by the C
>         Standard Library, but provides in source form its own implementation,
> --
> 2.47.0



From xen-devel-bounces@lists.xenproject.org Wed Apr 23 06:45:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 06:45:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.963976.1354857 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7Tqx-0005Z9-Df; Wed, 23 Apr 2025 06:45:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 963976.1354857; Wed, 23 Apr 2025 06:45: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 1u7Tqx-0005Z2-9r; Wed, 23 Apr 2025 06:45:03 +0000
Received: by outflank-mailman (input) for mailman id 963976;
 Wed, 23 Apr 2025 06:45: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=rvAI=XJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u7Tqv-0005Yw-Ty
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 06:45:01 +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 75c53921-200e-11f0-9eb0-5ba50f476ded;
 Wed, 23 Apr 2025 08:44:52 +0200 (CEST)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-43cef035a3bso41801715e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 23:44:52 -0700 (PDT)
Received: from [10.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-39efa4330casm17418044f8f.22.2025.04.22.23.44.51
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 22 Apr 2025 23:44: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: 75c53921-200e-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745390692; x=1745995492; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=w4o5Jmzbz+z/6zOW4ycF8K1RVhT9ZQ/7CsXF09EuTRw=;
        b=bnlmnf8BRLjzgi7Aq92OYeJTahXu7WWJngF6x/RAAX/tyZVVngDcRGfB7Q5Ivg59NK
         VdEcJdxJ7JLGk9/0pow55uZzsfB25TJf5HVIjcWQK8cXJYcUgLK0b5r9YJkT3r5TLjB2
         8i6fSSvkVLBUtisQafPDWH0WmsL7e5/MVeqQ9SlrB/zcCBfwPfozMOAzWjK8cI5a52T7
         C8maDX66YORCkikxPp5iE6QL9K9Nqm0+T/Xu+aZeNz3x+MSo85NdLoaZTFZJ362CSfMU
         TnqCCtBVLfKvGkC11mJBx7Q+8/Kie4HO7Dbrk9hu3qSzCnozKhqCygf+OVffo4zZXcNo
         YEiQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745390692; x=1745995492;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=w4o5Jmzbz+z/6zOW4ycF8K1RVhT9ZQ/7CsXF09EuTRw=;
        b=m1Av0pgMvE4lxxYm0Q1tym0c2ZUaqmvHPaAMt3e8iUiVpyJHAIde33ipQLoS1PMl7X
         bPfexPBg0KcoMcTBKoo6t83YpPEIkggUpuZm60QJKqFr690/JHzq3PrFmIv81Cbfc8SY
         O3Y54c6eF+lnb821AAXGNbtXnK5Gb1LQzpRIEyakYzG2NUc/uSDWsRis8MYc2l2sELm9
         nlfnAY+0gz4mjeSZ+ItF5C80EhHgJ1/d4k2BUP7rFnYc1R/tq6PZ1ofjGSi7iSjQQWGv
         130Tu/jdo7k6uXYaEIBm2MRiHN+OyXEZUOEopp5AMGyYxoR5/MnKwVjXhxbSjWvF3rb8
         /nkg==
X-Forwarded-Encrypted: i=1; AJvYcCUG6NftPrqTUarBrJwsqjVWhIAToSGnvjHYVhyNQxjNA5BCQIf9pTi27tX48KRiFldPq7RgXsn2wUo=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yyt1TJDyvgSqOcmAIaQy/V4Yxx3WaXZtUmOr0uAZhJWbm5RsMrT
	ooEKEpY9ZbxYpOHQLfP2haR+cyrcX4VBKOyCgBOGoMRc/CuD7+040AuO28FmbA==
X-Gm-Gg: ASbGnctWOFWn4TF36LaR24QnqrsCl3CL1oq5JouikuXRY+qNmq7JCkn+rGHHWTQpQS1
	zBp3GYAQENnCOQzSYKi4o5NAzQLgVhN+fMRRR3R/+my3mrmAEGPYu4BCdeRPaQUuBUoe5qrTOxn
	EvGuJeLNqa6RDrP02NAD0cOxlYsy3G/+P7AK0Wl5nA0l8/d44e1awpzWB/IqVxRac8kHG9ZtxqS
	WVNCwTuxus3WAEdcqRQr414WzyXm9YGGoQcmWH21PLOSdaaZye2xLj0dNQjdMR/zS4uRcJowbZm
	XEMUjKpZ24ft7SrY4EyIx7QGq6cDtD0K7bFxrcuvAjQatV/M4E4rPNuek+wlnoirmMUZUM0YyGX
	NaJy4f9/0buWLNm4snmsQiSSz2Q==
X-Google-Smtp-Source: AGHT+IHyWV1taKXTrt0fEc7mU/TzUFLyjTMvpy7HPfwpOOtnsuettNWrkOU+mEisKh/Tus4e2Kz8mg==
X-Received: by 2002:a05:6000:2501:b0:390:e5c6:920 with SMTP id ffacd0b85a97d-39efba397f5mr14396546f8f.3.1745390692110;
        Tue, 22 Apr 2025 23:44:52 -0700 (PDT)
Message-ID: <139aa595-8b41-44e7-b205-415443c8c357@suse.com>
Date: Wed, 23 Apr 2025 08:44:50 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/3] misra: add deviation of Rule 5.5
To: victorm.lira@amd.com, Federico Serafini <federico.serafini@bugseng.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Nicola Vetrini <nicola.vetrini@bugseng.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <790f9cae9a75b9f29554943c08abb6537647644e.1745364478.git.victorm.lira@amd.com>
 <56fb2180c59a9d6bbc7b983dd8bfd6a2122e405c.1745364478.git.victorm.lira@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: <56fb2180c59a9d6bbc7b983dd8bfd6a2122e405c.1745364478.git.victorm.lira@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 23.04.2025 01:43, victorm.lira@amd.com wrote:
> From: Federico Serafini <federico.serafini@bugseng.com>
> 
> MISRA C Rule 5.5 states that:
> "Identifiers shall be distinct from macro names".
> 
> A common pattern in Xen is to have a function-like macro that acts as a
> "wrapper" for the function to be called:
> before calling the function, the macro adds additional checks or
> increase/decrease the number of parameters depending on the
> configuration.
> 
> Update ECLAIR configuration and deviations.rst.
> 
> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
> Signed-off-by: Victor Lira <victorm.lira@amd.com>
> ---
> Cc: Andrew Cooper <andrew.cooper3@citrix.com>
> Cc: Anthony PERARD <anthony.perard@vates.tech>
> Cc: Michal Orzel <michal.orzel@amd.com>
> Cc: Jan Beulich <jbeulich@suse.com>
> Cc: Julien Grall <julien@xen.org>
> Cc: Roger Pau Monné <roger.pau@citrix.com>
> Cc: Stefano Stabellini <sstabellini@kernel.org>
> Cc: Nicola Vetrini <nicola.vetrini@bugseng.com>
> Cc: Federico Serafini <federico.serafini@bugseng.com>
> Cc: Bertrand Marquis <bertrand.marquis@arm.com>
> ---
>  automation/eclair_analysis/ECLAIR/deviations.ecl | 8 ++++++++
>  docs/misra/deviations.rst                        | 8 ++++++++
>  2 files changed, 16 insertions(+)
> 
> diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl b/automation/eclair_analysis/ECLAIR/deviations.ecl
> index ffa23b53b7..303b06203a 100644
> --- a/automation/eclair_analysis/ECLAIR/deviations.ecl
> +++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
> @@ -114,6 +114,14 @@ it defines would (in the common case) be already defined. Peer reviewed by the c
>  -config=MC3A2.R5.5,reports+={deliberate, "any_area(decl(kind(function))||any_loc(macro(name(memcpy||memset||memmove))))&&any_area(any_loc(file(^xen/common/libelf/libelf-private\\.h$)))"}
>  -doc_end
> 
> +-doc_begin="Clashes between function-like macros and function names are
> +deliberate since a common pattern in Xen is to have a function-like macro
> +that acts as a \"wrapper\" for the function to be called:
> +before calling the function, the macro adds additional checks or
> +increase/decrease the number of parameters depending on the configuration."
> +-config=MC3A2.R5.5,reports+={deliberate, "all_area(macro(function_like())||decl(kind(function)))"}
> +-doc_end
> +
>  -doc_begin="The type \"ret_t\" is deliberately defined multiple times,
>  depending on the guest."
>  -config=MC3A2.R5.6,reports+={deliberate,"any_area(any_loc(text(^.*ret_t.*$)))"}
> diff --git a/docs/misra/deviations.rst b/docs/misra/deviations.rst
> index d116aca7b9..a93ef1ff44 100644
> --- a/docs/misra/deviations.rst
> +++ b/docs/misra/deviations.rst
> @@ -130,6 +130,14 @@ Deviations related to MISRA C:2012 Rules:
>         memmove.
>       - Tagged as `deliberate` for ECLAIR.
> 
> +   * - R5.5
> +     - Clashes between function-like macros and function names are
> +       deliberate

They may or may not be deliberate, depending on context. I don't think it's a
good move to deviate this more widely than necessary. If I get the expression
above (in deviations.ecl) right, even

void func1(int);
void func2(int);

#define func1() func2(0)
#define func2() func1(0)

would be deviated, which I don't think we want. Especially when, in a less
contrived scenario, the clash may not easily be visible.

Jan

> since a common pattern in Xen is to have a function-like
> +       macro that acts as a "wrapper" for the function to be called:
> +       before calling the function, the macro adds additional checks or
> +       increase/decrease the number of parameters depending on the configuration.
> +     - Tagged as `deliberate` for ECLAIR.
> +
>     * - R5.6
>       - The type ret_t is deliberately defined multiple times depending on the
>         type of guest to service.
> --
> 2.47.0



From xen-devel-bounces@lists.xenproject.org Wed Apr 23 06:51:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 06:51:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.963989.1354866 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7TxC-0007Ps-2X; Wed, 23 Apr 2025 06:51:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 963989.1354866; Wed, 23 Apr 2025 06:51: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 1u7TxB-0007Pl-WE; Wed, 23 Apr 2025 06:51:30 +0000
Received: by outflank-mailman (input) for mailman id 963989;
 Wed, 23 Apr 2025 06:51:28 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=rvAI=XJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u7TxA-0007Pf-Kb
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 06:51:28 +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 6053246c-200f-11f0-9ffb-bf95429c2676;
 Wed, 23 Apr 2025 08:51:26 +0200 (CEST)
Received: by mail-wr1-x42a.google.com with SMTP id
 ffacd0b85a97d-39ac56756f6so5949883f8f.2
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 23:51:26 -0700 (PDT)
Received: from [10.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-39efa4330d8sm18094878f8f.33.2025.04.22.23.51.25
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 22 Apr 2025 23:51: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: 6053246c-200f-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745391086; x=1745995886; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=A3Dvwzb+yt+8N+8e2Iu4VzObQRc5psyPUeFfrGwZ1Y0=;
        b=D1BL284LfL7Z5B+B+/vDTZDVoEk21Y9b0ggIrjFVHqPLlvyMVFX6Ia68ql8nOSE6Ij
         Z4yZLsOKqUR36LHaxvsbnyqgknhYEpAvIpOOzb8mBGFLO+0b+BfwBDNinQAyAhJ0EX0X
         fWOWYCaFgDhsT/wOqA8CF3Qt7QHM5/OWaqu8a6i4kYJFYQvjkWpv7e0NAjOKlJGdVtYh
         PLEf6EESfpzUy60X1KlKAVit6FqAE31l+Lwu16C72hpLdLHoOj72MBQyDGVr5CBGOGc9
         GLsWG7IsxEswbjiOeSpX1/UvSmfiY0XfgdfK2bpntBcTlEqlWaO4adNzNGa7TmZHS+0Q
         I/Dg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745391086; x=1745995886;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=A3Dvwzb+yt+8N+8e2Iu4VzObQRc5psyPUeFfrGwZ1Y0=;
        b=M0E1zPJc4unDb1u2wdoKT4XpW+k1Z1V26vTXuXCfhhQlHNHGHGJTPlKv9BqBmTkKRr
         dpJJqYWZslvg+qs3SQuM/H8PrhWxuicKc8xDv0pwR4St0ioINkkFoM6trEHbIDGumBEm
         hLwEUBic5HtBjRbQYETjMQQNM8NHTdMpGb30bErmVMxzA3P24n200H18oPFoBCPv19yp
         AzH2i/EZ0soC3MvLy5glDB1pHA52deq/mRqDkvcIIwdUElv8mgBn1f7rR2lmzXBuRuAp
         eCVzLzj3C7fsyHkT/eRw6Kz+l85/zQF3sPKufP4QFDTU5RAKoDDz2or0JREnDND/8hjt
         eq3A==
X-Forwarded-Encrypted: i=1; AJvYcCU1wPKhMXEe0dKujuYd72mqksdO/pPLQJdHc2tB9XVdvu7Ie2p8RywEH294/4u+pPbeO5zIoClLtfM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxQCPWNSMNbmjQi/ll6o3irVwYUFBlia80VTeHBLubrqo3GFP4G
	1ciueS0NBC/9eIX2sSGQnkYMCqprOsr4VBIgkwcG5HqfG3P0ldWXZwnaDFXdew==
X-Gm-Gg: ASbGncvNDainJnq2sMrxfculymWk2ZsSR1eAiP2dSXzXMnhizsr8KB0frIzc3V4uEZ0
	PYasiaHcRRfpjQ+zC74tNfzt6aFqUvo2jLVIjvekx+T3j/ioqNxbw70MNUAZ0azxTTysFgtjvMH
	tmAC4NheY7sOWO6PCfWIGln5qVI/L7zt3PGvIqZC+vyzAovL+ZkEmEg9pNTp7shB2nIdAeHG4cg
	5Efgh26GqLaHndhMqfFeiO0xTiwI/HRE2vYkmSzUNgvP+lr7PD578iJshWOu3e6npv1jYwClOFP
	IK2WhNdgxOXIFluJsMXL3H3lEz1tcLY00XKcB4gn2aHSKypWnh1m0orRFwrr7vxRYritfRfkgBQ
	ZcbOrtvMMKHf3l8JSODJetwydZJb7Zr5HzxFZ
X-Google-Smtp-Source: AGHT+IGtULPeukIvMQdYlsupqfs3vcDZR8sZm8Lb7vKuxS3BoGSrGfxxPBx33RXGA+I92gZfwpmOAQ==
X-Received: by 2002:a05:6000:401e:b0:391:3f4f:a172 with SMTP id ffacd0b85a97d-39efbb02156mr12876531f8f.49.1745391085717;
        Tue, 22 Apr 2025 23:51:25 -0700 (PDT)
Message-ID: <b595b675-a697-4dea-a698-9b3df08a4d3b@suse.com>
Date: Wed, 23 Apr 2025 08:51:24 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 3/3] misra: add deviation of Rule 10.1 for unary minus
To: victorm.lira@amd.com, Nicola Vetrini <nicola.vetrini@bugseng.com>
Cc: Federico Serafini <federico.serafini@bugseng.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <790f9cae9a75b9f29554943c08abb6537647644e.1745364478.git.victorm.lira@amd.com>
 <e2bb53abc608d3908aef7fb497f208ca25d2c0e8.1745364478.git.victorm.lira@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: <e2bb53abc608d3908aef7fb497f208ca25d2c0e8.1745364478.git.victorm.lira@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 23.04.2025 01:43, victorm.lira@amd.com wrote:
> From: Nicola Vetrini <nicola.vetrini@bugseng.com>
> 
> The unary minus operator applied to an unsigned quantity has
> a semantics (wrap around) that is well-known to all Xen developers.
> Thus, this operation is deemed safe.

Please, as you have it in the other two patches, can the rule title be
reproduced in such patches? As it stands, without mentioning the doc
version either, someone finding this later on may be left with a pretty
wide ambiguity as to what's meant.

> No functional change.
> 
> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
> Signed-off-by: Victor Lira <victorm.lira@amd.com>
> ---
> Cc: Andrew Cooper <andrew.cooper3@citrix.com>
> Cc: Anthony PERARD <anthony.perard@vates.tech>
> Cc: Michal Orzel <michal.orzel@amd.com>
> Cc: Jan Beulich <jbeulich@suse.com>
> Cc: Julien Grall <julien@xen.org>
> Cc: Roger Pau Monné <roger.pau@citrix.com>
> Cc: Stefano Stabellini <sstabellini@kernel.org>
> Cc: Nicola Vetrini <nicola.vetrini@bugseng.com>
> Cc: Federico Serafini <federico.serafini@bugseng.com>
> Cc: Bertrand Marquis <bertrand.marquis@arm.com>
> ---
>  automation/eclair_analysis/ECLAIR/deviations.ecl | 6 ++++++
>  docs/misra/deviations.rst                        | 6 ++++++
>  2 files changed, 12 insertions(+)
> 
> diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl b/automation/eclair_analysis/ECLAIR/deviations.ecl
> index 303b06203a..2cfce850bd 100644
> --- a/automation/eclair_analysis/ECLAIR/deviations.ecl
> +++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
> @@ -347,6 +347,12 @@ constant expressions are required.\""
>    "any()"}
>  -doc_end
> 
> +-doc_begin="Unary minus operations on non-negative integers have a semantics (wrap around) that is well-known to all Xen developers."

Why "non-negative"? A variable of type "int" holding a non-negative value is,
aiui, well within the bounds of the rule here. It's unsigned types where the
use of unary minus would constitute a violation. You actually say so ...

> +-config=MC3A2.R10.1,etypes+={safe,
> +  "stmt(node(unary_operator)&&operator(minus))",
> +  "src_expr(definitely_in(0..))"}
> +-doc_end
> +
>  #
>  # Series 11
>  #
> diff --git a/docs/misra/deviations.rst b/docs/misra/deviations.rst
> index a93ef1ff44..8c1f97358a 100644
> --- a/docs/misra/deviations.rst
> +++ b/docs/misra/deviations.rst
> @@ -321,6 +321,12 @@ Deviations related to MISRA C:2012 Rules:
>         If no bits are set, 0 is returned.
>       - Tagged as `safe` for ECLAIR.
> 
> +   * - R10.1
> +     - Applying the unary minus operator to an unsigned quantity has a
> +       semantics (wrap around) that is well-known to all Xen developers.
> +       For this reason, the operation is safe.
> +     - Tagged as `safe` for ECLAIR.

... here, just that this one's getting blurred by using "quantity" when
"type" is meant. Imo we need to be pretty precise here, using terminology
that's used by the standard or the Misra rules, and not anything "coming
close enough" in someone's perception.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 06:57:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 06:57:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.964001.1354877 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7U2R-00081f-L0; Wed, 23 Apr 2025 06:56:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 964001.1354877; Wed, 23 Apr 2025 06:56: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 1u7U2R-00081Y-Hx; Wed, 23 Apr 2025 06:56:55 +0000
Received: by outflank-mailman (input) for mailman id 964001;
 Wed, 23 Apr 2025 06:56: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=rvAI=XJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u7U2Q-00081S-5q
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 06:56:54 +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 228f7f8e-2010-11f0-9ffb-bf95429c2676;
 Wed, 23 Apr 2025 08:56:52 +0200 (CEST)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-43cebe06e9eso49443835e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 22 Apr 2025 23:56:52 -0700 (PDT)
Received: from [10.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-44092d38118sm14150745e9.31.2025.04.22.23.56.50
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 22 Apr 2025 23:56: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: 228f7f8e-2010-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745391411; x=1745996211; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=tKWEaUbZW4TOsQqLn7KnL4yXgc/YZBmsRSo6GnZlJgk=;
        b=GI9hbKm5hIko+pZxDCiOpqO0VXmkyYnQ9A/OuM0oPu7zc7p6TRCGXaOdejG4VmldXE
         dC1sYA217HP3Fh6x883zmTJkZcDE1YS802UkXTsD+YJgDexV7wKiLHWOvPvXxUOUOkid
         gTNsl0LCrrpgTUBs7V3nZUPt4zfbRZou8YWHzEFhXpmrUwuqGjM2+wntXkRHwQZR19nD
         hbVhNPrpTRMCw2JeNmIY8We3tcUrgPIIiDEinNhIQG/OKAnOKidqXOS6dOZkKT1k7nKO
         ZPTXGtjSnStGC5gHNbhKNQRYJGHiOEoyS19PG8+gh/Bv6ZPk9L3rBEbXG54I0/V18p+c
         TtdQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745391411; x=1745996211;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=tKWEaUbZW4TOsQqLn7KnL4yXgc/YZBmsRSo6GnZlJgk=;
        b=V0VnQlAjfu/p3uyBmqfuzy2XI2q0326k5U/bQghP6OHdTeZpmydscxuzdZdtoXB0dE
         LQgf74R3CeXdtIMdyrozyTXBd5VL3iEETZ+YDYigrvQnsqSsSHFGgzJsWeELkk9MnYWi
         oOYPFt9/4LvbNE+tFo6kjwh+Y71jWy2wdDkyd8BIYIYOjfLP387eEKlsEpEpxuxzdDvS
         Jo74sJ0gOuf7+33OWfPmv4MtMiIdg4hOzA3S3z+orQc6ZCSyOGgQaTccPPNP+2bLJJ9k
         avzwE87hqAU6Mq6VmTZ6fZe3I5CY6W9eg4uOT5nbbqGs5EKZsnIvv6/vfoT+mJA6maqs
         uD+Q==
X-Gm-Message-State: AOJu0YxYa47R6dzAjEa3/8sUEnwb29Nx5SrFVA2TeTIj2nKmJSSCr8lb
	RCiPnleFLEol3UQCGDcJig0Y54F/mAyQJrZSfWJe3Wof8z+5UjyHwwya4h559g==
X-Gm-Gg: ASbGnctHLvh5iAYuEMqNqOFASYQAd03XJ8yUmAUD4QVV5sCnMBj+c45ZFSy8m/IPw9F
	HFVo+yMEtPD4Lpbtw0Q7FuHK6tOhfodHODXU5eIznf+aSvg/f0R0FB5utxAWVgm+ALGjLqo5Chd
	udcDf/CHRTHauVkkuhDbK2qGoeqmFCrMjmRtFFicTIJMsudOgUlXn7M09vkuv6DHrziCV0md8Ge
	ycdkmOmqlKQNVSP7NaGtPzwyi4xyi3LciBSEg+SAgMIIp5rsZt3Xy2uLc7xy/5gQ/BdfxhkWWwl
	4tUexO8Z5QncPwg7bQLL06QocTS4DswD27w0E6+uVkpjHa7OYddSoTGJBNjK6i2PNv7QnBiLThk
	4JJvj/+gaxmiy4+RqjYPDemzlcA==
X-Google-Smtp-Source: AGHT+IEFHoeTnD/bfmieebuAEDgnC5/qE86gV3pTAFpfkOXMznGgRE5ZB83Vya7xqM5xoHtpweBIvA==
X-Received: by 2002:a05:600c:4686:b0:43d:26e3:f2f6 with SMTP id 5b1f17b1804b1-4406ab677aamr136877895e9.5.1745391411496;
        Tue, 22 Apr 2025 23:56:51 -0700 (PDT)
Message-ID: <9fca39ed-e3f2-45db-8041-1157eaecd25d@suse.com>
Date: Wed, 23 Apr 2025 08:56:50 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] x86/vmx: Update __vmread() signature
To: dmkhn@proton.me
Cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com,
 roger.pau@citrix.com, dmukhin@ford.com
References: <20250422011530.3010312-1-dmukhin@ford.com>
 <c76427bb-87b4-4c51-a057-1942b9c3d92c@suse.com> <aAgUKi8DadC6ZPMI@starscream>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <aAgUKi8DadC6ZPMI@starscream>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 23.04.2025 00:11, dmkhn@proton.me wrote:
> On Tue, Apr 22, 2025 at 09:56:00AM +0200, Jan Beulich wrote:
>> On 22.04.2025 03:15, dmkhn@proton.me wrote:
>>> From: Denis Mukhin <dmukhin@ford.com>
>>>
>>> Current implementation of __vmread() returns the result via pointer argument
>>> which leads to having excess code in some places.
>>>
>>> Update the signature of __vmread() to return `unsigned long` and drop the
>>> pointer argument as per suggestion in [1].
>>>
>>> Update all call sites everywhere in the VT-x code.
>>
>> You did read Andrew's reply to v1 before posting v2, didn't you?
> 
> I missed to address the function name change request, posted v3:
>   https://lore.kernel.org/xen-devel/20250422215833.522007-1-dmukhin@ford.com/

That was only part of what was asked for. Andrew also gave a pretty clear outline
of how to avoid the need to touch all use sites in one single patch. Plus he
explained why it's better to do this in smaller steps.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 07:05:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 07:05:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.964013.1354887 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7UAf-0001ev-Dt; Wed, 23 Apr 2025 07:05:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 964013.1354887; Wed, 23 Apr 2025 07:05: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 1u7UAf-0001eo-AM; Wed, 23 Apr 2025 07:05:25 +0000
Received: by outflank-mailman (input) for mailman id 964013;
 Wed, 23 Apr 2025 07:05: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=rvAI=XJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u7UAd-0001eg-Ot
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 07:05:23 +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 52c623c3-2011-11f0-9eb0-5ba50f476ded;
 Wed, 23 Apr 2025 09:05:22 +0200 (CEST)
Received: by mail-wr1-x435.google.com with SMTP id
 ffacd0b85a97d-39c266c1389so4460712f8f.1
 for <xen-devel@lists.xenproject.org>; Wed, 23 Apr 2025 00:05:22 -0700 (PDT)
Received: from [10.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-39efa4a4e9esm18059459f8f.96.2025.04.23.00.05.21
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 23 Apr 2025 00:05:21 -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: 52c623c3-2011-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745391922; x=1745996722; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=a0+1s3tUkFfoO4ehvXceXcGnOTliJSXrbWTpkFynidk=;
        b=Za82BahwFu/NE91b01PSeia7K0HjHioVUwnAJTe611teKZyPrLUCJyI/DlUs2nVfXS
         bWRc0yYvr0uzsTnXPkGLI8bPj0zNQFpbbhN80mFlGsCLVDvrCoiJjKTiSrEJNgSIrBlK
         Kkbih6qHV4fqNYYpDG4fxtfKGcXilYVb/BHRjEKwVrJYRvCAQ3iHlrchogWwFJ39LEFI
         oQP20vCgTFpeWkXIJq7ZUHYXEUPHFHXrAeUQ97MagYSyt6F/k0LB9k+eW88adN6tqoQ5
         ZYBg6NQ/PpiZC9bvUcPOv2iYp2X+E3ffLR0DM1AsgLNfAfoOHZ8TVfO6nPDblNIXeSkX
         YWDQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745391922; x=1745996722;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=a0+1s3tUkFfoO4ehvXceXcGnOTliJSXrbWTpkFynidk=;
        b=QfMSY/9S6kZyb0RxGBah3CiguE7NBC2JvwwYbqiG45LHivZkrCTHg9XtFeonH48wV4
         yTYFBqo+hjWiJVmYrFFihIHboGb/qxkBtqkRSnFMg9MkA9ox3ETUvynkXrWGlBGnK3oJ
         HM6e8xu6cbcbMOt8z2yXPOwsJebKr1CrrR+llDHOC8bTuFlbSNgUPGJ/w8JZsLUwSSAS
         4SNu1Fybm22B9MBE3Vo21pLUcbl3m+FSkIWH1AZ/slWXIyuwvqmKT5sB+EXJK5ErK6DI
         TKYaut6WoNGlNaHBKRYJlR95YNHdJbVdWqPHsi/whmEBJQ60iIbxlXKaRu1VcmWFyhpQ
         ETrg==
X-Gm-Message-State: AOJu0YzHvF44qVdPpUAHrSZpdPLr5nGBVJoRbhkE/B4STeuD2YfwGprN
	tnz21RJFDyL+8IWzW+CE6MSUoO4T5RMURQyFEcZZFZ1WjtxK5qx7td8fIb+ecA==
X-Gm-Gg: ASbGncvU4zeYCEAdLd51a0crq2Ozur834oYpPY87w3i72uK0cSEQcHL8AcLmQhUOnJ2
	rxUfIrITLqxi79wUmOSchKCqNvFwecljvDeUcfXKu5hulBWzjRlfOvKaZD7Cdtuc+bsRKOasbAo
	W1LjoRD271fxG9YAw4R9PQaW+Tc/GoPpNOrmRhPBl1Pd60gPPQ5jaLaE0mYKB59ueuzOLy5md+/
	ZWL4AnWRMc/rrBC2OPn/zJ60BECeqQzz1iD79N2hldA4JJNgoY5xXpIUy5oQUnpTJS1BQ7TmQJW
	WRQ5LqvY92Uoxcmw8oBrazsbJ7ukUMxs5JBKcj9mIVbMAvitaBwcR2y8WsMQKX+6gCVkW6d4srp
	49UK+eEvVXRAFxlPsHOl5o0yq7A==
X-Google-Smtp-Source: AGHT+IF5JDifOZtFvUielCXEIdieM3OfuTlUcnfoOIR/xacdmH59s3dpYoxZmGlVbRwuLtT++K4mcw==
X-Received: by 2002:a05:6000:40ce:b0:39c:1257:dba8 with SMTP id ffacd0b85a97d-39efbaf201amr13368014f8f.56.1745391921783;
        Wed, 23 Apr 2025 00:05:21 -0700 (PDT)
Message-ID: <900ffacc-3eb1-4634-92a9-d08d9f89fe83@suse.com>
Date: Wed, 23 Apr 2025 09:05:20 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 2/3] x86/domain: add helpers to simplify emulation
 flags management
To: dmkhn@proton.me
Cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com,
 anthony.perard@vates.tech, julien@xen.org, michal.orzel@amd.com,
 roger.pau@citrix.com, sstabellini@kernel.org, dmukhin@ford.com
References: <20250401005224.461325-1-dmukhin@ford.com>
 <20250401005224.461325-3-dmukhin@ford.com>
 <d21969b3-a48c-4d80-a8a9-5d04b67ed90f@suse.com> <aAgc9H6mxOvnZXk9@starscream>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <aAgc9H6mxOvnZXk9@starscream>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 23.04.2025 00:49, dmkhn@proton.me wrote:
> On Tue, Apr 08, 2025 at 05:23:17PM +0200, Jan Beulich wrote:
>> On 01.04.2025 02:52, dmkhn@proton.me wrote:
>>> From: Denis Mukhin <dmukhin@ford.com>
>>>
>>> Introduce XEN_X86_EMU_BASELINE and XEN_X86_EMU_OPTIONAL to simplify
>>> d->arch.emulation_flags management in the code.
>>
>> If the simplification is limited to ...
>>
>>> --- 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_BASELINE;
>>>  #elif defined (__arm__) || defined(__aarch64__)
>>>      config.arch.gic_version = XEN_DOMCTL_CONFIG_GIC_NATIVE;
>>>  #else
>>
>> ... just this, I'm not convinced that's worth introducing yet two more items
>> into the namespace.
> 
> Sorry, it took me a while to get back to the series.
> 
> The X86_EMU_BASELINE mask is used in two places: in the toolstack (xc.c) and
> in domain.c, emulation_flags_ok(), so adding a new flag may require updates
> in two places.

Which may be even desirable in this case, so effects can be properly considered
at both sites. I wouldn't take it for given that the two will forever need to
stay in full sync.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 07:28:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 07:28:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.964030.1354897 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7UWW-0005Cv-AQ; Wed, 23 Apr 2025 07:28:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 964030.1354897; Wed, 23 Apr 2025 07:28: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 1u7UWW-0005Co-73; Wed, 23 Apr 2025 07:28:00 +0000
Received: by outflank-mailman (input) for mailman id 964030;
 Wed, 23 Apr 2025 07: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=rvAI=XJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u7UWU-0005CN-DT
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 07:27:58 +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 79493fa4-2014-11f0-9eb0-5ba50f476ded;
 Wed, 23 Apr 2025 09:27:55 +0200 (CEST)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-43edecbfb94so62420445e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 23 Apr 2025 00:27:55 -0700 (PDT)
Received: from [10.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-39efa4a4c37sm18182564f8f.98.2025.04.23.00.27.54
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 23 Apr 2025 00:27: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: 79493fa4-2014-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745393275; x=1745998075; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=7ixMe19YdeBJQ2uitWxpI6T12ZsDitAwHbkgXbkqvik=;
        b=FhoNmJqTRcNaESqJWpMWBjzMn7NVo1euHmnns95+rMW2TYfKxfF9twdgxUyVrx/wgt
         JA75X3C6jQ8bQ8EJs3URxnh0jyS2UquWf9h3/fDyyYyGsZOa+pmu3c4uIsKWbcVRzYuL
         xaFuHhrhI2Yu+S0enAptFkZwrcuuP6160iLvTP5VaSva69VSE2GB06qtepgIgrWwEbwi
         +saZvrcZIbHpO2+oVoKUzAo/MIQEUWh+0UoT24spol2X/9iJP2Rv4kuGnXTI6DhzW9Kp
         b3jST4lW1ywIkB+ThXDemMdag5NWscXQvEKaGvM/PpviaRRJ3Y0M4TBmUOeMBCKr3D2v
         DmVw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745393275; x=1745998075;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=7ixMe19YdeBJQ2uitWxpI6T12ZsDitAwHbkgXbkqvik=;
        b=OYoIh7yBviZ6MF5gyGIIDMmacxSdWsLH+xi+X6vn9AU4p6MBDqt3nK/ChdylCRO7S+
         9riXlipGIq9TyRgkzdax/M96+vEDy3ga3e3Drfa3t/VjxGlCbsLM0TNvMBe0mO2shpcw
         Fn7q+svZy4sdHRZJh5/OlxtHwLl67hbxBjJrKHoysqbeJl/6y9jd5uk05xKb0iJILDT/
         JKMO69QLCfxJ4kt9LErd1Aa3aQD6/7G3QTjIMpApiz6NdjPplWcQhP+u0zUJWwwTEWYj
         VSkbCcvKLcO7MLMyOfUPn/nETzHSXZophdZOCb1NosbS2cgAqkZ/h1v4yhPaPeT3aOHt
         9iQQ==
X-Forwarded-Encrypted: i=1; AJvYcCVPV/8O1UJLkVdctE+bshvdcNxxShkgl/y9g2FG45KSRWJ9NGH2BZ3DHclHuQXrPFtdEeaPdlozNi0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzDDYdCeq1YN+s8T8u7Yh+k9KDpWTj3fDO0DOyHem9n9FqPUWNT
	KcoPSzsYxP3dYqwYFZmWIAERR44cOSdHzSUXEfk6vI1xeMRElownqYvvC79SOA==
X-Gm-Gg: ASbGncvDnBZT/c2cxDxWmileiWzhp1tdSX/mlyUMr3X2D8bDD9Nq0XbwfM2d5zCBPSW
	AMd18qAFoDawvcwq91NctKvCRlcX2I6JTa/xUGDHWcX5P8s1grmpi6zrc1m+eoE3+0RecbrmYXv
	TAhNZLKxalaUDyr/mtlO/ZoPNox1i4E11+Azpd+PZGI62NROnzkwhL1mYR1TX34y7FvvqClXBls
	ajKA8E4IOUXJER4ztTRg8w99jPeJRIVYLmRCLyit1dq60auEwy40U3hqh0pHpqcnJILSWBuJppl
	h5OvqiDItyqdBdX/Av3ppNwTxDypAVhmwry34LLQ8APQv4xIHModIa0M3EAkZsvUdX3KD2fC3jQ
	wjfUO0fszsrTE7/fiuGz2ya7xZlUcu8fSRyaR
X-Google-Smtp-Source: AGHT+IFegFTKtYWAbCvK9gH/ClMnsbIfd8gLe9YF8yDRm1IscPOOS8ZqmNIhJt9tiQWSVBwAh3IqpA==
X-Received: by 2002:a05:6000:4285:b0:391:2d61:4561 with SMTP id ffacd0b85a97d-39efba2ad20mr13219494f8f.6.1745393274970;
        Wed, 23 Apr 2025 00:27:54 -0700 (PDT)
Message-ID: <111cb0f8-fe75-4c3f-a310-22f8f95b157f@suse.com>
Date: Wed, 23 Apr 2025 09:27:54 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 03/11] vpci/header: Emulate legacy capability list for
 dom0
To: "Chen, Jiqian" <Jiqian.Chen@amd.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 "Huang, Ray" <Ray.Huang@amd.com>
References: <20250421061903.1542652-1-Jiqian.Chen@amd.com>
 <20250421061903.1542652-4-Jiqian.Chen@amd.com>
 <a60a1843-e15e-495e-98f4-f55b64ab336d@suse.com>
 <PH7PR12MB58541ACB964BC8274D787B8EE7BA2@PH7PR12MB5854.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: <PH7PR12MB58541ACB964BC8274D787B8EE7BA2@PH7PR12MB5854.namprd12.prod.outlook.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 23.04.2025 05:31, Chen, Jiqian wrote:
> On 2025/4/23 00:01, Jan Beulich wrote:
>> On 21.04.2025 08:18, Jiqian Chen wrote:
>>> @@ -759,10 +759,11 @@ static int vpci_init_capability_list(struct pci_dev *pdev)
>>>              PCI_CAP_ID_MSI,
>>>              PCI_CAP_ID_MSIX,
>>>          };
>>> +        const unsigned int *caps = is_hwdom ? NULL : supported_caps;
>>> +        const unsigned int n = is_hwdom ? 0 : ARRAY_SIZE(supported_caps);
>>>  
>>>          next = pci_find_next_cap_ttl(pdev->sbdf, PCI_CAPABILITY_LIST,
>>> -                                     supported_caps,
>>> -                                     ARRAY_SIZE(supported_caps), &ttl);
>>> +                                     caps, n, &ttl);
>>
>> As per the v3 adjustment to patch 02, you can pass supported_caps here in
>> all cases. Only n needs to be zero for the hwdom case.
> Oh, right. I will change in next version.

And, at the risk of stating the obvious, a brief comment might be a good
idea here.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 07:37:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 07:37:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.964041.1354906 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7UfB-00071K-3G; Wed, 23 Apr 2025 07:36:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 964041.1354906; Wed, 23 Apr 2025 07:36: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 1u7UfB-00071D-0i; Wed, 23 Apr 2025 07:36:57 +0000
Received: by outflank-mailman (input) for mailman id 964041;
 Wed, 23 Apr 2025 07:36: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=rvAI=XJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u7UfA-000717-NC
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 07:36:56 +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 bb3d6eee-2015-11f0-9eb0-5ba50f476ded;
 Wed, 23 Apr 2025 09:36:55 +0200 (CEST)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-43d0359b1fcso4207495e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 23 Apr 2025 00:36:55 -0700 (PDT)
Received: from [10.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-44092d38118sm15274055e9.31.2025.04.23.00.36.54
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 23 Apr 2025 00:36: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: bb3d6eee-2015-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745393815; x=1745998615; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=8rHK8KnFBR82+PT/i3XQgLJauzpZq8SJMBnvWoUsEKQ=;
        b=fLZ6qDnBNc2kXeZarze5+aYr+C9wpCVPosAdIZgkeB2gVnGC2LJk1J4fPzsATrLYsp
         WvDMbNKP2dEApPM/DIQ+E8vMKMy44KnfZS4uT+JqPw6R6RQINDJOfgGXojSn7GU5bbM/
         X57c8drwjpRnycTCNCm4cj2i9fiEJeJlMuBpmscOsGuTjL0fFjpxMJPYmtuJSz153ZnO
         5p35IwcJUUknhcWpzNnMIIPP2eerTVj8MQu/DPuB/0tuG4Y66chSlBRKExpj7LP65vAv
         wYp1wUpQM1LjrcHJ5pYCHDaQ7CKVTd11f90120BJqvw04Rb6rGjsxQa03CVJEefwfz+S
         tZNw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745393815; x=1745998615;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=8rHK8KnFBR82+PT/i3XQgLJauzpZq8SJMBnvWoUsEKQ=;
        b=NzuofBpeD/XOVPULF1KcfzsSVOCqa+rgnWYNN3B7hcjXExKs8I/pe/GPe7e1zQ1oK8
         CxO/3CBRjBmxxPulnf4zQrQ5NH1qTLtL6ndzcyGgQMTghacXtTlBOhq4vxODpGVc3U8O
         2q1jw3F/V7c7T7hgUxzifh5DvzyMOaCRjwKW9DldLEonNAtC5ju7vsCBv1X2et6VHdRb
         UiBFAMY2/1DqlTMsFvWVVP5fNJO67N1g029P6bTKCHS9uPwmUBAOqt4lqouRGeNuhC/8
         5fskL1C/3hDJK0iRFYIlYsHu67Vu9DJPUTeQXUt3EJM0gJDn/d8/LQhMv+8x1TNGOxwM
         /iJw==
X-Forwarded-Encrypted: i=1; AJvYcCUpkWxUQh6XYNFVeiUusvIjpuTQPoFpU1113MxQRlG+vvx2+yeg0Qcm67RpiBcfqcA0hduMHL4EeHY=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx8NK6BYGYpYPIQm7Pjrxp82haKsgAQLwxzNLBE1qZOKQOBzyET
	fI4zxBQbnNX2Ty0zOTTGRVwMd+BfEV/Y+fUm/xyYF3m37Oj4NchAhDZctp1NTQ==
X-Gm-Gg: ASbGnctV4wWhuNwIzcS/6Z4+04XkrFghDkMWsm1Rrs/drExPpo9GGQnJy5RGueX6Asd
	T8b9bIbfmQM+Tud9Q0EJcZbt1rZpfH5WvfJg1fjMeFsZApMeooPyFAGgP9Y1mTbF5bdGNYIarMs
	bDm+N/i72PoNa+2BT7o5I0RhqDRXGvdlLp3xpCr39iVqVLfieNx5La9dfF+jTcEin4mv2KiBgrY
	FFlB0HhTBrQ6HF/5WKAO/0+vU+zMIfaBxbKy2pA9DJKUJfL33W2bijPslevxHlm9DGe0fU/XpRx
	ge7M9tl1nc/yg1Qjd2etcws2W/ewpKWb0EoQ9xTDmcb9MYociCq0UZw/zy5AwJbt+CJhx4RW7jB
	FeaNj467Scik9GCjxZAbXfRk3LA==
X-Google-Smtp-Source: AGHT+IEm7Mu0vbbOJcnfO8HoM1qnyx6TMAwSBdqOMnvnXlIb83llvTDDJIzWqYe4Q/wtsP04pYv3dw==
X-Received: by 2002:a05:600c:4e0a:b0:439:5f04:4f8d with SMTP id 5b1f17b1804b1-44091f1facdmr13679955e9.12.1745393815153;
        Wed, 23 Apr 2025 00:36:55 -0700 (PDT)
Message-ID: <04289258-7316-4c07-96a3-b74a0089e861@suse.com>
Date: Wed, 23 Apr 2025 09:36:53 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 05/11] vpci: Refactor REGISTER_VPCI_INIT
To: "Chen, Jiqian" <Jiqian.Chen@amd.com>
Cc: "Huang, Ray" <Ray.Huang@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 "Orzel, Michal" <Michal.Orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20250421061903.1542652-1-Jiqian.Chen@amd.com>
 <20250421061903.1542652-6-Jiqian.Chen@amd.com>
 <545079b5-7159-4f47-8100-df387fffe57a@suse.com>
 <PH7PR12MB585404EEEC765754A3DE458FE7BA2@PH7PR12MB5854.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: <PH7PR12MB585404EEEC765754A3DE458FE7BA2@PH7PR12MB5854.namprd12.prod.outlook.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 23.04.2025 05:49, Chen, Jiqian wrote:
> On 2025/4/23 00:03, Jan Beulich wrote:
>> On 21.04.2025 08:18, Jiqian Chen wrote:
>>> Refactor REGISTER_VPCI_INIT to contain more capability specific
>>> information, this is benifit for follow-on changes to hide capability
>>> which initialization fails.
>>>
>>> What's more, change the definition of init_header() since it is
>>> not a capability and it is needed for all devices' PCI config space.
>>>
>>> Note:
>>> Call vpci_make_msix_hole() in the end of init_msix() since the
>>> change of sequence of init_header() and init_msix().
>>> The fini hook will be implemented in follow-on changes.
>>>
>>> Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
>>
>> From the description I can't derive the need for ...
>>
>>> --- a/xen/include/xen/xen.lds.h
>>> +++ b/xen/include/xen/xen.lds.h
>>> @@ -187,7 +187,7 @@
>>>  #define VPCI_ARRAY               \
>>>         . = ALIGN(POINTER_ALIGN); \
>>>         __start_vpci_array = .;   \
>>> -       *(SORT(.data.vpci.*))     \
>>> +       *(.data.vpci.*)     \
>>>         __end_vpci_array = .;
>>>  #else
>>>  #define VPCI_ARRAY
>>
>> ... this change.
> As I understand this, this is used for initializing all capabilities according to priority before.
> That is msix > header > other capabilities.
> My patch removes the priority and initializing all capabilities doesn't depend on priority anymore.
> So I think this is not needed anymore.

Perhaps, but the word "priority" doesn't even appear in the description. So
yes, ...

> Do you mean I should add some explanation in the commit message?

... there's something to add there. But there's also the question of why the
change doesn't go further: With the SORT() dropped, what's the trailing .*
in the section name for? That's apparently connected to the puzzling

+  static vpci_capability_t *const x##_entry  \
+               __used_section(".data.vpci.") = &(x##_t)

What's the trailing dot for here?

(As a nit - I also don't see why x##_t would need parenthesizing when
x##_entry doesn't. Is there another Misra gem which makes this necessary?)

Jan


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 07:42:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 07:42:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.964053.1354917 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7UkF-0000QI-MP; Wed, 23 Apr 2025 07:42:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 964053.1354917; Wed, 23 Apr 2025 07:42: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 1u7UkF-0000QB-JH; Wed, 23 Apr 2025 07:42:11 +0000
Received: by outflank-mailman (input) for mailman id 964053;
 Wed, 23 Apr 2025 07:42: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=ZaJ6=XJ=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u7UkE-0000Q5-Nk
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 07:42:10 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7563b1f1-2016-11f0-9eb0-5ba50f476ded;
 Wed, 23 Apr 2025 09:42:09 +0200 (CEST)
Received: from [192.168.7.202] ([71.202.166.45]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53N7efcj3105192
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NO);
 Wed, 23 Apr 2025 00:41:21 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7563b1f1-2016-11f0-9eb0-5ba50f476ded
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53N7efcj3105192
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745394085;
	bh=6GdmFpMZgynlN0+8/dR5L54gssO+r5xFLscuv7Zb+Vs=;
	h=Date:Subject:To:Cc:References:From:In-Reply-To:From;
	b=ht8Pg4C2x78BenMmhZHdlstOae3d80RJunxbx/Cvdsa9Ng1sweJyhq1qZe74uad8w
	 dHIUkIaWpBwuEpEQXpNTzZstGa5HP1LuibQWsRATlidlNhOkvy0MIlrog/VWtzXAtz
	 iLAft/hoYaZa+I3d3ZuooQk2COryT2hVxNfUJCgHWslPfgG0MkXcQL1z8/s+UH5PeL
	 gb+2hbsIwrgPCaQZfJBxkbSwSmLHKEpQNdet6O8uEfcXydqh1elJk/5c7nEHD20WPV
	 eqeeCqMeQgCc7w45x4no+uWwxrEjeXlIz4D82w4Q141GaNuvo9afJ+SLxKkWxA61fx
	 KcYJYI7GY7/WQ==
Message-ID: <9268e169-554d-43c8-a00c-f43c274f6116@zytor.com>
Date: Wed, 23 Apr 2025 00:40:40 -0700
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH v2 06/34] x86/msr: Use the alternatives mechanism to
 read PMC
To: Juergen Gross <jgross@suse.com>, linux-kernel@vger.kernel.org,
        kvm@vger.kernel.org, linux-perf-users@vger.kernel.org,
        linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
        linux-pm@vger.kernel.org, linux-edac@vger.kernel.org,
        xen-devel@lists.xenproject.org, linux-acpi@vger.kernel.org,
        linux-hwmon@vger.kernel.org, netdev@vger.kernel.org,
        platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        acme@kernel.org, andrew.cooper3@citrix.com, peterz@infradead.org,
        namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com
References: <20250422082216.1954310-1-xin@zytor.com>
 <20250422082216.1954310-7-xin@zytor.com>
 <fbb509e8-0bd6-480f-be32-fd0895255a21@suse.com>
 <a482b4df-f662-4d5d-8100-ade07afcdc24@zytor.com>
 <bfeba521-0a49-42d0-bf83-15d031dfc6da@suse.com>
Content-Language: en-US
From: Xin Li <xin@zytor.com>
Autocrypt: addr=xin@zytor.com; keydata=
 xsDNBGUPz1cBDACS/9yOJGojBFPxFt0OfTWuMl0uSgpwk37uRrFPTTLw4BaxhlFL0bjs6q+0
 2OfG34R+a0ZCuj5c9vggUMoOLdDyA7yPVAJU0OX6lqpg6z/kyQg3t4jvajG6aCgwSDx5Kzg5
 Rj3AXl8k2wb0jdqRB4RvaOPFiHNGgXCs5Pkux/qr0laeFIpzMKMootGa4kfURgPhRzUaM1vy
 bsMsL8vpJtGUmitrSqe5dVNBH00whLtPFM7IbzKURPUOkRRiusFAsw0a1ztCgoFczq6VfAVu
 raTye0L/VXwZd+aGi401V2tLsAHxxckRi9p3mc0jExPc60joK+aZPy6amwSCy5kAJ/AboYtY
 VmKIGKx1yx8POy6m+1lZ8C0q9b8eJ8kWPAR78PgT37FQWKYS1uAroG2wLdK7FiIEpPhCD+zH
 wlslo2ETbdKjrLIPNehQCOWrT32k8vFNEMLP5G/mmjfNj5sEf3IOKgMTMVl9AFjsINLHcxEQ
 6T8nGbX/n3msP6A36FDfdSEAEQEAAc0WWGluIExpIDx4aW5Aenl0b3IuY29tPsLBDQQTAQgA
 NxYhBIUq/WFSDTiOvUIqv2u9DlcdrjdRBQJlD89XBQkFo5qAAhsDBAsJCAcFFQgJCgsFFgID
 AQAACgkQa70OVx2uN1HUpgv/cM2fsFCQodLArMTX5nt9yqAWgA5t1srri6EgS8W3F+3Kitge
 tYTBKu6j5BXuXaX3vyfCm+zajDJN77JHuYnpcKKr13VcZi1Swv6Jx1u0II8DOmoDYLb1Q2ZW
 v83W55fOWJ2g72x/UjVJBQ0sVjAngazU3ckc0TeNQlkcpSVGa/qBIHLfZraWtdrNAQT4A1fa
 sWGuJrChBFhtKbYXbUCu9AoYmmbQnsx2EWoJy3h7OjtfFapJbPZql+no5AJ3Mk9eE5oWyLH+
 QWqtOeJM7kKvn/dBudokFSNhDUw06e7EoVPSJyUIMbYtUO7g2+Atu44G/EPP0yV0J4lRO6EA
 wYRXff7+I1jIWEHpj5EFVYO6SmBg7zF2illHEW31JAPtdDLDHYcZDfS41caEKOQIPsdzQkaQ
 oW2hchcjcMPAfyhhRzUpVHLPxLCetP8vrVhTvnaZUo0xaVYb3+wjP+D5j/3+hwblu2agPsaE
 vgVbZ8Fx3TUxUPCAdr/p73DGg57oHjgezsDNBGUPz1gBDAD4Mg7hMFRQqlzotcNSxatlAQNL
 MadLfUTFz8wUUa21LPLrHBkUwm8RujehJrzcVbPYwPXIO0uyL/F///CogMNx7Iwo6by43KOy
 g89wVFhyy237EY76j1lVfLzcMYmjBoTH95fJC/lVb5Whxil6KjSN/R/y3jfG1dPXfwAuZ/4N
 cMoOslWkfZKJeEut5aZTRepKKF54T5r49H9F7OFLyxrC/uI9UDttWqMxcWyCkHh0v1Di8176
 jjYRNTrGEfYfGxSp+3jYL3PoNceIMkqM9haXjjGl0W1B4BidK1LVYBNov0rTEzyr0a1riUrp
 Qk+6z/LHxCM9lFFXnqH7KWeToTOPQebD2B/Ah5CZlft41i8L6LOF/LCuDBuYlu/fI2nuCc8d
 m4wwtkou1Y/kIwbEsE/6RQwRXUZhzO6llfoN96Fczr/RwvPIK5SVMixqWq4QGFAyK0m/1ap4
 bhIRrdCLVQcgU4glo17vqfEaRcTW5SgX+pGs4KIPPBE5J/ABD6pBnUUAEQEAAcLA/AQYAQgA
 JhYhBIUq/WFSDTiOvUIqv2u9DlcdrjdRBQJlD89ZBQkFo5qAAhsMAAoJEGu9DlcdrjdR4C0L
 /RcjolEjoZW8VsyxWtXazQPnaRvzZ4vhmGOsCPr2BPtMlSwDzTlri8BBG1/3t/DNK4JLuwEj
 OAIE3fkkm+UG4Kjud6aNeraDI52DRVCSx6xff3bjmJsJJMb12mWglN6LjdF6K+PE+OTJUh2F
 dOhslN5C2kgl0dvUuevwMgQF3IljLmi/6APKYJHjkJpu1E6luZec/lRbetHuNFtbh3xgFIJx
 2RpgVDP4xB3f8r0I+y6ua+p7fgOjDLyoFjubRGed0Be45JJQEn7A3CSb6Xu7NYobnxfkwAGZ
 Q81a2XtvNS7Aj6NWVoOQB5KbM4yosO5+Me1V1SkX2jlnn26JPEvbV3KRFcwV5RnDxm4OQTSk
 PYbAkjBbm+tuJ/Sm+5Yp5T/BnKz21FoCS8uvTiziHj2H7Cuekn6F8EYhegONm+RVg3vikOpn
 gao85i4HwQTK9/D1wgJIQkdwWXVMZ6q/OALaBp82vQ2U9sjTyFXgDjglgh00VRAHP7u1Rcu4
 l75w1xInsg==
In-Reply-To: <bfeba521-0a49-42d0-bf83-15d031dfc6da@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 4/22/2025 2:28 AM, Juergen Gross wrote:
> 
> I have worked rather hard to make it less intrusive, especially by removing
> the paravirt specific code patching (now all done via alternative patching)
> and by removing 32-bit Xen PV mode.

I looked at the optimization, and it is a nice improvement.


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 07:55:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 07:55:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.964066.1354935 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7Uwx-0002VL-TE; Wed, 23 Apr 2025 07:55:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 964066.1354935; Wed, 23 Apr 2025 07:55: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 1u7Uwx-0002VE-Pc; Wed, 23 Apr 2025 07:55:19 +0000
Received: by outflank-mailman (input) for mailman id 964066;
 Wed, 23 Apr 2025 07:55: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=rvAI=XJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u7Uww-0002Ur-FW
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 07:55:18 +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 4aa16109-2018-11f0-9eb0-5ba50f476ded;
 Wed, 23 Apr 2025 09:55:15 +0200 (CEST)
Received: by mail-wr1-x42f.google.com with SMTP id
 ffacd0b85a97d-3913b539aabso3686619f8f.2
 for <xen-devel@lists.xenproject.org>; Wed, 23 Apr 2025 00:55:15 -0700 (PDT)
Received: from [10.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-44092db2a5dsm16089245e9.25.2025.04.23.00.55.13
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 23 Apr 2025 00:55: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: 4aa16109-2018-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745394915; x=1745999715; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=t4ZCuxQDRrbdVsQp22J/Ijjbwj5SVIATjwuGtImoXqA=;
        b=eCMi25ghi/0alNXKNKNjPtxMo99ziE9BvLetb7hoVQICgBQxbSClKHQFxNiwOWrWVV
         QUai3dBbC1OUfDWJNsNr26GF5no/tPB85aH/O7aasrjH6YNZiGeoXW2LAVHwKK8C2SWt
         KQ55h0zv9yuc9kTcDvFk+2IqWypJb+iCRlUXu3MeFxm7iHJojSVytMX8RqmuveC6W1HU
         r7BlBgzRdjkAQCvj5t1aJ7CawOijbBtB1CrfM2vr7cHcfguQRZnj2nXFboIp3zw4KxLh
         7ou8INMzmzUh4QFu7uC7B1lhvSTPPgb7wEY6KOnxu44FOnWZAY1WEBidr+2R9UNBLByf
         mk+g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745394915; x=1745999715;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=t4ZCuxQDRrbdVsQp22J/Ijjbwj5SVIATjwuGtImoXqA=;
        b=dD4S5iyzTEeo4M6S0raZHkalau3pLTLeFZCewiH8wVLgiTbsk0hUiNiC6tcedQ6iT3
         eKqmNr+Cy0T6e6FBqX8UnVpgVfdl8hE9xhGrOrxUyeu0kUqSDobYZUNQ7b0GYWkJlPgy
         8IGYCQPZHpN+n6vFPjyUcZC0XC8Q5D09zLinMzNWyPMeOB5joQMjlJkqyUV4zfP32cLR
         K267kcQJkUfUjoU5vB27XeK+IZGXHSytiJClGYPGSXUHOKdezpztusrWqxgwyx4iPS3K
         36gDisgSXMSree0OxvCcerVUL//wo1rasX807PYwkwUSf86Z8M/b9VqNdow/1J9frfnL
         MuFQ==
X-Forwarded-Encrypted: i=1; AJvYcCUu3BuLo9mrYFv0kl6gkn08r5W7CSUPBelkx8grsrIeKsLO9luOB1lM5cSte4RFYv0wtMra5vIH4rU=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzu1ev/mqDd4SpUv6g8wCUSS2BlGMZFpbptNdh9h8Tz+77ylh5Z
	hhb5CxwgYbRxhLYd4y6YSb6MZ5omJ1DGZyxbb6Hmz+ybxTdeApJICRJCoYyHQQ==
X-Gm-Gg: ASbGncstHO3kNtT2Eeh0BlIZzs+FO0mAIHI0u2wXE3KQzteoSpEMHyNANnZUrtgjN9N
	M/huVSMuGFYvhEdz4iXhJW883ODUhJIdeU9vNncsFBE56fUTCOU8rAJOmNDjRoDtOtVPCdqdC8T
	EwpEqLX1h873nqA9/KLrRtEAWvd53RV7SqWP7nL9Ojmi39IP1JRvwaRv2Gh4hlxMrk4rUuOkBps
	rG/h0KYmgcg+/iGvI9k7eh/1cXNkYQ7uX6EjghVU5M4VjPmp5uuTWiUVCecUsqdDOrTSnSHWuBU
	9OvA1AVNcAhT7iuVqtccwcxK8fENrjPzHszlt62Zv9Ge9yR6fLDow6Fp9m5VTBN2hBDuOS+MTlg
	iot3rDDxO5Ai/rHqi0anKG5IlhQ==
X-Google-Smtp-Source: AGHT+IHAJZh8hqH5z631ZY6VmyO864FHgBK//ePIg8Z8Prcq7xubsWRHHihyJ6YtU4oPKK3i0c5Tdg==
X-Received: by 2002:a05:6000:4021:b0:39c:1a86:e473 with SMTP id ffacd0b85a97d-39efbb22a85mr13974294f8f.56.1745394914821;
        Wed, 23 Apr 2025 00:55:14 -0700 (PDT)
Message-ID: <7968d149-1577-483e-a020-40e61e741e40@suse.com>
Date: Wed, 23 Apr 2025 09:55:13 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/8] x86/altcall: Split alternative-call.h out of
 alternative.h
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "consulting @ bugseng . com" <consulting@bugseng.com>,
 Nicola Vetrini <nicola.vetrini@bugseng.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250423010237.1528582-1-andrew.cooper3@citrix.com>
 <20250423010237.1528582-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: <20250423010237.1528582-2-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 23.04.2025 03:02, Andrew Cooper wrote:
> ... in preparation for changing how they're implemented.
> 
> Update the MISRA deviations with the new path.
> 
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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




From xen-devel-bounces@lists.xenproject.org Wed Apr 23 07:56:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 07:56:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.964075.1354949 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7Uxf-00030k-70; Wed, 23 Apr 2025 07:56:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 964075.1354949; Wed, 23 Apr 2025 07:56: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 1u7Uxf-00030d-2x; Wed, 23 Apr 2025 07:56:03 +0000
Received: by outflank-mailman (input) for mailman id 964075;
 Wed, 23 Apr 2025 07:56: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=rvAI=XJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u7Uxd-0002Ur-BV
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 07:56: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 65b6be1d-2018-11f0-9eb0-5ba50f476ded;
 Wed, 23 Apr 2025 09:56:00 +0200 (CEST)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-43cf034d4abso55790245e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 23 Apr 2025 00:56:00 -0700 (PDT)
Received: from [10.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-44092db2a5dsm16115775e9.25.2025.04.23.00.55.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 23 Apr 2025 00:55: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: 65b6be1d-2018-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745394960; x=1745999760; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Qb5lYHElq4DPNQ9U808CMoku4SALXDZOjYnFSKaeghw=;
        b=B1/d1EU02InCdUZfuqG/7y21/PinR15JGXg+tNL4+Fm1nsX+Pq5IM7YLoNHsrLuDxW
         2LQj99xfxARBb0dMZSVJkhhtmGsAoftSZCgf/ZbuJpyXWdk0ZIUI3sQ9kRcVuOPKr8j3
         6idi57wAB7BBBrEKVP0GuOUUDLu4A/idZf9AuoZ7W/+ExluhCAwm8GrnU3/QAlk2KJhz
         O0dMLOhKrXWhxH84IqSlkC4KoxdUyUmAZaqYRUPLXXswKS43l1FdL5Zc7qLcs34DMGSq
         ZE1g7SaHkL3P0tvbG042AuCZJ82PelY+dF9I37TsxFCCIH01fg8w/uzKt7z0V9rUjefI
         PzaQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745394960; x=1745999760;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Qb5lYHElq4DPNQ9U808CMoku4SALXDZOjYnFSKaeghw=;
        b=WceXEezMFdb5CzQX2BJ1447twzrtMLr3TK05k/2TAUtfrUJPWYDHN+jQ5aoZF1NreX
         yXIbJp0oNvqcUNBzf4ngl2Etqw+cLMuNRPFE28vUPNhSa6zHtq4zHJv0Z6/boQ19ZVJp
         DdLEWF2ra1ErwdF6iI9Qs1Z/f8/No8SbDEgTqhRPhxHiSIaDDE7wLju+/zRkJEtB+zR9
         8xQ3Ob9bupfq6T3Xy23KmbnUhNrHlw4ObDC6K833iq5v37s0sQ//KmBtKShc492htGL8
         mSoDVQO2AxHH4+6mNQemdBpESMFOMwtFvoha4eAQkQrBs0OF1jzZXSKGqROHdGZLYVtw
         MVWA==
X-Forwarded-Encrypted: i=1; AJvYcCUAGGPjbMdGobEYD6KOnh/v5tfPS4V8NGDkmMewScRt1MMIJc1+bgr5j7xVY3CtQqPgsVNjJFGgsRI=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy7Y79E13dRNWyJtx6rlxHJSEyn9+a/nWuNNCeRgxzFtvt1gX5r
	juGF+9vpyrUHSuA2YRTjC7nDU1X0T7fx9xTOxAPS9+pnJupoBzZM6QDNHdkeuw==
X-Gm-Gg: ASbGnctq1DxJCQrQJSJmo3l+1FcFl5m9uhcPyb7WONTHX+H+8MZFZjKek+Gl0FLnZAk
	/wbmRIx5MYqDPnm4eH+4oIN8MoaOdBiU3p5VJ9uxqBjZm+ZNZ8lsELG1DJKUHMLZT5LieYvR30g
	cAL5n4xSNa2yWH6o6tSBBhCZBqQ6Qf5xRM5JnBFPCBzgFM7sasgeDET2HJmGjn7pZgZivvdZp5n
	A3hg6XX9K7cqpF0H83NuHtQNJqOKRZSq4eHO509nTPIvT1T6IdckMgmCP4mXQ0Sfw7KBZ/9vQm5
	tw6TWL9jyehOEbdl5M2pCOxz6OkSY0cy2K92kUOzjYrsYHtYSVMG/h8B9TCBfAfsngOLDLFcZnq
	w0dYpLLsUzVSbHJXBBpu//aJ+Tg==
X-Google-Smtp-Source: AGHT+IG4+7iWA2XF+jF80k0Z52o5cEg2tuVkr5LII43MD1vnAAayI0oyG07nHbyiI9Sm74E+fO91TA==
X-Received: by 2002:a05:600c:154a:b0:43c:eec7:eab7 with SMTP id 5b1f17b1804b1-4406ab9858amr159387545e9.11.1745394960157;
        Wed, 23 Apr 2025 00:56:00 -0700 (PDT)
Message-ID: <d07bc1b5-24ba-4a6d-bbc1-11a81b7c94de@suse.com>
Date: Wed, 23 Apr 2025 09:55:59 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/8] x86/altcall: Rename alternative_branches() to
 boot_apply_alt_calls()
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: <20250423010237.1528582-1-andrew.cooper3@citrix.com>
 <20250423010237.1528582-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: <20250423010237.1528582-3-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 23.04.2025 03:02, Andrew Cooper wrote:
> The alternatives APIs are not great; rename alternative_branches() to be more
> precise.  Centralise the declaration in xen/alternative-call.h, in the
> expectation that x86 won't be the only user in the long term.
> 
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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




From xen-devel-bounces@lists.xenproject.org Wed Apr 23 08:06:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 08:06:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.964093.1354959 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7V7X-0005iU-8N; Wed, 23 Apr 2025 08:06:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 964093.1354959; Wed, 23 Apr 2025 08: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 1u7V7X-0005iN-5J; Wed, 23 Apr 2025 08:06:15 +0000
Received: by outflank-mailman (input) for mailman id 964093;
 Wed, 23 Apr 2025 08: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=rvAI=XJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u7V7W-0005iF-6b
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 08:06:14 +0000
Received: from mail-wr1-x434.google.com (mail-wr1-x434.google.com
 [2a00:1450:4864:20::434])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id cd3e1288-2019-11f0-9ffb-bf95429c2676;
 Wed, 23 Apr 2025 10:06:04 +0200 (CEST)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-391342fc0b5so4988015f8f.3
 for <xen-devel@lists.xenproject.org>; Wed, 23 Apr 2025 01:06:04 -0700 (PDT)
Received: from [10.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-39efa4330casm17638567f8f.22.2025.04.23.01.06.02
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 23 Apr 2025 01:06: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: cd3e1288-2019-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745395563; x=1746000363; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=S9Pg5n5h4ZV9IY9mDeyUobCy60JGXOGx+sidZcbIJws=;
        b=c1qyhA9ioa4IfxtDA8d6D4yZ9iRLuOgCIzZkr8iBoTOVnKLQparNS+TDYrdtKXF5NR
         9dN2Do/1uhSMwjVffnw8vQK5v5f0hLaaW2qzTygFx0jw6DA+LyUbYg8OaXiRfaZC8GM3
         7IscF0j2uWVdQaR3sPyn7EtO3BZwOEAGWTAEg50hL3+3jQtqYFrscu3lQshNKzrpjwsd
         2dj0VHRk88kAjVe5b2VPy2h/vnA0+AyY03ezjSa+7hg3YR6ONRBwXGnGDnFDtI86B9RD
         eBi7fXdNFKtYiwcrEs4LkZxVwWRRa7UM7e8rNCARhG3fjaRqR33JKCH/8L+7/PB/pD0H
         3+5w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745395563; x=1746000363;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=S9Pg5n5h4ZV9IY9mDeyUobCy60JGXOGx+sidZcbIJws=;
        b=i6qnRaKtUBnKvu54S+PCIu54qa06qBZtkXYCpC3AUds8rMWSi1ICFtFO5hfm1yYz0v
         IOxfXv5E+bLAkGdFTtqkVaie7btj1wJFaHyYloU+mpakkv0LaZycemW7UTUxhYDa+XAM
         SfVfGguVLf0ATeZ3s8IHRg3DjwBFg67UEIW7bHF9/vtmgaYJMVDVi6bqXLj8ESYjp5If
         CgJDgRuU3oWHce5ao/xP+39Sb4PMkuEGKTwfl4YTGU4JjuoUMZ/33doOGQAQBYmfzJi4
         RdHb1xSb8ZvhZssiRgs6j7zZPxgQRRTE1/XwGdaapMwnb619yMU5q22BLgB/v1Ws43Av
         1mLg==
X-Forwarded-Encrypted: i=1; AJvYcCV2wC8zsxD+U36sMWEEGpHwPFQCzgXZQzxcRizKkrbOBajbmbrtu0pdKIJkiO/lcrlR4sQXQ4W8nJc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyhN95jSSajn54lm5Kh8iiLAR90oubeujBRu1dPBv2GJR+4xoAP
	pTd7y9tIOL1cmOLkVA3sJc8POmOzwBO4pM4aw2zMbgfhYldDGnm0NzOfC2dDMA==
X-Gm-Gg: ASbGnctlRV6nm0hhNWyyvwv9z3DuQS/RmW/qvIouaaIGv+OoLr6BTkOWJ14EP88qqT+
	UXzPNdE6xkb7byUBlKv1IcYURl6QXx3YnRpft9AYJs92HEOCXvjs90oViT6FhP5vGndFEO/VQI/
	QHGZVdV3N2zzAugV6NcYUNnZeNGSpSh5qW0lNColq+oy9tjkH9lYMBhXIUhQjuwQv4Q6zo0QNC1
	Alvn6X0JD0qwO5Plpb7OGF1lp42eKzqSHQaETwzbNv7zi6ZIKXvOD9jD4Mpa8zSruXo3Po+BkuN
	3A2nOFf60y4JGaSS9kOCv5K8aQpLagPqE+giyY61/PGm57g+ItidVxmNBkYOQZv3gnVaEZR8A1E
	bMjXPS5iHFGT0EmoL03LDRcNU0w==
X-Google-Smtp-Source: AGHT+IEOa/txAdFhAUHySvbC4/jy7l4N0QaAOZpSpuK5PeB+4XWP7Dd+qoTA+2l0oC0PW0j8hqydcA==
X-Received: by 2002:a05:6000:4284:b0:39c:2678:302e with SMTP id ffacd0b85a97d-39efbae5c77mr15690563f8f.45.1745395563428;
        Wed, 23 Apr 2025 01:06:03 -0700 (PDT)
Message-ID: <d16d1bc9-4f38-42bc-93c8-39ec0f319a56@suse.com>
Date: Wed, 23 Apr 2025 10:06:02 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 3/8] x86/alternatives: Rework information passing into
 nmi_apply_alternatives()
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: <20250423010237.1528582-1-andrew.cooper3@citrix.com>
 <20250423010237.1528582-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: <20250423010237.1528582-4-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 23.04.2025 03:02, Andrew Cooper wrote:
> nmi_apply_alternatives() is soon going to need to dispatch to multiple
> functions, and a force parameter is not a good way of passing information.
> 
> Introduce ALT_INSNS and ALT_CALLS to pass in at the top level to select the
> operation(s) desired.  They represent what will happen when we've separated
> the altcalls out of the general alternative instructions infrastructure,
> although in the short term we still need to synthesise the force parameter for
> _apply_alternatives().
> 
> Move two externs to reduce their scope a little.
> 
> 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 Wed Apr 23 08:07:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 08:07:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.964102.1354969 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7V8O-0006Ci-HQ; Wed, 23 Apr 2025 08:07:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 964102.1354969; Wed, 23 Apr 2025 08:07: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 1u7V8O-0006CZ-ED; Wed, 23 Apr 2025 08:07:08 +0000
Received: by outflank-mailman (input) for mailman id 964102;
 Wed, 23 Apr 2025 08:07: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=rvAI=XJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u7V8N-0005iF-Ao
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 08:07:07 +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 f207dbd4-2019-11f0-9ffb-bf95429c2676;
 Wed, 23 Apr 2025 10:07:05 +0200 (CEST)
Received: by mail-wr1-x42c.google.com with SMTP id
 ffacd0b85a97d-39c31e4c3e5so4170338f8f.0
 for <xen-devel@lists.xenproject.org>; Wed, 23 Apr 2025 01:07:05 -0700 (PDT)
Received: from [10.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-44092d2e97dsm16476425e9.18.2025.04.23.01.07.04
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 23 Apr 2025 01:07:04 -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: f207dbd4-2019-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745395625; x=1746000425; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=9EPSxuyRd01dx1UGB1aiX/96D5ARixBWeVTUGFCaaB4=;
        b=Ijob6dh74gOEUN2tfCYXCFpyiBVbsBvmEQXipacM2xLoB9m1X841cvavDWj4+I6QLF
         Q2bVxHmwuzrpEMf8W3mCGVaP0WcmYCum2fvh4WRjUGK5go8CIHvtEVWhVFbPWg/ylILS
         knu/eXKfTD1M73oD/7AEKJ+UuU22+W5OdeKUS5zqGnghS0BBM3ErNHwFDIItPOXpk0o1
         YjTZxhbcfGmzj2g0lbUgbyD3pRkzDxa3UjciqbWATS5u7wrppmEi+DSDOyiwxB/nd4/V
         ofeR+UzIdzscOIbvNbV28Odp961VrqOYls5iASazym3a0LP56neHO1G23fSkKLRlwXmZ
         Zbag==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745395625; x=1746000425;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=9EPSxuyRd01dx1UGB1aiX/96D5ARixBWeVTUGFCaaB4=;
        b=kfjBw/e5aDmaa1/+UHNq9fSYobxEOyLwzHjh2ISoQUrSwu5whVx4l0zuvhEhRWb8GA
         /w73HAqxAM0PEQtkxqbFQoGx6FRYy6XTadn/k5jnTpuhe8Xs8CJuLG8hWETobeoT+muQ
         zZDrhj31qc/06olJ8ZO8175rup5sET3oKj7oMLcAh/akPYJm/g3ObdFid4ONpP1a/IVM
         3gDg73Zc+Vj80VpSx5dc3K+yl/AhflnVu8nNLt27/6XMzZeV9Lgn7D+dQwIqlc5UNo6u
         /NV0RDwgZ8p9S6Gmehhb9UIgPId4N4JoJXKm6tTG/r7x7LcN2Xim2qFoSKmzLLXHmqYH
         QIuQ==
X-Forwarded-Encrypted: i=1; AJvYcCUPnl5ZI4Ee7JONhuXLsBPKISOAwX7prxpr1EvNzzsq04vSwCpda1AjgH/nZi+dP2tDfHCFkvK5a8Y=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwpT5rHuV0RRHARSBViYU5y0fAvK4TaWRWqSyuSrZ1ICjsX1pUt
	84CY+awobu0SWix8xWhgugR/bYKOmXKVQgIgJH1U3xIOUqHAFttbEhHklDSkiqPIDEojdaYvEZU
	=
X-Gm-Gg: ASbGncsfYfJcePZYyYWZCebK1AQRViMeCraM803a1bORRjrdf8MQICgcOq6m872vQ4Z
	zJuMWUwuuiyPnx8A43BApGA4GQUV1jmVZ/b60A6MHpGAWXR2XstF5rPUYTTqSxE8wa7v3CjdMtK
	ENqGzmMYxvfKDi6pKY/OW9+Xx0bK8sP4sMRSvZwBY9pVi2gRoIxiumcXcweLc9mE7aLYk5EhCoe
	uhYKJkMUztr/wlDEhW0L64KwIzHEFd4nFHatK15rJgBDhueg/YT1kPQxY/+siFQJ4bdTmp+ZvpD
	Y8QSVWoz+GvY7Dxp/pW8ddlMBSaHJqAzq8iTFZD/9me8fuDjryVfSZukCsmzzPhfXmij0f/Gh5W
	RrN33wOAWEs6n8Ku2e1JZwgF5s/g8rvFtUztO
X-Google-Smtp-Source: AGHT+IEC1g6NhP3MQVaJekqhIdUPGbbKVPGYXr6N+13idrU4UAn0WFLi986FvirX7omuDZRUaevDJA==
X-Received: by 2002:a05:6000:4284:b0:391:3028:c779 with SMTP id ffacd0b85a97d-39efbae3ff8mr14923681f8f.45.1745395625163;
        Wed, 23 Apr 2025 01:07:05 -0700 (PDT)
Message-ID: <3dfbd78b-7660-4ee8-992a-e84b7af706f6@suse.com>
Date: Wed, 23 Apr 2025 10:07:04 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 4/8] x86/alternatives: Factor seal_endbr64() out of
 _apply_alternatives()
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: <20250423010237.1528582-1-andrew.cooper3@citrix.com>
 <20250423010237.1528582-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: <20250423010237.1528582-5-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 23.04.2025 03:02, Andrew Cooper wrote:
> We are going to need to reposition the call in a change with several moving
> parts.
> 
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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




From xen-devel-bounces@lists.xenproject.org Wed Apr 23 08:16:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 08:16:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.964115.1354979 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7VHT-0008I3-9x; Wed, 23 Apr 2025 08:16:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 964115.1354979; Wed, 23 Apr 2025 08: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 1u7VHT-0008Hw-70; Wed, 23 Apr 2025 08:16:31 +0000
Received: by outflank-mailman (input) for mailman id 964115;
 Wed, 23 Apr 2025 08: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=rvAI=XJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u7VHS-0008Hp-HD
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 08:16:30 +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 4165627b-201b-11f0-9ffb-bf95429c2676;
 Wed, 23 Apr 2025 10:16:28 +0200 (CEST)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-43cef035a3bso42434765e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 23 Apr 2025 01:16:28 -0700 (PDT)
Received: from [10.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-39efa433354sm18206504f8f.32.2025.04.23.01.16.27
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 23 Apr 2025 01:16:27 -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: 4165627b-201b-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745396188; x=1746000988; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=50hCIdHX0c5taQUAro0WKpxwNiENh6xzXyZ4uswSuA4=;
        b=CG07gXDl7Fuz9743kP8hGJnzCFJ+n1KXVi+aCmAEPqyzjsVQagkgX6+9iwCuFiqORC
         gIl2ZV0T6+xh5fpFIAVVj75TuJwWkb29SgC2UuP3bvrVH7FwQpKruQPgxfDvjTl0oW2C
         riqHcikdf39naeT/fEGfzVZFXw/PBbtlAGvzODixkBQ8C0MdUt/CbkoT7UrQFuwhysXO
         XicwKrAT5Jn/lXjEvfOoVUbpPFhIU3X2rPWBmaVS8SX2i0YbVoduafiD3cy3HYS6E/HD
         xl6ySL2/VMJXtEzwP+CywHHH+Obb7knxrjD/fYYWmFHY0PF1UaRQl1t38ZNRe8TfEJEo
         v1Lw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745396188; x=1746000988;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=50hCIdHX0c5taQUAro0WKpxwNiENh6xzXyZ4uswSuA4=;
        b=NmIGqJZOIMJGPdK09iutAkBh1wH0UxI6sZ4qXfzc3yaTqk20SrHz/VUnaDYnUIKZfr
         H3unzSF/jJZrxSyjXBTkfPX/3l9cdDbDikA0GABVHiNcnImYtBU+I7hxOv2vA5Ew7185
         FLrV4Br5dw9rozrUbWS4UoPaVJ9wiyp8VXB+M6vvJn38mSp3zLlFi+y9D3M0fU8WS/JL
         pGddIt3d0475pQuLsQEjoehKYZMH84vM4cp/MobX750BIbdWbb+BqV354qgsWix2AVfz
         Mq94YNmlZeyEOzMw0Mb1220fkTm4zw/5RfVc7awcyeEw38yNwQ8w2YaxJnzIaHuP5uQA
         Hbfg==
X-Forwarded-Encrypted: i=1; AJvYcCV1EllJvtavrliQzOTXgkAO0JOzFS7tiN/MLso93aln8k7d2bULMubmg3SqQldL/PEiD8Ixio/oV3c=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzJu/K48hMcIzg9dz7L0iphy0SYXJaNCRgtZIvfKk4H1c4eLTX4
	PpcRg8FAgli5CCKqgtBhhA28B/mJF4oGz+KWpnec9Di5QE/LfXRpCGwaXpJjTg==
X-Gm-Gg: ASbGncsM0MhjLNBStrt2oXyhaw+8g1cxsQmFxAw38XGbMiXXxgKgb39Vm37dcefGAds
	B8bD0Hmp8gu4fHoOiBNqnUaHlfv39ispUhWiGB00eHffyXsb4KfMwXnRi2k+eg8qkS6v1uW9I80
	Vx3IcY93dXMSLDB8joNHYEqkbZMHvA6/6N9ZTgoTlOdJR2bhhoKtGapd8wCQPDBqvvs6PMcK7Iy
	tsEdxyDMFUwB/npPBPxikt15KuccfRaffoEhb6JPuMzD9gGmE3ok5GDpjf7SBjTXHvWewtN7LRu
	e8FiVrFdUtwZsILXFFZPPlx+jeB2H2CUu0bfOOuhhZpRHWhzP66XTlG9pQ485V6iOHuUWU7s6PG
	JMBItLCq9DbMpXua1f7DCsURIeg==
X-Google-Smtp-Source: AGHT+IG32+2Evbnz7tZ/kAsOBBaon8NSly1G4CFDWL+QxBr45mSM9FnOhD4w5XIXVVwhQvbRH47ptQ==
X-Received: by 2002:adf:ee0b:0:b0:39f:b62:8cb2 with SMTP id ffacd0b85a97d-39f0b628d40mr6685183f8f.38.1745396187788;
        Wed, 23 Apr 2025 01:16:27 -0700 (PDT)
Message-ID: <5af03482-a21e-4040-a8c8-78c4dbf72ba2@suse.com>
Date: Wed, 23 Apr 2025 10:16:26 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 5/8] x86/altcall: Introduce new simpler scheme
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: <20250423010237.1528582-1-andrew.cooper3@citrix.com>
 <20250423010237.1528582-6-andrew.cooper3@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20250423010237.1528582-6-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 23.04.2025 03:02, Andrew Cooper wrote:
> Encoding altcalls as regular alternatives leads to an unreasonable amount of
> complexity in _apply_alternatives().
> 
> Introduce apply_alt_calls(), and an .alt_call_sites section which simply
> tracks the source address (relative, to save on space).  That's literally all
> that is needed in order to devirtualise the function pointers.
> 
> apply_alt_calls() is mostly as per _apply_alternatives(), except the size is
> known to be 6 bytes.  Drop the logic for JMP *RIPREL, as there's no support
> for tailcall optimisations, nor a feasbile plan on how to introduce support.
> Pad with a redundant prefix to avoid needing a separate NOP on the end.
> 
> Wire it up in nmi_apply_alternatives(), although the section is empty at this
> juncture so nothing happens in practice.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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

> Finding a 6-byte UD instruction that is distinct from ud2 turns out to be
> quite challengning.  The easy way involves a length changing prefix, which is
> best avoided.  Suggestions for alternative patterns welcome.

(Intel syntax, sorry.)

	ud0	edi, [edi+edi-1]
	ud1	edi, [edi+edi-1]

	ud0	edi, cs:[rdi+rdi-1]
	ud1	edi, cs:[rdi+rdi-1]

Jan


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 08:17:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 08:17:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.964125.1354988 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7VIA-0000LL-Ie; Wed, 23 Apr 2025 08:17:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 964125.1354988; Wed, 23 Apr 2025 08:17: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 1u7VIA-0000LE-G4; Wed, 23 Apr 2025 08:17:14 +0000
Received: by outflank-mailman (input) for mailman id 964125;
 Wed, 23 Apr 2025 08:17: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=EGKH=XJ=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1u7VI9-0000CF-5N
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 08:17:13 +0000
Received: from NAM04-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam04on2061d.outbound.protection.outlook.com
 [2a01:111:f403:2408::61d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5b6228cf-201b-11f0-9eb0-5ba50f476ded;
 Wed, 23 Apr 2025 10:17:11 +0200 (CEST)
Received: from BL1PR12MB5849.namprd12.prod.outlook.com (2603:10b6:208:384::18)
 by BL4PR12MB9479.namprd12.prod.outlook.com (2603:10b6:208:58e::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.36; Wed, 23 Apr
 2025 08:17:08 +0000
Received: from BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::b77f:9333:3a5a:d285]) by BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::b77f:9333:3a5a:d285%4]) with mapi id 15.20.8678.021; Wed, 23 Apr 2025
 08:17:08 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5b6228cf-201b-11f0-9eb0-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Zmi75cgcunx8tH4YlpWvAQuDLfgZdaJ7GWGmh1hjJyboe8GkGqn4tx+70XvIg8qIN0WyCkcSmTnPWb2p1RJRH3LO+YsmN6XGKvEa9E8mO9xTJk64dKfctBetHTJ5YOa0XFosUPkP85M/t9akGFw0wL7jjGQLXl20l4YvQQMnmqOVHWyOzhUoU5mmtFN0esntZnGIpK5eb7qrPkH6HOio7g+yQLg70H3/EzPXxdTSlYEjNHrRn+OEX8dn7WZTZLVMlH5DLZXDbXVJWC3sE6f54idcKRxacavmuUPbjDz+6i7clDnJHV+IPA+aJouh3IsVV/p85kKevBSezOR2+GdJTg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=nc+F3V30HICtJD+fuKis/vLS5LOsD92yUD9H9X9QZOA=;
 b=AWyeseuSJn/dUcbQTUdwBNhfgYNiL8mlIlUuFa/foVbVPdnon7MR59jGG5sctYP1tCoWRKSN33PEUCazlh2cYgfDEfYI4GQmB9SKdokxird0eQDtCVnLFdFYhOFJNRWeTX+Mw5kUz+/7KoTH497oHDqlFBrkzus6jEpCQl3VyHcQ/iybk6INDwbUCOaoYORYNX2Nux2aCJZ9/IJCeRDX09wjyqVv85C69iQ/Yo9s0x2HwMbD4Ri2tO+9hWDZjB3QXahzjxW0uyhjt7G/Ae1QCMFJB1Mz9cUt/YnMXLRCTYp+aYorAyNA4PCoScAgqzVwpK5PhqZ9T/RKC7yLpYdijg==
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=nc+F3V30HICtJD+fuKis/vLS5LOsD92yUD9H9X9QZOA=;
 b=fM0qedW5rpjXXDWEND7qv4Mh9o/3b3IhpCKjk59DbzwfG5z3TSS0gq+60uEKl1pVyfHDLuTLZSAsdkAnz00wBEBLQV9LSev89QVqUpR++YLSHn62Kzk3lDmR9LSjDS/Bly4Tr9kjiv3cz2S9DJN5JI5HCqnfohBD9hwn9uS7EjU=
From: "Chen, Jiqian" <Jiqian.Chen@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	"Orzel, Michal" <Michal.Orzel@amd.com>, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>, "Huang, Ray" <Ray.Huang@amd.com>, "Chen,
 Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [PATCH v3 05/11] vpci: Refactor REGISTER_VPCI_INIT
Thread-Topic: [PATCH v3 05/11] vpci: Refactor REGISTER_VPCI_INIT
Thread-Index: AQHbsoVaTdJd8UN3wUOnIdqQLAHMILOv2xuAgAFJegD//7tXgIAAj7oA
Date: Wed, 23 Apr 2025 08:17:08 +0000
Message-ID:
 <BL1PR12MB584987E44701DDF8AA6152DFE7BA2@BL1PR12MB5849.namprd12.prod.outlook.com>
References: <20250421061903.1542652-1-Jiqian.Chen@amd.com>
 <20250421061903.1542652-6-Jiqian.Chen@amd.com>
 <545079b5-7159-4f47-8100-df387fffe57a@suse.com>
 <PH7PR12MB585404EEEC765754A3DE458FE7BA2@PH7PR12MB5854.namprd12.prod.outlook.com>
 <04289258-7316-4c07-96a3-b74a0089e861@suse.com>
In-Reply-To: <04289258-7316-4c07-96a3-b74a0089e861@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.8678.021)
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_|BL4PR12MB9479:EE_
x-ms-office365-filtering-correlation-id: be322a1e-0fca-4893-98d9-08dd823f3d91
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?RWFlcEhVMkJWUll1a0FGMkxmaENMVmJDQVpCMnVyYU9PdFlNWTdUNHBIYVl1?=
 =?utf-8?B?LzVGdVlmM3pGNnB5N0U3Wm5kY1JJcG1ROVVwOXZESEwzdTIrMlRDOWc4ZHZC?=
 =?utf-8?B?Zjc4Qy9rc0VHQkhDRWRZQVdHSGU4NnpaTFlNajAwMmFCYkZFVUJTSE1qSk1U?=
 =?utf-8?B?RmVjVGVsR3N6elZHUThzS1VPZFVqN01tOTNWMGI3a0cxNDNTalAxaXVmNHhz?=
 =?utf-8?B?eTVEMHp2UzlZVDJnVVQ0WHdva1ZEZmIvdlAxZW1xL0lVUUt0N01LMSs4dXU2?=
 =?utf-8?B?ZUE3V0phRXNGbWZDWkw5blVYMTVMLzR5em94Z0lFMFMyY1J4cFMxbFJwa1JP?=
 =?utf-8?B?eUhKTGlWdWhDZkhMamZlN3Y3S1ByNmJSakdlMHgyMGE3WmEyVm9vUTU5SDlz?=
 =?utf-8?B?TjQzdVV6ZDR1Sy9NSjdhK1plYXRaUGQraXY0T3NOWTN2MmRrU0JIQlNjeHBR?=
 =?utf-8?B?OEFIc0lkRlpxVDdZS3ZBRmFpeW5DMXluVGhMVHZNbFNPZlE1VXg2MjdGSUdU?=
 =?utf-8?B?RVZYMW5oODhpdWg1YThzeVp6aUUvNmxmelVxWGNiWjFYZW9yZ2hlY1d6SU9T?=
 =?utf-8?B?azRFM2VUMGpnaGE5RjgzL1REWU9naFp6ejVsQyt3VlVYMzA2RXV4Sm9ORWVY?=
 =?utf-8?B?c2hyQmFGeUNZN250OTk0bkEwclUzd0VmSUdTZmMrdDlhdGxMRE9iVDZTUzFI?=
 =?utf-8?B?b3JFTEhwdm1NdUxjRmN5amNGV0paMUlVd25uVlhFbHFKVnZDV2RSTnpscG85?=
 =?utf-8?B?cWtDWDFUVzBPQkt6RXZ2K3J1SkR2eUJ3R2w0eTFhWW9yaG1jZ2s2dnZET0Fs?=
 =?utf-8?B?Q0NVMmdGTzZCOTlIRi8zeXpaRTN6VmlRZWxUamhLN2lGMkFZcGd2K2RWTlA0?=
 =?utf-8?B?VHdmZjdxM0h0R3Z6WGFlTWNESkgxaXFaKzhteE96SUpYSFhyWTVGZ2xvand2?=
 =?utf-8?B?QysyRkh1d0VObmpaSzlJdmpPUWNiUWQzbElDV0JtazhEVzVoWWMrc2t5bnpZ?=
 =?utf-8?B?RDdjVzAyZW9jOUMxVHBUQUFGY3liVHBCeFhLSC9RaEJPMTlVV1VRaXhVOVRT?=
 =?utf-8?B?OGhvQ0hwcXNSbWd1TW9UUFVXb1J4bjBJL2I4aTYrb0dHZDc2VENhL2V6TVRz?=
 =?utf-8?B?ekFzSk9wdy9ISE1CU1g2ZWhIUTdjVHZwTWpUaklqL3BwT3ZaMFdvd3FTbFBJ?=
 =?utf-8?B?TE5NbjcvQ09vTWk2bE5GN2pBbGN5eGVsNkQ2dmRJblNsVmFRUnRuZDhNaklN?=
 =?utf-8?B?QU0vVFJRY1FpaXAxcTcwYjdTQ0hrdUJxaEd6SnA3dmszWkFtWE9MUjgvMUxO?=
 =?utf-8?B?SExKbjhsMi8wanFHVWNkcjU0OWZ2aFJWNDhZditLT25WK0tUL3A1TkM2QUh6?=
 =?utf-8?B?bm1OKzViZXNDOElVSEpPZFJmaHVybnVMOEJrRzN3NXNkWVRvK2x2NmgxL2Rs?=
 =?utf-8?B?NE82OENmOXVMdDJ2OEJRMlU3UjVOeGxHaWxNSlplc2xqZDBvUnMva3JKRlNq?=
 =?utf-8?B?NHUxMU9VRUlIVXlCQWVWN0RvclBCU0FjZmR6Mi9CeVZYak9zbm9mRVlMeUhh?=
 =?utf-8?B?bVJFVUtvM1ZFNGM4WEJLU0RURENDamhuU2J6Smp2a2dXWk90VndlUlFJYXVZ?=
 =?utf-8?B?THpwYmZTaTN3bjlqUkxQdVpQUzVUNnVoUGZkRDdqYVkxZm9IckcrUFRPdFFV?=
 =?utf-8?B?TTkxUFRpRUxqbEJCdVNuUytxb1RxSnRzdjFMVVhqd1BvaHlWc2x3aUtBUVdP?=
 =?utf-8?B?SGVodE4zeVMvOG83L3hXTWRoWjg5aUVJREZnQTEvb01WY1k0NzIvd1ppeXRE?=
 =?utf-8?B?Zmh4dDVYNDQzVldaR1FhK2lFaURsZm8xektHck01N3RrYzdCeG1obTBrSG5R?=
 =?utf-8?B?UWV2L0VxYjR4eHB6YktvczFLMVlpdzdPNFd5eHhPUnIzQ0tuNWVrd3hWUjVG?=
 =?utf-8?B?d2FQQkhiTUI3MUZpN1BKVTZsMGxodnI0ZWpRNFJYRTdZdTkyZUNQWEhnNWJG?=
 =?utf-8?Q?SRG3CouWxLS9Mb2uJ7f8qYTwxyjLac=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?aTVaNWFtQjlUTDJ2RW52Y3hsNGNXMkRnQ2RudjJ2Ymh0Z3NCVXU4OXl2b2RE?=
 =?utf-8?B?VCt3QWw2YVZsK3RjeW04VE1HQTlPWmRyN3dFSWRkNUJXZ2R1OHFidzhSUkxp?=
 =?utf-8?B?VFhTSi9KalQ0RFdOcUJoZ1dYay9nTERyTDdKSXhrOGNFUkI3dDF0c1pDN1h1?=
 =?utf-8?B?a0EvdlU0OVl4aDZaQ1RNYnE0Yk85Uk9Ib2hKT0pHZWRzMTNWRnlyem8wWUJU?=
 =?utf-8?B?aE43MDRtYjhVQ2tFZ1EvRDF1ZWsxWEVvU1J2aUI1SE9id2YxYWp5amNJQVQ1?=
 =?utf-8?B?bFowVGMxSmpGYUwxclNKclp3ZWxJeDA4UVRpdjlHZzNXWEZZdEo0b3ZIdTFt?=
 =?utf-8?B?di91WS9ieGVLWHkremJFcTNZWStvMFNRN3dmQnl1VG1sbEkzalFpUDAyNlcz?=
 =?utf-8?B?VU5NYXE3MXFlMmdLaHYwRElwZEZ2Tlk1MHlocGNlalg4T3duYU1jdzRzeUQw?=
 =?utf-8?B?VUY2a2tpZW9pbzFBNzJzaVZOcWIyOHNJZVhPdC81emp5SkQxckNLWkRXV0FL?=
 =?utf-8?B?VnBiSEI0OE1wQ0ovVkhjNHhPWWNra1d1U1RhaXUrbTlUQ3Q4a25BVDZRZ1lw?=
 =?utf-8?B?Q2FXUEJocis5eGg4YUNDSERRWkIzdW5tOFpGNVg4c28vMFlDRFNZR2I0allr?=
 =?utf-8?B?VFJWRXlOMUlOaWVYbWcrTVN2OHVncmF2VHdqVm8zYTdkdGk1eW80alB2bnpW?=
 =?utf-8?B?YXU3bmNUbEpZalc2TG5GUWViQmp5OXJaMUxCUGdiUkNsOFY0dUtKb0lKUVlV?=
 =?utf-8?B?cXVNQzlQNUN5T2s1Q2tSRzU2dGs0RmdCMW9IeTRaVWVnZU9iMDkvTU02K2s3?=
 =?utf-8?B?ZkxGYzU3WktnbHdkMW0wZzVUekwzMmZxc2ZNeU9yVTAxOFNWdVlKZlpjak9q?=
 =?utf-8?B?ZytTT1BPR0dXaWhaaC9HNERKcmY3QmFkazNBdFVZWmxwanFuZXFsd1dSczlX?=
 =?utf-8?B?RGpWNUpGLzZMRTRSbk4yYUtrMmw3SEZ6ZWd6SXUxK2xtQlhpR1N0Skk4dmF3?=
 =?utf-8?B?S0pHR1FJRzFqK08vaWNwVFQvRUQvMlRrRkVkZ0Q4YlNnWDBvd3dXSUEyT0Z5?=
 =?utf-8?B?empZZE9qL1lkZE9Wd250WERmNHhpaW8vK0E0Qllrekd6UDN4MGNGTzFaeGlk?=
 =?utf-8?B?RTM4RXNYcGl5RFNHbmZHS2JIdXJ1RWdTMG10anlMSlVUQmt5WUtIOW9GcUw4?=
 =?utf-8?B?bitQSERsTWl4NVc4VGhwUm84R2xpWW16NDduWTh0cjJ2S0NXTk1tYVZQaGFy?=
 =?utf-8?B?YmRkYUZPdkJhYTNQcDZDRlptUmNiWGZwZW1QTTdzdWFtSmRvYTU3NktJcEZs?=
 =?utf-8?B?Tlc4Uk9IdGZEcXc0eFE5aG1WY05mMXArbTZDS244ZnZZLzJmL3hYY3o5UFZn?=
 =?utf-8?B?aGFGQzE4UTJPb1J0aUJiTjkyaVFrdU1zRzdzbkcyMXQvSC9mem1nT1lReGpT?=
 =?utf-8?B?aU1lakJuM0NnaGdDZ0c5amhBc2h6c1pBaXB5TGRXWEtYSFdZeUIvbDRSSnQ1?=
 =?utf-8?B?dWVzZkx6QkQ0d2UwektDL3VqYTFFbTNQYzhsODJxNWNVd05seDgzMk5OL3Zx?=
 =?utf-8?B?Q1Z0L3lBYTlxM1d4UkVWM1ZEQ0doK3NOd1dwbzJxZUxZdDNaeHZ1N0RQWGJG?=
 =?utf-8?B?TFE1MjRxWEdTNE5ISXdVYnNTblZYWEw1Mml5SGMwbitLbHA3TVVyRU1MeUh2?=
 =?utf-8?B?UU9lTkRLUGswTTRRclFPNXNHYUNxWlZWaW1WNGxLQ3Nsa0doeXJpNE5VRUMr?=
 =?utf-8?B?OWt2ZUFpUC81K0dHYXNQR2RCNVVDSnI1N3BINzVXM1JmcW44ZEkzbEUyV2ow?=
 =?utf-8?B?eFVxVWhoTURlTFZpRTRlbmZrOTdpUVk3NklONUt4Njlhallha1RZNlR4dnRh?=
 =?utf-8?B?M0ptek9WUUl3MWV0RWpOTTNFUG9RZDE5ZUtpR1FZdnBkclg0NTQ3VE54OTBh?=
 =?utf-8?B?cUl2Qk1aNWlMd0NQMjVkYkJTOXB6V245VjBaS3Z6WnM3Y0crTDJ0QTJrWDA1?=
 =?utf-8?B?dzg4eGtNVHNhdEphWldBcDc2Y3ZIeGpiaVFnQktZLzlsQkxESVJSSm5FTGdz?=
 =?utf-8?B?dWtOejBFRDJtd2orZmZ3TmJPMTVRdDViK2VWejlwd1dWZ1cyY09lYmxocnZL?=
 =?utf-8?Q?0q9U=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <4CFF185F2C561C4B8F797121A93A7B63@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: be322a1e-0fca-4893-98d9-08dd823f3d91
X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Apr 2025 08:17:08.3334
 (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: ZysZQujr3DvuCr4OcQ5bp9YgvG/6/pB217FsDlV+doSeW4UHBHa8kylC7LqsAZMPfbv7BhWSnhbyGdEbiQPQLQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL4PR12MB9479

T24gMjAyNS80LzIzIDE1OjM2LCBKYW4gQmV1bGljaCB3cm90ZToNCj4gT24gMjMuMDQuMjAyNSAw
NTo0OSwgQ2hlbiwgSmlxaWFuIHdyb3RlOg0KPj4gT24gMjAyNS80LzIzIDAwOjAzLCBKYW4gQmV1
bGljaCB3cm90ZToNCj4+PiBPbiAyMS4wNC4yMDI1IDA4OjE4LCBKaXFpYW4gQ2hlbiB3cm90ZToN
Cj4+Pj4gUmVmYWN0b3IgUkVHSVNURVJfVlBDSV9JTklUIHRvIGNvbnRhaW4gbW9yZSBjYXBhYmls
aXR5IHNwZWNpZmljDQo+Pj4+IGluZm9ybWF0aW9uLCB0aGlzIGlzIGJlbmlmaXQgZm9yIGZvbGxv
dy1vbiBjaGFuZ2VzIHRvIGhpZGUgY2FwYWJpbGl0eQ0KPj4+PiB3aGljaCBpbml0aWFsaXphdGlv
biBmYWlscy4NCj4+Pj4NCj4+Pj4gV2hhdCdzIG1vcmUsIGNoYW5nZSB0aGUgZGVmaW5pdGlvbiBv
ZiBpbml0X2hlYWRlcigpIHNpbmNlIGl0IGlzDQo+Pj4+IG5vdCBhIGNhcGFiaWxpdHkgYW5kIGl0
IGlzIG5lZWRlZCBmb3IgYWxsIGRldmljZXMnIFBDSSBjb25maWcgc3BhY2UuDQo+Pj4+DQo+Pj4+
IE5vdGU6DQo+Pj4+IENhbGwgdnBjaV9tYWtlX21zaXhfaG9sZSgpIGluIHRoZSBlbmQgb2YgaW5p
dF9tc2l4KCkgc2luY2UgdGhlDQo+Pj4+IGNoYW5nZSBvZiBzZXF1ZW5jZSBvZiBpbml0X2hlYWRl
cigpIGFuZCBpbml0X21zaXgoKS4NCj4+Pj4gVGhlIGZpbmkgaG9vayB3aWxsIGJlIGltcGxlbWVu
dGVkIGluIGZvbGxvdy1vbiBjaGFuZ2VzLg0KPj4+Pg0KPj4+PiBTaWduZWQtb2ZmLWJ5OiBKaXFp
YW4gQ2hlbiA8SmlxaWFuLkNoZW5AYW1kLmNvbT4NCj4+Pg0KPj4+IEZyb20gdGhlIGRlc2NyaXB0
aW9uIEkgY2FuJ3QgZGVyaXZlIHRoZSBuZWVkIGZvciAuLi4NCj4+Pg0KPj4+PiAtLS0gYS94ZW4v
aW5jbHVkZS94ZW4veGVuLmxkcy5oDQo+Pj4+ICsrKyBiL3hlbi9pbmNsdWRlL3hlbi94ZW4ubGRz
LmgNCj4+Pj4gQEAgLTE4Nyw3ICsxODcsNyBAQA0KPj4+PiAgI2RlZmluZSBWUENJX0FSUkFZICAg
ICAgICAgICAgICAgXA0KPj4+PiAgICAgICAgIC4gPSBBTElHTihQT0lOVEVSX0FMSUdOKTsgXA0K
Pj4+PiAgICAgICAgIF9fc3RhcnRfdnBjaV9hcnJheSA9IC47ICAgXA0KPj4+PiAtICAgICAgICoo
U09SVCguZGF0YS52cGNpLiopKSAgICAgXA0KPj4+PiArICAgICAgICooLmRhdGEudnBjaS4qKSAg
ICAgXA0KPj4+PiAgICAgICAgIF9fZW5kX3ZwY2lfYXJyYXkgPSAuOw0KPj4+PiAgI2Vsc2UNCj4+
Pj4gICNkZWZpbmUgVlBDSV9BUlJBWQ0KPj4+DQo+Pj4gLi4uIHRoaXMgY2hhbmdlLg0KPj4gQXMg
SSB1bmRlcnN0YW5kIHRoaXMsIHRoaXMgaXMgdXNlZCBmb3IgaW5pdGlhbGl6aW5nIGFsbCBjYXBh
YmlsaXRpZXMgYWNjb3JkaW5nIHRvIHByaW9yaXR5IGJlZm9yZS4NCj4+IFRoYXQgaXMgbXNpeCA+
IGhlYWRlciA+IG90aGVyIGNhcGFiaWxpdGllcy4NCj4+IE15IHBhdGNoIHJlbW92ZXMgdGhlIHBy
aW9yaXR5IGFuZCBpbml0aWFsaXppbmcgYWxsIGNhcGFiaWxpdGllcyBkb2Vzbid0IGRlcGVuZCBv
biBwcmlvcml0eSBhbnltb3JlLg0KPj4gU28gSSB0aGluayB0aGlzIGlzIG5vdCBuZWVkZWQgYW55
bW9yZS4NCj4gDQo+IFBlcmhhcHMsIGJ1dCB0aGUgd29yZCAicHJpb3JpdHkiIGRvZXNuJ3QgZXZl
biBhcHBlYXIgaW4gdGhlIGRlc2NyaXB0aW9uLiBTbw0KPiB5ZXMsIC4uLg0KSSB3aWxsIGFkZCBk
ZXNjcmlwdGlvbiBhYm91dCAicHJpb3JpdHkiIHJlbW92YWwgaW4gY29tbWl0IG1lc3NhZ2UgaW4g
bmV4dCB2ZXJzaW9uLg0KDQo+IA0KPj4gRG8geW91IG1lYW4gSSBzaG91bGQgYWRkIHNvbWUgZXhw
bGFuYXRpb24gaW4gdGhlIGNvbW1pdCBtZXNzYWdlPw0KPiANCj4gLi4uIHRoZXJlJ3Mgc29tZXRo
aW5nIHRvIGFkZCB0aGVyZS4gQnV0IHRoZXJlJ3MgYWxzbyB0aGUgcXVlc3Rpb24gb2Ygd2h5IHRo
ZQ0KPiBjaGFuZ2UgZG9lc24ndCBnbyBmdXJ0aGVyOiBXaXRoIHRoZSBTT1JUKCkgZHJvcHBlZCwg
d2hhdCdzIHRoZSB0cmFpbGluZyAuKg0KPiBpbiB0aGUgc2VjdGlvbiBuYW1lIGZvcj8gVGhhdCdz
IGFwcGFyZW50bHkgY29ubmVjdGVkIHRvIHRoZSBwdXp6bGluZw0KPiANCj4gKyAgc3RhdGljIHZw
Y2lfY2FwYWJpbGl0eV90ICpjb25zdCB4IyNfZW50cnkgIFwNCj4gKyAgICAgICAgICAgICAgIF9f
dXNlZF9zZWN0aW9uKCIuZGF0YS52cGNpLiIpID0gJih4IyNfdCkNCj4gDQo+IFdoYXQncyB0aGUg
dHJhaWxpbmcgZG90IGZvciBoZXJlPw0KVGhhbmtzIGZvciBjYXRjaGluZyB0aGlzIHByb2JsZW0u
DQpJIGZvcmdvdCB0byBkZWxldGUgdGhlIGRvdCBhbmQgIi4qIiwgd2lsbCBkZWxldGUgdGhlbSBp
biBuZXh0IHZlcnNpb24uDQoNCj4gDQo+IChBcyBhIG5pdCAtIEkgYWxzbyBkb24ndCBzZWUgd2h5
IHgjI190IHdvdWxkIG5lZWQgcGFyZW50aGVzaXppbmcgd2hlbg0KPiB4IyNfZW50cnkgZG9lc24n
dC4gSXMgdGhlcmUgYW5vdGhlciBNaXNyYSBnZW0gd2hpY2ggbWFrZXMgdGhpcyBuZWNlc3Nhcnk/
KQ0KT2gsIEkgd2lsbCBkZWxldGUgdGhlIHBhcmVudGhlc2VzIGluIG5leHQgdmVyc2lvbi4NCg0K
PiANCj4gSmFuDQoNCi0tIA0KQmVzdCByZWdhcmRzLA0KSmlxaWFuIENoZW4uDQo=


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 08:20:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 08:20:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.964142.1354999 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7VLj-0002BU-5b; Wed, 23 Apr 2025 08:20:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 964142.1354999; Wed, 23 Apr 2025 08:20: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 1u7VLj-0002BN-2b; Wed, 23 Apr 2025 08:20:55 +0000
Received: by outflank-mailman (input) for mailman id 964142;
 Wed, 23 Apr 2025 08:20: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=rvAI=XJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u7VLh-00029M-6N
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 08:20:53 +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 deb268e0-201b-11f0-9eb0-5ba50f476ded;
 Wed, 23 Apr 2025 10:20:52 +0200 (CEST)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-43cfa7e7f54so4802095e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 23 Apr 2025 01:20:52 -0700 (PDT)
Received: from [10.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-44092db2ca4sm16993695e9.27.2025.04.23.01.20.51
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 23 Apr 2025 01:20: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: deb268e0-201b-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745396452; x=1746001252; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=2Dz+r8TyXvFXQrEZxlFMkaOfdKxTw+zwjh8Bt9hQrNs=;
        b=f6MnpbkqV/5zNtxHGlrjIelvMUbjDqTPTmhoQfvgNO9hOPT8N3FETlGdndJteVOmlA
         blWfvXQt4cQzl7tKSIE2Hzrk2688ki0PQgMjCyTbqdN2oL+Q8frmi3W8vKhI2JiFZLjS
         M0nMJE8rzkPiVg0j7JmSnLlfrrVRROJLdkCN0QWOyeEF56UhtvVPNKDQqu5rMjXJxwUR
         q83S+ktWqOXy3iBoHJWJ1rlvIrtkK79nvBecgyLxeV24AztFnT4t9hjeP6Qd0Ov1cD6+
         G+B1ml71OO84kmMtkcqZFv31H9f3pqWNQZOQ9AMJAAfJfepeCy1k/KIUiM7fTkc/4deO
         RiYQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745396452; x=1746001252;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=2Dz+r8TyXvFXQrEZxlFMkaOfdKxTw+zwjh8Bt9hQrNs=;
        b=PgRtIWJoXB6y7wog1cxGToPbgJn8NrZYDWqw3vS3A2ojRtNfy0mP+R8d/VJX4neMI9
         hVcYFtYRNczYQMp79PXyPLmLJurZhfWzXt1LWTpxsN5i5rG2nyE4DsKZOz9T6yvgOknP
         mN6zUOWVFCdJW1783WJx/2P8DSXVQDhS67LvQMaCQgEXQlN2VSXMg0pxvLS1OzYhF+I6
         UyNzUBTLmbAN7CdSZPrapcK7j8X59uNwDV+f5x0FOcSJPF0aupjTMZ7Ke87Eej4tJuu2
         2wFru1K1soybwDpJ8ZpJsl6AngsiHj1cScWc1AAdXWgdvBkx1plRgFvTHvs6+HCfYi4T
         bHsA==
X-Forwarded-Encrypted: i=1; AJvYcCXxX71goK9tNlUVM0zx46NuF2qms618uBhkSXcW0/kXkav2oHVcN7UBB4GXWUMI2bYS1Gf22TSA9d4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxGVA9NTeo4cK5t3Lt3tLDlIlAZhyINXebFM3z5+/S6n6L++lw8
	e+leGK5qzuXfsWJmyhRzSpKEPcp4UuTumYBH0ScXHpqj57eytVoCvGxPMPvykg==
X-Gm-Gg: ASbGncvASe9iGmv/IR+tI2t1kcCabUU+Nztlwam0nFY14LWMQ78A+qYjpLd20BeYFcI
	6kgPgSvabeKmSSaftpsbMLw16j8fEONHRirRQiw5gPll2RKfI/t7s/SztAr9orf7NEq1IhWVrVH
	de/zbY5mzMouKuA5MFYNyvFmfBb+NSuEh5W7/QoaR0jW0S+iECAoMe/lQLlTg3+FUSqHCU4GsoR
	qcHEmYIT9zRF8NkC1ATUB7cY+XAeXgBXFphUTZbSaIib1eQLSLCUG0OWU3DBay2mQACHwjIMPwO
	cowTjpEZtm3pR6MJ1+X0dldq9nvf3deIFPJB6i/dMKImmP1HJP5mDtofhW0dflVxvrji4kLGXI3
	dvyTDJqFQEjwztDpOpROf6ZrF3g==
X-Google-Smtp-Source: AGHT+IF+zG3ZbR6q2sgNzxnJoteb7mnhrFUW3GlEl7Hfpa7T65rFZ3KbMcEVj6us3X3W/JjMw3GUkA==
X-Received: by 2002:a05:600c:3d0b:b0:439:8878:5029 with SMTP id 5b1f17b1804b1-44091ed703emr14777655e9.2.1745396451692;
        Wed, 23 Apr 2025 01:20:51 -0700 (PDT)
Message-ID: <1bad3a5e-379f-4b96-ab2a-c0ee7f3904cf@suse.com>
Date: Wed, 23 Apr 2025 10:20:50 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 6/8] xen/livepatch: Support new altcall scheme
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Ross Lagerwall <ross.lagerwall@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250423010237.1528582-1-andrew.cooper3@citrix.com>
 <20250423010237.1528582-7-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: <20250423010237.1528582-7-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 23.04.2025 03:02, Andrew Cooper wrote:
> The new altcall scheme uses an .alt_call_sites section.  Wire this up in very
> much the same way as the .altinstructions section, although there is less
> sanity checking necessary.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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




From xen-devel-bounces@lists.xenproject.org Wed Apr 23 08:21:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 08:21:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.964150.1355010 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7VMN-0002tt-GM; Wed, 23 Apr 2025 08:21:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 964150.1355010; Wed, 23 Apr 2025 08:21: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 1u7VMN-0002tm-Bd; Wed, 23 Apr 2025 08:21:35 +0000
Received: by outflank-mailman (input) for mailman id 964150;
 Wed, 23 Apr 2025 08:21: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=s+1X=XJ=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u7VMM-0002Zw-Kb
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 08:21:34 +0000
Received: from mail-wm1-x332.google.com (mail-wm1-x332.google.com
 [2a00:1450:4864:20::332])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f6ce5b3a-201b-11f0-9ffb-bf95429c2676;
 Wed, 23 Apr 2025 10:21:32 +0200 (CEST)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-43cfebc343dso51303685e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 23 Apr 2025 01:21:32 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 5b1f17b1804b1-44092d2b17asm16783825e9.18.2025.04.23.01.21.31
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 23 Apr 2025 01:21:31 -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: f6ce5b3a-201b-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745396492; x=1746001292; 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=3RFp77wbuQQggGtgksFPei1KDQi6Af7PLT4cK7azxO4=;
        b=pevsw9vZ2/fLsVQx/r4vzJql3j6CXx5cUX+nziKX8JKJY9Tly6nVynvuLq73U1AGSG
         Mf7FGQesTukVKmSqECiHvflnyAEHpcG3Z20W2T7ZC4GFtD6+S6vuSKUDleyx8xS6issi
         OnLGPRWqHqqInSygrLzJE1xYIygCGjs3HnHdQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745396492; x=1746001292;
        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=3RFp77wbuQQggGtgksFPei1KDQi6Af7PLT4cK7azxO4=;
        b=sm4Cn8fQffb2W7h9y0UUOhDoIU1T1TvS3BUFOdUVpH2TSGDq9nFlh2RuqazrFOxZXy
         kr+NJAFUrAHrQQq8BxXJuAISBIrIFX0wSTjAQ7H0hot3bybUwgUjl9bJQ75kXXppZn55
         JJUoFgmXsqotF1hic2CD46pZ8igwLxHL7NttYPVST6zEyFoff0nyPuYBHpgwpkSmBd4Z
         mZ0PoHreOzQf4Ybd6QsJHmkz+HQw9iMgyFeaQ8pwnNEnVNCBJ6R0ir1qt8AQQLAZX7sd
         Q2nT51GKfwj1Og2hqI8MP+SMUUBe+LLt/8pPwY2HN/99s6JSBZA94KYrBoKC7MyCeaBe
         Hing==
X-Forwarded-Encrypted: i=1; AJvYcCVtHMpsXTqtqRXSzkEGl41aiy5g3MmYgmrK/BqkG5gnbja6oLKgGQhe9AODUs+CXJpQWExXQ6fVU6M=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwfQYUjSZTtaokKG4V2l6kimTer5xJE8G4kJlA+G0oWHzev4SmP
	UpLF+FyaSpFLtnveF5Eae0xhaYW6Yvf0iATBEl5tCvoWBX6q0r7sCV6695Udq64=
X-Gm-Gg: ASbGncsLLNgpIimC/ratR2ZEte3/y+vvE6RPYkqp6V+DcJGVmI1I4p14mm3teTKEzNf
	8GwRyJz8gZDrOLK8Xj8obL3TVUtTrYOopLoWMW03x8/mrcw6l5jjZrix+fRbUyPP5bGNdz4/rF5
	YYJuI5yv9qGg5brxN17stRath0/64etuQhAMVNQ8luw2+zcjUPXtXHV7T6ITU6i9Xvxj8Wpi1st
	2vyHemrG0o5oRWZdbu/M9DX/m4ca5bCNpZl86M7aneLqgzeDDjSbuKjv48ReWEkr7uGFkGdKo1F
	pt6g52XNjNW9dqbGZ5Zwu4Tzjb/IPJ8xGDgpykxj//Q5Fw==
X-Google-Smtp-Source: AGHT+IFHWiPN9NJQXmz8mz8eW31B79aaS2HdAmUHQoCxpDRyUvLyVYjjn/xN764VnRM5xlE+XH04fQ==
X-Received: by 2002:a05:600c:1e18:b0:43b:cb12:ba6d with SMTP id 5b1f17b1804b1-4406ab7ab1emr184157185e9.3.1745396492037;
        Wed, 23 Apr 2025 01:21:32 -0700 (PDT)
Date: Wed, 23 Apr 2025 10:21:30 +0200
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/hvm: fix handling of accesses to partial r/o
 MMIO pages
Message-ID: <aAijCvHMhGKYeSu9@macbook.lan>
References: <20250417152514.13702-1-roger.pau@citrix.com>
 <20250417152514.13702-3-roger.pau@citrix.com>
 <f71bc0f8-8de1-4ecd-a2c0-a420e991e429@suse.com>
 <aAErECZ1Ys-Nufon@macbook.lan>
 <32297a1f-418f-403b-9529-e9f2620e1279@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <32297a1f-418f-403b-9529-e9f2620e1279@suse.com>

On Tue, Apr 22, 2025 at 08:46:13AM +0200, Jan Beulich wrote:
> On 17.04.2025 18:23, Roger Pau Monné wrote:
> > On Thu, Apr 17, 2025 at 05:38:54PM +0200, Jan Beulich wrote:
> >> On 17.04.2025 17:25, Roger Pau Monne wrote:
> >>> --- /dev/null
> >>> +++ b/xen/arch/x86/hvm/mmio.c
> >>> @@ -0,0 +1,125 @@
> >>> +/* SPDX-License-Identifier: GPL-2.0-only */
> >>> +/*
> >>> + * MMIO related routines.
> >>> + *
> >>> + * Copyright (c) 2025 Cloud Software Group
> >>> + */
> >>> +
> >>> +#include <xen/io.h>
> >>> +#include <xen/mm.h>
> >>> +
> >>> +#include <asm/p2m.h>
> >>> +
> >>> +static int cf_check subpage_mmio_accept(struct vcpu *v, unsigned long addr)
> >>> +{
> >>> +    p2m_type_t t;
> >>> +    mfn_t mfn = get_gfn_query_unlocked(v->domain, PFN_DOWN(addr), &t);
> >>> +
> >>> +    return !mfn_eq(mfn, INVALID_MFN) && t == p2m_mmio_direct &&
> >>> +           subpage_mmio_find_page(mfn);
> >>> +}
> >>> +
> >>> +/*
> >>> + * The guest has read access to those regions, and consequently read accesses
> >>> + * shouldn't fault.  However read-modify-write operations may take this path,
> >>> + * so handling of reads is necessary.
> >>> + */
> >>> +static int cf_check subpage_mmio_read(
> >>> +    struct vcpu *v, unsigned long addr, unsigned int len, unsigned long *data)
> >>> +{
> >>> +    struct domain *d = v->domain;
> >>> +    unsigned long gfn = PFN_DOWN(addr);
> >>> +    p2m_type_t t;
> >>> +    mfn_t mfn;
> >>> +    struct subpage_ro_range *entry;
> >>> +    volatile void __iomem *mem;
> >>> +
> >>> +    *data = ~0UL;
> >>> +
> >>> +    if ( !IS_ALIGNED(len | addr, len) )
> >>
> >> What's the point of doing the | ? len can't be misaligned with itself?
> > 
> > Hm, it's the same form that's used in mmio_ro_emulated_write(), I
> > assumed it was to catch illegal access lengths, like 3.
> 
> Oh, I see. But that's not using IS_ALIGNED(), and imo validly so, despite the
> apparent open-coding. IS_ALIGNED() requires the 2nd argument to be a power of
> two. The combined check there is folding the power-of-2 one with the is-
> aligned one.

Do you think it's worth keeping those checks then?  I could do:

if ( len & (len - 1) || len > 8 || !IS_ALIGNED(addr, len) )

As a possibly more complete and easier to parse check?

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 08:32:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 08:32:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.964168.1355031 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7VX4-00058P-Kg; Wed, 23 Apr 2025 08:32:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 964168.1355031; Wed, 23 Apr 2025 08:32: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 1u7VX4-00058I-Gp; Wed, 23 Apr 2025 08:32:38 +0000
Received: by outflank-mailman (input) for mailman id 964168;
 Wed, 23 Apr 2025 08:32: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=rvAI=XJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u7VX2-00058A-Uw
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 08:32:36 +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 81533b46-201d-11f0-9eb0-5ba50f476ded;
 Wed, 23 Apr 2025 10:32:34 +0200 (CEST)
Received: by mail-wr1-x42a.google.com with SMTP id
 ffacd0b85a97d-3914bc3e01aso3734145f8f.2
 for <xen-devel@lists.xenproject.org>; Wed, 23 Apr 2025 01:32:34 -0700 (PDT)
Received: from [10.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-39efa4a4e9esm18316889f8f.96.2025.04.23.01.32.33
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 23 Apr 2025 01:32:33 -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: 81533b46-201d-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745397154; x=1746001954; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=p+1TVD9wtGPWwFF0saiIkE8CuvO573DOYJBruXjrX8Y=;
        b=HkKTguDmkyRA6KYi83yd2opalFUn+XDq2zShmQ61l2hZtTMnxS5VROAd0vYxBluMa1
         nlFspbievd18hJtUf50FifX+RAWFT0MBc8FB+o3X6hCBwlziF29FPt/VSXInJ8lMKSVA
         d+ZEOLcvTtRH9Iy8/0+4PoKXPsNcIevJvBqzNzc6N6chn96MS4mA0Enso2eVd0S6CJdT
         W1nLywTxPmVAVbADoa0tmfHKEs4zTFhpV8n9NemFnBvHKyPxl8Ed0l42SoVsTgPOJ5+z
         Wu8DmH0iZmjpjJFfA/pLV6ARSaa+aJAttXPtQXiAU58QSe/zyM0RUDbS2lLD+CN9imkC
         FJnQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745397154; x=1746001954;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=p+1TVD9wtGPWwFF0saiIkE8CuvO573DOYJBruXjrX8Y=;
        b=stBOUhiTMhikNihTspwAWp+BmG8wgXjOWEJpP+GiRbE4oX45CDpv/eBAhYf2q+0TgZ
         r17gfwNRUJOwrF1SFCOHWPMWFzKHIuwgCrMGwovC+3Dd1jO59AmV+3G1d43yyER4tZOX
         wQMu3cROyKakQi0UhjwPTkde3BnVPc5B4NRfw+OcnIdGOOsxkg3ePh5+ERz+YFvsB6HF
         GttEr6sivWwT6mLsnlP9ucK711VIUI755MZRl/YEmv1e7Z2nL3Sc05f6n/76U3Jklgoj
         voXgmJSfWtO23daUtG0nP90+RuABQd16O3zbQuUfor8hIbouCdy9yc2YI6vjZErxlemB
         a6IQ==
X-Forwarded-Encrypted: i=1; AJvYcCWr1pOgZXUqwFdHM+mGTlkUsyXBaFZUSBxW7EblCXxjF/rF4MNPKflxtGmBIVkmkYXFq1U3J4d0x1w=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwmUzrWhCjPEDd780DqXY/yr4BK1HBv5GG7Z+1MvQIcye4Xrt/p
	/YMUKNWUUAboY7GsjDRRY4VT/Rrw3TjZkG7tOVRZSNdAPbdWiXJ5ASHbf9fGAQ==
X-Gm-Gg: ASbGncsy6t8nqyT5UExR7UoOh546422g0k29ByJ5bk+1M2qnH6/PAGSv7Ss5tFgAitE
	yVYDvOT9TFqE07yfw+M7w8MB1ENHygp6IlhEDeUt2AVEkDYG1U56To5QYNWyo70+VUdA735POut
	RV1+lL2TwkgeIX0DG4AvhbrWn01hZw7zfCRwT82obVYZRwWTlw4yW1Vd21D8gmjlJDGuxgMolGm
	OvcvTaojH58yqCLPslGFpMfkhEh9sRD5RNHK7nKQ97qM0o3nRQSMX9cczVG/BXkiqrbmSuk2IFt
	bGt4Nk9gpHLZPIjFe4ujlVTu7P4SvVvfNE05/JLZa0FbkvKZOgRZuUBWYz98ovTU6Zi5HKJ1px0
	+h36c27qwjuVpMbKGO3HPNTZjTA==
X-Google-Smtp-Source: AGHT+IGGbZoyY/O5Tbi0W+RScjAUZwI8ZIr5ReUA+L14ny038KRg7vdhwC1ypKn5dZe53Un13Kf55g==
X-Received: by 2002:a05:6000:290b:b0:391:4999:778b with SMTP id ffacd0b85a97d-39efba5b7a9mr15074608f8f.28.1745397153949;
        Wed, 23 Apr 2025 01:32:33 -0700 (PDT)
Message-ID: <b63ff1ca-2752-44fe-8a32-0a721eec1abb@suse.com>
Date: Wed, 23 Apr 2025 10:32:33 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 2/4] x86/hvm: fix handling of accesses to partial r/o
 MMIO pages
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: <20250417152514.13702-1-roger.pau@citrix.com>
 <20250417152514.13702-3-roger.pau@citrix.com>
 <f71bc0f8-8de1-4ecd-a2c0-a420e991e429@suse.com>
 <aAErECZ1Ys-Nufon@macbook.lan>
 <32297a1f-418f-403b-9529-e9f2620e1279@suse.com>
 <aAijCvHMhGKYeSu9@macbook.lan>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <aAijCvHMhGKYeSu9@macbook.lan>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 23.04.2025 10:21, Roger Pau Monné wrote:
> On Tue, Apr 22, 2025 at 08:46:13AM +0200, Jan Beulich wrote:
>> On 17.04.2025 18:23, Roger Pau Monné wrote:
>>> On Thu, Apr 17, 2025 at 05:38:54PM +0200, Jan Beulich wrote:
>>>> On 17.04.2025 17:25, Roger Pau Monne wrote:
>>>>> --- /dev/null
>>>>> +++ b/xen/arch/x86/hvm/mmio.c
>>>>> @@ -0,0 +1,125 @@
>>>>> +/* SPDX-License-Identifier: GPL-2.0-only */
>>>>> +/*
>>>>> + * MMIO related routines.
>>>>> + *
>>>>> + * Copyright (c) 2025 Cloud Software Group
>>>>> + */
>>>>> +
>>>>> +#include <xen/io.h>
>>>>> +#include <xen/mm.h>
>>>>> +
>>>>> +#include <asm/p2m.h>
>>>>> +
>>>>> +static int cf_check subpage_mmio_accept(struct vcpu *v, unsigned long addr)
>>>>> +{
>>>>> +    p2m_type_t t;
>>>>> +    mfn_t mfn = get_gfn_query_unlocked(v->domain, PFN_DOWN(addr), &t);
>>>>> +
>>>>> +    return !mfn_eq(mfn, INVALID_MFN) && t == p2m_mmio_direct &&
>>>>> +           subpage_mmio_find_page(mfn);
>>>>> +}
>>>>> +
>>>>> +/*
>>>>> + * The guest has read access to those regions, and consequently read accesses
>>>>> + * shouldn't fault.  However read-modify-write operations may take this path,
>>>>> + * so handling of reads is necessary.
>>>>> + */
>>>>> +static int cf_check subpage_mmio_read(
>>>>> +    struct vcpu *v, unsigned long addr, unsigned int len, unsigned long *data)
>>>>> +{
>>>>> +    struct domain *d = v->domain;
>>>>> +    unsigned long gfn = PFN_DOWN(addr);
>>>>> +    p2m_type_t t;
>>>>> +    mfn_t mfn;
>>>>> +    struct subpage_ro_range *entry;
>>>>> +    volatile void __iomem *mem;
>>>>> +
>>>>> +    *data = ~0UL;
>>>>> +
>>>>> +    if ( !IS_ALIGNED(len | addr, len) )
>>>>
>>>> What's the point of doing the | ? len can't be misaligned with itself?
>>>
>>> Hm, it's the same form that's used in mmio_ro_emulated_write(), I
>>> assumed it was to catch illegal access lengths, like 3.
>>
>> Oh, I see. But that's not using IS_ALIGNED(), and imo validly so, despite the
>> apparent open-coding. IS_ALIGNED() requires the 2nd argument to be a power of
>> two. The combined check there is folding the power-of-2 one with the is-
>> aligned one.
> 
> Do you think it's worth keeping those checks then?

Yes, I think we should be as strict as possible in what we (try to) emulate.

>  I could do:
> 
> if ( len & (len - 1) || len > 8 || !IS_ALIGNED(addr, len) )
> 
> As a possibly more complete and easier to parse check?

If you dislike the form mmio_ro_emulated_write() uses, sure. However, you
will want to check len to be non-zero, while I'm unsure you need to check
len > 8 - mmio_ro_emulated_write() doesn't have such. Albeit - perhaps
wrongly so; we'd end at the ASSERT_UNREACHABLE() in
subpage_mmio_write_emulate() if a wider store was used. I guess I ought to
make a patch there, and you want to keep the "len > 8".

Jan


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 08:44:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 08:44:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.964181.1355041 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7Vi5-0007HR-J9; Wed, 23 Apr 2025 08:44:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 964181.1355041; Wed, 23 Apr 2025 08:44: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 1u7Vi5-0007HK-G9; Wed, 23 Apr 2025 08:44:01 +0000
Received: by outflank-mailman (input) for mailman id 964181;
 Wed, 23 Apr 2025 08:44: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=rvAI=XJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u7Vi4-0007Gy-Fu
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 08:44:00 +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 18c546f6-201f-11f0-9ffb-bf95429c2676;
 Wed, 23 Apr 2025 10:43:58 +0200 (CEST)
Received: by mail-wr1-x429.google.com with SMTP id
 ffacd0b85a97d-3a064a3e143so839247f8f.3
 for <xen-devel@lists.xenproject.org>; Wed, 23 Apr 2025 01:43:58 -0700 (PDT)
Received: from [10.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-39efa493230sm18286034f8f.64.2025.04.23.01.43.57
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 23 Apr 2025 01:43:57 -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: 18c546f6-201f-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745397837; x=1746002637; 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=sRXJAQPaiLmZqT+mF6PCtOvMLYU1hzDAfxemuId4gd8=;
        b=RrAL0rYFMs/aMEGP4lthhInIvVwMLGcstibjkzeULQFdPzTtRfovp8SzasCwJGtXsn
         ARFzvUf/vN8s5UuWK6RkOUH+HbeXRVTFCzf4E/5dgurJrgmwG4LPVqL3vRymMAm+S5oH
         LoP7OonBlrhgbUt/XAfFc2s98AUA19uAMdKdUJyfARVChI1HTIMywy2jfEu58GIborTZ
         F4xJC7robBHpBpcd4IwBrC41FflnKtbUkSBb/iOTNOzQ/9bJaN3XLfyHb4XX+WLcuf+Q
         TK4QvUUiSZgkE+HiEnoNCxL6j7smCqE/92LmQr6K+wfcjYTidVyJ6L40fr+a61GcjgFS
         +gSQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745397837; x=1746002637;
        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=sRXJAQPaiLmZqT+mF6PCtOvMLYU1hzDAfxemuId4gd8=;
        b=Omc/fgfgN3zLASwdLzWomMuqfJi6wuQcaFC15GB5Wxjirzu/zKiAt0mcVvJr5SiI0h
         HaNdKzXVFlBtUM8xbH4ULKUUMRCN5EE+hbL3Xs21XpKVp5cRvXKir+IWhaCC3KCF/Tyb
         FLmp6Ge80AxbejUAUdfOOb45YgbHHIuxIPHG4ZbAptE+FQZALiMTOjRj3uhURVx6JxW+
         MCL/ii3QTJTylJRk+DJjXikat2NWlkjmvztK6uzFYQJK4IgvAUJmnOxRAhcVWgBj7s2X
         LSy7Giab51tJFfLhHr7SBSyUpn6vf/Qn32tne9gi5CGXS03tinU8aPjRvvxdmcHN1C4N
         bC+A==
X-Gm-Message-State: AOJu0YwQIqvp7PkKVcA68Ajs81jjeoLffBwfeMCpkRCTzV/Qd4VFUhOJ
	RUwByA6lSYhHuFDlUs0ru1mECWMTMxGQ3DjVgB1yUdRjmEYs6tixystXqPy7USVRcR9hPJWxHw4
	=
X-Gm-Gg: ASbGncuJ0Hx6BpOKXA9mz+b7hgf+lPMsDHXRwjM9mFqVOnnhCNqmj9TI+id1IdolP8x
	qkPMM94lZFB6lyik+2cQP8wABxoHs+5iLRudIbe6FBgsgrZTEVE6MIuUp6q7i4rCWccen2DcF+P
	xMFYVqAMzU/pCHMYkNl8RRFQ/XkAn7OEga0VCngUhOlkmATnMDv8MiVirKvUxFZ5gOS9Cn4gMVa
	9aOltAsMvqisw5ocfR964wv3jbO6yKM3A79RJynibiibfeod+BzsyR9SpwWTn4kwxn76o5HRtVx
	3XAL210viSO90SIIvZ6PWeSLTE7I6Wl4d2azLAjfoW70hzP7Yq6ZePUpuruNBRiYmvI+U9BY5Bt
	IKKzWvIGnhcA6Mdcrx8xTIhEpGQ==
X-Google-Smtp-Source: AGHT+IGrDWdbEn1bJF16CdwpXCotm0IS9q51faRT3Bus6600G8ZHXsCEUCRHBIjuw5k7x9vsfYBctg==
X-Received: by 2002:a05:6000:2405:b0:39c:266c:136d with SMTP id ffacd0b85a97d-39efba2aa92mr14093802f8f.12.1745397837633;
        Wed, 23 Apr 2025 01:43:57 -0700 (PDT)
Message-ID: <570ad3f2-7f3b-4579-a000-c85d27e8bf77@suse.com>
Date: Wed, 23 Apr 2025 10:43:56 +0200
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>,
 Marek Marczykowski <marmarek@invisiblethingslab.com>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH] x86: constrain sub-page access length in
 mmio_ro_emulated_write()
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+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

Without doing so we could trigger the ASSERT_UNREACHABLE() in
subpage_mmio_write_emulate(). A comment there actually says this
validation would already have been done ...

Fixes: 8847d6e23f97 ("x86/mm: add API for marking only part of a MMIO page read only")
Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
Alternatively we could drop comment and assertion from
subpage_mmio_write_emulate().

--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -5195,8 +5195,9 @@ int cf_check mmio_ro_emulated_write(
         return X86EMUL_UNHANDLEABLE;
     }
 
-    subpage_mmio_write_emulate(mmio_ro_ctxt->mfn, PAGE_OFFSET(offset),
-                               p_data, bytes);
+    if ( bytes <= 8 )
+        subpage_mmio_write_emulate(mmio_ro_ctxt->mfn, PAGE_OFFSET(offset),
+                                   p_data, bytes);
 
     return X86EMUL_OKAY;
 }


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 08:45:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 08:45:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.964192.1355050 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7VjT-0007nD-SM; Wed, 23 Apr 2025 08:45:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 964192.1355050; Wed, 23 Apr 2025 08:45:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7VjT-0007n6-Ph; Wed, 23 Apr 2025 08:45:27 +0000
Received: by outflank-mailman (input) for mailman id 964192;
 Wed, 23 Apr 2025 08:45:26 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=s+1X=XJ=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u7VjS-0007kk-Lz
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 08:45:26 +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 4d032fb9-201f-11f0-9eb0-5ba50f476ded;
 Wed, 23 Apr 2025 10:45:25 +0200 (CEST)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-39c13fa05ebso4430845f8f.0
 for <xen-devel@lists.xenproject.org>; Wed, 23 Apr 2025 01:45:25 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 ffacd0b85a97d-39efa4a4b9csm17626150f8f.84.2025.04.23.01.45.24
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 23 Apr 2025 01:45: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: 4d032fb9-201f-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745397925; x=1746002725; 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=kym774bl+kjd6z/+jrcXV+eFZM2aLIxckmPgZL+MVy0=;
        b=QP+8peF9dG6VdObkxjuZr3xNwYsArbYqeGW4WcpovBtSnvJ8+DNel89ObWDAGAABUs
         lJ0O2sF4n+a5NPwy/wNFx5F4fukTd7QgKWKnpMuauuj/6eiPPCZM68EG/XviVbimR65Y
         KcNWOj8WKCHJDQm1LQNreGqy0GW03EoZOWpNM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745397925; x=1746002725;
        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=kym774bl+kjd6z/+jrcXV+eFZM2aLIxckmPgZL+MVy0=;
        b=e3Swx9kmvZ2ZGbENIASVykLymj4vz8MtbTNCo0pZnxa3gEj77zYiNSzFsn+Ogx0W+Q
         e46CEBIzDKUmIyLywolvWQG1BmrXhplwAIf7jcLuevSiyUmKvpAX/zBzvl0Wp8vYEvTp
         0Bl28KnizX/9aUZuKtlcW6ELd60e0fCOU0NJE2PnplAmLhk8LopI0rmf4eQjv0Z1+A3y
         jtNm67jc36L0v6ImdqJBbRn5kd+sCbZGJ2R3lF+xsj5jZqghGeacQ/hJOrtmPXyxw+k5
         DAaY7zKIyUBIDgLxJwuHg6NXBeND76d4ZGbRWji74mBETkiF/i42sVD3eNN3X7L8w4wG
         aheQ==
X-Forwarded-Encrypted: i=1; AJvYcCU4NSI4GDj2WEFGQmFtub6SboFIKmCtttjFSflorVzzReCdNWuNPcFeEogHXul0TuwNyvJxjHEue8s=@lists.xenproject.org
X-Gm-Message-State: AOJu0YziLTf0AVD8YcnWEodFsDQjPqB7mwWKwTL6cl9C9Qa0tDyHILbH
	A2Ug7jOD8YpRwXeJI7DoBva+Nrn0s/ZkSlGHRsVnAQGeklmhudfadpm2HQz95Hw=
X-Gm-Gg: ASbGncs3FR7Pj3HaxMW0oPriimNOOXshSlwKZLHHccm2ppBgLaLj3Sex6ymZaptUhTS
	kmWs+KuIzdI4HipFPkZHBBe0+2BQDm6ZJ8eVy8uWshmuKZbmyGmM16sPMz4rh8i9c60mIeNOQ1d
	yKer2zaRTS4ls96wSBd3Mw9lHmtLo9D5jlrRr8mG3XGwxVm6bDrxnAghSa7AcDP2AsIzl0X/iXn
	Skukai3uY++pb/SFm9l6+7Us+JWFzJ6FLd4HdgKq0F7VwqpvZ5eNAB0c84R4D+kA9hQ2EaiVwuo
	n1sZbc1hZfzafYjA8lxu8s83fyvY5QPuJB6MhHdgSD3/F2GL0kDDj6mz
X-Google-Smtp-Source: AGHT+IHo1T3YnzaEeJzEQGS7bkmjkPmElidtxxi6HaGApq1pAc7uZX5a9rCosC2/qJH7ST96lrz+zA==
X-Received: by 2002:a05:6000:184c:b0:39c:e0e:b27a with SMTP id ffacd0b85a97d-39efba47e42mr17267721f8f.23.1745397925150;
        Wed, 23 Apr 2025 01:45:25 -0700 (PDT)
Date: Wed, 23 Apr 2025 10:45:24 +0200
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/intel: workaround several MONITOR/MWAIT errata
Message-ID: <aAioMDTUgjn3MJS2@macbook.lan>
References: <20250417161913.14661-1-roger.pau@citrix.com>
 <463cd02d-febc-4878-90b5-9272f91b9033@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <463cd02d-febc-4878-90b5-9272f91b9033@suse.com>

On Tue, Apr 22, 2025 at 10:26:37AM +0200, Jan Beulich wrote:
> On 17.04.2025 18:19, Roger Pau Monne wrote:
> > @@ -380,6 +380,43 @@ static void probe_c3_errata(const struct cpuinfo_x86 *c)
> >      }
> >  }
> >  
> > +/*
> > + * APL30: One use of the MONITOR/MWAIT instruction pair is to allow a logical
> > + * processor to wait in a sleep state until a store to the armed address range
> > + * occurs. Due to this erratum, stores to the armed address range may not
> > + * trigger MWAIT to resume execution.
> > + *
> > + * ICX143: Under complex microarchitectural conditions, a monitor that is armed
> > + * with the MWAIT instruction may not be triggered, leading to a processor
> > + * hang.
> > + *
> > + * LNL030: Problem P-cores may not exit power state Core C6 on monitor hit.
> 
> I didn't manage to spot all three spec updates; none of these have a ucode fix,
> hence permitting the workaround to be avoided?
> 
> Since CPX is 3rd Gen Xeon Scalable just like ICX is, I'm surprised that one's
> unaffected. The most recent spec update there is a year old than ICX'es, so
> may simply be too old to include the erratum?
> 
> Sunny Cove is used by further Icelake models - they're known to be unaffected?

FWIW, client IceLake also seems to be unaffected, so I don't really
know.  So far I've only found this issue in the ICX spec update.  The
fix for Linux limits this further to model 106 only.

> > + * Force the sending of an IPI in those cases.
> > + */
> > +static void probe_mwait_errata(void)
> > +{
> > +    static const struct x86_cpu_id models[] = {
> > +        /* Apollo Lake */
> > +        INTEL_FAM6_MODEL(0x5C),
> > +        /* Ice Lake */
> > +        INTEL_FAM6_MODEL(0x6A),
> > +        INTEL_FAM6_MODEL(0x6C),
> > +        /* Lunar Lake */
> > +        INTEL_FAM6_MODEL(0xBD),
> 
> Use identifiers from intel-family.h here?

Sure.

> > +        { }
> > +    };
> > +#undef INTEL_FAM6_MODEL
> > +
> > +    if ( boot_cpu_has(X86_FEATURE_MONITOR) && !force_mwait_ipi_wakeup &&
> > +         x86_match_cpu(models) )
> > +    {
> > +        printk(XENLOG_WARNING
> > +               "Forcing IPI MWAIT wakeup due to CPU erratum\n");
> > +        force_mwait_ipi_wakeup = true;
> > +    }
> > +}
> 
> Do we really need to cater for asymmetric systems? IOW can't we do this once
> on the BSP? Otherwise - why the use of boot_cpu_has() here? Oh, wait ...
> 
> > @@ -406,6 +443,8 @@ static void Intel_errata_workarounds(struct cpuinfo_x86 *c)
> >  		__set_bit(X86_FEATURE_CLFLUSH_MONITOR, c->x86_capability);
> >  
> >  	probe_c3_errata(c);
> > +	if (c == &boot_cpu_data)
> > +		probe_mwait_errata();
> >  }
> 
> ..., you do this for the BSP only. Then why's the function not __init and
> the global variable not __ro_after_init (and models[] __initconst)?
> 
> (Later) Except that this path is also taken for S3 resume, from
> recheck_cpu_features(). This shouldn't alter the variable value anymore,
> though. A disagreement ought to result in recheck_cpu_features() to
> report failure. (Imo perhaps better to avoid the call above during resume.)

I did consider to limit the call based on system_state, wasn't sure
whether that would be more churn than help.

LNL030 has a reference to: "It may be possible for the BIOS to contain
a workaround for this erratum." so wasn't fully sure we wouldn't need
to check for this in all cores if there's some firmware fix for it
that Xen could identify.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 08:52:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 08:52:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.964210.1355061 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7VqB-0001d9-OJ; Wed, 23 Apr 2025 08:52:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 964210.1355061; Wed, 23 Apr 2025 08:52: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 1u7VqB-0001d1-Jz; Wed, 23 Apr 2025 08:52:23 +0000
Received: by outflank-mailman (input) for mailman id 964210;
 Wed, 23 Apr 2025 08:52: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=s+1X=XJ=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u7VqA-0001cu-St
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 08:52:22 +0000
Received: from mail-wm1-x333.google.com (mail-wm1-x333.google.com
 [2a00:1450:4864:20::333])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 445c8d88-2020-11f0-9ffb-bf95429c2676;
 Wed, 23 Apr 2025 10:52:20 +0200 (CEST)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-43edecbfb46so45300005e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 23 Apr 2025 01:52:20 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 ffacd0b85a97d-39efa4a4c0fsm17928147f8f.88.2025.04.23.01.52.19
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 23 Apr 2025 01:52: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: 445c8d88-2020-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745398340; x=1746003140; 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=8p8OYh48a16Y97SdJ+FIk2IEWJmWKw041ht74MhX+tw=;
        b=vkpjhmJLz1eEgzO3lrgkNpg9qJELLz6qUv6r+/fJgFBybbqbe1S6vWTnCDkAYaP9LT
         s9PoTkn3roZJbvoXNtSr4PVy+Y06DFKIlDh0yv2zxPzXq+W7RTQfcj/ULyEcjfzpG7u0
         XUKZpn+xcmet8qhGOPnA0/btC+fT079tMmzgc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745398340; x=1746003140;
        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=8p8OYh48a16Y97SdJ+FIk2IEWJmWKw041ht74MhX+tw=;
        b=Mq9egyQ8+daNDYogAxkVnIAs9EzYv+oNYSaq/mKLk9xHrrxP+TszvvFstC98WL1G7i
         tFY9w1tr9Szh0d5k907jft7v1M4XgA5jh+MeF9zilgW5ZsET9MlS1yIMU7hG1Lb9HKlB
         UAwybdvFKhrVEecoSynXIFMPif3og+DZXWGwgXM8X5e8+2vvYIhlG+G6nQ+TplQiZimB
         57sNXzIjEBelLrzqTcveS6jNNyhB0FXZsJAj6+ysBI+cEvTUOqhAIUz+I+xTj1A7nTCu
         fvfM9+gFTGEd+xB6v5MhK0bLWVw3R5CvELBgghn6JzuBZ1FaLSyIBAhivB4bA75tUU09
         LrMg==
X-Forwarded-Encrypted: i=1; AJvYcCXwEQSv9skzKrGOIgCYY6M2a5F6YbEkZuEeXVs6Hn0EMsRbZ0XT3z/rIu1fU7EYwdNUpqArzltz4bY=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy2ZhcQ5gVKEe9EdMsqIY8qx8JQsTdp+S+xFXCK5kgJOVMPpESa
	xpYFejbQc5zi8NEE+O8TK6n8EmtM0uZkLzJFXPpiNpXkIUsK9Nsn+AMa2hzFolQ=
X-Gm-Gg: ASbGnctYu0otdOGYhcfoG+m0SompXiy+J0Ge1vSgDTkWQxTdNPkrWrpdovrkhs2mtPY
	RtdLy5A8clkRcQhSFac0h4CIvknq4OIidod78txZEWu0IBzvNw+JG6UFmK+eMgCVVekJzpgGd9V
	K2kJSTMVUYXNCGq36oVo3STqn0sadxX34+rvXm9mtWCdC6SIDkglMRpekKK0PUkBV+efWlSvFHD
	0gy3b/XdAub/GbrC49cGbf0q014LCEk8OGDa3W4ZgeVph6Mbp/ParrZpmcCw9s3KLI90ZmYG0xZ
	qaNren+haUuS/kUl6dqUCDfVHKfEJmFw3/vrzEYPsLKojQ==
X-Google-Smtp-Source: AGHT+IEG7xl9pQzG2YP3gKHodGQVnlDH5X8vQFYlIAnQpUY7bB7mChVZEVxdy5t1eQsaLmcEKnooHQ==
X-Received: by 2002:a05:600c:1e8f:b0:43d:7588:667b with SMTP id 5b1f17b1804b1-4406ab9426cmr206007195e9.10.1745398340130;
        Wed, 23 Apr 2025 01:52:20 -0700 (PDT)
Date: Wed, 23 Apr 2025 10:52:18 +0200
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/hvm: fix handling of accesses to partial r/o
 MMIO pages
Message-ID: <aAiqQnRXrXQAX1Vl@macbook.lan>
References: <20250417152514.13702-1-roger.pau@citrix.com>
 <20250417152514.13702-3-roger.pau@citrix.com>
 <f71bc0f8-8de1-4ecd-a2c0-a420e991e429@suse.com>
 <aAErECZ1Ys-Nufon@macbook.lan>
 <32297a1f-418f-403b-9529-e9f2620e1279@suse.com>
 <aAijCvHMhGKYeSu9@macbook.lan>
 <b63ff1ca-2752-44fe-8a32-0a721eec1abb@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <b63ff1ca-2752-44fe-8a32-0a721eec1abb@suse.com>

On Wed, Apr 23, 2025 at 10:32:33AM +0200, Jan Beulich wrote:
> On 23.04.2025 10:21, Roger Pau Monné wrote:
> > On Tue, Apr 22, 2025 at 08:46:13AM +0200, Jan Beulich wrote:
> >> On 17.04.2025 18:23, Roger Pau Monné wrote:
> >>> On Thu, Apr 17, 2025 at 05:38:54PM +0200, Jan Beulich wrote:
> >>>> On 17.04.2025 17:25, Roger Pau Monne wrote:
> >>>>> --- /dev/null
> >>>>> +++ b/xen/arch/x86/hvm/mmio.c
> >>>>> @@ -0,0 +1,125 @@
> >>>>> +/* SPDX-License-Identifier: GPL-2.0-only */
> >>>>> +/*
> >>>>> + * MMIO related routines.
> >>>>> + *
> >>>>> + * Copyright (c) 2025 Cloud Software Group
> >>>>> + */
> >>>>> +
> >>>>> +#include <xen/io.h>
> >>>>> +#include <xen/mm.h>
> >>>>> +
> >>>>> +#include <asm/p2m.h>
> >>>>> +
> >>>>> +static int cf_check subpage_mmio_accept(struct vcpu *v, unsigned long addr)
> >>>>> +{
> >>>>> +    p2m_type_t t;
> >>>>> +    mfn_t mfn = get_gfn_query_unlocked(v->domain, PFN_DOWN(addr), &t);
> >>>>> +
> >>>>> +    return !mfn_eq(mfn, INVALID_MFN) && t == p2m_mmio_direct &&
> >>>>> +           subpage_mmio_find_page(mfn);
> >>>>> +}
> >>>>> +
> >>>>> +/*
> >>>>> + * The guest has read access to those regions, and consequently read accesses
> >>>>> + * shouldn't fault.  However read-modify-write operations may take this path,
> >>>>> + * so handling of reads is necessary.
> >>>>> + */
> >>>>> +static int cf_check subpage_mmio_read(
> >>>>> +    struct vcpu *v, unsigned long addr, unsigned int len, unsigned long *data)
> >>>>> +{
> >>>>> +    struct domain *d = v->domain;
> >>>>> +    unsigned long gfn = PFN_DOWN(addr);
> >>>>> +    p2m_type_t t;
> >>>>> +    mfn_t mfn;
> >>>>> +    struct subpage_ro_range *entry;
> >>>>> +    volatile void __iomem *mem;
> >>>>> +
> >>>>> +    *data = ~0UL;
> >>>>> +
> >>>>> +    if ( !IS_ALIGNED(len | addr, len) )
> >>>>
> >>>> What's the point of doing the | ? len can't be misaligned with itself?
> >>>
> >>> Hm, it's the same form that's used in mmio_ro_emulated_write(), I
> >>> assumed it was to catch illegal access lengths, like 3.
> >>
> >> Oh, I see. But that's not using IS_ALIGNED(), and imo validly so, despite the
> >> apparent open-coding. IS_ALIGNED() requires the 2nd argument to be a power of
> >> two. The combined check there is folding the power-of-2 one with the is-
> >> aligned one.
> > 
> > Do you think it's worth keeping those checks then?
> 
> Yes, I think we should be as strict as possible in what we (try to) emulate.
> 
> >  I could do:
> > 
> > if ( len & (len - 1) || len > 8 || !IS_ALIGNED(addr, len) )
> > 
> > As a possibly more complete and easier to parse check?
> 
> If you dislike the form mmio_ro_emulated_write() uses, sure. However, you
> will want to check len to be non-zero, while I'm unsure you need to check
> len > 8 - mmio_ro_emulated_write() doesn't have such. Albeit - perhaps
> wrongly so; we'd end at the ASSERT_UNREACHABLE() in
> subpage_mmio_write_emulate() if a wider store was used. I guess I ought to
> make a patch there, and you want to keep the "len > 8".

OK, let me send v4 with those adjustments then.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 08:52:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 08:52:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.964215.1355071 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7VqW-00020g-Tj; Wed, 23 Apr 2025 08:52:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 964215.1355071; Wed, 23 Apr 2025 08:52: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 1u7VqW-00020Z-Qx; Wed, 23 Apr 2025 08:52:44 +0000
Received: by outflank-mailman (input) for mailman id 964215;
 Wed, 23 Apr 2025 08:52: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=ZaJ6=XJ=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u7VqU-0001cu-JW
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 08:52:43 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4f0dfc1d-2020-11f0-9ffb-bf95429c2676;
 Wed, 23 Apr 2025 10:52:40 +0200 (CEST)
Received: from [192.168.7.202] ([71.202.166.45]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53N8pdPU3180274
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NO);
 Wed, 23 Apr 2025 01:51:39 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4f0dfc1d-2020-11f0-9ffb-bf95429c2676
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53N8pdPU3180274
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745398303;
	bh=6kmN/+GrZw4rC3Ys6pLoNaD/Wf1DQKhvLOyIykqio94=;
	h=Date:Subject:To:Cc:References:From:In-Reply-To:From;
	b=dl3P7bXFsCov3PgD20ymOIC1FG1eSAGxGe1DQbY2LG6O/NrMHMVBlGAk+JDp60Fgf
	 +Pnv70fyGnLeBBbiUkB5NfR80TUqf9PoUmAU9iHHDMoRGzCfwBcwkKjONfEfh6RU3y
	 Xd+yt6SiKMOPKs7smA0LIwhSCJBbmEF2pgXMq1hR7ce2lmLZxa2oozrZU5Xx64YBSy
	 em5fezjfad3PGQcOwdbxM11bSPQVT17+MM/RZhPGMfA5z1Fo8GISFAxn0dAWTxVqKs
	 NapT16DwTl3Gg6ZXI0V3IlW3sqxII7MOJohN3YgP4fSuVYSwWgYi1N7Og/gNcKFK4d
	 023Wanxii0hkw==
Message-ID: <f7198308-e8f8-4cc5-b884-24bc5f408a2a@zytor.com>
Date: Wed, 23 Apr 2025 01:51:38 -0700
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH v2 21/34] x86/msr: Utilize the alternatives mechanism
 to write MSR
To: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>,
        linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
        linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
        netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        acme@kernel.org, andrew.cooper3@citrix.com, peterz@infradead.org,
        namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com
References: <20250422082216.1954310-1-xin@zytor.com>
 <20250422082216.1954310-22-xin@zytor.com>
 <b2624e84-6fab-44a3-affc-ce0847cd3da4@suse.com>
Content-Language: en-US
From: Xin Li <xin@zytor.com>
Autocrypt: addr=xin@zytor.com; keydata=
 xsDNBGUPz1cBDACS/9yOJGojBFPxFt0OfTWuMl0uSgpwk37uRrFPTTLw4BaxhlFL0bjs6q+0
 2OfG34R+a0ZCuj5c9vggUMoOLdDyA7yPVAJU0OX6lqpg6z/kyQg3t4jvajG6aCgwSDx5Kzg5
 Rj3AXl8k2wb0jdqRB4RvaOPFiHNGgXCs5Pkux/qr0laeFIpzMKMootGa4kfURgPhRzUaM1vy
 bsMsL8vpJtGUmitrSqe5dVNBH00whLtPFM7IbzKURPUOkRRiusFAsw0a1ztCgoFczq6VfAVu
 raTye0L/VXwZd+aGi401V2tLsAHxxckRi9p3mc0jExPc60joK+aZPy6amwSCy5kAJ/AboYtY
 VmKIGKx1yx8POy6m+1lZ8C0q9b8eJ8kWPAR78PgT37FQWKYS1uAroG2wLdK7FiIEpPhCD+zH
 wlslo2ETbdKjrLIPNehQCOWrT32k8vFNEMLP5G/mmjfNj5sEf3IOKgMTMVl9AFjsINLHcxEQ
 6T8nGbX/n3msP6A36FDfdSEAEQEAAc0WWGluIExpIDx4aW5Aenl0b3IuY29tPsLBDQQTAQgA
 NxYhBIUq/WFSDTiOvUIqv2u9DlcdrjdRBQJlD89XBQkFo5qAAhsDBAsJCAcFFQgJCgsFFgID
 AQAACgkQa70OVx2uN1HUpgv/cM2fsFCQodLArMTX5nt9yqAWgA5t1srri6EgS8W3F+3Kitge
 tYTBKu6j5BXuXaX3vyfCm+zajDJN77JHuYnpcKKr13VcZi1Swv6Jx1u0II8DOmoDYLb1Q2ZW
 v83W55fOWJ2g72x/UjVJBQ0sVjAngazU3ckc0TeNQlkcpSVGa/qBIHLfZraWtdrNAQT4A1fa
 sWGuJrChBFhtKbYXbUCu9AoYmmbQnsx2EWoJy3h7OjtfFapJbPZql+no5AJ3Mk9eE5oWyLH+
 QWqtOeJM7kKvn/dBudokFSNhDUw06e7EoVPSJyUIMbYtUO7g2+Atu44G/EPP0yV0J4lRO6EA
 wYRXff7+I1jIWEHpj5EFVYO6SmBg7zF2illHEW31JAPtdDLDHYcZDfS41caEKOQIPsdzQkaQ
 oW2hchcjcMPAfyhhRzUpVHLPxLCetP8vrVhTvnaZUo0xaVYb3+wjP+D5j/3+hwblu2agPsaE
 vgVbZ8Fx3TUxUPCAdr/p73DGg57oHjgezsDNBGUPz1gBDAD4Mg7hMFRQqlzotcNSxatlAQNL
 MadLfUTFz8wUUa21LPLrHBkUwm8RujehJrzcVbPYwPXIO0uyL/F///CogMNx7Iwo6by43KOy
 g89wVFhyy237EY76j1lVfLzcMYmjBoTH95fJC/lVb5Whxil6KjSN/R/y3jfG1dPXfwAuZ/4N
 cMoOslWkfZKJeEut5aZTRepKKF54T5r49H9F7OFLyxrC/uI9UDttWqMxcWyCkHh0v1Di8176
 jjYRNTrGEfYfGxSp+3jYL3PoNceIMkqM9haXjjGl0W1B4BidK1LVYBNov0rTEzyr0a1riUrp
 Qk+6z/LHxCM9lFFXnqH7KWeToTOPQebD2B/Ah5CZlft41i8L6LOF/LCuDBuYlu/fI2nuCc8d
 m4wwtkou1Y/kIwbEsE/6RQwRXUZhzO6llfoN96Fczr/RwvPIK5SVMixqWq4QGFAyK0m/1ap4
 bhIRrdCLVQcgU4glo17vqfEaRcTW5SgX+pGs4KIPPBE5J/ABD6pBnUUAEQEAAcLA/AQYAQgA
 JhYhBIUq/WFSDTiOvUIqv2u9DlcdrjdRBQJlD89ZBQkFo5qAAhsMAAoJEGu9DlcdrjdR4C0L
 /RcjolEjoZW8VsyxWtXazQPnaRvzZ4vhmGOsCPr2BPtMlSwDzTlri8BBG1/3t/DNK4JLuwEj
 OAIE3fkkm+UG4Kjud6aNeraDI52DRVCSx6xff3bjmJsJJMb12mWglN6LjdF6K+PE+OTJUh2F
 dOhslN5C2kgl0dvUuevwMgQF3IljLmi/6APKYJHjkJpu1E6luZec/lRbetHuNFtbh3xgFIJx
 2RpgVDP4xB3f8r0I+y6ua+p7fgOjDLyoFjubRGed0Be45JJQEn7A3CSb6Xu7NYobnxfkwAGZ
 Q81a2XtvNS7Aj6NWVoOQB5KbM4yosO5+Me1V1SkX2jlnn26JPEvbV3KRFcwV5RnDxm4OQTSk
 PYbAkjBbm+tuJ/Sm+5Yp5T/BnKz21FoCS8uvTiziHj2H7Cuekn6F8EYhegONm+RVg3vikOpn
 gao85i4HwQTK9/D1wgJIQkdwWXVMZ6q/OALaBp82vQ2U9sjTyFXgDjglgh00VRAHP7u1Rcu4
 l75w1xInsg==
In-Reply-To: <b2624e84-6fab-44a3-affc-ce0847cd3da4@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 4/22/2025 2:57 AM, Jürgen Groß wrote:
> On 22.04.25 10:22, Xin Li (Intel) wrote:
>> The story started from tglx's reply in [1]:
>>
>>    For actual performance relevant code the current PV ops mechanics
>>    are a horrorshow when the op defaults to the native instruction.
>>
>>    look at wrmsrl():
>>
>>    wrmsrl(msr, val
>>     wrmsr(msr, (u32)val, (u32)val >> 32))
>>      paravirt_write_msr(msr, low, high)
>>        PVOP_VCALL3(cpu.write_msr, msr, low, high)
>>
>>    Which results in
>>
>>     mov    $msr, %edi
>>     mov    $val, %rdx
>>     mov    %edx, %esi
>>     shr    $0x20, %rdx
>>     call    native_write_msr
>>
>>    and native_write_msr() does at minimum:
>>
>>     mov    %edi,%ecx
>>     mov    %esi,%eax
>>     wrmsr
>>     ret
>>
>>    In the worst case 'ret' is going through the return thunk. Not to
>>    talk about function prologues and whatever.
>>
>>    This becomes even more silly for trivial instructions like STI/CLI
>>    or in the worst case paravirt_nop().
> 
> This is nonsense.
> 
> In the non-Xen case the initial indirect call is directly replaced with
> STI/CLI via alternative patching, while for Xen it is replaced by a direct
> call.
> 
> The paravirt_nop() case is handled in alt_replace_call() by replacing the
> indirect call with a nop in case the target of the call was paravirt_nop()
> (which is in fact no_func()).
> 
>>
>>    The call makes only sense, when the native default is an actual
>>    function, but for the trivial cases it's a blatant engineering
>>    trainwreck.
> 
> The trivial cases are all handled as stated above: a direct replacement
> instruction is placed at the indirect call position.

The above comment was given in 2023 IIRC, and you have addressed it.

> 
>> Later a consensus was reached to utilize the alternatives mechanism to
>> eliminate the indirect call overhead introduced by the pv_ops APIs:
>>
>>      1) When built with !CONFIG_XEN_PV, X86_FEATURE_XENPV becomes a
>>         disabled feature, preventing the Xen code from being built
>>         and ensuring the native code is executed unconditionally.
> 
> This is the case today already. There is no need for any change to have
> this in place.
> 
>>
>>      2) When built with CONFIG_XEN_PV:
>>
>>         2.1) If not running on the Xen hypervisor (!X86_FEATURE_XENPV),
>>              the kernel runtime binary is patched to unconditionally
>>              jump to the native MSR write code.
>>
>>         2.2) If running on the Xen hypervisor (X86_FEATURE_XENPV), the
>>              kernel runtime binary is patched to unconditionally jump
>>              to the Xen MSR write code.
> 
> I can't see what is different here compared to today's state.
> 
>>
>> The alternatives mechanism is also used to choose the new immediate
>> form MSR write instruction when it's available.
> 
> Yes, this needs to be added.
> 
>> Consequently, remove the pv_ops MSR write APIs and the Xen callbacks.
> 
> I still don't see a major difference to today's solution.

The existing code generates:

     ...
     bf e0 06 00 00          mov    $0x6e0,%edi
     89 d6                   mov    %edx,%esi
     48 c1 ea 20             shr    $0x20,%rdx
     ff 15 07 48 8c 01       call   *0x18c4807(%rip)  # <pv_ops+0xb8>
     31 c0                   xor    %eax,%eax
     ...

And on native, the indirect call instruction is patched to a direct call
as you mentioned:

     ...
     bf e0 06 00 00          mov    $0x6e0,%edi
     89 d6                   mov    %edx,%esi
     48 c1 ea 20             shr    $0x20,%rdx
     e8 60 3e 01 00          call   <{native,xen}_write_msr> # direct
     90                      nop
     31 c0                   xor    %eax,%eax
     ...


This patch set generates assembly w/o CALL on native:

     ...
     e9 e6 22 c6 01          jmp    1f   # on native or nop on Xen
     b9 e0 06 00 00          mov    $0x6e0,%ecx
     e8 91 d4 fa ff          call   ffffffff8134ee80 <asm_xen_write_msr>
     e9 a4 9f eb 00          jmp    ffffffff8225b9a0 <__x86_return_thunk>
         ...
1:  b9 e0 06 00 00          mov    $0x6e0,%ecx   # immediate form here
     48 89 c2                mov    %rax,%rdx
     48 c1 ea 20             shr    $0x20,%rdx
     3e 0f 30                ds wrmsr
     ...

It's not a major change, but when it is patched to use the immediate 
form MSR write instruction, it's straightforwardly streamlined.

> 
> Only the "paravirt" term has been eliminated.

Yes.

But a PV guest doesn't operate at the highest privilege level, which
means MSR instructions typically result in a #GP fault.  I actually 
think the pv_ops MSR APIs are unnecessary because of this inherent
limitation.

Looking at the Xen MSR code, except PMU and just a few MSRs, it falls
back to executes native MSR instructions.  As MSR instructions trigger
#GP, Xen takes control and handles them in 2 ways:

   1) emulate (or ignore) a MSR operation and skip the guest instruction.

   2) inject the #GP back to guest OS and let its #GP handler handle it.
      But Linux MSR exception handler just ignores the MSR instruction
      (MCE MSR exception will panic).

So why not let Xen handle all the details which it already tries to do?
(Linux w/ such a change may not be able to run on old Xen hypervisors.)

BTW, if performance is a concern, writes to MSR_KERNEL_GS_BASE and
MSR_GS_BASE anyway are hpyercalls into Xen.

Thanks!
     Xin


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 08:57:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 08:57:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.964234.1355082 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7Vv7-0002ke-GN; Wed, 23 Apr 2025 08:57:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 964234.1355082; Wed, 23 Apr 2025 08:57: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 1u7Vv7-0002kX-CT; Wed, 23 Apr 2025 08:57:29 +0000
Received: by outflank-mailman (input) for mailman id 964234;
 Wed, 23 Apr 2025 08:57: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=rvAI=XJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u7Vv6-0002kQ-5x
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 08:57:28 +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 fae6e0c7-2020-11f0-9eb0-5ba50f476ded;
 Wed, 23 Apr 2025 10:57:27 +0200 (CEST)
Received: by mail-wr1-x42f.google.com with SMTP id
 ffacd0b85a97d-39c1efc4577so3233421f8f.0
 for <xen-devel@lists.xenproject.org>; Wed, 23 Apr 2025 01:57:27 -0700 (PDT)
Received: from [10.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-39f069df9fcsm12811759f8f.16.2025.04.23.01.57.25
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 23 Apr 2025 01:57: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: fae6e0c7-2020-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745398646; x=1746003446; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=dY6sI1kfD+bgQVJ9TFVem7ucYgEopEx44l7CgXAfIfc=;
        b=XVTYTLvg+JmOeXGlpUOfuJLr5WAcPTWEJnazvS48ljRx/GHTicEBdkTSfqdee+/fG1
         dpDcHmj4QEUMGvC54wLX1+h38mWcm3RLtvE1YvTiNRPnn0YZhQCgQZJpKn6CkYD0N3iF
         HP+opHI4Zz0A1RxNCtBmg6wNBgT4PICFi5oZADwJfDj//ao/F8wPXG/50+F4Idzl/SXV
         Z6R5gdgFkZOG0NCHqhw1IGJsFqz5IwFADFjiab8AjuTvKu0XS9xKjKHRZCSS2iXL5p2U
         DZ7hewhUjMbgEX1wczyiWFrNmgz5TUpwEAL6VMGbQ26x00jZJb7q4pLIDHbWWkVNngx7
         V9yg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745398646; x=1746003446;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=dY6sI1kfD+bgQVJ9TFVem7ucYgEopEx44l7CgXAfIfc=;
        b=uPG2Qa008fx2BDW+DLnVL60FTxSVCwqFaxnIWkIJSmk0lmrgA0LFb/dC90yuNW2CNw
         ci+tlJzH4u/ITNSG/tf3LelR0kUP6faTAHCq6Dj9kjnbsJMC8U9G1ZF7uAAsrx4jKzUJ
         1OF0pA234XtvQRAAlhFssGYKzONH3tJ9FjFEKjHr5ji/v0hSPo9JPKjXAEJs5u4f9iEE
         SV6OFzSwJKtzT70IjxWvKbWqBQ/aZZyx08qWRNxP/UVb9HuCx5cAnGHBEwBevMEnCH6v
         TDhUtA8dYuX4CsiJtC8pp6B5X07PD6kzsduxVMRokbtUzGMozxC7rooaX4LRrQnanWKi
         A6WQ==
X-Forwarded-Encrypted: i=1; AJvYcCWfn4Dy20MiD0kIa3UzL9sMYcg1V6a3C55GvBh8AZDESmMLYVyVGVivjuHiFqzinXqDWbiEf4xrAGM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YweO5XsTBjW7EvA1dKnTneIC72sLFk0zZ09YHsgsRYMvsfYOrC5
	mmVF+USx72FRz4SRHZoX3RyzoNAmfP/dQxDCKmOf988IMprsSGWJFiQP9Ys9bY916Usp+02aL2I
	=
X-Gm-Gg: ASbGncuqmgfBbrAmqZpPqlLpoB0uCZPZUzvEyW0Zqmmz43VkMhqhhUrBNZdECC5PQB6
	vWydYXMv2rMCENZKlQrpu8GLD53zYJIjjbofEmcP1jhrVLSl6hq+PoHdb2Pa6jQi9E4UwBwU3yo
	PrvLDJg0f8rjyrJ8BR0/J9/nj2zBWvW7O05DpS3rpjxC6aYUadPQeRir/+g6ItdtNUZIE4SLGB6
	TVJFgULpfQ05e02V1kP6WULiamKD77C9DWDdcGZACHoV0dSt9RGQtnoJ+WNaqTgYLjDbRcOc5Lg
	La+715u8PPvgGaXpEkfxyeVXixgUquY/8nxAaccW5A250yUvJizn6r87vUoFSKl1SN2VCX+Gw5Y
	IIyra2HKc7wSeS2ak1OyjN3IxTg==
X-Google-Smtp-Source: AGHT+IEiZdZF+jALvaCxg9Uy3GSsIzUZGBi6I9mboqb3H+CbMZRDWSFyTdvfBNnvIWZItEjr34LLIQ==
X-Received: by 2002:a5d:5f54:0:b0:391:22a9:4408 with SMTP id ffacd0b85a97d-39efba4ad94mr14654862f8f.16.1745398646259;
        Wed, 23 Apr 2025 01:57:26 -0700 (PDT)
Message-ID: <2de9f9a8-a785-445b-9ca3-97c6ba7285d6@suse.com>
Date: Wed, 23 Apr 2025 10:57:25 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/intel: workaround several MONITOR/MWAIT errata
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: <20250417161913.14661-1-roger.pau@citrix.com>
 <463cd02d-febc-4878-90b5-9272f91b9033@suse.com>
 <aAioMDTUgjn3MJS2@macbook.lan>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <aAioMDTUgjn3MJS2@macbook.lan>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 23.04.2025 10:45, Roger Pau Monné wrote:
> On Tue, Apr 22, 2025 at 10:26:37AM +0200, Jan Beulich wrote:
>> On 17.04.2025 18:19, Roger Pau Monne wrote:
>>> @@ -380,6 +380,43 @@ static void probe_c3_errata(const struct cpuinfo_x86 *c)
>>>      }
>>>  }
>>>  
>>> +/*
>>> + * APL30: One use of the MONITOR/MWAIT instruction pair is to allow a logical
>>> + * processor to wait in a sleep state until a store to the armed address range
>>> + * occurs. Due to this erratum, stores to the armed address range may not
>>> + * trigger MWAIT to resume execution.
>>> + *
>>> + * ICX143: Under complex microarchitectural conditions, a monitor that is armed
>>> + * with the MWAIT instruction may not be triggered, leading to a processor
>>> + * hang.
>>> + *
>>> + * LNL030: Problem P-cores may not exit power state Core C6 on monitor hit.
>>
>> I didn't manage to spot all three spec updates; none of these have a ucode fix,
>> hence permitting the workaround to be avoided?
>>
>> Since CPX is 3rd Gen Xeon Scalable just like ICX is, I'm surprised that one's
>> unaffected. The most recent spec update there is a year old than ICX'es, so
>> may simply be too old to include the erratum?
>>
>> Sunny Cove is used by further Icelake models - they're known to be unaffected?
> 
> FWIW, client IceLake also seems to be unaffected, so I don't really
> know.  So far I've only found this issue in the ICX spec update.  The
> fix for Linux limits this further to model 106 only.
> 
>>> + * Force the sending of an IPI in those cases.
>>> + */
>>> +static void probe_mwait_errata(void)
>>> +{
>>> +    static const struct x86_cpu_id models[] = {
>>> +        /* Apollo Lake */
>>> +        INTEL_FAM6_MODEL(0x5C),
>>> +        /* Ice Lake */
>>> +        INTEL_FAM6_MODEL(0x6A),
>>> +        INTEL_FAM6_MODEL(0x6C),
>>> +        /* Lunar Lake */
>>> +        INTEL_FAM6_MODEL(0xBD),
>>
>> Use identifiers from intel-family.h here?
> 
> Sure.
> 
>>> +        { }
>>> +    };
>>> +#undef INTEL_FAM6_MODEL
>>> +
>>> +    if ( boot_cpu_has(X86_FEATURE_MONITOR) && !force_mwait_ipi_wakeup &&
>>> +         x86_match_cpu(models) )
>>> +    {
>>> +        printk(XENLOG_WARNING
>>> +               "Forcing IPI MWAIT wakeup due to CPU erratum\n");
>>> +        force_mwait_ipi_wakeup = true;
>>> +    }
>>> +}
>>
>> Do we really need to cater for asymmetric systems? IOW can't we do this once
>> on the BSP? Otherwise - why the use of boot_cpu_has() here? Oh, wait ...
>>
>>> @@ -406,6 +443,8 @@ static void Intel_errata_workarounds(struct cpuinfo_x86 *c)
>>>  		__set_bit(X86_FEATURE_CLFLUSH_MONITOR, c->x86_capability);
>>>  
>>>  	probe_c3_errata(c);
>>> +	if (c == &boot_cpu_data)
>>> +		probe_mwait_errata();
>>>  }
>>
>> ..., you do this for the BSP only. Then why's the function not __init and
>> the global variable not __ro_after_init (and models[] __initconst)?
>>
>> (Later) Except that this path is also taken for S3 resume, from
>> recheck_cpu_features(). This shouldn't alter the variable value anymore,
>> though. A disagreement ought to result in recheck_cpu_features() to
>> report failure. (Imo perhaps better to avoid the call above during resume.)
> 
> I did consider to limit the call based on system_state, wasn't sure
> whether that would be more churn than help.

The fundamental expectation is that such aspects don't changes across
S3. I'd suggest to add the extra check, but I wouldn't insist; what I'd
like to see is the variable becoming __ro_after_init, though (whichever
way this is being arranged for).

> LNL030 has a reference to: "It may be possible for the BIOS to contain
> a workaround for this erratum." so wasn't fully sure we wouldn't need
> to check for this in all cores if there's some firmware fix for it
> that Xen could identify.

Usually this means a ucode update (occasionally it may also be a chipset
config that firmware can fiddle with), in which case we wouldn't
normally (i.e. unless in critical situations) add a workaround at all.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 09:01:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 09:01:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.964247.1355090 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7Vyl-0004cn-Us; Wed, 23 Apr 2025 09:01:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 964247.1355090; Wed, 23 Apr 2025 09:01:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7Vyl-0004cg-SK; Wed, 23 Apr 2025 09:01:15 +0000
Received: by outflank-mailman (input) for mailman id 964247;
 Wed, 23 Apr 2025 09:01:14 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=rvAI=XJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u7Vyk-0004Zc-Hn
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 09:01:14 +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 812ead0d-2021-11f0-9ffb-bf95429c2676;
 Wed, 23 Apr 2025 11:01:12 +0200 (CEST)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-43cf0d787eeso70968595e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 23 Apr 2025 02:01:12 -0700 (PDT)
Received: from [10.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-39efa4a4d67sm18271358f8f.94.2025.04.23.02.01.11
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 23 Apr 2025 02:01: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: 812ead0d-2021-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745398872; x=1746003672; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=B3dvFG9iWRanZSV7bn6YlsQ0m12g56pjRmpydzDPJbc=;
        b=H1DMGJqf+EALTdqSHufBpsn0baRCqR+MZJf4ua2L97kL2mLj5aXcJ39kABOogpHQ7e
         xNb48FU54JLGf6JIthGnjRZ1gFuSNaEAanp3Y5TjMuLHI7uN/3a5ZoRXavBFEp43IZep
         qGJpnM7wIBCFcRFZbYUCCC7GI43FRsZ94LaGstZTP8QBSl01LKr9RPd4OZz98Kt3US2l
         IwH42VzwGiAADEV5iYMKNUaAffFTA5RwwcdrmGU7Qv2l4fQMi2FohV6SzKDPjgnkm6JN
         9J5xocxlLwXA0waEl6ayFtkFZnt0o09RdNFkTdsqDg/EmTva0ZXnoVqnu1EYe/EjCtTf
         n40w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745398872; x=1746003672;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=B3dvFG9iWRanZSV7bn6YlsQ0m12g56pjRmpydzDPJbc=;
        b=l64CLbPZYocbFCM5GZx0Epw4EyjAMX9Wx7uEMxb8NQaS+z1ERFdqTfL6O2RtrZcS1o
         J/Uo8BMn/rXTktgA3OelW/qnHWGjk0cEOic+e6eZyZ8TUqx+oh0/BSDhZHlc4ZY1aT/y
         dMQFEOMfP8AOFvwlUJlbLErpCZUFiH5Rsm8WtKYbk3Cc0+xgLWUYwkOIwTDPMbt/lyO6
         yuikU7/3oz0E/xxXQnd+KVduIxRKK+vx9bSRUhXmUbBCuPfOKADqAd3PtK05pNy4AdNV
         pOK4KZLrSX5VLBKQaYkxkp7hUJI2TTaCTTZ+R51jRIzJxmESzAN1Q/nH4cFk8wqVnOQn
         86tQ==
X-Forwarded-Encrypted: i=1; AJvYcCXVOvfIjMVB5yz8dzW4dLGmTQpcj9a/+a0IJIBo/OhewSPpPal7pH7Nh85l7rAwzn2q5sUlyn1vQWE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzwQdgZhjHtyRt6MMc8EMsVkuM+TGAg6t/6uuz4qAWmutaNpN1u
	YPkH3ZJHMw9hAScqZpyAdWlnZYDErqinxZwdArG0rNvOp8tFGhyXKtWcZMqsQQ==
X-Gm-Gg: ASbGncvSc5VQVyPXp1vc8z6d+JhE5fL1cMP/kYB8MkankT4EcdGH8WgdWNfkJObfBNh
	Q8EjVEum6WlqJqMlNnX/2JKlzRHaqEFIDo/qdw1Wcq1YH7R28SAUjsFk1dK3nxKa+ns1npg+jME
	vDsgNDK8/NZSCo2uwh/zsUm/9oEs4vAYa/Toaq3fm/mdKEPJDAolNZD1omcHUjumgC7GARPEzMA
	b7ywIJtdyN0kWNxLCyn08uuSJrZUmMBOuiRGLy080d4GaGpYE6n9asKJGNl1IaxlCtHt7MV4bkf
	RPgHNZGh0RRdxRZPpj2K7vg4iRXG2ETWvl4otT6SafmXZcs2yDQbURvNyl4+yiR6Hf9DupIPS49
	TnC6xdkcwdtTVC0ZMFDfWeDJupA==
X-Google-Smtp-Source: AGHT+IHPn0NOnzZ88ejJ0tlUlcPnkNyRMDW73gL+FBi5BSGcPS8AiMDuUt1K1eYzb8DQch8i8ted5Q==
X-Received: by 2002:a05:6000:1888:b0:390:f358:85db with SMTP id ffacd0b85a97d-39efba5edf2mr14567436f8f.30.1745398871758;
        Wed, 23 Apr 2025 02:01:11 -0700 (PDT)
Message-ID: <e90b8723-3c15-4488-bc7f-b765dcc92ef6@suse.com>
Date: Wed, 23 Apr 2025 11:01:10 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 7/8] x86/altcall: Switch to simpler scheme
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: <20250423010237.1528582-1-andrew.cooper3@citrix.com>
 <20250423010237.1528582-8-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: <20250423010237.1528582-8-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 23.04.2025 03:02, Andrew Cooper wrote:
> --- a/xen/arch/x86/alternative.c
> +++ b/xen/arch/x86/alternative.c
> @@ -378,13 +378,6 @@ static int init_or_livepatch _apply_alternatives(struct alt_instr *start,
>          text_poke(orig, buf, total_len);
>      }
>  
> -    /*
> -     * Clobber endbr64 instructions now that altcall has finished optimising
> -     * all indirect branches to direct ones.
> -     */
> -    if ( force && system_state < SYS_STATE_active )
> -        seal_endbr64();
> -
>      return 0;
>  }
>  
> @@ -533,6 +526,8 @@ static int __init cf_check nmi_apply_alternatives(
>              rc = apply_alt_calls(__alt_call_sites_start, __alt_call_sites_end);
>              if ( rc )
>                  panic("Unable to apply alternative calls: %d\n", rc);
> +
> +            seal_endbr64();
>          }

Are you deliberately losing the comment? Other than this:
Reviewed-by: Jan Beulich <jbeulich@suse.com>

Jan


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 09:03:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 09:03:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.964260.1355100 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7W0n-0005df-DM; Wed, 23 Apr 2025 09:03:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 964260.1355100; Wed, 23 Apr 2025 09:03:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7W0n-0005dY-Am; Wed, 23 Apr 2025 09:03:21 +0000
Received: by outflank-mailman (input) for mailman id 964260;
 Wed, 23 Apr 2025 09:03: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=rvAI=XJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u7W0l-0005XX-SS
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 09:03:19 +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 cc2831f3-2021-11f0-9ffb-bf95429c2676;
 Wed, 23 Apr 2025 11:03:18 +0200 (CEST)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-43edecbfb46so45399145e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 23 Apr 2025 02:03:18 -0700 (PDT)
Received: from [10.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-39efa4930f1sm18250219f8f.61.2025.04.23.02.03.17
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 23 Apr 2025 02:03: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: cc2831f3-2021-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745398997; x=1746003797; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=aJRk4zUyifB+S26H2a6JaQi9fjlcm6yswYGZ7dgGZYY=;
        b=N8fr5pFKSLy3BR3yDV7UQHv97m7wXRlhQgM4L/kNA1byWIQr61AlrVNZx330myL5Yu
         5AjVv5UXs+65Rm1cZhvegJtg3pZxhRSqLeZD036yoyTWq+rrpMyDEQJanxqWQRTi/r6A
         1EknCf0MLvoLCwBEndmO5ad9EQ42BNTVscRl8gkGDlu47Qa7w6uUBx+O50Z4A1klIDEk
         sx0Eyfn3wsbP17um7KsYm9iVkrIbQPYRR6hlPBRvjg3Q2tIbnW8PBrXG8pmzwyz+QQcF
         a0kL4RomLawNKSeAs0dfvUpjID2SIbnHHF7R5PzDhccvtfEkvhDc/dl565EFm33nSRlx
         J6VA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745398997; x=1746003797;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=aJRk4zUyifB+S26H2a6JaQi9fjlcm6yswYGZ7dgGZYY=;
        b=pBh8quB6wzXufesRMI6CCntEGh55Xm+CDXEKEoRjdqRL1wvGDy2w1bWbWFvXhGZ/52
         srhlFurCg7y3l1yzDkNTttJCmnLZYMTEIpq1wubSIikzzEKbyPRUF2TyVpo6y7bdcD5l
         2kV+cHgMHZ3mbz1TWyVkK0ki0Z4URd/tzJk/ULQl+3lXUquTCpRT5VX3484OQXybYk1t
         L7fMWwLhoVjkDPP0tK/Tg5khmq4dcsl2JCZrQhzpmm6e4cThzqLtmuALuloQpr8/5iCC
         X2PyxgcAPC8SY8Vx7erafwROY0DRhZL3zcypVRTn7IyO1BEKqsqczCvF4sOMeeLrjokz
         3q8w==
X-Forwarded-Encrypted: i=1; AJvYcCXHkBjtzdSg+BZfK5+w+FwPBfXM9JlZhZ3+k7xAheK26n567/ZIWsOJ8gCntT1DCCxpCHh0Ksn2CJg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzMD5kSrwXKEAluWDQGk5JqLqqH9iK8gXNpHxSioqkpGhk+a7+0
	SOjul4FQMcRH3YCcDNytY7dJSeQlXws39UGwovZqpLDFA+swN/4M7+MaUPOqSA==
X-Gm-Gg: ASbGncsoWh7hG0khl2fbo8sjdd7gfur1DaDS9oI/CH0xj50990KJV3rDqUoiFouc/r5
	L4yGY+g/MzleQt91griOyjF6ohqIDa7UkVeM/k5RpdJkqwkqLPzaJakBubB7zH1xctyZXTTlFL2
	FbBDmR1sbVkCmCCzsFGh282DIWbbMAPnbI8iPvNZ/zF3seZFqUr/p+hDnmE3SHKeS3Y8r5t5L5C
	jKsTjECIoTWU/Ib01Z4XbHCaFJ2dBfQlWDoWG9rkKVo8Wp2a86jL9EG2FgAYbmghyHBIKvoQBks
	GTStFUfq3bTGjEPDOVbWsRjO3LcOFDGB+X9fCj8wQo25QhaUSw1x3PMvHDoGG9Gx+i8wCxngMJ6
	/WNhNamiHZziVnlYhYfVbPeWTtg==
X-Google-Smtp-Source: AGHT+IEIftNNPqi2w8uWey2LnHLToql20K2N2toCql/F5Ma7lTgi9lKIs6nvjOdnZGCpAT0f0nPz5A==
X-Received: by 2002:a05:6000:2403:b0:39c:1f04:a646 with SMTP id ffacd0b85a97d-39efba45f64mr14697703f8f.13.1745398997591;
        Wed, 23 Apr 2025 02:03:17 -0700 (PDT)
Message-ID: <62eb7446-0fec-46e2-965b-0dbb7f025cc8@suse.com>
Date: Wed, 23 Apr 2025 11:03:16 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 8/8] x86/alternatives: Simplify _apply_alternatives() now
 altcall is separate
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: <20250423010237.1528582-1-andrew.cooper3@citrix.com>
 <20250423010237.1528582-9-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: <20250423010237.1528582-9-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 23.04.2025 03:02, Andrew Cooper wrote:
> With altcall handled separately, the special case in _apply_alternatives() is
> unused and can be dropped.  The force parameter (used to signify the seal
> pass) can be removed too.
> 
> In turn, nmi_apply_alternatives() no longer needs to call
> _apply_alternatives() on the second pass.
> 
> 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 Wed Apr 23 09:04:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 09:04:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.964270.1355111 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7W1p-00069G-NZ; Wed, 23 Apr 2025 09:04:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 964270.1355111; Wed, 23 Apr 2025 09:04:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7W1p-000697-KJ; Wed, 23 Apr 2025 09:04:25 +0000
Received: by outflank-mailman (input) for mailman id 964270;
 Wed, 23 Apr 2025 09:04: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=ZaJ6=XJ=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u7W1p-000691-2y
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 09:04:25 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f2489c36-2021-11f0-9eb0-5ba50f476ded;
 Wed, 23 Apr 2025 11:04:23 +0200 (CEST)
Received: from [192.168.7.202] ([71.202.166.45]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53N93fQA3189218
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NO);
 Wed, 23 Apr 2025 02:03:42 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f2489c36-2021-11f0-9eb0-5ba50f476ded
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53N93fQA3189218
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745399025;
	bh=u0XOm4Pe1y26VX9KraE8lCfVMIhih5CUvlEon/+N7r8=;
	h=Date:Subject:To:Cc:References:From:In-Reply-To:From;
	b=jHhglhXvhVyTJ9jbGbBEsLpKKKBonwgJfuJebJkfdM2ZVf587fR3O1LmBPaAX8A+7
	 Y/kQ8sy1SWT03AqNGStd9X6lus78yvsubZ9m4m+1Q78rLFEGgbDfDd5TAdwoyWFOo7
	 QE2PAqjPMr7Nf9QsR+7zMCqsy41tHPFwJQOXdldXH4Uef0v3MZmMgxjyvQfzSoLRiS
	 nHnSLuwIeibOtU52hStVUmkHsV08RKi82jG7O+XUZkO1n+JM2syhx8Jp+OwjcGZBEa
	 gS0TDoUjBiODs26vxsCih9QvNtT077p8SGL+iciRZQ/Xtdur9QA3BHiJOB0btfGNTu
	 cVHFdG56BYXAQ==
Message-ID: <7899fcd9-3492-49d3-8097-a3ddefaaeef0@zytor.com>
Date: Wed, 23 Apr 2025 02:03:41 -0700
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH v2 22/34] x86/msr: Utilize the alternatives mechanism
 to read MSR
To: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>,
        linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
        linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
        netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        acme@kernel.org, andrew.cooper3@citrix.com, peterz@infradead.org,
        namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com
References: <20250422082216.1954310-1-xin@zytor.com>
 <20250422082216.1954310-23-xin@zytor.com>
 <080351cb-6c3d-4540-953d-6205f1ff0745@suse.com>
Content-Language: en-US
From: Xin Li <xin@zytor.com>
Autocrypt: addr=xin@zytor.com; keydata=
 xsDNBGUPz1cBDACS/9yOJGojBFPxFt0OfTWuMl0uSgpwk37uRrFPTTLw4BaxhlFL0bjs6q+0
 2OfG34R+a0ZCuj5c9vggUMoOLdDyA7yPVAJU0OX6lqpg6z/kyQg3t4jvajG6aCgwSDx5Kzg5
 Rj3AXl8k2wb0jdqRB4RvaOPFiHNGgXCs5Pkux/qr0laeFIpzMKMootGa4kfURgPhRzUaM1vy
 bsMsL8vpJtGUmitrSqe5dVNBH00whLtPFM7IbzKURPUOkRRiusFAsw0a1ztCgoFczq6VfAVu
 raTye0L/VXwZd+aGi401V2tLsAHxxckRi9p3mc0jExPc60joK+aZPy6amwSCy5kAJ/AboYtY
 VmKIGKx1yx8POy6m+1lZ8C0q9b8eJ8kWPAR78PgT37FQWKYS1uAroG2wLdK7FiIEpPhCD+zH
 wlslo2ETbdKjrLIPNehQCOWrT32k8vFNEMLP5G/mmjfNj5sEf3IOKgMTMVl9AFjsINLHcxEQ
 6T8nGbX/n3msP6A36FDfdSEAEQEAAc0WWGluIExpIDx4aW5Aenl0b3IuY29tPsLBDQQTAQgA
 NxYhBIUq/WFSDTiOvUIqv2u9DlcdrjdRBQJlD89XBQkFo5qAAhsDBAsJCAcFFQgJCgsFFgID
 AQAACgkQa70OVx2uN1HUpgv/cM2fsFCQodLArMTX5nt9yqAWgA5t1srri6EgS8W3F+3Kitge
 tYTBKu6j5BXuXaX3vyfCm+zajDJN77JHuYnpcKKr13VcZi1Swv6Jx1u0II8DOmoDYLb1Q2ZW
 v83W55fOWJ2g72x/UjVJBQ0sVjAngazU3ckc0TeNQlkcpSVGa/qBIHLfZraWtdrNAQT4A1fa
 sWGuJrChBFhtKbYXbUCu9AoYmmbQnsx2EWoJy3h7OjtfFapJbPZql+no5AJ3Mk9eE5oWyLH+
 QWqtOeJM7kKvn/dBudokFSNhDUw06e7EoVPSJyUIMbYtUO7g2+Atu44G/EPP0yV0J4lRO6EA
 wYRXff7+I1jIWEHpj5EFVYO6SmBg7zF2illHEW31JAPtdDLDHYcZDfS41caEKOQIPsdzQkaQ
 oW2hchcjcMPAfyhhRzUpVHLPxLCetP8vrVhTvnaZUo0xaVYb3+wjP+D5j/3+hwblu2agPsaE
 vgVbZ8Fx3TUxUPCAdr/p73DGg57oHjgezsDNBGUPz1gBDAD4Mg7hMFRQqlzotcNSxatlAQNL
 MadLfUTFz8wUUa21LPLrHBkUwm8RujehJrzcVbPYwPXIO0uyL/F///CogMNx7Iwo6by43KOy
 g89wVFhyy237EY76j1lVfLzcMYmjBoTH95fJC/lVb5Whxil6KjSN/R/y3jfG1dPXfwAuZ/4N
 cMoOslWkfZKJeEut5aZTRepKKF54T5r49H9F7OFLyxrC/uI9UDttWqMxcWyCkHh0v1Di8176
 jjYRNTrGEfYfGxSp+3jYL3PoNceIMkqM9haXjjGl0W1B4BidK1LVYBNov0rTEzyr0a1riUrp
 Qk+6z/LHxCM9lFFXnqH7KWeToTOPQebD2B/Ah5CZlft41i8L6LOF/LCuDBuYlu/fI2nuCc8d
 m4wwtkou1Y/kIwbEsE/6RQwRXUZhzO6llfoN96Fczr/RwvPIK5SVMixqWq4QGFAyK0m/1ap4
 bhIRrdCLVQcgU4glo17vqfEaRcTW5SgX+pGs4KIPPBE5J/ABD6pBnUUAEQEAAcLA/AQYAQgA
 JhYhBIUq/WFSDTiOvUIqv2u9DlcdrjdRBQJlD89ZBQkFo5qAAhsMAAoJEGu9DlcdrjdR4C0L
 /RcjolEjoZW8VsyxWtXazQPnaRvzZ4vhmGOsCPr2BPtMlSwDzTlri8BBG1/3t/DNK4JLuwEj
 OAIE3fkkm+UG4Kjud6aNeraDI52DRVCSx6xff3bjmJsJJMb12mWglN6LjdF6K+PE+OTJUh2F
 dOhslN5C2kgl0dvUuevwMgQF3IljLmi/6APKYJHjkJpu1E6luZec/lRbetHuNFtbh3xgFIJx
 2RpgVDP4xB3f8r0I+y6ua+p7fgOjDLyoFjubRGed0Be45JJQEn7A3CSb6Xu7NYobnxfkwAGZ
 Q81a2XtvNS7Aj6NWVoOQB5KbM4yosO5+Me1V1SkX2jlnn26JPEvbV3KRFcwV5RnDxm4OQTSk
 PYbAkjBbm+tuJ/Sm+5Yp5T/BnKz21FoCS8uvTiziHj2H7Cuekn6F8EYhegONm+RVg3vikOpn
 gao85i4HwQTK9/D1wgJIQkdwWXVMZ6q/OALaBp82vQ2U9sjTyFXgDjglgh00VRAHP7u1Rcu4
 l75w1xInsg==
In-Reply-To: <080351cb-6c3d-4540-953d-6205f1ff0745@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 4/22/2025 4:12 AM, Jürgen Groß wrote:
>> +
>> +static __always_inline bool __rdmsrq(u32 msr, u64 *val, int type)
>> +{
>> +    bool ret;
>> +
>> +#ifdef CONFIG_XEN_PV
>> +    if (cpu_feature_enabled(X86_FEATURE_XENPV))
>> +        return __xenpv_rdmsrq(msr, val, type);
> 
> I don't think this will work for the Xen PV case.

Well, I have been testing the code on xen-4.17 coming with Ubuntu
24.04.2 LTS :)

> 
> X86_FEATURE_XENPV is set only after the first MSR is being read.

No matter whether the code works or not, good catch!

> 
> This can be fixed by setting the feature earlier, but it shows that the
> paravirt feature has its benefits in such cases.

See my other reply to let Xen handle all the details.

Plus the code actually works, I would actually argue the opposite :-P





From xen-devel-bounces@lists.xenproject.org Wed Apr 23 09:07:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 09:07:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.964282.1355121 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7W56-0006iW-4K; Wed, 23 Apr 2025 09:07:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 964282.1355121; Wed, 23 Apr 2025 09:07: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 1u7W56-0006iP-1M; Wed, 23 Apr 2025 09:07:48 +0000
Received: by outflank-mailman (input) for mailman id 964282;
 Wed, 23 Apr 2025 09:07: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=s+1X=XJ=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u7W55-0006iJ-HR
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 09:07:47 +0000
Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com
 [2a00:1450:4864:20::330])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6c2d202b-2022-11f0-9eb0-5ba50f476ded;
 Wed, 23 Apr 2025 11:07:46 +0200 (CEST)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-43cf257158fso39936185e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 23 Apr 2025 02:07:46 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 5b1f17b1804b1-44092d35672sm18180075e9.25.2025.04.23.02.07.45
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 23 Apr 2025 02:07: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: 6c2d202b-2022-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745399266; x=1746004066; 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=Dyba/r8Hq/bFmhw85vbT1PGniFUm6V3l4UnHwxolVho=;
        b=mo/1KPkHrfWrvVPzCBhn20IeJNmUlootWIVSHyFPqlZfGgmAiPcvzoKxZlhP9a3cqx
         ZGU0kOtxYyF5XxdpzADXZIoPqlHMFnWyE3giWWU0M0wh/9cxiFWIT/H9hiaUJtJ8f/kp
         Xy32HKABYMmIyS6a8aRNnK+TkgvADM1UqrbTc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745399266; x=1746004066;
        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=Dyba/r8Hq/bFmhw85vbT1PGniFUm6V3l4UnHwxolVho=;
        b=c36wWVtexMc/xGfuFKvmODZ7ZNnUYO1OKIkRLv23+1AlkbOsmsg16i/COiLp/aUJIr
         tfnmxENQvrJcgvjpNhxMeKco5zr5NvBA46irNuzojF1E94ctClZt2QilfbGsKU/ZAQFo
         jjiUGfrg/RTcFLZmum5jGrhUgLgkye3QyNvYMq6UOVOyjHDZ+mOFIbime0Kg+4ytbyRO
         95Hw70gTRx0edahfDhk7OTF8gVQnyhgtnGid+J9usvPuTjWdOUiJXAgaj9dEa7dSWD16
         iOxpI7/uBxRFhxtX3begZhaaCQj3C2jH+FzWrA65ZO/hqg2KByAxH2d6p762XIssFQeX
         NDww==
X-Gm-Message-State: AOJu0YzxIJcEjLggYu8td2FpkCKxAOW7qnimvVBDtH3wucu2ExWeZB3X
	nwf+QlCeLzFkxD+r7nA7x6tb3eYTdxKZAlmDGH7rM6AGV3lblGgWmFJ19VrqASM=
X-Gm-Gg: ASbGncsb1Sx1sX2KrL0O73JyqINC0+M2T/HaiXK02wydAAUKJKM1mY/q6BxMMlU84ZA
	VIX677T5LMOUckv76/aTXMwGDm2JC83TKZnDKeknBI/+t5je7qQONz2Zj/jqicHnKmGBhvfNYPO
	4IW584ZeI/GOXg/5i66B6WJcGgtFYPZLo3b3ohWkonfyI36kbOt3iO5Yb9ZJLnV6aXnHiVUiqE+
	y+Xcmt7BHw0tOWmjg4iUUrAXxXe6383xzbg9yBECk/+qCvzybrmjcwCH00uxzp7V4DIPpsxNZM4
	Hl31FBy1lHVc+FgDXgpa9l/+rRHlyHJtAqkDPB/GlAhxWA==
X-Google-Smtp-Source: AGHT+IFXXOSdBjiLnHMgavBi//E9Sa4ZdVqxgoFdJX7tJHsJgMpsWesNHBSQZy9hrMow3MLpVFAf8g==
X-Received: by 2002:a05:600c:548e:b0:43d:a90:9f1 with SMTP id 5b1f17b1804b1-4406ab67708mr140844325e9.6.1745399265956;
        Wed, 23 Apr 2025 02:07:45 -0700 (PDT)
Date: Wed, 23 Apr 2025 11:07:44 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Marek Marczykowski <marmarek@invisiblethingslab.com>
Subject: Re: [PATCH] x86: constrain sub-page access length in
 mmio_ro_emulated_write()
Message-ID: <aAit4IPZju60KEUz@macbook.lan>
References: <570ad3f2-7f3b-4579-a000-c85d27e8bf77@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <570ad3f2-7f3b-4579-a000-c85d27e8bf77@suse.com>

On Wed, Apr 23, 2025 at 10:43:56AM +0200, Jan Beulich wrote:
> Without doing so we could trigger the ASSERT_UNREACHABLE() in
> subpage_mmio_write_emulate(). A comment there actually says this
> validation would already have been done ...
> 
> Fixes: 8847d6e23f97 ("x86/mm: add API for marking only part of a MMIO page read only")
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> Alternatively we could drop comment and assertion from
> subpage_mmio_write_emulate().

I think I prefer this as it fits better with my patch to unify the
open-coded MMIO accessors, which does have an ASSERT_UNREACHABLE() for
unhandled sizes.  The return there is anyway too late IMO, as we have
possibly already mapped the page when there's no need for it.

> --- a/xen/arch/x86/mm.c
> +++ b/xen/arch/x86/mm.c
> @@ -5195,8 +5195,9 @@ int cf_check mmio_ro_emulated_write(
>          return X86EMUL_UNHANDLEABLE;
>      }
>  
> -    subpage_mmio_write_emulate(mmio_ro_ctxt->mfn, PAGE_OFFSET(offset),
> -                               p_data, bytes);
> +    if ( bytes <= 8 )
> +        subpage_mmio_write_emulate(mmio_ro_ctxt->mfn, PAGE_OFFSET(offset),
> +                                   p_data, bytes);

Should we print a debug message here saying the write is possibly
unhandled due to the access size if subpage r/o is enabled?

You might want to re-use the subpage_ro_active() I introduce to limit
the printing of the message.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 09:12:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 09:12:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.964295.1355131 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7W9k-0000Sf-Mj; Wed, 23 Apr 2025 09:12:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 964295.1355131; Wed, 23 Apr 2025 09: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 1u7W9k-0000SY-JA; Wed, 23 Apr 2025 09:12:36 +0000
Received: by outflank-mailman (input) for mailman id 964295;
 Wed, 23 Apr 2025 09:12: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=dLR5=XJ=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u7W9j-0000SQ-1o
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 09:12:35 +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 17a92dc2-2023-11f0-9eb0-5ba50f476ded;
 Wed, 23 Apr 2025 11:12:34 +0200 (CEST)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-4394a0c65fcso65894445e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 23 Apr 2025 02:12:34 -0700 (PDT)
Received: from [192.168.86.29] ([83.104.178.215])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39efa43bf2csm18246392f8f.51.2025.04.23.02.12.33
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 23 Apr 2025 02:12:33 -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: 17a92dc2-2023-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745399554; x=1746004354; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=910FBdwK5tad6IF7SFZqo3rmzRJjC91kHmQPfNmFRkw=;
        b=u50+BH+psGJNxyhzlncwsjtiZ3Nr3mM9p4QmIa9kGVsJPOqQzu+Aos3/oYrBANOKVZ
         MEqEoUrjhI+IuzZhh/JEkYKBBcd8OvNLLUnC34wIKSsA7Si+fGUFtd4VRzsg6rShMQz8
         Wjbh6A8q2dGq915PFKeAvS/4w2zjH+OhRbPbg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745399554; x=1746004354;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=910FBdwK5tad6IF7SFZqo3rmzRJjC91kHmQPfNmFRkw=;
        b=h33ZKKrx8EzT0JH+nlnZ59QtAfzfRj5gyZcGFX2t3z31lhpOnigZ+5NtgioJMQii0I
         Xn9jyFDdE7NxJBHU/OtWP4eZmpj8LF1i9Q3MN3fjb5t1Bab/1LhCclri+F103hQoBYNp
         KNcw4P3tAodTzvSJadoXHkARvJBwXorf+gqX9Xsr26F1x18bFEY6NVoDlAep0iVCwdj8
         weEU+jCJOTDOQ1LbiC0jmbvtfpJcDUn6lSFpN2SCaAXITu/DFOUdla5FGsgroLGu+oGr
         O5CEohwhEEeZFa2i/j3QAUjsQ1oHkQhQ37uLYDgjSjhiazQLgupWTB/5Pseg1zvv5tcl
         pz7A==
X-Forwarded-Encrypted: i=1; AJvYcCW+6dXOFOpaRqxKRkMnQXsc1nKHgvvLxfimQ496wRnu+PStGumfueFBbm34gz19RmfmMpMryHgZuTg=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy/sLOIyo34nV6p2I3GcgRrePlHIbd5gPlPwPYZ8QkD4BfWyg5k
	rWa/dz4l0Hy5vw7u/0Fasr8e9G5X0K6MwV9F5HSnOGME6GFkwndj1qNPq9/CMSKcdOdLZedoXkj
	/lfM=
X-Gm-Gg: ASbGncvqyhwDOrPCGD+TyXZtrUg8W7kcqnPjUz8Uqy31h9jLnCpH8bhoNfsRkQUeqrU
	rNw3s6s5JrZenOtxjayBa7Xm/jDHBRozacJMYdwNrg4mXFIbx9xQz5EnCb6AkyUIy0Pbwpo0H0T
	DM2mS98z/5sNWqaA25r94hBFtHuQJ7eJkA5FHQwSmPYuS/8hQ7M+w6t1D/sYDC4RBf1/eKwOzOV
	PGx6elH3+aStWc8TlUWVClHHFsRquFqW0UFg+gPVQqTGYRgomTsbpw44kwhLzZnU22KF2xQq7G1
	7SsXVros7Y4nRF3EBBiyqKmY1IrEjrEvE2S/fMqZKOFLeLp13XmhlyFKldD6LSaw
X-Google-Smtp-Source: AGHT+IHrdQtHjXuKhJcCw0lLp/vizyhu8UooGQUHcfMq9LnGWsowpJl16giLT8Kgg787H3MROy/hrg==
X-Received: by 2002:a05:600c:4708:b0:43d:300f:fa4a with SMTP id 5b1f17b1804b1-4406ab97c6cmr160971385e9.12.1745399553725;
        Wed, 23 Apr 2025 02:12:33 -0700 (PDT)
Message-ID: <3fec2a20-62f9-469d-9a46-cc0030356b32@citrix.com>
Date: Wed, 23 Apr 2025 10:12:32 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 7/8] x86/altcall: Switch to simpler scheme
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: <20250423010237.1528582-1-andrew.cooper3@citrix.com>
 <20250423010237.1528582-8-andrew.cooper3@citrix.com>
 <e90b8723-3c15-4488-bc7f-b765dcc92ef6@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: <e90b8723-3c15-4488-bc7f-b765dcc92ef6@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 23/04/2025 10:01 am, Jan Beulich wrote:
> On 23.04.2025 03:02, Andrew Cooper wrote:
>> --- a/xen/arch/x86/alternative.c
>> +++ b/xen/arch/x86/alternative.c
>> @@ -378,13 +378,6 @@ static int init_or_livepatch _apply_alternatives(struct alt_instr *start,
>>          text_poke(orig, buf, total_len);
>>      }
>>  
>> -    /*
>> -     * Clobber endbr64 instructions now that altcall has finished optimising
>> -     * all indirect branches to direct ones.
>> -     */
>> -    if ( force && system_state < SYS_STATE_active )
>> -        seal_endbr64();
>> -
>>      return 0;
>>  }
>>  
>> @@ -533,6 +526,8 @@ static int __init cf_check nmi_apply_alternatives(
>>              rc = apply_alt_calls(__alt_call_sites_start, __alt_call_sites_end);
>>              if ( rc )
>>                  panic("Unable to apply alternative calls: %d\n", rc);
>> +
>> +            seal_endbr64();
>>          }
> Are you deliberately losing the comment?

Yes, counterbalancing the comment gained in patch 4.

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

Thanks,

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 09:28:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 09:28:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.964306.1355141 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7WPC-0002n5-VV; Wed, 23 Apr 2025 09:28:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 964306.1355141; Wed, 23 Apr 2025 09:28: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 1u7WPC-0002my-ST; Wed, 23 Apr 2025 09:28:34 +0000
Received: by outflank-mailman (input) for mailman id 964306;
 Wed, 23 Apr 2025 09:28: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=ZaJ6=XJ=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u7WPB-0002ms-FM
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 09:28:33 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 503fee05-2025-11f0-9ffb-bf95429c2676;
 Wed, 23 Apr 2025 11:28:29 +0200 (CEST)
Received: from [192.168.7.202] ([71.202.166.45]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53N9RlMD3219913
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NO);
 Wed, 23 Apr 2025 02:27:48 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 503fee05-2025-11f0-9ffb-bf95429c2676
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53N9RlMD3219913
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745400470;
	bh=ljTCYrwFB4jWmVUKcnZoEtS1ENJ4as2xI12Y2XbkMGU=;
	h=Date:Subject:To:Cc:References:From:In-Reply-To:From;
	b=UmIumy9ccUWtp5ZpbFY6Ho9GgYRlVSRySL3D0+L6jUnzCuWo+VAXnfIYm+WcNWHcr
	 3vdBJ+wwDthlqUfiIoaN3DvHPiYn4gb/+Mbw6citZ1Nn3xuBxFNqKSFdRNvSlmfDHg
	 sgDUE/YJgzJJyaLCEhkxOt4S6E7bN3HrTuYY85xE4DOyVvo6Ap2JfPnfbPyl+GWU88
	 BCLMSAjhGktSUoCdwdyy/ZS83Z3KwNGZuWXVpY05BNcjcn6RiyoIM0nH70HIaJUZTW
	 sxPrQvxiLK2+ljs3l/mZq4cz6GbUS+eJfVvDu2BEsKu2EVOjGnH6pzErQiG0qnjLGr
	 yA9/DCpyDaO8g==
Message-ID: <7527f09c-7163-4276-b9a4-edac6c8217ae@zytor.com>
Date: Wed, 23 Apr 2025 02:27:46 -0700
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH v2 10/34] x86/msr: Convert __rdmsr() uses to
 native_rdmsrq() uses
To: Sean Christopherson <seanjc@google.com>
Cc: linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
        linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
        netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org,
        tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        acme@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com,
        peterz@infradead.org, namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, luto@kernel.org,
        boris.ostrovsky@oracle.com, kys@microsoft.com, haiyangz@microsoft.com,
        decui@microsoft.com
References: <20250422082216.1954310-1-xin@zytor.com>
 <20250422082216.1954310-11-xin@zytor.com> <aAexLqjhKncFyw2V@google.com>
Content-Language: en-US
From: Xin Li <xin@zytor.com>
Autocrypt: addr=xin@zytor.com; keydata=
 xsDNBGUPz1cBDACS/9yOJGojBFPxFt0OfTWuMl0uSgpwk37uRrFPTTLw4BaxhlFL0bjs6q+0
 2OfG34R+a0ZCuj5c9vggUMoOLdDyA7yPVAJU0OX6lqpg6z/kyQg3t4jvajG6aCgwSDx5Kzg5
 Rj3AXl8k2wb0jdqRB4RvaOPFiHNGgXCs5Pkux/qr0laeFIpzMKMootGa4kfURgPhRzUaM1vy
 bsMsL8vpJtGUmitrSqe5dVNBH00whLtPFM7IbzKURPUOkRRiusFAsw0a1ztCgoFczq6VfAVu
 raTye0L/VXwZd+aGi401V2tLsAHxxckRi9p3mc0jExPc60joK+aZPy6amwSCy5kAJ/AboYtY
 VmKIGKx1yx8POy6m+1lZ8C0q9b8eJ8kWPAR78PgT37FQWKYS1uAroG2wLdK7FiIEpPhCD+zH
 wlslo2ETbdKjrLIPNehQCOWrT32k8vFNEMLP5G/mmjfNj5sEf3IOKgMTMVl9AFjsINLHcxEQ
 6T8nGbX/n3msP6A36FDfdSEAEQEAAc0WWGluIExpIDx4aW5Aenl0b3IuY29tPsLBDQQTAQgA
 NxYhBIUq/WFSDTiOvUIqv2u9DlcdrjdRBQJlD89XBQkFo5qAAhsDBAsJCAcFFQgJCgsFFgID
 AQAACgkQa70OVx2uN1HUpgv/cM2fsFCQodLArMTX5nt9yqAWgA5t1srri6EgS8W3F+3Kitge
 tYTBKu6j5BXuXaX3vyfCm+zajDJN77JHuYnpcKKr13VcZi1Swv6Jx1u0II8DOmoDYLb1Q2ZW
 v83W55fOWJ2g72x/UjVJBQ0sVjAngazU3ckc0TeNQlkcpSVGa/qBIHLfZraWtdrNAQT4A1fa
 sWGuJrChBFhtKbYXbUCu9AoYmmbQnsx2EWoJy3h7OjtfFapJbPZql+no5AJ3Mk9eE5oWyLH+
 QWqtOeJM7kKvn/dBudokFSNhDUw06e7EoVPSJyUIMbYtUO7g2+Atu44G/EPP0yV0J4lRO6EA
 wYRXff7+I1jIWEHpj5EFVYO6SmBg7zF2illHEW31JAPtdDLDHYcZDfS41caEKOQIPsdzQkaQ
 oW2hchcjcMPAfyhhRzUpVHLPxLCetP8vrVhTvnaZUo0xaVYb3+wjP+D5j/3+hwblu2agPsaE
 vgVbZ8Fx3TUxUPCAdr/p73DGg57oHjgezsDNBGUPz1gBDAD4Mg7hMFRQqlzotcNSxatlAQNL
 MadLfUTFz8wUUa21LPLrHBkUwm8RujehJrzcVbPYwPXIO0uyL/F///CogMNx7Iwo6by43KOy
 g89wVFhyy237EY76j1lVfLzcMYmjBoTH95fJC/lVb5Whxil6KjSN/R/y3jfG1dPXfwAuZ/4N
 cMoOslWkfZKJeEut5aZTRepKKF54T5r49H9F7OFLyxrC/uI9UDttWqMxcWyCkHh0v1Di8176
 jjYRNTrGEfYfGxSp+3jYL3PoNceIMkqM9haXjjGl0W1B4BidK1LVYBNov0rTEzyr0a1riUrp
 Qk+6z/LHxCM9lFFXnqH7KWeToTOPQebD2B/Ah5CZlft41i8L6LOF/LCuDBuYlu/fI2nuCc8d
 m4wwtkou1Y/kIwbEsE/6RQwRXUZhzO6llfoN96Fczr/RwvPIK5SVMixqWq4QGFAyK0m/1ap4
 bhIRrdCLVQcgU4glo17vqfEaRcTW5SgX+pGs4KIPPBE5J/ABD6pBnUUAEQEAAcLA/AQYAQgA
 JhYhBIUq/WFSDTiOvUIqv2u9DlcdrjdRBQJlD89ZBQkFo5qAAhsMAAoJEGu9DlcdrjdR4C0L
 /RcjolEjoZW8VsyxWtXazQPnaRvzZ4vhmGOsCPr2BPtMlSwDzTlri8BBG1/3t/DNK4JLuwEj
 OAIE3fkkm+UG4Kjud6aNeraDI52DRVCSx6xff3bjmJsJJMb12mWglN6LjdF6K+PE+OTJUh2F
 dOhslN5C2kgl0dvUuevwMgQF3IljLmi/6APKYJHjkJpu1E6luZec/lRbetHuNFtbh3xgFIJx
 2RpgVDP4xB3f8r0I+y6ua+p7fgOjDLyoFjubRGed0Be45JJQEn7A3CSb6Xu7NYobnxfkwAGZ
 Q81a2XtvNS7Aj6NWVoOQB5KbM4yosO5+Me1V1SkX2jlnn26JPEvbV3KRFcwV5RnDxm4OQTSk
 PYbAkjBbm+tuJ/Sm+5Yp5T/BnKz21FoCS8uvTiziHj2H7Cuekn6F8EYhegONm+RVg3vikOpn
 gao85i4HwQTK9/D1wgJIQkdwWXVMZ6q/OALaBp82vQ2U9sjTyFXgDjglgh00VRAHP7u1Rcu4
 l75w1xInsg==
In-Reply-To: <aAexLqjhKncFyw2V@google.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 4/22/2025 8:09 AM, Sean Christopherson wrote:
> On Tue, Apr 22, 2025, Xin Li (Intel) wrote:
>> __rdmsr() is the lowest level primitive MSR read API, and its direct
>> use is NOT preferred.
> 
> Doesn't mean it's wrong.

I wouldn't go so far as to claim that it's wrong :-)

>> Use its wrapper function native_rdmsrq() instead.

The current code exhibits a somewhat haphazard use of MSR APIs, so I
wanted to clarify which API to employ in specific situations with
verbose function naming.

Here is an example that Boris had to fix the use of MSR APIs:

https://web.git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=f980f9c31a923e9040dee0bc679a5f5b09e61f40

> 
> ...
> 
>> diff --git a/arch/x86/kvm/vmx/vmx.c b/arch/x86/kvm/vmx/vmx.c
>> index 1547bfacd40f..e73c1d5ba6c4 100644
>> --- a/arch/x86/kvm/vmx/vmx.c
>> +++ b/arch/x86/kvm/vmx/vmx.c
>> @@ -380,7 +380,7 @@ static __always_inline void vmx_disable_fb_clear(struct vcpu_vmx *vmx)
>>   	if (!vmx->disable_fb_clear)
>>   		return;
>>   
>> -	msr = __rdmsr(MSR_IA32_MCU_OPT_CTRL);
>> +	msr = native_rdmsrq(MSR_IA32_MCU_OPT_CTRL);
>>   	msr |= FB_CLEAR_DIS;
>>   	native_wrmsrq(MSR_IA32_MCU_OPT_CTRL, msr);
>>   	/* Cache the MSR value to avoid reading it later */
>> @@ -7307,7 +7307,7 @@ void noinstr vmx_spec_ctrl_restore_host(struct vcpu_vmx *vmx,
>>   		return;
>>   
>>   	if (flags & VMX_RUN_SAVE_SPEC_CTRL)
>> -		vmx->spec_ctrl = __rdmsr(MSR_IA32_SPEC_CTRL);
>> +		vmx->spec_ctrl = native_rdmsrq(MSR_IA32_SPEC_CTRL);
> 
> And what guarantees that native_rdmsrq() won't have tracing?  Ugh, a later patch
> renames native_rdmsrq() => native_rdmsrq_no_trace().
> 
> I really don't like this.  It makes simple and obvious code:
> 
> 	vmx->spec_ctrl = __rdmsr(MSR_IA32_SPEC_CTRL);
> 
> so much harder to read:
> 
> 	vmx->spec_ctrl = native_rdmsrq_no_trace(MSR_IA32_SPEC_CTRL);
> 
> and does so in a way that is difficult to review, e.g. I have to peek ahead to
> understand that this is even ok.
> 
> I strongly prefer that we find a way to not require such verbose APIs, especially
> if KVM ends up using native variants throughout.  Xen PV is supposed to be the
> odd one out, yet native code is what suffers.  Blech.

Will try to figure out how to name the APIs.

One reason I chose verbose names is that short names are in use and
renaming needs to touch a lot of files (and not fun at all).

Thanks!
     Xin



From xen-devel-bounces@lists.xenproject.org Wed Apr 23 09:49:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 09:49:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.964322.1355151 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7WjC-0006wb-My; Wed, 23 Apr 2025 09:49:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 964322.1355151; Wed, 23 Apr 2025 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 1u7WjC-0006wU-Je; Wed, 23 Apr 2025 09:49:14 +0000
Received: by outflank-mailman (input) for mailman id 964322;
 Wed, 23 Apr 2025 09: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=dLR5=XJ=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u7WjB-0006wM-3b
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 09:49:13 +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 34fb1a49-2028-11f0-9eb0-5ba50f476ded;
 Wed, 23 Apr 2025 11:49:11 +0200 (CEST)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-43cfe63c592so70203385e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 23 Apr 2025 02:49:11 -0700 (PDT)
Received: from [192.168.86.29] ([83.104.178.215])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-44092d2d4fesm19785955e9.20.2025.04.23.02.49.09
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 23 Apr 2025 02:49: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: 34fb1a49-2028-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745401750; x=1746006550; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=E9z8WYu2YkEl92gvtQRHs8SL0SIMlXuE5V2XXUc3aGY=;
        b=gbUqnWmbpzideMHvzeGnD/OQwXxiWzGRnJ5iJ5EfWyraaLXsFKwRbgRTE3or5iP2Q2
         /Rh/XAXzmeL6RVqAjmOMrchVx/d47BAfB1xsAFxvpXQ0c8F3jGhB7CXulT9DX08MdsbN
         iMVSkHXj6QTNoSaaG8JyxEALONaKEQJPuJzEc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745401750; x=1746006550;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=E9z8WYu2YkEl92gvtQRHs8SL0SIMlXuE5V2XXUc3aGY=;
        b=pFaw+zB5aW9ytQCv9dRzU5z9oa6VSCGTR/c6Ef2XCFpUMq/z2ZVj4XFiR6qhHOi98X
         elcTUSH2AO80PnCBGOfsUlb57NYYi4mP2gUR+F/ra6f8mdSjTPQFZpl+1M5PCIJnhd/z
         2l2DWob1ZMUGGy5dmIHwBUPSiJdQcvu18d2v6V5nZGTBf+LlfyCCnLFmWOdtrbDSnFGm
         nqyeJHyJWkgZXpQBx3KyGyr7qVJ5701j/MiBjEMmupSStSzXvjU82Z+gOr8nmVeMB+OS
         d1vZLHRZifhdgFeNg/U65JNgp/fNTb0wdqf4LdvhFAigd3EtVQouCHpKijBhxPd9ILN5
         G8sg==
X-Forwarded-Encrypted: i=1; AJvYcCXk42zXAA4ZFHTgPDzbLVoYZHJVNgG3J2uESkiHqiJqBx9zJOUmAO0evogOR6bSsQOCOECBFQ5euU0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwYjPKXbQqEx1msXkr4AeZ8JNZJl499OF6TLSB3GMA7ki3m0ZvN
	tsUBMXYJbPAttk3MWo/eT1VNoOabsp7gKPCMbvyB9400jb6E/wQX5vRN31U3uK60J7zDslIEMDG
	lCww=
X-Gm-Gg: ASbGnct9OQ2qDHXZDl5dwxSdfRFxLfX27OyX7M6W541/IHkqrn+phZ/nGSDFTrR6vVP
	ZIZyiA1PYwCcM22exoJnwUAvKnG8T9ILnFW2gagumvS3pi1/gIy1h69HCPwm3RXYKpTgzxgo08d
	ZV0aKiY1LmtVBT9fX/2c76b2clCxKv4Db8HFzUlT+kiykCnFn/Yta/ic8q3LmTw/ohGe7JRSamM
	iN53qwfaBSrknWNOWFkqdqYvGSsfXUbeXlY0Ys38Qiuqonm9akfd+MakS05Vb/+3lVuatpmUOBu
	r1fzjRvbYrvvzy7nomZR3CsZp0SojcBKUYct9al7v9VfvGo81wwBpfJJH6NE5BDj
X-Google-Smtp-Source: AGHT+IGSPZf3mOyb57Fn1BMD8eApxx8FxU5TP+Ec1V6GitQiQZ3z+hDwcd1FUi68oa2nzzxBrYCmMA==
X-Received: by 2002:a05:600c:5491:b0:43d:45a:8fbb with SMTP id 5b1f17b1804b1-4406abfa9d3mr141199175e9.22.1745401750182;
        Wed, 23 Apr 2025 02:49:10 -0700 (PDT)
Message-ID: <fc49cdec-69aa-4ae0-8d8e-cf6d6ba8fb74@citrix.com>
Date: Wed, 23 Apr 2025 10:49:09 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86emul: adjust BSF/BSR behavior as to EFLAGS
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: <df3f3203-d660-4b7d-b771-871d16a8ec43@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: <df3f3203-d660-4b7d-b771-871d16a8ec43@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 23/04/2025 7:13 am, Jan Beulich wrote:
> SDM revision 087 points out that apparently as of quite some time ago on
> Intel hardware BSF and BSR may alter all arithmetic flags, not just ZF.
> Because of the inconsistency (and because documentation doesn't look to
> be quite right about PF), best we can do is simply take the flag values
> from what the processor produces, just like we do for various other
> arithmetic insns. (Note also that AMD and Intel have always been
> disagreeing on arithmetic flags other than ZF.)

The new footnote Intel have added about "older processors" does match
AMD, saying "unmodified".

I think it's clear now that Intel and AMD behaviour was the same
originally, except AMD wrote "unmodified" and Intel wrote "undefined",
and Intel used this flexibility to alter the behaviour.

>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> Since I happened to look at it, I wonder whether for e.g. SHLD/SHRD we
> wouldn't be better off using _emulate_2op_SrcV_nobyte() as well; we
> already do so in x86_emul_rmw(), after all.

Probably a good move.

>
> --- a/xen/arch/x86/x86_emulate/x86_emulate.c
> +++ b/xen/arch/x86/x86_emulate/x86_emulate.c
> @@ -5268,16 +5268,14 @@ x86_emulate(
>          break;
>  
>      case X86EMUL_OPC(0x0f, 0xbc): /* bsf or tzcnt */
> -    {
> -        bool zf;
> -
> -        asm ( "bsf %2,%0" ASM_FLAG_OUT(, "; setz %1")
> -              : "=r" (dst.val), ASM_FLAG_OUT("=@ccz", "=qm") (zf)
> -              : "rm" (src.val) );
> -        _regs.eflags &= ~X86_EFLAGS_ZF;
>          if ( (vex.pfx == vex_f3) && vcpu_has_bmi1() )
>          {
> -            _regs.eflags &= ~X86_EFLAGS_CF;
> +            bool zf;
> +
> +            asm ( "bsf %2,%0" ASM_FLAG_OUT(, "; setz %1")
> +                  : "=r" (dst.val), ASM_FLAG_OUT("=@ccz", "=qm") (zf)
> +                  : "rm" (src.val) );
> +            _regs.eflags &= ~(X86_EFLAGS_ZF | X86_EFLAGS_CF);
>              if ( zf )
>              {
>                  _regs.eflags |= X86_EFLAGS_CF;
> @@ -5286,25 +5284,23 @@ x86_emulate(
>              else if ( !dst.val )
>                  _regs.eflags |= X86_EFLAGS_ZF;
>          }
> -        else if ( zf )
> +        else
>          {
> -            _regs.eflags |= X86_EFLAGS_ZF;
> -            dst.type = OP_NONE;
> +            emulate_2op_SrcV_srcmem("bsf", src, dst, _regs.eflags);
> +            if ( _regs.eflags & X86_EFLAGS_ZF )
> +                dst.type = OP_NONE;

On Intel, BSF/BSR writes back the destination register.  Notably, it
gets 0 extended per normal rules, which is why you have to be extra
careful when using the trick of preloading it with -1; the result must
be interpreted as (int) even over a 64bit operation.

This needs an amd_like() qualification to override dst.type.  This
aspect genuinely is different between them.  Alternatively, we might be
able to set the operand size always to 64 and write back the entire
register as the processor gave to us, but I'm not sure if that will have
effects elsewhere.

Finally, I'm wary leaving TZCNT/LZCNT using the old logic.  Despite the
absence of an update in 087, I find it unlikely that they behave
differently WRT flags (specifically, I severely doubt they've got
differing circuitry).

I'd suggest giving them the same fully-emulated treatment as BSF/BSR.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 11:08:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 11:08:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.964357.1355201 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7Xxf-0002kR-G8; Wed, 23 Apr 2025 11:08:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 964357.1355201; Wed, 23 Apr 2025 11:08:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7Xxf-0002jm-Bg; Wed, 23 Apr 2025 11:08:15 +0000
Received: by outflank-mailman (input) for mailman id 964357;
 Wed, 23 Apr 2025 11:08: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=hoPD=XJ=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1u7Xxd-0001zZ-VZ
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 11:08:14 +0000
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 (mail-am6eur05on2060d.outbound.protection.outlook.com
 [2a01:111:f403:2612::60d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3ea34c55-2033-11f0-9eb0-5ba50f476ded;
 Wed, 23 Apr 2025 13:08:11 +0200 (CEST)
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by DBAPR03MB6677.eurprd03.prod.outlook.com
 (2603:10a6:10:197::14) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.22; Wed, 23 Apr
 2025 11:08:08 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::35ac:8893:c31c:b971]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::35ac:8893:c31c:b971%4]) with mapi id 15.20.8655.033; Wed, 23 Apr 2025
 11:08:08 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3ea34c55-2033-11f0-9eb0-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=IuR+C2UobfpbSP20Y9hiPTtvMU6N7w7NmZ7ksr2O2y5VHtdyggAh0gVdtY2lSEGpsQvy7qWTTV+TIeZeSKOJThaxew/v0rdtmt33dkSx5KMZF672BUwxtSj9BHnGmffaH1pqaUz86dk0YxPq5NoOaHQQNm0+wd4ppZi5jFA3ONsAZDmwLxVlKLML9EgBnys7+vfyI/F1AMBBM1sawc9HnHmen4hmy9vaGPoZKecjkK8PswYnFAu59gB4rfSNFsq7gaqMKTPYFl3nV5GCiqeyJRz43UBPkD5L2kutpLTr/y1zeHk5j+cGJZw8U20cquFVxOWXufAuZ8pMskXLhTQ9Gg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=LZGtLr8LWXtAF2lz4iZ5bGQb6aV1h7oDsguvzkpx0co=;
 b=hEC009c+A37zDz+8uCvY7WLd1zfuE4santNQXqXSgvAkHSiDPk/ALz9wSF0ojSPZ/m9CPg7/J4BB4UyFz2tD4dVR/U//hw77VhCQB9fm9KXKXy8CVocxBGV/brVv7QIQF7dRL6ZpF0beIzgp6mpEeK9wfAp2vkK3QNJwKjx3G+fXVomakDHxjW4PJKN8WW4pffhksobICM1OWboSjB8z7Y/WvOt/k9+ak51yD5sjJ6A+xVMCP8k5zUQ/tjQugV7u9ngKSoaRM5Dd7vTnFjhNzk1dsH/noOXxB5zpSeig4GgO5EYRBdfe55+FN/dqG8ek7c6qSA+2SNTFemJA0Oi49w==
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=LZGtLr8LWXtAF2lz4iZ5bGQb6aV1h7oDsguvzkpx0co=;
 b=ruuqij5xgiFBROUKx2QAV0zWsPYc8o77AD6jzv6tO0H4V+kWt+r5YuNaM15GtPOLmAfyeus8i1S+h6O4B8gNytrhSfBoNiXe0b0pel4/4zN7i3YNQJ4F2lJVJlx+FHJME1IUYO6tMDxtfPjeTCugfXxM7pfz2UAnsfoEm1lRX4S4+RbE/bHByH8JFh0ku9eMa0dVYXeeDCB286GGvK86LyORJ3sfqpKY3BpC6OwKpnXlT8h0XE2kA7y4p/Ng41zY/7scguSNtKZu8geFvSKm9o1qFj+JXr24LhLNZAcrD5oLeLvb4nxVflj7MlWkM8Qk2tucrquUgCOtTyHrAw8MaA==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@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>, Mykyta Poturai
	<Mykyta_Poturai@epam.com>
Subject: [PATCH v4 4/4] xen/arm: add support for R-Car Gen4 PCI host
 controller
Thread-Topic: [PATCH v4 4/4] xen/arm: add support for R-Car Gen4 PCI host
 controller
Thread-Index: AQHbtD/+f1IljlTzAkG+gkmGFEbJEA==
Date: Wed, 23 Apr 2025 11:08:08 +0000
Message-ID:
 <98c8e00a77800e8b1163ab1efa9a60f1bced0fb9.1745402473.git.mykyta_poturai@epam.com>
References: <cover.1745402473.git.mykyta_poturai@epam.com>
In-Reply-To: <cover.1745402473.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_|DBAPR03MB6677:EE_
x-ms-office365-filtering-correlation-id: adadf5c7-0ad0-4b2e-e21b-08dd825720f3
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|1800799024|376014|38070700018|13003099007;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?v/7bzN3xb4p+BxUeRNYZ8+RT9lWP2Yy6lhTD9cmyjRxHfefuF43JdZ64GF?=
 =?iso-8859-1?Q?lS01Hj4I+3OF9jonGpsqKfeSPhhgiYZiR8M3ZFtIQ0usbIRpeW+YpxlyV2?=
 =?iso-8859-1?Q?6slDdI+43sCccODmwjgx7uPGlfhp/0BcPz+N3vLlTjzK9a0WGQdUKPYnUW?=
 =?iso-8859-1?Q?AVpIW7EdiriVw5xUkc3Ysn5CJZVXC8iddqFojefiXUX+0BqKX1L4N5BTdz?=
 =?iso-8859-1?Q?G8bWFo7GyYw4cZv3x/IK6+0vVDmWX+nxel6DBNyh0Ia1PdAZHWBMMcaSe1?=
 =?iso-8859-1?Q?h4swJtL3xky5rfqqQmI5v9p54Kq8xjEkeW+8zwDwuRVASPXZ4b6gnbxSCu?=
 =?iso-8859-1?Q?2KudQIZJ/AF8S8poAWrrUxEZCW2nu/WB/yrSmv2Zvuhqn3KR3jKGs2lwXn?=
 =?iso-8859-1?Q?i0cthTBCZV4ig+ecOg4MK1KFLkPVtLWUo7BAvmv155iTS9alyQABWE4FJr?=
 =?iso-8859-1?Q?NPoWP9uLVpyo7HeyrmBzTEuVuhYYXLx6kXk5Huh38x2uvQI1aPWlP2EW3p?=
 =?iso-8859-1?Q?zsBKSKKFBsxW2QBhA5cW+dbfgby3EHGSNyrtu4MyROvhv30QLznf3rhMK8?=
 =?iso-8859-1?Q?4B0AhZeuXhLM6lUBigRWV2AgJ4O+CttvjbZyemOLBx3u7ENQRX7DtIEJuC?=
 =?iso-8859-1?Q?Ekkj3cMBUhYUD383CJRf0Ixn6cvf8eDQhk6E0gJ6/6eBm8S5IfuLHomDFE?=
 =?iso-8859-1?Q?lini5Lrhj+RYulDrthwgV8uUU8/q13b5fmsA1+CPF+GCpUln9V9DQSTsjt?=
 =?iso-8859-1?Q?HxeINwr9PyndiE3xaZifL6hNrJaChV+8y2wIY55+EH+Cz6yGyndvY8Ofzt?=
 =?iso-8859-1?Q?6OrSXjHuV4zeZOe3YY90zNKnDYl1S5szwcZWBeoYEKD6bxS3P++G8or2CQ?=
 =?iso-8859-1?Q?dGzrMZZ+7UNfQv1M+n20YfLFfXGkKhVgGmB50vDARmH2XOlWXT408PCjPC?=
 =?iso-8859-1?Q?OzbZjuqwW/7t34nHR8qXQNQUW+7Wo8Ov29YgbDmE4SshEn7eWfg0CokUvg?=
 =?iso-8859-1?Q?mlbZv6p/pgDUvy6tuht3SDjsn18MzOtDcZ6lJ/7MHang5SLNel28bErl1i?=
 =?iso-8859-1?Q?93rrQPjLN2zFFkFcwjLNGn7dS4lnSkLndKQFdUt553jI2VD0Gh876djYa8?=
 =?iso-8859-1?Q?BXNf33KsCmuJnnoVqBfVgwHXooI4wy8+9nqTlzzZPdPjOV9lea2e7WOwAi?=
 =?iso-8859-1?Q?+SfA0+rKugtumgW/TA9Wb2vQT1GycLPJxt4UK68e1YeFvc3hIh0mvc8FL1?=
 =?iso-8859-1?Q?Zcan3MpRfupQ/wb9QdQjCy+Jq7O7I8pa+Dq2+03HPrGD0oc1Z7BH+k/W4d?=
 =?iso-8859-1?Q?PbbUb8moa364/hphmXmh7l+B+bqrU0NaU+rX+46/zMZ487Br3WEmSIVIH4?=
 =?iso-8859-1?Q?p4+iSifhIS87yz9GAIc1oFUnUVLRybMe15TdmcRw1PX6RyMHxQP/gOZA5s?=
 =?iso-8859-1?Q?/pX6N7ujA5ilW1OIP5PZRq8M6QSphsQuSWFGmJncQ+0zLfpxK6dQyMlPC4?=
 =?iso-8859-1?Q?y51D/GII0wUqMesD+ZQ2qrK0IZDH+ALPfcy8t2Ii5pz0sv0U7WEmVUHkPV?=
 =?iso-8859-1?Q?lP41RiM=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)(1800799024)(376014)(38070700018)(13003099007);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?BxXja2pZrWh+hHJ17Qrx9vSDjBL+evBYECLhAJRQSgnZMycZW57LJ5Gbj4?=
 =?iso-8859-1?Q?EQGuI+dIOygppm9z3OORPm2OwgguBiTf88frnM8LrQcSARAxQ1+zaTgUQY?=
 =?iso-8859-1?Q?ka5yJDGXcU1cHSOOoOBnsfLh2lgBCVFxJzypc1TNVS5NLW88IJ106Hy+ay?=
 =?iso-8859-1?Q?GrcMZwSGdDp3sVgDj2QcADTRYfq+/eZrLinMYCD94HlswFy/+N2uMaY8QA?=
 =?iso-8859-1?Q?44F3BabYhfSZOEbLvo4I9UHeCqCfFdNHjwSptngFRHPq3jov/1dNo03Y8s?=
 =?iso-8859-1?Q?jwGgdy2ro2Ohh5h4PYmMdF5RmApC3Doa3k9yyRjIog8VJN3xOcGHOW+5En?=
 =?iso-8859-1?Q?WdwQ8wcKuGNiY8hLfZgtM86p6Pn/EQY1+HZblDl4nlwxmbBN9Df3TFEPev?=
 =?iso-8859-1?Q?u81KRG/l1GnRGFwbiPEOu8FSndkKAR/v/3FRedUT8XiWlRxtgAtEnjrw72?=
 =?iso-8859-1?Q?at7akEORqfYcqkPp7UtlN88xeO7i0i0a9w+Vb4nKgb26VUmCkpBaigUOmL?=
 =?iso-8859-1?Q?7tUXBevYfev7tZfziCSKgSt77KSUIrnapIQ1VB9840D+v2cisvFUN/5k2W?=
 =?iso-8859-1?Q?WdxtXAxNq8mTJvZtvXKatyIzGgyGi5M4mKbBK2LAYaAkUH68vksDkbwQNr?=
 =?iso-8859-1?Q?yF84OYfuZWiymIhGYqeEFPnGIdz1uGJnqBPpyL8jiHRGKezejI+OnP7Ih1?=
 =?iso-8859-1?Q?2RsyEwNDKD4zxYgSxtlin1p/9UwiaKk58KkF0ss9NpbPiBMu2wq2YsXPKx?=
 =?iso-8859-1?Q?L/a7HxVdmyWBe0v5BG6hpeHhJdhViz1QmAPXKfR/M5IpNK3emWQbNgv9A5?=
 =?iso-8859-1?Q?z1Bwi0s29T8sDDR1nNt7vX0ANN+nL+XLSq4St2svAWcOs+vMaRlBsSIxUv?=
 =?iso-8859-1?Q?wCYm9KJjp9h/ZGk8/f8I9fQj1K1Bp/NqzLOeSMLXk71RzdqJ1z4umYUMCq?=
 =?iso-8859-1?Q?5kxGgX9Hc29AmjUPuTeIGmDpbnfjCGWBbub3qNFwYZJhPznx3NZmihru9X?=
 =?iso-8859-1?Q?EhHveQ3EUbfU7izqjExsgsOtYYPnbc4N75sz9gfVWrL1UYQDd0CEGPOTdD?=
 =?iso-8859-1?Q?5ismYv3Y6IgGV+LKNDsFTE6VUlTvBPnjPGP9anqLuuMLXxeEJRR87tHkhe?=
 =?iso-8859-1?Q?CU/tgiMAc0wwl0mvXXcW93xNQZ074P28agpVvTPLyuxSXwNZIQzoWT6CnE?=
 =?iso-8859-1?Q?I2rFlPSKpb2Z7Bne+T9I2O1BGMMVfqXQlLYgqFgZI/AAWDTwAeOFEVahWt?=
 =?iso-8859-1?Q?dTk0wRMJ1bxd0os1tkhhwInNqoU4MnB0ISPsoL9SE/FwaPqdG/8rj3qJ4Z?=
 =?iso-8859-1?Q?Vj9i9zauw50P/WUa/EyD75hJF7j1jfACRJXNYUbvzK554NcAOr4WLrFrjI?=
 =?iso-8859-1?Q?kGtFfjcWcKMD1IM/Ca3ifvVSUVspARPLNpX5Pp8SMqecpMzrRsZhuVQrQr?=
 =?iso-8859-1?Q?8DurYTr0YKOHzLa7NSgu1oDZbNnJyeBUey4kclT/Jrg1YbyhJXpToJYnAi?=
 =?iso-8859-1?Q?HzCyY4RPEDhG6kUUIuUzz727ZMRcd25dvOQ4LiK/nVSz8FIWF05EtGR5xG?=
 =?iso-8859-1?Q?FU1oSQCGrau3NNlKclnT4tV1MfpS2qR3q9ONhvVq2EkDuwxxYjLs9X/Jst?=
 =?iso-8859-1?Q?22D2vju/UZb4iaNu6WDF0Svqp7fP1HqQEYv4vnpT3yD65Aw3LmVy214Q?=
 =?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: adadf5c7-0ad0-4b2e-e21b-08dd825720f3
X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Apr 2025 11:08:08.1463
 (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: 5qGFKG6iY45YNB9AaNvQE7496yGDm52k5LAvqlqJFlksRRwDCOo9Lv3cPKBYqogEGRDV/S0Siiyn0CQzV/AO5A==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBAPR03MB6677

From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

Add support for Renesas R-Car Gen4 PCI host controller, specifically
targeting the S4 and V4H SoCs. The implementation includes configuration
read/write operations for both root and child buses. For accessing the
child bus, iATU is used for address translation.

Code common to all DesignWare PCI host controllers is located in a
separate file to allow for easy reuse in other DesignWare-based PCI
host controllers.

Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
---
v3->v4:
* no changes

v2->v3:
* move priv allocation to dw_pcie_host_probe

v1->v2:
* move designware code in a separate file
---
 xen/arch/arm/pci/Makefile         |   2 +
 xen/arch/arm/pci/pci-designware.c | 403 ++++++++++++++++++++++++++++++
 xen/arch/arm/pci/pci-designware.h | 102 ++++++++
 xen/arch/arm/pci/pci-host-rcar4.c | 103 ++++++++
 4 files changed, 610 insertions(+)
 create mode 100644 xen/arch/arm/pci/pci-designware.c
 create mode 100644 xen/arch/arm/pci/pci-designware.h
 create mode 100644 xen/arch/arm/pci/pci-host-rcar4.c

diff --git a/xen/arch/arm/pci/Makefile b/xen/arch/arm/pci/Makefile
index 1d045ade01..ca6135e282 100644
--- a/xen/arch/arm/pci/Makefile
+++ b/xen/arch/arm/pci/Makefile
@@ -4,3 +4,5 @@ obj-y +=3D pci-host-generic.o
 obj-y +=3D pci-host-common.o
 obj-y +=3D ecam.o
 obj-y +=3D pci-host-zynqmp.o
+obj-y +=3D pci-designware.o
+obj-y +=3D pci-host-rcar4.o
diff --git a/xen/arch/arm/pci/pci-designware.c b/xen/arch/arm/pci/pci-desig=
nware.c
new file mode 100644
index 0000000000..dcbd07ced3
--- /dev/null
+++ b/xen/arch/arm/pci/pci-designware.c
@@ -0,0 +1,403 @@
+/*
+ * Based on Linux drivers/pci/controller/pci-host-common.c
+ * Based on Linux drivers/pci/controller/pci-host-generic.c
+ * Based on xen/arch/arm/pci/pci-host-generic.c
+ *
+ * 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.
+ *
+ * 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.
+ *
+ * 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/delay.h>
+#include <asm/io.h>
+
+#include "pci-designware.h"
+/**
+ * upper_32_bits - return bits 32-63 of a number
+ * @n: the number we're accessing
+ *
+ * A basic shift-right of a 64- or 32-bit quantity.  Use this to suppress
+ * the "right shift count >=3D width of type" warning when that quantity i=
s
+ * 32-bits.
+ */
+#define upper_32_bits(n) ((uint32_t)(((n) >> 16) >> 16))
+
+/**
+ * lower_32_bits - return bits 0-31 of a number
+ * @n: the number we're accessing
+ */
+#define lower_32_bits(n) ((uint32_t)((n) & 0xffffffff))
+
+static int dw_pcie_read(void __iomem *addr, int size, uint32_t *val)
+{
+    if ( !IS_ALIGNED((uintptr_t)addr, size) )
+    {
+        *val =3D 0;
+        return PCIBIOS_BAD_REGISTER_NUMBER;
+    }
+
+    if ( size =3D=3D 4 )
+        *val =3D readl(addr);
+    else if ( size =3D=3D 2 )
+        *val =3D readw(addr);
+    else if ( size =3D=3D 1 )
+        *val =3D readb(addr);
+    else
+    {
+        *val =3D 0;
+        return PCIBIOS_BAD_REGISTER_NUMBER;
+    }
+
+    return PCIBIOS_SUCCESSFUL;
+}
+
+static int dw_pcie_write(void __iomem *addr, int size, uint32_t val)
+{
+    if ( !IS_ALIGNED((uintptr_t)addr, size) )
+        return PCIBIOS_BAD_REGISTER_NUMBER;
+
+    if ( size =3D=3D 4 )
+        writel(val, addr);
+    else if ( size =3D=3D 2 )
+        writew(val, addr);
+    else if ( size =3D=3D 1 )
+        writeb(val, addr);
+    else
+        return PCIBIOS_BAD_REGISTER_NUMBER;
+
+    return PCIBIOS_SUCCESSFUL;
+}
+
+static uint32_t dw_pcie_read_dbi(struct pci_host_bridge *bridge, uint32_t =
reg,
+                                 size_t size)
+{
+    void __iomem *addr =3D bridge->cfg->win + reg;
+    uint32_t val;
+
+    dw_pcie_read(addr, size, &val);
+    return val;
+}
+
+static void dw_pcie_write_dbi(struct pci_host_bridge *bridge, uint32_t reg=
,
+                              size_t size, uint32_t val)
+{
+    void __iomem *addr =3D bridge->cfg->win + reg;
+
+    dw_pcie_write(addr, size, val);
+}
+
+static uint32_t dw_pcie_readl_dbi(struct pci_host_bridge *bridge, uint32_t=
 reg)
+{
+    return dw_pcie_read_dbi(bridge, reg, sizeof(uint32_t));
+}
+
+static void dw_pcie_writel_dbi(struct pci_host_bridge *pci, uint32_t reg,
+                               uint32_t val)
+{
+    dw_pcie_write_dbi(pci, reg, sizeof(uint32_t), val);
+}
+
+static void dw_pcie_read_iatu_unroll_enabled(struct pci_host_bridge *bridg=
e)
+{
+    struct dw_pcie_priv *priv =3D bridge->priv;
+    uint32_t val;
+
+    val =3D dw_pcie_readl_dbi(bridge, PCIE_ATU_VIEWPORT);
+    if ( val =3D=3D 0xffffffff )
+        priv->iatu_unroll_enabled =3D true;
+
+    printk(XENLOG_DEBUG "%s iATU unroll: %sabled\n",
+           dt_node_full_name(bridge->dt_node),
+           priv->iatu_unroll_enabled ? "en" : "dis");
+}
+
+static uint32_t dw_pcie_readl_atu(struct pci_host_bridge *pci, uint32_t re=
g)
+{
+    struct dw_pcie_priv *priv =3D pci->priv;
+    int ret;
+    uint32_t val;
+
+    ret =3D dw_pcie_read(priv->atu_base + reg, 4, &val);
+    if ( ret )
+        printk(XENLOG_ERR "Read ATU address failed\n");
+
+    return val;
+}
+
+static void dw_pcie_writel_atu(struct pci_host_bridge *pci, uint32_t reg,
+                               uint32_t val)
+{
+    struct dw_pcie_priv *priv =3D pci->priv;
+    int ret;
+
+    ret =3D dw_pcie_write(priv->atu_base + reg, 4, val);
+    if ( ret )
+        printk(XENLOG_ERR "Write ATU address failed\n");
+}
+
+static uint32_t dw_pcie_readl_ob_unroll(struct pci_host_bridge *pci,
+                                        uint32_t index, uint32_t reg)
+{
+    uint32_t offset =3D PCIE_GET_ATU_OUTB_UNR_REG_OFFSET(index);
+
+    return dw_pcie_readl_atu(pci, offset + reg);
+}
+
+static void dw_pcie_writel_ob_unroll(struct pci_host_bridge *pci,
+                                     uint32_t index, uint32_t reg, uint32_=
t val)
+{
+    uint32_t offset =3D PCIE_GET_ATU_OUTB_UNR_REG_OFFSET(index);
+
+    dw_pcie_writel_atu(pci, offset + reg, val);
+}
+
+static uint32_t dw_pcie_enable_ecrc(uint32_t val)
+{
+    ASSERT_UNREACHABLE();
+    return 0;
+}
+
+static void dw_pcie_prog_outbound_atu_unroll(struct pci_host_bridge *pci,
+                                             uint8_t func_no, int index,
+                                             int type, uint64_t cpu_addr,
+                                             uint64_t pci_addr, uint64_t s=
ize)
+{
+    struct dw_pcie_priv *priv =3D pci->priv;
+    uint32_t retries, val;
+    uint64_t limit_addr =3D cpu_addr + size - 1;
+
+    dw_pcie_writel_ob_unroll(pci, index, PCIE_ATU_UNR_LOWER_BASE,
+                             lower_32_bits(cpu_addr));
+    dw_pcie_writel_ob_unroll(pci, index, PCIE_ATU_UNR_UPPER_BASE,
+                             upper_32_bits(cpu_addr));
+    dw_pcie_writel_ob_unroll(pci, index, PCIE_ATU_UNR_LOWER_LIMIT,
+                             lower_32_bits(limit_addr));
+    dw_pcie_writel_ob_unroll(pci, index, PCIE_ATU_UNR_UPPER_LIMIT,
+                             upper_32_bits(limit_addr));
+    dw_pcie_writel_ob_unroll(pci, index, PCIE_ATU_UNR_LOWER_TARGET,
+                             lower_32_bits(pci_addr));
+    dw_pcie_writel_ob_unroll(pci, index, PCIE_ATU_UNR_UPPER_TARGET,
+                             upper_32_bits(pci_addr));
+    val =3D type | PCIE_ATU_FUNC_NUM(func_no);
+    val =3D upper_32_bits(size - 1) ? val | PCIE_ATU_INCREASE_REGION_SIZE =
: val;
+    if ( priv->version =3D=3D 0x490A )
+        val =3D dw_pcie_enable_ecrc(val);
+    dw_pcie_writel_ob_unroll(pci, index, PCIE_ATU_UNR_REGION_CTRL1, val);
+    dw_pcie_writel_ob_unroll(pci, index, PCIE_ATU_UNR_REGION_CTRL2,
+                             PCIE_ATU_ENABLE);
+
+    /*
+     * Make sure ATU enable takes effect before any subsequent config
+     * and I/O accesses.
+     */
+    for ( retries =3D 0; retries < LINK_WAIT_MAX_IATU_RETRIES; retries++ )
+    {
+        val =3D dw_pcie_readl_ob_unroll(pci, index, PCIE_ATU_UNR_REGION_CT=
RL2);
+        if ( val & PCIE_ATU_ENABLE )
+            return;
+
+        mdelay(LINK_WAIT_IATU);
+    }
+    printk(XENLOG_ERR "Outbound iATU is not being enabled\n");
+}
+
+static void __dw_pcie_prog_outbound_atu(struct pci_host_bridge *pci,
+                                        uint8_t func_no, int index, int ty=
pe,
+                                        uint64_t cpu_addr, uint64_t pci_ad=
dr,
+                                        uint64_t size)
+{
+    struct dw_pcie_priv *priv =3D pci->priv;
+    uint32_t retries, val;
+
+    if ( priv->iatu_unroll_enabled )
+    {
+        dw_pcie_prog_outbound_atu_unroll(pci, func_no, index, type, cpu_ad=
dr,
+                                         pci_addr, size);
+        return;
+    }
+
+    dw_pcie_writel_dbi(pci, PCIE_ATU_VIEWPORT,
+                       PCIE_ATU_REGION_OUTBOUND | index);
+    dw_pcie_writel_dbi(pci, PCIE_ATU_LOWER_BASE, lower_32_bits(cpu_addr));
+    dw_pcie_writel_dbi(pci, PCIE_ATU_UPPER_BASE, upper_32_bits(cpu_addr));
+    dw_pcie_writel_dbi(pci, PCIE_ATU_LIMIT, lower_32_bits(cpu_addr + size =
- 1));
+    if ( priv->version >=3D 0x460A )
+        dw_pcie_writel_dbi(pci, PCIE_ATU_UPPER_LIMIT,
+                           upper_32_bits(cpu_addr + size - 1));
+    dw_pcie_writel_dbi(pci, PCIE_ATU_LOWER_TARGET, lower_32_bits(pci_addr)=
);
+    dw_pcie_writel_dbi(pci, PCIE_ATU_UPPER_TARGET, upper_32_bits(pci_addr)=
);
+    val =3D type | PCIE_ATU_FUNC_NUM(func_no);
+    val =3D ((upper_32_bits(size - 1)) && (priv->version >=3D 0x460A))
+              ? val | PCIE_ATU_INCREASE_REGION_SIZE
+              : val;
+    if ( priv->version =3D=3D 0x490A )
+        val =3D dw_pcie_enable_ecrc(val);
+    dw_pcie_writel_dbi(pci, PCIE_ATU_CR1, val);
+    dw_pcie_writel_dbi(pci, PCIE_ATU_CR2, PCIE_ATU_ENABLE);
+
+    /*
+     * Make sure ATU enable takes effect before any subsequent config
+     * and I/O accesses.
+     */
+    for ( retries =3D 0; retries < LINK_WAIT_MAX_IATU_RETRIES; retries++ )
+    {
+        val =3D dw_pcie_readl_dbi(pci, PCIE_ATU_CR2);
+        if ( val & PCIE_ATU_ENABLE )
+            return;
+
+        mdelay(LINK_WAIT_IATU);
+    }
+    printk(XENLOG_ERR "Outbound iATU is not being enabled\n");
+}
+
+static void dw_pcie_prog_outbound_atu(struct pci_host_bridge *pci, int ind=
ex,
+                                      int type, uint64_t cpu_addr,
+                                      uint64_t pci_addr, uint64_t size)
+{
+    __dw_pcie_prog_outbound_atu(pci, 0, index, type, cpu_addr, pci_addr, s=
ize);
+}
+
+void dw_pcie_set_version(struct pci_host_bridge *bridge, unsigned int vers=
ion)
+{
+    struct dw_pcie_priv *priv =3D bridge->priv;
+
+    priv->version =3D version;
+}
+
+void __iomem *dw_pcie_child_map_bus(struct pci_host_bridge *bridge,
+                                    pci_sbdf_t sbdf, uint32_t where)
+{
+    uint32_t busdev;
+
+    busdev =3D PCIE_ATU_BUS(sbdf.bus) | PCIE_ATU_DEV(PCI_SLOT(sbdf.devfn))=
 |
+             PCIE_ATU_FUNC(PCI_FUNC(sbdf.devfn));
+
+    /* FIXME: Parent is the root bus, so use PCIE_ATU_TYPE_CFG0. */
+    dw_pcie_prog_outbound_atu(bridge, PCIE_ATU_REGION_INDEX1,
+                              PCIE_ATU_TYPE_CFG0, bridge->child_cfg->phys_=
addr,
+                              busdev, bridge->child_cfg->size);
+
+    return bridge->child_cfg->win + where;
+}
+
+int dw_pcie_child_config_read(struct pci_host_bridge *bridge, pci_sbdf_t s=
bdf,
+                              uint32_t reg, uint32_t len, uint32_t *value)
+{
+    struct dw_pcie_priv *priv =3D bridge->priv;
+    int ret;
+
+    /*
+     * FIXME: we cannot read iATU settings at the early initialization
+     * (probe) as the host's HW is not yet initialized at that phase.
+     * This read operation is the very first thing Domain-0 will do
+     * during its initialization, so take this opportunity and read
+     * iATU setting now.
+     */
+    if ( unlikely(!priv->iatu_unroll_initilized) )
+    {
+        dw_pcie_read_iatu_unroll_enabled(bridge);
+        priv->iatu_unroll_initilized =3D true;
+    }
+
+    ret =3D pci_generic_config_read(bridge, sbdf, reg, len, value);
+    if ( !ret && (priv->num_viewport <=3D 2) )
+        dw_pcie_prog_outbound_atu(bridge, PCIE_ATU_REGION_INDEX1,
+                                  PCIE_ATU_TYPE_IO,
+                                  bridge->child_cfg->phys_addr, 0,
+                                  bridge->child_cfg->size);
+
+    return ret;
+}
+
+int dw_pcie_child_config_write(struct pci_host_bridge *bridge, pci_sbdf_t =
sbdf,
+                               uint32_t reg, uint32_t len, uint32_t value)
+{
+    struct dw_pcie_priv *priv =3D bridge->priv;
+    int ret;
+
+    ret =3D pci_generic_config_write(bridge, sbdf, reg, len, value);
+    if ( !ret && (priv->num_viewport <=3D 2) )
+        dw_pcie_prog_outbound_atu(bridge, PCIE_ATU_REGION_INDEX1,
+                                  PCIE_ATU_TYPE_IO,
+                                  bridge->child_cfg->phys_addr, 0,
+                                  bridge->child_cfg->size);
+    return ret;
+}
+
+bool __init dw_pcie_child_need_p2m_hwdom_mapping(struct domain *d,
+                                                 struct pci_host_bridge *b=
ridge,
+                                                 uint64_t addr)
+{
+    struct pci_config_window *cfg =3D bridge->child_cfg;
+
+    /*
+     * We do not want ECAM address space to be mapped in Domain-0's p2m,
+     * so we can trap access to it.
+     */
+    return cfg->phys_addr !=3D addr;
+}
+
+struct pci_host_bridge *__init
+dw_pcie_host_probe(struct dt_device_node *dev, const void *data,
+                   const struct pci_ecam_ops *ops,
+                   const struct pci_ecam_ops *child_ops)
+{
+    struct pci_host_bridge *bridge;
+    struct dw_pcie_priv *priv;
+
+    paddr_t atu_phys_addr;
+    paddr_t atu_size;
+    int atu_idx, ret;
+
+    bridge =3D pci_host_common_probe(dev, ops, child_ops);
+    if ( IS_ERR(bridge) )
+        return bridge;
+
+    priv =3D xzalloc_bytes(sizeof(struct dw_pcie_priv));
+    if ( !priv )
+        return ERR_PTR(-ENOMEM);
+
+    bridge->priv =3D priv;
+
+    atu_idx =3D dt_property_match_string(dev, "reg-names", "atu");
+    if ( atu_idx < 0 )
+    {
+        printk(XENLOG_ERR "Cannot find \"atu\" range index in device tree\=
n");
+        return ERR_PTR(atu_idx);
+    }
+    ret =3D dt_device_get_address(dev, atu_idx, &atu_phys_addr, &atu_size)=
;
+    if ( ret )
+    {
+        printk(XENLOG_ERR "Cannot find \"atu\" range in device tree\n");
+        return ERR_PTR(ret);
+    }
+    printk("iATU at [mem 0x%" PRIpaddr "-0x%" PRIpaddr "]\n", atu_phys_add=
r,
+           atu_phys_addr + atu_size - 1);
+    priv->atu_base =3D ioremap_nocache(atu_phys_addr, atu_size);
+    if ( !priv->atu_base )
+    {
+        printk(XENLOG_ERR "iATU ioremap failed\n");
+        return ERR_PTR(ENXIO);
+    }
+
+    if ( !dt_property_read_u32(dev, "num-viewport", &priv->num_viewport) )
+        priv->num_viewport =3D 2;
+
+    /*
+     * FIXME: we cannot read iATU unroll enable now as the host bridge's
+     * HW is not yet initialized by Domain-0: leave it for later.
+     */
+
+    printk(XENLOG_INFO "%s number of view ports: %d\n", dt_node_full_name(=
dev),
+           priv->num_viewport);
+
+    return bridge;
+}
diff --git a/xen/arch/arm/pci/pci-designware.h b/xen/arch/arm/pci/pci-desig=
nware.h
new file mode 100644
index 0000000000..a15ba9a329
--- /dev/null
+++ b/xen/arch/arm/pci/pci-designware.h
@@ -0,0 +1,102 @@
+/*
+ * Based on Linux drivers/pci/controller/pci-host-common.c
+ * Based on Linux drivers/pci/controller/pci-host-generic.c
+ * Based on xen/arch/arm/pci/pci-host-generic.c
+ *
+ * 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.
+ *
+ * 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.
+ *
+ * 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/pci.h>
+#include <xen/init.h>
+
+#ifndef __PCI_DESIGNWARE_H__
+#define __PCI_DESIGNWARE_H__
+
+#define PCIBIOS_SUCCESSFUL              0x00
+#define PCIBIOS_BAD_REGISTER_NUMBER     0x87
+
+#define PCIE_ATU_VIEWPORT               0x900
+#define PCIE_ATU_REGION_OUTBOUND        0
+#define PCIE_ATU_CR1                    0x904
+#define PCIE_ATU_INCREASE_REGION_SIZE   BIT(13, UL)
+#define PCIE_ATU_CR2                    0x908
+#define PCIE_ATU_ENABLE                 BIT(31, UL)
+#define PCIE_ATU_LOWER_BASE             0x90C
+#define PCIE_ATU_UPPER_BASE             0x910
+#define PCIE_ATU_LIMIT                  0x914
+#define PCIE_ATU_LOWER_TARGET           0x918
+#define PCIE_ATU_UPPER_TARGET           0x91C
+#define PCIE_ATU_UPPER_LIMIT            0x924
+
+#define PCIE_ATU_REGION_INDEX1  0x1
+#define PCIE_ATU_TYPE_IO        0x2
+#define PCIE_ATU_TYPE_CFG0      0x4
+
+#define FIELD_PREP(_mask, _val) \
+    (((typeof(_mask))(_val) << (ffs64(_mask) - 1)) & (_mask))
+
+#define PCIE_ATU_BUS(x)         FIELD_PREP(GENMASK(31, 24), x)
+#define PCIE_ATU_DEV(x)         FIELD_PREP(GENMASK(23, 19), x)
+#define PCIE_ATU_FUNC(x)        FIELD_PREP(GENMASK(18, 16), x)
+
+/* Register address builder */
+#define PCIE_GET_ATU_OUTB_UNR_REG_OFFSET(region) \
+    ((region) << 9)
+
+/*
+ * iATU Unroll-specific register definitions
+ * From 4.80 core version the address translation will be made by unroll
+ */
+#define PCIE_ATU_UNR_REGION_CTRL1       0x00
+#define PCIE_ATU_UNR_REGION_CTRL2       0x04
+#define PCIE_ATU_UNR_LOWER_BASE         0x08
+#define PCIE_ATU_UNR_UPPER_BASE         0x0C
+#define PCIE_ATU_UNR_LOWER_LIMIT        0x10
+#define PCIE_ATU_UNR_LOWER_TARGET       0x14
+#define PCIE_ATU_UNR_UPPER_TARGET       0x18
+#define PCIE_ATU_UNR_UPPER_LIMIT        0x20
+
+#define PCIE_ATU_FUNC_NUM(pf)           ((pf) << 20)
+
+/* Parameters for the waiting for iATU enabled routine */
+#define LINK_WAIT_MAX_IATU_RETRIES      5
+#define LINK_WAIT_IATU                  9
+
+struct dw_pcie_priv {
+    uint32_t num_viewport;
+    bool iatu_unroll_initilized;
+    bool iatu_unroll_enabled;
+    void __iomem *atu_base;
+    unsigned int version;
+};
+
+void dw_pcie_set_version(struct pci_host_bridge *bridge, unsigned int vers=
ion);
+
+void __iomem *dw_pcie_child_map_bus(struct pci_host_bridge *bridge,
+                                    pci_sbdf_t sbdf, uint32_t where);
+
+int dw_pcie_child_config_read(struct pci_host_bridge *bridge, pci_sbdf_t s=
bdf,
+                              uint32_t reg, uint32_t len, uint32_t *value)=
;
+
+int dw_pcie_child_config_write(struct pci_host_bridge *bridge, pci_sbdf_t =
sbdf,
+                               uint32_t reg, uint32_t len, uint32_t value)=
;
+
+bool __init dw_pcie_child_need_p2m_hwdom_mapping(struct domain *d,
+                                                 struct pci_host_bridge *b=
ridge,
+                                                 uint64_t addr);
+
+struct pci_host_bridge *__init
+dw_pcie_host_probe(struct dt_device_node *dev, const void *data,
+                   const struct pci_ecam_ops *ops,
+                   const struct pci_ecam_ops *child_ops);
+#endif /* __PCI_DESIGNWARE_H__ */
diff --git a/xen/arch/arm/pci/pci-host-rcar4.c b/xen/arch/arm/pci/pci-host-=
rcar4.c
new file mode 100644
index 0000000000..cae1b4254d
--- /dev/null
+++ b/xen/arch/arm/pci/pci-host-rcar4.c
@@ -0,0 +1,103 @@
+/*
+ * Based on Linux drivers/pci/controller/pci-host-common.c
+ * Based on Linux drivers/pci/controller/pci-host-generic.c
+ * Based on xen/arch/arm/pci/pci-host-generic.c
+ *
+ * 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.
+ *
+ * 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.
+ *
+ * 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/init.h>
+#include <xen/pci.h>
+
+#include <asm/device.h>
+#include <asm/io.h>
+#include <asm/pci.h>
+
+#include "pci-designware.h"
+
+#define RCAR4_DWC_VERSION       0x520A
+
+/*
+ * PCI host bridges often have different ways to access the root and child
+ * bus config spaces:
+ *   "dbi"   : the aperture where root port's own configuration registers
+ *             are available.
+ *   "config": child's configuration space
+ *   "atu"   : iATU registers for DWC version 4.80 or later
+ */
+static int __init rcar4_cfg_reg_index(struct dt_device_node *np)
+{
+    return dt_property_match_string(np, "reg-names", "dbi");
+}
+
+static int __init rcar4_child_cfg_reg_index(struct dt_device_node *np)
+{
+    return dt_property_match_string(np, "reg-names", "config");
+}
+
+/* ECAM ops */
+const struct pci_ecam_ops rcar4_pcie_ops =3D {
+    .bus_shift  =3D 20,
+    .cfg_reg_index =3D rcar4_cfg_reg_index,
+    .pci_ops    =3D {
+        .map_bus                =3D pci_ecam_map_bus,
+        .read                   =3D pci_generic_config_read,
+        .write                  =3D pci_generic_config_write,
+        .need_p2m_hwdom_mapping =3D pci_ecam_need_p2m_hwdom_mapping,
+    }
+};
+
+const struct pci_ecam_ops rcar4_pcie_child_ops =3D {
+    .bus_shift  =3D 20,
+    .cfg_reg_index =3D rcar4_child_cfg_reg_index,
+    .pci_ops    =3D {
+        .map_bus                =3D dw_pcie_child_map_bus,
+        .read                   =3D dw_pcie_child_config_read,
+        .write                  =3D dw_pcie_child_config_write,
+        .need_p2m_hwdom_mapping =3D dw_pcie_child_need_p2m_hwdom_mapping,
+    }
+};
+
+static const struct dt_device_match __initconstrel rcar4_pcie_dt_match[] =
=3D {
+    { .compatible =3D "renesas,r8a779f0-pcie" },
+    { .compatible =3D "renesas,r8a779g0-pcie" },
+    {},
+};
+
+static int __init pci_host_generic_probe(struct dt_device_node *dev,
+                                         const void *data)
+{
+    struct pci_host_bridge *bridge;
+
+    bridge =3D dw_pcie_host_probe(dev, data, &rcar4_pcie_ops,
+                                &rcar4_pcie_child_ops);
+
+    dw_pcie_set_version(bridge, RCAR4_DWC_VERSION);
+
+    return 0;
+}
+
+DT_DEVICE_START(pci_gen, "PCI HOST R-CAR GEN4", DEVICE_PCI_HOSTBRIDGE)
+.dt_match =3D rcar4_pcie_dt_match,
+.init =3D pci_host_generic_probe,
+DT_DEVICE_END
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 11:08:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 11:08:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.964356.1355195 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7Xxf-0002gO-4v; Wed, 23 Apr 2025 11:08:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 964356.1355195; Wed, 23 Apr 2025 11:08:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7Xxf-0002gF-0e; Wed, 23 Apr 2025 11:08:15 +0000
Received: by outflank-mailman (input) for mailman id 964356;
 Wed, 23 Apr 2025 11:08: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=hoPD=XJ=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1u7Xxc-0001zZ-VV
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 11:08:12 +0000
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 (mail-am6eur05on2060d.outbound.protection.outlook.com
 [2a01:111:f403:2612::60d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3e5e49bc-2033-11f0-9eb0-5ba50f476ded;
 Wed, 23 Apr 2025 13:08:11 +0200 (CEST)
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by DBAPR03MB6677.eurprd03.prod.outlook.com
 (2603:10a6:10:197::14) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.22; Wed, 23 Apr
 2025 11:08:07 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::35ac:8893:c31c:b971]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::35ac:8893:c31c:b971%4]) with mapi id 15.20.8655.033; Wed, 23 Apr 2025
 11:08: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: 3e5e49bc-2033-11f0-9eb0-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=nCG2hXlUa94PO1q0BfZQ2ksvViQZBy6p3BAN/qmGx2z2i1HSWM+ymumjWBc7WTg3I0x53sFfCrgAWyslck18Ebblp6+Cw6ZQs9ZX/JZcbuu2ecA34Rd1Ztm8fVnkL4POhowpZ3fbuaad4l+yTJ6vydjJZdnznRe/zVKm+f0cXrYsFf05hFrWDX9ZJUXRRniWVvF3gz6vnLPWOThmip7LXiRgM0O3nZd8COTklNtIQXi6aOqPgqV6cBXwZM+SkkpWBWLuoYkW4eG7RYPaWP7I/TAWVGTHnj8YeNIWAvPdzUKGHiHrJuZkLTHdJHt2srKBELIYMTuJCRec4UBi2MKznw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=WTLGLd9o7gZNxUWN6Ny0WrPPGFxlWqxyuOhACd8eCRk=;
 b=IWaKqygSc0LApq9Uuyf9aYZfC864gjxntfCL9cqgdo8troDAvJOWDtjMGARa/rvv5Ib5gc+gPon27Q/KxC2v2uEtBPUfzMR/56GNmd4iivh31BfPzgEqrQ7B1rZbtKn/OYDHpuTxpHFp8XKHiIm5P7Y8RxybwHI7i0yhZBk3FWE2bwzEdNjNiUWMlttP9Qhl7fcsFy4jYoDpYqql08jfp4AgzyOIZpDTGpCLZeOkdnJ/1pHwoXYVHdocU+Rm2/xaTgRp9zHewKwg33tBZzctL0SkvV9beLpHaMuTO5NmCP8Y+iOA8QSHw2Wq2CGjGYRwL9uuKbndUe+NPJotptUo6g==
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=WTLGLd9o7gZNxUWN6Ny0WrPPGFxlWqxyuOhACd8eCRk=;
 b=lP2+3LMTzPAQbD8kFepb0F/J+jRHRW1QYjCHrmLP11CmgL2/q7wMVtiEbJzV3PdFWlNa2X7pRAW5itc7GZvm/s86fqaJLiFrCS8Bcpr/sNEJPcW1GrSzBeKJJoEe+VJI0SKDsOJ3MIgtOMGTmo5xR9Bbk4ucE0o+PrtNIzcHwsBKgnm3HfYyspAqSzPgRT8b3l77kTd4SlsGNWHxJL1xS32Rmo7fO9WYt1b+JT2vvmRSMhKY9k7Yn5E860u/e2XVgBQ3HCbpTi3rVW+RWBYUPyYzRGNJC2ipoA5sLjK9g4yeZTeVqQ+nmngoj1KZeff8ziVoVfCo3cTgohpqLtkQSA==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@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>, Mykyta Poturai
	<Mykyta_Poturai@epam.com>
Subject: [PATCH v4 2/4] xen/arm: make pci_host_common_probe return the bridge
Thread-Topic: [PATCH v4 2/4] xen/arm: make pci_host_common_probe return the
 bridge
Thread-Index: AQHbtD/9bY1r1kpO5kCnx2GColGe6g==
Date: Wed, 23 Apr 2025 11:08:07 +0000
Message-ID:
 <8bacbb27806c04eb68ac4d5582b42961d61435e5.1745402473.git.mykyta_poturai@epam.com>
References: <cover.1745402473.git.mykyta_poturai@epam.com>
In-Reply-To: <cover.1745402473.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_|DBAPR03MB6677:EE_
x-ms-office365-filtering-correlation-id: af72f70a-c0fb-4b5b-fefe-08dd82572081
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:
 =?iso-8859-1?Q?uTZnFPBKNVRo6ubOX5nE9oQeCbtr7LbwH0GhWUbiO6956/vh0eJ6nL2h0i?=
 =?iso-8859-1?Q?BF3KC9Zp2ZMKa8EeYJv8gVteuptyjzAb9eciOUqblQFgov76rgawJi1jGE?=
 =?iso-8859-1?Q?bAXsuZkwqrxU9DoIc+48eNWLeHIYBUcpZFVFu8tmWHd4OG2S21wiYL3Hrf?=
 =?iso-8859-1?Q?IhU0RRudkAoASvaXX/IgZCL7Y+uI92BNohH1JqqOowMGfbodD1yq7eL31e?=
 =?iso-8859-1?Q?Q+MSQ2ZkQjBF7fYYYffVAsBz1DVsXUGM4ubnFUGGSK/ICha+mT5LNDBiQ+?=
 =?iso-8859-1?Q?jxK0HJqdyj3eMVM8xDl4469Nkwzp9x0e+K826DfUUkZsMY0SWsin1wLVr7?=
 =?iso-8859-1?Q?XRJpMbiVXlAdEPF4Petk4ruu/ahrumA2bFWKO3DvCGwI3awe/ZC+xsqHsS?=
 =?iso-8859-1?Q?lt5mpWB3ZuNce1bXyTm5Y5BZ25bJzBFMh3KYSpLshMgG06MCd/jDm6OrhP?=
 =?iso-8859-1?Q?MWvKLb9C6KyrMjYvQzRy30QNJnJiOctLzuJVhx+3NY/2DayI6baMXjwHmx?=
 =?iso-8859-1?Q?VaQhH0q1rxfaC7zXRkAWMe0QjEeXeie29BmJyKPZ9aHRr0uAyAne3dmtJX?=
 =?iso-8859-1?Q?FDMFDmRLtdnaveoWJexYQ7cEhLiFRThov1r1XbUR+Yz8VFMwOLluPoIajX?=
 =?iso-8859-1?Q?qZodX+XzYG4pMsfg8pYf5eCx2FmEEtNqK8fPx1Ssp6yO5rR3/r+BI/zjus?=
 =?iso-8859-1?Q?hOhPIfjLdTLjjoZ7qVA5Ndqe6u3InEjo4ZmKzDH+1uJumf/PIQ137jMBvz?=
 =?iso-8859-1?Q?S1WOb4Ti2Eu1BdUPCv3U2OgM1XgCpUY+W6yhJtuRwqW9TH2IbuMPagzFAy?=
 =?iso-8859-1?Q?UDGjZZOoe2YL74qkDO51TChc89ZxUlI4UsqFmQlrb8soni96pxcz9JAsqm?=
 =?iso-8859-1?Q?hlbzUwGizEF9QHP+b7F0sTVuf4N+HgMK8hhMmU2oeA6uKIemKDRQD1Yyv9?=
 =?iso-8859-1?Q?4RzMTcAHlqwH/BqBKQfoJxL4oHhoQ/GTtkXT+LnA/Q4aoyrpPEYQx8QsMg?=
 =?iso-8859-1?Q?WfLorDaQSaiXs8qnLtN8WulCR0Nr9z2l4ok6k87ek0I6WwH/LHvKAUgLB5?=
 =?iso-8859-1?Q?RVE7I8lbuqw7j1IVpwviUu6J6LPmUYctAm6ZlTJ83tY4BjRXVYinzkIHNP?=
 =?iso-8859-1?Q?LKBUrqIsDfaRJK4wP0RdQhG7+s186FSEmKH9mbpCqmLbnMrZfecObaWP7U?=
 =?iso-8859-1?Q?t0V6OyORx9NrLkC/yNtOx12Y7lEDbS+uM0JHMFkbPDG20ryt6IwMqlO+HO?=
 =?iso-8859-1?Q?GmRI/57MsMVgmepYwa8DuxBE+EW3zUNFiX81aNgjFwK9tXzHQJsSOWE4NN?=
 =?iso-8859-1?Q?SHwgEnRPWLvXsl4kbe9djm5BANrgxS3oeN/p0M58EC8JjQQRNFPx/fwdY1?=
 =?iso-8859-1?Q?MI4aQxkn6Ifku4nn7eLHv5DcGeJEw1gf3oOjQb4oHWHKl2QLSkHfnVn1dN?=
 =?iso-8859-1?Q?wKfsixpLVGMsUDtRpOMPa/hoRYAbpRcPOzZwkehcsYLP9MaB6cyY2TzX5h?=
 =?iso-8859-1?Q?2EZpCdwkCfN9xYiMPkiToG6qowdn2Ui/t+RIrnmZ4cdQ=3D=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)(1800799024)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?JXhCd+GSW8mnpSt7m9rt5sBJ1D/Uo0Y7zYSn3WRSgHOqtHMu/zThWTU/1Q?=
 =?iso-8859-1?Q?eJe9/U7i7NqV289Y79ye738n6BN0keY2Pzf7Q7gxPcXBWsOW2Wr4FOAu1q?=
 =?iso-8859-1?Q?HQ6lJRljQ5YoPBYlL6rtNyvjKnkPjgEItJaTo5/rwqIb6zthVxBCuRq63j?=
 =?iso-8859-1?Q?37O8oUt8iriSGb/+K5KT/GDZMAuOXDU0T8midKnXzMpUo64CQvEblLsB7V?=
 =?iso-8859-1?Q?OZwztV4tkhdGNqvc7izchLUAr9VQzIriRgA9rm1TzjYvWBG008dNp+tQSz?=
 =?iso-8859-1?Q?BxNUrsZBm/Y8lzdO3q+ITjeDkNxLoZI+J6dBIKT10IKdcjNf1ho9z8IuWe?=
 =?iso-8859-1?Q?M8f+/I7PP2h6rebXtIcF/I5J2xBWlr9411UF5yvh5hiL/Jkzdh6h9otCLi?=
 =?iso-8859-1?Q?SnyxtRJp7Aw0X9TYDB4tW+UgcRonLjHc2x+gF65Z6p4l3FAWQXDlTRjdrF?=
 =?iso-8859-1?Q?CWbffIpJrKV4EU0oAgaVjgFj25cLdLcOWOFNSMtUOfOcYDlzsgqb9f7USX?=
 =?iso-8859-1?Q?Dq/lEDoRdWJ0X0GR7ladNlSM6oClQmgeS9qe2k3erKEBuI5HbnhqP/Vf9S?=
 =?iso-8859-1?Q?9FXFDTGW6t5OqXxUo/LUEWA0USvyDdREEGbAj+g4ONIdE+sxiwQnDXcAwL?=
 =?iso-8859-1?Q?ZJGWaJRh0aEx0sPAyCKAkeE2EpbZNhxwodaypGjdsmB4xxS/iPrYuq3/BF?=
 =?iso-8859-1?Q?0HzAaqitD+jLEnADogiaBJhQ6BDmMg3jiuybkswwCbSrNUQVBgpzOfO3uG?=
 =?iso-8859-1?Q?OlcMD+Ec/naq7lCHradmNYqDt2WcyC5pk+TWqfLHAbsOwT1pCI8fYPO6EW?=
 =?iso-8859-1?Q?TPwNeppMkTWzlbeaf/9l5sZ7vVElgPxrwBe2wAG+sNzdotagsccz+5KaQh?=
 =?iso-8859-1?Q?By7M7NjBO1wcXI5RjrUgPqX1IK2R2BTrBTFCcIa7GriNJM5djoh5Y6cWxK?=
 =?iso-8859-1?Q?C4fB7dLCm9UKNip9P+rN9z8X0MVu/jN0YZuyfB0Pem4UMT4VcPI5T7vju3?=
 =?iso-8859-1?Q?q6FRmvQBLRgBM2peGz4mWB5awslx0TjyJ6na2sRXHN3coohzTlJ8c1N0tw?=
 =?iso-8859-1?Q?oJP2dNS/MgVyq3AO4/HOwWPFUtIERij1YUmKzuFKwOrllaYCgyrzhcWAs3?=
 =?iso-8859-1?Q?EIhRB0/m8rnhY05tYskXP9nlMRGUtirD8uvi9tvOsNNCTjID95+CkznkJU?=
 =?iso-8859-1?Q?oMIpajuR+sDZ+hWVvEiKGoX3lOrRXOg627GU+2YpDPjlAgxhqzCXa8FXas?=
 =?iso-8859-1?Q?ooPco3bguP5aSHi/O0hxd1UyN3C6XWr3GOehTzYbzXc1dIlrVUU2r8DT0K?=
 =?iso-8859-1?Q?HyVq2DF51WXZkBZ1XZg22yRA13fiftRRTkhJ1bZSZsLMZVCXXEkrWFCVfm?=
 =?iso-8859-1?Q?7aCQT3b1xsa461m3dj90jGTOl2ypjXXN4bP9wXpjtHD10F6bSKlShdrmWZ?=
 =?iso-8859-1?Q?GBNESmBgVhBI8kE/bvx6QStQxcVTkTxSV5M+eOd5A6KQqgu4IbQS+ghUZv?=
 =?iso-8859-1?Q?/mdZW4Pf3UdLRSVfs08QVaKNKIj6KK190gXozcYKrnU924px6OUSV7E9gg?=
 =?iso-8859-1?Q?3oTmwKVs4aWneKMoQStZiJYqHa7999xKOf+CuABR4whlAcX4wLAE4LCYma?=
 =?iso-8859-1?Q?el3DFtUXTMkf3MUfHXaKMWJOtZ2t5kDQ4MqfAbHvGMxDG+ry64oKUnDA?=
 =?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: af72f70a-c0fb-4b5b-fefe-08dd82572081
X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Apr 2025 11:08:07.3215
 (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: ZQOToDKHKEVSpl8Bpw9W4fDZu9Kha2wg8M3xQqkQIYZrkawTeeqk3IRQjFPiRisIxNDaod2F7O8Kd/U/+Sik4Q==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBAPR03MB6677

From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

Some of the PCI host bridges require additional processing during the
probe phase. For that they need to access struct bridge of the probed
host, so return pointer to the new bridge from pci_host_common_probe.

Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
---
v3->v4:
* change return 0 to return NULL

v2->v3:
* no change

v1->v2:
* no change
---
 xen/arch/arm/include/asm/pci.h      |  5 +++--
 xen/arch/arm/pci/pci-host-common.c  | 12 ++++++------
 xen/arch/arm/pci/pci-host-generic.c |  2 +-
 xen/arch/arm/pci/pci-host-zynqmp.c  |  2 +-
 4 files changed, 11 insertions(+), 10 deletions(-)

diff --git a/xen/arch/arm/include/asm/pci.h b/xen/arch/arm/include/asm/pci.=
h
index a87672d834..3d2ca9b5b0 100644
--- a/xen/arch/arm/include/asm/pci.h
+++ b/xen/arch/arm/include/asm/pci.h
@@ -18,6 +18,7 @@
 #ifdef CONFIG_HAS_PCI
=20
 #include <asm/p2m.h>
+#include <xen/err.h>
=20
 #define pci_to_dev(pcidev) (&(pcidev)->arch.dev)
=20
@@ -95,8 +96,8 @@ struct pci_ecam_ops {
 /* Default ECAM ops */
 extern const struct pci_ecam_ops pci_generic_ecam_ops;
=20
-int pci_host_common_probe(struct dt_device_node *dev,
-                          const struct pci_ecam_ops *ops);
+struct pci_host_bridge *pci_host_common_probe(struct dt_device_node *dev,
+                                              const struct pci_ecam_ops *o=
ps);
 int pci_generic_config_read(struct pci_host_bridge *bridge, pci_sbdf_t sbd=
f,
                             uint32_t reg, uint32_t len, uint32_t *value);
 int pci_generic_config_write(struct pci_host_bridge *bridge, pci_sbdf_t sb=
df,
diff --git a/xen/arch/arm/pci/pci-host-common.c b/xen/arch/arm/pci/pci-host=
-common.c
index c0faf0f436..53953d4895 100644
--- a/xen/arch/arm/pci/pci-host-common.c
+++ b/xen/arch/arm/pci/pci-host-common.c
@@ -208,8 +208,8 @@ static int pci_bus_find_domain_nr(struct dt_device_node=
 *dev)
     return domain;
 }
=20
-int pci_host_common_probe(struct dt_device_node *dev,
-                          const struct pci_ecam_ops *ops)
+struct pci_host_bridge *pci_host_common_probe(struct dt_device_node *dev,
+                                              const struct pci_ecam_ops *o=
ps)
 {
     struct pci_host_bridge *bridge;
     struct pci_config_window *cfg;
@@ -217,11 +217,11 @@ int pci_host_common_probe(struct dt_device_node *dev,
     int domain;
=20
     if ( dt_device_for_passthrough(dev) )
-        return 0;
+        return NULL;
=20
     bridge =3D pci_alloc_host_bridge();
     if ( !bridge )
-        return -ENOMEM;
+        return ERR_PTR(-ENOMEM);
=20
     /* Parse and map our Configuration Space windows */
     cfg =3D gen_pci_init(dev, ops);
@@ -244,12 +244,12 @@ int pci_host_common_probe(struct dt_device_node *dev,
     bridge->segment =3D domain;
     pci_add_host_bridge(bridge);
=20
-    return 0;
+    return bridge;
=20
 err_exit:
     xfree(bridge);
=20
-    return err;
+    return ERR_PTR(err);
 }
=20
 /*
diff --git a/xen/arch/arm/pci/pci-host-generic.c b/xen/arch/arm/pci/pci-hos=
t-generic.c
index 46de6e43cc..a6ffbda174 100644
--- a/xen/arch/arm/pci/pci-host-generic.c
+++ b/xen/arch/arm/pci/pci-host-generic.c
@@ -29,7 +29,7 @@ static const struct dt_device_match __initconstrel gen_pc=
i_dt_match[] =3D
 static int __init pci_host_generic_probe(struct dt_device_node *dev,
                                          const void *data)
 {
-    return pci_host_common_probe(dev, &pci_generic_ecam_ops);
+    return PTR_RET(pci_host_common_probe(dev, &pci_generic_ecam_ops));
 }
=20
 DT_DEVICE_START(pci_gen, "PCI HOST GENERIC", DEVICE_PCI_HOSTBRIDGE)
diff --git a/xen/arch/arm/pci/pci-host-zynqmp.c b/xen/arch/arm/pci/pci-host=
-zynqmp.c
index 101edb8593..a38f2e019e 100644
--- a/xen/arch/arm/pci/pci-host-zynqmp.c
+++ b/xen/arch/arm/pci/pci-host-zynqmp.c
@@ -47,7 +47,7 @@ static const struct dt_device_match __initconstrel nwl_pc=
ie_dt_match[] =3D
 static int __init pci_host_generic_probe(struct dt_device_node *dev,
                                          const void *data)
 {
-    return pci_host_common_probe(dev, &nwl_pcie_ops);
+    return PTR_RET(pci_host_common_probe(dev, &nwl_pcie_ops));
 }
=20
 DT_DEVICE_START(pci_gen, "PCI HOST ZYNQMP", DEVICE_PCI_HOSTBRIDGE)
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 11:08:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 11:08:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.964353.1355164 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7Xxb-0001zt-9Q; Wed, 23 Apr 2025 11:08:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 964353.1355164; Wed, 23 Apr 2025 11:08: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 1u7Xxb-0001zm-6m; Wed, 23 Apr 2025 11:08:11 +0000
Received: by outflank-mailman (input) for mailman id 964353;
 Wed, 23 Apr 2025 11:08: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=hoPD=XJ=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1u7Xxa-0001zZ-9V
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 11:08:10 +0000
Received: from MRWPR03CU001.outbound.protection.outlook.com
 (mail-francesouthazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c207::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3d40be9e-2033-11f0-9eb0-5ba50f476ded;
 Wed, 23 Apr 2025 13:08:09 +0200 (CEST)
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by AS8PR03MB9841.eurprd03.prod.outlook.com
 (2603:10a6:20b:61a::21) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.35; Wed, 23 Apr
 2025 11:08:06 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::35ac:8893:c31c:b971]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::35ac:8893:c31c:b971%4]) with mapi id 15.20.8655.033; Wed, 23 Apr 2025
 11:08: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: 3d40be9e-2033-11f0-9eb0-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=KhR0q1EZZ0sZ9PkjFbTS+37eI79uCuklIy+fuAcVEJQq5J27Cu+9mAEoK2cJ2gJ89O6Nleyr9DoiMiqt75z8gprAtBOZpjpl4Zf57uJWXW87PnIh7woYIY1Dxra4SM73I+q+0VZT+eQbzYDMhImenI6xD85AYkbRQ1p/9pnTX0WR1wZczCEzd6KO29Nj3fsyWKZJZntp/JXuroN8hXVKWCUflW69/Z+X89JZHc3YPjML77x+gT472pk7IIzBQeOZ22dEybWHL+5zZAbbhbDfqORqblzwsWKp4jaw6wotyCBE2bjkWjnjKzpFl2xH9DXE/VlRBM2m6VMYLoj5+J1iOQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=RzFvdTrWI9k4XbZXhcy7XpTmfE8YYnmbm/Dv2U2tu7A=;
 b=IF4QG/H1jG2g4jSg0q3c9eq8O+xrL/BaiOsTgFKCWTCOIwH1bRI7j9Webcg+PN19wTaZQtvHEhn0IVkt0Ts1NI4qIviR38+x4sUXuVfnWvYWsCPr84rosyQk3izFyOvkACPKx/TSYMhXrK0RssyHvQyczcDE9DsfNLeURYRbqx0aqNZwLDhdVtyobt+DUBj1re1eoS0/xuZU88uodmhswnio05yUKhCtOAtf0BsNMZ7ZUI3xSQbHNEJjfto3F3ABY6ju6vwYc3wdICnmriebRLcCKda0RK4jpBC+k4tUhqNARlvXkQM2Lh0p+u5+3mH55KnZ1IDja5to7z7v2za+0A==
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=RzFvdTrWI9k4XbZXhcy7XpTmfE8YYnmbm/Dv2U2tu7A=;
 b=d3fgWI5OTryp0cfZwZx4nQheDGrrOZ8RCSbfxHRQCNoEfGzuORo6uNUqZDlSHczB1S3JrCbyIjOI8AaM2hHRKs54YDazJS3Zi1zbwiwd05mOGS87CcwJgmeqrAmsWqz5x7gkiWIEAka6+6MydS3Hu88tnbybSEjEO7Anoq03n9p1TXShdMZJ2Dv6lgXW18ArjYJMhU1JZwmYdKT4vSOMkNH7YJXbtCdcFhv2FeMg5c0EvCcke+YkX20paRhoZcixcMYJ+jGdyOTdBTunMPQyQtiTtjPZ3R72lUWUHWv6icF3VgKMWYYkji/TWPHa6nj5mh6GJFssZ6r/Ytw+7aG3Yg==
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>, 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 0/4] Add support for R-Car Gen4 PCI host controller
Thread-Topic: [PATCH v4 0/4] Add support for R-Car Gen4 PCI host controller
Thread-Index: AQHbtD/9healTf8EwEODhly5/C64XQ==
Date: Wed, 23 Apr 2025 11:08:06 +0000
Message-ID: <cover.1745402473.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_|AS8PR03MB9841:EE_
x-ms-office365-filtering-correlation-id: 035ed0c0-ed99-4ec0-e151-08dd82571fef
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:
 =?iso-8859-1?Q?c6CQBnpSt33zgqSAXyO73dTRoDgCg2M92b9Sj4IKsXM/jlWADashHd1MwW?=
 =?iso-8859-1?Q?/ew/x0AihrenEQTBsxyWoxVrIiyMtma4t/HzuZyejQwp6OSOpFLtyAayes?=
 =?iso-8859-1?Q?vd77zbe+WahsNQ5MxfD7yqn7dQ/NgUKby9e6atE08UiHSW1KiMEZa3uaB/?=
 =?iso-8859-1?Q?f5bfPSQ6L9wfWdEPaMtagLngf2uNQqIpnxm8QRBHQiKa1ItL/5Vn8SbTms?=
 =?iso-8859-1?Q?FfW7yEtHAjYSzICXVAsOAhZMuTr9rT608Fum3wOkuZPPPzLo7IZ6QEWZQw?=
 =?iso-8859-1?Q?1C4DIowGu776Fe+YtGvASBqAs7eRqBm43V89xB65vgXdL+p/2n78TH/8Ni?=
 =?iso-8859-1?Q?A1Vs/AtTNaGXLInJxl1KOYuNKe8mv5/fqjaI89jBjXzui57UTSgLyLS9lf?=
 =?iso-8859-1?Q?fCS7zqoWNWGcbwkJrXZZIATH+kc188n1XrVamwMusvhRquvCHcYj4o6cB4?=
 =?iso-8859-1?Q?IX41cPpy4mgQ0RmZHK+9V8ygQCXoBoHkIO5Wp+U5RQrPzrpbWTUzjI/PPb?=
 =?iso-8859-1?Q?A7WCqNEaCT4eLQKyFBcNVkRK6xYCNNcrrtVj74389t48wSYdcAbWehusnn?=
 =?iso-8859-1?Q?hul16Bs/iRIjVSmQXjfmFquC0sttttKbvXlFTTbTqsteS8QN5Mk950gBAT?=
 =?iso-8859-1?Q?KHiZqS40enSaeWPuG1/mWDN8reU/eCfJvyjWjOrRw2TZadY+9Lqo7bJOmq?=
 =?iso-8859-1?Q?y1qpmQBml8bKfW6YLoZtJAU4A52CRGbO5oCMO59N0rgyhXWShwKS8Cxwrs?=
 =?iso-8859-1?Q?ghr69zDJ3hTIJdLql16p2wNXgOVswzd9W5uQMaY+u+6aWQlalOtjgfzIDg?=
 =?iso-8859-1?Q?F2u0ZV39zbhRY0nJ9KUMI9NVy5YYzTRRFNhNYcMtarfo4LHYtVbldTJdDz?=
 =?iso-8859-1?Q?XdRsYj/x4HjxlRapb4ddl/aNJG1dRWp+90rWs+9WwxpJDISY88ia7l/520?=
 =?iso-8859-1?Q?x8TA6NkkVc/4HiEA5nM8MK0ibAnBLxJSu5mAfFRRwjxvx+KkWDxPrF8MVB?=
 =?iso-8859-1?Q?Fscs4rPSY0uAWb7RhaqKIyzlO9k4xJW8S61ajZtErxui2/0B+Pn1L5KFce?=
 =?iso-8859-1?Q?bUJZ1Mmjo5iLO4wukCErCJ6owvcIPLE8w3+HvXC9kr9KP4PxzrkXyrA7T5?=
 =?iso-8859-1?Q?P0x3H2TuUl+Bcaxv4AQYQnG0eV3Jttw3j1U/nbpWzpEth3TrT59obpc10l?=
 =?iso-8859-1?Q?7nbjRgf1EkYNLJHVUH2lvSOgzZyyVd3eVlrXAp+QfRW1mmY0VBnsFs2SEf?=
 =?iso-8859-1?Q?zJEKCd1ISoUkBIIvtuFTUBWApsLJw678ZlEzftGnSXC7loSg1jY2JImFGh?=
 =?iso-8859-1?Q?nvYp6znOHydY9H25wIpR4BmYr3n36YHDuyEV2oYvJnDO21aW+HFdzCErUR?=
 =?iso-8859-1?Q?iIJ4HT1oV2Mtr/zQ93eaJWUxDQRwmdAVgDPy6xurxaMxUrvtn3ODMvH6ZR?=
 =?iso-8859-1?Q?ZWe5rdRDJpTqNkm6STln7FcRwNy8j7GYWUciu+g2gkslbmwBIhVcq899q2?=
 =?iso-8859-1?Q?pw+GcRtZ1GBPXJBezCROgCrrCNSf0MilC3OwAS2LZHCRa1Li+oxuxX7UfZ?=
 =?iso-8859-1?Q?YA6XYT0=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)(1800799024)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?TB57dc8Wbp7cDXA2fNU71gTiR486iLUqQBZbvws/MNehMSwwBnV0SVO3L+?=
 =?iso-8859-1?Q?QKhORAohGcZFKG8h+p/9pfC2R1GdEA7kGUrofFiO7EPAmgb6nQROREnc6e?=
 =?iso-8859-1?Q?KdF+FT8qfgk2I+5MLjzmiezzEUJBQrWv3jFDZ+x8MLVvIg2YXCFFC8De2U?=
 =?iso-8859-1?Q?wqRCslL2JLELaKIc9pxAS+klk7Yw04jSLt53oS1Zr5rZVjNxLa50WHwrL6?=
 =?iso-8859-1?Q?mOJEmnCGUdFK4/CtrDV1oFN/NVJOIbxMKzdvOAtrmSllo7IdhYOcg5rJon?=
 =?iso-8859-1?Q?UypH1opZuLWf4XYos4BaT7Eci4CPsKTJjJeqPgSO9r3pWAOs/BeD3yWqCc?=
 =?iso-8859-1?Q?TNviY41uTZjaix7Ah/XdheoInFEh/gi5xrJ3eVuAAoJKQPcGeqOVSBIxYp?=
 =?iso-8859-1?Q?4CWAMNZVbDCy53Ww/HrxQr36t92FI83VAdZYKMYCj88ZD525Xf3oFQ3PHJ?=
 =?iso-8859-1?Q?w0ewyRz1jasOpdcFDkCyPlicLtDqJLL+jsW38gouMnOqMHI7Eyk+baCCdi?=
 =?iso-8859-1?Q?QiC4Z4v7DRzYFnX/EhiEjxPhFVA/R4w+qHMMq9NoC3bFLKL+yHQ5pFBeGc?=
 =?iso-8859-1?Q?/geXgHco0RYg861Q4jIGVoKnCK68gt02c4MTFV9ZXvAnJ/BYEoeU3+/R/p?=
 =?iso-8859-1?Q?9dpGX52wAtmKg0AM00/mdWtIFYTDZRRGlR7dsYc3HsBF/DR9g6AQyezr2G?=
 =?iso-8859-1?Q?1zXZUJeftwcKvCy9ZSjuNfCD+p21P1S1X9YANYARXj+A80/OdrYU31Apjs?=
 =?iso-8859-1?Q?Vauo1HGrRkpe55Zorhr564/UdD76glkUjjIPeMVL99SZkxc8/sHVW2aPOZ?=
 =?iso-8859-1?Q?3N5m0dEXr8gM6ayz6IY1Vvpki/Tk+iYSkhlu3e2wWBvmIoxKUuUkj0iJfC?=
 =?iso-8859-1?Q?5Vad7+FzUCOBbjoBQusj0/TNx/BAC6toHmraJXmYi1LkHKoJKN8e3CgqHA?=
 =?iso-8859-1?Q?Pduwh84i9+pe+7b/uxy/mVp0qCuneSziMcCFhIsM1EoKR+d03EujnZu/cB?=
 =?iso-8859-1?Q?1MiNu4KY3aqpNY3ADD5IFvglOJXec0CppsTtCwcE1ADlY5iLkgNwEVjPLZ?=
 =?iso-8859-1?Q?4CeeDlPJ0ezKP2HjkRocgvIU9OUzqj4dVnYhxItdkKiyO0ATR8fTrC+ugQ?=
 =?iso-8859-1?Q?tzzSuNFBNCpNaFfcGmUGABNVVCExAMtcxAx9dqytcJsaH6YEaHBOCrBfPr?=
 =?iso-8859-1?Q?qafXHGnN1oRd0zT8/FispGO10SRqQOik5hMd/B8caDielWjmU1MaoHO0yz?=
 =?iso-8859-1?Q?5Gc4go+fV3EVgcTLJTjLwZRXFNTMI0AkyPAmDw6xCn3Jnl8pekxV6yg3vV?=
 =?iso-8859-1?Q?riV7/QpHyncLfqHImhioYGcUs/qTrIhYz2QbdnIZ9ZRhNRAe7dS4darFlG?=
 =?iso-8859-1?Q?bugvj1nSrAs4SyW+uiZhBQvT9SCD5empo+2Exgjp3zYHROG31m7v6BL53n?=
 =?iso-8859-1?Q?DkuQJox3hF2RxX0ZeyytsgGTbSIf54JKquDIH7b5DM9USRhStsfMtlbD17?=
 =?iso-8859-1?Q?yez81jn0b+5d4hd3UnAPood3eVGCfSwJhhfdyVdC1VWVc965ZMZYCYkOQ5?=
 =?iso-8859-1?Q?B9T0tqTmQG1qcGCWPXxr14zZt+ibSEvthQl1oNDOa3xCWGCvuxx8s2xl01?=
 =?iso-8859-1?Q?ZWkVIrYtgXePmzcXXj8DptqhdbOTqNDYnWrRaAsMOYosu6hO6V9wGIPg?=
 =?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: 035ed0c0-ed99-4ec0-e151-08dd82571fef
X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Apr 2025 11:08:06.5436
 (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: QGsyQgAWkSTUpaOX3rIrENU7cfh9ofggcZ1AeczoW/MuOohjdnSFCO6pdxnEG1rctefpZEpTJPA1QkR62W5Fsg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB9841

This series adds support for R-Car Gen4 PCI host controller.

To fully support the controller, the following changes were made:
- Generic mechanism to support PCI child buses is added.
- Private data for PCI host bridge and means to access it are added.

The series was tested as a part of the pci-passthrough patches[1] and
build-tested standalone with enabled HAS_PCI and HAS_VPCI.

[1] https://github.com/Deedone/xen/tree/pci_passthrough_wip

v3->v4:
* rebase
* see individual patches

v2->v3:
* dropped patches related to ATU programming delay
* improved formatting

v1->v2:
* see individual patches

Oleksandr Andrushchenko (4):
  xen/arm: allow PCI host bridge to have private data
  xen/arm: make pci_host_common_probe return the bridge
  xen/arm: add support for PCI child bus
  xen/arm: add support for R-Car Gen4 PCI host controller

 xen/arch/arm/include/asm/pci.h      |  11 +-
 xen/arch/arm/pci/Makefile           |   2 +
 xen/arch/arm/pci/pci-access.c       |  37 ++-
 xen/arch/arm/pci/pci-designware.c   | 403 ++++++++++++++++++++++++++++
 xen/arch/arm/pci/pci-designware.h   | 102 +++++++
 xen/arch/arm/pci/pci-host-common.c  |  94 +++++--
 xen/arch/arm/pci/pci-host-generic.c |   2 +-
 xen/arch/arm/pci/pci-host-rcar4.c   | 103 +++++++
 xen/arch/arm/pci/pci-host-zynqmp.c  |   2 +-
 xen/arch/arm/vpci.c                 |  83 ++++--
 10 files changed, 793 insertions(+), 46 deletions(-)
 create mode 100644 xen/arch/arm/pci/pci-designware.c
 create mode 100644 xen/arch/arm/pci/pci-designware.h
 create mode 100644 xen/arch/arm/pci/pci-host-rcar4.c

--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 11:08:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 11:08:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.964355.1355185 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7Xxd-0002Rl-Qg; Wed, 23 Apr 2025 11:08:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 964355.1355185; Wed, 23 Apr 2025 11:08: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 1u7Xxd-0002Re-Nu; Wed, 23 Apr 2025 11:08:13 +0000
Received: by outflank-mailman (input) for mailman id 964355;
 Wed, 23 Apr 2025 11:08: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=hoPD=XJ=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1u7Xxb-0001zZ-Vd
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 11:08:12 +0000
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 (mail-am6eur05on2060d.outbound.protection.outlook.com
 [2a01:111:f403:2612::60d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3de964a5-2033-11f0-9eb0-5ba50f476ded;
 Wed, 23 Apr 2025 13:08:10 +0200 (CEST)
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by DBAPR03MB6677.eurprd03.prod.outlook.com
 (2603:10a6:10:197::14) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.22; Wed, 23 Apr
 2025 11:08:08 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::35ac:8893:c31c:b971]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::35ac:8893:c31c:b971%4]) with mapi id 15.20.8655.033; Wed, 23 Apr 2025
 11:08:08 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3de964a5-2033-11f0-9eb0-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Fks4NZSceU/P/4v+G7mwpB5MNDGN7QOZzUkZnt2F1bbGYDB+UVoOCvFHFVaDrhqZOvu0e3J0EW8pjzTD8KtUlItHcwl2uZCSgK04iITpMC5Hbp3jaMKiYbNT5nkdHdXn6wtHBxdvJ9dtEJWK1JsDuUHjf+Ve9H/ppoiDabF40ZGOvQGc1y1AScTjMIuGut3HDzYD2MDDcBsnL3VOGNqX0j3BqcZ61pnXRj1rtlX5u90DXwG2kuriJLV1jBCJ4QgOPigm8+2toAw40nz44AR/dFS6s3U2BcxGSg9tgwINJnUg8q28XKfgTuBH7V7l/wp9VnFPvcnXOjlcTn6m0SXh7w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=IdBQJrdkkEupJCIJnnq0CPWtd/ImnqdkUes1bIoRV2o=;
 b=bjhipGKuLD2/onXNd99oq6VyDQVSJSg/0ET1AF+XNCkh0nPWiiWtveYyM5oRn1HrllYXb6G9bwJkJap/d3qJDURGMZk4wKcuM9RNGggvuBXjZQu0ca71yiN+5tGXUR+AMp6F8XyR+/6yRCVgz6eHS+Qi+M11NNDoWZepjHK6wbfc6cLOlJLuhQXAW5a4hXD+Ut0iFCMF2Lx6ADY3kBz+NYThgN/kvgrlgvD5M9QCxVn0pC98iy31659ZdTBV+2250zrDfgScOEJ8lGeEBQJi0QXV9G4/zQhNIt3q38xh3Xr6pXi+0E5BgA398r/vMzhghX8vH7CQXaZjQp4iCHggHA==
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=IdBQJrdkkEupJCIJnnq0CPWtd/ImnqdkUes1bIoRV2o=;
 b=R6nc9M38Iac3V6PJQ645QHAmgQ2bVpKt7Nib2XJD1OoNzH6QyztZvBx8dB/pKcz+8O0IQljvDg/Nys7dLmHjk7r0NEZOPzVs5q2pVX0w9kKi0qus4RKpTu+jRmuM+RC78kcloKhk1ogzaG77FePZS/urGBYW7Dh6wZkshDf3lcWEEoM2IJp7UL179HNibF4+azLxPKhZRhIUJmEET1+n8563KJQ/SbYjjvFD4TsvfXCO9xCO0E739E6R3Ff+AlY001W3v7w7jKgnWqpR6GtflfitCxFnovrIZ2wUwJ9wSr0zoZJ3NLFNByzsYX0NNBdHWVHYFpserKnMgnssseSwOA==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@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>, Mykyta Poturai
	<Mykyta_Poturai@epam.com>
Subject: [PATCH v4 3/4] xen/arm: add support for PCI child bus
Thread-Topic: [PATCH v4 3/4] xen/arm: add support for PCI child bus
Thread-Index: AQHbtD/+iEx0Vt7ta06YeE/e+t9zSw==
Date: Wed, 23 Apr 2025 11:08:07 +0000
Message-ID:
 <79bbb6705638445526bbd1fa299b7bfd0d087462.1745402473.git.mykyta_poturai@epam.com>
References: <cover.1745402473.git.mykyta_poturai@epam.com>
In-Reply-To: <cover.1745402473.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_|DBAPR03MB6677:EE_
x-ms-office365-filtering-correlation-id: e1e11ceb-8c73-4377-6f86-08dd825720c8
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:
 =?iso-8859-1?Q?SH/QWsFG8mUZN61qMrdWhei4s1LqdGD8MUdjFCB45xDN0JldaDMbxGpBhk?=
 =?iso-8859-1?Q?7DD1CVAzLJrh8ZiqWefjF2o6qL61oWCCZ8u/BfUZMO0qPozUzTZjj/dZhs?=
 =?iso-8859-1?Q?3ah1JuRm9EPCg8liDvMDHzzWE32kIXhdGmWGUYehGyHEvFUhE0RERbhG1u?=
 =?iso-8859-1?Q?/9o85r6EvO2CIisIZMcgmXS29tzj+Xwl7ygf8ssblInvCeVeuoA/n0Ad3j?=
 =?iso-8859-1?Q?laM28HxOMiJUWZMJtAMvi13T0F2mx32P4lvvuOt5OX3bgqceX/kXZsQLMf?=
 =?iso-8859-1?Q?PLqIK+nWHlStBPp4gJc6RaPxVc5X5LC6LIiacbWIfSitznTOHRqPdIbmnE?=
 =?iso-8859-1?Q?z650zzX+d5vi/n30ks9flG7qvBxwGHbWgdteSqNzCaE6wlCCJtQBv9gML0?=
 =?iso-8859-1?Q?OcXH4wNBd96u7qaFgi5A9eaaf1EGUtCh9QYQicaDvjLgR8Bg9BqEg/D19o?=
 =?iso-8859-1?Q?6iiIFcBf8X2GuV3q44R0JFs/In5BBnZkMml+9jmAwiR/LJezGbf5YbG0Xf?=
 =?iso-8859-1?Q?/RrOYtJoBLk4SQyMPs42Z39jqeXIOVksj60ZxQeajh3HHa+/sq4VWy2aMw?=
 =?iso-8859-1?Q?uglKpZE4F5k/F6XR/xrxztB6wCfBUy5wyJTqIZz9Dkhm3HTrd2nynsP+y3?=
 =?iso-8859-1?Q?+DXu0xygP5k3GuV8HxLiEcZjOPCZhjIaVsn2m0I3fNkzM0fyiyLWpbLfMa?=
 =?iso-8859-1?Q?whpxp9p4O2dDY71GYC57FkikxF2Exvbpa0q1qbRLr9jht6rHej00ZFSR5g?=
 =?iso-8859-1?Q?XDP/+kZ82TTzQODUpvUV/74uVaF/aKTeH/uzNmmTyRh4te71U2ZaSdX715?=
 =?iso-8859-1?Q?kjsi25wlBLqVCjmxjMui+qgoSQsUM8EOCKksis4EsKC5hIv7nU8sKto+9K?=
 =?iso-8859-1?Q?v/CShIQkkClwnP5XOXwGcv97RapuvYl7ZVHPIYremSTbiSySdWJQLUokI1?=
 =?iso-8859-1?Q?JsMod8N+QhjrE/9sr6bnQMrSfG8n9L7kgcjbkyjXD20igEK/DnW++2jsrU?=
 =?iso-8859-1?Q?67KSZDU/xa7xUxhgJDMLMJUB9jqcKw1ridSD01f63nWY3TshM3oNeMZK/8?=
 =?iso-8859-1?Q?VrvsUKslso+valnI8jvzBPBafQxu4gCDKlGaHNvJVQSLTuhRen5cqPcITc?=
 =?iso-8859-1?Q?6TDcX6QGsQWdCfFP2wexZJq7sX3EDh7siuf7UJPfe4JSU3W6C2ZUS66Omv?=
 =?iso-8859-1?Q?Eeb4g+C92ft0U67A5ueW/vg5Y9FnPlnFknYHZ1QmybNj3iohowaK/GvBnS?=
 =?iso-8859-1?Q?gEE0b/ukSMwr4JTVu/OSD67Z/v+Hbsfg9ou0tNzdqzRBe5bRTcgQe4Nm3A?=
 =?iso-8859-1?Q?LPdTJ5dZkw/x6V02t8ZY/37/w//6o32pl3YeMmKMPiIOzlw1z+NPKzTN+o?=
 =?iso-8859-1?Q?72V9aKMdOiU3n9abr2e3rAXNUlcLVKJZpef8RgB35yLlhXQxzv3L36dX1c?=
 =?iso-8859-1?Q?11ERspz+oGd+gubkh7ipPdnILfZlMrNoYLRy6CjYZfrxZVeTmFOxlNbEK0?=
 =?iso-8859-1?Q?E=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)(1800799024)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?eTey89pfGV62OwffFq4PAwPcYJ4Ns3LNxrjbAUjCsHd/1NcutYSvNCzMvV?=
 =?iso-8859-1?Q?gXym6dgG52juMi7cxUpEXuxysgAoRlHeP5XFEAmHpnoRjXWHkf2k2U+yq3?=
 =?iso-8859-1?Q?F1R/oRiq3FtCC+TGnfdftcB+Mz4sjKRuiJ7irM0Li7lmpodL01CJtMGCbO?=
 =?iso-8859-1?Q?o3Kc1ihC8tAvl03y1u79+SrR1bxsBymMHQPgR0ZONZA4JawMRKw/Jk75Q0?=
 =?iso-8859-1?Q?xQ1L4aXJ93tgGYcOly4qxIQEUq8wGwtYPlMfXl4eyyl2/DH941lR+i5IcR?=
 =?iso-8859-1?Q?eWjFXuAkeTYt0wXYcV+gZNsCAg3plJXYKTfZf/fNZJsSGgrdku6WD9rteG?=
 =?iso-8859-1?Q?3eDcypMv/n17zMbsbEpqxNrSpZJhDZZTiMI+N8BPnMdj+wk1dIGQMElpDz?=
 =?iso-8859-1?Q?gdoclOUopkbeCHuF9rfHwlvxuFN6HF/5YJMd5+hzCed3jmv1ZGaDxEYIQE?=
 =?iso-8859-1?Q?6+nhRU6v5JCORKuzbqk+irhza2rC7W9A/Edw4ZxN8qnXyfyIjMCFB4v1Om?=
 =?iso-8859-1?Q?66EOBmKM/vyq1SvY2E3t/veqBDv2RKDcgpYjhXby3Fsd29g845YpWe+93c?=
 =?iso-8859-1?Q?II1wRrFFFr11f0hjJB7SolhVI8HFKoxSTQEZSMIPYX0ndyVGVlC75pB/d3?=
 =?iso-8859-1?Q?57uKyalUBM8kh5tT3iVoy+Y/Gao6Fgsr66PtRhQPzsWzGva+Pf09lHz+qm?=
 =?iso-8859-1?Q?e4pmb0RJfsRpIePDZAYan3SJfvAUE5QThy/XDWwjGeuAJ9hvBtvOPNbSw7?=
 =?iso-8859-1?Q?Cjw2ANpN5yA95FIL1fabWYqGl5OEBIgkwKZenPXXEhrmK+Hgc+lYLGaEdz?=
 =?iso-8859-1?Q?BjIldJB8D7u9bDMp8ybVCqifZeFF/WAM/V4ZP4WCsJbq2Uy8ZAseWtyKrW?=
 =?iso-8859-1?Q?Eftzmcajx4t+S/fXpou1nRAg115lx6gOCjfQQNzhze0PfID6ZAIiY6dFFq?=
 =?iso-8859-1?Q?Fh4+3tx97YDsqyI32klD89WJdSpU0iLF8l2FBjV+x3cLi0qZy8PC/HOXyX?=
 =?iso-8859-1?Q?DAZdQzF137NciRmPDKKhOVzrv2qJAJtfF1FswxicVTha5s9n2mAqMCQQdI?=
 =?iso-8859-1?Q?OVuXGTlGNbJaD/QBjKoKW5Yg8FBcoxJFYlorEX7yh2KUOMffCyl5slWEww?=
 =?iso-8859-1?Q?JQJJz+yMt0o2ma53074RJhfmsJmPSAH3tfg/bKRFB5cZA+RAWUj4eszasS?=
 =?iso-8859-1?Q?2IL2/9T8Oa+6nAJumnYWBqSF0v4VQcqjXDgKOLVGVljttvSbjJ9DEXUr7a?=
 =?iso-8859-1?Q?/i20X2RTFIa8hQn3sg3OPLfXIgelZN081MYjumP5x3QDmTxO0j4iREx8yO?=
 =?iso-8859-1?Q?ij3HcMR49YHr4osXECl88hX9OxR6myNjJarGqEKPrviGjBzVsl70gdZ9LT?=
 =?iso-8859-1?Q?hqCVIOBfvB6VKJyzJVzPdxXxDBtXoy62na1ONL0WxYO10RP9uhtpemzX4x?=
 =?iso-8859-1?Q?a9wNP9+ACTdN7CTKhWoGO+ac0TbGr0KRSAN9bqxnv3ciCSEYuvv7djqPq2?=
 =?iso-8859-1?Q?FIP6GI58/QcFZGuEZnvxQruV2OZi2kqeEIKfAzLQtnXZdZUwKMM9/ri5zC?=
 =?iso-8859-1?Q?7aXSLZZG11ee0eFOHfAszr9M9xYpECARXNKnQYWNHo4jSijbzhXEvqVAoE?=
 =?iso-8859-1?Q?tM4jpTt+ffxTjTGoHy5aTAvGY84VsBSCJGL/OGIX0fZGg8GHQVxh+nfQ?=
 =?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: e1e11ceb-8c73-4377-6f86-08dd825720c8
X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Apr 2025 11:08:07.7987
 (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: HDzZnXu6y2c4sj65ksLU+mendy4ogbmkExkA++g5hweaUQYYshik3KklQFC3/HyU6oRcm5SyUW1FKe9JzooT5A==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBAPR03MB6677

From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

PCI host bridges often have different ways to access the root and child
bus configuration spaces. One of the examples is Designware's host bridge
and its multiple clones [1].

Linux kernel implements this by instantiating a child bus when device
drivers provide not only the usual pci_ops to access ECAM space (this is
the case for the generic host bridge), but also means to access the child
bus which has a dedicated configuration space and own implementation for
accessing the bus, e.g. child_ops.

For Xen it is not feasible to fully implement PCI bus infrastructure as
Linux kernel does, but still child bus can be supported.

Add support for the PCI child bus which includes the following changes:
- introduce bus mapping functions depending on SBDF
- assign bus start and end for the child bus and re-configure the same for
  the parent (root) bus
- make pci_find_host_bridge be aware of multiple busses behind the same bri=
dge
- update pci_host_bridge_mappings, so it also doesn't map to guest the memo=
ry
  spaces belonging to the child bus
- make pci_host_common_probe accept one more pci_ops structure for the chil=
d bus
- install MMIO handlers for the child bus
- re-work vpci_mmio_{write|read} with parent and child approach in mind

[1] https://elixir.bootlin.com/linux/v5.15/source/drivers/pci/controller/dw=
c

Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
---
v3->v4:
* remove changes to pci_ecam_map_bus
* make map_bus inline
* fix logic error in pci_host_bridge_mappings

v2->v3:
* no change

v1->v2:
* fixed compilation issues
---
 xen/arch/arm/include/asm/pci.h      |  9 ++-
 xen/arch/arm/pci/pci-access.c       | 37 +++++++++++--
 xen/arch/arm/pci/pci-host-common.c  | 86 +++++++++++++++++++++++------
 xen/arch/arm/pci/pci-host-generic.c |  2 +-
 xen/arch/arm/pci/pci-host-zynqmp.c  |  2 +-
 xen/arch/arm/vpci.c                 | 83 ++++++++++++++++++++++------
 6 files changed, 177 insertions(+), 42 deletions(-)

diff --git a/xen/arch/arm/include/asm/pci.h b/xen/arch/arm/include/asm/pci.=
h
index 3d2ca9b5b0..94ec63f3c8 100644
--- a/xen/arch/arm/include/asm/pci.h
+++ b/xen/arch/arm/include/asm/pci.h
@@ -67,6 +67,9 @@ struct pci_host_bridge {
     uint16_t segment;                /* Segment number */
     struct pci_config_window* cfg;   /* Pointer to the bridge config windo=
w */
     const struct pci_ops *ops;
+    /* Child bus */
+    struct pci_config_window *child_cfg;
+    const struct pci_ops *child_ops;
     void *priv;                      /* Private data of the bridge. */
 };
=20
@@ -96,8 +99,10 @@ struct pci_ecam_ops {
 /* Default ECAM ops */
 extern const struct pci_ecam_ops pci_generic_ecam_ops;
=20
-struct pci_host_bridge *pci_host_common_probe(struct dt_device_node *dev,
-                                              const struct pci_ecam_ops *o=
ps);
+struct pci_host_bridge *
+pci_host_common_probe(struct dt_device_node *dev,
+                      const struct pci_ecam_ops *ops,
+                      const struct pci_ecam_ops *child_ops);
 int pci_generic_config_read(struct pci_host_bridge *bridge, pci_sbdf_t sbd=
f,
                             uint32_t reg, uint32_t len, uint32_t *value);
 int pci_generic_config_write(struct pci_host_bridge *bridge, pci_sbdf_t sb=
df,
diff --git a/xen/arch/arm/pci/pci-access.c b/xen/arch/arm/pci/pci-access.c
index 9f9aac43d7..91271973fb 100644
--- a/xen/arch/arm/pci/pci-access.c
+++ b/xen/arch/arm/pci/pci-access.c
@@ -18,10 +18,31 @@
 #define INVALID_VALUE (~0U)
 #define PCI_ERR_VALUE(len) GENMASK(0, len * 8)
=20
+static const struct pci_ops *get_ops(struct pci_host_bridge *bridge,
+                                     pci_sbdf_t sbdf)
+{
+    if ( bridge->child_ops )
+    {
+        struct pci_config_window *cfg =3D bridge->child_cfg;
+
+        if ( (sbdf.bus >=3D cfg->busn_start) && (sbdf.bus <=3D cfg->busn_e=
nd) )
+            return bridge->child_ops;
+    }
+    return bridge->ops;
+}
+
+static inline void __iomem *map_bus(struct pci_host_bridge *bridge, pci_sb=
df_t sbdf,
+                             uint32_t reg)
+{
+    const struct pci_ops *ops =3D get_ops(bridge, sbdf);
+
+    return ops->map_bus(bridge, sbdf, reg);
+}
+
 int pci_generic_config_read(struct pci_host_bridge *bridge, pci_sbdf_t sbd=
f,
                             uint32_t reg, uint32_t len, uint32_t *value)
 {
-    void __iomem *addr =3D bridge->ops->map_bus(bridge, sbdf, reg);
+    void __iomem *addr =3D map_bus(bridge, sbdf, reg);
=20
     if ( !addr )
     {
@@ -50,7 +71,7 @@ int pci_generic_config_read(struct pci_host_bridge *bridg=
e, pci_sbdf_t sbdf,
 int pci_generic_config_write(struct pci_host_bridge *bridge, pci_sbdf_t sb=
df,
                              uint32_t reg, uint32_t len, uint32_t value)
 {
-    void __iomem *addr =3D bridge->ops->map_bus(bridge, sbdf, reg);
+    void __iomem *addr =3D map_bus(bridge, sbdf, reg);
=20
     if ( !addr )
         return -ENODEV;
@@ -78,14 +99,16 @@ static uint32_t pci_config_read(pci_sbdf_t sbdf, unsign=
ed int reg,
 {
     uint32_t val =3D PCI_ERR_VALUE(len);
     struct pci_host_bridge *bridge =3D pci_find_host_bridge(sbdf.seg, sbdf=
.bus);
+    const struct pci_ops *ops;
=20
     if ( unlikely(!bridge) )
         return val;
=20
-    if ( unlikely(!bridge->ops->read) )
+    ops =3D get_ops(bridge, sbdf);
+    if ( unlikely(!ops->read) )
         return val;
=20
-    bridge->ops->read(bridge, sbdf, reg, len, &val);
+    ops->read(bridge, sbdf, reg, len, &val);
=20
     return val;
 }
@@ -94,14 +117,16 @@ static void pci_config_write(pci_sbdf_t sbdf, unsigned=
 int reg,
                              unsigned int len, uint32_t val)
 {
     struct pci_host_bridge *bridge =3D pci_find_host_bridge(sbdf.seg, sbdf=
.bus);
+    const struct pci_ops *ops;
=20
     if ( unlikely(!bridge) )
         return;
=20
-    if ( unlikely(!bridge->ops->write) )
+    ops =3D get_ops(bridge, sbdf);
+    if ( unlikely(!ops->write) )
         return;
=20
-    bridge->ops->write(bridge, sbdf, reg, len, val);
+    ops->write(bridge, sbdf, reg, len, val);
 }
=20
 /*
diff --git a/xen/arch/arm/pci/pci-host-common.c b/xen/arch/arm/pci/pci-host=
-common.c
index 53953d4895..1d0dc1b4bd 100644
--- a/xen/arch/arm/pci/pci-host-common.c
+++ b/xen/arch/arm/pci/pci-host-common.c
@@ -57,17 +57,12 @@ static void pci_ecam_free(struct pci_config_window *cfg=
)
     xfree(cfg);
 }
=20
-static struct pci_config_window * __init
-gen_pci_init(struct dt_device_node *dev, const struct pci_ecam_ops *ops)
+static void __init gen_pci_init_bus_range(struct dt_device_node *dev,
+                                          struct pci_host_bridge *bridge,
+                                          struct pci_config_window *cfg)
 {
-    int err, cfg_reg_idx;
     u32 bus_range[2];
-    paddr_t addr, size;
-    struct pci_config_window *cfg;
-
-    cfg =3D xzalloc(struct pci_config_window);
-    if ( !cfg )
-        return NULL;
+    int err;
=20
     err =3D dt_property_read_u32_array(dev, "bus-range", bus_range,
                                      ARRAY_SIZE(bus_range));
@@ -82,6 +77,36 @@ gen_pci_init(struct dt_device_node *dev, const struct pc=
i_ecam_ops *ops)
         if ( cfg->busn_end > cfg->busn_start + 0xff )
             cfg->busn_end =3D cfg->busn_start + 0xff;
     }
+}
+
+static void __init gen_pci_init_bus_range_child(struct dt_device_node *dev=
,
+                                                struct pci_host_bridge *br=
idge,
+                                                struct pci_config_window *=
cfg)
+{
+    cfg->busn_start =3D bridge->cfg->busn_start + 1;
+    cfg->busn_end =3D bridge->cfg->busn_end;
+    bridge->cfg->busn_end =3D bridge->cfg->busn_start;
+
+    printk(XENLOG_INFO "Root bus end updated: [bus %x-%x]\n",
+           bridge->cfg->busn_start, bridge->cfg->busn_end);
+}
+
+static struct pci_config_window *__init
+gen_pci_init(struct dt_device_node *dev, struct pci_host_bridge *bridge,
+             const struct pci_ecam_ops *ops,
+             void (*init_bus_range)(struct dt_device_node *dev,
+                                    struct pci_host_bridge *bridge,
+                                    struct pci_config_window *cfg))
+{
+    int err, cfg_reg_idx;
+    paddr_t addr, size;
+    struct pci_config_window *cfg;
+
+    cfg =3D xzalloc(struct pci_config_window);
+    if ( !cfg )
+        return NULL;
+
+    init_bus_range(dev, bridge, cfg);
=20
     if ( ops->cfg_reg_index )
     {
@@ -208,8 +233,10 @@ static int pci_bus_find_domain_nr(struct dt_device_nod=
e *dev)
     return domain;
 }
=20
-struct pci_host_bridge *pci_host_common_probe(struct dt_device_node *dev,
-                                              const struct pci_ecam_ops *o=
ps)
+struct pci_host_bridge *
+pci_host_common_probe(struct dt_device_node *dev,
+                      const struct pci_ecam_ops *ops,
+                      const struct pci_ecam_ops *child_ops)
 {
     struct pci_host_bridge *bridge;
     struct pci_config_window *cfg;
@@ -224,7 +251,7 @@ struct pci_host_bridge *pci_host_common_probe(struct dt=
_device_node *dev,
         return ERR_PTR(-ENOMEM);
=20
     /* Parse and map our Configuration Space windows */
-    cfg =3D gen_pci_init(dev, ops);
+    cfg =3D gen_pci_init(dev, bridge, ops, gen_pci_init_bus_range);
     if ( !cfg )
     {
         err =3D -ENOMEM;
@@ -242,10 +269,29 @@ struct pci_host_bridge *pci_host_common_probe(struct =
dt_device_node *dev,
         BUG();
     }
     bridge->segment =3D domain;
+
+    if ( child_ops )
+    {
+        /* Parse and map child's Configuration Space windows */
+        cfg =3D gen_pci_init(dev, bridge, child_ops,
+                           gen_pci_init_bus_range_child);
+        if ( !cfg )
+        {
+            err =3D -ENOMEM;
+            goto err_child;
+        }
+
+        bridge->child_cfg =3D cfg;
+        bridge->child_ops =3D &child_ops->pci_ops;
+    }
+
     pci_add_host_bridge(bridge);
=20
     return bridge;
=20
+err_child:
+    xfree(bridge->cfg);
+
 err_exit:
     xfree(bridge);
=20
@@ -280,9 +326,12 @@ struct pci_host_bridge *pci_find_host_bridge(uint16_t =
segment, uint8_t bus)
     {
         if ( bridge->segment !=3D segment )
             continue;
-        if ( (bus < bridge->cfg->busn_start) || (bus > bridge->cfg->busn_e=
nd) )
-            continue;
-        return bridge;
+        if ( bridge->child_cfg && (bus >=3D bridge->child_cfg->busn_start)=
 &&
+             (bus <=3D bridge->child_cfg->busn_end) )
+            return bridge;
+        if ( (bus >=3D bridge->cfg->busn_start) &&
+             (bus <=3D bridge->cfg->busn_end) )
+            return bridge;
     }
=20
     return NULL;
@@ -348,6 +397,7 @@ int __init pci_host_bridge_mappings(struct domain *d)
     {
         const struct dt_device_node *dev =3D bridge->dt_node;
         unsigned int i;
+        bool need_mapping;
=20
         for ( i =3D 0; i < dt_number_of_address(dev); i++ )
         {
@@ -363,7 +413,11 @@ int __init pci_host_bridge_mappings(struct domain *d)
                 return err;
             }
=20
-            if ( bridge->ops->need_p2m_hwdom_mapping(d, bridge, addr) )
+            need_mapping =3D bridge->ops->need_p2m_hwdom_mapping(d, bridge=
, addr);
+            if ( need_mapping || bridge->child_ops )
+                need_mapping =3D
+                    bridge->child_ops->need_p2m_hwdom_mapping(d, bridge, a=
ddr);
+            if ( need_mapping )
             {
                 err =3D map_range_to_domain(dev, addr, size, &mr_data);
                 if ( err )
diff --git a/xen/arch/arm/pci/pci-host-generic.c b/xen/arch/arm/pci/pci-hos=
t-generic.c
index a6ffbda174..47cf144831 100644
--- a/xen/arch/arm/pci/pci-host-generic.c
+++ b/xen/arch/arm/pci/pci-host-generic.c
@@ -29,7 +29,7 @@ static const struct dt_device_match __initconstrel gen_pc=
i_dt_match[] =3D
 static int __init pci_host_generic_probe(struct dt_device_node *dev,
                                          const void *data)
 {
-    return PTR_RET(pci_host_common_probe(dev, &pci_generic_ecam_ops));
+    return PTR_RET(pci_host_common_probe(dev, &pci_generic_ecam_ops, NULL)=
);
 }
=20
 DT_DEVICE_START(pci_gen, "PCI HOST GENERIC", DEVICE_PCI_HOSTBRIDGE)
diff --git a/xen/arch/arm/pci/pci-host-zynqmp.c b/xen/arch/arm/pci/pci-host=
-zynqmp.c
index a38f2e019e..75d1235aaf 100644
--- a/xen/arch/arm/pci/pci-host-zynqmp.c
+++ b/xen/arch/arm/pci/pci-host-zynqmp.c
@@ -47,7 +47,7 @@ static const struct dt_device_match __initconstrel nwl_pc=
ie_dt_match[] =3D
 static int __init pci_host_generic_probe(struct dt_device_node *dev,
                                          const void *data)
 {
-    return PTR_RET(pci_host_common_probe(dev, &nwl_pcie_ops));
+    return PTR_RET(pci_host_common_probe(dev, &nwl_pcie_ops, NULL));
 }
=20
 DT_DEVICE_START(pci_gen, "PCI HOST ZYNQMP", DEVICE_PCI_HOSTBRIDGE)
diff --git a/xen/arch/arm/vpci.c b/xen/arch/arm/vpci.c
index b63a356bb4..468aee1db7 100644
--- a/xen/arch/arm/vpci.c
+++ b/xen/arch/arm/vpci.c
@@ -8,15 +8,17 @@
 #include <asm/mmio.h>
=20
 static pci_sbdf_t vpci_sbdf_from_gpa(const struct pci_host_bridge *bridge,
-                                     paddr_t gpa)
+                                     paddr_t gpa, bool use_root)
 {
     pci_sbdf_t sbdf;
=20
     if ( bridge )
     {
-        sbdf.sbdf =3D VPCI_ECAM_BDF(gpa - bridge->cfg->phys_addr);
+        const struct pci_config_window *cfg =3D use_root ? bridge->cfg
+                                                       : bridge->child_cfg=
;
+        sbdf.sbdf =3D VPCI_ECAM_BDF(gpa - cfg->phys_addr);
         sbdf.seg =3D bridge->segment;
-        sbdf.bus +=3D bridge->cfg->busn_start;
+        sbdf.bus +=3D cfg->busn_start;
     }
     else
         sbdf.sbdf =3D VPCI_ECAM_BDF(gpa - GUEST_VPCI_ECAM_BASE);
@@ -24,11 +26,9 @@ static pci_sbdf_t vpci_sbdf_from_gpa(const struct pci_ho=
st_bridge *bridge,
     return sbdf;
 }
=20
-static int vpci_mmio_read(struct vcpu *v, mmio_info_t *info,
-                          register_t *r, void *p)
+static int vpci_mmio_read(struct vcpu *v, mmio_info_t *info, register_t *r=
,
+                          pci_sbdf_t sbdf)
 {
-    struct pci_host_bridge *bridge =3D p;
-    pci_sbdf_t sbdf =3D vpci_sbdf_from_gpa(bridge, info->gpa);
     const unsigned int access_size =3D (1U << info->dabt.size) * 8;
     const register_t invalid =3D GENMASK_ULL(access_size - 1, 0);
     /* data is needed to prevent a pointer cast on 32bit */
@@ -46,31 +46,78 @@ static int vpci_mmio_read(struct vcpu *v, mmio_info_t *=
info,
     return 0;
 }
=20
-static int vpci_mmio_write(struct vcpu *v, mmio_info_t *info,
-                           register_t r, void *p)
+static int vpci_mmio_read_root(struct vcpu *v, mmio_info_t *info, register=
_t *r,
+                               void *p)
+{
+    struct pci_host_bridge *bridge =3D p;
+    pci_sbdf_t sbdf =3D vpci_sbdf_from_gpa(bridge, info->gpa, true);
+
+    return vpci_mmio_read(v, info, r, sbdf);
+}
+
+static int vpci_mmio_read_child(struct vcpu *v, mmio_info_t *info,
+                                register_t *r, void *p)
 {
     struct pci_host_bridge *bridge =3D p;
-    pci_sbdf_t sbdf =3D vpci_sbdf_from_gpa(bridge, info->gpa);
+    pci_sbdf_t sbdf =3D vpci_sbdf_from_gpa(bridge, info->gpa, false);
+
+    return vpci_mmio_read(v, info, r, sbdf);
+}
=20
+static int vpci_mmio_write(struct vcpu *v, mmio_info_t *info, register_t r=
,
+                           pci_sbdf_t sbdf)
+{
     return vpci_ecam_write(sbdf, ECAM_REG_OFFSET(info->gpa),
                            1U << info->dabt.size, r);
 }
=20
+static int vpci_mmio_write_root(struct vcpu *v, mmio_info_t *info, registe=
r_t r,
+                                void *p)
+{
+    struct pci_host_bridge *bridge =3D p;
+    pci_sbdf_t sbdf =3D vpci_sbdf_from_gpa(bridge, info->gpa, true);
+
+    return vpci_mmio_write(v, info, r, sbdf);
+}
+
+static int vpci_mmio_write_child(struct vcpu *v, mmio_info_t *info,
+                                 register_t r, void *p)
+{
+    struct pci_host_bridge *bridge =3D p;
+    pci_sbdf_t sbdf =3D vpci_sbdf_from_gpa(bridge, info->gpa, false);
+
+    return vpci_mmio_write(v, info, r, sbdf);
+}
+
 static const struct mmio_handler_ops vpci_mmio_handler =3D {
-    .read  =3D vpci_mmio_read,
-    .write =3D vpci_mmio_write,
+    .read =3D vpci_mmio_read_root,
+    .write =3D vpci_mmio_write_root,
+};
+
+static const struct mmio_handler_ops vpci_mmio_handler_child =3D {
+    .read =3D vpci_mmio_read_child,
+    .write =3D vpci_mmio_write_child,
 };
=20
 static int vpci_setup_mmio_handler_cb(struct domain *d,
                                       struct pci_host_bridge *bridge)
 {
     struct pci_config_window *cfg =3D bridge->cfg;
+    int count =3D 1;
=20
     register_mmio_handler(d, &vpci_mmio_handler,
                           cfg->phys_addr, cfg->size, bridge);
=20
-    /* We have registered a single MMIO handler. */
-    return 1;
+    if ( bridge->child_ops )
+    {
+        struct pci_config_window *cfg =3D bridge->child_cfg;
+
+        register_mmio_handler(d, &vpci_mmio_handler_child, cfg->phys_addr,
+                              cfg->size, bridge);
+        count++;
+    }
+
+    return count;
 }
=20
 int domain_vpci_init(struct domain *d)
@@ -101,8 +148,12 @@ int domain_vpci_init(struct domain *d)
 static int vpci_get_num_handlers_cb(struct domain *d,
                                     struct pci_host_bridge *bridge)
 {
-    /* Each bridge has a single MMIO handler for the configuration space. =
*/
-    return 1;
+    int count =3D 1;
+
+    if ( bridge->child_cfg )
+        count++;
+
+    return count;
 }
=20
 unsigned int domain_vpci_get_num_mmio_handlers(struct domain *d)
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 11:08:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 11:08:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.964354.1355175 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7Xxc-0002DZ-GI; Wed, 23 Apr 2025 11:08:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 964354.1355175; Wed, 23 Apr 2025 11:08:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7Xxc-0002DS-DP; Wed, 23 Apr 2025 11:08:12 +0000
Received: by outflank-mailman (input) for mailman id 964354;
 Wed, 23 Apr 2025 11:08:11 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=hoPD=XJ=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1u7Xxa-0001zZ-VE
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 11:08:10 +0000
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 (mail-am6eur05on2060d.outbound.protection.outlook.com
 [2a01:111:f403:2612::60d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3d7de099-2033-11f0-9eb0-5ba50f476ded;
 Wed, 23 Apr 2025 13:08:09 +0200 (CEST)
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by DBAPR03MB6677.eurprd03.prod.outlook.com
 (2603:10a6:10:197::14) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.22; Wed, 23 Apr
 2025 11:08:07 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::35ac:8893:c31c:b971]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::35ac:8893:c31c:b971%4]) with mapi id 15.20.8655.033; Wed, 23 Apr 2025
 11:08: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: 3d7de099-2033-11f0-9eb0-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=jqn2cClShMX2Ev2JNKzkeXIQ0qk1rg8G5WUa6hCHeO/EhQzhF97M90duyR2MiGOebdHzHYt0dfOtiVWCRFyv+HjON5yZaWY1FB92NTTCQstf8MVFKSNLL7WSDQnnlFyGaAYGq8QLzE9mdPjnPKB49Af6uW+9+/APUfTiFv7i/yWqLB5CkONNkxIvvsivftx9I1ALCB7kMBkKQvp2+TP2F48jE6kSBMMSUkJvyQyvEcBTNPEcZL00dPzTy/EU4PI8Thw9bwzmiY9sM7I/nUAWGFrp6rbHP+XufEEfL/C13w56J1tzOoeMgbWbtxIGE7ylrXpnrJ1CU/dnxI1UjRqjzQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=r6fLdSFIZN2wJFEJsXs4ew4B8GUIRBViLvwx0Og+CaU=;
 b=L8vM2UmyE44eyTTcByLRdVHmXxakhypxSlX0ushNLprtZFE5N1h4m0jPMrIX0S6BlKHgn2B/1Xe+HVvP27Zk2IUrxnMIaPWb73a1INhwER6+t1HlOcMZPC+KJ9endT45QhlqBxHYbt8uHVheH43eerwqYrhb4QF+DuMjSCVgUcr2r5vn/A5BzWtunPWbRILCKF28KIojldyzIF3jFaCRr5WrXmwTocQPAlaqEkUveQXsdvefeuDYGZlPPiGfrIdQvgXefuLr53ZmlnhG+nnQLwFFYsBdqZPKNesIbGwxZPsyBuHeASo/LFHZk3zLr7G/tMZqK1jXVovaR2S9KSW38Q==
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=r6fLdSFIZN2wJFEJsXs4ew4B8GUIRBViLvwx0Og+CaU=;
 b=KXnRea2jQm4KNJREVKiUL7ofkrq9L08nA/pdy50zRqjS782t6bT3GtEZjHUn6wowX3DqztMXpGgBVeHVuiD0yNlRWgOXQKpQhtPmjTqQoUCWZWByovEyDhBFNuXokTa5UlrgEvrXNWNtrI6mkpd16igK0MbbDBSDV1QXAHMBPUw2yZRsnzv0zlH062UMAw+z6j1d59flRRDr0RS4Bjwyins7J56ZOqegILY8L/fbapYKCpKG6BSoipKwjyCQXzvDMwoEcpuwiriAboXYEtdj9DTPu3xbpvuNy8A/wUoYsxPLedOrKOWMfxdEl1frcLxHjjILZQRKKtcYd0gY9PmqRQ==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@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>, Mykyta Poturai
	<Mykyta_Poturai@epam.com>
Subject: [PATCH v4 1/4] xen/arm: allow PCI host bridge to have private data
Thread-Topic: [PATCH v4 1/4] xen/arm: allow PCI host bridge to have private
 data
Thread-Index: AQHbtD/95pRG14vO602uhsMByi23ZA==
Date: Wed, 23 Apr 2025 11:08:06 +0000
Message-ID:
 <960fdc040bf621a60d494fa44f99c344ced33770.1745402473.git.mykyta_poturai@epam.com>
References: <cover.1745402473.git.mykyta_poturai@epam.com>
In-Reply-To: <cover.1745402473.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_|DBAPR03MB6677:EE_
x-ms-office365-filtering-correlation-id: 3341df75-dcfc-4fce-1eb6-08dd8257203a
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:
 =?iso-8859-1?Q?D6GC4ZESaJk/fn9kRp/joolPajBJupgL6AjTy+ikZlfQtFo1F9VIt4O5/2?=
 =?iso-8859-1?Q?azoPU0rvlZzWRboLwtTht0127fJQWg7v6A8Ngrr/zW1OOvOQptsXNh5V/q?=
 =?iso-8859-1?Q?Q7N/ReyhKn2jfJKk9q0v6qYq+8Qo9gjO/H2gzNAAXasRt1VFR6rKrKmVb4?=
 =?iso-8859-1?Q?MSVpsmtdA1vOc1iWGi9ThOqZZPZMQ5kC6pjIO8x6ySx3qYqDIusdCyBH9b?=
 =?iso-8859-1?Q?fqsJ5TwehPj9F922Zd0TyZ6z3JDnbNUpe5ymSCbdgZ8wwD4z83T8tOxRmV?=
 =?iso-8859-1?Q?ZZ28Hf0wNvGMlqe5XnEWsJgyq3tV/9TRfSvL37KJX19yuYJRXavKpfZjRy?=
 =?iso-8859-1?Q?9gDcvUjDgj5iW+KTOYlf/CKVUECYFy0AizQpOxsLm8JHqJqcjnq3ZXyR0e?=
 =?iso-8859-1?Q?3i27IOSgBOeu4ptiX/B46lp35IdZmh8DvId1N+fVhTGmZB43e92cwgOzpJ?=
 =?iso-8859-1?Q?lahlyUiUaOb/6ap/oIiUBwk5UhyQGEJpFbZPM6W8BxWDbfh6Wzbf93dz1P?=
 =?iso-8859-1?Q?7AOrBmSkySFtqcVWrsAuRb4xXXC1+K99/G23mq6qb1NoDMJtNf9ZB8kWrk?=
 =?iso-8859-1?Q?vXbqoeudLBcCsnppqD3VhERoS94Iof7sTV4F4djNNhWTgnKWuQQa5wGVnw?=
 =?iso-8859-1?Q?hLW67BvTZySA/I4T5CiewcPxWfMU3qG2omxLqM5Is2Wp1jjZ+Zlu8r3Me5?=
 =?iso-8859-1?Q?E5TkQizq9h/4QORFNiLrHMhDwjb/In9xsU2DFduDfo/1SJfwp9a1yvvrDY?=
 =?iso-8859-1?Q?gN1K657oaiRuRBHV47aGX6TV0uleP+qRMJSNaaqtUbdClSOws++G9Qovav?=
 =?iso-8859-1?Q?V1LD7QlmpHNZBn6l4ySDkVM1q6eQZrclA71zeMjoWK+1yz+cvbJjamBbY0?=
 =?iso-8859-1?Q?mo1xljGYXWvwtXJyFuh1+vFkmmW1fMwYeLY4cucN7KpMhtRuPJAg9yV6X5?=
 =?iso-8859-1?Q?R+AfivbwAkySQh6OmqkN773m4RfcafaxN5ki3nLBqRK3zJmt6sJbQb4dmx?=
 =?iso-8859-1?Q?CcWN9V3pkxBy67WmqIMqFwuQT6qpQ4LmtDbchd3Tp19vP3DnGru6cGvAVz?=
 =?iso-8859-1?Q?85lk2a+98QmOselxogaqUjGs7uHxnKP5hBiwlrUxInllzxjCdBQUSd2HO5?=
 =?iso-8859-1?Q?4TrT5S6yqW8ybkFRd53CWc4IXwxCcFYSNL/0Y/8b1DB7ECXkbAegV6WDyg?=
 =?iso-8859-1?Q?cqXd/1/byF0jElGy1lNlQY56Wx6sSfgyyIuVw7eDHvnpYmiqKkl0qFcLbB?=
 =?iso-8859-1?Q?4Ep2D63hc+f337Z/spqOxCHbLC208IjwgxheDYyMqOEI69Fs8/B1JEQo2X?=
 =?iso-8859-1?Q?QYSZyDknFpk15F4rugaqDiaPHAPzabgP7j09NesY1E/2yy/5euTHdKjtrK?=
 =?iso-8859-1?Q?zztVy0wIoarYVZBuNAx04NaI1HINIvPUWxU0nvSX1V1Xi2oz6+COa06OGc?=
 =?iso-8859-1?Q?PmZJL6oTiBN/ru9+sZ9cj4p9LVJDLxWgbJvmBu2ZndKRcUpw9giAaHfSiv?=
 =?iso-8859-1?Q?PNdva1pIablS4dskhJspxR55xUE2lKViKn0uStK1OmUw=3D=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)(1800799024)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?2x2BA9lxQsQBzz3WYPXpZ/khY3OT75+teU+B6IvPMQSGCG/ZvkIOI4uJGX?=
 =?iso-8859-1?Q?4H5tF/L5A9UruE/6odS5BpFFSXHg4yL5+l8qqoFwzZ8ZKnBq+rb82L5Hba?=
 =?iso-8859-1?Q?WfIjdv9TPk2A2e/SyLwZ9z5+DLZPVOhD/7iC/PSNctycArF9YBCPo8hY2f?=
 =?iso-8859-1?Q?xJGsqVOjsKgM7+V99HUFrIc0zcMypR2vYuxx1tvUAWhKL+D9ux1/aAlyd0?=
 =?iso-8859-1?Q?YRmbPj9Yqx27xnnISPkknl8KIPcgZFaBJOJrVjk6pUOAGmQTB9Pzt70Ji+?=
 =?iso-8859-1?Q?RnmBLaIyN69xLUgxWIysl6dgOYQ2EN2ZTlkpiE7OJ8JZlSZXhN6/zL/7p8?=
 =?iso-8859-1?Q?aGjZJPrT9IGh4jeFHwt8taOlTsRJm/WoHllAUA8gfH+ssiUiHBSq99/d2q?=
 =?iso-8859-1?Q?6L5REEJajq/+lEp0LozZhsBMaSyfWsR/eSqj+bBsO1lwYgZzjYPZADj2/0?=
 =?iso-8859-1?Q?w6+B9Z/yEgJzSTz94EWk4uW3x0Hbx8yAy6+9lH00O3IWPPERqzlZHnGhvE?=
 =?iso-8859-1?Q?c/jMnpB9CmAEduM5IjmLPzSLFoiVB5F07VXsLmxxFEn1oFhjqo35oRFnB7?=
 =?iso-8859-1?Q?lbctchJaYbctb+8HDUvZovv8Sow2WP8P53VUf4GXMYjOwZADTZQ/vsBdh1?=
 =?iso-8859-1?Q?raP6P9jvQLx1Dpcg+78UTHwIviISa0vjrSYvgZ+CMZ0vgF586e3k88uXKP?=
 =?iso-8859-1?Q?0SngodqWjnDYu+qpfbP2z/2ucWcOT5rl1dtEYaSh5v+rN2kHHPMffe29da?=
 =?iso-8859-1?Q?v/smhrp/ScKEbxhEkX5ltDGjdoRIVui6j3atNUSFVWtX8OQcAVKmwYa+Sg?=
 =?iso-8859-1?Q?MwVsXE0HRfU1bT8fb2wF4uH5DROEGJ5ynuKjwxjDzakh5sbWm0yxtpQsLx?=
 =?iso-8859-1?Q?QSW559TRdx9eJL8IHmnsyf2jfQO13M15o/K9fE75ui9vz3y5KSKdctX8s2?=
 =?iso-8859-1?Q?X+yrhfKrF8uc8lJB5Zf/E5JKLCuinULrwQ22yG37a9D7a0TiMDy+PzI7hV?=
 =?iso-8859-1?Q?at1HoH2TMC0nMWOdUGq6wosNhCB1dH8BEhFj0ZxJbTlnRhtjYMaWs/Hqer?=
 =?iso-8859-1?Q?j79IBE64S5SrKh7aSqBSjXON9vXt9wTgn826utG4pPCz5D3+MGBive/44I?=
 =?iso-8859-1?Q?kX/7cPjVNSkZ5bxiB+1qq9yiYLdE9O5R1mBKRXaXHt3ShenYKLGnLXzkEb?=
 =?iso-8859-1?Q?RJzlKGRHOlcqiRpgsxbQtanVG1juizX98MSGl7TdGsA5pCQqomH3BIRg1c?=
 =?iso-8859-1?Q?Lb/VjpwUqoowckbWcrsI/m406N47Bq1CEKrBJ6C+0S/3FJBFWmolkHG3cN?=
 =?iso-8859-1?Q?u9uDum4pfK3lyiG5yuGO/jiE/Pj3Sl2jLl27nA0oVkkr0qIQzsMJg4BMVD?=
 =?iso-8859-1?Q?MgYK1wS45aFkF33hIsiDdeMUX0z0ns/HSQduocq45Cu6bkcmsXQ1+kKii7?=
 =?iso-8859-1?Q?KEiOaMUkpjcYdSnHQJCGO+86qexvsjZIJwO9T7C6CSMoFCKFD5xLo1uqYl?=
 =?iso-8859-1?Q?V+L9UCZrRyHulLypvB2JfpD0n+Oi1ud51z7904ZooTKZF0VEp35oQ/cMFq?=
 =?iso-8859-1?Q?S1LCITFsneNoKSNZadqKsJg7pQXlQZ9T0P3Zga8JT6+cuIreofZIiU/H7C?=
 =?iso-8859-1?Q?ev6QNiPtdfdtX7PwkpZbAx7vYCUsSJ6ZwSFt9IyFVCPA/+ZDPiUSTJtQ?=
 =?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: 3341df75-dcfc-4fce-1eb6-08dd8257203a
X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Apr 2025 11:08:06.9778
 (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: nE5QwPuA4qUlnHfadMfODTXRnFoljbFeWvyabXSojAFtIZDgiMT+oHz772Hobd2yxDPzct9oCDQ5ZDlYYsX1mg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBAPR03MB6677

From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

Some of the PCI host bridges require private data. Add priv field
to struct pci_host_bridge, so such bridges may populate it with
their private data.

Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
---
v3->v4:
* Added Stefano's RB

v2->v3:
* removed priv allocation from common code

v1->v2:
* no change
---
 xen/arch/arm/include/asm/pci.h | 1 +
 1 file changed, 1 insertion(+)

diff --git a/xen/arch/arm/include/asm/pci.h b/xen/arch/arm/include/asm/pci.=
h
index 7f77226c9b..a87672d834 100644
--- a/xen/arch/arm/include/asm/pci.h
+++ b/xen/arch/arm/include/asm/pci.h
@@ -66,6 +66,7 @@ struct pci_host_bridge {
     uint16_t segment;                /* Segment number */
     struct pci_config_window* cfg;   /* Pointer to the bridge config windo=
w */
     const struct pci_ops *ops;
+    void *priv;                      /* Private data of the bridge. */
 };
=20
 struct pci_ops {
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 11:10:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 11:10:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.964407.1355215 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7Y00-0005zj-0B; Wed, 23 Apr 2025 11:10:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 964407.1355215; Wed, 23 Apr 2025 11:10:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7Xzz-0005zc-SB; Wed, 23 Apr 2025 11:10:39 +0000
Received: by outflank-mailman (input) for mailman id 964407;
 Wed, 23 Apr 2025 11:10:38 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=rvAI=XJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u7Xyy-0003KJ-4m
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 11:09:36 +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 6ffc6aaa-2033-11f0-9ffb-bf95429c2676;
 Wed, 23 Apr 2025 13:09:34 +0200 (CEST)
Received: by mail-wr1-x42d.google.com with SMTP id
 ffacd0b85a97d-3914bc3e01aso3855802f8f.2
 for <xen-devel@lists.xenproject.org>; Wed, 23 Apr 2025 04:09:34 -0700 (PDT)
Received: from [10.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-39efa4a4f38sm18758883f8f.97.2025.04.23.04.09.33
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 23 Apr 2025 04:09:33 -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: 6ffc6aaa-2033-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745406574; x=1746011374; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=uen0vKgAKHq7Aofrag0lfMDRF45Ila5MIvas9EqEpPs=;
        b=dtWHzl1Ezfkh6Mh+2G47izCLW1q+ogN/lZulf2LprGl5m5mTRDECnmKAtE8QIG4yXo
         fs2ZbltzpH+gLOO3m05+4Y4jMcUU7BqwavSJh/poqVmS0ZMo/H5iRi/mVVaZG1T671sg
         IdOmDpv7NrtDuxGEpRlIaxE44MTPMfkmRRSsHmUsVC45v+SXyKY20IPfdmh7T/jXaZnH
         eT8QQACWC7k026/FVtLYuDXvOJdraL8QSQa3UL//VWqCPZDg4raVN3PzPitdY/qiiC+P
         /ibnC32RlSWmU4RT96xAjOR8NLPEwcNu8JTdDO0Btu7O48iVAmLl2dkDWMMwhrXFkTyS
         Bd9Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745406574; x=1746011374;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=uen0vKgAKHq7Aofrag0lfMDRF45Ila5MIvas9EqEpPs=;
        b=hFEAu5qVv3bBMYVdQ8wJvGsGxW+MNRY1p7qIvb77lyq3QIb68SdozK+/nH7kwgL8BB
         BNB0NDNJ/6ZtFG5doD/Mm2ueNS7DJKi48PObVU2oIdOSBgTyli22PMC7V6UinXqtaypp
         50hR+BvczqiCiuPSudWyvTwFej9NfdLozp+um/qFPaYW7WMgIK678V0c89nmzZIi7paF
         6tCbKHQgC2daVLZbc/qQ1zd6dExmWxBxZ8EJxHEwHD48ppCF7Y7UKLtKH/12UP4KltyA
         6OMMEr0eiv+P4aLcNwzm9xt+gqbSNHWNmMa1TEwHxn/EdJt7YDGARAmlK38dPv/OZfN0
         iPkg==
X-Forwarded-Encrypted: i=1; AJvYcCXnk19WYywuL7G5kvjuWAnjyLfpFxPKT39oAEEt0uSHLuEHrXC5sE8UZO7AdLJ/cHLIMZSYfBJucm0=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywwoaxg+P1tT+W1CFbTqki/bvqWyPEmtAC9NCXea3JJ2qkJKHrt
	LOvDS8ULMu1HtURT42ACXQHz3wXSvpWJlpyl4ig2QrG0be1TZr+jSIR3PgaQ1w==
X-Gm-Gg: ASbGnctUykpcH7dczM9KJPs722S9igYuuAxgBYbMiFf89Lvr0uqoOzH5B3OwkJ5fKWN
	JCvBIEcbjZSzoysWPKk3SNFA/nGutRdI9WFb2ebkFTRrG9g9DJy0MgLOS7EaIjbp6nsTNpGPQdV
	kTCLtBA6R7VAUIdN7W3op4/+xIP4eHhkCHrbiR8EP0eh1euVoxFtJQlJsArF9SkjduGAQGpTjeO
	ljEfFNYFEEa5T3bcNohgFrQegnO25CQCaygEZ1ovlzkGJfHCkQmOyvx2WZtr29FqvjaaIDjj3uE
	PPitvVb6exDQxqJY/lkLd3+7nK2r5EKgX9/tb2F9HcUk8MyU9/9h4I9wCdFtf1uR+Ssoa1tgiOI
	1ekR8cSx3Lvb9RweDotN2uiia+A==
X-Google-Smtp-Source: AGHT+IGYAVFsGRu/eJUibuOpHWrJxYV9DNd21gRafLx6EVIBqnS2P4M4p6p/qpXeWd0UFhmz7VB89A==
X-Received: by 2002:a5d:47aa:0:b0:39a:ca40:7bfb with SMTP id ffacd0b85a97d-39efbaf160cmr15885284f8f.54.1745406573817;
        Wed, 23 Apr 2025 04:09:33 -0700 (PDT)
Message-ID: <23a4d3fb-f700-4830-959f-d67b4d4cd980@suse.com>
Date: Wed, 23 Apr 2025 13:09:32 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86emul: adjust BSF/BSR behavior as to EFLAGS
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: <df3f3203-d660-4b7d-b771-871d16a8ec43@suse.com>
 <fc49cdec-69aa-4ae0-8d8e-cf6d6ba8fb74@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: <fc49cdec-69aa-4ae0-8d8e-cf6d6ba8fb74@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 23.04.2025 11:49, Andrew Cooper wrote:
> On 23/04/2025 7:13 am, Jan Beulich wrote:
>> SDM revision 087 points out that apparently as of quite some time ago on
>> Intel hardware BSF and BSR may alter all arithmetic flags, not just ZF.
>> Because of the inconsistency (and because documentation doesn't look to
>> be quite right about PF), best we can do is simply take the flag values
>> from what the processor produces, just like we do for various other
>> arithmetic insns. (Note also that AMD and Intel have always been
>> disagreeing on arithmetic flags other than ZF.)
> 
> The new footnote Intel have added about "older processors" does match
> AMD, saying "unmodified".
> 
> I think it's clear now that Intel and AMD behaviour was the same
> originally, except AMD wrote "unmodified" and Intel wrote "undefined",
> and Intel used this flexibility to alter the behaviour.

Except it isn't - U in AMD's nomenclature is "undefined", not "unmodified"
(and despite what you wrote above I hope you agree that the two mean
different things). Unmodified flag entries are simply blank.

>> --- a/xen/arch/x86/x86_emulate/x86_emulate.c
>> +++ b/xen/arch/x86/x86_emulate/x86_emulate.c
>> @@ -5268,16 +5268,14 @@ x86_emulate(
>>          break;
>>  
>>      case X86EMUL_OPC(0x0f, 0xbc): /* bsf or tzcnt */
>> -    {
>> -        bool zf;
>> -
>> -        asm ( "bsf %2,%0" ASM_FLAG_OUT(, "; setz %1")
>> -              : "=r" (dst.val), ASM_FLAG_OUT("=@ccz", "=qm") (zf)
>> -              : "rm" (src.val) );
>> -        _regs.eflags &= ~X86_EFLAGS_ZF;
>>          if ( (vex.pfx == vex_f3) && vcpu_has_bmi1() )
>>          {
>> -            _regs.eflags &= ~X86_EFLAGS_CF;
>> +            bool zf;
>> +
>> +            asm ( "bsf %2,%0" ASM_FLAG_OUT(, "; setz %1")
>> +                  : "=r" (dst.val), ASM_FLAG_OUT("=@ccz", "=qm") (zf)
>> +                  : "rm" (src.val) );
>> +            _regs.eflags &= ~(X86_EFLAGS_ZF | X86_EFLAGS_CF);
>>              if ( zf )
>>              {
>>                  _regs.eflags |= X86_EFLAGS_CF;
>> @@ -5286,25 +5284,23 @@ x86_emulate(
>>              else if ( !dst.val )
>>                  _regs.eflags |= X86_EFLAGS_ZF;
>>          }
>> -        else if ( zf )
>> +        else
>>          {
>> -            _regs.eflags |= X86_EFLAGS_ZF;
>> -            dst.type = OP_NONE;
>> +            emulate_2op_SrcV_srcmem("bsf", src, dst, _regs.eflags);
>> +            if ( _regs.eflags & X86_EFLAGS_ZF )
>> +                dst.type = OP_NONE;
> 
> On Intel, BSF/BSR writes back the destination register.  Notably, it
> gets 0 extended per normal rules,

That's also only on "older processors", as per the other footnote.

> which is why you have to be extra
> careful when using the trick of preloading it with -1; the result must
> be interpreted as (int) even over a 64bit operation.
> 
> This needs an amd_like() qualification to override dst.type.  This
> aspect genuinely is different between them.  Alternatively, we might be
> able to set the operand size always to 64 and write back the entire
> register as the processor gave to us, but I'm not sure if that will have
> effects elsewhere.

Besides (as per above), amd_like() not covering all cases, this would
then further need special treatment for 16-bit opsize. Plus promoting
to 64-bit would require manually clipping the result to 5 bits when
the original size wants 64-bit. That's imo far more complications
than gains.

Further, this patch is really about EFLAGS only; the OP_NONE was there
already before.

> Finally, I'm wary leaving TZCNT/LZCNT using the old logic.  Despite the
> absence of an update in 087, I find it unlikely that they behave
> differently WRT flags (specifically, I severely doubt they've got
> differing circuitry).

They do, I checked. Iirc I even mentioned on Matrix that I'm surprised
by the difference.

> I'd suggest giving them the same fully-emulated treatment as BSF/BSR.

But we're emulating them as the correct insn even if the respective
feature flag isn't set in the host policy. I don't want to break that,
so doing as you suggest would mean further bifurcating the handling
(to deal with the two different cases of what underlying hardware we
run on). This feels like unnecessary extra complexity to me.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 11:16:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 11:16:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.964434.1355225 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7Y61-0006ip-J4; Wed, 23 Apr 2025 11:16:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 964434.1355225; Wed, 23 Apr 2025 11:16: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 1u7Y61-0006ih-G9; Wed, 23 Apr 2025 11:16:53 +0000
Received: by outflank-mailman (input) for mailman id 964434;
 Wed, 23 Apr 2025 11:16: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=s+1X=XJ=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u7Y60-0006ib-Ee
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 11:16:52 +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 743841a2-2034-11f0-9eb0-5ba50f476ded;
 Wed, 23 Apr 2025 13:16:51 +0200 (CEST)
Received: by mail-ej1-x62d.google.com with SMTP id
 a640c23a62f3a-ac6e8cf9132so1073412166b.2
 for <xen-devel@lists.xenproject.org>; Wed, 23 Apr 2025 04:16:51 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 a640c23a62f3a-acb6ec9c3b2sm785671366b.86.2025.04.23.04.16.49
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 23 Apr 2025 04: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: 743841a2-2034-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745407010; x=1746011810; 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=2qf4EUGp/hJFBFlkVNISKSnNWZZeophaFufjaCPmn1s=;
        b=L97KJ79iohEO3skDnZQObtIxAXKrXQfv5ueyTocLjRMev1jOpxJxYe7zWAYL3nMSk9
         0GGcZF/OjpBp/mT2J0a4lzbw6xoR41Yz0fxk361KAjdeBaRfHlVRuc7RifRoHQfH8Zsl
         TUDWMSqDA4mV5ytiol7inkHvD5UuPoxj8zFIc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745407010; x=1746011810;
        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=2qf4EUGp/hJFBFlkVNISKSnNWZZeophaFufjaCPmn1s=;
        b=vFbR1epKuVeSxhbwBCy0DP3Bezta4OAUdChFmMu4y1beTHDPEZ5f4+eBykV2d6GWYE
         h5Rr9ZjHI096AkRpJ540IpPW+8Lv/TSEdfrO6rcG36Ovd8Mr86epkCNvWE2aNLIxBmRl
         PSH0AYBlpsnowu9/42VswfcmJyyNKxe88sYGzT8U3SXT/scTpgakqsBkUrc9sS4REYiS
         YUfpkBIJM/DiVRYi+ShkBFL3qQIlq0e6xiQOaq6UJWtcGXegtC3UWWAEjXKyIwuDLU6J
         M0virIHxBf1u5ScAipSqzFvmQI5v57WW2vw173ZoreKu/DqRmG1SqryBfkZUTgk8phq8
         VUEw==
X-Gm-Message-State: AOJu0YzwTiXPbjOgvUwXedcWkfahRivoz0AZx19PKBy3OL0BPc1PW1Nc
	M9va3E/AIp6T/fo/kawN3vnG59bbqbY5jjsiQce/D9wjbrDg3Tt+2SFPmwIOlZA=
X-Gm-Gg: ASbGncueOZIlkiQIfCErvJA9NEzyssq5t3dxYCPaxDrW7BePPVu+qlnwHMY91roygV2
	Y0+xTUoIvEDUn0DMyNeyLRMNxjBVs81xjGQ75eIn4NviIFc360fP7g1214hNsLZQ2qkEYUFpkIl
	ifiRrA0hvaCN7l2Z6xVCJqUnQbFIpYh52nKS4/zMSi3CcJUyMc7gxgZfslnxVh0/FfRnuGHNFcN
	mBihWgKNcd016tML2vyr3kyZr3kWL0eudKuI3QFp2bhdowxunAUQXEA8O6qjAkDIUR6FQP9PLWN
	MhuyOUKo7Ce99CU7dF5EvpV43cahHy41gRVy9F/aT/CbIA==
X-Google-Smtp-Source: AGHT+IFd8A0LIgg1gD+bpi1731ala/4Z3xRdLGiSImdeRuBf2v3k7enRMMzokbvLndw4kzEEZQa/5g==
X-Received: by 2002:a17:906:c103:b0:ace:3b02:368d with SMTP id a640c23a62f3a-ace3b0239c7mr303964166b.44.1745407010452;
        Wed, 23 Apr 2025 04:16:50 -0700 (PDT)
Date: Wed, 23 Apr 2025 13:16:49 +0200
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>,
	Ross Lagerwall <ross.lagerwall@citrix.com>
Subject: Re: [PATCH 6/8] xen/livepatch: Support new altcall scheme
Message-ID: <aAjMIeYaPzxlsV8_@macbook.lan>
References: <20250423010237.1528582-1-andrew.cooper3@citrix.com>
 <20250423010237.1528582-7-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: <20250423010237.1528582-7-andrew.cooper3@citrix.com>

On Wed, Apr 23, 2025 at 02:02:35AM +0100, Andrew Cooper wrote:
> The new altcall scheme uses an .alt_call_sites section.  Wire this up in very
> much the same way as the .altinstructions section, although there is less
> sanity checking necessary.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>

One nit/comment below.

> ---
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Roger Pau Monné <roger.pau@citrix.com>
> CC: Ross Lagerwall <ross.lagerwall@citrix.com>
> ---
>  xen/arch/x86/alternative.c         |  6 ++++
>  xen/common/livepatch.c             | 58 ++++++++++++++++++++++++++++++
>  xen/include/xen/alternative-call.h |  8 +++--
>  3 files changed, 70 insertions(+), 2 deletions(-)
> 
> diff --git a/xen/arch/x86/alternative.c b/xen/arch/x86/alternative.c
> index f6594e21a14c..22af224f08f7 100644
> --- a/xen/arch/x86/alternative.c
> +++ b/xen/arch/x86/alternative.c
> @@ -479,6 +479,12 @@ int apply_alternatives(struct alt_instr *start, struct alt_instr *end)
>  {
>      return _apply_alternatives(start, end, true);
>  }
> +
> +int livepatch_apply_alt_calls(const struct alt_call *start,
> +                              const struct alt_call *end)
> +{
> +    return apply_alt_calls(start, end);
> +}
>  #endif
>  
>  #define ALT_INSNS (1U << 0)
> diff --git a/xen/common/livepatch.c b/xen/common/livepatch.c
> index 6ce77bf021b7..be9b7e367553 100644
> --- a/xen/common/livepatch.c
> +++ b/xen/common/livepatch.c
> @@ -905,6 +905,64 @@ static int prepare_payload(struct payload *payload,
>  #endif
>      }
>  
> +    sec = livepatch_elf_sec_by_name(elf, ".alt_call_sites");
> +    if ( sec )
> +    {
> +#ifdef CONFIG_ALTERNATIVE_CALL
> +        const struct alt_call *a, *start, *end;
> +
> +        if ( !section_ok(elf, sec, sizeof(*a)) )
> +            return -EINVAL;
> +
> +        /* Tolerate an empty .alt_call_sites section... */
> +        if ( sec->sec->sh_size == 0 )

You could possibly move this check to the outer `if` condition, and
avoid the alt_call_done label?

As even in the !CONFIG_ALTERNATIVE_CALL case skipping an empty section
would be OK.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 11:22:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 11:22:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.964446.1355234 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7YBh-0000JF-5z; Wed, 23 Apr 2025 11:22:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 964446.1355234; Wed, 23 Apr 2025 11:22: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 1u7YBh-0000J8-3K; Wed, 23 Apr 2025 11:22:45 +0000
Received: by outflank-mailman (input) for mailman id 964446;
 Wed, 23 Apr 2025 11:22: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 1u7YBf-0000J2-MJ
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 11:22: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 1u7YBe-00H2KD-2G;
 Wed, 23 Apr 2025 11:22:42 +0000
Received: from [15.248.2.30] (helo=[10.24.67.70])
 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 1u7YBe-00A8KA-1J;
 Wed, 23 Apr 2025 11:22: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=aVxYP1WLmcfSVLs1wMvBwe2BHcUbrBKAHHHfOc5EryA=; b=5xnouchefVEkKSJ4phxita7RVY
	hLPXyQ8Kb7eNpJFEEGcmEZwU18V3vFnK6+zmY0tXHVO69NJwFGhEvsOQQjjbQUohtRVGA63ueoJiU
	oUJC3nxOMH2M2VyCP6pVGDjHzpkEUNsANsBL2Kh+ckUC07e5wIBfsamFs8WayFEViDQ4=;
Message-ID: <f0f159e6-ad79-4c1a-a61e-0272615754d6@xen.org>
Date: Wed, 23 Apr 2025 12:22:39 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4] xen/domain: unify domain ID allocation
Content-Language: en-GB
To: dmkhn@proton.me, xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com,
 michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org,
 dmukhin@ford.com
References: <20250422215322.521464-1-dmukhin@ford.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20250422215322.521464-1-dmukhin@ford.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi Denis,

On 22/04/2025 22:54, dmkhn@proton.me wrote:
> From: Denis Mukhin <dmukhin@ford.com>
> 
> Currently, hypervisor code has two different non-system domain ID allocation
> algorithms:
> 
>    (a) Arm port allocates IDs sequentially based on max_init_domid;
> 
>    (b) x86 has another algorithm implementation embedded into
>        XEN_DOMCTL_createdomain; does not use max_init_domid, but does similar
>        thing wrt sequentially allocating IDs.

I am a bit confused with this statement. This is implying the code is 
only used by x86. However, XEN_DOMCTL_createdomain is common code and 
used by Arm when creating domains from the toolstack. Can you clarify? 
With this in mind...

> 
> It makes sense to have a common helper code for such task across architectures
> (Arm and x86).

... the unification is effectively between dom0less domU allocation and 
the toolstack domU allocation.

> 
> Wrap the domain ID allocation as an arch-independent function domid_alloc() in
> common/domain.c.
> 
> Allocation algorithm:
> - If an explicit domain ID is provided, verify its availability and
>    use it if ID is unused;
> - Otherwise, perform an exhaustive search starting from the end of the used
>    domain ID range, excluding hardware_domid.
> 
> Move the is_free_domid() helper closer to domid_alloc(). Simplify
> is_free_domid() by removing the domain ID range check, as the ID is now
> guaranteed to be within the valid range. Additionally, update the predicate to
> return a bool value instead of an int.
> 
> No functional change intended.
> 
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> ---
> Changes v3->v4:
> - fixed the behavior of domctl ID allocator to match the original behavior
>    in case of exhaustive search
> - use domid_t input argument in domid_alloc()
> - use DOMID_INVALID as an indicator of performing an exhaustive search
> - use DOMID_INVALID as an indicator of allocator failure
> - use %pd formatting for domain ID printouts in the modified code
> - some comments fixups
> - Link to v2: https://lore.kernel.org/xen-devel/20250416061509.934220-1-dmukhin@ford.com/
> - CI run: https://gitlab.com/xen-project/people/dmukhin/xen/-/pipelines/1780576277
> ---
>   xen/arch/arm/dom0less-build.c | 17 ++++++------
>   xen/arch/arm/domain_build.c   | 17 ++++++++----
>   xen/arch/x86/setup.c          | 11 +++++---
>   xen/common/domain.c           | 51 +++++++++++++++++++++++++++++++++++
>   xen/common/domctl.c           | 41 +++-------------------------
>   xen/include/xen/domain.h      |  2 ++
>   6 files changed, 84 insertions(+), 55 deletions(-)
> 
> diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
> index a356fc94fc..61e01b7306 100644
> --- a/xen/arch/arm/dom0less-build.c
> +++ b/xen/arch/arm/dom0less-build.c
> @@ -1038,15 +1038,13 @@ void __init create_domUs(void)
>           };
>           unsigned int flags = 0U;
>           bool has_dtb = false;
> +        domid_t domid;
>           uint32_t val;
>           int rc;
>   
>           if ( !dt_device_is_compatible(node, "xen,domain") )
>               continue;
>   
> -        if ( (max_init_domid + 1) >= DOMID_FIRST_RESERVED )
> -            panic("No more domain IDs available\n");
> -
>           if ( dt_property_read_u32(node, "capabilities", &val) )
>           {
>               if ( val & ~DOMAIN_CAPS_MASK )
> @@ -1218,12 +1216,13 @@ void __init create_domUs(void)
>           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
> -         * domain_create() with a domid > 0. (domid == 0 is reserved for Dom0)
> -         */
> -        d = domain_create(++max_init_domid, &d_cfg, flags);
> +        domid = domid_alloc(DOMID_INVALID);
> +        if ( domid == DOMID_INVALID )
> +            panic("Error allocating ID for domain %s\n", dt_node_name(node));
> +        if ( max_init_domid < domid )
> +            max_init_domid = domid;

While I think it is a good idea to have a single way to allocate domain 
IDs, I am a bit concerned of the change for dom0less domUs. By 
introducing domid_alloc(), it will now be easier to change the behavior 
of the domain ID allocation without realizing the impact for dom0less 
domUs (max_init_domid is mainly used to limit the loop when switching 
consoles).

I think we need to document explicitely in domid_alloc() that some 
callers specifically rely on the existing allocation scheme. So we need 
to be careful when changing it.

> +
> +        d = domain_create(domid, &d_cfg, flags);
>           if ( IS_ERR(d) )
>               panic("Error creating domain %s (rc = %ld)\n",
>                     dt_node_name(node), PTR_ERR(d));
> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
> index 270a6b97e4..fe968dd66b 100644
> --- a/xen/arch/arm/domain_build.c
> +++ b/xen/arch/arm/domain_build.c
> @@ -2371,6 +2371,7 @@ void __init create_dom0(void)
>           .grant_opts = XEN_DOMCTL_GRANT_version(opt_gnttab_max_version),
>       };
>       unsigned int flags = CDF_privileged | CDF_hardware;
> +    domid_t domid;
>       int rc;
>   
>       /* The vGIC for DOM0 is exactly emulating the hardware GIC */
> @@ -2395,19 +2396,25 @@ void __init create_dom0(void)
>       if ( !llc_coloring_enabled )
>           flags |= CDF_directmap;
>   
> -    dom0 = domain_create(0, &dom0_cfg, flags);
> +    domid = domid_alloc(get_initial_domain_id());

This is technically a change of behavior for Arm if the hardware_domid 
is not 0. I think we need to using 0 here. If you want to change the 
behavior, then this should be a separate patch with a proper explanation.

> +    if ( domid ==  DOMID_INVALID )
> +        panic("Error allocating domain ID %d\n", get_initial_domain_id());
> +
> +    dom0 = domain_create(domid, &dom0_cfg, flags);
>       if ( IS_ERR(dom0) )
> -        panic("Error creating domain 0 (rc = %ld)\n", PTR_ERR(dom0));
> +        panic("Error creating domain %d (rc = %ld)\n", domid, PTR_ERR(dom0));
>   
>       if ( llc_coloring_enabled && (rc = dom0_set_llc_colors(dom0)) )
> -        panic("Error initializing LLC coloring for domain 0 (rc = %d)\n", rc);
> +        panic("Error initializing LLC coloring for domain %pd (rc = %d)\n",
> +              dom0, rc);
>   
>       if ( alloc_dom0_vcpu0(dom0) == NULL )
> -        panic("Error creating domain 0 vcpu0\n");
> +        panic("Error creating domain %pdv0\n", dom0);
>   
>       rc = construct_dom0(dom0);
>       if ( rc )
> -        panic("Could not set up DOM0 guest OS (rc = %d)\n", rc);
> +        panic("Could not set up guest OS for domain %pd (rc = %d)\n",
> +              dom0, rc);
>   
>       set_xs_domain(dom0);
>   }
> diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
> index 24b36c1a59..e61c023085 100644
> --- a/xen/arch/x86/setup.c
> +++ b/xen/arch/x86/setup.c
> @@ -1009,8 +1009,11 @@ static struct domain *__init create_dom0(struct boot_info *bi)
>       if ( iommu_enabled )
>           dom0_cfg.flags |= XEN_DOMCTL_CDF_iommu;
>   
> -    /* Create initial domain.  Not d0 for pvshim. */
> -    bd->domid = get_initial_domain_id();
> +    /* Allocate initial domain ID. Not d0 for pvshim. */
> +    bd->domid = domid_alloc(get_initial_domain_id());
> +    if ( bd->domid == DOMID_INVALID )
> +        panic("Error allocating domain ID %d\n", get_initial_domain_id());
> +
>       d = domain_create(bd->domid, &dom0_cfg,
>                         pv_shim ? 0 : CDF_privileged | CDF_hardware);
>       if ( IS_ERR(d) )
> @@ -1038,7 +1041,7 @@ static struct domain *__init create_dom0(struct boot_info *bi)
>   
>           if ( (strlen(acpi_param) == 0) && acpi_disabled )
>           {
> -            printk("ACPI is disabled, notifying Domain 0 (acpi=off)\n");
> +            printk("ACPI is disabled, notifying domain %pd (acpi=off)\n", d);
>               safe_strcpy(acpi_param, "off");
>           }
>   
> @@ -1053,7 +1056,7 @@ static struct domain *__init create_dom0(struct boot_info *bi)
>   
>       bd->d = d;
>       if ( construct_dom0(bd) != 0 )
> -        panic("Could not construct domain 0\n");
> +        panic("Could not construct domain %pd\n", d);
>   
>       return d;
>   }
> diff --git a/xen/common/domain.c b/xen/common/domain.c
> index abf1969e60..7c0f7a4990 100644
> --- a/xen/common/domain.c
> +++ b/xen/common/domain.c
> @@ -66,6 +66,57 @@ DEFINE_RCU_READ_LOCK(domlist_read_lock);
>   static struct domain *domain_hash[DOMAIN_HASH_SIZE];
>   struct domain *domain_list;
>   
> +/* Domain ID allocator */
> +static unsigned int domid_last;
> +
> +static inline bool is_free_domid(domid_t dom)
> +{
> +    struct domain *d = rcu_lock_domain_by_id(dom);
> +
> +    if ( d )
> +        rcu_unlock_domain(d);
> +
> +    return !d;
> +}
> +
> +/*
> + * Allocate new domain ID based on the hint.

Maybe clarify this should not be used for system domains?

> + *
> + * If hint is outside of valid [0..DOMID_FIRST_RESERVED - 1] range of IDs,
> + * perform an exhaustive search starting from the end of the used domain ID
> + * range, excluding hardware_domid.
> + */
> +domid_t domid_alloc(domid_t hint)

 From the name, my naive expectation is a second call to domid_alloc() 
(whether concurrent or not) would return a different domid. However, 
AFAICT, this is not the case.

I am in two mind whether this is the right interface to have. I think 
the minimum would be to clarify the expectation from the callers.

> +{
> +    domid_t domid = DOMID_INVALID;
> +
> +    if ( hint < DOMID_FIRST_RESERVED )
> +    {
> +        /* Exact match. */
> +        if ( is_free_domid(hint) )
> +            domid = hint;
> +    }
> +    else
> +    {
> +        for ( domid = domid_last + 1; domid != domid_last; domid++ )
> +        {
> +            if ( domid == DOMID_FIRST_RESERVED )
> +                domid = 0;
> +
> +            if ( domid == hardware_domid )
> +                continue;
> +
> +            if ( is_free_domid(domid) )
> +                break;
> +        }
> +
> +        if ( domid != domid_last )
> +            domid_last = domid;
> +    }
> +
> +    return 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/common/domctl.c b/xen/common/domctl.c
> index bfe2e1f9f0..2e02139660 100644
> --- a/xen/common/domctl.c
> +++ b/xen/common/domctl.c
> @@ -49,20 +49,6 @@ static int xenctl_bitmap_to_nodemask(nodemask_t *nodemask,
>                                      MAX_NUMNODES);
>   }
>   
> -static inline int is_free_domid(domid_t dom)
> -{
> -    struct domain *d;
> -
> -    if ( dom >= DOMID_FIRST_RESERVED )
> -        return 0;
> -
> -    if ( (d = rcu_lock_domain_by_id(dom)) == NULL )
> -        return 1;
> -
> -    rcu_unlock_domain(d);
> -    return 0;
> -}
> -
>   void getdomaininfo(struct domain *d, struct xen_domctl_getdomaininfo *info)
>   {
>       struct vcpu *v;
> @@ -421,34 +407,15 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)
>   
>       case XEN_DOMCTL_createdomain:
>       {
> -        domid_t        dom;
> -        static domid_t rover = 0;
> +        domid_t domid = domid_alloc(op->domain);
>   
> -        dom = op->domain;
> -        if ( (dom > 0) && (dom < DOMID_FIRST_RESERVED) )
> +        if ( domid == DOMID_INVALID )
>           {
>               ret = -EEXIST;
> -            if ( !is_free_domid(dom) )
> -                break;
> -        }
> -        else
> -        {
> -            for ( dom = rover + 1; dom != rover; dom++ )
> -            {
> -                if ( dom == DOMID_FIRST_RESERVED )
> -                    dom = 1;
> -                if ( is_free_domid(dom) )
> -                    break;
> -            }
> -
> -            ret = -ENOMEM;
> -            if ( dom == rover )
> -                break;
> -
> -            rover = dom;
> +            break;
>           }
>   
> -        d = domain_create(dom, &op->u.createdomain, false);
> +        d = domain_create(domid, &op->u.createdomain, false);
>           if ( IS_ERR(d) )
>           {
>               ret = PTR_ERR(d);
> diff --git a/xen/include/xen/domain.h b/xen/include/xen/domain.h
> index e10baf2615..43e9411fc0 100644
> --- a/xen/include/xen/domain.h
> +++ b/xen/include/xen/domain.h
> @@ -38,6 +38,8 @@ void arch_get_domain_info(const struct domain *d,
>   
>   domid_t get_initial_domain_id(void);
>   
> +domid_t domid_alloc(domid_t hint);
> +
>   /* CDF_* constant. Internal flags for domain creation. */
>   /* Is this a privileged domain? */
>   #define CDF_privileged           (1U << 0)

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Wed Apr 23 11:33:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 11:33:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.964461.1355245 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7YLh-0002W0-7j; Wed, 23 Apr 2025 11:33:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 964461.1355245; Wed, 23 Apr 2025 11:33: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 1u7YLh-0002Vt-4i; Wed, 23 Apr 2025 11:33:05 +0000
Received: by outflank-mailman (input) for mailman id 964461;
 Wed, 23 Apr 2025 11:33: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=s+1X=XJ=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u7YLg-0002Vl-KC
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 11:33:04 +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 b7fc6130-2036-11f0-9eb0-5ba50f476ded;
 Wed, 23 Apr 2025 13:33:03 +0200 (CEST)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-ac2af2f15d1so720507066b.1
 for <xen-devel@lists.xenproject.org>; Wed, 23 Apr 2025 04:33:03 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 a640c23a62f3a-acb6eefcf2csm782251566b.116.2025.04.23.04.33.02
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 23 Apr 2025 04: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: b7fc6130-2036-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745407983; x=1746012783; 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=AUVzt9yKwn3M18+3l/qllyr6CJufxy1FDQ47kr2wcI0=;
        b=jJGX1vYGQOjHzLSI84ZwRQ0OJ9B/31pAAbkADlixaNRuS1RIexOyjXZ5NyZUjsRcmW
         W2YV3rOOor6pQYAAKB1BR+zco7IncnCpcbqSaUZ6O2PkSM18FlbsIaDs5Qx8tipe1hgl
         ubJ3BhMHHJnrGM4/i5mMbBQ657OoCfIeA7alM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745407983; x=1746012783;
        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=AUVzt9yKwn3M18+3l/qllyr6CJufxy1FDQ47kr2wcI0=;
        b=wAUeDvimBUCyfU981wxzvS2P8LbP/amzX+sMjJiU4m8R6bs3bY1Zi1Kjsf8xVwvGIx
         EmVfE3HTybBTpLN5DQV+ugloWQHBEhKTgWbF/2Yt/iHXQyo3Q/u/iYtFxN0q8DbOodB2
         nH9GHCBBufCyZLwEV405skdugqdH1W4xSG73/bNnbueSmad+8BuDjH6i8A5UX+RpVspR
         F0Tq7yVrKIxnCSUKA0GQDQx3+CyvcH9PCBs6/Ngo03pSjacgvIRON1iXYzMzyTJtWdZl
         aWLf8RUHH2Lb5rSSinVPnH72Csy+3Xbf5MrDQSLwwXqiPB2ZtdkwT9O7NtdKAJ+JCKkF
         EU7w==
X-Gm-Message-State: AOJu0Yy7spatUDnBTFvWZaBc/jZJ2NRhxI7gfCePjBrndKJytnpRwJXf
	N0E7qoQqKUEFPopf8kaRKFpxWShth0Qez/qfR1c+LRy9j+UAxJW3QxTEB7ZKDwkJwyD5Bks8xfn
	I
X-Gm-Gg: ASbGnctDeeKQ8Q/6BKJq+VuRItqSaQionjEtxfKFkoJtI7e30+plxQaJdWWFPWss4cR
	/NYpOJLGiHlRZ7rh/gY0pDkNyx1FJV/TFjrevvWBPObHAKSyjqrgEo1fMF+aOY0Wiqfcb2t0n5h
	lYjxUWebs25c2nHXeVbrOsDE9ABsrbZfa0hN8kCVaoK7THWYdlIuZYO83JyMRzFAZjjdxRybtiC
	rLBdCvpGgxN8tplolqilJJxcJy2PcMiGz4uEoXR37WeAHSIBljUAulJp4nB1dOigq8uhk/OkbuV
	toBtSq4LPwV6NKJcgVnW84FUine4j1N+IOQqJGe6eQRYyg==
X-Google-Smtp-Source: AGHT+IFIWZRQN697K65SXYYMEkGl681Zutgy9a6NuUuM3W1KmGWfukHUTRgR0LSPh5mT0HLEQoF8/A==
X-Received: by 2002:a17:907:7e81:b0:acb:5583:6fe4 with SMTP id a640c23a62f3a-acb74ad7dddmr1770563066b.6.1745407982745;
        Wed, 23 Apr 2025 04:33:02 -0700 (PDT)
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] x86/intel: workaround several MONITOR/MWAIT errata
Date: Wed, 23 Apr 2025 13:32:15 +0200
Message-ID: <20250423113215.80755-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.48.1
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

There are several errata on Intel regarding the usage of the MONITOR/MWAIT
instructions, all having in common that stores to the monitored region
might not wake up the CPU.

Fix them by forcing the sending of an IPI for the affected models.

The Ice Lake issue has been reproduced internally on XenServer hardware,
and the fix does seem to prevent it.  The symptom was APs getting stuck in
the idle loop immediately after bring up, which in turn prevented the BSP
from making progress.  This would happen before the watchdog was
initialized, and hence the whole system would get stuck.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
Apollo and Lunar Lake fixes have not been tested, due to lack of hardware.
---
Changes since v1:
 - Only probe for the errata at boot.
 - Use Intel model names instead of raw values.
 - Make force_mwait_ipi_wakeup __ro_after_init.
---
 xen/arch/x86/acpi/cpu_idle.c     |  6 ++++++
 xen/arch/x86/cpu/intel.c         | 36 +++++++++++++++++++++++++++++++-
 xen/arch/x86/include/asm/mwait.h |  3 +++
 3 files changed, 44 insertions(+), 1 deletion(-)

diff --git a/xen/arch/x86/acpi/cpu_idle.c b/xen/arch/x86/acpi/cpu_idle.c
index 420198406def..1dbf15b01ed7 100644
--- a/xen/arch/x86/acpi/cpu_idle.c
+++ b/xen/arch/x86/acpi/cpu_idle.c
@@ -441,8 +441,14 @@ void cpuidle_wakeup_mwait(cpumask_t *mask)
     cpumask_andnot(mask, mask, &target);
 }
 
+/* Force sending of a wakeup IPI regardless of mwait usage. */
+bool __ro_after_init force_mwait_ipi_wakeup;
+
 bool arch_skip_send_event_check(unsigned int cpu)
 {
+    if ( force_mwait_ipi_wakeup )
+        return false;
+
     /*
      * This relies on softirq_pending() and mwait_wakeup() to access data
      * on the same cache line.
diff --git a/xen/arch/x86/cpu/intel.c b/xen/arch/x86/cpu/intel.c
index 6a680ba38dc9..6c8377d08428 100644
--- a/xen/arch/x86/cpu/intel.c
+++ b/xen/arch/x86/cpu/intel.c
@@ -8,6 +8,7 @@
 #include <asm/intel-family.h>
 #include <asm/processor.h>
 #include <asm/msr.h>
+#include <asm/mwait.h>
 #include <asm/uaccess.h>
 #include <asm/mpspec.h>
 #include <asm/apic.h>
@@ -368,7 +369,6 @@ static void probe_c3_errata(const struct cpuinfo_x86 *c)
         INTEL_FAM6_MODEL(0x25),
         { }
     };
-#undef INTEL_FAM6_MODEL
 
     /* Serialized by the AP bringup code. */
     if ( max_cstate > 1 && (c->apicid & (c->x86_num_siblings - 1)) &&
@@ -380,6 +380,38 @@ static void probe_c3_errata(const struct cpuinfo_x86 *c)
     }
 }
 
+/*
+ * APL30: One use of the MONITOR/MWAIT instruction pair is to allow a logical
+ * processor to wait in a sleep state until a store to the armed address range
+ * occurs. Due to this erratum, stores to the armed address range may not
+ * trigger MWAIT to resume execution.
+ *
+ * ICX143: Under complex microarchitectural conditions, a monitor that is armed
+ * with the MWAIT instruction may not be triggered, leading to a processor
+ * hang.
+ *
+ * LNL030: Problem P-cores may not exit power state Core C6 on monitor hit.
+ *
+ * Force the sending of an IPI in those cases.
+ */
+static void __init probe_mwait_errata(void)
+{
+    static const struct x86_cpu_id models[] = {
+        INTEL_FAM6_MODEL(INTEL_FAM6_ATOM_GOLDMONT), /* APL30  */
+        INTEL_FAM6_MODEL(INTEL_FAM6_ICELAKE_X),     /* ICX143 */
+        INTEL_FAM6_MODEL(INTEL_FAM6_LUNARLAKE_M),   /* LNL030 */
+        { }
+    };
+#undef INTEL_FAM6_MODEL
+
+    if ( boot_cpu_has(X86_FEATURE_MONITOR) && x86_match_cpu(models) )
+    {
+        printk(XENLOG_WARNING
+               "Forcing IPI MWAIT wakeup due to CPU erratum\n");
+        force_mwait_ipi_wakeup = true;
+    }
+}
+
 /*
  * P4 Xeon errata 037 workaround.
  * Hardware prefetcher may cause stale data to be loaded into the cache.
@@ -406,6 +438,8 @@ static void Intel_errata_workarounds(struct cpuinfo_x86 *c)
 		__set_bit(X86_FEATURE_CLFLUSH_MONITOR, c->x86_capability);
 
 	probe_c3_errata(c);
+	if (system_state < SYS_STATE_active && c == &boot_cpu_data)
+		probe_mwait_errata();
 }
 
 
diff --git a/xen/arch/x86/include/asm/mwait.h b/xen/arch/x86/include/asm/mwait.h
index 000a692f6d19..c52cd3f51011 100644
--- a/xen/arch/x86/include/asm/mwait.h
+++ b/xen/arch/x86/include/asm/mwait.h
@@ -13,6 +13,9 @@
 
 #define MWAIT_ECX_INTERRUPT_BREAK	0x1
 
+/* Force sending of a wakeup IPI regardless of mwait usage. */
+extern bool force_mwait_ipi_wakeup;
+
 void mwait_idle_with_hints(unsigned int eax, unsigned int ecx);
 #ifdef CONFIG_INTEL
 bool mwait_pc10_supported(void);
-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Wed Apr 23 11:40:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 11:40:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.964473.1355254 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7YSx-00041t-UV; Wed, 23 Apr 2025 11:40:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 964473.1355254; Wed, 23 Apr 2025 11:40: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 1u7YSx-00041m-Rw; Wed, 23 Apr 2025 11:40:35 +0000
Received: by outflank-mailman (input) for mailman id 964473;
 Wed, 23 Apr 2025 11:40: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=VjMx=XJ=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u7YSw-00041a-Gm
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 11:40:34 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on2062f.outbound.protection.outlook.com
 [2a01:111:f403:2418::62f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c2c9c588-2037-11f0-9ffb-bf95429c2676;
 Wed, 23 Apr 2025 13:40:32 +0200 (CEST)
Received: from MN2PR18CA0012.namprd18.prod.outlook.com (2603:10b6:208:23c::17)
 by DS7PR12MB8273.namprd12.prod.outlook.com (2603:10b6:8:ed::15) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.22; Wed, 23 Apr
 2025 11:40:27 +0000
Received: from MN1PEPF0000F0E5.namprd04.prod.outlook.com
 (2603:10b6:208:23c:cafe::7c) by MN2PR18CA0012.outlook.office365.com
 (2603:10b6:208:23c::17) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.37 via Frontend Transport; Wed,
 23 Apr 2025 11:40:27 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 MN1PEPF0000F0E5.mail.protection.outlook.com (10.167.242.43) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Wed, 23 Apr 2025 11:40:27 +0000
Received: from localhost (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, 23 Apr
 2025 06:40:25 -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: c2c9c588-2037-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=qqnXd6V3bQGDHrytlwZOcxflcNAZHiSIeJc6R07k3kAmegxzev//xSaWr6z6rzgcRr6zg5CrU1ygyWl3Y6ECPhcs3PnWPtUHzbWrxYHrd4ToeZRxoETu4rEdfgcS5Z03LVeh30/unaDSPLWp3foyd03POMF06tACavLSdzgtEYAuzu+syDON4niLgYHhgKXbQWSZ+l6gj9dde1cQoXlg8zhgsOg6mPxnS0aIlQD2/9c6A9nFNXenmcW7cgtiyKM7WHjBtzbQ+/hrO+32wlZzN/7UudlordqtGQALcUotu+YjkX0LWg+8b5rpHSCBe9Q/92ynWdh2G6JZqduN73yfDQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=w/Nmv1nQx0UDMCQNZUSCLEtvJfNgk7XbZB9PEI3gZns=;
 b=y8hyrEwj54rVuUfK7N7KP1aTbTCVECfvMxVQDWj+HeXMCgwLAm4cP/8XBOyzY9ThAMALmdVNDJXQMf+a7Kf1obcVpgoXN0uloneneTOUo3uSAqAL96DkOIhJ/ZDfUznTJ++7vVRvxNPGbtzdSD7IDUSy3avCGaH93kOyU9ldp4B/O7GA3hmLxpYzsUKdeLsmpUo9TK92k9S3j5W4acUBSgEY5nGZ5CKA1K0Gf6NevgMTDY5VOeK5/YB+SDtzl402quhVJAGEuiA2c9J2FT0IMsoJboPkpADyempZF6rplA08rQTKJi0hwlxQ/p3s4TJq1rb6AILq7+4/lgLLCJIAsA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=proton.me 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=w/Nmv1nQx0UDMCQNZUSCLEtvJfNgk7XbZB9PEI3gZns=;
 b=mit9zLSzgcYR4FfSgSvOQZBLFLa/pUOV5f4MuOPN8wS9I5tEKdDLcBfbjwwug99yPaUCR28IGAWk3D5ExOq1O3RoHIhJ2E81tKXcqm7T32o12fpEhKWLnLgv1b6yXBoGOVMSLvSU2Gd2ErT591OS9vNMkEEh/7JsADWfI/4oZfU=
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
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Wed, 23 Apr 2025 12:40:24 +0100
Message-ID: <D9DZNCOVUV9S.2D1CTX5OPB7YY@amd.com>
CC: <xen-devel@lists.xenproject.org>, "Daniel P. Smith"
	<dpsmith@apertussolutions.com>, Jan Beulich <jbeulich@suse.com>, "Andrew
 Cooper" <andrew.cooper3@citrix.com>, =?utf-8?q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>, Jason Andryuk <jason.andryuk@amd.com>
Subject: Re: [PATCH v4 01/13] x86/boot: add cmdline to struct boot_domain
From: Alejandro Vallejo <agarciav@amd.com>
To: <dmkhn@proton.me>
X-Mailer: aerc 0.20.1
References: <20250417124844.11143-1-agarciav@amd.com>
 <20250417124844.11143-2-agarciav@amd.com> <aALBJ/8YUwu4vl4k@kraken>
In-Reply-To: <aALBJ/8YUwu4vl4k@kraken>
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: MN1PEPF0000F0E5:EE_|DS7PR12MB8273:EE_
X-MS-Office365-Filtering-Correlation-Id: 617a6cd2-7693-4860-4223-08dd825ba492
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?ZHdRcEdtV3ZjL2ZZbWIvL3BqSi9RNHluWDNqcFVpNUdJZWd1cmxhYTRML3ho?=
 =?utf-8?B?QmNQT2x2U01TTDZYYWF3cDczdjcxa29sUzFMd1RyTkxtTFlZUEtBRE5yemZq?=
 =?utf-8?B?MDArVStEN1NScEFtZnh5c0VSdHppY1JrbFZsYmVHSGJKYm9wU0lFT0hkMEZx?=
 =?utf-8?B?RDVhM2FtbGRxaCtsTkhPcFJXVE9XVm13NXBUamRaR3dQakhWWGtnUHJHK2Rh?=
 =?utf-8?B?ZnFCSmNQRUZPaGlBZGxsblBlVUlhSnhtN1E0aFNFZHZUcDdhSUFFMWJCKzJC?=
 =?utf-8?B?ZXFEVHFHNVJ5QkFMMFFiVk0xSFdjR0o2K0RWd01mMmpLVU9aNXhIWllzazBa?=
 =?utf-8?B?QkhodUNRd2JUaTVoNlNOUWVZNm1WejJ3SnRUZ2JQdzhIOHoxRSthVkpDQ1Jn?=
 =?utf-8?B?TTF3a3laSnJRWC9pV2ZDcDdPMW9aeGZkUER2RDFxcFJuSEEyYk1HUU5iYmxN?=
 =?utf-8?B?dFNWYW9XWHdXQkliR1R1UngrblplTVFMZElUbTBSOWU5TTd6RDMySnNDQncy?=
 =?utf-8?B?SHE1VXAvbUJhS1ByY3NIN3ArUEJFamNnR3ZjbW56UCsxNGxrV0VtRGZiM3Rr?=
 =?utf-8?B?VnI3ZklETk1jZUh2UEVnaTV3em5QTmlrdDF2WUdUcWJCZHM3SkZUMHVLdjZa?=
 =?utf-8?B?cGhSSDJEN01LbXZ6a2I5MzdFWThSZGQvTy82RjdHWUV5dE5waWdxYWs4S2hF?=
 =?utf-8?B?K09sYk54VUg0Nmk0V3ZZVHlpc0t3em8rZWVvYVRVUFd4T0NEZlhqTHpFc2hE?=
 =?utf-8?B?Ym84cXNnT0JiR2ZHMDU5bXY2a2NqcDNOVklibEd5Sk1TVG9Fc2N3WElsVXlJ?=
 =?utf-8?B?b29MWXhCQ2tpbHpaMGlYTFp6VitYeGVkZUVqdEEwaGRTVlpEVFVIN3crc25X?=
 =?utf-8?B?SWRObU9zVjFucExCbFIrQlpBNy9pZmwvOFBpYjhpU3JDbktTK09kZHA4eUdH?=
 =?utf-8?B?UEp6dXZ4WXIrVVpXR3ZDWmQvbEI5RUhLT3JyM1ZpdUwzN0FUUVRSdFNnQ0VM?=
 =?utf-8?B?dUtXTDZmdDB5dm5GMy9lTXhIUXE1ZXVNTC9FdloyOTBSN3l5V1hyN1JMaEl0?=
 =?utf-8?B?NnBkdHFnWW1LanpIVDQ0OFp0Z29KRndRampsOEd3aHdjRXpYbjB6K3kvT0dJ?=
 =?utf-8?B?Z0tVYk9QeHcrTnhiSVJLTEk5QkFjRE5DZlZ4ekx3RElkNGRqTlMzYkdKVXRj?=
 =?utf-8?B?Z0RVZzE4TCtNVlpsWXZ2ZExPdWZBa3VKU3hISldhRGhyUitWODVEMFNOUGxx?=
 =?utf-8?B?cG00MmdYK0U2WTMweHBOS0RkenUrL1UxbHQ4SjNhYlVnUVZjeWJNSVdneWtu?=
 =?utf-8?B?dHd4OFhFaGc1eWt1dmQ2Mm15Mnp5amZFRWQweGw2Rk1wYWRkOW90RE1JekQ2?=
 =?utf-8?B?NHRrTUg1UGZaVEk3eXExUWpSUzJFWXJDcUl1SGkwSWdFWUtTUkkwWEJpUEVV?=
 =?utf-8?B?ZjhMZUJrbXMza2dxYVBoREUxZXZWYXI5VkVJNjNkVUZzc2J0UTl4NWxDTUVV?=
 =?utf-8?B?TVN4Z1dUTU5tdmtsQ2RKVUhTb1BzbVJPVUJZcVlvVlFVcDg2dmI4eDdnbUNy?=
 =?utf-8?B?ZzcwaXB2SnRISDVyWTgrK01tdnAybUlxckdVOGxsRnRWbC9pRHN0VU5LYmVK?=
 =?utf-8?B?NTdZeFhNL21LWVNVdElQZ1BjU0VkVzlhMlE1cHdkbXk5aEphTVM0OGMwOGtQ?=
 =?utf-8?B?N1lTUjkyNGRlQlVDVEErSUlseGxPU2hxWkZwNDBvVUJYdWNGRVFyVTR6Ymps?=
 =?utf-8?B?UERMMHhwL3Y4MnN3dDNBNXB6RDNWQ0hZckFtcTFJdG9TTldRcW12V3lRT2cv?=
 =?utf-8?B?OG11WldzRkc5Z3NsNTNpMDl2RHRUNlVla1BhQ3RHdHl4Ylh2L2VlbjdFWTdu?=
 =?utf-8?B?TWdkWXJ0c1gvd05Ra2UydzVDZlhhSzJiK3hKc0FoamFvZjNHb0VEMGhpRnFO?=
 =?utf-8?B?dmsyeW1oMWdWZlBRcHBqN1ZLSlIrWVdWM1Z4V0djaHo3aFhKa2lsRkx4VzF4?=
 =?utf-8?B?NVM0Q1FPc0o5TWlGb0g5TUUrNy9tNkNxcGxJaTQrRFphaHFNb2Y4Z2VGb1FD?=
 =?utf-8?Q?d4Dcqe?=
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: 23 Apr 2025 11:40:27.0849
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 617a6cd2-7693-4860-4223-08dd825ba492
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:
	MN1PEPF0000F0E5.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB8273

On Fri Apr 18, 2025 at 10:16 PM BST, dmkhn wrote:
> On Thu, Apr 17, 2025 at 01:48:23PM +0100, Alejandro Vallejo wrote:
>> From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
>>=20
>> 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.
>>=20
>> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
>> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
>> Signed-off-by: Alejandro Vallejo <agarciav@amd.com>
>
>
> Reviewed-by: Denis Mukhin <dmukhin@ford.com>

Thanks

>> diff --git a/xen/arch/x86/hvm/dom0_build.c b/xen/arch/x86/hvm/dom0_build=
.c
>> index 2a094b3145..49832f921c 100644
>> --- a/xen/arch/x86/hvm/dom0_build.c
>> +++ b/xen/arch/x86/hvm/dom0_build.c
>> @@ -778,21 +777,21 @@ static int __init pvh_load_kernel(
>>      /* Free temporary buffers. */
>>      free_boot_modules();
>>=20
>> -    if ( cmdline !=3D NULL )
>> +    rc =3D hvm_copy_to_guest_phys(last_addr, bd->cmdline, cmdline_len, =
v);
>> +    if ( rc )
>>      {
>> -        rc =3D hvm_copy_to_guest_phys(last_addr, cmdline, strlen(cmdlin=
e) + 1, v);
>> -        if ( rc )
>> -        {
>> -            printk("Unable to copy guest command line\n");
>> -            return rc;
>> -        }
>> -        start_info.cmdline_paddr =3D last_addr;
>> -        /*
>> -         * Round up to 32/64 bits (depending on the guest kernel bitnes=
s) so
>> -         * the modlist/start_info is aligned.
>> -         */
>> -        last_addr +=3D elf_round_up(&elf, strlen(cmdline) + 1);
>> +        printk("Unable to copy guest command line\n");
>
> Side note: I think it makes sense to add domain ID to all printouts in
> pvh_load_kernel(). E.g. block under elf_xen_parse() logs domain ID.

Sounds sensible and easy enough. Sure.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 11:44:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 11:44:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.964485.1355265 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7YXB-00057W-E4; Wed, 23 Apr 2025 11:44:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 964485.1355265; Wed, 23 Apr 2025 11:44: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 1u7YXB-00057P-BB; Wed, 23 Apr 2025 11:44:57 +0000
Received: by outflank-mailman (input) for mailman id 964485;
 Wed, 23 Apr 2025 11:44: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=2fPp=XJ=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1u7YXA-00057J-6a
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 11:44:56 +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 5fcaf598-2038-11f0-9eb0-5ba50f476ded;
 Wed, 23 Apr 2025 13:44:54 +0200 (CEST)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-39c0dfad22aso4563507f8f.2
 for <xen-devel@lists.xenproject.org>; Wed, 23 Apr 2025 04:44:54 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-64-225.play-internet.pl.
 [109.243.64.225]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39efa4235dasm18255320f8f.9.2025.04.23.04.44.51
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 23 Apr 2025 04:44:53 -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: 5fcaf598-2038-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1745408694; x=1746013494; darn=lists.xenproject.org;
        h=in-reply-to:cc:from:content-language:references:to:subject
         :user-agent:mime-version:date:message-id:from:to:cc:subject:date
         :message-id:reply-to;
        bh=0OwfRjMYa452uCClC1ymZbA+Z8NQTGYKihwb4cC4LIE=;
        b=ggsM8+gI7ih7W7Y81RMRX34Xl8JvR7iRHkf5vCKP+Qhm0t09JmBoqkEpUz1qMDZXEh
         WS/udUXjltb2OZIGtZVyUxCsjAMuPjmd9U/Act19wlO5JT/BY7If0A4ODAOkq19yP7ub
         hj4sZKM3A/Snc3iCBu2RzJtI/0hqV/0tc5kVNkM/JhzYWfNVb9EIy6JSTRacwROY5goz
         Yv2IEj6/GEYK+Rusu2SCJJR+LYcjqTGfCBTRL+glU0mkO3sjeo0/Gv3+eLd10WQcFxy5
         KCcHE9OVPIODsRkfU+faqo3WnItsCG67siegOWkbrDoGh0GeE8DXT+BSvUJXXxk3UhAr
         0pRQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745408694; x=1746013494;
        h=in-reply-to:cc: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=0OwfRjMYa452uCClC1ymZbA+Z8NQTGYKihwb4cC4LIE=;
        b=MYVPdzrTrhK0ht1Ld0FLM9TM4+g+VnXfwXvQ8EBj3Yf9p9n9ZpQJVbtmAHtQMtobjo
         9XdZbA1glIwvzdRdd1O3Fb1e7/QsK+AaSxF1NCFZ9J7YUc98dJBxekC2T6FVQMtVakga
         KJxg6sMFkgJw3th6lVvF6n3MohRZZC34Xe4ZQeqxKtwhDW0ER+AaLsNQpT2CkLRmwBnt
         61UQZiN3ZKsZlN3Ky7iaJB6sS85uUTQ/iictaPjJItfSlR01ZRwySYgDNO/HTknrj7wG
         c8/UWTVRtLXW8ZSR3LVhB9LdF1qT9TpzZM5Y7YczxrHj4x9Ax1sWi+x/UvLnqxC04rMa
         IrAQ==
X-Gm-Message-State: AOJu0Ywr0QTkmkuZ1EhDLcxVlNzZliAw0dqkKS2f7+v7I2qeQyZGag4m
	2JHjDFNGHAFPG8pBeL0Y/38as9ghsvIShDwGeJubZdt1zU48Zcdw
X-Gm-Gg: ASbGncvSf5ftGhzvZA5GlcRT+NZCAwYFQn4/8o5iNyFCzwgqs38304c9rPGYL6Q3vuG
	pGqPU5cCpR66p3GM2I6UsYpHr9G5W9/uy2FieRMXumGmZDgoZXjA+08I2upUAvLAqo6SrlUOYbx
	l1UaHgq8YZdaodAtdNfX0G4cPIIkkzBEO+OHAmmmdoKRNvI3ZcB1TOmE0lwCClVnSbwESLfQJ6b
	MIxXt2f0p11rYB5K5NRKUIU6FmwKiuPlb0yndqWageAHfLZQqriKo7v/h2pv+j4D7xiopk0RDSq
	QiyIbmA6lhCj8M2Y+PCKN/wHw853mWRZ1qlnkVX6uAwHQPLZ8HbZXGP5rNCdMomXEM8ENbRY/VL
	WvNnLuKkisUg5cISZ
X-Google-Smtp-Source: AGHT+IHQyRJxDsMU31Np6X5TCpsCU3S7NTlECBZl7GNx0uqxGovWx+1sKqSnt/Q/6PNdpMWf/G6kOw==
X-Received: by 2002:a05:6000:1a8d:b0:399:71d4:a9 with SMTP id ffacd0b85a97d-39efbb05e76mr14986879f8f.52.1745408693881;
        Wed, 23 Apr 2025 04:44:53 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------OrBOZ4ftxDt0AfC0M38iDzUz"
Message-ID: <7a31ab0b-fcd1-405b-919b-3519d8203c39@gmail.com>
Date: Wed, 23 Apr 2025 13:44:51 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 08/14] xen/riscv: imsic_init() implementation
To: Jan Beulich <jbeulich@suse.com>
References: <cover.1744126720.git.oleksii.kurochko@gmail.com>
 <09e0fcd64f97062441a68102ead520b818150fe9.1744126720.git.oleksii.kurochko@gmail.com>
 <78fa2ed0-57a2-4990-bc9c-8fa52e41420a@suse.com>
 <aadd8ccf-94f4-407e-8510-3640c6d43b31@gmail.com>
 <9a13c625-cd33-485d-a91f-9f005522b5a4@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: xen-devel@lists.xenproject.org,
 Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>
In-Reply-To: <9a13c625-cd33-485d-a91f-9f005522b5a4@suse.com>

This is a multi-part message in MIME format.
--------------OrBOZ4ftxDt0AfC0M38iDzUz
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 4/16/25 8:31 AM, Jan Beulich wrote:
>>>> +    }
>>>> +
>>>> +    imsic_cfg.base_addr = base_addr;
>>>> +    imsic_cfg.base_addr &= ~(BIT(imsic_cfg.guest_index_bits +
>>>> +                   imsic_cfg.hart_index_bits +
>>>> +                   IMSIC_MMIO_PAGE_SHIFT, UL) - 1);
>>>> +    imsic_cfg.base_addr &= ~((BIT(imsic_cfg.group_index_bits, UL) - 1) <<
>>>> +                   imsic_cfg.group_index_shift);
>>> Besides indentation being bogus here, why is it that you need to mask bits
>>> off of the value read from DT? Wouldn't the expectation be that you get back
>>> the true base address?
>> The group index is used to differentiate between clusters/groups. For
>> example, consider two clusters: - Cluster 1 with cpu0 and cpu1 - Cluster
>> 2 with cpu2 and cpu3 Then, the reg property in the IMSIC node will
>> include two entries: reg = <0x0 0xd100000 0x0 0x20000>, <0x0 0x2d100000
>> 0x0 0x20000>; riscv,guest-index-bits = <3>; riscv,hart-index-bits = <2>;
>> riscv,group-index-bits = <1>; riscv,group-index-shift = <29>; In this
>> example: The group index is 1 bit wide (group-index-bits = <1>), It is
>> located at bit 29 (group-index-shift = <29>) of the address.
>>
>> so imsic_cfg.group_index_bits will be used to distinguish clusters, but
>> they must have
>>
>> the same base address and this is the reason why the mask is applied.
> Well, yes, but that doesn't answer my question. All of what you say makes
> sense for the loop elsewhere retrieving all the addresses. Here you
> retrieved only the first of them, and in your example no masking would be
> needed here either. To re-phrase my question: Can the address observed in
> the first entry be other than the lowest one across the set of all
> entries?

It doesn't mentioned explicitly in riscv,imsiscs binding that reg property
is sorted.
I can write:
   reg = <0x0 0x2d100000 0x0 0x20000>,<0x0 0xd100000 0x0 0x20000>;
And a dtc compiler will compile.

> If not, can there be bits set across all entries that need
> masking off from all of them?

I think that other bits (Hart Index and Guest Index) excepts base address
bits are 0 in dts, but it doesn't guarantee explicitly by IMSIC's dts bindinding.

>
>>>> --- /dev/null
>>>> +++ b/xen/arch/riscv/include/asm/imsic.h
>>>> @@ -0,0 +1,66 @@
>>>> +/* SPDX-License-Identifier: MIT */
>>>> +
>>>> +/*
>>>> + * xen/arch/riscv/imsic.h
>>>> + *
>>>> + * RISC-V Incoming MSI Controller support
>>>> + *
>>>> + * (c) 2023 Microchip Technology Inc.
>>>> + */
>>>> +
>>>> +#ifndef ASM__RISCV__IMSIC_H
>>>> +#define ASM__RISCV__IMSIC_H
>>>> +
>>>> +#include <xen/types.h>
>>>> +
>>>> +#define IMSIC_MMIO_PAGE_SHIFT   12
>>>> +#define IMSIC_MMIO_PAGE_SZ      (1UL << IMSIC_MMIO_PAGE_SHIFT)
>>>> +
>>>> +#define IMSIC_MIN_ID            63
>>>> +#define IMSIC_MAX_ID            2048
>>>> +
>>>> +struct imsic_msi {
>>>> +    paddr_t base_addr;
>>>> +    unsigned long offset;
>>>> +};
>>>> +
>>>> +struct imsic_mmios {
>>>> +    paddr_t base_addr;
>>>> +    unsigned long size;
>>>> +    bool harts[NR_CPUS];
>>> An array of bool - won't a bitmap do here? Even then I wouldn't be overly
>>> happy to see it dimensioned by NR_CPUS.
>> Bitmap will fit here well. But for DECLARE_BITMAP() is necessary the size
>> of bitmap so NR_CPUS should be used again.
>> Could you please remind me why it isn't good to use it?
>> Because NR_CPUS not always equal to an amount of physical cpus?
> "Not equal" wouldn't be overly problematic. But NR_CPUS=4000 and the actual
> number of CPUs being 4 would be wasteful in general. More when its wider
> than a bit that's needed per CPU, but where would you draw the line if you
> permitted use of NR_CPUS here?

Hard to say. It seems it will be just better to use apporoach you suggested below.

Thanks.

~ Oleksii

>
>> Should I use non-static version of bitmap declaration? (if we have such...)
> That's simply "unsigned long *" then, or - at the tail of a dynamically
> allocated struct - possibly unsigned long[].
>
>>>> +};
>>>> +
>>>> +struct imsic_config {
>>>> +    /* base address */
>>>> +    paddr_t base_addr;
>>>> +
>>>> +    /* Bits representing Guest index, HART index, and Group index */
>>>> +    unsigned int guest_index_bits;
>>>> +    unsigned int hart_index_bits;
>>>> +    unsigned int group_index_bits;
>>>> +    unsigned int group_index_shift;
>>>> +
>>>> +    /* imsic phandle */
>>>> +    unsigned int phandle;
>>>> +
>>>> +    /* number of parent irq */
>>>> +    unsigned int nr_parent_irqs;
>>>> +
>>>> +    /* number off interrupt identities */
>>>> +    unsigned int nr_ids;
>>>> +
>>>> +    /* mmios */
>>>> +    unsigned int nr_mmios;
>>>> +    struct imsic_mmios *mmios;
>>>> +
>>>> +    /* MSI */
>>>> +    struct imsic_msi msi[NR_CPUS];
>>> You surely can avoid wasting perhaps a lot of memory by allocating this
>>> based on the number of CPUs in use?
>> It make sense. I'll allocate then this dynamically.
> Or, as per above, when put at the tail and the struct itself is
> dynamically allocated, use struct imsic_msi[]. We even have dedicated
> xmalloc() flavors for this kind of allocation.
>
> Jan
--------------OrBOZ4ftxDt0AfC0M38iDzUz
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 4/16/25 8:31 AM, Jan Beulich wrote:</div>
    <blockquote type="cite"
      cite="mid:9a13c625-cd33-485d-a91f-9f005522b5a4@suse.com">
      <blockquote type="cite">
        <blockquote type="cite">
          <blockquote type="cite">
            <pre wrap="" class="moz-quote-pre">+    }
+
+    imsic_cfg.base_addr = base_addr;
+    imsic_cfg.base_addr &amp;= ~(BIT(imsic_cfg.guest_index_bits +
+                   imsic_cfg.hart_index_bits +
+                   IMSIC_MMIO_PAGE_SHIFT, UL) - 1);
+    imsic_cfg.base_addr &amp;= ~((BIT(imsic_cfg.group_index_bits, UL) - 1) &lt;&lt;
+                   imsic_cfg.group_index_shift);
</pre>
          </blockquote>
          <pre wrap="" class="moz-quote-pre">Besides indentation being bogus here, why is it that you need to mask bits
off of the value read from DT? Wouldn't the expectation be that you get back
the true base address?
</pre>
        </blockquote>
        <pre wrap="" class="moz-quote-pre">
The group index is used to differentiate between clusters/groups. For 
example, consider two clusters: - Cluster 1 with cpu0 and cpu1 - Cluster 
2 with cpu2 and cpu3 Then, the reg property in the IMSIC node will 
include two entries: reg = &lt;0x0 0xd100000 0x0 0x20000&gt;, &lt;0x0 0x2d100000 
0x0 0x20000&gt;; riscv,guest-index-bits = &lt;3&gt;; riscv,hart-index-bits = &lt;2&gt;; 
riscv,group-index-bits = &lt;1&gt;; riscv,group-index-shift = &lt;29&gt;; In this 
example: The group index is 1 bit wide (group-index-bits = &lt;1&gt;), It is 
located at bit 29 (group-index-shift = &lt;29&gt;) of the address.

so imsic_cfg.group_index_bits will be used to distinguish clusters, but 
they must have

the same base address and this is the reason why the mask is applied.
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Well, yes, but that doesn't answer my question. All of what you say makes
sense for the loop elsewhere retrieving all the addresses. Here you
retrieved only the first of them, and in your example no masking would be
needed here either. To re-phrase my question: Can the address observed in
the first entry be other than the lowest one across the set of all
entries? </pre>
    </blockquote>
    <pre>It doesn't mentioned explicitly in riscv,imsiscs binding that reg property
is sorted. 
I can write:
  reg = &lt;0x0 0x2d100000 0x0 0x20000&gt;,&lt;0x0 0xd100000 0x0 0x20000&gt;;
And a dtc compiler will compile.

</pre>
    <blockquote type="cite"
      cite="mid:9a13c625-cd33-485d-a91f-9f005522b5a4@suse.com">
      <pre wrap="" class="moz-quote-pre">If not, can there be bits set across all entries that need
masking off from all of them?</pre>
    </blockquote>
    <pre>I think that other bits (Hart Index and Guest Index) excepts base address
bits are 0 in dts, but it doesn't guarantee explicitly by IMSIC's dts bindinding.

</pre>
    <blockquote type="cite"
      cite="mid:9a13c625-cd33-485d-a91f-9f005522b5a4@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <blockquote type="cite">
          <blockquote type="cite">
            <pre wrap="" class="moz-quote-pre">--- /dev/null
+++ b/xen/arch/riscv/include/asm/imsic.h
@@ -0,0 +1,66 @@
+/* SPDX-License-Identifier: MIT */
+
+/*
+ * xen/arch/riscv/imsic.h
+ *
+ * RISC-V Incoming MSI Controller support
+ *
+ * (c) 2023 Microchip Technology Inc.
+ */
+
+#ifndef ASM__RISCV__IMSIC_H
+#define ASM__RISCV__IMSIC_H
+
+#include &lt;xen/types.h&gt;
+
+#define IMSIC_MMIO_PAGE_SHIFT   12
+#define IMSIC_MMIO_PAGE_SZ      (1UL &lt;&lt; IMSIC_MMIO_PAGE_SHIFT)
+
+#define IMSIC_MIN_ID            63
+#define IMSIC_MAX_ID            2048
+
+struct imsic_msi {
+    paddr_t base_addr;
+    unsigned long offset;
+};
+
+struct imsic_mmios {
+    paddr_t base_addr;
+    unsigned long size;
+    bool harts[NR_CPUS];
</pre>
          </blockquote>
          <pre wrap="" class="moz-quote-pre">An array of bool - won't a bitmap do here? Even then I wouldn't be overly
happy to see it dimensioned by NR_CPUS.
</pre>
        </blockquote>
        <pre wrap="" class="moz-quote-pre">
Bitmap will fit here well. But for DECLARE_BITMAP() is necessary the size
of bitmap so NR_CPUS should be used again.
Could you please remind me why it isn't good to use it?
Because NR_CPUS not always equal to an amount of physical cpus?
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
"Not equal" wouldn't be overly problematic. But NR_CPUS=4000 and the actual
number of CPUs being 4 would be wasteful in general. More when its wider
than a bit that's needed per CPU, but where would you draw the line if you
permitted use of NR_CPUS here?</pre>
    </blockquote>
    <pre>Hard to say. It seems it will be just better to use apporoach you suggested below.

Thanks.

~ Oleksii
</pre>
    <blockquote type="cite"
      cite="mid:9a13c625-cd33-485d-a91f-9f005522b5a4@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">Should I use non-static version of bitmap declaration? (if we have such...)
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
That's simply "unsigned long *" then, or - at the tail of a dynamically
allocated struct - possibly unsigned long[].

</pre>
      <blockquote type="cite">
        <blockquote type="cite">
          <blockquote type="cite">
            <pre wrap="" class="moz-quote-pre">+};
+
+struct imsic_config {
+    /* base address */
+    paddr_t base_addr;
+
+    /* Bits representing Guest index, HART index, and Group index */
+    unsigned int guest_index_bits;
+    unsigned int hart_index_bits;
+    unsigned int group_index_bits;
+    unsigned int group_index_shift;
+
+    /* imsic phandle */
+    unsigned int phandle;
+
+    /* number of parent irq */
+    unsigned int nr_parent_irqs;
+
+    /* number off interrupt identities */
+    unsigned int nr_ids;
+
+    /* mmios */
+    unsigned int nr_mmios;
+    struct imsic_mmios *mmios;
+
+    /* MSI */
+    struct imsic_msi msi[NR_CPUS];
</pre>
          </blockquote>
          <pre wrap="" class="moz-quote-pre">You surely can avoid wasting perhaps a lot of memory by allocating this
based on the number of CPUs in use?
</pre>
        </blockquote>
        <pre wrap="" class="moz-quote-pre">
It make sense. I'll allocate then this dynamically.
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Or, as per above, when put at the tail and the struct itself is
dynamically allocated, use struct imsic_msi[]. We even have dedicated
xmalloc() flavors for this kind of allocation.

Jan
</pre>
    </blockquote>
  </body>
</html>

--------------OrBOZ4ftxDt0AfC0M38iDzUz--


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 11:53:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 11:53:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.964500.1355275 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7YfH-0007Hu-9r; Wed, 23 Apr 2025 11:53:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 964500.1355275; Wed, 23 Apr 2025 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 1u7YfH-0007Hn-6G; Wed, 23 Apr 2025 11:53:19 +0000
Received: by outflank-mailman (input) for mailman id 964500;
 Wed, 23 Apr 2025 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=VjMx=XJ=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u7YfF-0007Hf-FT
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 11:53:17 +0000
Received: from NAM10-BN7-obe.outbound.protection.outlook.com
 (mail-bn7nam10on2061b.outbound.protection.outlook.com
 [2a01:111:f403:2009::61b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 87acaca2-2039-11f0-9ffb-bf95429c2676;
 Wed, 23 Apr 2025 13:53:12 +0200 (CEST)
Received: from BN9PR03CA0416.namprd03.prod.outlook.com (2603:10b6:408:111::31)
 by DM4PR12MB5842.namprd12.prod.outlook.com (2603:10b6:8:65::13) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.23; Wed, 23 Apr
 2025 11:53:06 +0000
Received: from BL6PEPF0001AB76.namprd02.prod.outlook.com
 (2603:10b6:408:111:cafe::b8) by BN9PR03CA0416.outlook.office365.com
 (2603:10b6:408:111::31) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.37 via Frontend Transport; Wed,
 23 Apr 2025 11:53:06 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BL6PEPF0001AB76.mail.protection.outlook.com (10.167.242.169) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Wed, 23 Apr 2025 11:53:06 +0000
Received: from localhost (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, 23 Apr
 2025 06:53:00 -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: 87acaca2-2039-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=rC7SrDasos7dCQvz3JYtdey2DQMTMBT/wIKMUSLmgE3ZrB8xwEzwYXUQqkuu3Nmxx+P2RnA0m0gVpy/0AIsoqBJqjUAIYNHvQVftv2foVDiYuDsKcHJLPKabfeglj19Mc1oBfjWJ4Q7nL1byE8lA+jbcU39h8GxT2mWLiROxUfkI4pjUDiKMBrggZjprm3mTSSl2LjhpEd8mehsbzsYMMzk7u1Gm83jCtYONg68WWZ7Mf5joUYWorsvqyKBijao7lHir+m0en5wJBw2Z1xtlK15xlmmw7NeWUYBg673S5ucLaG7plly99RflxtnPfssShOe9PrUcmBCUYhT6ZVIm1w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=+LMLm7VJCnH2nKyG/FQ8tX9hwWfCZI6ToONo/A6Zfp8=;
 b=zLj2VyT5JTJXwnfWOWEWsv14w+4EYPJ3Pgb+CyzfTQ41chOjx16nJTrzWbW+fsPZdnbB8SY35RaqzrZObG14dLcrcSvEqT0qVvcFHwFbv9F5Z+fENGmmOAzVgxut2Y3M5fb7Cd7Av6llB3yg9RFY3LOraDZFz0VP8nH8fWy6dXgzf6Xq6udDnbpyfUEplUTktH2Tlr00hrHPyAB4rb8//RqGg/JnYsnnlTzEg+HSsb1hw9C/t1tgrBDlPVjLRSQlU8iBHll8fho7pMv0PUHmq5WEf0qVCWViWNTteX3Xbg9mslwoIFwW7HSWe2BmNRwlH25Zu4hrPVpXLTgSgLlF0A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=proton.me 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=+LMLm7VJCnH2nKyG/FQ8tX9hwWfCZI6ToONo/A6Zfp8=;
 b=lPPSiqdDj/wyxbRWc8R2cNo2nVCzpamGZzIRdtK/XxBJFyW4bU2C3TzkpbplhSmn6dZ4jApUql0H+Vc8cYUaDSuOuuX5VUkiZunO4ZS9sW+xP/t7zNO/NPG4oPMt4gTX22WBHE9cvonnyng+znDEe6q+W69a0QuaV1Im/svAM94=
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
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Wed, 23 Apr 2025 12:52:58 +0100
Message-ID: <D9DZWZDYLF7B.11NTQG6LIA1IX@amd.com>
CC: <xen-devel@lists.xenproject.org>, "Daniel P. Smith"
	<dpsmith@apertussolutions.com>, Jan Beulich <jbeulich@suse.com>, "Andrew
 Cooper" <andrew.cooper3@citrix.com>, =?utf-8?q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, "Michal
 Orzel" <michal.orzel@amd.com>, Julien Grall <julien@xen.org>, "Stefano
 Stabellini" <sstabellini@kernel.org>, Jason Andryuk <jason.andryuk@amd.com>
Subject: Re: [PATCH v4 03/13] common/hyperlaunch: introduce the domain
 builder
From: Alejandro Vallejo <agarciav@amd.com>
To: <dmkhn@proton.me>
X-Mailer: aerc 0.20.1
References: <20250417124844.11143-1-agarciav@amd.com>
 <20250417124844.11143-4-agarciav@amd.com> <aALKTolElzpGmD60@kraken>
In-Reply-To: <aALKTolElzpGmD60@kraken>
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: BL6PEPF0001AB76:EE_|DM4PR12MB5842:EE_
X-MS-Office365-Filtering-Correlation-Id: f7c365ea-5491-46ae-a9ac-08dd825d6912
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?VU1WaGlnVjk0a0I3RVl1NVlWdk1Td1djQmNWZWZZMXpIU2dyblNxTnJ2T0Iz?=
 =?utf-8?B?SUppQkdhNzZYQVJFUm9jVk16dHh4RzBiV1lWNUVNa0QxMmdvRXM2d3F6UGhj?=
 =?utf-8?B?YmtnbUNvQVJ3OGdOZXNsMXdha2d6TXFvL0xCTFBkbnM3UzhWR2twdXpFSHNW?=
 =?utf-8?B?cW5MZXB0OGdQUUhvVnVkbEppSjdzdm02cW9CSnM3cTgwcFZwbUhyaXBLbzdK?=
 =?utf-8?B?QnI2ZDlEaGJ6TXl1bEJTNnUxMDhRYmNNNEJFNFN4Um5HMXd2cnVlczNsMjRX?=
 =?utf-8?B?bmhENUZmbFVLVWU2U0l2eDR4c3ZsSjlaY2hzUXV6R3ZDS3Q3c3BGcnhaazRI?=
 =?utf-8?B?bFhCUFlBZURyc0thL1hXaGhCQWhoNy9SdGlBbU5NMjlxQ0gzNzBoSDB5b2pz?=
 =?utf-8?B?eWM0d2NuM0xRdmlQSkFKWXcvOVhSL1hkM3pWWlZDVFJxSzY2RzJFUEhyQTFY?=
 =?utf-8?B?aXA5ZTVZdjJPazhkdnZ2WFIrZW9GMXpNS1dINGxpWFdVUHVmaXRORVNmNmVi?=
 =?utf-8?B?UjYwdXVlejUzQThraUxHSzBDWUpuTm5wTEVTaDB2a0YxTmQyTjMvd2l6Lysv?=
 =?utf-8?B?OXM0SXVtVmRQbm9SZk14WHRrcjdNVy9HS3R5NXNZdmQ1OG53VWF3ZVFHSEJV?=
 =?utf-8?B?NVlxWTZoaEE4U0xEbVZDZUs0emRVZm9NRFlhWmZQSmRyak11S1RSUmI4Y1k4?=
 =?utf-8?B?ZUZWUlpOY2E2Q3lDdEIvT2kyYWEvbDl6YmIzamVnQ1l3MGlLOU15ZjMvUUtP?=
 =?utf-8?B?eHNYNWRPUW1iUUVUZCtXT2o0KzhHSDQzVjB5NGtjZkVlQWp5NHhQRkYweFN2?=
 =?utf-8?B?VG1xZkxYTGtrS3l3YXpOYVBlOW5uSDg0dW9uQU1QSzd1aUJMSUV2MmREYUl3?=
 =?utf-8?B?Z2xGYUpSY01WdFROTkVwNFE3amdXR0lwdDIySTFoeXVmUFROYWlKSDJhNGlx?=
 =?utf-8?B?UldpNFIyWGlpSCtwUElOY09MS29xdldCM2kwUkhWcW90cnk3UHpDVi9UNGUr?=
 =?utf-8?B?d1ByRlN1MXJFa25xRWkrUnU3UStwOFBTanhTR3ZFb1E4cGczTXYzZE1TbXA4?=
 =?utf-8?B?K3hkZnEzR2JIUFFSUkhoWEw0TXZJNE9GUUZOTVd1ZEdjenNZYnF4KzUycmo0?=
 =?utf-8?B?WUVvakgxYW1RVEhiVDYyRVh2a1hjYXltdHQyUU8wOU1OcFJ0eU9vdVVDR0pG?=
 =?utf-8?B?UHVEZlc4SzBsVG5YaDEvYStvaEMzL2hLVnpXWVZaM3dVNzFDU2JXSVZXbHo2?=
 =?utf-8?B?ZTZWQXprU09MYUJaL094NkQ3RnAzS3R3enA4ZzUxcHJjd0MwTTZrcVUvbXNW?=
 =?utf-8?B?ZE1GUlpZZmZ0SVlIRTFRaEtoQXpZeTh0ZDNmSndIOE1GY1JsUW1IZk93V1VD?=
 =?utf-8?B?K1hyOWVkaUNTYzdoa05JSUk2MFBHc0VQQzVIT1BHdjg5UVpjZHBvQ21Cdita?=
 =?utf-8?B?T3VKQnFGaEtHSURVeG42dDViMVZrYVp5R1hXUmdHc0IxdXZjY2tCSHBBTmlq?=
 =?utf-8?B?ZFVBVG5relcxaXhPM1JOK2FLbldtOFpmYVUxMkJlL1VneEVub1VueFNDYUVK?=
 =?utf-8?B?YmkvUUxnTkFMVitKbWRIWFZSd2dxeXVwU2NQWU1PUUpLZHdWaVBGT0E5aHR2?=
 =?utf-8?B?SFQwWVpHN0lzS253Q1JSbW12T3dvUHI3UVZaSWkyUkxrN29IU1lnd3M5Q2ta?=
 =?utf-8?B?QnJEM05nN3U5WWp0VmxubEJjcE5CZmRaOU5pVE1nZWJjL1ZqMTBvNXFWSE5l?=
 =?utf-8?B?dUtiUjJZNTNaZG03Mkc0RFhpQVlKNXJnelNOYWpjR2s4UmdpWHNpVENYUVk2?=
 =?utf-8?B?SWNvSGdZUUxLZEEwOXBJaGg5cUUzako0VGZNTGJwcFhuRFBnaVQ5L1MvOXlR?=
 =?utf-8?B?dUFyZHpXYnY2RUFPSDFtNG5RYzVhNHBMN25OTjhORDR2aUY5R1oxVWVOL3U0?=
 =?utf-8?B?aGw1VVlqelorNkJZT2YremdBb1VNU2o1anNWMUsvMjQ1ZGdTZy9EYWQza1pp?=
 =?utf-8?B?R091a1JQZmJZeXFtNU9ORm1MWUg0SjRoelhxSkcyakVqN0JRdHU5d01PMkFv?=
 =?utf-8?Q?nvWwvD?=
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: 23 Apr 2025 11:53:06.2443
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: f7c365ea-5491-46ae-a9ac-08dd825d6912
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:
	BL6PEPF0001AB76.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB5842

On Fri Apr 18, 2025 at 10:55 PM BST, dmkhn wrote:
> On Thu, Apr 17, 2025 at 01:48:25PM +0100, Alejandro Vallejo wrote:
>> From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
>>=20
>> 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, i=
t will
>> set its type to BOOTMOD_FDT. This change only detects the boot module an=
d
>> continues to boot with slight change to the boot convention that the dom=
0
>> kernel is no longer first boot module but is the second.
>>=20
>> No functional change intended.
>>=20
>> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
>> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
>> Signed-off-by: Alejandro Vallejo <agarciav@amd.com>
>> ---
>> v4:
>>   * Moved from arch/x86/ to common/
>>   * gated all of domain-builder/ on CONFIG_BOOT_INFO
>>   * Hide the domain builder submenu for !X86
>>   * Factor out the "hyperlaunch_enabled =3D false" toggle core.c
>>   * Removed stub inline, as DCE makes it unnecessary
>>   * Adjusted printks.
>> ---
>>  xen/arch/x86/include/asm/bootinfo.h |  3 ++
>>  xen/arch/x86/setup.c                | 17 +++++----
>>  xen/common/Makefile                 |  1 +
>>  xen/common/domain-builder/Makefile  |  2 ++
>>  xen/common/domain-builder/core.c    | 56 +++++++++++++++++++++++++++++
>>  xen/common/domain-builder/fdt.c     | 37 +++++++++++++++++++
>>  xen/common/domain-builder/fdt.h     | 12 +++++++
>>  xen/include/xen/domain-builder.h    |  9 +++++
>>  8 files changed, 131 insertions(+), 6 deletions(-)
>>  create mode 100644 xen/common/domain-builder/Makefile
>>  create mode 100644 xen/common/domain-builder/core.c
>>  create mode 100644 xen/common/domain-builder/fdt.c
>>  create mode 100644 xen/common/domain-builder/fdt.h
>>  create mode 100644 xen/include/xen/domain-builder.h
>>=20
>> diff --git a/xen/arch/x86/include/asm/bootinfo.h b/xen/arch/x86/include/=
asm/bootinfo.h
>> index 3afc214c17..82c2650fcf 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,
>>  };
>>=20
>>  struct boot_module {
>> @@ -80,6 +81,8 @@ struct boot_info {
>>      paddr_t memmap_addr;
>>      size_t memmap_length;
>>=20
>> +    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/setup.c b/xen/arch/x86/setup.c
>> index 4df012460d..ccc57cc70a 100644
>> --- a/xen/arch/x86/setup.c
>> +++ b/xen/arch/x86/setup.c
>> @@ -5,6 +5,7 @@
>>  #include <xen/cpuidle.h>
>>  #include <xen/dmi.h>
>>  #include <xen/domain.h>
>> +#include <xen/domain-builder.h>
>>  #include <xen/domain_page.h>
>>  #include <xen/efi.h>
>>  #include <xen/err.h>
>> @@ -1282,9 +1283,12 @@ void asmlinkage __init noreturn __start_xen(void)
>>                 bi->nr_modules);
>>      }
>>=20
>> -    /* Dom0 kernel is always first */
>> -    bi->mods[0].type =3D BOOTMOD_KERNEL;
>> -    bi->domains[0].kernel =3D &bi->mods[0];
>> +    builder_init(bi);
>> +
>> +    /* Find first unknown boot module to use as dom0 kernel */
>> +    i =3D first_boot_module_index(bi, BOOTMOD_UNKNOWN);
>> +    bi->mods[i].type =3D BOOTMOD_KERNEL;
>> +    bi->domains[0].kernel =3D &bi->mods[i];
>
> Nit: perhaps add convenience aliases for bi->domains[0] (e.g. dom0) and=
=20
> for bi->mods[0] (e.g. mod)?

Inside the boot_info? As in separate aliasing pointers into the arrays?
I'd rather not. It'd be dangerous on systems without an actual dom0.

The PV shim comes to mind, but other configurations might arise in the
future where no domain holds the id of 0.

>
>>=20
>>      if ( pvh_boot )
>>      {
>> @@ -1467,8 +1471,9 @@ void asmlinkage __init noreturn __start_xen(void)
>>          xen->size  =3D __2M_rwdata_end - _stext;
>>      }
>>=20
>> -    bi->mods[0].headroom =3D
>> -        bzimage_headroom(bootstrap_map_bm(&bi->mods[0]), bi->mods[0].si=
ze);
>> +    bi->domains[0].kernel->headroom =3D
>> +        bzimage_headroom(bootstrap_map_bm(bi->domains[0].kernel),
>> +                         bi->domains[0].kernel->size);
>>      bootstrap_unmap();
>>=20
>>  #ifndef highmem_start
>> @@ -1592,7 +1597,7 @@ void asmlinkage __init noreturn __start_xen(void)
>>  #endif
>>      }
>>=20
>> -    if ( bi->mods[0].headroom && !bi->mods[0].relocated )
>> +    if ( bi->domains[0].kernel->headroom && !bi->domains[0].kernel->rel=
ocated )
>>          panic("Not enough memory to relocate the dom0 kernel image\n");
>>      for ( i =3D 0; i < bi->nr_modules; ++i )
>>      {
>> diff --git a/xen/common/Makefile b/xen/common/Makefile
>> index 98f0873056..565837bc71 100644
>> --- a/xen/common/Makefile
>> +++ b/xen/common/Makefile
>> @@ -11,6 +11,7 @@ obj-$(filter-out $(CONFIG_X86),$(CONFIG_ACPI)) +=3D de=
vice.o
>>  obj-$(CONFIG_HAS_DEVICE_TREE) +=3D device-tree/
>>  obj-$(CONFIG_IOREQ_SERVER) +=3D dm.o
>>  obj-y +=3D domain.o
>> +obj-$(CONFIG_HAS_BOOT_INFO) +=3D domain-builder/
>>  obj-y +=3D event_2l.o
>>  obj-y +=3D event_channel.o
>>  obj-$(CONFIG_EVTCHN_FIFO) +=3D event_fifo.o
>> diff --git a/xen/common/domain-builder/Makefile b/xen/common/domain-buil=
der/Makefile
>> new file mode 100644
>> index 0000000000..b10cd56b28
>> --- /dev/null
>> +++ b/xen/common/domain-builder/Makefile
>> @@ -0,0 +1,2 @@
>> +obj-$(CONFIG_DOMAIN_BUILDER) +=3D fdt.init.o
>> +obj-y +=3D core.init.o
>> diff --git a/xen/common/domain-builder/core.c b/xen/common/domain-builde=
r/core.c
>> new file mode 100644
>> index 0000000000..a5b21fc179
>> --- /dev/null
>> +++ b/xen/common/domain-builder/core.c
>> @@ -0,0 +1,56 @@
>> +/* 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)
>> +{
>> +    bi->hyperlaunch_enabled =3D false;
>> +
>> +    if ( IS_ENABLED(CONFIG_DOMAIN_BUILDER) )
>
> I would re-organize the code to remove one level of indentation, e.g.:
>
>        if ( !IS_ENABLED(CONFIG_DOMAIN_BUILDER) )
>             return;
>
>        switch ( ret =3D has_hyperlaunch_fdt(bi) )
>        ...
>
> or even add #ifdef CONFIG_DOMAIN_BUILDER for builder_init() in the header=
 file.
>
> What do you think?

In this patch it sounds good, but a later patch adds more stuff at the
tail of the function that must not be skipped, so it wouldn't work
as-is.

Another matter is whether this function could be skipped in the "no-fdt"
case, and it probably could. But I do know the longer series (big RFC
from Daniel) adds more common logic present when !CONFIG_DOMAIN_BUILDER,
so I'm reticent to deviate too much from it to avoid rebasing headaches.

>
>> +    {
>> +        int ret;
>> +
>> +        switch ( ret =3D has_hyperlaunch_fdt(bi) )
>> +        {
>> +        case 0:
>> +            printk(XENLOG_DEBUG "DT found: hyperlaunch\n");
>> +            bi->hyperlaunch_enabled =3D true;
>> +            bi->mods[0].type =3D BOOTMOD_FDT;
>> +            break;
>> +
>> +        case -EINVAL:
>> +            /* No DT found */
>> +            break;
>> +
>> +        case -ENOENT:
>> +        case -ENODATA:
>
> Looks like this code accounts for the follow on change: current implement=
ation
> only returns -EINVAL or 0.
>
> Is it possible to convert has_hyperlaunch_fdt() to a simple predicate?

The function is a misnomer and it ought to change to return an
enumerated type instead where it returns FDT_HYPERLAUNCH, FDT_DOM0LESS,
FDT_UNKNOWN or NO_FDT. Using error codes for identification is a tad too
hacky.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 11:54:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 11:54:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.964511.1355285 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7YgT-0007nC-Iw; Wed, 23 Apr 2025 11:54:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 964511.1355285; Wed, 23 Apr 2025 11:54:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7YgT-0007n5-FY; Wed, 23 Apr 2025 11:54:33 +0000
Received: by outflank-mailman (input) for mailman id 964511;
 Wed, 23 Apr 2025 11: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=VjMx=XJ=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u7YgS-0007mz-9m
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 11:54:32 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on20600.outbound.protection.outlook.com
 [2a01:111:f403:2418::600])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b7243000-2039-11f0-9eb0-5ba50f476ded;
 Wed, 23 Apr 2025 13:54:30 +0200 (CEST)
Received: from MN2PR19CA0020.namprd19.prod.outlook.com (2603:10b6:208:178::33)
 by BL3PR12MB6449.namprd12.prod.outlook.com (2603:10b6:208:3b8::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.35; Wed, 23 Apr
 2025 11:54:23 +0000
Received: from BL6PEPF0001AB76.namprd02.prod.outlook.com
 (2603:10b6:208:178:cafe::64) by MN2PR19CA0020.outlook.office365.com
 (2603:10b6:208:178::33) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.37 via Frontend Transport; Wed,
 23 Apr 2025 11:54:23 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BL6PEPF0001AB76.mail.protection.outlook.com (10.167.242.169) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Wed, 23 Apr 2025 11:54:23 +0000
Received: from localhost (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, 23 Apr
 2025 06:54:20 -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: b7243000-2039-11f0-9eb0-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=eQS6kq8wahfktLRDrmkpGd2gqEQ+Rg9EnjFR5rf1JdhjD/DL20bDYCqee6iv4k41KhW9ShVjlldllazxUpQTZZp9HMNalNy7JCMqgRcav0kJtH+0aoiXUkXxn2uXiXEzL22srl+bvGfhh29Eg4gQwQgRyHXQvb/w0X0sUbTbSSePZVYyXO2xY10a3FWpJ9DWZz7gj9rh1RS5vJHG3X0Zo3IJl1bBKev7XoS0FIg4cezxiuoWjndQ46yFk1r1WWqerlUJm6H3PPIanL+/eSBxNBn1TADNML0QoCPKfbKf5zD/5fkPV2lWefz8euVFI6tQfFnaSGSjBLZJN55yJXd5sg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=oleSgYpvcA1EcD7hS+UrZHpjy9CXN1xUW5/vhHEvILo=;
 b=Dh7Sw2cvDY9YrOYI4BIFELztqfZHsnbU9F0D1aDv0Gnvq9CBYsj4SKbLELZuby4xPCaQvBl2iO2LmgpeTAbWE5j38lVuFywZTnxeoOdT6vCEIbVgys6RnqZngVeEQ17qNGX2lQEeo2NkeZBOC+UxHq+lwwIVVUsEJgdma2l7DvHpT35rnTo7ObVKmVrnUND90/ABIVND/qHwHHEflNbYOApb54QK3LYy657kLL8Ku1w9r4HiceUEUXK5yx9Ax/ycC1VLLOSAeBsLkM+dLhx321942Dmv+YQ5fKoeCyArQfMhq73XkVK70SwFpUuYlRcwzD2+I7jl03TKWRpzzGeqCw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=proton.me 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=oleSgYpvcA1EcD7hS+UrZHpjy9CXN1xUW5/vhHEvILo=;
 b=Ipv+OCYlstjSR6lDwsWbOfii7uV3jTUcdv3Fv5vdU3XPRPYU+PsDPxYr4aMgO/VO0QWAh1u1a7fafB1gNT9wrsenHGp1cpzxoSIe7FpD+2w9ryEYnJwQYEK2sfT/qJG/9xDZIli+FZcuyQM4c9XtTe0zLhrvoTntGSyfR19iX/g=
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
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Wed, 23 Apr 2025 12:54:18 +0100
Message-ID: <D9DZXZRPA391.3SLSYKKAIR8OT@amd.com>
CC: <xen-devel@lists.xenproject.org>, "Daniel P. Smith"
	<dpsmith@apertussolutions.com>, Jan Beulich <jbeulich@suse.com>, "Andrew
 Cooper" <andrew.cooper3@citrix.com>, =?utf-8?q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, "Michal
 Orzel" <michal.orzel@amd.com>, Julien Grall <julien@xen.org>, "Stefano
 Stabellini" <sstabellini@kernel.org>, Jason Andryuk <jason.andryuk@amd.com>
Subject: Re: [PATCH v4 04/13] x86/hyperlaunch: initial support for
 hyperlaunch device tree
From: Alejandro Vallejo <agarciav@amd.com>
To: <dmkhn@proton.me>
X-Mailer: aerc 0.20.1
References: <20250417124844.11143-1-agarciav@amd.com>
 <20250417124844.11143-5-agarciav@amd.com> <aALN/46JGBJTBCMm@kraken>
In-Reply-To: <aALN/46JGBJTBCMm@kraken>
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: BL6PEPF0001AB76:EE_|BL3PR12MB6449:EE_
X-MS-Office365-Filtering-Correlation-Id: c625d32d-4371-4e5e-9c6d-08dd825d96e6
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:
	=?utf-8?B?ZmNmZitxVzNSeFBibnBnemhodUpTUTgwMmkxS0JZSnV6eHI3Ti9acUVJR3Yz?=
 =?utf-8?B?Qm5uTTUraEZ6ckFsMjlzVzlVTnhzdzlHZE82b3ZORmFCY3RZSkx3aGpxNWl3?=
 =?utf-8?B?dW1TcFBabmVvZ3hQM1lBOXFJK1VndHUyeEZMU1lvZE1sdUxiRzFmNm56L1lr?=
 =?utf-8?B?U3NjN3JiNEpIQzNsVHVEUEhiak9GQTZiQWN1d1pzRmRhMmRiVWJMVFp6QjFX?=
 =?utf-8?B?RjIrbjliMDRuT0JkOHJWekJaUldJbXRFY3U5Rm9RZGtaMHVlNWdZN29CUDdv?=
 =?utf-8?B?UWpCMjNqQndlUWFWNEJhSWpYM1c3YnljZHRNYmllaXJ5Sno0b3Mvay9XaWF0?=
 =?utf-8?B?RFI4TDZCbW8wU0VNQU9XaHZwU0prUXNISEc1bS9xS2RSeFRueEhtdnFjVjNJ?=
 =?utf-8?B?N01oUWFvZm1PRHpKcXRGUzd1WUcyYzdZWWpxclZFWHdkYTcyT3hnT3o4N1h0?=
 =?utf-8?B?Y2NYS3hWZlk2dm1kWTROTXhPNnJ6eXBLTFN1Ym00Y1pZNFFkbmM0bkJiMFNx?=
 =?utf-8?B?Mjk2UUgwYnFRRW1jaWZGUlNpNml5dGs3WllQREF6USs2UWllY0pnNXFveU1v?=
 =?utf-8?B?amVJUTdRZDFQVC90UGFwS2lzY0plS21OUHlTY0NlZlhHcThaYmJ1UGpXUmNK?=
 =?utf-8?B?eUpEeVJJUUVpVE5jd05JakRyN2hKY3pHZmhHTDBlZzUrZ1JmNjJ1dnNnVVZm?=
 =?utf-8?B?RXVZTHdyRDMrb0ZVblNmQ2IrWVE3WmxtNjlOYThSNzNmTUpmaVA4T1NCYzVG?=
 =?utf-8?B?WUF2c2hUVDhaR3pyN2oxUldVSUo5bTZYbGNmNFI1REFUK240NFVxOVJHSkkx?=
 =?utf-8?B?N05vdXMvV1BhLzNGMTVBQmtKVkJ4M2ZrSTJLV1d0OXU0Z2h0Sk4ySzF5NzY3?=
 =?utf-8?B?SDJzU1RSRlJibkIzbDdsclZSbFNYaHZUNlRUbW9JZFU3aUd5ZlhZNjdXeVpp?=
 =?utf-8?B?MExJL29JY1pmS3RrSE5hTDVGaS9lc2o4UERSOGpjY296aysvRUt0MjBqNzlU?=
 =?utf-8?B?S1dhNndlTktGWlNUa1NzZGVqNnd2ZG9uWkZtdkk2VVQ5ZGJQbGR0RHhjMWdL?=
 =?utf-8?B?bFlVN2NOeitTenl5NHNGbXFENkZMYXpQYUJPR1UzSVZqeFBPbXpXdW9FT3Y2?=
 =?utf-8?B?dnpvamFvUDlUUk56M2FNMUFYL2prTVBJQ2tma2NuL0lxa0ROVWNEVjVJZy9R?=
 =?utf-8?B?N1BqU3ZpeU5jSmtuWFN0czBTeHZsNXRJZnRFNlNTRGVMVzZzSTVYOExYSEl2?=
 =?utf-8?B?NFhKdm1CZDU1cTVOTG9VWlVhTm1EN0JTNHR6NkRnTVBHRndDY3ZvK3FQM3JU?=
 =?utf-8?B?bW5mY3k5MExRem5pYUYyZnNCdlRMS1lPcVhYdmhHb0RxL2c0eUlpaThWdi9Z?=
 =?utf-8?B?Zzhsek1qU1hya0p4RTQxQ2lOdmRONjVaR3MxckNqMkE2NTJiTzloZDkyblFr?=
 =?utf-8?B?dGkySjVialRyWW02OWR5Z2NYcmN3UXk4Ui9QUDdBb0VzUFpCUHIrYXhiMUVu?=
 =?utf-8?B?TGMzeGxXV29QSmg2Q05HVzIxUDBMb0lXOEgzWk40Q3V6MjNwaW1pbXIzbnMz?=
 =?utf-8?B?M1ExdG9jWWUxNldiZUtGeHVQeG9aaVp3bEFxM0NoN0RFOHdJdnRpTXZiNEhh?=
 =?utf-8?B?cVV5ZVBQKzcrNzNGSVl2SzR1dnlUTkNKVmZlcGNyMjR3ZFdWemN1NlpIVEJ2?=
 =?utf-8?B?SHV5T3c0NWVoUXB6djh1UU54ZHQyTXhFeEV4dGhUVk94dmtiMjNxY0tDK2Rj?=
 =?utf-8?B?UkJvQzB2dXpTNENkQzlXTDIrcDIrT2tNVlRERUM5Rm5oeHZvYVBmVTJwREhI?=
 =?utf-8?B?Y1FsbkpNdTZWa3pISVZNTXM5dmZpMWVPa3dBSGk2NExGRExUczdNSmxmTEYw?=
 =?utf-8?B?eWhrZmNKUnUwTFpXL255ejlyWk4yZXo1SVhTdWh5TjFLc2NWbFNWVncvZUYz?=
 =?utf-8?B?SE00QXR6c3NGZCtrTG1pY0Nnb2U5cVVOMlcrYUxPS01kZjVxSFU5YmFSV2R3?=
 =?utf-8?B?dmZ1T0I4RkVRZUFqRllZdHMrY2V4ZzhDOE50MjR6NEFrd1h4c3ZxVDQ5L3Fv?=
 =?utf-8?Q?oOTOus?=
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: 23 Apr 2025 11:54:23.1308
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: c625d32d-4371-4e5e-9c6d-08dd825d96e6
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:
	BL6PEPF0001AB76.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL3PR12MB6449

On Fri Apr 18, 2025 at 11:11 PM BST, dmkhn wrote:
> On Thu, Apr 17, 2025 at 01:48:26PM +0100, Alejandro Vallejo wrote:
>> From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
>>=20
>> Add the ability to detect both a formal hyperlaunch device tree or a dom=
0less
>> device tree. If the hyperlaunch device tree is found, then count the num=
ber of
>> domain entries, reporting an error if more than one is found.
>>=20
>> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
>> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
>> Signed-off-by: Alejandro Vallejo <agarciav@amd.com>
>> ---
>> v4:
>>   * Panic if we're booting on hyperlaunch, but walking the DTB fails.
>>   * Remove inconsequential "else" clause in fdt.c
>>   * Remove stub, as it's not required due to DCE
>>   * Use min() rather than open-code it
>> ---
>>  xen/arch/x86/include/asm/bootinfo.h |  1 +
>>  xen/common/domain-builder/core.c    | 11 +++++
>>  xen/common/domain-builder/fdt.c     | 63 +++++++++++++++++++++++++++++
>>  xen/common/domain-builder/fdt.h     |  1 +
>>  4 files changed, 76 insertions(+)
>>=20
>> diff --git a/xen/arch/x86/include/asm/bootinfo.h b/xen/arch/x86/include/=
asm/bootinfo.h
>> index 82c2650fcf..1e3d582e45 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;
>>=20
>>      unsigned int nr_modules;
>> +    unsigned int nr_domains;
>>      struct boot_module mods[MAX_NR_BOOTMODS + 1];
>>      struct boot_domain domains[MAX_NR_BOOTDOMS];
>>  };
>> diff --git a/xen/common/domain-builder/core.c b/xen/common/domain-builde=
r/core.c
>> index a5b21fc179..3b062e85ec 100644
>> --- a/xen/common/domain-builder/core.c
>> +++ b/xen/common/domain-builder/core.c
>> @@ -43,6 +43,17 @@ void __init builder_init(struct boot_info *bi)
>>              break;
>>          }
>>      }
>> +
>> +    if ( bi->hyperlaunch_enabled )
>> +    {
>> +        int ret;
>> +
>> +        printk(XENLOG_INFO "Hyperlaunch configuration:\n");
>> +        if ( (ret =3D walk_hyperlaunch_fdt(bi)) < 0 )
>> +            panic("Walk of device tree failed (%d)\n", ret);
>> +
>> +        printk(XENLOG_INFO "  number of domains: %u\n", bi->nr_domains)=
;
>> +    }
>>  }
>>=20
>>  /*
>> diff --git a/xen/common/domain-builder/fdt.c b/xen/common/domain-builder=
/fdt.c
>> index aaf8c1cc16..b5ff8220da 100644
>> --- a/xen/common/domain-builder/fdt.c
>> +++ b/xen/common/domain-builder/fdt.c
>> @@ -13,6 +13,36 @@
>>=20
>>  #include "fdt.h"
>>=20
>> +static int __init find_hyperlaunch_node(const void *fdt)
>> +{
>> +    int hv_node =3D fdt_path_offset(fdt, "/chosen/hypervisor");
>> +
>> +    if ( hv_node >=3D 0 )
>> +    {
>> +        /* Anything other than zero indicates no match */
>> +        if ( fdt_node_check_compatible(fdt, hv_node, "hypervisor,xen") =
)
>> +            return -ENODATA;
>> +
>> +        return hv_node;
>> +    }
>> +    else
>> +    {
>> +        /* Look for dom0less config */
>> +        int node, chosen_node =3D 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") )
>> +                return chosen_node;
>> +        }
>> +    }
>> +
>> +    return -ENODATA;
>> +}
>> +
>>  int __init has_hyperlaunch_fdt(const struct boot_info *bi)
>>  {
>>      int ret =3D 0;
>> @@ -20,7 +50,40 @@ int __init has_hyperlaunch_fdt(const struct boot_info=
 *bi)
>>=20
>>      if ( !fdt || fdt_check_header(fdt) < 0 )
>>          ret =3D -EINVAL;
>> +    else
>> +        ret =3D find_hyperlaunch_node(fdt);
>> +
>> +    bootstrap_unmap();
>> +
>> +    return min(0, ret);
>> +}
>> +
>> +int __init walk_hyperlaunch_fdt(struct boot_info *bi)
>> +{
>> +    int ret =3D 0, hv_node, node;
>> +    const void *fdt =3D bootstrap_map_bm(&bi->mods[HYPERLAUNCH_MODULE_I=
DX]);
>> +
>> +    if ( unlikely(!fdt) )
>> +        return -EINVAL;
>
> I think this check can be converted to ASSERT() since walk_hyperlaunch_fd=
t()
> will be called after has_hyperlaunch_fdt() where condition is checked.

True that.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 12:04:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 12:04:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.964532.1355295 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7Yq1-0001bP-JW; Wed, 23 Apr 2025 12:04:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 964532.1355295; Wed, 23 Apr 2025 12:04:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7Yq1-0001bI-Fz; Wed, 23 Apr 2025 12:04:25 +0000
Received: by outflank-mailman (input) for mailman id 964532;
 Wed, 23 Apr 2025 12:04: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=dLR5=XJ=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u7Yq0-0001bB-7s
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 12:04: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 178e94c7-203b-11f0-9ffb-bf95429c2676;
 Wed, 23 Apr 2025 14:04:22 +0200 (CEST)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-39c1ee0fd43so5733014f8f.0
 for <xen-devel@lists.xenproject.org>; Wed, 23 Apr 2025 05:04:22 -0700 (PDT)
Received: from [192.168.86.29] ([83.104.178.215])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39efa4206fasm18273260f8f.2.2025.04.23.05.04.20
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 23 Apr 2025 05:04:20 -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: 178e94c7-203b-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745409861; x=1746014661; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=nzu8CMGibcAh7yGgVKWP1XO+FLkGJclgWOAxgFpTVTM=;
        b=KHjW4F8AXJm6cwbaFvFip/YSgZiwBkhhepSd8XWXhwMNyvhCodRoCE573dvI5Kq6Qc
         6vEG730PdsR/azdfP58qPH3XZH5K3IlAPrbFBrkf22jwkVpHkmSU2vc4A6P8ICEplEmT
         glLqWeqecVvb1dks9Zodwd8c+hC5tiK1JuEF4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745409861; x=1746014661;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=nzu8CMGibcAh7yGgVKWP1XO+FLkGJclgWOAxgFpTVTM=;
        b=t5JKIcGUy6TnwRFt6XkXVdcuZ/QnqBOrhaDEnBuWu5W2/uWxpPxcS+Tw3AXSBo4ZV0
         l9OfAxRK6DTdwXzxAhZ1Fv1NZnDNDMvMWkh2L8UQdTFjZ92LDi9uZMFgQbJHs343Ue6i
         h1kD690RriANtD7tac+eA16QMlqbssVQknEMSTerVeQxpzFHapRwn3T5agou44xF7L4j
         QutGvwRwIVklIEuzR3fvWvIEea8F2XsFJ0T045on+YhxirEVNQfhvHKMhIfizqcdcJcC
         BuYEkdAgrI2I4/Sp0iF/KWPz5qJrThz8jzjGKMedn9VnuLC5F+RihAm0i7AYa9+/cGXR
         EpMw==
X-Gm-Message-State: AOJu0YyTJzwBOxWT18YKlv85Myrq1Y6/LYpunTRdFpvdzzEz+07ft4F7
	jcrOUkCT+iJW0MjJr7/IPM1lTOrsBy9MQEZbOoQKwxKip+QyHfqKPakHKJ+NXNA=
X-Gm-Gg: ASbGncumezNOv/M1+nrzJhY0Z6IF8hQd1+tc0l6eiKhNpR8z+nVwKv5LS453L4DPkdW
	PZ/YSURbBWu0O4RSObALwEtckW4/AHNe/34jvbg+NfArUl+xt49pI1WuY/D4VBXaBUbYP4IMOA2
	TOw6ybk44guoJ2w0NzVyVOK1YP0Ra8iuM7YSdAleMD13iwg1y0kaA5z/MNZai2F94Ox8mg57NzU
	WvqPtXYgR5BvoHIGS+/jo66vIP1vKSvt8V5HDPnH1CKgQtoOThEYb+xWz1e/Z8uF8u/WIFlTWzw
	v/6wQZe/WBpMt/juYM4NYt5MvA5v1FQXM1P4InEylZTcHfg5t8zE1A==
X-Google-Smtp-Source: AGHT+IEfcFSyOyp9p79d+udocNw/QHPyhRp7UQFsveG0nxUpd/ikoIOM1YSmDaBm6thmZhqr+6bgMA==
X-Received: by 2002:a05:6000:184c:b0:39e:cbcf:9dad with SMTP id ffacd0b85a97d-39efba50f42mr14177658f8f.20.1745409861261;
        Wed, 23 Apr 2025 05:04:21 -0700 (PDT)
Message-ID: <0921b0ae-7c9e-4f04-aaba-4b0bfcb81348@citrix.com>
Date: Wed, 23 Apr 2025 13:04:19 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 6/8] xen/livepatch: Support new altcall scheme
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>, Ross Lagerwall <ross.lagerwall@citrix.com>
References: <20250423010237.1528582-1-andrew.cooper3@citrix.com>
 <20250423010237.1528582-7-andrew.cooper3@citrix.com>
 <aAjMIeYaPzxlsV8_@macbook.lan>
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: <aAjMIeYaPzxlsV8_@macbook.lan>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 23/04/2025 12:16 pm, Roger Pau Monné wrote:
> On Wed, Apr 23, 2025 at 02:02:35AM +0100, Andrew Cooper wrote:
>> The new altcall scheme uses an .alt_call_sites section.  Wire this up in very
>> much the same way as the .altinstructions section, although there is less
>> sanity checking necessary.
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>

Thanks.

>
> One nit/comment below.
>
>> ---
>> CC: Jan Beulich <JBeulich@suse.com>
>> CC: Roger Pau Monné <roger.pau@citrix.com>
>> CC: Ross Lagerwall <ross.lagerwall@citrix.com>
>> ---
>>  xen/arch/x86/alternative.c         |  6 ++++
>>  xen/common/livepatch.c             | 58 ++++++++++++++++++++++++++++++
>>  xen/include/xen/alternative-call.h |  8 +++--
>>  3 files changed, 70 insertions(+), 2 deletions(-)
>>
>> diff --git a/xen/arch/x86/alternative.c b/xen/arch/x86/alternative.c
>> index f6594e21a14c..22af224f08f7 100644
>> --- a/xen/arch/x86/alternative.c
>> +++ b/xen/arch/x86/alternative.c
>> @@ -479,6 +479,12 @@ int apply_alternatives(struct alt_instr *start, struct alt_instr *end)
>>  {
>>      return _apply_alternatives(start, end, true);
>>  }
>> +
>> +int livepatch_apply_alt_calls(const struct alt_call *start,
>> +                              const struct alt_call *end)
>> +{
>> +    return apply_alt_calls(start, end);
>> +}
>>  #endif
>>  
>>  #define ALT_INSNS (1U << 0)
>> diff --git a/xen/common/livepatch.c b/xen/common/livepatch.c
>> index 6ce77bf021b7..be9b7e367553 100644
>> --- a/xen/common/livepatch.c
>> +++ b/xen/common/livepatch.c
>> @@ -905,6 +905,64 @@ static int prepare_payload(struct payload *payload,
>>  #endif
>>      }
>>  
>> +    sec = livepatch_elf_sec_by_name(elf, ".alt_call_sites");
>> +    if ( sec )
>> +    {
>> +#ifdef CONFIG_ALTERNATIVE_CALL
>> +        const struct alt_call *a, *start, *end;
>> +
>> +        if ( !section_ok(elf, sec, sizeof(*a)) )
>> +            return -EINVAL;
>> +
>> +        /* Tolerate an empty .alt_call_sites section... */
>> +        if ( sec->sec->sh_size == 0 )
> You could possibly move this check to the outer `if` condition, and
> avoid the alt_call_done label?
>
> As even in the !CONFIG_ALTERNATIVE_CALL case skipping an empty section
> would be OK.

.altinstructions is like this.  It was put in as part of e74360e4ba4a, I
believe because it was decided that an empty section wasn't wanted.

We can revisit the decision, but the logic should be consistent.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 12:12:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 12:12:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.964544.1355305 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7Yxg-0003hV-BB; Wed, 23 Apr 2025 12:12:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 964544.1355305; Wed, 23 Apr 2025 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 1u7Yxg-0003hO-8Y; Wed, 23 Apr 2025 12:12:20 +0000
Received: by outflank-mailman (input) for mailman id 964544;
 Wed, 23 Apr 2025 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=VjMx=XJ=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u7Yxf-0003hI-3g
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 12:12:19 +0000
Received: from NAM02-SN1-obe.outbound.protection.outlook.com
 (mail-sn1nam02on20627.outbound.protection.outlook.com
 [2a01:111:f403:2406::627])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 320bd8c3-203c-11f0-9eb0-5ba50f476ded;
 Wed, 23 Apr 2025 14:12:17 +0200 (CEST)
Received: from SJ0PR03CA0293.namprd03.prod.outlook.com (2603:10b6:a03:39e::28)
 by LV8PR12MB9229.namprd12.prod.outlook.com (2603:10b6:408:191::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.23; Wed, 23 Apr
 2025 12:12:11 +0000
Received: from SJ1PEPF000026C8.namprd04.prod.outlook.com
 (2603:10b6:a03:39e:cafe::9d) by SJ0PR03CA0293.outlook.office365.com
 (2603:10b6:a03:39e::28) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.35 via Frontend Transport; Wed,
 23 Apr 2025 12:12:10 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ1PEPF000026C8.mail.protection.outlook.com (10.167.244.105) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Wed, 23 Apr 2025 12:12:09 +0000
Received: from localhost (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, 23 Apr
 2025 07:12:05 -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: 320bd8c3-203c-11f0-9eb0-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=FdippMtPwaszWZ9uvTt0ceU2j4w7vd/ipVfqiSRQSOI/j28CpDBtmaP8NnF3a48zg1S3cbehclgV0LovV+c/+D45hOVOU7ZgDLnYPKr98VTl7hBFdbvEqEhT964Y2oP66W3KNy+npp+G2qZ3sh1Dsr8+3zC/bKiVD2FTuz6UVQgwnP2NRYpaOixeH5EulZUAdL0xBbN/O7V/b3o0JasobzBiBJkECuLr3j+JQcl7KJnCHZdzuQm37V4A0RlIQ4aPpEWs+ktplQG5vphq74G7ZGMlfTcYc+Y3KDTjorClR8j+UaW5XZxqLD1hyhErQzsxFVe8bqOc6QK4r6jvJ2HhLQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=FSe4xzZ/l7UZnQ28PKXHhXP1kzT/+jUf+MATFOebIQ4=;
 b=Kuo/7zp99n1JF9aWV8+7+UQ4OP4CiA2mAdy5MUbKAL92otS4GgYVj2/yzOXGO33nPMI05p9Hr/E+X0KlxwcCJkCHGz7LQwKVM5jPPZjwdMMhua7giDTlTwFA6JJAOXbQcvtGe1ehXRAJB7yP/L4nAdV1un3yWCxm5iL7oF3VXqpTSNxYsjusHheMGYy7akCGoITn+WXJeUtiXDscbxta0NPL7E8ux06hz95EZr1WJ35r2rfUGFDy9yZIVSMTRLu1romj0FlZLfuFLaiBMMxNSPpLS/CWSPvqALIxIQ9Om2aeZ73LCrv0fY6KdcNo9eeU1vcPLnoBRuGN6r5c57iiQQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=proton.me 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=FSe4xzZ/l7UZnQ28PKXHhXP1kzT/+jUf+MATFOebIQ4=;
 b=BWyO4x2KGx+VIfOVuJTlGk0No2TI4RAiA/+Ns/5vY2VSrAa5VoljdU11E6dCngUcNUd77+9b4G7PtfLMQ9g+SgHbGl69N3J59Wphwx9CbXebNZD4vzUmG8zK1VIs4vYZgrPgUVwkGnfkoghMPIoSjHungLLK0TQFG8gkYtbYglU=
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
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Wed, 23 Apr 2025 13:12:03 +0100
Message-ID: <D9E0BL26H82L.2DEW4IC6FENYN@amd.com>
CC: <xen-devel@lists.xenproject.org>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, "Julien
 Grall" <julien@xen.org>, =?utf-8?q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
	"Bertrand Marquis" <bertrand.marquis@arm.com>, Jason Andryuk
	<jason.andryuk@amd.com>
Subject: Re: [PATCH v4 05/13] x86/hyperlaunch: Add helpers to locate
 multiboot modules
From: Alejandro Vallejo <agarciav@amd.com>
To: <dmkhn@proton.me>
X-Mailer: aerc 0.20.1
References: <20250417124844.11143-1-agarciav@amd.com>
 <20250417124844.11143-6-agarciav@amd.com> <aALSauQee7Z3O8Bj@kraken>
In-Reply-To: <aALSauQee7Z3O8Bj@kraken>
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: SJ1PEPF000026C8:EE_|LV8PR12MB9229:EE_
X-MS-Office365-Filtering-Correlation-Id: e293f4ca-2e85-4a39-2e72-08dd826012c4
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?ZStpdXZ3TlF2bktaRWd0dzVITVlnalVpd3cyMU8yeTJGdzNUa2toVHpWU0Zx?=
 =?utf-8?B?MDdJdXBWbnJ1dURjVzFGejh3VmczYmpQTGdlZ0hKeGkyUERkWTJvQS9oUVho?=
 =?utf-8?B?LzZ2ZG4rYlpiS2pDWXVHM1dsUmc4dWQwT2RhUXMyMHZ3Y29mZXhzUWRndFJ2?=
 =?utf-8?B?M05HZmptck8vOGZrOVJsRFhFWTZMQWc2ZTJnaHdFdVRPODFpZXBmZjVESm1j?=
 =?utf-8?B?ZU84bGdEVk8rT1RwSkpoanZOVGFySmJpWHZDa25pQ0VaRFU2STNPMWVmTklU?=
 =?utf-8?B?QWZkNnB4djNweitrb1N0NjIrMXNvaTh5YkJxNlU0Z0IyWjN2VTluRGNINGsw?=
 =?utf-8?B?bTJnZm5QWHdYODJNS3hsNGtnanlJU3grTXRKLzFYenpVYStLVTBJWXhwblg3?=
 =?utf-8?B?UWdHNlJnR2Q0ZFBsNUsyaWE0RysydFNXc0hIYm9keFduOHpCRGlreS9yckgv?=
 =?utf-8?B?ektwYzlyNEduUzB2UWlVb2hleEFQcUNHU3RBMTBLS1ZwV3c0cGZyNUdGQW5y?=
 =?utf-8?B?ZzkxeUpFYXBTRUd4MU1zQVk4L1NwVGVsWDhGVFprVDY0VzV3RC90YnVMajVv?=
 =?utf-8?B?S3dvK3BGRmh2NTFKRVU5cWtJVTBCRVRzRCtxWjdKaTA0RTJmSFMzdm5vcE0v?=
 =?utf-8?B?cGlnMGNQSkNsS1NUei9ub2VrcmZCVWxXTUZzM0ZxNnBJbFFBaEp2VFg0UjhY?=
 =?utf-8?B?N3BINit1M0pmc1ZySlRVN0VILzVWS3cwNEg0SkdJU0hHYnhyRk5EY1YzU0E1?=
 =?utf-8?B?TTRmY2NOOEl0OWk3MkI5RG16clRXS2M4MVFtdXUrSGF1UmhkQjFkdGRwNWE2?=
 =?utf-8?B?RklLSnpMNFJ1OGladFh3K1Y4aVBUK3o0UE11YkFYZWZxZEp5eHVGWnJUMWF5?=
 =?utf-8?B?L3E0Y0xDZHZXaXpMSlkvSy8ybVRKMkhTUmd4K3VhT0l6OTY2a2wycTRwNkhT?=
 =?utf-8?B?YmpLaFk4K1EvYzFYMU1uTkJoTEVkMTNtQ1pCUXMwcnpNSlF1MFNjSjQ1emJx?=
 =?utf-8?B?OFczUlY1cVZGbGhPNU5sbm1YeVM3Z1U3Z0ZWUVJkMFVWMi9ZTGdDTk9wdHRD?=
 =?utf-8?B?WFA0RUY5S1pXZjdEZ2NmelQ2dnFNbHFvNmNod1krekVtNWs0ZmNRT05UMHBR?=
 =?utf-8?B?ajJBK3lyL0w1a1JlOFVHbTZtSlZlTDlVQlJ0dDBsTERHT21GdytEa3kzaGN0?=
 =?utf-8?B?MGx3eWVGMmd2c1dxUU9GcVdGYmJwOHozK1NYd1NWdUN2Q0YzeTBmZGZCOGRE?=
 =?utf-8?B?UjJQUHloaURVTzAxMlZyckV2S3NpTFFUcHF1VW9Xd1BjQk53QVZzZ0hjVG1i?=
 =?utf-8?B?RSthdEdCS2ZNNUZ6N3FlWHZENkhOM2MyaWM5cWNVVlRlcExEL2ZSaGFpWU5Z?=
 =?utf-8?B?a3QwK0thalp5dHhIRDhqVXFPbFRqYW83ZmpMNVpTQWxMN1VsK2ZSNGJjYVZG?=
 =?utf-8?B?SE55Ymw3VkVQbUo4SnNUeDZXb2lkdU5NZjA2b1h3SFo1bDY3TVVYRGJNS3N0?=
 =?utf-8?B?bC9xaktUaVN6MXkvVlR4cVNKSHZZdXo4KzF5UU9NQ2lleFNHcFhBMW9RLzF5?=
 =?utf-8?B?Slc5M2s2ajlWS3Q5dFpUNXNSZUdpU1k3QVFvMDdjWURFcnY0QWRFSi9mMWcw?=
 =?utf-8?B?eTB5eGc1VzNUL3pSNlhYVk5QTG9lNUp4UnNLdzJoc0swY0xxdldWVWtHTXl2?=
 =?utf-8?B?R0d4eEQ4UGdBa2hPYnRBaGJ6dndKdkxwbkRGWjh5QlVYc2dIZlhRRTVEb0ho?=
 =?utf-8?B?bDRRQ3pUbUFicnVOa0dpblFERXJqcW44T0NIQWc1bThQbjlhVWsxSlJyZ2tN?=
 =?utf-8?B?NDhUQ2tIc2pTU0JXRlJDcWFnbnM0NVN2YjFJM0c3VHJiVkd2dUhVSHUvNm9M?=
 =?utf-8?B?QW8xOHozWFJXMk94YUp1dDZ3cmpGZVdPSDJBNFRDMHB0RkJWQVd4L2VzSy94?=
 =?utf-8?B?ekpRNXJWbnNpNzRaK3dSeTloeWgxVmtoR0NUWDBnWnJUS1lMaUo3UDNMZ0wr?=
 =?utf-8?B?RTNlTVowaE9aWUtsNjZGRzFaamk4YzJzaWxBM0FpbWhOZEZ0YWxBZ2Q1a3hO?=
 =?utf-8?Q?ysSxBf?=
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: 23 Apr 2025 12:12:09.8389
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: e293f4ca-2e85-4a39-2e72-08dd826012c4
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:
	SJ1PEPF000026C8.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR12MB9229

On Fri Apr 18, 2025 at 11:30 PM BST, dmkhn wrote:
> On Thu, Apr 17, 2025 at 01:48:27PM +0100, Alejandro Vallejo wrote:
>> Hyperlaunch mandates either a reg or module-index DT prop on nodes that
>> contain `multiboot,module" under their "compatible" prop. This patch
>> introduces a helper to generically find such index, appending the module
>> to the list of modules if it wasn't already (i.e: because it's given via
>> the "reg" prop).
>>=20
>> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
>> Signed-off-by: Alejandro Vallejo <agarciav@amd.com>
>> ---
>> v4:
>>   * Remove stray reg prop parser in libfdt-xen.h.
>>   * Remove fdt32_as_uX accessors.
>>   * Brough fdt_prop_as_u32() accesor from later patches.
>>     * So it can be used in place of a hardcoded fdt32_as_u32().
>>   * Limited MAX_NR_BOOTMODS to INT_MAX.
>>   * Preserved BOOTMOD_XEN on module append logic.
>>   * Add missing bounds check to module-index parsed in multiboot module =
helper.
>>   * Converted idx variable to uint32_t for better bounds checking.
>>   * Braces from switch statement to conform to coding style.
>>   * Added missing XENLOG_X.
>>   * Print address_cells and size_cells on error parsing reg properties.
>>   * Added (transient) missing declaration for extern helper.
>>     * becomes static on the next patch.
>> ---
>>  xen/common/domain-builder/fdt.c     | 162 ++++++++++++++++++++++++++++
>>  xen/common/domain-builder/fdt.h     |   2 +
>>  xen/include/xen/domain-builder.h    |   3 +
>>  xen/include/xen/libfdt/libfdt-xen.h |  11 ++
>>  4 files changed, 178 insertions(+)
>>=20
>> diff --git a/xen/common/domain-builder/fdt.c b/xen/common/domain-builder=
/fdt.c
>> index b5ff8220da..d73536fed6 100644
>> --- a/xen/common/domain-builder/fdt.c
>> +++ b/xen/common/domain-builder/fdt.c
>> @@ -13,6 +13,168 @@
>>=20
>>  #include "fdt.h"
>>=20
>> +/*
>> + * Unpacks a "reg" property into its address and size constituents.
>> + *
>> + * @param prop          Pointer to an FDT "reg" property.
>> + * @param address_cells Number of 4-octet cells that make up an "addres=
s".
>> + * @param size_cells    Number of 4-octet cells that make up a "size".
>> + * @param p_addr[out]   Address encoded in the property.
>> + * @param p_size[out]   Size encoded in the property.
>> + * @returns             -EINVAL on malformed property, 0 otherwise.
>> + */
>> +static int __init read_fdt_prop_as_reg(const struct fdt_property *prop,
>
> I would do s/read_fdt_prop_as_reg/fdt_prop_as_reg/ similar to fdt_prop_as=
_u32()
> below.

Yes, that sounds better.

>
>> +                                       int address_cells, int size_cell=
s,
>> +                                       uint64_t *p_addr, uint64_t *p_si=
ze)
>> +{
>> +    const fdt32_t *cell =3D (const fdt32_t *)prop->data;
>> +    uint64_t addr, size;
>> +
>> +    if ( fdt32_to_cpu(prop->len) !=3D
>> +         (address_cells + size_cells) * sizeof(*cell) )
>> +    {
>> +        printk(XENLOG_ERR "  cannot read reg %lu+%lu from prop len %u\n=
",
>> +            address_cells * sizeof(*cell), size_cells * sizeof(*cell),
>> +            fdt32_to_cpu(prop->len));
>> +        return -EINVAL;
>> +    }
>> +
>> +    switch ( address_cells )
>> +    {
>> +    case 1:
>> +        addr =3D fdt32_to_cpu(*cell);
>> +        break;
>> +    case 2:
>> +        addr =3D fdt64_to_cpu(*(const fdt64_t *)cell);
>> +        break;
>> +    default:
>> +        printk(XENLOG_ERR "  unsupported address_cells=3D%d\n", address=
_cells);
>> +        return -EINVAL;
>> +    }
>> +
>> +    cell +=3D address_cells;
>> +    switch ( size_cells )
>> +    {
>> +    case 1:
>> +        size =3D fdt32_to_cpu(*cell);
>> +        break;
>> +    case 2:
>> +        size =3D fdt64_to_cpu(*(const fdt64_t *)cell);
>> +        break;
>> +    default:
>> +        printk(XENLOG_ERR "  unsupported size_cells=3D%d\n", size_cells=
);
>> +        return -EINVAL;
>> +    }
>> +
>> +    *p_addr =3D addr;
>> +    *p_size =3D size;
>> +
>> +    return 0;
>> +}
>> +
>> +/*
>> + * Locate a multiboot module given its node offset in the FDT.
>> + *
>> + * The module location may be given via either FDT property:
>> + *     * reg =3D <address, size>
>> + *         * Mutates `bi` to append the module.
>> + *     * module-index =3D <idx>
>> + *         * Leaves `bi` unchanged.
>> + *
>> + * @param fdt           Pointer to the full FDT.
>> + * @param node          Offset for the module node.
>> + * @param address_cells Number of 4-octet cells that make up an "addres=
s".
>> + * @param size_cells    Number of 4-octet cells that make up a "size".
>> + * @param bi[inout]     Xen's representation of the boot parameters.
>> + * @return              -EINVAL on malformed nodes, otherwise
>> + *                      index inside `bi->mods`
>> + */
>> +int __init fdt_read_multiboot_module(const void *fdt, int node,
>> +                                     int address_cells, int size_cells,
>> +                                     struct boot_info *bi)
>> +{
>> +    const struct fdt_property *prop;
>> +    uint64_t addr, size;
>> +    int ret;
>> +    uint32_t idx;
>> +
>> +    if ( fdt_node_check_compatible(fdt, node, "multiboot,module") )
>> +    {
>> +        printk(XENLOG_ERR "  bad module. multiboot,module not found");
>> +        return -ENODATA;
>> +    }
>> +
>> +    /* Location given as a `module-index` property. */
>> +    if ( (prop =3D fdt_get_property(fdt, node, "module-index", NULL)) )
>> +    {
>> +        if ( fdt_get_property(fdt, node, "reg", NULL) )
>> +        {
>> +            printk(XENLOG_ERR "  found both reg and module-index for mo=
dule\n");
>> +            return -EINVAL;
>> +        }
>> +        if ( (ret =3D fdt_prop_as_u32(prop, &idx)) )
>> +        {
>> +            printk(XENLOG_ERR "  bad module-index prop\n");
>> +            return ret;
>> +        }
>> +        if ( idx >=3D MAX_NR_BOOTMODS )
>> +        {
>> +            printk(XENLOG_ERR "  module-index overflow. %s=3D%u\n",
>> +                   STR(MAX_NR_BOOTMODS), MAX_NR_BOOTMODS);
>> +            return -EINVAL;
>> +        }
>> +
>> +        return idx;
>> +    }
>> +
>> +    /* Otherwise location given as a `reg` property. */
>> +    if ( !(prop =3D fdt_get_property(fdt, node, "reg", NULL)) )
>> +    {
>> +        printk(XENLOG_ERR "  no location for multiboot,module\n");
>> +        return -EINVAL;
>> +    }
>> +    if ( fdt_get_property(fdt, node, "module-index", NULL) )
>> +    {
>> +        printk(XENLOG_ERR "  found both reg and module-index for module=
\n");
>> +        return -EINVAL;
>> +    }
>> +
>> +    ret =3D read_fdt_prop_as_reg(prop, address_cells, size_cells, &addr=
, &size);
>> +    if ( ret < 0 )
>> +    {
>> +        printk(XENLOG_ERR "  failed reading reg for multiboot,module\n"=
);
>> +        return -EINVAL;
>> +    }
>> +
>> +    idx =3D bi->nr_modules;
>> +    if ( idx > MAX_NR_BOOTMODS )
>> +    {
>> +        /*
>> +         * MAX_NR_BOOTMODS must fit in 31 bits so it's representable in=
 the
>> +         * positive side of an int; for the return value.
>> +         */
>> +        BUILD_BUG_ON(MAX_NR_BOOTMODS > (uint64_t)INT_MAX);
>> +        printk(XENLOG_ERR "  idx=3D%u exceeds len=3D%u\n", idx, MAX_NR_=
BOOTMODS);
>> +        return -EINVAL;
>> +    }
>> +
>> +    /*
>> +     * Append new module to the existing list
>> +     *
>> +     * Note that bi->nr_modules points to Xen itself, so we must shift =
it first
>> +     */
>> +    bi->nr_modules++;
>> +    bi->mods[bi->nr_modules] =3D bi->mods[idx];
>> +    bi->mods[idx] =3D (struct boot_module){
>> +        .start =3D addr,
>> +        .size =3D size,
>> +    };
>> +
>> +    printk(XENLOG_INFO "  module[%u]: addr %lx size %lx\n", idx, addr, =
size);
>> +
>> +    return idx;
>> +}
>> +
>>  static int __init find_hyperlaunch_node(const void *fdt)
>>  {
>>      int hv_node =3D fdt_path_offset(fdt, "/chosen/hypervisor");
>> diff --git a/xen/common/domain-builder/fdt.h b/xen/common/domain-builder=
/fdt.h
>> index 955aead497..8c98a256eb 100644
>> --- a/xen/common/domain-builder/fdt.h
>> +++ b/xen/common/domain-builder/fdt.h
>> @@ -2,6 +2,8 @@
>>  #ifndef __XEN_DOMAIN_BUILDER_FDT_H__
>>  #define __XEN_DOMAIN_BUILDER_FDT_H__
>>=20
>> +#include <xen/libfdt/libfdt-xen.h>
>> +
>>  struct boot_info;
>>=20
>>  /* hyperlaunch fdt is required to be module 0 */
>> diff --git a/xen/include/xen/domain-builder.h b/xen/include/xen/domain-b=
uilder.h
>> index ac2b84775d..ace6b6875b 100644
>> --- a/xen/include/xen/domain-builder.h
>> +++ b/xen/include/xen/domain-builder.h
>> @@ -5,5 +5,8 @@
>>  struct boot_info;
>>=20
>>  void builder_init(struct boot_info *bi);
>> +int fdt_read_multiboot_module(const void *fdt, int node,
>> +                              int address_cells, int size_cells,
>> +                              struct boot_info *bi)
>>=20
>>  #endif /* __XEN_DOMAIN_BUILDER_H__ */
>> diff --git a/xen/include/xen/libfdt/libfdt-xen.h b/xen/include/xen/libfd=
t/libfdt-xen.h
>> index a5340bc9f4..deafb25d98 100644
>> --- a/xen/include/xen/libfdt/libfdt-xen.h
>> +++ b/xen/include/xen/libfdt/libfdt-xen.h
>> @@ -12,6 +12,17 @@
>>  #define LIBFDT_XEN_H
>>=20
>>  #include <xen/libfdt/libfdt.h>
>> +#include <xen/errno.h>
>> +
>> +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;
>> +
>> +    *val =3D fdt32_to_cpu(*(const fdt32_t *)prop->data);
>> +    return 0;
>> +}
>
> My understanding is domain builder establishes its own shims around libfd=
t so
> libfdt is kept unmodified and it is easier to pick up libfdt updates.
>
> So, IMO, this function should reside in xen/common/domain-builder/fdt.c
>
> Thoughts?

Ugh. Too much code motion is not good for your head. I did mean to move
them all (I mentioned it in an earlier response to Jan, I think). Will
do for good this time.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 12:17:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 12:17:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.964556.1355315 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7Z29-0004H1-TR; Wed, 23 Apr 2025 12:16:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 964556.1355315; Wed, 23 Apr 2025 12:16: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 1u7Z29-0004Gu-Pd; Wed, 23 Apr 2025 12:16:57 +0000
Received: by outflank-mailman (input) for mailman id 964556;
 Wed, 23 Apr 2025 12:16: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=VjMx=XJ=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u7Z28-0004Go-6o
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 12:16:56 +0000
Received: from NAM10-BN7-obe.outbound.protection.outlook.com
 (mail-bn7nam10on20613.outbound.protection.outlook.com
 [2a01:111:f403:2009::613])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d6d89395-203c-11f0-9eb0-5ba50f476ded;
 Wed, 23 Apr 2025 14:16:53 +0200 (CEST)
Received: from SN6PR05CA0036.namprd05.prod.outlook.com (2603:10b6:805:de::49)
 by CYYPR12MB9013.namprd12.prod.outlook.com (2603:10b6:930:c2::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.35; Wed, 23 Apr
 2025 12:16:49 +0000
Received: from SN1PEPF000397B1.namprd05.prod.outlook.com
 (2603:10b6:805:de:cafe::94) by SN6PR05CA0036.outlook.office365.com
 (2603:10b6:805:de::49) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8678.13 via Frontend Transport; Wed,
 23 Apr 2025 12:16:49 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SN1PEPF000397B1.mail.protection.outlook.com (10.167.248.55) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Wed, 23 Apr 2025 12:16:48 +0000
Received: from localhost (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, 23 Apr
 2025 07:16:45 -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: d6d89395-203c-11f0-9eb0-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=MJizsabb43Zr9y/67Ddx6qgFyOUNqago//0f2VEQuxU8x1vn3oF/hcKNc2DETGbPvDXowoQr0zFMlzdc5MESCM4sOoukfhOcpR4f32yFrpC05N8DvteeaNyS6Mn/0wHgS2CXoiZpX3iCvK72V4ZNbLAF6yBnsLiiMXhbFFxbBQHoCTGNXMRJHbA1HdfXOh3KMzI7kdgA69LnI77RyAItJ7vV/+g382bQMyjOWx8NkWLW+a+dycmut7++83fjU85KOT0DySFsPwRehz1mlQ1zFyOMt8r6kuVCYrm2Hi/nRJvd02IhclxPQJufRLJe+n9QMq+SVcuWtQEQMZKtK8AHtg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=jAgPtEtxxKwq8OVij1yS0qQM8r383ewxPB/osIrdb7o=;
 b=saHU/zGpgfJJUkLYDc9KrA6kqtFI/chqmf+CAD5zWwoSxTepB3WbadtEhbLWIhA/muGrgf1epINWQB7iSP9shOIdV+tESABgpJ5xZCzBrWMl9ReTS0H+nW4jOSOBXCSI8/4Kp3gYmFu1XGgyv1vXc1QC1an8hHGzpIZ2K1jIztIc1RkVg+DA3VbuzwbIDFBIsI7ZZayvHpSsXqzZnD7qC44tAgELZLWr9S6cpJj9IIqNBKGhRAo1H2vDipaSoEkXbisMzqWU9E51qAaaiRO+dY/DemL84ULxwqDNkTbnZyC16V5b1Hrm6A4RgJIuUQPBp9ByIDq+JY58hnfjQ6zjTg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=proton.me 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=jAgPtEtxxKwq8OVij1yS0qQM8r383ewxPB/osIrdb7o=;
 b=a4nT5B+pGgVasDNb3msCfmMoxMBJfgDVViEHYDSZhgUp6ASXg7tUldBnxHvMhONv3JSUv5rcyPbd6r00hMeZSeny9gYdP5kAOdv1F7fF11IdDtcnOVeSkKq64CyjhdrVJ9U2Nc1StVGvvzj2+m5SvQ7Qe49NmE5KmIbvgMRu8Qo=
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
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Wed, 23 Apr 2025 13:16:43 +0100
Message-ID: <D9E0F60G4WKY.IUI5UKTDP7Y@amd.com>
From: Alejandro Vallejo <agarciav@amd.com>
To: <dmkhn@proton.me>
CC: <xen-devel@lists.xenproject.org>, "Daniel P. Smith"
	<dpsmith@apertussolutions.com>, Jan Beulich <jbeulich@suse.com>, "Andrew
 Cooper" <andrew.cooper3@citrix.com>, =?utf-8?q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, "Michal
 Orzel" <michal.orzel@amd.com>, Julien Grall <julien@xen.org>, "Stefano
 Stabellini" <sstabellini@kernel.org>, Jason Andryuk <jason.andryuk@amd.com>
Subject: Re: [PATCH v4 06/13] x86/hyperlaunch: locate dom0 kernel with
 hyperlaunch
X-Mailer: aerc 0.20.1
References: <20250417124844.11143-1-agarciav@amd.com>
 <20250417124844.11143-7-agarciav@amd.com> <aALUlz6ZgwqSb0tD@kraken>
In-Reply-To: <aALUlz6ZgwqSb0tD@kraken>
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: SN1PEPF000397B1:EE_|CYYPR12MB9013:EE_
X-MS-Office365-Filtering-Correlation-Id: 0d8b0c7e-3643-4ade-7b62-08dd8260b8c1
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?QWtEb0JCclFvWUxQa0VMUG1QWE9aK3V6NXAzdVUvN1RIN1hDZ29LakJsYVU1?=
 =?utf-8?B?eUluMGhYR1RvRC9obm9Za2VKWUxOY3B0djdHbW9QclFCdnRRZWdQQkhKaEdI?=
 =?utf-8?B?dW94anJIVXJDck80UkFvQ0R3QzhSSC9rTGxEWERIa1NSQXB0bVhwNkxYUk1h?=
 =?utf-8?B?UFlHWWQvUDRmbWd2NWx3b0tQdmM1NWdPV3B5bjYxL3JSc0V1RTdERFVwNWcz?=
 =?utf-8?B?U3ZmREUwTUxGNVlNaTlrM0MrWU1yNnU4aEgvd0JkTnZqUXc1N2RrbDNxWW5k?=
 =?utf-8?B?cndtQXNad3hLekVhcmxCZ1RVbnhpZ0psdm9JcHVmb1dTYlJBYit4dXBKZ3h5?=
 =?utf-8?B?aWw4N01TWlZVNCtKVmQ0cC9rWFloNk44SjIzWlYzTi9ZZFJOREp0RzJzYmU1?=
 =?utf-8?B?dUtJTmV2c1VRQlVIVUFlb01rY1RWQ3ZzODFiWDE5M3oycXQvejdlajI4UHdX?=
 =?utf-8?B?SG4xNGNCRTc2bEppMHN1K3Y3Tno4L1JXcXVuM3pxS3BPbWV3UTg5VVUwcWgz?=
 =?utf-8?B?L0trU1FKaEpWalVIOVRlWC9POE1EZXN3UFQrblFTL0FxZzZmUmU4V2Jtc2w1?=
 =?utf-8?B?RFFhcVErb3hNWmZnek9LdUxMd3lIUVFXcEpPY00rZ0g4emZIbUN2OUFZQmN2?=
 =?utf-8?B?b2ZDNTBWaDdXZnhhTzZqNW1tcHR0L0ZFN3NITmkxdDY4Y3N4d2w3ZzNraTlP?=
 =?utf-8?B?aFVDMTlwdnp0cVVGRTduS1gyeTQzVTZJTFdzcFdtMW9YTGY1NzRJc2d6aVBI?=
 =?utf-8?B?RC9PUkFWUGRlKzFyRmsvbmROUDBNbFQrQU5TZUhxcTZlWXNmM1dhQzJkVmZt?=
 =?utf-8?B?WHlORlZ6WEo0clltamhScWJ5NjA5amNNanJaejNTbHlhSXRQWU1Wd1c4bms0?=
 =?utf-8?B?czlRL09pWVJxOENleFYvQ3FvM3g5WFJwSGF2ZWtucStBTElDUTRKM2FTMlY5?=
 =?utf-8?B?TmJJRHFiQ29wN0c1NWhtbHdUZFU3NmU3M3Y4WkZwR2ljS3lWYUVhTzVCMTVK?=
 =?utf-8?B?WnZIN0srdDYwKzQwSnVtYnp4ZTlQSUgrWm1URnFpZDdlamR4UlBtaU11NlpH?=
 =?utf-8?B?dW05SGFkeUtsU2dNdmFtQU80S0tIZ29ZcjhMTzlrSnRtbmp6eFZYaW8xZkhW?=
 =?utf-8?B?bFRPSmRTUE5ENzBPaU1QRHFLVE5hSkFCU2lBK21UM05TWkc1RkN0MzJlbWh5?=
 =?utf-8?B?a29LTzlhRTNKSjZ5K2U0R0FRZFBwS2V0RW84azV6T0tUNG1JSXlaUnQ1d0wy?=
 =?utf-8?B?cXhmWXk2enorb0NadlpUcFErd0xaNjgwdWYwZEFqZEgxQkxpczVGNGtucDlU?=
 =?utf-8?B?VlBxUnFaNEpUcTB3Y0pjQlI4YTFRcU5NUGZ2REZWY09uSW1IY1dudit3Y2FM?=
 =?utf-8?B?RCtFbGJhdWpPVStIdmdVa3Z2eVVWeW0vRlMzVFY1MExJb0NUMEFBNXFQdkZB?=
 =?utf-8?B?WG90Qm5vSEJYQkwxOEFLaUR3WGdFZ2FRN2R4R3hqSHdOYUkzRkcrRXB3YkdO?=
 =?utf-8?B?aDgrcEZqNm4xejZhdHdGMnROSTRUcTZKUFZGK3h0NXRtTDhzc0E0WmtWSlFq?=
 =?utf-8?B?Z3dVWTZ5cDRQOTVaYXUvcVk1MEdYUk1JdGJaRmxDWHhrTHlTYWxtelVwS2tV?=
 =?utf-8?B?aGxiaDZMNlNmejdiMnBOWllSeFlGcis0TG05NWlJcW9UQ2lnK3dNRjMrZmNm?=
 =?utf-8?B?YkVMOTVrN1JQSDROS3U0WitnZCt5Uko2N0V1K1EyamFubDJKeE1ZYzN0dVBI?=
 =?utf-8?B?bEkrY0dXRUFKYWtuQmg2UzlxK2E1cmQrYzg1eU5WK0FSNzIxMllHbnk0SU4z?=
 =?utf-8?B?blMxNDNqcUlubDVCQS96aFZ4WTRUelBNMyt0NnY0Nk5UOG9MT0VCQ0piWDVS?=
 =?utf-8?B?aWV3b3NqUFQ4WTlhZlQ3VkNkSlBlMWZiN2p0RVJSM2dSOGF3bE80QmRLaEY0?=
 =?utf-8?B?c2NPRm4yTmZyaFJhQTZJczdMYkNIMjNINFVWSndDU1ZITDdUOGNiYzdyblFD?=
 =?utf-8?B?eUJaTk9kdmdRVGFMUTZlOUFRdEZUbytTZGdGSUZvcDBrUGZWNnV1NWxJYUI5?=
 =?utf-8?Q?4jxi1h?=
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: 23 Apr 2025 12:16:48.4012
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 0d8b0c7e-3643-4ade-7b62-08dd8260b8c1
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:
	SN1PEPF000397B1.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CYYPR12MB9013

On Fri Apr 18, 2025 at 11:39 PM BST, dmkhn wrote:
> On Thu, Apr 17, 2025 at 01:48:28PM +0100, Alejandro Vallejo wrote:
>> From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
>>=20
>> Look for a subnode of type `multiboot,kernel` within a domain node. If
>> found, locate it using the multiboot module helper to generically ensure
>> it lives in the module list. If the bootargs property is present and
>> there was not an MB1 string, then use the command line from the device
>> tree definition.
>>=20
>> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
>> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
>> Signed-off-by: Alejandro Vallejo <agarciav@amd.com>
>> ---
>> v4:
>>   * Stop printing on the fallback path of builder_init().
>>     It's in fact the most common path and just adds noise.
>>   * Add missing XENLOG_X.
>>   * Simplified check to log error on nr_domains !=3D 1.
>>   * s/XENLOG_ERR/XENLOG_WARNING/ on duplicate kernel.
>>   * Turned foo =3D=3D 0 into !foo in the "multiboot,kernel" check
>> ---
>>  xen/arch/x86/setup.c             |  5 ---
>>  xen/common/domain-builder/core.c |  9 +++++
>>  xen/common/domain-builder/fdt.c  | 64 ++++++++++++++++++++++++++++++--
>>  xen/include/xen/domain-builder.h |  3 --
>>  4 files changed, 70 insertions(+), 11 deletions(-)
>>=20
>> diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
>> index ccc57cc70a..4f669f3c60 100644
>> --- a/xen/arch/x86/setup.c
>> +++ b/xen/arch/x86/setup.c
>> @@ -1285,11 +1285,6 @@ void asmlinkage __init noreturn __start_xen(void)
>>=20
>>      builder_init(bi);
>>=20
>> -    /* Find first unknown boot module to use as dom0 kernel */
>> -    i =3D first_boot_module_index(bi, BOOTMOD_UNKNOWN);
>> -    bi->mods[i].type =3D BOOTMOD_KERNEL;
>> -    bi->domains[0].kernel =3D &bi->mods[i];
>> -
>>      if ( pvh_boot )
>>      {
>>          /* pvh_init() already filled in e820_raw */
>> diff --git a/xen/common/domain-builder/core.c b/xen/common/domain-builde=
r/core.c
>> index 3b062e85ec..924cb495a3 100644
>> --- a/xen/common/domain-builder/core.c
>> +++ b/xen/common/domain-builder/core.c
>> @@ -54,6 +54,15 @@ void __init builder_init(struct boot_info *bi)
>>=20
>>          printk(XENLOG_INFO "  number of domains: %u\n", bi->nr_domains)=
;
>>      }
>> +    else
>> +    {
>> +        /* Find first unknown boot module to use as dom0 kernel */
>> +        unsigned int i =3D first_boot_module_index(bi, BOOTMOD_UNKNOWN)=
;
>> +
>> +        bi->mods[i].type =3D BOOTMOD_KERNEL;
>> +        bi->domains[0].kernel =3D &bi->mods[i];
>> +        bi->nr_domains =3D 1;
>> +    }
>>  }
>>=20
>>  /*
>> diff --git a/xen/common/domain-builder/fdt.c b/xen/common/domain-builder=
/fdt.c
>> index d73536fed6..1fae6add3b 100644
>> --- a/xen/common/domain-builder/fdt.c
>> +++ b/xen/common/domain-builder/fdt.c
>> @@ -89,9 +89,9 @@ static int __init read_fdt_prop_as_reg(const struct fd=
t_property *prop,
>>   * @return              -EINVAL on malformed nodes, otherwise
>>   *                      index inside `bi->mods`
>>   */
>> -int __init fdt_read_multiboot_module(const void *fdt, int node,
>> -                                     int address_cells, int size_cells,
>> -                                     struct boot_info *bi)
>> +static int __init fdt_read_multiboot_module(const void *fdt, int node,
>> +                                            int address_cells, int size=
_cells,
>> +                                            struct boot_info *bi)
>>  {
>>      const struct fdt_property *prop;
>>      uint64_t addr, size;
>> @@ -175,6 +175,52 @@ int __init fdt_read_multiboot_module(const void *fd=
t, int node,
>>      return idx;
>>  }
>>=20
>> +static int __init process_domain_node(
>> +    struct boot_info *bi, const void *fdt, int dom_node)
>> +{
>> +    int node;
>> +    struct boot_domain *bd =3D &bi->domains[bi->nr_domains];
>> +    const char *name =3D fdt_get_name(fdt, dom_node, NULL) ?: "unknown"=
;
>> +    int address_cells =3D fdt_address_cells(fdt, dom_node);
>> +    int size_cells =3D fdt_size_cells(fdt, dom_node);
>> +
>> +    fdt_for_each_subnode(node, fdt, dom_node)
>> +    {
>> +        if ( !fdt_node_check_compatible(fdt, node, "multiboot,kernel") =
)
>
> Suggest to restructure the code to reduce levels of indentation, e.g.:
>
>            int idx;
>
>            if ( fdt_node_check_compatible(fdt, node, "multiboot,kernel") =
)
>                continue;
>
>            if ( bd->kernel )
>               ...
>

This hunk checking for "multiboot,kernel" is part of an if-elseif in a
later patch that also checks for "multiboot,ramdisk", so we can't just
do an early continue here without forcing a bigger diff later on.

>
>> +        {
>> +            int idx;
>> +
>> +            if ( bd->kernel )
>> +            {
>> +                printk(XENLOG_WARNING
>> +                       "  duplicate kernel for domain %s\n", name);
>> +                continue;
>> +            }
>> +
>> +            idx =3D fdt_read_multiboot_module(fdt, node, address_cells,
>> +                                            size_cells, bi);
>> +            if ( idx < 0 )
>> +            {
>> +                printk(XENLOG_ERR
>> +                       "  failed processing kernel for domain %s\n", na=
me);
>> +                return idx;
>> +            }
>> +
>> +            printk(XENLOG_INFO "  kernel: multiboot-index=3D%d\n", idx)=
;
>> +            bi->mods[idx].type =3D BOOTMOD_KERNEL;
>> +            bd->kernel =3D &bi->mods[idx];
>> +        }
>> +    }
>> +
>> +    if ( !bd->kernel )
>> +    {
>> +        printk(XENLOG_ERR "error: no kernel assigned to domain\n");
>
> Add domain name printout similar to above logging?

Good point.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 12:31:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 12:31:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.964571.1355325 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7ZG9-0007nw-4j; Wed, 23 Apr 2025 12:31:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 964571.1355325; Wed, 23 Apr 2025 12:31: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 1u7ZG9-0007np-17; Wed, 23 Apr 2025 12:31:25 +0000
Received: by outflank-mailman (input) for mailman id 964571;
 Wed, 23 Apr 2025 12:31: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=rvAI=XJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u7ZG8-0007nj-Kj
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 12:31:24 +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 dd10a0ee-203e-11f0-9ffb-bf95429c2676;
 Wed, 23 Apr 2025 14:31:21 +0200 (CEST)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-43ede096d73so46741005e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 23 Apr 2025 05:31:22 -0700 (PDT)
Received: from [10.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-44092d4158esm24130665e9.38.2025.04.23.05.31.21
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 23 Apr 2025 05:31:21 -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: dd10a0ee-203e-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745411482; x=1746016282; 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=GBcS9G1uY7lCuqevO1VuO5IR3pR48cqI8az/OBMeaTw=;
        b=Ik9Xw9ObnyBkGCeasWxcZfKuraQUoAFuBmkOz/wjLgr8meZfgJtiXKuvnOnwLJCRuV
         60fuiIRJspYNu0FO9FEKrPLfUWShezMo5gCwCbbc3PmUNyUZzDyUi2lBY9w2/oFerPa4
         qL9aq7ViSa0z879Yeea6qhvgBxRP4k2UptUGRhl7wxS7pO0J4+xZ8nKdQZfHyXgaF4Ug
         uei7eqjWFps1chTR9XgUhO+np/4k4EG3RTEoXQ/RMlsjQfxi+BveSQwNhwvDFx0AyKlr
         Y7sVM1RpR50j7uDI5nKJGLZOo/64pnjIsU1Dkr29nlwrkwQLpiKCkuK0TeGnD6XBWHGC
         HSYA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745411482; x=1746016282;
        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=GBcS9G1uY7lCuqevO1VuO5IR3pR48cqI8az/OBMeaTw=;
        b=stqE3zPsjL6DbsaDPBYWkUxS1dnHhkCvIoYCiOFdzSr5EMHivK7aBo2kWnuywlKEQB
         OWtLLUoNt9SAPZCUsNQ8nSrX4+/C3jFXz/x7mm4Yr/s0Z6oH08gIznacGrkwQ9SoP1vy
         Azf8GC6WbcaRIne7PiDfx5a6V21iNOEWQLt/2bj1nHUtp7NTIY5PZe4jQ1upYSPKryNN
         5RSV6jUOvRIJMlhpfDXeefi9Ve7oO8/kLTceianHUs7S5w9V1at9Pio98Ertn12HvDU/
         KKMZutfGM2VzCMXo6LP/RSk32qCfmsLBxtpwER38q37B6J3rLLKxQah2BF/NKETCY+yq
         gy0g==
X-Forwarded-Encrypted: i=1; AJvYcCUj+3gL+Eg5WYnYnVp5X2XN9sie5yVR1kAQdJcDwCTD87LgDijBmBu7/w5cz6Wq1czsufNkMgcVxpI=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy9X/4pYl6HXTK5FsqsRUnDsGtsSqU0089wTT7ob1kkjNU1D2sL
	iwu51GO6MOhgXhyVROxB+ABG7hhV2FrOUFTHMRX4lTBQaFqCJCyhAwM3+5Woeg==
X-Gm-Gg: ASbGnct6rnXO+dl1l4vjSLNho3h6kdVJuc9KDScCSDd81wvSGLWuj+TXdrxQVJcAdjF
	YKNisDPGIUdXp1aopf6DmgWiEkENQYsXlnvg0mhqR/2AnPCx9r2/UhPZprCm8qHTn0UAN5GBasn
	DDihacnnymIWxEKB7k2Sew7+NUPQI3N0dWWVMuvUMkSA145aLaD/e4mvhT+/UEXyw3GJFOjoOTe
	Yze1Mmk34NGisDN5u5jEN3H596onV0rkYiOf0NOXCy5dvQWXoJ9LO7zZWvufCEDlMvs9ByR8fjw
	0gANDDKZs75wGhfz7pvBzKMVjL2dfK/nkLtI6+fzFAYcpImO9THrzhiScEIwtaFpdai/xSCnP1N
	gq73A2mEiBzw5YnaTRxCVCu2gtGazL8D4h5qM
X-Google-Smtp-Source: AGHT+IGXWMEnQlOXV+AULJQx5JZOdJxXzJMp5XCrUzqylx3RkgcsDzbntMlXOrQOMIv7cBvMbzR5Qw==
X-Received: by 2002:a05:600c:3485:b0:43d:abd:ad1c with SMTP id 5b1f17b1804b1-4406ab7b67bmr155986095e9.6.1745411481785;
        Wed, 23 Apr 2025 05:31:21 -0700 (PDT)
Message-ID: <1c25b268-3229-4d98-8d3e-10d5610e367c@suse.com>
Date: Wed, 23 Apr 2025 14:31:20 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86emul: adjust BSF/BSR behavior as to EFLAGS
From: Jan Beulich <jbeulich@suse.com>
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: <df3f3203-d660-4b7d-b771-871d16a8ec43@suse.com>
 <fc49cdec-69aa-4ae0-8d8e-cf6d6ba8fb74@citrix.com>
 <23a4d3fb-f700-4830-959f-d67b4d4cd980@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: <23a4d3fb-f700-4830-959f-d67b4d4cd980@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 23.04.2025 13:09, Jan Beulich wrote:
> On 23.04.2025 11:49, Andrew Cooper wrote:
>> On 23/04/2025 7:13 am, Jan Beulich wrote:
>>> @@ -5286,25 +5284,23 @@ x86_emulate(
>>>              else if ( !dst.val )
>>>                  _regs.eflags |= X86_EFLAGS_ZF;
>>>          }
>>> -        else if ( zf )
>>> +        else
>>>          {
>>> -            _regs.eflags |= X86_EFLAGS_ZF;
>>> -            dst.type = OP_NONE;
>>> +            emulate_2op_SrcV_srcmem("bsf", src, dst, _regs.eflags);
>>> +            if ( _regs.eflags & X86_EFLAGS_ZF )
>>> +                dst.type = OP_NONE;
>>
>> On Intel, BSF/BSR writes back the destination register.  Notably, it
>> gets 0 extended per normal rules,
> 
> That's also only on "older processors", as per the other footnote.
> 
>> which is why you have to be extra
>> careful when using the trick of preloading it with -1; the result must
>> be interpreted as (int) even over a 64bit operation.
>>
>> This needs an amd_like() qualification to override dst.type.  This
>> aspect genuinely is different between them.  Alternatively, we might be
>> able to set the operand size always to 64 and write back the entire
>> register as the processor gave to us, but I'm not sure if that will have
>> effects elsewhere.
> 
> Besides (as per above), amd_like() not covering all cases, this would
> then further need special treatment for 16-bit opsize. Plus promoting
> to 64-bit would require manually clipping the result to 5 bits when
> the original size wants 64-bit. That's imo far more complications
> than gains.

I guess I viewed this as more complicated than it is: We'd merely need
to zero-extend the source operand from opsize to 64 bits. The one
uncertainty there would be whether the undefined arithmetic flags
couldn't be dependent on operand size.

Tangential to this: Software having probed for the specific behavior of
the two insns (EFLAGS and/or destination register setting for a zero
source) will break when migrated. Therefore in principle we ought to
prevent such migrations. Thoughts there?

Jan


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 12:42:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 12:42:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.964584.1355334 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7ZQY-0001Up-31; Wed, 23 Apr 2025 12:42:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 964584.1355334; Wed, 23 Apr 2025 12:42: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 1u7ZQX-0001Ui-W6; Wed, 23 Apr 2025 12:42:09 +0000
Received: by outflank-mailman (input) for mailman id 964584;
 Wed, 23 Apr 2025 12:42: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=mwje=XJ=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1u7ZQW-0001Ub-Ou
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 12:42:09 +0000
Received: from fhigh-b1-smtp.messagingengine.com
 (fhigh-b1-smtp.messagingengine.com [202.12.124.152])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5c578fac-2040-11f0-9eb0-5ba50f476ded;
 Wed, 23 Apr 2025 14:42:05 +0200 (CEST)
Received: from phl-compute-02.internal (phl-compute-02.phl.internal
 [10.202.2.42])
 by mailfhigh.stl.internal (Postfix) with ESMTP id 479F825401BE;
 Wed, 23 Apr 2025 08:42:04 -0400 (EDT)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-02.internal (MEProxy); Wed, 23 Apr 2025 08:42:04 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed,
 23 Apr 2025 08:42:02 -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: 5c578fac-2040-11f0-9eb0-5ba50f476ded
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=fm2; t=1745412124;
	 x=1745498524; bh=+FhDc80nqA9Z+6EjdE9I6no7eFp09OfAK/45bAiFApA=; b=
	eacT8XikwDqH9TOz9N6Y6orWwYjzuk510/HOBx1jqj5rlSUb2CmJnoYUlmDtQ3ev
	nYVdhGao4md0PzNFyTcoiXIrAI1aGfKE12YDK9Yk3s8wkB7AqekG0NW+MU7drPcs
	C4VOj/60C+4ycAZxs0Q13FCHxi5x6e+Vl4ijr0PoYR30+CG2zG1lW+OJFwiV3tS9
	QACqsvIdDNyU4B79i4peU5rXM/mtprcEKjfD+c2UTETlnszTWU6Lzajk5edj7RVD
	zAh2GDQEB3ieG9nGEssBFC8bGkFEb7u2sRIBpY2JaXY47R9xNggAZuyH7QSaimsc
	9OaLy6YND1AsTqgmwawNDQ==
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=fm2; t=
	1745412124; x=1745498524; bh=+FhDc80nqA9Z+6EjdE9I6no7eFp09OfAK/4
	5bAiFApA=; b=tEtReem+EZvdoDvG5WX4rGVMg/qWVA4jtTpnqUEsIUX1joJg+tx
	aqDneA0w49cD+2xAlNHsJNmSeQr1bAOUdE2EHHvAjexMkzCSo1zT78NZmm/4H8j7
	zRdlc3tZlaZM6T6Z052toywwEocNaW+P39rz4yQA6vqE9Wqho/U2a4EJZ+a3s58U
	paYJ/Pii7xnk5RDz8NQoL65aGf0TUPtquHUOPs+nOBBBSRI7+DUsI6zBdwk2iOCQ
	E1a8P390+ScOrw58FsfG5oo7nOxgywaLlWuUNo1NRAZi/GQ0hNNFZ1qkjiDaonJl
	5nV5lpEVUlqJHBwxUsxu8MK/3R9uilbiM2g==
X-ME-Sender: <xms:G-AIaN2xmV9oTAO_aHF4XZS5rd_QlPBWxY3YUbeu6eYqGxoxNVLC1g>
    <xme:G-AIaEFl76-Q64X2qkUX3hNkmF5KPC5vlhuTvCB4lkoKEEOH1CQLDdEhhevCSkP_7
    kcVXVThvetLHA>
X-ME-Received: <xmr:G-AIaN7aMqux7qeJVURw2hTGa05TNnwEJXI_3QnZ1ONHanXACA7tYTEp32q_FxvT6-stBPjhB2cGArPuhJpjyd98SMBIEfbVyg>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvgeeiiedvucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
    pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
    gvnhhtshculddquddttddmnecujfgurhepfffhvfevuffkfhggtggujgesghdtreertddt
    jeenucfhrhhomhepofgrrhgvkhcuofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuc
    eomhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecu
    ggftrfgrthhtvghrnhepfeeuveeuvedvleelgedtfedtffeliedtjedthedvlefhleegfe
    ekueejvdetueehnecuffhomhgrihhnpehophgvnhhsuhhsvgdrohhrghdpqhhusggvshdq
    ohhsrdhorhhgpdhgihhthhhusgdrtghomhenucevlhhushhtvghrufhiiigvpedtnecurf
    grrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhi
    nhhgshhlrggsrdgtohhmpdhnsggprhgtphhtthhopeefpdhmohguvgepshhmthhpohhuth
    dprhgtphhtthhopehjuhhlihgvnhesgigvnhdrohhrghdprhgtphhtthhopeigvghnqdgu
    vghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdprhgtphhtthhopehjgh
    hrohhsshesshhushgvrdgtohhm
X-ME-Proxy: <xmx:G-AIaK0Q1iJtTu4ppxpA_4t4mmothB8ePoXK5xxbR5lUD-R_50GYRA>
    <xmx:G-AIaAFM4Mm8x1hmPs5OcTZN2y-kNTRYtUIUd5WQadBX2I0cHXxzGA>
    <xmx:G-AIaL_em-jB7x9Y2uaRHedUuOA-jl6r26zZdIGWDEZOxVPbEwrV4Q>
    <xmx:G-AIaNkCL4EwrWMbcu9XbnjAhermoe31ljqUgd0Tgq2_Hbuukk_T1w>
    <xmx:HOAIaAFTplFEvsPG-QPKcEz7t4sVVuWGZdYuYgwySsOVRH9znwekLFsa>
Feedback-ID: i1568416f:Fastmail
Date: Wed, 23 Apr 2025 14:41:59 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Julien Grall <julien@xen.org>
Cc: xen-devel <xen-devel@lists.xenproject.org>,
	Juergen Gross <jgross@suse.com>
Subject: Re: NULL pointer dereference in xenbus_thread->...
Message-ID: <aAjgGKRAW95BnTiK@mail-itl>
References: <ZO0WrR5J0xuwDIxW@mail-itl>
 <ZTUuRj6e5x5xFVqb@mail-itl>
 <ZgGjf3hpLHXXtb8z@mail-itl>
 <0f8c0e27-e60d-4e64-bc8a-6cb407c67ab2@xen.org>
 <ZlpTwbmDjNLkCNgH@mail-itl>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="uA3h3C1LK1Wh2sS5"
Content-Disposition: inline
In-Reply-To: <ZlpTwbmDjNLkCNgH@mail-itl>


--uA3h3C1LK1Wh2sS5
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Wed, 23 Apr 2025 14:41:59 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Julien Grall <julien@xen.org>
Cc: xen-devel <xen-devel@lists.xenproject.org>,
	Juergen Gross <jgross@suse.com>
Subject: Re: NULL pointer dereference in xenbus_thread->...

On Sat, Jun 01, 2024 at 12:48:33AM +0200, Marek Marczykowski-G=C3=B3recki w=
rote:
> On Tue, Mar 26, 2024 at 11:00:50AM +0000, Julien Grall wrote:
> > Hi Marek,
> >=20
> > +Juergen for visibility
> >=20
> > When sending a bug report, I would suggest to CC relevant people as
> > otherwise it can get lost (not may people monitors Xen devel if they ar=
e not
> > CCed).
> >=20
> > Cheers,
> >=20
> > On 25/03/2024 16:17, Marek Marczykowski-G=C3=B3recki wrote:
> > > On Sun, Oct 22, 2023 at 04:14:30PM +0200, Marek Marczykowski-G=C3=B3r=
ecki wrote:
> > > > On Mon, Aug 28, 2023 at 11:50:36PM +0200, Marek Marczykowski-G=C3=
=B3recki wrote:
> > > > > Hi,
> > > > >=20
> > > > > I've noticed in Qubes's CI failure like this:
> > > > >=20
> > > > > [  871.271292] BUG: kernel NULL pointer dereference, address: 000=
0000000000000
> > > > > [  871.275290] #PF: supervisor read access in kernel mode
> > > > > [  871.277282] #PF: error_code(0x0000) - not-present page
> > > > > [  871.279182] PGD 106fdb067 P4D 106fdb067 PUD 106fdc067 PMD 0
> > > > > [  871.281071] Oops: 0000 [#1] PREEMPT SMP NOPTI
> > > > > [  871.282698] CPU: 1 PID: 28 Comm: xenbus Not tainted 6.1.43-1.q=
ubes.fc37.x86_64 #1
> > > > > [  871.285222] Hardware name: QEMU Standard PC (i440FX + PIIX, 19=
96), BIOS rel-1.16.0-0-gd239552-rebuilt.opensuse.org 04/01/2014
> > > > > [  871.288883] RIP: e030:__wake_up_common+0x4c/0x180
> > > > > [  871.292838] Code: 24 0c 89 4c 24 08 4d 85 c9 74 0a 41 f6 01 04=
 0f 85 a3 00 00 00 48 8b 43 08 4c 8d 40 e8 48 83 c3 08 49 8d 40 18 48 39 c3=
 74 5b <49> 8b 40 18 31 ed 4c 8d 70 e8 45 8b 28 41 f6 c5 04 75 5f 49 8b 40
> > > > > [  871.299776] RSP: e02b:ffffc900400f7e10 EFLAGS: 00010082
> > > > > [  871.301656] RAX: 0000000000000000 RBX: ffff88810541ce98 RCX: 0=
000000000000000
> > > > > [  871.304255] RDX: 0000000000000001 RSI: 0000000000000003 RDI: f=
fff88810541ce90
> > > > > [  871.306714] RBP: ffffc900400f0280 R08: ffffffffffffffe8 R09: f=
fffc900400f7e68
> > > > > [  871.309937] R10: 0000000000007ff0 R11: ffff888100ad3000 R12: f=
fffc900400f7e68
> > > > > [  871.312326] R13: 0000000000000000 R14: 0000000000000000 R15: 0=
000000000000000
> > > > > [  871.314647] FS:  0000000000000000(0000) GS:ffff88813ff00000(00=
00) knlGS:0000000000000000
> > > > > [  871.317677] CS:  10000e030 DS: 0000 ES: 0000 CR0: 000000008005=
0033
> > > > > [  871.319644] CR2: 0000000000000000 CR3: 00000001067fe000 CR4: 0=
000000000040660
> > > > > [  871.321973] Call Trace:
> > > > > [  871.322782]  <TASK>
> > > > > [  871.323494]  ? show_trace_log_lvl+0x1d3/0x2ef
> > > > > [  871.324901]  ? show_trace_log_lvl+0x1d3/0x2ef
> > > > > [  871.326310]  ? show_trace_log_lvl+0x1d3/0x2ef
> > > > > [  871.327721]  ? __wake_up_common_lock+0x82/0xd0
> > > > > [  871.329147]  ? __die_body.cold+0x8/0xd
> > > > > [  871.330378]  ? page_fault_oops+0x163/0x1a0
> > > > > [  871.331691]  ? exc_page_fault+0x70/0x170
> > > > > [  871.332946]  ? asm_exc_page_fault+0x22/0x30
> > > > > [  871.334454]  ? __wake_up_common+0x4c/0x180
> > > > > [  871.335777]  __wake_up_common_lock+0x82/0xd0
> > > > > [  871.337183]  ? process_writes+0x240/0x240
> > > > > [  871.338461]  process_msg+0x18e/0x2f0
> > > > > [  871.339627]  xenbus_thread+0x165/0x1c0
> > > > > [  871.340830]  ? cpuusage_read+0x10/0x10
> > > > > [  871.342032]  kthread+0xe9/0x110
> > > > > [  871.343317]  ? kthread_complete_and_exit+0x20/0x20
> > > > > [  871.345020]  ret_from_fork+0x22/0x30
> > > > > [  871.346239]  </TASK>
> > > > > [  871.347060] Modules linked in: snd_hda_codec_generic ledtrig_a=
udio snd_hda_intel snd_intel_dspcfg snd_intel_sdw_acpi snd_hda_codec snd_hd=
a_core snd_hwdep snd_seq snd_seq_device joydev snd_pcm intel_rapl_msr ppdev=
 intel_rapl_common snd_timer pcspkr e1000e snd soundcore i2c_piix4 parport_=
pc parport loop fuse xenfs dm_crypt crct10dif_pclmul crc32_pclmul crc32c_in=
tel polyval_clmulni polyval_generic floppy ghash_clmulni_intel sha512_ssse3=
 serio_raw virtio_scsi virtio_console bochs xhci_pci xhci_pci_renesas xhci_=
hcd qemu_fw_cfg drm_vram_helper drm_ttm_helper ttm ata_generic pata_acpi xe=
n_privcmd xen_pciback xen_blkback xen_gntalloc xen_gntdev xen_evtchn scsi_d=
h_rdac scsi_dh_emc scsi_dh_alua uinput dm_multipath
> > > > > [  871.368892] CR2: 0000000000000000
> > > > > [  871.370160] ---[ end trace 0000000000000000 ]---
> > > > > [  871.371719] RIP: e030:__wake_up_common+0x4c/0x180
> > > > > [  871.373273] Code: 24 0c 89 4c 24 08 4d 85 c9 74 0a 41 f6 01 04=
 0f 85 a3 00 00 00 48 8b 43 08 4c 8d 40 e8 48 83 c3 08 49 8d 40 18 48 39 c3=
 74 5b <49> 8b 40 18 31 ed 4c 8d 70 e8 45 8b 28 41 f6 c5 04 75 5f 49 8b 40
> > > > > [  871.379866] RSP: e02b:ffffc900400f7e10 EFLAGS: 00010082
> > > > > [  871.381689] RAX: 0000000000000000 RBX: ffff88810541ce98 RCX: 0=
000000000000000
> > > > > [  871.383971] RDX: 0000000000000001 RSI: 0000000000000003 RDI: f=
fff88810541ce90
> > > > > [  871.386235] RBP: ffffc900400f0280 R08: ffffffffffffffe8 R09: f=
fffc900400f7e68
> > > > > [  871.388521] R10: 0000000000007ff0 R11: ffff888100ad3000 R12: f=
fffc900400f7e68
> > > > > [  871.390789] R13: 0000000000000000 R14: 0000000000000000 R15: 0=
000000000000000
> > > > > [  871.393101] FS:  0000000000000000(0000) GS:ffff88813ff00000(00=
00) knlGS:0000000000000000
> > > > > [  871.395671] CS:  10000e030 DS: 0000 ES: 0000 CR0: 000000008005=
0033
> > > > > [  871.397863] CR2: 0000000000000000 CR3: 00000001067fe000 CR4: 0=
000000000040660
> > > > > [  871.400441] Kernel panic - not syncing: Fatal exception
> > > > > [  871.402171] Kernel Offset: disabled
> > > > > (XEN) Hardware Dom0 crashed: rebooting machine in 5 seconds.
> > > > >=20
> > > > > It isn't the first time I see similar crash, but I can't really
> > > > > reproduce it reliably. Restarted test usually passes.
> > > > > Note this is Xen nested in KVM, so it could very well be some odd=
ity
> > > > > about nested virt, although looking at the stack trace, it's unli=
kely
> > > > > and more likely some race condition hit only on slower system.
> > > >=20
> > > > Recently I've got the same crash on a real system in domU too. And =
also
> > > > on nested on newer kernel 6.1.57 (here it happened in dom0). So, th=
is is
> > > > still an issue and affects not only nested case :/
> > > >=20
> > > > > Unfortunately I don't have symbols for this kernel handy, but the=
re is a
> > > > > single wake_up() call in process_writes(), so it shouldn't be an =
issue.
> > > > >=20
> > > > > Any ideas?
> > > > >=20
> > > > > Full log at https://openqa.qubes-os.org/tests/80779/logfile?filen=
ame=3Dserial0.txt
> > > >=20
> > > > More links at https://github.com/QubesOS/qubes-issues/issues/8638,
> > > > including more recent stack trace.
> > >=20
> > > Happens on 6.1.75 too (new stack trace I've added to the issue above,
> > > but it's pretty similar).
>=20
> Recently I've got a report from another user about similar issue, on
> 6.6.29 this time. I also still encounter this issue once a month or so,
> but the user claims they get it much more often:
> https://github.com/QubesOS/qubes-issues/issues/8638#issuecomment-21354198=
96
> The extra conditions reported by the user are:
> - old AMD system (KGPE-D16 with Opteron 6282 SE) requiring
>   `spec-ctrl=3Dibpb-entry=3Dno-pv` to remain usable=20
> - Whonix domU, which has a bunch of sysctl parameters changed, listed
>   at:
>   - https://github.com/Kicksecure/security-misc
>   - https://github.com/Kicksecure/security-misc/blob/master/usr/lib/sysct=
l.d/990-security-misc.conf
>   (unsure which are relevant, maybe `vm.swappiness=3D1`?)

I've got some more report confirming it's still happening on Linux
6.12.18. Is there anything I can do to help fixing this? Maybe ask users
to enable some extra logging?

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmgI4BgACgkQ24/THMrX
1yyQBAf8D7f65wbZUtO4YalAr6PhZYm1DhkE0BxUVDqawo/RChapo9A7WhAxomiS
POyiqlbW5nnQVOykwoV7cAiu5LBnspC2UPtzyy76VxBoyGRWXKr+S8lEVbx9uFki
uQOe9oRom7VIsoUg5BRYswbNb+1urUyp3UU9hikczp/GDbDbgzGvbEkxSIy/19lx
a4xgTYZ6sXXuAcC4QxUemuglPYeP1mwsTWYS9cDW0PMB83+hLTNw+aE3/o14mPTL
mxEw0gN/sjLH0blxZjowyLSWV2Xmp3I9FMGt+f3yOn+VQ4zOHHyxK+2oqqO4ZN5k
iuvxlktyTmUtc2jBQvRHMnJgJIUbOQ==
=b/on
-----END PGP SIGNATURE-----

--uA3h3C1LK1Wh2sS5--


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 12:58:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 12:58:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.964597.1355344 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7ZgO-0003a9-Bq; Wed, 23 Apr 2025 12:58:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 964597.1355344; Wed, 23 Apr 2025 12: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 1u7ZgO-0003a2-95; Wed, 23 Apr 2025 12:58:32 +0000
Received: by outflank-mailman (input) for mailman id 964597;
 Wed, 23 Apr 2025 12:58: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=rvAI=XJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u7ZgN-0003Zw-Db
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 12:58:31 +0000
Received: from mail-wm1-x32f.google.com (mail-wm1-x32f.google.com
 [2a00:1450:4864:20::32f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a7bc362d-2042-11f0-9eb0-5ba50f476ded;
 Wed, 23 Apr 2025 14:58:30 +0200 (CEST)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-440685d6afcso60152935e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 23 Apr 2025 05:58:30 -0700 (PDT)
Received: from [10.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-44092d2195asm25304055e9.10.2025.04.23.05.58.29
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 23 Apr 2025 05:58:29 -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: a7bc362d-2042-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745413110; x=1746017910; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=95yQZhhT/5ritVYq7jkttDpCHdHpSO82S5yIcbg8340=;
        b=Hj3VCfI5k8QQxM6Uy0Bh9UawSYDIPeofQnlvaTU/SRDaVAd5Q4ECIoxsHWpt03Dl08
         4WCZ/dfJQ+U+uQbrD7bBiUQ/KZgTDFXjpjY7zEabwPk5q0XXeqtP3Zns+2NpyXvhrzy3
         lzmGjQbB4iu7jX/20S2LXn02hlUIgkxQYmSW/4yK8qY8OMDBP4xjM6LlzkFANKCy/DWn
         RNCGpTK0Lndq8oc+xs+UPFE466rRCtdpypBzTrOlStm98Oc/YORMoEIIX5wkY/CGvTwM
         Lo29I3W+75awmZh/vwwp/QMMhbRSY4+iCJwE17ZWydmdghiz9ggO5R7RnmKGGEOayGby
         bVxg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745413110; x=1746017910;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=95yQZhhT/5ritVYq7jkttDpCHdHpSO82S5yIcbg8340=;
        b=HsFCpVyKY+47a3lzzd9nmGbKjUc7Nm7HfgGHU6kYLZ9qPOeFAuUlHpTj5zCpu1ektr
         RkKQOznVy8JKg+PjuD+Om1Rre06D70hnKqO1eVM9M/8yCtFlZJSS84tGT9SWmPotOVnW
         QkypZ/6pZMmv1qu+mNpCz6UUPcNZAOdc3v8NFTKTDOwJ2xgTohahMSgsGdIXpAwLgNlF
         LcBF1H+bJlkjmCj2Ij8CPcXEQmDEttnT/DgMlePFk1fxJT4/Gko9f7pc9FvqEnCbxgnM
         iDrrJcJo8sT8dDxQv4/fLI6eamq3Mc7T8ALYmNl3Vcr7vsmg0jDXkfjU+3SxTWjGlSep
         lA6A==
X-Gm-Message-State: AOJu0YzwvMqB+GCQzLJVL4M1qghY9ec9Sh549bIvUsMMiUZACjioCDZb
	aLphDkMsdLcjSu1yhi0d6vVQP14LnDkgQgXpONijtS0Diriz2faf1O0dCfZdCQ==
X-Gm-Gg: ASbGncvLxIR+LgOKXnzDA3Pg8kDigwC+aPbf25a65QmyPl+tdxP6T5vYGMummaGCz1o
	IL4G2kS9RUlgC7/Zuacm8Kzm33kLp0pxxYgkeGgu/AbO8Kp9/Gqtc6SS4njO3cynX4c71ZpKLdS
	YH4NAx3cj82Ysctz1S/Hz/QMNNa9sTJ1M1FRN8SnSEWYV2wzZKTEB+CO5U2iBstbz+nLQIofCbR
	CWQ0//Pretf1xUSj51YShC2GIuGpFeI+eyX/l2tpttEQ4YoL0lHmcK6/j72JetpCIrop1+s2umZ
	ZXGwRvMp0f4hmpQ/ns1/rURSCVoYEQJVJiCoD6tfo0zGGfVTntWfZKRVokv6JuMaTZSaM4tipTY
	mj2eFbcknZpN8TG8Ph3Oaq1cMa4FQw/wclNO2
X-Google-Smtp-Source: AGHT+IH6IPHp0kCgGHwgvHED+xa53WOQWbq7SQMa6VODNXcA7WZ3cvG3wd2sD0DxHq7qyQjizEY/GA==
X-Received: by 2002:a05:600c:4fc4:b0:43c:fb95:c752 with SMTP id 5b1f17b1804b1-44071595942mr162577315e9.3.1745413109679;
        Wed, 23 Apr 2025 05:58:29 -0700 (PDT)
Message-ID: <7d0afeda-d2c0-4360-bbf6-99a466e8f013@suse.com>
Date: Wed, 23 Apr 2025 14:58:28 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86: constrain sub-page access length in
 mmio_ro_emulated_write()
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Marek Marczykowski <marmarek@invisiblethingslab.com>
References: <570ad3f2-7f3b-4579-a000-c85d27e8bf77@suse.com>
 <aAit4IPZju60KEUz@macbook.lan>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <aAit4IPZju60KEUz@macbook.lan>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 23.04.2025 11:07, Roger Pau Monné wrote:
> On Wed, Apr 23, 2025 at 10:43:56AM +0200, Jan Beulich wrote:
>> Without doing so we could trigger the ASSERT_UNREACHABLE() in
>> subpage_mmio_write_emulate(). A comment there actually says this
>> validation would already have been done ...
>>
>> Fixes: 8847d6e23f97 ("x86/mm: add API for marking only part of a MMIO page read only")
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>> ---
>> Alternatively we could drop comment and assertion from
>> subpage_mmio_write_emulate().
> 
> I think I prefer this as it fits better with my patch to unify the
> open-coded MMIO accessors, which does have an ASSERT_UNREACHABLE() for
> unhandled sizes.  The return there is anyway too late IMO, as we have
> possibly already mapped the page when there's no need for it.

FTAOD with "this" you mean the patch as is, not the alternative?

>> --- a/xen/arch/x86/mm.c
>> +++ b/xen/arch/x86/mm.c
>> @@ -5195,8 +5195,9 @@ int cf_check mmio_ro_emulated_write(
>>          return X86EMUL_UNHANDLEABLE;
>>      }
>>  
>> -    subpage_mmio_write_emulate(mmio_ro_ctxt->mfn, PAGE_OFFSET(offset),
>> -                               p_data, bytes);
>> +    if ( bytes <= 8 )
>> +        subpage_mmio_write_emulate(mmio_ro_ctxt->mfn, PAGE_OFFSET(offset),
>> +                                   p_data, bytes);
> 
> Should we print a debug message here saying the write is possibly
> unhandled due to the access size if subpage r/o is enabled?
> 
> You might want to re-use the subpage_ro_active() I introduce to limit
> the printing of the message.

That would be too broad for my taste. I've used subpage_mmio_find_page()
instead.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 13:01:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 13:01:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.964612.1355354 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7Zjf-0005PN-Sf; Wed, 23 Apr 2025 13:01:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 964612.1355354; Wed, 23 Apr 2025 13:01: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 1u7Zjf-0005PG-Q0; Wed, 23 Apr 2025 13:01:55 +0000
Received: by outflank-mailman (input) for mailman id 964612;
 Wed, 23 Apr 2025 13:01: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=VjMx=XJ=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u7Zje-0005PA-7w
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 13:01:54 +0000
Received: from NAM10-BN7-obe.outbound.protection.outlook.com
 (mail-bn7nam10on20615.outbound.protection.outlook.com
 [2a01:111:f403:2009::615])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1e7a5226-2043-11f0-9eb0-5ba50f476ded;
 Wed, 23 Apr 2025 15:01:50 +0200 (CEST)
Received: from SJ0PR03CA0213.namprd03.prod.outlook.com (2603:10b6:a03:39f::8)
 by IA1PR12MB8587.namprd12.prod.outlook.com (2603:10b6:208:450::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.34; Wed, 23 Apr
 2025 13:01:41 +0000
Received: from SJ5PEPF000001D4.namprd05.prod.outlook.com
 (2603:10b6:a03:39f:cafe::70) by SJ0PR03CA0213.outlook.office365.com
 (2603:10b6:a03:39f::8) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.35 via Frontend Transport; Wed,
 23 Apr 2025 13:01:41 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ5PEPF000001D4.mail.protection.outlook.com (10.167.242.56) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Wed, 23 Apr 2025 13:01:41 +0000
Received: from localhost (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, 23 Apr
 2025 08:01:37 -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: 1e7a5226-2043-11f0-9eb0-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=cMTeBiCtOPCHZIbghmQiS/Lc0aQpZ1YTDnAsg8pJvcuNBR1wVG0IH4SPkGAuumfLFDdb4NE7xc5/XvHL5bI7W8zpiwRoIZUda7/1b7RgW2DxLcOhVHeasBFnHY1MK/5+/fJIafPdgvKj5NfRRsQxA9t478yEtqTLnd02H/BtauTvVEFraCWriODpfE3FJbzRrxCrW6GzRX372vrfYqxDj9qzu9mTFHE41uxeZ6ZD52CVI8XROpU/weqMwn7BVZllu3Q+hEh/mHzbuQo4O8MS3CBavg+AAp/+o0ccbWo8p9LcCjNF9aRpw9upORIy2cqUYzC8wWhyz3bvcwIHzLaJ8Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=J0pJqJMJT2ZRzhPgEzyWJnUQWKsdLgzwZYyXZ7DKUkg=;
 b=OOBD+kwyvO6HwHzUdVnQXt7pIAdu3BMuCVgJRp0iFlCb2GS0E5jZSRdD90ZOouf0+iHuZbrqKtQqpOmrmKi/CV6lvPNXU+zKh0tFGuQohM3oI3o5cSEl1di76JQyvenWA4pzCJbpWAhfFaRurCnitzvQd5un5pH3hrSDpT47x3HGeEnRTXh81bGztcuBVi9jCkjzodRFUbAueMV3Xu4VtJA3ucl3g6EjIT756a03XdBbpsyHxt1f5Tx9kGwwHEM75zFSqYiNKKHW9GW0zR2KM9V0QBqoJp1tq3I6vktTTtXGru4PWKgqWMB5eVqPEorD4G/for0Eo4V4Odo4NYEeFA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=proton.me 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=J0pJqJMJT2ZRzhPgEzyWJnUQWKsdLgzwZYyXZ7DKUkg=;
 b=bEXQ9clA+nryMypmV4NKQ6zQ4ugCyY0aVzXCzzK6UJ6NxnSeHBF/eBALq09Eed/ftTenbhw2JiT33nWJ9WT4hW40+dlb/UIW/AkVbQwXgm/njAsL3TWLjPZ+/MSaMCqP2046L6a+pt7y/HkpWNrtRk6CgQZEqGk4BI1BvTvV5f0=
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
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Wed, 23 Apr 2025 14:01:35 +0100
Message-ID: <D9E1DIGCGP1O.QQ1KK0P3NX0K@amd.com>
Subject: Re: [PATCH v4 07/13] x86/hyperlaunch: obtain cmdline from device
 tree
From: Alejandro Vallejo <agarciav@amd.com>
To: <dmkhn@proton.me>
CC: <xen-devel@lists.xenproject.org>, "Daniel P. Smith"
	<dpsmith@apertussolutions.com>, Jan Beulich <jbeulich@suse.com>, "Andrew
 Cooper" <andrew.cooper3@citrix.com>, =?utf-8?q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, "Michal
 Orzel" <michal.orzel@amd.com>, Julien Grall <julien@xen.org>, "Stefano
 Stabellini" <sstabellini@kernel.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Jason Andryuk <jason.andryuk@amd.com>
X-Mailer: aerc 0.20.1
References: <20250417124844.11143-1-agarciav@amd.com>
 <20250417124844.11143-8-agarciav@amd.com> <aALX/NgsSi5sTyz3@kraken>
In-Reply-To: <aALX/NgsSi5sTyz3@kraken>
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: SJ5PEPF000001D4:EE_|IA1PR12MB8587:EE_
X-MS-Office365-Filtering-Correlation-Id: 8db645e3-8412-4a4f-e9c2-08dd8266fde1
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|7416014|376014|36860700013|82310400026|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?a3N6c1ZCenRnSUt0U0R4dkpDWS8wWWRraDVLQys0WENXUTAzZ1dkbVFZaE5E?=
 =?utf-8?B?VWdkbXh1UTBsUjdxU0pYWWU1SW5JZUlkTmpkR3ZZdkJMSG1BemNwMnZEQnRy?=
 =?utf-8?B?dDNublJlRDdEbkRaMGl2WDIyVkcvNXAyV2lGcWduenJLTDBMYmVwRkFBbHVB?=
 =?utf-8?B?c2pqN0Jjc2pEY3lZMDJVdmI1MVZSUkdTb0tHVUMxajIvNzh4QlNmTysvNGJF?=
 =?utf-8?B?VnBiOXBYejVzbVovcmlNZDltVEpFdWhuNW1OTTFJVTBFdXlWd0lFckZaejlz?=
 =?utf-8?B?a0tZN05VUDYxd0M4UW1CdzRTeEhRT2YvOVBvQmlBeElNald4bWlOL0tjNTls?=
 =?utf-8?B?M0ltZURmMjVqQ001R1ZiRC9qcmZoYkdBWlBYNUNBUVR3Um5VVlZQclJBd0pN?=
 =?utf-8?B?YVBmV3Z3Uk02V3h5RnVhRi9XbndvWHAwaUdvcDVtZkJSanphWUQ0bEFVbjk4?=
 =?utf-8?B?M0paZTJhVDVESnREWktHRFlkc2UxVFJOb0VGNXFOclkyUEp0MzNFQUsvZ3Vy?=
 =?utf-8?B?VzMwWFF1Ni9pSXlkazFNWmsyZFkvQmN3RkRnMTRSMmh1U2M0MnRzWmdPc1I1?=
 =?utf-8?B?OFpybjY4Ymk5WUp0MlZrQXZvQmduNDQ2MWxTdjgvdGVXYW1mU1QvbnAwYWZi?=
 =?utf-8?B?eStDaFVxN0pXVXo5MXFTbE10Zy9lQjV3ZTVqVGkzVXZCdzU0cldZOG5ha1V0?=
 =?utf-8?B?Yi9reCt0N2pNZXdLcUp3LzZRcWpxanBiL2twVGhXQ080Wm5CMEorOXdQci9F?=
 =?utf-8?B?WXIwVUQ2eXhCTVpQb1JWVjlWeGgrVkZMc3kwNzNUWGJRMVYvWjVSdXNuTG4r?=
 =?utf-8?B?TnRlWm81TDRXcWthU0NlelcyUVB5WmtEQ3QvM0FBRHEreWNmYzd1Mng3dy9L?=
 =?utf-8?B?U1VWUUd1STlHZjFhRXRlNHZ2WE5pL1pZMGNkeFRYUWpEMmJQRkJFNWxLc1g4?=
 =?utf-8?B?WExNaURUY0M2b2FGeGp3b2xGYmFYZVpxVjAvSzhra0ZIbk9OSjMxdnpmdm05?=
 =?utf-8?B?SkdlRnhUczI5cDNiUHM4NjB4SnR4UExlVTgvVTRMc1BPUFJodDVUdUU4bmJn?=
 =?utf-8?B?VzFKT0ZiOGsrSFhCcjRYRzg2WmJ2cTROZUpKWXI3cGdySFkrK0hPNDdEYUNo?=
 =?utf-8?B?V09ZclV4eWdxeUl3ci9wTkJxT0JHNjVMK0tIK21WY0d4YlBTdU5xYTRNcWU0?=
 =?utf-8?B?bUx6clRJSlV4elZNUlN5eGx2V0JKVHhLSHVIM1AyME0zcFJYZDdSV3ZGOHgw?=
 =?utf-8?B?alRSSEtXUGRYdWhMa1Z2VnBPUXd2SmlKWTRLSnBqVEgvTXhlcnErRUFkTnZ1?=
 =?utf-8?B?YldHL3lBWDFzRDB6TE9tQ0xzWS9hbzY2WG41TVR5dG91L0VldEdZek5mUUkv?=
 =?utf-8?B?d0R0VE5NZjNCMTFSSVYwNUV6MDhxYlZJMXdvOU53ZUF3eUFhcytaQjVlTzJR?=
 =?utf-8?B?OU5MNVYvandLaDlNR1hRbDFqZ0ZJYXJxeExqcm5OMDFvaUFCQ3owK1loTXlC?=
 =?utf-8?B?NURvRk8vNVZBbHN0NWlOMnUySTZYeDhkczRZVGUvdzNkMlpWeUNkSk9Oanl2?=
 =?utf-8?B?ZWxOSEtmT0hSQmdCS3Q2blJ5bnltalBvVENZcm5maUxYb2dnNjdVVXRpTWxa?=
 =?utf-8?B?SGc3dkdta0VHaG9QUGJvRlJjQVl0c05NbytUb01nTlpTNGxKemJxV0doeTU3?=
 =?utf-8?B?N0EzQ29KNzVERFJTZWJXNnh1VXc3bzc1a1Fldk1tMWtyUHloTkVkRDhCYkNx?=
 =?utf-8?B?VjlBdUxPU1p0ZzNtN2FOeTNiL3E1QWRHZmNBOFNTUkpJWktNZFRNbVN3VkpC?=
 =?utf-8?B?T2dRWktva1hQN1JrMExQbTdvTjNBRHpIOU9KdFVtY3EyNmllbWNVUTMrbmFW?=
 =?utf-8?B?ZkV4SDdtOGEyU01OejlCTzU3d2tVWFVFZ2R4d0JQQUtDZlZ6MFBEa1Y4WnM2?=
 =?utf-8?B?WGhGVVJMV1NQNW9HVDExTGRZUUZzYW9qR3JqYy9PZU5scVQrcTYza2NZUE5k?=
 =?utf-8?B?MzVMVlovdXNkOWJIaTE2aDhVb001TXhjRmxURXh5VlQrbXRkRVl5ME1jYjhn?=
 =?utf-8?Q?rmBcJn?=
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)(7416014)(376014)(36860700013)(82310400026)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Apr 2025 13:01:41.2788
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 8db645e3-8412-4a4f-e9c2-08dd8266fde1
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:
	SJ5PEPF000001D4.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB8587

On Fri Apr 18, 2025 at 11:53 PM BST, dmkhn wrote:
> On Thu, Apr 17, 2025 at 01:48:29PM +0100, Alejandro Vallejo wrote:
>> From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
>>=20
>> Add support to read the command line from the hyperlauunch device tree.
>> The device tree command line is located in the "bootargs" property of th=
e
>> "multiboot,kernel" node.
>>=20
>> A boot loader command line, e.g. a grub module string field, takes
>> precendence ove the device tree one since it is easier to modify.
>
>               ^^ over

Oops. yes.

>
> Also, I would explain the command line parsing rules in the code commenta=
ry for
> domain_cmdline_size() below.

As in, also state the contents of the commit message in the function
header?

>
>>=20
>> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
>> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
>> Signed-off-by: Alejandro Vallejo <agarciav@amd.com>
>> ---
>> v4:
>>   * Removed __init from header declarations.
>>   * Removed ifdef guards, as DCE ensures the missing definitions don't
>>     matter.
>>   * Removed ifdef guards from new helpers in domain-builder/fdt.c
>>     * Rely on DCE instead.
>>   * Restored checks for cmdline_pa being zero.
>>   * swapped offset and poffset varnames in libfdt-xen.h helper.
>>   * swapped name and pname varnames in libfdt-xen.h helper.
>>   * Turned foo =3D=3D 0  into !foo in libfdt-xen.h helper.
>> ---
>>  xen/arch/x86/include/asm/bootinfo.h |  6 ++++--
>>  xen/arch/x86/setup.c                | 10 +++++++--
>>  xen/common/domain-builder/core.c    | 32 +++++++++++++++++++++++++++++
>>  xen/common/domain-builder/fdt.c     |  6 ++++++
>>  xen/common/domain-builder/fdt.h     | 24 ++++++++++++++++++++++
>>  xen/include/xen/domain-builder.h    |  4 ++++
>>  xen/include/xen/libfdt/libfdt-xen.h | 23 +++++++++++++++++++++
>>  7 files changed, 101 insertions(+), 4 deletions(-)
>>=20
>> diff --git a/xen/arch/x86/include/asm/bootinfo.h b/xen/arch/x86/include/=
asm/bootinfo.h
>> index 1e3d582e45..5b2c93b1ef 100644
>> --- a/xen/arch/x86/include/asm/bootinfo.h
>> +++ b/xen/arch/x86/include/asm/bootinfo.h
>> @@ -35,11 +35,13 @@ struct boot_module {
>>=20
>>      /*
>>       * 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;
>>=20
>>      /*
>>       * A boot module may need decompressing by Xen.  Headroom is an est=
imate of
>> diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
>> index 4f669f3c60..4cae13163b 100644
>> --- a/xen/arch/x86/setup.c
>> +++ b/xen/arch/x86/setup.c
>> @@ -984,7 +984,10 @@ static size_t __init domain_cmdline_size(const stru=
ct boot_info *bi,
>>  {
>>      size_t s =3D bi->kextra ? strlen(bi->kextra) : 0;
>>=20
>> -    s +=3D bd->kernel->cmdline_pa ? strlen(__va(bd->kernel->cmdline_pa)=
) : 0;
>> +    if ( bd->kernel->fdt_cmdline )
>> +        s +=3D builder_get_cmdline_size(bi, bd->kernel->cmdline_pa);
>> +    else if ( bd->kernel->cmdline_pa )
>> +        s +=3D strlen(__va(bd->kernel->cmdline_pa));
>>=20
>>      if ( s =3D=3D 0 )
>>          return s;
>> @@ -1047,7 +1050,10 @@ static struct domain *__init create_dom0(struct b=
oot_info *bi)
>>          if ( !(cmdline =3D xzalloc_array(char, cmdline_size)) )
>>              panic("Error allocating cmdline buffer for %pd\n", d);
>>=20
>> -        if ( bd->kernel->cmdline_pa )
>> +        if ( bd->kernel->fdt_cmdline )
>> +            builder_get_cmdline(
>> +                bi, bd->kernel->cmdline_pa, cmdline, cmdline_size);
>> +        else if ( bd->kernel->cmdline_pa )
>>              strlcpy(cmdline,
>>                      cmdline_cook(__va(bd->kernel->cmdline_pa), bi->load=
er),
>>                      cmdline_size);
>> diff --git a/xen/common/domain-builder/core.c b/xen/common/domain-builde=
r/core.c
>> index 924cb495a3..4b4230f2ff 100644
>> --- a/xen/common/domain-builder/core.c
>> +++ b/xen/common/domain-builder/core.c
>> @@ -8,9 +8,41 @@
>>  #include <xen/lib.h>
>>=20
>>  #include <asm/bootinfo.h>
>> +#include <asm/setup.h>
>>=20
>>  #include "fdt.h"
>>=20
>> +size_t __init builder_get_cmdline_size(struct boot_info *bi, int offset=
)
>> +{
>> +    const void *fdt;
>> +    int size;
>> +
>> +    if ( !IS_ENABLED(CONFIG_DOMAIN_BUILDER) )
>> +        return 0;
>> +
>> +    fdt =3D bootstrap_map_bm(&bi->mods[HYPERLAUNCH_MODULE_IDX]);
>> +    size =3D fdt_cmdline_prop_size(fdt, offset);
>> +    bootstrap_unmap();
>> +
>> +    return max(0, size);
>> +}
>> +
>> +int __init builder_get_cmdline(
>> +    struct boot_info *bi, int offset, char *cmdline, size_t size)
>> +{
>> +    const void *fdt;
>> +    int ret;
>> +
>> +    if ( !IS_ENABLED(CONFIG_DOMAIN_BUILDER) )
>> +        return 0;
>> +
>> +    fdt =3D bootstrap_map_bm(&bi->mods[HYPERLAUNCH_MODULE_IDX]);
>> +    ret =3D fdt_cmdline_prop_copy(fdt, offset, cmdline, size);
>> +    bootstrap_unmap();
>> +
>> +    return ret;
>> +}
>> +
>>  void __init builder_init(struct boot_info *bi)
>>  {
>>      bi->hyperlaunch_enabled =3D false;
>> diff --git a/xen/common/domain-builder/fdt.c b/xen/common/domain-builder=
/fdt.c
>> index 1fae6add3b..50fde2d007 100644
>> --- a/xen/common/domain-builder/fdt.c
>> +++ b/xen/common/domain-builder/fdt.c
>> @@ -209,6 +209,12 @@ static int __init process_domain_node(
>>              printk(XENLOG_INFO "  kernel: multiboot-index=3D%d\n", idx)=
;
>>              bi->mods[idx].type =3D BOOTMOD_KERNEL;
>>              bd->kernel =3D &bi->mods[idx];
>> +
>> +            /* If bootloader didn't set cmdline, see if FDT provides on=
e. */
>> +            if ( bd->kernel->cmdline_pa &&
>> +                 !((char *)__va(bd->kernel->cmdline_pa))[0] )
>> +                bd->kernel->fdt_cmdline =3D fdt_get_prop_offset(
>> +                    fdt, node, "bootargs", &bd->kernel->cmdline_pa);
>>          }
>>      }
>>=20
>> diff --git a/xen/common/domain-builder/fdt.h b/xen/common/domain-builder=
/fdt.h
>> index 8c98a256eb..d2ae7d5c36 100644
>> --- a/xen/common/domain-builder/fdt.h
>> +++ b/xen/common/domain-builder/fdt.h
>> @@ -9,6 +9,30 @@ struct boot_info;
>>  /* hyperlaunch fdt is required to be module 0 */
>>  #define HYPERLAUNCH_MODULE_IDX 0
>>=20
>> +static inline int __init fdt_cmdline_prop_size(const void *fdt, int off=
set)
>> +{
>> +    int ret;
>> +
>> +    fdt_get_property_by_offset(fdt, offset, &ret);
>
> Perhaps something like
>
>        (void)fdt_get_property_by_offset...
>
> since there's no need to check the return value?

I vaguely seem to remember doing something like that a few years ago
(because it does show intent and many linters require it) and being told
not to. But maybe I misremember. I'm definitely happy to use that
convention here and later unless someone pushes back for some reason.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 13:02:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 13:02:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.964615.1355365 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7Zk1-0005lg-4q; Wed, 23 Apr 2025 13:02:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 964615.1355365; Wed, 23 Apr 2025 13:02:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7Zk1-0005kf-17; Wed, 23 Apr 2025 13:02:17 +0000
Received: by outflank-mailman (input) for mailman id 964615;
 Wed, 23 Apr 2025 13:02:15 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=VjMx=XJ=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u7Zjz-0005kA-JM
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 13:02:15 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on20631.outbound.protection.outlook.com
 [2a01:111:f403:2412::631])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2b49a393-2043-11f0-9ffb-bf95429c2676;
 Wed, 23 Apr 2025 15:02:13 +0200 (CEST)
Received: from SJ0PR05CA0149.namprd05.prod.outlook.com (2603:10b6:a03:33d::34)
 by DM4PR12MB7742.namprd12.prod.outlook.com (2603:10b6:8:102::18) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.23; Wed, 23 Apr
 2025 13:02:08 +0000
Received: from SJ5PEPF000001D5.namprd05.prod.outlook.com
 (2603:10b6:a03:33d:cafe::19) by SJ0PR05CA0149.outlook.office365.com
 (2603:10b6:a03:33d::34) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.15 via Frontend Transport; Wed,
 23 Apr 2025 13:02:08 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ5PEPF000001D5.mail.protection.outlook.com (10.167.242.57) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Wed, 23 Apr 2025 13:02:07 +0000
Received: from localhost (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, 23 Apr
 2025 08:02:02 -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: 2b49a393-2043-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=NLFxcv84W2yNldpiYLFasb56OK3R+4RwW6y5x3pikPvAGSzL5+S1QifILxW5P7uhtABmWYu8QPJWaay69HA2sWXQ4Lo0f+ET9BDDbWfXdkLQO/SR/ghBiRH3YlzSiNbWCSSzhNUa6Hdr9Y2jJfMXvPJnolN8/yvFMrV2+Im4WBs5vCoXz/m4Fc0SZpHKpJH5Wh6YXj/WTXhFhp7ia0Y2x/EjtHByaida1NArtW9Uoquz0lcYgF9S8tJVf3dJaaEwMHk0g+rm7YL1MB9bmA2KCfv0gCi4HAB40wALCcZ6/TR8N4T5NLH4MzKGlgKkLKBlcJt2AtU6IZIabK6+uKMWTA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=3142NNlFSgTFaKNdkb67u921C2xnmhV71+/sQLY6AVM=;
 b=BlZLc0deV4cowivi5fvf66Fshq7HXcCNhIRs2lAUHit6QN0VeBrVF+BmRPoQSa7NXPzggfb1n1KcsgF3DGY6za52e2N4owu8SBJU458JuevQCKZErie05Qw943u/NcdXZ5431n+zDY70TtCQb2M7/95MKt0jGQDRHYUq2RSCXu47L5KLJc0XjSe58zkX3ElplOxenGTEbLTdX2/AA9AjiPX5IXB+16Akxsqme80r+zUUuytBZSQKXGPGBCj56Bc1BL8IfzmO2CPRnoX1ncI7xjcrxME3+mUB2B6OOlEzUn0R1OuzeXRvD5m1v8GBWwuVzZUcd/n8ibEPzi86defvew==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=proton.me 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=3142NNlFSgTFaKNdkb67u921C2xnmhV71+/sQLY6AVM=;
 b=O95l3EQvWJr+PnX6ws7PR4nNW7aLIxGIrUxo9P7J2hm89pHXfqJatUWsi36GHd7z1aVEePvsmX4l1tDeKMq2iFLdD8n6tWXImgwZ6FTsy34gMjh327F0aP9tgMLUZIdjTcmmzjaz57VEylIz9kkPxeCNjPng6kuku0XJKP582qQ=
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
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Wed, 23 Apr 2025 14:01:54 +0100
Message-ID: <D9E1DR9RL9KK.RXY5F9WRUKTW@amd.com>
To: <dmkhn@proton.me>
CC: <xen-devel@lists.xenproject.org>, "Daniel P. Smith"
	<dpsmith@apertussolutions.com>, Jan Beulich <jbeulich@suse.com>, "Andrew
 Cooper" <andrew.cooper3@citrix.com>, =?utf-8?q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, "Michal
 Orzel" <michal.orzel@amd.com>, Julien Grall <julien@xen.org>, "Stefano
 Stabellini" <sstabellini@kernel.org>, Jason Andryuk <jason.andryuk@amd.com>
Subject: Re: [PATCH v4 08/13] x86/hyperlaunch: locate dom0 initrd with
 hyperlaunch
From: Alejandro Vallejo <agarciav@amd.com>
X-Mailer: aerc 0.20.1
References: <20250417124844.11143-1-agarciav@amd.com>
 <20250417124844.11143-9-agarciav@amd.com> <aALZGCW4IXPo87wb@kraken>
In-Reply-To: <aALZGCW4IXPo87wb@kraken>
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: SJ5PEPF000001D5:EE_|DM4PR12MB7742:EE_
X-MS-Office365-Filtering-Correlation-Id: 4ba7c460-68f0-43e5-d76e-08dd82670dbc
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|376014|36860700013|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?U0FJZllibXB2MFU1N2lWSVllTEtKeDFrN0ozWlRubkNtcWlPZWQyVTJHTm9R?=
 =?utf-8?B?bngvWkZiMWVrV2h6TGhwVmhtVW1uZG9Ia0hvcDlKbDJlLzZoMnVzQXNuYU9H?=
 =?utf-8?B?QTVEY2pCT2Y1ZWpaaElrUTBCVUhZZ0ZNalNUZ2tma0ZBN0Rod1lnZzBQTlUz?=
 =?utf-8?B?V1c3SjgrNGRkQndPRHllc3JtWGtHc0xxbm1LaXN0WVJoVnNIbFFFdWU0UkVS?=
 =?utf-8?B?VlIvUERUcitBQWdqcDdyQVVSbVlxdStNSXFHRVkzdHV5VFpwWURTa0xHcDNK?=
 =?utf-8?B?dy9KNzl3blVTSHkyam5SRER4dGlNdlpGeEFEZWl5RC81U3dOMy9jeHJ2Nlpt?=
 =?utf-8?B?TEJ2Qzgxb3JxaGgvZzk1SGplQ09nSStrVmxCaHdaV2dacVB0TW9XL0N5ajV2?=
 =?utf-8?B?ZjRMb0tkc2dzbE5HODNYTER0SE10UVZzbWg3bzQ1a0hCamNLSEhQbUkzem9X?=
 =?utf-8?B?Tm5YZkFJZkNIRzI0WUcrclJ4ZS9EelRRdlJmSFRnc3d2QlpMOG12a1NHWjlF?=
 =?utf-8?B?ek83MGF0dVZyRzB5cXNNMXJsNElRUTRpY2VFbk1RakpwakF6WmtJZUlLQ0gr?=
 =?utf-8?B?bWY1cCthcXdPRzliZ2Z6NnY2NzdhZVdLa2lEdGNmNjNVWHFEdEFjelVCT3J2?=
 =?utf-8?B?eTAreU5XWnd1RTJMSVhXU25GaDM4N2lWMG41VDIwT01xKzhweWxueWVZYnhu?=
 =?utf-8?B?TEZKcHNGK3FnbEdaeFl4NXlkbHpWeHpSQ2VwVEVqYmE4aldWZ2JhZ3NsZkNN?=
 =?utf-8?B?RmVRNDl1RGFuMXovK1RLRWp0c3VCTXgvRWhjdFh4OGxHclFlYklRMW04R0Zo?=
 =?utf-8?B?TytRN3ZhWjdNVXlVNmFrVWExWU5rZ0YrbVpuQ3NwdDB5eWp5UnU0cEV0OXJN?=
 =?utf-8?B?TXZtY0J1ZG0vU0d1Y0pVQ0JrZHJ6WlRVUXkweXFCT3ZFaEtza210dUJvaVFs?=
 =?utf-8?B?c2pRVW1ZWUdmUzVxUDBzUGhYc2NkN3hxaWcvNlNmRmRtemI1eGdmVzQyRGI0?=
 =?utf-8?B?c1hUQWxTSjlVVGNYMlJKWjNGZDFtNXhSdGVVS29WWHpSUDNoNkxRTllpZVhw?=
 =?utf-8?B?alZTQ2d5ZU16eXRNejRQeDFaOUFlc0pUL0NKc01WelpHdDhTbnUrTFQrL01N?=
 =?utf-8?B?dFJzb2RDVnoxU0VoUUJ1NGJsZUIwR2NBOE9IWXBudUxEanV6VklZOGNDanY5?=
 =?utf-8?B?Y2FXSUxQR2RlSGZGOUhRQXovT2VFRTVmaHlxWW0wS1BLSG5QZXRFbDhBUGhv?=
 =?utf-8?B?N3FiSmJ2UmgzTEZiR3hBTDd5TmVxek53dTFYd08rQllwR3k4SUYxTTZReWc1?=
 =?utf-8?B?T21JcDdEUTVXUHhSMVRWeUFDVzdtVUNSdEJhZUh6c2JKRU5oYkw5NmN4Qlp2?=
 =?utf-8?B?Q0svblJGeWNRUUdDcjVJd1E5Yi9KTnJjT2cxNkpTNDIvN0NTVjNSb0FzWjFu?=
 =?utf-8?B?YURWRXVUMkM1M3BMOVNWOHNkVGoyQmt0dGNEaG9kWnd6ZDFRV2tSYlF5ak1E?=
 =?utf-8?B?WTVXUGlMRkovYTVYS011VytyZGx5WEs5NW9ENnNJMTc2RHg2Wk5PNWllZ0R2?=
 =?utf-8?B?Ryt0OGFmUnV3d1N1b0VtUFhOQ1RMaWJnWEVtRHJHeHdIWGxxMTBNWmhReUZX?=
 =?utf-8?B?ZkUwQjZOUC91V3A0SWFmUC9aRzVrRmZxakhPRHk1R0YvS09ZZGVOQ0dVTzcr?=
 =?utf-8?B?K1pjSFZLY3dMQWlwNFlnYTl3ZDR2TmFtaWRLTU9mV2xPeldzeWJiK1h0VUJQ?=
 =?utf-8?B?dXdXN09PQy9ienpTb2lJTlNJK1ptSFJwbkJKVWRZR2NSZmxKM3ZSRG1TUzFC?=
 =?utf-8?B?c2prS05sdW9mV2dpdktNb1NlclRKWlp2YmlYWE1naUpBSUl2VmRSYkExTmg0?=
 =?utf-8?B?Wm9MSzdUKzhURkRkK0pVWVJPbXoxajhxdkg3dzFoVkFzWHJ6VE5BMzQwS3RQ?=
 =?utf-8?B?WitMc0ZTUWF6RUR6ZnZvc2N4OVF6WCtTYTVQQjBNM3pFZUVJaUFWdHVseU9o?=
 =?utf-8?B?YUZuaGFBTnlPTm95RENxdktkc0JYaWd0dFhGLzZWQWVqM28xVHNvSWI4UkRi?=
 =?utf-8?Q?2P7ebr?=
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)(376014)(36860700013)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Apr 2025 13:02:07.8794
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 4ba7c460-68f0-43e5-d76e-08dd82670dbc
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:
	SJ5PEPF000001D5.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB7742

On Fri Apr 18, 2025 at 11:58 PM BST, dmkhn wrote:
> On Thu, Apr 17, 2025 at 01:48:30PM +0100, Alejandro Vallejo wrote:
>> From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
>>=20
>> Look for a subnode of type `multiboot,ramdisk` within a domain node and
>> parse via the fdt_read_multiboot_module() helper. After a successful
>> helper call, the module index is returned and the module is guaranteed
>> to be in the module list.
>>=20
>> Fix unused typo in adjacent comment.
>>=20
>> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
>> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
>> Signed-off-by: Alejandro Vallejo <agarciav@amd.com>
>> ---
>> v4:
>>   * s/XENLOG_ERR/XENLOG_WARNING/ on duplicate ramdisk.
>>   * Removed stray ")" in printk
>>   * s/else if/if/ (because of continue)
>>   * Removed trailing continue
>> ---
>>  xen/arch/x86/setup.c            |  4 ++--
>>  xen/common/domain-builder/fdt.c | 25 +++++++++++++++++++++++++
>>  2 files changed, 27 insertions(+), 2 deletions(-)
>>=20
>> diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
>> index 4cae13163b..76ceb5221f 100644
>> --- a/xen/arch/x86/setup.c
>> +++ b/xen/arch/x86/setup.c
>> @@ -2150,11 +2150,11 @@ void asmlinkage __init noreturn __start_xen(void=
)
>>       * 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 the=
re are
>> -     * any remaining unclaimed boot modules, and report them as unusued=
 initrd
>> +     * any remaining unclaimed boot modules, and report them as unused =
initrd
>>       * candidates.
>>       */
>>      initrdidx =3D first_boot_module_index(bi, BOOTMOD_UNKNOWN);
>> -    if ( initrdidx < MAX_NR_BOOTMODS )
>> +    if ( !bi->hyperlaunch_enabled && initrdidx < MAX_NR_BOOTMODS )
>>      {
>>          bi->mods[initrdidx].type =3D BOOTMOD_RAMDISK;
>>          bi->domains[0].module =3D &bi->mods[initrdidx];
>> diff --git a/xen/common/domain-builder/fdt.c b/xen/common/domain-builder=
/fdt.c
>> index 50fde2d007..c0f526a4ce 100644
>> --- a/xen/common/domain-builder/fdt.c
>> +++ b/xen/common/domain-builder/fdt.c
>> @@ -216,6 +216,31 @@ static int __init process_domain_node(
>>                  bd->kernel->fdt_cmdline =3D fdt_get_prop_offset(
>>                      fdt, node, "bootargs", &bd->kernel->cmdline_pa);
>>          }
>> +        else if ( !fdt_node_check_compatible(fdt, node, "multiboot,ramd=
isk") )
>> +        {
>> +            int idx;
>> +
>> +            if ( bd->module )
>> +            {
>> +                printk(XENLOG_WARNING
>> +                       "Duplicate module for domain %s\n", name);
>> +                continue;
>> +            }
>> +
>> +            idx =3D fdt_read_multiboot_module(fdt, node, address_cells,
>> +                                            size_cells, bi);
>> +            if ( idx < 0 )
>> +            {
>> +                printk(XENLOG_ERR
>> +                       "  failed processing module for domain %s\n",
>> +                       name);
>> +                return -EINVAL;
>
> Propagate fdt_read_multiboot_module()'s error to the caller, i.e.:
>
>                    return idx;

Sure

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 13:03:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 13:03:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.964636.1355375 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7Zl7-0006c9-DK; Wed, 23 Apr 2025 13:03:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 964636.1355375; Wed, 23 Apr 2025 13:03: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 1u7Zl7-0006c2-AM; Wed, 23 Apr 2025 13:03:25 +0000
Received: by outflank-mailman (input) for mailman id 964636;
 Wed, 23 Apr 2025 13:03: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=VjMx=XJ=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u7Zl6-0006aR-28
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 13:03:24 +0000
Received: from NAM02-SN1-obe.outbound.protection.outlook.com
 (mail-sn1nam02on2062b.outbound.protection.outlook.com
 [2a01:111:f403:2406::62b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 54b2c41a-2043-11f0-9ffb-bf95429c2676;
 Wed, 23 Apr 2025 15:03:22 +0200 (CEST)
Received: from MN0P223CA0002.NAMP223.PROD.OUTLOOK.COM (2603:10b6:208:52b::28)
 by PH8PR12MB6676.namprd12.prod.outlook.com (2603:10b6:510:1c3::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.35; Wed, 23 Apr
 2025 13:03:15 +0000
Received: from BN2PEPF000044A2.namprd02.prod.outlook.com
 (2603:10b6:208:52b:cafe::39) by MN0P223CA0002.outlook.office365.com
 (2603:10b6:208:52b::28) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.37 via Frontend Transport; Wed,
 23 Apr 2025 13:03:15 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BN2PEPF000044A2.mail.protection.outlook.com (10.167.243.153) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Wed, 23 Apr 2025 13:03:14 +0000
Received: from localhost (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, 23 Apr
 2025 08:03:02 -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: 54b2c41a-2043-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=OOPSaF/qE7eRNAaJVnxIf8EY4EmhOcgU0B88YGE3Wx/SsOy41tbY14cp6JH2ggUBwCbq4msHfqP6jTiboqMFa2kykFDqrwcxBZNh2HHt6m0PZkSmD60DFs8xO0BzpvtjBQx4+GQWls5FfCH+vP6/Pc0z8nlF49Rv/VaSWGcoM2dCiRrkFuInUupOsIwvuUSJnrrUrE0jjozJw9p1at6kCdQdydLWfUeyHfLmHKgaw4BmGxaYmzOGuVo9qpCJcikjJJSJua4NxlU4j6hrEL+9n5wGqatxlXdfl0Q2CfPcLkxG31cMuXyR9LBGzxSWYnHAmZ8SB/lQqQqmGsDGzj995Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Pq44tbvnOG+xeNER2CbvLbqeUgJqm3/M+dRCwgHFYzI=;
 b=fIV4b0UthnCEoWC3o0YkdWYnTWr3j9iF+aVnfibb38Qey29hbckt/nPmBJ8a0VipNVDu5bJ9sBDJjg6LqBUcuJ/lTExlQ3rYNJofaM4TClOpaolafslxH047Fth0v9R+e+QyOCQbvdqpQIY9ryZ4kSiHzCP8eL2XUzqx56cWEZOnPUkzsQinzTEQhUMN7Rcv7s4ZPnWkNgxiSX1V/fJtTUQ0UXLWMOHs2WpbPD58NINs0WF1UIRGPRvCWmhWnb6DHBB21PHX9y+tuzOwkJ8NVVn43WwiaxRQvyPGpO5LtT7oTrajd2ADkrwWu1JX5F3fn3ztmSWI5r90dePFaLObCQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=proton.me 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=Pq44tbvnOG+xeNER2CbvLbqeUgJqm3/M+dRCwgHFYzI=;
 b=I/nU8jQh+EO4wgy3wtSpgh5SeQwsvZf/w9GsF7NXl4Cgdo1vyI4hVZGghPiMkuA7CCOJhOJlpfcqvMTHrMc70ocJZvI3VYsmp3liA5TQ6m8lSokCM06g9fk13UapyenBa6ebjpeDxNCObygV3wX+zp1NsZ8aRI1/5HfxWY5nxe4=
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
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Wed, 23 Apr 2025 14:03:00 +0100
Message-ID: <D9E1ELO9F35P.ULZVGHT9AKPH@amd.com>
CC: <xen-devel@lists.xenproject.org>, "Daniel P. Smith"
	<dpsmith@apertussolutions.com>, Jan Beulich <jbeulich@suse.com>, "Andrew
 Cooper" <andrew.cooper3@citrix.com>, =?utf-8?q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, "Michal
 Orzel" <michal.orzel@amd.com>, Julien Grall <julien@xen.org>, "Stefano
 Stabellini" <sstabellini@kernel.org>
Subject: Re: [PATCH v4 09/13] x86/hyperlaunch: add domain id parsing to
 domain config
From: Alejandro Vallejo <agarciav@amd.com>
To: <dmkhn@proton.me>
X-Mailer: aerc 0.20.1
References: <20250417124844.11143-1-agarciav@amd.com>
 <20250417124844.11143-10-agarciav@amd.com> <aALbaXZlBeWtCAZt@kraken>
In-Reply-To: <aALbaXZlBeWtCAZt@kraken>
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: BN2PEPF000044A2:EE_|PH8PR12MB6676:EE_
X-MS-Office365-Filtering-Correlation-Id: 52a26663-ac91-4545-f299-08dd826735a4
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?ZmFmZFFiOFU4RnNxbHRNd3BGZkp0WE52L0c2WlRTKytVQ1BwNDdrSnkwM0dr?=
 =?utf-8?B?ZGlQOXRjNUozVXJHTUYwQkh3TVpWa0VwcStvNnl4bTEyN2gybHUyQmhLaXZC?=
 =?utf-8?B?R0g5b3dxWDE1SThmSi94OEtqQXJrbWY4MzhJWHRHNGUvS1JyZ0pkNVo0ZVZW?=
 =?utf-8?B?V2tGMlN6RlNrK3ZZRFBnTzFRZ1lSbzJyRlV1OC9ScmJDcnRCUnFXRHFvZnN5?=
 =?utf-8?B?UEZKUTd4eW5iZTM0bTdmUGtWa2NMMzROMlQvOGRIU2Y5end0eW9NZ3FRTmli?=
 =?utf-8?B?RUNmK0UybCtqbTJ0UjNwVVR4SDRWSEpkTXJPN0dKOXBHL1ZyTFVaamZINVpF?=
 =?utf-8?B?aG1SM3VQaEcvSFZtRHZWSmF5aDArVTRjV2pYRm53ODNpTklFYXVtbWsxcmVN?=
 =?utf-8?B?eUlOZG8wS0ZHQTFNNGRhNmF1UjQyU2ZLMGpjUGxKNkJveW5idXVnOFdMbWtr?=
 =?utf-8?B?STV4TlhDRGc1bzRvR1hETXZXUmNCaThoTjF5bVBXNlVXMTlMMlZtNTFja2hq?=
 =?utf-8?B?Qncya0xBQmI5ZHU1Q3NubHdVR1haWkQ2MnQvcmtaRFdTQy9SOHdSTE5mbWk3?=
 =?utf-8?B?V28yTk9DaGlhdEQ1czNjK2JycjhGL2Jwb0lUZlhKc0tva0FZWVZDN3dWOGQw?=
 =?utf-8?B?b0NNTnROdmtVdVA0TVl6Z2lYNEZXejZWMXBXTnFWczlGYjBOUVlDUENsaHYx?=
 =?utf-8?B?NmZVWDMxY2IrY1FqenNDNTg3TXcvV21jMk1lamQ3dkJJcGw2QVJNbzVnK0xI?=
 =?utf-8?B?WHdaT2dvcEM5Sm44cmNxM2RlRXlaUmVTV2szUDF6cCtaTjRnM2VSQy9KZmNs?=
 =?utf-8?B?UTZqZ2FUZmI3Rko0a1htZzlRajQ3UGpGSDh6WGdIT2FmNm9zWjVQZ2VnUUcv?=
 =?utf-8?B?VmFiZzd0ZTBCemE3TDJzSTM3RkltTzdGVCtlMEJiNW9NYzFETWlIWXpaaGNG?=
 =?utf-8?B?dXhnOHByczF3Y0dKdTBjZTlpZ0FSZ3dYWTljZ1BwV0ZudUxtQ0FWVHRzZ2wv?=
 =?utf-8?B?NzcxTGZrbFJRZWZQaWVzYlR5bjdESS9Mb1UyWURJaUhuTUpKUHR6dkZKc2h3?=
 =?utf-8?B?QnZJaFBtOU5TTmlVR3Brc3pXZ096ZGRvU3B0RnZLV0I4SjB2SkdwdWZzNnpP?=
 =?utf-8?B?UHF4VTJ5L2w4emdma09JR01sVFlGRDl2QldxODZXdDdiNUtLMFVDVXVLdVZz?=
 =?utf-8?B?UGZuRkRWemM4V25OR2ZYYkJMQkF5ai9tcm5aTkhkZkdRQ1NiUTRWR1hGQ3FW?=
 =?utf-8?B?dFVpcVJIaGlxMDYxNXVxUTdlL0dsUEpxam45anlWbE9pSGM4NXM2Nnh5WjZt?=
 =?utf-8?B?YXdyMjUyVitlY1Q1ZlYyWHdFbE05K21LSmNKcmJOMDJBMit5Z1FkWDlicFc1?=
 =?utf-8?B?NDlvN3V3RmpDaTZMbkxUbUFlazlFVkJBeFNPY0RXcWZxMTFjd1puNlNCVkJT?=
 =?utf-8?B?amppMmhmSnVsdGNnalMxU3NMdnlVUUxLOE8xL1VJRjl5MnI0TE16US85MFZS?=
 =?utf-8?B?aWRmbUk5ODZGT1grc1Ezem5mWjJiNGlvMVpOTkc2d1JZVGlPczd0SUhnNURs?=
 =?utf-8?B?d1NPU2pSUGQzS0Z1MmxISDVMWDlHVWR1YzZ0NjdRNEhWMDNqemVWSVFOOGFX?=
 =?utf-8?B?a0RReVZvZ0RBVTMzN2RvazcyV1V2MGFmcmFaNUJtdW5VRXh0V1A1SDhOUjRI?=
 =?utf-8?B?WlJncXpLQ3daSTFLQmVxeXhZT0Z6UXB5dkZrVzJWZ0lyejAvK011TkcxZjdv?=
 =?utf-8?B?VTltLzhFZzZLQndYVmpVWGc3aS94dTFuQnlMa1lxYTdMclZlSmRsdFFTQ1N6?=
 =?utf-8?B?OEF2U3dENy9MUGxaVThkNHpjUXBScElDblJoNUMxcUw0RHVWKzBMdERQcmhJ?=
 =?utf-8?B?cFg2eFRUTWRBdXNsWUpLTW9FMWM1UUpvVlhYcTNkbVVlcWxQbkFTVWR3eXMv?=
 =?utf-8?B?RUZ5K2Q3cS94ZU5NNGtLMVhlVjdIQm5XYk1KNERPbU10Vnp4NUozYW1iWjNo?=
 =?utf-8?B?WkcwZ2lSU2FnelRqQ1F4eVl1cytVZEg1ellCYWgzZS9EUVd2ZzJGME1vTWdJ?=
 =?utf-8?Q?jXboQF?=
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: 23 Apr 2025 13:03:14.9292
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 52a26663-ac91-4545-f299-08dd826735a4
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:
	BN2PEPF000044A2.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH8PR12MB6676

On Sat Apr 19, 2025 at 12:08 AM BST, dmkhn wrote:
> On Thu, Apr 17, 2025 at 01:48:31PM +0100, Alejandro Vallejo wrote:
>> From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
>>=20
>> 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.
>>=20
>> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
>> Signed-off-by: Alejandro Vallejo <agarciav@amd.com>
>> ---
>> v4:
>>   * Add missing newline
>>   * Adjusted printks
>>   * Checked domid node against list of outstanding domids.
>> ---
>>  xen/arch/x86/setup.c            |  5 ++--
>>  xen/common/domain-builder/fdt.c | 51 ++++++++++++++++++++++++++++++++-
>>  2 files changed, 53 insertions(+), 3 deletions(-)
>>=20
>> diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
>> index 76ceb5221f..04ad2d0937 100644
>> --- a/xen/arch/x86/setup.c
>> +++ b/xen/arch/x86/setup.c
>> @@ -1033,8 +1033,9 @@ static struct domain *__init create_dom0(struct bo=
ot_info *bi)
>>      if ( iommu_enabled )
>>          dom0_cfg.flags |=3D XEN_DOMCTL_CDF_iommu;
>>=20
>> -    /* Create initial domain.  Not d0 for pvshim. */
>> -    bd->domid =3D get_initial_domain_id();
>> +    if ( bd->domid =3D=3D DOMID_INVALID )
>> +        /* Create initial domain.  Not d0 for pvshim. */
>> +        bd->domid =3D get_initial_domain_id();
>>      d =3D domain_create(bd->domid, &dom0_cfg, pv_shim ? 0 : CDF_privile=
ged);
>>      if ( IS_ERR(d) )
>>          panic("Error creating d%u: %ld\n", bd->domid, PTR_ERR(d));
>> diff --git a/xen/common/domain-builder/fdt.c b/xen/common/domain-builder=
/fdt.c
>> index c0f526a4ce..0d3c713041 100644
>> --- a/xen/common/domain-builder/fdt.c
>> +++ b/xen/common/domain-builder/fdt.c
>> @@ -2,6 +2,7 @@
>>  /*
>>   * Copyright (C) 2024, Apertus Solutions, LLC
>>   */
>> +#include <xen/domain.h>
>>  #include <xen/err.h>
>>  #include <xen/init.h>
>>  #include <xen/lib.h>
>> @@ -178,12 +179,54 @@ static int __init fdt_read_multiboot_module(const =
void *fdt, int node,
>>  static int __init process_domain_node(
>>      struct boot_info *bi, const void *fdt, int dom_node)
>>  {
>> -    int node;
>> +    int node, property;
>>      struct boot_domain *bd =3D &bi->domains[bi->nr_domains];
>>      const char *name =3D fdt_get_name(fdt, dom_node, NULL) ?: "unknown"=
;
>>      int address_cells =3D fdt_address_cells(fdt, dom_node);
>>      int size_cells =3D fdt_size_cells(fdt, dom_node);
>>=20
>> +    fdt_for_each_property_offset(property, fdt, dom_node)
>> +    {
>> +        const struct fdt_property *prop;
>> +        const char *prop_name;
>> +        int name_len, rc;
>> +
>> +        prop =3D fdt_get_property_by_offset(fdt, property, NULL);
>> +        if ( !prop )
>> +            continue; /* silently skip */
>> +
>> +        prop_name =3D fdt_get_string(fdt, fdt32_to_cpu(prop->nameoff), =
&name_len);
>> +
>> +        if ( !strncmp(prop_name, "domid", name_len) )
>> +        {
>> +            uint32_t val =3D DOMID_INVALID;
>> +
>> +            if ( (rc =3D fdt_prop_as_u32(prop, &val)) )
>> +            {
>> +                printk(XENLOG_ERR
>> +                       "  failed processing domain id for domain %s\n",=
 name);
>> +                return rc;
>> +            }
>> +            if ( val >=3D DOMID_FIRST_RESERVED )
>> +            {
>> +                printk(XENLOG_ERR "  invalid domain id for domain %s\n"=
, name);
>> +                return -EINVAL;
>> +            }
>> +
>> +            for ( unsigned int i =3D 0; i < bi->nr_domains; i++ )
>> +            {
>> +                if ( bi->domains[i].domid =3D=3D val )
>> +                {
>> +                    printk(XENLOG_ERR "  duplicate id for domain %s\n",=
 name);
>> +                    return -EINVAL;
>> +                }
>> +            }
>> +
>> +            bd->domid =3D val;
>> +            printk(XENLOG_INFO "  domid: %d\n", bd->domid);
>> +        }
>> +    }
>> +
>>      fdt_for_each_subnode(node, fdt, dom_node)
>>      {
>>          if ( !fdt_node_check_compatible(fdt, node, "multiboot,kernel") =
)
>> @@ -249,6 +292,12 @@ static int __init process_domain_node(
>>          return -ENODATA;
>>      }
>>=20
>> +    if ( bd->domid =3D=3D DOMID_INVALID )
>> +        bd->domid =3D get_initial_domain_id();
>> +    else if ( bd->domid !=3D get_initial_domain_id() )
>> +        printk(XENLOG_WARNING
>> +               "Warning: Unsuported boot with missing initial domid\n")=
;
>
> s/Unsuported/Unsupported/

Ack

>
> Also, add bd->domid to the printout?

Yes, I'll do a rundown of the error strings and ensure they have
identifying tokens.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 13:05:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 13:05:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.964653.1355385 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7Zmw-0007Dy-Rs; Wed, 23 Apr 2025 13:05:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 964653.1355385; Wed, 23 Apr 2025 13: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 1u7Zmw-0007Dr-OI; Wed, 23 Apr 2025 13:05:18 +0000
Received: by outflank-mailman (input) for mailman id 964653;
 Wed, 23 Apr 2025 13:05: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=rvAI=XJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u7Zmv-0007Dl-RZ
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 13:05:17 +0000
Received: from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com
 [2a00:1450:4864:20::32b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 99d92120-2043-11f0-9eb0-5ba50f476ded;
 Wed, 23 Apr 2025 15:05:16 +0200 (CEST)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-43cef035a3bso45141515e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 23 Apr 2025 06:05:16 -0700 (PDT)
Received: from [10.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-4408c7cfcabsm30603085e9.0.2025.04.23.06.05.15
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 23 Apr 2025 06:05: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: 99d92120-2043-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745413516; x=1746018316; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=8wPVfY45gC81xzNrIkM612/keOtLJ8qS7AT1W6AKxnc=;
        b=V90dMauxRsxzmLIX010B8PVEg170I+xl6ahtyFB3frDCxcJeZumgb90qEVCpnuJ0d0
         uwtzedszdZxc3kXUil+R/bNKeAtzkyD4Iux4B68/w60Ia1SfyeS8GjFRVJh6jtaf0Tod
         ov3nb8Pl1BAhdI7wgEZ0i0anGJs9vpNDEp1GdfhIW95hdBHtjiKF1P32HRkwCIIH8ZAz
         bM5WDXr1zK4aalfDMx+p6w2MJK7+iNWV+3uvuI4eHDFHPMvab9WPrhvAfA7DF2gRS2Qm
         eOgjilrnEJE4O2z8JjNbfQXVpo+qUUjf49hbL/SQZKginsAkBOQyLnpbL9QSXuSXGb/2
         2vpA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745413516; x=1746018316;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=8wPVfY45gC81xzNrIkM612/keOtLJ8qS7AT1W6AKxnc=;
        b=ulm3B1HZZtSQsstPLOt/MpiBY+OUsuUYVEnFRwEfgNijfMPROGzG55PhX0iTEpf6kM
         rf6fVnYLDgSqZgQO2KtmY1nbuR74rv11B7k5HVoSdr22KFdTVkOy8uzJkA2AcZByXYb8
         PjWuE9nM/MCpAvteD30Juv05QzaDKqxN6WvISP7h1PRemb4joe0aBYkLkhSwuwhXnLnv
         defxFbCjO+dSZHgVR8yuXU09OjdDOB4AtrLk5fK4XzP27ALmF/wzQvItutwIO9gWR6UU
         SFPtVCZk57WfWXKf2yggSfLqgcqM3x7RmuJkPhqM+4WLrvlMVjAuzyJjxCu5UzAHLWHq
         5nRw==
X-Forwarded-Encrypted: i=1; AJvYcCXf5MolSIfat7DnIelaZucoEIDzge2YktriOaKdN+aCQlWqryVFyCtWM3jMtqVmG2YmMIL7FdFuNIk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyFR5y7/GsHKbik8OPHcuO0nz7czBZH0N+a/6gv6XRBJFEWwXP5
	wz6KXNTzkcVS7qqGEdWoCli4c8lXS5/puLO18tMqkX3bGDCNoncdmMwQ4cobdg==
X-Gm-Gg: ASbGncsZ98/W0JHRbW/Th5yjM8WJ4z7rHW2/7QL2x/eU6usY1+3WNLHL+3pNwLbppU0
	jlBLwOWGkiFusBDm89pgMe4aKue/qZSXvae6aYgAc4IjGFK3MhamOdb+nWSK2Ve/wgr8ODZ30Li
	Jb1OqGJt/AUSn0xrEiLi8gWoYQub0cQ9DshruyXDRKX59HrhLnfg5oz9OLWMvHcgWGsi7+lm+IU
	oQdwnj/LDQyIo5X4YAeBp2QvMkKlAY8Qg2EuWqnu2FSnPUEhbLSWbbrrzkoH756GFnx3iM1pBBm
	VDzbdqVRPBSxB0FqSLG7q51wC3dwo6PIzWQMIncSepDTcbChFG/3LbZkCQGEcrYh5H78kheP7be
	HrEpdQkpBovBedPJPhqb/YAgPEQ==
X-Google-Smtp-Source: AGHT+IEDG7mmceJmZh7QuPpfuuYtqOZbm3py8DdvpSbt2Kt3yiREDnuqtX+4pLuyoOpSg9Pcuy2ATw==
X-Received: by 2002:a05:600c:3c8d:b0:43d:94:cfe6 with SMTP id 5b1f17b1804b1-4406abb282bmr144535775e9.16.1745413515654;
        Wed, 23 Apr 2025 06:05:15 -0700 (PDT)
Message-ID: <a9511d98-64f5-4c61-a3f0-440616d0de35@suse.com>
Date: Wed, 23 Apr 2025 15:05:14 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] x86/intel: workaround several MONITOR/MWAIT errata
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20250423113215.80755-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: <20250423113215.80755-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 23.04.2025 13:32, Roger Pau Monne wrote:
> There are several errata on Intel regarding the usage of the MONITOR/MWAIT
> instructions, all having in common that stores to the monitored region
> might not wake up the CPU.
> 
> Fix them by forcing the sending of an IPI for the affected models.
> 
> The Ice Lake issue has been reproduced internally on XenServer hardware,
> and the fix does seem to prevent it.  The symptom was APs getting stuck in
> the idle loop immediately after bring up, which in turn prevented the BSP
> from making progress.  This would happen before the watchdog was
> initialized, and hence the whole system would get stuck.
> 
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>

Acked-by: Jan Beulich <jbeulich@suse.com>
with a nit and an entirely optional suggestion:

> @@ -380,6 +380,38 @@ static void probe_c3_errata(const struct cpuinfo_x86 *c)
>      }
>  }
>  
> +/*
> + * APL30: One use of the MONITOR/MWAIT instruction pair is to allow a logical
> + * processor to wait in a sleep state until a store to the armed address range
> + * occurs. Due to this erratum, stores to the armed address range may not
> + * trigger MWAIT to resume execution.
> + *
> + * ICX143: Under complex microarchitectural conditions, a monitor that is armed
> + * with the MWAIT instruction may not be triggered, leading to a processor
> + * hang.
> + *
> + * LNL030: Problem P-cores may not exit power state Core C6 on monitor hit.
> + *
> + * Force the sending of an IPI in those cases.
> + */
> +static void __init probe_mwait_errata(void)
> +{
> +    static const struct x86_cpu_id models[] = {

__initconst

> @@ -406,6 +438,8 @@ static void Intel_errata_workarounds(struct cpuinfo_x86 *c)
>  		__set_bit(X86_FEATURE_CLFLUSH_MONITOR, c->x86_capability);
>  
>  	probe_c3_errata(c);
> +	if (system_state < SYS_STATE_active && c == &boot_cpu_data)
> +		probe_mwait_errata();
>  }

You could simplify the condition by using just system_state < SYS_STATE_smp_boot
(without any &&), I think.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 13:05:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 13:05:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.964657.1355395 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7ZnG-0007Y7-2F; Wed, 23 Apr 2025 13:05:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 964657.1355395; Wed, 23 Apr 2025 13: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 1u7ZnF-0007Y0-Vm; Wed, 23 Apr 2025 13:05:37 +0000
Received: by outflank-mailman (input) for mailman id 964657;
 Wed, 23 Apr 2025 13: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=VjMx=XJ=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u7ZnE-0007Dl-L1
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 13:05:36 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on2062b.outbound.protection.outlook.com
 [2a01:111:f403:2415::62b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a2d850c7-2043-11f0-9eb0-5ba50f476ded;
 Wed, 23 Apr 2025 15:05:32 +0200 (CEST)
Received: from BN9PR03CA0685.namprd03.prod.outlook.com (2603:10b6:408:10e::30)
 by PH8PR12MB7255.namprd12.prod.outlook.com (2603:10b6:510:224::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.22; Wed, 23 Apr
 2025 13:05:25 +0000
Received: from BN2PEPF000044A3.namprd02.prod.outlook.com
 (2603:10b6:408:10e:cafe::ff) by BN9PR03CA0685.outlook.office365.com
 (2603:10b6:408:10e::30) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.35 via Frontend Transport; Wed,
 23 Apr 2025 13:05:25 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BN2PEPF000044A3.mail.protection.outlook.com (10.167.243.154) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Wed, 23 Apr 2025 13:05:24 +0000
Received: from localhost (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, 23 Apr
 2025 08:05:22 -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: a2d850c7-2043-11f0-9eb0-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=f9YeIZ9TAf/chWimnB0GaPAJ3tKKLkrBnxEkiqyLA2OWHKjB9C3ZC8njGQpQq1o0JJvwfScyIwfPkuWDDrOV2+NcF9WaTKgHzfrGlSvUpvPOVM0OATTrxdwvuwGLzLaWeObkjHUdM47qmiTDCh6vhzIJwDKJ+nUCxHzxSXfJaaHMYFARvG+Q9CUAgvmfFSqx6XZ61277v3iDLDtwpYCTrnVu+LWDGSlvkdxsku7EdyMro/h3Mk/yEJhUs1fOOrD4fhrO9GO2aFwPiYuj6RCkiGFk7WKF8h+k/Uzjz4cs1/q72/Q+Lp9spQUhCDTYw1LM6YuFgRGTWAIySO00S4rWIQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=x0BnSVIvKuggEUL7lwrJ3sy4hxNZiE2bq6jdHVZuyEQ=;
 b=ovBezUlOKxIa2RVm58L5AxBpRLzXVvSR8vpvjhL1GtdwEqGaWvZKNdREPD5OHvNhIvXdGMXDfIYBvE8uubzsmu/Ojl8j/a6hwuPSa+5szRaQ4fYP+3h5/XodP6Ydaa0lp+e2wQ2s3+ZQzJAXTJamJ3oh5OooyqNqLLN+lvm/5hD/esDQJVF2sadWbNgYvnfdZAmY0aApv6AWZ9Gt9UT5ocmIwf9n18flGRAIwb5Cpih+HYZjuL8zd7On/TvBT8zwvGSN/GKjfDjHyOK3O4R8knYORBmZeP7Npfn7XGzntjkdzIxhTGMSa9n55uEQdNvd7olHAoKEAp1f1A2rDwcZxA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=proton.me 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=x0BnSVIvKuggEUL7lwrJ3sy4hxNZiE2bq6jdHVZuyEQ=;
 b=FzzuJHDqeN20lUbmYL6zkOoPO2Ig7U34Ty3t+FydGwdSdTJ5srPKZ62BLEb50rYE7eFGm0W5RHsR3InrGD7Dq9DyEIdixy4AKqsnmCDFwmHfYdBb/yOZxygOfYdfLl041t7bSwTYJMKz2exrQIOW6WxPVjdHvE/54frmRH3aHvU=
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
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Wed, 23 Apr 2025 14:05:20 +0100
Message-ID: <D9E1GDUZWNM8.1JUXA0OEBDMKC@amd.com>
CC: <xen-devel@lists.xenproject.org>, "Daniel P. Smith"
	<dpsmith@apertussolutions.com>, Jan Beulich <jbeulich@suse.com>, "Andrew
 Cooper" <andrew.cooper3@citrix.com>, =?utf-8?q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, "Michal
 Orzel" <michal.orzel@amd.com>, Julien Grall <julien@xen.org>, "Stefano
 Stabellini" <sstabellini@kernel.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Jason Andryuk <jason.andryuk@amd.com>
Subject: Re: [PATCH v4 11/13] x86/hyperlaunch: add memory parsing to domain
 config
From: Alejandro Vallejo <agarciav@amd.com>
To: <dmkhn@proton.me>
X-Mailer: aerc 0.20.1
References: <20250417124844.11143-1-agarciav@amd.com>
 <20250417124844.11143-12-agarciav@amd.com> <aALeY6bt7lDCwXii@kraken>
In-Reply-To: <aALeY6bt7lDCwXii@kraken>
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: BN2PEPF000044A3:EE_|PH8PR12MB7255:EE_
X-MS-Office365-Filtering-Correlation-Id: 9f0d081a-7fbb-41a3-e963-08dd82678320
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|7416014|376014|36860700013|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?dk5NMUxYbjJycmVIeDVwUDlyQXU3VWVMcEswcmZ6REkzS3VCNlZsVHNJb0Ex?=
 =?utf-8?B?WTdraXhYNG9wM28wUlE5d3d4Y3Y0blBzRjIyd25ibFhlbzVhZWRYaWZuWkJR?=
 =?utf-8?B?SExoQjBOTWx6ekh5K0dMOU1XTmtrK3pwTjBqb1lUTndCcnU5cWdqRXpSRWJL?=
 =?utf-8?B?Rjl2cmN3VXFORVhoWE5tQmRZUVFxZnlSay9PeVMweXdqQUNSNk9wZXZOQ2J1?=
 =?utf-8?B?cXlJUE02cHYzb3BjQkUyYXFERld3SENJalRxMHNJeXVaNTFqdkhoWkNhZ3NY?=
 =?utf-8?B?M2U5eDlTZjJtYk1iY0p5ZVNMRm1NR0hSaW1RZVVHTmppa0RVT0NUb0owWjd5?=
 =?utf-8?B?T0pFZU5UaEczdFdKRm44NjJYRnI3Rlg1eEgvY1g0aDNZVFk2bHcvdXB3eHBq?=
 =?utf-8?B?NVFNS1paNE5YNU9uQk5vaERoLzZGR3dLQmZJd25PV1Mzc3hFcVpMZThBMzJ5?=
 =?utf-8?B?Y0loYkc4NUQ2UzdhZUVRMTNNR0pOZGp0Yk5aQno4T2s5STY0bk1NdFRMQkRB?=
 =?utf-8?B?SU9iUEFjdTlhOEFaS0R0Ymd4eFUzeVJzUTRYMXlqR1dYS3M5NmRPcmRPazZK?=
 =?utf-8?B?NENxUlE5Y2xCeGtGcTdzZWZnUzRxOEovT2pkODZYa3NkdzN1ZEdOMDM1c0xW?=
 =?utf-8?B?Rm8vVkoyUTRrRHZYa3J3Ryt0T2lRL1RKaEtQOWI0QzNQSFJKWUs3RnpDZ3o5?=
 =?utf-8?B?TzUyVmZjdU9qc1U1eWRWcUVsd3BWdnJwazNLSHRpNDJWL0N4d21lYzZHbDJj?=
 =?utf-8?B?RnVmdm4xS2creU5iNXIweTN2dGU1eDh2czZtY3dWeTJ1dU5DWXJzc1ViS2FF?=
 =?utf-8?B?VkU3eC93UzNBSkI1UllubVVHMGxCK0Fwd1YzSFp4RDlpRTJKQ2srZklocWxD?=
 =?utf-8?B?TGwwRXJyVVFyQWhuMVQ5SFU3SHgyUmdPTkFaRGVyY0Y1QXJzUG5BbFh4aDAz?=
 =?utf-8?B?Q0FBOXppTHh5eGVzc1Bqdkt2cGpFYVRvMm1QMmYzMEF0aWtSRlBqYldCdWFE?=
 =?utf-8?B?RFB4cXlyTTJnblE5aE9rTlZ3T253Y0dQWlhrbEhCbnhxdE1FczJHWm5Oa0Zi?=
 =?utf-8?B?YitYTjEwQVlTZUc1cU8ydkFrbXhkcDNiQkM1ak03ZmVPbUpkcFZTVWVidUNV?=
 =?utf-8?B?cTRKYStEa2QxeDE3bS9LajN3RnY0UGt2Kzd0cnhzaGxYWDVvQUMzNTh6Smt5?=
 =?utf-8?B?NWtYbTNsQnFOanNjU1JnbWFlTnVNOWsrYzVqTnp2dnJLV0dRcE1WN1ZWSE9U?=
 =?utf-8?B?eTVTNGQ5TlpwWTFrbDNCTm9pZFhKbjhPVEFHSUpLK21hM3BpY2h4T2JXM00v?=
 =?utf-8?B?MWhHV2VYYUptRFJ4ZlArR1REd3RLUFdPNlh1b1hsM2ZYb1E2QlMzM1BTY2VQ?=
 =?utf-8?B?ZGtZSUJhVUlIcmlOSVVIanlvTHFrSVBBa2tzWkNTY21RVXNCK2hrdW5Kdm1G?=
 =?utf-8?B?aUZIcmp0VnR5c0VsU3VpSnNLZW45bWtFSEltMjUwa3krOXRNb3BQRU41RzhV?=
 =?utf-8?B?N1pnNFlSZVplM2pDQmlNclBNazNCbE9LTzFGUHVCbkg0YXo2R2NQOC9TVjFv?=
 =?utf-8?B?aDZjYXdlQzNaQ0tUK2JFSkVWdTUxU3hXelpxVmp1WDVnRThoS2h3VHgzY25I?=
 =?utf-8?B?cEtlcUV6aVc3TWJpNm1iYVM0NWYySzlUaDg4NHFPeE1oWk1FejZpak51ajFS?=
 =?utf-8?B?Y0xqT0dkU0tHaEFHNUw4YjRjVExKRGl0R1MzQ0ZLaUtrMUlPWmtYUUI1Y0Qr?=
 =?utf-8?B?UHVRZGxENXY1YTNDQXlTSi9zV1JXN2I5SlR5VWFXV2hpVTI1bFhGLzJ1dUoz?=
 =?utf-8?B?WWRqbGVkbWFiRmlOS1NsYXpsdGNpZlJpOUxINysyMjlQNGJJWUdUblhjSnh3?=
 =?utf-8?B?WnZiTUJLTTRmMTl4bW4yK3g3MjVFTk8xVE4yWUdCa3k0RmdPajBWZ3NQVE1L?=
 =?utf-8?B?L1lFTFZvenIwVGQ3ZUtXS0swb1JQeEFvOVpwYURkbEJ4TEFJRHZ5ZEVoYjQw?=
 =?utf-8?B?eDNGM0FwNUQ1cGFxdHVoQWFQVmMwWFBBRU55STh2T01qRkkvdEloZEJwcTNv?=
 =?utf-8?Q?AWEstt?=
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)(7416014)(376014)(36860700013)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Apr 2025 13:05:24.9268
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 9f0d081a-7fbb-41a3-e963-08dd82678320
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:
	BN2PEPF000044A3.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH8PR12MB7255

On Sat Apr 19, 2025 at 12:21 AM BST, dmkhn wrote:
> On Thu, Apr 17, 2025 at 01:48:33PM +0100, Alejandro Vallejo wrote:
>> From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
>>=20
>> Add three properties, memory, mem-min, and mem-max, to the domain node d=
evice
>> tree parsing to define the memory allocation for a domain. All three fie=
lds are
>> expressed in kb and written as a u64 in the device tree entries.
>>=20
>> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
>> Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>
>> Signed-off-by: Alejandro Vallejo <agarciav@amd.com>
>> ---
>> Can't use KB() rather tha SZ_1K, as that's strictly for literals.
>
> Oh, that's right! Thanks!
>
>>=20
>> v4:
>>   * Don't override fdt_prop_as_u64() rc on error.
>>   * Add separate printk statements for each memory prop error.
>>   * Fix bug setting up dom0_size, dom0_min_size and dom0_max_size
>>     * Was overriding dom0_size on all 3 paths.
>>   * Pre-initialise max_pages of all boot_domains to be LONG_MAX, just as
>>     dom0_max_size.
>>     * Eventually dom0_max_size drops out in the bigger series, so we
>>       need that logic to be correct.
>> ---
>>  xen/arch/x86/dom0_build.c              |  8 ++++++
>>  xen/arch/x86/include/asm/boot-domain.h |  4 +++
>>  xen/arch/x86/setup.c                   |  5 +++-
>>  xen/common/domain-builder/fdt.c        | 36 ++++++++++++++++++++++++++
>>  xen/include/xen/libfdt/libfdt-xen.h    | 10 +++++++
>>  5 files changed, 62 insertions(+), 1 deletion(-)
>>=20
>> diff --git a/xen/arch/x86/dom0_build.c b/xen/arch/x86/dom0_build.c
>> index 0b467fd4a4..8db24dbc0a 100644
>> --- a/xen/arch/x86/dom0_build.c
>> +++ b/xen/arch/x86/dom0_build.c
>> @@ -627,6 +627,14 @@ int __init construct_dom0(const struct boot_domain =
*bd)
>>=20
>>      process_pending_softirqs();
>>=20
>> +    /* If param dom0_size was not set and HL config provided memory siz=
e */
>> +    if ( !get_memsize(&dom0_size, ULONG_MAX) && bd->mem_pages )
>> +        dom0_size.nr_pages =3D bd->mem_pages;
>> +    if ( !get_memsize(&dom0_min_size, ULONG_MAX) && bd->min_pages )
>> +        dom0_min_size.nr_pages =3D bd->min_pages;
>> +    if ( !get_memsize(&dom0_max_size, ULONG_MAX) && bd->max_pages )
>> +        dom0_max_size.nr_pages =3D bd->max_pages;
>> +
>>      if ( is_hvm_domain(d) )
>>          rc =3D dom0_construct_pvh(bd);
>>      else if ( is_pv_domain(d) )
>> diff --git a/xen/arch/x86/include/asm/boot-domain.h b/xen/arch/x86/inclu=
de/asm/boot-domain.h
>> index e316d4bcde..fa8ea1cc66 100644
>> --- a/xen/arch/x86/include/asm/boot-domain.h
>> +++ b/xen/arch/x86/include/asm/boot-domain.h
>> @@ -18,6 +18,10 @@ struct boot_domain {
>>  #define BUILD_MODE_ENABLE_DM     (1 << 1) /* HVM    | PVH     */
>>      uint32_t mode;
>>=20
>> +    unsigned long mem_pages;
>> +    unsigned long min_pages;
>> +    unsigned long max_pages;
>> +
>>      struct boot_module *kernel;
>>      struct boot_module *module;
>>      const char *cmdline;
>> diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
>> index 05e3d2cf2a..455dad454c 100644
>> --- a/xen/arch/x86/setup.c
>> +++ b/xen/arch/x86/setup.c
>> @@ -296,7 +296,10 @@ static const char *cmdline_cook(const char *p, cons=
t char *loader_name);
>>  struct boot_info __initdata xen_boot_info =3D {
>>      .loader =3D "unknown",
>>      .cmdline =3D "",
>> -    .domains =3D { [0 ... MAX_NR_BOOTDOMS - 1] =3D { .domid =3D DOMID_I=
NVALID } },
>> +    .domains =3D { [0 ... MAX_NR_BOOTDOMS - 1] =3D {
>> +        .domid =3D DOMID_INVALID,
>> +        .max_pages =3D ULONG_MAX,
>> +    }},
>>  };
>>=20
>>  static struct boot_info *__init multiboot_fill_boot_info(
>> diff --git a/xen/common/domain-builder/fdt.c b/xen/common/domain-builder=
/fdt.c
>> index 6809c7f917..90218d120a 100644
>> --- a/xen/common/domain-builder/fdt.c
>> +++ b/xen/common/domain-builder/fdt.c
>> @@ -7,6 +7,7 @@
>>  #include <xen/init.h>
>>  #include <xen/lib.h>
>>  #include <xen/libfdt/libfdt.h>
>> +#include <xen/sizes.h>
>>=20
>>  #include <asm/bootinfo.h>
>>  #include <asm/page.h>
>> @@ -246,6 +247,41 @@ static int __init process_domain_node(
>>                     (bd->mode & BUILD_MODE_ENABLE_DM) ? "hvm" :
>>                                                         "pvh");
>>          }
>> +        else if ( strncmp(prop_name, "memory", name_len) =3D=3D 0 )
>
> Use !strncmp(...) like in the below code?

Sure

>
>> +        {
>> +            uint64_t kb;
>> +            if ( (rc =3D fdt_prop_as_u64(prop, &kb)) )
>> +            {
>> +                printk(XENLOG_ERR "  bad \"memory\" prop on domain %s\n=
", name);
>> +                return rc;
>> +            }
>> +            bd->mem_pages =3D PFN_DOWN(kb * SZ_1K);
>> +            printk(XENLOG_ERR "  memory: %lu KiB\n", kb);
>> +        }
>> +        else if ( !strncmp(prop_name, "mem-min", name_len) )
>> +        {
>> +            uint64_t kb;
>> +            if ( (rc =3D fdt_prop_as_u64(prop, &kb)) )
>> +            {
>> +                printk(XENLOG_ERR
>> +                       "  bad \"mem-min\" prop on domain %s\n", name);
>> +                return rc;
>> +            }
>> +            bd->min_pages =3D PFN_DOWN(kb * SZ_1K);
>> +            printk(XENLOG_INFO "  min memory: %lu kb\n", kb);
>> +        }
>> +        else if ( !strncmp(prop_name, "mem-max", name_len) )
>> +        {
>> +            uint64_t kb;
>> +            if ( (rc =3D fdt_prop_as_u64(prop, &kb)) )
>> +            {
>> +                printk(XENLOG_ERR
>> +                       "  bad \"mem-max\" prop on domain %s\n", name);
>> +                return rc;
>> +            }
>> +            bd->max_pages =3D PFN_DOWN(kb * SZ_1K);
>> +            printk(XENLOG_INFO "  max memory: %lu KiB\n", kb);
>> +        }
>>      }
>>=20
>>      fdt_for_each_subnode(node, fdt, dom_node)
>> diff --git a/xen/include/xen/libfdt/libfdt-xen.h b/xen/include/xen/libfd=
t/libfdt-xen.h
>> index afc76e7750..3054b48a83 100644
>> --- a/xen/include/xen/libfdt/libfdt-xen.h
>> +++ b/xen/include/xen/libfdt/libfdt-xen.h
>> @@ -24,6 +24,16 @@ static inline int __init fdt_prop_as_u32(
>>      return 0;
>>  }
>>=20
>> +static inline int __init fdt_prop_as_u64(
>> +    const struct fdt_property *prop, uint64_t *val)
>> +{
>> +    if ( !prop || fdt32_to_cpu(prop->len) < sizeof(uint64_t) )
>> +        return -EINVAL;
>> +
>> +    *val =3D fdt64_to_cpu(*(const fdt64_t *)prop->data);
>> +    return 0;
>> +}
>
> Perhaps move the call to common/domain-builder/fdt.c?

Yes, all new additions to that header ought to have gone to fdt.c
instead. That was my original intent, but then didn't go through with
everything.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 13:08:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 13:08:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.964677.1355405 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7Zpe-0008Ir-EV; Wed, 23 Apr 2025 13:08:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 964677.1355405; Wed, 23 Apr 2025 13:08:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7Zpe-0008Ik-BQ; Wed, 23 Apr 2025 13:08:06 +0000
Received: by outflank-mailman (input) for mailman id 964677;
 Wed, 23 Apr 2025 13:08: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=VjMx=XJ=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u7Zpc-0008Ie-HP
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 13:08:04 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on20611.outbound.protection.outlook.com
 [2a01:111:f403:2414::611])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fbf9f656-2043-11f0-9ffb-bf95429c2676;
 Wed, 23 Apr 2025 15:08:02 +0200 (CEST)
Received: from BN0PR10CA0015.namprd10.prod.outlook.com (2603:10b6:408:143::33)
 by SA1PR12MB7222.namprd12.prod.outlook.com (2603:10b6:806:2bf::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.23; Wed, 23 Apr
 2025 13:07:58 +0000
Received: from BN2PEPF000044A0.namprd02.prod.outlook.com
 (2603:10b6:408:143:cafe::d6) by BN0PR10CA0015.outlook.office365.com
 (2603:10b6:408:143::33) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.36 via Frontend Transport; Wed,
 23 Apr 2025 13:07:57 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BN2PEPF000044A0.mail.protection.outlook.com (10.167.243.151) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Wed, 23 Apr 2025 13:07:57 +0000
Received: from localhost (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, 23 Apr
 2025 08:07:54 -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: fbf9f656-2043-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=YIQxZv3EuF9mpmJjSRHO6jKV1f2gBGOAq5cCV+f0nLMAKFfU332YKfLWaIj5m9SHMTFZFpTEuvYPZ6hDQTNtFH6mPxqrrO04ltkCypx0R0nxoB4bKbYktOMwFw2koROp3i4bTYYAwIW3flhfugmrw2Iqn1V0TMEjCHMVII5abOdt1maFJjcuTPV6DzMcepZ722JLTu+GYl+u8nWK2gYTaCs9XEU9d+JVhrRW8eVovN52E05ESsQgXushdvxwZ9/K1hMJDOJby5rdwo6lJUcKpM7bXPcvMH5WPl06xPNVF4PKpZ7HJ4omll2TyIZdIg5MwRQMUCAfqoU2rG/jXghaKQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=MNxTBPT4c3cs8bnzZWf6TFyxCPojNVRm6U3ZXly3Ht4=;
 b=qKfIfraMS+xjgAWq1E4s33v6C7T4bwGr9x5/hSbrhQUsExBbZCEXdq+sc4yPvSJCZZLzk0vTwxfJ3s8NR0azF0Cd7NpuD0q6CZIZsEHmV+deU7JGwzkDbUCCIhm8m0b7RN5YSuMeswx8sFD+6sO92RWBPiH5X/7TjKyZxpTSS2N8fHkdgYxDgvr6FnIjahJAB3l/0IunySJy8yI0VoTsIba8IZkMhiJx8yJU6wgs6zkZdTQA88msnUWac+b/vhQPxb43+AxsCYpVBxBGMwWeeN/Dl3UcXuQTOKd8/gEXDaySS/jCzgt0juIw7vHy3cX691ZENx9BM7lKaOxgl7DpVQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=proton.me 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=MNxTBPT4c3cs8bnzZWf6TFyxCPojNVRm6U3ZXly3Ht4=;
 b=HAt5XD1x5p+CUU+88epjouNVZHu5rEuw4DRwT1IVBiTyRSKHn8KLBc1tAQj2bq1sIs5CX60114W2dXUoe6dFAJqK8Ym8HSdOmGoa5Ei4nqHqMcZZPg6czXSY26UT5K1B9Vur6UHsU2nH9/8zYS3i3uwD/dFJTDin+IY1kX+Gdqc=
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
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Wed, 23 Apr 2025 14:07:51 +0100
Message-ID: <D9E1IBGIMTD2.1C7OB8RO40M0O@amd.com>
Subject: Re: [PATCH v4 13/13] x86/hyperlaunch: add capabilities to boot
 domain
From: Alejandro Vallejo <agarciav@amd.com>
To: <dmkhn@proton.me>
CC: <xen-devel@lists.xenproject.org>, "Daniel P. Smith"
	<dpsmith@apertussolutions.com>, Jan Beulich <jbeulich@suse.com>, "Andrew
 Cooper" <andrew.cooper3@citrix.com>, =?utf-8?q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, "Michal
 Orzel" <michal.orzel@amd.com>, Julien Grall <julien@xen.org>, "Stefano
 Stabellini" <sstabellini@kernel.org>, Jason Andryuk <jason.andryuk@amd.com>
X-Mailer: aerc 0.20.1
References: <20250417124844.11143-1-agarciav@amd.com>
 <20250417124844.11143-14-agarciav@amd.com> <aALfIbTCAO95zycA@kraken>
In-Reply-To: <aALfIbTCAO95zycA@kraken>
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: BN2PEPF000044A0:EE_|SA1PR12MB7222:EE_
X-MS-Office365-Filtering-Correlation-Id: 5d35b9e1-037b-45b8-4b29-08dd8267de40
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?WFlWQ21lYTlPQ0YrUm1WYi9WY1R4V0Q1ek5qZ08rREdVdlRsRVpNWGY3amUv?=
 =?utf-8?B?RnhpRGE1a1ZmYVJoZG1lVVRmcjZPam1qRHUzTDU5MHBJbE1mS01lT3pVTDRO?=
 =?utf-8?B?UHg2Z3Vwd2tNZzJUTDBkUkRJemwzOG8zYkMvaEUvakMvMTRCVDRHcWFZaTVi?=
 =?utf-8?B?RmJubFUweUFpRTB5dzdneHJCdzRrU2tEMjRVNHNhNDIxVHcrK2dhWnlQc01u?=
 =?utf-8?B?MUJHcStlaWxOdUtQNTVTMVkxWFBLWFI2aHBxTTBtbGVQYVQ1THllUk5yOE9X?=
 =?utf-8?B?NEJEckQxYlFmNkdhc0VwZEhFSXhxNE5xU205VkRxR2gxUEpyNmlNL2dBS21l?=
 =?utf-8?B?Vnd4cnNRUzgrR2RoWDNpbzBMbEhiMC9LMUJDTkQ2aUltK0V2SjZDc3BybzFW?=
 =?utf-8?B?RytqU2NISVdvZEgydjZiOFIvcGRGWFNWUkptQlJzSzdGVUVlQUJLUkVraHZW?=
 =?utf-8?B?c25HQTQ2TGk0NE9lbXlwNFVUYU9BYVdWT2hNSFZ0RUNtMUdGTE4ySW8wdkZs?=
 =?utf-8?B?VDNwWnFGVnBIQjJ5bU56MUhNT2pRaE44Y2YxRDFrVGF0cnVqNTFHaXlRNkFY?=
 =?utf-8?B?SVhNTXBOM214cU52V0dvVnhxTWJYVnNTQ3RzdDFXUDZueHg3Yk1wTFZTSG5p?=
 =?utf-8?B?cWtVU0pMNnM2YW9OSzJVNElEeDd6ZGRUcVFSUTNnRHlHd0E0KzJJK29zSmtF?=
 =?utf-8?B?U1BkMEZseFp6SnVNSSt5eUl1OGpZNml4TXByVlpwTmtFVDBQV2pUdW1IYVBw?=
 =?utf-8?B?aXppeE0zUUFzajJpWTkxZVJxS21WRE1iVmN0M080QzhwUkFBRG80R3ErRTk1?=
 =?utf-8?B?K2ZCdHBpeGUvMVl1RWl1SHo2S2xsMys0UzFMVjFyTmljcWlOYVRIOWtMQ1Fn?=
 =?utf-8?B?UHFYSGVucmE4LzMzRC9CZVp0UkRVTDBIR1VjRS9GbGxHaGI5Y1ptb2h2UVZP?=
 =?utf-8?B?THpRUkdSOTJOOE9WTXNCSEhRZVNKSnBmZ0daR1RQZDJVTXNxajIvUWgrdXpI?=
 =?utf-8?B?eFF0ZDRnWHdqMi9JRWpOOU5FUGVGMEtvZU5zNElnREpRNXpVWjdBTUQ5WnlJ?=
 =?utf-8?B?S015Tmw0NitPRTVPd1dtR3JKcGlqeHplTWZlMVV0a21KSXhLT3lEQm5CZEpL?=
 =?utf-8?B?dWkrbGNYUXB0UXg3SmhtSERIdGhzQTBWdUQ5UndBYVRzbndUU2djVWpnNzdv?=
 =?utf-8?B?dHkxTkR0L01TbElaZVhXZmUwT3JVQlg0NGtrTzRrMGROb1JDU2lzdWJiYVN3?=
 =?utf-8?B?czNnNHFzTml4M1Q2MHV6c3pSYWM4L2JrU09Jb2lPeUxsN3NSc3lxZHpLZ05E?=
 =?utf-8?B?MEEvQTdQekYwNGtOSXpKek1JOVM5emFHQWFrVTdIeHdRT2JZQWJZRVNydDha?=
 =?utf-8?B?cHJyRlZWMzBKY2s5bmpYTzJTTnF3Ry9oMXd4UW5pTzcyOXErZVpzS014SUFQ?=
 =?utf-8?B?SFR0ZTF0TnAwVm1BWlBSWVA2Tm5ySlBsN0VxWlUyMmQwS2NxRmpiVlJhWUxV?=
 =?utf-8?B?MjFrbGtCL3AzWjJxWSsxdDNqcjROUWIzQU1TVFRjUXFkVEFBVXVnYVRYdDRp?=
 =?utf-8?B?aVpWOXpSaWZUcjVVKzZSVzlpQ2lEbDB1bElxb211aGx4UHRyOWQ4MW5Rc3Ix?=
 =?utf-8?B?czV0aCtlTWNVbk9wRllUWHk4Q3Jic1JTQjZHcEZOUEdvSjR4amJ1MnZERXhX?=
 =?utf-8?B?WWhBUE1KdHc5M0JFYzFkQ3lxeEFQbDVWMWN6aFdUTmVXOVlBN3NTNmM4MXpC?=
 =?utf-8?B?b1lrYnFiVzhhc05FK0gzUE1zNmlKcThIaXQrN0cyUlJyOVM2Z1oyaTVkeXh2?=
 =?utf-8?B?eG52UjVqcmwzM1BkSlFnc3U0YXR6eGZtbE95UWNGUUkxd1ovZ0MvT2EyMVZC?=
 =?utf-8?B?SStLbWRyMW9KR3ZrUXN3MVlIWlM5K1hZQW0xVzVzaTl5bnQzMUFyVVlKVmo2?=
 =?utf-8?B?dFZaWnhhWnlBM2w1MHZONzRKdUpwWTV5aXVpdWJiUmZLTHlNUExNa045NW1V?=
 =?utf-8?B?dU5Tc1BQL2cxNHM5cm43TnhlWnRHRi8ra0hvaGc5Tm44cnNZY3ZFOGhuSnVF?=
 =?utf-8?Q?cq/VPI?=
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: 23 Apr 2025 13:07:57.8058
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 5d35b9e1-037b-45b8-4b29-08dd8267de40
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:
	BN2PEPF000044A0.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB7222

On Sat Apr 19, 2025 at 12:24 AM BST, dmkhn wrote:
> On Thu, Apr 17, 2025 at 01:48:35PM +0100, Alejandro Vallejo wrote:
>> From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
>>=20
>> Introduce the ability to assign capabilities to a domain via its definit=
ion in
>> device tree. The first capability enabled to select is the control domai=
n
>> capability. The capability property is a bitfield in both the device tre=
e and
>> `struct boot_domain`.
>>=20
>> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
>> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
>> Signed-off-by: Alejandro Vallejo <agarciav@amd.com>
>
> Reviewed-by: Denis Mukhin <dmukhin@ford.com>

Thanks

Though now that CDF_hardware has been introduced to staging, this will have=
 to
change to introduce BUILD_CAPS_HARDWARE as well.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 13:08:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 13:08:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.964679.1355416 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7Zpt-0000CP-Sm; Wed, 23 Apr 2025 13:08:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 964679.1355416; Wed, 23 Apr 2025 13: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 1u7Zpt-0000CI-O0; Wed, 23 Apr 2025 13:08:21 +0000
Received: by outflank-mailman (input) for mailman id 964679;
 Wed, 23 Apr 2025 13:08: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=rvAI=XJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u7Zpt-0000C3-0I
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 13:08:21 +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 07392fb2-2044-11f0-9eb0-5ba50f476ded;
 Wed, 23 Apr 2025 15:08:20 +0200 (CEST)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-43cfe574976so47642915e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 23 Apr 2025 06:08:20 -0700 (PDT)
Received: from [10.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-44092d29b73sm25419085e9.17.2025.04.23.06.08.18
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 23 Apr 2025 06:08: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: 07392fb2-2044-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745413699; x=1746018499; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=TIl5AAqaF4gjd3jATkj4ZhtvLt8ilKHYRw28A8s+irI=;
        b=G/P9ydXSYKo4FUqj/woRrzvX7YxaoJWFNoW9yIzrQawsNUCmy/fWBaTff/SEtRA3Og
         QHazMKywkErGr/jSc4xqNnaQloYRLvLxwjqYpucLgUTlXp+Q/+0eu6QACCleQPnoqH/7
         skYKC04cEIofkD5yrR8HdpQjspoIsi/8JuculO+jvAj3FGQBGUgDtIWeQsl5CvuWOr7g
         BaQQyvGq+HkDXVLxjED5P6aW+8zXNKahgchL78RuBU52QNM1yIHMplSzuUTkG0m1ybnE
         HqSHKCOturpXuXViDfjBl3AZi/VVaXRsZFmOQZSkiuM4pN+b9/XornkLL98+Mad1SDs0
         fLmw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745413699; x=1746018499;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=TIl5AAqaF4gjd3jATkj4ZhtvLt8ilKHYRw28A8s+irI=;
        b=KdbCXOzBRafisQkj5BHUDFg7eSep7ccZxlH5Pbvjo0rOpTUJ7FGEkUd9b3Octz5t8c
         hw+/2j+NJZ6SJfHN8oD94cgdXT+9yDY7rV5empxKQGs5s114G8q8juRF5/0ZblTlMI1J
         s9fQ2ZR6NY+wsk+zi0GmhSjbzmqbhF9gcNUgVoxSdq/XZ2qwn5pxB0+YDrJLTnqOTmzE
         guXxtLtgHlHn6s/9m5CY03DgLwJnjMSmUisO4XkH6Ugv/EBgQ5KURYfz2sb6VtdQFegw
         EP87JQ+GXMGBJlWxq5icw/jazysvlU4SXsZpKHPdBhv+NBagnN5sMVKoeWbcPdOMy0lW
         epvQ==
X-Gm-Message-State: AOJu0Ywifl2htmgu66WHwo570rFRYvRj28ENXmZR1vfFOFC5ux5FJNJC
	eab6urZAgvnD0v2xALVnO/CVwjxAIRCVtp2sCfkcpiBmLmkrIhSJyi4FMWIerA==
X-Gm-Gg: ASbGnctQptpWlOOEtrJv89C+vU9dGXCVvzpm5guxOBbhBQAnQYt/esdkd20w5mFqVT+
	Fdhxm0ALKnarEGKtqHF465PTZCRFn5mMnO8OpEl/RYhf/blNKvJyRkhdKnYY3IAAtEgzFgsXYCM
	gNZVLZXt1u7lKTrekSkHm5nvpDS+t/coVzwNhcEMeYTajudbIRiOkr1KJovMcaatzvIx7iM4e3t
	pKmJ5Hd0PACqQsp8XM9oAM2ypEq8jCVYzKkG83tZ7EyqBTxm15zYVijKPE5tPtXyVSc5Z/mPDgO
	s7Pm1rRVrtVWxbSiv94OLUyhb/fcwHpNMp3DuP7bVuwC2skUhVI/w75ahV6ScKE6EgR4qhOcwp2
	aGMjOxhiSNOS/Xj03UgJY+0QXRg==
X-Google-Smtp-Source: AGHT+IEZG1H1mMD0acc0I4IxL8udodY13OrB2Zu2B2ThWNM0Oz2TL4UAOMkdhie9t1i8eeEVtJoB/w==
X-Received: by 2002:a05:600c:3c8d:b0:43c:e9d0:9ee5 with SMTP id 5b1f17b1804b1-4406abb0ca5mr185672835e9.18.1745413699480;
        Wed, 23 Apr 2025 06:08:19 -0700 (PDT)
Message-ID: <4813aeb3-72c6-4705-8591-1af63ec05ae8@suse.com>
Date: Wed, 23 Apr 2025 15:08:18 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 07/13] x86/hyperlaunch: obtain cmdline from device tree
To: Alejandro Vallejo <agarciav@amd.com>, dmkhn@proton.me
Cc: xen-devel@lists.xenproject.org,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Jason Andryuk <jason.andryuk@amd.com>
References: <20250417124844.11143-1-agarciav@amd.com>
 <20250417124844.11143-8-agarciav@amd.com> <aALX/NgsSi5sTyz3@kraken>
 <D9E1DIGCGP1O.QQ1KK0P3NX0K@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: <D9E1DIGCGP1O.QQ1KK0P3NX0K@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 23.04.2025 15:01, Alejandro Vallejo wrote:
> On Fri Apr 18, 2025 at 11:53 PM BST, dmkhn wrote:
>> On Thu, Apr 17, 2025 at 01:48:29PM +0100, Alejandro Vallejo wrote:
>>> --- a/xen/common/domain-builder/fdt.h
>>> +++ b/xen/common/domain-builder/fdt.h
>>> @@ -9,6 +9,30 @@ struct boot_info;
>>>  /* hyperlaunch fdt is required to be module 0 */
>>>  #define HYPERLAUNCH_MODULE_IDX 0
>>>
>>> +static inline int __init fdt_cmdline_prop_size(const void *fdt, int offset)
>>> +{
>>> +    int ret;
>>> +
>>> +    fdt_get_property_by_offset(fdt, offset, &ret);
>>
>> Perhaps something like
>>
>>        (void)fdt_get_property_by_offset...
>>
>> since there's no need to check the return value?
> 
> I vaguely seem to remember doing something like that a few years ago
> (because it does show intent and many linters require it) and being told
> not to. But maybe I misremember. I'm definitely happy to use that
> convention here and later unless someone pushes back for some reason.

Unless we settle on the need for such for Misra's sake, I'd like to ask
to avoid them. We generally try to avoid casts as much as possible. We
then also shouldn't add ones like suggested here.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 13:13:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 13:13:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.964706.1355425 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7ZuT-0002s1-By; Wed, 23 Apr 2025 13:13:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 964706.1355425; Wed, 23 Apr 2025 13: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 1u7ZuT-0002ru-8Q; Wed, 23 Apr 2025 13:13:05 +0000
Received: by outflank-mailman (input) for mailman id 964706;
 Wed, 23 Apr 2025 13:13: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=dLR5=XJ=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u7ZuS-0002ro-EN
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 13:13:04 +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 affdc282-2044-11f0-9eb0-5ba50f476ded;
 Wed, 23 Apr 2025 15:13:03 +0200 (CEST)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-43d0618746bso48761045e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 23 Apr 2025 06:13:03 -0700 (PDT)
Received: from [192.168.86.29] ([83.104.178.215])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-39efa43bf20sm18505613f8f.48.2025.04.23.06.13.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 23 Apr 2025 06:13: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: affdc282-2044-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745413983; x=1746018783; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=vh2t5anhA6iDwOVHR1VzV29nAr/+XXvkWZl05lyvl9I=;
        b=YjwHVZD8qlqY8+X1XCjkug8KE2dheR8bgt/Rpx0jgN9Con8sGMzDmWIyr7fcMwbLJP
         ATOjgxBU6dCTsCR9uuSMdtOT0k7IidQmQ8/bs3Z9B+qnwDOk5Cyhj3N/QCzn79R/c7R9
         3dD93QZ9x68kOSf7Gz1sC0TL8GnhmmX+81x4g=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745413983; x=1746018783;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=vh2t5anhA6iDwOVHR1VzV29nAr/+XXvkWZl05lyvl9I=;
        b=e8EnkXiwzzCPamCl3/ua5+8/+lZd+0Gnv7/G8iZA1JU6/dPr1gOyCudXjXZs5sIML6
         HduAsftebRnBPBWqrwlZgwxfz1xAUV9ALi21CNYFT1VT+cBgSBhS7FkGBdbVEK+9EdMl
         367FGHmkgWDSQxwRLQRMgAxmpy+BwGdLWjP1E2ibzs4TiYzkHSshKDyMuWMqZ06PIbaH
         eXNdHLxegI6YGX+mdrxH6a9SUza3+wj9oPs89UPtEGNFPThqTKB55Qvh+pB1qUaySqoQ
         dBwpgcG1VKOKTLBKeiAMa5hVAARrEGs5Y2m2BvPRqGeO8N1rK1azjNa7pdndh831bEsB
         MRsA==
X-Forwarded-Encrypted: i=1; AJvYcCXvBJIEDG4I1T0yGAEdoHxmRdCVh7n0YOx0VZTIMiraUp7jMFxkV7h+eQ7mZpA1Sr7l9h3xZ7kItyk=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx2sVnln9Y6gt6sbKcvUurgdSNLKQJr3oDsS0oKn9AaISqLzNG5
	P2SjmKqn9Ws2qzVgS9Q/ZJoWc1PlgR/KTSlDYUwpjiLWWmBYk3tIYyErTapsWQDE5kMCmKI0liH
	CEZo=
X-Gm-Gg: ASbGncunNMi65RRv67nUyFoYVKSf+FYx3C62vdyMiwIaH/WlLt1dWhh5EG/gpy/+++s
	L7OGC8PgzWEelfUlGjcJynLSKKUCe+yOSA7OHtlaJnwCdNSnkMDehqqiXhMvP+lmKizQtBPSOMr
	3GQpZsu++Z16jQX6RmaVrue3jkvb/rVOMCQw8ACgyHLYIWLDQ6kHSHeB0m/15cL84bMrkDfhwN1
	xmgmeU/LbFz8pRKba7C9h9q0SJF1r30HfQGZVjRH83BBqPlCPjLpkM+MVqnbUnPyYMP4ivYeeVw
	p/EHTrYmnjEkSf/ESTVYHbmNTQPWp++p8vmIiA1vVNnVd2ywL/olvw==
X-Google-Smtp-Source: AGHT+IGmzDKkenMW7q5DoY3eSyO6CybNqXhy5hxnpdwrI+6J5KzNRrGUQrSsNiXyZxyVD3y/6sImRw==
X-Received: by 2002:a05:600c:4707:b0:43c:efed:732c with SMTP id 5b1f17b1804b1-4406ac27536mr132344935e9.28.1745413982707;
        Wed, 23 Apr 2025 06:13:02 -0700 (PDT)
Message-ID: <cd7c88b4-848b-4051-bbd6-8a8b78416ebd@citrix.com>
Date: Wed, 23 Apr 2025 14:13:01 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] x86/intel: workaround several MONITOR/MWAIT errata
To: Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>
References: <20250423113215.80755-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: <20250423113215.80755-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 23/04/2025 12:32 pm, Roger Pau Monne wrote:
> There are several errata on Intel regarding the usage of the MONITOR/MWAIT
> instructions, all having in common that stores to the monitored region
> might not wake up the CPU.
>
> Fix them by forcing the sending of an IPI for the affected models.
>
> The Ice Lake issue has been reproduced internally on XenServer hardware,
> and the fix does seem to prevent it.  The symptom was APs getting stuck in
> the idle loop immediately after bring up, which in turn prevented the BSP
> from making progress.  This would happen before the watchdog was
> initialized, and hence the whole system would get stuck.
>
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> ---
> Apollo and Lunar Lake fixes have not been tested, due to lack of hardware.

Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>

> diff --git a/xen/arch/x86/acpi/cpu_idle.c b/xen/arch/x86/acpi/cpu_idle.c
> index 420198406def..1dbf15b01ed7 100644
> --- a/xen/arch/x86/acpi/cpu_idle.c
> +++ b/xen/arch/x86/acpi/cpu_idle.c
> @@ -441,8 +441,14 @@ void cpuidle_wakeup_mwait(cpumask_t *mask)
>      cpumask_andnot(mask, mask, &target);
>  }
>  
> +/* Force sending of a wakeup IPI regardless of mwait usage. */
> +bool __ro_after_init force_mwait_ipi_wakeup;
> +
>  bool arch_skip_send_event_check(unsigned int cpu)
>  {
> +    if ( force_mwait_ipi_wakeup )
> +        return false;
> +

I don't especially like this.  The callers are a loop over all CPUs, and
this can't be inlined/simplified automatically.

But, lets get the fix in place first.  Optimising comes later.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 13:19:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 13:19:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.964718.1355435 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7a0V-0003SN-VY; Wed, 23 Apr 2025 13:19:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 964718.1355435; Wed, 23 Apr 2025 13:19:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7a0V-0003SG-Sg; Wed, 23 Apr 2025 13:19:19 +0000
Received: by outflank-mailman (input) for mailman id 964718;
 Wed, 23 Apr 2025 13:19:19 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=s+1X=XJ=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u7a0V-0003S8-6R
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 13:19:19 +0000
Received: from mail-pl1-x635.google.com (mail-pl1-x635.google.com
 [2607:f8b0:4864:20::635])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8f020927-2045-11f0-9eb0-5ba50f476ded;
 Wed, 23 Apr 2025 15:19:18 +0200 (CEST)
Received: by mail-pl1-x635.google.com with SMTP id
 d9443c01a7336-22c33e4fdb8so67629145ad.2
 for <xen-devel@lists.xenproject.org>; Wed, 23 Apr 2025 06:19:18 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 d9443c01a7336-22c50eb4897sm103505275ad.143.2025.04.23.06.19.15
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 23 Apr 2025 06:19: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: 8f020927-2045-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745414356; x=1746019156; 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=62oQ7K4dy9nrm/vpGwtscxHKxFt+1AkagocS38uxEoo=;
        b=boCmWcBODOtzLVQtP4TOydok6mNjZnuKH8dHyMbw0sbVsJSyOmXxyYWPsR2Vn5P9lr
         JuAbAJ+e8GTdKmgA4xLW4ybWeiUlWZnLzNsPJj6pgolWQQHMTpT4LQSHjt8lknN0Sh+K
         nMVGjlEDvIPtf/UFHmNrkdx4JoMiuC97HQdwY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745414356; x=1746019156;
        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=62oQ7K4dy9nrm/vpGwtscxHKxFt+1AkagocS38uxEoo=;
        b=DywCNpYVKAFYJ62ZVYe/Tkp2VxjCQ4TBXPKLgy9t2SjkBL9CnYWmFnNrWDr5J9vlQ7
         RktkuVuecZ3nZ1pFVhPsBOzJY3MEsF6SUm5dYkjgtFwMdKtFLlFKHxN2jvF9OD3z5kgh
         F3a74/XCKmvxbQOjhrfBt6M9vdz0uuyHqKgkkbdSBBNLvLCD9bul2045aX0E67idN6Lf
         ZGvjMcMHfaYcQl59JNCev9zp2Ui/CxKrzxotzq2clUgxU3pGTVeaVo16TbOCmiPF2EkP
         nsRvzIcYBD+sqtZCiHynmtNpNSGxtmzM/qfWjwu2g6O8KguuMI+xfOXQuGJvNYhxbuIP
         NEAg==
X-Gm-Message-State: AOJu0YyoaDUX641GwswfaecFLWrk/TZt9mhB8NcN/EUlbWgFE4JiQ5A1
	wBCg87Uok9QboIYi/K75DEi3YH7RjUz/SyLpY5p80OX6I2sqIvxyuDTuriC8XNM=
X-Gm-Gg: ASbGncs3gN2b5BUaHsiCqtiPWcO60HzLanBe/ZEjdymWiCYXIJJmpVXPX5aNG/Tvtpf
	bEnZX6OaUDAUhOmRLz7VqJzVbXl7WVvTvvfN8iyUa2ET9n8k9tRCMim27txrxUYcZGJEB+WZkvP
	KWQMpz1jaPCZfxLU5uT3j1Kkhl2mmzBH33CItQju00RIVX6r1U1XuvuPyNG1tdjsvLvdy3mVsN3
	JQPglHQGvu7LgHpkk2OQCM1TyfdE+wStb23+E31n1T6p0p2Ilv66SZ2gnjJnc+KSjRWON96XTvo
	GWV6hhIJyaUVfxNAirT5VMQFoUyjCt1JnwzqRwcvD7CYDQ==
X-Google-Smtp-Source: AGHT+IH3nMAlJnBvAuLxTRoaI6szhLEuC4BfQKel9VaHg4B0sd/BjO5atqoOuUJaIHtD+nlucyLK8w==
X-Received: by 2002:a17:903:1b66:b0:220:ec62:7dc8 with SMTP id d9443c01a7336-22c535738f3mr306397415ad.2.1745414356586;
        Wed, 23 Apr 2025 06:19:16 -0700 (PDT)
Date: Wed, 23 Apr 2025 15:19:11 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Marek Marczykowski <marmarek@invisiblethingslab.com>
Subject: Re: [PATCH] x86: constrain sub-page access length in
 mmio_ro_emulated_write()
Message-ID: <aAjoz4BtXykdI9UP@macbook.lan>
References: <570ad3f2-7f3b-4579-a000-c85d27e8bf77@suse.com>
 <aAit4IPZju60KEUz@macbook.lan>
 <7d0afeda-d2c0-4360-bbf6-99a466e8f013@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <7d0afeda-d2c0-4360-bbf6-99a466e8f013@suse.com>

On Wed, Apr 23, 2025 at 02:58:28PM +0200, Jan Beulich wrote:
> On 23.04.2025 11:07, Roger Pau Monné wrote:
> > On Wed, Apr 23, 2025 at 10:43:56AM +0200, Jan Beulich wrote:
> >> Without doing so we could trigger the ASSERT_UNREACHABLE() in
> >> subpage_mmio_write_emulate(). A comment there actually says this
> >> validation would already have been done ...
> >>
> >> Fixes: 8847d6e23f97 ("x86/mm: add API for marking only part of a MMIO page read only")
> >> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> >> ---
> >> Alternatively we could drop comment and assertion from
> >> subpage_mmio_write_emulate().
> > 
> > I think I prefer this as it fits better with my patch to unify the
> > open-coded MMIO accessors, which does have an ASSERT_UNREACHABLE() for
> > unhandled sizes.  The return there is anyway too late IMO, as we have
> > possibly already mapped the page when there's no need for it.
> 
> FTAOD with "this" you mean the patch as is, not the alternative?

Yes, sorry, "this" => "this patch".

> >> --- a/xen/arch/x86/mm.c
> >> +++ b/xen/arch/x86/mm.c
> >> @@ -5195,8 +5195,9 @@ int cf_check mmio_ro_emulated_write(
> >>          return X86EMUL_UNHANDLEABLE;
> >>      }
> >>  
> >> -    subpage_mmio_write_emulate(mmio_ro_ctxt->mfn, PAGE_OFFSET(offset),
> >> -                               p_data, bytes);
> >> +    if ( bytes <= 8 )
> >> +        subpage_mmio_write_emulate(mmio_ro_ctxt->mfn, PAGE_OFFSET(offset),
> >> +                                   p_data, bytes);
> > 
> > Should we print a debug message here saying the write is possibly
> > unhandled due to the access size if subpage r/o is enabled?
> > 
> > You might want to re-use the subpage_ro_active() I introduce to limit
> > the printing of the message.
> 
> That would be too broad for my taste. I've used subpage_mmio_find_page()

Hm, yes, that's likely more expensive, but certainly more accurate.
Given the context here the extra logic doesn't matter much.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 13:37:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 13:37:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.964730.1355445 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7aHu-0007eH-D5; Wed, 23 Apr 2025 13:37:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 964730.1355445; Wed, 23 Apr 2025 13:37: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 1u7aHu-0007eA-AK; Wed, 23 Apr 2025 13:37:18 +0000
Received: by outflank-mailman (input) for mailman id 964730;
 Wed, 23 Apr 2025 13:37: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=6Uk8=XJ=flex--seanjc.bounces.google.com=3CO0IaAYKCU07tp2yrv33v0t.r31Ct2-stAt00x787.Ct2463ytr8.36v@srs-se1.protection.inumbo.net>)
 id 1u7aHs-0007e4-JN
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 13:37:16 +0000
Received: from mail-pj1-x1049.google.com (mail-pj1-x1049.google.com
 [2607:f8b0:4864:20::1049])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1093e780-2048-11f0-9ffb-bf95429c2676;
 Wed, 23 Apr 2025 15:37:14 +0200 (CEST)
Received: by mail-pj1-x1049.google.com with SMTP id
 98e67ed59e1d1-309c6e43a9aso4216054a91.2
 for <xen-devel@lists.xenproject.org>; Wed, 23 Apr 2025 06:37: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: 1093e780-2048-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20230601; t=1745415433; x=1746020233; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:from:to:cc:subject:date:message-id:reply-to;
        bh=QTV99TNe8c9V+BGz9HYw0E5RTZLdGwFx/9m2XgmuzHE=;
        b=uudNqaqXrNN2X9qhpkgLlUa9Tng2cbxikXyJsFGIFzA+GIOPIo/27jJti28xawRige
         z6qGjYKYcOSQVKukFKw25O34G7vbDJ0ePog8ikCQkzLoUwiPwKtNM71Lz0RQ9vbJ5w5c
         WfXgfFhgSsfAVuytJnHz8g567g697PtnHIq9GUZFz297vhHe/iKcLBifXBEtd8GRsOt6
         hNaa3qQeXKW22p8Qz07cLnB5wv7h9+NwnsTxFRoDAN2hTmDhh/GXApXcVC7IBlBpCGZY
         znxh5q8gFvsRrX/GSLx8ouaOSAXLVtw29rUuTHYjKqelpAVJlZTL39dul+VmUBbJkKrw
         of3g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745415433; x=1746020233;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=QTV99TNe8c9V+BGz9HYw0E5RTZLdGwFx/9m2XgmuzHE=;
        b=YEMQ9dLxNHqI95YvQgGx51jqdqdGargcBdXTmLgWEeEApDzhYwKFu90pcxlSEnpQeo
         onhTw3qrPPgs4BixuUIGY1SsqAzYCPrR//tiHXQ/N73gG/sEmGIjRo04kDI7ygiQbQs0
         q+Zv+ThsP2JKbLl28r9lTFdDE8iPg6iVLWllyXXDH7tzQsEs7aAO+3Qkcg85DfwVSTLA
         cH7sVP59b6C+I8QCbvUmf15pdjb5luV/D+VQ+vB2BsNSOfk+Vrd/B740zxvunKKMVoDQ
         L7VPXxDxJ39Q5bb4YEjObz5uDtUch8YF+6T/WvYvPSWzHZsxMDqBFmTOY5BfIV//DJNd
         SxkA==
X-Forwarded-Encrypted: i=1; AJvYcCXamC2BZBQf09GxKJxUaPNY6cKb/v/kaMe863eEFWFwG7Y8P4nHeNb081MKEdSORNpp2XnTyx3zxsU=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx8yF8vNiRal3gyuiwsXDuAOm715UISxGxcbIyWALogDN+KVKKt
	hj0tTuNdY4FI7xP2G03P9ixW77gr89B/oPlcm541FID7AJc8c/iV94h6MdyTXri/hPZYsyMBCQ/
	2EA==
X-Google-Smtp-Source: AGHT+IEWS42km52dkYFlmcKZWmN1wttg5SPG3JN+o4kIB9LzXEDLrbHh1gdrPp7a64YZSw75FwPTF5N3xvo=
X-Received: from pjur12.prod.google.com ([2002:a17:90a:d40c:b0:308:867e:1ced])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a17:90b:2650:b0:2ee:9b2c:3253
 with SMTP id 98e67ed59e1d1-3087bbc9333mr25668631a91.30.1745415432973; Wed, 23
 Apr 2025 06:37:12 -0700 (PDT)
Date: Wed, 23 Apr 2025 06:37:11 -0700
In-Reply-To: <7527f09c-7163-4276-b9a4-edac6c8217ae@zytor.com>
Mime-Version: 1.0
References: <20250422082216.1954310-1-xin@zytor.com> <20250422082216.1954310-11-xin@zytor.com>
 <aAexLqjhKncFyw2V@google.com> <7527f09c-7163-4276-b9a4-edac6c8217ae@zytor.com>
Message-ID: <aAjtBxzvRgNt4Uzr@google.com>
Subject: Re: [RFC PATCH v2 10/34] x86/msr: Convert __rdmsr() uses to
 native_rdmsrq() uses
From: Sean Christopherson <seanjc@google.com>
To: Xin Li <xin@zytor.com>
Cc: linux-kernel@vger.kernel.org, kvm@vger.kernel.org, 
	linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org, 
	virtualization@lists.linux.dev, linux-pm@vger.kernel.org, 
	linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org, 
	linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org, 
	netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org, 
	tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, 
	dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com, acme@kernel.org, 
	jgross@suse.com, andrew.cooper3@citrix.com, peterz@infradead.org, 
	namhyung@kernel.org, mark.rutland@arm.com, alexander.shishkin@linux.intel.com, 
	jolsa@kernel.org, irogers@google.com, adrian.hunter@intel.com, 
	kan.liang@linux.intel.com, wei.liu@kernel.org, ajay.kaher@broadcom.com, 
	bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com, 
	pbonzini@redhat.com, vkuznets@redhat.com, luto@kernel.org, 
	boris.ostrovsky@oracle.com, kys@microsoft.com, haiyangz@microsoft.com, 
	decui@microsoft.com
Content-Type: text/plain; charset="us-ascii"

On Wed, Apr 23, 2025, Xin Li wrote:
> On 4/22/2025 8:09 AM, Sean Christopherson wrote:
> > I strongly prefer that we find a way to not require such verbose APIs, especially
> > if KVM ends up using native variants throughout.  Xen PV is supposed to be the
> > odd one out, yet native code is what suffers.  Blech.
> 
> Will try to figure out how to name the APIs.
> 
> One reason I chose verbose names is that short names are in use and
> renaming needs to touch a lot of files (and not fun at all).

Yeah, I've looked at modifying rdmsrl() to "return" a value more than once, and
ran away screaming every time.

But since you're already doing a pile of renames, IMO this is the perfect time to
do an aggressive cleanup.


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 13:38:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 13:38:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.964740.1355455 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7aJK-0008BM-Md; Wed, 23 Apr 2025 13:38:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 964740.1355455; Wed, 23 Apr 2025 13:38:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7aJK-0008BF-Jr; Wed, 23 Apr 2025 13:38:46 +0000
Received: by outflank-mailman (input) for mailman id 964740;
 Wed, 23 Apr 2025 13:38: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=dLR5=XJ=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u7aJI-0008B7-Vy
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 13:38: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 43f6f516-2048-11f0-9ffb-bf95429c2676;
 Wed, 23 Apr 2025 15:38:40 +0200 (CEST)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-39c266c1389so4761272f8f.1
 for <xen-devel@lists.xenproject.org>; Wed, 23 Apr 2025 06:38:40 -0700 (PDT)
Received: from [192.168.86.29] ([83.104.178.215])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4408c80174dsm36128805e9.0.2025.04.23.06.38.38
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 23 Apr 2025 06:38:38 -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: 43f6f516-2048-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745415519; x=1746020319; 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=26S9pkHjc9pAx2Z1uNmxj7HY4aImHSHbYRYQNY29Apk=;
        b=icjQutdRZM/SRZk3EKI8lfIAP7YljLvQO1mX0b0ygFxifhH8dpn2mCr88EhB2WMm4I
         aZXZ5b4Bv53zZTTZ1RZYmHvDGbVl2bnl2ul+p9Nkae75NRrA+IgtqEabaiGbiS0T+w9K
         XYlHkzaFK6BAYM591LHs3es5X8Z6noKiBPhsE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745415519; x=1746020319;
        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=26S9pkHjc9pAx2Z1uNmxj7HY4aImHSHbYRYQNY29Apk=;
        b=B+bYH5JnEsXirp0sD0C2DYjBr+WPRY7T4S75/33jqsUG2WBwRNUXdDcazofQ/RbVlr
         Kck1f8meZ/GUfYfQP7ciLhqNwetyWPtTJKTzgFQJ6X49v/L+tUMwBHI2C1lLNCmNEzLW
         Bf7gpqK8FaU1ZgrD1OuJHS1/p/+IyedBa8eJh0REM/iombetGXYgz0qu1+ht6RUi/EvA
         W+86LEOEHFpsJ7yNrG2dv3ZSr9TfbQIcCgL9Vqbcd1nN/dv6unh9fOYN4XN4WRv3GIRL
         L9qVedRwKURp2NA7ej2rVt2oTCml1V7MbRo2Ef0xaqZ+//mB84ccS3Movuxf6f2GnfRv
         xpjw==
X-Forwarded-Encrypted: i=1; AJvYcCVZVsznOgPfR+11eLq5j7xbSdwdb/vCpgq4ftKrM9doZbRtaG3LFVWaN8UnzBdll/4O2j7lVcTQmbo=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxxwqCja8BeOva1+NcE8Ouvm/yjU11tY01I9Tf87Z2+fcp5uwy4
	PzpLnFaa8dhyM7stYAZ1/UpKgfvVM5cclENBYpwn/aoVrivyV2usVxiDzPnR4dY=
X-Gm-Gg: ASbGncuOgxbrkPxjefAGiwG3t1aXp3kDNeWC0fHl+2F9ZfYBP4gL1C3JiZECpL8OD6h
	VddvZ30iJSp/ZhkH1lR4de9TjU/Z6HkOGf6UAQDJhg8k4DyfnCBauAU6+0UIhmqj7/f5/mxRwY5
	pjJRykgUxFuThTYSm+f8Mm13TXhMS0Krne+8bS9FeZt8G7RsdqgbbN7WfBM5Ur0T7k9MDcL3CXN
	YBhTeUHa0fLxsXnevHj516GSDyIOo2tDEaWeVvvmZrWBhGzNnpZjWG7bVB1jMsn9d+WKIGACLZP
	BLCpvlGbp9yjJwSVGvGC4Srq8P/zvv1tclcjvzCQTLl8E2c2rBxbWQ==
X-Google-Smtp-Source: AGHT+IHiv23jDjX6SGY8J/wOZK+zrAmCYrKtUxPpgcLBNyxyiDm0yVZTN1MI2MUoCWyzjgq8YWgmJA==
X-Received: by 2002:a05:6000:2405:b0:39c:266c:136d with SMTP id ffacd0b85a97d-39efba2aa92mr14996993f8f.12.1745415519374;
        Wed, 23 Apr 2025 06:38:39 -0700 (PDT)
Message-ID: <010709d8-7784-41bf-bcb6-bf04803a75fc@citrix.com>
Date: Wed, 23 Apr 2025 14:38:37 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 00/21] x86: Trenchboot Secure Launch DRTM (Xen)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>, xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Lukasz Hawrylko <lukasz@hawrylko.pl>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Mateusz_M=C3=B3wka?= <mateusz.mowka@intel.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, trenchboot-devel@googlegroups.com
References: <cover.1745172094.git.sergii.dmytruk@3mdeb.com>
 <744934f4-f56f-4dc7-bccb-c32f2829d1da@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: <744934f4-f56f-4dc7-bccb-c32f2829d1da@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 22/04/2025 6:14 pm, Andrew Cooper wrote:
> I've stripped out the sha2 patch and fixed up to use the existing sha2,
> then kicked off some CI testing:
>
> https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/1780285393
> https://cirrus-ci.com/build/5452335868018688
>
> When the dust has settled, I'll talk you through the failures.

And here we go.  Interestingly, the FreeBSD testing was entirely happy,
and that is the rare way around.

For Gitlab, there are several areas.

First, for MISRA.  In the job logs, you want the "Browse current
reports:" link which will give you full details, but it's all pretty
simple stuff.

kbl-suspend-x86-64-gcc-debug is a real S3 test on KabyLake hardware,
which appears to have gone to sleep and never woken up.  (More likely,
crashed on wakeup before we got the console up).  The AlderLake
equivalent test seems to be happy, as well as the AMD ones.

For the build issues, there are quite a few.

debian-12-x86_64-gcc-ibt is special, using an out-of-tree patch for
CET-IBT safety.  tl;dr function pointer callees need a cf_check
annotation.  But, all the failures here are from sha1, and from bits
which I don't think want to survive into the final form.

Other common failures seem to be:

    # take image offset into account
    arch/x86/efi/fixmlehdr xen.efi 0x200000
    Failed to find MLE header in xen.efi
    arch/x86/Makefile:220: recipe for target 'xen.efi' failed
    make[3]: *** [xen.efi] Error 1

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 14:02:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 14:02:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.964756.1355465 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7agJ-00053n-Iz; Wed, 23 Apr 2025 14:02:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 964756.1355465; Wed, 23 Apr 2025 14:02: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 1u7agJ-00053g-GD; Wed, 23 Apr 2025 14:02:31 +0000
Received: by outflank-mailman (input) for mailman id 964756;
 Wed, 23 Apr 2025 14:02: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=maGd=XJ=intel.com=dave.hansen@srs-se1.protection.inumbo.net>)
 id 1u7agH-00053Z-SZ
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 14:02:30 +0000
Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.16])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 94ee34b1-204b-11f0-9ffb-bf95429c2676;
 Wed, 23 Apr 2025 16:02:25 +0200 (CEST)
Received: from fmviesa002.fm.intel.com ([10.60.135.142])
 by fmvoesa110.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 23 Apr 2025 07:02:23 -0700
Received: from tfalcon-desk.amr.corp.intel.com (HELO [10.124.221.81])
 ([10.124.221.81])
 by fmviesa002-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 23 Apr 2025 07:02:21 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 94ee34b1-204b-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1745416946; x=1776952946;
  h=message-id:date:mime-version:subject:to:cc:references:
   from:in-reply-to:content-transfer-encoding;
  bh=Rh21QveOIphht+dSIQL9yWgwVQ+lFz7mjH7vvCHUsvQ=;
  b=UskOtYmgAFaiHy0AWCLpIPZ7L/uthPmnjHvhjpXroGHpVqElTTYR5lZD
   YaWp7blXZVWr4QoXAX+IdBpWlQZkg0iJvR7AYc7WhSfmPiDtxGRrCqyVQ
   Ztdy1Fp4BRePcWoTKG6IiNM3xv7tjcMUSEeNH6rJgboRmz99Gi6VGSWGl
   t06E8cB61Nin+yX1K4s3OT3GW2IiHRC8Zi7aqoAPzaLSxJJSIYedya/jz
   hd90X1H1OlQKo2Lqd6SZKSP4MFjtSZ216FZXdwXXpvIUt/pMtgmGkGyLF
   DhJrFpGxhrZp+GmW0OJcC2Ys4PhKbUY3B+KF0N5pP6OrP1mlCAmkmH/rW
   A==;
X-CSE-ConnectionGUID: TsdU/n4nSeaS9eAizzUH+w==
X-CSE-MsgGUID: 23xONAyDS76srwRqoOC6hw==
X-IronPort-AV: E=McAfee;i="6700,10204,11412"; a="34627013"
X-IronPort-AV: E=Sophos;i="6.15,233,1739865600"; 
   d="scan'208";a="34627013"
X-CSE-ConnectionGUID: +BYzxiPyRASjJYOad+dLtw==
X-CSE-MsgGUID: ZC3WqV42RoGpnWQOY47Srg==
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="6.15,233,1739865600"; 
   d="scan'208";a="155536016"
Message-ID: <7302e719-3a0f-4a25-84da-eb56fe1bdc19@intel.com>
Date: Wed, 23 Apr 2025 07:02:19 -0700
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH v2 10/34] x86/msr: Convert __rdmsr() uses to
 native_rdmsrq() uses
To: Xin Li <xin@zytor.com>, Sean Christopherson <seanjc@google.com>
Cc: linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
 linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
 virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
 linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
 linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
 netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org,
 tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
 dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com, acme@kernel.org,
 jgross@suse.com, andrew.cooper3@citrix.com, peterz@infradead.org,
 namhyung@kernel.org, mark.rutland@arm.com,
 alexander.shishkin@linux.intel.com, jolsa@kernel.org, irogers@google.com,
 adrian.hunter@intel.com, kan.liang@linux.intel.com, wei.liu@kernel.org,
 ajay.kaher@broadcom.com, bcm-kernel-feedback-list@broadcom.com,
 tony.luck@intel.com, pbonzini@redhat.com, vkuznets@redhat.com,
 luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
 haiyangz@microsoft.com, decui@microsoft.com
References: <20250422082216.1954310-1-xin@zytor.com>
 <20250422082216.1954310-11-xin@zytor.com> <aAexLqjhKncFyw2V@google.com>
 <7527f09c-7163-4276-b9a4-edac6c8217ae@zytor.com>
From: Dave Hansen <dave.hansen@intel.com>
Content-Language: en-US
Autocrypt: addr=dave.hansen@intel.com; keydata=
 xsFNBE6HMP0BEADIMA3XYkQfF3dwHlj58Yjsc4E5y5G67cfbt8dvaUq2fx1lR0K9h1bOI6fC
 oAiUXvGAOxPDsB/P6UEOISPpLl5IuYsSwAeZGkdQ5g6m1xq7AlDJQZddhr/1DC/nMVa/2BoY
 2UnKuZuSBu7lgOE193+7Uks3416N2hTkyKUSNkduyoZ9F5twiBhxPJwPtn/wnch6n5RsoXsb
 ygOEDxLEsSk/7eyFycjE+btUtAWZtx+HseyaGfqkZK0Z9bT1lsaHecmB203xShwCPT49Blxz
 VOab8668QpaEOdLGhtvrVYVK7x4skyT3nGWcgDCl5/Vp3TWA4K+IofwvXzX2ON/Mj7aQwf5W
 iC+3nWC7q0uxKwwsddJ0Nu+dpA/UORQWa1NiAftEoSpk5+nUUi0WE+5DRm0H+TXKBWMGNCFn
 c6+EKg5zQaa8KqymHcOrSXNPmzJuXvDQ8uj2J8XuzCZfK4uy1+YdIr0yyEMI7mdh4KX50LO1
 pmowEqDh7dLShTOif/7UtQYrzYq9cPnjU2ZW4qd5Qz2joSGTG9eCXLz5PRe5SqHxv6ljk8mb
 ApNuY7bOXO/A7T2j5RwXIlcmssqIjBcxsRRoIbpCwWWGjkYjzYCjgsNFL6rt4OL11OUF37wL
 QcTl7fbCGv53KfKPdYD5hcbguLKi/aCccJK18ZwNjFhqr4MliQARAQABzUVEYXZpZCBDaHJp
 c3RvcGhlciBIYW5zZW4gKEludGVsIFdvcmsgQWRkcmVzcykgPGRhdmUuaGFuc2VuQGludGVs
 LmNvbT7CwXgEEwECACIFAlQ+9J0CGwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEGg1
 lTBwyZKwLZUP/0dnbhDc229u2u6WtK1s1cSd9WsflGXGagkR6liJ4um3XCfYWDHvIdkHYC1t
 MNcVHFBwmQkawxsYvgO8kXT3SaFZe4ISfB4K4CL2qp4JO+nJdlFUbZI7cz/Td9z8nHjMcWYF
 IQuTsWOLs/LBMTs+ANumibtw6UkiGVD3dfHJAOPNApjVr+M0P/lVmTeP8w0uVcd2syiaU5jB
 aht9CYATn+ytFGWZnBEEQFnqcibIaOrmoBLu2b3fKJEd8Jp7NHDSIdrvrMjYynmc6sZKUqH2
 I1qOevaa8jUg7wlLJAWGfIqnu85kkqrVOkbNbk4TPub7VOqA6qG5GCNEIv6ZY7HLYd/vAkVY
 E8Plzq/NwLAuOWxvGrOl7OPuwVeR4hBDfcrNb990MFPpjGgACzAZyjdmYoMu8j3/MAEW4P0z
 F5+EYJAOZ+z212y1pchNNauehORXgjrNKsZwxwKpPY9qb84E3O9KYpwfATsqOoQ6tTgr+1BR
 CCwP712H+E9U5HJ0iibN/CDZFVPL1bRerHziuwuQuvE0qWg0+0SChFe9oq0KAwEkVs6ZDMB2
 P16MieEEQ6StQRlvy2YBv80L1TMl3T90Bo1UUn6ARXEpcbFE0/aORH/jEXcRteb+vuik5UGY
 5TsyLYdPur3TXm7XDBdmmyQVJjnJKYK9AQxj95KlXLVO38lczsFNBFRjzmoBEACyAxbvUEhd
 GDGNg0JhDdezyTdN8C9BFsdxyTLnSH31NRiyp1QtuxvcqGZjb2trDVuCbIzRrgMZLVgo3upr
 MIOx1CXEgmn23Zhh0EpdVHM8IKx9Z7V0r+rrpRWFE8/wQZngKYVi49PGoZj50ZEifEJ5qn/H
 Nsp2+Y+bTUjDdgWMATg9DiFMyv8fvoqgNsNyrrZTnSgoLzdxr89FGHZCoSoAK8gfgFHuO54B
 lI8QOfPDG9WDPJ66HCodjTlBEr/Cwq6GruxS5i2Y33YVqxvFvDa1tUtl+iJ2SWKS9kCai2DR
 3BwVONJEYSDQaven/EHMlY1q8Vln3lGPsS11vSUK3QcNJjmrgYxH5KsVsf6PNRj9mp8Z1kIG
 qjRx08+nnyStWC0gZH6NrYyS9rpqH3j+hA2WcI7De51L4Rv9pFwzp161mvtc6eC/GxaiUGuH
 BNAVP0PY0fqvIC68p3rLIAW3f97uv4ce2RSQ7LbsPsimOeCo/5vgS6YQsj83E+AipPr09Caj
 0hloj+hFoqiticNpmsxdWKoOsV0PftcQvBCCYuhKbZV9s5hjt9qn8CE86A5g5KqDf83Fxqm/
 vXKgHNFHE5zgXGZnrmaf6resQzbvJHO0Fb0CcIohzrpPaL3YepcLDoCCgElGMGQjdCcSQ+Ci
 FCRl0Bvyj1YZUql+ZkptgGjikQARAQABwsFfBBgBAgAJBQJUY85qAhsMAAoJEGg1lTBwyZKw
 l4IQAIKHs/9po4spZDFyfDjunimEhVHqlUt7ggR1Hsl/tkvTSze8pI1P6dGp2XW6AnH1iayn
 yRcoyT0ZJ+Zmm4xAH1zqKjWplzqdb/dO28qk0bPso8+1oPO8oDhLm1+tY+cOvufXkBTm+whm
 +AyNTjaCRt6aSMnA/QHVGSJ8grrTJCoACVNhnXg/R0g90g8iV8Q+IBZyDkG0tBThaDdw1B2l
 asInUTeb9EiVfL/Zjdg5VWiF9LL7iS+9hTeVdR09vThQ/DhVbCNxVk+DtyBHsjOKifrVsYep
 WpRGBIAu3bK8eXtyvrw1igWTNs2wazJ71+0z2jMzbclKAyRHKU9JdN6Hkkgr2nPb561yjcB8
 sIq1pFXKyO+nKy6SZYxOvHxCcjk2fkw6UmPU6/j/nQlj2lfOAgNVKuDLothIxzi8pndB8Jju
 KktE5HJqUUMXePkAYIxEQ0mMc8Po7tuXdejgPMwgP7x65xtfEqI0RuzbUioFltsp1jUaRwQZ
 MTsCeQDdjpgHsj+P2ZDeEKCbma4m6Ez/YWs4+zDm1X8uZDkZcfQlD9NldbKDJEXLIjYWo1PH
 hYepSffIWPyvBMBTW2W5FRjJ4vLRrJSUoEfJuPQ3vW9Y73foyo/qFoURHO48AinGPZ7PC7TF
 vUaNOTjKedrqHkaOcqB185ahG2had0xnFsDPlx5y
In-Reply-To: <7527f09c-7163-4276-b9a4-edac6c8217ae@zytor.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 4/23/25 02:27, Xin Li wrote:
> One reason I chose verbose names is that short names are in use and
> renaming needs to touch a lot of files (and not fun at all).

This series is getting *WAY* too big.

Could you please peel the renaming stuff out and we can get it applied
independently of the new instruction gunk?


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 14:08:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 14:08:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.964770.1355475 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7amF-0005rF-5v; Wed, 23 Apr 2025 14:08:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 964770.1355475; Wed, 23 Apr 2025 14:08: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 1u7amF-0005r8-30; Wed, 23 Apr 2025 14:08:39 +0000
Received: by outflank-mailman (input) for mailman id 964770;
 Wed, 23 Apr 2025 14:08: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=s+1X=XJ=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u7amE-0005r2-94
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 14:08:38 +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 72a315ed-204c-11f0-9ffb-bf95429c2676;
 Wed, 23 Apr 2025 16:08:36 +0200 (CEST)
Received: by mail-ej1-x636.google.com with SMTP id
 a640c23a62f3a-ac28e66c0e1so802505266b.0
 for <xen-devel@lists.xenproject.org>; Wed, 23 Apr 2025 07:08:36 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 a640c23a62f3a-acb6ec0beb8sm795815566b.2.2025.04.23.07.08.34
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 23 Apr 2025 07:08:35 -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: 72a315ed-204c-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745417316; x=1746022116; 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=I6K5IMW0MKKhVyBsgSa9lk21LMhsy+Swk4sZRjS84kk=;
        b=XzL1hhVnU2JEjNJw39ipVDfGwcpPi1Shxz8l99PcpCyjRqkgYRecOCuhfXPWTWtPRD
         Zvxm2umX7RMXNH7UbWIlmw8TqJuI/bkfnEzBVeBz2sTKeCjJpvqpqyrr84KjOOYnw9DL
         86rrY24gAO8xJvbocbnsiX0H1tGe23oFcuUq8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745417316; x=1746022116;
        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=I6K5IMW0MKKhVyBsgSa9lk21LMhsy+Swk4sZRjS84kk=;
        b=lgxXRBkVoWBkKRPbbt9AcaSx4ezI9n7QFn0yDZWWh4bbC+XOpuJxhZ7DAOT9plsZHL
         z+xNcntknGyjAZWL3A5PkaRG6APrmV/v45cNgnldcESoUnL4G0VwCUmaJw0g6qJjR5Pw
         KPc4Nvjta/yNSAr/46enqfjslpTIKWnTXU2iy5rvnJIhJyV6dZ81fdWOKfIzh7MSwmJW
         qN+5yadhg4GNqYqPn96ZmqwbNJwbpXxQ35VH/pzG2SS5k6Jg/21PATb2+gdoQgceUL5n
         6D+EEm7v1ZMs7iZp+GNO+z1O3FtSvUB4Rt6DaAe9dClQhz+9/e6AxbcVlY6efbiyW8L5
         QjXw==
X-Gm-Message-State: AOJu0YyoIlJKTYFXhJ1bRGQQ+FGLxu5MxiixuzUzYKURwagzcqfMEVzI
	sAwxTLB83pgf4t2uDX+LmF/sJijdHGY4OA+qHmG7pPxG4WO1JW7W1aWr1BYaqOk=
X-Gm-Gg: ASbGncvv53Jf+AFMLZkrQY/GgG2sO8leB+LQCQC0gdt3sH32Vm3eL9rFA3qW49f7OrF
	X+JG6vAYeyKpVuDpZwEXC5h2gwDSmwq5UzwRu3/bjZ2EcRMbmjgPI5GTf9HJUJZP904ug574iTX
	0fIkjw1heT9f0rWC5pERDMrc3k+jjjmUktYYlwiIu2Nuv6ooCoVxDXxHUvsDX6pAKdCsrA6ICBD
	BoX/MKSkcyAQxJEbx6WIz+Fx3K/lLc4Gy+yxvDFQQT9SpkzaLynYJGQAHOcaCLwBO1zoZZBjgi3
	YbBJElTHkaXvkqn0Pt2+hx0ScGmlafdU1sFUO2o+9BgZtw==
X-Google-Smtp-Source: AGHT+IFZRt5M3BcSggui6hncvOs/ecca+cR+driqo/jKafVF2Jl4ZbsgJgPf9PC+51cVJVHgkZ9GTw==
X-Received: by 2002:a17:906:d153:b0:acd:89ba:8069 with SMTP id a640c23a62f3a-acd89baac19mr576573566b.7.1745417315560;
        Wed, 23 Apr 2025 07:08:35 -0700 (PDT)
Date: Wed, 23 Apr 2025 16:08:34 +0200
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 v2] x86/intel: workaround several MONITOR/MWAIT errata
Message-ID: <aAj0Yqc0FtlTlVCF@macbook.lan>
References: <20250423113215.80755-1-roger.pau@citrix.com>
 <cd7c88b4-848b-4051-bbd6-8a8b78416ebd@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <cd7c88b4-848b-4051-bbd6-8a8b78416ebd@citrix.com>

On Wed, Apr 23, 2025 at 02:13:01PM +0100, Andrew Cooper wrote:
> On 23/04/2025 12:32 pm, Roger Pau Monne wrote:
> > There are several errata on Intel regarding the usage of the MONITOR/MWAIT
> > instructions, all having in common that stores to the monitored region
> > might not wake up the CPU.
> >
> > Fix them by forcing the sending of an IPI for the affected models.
> >
> > The Ice Lake issue has been reproduced internally on XenServer hardware,
> > and the fix does seem to prevent it.  The symptom was APs getting stuck in
> > the idle loop immediately after bring up, which in turn prevented the BSP
> > from making progress.  This would happen before the watchdog was
> > initialized, and hence the whole system would get stuck.
> >
> > Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> > ---
> > Apollo and Lunar Lake fixes have not been tested, due to lack of hardware.
> 
> Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
> 
> > diff --git a/xen/arch/x86/acpi/cpu_idle.c b/xen/arch/x86/acpi/cpu_idle.c
> > index 420198406def..1dbf15b01ed7 100644
> > --- a/xen/arch/x86/acpi/cpu_idle.c
> > +++ b/xen/arch/x86/acpi/cpu_idle.c
> > @@ -441,8 +441,14 @@ void cpuidle_wakeup_mwait(cpumask_t *mask)
> >      cpumask_andnot(mask, mask, &target);
> >  }
> >  
> > +/* Force sending of a wakeup IPI regardless of mwait usage. */
> > +bool __ro_after_init force_mwait_ipi_wakeup;
> > +
> >  bool arch_skip_send_event_check(unsigned int cpu)
> >  {
> > +    if ( force_mwait_ipi_wakeup )
> > +        return false;
> > +
> 
> I don't especially like this.  The callers are a loop over all CPUs, and
> this can't be inlined/simplified automatically.

Hm, I can look into this later, I can make maybe turn
arch_skip_send_event_check into an inline.  Let me get this
committed first.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 14:14:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 14:14:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.964782.1355485 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7arE-0007tP-Np; Wed, 23 Apr 2025 14:13:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 964782.1355485; Wed, 23 Apr 2025 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 1u7arE-0007tI-KI; Wed, 23 Apr 2025 14:13:48 +0000
Received: by outflank-mailman (input) for mailman id 964782;
 Wed, 23 Apr 2025 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=maGd=XJ=intel.com=dave.hansen@srs-se1.protection.inumbo.net>)
 id 1u7arD-0007tC-C9
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 14:13:47 +0000
Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.15])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 29bcdabe-204d-11f0-9ffb-bf95429c2676;
 Wed, 23 Apr 2025 16:13:44 +0200 (CEST)
Received: from orviesa005.jf.intel.com ([10.64.159.145])
 by orvoesa107.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 23 Apr 2025 07:13:41 -0700
Received: from tfalcon-desk.amr.corp.intel.com (HELO [10.124.221.81])
 ([10.124.221.81])
 by orviesa005-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 23 Apr 2025 07:13:39 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 29bcdabe-204d-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1745417624; x=1776953624;
  h=message-id:date:mime-version:subject:to:cc:references:
   from:in-reply-to:content-transfer-encoding;
  bh=gCdfzP6Rz3QRAiqWb8ICzKaC8k4ViRNpmXNZ7t4kQyU=;
  b=XfSeS8ZxVwQmJczfiJXzk/AynwHyIXtNAK+aOdOOHYoNxvHy/xf/ltCi
   tnmm07d9eM+SQHrewpTNRNXlJliZAGW/x7AGvOQ6jbqEcVdlZbHnjazqH
   yJA9SMTCphRWLFKxuXOJr+74i0TlpryjV0+fZZOGlF0HDkNQWkDbl6hJ/
   CXz4yXxCsF05n3Y9PMyn/Uwo+qFmcpuGpS3J7cD8mjegvJptancN6Teqc
   krPgAa4ridTcVmHhayEihgS677R8nz2n7YrSRomQDWAsb3veATWByf3+c
   Syl8h3l2ibbWzseZI5k5W0GP/xh+rTHGMWokp9nA+rc2bpDuHQSi0ZF2j
   g==;
X-CSE-ConnectionGUID: HymkmlCOQNeQ5lNmDTjXpQ==
X-CSE-MsgGUID: q+5C3HgETUOdRaewTXDTSg==
X-IronPort-AV: E=McAfee;i="6700,10204,11412"; a="50674127"
X-IronPort-AV: E=Sophos;i="6.15,233,1739865600"; 
   d="scan'208";a="50674127"
X-CSE-ConnectionGUID: hN2luxYRRR22QwDVEy73vw==
X-CSE-MsgGUID: TPuRvEnIRWOtX5fYO79fZg==
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="6.15,233,1739865600"; 
   d="scan'208";a="137495477"
Message-ID: <4caedcaf-793a-4371-a8db-50723dcdbad4@intel.com>
Date: Wed, 23 Apr 2025 07:13:37 -0700
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH v2 01/34] x86/msr: Move rdtsc{,_ordered}() to
 <asm/tsc.h>
To: "Xin Li (Intel)" <xin@zytor.com>, linux-kernel@vger.kernel.org,
 kvm@vger.kernel.org, linux-perf-users@vger.kernel.org,
 linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
 linux-pm@vger.kernel.org, linux-edac@vger.kernel.org,
 xen-devel@lists.xenproject.org, linux-acpi@vger.kernel.org,
 linux-hwmon@vger.kernel.org, netdev@vger.kernel.org,
 platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
 dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com, acme@kernel.org,
 jgross@suse.com, andrew.cooper3@citrix.com, peterz@infradead.org,
 namhyung@kernel.org, mark.rutland@arm.com,
 alexander.shishkin@linux.intel.com, jolsa@kernel.org, irogers@google.com,
 adrian.hunter@intel.com, kan.liang@linux.intel.com, wei.liu@kernel.org,
 ajay.kaher@broadcom.com, bcm-kernel-feedback-list@broadcom.com,
 tony.luck@intel.com, pbonzini@redhat.com, vkuznets@redhat.com,
 seanjc@google.com, luto@kernel.org, boris.ostrovsky@oracle.com,
 kys@microsoft.com, haiyangz@microsoft.com, decui@microsoft.com
References: <20250422082216.1954310-1-xin@zytor.com>
 <20250422082216.1954310-2-xin@zytor.com>
From: Dave Hansen <dave.hansen@intel.com>
Content-Language: en-US
Autocrypt: addr=dave.hansen@intel.com; keydata=
 xsFNBE6HMP0BEADIMA3XYkQfF3dwHlj58Yjsc4E5y5G67cfbt8dvaUq2fx1lR0K9h1bOI6fC
 oAiUXvGAOxPDsB/P6UEOISPpLl5IuYsSwAeZGkdQ5g6m1xq7AlDJQZddhr/1DC/nMVa/2BoY
 2UnKuZuSBu7lgOE193+7Uks3416N2hTkyKUSNkduyoZ9F5twiBhxPJwPtn/wnch6n5RsoXsb
 ygOEDxLEsSk/7eyFycjE+btUtAWZtx+HseyaGfqkZK0Z9bT1lsaHecmB203xShwCPT49Blxz
 VOab8668QpaEOdLGhtvrVYVK7x4skyT3nGWcgDCl5/Vp3TWA4K+IofwvXzX2ON/Mj7aQwf5W
 iC+3nWC7q0uxKwwsddJ0Nu+dpA/UORQWa1NiAftEoSpk5+nUUi0WE+5DRm0H+TXKBWMGNCFn
 c6+EKg5zQaa8KqymHcOrSXNPmzJuXvDQ8uj2J8XuzCZfK4uy1+YdIr0yyEMI7mdh4KX50LO1
 pmowEqDh7dLShTOif/7UtQYrzYq9cPnjU2ZW4qd5Qz2joSGTG9eCXLz5PRe5SqHxv6ljk8mb
 ApNuY7bOXO/A7T2j5RwXIlcmssqIjBcxsRRoIbpCwWWGjkYjzYCjgsNFL6rt4OL11OUF37wL
 QcTl7fbCGv53KfKPdYD5hcbguLKi/aCccJK18ZwNjFhqr4MliQARAQABzUVEYXZpZCBDaHJp
 c3RvcGhlciBIYW5zZW4gKEludGVsIFdvcmsgQWRkcmVzcykgPGRhdmUuaGFuc2VuQGludGVs
 LmNvbT7CwXgEEwECACIFAlQ+9J0CGwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEGg1
 lTBwyZKwLZUP/0dnbhDc229u2u6WtK1s1cSd9WsflGXGagkR6liJ4um3XCfYWDHvIdkHYC1t
 MNcVHFBwmQkawxsYvgO8kXT3SaFZe4ISfB4K4CL2qp4JO+nJdlFUbZI7cz/Td9z8nHjMcWYF
 IQuTsWOLs/LBMTs+ANumibtw6UkiGVD3dfHJAOPNApjVr+M0P/lVmTeP8w0uVcd2syiaU5jB
 aht9CYATn+ytFGWZnBEEQFnqcibIaOrmoBLu2b3fKJEd8Jp7NHDSIdrvrMjYynmc6sZKUqH2
 I1qOevaa8jUg7wlLJAWGfIqnu85kkqrVOkbNbk4TPub7VOqA6qG5GCNEIv6ZY7HLYd/vAkVY
 E8Plzq/NwLAuOWxvGrOl7OPuwVeR4hBDfcrNb990MFPpjGgACzAZyjdmYoMu8j3/MAEW4P0z
 F5+EYJAOZ+z212y1pchNNauehORXgjrNKsZwxwKpPY9qb84E3O9KYpwfATsqOoQ6tTgr+1BR
 CCwP712H+E9U5HJ0iibN/CDZFVPL1bRerHziuwuQuvE0qWg0+0SChFe9oq0KAwEkVs6ZDMB2
 P16MieEEQ6StQRlvy2YBv80L1TMl3T90Bo1UUn6ARXEpcbFE0/aORH/jEXcRteb+vuik5UGY
 5TsyLYdPur3TXm7XDBdmmyQVJjnJKYK9AQxj95KlXLVO38lczsFNBFRjzmoBEACyAxbvUEhd
 GDGNg0JhDdezyTdN8C9BFsdxyTLnSH31NRiyp1QtuxvcqGZjb2trDVuCbIzRrgMZLVgo3upr
 MIOx1CXEgmn23Zhh0EpdVHM8IKx9Z7V0r+rrpRWFE8/wQZngKYVi49PGoZj50ZEifEJ5qn/H
 Nsp2+Y+bTUjDdgWMATg9DiFMyv8fvoqgNsNyrrZTnSgoLzdxr89FGHZCoSoAK8gfgFHuO54B
 lI8QOfPDG9WDPJ66HCodjTlBEr/Cwq6GruxS5i2Y33YVqxvFvDa1tUtl+iJ2SWKS9kCai2DR
 3BwVONJEYSDQaven/EHMlY1q8Vln3lGPsS11vSUK3QcNJjmrgYxH5KsVsf6PNRj9mp8Z1kIG
 qjRx08+nnyStWC0gZH6NrYyS9rpqH3j+hA2WcI7De51L4Rv9pFwzp161mvtc6eC/GxaiUGuH
 BNAVP0PY0fqvIC68p3rLIAW3f97uv4ce2RSQ7LbsPsimOeCo/5vgS6YQsj83E+AipPr09Caj
 0hloj+hFoqiticNpmsxdWKoOsV0PftcQvBCCYuhKbZV9s5hjt9qn8CE86A5g5KqDf83Fxqm/
 vXKgHNFHE5zgXGZnrmaf6resQzbvJHO0Fb0CcIohzrpPaL3YepcLDoCCgElGMGQjdCcSQ+Ci
 FCRl0Bvyj1YZUql+ZkptgGjikQARAQABwsFfBBgBAgAJBQJUY85qAhsMAAoJEGg1lTBwyZKw
 l4IQAIKHs/9po4spZDFyfDjunimEhVHqlUt7ggR1Hsl/tkvTSze8pI1P6dGp2XW6AnH1iayn
 yRcoyT0ZJ+Zmm4xAH1zqKjWplzqdb/dO28qk0bPso8+1oPO8oDhLm1+tY+cOvufXkBTm+whm
 +AyNTjaCRt6aSMnA/QHVGSJ8grrTJCoACVNhnXg/R0g90g8iV8Q+IBZyDkG0tBThaDdw1B2l
 asInUTeb9EiVfL/Zjdg5VWiF9LL7iS+9hTeVdR09vThQ/DhVbCNxVk+DtyBHsjOKifrVsYep
 WpRGBIAu3bK8eXtyvrw1igWTNs2wazJ71+0z2jMzbclKAyRHKU9JdN6Hkkgr2nPb561yjcB8
 sIq1pFXKyO+nKy6SZYxOvHxCcjk2fkw6UmPU6/j/nQlj2lfOAgNVKuDLothIxzi8pndB8Jju
 KktE5HJqUUMXePkAYIxEQ0mMc8Po7tuXdejgPMwgP7x65xtfEqI0RuzbUioFltsp1jUaRwQZ
 MTsCeQDdjpgHsj+P2ZDeEKCbma4m6Ez/YWs4+zDm1X8uZDkZcfQlD9NldbKDJEXLIjYWo1PH
 hYepSffIWPyvBMBTW2W5FRjJ4vLRrJSUoEfJuPQ3vW9Y73foyo/qFoURHO48AinGPZ7PC7TF
 vUaNOTjKedrqHkaOcqB185ahG2had0xnFsDPlx5y
In-Reply-To: <20250422082216.1954310-2-xin@zytor.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 4/22/25 01:21, Xin Li (Intel) wrote:
> Relocate rdtsc{,_ordered}() from <asm/msr.h> to <asm/tsc.h>, and
> subsequently remove the inclusion of <asm/msr.h> in <asm/tsc.h>.
> Consequently, <asm/msr.h> must be included in several source files
> that previously did not require it.

I know it's mildly obvious but could you please add a problem statement
to these changelogs, even if it's just one little sentence?

	For some reason, there are some TSC-related functions in the
	MSR header even though there is a tsc.h header.

	Relocate rdtsc{,_ordered}() and	subsequently remove the
	inclusion of <asm/msr.h> in <asm/tsc.h>. Consequently,
	<asm/msr.h> must be included in several source files that
	previously did not require it.

But I agree with the concept, so with this fixed:

Acked-by: Dave Hansen <dave.hansen@linux.intel.com>


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 14:23:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 14:23:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.964795.1355495 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7b0e-0001YI-L6; Wed, 23 Apr 2025 14:23:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 964795.1355495; Wed, 23 Apr 2025 14: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 1u7b0e-0001YB-HR; Wed, 23 Apr 2025 14:23:32 +0000
Received: by outflank-mailman (input) for mailman id 964795;
 Wed, 23 Apr 2025 14:23:30 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=maGd=XJ=intel.com=dave.hansen@srs-se1.protection.inumbo.net>)
 id 1u7b0c-0001Y5-G3
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 14:23:30 +0000
Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.15])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 83317376-204e-11f0-9ffb-bf95429c2676;
 Wed, 23 Apr 2025 16:23:24 +0200 (CEST)
Received: from orviesa003.jf.intel.com ([10.64.159.143])
 by orvoesa107.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 23 Apr 2025 07:23:22 -0700
Received: from tfalcon-desk.amr.corp.intel.com (HELO [10.124.221.81])
 ([10.124.221.81])
 by ORVIESA003-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 23 Apr 2025 07:23:20 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 83317376-204e-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1745418204; x=1776954204;
  h=message-id:date:mime-version:subject:to:cc:references:
   from:in-reply-to:content-transfer-encoding;
  bh=tHTpVzk3+ZEiX7ugvs6Lfw0ZYGNXah6++b74fB/6rjw=;
  b=PQZceclqjZuHsJOWg39jCcD+Sdu3mIXHvu/9+F8b94HvM02xYpBlGtox
   ZGAo8QthBGcEDOh4U10O72JRRddA5asoFQeBieZDW8l54X81PBzo4qI7t
   5YYWBFccabarV3f41TQMdEAuLuIbukaZmVkGhWg4Cz3QTfO42Zs6jF7ri
   Ktddq83dOzHHyuegSq6+lw8U71kah9mXtTpDfHEU2HfhzyczIVvhswfy3
   Ttc73xb0+eIffZrc6/qNFrwubjcw3+QkGC5Mn5+vL5YqCAEoKFXAUF36G
   LQJ70USshB0xiyrSGeKFcE0JOjtAqV6UPa2ATTD0COTNwaMwgOxIMw+i/
   w==;
X-CSE-ConnectionGUID: A9I+Wd57T6ewtKHZIuMY3Q==
X-CSE-MsgGUID: fWB6/jAWS3Wbf/hpJf6BDA==
X-IronPort-AV: E=McAfee;i="6700,10204,11412"; a="50675724"
X-IronPort-AV: E=Sophos;i="6.15,233,1739865600"; 
   d="scan'208";a="50675724"
X-CSE-ConnectionGUID: VF+QowvpTNSFO2erE2BvIw==
X-CSE-MsgGUID: 7Ac1XyxrR7yxEiIKXp/Eaw==
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="6.15,233,1739865600"; 
   d="scan'208";a="137190592"
Message-ID: <163061d6-d0fe-466d-909b-195ddf208211@intel.com>
Date: Wed, 23 Apr 2025 07:23:18 -0700
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH v2 02/34] x86/msr: Remove rdpmc()
To: "Xin Li (Intel)" <xin@zytor.com>, linux-kernel@vger.kernel.org,
 kvm@vger.kernel.org, linux-perf-users@vger.kernel.org,
 linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
 linux-pm@vger.kernel.org, linux-edac@vger.kernel.org,
 xen-devel@lists.xenproject.org, linux-acpi@vger.kernel.org,
 linux-hwmon@vger.kernel.org, netdev@vger.kernel.org,
 platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
 dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com, acme@kernel.org,
 jgross@suse.com, andrew.cooper3@citrix.com, peterz@infradead.org,
 namhyung@kernel.org, mark.rutland@arm.com,
 alexander.shishkin@linux.intel.com, jolsa@kernel.org, irogers@google.com,
 adrian.hunter@intel.com, kan.liang@linux.intel.com, wei.liu@kernel.org,
 ajay.kaher@broadcom.com, bcm-kernel-feedback-list@broadcom.com,
 tony.luck@intel.com, pbonzini@redhat.com, vkuznets@redhat.com,
 seanjc@google.com, luto@kernel.org, boris.ostrovsky@oracle.com,
 kys@microsoft.com, haiyangz@microsoft.com, decui@microsoft.com
References: <20250422082216.1954310-1-xin@zytor.com>
 <20250422082216.1954310-3-xin@zytor.com>
From: Dave Hansen <dave.hansen@intel.com>
Content-Language: en-US
Autocrypt: addr=dave.hansen@intel.com; keydata=
 xsFNBE6HMP0BEADIMA3XYkQfF3dwHlj58Yjsc4E5y5G67cfbt8dvaUq2fx1lR0K9h1bOI6fC
 oAiUXvGAOxPDsB/P6UEOISPpLl5IuYsSwAeZGkdQ5g6m1xq7AlDJQZddhr/1DC/nMVa/2BoY
 2UnKuZuSBu7lgOE193+7Uks3416N2hTkyKUSNkduyoZ9F5twiBhxPJwPtn/wnch6n5RsoXsb
 ygOEDxLEsSk/7eyFycjE+btUtAWZtx+HseyaGfqkZK0Z9bT1lsaHecmB203xShwCPT49Blxz
 VOab8668QpaEOdLGhtvrVYVK7x4skyT3nGWcgDCl5/Vp3TWA4K+IofwvXzX2ON/Mj7aQwf5W
 iC+3nWC7q0uxKwwsddJ0Nu+dpA/UORQWa1NiAftEoSpk5+nUUi0WE+5DRm0H+TXKBWMGNCFn
 c6+EKg5zQaa8KqymHcOrSXNPmzJuXvDQ8uj2J8XuzCZfK4uy1+YdIr0yyEMI7mdh4KX50LO1
 pmowEqDh7dLShTOif/7UtQYrzYq9cPnjU2ZW4qd5Qz2joSGTG9eCXLz5PRe5SqHxv6ljk8mb
 ApNuY7bOXO/A7T2j5RwXIlcmssqIjBcxsRRoIbpCwWWGjkYjzYCjgsNFL6rt4OL11OUF37wL
 QcTl7fbCGv53KfKPdYD5hcbguLKi/aCccJK18ZwNjFhqr4MliQARAQABzUVEYXZpZCBDaHJp
 c3RvcGhlciBIYW5zZW4gKEludGVsIFdvcmsgQWRkcmVzcykgPGRhdmUuaGFuc2VuQGludGVs
 LmNvbT7CwXgEEwECACIFAlQ+9J0CGwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEGg1
 lTBwyZKwLZUP/0dnbhDc229u2u6WtK1s1cSd9WsflGXGagkR6liJ4um3XCfYWDHvIdkHYC1t
 MNcVHFBwmQkawxsYvgO8kXT3SaFZe4ISfB4K4CL2qp4JO+nJdlFUbZI7cz/Td9z8nHjMcWYF
 IQuTsWOLs/LBMTs+ANumibtw6UkiGVD3dfHJAOPNApjVr+M0P/lVmTeP8w0uVcd2syiaU5jB
 aht9CYATn+ytFGWZnBEEQFnqcibIaOrmoBLu2b3fKJEd8Jp7NHDSIdrvrMjYynmc6sZKUqH2
 I1qOevaa8jUg7wlLJAWGfIqnu85kkqrVOkbNbk4TPub7VOqA6qG5GCNEIv6ZY7HLYd/vAkVY
 E8Plzq/NwLAuOWxvGrOl7OPuwVeR4hBDfcrNb990MFPpjGgACzAZyjdmYoMu8j3/MAEW4P0z
 F5+EYJAOZ+z212y1pchNNauehORXgjrNKsZwxwKpPY9qb84E3O9KYpwfATsqOoQ6tTgr+1BR
 CCwP712H+E9U5HJ0iibN/CDZFVPL1bRerHziuwuQuvE0qWg0+0SChFe9oq0KAwEkVs6ZDMB2
 P16MieEEQ6StQRlvy2YBv80L1TMl3T90Bo1UUn6ARXEpcbFE0/aORH/jEXcRteb+vuik5UGY
 5TsyLYdPur3TXm7XDBdmmyQVJjnJKYK9AQxj95KlXLVO38lczsFNBFRjzmoBEACyAxbvUEhd
 GDGNg0JhDdezyTdN8C9BFsdxyTLnSH31NRiyp1QtuxvcqGZjb2trDVuCbIzRrgMZLVgo3upr
 MIOx1CXEgmn23Zhh0EpdVHM8IKx9Z7V0r+rrpRWFE8/wQZngKYVi49PGoZj50ZEifEJ5qn/H
 Nsp2+Y+bTUjDdgWMATg9DiFMyv8fvoqgNsNyrrZTnSgoLzdxr89FGHZCoSoAK8gfgFHuO54B
 lI8QOfPDG9WDPJ66HCodjTlBEr/Cwq6GruxS5i2Y33YVqxvFvDa1tUtl+iJ2SWKS9kCai2DR
 3BwVONJEYSDQaven/EHMlY1q8Vln3lGPsS11vSUK3QcNJjmrgYxH5KsVsf6PNRj9mp8Z1kIG
 qjRx08+nnyStWC0gZH6NrYyS9rpqH3j+hA2WcI7De51L4Rv9pFwzp161mvtc6eC/GxaiUGuH
 BNAVP0PY0fqvIC68p3rLIAW3f97uv4ce2RSQ7LbsPsimOeCo/5vgS6YQsj83E+AipPr09Caj
 0hloj+hFoqiticNpmsxdWKoOsV0PftcQvBCCYuhKbZV9s5hjt9qn8CE86A5g5KqDf83Fxqm/
 vXKgHNFHE5zgXGZnrmaf6resQzbvJHO0Fb0CcIohzrpPaL3YepcLDoCCgElGMGQjdCcSQ+Ci
 FCRl0Bvyj1YZUql+ZkptgGjikQARAQABwsFfBBgBAgAJBQJUY85qAhsMAAoJEGg1lTBwyZKw
 l4IQAIKHs/9po4spZDFyfDjunimEhVHqlUt7ggR1Hsl/tkvTSze8pI1P6dGp2XW6AnH1iayn
 yRcoyT0ZJ+Zmm4xAH1zqKjWplzqdb/dO28qk0bPso8+1oPO8oDhLm1+tY+cOvufXkBTm+whm
 +AyNTjaCRt6aSMnA/QHVGSJ8grrTJCoACVNhnXg/R0g90g8iV8Q+IBZyDkG0tBThaDdw1B2l
 asInUTeb9EiVfL/Zjdg5VWiF9LL7iS+9hTeVdR09vThQ/DhVbCNxVk+DtyBHsjOKifrVsYep
 WpRGBIAu3bK8eXtyvrw1igWTNs2wazJ71+0z2jMzbclKAyRHKU9JdN6Hkkgr2nPb561yjcB8
 sIq1pFXKyO+nKy6SZYxOvHxCcjk2fkw6UmPU6/j/nQlj2lfOAgNVKuDLothIxzi8pndB8Jju
 KktE5HJqUUMXePkAYIxEQ0mMc8Po7tuXdejgPMwgP7x65xtfEqI0RuzbUioFltsp1jUaRwQZ
 MTsCeQDdjpgHsj+P2ZDeEKCbma4m6Ez/YWs4+zDm1X8uZDkZcfQlD9NldbKDJEXLIjYWo1PH
 hYepSffIWPyvBMBTW2W5FRjJ4vLRrJSUoEfJuPQ3vW9Y73foyo/qFoURHO48AinGPZ7PC7TF
 vUaNOTjKedrqHkaOcqB185ahG2had0xnFsDPlx5y
In-Reply-To: <20250422082216.1954310-3-xin@zytor.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 4/22/25 01:21, Xin Li (Intel) wrote:
> rdpmc() is not used anywhere, remove it.

I'm not sure it was *ever* used (at least since git started). Thanks for
finding this.

Acked-by: Dave Hansen <dave.hansen@linux.intel.com>



From xen-devel-bounces@lists.xenproject.org Wed Apr 23 14:24:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 14:24:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.964803.1355505 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7b1Z-00023e-Tw; Wed, 23 Apr 2025 14:24:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 964803.1355505; Wed, 23 Apr 2025 14:24: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 1u7b1Z-00023X-QF; Wed, 23 Apr 2025 14:24:29 +0000
Received: by outflank-mailman (input) for mailman id 964803;
 Wed, 23 Apr 2025 14:24: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=maGd=XJ=intel.com=dave.hansen@srs-se1.protection.inumbo.net>)
 id 1u7b1Y-00023J-LM
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 14:24:28 +0000
Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.15])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a84d77ab-204e-11f0-9ffb-bf95429c2676;
 Wed, 23 Apr 2025 16:24:26 +0200 (CEST)
Received: from orviesa003.jf.intel.com ([10.64.159.143])
 by orvoesa107.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 23 Apr 2025 07:24:24 -0700
Received: from tfalcon-desk.amr.corp.intel.com (HELO [10.124.221.81])
 ([10.124.221.81])
 by ORVIESA003-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 23 Apr 2025 07:24:23 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a84d77ab-204e-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1745418266; x=1776954266;
  h=message-id:date:mime-version:subject:to:cc:references:
   from:in-reply-to:content-transfer-encoding;
  bh=5GxHj0Q68iefqoaKTtjndiUuPGnSJtU6UMixn6eM65g=;
  b=SnnBPb+6rAs8qkeqhHm3GE7t9jZs0mG2iOgdGwPPG1M6eC0jaZ/rTkxU
   3PSr1xrMWoL8nIlStQESBaUF/BTtZDviuhhnCIOUvy0jYbp1X5QSrzAzt
   IwLbHzsacfHXtJ6gb63vsjj2/h8gGxFNxvIFUeNrAd8xlQm2dppfEwYLM
   aafrNnM/wWVxMkEZrDeG5SaG7nBCUAEjD49UkH1KKEPb/DMkJ9i/qB+v6
   mssVHqQYRFTI4o8wJAsxZ1prkoHqvpmEFtX8tOUwDEnbHCCMJByi9DEZ/
   mNhJhS1qnq46+KVRu0zaMMSC5kKRPfHwmwu6vhuUDE4fmpRf8h8DXOkMe
   w==;
X-CSE-ConnectionGUID: 5tMN9sYFRTynqe12YzuxcA==
X-CSE-MsgGUID: 4EA/S5obQuqYLUM/CNeHaA==
X-IronPort-AV: E=McAfee;i="6700,10204,11412"; a="50675866"
X-IronPort-AV: E=Sophos;i="6.15,233,1739865600"; 
   d="scan'208";a="50675866"
X-CSE-ConnectionGUID: 0kLyYCh8Qce7BgC/OxCKGg==
X-CSE-MsgGUID: W+Y8/vM6RmuS5sj4/hyHjg==
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="6.15,233,1739865600"; 
   d="scan'208";a="137190903"
Message-ID: <0caab744-0107-408a-8df0-861d561fa4b6@intel.com>
Date: Wed, 23 Apr 2025 07:24:21 -0700
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH v2 03/34] x86/msr: Rename rdpmcl() to rdpmcq()
To: "Xin Li (Intel)" <xin@zytor.com>, linux-kernel@vger.kernel.org,
 kvm@vger.kernel.org, linux-perf-users@vger.kernel.org,
 linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
 linux-pm@vger.kernel.org, linux-edac@vger.kernel.org,
 xen-devel@lists.xenproject.org, linux-acpi@vger.kernel.org,
 linux-hwmon@vger.kernel.org, netdev@vger.kernel.org,
 platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
 dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com, acme@kernel.org,
 jgross@suse.com, andrew.cooper3@citrix.com, peterz@infradead.org,
 namhyung@kernel.org, mark.rutland@arm.com,
 alexander.shishkin@linux.intel.com, jolsa@kernel.org, irogers@google.com,
 adrian.hunter@intel.com, kan.liang@linux.intel.com, wei.liu@kernel.org,
 ajay.kaher@broadcom.com, bcm-kernel-feedback-list@broadcom.com,
 tony.luck@intel.com, pbonzini@redhat.com, vkuznets@redhat.com,
 seanjc@google.com, luto@kernel.org, boris.ostrovsky@oracle.com,
 kys@microsoft.com, haiyangz@microsoft.com, decui@microsoft.com
References: <20250422082216.1954310-1-xin@zytor.com>
 <20250422082216.1954310-4-xin@zytor.com>
From: Dave Hansen <dave.hansen@intel.com>
Content-Language: en-US
Autocrypt: addr=dave.hansen@intel.com; keydata=
 xsFNBE6HMP0BEADIMA3XYkQfF3dwHlj58Yjsc4E5y5G67cfbt8dvaUq2fx1lR0K9h1bOI6fC
 oAiUXvGAOxPDsB/P6UEOISPpLl5IuYsSwAeZGkdQ5g6m1xq7AlDJQZddhr/1DC/nMVa/2BoY
 2UnKuZuSBu7lgOE193+7Uks3416N2hTkyKUSNkduyoZ9F5twiBhxPJwPtn/wnch6n5RsoXsb
 ygOEDxLEsSk/7eyFycjE+btUtAWZtx+HseyaGfqkZK0Z9bT1lsaHecmB203xShwCPT49Blxz
 VOab8668QpaEOdLGhtvrVYVK7x4skyT3nGWcgDCl5/Vp3TWA4K+IofwvXzX2ON/Mj7aQwf5W
 iC+3nWC7q0uxKwwsddJ0Nu+dpA/UORQWa1NiAftEoSpk5+nUUi0WE+5DRm0H+TXKBWMGNCFn
 c6+EKg5zQaa8KqymHcOrSXNPmzJuXvDQ8uj2J8XuzCZfK4uy1+YdIr0yyEMI7mdh4KX50LO1
 pmowEqDh7dLShTOif/7UtQYrzYq9cPnjU2ZW4qd5Qz2joSGTG9eCXLz5PRe5SqHxv6ljk8mb
 ApNuY7bOXO/A7T2j5RwXIlcmssqIjBcxsRRoIbpCwWWGjkYjzYCjgsNFL6rt4OL11OUF37wL
 QcTl7fbCGv53KfKPdYD5hcbguLKi/aCccJK18ZwNjFhqr4MliQARAQABzUVEYXZpZCBDaHJp
 c3RvcGhlciBIYW5zZW4gKEludGVsIFdvcmsgQWRkcmVzcykgPGRhdmUuaGFuc2VuQGludGVs
 LmNvbT7CwXgEEwECACIFAlQ+9J0CGwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEGg1
 lTBwyZKwLZUP/0dnbhDc229u2u6WtK1s1cSd9WsflGXGagkR6liJ4um3XCfYWDHvIdkHYC1t
 MNcVHFBwmQkawxsYvgO8kXT3SaFZe4ISfB4K4CL2qp4JO+nJdlFUbZI7cz/Td9z8nHjMcWYF
 IQuTsWOLs/LBMTs+ANumibtw6UkiGVD3dfHJAOPNApjVr+M0P/lVmTeP8w0uVcd2syiaU5jB
 aht9CYATn+ytFGWZnBEEQFnqcibIaOrmoBLu2b3fKJEd8Jp7NHDSIdrvrMjYynmc6sZKUqH2
 I1qOevaa8jUg7wlLJAWGfIqnu85kkqrVOkbNbk4TPub7VOqA6qG5GCNEIv6ZY7HLYd/vAkVY
 E8Plzq/NwLAuOWxvGrOl7OPuwVeR4hBDfcrNb990MFPpjGgACzAZyjdmYoMu8j3/MAEW4P0z
 F5+EYJAOZ+z212y1pchNNauehORXgjrNKsZwxwKpPY9qb84E3O9KYpwfATsqOoQ6tTgr+1BR
 CCwP712H+E9U5HJ0iibN/CDZFVPL1bRerHziuwuQuvE0qWg0+0SChFe9oq0KAwEkVs6ZDMB2
 P16MieEEQ6StQRlvy2YBv80L1TMl3T90Bo1UUn6ARXEpcbFE0/aORH/jEXcRteb+vuik5UGY
 5TsyLYdPur3TXm7XDBdmmyQVJjnJKYK9AQxj95KlXLVO38lczsFNBFRjzmoBEACyAxbvUEhd
 GDGNg0JhDdezyTdN8C9BFsdxyTLnSH31NRiyp1QtuxvcqGZjb2trDVuCbIzRrgMZLVgo3upr
 MIOx1CXEgmn23Zhh0EpdVHM8IKx9Z7V0r+rrpRWFE8/wQZngKYVi49PGoZj50ZEifEJ5qn/H
 Nsp2+Y+bTUjDdgWMATg9DiFMyv8fvoqgNsNyrrZTnSgoLzdxr89FGHZCoSoAK8gfgFHuO54B
 lI8QOfPDG9WDPJ66HCodjTlBEr/Cwq6GruxS5i2Y33YVqxvFvDa1tUtl+iJ2SWKS9kCai2DR
 3BwVONJEYSDQaven/EHMlY1q8Vln3lGPsS11vSUK3QcNJjmrgYxH5KsVsf6PNRj9mp8Z1kIG
 qjRx08+nnyStWC0gZH6NrYyS9rpqH3j+hA2WcI7De51L4Rv9pFwzp161mvtc6eC/GxaiUGuH
 BNAVP0PY0fqvIC68p3rLIAW3f97uv4ce2RSQ7LbsPsimOeCo/5vgS6YQsj83E+AipPr09Caj
 0hloj+hFoqiticNpmsxdWKoOsV0PftcQvBCCYuhKbZV9s5hjt9qn8CE86A5g5KqDf83Fxqm/
 vXKgHNFHE5zgXGZnrmaf6resQzbvJHO0Fb0CcIohzrpPaL3YepcLDoCCgElGMGQjdCcSQ+Ci
 FCRl0Bvyj1YZUql+ZkptgGjikQARAQABwsFfBBgBAgAJBQJUY85qAhsMAAoJEGg1lTBwyZKw
 l4IQAIKHs/9po4spZDFyfDjunimEhVHqlUt7ggR1Hsl/tkvTSze8pI1P6dGp2XW6AnH1iayn
 yRcoyT0ZJ+Zmm4xAH1zqKjWplzqdb/dO28qk0bPso8+1oPO8oDhLm1+tY+cOvufXkBTm+whm
 +AyNTjaCRt6aSMnA/QHVGSJ8grrTJCoACVNhnXg/R0g90g8iV8Q+IBZyDkG0tBThaDdw1B2l
 asInUTeb9EiVfL/Zjdg5VWiF9LL7iS+9hTeVdR09vThQ/DhVbCNxVk+DtyBHsjOKifrVsYep
 WpRGBIAu3bK8eXtyvrw1igWTNs2wazJ71+0z2jMzbclKAyRHKU9JdN6Hkkgr2nPb561yjcB8
 sIq1pFXKyO+nKy6SZYxOvHxCcjk2fkw6UmPU6/j/nQlj2lfOAgNVKuDLothIxzi8pndB8Jju
 KktE5HJqUUMXePkAYIxEQ0mMc8Po7tuXdejgPMwgP7x65xtfEqI0RuzbUioFltsp1jUaRwQZ
 MTsCeQDdjpgHsj+P2ZDeEKCbma4m6Ez/YWs4+zDm1X8uZDkZcfQlD9NldbKDJEXLIjYWo1PH
 hYepSffIWPyvBMBTW2W5FRjJ4vLRrJSUoEfJuPQ3vW9Y73foyo/qFoURHO48AinGPZ7PC7TF
 vUaNOTjKedrqHkaOcqB185ahG2had0xnFsDPlx5y
In-Reply-To: <20250422082216.1954310-4-xin@zytor.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 4/22/25 01:21, Xin Li (Intel) wrote:
> Signed-off-by: Xin Li (Intel) <xin@zytor.com>

We had a non-trivial discussion about the l=>q renames. Please at least
include a sentence or two about those discussions.

For the code:

Acked-by: Dave Hansen <dave.hansen@linux.intel.com>


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 14:25:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 14:25:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.964818.1355514 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7b2Z-0002dy-9h; Wed, 23 Apr 2025 14:25:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 964818.1355514; Wed, 23 Apr 2025 14:25: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 1u7b2Z-0002dr-6s; Wed, 23 Apr 2025 14:25:31 +0000
Received: by outflank-mailman (input) for mailman id 964818;
 Wed, 23 Apr 2025 14:25: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=maGd=XJ=intel.com=dave.hansen@srs-se1.protection.inumbo.net>)
 id 1u7b2Y-0002dl-P2
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 14:25:30 +0000
Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.20])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id cd27e890-204e-11f0-9eb0-5ba50f476ded;
 Wed, 23 Apr 2025 16:25:28 +0200 (CEST)
Received: from fmviesa004.fm.intel.com ([10.60.135.144])
 by orvoesa112.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 23 Apr 2025 07:25:27 -0700
Received: from tfalcon-desk.amr.corp.intel.com (HELO [10.124.221.81])
 ([10.124.221.81])
 by fmviesa004-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 23 Apr 2025 07:25:24 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cd27e890-204e-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1745418329; x=1776954329;
  h=message-id:date:mime-version:subject:to:cc:references:
   from:in-reply-to:content-transfer-encoding;
  bh=lnoxov44YiijcxAHjS45FDcwQ1bLTT0pk3Dflv1VlkY=;
  b=ivAq+yt+cj++bTfciqRl865AlG1/6ejfwiryBajIqbbdqz4QJsEepauF
   xGhU26+HaEkQdHQzRgjaGG3aQwsTRUrTjI0pbl5GaTIM/9ilK/jUAABLf
   Oa1ekkRGNBsjP9BZ+sDrmkmhcKgbSKvhDYG30JbLyfitn67shXFQ4Mlcx
   519xeyf42MBsi5EQOMSWxbJ57CfWsHLxXr3x3x5X7oMLgARBo9guKOuKr
   aJFTPzglBYrcpXtEpQO4czzZZ5uL/PbuCxU0qREzj4nZUeJSqotbPPSM6
   sR0qPD3Rn3DlobWufrXG2vk/OK+dEPsuKP6IK5CvTGrxLOwwbJP0Zojtp
   g==;
X-CSE-ConnectionGUID: 6ZOq5sGLSmm308MvNF/9DQ==
X-CSE-MsgGUID: Udgle0ieRRW7e6VasWj+Bw==
X-IronPort-AV: E=McAfee;i="6700,10204,11412"; a="46717332"
X-IronPort-AV: E=Sophos;i="6.15,233,1739865600"; 
   d="scan'208";a="46717332"
X-CSE-ConnectionGUID: 5hu8NpZuRYSvcXVBz8M0Ow==
X-CSE-MsgGUID: tLM2ERpfQ4aMi5ZC9w+9wA==
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="6.15,233,1739865600"; 
   d="scan'208";a="137404934"
Message-ID: <61a51aac-4692-4049-85ce-c780c25f6332@intel.com>
Date: Wed, 23 Apr 2025 07:25:22 -0700
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH v2 04/34] x86/msr: Convert rdpmcq() into a function
To: "Xin Li (Intel)" <xin@zytor.com>, linux-kernel@vger.kernel.org,
 kvm@vger.kernel.org, linux-perf-users@vger.kernel.org,
 linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
 linux-pm@vger.kernel.org, linux-edac@vger.kernel.org,
 xen-devel@lists.xenproject.org, linux-acpi@vger.kernel.org,
 linux-hwmon@vger.kernel.org, netdev@vger.kernel.org,
 platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
 dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com, acme@kernel.org,
 jgross@suse.com, andrew.cooper3@citrix.com, peterz@infradead.org,
 namhyung@kernel.org, mark.rutland@arm.com,
 alexander.shishkin@linux.intel.com, jolsa@kernel.org, irogers@google.com,
 adrian.hunter@intel.com, kan.liang@linux.intel.com, wei.liu@kernel.org,
 ajay.kaher@broadcom.com, bcm-kernel-feedback-list@broadcom.com,
 tony.luck@intel.com, pbonzini@redhat.com, vkuznets@redhat.com,
 seanjc@google.com, luto@kernel.org, boris.ostrovsky@oracle.com,
 kys@microsoft.com, haiyangz@microsoft.com, decui@microsoft.com
References: <20250422082216.1954310-1-xin@zytor.com>
 <20250422082216.1954310-5-xin@zytor.com>
From: Dave Hansen <dave.hansen@intel.com>
Content-Language: en-US
Autocrypt: addr=dave.hansen@intel.com; keydata=
 xsFNBE6HMP0BEADIMA3XYkQfF3dwHlj58Yjsc4E5y5G67cfbt8dvaUq2fx1lR0K9h1bOI6fC
 oAiUXvGAOxPDsB/P6UEOISPpLl5IuYsSwAeZGkdQ5g6m1xq7AlDJQZddhr/1DC/nMVa/2BoY
 2UnKuZuSBu7lgOE193+7Uks3416N2hTkyKUSNkduyoZ9F5twiBhxPJwPtn/wnch6n5RsoXsb
 ygOEDxLEsSk/7eyFycjE+btUtAWZtx+HseyaGfqkZK0Z9bT1lsaHecmB203xShwCPT49Blxz
 VOab8668QpaEOdLGhtvrVYVK7x4skyT3nGWcgDCl5/Vp3TWA4K+IofwvXzX2ON/Mj7aQwf5W
 iC+3nWC7q0uxKwwsddJ0Nu+dpA/UORQWa1NiAftEoSpk5+nUUi0WE+5DRm0H+TXKBWMGNCFn
 c6+EKg5zQaa8KqymHcOrSXNPmzJuXvDQ8uj2J8XuzCZfK4uy1+YdIr0yyEMI7mdh4KX50LO1
 pmowEqDh7dLShTOif/7UtQYrzYq9cPnjU2ZW4qd5Qz2joSGTG9eCXLz5PRe5SqHxv6ljk8mb
 ApNuY7bOXO/A7T2j5RwXIlcmssqIjBcxsRRoIbpCwWWGjkYjzYCjgsNFL6rt4OL11OUF37wL
 QcTl7fbCGv53KfKPdYD5hcbguLKi/aCccJK18ZwNjFhqr4MliQARAQABzUVEYXZpZCBDaHJp
 c3RvcGhlciBIYW5zZW4gKEludGVsIFdvcmsgQWRkcmVzcykgPGRhdmUuaGFuc2VuQGludGVs
 LmNvbT7CwXgEEwECACIFAlQ+9J0CGwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEGg1
 lTBwyZKwLZUP/0dnbhDc229u2u6WtK1s1cSd9WsflGXGagkR6liJ4um3XCfYWDHvIdkHYC1t
 MNcVHFBwmQkawxsYvgO8kXT3SaFZe4ISfB4K4CL2qp4JO+nJdlFUbZI7cz/Td9z8nHjMcWYF
 IQuTsWOLs/LBMTs+ANumibtw6UkiGVD3dfHJAOPNApjVr+M0P/lVmTeP8w0uVcd2syiaU5jB
 aht9CYATn+ytFGWZnBEEQFnqcibIaOrmoBLu2b3fKJEd8Jp7NHDSIdrvrMjYynmc6sZKUqH2
 I1qOevaa8jUg7wlLJAWGfIqnu85kkqrVOkbNbk4TPub7VOqA6qG5GCNEIv6ZY7HLYd/vAkVY
 E8Plzq/NwLAuOWxvGrOl7OPuwVeR4hBDfcrNb990MFPpjGgACzAZyjdmYoMu8j3/MAEW4P0z
 F5+EYJAOZ+z212y1pchNNauehORXgjrNKsZwxwKpPY9qb84E3O9KYpwfATsqOoQ6tTgr+1BR
 CCwP712H+E9U5HJ0iibN/CDZFVPL1bRerHziuwuQuvE0qWg0+0SChFe9oq0KAwEkVs6ZDMB2
 P16MieEEQ6StQRlvy2YBv80L1TMl3T90Bo1UUn6ARXEpcbFE0/aORH/jEXcRteb+vuik5UGY
 5TsyLYdPur3TXm7XDBdmmyQVJjnJKYK9AQxj95KlXLVO38lczsFNBFRjzmoBEACyAxbvUEhd
 GDGNg0JhDdezyTdN8C9BFsdxyTLnSH31NRiyp1QtuxvcqGZjb2trDVuCbIzRrgMZLVgo3upr
 MIOx1CXEgmn23Zhh0EpdVHM8IKx9Z7V0r+rrpRWFE8/wQZngKYVi49PGoZj50ZEifEJ5qn/H
 Nsp2+Y+bTUjDdgWMATg9DiFMyv8fvoqgNsNyrrZTnSgoLzdxr89FGHZCoSoAK8gfgFHuO54B
 lI8QOfPDG9WDPJ66HCodjTlBEr/Cwq6GruxS5i2Y33YVqxvFvDa1tUtl+iJ2SWKS9kCai2DR
 3BwVONJEYSDQaven/EHMlY1q8Vln3lGPsS11vSUK3QcNJjmrgYxH5KsVsf6PNRj9mp8Z1kIG
 qjRx08+nnyStWC0gZH6NrYyS9rpqH3j+hA2WcI7De51L4Rv9pFwzp161mvtc6eC/GxaiUGuH
 BNAVP0PY0fqvIC68p3rLIAW3f97uv4ce2RSQ7LbsPsimOeCo/5vgS6YQsj83E+AipPr09Caj
 0hloj+hFoqiticNpmsxdWKoOsV0PftcQvBCCYuhKbZV9s5hjt9qn8CE86A5g5KqDf83Fxqm/
 vXKgHNFHE5zgXGZnrmaf6resQzbvJHO0Fb0CcIohzrpPaL3YepcLDoCCgElGMGQjdCcSQ+Ci
 FCRl0Bvyj1YZUql+ZkptgGjikQARAQABwsFfBBgBAgAJBQJUY85qAhsMAAoJEGg1lTBwyZKw
 l4IQAIKHs/9po4spZDFyfDjunimEhVHqlUt7ggR1Hsl/tkvTSze8pI1P6dGp2XW6AnH1iayn
 yRcoyT0ZJ+Zmm4xAH1zqKjWplzqdb/dO28qk0bPso8+1oPO8oDhLm1+tY+cOvufXkBTm+whm
 +AyNTjaCRt6aSMnA/QHVGSJ8grrTJCoACVNhnXg/R0g90g8iV8Q+IBZyDkG0tBThaDdw1B2l
 asInUTeb9EiVfL/Zjdg5VWiF9LL7iS+9hTeVdR09vThQ/DhVbCNxVk+DtyBHsjOKifrVsYep
 WpRGBIAu3bK8eXtyvrw1igWTNs2wazJ71+0z2jMzbclKAyRHKU9JdN6Hkkgr2nPb561yjcB8
 sIq1pFXKyO+nKy6SZYxOvHxCcjk2fkw6UmPU6/j/nQlj2lfOAgNVKuDLothIxzi8pndB8Jju
 KktE5HJqUUMXePkAYIxEQ0mMc8Po7tuXdejgPMwgP7x65xtfEqI0RuzbUioFltsp1jUaRwQZ
 MTsCeQDdjpgHsj+P2ZDeEKCbma4m6Ez/YWs4+zDm1X8uZDkZcfQlD9NldbKDJEXLIjYWo1PH
 hYepSffIWPyvBMBTW2W5FRjJ4vLRrJSUoEfJuPQ3vW9Y73foyo/qFoURHO48AinGPZ7PC7TF
 vUaNOTjKedrqHkaOcqB185ahG2had0xnFsDPlx5y
In-Reply-To: <20250422082216.1954310-5-xin@zytor.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 4/22/25 01:21, Xin Li (Intel) wrote:
> Signed-off-by: Xin Li (Intel) <xin@zytor.com>

Code: good.  No changelog: bad.

Once there's some semblance of a changelog:

Acked-by: Dave Hansen <dave.hansen@linux.intel.com>


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 14:28:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 14:28:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.964831.1355524 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7b5h-0003EX-LE; Wed, 23 Apr 2025 14:28:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 964831.1355524; Wed, 23 Apr 2025 14:28: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 1u7b5h-0003EQ-Ig; Wed, 23 Apr 2025 14:28:45 +0000
Received: by outflank-mailman (input) for mailman id 964831;
 Wed, 23 Apr 2025 14:28: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=IBP9=XJ=flex--seanjc.bounces.google.com=3GfkIaAYKCXYmYUhdWaiiafY.WigrYh-XYpYffcmnm.rYhjlidYWn.ila@srs-se1.protection.inumbo.net>)
 id 1u7b5g-0003EK-Me
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 14:28:44 +0000
Received: from mail-pg1-x549.google.com (mail-pg1-x549.google.com
 [2607:f8b0:4864:20::549])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 415b1378-204f-11f0-9ffb-bf95429c2676;
 Wed, 23 Apr 2025 16:28:42 +0200 (CEST)
Received: by mail-pg1-x549.google.com with SMTP id
 41be03b00d2f7-afd3f1adff7so790294a12.1
 for <xen-devel@lists.xenproject.org>; Wed, 23 Apr 2025 07:28:42 -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: 415b1378-204f-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20230601; t=1745418521; x=1746023321; darn=lists.xenproject.org;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:from:to:cc:subject:date:message-id:reply-to;
        bh=40rtvLOwDeuUbiOuCoW1t5olyX8gz8CZJ5ahJ10eU+w=;
        b=eV9iSR2067jWRO2+DiGAkYhnPzWljXvNKBxPPsayGMIhZj6engrHy/iDUd+pBQt3dZ
         WcuG8+DInS+hWWTwk5aflG8zK1ud/f5gTbL7dcQd6YIr1bQnws9MF59VCikjXXmDsrbN
         D/5QbFz3IgzN2QQfkDpzM4hJMRoWSdFFbzJ0P6lKHs8BBA6yS0bva64tuvBv1/+dI3u7
         vfUs1nFinDYdZMz/0Z9iRCrp2fac2tDA9XvBiiFb+o1XYm9bOR/iDzfYw8vd3zeW50gu
         UZojhdPOL5R3EZ5Plj2uINGnYGhu5tJplfeGdoQLraDNuwIiSfuBl+mG/cpqNM9y63DK
         tO9Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745418521; x=1746023321;
        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to
         :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=40rtvLOwDeuUbiOuCoW1t5olyX8gz8CZJ5ahJ10eU+w=;
        b=SS0WhHJ5NjSMx10ldIXNtPhvUzS9qft79/K5sVPSCDIXu8BQGBd5uaNAudwLjWQk6D
         AN1rgTpcw/07r539DIKmvNe3Xj143f7pv24McKMbJ1EXs+lFspvvbX42NNGr8qT0xKAJ
         fJ7ZzAOju/6hklqD51I6esdjpnQDh2MsDsNreuAM14pnopZP7mPwKoyMQ5pas+fgDGJm
         mP2FuvrdysUDv6SWsRLWQeTJIoT7wRvY0sRxtTMP5fzvaWjAfCm72hACBI1xjbjkBOXT
         hdXk3ao7YPWMgPqsG9NR3i7sVo9Ltp/W5dMMYIts2/73uxUjpSWK7/k2hge2W26NyNBa
         7ARw==
X-Forwarded-Encrypted: i=1; AJvYcCXgmmdlWL1V/BrFerIHUspNL6G7AajWTKJbFpVwqHLUKYv72foLBHhBEWaoHYMkCSd+ZqBM8e1vuhg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyPtVkxuRC06w65fZzqfOH+Yg3Tms0XYKwFTVdcBDjRHVansCbx
	j2EGfZMpluj+gqeeqsB8uXN2uJ94ZDoxG2Ru/qA6zHEjfFGEFVGeT0KBN3mn4+D3Me5gY1UfQ4V
	PQg==
X-Google-Smtp-Source: AGHT+IEHFWhYz0oAsCQCzYVGgs17eJ2RdOv2pA+CJ/89PxdUza1pyAyGtkAfHJad1QU5DCSNGF6B8Gtgtdo=
X-Received: from pjxx4.prod.google.com ([2002:a17:90b:58c4:b0:301:1ea9:63b0])
 (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a17:90a:c2cd:b0:2fa:21d3:4332
 with SMTP id 98e67ed59e1d1-309df187b6dmr4574319a91.12.1745418521285; Wed, 23
 Apr 2025 07:28:41 -0700 (PDT)
Date: Wed, 23 Apr 2025 07:28:39 -0700
In-Reply-To: <20250422082216.1954310-4-xin@zytor.com>
Mime-Version: 1.0
References: <20250422082216.1954310-1-xin@zytor.com> <20250422082216.1954310-4-xin@zytor.com>
Message-ID: <aAj5F9IZXG7MB0ai@google.com>
Subject: Re: [RFC PATCH v2 03/34] x86/msr: Rename rdpmcl() to rdpmcq()
From: Sean Christopherson <seanjc@google.com>
To: "Xin Li (Intel)" <xin@zytor.com>
Cc: linux-kernel@vger.kernel.org, kvm@vger.kernel.org, 
	linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org, 
	virtualization@lists.linux.dev, linux-pm@vger.kernel.org, 
	linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org, 
	linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org, 
	netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org, 
	tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, 
	dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com, acme@kernel.org, 
	jgross@suse.com, andrew.cooper3@citrix.com, peterz@infradead.org, 
	namhyung@kernel.org, mark.rutland@arm.com, alexander.shishkin@linux.intel.com, 
	jolsa@kernel.org, irogers@google.com, adrian.hunter@intel.com, 
	kan.liang@linux.intel.com, wei.liu@kernel.org, ajay.kaher@broadcom.com, 
	bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com, 
	pbonzini@redhat.com, vkuznets@redhat.com, luto@kernel.org, 
	boris.ostrovsky@oracle.com, kys@microsoft.com, haiyangz@microsoft.com, 
	decui@microsoft.com
Content-Type: text/plain; charset="us-ascii"

On Tue, Apr 22, 2025, Xin Li (Intel) wrote:
> Signed-off-by: Xin Li (Intel) <xin@zytor.com>
> ---
>  arch/x86/events/amd/uncore.c              |  2 +-
>  arch/x86/events/core.c                    |  2 +-
>  arch/x86/events/intel/core.c              |  4 ++--
>  arch/x86/events/intel/ds.c                |  2 +-
>  arch/x86/include/asm/msr.h                |  2 +-
>  arch/x86/include/asm/paravirt.h           |  2 +-
>  arch/x86/kernel/cpu/resctrl/pseudo_lock.c | 12 ++++++------
>  7 files changed, 13 insertions(+), 13 deletions(-)
> 
> diff --git a/arch/x86/events/amd/uncore.c b/arch/x86/events/amd/uncore.c
> index f231e1078e51..b9933ab3116c 100644
> --- a/arch/x86/events/amd/uncore.c
> +++ b/arch/x86/events/amd/uncore.c
> @@ -152,7 +152,7 @@ static void amd_uncore_read(struct perf_event *event)
>  	if (hwc->event_base_rdpmc < 0)
>  		rdmsrq(hwc->event_base, new);
>  	else
> -		rdpmcl(hwc->event_base_rdpmc, new);
> +		rdpmcq(hwc->event_base_rdpmc, new);

Now that rdpmc() is gone, i.e. rdpmcl/rdpmcq() is the only helper, why not simply
rename rdpmcl() => rdpmc()?  I see no point in adding a 'q' qualifier; it doesn't
disambiguate anything and IMO is pure noise.


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 14:41:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 14:41:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.964843.1355534 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7bHX-0006Sm-LS; Wed, 23 Apr 2025 14:40:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 964843.1355534; Wed, 23 Apr 2025 14: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 1u7bHX-0006Sf-Ir; Wed, 23 Apr 2025 14:40:59 +0000
Received: by outflank-mailman (input) for mailman id 964843;
 Wed, 23 Apr 2025 14: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=Oonq=XJ=3mdeb.com=sergii.dmytruk@srs-se1.protection.inumbo.net>)
 id 1u7bHV-0006SZ-EN
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 14:40:58 +0000
Received: from 6.mo582.mail-out.ovh.net (6.mo582.mail-out.ovh.net
 [87.98.177.69]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f6b75f6a-2050-11f0-9eb0-5ba50f476ded;
 Wed, 23 Apr 2025 16:40:56 +0200 (CEST)
Received: from director6.ghost.mail-out.ovh.net (unknown [10.108.17.1])
 by mo582.mail-out.ovh.net (Postfix) with ESMTP id 4ZjMGv2N8Kz1W0d
 for <xen-devel@lists.xenproject.org>; Wed, 23 Apr 2025 14:40:55 +0000 (UTC)
Received: from ghost-submission-5b5ff79f4f-zn847 (unknown [10.110.164.38])
 by director6.ghost.mail-out.ovh.net (Postfix) with ESMTPS id 0FD0C1FD68;
 Wed, 23 Apr 2025 14:40:53 +0000 (UTC)
Received: from 3mdeb.com ([37.59.142.98])
 by ghost-submission-5b5ff79f4f-zn847 with ESMTPSA
 id vwIvLvX7CGg+igEA20Vi8Q
 (envelope-from <sergii.dmytruk@3mdeb.com>); Wed, 23 Apr 2025 14:40: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: f6b75f6a-2050-11f0-9eb0-5ba50f476ded
Authentication-Results:garm.ovh; auth=pass (GARM-98R002be13997d-0a89-4925-a797-54a9fae4682a,
                    E44920665798B4DCDE3BF656E3E0060933CCD35A) smtp.auth=sergii.dmytruk@3mdeb.com
X-OVh-ClientIp:176.111.181.178
Date: Wed, 23 Apr 2025 17:40:44 +0300
From: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: xen-devel@lists.xenproject.org,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	ross.philipson@oracle.com, trenchboot-devel@googlegroups.com
Subject: Re: [PATCH 02/21] include/xen/slr_table.h: Secure Launch Resource
 Table definitions
Message-ID: <aAj77DAIofkTJ6Dm@MjU3Nj>
References: <cover.1745172094.git.sergii.dmytruk@3mdeb.com>
 <1cf5d940e666b2b292fc84ed1fbb8a95cd57f027.1745172094.git.sergii.dmytruk@3mdeb.com>
 <6bd0a24d-4f16-4d21-a660-c29407952bb2@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <6bd0a24d-4f16-4d21-a660-c29407952bb2@citrix.com>
X-Ovh-Tracer-Id: 18155980426681103516
X-VR-SPAMSTATE: OK
X-VR-SPAMSCORE: -100
X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvgeeikeeiucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuqfggjfdpvefjgfevmfevgfenuceurghilhhouhhtmecuhedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurhepfffhvfevuffkfhggtggugfgjsehtkeertddttddunecuhfhrohhmpefuvghrghhiihcuffhmhihtrhhukhcuoehsvghrghhiihdrughmhihtrhhukhesfehmuggvsgdrtghomheqnecuggftrfgrthhtvghrnhepueeiudeuveffkeetveelgeehhffgheehgfegjeekleffgeelffetjeefieetleeknecukfhppeduvdejrddtrddtrddupddujeeirdduuddurddukedurddujeekpdefjedrheelrddugedvrdelkeenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepihhnvghtpeduvdejrddtrddtrddupdhmrghilhhfrhhomhepshgvrhhgihhirdgumhihthhruhhkseefmhguvggsrdgtohhmpdhnsggprhgtphhtthhopedupdhrtghpthhtohepgigvnhdquggvvhgvlheslhhishhtshdrgigvnhhprhhojhgvtghtrdhorhhgpdfovfetjfhoshhtpehmohehkedvmgdpmhhouggvpehsmhhtphhouhht
DKIM-Signature: a=rsa-sha256; bh=YQ5EvYS0UX2BxNPaB09EH3dTnNR9Dl+4R3DL3BrOTVI=;
 c=relaxed/relaxed; d=3mdeb.com; h=From; s=ovhmo3617313-selector1;
 t=1745419255; v=1;
 b=kbxR1eD51RqHUa/SWWyEA0iqvX5+VHya2hVXuUY4y4xQV0r5bVRGvVHxXSpeeC+nFjHY+Eej
 DPfEAyUCYRmiNSMXhskxg4ksrdekd2j75GM+EkT7GmixRzrHJsrZDSLMukCX/t8xIvcAIg9rbhD
 NDbrMntrzWvwqYGSv1+BucsK1r4psd5G5rjNV+i1E7uKvj0LG9P1rDgX1LF5LwEO9t8MstTlwA4
 3iX+MG6ozLywo15VvX0yl7H5c7Btf1cnFXf3ITeRyt/zHvZfIU2Y5AUMJ/QuMS9izmhLeEZvx4k
 JeBq+Gid7+IoKgWZTnL1lLgF4Cy7LuqHp/4SJZ3kne2Vg==

On Tue, Apr 22, 2025 at 09:23:02PM +0100, Andrew Cooper wrote:
> On 22/04/2025 4:06 pm, Sergii Dmytruk wrote:
> > diff --git a/xen/include/xen/slr_table.h b/xen/include/xen/slr_table.h
> > new file mode 100644
> > index 0000000000..e9dbac5d0a
> > --- /dev/null
> > +++ b/xen/include/xen/slr_table.h
> > @@ -0,0 +1,274 @@
> > +/* SPDX-License-Identifier: GPL-3.0-or-later */
>
> I'm sorry, but we cannot accept this submission.
>
> Xen is GPL-2-only, and can only accept source code compatible with this
> license. Everything else in this series appears to be compatible (and
> therefore is fine), but this patch is not.
>
> ~Andrew

I think the license comes from GRUB's version which is GPL-3-or-later
while the original Linux header file is GPL-2.  Linux patches is really
the source here.  I don't think anything prevents use of the header
under GPL-2, so I'll change the license in v2.  Adding Ross Philipson to
CC as the original author of both Linux and GRUB versions just in case.


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 14:48:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 14:48:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.964857.1355548 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7bOL-0007WT-Bj; Wed, 23 Apr 2025 14:48:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 964857.1355548; Wed, 23 Apr 2025 14:48: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 1u7bOL-0007WM-7x; Wed, 23 Apr 2025 14:48:01 +0000
Received: by outflank-mailman (input) for mailman id 964857;
 Wed, 23 Apr 2025 14:48: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=Oonq=XJ=3mdeb.com=sergii.dmytruk@srs-se1.protection.inumbo.net>)
 id 1u7bOK-0007WB-El
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 14:48:00 +0000
Received: from 15.mo582.mail-out.ovh.net (15.mo582.mail-out.ovh.net
 [188.165.39.161]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f32b11be-2051-11f0-9eb0-5ba50f476ded;
 Wed, 23 Apr 2025 16:47:59 +0200 (CEST)
Received: from director5.ghost.mail-out.ovh.net (unknown [10.108.9.217])
 by mo582.mail-out.ovh.net (Postfix) with ESMTP id 4ZjMR26cP6z1XpD
 for <xen-devel@lists.xenproject.org>; Wed, 23 Apr 2025 14:47:58 +0000 (UTC)
Received: from ghost-submission-5b5ff79f4f-sxg4f (unknown [10.110.178.62])
 by director5.ghost.mail-out.ovh.net (Postfix) with ESMTPS id BE1D41FEAC;
 Wed, 23 Apr 2025 14:47:57 +0000 (UTC)
Received: from 3mdeb.com ([37.59.142.108])
 by ghost-submission-5b5ff79f4f-sxg4f with ESMTPSA
 id DqReIJ39CGhFBAEAP1tegQ
 (envelope-from <sergii.dmytruk@3mdeb.com>); Wed, 23 Apr 2025 14:47: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: f32b11be-2051-11f0-9eb0-5ba50f476ded
Authentication-Results:garm.ovh; auth=pass (GARM-108S002df50f58f-454b-4d95-ab4a-92a8a1f5825d,
                    E44920665798B4DCDE3BF656E3E0060933CCD35A) smtp.auth=sergii.dmytruk@3mdeb.com
X-OVh-ClientIp:176.111.181.178
Date: Wed, 23 Apr 2025 17:47:52 +0300
From: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
To: ross.philipson@oracle.com
Cc: xen-devel@lists.xenproject.org,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	trenchboot-devel@googlegroups.com
Subject: Re: [PATCH 02/21] include/xen/slr_table.h: Secure Launch Resource
 Table definitions
Message-ID: <aAj9mO3btAWZbOJp@MjU3Nj>
References: <cover.1745172094.git.sergii.dmytruk@3mdeb.com>
 <1cf5d940e666b2b292fc84ed1fbb8a95cd57f027.1745172094.git.sergii.dmytruk@3mdeb.com>
 <87ad3627-088c-442b-bc2b-89586a082599@oracle.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <87ad3627-088c-442b-bc2b-89586a082599@oracle.com>
X-Ovh-Tracer-Id: 18275044338899399836
X-VR-SPAMSTATE: OK
X-VR-SPAMSCORE: -100
X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvgeeikeekucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuqfggjfdpvefjgfevmfevgfenuceurghilhhouhhtmecuhedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurhepfffhvfevuffkfhggtggujgesthdtredttddtvdenucfhrhhomhepufgvrhhgihhiucffmhihthhruhhkuceoshgvrhhgihhirdgumhihthhruhhkseefmhguvggsrdgtohhmqeenucggtffrrghtthgvrhhnpedvgfevgedtfffhudegveeiheekteduveeffeegtdeljeelvdefuedtteduieevleenucfkphepuddvjedrtddrtddruddpudejiedrudduuddrudekuddrudejkedpfeejrdehledrudegvddruddtkeenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepihhnvghtpeduvdejrddtrddtrddupdhmrghilhhfrhhomhepshgvrhhgihhirdgumhihthhruhhkseefmhguvggsrdgtohhmpdhnsggprhgtphhtthhopedupdhrtghpthhtohepgigvnhdquggvvhgvlheslhhishhtshdrgigvnhhprhhojhgvtghtrdhorhhgpdfovfetjfhoshhtpehmohehkedvmgdpmhhouggvpehsmhhtphhouhht
DKIM-Signature: a=rsa-sha256; bh=xmDgX+t7hWLL3GNBzsUxQaUa6SOlkP02w/6Pi8y0zG0=;
 c=relaxed/relaxed; d=3mdeb.com; h=From; s=ovhmo3617313-selector1;
 t=1745419679; v=1;
 b=gJG6CVAGgtTtLelo2p+9E2IA6K0Tn6QNt1ib/NRk44bv50tj69/XyBsiqsSFypnc6lzOI4jI
 l+zacRxXW88dVrVy23iboa8xb4XbM1SPdDBVP3dVRBZNTYhBzafkYgxLGBsQ5603EvT5jwT9vZ3
 gf74lsr+J/QUMFaUQWBmr1A/n6OZvS7VwJcER9DkaBMQyPhiAoX3CL4c+jTUaFsU6dlZj3LmHkB
 7e79fNZnJHLumDHE7dYbcp+ecBupVMvezDLJnOxn6n6Crzm1LKqWShJpg99WkVg2/hymaQImEXg
 1/DnNixVsFfBBLieCeg+5ZKjRy2uThZtmVUKWUAffY/ng==

On Tue, Apr 22, 2025 at 01:46:14PM -0700, ross.philipson@oracle.com wrote:
> > +
> > +/*
> > + * ARM DRTM Info table
> > + */
> > +struct slr_entry_arm_info
> > +{
> > +    struct slr_entry_hdr hdr;
> > +} __packed;
>
> You can probably ditch this for now.

Right, it has no value at this point.

> I am surprised you did not need the slr_add_entry() function. How do you add
> entries to the SLRT?

Xen doesn't add any SLRT entries.  It's also the final consumer of the
SLRT, at least at the moment, so no need to update something that won't
be used again.

> Thanks
> Ross


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 14:51:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 14:51:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.964868.1355558 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7bRe-0000tc-Oe; Wed, 23 Apr 2025 14:51:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 964868.1355558; Wed, 23 Apr 2025 14:51:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7bRe-0000tV-M2; Wed, 23 Apr 2025 14:51:26 +0000
Received: by outflank-mailman (input) for mailman id 964868;
 Wed, 23 Apr 2025 14:51:25 +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 1u7bRd-0000tP-KI
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 14:51:25 +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 1u7bRd-00H7uE-0j;
 Wed, 23 Apr 2025 14:51:25 +0000
Received: from [2a01:e0a:1da:8420:b77:bd5:6e45:7633] (helo=l14)
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1u7bRc-00EJqh-32;
 Wed, 23 Apr 2025 14:51: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=xenproject.org; s=20200302mail; h=In-Reply-To:Content-Type:MIME-Version:
	References:Message-ID:Subject:Cc:To:From:Date;
	bh=ZMUdDQeYf0Mz/yAiP1UoRcaMoDSSQYKu6rtE9bZNjuc=; b=4oelYfjtXfFUGL07zS/XMZJM4I
	IteRILWLh/UVzSG3bcknhbwWmKKrTK3NEwyzryTOK247Fk7/9ayFLuXsgSD2b6/dnXFh9nldAvGUj
	UDcMT/LfeIbd0dgRwjclH6MFThZO89WTUc+mGJ3jTUWch1WhCF/PbbDlKEvNwhg9RcZA=;
Date: Wed, 23 Apr 2025 16:51:23 +0200
From: Anthony PERARD <anthony@xenproject.org>
To: Jason Andryuk <jason.andryuk@amd.com>
Cc: xen-devel@lists.xenproject.org,
	Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>
Subject: Re: [PATCH v2 1/2] tools/libxl: Skip invalid IRQs
Message-ID: <aAj-a3wwNWCjKPdl@l14>
References: <20250418210550.542456-1-jason.andryuk@amd.com>
 <20250418210550.542456-2-jason.andryuk@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20250418210550.542456-2-jason.andryuk@amd.com>

On Fri, Apr 18, 2025 at 05:05:49PM -0400, Jason Andryuk wrote:
> A PCI device's irq field is an 8-bit number.  A value of 0xff indicates
> that the device IRQ is not connected.  Additionally, the Linux ACPI code
> can convert these 0xff values to IRQ_NOTCONNECTED(0x80000000) because
> "0x80000000 is guaranteed to be outside the available range of
> interrupts and easy to distinguish from other possible incorrect
> values."  When the hypercall to assign that IRQ fails, device
> passthrough as a whole fails.
> 
> Add checking for a valid IRQ and skip the IRQ handling for PCI devices
> outside that range.  This allows for passthrough of devices without
> legacy IRQs.
> 
> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>

Reviewed-by: Anthony PERARD <anthony.perard@vates.tech>

Thanks,

-- 
Anthony PERARD


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 14:56:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 14:56:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.964882.1355580 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7bWj-0001zM-Ei; Wed, 23 Apr 2025 14:56:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 964882.1355580; Wed, 23 Apr 2025 14:56: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 1u7bWj-0001zF-C0; Wed, 23 Apr 2025 14:56:41 +0000
Received: by outflank-mailman (input) for mailman id 964882;
 Wed, 23 Apr 2025 14:56: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=xLCI=XJ=linuxfoundation.org=gregkh@srs-se1.protection.inumbo.net>)
 id 1u7bWh-0001z6-DS
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 14:56:39 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2564cbe0-2053-11f0-9ffb-bf95429c2676;
 Wed, 23 Apr 2025 16:56:34 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id C8CFD44CF3;
 Wed, 23 Apr 2025 14:56:30 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id DDCC6C4CEE3;
 Wed, 23 Apr 2025 14:56: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: 2564cbe0-2053-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org;
	s=korg; t=1745420192;
	bh=u4ZJEi5IiPiWfvZO1/8sPTqDP3oVUZ4o7KhWtxYqF7Y=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=HcMyYKV5wh/ZRRx9r85aaHoPNkEQZBfUbeguEkAFzg0u9Y/GIqwRpEpsYFBmI0upJ
	 iVemyJ32bgqmx6LW9PBgLJaHI5S4B5R4r0vsxWnf79CIxuYeKnhoGQwu7XGexnxqQt
	 CTh9O6iZ96OhGCPtCQTN5Gk1l6BFRUJvuVQOQ6uA=
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: stable@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	patches@lists.linux.dev,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	xen-devel@lists.xenproject.org,
	Kees Cook <kees@kernel.org>,
	Sasha Levin <sashal@kernel.org>
Subject: [PATCH 6.1 025/291] xen/mcelog: Add __nonstring annotations for unterminated strings
Date: Wed, 23 Apr 2025 16:40:14 +0200
Message-ID: <20250423142625.430159156@linuxfoundation.org>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250423142624.409452181@linuxfoundation.org>
References: <20250423142624.409452181@linuxfoundation.org>
User-Agent: quilt/0.68
X-stable: review
X-Patchwork-Hint: ignore
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

6.1-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Kees Cook <kees@kernel.org>

[ Upstream commit 1c3dfc7c6b0f551fdca3f7c1f1e4c73be8adb17d ]

When a character array without a terminating NUL character has a static
initializer, GCC 15's -Wunterminated-string-initialization will only
warn if the array lacks the "nonstring" attribute[1]. Mark the arrays
with __nonstring to and correctly identify the char array as "not a C
string" and thereby eliminate the warning.

Link: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117178 [1]
Cc: Juergen Gross <jgross@suse.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>
Cc: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Cc: xen-devel@lists.xenproject.org
Signed-off-by: Kees Cook <kees@kernel.org>
Acked-by: Juergen Gross <jgross@suse.com>
Message-ID: <20250310222234.work.473-kees@kernel.org>
Signed-off-by: Juergen Gross <jgross@suse.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 include/xen/interface/xen-mca.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/xen/interface/xen-mca.h b/include/xen/interface/xen-mca.h
index 464aa6b3a5f92..1c9afbe8cc260 100644
--- a/include/xen/interface/xen-mca.h
+++ b/include/xen/interface/xen-mca.h
@@ -372,7 +372,7 @@ struct xen_mce {
 #define XEN_MCE_LOG_LEN 32
 
 struct xen_mce_log {
-	char signature[12]; /* "MACHINECHECK" */
+	char signature[12] __nonstring; /* "MACHINECHECK" */
 	unsigned len;	    /* = XEN_MCE_LOG_LEN */
 	unsigned next;
 	unsigned flags;
-- 
2.39.5



um: ntf-flags
       -
-        name: type
+        name: ndm-type
         type: u8
         enum: rtm-type
   -
-- 
2.39.5





From xen-devel-bounces@lists.xenproject.org Wed Apr 23 14:56:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 14:56:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.964884.1355591 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7bWr-0002Hk-PU; Wed, 23 Apr 2025 14:56:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 964884.1355591; Wed, 23 Apr 2025 14:56: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 1u7bWr-0002Hd-Mm; Wed, 23 Apr 2025 14:56:49 +0000
Received: by outflank-mailman (input) for mailman id 964884;
 Wed, 23 Apr 2025 14:56: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=xLCI=XJ=linuxfoundation.org=gregkh@srs-se1.protection.inumbo.net>)
 id 1u7bWr-0001z6-7E
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 14:56:49 +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 2d88f6f2-2053-11f0-9ffb-bf95429c2676;
 Wed, 23 Apr 2025 16:56:47 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 959E75C3E58;
 Wed, 23 Apr 2025 14:54:28 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0BF64C4CEE2;
 Wed, 23 Apr 2025 14:56: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: 2d88f6f2-2053-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org;
	s=korg; t=1745420205;
	bh=QXnyqxG9Ea2F41suhcjEVOVveF5VSYY4UNPDuZ32GpA=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=LWo8kUmJ3h0IXNlWxjX2YGy9VMBJ4XsQgKC5CYuehxuJHKy/UpCWJ7Ok2o+UpLWuR
	 ehK88BPbypMoKmN5Cmpf/bF8gxOMx5y+p7YaIQaIFXVFlIXWqkJp0KHMuCdbOy/cV5
	 8ix3ihgPCzFfw4Ke6dBu5rIA6KasIBRbQJaDkOaE=
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: stable@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	patches@lists.linux.dev,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	xen-devel@lists.xenproject.org,
	Kees Cook <kees@kernel.org>,
	Sasha Levin <sashal@kernel.org>
Subject: [PATCH 6.6 045/393] xen/mcelog: Add __nonstring annotations for unterminated strings
Date: Wed, 23 Apr 2025 16:39:01 +0200
Message-ID: <20250423142645.148655212@linuxfoundation.org>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250423142643.246005366@linuxfoundation.org>
References: <20250423142643.246005366@linuxfoundation.org>
User-Agent: quilt/0.68
X-stable: review
X-Patchwork-Hint: ignore
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

6.6-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Kees Cook <kees@kernel.org>

[ Upstream commit 1c3dfc7c6b0f551fdca3f7c1f1e4c73be8adb17d ]

When a character array without a terminating NUL character has a static
initializer, GCC 15's -Wunterminated-string-initialization will only
warn if the array lacks the "nonstring" attribute[1]. Mark the arrays
with __nonstring to and correctly identify the char array as "not a C
string" and thereby eliminate the warning.

Link: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117178 [1]
Cc: Juergen Gross <jgross@suse.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>
Cc: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Cc: xen-devel@lists.xenproject.org
Signed-off-by: Kees Cook <kees@kernel.org>
Acked-by: Juergen Gross <jgross@suse.com>
Message-ID: <20250310222234.work.473-kees@kernel.org>
Signed-off-by: Juergen Gross <jgross@suse.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 include/xen/interface/xen-mca.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/xen/interface/xen-mca.h b/include/xen/interface/xen-mca.h
index 464aa6b3a5f92..1c9afbe8cc260 100644
--- a/include/xen/interface/xen-mca.h
+++ b/include/xen/interface/xen-mca.h
@@ -372,7 +372,7 @@ struct xen_mce {
 #define XEN_MCE_LOG_LEN 32
 
 struct xen_mce_log {
-	char signature[12]; /* "MACHINECHECK" */
+	char signature[12] __nonstring; /* "MACHINECHECK" */
 	unsigned len;	    /* = XEN_MCE_LOG_LEN */
 	unsigned next;
 	unsigned flags;
-- 
2.39.5





From xen-devel-bounces@lists.xenproject.org Wed Apr 23 14:59:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 14:59:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.964905.1355600 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7bZC-0003B0-54; Wed, 23 Apr 2025 14:59:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 964905.1355600; Wed, 23 Apr 2025 14: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 1u7bZC-0003At-2H; Wed, 23 Apr 2025 14:59:14 +0000
Received: by outflank-mailman (input) for mailman id 964905;
 Wed, 23 Apr 2025 14:59:13 +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 1u7bZB-0003An-83
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 14:59:13 +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 1u7bZA-00H89Z-2j;
 Wed, 23 Apr 2025 14:59:12 +0000
Received: from [2a01:e0a:1da:8420:b77:bd5:6e45:7633] (helo=l14)
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1u7bZA-00EPXX-1q;
 Wed, 23 Apr 2025 14:59:12 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=In-Reply-To:Content-Type:MIME-Version:
	References:Message-ID:Subject:Cc:To:From:Date;
	bh=sqVbCtYSYk9H/88FjM7pzNnNFrYqy7oq0NX1Dj9Knus=; b=A8XOkFifTFayWOFMfg3Uzh7X+/
	5d5BKOCOlS8MDXtLhIE6QWghC4M0ZBnIVYS0ntqwOsJ9A4joUpJs0VLdIWA53GpbcrWQ579vfKDnw
	nSvi8Wzuhm6kbNLk88kwxY85ofmmdIrJJtassVxrtrO2eToL8CegmqTY43uqcgjKzHgg=;
Date: Wed, 23 Apr 2025 16:59:10 +0200
From: Anthony PERARD <anthony@xenproject.org>
To: Jason Andryuk <jason.andryuk@amd.com>
Cc: xen-devel@lists.xenproject.org,
	Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>
Subject: Re: [PATCH v2 2/2] tools/libxl: Switch irq to unsigned int
Message-ID: <aAkAPnPy7OOKwUhc@l14>
References: <20250418210550.542456-1-jason.andryuk@amd.com>
 <20250418210550.542456-3-jason.andryuk@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20250418210550.542456-3-jason.andryuk@amd.com>

On Fri, Apr 18, 2025 at 05:05:50PM -0400, Jason Andryuk wrote:
> The PCI device irq is read with fscanf(%u).  Switch the irq variable to
> unsigned int to match.
> 
> Linux driver/pci/pci-sysfs.c:irq_show() uses %u to print the value.
> 
> However, unsigned int irq doesn't compile because of:
> error: pointer targets in passing argument 4 of 'xc_physdev_map_pirq' differ in signedness [-Werror=pointer-sign]
> 
> Add int pirq to provide the desired type instead of re-using irq.
> 
> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>

Reviewed-by: Anthony PERARD <anthony.perard@vates.tech>

Thanks,

-- 
Anthony PERARD


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 15:07:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 15:07:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.964925.1355616 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7bgv-0005a0-V5; Wed, 23 Apr 2025 15:07:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 964925.1355616; Wed, 23 Apr 2025 15:07: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 1u7bgv-0005Zs-SW; Wed, 23 Apr 2025 15:07:13 +0000
Received: by outflank-mailman (input) for mailman id 964925;
 Wed, 23 Apr 2025 15:07: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=maGd=XJ=intel.com=dave.hansen@srs-se1.protection.inumbo.net>)
 id 1u7bgu-0005Zk-Lf
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 15:07:12 +0000
Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.18])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9cd75586-2054-11f0-9ffb-bf95429c2676;
 Wed, 23 Apr 2025 17:07:04 +0200 (CEST)
Received: from orviesa006.jf.intel.com ([10.64.159.146])
 by orvoesa110.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 23 Apr 2025 08:07:02 -0700
Received: from tfalcon-desk.amr.corp.intel.com (HELO [10.124.221.81])
 ([10.124.221.81])
 by orviesa006-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 23 Apr 2025 08:06:59 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9cd75586-2054-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1745420825; x=1776956825;
  h=message-id:date:mime-version:subject:to:cc:references:
   from:in-reply-to:content-transfer-encoding;
  bh=1IBSmbrEamwkd/uYLGHmz0tlnktc/QQDObId3PwCnwo=;
  b=GKba4SpFleMx3K/Y8v3lrKCAEQa57YgNzCOeBbVoy0gMc88rLTqw3Twr
   NtaUOkBeRRUOHfEUtbepzK5FlEr4itsaSfZvJ8kBxDMR8BCuaQv+QxkSD
   OxJYUL0m2YQos0VM4HozyQYQrF8HXHVwP4BklCWlW43wEVq2C2FC6U5Cw
   mgvK5/22j83xxTGjbqb/W9RmCVU79ZrKP9NTyIDc74h8WQD2+Pn89cWGc
   UNKX+fYAtomT00bKstpFqL3+uW9K/oGXGNilMQsWFEM/H2veC9iQeAqcM
   nfhEBl6qz7CHgWNLDPv6F5MAfSV4pxEuWrKO7UCNH7gzNpwQtpdtdscHZ
   A==;
X-CSE-ConnectionGUID: 9rj7u/dsROiS8Cn4WM4cUA==
X-CSE-MsgGUID: EbeRNR7iTFi/SxtpTTPVNA==
X-IronPort-AV: E=McAfee;i="6700,10204,11412"; a="47147857"
X-IronPort-AV: E=Sophos;i="6.15,233,1739865600"; 
   d="scan'208";a="47147857"
X-CSE-ConnectionGUID: iDsVbrwbSiG0hLFroBu7Nw==
X-CSE-MsgGUID: 1WJHMlZ7QNWJ5G37ZY206Q==
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="6.15,233,1739865600"; 
   d="scan'208";a="132256914"
Message-ID: <6211378e-955b-47f4-8688-ec93728f0087@intel.com>
Date: Wed, 23 Apr 2025 08:06:58 -0700
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH v2 03/34] x86/msr: Rename rdpmcl() to rdpmcq()
To: Sean Christopherson <seanjc@google.com>, "Xin Li (Intel)" <xin@zytor.com>
Cc: linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
 linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
 virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
 linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
 linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
 netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org,
 tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
 dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com, acme@kernel.org,
 jgross@suse.com, andrew.cooper3@citrix.com, peterz@infradead.org,
 namhyung@kernel.org, mark.rutland@arm.com,
 alexander.shishkin@linux.intel.com, jolsa@kernel.org, irogers@google.com,
 adrian.hunter@intel.com, kan.liang@linux.intel.com, wei.liu@kernel.org,
 ajay.kaher@broadcom.com, bcm-kernel-feedback-list@broadcom.com,
 tony.luck@intel.com, pbonzini@redhat.com, vkuznets@redhat.com,
 luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
 haiyangz@microsoft.com, decui@microsoft.com
References: <20250422082216.1954310-1-xin@zytor.com>
 <20250422082216.1954310-4-xin@zytor.com> <aAj5F9IZXG7MB0ai@google.com>
From: Dave Hansen <dave.hansen@intel.com>
Content-Language: en-US
Autocrypt: addr=dave.hansen@intel.com; keydata=
 xsFNBE6HMP0BEADIMA3XYkQfF3dwHlj58Yjsc4E5y5G67cfbt8dvaUq2fx1lR0K9h1bOI6fC
 oAiUXvGAOxPDsB/P6UEOISPpLl5IuYsSwAeZGkdQ5g6m1xq7AlDJQZddhr/1DC/nMVa/2BoY
 2UnKuZuSBu7lgOE193+7Uks3416N2hTkyKUSNkduyoZ9F5twiBhxPJwPtn/wnch6n5RsoXsb
 ygOEDxLEsSk/7eyFycjE+btUtAWZtx+HseyaGfqkZK0Z9bT1lsaHecmB203xShwCPT49Blxz
 VOab8668QpaEOdLGhtvrVYVK7x4skyT3nGWcgDCl5/Vp3TWA4K+IofwvXzX2ON/Mj7aQwf5W
 iC+3nWC7q0uxKwwsddJ0Nu+dpA/UORQWa1NiAftEoSpk5+nUUi0WE+5DRm0H+TXKBWMGNCFn
 c6+EKg5zQaa8KqymHcOrSXNPmzJuXvDQ8uj2J8XuzCZfK4uy1+YdIr0yyEMI7mdh4KX50LO1
 pmowEqDh7dLShTOif/7UtQYrzYq9cPnjU2ZW4qd5Qz2joSGTG9eCXLz5PRe5SqHxv6ljk8mb
 ApNuY7bOXO/A7T2j5RwXIlcmssqIjBcxsRRoIbpCwWWGjkYjzYCjgsNFL6rt4OL11OUF37wL
 QcTl7fbCGv53KfKPdYD5hcbguLKi/aCccJK18ZwNjFhqr4MliQARAQABzUVEYXZpZCBDaHJp
 c3RvcGhlciBIYW5zZW4gKEludGVsIFdvcmsgQWRkcmVzcykgPGRhdmUuaGFuc2VuQGludGVs
 LmNvbT7CwXgEEwECACIFAlQ+9J0CGwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEGg1
 lTBwyZKwLZUP/0dnbhDc229u2u6WtK1s1cSd9WsflGXGagkR6liJ4um3XCfYWDHvIdkHYC1t
 MNcVHFBwmQkawxsYvgO8kXT3SaFZe4ISfB4K4CL2qp4JO+nJdlFUbZI7cz/Td9z8nHjMcWYF
 IQuTsWOLs/LBMTs+ANumibtw6UkiGVD3dfHJAOPNApjVr+M0P/lVmTeP8w0uVcd2syiaU5jB
 aht9CYATn+ytFGWZnBEEQFnqcibIaOrmoBLu2b3fKJEd8Jp7NHDSIdrvrMjYynmc6sZKUqH2
 I1qOevaa8jUg7wlLJAWGfIqnu85kkqrVOkbNbk4TPub7VOqA6qG5GCNEIv6ZY7HLYd/vAkVY
 E8Plzq/NwLAuOWxvGrOl7OPuwVeR4hBDfcrNb990MFPpjGgACzAZyjdmYoMu8j3/MAEW4P0z
 F5+EYJAOZ+z212y1pchNNauehORXgjrNKsZwxwKpPY9qb84E3O9KYpwfATsqOoQ6tTgr+1BR
 CCwP712H+E9U5HJ0iibN/CDZFVPL1bRerHziuwuQuvE0qWg0+0SChFe9oq0KAwEkVs6ZDMB2
 P16MieEEQ6StQRlvy2YBv80L1TMl3T90Bo1UUn6ARXEpcbFE0/aORH/jEXcRteb+vuik5UGY
 5TsyLYdPur3TXm7XDBdmmyQVJjnJKYK9AQxj95KlXLVO38lczsFNBFRjzmoBEACyAxbvUEhd
 GDGNg0JhDdezyTdN8C9BFsdxyTLnSH31NRiyp1QtuxvcqGZjb2trDVuCbIzRrgMZLVgo3upr
 MIOx1CXEgmn23Zhh0EpdVHM8IKx9Z7V0r+rrpRWFE8/wQZngKYVi49PGoZj50ZEifEJ5qn/H
 Nsp2+Y+bTUjDdgWMATg9DiFMyv8fvoqgNsNyrrZTnSgoLzdxr89FGHZCoSoAK8gfgFHuO54B
 lI8QOfPDG9WDPJ66HCodjTlBEr/Cwq6GruxS5i2Y33YVqxvFvDa1tUtl+iJ2SWKS9kCai2DR
 3BwVONJEYSDQaven/EHMlY1q8Vln3lGPsS11vSUK3QcNJjmrgYxH5KsVsf6PNRj9mp8Z1kIG
 qjRx08+nnyStWC0gZH6NrYyS9rpqH3j+hA2WcI7De51L4Rv9pFwzp161mvtc6eC/GxaiUGuH
 BNAVP0PY0fqvIC68p3rLIAW3f97uv4ce2RSQ7LbsPsimOeCo/5vgS6YQsj83E+AipPr09Caj
 0hloj+hFoqiticNpmsxdWKoOsV0PftcQvBCCYuhKbZV9s5hjt9qn8CE86A5g5KqDf83Fxqm/
 vXKgHNFHE5zgXGZnrmaf6resQzbvJHO0Fb0CcIohzrpPaL3YepcLDoCCgElGMGQjdCcSQ+Ci
 FCRl0Bvyj1YZUql+ZkptgGjikQARAQABwsFfBBgBAgAJBQJUY85qAhsMAAoJEGg1lTBwyZKw
 l4IQAIKHs/9po4spZDFyfDjunimEhVHqlUt7ggR1Hsl/tkvTSze8pI1P6dGp2XW6AnH1iayn
 yRcoyT0ZJ+Zmm4xAH1zqKjWplzqdb/dO28qk0bPso8+1oPO8oDhLm1+tY+cOvufXkBTm+whm
 +AyNTjaCRt6aSMnA/QHVGSJ8grrTJCoACVNhnXg/R0g90g8iV8Q+IBZyDkG0tBThaDdw1B2l
 asInUTeb9EiVfL/Zjdg5VWiF9LL7iS+9hTeVdR09vThQ/DhVbCNxVk+DtyBHsjOKifrVsYep
 WpRGBIAu3bK8eXtyvrw1igWTNs2wazJ71+0z2jMzbclKAyRHKU9JdN6Hkkgr2nPb561yjcB8
 sIq1pFXKyO+nKy6SZYxOvHxCcjk2fkw6UmPU6/j/nQlj2lfOAgNVKuDLothIxzi8pndB8Jju
 KktE5HJqUUMXePkAYIxEQ0mMc8Po7tuXdejgPMwgP7x65xtfEqI0RuzbUioFltsp1jUaRwQZ
 MTsCeQDdjpgHsj+P2ZDeEKCbma4m6Ez/YWs4+zDm1X8uZDkZcfQlD9NldbKDJEXLIjYWo1PH
 hYepSffIWPyvBMBTW2W5FRjJ4vLRrJSUoEfJuPQ3vW9Y73foyo/qFoURHO48AinGPZ7PC7TF
 vUaNOTjKedrqHkaOcqB185ahG2had0xnFsDPlx5y
In-Reply-To: <aAj5F9IZXG7MB0ai@google.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 4/23/25 07:28, Sean Christopherson wrote:
> Now that rdpmc() is gone, i.e. rdpmcl/rdpmcq() is the only helper, why not simply
> rename rdpmcl() => rdpmc()?  I see no point in adding a 'q' qualifier; it doesn't
> disambiguate anything and IMO is pure noise.

That makes total sense to me.


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 15:52:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 15:52:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.964947.1355634 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7cOD-00055K-9O; Wed, 23 Apr 2025 15:51:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 964947.1355634; Wed, 23 Apr 2025 15: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 1u7cOD-00055D-6F; Wed, 23 Apr 2025 15:51:57 +0000
Received: by outflank-mailman (input) for mailman id 964947;
 Wed, 23 Apr 2025 15:51: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=maGd=XJ=intel.com=dave.hansen@srs-se1.protection.inumbo.net>)
 id 1u7cOB-000557-Im
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 15:51:55 +0000
Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.14])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id df0edf8f-205a-11f0-9eb0-5ba50f476ded;
 Wed, 23 Apr 2025 17:51:53 +0200 (CEST)
Received: from fmviesa005.fm.intel.com ([10.60.135.145])
 by fmvoesa108.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 23 Apr 2025 08:51:49 -0700
Received: from tfalcon-desk.amr.corp.intel.com (HELO [10.124.221.81])
 ([10.124.221.81])
 by fmviesa005-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 23 Apr 2025 08:51:47 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: df0edf8f-205a-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1745423513; x=1776959513;
  h=message-id:date:mime-version:subject:to:cc:references:
   from:in-reply-to:content-transfer-encoding;
  bh=+Vs1gbKb9PXsqFgKfHEk/GoqZdyjHR87hYimAakyT2k=;
  b=Lgoh6hCwKAUkZF3OtaqGM5+TfcwKDXEsmvvogrC57Qzkd6KEOFyuPfCK
   FsmGHO7OD84X7YhjYqDfYDMLr2xH6Guk5PkB9otrdFF6TWp3bmh+695k2
   +Iz593irNKXNjFqZxrBf8Bip4fhsHNxDqp29xlfyB8nMimeSYXPQSZ15c
   kN6lvDfqOP25WcYzQ75cTL1NrPGqmpAdD6paGczQWvYAEH6jmTQD1BWo1
   pIa3PapMYFrvDaQJUCZkZ8hxa/Ntal80DWMaj1yNnCns/ZRbhSRKNAwSs
   3wj493EVy53vai/OKlrlJHKN+dPRim1tFFSIWn2uZtCabBdVB22LlVUWk
   A==;
X-CSE-ConnectionGUID: jhd2jhXcRemEK6l8Y1O8HA==
X-CSE-MsgGUID: hiVGyBVYTrGloZ9o6/cddA==
X-IronPort-AV: E=McAfee;i="6700,10204,11412"; a="47207975"
X-IronPort-AV: E=Sophos;i="6.15,233,1739865600"; 
   d="scan'208";a="47207975"
X-CSE-ConnectionGUID: Ex8PVZ5NQH2Gb0DRTatbBA==
X-CSE-MsgGUID: ItnS2ooiSY2V5FCleHnyyg==
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="6.15,233,1739865600"; 
   d="scan'208";a="137140944"
Message-ID: <2932db03-164a-447e-92cf-1ef6c35c15a4@intel.com>
Date: Wed, 23 Apr 2025 08:51:45 -0700
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH v2 08/34] x86/msr: Convert a native_wrmsr() use to
 native_wrmsrq()
To: "Xin Li (Intel)" <xin@zytor.com>, linux-kernel@vger.kernel.org,
 kvm@vger.kernel.org, linux-perf-users@vger.kernel.org,
 linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
 linux-pm@vger.kernel.org, linux-edac@vger.kernel.org,
 xen-devel@lists.xenproject.org, linux-acpi@vger.kernel.org,
 linux-hwmon@vger.kernel.org, netdev@vger.kernel.org,
 platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
 dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com, acme@kernel.org,
 jgross@suse.com, andrew.cooper3@citrix.com, peterz@infradead.org,
 namhyung@kernel.org, mark.rutland@arm.com,
 alexander.shishkin@linux.intel.com, jolsa@kernel.org, irogers@google.com,
 adrian.hunter@intel.com, kan.liang@linux.intel.com, wei.liu@kernel.org,
 ajay.kaher@broadcom.com, bcm-kernel-feedback-list@broadcom.com,
 tony.luck@intel.com, pbonzini@redhat.com, vkuznets@redhat.com,
 seanjc@google.com, luto@kernel.org, boris.ostrovsky@oracle.com,
 kys@microsoft.com, haiyangz@microsoft.com, decui@microsoft.com
References: <20250422082216.1954310-1-xin@zytor.com>
 <20250422082216.1954310-9-xin@zytor.com>
From: Dave Hansen <dave.hansen@intel.com>
Content-Language: en-US
Autocrypt: addr=dave.hansen@intel.com; keydata=
 xsFNBE6HMP0BEADIMA3XYkQfF3dwHlj58Yjsc4E5y5G67cfbt8dvaUq2fx1lR0K9h1bOI6fC
 oAiUXvGAOxPDsB/P6UEOISPpLl5IuYsSwAeZGkdQ5g6m1xq7AlDJQZddhr/1DC/nMVa/2BoY
 2UnKuZuSBu7lgOE193+7Uks3416N2hTkyKUSNkduyoZ9F5twiBhxPJwPtn/wnch6n5RsoXsb
 ygOEDxLEsSk/7eyFycjE+btUtAWZtx+HseyaGfqkZK0Z9bT1lsaHecmB203xShwCPT49Blxz
 VOab8668QpaEOdLGhtvrVYVK7x4skyT3nGWcgDCl5/Vp3TWA4K+IofwvXzX2ON/Mj7aQwf5W
 iC+3nWC7q0uxKwwsddJ0Nu+dpA/UORQWa1NiAftEoSpk5+nUUi0WE+5DRm0H+TXKBWMGNCFn
 c6+EKg5zQaa8KqymHcOrSXNPmzJuXvDQ8uj2J8XuzCZfK4uy1+YdIr0yyEMI7mdh4KX50LO1
 pmowEqDh7dLShTOif/7UtQYrzYq9cPnjU2ZW4qd5Qz2joSGTG9eCXLz5PRe5SqHxv6ljk8mb
 ApNuY7bOXO/A7T2j5RwXIlcmssqIjBcxsRRoIbpCwWWGjkYjzYCjgsNFL6rt4OL11OUF37wL
 QcTl7fbCGv53KfKPdYD5hcbguLKi/aCccJK18ZwNjFhqr4MliQARAQABzUVEYXZpZCBDaHJp
 c3RvcGhlciBIYW5zZW4gKEludGVsIFdvcmsgQWRkcmVzcykgPGRhdmUuaGFuc2VuQGludGVs
 LmNvbT7CwXgEEwECACIFAlQ+9J0CGwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEGg1
 lTBwyZKwLZUP/0dnbhDc229u2u6WtK1s1cSd9WsflGXGagkR6liJ4um3XCfYWDHvIdkHYC1t
 MNcVHFBwmQkawxsYvgO8kXT3SaFZe4ISfB4K4CL2qp4JO+nJdlFUbZI7cz/Td9z8nHjMcWYF
 IQuTsWOLs/LBMTs+ANumibtw6UkiGVD3dfHJAOPNApjVr+M0P/lVmTeP8w0uVcd2syiaU5jB
 aht9CYATn+ytFGWZnBEEQFnqcibIaOrmoBLu2b3fKJEd8Jp7NHDSIdrvrMjYynmc6sZKUqH2
 I1qOevaa8jUg7wlLJAWGfIqnu85kkqrVOkbNbk4TPub7VOqA6qG5GCNEIv6ZY7HLYd/vAkVY
 E8Plzq/NwLAuOWxvGrOl7OPuwVeR4hBDfcrNb990MFPpjGgACzAZyjdmYoMu8j3/MAEW4P0z
 F5+EYJAOZ+z212y1pchNNauehORXgjrNKsZwxwKpPY9qb84E3O9KYpwfATsqOoQ6tTgr+1BR
 CCwP712H+E9U5HJ0iibN/CDZFVPL1bRerHziuwuQuvE0qWg0+0SChFe9oq0KAwEkVs6ZDMB2
 P16MieEEQ6StQRlvy2YBv80L1TMl3T90Bo1UUn6ARXEpcbFE0/aORH/jEXcRteb+vuik5UGY
 5TsyLYdPur3TXm7XDBdmmyQVJjnJKYK9AQxj95KlXLVO38lczsFNBFRjzmoBEACyAxbvUEhd
 GDGNg0JhDdezyTdN8C9BFsdxyTLnSH31NRiyp1QtuxvcqGZjb2trDVuCbIzRrgMZLVgo3upr
 MIOx1CXEgmn23Zhh0EpdVHM8IKx9Z7V0r+rrpRWFE8/wQZngKYVi49PGoZj50ZEifEJ5qn/H
 Nsp2+Y+bTUjDdgWMATg9DiFMyv8fvoqgNsNyrrZTnSgoLzdxr89FGHZCoSoAK8gfgFHuO54B
 lI8QOfPDG9WDPJ66HCodjTlBEr/Cwq6GruxS5i2Y33YVqxvFvDa1tUtl+iJ2SWKS9kCai2DR
 3BwVONJEYSDQaven/EHMlY1q8Vln3lGPsS11vSUK3QcNJjmrgYxH5KsVsf6PNRj9mp8Z1kIG
 qjRx08+nnyStWC0gZH6NrYyS9rpqH3j+hA2WcI7De51L4Rv9pFwzp161mvtc6eC/GxaiUGuH
 BNAVP0PY0fqvIC68p3rLIAW3f97uv4ce2RSQ7LbsPsimOeCo/5vgS6YQsj83E+AipPr09Caj
 0hloj+hFoqiticNpmsxdWKoOsV0PftcQvBCCYuhKbZV9s5hjt9qn8CE86A5g5KqDf83Fxqm/
 vXKgHNFHE5zgXGZnrmaf6resQzbvJHO0Fb0CcIohzrpPaL3YepcLDoCCgElGMGQjdCcSQ+Ci
 FCRl0Bvyj1YZUql+ZkptgGjikQARAQABwsFfBBgBAgAJBQJUY85qAhsMAAoJEGg1lTBwyZKw
 l4IQAIKHs/9po4spZDFyfDjunimEhVHqlUt7ggR1Hsl/tkvTSze8pI1P6dGp2XW6AnH1iayn
 yRcoyT0ZJ+Zmm4xAH1zqKjWplzqdb/dO28qk0bPso8+1oPO8oDhLm1+tY+cOvufXkBTm+whm
 +AyNTjaCRt6aSMnA/QHVGSJ8grrTJCoACVNhnXg/R0g90g8iV8Q+IBZyDkG0tBThaDdw1B2l
 asInUTeb9EiVfL/Zjdg5VWiF9LL7iS+9hTeVdR09vThQ/DhVbCNxVk+DtyBHsjOKifrVsYep
 WpRGBIAu3bK8eXtyvrw1igWTNs2wazJ71+0z2jMzbclKAyRHKU9JdN6Hkkgr2nPb561yjcB8
 sIq1pFXKyO+nKy6SZYxOvHxCcjk2fkw6UmPU6/j/nQlj2lfOAgNVKuDLothIxzi8pndB8Jju
 KktE5HJqUUMXePkAYIxEQ0mMc8Po7tuXdejgPMwgP7x65xtfEqI0RuzbUioFltsp1jUaRwQZ
 MTsCeQDdjpgHsj+P2ZDeEKCbma4m6Ez/YWs4+zDm1X8uZDkZcfQlD9NldbKDJEXLIjYWo1PH
 hYepSffIWPyvBMBTW2W5FRjJ4vLRrJSUoEfJuPQ3vW9Y73foyo/qFoURHO48AinGPZ7PC7TF
 vUaNOTjKedrqHkaOcqB185ahG2had0xnFsDPlx5y
In-Reply-To: <20250422082216.1954310-9-xin@zytor.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 4/22/25 01:21, Xin Li (Intel) wrote:
>  static __always_inline void sev_es_wr_ghcb_msr(u64 val)
>  {
> -	u32 low, high;
> -
> -	low  = (u32)(val);
> -	high = (u32)(val >> 32);
> -
> -	native_wrmsr(MSR_AMD64_SEV_ES_GHCB, low, high);
> +	native_wrmsrq(MSR_AMD64_SEV_ES_GHCB, val);
>  }

A note on ordering: Had this been a native_wrmsr()=>__wrmsr()
conversion, it could be sucked into the tree easily before the big
__wrmsr()=>native_wrmsrq() conversion.

Yeah, you'd have to base the big rename on top of this. But with a
series this big, I'd prioritize whatever gets it trimmed down.


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 16:05:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 16:05:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.964961.1355643 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7cbF-0007bV-FF; Wed, 23 Apr 2025 16:05:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 964961.1355643; Wed, 23 Apr 2025 16:05: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 1u7cbF-0007bO-Cg; Wed, 23 Apr 2025 16:05:25 +0000
Received: by outflank-mailman (input) for mailman id 964961;
 Wed, 23 Apr 2025 16:05: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=rDpt=XJ=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1u7cbE-0007bI-KY
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 16:05:24 +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 c2dbb9a1-205c-11f0-9eb0-5ba50f476ded;
 Wed, 23 Apr 2025 18:05:22 +0200 (CEST)
Received: by mail-ed1-x52f.google.com with SMTP id
 4fb4d7f45d1cf-5e5e8274a74so10003530a12.1
 for <xen-devel@lists.xenproject.org>; Wed, 23 Apr 2025 09:05:22 -0700 (PDT)
Received: from ?IPV6:2003:e5:870f:e000:6c64:75fd:2c51:3fef?
 (p200300e5870fe0006c6475fd2c513fef.dip0.t-ipconnect.de.
 [2003:e5:870f:e000:6c64:75fd:2c51:3fef])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-acb6ef45784sm802312966b.129.2025.04.23.09.05.20
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 23 Apr 2025 09:05:21 -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: c2dbb9a1-205c-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745424322; x=1746029122; 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=kQkZKKUoLjzT2xrPRr6XCtcs79ipi8g7W+BTVNWHk/0=;
        b=T4MEIUFn6T+7vGXRoKfsrRpLD+T78wtCf+3Y8EOKgR/jvN2cSHO/0aE6glAvNB7toX
         oYBEOKdS5m4xTur4BsxJfZ/ah5WvCTPybnCb7jgH9t7pmuaR5a0JPjN2C0girmMhvqIi
         OsDOiuWYMl6pxGXnsmNg2GZ4d+FXSvbq66EF0l7asEWiPFnhX7387122tPR2mNxBSvi+
         bVdNUxwhL8DoZsmuIQYqppk/BlU/M4jSLTVUXFvUJsFqcsXOTWV1ffUeVmqwVHkZDF6T
         ySF73AMcTArAM38bGPw//V5S3ZANZusfjPl16d+uNqvC2vwj4HcsRqlt5Yl/tULT4g8E
         QUzw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745424322; x=1746029122;
        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=kQkZKKUoLjzT2xrPRr6XCtcs79ipi8g7W+BTVNWHk/0=;
        b=DuiQllTOcN8dpOCNqQHT7EbghXb/XrataERorWSwWQXfUsrTk3b/v0ZLslA4Oaak3n
         vBZH0EGJnjjbKnPS8qEeoflr+/Gg+J5gw9FRJutSsZuLoP6WceLY+kAb2/JviSnxfVL/
         t5UwMRiaKsgLCAY9v4adXsA9Ob6ugXkCu9Vsj2xlAy8p946D68oirslvBn1x2NSdkrww
         P/TRkVTCBlSlxoQE/0uEH2XycbFhKXOEEZv1PxR4DNJhREydZQXy2K4Dp0yQoNwOj741
         Z2g7GUFTUZNhEgc3Mm+7/z4GEVF+/EssaEM0Vh1EexdDttk9jMw/yvELrxyrmdQcOH3B
         P5NQ==
X-Forwarded-Encrypted: i=1; AJvYcCXvepfT9ZON4xi8HPtaSt97ddX2gv7HYdmxrucQF/8X64/MHdZBagn2wIcs7fdMwAsWm6VlRLyBJ+I=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzIoriB2gwAYRq+dVYjYKuktcDlIqPT1d/DZxFzJba8X4fN6e2t
	xujYlNi1gmrkq7h1bBakiSQlE0/Tpt9kE3wiy9isYkqpBKWFbsbl8E5N6zxE3Ck=
X-Gm-Gg: ASbGncs9x3fzSBSr8KqsjvqD+eKGkCZ0p1A1zbej1zfLz7Z7rPbEh+5VrLMSqcTss0S
	NW7zXJ1wlcYXydrxHpLBPiNX8t/TElDpbXma3gmd52IyXSXYOwWzZXBsnDGi407NXrLFmZ7mBGo
	vmu8gaG6QeS2LLmcOKIFpe2m3vc/vnr9WZFj4sCgZeB8/2d+37IVmZK83h6Om8MP8jK0/5Lxbse
	4wx4Po7tzxX7yZqa0OD2irEfAsqzUpjeSNUo/xKzUgRb9FN+RAoas45/XCkG+t8N7EMaXHnrAtq
	u/ug/K2edyNjeqp5sdagOZ9tt413wt5GIdTfNQ5bNwn5znNBh5MoEq3royadDKADorBAwKVB/7Y
	+tCeNiyew8O9fqHLxQu7gHl+hOAx7tJIDY+kkjqCQWkgcuLgU7g/d3X5LEugKs1AvZAbAbpcaZL
	Fh
X-Google-Smtp-Source: AGHT+IEo0PNu11JzN98XoSJk9AR1wF50xyco8ZxIf2P6MaamPRtmGrdjToXBNtChaO7f9hobNby3vQ==
X-Received: by 2002:a17:907:9815:b0:abf:6ebf:5500 with SMTP id a640c23a62f3a-acb74b18d6dmr1757155266b.16.1745424321705;
        Wed, 23 Apr 2025 09:05:21 -0700 (PDT)
Message-ID: <37c88ea3-dd24-4607-9ee1-0f19025aaef3@suse.com>
Date: Wed, 23 Apr 2025 18:05:19 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH v2 21/34] x86/msr: Utilize the alternatives mechanism
 to write MSR
To: Xin Li <xin@zytor.com>, linux-kernel@vger.kernel.org,
 kvm@vger.kernel.org, linux-perf-users@vger.kernel.org,
 linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
 linux-pm@vger.kernel.org, linux-edac@vger.kernel.org,
 xen-devel@lists.xenproject.org, linux-acpi@vger.kernel.org,
 linux-hwmon@vger.kernel.org, netdev@vger.kernel.org,
 platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
 dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com, acme@kernel.org,
 andrew.cooper3@citrix.com, peterz@infradead.org, namhyung@kernel.org,
 mark.rutland@arm.com, alexander.shishkin@linux.intel.com, jolsa@kernel.org,
 irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
 wei.liu@kernel.org, ajay.kaher@broadcom.com,
 bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
 pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
 luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
 haiyangz@microsoft.com, decui@microsoft.com
References: <20250422082216.1954310-1-xin@zytor.com>
 <20250422082216.1954310-22-xin@zytor.com>
 <b2624e84-6fab-44a3-affc-ce0847cd3da4@suse.com>
 <f7198308-e8f8-4cc5-b884-24bc5f408a2a@zytor.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: <f7198308-e8f8-4cc5-b884-24bc5f408a2a@zytor.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------398yZoWCv7yp9PXp1RKEeUfd"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------398yZoWCv7yp9PXp1RKEeUfd
Content-Type: multipart/mixed; boundary="------------FLAnSz0SzY3c5JmVJHJBKSu5";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Xin Li <xin@zytor.com>, linux-kernel@vger.kernel.org,
 kvm@vger.kernel.org, linux-perf-users@vger.kernel.org,
 linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
 linux-pm@vger.kernel.org, linux-edac@vger.kernel.org,
 xen-devel@lists.xenproject.org, linux-acpi@vger.kernel.org,
 linux-hwmon@vger.kernel.org, netdev@vger.kernel.org,
 platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
 dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com, acme@kernel.org,
 andrew.cooper3@citrix.com, peterz@infradead.org, namhyung@kernel.org,
 mark.rutland@arm.com, alexander.shishkin@linux.intel.com, jolsa@kernel.org,
 irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
 wei.liu@kernel.org, ajay.kaher@broadcom.com,
 bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
 pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
 luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
 haiyangz@microsoft.com, decui@microsoft.com
Message-ID: <37c88ea3-dd24-4607-9ee1-0f19025aaef3@suse.com>
Subject: Re: [RFC PATCH v2 21/34] x86/msr: Utilize the alternatives mechanism
 to write MSR
References: <20250422082216.1954310-1-xin@zytor.com>
 <20250422082216.1954310-22-xin@zytor.com>
 <b2624e84-6fab-44a3-affc-ce0847cd3da4@suse.com>
 <f7198308-e8f8-4cc5-b884-24bc5f408a2a@zytor.com>
In-Reply-To: <f7198308-e8f8-4cc5-b884-24bc5f408a2a@zytor.com>

--------------FLAnSz0SzY3c5JmVJHJBKSu5
Content-Type: multipart/mixed; boundary="------------0DTyIjBeblppipV7B0zRSAr0"

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

T24gMjMuMDQuMjUgMTA6NTEsIFhpbiBMaSB3cm90ZToNCj4gT24gNC8yMi8yMDI1IDI6NTcg
QU0sIErDvHJnZW4gR3Jvw58gd3JvdGU6DQo+PiBPbiAyMi4wNC4yNSAxMDoyMiwgWGluIExp
IChJbnRlbCkgd3JvdGU6DQo+Pj4gVGhlIHN0b3J5IHN0YXJ0ZWQgZnJvbSB0Z2x4J3MgcmVw
bHkgaW4gWzFdOg0KPj4+DQo+Pj4gwqDCoCBGb3IgYWN0dWFsIHBlcmZvcm1hbmNlIHJlbGV2
YW50IGNvZGUgdGhlIGN1cnJlbnQgUFYgb3BzIG1lY2hhbmljcw0KPj4+IMKgwqAgYXJlIGEg
aG9ycm9yc2hvdyB3aGVuIHRoZSBvcCBkZWZhdWx0cyB0byB0aGUgbmF0aXZlIGluc3RydWN0
aW9uLg0KPj4+DQo+Pj4gwqDCoCBsb29rIGF0IHdybXNybCgpOg0KPj4+DQo+Pj4gwqDCoCB3
cm1zcmwobXNyLCB2YWwNCj4+PiDCoMKgwqAgd3Jtc3IobXNyLCAodTMyKXZhbCwgKHUzMil2
YWwgPj4gMzIpKQ0KPj4+IMKgwqDCoMKgIHBhcmF2aXJ0X3dyaXRlX21zcihtc3IsIGxvdywg
aGlnaCkNCj4+PiDCoMKgwqDCoMKgwqAgUFZPUF9WQ0FMTDMoY3B1LndyaXRlX21zciwgbXNy
LCBsb3csIGhpZ2gpDQo+Pj4NCj4+PiDCoMKgIFdoaWNoIHJlc3VsdHMgaW4NCj4+Pg0KPj4+
IMKgwqDCoMKgbW92wqDCoMKgICRtc3IsICVlZGkNCj4+PiDCoMKgwqDCoG1vdsKgwqDCoCAk
dmFsLCAlcmR4DQo+Pj4gwqDCoMKgwqBtb3bCoMKgwqAgJWVkeCwgJWVzaQ0KPj4+IMKgwqDC
oMKgc2hywqDCoMKgICQweDIwLCAlcmR4DQo+Pj4gwqDCoMKgwqBjYWxswqDCoMKgIG5hdGl2
ZV93cml0ZV9tc3INCj4+Pg0KPj4+IMKgwqAgYW5kIG5hdGl2ZV93cml0ZV9tc3IoKSBkb2Vz
IGF0IG1pbmltdW06DQo+Pj4NCj4+PiDCoMKgwqDCoG1vdsKgwqDCoCAlZWRpLCVlY3gNCj4+
PiDCoMKgwqDCoG1vdsKgwqDCoCAlZXNpLCVlYXgNCj4+PiDCoMKgwqDCoHdybXNyDQo+Pj4g
wqDCoMKgwqByZXQNCj4+Pg0KPj4+IMKgwqAgSW4gdGhlIHdvcnN0IGNhc2UgJ3JldCcgaXMg
Z29pbmcgdGhyb3VnaCB0aGUgcmV0dXJuIHRodW5rLiBOb3QgdG8NCj4+PiDCoMKgIHRhbGsg
YWJvdXQgZnVuY3Rpb24gcHJvbG9ndWVzIGFuZCB3aGF0ZXZlci4NCj4+Pg0KPj4+IMKgwqAg
VGhpcyBiZWNvbWVzIGV2ZW4gbW9yZSBzaWxseSBmb3IgdHJpdmlhbCBpbnN0cnVjdGlvbnMg
bGlrZSBTVEkvQ0xJDQo+Pj4gwqDCoCBvciBpbiB0aGUgd29yc3QgY2FzZSBwYXJhdmlydF9u
b3AoKS4NCj4+DQo+PiBUaGlzIGlzIG5vbnNlbnNlLg0KPj4NCj4+IEluIHRoZSBub24tWGVu
IGNhc2UgdGhlIGluaXRpYWwgaW5kaXJlY3QgY2FsbCBpcyBkaXJlY3RseSByZXBsYWNlZCB3
aXRoDQo+PiBTVEkvQ0xJIHZpYSBhbHRlcm5hdGl2ZSBwYXRjaGluZywgd2hpbGUgZm9yIFhl
biBpdCBpcyByZXBsYWNlZCBieSBhIGRpcmVjdA0KPj4gY2FsbC4NCj4+DQo+PiBUaGUgcGFy
YXZpcnRfbm9wKCkgY2FzZSBpcyBoYW5kbGVkIGluIGFsdF9yZXBsYWNlX2NhbGwoKSBieSBy
ZXBsYWNpbmcgdGhlDQo+PiBpbmRpcmVjdCBjYWxsIHdpdGggYSBub3AgaW4gY2FzZSB0aGUg
dGFyZ2V0IG9mIHRoZSBjYWxsIHdhcyBwYXJhdmlydF9ub3AoKQ0KPj4gKHdoaWNoIGlzIGlu
IGZhY3Qgbm9fZnVuYygpKS4NCj4+DQo+Pj4NCj4+PiDCoMKgIFRoZSBjYWxsIG1ha2VzIG9u
bHkgc2Vuc2UsIHdoZW4gdGhlIG5hdGl2ZSBkZWZhdWx0IGlzIGFuIGFjdHVhbA0KPj4+IMKg
wqAgZnVuY3Rpb24sIGJ1dCBmb3IgdGhlIHRyaXZpYWwgY2FzZXMgaXQncyBhIGJsYXRhbnQg
ZW5naW5lZXJpbmcNCj4+PiDCoMKgIHRyYWlud3JlY2suDQo+Pg0KPj4gVGhlIHRyaXZpYWwg
Y2FzZXMgYXJlIGFsbCBoYW5kbGVkIGFzIHN0YXRlZCBhYm92ZTogYSBkaXJlY3QgcmVwbGFj
ZW1lbnQNCj4+IGluc3RydWN0aW9uIGlzIHBsYWNlZCBhdCB0aGUgaW5kaXJlY3QgY2FsbCBw
b3NpdGlvbi4NCj4gDQo+IFRoZSBhYm92ZSBjb21tZW50IHdhcyBnaXZlbiBpbiAyMDIzIElJ
UkMsIGFuZCB5b3UgaGF2ZSBhZGRyZXNzZWQgaXQuDQo+IA0KPj4NCj4+PiBMYXRlciBhIGNv
bnNlbnN1cyB3YXMgcmVhY2hlZCB0byB1dGlsaXplIHRoZSBhbHRlcm5hdGl2ZXMgbWVjaGFu
aXNtIHRvDQo+Pj4gZWxpbWluYXRlIHRoZSBpbmRpcmVjdCBjYWxsIG92ZXJoZWFkIGludHJv
ZHVjZWQgYnkgdGhlIHB2X29wcyBBUElzOg0KPj4+DQo+Pj4gwqDCoMKgwqAgMSkgV2hlbiBi
dWlsdCB3aXRoICFDT05GSUdfWEVOX1BWLCBYODZfRkVBVFVSRV9YRU5QViBiZWNvbWVzIGEN
Cj4+PiDCoMKgwqDCoMKgwqDCoCBkaXNhYmxlZCBmZWF0dXJlLCBwcmV2ZW50aW5nIHRoZSBY
ZW4gY29kZSBmcm9tIGJlaW5nIGJ1aWx0DQo+Pj4gwqDCoMKgwqDCoMKgwqAgYW5kIGVuc3Vy
aW5nIHRoZSBuYXRpdmUgY29kZSBpcyBleGVjdXRlZCB1bmNvbmRpdGlvbmFsbHkuDQo+Pg0K
Pj4gVGhpcyBpcyB0aGUgY2FzZSB0b2RheSBhbHJlYWR5LiBUaGVyZSBpcyBubyBuZWVkIGZv
ciBhbnkgY2hhbmdlIHRvIGhhdmUNCj4+IHRoaXMgaW4gcGxhY2UuDQo+Pg0KPj4+DQo+Pj4g
wqDCoMKgwqAgMikgV2hlbiBidWlsdCB3aXRoIENPTkZJR19YRU5fUFY6DQo+Pj4NCj4+PiDC
oMKgwqDCoMKgwqDCoCAyLjEpIElmIG5vdCBydW5uaW5nIG9uIHRoZSBYZW4gaHlwZXJ2aXNv
ciAoIVg4Nl9GRUFUVVJFX1hFTlBWKSwNCj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg
dGhlIGtlcm5lbCBydW50aW1lIGJpbmFyeSBpcyBwYXRjaGVkIHRvIHVuY29uZGl0aW9uYWxs
eQ0KPj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBqdW1wIHRvIHRoZSBuYXRpdmUgTVNS
IHdyaXRlIGNvZGUuDQo+Pj4NCj4+PiDCoMKgwqDCoMKgwqDCoCAyLjIpIElmIHJ1bm5pbmcg
b24gdGhlIFhlbiBoeXBlcnZpc29yIChYODZfRkVBVFVSRV9YRU5QViksIHRoZQ0KPj4+IMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBrZXJuZWwgcnVudGltZSBiaW5hcnkgaXMgcGF0Y2hl
ZCB0byB1bmNvbmRpdGlvbmFsbHkganVtcA0KPj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oCB0byB0aGUgWGVuIE1TUiB3cml0ZSBjb2RlLg0KPj4NCj4+IEkgY2FuJ3Qgc2VlIHdoYXQg
aXMgZGlmZmVyZW50IGhlcmUgY29tcGFyZWQgdG8gdG9kYXkncyBzdGF0ZS4NCj4+DQo+Pj4N
Cj4+PiBUaGUgYWx0ZXJuYXRpdmVzIG1lY2hhbmlzbSBpcyBhbHNvIHVzZWQgdG8gY2hvb3Nl
IHRoZSBuZXcgaW1tZWRpYXRlDQo+Pj4gZm9ybSBNU1Igd3JpdGUgaW5zdHJ1Y3Rpb24gd2hl
biBpdCdzIGF2YWlsYWJsZS4NCj4+DQo+PiBZZXMsIHRoaXMgbmVlZHMgdG8gYmUgYWRkZWQu
DQo+Pg0KPj4+IENvbnNlcXVlbnRseSwgcmVtb3ZlIHRoZSBwdl9vcHMgTVNSIHdyaXRlIEFQ
SXMgYW5kIHRoZSBYZW4gY2FsbGJhY2tzLg0KPj4NCj4+IEkgc3RpbGwgZG9uJ3Qgc2VlIGEg
bWFqb3IgZGlmZmVyZW5jZSB0byB0b2RheSdzIHNvbHV0aW9uLg0KPiANCj4gVGhlIGV4aXN0
aW5nIGNvZGUgZ2VuZXJhdGVzOg0KPiANCj4gIMKgwqDCoCAuLi4NCj4gIMKgwqDCoCBiZiBl
MCAwNiAwMCAwMMKgwqDCoMKgwqDCoMKgwqDCoCBtb3bCoMKgwqAgJDB4NmUwLCVlZGkNCj4g
IMKgwqDCoCA4OSBkNsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBtb3bC
oMKgwqAgJWVkeCwlZXNpDQo+ICDCoMKgwqAgNDggYzEgZWEgMjDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqAgc2hywqDCoMKgICQweDIwLCVyZHgNCj4gIMKgwqDCoCBmZiAxNSAwNyA0OCA4
YyAwMcKgwqDCoMKgwqDCoCBjYWxswqDCoCAqMHgxOGM0ODA3KCVyaXApwqAgIyA8cHZfb3Bz
KzB4Yjg+DQo+ICDCoMKgwqAgMzEgYzDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqAgeG9ywqDCoMKgICVlYXgsJWVheA0KPiAgwqDCoMKgIC4uLg0KPiANCj4gQW5kIG9u
IG5hdGl2ZSwgdGhlIGluZGlyZWN0IGNhbGwgaW5zdHJ1Y3Rpb24gaXMgcGF0Y2hlZCB0byBh
IGRpcmVjdCBjYWxsDQo+IGFzIHlvdSBtZW50aW9uZWQ6DQo+IA0KPiAgwqDCoMKgIC4uLg0K
PiAgwqDCoMKgIGJmIGUwIDA2IDAwIDAwwqDCoMKgwqDCoMKgwqDCoMKgIG1vdsKgwqDCoCAk
MHg2ZTAsJWVkaQ0KPiAgwqDCoMKgIDg5IGQ2wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgIG1vdsKgwqDCoCAlZWR4LCVlc2kNCj4gIMKgwqDCoCA0OCBjMSBlYSAyMMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzaHLCoMKgwqAgJDB4MjAsJXJkeA0KPiAgwqDCoMKg
IGU4IDYwIDNlIDAxIDAwwqDCoMKgwqDCoMKgwqDCoMKgIGNhbGzCoMKgIDx7bmF0aXZlLHhl
bn1fd3JpdGVfbXNyPiAjIGRpcmVjdA0KPiAgwqDCoMKgIDkwwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIG5vcA0KPiAgwqDCoMKgIDMxIGMwwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHhvcsKgwqDCoCAlZWF4LCVlYXgNCj4gIMKg
wqDCoCAuLi4NCj4gDQo+IA0KPiBUaGlzIHBhdGNoIHNldCBnZW5lcmF0ZXMgYXNzZW1ibHkg
dy9vIENBTEwgb24gbmF0aXZlOg0KPiANCj4gIMKgwqDCoCAuLi4NCj4gIMKgwqDCoCBlOSBl
NiAyMiBjNiAwMcKgwqDCoMKgwqDCoMKgwqDCoCBqbXDCoMKgwqAgMWbCoMKgICMgb24gbmF0
aXZlIG9yIG5vcCBvbiBYZW4NCj4gIMKgwqDCoCBiOSBlMCAwNiAwMCAwMMKgwqDCoMKgwqDC
oMKgwqDCoCBtb3bCoMKgwqAgJDB4NmUwLCVlY3gNCj4gIMKgwqDCoCBlOCA5MSBkNCBmYSBm
ZsKgwqDCoMKgwqDCoMKgwqDCoCBjYWxswqDCoCBmZmZmZmZmZjgxMzRlZTgwIDxhc21feGVu
X3dyaXRlX21zcj4NCj4gIMKgwqDCoCBlOSBhNCA5ZiBlYiAwMMKgwqDCoMKgwqDCoMKgwqDC
oCBqbXDCoMKgwqAgZmZmZmZmZmY4MjI1YjlhMCA8X194ODZfcmV0dXJuX3RodW5rPg0KPiAg
wqDCoMKgwqDCoMKgwqAgLi4uDQo+IDE6wqAgYjkgZTAgMDYgMDAgMDDCoMKgwqDCoMKgwqDC
oMKgwqAgbW92wqDCoMKgICQweDZlMCwlZWN4wqDCoCAjIGltbWVkaWF0ZSBmb3JtIGhlcmUN
Cj4gIMKgwqDCoCA0OCA4OSBjMsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBtb3bC
oMKgwqAgJXJheCwlcmR4DQo+ICDCoMKgwqAgNDggYzEgZWEgMjDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqAgc2hywqDCoMKgICQweDIwLCVyZHgNCj4gIMKgwqDCoCAzZSAwZiAzMMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBkcyB3cm1zcg0KPiAgwqDCoMKgIC4uLg0KPiAN
Cj4gSXQncyBub3QgYSBtYWpvciBjaGFuZ2UsIGJ1dCB3aGVuIGl0IGlzIHBhdGNoZWQgdG8g
dXNlIHRoZSBpbW1lZGlhdGUgZm9ybSBNU1IgDQo+IHdyaXRlIGluc3RydWN0aW9uLCBpdCdz
IHN0cmFpZ2h0Zm9yd2FyZGx5IHN0cmVhbWxpbmVkLg0KDQpJdCBzaG91bGQgYmUgcmF0aGVy
IGVhc3kgdG8gc3dpdGNoIHRoZSBjdXJyZW50IHdybXNyL3JkbXNyIHBhcmF2aXJ0IHBhdGNo
aW5nDQpsb2NhdGlvbnMgdG8gdXNlIHRoZSByZG1zci93cm1zciBpbnN0cnVjdGlvbnMgaW5z
dGVhZCBvZiBkb2luZyBhIGNhbGwgdG8NCm5hdGl2ZV8qbXNyKCkuDQoNClRoZSBjYXNlIG9m
IHRoZSBuZXcgaW1tZWRpYXRlIGZvcm0gY291bGQgYmUgaGFuZGxlZCB0aGUgc2FtZSB3YXku
DQoNCj4gDQo+Pg0KPj4gT25seSB0aGUgInBhcmF2aXJ0IiB0ZXJtIGhhcyBiZWVuIGVsaW1p
bmF0ZWQuDQo+IA0KPiBZZXMuDQo+IA0KPiBCdXQgYSBQViBndWVzdCBkb2Vzbid0IG9wZXJh
dGUgYXQgdGhlIGhpZ2hlc3QgcHJpdmlsZWdlIGxldmVsLCB3aGljaA0KPiBtZWFucyBNU1Ig
aW5zdHJ1Y3Rpb25zIHR5cGljYWxseSByZXN1bHQgaW4gYSAjR1AgZmF1bHQuwqAgSSBhY3R1
YWxseSB0aGluayB0aGUgDQo+IHB2X29wcyBNU1IgQVBJcyBhcmUgdW5uZWNlc3NhcnkgYmVj
YXVzZSBvZiB0aGlzIGluaGVyZW50DQo+IGxpbWl0YXRpb24uDQo+IA0KPiBMb29raW5nIGF0
IHRoZSBYZW4gTVNSIGNvZGUsIGV4Y2VwdCBQTVUgYW5kIGp1c3QgYSBmZXcgTVNScywgaXQg
ZmFsbHMNCj4gYmFjayB0byBleGVjdXRlcyBuYXRpdmUgTVNSIGluc3RydWN0aW9ucy7CoCBB
cyBNU1IgaW5zdHJ1Y3Rpb25zIHRyaWdnZXINCj4gI0dQLCBYZW4gdGFrZXMgY29udHJvbCBh
bmQgaGFuZGxlcyB0aGVtIGluIDIgd2F5czoNCj4gDQo+ICDCoCAxKSBlbXVsYXRlIChvciBp
Z25vcmUpIGEgTVNSIG9wZXJhdGlvbiBhbmQgc2tpcCB0aGUgZ3Vlc3QgaW5zdHJ1Y3Rpb24u
DQo+IA0KPiAgwqAgMikgaW5qZWN0IHRoZSAjR1AgYmFjayB0byBndWVzdCBPUyBhbmQgbGV0
IGl0cyAjR1AgaGFuZGxlciBoYW5kbGUgaXQuDQo+ICDCoMKgwqDCoCBCdXQgTGludXggTVNS
IGV4Y2VwdGlvbiBoYW5kbGVyIGp1c3QgaWdub3JlcyB0aGUgTVNSIGluc3RydWN0aW9uDQo+
ICDCoMKgwqDCoCAoTUNFIE1TUiBleGNlcHRpb24gd2lsbCBwYW5pYykuDQo+IA0KPiBTbyB3
aHkgbm90IGxldCBYZW4gaGFuZGxlIGFsbCB0aGUgZGV0YWlscyB3aGljaCBpdCBhbHJlYWR5
IHRyaWVzIHRvIGRvPw0KDQpTb21lIE1TUnMgYXJlIG5vdCBoYW5kbGVkIHRoYXQgd2F5LCBi
dXQgdmlhIGEga2VybmVsIGludGVybmFsIGVtdWxhdGlvbi4NCkFuZCB0aG9zZSBhcmUgaGFu
ZGxlZCB0aGF0IHdheSBtb3N0bHkgZHVlIHRvIHBlcmZvcm1hbmNlIHJlYXNvbnMuIEFuZCBz
b21lDQpuZWVkIHNwZWNpYWwgdHJlYXRtZW50Lg0KDQo+IChMaW51eCB3LyBzdWNoIGEgY2hh
bmdlIG1heSBub3QgYmUgYWJsZSB0byBydW4gb24gb2xkIFhlbiBoeXBlcnZpc29ycy4pDQoN
ClllcywgYW5kIHRoaXMgaXMgc29tZXRoaW5nIHRvIGF2b2lkLg0KDQpBbmQgcmVtZW1iZXIg
dGhhdCBMaW51eCBpc24ndCB0aGUgb25seSBQVi1tb2RlIGd1ZXN0IGV4aXN0aW5nLg0KDQo+
IEJUVywgaWYgcGVyZm9ybWFuY2UgaXMgYSBjb25jZXJuLCB3cml0ZXMgdG8gTVNSX0tFUk5F
TF9HU19CQVNFIGFuZA0KPiBNU1JfR1NfQkFTRSBhbnl3YXkgYXJlIGhweWVyY2FsbHMgaW50
byBYZW4uDQoNClllcywgYW5kIHNvbWUgb3RoZXIgTVNSIHdyaXRlcyBhcmUganVzdCBOT1Bz
IHdpdGggWGVuLVBWLg0KDQoNCkp1ZXJnZW4NCg==
--------------0DTyIjBeblppipV7B0zRSAr0
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-----

--------------0DTyIjBeblppipV7B0zRSAr0--

--------------FLAnSz0SzY3c5JmVJHJBKSu5--

--------------398yZoWCv7yp9PXp1RKEeUfd
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/Ey8FAmgJD8AFAwAAAAAACgkQsN6d1ii/Ey8y
6Qf+J/9aBCAtkvUKlIHFrXLzuNq1p6I3Y1PLOrAvj55laq4pjmVC/ErEafqyCtitWRcEw9XU260I
55Cv2AWrv2pHnsepuTfAOfENQX7k6B1UT7IxYgtnRFXlL2Ue0amb0bKtdPX26M4N/5E9Z62mbfW6
l8N/70GzVKp7LwMs7tRNjfXDdUj1KEznRKMJs89Q2BLnLq8m0XwyOW9VhrhODQABXTePrLFPVip1
5FaEfn5Yk8GCAma/60ZVMUnFaPpC+pcpn/y/hVW4gmTuDzyHsgnM7mCjPuRyokY/WkrrL/CFgbEO
3bT8iJg5C7gPtZVVpbSkW+NbdzYKF7v0vD78ZSBCwA==
=p2ZE
-----END PGP SIGNATURE-----

--------------398yZoWCv7yp9PXp1RKEeUfd--


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 16:11:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 16:11:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.964979.1355654 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7cgw-00015j-9R; Wed, 23 Apr 2025 16:11:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 964979.1355654; Wed, 23 Apr 2025 16: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 1u7cgw-00015c-5X; Wed, 23 Apr 2025 16:11:18 +0000
Received: by outflank-mailman (input) for mailman id 964979;
 Wed, 23 Apr 2025 16:11: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=rDpt=XJ=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1u7cgv-00015W-8K
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 16:11: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 93acb682-205d-11f0-9ffb-bf95429c2676;
 Wed, 23 Apr 2025 18:11:13 +0200 (CEST)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-acb615228a4so198909066b.0
 for <xen-devel@lists.xenproject.org>; Wed, 23 Apr 2025 09:11:13 -0700 (PDT)
Received: from ?IPV6:2003:e5:870f:e000:6c64:75fd:2c51:3fef?
 (p200300e5870fe0006c6475fd2c513fef.dip0.t-ipconnect.de.
 [2003:e5:870f:e000:6c64:75fd:2c51:3fef])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-acb6ec04668sm821934866b.24.2025.04.23.09.11.11
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 23 Apr 2025 09:11: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: 93acb682-205d-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745424672; x=1746029472; 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=r6M9Ja1D8Zs6b5j1y3MnNQBue4KN5PdtElPgqLbvxSg=;
        b=LyCVCZEEaSR16wdU3XmuLySOPO28HEvcvf9Zvw0NxgQ6ecZUfW4dc78XYrMs5qak/i
         m2Y4if9+je2jXeC1dIw6qXnYg/e6YGm5LWuQL8dOhlTT9VIL4l+OtS4Jd9UlAfeidmBV
         ebHhFBMbS7popSyd5dBHzsW3dxIqeMUJwikXpnExQwo1QihD684aDcJsdhozqPBfc/LY
         +p0q97fvBr7ZuYj3geNupjLpV0wMtM2jO7QREY2o1ES9CfhIgeon3yQz7gihg1CqBwRq
         x11hsYLosRNis0M4ZjWxVqTw8gfjn6sgcbsi1Io8JQ8XVfHM17B/59Rh74qTO8z9y14Q
         Z8iQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745424672; x=1746029472;
        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=r6M9Ja1D8Zs6b5j1y3MnNQBue4KN5PdtElPgqLbvxSg=;
        b=BGwRuet0hyEXntWGF7PNSKLO4VKAoCR2IHFk6sRRw0Vc5VfDPG/coq4yWAyG9pIw4n
         9QgjNBXeeAy4AR87WDbtSm8OajnLXV1OjqPGe2EG9zBoXq91xI134tbZTDAzR4hXynLQ
         4i1eC5PNC3UmSNbj6dRIdLbWAOOMD4IScECCMn2CM1Y6dtPIqiogS3GZvbvWvaeE3ZGY
         a7IyYRVQgeAcJAqzopvMWdnoUVN0BlBEYIa1Mn+XwGyT/X6vrLdD5eRQ+dAyuo4MAIG3
         zzqhvkoVx3oGrNrg4IX5W+efuQTWerh6Jy1MSea69Q0TSpptttBIIHkPaJ9VdTA0NBUv
         yKWg==
X-Forwarded-Encrypted: i=1; AJvYcCUxxMNOdntSwRGN/O8tdCsyw4FYExSpcO2YCjIAvqBOcSmJlclFBY8RZP/p5ZF5pGmYGc3LMyocTEk=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy32dq31BHx23tdpbODMIIcyRrFuzYUOwyCXCgU9WYPjlxYb+i1
	GJRvfLEf1OVb/53jGc4p6o6iwnYPFLhxl8qmVCYMnBWq/hpp7L0A1oaNUDPvztU=
X-Gm-Gg: ASbGncseBs20SnOtqKtG7EBSZx578za5QEdDUpndOcgUQbJ5EteDt89na9dzD8FdJcm
	897msbq5N2yjHKszN5BLfDE8YLQw1sOzH1Y7SQQxUA2N17qlYmPMlCK0KLwZ4oNgVHXGh53et2e
	phmOfh4YldrRnULjVWSfHL9TkiGJIwQwej6sedcx0tOHTTIthcPxW2cbncD4ymxtXPpfSwVBPpg
	0w5BTBAftEwMX+IpxxQbVH30E+DsMJmB4Lg0LJsq3YrbrPOzVRyQgDWYqvtwND1+a9edHbKCD8b
	3O5tW1wimDqxuTQJm0BSdZNdnKjOQCrfQ5a29LODaRH5oT/Bb6LZLviadQqUwuLKLxAHZp+VYZm
	Cge3X7XabJrrEcH07X/NMPEsaSOAxLz7HGfGtLKTk8WoQyFiXy4JL7JJ3KoMrsBjDTA==
X-Google-Smtp-Source: AGHT+IGCpPmCGC7IHEh0MIOg0AX5sgy1qpm3zmVV6d+GogUn6nD6VtfuVEh/CSiuiB3OjgZ0F+tEng==
X-Received: by 2002:a17:907:728e:b0:ac7:3441:79aa with SMTP id a640c23a62f3a-ace3f4c1d0dmr289156466b.13.1745424672252;
        Wed, 23 Apr 2025 09:11:12 -0700 (PDT)
Message-ID: <281505d5-7459-4903-887e-dc78a4c1fce4@suse.com>
Date: Wed, 23 Apr 2025 18:11:10 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH v2 22/34] x86/msr: Utilize the alternatives mechanism
 to read MSR
To: Xin Li <xin@zytor.com>, linux-kernel@vger.kernel.org,
 kvm@vger.kernel.org, linux-perf-users@vger.kernel.org,
 linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
 linux-pm@vger.kernel.org, linux-edac@vger.kernel.org,
 xen-devel@lists.xenproject.org, linux-acpi@vger.kernel.org,
 linux-hwmon@vger.kernel.org, netdev@vger.kernel.org,
 platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
 dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com, acme@kernel.org,
 andrew.cooper3@citrix.com, peterz@infradead.org, namhyung@kernel.org,
 mark.rutland@arm.com, alexander.shishkin@linux.intel.com, jolsa@kernel.org,
 irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
 wei.liu@kernel.org, ajay.kaher@broadcom.com,
 bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
 pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
 luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
 haiyangz@microsoft.com, decui@microsoft.com
References: <20250422082216.1954310-1-xin@zytor.com>
 <20250422082216.1954310-23-xin@zytor.com>
 <080351cb-6c3d-4540-953d-6205f1ff0745@suse.com>
 <7899fcd9-3492-49d3-8097-a3ddefaaeef0@zytor.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: <7899fcd9-3492-49d3-8097-a3ddefaaeef0@zytor.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------FE970QYjLz2b50Iy5t5x4Ioe"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------FE970QYjLz2b50Iy5t5x4Ioe
Content-Type: multipart/mixed; boundary="------------mQHAHZCn0fpZPeY8nLddn93h";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Xin Li <xin@zytor.com>, linux-kernel@vger.kernel.org,
 kvm@vger.kernel.org, linux-perf-users@vger.kernel.org,
 linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
 linux-pm@vger.kernel.org, linux-edac@vger.kernel.org,
 xen-devel@lists.xenproject.org, linux-acpi@vger.kernel.org,
 linux-hwmon@vger.kernel.org, netdev@vger.kernel.org,
 platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
 dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com, acme@kernel.org,
 andrew.cooper3@citrix.com, peterz@infradead.org, namhyung@kernel.org,
 mark.rutland@arm.com, alexander.shishkin@linux.intel.com, jolsa@kernel.org,
 irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
 wei.liu@kernel.org, ajay.kaher@broadcom.com,
 bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
 pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
 luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
 haiyangz@microsoft.com, decui@microsoft.com
Message-ID: <281505d5-7459-4903-887e-dc78a4c1fce4@suse.com>
Subject: Re: [RFC PATCH v2 22/34] x86/msr: Utilize the alternatives mechanism
 to read MSR
References: <20250422082216.1954310-1-xin@zytor.com>
 <20250422082216.1954310-23-xin@zytor.com>
 <080351cb-6c3d-4540-953d-6205f1ff0745@suse.com>
 <7899fcd9-3492-49d3-8097-a3ddefaaeef0@zytor.com>
In-Reply-To: <7899fcd9-3492-49d3-8097-a3ddefaaeef0@zytor.com>

--------------mQHAHZCn0fpZPeY8nLddn93h
Content-Type: multipart/mixed; boundary="------------hwRd1olu00ORJ06CZhGAHDwc"

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

T24gMjMuMDQuMjUgMTE6MDMsIFhpbiBMaSB3cm90ZToNCj4gT24gNC8yMi8yMDI1IDQ6MTIg
QU0sIErDvHJnZW4gR3Jvw58gd3JvdGU6DQo+Pj4gKw0KPj4+ICtzdGF0aWMgX19hbHdheXNf
aW5saW5lIGJvb2wgX19yZG1zcnEodTMyIG1zciwgdTY0ICp2YWwsIGludCB0eXBlKQ0KPj4+
ICt7DQo+Pj4gK8KgwqDCoCBib29sIHJldDsNCj4+PiArDQo+Pj4gKyNpZmRlZiBDT05GSUdf
WEVOX1BWDQo+Pj4gK8KgwqDCoCBpZiAoY3B1X2ZlYXR1cmVfZW5hYmxlZChYODZfRkVBVFVS
RV9YRU5QVikpDQo+Pj4gK8KgwqDCoMKgwqDCoMKgIHJldHVybiBfX3hlbnB2X3JkbXNycSht
c3IsIHZhbCwgdHlwZSk7DQo+Pg0KPj4gSSBkb24ndCB0aGluayB0aGlzIHdpbGwgd29yayBm
b3IgdGhlIFhlbiBQViBjYXNlLg0KPiANCj4gV2VsbCwgSSBoYXZlIGJlZW4gdGVzdGluZyB0
aGUgY29kZSBvbiB4ZW4tNC4xNyBjb21pbmcgd2l0aCBVYnVudHUNCj4gMjQuMDQuMiBMVFMg
OikNCg0KSG1tLCBzZWVtcyB0aGF0IHRoZSBhY2Nlc3NlZCBNU1IocykgYXJlIHRoZSBvbmVz
IGZhbGxpbmcgYmFjayB0byB0aGUNCm5hdGl2ZV9yZG1zcigpIGNhbGxzLiBBdCBsZWFzdCBv
biB0aGUgaGFyZHdhcmUgeW91IHRlc3RlZCBvbi4NCg0KPj4gWDg2X0ZFQVRVUkVfWEVOUFYg
aXMgc2V0IG9ubHkgYWZ0ZXIgdGhlIGZpcnN0IE1TUiBpcyBiZWluZyByZWFkLg0KPiANCj4g
Tm8gbWF0dGVyIHdoZXRoZXIgdGhlIGNvZGUgd29ya3Mgb3Igbm90LCBnb29kIGNhdGNoIQ0K
PiANCj4+DQo+PiBUaGlzIGNhbiBiZSBmaXhlZCBieSBzZXR0aW5nIHRoZSBmZWF0dXJlIGVh
cmxpZXIsIGJ1dCBpdCBzaG93cyB0aGF0IHRoZQ0KPj4gcGFyYXZpcnQgZmVhdHVyZSBoYXMg
aXRzIGJlbmVmaXRzIGluIHN1Y2ggY2FzZXMuDQo+IA0KPiBTZWUgbXkgb3RoZXIgcmVwbHkg
dG8gbGV0IFhlbiBoYW5kbGUgYWxsIHRoZSBkZXRhaWxzLg0KPiANCj4gUGx1cyB0aGUgY29k
ZSBhY3R1YWxseSB3b3JrcywgSSB3b3VsZCBhY3R1YWxseSBhcmd1ZSB0aGUgb3Bwb3NpdGUg
Oi1QDQoNCkJUVywgaXQgd2FzIGluIGtlcm5lbCA2LjEyIEkgaGFkIHRvIGNoYW5nZSB0aGUg
TVNSIHJlYWQgZW11bGF0aW9uIGZvcg0KWGVuLVBWIHRoZSBsYXN0IHRpbWUgKGZpeCBzb21l
IHByb2JsZW1zIHdpdGggY2hhbmdlZCB4ODYgdG9wb2xvZ3kNCmRldGVjdGlvbikuIFRoaW5n
cyBsaWtlIHRoYXQgd29uJ3QgYmUgZWFzaWx5IHB1dCBpbnRvIHRoZSBoeXBlcnZpc29yLA0K
d2hpY2ggbmVlZHMgdG8gc2VydmUgb3RoZXIgT1MtZXMsIHRvby4NCg0KDQpKdWVyZ2VuDQo=

--------------hwRd1olu00ORJ06CZhGAHDwc
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-----

--------------hwRd1olu00ORJ06CZhGAHDwc--

--------------mQHAHZCn0fpZPeY8nLddn93h--

--------------FE970QYjLz2b50Iy5t5x4Ioe
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/Ey8FAmgJER4FAwAAAAAACgkQsN6d1ii/Ey9B
OAgAgUnmx2ytj5fx0ZWLVVSeVgbrAkAAJwflobLTfsKbhnmAKSXlnLeLRLVkxNnEl2JtohZ6+oZD
YIxawfxiIGTbwbemJOWdlKj6zJJE2cKl39wCE83gJZM/VGYiBo+Q0dTWWOWGfUJD04EkOMAAiJ96
iI2xfjOnxm1YBb5TqBqC/CvC2mbHOg543h8N5NoVx39tEeSepbZH6UirBZ3B50y3/Zgp50DK2R3O
6YLl6jBayBEHkZkqK59qYmjBrj6OriVMZpo5QCK+NLuv2mdv3O7hI1nKbmUmS94/7UcuHFtan862
npbfPTBwkAXV5WDYJ7uyIdkMVl3F9PhN2zVI4a4VUQ==
=Dl6w
-----END PGP SIGNATURE-----

--------------FE970QYjLz2b50Iy5t5x4Ioe--


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 16:48:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 16:48:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.964998.1355663 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7dGr-0005rW-RH; Wed, 23 Apr 2025 16:48:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 964998.1355663; Wed, 23 Apr 2025 16:48: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 1u7dGr-0005rP-Ob; Wed, 23 Apr 2025 16:48:25 +0000
Received: by outflank-mailman (input) for mailman id 964998;
 Wed, 23 Apr 2025 16:48: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=OJp7=XJ=gmail.com=edgar.iglesias@srs-se1.protection.inumbo.net>)
 id 1u7dGq-0005rJ-Jj
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 16:48:24 +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 c47db621-2062-11f0-9ffb-bf95429c2676;
 Wed, 23 Apr 2025 18:48:22 +0200 (CEST)
Received: by mail-lj1-x22c.google.com with SMTP id
 38308e7fff4ca-30db1bc464dso1506021fa.0
 for <xen-devel@lists.xenproject.org>; Wed, 23 Apr 2025 09:48:22 -0700 (PDT)
Received: from gmail.com (213-67-3-247-no600.tbcn.telia.com. [213.67.3.247])
 by smtp.gmail.com with ESMTPSA id
 38308e7fff4ca-3109075f28dsm19415671fa.6.2025.04.23.09.48.20
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 23 Apr 2025 09:48:20 -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: c47db621-2062-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1745426902; x=1746031702; darn=lists.xenproject.org;
        h=user-agent: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=uQS+oR9s8FG/Q5RPJOqhZ2ex/ZXUmEGeaT5QJ6emN/U=;
        b=Fg2jsPbC990KAmuucdHAZArV7jwMqn82FAdJLnzjQqVjp/LFfVoDlek//AGHPNoOeE
         cVlS6A00V8xlbA09IrKjRa0Pg5/BE3CsjWkYDcR4XwJP6CssaI7fCTcBVNZbObfpQahE
         OpX/FNl/1KZ4TrbvvA+3siocMUnkSknK9IiqxluldSpWiNrBk2PsajrQEzkl5izLpL+u
         GP8V915rDsGG+xMeHA4FmxsWlJFsOjmmfty9g0jViDap1A0Mf8ITePX1Nsb7q1pZfnm/
         vbJWOE6doHyDqStUQxL+5HW4JmTB1IdShPF/r2/H3jyGGiV8OUkIgr7Q2HdcgKctojNJ
         AAzA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745426902; x=1746031702;
        h=user-agent: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=uQS+oR9s8FG/Q5RPJOqhZ2ex/ZXUmEGeaT5QJ6emN/U=;
        b=ISaLN/g1vd6uWNwyp3npEZJapof4SbRwTCN1f5Lt+tOAMgWLlJ8kClnoijFyBfhWF8
         SFKlLqBRW/zU/HegKg/Jq7GjGXt/5mCipud7IDrGIHSXDeOP+HBDmFVQ0zmEZDTF61MQ
         hcUDA9LaGZohFpysq8/5Sdw2BI7O0nj6S4U4IdUsdS9gpqRImr7PhKyMacY0+u6ruXE2
         RP1YdULB2BLey4815PTg7YPmEOl3DG82Pdwqmyj7qENVXw2PrUuhCNNwiqexbsehcvYo
         4vQQJm2fVpzSA6VEqQ5DkNTHEvH0ugDD3R5ugCpwdnS2a0Qdm53NnkofyHiIwEKmLzwk
         fWRQ==
X-Forwarded-Encrypted: i=1; AJvYcCUn47o8nsOSrNrzeRHjLhCpE+eaoK9sX58hrkOZ0PP5MIXU95frWZ2tbmpHnoIGs40yJODO1j0xXwA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxL1b3AI5CO0qkLjbck48/nmydrk9fmZb3RAVKsmYB8PT5h1GCy
	6RPhBI6unqJ1M9nGpcfe1cEr1WZC0DKJIA5DejurdycCM200qtmR
X-Gm-Gg: ASbGncvdWSVm3JNwJWmG04cNAgnH7gUPUuFxZXf/MBCnOujzWif31OHFAf6niSXdPhv
	3Oh3/LHsbpl8XOVauSYjOlpC7F0fGHADLRLBNPbAUyrqK/X1Qe0kGmYcVwd+oFl6QoSHRjpifG4
	61P5T5dStGYeP0cymdsYocq3qlP0zvSIhy9GMgS4NtHk2D9faQ3j2Yw1a730Yohqmj4pAr759+T
	0SyIqGY7D0AGj0ITyAgSKElFcoR0LDVKACYbAu/C7Oed3WLVgaiQ3Q9RXtGHH37tjuQgSgocqVC
	ByTg+4e+8z6YYuhkmRlJkXQHRwZdNYwpuGNu3dLFXq723yAH0ohWGPyeCYIqwOyUSPP3XVdIgCm
	Yc2Bx8FsRSAnI
X-Google-Smtp-Source: AGHT+IH7O1iiDddCO89yvZWH7Be7H2ryLRucKswHDEdPt9gWFhhsHNxHjpkzMogRjLrNlf6lejAH5w==
X-Received: by 2002:a2e:ab19:0:b0:30b:d5ed:55c7 with SMTP id 38308e7fff4ca-3109057628emr72700781fa.36.1745426901514;
        Wed, 23 Apr 2025 09:48:21 -0700 (PDT)
Date: Wed, 23 Apr 2025 18:48:19 +0200
From: "Edgar E. Iglesias" <edgar.iglesias@gmail.com>
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: Aleksandr Partanen <alex.pentagrid@gmail.com>, qemu-devel@nongnu.org,
	xen-devel@lists.xenproject.org, Paul Durrant <paul@xen.org>,
	Anthony PERARD <anthony@xenproject.org>
Subject: Re: [PATCH] xen: mapcache: Fix finding matching entry
Message-ID: <aAkZ04aPs7XGBiOM@zapote>
References: <20250410144604.214977-1-alex.pentagrid@gmail.com>
 <alpine.DEB.2.22.394.2504181638300.785180@ubuntu-linux-20-04-desktop>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <alpine.DEB.2.22.394.2504181638300.785180@ubuntu-linux-20-04-desktop>
User-Agent: Mutt/2.2.14+84 (2efcabc4) (2025-03-23)

On Fri, Apr 18, 2025 at 04:39:04PM -0700, Stefano Stabellini wrote:
> On Thu, 10 Apr 2025, Aleksandr Partanen wrote:
> > If we have request without lock and hit unlocked or invalid
> > entry during the search, we remap it immediately,
> > even if we have matching entry in next entries in bucket.
> > This leads to duplication of mappings of the same size,
> > and to possibility of selecting the wrong element
> > during invalidation and underflow it's entry->lock counter
> > 
> > Signed-off-by: Aleksandr Partanen <alex.pentagrid@gmail.com>
> 
> Hi Aleksandr, thanks for the patch, it looks correct to me.
> 
> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
> 
> 
> Edgar, would you be able to give it a look as well to make sure?


Looks good to me too, thanks!

Reviewed-by: Edgar E. Iglesias <edgar.iglesias@amd.com>




> 
> 
> > ---
> >  hw/xen/xen-mapcache.c | 6 +++---
> >  1 file changed, 3 insertions(+), 3 deletions(-)
> > 
> > diff --git a/hw/xen/xen-mapcache.c b/hw/xen/xen-mapcache.c
> > index 698b5c53ed..2c8f861fdb 100644
> > --- a/hw/xen/xen-mapcache.c
> > +++ b/hw/xen/xen-mapcache.c
> > @@ -376,12 +376,12 @@ tryagain:
> >  
> >      entry = &mc->entry[address_index % mc->nr_buckets];
> >  
> > -    while (entry && (lock || entry->lock) && entry->vaddr_base &&
> > -            (entry->paddr_index != address_index || entry->size != cache_size ||
> > +    while (entry && (!entry->vaddr_base ||
> > +            entry->paddr_index != address_index || entry->size != cache_size ||
> >               !test_bits(address_offset >> XC_PAGE_SHIFT,
> >                   test_bit_size >> XC_PAGE_SHIFT,
> >                   entry->valid_mapping))) {
> > -        if (!free_entry && !entry->lock) {
> > +        if (!free_entry && (!entry->lock || !entry->vaddr_base)) {
> >              free_entry = entry;
> >              free_pentry = pentry;
> >          }
> > -- 
> > 2.39.5
> > 


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 17:14:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 17:14:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.965010.1355673 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7dfj-0002Bj-QQ; Wed, 23 Apr 2025 17:14:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 965010.1355673; Wed, 23 Apr 2025 17:14: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 1u7dfj-0002Bc-ND; Wed, 23 Apr 2025 17:14:07 +0000
Received: by outflank-mailman (input) for mailman id 965010;
 Wed, 23 Apr 2025 17:14: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=ZaJ6=XJ=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u7dfi-0002BG-5M
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 17:14:06 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 590c1574-2066-11f0-9ffb-bf95429c2676;
 Wed, 23 Apr 2025 19:14:01 +0200 (CEST)
Received: from [192.168.7.202] ([71.202.166.45]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53NHCvSb3804133
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NO);
 Wed, 23 Apr 2025 10:12:58 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 590c1574-2066-11f0-9ffb-bf95429c2676
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53NHCvSb3804133
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745428382;
	bh=AIJHrckYwFl98orUcLBTt95yPEoWX9oW9903W4hlM3w=;
	h=Date:Subject:To:Cc:References:From:In-Reply-To:From;
	b=IvWYQaPfxJvqBiLff3ahLWLm3on+DUaPa1Srpyp5LZs0jmOjsi4vJcD4bjFx1mkw1
	 kmlinO9+bgIwDEaEPFxhzeh7OV4pJBnWqMwgS7SNusPzCVCr4pLxzCg1y9KDDjfFVk
	 DyWNlDOln4+yBgIudOkFG4lEG2Lq/WOJhKF9+SXuHgWi4l0RDrbboFRD8k6F5lKkRA
	 14yiMRrsILUIgyeyHSqLlSqGk6PDPkVte7v13JiaABizSWVFosdv0a/zLQKXJUGorp
	 W8BYnasPgTuqRiwJsD+umVEKtOLbT7Bc0M6cVA0p6p7RA3scb+WSFcK+vk2X+rNlyz
	 87hDNwO5mesTw==
Message-ID: <e01fb578-3523-4f19-8db3-e231d5daa76e@zytor.com>
Date: Wed, 23 Apr 2025 10:12:56 -0700
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH v2 01/34] x86/msr: Move rdtsc{,_ordered}() to
 <asm/tsc.h>
To: Dave Hansen <dave.hansen@intel.com>, linux-kernel@vger.kernel.org,
        kvm@vger.kernel.org, linux-perf-users@vger.kernel.org,
        linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
        linux-pm@vger.kernel.org, linux-edac@vger.kernel.org,
        xen-devel@lists.xenproject.org, linux-acpi@vger.kernel.org,
        linux-hwmon@vger.kernel.org, netdev@vger.kernel.org,
        platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        acme@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com,
        peterz@infradead.org, namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com
References: <20250422082216.1954310-1-xin@zytor.com>
 <20250422082216.1954310-2-xin@zytor.com>
 <4caedcaf-793a-4371-a8db-50723dcdbad4@intel.com>
Content-Language: en-US
From: Xin Li <xin@zytor.com>
Autocrypt: addr=xin@zytor.com; keydata=
 xsDNBGUPz1cBDACS/9yOJGojBFPxFt0OfTWuMl0uSgpwk37uRrFPTTLw4BaxhlFL0bjs6q+0
 2OfG34R+a0ZCuj5c9vggUMoOLdDyA7yPVAJU0OX6lqpg6z/kyQg3t4jvajG6aCgwSDx5Kzg5
 Rj3AXl8k2wb0jdqRB4RvaOPFiHNGgXCs5Pkux/qr0laeFIpzMKMootGa4kfURgPhRzUaM1vy
 bsMsL8vpJtGUmitrSqe5dVNBH00whLtPFM7IbzKURPUOkRRiusFAsw0a1ztCgoFczq6VfAVu
 raTye0L/VXwZd+aGi401V2tLsAHxxckRi9p3mc0jExPc60joK+aZPy6amwSCy5kAJ/AboYtY
 VmKIGKx1yx8POy6m+1lZ8C0q9b8eJ8kWPAR78PgT37FQWKYS1uAroG2wLdK7FiIEpPhCD+zH
 wlslo2ETbdKjrLIPNehQCOWrT32k8vFNEMLP5G/mmjfNj5sEf3IOKgMTMVl9AFjsINLHcxEQ
 6T8nGbX/n3msP6A36FDfdSEAEQEAAc0WWGluIExpIDx4aW5Aenl0b3IuY29tPsLBDQQTAQgA
 NxYhBIUq/WFSDTiOvUIqv2u9DlcdrjdRBQJlD89XBQkFo5qAAhsDBAsJCAcFFQgJCgsFFgID
 AQAACgkQa70OVx2uN1HUpgv/cM2fsFCQodLArMTX5nt9yqAWgA5t1srri6EgS8W3F+3Kitge
 tYTBKu6j5BXuXaX3vyfCm+zajDJN77JHuYnpcKKr13VcZi1Swv6Jx1u0II8DOmoDYLb1Q2ZW
 v83W55fOWJ2g72x/UjVJBQ0sVjAngazU3ckc0TeNQlkcpSVGa/qBIHLfZraWtdrNAQT4A1fa
 sWGuJrChBFhtKbYXbUCu9AoYmmbQnsx2EWoJy3h7OjtfFapJbPZql+no5AJ3Mk9eE5oWyLH+
 QWqtOeJM7kKvn/dBudokFSNhDUw06e7EoVPSJyUIMbYtUO7g2+Atu44G/EPP0yV0J4lRO6EA
 wYRXff7+I1jIWEHpj5EFVYO6SmBg7zF2illHEW31JAPtdDLDHYcZDfS41caEKOQIPsdzQkaQ
 oW2hchcjcMPAfyhhRzUpVHLPxLCetP8vrVhTvnaZUo0xaVYb3+wjP+D5j/3+hwblu2agPsaE
 vgVbZ8Fx3TUxUPCAdr/p73DGg57oHjgezsDNBGUPz1gBDAD4Mg7hMFRQqlzotcNSxatlAQNL
 MadLfUTFz8wUUa21LPLrHBkUwm8RujehJrzcVbPYwPXIO0uyL/F///CogMNx7Iwo6by43KOy
 g89wVFhyy237EY76j1lVfLzcMYmjBoTH95fJC/lVb5Whxil6KjSN/R/y3jfG1dPXfwAuZ/4N
 cMoOslWkfZKJeEut5aZTRepKKF54T5r49H9F7OFLyxrC/uI9UDttWqMxcWyCkHh0v1Di8176
 jjYRNTrGEfYfGxSp+3jYL3PoNceIMkqM9haXjjGl0W1B4BidK1LVYBNov0rTEzyr0a1riUrp
 Qk+6z/LHxCM9lFFXnqH7KWeToTOPQebD2B/Ah5CZlft41i8L6LOF/LCuDBuYlu/fI2nuCc8d
 m4wwtkou1Y/kIwbEsE/6RQwRXUZhzO6llfoN96Fczr/RwvPIK5SVMixqWq4QGFAyK0m/1ap4
 bhIRrdCLVQcgU4glo17vqfEaRcTW5SgX+pGs4KIPPBE5J/ABD6pBnUUAEQEAAcLA/AQYAQgA
 JhYhBIUq/WFSDTiOvUIqv2u9DlcdrjdRBQJlD89ZBQkFo5qAAhsMAAoJEGu9DlcdrjdR4C0L
 /RcjolEjoZW8VsyxWtXazQPnaRvzZ4vhmGOsCPr2BPtMlSwDzTlri8BBG1/3t/DNK4JLuwEj
 OAIE3fkkm+UG4Kjud6aNeraDI52DRVCSx6xff3bjmJsJJMb12mWglN6LjdF6K+PE+OTJUh2F
 dOhslN5C2kgl0dvUuevwMgQF3IljLmi/6APKYJHjkJpu1E6luZec/lRbetHuNFtbh3xgFIJx
 2RpgVDP4xB3f8r0I+y6ua+p7fgOjDLyoFjubRGed0Be45JJQEn7A3CSb6Xu7NYobnxfkwAGZ
 Q81a2XtvNS7Aj6NWVoOQB5KbM4yosO5+Me1V1SkX2jlnn26JPEvbV3KRFcwV5RnDxm4OQTSk
 PYbAkjBbm+tuJ/Sm+5Yp5T/BnKz21FoCS8uvTiziHj2H7Cuekn6F8EYhegONm+RVg3vikOpn
 gao85i4HwQTK9/D1wgJIQkdwWXVMZ6q/OALaBp82vQ2U9sjTyFXgDjglgh00VRAHP7u1Rcu4
 l75w1xInsg==
In-Reply-To: <4caedcaf-793a-4371-a8db-50723dcdbad4@intel.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 4/23/2025 7:13 AM, Dave Hansen wrote:
> On 4/22/25 01:21, Xin Li (Intel) wrote:
>> Relocate rdtsc{,_ordered}() from <asm/msr.h> to <asm/tsc.h>, and
>> subsequently remove the inclusion of <asm/msr.h> in <asm/tsc.h>.
>> Consequently, <asm/msr.h> must be included in several source files
>> that previously did not require it.
> 
> I know it's mildly obvious but could you please add a problem statement
> to these changelogs, even if it's just one little sentence?

So "ALWAYS make a changelog a complete story", right?

And that would be helpful for long term maintainability.

> 
> 	For some reason, there are some TSC-related functions in the
> 	MSR header even though there is a tsc.h header.
> 
> 	Relocate rdtsc{,_ordered}() and	subsequently remove the
> 	inclusion of <asm/msr.h> in <asm/tsc.h>. Consequently,
> 	<asm/msr.h> must be included in several source files that
> 	previously did not require it.
> 
> But I agree with the concept, so with this fixed:

TBH, I did hesitate to touch so many files just to include msr.h.

But because tsc.h doesn't reference any MSR definitions, it doesn't make 
sense to include msr.h in tsc.h.  I still did the big changes.

> 
> Acked-by: Dave Hansen <dave.hansen@linux.intel.com>

Thank you very much!


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 17:24:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 17:24:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.965022.1355684 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7dpV-00047o-MI; Wed, 23 Apr 2025 17:24:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 965022.1355684; Wed, 23 Apr 2025 17: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 1u7dpV-00047h-JS; Wed, 23 Apr 2025 17:24:13 +0000
Received: by outflank-mailman (input) for mailman id 965022;
 Wed, 23 Apr 2025 17:24: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=ZaJ6=XJ=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u7dpU-00047b-9Z
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 17:24:12 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c3fcc720-2067-11f0-9eb0-5ba50f476ded;
 Wed, 23 Apr 2025 19:24:10 +0200 (CEST)
Received: from [192.168.7.202] ([71.202.166.45]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53NHNUhb3816392
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NO);
 Wed, 23 Apr 2025 10:23:31 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c3fcc720-2067-11f0-9eb0-5ba50f476ded
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53NHNUhb3816392
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745429016;
	bh=KGV0WbN8TQwHu403QGuVpSGpOVYPp977T4l8EnRBnpo=;
	h=Date:Subject:To:Cc:References:From:In-Reply-To:From;
	b=Rx4uvcSbUxH27ZQufmzp9l6akeq6GAi04sDD2NQ2xWVKfdMclJjO/DcJ9bIJk5ZG1
	 bscfklmB1ttA3gzakhyLww5MWnvMsItmBlyJjingcwZnTTm1oYYfF7Qpf27ZfId+5F
	 Ez85JANkyjBmXnLXd+PhV1vM7/AIZ5QfjZDbcghLL9pJ+wAI8EdZGxfPPEI8qELUl9
	 LC09mduxpQ/6PRNDwNsLr8nEp2KuEP/mRBfORYy9GV2SNxTRqCFfrqSv7eOpU1snyu
	 NzeDiDDgVnY3Qi3mqxpv4Z7c/1Ea5do28c8gpruH0YApRf8wfcUUDz3ihrvAg2jbjw
	 wfyCSXMbouIaA==
Message-ID: <08b7e342-61f7-47fe-bc8a-5ce55e658e84@zytor.com>
Date: Wed, 23 Apr 2025 10:23:29 -0700
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH v2 03/34] x86/msr: Rename rdpmcl() to rdpmcq()
To: Dave Hansen <dave.hansen@intel.com>,
        Sean Christopherson <seanjc@google.com>
Cc: linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
        linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
        netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org,
        tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        acme@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com,
        peterz@infradead.org, namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, luto@kernel.org,
        boris.ostrovsky@oracle.com, kys@microsoft.com, haiyangz@microsoft.com,
        decui@microsoft.com
References: <20250422082216.1954310-1-xin@zytor.com>
 <20250422082216.1954310-4-xin@zytor.com> <aAj5F9IZXG7MB0ai@google.com>
 <6211378e-955b-47f4-8688-ec93728f0087@intel.com>
Content-Language: en-US
From: Xin Li <xin@zytor.com>
Autocrypt: addr=xin@zytor.com; keydata=
 xsDNBGUPz1cBDACS/9yOJGojBFPxFt0OfTWuMl0uSgpwk37uRrFPTTLw4BaxhlFL0bjs6q+0
 2OfG34R+a0ZCuj5c9vggUMoOLdDyA7yPVAJU0OX6lqpg6z/kyQg3t4jvajG6aCgwSDx5Kzg5
 Rj3AXl8k2wb0jdqRB4RvaOPFiHNGgXCs5Pkux/qr0laeFIpzMKMootGa4kfURgPhRzUaM1vy
 bsMsL8vpJtGUmitrSqe5dVNBH00whLtPFM7IbzKURPUOkRRiusFAsw0a1ztCgoFczq6VfAVu
 raTye0L/VXwZd+aGi401V2tLsAHxxckRi9p3mc0jExPc60joK+aZPy6amwSCy5kAJ/AboYtY
 VmKIGKx1yx8POy6m+1lZ8C0q9b8eJ8kWPAR78PgT37FQWKYS1uAroG2wLdK7FiIEpPhCD+zH
 wlslo2ETbdKjrLIPNehQCOWrT32k8vFNEMLP5G/mmjfNj5sEf3IOKgMTMVl9AFjsINLHcxEQ
 6T8nGbX/n3msP6A36FDfdSEAEQEAAc0WWGluIExpIDx4aW5Aenl0b3IuY29tPsLBDQQTAQgA
 NxYhBIUq/WFSDTiOvUIqv2u9DlcdrjdRBQJlD89XBQkFo5qAAhsDBAsJCAcFFQgJCgsFFgID
 AQAACgkQa70OVx2uN1HUpgv/cM2fsFCQodLArMTX5nt9yqAWgA5t1srri6EgS8W3F+3Kitge
 tYTBKu6j5BXuXaX3vyfCm+zajDJN77JHuYnpcKKr13VcZi1Swv6Jx1u0II8DOmoDYLb1Q2ZW
 v83W55fOWJ2g72x/UjVJBQ0sVjAngazU3ckc0TeNQlkcpSVGa/qBIHLfZraWtdrNAQT4A1fa
 sWGuJrChBFhtKbYXbUCu9AoYmmbQnsx2EWoJy3h7OjtfFapJbPZql+no5AJ3Mk9eE5oWyLH+
 QWqtOeJM7kKvn/dBudokFSNhDUw06e7EoVPSJyUIMbYtUO7g2+Atu44G/EPP0yV0J4lRO6EA
 wYRXff7+I1jIWEHpj5EFVYO6SmBg7zF2illHEW31JAPtdDLDHYcZDfS41caEKOQIPsdzQkaQ
 oW2hchcjcMPAfyhhRzUpVHLPxLCetP8vrVhTvnaZUo0xaVYb3+wjP+D5j/3+hwblu2agPsaE
 vgVbZ8Fx3TUxUPCAdr/p73DGg57oHjgezsDNBGUPz1gBDAD4Mg7hMFRQqlzotcNSxatlAQNL
 MadLfUTFz8wUUa21LPLrHBkUwm8RujehJrzcVbPYwPXIO0uyL/F///CogMNx7Iwo6by43KOy
 g89wVFhyy237EY76j1lVfLzcMYmjBoTH95fJC/lVb5Whxil6KjSN/R/y3jfG1dPXfwAuZ/4N
 cMoOslWkfZKJeEut5aZTRepKKF54T5r49H9F7OFLyxrC/uI9UDttWqMxcWyCkHh0v1Di8176
 jjYRNTrGEfYfGxSp+3jYL3PoNceIMkqM9haXjjGl0W1B4BidK1LVYBNov0rTEzyr0a1riUrp
 Qk+6z/LHxCM9lFFXnqH7KWeToTOPQebD2B/Ah5CZlft41i8L6LOF/LCuDBuYlu/fI2nuCc8d
 m4wwtkou1Y/kIwbEsE/6RQwRXUZhzO6llfoN96Fczr/RwvPIK5SVMixqWq4QGFAyK0m/1ap4
 bhIRrdCLVQcgU4glo17vqfEaRcTW5SgX+pGs4KIPPBE5J/ABD6pBnUUAEQEAAcLA/AQYAQgA
 JhYhBIUq/WFSDTiOvUIqv2u9DlcdrjdRBQJlD89ZBQkFo5qAAhsMAAoJEGu9DlcdrjdR4C0L
 /RcjolEjoZW8VsyxWtXazQPnaRvzZ4vhmGOsCPr2BPtMlSwDzTlri8BBG1/3t/DNK4JLuwEj
 OAIE3fkkm+UG4Kjud6aNeraDI52DRVCSx6xff3bjmJsJJMb12mWglN6LjdF6K+PE+OTJUh2F
 dOhslN5C2kgl0dvUuevwMgQF3IljLmi/6APKYJHjkJpu1E6luZec/lRbetHuNFtbh3xgFIJx
 2RpgVDP4xB3f8r0I+y6ua+p7fgOjDLyoFjubRGed0Be45JJQEn7A3CSb6Xu7NYobnxfkwAGZ
 Q81a2XtvNS7Aj6NWVoOQB5KbM4yosO5+Me1V1SkX2jlnn26JPEvbV3KRFcwV5RnDxm4OQTSk
 PYbAkjBbm+tuJ/Sm+5Yp5T/BnKz21FoCS8uvTiziHj2H7Cuekn6F8EYhegONm+RVg3vikOpn
 gao85i4HwQTK9/D1wgJIQkdwWXVMZ6q/OALaBp82vQ2U9sjTyFXgDjglgh00VRAHP7u1Rcu4
 l75w1xInsg==
In-Reply-To: <6211378e-955b-47f4-8688-ec93728f0087@intel.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 4/23/2025 8:06 AM, Dave Hansen wrote:
> On 4/23/25 07:28, Sean Christopherson wrote:
>> Now that rdpmc() is gone, i.e. rdpmcl/rdpmcq() is the only helper, why not simply
>> rename rdpmcl() => rdpmc()?  I see no point in adding a 'q' qualifier; it doesn't
>> disambiguate anything and IMO is pure noise.
> 
> That makes total sense to me.
> 

Unable to argue with two maintainers on a simple naming ;), so will make
the change.


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 17:28:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 17:28:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.965036.1355693 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7dtJ-0004jf-8d; Wed, 23 Apr 2025 17:28:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 965036.1355693; Wed, 23 Apr 2025 17:28: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 1u7dtJ-0004jY-5e; Wed, 23 Apr 2025 17:28:09 +0000
Received: by outflank-mailman (input) for mailman id 965036;
 Wed, 23 Apr 2025 17: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=ZaJ6=XJ=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u7dtI-0004jS-6X
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 17:28:08 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5116dc26-2068-11f0-9eb0-5ba50f476ded;
 Wed, 23 Apr 2025 19:28:06 +0200 (CEST)
Received: from [192.168.7.202] ([71.202.166.45]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53NHRSwP3822273
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NO);
 Wed, 23 Apr 2025 10:27:28 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5116dc26-2068-11f0-9eb0-5ba50f476ded
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53NHRSwP3822273
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745429251;
	bh=3DNEiH9ClADNNdC4s2AFGq03za4/i0hRtsw7HdWhX8Q=;
	h=Date:Subject:To:Cc:References:From:In-Reply-To:From;
	b=FYHpQRl8w+nTjaGGRqdQx9A21dGh6eRp5/7vZcoeVQfJ9FBrAtuE4a8nbQdhPJpY7
	 C5nTvzzz33F1edToPwWHSeJXgoh6SwIuUPr91pgD6ORF2jN+/5fZh9Ofi3nO2wDCgX
	 NyB6TneZbcSNhKwI3FWPkvGtSRtfl8YKXephFBr2m8UWFGjBObYHKKsepz0L/aTUGo
	 jFGXQZIyrJ70pWBdnFXn75qaBkvkid3XPvRU6MU8TH8CRJxSKjrb4b2UYHO+wGQ51t
	 Z5W8BeQoRoZzPHd5lWutYI7E+jcqOoxDsMyaxvuPKWJE7ftMpslNO0VeQ/i0ZeFCUN
	 zwJslGTaEkwWw==
Message-ID: <0e5cf01a-2cc1-46a2-89c1-3bcc502229c8@zytor.com>
Date: Wed, 23 Apr 2025 10:27:27 -0700
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH v2 08/34] x86/msr: Convert a native_wrmsr() use to
 native_wrmsrq()
To: Dave Hansen <dave.hansen@intel.com>, linux-kernel@vger.kernel.org,
        kvm@vger.kernel.org, linux-perf-users@vger.kernel.org,
        linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
        linux-pm@vger.kernel.org, linux-edac@vger.kernel.org,
        xen-devel@lists.xenproject.org, linux-acpi@vger.kernel.org,
        linux-hwmon@vger.kernel.org, netdev@vger.kernel.org,
        platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        acme@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com,
        peterz@infradead.org, namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com
References: <20250422082216.1954310-1-xin@zytor.com>
 <20250422082216.1954310-9-xin@zytor.com>
 <2932db03-164a-447e-92cf-1ef6c35c15a4@intel.com>
Content-Language: en-US
From: Xin Li <xin@zytor.com>
Autocrypt: addr=xin@zytor.com; keydata=
 xsDNBGUPz1cBDACS/9yOJGojBFPxFt0OfTWuMl0uSgpwk37uRrFPTTLw4BaxhlFL0bjs6q+0
 2OfG34R+a0ZCuj5c9vggUMoOLdDyA7yPVAJU0OX6lqpg6z/kyQg3t4jvajG6aCgwSDx5Kzg5
 Rj3AXl8k2wb0jdqRB4RvaOPFiHNGgXCs5Pkux/qr0laeFIpzMKMootGa4kfURgPhRzUaM1vy
 bsMsL8vpJtGUmitrSqe5dVNBH00whLtPFM7IbzKURPUOkRRiusFAsw0a1ztCgoFczq6VfAVu
 raTye0L/VXwZd+aGi401V2tLsAHxxckRi9p3mc0jExPc60joK+aZPy6amwSCy5kAJ/AboYtY
 VmKIGKx1yx8POy6m+1lZ8C0q9b8eJ8kWPAR78PgT37FQWKYS1uAroG2wLdK7FiIEpPhCD+zH
 wlslo2ETbdKjrLIPNehQCOWrT32k8vFNEMLP5G/mmjfNj5sEf3IOKgMTMVl9AFjsINLHcxEQ
 6T8nGbX/n3msP6A36FDfdSEAEQEAAc0WWGluIExpIDx4aW5Aenl0b3IuY29tPsLBDQQTAQgA
 NxYhBIUq/WFSDTiOvUIqv2u9DlcdrjdRBQJlD89XBQkFo5qAAhsDBAsJCAcFFQgJCgsFFgID
 AQAACgkQa70OVx2uN1HUpgv/cM2fsFCQodLArMTX5nt9yqAWgA5t1srri6EgS8W3F+3Kitge
 tYTBKu6j5BXuXaX3vyfCm+zajDJN77JHuYnpcKKr13VcZi1Swv6Jx1u0II8DOmoDYLb1Q2ZW
 v83W55fOWJ2g72x/UjVJBQ0sVjAngazU3ckc0TeNQlkcpSVGa/qBIHLfZraWtdrNAQT4A1fa
 sWGuJrChBFhtKbYXbUCu9AoYmmbQnsx2EWoJy3h7OjtfFapJbPZql+no5AJ3Mk9eE5oWyLH+
 QWqtOeJM7kKvn/dBudokFSNhDUw06e7EoVPSJyUIMbYtUO7g2+Atu44G/EPP0yV0J4lRO6EA
 wYRXff7+I1jIWEHpj5EFVYO6SmBg7zF2illHEW31JAPtdDLDHYcZDfS41caEKOQIPsdzQkaQ
 oW2hchcjcMPAfyhhRzUpVHLPxLCetP8vrVhTvnaZUo0xaVYb3+wjP+D5j/3+hwblu2agPsaE
 vgVbZ8Fx3TUxUPCAdr/p73DGg57oHjgezsDNBGUPz1gBDAD4Mg7hMFRQqlzotcNSxatlAQNL
 MadLfUTFz8wUUa21LPLrHBkUwm8RujehJrzcVbPYwPXIO0uyL/F///CogMNx7Iwo6by43KOy
 g89wVFhyy237EY76j1lVfLzcMYmjBoTH95fJC/lVb5Whxil6KjSN/R/y3jfG1dPXfwAuZ/4N
 cMoOslWkfZKJeEut5aZTRepKKF54T5r49H9F7OFLyxrC/uI9UDttWqMxcWyCkHh0v1Di8176
 jjYRNTrGEfYfGxSp+3jYL3PoNceIMkqM9haXjjGl0W1B4BidK1LVYBNov0rTEzyr0a1riUrp
 Qk+6z/LHxCM9lFFXnqH7KWeToTOPQebD2B/Ah5CZlft41i8L6LOF/LCuDBuYlu/fI2nuCc8d
 m4wwtkou1Y/kIwbEsE/6RQwRXUZhzO6llfoN96Fczr/RwvPIK5SVMixqWq4QGFAyK0m/1ap4
 bhIRrdCLVQcgU4glo17vqfEaRcTW5SgX+pGs4KIPPBE5J/ABD6pBnUUAEQEAAcLA/AQYAQgA
 JhYhBIUq/WFSDTiOvUIqv2u9DlcdrjdRBQJlD89ZBQkFo5qAAhsMAAoJEGu9DlcdrjdR4C0L
 /RcjolEjoZW8VsyxWtXazQPnaRvzZ4vhmGOsCPr2BPtMlSwDzTlri8BBG1/3t/DNK4JLuwEj
 OAIE3fkkm+UG4Kjud6aNeraDI52DRVCSx6xff3bjmJsJJMb12mWglN6LjdF6K+PE+OTJUh2F
 dOhslN5C2kgl0dvUuevwMgQF3IljLmi/6APKYJHjkJpu1E6luZec/lRbetHuNFtbh3xgFIJx
 2RpgVDP4xB3f8r0I+y6ua+p7fgOjDLyoFjubRGed0Be45JJQEn7A3CSb6Xu7NYobnxfkwAGZ
 Q81a2XtvNS7Aj6NWVoOQB5KbM4yosO5+Me1V1SkX2jlnn26JPEvbV3KRFcwV5RnDxm4OQTSk
 PYbAkjBbm+tuJ/Sm+5Yp5T/BnKz21FoCS8uvTiziHj2H7Cuekn6F8EYhegONm+RVg3vikOpn
 gao85i4HwQTK9/D1wgJIQkdwWXVMZ6q/OALaBp82vQ2U9sjTyFXgDjglgh00VRAHP7u1Rcu4
 l75w1xInsg==
In-Reply-To: <2932db03-164a-447e-92cf-1ef6c35c15a4@intel.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 4/23/2025 8:51 AM, Dave Hansen wrote:
> On 4/22/25 01:21, Xin Li (Intel) wrote:
>>   static __always_inline void sev_es_wr_ghcb_msr(u64 val)
>>   {
>> -	u32 low, high;
>> -
>> -	low  = (u32)(val);
>> -	high = (u32)(val >> 32);
>> -
>> -	native_wrmsr(MSR_AMD64_SEV_ES_GHCB, low, high);
>> +	native_wrmsrq(MSR_AMD64_SEV_ES_GHCB, val);
>>   }
> 
> A note on ordering: Had this been a native_wrmsr()=>__wrmsr()
> conversion, it could be sucked into the tree easily before the big
> __wrmsr()=>native_wrmsrq() conversion.
> 
> Yeah, you'd have to base the big rename on top of this. But with a
> series this big, I'd prioritize whatever gets it trimmed down.

Okay, I will focus on cleanup first.


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 17:33:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 17:33:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.965060.1355708 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7dya-0006j2-W7; Wed, 23 Apr 2025 17:33:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 965060.1355708; Wed, 23 Apr 2025 17:33:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7dya-0006iv-SE; Wed, 23 Apr 2025 17:33:36 +0000
Received: by outflank-mailman (input) for mailman id 965060;
 Wed, 23 Apr 2025 17:33: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=QZsN=XJ=oracle.com=ross.philipson@srs-se1.protection.inumbo.net>)
 id 1u7dyZ-0006ip-DE
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 17:33:35 +0000
Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com
 [205.220.177.32]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 135d21eb-2069-11f0-9ffb-bf95429c2676;
 Wed, 23 Apr 2025 19:33:32 +0200 (CEST)
Received: from pps.filterd (m0246631.ppops.net [127.0.0.1])
 by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 53NGtpsk020146;
 Wed, 23 Apr 2025 17:33:23 GMT
Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com
 (iadpaimrmta02.appoci.oracle.com [147.154.18.20])
 by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 466jhdhtwf-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Wed, 23 Apr 2025 17:33:22 +0000 (GMT)
Received: from pps.filterd
 (iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1])
 by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2)
 with ESMTP id 53NHMscu039329; Wed, 23 Apr 2025 17:33:22 GMT
Received: from ch4pr04cu002.outbound.protection.outlook.com
 (mail-northcentralusazlp17013063.outbound.protection.outlook.com
 [40.93.20.63])
 by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id
 466jkfxs43-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Wed, 23 Apr 2025 17:33:22 +0000
Received: from DS0PR10MB7224.namprd10.prod.outlook.com (2603:10b6:8:f5::14) by
 PH8PR10MB6670.namprd10.prod.outlook.com (2603:10b6:510:220::15) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.35; Wed, 23 Apr
 2025 17:33:20 +0000
Received: from DS0PR10MB7224.namprd10.prod.outlook.com
 ([fe80::c57:383f:cfb2:47f8]) by DS0PR10MB7224.namprd10.prod.outlook.com
 ([fe80::c57:383f:cfb2:47f8%5]) with mapi id 15.20.8678.021; Wed, 23 Apr 2025
 17:33: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: 135d21eb-2069-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc
	:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=
	corp-2023-11-20; bh=ZjdExZMFYANObZS1tEnGuwzYJmP7oufyiS0h3AflKgE=; b=
	e4JtP6m4RVfCb4HaYrI/Gn/bmWBmaTOTDjJSmoeJ/D7xIE4u67A1uqbVNb06wJiK
	10Mh0gdX498AfhW8mp+1VQej64DL45umHUgwmJgeFhLPDNc9yH0DbJpqvpNm5L7P
	CccbF6pgJr54Fc2A5z9Liy48rDVGEZTqNze8BUxy4q8/64aqb2r4AWxscrqzX6RM
	/yXkbAUXsgJnAJ5WQMF6Z888IVC1iTislBxW8WBsYTfE9xFhO3Z3meivgtI+T5oe
	wFeM2koRqQlnXvop6dSv/+SeBgkalpTeuzPMkYCCDTIkFZdndFi6id4iuW5ZQRej
	Nc0QpwYTaphvDYTmhNC+lQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=uRzGFpAPLLb+s6MrJUyo3cxM0N9/sAHDdVrYP0Y8zy81kmF60yYjulJxfX0UCQ86BAiVgnlrDxReiOqmjgXpqw4TY7ETsrkmn9LizQ05rWLukfvhJcuOw+V0Ts7CiUr2SqqYW2JXZUsMXBA9le6l7+4DQxDyQSWOrsiMbZy59hyDXj5L+xZNWG4XJPwUMNtM3VlU3BQBKJ6NTjCb0aL0yDkQP2K1Up3+xNm/gglG1xD4ZQD+/Cgn1jxfsvuuuw33IAUYx+EqCEkLfIzWN6tS8ONS4qG8aHgfDfJJGIOv1+3gbEH/Wzcqxbt8VcpEbAEHewEasQG9qUezTvzZ+d/pIA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ZjdExZMFYANObZS1tEnGuwzYJmP7oufyiS0h3AflKgE=;
 b=wDjsVPA64s1mPmaLDOpML560sfNsa2znqE0ZAsGBFxRp1VKXhdZ8aAYLu0E2mKzqZDigHfQEvyjJ2VwhuQEfflj2+do3Ken5xKKCaOe26vg7+otuxFdPMLhktay+JJ9Ek0mnSoTipCVfwOlnXx5EcJ08vLl9sO8AyhHswZbg9rhbAHN3VHhkvCVEcu5P4gXuTmqLqfcTfRQkMvIwomGWe4/28w+ZWmBnJXaCVVWz4AFpE3iaxTxzrxXw42CVyN4gNQ92eoOiIG+ZhrDoen+USXGIUrOkO14+Y5N+C+ZP3kQp4FVtnDf+jfihzvVlzqiXgvCE8WpHTiSxgJFXzhCZdQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com;
 dkim=pass header.d=oracle.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ZjdExZMFYANObZS1tEnGuwzYJmP7oufyiS0h3AflKgE=;
 b=CL+UHf4arMXXTOgshgHEF+VBe+wH2FKhHbzWcsCxli0PQTojr3c/JEpm339YB44+XP5g/zNhg6o2GXYGdC3MAtgJBcgG/VWF3PmDEk7lqRsv2OP88JdyjQ/16J96CPCeMf/7u90Hv5e++b7Iw0s5uQh27nOSkLbE4GqNNH5J+wM=
Message-ID: <7788b19c-7571-4afe-98d0-42c992c7a440@oracle.com>
Date: Wed, 23 Apr 2025 10:33:17 -0700
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 02/21] include/xen/slr_table.h: Secure Launch Resource
 Table definitions
To: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
Cc: xen-devel@lists.xenproject.org, Andrew Cooper
 <andrew.cooper3@citrix.com>,
        Anthony PERARD <anthony.perard@vates.tech>,
        Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
        Julien Grall <julien@xen.org>,
        =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>,
        Stefano Stabellini <sstabellini@kernel.org>,
        trenchboot-devel@googlegroups.com
References: <cover.1745172094.git.sergii.dmytruk@3mdeb.com>
 <1cf5d940e666b2b292fc84ed1fbb8a95cd57f027.1745172094.git.sergii.dmytruk@3mdeb.com>
 <87ad3627-088c-442b-bc2b-89586a082599@oracle.com> <aAj9mO3btAWZbOJp@MjU3Nj>
Content-Language: en-US
From: ross.philipson@oracle.com
In-Reply-To: <aAj9mO3btAWZbOJp@MjU3Nj>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: PH8PR05CA0010.namprd05.prod.outlook.com
 (2603:10b6:510:2cc::15) To DS0PR10MB7224.namprd10.prod.outlook.com
 (2603:10b6:8:f5::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS0PR10MB7224:EE_|PH8PR10MB6670:EE_
X-MS-Office365-Filtering-Correlation-Id: c8cb55e4-9514-4a69-41a7-08dd828cf05d
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|366016|1800799024|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?dzdXUC85UFloeDEyWk50QlhjbXgyZUdRR3QvYTBhWkY0QWFQcFp1bHdzS25U?=
 =?utf-8?B?OEZYRmgyK0NNL3dkSFd5V1FpNm9YNDdOQ0tVYkN1aXhQWnJSSVRmWVpDMGY1?=
 =?utf-8?B?SkdWMGlMQVRlb1RyY1laOTV3eGVLSGZHSlVYK0ZnUmVWY21JcjE2dTNOSGlq?=
 =?utf-8?B?cWltZEtMeWxlbWpISDBhMGRNK2tPT3VaeDFpTUM0Z29CelBDak9pZEdtM0Ni?=
 =?utf-8?B?NGlaS3RpVHc4b2cxSGFhSTFENm9Wb3J2bHU1c3ZwNk56cFg4a2hYcnZCSURN?=
 =?utf-8?B?YXdmOGVjcngwT3dvdVlhOVhOTFJxQ0pvbjEzd0RxN095VVVkbHFmVGxaVzhP?=
 =?utf-8?B?eGZ0VENYTU9meHh0L1lMeFhJMS9TMkR2Qk1zRkJteTNObE5mZVF6a3QxM2dB?=
 =?utf-8?B?WEJjVXFCQ2hJRFVPSDZ6Y1hDTUdIY3pJdHQzUWlqVXgxTUg1Y0dPRUc4UlpP?=
 =?utf-8?B?VlhldGppRU0xbmFIQXdGWXlCeEk3NEk3eEhUSFRGUExmSytRclNUaVNtR2VE?=
 =?utf-8?B?SWZ2eHNUYnVjaWdlSU1WUS9YU1kzNExOOXBMbXc3K0tuVXhYMHdXR0o3K25s?=
 =?utf-8?B?TjlrelhJclMrOTAvR1RScnVNd29HdnhnMk91RndhRjB1RndQWVNOT3BJTUd1?=
 =?utf-8?B?dmtkMWNVT0tCaS9iaHROcGEwODZGclcvSlYzMEpJQlBaT0dCWmU4T2plZXRR?=
 =?utf-8?B?Qk13ekQrMXBNTzhSdlR5aGJRZXB2aktPM29wSEI5bnpLV1ZrSXRTRWRHQXBx?=
 =?utf-8?B?TW9DcGc3UXhJWm9aUkZBYitVOVlROVBKYi9qQUJuTEx0MFNCYXQ5RW1iaHFJ?=
 =?utf-8?B?WnNYZ1Ywd0VNS0UxU1Q2ZXI3TDNSajdQOVd5TzhkZStDVWI5b0xwWldnc1Ju?=
 =?utf-8?B?Y0J3TTFCbXJsSVQrQVYwVHFEeS94Y24zSkM2V3U4M0FkY3ZOVExvc2NaUjhn?=
 =?utf-8?B?RC96V2Z6TjlBcFdmTWRZZndJTEhpc0dmVTRDQ01oU1FZWmxBczEzNWFldFg1?=
 =?utf-8?B?a3lRUVJIZUE1YVo0OTFXTGRyUWJ4T1MyV2xsUlVxNHByRENHTzJ5eFlDU2tE?=
 =?utf-8?B?amhzSzRSdktsZzRWOTNtTnZUV2FXcWF5VnM3d00zMmtPNldqeTBHUHhPS1NF?=
 =?utf-8?B?MW5NMzhyQ3lVUU5FTm1tMjNoZmZJWDZjSDBkK1NDRklKdTFJcmdIeFBxRFlQ?=
 =?utf-8?B?TDFhRTVRblJiUlFoSk0zYnJneTJHamNwaVR0eDExVHlqMU5WY3M5d3Nzb3BK?=
 =?utf-8?B?T3dtTHB1dVVqcUM3SkFLaHFRRXl2eTFZMzV2WWJiaXVtOTlkNXFScTFrY1B3?=
 =?utf-8?B?TFd5RjR4dWRIQVZGOHdacU9YbG8rMm9Td0kvY0JyZVBhS3ZUaXcrMnJQNXBY?=
 =?utf-8?B?YUxkSFNHRjQyRjdwYVJ5WEtnTTlXZ2p0OWZOc0VXdkJCdmJJS2ZwamFjU2s2?=
 =?utf-8?B?WXFuREtCcEMwZkRQT1VRQU9mOVlodzZZQkpYL1VtampJb3ZTWHY2bFdlWC9a?=
 =?utf-8?B?dWNmbEhxRFJxTXZZMFJCZzV5d0l2UUVKd1Z6K0FCcUxKVnBudHQ2ejdTend2?=
 =?utf-8?B?MSt3dUk1UlAvdktNNFF2bFBhLzVXNUdpR1ZsOStFNjUyNjFSVis0REx0d2ZB?=
 =?utf-8?B?WUdpd0VMUjluTU5rd3R5WnpzRHhaY25CSzgxRm1yamlvanN3NUFnMWJ5S0Jx?=
 =?utf-8?B?ZWpGMFc2bDIzUi9INTgvSnlVMHJLOVY5YndlZUtCZVcrVkRGNVNSUjh2K0hD?=
 =?utf-8?B?dU1xdm9vdU14OFI2RklwMWJEbEZkV0pGUnpkaUQ5SWJJWDlqNklYV1lhMTY1?=
 =?utf-8?B?ZEovRzdRSVB4ZGtTVnBtcU5CKzlwL0NIVkFmREtUK2NoR1duNVNvVnBkektz?=
 =?utf-8?B?ZDRpVGs5VDN2L2F3Q1R1QWc0T0ZERXpCc2ZTS2tseUVveVc3enREd1AyRFVG?=
 =?utf-8?Q?VCfQUyy9q+g=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS0PR10MB7224.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(366016)(1800799024)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?c2FpeEtUaFF5TFpDMW9pNERLTWpSL3g1dHVSQ0FWSllVajcvelJ6Vk9tV0Rh?=
 =?utf-8?B?dnV0WHlVODVsczhORGhPOHVNQWh4dFAwSWJaS2hrNkpTOXZRLzI4b0xTNG05?=
 =?utf-8?B?am85NVp2bmRXYTdYS0ZYQU9oU3Q5bU1jZ3N3Vlg5SlYwZElLMTNFVHJpZFRv?=
 =?utf-8?B?NndHY0kybUt3Z2tSM1FQMkl2VXpzWi9wRTZIVHJWU2tKcGVPSVY3ajhtb2VM?=
 =?utf-8?B?czVvMVZRaXRqN0FKN0VMREl2YWpzTnVKelVHaDhuVGNaMVlCVnNNYTJiYkwv?=
 =?utf-8?B?Ry96aFdOUDd0NSt3YkE2ZXc5MExwbWVPdjBSMVNIL3I3dndacXFEU1JBSG9W?=
 =?utf-8?B?bkswcTR0REtnWk5UNGpUV3UzNmhpYTdJTU8za1NlejRFZGs5eEtEbkdnYkUz?=
 =?utf-8?B?Tyt1UitIaDQrSGNsWVRRZzdRK2VacG9zR2NaQnFrZ0srQnloeWdjS3V5MlQ0?=
 =?utf-8?B?NGgyNnZpZUhWSllCKythSFU3VkpGSnVDNVllRVlJUkxsd0cxNEl2V0hpUkpz?=
 =?utf-8?B?NjBlQW5PUDhSZC84OWpGcGJPKzJac0xYSjJ1YnJaTmNxeSt0L200M1FncFNU?=
 =?utf-8?B?QzFDUGMzeEpKTjVKL2tzYW5MTHM5T1lseDdhcC8vaHlaRE9zQkVYdytkQ0xG?=
 =?utf-8?B?RG80a3NvS0kyYUdJV1l5dDV4K0pBUHMwYllxdDhGZWlkMHRBZEJPTVlXVTJJ?=
 =?utf-8?B?SlJwdGU1MUtmVXU2c0p3WW1JeHRmaGdUcnMvZ1Q3Z1RiVEU1bnBWeDZhSllw?=
 =?utf-8?B?VzA4RS9TNkxYMUlyVU4vbDNtZjNWWWx3aSt6QUcyRzRNcGp0Qms1Z2NqSnhl?=
 =?utf-8?B?b2Z0NC9CQ2hkdnh1Smtra1V3TGFSZjA5dWNtL2xCZGIyQzg4enBhdFh6Ujhh?=
 =?utf-8?B?b2s1eEtwbTJiVjVvd3JlenpldFdScGlUejBjVlMyV000aWJINGVyTTNzZmUr?=
 =?utf-8?B?RXFPd29GUklYbzllZTdMd0xZQXgyaVBTYnRqUUpkcW05QjM4ak1DT2dCZHRU?=
 =?utf-8?B?WnJXRUZPazJjQ3kwYWxlMnVUY25JR0U1ZVIvQjFHakdIVE1WNUVkclRQQVZr?=
 =?utf-8?B?Wk1VME5UMnB5ZjdSRklnUklUbExNWVYrMnVQYm5mUHZBS3pZdmNLb3VjTzZu?=
 =?utf-8?B?SmVnendFRzFlZGwraGZuVDRvT3hYZkZpTUE2bEVpNWNmeTFyUXFIeDJ1Q2Z3?=
 =?utf-8?B?dnI3U0tjY0piTkxtZlVEWlk5eG9wZEplVWtSVlY4ZE5qZzhLNkNSNzNRK08w?=
 =?utf-8?B?Q1RuRlY0dkNkbnE4bWs1KzU3ZGhpdUFvVER6ZXFtZjUrODU1WDY5VWR0cDBO?=
 =?utf-8?B?ampVa0xkMDEydmVaM2pBbTFJaFdZQWZwTXFHR1VRbC9pVGZMUWJnaExJd2lq?=
 =?utf-8?B?Yi9kZ2dpN1JBSTkxSm5EWnZwNUt3RURVSjUxZG1CTjUvQk41bW84MGwxNmJK?=
 =?utf-8?B?aUtoamw5ZmoySDRKWW9Qb21Mb2hvTDdLU0N2N1g3dWdCeHZiKzlBSEY2UWNI?=
 =?utf-8?B?ZTlxdFhJbCtsUjhlNHlHMkdKQWlWVFRUVXRyWExzSllITWVXUUtTdCttd3FG?=
 =?utf-8?B?TGRoM1Y0MFU4UjBoVXloM3l3ZnFvM1VDWnBjLzdVTzhTeGJIS010RTFlRy9Q?=
 =?utf-8?B?aDhqbDZUbm5SMnhxTzllTy9wSjFKU2ZIVWVEZXNqUEk0R3l0MjZlTWJpMU5H?=
 =?utf-8?B?V0lqZis0cWVFTXZ6Z2RLdFpYeExGZ01obS9WYlN4RGlrc2pkQ2pUTHJDUVQ3?=
 =?utf-8?B?Wm1ZUURuQVdDeFA1S2ZXSlJ6SmNVOFFiZ1BNMDBMWjdzTk45ZndEbHlmODRW?=
 =?utf-8?B?dmFVUi9RUWg2Q3dZTUtjU3RvM3BrVmdXbVIwVEFnVmZTakViWlkyNlBVa3NG?=
 =?utf-8?B?cHA5c1hHZkJQN05FRldBbzRINkZLd3IxV0k2SjhPTlpHY0lxOUQxRG8zRWpq?=
 =?utf-8?B?dWNDQUk5STZROWl4QjVIWk91dE4vd1V6akl5ZEUyVUJwUDc4Z3A0d2VxQ3Qx?=
 =?utf-8?B?OUgzUkdhaU13Qmg5aFVsUE4zNjVsK3pRb1F0ODlkeHBUdUlNM2IxNUNnVitR?=
 =?utf-8?B?dmhGOWppRmVrcHR5SXRCeUF6dUtZdGFlR0wvcDlwbFdWZkFqUzRyWXQ2ZlQw?=
 =?utf-8?B?MjBWSGs3VWprK0IxQ3VHN0luYVJUbzJaYTNqcklVV29tSXNCSWtVSldnVFor?=
 =?utf-8?B?TkE9PQ==?=
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	qyZAuU6YpOeauzwCX9Nb6ATw5+VjhKUVLha/apYiBj5cj1G4Ft8hzenfp5QugFHjvyWN0GkJhXlF+q8SSbd+OI33t7KrjIWAdSYMTrbeAYHzT9c9Bq6KhV7TmUxvF6Xo/wDpCMN+HgG49rzYK1vXbmJRqP5NGG8i/AWUoiBdoP2W7FDekGZt6v10Ue3da6I0nkOQUjDcEmiVObHKPYnPNec7QEYcAjM4NWi0btV2ONFInq6iGBgT3jppIuiqgrUwaclgw3KCXBsPbrw4QNewMugsq4Vnwliw3VkKwxFcoY/tHpQQJ8X/QVYoFGtnajIKcCd9nBV/JR1PWpmXzBJ4NvDugvo+Y2P+57OJJJAVNCvgtYpn/1FtD5VMnLxP9ATPiLkHFOG0UKYvg7Jgip/Kxde0CAQdbG02H7ZMGiy0cVEGPV7MN73d5EKVtTW+qDucB9dc6vXbpsr2VQG6jlMdYbDo3aS3ZMB7Zu5OyosOBor/zxcLoHQku5au9yjopXUu6pv6zLx+XS4eRUdro326gktxVawf2B6HKNRpHA+d44sy+E7EKNW76pPKpQrKeckDFMO8kNgULBbTFydNfGJCA2rfkMoTD5Sbv5DXtOHd6LY=
X-OriginatorOrg: oracle.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c8cb55e4-9514-4a69-41a7-08dd828cf05d
X-MS-Exchange-CrossTenant-AuthSource: DS0PR10MB7224.namprd10.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Apr 2025 17:33:19.8215
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: JbwjuK7gK4eKJRUXK/VDhNg5IX4ulcrYl4+7C1w5UZtbQsOetV5EwtbSSZ2VwaWPfJx+lYwgo9aFHvmdnuZgvk3jx10rBGLJxclbyMNGLOI=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH8PR10MB6670
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.0.680,FMLib:17.12.80.40
 definitions=2025-04-23_10,2025-04-22_01,2025-02-21_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 bulkscore=0 malwarescore=0
 spamscore=0 phishscore=0 suspectscore=0 mlxlogscore=999 mlxscore=0
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2504070000
 definitions=main-2504230123
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNDIzMDEyMiBTYWx0ZWRfX9H/tmYZg4+s5 fGBBAijtN8UOyYN6PNk9dxoG3u5nIL1s/d++j4CgAIFNJbkI6J7HeBhA+FL5icaE5UC9UJCtLhH BbHbjYiAixDGgCDDanDI5PYEygImBk3BYv4anui64JSieA0TnSHgmydK1i7UwkXFYvO+sANBXeR
 IqQg/T7LhojT5mq2REFwt9dormeoyXXg2ldNmHrZGqEMEHlK5z4h4gdNRbIxFuQsAhmVxt+sXXm nNIKGXg8647ez5MNcYHUvrMj0J6mCVe65c/QuAKiLdRa5T8QXdSpQbihtK7DREu+k4EgI+VUuiB aFmjNRqVbMQDNTHnm7sutL1ijI3aIPMWabGJdszIiNQgNMXHa6cxJqYSYL3rJXIJsgfIb0xnzKz v5Y7oOyf
X-Proofpoint-ORIG-GUID: bbVJ0sxFOydGhwKu8ZzXhbzXonKktMGZ
X-Proofpoint-GUID: bbVJ0sxFOydGhwKu8ZzXhbzXonKktMGZ

On 4/23/25 7:47 AM, Sergii Dmytruk wrote:
> On Tue, Apr 22, 2025 at 01:46:14PM -0700, ross.philipson@oracle.com wrote:
>>> +
>>> +/*
>>> + * ARM DRTM Info table
>>> + */
>>> +struct slr_entry_arm_info
>>> +{
>>> +    struct slr_entry_hdr hdr;
>>> +} __packed;
>>
>> You can probably ditch this for now.
> 
> Right, it has no value at this point.
> 
>> I am surprised you did not need the slr_add_entry() function. How do you add
>> entries to the SLRT?
> 
> Xen doesn't add any SLRT entries.  It's also the final consumer of the
> SLRT, at least at the moment, so no need to update something that won't
> be used again.

Ahh right. The Linux version allows the policy to be updated by the EFI 
stub but you are not doing that.

Thanks
Ross

> 
>> Thanks
>> Ross



From xen-devel-bounces@lists.xenproject.org Wed Apr 23 17:56:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 17:56:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.965075.1355723 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7eKp-0001m6-2d; Wed, 23 Apr 2025 17:56:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 965075.1355723; Wed, 23 Apr 2025 17:56: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 1u7eKo-0001kI-V8; Wed, 23 Apr 2025 17:56:34 +0000
Received: by outflank-mailman (input) for mailman id 965075;
 Wed, 23 Apr 2025 17:56:33 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=V8j8=XJ=amd.com=VictorM.Lira@srs-se1.protection.inumbo.net>)
 id 1u7eKn-0001gW-PB
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 17:56:33 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on2060c.outbound.protection.outlook.com
 [2a01:111:f403:2418::60c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 49271543-206c-11f0-9ffb-bf95429c2676;
 Wed, 23 Apr 2025 19:56:31 +0200 (CEST)
Received: from DS7P220CA0017.NAMP220.PROD.OUTLOOK.COM (2603:10b6:8:223::11) by
 DM4PR12MB6086.namprd12.prod.outlook.com (2603:10b6:8:b2::16) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.8678.23; Wed, 23 Apr 2025 17:56:27 +0000
Received: from DS2PEPF00003448.namprd04.prod.outlook.com
 (2603:10b6:8:223:cafe::90) by DS7P220CA0017.outlook.office365.com
 (2603:10b6:8:223::11) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.37 via Frontend Transport; Wed,
 23 Apr 2025 17:56:26 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 DS2PEPF00003448.mail.protection.outlook.com (10.167.17.75) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Wed, 23 Apr 2025 17:56:26 +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, 23 Apr
 2025 12:56:26 -0500
Received: from xsjstefanos51.xilinx.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 via Frontend
 Transport; Wed, 23 Apr 2025 12:56:25 -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: 49271543-206c-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=pMeC8EMm93CB3j9yZAx1ZNAN05KRa1QXO+7aKPec/5DblUkqhYPufz92XAlmShLmqe0edrlxpyg+NN7U7HRYpGEe1ZsycXLpJSMXzpfXFRZy2VQsCgUCfl0bZNbXId0y3NdIJprrjxhjpUxXxbyr150K5AVGXB5noR/zRJDqUgDmy18ATBZBWHdhY8IXH6yjT26MzpZ87JGyU766/7pd8fg37Fwgdlj1hKRkvlLUI86e0h79DfgTV9tKO0vA2ZI92uD2SW096Up/G/HjeyclOl9mghFJhL8zVB1KjuQZvvN0wSfRsxXCu/4uDoH17UGOeWQv8gLN6YLGrJfVZQjmoQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=uFJyvJXjhiq9kjUtLsOyrZHJ+xeH+8MdMFEtKtz54do=;
 b=Ct1+GduZNDXvE1rDmQnhnR/0LtR45wjE2bI4h4Ehw+H3UwpqSabWHmpcTMeJAUhzMArjoZLtkJysFZ+4n0jozqILf0chQdiBL1KPkOcQdhtKGk7lb2cvbA48Xekb+mtnHvCT4u2/95IiNccfVkl9ZjPvfYol30kp9qVWkRKIZUAsZ7DDKV5TmSaw0PE6HHJDrwcmgR3qq6T/Shd6LyKJMcKvKLu8bmPOb3qmg+vWNF+T7BokUo/ASuAV80s5/MZNXfDdtG+tb7KIgLZVBLB0G3SfAxrruy2XfVf4fcM6egWJVicjGiNhd6w7pdk6xeRkaRV3faN61aSzKKUl6LNxhg==
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=uFJyvJXjhiq9kjUtLsOyrZHJ+xeH+8MdMFEtKtz54do=;
 b=yMyRG/BwkYgVpkGyM+P/VpPq22nQy01dljIgcgmPyRTfEeDtjY2+s4rTFn7Is4RoOLoX2KseDLPOPYqe+fLAQeHYesGzorQTDXIldnSYkoilWh8LCLk/4opG6FxKci2QoiSt7vIxJePZ/+rBUglorQ8ft+S4wrQuZnQF7pjFBPw=
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: <victorm.lira@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Nicola Vetrini <nicola.vetrini@bugseng.com>, Federico Serafini
	<federico.serafini@bugseng.com>, Victor Lira <victorm.lira@amd.com>, "Andrew
 Cooper" <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, "Stefano
 Stabellini" <sstabellini@kernel.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>
Subject: [PATCH v1] misra: add deviation of Rule 10.1 for unary minus
Date: Wed, 23 Apr 2025 10:54:29 -0700
Message-ID: <7c7b7a09e9d5ac1cc6f93fecacd8065fb6f25324.1745427770.git.victorm.lira@amd.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <9e1210f2a9c794d68dcc6b897239b228b141296a.1745427770.git.victorm.lira@amd.com>
References: <9e1210f2a9c794d68dcc6b897239b228b141296a.1745427770.git.victorm.lira@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
Received-SPF: None (SATLEXMB03.amd.com: victorm.lira@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS2PEPF00003448:EE_|DM4PR12MB6086:EE_
X-MS-Office365-Filtering-Correlation-Id: 1f1df750-ae0d-4503-884f-08dd82902b32
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|7416014|36860700013|1800799024|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?cHRzY2pZejZGb3ByeFVHU09ncnMycDJYTFRiUGI2cE02U3FmclZoQjFhbzVy?=
 =?utf-8?B?dGR5SXk2emozYXk5Z3MzZlZ1Z0hvTE9BSUNhckZGc0l2Y2xkU2NTSElDZVZD?=
 =?utf-8?B?andLQnV0eitNUkFXamdxNmVockpkYmxtQnJLc0pJNG02MW80NDdZd1NGdG5G?=
 =?utf-8?B?eFBkYVBjTmg0TmFUSVQ2NU5wMHFObjlRSmVlM0VTeTVQcFF6NVVac2xaTnBN?=
 =?utf-8?B?aTdTMGwvSHQvQ2IyaTJtL2UzYzBkcm53eHNGUm01TXdFRGNGTTRUdFEwaHRP?=
 =?utf-8?B?ZkRFUmVPbDhncWNzSk5mZWVwdnB4bDVzekhBTGRTOGNtVEtxbzBJSDRQaFFv?=
 =?utf-8?B?RFFnaDF0MWx3Z3BjekUwM3Q0dEEvb1BlZ3oydXh5TXp2THhWUzJUR05rdnUz?=
 =?utf-8?B?Z1ZSTmpITTVlTERoSXBqb1RVbWt0enQvRmpqQXQrU3p0ZVhrTkhoYVFUQmo4?=
 =?utf-8?B?WTQ3UGxPVklBQlJ4NExGaThBME9ueXBDYWlaNjhEemlrQWIyOW5EbjVueVZN?=
 =?utf-8?B?bEdBRHJnTk15Y3NYKzJFbyt4ZXZYZW94eGQ3MGI1R2Y2MUNXZXE1MEwvRy9E?=
 =?utf-8?B?QzNOQ1dTUWRydWZpMnpkbGJZNGowNENSMkVpbjY2OVoyZFlTVTVTcWVIa20v?=
 =?utf-8?B?TkdtbEJrSmRpeWlKbXB5Y0FkdzBWcXFDR2xncHRrajdIRUlqaU1IUTFTaWdi?=
 =?utf-8?B?eFl4UGdvR0lCRURUZnZKeHlZM1pLZy8xdjFJdlhoTzc0SmdYS0JsZHVSR2dD?=
 =?utf-8?B?Z0lJdk4xc3NLcUxiRXppOXBBWENGbkJnd1dWSGFNaGZHWFVTbytUK0YwOUFY?=
 =?utf-8?B?NytweW9mSmxyMzdtaTBzcWhLM1A3RDc1L2hSL0gvQVl1TTUzVDJjTmRvRnhR?=
 =?utf-8?B?Mmx4VnlQaEpoeko4cjJzVWwxRS9rRFl1cFF1M2RrK2VuT1RhTzdOWmxNanl0?=
 =?utf-8?B?Z0dNamsyOXg1aGZHbnpkN3VxVWgyS0oyQWR2c0N1dHNUWXhQRGRkTjR2K0Nw?=
 =?utf-8?B?Z2NVWnozaG5VUTUrSk55UloxWVR1NXk0U3dNRjF4cnVMa3k3aFMxaHlla1k2?=
 =?utf-8?B?US81Mmcvek9XV2JkejZYWm1tUDNZd3Y3UlVHR0p2Snl5cjR4RGdINjJ0Kzhj?=
 =?utf-8?B?c1NHcHUzaUo3Y0hlb0VPM0ZVK2N1ZVdaRHlTQ29KWm03dmp4b0psZkZJeGFk?=
 =?utf-8?B?ei9GUFdaOXFlZEVSUklSaXNqUzA2SDhjUWRHTGtBWWh6U3VhejJ0Wmdxdmly?=
 =?utf-8?B?N3F1ZG83bW1aMFNHREV4ZWgyN1IwSVRlSVpDV3pNVjhFTXFmRGkwMXZ0cHNJ?=
 =?utf-8?B?SXlzN0NWUHRDb2ZQK29ueDVmNE95a1F1SWlOSVFtV3o4Y1luTE5XT3dZZUQz?=
 =?utf-8?B?ZTFCUmFKS2lxMUdCMTZ2aWFhRkVmWUZlYzNZbEFTSzBRWFNNNkdxZllaT2da?=
 =?utf-8?B?WUNyQ1o3T1VtejFFSVZaVWJUc1ZHQTdXWHdFZm1MMXZRRU5sdnBiOTNkUWpw?=
 =?utf-8?B?ZnlwL09KWXp6cW56SGNlKzJ1Y0tyc2xmRDV0Sk5rZlJlVWdTaElUeXlPdU5a?=
 =?utf-8?B?ZTUxb1ZGeWJqS0VROHVFb2tyMkZHNUhJdXRhdTZLZG9namExOVNmOWFpRTNz?=
 =?utf-8?B?RGY1Z3ZrTElhdHRGbGloY29uQnZJMTQ1eUsxME9MUU9KOEYxRFd1TUxmWUFH?=
 =?utf-8?B?L2k4bFUrUkhycDVIMlFkc01vK3FnakhQTjREeURZYnV6TjhrZCtpcUcrQWFp?=
 =?utf-8?B?V0hGbHN4dGNzTG5IWmR3ZzhLeU5LOUVzQVZ2QjdQNzVITFhNMHhUL1h2Nk9M?=
 =?utf-8?B?THFUMWc1Z3V3ZndGM1pzc3gyS2g3bTNxbHZibTFLWXZweEM5dnZOT1l5T05z?=
 =?utf-8?B?dGptYjh2Q3E1NUR0eml4VnJXQ0svRnhLQjQ2ZTFtRy9nMmFMN0prUGo2QjBF?=
 =?utf-8?B?RTRTVEtya2xOM2xzbmQzbnVvMURrMng1Vk1udkY3L3M4MjJmKzA4NlgrdVd5?=
 =?utf-8?B?Ui94WXZoa2NRSHAvengrb281R3hTU0s2bnkwWEJuOGZUV2xYQTNGTERtUHdB?=
 =?utf-8?Q?SC/dfI?=
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)(1800799024)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Apr 2025 17:56:26.7174
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 1f1df750-ae0d-4503-884f-08dd82902b32
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:
	DS2PEPF00003448.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB6086

From: Nicola Vetrini <nicola.vetrini@bugseng.com>

MISRA C Rule 10.1 states:
"Operands shall not be of an inappropriate essential type"

The unary minus operator applied to an unsigned quantity has
a semantics (wrap around) that is well-known to all Xen developers.
Thus, this operation is deemed safe.

No functional change.

Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
Signed-off-by: Victor Lira <victorm.lira@amd.com>
---
Changes v1:
- add rule title to commit message
---
Cc: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>
Cc: Michal Orzel <michal.orzel@amd.com>
Cc: Jan Beulich <jbeulich@suse.com>
Cc: Julien Grall <julien@xen.org>
Cc: Roger Pau Monné <roger.pau@citrix.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>
Cc: Nicola Vetrini <nicola.vetrini@bugseng.com>
Cc: Federico Serafini <federico.serafini@bugseng.com>
Cc: Bertrand Marquis <bertrand.marquis@arm.com>
---
 automation/eclair_analysis/ECLAIR/deviations.ecl | 6 ++++++
 docs/misra/deviations.rst                        | 6 ++++++
 2 files changed, 12 insertions(+)

diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl b/automation/eclair_analysis/ECLAIR/deviations.ecl
index 303b06203a..2cfce850bd 100644
--- a/automation/eclair_analysis/ECLAIR/deviations.ecl
+++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
@@ -347,6 +347,12 @@ constant expressions are required.\""
   "any()"}
 -doc_end

+-doc_begin="Unary minus operations on non-negative integers have a semantics (wrap around) that is well-known to all Xen developers."
+-config=MC3A2.R10.1,etypes+={safe,
+  "stmt(node(unary_operator)&&operator(minus))",
+  "src_expr(definitely_in(0..))"}
+-doc_end
+
 #
 # Series 11
 #
diff --git a/docs/misra/deviations.rst b/docs/misra/deviations.rst
index cfdd1a9838..c5897e31c5 100644
--- a/docs/misra/deviations.rst
+++ b/docs/misra/deviations.rst
@@ -321,6 +321,12 @@ Deviations related to MISRA C:2012 Rules:
        If no bits are set, 0 is returned.
      - Tagged as `safe` for ECLAIR.

+   * - R10.1
+     - Applying the unary minus operator to an unsigned quantity has a
+       semantics (wrap around) that is well-known to all Xen developers.
+       For this reason, the operation is safe.
+     - Tagged as `safe` for ECLAIR.
+
    * - R11.1
      - The conversion from a function pointer to unsigned long or (void \*) does
        not lose any information, provided that the target type has enough bits
--
2.47.0


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 17:56:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 17:56:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.965076.1355738 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7eKq-00028P-9Q; Wed, 23 Apr 2025 17:56:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 965076.1355738; Wed, 23 Apr 2025 17: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 1u7eKq-00027i-6F; Wed, 23 Apr 2025 17:56:36 +0000
Received: by outflank-mailman (input) for mailman id 965076;
 Wed, 23 Apr 2025 17:56:35 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=V8j8=XJ=amd.com=VictorM.Lira@srs-se1.protection.inumbo.net>)
 id 1u7eKp-0001gW-1c
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 17:56:35 +0000
Received: from NAM10-BN7-obe.outbound.protection.outlook.com
 (mail-bn7nam10on2062e.outbound.protection.outlook.com
 [2a01:111:f403:2009::62e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 48dde7cc-206c-11f0-9ffb-bf95429c2676;
 Wed, 23 Apr 2025 19:56:30 +0200 (CEST)
Received: from BN9PR03CA0923.namprd03.prod.outlook.com (2603:10b6:408:107::28)
 by DS0PR12MB7996.namprd12.prod.outlook.com (2603:10b6:8:14f::13) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.23; Wed, 23 Apr
 2025 17:56:25 +0000
Received: from BL6PEPF00022570.namprd02.prod.outlook.com
 (2603:10b6:408:107:cafe::e) by BN9PR03CA0923.outlook.office365.com
 (2603:10b6:408:107::28) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.37 via Frontend Transport; Wed,
 23 Apr 2025 17:56:24 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) 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.8655.12 via Frontend Transport; Wed, 23 Apr 2025 17:56: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, 23 Apr
 2025 12:56:24 -0500
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, 23 Apr
 2025 12:56:23 -0500
Received: from xsjstefanos51.xilinx.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 via Frontend
 Transport; Wed, 23 Apr 2025 12:56:22 -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: 48dde7cc-206c-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=FjMmHs99SVN4Cimq+1M6gf60/LwLgvGM1dxniWUpeigaFMWC81FJ+q2QzlLJDmQSf4V8oF24xL2rJ/rghmbe2dnB/uIW07uhsMJ5GGwUf3e7lkMZHxsVH3J3nVHbLZ2PzzqgfoMLIcetHCta1uk5aD3DEy0Eh6ScrRoR6YQyDkp4ZVZ0n/yUgjrVNVmrEJovR7Bo9gAjIHsJcXQqvxOVRPIpV7oacVzrvruSjw2nOO+nomYkobV/TAVElq5NRtGRmKj35kf4mHDY8ghckwZNKYxEJ0HiGDzn8nti6BzM6NyiBnh2FxPZkKNw8jKoQk5MePAhagwQEzyy71rrsoEeEg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=kE8TlEXpMEGDLCR5A1KZPRKIoivOfgWyVNytlePMvB0=;
 b=jGOcMya7XFJiFLnDwWqSBenOUhpaCmUG4LA1hQyRcQqBtTBk003FF/JHPvhC4rSg0npiGjXqITyLH9Lb9JmjLDrgKX2sOCFzfDauZogBuck9rm6SRRO76v44k37+VU/46paaniviZCF1FujmgjkjziZmcXPyHSi10xzFP9bTNSFIZIGn/eMWnoXPf2bi5skFlq7yrIexJhwi/Odrxix0nz0x0qG2gpJ3HvCRqK9pib16J0aHD4cZ7drisfjP9BZX0c73TAYz1FdS5QFR4i2KlDpXEdeZtd6soYJWs6fsJZFwTPSuSkmmGo2kSz0FJPjDqCCldCFFdS/O0PBBgj2FOw==
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=kE8TlEXpMEGDLCR5A1KZPRKIoivOfgWyVNytlePMvB0=;
 b=jZ/aoXbnvhkqkr+gpDaOGnds0rolqgfrLuL9MfzidKDEfNz194mwAe7xkWdHh3LbAYwreCyPG3K6mP4qcIsjUzIP2fwq0QWdeWNnCPHyJOHM6N1QdfW/VF3Jj5JHRqzdYtoHbsoQPG/zlR1514IvPycnSckxvMxc64jVd1xd94s=
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: <victorm.lira@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Nicola Vetrini <nicola.vetrini@bugseng.com>, Federico Serafini
	<federico.serafini@bugseng.com>, Victor Lira <victorm.lira@amd.com>, "Andrew
 Cooper" <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, "Stefano
 Stabellini" <sstabellini@kernel.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>
Subject: [PATCH v1] misra: add deviation for rules 21.1 and 21.2
Date: Wed, 23 Apr 2025 10:54:27 -0700
Message-ID: <9e1210f2a9c794d68dcc6b897239b228b141296a.1745427770.git.victorm.lira@amd.com>
X-Mailer: git-send-email 2.47.0
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: BL6PEPF00022570:EE_|DS0PR12MB7996:EE_
X-MS-Office365-Filtering-Correlation-Id: f064dbc8-436a-4c67-d4ac-08dd829029ce
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|7416014|36860700013|1800799024|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?NUQ3ajFzSkQycnRPbnJwSG5KTUF6Ymhzd2F0S0NXcVlzK2hiNHpMSVpjM2Qx?=
 =?utf-8?B?YUc1T3FvSDIzT0VtdU1VV0dBbWRvb2ZRWjhvanJmajZjZjJubjA2N3JwYjlV?=
 =?utf-8?B?RkJnMVB3RFd2SkF4WUdVbkxYQncyR0NET0JybXp4K2R0cVR6VXIxUGdHT29i?=
 =?utf-8?B?UkxsNzlmUE5LTThtbzRzdnNlOHZIZUMxRzdVNXF6MC9uVGxabWVEZUU2ZzQ1?=
 =?utf-8?B?VnhQcjFRYWxyOVhRY2xSMzR4Z0p3a1ozUndVcmE4czhxaXI2Q1NvOXhCOWpO?=
 =?utf-8?B?dDkwWWszamgrcmlvSkdEbC9YQjR2RGtrK2FVYm1qUlRjWTVsNkFCUUN6ZlA0?=
 =?utf-8?B?eE9jY3VWNy9xajhFUmF0UkhKYmFhRGNqc053enMvbDBjSGRUTkw0VkcxN1Av?=
 =?utf-8?B?UWc1ZWZ0SG5IWFMrcGlNMmdhWnFpNVVuNzBZcjQrcGNPZm9Zd0h3MUMvK2dK?=
 =?utf-8?B?M01MZmh2b3FjZDZGRWtOeHphNzRIY0V0YXR0bXNtNFJnUmZYNkNnSzNHTFVX?=
 =?utf-8?B?eEFkbkN2a05VdjJLTFplNHZ1d1lmYmtieE5sNmlEUjZsdVY1NWRMQi92VU9v?=
 =?utf-8?B?bUE3NElxOC9CZ2Q0OUdkWjQ1ekpWZjNzWGpFUGZqQXFYejhxMXRYZThGeFZM?=
 =?utf-8?B?UDhTVTIyTkZZblVGd2pzQ2NON2s5NFk1L2RWU2R2bFBKVXJHTzBxN210VVRy?=
 =?utf-8?B?WWNhQzJ5OHRWb3ZXSk9FQlpXQUI0dGdxajBIbmkwa0IyR0xHbm9tZ0NxNkNL?=
 =?utf-8?B?ZVU2UCsrL2xMa1NyS2NoVzhYZWtyT21PcEljRUE3SDhHUjNNRFJ0cFd3Njdx?=
 =?utf-8?B?OWUrTlJSOUNsOHgwVDNtRThSaForSWlxbEVhUDhjbk9jdXdSWjJDRUJMQUZI?=
 =?utf-8?B?NEdpTnBUVm4ramVxYUhPM1Y3ZUhDU1RHbVFVVi9PZ0RzdEswVmZkYlptdzFz?=
 =?utf-8?B?Rlg3WG5hcWNXVTdaWnNlRTFBQkdNK24rOGRPQ21NTDJRK0VUOVNUTjNwcm9l?=
 =?utf-8?B?cmV0Z3pGYytpdDdiVmUyUWxkV3pWSEk1Q040OWJWTFBpRFpWRU5hTS9BYWp1?=
 =?utf-8?B?MGZtUnJGU05kUU85emd1aGROSWJvdmlRcUpzdmp0anFuQk9Ydm4xYVprRytj?=
 =?utf-8?B?QVA3NHliYVExN0Z6MWM4VDRzWjRGZFlVQXkxTUZwcFZwTS8vRUVCNG5TeU1Z?=
 =?utf-8?B?Q2xZNzV2eW03T3VPMXVKNXFuNGVUSDdQdlo3ampseEtBVHIvcXpkZ3p6L2wy?=
 =?utf-8?B?SUxnYllVUVNlQlBaNGk4WTlCTWhrM01Lby9KNG5jNVRteGFEUHhoNk80VTRP?=
 =?utf-8?B?VDhFL21Nb3JVbDc0a2FCTFdqd3R2N2gzWDFxY3RVVjF4TWNhRFlSREtnMjRi?=
 =?utf-8?B?OXp5TFd0bUlpRFRoZ0d2WE9BV0lLUFBuRVMxb0JxOFNqU3RTbURTWmRaaWJh?=
 =?utf-8?B?Q3JSRS8vVHpxQU9JTE42Qi83dW9pamtZQk9XNFRiRWtaeDhVKzB6M1A4R1NT?=
 =?utf-8?B?aVVaT01wUk1TZ1M3clRveEVWdVZ6SEhZd2N2WlNmekNWdFU3blJzbHhhTUpC?=
 =?utf-8?B?RytUdHBPaWxuNzZsaURJRzJEWmZLSllHZTAxVzhESDlHRk90OGUvalU0aWRt?=
 =?utf-8?B?YlJWTXZOMmJieGNQaktrcTVKVjNJa2lkZU9JRmxVcngvMFZmVG1jemFRQzZ2?=
 =?utf-8?B?bkhVczJUQytZTkp2QjJNRCsyZWh2VUZSVUhoRWpXeTdHbWlkdG1sMUdhbzNt?=
 =?utf-8?B?THFRRkgxaUtQYnlqQU9VTmVOekgxU3pXNW15ZktsVG8rbWoxZTV0MjBEQzF4?=
 =?utf-8?B?RjVIUjlpcjhBZEprdEphcDBnL01pRGk0VURPdEhySUVVWEx6Qm01d3FCZkxp?=
 =?utf-8?B?UENuZXRrVEQ1elBTZmw2alNyQ0xISjVzSnFEYWl0QnpMZTliNGdhRDhFajI5?=
 =?utf-8?B?d3V3ZFZtVzVmQ0pOdFJtOVhmYldjSEJOTVpMN01iNXVoQ0FQVDR5dnRiS3NH?=
 =?utf-8?B?VUxqV25QVkc3aWdyQm1EYTVuZEVKY3c2SWJ3M0V6OEttdVlLSTNDV29xMFpM?=
 =?utf-8?Q?55FOqx?=
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)(7416014)(36860700013)(1800799024)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Apr 2025 17:56:24.4339
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: f064dbc8-436a-4c67-d4ac-08dd829029ce
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:
	BL6PEPF00022570.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB7996

From: Nicola Vetrini <nicola.vetrini@bugseng.com>

MISRA C Rules 21.1 ("#define and #undef shall not be used on a
reserved identifier or reserved macro name") and R21.2 ("A reserved
identifier or reserved macro name shall not be declared") violations
are not problematic for Xen, as it does not use the C or POSIX
libraries.

Xen uses -fno-builtin and -nostdinc to ensure this, but there are still
__builtin_* functions from the compiler that are available so
a deviation is formulated for all identifiers not starting with
"__builtin_".

The missing text of a deviation for Rule 21.2 is added to
docs/misra/deviations.rst.

To avoid regressions, tag both rules as clean and add them to the
monitored set.

Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
Signed-off-by: Victor Lira <victorm.lira@amd.com>
---
Cc: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>
Cc: Michal Orzel <michal.orzel@amd.com>
Cc: Jan Beulich <jbeulich@suse.com>
Cc: Julien Grall <julien@xen.org>
Cc: Roger Pau Monné <roger.pau@citrix.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>
Cc: Nicola Vetrini <nicola.vetrini@bugseng.com>
Cc: Federico Serafini <federico.serafini@bugseng.com>
Cc: Bertrand Marquis <bertrand.marquis@arm.com>
---
 .../eclair_analysis/ECLAIR/deviations.ecl     |  9 ++++++-
 .../eclair_analysis/ECLAIR/monitored.ecl      |  2 ++
 automation/eclair_analysis/ECLAIR/tagging.ecl |  2 ++
 docs/misra/deviations.rst                     | 26 ++++++++++++++++++-
 4 files changed, 37 insertions(+), 2 deletions(-)

diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl b/automation/eclair_analysis/ECLAIR/deviations.ecl
index 2c8fb92713..ffa23b53b7 100644
--- a/automation/eclair_analysis/ECLAIR/deviations.ecl
+++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
@@ -639,8 +639,15 @@ in the expansion."
 # Series 21.
 #

+-doc_begin="Xen does not use C and POSIX libraries:
+identifiers reserved by these libraries can be used safely, except for those
+beginning with '__builtin_'."
+-config=MC3A2.R21.1,macros={safe, "!^__builtin_.*$"}
+-config=MC3A2.R21.2,declarations={safe, "!^__builtin_.*$"}
+-doc_end
+
 -doc_begin="or, and and xor are reserved identifiers because they constitute alternate
-spellings for the corresponding operators (they are defined as macros by iso646.h).
+spellings for the corresponding logical operators (as defined in header 'iso646.h').
 However, Xen doesn't use standard library headers, so there is no risk of overlap."
 -config=MC3A2.R21.2,reports+={safe, "any_area(stmt(ref(kind(label)&&^(or|and|xor|not)$)))"}
 -doc_end
diff --git a/automation/eclair_analysis/ECLAIR/monitored.ecl b/automation/eclair_analysis/ECLAIR/monitored.ecl
index 8351996ec8..da229a0d84 100644
--- a/automation/eclair_analysis/ECLAIR/monitored.ecl
+++ b/automation/eclair_analysis/ECLAIR/monitored.ecl
@@ -79,6 +79,8 @@
 -enable=MC3A2.R20.12
 -enable=MC3A2.R20.13
 -enable=MC3A2.R20.14
+-enable=MC3A2.R21.1
+-enable=MC3A2.R21.2
 -enable=MC3A2.R21.3
 -enable=MC3A2.R21.4
 -enable=MC3A2.R21.5
diff --git a/automation/eclair_analysis/ECLAIR/tagging.ecl b/automation/eclair_analysis/ECLAIR/tagging.ecl
index 1d078d8905..3292bf751e 100644
--- a/automation/eclair_analysis/ECLAIR/tagging.ecl
+++ b/automation/eclair_analysis/ECLAIR/tagging.ecl
@@ -88,6 +88,8 @@ MC3A2.R20.11||
 MC3A2.R20.12||
 MC3A2.R20.13||
 MC3A2.R20.14||
+MC3A2.R21.1||
+MC3A2.R21.2||
 MC3A2.R21.3||
 MC3A2.R21.4||
 MC3A2.R21.5||
diff --git a/docs/misra/deviations.rst b/docs/misra/deviations.rst
index fe0b1e10a2..88328eaa8a 100644
--- a/docs/misra/deviations.rst
+++ b/docs/misra/deviations.rst
@@ -587,7 +587,31 @@ Deviations related to MISRA C:2012 Rules:
        construct is deviated only in Translation Units that present a violation
        of the Rule due to uses of this macro.
      - Tagged as `deliberate` for ECLAIR.
-
+
+   * - R21.1
+     - Rule 21.1 reports identifiers reserved for the C and POSIX standard
+       libraries. Xen does not use such libraries and all translation units
+       are compiled with option '-nostdinc', therefore there is no reason to
+       avoid to use `#define` or `#undef` on such identifiers except for those
+       beginning with `__builtin_` for which compilers may perform (wrong)
+       optimizations.
+     - Tagged as `safe` for ECLAIR.
+
+   * - R21.2
+     - Rule 21.2 reports identifiers reserved for the C and POSIX standard
+       libraries. Xen does not use such libraries and all translation units
+       are compiled with option '-nostdinc', therefore there is no reason to
+       avoid declaring such identifiers except for those beginning with
+       `__builtin_` for which compilers may perform (wrong) optimizations.
+     - Tagged as `safe` for ECLAIR.
+
+   * - R21.2
+     - `or`, `and` and `xor` are reserved identifiers because they constitute
+       alternate spellings for the corresponding logical operators
+       (as defined in Standard Library header `\<iso646.h\>`). Xen does not use
+       Standard library headers, so there is no risk of overlap.
+     - Tagged as `safe` for ECLAIR.
+
    * - R21.9
      - Xen does not use the `bsearch` and `qsort` functions provided by the C
        Standard Library, but provides in source form its own implementation,
--
2.47.0


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 17:56:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 17:56:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.965074.1355717 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7eKo-0001gk-Nj; Wed, 23 Apr 2025 17:56:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 965074.1355717; Wed, 23 Apr 2025 17:56:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7eKo-0001gd-L5; Wed, 23 Apr 2025 17:56:34 +0000
Received: by outflank-mailman (input) for mailman id 965074;
 Wed, 23 Apr 2025 17:56: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=V8j8=XJ=amd.com=VictorM.Lira@srs-se1.protection.inumbo.net>)
 id 1u7eKn-0001gR-53
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 17:56:33 +0000
Received: from NAM10-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam10on20603.outbound.protection.outlook.com
 [2a01:111:f403:2413::603])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 48a8c2ed-206c-11f0-9eb0-5ba50f476ded;
 Wed, 23 Apr 2025 19:56:30 +0200 (CEST)
Received: from DS7P220CA0029.NAMP220.PROD.OUTLOOK.COM (2603:10b6:8:223::28) by
 IA0PR12MB8374.namprd12.prod.outlook.com (2603:10b6:208:40e::7) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.8678.23; Wed, 23 Apr 2025 17:56:26 +0000
Received: from DS2PEPF00003448.namprd04.prod.outlook.com
 (2603:10b6:8:223:cafe::2b) by DS7P220CA0029.outlook.office365.com
 (2603:10b6:8:223::28) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.37 via Frontend Transport; Wed,
 23 Apr 2025 17:56:26 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 DS2PEPF00003448.mail.protection.outlook.com (10.167.17.75) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Wed, 23 Apr 2025 17:56:25 +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, 23 Apr
 2025 12:56:25 -0500
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, 23 Apr
 2025 12:56:25 -0500
Received: from xsjstefanos51.xilinx.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 via Frontend
 Transport; Wed, 23 Apr 2025 12:56:24 -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: 48a8c2ed-206c-11f0-9eb0-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=gwtTFL9sT1dcay8mAApgdW7s35a+v5+VRUQbexzPCKe/VbMnR1u2/DbMFE8Z3a1c381kYHtB/WM4jga2rcXJ0E5uSD2cxECA54Q4Yt9HGsaPm4v87U/ip0MiF/9Dv2nGfsnYE3FySpxWn07bwwnGDfSPcqvEXeiCuam9jaN9/0VWL600UERxWbDHqLzeLf/r0lHBmxF9gMzH3c2auma5MwUTiPvrrcV5E7mJZ8GKEtDHGja7ueR2SHdMvnrQ77jABnAMEzQJ70wdOThLBW4KRq6BAGEiLRxoPY69Ey2TvIVp6OHg2g67tiVMlsnQjMEx3x5mztSmIgUMI1dzOT9I8g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=YKFZrKOZiJ4lCI2I4BIQggJos/VogNtDwCWL86GgUSg=;
 b=ECJnzfdJb0ffifPb+MA889KZ7txkcH2ntoP3ICoaVD5iiSHWbL/TGNnjqS7UPJQFfylLl95SxSSYrcIfbnRbbUZyPhtfnlE4Ip6NCN1AK+A2UcbIoMcqmlWoLvB9XSqYlnWkbP6+sKwpqwhj6pSJlgQp9RHMP9JUtBwaToAXq+FQxT2JizgHEqNjEwBy9Y+V6Cd9v/IG+sQXXPlg//W3zVO6CfVM+mIZjKvvGjU746+DZbTMCcpFvipmY+z+sS5D7c0Zaxts/4KDeKJAMJ5zwXzloqbR6etvVN9JikuzFodrHJYl2kHWbQay8eQcIfh9906IIjZi1JXVeQQkZ7cvtw==
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=YKFZrKOZiJ4lCI2I4BIQggJos/VogNtDwCWL86GgUSg=;
 b=qlm+fj0ROoUdkwY0VV2OGtAAJ04Un/NWtv0DD401PDzBzX83OAxZeeUnSADHtPm66DhpO8DDDfEQ8Oj56zDKZ3knemaYtA2seiblU8svGAKT6xoiigtI9/adpeF7IArcZEsNxzWfgua4ZiYGj6g2XB18+BscCawYLlBwnMUsHCU=
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: <victorm.lira@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Federico Serafini <federico.serafini@bugseng.com>, Victor Lira
	<victorm.lira@amd.com>, Andrew Cooper <andrew.cooper3@citrix.com>, "Anthony
 PERARD" <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Jan
 Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, "Stefano
 Stabellini" <sstabellini@kernel.org>, Nicola Vetrini
	<nicola.vetrini@bugseng.com>, Bertrand Marquis <bertrand.marquis@arm.com>
Subject: [PATCH v1] misra: add deviation of Rule 5.5
Date: Wed, 23 Apr 2025 10:54:28 -0700
Message-ID: <48c7830931a98b2bf70ef1509f309b262b9e5792.1745427770.git.victorm.lira@amd.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <9e1210f2a9c794d68dcc6b897239b228b141296a.1745427770.git.victorm.lira@amd.com>
References: <9e1210f2a9c794d68dcc6b897239b228b141296a.1745427770.git.victorm.lira@amd.com>
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: DS2PEPF00003448:EE_|IA0PR12MB8374:EE_
X-MS-Office365-Filtering-Correlation-Id: 70c9434c-7e0a-4183-c8c0-08dd82902ab1
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|7416014|82310400026|1800799024|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?MHRCQzR0bk1kUFhiVDI4RWR0SlNlN0dNY0ZJMzZYOWpjQnNkR2ZzUVFUajRE?=
 =?utf-8?B?cFNTOXVIQkx5RkdKaFo0a29WZFVOMUZYaVlXaklyL1VlUFpEb2VPa0p6YnFs?=
 =?utf-8?B?czBIbUF2Ni9YT0x1aEQrMU5QRTU2eE1vOEV0TDZ3dFYvQWdjM0owQjZlWlpx?=
 =?utf-8?B?aGxzdFBKcnpWVW9ldnpnN09MRU1TRC9RaFNSdGJZOXo4WnVoSlJyWTl1Yjg3?=
 =?utf-8?B?OHQ3cW9sbG00czB5cWttTDAzQnRWdGxmbXo0RlJSMmE3dUdtYnpwT0xOZVNH?=
 =?utf-8?B?N1hJTXgrbjZmKzBOc0lzOFhYNG1UaXZseUZ0WklxNmpZYlE3bHhweHpDdkNr?=
 =?utf-8?B?azdVMFdxZXp2cVZBdzlab2ovT042aGJmMXhvbVZFTmFUdlQxRS8wTGdjVTRR?=
 =?utf-8?B?VlpzYm1QT3BTTkxUY2x5TWdmdzFoYWM3ajJ0L1FyS3VhVURvekI5Sy84Y2U3?=
 =?utf-8?B?dTB0Ung0aFNvRFZ6SnZqMWRUZjN4K0JPNjJvaWxxM0lYZ3pCSnFJRk12SytX?=
 =?utf-8?B?ZnN2eGhPM2RjNDZXUWdvQnV1RzJTZFhsVER2YVJiZ1ROanJnMnk2NUJhSUF3?=
 =?utf-8?B?eVhoY3BNVjQzV2krZDJTNFV2eElEQVJ0Vk80aWtQOFlmYVVkZzlDQlFPZEda?=
 =?utf-8?B?TlVZYzlCcDBkSE1NWjF4VzZibTdrSFArSUpURUhxR1V5ZitJVFBBcUE5WUxx?=
 =?utf-8?B?OUFhQTlkTHZwNmlBRzczMWluRlgwZXRjcnlmeldBMFZSckFsUmZRclRWSzFv?=
 =?utf-8?B?RWlwZHpMaHpZeElIYkZqczhBQ3hKSG9RN3hrSTZrdDlnbnBYUlZaNEw5eCtq?=
 =?utf-8?B?VVBFWnVscjNaSTVsVXZwR2tUZDhPT0lVQkdWV3BIUDdZbWkvYjVJQVFBZHp0?=
 =?utf-8?B?UmJKWmxGekQyVkdkd0NaSWpXUDlmQU9Ya0w1enBuazNDcnRqZVBITTIreHkx?=
 =?utf-8?B?OWhSOUdxNFRrUjNZVDZxeGFRTmpQZi82OTQzbUduYUhOZ3R2SC9JNXpkWTFt?=
 =?utf-8?B?QzdyVjNqOEV4MkV6Y2MrYi9uSTBVQ1FhOHB1T2Z0RmJhVGxNN1Y2WEd0OVNS?=
 =?utf-8?B?S01Ldzkrd1FEa0JXS0Y3K0pHRTA2VjBzdCs4ZzlCcmhlY00vRmZKYmNiTGVG?=
 =?utf-8?B?NUtEOThSZjlXdnpaU3VCVDBpZ0dCUEZDU0VHR3U3UXdaRGVKSHY3QjcyNXNS?=
 =?utf-8?B?Z1haTU5jdEJhMmdhMVB5dmxIdVc0WmRBUHBhUzIzK3Fpem10NnNHZlBuOXcx?=
 =?utf-8?B?cE5LdzRnMHc1WkxxLzY5NnZxOHZYcGdqYWdQTUY5ckpBQU9MN015eFVTKzhv?=
 =?utf-8?B?RDFGZjlIZkJMQTdFZG5mT3VDeU9acmk1bElqcUVJMnE3cXRmSklWVGdERGp4?=
 =?utf-8?B?MmNWZlBIRXFReFoydVFicno1UEQ1MGhabUIvUGdndnZkZ1gyS01KVERhbWdE?=
 =?utf-8?B?RWU1aksxeGVlUWlUUjIwMGgycTE1ZUVOcmY5dFhyOW9CWGZDSEVKaVhWV0JM?=
 =?utf-8?B?UzFPNmd3RzIzQk9sZ2IwcTJleHo2NHIzTStYS1p0ZVovQTRQUlJvckJwdjg2?=
 =?utf-8?B?VS9rL1VSUllCUmkwdFlvemZqRnRBTlVqT1ZCeEVFaWVCMWl5NGRmcW9sa3RE?=
 =?utf-8?B?czV4L0hzakwxVzZFOUVBSGpTN3pHRWM0U2hYa3dQalNWNjUrS3ZpSFNqMEVl?=
 =?utf-8?B?NWFxY2tlcVRQektOUFBKQlRwMmxrNVR2OVVmZ2ZQaWRJWHcyZDJyNFhFQjZI?=
 =?utf-8?B?ZCsvc1ZvVngrQXlMWElEcitvSXBlNS9BT2pUK2NRNkx4eWpwQ0lkRlptZ3Z4?=
 =?utf-8?B?dis0dDRoempWVWs0elIvUW8rS0YxTHl2czUvelhBTHpBRUNDQnRnck4yalVL?=
 =?utf-8?B?UUpaNjYwbnJhWE05VFVkMHFXV1dvRDVDZTIzNHFvUU1mQkNxMEVhek5NZE5p?=
 =?utf-8?B?a09BMWdselZQenhneFQyMzVqTW9HOEROZDVkUU5JV0t1Q0x1RlQ3aitIbmhK?=
 =?utf-8?B?dC9BK1BncEFhUHdqcUNoZFZZeUhEVGNnVDBGNWxXWVFYMC9tb1psS1BwRGUx?=
 =?utf-8?Q?Ehw7bp?=
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)(82310400026)(1800799024)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Apr 2025 17:56:25.8893
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 70c9434c-7e0a-4183-c8c0-08dd82902ab1
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:
	DS2PEPF00003448.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PR12MB8374

From: Federico Serafini <federico.serafini@bugseng.com>

MISRA C Rule 5.5 states that:
"Identifiers shall be distinct from macro names".

A common pattern in Xen is to have a function-like macro that acts as a
"wrapper" for the function to be called:
before calling the function, the macro adds additional checks or
increase/decrease the number of parameters depending on the
configuration.

Update ECLAIR configuration and deviations.rst.

Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
Signed-off-by: Victor Lira <victorm.lira@amd.com>
---
Cc: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>
Cc: Michal Orzel <michal.orzel@amd.com>
Cc: Jan Beulich <jbeulich@suse.com>
Cc: Julien Grall <julien@xen.org>
Cc: Roger Pau Monné <roger.pau@citrix.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>
Cc: Nicola Vetrini <nicola.vetrini@bugseng.com>
Cc: Federico Serafini <federico.serafini@bugseng.com>
Cc: Bertrand Marquis <bertrand.marquis@arm.com>
---
 automation/eclair_analysis/ECLAIR/deviations.ecl | 8 ++++++++
 docs/misra/deviations.rst                        | 8 ++++++++
 2 files changed, 16 insertions(+)

diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl b/automation/eclair_analysis/ECLAIR/deviations.ecl
index ffa23b53b7..303b06203a 100644
--- a/automation/eclair_analysis/ECLAIR/deviations.ecl
+++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
@@ -114,6 +114,14 @@ it defines would (in the common case) be already defined. Peer reviewed by the c
 -config=MC3A2.R5.5,reports+={deliberate, "any_area(decl(kind(function))||any_loc(macro(name(memcpy||memset||memmove))))&&any_area(any_loc(file(^xen/common/libelf/libelf-private\\.h$)))"}
 -doc_end

+-doc_begin="Clashes between function-like macros and function names are
+deliberate since a common pattern in Xen is to have a function-like macro
+that acts as a \"wrapper\" for the function to be called:
+before calling the function, the macro adds additional checks or
+increase/decrease the number of parameters depending on the configuration."
+-config=MC3A2.R5.5,reports+={deliberate, "all_area(macro(function_like())||decl(kind(function)))"}
+-doc_end
+
 -doc_begin="The type \"ret_t\" is deliberately defined multiple times,
 depending on the guest."
 -config=MC3A2.R5.6,reports+={deliberate,"any_area(any_loc(text(^.*ret_t.*$)))"}
diff --git a/docs/misra/deviations.rst b/docs/misra/deviations.rst
index 88328eaa8a..cfdd1a9838 100644
--- a/docs/misra/deviations.rst
+++ b/docs/misra/deviations.rst
@@ -130,6 +130,14 @@ Deviations related to MISRA C:2012 Rules:
        memmove.
      - Tagged as `deliberate` for ECLAIR.

+   * - R5.5
+     - Clashes between function-like macros and function names are
+       deliberate since a common pattern in Xen is to have a function-like
+       macro that acts as a "wrapper" for the function to be called:
+       before calling the function, the macro adds additional checks or
+       increase/decrease the number of parameters depending on the configuration.
+     - Tagged as `deliberate` for ECLAIR.
+
    * - R5.6
      - The type ret_t is deliberately defined multiple times depending on the
        type of guest to service.
--
2.47.0


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 18:06:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 18:06:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.965113.1355748 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7eUj-0004w2-67; Wed, 23 Apr 2025 18:06:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 965113.1355748; Wed, 23 Apr 2025 18: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 1u7eUj-0004vv-34; Wed, 23 Apr 2025 18:06:49 +0000
Received: by outflank-mailman (input) for mailman id 965113;
 Wed, 23 Apr 2025 18:06: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=V8j8=XJ=amd.com=VictorM.Lira@srs-se1.protection.inumbo.net>)
 id 1u7eUi-0004vp-7g
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 18:06:48 +0000
Received: from NAM12-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam12on2061c.outbound.protection.outlook.com
 [2a01:111:f403:2417::61c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b7a7bebb-206d-11f0-9eb0-5ba50f476ded;
 Wed, 23 Apr 2025 20:06:46 +0200 (CEST)
Received: from SJ2PR12MB8876.namprd12.prod.outlook.com (2603:10b6:a03:539::18)
 by DS0PR12MB6413.namprd12.prod.outlook.com (2603:10b6:8:ce::10) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.23; Wed, 23 Apr
 2025 18:06:43 +0000
Received: from SJ2PR12MB8876.namprd12.prod.outlook.com
 ([fe80::69d9:a014:7a29:de4a]) by SJ2PR12MB8876.namprd12.prod.outlook.com
 ([fe80::69d9:a014:7a29:de4a%4]) with mapi id 15.20.8655.031; Wed, 23 Apr 2025
 18:06: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: b7a7bebb-206d-11f0-9eb0-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=HNSlVED9QV/Rp6sUX/8LijlRaVsyF83F5av8Xj9rq7dn5S1OPhLa8xToN6YAgmYykN4UiULbLKsa0W+YYVZmPq2T8CiGze5KAzsuLOxagu9zvHTNnO5Kj4j/gSBMa4x15EhS0oLsNOxk48G7iN9GNkIWY2hOvijd0NB5XSpFykuvGj6weKYUCcDjZOfT5QYfga9neLNAOQMSTAE+F00pbOksTjKLVX0oAPeASZBvv9TQmIAh9IB58r41NjQOOZIfHHjIFfl5ZB7Z2JU4L5mkDtVB6jwROVg2ohJuxQSVxBkqWkII19UFePNvU434eHIxq/TdYyLseFouOivmlIa1Hg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=xqa79jWDei+TUXbfbLVhNP53IHh/2vbDRB+8d+FW/VQ=;
 b=E5OGJk9Jpxw73vyjwA5kKW85RXDyI7Pm9kdhe6MGLop+5r3TVwHZCu5zWMsH/oTXw350AMbiE1xF4IFVN4d2kQfQzs0MG7CJOdpa2OYF5vAUH5MVwUf1wZ1s+BkjL+tv16AvosN0B9fMQyihAzYx05E/CmhK0Egz6h5W+/ya/fpbcKUmrcKIurmE85nNNuNaNIA8ZlJQfShtY0ezUZbBqbViCY+q5/ZCbp0pBri6dHR9zkjXoc+Ht4uJnxVlkCa/z8+rLWAqKmKSc1IIfiNqBt/dojLVLUaeKhf5m9QflsQwKzz06/gW0bWB7TmLpXBeFA6b6lr/00iB45qkS0WciQ==
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=xqa79jWDei+TUXbfbLVhNP53IHh/2vbDRB+8d+FW/VQ=;
 b=kPGbxV/nL1AFw5zKY1Vf4c+ya096kdfwEwA3B9dy4IJciH0ySz2ilG9TM14UZ6+L8zkVg0WHlWOYspI7MvmF3XO7EYgn5g5+8Y/oxTdWl4hZ0YbY/+OADx9SLDtIsrE4s87eJaPPtvtn3Rz0CxmfPN5Ydy/52mzt5HRIPYU3Eok=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <58f11241-7b9b-4082-b121-4dbe6a085ef0@amd.com>
Date: Wed, 23 Apr 2025 11:06:41 -0700
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1] misra: add deviation of Rule 10.1 for unary minus
To: xen-devel@lists.xenproject.org
Cc: Nicola Vetrini <nicola.vetrini@bugseng.com>,
 Federico Serafini <federico.serafini@bugseng.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>
References: <9e1210f2a9c794d68dcc6b897239b228b141296a.1745427770.git.victorm.lira@amd.com>
 <7c7b7a09e9d5ac1cc6f93fecacd8065fb6f25324.1745427770.git.victorm.lira@amd.com>
Content-Language: en-US
From: "Lira, Victor M" <VictorM.Lira@amd.com>
In-Reply-To: <7c7b7a09e9d5ac1cc6f93fecacd8065fb6f25324.1745427770.git.victorm.lira@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: SJ0PR03CA0300.namprd03.prod.outlook.com
 (2603:10b6:a03:39e::35) To SJ2PR12MB8876.namprd12.prod.outlook.com
 (2603:10b6:a03:539::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ2PR12MB8876:EE_|DS0PR12MB6413:EE_
X-MS-Office365-Filtering-Correlation-Id: dd75e22d-2cf9-4a37-fec6-08dd82919a4c
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|366016|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?b2NHWG5vVUI1RnJGWHFvZFZZdkdvZXVBQ0l5Y0VsWlZ3bE9KWUd2NjRjcWlC?=
 =?utf-8?B?cFM5czFWNy9TcUwyY0xqK2daS2RJeDVDUFhqZUQ2d0x1ZzAvVVhGQ0RHUURy?=
 =?utf-8?B?S0FvcGk2RlhSWDZCU3FFcjh0SlFKeWZKa1B2T2JtMXk5M0h0SmxGdUdnQ3JN?=
 =?utf-8?B?RHpzakRtMExjb3pBTk5lNlQzaEdEblhlellxMzVIdm1HRE90T1pFQXNrUFNO?=
 =?utf-8?B?ZlhsbVBaVmltbW5RVjRlR3JoeGZqeHBOOFpZaEN0c1hlVFRBS0hmMldBanB6?=
 =?utf-8?B?SkJuUTNKOWh2aDBOWlQrRGxzMEl2LzlzQmtQZTNLTVRWa2ZlMkVBTEJaZVg2?=
 =?utf-8?B?amkvSUh5OGpGSUZRYkMzMFdZRkJzS1o2N2U5cWMxUmFoKzZ1WFVIN3pzL1RS?=
 =?utf-8?B?eXp3VzRJbnAyd00vVjB1Z3RQRDBIZkF4eGhsMVZxUjVyQ1NLTSt4Y2Q4cHRF?=
 =?utf-8?B?L1g4UkpoaExES0l5T1lrczlqUlhPV1ljVHUyYkpHdTVRbjAwUTBqQllGaFZo?=
 =?utf-8?B?K1pvcmtnbVowRGVibnl4WjFES05DbzkyUEtuNUN6M1ZlcUtMVS9WOGFEc0I4?=
 =?utf-8?B?dDZ1QzlwMVZRaURXQ3o0Y2pSc0ZIQ1FSSHZ4V2xPNERhekgrNXIzM2g3WWxa?=
 =?utf-8?B?TldLelNIeWg4UDFCRmR2b1Z2TG9nT284bkcxcDVWWWdjblRNenMvYURkQk5a?=
 =?utf-8?B?dkY4NGRCNUVsdlhrWHZpSGRLUXhYVVQ5dFBVYUU2MitZT3U0SnNNSHBHWjVr?=
 =?utf-8?B?dityVVpBTmYzUkJGcEhYanhVMENrV05OcitRR09wQ3FxTEkwckN5NEJVbnJJ?=
 =?utf-8?B?Wi8ya1JUUWc3L0NNT2Jrd0xwRXI3NHFjRmxyY3NUR2Y1dE9uT2tML2UwZTly?=
 =?utf-8?B?TzdNMnJ1VHBKSnVvSU5KOXpNQUFqeXZzU2VKN2drcUQ2aDUwREdIamcyWXMv?=
 =?utf-8?B?YWpKam1TWmppSW1mTWpVbVFLeDhsSFJLb0hrK1UyWU5CaXBBUk9mWmFSQ284?=
 =?utf-8?B?cW8xdzlOajJqblBCWUFJUmxrNlcxK3YvVkNrYkZMOVhBTi9pYVBBQXBsY0Zx?=
 =?utf-8?B?cy9jak5iZnd1OFhBZHVqcHJWblhaZVMwU3pTUkpVR1dETUxjTFd1U044eFVS?=
 =?utf-8?B?MEVleVgyYmtxemFjam43aGkzc096UjFjT3Vqb0Rza3VIZENQU04zT1RLdkRU?=
 =?utf-8?B?QUNZYW82TEtYSWFlU05PT01nZU52UjVramRqQWRxVVNQclYvcEhoMllNV25S?=
 =?utf-8?B?QWNBRzFSbkVaa0QxZnRNTWZYb1pHMEJFb0pvR0N6ZFh1bnFad0lsRi9tSjBO?=
 =?utf-8?B?VGNIZzVSMWkvaEhuK1d1bXhrbjUzNktidCtuNUwva0JVYk05c0Uzb3hwcjkx?=
 =?utf-8?B?R3VCWnZQTDl3bkQxU2Q4WUFlcjZHNXorOU9tSWN2aWE2QUszWEovZmFQSytF?=
 =?utf-8?B?UCtCV3lGU0M4eDRFMHBYcWluaGYxVTVTTldrdWtkZklsV0NtUmJyNThQTFpT?=
 =?utf-8?B?OEJJT0E2K2wxV3hteGhudUZJM3pNWnZaOXZ5M1JyM1RBVk42QTZBTzRDWE5n?=
 =?utf-8?B?NXBJZ0J6aWdLT21hZUc5bm5FZU0vL2VSM3EzdzBTSzZGRld4dmtiZ1lXbXho?=
 =?utf-8?B?RlJSOVNTK3pyd2hkYkc5QnBLYnVPZDlMRTlTbEc2N2ZqRjNlbFhjRFhZM0JT?=
 =?utf-8?B?bGRwVjljcmkxcmVLS1JzMk1iQzVCVWxaVlhFUWpOellMbkhkaE9IejV1R01t?=
 =?utf-8?B?SWxMNkRZZ2JzOTd1NVpXcGlaQjBLd3l2RWZ1ZU1JVkVFN05CMCs3d0xleGlu?=
 =?utf-8?B?Y1pNVkQ4VEQweW92ZUk2YlhjRThzSzZFQ0xhVHVDc29UUUFYcE1MQ3gzMG9R?=
 =?utf-8?B?NkRtb0NMaFJ1djhycndGZndQMGRXcGV1Y3owQUtMb1ZSTTBlSm03LzduUjJ2?=
 =?utf-8?Q?s3VCkFLFtKs=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SJ2PR12MB8876.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(366016)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?bmZnS1JYUVNIMEplOFFQMjc0R0owTERsZnFuNHZ0WVRsVHQva1Y0RmdqMmxw?=
 =?utf-8?B?ZFducFhQWW11U0w0b3YrSlZ3eVVyWjFFR1dNRFhzUG0wQnBHRG5lb1p3bjBC?=
 =?utf-8?B?SEJVSkNobVc2c0FuVm1nalNsQ3hscWh2TXYrYzF3QnJVMGJTNGx0YWx0MmhM?=
 =?utf-8?B?MGh0R3hkazd4OElFV2Fnek9DVHNpNjFLMWFRVTZCSFk0MG9BNSs2UnNYZitE?=
 =?utf-8?B?clpqOVdaY0dxUGJjWVc3bWxLekFNSXV2MGlWQnBvdVhsclJUcTJrc0FGYk5n?=
 =?utf-8?B?YXl1WWlmaWg1YTQzaG1RVUxDQlZSQUZ3MGh1YkZxQzdRQzViRk1LV2hBWU05?=
 =?utf-8?B?dXlwWkljZG1makFKQ1Vubnp6Vy9ndDU4bGtsbCt5cjJmR2hCWFBVbE5nTnpl?=
 =?utf-8?B?YVllSjRweWZ6SWFSWGI4Y1l4YlQvTjE5T3prUGJNdVpvbFEzQTlCZzJVUU42?=
 =?utf-8?B?VTc1NEFyQmlHMGJFcE9sRTJUMlZJOGdldWpyTE1JZEVoenZaMkxxOHVwK05i?=
 =?utf-8?B?RkV2UVNhZFVJUEVMS0M1NitOMUk2THozMjFNYkRDMmF1c0cyOEdFRnlvYkFL?=
 =?utf-8?B?QlMxamFueFJ3cDZQeVNsZFhRZjc5aDNGNDhJanZqOGUvK2FtdVFqeXpjTTJj?=
 =?utf-8?B?eG1xUXA5bVNDbzRZVXBDVHlEc0ZuSnp5RjEwY2RjOVFuKy9PM1dwd3d5MlRl?=
 =?utf-8?B?QURsaUtROGZvUGVBZ0tycStXQnZJUnZEU1JRcmxQVEJ3MUNpeWNLSERieWRt?=
 =?utf-8?B?MFluQ3pMdlh5clkzRkJUYWUvN0thOW1CQlFQeXE3dUcwTWZFdkJtbWYyMlBy?=
 =?utf-8?B?Q2xWRDN5SnZtSnpWTkREb0hSeG9TMkVTcHpWdVkvMGFIMkJDZlVNd09pWXV2?=
 =?utf-8?B?STlXTTUrcTlnWFBlVnBTM01DQ0pCVWJmRGg2UldRQkpNbENOdUxNemwvREpY?=
 =?utf-8?B?ZWpkUUYzU3pXaHlHTzhGcUwwMHJXRHNUTHdBQmw4UlNGZGt3R2hseUE3L3Nw?=
 =?utf-8?B?QWp5QmVuY2RRam5UQy90YW0ybnNmVWFWbXdoQkV0T1dSNmdZNkl6SmhZZHJL?=
 =?utf-8?B?SzFtT0d1SUlpQjBXV0Fwa29NSUQ2R3R6RzVYVjQ2RCt5dlVWNytYanc3QzY2?=
 =?utf-8?B?ejYxbDd0VVBzY1pNQXZGZVBEMzNDcmNvdGtPeEVrSEJkMURRanJ2dk1kdnNr?=
 =?utf-8?B?eW52TEU5ZnFuUFZwamxOWS9TT1FkYUtaT05kcUFwNlZiTkJsUmE4VEpzWWZ1?=
 =?utf-8?B?QS9mdytIMmJBV1VabXlkVGZMM3NhTHBBSndQV0RoSytSSStrTVVwSXBReWx3?=
 =?utf-8?B?Y254clVTT0dlczJjcmE3cFFLNnZva2dkUUFzL0J0M2VLK2dsaXBidjVYd0s2?=
 =?utf-8?B?MXR0NktWblpwNkdtTUZQTTNCRWtSSmw0NUp3Umw1RzBhNGlqTFpGT1NLVDR2?=
 =?utf-8?B?ajhwVlpqeTdqRE9sUFB1NFZSYXMwVEhXcFRxQlY4MElzZHMrSEVqTDVLVGhu?=
 =?utf-8?B?LzVFQ0UzQzNtYTA1K2JlM29xdmw2YnBuWHR2SmFTYzRpOWtCbmYzd1NvMEtz?=
 =?utf-8?B?eitJNTFVQkhUcDlTUG1zZ3BqbTJwMk5xMkZLcEg4MVBSclVwcVBwcEx6bkpR?=
 =?utf-8?B?UHl5emY2bVZ2NnZxNDQ0bnJERzVrMWZ4WUo5cndFbUhULzdNWTZsMi8zdUZh?=
 =?utf-8?B?UlV0Rjd2dlkyUDlhaWF1bGV5b2h6U1k2ZlB3b2pBbWF4UVJrVXRmTDQ0emZ1?=
 =?utf-8?B?M1BBQ21tTXNmUDZzcE1qR1lobXBvYWEwRXJXend5aXpORjNCWTdSVzUzcnla?=
 =?utf-8?B?aDRKM3J4VnFTZ0FsMW0yNkRxOXpwcmtZVS9NSzRTMlJzZmYwcEFYVFlmcFBs?=
 =?utf-8?B?cFlBZlN2a0JOVk1lSWVmeGdIbCtVbnV2RlFUVWg1UjZkWjZ3T2E3WjZ3Yjc1?=
 =?utf-8?B?MTVsUittMXhMSEZZNWlOMG9zRDlmTDUxUFR6UmlobGZIdjRTTnMxU0M0UFZl?=
 =?utf-8?B?V2hHU1RqVlAxVCt4UGFkN011WmQ3Q3MrSmQzRUlzOHcrRVpNUDhGeUtZdnlp?=
 =?utf-8?B?WWdZd29RM282aGNRUXVPZGRTbmFOZk50d0F2aGdmbC9sZkVKc3lDMmpmeEVW?=
 =?utf-8?Q?7uj9/i87hpLViCInndCUjzAZI?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: dd75e22d-2cf9-4a37-fec6-08dd82919a4c
X-MS-Exchange-CrossTenant-AuthSource: SJ2PR12MB8876.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Apr 2025 18:06:42.8335
 (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: E07Vql/0ERTf+vqxZ01oA6DK5yr/r59N332KTk5tn8hB9KPh2W5n4kRYQU9TL354esFPtE/fccqy0W9L9xQMsg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB6413

Continuing a discussion from before:

On 4/22/2025 11:51 PM, Jan Beulich wrote:
> Caution: This message originated from an External Source. Use proper caution when opening attachments, clicking links, or responding.
>
>
> On 23.04.2025 01:43, victorm.lira@amd.com wrote:
>> From: Nicola Vetrini <nicola.vetrini@bugseng.com>
>>
>> The unary minus operator applied to an unsigned quantity has
>> a semantics (wrap around) that is well-known to all Xen developers.
>> Thus, this operation is deemed safe.
> Please, as you have it in the other two patches, can the rule title be
> reproduced in such patches? As it stands, without mentioning the doc
> version either, someone finding this later on may be left with a pretty
> wide ambiguity as to what's meant.
OK I'll include the rule title in the commit message.
>> --- a/automation/eclair_analysis/ECLAIR/deviations.ecl
>> +++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
>> @@ -347,6 +347,12 @@ constant expressions are required.\""
>>     "any()"}
>>   -doc_end
>>
>> +-doc_begin="Unary minus operations on non-negative integers have a semantics (wrap around) that is well-known to all Xen developers."
> Why "non-negative"? A variable of type "int" holding a non-negative value is,
> aiui, well within the bounds of the rule here. It's unsigned types where the
> use of unary minus would constitute a violation. You actually say so ...
>> +   * - R10.1
>> +     - Applying the unary minus operator to an unsigned quantity has a
>> +       semantics (wrap around) that is well-known to all Xen developers.
>> +       For this reason, the operation is safe.
>> +     - Tagged as `safe` for ECLAIR.
> ... here, just that this one's getting blurred by using "quantity" when
> "type" is meant. Imo we need to be pretty precise here, using terminology
> that's used by the standard or the Misra rules, and not anything "coming
> close enough" in someone's perception.
OK, I agree it should say unsigned type(s) in both of these.


Victor


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 18:17:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 18:17:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.965131.1355758 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7eeb-00074e-4m; Wed, 23 Apr 2025 18:17:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 965131.1355758; Wed, 23 Apr 2025 18:17: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 1u7eeb-00074X-20; Wed, 23 Apr 2025 18:17:01 +0000
Received: by outflank-mailman (input) for mailman id 965131;
 Wed, 23 Apr 2025 18:16:59 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=V8j8=XJ=amd.com=VictorM.Lira@srs-se1.protection.inumbo.net>)
 id 1u7eeZ-00074R-Bt
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 18:16:59 +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 227108a1-206f-11f0-9ffb-bf95429c2676;
 Wed, 23 Apr 2025 20:16:55 +0200 (CEST)
Received: from SJ2PR12MB8876.namprd12.prod.outlook.com (2603:10b6:a03:539::18)
 by CY8PR12MB7268.namprd12.prod.outlook.com (2603:10b6:930:54::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.22; Wed, 23 Apr
 2025 18:16:51 +0000
Received: from SJ2PR12MB8876.namprd12.prod.outlook.com
 ([fe80::69d9:a014:7a29:de4a]) by SJ2PR12MB8876.namprd12.prod.outlook.com
 ([fe80::69d9:a014:7a29:de4a%4]) with mapi id 15.20.8655.031; Wed, 23 Apr 2025
 18:16: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: 227108a1-206f-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=VywY1o3Nro3z419pzWp9jgWD4tj9tbeF+uGdzZz4gbKscgJwje9VDl4v4Unt3HkkA8qmYn0PoCgEcPlXp8ek4pDzSY/4AvLGuK0+9JSdagLw9pTJEvtXp3Oii/FV6lU5XheqWIN2nD+s+1SftlGEa42F1p7NN1e5j3JlRvGw0at8NZ2I6/iupJ7V//AQMWemJzG1YMbJeXXtQa3X2oUccmgzIdvz81o/TbWeYMRqT/xBU+cqmTR79qEadr53Wm89efFIvwrT+EiL70VbcYMKaywrWNM3sMo6A9d8et8BF4m9JS8D09qF4GfWGweIuXdbqmMUjCR+a+fGGABsMlFnhA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=n64qvoZYpJN9OEC17V23CLstYUTlZjpcxuIhKDXYZ+Y=;
 b=uw/UnEZ3vllKg14tiZb63VEDAwLNmln8T+9aD6dQzcHMDQb8njDIeK9PqK6bmCwCD0HI7mhGII1Q/B8OgU2APK9J4t5RdI2VWzMZrWxO5chTqlT8nJnATquD2FaynQ1Rp7kIXClLIIwTL3/ErnzxWjE3KX7u+Amq6HWhQXIChU0zItMcNr4pugdQKW8aHUYYbum3KNfo4vsya0Wp7szyWvFsC/ETpHTlXtBWE4YLZ9hrxGbicueq85x6yw+PvMLJm1aGqQBzO3tswF9pHqFyXKg355AS3GE4WvDWVkreQj86dhDPVeJ3mjN6//J58d6SRQSoXWJ7LUCGCJjKrFTsDQ==
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=n64qvoZYpJN9OEC17V23CLstYUTlZjpcxuIhKDXYZ+Y=;
 b=aNHNJtd6TwH/i1zGTXAXUg40wT7n934yiEnMmb7Q5Dm8JxM8EgIIfaD5NBM6mJ2hVyi6VOjOhjxcShmKNKriFYb+guq2J6agpdbufQ55HFpoPW8RiIb8Qbxp9qnkUZernUunvqfhHzyHwVulF6YTFyy8sHDnAWEvHhSNEb/30Gk=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <d81178fe-82b8-434e-8610-e0ec71df6a28@amd.com>
Date: Wed, 23 Apr 2025 11:16:49 -0700
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1] misra: add deviation of Rule 5.5
To: xen-devel@lists.xenproject.org
Cc: Federico Serafini <federico.serafini@bugseng.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Nicola Vetrini <nicola.vetrini@bugseng.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>
References: <9e1210f2a9c794d68dcc6b897239b228b141296a.1745427770.git.victorm.lira@amd.com>
 <48c7830931a98b2bf70ef1509f309b262b9e5792.1745427770.git.victorm.lira@amd.com>
Content-Language: en-US
From: "Lira, Victor M" <VictorM.Lira@amd.com>
In-Reply-To: <48c7830931a98b2bf70ef1509f309b262b9e5792.1745427770.git.victorm.lira@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: PH7PR13CA0006.namprd13.prod.outlook.com
 (2603:10b6:510:174::19) To SJ2PR12MB8876.namprd12.prod.outlook.com
 (2603:10b6:a03:539::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ2PR12MB8876:EE_|CY8PR12MB7268:EE_
X-MS-Office365-Filtering-Correlation-Id: 1dc7b2c9-5de3-40e9-e701-08dd8293050b
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?RmlyNjFXTE9PWVJJbHBSTjNRRWFTVGwzSDZyRFNYV0wxdExxc2VZQnVrVHJP?=
 =?utf-8?B?RzYxNStFcTZPZHZFR0s1S0p4ekhrZnI1QVMxa1VKa0VOdDNlUFUxZEJJM2lN?=
 =?utf-8?B?dThENHZrUU9rem96ODJtNkwxSGp5WlN3Z0VNancwa2lIQUt6Uy9CcEMrTHFa?=
 =?utf-8?B?eHg0TEpVM3RNaGg0d0RKY1piSXFYS25PUU5jYk1MRkI1UkZzQUtJZFBIRE1q?=
 =?utf-8?B?WjJhT3hESThKUWZhcUQvMXRZR29uYTUyRDdvb29kMDk0dldmOWRFVlovQU02?=
 =?utf-8?B?cU1CMDRsaUtwRlpNb3hleUNiUG5pS292ZE51V2xuTzVUOWdLZVBBcVR1R3Yx?=
 =?utf-8?B?SlBxNng2ek9Ea1VJcjhlNDRXeXBxd2xNdGh2d05FR2Z5U1RsTFBDbStFVHV6?=
 =?utf-8?B?aHNYOFFNbUdmOVZ0SEVWSUNPUUtzaXgwV0FDZTVYZmNnaHRCMi9QZC9FVld6?=
 =?utf-8?B?bm8wTHJxcHBIUms2dzhLWDFTSDlyd3NjWllwMmorSDJPRk1PLzVGQlAzUDd1?=
 =?utf-8?B?eTZmalRjeUZrMm5hSGFEZFB5UEVFbDlad3FnZENTTkJ4RWRLWnQwTE5GRXdE?=
 =?utf-8?B?V25ZN2gwY203dXZJdHpKK1FUSWRNUWRkdHFPOG5qcnNnR2pPN2t1emVkeG1D?=
 =?utf-8?B?VlcxTmVLN1RJWG1DQUFpNGUwa0FvcGFRcVFyZWgxTHY4T2hIOFhBbmJKUTNW?=
 =?utf-8?B?NmczZlhrOGd2cjQ5Qm1xeVdXMVd6bkFWSnBYZXR5RDZiemp5dDd4WVduK1ZQ?=
 =?utf-8?B?bkUrcGdja2JVcEpHMmhZRUtKeWYxc0VZOWpTem83c2ViTC96YXNmWEZpWXhy?=
 =?utf-8?B?WGRPMkU3Mks5Z1UvUnlTZHdVajlJRnZGaUMyLzRLTmxmREJwUGo0a0syT3cr?=
 =?utf-8?B?RnpSM2V4d1oxdEdEb05SVjlHSHMvS0t5bTRIV1lnR2cyeG9pTUtYY3NaVnB4?=
 =?utf-8?B?aVkyeHFsaHpKY3hIZms2SFhrVGxwMTQ3TnFHclVJTHZzUDF3cjNWYWdBdUZ2?=
 =?utf-8?B?Y2RqY1NPWjFJWVNUVGFNeWc5czlEWWMxMUJwL3hnOUxHVXZ1a2cycnBpd3ZT?=
 =?utf-8?B?Nm9KMWJQZURQUTlTdURvdmdtcDBLT0RUZTU2WE9EUW40ZUVJTyttN2ZWaldR?=
 =?utf-8?B?aVl2SklxMDBXR0FWYXAwYUd1L2VLMXhGY0VMVWVuL3U4MGNKZ3FUdkcxVW1l?=
 =?utf-8?B?WDRhbmFMdlpzZi9lbHJxbEFTSUUvUEF2dENhcXkzWWt5UVNrQk5WU3Z4TXE0?=
 =?utf-8?B?aG5EUi9DZmZsNGlIN29yUnNrSmhOTHJYK3ZiVzZQZTl3OGpNbElRekpuV1VD?=
 =?utf-8?B?Y0J1dkJTUlhrYWx1Mkt0bmlUVnNZZHhaSXI5eDZRZHd5N0pGb2FVK2tBTGRQ?=
 =?utf-8?B?eWFxdmIvb0praFR4TzY4U0xFcWZ3RUdxNUdjNllNT2Fub3ZtQmpPMHVXN2dl?=
 =?utf-8?B?S0lQLzFiem10L0l1aGJVQXJWNjFZOFkrUFJpZmJyVGZPMFJ0TkhDNkoyVHRx?=
 =?utf-8?B?VHVXbGRsN3ZFL05FWkV1ODkzRTlzWVFZSU1RM0ZDN3Z1ampzS0RCd3haNFRk?=
 =?utf-8?B?WDhVRzBKVzNMUVorY1hzeXh4bWJlbitoL1lGRkUrUGRnMTVyaG5nSlM3eUlK?=
 =?utf-8?B?ZlhHeGVEYXJkMWVydzduWDZRZkkwWHRGcHhkQ1NsK004VE1tOVJnRktrWGFM?=
 =?utf-8?B?K0N1TE00SjRjSVRDQ0E1WUxCS25Ubk5Wa1k1WlRGa3I1Y0pRcWpZTEVVS3g4?=
 =?utf-8?B?UkMyQnVoSS80c2p4YlY4ZzVHSVc1YUFnT2V5cGJrSjFZV201RzRON1Y0YW9U?=
 =?utf-8?B?V0NmU0IzSFpYUkl2aFJtY3RIVG1ZUlF3S1dJbFVseEkwakZyTzU2a1lqK1N6?=
 =?utf-8?B?SHBDSGZRUk9GQnpwenBENDZjRXE4WlVzTFhWMnJ4Y3RsNVNBK3VhOUsvRHNU?=
 =?utf-8?Q?WnE9vI3XqUI=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SJ2PR12MB8876.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?Z3BuSjJVOVoxdlRNT0p1TkxvQlRYL04vRG5GM0NYODlxdDNTd3pUOFJqRDJI?=
 =?utf-8?B?a0hTUGdrVlhISEY3WVh1N3pCTUExRDMzYWtvN0l3Wk0wYXpOYTJqeERZMnRN?=
 =?utf-8?B?TkF1N0swZjhUMFJrNnJzNXE4cUFlTld1NTlISVE0UDdUcGRQcEdGZlFsWUZM?=
 =?utf-8?B?cGtqSTJ6ekR4MFRydzBGVW1pUHczMW9UMGFtdHVralU3Q0N3QkhDTHNjMjRY?=
 =?utf-8?B?YmFKeFp0S0pUTDRkdE5GVmVaRk9NemxZYVM3UFk4bzRqZ2J6aUphVkd2UWZI?=
 =?utf-8?B?cit1QXlCRThWU25RdUVrNXlQTmQ3SFFST3FNUzJXeHlvUEpmdzFvZm9JZEdM?=
 =?utf-8?B?eng1Y1JVWkNwSC9EWTFBMDg0bVMzUGphRU56VmNqNitrZkpmSFZyZ2d3bDBU?=
 =?utf-8?B?VERaSktoM296Q1VVa3N0Q0tLOXJjSGVWclk3YXlSUitObzhsZmlJLzZwaCsv?=
 =?utf-8?B?UDQ0V1lFQ2l2RHM3TmlSeVZaN3pRNlpPdHlMdWJEOGROOWVtSnRPR0k2aU5o?=
 =?utf-8?B?Z2RQY0pwd2o1a1FIb0FDb0VzZHk5ZHBKNkVpSzRJaVMxVlZlaWs5Y1M1NTNo?=
 =?utf-8?B?cU1iYkFYTUxZU3ZvenpZcHFzb0dsTUlQVG9JVHVTbjFGOW5xZi9UaitJS2h5?=
 =?utf-8?B?amt4YWxrREpnekpwS3ZONmQzODd2bE5SSDA5VWcyNnc0Z3hlK2VGOVBsRE4v?=
 =?utf-8?B?VDZTbU9kd1dJY2wyWDIwSXBuRklidmx0VGtKcmt2Y1p1eEtBVndSU3dscXp4?=
 =?utf-8?B?M2IrNGFTNTZSQVRNcVB5anlZWDFnVnF1VVJnZnkwRGxuWG9rRm54ampMMy9o?=
 =?utf-8?B?cUhudnJUNW1jN3dYcitLNW80alhtQm9rRUFjb2N0cWdyWDlIUHVGUDNJdExs?=
 =?utf-8?B?blR0SU1pR0tZRmRnMFY0SlJSWjQ0MW0vMWNoK2x3RVFvYUQvaGd6N0IrQTNw?=
 =?utf-8?B?K0tnTEx2dUszdHJCeWtDSGlsZTB5STJtYWlFS1hwdjB1c1ZIRXBQUjZFR0U1?=
 =?utf-8?B?WWsxRDQ4eDk4T3lSYU5sSVVpM3JRSlNLNCt2a2hpQk9PektnK2FFOW5sUDJK?=
 =?utf-8?B?MDYrQUZaVzBKd3VIeDZOZDBTbkM3V0dxcGJlam0zcGs1cFpSZFo1eE9HTkVx?=
 =?utf-8?B?L1hGUGE5ZThIV2lhS210TFB0T3ZoR2NmVi9Ic3ZWN2FUdUpKSFJvaG5BeVU2?=
 =?utf-8?B?bVVuODc2OGl1aVZ6cVM1bUxXSW5USGJvS0hRRzU1TzZJYnBBQ3MrU0VRTW1w?=
 =?utf-8?B?NTZGbTlPa3gvbHZFbk5ZbElhZlJNWkNONkJrZ2wwMHU3RXd5MmtvRWhaVmlX?=
 =?utf-8?B?NVIwZ3F2SDQ1OGhMMEpWU2xyWjBZSGhMNzd2UnMzUldSb21NSUhRanV1QmVN?=
 =?utf-8?B?VXdUWTNjbCt3cG40dFVXSlZta2taSkpyeEhiUitPKzZqSUVlT05xRXZQWHAx?=
 =?utf-8?B?T0NHWU45QnNjOGxkM1NwR2dUdVZ4dEZ3NkdsVnZndkVaQVgwMXJvMmpkVzVw?=
 =?utf-8?B?dHRidDA2UHZTMTdHVkRRMSsxWUQ5SG5PSlVqbXZMNDN4Z05xbHhBZWE0eHo5?=
 =?utf-8?B?aW5QRXBISGFIRm03NGk4ODlmMm9NL21jTS9oenl1U0M3T0xUVWpRRmZFWnVw?=
 =?utf-8?B?bU1qRzJtcExSWUxKRTZ6MndMWWRaQkFxeHdrbHp6VVRqcVRUUFdKNmduMitu?=
 =?utf-8?B?Wm9TV2ZiSVV2NWpDNFkxRXBjUUwreHdSdWU1SlNMcktYenVLUXhaMHFLVnRh?=
 =?utf-8?B?aFd4d0lSWUNScURpRG0zV1NVL2ZFNitOb0dHUGRkdGZnUUlybDMySXB4dDlr?=
 =?utf-8?B?Ky9qcGZDNVV4UDNXOFovZVpHK01QTDROT3lmQkU2Uk5GZ0hjL2Y3TDBKaFl6?=
 =?utf-8?B?b1ArTWpBelJ1SS9vSzBKTU1kUmlveVpNTGJWeW1CR3RMU1JXZ2NlbGM2aUZF?=
 =?utf-8?B?L0pkZ2JjdDhiUEFGYmVXczlCUkVCbndYL24vcjdXNzNlMjQ4Qjg5TzMyWWZs?=
 =?utf-8?B?cFFTdkF3UUx4QXYwTDJCVmoyemMrYWtqdzVlbVQzK1U4TG9TaG1BUUVUbUZY?=
 =?utf-8?B?RTlkdXV5cTFMdzM1Z0FhZFpHOXVrWm9qUlBoU1lHYlBnWFZ3cUFJVDRyZGdw?=
 =?utf-8?Q?ySmYa69MHriWOa771SQ2D3vf4?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 1dc7b2c9-5de3-40e9-e701-08dd8293050b
X-MS-Exchange-CrossTenant-AuthSource: SJ2PR12MB8876.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Apr 2025 18:16:51.4473
 (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: igwt9q1SbusFZr/TxfLN1LiE7G+2T2Lkd9FP/VEYrbQBf73BEuihOwrfqRH2zaaxVC3J2Ne86N0RnPIGiuY60A==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR12MB7268

Continuing a discussion from before:

On 4/22/2025 11:44 PM, Jan Beulich wrote:
> Caution: This message originated from an External Source. Use proper caution when opening attachments, clicking links, or responding.
>
>
> On 23.04.2025 01:43, victorm.lira@amd.com wrote:
>>          memmove.
>>        - Tagged as `deliberate` for ECLAIR.
>>
>> +   * - R5.5
>> +     - Clashes between function-like macros and function names are
>> +       deliberate
> They may or may not be deliberate, depending on context. I don't think it's a
> good move to deviate this more widely than necessary. If I get the expression
> above (in deviations.ecl) right, even
>
> void func1(int);
> void func2(int);
>
> #define func1() func2(0)
> #define func2() func1(0)
>
> would be deviated, which I don't think we want. Especially when, in a less
> contrived scenario, the clash may not easily be visible.
OK, I see the issue for different functions. Does it make sense to say 
it's deliberate when it's the same identifier?

	void func1(int);
	...
	#define func1() func1(0)

Could this be deviated?


Victor



From xen-devel-bounces@lists.xenproject.org Wed Apr 23 18:34:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 18:34:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.965147.1355767 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7evd-0001wr-Hi; Wed, 23 Apr 2025 18:34:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 965147.1355767; Wed, 23 Apr 2025 18:34: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 1u7evd-0001wk-Ew; Wed, 23 Apr 2025 18:34:37 +0000
Received: by outflank-mailman (input) for mailman id 965147;
 Wed, 23 Apr 2025 18:34:36 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ZXFY=XJ=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1u7evb-0001we-TD
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 18:34:36 +0000
Received: from NAM11-CO1-obe.outbound.protection.outlook.com
 (mail-co1nam11on2061a.outbound.protection.outlook.com
 [2a01:111:f403:2416::61a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9909a5ea-2071-11f0-9eb0-5ba50f476ded;
 Wed, 23 Apr 2025 20:34:33 +0200 (CEST)
Received: from SJ0PR05CA0100.namprd05.prod.outlook.com (2603:10b6:a03:334::15)
 by MN0PR12MB6341.namprd12.prod.outlook.com (2603:10b6:208:3c2::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.36; Wed, 23 Apr
 2025 18:34:28 +0000
Received: from SJ1PEPF0000231A.namprd03.prod.outlook.com
 (2603:10b6:a03:334:cafe::65) by SJ0PR05CA0100.outlook.office365.com
 (2603:10b6:a03:334::15) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8678.13 via Frontend Transport; Wed,
 23 Apr 2025 18:34:28 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ1PEPF0000231A.mail.protection.outlook.com (10.167.242.231) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Wed, 23 Apr 2025 18:34: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; Wed, 23 Apr
 2025 13:34:27 -0500
Received: from [172.20.75.239] (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, 23 Apr 2025 13:34:26 -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: 9909a5ea-2071-11f0-9eb0-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ivI2Xc7eUgLD3vLw74K+tKVB2tGyFlVE6feN41G3DsFut7X5Zrr29pKbZ2+IwKYMluozkd/AU5pGBT3H/GuYJTsy9l5SxcgP3Wqs1nwkQ3C2EMRlAtzIJtYRY/X4ikNJ36laYFCn4h3uaAEirJ+FOQ80fRUA4MO+sUNucytzTB7xr9qpIDPS18ztDpK1IZ+AalGSRxbSFloMXRyahYShfARBiWJ6K79wGmk5pMz14wFtm0UywtYZ/7tm8YN6YhRc6LmvZ7SMN/TIQOhnpl6x4Kqqy3qayV+JLCt6fo0BWnC4orbyInp5bUjW6bwlWRJhijgDd0iE70e9ii2+g+rKng==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=nP2ltlmkeyFZZ5QDbZe7NGKMLZXS335p9/4GiOQ5ybY=;
 b=lddctWHSSywrKxw5rjW8KC6kUPop+n3GppZ3Thv5vIsc3Juq7FxxIjKc9+V2OxVUN2TkI5+24PHb0WETI78Q8gZA1hDd4XiU6/ZW86TPG/OXu3PcHnLJvUq1p04tMBzevn3WKynHBrN2M/cXrLdpJNyy8NWqq+AKl2G8bAI1jd3dHicrUBztIeKLawT+YY2B4Hrxiij8hIYCj+bzGq/xU2Nren3/gyw1yU8CuofaivdJbS2MrJpnmBTGqk8OXg8QyFxsRsPlZ4eZT8dsvjhppwj0EBBt3fsjNJb7SxhmQqnP9aG2bAdYtfv2mE14VOnGiQGoO9v3aiYMhFddHO71XA==
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=nP2ltlmkeyFZZ5QDbZe7NGKMLZXS335p9/4GiOQ5ybY=;
 b=1rDZuh0yrGg+4JmLHzCAzXfP1RY9QCXATsNhbQ/Q4PLAw2wYvfcBWVeXZCOh5ElmhGu7iGCGLY0H7HwkXFuEqbHhGi6qmSUgi4HrkOBokWSocyfAaxpQKFOre2kG4lWS2sSNVjSmmvYpKV4folPmWgtnEFuyIxSv/B8LZeSjZ5Y=
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: <3faee6ec-803d-4622-a729-38047c796c77@amd.com>
Date: Wed, 23 Apr 2025 14:34:26 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 3/4] xen/arm: add support for PCI child bus
To: Mykyta Poturai <Mykyta_Poturai@epam.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
CC: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@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>
References: <cover.1745402473.git.mykyta_poturai@epam.com>
 <79bbb6705638445526bbd1fa299b7bfd0d087462.1745402473.git.mykyta_poturai@epam.com>
Content-Language: en-US
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
In-Reply-To: <79bbb6705638445526bbd1fa299b7bfd0d087462.1745402473.git.mykyta_poturai@epam.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: SJ1PEPF0000231A:EE_|MN0PR12MB6341:EE_
X-MS-Office365-Filtering-Correlation-Id: 2bf8b93e-c461-42fb-660a-08dd82957b0c
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|36860700013|1800799024|82310400026|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?ZmVZQTlwcWRKQUFJUGlHalVXTk9OQ3JtaHljZEVRTkNPYlZ3V3FDY0o0d2hV?=
 =?utf-8?B?MnBwVWw3RWxGZFVydVc2cHRia0x4T0pJcU1TcnpuUy80SnJaYStxQlQxZjZx?=
 =?utf-8?B?bVJzQUdRRUhqUStpeXRicEpyTUtWTk1HQjVZeXVwVC9jcVlLVTBwRXZVN1ZK?=
 =?utf-8?B?MkxQZ3BLVEt1Z2R1RUJ5Q2V1eG9RVTlvZGNrQWwrQmFWQ1pZTDZ3SXdVTGVZ?=
 =?utf-8?B?aS9wUTdaUUVqcHFPdzBaaFYrUnRrbG9qbG9pek5zMU45UXFIeElYUE5ka2Rv?=
 =?utf-8?B?V05Hd29ta3MzYjF0L1d4eVliYmdKaHB4N0tUeC9PMy8zMFNWeUJSaVZaMG5H?=
 =?utf-8?B?RmM1UVNaVWtycDM1WFgweHoyZXR1Y2szeXZHcE96VE1sQ2ZxckJ1d2tyaUo3?=
 =?utf-8?B?eE4yYjl1ampRdHpFWFNrekFIRjQyNkhUZlN5MHZQekhnQnc5bElHeW9sQW9K?=
 =?utf-8?B?TEFiSU1BUXhSTWJVMXZMMnNFK1lsZUxDYTlDSHZQdmI5dFprZEFTQ2FSL0w3?=
 =?utf-8?B?bitPMlR5VmEweUh5MmFPdENOL2VBS2kvU0Q1WEhXS2tlamhYM2xVY0lBU3J4?=
 =?utf-8?B?S1E2Y0phT0FmUUZDSzNadi9yVzVwUU1xYnpGZFl6aFQyKytCUWdmbTJrZ05S?=
 =?utf-8?B?Smk2Q1g3am9IcGNSWEE1YTJqSWtLOWRCQkEybUZlMEJsYkczWVdqVEYrVVVx?=
 =?utf-8?B?bS9TbTF1cjRyZXpLb2VLZC9JeXVCNFJ0UFgwODlOT3JjZkV5Znc4UjZYYXhn?=
 =?utf-8?B?bjF1N0F6Ukk0RzZ0WWtWMkdzUUF6U0xUMlZabEZ3dzFJN0NZYldwUnpjZHM5?=
 =?utf-8?B?ejFIMGw2TERJdTV1Y1c5ck1YYTFYdDdCWldnS0NMTlZNNGZnd3pvZS84WDZa?=
 =?utf-8?B?NTV1eDJ2cGNZOFJpeUU1NmFnY2xzemlrS0dSUXp2dWtIcVgvV0w4L3pVME5t?=
 =?utf-8?B?Sk1DelJvM3h1UTliUHk0cWRaWmR3ZXUvV1BKSnp3SXlMTHFVUVJSNVpsc3lZ?=
 =?utf-8?B?MU9kZlFrU00zMERpRUdWUkdKdmE5dUxWSVJrcW03VDVscGJHV1QvRUpCV3RH?=
 =?utf-8?B?QlNZaWZCL2ZPUEdlcGxFMHRqQXMwdnY1eEg4M0xtMWlVd1drTEtuMkx3OVJ3?=
 =?utf-8?B?dVV0N1A1ai9ubVQ5YnNUNFBLczV4SmUwdk9QbUkydVVEQ25oMXZSVjhhYW8z?=
 =?utf-8?B?MHowTWtoZjQ3TUJkZHliQzY2QWpFZWNNRnZPRkIwL0lsUEpyZVVva2dMVUEx?=
 =?utf-8?B?ZUQ2Sm9TaWJMTzFWM2s2Ui95cHZOdEV5blMxUXJjYzZZUncvb0ZwaHM0d1A3?=
 =?utf-8?B?RFlIWHZYTU1MSDdZZG1sRWZhZjJiU0lSUUo1bDZaejlaTmNIVUFqcVBVVEtj?=
 =?utf-8?B?aEVpcmp3UnhrdGpyQnl1dHN2THZORnU1YkZSM1NuSFdXalREb1pKczRQcFpE?=
 =?utf-8?B?QUFacFVjMmZ5emhvclVEbS9wKzZaMmlVc0pSTzhQUzYrVTRGemw2dkhJVkFJ?=
 =?utf-8?B?TFoxamRjT2ZhelcyUHl1cytNLys5N0lZUXI0cHZwdk8va2JsVXYvNEtwZVBW?=
 =?utf-8?B?MXpNY0pOMTMxNFE5Njg2NDhVUnhrbGZMamljSHl6c2RKSldOb0xleEJsQ2pY?=
 =?utf-8?B?cnhpU2xQTmpmYkpLa2o4YzN5Qi85RmxKSUtnZURWUW9oL1FxV2RDVlZNek1I?=
 =?utf-8?B?SWRvdVFKc1JCYUFjc1l2ZWQ3ZVdzRHhyVjR4YUYyWXdsMGhGa3dEN1Bwb2tY?=
 =?utf-8?B?MVVzbzNkcWljR1VVZlk3OE9BRHU2SUdxOE9pTkhZbDhEbWZTVTlyejNBYkFh?=
 =?utf-8?B?dlFaTWRKQW4ySTlDYXlxU2FvbjRvbG0yaERxMVJkdVN4YmlQSTNvNTRSOSt5?=
 =?utf-8?B?a0ZYYWU0VlZJS3Vnd1YxUEsrOHRDSHlVaFZBRUxvMHVzSHlyKzhwM05RZ2Nn?=
 =?utf-8?B?SGlqVWpETVpkcDBFZ1hoL2VRMStheDBCeVUwMmgySHJsa1MvOVhuNzhVMFhi?=
 =?utf-8?B?ckpqTTdHQ0N3PT0=?=
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)(1800799024)(82310400026)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Apr 2025 18:34:28.1220
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 2bf8b93e-c461-42fb-660a-08dd82957b0c
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:
	SJ1PEPF0000231A.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN0PR12MB6341

On 4/23/25 07:08, Mykyta Poturai wrote:
> From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
> 
> PCI host bridges often have different ways to access the root and child
> bus configuration spaces. One of the examples is Designware's host bridge
> and its multiple clones [1].
> 
> Linux kernel implements this by instantiating a child bus when device
> drivers provide not only the usual pci_ops to access ECAM space (this is
> the case for the generic host bridge), but also means to access the child
> bus which has a dedicated configuration space and own implementation for
> accessing the bus, e.g. child_ops.
> 
> For Xen it is not feasible to fully implement PCI bus infrastructure as
> Linux kernel does, but still child bus can be supported.
> 
> Add support for the PCI child bus which includes the following changes:
> - introduce bus mapping functions depending on SBDF
> - assign bus start and end for the child bus and re-configure the same for
>   the parent (root) bus
> - make pci_find_host_bridge be aware of multiple busses behind the same bridge
> - update pci_host_bridge_mappings, so it also doesn't map to guest the memory
>   spaces belonging to the child bus
> - make pci_host_common_probe accept one more pci_ops structure for the child bus
> - install MMIO handlers for the child bus

Nit: perhaps clarify that they are only installed for the hardware domain

> - re-work vpci_mmio_{write|read} with parent and child approach in mind
> 
> [1] https://elixir.bootlin.com/linux/v5.15/source/drivers/pci/controller/dwc
> 
> Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
> Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
> ---
> v3->v4:
> * remove changes to pci_ecam_map_bus
> * make map_bus inline
> * fix logic error in pci_host_bridge_mappings
> 
> v2->v3:
> * no change
> 
> v1->v2:
> * fixed compilation issues
> ---
>  xen/arch/arm/include/asm/pci.h      |  9 ++-
>  xen/arch/arm/pci/pci-access.c       | 37 +++++++++++--
>  xen/arch/arm/pci/pci-host-common.c  | 86 +++++++++++++++++++++++------
>  xen/arch/arm/pci/pci-host-generic.c |  2 +-
>  xen/arch/arm/pci/pci-host-zynqmp.c  |  2 +-
>  xen/arch/arm/vpci.c                 | 83 ++++++++++++++++++++++------
>  6 files changed, 177 insertions(+), 42 deletions(-)
> 
> diff --git a/xen/arch/arm/include/asm/pci.h b/xen/arch/arm/include/asm/pci.h
> index 3d2ca9b5b0..94ec63f3c8 100644
> --- a/xen/arch/arm/include/asm/pci.h
> +++ b/xen/arch/arm/include/asm/pci.h
> @@ -67,6 +67,9 @@ struct pci_host_bridge {
>      uint16_t segment;                /* Segment number */
>      struct pci_config_window* cfg;   /* Pointer to the bridge config window */
>      const struct pci_ops *ops;
> +    /* Child bus */
> +    struct pci_config_window *child_cfg;
> +    const struct pci_ops *child_ops;
>      void *priv;                      /* Private data of the bridge. */
>  };
>  
> @@ -96,8 +99,10 @@ struct pci_ecam_ops {
>  /* Default ECAM ops */
>  extern const struct pci_ecam_ops pci_generic_ecam_ops;
>  
> -struct pci_host_bridge *pci_host_common_probe(struct dt_device_node *dev,
> -                                              const struct pci_ecam_ops *ops);
> +struct pci_host_bridge *
> +pci_host_common_probe(struct dt_device_node *dev,
> +                      const struct pci_ecam_ops *ops,
> +                      const struct pci_ecam_ops *child_ops);
>  int pci_generic_config_read(struct pci_host_bridge *bridge, pci_sbdf_t sbdf,
>                              uint32_t reg, uint32_t len, uint32_t *value);
>  int pci_generic_config_write(struct pci_host_bridge *bridge, pci_sbdf_t sbdf,
> diff --git a/xen/arch/arm/pci/pci-access.c b/xen/arch/arm/pci/pci-access.c
> index 9f9aac43d7..91271973fb 100644
> --- a/xen/arch/arm/pci/pci-access.c
> +++ b/xen/arch/arm/pci/pci-access.c
> @@ -18,10 +18,31 @@
>  #define INVALID_VALUE (~0U)
>  #define PCI_ERR_VALUE(len) GENMASK(0, len * 8)
>  
> +static const struct pci_ops *get_ops(struct pci_host_bridge *bridge,
> +                                     pci_sbdf_t sbdf)
> +{
> +    if ( bridge->child_ops )
> +    {
> +        struct pci_config_window *cfg = bridge->child_cfg;
> +
> +        if ( (sbdf.bus >= cfg->busn_start) && (sbdf.bus <= cfg->busn_end) )
> +            return bridge->child_ops;
> +    }
> +    return bridge->ops;
> +}
> +
> +static inline void __iomem *map_bus(struct pci_host_bridge *bridge, pci_sbdf_t sbdf,
> +                             uint32_t reg)
> +{
> +    const struct pci_ops *ops = get_ops(bridge, sbdf);
> +
> +    return ops->map_bus(bridge, sbdf, reg);
> +}
> +
>  int pci_generic_config_read(struct pci_host_bridge *bridge, pci_sbdf_t sbdf,
>                              uint32_t reg, uint32_t len, uint32_t *value)
>  {
> -    void __iomem *addr = bridge->ops->map_bus(bridge, sbdf, reg);
> +    void __iomem *addr = map_bus(bridge, sbdf, reg);
>  
>      if ( !addr )
>      {
> @@ -50,7 +71,7 @@ int pci_generic_config_read(struct pci_host_bridge *bridge, pci_sbdf_t sbdf,
>  int pci_generic_config_write(struct pci_host_bridge *bridge, pci_sbdf_t sbdf,
>                               uint32_t reg, uint32_t len, uint32_t value)
>  {
> -    void __iomem *addr = bridge->ops->map_bus(bridge, sbdf, reg);
> +    void __iomem *addr = map_bus(bridge, sbdf, reg);
>  
>      if ( !addr )
>          return -ENODEV;
> @@ -78,14 +99,16 @@ static uint32_t pci_config_read(pci_sbdf_t sbdf, unsigned int reg,
>  {
>      uint32_t val = PCI_ERR_VALUE(len);
>      struct pci_host_bridge *bridge = pci_find_host_bridge(sbdf.seg, sbdf.bus);
> +    const struct pci_ops *ops;
>  
>      if ( unlikely(!bridge) )
>          return val;
>  
> -    if ( unlikely(!bridge->ops->read) )
> +    ops = get_ops(bridge, sbdf);
> +    if ( unlikely(!ops->read) )
>          return val;
>  
> -    bridge->ops->read(bridge, sbdf, reg, len, &val);
> +    ops->read(bridge, sbdf, reg, len, &val);
>  
>      return val;
>  }
> @@ -94,14 +117,16 @@ static void pci_config_write(pci_sbdf_t sbdf, unsigned int reg,
>                               unsigned int len, uint32_t val)
>  {
>      struct pci_host_bridge *bridge = pci_find_host_bridge(sbdf.seg, sbdf.bus);
> +    const struct pci_ops *ops;
>  
>      if ( unlikely(!bridge) )
>          return;
>  
> -    if ( unlikely(!bridge->ops->write) )
> +    ops = get_ops(bridge, sbdf);
> +    if ( unlikely(!ops->write) )
>          return;
>  
> -    bridge->ops->write(bridge, sbdf, reg, len, val);
> +    ops->write(bridge, sbdf, reg, len, val);
>  }
>  
>  /*
> diff --git a/xen/arch/arm/pci/pci-host-common.c b/xen/arch/arm/pci/pci-host-common.c
> index 53953d4895..1d0dc1b4bd 100644
> --- a/xen/arch/arm/pci/pci-host-common.c
> +++ b/xen/arch/arm/pci/pci-host-common.c
> @@ -57,17 +57,12 @@ static void pci_ecam_free(struct pci_config_window *cfg)
>      xfree(cfg);
>  }
>  
> -static struct pci_config_window * __init
> -gen_pci_init(struct dt_device_node *dev, const struct pci_ecam_ops *ops)
> +static void __init gen_pci_init_bus_range(struct dt_device_node *dev,
> +                                          struct pci_host_bridge *bridge,
> +                                          struct pci_config_window *cfg)
>  {
> -    int err, cfg_reg_idx;
>      u32 bus_range[2];
> -    paddr_t addr, size;
> -    struct pci_config_window *cfg;
> -
> -    cfg = xzalloc(struct pci_config_window);
> -    if ( !cfg )
> -        return NULL;
> +    int err;
>  
>      err = dt_property_read_u32_array(dev, "bus-range", bus_range,
>                                       ARRAY_SIZE(bus_range));
> @@ -82,6 +77,36 @@ gen_pci_init(struct dt_device_node *dev, const struct pci_ecam_ops *ops)
>          if ( cfg->busn_end > cfg->busn_start + 0xff )
>              cfg->busn_end = cfg->busn_start + 0xff;
>      }
> +}
> +
> +static void __init gen_pci_init_bus_range_child(struct dt_device_node *dev,
> +                                                struct pci_host_bridge *bridge,
> +                                                struct pci_config_window *cfg)
> +{
> +    cfg->busn_start = bridge->cfg->busn_start + 1;

I read this as "the child bus number starts at the parent bus number
plus one". I'm not sure we want to hardcode this type of information in
a common file. Perhaps it would be better suited in pci-designware.c or
pci-host-rcar4.c. Could you pass the bus range init function pointer via
struct pci_ops?

> +    cfg->busn_end = bridge->cfg->busn_end;
> +    bridge->cfg->busn_end = bridge->cfg->busn_start;
> +
> +    printk(XENLOG_INFO "Root bus end updated: [bus %x-%x]\n",
> +           bridge->cfg->busn_start, bridge->cfg->busn_end);
> +}
> +
> +static struct pci_config_window *__init
> +gen_pci_init(struct dt_device_node *dev, struct pci_host_bridge *bridge,
> +             const struct pci_ecam_ops *ops,
> +             void (*init_bus_range)(struct dt_device_node *dev,
> +                                    struct pci_host_bridge *bridge,
> +                                    struct pci_config_window *cfg))
> +{
> +    int err, cfg_reg_idx;
> +    paddr_t addr, size;
> +    struct pci_config_window *cfg;
> +
> +    cfg = xzalloc(struct pci_config_window);
> +    if ( !cfg )
> +        return NULL;
> +
> +    init_bus_range(dev, bridge, cfg);
>  
>      if ( ops->cfg_reg_index )
>      {
> @@ -208,8 +233,10 @@ static int pci_bus_find_domain_nr(struct dt_device_node *dev)
>      return domain;
>  }
>  
> -struct pci_host_bridge *pci_host_common_probe(struct dt_device_node *dev,
> -                                              const struct pci_ecam_ops *ops)
> +struct pci_host_bridge *
> +pci_host_common_probe(struct dt_device_node *dev,
> +                      const struct pci_ecam_ops *ops,
> +                      const struct pci_ecam_ops *child_ops)
>  {
>      struct pci_host_bridge *bridge;
>      struct pci_config_window *cfg;
> @@ -224,7 +251,7 @@ struct pci_host_bridge *pci_host_common_probe(struct dt_device_node *dev,
>          return ERR_PTR(-ENOMEM);
>  
>      /* Parse and map our Configuration Space windows */
> -    cfg = gen_pci_init(dev, ops);
> +    cfg = gen_pci_init(dev, bridge, ops, gen_pci_init_bus_range);
>      if ( !cfg )
>      {
>          err = -ENOMEM;
> @@ -242,10 +269,29 @@ struct pci_host_bridge *pci_host_common_probe(struct dt_device_node *dev,
>          BUG();
>      }
>      bridge->segment = domain;
> +
> +    if ( child_ops )
> +    {
> +        /* Parse and map child's Configuration Space windows */
> +        cfg = gen_pci_init(dev, bridge, child_ops,
> +                           gen_pci_init_bus_range_child);
> +        if ( !cfg )
> +        {
> +            err = -ENOMEM;
> +            goto err_child;
> +        }
> +
> +        bridge->child_cfg = cfg;
> +        bridge->child_ops = &child_ops->pci_ops;
> +    }
> +
>      pci_add_host_bridge(bridge);
>  
>      return bridge;
>  
> +err_child:
> +    xfree(bridge->cfg);
> +
>  err_exit:
>      xfree(bridge);
>  
> @@ -280,9 +326,12 @@ struct pci_host_bridge *pci_find_host_bridge(uint16_t segment, uint8_t bus)
>      {
>          if ( bridge->segment != segment )
>              continue;
> -        if ( (bus < bridge->cfg->busn_start) || (bus > bridge->cfg->busn_end) )
> -            continue;
> -        return bridge;
> +        if ( bridge->child_cfg && (bus >= bridge->child_cfg->busn_start) &&
> +             (bus <= bridge->child_cfg->busn_end) )
> +            return bridge;
> +        if ( (bus >= bridge->cfg->busn_start) &&
> +             (bus <= bridge->cfg->busn_end) )
> +            return bridge;
>      }
>  
>      return NULL;
> @@ -348,6 +397,7 @@ int __init pci_host_bridge_mappings(struct domain *d)
>      {
>          const struct dt_device_node *dev = bridge->dt_node;
>          unsigned int i;
> +        bool need_mapping;
>  
>          for ( i = 0; i < dt_number_of_address(dev); i++ )
>          {
> @@ -363,7 +413,11 @@ int __init pci_host_bridge_mappings(struct domain *d)
>                  return err;
>              }
>  
> -            if ( bridge->ops->need_p2m_hwdom_mapping(d, bridge, addr) )
> +            need_mapping = bridge->ops->need_p2m_hwdom_mapping(d, bridge, addr);
> +            if ( need_mapping || bridge->child_ops )
> +                need_mapping =
> +                    bridge->child_ops->need_p2m_hwdom_mapping(d, bridge, addr);

You're dereferencing child_ops without NULL-checking it.

> +            if ( need_mapping )
>              {
>                  err = map_range_to_domain(dev, addr, size, &mr_data);
>                  if ( err )
> diff --git a/xen/arch/arm/pci/pci-host-generic.c b/xen/arch/arm/pci/pci-host-generic.c
> index a6ffbda174..47cf144831 100644
> --- a/xen/arch/arm/pci/pci-host-generic.c
> +++ b/xen/arch/arm/pci/pci-host-generic.c
> @@ -29,7 +29,7 @@ static const struct dt_device_match __initconstrel gen_pci_dt_match[] =
>  static int __init pci_host_generic_probe(struct dt_device_node *dev,
>                                           const void *data)
>  {
> -    return PTR_RET(pci_host_common_probe(dev, &pci_generic_ecam_ops));
> +    return PTR_RET(pci_host_common_probe(dev, &pci_generic_ecam_ops, NULL));
>  }
>  
>  DT_DEVICE_START(pci_gen, "PCI HOST GENERIC", DEVICE_PCI_HOSTBRIDGE)
> diff --git a/xen/arch/arm/pci/pci-host-zynqmp.c b/xen/arch/arm/pci/pci-host-zynqmp.c
> index a38f2e019e..75d1235aaf 100644
> --- a/xen/arch/arm/pci/pci-host-zynqmp.c
> +++ b/xen/arch/arm/pci/pci-host-zynqmp.c
> @@ -47,7 +47,7 @@ static const struct dt_device_match __initconstrel nwl_pcie_dt_match[] =
>  static int __init pci_host_generic_probe(struct dt_device_node *dev,
>                                           const void *data)
>  {
> -    return PTR_RET(pci_host_common_probe(dev, &nwl_pcie_ops));
> +    return PTR_RET(pci_host_common_probe(dev, &nwl_pcie_ops, NULL));
>  }
>  
>  DT_DEVICE_START(pci_gen, "PCI HOST ZYNQMP", DEVICE_PCI_HOSTBRIDGE)
> diff --git a/xen/arch/arm/vpci.c b/xen/arch/arm/vpci.c
> index b63a356bb4..468aee1db7 100644
> --- a/xen/arch/arm/vpci.c
> +++ b/xen/arch/arm/vpci.c
> @@ -8,15 +8,17 @@
>  #include <asm/mmio.h>
>  
>  static pci_sbdf_t vpci_sbdf_from_gpa(const struct pci_host_bridge *bridge,
> -                                     paddr_t gpa)
> +                                     paddr_t gpa, bool use_root)
>  {
>      pci_sbdf_t sbdf;
>  
>      if ( bridge )
>      {
> -        sbdf.sbdf = VPCI_ECAM_BDF(gpa - bridge->cfg->phys_addr);
> +        const struct pci_config_window *cfg = use_root ? bridge->cfg
> +                                                       : bridge->child_cfg;
> +        sbdf.sbdf = VPCI_ECAM_BDF(gpa - cfg->phys_addr);
>          sbdf.seg = bridge->segment;
> -        sbdf.bus += bridge->cfg->busn_start;
> +        sbdf.bus += cfg->busn_start;
>      }
>      else
>          sbdf.sbdf = VPCI_ECAM_BDF(gpa - GUEST_VPCI_ECAM_BASE);
> @@ -24,11 +26,9 @@ static pci_sbdf_t vpci_sbdf_from_gpa(const struct pci_host_bridge *bridge,
>      return sbdf;
>  }
>  
> -static int vpci_mmio_read(struct vcpu *v, mmio_info_t *info,
> -                          register_t *r, void *p)
> +static int vpci_mmio_read(struct vcpu *v, mmio_info_t *info, register_t *r,
> +                          pci_sbdf_t sbdf)
>  {
> -    struct pci_host_bridge *bridge = p;
> -    pci_sbdf_t sbdf = vpci_sbdf_from_gpa(bridge, info->gpa);
>      const unsigned int access_size = (1U << info->dabt.size) * 8;
>      const register_t invalid = GENMASK_ULL(access_size - 1, 0);
>      /* data is needed to prevent a pointer cast on 32bit */
> @@ -46,31 +46,78 @@ static int vpci_mmio_read(struct vcpu *v, mmio_info_t *info,
>      return 0;
>  }
>  
> -static int vpci_mmio_write(struct vcpu *v, mmio_info_t *info,
> -                           register_t r, void *p)
> +static int vpci_mmio_read_root(struct vcpu *v, mmio_info_t *info, register_t *r,
> +                               void *p)
> +{
> +    struct pci_host_bridge *bridge = p;
> +    pci_sbdf_t sbdf = vpci_sbdf_from_gpa(bridge, info->gpa, true);
> +
> +    return vpci_mmio_read(v, info, r, sbdf);
> +}
> +
> +static int vpci_mmio_read_child(struct vcpu *v, mmio_info_t *info,
> +                                register_t *r, void *p)
>  {
>      struct pci_host_bridge *bridge = p;
> -    pci_sbdf_t sbdf = vpci_sbdf_from_gpa(bridge, info->gpa);
> +    pci_sbdf_t sbdf = vpci_sbdf_from_gpa(bridge, info->gpa, false);
> +
> +    return vpci_mmio_read(v, info, r, sbdf);
> +}
>  
> +static int vpci_mmio_write(struct vcpu *v, mmio_info_t *info, register_t r,
> +                           pci_sbdf_t sbdf)
> +{
>      return vpci_ecam_write(sbdf, ECAM_REG_OFFSET(info->gpa),
>                             1U << info->dabt.size, r);
>  }
>  
> +static int vpci_mmio_write_root(struct vcpu *v, mmio_info_t *info, register_t r,
> +                                void *p)
> +{
> +    struct pci_host_bridge *bridge = p;
> +    pci_sbdf_t sbdf = vpci_sbdf_from_gpa(bridge, info->gpa, true);
> +
> +    return vpci_mmio_write(v, info, r, sbdf);
> +}
> +
> +static int vpci_mmio_write_child(struct vcpu *v, mmio_info_t *info,
> +                                 register_t r, void *p)
> +{
> +    struct pci_host_bridge *bridge = p;
> +    pci_sbdf_t sbdf = vpci_sbdf_from_gpa(bridge, info->gpa, false);
> +
> +    return vpci_mmio_write(v, info, r, sbdf);
> +}
> +
>  static const struct mmio_handler_ops vpci_mmio_handler = {
> -    .read  = vpci_mmio_read,
> -    .write = vpci_mmio_write,
> +    .read = vpci_mmio_read_root,
> +    .write = vpci_mmio_write_root,
> +};
> +
> +static const struct mmio_handler_ops vpci_mmio_handler_child = {
> +    .read = vpci_mmio_read_child,
> +    .write = vpci_mmio_write_child,
>  };
>  
>  static int vpci_setup_mmio_handler_cb(struct domain *d,
>                                        struct pci_host_bridge *bridge)
>  {
>      struct pci_config_window *cfg = bridge->cfg;
> +    int count = 1;
>  
>      register_mmio_handler(d, &vpci_mmio_handler,
>                            cfg->phys_addr, cfg->size, bridge);
>  
> -    /* We have registered a single MMIO handler. */
> -    return 1;
> +    if ( bridge->child_ops )
> +    {
> +        struct pci_config_window *cfg = bridge->child_cfg;

This variable shadows the cfg variable of the same name at the top of
the function.

> +
> +        register_mmio_handler(d, &vpci_mmio_handler_child, cfg->phys_addr,
> +                              cfg->size, bridge);
> +        count++;
> +    }
> +
> +    return count;
>  }
>  
>  int domain_vpci_init(struct domain *d)
> @@ -101,8 +148,12 @@ int domain_vpci_init(struct domain *d)
>  static int vpci_get_num_handlers_cb(struct domain *d,
>                                      struct pci_host_bridge *bridge)
>  {
> -    /* Each bridge has a single MMIO handler for the configuration space. */
> -    return 1;
> +    int count = 1;
> +
> +    if ( bridge->child_cfg )
> +        count++;
> +
> +    return count;
>  }
>  
>  unsigned int domain_vpci_get_num_mmio_handlers(struct domain *d)



From xen-devel-bounces@lists.xenproject.org Wed Apr 23 18:46:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 18:46:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.965170.1355810 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7f6s-0004bO-0l; Wed, 23 Apr 2025 18:46:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 965170.1355810; Wed, 23 Apr 2025 18:46: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 1u7f6r-0004bH-U4; Wed, 23 Apr 2025 18:46:13 +0000
Received: by outflank-mailman (input) for mailman id 965170;
 Wed, 23 Apr 2025 18:46: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=Oonq=XJ=3mdeb.com=sergii.dmytruk@srs-se1.protection.inumbo.net>)
 id 1u7f6p-0004b7-Gp
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 18:46:12 +0000
Received: from 5.mo581.mail-out.ovh.net (5.mo581.mail-out.ovh.net
 [178.32.120.239]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 38b07fc8-2073-11f0-9eb0-5ba50f476ded;
 Wed, 23 Apr 2025 20:46:09 +0200 (CEST)
Received: from director2.ghost.mail-out.ovh.net (unknown [10.109.176.211])
 by mo581.mail-out.ovh.net (Postfix) with ESMTP id 4ZjSjr6FLJz1PNv
 for <xen-devel@lists.xenproject.org>; Wed, 23 Apr 2025 18:46:08 +0000 (UTC)
Received: from ghost-submission-5b5ff79f4f-c2b8g (unknown [10.108.42.33])
 by director2.ghost.mail-out.ovh.net (Postfix) with ESMTPS id 16BDE1FE6A;
 Wed, 23 Apr 2025 18:46:06 +0000 (UTC)
Received: from 3mdeb.com ([37.59.142.97])
 by ghost-submission-5b5ff79f4f-c2b8g with ESMTPSA
 id kSZOKG41CWhTAAcAOFddZg
 (envelope-from <sergii.dmytruk@3mdeb.com>); Wed, 23 Apr 2025 18:46: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: 38b07fc8-2073-11f0-9eb0-5ba50f476ded
Authentication-Results:garm.ovh; auth=pass (GARM-97G0022e222acc-bbea-4818-9708-2e6ab9eff40e,
                    E44920665798B4DCDE3BF656E3E0060933CCD35A) smtp.auth=sergii.dmytruk@3mdeb.com
X-OVh-ClientIp:176.111.181.178
Date: Wed, 23 Apr 2025 21:45:56 +0300
From: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>,
	Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>,
	Lukasz Hawrylko <lukasz@hawrylko.pl>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Mateusz =?iso-8859-1?Q?M=F3wka?= <mateusz.mowka@intel.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Marek =?iso-8859-1?Q?Marczykowski-G=F3recki?= <marmarek@invisiblethingslab.com>,
	trenchboot-devel@googlegroups.com
Subject: Re: [PATCH 00/21] x86: Trenchboot Secure Launch DRTM (Xen)
Message-ID: <aAk1ZBw8GtoVYoL8@MjU3Nj>
References: <cover.1745172094.git.sergii.dmytruk@3mdeb.com>
 <744934f4-f56f-4dc7-bccb-c32f2829d1da@citrix.com>
 <010709d8-7784-41bf-bcb6-bf04803a75fc@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <010709d8-7784-41bf-bcb6-bf04803a75fc@citrix.com>
X-Ovh-Tracer-Id: 3850577682115441820
X-VR-SPAMSTATE: OK
X-VR-SPAMSCORE: -100
X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvgeejfeehucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuqfggjfdpvefjgfevmfevgfenuceurghilhhouhhtmecuhedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurhepfffhvfevuffkfhggtggugfgjsehtkeertddttddunecuhfhrohhmpefuvghrghhiihcuffhmhihtrhhukhcuoehsvghrghhiihdrughmhihtrhhukhesfehmuggvsgdrtghomheqnecuggftrfgrthhtvghrnhephfffleeiffduleegveelfeelgefhledvudefiedvkeekjedvffffgfethefggfffnecuffhomhgrihhnpehgihhtlhgrsgdrtghomhdptghirhhruhhsqdgtihdrtghomhenucfkphepuddvjedrtddrtddruddpudejiedrudduuddrudekuddrudejkedpfeejrdehledrudegvddrleejnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehinhgvthepuddvjedrtddrtddruddpmhgrihhlfhhrohhmpehsvghrghhiihdrughmhihtrhhukhesfehmuggvsgdrtghomhdpnhgspghrtghpthhtohepuddprhgtphhtthhopeigvghnqdguvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdpoffvtefjohhsthepmhhoheekudgmpdhmohguvgepshhmthhpohhuth
DKIM-Signature: a=rsa-sha256; bh=XceR2Mnj5MK8YqxyDM3IyCB+Vlq1dvrrcFTKNgwhCSk=;
 c=relaxed/relaxed; d=3mdeb.com; h=From; s=ovhmo3617313-selector1;
 t=1745433969; v=1;
 b=DHX8zaj1f5RdEzJR8no7LSWafO4HrujNn527sqmT89dnCaRJXQvcmJuZwpP9gLMF+6Ery7X0
 D3XeSIWlRgNBqof4Qeh5TwnnvFgYsfj660HBbvHwe1iQ1LDEmv5+X3+OiIUWRVyjBV+7O5nO/C2
 U039hge7cEFN+vghue29X8o75tZDWqSn9akDt9bI4TmdsmcPEE3FJoYB36HGTq2l3eZHYo/WZBN
 4fV27o57r77DCl+QtfLTxlcCfyttj3kRycEWWePm6w+Cmm90qc5CGWdy7m0+e5U4L0N1n6sN1sO
 Fjw8m87tZBGxPamA5nh56dVqRZUeeFeD00irxZNDeqE0w==

On Wed, Apr 23, 2025 at 02:38:37PM +0100, Andrew Cooper wrote:
> On 22/04/2025 6:14 pm, Andrew Cooper wrote:
> > I've stripped out the sha2 patch and fixed up to use the existing sha2,
> > then kicked off some CI testing:
> >
> > https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/1780285393
> > https://cirrus-ci.com/build/5452335868018688
> >
> > When the dust has settled, I'll talk you through the failures.
>
> And here we go. Interestingly, the FreeBSD testing was entirely happy,
> and that is the rare way around.
>
> For Gitlab, there are several areas.
>
> First, for MISRA. In the job logs, you want the "Browse current
> reports:" link which will give you full details, but it's all pretty
> simple stuff.

Thanks, but that link gives me a list of 5096 failures all over the code
base.  Is there any way to see a diff against master?

> kbl-suspend-x86-64-gcc-debug is a real S3 test on KabyLake hardware,
> which appears to have gone to sleep and never woken up. (More likely,
> crashed on wakeup before we got the console up). The AlderLake
> equivalent test seems to be happy, as well as the AMD ones.

Hm, not sure what that could be, but will try to reproduce/guess.

> For the build issues, there are quite a few.
>
> debian-12-x86_64-gcc-ibt is special, using an out-of-tree patch for
> CET-IBT safety. tl;dr function pointer callees need a cf_check
> annotation. But, all the failures here are from sha1, and from bits
> which I don't think want to survive into the final form.

That stuff is gone and the build should succeed the next time.

> Other common failures seem to be:
>
>  # take image offset into account
>  arch/x86/efi/fixmlehdr xen.efi 0x200000
>  Failed to find MLE header in xen.efi
>  arch/x86/Makefile:220: recipe for target 'xen.efi' failed
>  make[3]: *** [xen.efi] Error 1
>
> ~Andrew

That seems to be the only reason behind the rest of build failures.
I was able to reproduce the failure in Fedora 37 docker.  Searching for
the header in 8KiB instead of 4KiB fixes it.  Looks like large default
alignment of some toolchains pushes `head.S` to 4 KiB offset.


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 18:59:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 18:59:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.965182.1355819 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7fJd-0006hI-3n; Wed, 23 Apr 2025 18:59:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 965182.1355819; Wed, 23 Apr 2025 18:59: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 1u7fJd-0006hB-0t; Wed, 23 Apr 2025 18:59:25 +0000
Received: by outflank-mailman (input) for mailman id 965182;
 Wed, 23 Apr 2025 18:59: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=IUzE=XJ=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1u7fJa-0006h5-Vh
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 18:59:23 +0000
Received: from sender4-of-o50.zoho.com (sender4-of-o50.zoho.com
 [136.143.188.50]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0f1b9666-2075-11f0-9ffb-bf95429c2676;
 Wed, 23 Apr 2025 20:59:20 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 1745434745049964.6327896254859;
 Wed, 23 Apr 2025 11:59: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: 0f1b9666-2075-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; t=1745434748; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=JO2jUlYYsLOr9jDPLK1CESCTAuQhGnkCQWj4ayIxJqoB8nKCrlWizLsbi2jtGfH2iqa62nx52mTGockjlKmNbYZK0vvPTEo+IkpllbXJ+z55JCv4+dryQtr9SkGVW0bQZI7gc4u2Rd3g2nb2Ib6C1ifmgSJd+xPsNNL8Dvm5NyI=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1745434748; 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=t3URwDPujiqFvfPeLPUB47AxMqRO5A7Ca2XFEvvTeg4=; 
	b=dRZapdQTQirCcMUW1XtSP9jGe6MkBKMWaVaJSkipVAiZzFRIAuEY88j+sbENHSzZwpYSsoqRZ1L2r44a7Mln8depWPzG4a2D86oVtEs6tAezHM+VXvPItV57A/m2RfHCHwNSaFZCcFGHgVEymoZSwAc73Wl++55Q5Jn7lmUII+U=
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=1745434748;
	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=t3URwDPujiqFvfPeLPUB47AxMqRO5A7Ca2XFEvvTeg4=;
	b=BvzHuFxI0W4DOUoNOm0f/+29DqKwAttlgOLTkMVM43FUL7Miar+id0zOqASmuEKq
	7Avf9xqV4hLYLtXxpKe5pJBg0XYN6s4SZ2oSOG4an/HatWpFH1q7LyaH39XKP7Rjc2T
	T7nkh3FwCKpNUh2Zx7EMQ4Bs64hIXDlO5MIGChjM=
Message-ID: <c2940798-11d0-4aaa-a013-64bef9bbdb82@apertussolutions.com>
Date: Wed, 23 Apr 2025 14:59:03 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 00/21] x86: Trenchboot Secure Launch DRTM (Xen)
Content-Language: en-US
To: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>, xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>, Andrew Cooper
 <andrew.cooper3@citrix.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Lukasz Hawrylko <lukasz@hawrylko.pl>,
 =?UTF-8?Q?Mateusz_M=C3=B3wka?= <mateusz.mowka@intel.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, trenchboot-devel@googlegroups.com
References: <cover.1745172094.git.sergii.dmytruk@3mdeb.com>
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
Autocrypt: addr=dpsmith@apertussolutions.com; keydata=
 xsJuBFYrueARCACPWL3r2bCSI6TrkIE/aRzj4ksFYPzLkJbWLZGBRlv7HQLvs6i/K4y/b4fs
 JDq5eL4e9BdfdnZm/b+K+Gweyc0Px2poDWwKVTFFRgxKWq9R7McwNnvuZ4nyXJBVn7PTEn/Z
 G7D08iZg94ZsnUdeXfgYdJrqmdiWA6iX9u84ARHUtb0K4r5WpLUMcQ8PVmnv1vVrs/3Wy/Rb
 foxebZNWxgUiSx+d02e3Ad0aEIur1SYXXv71mqKwyi/40CBSHq2jk9eF6zmEhaoFi5+MMMgX
 X0i+fcBkvmT0N88W4yCtHhHQds+RDbTPLGm8NBVJb7R5zbJmuQX7ADBVuNYIU8hx3dF3AQCm
 601w0oZJ0jGOV1vXQgHqZYJGHg5wuImhzhZJCRESIwf+PJxik7TJOgBicko1hUVOxJBZxoe0
 x+/SO6tn+s8wKlR1Yxy8gYN9ZRqV2I83JsWZbBXMG1kLzV0SAfk/wq0PAppA1VzrQ3JqXg7T
 MZ3tFgxvxkYqUP11tO2vrgys+InkZAfjBVMjqXWHokyQPpihUaW0a8mr40w9Qui6DoJj7+Gg
 DtDWDZ7Zcn2hoyrypuht88rUuh1JuGYD434Q6qwQjUDlY+4lgrUxKdMD8R7JJWt38MNlTWvy
 rMVscvZUNc7gxcmnFUn41NPSKqzp4DDRbmf37Iz/fL7i01y7IGFTXaYaF3nEACyIUTr/xxi+
 MD1FVtEtJncZNkRn7WBcVFGKMAf+NEeaeQdGYQ6mGgk++i/vJZxkrC/a9ZXme7BhWRP485U5
 sXpFoGjdpMn4VlC7TFk2qsnJi3yF0pXCKVRy1ukEls8o+4PF2JiKrtkCrWCimB6jxGPIG3lk
 3SuKVS/din3RHz+7Sr1lXWFcGYDENmPd/jTwr1A1FiHrSj+u21hnJEHi8eTa9029F1KRfocp
 ig+k0zUEKmFPDabpanI323O5Tahsy7hwf2WOQwTDLvQ+eqQu40wbb6NocmCNFjtRhNZWGKJS
 b5GrGDGu/No5U6w73adighEuNcCSNBsLyUe48CE0uTO7eAL6Vd+2k28ezi6XY4Y0mgASJslb
 NwW54LzSSM0uRGFuaWVsIFAuIFNtaXRoIDxkcHNtaXRoQGFwZXJ0dXNzb2x1dGlvbnMuY29t
 PsJ6BBMRCAAiBQJWK7ngAhsjBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRBTc6WbYpR8
 KrQ9AP94+xjtFfJ8gj5c7PVx06Zv9rcmFUqQspZ5wSEkvxOuQQEAg6qEsPYegI7iByLVzNEg
 7B7fUG7pqWIfMqFwFghYhQzOwU0EViu54BAIAL6MXXNlrJ5tRUf+KMBtVz1LJQZRt/uxWrCb
 T06nZjnbp2UcceuYNbISOVHGXTzu38r55YzpkEA8eURQf+5hjtvlrOiHxvpD+Z6WcpV6rrMB
 kcAKWiZTQihW2HoGgVB3gwG9dCh+n0X5OzliAMiGK2a5iqnIZi3o0SeW6aME94bSkTkuj6/7
 OmH9KAzK8UnlhfkoMg3tXW8L6/5CGn2VyrjbB/rcrbIR4mCQ+yCUlocuOjFCJhBd10AG1IcX
 OXUa/ux+/OAV9S5mkr5Fh3kQxYCTcTRt8RY7+of9RGBk10txi94dXiU2SjPbassvagvu/hEi
 twNHms8rpkSJIeeq0/cAAwUH/jV3tXpaYubwcL2tkk5ggL9Do+/Yo2WPzXmbp8vDiJPCvSJW
 rz2NrYkd/RoX+42DGqjfu8Y04F9XehN1zZAFmCDUqBMa4tEJ7kOT1FKJTqzNVcgeKNBGcT7q
 27+wsqbAerM4A0X/F/ctjYcKwNtXck1Bmd/T8kiw2IgyeOC+cjyTOSwKJr2gCwZXGi5g+2V8
 NhJ8n72ISPnOh5KCMoAJXmCF+SYaJ6hIIFARmnuessCIGw4ylCRIU/TiXK94soilx5aCqb1z
 ke943EIUts9CmFAHt8cNPYOPRd20pPu4VFNBuT4fv9Ys0iv0XGCEP+sos7/pgJ3gV3pCOric
 p15jV4PCYQQYEQgACQUCViu54AIbDAAKCRBTc6WbYpR8Khu7AP9NJrBUn94C/3PeNbtQlEGZ
 NV46Mx5HF0P27lH3sFpNrwD/dVdZ5PCnHQYBZ287ZxVfVr4Zuxjo5yJbRjT93Hl0vMY=
In-Reply-To: <cover.1745172094.git.sergii.dmytruk@3mdeb.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ZohoMailClient: External

On 4/22/25 11:06, Sergii Dmytruk wrote:
> The aim of the [TrenchBoot] project is to provide an implementation of
> DRTM that is generic enough to cover various use cases:
>   - Intel TXT and AMD SKINIT on x86 CPUs
>   - legacy and UEFI boot
>   - TPM1.2 and TPM2.0
>   - (in the future) DRTM on Arm CPUs
> 
> DRTM is a version of a measured launch that starts on request rather
> than at the start of a boot cycle.  One of its advantages is in not
> including the firmware in the chain of trust.
> 
> Xen already supports DRTM via [tboot] which targets Intel TXT only.
> tboot employs encapsulates some of the DRTM details within itself while
> with TrenchBoot Xen (or Linux) is meant to be a self-contained payload
> for a TrenchBoot-enabled bootloader (think GRUB).  The one exception is
> that UEFI case requires calling back into bootloader to initiate DRTM,
> which is necessary to give Xen a chance of querying all the information
> it needs from the firmware before performing DRTM start.
> 
>  From reading the above tboot might seem like a more abstracted, but the
> reality is that the payload needs to have DRTM-specific knowledge either
> way.  TrenchBoot in principle allows coming up with independent
> implementations of bootloaders and payloads that are compatible with
> each other.
> 
> The "x86/boot: choose AP stack based on APIC ID" patch is shared with
> [Parallelize AP bring-up] series which is required here because Intel
> TXT always releases all APs simultaneously.  The rest of the patches are
> unique.
> 

Sergii,

Thanks so much to you and the team over at 3mdeb for taking the lead on 
getting Secure Launch written for Xen.

One quick comment, Secure Launch will eventually support other 
architectures, and we really should not let the maintenance fall on the 
x86 maintainers, or eventually to "the rest". I would like to suggest 
adding an entry into the MAINTAINERS file for "TrenchBoot Secure Launch" 
and list any new files that are being introduced for Secure Launch. When 
adding the section to MAINTAINERS, I would kindly like to request that 
myself be included as a maintainer and Ross Phillipson as a reviewer.

V/r,
Daniel P. Smith



From xen-devel-bounces@lists.xenproject.org Wed Apr 23 19:28:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 19:28:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.965201.1355830 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7fl9-00036b-9e; Wed, 23 Apr 2025 19:27:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 965201.1355830; Wed, 23 Apr 2025 19: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 1u7fl9-00036U-6D; Wed, 23 Apr 2025 19:27:51 +0000
Received: by outflank-mailman (input) for mailman id 965201;
 Wed, 23 Apr 2025 19: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=hbtc=XJ=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1u7fl6-00036O-Vp
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 19:27:49 +0000
Received: from NAM04-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam04on2060c.outbound.protection.outlook.com
 [2a01:111:f403:240a::60c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 082e0f8b-2079-11f0-9eb0-5ba50f476ded;
 Wed, 23 Apr 2025 21:27:46 +0200 (CEST)
Received: from BN9PR03CA0369.namprd03.prod.outlook.com (2603:10b6:408:f7::14)
 by CH3PR12MB8308.namprd12.prod.outlook.com (2603:10b6:610:131::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.23; Wed, 23 Apr
 2025 19:27:41 +0000
Received: from BL02EPF00029927.namprd02.prod.outlook.com
 (2603:10b6:408:f7:cafe::f) by BN9PR03CA0369.outlook.office365.com
 (2603:10b6:408:f7::14) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.37 via Frontend Transport; Wed,
 23 Apr 2025 19:27:40 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 BL02EPF00029927.mail.protection.outlook.com (10.167.249.52) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Wed, 23 Apr 2025 19:27:40 +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, 23 Apr
 2025 14:27:40 -0500
Received: from [172.21.185.2] (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, 23 Apr 2025 14:27:39 -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: 082e0f8b-2079-11f0-9eb0-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=qfv2vy26Yi7aQAzF/StAoa2fq8XAPpdPAnErRPGmu2OmlLuTZCeXMsOLGBN8tD1GE+d6EHNvpT2Jx7R4DjTZFfQ2WTK7cUZQmFAHno8WjmTv0BELddSkU4bJCUtKo0/XYTYHQ3aD7lCdqeC9DPEHUTz/Yhu89gQ1AtyN6xNvs/tm2LP6X/J1Unco43OJW7opcbzPfcbSwfO8t0EUvQnDnUajO9XVTwv/mJi+csWN7PaOGHa3XO9DV1HpU+QI5AWATKTTiqBtYzLxbUOQxNhOt/hloLsPXrten191b3rfpq0RGFpg1GUsjcQDRY/j1h+tAVfC+8oUhUafgG9o6SEo0w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=K2W4J4D8HsKOPooVSRyj7XBe9kp+a21z5TwmB52urL8=;
 b=agILp/Y4bQuhrA63c0yqnW0Fqili8U3hOgZnPskdn+N8kBWlrkbcFaDWk2enrUIYKlYJUVunrb3njwpCVxK9kWdI/U6oWR7lnWhufrNxNzAWPBXgb3ignPHzjx41vFmlQO9ARIYE8bjR1fxYjVst7J5lYJ/2/9xLpYRGAgO/r7IKFna+Vmlbr3hnKnlCm+/aoqEgae+ed/4qittmZRanf7JryBHG2JxxW6HoX9CMcKTSJANuA8aWzLJP6ZFV6Io/kygUaucpXt4UERhxvwjbYTbRARdEwL3feUbPJzdW4Vm+/1WTgWs+BxROeSpi9fkcHZUNGooWIa09IMj6kkNukg==
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=K2W4J4D8HsKOPooVSRyj7XBe9kp+a21z5TwmB52urL8=;
 b=YR2aJV4uWVz5jMAODZcjYwciocT29+xZjPui2dE6dE8RerIU01B8daQhJA5agSrON8jPPKmCligivOAo+gnRrQYBIfvb1mleqiNYTh3YgvMMKoTDVEfvTIKhtDjMJNql/8Wc9ZiyD1EjPZI11XQ5ERv40QV54G7ChOZEC/m/huM=
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: <bba25fca-171a-47dd-881b-4746d76bd16a@amd.com>
Date: Wed, 23 Apr 2025 15:27:39 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC 33/38] x86/boot: refactor bzimage parser to be re-enterant
To: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	<xen-devel@lists.xenproject.org>
CC: <stefano.stabellini@amd.com>, <agarciav@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: <20250419220820.4234-1-dpsmith@apertussolutions.com>
 <20250419220820.4234-34-dpsmith@apertussolutions.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <20250419220820.4234-34-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: BL02EPF00029927:EE_|CH3PR12MB8308:EE_
X-MS-Office365-Filtering-Correlation-Id: cb7b5765-54dd-40b9-f0dc-08dd829cea0d
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|1800799024|82310400026|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?cWJNYXB6NWpqSVA4ekliSDdXclQ1SHJLekluYzB0VGZtWVdhQ1Jvb0d2cHU4?=
 =?utf-8?B?akJ6eWtrQWhHYVBGT2tKNnVaL0dPa3NlUWNUM2xTc3RFZ1pQT2tRaTU4WFFp?=
 =?utf-8?B?bnFsS1UvME9jamdsbVR5cDB5NTVrZzZaVUErN2hQUDY0bitzU3YwbXgwZXpr?=
 =?utf-8?B?bHNuMno3dmU1aFROSXVENktqQkZDbW5LajZ5c2wxNFE1MGl4RHp1WkxBazVS?=
 =?utf-8?B?WWNPekx1aWNyMzZ3OGJ4OWNWZnF1aGFhd3duTldGbjB6dWxHcCt6NzBRU25W?=
 =?utf-8?B?SzVwSGY4TFdkR0p6U2FMYU9JRHIzaXBxYjRjSjc0VDdkejZLaHlJam10TTdN?=
 =?utf-8?B?Tzk2Tk8wTmlRaWFlS2VCeWg1c1VnVlJKK1RqWkxZMEIweGdPdGUrMUo0Tlp1?=
 =?utf-8?B?Z1lTWHY4ZXZDcEgzVnd4SFBuN3dZS1pURktJMjZxMjh1QkJlN1Rxdi9DbzlN?=
 =?utf-8?B?U2NrdVpYenQxSUcyTTVUUEdpdHp3SWc1cExMWEdvaTczVGNUQzY3VW5NOGdS?=
 =?utf-8?B?YkRRR2JhcnY5MlpuVUs2QmhsS1pocUJRWFIveFR4VEFtNW5zWDU4OFd2UlAv?=
 =?utf-8?B?aVEzblBLWjQxOEtJbkhSTlp3UmRnaTAvODNBVU8rVTVlSS9qTWs4SGw0QmFn?=
 =?utf-8?B?c2xtODBmaW9hd0poOXBiMW54V1Y0RVpKeWFRdnlaaEdrOHoxdGZWN0VEOVlj?=
 =?utf-8?B?ZmdPKzFTYmxVaG5MY0Y3SzV5QURjd29NMnVlNFJ6TWd5QmxtTHcweGhzSlVS?=
 =?utf-8?B?NzQ1anRRdHpmek9OUG4xckdEWmlMNnltV3F1dWxBYmMxZEFvZkF3Ylo4M0R5?=
 =?utf-8?B?c2dTdWl6djBOeFd1Yk80N1lJTk9EM0J4eExFdVhKc3Rzem9yZ0NHbEdYbnB0?=
 =?utf-8?B?RFdROTFBV2wvR1BONkQ2WE9CYUZaTlRINEZ2R3dZbHRyaXFQbUlrK2dnUEh0?=
 =?utf-8?B?ZUZhbVlUVnFLRFdCQUcvR3ZhZUtxYm5ETU1iVmNJRk1HeTl3eW5Yd2kveTVu?=
 =?utf-8?B?UlBiemg1VVJWSzBNWERuRU4xcVJ3elFwK2Z0cTZpdUhMdGFsRGdNOWZGMU5I?=
 =?utf-8?B?dUdSZlllU1FFdTNyVjhLMkVkTXFxSENrNVR1cSt1Tmx2UjlEcVI4d1luanlX?=
 =?utf-8?B?UTh0VWh5bWsrclNEM0hGYTNMS3ZMbHhvc0h1R3J6VExueDhzbnpYdlJLb3Ex?=
 =?utf-8?B?d0VOUjFMaFUyK2Y4V3c2RHRtZGpVNmZveHcxQ2tYOURKVWQzYWNHdXhtRzdW?=
 =?utf-8?B?aDFkUXM0aU8ydXZiRTU1bElvM3dXRk12anRMZUpDRzc5NkU5bWRYem4weWpS?=
 =?utf-8?B?Sm9LN21GVUQ1RXAzSExBbjJvNlBGa0FwUStmMmdWNkhvMmtVdmU4TndoekdX?=
 =?utf-8?B?MS80ZDFFakdaTmdsaWNmbnUwTlFSOHB1NlEvdkdCZjNhL3lNNFRVa20zTEIx?=
 =?utf-8?B?Zi9mMnhSckVQUGV3NVhZQjM0OVhBbUpUK3FWZ09ZOGFPMDkvSDdTSUFhdnJ5?=
 =?utf-8?B?eFpGVHI3MW0zK0EvSzkxVHR6ampnbkJtb1dWbWxKelNud1RjY3JLNkdwVG1G?=
 =?utf-8?B?RHA1YnBpdFgrcnJCWUVvcVd6TXJ6a0t4RC9CSzBCd0tqbkQ3b0RwcXJBZ2F3?=
 =?utf-8?B?R3I1Mi9SZVErQXN6NDA4Wnkybll3Qjc0MUcwMjQzVlRJWXd6djJZenZZdjZM?=
 =?utf-8?B?OVBIQ0ZSd0lRWlJoaTdyWmNvSXZxUFdGOW11QlJXb0RoR1JVV0JOV1Vqa0Jo?=
 =?utf-8?B?RlRQZGJKejVFRFZoRkJHa2dRZS9ielpSWno5NW1lZ1NvTXAvY0RpbU1VeEtv?=
 =?utf-8?B?TFZ5ekdZdDFFZ3ZWRmRTdHVHZnU1cmdGOVd1VXVML2xJWWc4aUZFTmFON1Ro?=
 =?utf-8?B?YTV5d1dYRWNNVEovb3pYajllZlZtL0pZaE8vWnBaaS8yYzY4ZnFWVTJFTnR4?=
 =?utf-8?B?bHRDRVc3TGZRQXlwR3pINU93OWQyTndZRnB1b1FETGl1eGtIRlJwUUFQM0FI?=
 =?utf-8?B?STZHRU1DZFNnVTVaU096K2wwRlZYby82Z0ZEZjNLL2kxcVBTd0l3ekNEMHJK?=
 =?utf-8?Q?H7sIX8?=
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)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Apr 2025 19:27:40.9328
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: cb7b5765-54dd-40b9-f0dc-08dd829cea0d
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:
	BL02EPF00029927.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB8308

On 2025-04-19 18:08, Daniel P. Smith wrote:
> The bzimage logic uses the unit global orig_image_len to hold the original
> module length for the kernel when the headroom is calculated. It then uses
> orig_image_len to locate the start of the bzimage when the expansion is done.
> This is an issue when more than one bzimage is processed by the headroom
> calculation logic, as it will leave orig_image_len set to the length of the
> last bzimage it processed.
> 
> The boot module work introduced storing the headroom size on a per module
> basis. By passing in the headroom from the boot module, orig_image_len is no
> longer needed to locate the beginning of the bzimage after the allocated
> headroom. The bzimage functions are reworked as such, allowing the removal of
> orig_image_len and enabling them to be reused by multiple kernel boot modules.
> 
> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
> ---
>   xen/arch/x86/bzimage.c             | 38 ++++++++++++++++++------------
>   xen/arch/x86/hvm/dom_build.c       |  3 ++-
>   xen/arch/x86/include/asm/bzimage.h |  5 ++--
>   xen/arch/x86/pv/dom0_build.c       |  3 ++-
>   4 files changed, 30 insertions(+), 19 deletions(-)
> 
> diff --git a/xen/arch/x86/bzimage.c b/xen/arch/x86/bzimage.c
> index 66f648f311e4..32f0360d25b4 100644

> @@ -103,13 +100,20 @@ unsigned long __init bzimage_headroom(void *image_start,
>       return headroom;
>   }
>   
> -int __init bzimage_parse(void *image_base, void **image_start,
> -                         unsigned long *image_len)
> +int __init bzimage_parse(
> +    void *image_base, void **image_start, unsigned long headroom,
> +    unsigned long *image_len)
>   {
>       struct setup_header *hdr = (struct setup_header *)(*image_start);
>       int err = bzimage_check(hdr, *image_len);
> -    unsigned long output_len;
> -
> +    unsigned long module_len = *image_len;
> +
> +    /*
> +     * Variable err will have one of three values:
> +     *   -  < 0: a error occurred trying to inspect the contents
> +     *   -  > 0: the image is a bzImage
> +     *   - == 0: not a bzImage, could be raw elf or elf.gz (vmlinuz.gz)
> +     */

This comment seems a little independent of this change, so maybe it 
should be submitted separately.  Also, I think a better placement would 
be next to bzimage_check().

>       if ( err < 0 )
>           return err;
>   
> @@ -118,21 +122,25 @@ int __init bzimage_parse(void *image_base, void **image_start,
>           *image_start += (hdr->setup_sects + 1) * 512 + hdr->payload_offset;
>           *image_len = hdr->payload_length;

@here

>       }
> -
> -    if ( elf_is_elfbinary(*image_start, *image_len) )
> -        return 0;
> +    else
> +    {
> +        if ( elf_is_elfbinary(*image_start, *image_len) )
> +            return 0;
> +        else
> +            *image_len = *image_len - headroom;
> +    }

I don't like this extra indention which includes the return.  If you 
retain orig_image_len as a local variable, and set it above at "@here", 
you can have a smaller diff and leave cleaner logic.

orig_image_len previously was set as a static variable, so the correct
value was set after bzimage_headroom.  Now that it is no longer static,
we need to grab the hdr->payload_length value when we have a bzImage.
Otherwise output_length will read past the end of the module.

Below is the diff for bzimage.c with the change I suggest.

Regards,
Jason

diff --git a/xen/arch/x86/bzimage.c b/xen/arch/x86/bzimage.c
index ac4fd428be..775a8b45ff 100644
--- a/xen/arch/x86/bzimage.c
+++ b/xen/arch/x86/bzimage.c
@@ -69,8 +69,6 @@ static __init int bzimage_check(struct setup_header 
*hdr, unsigned long len)
      return 1;
  }

-static unsigned long __initdata orig_image_len;
-
  unsigned long __init bzimage_headroom(void *image_start,
                                        unsigned long image_length)
  {
@@ -91,7 +89,6 @@ unsigned long __init bzimage_headroom(void *image_start,
      if ( elf_is_elfbinary(image_start, image_length) )
          return 0;

-    orig_image_len = image_length;
      headroom = output_length(image_start, image_length);
      if (gzip_check(image_start, image_length))
      {
@@ -104,12 +101,15 @@ unsigned long __init bzimage_headroom(void 
*image_start,
      return headroom;
  }

-int __init bzimage_parse(void *image_base, void **image_start,
-                         unsigned long *image_len)
+int __init bzimage_parse(
+    void *image_base, void **image_start, unsigned long headroom,
+    unsigned long *image_len)
  {
      struct setup_header *hdr = (struct setup_header *)(*image_start);
      int err = bzimage_check(hdr, *image_len);
-    unsigned long output_len;
+    unsigned long output_len, orig_image_len;
+
+    orig_image_len = *image_len - headroom;

      if ( err < 0 )
          return err;
@@ -118,6 +118,7 @@ int __init bzimage_parse(void *image_base, void 
**image_start,
      {
          *image_start += (hdr->setup_sects + 1) * 512 + 
hdr->payload_offset;
          *image_len = hdr->payload_length;
+        orig_image_len = hdr->payload_length;
      }

      if ( elf_is_elfbinary(*image_start, *image_len) )



From xen-devel-bounces@lists.xenproject.org Wed Apr 23 19:51:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 19:51:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.965216.1355840 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7g7Z-0007Yw-2i; Wed, 23 Apr 2025 19:51:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 965216.1355840; Wed, 23 Apr 2025 19: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 1u7g7Y-0007Yp-Vl; Wed, 23 Apr 2025 19:51:00 +0000
Received: by outflank-mailman (input) for mailman id 965216;
 Wed, 23 Apr 2025 19:51: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=hbtc=XJ=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1u7g7Y-0007Yj-4O
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 19:51:00 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on20631.outbound.protection.outlook.com
 [2a01:111:f403:2414::631])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 464f14b4-207c-11f0-9ffb-bf95429c2676;
 Wed, 23 Apr 2025 21:50:57 +0200 (CEST)
Received: from SJ0PR05CA0104.namprd05.prod.outlook.com (2603:10b6:a03:334::19)
 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.8655.35; Wed, 23 Apr
 2025 19:50:53 +0000
Received: from SJ5PEPF000001EA.namprd05.prod.outlook.com
 (2603:10b6:a03:334:cafe::27) by SJ0PR05CA0104.outlook.office365.com
 (2603:10b6:a03:334::19) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.15 via Frontend Transport; Wed,
 23 Apr 2025 19:50:52 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ5PEPF000001EA.mail.protection.outlook.com (10.167.242.198) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Wed, 23 Apr 2025 19:50:52 +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, 23 Apr
 2025 14:50:51 -0500
Received: from [172.21.185.2] (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, 23 Apr 2025 14:50:50 -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: 464f14b4-207c-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=jEVNtLcTzuVRQryFRFhuhjafKqD0459nhbWN7lunc+gox4FRpkGpr4yMpRQRT6LA+v02h7fbXJfcEIMjMsKzB1RvlzaK+wpzL/AA2Wg518gTj/GXtuABnYg3pHfQu9A3uvmh9ipWarIV0YmCl32YSxIzwTixPqHSRW9CC4tZy245Bc95fWBJke3A+wEly91UKVYSaoKk5uq+frjyLBebSGppaJq4fN0KSuMlqtfjuIIDfn05zlUFQmIZYKMqkH+04JLbEjRhVzVGAWcUMtHnJo7R8St6yO8ueFXE9lqchRa7sZ2LnNE48l8IMlxiZN19JuGMfiF9TK4+AWMSrSDALQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=dG2gxwgZ9eOzJ57KdBshiu5VKzjV/ATE/1RPuNW0+zU=;
 b=F+jvMqWkug5+KNDMyfA4I1j45lD38cJh3lZ3VUFksoVBhbaZDbjIXHe6qqQh8SX+hYlTicVlSNk+GQmep82VgJhNwDr20li4+n5YX62OQqOzNRfW5w2TfJZQ9ULt+oibIu76kuKoi0gtMVtdxLu4osaZH3304fgfds3OS5A3rqWn4yaAX+2OyDSsKdwefC8F6ZVg5Fr3AcxwLRAOGmk9pt8cGqLjf9+hohCBFmsXDBCoTLSygBOyAT33cRZQS+8IYyDwPCHx+cmIfcDf7ImPV0HD0qlQeNhAFBaPHHegA10zJThfVtHtBF8Kzc+IHEqbB5DJ1Eos+O5Rn9fnB/363A==
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=dG2gxwgZ9eOzJ57KdBshiu5VKzjV/ATE/1RPuNW0+zU=;
 b=otQCf7VZh3AewBR0YHzGCCiO+8UBHDpEcHevVGUPQBNpVvEyWSVIotzQy4EP9v4VjZ8PfvFygHJlPMAD9zh9px+fi0YsCSDbi5/KLko5JefanBFKXwltAIzzCl8jeehh4btQsGuOROS+03V/rOI2TAp4GhJxSNgd5aq/8JbPEGc=
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: <bb2aa95a-797c-4d33-86eb-28acfaef743c@amd.com>
Date: Wed, 23 Apr 2025 15:50:49 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC 32/38] x86/hyperlaunch: introduce concept of core domains
To: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	<xen-devel@lists.xenproject.org>
CC: <stefano.stabellini@amd.com>, <agarciav@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: <20250419220820.4234-1-dpsmith@apertussolutions.com>
 <20250419220820.4234-33-dpsmith@apertussolutions.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <20250419220820.4234-33-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: SJ5PEPF000001EA:EE_|BN5PR12MB9462:EE_
X-MS-Office365-Filtering-Correlation-Id: 518fd1e6-99b0-4f56-e259-08dd82a0278b
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?eHZvRi96eUNMbnlXMUt2U1ZTd21uN1hYNGtSTHJ3OGM0bGNzOWtqdHB5dmRn?=
 =?utf-8?B?WjJRYzFma0tzQzlja2xDalh0R0Evb1RkOTdaUE53SURRaGhjWTF1T1o0OEFj?=
 =?utf-8?B?NFJGK1FoOGdxam03NzdMMDBtL3ZjYWE5czhmWkcveFhjam5VRWFOSTVzcElG?=
 =?utf-8?B?WWEyR2ZtQWJ3bWNmcnI0OUVuR1hoc2RtSGpOWStIQUNTeWw2RWN5YVFGUWow?=
 =?utf-8?B?eGI0T3JMV2ZxZm1xTlZxZUJOc3JWSkhKUVcrYVlFUWJUY3QzdVRDUkhPQkpR?=
 =?utf-8?B?K21XTm1DQkRsa051QmlDSkszMmNvYkxJR1oyMXFPdXBUYXR5S2xZY2UwdUp2?=
 =?utf-8?B?clZFeDVEWnJ3U2tKQ1dsd3hvaUlPTENidWMwSk55T0NyOU9XTWtRQ1JhVXJu?=
 =?utf-8?B?bDlnelBBZThvZ1R1c2FQNlBrTElFT2NvSmtqWmhiZWVEdHUvbkRnc3FvVzJo?=
 =?utf-8?B?bzZKRXFnVHJiNytiSElHdFVQWWlkN2hFVkJ2M0JTZDBkeU52aElSb3QydGZM?=
 =?utf-8?B?bHljU0I0dnNrYktlbW5JVUVERFp2RVYraHJTaUxzdmxGTTMvaTd4NUxFRmc2?=
 =?utf-8?B?S0txN3l1NUZabjliSDYrWUlEVE90TVpjQjhlTHY0eS82ZDJRT1RCWW9Obm1q?=
 =?utf-8?B?eldmK3c4N3FJQzVDRU9mSEhCU1c5WUl2c3Y2NEJRNmUyNjUyRSsxTkIrUzZm?=
 =?utf-8?B?RXpXTUZzUHlad2FmK01mUWxhK2pCRGdKQnZWSHlzY3EyRzFyS3FnaWx3QUhJ?=
 =?utf-8?B?V2tLMUo1amF2WFVNTEFaN1pHcGFOc0NHelA3WTJVaUlkbEg4WTdKZ1d1eXps?=
 =?utf-8?B?ckswbTVyeU1tUFVibzBFQkdvUVFHZFY1eWxSZFpWVzB4U3U5bjVCWC81dU9Y?=
 =?utf-8?B?c2I2RG5FQ25rb3NKRC9JYUtoN09tMmVaZGhVSzhPYVZnbzQ4ZEdBNXorbmt0?=
 =?utf-8?B?b2NndUNjQVVSNWVkcW56aGtGb2FNRlEwU29vWVVkQ2dwWXB0bTFUNkVQS2wy?=
 =?utf-8?B?eTFTR28wdVBLSWhpNFB0NU1pQVg5SVRBWEtoSG5qUTFvanM3RmdnN1VGdFhs?=
 =?utf-8?B?VkxaT0xGejNPNnArU3pBNjh4M2Q0TDFObTlwZ1k3T2E0VVpBV2NvWlJEd0xJ?=
 =?utf-8?B?QnBhcUZMb2ZFdDEzZy92RVFnTXRuaEt0UmpqczJvZEplMHFLVXdjT0k4Q0tR?=
 =?utf-8?B?ZnBta1JyRERKTWpPT1RndVd6Ri93bVNCbmIwZTcvcWd0S2pPMEpYYzFjRVlt?=
 =?utf-8?B?UWNBUXROMSt0Q1B2NUdtejZmV08zRklEOHNRNmtLMkZpaHlTUTExamtFUlhh?=
 =?utf-8?B?VmFrb25BQmVVZUV5NVM0VCtmVmVoaFozYVdTVHFISVltc0J2VWZBMStIb3pz?=
 =?utf-8?B?bmxDLzI1eUFrMHQwTUZvU05UK0dOSUdobXBkelk3SmZ3SmVycG9tdkpkV0po?=
 =?utf-8?B?c3Jwcng5NW9LR0hDQ0pqWkNUclFMVVhEb2E0Nk52REhXaEtib0VsT2FoYVQv?=
 =?utf-8?B?NVA3VVExcEhKa0RTMlZaeFFvWUZmUnJHbGtSdU5KSHNUb2preExUbVp0aTZp?=
 =?utf-8?B?NGExWVEyYjJWQ1cwblBQV21ZT3RsbGF4REdRZUtpUTMxU2tLS3N6YzIrdTlS?=
 =?utf-8?B?YVA0a0UvVWh0c2RUbkhJU1VHQlNGSkk0Um15UXpjZGNEbjVJVE1CY0JQc2hV?=
 =?utf-8?B?M2F1QW84YW9zcm1sVWN0MXBUWHVuODJJQ29MOFk2MlRscnZVRXlnNmc0enNO?=
 =?utf-8?B?Z1VqbEZSVFg1bmtkbDRtRCtoMU5TelJLUzZ5by9WaFA1TFN2V2FMVmRlK2dr?=
 =?utf-8?B?Z09PTzFYcjEvMXh5dlMzTitzTi82d1l3ZkpCck1tWlBIdWdKN3JoVzU4aWJM?=
 =?utf-8?B?L3Zib0VsZE5nVzJIT1pkdGI4dk0xc0k4Q2FUM2Z4bEY3N2xFM1paMFBpZ2Jj?=
 =?utf-8?B?Tm4rSzYyOFNtZTJIOXJEUVdYY3NrT3BpS1hudC9hNXlESm5tM3RUTm4zZkxp?=
 =?utf-8?B?SEZVajh5WTZOZHowb25RaVNiVTBBZGlNUUJBUVE2WGFwMWl5d2tMT0lEM1M4?=
 =?utf-8?Q?sIgNo8?=
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)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Apr 2025 19:50:52.4929
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 518fd1e6-99b0-4f56-e259-08dd82a0278b
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:
	SJ5PEPF000001EA.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN5PR12MB9462

On 2025-04-19 18:08, Daniel P. Smith wrote:
> When constructing domU, and specifically the event channels for their console
> and xenstore event channels, the domid for the backing domain must be known.
> Therefore, the control, hardware, and xenstore domains are deemed as core
> domains, and must be constructed before any of the other domains.
> 
> This commit introduces the build_core_domains() function that will ensure the
> core domains are constructed first.
> 
> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
> ---
>   xen/arch/x86/domain-builder/core.c     | 68 ++++++++++++++++++++++++--
>   xen/arch/x86/include/asm/boot-domain.h |  2 +
>   2 files changed, 66 insertions(+), 4 deletions(-)
> 
> diff --git a/xen/arch/x86/domain-builder/core.c b/xen/arch/x86/domain-builder/core.c
> index 901efce62a61..f693aa46d278 100644
> --- a/xen/arch/x86/domain-builder/core.c
> +++ b/xen/arch/x86/domain-builder/core.c
> @@ -103,18 +103,78 @@ void __init builder_init(struct boot_info *bi)
>       }
>   }
>   
> +static int  __init build_core_domains(struct boot_info *bi)
> +{
> +    int count = 0;
> +    struct boot_domain *bd;
> +    int hw, cd, xs;
> +
> +    cd = first_boot_domain_index(bi, BUILD_CAPS_CONTROL);

> +    hw = first_boot_domain_index(bi, BUILD_CAPS_HARDWARE);

> +    xs = first_boot_domain_index(bi, BUILD_CAPS_XENSTORE);

This order has issues if you actually have disaggregated domains.

Control and Hardware depend on Xenstore for Xenstore.

Control and Xenstore depend on Hardware for console support.

I re-worked the xenstore allocation to run after domain creation.  I've 
upstreamed that for dom0less (and ARM doesn't have to deal with consoles).

So if xenstore allocation is moved later, Hardware, Xenstore, then 
Control works.  But xenstore and console could both be handled after the 
fact and then the construction order doesn't matter.  The backend domid 
is needed to construct the event channel and grant entry.  With assigned 
domids, alloc_store_evtchn()/alloc_console_evtchn() can operate on the 
domids instead of expecting the domain to have been constructed.

Regards,
Jason


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 20:11:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 20:11:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.965237.1355849 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7gRX-0002dh-NV; Wed, 23 Apr 2025 20:11:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 965237.1355849; Wed, 23 Apr 2025 20:11: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 1u7gRX-0002da-Kt; Wed, 23 Apr 2025 20:11:39 +0000
Received: by outflank-mailman (input) for mailman id 965237;
 Wed, 23 Apr 2025 20:11: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=iEkW=XJ=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1u7gRV-0002dU-UV
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 20:11:38 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 286e583e-207f-11f0-9eb0-5ba50f476ded;
 Wed, 23 Apr 2025 22:11:36 +0200 (CEST)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id 74C9D4EE3CA0;
 Wed, 23 Apr 2025 22:11:35 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 286e583e-207f-11f0-9eb0-5ba50f476ded
Authentication-Results: bugseng.com; arc=none smtp.remote-ip=162.55.131.47
ARC-Seal: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; cv=none; t=1745439095;
	b=BHEVujIgnLSsONqx+f7G0CaT3ULQi/MeG8SRzwFEu8V9vRY9ud8zSfheh7GuoIwcfQNx
	 2GUk/AdZXzSq4AbwghjQ210GM72lV+Q8QcIx1mlLkUL+h4JhHcxZ2qPVn9f2m8sbVjaKI
	 od4fdsRiWlXqdUfJTCgeKi0xoe+IxVDDt+AG1gy5bvIuR/s4BMSlQSNRKbf0XSxKtALAS
	 VdaGEXoWNMC8iXX1ywVW4pHMGSFnWDmTkCIMoJNOKTzYl9rbbOYPl6ixrYzCy7C24lVo5
	 /FNowplpKV8ZcOZCPrDtsQgzPTX5Lt7Ty88rYgXjDfXbqxiUXGysWEt9nOWezli9DcikY
	 UYfTjn81LUCvZB2gC3rBZrF/t9lwj95h5czeju+1WOygAIkof2xG3M4kYxYL164I0PAhV
	 9aLivgRMtR9RlrAcIgD65YKeJStvqmlRZzreCfoWmBmdxteYzSTuxp4wlUsGggb+HKmpm
	 ymJp4sAtFAt1fkr2w8rDz3BbWE8FYwS/u3nI07igfIoRPDfXf1wtT1qKESnDEEmqvJLAM
	 UUMTGB1rYRmVYSSSl4tx6ZpWLSrlqYti89vbLTp4SU4QjDbY62+QIPuNNc+2rzYzpUl5b
	 TnEZw33VN2zrS8PY7AgyFQ+3/fFjCxWMucO9xOiZ9guHt2bJ1TfqLvU98c7TyW8=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1745439095;
	h=DKIM-Signature:MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:
	 References:Message-ID:X-Sender:Organization:Content-Type;
	bh=L9loRrq+/zmr5Tj4QYi5BXTX7lSXQSpxFITlsDioho8=;
	b=wShnSxSwa834xUrUsgmPRZpXM4ebU5zUbSCHF2MPF4zFWcfCRS/lJohC7IcWNQ/zAiJb
	 v+9Z9x50zHX/RsmgnR6mLl0NLWZid6QANsaE+YBv7Vr3uchKl72ErncYDWnx8QGR1enl3
	 GPKLmW1M7yL1DWFI8PIDxb/ZwUp6POPkLQAPeREnPqQUJDCubGWElKUgh/EMlOQPM4nd3
	 +Xz0ihuDYMaWVjZeHgk0f6eLHaMFHiq3lc5D9t6+uI4oke0QpTQ6XPk5/maVYt0y9/UOt
	 ISD9rEQhZh/nWJHNDWveuUDFuHLNUmWpNBas7uVo80YGjHv4U3bmokE+aSUI7lIeI4DIH
	 xxmnupPwBfQ1V/igqvyI6zXzg3rRABtiHs7PNDb8nv+bSXRmDTUG0IwHF914bKrBNg5ar
	 peYEvfqfCIo8JslHQae+vvIRpLIqmTuyeQxrymHcYCKCTkKQUiO+XUB1UH2R1Hd8V6a/U
	 fzr8I+dpW4vP+DR9sCmSYyxhQL8dkfejbGwQYEKwieAeg5o1Alj9cUEqhXZb4hJxPy+Cs
	 x3v9Xpe/zcNKtYJ3rk7vSqUNLVgvkszkVSJgzTgNR2v4bSDDi2oHzxfa7lbJ2ECtf6Ki1
	 KuecVJFxmIelJ7w823aaS3qpk9mIMO/j/WIaG8EKLGsGHvuCKIT8DO4MJUKl3O8=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1745439095; bh=+NfC/tx1ApexekvU49ZLC0ir/zc8lz+HoVvaSAdtEx4=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=sIObS7XtXmA2SYdgGUoSl3hnSiUIQHMURTsumq6NAh80JeD9KpJYFC6Ro5cGkD4+3
	 U4DvqN+JJviKjJxCw2y7je+AdPIxRDQC+9j9KoJ68CyHbSucchY3UeHALU2UZt0ydu
	 7158+iGQC5DSypNr92vLLCfT1EkMv1Wg2Tb0WdcUdzpN5RK94dCfNdFI/azXE+bN97
	 p2HTjpmjAKDx0DsXRcVOinwWIw5HMgUx5JKMr8aOQiJgGHVeci1cC9GqzlzYYbmU9n
	 QiGyIXrBk2dHpw15kkEswNG66mkrlaffN1lEs0JZUzoAXPEm1AOgKUjKP8a9IxQwWT
	 A43i1eKlvAfog==
MIME-Version: 1.0
Date: Wed, 23 Apr 2025 22:11:35 +0200
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Lukasz Hawrylko
 <lukasz@hawrylko.pl>, "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Mateusz_M=C3=B3wka?= <mateusz.mowka@intel.com>, Anthony PERARD
 <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Julien
 Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, trenchboot-devel@googlegroups.com
Subject: Re: [PATCH 00/21] x86: Trenchboot Secure Launch DRTM (Xen)
In-Reply-To: <aAk1ZBw8GtoVYoL8@MjU3Nj>
References: <cover.1745172094.git.sergii.dmytruk@3mdeb.com>
 <744934f4-f56f-4dc7-bccb-c32f2829d1da@citrix.com>
 <010709d8-7784-41bf-bcb6-bf04803a75fc@citrix.com> <aAk1ZBw8GtoVYoL8@MjU3Nj>
Message-ID: <a48a0c03f151d960254c65f538141836@bugseng.com>
X-Sender: nicola.vetrini@bugseng.com
Organization: BUGSENG s.r.l.
Content-Type: multipart/mixed;
 boundary="=_9ad4186270c7af582cc5792dbb236f06"

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

On 2025-04-23 20:45, Sergii Dmytruk wrote:
> On Wed, Apr 23, 2025 at 02:38:37PM +0100, Andrew Cooper wrote:
>> On 22/04/2025 6:14 pm, Andrew Cooper wrote:
>> > I've stripped out the sha2 patch and fixed up to use the existing sha2,
>> > then kicked off some CI testing:
>> >
>> > https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/1780285393
>> > https://cirrus-ci.com/build/5452335868018688
>> >
>> > When the dust has settled, I'll talk you through the failures.
>> 
>> And here we go.  Interestingly, the FreeBSD testing was entirely 
>> happy,
>> and that is the rare way around.
>> 
>> For Gitlab, there are several areas.
>> 
>> First, for MISRA.  In the job logs, you want the "Browse current
>> reports:" link which will give you full details, but it's all pretty
>> simple stuff.
> 
> Thanks, but that link gives me a list of 5096 failures all over the 
> code
> base.  Is there any way to see a diff against master?
> 

Hi,

yes, you can define selections of violations introduced on previously 
clean guidelines by clicking on the "ECLAIR" button on the upper right. 
See [1] which is the result of defining the "clean_added" selection 
shown in the attached screenshot. If you have other questions please let 
me know.

Thanks,
  Nicola

[1] 
https://saas.eclairit.com:3787/fs/var/local/eclair/xen-project.ecdf/xen-project/hardware/xen-staging/ECLAIR_normal/andrew/tb-v1.1/ARM64/9791028027/PROJECT.ecd;/by_service.html#service&kind{"select":true,"selection":{"hiddenAreaKinds":[],"hiddenSubareaKinds":[],"show":true,"selector":{"enabled":true,"negated":false,"kind":1,"children":[{"enabled":true,"negated":false,"kind":0,"domain":"clean","inputs":[{"enabled":true,"text":"added"}]}]}}}

>> kbl-suspend-x86-64-gcc-debug is a real S3 test on KabyLake hardware,
>> which appears to have gone to sleep and never woken up.  (More likely,
>> crashed on wakeup before we got the console up).  The AlderLake
>> equivalent test seems to be happy, as well as the AMD ones.
> 
> Hm, not sure what that could be, but will try to reproduce/guess.
> 
>> For the build issues, there are quite a few.
>> 
>> debian-12-x86_64-gcc-ibt is special, using an out-of-tree patch for
>> CET-IBT safety.  tl;dr function pointer callees need a cf_check
>> annotation.  But, all the failures here are from sha1, and from bits
>> which I don't think want to survive into the final form.
> 
> That stuff is gone and the build should succeed the next time.
> 
>> Other common failures seem to be:
>> 
>>     # take image offset into account
>>     arch/x86/efi/fixmlehdr xen.efi 0x200000
>>     Failed to find MLE header in xen.efi
>>     arch/x86/Makefile:220: recipe for target 'xen.efi' failed
>>     make[3]: *** [xen.efi] Error 1
>> 
>> ~Andrew
> 
> That seems to be the only reason behind the rest of build failures.
> I was able to reproduce the failure in Fedora 37 docker.  Searching for
> the header in 8KiB instead of 4KiB fixes it.  Looks like large default
> alignment of some toolchains pushes `head.S` to 4 KiB offset.

-- 
Nicola Vetrini, B.Sc.
Software Engineer
BUGSENG (https://bugseng.com)
LinkedIn: https://www.linkedin.com/in/nicola-vetrini-a42471253
--=_9ad4186270c7af582cc5792dbb236f06
Content-Transfer-Encoding: base64
Content-Type: image/png;
 name="Screenshot from 2025-04-23 22-09-16.png"
Content-Disposition: attachment;
 filename="Screenshot from 2025-04-23 22-09-16.png";
 size=19088

iVBORw0KGgoAAAANSUhEUgAAAVwAAADhCAYAAACENQ0zAAAABHNCSVQICAgIfAhkiAAAABl0RVh0
U29mdHdhcmUAZ25vbWUtc2NyZWVuc2hvdO8Dvz4AAAAudEVYdENyZWF0aW9uIFRpbWUAV2VkIDIz
IEFwciAyMDI1IDEwOjA5OjE2IFBNIENFU1QEEsaUAAAgAElEQVR4nOzdeVxUVf/A8Q+bCMouOyOL
iuK+kIqCiBvu4hqUlin8NMoynyz31DSfR1Ofck9zycwFKVTcqGRRXMrMpdJAAWEQ2ZQtQRi4vz+I
eRzZBlMWPe/Xy5fM3HPPOXNn5jvnnrt8NYYPHy4hCIIgPHOadd0BQRCEF4UIuIIgCLVEBFxBEIRa
IgKuIAhCLdGwsrISB80EQRBqgYYkSSLgCoIg1AIxpSAIglBLtOu6A4Lwoordvp2EAwfI/PlnHt67
V9fdeap0TU0xe+klHCZMoNWUKXXdnXrjuZ9SKCkpITk5GZlMVtddEeqRixcvAuDq6lrrbd+7fJlz
06aR8dNPtd52XWjWvTtuW7Zg2rlzXXelztX7KYVTp04xYMAADAwMMDQ0xN3dnW+//Vbt9QMCAti/
fz8AN2/eREND41l1VWggLl++TP/+/RkwYACXLl2q1bbvXb5MWP/+L0ywBcj46SfC+vfn3uXLdd2V
OlevA+4333zD8OHD6dWrF9HR0Vy5cgVfX18mT57MypUr1aojMzNT+be1tTVBQUHPqrtCA3D58mU8
PT3JyckhOzubfv36PdWgm5WVxa+//lrp8nPTplU5faDdtCmvS1KF/3xu3FCW09DSov3s2fhcv87E
ggLGJiTg9sUXNLawUJZ5XZIYm5BQbZ97rF/P65LEiAoCYq9t23hdkrAeMKDCvpW13XnpUqhiMPPw
3j3OTZtW6fK//vqLX375hZKSkmr725DV24Cbn5/PjBkzWLduHUuXLqVjx444Ojry9ttvs2/fPubP
n49cLufmzZtYWVkxY8YMPD096dChA1988QUAq1at4uTJkyxbtowPPviAlJQUxo8fr2zjiy++wNnZ
GWNjY/r27cuVK1eA0pGwjY0NixYtolu3bshkMubNm6dcb+fOnbRo0QITExN69uxJZGRk7W4c4Yk8
GmzLPK2ge+PGDbZs2cLcuXM5ffp0hWVit29Xe2RbeP8+MVu2qPxL2LdPubzPN9/QbeVKdAwNkR85
giIvD+eAAIacOYO2vr7a/dbW18dp4kQATDt1wqJ37xr17XZQEI2Mjem0cCGOvr5Vrpfx00/Ebt9e
4bKCggK++OIL5syZw5EjR8jKylL7NTQk9fag2dmzZ8nNzeXVV18tt2zo0KHY2dkRGhrKgAEDSE1N
xdzcnMjISFJTU+ncuTNt27Zl9uzZREdH4+7uzvvvv8/NmzeVdZQF7aNHj9KlSxc2bNiAt7c3169f
ByAlJQUdHR1++eUXbt68SYcOHfD19cXe3p5p06Zx5coV2rRpw7p163jzzTf5448/am3bCDVXUbAt
UxZ0T506RdeuXdWuMz8/n3PnzhEZGcndu3cB0NHRwcnJqcLyCQcOqF33gzt3ODd9eoXLrLy8cJgw
gftXr3Ksd28UeXloaGri9e23GDo7Y9KpE+nnzqnVjqOvL42MjEgMCaG5jw+tAwNJi46uUd86zJlD
1xUrMG7Xrtr2Eg4cqPAgWuPGjbG3t+f27duEhoZy7NgxOnXqRN++fWnTpo1ar6UheOYBt6ajvy5d
ugCQkJCAsbExhYWFFBYWlitnZWXF7du3ycvLQ0tLi+nTp5OTk4Oenh5jxoxh165ddOzYEYVCwcOH
D8nJySEvLw+AnJwcdu7cyRtvvEGbNm3Iz89nypQpbNmyheDgYOWBlIkTJ5KTk4OFhQWOjo5cu3YN
KysrdHR0WLduHePGjWPixIm8/vrrKl/kqnYphWfHwcEBe3v7cs9XFWzL1CToJiUlERkZyU8//cTD
hw+B0s+jh4cHbm5uNGnSpML1Mn/+We3Xom9jg9vmzarthoYiDw3FdvBgAGK++ALF359pqaSEUz4+
atdfxnnaNEqKijg3bRomHTrgMG4cP7/3HgVpaZWu09jCgs6LFwOg3aQJTq++CpLEnbCwaturbBs0
adKEefPmcfv2baKiovj555/59ddf+fXXX7G0tMTT05NevXqhp6dX4fq3b98mQY3pkyfl6en5VOqp
tyNcc3NzMjIyyM/Pr3AjJyUlYWlpCYCxsTGNGzdWLjM1NVVOD1QmIyOj3JkL9vb2yOVyZcA1MzNT
LtPW1qakpITGjRtz5MgRVq1axYgRI9DX12fWrFkEBgY+8WsVng4TE5Nyz6kTbMtUFXQVCgW//PIL
ERERxMXFAaWfiZdeeok+ffrg7Oxcbf01OfWrkYkJzo/NeebfvYs8NFQ5T5v/96j6SZl27kyz7t1J
DAmhIC2N2O3b6bp8Oa2mTuXaihWVrtfY3JxOH32kfJzyww+cmTyZ1KioatusbhvY29szadIkxo8f
z/nz5zl9+jRyuZwDBw4QEhJC9+7d6du3b7nvromJyTMNuE9LrQXcspGrutzc3DA1NWXXrl1Mf2zX
6uTJk9y9e5dBgwZRWFjI/fv3+euvv5Qji7i4OOzs7AAqPSvB1taWxMRElecSEhIYOXJklf3Kysri
4cOH7Nu3D4VCQVhYGBMnTsTLywsXF5cneq3C02FgYKDyuCbBtkxFQTc3N5clS5aQm5sLgIWFBR4e
HvTq1YumTZuqXbeuqanaQTfr99851L59hcsK/65D38ZG5Xnj9u3R0NTk/tWrarVRFtAbN2uG2+bN
6JqbA9B6+nR++89/kCo5gJX1++8c6dKFFq+9Rq+tW2nSvDnZjxzQq4quqala5Ro3bkzfvn3p27cv
cXFxnD59mp9//pkzZ85w5swZPDw8mPj33DOUvvfP4nv3tPdW6+1BM11dXdasWcPixYv5z3/+w59/
/kl8fDzbtm3D39+fuXPnKoNqSUkJixcv5uHDh0RHRxMSEsLLL7+srCchIaHcJLyvry87duzg0qVL
KBQKNmzYQEpKCt7e3lX2Kzc3l9GjR3P69Gm0tbWxsLBAS0ur3JddqH2P/7iOGDGiRsG2THZ2tsqX
ubCwUBls7ezsCAgIYNCgQTUKtgBmL71U475U5M4PPwDQKiAA7b8HGRra2rht3szIK1ewGTSo2jq0
mzYtnQoALNzdcZ42DfsxYwBo0rw5dsOHV7l+SVERsV9+yR+ffYahszN99u6t8iyFMk+yDZycnHjl
lVcYO3Ys2tqlY8R7j/1wNZTTPevtlAKAj48P5ubmfPrpp2zcuJGioiLat2/P559/zujRo1XK6uvr
4+LigqGhIevXr1f+2o0ZM4bp06dz//59FixYoCw/bNgwUlNT8ff3JyUlhQ4dOhASEoK5ubnyy1UR
mUzG+vXreffdd0lJScHS0pJNmzYpg79QdyRJUvni+fn5ER0dzdmzZ2tUT69evVTm7Jo2bUqfPn24
cOECcrmc5cuX4+DggKenJy+99BI6Ojpq1eswYQJ3Tp5Uq2xFc7gA599+m+QTJ5CHhmI3fDijb9wg
/fx5TDp2xNDZmbToaFL+DsgAjc3MytVz5/vv0TU1RcfAgOvr1vHTO+8olzUfPRqvb7+lTWAgSYcP
V9vPS/PmIRsxAotevXD+v/8jZsuWKss7TJhQbZ2PSktLIyoqirNnz/LXX38Bpad3urm5qZRrKNdv
PfMrzcoOmj2r3ey4uDi6dOlCdnb2M6lfaDj09fWVI6Ay6enpWDxybqo60tLSMP979/pRZWclRERE
kJqaqmzTzc2NPn36YGVlVW3dR3v0qPLUMO2mTXm1ih/8r/X0KC4oQLNRIzrMmUOL116jSfPmFKSm
khgSwq8LF1L4997c65V8tX9fvRqrvn0x69aNI126qFyQoKGlxbjbt9G3seFbZ2c6zJlDq6lTCRs4
kPTz53k1N7fcdIdV3754nzrFw/v3+a51ax5mZFTYbrPu3Rl24UKV2wdK91ivXLlCZGQkN27cQJIk
NDU1qzxrQaFQ8ODBg2rrrqmyKYWnddBMBFzhuaGrq4uurq7KcxkZGeWCp5GRETNnziQjI4MNGzaU
qyc9PZ1mzZpV2o4kSdy4cYPw8HCuXbumPFnf2dkZT09PunTpgpaWVoXrll1p9rzdO6E6uqamDPrx
xyov771//75yjrZsCtDAwAB3d3c8PT0rPCha5uHDh8ozRp6mpx1w6/WUgiDURFFRUbmAW9F4wtjY
mMWLF3Pjxo0KA251YxANDQ1cXFxwcXEhMzOTqKgozpw5Q0xMDDExMXTq1KnSs1ZMO3dm0I8/insp
PCYrK4t58+Ypf7ycnJzo27cv3bp1K7fXUpGioqKn1t9nqcEHXCcnJzG6FYDSXdHCwkIaNWpUa22a
mZkxevRoRowYwcWLFwkPD0ehUFS5jmnnzgy7cEHcLewRxcXFaGlp0bNnT7y8vGjevLnabRUWFjaY
S4IbfMAVhEcVFBSgqamp1qjoadLW1qZnz5707NlT7ctSW02ZIm5d+DdDQ0P+85//VHrRSGUUCgUF
BQXPqFdPnwi4wnOn7GIZbW1tmjVrxuLFi1WmCYyNjQFo1qwZHz1yAj+UThdUNX+rjrL6BfXp6Oio
fbZHGYVCQX5+/jPq0bPR4A+aCUJlGjduXKvTC0LtKSwsrJWRrThoJghqKigooLCwEB0dHbS0tNDS
0mowJ8gLqiRJori4mOLiYoqKihrMnO3jRMAVnmslJSXP5HQhQXgS9fbSXkEQhOeNCLiCIAi1pM6n
FBSKEk6dOotcrt6t5uzsrBg4sLeYi6tnjsRd5pMLR/jzfopa5VubWLOw5yiGOnZ8xj0ThPqjzgPu
qVNnGTiwD0ZG6t156f79HL7/PppBg6pPBSLUngXRB0nKVf/k/T/vpzA/OkgEXOGFUudTCnL5XbWD
LYCJiSFyuXqjKKH21CTYlrmdk1l9IUF4jtR5wBVeHE10dPktYCVX/f9T110RhDrx3ARcIyMjlX82
NjaMHz+emJiYp9rOrl27GDp06FOts6ZcXFw4c+ZMjdebOXMm8+fPfwY9Us+eUW/TxswGPe3KL0bo
378/RkZGnD9/vtyy4cOHY2RkRFoV+baEfyYuLg4jI6O67sZz67kJuABff/01f/zxB3/88QenTp1C
X1+fl19++anenNjLy6tOgxbAZ5991uAymS50H83wll3IVxQyJnhNlWVNTU05ePCgynN37typNk+d
8M9ZWVnx1Vdf1XU3nlvPVcBt1qwZtra22Nra0qZNG9577z3i4uLIyspi+/btjB8/nj59+tCiRQvS
09O5evUqQ4YMQSaT4ebmRtjfWUd37txJ3759VeoeMmQI27dvJzw8nOXLlwOldzhavnw57dq1o2XL
lrz11lvk5uaSkZGBiYkJKSmlc82nTp3CyMiI2NhYAH766SfaP5avqibrvPvuu9y4cYO4uDicnZ1Z
vnw5ffr0oW3btixZskRZ582bNxkyZAjW1tYMGzZMZWSYn5/PvHnzcHZ2pkWLFgQEBJCZmflEfX+U
loYm+3zewUzvf/PyQ1t0ZpH7GCQkfL/7nGvpSVW+jyNHjiQkJITi4mLlc8HBwQwbNkyl3NmzZ+nf
vz+2trb06NGDQ4cOKZc5Ojpy8eJF5eNHR/eXLl3C09MTOzs7XnrpJbZt26YsV9lnoiI7d+6ka9eu
yGQyhg4dyrVr1wCYOnWqSnaRBw8eYGVlxZ9//lnpZwao8DP6qF27duHj44Ovry+DBw/Gy8uLc3+n
Q4+JiaFdu3YEBAQgk8k4fvw4GRkZTJ06lRYtWtC+fXvWrl2LJEncvHkTc3NzlZvsLF++nClTpnD3
7l1ee+21arfH7Nmzeffdd5XlBg4cyNSpU5WPR48ezTfffFPptntRPVcB91G5ubns3LkTBwcH5Y2L
f/zxR+bPn88PP/yAjo4OPj4++Pj4kJCQwKpVqwgICODmzZv4+Phw/fp14uPjAZDL5Vy6dKlcWp/V
q1cTGhrKiRMnuHLlCvn5+cyePZtmzZrRtWtXIiIiAIiKikJPT4/Tp08D8P333zNkyBCVup5kHYDU
1FR0dHSIiooiNDSUjRs38ttvvyFJEq+88grdu3fn9u3bzJkzhx8eSb0yd+5cLly4QGRkJFeuXKGk
pAR/f/8n7keZoS06M65Nd45O+IDG2jo4m1qz12cGGmgwN3w/R29drnTdMp06dcLU1FR5Hw6AAwcO
KPPUASQmJjJmzBj8/f1JTExk9erVBAYGKgNQVWbNmsUbb7yBXC5n69atLFy4kOTkZLKysir9TDzu
4MGDLF26lK1btxIfH8/w4cMZPXo0WVlZ+Pn58d133yn3rI4cOUKbNm1o3bp1pZ+ZMo9+RivKOhER
EcHbb7/NiRMnWLZsGa+88ooyb5tcLsfBwYFz587Rp08fpk6dioaGBteuXeP48ePs27ePPXv20LJl
Szp27MjhR1LoBAcHq2xfoMrtMXjwYMLDwwH466+/uH79OlF/Z+0ty4wxcODAat+LF81zFXBHjx6N
tbU1VlZW2NnZERUVxZdffqlc7uTkhLe3N46Ojhw7dgxzc3OmTZuGlpYW7u7uDB06lD179mBsbMzg
wYMJDg4GSr9cAwcOLHfH+a+++ooPP/wQmUxGkyZNWLJkCfv376egoIDBgwcrg1ZkZCSTJk1SzruG
hYVVGLSeZB1AObJwcnLC0dGR+Ph4rl69yq1bt5g3bx6NGjXCw8ODESNGAKXXpQcFBbFw4UKsra1p
2rQpK1eu5NSpU9y5c+eJ+wFw5OYlvvk9GldrJ34PWMWvUz+hiY4uO69G8umF0ErXe9y4ceOU278s
zUq7du2Uyw8fPkznzp3x8/NTvn9+fn7s3bu32rqNjIwIDQ3lhx9+oHXr1iQnJ2Nra1vlZ+JxBw4c
YMqUKcobZAcGBmJmZkZYWBheXl4UFRVx4e90MkFBQfj6+gJVf2ZA9TNake7du+Pu7g5A7969sbOz
49SpU8rlAQEB2NnZkZmZSUREBCtWrEBfXx+ZTMbMmTPZtWsXUJrv7dtvvwXgl19+ITs7mwEDBqi0
VdX2cHd3Jz09nYSEBKKjo+nbty9aWlrExMQQFRVFhw4dKvzBeNE9VwF3w4YNREdHc+7cOeLi4rh0
6RKurq7K5dbW1sq/k5KSiI2NRSaTKf+FhIRw584dAF555RXlPOLBgwfL/fpLkkRycjKBgYHK9Xv1
6oWOjg5yuRxvb28iIyPJysoiKSmJgIAATp8+TXp6Ordu3VJ+aR71JOtA6U2wy2hra1NSUkJqaiqm
pqYqGRDKbupcUFBAXl6eyk2ezczM0NfX586dO0/cjzJTjn7BueRY7I2aoaulw7nkWKaf2F7lOo8b
P348oaGhPHz4kP379zPhseSD6enpyGQylefs7e2Ry+XV1r1t2zasrKwIDAzE0dGR9957j/z8/Go/
E4/KyMiotH0tLS3Gjx9PcHAwmZmZnDlzhrFjx1b7mQHVz2hFHs+bZmpqqsyvpqmpqczflpRUOm1T
NuUhk8l4//33lVNFY8eO5fz586SnpxMUFMS4cePKpQWqanvo6uri5eVFREQEkZGReHh40Lt3b86c
OVPtj/KLrM4vfHiabGxscHJyqnS5pub/fl8sLS1xdXVVmaNLTk5GX18fgAEDBvDWW29x7NgxkpKS
yqVP19DQUGbs9fLyAkrvzxkfH4+joyNaWlpoamqyY8cOevbsibOzM9ra2mzcuBEvL68KbxvYsWPH
Gq9TGWtrazIzM5X3hoXSA0/NmjVDT08PU1NTbt++rdxe6enpPHjwAHNzc+zt7f9RPxQlxYwIWsXF
N0rnukcErUJRUlzlOo9zdHSkRYsWhIWF8e2333L8+HGV5ba2tuXOZIiPj1cGHC0tLZWb1mRmZtKk
SROKi4u5fv06q1evRldXlytXrvDaa6+xe/fuaj8Tj7efmJio8lxCQgIjR44ESkeQY8aMwcXFhT59
+ihHe1V9ZqKiolQ+oxUpC6SPvmZbW1tANVW4lZWVcsRZ9v5nZWWRl5cHgImJCf379+fw4cOEhIRU
uGdQ3fYYNGgQERERxMXFsXnzZnR1dYmIiODXX39l3759Vb6OF9VzNcKtiWHDhvHnn3/y9ddfU1xc
TGxsLAMGDCA0tHS3V0tLi7FjxzJ79mzGjBlTYZDx8/Nj2bJlJCcno1AoWL58OWPHjlUuHzhwIJ9/
/jl9+vQBwMPDg02bNlV5WtmTrFORDh060L59ez766CMePnzI+fPnVQ4q+fr6smzZMlJSUsjLy+PD
Dz+ke/fu2NvbP5V+ZBU8oOWm92i56T2yCp4sm+r48eP5+OOPad68OTY2NirLRowYwbVr19i7dy/F
xcVER0ezd+9e5Ui4ZcuW7N69m6ysLMLDw5W73VpaWrz77rts2LCB4uJirK2t0dDQwNTUtNrPxKN8
fX3ZsWMHly5dQqFQsGHDBlJSUpQ/zO3bt8fc3JzVq1er7B1V95mpzqVLlzh48CAKhYL169dTUFBA
v379ypVzcnLC1dWVOXPm8ODBA7Kyspg8eTIff/yxymtYs2YNBgYGFd6vurrt4e3tTXh4OHfu3MHF
xQVPT09OnDhBSUkJLi4uar+mF0mdB1w7O2vu389Ru3xm5n1ksqp3u9Rhbm5OcHAwu3fvxsHBgVGj
RuHv78+kSZOUZfz8/JDL5cr5t8fNmTMHDw8PBg0ahIODAz///DNBQUHKXTNvb2/u3buHh4cHAH36
9OHhw4dVHkx4knUq88033/Dnn39ib2/PnDlzVI7yL1q0iJdeegkvLy9cXFwoLi5WOapc037YNK08
o2pl7A3Nqlw+duxYbt68WW46B0pH8EFBQWzduhWZTMY777zDmjVrlMFn2bJl/PHHH7Rp04Z169ap
HHnfuXMnR48epXnz5vTq1QsfHx/Gjh2r1meizLBhw1iwYAH+/v7IZDIOHTpESEiIyryln58f2dnZ
Kj9S1X1mqtOxY0eCg4NxcHDgu+++Izg4uMIRuIaGBrt27SIrK4sOHTrQuXNnrKysWL16tbKMt7c3
Dx48qPTzXd32sLa2xt7eHjc3NzQ0NHB0dMTMzExMJ1ShzjM+SJJEWNhZkpPVu1xXJrNmwIBe4uY1
9cyRuMssO3+I2KxUtcq3NrFmkdsohjiIeymoa9euXezfv59jx47VdVdeGM9dxgcNDQ28vcWNaBq6
EU6dGeFUeRpsQRDqwZSCIAjCi0IEXEFoIF5//XUxndDAiYArCIJQS0TAFQRBqCUi4AqCINQSEXAF
QRBqiQi4giAItUQEXEEQhFoiAq4gCEItEQFXEAShltTapb1l1yQLgiC8qMQIVxAEoZY887uFCYIg
CKXECFd4KhITE5k0aRJmZmbY29szY8YMsrOz67pbglCviID7DyQkJNR1F8opKSkpl4blWbt9+za9
e/fGwsKCn3/+mZCQEORyOW+++Wat9kMQ6rt6H3B/+OEHBg0ahImJCcbGxgwcOFCZDbUu3bx5UyVB
5dOwfv16Bg8e/I/qCAgIYP/+/UBpH2vjRu0jRozgzTffZPXq1Tg5OdGlSxe++OILDh06RElJyTNv
XxAainodcHfv3o2Pjw+jRo3i8uXLXL58GTc3N/r168eVK1fqtG95eXnK1Nb1SWZmpvLvsjQ0z9rR
o0eZN28ekZGRyqywCoXimbcrCA2OVE/l5+dLJiYm0o4dO8otmzFjhrR161ZJkiRp7Nix0ooVK5TL
9u7dK3Xr1k2SJEl6+eWXJX9/f8na2lpyd3eXrl+/LjVv3lx69dVXJSMjI+nw4cNSWlqa5OfnJ5mb
m0v29vbSv//9b6mkpESSJEl69dVXpffee0/y8vKSHB0dpR49eki//fabpFAoJAsLC0lDQ0OytbWV
UlJSVPpXUlIizZw5U7KwsJAsLCykYcOGSUlJSZIkSVJRUZG0cOFCqXnz5pKFhYX0xhtvSNnZ2ZIk
SdK6deskb2/vastJkiRt2bJFcnJykgwMDCQvLy8pNjZWWrlypdS4cWPJyMhImj17thQbGys9+hZv
2bJFatWqlWRkZCR5enpKly9fliRJkmJjYyVra2tp4cKFUteuXSU7Oztp7ty5Vb4/d+/elTp16iTd
unVLkiRJOn78uGRkZCSdPn1akiRJmjRpkjRp0qQq6xCEF80zPw+3LKeZuspyn505c4bs7GyGDBlC
To5qkslly5YBkJOTQ1FREQUFBcoyDx48oLi4mJycHBQKBceOHePQoUPo6emRl5dHYmIitra2nD17
FhMTEyZMmIC5uTlXr14lMzOTcePGYWBgwMSJEykqKmL//v1ERkZiYWHBO++8w9y5c/n6668JDg7G
29ubP/74Q9mXMidPnuTEiRP8/PPP6Ovr8+abb7J48WLWrFnDypUr+e677zh27BimpqbMmDGD6dOn
s3nzZgoKClAoFOTk5FRZLjw8nA8//JDg4GC6dOnC0qVL8fPz48cffyQyMhI3NzdmzJhBXFycsm8H
Dx5k3rx5BAUF0alTJ7744gsGDhzIxYsXycvLIyUlhZKSEsLDw4mLi8PNzY3hw4fTvn37cu9RVlYW
AwcOZODAgTRr1oygoCCmTp3K3r176dixI2+//TYXLlzg+++/V9ku4lxsoaF6WjnN6u2UQkZGBk2a
NEFPT+8f1ePt7U3r1q1p3ry58rmAgADs7OzIzMwkIiKCFStWoK+vj0wmY+bMmezatUtZdtiwYVhY
WAAwYMAAbt26VW2bhoaGyOVy9uzZg1wuZ+vWraxZswaAr776ig8//BCZTEaTJk1YsmQJ+/fvLzc9
UVW54OBgJkyYgKurK1paWnz44Yd8+umnVfbpwIEDTJkyhW7duqGtrU1gYCBmZmaEhYUpy0ydOhUo
TbHt6OhIfHx8hXXNmjWLbt268cknn3Dq1Cn8/f3Zv38/Hh4eJCQkEBUVxbFjxzA2Nq52WwnCi6TW
rjSrLGtvZSwsLMjLy+Ovv/6iSZMmKssyMjLQ09Mr93xFbGxsVB5ramoqA2jZ0fyuXbsql5eUlGBi
8r+U32ZmZirrqnMQyM3NjbVr17Jt2zYWLlxIixYtWL16NR4eHiQnJxMYGMiMGTOU5XV0dJDL5crH
kiRVWS41NZVevXopn9fX1692+2ZkZNUc/b4AACAASURBVCCTyVSes7e3Ry6XKw/+PfpatbW1K3yt
xcXFHDlyRDmyd3Z25uDBg/To0QO5XI6DgwNnzpypsA81/QwIQl172ntl9XaE6+rqipGREcHBweWW
zZo1i2nTpgGgpaVFYWGhctm9e/dUyj5+lP7Rx1ZWVmhpaRETE0NSUhJJSUn8/vvvnDhxotr+VXX0
Pykpifbt2xMWFkZCQgKjR4/m9ddfR0NDA0tLS/bs2aNsLz4+nujoaBwdHVXqrqqcjY2N8uAUlB7A
mz9/PoWFhZX2y9bWlsTERJXnEhISlD8+6pIkieLiYrS1S3+r7ezs6NGjB6tWreLll1+uUV2C8KKp
twG3UaNGLFmyhDlz5rB9+3bkcjm3bt1i/vz5/PDDD3zwwQcAtGzZkpCQEO7cucPNmzfZvn272m04
OTnh6urKnDlzePDgAVlZWUyePJmPP/642nV1dXV5+PAhsbGxFBcXqyw7e/Ysfn5+JCUlYWBggKGh
IaampgD4+fmxbNkykpOTUSgULF++nLFjx5arv6py48ePZ//+/Vy+fJni4mLWrFnDTz/9RKNGjdDV
1SUhIYGsrCyV+nx9fdmxYweXLl1CoVCwYcMGUlJS8Pb2Vnt7QenId9iwYbz//vsoFAokSeKTTz5h
x44d7Nu3r0Z1CcKLptamFJ7E5MmTMTAwYOPGjSxYsAAdHR1cXV05duwYHTt2BGDatGlcvnwZV1dX
ZDIZkydPVvuLr6Ghwa5du5gzZw4dOnSguLiYwYMHVzsfCqXB2s3Njd69exMREUHbtm2VyyZMmMD1
69fp168feXl5tG3bVvlDMGfOHCRJYtCgQWRnZ9O5c2eCgoLQ0tJSqb+qcu7u7ixbtowpU6aQlpZG
9+7d2bFjBwBjxoxh+vTp3L9/nwULFijrGzZsGKmpqfj7+5OSkkKHDh0ICQnB3Nyc3NxctbZXmXXr
1jFlyhTlFESXLl04efJkuSkLQRBUPfN7KZSdpSDm7wRBaGjK5nCf+7MUBEEQnjci4AqCINQSEXAF
QRBqiQi4giAItUQEXEEQhFoiAq4gCEItEQFXEAShloiAKwiCUEvq5EqzoqIiMjMza3yFkyAIwpMy
MDDAzMwMHR2dOutDrQfcoqIiEhISaN68Oc7OzrXdvCAIL6j09HQSEhJwcHCos6Bb6wE3MzOT5s2b
Y25uXttNC4LwAiuLOZmZmVhZWdVJH2p9Djc3N1cEW0EQ6sST3KzpaRIHzQRBEGqJCLiCIAi1RARc
QRCEWiICriAIQi0RAVcQBKGWiIArCEKDUNXZBQ3lIqoGG3A/+OADdu7cWdfdUEtYWBiTJk2qcFlm
Ziaurq48ePCgxvV+8skn/Pe///2n3ROEeu/u3bvK7NqPS0xMJCYmhtTU1DroWc002IArCMKLo6Sk
BIC0tDSVwJqamkp6erpKmfqsXmftBbh8+TJr1qwhPj4ea2trZs6cSa9evVTKFBcXs3XrVkJDQyks
LMTd3Z1//etfNGnShHv37rFq1SquXbvGvXv3cHR0ZMGCBbi4uBASEkJERARNmjQhNjYWhULBW2+9
Rf/+/avt1x9//MFnn31GfHw8+fn5dOvWjaVLl2JoaMiDBw/497//TWRkJKampvTu3Vtl3R07drB3
714kSWL8+PEqy2JiYli1ahWxsbFYWVkxY8YM5fqJiYl8/PHH3Lhxg7Zt29K0aVP09fX/4RYWhPrP
xsaGv/76i5ycHORyObq6ukiShFwuB8DQ0BBra+s67mX16vUINzs7m5kzZzJmzBgiIiKYMWMGH3zw
ATk5OSrlduzYQUREBFu3biUkJISCggJWrlwJwH//+180NDQIDg4mIiKC1q1bs2nTJuW6Z8+eZezY
sRw4cAB/f3/+/e9/V/tLKUkSH3zwAX379uXkyZMcPnyYtLQ0vvvuO2WbaWlphIaGsmHDBs6ePatc
NywsjAMHDrBlyxYOHTpEbGyscllOTg6BgYEMGDCAH3/8kdmzZ7NgwQISExORJIl//etfdOjQgVOn
ThEQEMC5c+f+8TYWhIaiRYsW6OnpARAXF0dcXBwAenp6tGjRoi67prZ6HXCjo6OxtLTEx8cHLS0t
PDw82LJlC7q6uirlDh06hL+/P9bW1ujr6zNjxgyOHz9OYWEh77zzDnPnzkVbW5u0tDSMjIzIyMhQ
ruvg4EDXrl0B6N27N/fv3ycvL6/avm3cuJEJEyZQWFhIZmYmxsbGZGZmAqVBderUqRgYGGBjY8PE
iROV6504cYJRo0bh6OiIvr4+b7/9tnJZ2Yj45ZdfRktLi27dutG3b1+OHDminL+aPn06Ojo6uLq6
0rdv33+yeQWhQdHU1KRVq1Zoa2sjSRIA2tratGrVCk3Neh3KlOr1lEJGRgaWlpYqz7Vr107lsSRJ
pKamsnTpUpYtW6Z8Xltbm7t375KXl8fatWu5desWMpmMpk2bqqxvbGys/LvsTatuhKuhocHvv//O
rFmzyMnJoWXLlmRlZSFJEgUFBeTl5WFhYaEs/+iuTkZGBu7u7hUuu3v3Lrdv31YJpMXFxXh5eZGR
kYGRkRGNGjVSLrOxsUGhUFTZV0EQ6o96HXAtLCxIS0tTeW779u0MGDBA+VhDQwMzMzMWL15Mjx49
AFAoFCQnJ2NnZ8eoUaMYPXo0W7ZsQVNTk2+//ZaDBw/+o34lJyfz0UcfsXnzZuXoeN68eQA0btwY
AwMD7t69i729PYByUr/sNd29e1f5+NFlzZo1o127dmzfvl35XFpaGo0bN+bu3btkZWVRUFBA48aN
lctMTU3/0WsRhIaipKREeaxFQ0MDKP2ux8bG0qZNmwYxyq3XPezVq5dyLrSkpIQzZ86we/duDA0N
VcoNHz6cTZs2kZaWhkKhYPPmzcyYMYOSkhJyc3MxMzNDU1OTO3fusG/fPoqKiv5Rv8qmHJo1awbA
xYsXOX36tLLeESNGsGXLFu7fv09aWhpff/21ct0RI0bw3XffERMTQ0FBARs2bFAu8/T0JD4+nsOH
D1NSUsLt27eZPHkyERERODs707JlS9atW0dhYSFXrlzhxx9//EevQxAaklu3bpGfnw+Ak5MTTk5O
AOTn53Pr1q267Jra6vUI19DQkM8++4zVq1ezatUqbGxs+PTTT1WmAQACAgIoKSnhjTfeIC8vDxcX
Fz777DO0tbWZP38+n3/+ORs3bsTExIShQ4eybds2CgoKnrhfrVu3ZtKkSUydOhUdHR3s7OwYOXKk
8gDY22+/zaeffsro0aNp0qQJAwYM4NKlS0BpUE1JSeGdd96hsLAQPz8/Zb2mpqasW7eOtWvXsmbN
GvT19Rk3bhwjR44EYPXq1SxdupR+/frh5OQk5nCFF8bdu3eVB8vt7OyUMcDOzg65XE5OTg6pqanl
piDrGw2pbPb5GYmMjASgS5cuAMTGxtKtW7dn2aQgCM+ZlJQU7ty5g4WFBTKZTGVZUlISaWlp2NnZ
qRVwf/nlF1q1aqVWu7/++itQOlB6Gur1CFcQBAFKDy43a9aswtQ4MpkMKyurOs1Vpi4RcCsQFxfH
7NmzK13+9ttv4+XlVYs9EgShqoDaEIItiIBbIScnJ4KDg+u6G4IgPGfq9VkKgiAIzxMRcAVBEGqJ
CLiCIAi1pNYDroGBgcrVVYIgCLUlPT0dAwODOmu/1gOumZkZiYmJIugKglCr0tPTSUxMxMzMrM76
UOtnKejo6ODg4EBmZiaJiYm13bwgCC8oAwMDHBwc6vQUsjo5LUxHRwcrKyusrKzqonlBEIQ6IQ6a
CYIg1BIRcAVBEGqJCLiCIAi1RARcQRCEWiICriAIQi0RAVcQBKGWiIArCIJQS2rtPNyyO6cLgiC8
qMQIVxAEobZI9VRZ1z766KN69X893mSCINRzzzyJpCAIglCq3k4pLF68uK67UKH61q+EhIS67oIg
CGpqMAE3ISGB8ePHY2pqSuPGjWnfvj2bN29WLt+2bRt9+/at9X7Vpd27dzNjxoxnUvfEiRPr1WsV
hOdBgwm4I0aMQFtbm/DwcG7cuMGCBQv44IMP2L17d532qy5lZmYiZoQEoeFoEAG3sLCQ3377jQ8+
+IBOnTrh4OCAr68vK1euJDMzU1nuwYMH+Pv7Y2Jigr29PQcOHFAuO336ND179sTQ0JD27dtz8OBB
AGbMmMG0adOU5Xr16oWfn5/ysbe3Nzt37qywX2WsrKyYNWsWJiYmzJ07F4VCwaJFi7C3t8fS0pIp
U6aQk5MDlI7EBw4cyMiRI/Hw8KB79+6cOXOm2n4+3s6kSZNYvHgxP/74Ix4eHkiSxHvvvYelpSWW
lpYMHz4cuVxerq81eb0JCQn079+fJk2a0LVrV3777Tdluf3799OuXTuMjY3p378/MTExANy4cQN7
e3smTpyIsbExR44cqXJ7CMILpW6P2VWu7KyAMhMnTpRcXFyktWvXSr/88oukUChUlm/dulUCpO3b
t0sPHjyQPv30U8nIyEgqLi6W4uPjJT09PWnnzp1SUVGRFB4eLhkYGEinT5+WTpw4ITk6OkqSJEm5
ubmSoaGhZGVlJUmSJP3111+Svr6+lJqaWmm/JEmSLC0tpSFDhkiJiYnSnTt3pKVLl0odOnSQEhIS
pNzcXOnll1+WXnvtNWU/NTQ0pPDwcEmSJCkiIkIyMzOTsrKyquxnRe2sXbtWGjZsmCRJkhQaGiq1
bdtWun//vvTw4UPJ19dXevPNN8v1Vd3X++qrr0rNmjWTzp07J+Xk5Ehjx46Vhg8fLkmSJEVFRUlN
mzaVoqKipMLCQmnt2rVSy5YtpcLCQun69esSIC1cuFC6ffu2lJubW+X2EIQXyTO/8CEyMrJG5bt0
6QLArFmzVEZB69ev58iRIxw6dIiVK1eSl5fH6NGjWbJkCaampuTn5+Pi4sLYsWMpKipi7NixvP/+
+9y+fZu9e/fSuXNnRo8ezYMHD+jatSu+vr5s27aNVatWkZqaytWrV4mJicHT05OLFy9y8eJF4uPj
ad++PY0bN1b25fF+AZSUlDBu3DiMjIwA2Lp1K8uWLcPExISSkhIWLlxIx44dWbVqFfn5+XTv3p2u
XbuSk5NDly5dsLW15dChQ8jl8kr72bFjx3LtFBQUoFAoyMnJQVtbm8TERDZt2sSQIUPYtGkTmpqa
5fratWtXtV5vUVERY8aMoW3btkiShI+PD8uXLycnJ4dNmzbh6+tLp06dyM/PZ8qUKaxdu5ajR49i
Z2cHwGuvvYaxsTElJSVVbo/GjRsD4sIYoX7z9PR8KvXU2ymFFStWqDzOz89n5MiRfPnll9y4cYOI
iAhSU1OZMmWKsoypqanyb11dXQCKi4tJT09HJpOp1Gdvb49cLkdXVxcvLy8iIiKIjIzEw8OD3r17
c+bMGcLCwhgyZEiV/SpjY2MDgCRJJCcnExgYiEwmQyaT0atXL3R0dJS7+I9nujA1NSU1NbXKfj7e
zuPc3NxYu3Ythw4dwtXVlR49ehAVFVWuXE1e7+Pbs7i4GAC5XM7XX3+tfH0ymYz09HSSkpIA0NTU
xMLCQu3tIQgvilq7tLds5KquuXPnKv8OCQnh3XffJTY2lkaNGgHQsmVLZs6cyYQJE6qty9bWlvPn
z6s8Fx8frwwKgwYNIiIigri4ODZv3oyuri4RERH8+uuv7Nu3r9J+PUpDQ0P5v6WlJZs2bcLLywsA
hUJBfHw8jo6OREdHKwPTo32xtbVFQ0Ojyn4+2s7jfyclJdG+fXvCwsLIyclh/fr1vP7668THx5fr
a01eb0WsrKx46623WLRokfK5W7duYWNjQ1JSUrk+VrU9ytT08yEIteFp73k1iBGut7c3BgYGTJw4
kR9++IGbN2/y/fffs3DhQry9vauta8SIEVy7do29e/dSXFxMdHQ0e/fuVQZrb29vwsPDuXPnDi4u
Lnh6enLixAlKSkpwcXGptF+V8fPzY9myZSQnJ6NQKFi+fDljx45VLr906RIHDx5EoVCwfv16CgoK
6NevX7X9fJyuri6pqamkpqZy9uxZ/Pz8SEpKwsDAAENDQ5UR6qNq8nor8sorr7B9+3YuXryIJEkc
O3aMnj17kpyc/ETbQxBeFHWSRFIdj44k9fT0OH78OIsXL2b69Oncu3cPS0tLRo0apTLKqoy1tTVB
QUEsXLiQf/3rX1hbW7NmzRr69eunXG5vb4+9vT0aGho4OjpiZmZWbjrh8X5VZs6cOUiSxKBBg8jO
zqZz584EBQWhpaUFQMeOHQkODmbmzJm0bt2a4OBg9PX10dfXr7Kfj+vXrx9r1qzB3d2dmJgYrl+/
Tr9+/cjLy6Nt27Zs37690u2h7uutrN0VK1YQGBiIXC6nefPm7Nq1i5YtWyrPVqjJ9hCEF8Uzv7S3
7KBZTXcZV6xYoVZwq23/tF+7du1i//79HDt27Cn2ShCEZ6FsSuG5P2hWH4Mt1N9+CYJQ/9XbgFt2
6lPZnGl9+b+sX4IgCDVVb6cUBEEQ6toLM6UgCILwvBEBVxAEoZaIgCsIglBLRMAVBEGoJSLgCoIg
1BIRcAVBEGqJCLiCIAi1pM7vpXAk7jKfXDjCn/dT1Crf2sSahT1HMdSx4zPumSAIwtNV5wF3QfRB
knLvqV3+z/spzI8OUgm4RkZGZGdnK+9z8KT/l9UjPD+e1mfjWXyGMjIylDd+V4ejoyOurq40a9as
QdYn1IMrzUw3Bj5RvfcCNz5xnwShrmVkZBAUFISXlxcdO3ZUuYdwRSRJ4urVq4SHhzN+/PhyQa2+
19dQvZBXmjXR0eW3gJVc9f9PhcvVuUetOp5WPWVycnLIysp6qnUKNVPRe5qYmFir7VXk4sWLeHl5
0alTp3LBTKFQEBQUhEKhUD6noaFBp06d8PLy4uLFizWqryL/pL6ioiIOHjxISUmJ2vUJpRpEwN0z
6m3amNmgp92owuU1uYOXo6MjFy9e5Pr16yqZFGpaD5T+qk+aNAlzc3NeffXVcss9PDyUu2O7du1i
6NChNar/Sdp81BdffMGYMWMAmDRpEmvWrPnH7QPExcU1mJv4PP6e7tu3j/fff7/W2qtMfHw8HTtW
fByipKSE5ORklYBWpmPHjhXu4ldVX1WepD5JkpDL5So/CNXVJ5Sq9wF3oftohrfsQr6ikDHBFQeM
uhrhpqSkcPjwYU6dOsWWLVvKLb93T/256afVZm2wsrLiq6++qpO2a+rx9/RZvCdVtVcVdUaiNVmn
vtcn1KOAq6WhyT6fdzDTa6p8bmiLzixyH4OEhO93n3MtPanCdSsaxXh4eCCTyXB0dGTOnDlq9aGi
0Ul+fj7z5s3D2dmZFi1aEBAQQGZmJsnJycp5nQkTJnD27FmV9SZOnEhubi7jx4/nyJEjyrpmzJiB
vb097dq147vvvlOWv3r1KkOGDEEmk+Hm5kZYWFi5vlTUZmX9q0pl62RkZGBiYkJKSukZI6dOncLI
yIjY2FgAfvrpJ9q3b8/du3d57bXXgNLRrrOzM8uXL6dPnz60bduWJUuWKNuKi4tj6NCh2Nra4u3t
zb/+9S9mzJhRYb+qet9atmzJvHnzsLe3Z8mSJRQXF7N8+XLatWtHy5Yteeutt8jNzS1X56Pv6blz
51ixYgWRkZEMHjyYmJgY2rVrR0BAADKZjOPHjyv3gMrMnDmT+fPnA6jV5ty5c8nMzMTIyEjsWgvl
1JuAO7RFZ8a16c7RCR/QWFsHZ1Nr9vrMQAMN5obv5+ity5Wu++io4tatW7z77rusXbuWpKQkjhw5
ws6dO9X68Fc0Opk7dy4XLlwgMjKSK1euUFJSgr+/P7a2tvz4448A/PbbbwwaNEhlva+//hoDAwOC
goIYMWIEUJrLrEePHty4cYM333yTd955h5KSErKysvDx8cHHx4eEhARWrVpFQEAAN2/eVKmzojYr
619VKlunWbNmdO3alYiICACioqLQ09Pj9OnTAHz//fcVpuFJTU1FR0eHqKgoQkND2bhxI7/99huS
JOHn50fXrl2Jj49n0aJF7Nmzp8I+qfO+xcTEEB0dzfTp01m9ejWhoaGcOHGCK1eukJ+fz+zZs8vV
++h76ubmxty5c5U53KA0A7GDgwPnzp2jT58+VW43ddpcsWIFBgYG7Nmzh5YtW1ZZX5nMzEzS09Or
LJOenl7tD6lQ/9X5aWFljty8xDe/R/NKu978HrAKq6ZG6GrpsPNqJJ9eCK1y3UdHMXZ2dpw/fx5H
R0eysrL466+/MDQ0JDU1tdo+PD7ClSSJoKAg9uzZg7W1NQArV67EycmJO3fu1Pg1uri4MHHiRKA0
EeP8+fO5f/8+J0+exNzcnGnTpgHg7u7O0KFD2bNnDx999FGl9T1J/6pbZ/DgwURERODn50dkZCST
Jk3izJkzTJkyhbCwsEr7M3XqVACcnJxwdHQkPj6e4uJibt++zaJFi2jUqBG9e/dmwoQJVHRijDrv
m6+vL3Z2dgB89dVXLFu2TJlWfsmSJXTs2JH//ve/NG7cWLmOOnOqAQEB5ebzK6JOm2XtDR8+vNr6
yhQUFBASEoKPjw+2trbllsvlckJCQhg9erRa9X311VdqTZ2Ympoq91Sq8t1333H79u1yz2/cqHqm
kL29vdp9fFHVm4ALMOXoFzgaW+Bm2wqAc8mxTD9RcSLERz2aZ0xHR4evvvqKPXv2oKurS6dOnSgq
KqrwS15VPVD6RcjLy6N58+bK58zMzNDX1+fOnTtqfUkf9WgWXV1dXaB0NzUpKYnY2FjlFxlKj1SP
HDmyyvqq69+TrOPt7c2XX35JVlYWSUlJbNmyhWHDhpGens6tW7dwd3dHLpeXq9fMzEz5t7a2NiUl
Jdy5cwdzc3NlansAmUxW4VkC6rxvNjY2QOmPRnJyMoGBgSrTEzo6OsjlcpWRZXU56DQ1NdV6H9Vt
80ly3tna2jJgwAAOHTrEhAkTMDQ0VC5LS0vj8OHDDBw4sMJgXBF1gmhNPB5ECwsL2bhxI4GBgSrv
rVC9ehVwFSXFjAhaxcU3lgMwImgVipLiatd79AP+zTffEBQURHh4uPID2qpVK7Xaf/yLoqenh6mp
Kbdv38bJyQko3bV78OAB5ubm1danqanejI2lpSWurq4q87bJycno6+tXud6T9K+6dezt7dHU1GTH
jh307NkTZ2dntLW12bhxI15eXjX6gtna2pKenk5hYaFyvcpSqavzvpUdkNHQ0MDS0pJNmzbh5eUF
lP5AxcfH4+joqLLO4+/p4wd1Hn+spaXFw4cPlY8zMzNp0qSJ2m0+ac671q1bk52dTXBwMOPGjQNQ
PnZ1daV169ZPVK9Qv9SbOdwyWQUPaLnpPVpueo+sggdqrfPoPF12djZ6enqYmJhQXFzM+vXrSUtL
o6ioqEb1lPH19WXZsmWkpKSQl5fHhx9+SPfu3bG3t6+2Ph0dHWJiYsjPz6+y3LBhw/jzzz/5+uuv
KS4uJjY2lgEDBhAaWvVUypP2r7p1Bg4cyOeff66c0/Tw8GDTpk01Pq2tQ4cOtGzZkhUrVqBQKLh4
8SJBQUEVlq3p++bn58eyZctITk5GoVCwfPlyxo4dW67c4++prq4uqamplU4xtWzZkt27d5OVlUV4
eDinTp2qUZsrVqygsLCQQ4cOcf/+/Sq3z+O6d++Oo6MjISEhABw6dIgWLVrQvXv3GtUj1F91HnBt
mprUeB17QzOVx4+OKl5//XVatGhB27Zt6dSpE1euXGHgwIHcuHGj2norGp0sWrSIl156CS8vL1xc
XCguLuabb75Rq58TJ05kxowZ1ZY3NzcnODiY3bt34+DgwKhRo/D392fSpEnVtvEk/atuHW9vb+7d
u4eHhwcAffr04eHDhwwcOFCNV/0/GhoafPnll0RFRSGTyVi0aBGenp7o6OiUK1vT923OnDl4eHgw
aNAgHBwc+PnnnwkKCkJLS0ul3OPvab9+/cjMzMTd3b3CepctW8Yff/xBmzZtWLduncruuTptzp07
l9zcXF577TVu3bpV5fapaJpr4MCBGBsbA2BiYlJum1c1NfYkF43WZn1CPbi090jcZZadP0RsVvUH
taD05jWL3EYxxOF/J2U/ybxZRZ5WPUKphw8f8tNPP+Hu7q7cdZ8+fToymUx5qtWzVtvvqbrtnThx
AgcHBzp16lRuWVFRERcuXKBHjx7lfpyuXLlCQkICgwcPVru+qjxJfcXFxcqDfI//wFVWX0P1tC/t
rfOAKzy/JEnC0dGRTz/9lDFjxnD16lVGjRrF/v376dmzZ113r07V93sfiHsplBIBtwLibmH1V1RU
FPPmzePmzZtYWVnx3nvv8frrr9da++JuYfWnvoZIBFxBEIRa8kLeLUwQBOF5IAKuIAhCLREBVxAE
oZbUqyvNqiJynwmC0NA1mID7NHKf1SdPevT8eTqTQhxVF140DeYsBZH77PkizhsVGgJxlkIVqst9
Vp88aZaKp513ra7U95xegvAsPFcBt7rcZ1V5mjm/1PHo5Z81yXdWXy89joqKolWrVlhaWvLLL79U
W76+5/QShGfhuQm46uQ+q08eHal6eXmpfW+B+jrCPXjwIJ6enly/fp3OnTurtY7IwSW8aBpcwP0n
uc+gNK9V3759sba2pkePHvzwww/lylSVuyo9PZ3JkyfTrl07LC0t6dOnD5cvl6b/2bVrFxMmTGDq
1Kn06NGDrl27cujQoQr78ehINTw8nOXLS+8BfOnSJTw9PbGzs+Oll15i27Ztla73qJ07d9K1a1dk
MhlDhw7l2rVrQPU5xzIyMpg6dSotWrSgffv2rF27ttI7Pp09e5b+/ftja2tLjx49lK9t3rx5HDhw
gOPHj/PGG2+QlZUlcnoJQgUaXMD9J7nP7t27x4QJE3jjjTeQy+UsXbqUiRMnkpWVpVKuqtxV8+fP
R1NTk4sXL5KYmEjHjh35+OOPlet+//33TJkyhQsXLvDhhx8ya9asCneNKxupzpo1S9m/rVu3snDh
QpWbdle03sGDB1m6dClbt24lAs3ZBAAACdBJREFUPj6e4cOHM3r0aOXrqiznGJSmxtHQ0ODatWsc
P36cffv2VZh3LDExkTFjxuDv709iYiKrV68mMDCQc+fO8cknn+Dj48P06dM5dOiQyOklCJVoMKeF
lfknuc/CwsKwtbVV3jzF29ubo0ePKtPdlKkqd9XHH3+Mrq4ujRo1IjExEWNjY65cuaJc19nZmd69
ewOl9zb9v//7P7KzszExUb3vb2UjVSMjI0JDQ7Gzs6N3794kJyerZI6oaL0DBw4wZcoUunXrBkBg
YCC7du0iLCwMV1dXoOKcY4aGhkRERHDz5k309fXR19dn5syZbN++XZl7rczhw4fp3Lkzfn5+QGne
NT8/P/bu3Yubm5tK2UaNGj1XOb0E4WlpcAEXnjz3WVpaWrkvdFmQKlNd7qrc3FzmzZvHH3/8QYsW
LTA0NFTZBX80t1dZoKxshFtR8Ny2bRtLliwhMDCQnJwcXn75Zf7973+jp6dX6XoZGRkq+dCgNKGf
XC5XBtyKco4lJZVOvXTt2lW5rKSkpNyPA5SOMCtqIzw8vFzZmqrvOb0E4WlpcFMK8L/cZwnZ6SRk
p6ud+8za2rpccsVPP/1UJR15We6qPXv2kJSURFJSEvHx8URHR+Po6MikSZMYMGAA8fHxnDp1ilGj
Rj3Ra6go2BYXF3P9+nVWr15NTEwMJ0+eJCIigt27d1e5nq2tbbnEjAkJCdUmR7SyskJLS4uYmBjl
a/3999+VKcSrayM+Pr7GiTQr07p1a1xdXQkODlbOl4ucXsLzpkEGXHiy3GcDBgzgzp077N27l+Li
Yk6ePMm6devKjegqy10lSRLZ2dmYm5ujqanJ7du32bx5M4WFhTXuf0VzsVpaWrz77rts2LCB4uJi
rK2t0dDQUMn2W1netR07dnDp0iUUCgUbNmwgJSUFb2/vKvvg5OSEq6src+bM4cGDB2RlZTF58mSV
OekyI0aM4Nq1a8ptFx0dzd69e5kwYUK5siKnlyBUrMEE3KeR+8zExITg4GC2bduGvb09S5cuZc+e
PSq721B57iptbW0+//xzVq5cSatWrfD19eXll18mMTGx2kSRj6vqbIOjR4/SvHlzevXqhY+Pj0qi
worWGzZsGAsWLMDf3x+ZTMahQ4cICQmpNrOwhoYGu3btIisriw4dOtC5c2esrKxYvXp1ubLW1tYE
BQWxdetWZDIZ77zzDmvWrKFfv37lyj4vOb0E4WlrMJf2Po3cZ/XJk+bael7yrtX3nF6CACLjg/Cc
EPdSEBoCEXD/v727C2nqjeMA/k2apHgmbVYL2xilNo0wsiJSQSKpoC6CshWDiAjNC2PYi0VGCEFS
171QIFlhL1IZ4UVC3fSCqd1ELRB0jdbJHU6QosI22f9CPDTqn9Pq7Ozp+7k8z9n4nQN+eXj2+PwE
wdPCeFoYGR8Dl4hIJzwtjIgoRTFwiYh0Yuj/NItEIlBVVdsIT0Q0W5IkwWq1/rDzRU+GDdxIJAK/
3w+Hw4GCgoJkl0NEKU5RFPj9fjidzqSFrmEDV1VVOByOaTfvExElYipLVFWFzWZLSg2GXcMdGRlh
2BLRH7VgwYKkLlEaNnCJiETDwCUi0gkDl4hIJ4b90WwmxsbGMDIy8tODvkWQlpYGSZKQmZmZ7FKI
6DcIMcMVOWyByS4M3ItMlPqECFyRw3bKv/CMRKITInBn6vjx42hqavrpWEdHx6zPRi0vL0dXV9cv
71FVFW63Gz6fT7vm8/ngdrsTanxIRKlLiDXcVDI2Nobnz5/D4/Fo4ezxeDA0NDTjrhFElFqEmeG2
t7ejsrISLpcLK1aswOnTp7WxgYEB7NixA3l5edi5cydCoZA2Njo6irq6OixfvhwbNmxAb29v3Pc+
evQIFRUVcLlcqKqqwsDAgDbW1dWF8vJy5Ofno6GhAdFodNo67XY7zp07B1mWceDAAezbtw+yLOP8
+fMJd6UlotQkROAODg7i6NGjaG5uxocPH9De3o6bN2/izZs3iMVi2L9/P0pKSuDz+eD1euNaezc1
NUGWZfT09ODOnTt4+vSpNtbd3Y36+no0Nzfj7du3qKyshMfjQSQSwadPn1BdXY1Tp07h/fv3cDgc
+PjxY0L1ejwe1NTUoLu7G319faitrcWePXv++HshImMRInBzc3Px7NkzrF69GsPDwxgdHUV2djYU
RcG7d+/g9/tx7NgxmEwmlJaWYuvWrdpnOzo6cPjwYZjNZtjtdtTU1GhjbW1t2LVrl9Zb6+DBg5iY
mMDLly/R2dmJ4uJibN68GSaTCYcOHcKiRYsSrnm6FjBEJB4h1nDnzp2LtrY23L17F+np6Vi5ciXC
4TBisRiGhoYwf/58pKena/fb7XZEo1GMj49jeHgYixcvjhubEgwG0dvbi/v372vXwuEwgsEgQqFQ
3AEYc+bMwZIlSxKq98aNG7h06RLWrl0LALh48SLy8vLgdrtn/Q6IyPiECNx79+7hwYMH6Ozs1MJz
1apVACbbe3/9+hXj4+PIyMgAAHz58gU5OTnIyMiA2WxGMBjEsmXLtLEpCxcuRHV1NRoaGrRrg4OD
sNlsuHXrFl6/fh1Xx/ef/T9+vx8nTpxAbm4uWlpaEIvFsGXLFhw5cgTr16+H0+n8rXdBRMYlxJLC
t2/fMG/ePGRnZ2NiYgJXrlxBKBRCOBxGUVERXC4Xzp49i3A4jJ6eHjx+/Fj77O7du3HhwgWoqgpZ
lnH58mVtrKqqCq2trdpa8JMnT1BRUQFZlrFt2zb4fD48fPgQ0WgU165dQzAYnLZWi8WCsrIytLa2
wmKxwGq14vr16ygrK4PFYvkr74eIjEGIGe7evXvx4sULrFmzBllZWVi3bh02btyI/v5+AEBLSwu8
Xi8KCwtRUFAQt8/25MmTaGxsRGlpKbKysrB9+3a8evUKwGTjuDNnzsDr9eLz58+w2+24evUqli5d
qn1vY2Mj6uvrsWnTJhQXF09bq9lsxu3bt+OuFRUV/XCNiMRj2K69/f39KCkpSeheWZZnXFcq+n6t
mYhmp6+vD/n5+Qndy669P5GWJsRj/NK/8IxEohPir1iSJKEDaeq0MCJKbUKs4WZmZvLoQiIyPHGn
hUREBsPAJSLSCQOXiEgnhg1cSZKgKEqyyyAigSiKktQfoA0buFarFYFAgKFLRH+EoigIBAKwWq1J
q8GwuxRMJhOcTidUVUUgEEh2OUSU4iRJgtPphMlkSloNhg1cYDJ0bTZb3KlcRESpyrBLCkREomHg
EhHphIFLRKQTBi4RkU4YuEREOmHgEhHphIFLRKQT3fbhTp2cTkT0r+IMl4hIJ3+9pxkREU3iDJeI
SCcMXCIinTBwiYh0wsAlItIJA5eISCcMXCIinfwHdjOo52hmUnEAAAAASUVORK5CYII=
--=_9ad4186270c7af582cc5792dbb236f06--


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 20:37:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 20:37:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.965265.1355860 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7gqe-0005y6-Ql; Wed, 23 Apr 2025 20:37:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 965265.1355860; Wed, 23 Apr 2025 20:37:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7gqe-0005xz-NE; Wed, 23 Apr 2025 20:37:36 +0000
Received: by outflank-mailman (input) for mailman id 965265;
 Wed, 23 Apr 2025 20:37: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=UY1Q=XJ=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u7gqd-0005xt-KZ
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 20:37:35 +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 c81efb8c-2082-11f0-9ffb-bf95429c2676;
 Wed, 23 Apr 2025 22:37:33 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by nyc.source.kernel.org (Postfix) with ESMTP id E7E62A4BC38;
 Wed, 23 Apr 2025 20:32:03 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 455DDC4CEE2;
 Wed, 23 Apr 2025 20:37:30 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c81efb8c-2082-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1745440651;
	bh=f5bt742FmkSStgygNozfe3oDF0tdCvDPdwEKB+XIvzI=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=qsbmt1dRWzDhS/VgtyCiwwJP6X9PbV/BnSSAFVPKlTWBhGs3D67e2MsQEtd1lpYZV
	 AKhQU2M2OW1kSHhRgmhWH5QZxWJ4j4Q0qlgaRZHekfZwNEMumQBBGQmi870PZ0MZDM
	 EmO+62Hutd/mhTJSrrBUP4EqTWxKkGESee3+1JOWo7AI6XME7Cwc+vPd1BSUFC23qK
	 /iasJHGQTE5MKc1NYig9LWQl+1h9cQashhniMVpsWxQcKeRBJQjtgIInPYAVAReNOA
	 L9aeyfbRbtEpY7GnuMyLKTfd2J/TXN6EY3ezgRMop4JohGno+WMlRI63v0s5Lo+vU9
	 SJiGAxZCwIBCQ==
Date: Wed, 23 Apr 2025 13:37:29 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jan Beulich <jbeulich@suse.com>
cc: victorm.lira@amd.com, Nicola Vetrini <nicola.vetrini@bugseng.com>, 
    Federico Serafini <federico.serafini@bugseng.com>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    Anthony PERARD <anthony.perard@vates.tech>, 
    Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Bertrand Marquis <bertrand.marquis@arm.com>, 
    "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH 1/3] misra: add deviation for rules 21.1 and 21.2
In-Reply-To: <20989ef0-a906-4ad2-818b-e52dd49b868d@suse.com>
Message-ID: <alpine.DEB.2.22.394.2504231337240.785180@ubuntu-linux-20-04-desktop>
References: <790f9cae9a75b9f29554943c08abb6537647644e.1745364478.git.victorm.lira@amd.com> <20989ef0-a906-4ad2-818b-e52dd49b868d@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, 23 Apr 2025, Jan Beulich wrote:
> On 23.04.2025 01:43, victorm.lira@amd.com wrote:
> > From: Nicola Vetrini <nicola.vetrini@bugseng.com>
> > 
> > MISRA C Rules 21.1 ("#define and #undef shall not be used on a
> > reserved identifier or reserved macro name") and R21.2 ("A reserved
> > identifier or reserved macro name shall not be declared") violations
> > are not problematic for Xen, as it does not use the C or POSIX
> > libraries.
> 
> In the course of all the Misra discussions it was pointed out more than
> once that it's not just the titles which matter, but also the
> "Amplification" text. While the latter two of the three bullet points
> applying to both rules clearly are library-centric, the first one isn't.
> In that light it's entirely unclear to me how ...
> 
> > Xen uses -fno-builtin and -nostdinc to ensure this, but there are still
> > __builtin_* functions from the compiler that are available so
> > a deviation is formulated for all identifiers not starting with
> > "__builtin_".
> > 
> > The missing text of a deviation for Rule 21.2 is added to
> > docs/misra/deviations.rst.
> > 
> > To avoid regressions, tag both rules as clean and add them to the
> > monitored set.
> 
> ... our code base could be anywhere near clean towards these two rules.


Given the section these two rules belong to "Standard libraries" and
given the rest of the rule description, it is clear to me that the
conflicts and undefined behaviors the two rules are trying to prevent
are conflicts with C or POSIX libraries. Nicola is the original author
of the patch and he has more experience with MISRA and I would trust
his interpretation.


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 20:41:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 20:41:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.965277.1355869 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7gu9-0007jV-7G; Wed, 23 Apr 2025 20:41:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 965277.1355869; Wed, 23 Apr 2025 20:41: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 1u7gu9-0007jO-4F; Wed, 23 Apr 2025 20:41:13 +0000
Received: by outflank-mailman (input) for mailman id 965277;
 Wed, 23 Apr 2025 20:41: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=UY1Q=XJ=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u7gu7-0007jI-O0
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 20:41:11 +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 4930dc30-2083-11f0-9ffb-bf95429c2676;
 Wed, 23 Apr 2025 22:41:09 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by nyc.source.kernel.org (Postfix) with ESMTP id A52D2A4C1AC;
 Wed, 23 Apr 2025 20:35:40 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id EB864C4CEE2;
 Wed, 23 Apr 2025 20:41: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: 4930dc30-2083-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1745440868;
	bh=K280hemRMvhWfQuTVx2Dj0v++g0aYj2VBO5j4YUV15A=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=NYhtFqqIJ7G4Pjzso3siLRZ8c9sIzkxLqnWeQaIQdZoPGjcHt1IKUuMcL7RYi+4Ba
	 NJjD8YxK7IghmnlzpTY+ZIAbeoz9bfdhQAVTW1r7/ZRdYmapLS16gV7CQtsg6473On
	 kpZ6cDyyRyZBkAmWaxh1CCwHYrNrBGYFRF7j5l3jYTiC7doMMW4am5jc3ILRWKtqAQ
	 GaVyunywXD+MSllfni3luDhHiyeAqUOcktZNq5u+8IR+apKzC8EQbCzfD8IGN7jMMJ
	 ptuxB4gbqBE9zQTIt7ddEE9/CvvzVAwHuKrPMSdyEyD7m4ERiXyUgYmWz8E9cUgfTS
	 hyiTRR/btm31Q==
Date: Wed, 23 Apr 2025 13:41:06 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: "Lira, Victor M" <VictorM.Lira@amd.com>
cc: xen-devel@lists.xenproject.org, 
    Federico Serafini <federico.serafini@bugseng.com>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    Anthony PERARD <anthony.perard@vates.tech>, 
    Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, 
    Julien Grall <julien@xen.org>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Nicola Vetrini <nicola.vetrini@bugseng.com>, 
    Bertrand Marquis <bertrand.marquis@arm.com>
Subject: Re: [PATCH v1] misra: add deviation of Rule 5.5
In-Reply-To: <d81178fe-82b8-434e-8610-e0ec71df6a28@amd.com>
Message-ID: <alpine.DEB.2.22.394.2504231338140.785180@ubuntu-linux-20-04-desktop>
References: <9e1210f2a9c794d68dcc6b897239b228b141296a.1745427770.git.victorm.lira@amd.com> <48c7830931a98b2bf70ef1509f309b262b9e5792.1745427770.git.victorm.lira@amd.com> <d81178fe-82b8-434e-8610-e0ec71df6a28@amd.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Wed, 23 Apr 2025, Lira, Victor M wrote:
> Continuing a discussion from before:
> 
> On 4/22/2025 11:44 PM, Jan Beulich wrote:
> > Caution: This message originated from an External Source. Use proper caution
> > when opening attachments, clicking links, or responding.
> > 
> > 
> > On 23.04.2025 01:43, victorm.lira@amd.com wrote:
> > >          memmove.
> > >        - Tagged as `deliberate` for ECLAIR.
> > > 
> > > +   * - R5.5
> > > +     - Clashes between function-like macros and function names are
> > > +       deliberate
> > They may or may not be deliberate, depending on context. I don't think it's
> > a
> > good move to deviate this more widely than necessary. If I get the
> > expression
> > above (in deviations.ecl) right, even
> > 
> > void func1(int);
> > void func2(int);
> > 
> > #define func1() func2(0)
> > #define func2() func1(0)
> > 
> > would be deviated, which I don't think we want. Especially when, in a less
> > contrived scenario, the clash may not easily be visible.
>
> OK, I see the issue for different functions. Does it make sense to say it's
> deliberate when it's the same identifier?
>
> 	void func1(int);
> 	...
> 	#define func1() func1(0)
> 
> Could this be deviated?

I think it makes sense to be clear in deviations.rst and the doc text in
deviations.ecl that we are referring to the same identifier. That we can
do.

I am not sure it is possible to change the ecl rule accordingly to
narrow the check relaxation. If not possible, I'd keep it as it is in
this patch.


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 20:44:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 20:44:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.965289.1355880 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7gxP-0008Ic-Ko; Wed, 23 Apr 2025 20:44:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 965289.1355880; Wed, 23 Apr 2025 20:44: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 1u7gxP-0008IV-HV; Wed, 23 Apr 2025 20:44:35 +0000
Received: by outflank-mailman (input) for mailman id 965289;
 Wed, 23 Apr 2025 20:44: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=UY1Q=XJ=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u7gxP-0008IP-0E
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 20:44:35 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c27d9b81-2083-11f0-9ffb-bf95429c2676;
 Wed, 23 Apr 2025 22:44:33 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 6E2136844A;
 Wed, 23 Apr 2025 20:44:10 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id CFA33C4CEEE;
 Wed, 23 Apr 2025 20:44:29 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c27d9b81-2083-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1745441071;
	bh=uMhUJfZYfVvJEJs7nUGIYRhcIGPxH2J/LW71cLWFygA=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=N5nzcChNII8dVY7nIGO4RQPQUYbyEZ+whE+8UUXXqxMjBUXl1SXRpt7+JFRFJmtRH
	 jVjNN7e/80xEAMR1DnB5b5/lZ0jh3EgCLT+GrwGgegKXY3sjFnSW7CS3UVyefdCHSE
	 0I4Y0Zey7/z3BPsMxwsT/BFKR8C8Eqc51Xx7+5FlKksRPBKpV8l0nCI/ek7M0UJ2D+
	 b66doaJVVmqG8hA+BHH1v4WHRhBBKoO61V9pr8/hab+orlFEB1hY0RwCNDWbRAIyu3
	 5mnwcZJuTmSNApEaKI7FTzYCKHJ42xOfgmFV+EWJl8UEf8yXgC6J1qvTSvKpy97txr
	 TZszWM408VQVw==
Date: Wed, 23 Apr 2025 13:44:28 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Victor Lira <victorm.lira@amd.com>
cc: xen-devel@lists.xenproject.org, 
    Nicola Vetrini <nicola.vetrini@bugseng.com>, 
    Federico Serafini <federico.serafini@bugseng.com>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    Anthony PERARD <anthony.perard@vates.tech>, 
    Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, 
    Julien Grall <julien@xen.org>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Bertrand Marquis <bertrand.marquis@arm.com>
Subject: Re: [PATCH v1] misra: add deviation for rules 21.1 and 21.2
In-Reply-To: <9e1210f2a9c794d68dcc6b897239b228b141296a.1745427770.git.victorm.lira@amd.com>
Message-ID: <alpine.DEB.2.22.394.2504231344200.785180@ubuntu-linux-20-04-desktop>
References: <9e1210f2a9c794d68dcc6b897239b228b141296a.1745427770.git.victorm.lira@amd.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Wed, 23 Apr 2025, victorm.lira@amd.com wrote:
> From: Nicola Vetrini <nicola.vetrini@bugseng.com>
> 
> MISRA C Rules 21.1 ("#define and #undef shall not be used on a
> reserved identifier or reserved macro name") and R21.2 ("A reserved
> identifier or reserved macro name shall not be declared") violations
> are not problematic for Xen, as it does not use the C or POSIX
> libraries.
> 
> Xen uses -fno-builtin and -nostdinc to ensure this, but there are still
> __builtin_* functions from the compiler that are available so
> a deviation is formulated for all identifiers not starting with
> "__builtin_".
> 
> The missing text of a deviation for Rule 21.2 is added to
> docs/misra/deviations.rst.
> 
> To avoid regressions, tag both rules as clean and add them to the
> monitored set.
> 
> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
> Signed-off-by: Victor Lira <victorm.lira@amd.com>

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


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 20:45:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 20:45:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.965298.1355890 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7gy6-0000Lq-TV; Wed, 23 Apr 2025 20:45:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 965298.1355890; Wed, 23 Apr 2025 20:45: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 1u7gy6-0000Lj-PY; Wed, 23 Apr 2025 20:45:18 +0000
Received: by outflank-mailman (input) for mailman id 965298;
 Wed, 23 Apr 2025 20: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=iEkW=XJ=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1u7gy5-0000HG-LW
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 20:45:17 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id dcd333f2-2083-11f0-9eb0-5ba50f476ded;
 Wed, 23 Apr 2025 22:45:16 +0200 (CEST)
Received: from nico.tail608894.ts.net (unknown [46.228.253.214])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPSA id A475A4EE3CA0;
 Wed, 23 Apr 2025 22:45:14 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: dcd333f2-2083-11f0-9eb0-5ba50f476ded
Authentication-Results: bugseng.com; arc=none smtp.remote-ip=46.228.253.214
ARC-Seal: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; cv=none; t=1745441115;
	b=wqUiu8PzR0153AROb/mFaRMKQ68KlR+qjOebgh6zk9NIR41E5oAafICQYozXudYWUoOW
	 EpuBCkIpiy/mlq4+6itrMA/qyhENLmS5Bi1EBFZwybOov3dKvfpXziA5QxwQBZiErjByr
	 5OUHwEa/KnG+8SVijTBzENlxH/8UFI0QG1c8+CWcT6exSEjj6KjVRfiYFUi5VNP86lSta
	 tCbhFSFiYit+MlW3YxFtDmdqcwOZ/CeH8nPe2e+WC4qya9qTw8MLLyX+VUpH/KHNgCRzV
	 zs+TAbPS56Y5lBzo/wAfmEjCza3uNYEKiPK7JSG3m8wL1BHvBAs1fmbDASzahqCylMBLy
	 VCu/b1+7fO3EO9mgFkd0Ey6SDjlLF1E+GID3C/iki9bhpl96ZaYtWo0604J16xT1DHDTn
	 kIywkiZEEYXjYneSFv/OI19bGbnzANntglGH9DiMPI5kmTuaQFBXDYpm1ln0TK9zn1VSA
	 1kBYhKzdq0HM+E7zULJcOnks6uaY76hUzgl8TpMnogWQMvmhoeXIRfbSV9oqeXCMjYchU
	 EGMZO9H/0iRxsVt9YhUOYOLFUtlzcugv9kyRC2KhGlYSldPJLvztFSJD9VGz+pKMpNIE6
	 U8jC/XqyQKocWvWxGo8ZBzPchONJmHDP466ZfonmMc6r7L4eM1cJSwrX4899zV4=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1745441115;
	h=DKIM-Signature:From:To:Cc:Subject:Date:Message-ID:X-Mailer:
	 MIME-Version:Content-Transfer-Encoding;
	bh=QSRbeFNyBTwi1rlnE1pBrrm0cMRFfPjjwxbw65+ew2E=;
	b=ZLv9eZw0yyZwMIv2Y0M+gDIXPl8YmKnOk3BPHWrXlcan1jFukeJqNY0etcWh++mvl9Ul
	 YBvADuv7pk8/jM5kmAOg8BBJvEIJIHe8cBFTlWMajjrIPX9XNZSMPNZ69JV016Y7c1Igr
	 Z2cMwVfP/8NXfqtf+yIJLjEF9Q2quPuRkuUdk5dW+4Mvdr1oaZhX1yb7xmyghEdDzWWXt
	 lkCqwHAk/6AfUOyGLRzylHD/k+pY0ovp5ZnDJo4UKl9nTFq9yz5P4zzvt8WrK9KMWO15A
	 VklV9oaqBbJG0pYaTbUZ6t53m2ygfWutCpre5Nu86c5MFF0n8Tt1TAAXweOu0R0EpcUWh
	 QmUJkbrIBeA68EyV/hgOdkbl5YtnQd5dUjpYujw+o7bm0L8CxSBUl4fU3ttasNQlKRQoc
	 Ka24cu7huJXCUOx04EvPCbUXWTv0GzPmrRTHVDEmQ4nxRjWYvJu53hqSraHMsqNCpdzs2
	 oWax+lgxpjmKy2cv5K2gZIfgvXnGLl98gEjjdTOXnv5tzszBgSIGAjXkD8qOG23RvbW/K
	 V9CCdTxo3pTN1H2eo3OneY/Cbc9Yv/Y7+DIPCg2oFCuoYSN9uhna46BPCAqLftdVI9a/E
	 XjV8LwHLgmpi3RS26CGlOanG987LnNwD6MpK9ti3X+Z/gLGKX4NoaqDiuJ8ecmU=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=46.228.253.214
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1745441115; bh=xwFsdFxA6ryyyRsJ/8Xlk6C4M0YNcSTCIrKaVzKZnuY=;
	h=From:To:Cc:Subject:Date:From;
	b=PVcKqoH3tmxPl/y6KAVhsuwbck6KkDDc2NYXwnjGjB01QzUVts36bxIRNUC3q1fM8
	 +5Lf1LVo3rhWXkqWyzd5PHDoj5JISE7QUEcgTyAONXQkTg2X84e2My8JdvkNWz7MEP
	 eQaQ/MUjdU46x5pdTf0eh+WYNC521uAYvW/KfyB+Dv/XUjO6/a1GIMykyu0H3gTz9m
	 UFTfAFeqAg06Lz4WdBM1sdECgFkp8jtAQAqhPN/LmLumKFzaQRAxbAoJVObZqAReBI
	 gV2uNUWeebuJMR7AdXtnWvlf5Yv75LgkrIZ7YXFVZBhlcnl5X/ypNF/0cC3KeRdSOh
	 o2Tl4cI0jw/uw==
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: sstabellini@kernel.org,
	michal.orzel@amd.com,
	xenia.ragiadakou@amd.com,
	ayan.kumar.halder@amd.com,
	consulting@bugseng.com,
	Nicola Vetrini <nicola.vetrini@bugseng.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [XEN PATCH] misra: update list of GCC extensions used by Xen
Date: Wed, 23 Apr 2025 22:45:11 +0200
Message-ID: <da508095ef2ac0024dfe9f51d9da976da0eaead7.1745441038.git.nicola.vetrini@bugseng.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

__inline was not mentioned in C-language-toolchain.rst, while
__inline__ is not used in code under xen/. __inline is kept because it
may be used in Xen. The ECLAIR configuration is now consistent with the
documented extensions in the rst file.

No functional change.

Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
---
See [1] for a patch that introduces a use of __inline. Rather than
remove it because there are no current uses of that alternate spelling
before shortly bringing it back, it makes more sense to keep it in both
places.

[1] https://lore.kernel.org/xen-devel/20250422113957.1289290-1-andrew.cooper3@citrix.com/
---
 automation/eclair_analysis/ECLAIR/toolchain.ecl | 5 +++--
 docs/misra/C-language-toolchain.rst             | 2 ++
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/automation/eclair_analysis/ECLAIR/toolchain.ecl b/automation/eclair_analysis/ECLAIR/toolchain.ecl
index 8ebf9f132cf2..b8c041d2d36e 100644
--- a/automation/eclair_analysis/ECLAIR/toolchain.ecl
+++ b/automation/eclair_analysis/ECLAIR/toolchain.ecl
@@ -18,7 +18,8 @@
     __builtin_offsetof: see Section \"6.53 Support for offsetof\" of "GCC_MANUAL".
     __builtin_types_compatible_p: see Section \"6.59 Other Built-in Functions Provided by GCC\" of "GCC_MANUAL".
     __builtin_va_arg: non-documented GCC extension.
-    __const__, __inline__, __inline: see Section \"6.48 Alternate Keywords\" of "GCC_MANUAL".
+    __const__: see Section \"6.48 Alternate Keywords\" of "GCC_MANUAL".
+    __inline: see Section \"6.48 Alternate Keywords\" of "GCC_MANUAL".
     _Static_assert: see Section \"2.1 C Language\" of "GCC_MANUAL".
     typeof, __typeof__: see Section \"6.7 Referring to a Type with typeof\" of "GCC_MANUAL".
     __volatile__: see Sections \"6.48 Alternate Keywords\" and \"6.47.2.1 Volatile\" of "GCC_MANUAL".
@@ -30,7 +31,7 @@
 -name_selector+={builtin_types_p, "^__builtin_types_compatible_p$"}
 -name_selector+={builtin_va_arg, "^__builtin_va_arg$"}
 -name_selector+={const, "^__const__$"}
--name_selector+={inline, "^(__inline__|__inline)$"}
+-name_selector+={inline, "^__inline$"}
 -name_selector+={static_assert, "^_Static_assert$"}
 -name_selector+={typeof, "^(__typeof__|typeof)$"}
 -name_selector+={volatile, "^__volatile__$"}
diff --git a/docs/misra/C-language-toolchain.rst b/docs/misra/C-language-toolchain.rst
index 5ddfe7bdbe10..5d4db857d198 100644
--- a/docs/misra/C-language-toolchain.rst
+++ b/docs/misra/C-language-toolchain.rst
@@ -86,6 +86,8 @@ The table columns are as follows:
           see Sections "6.48 Alternate Keywords" and "6.47.2.1 Volatile" of GCC_MANUAL.
        __const__:
           see Section "6.48 Alternate Keywords" of GCC_MANUAL.
+       __inline:
+          see Section "6.48 Alternate Keywords" of GCC_MANUAL.
        typeof, __typeof__:
           see Section "6.7 Referring to a Type with typeof" of GCC_MANUAL.
        __alignof__, __alignof:
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Apr 23 20:45:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 20:45:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.965300.1355900 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7gyJ-0000fi-4x; Wed, 23 Apr 2025 20:45:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 965300.1355900; Wed, 23 Apr 2025 20:45: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 1u7gyJ-0000fb-2N; Wed, 23 Apr 2025 20:45:31 +0000
Received: by outflank-mailman (input) for mailman id 965300;
 Wed, 23 Apr 2025 20:45: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=UY1Q=XJ=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u7gyH-0008IP-KM
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 20:45:29 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e34efca0-2083-11f0-9ffb-bf95429c2676;
 Wed, 23 Apr 2025 22:45:28 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 145E26844A;
 Wed, 23 Apr 2025 20:45:06 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8FD3EC4CEE2;
 Wed, 23 Apr 2025 20:45:25 +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: e34efca0-2083-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1745441127;
	bh=35skaJ2TXXS8C6jUKFulwtiCBk0dtKpwvzZtSuA/YEM=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=cYmfoPwDPcuzNn4lt1BdFjd7c3Whi8JEK4LQJItnZuBgQRnIsFySmiLIjtk/SWtNZ
	 23XATyodDpCn6sAjFG/YNpCKkHeITQOt1Zu6twroT1qTDPZskuFH8EwK9Hpvm9wPuh
	 DZ/otiwAxv0fklkMqh681cU6D0/L2G7MwaHEoejiX4vPawAeI2946YOtAgGMyCzJFn
	 n6afIqYysoycqOdXeFBzUelLpCOvO3ZUXURySlQfH9MMa2SL6A8UVTF6tfpU0mZOGv
	 DqJNSGqB9ffSEcYVXFcnrGUkANQFoQDfHxyOXR/fo8eEf6hZO4OMClO0MUmM3kWroo
	 dolQy24N3cMnA==
Date: Wed, 23 Apr 2025 13:45:24 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Victor Lira <victorm.lira@amd.com>
cc: xen-devel@lists.xenproject.org, 
    Federico Serafini <federico.serafini@bugseng.com>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    Anthony PERARD <anthony.perard@vates.tech>, 
    Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, 
    Julien Grall <julien@xen.org>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Nicola Vetrini <nicola.vetrini@bugseng.com>, 
    Bertrand Marquis <bertrand.marquis@arm.com>
Subject: Re: [PATCH v1] misra: add deviation of Rule 5.5
In-Reply-To: <48c7830931a98b2bf70ef1509f309b262b9e5792.1745427770.git.victorm.lira@amd.com>
Message-ID: <alpine.DEB.2.22.394.2504231344490.785180@ubuntu-linux-20-04-desktop>
References: <9e1210f2a9c794d68dcc6b897239b228b141296a.1745427770.git.victorm.lira@amd.com> <48c7830931a98b2bf70ef1509f309b262b9e5792.1745427770.git.victorm.lira@amd.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Wed, 23 Apr 2025, victorm.lira@amd.com wrote:
> From: Federico Serafini <federico.serafini@bugseng.com>
> 
> MISRA C Rule 5.5 states that:
> "Identifiers shall be distinct from macro names".
> 
> A common pattern in Xen is to have a function-like macro that acts as a
> "wrapper" for the function to be called:
> before calling the function, the macro adds additional checks or
> increase/decrease the number of parameters depending on the
> configuration.
> 
> Update ECLAIR configuration and deviations.rst.
> 
> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
> Signed-off-by: Victor Lira <victorm.lira@amd.com>

This is something we have already discussed in the past and accepted,
but we were missing the ECLAIR configuration for the deviation.

Thanks Federico for producing it.

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

I understand Jan asked for being more precise with the wording and I am
OK with that.



From xen-devel-bounces@lists.xenproject.org Wed Apr 23 20:47:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 20:47:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.965318.1355909 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7h0T-0001QY-G4; Wed, 23 Apr 2025 20:47:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 965318.1355909; Wed, 23 Apr 2025 20:47:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7h0T-0001QR-DC; Wed, 23 Apr 2025 20:47:45 +0000
Received: by outflank-mailman (input) for mailman id 965318;
 Wed, 23 Apr 2025 20:47:44 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=UY1Q=XJ=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u7h0S-0001QL-GH
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 20:47:44 +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 33bcc709-2084-11f0-9eb0-5ba50f476ded;
 Wed, 23 Apr 2025 22:47:43 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 621B35C5857;
 Wed, 23 Apr 2025 20:45:24 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id AE335C4CEE2;
 Wed, 23 Apr 2025 20:47: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: 33bcc709-2084-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1745441261;
	bh=Rh+1b2ajjshte8F3qncbzk9ooggQUaeNbI+uX3ABAmg=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=lZ+kYeU/crfJZ1cVC/boTe6jbtnbosDLQAeT9YEnOqWxJhR/GTM+d3xObvi3nFC1p
	 OtItVh2Eofb6ldmSG6rd/uWlgrM7dzRmPO2dqOeeWFYNo/xtQ9N8vKEIGEGqmGpZ6Y
	 DewmU0JXU0Fk2lVoMlLQ5E8ZS+WNHJINT7xF+uU0dvhEDpWZRmMCUHMdKxk6h2ALKF
	 1FRitqu0wp9nkvkX7iJRXqiZCL9bGdYbw4LTa1WWjf7z7Q/bVRslzCFnnyvkkcirTW
	 3/07riDV4OoK7UpsYuuj2iOH8e8j3HYNXzuquIlJzOwMWatucL4r5lB+GQIffb6lmr
	 iKXA63tXJbewA==
Date: Wed, 23 Apr 2025 13:47:38 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Victor Lira <victorm.lira@amd.com>
cc: xen-devel@lists.xenproject.org, 
    Nicola Vetrini <nicola.vetrini@bugseng.com>, 
    Federico Serafini <federico.serafini@bugseng.com>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    Anthony PERARD <anthony.perard@vates.tech>, 
    Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, 
    Julien Grall <julien@xen.org>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Bertrand Marquis <bertrand.marquis@arm.com>
Subject: Re: [PATCH v1] misra: add deviation of Rule 10.1 for unary minus
In-Reply-To: <7c7b7a09e9d5ac1cc6f93fecacd8065fb6f25324.1745427770.git.victorm.lira@amd.com>
Message-ID: <alpine.DEB.2.22.394.2504231347020.785180@ubuntu-linux-20-04-desktop>
References: <9e1210f2a9c794d68dcc6b897239b228b141296a.1745427770.git.victorm.lira@amd.com> <7c7b7a09e9d5ac1cc6f93fecacd8065fb6f25324.1745427770.git.victorm.lira@amd.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

> From: Nicola Vetrini <nicola.vetrini@bugseng.com>
> 
> MISRA C Rule 10.1 states:
> "Operands shall not be of an inappropriate essential type"
> 
> The unary minus operator applied to an unsigned quantity has
> a semantics (wrap around) that is well-known to all Xen developers.
> Thus, this operation is deemed safe.
> 
> No functional change.
> 
> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
> Signed-off-by: Victor Lira <victorm.lira@amd.com>

We only have few instances of this pattern and the few we have are well
understood and certainly deliberate. In practice, this patch reflects
the current coding convention.

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

Jan's request to improve the wording is OK for me.


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 20:48:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 20:48:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.965332.1355920 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7h1U-0001yV-OV; Wed, 23 Apr 2025 20:48:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 965332.1355920; Wed, 23 Apr 2025 20:48:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7h1U-0001yO-Lg; Wed, 23 Apr 2025 20:48:48 +0000
Received: by outflank-mailman (input) for mailman id 965332;
 Wed, 23 Apr 2025 20:48:47 +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 1u7h1T-0001yF-J6
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 20:48:47 +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 1u7h1S-00HI9z-1V;
 Wed, 23 Apr 2025 20:48:46 +0000
Received: from [2a02:8012:3a1:0:752c:956a:3e76:876d]
 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 1u7h1S-007MJA-0t;
 Wed, 23 Apr 2025 20:48: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>
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=99X0+FUIM4sZ+ADCor552omGYZhJTFq7zryGUC3zAMo=; b=MwrtgjJzhsnzw83oNzELVUTeVs
	cG1Sxiy23POOfXEdKx5mwbN3IVODi/KlSDHetY9DzUnzNN63yrxGLED7Ir/uLF1A1HNYVOpZQu6CO
	0ycn4YmtQ4WQ/9G1nCTie7+cy+QrcWS96ZIoR2l4ix3tJxFip578LDvJGkn8pl5XnwW0=;
Message-ID: <afdb0197-6f0f-47a7-88cb-83e014f09914@xen.org>
Date: Wed, 23 Apr 2025 21:48:44 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1] misra: add deviation of Rule 10.1 for unary minus
Content-Language: en-GB
To: victorm.lira@amd.com, xen-devel@lists.xenproject.org
Cc: Nicola Vetrini <nicola.vetrini@bugseng.com>,
 Federico Serafini <federico.serafini@bugseng.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>
References: <9e1210f2a9c794d68dcc6b897239b228b141296a.1745427770.git.victorm.lira@amd.com>
 <7c7b7a09e9d5ac1cc6f93fecacd8065fb6f25324.1745427770.git.victorm.lira@amd.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <7c7b7a09e9d5ac1cc6f93fecacd8065fb6f25324.1745427770.git.victorm.lira@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi Victor,

On 23/04/2025 18:54, victorm.lira@amd.com wrote:
> From: Nicola Vetrini <nicola.vetrini@bugseng.com>
> 
> MISRA C Rule 10.1 states:
> "Operands shall not be of an inappropriate essential type"
> 
> The unary minus operator applied to an unsigned quantity has
> a semantics (wrap around) that is well-known to all Xen developers.
> Thus, this operation is deemed safe.
> 
> No functional change.
> 
> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
> Signed-off-by: Victor Lira <victorm.lira@amd.com>
> ---
> Changes v1:
> - add rule title to commit message
> ---
> Cc: Andrew Cooper <andrew.cooper3@citrix.com>
> Cc: Anthony PERARD <anthony.perard@vates.tech>
> Cc: Michal Orzel <michal.orzel@amd.com>
> Cc: Jan Beulich <jbeulich@suse.com>
> Cc: Julien Grall <julien@xen.org>
> Cc: Roger Pau Monné <roger.pau@citrix.com>
> Cc: Stefano Stabellini <sstabellini@kernel.org>
> Cc: Nicola Vetrini <nicola.vetrini@bugseng.com>
> Cc: Federico Serafini <federico.serafini@bugseng.com>
> Cc: Bertrand Marquis <bertrand.marquis@arm.com>
> ---
>   automation/eclair_analysis/ECLAIR/deviations.ecl | 6 ++++++
>   docs/misra/deviations.rst                        | 6 ++++++
>   2 files changed, 12 insertions(+)
> 
> diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl b/automation/eclair_analysis/ECLAIR/deviations.ecl
> index 303b06203a..2cfce850bd 100644
> --- a/automation/eclair_analysis/ECLAIR/deviations.ecl
> +++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
> @@ -347,6 +347,12 @@ constant expressions are required.\""
>     "any()"}
>   -doc_end
> 
> +-doc_begin="Unary minus operations on non-negative integers have a semantics (wrap around) that is well-known to all Xen developers."
> +-config=MC3A2.R10.1,etypes+={safe,
> +  "stmt(node(unary_operator)&&operator(minus))",
> +  "src_expr(definitely_in(0..))"}
> +-doc_end
> +
>   #
>   # Series 11
>   #
> diff --git a/docs/misra/deviations.rst b/docs/misra/deviations.rst
> index cfdd1a9838..c5897e31c5 100644
> --- a/docs/misra/deviations.rst
> +++ b/docs/misra/deviations.rst
> @@ -321,6 +321,12 @@ Deviations related to MISRA C:2012 Rules:
>          If no bits are set, 0 is returned.
>        - Tagged as `safe` for ECLAIR.
> 
> +   * - R10.1
> +     - Applying the unary minus operator to an unsigned quantity has a
> +       semantics (wrap around) that is well-known to all Xen developers.
> +       For this reason, the operation is safe.

I have realized we use similar wording in the rest of the deviations, 
but this is rather fragile argument. "well-known" is very subjective and 
could change over time.

How many violations do we have? Could we deviate them one by one?

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Wed Apr 23 20:50:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 20:50:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.965345.1355930 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7h2a-0002YF-5W; Wed, 23 Apr 2025 20:49:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 965345.1355930; Wed, 23 Apr 2025 20:49: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 1u7h2a-0002Y8-2y; Wed, 23 Apr 2025 20:49:56 +0000
Received: by outflank-mailman (input) for mailman id 965345;
 Wed, 23 Apr 2025 20:49: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=UY1Q=XJ=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u7h2Z-0002Xy-AH
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 20:49:55 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 80eba918-2084-11f0-9ffb-bf95429c2676;
 Wed, 23 Apr 2025 22:49:53 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id C6A8A4A180;
 Wed, 23 Apr 2025 20:49:49 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id CF39CC4CEEA;
 Wed, 23 Apr 2025 20:49: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: 80eba918-2084-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1745441391;
	bh=GLhSDM9qc3q1S6fIf2zvHc1w/28TuKcPCdYwlopCgDc=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=OF4wYffzvZHGUe1XabwustgVODscZA82VeiX1XPvywKH0eeuDQJwoOz8Fiy4Rrpvq
	 +ISY7JOkMttgYj8iFYulwuGy721XUEsIu2gTmst7/dSmJy/riglzgD0TFARVXfUEG4
	 BVqGUGVe1tInibKXH34ATRGyqCBzu3IxyLW+cWxGczFyKH1Kn3j18lAb4RM3vpHVqB
	 /b2HN3Lm7lnW0jBGMldRUyt6BS3/jmiIyup3ZAS0rY4utRVll5iPAFDwMBXZj14Amv
	 rkAQfZez9Rr/kvYaPBr30CiJsZ3c/75z1oqcd2wEWJB8QE3Ua3UBtwC5cit2agkScU
	 7O9L9GpKtS+8A==
Date: Wed, 23 Apr 2025 13:49:49 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Stefano Stabellini <sstabellini@kernel.org>
cc: Victor Lira <victorm.lira@amd.com>, xen-devel@lists.xenproject.org, 
    Federico Serafini <federico.serafini@bugseng.com>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    Anthony PERARD <anthony.perard@vates.tech>, 
    Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, 
    Julien Grall <julien@xen.org>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Nicola Vetrini <nicola.vetrini@bugseng.com>, 
    Bertrand Marquis <bertrand.marquis@arm.com>
Subject: Re: [PATCH v1] misra: add deviation of Rule 5.5
In-Reply-To: <alpine.DEB.2.22.394.2504231344490.785180@ubuntu-linux-20-04-desktop>
Message-ID: <alpine.DEB.2.22.394.2504231347500.785180@ubuntu-linux-20-04-desktop>
References: <9e1210f2a9c794d68dcc6b897239b228b141296a.1745427770.git.victorm.lira@amd.com> <48c7830931a98b2bf70ef1509f309b262b9e5792.1745427770.git.victorm.lira@amd.com> <alpine.DEB.2.22.394.2504231344490.785180@ubuntu-linux-20-04-desktop>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Wed, 23 Apr 2025, Stefano Stabellini wrote:
> On Wed, 23 Apr 2025, victorm.lira@amd.com wrote:
> > From: Federico Serafini <federico.serafini@bugseng.com>
> > 
> > MISRA C Rule 5.5 states that:
> > "Identifiers shall be distinct from macro names".
> > 
> > A common pattern in Xen is to have a function-like macro that acts as a
> > "wrapper" for the function to be called:
> > before calling the function, the macro adds additional checks or
> > increase/decrease the number of parameters depending on the
> > configuration.
> > 
> > Update ECLAIR configuration and deviations.rst.
> > 
> > Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
> > Signed-off-by: Victor Lira <victorm.lira@amd.com>
> 
> This is something we have already discussed in the past and accepted,
> but we were missing the ECLAIR configuration for the deviation.
> 
> Thanks Federico for producing it.
> 
> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
> 
> I understand Jan asked for being more precise with the wording and I am
> OK with that.

Please remove this last sentence. I meant to say that I am OK with Jan's
request to narrow the deviation, both wording and check. The wording can
be done, I am not sure about the check.


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 20:55:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 20:55:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.965363.1355939 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7h7d-0004kW-Mb; Wed, 23 Apr 2025 20:55:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 965363.1355939; Wed, 23 Apr 2025 20:55:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7h7d-0004kP-K7; Wed, 23 Apr 2025 20:55:09 +0000
Received: by outflank-mailman (input) for mailman id 965363;
 Wed, 23 Apr 2025 20:55: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=UY1Q=XJ=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u7h7c-0004kJ-SW
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 20:55:08 +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 3c224f27-2085-11f0-9eb0-5ba50f476ded;
 Wed, 23 Apr 2025 22:55:06 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by nyc.source.kernel.org (Postfix) with ESMTP id 85593A4C24B;
 Wed, 23 Apr 2025 20:49:37 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8D8FFC4CEE2;
 Wed, 23 Apr 2025 20:55: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: 3c224f27-2085-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1745441705;
	bh=sp3WIx0AyO8v30est76NhThGhAxzVhZlGB8nU9Kv1ns=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=XZAWy5Ix7yVPquxVMVVDyd+jv/RDdEI7UdmxVhubD1XcRLe5rnkdDKyVXOLPs/9aC
	 9HkEPABka77rzlqoJDhgUP8IxoIyWZMY8OpVIVUeZnbF6fseSskndKVz+yUhiktwxD
	 3ViSVXiBYJ+kdDVuCfnO1oUG9jr0GxJRdJYWtgE6pMTAEEOvDD54HYU2rAy4GRC0MG
	 BXaalpBP8GyaXjN3O0dfnpzXJVDrh4CUGB1VBiDrfAeAummPuUo7n6RFcPNNWeHbzz
	 XDsqGmJuvUQXzZ11ekULg/yOPfWgYLzFPi9hZKnYkVa/a0PmfyPSEce3uXOlMta7SW
	 IWYVMDy1UzW8A==
Date: Wed, 23 Apr 2025 13:55:01 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
cc: xen-devel@lists.xenproject.org, sstabellini@kernel.org, 
    michal.orzel@amd.com, xenia.ragiadakou@amd.com, ayan.kumar.halder@amd.com, 
    consulting@bugseng.com, Doug Goldstein <cardoe@cardoe.com>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    Anthony PERARD <anthony.perard@vates.tech>, 
    Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Subject: Re: [XEN PATCH] misra: update list of GCC extensions used by Xen
In-Reply-To: <da508095ef2ac0024dfe9f51d9da976da0eaead7.1745441038.git.nicola.vetrini@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2504231354540.785180@ubuntu-linux-20-04-desktop>
References: <da508095ef2ac0024dfe9f51d9da976da0eaead7.1745441038.git.nicola.vetrini@bugseng.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Wed, 23 Apr 2025, Nicola Vetrini wrote:
> __inline was not mentioned in C-language-toolchain.rst, while
> __inline__ is not used in code under xen/. __inline is kept because it
> may be used in Xen. The ECLAIR configuration is now consistent with the
> documented extensions in the rst file.
> 
> No functional change.
> 
> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>

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


> ---
> See [1] for a patch that introduces a use of __inline. Rather than
> remove it because there are no current uses of that alternate spelling
> before shortly bringing it back, it makes more sense to keep it in both
> places.
> 
> [1] https://lore.kernel.org/xen-devel/20250422113957.1289290-1-andrew.cooper3@citrix.com/
> ---
>  automation/eclair_analysis/ECLAIR/toolchain.ecl | 5 +++--
>  docs/misra/C-language-toolchain.rst             | 2 ++
>  2 files changed, 5 insertions(+), 2 deletions(-)
> 
> diff --git a/automation/eclair_analysis/ECLAIR/toolchain.ecl b/automation/eclair_analysis/ECLAIR/toolchain.ecl
> index 8ebf9f132cf2..b8c041d2d36e 100644
> --- a/automation/eclair_analysis/ECLAIR/toolchain.ecl
> +++ b/automation/eclair_analysis/ECLAIR/toolchain.ecl
> @@ -18,7 +18,8 @@
>      __builtin_offsetof: see Section \"6.53 Support for offsetof\" of "GCC_MANUAL".
>      __builtin_types_compatible_p: see Section \"6.59 Other Built-in Functions Provided by GCC\" of "GCC_MANUAL".
>      __builtin_va_arg: non-documented GCC extension.
> -    __const__, __inline__, __inline: see Section \"6.48 Alternate Keywords\" of "GCC_MANUAL".
> +    __const__: see Section \"6.48 Alternate Keywords\" of "GCC_MANUAL".
> +    __inline: see Section \"6.48 Alternate Keywords\" of "GCC_MANUAL".
>      _Static_assert: see Section \"2.1 C Language\" of "GCC_MANUAL".
>      typeof, __typeof__: see Section \"6.7 Referring to a Type with typeof\" of "GCC_MANUAL".
>      __volatile__: see Sections \"6.48 Alternate Keywords\" and \"6.47.2.1 Volatile\" of "GCC_MANUAL".
> @@ -30,7 +31,7 @@
>  -name_selector+={builtin_types_p, "^__builtin_types_compatible_p$"}
>  -name_selector+={builtin_va_arg, "^__builtin_va_arg$"}
>  -name_selector+={const, "^__const__$"}
> --name_selector+={inline, "^(__inline__|__inline)$"}
> +-name_selector+={inline, "^__inline$"}
>  -name_selector+={static_assert, "^_Static_assert$"}
>  -name_selector+={typeof, "^(__typeof__|typeof)$"}
>  -name_selector+={volatile, "^__volatile__$"}
> diff --git a/docs/misra/C-language-toolchain.rst b/docs/misra/C-language-toolchain.rst
> index 5ddfe7bdbe10..5d4db857d198 100644
> --- a/docs/misra/C-language-toolchain.rst
> +++ b/docs/misra/C-language-toolchain.rst
> @@ -86,6 +86,8 @@ The table columns are as follows:
>            see Sections "6.48 Alternate Keywords" and "6.47.2.1 Volatile" of GCC_MANUAL.
>         __const__:
>            see Section "6.48 Alternate Keywords" of GCC_MANUAL.
> +       __inline:
> +          see Section "6.48 Alternate Keywords" of GCC_MANUAL.
>         typeof, __typeof__:
>            see Section "6.7 Referring to a Type with typeof" of GCC_MANUAL.
>         __alignof__, __alignof:
> -- 
> 2.43.0
> 


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 20:57:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 20:57:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.965375.1355949 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7h9W-0005Gp-1F; Wed, 23 Apr 2025 20:57:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 965375.1355949; Wed, 23 Apr 2025 20:57: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 1u7h9V-0005Gi-Uy; Wed, 23 Apr 2025 20:57:05 +0000
Received: by outflank-mailman (input) for mailman id 965375;
 Wed, 23 Apr 2025 20:57: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=UY1Q=XJ=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u7h9U-0005Gc-OT
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 20:57:04 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 816c75ce-2085-11f0-9ffb-bf95429c2676;
 Wed, 23 Apr 2025 22:57:02 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 863666844A;
 Wed, 23 Apr 2025 20:56:40 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6D83FC4CEE2;
 Wed, 23 Apr 2025 20:57: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: 816c75ce-2085-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1745441821;
	bh=DkYPDKTeR9ppjKsVYzGafGfHupzO+lU1f/JdBGBdGP0=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=WC+WU0GFOcOaSb6h003LQ0Dhfu8J7eL4ZVqaqbUcBfEk5OaFfkF2mX+dy7N717RUy
	 nJDIQ/Ot/zWMFTMcumoqs37jK3RSXJ6L7H5o0jP5h0qSITXzR/8eC/y0e1zeG8jtDo
	 dYQKcSkmV+8APPCzp3kVoVbm6kAULsFN7I4mc4AxjpGt0pcK+DIJdHOUARIP/gUwM7
	 pL1NRPpM6m3+c87Ma9EGgmchpexHaCXqMVpibZPBnE+ObmH3cnaUmjIMySU7n7IBv0
	 ToDpbx8u+bvr+CwsB7wqxI7CVEwBx9nk7EfDf9IkKYneRO8TpO+oxA2B7dZBTT9pyk
	 QFtDqzjWelmYw==
Date: Wed, 23 Apr 2025 13:56:59 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Mykyta Poturai <Mykyta_Poturai@epam.com>
cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    Oleksandr Andrushchenko <Oleksandr_Andrushchenko@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: Re: [PATCH v4 2/4] xen/arm: make pci_host_common_probe return the
 bridge
In-Reply-To: <8bacbb27806c04eb68ac4d5582b42961d61435e5.1745402473.git.mykyta_poturai@epam.com>
Message-ID: <alpine.DEB.2.22.394.2504231356541.785180@ubuntu-linux-20-04-desktop>
References: <cover.1745402473.git.mykyta_poturai@epam.com> <8bacbb27806c04eb68ac4d5582b42961d61435e5.1745402473.git.mykyta_poturai@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, 23 Apr 2025, Mykyta Poturai wrote:
> From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
> 
> Some of the PCI host bridges require additional processing during the
> probe phase. For that they need to access struct bridge of the probed
> host, so return pointer to the new bridge from pci_host_common_probe.
> 
> Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
> Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>

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


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 20:59:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 20:59:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.965388.1355960 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7hC4-0005pv-Cx; Wed, 23 Apr 2025 20:59:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 965388.1355960; Wed, 23 Apr 2025 20: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 1u7hC4-0005po-AK; Wed, 23 Apr 2025 20:59:44 +0000
Received: by outflank-mailman (input) for mailman id 965388;
 Wed, 23 Apr 2025 20:59: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=UY1Q=XJ=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u7hC2-0005pi-MS
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 20:59:42 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id df4407ff-2085-11f0-9ffb-bf95429c2676;
 Wed, 23 Apr 2025 22:59:40 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 8AD7343677;
 Wed, 23 Apr 2025 20:59:37 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id B0ED2C4CEE2;
 Wed, 23 Apr 2025 20:59:37 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: df4407ff-2085-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1745441979;
	bh=JZ7XmHn3pzDAcXfsWzyaXgHwmQ1MRZvfmJRgYTdbILU=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=Y9ptOC5E5xHPIhRGoJMykQVn76XtstrW6b1lYFYSzt9ACd9oRg0F1V8C/pzod87yy
	 iWXug867qchFU9pIlASe/oo0SHeeLTZSo9PsQLVirxDOgKEAJUFhcCwfAZQQP4D+j8
	 b34ML35RVDToSQUeBGWTv1VOwYYfgdLhZ1qntuuS5JlHQJC9J3F6oDHbpftj0GMfjg
	 5JsLrHuGui9jm/HpbqV3vZ/wsDVQJyVJOtYhfytT+NMt7YF7Af32oRpTLJxF4iIp3f
	 o0c7YN0UG3IY2Nr0+wfRzM9uR3cbCJX+fTpwtWs1Q/mxdzxp3gl8IMSd+qYGhdPNQ3
	 6dw6E/kmIAxEg==
Date: Wed, 23 Apr 2025 13:59:37 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Mykyta Poturai <Mykyta_Poturai@epam.com>
cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    Oleksandr Andrushchenko <Oleksandr_Andrushchenko@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: Re: [PATCH v4 3/4] xen/arm: add support for PCI child bus
In-Reply-To: <79bbb6705638445526bbd1fa299b7bfd0d087462.1745402473.git.mykyta_poturai@epam.com>
Message-ID: <alpine.DEB.2.22.394.2504231359190.785180@ubuntu-linux-20-04-desktop>
References: <cover.1745402473.git.mykyta_poturai@epam.com> <79bbb6705638445526bbd1fa299b7bfd0d087462.1745402473.git.mykyta_poturai@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, 23 Apr 2025, Mykyta Poturai wrote:
> From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
> 
> PCI host bridges often have different ways to access the root and child
> bus configuration spaces. One of the examples is Designware's host bridge
> and its multiple clones [1].
> 
> Linux kernel implements this by instantiating a child bus when device
> drivers provide not only the usual pci_ops to access ECAM space (this is
> the case for the generic host bridge), but also means to access the child
> bus which has a dedicated configuration space and own implementation for
> accessing the bus, e.g. child_ops.
> 
> For Xen it is not feasible to fully implement PCI bus infrastructure as
> Linux kernel does, but still child bus can be supported.
> 
> Add support for the PCI child bus which includes the following changes:
> - introduce bus mapping functions depending on SBDF
> - assign bus start and end for the child bus and re-configure the same for
>   the parent (root) bus
> - make pci_find_host_bridge be aware of multiple busses behind the same bridge
> - update pci_host_bridge_mappings, so it also doesn't map to guest the memory
>   spaces belonging to the child bus
> - make pci_host_common_probe accept one more pci_ops structure for the child bus
> - install MMIO handlers for the child bus
> - re-work vpci_mmio_{write|read} with parent and child approach in mind
> 
> [1] https://elixir.bootlin.com/linux/v5.15/source/drivers/pci/controller/dwc
> 
> Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
> Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>

I just wanted to say that pending Stewart's comment, this patch looks
good to me


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 21:06:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 21:06:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.965400.1355970 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7hIJ-0008Am-0G; Wed, 23 Apr 2025 21:06:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 965400.1355970; Wed, 23 Apr 2025 21:06: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 1u7hII-0008Af-Ti; Wed, 23 Apr 2025 21:06:10 +0000
Received: by outflank-mailman (input) for mailman id 965400;
 Wed, 23 Apr 2025 21: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=UY1Q=XJ=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u7hIH-0008AZ-SX
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 21:06:09 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org
 [2600:3c0a:e001:78e:0:1991:8:25])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c6028264-2086-11f0-9eb0-5ba50f476ded;
 Wed, 23 Apr 2025 23:06:07 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 9147543C46;
 Wed, 23 Apr 2025 21:06:04 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id C7341C4CEE2;
 Wed, 23 Apr 2025 21:06: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: c6028264-2086-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1745442366;
	bh=QjVfNuB0OPmugHJ7CqDYgjn5LYT2oICAYJUEf/xQRE4=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=V/yg7A5EPYFa+ysa5Q7rybx6J85s6uDOJsV59KBqEGkATubOyxaQe4I4jTMGNtU+h
	 +HVBfm0DpMvwXcMf0l1WzCyXr4b+GNiAy65l7KcTWF1VmzMrqcPRHuEWw88ghSu+K7
	 8D9+gdxQ2gscY3PiI3bjcYQaT/pZowLVCyLbCH4EtuxB1IzFzrBU1DkuQymF1A3eF1
	 cI6K2MUy8yHSV3R05dULcgyjKDsiCc+2++IWvPMPrJPlM9uvssC/We+edXuxqnUUea
	 06yD9VRXNV9wIvxZLEK2EhxKjY/qPU8PpqJouPYlKTuMcYv2RbCvWcbA68ZAgLnR2L
	 BDao8os8goimw==
Date: Wed, 23 Apr 2025 14:06:04 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Mykyta Poturai <Mykyta_Poturai@epam.com>
cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    Oleksandr Andrushchenko <Oleksandr_Andrushchenko@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: Re: [PATCH v4 4/4] xen/arm: add support for R-Car Gen4 PCI host
 controller
In-Reply-To: <98c8e00a77800e8b1163ab1efa9a60f1bced0fb9.1745402473.git.mykyta_poturai@epam.com>
Message-ID: <alpine.DEB.2.22.394.2504231403290.785180@ubuntu-linux-20-04-desktop>
References: <cover.1745402473.git.mykyta_poturai@epam.com> <98c8e00a77800e8b1163ab1efa9a60f1bced0fb9.1745402473.git.mykyta_poturai@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, 23 Apr 2025, Mykyta Poturai wrote:
> From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
> 
> Add support for Renesas R-Car Gen4 PCI host controller, specifically
> targeting the S4 and V4H SoCs. The implementation includes configuration
> read/write operations for both root and child buses. For accessing the
> child bus, iATU is used for address translation.
> 
> Code common to all DesignWare PCI host controllers is located in a
> separate file to allow for easy reuse in other DesignWare-based PCI
> host controllers.
> 
> Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
> Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>

At a glance, this looks OKish. Especially if you would be willing to
maintain the driver going forward :-)

Would you be willing to add entry to the MAINTAINERS file to cover
pci-designware* and pci-host-rcar4.c ?


> ---
> v3->v4:
> * no changes
> 
> v2->v3:
> * move priv allocation to dw_pcie_host_probe
> 
> v1->v2:
> * move designware code in a separate file
> ---
>  xen/arch/arm/pci/Makefile         |   2 +
>  xen/arch/arm/pci/pci-designware.c | 403 ++++++++++++++++++++++++++++++
>  xen/arch/arm/pci/pci-designware.h | 102 ++++++++
>  xen/arch/arm/pci/pci-host-rcar4.c | 103 ++++++++
>  4 files changed, 610 insertions(+)
>  create mode 100644 xen/arch/arm/pci/pci-designware.c
>  create mode 100644 xen/arch/arm/pci/pci-designware.h
>  create mode 100644 xen/arch/arm/pci/pci-host-rcar4.c
> 
> diff --git a/xen/arch/arm/pci/Makefile b/xen/arch/arm/pci/Makefile
> index 1d045ade01..ca6135e282 100644
> --- a/xen/arch/arm/pci/Makefile
> +++ b/xen/arch/arm/pci/Makefile
> @@ -4,3 +4,5 @@ obj-y += pci-host-generic.o
>  obj-y += pci-host-common.o
>  obj-y += ecam.o
>  obj-y += pci-host-zynqmp.o
> +obj-y += pci-designware.o
> +obj-y += pci-host-rcar4.o
> diff --git a/xen/arch/arm/pci/pci-designware.c b/xen/arch/arm/pci/pci-designware.c
> new file mode 100644
> index 0000000000..dcbd07ced3
> --- /dev/null
> +++ b/xen/arch/arm/pci/pci-designware.c
> @@ -0,0 +1,403 @@
> +/*
> + * Based on Linux drivers/pci/controller/pci-host-common.c
> + * Based on Linux drivers/pci/controller/pci-host-generic.c
> + * Based on xen/arch/arm/pci/pci-host-generic.c
> + *
> + * 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.
> + *
> + * 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.
> + *
> + * 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/delay.h>
> +#include <asm/io.h>
> +
> +#include "pci-designware.h"
> +/**
> + * upper_32_bits - return bits 32-63 of a number
> + * @n: the number we're accessing
> + *
> + * A basic shift-right of a 64- or 32-bit quantity.  Use this to suppress
> + * the "right shift count >= width of type" warning when that quantity is
> + * 32-bits.
> + */
> +#define upper_32_bits(n) ((uint32_t)(((n) >> 16) >> 16))
> +
> +/**
> + * lower_32_bits - return bits 0-31 of a number
> + * @n: the number we're accessing
> + */
> +#define lower_32_bits(n) ((uint32_t)((n) & 0xffffffff))

Please run this by MISRA using ECLAIR's checker in Gitlab CI.


> +static int dw_pcie_read(void __iomem *addr, int size, uint32_t *val)
> +{
> +    if ( !IS_ALIGNED((uintptr_t)addr, size) )
> +    {
> +        *val = 0;
> +        return PCIBIOS_BAD_REGISTER_NUMBER;
> +    }
> +
> +    if ( size == 4 )
> +        *val = readl(addr);
> +    else if ( size == 2 )
> +        *val = readw(addr);
> +    else if ( size == 1 )
> +        *val = readb(addr);
> +    else
> +    {
> +        *val = 0;
> +        return PCIBIOS_BAD_REGISTER_NUMBER;
> +    }
> +
> +    return PCIBIOS_SUCCESSFUL;
> +}
> +
> +static int dw_pcie_write(void __iomem *addr, int size, uint32_t val)
> +{
> +    if ( !IS_ALIGNED((uintptr_t)addr, size) )
> +        return PCIBIOS_BAD_REGISTER_NUMBER;
> +
> +    if ( size == 4 )
> +        writel(val, addr);
> +    else if ( size == 2 )
> +        writew(val, addr);
> +    else if ( size == 1 )
> +        writeb(val, addr);
> +    else
> +        return PCIBIOS_BAD_REGISTER_NUMBER;
> +
> +    return PCIBIOS_SUCCESSFUL;
> +}
> +
> +static uint32_t dw_pcie_read_dbi(struct pci_host_bridge *bridge, uint32_t reg,
> +                                 size_t size)
> +{
> +    void __iomem *addr = bridge->cfg->win + reg;
> +    uint32_t val;
> +
> +    dw_pcie_read(addr, size, &val);
> +    return val;
> +}
> +
> +static void dw_pcie_write_dbi(struct pci_host_bridge *bridge, uint32_t reg,
> +                              size_t size, uint32_t val)
> +{
> +    void __iomem *addr = bridge->cfg->win + reg;
> +
> +    dw_pcie_write(addr, size, val);
> +}
> +
> +static uint32_t dw_pcie_readl_dbi(struct pci_host_bridge *bridge, uint32_t reg)
> +{
> +    return dw_pcie_read_dbi(bridge, reg, sizeof(uint32_t));
> +}
> +
> +static void dw_pcie_writel_dbi(struct pci_host_bridge *pci, uint32_t reg,
> +                               uint32_t val)
> +{
> +    dw_pcie_write_dbi(pci, reg, sizeof(uint32_t), val);
> +}
> +
> +static void dw_pcie_read_iatu_unroll_enabled(struct pci_host_bridge *bridge)
> +{
> +    struct dw_pcie_priv *priv = bridge->priv;
> +    uint32_t val;
> +
> +    val = dw_pcie_readl_dbi(bridge, PCIE_ATU_VIEWPORT);
> +    if ( val == 0xffffffff )
> +        priv->iatu_unroll_enabled = true;
> +
> +    printk(XENLOG_DEBUG "%s iATU unroll: %sabled\n",
> +           dt_node_full_name(bridge->dt_node),
> +           priv->iatu_unroll_enabled ? "en" : "dis");
> +}
> +
> +static uint32_t dw_pcie_readl_atu(struct pci_host_bridge *pci, uint32_t reg)
> +{
> +    struct dw_pcie_priv *priv = pci->priv;
> +    int ret;
> +    uint32_t val;
> +
> +    ret = dw_pcie_read(priv->atu_base + reg, 4, &val);
> +    if ( ret )
> +        printk(XENLOG_ERR "Read ATU address failed\n");
> +
> +    return val;
> +}
> +
> +static void dw_pcie_writel_atu(struct pci_host_bridge *pci, uint32_t reg,
> +                               uint32_t val)
> +{
> +    struct dw_pcie_priv *priv = pci->priv;
> +    int ret;
> +
> +    ret = dw_pcie_write(priv->atu_base + reg, 4, val);
> +    if ( ret )
> +        printk(XENLOG_ERR "Write ATU address failed\n");
> +}
> +
> +static uint32_t dw_pcie_readl_ob_unroll(struct pci_host_bridge *pci,
> +                                        uint32_t index, uint32_t reg)
> +{
> +    uint32_t offset = PCIE_GET_ATU_OUTB_UNR_REG_OFFSET(index);
> +
> +    return dw_pcie_readl_atu(pci, offset + reg);
> +}
> +
> +static void dw_pcie_writel_ob_unroll(struct pci_host_bridge *pci,
> +                                     uint32_t index, uint32_t reg, uint32_t val)
> +{
> +    uint32_t offset = PCIE_GET_ATU_OUTB_UNR_REG_OFFSET(index);
> +
> +    dw_pcie_writel_atu(pci, offset + reg, val);
> +}
> +
> +static uint32_t dw_pcie_enable_ecrc(uint32_t val)
> +{
> +    ASSERT_UNREACHABLE();
> +    return 0;
> +}
> +
> +static void dw_pcie_prog_outbound_atu_unroll(struct pci_host_bridge *pci,
> +                                             uint8_t func_no, int index,
> +                                             int type, uint64_t cpu_addr,
> +                                             uint64_t pci_addr, uint64_t size)
> +{
> +    struct dw_pcie_priv *priv = pci->priv;
> +    uint32_t retries, val;
> +    uint64_t limit_addr = cpu_addr + size - 1;
> +
> +    dw_pcie_writel_ob_unroll(pci, index, PCIE_ATU_UNR_LOWER_BASE,
> +                             lower_32_bits(cpu_addr));
> +    dw_pcie_writel_ob_unroll(pci, index, PCIE_ATU_UNR_UPPER_BASE,
> +                             upper_32_bits(cpu_addr));
> +    dw_pcie_writel_ob_unroll(pci, index, PCIE_ATU_UNR_LOWER_LIMIT,
> +                             lower_32_bits(limit_addr));
> +    dw_pcie_writel_ob_unroll(pci, index, PCIE_ATU_UNR_UPPER_LIMIT,
> +                             upper_32_bits(limit_addr));
> +    dw_pcie_writel_ob_unroll(pci, index, PCIE_ATU_UNR_LOWER_TARGET,
> +                             lower_32_bits(pci_addr));
> +    dw_pcie_writel_ob_unroll(pci, index, PCIE_ATU_UNR_UPPER_TARGET,
> +                             upper_32_bits(pci_addr));
> +    val = type | PCIE_ATU_FUNC_NUM(func_no);
> +    val = upper_32_bits(size - 1) ? val | PCIE_ATU_INCREASE_REGION_SIZE : val;
> +    if ( priv->version == 0x490A )
> +        val = dw_pcie_enable_ecrc(val);
> +    dw_pcie_writel_ob_unroll(pci, index, PCIE_ATU_UNR_REGION_CTRL1, val);
> +    dw_pcie_writel_ob_unroll(pci, index, PCIE_ATU_UNR_REGION_CTRL2,
> +                             PCIE_ATU_ENABLE);
> +
> +    /*
> +     * Make sure ATU enable takes effect before any subsequent config
> +     * and I/O accesses.
> +     */
> +    for ( retries = 0; retries < LINK_WAIT_MAX_IATU_RETRIES; retries++ )
> +    {
> +        val = dw_pcie_readl_ob_unroll(pci, index, PCIE_ATU_UNR_REGION_CTRL2);
> +        if ( val & PCIE_ATU_ENABLE )
> +            return;
> +
> +        mdelay(LINK_WAIT_IATU);
> +    }
> +    printk(XENLOG_ERR "Outbound iATU is not being enabled\n");
> +}
> +
> +static void __dw_pcie_prog_outbound_atu(struct pci_host_bridge *pci,
> +                                        uint8_t func_no, int index, int type,
> +                                        uint64_t cpu_addr, uint64_t pci_addr,
> +                                        uint64_t size)
> +{
> +    struct dw_pcie_priv *priv = pci->priv;
> +    uint32_t retries, val;
> +
> +    if ( priv->iatu_unroll_enabled )
> +    {
> +        dw_pcie_prog_outbound_atu_unroll(pci, func_no, index, type, cpu_addr,
> +                                         pci_addr, size);
> +        return;
> +    }
> +
> +    dw_pcie_writel_dbi(pci, PCIE_ATU_VIEWPORT,
> +                       PCIE_ATU_REGION_OUTBOUND | index);
> +    dw_pcie_writel_dbi(pci, PCIE_ATU_LOWER_BASE, lower_32_bits(cpu_addr));
> +    dw_pcie_writel_dbi(pci, PCIE_ATU_UPPER_BASE, upper_32_bits(cpu_addr));
> +    dw_pcie_writel_dbi(pci, PCIE_ATU_LIMIT, lower_32_bits(cpu_addr + size - 1));
> +    if ( priv->version >= 0x460A )
> +        dw_pcie_writel_dbi(pci, PCIE_ATU_UPPER_LIMIT,
> +                           upper_32_bits(cpu_addr + size - 1));
> +    dw_pcie_writel_dbi(pci, PCIE_ATU_LOWER_TARGET, lower_32_bits(pci_addr));
> +    dw_pcie_writel_dbi(pci, PCIE_ATU_UPPER_TARGET, upper_32_bits(pci_addr));
> +    val = type | PCIE_ATU_FUNC_NUM(func_no);
> +    val = ((upper_32_bits(size - 1)) && (priv->version >= 0x460A))
> +              ? val | PCIE_ATU_INCREASE_REGION_SIZE
> +              : val;
> +    if ( priv->version == 0x490A )
> +        val = dw_pcie_enable_ecrc(val);
> +    dw_pcie_writel_dbi(pci, PCIE_ATU_CR1, val);
> +    dw_pcie_writel_dbi(pci, PCIE_ATU_CR2, PCIE_ATU_ENABLE);
> +
> +    /*
> +     * Make sure ATU enable takes effect before any subsequent config
> +     * and I/O accesses.
> +     */
> +    for ( retries = 0; retries < LINK_WAIT_MAX_IATU_RETRIES; retries++ )
> +    {
> +        val = dw_pcie_readl_dbi(pci, PCIE_ATU_CR2);
> +        if ( val & PCIE_ATU_ENABLE )
> +            return;
> +
> +        mdelay(LINK_WAIT_IATU);
> +    }
> +    printk(XENLOG_ERR "Outbound iATU is not being enabled\n");
> +}
> +
> +static void dw_pcie_prog_outbound_atu(struct pci_host_bridge *pci, int index,
> +                                      int type, uint64_t cpu_addr,
> +                                      uint64_t pci_addr, uint64_t size)
> +{
> +    __dw_pcie_prog_outbound_atu(pci, 0, index, type, cpu_addr, pci_addr, size);
> +}
> +
> +void dw_pcie_set_version(struct pci_host_bridge *bridge, unsigned int version)
> +{
> +    struct dw_pcie_priv *priv = bridge->priv;
> +
> +    priv->version = version;
> +}
> +
> +void __iomem *dw_pcie_child_map_bus(struct pci_host_bridge *bridge,
> +                                    pci_sbdf_t sbdf, uint32_t where)
> +{
> +    uint32_t busdev;
> +
> +    busdev = PCIE_ATU_BUS(sbdf.bus) | PCIE_ATU_DEV(PCI_SLOT(sbdf.devfn)) |
> +             PCIE_ATU_FUNC(PCI_FUNC(sbdf.devfn));
> +
> +    /* FIXME: Parent is the root bus, so use PCIE_ATU_TYPE_CFG0. */
> +    dw_pcie_prog_outbound_atu(bridge, PCIE_ATU_REGION_INDEX1,
> +                              PCIE_ATU_TYPE_CFG0, bridge->child_cfg->phys_addr,
> +                              busdev, bridge->child_cfg->size);
> +
> +    return bridge->child_cfg->win + where;
> +}
> +
> +int dw_pcie_child_config_read(struct pci_host_bridge *bridge, pci_sbdf_t sbdf,
> +                              uint32_t reg, uint32_t len, uint32_t *value)
> +{
> +    struct dw_pcie_priv *priv = bridge->priv;
> +    int ret;
> +
> +    /*
> +     * FIXME: we cannot read iATU settings at the early initialization
> +     * (probe) as the host's HW is not yet initialized at that phase.
> +     * This read operation is the very first thing Domain-0 will do
> +     * during its initialization, so take this opportunity and read
> +     * iATU setting now.
> +     */
> +    if ( unlikely(!priv->iatu_unroll_initilized) )
> +    {
> +        dw_pcie_read_iatu_unroll_enabled(bridge);
> +        priv->iatu_unroll_initilized = true;
> +    }
> +
> +    ret = pci_generic_config_read(bridge, sbdf, reg, len, value);
> +    if ( !ret && (priv->num_viewport <= 2) )
> +        dw_pcie_prog_outbound_atu(bridge, PCIE_ATU_REGION_INDEX1,
> +                                  PCIE_ATU_TYPE_IO,
> +                                  bridge->child_cfg->phys_addr, 0,
> +                                  bridge->child_cfg->size);
> +
> +    return ret;
> +}
> +
> +int dw_pcie_child_config_write(struct pci_host_bridge *bridge, pci_sbdf_t sbdf,
> +                               uint32_t reg, uint32_t len, uint32_t value)
> +{
> +    struct dw_pcie_priv *priv = bridge->priv;
> +    int ret;
> +
> +    ret = pci_generic_config_write(bridge, sbdf, reg, len, value);
> +    if ( !ret && (priv->num_viewport <= 2) )
> +        dw_pcie_prog_outbound_atu(bridge, PCIE_ATU_REGION_INDEX1,
> +                                  PCIE_ATU_TYPE_IO,
> +                                  bridge->child_cfg->phys_addr, 0,
> +                                  bridge->child_cfg->size);
> +    return ret;
> +}
> +
> +bool __init dw_pcie_child_need_p2m_hwdom_mapping(struct domain *d,
> +                                                 struct pci_host_bridge *bridge,
> +                                                 uint64_t addr)
> +{
> +    struct pci_config_window *cfg = bridge->child_cfg;
> +
> +    /*
> +     * We do not want ECAM address space to be mapped in Domain-0's p2m,
> +     * so we can trap access to it.
> +     */
> +    return cfg->phys_addr != addr;
> +}
> +
> +struct pci_host_bridge *__init
> +dw_pcie_host_probe(struct dt_device_node *dev, const void *data,
> +                   const struct pci_ecam_ops *ops,
> +                   const struct pci_ecam_ops *child_ops)
> +{
> +    struct pci_host_bridge *bridge;
> +    struct dw_pcie_priv *priv;
> +
> +    paddr_t atu_phys_addr;
> +    paddr_t atu_size;
> +    int atu_idx, ret;
> +
> +    bridge = pci_host_common_probe(dev, ops, child_ops);
> +    if ( IS_ERR(bridge) )
> +        return bridge;
> +
> +    priv = xzalloc_bytes(sizeof(struct dw_pcie_priv));
> +    if ( !priv )
> +        return ERR_PTR(-ENOMEM);
> +
> +    bridge->priv = priv;
> +
> +    atu_idx = dt_property_match_string(dev, "reg-names", "atu");
> +    if ( atu_idx < 0 )
> +    {
> +        printk(XENLOG_ERR "Cannot find \"atu\" range index in device tree\n");
> +        return ERR_PTR(atu_idx);
> +    }
> +    ret = dt_device_get_address(dev, atu_idx, &atu_phys_addr, &atu_size);
> +    if ( ret )
> +    {
> +        printk(XENLOG_ERR "Cannot find \"atu\" range in device tree\n");
> +        return ERR_PTR(ret);
> +    }
> +    printk("iATU at [mem 0x%" PRIpaddr "-0x%" PRIpaddr "]\n", atu_phys_addr,
> +           atu_phys_addr + atu_size - 1);
> +    priv->atu_base = ioremap_nocache(atu_phys_addr, atu_size);
> +    if ( !priv->atu_base )
> +    {
> +        printk(XENLOG_ERR "iATU ioremap failed\n");
> +        return ERR_PTR(ENXIO);
> +    }
> +
> +    if ( !dt_property_read_u32(dev, "num-viewport", &priv->num_viewport) )
> +        priv->num_viewport = 2;
> +
> +    /*
> +     * FIXME: we cannot read iATU unroll enable now as the host bridge's
> +     * HW is not yet initialized by Domain-0: leave it for later.
> +     */
> +
> +    printk(XENLOG_INFO "%s number of view ports: %d\n", dt_node_full_name(dev),
> +           priv->num_viewport);
> +
> +    return bridge;
> +}
> diff --git a/xen/arch/arm/pci/pci-designware.h b/xen/arch/arm/pci/pci-designware.h
> new file mode 100644
> index 0000000000..a15ba9a329
> --- /dev/null
> +++ b/xen/arch/arm/pci/pci-designware.h
> @@ -0,0 +1,102 @@
> +/*
> + * Based on Linux drivers/pci/controller/pci-host-common.c
> + * Based on Linux drivers/pci/controller/pci-host-generic.c
> + * Based on xen/arch/arm/pci/pci-host-generic.c
> + *
> + * 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.
> + *
> + * 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.
> + *
> + * 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/pci.h>
> +#include <xen/init.h>
> +
> +#ifndef __PCI_DESIGNWARE_H__
> +#define __PCI_DESIGNWARE_H__
> +
> +#define PCIBIOS_SUCCESSFUL              0x00
> +#define PCIBIOS_BAD_REGISTER_NUMBER     0x87
> +
> +#define PCIE_ATU_VIEWPORT               0x900
> +#define PCIE_ATU_REGION_OUTBOUND        0
> +#define PCIE_ATU_CR1                    0x904
> +#define PCIE_ATU_INCREASE_REGION_SIZE   BIT(13, UL)
> +#define PCIE_ATU_CR2                    0x908
> +#define PCIE_ATU_ENABLE                 BIT(31, UL)
> +#define PCIE_ATU_LOWER_BASE             0x90C
> +#define PCIE_ATU_UPPER_BASE             0x910
> +#define PCIE_ATU_LIMIT                  0x914
> +#define PCIE_ATU_LOWER_TARGET           0x918
> +#define PCIE_ATU_UPPER_TARGET           0x91C
> +#define PCIE_ATU_UPPER_LIMIT            0x924
> +
> +#define PCIE_ATU_REGION_INDEX1  0x1
> +#define PCIE_ATU_TYPE_IO        0x2
> +#define PCIE_ATU_TYPE_CFG0      0x4
> +
> +#define FIELD_PREP(_mask, _val) \
> +    (((typeof(_mask))(_val) << (ffs64(_mask) - 1)) & (_mask))
> +
> +#define PCIE_ATU_BUS(x)         FIELD_PREP(GENMASK(31, 24), x)
> +#define PCIE_ATU_DEV(x)         FIELD_PREP(GENMASK(23, 19), x)
> +#define PCIE_ATU_FUNC(x)        FIELD_PREP(GENMASK(18, 16), x)
> +
> +/* Register address builder */
> +#define PCIE_GET_ATU_OUTB_UNR_REG_OFFSET(region) \
> +    ((region) << 9)
> +
> +/*
> + * iATU Unroll-specific register definitions
> + * From 4.80 core version the address translation will be made by unroll
> + */
> +#define PCIE_ATU_UNR_REGION_CTRL1       0x00
> +#define PCIE_ATU_UNR_REGION_CTRL2       0x04
> +#define PCIE_ATU_UNR_LOWER_BASE         0x08
> +#define PCIE_ATU_UNR_UPPER_BASE         0x0C
> +#define PCIE_ATU_UNR_LOWER_LIMIT        0x10
> +#define PCIE_ATU_UNR_LOWER_TARGET       0x14
> +#define PCIE_ATU_UNR_UPPER_TARGET       0x18
> +#define PCIE_ATU_UNR_UPPER_LIMIT        0x20
> +
> +#define PCIE_ATU_FUNC_NUM(pf)           ((pf) << 20)
> +
> +/* Parameters for the waiting for iATU enabled routine */
> +#define LINK_WAIT_MAX_IATU_RETRIES      5
> +#define LINK_WAIT_IATU                  9
> +
> +struct dw_pcie_priv {
> +    uint32_t num_viewport;
> +    bool iatu_unroll_initilized;
> +    bool iatu_unroll_enabled;
> +    void __iomem *atu_base;
> +    unsigned int version;
> +};
> +
> +void dw_pcie_set_version(struct pci_host_bridge *bridge, unsigned int version);
> +
> +void __iomem *dw_pcie_child_map_bus(struct pci_host_bridge *bridge,
> +                                    pci_sbdf_t sbdf, uint32_t where);
> +
> +int dw_pcie_child_config_read(struct pci_host_bridge *bridge, pci_sbdf_t sbdf,
> +                              uint32_t reg, uint32_t len, uint32_t *value);
> +
> +int dw_pcie_child_config_write(struct pci_host_bridge *bridge, pci_sbdf_t sbdf,
> +                               uint32_t reg, uint32_t len, uint32_t value);
> +
> +bool __init dw_pcie_child_need_p2m_hwdom_mapping(struct domain *d,
> +                                                 struct pci_host_bridge *bridge,
> +                                                 uint64_t addr);
> +
> +struct pci_host_bridge *__init
> +dw_pcie_host_probe(struct dt_device_node *dev, const void *data,
> +                   const struct pci_ecam_ops *ops,
> +                   const struct pci_ecam_ops *child_ops);
> +#endif /* __PCI_DESIGNWARE_H__ */
> diff --git a/xen/arch/arm/pci/pci-host-rcar4.c b/xen/arch/arm/pci/pci-host-rcar4.c
> new file mode 100644
> index 0000000000..cae1b4254d
> --- /dev/null
> +++ b/xen/arch/arm/pci/pci-host-rcar4.c
> @@ -0,0 +1,103 @@
> +/*
> + * Based on Linux drivers/pci/controller/pci-host-common.c
> + * Based on Linux drivers/pci/controller/pci-host-generic.c
> + * Based on xen/arch/arm/pci/pci-host-generic.c
> + *
> + * 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.
> + *
> + * 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.
> + *
> + * 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/init.h>
> +#include <xen/pci.h>
> +
> +#include <asm/device.h>
> +#include <asm/io.h>
> +#include <asm/pci.h>
> +
> +#include "pci-designware.h"
> +
> +#define RCAR4_DWC_VERSION       0x520A
> +
> +/*
> + * PCI host bridges often have different ways to access the root and child
> + * bus config spaces:
> + *   "dbi"   : the aperture where root port's own configuration registers
> + *             are available.
> + *   "config": child's configuration space
> + *   "atu"   : iATU registers for DWC version 4.80 or later
> + */
> +static int __init rcar4_cfg_reg_index(struct dt_device_node *np)
> +{
> +    return dt_property_match_string(np, "reg-names", "dbi");
> +}
> +
> +static int __init rcar4_child_cfg_reg_index(struct dt_device_node *np)
> +{
> +    return dt_property_match_string(np, "reg-names", "config");
> +}
> +
> +/* ECAM ops */
> +const struct pci_ecam_ops rcar4_pcie_ops = {
> +    .bus_shift  = 20,
> +    .cfg_reg_index = rcar4_cfg_reg_index,
> +    .pci_ops    = {
> +        .map_bus                = pci_ecam_map_bus,
> +        .read                   = pci_generic_config_read,
> +        .write                  = pci_generic_config_write,
> +        .need_p2m_hwdom_mapping = pci_ecam_need_p2m_hwdom_mapping,
> +    }
> +};
> +
> +const struct pci_ecam_ops rcar4_pcie_child_ops = {
> +    .bus_shift  = 20,
> +    .cfg_reg_index = rcar4_child_cfg_reg_index,
> +    .pci_ops    = {
> +        .map_bus                = dw_pcie_child_map_bus,
> +        .read                   = dw_pcie_child_config_read,
> +        .write                  = dw_pcie_child_config_write,
> +        .need_p2m_hwdom_mapping = dw_pcie_child_need_p2m_hwdom_mapping,
> +    }
> +};
> +
> +static const struct dt_device_match __initconstrel rcar4_pcie_dt_match[] = {
> +    { .compatible = "renesas,r8a779f0-pcie" },
> +    { .compatible = "renesas,r8a779g0-pcie" },
> +    {},
> +};
> +
> +static int __init pci_host_generic_probe(struct dt_device_node *dev,
> +                                         const void *data)
> +{
> +    struct pci_host_bridge *bridge;
> +
> +    bridge = dw_pcie_host_probe(dev, data, &rcar4_pcie_ops,
> +                                &rcar4_pcie_child_ops);
> +
> +    dw_pcie_set_version(bridge, RCAR4_DWC_VERSION);
> +
> +    return 0;
> +}
> +
> +DT_DEVICE_START(pci_gen, "PCI HOST R-CAR GEN4", DEVICE_PCI_HOSTBRIDGE)
> +.dt_match = rcar4_pcie_dt_match,
> +.init = pci_host_generic_probe,
> +DT_DEVICE_END
> +
> +/*
> + * 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 Wed Apr 23 21:10:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 21:10:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.965415.1355980 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7hM1-0000N7-IA; Wed, 23 Apr 2025 21:10:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 965415.1355980; Wed, 23 Apr 2025 21: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 1u7hM1-0000N0-FR; Wed, 23 Apr 2025 21:10:01 +0000
Received: by outflank-mailman (input) for mailman id 965415;
 Wed, 23 Apr 2025 21:09: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=iEkW=XJ=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1u7hLz-0000Mu-L1
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 21:09:59 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4f805ca5-2087-11f0-9ffb-bf95429c2676;
 Wed, 23 Apr 2025 23:09:57 +0200 (CEST)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id 9BADC4EE3CA1;
 Wed, 23 Apr 2025 23:09:56 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4f805ca5-2087-11f0-9ffb-bf95429c2676
Authentication-Results: bugseng.com; arc=none smtp.remote-ip=162.55.131.47
ARC-Seal: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; cv=none; t=1745442596;
	b=ySIsKPhQda3RSyWGlp+1orZn74T/YVn8TT2rgty7bsTbcFniQKRnY7RUTSA+Q8ywaPFP
	 5/KXdSgSooyAv8sTKxb1jD+Ee6xokDcaYRhTcU8ELv8hZoJMQVGMQjkIyeR6OHjVKc3CC
	 +JJrd655v7CjwGd8FRDkl+jRYAQ/mpOc+HTb31YlpM8Armpukd3G9Fe19FTvl+y0nPToE
	 rldNpS0scivmlvul1g+cwb6saqcRwkNH/D5g2rGt71Y5Xd2JTdGHvL02ZO0dvWfHNxq3P
	 ezk5W7sjGn1Z0dZSgzJTuo2GgLkiffXMs2oT1w+Jgv5ttoT/2LZ4NjJrYiNO3WPIc6IBa
	 9V0+Dd6+0d7PYizPjUpmw8+z2kdpF4qxn7m6JZdmWRVVFyG//cBuwOfK6tgH+7BtXx6Kz
	 /C+g07mOB8vKEmqpbRbEq6mRrkSOKBoTn0oufd/9JY6orCcvqNjdslfv+Y1A66UILXBX3
	 0zCQ7b4Znz9AnJ7k+a3SCofqxMxALTj780YzoNGPATwFr0p2ocpJbYD6UlFKOpta9JsYA
	 vDGq56TvoA9zGntcJDUIA8h+pJtXW4jdHd27OliPcqb7AyPiliPNqn5G96DZlzGeDvZUB
	 ShASPxMY8Dy2hJBHoNeeoWaKDkepMgQ2ZFqaCwWx7bqpwdMyMHV5LkCZGtJNjcs=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1745442596;
	h=DKIM-Signature:MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:
	 References:Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=obOWsfDCMqWc6RyXHL2DTYFra3Oay8yuQNaJUgktNVQ=;
	b=bKH92BNxQeoL57gLprA//Q7Atdglg/fTvHAXd5TpySKDByIN9txD+OgwKeUli5+6hZzE
	 0ILf4WpAoQJtFrIjAJrG5gqjnYJlgDuS1tLKUSHjfqcz9KlR0ApjxkzrN8xSWPV3JAkUn
	 nEK41abosVH4ehm0XbQujSmvrako9EVo5uY92YKS9/qCBGUb41JroW27kCdJ3/qOvc6VA
	 6JtMpzSRW15W+iUqIfSnOlty+eCVBpijF1FcAFcc6NlHtZzct2uNMsStxkP/S6+WG8cG+
	 AXf6JkE1oMtfm9yeUBmtRZEwVFen5L8t3I5bb9LQ5kYof5j3i4E8r+goLNWBHQT1PeK+g
	 Kb/z8ro7BS49pF8HaJPyMly9J9RHYvbRSJRh0XYOdcKamjcTsqAjh+Ek22tR5hndsH9ML
	 o09EMi3m3yRa9YkJ2NhvJYe4cjKtULXL2S2EwU0T1wQG+8nonlZzyA5cYP4jR1rWTFxSg
	 L0qe1y8IwkaRzWrOONX/tjk3BF+OgNsP3YLb6gBUKulqEt4zlTYp8Gig4BgBYMmEsUS6z
	 chrEW3dM/KPU/Gitg7aOiPJF1cieL/j6vvW0XW32k/SJEs/WleWFAIY3nUrPnxHMxNc97
	 MJGxgXdTLFwqH1DhOb5qhcqXPnJRrnWiJaGolXSjr334AZMb3TPZKTCTPyeVuzE=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1745442596; bh=ZFo5dTLDeAhWWkffKozfybr78bGqLfdJbdzg/4XSs68=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=VMxHnbRRHra+TlzSi4z+D+WUkCT3E022I4/FUtm1HDAh1OyOLgKw+t85uwd437X/X
	 kS39U+bVRj0Xni8XAKuhTzj1YDfr/fj/WGDV0X2pCzz680o0Bdpv7uD8jFtD37XTvz
	 jJ+IQhcNm7D7uFNfr/Xa0P7LrSYROWYubf6PyKrQiEmQ4QckD40lJxYVd59U0BM1oo
	 1IAAeTbeCTKDZQfQ+RW1KIkfBq7ykTnsMUT3wxrNp77Nqd14gOPcPRaSAHXu6RO+2u
	 DYtJajl+S6icCzxf7IeKHVeWHq5V5ntoNcTx6QU0OfqBrerAvY3xznT6WScevPDeZk
	 YTw+C1LyzAemw==
MIME-Version: 1.0
Date: Wed, 23 Apr 2025 23:09:56 +0200
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Julien Grall <julien@xen.org>
Cc: victorm.lira@amd.com, xen-devel@lists.xenproject.org, Federico Serafini
 <federico.serafini@bugseng.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>, Michal Orzel
 <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Rog?=
 =?UTF-8?Q?er_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Stefano Stabellini
 <sstabellini@kernel.org>, Bertrand Marquis <bertrand.marquis@arm.com>
Subject: Re: [PATCH v1] misra: add deviation of Rule 10.1 for unary minus
In-Reply-To: <afdb0197-6f0f-47a7-88cb-83e014f09914@xen.org>
References: <9e1210f2a9c794d68dcc6b897239b228b141296a.1745427770.git.victorm.lira@amd.com>
 <7c7b7a09e9d5ac1cc6f93fecacd8065fb6f25324.1745427770.git.victorm.lira@amd.com>
 <afdb0197-6f0f-47a7-88cb-83e014f09914@xen.org>
Message-ID: <fa196b8dc5edd5cb76d49a38a6cf129c@bugseng.com>
X-Sender: nicola.vetrini@bugseng.com
Organization: BUGSENG s.r.l.
Content-Type: text/plain; charset=UTF-8;
 format=flowed
Content-Transfer-Encoding: 8bit

On 2025-04-23 22:48, Julien Grall wrote:
> Hi Victor,
> 
> On 23/04/2025 18:54, victorm.lira@amd.com wrote:
>> From: Nicola Vetrini <nicola.vetrini@bugseng.com>
>> 
>> MISRA C Rule 10.1 states:
>> "Operands shall not be of an inappropriate essential type"
>> 
>> The unary minus operator applied to an unsigned quantity has
>> a semantics (wrap around) that is well-known to all Xen developers.
>> Thus, this operation is deemed safe.
>> 
>> No functional change.
>> 
>> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
>> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
>> Signed-off-by: Victor Lira <victorm.lira@amd.com>
>> ---
>> Changes v1:
>> - add rule title to commit message
>> ---
>> Cc: Andrew Cooper <andrew.cooper3@citrix.com>
>> Cc: Anthony PERARD <anthony.perard@vates.tech>
>> Cc: Michal Orzel <michal.orzel@amd.com>
>> Cc: Jan Beulich <jbeulich@suse.com>
>> Cc: Julien Grall <julien@xen.org>
>> Cc: Roger Pau Monné <roger.pau@citrix.com>
>> Cc: Stefano Stabellini <sstabellini@kernel.org>
>> Cc: Nicola Vetrini <nicola.vetrini@bugseng.com>
>> Cc: Federico Serafini <federico.serafini@bugseng.com>
>> Cc: Bertrand Marquis <bertrand.marquis@arm.com>
>> ---
>>   automation/eclair_analysis/ECLAIR/deviations.ecl | 6 ++++++
>>   docs/misra/deviations.rst                        | 6 ++++++
>>   2 files changed, 12 insertions(+)
>> 
>> diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl 
>> b/automation/eclair_analysis/ECLAIR/deviations.ecl
>> index 303b06203a..2cfce850bd 100644
>> --- a/automation/eclair_analysis/ECLAIR/deviations.ecl
>> +++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
>> @@ -347,6 +347,12 @@ constant expressions are required.\""
>>     "any()"}
>>   -doc_end
>> 
>> +-doc_begin="Unary minus operations on non-negative integers have a 
>> semantics (wrap around) that is well-known to all Xen developers."
>> +-config=MC3A2.R10.1,etypes+={safe,
>> +  "stmt(node(unary_operator)&&operator(minus))",
>> +  "src_expr(definitely_in(0..))"}
>> +-doc_end
>> +
>>   #
>>   # Series 11
>>   #
>> diff --git a/docs/misra/deviations.rst b/docs/misra/deviations.rst
>> index cfdd1a9838..c5897e31c5 100644
>> --- a/docs/misra/deviations.rst
>> +++ b/docs/misra/deviations.rst
>> @@ -321,6 +321,12 @@ Deviations related to MISRA C:2012 Rules:
>>          If no bits are set, 0 is returned.
>>        - Tagged as `safe` for ECLAIR.
>> 
>> +   * - R10.1
>> +     - Applying the unary minus operator to an unsigned quantity has 
>> a
>> +       semantics (wrap around) that is well-known to all Xen 
>> developers.
>> +       For this reason, the operation is safe.
> 
> I have realized we use similar wording in the rest of the deviations, 
> but this is rather fragile argument. "well-known" is very subjective 
> and could change over time.
> 
> How many violations do we have? Could we deviate them one by one?
> 

Hi Julien,

around 10 on ARM, but more than 100 on x86 scattered around multiple 
constructs (e.g. not only inside a handful of macros), so I don't think 
it's feasible to deviate them one by one. I do agree that the wording is 
subjective, but it is rather well-defined which toolchains and 
architectures are used (C-language-toolchain.rst). Perhaps a wording 
mentioning the specific assumptions implied here can address your 
concerns?

Thanks,
  Nicola

> Cheers,

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


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 21:13:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 21:13:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.965427.1355990 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7hOo-0002av-V6; Wed, 23 Apr 2025 21:12:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 965427.1355990; Wed, 23 Apr 2025 21:12: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 1u7hOo-0002ao-S6; Wed, 23 Apr 2025 21:12:54 +0000
Received: by outflank-mailman (input) for mailman id 965427;
 Wed, 23 Apr 2025 21:12:54 +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 1u7hOo-0002ai-0B
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 21:12:54 +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 1u7hOn-00HItS-0U;
 Wed, 23 Apr 2025 21:12:53 +0000
Received: from [2a02:8012:3a1:0:752c:956a:3e76:876d]
 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 1u7hOm-008Paz-32;
 Wed, 23 Apr 2025 21:12: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=XVvjHaXwTduRlMoAcAgc0I1f6iOlXM17me+Myh5Ze/M=; b=N36eJf+HcJ55xUBYw7PJgSPDJV
	4QXbHFN5+AIkX3SANkZD2oyTjER3ny7lXLwQQQxF1Cjp3d8qyQuFs9Uv5pUp+44wdDpvcIk9OJepM
	Wzx7GpvvtzZkQqNCJgUgwyflVlhbQpjRt9KeY07Mkr48+7dyC0bGOmsZGbYuH+4HfGUY=;
Message-ID: <85bac6a2-db21-4756-99a2-e0543f9afec6@xen.org>
Date: Wed, 23 Apr 2025 22:12:50 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1] misra: add deviation of Rule 10.1 for unary minus
Content-Language: en-GB
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
Cc: victorm.lira@amd.com, xen-devel@lists.xenproject.org,
 Federico Serafini <federico.serafini@bugseng.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>
References: <9e1210f2a9c794d68dcc6b897239b228b141296a.1745427770.git.victorm.lira@amd.com>
 <7c7b7a09e9d5ac1cc6f93fecacd8065fb6f25324.1745427770.git.victorm.lira@amd.com>
 <afdb0197-6f0f-47a7-88cb-83e014f09914@xen.org>
 <fa196b8dc5edd5cb76d49a38a6cf129c@bugseng.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <fa196b8dc5edd5cb76d49a38a6cf129c@bugseng.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi Nicola,

On 23/04/2025 22:09, Nicola Vetrini wrote:
> On 2025-04-23 22:48, Julien Grall wrote:
>> Hi Victor,
>>
>> On 23/04/2025 18:54, victorm.lira@amd.com wrote:
>>> From: Nicola Vetrini <nicola.vetrini@bugseng.com>
>>>
>>> MISRA C Rule 10.1 states:
>>> "Operands shall not be of an inappropriate essential type"
>>>
>>> The unary minus operator applied to an unsigned quantity has
>>> a semantics (wrap around) that is well-known to all Xen developers.
>>> Thus, this operation is deemed safe.
>>>
>>> No functional change.
>>>
>>> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
>>> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
>>> Signed-off-by: Victor Lira <victorm.lira@amd.com>
>>> ---
>>> Changes v1:
>>> - add rule title to commit message
>>> ---
>>> Cc: Andrew Cooper <andrew.cooper3@citrix.com>
>>> Cc: Anthony PERARD <anthony.perard@vates.tech>
>>> Cc: Michal Orzel <michal.orzel@amd.com>
>>> Cc: Jan Beulich <jbeulich@suse.com>
>>> Cc: Julien Grall <julien@xen.org>
>>> Cc: Roger Pau Monné <roger.pau@citrix.com>
>>> Cc: Stefano Stabellini <sstabellini@kernel.org>
>>> Cc: Nicola Vetrini <nicola.vetrini@bugseng.com>
>>> Cc: Federico Serafini <federico.serafini@bugseng.com>
>>> Cc: Bertrand Marquis <bertrand.marquis@arm.com>
>>> ---
>>>   automation/eclair_analysis/ECLAIR/deviations.ecl | 6 ++++++
>>>   docs/misra/deviations.rst                        | 6 ++++++
>>>   2 files changed, 12 insertions(+)
>>>
>>> diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl b/ 
>>> automation/eclair_analysis/ECLAIR/deviations.ecl
>>> index 303b06203a..2cfce850bd 100644
>>> --- a/automation/eclair_analysis/ECLAIR/deviations.ecl
>>> +++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
>>> @@ -347,6 +347,12 @@ constant expressions are required.\""
>>>     "any()"}
>>>   -doc_end
>>>
>>> +-doc_begin="Unary minus operations on non-negative integers have a 
>>> semantics (wrap around) that is well-known to all Xen developers."
>>> +-config=MC3A2.R10.1,etypes+={safe,
>>> +  "stmt(node(unary_operator)&&operator(minus))",
>>> +  "src_expr(definitely_in(0..))"}
>>> +-doc_end
>>> +
>>>   #
>>>   # Series 11
>>>   #
>>> diff --git a/docs/misra/deviations.rst b/docs/misra/deviations.rst
>>> index cfdd1a9838..c5897e31c5 100644
>>> --- a/docs/misra/deviations.rst
>>> +++ b/docs/misra/deviations.rst
>>> @@ -321,6 +321,12 @@ Deviations related to MISRA C:2012 Rules:
>>>          If no bits are set, 0 is returned.
>>>        - Tagged as `safe` for ECLAIR.
>>>
>>> +   * - R10.1
>>> +     - Applying the unary minus operator to an unsigned quantity has a
>>> +       semantics (wrap around) that is well-known to all Xen 
>>> developers.
>>> +       For this reason, the operation is safe.
>>
>> I have realized we use similar wording in the rest of the deviations, 
>> but this is rather fragile argument. "well-known" is very subjective 
>> and could change over time.
>>
>> How many violations do we have? Could we deviate them one by one?
>>
> 
> Hi Julien,
> 
> around 10 on ARM, but more than 100 on x86 scattered around multiple 
> constructs (e.g. not only inside a handful of macros), so I don't think 
> it's feasible to deviate them one by one. 

Interesting. This seems to contradict what Stefano just wrote:

"
We only have few instances of this pattern and the few we have are well
understood and certainly deliberate.
"

> I do agree that the wording is 
> subjective, but it is rather well-defined which toolchains and 
> architectures are used (C-language-toolchain.rst). Perhaps a wording 
> mentioning the specific assumptions implied here can address your concerns?

If this is well-defined by the toolchains/architectures, then it is a 
better argument than "Xen community knows it".

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Wed Apr 23 21:21:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 21:21:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.965448.1355999 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7hWv-0004Tu-Mj; Wed, 23 Apr 2025 21:21:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 965448.1355999; Wed, 23 Apr 2025 21: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 1u7hWv-0004Tn-KH; Wed, 23 Apr 2025 21:21:17 +0000
Received: by outflank-mailman (input) for mailman id 965448;
 Wed, 23 Apr 2025 21:21: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=UY1Q=XJ=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u7hWu-0004Th-DC
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 21:21:16 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e2afeff5-2088-11f0-9eb0-5ba50f476ded;
 Wed, 23 Apr 2025 23:21:14 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 1A5376844A;
 Wed, 23 Apr 2025 21:20:52 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6F37BC4CEE2;
 Wed, 23 Apr 2025 21:21: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: e2afeff5-2088-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1745443273;
	bh=KfdtuBSmpl8CebcUyNB1kxOOjRi4U6iLpsWLS2Uj3t0=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=MsPdc+LEMdhky/0taPY3vO2Mqy119GWJgYsc7WjzOJaknos3UBbNRqblanrxKJo8g
	 pVqel1FT1DhObKCbgR1vHeIqRpLkXqU6i+oF3WbPQsesbqVeNfz1JPPl+VDq4FFpDd
	 J3xWZdWTRvsEb23ErpXLn9zJvWCQzHxea/MOlpnToQUW0kMGGlx47nPsO9p9uwNqOe
	 UrvWN4cmUkKgpLz9t2fGIhnqVhx0hDlmsEgCxNHwVJjqdhlK3cAtads5YA2lr0PJVC
	 V74hk3RoGut0Ru97aTo5YfO2/f5S3nOSYBBFMAmHbY9rK5j3yFX8UmvZdSS7tYLRuv
	 L56LWRTwkXFoA==
Date: Wed, 23 Apr 2025 14:21:10 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Julien Grall <julien@xen.org>
cc: Nicola Vetrini <nicola.vetrini@bugseng.com>, victorm.lira@amd.com, 
    xen-devel@lists.xenproject.org, 
    Federico Serafini <federico.serafini@bugseng.com>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    Anthony PERARD <anthony.perard@vates.tech>, 
    Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Bertrand Marquis <bertrand.marquis@arm.com>
Subject: Re: [PATCH v1] misra: add deviation of Rule 10.1 for unary minus
In-Reply-To: <85bac6a2-db21-4756-99a2-e0543f9afec6@xen.org>
Message-ID: <alpine.DEB.2.22.394.2504231414540.785180@ubuntu-linux-20-04-desktop>
References: <9e1210f2a9c794d68dcc6b897239b228b141296a.1745427770.git.victorm.lira@amd.com> <7c7b7a09e9d5ac1cc6f93fecacd8065fb6f25324.1745427770.git.victorm.lira@amd.com> <afdb0197-6f0f-47a7-88cb-83e014f09914@xen.org> <fa196b8dc5edd5cb76d49a38a6cf129c@bugseng.com>
 <85bac6a2-db21-4756-99a2-e0543f9afec6@xen.org>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; BOUNDARY="8323329-765711088-1745443208=:785180"
Content-ID: <alpine.DEB.2.22.394.2504231420160.785180@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-765711088-1745443208=:785180
Content-Type: text/plain; CHARSET=UTF-8
Content-Transfer-Encoding: 8BIT
Content-ID: <alpine.DEB.2.22.394.2504231420161.785180@ubuntu-linux-20-04-desktop>

On Wed, 23 Apr 2025, Julien Grall wrote:
> Hi Nicola,
> 
> On 23/04/2025 22:09, Nicola Vetrini wrote:
> > On 2025-04-23 22:48, Julien Grall wrote:
> > > Hi Victor,
> > > 
> > > On 23/04/2025 18:54, victorm.lira@amd.com wrote:
> > > > From: Nicola Vetrini <nicola.vetrini@bugseng.com>
> > > > 
> > > > MISRA C Rule 10.1 states:
> > > > "Operands shall not be of an inappropriate essential type"
> > > > 
> > > > The unary minus operator applied to an unsigned quantity has
> > > > a semantics (wrap around) that is well-known to all Xen developers.
> > > > Thus, this operation is deemed safe.
> > > > 
> > > > No functional change.
> > > > 
> > > > Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
> > > > Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
> > > > Signed-off-by: Victor Lira <victorm.lira@amd.com>
> > > > ---
> > > > Changes v1:
> > > > - add rule title to commit message
> > > > ---
> > > > Cc: Andrew Cooper <andrew.cooper3@citrix.com>
> > > > Cc: Anthony PERARD <anthony.perard@vates.tech>
> > > > Cc: Michal Orzel <michal.orzel@amd.com>
> > > > Cc: Jan Beulich <jbeulich@suse.com>
> > > > Cc: Julien Grall <julien@xen.org>
> > > > Cc: Roger Pau Monné <roger.pau@citrix.com>
> > > > Cc: Stefano Stabellini <sstabellini@kernel.org>
> > > > Cc: Nicola Vetrini <nicola.vetrini@bugseng.com>
> > > > Cc: Federico Serafini <federico.serafini@bugseng.com>
> > > > Cc: Bertrand Marquis <bertrand.marquis@arm.com>
> > > > ---
> > > >   automation/eclair_analysis/ECLAIR/deviations.ecl | 6 ++++++
> > > >   docs/misra/deviations.rst                        | 6 ++++++
> > > >   2 files changed, 12 insertions(+)
> > > > 
> > > > diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl b/
> > > > automation/eclair_analysis/ECLAIR/deviations.ecl
> > > > index 303b06203a..2cfce850bd 100644
> > > > --- a/automation/eclair_analysis/ECLAIR/deviations.ecl
> > > > +++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
> > > > @@ -347,6 +347,12 @@ constant expressions are required.\""
> > > >     "any()"}
> > > >   -doc_end
> > > > 
> > > > +-doc_begin="Unary minus operations on non-negative integers have a
> > > > semantics (wrap around) that is well-known to all Xen developers."
> > > > +-config=MC3A2.R10.1,etypes+={safe,
> > > > +  "stmt(node(unary_operator)&&operator(minus))",
> > > > +  "src_expr(definitely_in(0..))"}
> > > > +-doc_end
> > > > +
> > > >   #
> > > >   # Series 11
> > > >   #
> > > > diff --git a/docs/misra/deviations.rst b/docs/misra/deviations.rst
> > > > index cfdd1a9838..c5897e31c5 100644
> > > > --- a/docs/misra/deviations.rst
> > > > +++ b/docs/misra/deviations.rst
> > > > @@ -321,6 +321,12 @@ Deviations related to MISRA C:2012 Rules:
> > > >          If no bits are set, 0 is returned.
> > > >        - Tagged as `safe` for ECLAIR.
> > > > 
> > > > +   * - R10.1
> > > > +     - Applying the unary minus operator to an unsigned quantity has a
> > > > +       semantics (wrap around) that is well-known to all Xen
> > > > developers.
> > > > +       For this reason, the operation is safe.
> > > 
> > > I have realized we use similar wording in the rest of the deviations, but
> > > this is rather fragile argument. "well-known" is very subjective and could
> > > change over time.
> > > 
> > > How many violations do we have? Could we deviate them one by one?
> > > 
> > 
> > Hi Julien,
> > 
> > around 10 on ARM, but more than 100 on x86 scattered around multiple
> > constructs (e.g. not only inside a handful of macros), so I don't think it's
> > feasible to deviate them one by one. 
> 
> Interesting. This seems to contradict what Stefano just wrote:
> 
> "
> We only have few instances of this pattern and the few we have are well
> understood and certainly deliberate.
> "

Hi Julien,

Sorry I was going by memory, I should have checked the numbers. There is
an additional issue that there was no overall agreement across all
maintainers to remove all the violations on x86, but now that I see
there are so many it is not really feasible anyway.


> > I do agree that the wording is subjective, but it is rather well-defined
> > which toolchains and architectures are used (C-language-toolchain.rst).
> > Perhaps a wording mentioning the specific assumptions implied here can
> > address your concerns?
> 
> If this is well-defined by the toolchains/architectures, then it is a better
> argument than "Xen community knows it".
 
I also think that "well-defined by the toolchains" is the most important
thing. That should be the real motivation for the deviation. The text
can be improved.
--8323329-765711088-1745443208=:785180--


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 21:22:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 21:22:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.965459.1356010 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7hYG-0005Rb-0w; Wed, 23 Apr 2025 21:22:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 965459.1356010; Wed, 23 Apr 2025 21:22:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7hYF-0005RU-Uc; Wed, 23 Apr 2025 21:22:39 +0000
Received: by outflank-mailman (input) for mailman id 965459;
 Wed, 23 Apr 2025 21:22: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=hbtc=XJ=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1u7hYE-0005RM-Tk
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 21:22:38 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on20624.outbound.protection.outlook.com
 [2a01:111:f403:2418::624])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 139a546f-2089-11f0-9eb0-5ba50f476ded;
 Wed, 23 Apr 2025 23:22:37 +0200 (CEST)
Received: from DM5PR08CA0026.namprd08.prod.outlook.com (2603:10b6:4:60::15) by
 SA3PR12MB9105.namprd12.prod.outlook.com (2603:10b6:806:382::18) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.35; Wed, 23 Apr
 2025 21:22:32 +0000
Received: from CY4PEPF0000EE3D.namprd03.prod.outlook.com
 (2603:10b6:4:60:cafe::3d) by DM5PR08CA0026.outlook.office365.com
 (2603:10b6:4:60::15) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.35 via Frontend Transport; Wed,
 23 Apr 2025 21:22:32 +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.8655.12 via Frontend Transport; Wed, 23 Apr 2025 21:22:31 +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, 23 Apr
 2025 16:22:31 -0500
Received: from fedora.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; Wed, 23 Apr 2025 16:22:31 -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: 139a546f-2089-11f0-9eb0-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=iGMCT6FUAtkxHmdGQuiViPce4ZMRQFVOgH8K16S5xHo++kCXuz7Sgl7ZQ2QGqLY/D+dIinsqhXJVu2xhZVbSrY2aoEy6ir/SQVEMoxW9mKkK6uwMhDiC7JR8ZDEzLz84b6k1sMFtgw8N4IR/6uzDb24WC5hL0Et2mRY2vfA7RvImwVidlXbK/1RJswfB9XwvvJ5OhDxFRDBAcQwggDlcYGX5yQDSjAZsz4GKnyXOH3W7aA9XfvGqM/Ls5SXW36R9F0phsL9WlvaliGPXzSM0aGwq01O/pNPhZx5HYIZi9WEfAyLm9A5Ymf03zT0xP1e1SjfgunGDLs2Cd4fg1IrRjg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=W0mETdvua0/gBYEuaqJbC0NYkduvDuduIB31o03LE/c=;
 b=iphJGNclefDEpjamjzWMCOiPzLrXtluETSw9jhp944KHuudb+OARrroW1K7lua/TjiFkmNqTjGIii+32LLA4rNx6+nCI32u5ITByeXc1WStbSStMrgAD2W2H4Zj4n/qmkD5nD0bKEaYl1t3+1wdgLIaKHHc5qVXMGYVuTguPenQD2WMIGc/psuJ6u0/bwnnqSADioJnDGrmwzcKaK5IX3J0Jj5oN587uIemB8zRL4G2FK8nZJ7pqL2RqOyzFdYC2b4CvI/Haz6ZG7gfJeTe4lscGVJaHhl5RB/k7uYKGPSQNsBFolhqcb9YG6s+ueNiHgqemv+vHKaXswC7oOSQbcw==
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=W0mETdvua0/gBYEuaqJbC0NYkduvDuduIB31o03LE/c=;
 b=DnzykFCHl6cULp2GsjVvw6SpsBVwA5BU5If3PyUFIqSoUHYvewhIGSZkHevZWxhWguiPaF8/a5I0H+LUPPqi/1dy/h0OFmE/7CHZmUkNxc1Q3HO2kjWGvUVVhrUiDTIdeyrz9Bo59PqerXSf/Emp5OTTYMP7OBAUeWSTlhc2Jy8=
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>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH] xen/vpci: Fix msix existing mapping printk
Date: Wed, 23 Apr 2025 17:22:29 -0400
Message-ID: <20250423212229.32721-1-jason.andryuk@amd.com>
X-Mailer: git-send-email 2.49.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
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: CY4PEPF0000EE3D:EE_|SA3PR12MB9105:EE_
X-MS-Office365-Filtering-Correlation-Id: 4b9d72ee-7ae3-401d-5b8f-08dd82acf55d
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|376014|1800799024|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?HE1zndZrcHrBq0PuKx73p2Fv4pMDwwzuyj6FEPddhZR8D1Gn095/6WkutNsV?=
 =?us-ascii?Q?p2YDnop3t8hq3qw6q/BIDWT9JT9UmiE47Op79sXRLglnIOy51NtNEb1PHUC3?=
 =?us-ascii?Q?/2T4PMEBxBGhTnKqfpAw/PvlM3cijUCLW2C5A/Lrq5SYA+WgPaBGMNLaQtKH?=
 =?us-ascii?Q?PqibC0Un9ujvXlbEmK+NkWZUxwSWwNiB/95P6/IBNIgK09+DwDM/UR16Xqxq?=
 =?us-ascii?Q?sUip5naTaClmZIOU3m4lzWLLiVbXidxFRX7KoG/kWds8iYbNBjEyEdH+Rohd?=
 =?us-ascii?Q?Qbwit++Nr8vaHBJAdOmlx6Oe2KQf6hAmVmTFmTUdKTtBRHwy972JBM5Hxjbv?=
 =?us-ascii?Q?dqjkZicssM+RX4EkdDpx0/YZkNDwAkl1XKnVXKXwp6exZr+FGEr+LeLboWbm?=
 =?us-ascii?Q?rnTO4sUzVhi/zSaqYXhm7tvKVC23ckIdA2GLsD/UaC0vsJDITG7L1ND7Wkqh?=
 =?us-ascii?Q?5REhbZx9RF21KRIQIgoHtG9BGsLzIFvQ/2LBZ6GoZLTqUvx6V1q5OJr30sKS?=
 =?us-ascii?Q?R00obM2fTPw0s8hZERE98cOfNswuimsKS543/ydYSohB1GfjHob/wEATGBH4?=
 =?us-ascii?Q?enzOU4+KdTXba5L/D+Ywvz6QJ0AFt6CmDzgt9k0sBAK69MUv8fHXl8V4Pftz?=
 =?us-ascii?Q?Lt+vRr4k5CkmfzD2qcoU7IaoWl72vrygZgy61ZJ0i/86oyo2MHXmAbAqpFvF?=
 =?us-ascii?Q?pXmFb5jNDtzkPsUrzb8IA0NqBan5T4Gjuwm+t0qJ1teWoJVa5pUPZzaOIDnZ?=
 =?us-ascii?Q?3+tHZolUjDLiahvhDA0idIfF8lsc7TYYUOPhYbpo9vpopsJQaLe+JVp8JsRc?=
 =?us-ascii?Q?3PIbt5OuuhHFs+qWKKJJzJ5Gepp6k6letBFbwjI8E1MFXndgwTr5tFlXych/?=
 =?us-ascii?Q?nKtjQznTNZDUmXXTj4RcKUhPdIJsPAV7oTSPD5pjttHb9Ux+cS86Kqrv/8zz?=
 =?us-ascii?Q?nXLc16MPRTmJ2cLo3wuk0biYaAmO0FBARQ1qPf+eAf2TNQImiIS8YUpc+16i?=
 =?us-ascii?Q?0O5v8LalQznUCk2kJ4EDij46O8akwRKDjTTlW4u0a4ynFAFcE7gdq3vPK7To?=
 =?us-ascii?Q?+DC3VSXyHMvFAbtl5BQgEj/1ylBxdbRrNNqhx9HxoFCIsF19zFjlyfMcr+la?=
 =?us-ascii?Q?XemQGu4SuNN8ZlCZrHc9nrMfCUgI4CzPx4ELq4ONF2oj+2CIVz2R5xLfpGnk?=
 =?us-ascii?Q?KxwSTpLTBj8fmzhvINuqM1qg8WnwCuUb4b+c65zX+geGlEZGPLQkMem2nSA6?=
 =?us-ascii?Q?mTBacicHahOw35Lpg6Ghr13wiOW/SW/85ts/+EeiiDMHYtJlF5YxVcYJDT0U?=
 =?us-ascii?Q?Z68SM97nObUS67vsPupr4lGv6Gvs/VRW9cPfvTJN8YxaaTfx7aR4QKuS+Mpw?=
 =?us-ascii?Q?hivV70pq92RVEPgc7DJ1Ybt0D3NWY/MKdaf829KGADA7K6/Vp9j7mkF5bswm?=
 =?us-ascii?Q?IJze4IZSU+CFOm+LLLxDZCbLGFeruC/Q5K5e0qZNRBOcatg83mvySzxi1VWr?=
 =?us-ascii?Q?RFM5mShetipcIxgU5rQMaOdBAAf0/SsHLSeh?=
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)(376014)(1800799024)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Apr 2025 21:22:31.7438
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 4b9d72ee-7ae3-401d-5b8f-08dd82acf55d
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: SA3PR12MB9105

The format string lacks a space, so mfn and type run together:
(XEN) d0v0 0000:06:00.7: existing mapping (mfn: 753037type: 0) at 0x1 clobbers MSIX MMIO area

Add a space.

Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
---
 xen/drivers/vpci/msix.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/drivers/vpci/msix.c b/xen/drivers/vpci/msix.c
index f3804ce047..499810b238 100644
--- a/xen/drivers/vpci/msix.c
+++ b/xen/drivers/vpci/msix.c
@@ -666,7 +666,7 @@ int vpci_make_msix_hole(const struct pci_dev *pdev)
                 put_gfn(d, start);
                 gprintk(XENLOG_WARNING,
                         "%pp: existing mapping (mfn: %" PRI_mfn
-                        "type: %d) at %#lx clobbers MSIX MMIO area\n",
+                        " type: %d) at %#lx clobbers MSIX MMIO area\n",
                         &pdev->sbdf, mfn_x(mfn), t, start);
                 return -EEXIST;
             }
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Wed Apr 23 21:28:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 21:28:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.965476.1356026 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7hdy-0006Aw-1P; Wed, 23 Apr 2025 21:28:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 965476.1356026; Wed, 23 Apr 2025 21:28: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 1u7hdx-0006AJ-Sv; Wed, 23 Apr 2025 21:28:33 +0000
Received: by outflank-mailman (input) for mailman id 965476;
 Wed, 23 Apr 2025 21:28: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=hbtc=XJ=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1u7hdw-00068J-Cw
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 21:28:32 +0000
Received: from NAM04-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam04on20611.outbound.protection.outlook.com
 [2a01:111:f403:240a::611])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e6a95fc4-2089-11f0-9eb0-5ba50f476ded;
 Wed, 23 Apr 2025 23:28:31 +0200 (CEST)
Received: from DSZP220CA0005.NAMP220.PROD.OUTLOOK.COM (2603:10b6:5:280::12) by
 PH0PR12MB5608.namprd12.prod.outlook.com (2603:10b6:510:143::13) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.23; Wed, 23 Apr
 2025 21:28:26 +0000
Received: from DS1PEPF00017095.namprd03.prod.outlook.com
 (2603:10b6:5:280:cafe::3a) by DSZP220CA0005.outlook.office365.com
 (2603:10b6:5:280::12) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.38 via Frontend Transport; Wed,
 23 Apr 2025 21:28:26 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 DS1PEPF00017095.mail.protection.outlook.com (10.167.17.138) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Wed, 23 Apr 2025 21:28:25 +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, 23 Apr
 2025 16:28:25 -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; Wed, 23 Apr
 2025 16:28:24 -0500
Received: from fedora.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; Wed, 23 Apr 2025 16:28:24 -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: e6a95fc4-2089-11f0-9eb0-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=RnRM+VxYt3teDBd+qWAPTCh4psRvYD+av9aqH/OWK2B1ViOMzKuaxKewSFVR6qB+RBgMM9xcmmjeP54AxHkv8nviLhAKXe6W/65qp7gmAT9M84/rBLN6bxAqCsmXTCjLFbn8a4yWVDRmwo+914N5D+migYYsdEiUpRNNnDzNKdZrgJoT3sqBIp2lMoDk4ABedTdQ7sR37M+RLeJGzVeO2y8gGvma4ZvANOnStu6cJ+QDh1yd64QDcU6VJBIa/K6YPpySn3YjhJeFUymKi1VV1smlAPAmxoLRuZnuIkuu2uLxc1COwFli8o++6cNjn3CY3DV+eVnGoaces2LjKdTo8g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=IhlLGEqvJTWZVsgLrt5Rcuhaxr+XmbrjR2vmegLLT1M=;
 b=WSDktLZsofBDiGSd3xCMHNc3XF0kpizNuMSUrICgCqActJZZtdxjutyHTzdnsb+evs7j4lluU/4jNY1ECDL1lOJE/R1FNJ5jDW5YfJJcpwGDvq70n+a+t6Mj/QuwwKUqcAXq5CJ4stT2O/etu4Baly4AmMZBP0SICEzyottyZ4mFmhyKX/g6J50siA3QhcV0HmmLC3eIkiLOcM6SqmOqrSwrh5aQtYdH4y5HE0gipiKSYJnpIFAhtMKBE+YX4ZbeFBjV9MgEzD4KtjjaoeCa/ebTADUQ3+Gec7UWP/U/uvfn0LMY5LLGk2XFlJmqD4Yo5ciNVc4PEr+BzJq7ukX9nw==
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=IhlLGEqvJTWZVsgLrt5Rcuhaxr+XmbrjR2vmegLLT1M=;
 b=ELj24t0fN7C85lEIR7pD8B8aU7HYi6KW/B6rhnBJ574kDjAWmvRHrhnTm4pzCN5xQWH1I1uXpwMsYQpNChD8k/ddh/1vUglehxQ6PXS1HYmGDbJWJcSFy3Hajc+CCF5c29kI0Ii1hkMcGNh44EHBJwaa6+j+H3+rrBZnE5243j4=
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 1/2] tools/xen-hptool: Add missing newlines
Date: Wed, 23 Apr 2025 17:28:20 -0400
Message-ID: <20250423212821.42776-2-jason.andryuk@amd.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250423212821.42776-1-jason.andryuk@amd.com>
References: <20250423212821.42776-1-jason.andryuk@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
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: DS1PEPF00017095:EE_|PH0PR12MB5608:EE_
X-MS-Office365-Filtering-Correlation-Id: 2eceecee-7dcc-43a6-406d-08dd82adc852
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|36860700013|1800799024|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?Y1qusOB4NsBHJDEqbI7a/azYM47S/jjA8VZDpAXiHSa8msQdZZP0xAmRH+qE?=
 =?us-ascii?Q?LPfiEtftRkf4w4o+Z+V8RsH8B0MWo3XMHSGDdVC0fDK+ft3Tzrr7oOIYV3U/?=
 =?us-ascii?Q?Bg9OnrDV7cuk3LSx/3HTWishxjIaHkyJwaGPDoc4OUInfqo4UZ7sKJupuWyx?=
 =?us-ascii?Q?7JaJfnV2o1nc5G5isK+oQ7XFRF6sZWOcBjLcocaPJM7ZS7FQwL4a84ojcg0a?=
 =?us-ascii?Q?mNkNc8ujrFhhRpCWh+l+VugLzJF5rpL1r9zip8w8Nmr2EKC+/nfInwkfym9w?=
 =?us-ascii?Q?uT1bSoOQt0aUukUhqVfXVBeIirwe7tiBbXiw/2eAI4lxS/BN4jXvyBH6hp1k?=
 =?us-ascii?Q?kAsPfMO84fMobEiAUrQ/tb0uSoPVW+FyAU6tfTaZqTK/FwOz+A/99wLULFaC?=
 =?us-ascii?Q?hjcMTtw3jLlkWaN3F+XXNYaRag8Lj1hP2asHz6Dv5zttz1UsGamF7z11QBeL?=
 =?us-ascii?Q?b9Sic1AWdiQ6Sz5thX5A0zZqV4bvIv35JcZRlOzV08AF/kDSplEHKpFCIpea?=
 =?us-ascii?Q?BnSO2Q7zXGi9kXDX0QXTePzCLt2Ga6gXO3LChZOtBRcX2EbV68oHlKyuIrdO?=
 =?us-ascii?Q?sW/8dOS+VD7pArmkr9ezcY364j9tIOJLaAJXLwx4tnFhP7ickhneRMWaouy5?=
 =?us-ascii?Q?ZA5xF6TtdLfwbDW8baAgPMRNZU7E8eotepRNtmSkEeVp71CEHpVey9HW3kK0?=
 =?us-ascii?Q?6OYr3bZi+B2qJyQoQf9/4xcwZinQzM2/pht651XJUe/CEdUtLiiXuRTNYNvg?=
 =?us-ascii?Q?H7EMoIc/0h25CumbBtrr3kBQdjWpc1pgfITLF1TiMa6OYK+Ae5I2LEvontKg?=
 =?us-ascii?Q?3VIVxKgDyUj9JDiUtL+6Tm2DrIBx14PFQ7hw4GSBfdSi7uuzD/AFQh75Ilj1?=
 =?us-ascii?Q?vGbS96l9Ay1DTnge5TDT7knrGzye48MYfA8XiJoIo+xAiQVnER9XP8F9bJEc?=
 =?us-ascii?Q?JlYVGIHfpzc94dm2+1fOATEp+nwtis1ry7qptbu5RvqvHgkp5uuVgHugVu2O?=
 =?us-ascii?Q?H/n3Y8Ds5GBOKb7p17PGKOof1Zi8Ohcva27KbRRBH6iUfknPASuCn7jdZXsi?=
 =?us-ascii?Q?2Mf3WTCUqi5zLQ3voSdOw9FuLhgn46bUC/Tg8nUKIr8wBcqRbtu+m3iN9dfJ?=
 =?us-ascii?Q?hvbEr9CBfUt18Tj8J6JVabkkjlxRKSY8mqKb82uGxWGhZs9aeSCL1R/E6eq7?=
 =?us-ascii?Q?/opdGdIXg/U7ooppX1ya8+EKvIcZF7YWulstwvjg5+CK+wkMwHRWlQF9CAMN?=
 =?us-ascii?Q?0f05wne8j8fcGj9TzE4KXMI5qbG/GSK8AN/T6CxFyal/7jdNp9jG0Dz0TVrZ?=
 =?us-ascii?Q?06WoV0a9HzZihITTA9iRRMW3z0qOpdwdpS+F5pk43b6n+W/GHc70hJcJ5pKW?=
 =?us-ascii?Q?HXm5RdbfeFGL/N78NhB09Tk0vblLKw3b8z+HErsINJH8ue/ipJKeUL7VgStu?=
 =?us-ascii?Q?VMIU0pc+BTQqDHhN01u/6WYkiQqCTkPIXN01/N1zZ7jfC/9jfMN/2X/uJwir?=
 =?us-ascii?Q?OLJ0UvKAjGCcBGYY73loDSltYKpnW+P0x4u3?=
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: 23 Apr 2025 21:28:25.6546
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 2eceecee-7dcc-43a6-406d-08dd82adc852
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:
	DS1PEPF00017095.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR12MB5608

Add some missing newlines to error messages.

Fixes: 284d5633be37 ("Tools: add online/offline hotplug user interfaces")
Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
---
 tools/misc/xen-hptool.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/tools/misc/xen-hptool.c b/tools/misc/xen-hptool.c
index 6d6aec8bad..d850404e31 100644
--- a/tools/misc/xen-hptool.c
+++ b/tools/misc/xen-hptool.c
@@ -51,7 +51,7 @@ static int hp_mem_online_func(int argc, char *argv[])
     ret = xc_mark_page_online(xch, mfn, mfn, &status);
 
     if (ret < 0)
-        fprintf(stderr, "Onlining page mfn %lx failed, error %x", mfn, errno);
+        fprintf(stderr, "Onlining page mfn %lx failed, error %x\n", mfn, errno);
     else if (status & (PG_ONLINE_FAILED |PG_ONLINE_BROKEN)) {
         fprintf(stderr, "Onlining page mfn %lx is broken, "
                         "Memory online failed\n", mfn);
@@ -82,7 +82,7 @@ static int hp_mem_query_func(int argc, char *argv[])
     ret = xc_query_page_offline_status(xch, mfn, mfn, &status);
 
     if (ret < 0)
-        fprintf(stderr, "Querying page mfn %lx failed, error %x", mfn, errno);
+        fprintf(stderr, "Querying page mfn %lx failed, error %x\n", mfn, errno);
     else
     {
 		printf("Memory Status %x: [", status);
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Wed Apr 23 21:28:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 21:28:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.965475.1356020 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7hdx-00068b-Pb; Wed, 23 Apr 2025 21:28:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 965475.1356020; Wed, 23 Apr 2025 21: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 1u7hdx-00068U-MW; Wed, 23 Apr 2025 21:28:33 +0000
Received: by outflank-mailman (input) for mailman id 965475;
 Wed, 23 Apr 2025 21:28:31 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=hbtc=XJ=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1u7hdv-00068J-OD
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 21:28:31 +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 e5d6719b-2089-11f0-9eb0-5ba50f476ded;
 Wed, 23 Apr 2025 23:28:30 +0200 (CEST)
Received: from BYAPR02CA0018.namprd02.prod.outlook.com (2603:10b6:a02:ee::31)
 by CYYPR12MB8961.namprd12.prod.outlook.com (2603:10b6:930:bf::7) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.22; Wed, 23 Apr
 2025 21:28:25 +0000
Received: from SJ5PEPF000001F7.namprd05.prod.outlook.com
 (2603:10b6:a02:ee:cafe::ba) by BYAPR02CA0018.outlook.office365.com
 (2603:10b6:a02:ee::31) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.36 via Frontend Transport; Wed,
 23 Apr 2025 21:28:25 +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.8655.12 via Frontend Transport; Wed, 23 Apr 2025 21:28:23 +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, 23 Apr
 2025 16:28:23 -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; Wed, 23 Apr
 2025 16:28:22 -0500
Received: from fedora.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; Wed, 23 Apr 2025 16:28:22 -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: e5d6719b-2089-11f0-9eb0-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=BrWwQ3Hg4UDEyMTj5NE2vrfuQc2CAuAj1Hd2uHgvoqETEonWM647KeQPeG97wzgjhaBc6jGsoXTXqdfi2oh38FKNYlpzSGVa/vo2Ohvq1X07If471y7eIzNZquV3blE2Zc5r1UIC1m8ZXSkYJBQWSVeqR2WJFrV2NDhyeilneMDns1Tsd+l3Cr4cUT+kfzVltE49IVfnrtf14djKFSGXQzhYwG59V827AAsu2qNir5D4sn+qiCdxHSd23cXKVpXdoMhWYHExc7XXiZZJAJLXNlbl732NxOJT3cfKewMGhOsVxQZ7DFirgNIlO/OsFLoOkDUNl5tq9ZzjP55Hi8RonQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=UCPl/lAfP33+0hzm6bFSkcVC3gcsNunHg/zQBvPExdQ=;
 b=o+yQ7TfNJ+TtShkGYCnGL7ipFvSisVbHQ13SpomfuipIwe2JSfTYGvwlS1Td79nBpwPsWmMZa2CiEz2f4ipwKXoqF3kvvx0rYL1G60zQoDmfXGXuqlibNIHmamTr+u0QB42e0J+qOanLGWSEqSq3BWw0IdmxueWLr4EBDC/YQQ5DnQZjdH6M3t+ux0dkT0LT2ud3a/zsQznQYcw0R3Aep0YgmK+qSuFjU0sutPvqAmHIwo75AmdV0EL4ASxDARxZ8k7VaNwwT+Mt6I13Pb9NhHP4TYG2YIqGa4Lrys/1OEncSI2Vg+ke+9YBdQtVCTTYzoJ6BGMxtl9TwnjF9vdqyQ==
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=UCPl/lAfP33+0hzm6bFSkcVC3gcsNunHg/zQBvPExdQ=;
 b=qCB5LUblmEuDAX41MV8ch5R6Ees1ySFOnWvd9l9CtQhumklHFlRFFhiBscej1dBks8Jx3zGsr/Id97pC8i4pxrYQ3Jm9GTYKBPuLfteyXie2tWXVKftLhA7rN1i+ezHL2WpFKD/cjIQUt38aYXAyOe0cqK68cnBDDOXbaObgKuc=
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 0/2] xen-hptool small cleanups
Date: Wed, 23 Apr 2025 17:28:19 -0400
Message-ID: <20250423212821.42776-1-jason.andryuk@amd.com>
X-Mailer: git-send-email 2.49.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
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: SJ5PEPF000001F7:EE_|CYYPR12MB8961:EE_
X-MS-Office365-Filtering-Correlation-Id: c2938a84-89ee-4069-1061-08dd82adc73f
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?0eDnFZ7oQDnwlmKZV6I0FT98ZyLFyQ2iY7MLzAId8vhKI65FQfbTr40RvpHw?=
 =?us-ascii?Q?F5Ujq1sikrD/lFvNab7uwTzxu0xV0e1h96LPIV048rn2zPES/rGNOGuQzQcp?=
 =?us-ascii?Q?x4AyoyQvGu+WIiheOOZb4VteHipQpEEQQ2sOjgYwUSMmlBdcZJu6+fDanWtG?=
 =?us-ascii?Q?qIq8Ry+/F2KxYAt8olW+XE1DgsuxJmMTEj16TH6zhUrEAUdtNQ6RzoYh1F7A?=
 =?us-ascii?Q?sOXPHVCP9sUfIGyLAcafo1W6dtbzVmC63kV7HqSQC3p4e+FiA6Q6IBueT1aF?=
 =?us-ascii?Q?gq+C2we96wklIZ5WsEDmWL9I3sj0J+RVun3ZLeCpj1R1HRjk4hbPbm/ZJigu?=
 =?us-ascii?Q?H8dg3PAORezj/hyltyY/++YnBQDTXdHMKTqz1kPC7VYR/SgwYq2cJBM+CTjw?=
 =?us-ascii?Q?poHCbqeNkcu0D/zGIUuglNGsCHqJzmm7ssGMktAy49LNzztcrZBIvGxeDFku?=
 =?us-ascii?Q?mw9JqpgUdGHgrpq0mdhLGj74peFtEyjtRAW7GKWp40W69BzW3J2tNiGY62e7?=
 =?us-ascii?Q?XqhM3qhrq4pva5CEdtfItFDkb/C2/RY/zOeu+Xo6nF1L/dXJkeBhE+46LvUO?=
 =?us-ascii?Q?OSR8QAWmQV9Pl9LDEK7BMxQWtHJTXXI8jf9IAZODMiYS2JPiBlUGnzJE6whU?=
 =?us-ascii?Q?5E6vEudxYcSPnoHzpF6bdPt+aO3EdNODQuHgKvRoRhaY6yoJKH9asrccPlxs?=
 =?us-ascii?Q?/t94Pbug4h0zdRbefQwWEpRVgT9bo/CbHdcIQIzpi5KCEHgZdzBYVsjjhLMR?=
 =?us-ascii?Q?aL5q0LzYvQaZZfpzdmlOhTckcZZyPCZ/DgqJ5nG9veNKGyrdDdnyu8AALSl6?=
 =?us-ascii?Q?y4g8PZ8XyasztHf+I+7xoDEfP3LMJE4YOocXiMwmiJ6tFzJ/8wgDr5cf36M1?=
 =?us-ascii?Q?DtDfk3rX5wmdrbijwTmjTy7LfH/eW8b1bo1IG1vVDnQ83f5122C045gfQOkp?=
 =?us-ascii?Q?cYG6QQkiotUw3OEDdmA2H7+k00C0LKZihxcJiWeQPT9SZ1g0rj/faueMGVNU?=
 =?us-ascii?Q?EtoMlOPM0EcyVQ0kzMAq5Xfmne003Ga9zaVn6PqbUG4eDBJBEgmgMSchemHj?=
 =?us-ascii?Q?/oqUSWo+vUpRn8BINKd0MHbz8vxNseAkH7WvQC1015omlvBqDXOTievq8GI5?=
 =?us-ascii?Q?3fkQmWL5+Dqz1xSWZiOz1rzWThWv052nmLgwUlu+nBNBOfsA8/+I555LHNp4?=
 =?us-ascii?Q?cXXY+kjJxD/5oe+nv8tqIjiTxzmKyDcFaTyTgOsiwbsuvQ4km3O3AkgE5TWO?=
 =?us-ascii?Q?3/4x3qRC0vH9Oaq/5WxRWqI3ElHB+0H4f4uYr0/jfCd+G/lnNysNLrPZ1oAA?=
 =?us-ascii?Q?ruQwpTI8rqYFA8JdhbwevqSZfFeENChEZyanXLTRSU2IAQOF6LsuNfnscT4l?=
 =?us-ascii?Q?ZG0GKsPJpfSyNMp66bvoOMVlCydaLO2tVI9A8GB3zw7/OmLdx5h6+ThV4ELe?=
 =?us-ascii?Q?YccPmekisa8vVKef4GQ8XP5TaO22+7RtCO6QMIOl/TcsjxWTzemUAiSDtOpy?=
 =?us-ascii?Q?nkb2OAM9z6v6dRmc9PaieKoBC+RY9AU/+ydg?=
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);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Apr 2025 21:28:23.8824
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: c2938a84-89ee-4069-1061-08dd82adc73f
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: CYYPR12MB8961

Two small cleanups for xen-hptool.

Jason Andryuk (2):
  tools/xen-hptool: Add missing newlines
  tools/xen-hptool: Replace hard tabs

 tools/misc/xen-hptool.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Wed Apr 23 21:28:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 21:28:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.965477.1356039 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7he4-0006dW-6m; Wed, 23 Apr 2025 21:28:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 965477.1356039; Wed, 23 Apr 2025 21: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 1u7he4-0006dN-3J; Wed, 23 Apr 2025 21:28:40 +0000
Received: by outflank-mailman (input) for mailman id 965477;
 Wed, 23 Apr 2025 21: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=hbtc=XJ=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1u7he2-0006cN-Tw
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 21:28:38 +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 e72e88b4-2089-11f0-9ffb-bf95429c2676;
 Wed, 23 Apr 2025 23:28:32 +0200 (CEST)
Received: from BY5PR17CA0046.namprd17.prod.outlook.com (2603:10b6:a03:167::23)
 by BN5PR12MB9486.namprd12.prod.outlook.com (2603:10b6:408:2ac::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.23; Wed, 23 Apr
 2025 21:28:27 +0000
Received: from SJ5PEPF000001F4.namprd05.prod.outlook.com
 (2603:10b6:a03:167:cafe::79) by BY5PR17CA0046.outlook.office365.com
 (2603:10b6:a03:167::23) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.31 via Frontend Transport; Wed,
 23 Apr 2025 21:28:27 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ5PEPF000001F4.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.8655.12 via Frontend Transport; Wed, 23 Apr 2025 21:28: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; Wed, 23 Apr
 2025 16:28:26 -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; Wed, 23 Apr
 2025 16:28:26 -0500
Received: from fedora.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; Wed, 23 Apr 2025 16:28:25 -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: e72e88b4-2089-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=xQ4zu61/om/qOgF5ckDzbD0Uw9HfrNyJaI+7NbN2Lko07BUqL8HOHvHPhINeVDL0raLY5m1q5scVDP4EO1hEvwZRRxUz49BFYEqfM+E44Gn0hmqCB3NZJ02POuBREihPHVA3BazRKTJWuQb/x9dNXWOyS5ep3zboz0d1oAUzT/mmgnBHHUkK9ZK5qvZjgvD4wcdxlj2b8y5eTXgQJNt0vu0l71COGwN4q855hI9cbacuKaYFF8+efhlvpVnK6ky+lvLJM6fNtxyRtCkipBzpGjFSOG0OC/pSM7lxZXDC3/4Y+VKZAVx8QOP4VziP3BBomzZF9SN4ysXhr7Mk+dR9PQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=pPr3onDnXjTLJ/AyL3duJiMnjnp1h+MlfHNJftHVH1M=;
 b=RrAB8ytNUMKt4IvKlo2iIGdnDoJNmWipHgfX2NNJaI4xtsOo04w19vaD5mbtG/hv9Gn2DYL8RsaSPoxcVTMwJ3D5/ZPW6U5phyjQnNW9pzIZxNEF4nW1rU4xBZcAn2AKOed9NGJIfucvj97K5yHemSvDz1qYW0puUYmBPY3oIkxtc7LPYMncbLOpfutYjj9SlFbTXDH7sUhhSUcPxKXw2NLXzeJ3K9JAeNMPhNbUjjLWyy5MSkW8C5eltUIKYG7/pqiuF/0PonVxhZPTV+9nkXLNT+WPJFOjdOCfb9YKVy2v7R1g3Jh+FnxQOs/qir7/CTT+E8Hn+8Xr0VsEt/SSCQ==
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=pPr3onDnXjTLJ/AyL3duJiMnjnp1h+MlfHNJftHVH1M=;
 b=e3j2UDj4k+o3fAjvyaXeFpdN7CwY75Hj/J+7+vwyc8/0GFqFXafpcRuBZd2UolEZycAuhBgPHI4z7JkG5s9uoQR5Hng4LtvM2u6QsH4ZgfA/F9a/JHTYheYV+2y3eWr33DAitzDEYJX5wxkS+w6VN8+FStBWlqY+kM89JuIH9Ok=
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 2/2] tools/xen-hptool: Replace hard tabs
Date: Wed, 23 Apr 2025 17:28:21 -0400
Message-ID: <20250423212821.42776-3-jason.andryuk@amd.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250423212821.42776-1-jason.andryuk@amd.com>
References: <20250423212821.42776-1-jason.andryuk@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
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: SJ5PEPF000001F4:EE_|BN5PR12MB9486:EE_
X-MS-Office365-Filtering-Correlation-Id: aa85f572-2f80-4860-1664-08dd82adc91f
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|36860700013|1800799024|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?IUq2Bg7XQd0OAtiFi7MBYi1IpDc/WHvpzjf4muXjM9P0QYsuF5vwBenp7H5t?=
 =?us-ascii?Q?QNLBg4C9EQI9VAVD+Q/jOd2z+cg1SEuBqMQB9lKzzACjqGBvK5IAdHtVGP0y?=
 =?us-ascii?Q?OIvtr6yWmBIZOEzOdL/2YsLZ6TCv3uJr3ZEwL9vr1C6VIQCHD26Io3SpIM2i?=
 =?us-ascii?Q?BhFTe1o9vB/fCaodjZNik9sPuPnDCVkcy0C4g37H6Xcdt4JgRcpgGOVcZVW7?=
 =?us-ascii?Q?VgMIGQjuqAgJIBVSHiDHSbn1IIB0hUdDEtrHm4ExidC/QqV1sIN3tiSx2xVf?=
 =?us-ascii?Q?+7tp9/5M0j7EfjiPnUY9n+QVLS9Y9n9oPcaaaFRFFAgvlqfMeSficgp7b7/d?=
 =?us-ascii?Q?a2of2XBmPssexYRGk5FvhmZtHEfoaar/nAhRJQNeIutONdsQ74y8DjSqeAPW?=
 =?us-ascii?Q?13MbKo7gd5KYBjXzViCHGpg5fmVrEekP5iufHKG39UBaiTiC7hosRbgv547D?=
 =?us-ascii?Q?SxksAAUWvUotlkUjl2KhTjI0BhGx3NvCPjkD7Z3KjrL74EKTpafZIEHhRLb3?=
 =?us-ascii?Q?wcDdlXbeaVAUhgPrJjGBlCq1UfykTC1y7/lRu6WZljSoJFYEaespnnS8asNR?=
 =?us-ascii?Q?Jqtk5pxAls5kAsUYbTnviAO3TvoMm81qA2KzXw5w642oIOrEvAzewV39aF7I?=
 =?us-ascii?Q?dXOA8qCYAXww24qoqExsbhqDvPYK/QDrQSqzJ16lLEf/zVW6weB1m46aitTE?=
 =?us-ascii?Q?43COxCxMKM6OQYckokv+5tHQMhk8QmxDq/e+Ccj+RCEQos34iKDZqiDwbQ8k?=
 =?us-ascii?Q?mUlCCCRhBIKx/aj24/CAsMEajiJxoOFl9iGueHTeUMrbVEB9A/+tWnBAZJzp?=
 =?us-ascii?Q?zEIXvxVE39HVOiDGIXJe0HDPtkwaTt0L1bLL9d1moNQ5SmJbHa7pY6WvBs44?=
 =?us-ascii?Q?WArT+LEtdzFT4BXOA3VcxVA3nbCDAwW+vpGhihKL+XLtjgP2PIDAEw2KaZi5?=
 =?us-ascii?Q?06s2aWlpSFpHbeFp/I/cI/6Km0Z5faGB8MYpyXuJRqzdKiZ5H5I7rm7dyF50?=
 =?us-ascii?Q?2z62CPRwX6X7KVuCrk5sSYSBsMj3bf/cnPsZkoDh519CRx52ejl9RKiagrxH?=
 =?us-ascii?Q?U9aDFDGe5Vo++YYF9T/mTOfRN0i5vkKJdv9BHQkr0xRwtDkC+DnBXIJoWfKf?=
 =?us-ascii?Q?1fKDouotOzCEpTeOv8H5RPoUtvK31WjzkziILEJllHNgJwb3peN09Vtwc6vI?=
 =?us-ascii?Q?UCKDky91ykFHPDhulBf5fVfxQEtgIvNkCr31rx2PxWoIhfyUbCLaR5IMIyY5?=
 =?us-ascii?Q?xSlb43Hc+xZKmbr1Ij3019zvS1WB0yozX7d/oOWmp9FB3IHYOm8Wi0EDfBqs?=
 =?us-ascii?Q?KEOureG9tULXWM4hny164eTQryQpdD9oycyoBpJ+KAAGtKIM8qSt8HScW/RX?=
 =?us-ascii?Q?2427Pn1Yv7dlPzwc2K7UgH2p0U1r4AcUmOBQr3A8uVsuZJzYrEH9gOCFzUhQ?=
 =?us-ascii?Q?W5Rhdhh/xppAcDbC67htrL61WEJbtEHmPP3JOuM178uH8Odz3T/EMexH+tok?=
 =?us-ascii?Q?ucTOGsvInpW4l7Tav+ZF2bG3YbC0+B8jZkvV?=
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)(1800799024)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Apr 2025 21:28:27.0283
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: aa85f572-2f80-4860-1664-08dd82adc91f
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:
	SJ5PEPF000001F4.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN5PR12MB9486

With a tab stop of 8, the alignment is off.  Replace the hard tabs with
spaces to match the file.

Fixes: 284d5633be37 ("Tools: add online/offline hotplug user interfaces")
Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
---
 tools/misc/xen-hptool.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/tools/misc/xen-hptool.c b/tools/misc/xen-hptool.c
index d850404e31..590810b6eb 100644
--- a/tools/misc/xen-hptool.c
+++ b/tools/misc/xen-hptool.c
@@ -56,7 +56,7 @@ static int hp_mem_online_func(int argc, char *argv[])
         fprintf(stderr, "Onlining page mfn %lx is broken, "
                         "Memory online failed\n", mfn);
         ret = -1;
-	}
+    }
     else if (status & PG_ONLINE_ONLINED)
         printf("Memory mfn %lx onlined successfully\n", mfn);
     else
@@ -85,14 +85,14 @@ static int hp_mem_query_func(int argc, char *argv[])
         fprintf(stderr, "Querying page mfn %lx failed, error %x\n", mfn, errno);
     else
     {
-		printf("Memory Status %x: [", status);
+        printf("Memory Status %x: [", status);
         if ( status & PG_OFFLINE_STATUS_OFFLINE_PENDING)
             printf(" PAGE_OFFLINE_PENDING ");
         if ( status & PG_OFFLINE_STATUS_BROKEN )
             printf(" PAGE_BROKEND  ");
         if ( status & PG_OFFLINE_STATUS_OFFLINED )
             printf(" PAGE_OFFLINED ");
-		else
+        else
             printf(" PAGE_ONLINED ");
         printf("]\n");
     }
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Wed Apr 23 21:33:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 21:33:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.965510.1356050 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7hiG-00016s-P4; Wed, 23 Apr 2025 21:33:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 965510.1356050; Wed, 23 Apr 2025 21: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 1u7hiG-00016l-LD; Wed, 23 Apr 2025 21:33:00 +0000
Received: by outflank-mailman (input) for mailman id 965510;
 Wed, 23 Apr 2025 21:32: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=hbtc=XJ=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1u7hiF-00016b-Kg
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 21:32:59 +0000
Received: from NAM12-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam12on2060d.outbound.protection.outlook.com
 [2a01:111:f403:200a::60d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 83c99424-208a-11f0-9ffb-bf95429c2676;
 Wed, 23 Apr 2025 23:32:55 +0200 (CEST)
Received: from BL1PR13CA0330.namprd13.prod.outlook.com (2603:10b6:208:2c1::35)
 by CYYPR12MB8656.namprd12.prod.outlook.com (2603:10b6:930:c3::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.32; Wed, 23 Apr
 2025 21:32:47 +0000
Received: from BL02EPF00029928.namprd02.prod.outlook.com
 (2603:10b6:208:2c1:cafe::44) by BL1PR13CA0330.outlook.office365.com
 (2603:10b6:208:2c1::35) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.34 via Frontend Transport; Wed,
 23 Apr 2025 21:32:47 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BL02EPF00029928.mail.protection.outlook.com (10.167.249.53) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Wed, 23 Apr 2025 21:32:46 +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, 23 Apr
 2025 16:32:46 -0500
Received: from [172.21.185.2] (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, 23 Apr 2025 16:32:46 -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: 83c99424-208a-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Dc3uOBA80S1Da9zFHuARgC74cH+PiuX0P9sAAI9sHNDyejptZQHD+QYk/LMiBifWKavQ7n0+zvVDNb5UNxV09fi06y+UhkGZUt1Mg16o5ljtWa6sBY2oQZRONdV8HAd4R3GNlqfjrzgjWgM54AgCcQQUYpbD1JC5DRDX1RS+JumYKMVv0A1RBorqzz+p/PwT0DjbwRUga4TRR0ELqRky1x+nOSrcEjRJALioueXO7f2puQqrTIG6F/c4kMMsc4lFPll1J8iUi4CpcsQoF9mhyKXUwXKrZpMKvzwZc0ru6B7tui2dgBHnJPaVZTnBgZ7WyM4MRggt8ryGkHaPjYhD0Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=8IpLAiOXtAXXaVizj4crPg2YRTfFM3GKIbmAWcVnv2A=;
 b=UFMKptwRWzlXoDPODZ7NmjMwETfnep/8IwiG1ozh9b7es17ZhDcBQKr8GPDk6yc4KEvw+aPhHJ4qGqEgYXV64rs3jjEikIBYoAl0PrkrZyTn4CIHm+tJIB8j+ZDhNVApSiOOFSLAN1qAk+xhR8UEBfQgfKr/0jaSNexuSxk3V6zliLqIy+1TCxE5wqY9n1IyAVACDLmNvN9GAgj0qHs5r7+iiiHcCxsKLgUXiWN7bypdzHeBkq+GNlUMDf6g0w/5tebVzt6PWTtWMt7gBCzQy61aIxJf2MC/5t2R0Ik+hQLzZ0cO/p4M897J1xcBH32//KDMvc2bDB+Ou3uykS0cvQ==
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=8IpLAiOXtAXXaVizj4crPg2YRTfFM3GKIbmAWcVnv2A=;
 b=0txNiPS1mksWv/KOaqp/Sv+juO2lLBm5I/W2y8xzLft60hKFscZcLqu7trjiTPopImlcuP/txKd+v+7K0zh/VXa15Hy1qLykrdPmRGXgVsFWGiXQIfcIVVGZkYoowhmfWWRy9keCWmXkoNISUl/FstRN0+0NJxEO6xmzdz3IhT4=
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: <839574d2-0433-45bb-abdc-154eb91677d1@amd.com>
Date: Wed, 23 Apr 2025 17:32:43 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/vpci: Fix msix existing mapping printk
To: <xen-devel@lists.xenproject.org>
CC: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <20250423212229.32721-1-jason.andryuk@amd.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <20250423212229.32721-1-jason.andryuk@amd.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: BL02EPF00029928:EE_|CYYPR12MB8656:EE_
X-MS-Office365-Filtering-Correlation-Id: 7a90af70-a958-40a2-9420-08dd82ae63ff
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?bVNBZlllZ2FKMmNqTEZ5Y1lyc1pWYkovM2hrOWY5cFFUUkk5Q0syTDZqMnlF?=
 =?utf-8?B?cTM2b0RkaW1sckpmbzkwMFFKdkNRaVptdVFST2xOWENvRTZUa2NKR3JIMmFP?=
 =?utf-8?B?Wk9ZTzBETXhuTmtOOVh3T0JDMVZ4bmlLaGczOFA2SiswMGkvZmEzRUpnWGdN?=
 =?utf-8?B?UTNPb1lQd0M2RWdzd3gyWjI0UytPdnllQWplUDYrSDVIczU5ZnVwVTY1Z1Rr?=
 =?utf-8?B?RVJiQ3hJd3NMY0NGK3FtM1MzblNMWktWNktlR3JpcXN5M2FBcy9BZlBNWVEx?=
 =?utf-8?B?cFc2V3ZJMThEWm8xTXdXRzhoYzlPRmFtelZGQlEwdkdObEdJZy8zT0hTdzc3?=
 =?utf-8?B?cjFMam4wM1Y2aU42S1NXZ3NmOWhpSWpnaVlCV2Y3RTVaTkd0WXJGNXRJZVhE?=
 =?utf-8?B?Nnl6alYzUWFoQWQ2bzR6ZWprK3cwUWh4VENPZWxFaGNvLzhhSFl5cWRCajFC?=
 =?utf-8?B?Q3RpdGZNOVFucE5tSDkyWnh4ZjJhS1NTOXFEamtCMDJJWFB3eFBOUlN3OHh6?=
 =?utf-8?B?TktoRkliemRqTEwwZHl5MjZFQkNsV3NHV2JUNEphSGdSVWsxVFNDc1RQTHo0?=
 =?utf-8?B?ejNFYUx3R1ZKNm9xdUUrZVZpdTRSdnl6WnpUNVRGa0ZqaVhJS0pCS0F5aExU?=
 =?utf-8?B?V0tTcDVzWVJOUEF4a25xaEVTa0ZLYkN4TmpwdTE1N24wN2dlUDZsU3FyUTBM?=
 =?utf-8?B?Z2lQdCtNb3E0WFBkZkxRemxNbnJLL3B0V09TWTR4bkdaTnRWSlZWNjhvcml6?=
 =?utf-8?B?SzJSRHUyemZhZ0hRY1gzdk1CcUQ2TER5UDJpaWVQSmV3U0ROazNWK1R3dG9r?=
 =?utf-8?B?MTM5RHk4OHg3K3RUWlNZRWxXK3F6bVNTbzZVUGN3WjhUbFBRTmJtcCtjS1kr?=
 =?utf-8?B?MFZJczNoeXgrSUNEblVBTnFlV1c4TFFZdXNXbVhwbk5SUXI3dXVPREJjc0F4?=
 =?utf-8?B?UXdkbkJBRmNEN1JFYUJ5Ky94OWlzdkFaNnhQZHNZWXpuczlNZHFCZXkwZWht?=
 =?utf-8?B?R2xxZ05NK2V2ZDZQd1ljU3FRT0R6a0wyR1U5VU4xVTBYRStGb0duaDk3UG5V?=
 =?utf-8?B?VDJiRmRoQS9lM0s0d0ZPMXRBaTU1N1lFaFBFN285TkZpNXd2eStRUmhTY0hV?=
 =?utf-8?B?Mzl0SHJOMlNLZU5CS1U2WUFtbEFta2RKeXVHblhSbUFxZjdaWEVIZTB3R3Fi?=
 =?utf-8?B?SjBQaWMyellPVFlmYmZEMVpRVDZsQzB2L2x5Uk5DdDYwYWdSV1U2S2laN1l4?=
 =?utf-8?B?ZWtMUnNLSHhraW95UjYvUmNSQ09BWG9SN052SjV0dS9rVUgrOG1EaHlCTUF1?=
 =?utf-8?B?R0xFbzBLczIwUUNLMzN0YzdxcHRJOHJ0RERkcnpueUFtV0xrYnhERTBobGZs?=
 =?utf-8?B?WmJRQnBBYTlpcXg3K25lb3NwRVNLbWllaUFPTEo3STZZRlRsaUU4SFpDRWJ4?=
 =?utf-8?B?bFk5VUFaeFh0dWt6OXIvWEVzeXRKdmNOdEFBNkd6OFFsN2UzMitkWUMwMzll?=
 =?utf-8?B?Vnl6VG4yUUNiZGw0NWdXRVBxQjZ5cVplaFZUZ1JkVlJNd0NCUTBuTXM3TE11?=
 =?utf-8?B?cWpRWkQwT0l3bUtSN3JjNGJOTlNGY29GSlhja1hvUmZnT1ZSV2V5YVJBTTll?=
 =?utf-8?B?d2Z4MmpDV0xyOHBiMDZZQ1g1OFAvd3BQSzJXWjBML3R1VFNkRVNQRnRiWVgx?=
 =?utf-8?B?dzNJYkl0ZWwzdlVFZVRPU3YzSmN5N3EzNDM3TDk3STB4cTRSMDJNNFl6Z1VO?=
 =?utf-8?B?ejM1OEw4MW4rNi9UNm52c3c3ZkxxUDUzNlVMTWg4QWRFYXJXaVlVaDBqdjNp?=
 =?utf-8?B?NktsVXRpTXBzOFpLZzVvYm9EemF4WXczQXBrdlVKV1hvY2xGMkJnNml6VHNB?=
 =?utf-8?B?M1NNR0taanh1aU5SVG8yL0dqd1gxOUQwbmhlU05pZlFhWlBNeHY5YXBLbng2?=
 =?utf-8?B?M2VCZDJtSG9NRE1CbXdjZjNUK1Y2ZjVJZmphKzVkNlhHVGlzNmJ3QkszRDhm?=
 =?utf-8?B?UGVKZXE4bzhCK2xwMHBTRVpkcjVLY2hieHcweStHSStHSVBsVGFzQi9OOEZY?=
 =?utf-8?Q?jFU6q+?=
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: 23 Apr 2025 21:32:46.9648
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 7a90af70-a958-40a2-9420-08dd82ae63ff
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:
	BL02EPF00029928.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CYYPR12MB8656

On 2025-04-23 17:22, Jason Andryuk wrote:
> The format string lacks a space, so mfn and type run together:
> (XEN) d0v0 0000:06:00.7: existing mapping (mfn: 753037type: 0) at 0x1 clobbers MSIX MMIO area
> 
> Add a space.
> 

Fixes: 677053fac17a ("vpci/msix: carve p2m hole for MSIX MMIO regions")

if we want one.

Regards,
Jason


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 21:36:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 21:36:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.965524.1356060 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7hlv-0001mB-9T; Wed, 23 Apr 2025 21:36:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 965524.1356060; Wed, 23 Apr 2025 21: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 1u7hlv-0001m4-6Z; Wed, 23 Apr 2025 21:36:47 +0000
Received: by outflank-mailman (input) for mailman id 965524;
 Wed, 23 Apr 2025 21: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=9Ler=XJ=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u7hls-0001lw-Cg
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 21:36:45 +0000
Received: from mail-10629.protonmail.ch (mail-10629.protonmail.ch
 [79.135.106.29]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0bd509e8-208b-11f0-9eb0-5ba50f476ded;
 Wed, 23 Apr 2025 23:36:42 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0bd509e8-208b-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1745444201; x=1745703401;
	bh=hJBKv8pfFZGikcLGHeTs42/auIRExJLSdBWoF0STFhE=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=Iqnlw0yAddWegPLdfntNeNJcVVvekSuDRZmwbdzHVedZvU36NetNs6P92WFzMK8E+
	 leN2+n6e+kaw+3NvWQb7zUhyu6WrXtJFsV0954BM7AmTzvt/AtyfU1xi/2Kppn6nju
	 IRcheQzIlxyUtG/UhrphEf7P3OdUtxc5bZYv9yfa8TOgTwI9p33jvndgdAkQzqXXSZ
	 2frsbAFBqvxe7A2Iu0rSUg/tFzcxl46cOS3OjiwUQaTsMGGFMCi3iuCnh9fa3noFN5
	 2TWCRpmesitQ/Z232nQiG0MVY74R/aMrt0dnxYcjbYL/aZOF4uTq8LjXXIM3w9MTq+
	 AKu+At5msrKtg==
Date: Wed, 23 Apr 2025 21:36:35 +0000
To: Jason Andryuk <jason.andryuk@amd.com>
From: dmkhn@proton.me
Cc: xen-devel@lists.xenproject.org, =?utf-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Subject: Re: [PATCH] xen/vpci: Fix msix existing mapping printk
Message-ID: <aAldXz0zFDc9md0p@kraken>
In-Reply-To: <20250423212229.32721-1-jason.andryuk@amd.com>
References: <20250423212229.32721-1-jason.andryuk@amd.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: cbce616423299beeb8aa9522d74a25f0b09b7419
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Wed, Apr 23, 2025 at 05:22:29PM -0400, Jason Andryuk wrote:
> The format string lacks a space, so mfn and type run together:
> (XEN) d0v0 0000:06:00.7: existing mapping (mfn: 753037type: 0) at 0x1 clo=
bbers MSIX MMIO area
>=20
> Add a space.
>=20
> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>

Reviewed-by: Denis Mukhin <dmukhin@ford.com>

> ---
>  xen/drivers/vpci/msix.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>=20
> diff --git a/xen/drivers/vpci/msix.c b/xen/drivers/vpci/msix.c
> index f3804ce047..499810b238 100644
> --- a/xen/drivers/vpci/msix.c
> +++ b/xen/drivers/vpci/msix.c
> @@ -666,7 +666,7 @@ int vpci_make_msix_hole(const struct pci_dev *pdev)
>                  put_gfn(d, start);
>                  gprintk(XENLOG_WARNING,
>                          "%pp: existing mapping (mfn: %" PRI_mfn
> -                        "type: %d) at %#lx clobbers MSIX MMIO area\n",
> +                        " type: %d) at %#lx clobbers MSIX MMIO area\n",
>                          &pdev->sbdf, mfn_x(mfn), t, start);
>                  return -EEXIST;
>              }
> --
> 2.49.0
>=20
>=20



From xen-devel-bounces@lists.xenproject.org Wed Apr 23 21:38:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 21:38:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.965536.1356070 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7hn6-0002Hj-Hx; Wed, 23 Apr 2025 21:38:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 965536.1356070; Wed, 23 Apr 2025 21:38: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 1u7hn6-0002Hc-FM; Wed, 23 Apr 2025 21:38:00 +0000
Received: by outflank-mailman (input) for mailman id 965536;
 Wed, 23 Apr 2025 21:37: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=9Ler=XJ=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u7hn5-0002HR-9p
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 21:37:59 +0000
Received: from mail-24418.protonmail.ch (mail-24418.protonmail.ch
 [109.224.244.18]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 38da036e-208b-11f0-9eb0-5ba50f476ded;
 Wed, 23 Apr 2025 23:37:57 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 38da036e-208b-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1745444276; x=1745703476;
	bh=VSnLlwfA6Iwz7C+5HgbOlS1Ie7U7FiKW3Vbjy5NknbY=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=aLRsSevE1bbTTGMdJJc2/MF6JA3hVEjkXvsRLKvbHWxSpRPYCeCg2Y1CUyGPRNrBY
	 e14uimJD7ZLXHkuxByPbE+Qxd4HJwDdE7IJhjd1LNqO4lJ2oKqbJ7hNzpyQQSav6Gc
	 B7G0HwfLzJT6GPWdYnufHNbMT3hzv7qu2V4tP84/KBTD7IP4vvexBgofqwmyU7SF6b
	 578eKa7ertpW0EfqoVZdFEsXS+kcvFSFA9bxwXH06PqTrGJOlU7NQxFwIEbDVpVpRw
	 BR3T7tsj+gW7NsWet72U/sPeH05oV7E88ue2amImeChK53V8elIyRmzbgGGzmjQDyz
	 5T8lIg2mIrbQw==
Date: Wed, 23 Apr 2025 21:37:51 +0000
To: Jason Andryuk <jason.andryuk@amd.com>
From: dmkhn@proton.me
Cc: xen-devel@lists.xenproject.org, Anthony PERARD <anthony.perard@vates.tech>
Subject: Re: [PATCH 1/2] tools/xen-hptool: Add missing newlines
Message-ID: <aAldrBmY5ef5JJ2Q@kraken>
In-Reply-To: <20250423212821.42776-2-jason.andryuk@amd.com>
References: <20250423212821.42776-1-jason.andryuk@amd.com> <20250423212821.42776-2-jason.andryuk@amd.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: b6cb30b6d77acc918e6f5bbf06c42d8e25bb1b94
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Wed, Apr 23, 2025 at 05:28:20PM -0400, Jason Andryuk wrote:
> Add some missing newlines to error messages.
>=20
> Fixes: 284d5633be37 ("Tools: add online/offline hotplug user interfaces")
> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>

Reviewed-by: Denis Mukhin <dmukhin@ford.com>

> ---
>  tools/misc/xen-hptool.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>=20
> diff --git a/tools/misc/xen-hptool.c b/tools/misc/xen-hptool.c
> index 6d6aec8bad..d850404e31 100644
> --- a/tools/misc/xen-hptool.c
> +++ b/tools/misc/xen-hptool.c
> @@ -51,7 +51,7 @@ static int hp_mem_online_func(int argc, char *argv[])
>      ret =3D xc_mark_page_online(xch, mfn, mfn, &status);
>=20
>      if (ret < 0)
> -        fprintf(stderr, "Onlining page mfn %lx failed, error %x", mfn, e=
rrno);
> +        fprintf(stderr, "Onlining page mfn %lx failed, error %x\n", mfn,=
 errno);
>      else if (status & (PG_ONLINE_FAILED |PG_ONLINE_BROKEN)) {
>          fprintf(stderr, "Onlining page mfn %lx is broken, "
>                          "Memory online failed\n", mfn);
> @@ -82,7 +82,7 @@ static int hp_mem_query_func(int argc, char *argv[])
>      ret =3D xc_query_page_offline_status(xch, mfn, mfn, &status);
>=20
>      if (ret < 0)
> -        fprintf(stderr, "Querying page mfn %lx failed, error %x", mfn, e=
rrno);
> +        fprintf(stderr, "Querying page mfn %lx failed, error %x\n", mfn,=
 errno);
>      else
>      {
>  =09=09printf("Memory Status %x: [", status);
> --
> 2.49.0
>=20
>=20



From xen-devel-bounces@lists.xenproject.org Wed Apr 23 21:38:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 21:38:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.965542.1356079 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7hnS-0002j0-OT; Wed, 23 Apr 2025 21:38:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 965542.1356079; Wed, 23 Apr 2025 21:38:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7hnS-0002it-Lr; Wed, 23 Apr 2025 21:38:22 +0000
Received: by outflank-mailman (input) for mailman id 965542;
 Wed, 23 Apr 2025 21:38:22 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=9Ler=XJ=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u7hnS-0002HR-6R
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 21:38:22 +0000
Received: from mail-24416.protonmail.ch (mail-24416.protonmail.ch
 [109.224.244.16]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4704cbe9-208b-11f0-9eb0-5ba50f476ded;
 Wed, 23 Apr 2025 23:38:21 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4704cbe9-208b-11f0-9eb0-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1745444300; x=1745703500;
	bh=mwR+hwtU4vbInIUOB+ru860NLxEHm5yqGgzzCU0ICE8=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=QahF8ZFrpA5GwAj5cZYODL1Ukb3p1FVf2G+58TgiqCQFlwNOdsnaYFCbhxl4JSqNA
	 OKLyaNycy05yzA7uPrs4u3Nah2jAernRjROucFWs+/mf6epOT6OEPGR/g5KDhnPDYO
	 1ixWzb7gA/3ytGQlVh4CtcsqRUTQYwKvLtf8KcZKl0Uip0PO2Zri6oHgVbazOc59rC
	 cytpJuzLG85Xy7UQw6s0U8j0zdy2fQrI+og58pE1J466Tg9YdB4REu5ZYXt7kwGY8Y
	 ysW3FO+zp1/96Zi1w6QLHLH8FCaFoSZMDnG0IQ+HmGKqaXvMkruuaC1i0eKJV95syj
	 rO5AOSvmE0Jrg==
Date: Wed, 23 Apr 2025 21:38:16 +0000
To: Jason Andryuk <jason.andryuk@amd.com>
From: dmkhn@proton.me
Cc: xen-devel@lists.xenproject.org, Anthony PERARD <anthony.perard@vates.tech>
Subject: Re: [PATCH 2/2] tools/xen-hptool: Replace hard tabs
Message-ID: <aAldxUIrieS25eoM@kraken>
In-Reply-To: <20250423212821.42776-3-jason.andryuk@amd.com>
References: <20250423212821.42776-1-jason.andryuk@amd.com> <20250423212821.42776-3-jason.andryuk@amd.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 7c2ec109c952c73b201dc92929eb137db8eaf5a2
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Wed, Apr 23, 2025 at 05:28:21PM -0400, Jason Andryuk wrote:
> With a tab stop of 8, the alignment is off.  Replace the hard tabs with
> spaces to match the file.
>=20
> Fixes: 284d5633be37 ("Tools: add online/offline hotplug user interfaces")
> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>

Reviewed-by: Denis Mukhin <dmukhin@ford.com>

> ---
>  tools/misc/xen-hptool.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
>=20
> diff --git a/tools/misc/xen-hptool.c b/tools/misc/xen-hptool.c
> index d850404e31..590810b6eb 100644
> --- a/tools/misc/xen-hptool.c
> +++ b/tools/misc/xen-hptool.c
> @@ -56,7 +56,7 @@ static int hp_mem_online_func(int argc, char *argv[])
>          fprintf(stderr, "Onlining page mfn %lx is broken, "
>                          "Memory online failed\n", mfn);
>          ret =3D -1;
> -=09}
> +    }
>      else if (status & PG_ONLINE_ONLINED)
>          printf("Memory mfn %lx onlined successfully\n", mfn);
>      else
> @@ -85,14 +85,14 @@ static int hp_mem_query_func(int argc, char *argv[])
>          fprintf(stderr, "Querying page mfn %lx failed, error %x\n", mfn,=
 errno);
>      else
>      {
> -=09=09printf("Memory Status %x: [", status);
> +        printf("Memory Status %x: [", status);
>          if ( status & PG_OFFLINE_STATUS_OFFLINE_PENDING)
>              printf(" PAGE_OFFLINE_PENDING ");
>          if ( status & PG_OFFLINE_STATUS_BROKEN )
>              printf(" PAGE_BROKEND  ");
>          if ( status & PG_OFFLINE_STATUS_OFFLINED )
>              printf(" PAGE_OFFLINED ");
> -=09=09else
> +        else
>              printf(" PAGE_ONLINED ");
>          printf("]\n");
>      }
> --
> 2.49.0
>=20
>=20



From xen-devel-bounces@lists.xenproject.org Wed Apr 23 21:53:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 21:53:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.965565.1356090 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7i1t-0006w8-Ux; Wed, 23 Apr 2025 21:53:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 965565.1356090; Wed, 23 Apr 2025 21: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 1u7i1t-0006w0-Rh; Wed, 23 Apr 2025 21:53:17 +0000
Received: by outflank-mailman (input) for mailman id 965565;
 Wed, 23 Apr 2025 21: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=Oonq=XJ=3mdeb.com=sergii.dmytruk@srs-se1.protection.inumbo.net>)
 id 1u7i1r-0006uX-O6
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 21:53:16 +0000
Received: from 17.mo582.mail-out.ovh.net (17.mo582.mail-out.ovh.net
 [46.105.36.150]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5b35ad35-208d-11f0-9eb0-5ba50f476ded;
 Wed, 23 Apr 2025 23:53:14 +0200 (CEST)
Received: from director6.ghost.mail-out.ovh.net (unknown [10.108.9.3])
 by mo582.mail-out.ovh.net (Postfix) with ESMTP id 4ZjXsj56X6z1SMh
 for <xen-devel@lists.xenproject.org>; Wed, 23 Apr 2025 21:53:13 +0000 (UTC)
Received: from ghost-submission-5b5ff79f4f-jxcsh (unknown [10.110.188.95])
 by director6.ghost.mail-out.ovh.net (Postfix) with ESMTPS id 03C851FD68;
 Wed, 23 Apr 2025 21:53:11 +0000 (UTC)
Received: from 3mdeb.com ([37.59.142.113])
 by ghost-submission-5b5ff79f4f-jxcsh with ESMTPSA
 id /6ebMUdhCWhq4jwAs7p+7Q
 (envelope-from <sergii.dmytruk@3mdeb.com>); Wed, 23 Apr 2025 21:53:11 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5b35ad35-208d-11f0-9eb0-5ba50f476ded
Authentication-Results:garm.ovh; auth=pass (GARM-113S00744fc18b7-f4d7-4280-9c1d-f8d924156787,
                    E44920665798B4DCDE3BF656E3E0060933CCD35A) smtp.auth=sergii.dmytruk@3mdeb.com
X-OVh-ClientIp:176.111.181.178
Date: Thu, 24 Apr 2025 00:53:02 +0300
From: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>,
	Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>,
	Lukasz Hawrylko <lukasz@hawrylko.pl>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Mateusz =?iso-8859-1?Q?M=F3wka?= <mateusz.mowka@intel.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Marek =?iso-8859-1?Q?Marczykowski-G=F3recki?= <marmarek@invisiblethingslab.com>,
	trenchboot-devel@googlegroups.com
Subject: Re: [PATCH 00/21] x86: Trenchboot Secure Launch DRTM (Xen)
Message-ID: <aAlhPtx8sBvmF5mh@MjU3Nj>
References: <cover.1745172094.git.sergii.dmytruk@3mdeb.com>
 <744934f4-f56f-4dc7-bccb-c32f2829d1da@citrix.com>
 <010709d8-7784-41bf-bcb6-bf04803a75fc@citrix.com>
 <aAk1ZBw8GtoVYoL8@MjU3Nj>
 <a48a0c03f151d960254c65f538141836@bugseng.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <a48a0c03f151d960254c65f538141836@bugseng.com>
X-Ovh-Tracer-Id: 7010134298581251228
X-VR-SPAMSTATE: OK
X-VR-SPAMSCORE: -100
X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvgeejjeefucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuqfggjfdpvefjgfevmfevgfenuceurghilhhouhhtmecuhedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurhepfffhvfevuffkfhggtggugfgjsehtkeertddttddunecuhfhrohhmpefuvghrghhiihcuffhmhihtrhhukhcuoehsvghrghhiihdrughmhihtrhhukhesfehmuggvsgdrtghomheqnecuggftrfgrthhtvghrnhepuedutdeltdffteffleeuudeltedvgfevuefhvdelhfefheetgeejfeeuudeiveefnecuffhomhgrihhnpehgihhtlhgrsgdrtghomhdptghirhhruhhsqdgtihdrtghomhdpvggtlhgrihhrihhtrdgtohhmnecukfhppeduvdejrddtrddtrddupddujeeirdduuddurddukedurddujeekpdefjedrheelrddugedvrdduudefnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehinhgvthepuddvjedrtddrtddruddpmhgrihhlfhhrohhmpehsvghrghhiihdrughmhihtrhhukhesfehmuggvsgdrtghomhdpnhgspghrtghpthhtohepuddprhgtphhtthhopeigvghnqdguvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdpoffvtefjohhsthepmhhoheekvdgmpdhmohguvgepshhmthhpohhuth
DKIM-Signature: a=rsa-sha256; bh=hSvZRkGXTwkcu/KgjQBwQniw1dbYtkxOZZKiTDVmfZo=;
 c=relaxed/relaxed; d=3mdeb.com; h=From; s=ovhmo3617313-selector1;
 t=1745445193; v=1;
 b=EGy3GNZE/pt5/rMuHs6wQjX6KYFgNXm0TmD+5QqGyQSxojjE653ludAeMYNJoF5+OH99Bwtu
 MdL8f1zl/38VbbGUb/nS9f/hBhIqOhas07XYjtoMrb5m7v9Dd0dBC3DvXkEZNmyZVYVAC2b6KcD
 kiVJeDQx+rF0fYt/F6mUiqpUuP88OlxhNC8NAUpNY2GX15aS/wdtRXj1dgn4l/+rUiHpkKZaNA0
 PJZUqldAcGEaK4ZOIzU+4tPvN+AHwYRnjYkmSZe2gaxb6Qa7APy5vobzNVqQmRSQh3MdarKTgPe
 +f6TXYJxv97FOx8WEaACrr8UE5bmQStiWThHUIGxaRGrQ==

On Wed, Apr 23, 2025 at 10:11:35PM +0200, Nicola Vetrini wrote:
> On 2025-04-23 20:45, Sergii Dmytruk wrote:
> > On Wed, Apr 23, 2025 at 02:38:37PM +0100, Andrew Cooper wrote:
> > > On 22/04/2025 6:14 pm, Andrew Cooper wrote:
> > > > I've stripped out the sha2 patch and fixed up to use the existing sha2,
> > > > then kicked off some CI testing:
> > > >
> > > > https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/1780285393
> > > > https://cirrus-ci.com/build/5452335868018688
> > > >
> > > > When the dust has settled, I'll talk you through the failures.
> > >
> > > And here we go. Interestingly, the FreeBSD testing was entirely
> > > happy,
> > > and that is the rare way around.
> > >
> > > For Gitlab, there are several areas.
> > >
> > > First, for MISRA. In the job logs, you want the "Browse current
> > > reports:" link which will give you full details, but it's all pretty
> > > simple stuff.
> >
> > Thanks, but that link gives me a list of 5096 failures all over the code
> > base.  Is there any way to see a diff against master?
> >
>
> Hi,
>
> yes, you can define selections of violations introduced on previously clean
> guidelines by clicking on the "ECLAIR" button on the upper right. See [1]
> which is the result of defining the "clean_added" selection shown in the
> attached screenshot. If you have other questions please let me know.

Hi,

not sure why, but using "added" left 4861 violations.  Picking `_NO_TAG`
instead seemingly left only new violations.  Maybe that's something
specific to this particular run.  Either way, I can go through the list
now and know how to adjust it.  Thank you for the instructions.

> Thanks,
>  Nicola
>
> [1] https://saas.eclairit.com:3787/fs/var/local/eclair/xen-project.ecdf/xen-project/hardware/xen-staging/ECLAIR_normal/andrew/tb-v1.1/ARM64/9791028027/PROJECT.ecd;/by_service.html#service&kind{"select":true,"selection":{"hiddenAreaKinds":[],"hiddenSubareaKinds":[],"show":true,"selector":{"enabled":true,"negated":false,"kind":1,"children":[{"enabled":true,"negated":false,"kind":0,"domain":"clean","inputs":[{"enabled":true,"text":"added"}]}]}}}


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 21:53:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 21:53:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.965575.1356100 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7i2X-0007PK-6j; Wed, 23 Apr 2025 21:53:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 965575.1356100; Wed, 23 Apr 2025 21:53: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 1u7i2X-0007PD-3l; Wed, 23 Apr 2025 21:53:57 +0000
Received: by outflank-mailman (input) for mailman id 965575;
 Wed, 23 Apr 2025 21:53: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=9Ler=XJ=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u7i2V-0007En-VT
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 21:53:55 +0000
Received: from mail-24418.protonmail.ch (mail-24418.protonmail.ch
 [109.224.244.18]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7302ed42-208d-11f0-9ffb-bf95429c2676;
 Wed, 23 Apr 2025 23:53:54 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7302ed42-208d-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1745445232; x=1745704432;
	bh=vSAN6P9D32IdqFROvax9YB0eoXUJKepDQFPCmAj9hg4=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=ULdR86SnULiZbKuyWe6nh4UZj9Fsc9+WlFYjgYLKh1lPMfq3iFcMp6oOM4Ff4K/rl
	 Ij30hEQsz/H3o9wl+ckc6drlNUo+Iz+X2/t9jnlc9rsHQpcSZwefjcfOBSGmX34N8c
	 prMVyro8UmBFDy/68p863LJZTu3Na/ZlRmMXvfLyfZ8h6LK8kNXI5Pkf6ee8zY239C
	 9uwUZQSqhDrwUAldb8J2gqd6A3yTnYzjn9ZdhW/v9SwhrNvtqgtbOPNq/bNCgTkTCa
	 kdzRjOG7bZqHassBc6AuNGcpfqbSAtZTG2ZvWCdkT/mUyR27/GGh+OCE2vOYnxqRf8
	 CmoiMlUiGbgOg==
Date: Wed, 23 Apr 2025 21:53:47 +0000
To: Alejandro Vallejo <agarciav@amd.com>
From: dmkhn@proton.me
Cc: xen-devel@lists.xenproject.org, "Daniel P. Smith" <dpsmith@apertussolutions.com>, Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>, =?utf-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, Jason Andryuk <jason.andryuk@amd.com>
Subject: Re: [PATCH v4 03/13] common/hyperlaunch: introduce the domain builder
Message-ID: <aAlhZxtdic0zJ2FZ@kraken>
In-Reply-To: <D9DZWZDYLF7B.11NTQG6LIA1IX@amd.com>
References: <20250417124844.11143-1-agarciav@amd.com> <20250417124844.11143-4-agarciav@amd.com> <aALKTolElzpGmD60@kraken> <D9DZWZDYLF7B.11NTQG6LIA1IX@amd.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 8f86805a5d427b1fe85d1eaed8e2367f035dee51
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Wed, Apr 23, 2025 at 12:52:58PM +0100, Alejandro Vallejo wrote:
> On Fri Apr 18, 2025 at 10:55 PM BST, dmkhn wrote:
> > On Thu, Apr 17, 2025 at 01:48:25PM +0100, Alejandro Vallejo wrote:
> >> From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
> >>
> >> Introduce the domain builder which is capable of consuming a device tr=
ee 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 d=
om0
> >> kernel is no longer first boot module but is the second.
> >>
> >> No functional change intended.
> >>
> >> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
> >> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
> >> Signed-off-by: Alejandro Vallejo <agarciav@amd.com>
> >> ---
> >> v4:
> >>   * Moved from arch/x86/ to common/
> >>   * gated all of domain-builder/ on CONFIG_BOOT_INFO
> >>   * Hide the domain builder submenu for !X86
> >>   * Factor out the "hyperlaunch_enabled =3D false" toggle core.c
> >>   * Removed stub inline, as DCE makes it unnecessary
> >>   * Adjusted printks.
> >> ---
> >>  xen/arch/x86/include/asm/bootinfo.h |  3 ++
> >>  xen/arch/x86/setup.c                | 17 +++++----
> >>  xen/common/Makefile                 |  1 +
> >>  xen/common/domain-builder/Makefile  |  2 ++
> >>  xen/common/domain-builder/core.c    | 56 ++++++++++++++++++++++++++++=
+
> >>  xen/common/domain-builder/fdt.c     | 37 +++++++++++++++++++
> >>  xen/common/domain-builder/fdt.h     | 12 +++++++
> >>  xen/include/xen/domain-builder.h    |  9 +++++
> >>  8 files changed, 131 insertions(+), 6 deletions(-)
> >>  create mode 100644 xen/common/domain-builder/Makefile
> >>  create mode 100644 xen/common/domain-builder/core.c
> >>  create mode 100644 xen/common/domain-builder/fdt.c
> >>  create mode 100644 xen/common/domain-builder/fdt.h
> >>  create mode 100644 xen/include/xen/domain-builder.h
> >>
> >> diff --git a/xen/arch/x86/include/asm/bootinfo.h b/xen/arch/x86/includ=
e/asm/bootinfo.h
> >> index 3afc214c17..82c2650fcf 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/setup.c b/xen/arch/x86/setup.c
> >> index 4df012460d..ccc57cc70a 100644
> >> --- a/xen/arch/x86/setup.c
> >> +++ b/xen/arch/x86/setup.c
> >> @@ -5,6 +5,7 @@
> >>  #include <xen/cpuidle.h>
> >>  #include <xen/dmi.h>
> >>  #include <xen/domain.h>
> >> +#include <xen/domain-builder.h>
> >>  #include <xen/domain_page.h>
> >>  #include <xen/efi.h>
> >>  #include <xen/err.h>
> >> @@ -1282,9 +1283,12 @@ void asmlinkage __init noreturn __start_xen(voi=
d)
> >>                 bi->nr_modules);
> >>      }
> >>
> >> -    /* Dom0 kernel is always first */
> >> -    bi->mods[0].type =3D BOOTMOD_KERNEL;
> >> -    bi->domains[0].kernel =3D &bi->mods[0];
> >> +    builder_init(bi);
> >> +
> >> +    /* Find first unknown boot module to use as dom0 kernel */
> >> +    i =3D first_boot_module_index(bi, BOOTMOD_UNKNOWN);
> >> +    bi->mods[i].type =3D BOOTMOD_KERNEL;
> >> +    bi->domains[0].kernel =3D &bi->mods[i];
> >
> > Nit: perhaps add convenience aliases for bi->domains[0] (e.g. dom0) and
> > for bi->mods[0] (e.g. mod)?
>=20
> Inside the boot_info? As in separate aliasing pointers into the arrays?


I was thinking about local variables inside the function pointing to the
bi->mods[0] and bi->domains[0].


> I'd rather not. It'd be dangerous on systems without an actual dom0.
>=20
> The PV shim comes to mind, but other configurations might arise in the
> future where no domain holds the id of 0.
>=20
> >
> >>
> >>      if ( pvh_boot )
> >>      {
> >> @@ -1467,8 +1471,9 @@ void asmlinkage __init noreturn __start_xen(void=
)
> >>          xen->size  =3D __2M_rwdata_end - _stext;
> >>      }
> >>
> >> -    bi->mods[0].headroom =3D
> >> -        bzimage_headroom(bootstrap_map_bm(&bi->mods[0]), bi->mods[0].=
size);
> >> +    bi->domains[0].kernel->headroom =3D
> >> +        bzimage_headroom(bootstrap_map_bm(bi->domains[0].kernel),
> >> +                         bi->domains[0].kernel->size);
> >>      bootstrap_unmap();
> >>
> >>  #ifndef highmem_start
> >> @@ -1592,7 +1597,7 @@ void asmlinkage __init noreturn __start_xen(void=
)
> >>  #endif
> >>      }
> >>
> >> -    if ( bi->mods[0].headroom && !bi->mods[0].relocated )
> >> +    if ( bi->domains[0].kernel->headroom && !bi->domains[0].kernel->r=
elocated )
> >>          panic("Not enough memory to relocate the dom0 kernel image\n"=
);
> >>      for ( i =3D 0; i < bi->nr_modules; ++i )
> >>      {
> >> diff --git a/xen/common/Makefile b/xen/common/Makefile
> >> index 98f0873056..565837bc71 100644
> >> --- a/xen/common/Makefile
> >> +++ b/xen/common/Makefile
> >> @@ -11,6 +11,7 @@ obj-$(filter-out $(CONFIG_X86),$(CONFIG_ACPI)) +=3D =
device.o
> >>  obj-$(CONFIG_HAS_DEVICE_TREE) +=3D device-tree/
> >>  obj-$(CONFIG_IOREQ_SERVER) +=3D dm.o
> >>  obj-y +=3D domain.o
> >> +obj-$(CONFIG_HAS_BOOT_INFO) +=3D domain-builder/
> >>  obj-y +=3D event_2l.o
> >>  obj-y +=3D event_channel.o
> >>  obj-$(CONFIG_EVTCHN_FIFO) +=3D event_fifo.o
> >> diff --git a/xen/common/domain-builder/Makefile b/xen/common/domain-bu=
ilder/Makefile
> >> new file mode 100644
> >> index 0000000000..b10cd56b28
> >> --- /dev/null
> >> +++ b/xen/common/domain-builder/Makefile
> >> @@ -0,0 +1,2 @@
> >> +obj-$(CONFIG_DOMAIN_BUILDER) +=3D fdt.init.o
> >> +obj-y +=3D core.init.o
> >> diff --git a/xen/common/domain-builder/core.c b/xen/common/domain-buil=
der/core.c
> >> new file mode 100644
> >> index 0000000000..a5b21fc179
> >> --- /dev/null
> >> +++ b/xen/common/domain-builder/core.c
> >> @@ -0,0 +1,56 @@
> >> +/* 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)
> >> +{
> >> +    bi->hyperlaunch_enabled =3D false;
> >> +
> >> +    if ( IS_ENABLED(CONFIG_DOMAIN_BUILDER) )
> >
> > I would re-organize the code to remove one level of indentation, e.g.:
> >
> >        if ( !IS_ENABLED(CONFIG_DOMAIN_BUILDER) )
> >             return;
> >
> >        switch ( ret =3D has_hyperlaunch_fdt(bi) )
> >        ...
> >
> > or even add #ifdef CONFIG_DOMAIN_BUILDER for builder_init() in the head=
er file.
> >
> > What do you think?
>=20
> In this patch it sounds good, but a later patch adds more stuff at the
> tail of the function that must not be skipped, so it wouldn't work
> as-is.
>=20
> Another matter is whether this function could be skipped in the "no-fdt"
> case, and it probably could. But I do know the longer series (big RFC
> from Daniel) adds more common logic present when !CONFIG_DOMAIN_BUILDER,
> so I'm reticent to deviate too much from it to avoid rebasing headaches.


I see, thanks for clarification.


>=20
> >
> >> +    {
> >> +        int ret;
> >> +
> >> +        switch ( ret =3D has_hyperlaunch_fdt(bi) )
> >> +        {
> >> +        case 0:
> >> +            printk(XENLOG_DEBUG "DT found: hyperlaunch\n");
> >> +            bi->hyperlaunch_enabled =3D true;
> >> +            bi->mods[0].type =3D BOOTMOD_FDT;
> >> +            break;
> >> +
> >> +        case -EINVAL:
> >> +            /* No DT found */
> >> +            break;
> >> +
> >> +        case -ENOENT:
> >> +        case -ENODATA:
> >
> > Looks like this code accounts for the follow on change: current impleme=
ntation
> > only returns -EINVAL or 0.
> >
> > Is it possible to convert has_hyperlaunch_fdt() to a simple predicate?
>=20
> The function is a misnomer and it ought to change to return an
> enumerated type instead where it returns FDT_HYPERLAUNCH, FDT_DOM0LESS,
> FDT_UNKNOWN or NO_FDT. Using error codes for identification is a tad too
> hacky.
>=20
> Cheers,
> Alejandro



From xen-devel-bounces@lists.xenproject.org Wed Apr 23 22:43:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 22:43:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.965643.1356110 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7ioN-0007KH-MB; Wed, 23 Apr 2025 22:43:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 965643.1356110; Wed, 23 Apr 2025 22:43: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 1u7ioN-0007KA-Iy; Wed, 23 Apr 2025 22:43:23 +0000
Received: by outflank-mailman (input) for mailman id 965643;
 Wed, 23 Apr 2025 22:43: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=dLR5=XJ=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u7ioM-0007K4-NK
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 22:43:22 +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 5a64df6c-2094-11f0-9ffb-bf95429c2676;
 Thu, 24 Apr 2025 00:43:19 +0200 (CEST)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-43cf05f0c3eso2326765e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 23 Apr 2025 15:43:19 -0700 (PDT)
Received: from [192.168.1.23] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-44092b0a4b5sm40350275e9.0.2025.04.23.15.43.16
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 23 Apr 2025 15:43: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: 5a64df6c-2094-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745448199; x=1746052999; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=lF1GosE/h6pbu6VJCuXLrvMwE0dEA9d3yyBrJB/Ryp0=;
        b=ViDY+R1/I8sK617clCzaBb+qV1W3GBkaBatb2g5uz/Er18TO4L2gc0nIi+2P4K/PJG
         Ze2CmMsm3lzLCk2xTSei7huWXQod0UANSrhvLvJWndsU7FLXtgHbZLCXrxPNan/flgNg
         M+By3jnFGaFio+5qm2icIwFbQ5Yz5iaXaYp1c=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745448199; x=1746052999;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=lF1GosE/h6pbu6VJCuXLrvMwE0dEA9d3yyBrJB/Ryp0=;
        b=QLYnGBTMjcLkGt1pLx4zHxsCVTwqJN9qduG2tj9B3vGY1ZmF6rwJSghtVonZjmnRrH
         l9ckhhdCxGfQbPZ3DREJ/k9A20SM5rWQORrtLxgfTLTWC54W4yyckZwTEa63r9L1FxHj
         2NoB7QlsbLJzqB0IulqxhpM2YfPEnMG72ngOs/utgBYshQtD5aVKWjeV32MzhTSx3Svv
         g519v8jdEQcZYA15mO5L+JT07f3INnQDxat/sypR7d8/4J9O7h22KGiav2+Jkk99NdpW
         HtpbSA/hAui2dFYJ8x3n3J1xFHWr/VFrBMx/bCuU9k9h/iiypxJULGrqGExEpk7m0r80
         QPPg==
X-Gm-Message-State: AOJu0YyqSk8llu3YPsVNhmsVpr47zLL6VLrqRgNAuG7oPfe84+1ux8PW
	xFDDW+TYCIL3nlsDdc8bOV1QPICTGFM6Rfk2TatfWjgVIR2UvCVEF34tEbV/ook=
X-Gm-Gg: ASbGnctjFCO5faDhtT8RCuRDVXSVsrU5SRT7iarvtt4GNrVCQi7/Mr97lPp+F3RiyNq
	KAZrD98QxjxBExFMX2K2ARBpuGWCCsv231No7haOlbf8xirfF45bZSfSULT9i2wuWbAUye0L2J2
	Q+Ujyqhq19f2fVUy+jeUUZdZG5OxNIo83GpjsBR3MwEDw4fyGtL0+OAaDnJVUuFGLPH2d/sJEXV
	FDjE+phiDsyzOXu24+VOtS9nONRgAVfndR5Vfg3YOthxYXUmGQtMstkbx46wjrTBRiQsy24rKTo
	1G3cZCVmft5PY4OTbE5AJ6t4T3xzeoIYCSnlxIyuMeRzDCq22Ma3NShpix9grWsCAD+kNeVifR6
	dL7IW
X-Google-Smtp-Source: AGHT+IEX0+tz08KYOOtrsF4uh2qRfc3YehT0TEHSwI9PuldMYUqPTfY5eDhr1F9vkB55QMr9YUeurg==
X-Received: by 2002:a05:600c:4e0c:b0:43d:160:cd97 with SMTP id 5b1f17b1804b1-4409bd86819mr2051225e9.25.1745448198716;
        Wed, 23 Apr 2025 15:43:18 -0700 (PDT)
Message-ID: <6ae5f0a2-8055-45e1-933c-199d6c6d8626@citrix.com>
Date: Wed, 23 Apr 2025 23:43:15 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 00/21] x86: Trenchboot Secure Launch DRTM (Xen)
To: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Lukasz Hawrylko <lukasz@hawrylko.pl>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Mateusz_M=C3=B3wka?= <mateusz.mowka@intel.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, trenchboot-devel@googlegroups.com
References: <cover.1745172094.git.sergii.dmytruk@3mdeb.com>
 <744934f4-f56f-4dc7-bccb-c32f2829d1da@citrix.com>
 <010709d8-7784-41bf-bcb6-bf04803a75fc@citrix.com> <aAk1ZBw8GtoVYoL8@MjU3Nj>
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: <aAk1ZBw8GtoVYoL8@MjU3Nj>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 23/04/2025 7:45 pm, Sergii Dmytruk wrote:
> On Wed, Apr 23, 2025 at 02:38:37PM +0100, Andrew Cooper wrote:
>> On 22/04/2025 6:14 pm, Andrew Cooper wrote:
>>> I've stripped out the sha2 patch and fixed up to use the existing sha2,
>>> then kicked off some CI testing:
>>>
>>> https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/1780285393
>>> https://cirrus-ci.com/build/5452335868018688
>>>
>>> When the dust has settled, I'll talk you through the failures.
>> And here we go.  Interestingly, the FreeBSD testing was entirely happy,
>> and that is the rare way around.
>>
>> For Gitlab, there are several areas.
>>
>> First, for MISRA.  In the job logs, you want the "Browse current
>> reports:" link which will give you full details, but it's all pretty
>> simple stuff.
> Thanks, but that link gives me a list of 5096 failures all over the code
> base.  Is there any way to see a diff against master?

No sadly not.  What you see is a mix of the blocking issues, and the "we
want to see these so we can work on them".

Immediately under the link is the one-line tl;dr.  For ARM, it's just a
single:

Failure: 1 regressions found for clean guidelines
  service MC3A2.R7.2: (required) A `u' or `U' suffix shall be applied to
all integer constants that are represented in an unsigned type:
   violation: 1

Clicking through into the R7.2 analysis shows
https://saas.eclairit.com:3787/fs/var/local/eclair/xen-project.ecdf/xen-project/hardware/xen-staging/ECLAIR_normal/andrew/tb-v1.1/ARM64/9791028027/PROJECT.ecd;/by_service/MC3A2.R7.2.html

This violation is shared with x86 because it's a header pulled into a
common file.

For x86, the list is rather longer.  You've got:

6x D1.1
2x D4.14
1x R5.3
116x R7.2
1x R7.3
12x R8.3
7x R8.4
1x R11.9
87x R20.7

These are the blocking directives/rules.  Others which you see in the
overall report are non-blocking.

>
>> kbl-suspend-x86-64-gcc-debug is a real S3 test on KabyLake hardware,
>> which appears to have gone to sleep and never woken up.  (More likely,
>> crashed on wakeup before we got the console up).  The AlderLake
>> equivalent test seems to be happy, as well as the AMD ones.
> Hm, not sure what that could be, but will try to reproduce/guess.

KBL is unreliable in one specific way, but not with these symptoms.

I reran the suspend test, and it failed in the same way.  I think it's a
deterministic bug.

I can probably dig out my emergency serial debugging patches for S3 if
you want?

>> Other common failures seem to be:
>>
>>     # take image offset into account
>>     arch/x86/efi/fixmlehdr xen.efi 0x200000
>>     Failed to find MLE header in xen.efi
>>     arch/x86/Makefile:220: recipe for target 'xen.efi' failed
>>     make[3]: *** [xen.efi] Error 1
>>
>> ~Andrew
> That seems to be the only reason behind the rest of build failures.
> I was able to reproduce the failure in Fedora 37 docker.  Searching for
> the header in 8KiB instead of 4KiB fixes it.  Looks like large default
> alignment of some toolchains pushes `head.S` to 4 KiB offset.

FYI, you can access all the Xen containers with:

CONTAINER=foo ./automation/scripts/containerize

in the xen.git tree.

Alignment that large is unexpected, and I suspect we want to fix it.  Is
it pre-existing, or something introduced by your series?

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 22:47:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 22:47:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.965666.1356152 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7irt-0008Ag-GD; Wed, 23 Apr 2025 22:47:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 965666.1356152; Wed, 23 Apr 2025 22:47: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 1u7irt-0008AZ-Cp; Wed, 23 Apr 2025 22:47:01 +0000
Received: by outflank-mailman (input) for mailman id 965666;
 Wed, 23 Apr 2025 22:46: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=dLR5=XJ=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u7irr-00089t-Fw
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 22:46:59 +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 dca1b720-2094-11f0-9ffb-bf95429c2676;
 Thu, 24 Apr 2025 00:46:57 +0200 (CEST)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-43cfebc343dso2346925e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 23 Apr 2025 15:46:57 -0700 (PDT)
Received: from [192.168.1.23] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-44092db2beesm41459955e9.30.2025.04.23.15.46.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 23 Apr 2025 15:46:57 -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: dca1b720-2094-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745448417; x=1746053217; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=EIq8UHNpdSL2SOOvD4HsUnuCafprfKERIGeRYPUfbT8=;
        b=nu+B6gkgmeD1NAmuBIUY5uskI1vhBYUqdYauwf9q4IyjsPfXgaWtyWiD34YlEGZjWl
         mY/YTtQXdX1DxS9p4gCEdCVT5x/ntNcLXCIYosYHHmEqy3nh3GDE2aiDG4Ue+UEzutWm
         ltSLHvHAJ0YmXMa1wSgB2K/866TWCZqAWArV4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745448417; x=1746053217;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=EIq8UHNpdSL2SOOvD4HsUnuCafprfKERIGeRYPUfbT8=;
        b=P/58HrZ/l4AIsTaz9LTQBHrfzc4kK0ohVgmhigY+BFJfAUAgDu+kRT4+BlwE1VXDjk
         yi11bhpzyl9duY4SIdV9W7q9AwBOWa5YgaSTgkn5MnUS1mGuj3QeJFjc4LTedrP9NB0J
         2ftQaP8oI0ivjRFDfNA2z/jdNifIS/74oIWW+7XkgfzcHxcA5y+VsaQ1sN3KDacr1UZt
         C/x9frRnLNmuW+nms2bZokFhiPqem7txQC3MQOc7986LJVpzGcaIrqLS1T/PpF8RH0nC
         wxYqWKUseIPldqyee+JIA7XUc2LNRvvN/S1fEeg1DGED6vt7T9gZCoR+hUWriXYLig5L
         xJ9w==
X-Gm-Message-State: AOJu0YysqYyYf+/fXSEOcX8nc2hAURpO3GXAnM8hvoyX9qFMu5iIXC7N
	rVnft3Uhmv6Yj2xrU7hZZPxPP1rk+Od9XqOVKp0Sy8jK7Wl/SlOfg37oBLx0W09G7OFe1ToQLXu
	6YW4=
X-Gm-Gg: ASbGncsrmndK8rbCACWmpKyxJ5De1Eqj5htGj12mq1As9fPYM7ohPRUoYvtt91OybF1
	JKHWlE0qIyiSKfUi2cSVatls71ZEKHxmUJmHvbK2cxA/NcQ5RZRTF6e5fiMTqDPiVgyw60Kwb+d
	ZvUFjuGgnam28cf9AeuOw2UG2C77J3u/DFeQfKYws45TBPiaxN3/GRdzZoSDixZ+NfK/b4k5L7v
	u7TxvTICjOecqNZVyo0wkE9KfHwY4IaD8g6dsv+hfJPzRT3JPoSYn0O+n14E8Jvf711FFR5xiEK
	pjbW1i7zsg050SeHhLSxHK7HFxpdXe+PQwIWMGBnncsfLZQan9cCdY1O+QdhDf1dD2KES/MU1fO
	pKRqn
X-Google-Smtp-Source: AGHT+IFoYul5HVM4K1pPhGop64CxTcJb9DkZgLGNsjmrNnjwb8G1/VhhsXQ0xX/BY4Wvb3e647HH0w==
X-Received: by 2002:a05:600c:3d89:b0:43c:f1b8:16ad with SMTP id 5b1f17b1804b1-4409bd8e01cmr3536095e9.30.1745448417384;
        Wed, 23 Apr 2025 15:46:57 -0700 (PDT)
Message-ID: <76b7438b-9459-4f41-ab18-b777f7b3fcff@citrix.com>
Date: Wed, 23 Apr 2025 23:46:56 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH] misra: update list of GCC extensions used by Xen
To: Stefano Stabellini <sstabellini@kernel.org>,
 Nicola Vetrini <nicola.vetrini@bugseng.com>
Cc: xen-devel@lists.xenproject.org, michal.orzel@amd.com,
 xenia.ragiadakou@amd.com, ayan.kumar.halder@amd.com, consulting@bugseng.com,
 Doug Goldstein <cardoe@cardoe.com>,
 Anthony PERARD <anthony.perard@vates.tech>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <da508095ef2ac0024dfe9f51d9da976da0eaead7.1745441038.git.nicola.vetrini@bugseng.com>
 <alpine.DEB.2.22.394.2504231354540.785180@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.2504231354540.785180@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 23/04/2025 9:55 pm, Stefano Stabellini wrote:
> On Wed, 23 Apr 2025, Nicola Vetrini wrote:
>> __inline was not mentioned in C-language-toolchain.rst, while
>> __inline__ is not used in code under xen/. __inline is kept because it
>> may be used in Xen. The ECLAIR configuration is now consistent with the
>> documented extensions in the rst file.
>>
>> No functional change.
>>
>> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>

Hmm.  f96e2f64576cd

I take it that patch shouldn't have gone in then?

Regardless, now that we're putting it back in, we should put in both
__inline and __inline__, so as not to need to come back and repeat this
patch again.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Apr 23 23:24:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 23:24:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.965678.1356161 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7jSU-0005dO-8R; Wed, 23 Apr 2025 23:24:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 965678.1356161; Wed, 23 Apr 2025 23: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 1u7jSU-0005dH-5T; Wed, 23 Apr 2025 23:24:50 +0000
Received: by outflank-mailman (input) for mailman id 965678;
 Wed, 23 Apr 2025 23:24: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=ZaJ6=XJ=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u7jSS-0005dB-DO
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 23:24:49 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2238f408-209a-11f0-9eb0-5ba50f476ded;
 Thu, 24 Apr 2025 01:24:46 +0200 (CEST)
Received: from [192.168.7.202] ([71.202.166.45]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53NNNmdO016856
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NO);
 Wed, 23 Apr 2025 16:23:49 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2238f408-209a-11f0-9eb0-5ba50f476ded
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53NNNmdO016856
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745450634;
	bh=3ZRudBcQfUXdEeUGknvRzjxdjhla7ofQa9vhRPg63Iw=;
	h=Date:Subject:To:Cc:References:From:In-Reply-To:From;
	b=g52K7MMRbWF6yLwDhmY0YU3Om9fpRH0Ut+qyo76sxSZ4NHnyBc98XW5u2s2hVCFUK
	 PhNe+N15jsjlumb03xkDxJWNBMQ76zGMekkVPvwrCgqXTuVJomLV1T/3YW5TFZ7jZ8
	 1UmN3Fwk6b31yjBct2QL3ajxMU+0ZhSXqsLtn5qHYLVhfR4vWwV537HB9cU8VSqJHv
	 6bXyJrePtilh9n0zOlm3jS0UhKtUD+8gXNtFrWLBIVXKpgaPuv0YalLYf+ij4Y2WWd
	 yrxqlPYGWH/00BTyjqGIOa+LNPKvKGQxRb/Vrh8pulNMK2D75Bck1Sw8zFpVOmUKyD
	 ftlR5gTTNtHcw==
Message-ID: <88bcd897-8436-4ebb-ac03-833c8c8045f2@zytor.com>
Date: Wed, 23 Apr 2025 16:23:47 -0700
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH v2 08/34] x86/msr: Convert a native_wrmsr() use to
 native_wrmsrq()
To: Dave Hansen <dave.hansen@intel.com>, linux-kernel@vger.kernel.org,
        kvm@vger.kernel.org, linux-perf-users@vger.kernel.org,
        linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
        linux-pm@vger.kernel.org, linux-edac@vger.kernel.org,
        xen-devel@lists.xenproject.org, linux-acpi@vger.kernel.org,
        linux-hwmon@vger.kernel.org, netdev@vger.kernel.org,
        platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        acme@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com,
        peterz@infradead.org, namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com
References: <20250422082216.1954310-1-xin@zytor.com>
 <20250422082216.1954310-9-xin@zytor.com>
 <2932db03-164a-447e-92cf-1ef6c35c15a4@intel.com>
Content-Language: en-US
From: Xin Li <xin@zytor.com>
Autocrypt: addr=xin@zytor.com; keydata=
 xsDNBGUPz1cBDACS/9yOJGojBFPxFt0OfTWuMl0uSgpwk37uRrFPTTLw4BaxhlFL0bjs6q+0
 2OfG34R+a0ZCuj5c9vggUMoOLdDyA7yPVAJU0OX6lqpg6z/kyQg3t4jvajG6aCgwSDx5Kzg5
 Rj3AXl8k2wb0jdqRB4RvaOPFiHNGgXCs5Pkux/qr0laeFIpzMKMootGa4kfURgPhRzUaM1vy
 bsMsL8vpJtGUmitrSqe5dVNBH00whLtPFM7IbzKURPUOkRRiusFAsw0a1ztCgoFczq6VfAVu
 raTye0L/VXwZd+aGi401V2tLsAHxxckRi9p3mc0jExPc60joK+aZPy6amwSCy5kAJ/AboYtY
 VmKIGKx1yx8POy6m+1lZ8C0q9b8eJ8kWPAR78PgT37FQWKYS1uAroG2wLdK7FiIEpPhCD+zH
 wlslo2ETbdKjrLIPNehQCOWrT32k8vFNEMLP5G/mmjfNj5sEf3IOKgMTMVl9AFjsINLHcxEQ
 6T8nGbX/n3msP6A36FDfdSEAEQEAAc0WWGluIExpIDx4aW5Aenl0b3IuY29tPsLBDQQTAQgA
 NxYhBIUq/WFSDTiOvUIqv2u9DlcdrjdRBQJlD89XBQkFo5qAAhsDBAsJCAcFFQgJCgsFFgID
 AQAACgkQa70OVx2uN1HUpgv/cM2fsFCQodLArMTX5nt9yqAWgA5t1srri6EgS8W3F+3Kitge
 tYTBKu6j5BXuXaX3vyfCm+zajDJN77JHuYnpcKKr13VcZi1Swv6Jx1u0II8DOmoDYLb1Q2ZW
 v83W55fOWJ2g72x/UjVJBQ0sVjAngazU3ckc0TeNQlkcpSVGa/qBIHLfZraWtdrNAQT4A1fa
 sWGuJrChBFhtKbYXbUCu9AoYmmbQnsx2EWoJy3h7OjtfFapJbPZql+no5AJ3Mk9eE5oWyLH+
 QWqtOeJM7kKvn/dBudokFSNhDUw06e7EoVPSJyUIMbYtUO7g2+Atu44G/EPP0yV0J4lRO6EA
 wYRXff7+I1jIWEHpj5EFVYO6SmBg7zF2illHEW31JAPtdDLDHYcZDfS41caEKOQIPsdzQkaQ
 oW2hchcjcMPAfyhhRzUpVHLPxLCetP8vrVhTvnaZUo0xaVYb3+wjP+D5j/3+hwblu2agPsaE
 vgVbZ8Fx3TUxUPCAdr/p73DGg57oHjgezsDNBGUPz1gBDAD4Mg7hMFRQqlzotcNSxatlAQNL
 MadLfUTFz8wUUa21LPLrHBkUwm8RujehJrzcVbPYwPXIO0uyL/F///CogMNx7Iwo6by43KOy
 g89wVFhyy237EY76j1lVfLzcMYmjBoTH95fJC/lVb5Whxil6KjSN/R/y3jfG1dPXfwAuZ/4N
 cMoOslWkfZKJeEut5aZTRepKKF54T5r49H9F7OFLyxrC/uI9UDttWqMxcWyCkHh0v1Di8176
 jjYRNTrGEfYfGxSp+3jYL3PoNceIMkqM9haXjjGl0W1B4BidK1LVYBNov0rTEzyr0a1riUrp
 Qk+6z/LHxCM9lFFXnqH7KWeToTOPQebD2B/Ah5CZlft41i8L6LOF/LCuDBuYlu/fI2nuCc8d
 m4wwtkou1Y/kIwbEsE/6RQwRXUZhzO6llfoN96Fczr/RwvPIK5SVMixqWq4QGFAyK0m/1ap4
 bhIRrdCLVQcgU4glo17vqfEaRcTW5SgX+pGs4KIPPBE5J/ABD6pBnUUAEQEAAcLA/AQYAQgA
 JhYhBIUq/WFSDTiOvUIqv2u9DlcdrjdRBQJlD89ZBQkFo5qAAhsMAAoJEGu9DlcdrjdR4C0L
 /RcjolEjoZW8VsyxWtXazQPnaRvzZ4vhmGOsCPr2BPtMlSwDzTlri8BBG1/3t/DNK4JLuwEj
 OAIE3fkkm+UG4Kjud6aNeraDI52DRVCSx6xff3bjmJsJJMb12mWglN6LjdF6K+PE+OTJUh2F
 dOhslN5C2kgl0dvUuevwMgQF3IljLmi/6APKYJHjkJpu1E6luZec/lRbetHuNFtbh3xgFIJx
 2RpgVDP4xB3f8r0I+y6ua+p7fgOjDLyoFjubRGed0Be45JJQEn7A3CSb6Xu7NYobnxfkwAGZ
 Q81a2XtvNS7Aj6NWVoOQB5KbM4yosO5+Me1V1SkX2jlnn26JPEvbV3KRFcwV5RnDxm4OQTSk
 PYbAkjBbm+tuJ/Sm+5Yp5T/BnKz21FoCS8uvTiziHj2H7Cuekn6F8EYhegONm+RVg3vikOpn
 gao85i4HwQTK9/D1wgJIQkdwWXVMZ6q/OALaBp82vQ2U9sjTyFXgDjglgh00VRAHP7u1Rcu4
 l75w1xInsg==
In-Reply-To: <2932db03-164a-447e-92cf-1ef6c35c15a4@intel.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 4/23/2025 8:51 AM, Dave Hansen wrote:
> On 4/22/25 01:21, Xin Li (Intel) wrote:
>>   static __always_inline void sev_es_wr_ghcb_msr(u64 val)
>>   {
>> -	u32 low, high;
>> -
>> -	low  = (u32)(val);
>> -	high = (u32)(val >> 32);
>> -
>> -	native_wrmsr(MSR_AMD64_SEV_ES_GHCB, low, high);
>> +	native_wrmsrq(MSR_AMD64_SEV_ES_GHCB, val);
>>   }
> 
> A note on ordering: Had this been a native_wrmsr()=>__wrmsr()
> conversion, it could be sucked into the tree easily before the big
> __wrmsr()=>native_wrmsrq() conversion.

Can't reorder the 2 patches, because __wrmsr() takes two u32 arguments
and the split has to be done explicitly in sev_es_wr_ghcb_msr().

Thanks!
     Xin




From xen-devel-bounces@lists.xenproject.org Wed Apr 23 23:51:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 23 Apr 2025 23:51:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.965690.1356172 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7jsL-0001Wq-7K; Wed, 23 Apr 2025 23:51:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 965690.1356172; Wed, 23 Apr 2025 23:51: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 1u7jsL-0001Wj-3I; Wed, 23 Apr 2025 23:51:33 +0000
Received: by outflank-mailman (input) for mailman id 965690;
 Wed, 23 Apr 2025 23:51: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=V8j8=XJ=amd.com=VictorM.Lira@srs-se1.protection.inumbo.net>)
 id 1u7jsI-0001Wd-Fv
 for xen-devel@lists.xenproject.org; Wed, 23 Apr 2025 23:51:31 +0000
Received: from NAM12-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam12on20606.outbound.protection.outlook.com
 [2a01:111:f403:2417::606])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id dd1953ae-209d-11f0-9eb0-5ba50f476ded;
 Thu, 24 Apr 2025 01:51:25 +0200 (CEST)
Received: from SJ2PR12MB8876.namprd12.prod.outlook.com (2603:10b6:a03:539::18)
 by MW6PR12MB8899.namprd12.prod.outlook.com (2603:10b6:303:248::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.35; Wed, 23 Apr
 2025 23:51:20 +0000
Received: from SJ2PR12MB8876.namprd12.prod.outlook.com
 ([fe80::69d9:a014:7a29:de4a]) by SJ2PR12MB8876.namprd12.prod.outlook.com
 ([fe80::69d9:a014:7a29:de4a%4]) with mapi id 15.20.8655.031; Wed, 23 Apr 2025
 23:51: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: dd1953ae-209d-11f0-9eb0-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=exHA6F9L6lh8YzFU51gH1bZgVG1FrrX1sG4i//tdFebXePGAZOle+87CHTdwRsiMagVIDoOVq/MCesE8+llPg+Dg/M9UKIisgqtygntiXAhoqW/kPUDESkXhu2IrE3h8adO17pMGTTvQmEiZWecjvLcUcvn7ePgChrU81LejG7ZnTD6gjP8CvHFvDqnl05DZd41W+ZHIfkQ1JVlMrSyTgjGr+dhcw6zrS8MchqTaWPduUSALRcFG9v1MPusZVUOSCTUKGIr5HjzOpYD4Hpa1mBMxrXiK4EFdMR3pJUM0acYtpDuK7V3+d4dwc1vVdkjVEsoQCmcWspUHUMA7dDfB3g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=yiCEC6EKVnvAQ81GbR2HdCyO+oCiT4lxOo/CuGnsqTc=;
 b=JilZm1lARWOUrMrhcQZDSdxyjLVj1HHdRBB0GixaxO0dW0ZRtkmh4b4wF9CPH6yfz8qtCFUrT1ItofCoJK4lMReQ/Nke0DytR3asjB9wVXukS8tRAEuuwX7yuvXbQgzn9pAF+vYuilwW9ZNThNzJefIHzodV/Qj1uZp8we6aTMR5boJk5WTDc24J7An1PveuO0u7cE7dHBnXcf5pYSngolgJdmGKGCCMWILioEu+95S0yZNQXmgu+7ogjY/2JpXTOClqisYVGuJqLUmeWXVDr1Zd9e5JaEE27L70xIAd4oclKQdk694xjLEwBk3hQnM4BZyfigQqoKid8K7k9Cl9fA==
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=yiCEC6EKVnvAQ81GbR2HdCyO+oCiT4lxOo/CuGnsqTc=;
 b=H2YxhBSHhVu1E2kUhHaQHxscKjaLxYfL9j2veYJORMV3GktPL4ulBcrrZ55Caj5vasrJVIn4BB7rGgnWTcN0nzZ5TdcOwli+e3aITmVvWhwJuXflyCcWXx+UerAykLqFLMElZfXD84vSR/8vcTot5JBJvlhV7oKWN+OP2Daa9g0=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Content-Type: multipart/mixed; boundary="------------6Td7nOPxkIvu5d2pw5vDA1A0"
Message-ID: <ce06ec74-1a73-4a02-87fc-3e829399cc77@amd.com>
Date: Wed, 23 Apr 2025 16:51:16 -0700
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC] xen/x86: allow overlaps with non-RAM regions
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org, Andrew Cooper <andrew.cooper3@citrix.com>,
 Jan Beulich <jbeulich@suse.com>, Xenia.Ragiadakou@amd.com,
 Alejandro.GarciaVallejo@amd.com
References: <alpine.DEB.2.22.394.2504031755440.3529306@ubuntu-linux-20-04-desktop>
 <Z--0USril0UIhR4R@macbook.lan> <3c5dfd26-3c12-498b-aca4-0beac4e991a5@amd.com>
 <Z_jFSb2-efexUNlL@macbook.lan> <9ed89e50-c645-407d-80b4-5b78cb6e36fa@amd.com>
 <Z_zGdE91KwlYxu_A@macbook.lan>
Content-Language: en-US
From: "Lira, Victor M" <VictorM.Lira@amd.com>
In-Reply-To: <Z_zGdE91KwlYxu_A@macbook.lan>
X-ClientProxiedBy: PH7PR17CA0017.namprd17.prod.outlook.com
 (2603:10b6:510:324::13) To SJ2PR12MB8876.namprd12.prod.outlook.com
 (2603:10b6:a03:539::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ2PR12MB8876:EE_|MW6PR12MB8899:EE_
X-MS-Office365-Filtering-Correlation-Id: 0c7c0388-bb9e-4ead-d169-08dd82c1be99
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|366016|4053099003;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?c1dva1lwc2lBRnk2N3ZNV1NGcWFpZWlyRGFGU2NPaUxVampLeUE0ZlNxbVZ5?=
 =?utf-8?B?ZFkxR1FHdko5V2I5UVpWWkwzaVJBeTVlbmxrUHhsTmpMNmpYY2hqanVRQVdK?=
 =?utf-8?B?WCtyMERvOVZoSWZiaE8wazI4YUU0TVZYMXJydXVWUjU0K0FmQyt3REtiVVB1?=
 =?utf-8?B?RWFOejcvTGVRSUo0TE5nYUNBSDBXenRNMFVVQkl5dFlTVVRUK0taSm0wUmx0?=
 =?utf-8?B?ZmtrN093WUxlczJDTTNaTzU3cVZJekpNQlJUeFc2M2UwMmFkMkNTR0I5NXZm?=
 =?utf-8?B?ck9KYkdMeWd1THJBajVRaWJ5KzRJaXBRcURFejdYTWRqMHJIanFlZ1RXWDdF?=
 =?utf-8?B?RHRxcUt3elhaME5CVlgvRk5iNmlGOEJoOGVXb2xFbC9MRHZGZUR4WVNzZEph?=
 =?utf-8?B?Rnpud0hjVDY3WVJWcnRLUkxIQm1UOFZNeEFoQTJvblB4djJBU2poUG1MVWRh?=
 =?utf-8?B?aVhKamt1YnQ3Wi80RHRBS1g1Qys0SGhiOE1VcTl3cXgxUHBFOFNvQmlDNmZq?=
 =?utf-8?B?V3AvVWczZFE2V092ZEhVaTN6elFNZi9FQVlVMnRUR2FIbGgrME1BU05pWkxu?=
 =?utf-8?B?YlZHN1UvZE1oS3I3aEpndno3L2hISWc5dCsyWlUzQU4yYnVkRW54aFI5bnVk?=
 =?utf-8?B?aFFFTU5oZUpIVUYramNyWjYwek5uSDNtWjZwdHlWK1FaaFUzaEhtcjc0dVl6?=
 =?utf-8?B?OEpEQnRicmw4WWJCNGNLRzdkMjZjNUl6Vmw2SHYwQTFpRFJGYjR6WjllUWxB?=
 =?utf-8?B?aGVEd1J4RmxpQ05ZSTl2UmtDZktlUThBU3JpdFRUMG01YllUVGc1WGhPWi9i?=
 =?utf-8?B?VHlhVkRxdGgvb1ozbVlRN3dIREZ6T1Z2SkpvOHI0RFFEVTdlWG5jUk5Rc3Np?=
 =?utf-8?B?SngrbzJ4a1MvL2FlK1AzMzY0bTVkTlkrTFZHalZJVkFlaGk3ZzV1T21BZGtU?=
 =?utf-8?B?OUMrQnNOVmFEMzV3eW5PQWI1aVNCVVpSUU44ZUZEbGtjOHJYc0FSb3RsUm9s?=
 =?utf-8?B?bThTc3hsS0orc09jdDk3QnBxZEVmWkJ2OUVnejQwS01ockRYZG9QMXBVVW16?=
 =?utf-8?B?MUVodW1EaStGREltNUdhS2ZXOTdQMnhRRUJYWWM2emx1M3d1QXRQbUhGVmVv?=
 =?utf-8?B?YjJ2V1ZDYktFOXI3eDNtUlMvUlpBVUwya1FReXVPaFNpYUlkQkZyOWxtd0F2?=
 =?utf-8?B?YXNmaitqQnJXUmtVY3paelZIT1dOM2ROUE13OVRZdS9FWkJ1aFduTFIvaWVl?=
 =?utf-8?B?dEV6dmpiNVNqUmZzenJ3ZGJQaldkeTU5Y3h3S3VCUEZTb0RESWRJZGFrcytj?=
 =?utf-8?B?M1hOakpyUS9aVDRkRmpPNlNkb1JhM3g0T05Rc2ZzOGhEQUtjTERXUXhmYVN6?=
 =?utf-8?B?YXRhVktIU0ZGVGE3Yk9hbjkvUFZOQnVwbkR4aVhJYjJMU1hUWGcxT2xVYmZv?=
 =?utf-8?B?cm05VXlPY3JQTlZSVGkzZ3hrUlUva0w3anlWVEtidktod0JqVVBWVytrNnFh?=
 =?utf-8?B?T3pYN0lBQm5FV09aa2tDTlBzcUN6b1NOeXZSV1d4eFpQOFUrSERmdUJYMVFQ?=
 =?utf-8?B?dlc0Y3FEYzdpMzl6VFZ0MitsWGl3UFJaeU5XWGVLbjBtVnhCZmNJaWdCWmRB?=
 =?utf-8?B?aXNicG9DZjhpbVJJd2ZsRmZ2eGpqTEhWWVRIck5HMi96Z2txL2tXZkcvT1Zj?=
 =?utf-8?B?QUdaelE0bUJUMEtyTzJlcmV0L1RaaHNqc1BFbzViNEZ2cjA2SitlSWxDd2pE?=
 =?utf-8?B?U2ZESDQzUk55Y1FFKzV1cGw4dFZHeEZjVXpjMGhoTG9CZW5sdDBkblVBai9p?=
 =?utf-8?B?eEV1amQ4VXMzWmgvSzlkbEVUYXZ3NkZ1NVI2MHdqdmdLZXloQWtEK2dZdzZt?=
 =?utf-8?Q?2TPkocU0ssldK?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SJ2PR12MB8876.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(4053099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?akw1YVEzMWdaWFE2S1F3ODNobnRoS2M3eXFEelEyQ0pvdDJGT1FHMjh4N3V6?=
 =?utf-8?B?NUtwNHpnOFJPRXNxZVdibVdnWWZ0aEFhMHVJckhXc0pGeWtpbmw1U0RacTNJ?=
 =?utf-8?B?czgzbCttcWZ4a0xxSEpKRXlQbGFzNTFIWVI5NVFsbWVpazZXUWYvbjFNWFV1?=
 =?utf-8?B?clFiU1ZINzE1dEFXc2xjeUh3dm5Ba0hJSXdqOXNmMHQ2QXRUY2UyU3ZxSHRE?=
 =?utf-8?B?aHBURWhERUVHS0ZJbHJwNDZENDZtYUZWYzZHNXp6SUl2TWdQWk96elFTWlhN?=
 =?utf-8?B?WnA1NURwM1VtWXhOaTRhK0FoY2xHdElRazY3S1p2QzJmMENGU3Zpd1M0bHov?=
 =?utf-8?B?bUwxN25QcG9PTWE4OUl5TjJVdnpPVm1kdEd6VGRQZytFeXgrMFRUTGFadzl5?=
 =?utf-8?B?VW9YVnFsaVJNWHA0Sk5lTFB4Rjd3ZGZlbW0zSEFZZFB0OTVvNHp1M3FqREtQ?=
 =?utf-8?B?dDg4UGlmS21vRUY0WkRtR1BSb3pSdTFNSlM4cmhPcGdYdFlxYnhDYUhHVzVZ?=
 =?utf-8?B?ZFFjL3I2eE9HRVdndHpFOTBLVm1XZEtQN2JvM1JxMWxLMy9YRkVORWduZ01L?=
 =?utf-8?B?WStMRFkrUE9qSnI3a2pPdUlmSnlQOEZxbUFJUVZSa0F5anNKQ3YrNm5IQ1JL?=
 =?utf-8?B?SDVhRGdtaUVQVCtNalQvUFFuaERXb0ZjemwyWTdVK0ZmdjE0a2pLVmN2dmFU?=
 =?utf-8?B?SDBEZGc1WHNaUU1hZS9LaW51OGNJQTlaUnRlZkRTaFYxUUFzV2dFVkMvbzNY?=
 =?utf-8?B?T1ZCa0tyZ0tJWTB3d0d0WkpWVXgwMkhxcVg1dUVqdnljWGRHU2o5OVBxNTlE?=
 =?utf-8?B?cXI1SXlOekdGRE5JVzl0dUsxdTNDUFRzcEZ0bGpFMy82SEdiMlZjWUsvdFQx?=
 =?utf-8?B?enBNaHJqazVWaVUxa1M4OXZoWm9obXd0UVluR29FVW1rbmdrSU1yQkZHdEpI?=
 =?utf-8?B?OUJySDZuRnlrZEo1WFQzdm03V29RUGlxa3ZManNYV3F1V1R0eXlYRmFIUnla?=
 =?utf-8?B?N3dYYU1JalZtUlNJVG1sMzNSamZTcU9yVXl4TFlvQTZvbXM5bzczQ1BLQ2xF?=
 =?utf-8?B?b2sxMWVNYlhvYnVGbFN5cDRGaHlreEJmMmxxOWJZdTVtY2hkc2xUOWEyQUNt?=
 =?utf-8?B?MEtWMXNhK3o0RW9QMFpmaDZManFHNlVTTE5oQVdEQjJONUhCOU1EYUVBaU0x?=
 =?utf-8?B?aXovYVRpV1Iyejd0QjJQWXc3eWpiSU02VzhmWTNmVm9YNysxbUl6TEd6OWRS?=
 =?utf-8?B?RmhBcitZZGxnREFzWkJTejBTL3lnUEw2aytTaDVoekd3amhsNCtZUlZ1OThP?=
 =?utf-8?B?OFBrKzVvM05UUTRxVkJROGNNOGllaEk1TWE4VlNpei9xbmtTUXVpRDRTWW9o?=
 =?utf-8?B?eGp3Smp6d1JQYWZ3MkJHdXNpTXUrT0tXbDA2Q2RrbHdKZ0FsRE16MERrNXls?=
 =?utf-8?B?ZUxDQVIydTJFdVh0Qm5sZ3ZvaHZYQlNTQW4xZ2ZZdjExaHpYSlEvMkxYSG9Y?=
 =?utf-8?B?VDZ6OUZFWGlBc2hnak85cDVlUWhQTmlscWJ4RUtSYnd5aWZ2ZTJKcytKMUlP?=
 =?utf-8?B?YkRWS0lvSnhXdnVHZ3NwOUkraS9SVitUZW5mdDR5cThOVk5ET0tDWXBmVlVT?=
 =?utf-8?B?TU9ITjRPdW1LR1p3UGlneVhaWHUzaytsS2p2UjMrUnd5bmNNZitsUktkdXor?=
 =?utf-8?B?bEVSY2Y2OHAwQTMvUzdOd2VxYTB0RDg5c2czOGYzOGtpeVJJbEpRcXdTejhr?=
 =?utf-8?B?TlhLK2hGek1aU2NxeTRUQTNCWCtMaFlnTng3MXUvcmZYWm1GdFZkQ1JxRmVH?=
 =?utf-8?B?NTFQU1I0YTNYeGdMb1JBODFpdUxaeHA5Y2hrZXVnSmRQRGs2SmlvL2pUZmdN?=
 =?utf-8?B?RlM4MVRIVExJcGNQYjFYUG40Z0xabkMvZzkwNFVvcUZIMHhMRE1nb3hUZGx2?=
 =?utf-8?B?c2dUTDBGUExxbHQrOGcvY21xTHgrN1ozODRRUFpEM1JJam1henR1dFRHTXQr?=
 =?utf-8?B?ck42YmQ5OUpBaXk2STN2eXdqZEhjNzQxKzFyS0dCbGQrU1l2ck03WWpwNW1W?=
 =?utf-8?B?MHl3WnlkT0lYZHh2cHVKZWwxUkRoOGlvTEF1emM1MTdVRTI5alJQaEZCODQ5?=
 =?utf-8?Q?615SCul+5HC+Y3IWb1A+Rv/rK?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0c7c0388-bb9e-4ead-d169-08dd82c1be99
X-MS-Exchange-CrossTenant-AuthSource: SJ2PR12MB8876.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Apr 2025 23:51:19.8191
 (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: pob6ZrQNq3/ofxF4mGMggYatOf2bfD7NR3obb+IoEN0gH0/Y6gLTCKWImGzm+dzMUl1dIbZyo2W2XvIkLmSO/Q==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW6PR12MB8899

--------------6Td7nOPxkIvu5d2pw5vDA1A0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit



On 4/14/2025 1:25 AM, Roger Pau Monné wrote:
> Caution: This message originated from an External Source. Use proper caution when opening attachments, clicking links, or responding.
>
>
>
>> (XEN) [    7.943830] *** Building a PVH Dom0 ***
>> (XEN) [    7.955960] d0: identity mappings for IOMMU:
>> (XEN) [    7.965494]  [00000000a0, 00000000ff] RW
>> (XEN) [    7.974336]  [0000009bff, 0000009fff] RW
>> (XEN) [    7.983172]  [00000cabc9, 00000cc14c] RW
>> (XEN) [    7.992049]  [00000cc389, 00000cc389] RW
>> (XEN) [    8.000890]  [00000cc70a, 00000cd1fe] RW
>> (XEN) [    8.010065]  [00000ce000, 00000cffff] RW
>> (XEN) [    8.018904]  [00000fd000, 00000fd2ff] RW
>> (XEN) [    8.027745]  [00000fd304, 00000febff] RW
>> (XEN) [    8.036584]  [00000fec02, 00000fedff] RW
>> (XEN) [    8.045546]  [00000fee01, 00000fffff] RW
>> (XEN) [    8.054519]  [000080f340, 00008501ff] RW
>> (XEN) [    8.064135] 0000:02:00.0: not mapping BAR [fea00, fea03] invalid position
>> (XEN) [    8.078698] 0000:03:00.0: not mapping BAR [fe900, fe90f] invalid position
>> (XEN) [    8.093260] 0000:03:00.0: not mapping BAR [fe910, fe913] invalid position
>> (XEN) [    8.107815] 0000:04:00.0: not mapping BAR [fe700, fe77f] invalid position
>> (XEN) [    8.122376] 0000:04:00.3: not mapping BAR [fe500, fe5ff] invalid position
>> (XEN) [    8.136936] 0000:04:00.4: not mapping BAR [fe400, fe4ff] invalid position
>> (XEN) [    8.151498] 0000:05:00.0: not mapping BAR [fe801, fe801] invalid position
>> (XEN) [    8.166056] 0000:05:00.1: not mapping BAR [fe800, fe800] invalid position
> Note those messages don't imply that the BARs are not mapped in the
> dom0 p2m, for example here all the ranges listed as invalid positions
> are already mapped into the p2m and covered by the range:
>
> (XEN) [    8.027745]  [00000fd304, 00000febff] RW
>
>> [    6.378198] nvme nvme0: pci function 0000:02:00.0
>> (XEN) [   20.964789] d0v3 unable to fixup memory read from 0xfea0300c size 4: -1
>> [    6.387692] a(XEN) [   20.981772] d0v3 unable to fixup memory write to 0xfea03000 size 4: -1
> And here the address is somehow not populated in the p2m, despite
> being listed as an identity mapped region.  I think the real issue
> here is why this address is somehow unmapped from the p2m (or maybe
> not even added in the first place?).  Xen does identify it as a region
> that must be identity mapped.
>
> It's a fairly wild guess, but can you try if:
>
> https://xenbits.xen.org/gitweb/?p=xen.git;a=commit;h=e118fc98e7ae652a188d227bd7ea22f132724150
>
> Makes a difference?  vPCI uses rangesets extensively, so the bug fixed
> above could in theory cause unmap operations to remove unintended
> regions, and could explain the symptoms you are seeing here.
>
> If that commit doesn't change behavior we would need to figure out why
> the identity ranges are either not properly mapped, or unexpectedly
> unmapped at a later point.
Hello,

Here is the output from Xen staging built including that commit. The 
behavior is as before.
Is there an existing way to see the physical to machine mappings? I 
didn't find anything in the Xen diagnostics.
I found the tool xen-mfndump but only PV is supported.

> / # xen-mfndump dump-p2m 0
> xc: error: Could not get domain address size (95 = Not supported): 
> Internal error
> Could not map domain 0 memory information
> / # xl list
> Name                                        ID   Mem VCPUs State   Time(s)
> Domain-0                                     0  4095     4 r-----     
> 348.8


Victor


--------------6Td7nOPxkIvu5d2pw5vDA1A0
Content-Type: text/plain; charset=UTF-8; name="xen-staging-efi-overlap.log"
Content-Disposition: attachment; filename="xen-staging-efi-overlap.log"
Content-Transfer-Encoding: base64

KFhFTikgWzAwMDAwMDM3NjE3Mzg5NDFdIFhlbiB2ZXJzaW9uIDQuMjEtdW5zdGFibGUgKHJvb3RA
KSAoZ2NjIChBbHBpbmUgMTIuMi4xX2dpdDIwMjIwOTI0LXIxMCkgMTIuMi4xIDIwMjIwOTI0KSBk
ZWJ1Zz15IFdlZCBBcHIgMjMgMjA6MTY6MjggVVRDIDIwMjUNCihYRU4pIFswMDAwMDAzNzY1Zjc3
YmI2XSBMYXRlc3QgQ2hhbmdlU2V0Og0KKFhFTikgWzAwMDAwMDM3Njc1MDBkNzJdIGJ1aWxkLWlk
OiA4YWFiZWI2M2IyMGEzNDc5NzZmYmQ1ZjM4ZDdhYjM1NmMzMDdjNDFlDQooWEVOKSBbMDAwMDAw
Mzc2OTlkODAzOV0gQ29uc29sZSBvdXRwdXQgaXMgc3luY2hyb25vdXMuDQooWEVOKSBbMDAwMDAw
Mzc2YjUxZGUyNl0gQ1BVIFZlbmRvcjogQU1ELCBGYW1pbHkgMjMgKDB4MTcpLCBNb2RlbCA5NiAo
MHg2MCksIFN0ZXBwaW5nIDEgKHJhdyAwMDg2MGYwMSkNCihYRU4pIFswMDAwMDAzNzZlNmUxY2E4
XSBCU1AgbWljcm9jb2RlIHJldmlzaW9uOiAweDA4NjAwMTBjDQooWEVOKSBbMDAwMDAwMzc3MDQx
MGY5MF0gQm9vdGxvYWRlcjogR1JVQiAyLjEzDQooWEVOKSBbMDAwMDAwMzc3MWIwN2Y3MV0gQ29t
bWFuZCBsaW5lOiBjb25zb2xlPWNvbTEgY29tMT01NzYwMCw4bjEsMHgzRjgsNCBzY2hlZD1udWxs
IGxvZ2x2bD1hbGwgZ3Vlc3RfbG9nbHZsPWFsbCBjb25zb2xlX3RpbWVzdGFtcHM9Ym9vdCBpb21t
dT12ZXJib3NlIGRvbTA9cHZoLHZlcmJvc2UscGYtZml4dXAgZG9tMF9tYXhfdmNwdXM9NCBkb20w
X21lbT00RyBhcmdvPTEsbWFjLXBlcm1pc3NpdmU9MSBzeW5jX2NvbnNvbGUgbm9yZWJvb3Qgd293
DQooWEVOKSBbMDAwMDAwMzc3OTY3YzRlZV0gWGVuIGltYWdlIGxvYWQgYmFzZSBhZGRyZXNzOiAw
eGM2NjAwMDAwDQooWEVOKSBbMDAwMDAwMzc3YjYwZjgxOF0gVmlkZW8gaW5mb3JtYXRpb246DQoo
WEVOKSBbMDAwMDAwMzc3Y2I5OTJhOV0gIFZHQSBpcyBncmFwaGljcyBtb2RlIDE5MjB4MTIwMCwg
MzIgYnBwDQooWEVOKSBbMDAwMDAwMzc3ZWIyY2YwMF0gRGlzYyBpbmZvcm1hdGlvbjoNCihYRU4p
IFswMDAwMDAzNzgwMDM5NmZiXSAgRm91bmQgMCBNQlIgc2lnbmF0dXJlcw0KKFhFTikgWzAwMDAw
MDM3ODE4Mjc2MzldICBGb3VuZCAxIEVERCBpbmZvcm1hdGlvbiBzdHJ1Y3R1cmVzDQooWEVOKSBb
MDAwMDAwMzc4MzVkMDEwOV0gRUZJIFJBTSBtYXA6DQooWEVOKSBbMDAwMDAwMzc4NDg3OWZmYl0g
IFswMDAwMDAwMDAwMDAwMDAwLCAwMDAwMDAwMDAwMDlmZmZmXSAodXNhYmxlKQ0KKFhFTikgWzAw
MDAwMDM3ODZiNjdkYzhdICBbMDAwMDAwMDAwMDBhMDAwMCwgMDAwMDAwMDAwMDBmZmZmZl0gKHJl
c2VydmVkKQ0KKFhFTikgWzAwMDAwMDM3ODhmNGFmMzFdICBbMDAwMDAwMDAwMDEwMDAwMCwgMDAw
MDAwMDAwOWJmZWZmZl0gKHVzYWJsZSkNCihYRU4pIFswMDAwMDAzNzhiMjM4Y2ZlXSAgWzAwMDAw
MDAwMDliZmYwMDAsIDAwMDAwMDAwMDlmZmZmZmZdIChyZXNlcnZlZCkNCihYRU4pIFswMDAwMDAz
NzhkNjFjMzI5XSAgWzAwMDAwMDAwMGEwMDAwMDAsIDAwMDAwMDAwMGExZmZmZmZdICh1c2FibGUp
DQooWEVOKSBbMDAwMDAwMzc4ZjkwYTViOF0gIFswMDAwMDAwMDBhMjAwMDAwLCAwMDAwMDAwMDBh
MjBjZmZmXSAoQUNQSSBOVlMpDQooWEVOKSBbMDAwMDAwMzc5MWNlZDJkM10gIFswMDAwMDAwMDBh
MjBkMDAwLCAwMDAwMDAwMGNhYmM4ZmZmXSAodXNhYmxlKQ0KKFhFTikgWzAwMDAwMDM3OTNmZGI0
ZWVdICBbMDAwMDAwMDBjYWJjOTAwMCwgMDAwMDAwMDBjYzE0Y2ZmZl0gKHJlc2VydmVkKQ0KKFhF
TikgWzAwMDAwMDM3OTYzYmQwMjNdICBbMDAwMDAwMDBjYzE0ZDAwMCwgMDAwMDAwMDBjYzE5NWZm
Zl0gKEFDUEkgZGF0YSkNCihYRU4pIFswMDAwMDAzNzk4ODFiOWEwXSAgWzAwMDAwMDAwY2MxOTYw
MDAsIDAwMDAwMDAwY2MzODhmZmZdIChBQ1BJIE5WUykNCihYRU4pIFswMDAwMDAzNzlhYmZkNDdl
XSAgWzAwMDAwMDAwY2MzODkwMDAsIDAwMDAwMDAwY2MzODlmZmZdIChyZXNlcnZlZCkNCihYRU4p
IFswMDAwMDAzNzljZmRmZDJlXSAgWzAwMDAwMDAwY2MzOGEwMDAsIDAwMDAwMDAwY2M3MDlmZmZd
IChBQ1BJIE5WUykNCihYRU4pIFswMDAwMDAzNzlmM2MzM2IwXSAgWzAwMDAwMDAwY2M3MGEwMDAs
IDAwMDAwMDAwY2QxZmVmZmZdIChyZXNlcnZlZCkNCihYRU4pIFswMDAwMDAzN2ExN2E2ZTQ2XSAg
WzAwMDAwMDAwY2QxZmYwMDAsIDAwMDAwMDAwY2RmZmZmZmZdICh1c2FibGUpDQooWEVOKSBbMDAw
MDAwMzdhM2E5NDdhOF0gIFswMDAwMDAwMGNlMDAwMDAwLCAwMDAwMDAwMGNmZmZmZmZmXSAocmVz
ZXJ2ZWQpDQooWEVOKSBbMDAwMDAwMzdhNWU3NzA1OF0gIFswMDAwMDAwMGYwMDAwMDAwLCAwMDAw
MDAwMGY3ZmZmZmZmXSAocmVzZXJ2ZWQpDQooWEVOKSBbMDAwMDAwMzdhODI1ODZjYl0gIFswMDAw
MDAwMGZkMDAwMDAwLCAwMDAwMDAwMGZmZmZmZmZmXSAocmVzZXJ2ZWQpDQooWEVOKSBbMDAwMDAw
MzdhYTYzZDM5ZV0gIFswMDAwMDAwMTAwMDAwMDAwLCAwMDAwMDAwODBmMzNmZmZmXSAodXNhYmxl
KQ0KKFhFTikgWzAwMDAwMDM3YWM5MmFkMDBdICBbMDAwMDAwMDgwZjM0MDAwMCwgMDAwMDAwMDg1
MDFmZmZmZl0gKHJlc2VydmVkKQ0KKFhFTikgWzAwMDAwMDM3ZDdiOWRjOGNdIEFDUEk6IFJTRFAg
Q0M2RjMwMTQsIDAwMjQgKHIyIEFMQVNLQSkNCihYRU4pIFswMDAwMDAzN2Q5YTNiNzU4XSBBQ1BJ
OiBYU0RUIENDNkYyNzI4LCAwMERDIChyMSBBTEFTS0EgICBBIE0gSSAgIDEwNzIwMDkgQU1JICAg
MTAwMDAxMykNCihYRU4pIFswMDAwMDAzN2RjODJhOWNjXSBBQ1BJOiBGQUNQIENDMThDMDAwLCAw
MTE0IChyNiBBTEFTS0EgICBBIE0gSSAgIDEwNzIwMDkgQU1JICAgICAxMDAxMykNCihYRU4pIFsw
MDAwMDAzN2RmNjFhZDc2XSBBQ1BJOiBEU0RUIENDMTgzMDAwLCA4NzZEIChyMiBBTEFTS0EgICBB
IE0gSSAgIDEwNzIwMDkgSU5UTCAyMDEyMDkxMykNCihYRU4pIFswMDAwMDAzN2UyNDBhZTg3XSBB
Q1BJOiBGQUNTIENDNkMwMDAwLCAwMDQwDQooWEVOKSBbMDAwMDAwMzdlM2NlYzI5MF0gQUNQSTog
U1NEVCBDQzE4RTAwMCwgNzIzQyAocjIgICAgQU1EIEFtZFRhYmxlICAgICAgICAyIE1TRlQgIDQw
MDAwMDApDQooWEVOKSBbMDAwMDAwMzdlNmFkYjUwNF0gQUNQSTogSVZSUyBDQzE4RDAwMCwgMDFB
NCAocjIgIEFNRCAgIEFtZFRhYmxlICAgICAgICAxIEFNRCAgICAgICAgIDApDQooWEVOKSBbMDAw
MDAwMzdlOThjYWJlMl0gQUNQSTogRklEVCBDQzE4MjAwMCwgMDA5QyAocjEgQUxBU0tBICAgIEEg
TSBJICAxMDcyMDA5IEFNSSAgICAgMTAwMTMpDQooWEVOKSBbMDAwMDAwMzdlYzZiOTBmNl0gQUNQ
STogTUNGRyBDQzE4MTAwMCwgMDAzQyAocjEgQUxBU0tBICAgIEEgTSBJICAxMDcyMDA5IE1TRlQg
ICAgMTAwMTMpDQooWEVOKSBbMDAwMDAwMzdlZjRhNzVlZl0gQUNQSTogSFBFVCBDQzE4MDAwMCwg
MDAzOCAocjEgQUxBU0tBICAgIEEgTSBJICAxMDcyMDA5IEFNSSAgICAgICAgIDUpDQooWEVOKSBb
MDAwMDAwMzdmMjI5NzE4Zl0gQUNQSTogU1NEVCBDQzE3RjAwMCwgMDIyOCAocjEgICAgQU1EICAg
ICBTVEQzICAgICAgICAxIElOVEwgMjAxMjA5MTMpDQooWEVOKSBbMDAwMDAwMzdmNTA4NzY1Yl0g
QUNQSTogVkZDVCBDQzE3MTAwMCwgRDY4NCAocjEgQUxBU0tBICAgQSBNIEkgICAgICAgICAxICBB
TUQgMzE1MDRGNDcpDQooWEVOKSBbMDAwMDAwMzdmN2U3NTM2Nl0gQUNQSTogVFBNMiBDQzE2RjAw
MCwgMDA0QyAocjQgQUxBU0tBICAgQSBNIEkgICAgICAgICAxIEFNSSAgICAgICAgIDApDQooWEVO
KSBbMDAwMDAwMzdmYWM2M2Y0Nl0gQUNQSTogU1NEVCBDQzE2QjAwMCwgMzlGNCAocjEgICAgQU1E
IEFtZFRhYmxlICAgICAgICAxIEFNRCAgICAgICAgIDEpDQooWEVOKSBbMDAwMDAwMzdmZGE1NDk4
M10gQUNQSTogQ1JBVCBDQzE2QTAwMCwgMEYyOCAocjEgICAgQU1EIEFtZFRhYmxlICAgICAgICAx
IEFNRCAgICAgICAgIDEpDQooWEVOKSBbMDAwMDAwMzgwMDg0MmU5OF0gQUNQSTogQ0RJVCBDQzE2
OTAwMCwgMDAyOSAocjEgICAgQU1EIEFtZFRhYmxlICAgICAgICAxIEFNRCAgICAgICAgIDEpDQoo
WEVOKSBbMDAwMDAwMzgwMzYzMzIwYV0gQUNQSTogU1NEVCBDQzE2ODAwMCwgMDEzOSAocjEgICAg
QU1EIEFtZFRhYmxlICAgICAgICAxIElOVEwgMjAxMjA5MTMpDQooWEVOKSBbMDAwMDAwMzgwNjQy
MjBmYV0gQUNQSTogU1NEVCBDQzE2NzAwMCwgMDIyNyAocjEgICAgQU1EIEFtZFRhYmxlICAgICAg
ICAxIElOVEwgMjAxMjA5MTMpDQooWEVOKSBbMDAwMDAwMzgwOTIxMGYzYl0gQUNQSTogU1NEVCBD
QzE2NjAwMCwgMEQzNyAocjEgICAgQU1EIEFtZFRhYmxlICAgICAgICAxIElOVEwgMjAxMjA5MTMp
DQooWEVOKSBbMDAwMDAwMzgwYmZmZWZlNV0gQUNQSTogU1NEVCBDQzE2NDAwMCwgMTBBNSAocjEg
ICAgQU1EIEFtZFRhYmxlICAgICAgICAxIElOVEwgMjAxMjA5MTMpDQooWEVOKSBbMDAwMDAwMzgw
ZWRlZWZkM10gQUNQSTogU1NEVCBDQzE2MDAwMCwgMzBDOCAocjEgICAgQU1EIEFtZFRhYmxlICAg
ICAgICAxIElOVEwgMjAxMjA5MTMpDQooWEVOKSBbMDAwMDAwMzgxMWJkZGNkNl0gQUNQSTogV1NN
VCBDQzE1RjAwMCwgMDAyOCAocjEgQUxBU0tBICAgQSBNIEkgICAxMDcyMDA5IEFNSSAgICAgMTAw
MTMpDQooWEVOKSBbMDAwMDAwMzgxNDljZGUwM10gQUNQSTogQVBJQyBDQzE1RTAwMCwgMDBERSAo
cjMgQUxBU0tBICAgQSBNIEkgICAxMDcyMDA5IEFNSSAgICAgMTAwMTMpDQooWEVOKSBbMDAwMDAw
MzgxNzdiY2MyOF0gQUNQSTogU1NEVCBDQzE1RDAwMCwgMDA3RCAocjEgICAgQU1EIEFtZFRhYmxl
ICAgICAgICAxIElOVEwgMjAxMjA5MTMpDQooWEVOKSBbMDAwMDAwMzgxYTVhYTgxMF0gQUNQSTog
U1NEVCBDQzE1QzAwMCwgMDUxNyAocjEgICAgQU1EIEFtZFRhYmxlICAgICAgICAxIElOVEwgMjAx
MjA5MTMpDQooWEVOKSBbMDAwMDAwMzgxZDM5YjEyYl0gQUNQSTogRlBEVCBDQzE1QjAwMCwgMDA0
NCAocjEgQUxBU0tBICAgQSBNIEkgICAxMDcyMDA5IEFNSSAgIDEwMDAwMTMpDQooWEVOKSBbMDAw
MDAwMzgyMDE4OGQxM10gQUNQSTogQkdSVCBDQzE3MDAwMCwgMDAzOCAocjEgQUxBU0tBICAgQSBN
IEkgICAxMDcyMDA5IEFNSSAgICAgMTAwMTMpDQooWEVOKSBbMDAwMDAwMzgyMmY3OWI0N10gU3lz
dGVtIFJBTTogMzIxNjhNQiAoMzI5NDA2NTZrQikNCihYRU4pIFswMDAwMDAzODI5MTEwYWM4XSBO
byBOVU1BIGNvbmZpZ3VyYXRpb24gZm91bmQNCihYRU4pIFswMDAwMDAzODJhYWU2NWJlXSBGYWtp
bmcgYSBub2RlIGF0IDAwMDAwMDAwMDAwMDAwMDAtMDAwMDAwMDgwZjM0MDAwMA0KKFhFTikgWzAw
MDAwMDM4MzRmNzNiNDhdIERvbWFpbiBoZWFwIGluaXRpYWxpc2VkDQooWEVOKSBbMDAwMDAwMzgz
N2IxMjc5YV0gU01CSU9TIDMuMiBwcmVzZW50Lg0KKFhFTikgWzAwMDAwMDM4MzkxMTIzM2ZdIFVz
aW5nIEFQSUMgZHJpdmVyIGRlZmF1bHQNCihYRU4pIFswMDAwMDAzODNhOWY0NDMzXSBBQ1BJOiBQ
TS1UaW1lciBJTyBQb3J0OiAweDgwOCAoMzIgYml0cykNCihYRU4pIFswMDAwMDAzODNjOTg2ZTEz
XSBBQ1BJOiB2NSBTTEVFUCBJTkZPOiBjb250cm9sWzA6MF0sIHN0YXR1c1swOjBdDQooWEVOKSBb
MDAwMDAwMzgzZWM3NjNjN10gQUNQSTogU0xFRVAgSU5GTzogcG0xeF9jbnRbMTo4MDQsMTowXSwg
cG0xeF9ldnRbMTo4MDAsMTowXQ0KKFhFTikgWzAwMDAwMDM4NDE1MjIxZDNdIEFDUEk6IDMyLzY0
WCBGQUNTIGFkZHJlc3MgbWlzbWF0Y2ggaW4gRkFEVCAtIGNjNmMwMDAwLzAwMDAwMDAwMDAwMDAw
MDAsIHVzaW5nIDMyDQooWEVOKSBbMDAwMDAwMzg0NDg1NDc4Yl0gQUNQSTogICAgICAgICAgICAg
d2FrZXVwX3ZlY1tjYzZjMDAwY10sIHZlY19zaXplWzIwXQ0KKFhFTikgWzAwMDAwMDM4NDZlMjBh
ZTBdIEFDUEk6IExvY2FsIEFQSUMgYWRkcmVzcyAweGZlZTAwMDAwDQooWEVOKSBbMDAwMDAwMzg0
OGJjYTdlZF0gT3ZlcnJpZGluZyBBUElDIGRyaXZlciB3aXRoIGJpZ3NtcA0KKFhFTikgWzAwMDAw
MDM4NGE4ZmJhNzBdIEFDUEk6IElPQVBJQyAoaWRbMHgxMV0gYWRkcmVzc1sweGZlYzAwMDAwXSBn
c2lfYmFzZVswXSkNCihYRU4pIFswMDAwMDAzODRkMDM4MDJiXSBJT0FQSUNbMF06IGFwaWNfaWQg
MTcsIHZlcnNpb24gMzMsIGFkZHJlc3MgMHhmZWMwMDAwMCwgR1NJIDAtMjMNCihYRU4pIFswMDAw
MDAzODRmYjQ3YWY2XSBBQ1BJOiBJT0FQSUMgKGlkWzB4MTJdIGFkZHJlc3NbMHhmZWMwMTAwMF0g
Z3NpX2Jhc2VbMjRdKQ0KKFhFTikgWzAwMDAwMDM4NTIyZmVmNWVdIElPQVBJQ1sxXTogYXBpY19p
ZCAxOCwgdmVyc2lvbiAzMywgYWRkcmVzcyAweGZlYzAxMDAwLCBHU0kgMjQtNTUNCihYRU4pIFsw
MDAwMDAzODU0ZTg5ZDk4XSBBQ1BJOiBJTlRfU1JDX09WUiAoYnVzIDAgYnVzX2lycSAwIGdsb2Jh
bF9pcnEgMiBkZmwgZGZsKQ0KKFhFTikgWzAwMDAwMDM4NTc2NDAzMjldIEFDUEk6IElOVF9TUkNf
T1ZSIChidXMgMCBidXNfaXJxIDkgZ2xvYmFsX2lycSA5IGxvdyBsZXZlbCkNCihYRU4pIFswMDAw
MDAzODU5ZWVjODU4XSBBQ1BJOiBJUlEwIHVzZWQgYnkgb3ZlcnJpZGUuDQooWEVOKSBbMDAwMDAw
Mzg1YjkzZDU2MV0gQUNQSTogSVJRMiB1c2VkIGJ5IG92ZXJyaWRlLg0KKFhFTikgWzAwMDAwMDM4
NWQzOGVjMGJdIEFDUEk6IElSUTkgdXNlZCBieSBvdmVycmlkZS4NCihYRU4pIFswMDAwMDAzODVl
ZGRmOTZiXSBBQ1BJOiBIUEVUIGlkOiAweDEwMjI4MjAxIGJhc2U6IDB4ZmVkMDAwMDANCihYRU4p
IFswMDAwMDAzODYwZWUyYTczXSBQQ0k6IE1DRkcgY29uZmlndXJhdGlvbiAwOiBiYXNlIGYwMDAw
MDAwIHNlZ21lbnQgMDAwMCBidXNlcyAwMCAtIDdmDQooWEVOKSBbMDAwMDAwMzg2M2JkZGY5Yl0g
UENJOiBNQ0ZHIGFyZWEgYXQgZjAwMDAwMDAgcmVzZXJ2ZWQgaW4gRTgyMA0KKFhFTikgWzAwMDAw
MDM4NjVkNWIxYjhdIFBDSTogVXNpbmcgTUNGRyBmb3Igc2VnbWVudCAwMDAwIGJ1cyAwMC03Zg0K
KFhFTikgWzAwMDAwMDM4NjdlNWZkYjZdIEFDUEk6IEJHUlQ6IGludmFsaWRhdGluZyB2MSBpbWFn
ZSBhdCAweGM3N2E3MDE4DQooWEVOKSBbMDAwMDAwMzg2YTFjNzM2Yl0gVXNpbmcgQUNQSSAoTUFE
VCkgZm9yIFNNUCBjb25maWd1cmF0aW9uIGluZm9ybWF0aW9uDQooWEVOKSBbMDAwMDAwMzg2Yzcx
OWE1MF0gU01QOiBBbGxvd2luZyAxNiBDUFVzICgwIGhvdHBsdWcgQ1BVcykNCihYRU4pIFswMDAw
MDAzODZlNjM0Nzk1XSBJUlEgbGltaXRzOiA1NiBHU0ksIDMyNzIgTVNJL01TSS1YDQooWEVOKSBb
MDAwMDAwMzg3MDM2NDRjY10gQ1BVMDogMTQwMCAuLi4gMjkwMCBNSHoNCihYRU4pIFswMDAwMDAz
ODcxYjRmZWUyXSB4c3RhdGU6IHNpemU6IDB4MzgwIGFuZCBzdGF0ZXM6IDB4MjA3DQooWEVOKSBb
MDAwMDAwMzg3MzlmMDY4YV0gQ1BVMDogQU1EIEZhbTE3aCBtYWNoaW5lIGNoZWNrIHJlcG9ydGlu
ZyBlbmFibGVkDQooWEVOKSBbMDAwMDAwMzg3NWRkMjIxNl0gU3BlY3VsYXRpdmUgbWl0aWdhdGlv
biBmYWNpbGl0aWVzOg0KKFhFTikgWzAwMDAwMDM4NzdiMDM4YWRdICAgSGFyZHdhcmUgaGludHM6
IElCUlNfRkFTVCBJQlJTX1NBTUVfTU9ERQ0KKFhFTikgWzAwMDAwMDM4NzljMDY5YjVdICAgSGFy
ZHdhcmUgZmVhdHVyZXM6IElCUEIgSUJSUyBTVElCUCBTU0JEDQooWEVOKSBbMDAwMDAwMzg3YmM4
ZjlhOF0gICBDb21waWxlZC1pbiBzdXBwb3J0OiBJTkRJUkVDVF9USFVOSyBTSEFET1dfUEFHSU5H
IEhBUkRFTl9BUlJBWSBIQVJERU5fQlJBTkNIIEhBUkRFTl9HVUVTVF9BQ0NFU1MgSEFSREVOX0xP
Q0sNCihYRU4pIFswMDAwMDAzODdmZTFkOTkwXSAgIFhlbiBzZXR0aW5nczogQlRJLVRodW5rOiBS
RVRQT0xJTkUsIFNQRUNfQ1RSTDogSUJSUy0gU1RJQlArIFNTQkQtLCBPdGhlcjogQlJBTkNIX0hB
UkRFTg0KKFhFTikgWzAwMDAwMDM4ODM1OWQ2NTVdICAgU3VwcG9ydCBmb3IgSFZNIFZNczogTVNS
X1NQRUNfQ1RSTCBNU1JfVklSVF9TUEVDX0NUUkwgUlNCIElCUEItZW50cnkNCihYRU4pIFswMDAw
MDAzODg2NDA4NDA4XSAgIFN1cHBvcnQgZm9yIFBWIFZNczogSUJQQi1lbnRyeQ0KKFhFTikgWzAw
MDAwMDM4ODgwNDM1ZThdICAgWFBUSSAoNjQtYml0IFBWIG9ubHkpOiBEb20wIGRpc2FibGVkLCBE
b21VIGRpc2FibGVkICh3aXRob3V0IFBDSUQpDQooWEVOKSBbMDAwMDAwMzg4YWRiNjgwMl0gICBQ
ViBMMVRGIHNoYWRvd2luZzogRG9tMCBkaXNhYmxlZCwgRG9tVSBkaXNhYmxlZA0KKFhFTikgWzAw
MDAwMDM4OGQyMTRjYmRdIFVzaW5nIHNjaGVkdWxlcjogbnVsbCBTY2hlZHVsZXIgKG51bGwpDQoo
WEVOKSBbMDAwMDAwMzg4ZjEyZTMzZF0gSW5pdGlhbGl6aW5nIG51bGwgc2NoZWR1bGVyDQooWEVO
KSBbMDAwMDAwMzg5MGIwNWQ3N10gV0FSTklORzogVGhpcyBpcyBleHBlcmltZW50YWwgc29mdHdh
cmUgaW4gZGV2ZWxvcG1lbnQuDQooWEVOKSBbMDAwMDAwMzg5MzFjNmI5Ml0gVXNlIGF0IHlvdXIg
b3duIHJpc2suDQooWEVOKSBbMDAwMDAwMzg5ZDIwYWEyZF0gUGxhdGZvcm0gdGltZXIgaXMgMTQu
MzE4TUh6IEhQRVQNCihYRU4pIFsgICAgMS44NDQwNDhdIERldGVjdGVkIDI4OTQuNTQxIE1IeiBw
cm9jZXNzb3IuDQooWEVOKSBbICAgIDEuODU1MDQ1XSBGcmVlZCAxMDA4a0IgdW51c2VkIEJTUyBt
ZW1vcnkNCihYRU4pIFsgICAgMS44NjQyMzNdIEVGSSBtZW1vcnkgbWFwOg0KKFhFTikgWyAgICAx
Ljg3MDgxOF0gIDAwMDAwMDAwMDAwMDAtMDAwMDAwMDAwM2ZmZiB0eXBlPTIgYXR0cj0wMDAwMDAw
MDAwMDAwMDBmDQooWEVOKSBbICAgIDEuODg0Njg2XSAgMDAwMDAwMDAwNDAwMC0wMDAwMDAwMDhl
ZmZmIHR5cGU9NyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgMS44OTg1NTJdICAw
MDAwMDAwMDhmMDAwLTAwMDAwMDAwOWVmZmYgdHlwZT0yIGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0K
KFhFTikgWyAgICAxLjkxMjQxOV0gIDAwMDAwMDAwOWYwMDAtMDAwMDAwMDA5ZmZmZiB0eXBlPTQg
YXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDEuOTI2Mjg1XSAgMDAwMDAwMDEwMDAw
MC0wMDAwMDAwZTk2ZmZmIHR5cGU9MiBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAg
MS45NDAxNTRdICAwMDAwMDAwZTk3MDAwLTAwMDAwMDBmZmZmZmYgdHlwZT03IGF0dHI9MDAwMDAw
MDAwMDAwMDAwZg0KKFhFTikgWyAgICAxLjk1NDAyMF0gIDAwMDAwMDEwMDAwMDAtMDAwMDAwMTAx
ZmZmZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDEuOTY3ODg0XSAg
MDAwMDAwMTAyMDAwMC0wMDAwMDA5YmZlZmZmIHR5cGU9NyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYN
CihYRU4pIFsgICAgMS45ODE3NTRdICAwMDAwMDA5YmZmMDAwLTAwMDAwMDlmZmZmZmYgdHlwZT0w
IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICAxLjk5NTYxOV0gIDAwMDAwMGEwMDAw
MDAtMDAwMDAwYTFmZmZmZiB0eXBlPTcgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAg
IDIuMDA5NDg2XSAgMDAwMDAwYTIwMDAwMC0wMDAwMDBhMjBjZmZmIHR5cGU9MTAgYXR0cj0wMDAw
MDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDIuMDIzNTI1XSAgMDAwMDAwYTIwZDAwMC0wMDAwMDM2
MThlZmZmIHR5cGU9MiBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgMi4wMzczOTVd
ICAwMDAwMDM2MThmMDAwLTAwMDAwYzRlZWJmZmYgdHlwZT03IGF0dHI9MDAwMDAwMDAwMDAwMDAw
Zg0KKFhFTikgWyAgICAyLjA1MTI2MV0gIDAwMDAwYzRlZWMwMDAtMDAwMDBjNzAwMGZmZiB0eXBl
PTEgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDIuMDY1MTI2XSAgMDAwMDBjNzAw
MTAwMC0wMDAwMGM3MTE2ZmZmIHR5cGU9NyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsg
ICAgMi4wNzg5OTRdICAwMDAwMGM3MTE3MDAwLTAwMDAwYzcxMWVmZmYgdHlwZT00IGF0dHI9MDAw
MDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICAyLjA5Mjg2MF0gIDAwMDAwYzcxMWYwMDAtMDAwMDBj
NzE1OWZmZiB0eXBlPTMgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDIuMTA2NzI4
XSAgMDAwMDBjNzE1YTAwMC0wMDAwMGM3MTVjZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAwMDAw
MGYNCihYRU4pIFsgICAgMi4xMjA1OTNdICAwMDAwMGM3MTVkMDAwLTAwMDAwYzcxNjhmZmYgdHlw
ZT0zIGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICAyLjEzNDQ2MF0gIDAwMDAwYzcx
NjkwMDAtMDAwMDBjNzE5NGZmZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBb
ICAgIDIuMTQ4MzI4XSAgMDAwMDBjNzE5NTAwMC0wMDAwMGM3MWEyZmZmIHR5cGU9MyBhdHRyPTAw
MDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgMi4xNjIxOTRdICAwMDAwMGM3MWEzMDAwLTAwMDAw
YzcxZGNmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICAyLjE3NjA2
Ml0gIDAwMDAwYzcxZGQwMDAtMDAwMDBjNzFkZGZmZiB0eXBlPTcgYXR0cj0wMDAwMDAwMDAwMDAw
MDBmDQooWEVOKSBbICAgIDIuMTg5OTI4XSAgMDAwMDBjNzFkZTAwMC0wMDAwMGM3MWUwZmZmIHR5
cGU9NCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgMi4yMDM3OTNdICAwMDAwMGM3
MWUxMDAwLTAwMDAwYzcxZTFmZmYgdHlwZT03IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikg
WyAgICAyLjIxNzY2Ml0gIDAwMDAwYzcxZTIwMDAtMDAwMDBjNzFlM2ZmZiB0eXBlPTQgYXR0cj0w
MDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDIuMjMxNTI3XSAgMDAwMDBjNzFlNDAwMC0wMDAw
MGM3MWU1ZmZmIHR5cGU9NyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgMi4yNDUz
OTNdICAwMDAwMGM3MWU2MDAwLTAwMDAwYzcxZTdmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAw
MDAwZg0KKFhFTikgWyAgICAyLjI1OTI2MV0gIDAwMDAwYzcxZTgwMDAtMDAwMDBjNzFlOGZmZiB0
eXBlPTcgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDIuMjczMTI3XSAgMDAwMDBj
NzFlOTAwMC0wMDAwMGM3MWU5ZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4p
IFsgICAgMi4yODY5OTZdICAwMDAwMGM3MWVhMDAwLTAwMDAwYzcxZWFmZmYgdHlwZT03IGF0dHI9
MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICAyLjMwMDg2Ml0gIDAwMDAwYzcxZWIwMDAtMDAw
MDBjNzFlYmZmZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDIuMzE0
NzI3XSAgMDAwMDBjNzFlYzAwMC0wMDAwMGM3MWVjZmZmIHR5cGU9NyBhdHRyPTAwMDAwMDAwMDAw
MDAwMGYNCihYRU4pIFsgICAgMi4zMjg1OTVdICAwMDAwMGM3MWVkMDAwLTAwMDAwYzcxZWVmZmYg
dHlwZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICAyLjM0MjQ2M10gIDAwMDAw
YzcxZWYwMDAtMDAwMDBjNzFmMGZmZiB0eXBlPTcgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVO
KSBbICAgIDIuMzU2MzI4XSAgMDAwMDBjNzFmMTAwMC0wMDAwMGM3MWYzZmZmIHR5cGU9NCBhdHRy
PTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgMi4zNzAxOTZdICAwMDAwMGM3MWY0MDAwLTAw
MDAwYzcxZmVmZmYgdHlwZT03IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICAyLjM4
NDA2MV0gIDAwMDAwYzcxZmYwMDAtMDAwMDBjNzIwMWZmZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAw
MDAwMDBmDQooWEVOKSBbICAgIDIuMzk3OTI4XSAgMDAwMDBjNzIwMjAwMC0wMDAwMGM3MjA0ZmZm
IHR5cGU9NyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgMi40MTE3OTVdICAwMDAw
MGM3MjA1MDAwLTAwMDAwYzcyMDVmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhF
TikgWyAgICAyLjQyNTY2M10gIDAwMDAwYzcyMDYwMDAtMDAwMDBjNzIwNmZmZiB0eXBlPTcgYXR0
cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDIuNDM5NTI4XSAgMDAwMDBjNzIwNzAwMC0w
MDAwMGM3MjA3ZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgMi40
NTMzOTZdICAwMDAwMGM3MjA4MDAwLTAwMDAwYzcyMDlmZmYgdHlwZT03IGF0dHI9MDAwMDAwMDAw
MDAwMDAwZg0KKFhFTikgWyAgICAyLjQ2NzI2M10gIDAwMDAwYzcyMGEwMDAtMDAwMDBjNzIwYmZm
ZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDIuNDgxMTI5XSAgMDAw
MDBjNzIwYzAwMC0wMDAwMGM3MjBjZmZmIHR5cGU9NyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihY
RU4pIFsgICAgMi40OTQ5OThdICAwMDAwMGM3MjBkMDAwLTAwMDAwYzcyMGRmZmYgdHlwZT00IGF0
dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICAyLjUwODg2NV0gIDAwMDAwYzcyMGUwMDAt
MDAwMDBjNzIwZWZmZiB0eXBlPTcgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDIu
NTIyNzMwXSAgMDAwMDBjNzIwZjAwMC0wMDAwMGM3MjBmZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAw
MDAwMDAwMGYNCihYRU4pIFsgICAgMi41MzY1OTddICAwMDAwMGM3MjEwMDAwLTAwMDAwYzcyMTFm
ZmYgdHlwZT03IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICAyLjU1MDQ2Ml0gIDAw
MDAwYzcyMTIwMDAtMDAwMDBjNzIxMmZmZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQoo
WEVOKSBbICAgIDIuNTY0MzMyXSAgMDAwMDBjNzIxMzAwMC0wMDAwMGM3MjE0ZmZmIHR5cGU9NyBh
dHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgMi41NzgxOTZdICAwMDAwMGM3MjE1MDAw
LTAwMDAwYzcyMTVmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICAy
LjU5MjA2NV0gIDAwMDAwYzcyMTYwMDAtMDAwMDBjNzJjMmZmZiB0eXBlPTcgYXR0cj0wMDAwMDAw
MDAwMDAwMDBmDQooWEVOKSBbICAgIDIuNjA1OTMwXSAgMDAwMDBjNzJjMzAwMC0wMDAwMGM3N2U1
ZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgMi42MTk3OTddICAw
MDAwMGM3N2U2MDAwLTAwMDAwYzc4MzhmZmYgdHlwZT03IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0K
KFhFTikgWyAgICAyLjYzMzY2Nl0gIDAwMDAwYzc4MzkwMDAtMDAwMDBjNzg1YWZmZiB0eXBlPTQg
YXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDIuNjQ3NTI5XSAgMDAwMDBjNzg1YjAw
MC0wMDAwMGM3OWQyZmZmIHR5cGU9MyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAg
Mi42NjEzOTldICAwMDAwMGM3OWQzMDAwLTAwMDAwYzdhM2RmZmYgdHlwZT00IGF0dHI9MDAwMDAw
MDAwMDAwMDAwZg0KKFhFTikgWyAgICAyLjY3NTI2NF0gIDAwMDAwYzdhM2UwMDAtMDAwMDBjN2E0
MWZmZiB0eXBlPTcgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDIuNjg5MTMyXSAg
MDAwMDBjN2E0MjAwMC0wMDAwMGM3YTQyZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYN
CihYRU4pIFsgICAgMi43MDI5OTddICAwMDAwMGM3YTQzMDAwLTAwMDAwYzdhNDhmZmYgdHlwZT03
IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICAyLjcxNjg2Nl0gIDAwMDAwYzdhNDkw
MDAtMDAwMDBjN2E0OWZmZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAg
IDIuNzMwNzMxXSAgMDAwMDBjN2E0YTAwMC0wMDAwMGM3YTRhZmZmIHR5cGU9NyBhdHRyPTAwMDAw
MDAwMDAwMDAwMGYNCihYRU4pIFsgICAgMi43NDQ2MDBdICAwMDAwMGM3YTRiMDAwLTAwMDAwYzdh
NGJmZmYgdHlwZT0yIGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICAyLjc1ODQ2NF0g
IDAwMDAwYzdhNGMwMDAtMDAwMDBjN2E0Y2ZmZiB0eXBlPTcgYXR0cj0wMDAwMDAwMDAwMDAwMDBm
DQooWEVOKSBbICAgIDIuNzcyMzMxXSAgMDAwMDBjN2E0ZDAwMC0wMDAwMGM3YTVkZmZmIHR5cGU9
MyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgMi43ODYxOTddICAwMDAwMGM3YTVl
MDAwLTAwMDAwYzdhOTRmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAg
ICAyLjgwMDA2NV0gIDAwMDAwYzdhOTUwMDAtMDAwMDBjN2E5NmZmZiB0eXBlPTcgYXR0cj0wMDAw
MDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDIuODEzOTMyXSAgMDAwMDBjN2E5NzAwMC0wMDAwMGM3
YWU3ZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgMi44Mjc4MDBd
ICAwMDAwMGM3YWU4MDAwLTAwMDAwYzdiMDdmZmYgdHlwZT0zIGF0dHI9MDAwMDAwMDAwMDAwMDAw
Zg0KKFhFTikgWyAgICAyLjg0MTY2N10gIDAwMDAwYzdiMDgwMDAtMDAwMDBjN2IwOGZmZiB0eXBl
PTQgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDIuODU1NTMzXSAgMDAwMDBjN2Iw
OTAwMC0wMDAwMGM3YjEwZmZmIHR5cGU9MyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsg
ICAgMi44Njk0MDBdICAwMDAwMGM3YjExMDAwLTAwMDAwYzdiMThmZmYgdHlwZT00IGF0dHI9MDAw
MDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICAyLjg4MzI2Nl0gIDAwMDAwYzdiMTkwMDAtMDAwMDBj
N2IzMGZmZiB0eXBlPTMgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDIuODk3MTMz
XSAgMDAwMDBjN2IzMTAwMC0wMDAwMGM3YjMyZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAwMDAw
MGYNCihYRU4pIFsgICAgMi45MTA5OThdICAwMDAwMGM3YjMzMDAwLTAwMDAwYzdiNTVmZmYgdHlw
ZT0zIGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICAyLjkyNDg2N10gIDAwMDAwYzdi
NTYwMDAtMDAwMDBjN2I2MGZmZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBb
ICAgIDIuOTM4NzM0XSAgMDAwMDBjN2I2MTAwMC0wMDAwMGM3YjhjZmZmIHR5cGU9MyBhdHRyPTAw
MDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgMi45NTI2MDBdICAwMDAwMGM3YjhkMDAwLTAwMDAw
YzkyNzBmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICAyLjk2NjQ2
N10gIDAwMDAwYzkyNzEwMDAtMDAwMDBjOTJkN2ZmZiB0eXBlPTMgYXR0cj0wMDAwMDAwMDAwMDAw
MDBmDQooWEVOKSBbICAgIDIuOTgwMzM0XSAgMDAwMDBjOTJkODAwMC0wMDAwMGM5MmRiZmZmIHR5
cGU9NCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgMi45OTQyMDBdICAwMDAwMGM5
MmRjMDAwLTAwMDAwYzkyZTVmZmYgdHlwZT0zIGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikg
WyAgICAzLjAwODA2Nl0gIDAwMDAwYzkyZTYwMDAtMDAwMDBjOTMzMGZmZiB0eXBlPTQgYXR0cj0w
MDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDMuMDIxOTM1XSAgMDAwMDBjOTMzMTAwMC0wMDAw
MGM5MzRhZmZmIHR5cGU9MyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgMy4wMzU4
MDJdICAwMDAwMGM5MzRiMDAwLTAwMDAwYzkzNGVmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAw
MDAwZg0KKFhFTikgWyAgICAzLjA0OTY2N10gIDAwMDAwYzkzNGYwMDAtMDAwMDBjOTM2Y2ZmZiB0
eXBlPTMgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDMuMDYzNTM0XSAgMDAwMDBj
OTM2ZDAwMC0wMDAwMGM5MzZkZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4p
IFsgICAgMy4wNzc0MDBdICAwMDAwMGM5MzZlMDAwLTAwMDAwYzkzNzRmZmYgdHlwZT0zIGF0dHI9
MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICAzLjA5MTI2OF0gIDAwMDAwYzkzNzUwMDAtMDAw
MDBjOTM3YmZmZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDMuMTA1
MTMzXSAgMDAwMDBjOTM3YzAwMC0wMDAwMGM5Mzg5ZmZmIHR5cGU9MyBhdHRyPTAwMDAwMDAwMDAw
MDAwMGYNCihYRU4pIFsgICAgMy4xMTkwMDFdICAwMDAwMGM5MzhhMDAwLTAwMDAwYzkzOGVmZmYg
dHlwZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICAzLjEzMjg2OF0gIDAwMDAw
YzkzOGYwMDAtMDAwMDBjOTM5MGZmZiB0eXBlPTMgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVO
KSBbICAgIDMuMTQ2NzMzXSAgMDAwMDBjOTM5MTAwMC0wMDAwMGM5MzkyZmZmIHR5cGU9NCBhdHRy
PTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgMy4xNjA2MDBdICAwMDAwMGM5MzkzMDAwLTAw
MDAwYzkzOTlmZmYgdHlwZT0zIGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICAzLjE3
NDQ2OV0gIDAwMDAwYzkzOWEwMDAtMDAwMDBjOTM5YmZmZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAw
MDAwMDBmDQooWEVOKSBbICAgIDMuMTg4MzMzXSAgMDAwMDBjOTM5YzAwMC0wMDAwMGM5MzljZmZm
IHR5cGU9MyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgMy4yMDIyMDFdICAwMDAw
MGM5MzlkMDAwLTAwMDAwYzkzYTBmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhF
TikgWyAgICAzLjIxNjA2OF0gIDAwMDAwYzkzYTEwMDAtMDAwMDBjOTNiN2ZmZiB0eXBlPTMgYXR0
cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDMuMjI5OTM1XSAgMDAwMDBjOTNiODAwMC0w
MDAwMGM5M2I5ZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgMy4y
NDM4MDNdICAwMDAwMGM5M2JhMDAwLTAwMDAwYzkzYmJmZmYgdHlwZT0zIGF0dHI9MDAwMDAwMDAw
MDAwMDAwZg0KKFhFTikgWyAgICAzLjI1NzY2OV0gIDAwMDAwYzkzYmMwMDAtMDAwMDBjOTNiY2Zm
ZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDMuMjcxNTM2XSAgMDAw
MDBjOTNiZDAwMC0wMDAwMGM5M2NiZmZmIHR5cGU9MyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihY
RU4pIFsgICAgMy4yODU0MDFdICAwMDAwMGM5M2NjMDAwLTAwMDAwYzkzZDRmZmYgdHlwZT00IGF0
dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICAzLjI5OTI2OF0gIDAwMDAwYzkzZDUwMDAt
MDAwMDBjOTNkNmZmZiB0eXBlPTMgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDMu
MzEzMTM0XSAgMDAwMDBjOTNkNzAwMC0wMDAwMGM5M2Q4ZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAw
MDAwMDAwMGYNCihYRU4pIFsgICAgMy4zMjcwMDJdICAwMDAwMGM5M2Q5MDAwLTAwMDAwYzkzZDlm
ZmYgdHlwZT0zIGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICAzLjM0MDg3MF0gIDAw
MDAwYzkzZGEwMDAtMDAwMDBjOTNkYWZmZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQoo
WEVOKSBbICAgIDMuMzU0NzM1XSAgMDAwMDBjOTNkYjAwMC0wMDAwMGM5M2RiZmZmIHR5cGU9MyBh
dHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgMy4zNjg2MDJdICAwMDAwMGM5M2RjMDAw
LTAwMDAwYzk1MjlmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICAz
LjM4MjQ3MV0gIDAwMDAwYzk1MmEwMDAtMDAwMDBjOTUzM2ZmZiB0eXBlPTMgYXR0cj0wMDAwMDAw
MDAwMDAwMDBmDQooWEVOKSBbICAgIDMuMzk2MzM1XSAgMDAwMDBjOTUzNDAwMC0wMDAwMGM5NTM1
ZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgMy40MTAyMDRdICAw
MDAwMGM5NTM2MDAwLTAwMDAwYzk1MzlmZmYgdHlwZT0zIGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0K
KFhFTikgWyAgICAzLjQyNDA3MF0gIDAwMDAwYzk1M2EwMDAtMDAwMDBjOTUzZGZmZiB0eXBlPTQg
YXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDMuNDM3OTM1XSAgMDAwMDBjOTUzZTAw
MC0wMDAwMGM5NTQ1ZmZmIHR5cGU9MyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAg
My40NTE4MDNdICAwMDAwMGM5NTQ2MDAwLTAwMDAwYzk1NDdmZmYgdHlwZT00IGF0dHI9MDAwMDAw
MDAwMDAwMDAwZg0KKFhFTikgWyAgICAzLjQ2NTY3MF0gIDAwMDAwYzk1NDgwMDAtMDAwMDBjOTU0
YmZmZiB0eXBlPTMgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDMuNDc5NTM4XSAg
MDAwMDBjOTU0YzAwMC0wMDAwMGM5NTRkZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYN
CihYRU4pIFsgICAgMy40OTM0MDNdICAwMDAwMGM5NTRlMDAwLTAwMDAwYzk1NTZmZmYgdHlwZT0z
IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICAzLjUwNzI3MV0gIDAwMDAwYzk1NTcw
MDAtMDAwMDBjOTU1YWZmZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAg
IDMuNTIxMTM2XSAgMDAwMDBjOTU1YjAwMC0wMDAwMGM5NTVjZmZmIHR5cGU9MyBhdHRyPTAwMDAw
MDAwMDAwMDAwMGYNCihYRU4pIFsgICAgMy41MzUwMDRdICAwMDAwMGM5NTVkMDAwLTAwMDAwYzk1
NWZmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICAzLjU0ODg3MF0g
IDAwMDAwYzk1NjAwMDAtMDAwMDBjOTU2Y2ZmZiB0eXBlPTMgYXR0cj0wMDAwMDAwMDAwMDAwMDBm
DQooWEVOKSBbICAgIDMuNTYyNzM4XSAgMDAwMDBjOTU2ZDAwMC0wMDAwMGM5N2ZmZmZmIHR5cGU9
NCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgMy41NzY2MDZdICAwMDAwMGM5ODAw
MDAwLTAwMDAwYzk4MWFmZmYgdHlwZT0zIGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAg
ICAzLjU5MDQ3MV0gIDAwMDAwYzk4MWIwMDAtMDAwMDBjOTgyYWZmZiB0eXBlPTQgYXR0cj0wMDAw
MDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDMuNjA0MzM4XSAgMDAwMDBjOTgyYjAwMC0wMDAwMGM5
ODNkZmZmIHR5cGU9MyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgMy42MTgyMDNd
ICAwMDAwMGM5ODNlMDAwLTAwMDAwYzk4M2ZmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAw
Zg0KKFhFTikgWyAgICAzLjYzMjA3M10gIDAwMDAwYzk4NDAwMDAtMDAwMDBjOTg0M2ZmZiB0eXBl
PTMgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDMuNjQ1OTM4XSAgMDAwMDBjOTg0
NDAwMC0wMDAwMGM5ODQ4ZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsg
ICAgMy42NTk4MDRdICAwMDAwMGM5ODQ5MDAwLTAwMDAwYzk4NWJmZmYgdHlwZT0zIGF0dHI9MDAw
MDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICAzLjY3MzY3MV0gIDAwMDAwYzk4NWMwMDAtMDAwMDBj
OTg2MGZmZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDMuNjg3NTQw
XSAgMDAwMDBjOTg2MTAwMC0wMDAwMGM5ODYxZmZmIHR5cGU9MyBhdHRyPTAwMDAwMDAwMDAwMDAw
MGYNCihYRU4pIFsgICAgMy43MDE0MDVdICAwMDAwMGM5ODYyMDAwLTAwMDAwYzk4NjJmZmYgdHlw
ZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICAzLjcxNTI3M10gIDAwMDAwYzk4
NjMwMDAtMDAwMDBjOTg2M2ZmZiB0eXBlPTMgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBb
ICAgIDMuNzI5MTM5XSAgMDAwMDBjOTg2NDAwMC0wMDAwMGM5ODY2ZmZmIHR5cGU9NCBhdHRyPTAw
MDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgMy43NDMwMDZdICAwMDAwMGM5ODY3MDAwLTAwMDAw
Yzk4NzRmZmYgdHlwZT0zIGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICAzLjc1Njg3
Ml0gIDAwMDAwYzk4NzUwMDAtMDAwMDBjOTg3NWZmZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAwMDAw
MDBmDQooWEVOKSBbICAgIDMuNzcwNzQxXSAgMDAwMDBjOTg3NjAwMC0wMDAwMGM5ODc2ZmZmIHR5
cGU9MyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgMy43ODQ2MDZdICAwMDAwMGM5
ODc3MDAwLTAwMDAwYzk4ODJmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikg
WyAgICAzLjc5ODQ3M10gIDAwMDAwYzk4ODMwMDAtMDAwMDBjOTg4YmZmZiB0eXBlPTMgYXR0cj0w
MDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDMuODEyMzQwXSAgMDAwMDBjOTg4YzAwMC0wMDAw
MGM5ODhlZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgMy44MjYy
MDVdICAwMDAwMGM5ODhmMDAwLTAwMDAwYzk4OTRmZmYgdHlwZT0zIGF0dHI9MDAwMDAwMDAwMDAw
MDAwZg0KKFhFTikgWyAgICAzLjg0MDA3NF0gIDAwMDAwYzk4OTUwMDAtMDAwMDBjOThlMWZmZiB0
eXBlPTQgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDMuODUzOTM4XSAgMDAwMDBj
OThlMjAwMC0wMDAwMGM5OTBmZmZmIHR5cGU9MyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4p
IFsgICAgMy44Njc4MDVdICAwMDAwMGM5OTEwMDAwLTAwMDAwYzk5MTFmZmYgdHlwZT00IGF0dHI9
MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICAzLjg4MTY3NF0gIDAwMDAwYzk5MTIwMDAtMDAw
MDBjOTkxM2ZmZiB0eXBlPTMgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDMuODk1
NTQxXSAgMDAwMDBjOTkxNDAwMC0wMDAwMGM5OTE1ZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAw
MDAwMGYNCihYRU4pIFsgICAgMy45MDk0MDhdICAwMDAwMGM5OTE2MDAwLTAwMDAwYzk5MmRmZmYg
dHlwZT0zIGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICAzLjkyMzI3NV0gIDAwMDAw
Yzk5MmUwMDAtMDAwMDBjOTkzOWZmZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVO
KSBbICAgIDMuOTM3MTQxXSAgMDAwMDBjOTkzYTAwMC0wMDAwMGM5OTYwZmZmIHR5cGU9MyBhdHRy
PTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgMy45NTEwMDZdICAwMDAwMGM5OTYxMDAwLTAw
MDAwYzk5NjRmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICAzLjk2
NDg3NF0gIDAwMDAwYzk5NjUwMDAtMDAwMDBjOTk2Y2ZmZiB0eXBlPTMgYXR0cj0wMDAwMDAwMDAw
MDAwMDBmDQooWEVOKSBbICAgIDMuOTc4NzM5XSAgMDAwMDBjOTk2ZDAwMC0wMDAwMGM5OTc0ZmZm
IHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgMy45OTI2MDZdICAwMDAw
MGM5OTc1MDAwLTAwMDAwYzk5N2VmZmYgdHlwZT0zIGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhF
TikgWyAgICA0LjAwNjQ3Nl0gIDAwMDAwYzk5N2YwMDAtMDAwMDBjOTk4OGZmZiB0eXBlPTQgYXR0
cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDQuMDIwMzQxXSAgMDAwMDBjOTk4OTAwMC0w
MDAwMGM5OWFkZmZmIHR5cGU9MyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgNC4w
MzQyMDldICAwMDAwMGM5OWFlMDAwLTAwMDAwYzk5YjdmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAw
MDAwMDAwZg0KKFhFTikgWyAgICA0LjA0ODA3NF0gIDAwMDAwYzk5YjgwMDAtMDAwMDBjOTliOGZm
ZiB0eXBlPTMgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDQuMDYxOTQwXSAgMDAw
MDBjOTliOTAwMC0wMDAwMGM5OWI5ZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihY
RU4pIFsgICAgNC4wNzU4MTBdICAwMDAwMGM5OWJhMDAwLTAwMDAwYzk5YzFmZmYgdHlwZT0zIGF0
dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICA0LjA4OTY3NF0gIDAwMDAwYzk5YzIwMDAt
MDAwMDBjOTljNGZmZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDQu
MTAzNTQyXSAgMDAwMDBjOTljNTAwMC0wMDAwMGM5OWM2ZmZmIHR5cGU9MyBhdHRyPTAwMDAwMDAw
MDAwMDAwMGYNCihYRU4pIFsgICAgNC4xMTc0MDldICAwMDAwMGM5OWM3MDAwLTAwMDAwYzk5Yzdm
ZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICA0LjEzMTI3Nl0gIDAw
MDAwYzk5YzgwMDAtMDAwMDBjOTlkNWZmZiB0eXBlPTMgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQoo
WEVOKSBbICAgIDQuMTQ1MTQxXSAgMDAwMDBjOTlkNjAwMC0wMDAwMGM5OWQ5ZmZmIHR5cGU9NCBh
dHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgNC4xNTkwMDldICAwMDAwMGM5OWRhMDAw
LTAwMDAwYzk5ZGZmZmYgdHlwZT0zIGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICA0
LjE3Mjg3N10gIDAwMDAwYzk5ZTAwMDAtMDAwMDBjOTllNWZmZiB0eXBlPTQgYXR0cj0wMDAwMDAw
MDAwMDAwMDBmDQooWEVOKSBbICAgIDQuMTg2NzQyXSAgMDAwMDBjOTllNjAwMC0wMDAwMGM5OWU2
ZmZmIHR5cGU9MyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgNC4yMDA2MDhdICAw
MDAwMGM5OWU3MDAwLTAwMDAwYzk5ZThmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0K
KFhFTikgWyAgICA0LjIxNDQ3N10gIDAwMDAwYzk5ZTkwMDAtMDAwMDBjOTlmZGZmZiB0eXBlPTMg
YXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDQuMjI4MzQzXSAgMDAwMDBjOTlmZTAw
MC0wMDAwMGM5OWZlZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAg
NC4yNDIyMDhdICAwMDAwMGM5OWZmMDAwLTAwMDAwYzlhMDFmZmYgdHlwZT0zIGF0dHI9MDAwMDAw
MDAwMDAwMDAwZg0KKFhFTikgWyAgICA0LjI1NjA3NV0gIDAwMDAwYzlhMDIwMDAtMDAwMDBjOWEw
MmZmZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDQuMjY5OTQ0XSAg
MDAwMDBjOWEwMzAwMC0wMDAwMGM5YTEyZmZmIHR5cGU9MyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYN
CihYRU4pIFsgICAgNC4yODM4MTFdICAwMDAwMGM5YTEzMDAwLTAwMDAwYzlhMTVmZmYgdHlwZT00
IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICA0LjI5NzY3Nl0gIDAwMDAwYzlhMTYw
MDAtMDAwMDBjOWExN2ZmZiB0eXBlPTMgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAg
IDQuMzExNTQ1XSAgMDAwMDBjOWExODAwMC0wMDAwMGM5YTE5ZmZmIHR5cGU9NCBhdHRyPTAwMDAw
MDAwMDAwMDAwMGYNCihYRU4pIFsgICAgNC4zMjU0MTBdICAwMDAwMGM5YTFhMDAwLTAwMDAwYzlh
MmZmZmYgdHlwZT0zIGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICA0LjMzOTI3N10g
IDAwMDAwYzlhMzAwMDAtMDAwMDBjOWEzMGZmZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAwMDAwMDBm
DQooWEVOKSBbICAgIDQuMzUzMTQzXSAgMDAwMDBjOWEzMTAwMC0wMDAwMGM5YTMxZmZmIHR5cGU9
MyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgNC4zNjcwMTJdICAwMDAwMGM5YTMy
MDAwLTAwMDAwYzlhMzJmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAg
ICA0LjM4MDg3OF0gIDAwMDAwYzlhMzMwMDAtMDAwMDBjOWEzM2ZmZiB0eXBlPTMgYXR0cj0wMDAw
MDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDQuMzk0NzQzXSAgMDAwMDBjOWEzNDAwMC0wMDAwMGM5
YTM0ZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgNC40MDg2MTJd
ICAwMDAwMGM5YTM1MDAwLTAwMDAwYzlhMzVmZmYgdHlwZT0zIGF0dHI9MDAwMDAwMDAwMDAwMDAw
Zg0KKFhFTikgWyAgICA0LjQyMjQ3OF0gIDAwMDAwYzlhMzYwMDAtMDAwMDBjOWEzNmZmZiB0eXBl
PTQgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDQuNDM2MzQ1XSAgMDAwMDBjOWEz
NzAwMC0wMDAwMGM5YTM3ZmZmIHR5cGU9MyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsg
ICAgNC40NTAyMTBdICAwMDAwMGM5YTM4MDAwLTAwMDAwYzlhMzhmZmYgdHlwZT00IGF0dHI9MDAw
MDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICA0LjQ2NDA3N10gIDAwMDAwYzlhMzkwMDAtMDAwMDBj
OWE0YmZmZiB0eXBlPTMgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDQuNDc3OTQ1
XSAgMDAwMDBjOWE0YzAwMC0wMDAwMGM5YTRkZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAwMDAw
MGYNCihYRU4pIFsgICAgNC40OTE4MTJdICAwMDAwMGM5YTRlMDAwLTAwMDAwYzlhNTJmZmYgdHlw
ZT0zIGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICA0LjUwNTY3OV0gIDAwMDAwYzlh
NTMwMDAtMDAwMDBjOWE1N2ZmZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBb
ICAgIDQuNTE5NTQ0XSAgMDAwMDBjOWE1ODAwMC0wMDAwMGM5YTVjZmZmIHR5cGU9MyBhdHRyPTAw
MDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgNC41MzM0MTFdICAwMDAwMGM5YTVkMDAwLTAwMDAw
YzlhNWZmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICA0LjU0NzI3
OF0gIDAwMDAwYzlhNjAwMDAtMDAwMDBjOWE2NmZmZiB0eXBlPTMgYXR0cj0wMDAwMDAwMDAwMDAw
MDBmDQooWEVOKSBbICAgIDQuNTYxMTQ2XSAgMDAwMDBjOWE2NzAwMC0wMDAwMGM5YTY5ZmZmIHR5
cGU9NCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgNC41NzUwMTJdICAwMDAwMGM5
YTZhMDAwLTAwMDAwYzlhNzNmZmYgdHlwZT0zIGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikg
WyAgICA0LjU4ODg3OF0gIDAwMDAwYzlhNzQwMDAtMDAwMDBjOWE4YWZmZiB0eXBlPTQgYXR0cj0w
MDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDQuNjAyNzQ1XSAgMDAwMDBjOWE4YjAwMC0wMDAw
MGM5YTljZmZmIHR5cGU9MyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgNC42MTY2
MTNdICAwMDAwMGM5YTlkMDAwLTAwMDAwYzlhOWRmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAw
MDAwZg0KKFhFTikgWyAgICA0LjYzMDQ4MF0gIDAwMDAwYzlhOWUwMDAtMDAwMDBjOWE5ZmZmZiB0
eXBlPTMgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDQuNjQ0MzQ2XSAgMDAwMDBj
OWFhMDAwMC0wMDAwMGM5YWE3ZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4p
IFsgICAgNC42NTgyMTRdICAwMDAwMGM5YWE4MDAwLTAwMDAwYzlhYThmZmYgdHlwZT0zIGF0dHI9
MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICA0LjY3MjA3OF0gIDAwMDAwYzlhYTkwMDAtMDAw
MDBjOWFhOWZmZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDQuNjg1
OTQ1XSAgMDAwMDBjOWFhYTAwMC0wMDAwMGM5YWFhZmZmIHR5cGU9MyBhdHRyPTAwMDAwMDAwMDAw
MDAwMGYNCihYRU4pIFsgICAgNC42OTk4MTFdICAwMDAwMGM5YWFiMDAwLTAwMDAwYzlhYWNmZmYg
dHlwZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICA0LjcxMzY3OF0gIDAwMDAw
YzlhYWQwMDAtMDAwMDBjOWFiMWZmZiB0eXBlPTMgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVO
KSBbICAgIDQuNzI3NTQ3XSAgMDAwMDBjOWFiMjAwMC0wMDAwMGM5YWIzZmZmIHR5cGU9NCBhdHRy
PTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgNC43NDE0MTJdICAwMDAwMGM5YWI0MDAwLTAw
MDAwYzlhYjdmZmYgdHlwZT0zIGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICA0Ljc1
NTI4MF0gIDAwMDAwYzlhYjgwMDAtMDAwMDBjOWFiOGZmZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAw
MDAwMDBmDQooWEVOKSBbICAgIDQuNzY5MTQ2XSAgMDAwMDBjOWFiOTAwMC0wMDAwMGM5YWJlZmZm
IHR5cGU9MyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgNC43ODMwMTRdICAwMDAw
MGM5YWJmMDAwLTAwMDAwYzlhYmZmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhF
TikgWyAgICA0Ljc5Njg4MF0gIDAwMDAwYzlhYzAwMDAtMDAwMDBjOWFjYmZmZiB0eXBlPTMgYXR0
cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDQuODEwNzQ2XSAgMDAwMDBjOWFjYzAwMC0w
MDAwMGM5YWNjZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgNC44
MjQ2MTVdICAwMDAwMGM5YWNkMDAwLTAwMDAwYzlhY2VmZmYgdHlwZT0zIGF0dHI9MDAwMDAwMDAw
MDAwMDAwZg0KKFhFTikgWyAgICA0LjgzODQ4MF0gIDAwMDAwYzlhY2YwMDAtMDAwMDBjOWFkMGZm
ZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDQuODUyMzQ5XSAgMDAw
MDBjOWFkMTAwMC0wMDAwMGM5YWQxZmZmIHR5cGU9MyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihY
RU4pIFsgICAgNC44NjYyMTRdICAwMDAwMGM5YWQyMDAwLTAwMDAwYzlhZDJmZmYgdHlwZT00IGF0
dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICA0Ljg4MDA4MV0gIDAwMDAwYzlhZDMwMDAt
MDAwMDBjOWFlZWZmZiB0eXBlPTMgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDQu
ODkzOTQ3XSAgMDAwMDBjOWFlZjAwMC0wMDAwMGM5YWYxZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAw
MDAwMDAwMGYNCihYRU4pIFsgICAgNC45MDc4MTVdICAwMDAwMGM5YWYyMDAwLTAwMDAwYzlhZjNm
ZmYgdHlwZT0zIGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICA0LjkyMTY4Ml0gIDAw
MDAwYzlhZjQwMDAtMDAwMDBjOWFmN2ZmZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQoo
WEVOKSBbICAgIDQuOTM1NTQ4XSAgMDAwMDBjOWFmODAwMC0wMDAwMGM5YWZiZmZmIHR5cGU9MyBh
dHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgNC45NDk0MTRdICAwMDAwMGM5YWZjMDAw
LTAwMDAwYzlhZmRmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICA0
Ljk2MzI4MF0gIDAwMDAwYzlhZmUwMDAtMDAwMDBjOWIwN2ZmZiB0eXBlPTMgYXR0cj0wMDAwMDAw
MDAwMDAwMDBmDQooWEVOKSBbICAgIDQuOTc3MTQ3XSAgMDAwMDBjOWIwODAwMC0wMDAwMGM5ZjA3
ZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgNC45OTEwMTZdICAw
MDAwMGM5ZjA4MDAwLTAwMDAwYzlmMjdmZmYgdHlwZT0zIGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0K
KFhFTikgWyAgICA1LjAwNDg4Ml0gIDAwMDAwYzlmMjgwMDAtMDAwMDBjOWYyOWZmZiB0eXBlPTQg
YXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDUuMDE4NzQ4XSAgMDAwMDBjOWYyYTAw
MC0wMDAwMGM5ZjJiZmZmIHR5cGU9MyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAg
NS4wMzI2MTVdICAwMDAwMGM5ZjJjMDAwLTAwMDAwYzlmMmRmZmYgdHlwZT00IGF0dHI9MDAwMDAw
MDAwMDAwMDAwZg0KKFhFTikgWyAgICA1LjA0NjQ4M10gIDAwMDAwYzlmMmUwMDAtMDAwMDBjOWYy
ZWZmZiB0eXBlPTMgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDUuMDYwMzQ5XSAg
MDAwMDBjOWYyZjAwMC0wMDAwMGM5ZjJmZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYN
CihYRU4pIFsgICAgNS4wNzQyMTZdICAwMDAwMGM5ZjMwMDAwLTAwMDAwYzlmMzBmZmYgdHlwZT0z
IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICA1LjA4ODA4Ml0gIDAwMDAwYzlmMzEw
MDAtMDAwMDBjOWYzMWZmZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAg
IDUuMTAxOTUwXSAgMDAwMDBjOWYzMjAwMC0wMDAwMGM5ZjM2ZmZmIHR5cGU9MyBhdHRyPTAwMDAw
MDAwMDAwMDAwMGYNCihYRU4pIFsgICAgNS4xMTU4MTVdICAwMDAwMGM5ZjM3MDAwLTAwMDAwYzlm
M2FmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICA1LjEyOTY4M10g
IDAwMDAwYzlmM2IwMDAtMDAwMDBjOWYzYmZmZiB0eXBlPTMgYXR0cj0wMDAwMDAwMDAwMDAwMDBm
DQooWEVOKSBbICAgIDUuMTQzNTUwXSAgMDAwMDBjOWYzYzAwMC0wMDAwMGM5ZjNjZmZmIHR5cGU9
NCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgNS4xNTc0MTZdICAwMDAwMGM5ZjNk
MDAwLTAwMDAwYzlmM2RmZmYgdHlwZT0zIGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAg
ICA1LjE3MTI4NF0gIDAwMDAwYzlmM2UwMDAtMDAwMDBjYTQxMWZmZiB0eXBlPTQgYXR0cj0wMDAw
MDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDUuMTg1MTUwXSAgMDAwMDBjYTQxMjAwMC0wMDAwMGNh
NDEzZmZmIHR5cGU9MyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgNS4xOTkwMThd
ICAwMDAwMGNhNDE0MDAwLTAwMDAwY2E0MTVmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAw
Zg0KKFhFTikgWyAgICA1LjIxMjg4Ml0gIDAwMDAwY2E0MTYwMDAtMDAwMDBjYTQxY2ZmZiB0eXBl
PTMgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDUuMjI2NzUwXSAgMDAwMDBjYTQx
ZDAwMC0wMDAwMGNhNDFkZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsg
ICAgNS4yNDA2MTZdICAwMDAwMGNhNDFlMDAwLTAwMDAwY2E0MWVmZmYgdHlwZT0zIGF0dHI9MDAw
MDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICA1LjI1NDQ4NF0gIDAwMDAwY2E0MWYwMDAtMDAwMDBj
YTQ4OGZmZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDUuMjY4MzUx
XSAgMDAwMDBjYTQ4OTAwMC0wMDAwMGNhNDg5ZmZmIHR5cGU9MyBhdHRyPTAwMDAwMDAwMDAwMDAw
MGYNCihYRU4pIFsgICAgNS4yODIyMTZdICAwMDAwMGNhNDhhMDAwLTAwMDAwY2E0OGJmZmYgdHlw
ZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICA1LjI5NjA4M10gIDAwMDAwY2E0
OGMwMDAtMDAwMDBjYTQ4Y2ZmZiB0eXBlPTMgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBb
ICAgIDUuMzA5OTUxXSAgMDAwMDBjYTQ4ZDAwMC0wMDAwMGNhNDkxZmZmIHR5cGU9NCBhdHRyPTAw
MDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgNS4zMjM4MTZdICAwMDAwMGNhNDkyMDAwLTAwMDAw
Y2E0OTRmZmYgdHlwZT0zIGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICA1LjMzNzY4
NF0gIDAwMDAwY2E0OTUwMDAtMDAwMDBjYWJjOGZmZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAwMDAw
MDBmDQooWEVOKSBbICAgIDUuMzUxNTUxXSAgMDAwMDBjYWJjOTAwMC0wMDAwMGNjMTRjZmZmIHR5
cGU9MCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgNS4zNjU0MTddICAwMDAwMGNj
MTRkMDAwLTAwMDAwY2MxOTVmZmYgdHlwZT05IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikg
WyAgICA1LjM3OTI4Nl0gIDAwMDAwY2MxOTYwMDAtMDAwMDBjYzM4OGZmZiB0eXBlPTEwIGF0dHI9
MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICA1LjM5MzMyM10gIDAwMDAwY2MzODkwMDAtMDAw
MDBjYzM4OWZmZiB0eXBlPTAgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDUuNDA3
MTkxXSAgMDAwMDBjYzM4YTAwMC0wMDAwMGNjNzA5ZmZmIHR5cGU9MTAgYXR0cj0wMDAwMDAwMDAw
MDAwMDBmDQooWEVOKSBbICAgIDUuNDIxMjMzXSAgMDAwMDBjYzcwYTAwMC0wMDAwMGNkMTc5ZmZm
IHR5cGU9NiBhdHRyPTgwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgNS40MzUwOThdICAwMDAw
MGNkMTdhMDAwLTAwMDAwY2QxZmVmZmYgdHlwZT01IGF0dHI9ODAwMDAwMDAwMDAwMDAwZg0KKFhF
TikgWyAgICA1LjQ0ODk2NF0gIDAwMDAwY2QxZmYwMDAtMDAwMDBjZDdmZmZmZiB0eXBlPTQgYXR0
cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDUuNDYyODMxXSAgMDAwMDBjZDgwMDAwMC0w
MDAwMGNkOGU5ZmZmIHR5cGU9NyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgNS40
NzY2OTldICAwMDAwMGNkOGVhMDAwLTAwMDAwY2Q5ZTlmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAw
MDAwMDAwZg0KKFhFTikgWyAgICA1LjQ5MDU2Nl0gIDAwMDAwY2Q5ZWEwMDAtMDAwMDBjZGEwNWZm
ZiB0eXBlPTMgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDUuNTA0NDMzXSAgMDAw
MDBjZGEwNjAwMC0wMDAwMGNkYTMxZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihY
RU4pIFsgICAgNS41MTgyOThdICAwMDAwMGNkYTMyMDAwLTAwMDAwY2RhNDRmZmYgdHlwZT0zIGF0
dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICA1LjUzMjE2N10gIDAwMDAwY2RhNDUwMDAt
MDAwMDBjZGY1N2ZmZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDUu
NTQ2MDMzXSAgMDAwMDBjZGY1ODAwMC0wMDAwMGNkZjVhZmZmIHR5cGU9MyBhdHRyPTAwMDAwMDAw
MDAwMDAwMGYNCihYRU4pIFsgICAgNS41NTk5MDBdICAwMDAwMGNkZjViMDAwLTAwMDAwY2RmNmRm
ZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICA1LjU3Mzc2NV0gIDAw
MDAwY2RmNmUwMDAtMDAwMDBjZGY3N2ZmZiB0eXBlPTMgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQoo
WEVOKSBbICAgIDUuNTg3NjM0XSAgMDAwMDBjZGY3ODAwMC0wMDAwMGNkZjkxZmZmIHR5cGU9NCBh
dHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgNS42MDE1MDFdICAwMDAwMGNkZjkyMDAw
LTAwMDAwY2RmOTdmZmYgdHlwZT0zIGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICA1
LjYxNTM2Nl0gIDAwMDAwY2RmOTgwMDAtMDAwMDBjZGZhZGZmZiB0eXBlPTQgYXR0cj0wMDAwMDAw
MDAwMDAwMDBmDQooWEVOKSBbICAgIDUuNjI5MjM0XSAgMDAwMDBjZGZhZTAwMC0wMDAwMGNkZmIx
ZmZmIHR5cGU9MyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgNS42NDMxMDBdICAw
MDAwMGNkZmIyMDAwLTAwMDAwY2RmYzVmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0K
KFhFTikgWyAgICA1LjY1Njk2NV0gIDAwMDAwY2RmYzYwMDAtMDAwMDBjZGZjYWZmZiB0eXBlPTMg
YXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDUuNjcwODMzXSAgMDAwMDBjZGZjYjAw
MC0wMDAwMGNkZmRmZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAg
NS42ODQ3MDFdICAwMDAwMGNkZmUwMDAwLTAwMDAwY2RmZjFmZmYgdHlwZT0zIGF0dHI9MDAwMDAw
MDAwMDAwMDAwZg0KKFhFTikgWyAgICA1LjY5ODU2OF0gIDAwMDAwY2RmZjIwMDAtMDAwMDBjZGZm
OWZmZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDUuNzEyNDMzXSAg
MDAwMDBjZGZmYTAwMC0wMDAwMGNkZmZmZmZmIHR5cGU9MyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYN
CihYRU4pIFsgICAgNS43MjYyOTldICAwMDAwMTAwMDAwMDAwLTAwMDA4MGYzM2ZmZmYgdHlwZT03
IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICA1Ljc0MDE2N10gIDAwMDAwMDAwYTAw
MDAtMDAwMDAwMDBmZmZmZiB0eXBlPTAgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAg
IDUuNzU0MDM2XSAgMDAwMDBjZTAwMDAwMC0wMDAwMGNmZmZmZmZmIHR5cGU9MCBhdHRyPTAwMDAw
MDAwMDAwMDAwMGYNCihYRU4pIFsgICAgNS43Njc5MDJdICAwMDAwMGYwMDAwMDAwLTAwMDAwZjdm
ZmZmZmYgdHlwZT0xMSBhdHRyPTgwMDAwMDAwMDAwMDEwMGQNCihYRU4pIFsgICAgNS43ODE5NDBd
ICAwMDAwMGZkMDAwMDAwLTAwMDAwZmVkZmZmZmYgdHlwZT0xMSBhdHRyPTgwMDAwMDAwMDAwMDEw
MGQNCihYRU4pIFsgICAgNS43OTU5ODJdICAwMDAwMGZlZTAwMDAwLTAwMDAwZmVlMDBmZmYgdHlw
ZT0xMSBhdHRyPTgwMDAwMDAwMDAwMDAwMDENCihYRU4pIFsgICAgNS44MTAwMjFdICAwMDAwMGZl
ZTAxMDAwLTAwMDAwZmZmZmZmZmYgdHlwZT0xMSBhdHRyPTgwMDAwMDAwMDAwMDEwMGQNCihYRU4p
IFsgICAgNS44MjQwNjFdICAwMDAwODBmMzQwMDAwLTAwMDA4MmZmZmZmZmYgdHlwZT0wIGF0dHI9
MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICA1LjgzNzkyOF0gIDAwMDA4MzAwMDAwMDAtMDAw
MDg1MDFmZmZmZiB0eXBlPTExIGF0dHI9ODAwMDAwMDAwMDAwMTAwZA0KKFhFTikgWyAgICA1Ljg1
MTk2N10gYWx0IHRhYmxlIGZmZmY4MmQwNDA0YTFmZjggLT4gZmZmZjgyZDA0MDRiM2VmOA0KKFhF
TikgWyAgICA1Ljg3NzE2Ml0gQU1ELVZpOiBJT01NVSBFeHRlbmRlZCBGZWF0dXJlczoNCihYRU4p
IFsgICAgNS44ODY2OTZdIC0gUGVyaXBoZXJhbCBQYWdlIFNlcnZpY2UgUmVxdWVzdA0KKFhFTikg
WyAgICA1Ljg5NjQwMl0gLSB4MkFQSUMNCihYRU4pIFsgICAgNS45MDE3NzRdIC0gTlggYml0DQoo
WEVOKSBbICAgIDUuOTA3MTUwXSAtIEludmFsaWRhdGUgQWxsIENvbW1hbmQNCihYRU4pIFsgICAg
NS45MTUyOTVdIC0gR3Vlc3QgQVBJQw0KKFhFTikgWyAgICA1LjkyMTM2Ml0gLSBQZXJmb3JtYW5j
ZSBDb3VudGVycw0KKFhFTikgWyAgICA1LjkyOTE2NF0gLSBIb3N0IEFkZHJlc3MgVHJhbnNsYXRp
b24gU2l6ZTogMHgyDQooWEVOKSBbICAgIDUuOTM5Mzg4XSAtIEd1ZXN0IEFkZHJlc3MgVHJhbnNs
YXRpb24gU2l6ZTogMA0KKFhFTikgWyAgICA1Ljk0OTQ0Ml0gLSBHdWVzdCBDUjMgUm9vdCBUYWJs
ZSBMZXZlbDogMHgxDQooWEVOKSBbICAgIDUuOTU5MTQ5XSAtIE1heGltdW0gUEFTSUQ6IDB4Zg0K
KFhFTikgWyAgICA1Ljk2NjYwNF0gLSBTTUkgRmlsdGVyIFJlZ2lzdGVyOiAweDENCihYRU4pIFsg
ICAgNS45NzUwOTZdIC0gU01JIEZpbHRlciBSZWdpc3RlciBDb3VudDogMHgxDQooWEVOKSBbICAg
IDUuOTg0NjMwXSAtIEd1ZXN0IFZpcnR1YWwgQVBJQyBNb2RlczogMHgxDQooWEVOKSBbICAgIDUu
OTkzOTkwXSAtIER1YWwgUFBSIExvZzogMHgyDQooWEVOKSBbICAgIDYuMDAxMjY5XSAtIER1YWwg
RXZlbnQgTG9nOiAweDINCihYRU4pIFsgICAgNi4wMDg4OTddIC0gVXNlciAvIFN1cGVydmlzb3Ig
UGFnZSBQcm90ZWN0aW9uDQooWEVOKSBbICAgIDYuMDE4OTQ5XSAtIERldmljZSBUYWJsZSBTZWdt
ZW50YXRpb246IDB4Mw0KKFhFTikgWyAgICA2LjAyODQ4NV0gLSBQUFIgTG9nIE92ZXJmbG93IEVh
cmx5IFdhcm5pbmcNCihYRU4pIFsgICAgNi4wMzgwMTZdIC0gUFBSIEF1dG9tYXRpYyBSZXNwb25z
ZQ0KKFhFTikgWyAgICA2LjA0NjE2NF0gLSBNZW1vcnkgQWNjZXNzIFJvdXRpbmcgYW5kIENvbnRy
b2w6IDANCihYRU4pIFsgICAgNi4wNTY3MzZdIC0gQmxvY2sgU3RvcE1hcmsgTWVzc2FnZQ0KKFhF
TikgWyAgICA2LjA2NDg4NV0gLSBQZXJmb3JtYW5jZSBPcHRpbWl6YXRpb24NCihYRU4pIFsgICAg
Ni4wNzMzNzhdIC0gTVNJIENhcGFiaWxpdHkgTU1JTyBBY2Nlc3MNCihYRU4pIFsgICAgNi4wODIy
MThdIC0gR3Vlc3QgSS9PIFByb3RlY3Rpb24NCihYRU4pIFsgICAgNi4wOTAwMTZdIC0gRW5oYW5j
ZWQgUFBSIEhhbmRsaW5nDQooWEVOKSBbICAgIDYuMDk3OTkxXSAtIEF0dHJpYnV0ZSBGb3J3YXJk
DQooWEVOKSBbICAgIDYuMTA1MjY5XSAtIEludmFsaWRhdGUgSU9UTEIgVHlwZQ0KKFhFTikgWyAg
ICA2LjExMzI0NF0gLSBWTSBUYWJsZSBTaXplOiAwDQooWEVOKSBbICAgIDYuMTIwMzUxXSAtIEd1
ZXN0IEFjY2VzcyBCaXQgVXBkYXRlIERpc2FibGUNCihYRU4pIFsgICAgNi4xNDExODZdIEFNRC1W
aTogRGlzYWJsZWQgSEFQIG1lbW9yeSBtYXAgc2hhcmluZyB3aXRoIElPTU1VDQooWEVOKSBbICAg
IDYuMTUzODQwXSBBTUQtVmk6IElPTU1VIDAgRW5hYmxlZC4NCihYRU4pIFsgICAgNi4xNjE5ODVd
IEkvTyB2aXJ0dWFsaXNhdGlvbiBlbmFibGVkDQooWEVOKSBbICAgIDYuMTcwNDc4XSAgLSBEb20w
IG1vZGU6IFJlbGF4ZWQNCihYRU4pIFsgICAgNi4xNzgxMDVdIEludGVycnVwdCByZW1hcHBpbmcg
ZW5hYmxlZA0KKFhFTikgWyAgICA2LjE4Njc3Ml0gbnJfc29ja2V0czogMQ0KKFhFTikgWyAgICA2
LjE5MzAxMl0gRW5hYmxpbmcgQVBJQyBtb2RlLiAgVXNpbmcgMiBJL08gQVBJQ3MNCihYRU4pIFsg
ICAgNi4yMDQwMjddIEVOQUJMSU5HIElPLUFQSUMgSVJRcw0KKFhFTikgWyAgICA2LjIxMTY1NV0g
IC0+IFVzaW5nIG5ldyBBQ0sgbWV0aG9kDQooWEVOKSBbICAgIDYuMjE5ODAxXSAuLlRJTUVSOiB2
ZWN0b3I9MHhGMCBhcGljMT0wIHBpbjE9MiBhcGljMj0tMSBwaW4yPS0xDQooWEVOKSBbICAgIDYu
MzgyNDg1XSBXYWxsY2xvY2sgc291cmNlOiBDTU9TIFJUQw0KKFhFTikgWyAgICA3LjM2NTYxMl0g
QWxsb2NhdGVkIGNvbnNvbGUgcmluZyBvZiAxMjggS2lCLg0KKFhFTikgWyAgICA3LjM3NTQ5NF0g
bXdhaXQtaWRsZTogZG9lcyBub3QgcnVuIG9uIGZhbWlseSAyMyBtb2RlbCA5Ng0KKFhFTikgWyAg
ICA3LjM4NzQ1NF0gSFZNOiBBU0lEcyBlbmFibGVkLg0KKFhFTikgWyAgICA3LjM5NDczMl0gU1ZN
OiBTdXBwb3J0ZWQgYWR2YW5jZWQgZmVhdHVyZXM6DQooWEVOKSBbICAgIDcuNDA0NDM5XSAgLSBO
ZXN0ZWQgUGFnZSBUYWJsZXMgKE5QVCkNCihYRU4pIFsgICAgNy40MTMxMDZdICAtIExhc3QgQnJh
bmNoIFJlY29yZCAoTEJSKSBWaXJ0dWFsaXNhdGlvbg0KKFhFTikgWyAgICA3LjQyNDM3Ml0gIC0g
TmV4dC1SSVAgU2F2ZWQgb24gI1ZNRVhJVA0KKFhFTikgWyAgICA3LjQzMzIxNF0gIC0gVk1DQiBD
bGVhbiBCaXRzDQooWEVOKSBbICAgIDcuNDQwMzIwXSAgLSBUTEIgZmx1c2ggYnkgQVNJRA0KKFhF
TikgWyAgICA3LjQ0Nzc3NV0gIC0gRGVjb2RlQXNzaXN0cw0KKFhFTikgWyAgICA3LjQ1NDUzM10g
IC0gVmlydHVhbCBWTUxPQUQvVk1TQVZFDQooWEVOKSBbICAgIDcuNDYyNjc5XSAgLSBWaXJ0dWFs
IEdJRg0KKFhFTikgWyAgICA3LjQ2OTA5Ml0gIC0gUGF1c2UtSW50ZXJjZXB0IEZpbHRlcg0KKFhF
TikgWyAgICA3LjQ3NzQxNV0gIC0gUGF1c2UtSW50ZXJjZXB0IEZpbHRlciBUaHJlc2hvbGQNCihY
RU4pIFsgICAgNy40ODc0NjddICAtIFRTQyBSYXRlIE1TUg0KKFhFTikgWyAgICA3LjQ5NDA1NV0g
IC0gTVNSX1NQRUNfQ1RSTCB2aXJ0dWFsaXNhdGlvbg0KKFhFTikgWyAgICA3LjUwMzQxNF0gSFZN
OiBTVk0gZW5hYmxlZA0KKFhFTikgWyAgICA3LjUxMDE3NV0gSFZNOiBIYXJkd2FyZSBBc3Npc3Rl
ZCBQYWdpbmcgKEhBUCkgZGV0ZWN0ZWQNCihYRU4pIFsgICAgNy41MjE3ODhdIEhWTTogSEFQIHBh
Z2Ugc2l6ZXM6IDRrQiwgMk1CLCAxR0INCihYRU4pIFsgICAgNy44MzgwOTBdIEJyb3VnaHQgdXAg
MTYgQ1BVcw0KKFhFTikgWyAgICA3Ljg0NjAyOV0gU2NoZWR1bGluZyBncmFudWxhcml0eTogY3B1
LCAxIENQVSBwZXIgc2NoZWQtcmVzb3VyY2UNCihYRU4pIFsgICAgNy44NTkyMDNdIEluaXRpYWxp
emluZyBudWxsIHNjaGVkdWxlcg0KKFhFTikgWyAgICA3Ljg2Nzg3Ml0gV0FSTklORzogVGhpcyBp
cyBleHBlcmltZW50YWwgc29mdHdhcmUgaW4gZGV2ZWxvcG1lbnQuDQooWEVOKSBbICAgIDcuODgx
MjE4XSBVc2UgYXQgeW91ciBvd24gcmlzay4NCihYRU4pIFsgICAgNy44ODg4NDVdIG1jaGVja19w
b2xsOiBNYWNoaW5lIGNoZWNrIHBvbGxpbmcgdGltZXIgc3RhcnRlZC4NCihYRU4pIFsgICAgNy45
MDEzMjRdIFJ1bm5pbmcgc3R1YiByZWNvdmVyeSBzZWxmdGVzdHMuLi4NCihYRU4pIFsgICAgNy45
MTExOTldIEZpeHVwICNVRFswMDAwXTogZmZmZjgyZDA3ZmZmZTA0NCBbZmZmZjgyZDA3ZmZmZTA0
NF0gLT4gZmZmZjgyZDA0MDM4ZjllMA0KKFhFTikgWyAgICA3LjkyNzY2Nl0gRml4dXAgI0dQWzAw
MDBdOiBmZmZmODJkMDdmZmZlMDQ1IFtmZmZmODJkMDdmZmZlMDQ1XSAtPiBmZmZmODJkMDQwMzhm
OWUwDQooWEVOKSBbICAgIDcuOTQ0MTM2XSBGaXh1cCAjU1NbMDAwMF06IGZmZmY4MmQwN2ZmZmUw
NDQgW2ZmZmY4MmQwN2ZmZmUwNDRdIC0+IGZmZmY4MmQwNDAzOGY5ZTANCihYRU4pIFsgICAgNy45
NjA2MDBdIEZpeHVwICNCUFswMDAwXTogZmZmZjgyZDA3ZmZmZTA0NSBbZmZmZjgyZDA3ZmZmZTA0
NV0gLT4gZmZmZjgyZDA0MDM4ZjllMA0KKFhFTikgWyAgICA3Ljk5NjgxMl0gTlggKEV4ZWN1dGUg
RGlzYWJsZSkgcHJvdGVjdGlvbiBhY3RpdmUNCihYRU4pIFsgICAgOC4wMDczODddIGQwIGhhcyBt
YXhpbXVtIDMzMjggUElSUXMNCihYRU4pIFsgICAgOC4wMTU3NDFdICoqKiBCdWlsZGluZyBhIFBW
SCBEb20wICoqKg0KKFhFTikgWyAgICA4LjAyODI1N10gZDA6IGlkZW50aXR5IG1hcHBpbmdzIGZv
ciBJT01NVToNCihYRU4pIFsgICAgOC4wMzc3ODldICBbMDAwMDAwMDBhMCwgMDAwMDAwMDBmZl0g
UlcNCihYRU4pIFsgICAgOC4wNDY2MzFdICBbMDAwMDAwOWJmZiwgMDAwMDAwOWZmZl0gUlcNCihY
RU4pIFsgICAgOC4wNTU0NjldICBbMDAwMDBjYWJjOSwgMDAwMDBjYzE0Y10gUlcNCihYRU4pIFsg
ICAgOC4wNjQ0MzldICBbMDAwMDBjYzM4OSwgMDAwMDBjYzM4OV0gUlcNCihYRU4pIFsgICAgOC4w
NzMyODFdICBbMDAwMDBjYzcwYSwgMDAwMDBjZDFmZV0gUlcNCihYRU4pIFsgICAgOC4wODI2MzFd
ICBbMDAwMDBjZTAwMCwgMDAwMDBjZmZmZl0gUlcNCihYRU4pIFsgICAgOC4wOTE0NzNdICBbMDAw
MDBmZDAwMCwgMDAwMDBmZDJmZl0gUlcNCihYRU4pIFsgICAgOC4xMDAzMTFdICBbMDAwMDBmZDMw
NCwgMDAwMDBmZWJmZl0gUlcNCihYRU4pIFsgICAgOC4xMDkxNTBdICBbMDAwMDBmZWMwMiwgMDAw
MDBmZWRmZl0gUlcNCihYRU4pIFsgICAgOC4xMTgyMzRdICBbMDAwMDBmZWUwMSwgMDAwMDBmZmZm
Zl0gUlcNCihYRU4pIFsgICAgOC4xMjczMzJdICBbMDAwMDgwZjM0MCwgMDAwMDg1MDFmZl0gUlcN
CihYRU4pIFsgICAgOC4xMzcxNzNdIDAwMDA6MDI6MDAuMDogbm90IG1hcHBpbmcgQkFSIFtmZWEw
MCwgZmVhMDNdIGludmFsaWQgcG9zaXRpb24NCihYRU4pIFsgICAgOC4xNTE3MzBdIDAwMDA6MDM6
MDAuMDogbm90IG1hcHBpbmcgQkFSIFtmZTkwMCwgZmU5MGZdIGludmFsaWQgcG9zaXRpb24NCihY
RU4pIFsgICAgOC4xNjYyOTFdIDAwMDA6MDM6MDAuMDogbm90IG1hcHBpbmcgQkFSIFtmZTkxMCwg
ZmU5MTNdIGludmFsaWQgcG9zaXRpb24NCihYRU4pIFsgICAgOC4xODA4NTFdIDAwMDA6MDQ6MDAu
MDogbm90IG1hcHBpbmcgQkFSIFtmZTcwMCwgZmU3N2ZdIGludmFsaWQgcG9zaXRpb24NCihYRU4p
IFsgICAgOC4xOTU0MTldIDAwMDA6MDQ6MDAuMzogbm90IG1hcHBpbmcgQkFSIFtmZTUwMCwgZmU1
ZmZdIGludmFsaWQgcG9zaXRpb24NCihYRU4pIFsgICAgOC4yMDk5ODJdIDAwMDA6MDQ6MDAuNDog
bm90IG1hcHBpbmcgQkFSIFtmZTQwMCwgZmU0ZmZdIGludmFsaWQgcG9zaXRpb24NCihYRU4pIFsg
ICAgOC4yMjQ1NDJdIDAwMDA6MDU6MDAuMDogbm90IG1hcHBpbmcgQkFSIFtmZTgwMSwgZmU4MDFd
IGludmFsaWQgcG9zaXRpb24NCihYRU4pIFsgICAgOC4yMzkxMDBdIDAwMDA6MDU6MDAuMTogbm90
IG1hcHBpbmcgQkFSIFtmZTgwMCwgZmU4MDBdIGludmFsaWQgcG9zaXRpb24NCihYRU4pIFsgICAg
OC4zODI0MDVdIERvbTAgbWVtb3J5IGFsbG9jYXRpb24gc3RhdHM6DQooWEVOKSBbICAgIDguMzkx
NDIwXSBvcmRlciAgMCBhbGxvY2F0aW9uczogNA0KKFhFTikgWyAgICA4LjM5OTM5MV0gb3JkZXIg
IDEgYWxsb2NhdGlvbnM6IDINCihYRU4pIFsgICAgOC40MDczNjNdIG9yZGVyICAyIGFsbG9jYXRp
b25zOiAyDQooWEVOKSBbICAgIDguNDE1MzM4XSBvcmRlciAgMyBhbGxvY2F0aW9uczogMg0KKFhF
TikgWyAgICA4LjQyMzMxMl0gb3JkZXIgIDQgYWxsb2NhdGlvbnM6IDINCihYRU4pIFsgICAgOC40
MzEyODZdIG9yZGVyICA1IGFsbG9jYXRpb25zOiA0DQooWEVOKSBbICAgIDguNDM5MjYwXSBvcmRl
ciAgNiBhbGxvY2F0aW9uczogMw0KKFhFTikgWyAgICA4LjQ0NzIzNF0gb3JkZXIgIDcgYWxsb2Nh
dGlvbnM6IDUNCihYRU4pIFsgICAgOC40NTUyMDddIG9yZGVyICA4IGFsbG9jYXRpb25zOiA0DQoo
WEVOKSBbICAgIDguNDYzMTc4XSBvcmRlciAgOSBhbGxvY2F0aW9uczogNg0KKFhFTikgWyAgICA4
LjQ3MTE1Ml0gb3JkZXIgMTAgYWxsb2NhdGlvbnM6IDMNCihYRU4pIFsgICAgOC40NzkxMjZdIG9y
ZGVyIDExIGFsbG9jYXRpb25zOiA2DQooWEVOKSBbICAgIDguNDg3MDk5XSBvcmRlciAxMiBhbGxv
Y2F0aW9uczogMw0KKFhFTikgWyAgICA4LjQ5NTA3MV0gb3JkZXIgMTMgYWxsb2NhdGlvbnM6IDIN
CihYRU4pIFsgICAgOC41MDMwNDRdIG9yZGVyIDE0IGFsbG9jYXRpb25zOiAzDQooWEVOKSBbICAg
IDguNTExMDE5XSBvcmRlciAxNSBhbGxvY2F0aW9uczogMQ0KKFhFTikgWyAgICA4LjUxODk5Ml0g
b3JkZXIgMTYgYWxsb2NhdGlvbnM6IDINCihYRU4pIFsgICAgOC41MjY5NjVdIG9yZGVyIDE3IGFs
bG9jYXRpb25zOiAyDQooWEVOKSBbICAgIDguNTM0OTQzXSBvcmRlciAxOCBhbGxvY2F0aW9uczog
Mg0KKFhFTikgWyAgICA4Ljg4NDAyMF0gRUxGOiBwaGRyOiBwYWRkcj0weDEwMDAwMDAgbWVtc3o9
MHgxYjJjMGQ4DQooWEVOKSBbICAgIDguODk1Mjg3XSBFTEY6IHBoZHI6IHBhZGRyPTB4MmMwMDAw
MCBtZW1zej0weDg5OTAwMA0KKFhFTikgWyAgICA4LjkwNjM3N10gRUxGOiBwaGRyOiBwYWRkcj0w
eDM0OTkwMDAgbWVtc3o9MHgzMDAxOA0KKFhFTikgWyAgICA4LjkxNzI5OV0gRUxGOiBwaGRyOiBw
YWRkcj0weDM0Y2EwMDAgbWVtc3o9MHg1NjYwMDANCihYRU4pIFsgICAgOC45MjgzOTNdIEVMRjog
bWVtb3J5OiAweDEwMDAwMDAgLT4gMHgzYTMwMDAwDQooWEVOKSBbICAgIDguOTM4NDQ3XSBFTEY6
IG5vdGU6IFBIWVMzMl9SRUxPQyBhbGlnbjogMHgyMDAwMDAgbWluOiAweDEwMDAwMDAgbWF4OiAw
eDNmZmZmZmZmDQooWEVOKSBbICAgIDguOTU0NTY0XSBFTEY6IG5vdGU6IFBIWVMzMl9FTlRSWSA9
IDB4MTAwMDAwMA0KKFhFTikgWyAgICA4Ljk2NDYxOV0gRUxGOiBub3RlOiBHVUVTVF9PUyA9ICJs
aW51eCINCihYRU4pIFsgICAgOC45NzM2MzJdIEVMRjogbm90ZTogR1VFU1RfVkVSU0lPTiA9ICIy
LjYiDQooWEVOKSBbICAgIDguOTgzMTY3XSBFTEY6IG5vdGU6IFhFTl9WRVJTSU9OID0gInhlbi0z
LjAiDQooWEVOKSBbICAgIDguOTkzMDQ2XSBFTEY6IG5vdGU6IFZJUlRfQkFTRSA9IDB4ZmZmZmZm
ZmY4MDAwMDAwMA0KKFhFTikgWyAgICA5LjAwNDEzOF0gRUxGOiBub3RlOiBJTklUX1AyTSA9IDB4
ODAwMDAwMDAwMA0KKFhFTikgWyAgICA5LjAxNDAxOV0gRUxGOiBub3RlOiBFTlRSWSA9IDB4ZmZm
ZmZmZmY4MzRkYzk0MA0KKFhFTikgWyAgICA5LjAyNDQxNl0gRUxGOiBub3RlOiBGRUFUVVJFUyA9
ICIhd3JpdGFibGVfcGFnZV90YWJsZXMiDQooWEVOKSBbICAgIDkuMDM2MjA1XSBFTEY6IG5vdGU6
IFBBRV9NT0RFID0gInllcyINCihYRU4pIFsgICAgOS4wNDQ4NjhdIEVMRjogbm90ZTogTDFfTUZO
X1ZBTElEDQooWEVOKSBbICAgIDkuMDUyODQ3XSBFTEY6IG5vdGU6IE1PRF9TVEFSVF9QRk4gPSAw
eDENCihYRU4pIFsgICAgOS4wNjIwMzJdIEVMRjogbm90ZTogUEFERFJfT0ZGU0VUID0gMA0KKFhF
TikgWyAgICA5LjA3MDY5N10gRUxGOiBub3RlOiBIWVBFUkNBTExfUEFHRSA9IDB4ZmZmZmZmZmY4
MjAzYjAwMA0KKFhFTikgWyAgICA5LjA4MjY1OF0gRUxGOiBub3RlOiBTVVBQT1JURURfRkVBVFVS
RVMgPSAweDg4MDENCihYRU4pIFsgICAgOS4wOTMyMzNdIEVMRjogbm90ZTogTE9BREVSID0gImdl
bmVyaWMiDQooWEVOKSBbICAgIDkuMTAyMjQ4XSBFTEY6IG5vdGU6IFNVU1BFTkRfQ0FOQ0VMID0g
MHgxDQooWEVOKSBbICAgIDkuMTExNjA4XSBFTEY6IEZvdW5kIFBWSCBpbWFnZQ0KKFhFTikgWyAg
ICA5LjExOTA1OF0gRUxGOiBhZGRyZXNzZXM6DQooWEVOKSBbICAgIDkuMTI1NjQzXSAgICAgdmly
dF9iYXNlICAgICAgICA9IDB4MA0KKFhFTikgWyAgICA5LjEzNDE0MV0gICAgIGVsZl9wYWRkcl9v
ZmZzZXQgPSAweDANCihYRU4pIFsgICAgOS4xNDI2MzRdICAgICB2aXJ0X29mZnNldCAgICAgID0g
MHgwDQooWEVOKSBbICAgIDkuMTUxMTI0XSAgICAgdmlydF9rc3RhcnQgICAgICA9IDB4MTAwMDAw
MA0KKFhFTikgWyAgICA5LjE2MDY1OV0gICAgIHZpcnRfa2VuZCAgICAgICAgPSAweDNhMzAwMDAN
CihYRU4pIFsgICAgOS4xNzAxODldICAgICB2aXJ0X2VudHJ5ICAgICAgID0gMHgxMDAwMDAwDQoo
WEVOKSBbICAgIDkuMTc5NzI3XSAgICAgcDJtX2Jhc2UgICAgICAgICA9IDB4ODAwMDAwMDAwMA0K
KFhFTikgWyAgICA5LjE4OTc4MF0gRUxGOiBwaGRyIDAgYXQgMHgxMDAwMDAwIC0+IDB4MmIyYzBk
OA0KKFhFTikgWyAgICA5LjIwNzA4OF0gRUxGOiBwaGRyIDEgYXQgMHgyYzAwMDAwIC0+IDB4MzQ5
OTAwMA0KKFhFTikgWyAgICA5LjIxOTQ3Ml0gRUxGOiBwaGRyIDIgYXQgMHgzNDk5MDAwIC0+IDB4
MzRjOTAxOA0KKFhFTikgWyAgICA5LjIyOTg2OV0gRUxGOiBwaGRyIDMgYXQgMHgzNGNhMDAwIC0+
IDB4Mzc5YTAwMA0KKFhFTikgWyAgICA5LjQzMTQ4OF0gRG9tMCBtZW1vcnkgbWFwOg0KKFhFTikg
WyAgICA5LjQzODI0Nl0gIFswMDAwMDAwMDAwMDAwMDAwLCAwMDAwMDAwMDAwMDlmZmZmXSAodXNh
YmxlKQ0KKFhFTikgWyAgICA5LjQ1MDIwM10gIFswMDAwMDAwMDAwMGEwMDAwLCAwMDAwMDAwMDAw
MGZmZmZmXSAocmVzZXJ2ZWQpDQooWEVOKSBbICAgIDkuNDYyNTEwXSAgWzAwMDAwMDAwMDAxMDAw
MDAsIDAwMDAwMDAwMDliZmVmZmZdICh1c2FibGUpDQooWEVOKSBbICAgIDkuNDc0NDc1XSAgWzAw
MDAwMDAwMDliZmYwMDAsIDAwMDAwMDAwMDlmZmZmZmZdIChyZXNlcnZlZCkNCihYRU4pIFsgICAg
OS40ODY3NzddICBbMDAwMDAwMDAwYTAwMDAwMCwgMDAwMDAwMDAwYTFmZmZmZl0gKHVzYWJsZSkN
CihYRU4pIFsgICAgOS40OTg3NDJdICBbMDAwMDAwMDAwYTIwMDAwMCwgMDAwMDAwMDAwYTIwY2Zm
Zl0gKEFDUEkgTlZTKQ0KKFhFTikgWyAgICA5LjUxMTA0NF0gIFswMDAwMDAwMDBhMjBkMDAwLCAw
MDAwMDAwMGNhYmM4ZmZmXSAodXNhYmxlKQ0KKFhFTikgWyAgICA5LjUyMzAwNF0gIFswMDAwMDAw
MGNhYmM5MDAwLCAwMDAwMDAwMGNjMTRjZmZmXSAocmVzZXJ2ZWQpDQooWEVOKSBbICAgIDkuNTM1
MzEyXSAgWzAwMDAwMDAwY2MxNGQwMDAsIDAwMDAwMDAwY2MxOTVmZmZdIChBQ1BJIGRhdGEpDQoo
WEVOKSBbICAgIDkuNTQ3Nzk0XSAgWzAwMDAwMDAwY2MxOTYwMDAsIDAwMDAwMDAwY2MzODhmZmZd
IChBQ1BJIE5WUykNCihYRU4pIFsgICAgOS41NjAxMDFdICBbMDAwMDAwMDBjYzM4OTAwMCwgMDAw
MDAwMDBjYzM4OWZmZl0gKHJlc2VydmVkKQ0KKFhFTikgWyAgICA5LjU3MjQwNF0gIFswMDAwMDAw
MGNjMzhhMDAwLCAwMDAwMDAwMGNjNzA5ZmZmXSAoQUNQSSBOVlMpDQooWEVOKSBbICAgIDkuNTg0
NzExXSAgWzAwMDAwMDAwY2M3MGEwMDAsIDAwMDAwMDAwY2QxZmVmZmZdIChyZXNlcnZlZCkNCihY
RU4pIFsgICAgOS41OTcwMjNdICBbMDAwMDAwMDBjZDFmZjAwMCwgMDAwMDAwMDBjZGZmZmVhN10g
KHVzYWJsZSkNCihYRU4pIFsgICAgOS42MDg5ODNdICBbMDAwMDAwMDBjZGZmZmVhOCwgMDAwMDAw
MDBjZGZmZmYzZl0gKEFDUEkgZGF0YSkNCihYRU4pIFsgICAgOS42MjE0NjNdICBbMDAwMDAwMDBj
ZTAwMDAwMCwgMDAwMDAwMDBjZmZmZmZmZl0gKHJlc2VydmVkKQ0KKFhFTikgWyAgICA5LjYzMzc2
OF0gIFswMDAwMDAwMGYwMDAwMDAwLCAwMDAwMDAwMGY3ZmZmZmZmXSAocmVzZXJ2ZWQpDQooWEVO
KSBbICAgIDkuNjQ2MDc0XSAgWzAwMDAwMDAwZmQwMDAwMDAsIDAwMDAwMDAwZmZmZmZmZmZdIChy
ZXNlcnZlZCkNCihYRU4pIFsgICAgOS42NTgzODNdICBbMDAwMDAwMDEwMDAwMDAwMCwgMDAwMDAw
MDEzNGFhM2ZmZl0gKHVzYWJsZSkNCihYRU4pIFsgICAgOS42NzAzNDFdICBbMDAwMDAwMDEzNGFh
NDAwMCwgMDAwMDAwMDgwZjMzZmZmZl0gKHVudXNhYmxlKQ0KKFhFTikgWyAgICA5LjY4MjY0N10g
IFswMDAwMDAwODBmMzQwMDAwLCAwMDAwMDAwODUwMWZmZmZmXSAocmVzZXJ2ZWQpDQooWEVOKSBb
ICAgIDkuNjk0OTUxXSBJbml0aWFsIGxvdyBtZW1vcnkgdmlycSB0aHJlc2hvbGQgc2V0IGF0IDB4
NDAwMCBwYWdlcy4NCihYRU4pIFsgICAgOS43MDgyOThdIFNjcnViYmluZyBGcmVlIFJBTSBpbiBi
YWNrZ3JvdW5kDQooWEVOKSBbICAgIDkuNzE3ODMzXSBTdGQuIExvZ2xldmVsOiBBbGwNCihYRU4p
IFsgICAgOS43MjQ5MzhdIEd1ZXN0IExvZ2xldmVsOiBBbGwNCihYRU4pIFsgICAgOS43MzIyMThd
ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKFhF
TikgWyAgICA5Ljc0NTA0OF0gV0FSTklORzogQ09OU09MRSBPVVRQVVQgSVMgU1lOQ0hST05PVVMN
CihYRU4pIFsgICAgOS43NTU2MjBdIFRoaXMgb3B0aW9uIGlzIGludGVuZGVkIHRvIGFpZCBkZWJ1
Z2dpbmcgb2YgWGVuIGJ5IGVuc3VyaW5nDQooWEVOKSBbICAgIDkuNzY5ODMyXSB0aGF0IGFsbCBv
dXRwdXQgaXMgc3luY2hyb25vdXNseSBkZWxpdmVyZWQgb24gdGhlIHNlcmlhbCBsaW5lLg0KKFhF
TikgWyAgICA5Ljc4NDU2OF0gSG93ZXZlciBpdCBjYW4gaW50cm9kdWNlIFNJR05JRklDQU5UIGxh
dGVuY2llcyBhbmQgYWZmZWN0DQooWEVOKSBbICAgIDkuNzk4NDM2XSB0aW1la2VlcGluZy4gSXQg
aXMgTk9UIHJlY29tbWVuZGVkIGZvciBwcm9kdWN0aW9uIHVzZSENCihYRU4pIFsgICAgOS44MTE3
ODBdICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0K
KFhFTikgWyAgICA5LjgyNDYxMF0gMy4uLiAyLi4uIDEuLi4NCihYRU4pIFsgICAxMi44MzA5MDZd
ICoqKiBTZXJpYWwgaW5wdXQgdG8gRE9NMCAodHlwZSAnQ1RSTC1hJyB0aHJlZSB0aW1lcyB0byBz
d2l0Y2ggaW5wdXQpDQooWEVOKSBbICAgMTIuODQ2ODU2XSBjb21tb24vc2NoZWQvbnVsbC5jOjM1
NzogMCA8LS0gZDB2MA0KKFhFTikgWyAgIDEyLjg1NjkzNF0gRnJlZWQgNjYwa0IgaW5pdCBtZW1v
cnkNClsgICAgMC4wMDAwMDBdIExpbnV4IHZlcnNpb24gNi4xMi4wIChyb290QDE0ZGEwOGFjNjBj
ZSkgKGdjYyAoQWxwaW5lIDEyLjIuMV9naXQyMDIyMDkyNC1yMTApIDEyLjIuMSAyMDIyMDkyNCwg
R05VIGxkIChHTlUgQmludXRpbHMpIDIuNDApICMzIFNNUCBQUkVFTVBUX0RZTkFNSUMgVHVlIEFw
ciAyMiAyMTo1MzozMCBVVEMgMjAyNQ0KWyAgICAwLjAwMDAwMF0gQ29tbWFuZCBsaW5lOiBjb25z
b2xlPWh2YzAgcm9vdD0vZGV2L3JhbTAgZWFybHlwcmludGs9eGVuIGRlYnVnDQpbICAgIDAuMDAw
MDAwXSBbRmlybXdhcmUgQnVnXTogVFNDIGRvZXNuJ3QgY291bnQgd2l0aCBQMCBmcmVxdWVuY3kh
DQpbICAgIDAuMDAwMDAwXSBCSU9TLXByb3ZpZGVkIHBoeXNpY2FsIFJBTSBtYXA6DQpbICAgIDAu
MDAwMDAwXSBCSU9TLWU4MjA6IFttZW0gMHgwMDAwMDAwMDAwMDAwMDAwLTB4MDAwMDAwMDAwMDA5
ZmZmZl0gdXNhYmxlDQpbICAgIDAuMDAwMDAwXSBCSU9TLWU4MjA6IFttZW0gMHgwMDAwMDAwMDAw
MGEwMDAwLTB4MDAwMDAwMDAwMDBmZmZmZl0gcmVzZXJ2ZWQNClsgICAgMC4wMDAwMDBdIEJJT1Mt
ZTgyMDogW21lbSAweDAwMDAwMDAwMDAxMDAwMDAtMHgwMDAwMDAwMDA5YmZlZmZmXSB1c2FibGUN
ClsgICAgMC4wMDAwMDBdIEJJT1MtZTgyMDogW21lbSAweDAwMDAwMDAwMDliZmYwMDAtMHgwMDAw
MDAwMDA5ZmZmZmZmXSByZXNlcnZlZA0KWyAgICAwLjAwMDAwMF0gQklPUy1lODIwOiBbbWVtIDB4
MDAwMDAwMDAwYTAwMDAwMC0weDAwMDAwMDAwMGExZmZmZmZdIHVzYWJsZQ0KWyAgICAwLjAwMDAw
MF0gQklPUy1lODIwOiBbbWVtIDB4MDAwMDAwMDAwYTIwMDAwMC0weDAwMDAwMDAwMGEyMGNmZmZd
IEFDUEkgTlZTDQpbICAgIDAuMDAwMDAwXSBCSU9TLWU4MjA6IFttZW0gMHgwMDAwMDAwMDBhMjBk
MDAwLTB4MDAwMDAwMDBjYWJjOGZmZl0gdXNhYmxlDQpbICAgIDAuMDAwMDAwXSBCSU9TLWU4MjA6
IFttZW0gMHgwMDAwMDAwMGNhYmM5MDAwLTB4MDAwMDAwMDBjYzE0Y2ZmZl0gcmVzZXJ2ZWQNClsg
ICAgMC4wMDAwMDBdIEJJT1MtZTgyMDogW21lbSAweDAwMDAwMDAwY2MxNGQwMDAtMHgwMDAwMDAw
MGNjMTk1ZmZmXSBBQ1BJIGRhdGENClsgICAgMC4wMDAwMDBdIEJJT1MtZTgyMDogW21lbSAweDAw
MDAwMDAwY2MxOTYwMDAtMHgwMDAwMDAwMGNjMzg4ZmZmXSBBQ1BJIE5WUw0KWyAgICAwLjAwMDAw
MF0gQklPUy1lODIwOiBbbWVtIDB4MDAwMDAwMDBjYzM4OTAwMC0weDAwMDAwMDAwY2MzODlmZmZd
IHJlc2VydmVkDQpbICAgIDAuMDAwMDAwXSBCSU9TLWU4MjA6IFttZW0gMHgwMDAwMDAwMGNjMzhh
MDAwLTB4MDAwMDAwMDBjYzcwOWZmZl0gQUNQSSBOVlMNClsgICAgMC4wMDAwMDBdIEJJT1MtZTgy
MDogW21lbSAweDAwMDAwMDAwY2M3MGEwMDAtMHgwMDAwMDAwMGNkMWZlZmZmXSByZXNlcnZlZA0K
WyAgICAwLjAwMDAwMF0gQklPUy1lODIwOiBbbWVtIDB4MDAwMDAwMDBjZDFmZjAwMC0weDAwMDAw
MDAwY2RmZmZlYTddIHVzYWJsZQ0KWyAgICAwLjAwMDAwMF0gQklPUy1lODIwOiBbbWVtIDB4MDAw
MDAwMDBjZGZmZmVhOC0weDAwMDAwMDAwY2RmZmZmM2ZdIEFDUEkgZGF0YQ0KWyAgICAwLjAwMDAw
MF0gQklPUy1lODIwOiBbbWVtIDB4MDAwMDAwMDBjZTAwMDAwMC0weDAwMDAwMDAwY2ZmZmZmZmZd
IHJlc2VydmVkDQpbICAgIDAuMDAwMDAwXSBCSU9TLWU4MjA6IFttZW0gMHgwMDAwMDAwMGYwMDAw
MDAwLTB4MDAwMDAwMDBmN2ZmZmZmZl0gcmVzZXJ2ZWQNClsgICAgMC4wMDAwMDBdIEJJT1MtZTgy
MDogW21lbSAweDAwMDAwMDAwZmQwMDAwMDAtMHgwMDAwMDAwMGZmZmZmZmZmXSByZXNlcnZlZA0K
WyAgICAwLjAwMDAwMF0gQklPUy1lODIwOiBbbWVtIDB4MDAwMDAwMDEwMDAwMDAwMC0weDAwMDAw
MDA4MGYzM2ZmZmZdIHVzYWJsZQ0KWyAgICAwLjAwMDAwMF0gQklPUy1lODIwOiBbbWVtIDB4MDAw
MDAwMDgwZjM0MDAwMC0weDAwMDAwMDA4NTAxZmZmZmZdIHJlc2VydmVkDQpbICAgIDAuMDAwMDAw
XSBwcmludGs6IGxlZ2FjeSBib290Y29uc29sZSBbeGVuYm9vdDBdIGVuYWJsZWQNClsgICAgMC4w
MDAwMDBdIE5YIChFeGVjdXRlIERpc2FibGUpIHByb3RlY3Rpb246IGFjdGl2ZQ0KWyAgICAwLjAw
MDAwMF0gQVBJQzogU3RhdGljIGNhbGxzIGluaXRpYWxpemVkDQpbICAgIDAuMDAwMDAwXSBlZmk6
IEVGSSB2Mi43IGJ5IEFtZXJpY2FuIE1lZ2F0cmVuZHMNClsgICAgMC4wMDAwMDBdIGVmaTogQUNQ
ST0weGNjNmYzMDAwIEFDUEkgMi4wPTB4Y2M2ZjMwMTQgVFBNRmluYWxMb2c9MHhjYzZjMjAwMCBT
TUJJT1M9MHhjY2ZkNjAwMCBTTUJJT1MgMy4wPTB4Y2NmZDUwMDAgKE1FTUFUVFI9MHhjN2E5MjI5
OCB1bnVzYWJsZSkgRVNSVD0weGNjMTVhMDE4DQpbICAgIDAuMDAwMDAwXSBTTUJJT1MgMy4yLjAg
cHJlc2VudC4NClsgICAgMC4wMDAwMDBdIERNSTogIC83RDc4NSAvIDdENzg2LCBCSU9TIDUuMTYg
MDIvMjQvMjAyNQ0KWyAgICAwLjAwMDAwMF0gRE1JOiBNZW1vcnkgc2xvdHMgcG9wdWxhdGVkOiAy
LzINClsgICAgMC4wMDAwMDBdIEh5cGVydmlzb3IgZGV0ZWN0ZWQ6IFhlbiBIVk0NClsgICAgMC4w
MDAwMDBdIFhlbiB2ZXJzaW9uIDQuMjEuDQpbICAgIDAuMDAwMDA0XSBIVk1PUF9wYWdldGFibGVf
ZHlpbmcgbm90IHN1cHBvcnRlZA0KWyAgICAwLjA1NDc0MF0gdHNjOiBGYXN0IFRTQyBjYWxpYnJh
dGlvbiBmYWlsZWQNClsgICAgMC4wNjI5MjNdIHRzYzogRGV0ZWN0ZWQgMjg5NC41NDAgTUh6IHBy
b2Nlc3Nvcg0KWyAgICAwLjA3MjI0MV0gZTgyMDogdXBkYXRlIFttZW0gMHgwMDAwMDAwMC0weDAw
MDAwZmZmXSB1c2FibGUgPT0+IHJlc2VydmVkDQpbICAgIDAuMDg1NDUxXSBlODIwOiByZW1vdmUg
W21lbSAweDAwMGEwMDAwLTB4MDAwZmZmZmZdIHVzYWJsZQ0KWyAgICAwLjA5NjU1M10gbGFzdF9w
Zm4gPSAweDgwZjM0MCBtYXhfYXJjaF9wZm4gPSAweDQwMDAwMDAwMA0KWyAgICAwLjEwNzUxOV0g
TVRSUiBtYXA6IDQgZW50cmllcyAoMyBmaXhlZCArIDEgdmFyaWFibGU7IG1heCAyMCksIGJ1aWx0
IGZyb20gOSB2YXJpYWJsZSBNVFJScw0KWyAgICAwLjEyNDEwOV0geDg2L1BBVDogQ29uZmlndXJh
dGlvbiBbMC03XTogV0IgIFdDICBVQy0gVUMgIFdCICBXUCAgVUMtIFdUDQpbICAgIDAuMTM4NjY2
XSBDUFUgTVRSUnMgYWxsIGJsYW5rIC0gdmlydHVhbGl6ZWQgc3lzdGVtLg0KWyAgICAwLjE0ODQx
N10gbGFzdF9wZm4gPSAweGNkZmZmIG1heF9hcmNoX3BmbiA9IDB4NDAwMDAwMDAwDQpbICAgIDAu
MTYyODE3XSBlc3J0OiBSZXNlcnZpbmcgRVNSVCBzcGFjZSBmcm9tIDB4MDAwMDAwMDBjYzE1YTAx
OCB0byAweDAwMDAwMDAwY2MxNWEwNTAuDQpbICAgIDAuMTc4MTA2XSBVc2luZyBHQiBwYWdlcyBm
b3IgZGlyZWN0IG1hcHBpbmcNClsgICAgMC4xODc2MDVdIFNlY3VyZSBib290IGRpc2FibGVkDQpb
ICAgIDAuMTkzNzAwXSBSQU1ESVNLOiBbbWVtIDB4MGEyMGQwMDAtMHgzNjE4ZWZmZl0NClsgICAg
MC4yMDM5NzldIEFDUEk6IEVhcmx5IHRhYmxlIGNoZWNrc3VtIHZlcmlmaWNhdGlvbiBkaXNhYmxl
ZA0KWyAgICAwLjIxNDkzNV0gQUNQSTogUlNEUCAweDAwMDAwMDAwQ0RGRkZFQTggMDAwMDI0ICh2
MDIgQUxBU0tBKQ0KWyAgICAwLjIyNjM3Nl0gQUNQSTogWFNEVCAweDAwMDAwMDAwQ0RGRkZFQ0Mg
MDAwMDlDICh2MDEgQUxBU0tBIEEgTSBJICAgIDAxMDcyMDA5IEFNSSAgMDEwMDAwMTMpDQpbICAg
IDAuMjQzMzYzXSBBQ1BJOiBBUElDIDB4MDAwMDAwMDBDREZGRkY2OCAwMDAwOTggKHYwMyBBTEFT
S0EgQSBNIEkgICAgMDEwNzIwMDkgQU1JICAwMDAxMDAxMykNClsgICAgMC4yNjAzNDhdIEFDUEk6
IEZBQ1AgMHgwMDAwMDAwMENDMThDMDAwIDAwMDExNCAodjA2IEFMQVNLQSBBIE0gSSAgICAwMTA3
MjAwOSBBTUkgIDAwMDEwMDEzKQ0KWyAgICAwLjI3NzM3NV0gQUNQSTogRFNEVCAweDAwMDAwMDAw
Q0MxODMwMDAgMDA4NzZEICh2MDIgQUxBU0tBIEEgTSBJICAgIDAxMDcyMDA5IElOVEwgMjAxMjA5
MTMpDQpbICAgIDAuMjk0MzIyXSBBQ1BJOiBGQUNTIDB4MDAwMDAwMDBDQzZDMDAwMCAwMDAwNDAN
ClsgICAgMC4zMDM1MDldIEFDUEk6IFNTRFQgMHgwMDAwMDAwMENDMThFMDAwIDAwNzIzQyAodjAy
IEFNRCAgICBBbWRUYWJsZSAwMDAwMDAwMiBNU0ZUIDA0MDAwMDAwKQ0KWyAgICAwLjMyMDQ5NV0g
QUNQSTogTUNGRyAweDAwMDAwMDAwQ0MxODEwMDAgMDAwMDNDICh2MDEgQUxBU0tBIEEgTSBJICAg
IDAxMDcyMDA5IE1TRlQgMDAwMTAwMTMpDQpbICAgIDAuMzM3NDgzXSBBQ1BJOiBTU0RUIDB4MDAw
MDAwMDBDQzE3RjAwMCAwMDAyMjggKHYwMSBBTUQgICAgU1REMyAgICAgMDAwMDAwMDEgSU5UTCAy
MDEyMDkxMykNClsgICAgMC4zNTQ0NzVdIEFDUEk6IFZGQ1QgMHgwMDAwMDAwMENDMTcxMDAwIDAw
RDY4NCAodjAxIEFMQVNLQSBBIE0gSSAgICAwMDAwMDAwMSBBTUQgIDMxNTA0RjQ3KQ0KWyAgICAw
LjM3MTQ2MF0gQUNQSTogU1NEVCAweDAwMDAwMDAwQ0MxNkIwMDAgMDAzOUY0ICh2MDEgQU1EICAg
IEFtZFRhYmxlIDAwMDAwMDAxIEFNRCAgMDAwMDAwMDEpDQpbICAgIDAuMzg4NDQzXSBBQ1BJOiBT
U0RUIDB4MDAwMDAwMDBDQzE2ODAwMCAwMDAxMzkgKHYwMSBBTUQgICAgQW1kVGFibGUgMDAwMDAw
MDEgSU5UTCAyMDEyMDkxMykNClsgICAgMC40MDU0MzVdIEFDUEk6IFNTRFQgMHgwMDAwMDAwMEND
MTY3MDAwIDAwMDIyNyAodjAxIEFNRCAgICBBbWRUYWJsZSAwMDAwMDAwMSBJTlRMIDIwMTIwOTEz
KQ0KWyAgICAwLjQyMjQxOF0gQUNQSTogU1NEVCAweDAwMDAwMDAwQ0MxNjYwMDAgMDAwRDM3ICh2
MDEgQU1EICAgIEFtZFRhYmxlIDAwMDAwMDAxIElOVEwgMjAxMjA5MTMpDQpbICAgIDAuNDM5NDA0
XSBBQ1BJOiBTU0RUIDB4MDAwMDAwMDBDQzE2NDAwMCAwMDEwQTUgKHYwMSBBTUQgICAgQW1kVGFi
bGUgMDAwMDAwMDEgSU5UTCAyMDEyMDkxMykNClsgICAgMC40NTYzOTNdIEFDUEk6IFNTRFQgMHgw
MDAwMDAwMENDMTYwMDAwIDAwMzBDOCAodjAxIEFNRCAgICBBbWRUYWJsZSAwMDAwMDAwMSBJTlRM
IDIwMTIwOTEzKQ0KWyAgICAwLjQ3MzM4Ml0gQUNQSTogU1NEVCAweDAwMDAwMDAwQ0MxNUQwMDAg
MDAwMDdEICh2MDEgQU1EICAgIEFtZFRhYmxlIDAwMDAwMDAxIElOVEwgMjAxMjA5MTMpDQpbICAg
IDAuNDkwMzY0XSBBQ1BJOiBTU0RUIDB4MDAwMDAwMDBDQzE1QzAwMCAwMDA1MTcgKHYwMSBBTUQg
ICAgQW1kVGFibGUgMDAwMDAwMDEgSU5UTCAyMDEyMDkxMykNClsgICAgMC41MDczNTNdIEFDUEk6
IEZQRFQgMHgwMDAwMDAwMENDMTVCMDAwIDAwMDA0NCAodjAxIEFMQVNLQSBBIE0gSSAgICAwMTA3
MjAwOSBBTUkgIDAxMDAwMDEzKQ0KWyAgICAwLjUyNDMzNF0gQUNQSTogUmVzZXJ2aW5nIEFQSUMg
dGFibGUgbWVtb3J5IGF0IFttZW0gMHhjZGZmZmY2OC0weGNkZmZmZmZmXQ0KWyAgICAwLjUzODM3
OF0gQUNQSTogUmVzZXJ2aW5nIEZBQ1AgdGFibGUgbWVtb3J5IGF0IFttZW0gMHhjYzE4YzAwMC0w
eGNjMThjMTEzXQ0KWyAgICAwLjU1MjQyMF0gQUNQSTogUmVzZXJ2aW5nIERTRFQgdGFibGUgbWVt
b3J5IGF0IFttZW0gMHhjYzE4MzAwMC0weGNjMThiNzZjXQ0KWyAgICAwLjU2NjQ1Nl0gQUNQSTog
UmVzZXJ2aW5nIEZBQ1MgdGFibGUgbWVtb3J5IGF0IFttZW0gMHhjYzZjMDAwMC0weGNjNmMwMDNm
XQ0KWyAgICAwLjU4MDQ5N10gQUNQSTogUmVzZXJ2aW5nIFNTRFQgdGFibGUgbWVtb3J5IGF0IFtt
ZW0gMHhjYzE4ZTAwMC0weGNjMTk1MjNiXQ0KWyAgICAwLjU5NDUzOF0gQUNQSTogUmVzZXJ2aW5n
IE1DRkcgdGFibGUgbWVtb3J5IGF0IFttZW0gMHhjYzE4MTAwMC0weGNjMTgxMDNiXQ0KWyAgICAw
LjYwODU3NV0gQUNQSTogUmVzZXJ2aW5nIFNTRFQgdGFibGUgbWVtb3J5IGF0IFttZW0gMHhjYzE3
ZjAwMC0weGNjMTdmMjI3XQ0KWyAgICAwLjYyMjYxNV0gQUNQSTogUmVzZXJ2aW5nIFZGQ1QgdGFi
bGUgbWVtb3J5IGF0IFttZW0gMHhjYzE3MTAwMC0weGNjMTdlNjgzXQ0KWyAgICAwLjYzNjY1OF0g
QUNQSTogUmVzZXJ2aW5nIFNTRFQgdGFibGUgbWVtb3J5IGF0IFttZW0gMHhjYzE2YjAwMC0weGNj
MTZlOWYzXQ0KWyAgICAwLjY1MDY5Nl0gQUNQSTogUmVzZXJ2aW5nIFNTRFQgdGFibGUgbWVtb3J5
IGF0IFttZW0gMHhjYzE2ODAwMC0weGNjMTY4MTM4XQ0KWyAgICAwLjY2NDczNl0gQUNQSTogUmVz
ZXJ2aW5nIFNTRFQgdGFibGUgbWVtb3J5IGF0IFttZW0gMHhjYzE2NzAwMC0weGNjMTY3MjI2XQ0K
WyAgICAwLjY3ODc4MF0gQUNQSTogUmVzZXJ2aW5nIFNTRFQgdGFibGUgbWVtb3J5IGF0IFttZW0g
MHhjYzE2NjAwMC0weGNjMTY2ZDM2XQ0KWyAgICAwLjY5MjgxNl0gQUNQSTogUmVzZXJ2aW5nIFNT
RFQgdGFibGUgbWVtb3J5IGF0IFttZW0gMHhjYzE2NDAwMC0weGNjMTY1MGE0XQ0KWyAgICAwLjcw
Njg1OV0gQUNQSTogUmVzZXJ2aW5nIFNTRFQgdGFibGUgbWVtb3J5IGF0IFttZW0gMHhjYzE2MDAw
MC0weGNjMTYzMGM3XQ0KWyAgICAwLjcyMTQ4M10gQUNQSTogUmVzZXJ2aW5nIFNTRFQgdGFibGUg
bWVtb3J5IGF0IFttZW0gMHhjYzE1ZDAwMC0weGNjMTVkMDdjXQ0KWyAgICAwLjczNTIxMF0gQUNQ
STogUmVzZXJ2aW5nIFNTRFQgdGFibGUgbWVtb3J5IGF0IFttZW0gMHhjYzE1YzAwMC0weGNjMTVj
NTE2XQ0KWyAgICAwLjc0OTI0OF0gQUNQSTogUmVzZXJ2aW5nIEZQRFQgdGFibGUgbWVtb3J5IGF0
IFttZW0gMHhjYzE1YjAwMC0weGNjMTViMDQzXQ0KWyAgICAwLjc2MzM5MF0gTm8gTlVNQSBjb25m
aWd1cmF0aW9uIGZvdW5kDQpbICAgIDAuNzcwOTE0XSBGYWtpbmcgYSBub2RlIGF0IFttZW0gMHgw
MDAwMDAwMDAwMDAwMDAwLTB4MDAwMDAwMDgwZjMzZmZmZl0NClsgICAgMC43ODQyNjRdIE5PREVf
REFUQSgwKSBhbGxvY2F0ZWQgW21lbSAweDEzNGE5ZjU0MC0weDEzNGFhMmZmZl0NClsgICAgMC43
OTYyNTRdIFpvbmUgcmFuZ2VzOg0KWyAgICAwLjgwMTI0NV0gICBETUEgICAgICBbbWVtIDB4MDAw
MDAwMDAwMDAwMTAwMC0weDAwMDAwMDAwMDBmZmZmZmZdDQpbICAgIDAuODEzNTU3XSAgIERNQTMy
ICAgIFttZW0gMHgwMDAwMDAwMDAxMDAwMDAwLTB4MDAwMDAwMDBmZmZmZmZmZl0NClsgICAgMC44
MjU4NjRdICAgTm9ybWFsICAgW21lbSAweDAwMDAwMDAxMDAwMDAwMDAtMHgwMDAwMDAwODBmMzNm
ZmZmXQ0KWyAgICAwLjgzODE2Nl0gTW92YWJsZSB6b25lIHN0YXJ0IGZvciBlYWNoIG5vZGUNClsg
ICAgMC44NDY2NTldIEVhcmx5IG1lbW9yeSBub2RlIHJhbmdlcw0KWyAgICAwLjg1Mzc2OF0gICBu
b2RlICAgMDogW21lbSAweDAwMDAwMDAwMDAwMDEwMDAtMHgwMDAwMDAwMDAwMDlmZmZmXQ0KWyAg
ICAwLjg2NjI0OF0gICBub2RlICAgMDogW21lbSAweDAwMDAwMDAwMDAxMDAwMDAtMHgwMDAwMDAw
MDA5YmZlZmZmXQ0KWyAgICAwLjg3ODcyN10gICBub2RlICAgMDogW21lbSAweDAwMDAwMDAwMGEw
MDAwMDAtMHgwMDAwMDAwMDBhMWZmZmZmXQ0KWyAgICAwLjg5MTIwN10gICBub2RlICAgMDogW21l
bSAweDAwMDAwMDAwMGEyMGQwMDAtMHgwMDAwMDAwMGNhYmM4ZmZmXQ0KWyAgICAwLjkwMzY4Nl0g
ICBub2RlICAgMDogW21lbSAweDAwMDAwMDAwY2QxZmYwMDAtMHgwMDAwMDAwMGNkZmZlZmZmXQ0K
WyAgICAwLjkxNjE2N10gICBub2RlICAgMDogW21lbSAweDAwMDAwMDAxMDAwMDAwMDAtMHgwMDAw
MDAwODBmMzNmZmZmXQ0KWyAgICAwLjkyODY0OF0gSW5pdG1lbSBzZXR1cCBub2RlIDAgW21lbSAw
eDAwMDAwMDAwMDAwMDEwMDAtMHgwMDAwMDAwODBmMzNmZmZmXQ0KWyAgICAwLjk0MjY5Ml0gT24g
bm9kZSAwLCB6b25lIERNQTogMSBwYWdlcyBpbiB1bmF2YWlsYWJsZSByYW5nZXMNClsgICAgMC45
NTQzMjBdIE9uIG5vZGUgMCwgem9uZSBETUE6IDk2IHBhZ2VzIGluIHVuYXZhaWxhYmxlIHJhbmdl
cw0KWyAgICAwLjk2NjIxN10gT24gbm9kZSAwLCB6b25lIERNQTMyOiAxMDI1IHBhZ2VzIGluIHVu
YXZhaWxhYmxlIHJhbmdlcw0KWyAgICAwLjk4MzE2OF0gT24gbm9kZSAwLCB6b25lIERNQTMyOiAx
MyBwYWdlcyBpbiB1bmF2YWlsYWJsZSByYW5nZXMNClsgICAgMC45OTUxMDhdIE9uIG5vZGUgMCwg
em9uZSBETUEzMjogOTc4MiBwYWdlcyBpbiB1bmF2YWlsYWJsZSByYW5nZXMNClsgICAgMS4wNTEz
MDldIE9uIG5vZGUgMCwgem9uZSBOb3JtYWw6IDgxOTMgcGFnZXMgaW4gdW5hdmFpbGFibGUgcmFu
Z2VzDQpbICAgIDEuMDYzNjg5XSBPbiBub2RlIDAsIHpvbmUgTm9ybWFsOiAzMjY0IHBhZ2VzIGlu
IHVuYXZhaWxhYmxlIHJhbmdlcw0KWyAgICAxLjA3Njc0MV0gQUNQSTogUE0tVGltZXIgSU8gUG9y
dDogMHg4MDgNClsgICAgMS4wODQ0NTNdIElPQVBJQ1swXTogYXBpY19pZCAxNywgdmVyc2lvbiAx
NywgYWRkcmVzcyAweGZlYzAwMDAwLCBHU0kgMC0yMw0KWyAgICAxLjA5ODMwMF0gSU9BUElDWzFd
OiBhcGljX2lkIDE4LCB2ZXJzaW9uIDE3LCBhZGRyZXNzIDB4ZmVjMDEwMDAsIEdTSSAyNC01NQ0K
WyAgICAxLjExMjMwOF0gQUNQSTogSU5UX1NSQ19PVlIgKGJ1cyAwIGJ1c19pcnEgMCBnbG9iYWxf
aXJxIDIgZGZsIGRmbCkNClsgICAgMS4xMjQ5NjJdIEFDUEk6IElOVF9TUkNfT1ZSIChidXMgMCBi
dXNfaXJxIDkgZ2xvYmFsX2lycSA5IGxvdyBsZXZlbCkNClsgICAgMS4xMzc5NjJdIEFDUEk6IFVz
aW5nIEFDUEkgKE1BRFQpIGZvciBTTVAgY29uZmlndXJhdGlvbiBpbmZvcm1hdGlvbg0KWyAgICAx
LjE1MDc4OV0gQ1BVIHRvcG86IE1heC4gbG9naWNhbCBwYWNrYWdlczogICAxDQpbICAgIDEuMTU5
OTc0XSBDUFUgdG9wbzogTWF4LiBsb2dpY2FsIGRpZXM6ICAgICAgIDENClsgICAgMS4xNjkxNTdd
IENQVSB0b3BvOiBNYXguIGRpZXMgcGVyIHBhY2thZ2U6ICAgMQ0KWyAgICAxLjE3ODM1MF0gQ1BV
IHRvcG86IE1heC4gdGhyZWFkcyBwZXIgY29yZTogICAxDQpbICAgIDEuMTg3NTMwXSBDUFUgdG9w
bzogTnVtLiBjb3JlcyBwZXIgcGFja2FnZTogICAgIDQNClsgICAgMS4xOTcyNDBdIENQVSB0b3Bv
OiBOdW0uIHRocmVhZHMgcGVyIHBhY2thZ2U6ICAgNA0KWyAgICAxLjIwNjk0M10gQ1BVIHRvcG86
IEFsbG93aW5nIDQgcHJlc2VudCBDUFVzIHBsdXMgMCBob3RwbHVnIENQVXMNClsgICAgMS4yMTkw
OTFdIFBNOiBoaWJlcm5hdGlvbjogUmVnaXN0ZXJlZCBub3NhdmUgbWVtb3J5OiBbbWVtIDB4MDAw
MDAwMDAtMHgwMDAwMGZmZl0NClsgICAgMS4yMzQxNjNdIFBNOiBoaWJlcm5hdGlvbjogUmVnaXN0
ZXJlZCBub3NhdmUgbWVtb3J5OiBbbWVtIDB4MDAwYTAwMDAtMHgwMDBmZmZmZl0NClsgICAgMS4y
NDkyNDNdIFBNOiBoaWJlcm5hdGlvbjogUmVnaXN0ZXJlZCBub3NhdmUgbWVtb3J5OiBbbWVtIDB4
MDliZmYwMDAtMHgwOWZmZmZmZl0NClsgICAgMS4yNjQzMjBdIFBNOiBoaWJlcm5hdGlvbjogUmVn
aXN0ZXJlZCBub3NhdmUgbWVtb3J5OiBbbWVtIDB4MGEyMDAwMDAtMHgwYTIwY2ZmZl0NClsgICAg
MS4yNzkzOTldIFBNOiBoaWJlcm5hdGlvbjogUmVnaXN0ZXJlZCBub3NhdmUgbWVtb3J5OiBbbWVt
IDB4Y2FiYzkwMDAtMHhjYzE0Y2ZmZl0NClsgICAgMS4yOTQ0ODFdIFBNOiBoaWJlcm5hdGlvbjog
UmVnaXN0ZXJlZCBub3NhdmUgbWVtb3J5OiBbbWVtIDB4Y2MxNGQwMDAtMHhjYzE5NWZmZl0NClsg
ICAgMS4zMDk1NTldIFBNOiBoaWJlcm5hdGlvbjogUmVnaXN0ZXJlZCBub3NhdmUgbWVtb3J5OiBb
bWVtIDB4Y2MxOTYwMDAtMHhjYzM4OGZmZl0NClsgICAgMS4zMjQ2MzhdIFBNOiBoaWJlcm5hdGlv
bjogUmVnaXN0ZXJlZCBub3NhdmUgbWVtb3J5OiBbbWVtIDB4Y2MzODkwMDAtMHhjYzM4OWZmZl0N
ClsgICAgMS4zMzk3MjFdIFBNOiBoaWJlcm5hdGlvbjogUmVnaXN0ZXJlZCBub3NhdmUgbWVtb3J5
OiBbbWVtIDB4Y2MzOGEwMDAtMHhjYzcwOWZmZl0NClsgICAgMS4zNTQ4MDJdIFBNOiBoaWJlcm5h
dGlvbjogUmVnaXN0ZXJlZCBub3NhdmUgbWVtb3J5OiBbbWVtIDB4Y2M3MGEwMDAtMHhjZDFmZWZm
Zl0NClsgICAgMS4zNjk4NzldIFBNOiBoaWJlcm5hdGlvbjogUmVnaXN0ZXJlZCBub3NhdmUgbWVt
b3J5OiBbbWVtIDB4Y2RmZmYwMDAtMHhjZGZmZmZmZl0NClsgICAgMS4zODQ5NjFdIFBNOiBoaWJl
cm5hdGlvbjogUmVnaXN0ZXJlZCBub3NhdmUgbWVtb3J5OiBbbWVtIDB4Y2RmZmYwMDAtMHhjZGZm
ZmZmZl0NClsgICAgMS40MDAwMzldIFBNOiBoaWJlcm5hdGlvbjogUmVnaXN0ZXJlZCBub3NhdmUg
bWVtb3J5OiBbbWVtIDB4Y2UwMDAwMDAtMHhjZmZmZmZmZl0NClsgICAgMS40MTUxMjFdIFBNOiBo
aWJlcm5hdGlvbjogUmVnaXN0ZXJlZCBub3NhdmUgbWVtb3J5OiBbbWVtIDB4ZDAwMDAwMDAtMHhl
ZmZmZmZmZl0NClsgICAgMS40MzAxOTldIFBNOiBoaWJlcm5hdGlvbjogUmVnaXN0ZXJlZCBub3Nh
dmUgbWVtb3J5OiBbbWVtIDB4ZjAwMDAwMDAtMHhmN2ZmZmZmZl0NClsgICAgMS40NDUyNzldIFBN
OiBoaWJlcm5hdGlvbjogUmVnaXN0ZXJlZCBub3NhdmUgbWVtb3J5OiBbbWVtIDB4ZjgwMDAwMDAt
MHhmY2ZmZmZmZl0NClsgICAgMS40NjAzNTldIFBNOiBoaWJlcm5hdGlvbjogUmVnaXN0ZXJlZCBu
b3NhdmUgbWVtb3J5OiBbbWVtIDB4ZmQwMDAwMDAtMHhmZmZmZmZmZl0NClsgICAgMS40NzU0NDNd
IFttZW0gMHhkMDAwMDAwMC0weGVmZmZmZmZmXSBhdmFpbGFibGUgZm9yIFBDSSBkZXZpY2VzDQpb
ICAgIDEuNDg3NTgxXSBCb290aW5nIGtlcm5lbCBvbiBYZW4gUFZIDQpbICAgIDEuNDk0ODU2XSBY
ZW4gdmVyc2lvbjogNC4yMS11bnN0YWJsZQ0KWyAgICAxLjUwMjMwOV0gY2xvY2tzb3VyY2U6IHJl
ZmluZWQtamlmZmllczogbWFzazogMHhmZmZmZmZmZiBtYXhfY3ljbGVzOiAweGZmZmZmZmZmLCBt
YXhfaWRsZV9uczogMTkxMDk2OTk0MDM5MTQxOSBucw0KWyAgICAxLjUyNzkzMl0gc2V0dXBfcGVy
Y3B1OiBOUl9DUFVTOjY0IG5yX2NwdW1hc2tfYml0czo0IG5yX2NwdV9pZHM6NCBucl9ub2RlX2lk
czoxDQpbICAgIDEuNTQyNzU1XSBwZXJjcHU6IEVtYmVkZGVkIDU4IHBhZ2VzL2NwdSBzMTk2NjMy
IHI4MTkyIGQzMjc0NCB1NTI0Mjg4DQpbICAgIDEuNTU1NTIzXSBwY3B1LWFsbG9jOiBzMTk2NjMy
IHI4MTkyIGQzMjc0NCB1NTI0Mjg4IGFsbG9jPTEqMjA5NzE1Mg0KWyAgICAxLjU2ODE3NF0gcGNw
dS1hbGxvYzogWzBdIDAgMSAyIDMNClsgICAgMS41NzUzMDddIEtlcm5lbCBjb21tYW5kIGxpbmU6
IGNvbnNvbGU9aHZjMCByb290PS9kZXYvcmFtMCBlYXJseXByaW50az14ZW4gZGVidWcNClsgICAg
MS41OTA0MTFdIHJhbmRvbTogY3JuZyBpbml0IGRvbmUNClsgICAgMS41OTc0NDNdIERlbnRyeSBj
YWNoZSBoYXNoIHRhYmxlIGVudHJpZXM6IDUyNDI4OCAob3JkZXI6IDEwLCA0MTk0MzA0IGJ5dGVz
LCBsaW5lYXIpDQpbICAgIDEuNjEzMDk1XSBJbm9kZS1jYWNoZSBoYXNoIHRhYmxlIGVudHJpZXM6
IDI2MjE0NCAob3JkZXI6IDksIDIwOTcxNTIgYnl0ZXMsIGxpbmVhcikNClsgICAgMS42MjgzNjBd
IEZhbGxiYWNrIG9yZGVyIGZvciBOb2RlIDA6IDANClsgICAgMS42MjgzNjNdIEJ1aWx0IDEgem9u
ZWxpc3RzLCBtb2JpbGl0eSBncm91cGluZyBvbi4gIFRvdGFsIHBhZ2VzOiA4MjM1MTYyDQpbICAg
IDEuNjUwMDAxXSBQb2xpY3kgem9uZTogTm9ybWFsDQpbICAgIDEuNjU2MjM4XSBtZW0gYXV0by1p
bml0OiBzdGFjazphbGwoemVybyksIGhlYXAgYWxsb2M6b2ZmLCBoZWFwIGZyZWU6b2ZmDQpbICAg
IDEuNjY5NzYxXSBzb2Z0d2FyZSBJTyBUTEI6IGFyZWEgbnVtIDQuDQpbICAgIDEuNzY1NzcyXSBT
TFVCOiBIV2FsaWduPTY0LCBPcmRlcj0wLTMsIE1pbk9iamVjdHM9MCwgQ1BVcz00LCBOb2Rlcz0x
DQpQb2tpbmcgS0FTTFIgdXNpbmcgUkRSQU5EIFJEVFNDLi4uDQpbICAgIDEuNzg1Nzc1XSBEeW5h
bWljIFByZWVtcHQ6IHZvbHVudGFyeQ0KWyAgICAxLjc5MjkzM10gcmN1OiBQcmVlbXB0aWJsZSBo
aWVyYXJjaGljYWwgUkNVIGltcGxlbWVudGF0aW9uLg0KWyAgICAxLjgwNDM1NF0gcmN1OiAJUkNV
IGV2ZW50IHRyYWNpbmcgaXMgZW5hYmxlZC4NClsgICAgMS44MTMzNjZdIHJjdTogCVJDVSByZXN0
cmljdGluZyBDUFVzIGZyb20gTlJfQ1BVUz02NCB0byBucl9jcHVfaWRzPTQuDQpbICAgIDEuODI2
NTQxXSAJVHJhbXBvbGluZSB2YXJpYW50IG9mIFRhc2tzIFJDVSBlbmFibGVkLg0KWyAgICAxLjgz
NjU5M10gcmN1OiBSQ1UgY2FsY3VsYXRlZCB2YWx1ZSBvZiBzY2hlZHVsZXItZW5saXN0bWVudCBk
ZWxheSBpcyAxMDAgamlmZmllcy4NClsgICAgMS44NTE4NDddIHJjdTogQWRqdXN0aW5nIGdlb21l
dHJ5IGZvciByY3VfZmFub3V0X2xlYWY9MTYsIG5yX2NwdV9pZHM9NA0KWyAgICAxLjg2NTE5Nl0g
UkNVIFRhc2tzOiBTZXR0aW5nIHNoaWZ0IHRvIDIgYW5kIGxpbSB0byAxIHJjdV90YXNrX2NiX2Fk
anVzdD0xIHJjdV90YXNrX2NwdV9pZHM9NC4NClsgICAgMS44ODM2NzldIFVzaW5nIE5VTEwgbGVn
YWN5IFBJQw0KWyAgICAxLjg4OTk1MV0gTlJfSVJRUzogNDM1MiwgbnJfaXJxczogMTAwMCwgcHJl
YWxsb2NhdGVkIGlycXM6IDANClsgICAgMS45MDE1OTRdIHhlbjpldmVudHM6IFVzaW5nIEZJRk8t
YmFzZWQgQUJJDQooWEVOKSBbICAgMTUuMjMwNDg0XSBkMHYwOiB1cGNhbGwgdmVjdG9yIGYzDQpb
ICAgIDEuOTE3ODcxXSB4ZW46ZXZlbnRzOiBYZW4gSFZNIGNhbGxiYWNrIHZlY3RvciBmb3IgZXZl
bnQgZGVsaXZlcnkgaXMgZW5hYmxlZA0KWyAgICAxLjkzMjEwMV0gcmN1OiBzcmN1X2luaXQ6IFNl
dHRpbmcgc3JjdV9zdHJ1Y3Qgc2l6ZXMgYmFzZWQgb24gY29udGVudGlvbi4NClsgICAgMS45NDU4
MTBdIENvbnNvbGU6IGNvbG91ciBkdW1teSBkZXZpY2UgODB4MjUNClsgICAgMS45NTQ2MTJdIHBy
aW50azogbGVnYWN5IGNvbnNvbGUgW3R0eTBdIGVuYWJsZWQNClsgICAgMS45NjQyMTJdIHByaW50
azogbGVnYWN5IGNvbnNvbGUgW2h2YzBdIGVuYWJsZWQNCg0KWyAgICAxLjk2NDIxMl0gcHJpbnRr
OiBsZWdhY3kgY29uc29sZSBbaHZjMF0gZW5hYmxlZA0KWyAgICAxLjk4Mjg2Ml0gcHJpbnRrOiBs
ZWdhY3kgYm9vdGNvbnNvbGUgW3hlbmJvb3QwXSBkaXNhYmxlZA0KDQpbICAgIDEuOTgyODYyXSBw
cmludGs6IGxlZ2FjeSBib290Y29uc29sZSBbeGVuYm9vdDBdIGRpc2FibGVkDQpbICAgIDIuMDA0
ODg2XSBBQ1BJOiBDb3JlIHJldmlzaW9uIDIwMjQwODI3DQoNClsgICAgMi4wMzE0MTldIEZhaWxl
ZCB0byByZWdpc3RlciBsZWdhY3kgdGltZXIgaW50ZXJydXB0DQoNClsgICAgMi4wNDEzMjldIEFQ
SUM6IFN3aXRjaCB0byBzeW1tZXRyaWMgSS9PIG1vZGUgc2V0dXANCg0KWyAgICAyLjA1MjEyMl0g
eDJhcGljIGVuYWJsZWQNCg0KWyAgICAyLjA1ODIyM10gQVBJQzogU3dpdGNoZWQgQVBJQyByb3V0
aW5nIHRvOiBwaHlzaWNhbCB4MmFwaWMNCg0KWyAgICAyLjA2OTI2MV0gY2xvY2tzb3VyY2U6IHRz
Yy1lYXJseTogbWFzazogMHhmZmZmZmZmZmZmZmZmZmZmIG1heF9jeWNsZXM6IDB4MjliOTFkMWVi
YzAsIG1heF9pZGxlX25zOiA0NDA3OTUyOTQ1MDMgbnMNCg0KWyAgICAyLjA5MDMyM10gQ2FsaWJy
YXRpbmcgZGVsYXkgbG9vcCAoc2tpcHBlZCksIHZhbHVlIGNhbGN1bGF0ZWQgdXNpbmcgdGltZXIg
ZnJlcXVlbmN5Li4gNTc4OS4wOCBCb2dvTUlQUyAobHBqPTI4OTQ1NDApDQoNClsgICAgMi4wOTEz
MjFdIHg4Ni9jcHU6IFVzZXIgTW9kZSBJbnN0cnVjdGlvbiBQcmV2ZW50aW9uIChVTUlQKSBhY3Rp
dmF0ZWQNCg0KWyAgICAyLjA5MTMyMV0gTGFzdCBsZXZlbCBpVExCIGVudHJpZXM6IDRLQiAxMDI0
LCAyTUIgMTAyNCwgNE1CIDUxMg0KDQpbICAgIDIuMDkxMzIxXSBMYXN0IGxldmVsIGRUTEIgZW50
cmllczogNEtCIDIwNDgsIDJNQiAyMDQ4LCA0TUIgMTAyNCwgMUdCIDANCg0KWyAgICAyLjA5MTMy
MV0gU3BlY3RyZSBWMSA6IE1pdGlnYXRpb246IHVzZXJjb3B5L3N3YXBncyBiYXJyaWVycyBhbmQg
X191c2VyIHBvaW50ZXIgc2FuaXRpemF0aW9uDQoNClsgICAgMi4wOTEzMjFdIFNwZWN0cmUgVjIg
OiBNaXRpZ2F0aW9uOiBSZXRwb2xpbmVzDQoNClsgICAgMi4wOTEzMjFdIFNwZWN0cmUgVjIgOiBT
cGVjdHJlIHYyIC8gU3BlY3RyZVJTQiBtaXRpZ2F0aW9uOiBGaWxsaW5nIFJTQiBvbiBjb250ZXh0
IHN3aXRjaA0KDQpbICAgIDIuMDkxMzIxXSBTcGVjdHJlIFYyIDogU3BlY3RyZSB2MiAvIFNwZWN0
cmVSU0IgOiBGaWxsaW5nIFJTQiBvbiBWTUVYSVQNCg0KWyAgICAyLjA5MTMyMV0gU3BlY3RyZSBW
MiA6IEVuYWJsaW5nIFNwZWN1bGF0aW9uIEJhcnJpZXIgZm9yIGZpcm13YXJlIGNhbGxzDQoNClsg
ICAgMi4wOTEzMjFdIFJFVEJsZWVkOiBNaXRpZ2F0aW9uOiB1bnRyYWluZWQgcmV0dXJuIHRodW5r
DQoNClsgICAgMi4wOTEzMjFdIFNwZWN0cmUgVjIgOiBtaXRpZ2F0aW9uOiBFbmFibGluZyBjb25k
aXRpb25hbCBJbmRpcmVjdCBCcmFuY2ggUHJlZGljdGlvbiBCYXJyaWVyDQoNClsgICAgMi4wOTEz
MjFdIFNwZWN1bGF0aXZlIFN0b3JlIEJ5cGFzczogTWl0aWdhdGlvbjogU3BlY3VsYXRpdmUgU3Rv
cmUgQnlwYXNzIGRpc2FibGVkIHZpYSBwcmN0bA0KDQpbICAgIDIuMDkxMzIxXSB4ODYvZnB1OiBT
dXBwb3J0aW5nIFhTQVZFIGZlYXR1cmUgMHgwMDE6ICd4ODcgZmxvYXRpbmcgcG9pbnQgcmVnaXN0
ZXJzJw0KDQpbICAgIDIuMDkxMzIxXSB4ODYvZnB1OiBTdXBwb3J0aW5nIFhTQVZFIGZlYXR1cmUg
MHgwMDI6ICdTU0UgcmVnaXN0ZXJzJw0KDQpbICAgIDIuMDkxMzIxXSB4ODYvZnB1OiBTdXBwb3J0
aW5nIFhTQVZFIGZlYXR1cmUgMHgwMDQ6ICdBVlggcmVnaXN0ZXJzJw0KDQpbICAgIDIuMDkxMzIx
XSB4ODYvZnB1OiB4c3RhdGVfb2Zmc2V0WzJdOiAgNTc2LCB4c3RhdGVfc2l6ZXNbMl06ICAyNTYN
Cg0KWyAgICAyLjA5MTMyMV0geDg2L2ZwdTogRW5hYmxlZCB4c3RhdGUgZmVhdHVyZXMgMHg3LCBj
b250ZXh0IHNpemUgaXMgODMyIGJ5dGVzLCB1c2luZyAnY29tcGFjdGVkJyBmb3JtYXQuDQoNClsg
ICAgMi4wOTEzMjFdIEZyZWVpbmcgU01QIGFsdGVybmF0aXZlcyBtZW1vcnk6IDUySw0KDQpbICAg
IDIuMDkxMzIxXSBwaWRfbWF4OiBkZWZhdWx0OiAzMjc2OCBtaW5pbXVtOiAzMDENCg0KWyAgICAy
LjA5MTMyMV0gTFNNOiBpbml0aWFsaXppbmcgbHNtPWNhcGFiaWxpdHksc2VsaW51eA0KDQpbICAg
IDIuMDkxMzIxXSBTRUxpbnV4OiAgSW5pdGlhbGl6aW5nLg0KDQpbICAgIDIuMDkxMzIxXSBNb3Vu
dC1jYWNoZSBoYXNoIHRhYmxlIGVudHJpZXM6IDgxOTIgKG9yZGVyOiA0LCA2NTUzNiBieXRlcywg
bGluZWFyKQ0KDQpbICAgIDIuMDkxMzIxXSBNb3VudHBvaW50LWNhY2hlIGhhc2ggdGFibGUgZW50
cmllczogODE5MiAob3JkZXI6IDQsIDY1NTM2IGJ5dGVzLCBsaW5lYXIpDQoNClsgICAgMi4wOTEz
MjFdIGNsb2Nrc291cmNlOiB4ZW46IG1hc2s6IDB4ZmZmZmZmZmZmZmZmZmZmZiBtYXhfY3ljbGVz
OiAweDFjZDQyZTRkZmZiLCBtYXhfaWRsZV9uczogODgxNTkwNTkxNDgzIG5zDQoNClsgICAgMi4w
OTEzMjFdIFhlbjogdXNpbmcgdmNwdW9wIHRpbWVyIGludGVyZmFjZQ0KDQpbICAgIDIuMDkxMzIx
XSBpbnN0YWxsaW5nIFhlbiB0aW1lciBmb3IgQ1BVIDANCg0KWyAgICAyLjA5MTMyMV0gc21wYm9v
dDogQ1BVMDogQU1EIFJ5emVuIEVtYmVkZGVkIFYyNzQ4IHdpdGggUmFkZW9uIEdyYXBoaWNzIChm
YW1pbHk6IDB4MTcsIG1vZGVsOiAweDYwLCBzdGVwcGluZzogMHgxKQ0KDQpbICAgIDIuMDk1MzY0
XSBQZXJmb3JtYW5jZSBFdmVudHM6IFBNVSBub3QgYXZhaWxhYmxlIGR1ZSB0byB2aXJ0dWFsaXph
dGlvbiwgdXNpbmcgc29mdHdhcmUgZXZlbnRzIG9ubHkuDQoNClsgICAgMi4wOTYzNDFdIHNpZ25h
bDogbWF4IHNpZ2ZyYW1lIHNpemU6IDE3NzYNCg0KWyAgICAyLjA5NzM0M10gcmN1OiBIaWVyYXJj
aGljYWwgU1JDVSBpbXBsZW1lbnRhdGlvbi4NCg0KWyAgICAyLjA5ODMyNl0gcmN1OiAJTWF4IHBo
YXNlIG5vLWRlbGF5IGluc3RhbmNlcyBpcyA0MDAuDQoNClsgICAgMi4wOTkzNTVdIFRpbWVyIG1p
Z3JhdGlvbjogMSBoaWVyYXJjaHkgbGV2ZWxzOyA4IGNoaWxkcmVuIHBlciBncm91cDsgMSBjcm9z
c25vZGUgbGV2ZWwNCg0KWyAgICAyLjEwNDMyOF0gc21wOiBCcmluZ2luZyB1cCBzZWNvbmRhcnkg
Q1BVcyAuLi4NCg0KWyAgICAyLjEwNjM2MV0gaW5zdGFsbGluZyBYZW4gdGltZXIgZm9yIENQVSAx
DQoNClsgICAgMi4xMDczODhdIHNtcGJvb3Q6IHg4NjogQm9vdGluZyBTTVAgY29uZmlndXJhdGlv
bjoNCg0KKFhFTikgWyAgIDE1Ljg5OTcxM10gY29tbW9uL3NjaGVkL251bGwuYzozNTc6IDEgPC0t
IGQwdjENClsgICAgMi4xMDgzMjddIC4uLi4gbm9kZSAgIzAsIENQVXM6ICAgICAgIzENCg0KWyAg
ICAyLjExMjM0Nl0gaW5zdGFsbGluZyBYZW4gdGltZXIgZm9yIENQVSAyDQoNCihYRU4pIFsgICAx
NS45Mjg5MDldIGNvbW1vbi9zY2hlZC9udWxsLmM6MzU3OiAyIDwtLSBkMHYyDQpbICAgIDIuMTE0
NDA3XSAgIzINCg0KWyAgICAyLjExODM0Nl0gaW5zdGFsbGluZyBYZW4gdGltZXIgZm9yIENQVSAz
DQoNCihYRU4pIFsgICAxNS45NTM3MTldIGNvbW1vbi9zY2hlZC9udWxsLmM6MzU3OiAzIDwtLSBk
MHYzDQpbICAgIDIuMTIwNDEzXSAgIzMNCg0KWyAgICAyLjEyNDM5Ml0gc21wOiBCcm91Z2h0IHVw
IDEgbm9kZSwgNCBDUFVzDQoNClsgICAgMi4xMjYzMjhdIHNtcGJvb3Q6IFRvdGFsIG9mIDQgcHJv
Y2Vzc29ycyBhY3RpdmF0ZWQgKDIzMTU2LjMyIEJvZ29NSVBTKQ0KDQpbICAgIDIuMTI4Mzc1XSBN
ZW1vcnk6IDI4MzY3MjRLLzMyOTQwNjQ4SyBhdmFpbGFibGUgKDIwNDgwSyBrZXJuZWwgY29kZSwg
MjkzOEsgcndkYXRhLCA3MzQ4SyByb2RhdGEsIDMwMjBLIGluaXQsIDI0NTZLIGJzcywgMzAwOTk5
NjRLIHJlc2VydmVkLCAwSyBjbWEtcmVzZXJ2ZWQpDQoNClsgICAgMi4xMzAwODFdIGRldnRtcGZz
OiBpbml0aWFsaXplZA0KDQpbICAgIDIuMTMwMzQ5XSB4ODYvbW06IE1lbW9yeSBibG9jayBzaXpl
OiAxMjhNQg0KDQpbICAgIDIuMTMyOTMzXSBBQ1BJOiBQTTogUmVnaXN0ZXJpbmcgQUNQSSBOVlMg
cmVnaW9uIFttZW0gMHgwYTIwMDAwMC0weDBhMjBjZmZmXSAoNTMyNDggYnl0ZXMpDQoNClsgICAg
Mi4xMzMzMzVdIEFDUEk6IFBNOiBSZWdpc3RlcmluZyBBQ1BJIE5WUyByZWdpb24gW21lbSAweGNj
MTk2MDAwLTB4Y2MzODhmZmZdICgyMDQzOTA0IGJ5dGVzKQ0KDQpbICAgIDIuMTM0MzM4XSBBQ1BJ
OiBQTTogUmVnaXN0ZXJpbmcgQUNQSSBOVlMgcmVnaW9uIFttZW0gMHhjYzM4YTAwMC0weGNjNzA5
ZmZmXSAoMzY3MDAxNiBieXRlcykNCg0KWyAgICAyLjEzNTM3MF0gY2xvY2tzb3VyY2U6IGppZmZp
ZXM6IG1hc2s6IDB4ZmZmZmZmZmYgbWF4X2N5Y2xlczogMHhmZmZmZmZmZiwgbWF4X2lkbGVfbnM6
IDE5MTEyNjA0NDYyNzUwMDAgbnMNCg0KWyAgICAyLjEzNjMzMF0gZnV0ZXggaGFzaCB0YWJsZSBl
bnRyaWVzOiAxMDI0IChvcmRlcjogNCwgNjU1MzYgYnl0ZXMsIGxpbmVhcikNCg0KWyAgICAyLjEz
NzM5NF0gUE06IFJUQyB0aW1lOiAwNDoyOTozNCwgZGF0ZTogMjAyNS0wNC0yNA0KDQpbICAgIDIu
MTM4NzgzXSBORVQ6IFJlZ2lzdGVyZWQgUEZfTkVUTElOSy9QRl9ST1VURSBwcm90b2NvbCBmYW1p
bHkNCg0KWyAgICAyLjEzOTM0MV0geGVuOmdyYW50X3RhYmxlOiBHcmFudCB0YWJsZXMgdXNpbmcg
dmVyc2lvbiAxIGxheW91dA0KDQpbICAgIDIuMTQwMzQ0XSBHcmFudCB0YWJsZSBpbml0aWFsaXpl
ZA0KDQpbICAgIDIuMTQxNDAwXSBhdWRpdDogaW5pdGlhbGl6aW5nIG5ldGxpbmsgc3Vic3lzIChk
aXNhYmxlZCkNCg0KWyAgICAyLjE0MjM1MF0gYXVkaXQ6IHR5cGU9MjAwMCBhdWRpdCgxNzQ1NDY4
OTc1LjQzMjoxKTogc3RhdGU9aW5pdGlhbGl6ZWQgYXVkaXRfZW5hYmxlZD0wIHJlcz0xDQoNClsg
ICAgMi4xNDIzNzhdIHRoZXJtYWxfc3lzOiBSZWdpc3RlcmVkIHRoZXJtYWwgZ292ZXJub3IgJ3N0
ZXBfd2lzZScNCg0KWyAgICAyLjE1OTMzMV0gdGhlcm1hbF9zeXM6IFJlZ2lzdGVyZWQgdGhlcm1h
bCBnb3Zlcm5vciAndXNlcl9zcGFjZScNCg0KWyAgICAyLjE3MTMzOF0gY3B1aWRsZTogdXNpbmcg
Z292ZXJub3IgbWVudQ0KDQpbICAgIDIuMTkxNTMzXSBQQ0k6IEVDQU0gW21lbSAweGYwMDAwMDAw
LTB4ZjdmZmZmZmZdIChiYXNlIDB4ZjAwMDAwMDApIGZvciBkb21haW4gMDAwMCBbYnVzIDAwLTdm
XQ0KDQpbICAgIDIuMjA4MzQzXSBQQ0k6IFVzaW5nIGNvbmZpZ3VyYXRpb24gdHlwZSAxIGZvciBi
YXNlIGFjY2Vzcw0KDQpbICAgIDIuMjE5MzY2XSBrcHJvYmVzOiBrcHJvYmUganVtcC1vcHRpbWl6
YXRpb24gaXMgZW5hYmxlZC4gQWxsIGtwcm9iZXMgYXJlIG9wdGltaXplZCBpZiBwb3NzaWJsZS4N
Cg0KWyAgICAyLjIzNzQyMV0gSHVnZVRMQjogcmVnaXN0ZXJlZCAxLjAwIEdpQiBwYWdlIHNpemUs
IHByZS1hbGxvY2F0ZWQgMCBwYWdlcw0KDQpbICAgIDIuMjM4MzI5XSBIdWdlVExCOiAxNjM4MCBL
aUIgdm1lbW1hcCBjYW4gYmUgZnJlZWQgZm9yIGEgMS4wMCBHaUIgcGFnZQ0KDQpbICAgIDIuMjM5
MzI4XSBIdWdlVExCOiByZWdpc3RlcmVkIDIuMDAgTWlCIHBhZ2Ugc2l6ZSwgcHJlLWFsbG9jYXRl
ZCAwIHBhZ2VzDQoNClsgICAgMi4yNDAzMjddIEh1Z2VUTEI6IDI4IEtpQiB2bWVtbWFwIGNhbiBi
ZSBmcmVlZCBmb3IgYSAyLjAwIE1pQiBwYWdlDQoNClsgICAgMi4yNDEzODFdIEFDUEk6IEFkZGVk
IF9PU0koTW9kdWxlIERldmljZSkNCg0KWyAgICAyLjI0MjMyOF0gQUNQSTogQWRkZWQgX09TSShQ
cm9jZXNzb3IgRGV2aWNlKQ0KDQpbICAgIDIuMjQzMzI2XSBBQ1BJOiBBZGRlZCBfT1NJKDMuMCBf
U0NQIEV4dGVuc2lvbnMpDQoNClsgICAgMi4yNDQzMjddIEFDUEk6IEFkZGVkIF9PU0koUHJvY2Vz
c29yIEFnZ3JlZ2F0b3IgRGV2aWNlKQ0KDQpbICAgIDIuMjU2OTkzXSBBQ1BJOiAxMSBBQ1BJIEFN
TCB0YWJsZXMgc3VjY2Vzc2Z1bGx5IGFjcXVpcmVkIGFuZCBsb2FkZWQNCg0KKFhFTikgWyAgIDE2
LjM5MzE3Nl0gZDA6IGJpbmQ6IG1fZ3NpPTkgZ19nc2k9OQ0KWyAgICAyLjI1ODgzM10gQUNQSTog
W0Zpcm13YXJlIEJ1Z106IEJJT1MgX09TSShMaW51eCkgcXVlcnkgaWdub3JlZA0KDQpbICAgIDIu
MjYyMDcwXSBBQ1BJOiBJbnRlcnByZXRlciBlbmFibGVkDQoNClsgICAgMi4yNjIzMzZdIEFDUEk6
IFBNOiAoc3VwcG9ydHMgUzAgUzMgUzQgUzUpDQoNClsgICAgMi4yNjMzMjddIEFDUEk6IFVzaW5n
IElPQVBJQyBmb3IgaW50ZXJydXB0IHJvdXRpbmcNCg0KWyAgICAyLjI2NDU0OF0gUENJOiBVc2lu
ZyBob3N0IGJyaWRnZSB3aW5kb3dzIGZyb20gQUNQSTsgaWYgbmVjZXNzYXJ5LCB1c2UgInBjaT1u
b2NycyIgYW5kIHJlcG9ydCBhIGJ1Zw0KDQpbICAgIDIuMjY1MzM0XSBQQ0k6IElnbm9yaW5nIEU4
MjAgcmVzZXJ2YXRpb25zIGZvciBob3N0IGJyaWRnZSB3aW5kb3dzDQoNClsgICAgMi4yNjY2ODVd
IEFDUEk6IEVuYWJsZWQgNiBHUEVzIGluIGJsb2NrIDAwIHRvIDFGDQoNClsgICAgMi4yNjg4NThd
IEFDUEk6IFxfU0JfLlAwUzA6IE5ldyBwb3dlciByZXNvdXJjZQ0KDQpbICAgIDIuMjY5MzQ0XSBB
Q1BJOiBcX1NCXy5QM1MwOiBOZXcgcG93ZXIgcmVzb3VyY2UNCg0KWyAgICAyLjI3MDM3Nl0gQUNQ
STogXF9TQl8uUDBTMTogTmV3IHBvd2VyIHJlc291cmNlDQoNClsgICAgMi4yNzEzNDRdIEFDUEk6
IFxfU0JfLlAzUzE6IE5ldyBwb3dlciByZXNvdXJjZQ0KDQpbICAgIDIuMjc4NTc3XSBBQ1BJOiBc
X1NCXy5QUldMOiBOZXcgcG93ZXIgcmVzb3VyY2UNCg0KWyAgICAyLjI3OTM0OV0gQUNQSTogXF9T
Ql8uUFJXQjogTmV3IHBvd2VyIHJlc291cmNlDQoNClsgICAgMi4yODA2NzldIEFDUEk6IFBDSSBS
b290IEJyaWRnZSBbUENJMF0gKGRvbWFpbiAwMDAwIFtidXMgMDAtZmZdKQ0KDQpbICAgIDIuMjgx
MzMwXSBhY3BpIFBOUDBBMDg6MDA6IF9PU0M6IE9TIHN1cHBvcnRzIFtFeHRlbmRlZENvbmZpZyBB
U1BNIENsb2NrUE0gU2VnbWVudHMgTVNJIEhQWC1UeXBlM10NCg0KWyAgICAyLjI4MjQ2M10gYWNw
aSBQTlAwQTA4OjAwOiBfT1NDOiBPUyBub3cgY29udHJvbHMgW1BNRSBQQ0llQ2FwYWJpbGl0eSBM
VFJdDQoNClsgICAgMi4yODMzMzNdIGFjcGkgUE5QMEEwODowMDogW0Zpcm13YXJlIEluZm9dOiBF
Q0FNIFttZW0gMHhmMDAwMDAwMC0weGY3ZmZmZmZmXSBmb3IgZG9tYWluIDAwMDAgW2J1cyAwMC03
Zl0gb25seSBwYXJ0aWFsbHkgY292ZXJzIHRoaXMgYnJpZGdlDQoNClsgICAgMi4yODQ2MTldIFBD
SSBob3N0IGJyaWRnZSB0byBidXMgMDAwMDowMA0KDQpbICAgIDIuMjg1MzI4XSBwY2lfYnVzIDAw
MDA6MDA6IHJvb3QgYnVzIHJlc291cmNlIFtpbyAgMHgwMDAwLTB4MDNhZiB3aW5kb3ddDQoNClsg
ICAgMi4yODYzMjddIHBjaV9idXMgMDAwMDowMDogcm9vdCBidXMgcmVzb3VyY2UgW2lvICAweDAz
ZTAtMHgwY2Y3IHdpbmRvd10NCg0KWyAgICAyLjI4NzMyN10gcGNpX2J1cyAwMDAwOjAwOiByb290
IGJ1cyByZXNvdXJjZSBbaW8gIDB4MDNiMC0weDAzZGYgd2luZG93XQ0KDQpbICAgIDIuMjg4MzI3
XSBwY2lfYnVzIDAwMDA6MDA6IHJvb3QgYnVzIHJlc291cmNlIFtpbyAgMHgwZDAwLTB4ZmZmZiB3
aW5kb3ddDQoNClsgICAgMi4yODkzMjddIHBjaV9idXMgMDAwMDowMDogcm9vdCBidXMgcmVzb3Vy
Y2UgW21lbSAweDAwMGEwMDAwLTB4MDAwZGZmZmYgd2luZG93XQ0KDQpbICAgIDIuMjkwMzI3XSBw
Y2lfYnVzIDAwMDA6MDA6IHJvb3QgYnVzIHJlc291cmNlIFttZW0gMHhkMDAwMDAwMC0weGZlYmZm
ZmZmIHdpbmRvd10NCg0KWyAgICAyLjI5MTMyN10gcGNpX2J1cyAwMDAwOjAwOiByb290IGJ1cyBy
ZXNvdXJjZSBbbWVtIDB4ZmVlMDAwMDAtMHhmZmZmZmZmZiB3aW5kb3ddDQoNClsgICAgMi4yOTIz
MjddIHBjaV9idXMgMDAwMDowMDogcm9vdCBidXMgcmVzb3VyY2UgW21lbSAweDgzMDAwMDAwMC0w
eGZmZmZmZmZmZmYgd2luZG93XQ0KDQpbICAgIDIuMjkzMzI4XSBwY2lfYnVzIDAwMDA6MDA6IHJv
b3QgYnVzIHJlc291cmNlIFtidXMgMDAtZmZdDQoNClsgICAgMi4yOTQzNTZdIHBjaSAwMDAwOjAw
OjAwLjA6IFsxMDIyOjE2MzBdIHR5cGUgMDAgY2xhc3MgMHgwNjAwMDAgY29udmVudGlvbmFsIFBD
SSBlbmRwb2ludA0KDQooWEVOKSBbICAgMTYuNzY4NTU2XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAw
OjAwLjANClsgICAgMi4yOTYzNTRdIHBjaSAwMDAwOjAwOjAwLjI6IFsxMDIyOjE2MzFdIHR5cGUg
MDAgY2xhc3MgMHgwODA2MDAgY29udmVudGlvbmFsIFBDSSBlbmRwb2ludA0KDQooWEVOKSBbICAg
MTYuNzkzODY2XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjAwLjINClsgICAgMi4yOTgzNTddIHBj
aSAwMDAwOjAwOjAxLjA6IFsxMDIyOjE2MzJdIHR5cGUgMDAgY2xhc3MgMHgwNjAwMDAgY29udmVu
dGlvbmFsIFBDSSBlbmRwb2ludA0KDQooWEVOKSBbICAgMTYuODE5MTcyXSBQQ0kgYWRkIGRldmlj
ZSAwMDAwOjAwOjAxLjANClsgICAgMi4zMDAzNjBdIHBjaSAwMDAwOjAwOjAyLjA6IFsxMDIyOjE2
MzJdIHR5cGUgMDAgY2xhc3MgMHgwNjAwMDAgY29udmVudGlvbmFsIFBDSSBlbmRwb2ludA0KDQoo
WEVOKSBbICAgMTYuODQ0NDc5XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjAyLjANClsgICAgMi4z
MDIzNTRdIHBjaSAwMDAwOjAwOjAyLjE6IFsxMDIyOjE2MzRdIHR5cGUgMDEgY2xhc3MgMHgwNjA0
MDAgUENJZSBSb290IFBvcnQNCg0KWyAgICAyLjMwMzM3OF0gcGNpIDAwMDA6MDA6MDIuMTogUENJ
IGJyaWRnZSB0byBbYnVzIDAxXQ0KDQpbICAgIDIuMzA0MzUwXSBwY2kgMDAwMDowMDowMi4xOiAg
IGJyaWRnZSB3aW5kb3cgW21lbSAweGZmZTAwMDAwMDAtMHhmZmY4MGZmZmZmIDY0Yml0IHByZWZd
DQoNClsgICAgMi4zMDU1MjJdIHBjaSAwMDAwOjAwOjAyLjE6IFBNRSMgc3VwcG9ydGVkIGZyb20g
RDAgRDNob3QgRDNjb2xkDQoNCihYRU4pIFsgICAxNi45MDY1MzVdIFBDSSBhZGQgZGV2aWNlIDAw
MDA6MDA6MDIuMQ0KWyAgICAyLjMwNzM1Nl0gcGNpIDAwMDA6MDA6MDIuMzogWzEwMjI6MTYzNF0g
dHlwZSAwMSBjbGFzcyAweDA2MDQwMCBQQ0llIFJvb3QgUG9ydA0KDQpbICAgIDIuMzA4MzczXSBw
Y2kgMDAwMDowMDowMi4zOiBQQ0kgYnJpZGdlIHRvIFtidXMgMDJdDQoNClsgICAgMi4zMDkzMzdd
IHBjaSAwMDAwOjAwOjAyLjM6ICAgYnJpZGdlIHdpbmRvdyBbbWVtIDB4ZmVhMDAwMDAtMHhmZWFm
ZmZmZl0NCg0KWyAgICAyLjMxMDM1NV0gcGNpIDAwMDA6MDA6MDIuMzogZW5hYmxpbmcgRXh0ZW5k
ZWQgVGFncw0KDQpbICAgIDIuMzExNTEwXSBwY2kgMDAwMDowMDowMi4zOiBQTUUjIHN1cHBvcnRl
ZCBmcm9tIEQwIEQzaG90IEQzY29sZA0KDQooWEVOKSBbICAgMTYuOTc2MDQxXSBQQ0kgYWRkIGRl
dmljZSAwMDAwOjAwOjAyLjMNClsgICAgMi4zMTMzNTVdIHBjaSAwMDAwOjAwOjAyLjQ6IFsxMDIy
OjE2MzRdIHR5cGUgMDEgY2xhc3MgMHgwNjA0MDAgUENJZSBSb290IFBvcnQNCg0KWyAgICAyLjMx
NDM3Ml0gcGNpIDAwMDA6MDA6MDIuNDogUENJIGJyaWRnZSB0byBbYnVzIDAzXQ0KDQpbICAgIDIu
MzE1MzM0XSBwY2kgMDAwMDowMDowMi40OiAgIGJyaWRnZSB3aW5kb3cgW2lvICAweGYwMDAtMHhm
ZmZmXQ0KDQpbICAgIDIuMzE2MzMwXSBwY2kgMDAwMDowMDowMi40OiAgIGJyaWRnZSB3aW5kb3cg
W21lbSAweGZlOTAwMDAwLTB4ZmU5ZmZmZmZdDQoNClsgICAgMi4zMTczNTVdIHBjaSAwMDAwOjAw
OjAyLjQ6IGVuYWJsaW5nIEV4dGVuZGVkIFRhZ3MNCg0KWyAgICAyLjMxODUwNl0gcGNpIDAwMDA6
MDA6MDIuNDogUE1FIyBzdXBwb3J0ZWQgZnJvbSBEMCBEM2hvdCBEM2NvbGQNCg0KKFhFTikgWyAg
IDE3LjA1Nzg1Ml0gUENJIGFkZCBkZXZpY2UgMDAwMDowMDowMi40DQpbICAgIDIuMzIwMzYzXSBw
Y2kgMDAwMDowMDowOC4wOiBbMTAyMjoxNjMyXSB0eXBlIDAwIGNsYXNzIDB4MDYwMDAwIGNvbnZl
bnRpb25hbCBQQ0kgZW5kcG9pbnQNCg0KKFhFTikgWyAgIDE3LjA4MzE2MV0gUENJIGFkZCBkZXZp
Y2UgMDAwMDowMDowOC4wDQpbICAgIDIuMzIyMzU0XSBwY2kgMDAwMDowMDowOC4xOiBbMTAyMjox
NjM1XSB0eXBlIDAxIGNsYXNzIDB4MDYwNDAwIFBDSWUgUm9vdCBQb3J0DQoNClsgICAgMi4zMjMz
NzNdIHBjaSAwMDAwOjAwOjA4LjE6IFBDSSBicmlkZ2UgdG8gW2J1cyAwNF0NCg0KWyAgICAyLjMy
NDMzNF0gcGNpIDAwMDA6MDA6MDguMTogICBicmlkZ2Ugd2luZG93IFtpbyAgMHhlMDAwLTB4ZWZm
Zl0NCg0KWyAgICAyLjMyNTMzMF0gcGNpIDAwMDA6MDA6MDguMTogICBicmlkZ2Ugd2luZG93IFtt
ZW0gMHhmZTQwMDAwMC0weGZlN2ZmZmZmXQ0KDQpbICAgIDIuMzI2MzM5XSBwY2kgMDAwMDowMDow
OC4xOiAgIGJyaWRnZSB3aW5kb3cgW21lbSAweGQwMDAwMDAwLTB4ZTAxZmZmZmYgNjRiaXQgcHJl
Zl0NCg0KWyAgICAyLjMyNzM0Ml0gcGNpIDAwMDA6MDA6MDguMTogZW5hYmxpbmcgRXh0ZW5kZWQg
VGFncw0KDQpbICAgIDIuMzI4NDc3XSBwY2kgMDAwMDowMDowOC4xOiBQTUUjIHN1cHBvcnRlZCBm
cm9tIEQwIEQzaG90IEQzY29sZA0KDQooWEVOKSBbICAgMTcuMTgwNTcyXSBQQ0kgYWRkIGRldmlj
ZSAwMDAwOjAwOjA4LjENClsgICAgMi4zMzAzNThdIHBjaSAwMDAwOjAwOjA4LjI6IFsxMDIyOjE2
MzVdIHR5cGUgMDEgY2xhc3MgMHgwNjA0MDAgUENJZSBSb290IFBvcnQNCg0KWyAgICAyLjMzMTM3
M10gcGNpIDAwMDA6MDA6MDguMjogUENJIGJyaWRnZSB0byBbYnVzIDA1XQ0KDQpbICAgIDIuMzMy
MzM3XSBwY2kgMDAwMDowMDowOC4yOiAgIGJyaWRnZSB3aW5kb3cgW21lbSAweGZlODAwMDAwLTB4
ZmU4ZmZmZmZdDQoNClsgICAgMi4zMzMzNTNdIHBjaSAwMDAwOjAwOjA4LjI6IGVuYWJsaW5nIEV4
dGVuZGVkIFRhZ3MNCg0KWyAgICAyLjMzNDQ3N10gcGNpIDAwMDA6MDA6MDguMjogUE1FIyBzdXBw
b3J0ZWQgZnJvbSBEMCBEM2hvdCBEM2NvbGQNCg0KKFhFTikgWyAgIDE3LjI1MDA4M10gUENJIGFk
ZCBkZXZpY2UgMDAwMDowMDowOC4yDQpbICAgIDIuMzM2Mzc3XSBwY2kgMDAwMDowMDoxNC4wOiBb
MTAyMjo3OTBiXSB0eXBlIDAwIGNsYXNzIDB4MGMwNTAwIGNvbnZlbnRpb25hbCBQQ0kgZW5kcG9p
bnQNCg0KKFhFTikgWyAgIDE3LjI3NTM5MF0gUENJIGFkZCBkZXZpY2UgMDAwMDowMDoxNC4wDQpb
ICAgIDIuMzM4MzQ3XSBwY2kgMDAwMDowMDoxNC4zOiBbMTAyMjo3OTBlXSB0eXBlIDAwIGNsYXNz
IDB4MDYwMTAwIGNvbnZlbnRpb25hbCBQQ0kgZW5kcG9pbnQNCg0KKFhFTikgWyAgIDE3LjMwMDY5
Nl0gUENJIGFkZCBkZXZpY2UgMDAwMDowMDoxNC4zDQpbICAgIDIuMzQwMzY2XSBwY2kgMDAwMDow
MDoxOC4wOiBbMTAyMjoxNDQ4XSB0eXBlIDAwIGNsYXNzIDB4MDYwMDAwIGNvbnZlbnRpb25hbCBQ
Q0kgZW5kcG9pbnQNCg0KKFhFTikgWyAgIDE3LjMyNjAwMF0gUENJIGFkZCBkZXZpY2UgMDAwMDow
MDoxOC4wDQpbICAgIDIuMzQyMzQ0XSBwY2kgMDAwMDowMDoxOC4xOiBbMTAyMjoxNDQ5XSB0eXBl
IDAwIGNsYXNzIDB4MDYwMDAwIGNvbnZlbnRpb25hbCBQQ0kgZW5kcG9pbnQNCg0KKFhFTikgWyAg
IDE3LjM1MTMwOV0gUENJIGFkZCBkZXZpY2UgMDAwMDowMDoxOC4xDQpbICAgIDIuMzQ0MzQzXSBw
Y2kgMDAwMDowMDoxOC4yOiBbMTAyMjoxNDRhXSB0eXBlIDAwIGNsYXNzIDB4MDYwMDAwIGNvbnZl
bnRpb25hbCBQQ0kgZW5kcG9pbnQNCg0KKFhFTikgWyAgIDE3LjM3NjYxNl0gUENJIGFkZCBkZXZp
Y2UgMDAwMDowMDoxOC4yDQpbICAgIDIuMzQ2MzQzXSBwY2kgMDAwMDowMDoxOC4zOiBbMTAyMjox
NDRiXSB0eXBlIDAwIGNsYXNzIDB4MDYwMDAwIGNvbnZlbnRpb25hbCBQQ0kgZW5kcG9pbnQNCg0K
KFhFTikgWyAgIDE3LjQwMTkyMF0gUENJIGFkZCBkZXZpY2UgMDAwMDowMDoxOC4zDQpbICAgIDIu
MzQ4MzQzXSBwY2kgMDAwMDowMDoxOC40OiBbMTAyMjoxNDRjXSB0eXBlIDAwIGNsYXNzIDB4MDYw
MDAwIGNvbnZlbnRpb25hbCBQQ0kgZW5kcG9pbnQNCg0KKFhFTikgWyAgIDE3LjQyNzIyN10gUENJ
IGFkZCBkZXZpY2UgMDAwMDowMDoxOC40DQpbICAgIDIuMzUwMzQzXSBwY2kgMDAwMDowMDoxOC41
OiBbMTAyMjoxNDRkXSB0eXBlIDAwIGNsYXNzIDB4MDYwMDAwIGNvbnZlbnRpb25hbCBQQ0kgZW5k
cG9pbnQNCg0KKFhFTikgWyAgIDE3LjQ1MjUzNF0gUENJIGFkZCBkZXZpY2UgMDAwMDowMDoxOC41
DQpbICAgIDIuMzUyMzQzXSBwY2kgMDAwMDowMDoxOC42OiBbMTAyMjoxNDRlXSB0eXBlIDAwIGNs
YXNzIDB4MDYwMDAwIGNvbnZlbnRpb25hbCBQQ0kgZW5kcG9pbnQNCg0KKFhFTikgWyAgIDE3LjQ3
Nzg0M10gUENJIGFkZCBkZXZpY2UgMDAwMDowMDoxOC42DQpbICAgIDIuMzU0MzQyXSBwY2kgMDAw
MDowMDoxOC43OiBbMTAyMjoxNDRmXSB0eXBlIDAwIGNsYXNzIDB4MDYwMDAwIGNvbnZlbnRpb25h
bCBQQ0kgZW5kcG9pbnQNCg0KKFhFTikgWyAgIDE3LjUwMzE0OF0gUENJIGFkZCBkZXZpY2UgMDAw
MDowMDoxOC43DQpbICAgIDIuMzU2NDIxXSBwY2kgMDAwMDowMTowMC4wOiBbMTBlZTo1NzAwXSB0
eXBlIDAwIGNsYXNzIDB4MTIwMDAwIFBDSWUgRW5kcG9pbnQNCg0KWyAgICAyLjM1NzM1NV0gcGNp
IDAwMDA6MDE6MDAuMDogQkFSIDAgW21lbSAweGZmZTAwMDAwMDAtMHhmZmVmZmZmZmZmIDY0Yml0
IHByZWZdDQoNClsgICAgMi4zNTgzNDVdIHBjaSAwMDAwOjAxOjAwLjA6IEJBUiAyIFttZW0gMHhm
ZmY4MDQwMDAwLTB4ZmZmODA3ZmZmZiA2NGJpdCBwcmVmXQ0KDQpbICAgIDIuMzU5NTMzXSBwY2kg
MDAwMDowMTowMC4wOiBzdXBwb3J0cyBEMQ0KDQpbICAgIDIuMzYwMzI2XSBwY2kgMDAwMDowMTow
MC4wOiBQTUUjIHN1cHBvcnRlZCBmcm9tIEQwIEQxIEQzaG90IEQzY29sZA0KDQooWEVOKSBbICAg
MTcuNTc2NDcxXSBQQ0kgYWRkIGRldmljZSAwMDAwOjAxOjAwLjANClsgICAgMi4zNjIzNzBdIHBj
aSAwMDAwOjAxOjAwLjE6IFsxMGVlOjU3MDFdIHR5cGUgMDAgY2xhc3MgMHgxMjAwMDAgUENJZSBF
bmRwb2ludA0KDQpbICAgIDIuMzYzMzU1XSBwY2kgMDAwMDowMTowMC4xOiBCQVIgMCBbbWVtIDB4
ZmZmODAwMDAwMC0weGZmZjgwM2ZmZmYgNjRiaXQgcHJlZl0NCg0KWyAgICAyLjM2NDM0NF0gcGNp
IDAwMDA6MDE6MDAuMTogQkFSIDIgW21lbSAweGZmZjAwMDAwMDAtMHhmZmY3ZmZmZmZmIDY0Yml0
IHByZWZdDQoNClsgICAgMi4zNjU1MTddIHBjaSAwMDAwOjAxOjAwLjE6IHN1cHBvcnRzIEQxDQoN
ClsgICAgMi4zNjYzMjZdIHBjaSAwMDAwOjAxOjAwLjE6IFBNRSMgc3VwcG9ydGVkIGZyb20gRDAg
RDEgRDNob3QgRDNjb2xkDQoNCihYRU4pIFsgICAxNy42NDk3OTFdIFBDSSBhZGQgZGV2aWNlIDAw
MDA6MDE6MDAuMQ0KWyAgICAyLjM2ODM1MF0gcGNpIDAwMDA6MDA6MDIuMTogUENJIGJyaWRnZSB0
byBbYnVzIDAxXQ0KDQpbICAgIDIuMzY5NDI0XSBwY2kgMDAwMDowMjowMC4wOiBbMTQ0ZDphODA4
XSB0eXBlIDAwIGNsYXNzIDB4MDEwODAyIFBDSWUgRW5kcG9pbnQNCg0KKFhFTikgWyAgIDE3LjY4
MzA3Ml0gMDAwMDowMjowMC4wOiBub3QgbWFwcGluZyBCQVIgW2ZlYTAwLCBmZWEwM10gaW52YWxp
ZCBwb3NpdGlvbg0KWyAgICAyLjM3MTMyOV0gcGNpIDAwMDA6MDI6MDAuMDogQkFSIDAgW21lbSAw
eGZlYTAwMDAwLTB4ZmVhMDNmZmYgNjRiaXRdDQoNCihYRU4pIFsgICAxNy43MTA2MzJdIDAwMDA6
MDI6MDAuMDogbm90IG1hcHBpbmcgQkFSIFtmZWEwMCwgZmVhMDNdIGludmFsaWQgcG9zaXRpb24N
CihYRU4pIFsgICAxNy43MjUxOTJdIDAwMDA6MDI6MDAuMDogbm90IG1hcHBpbmcgQkFSIFtmZWEw
MCwgZmVhMDNdIGludmFsaWQgcG9zaXRpb24NCihYRU4pIFsgICAxNy43Mzk3NDldIDAwMDA6MDI6
MDAuMDogbm90IG1hcHBpbmcgQkFSIFtmZWEwMCwgZmVhMDNdIGludmFsaWQgcG9zaXRpb24NCihY
RU4pIFsgICAxNy43NTQzMTJdIDAwMDA6MDI6MDAuMDogbm90IG1hcHBpbmcgQkFSIFtmZWEwMCwg
ZmVhMDNdIGludmFsaWQgcG9zaXRpb24NCihYRU4pIFsgICAxNy43Njg4NzJdIDAwMDA6MDI6MDAu
MDogbm90IG1hcHBpbmcgQkFSIFtmZWEwMCwgZmVhMDNdIGludmFsaWQgcG9zaXRpb24NCihYRU4p
IFsgICAxNy43ODM2ODJdIFBDSSBhZGQgZGV2aWNlIDAwMDA6MDI6MDAuMA0KWyAgICAyLjM3ODMz
OV0gcGNpIDAwMDA6MDA6MDIuMzogUENJIGJyaWRnZSB0byBbYnVzIDAyXQ0KDQpbICAgIDIuMzc5
NDI2XSBwY2kgMDAwMDowMzowMC4wOiBbMTBlYzo4MTI1XSB0eXBlIDAwIGNsYXNzIDB4MDIwMDAw
IFBDSWUgRW5kcG9pbnQNCg0KKFhFTikgWyAgIDE3LjgxNjk2M10gMDAwMDowMzowMC4wOiBub3Qg
bWFwcGluZyBCQVIgW2ZlOTAwLCBmZTkwZl0gaW52YWxpZCBwb3NpdGlvbg0KKFhFTikgWyAgIDE3
LjgzMTUyNV0gMDAwMDowMzowMC4wOiBub3QgbWFwcGluZyBCQVIgW2ZlOTEwLCBmZTkxM10gaW52
YWxpZCBwb3NpdGlvbg0KWyAgICAyLjM4MTMyN10gcGNpIDAwMDA6MDM6MDAuMDogQkFSIDAgW2lv
ICAweGYwMDAtMHhmMGZmXQ0KDQooWEVOKSBbICAgMTcuODU2NjU1XSAwMDAwOjAzOjAwLjA6IG5v
dCBtYXBwaW5nIEJBUiBbZmU5MDAsIGZlOTBmXSBpbnZhbGlkIHBvc2l0aW9uDQooWEVOKSBbICAg
MTcuODcxMjIwXSAwMDAwOjAzOjAwLjA6IG5vdCBtYXBwaW5nIEJBUiBbZmU5MTAsIGZlOTEzXSBp
bnZhbGlkIHBvc2l0aW9uDQooWEVOKSBbICAgMTcuODg1Nzc1XSAwMDAwOjAzOjAwLjA6IG5vdCBt
YXBwaW5nIEJBUiBbZmU5MDAsIGZlOTBmXSBpbnZhbGlkIHBvc2l0aW9uDQooWEVOKSBbICAgMTcu
OTAwMzM0XSAwMDAwOjAzOjAwLjA6IG5vdCBtYXBwaW5nIEJBUiBbZmU5MTAsIGZlOTEzXSBpbnZh
bGlkIHBvc2l0aW9uDQpbICAgIDIuMzg0MzI2XSBwY2kgMDAwMDowMzowMC4wOiBCQVIgMiBbbWVt
IDB4ZmU5MDAwMDAtMHhmZTkwZmZmZiA2NGJpdF0NCg0KKFhFTikgWyAgIDE3LjkyNzg5NV0gMDAw
MDowMzowMC4wOiBub3QgbWFwcGluZyBCQVIgW2ZlOTAwLCBmZTkwZl0gaW52YWxpZCBwb3NpdGlv
bg0KKFhFTikgWyAgIDE3Ljk0MjQ1NV0gMDAwMDowMzowMC4wOiBub3QgbWFwcGluZyBCQVIgW2Zl
OTEwLCBmZTkxM10gaW52YWxpZCBwb3NpdGlvbg0KWyAgICAyLjM4NjMyN10gcGNpIDAwMDA6MDM6
MDAuMDogQkFSIDQgW21lbSAweGZlOTEwMDAwLTB4ZmU5MTNmZmYgNjRiaXRdDQoNCihYRU4pIFsg
ICAxNy45NzAwMTVdIDAwMDA6MDM6MDAuMDogbm90IG1hcHBpbmcgQkFSIFtmZTkwMCwgZmU5MGZd
IGludmFsaWQgcG9zaXRpb24NCihYRU4pIFsgICAxNy45ODQ1NzddIDAwMDA6MDM6MDAuMDogbm90
IG1hcHBpbmcgQkFSIFtmZTkxMCwgZmU5MTNdIGludmFsaWQgcG9zaXRpb24NClsgICAgMi4zODg1
NThdIHBjaSAwMDAwOjAzOjAwLjA6IHN1cHBvcnRzIEQxIEQyDQoNClsgICAgMi4zODkzMjddIHBj
aSAwMDAwOjAzOjAwLjA6IFBNRSMgc3VwcG9ydGVkIGZyb20gRDAgRDEgRDIgRDNob3QgRDNjb2xk
DQoNCihYRU4pIFsgICAxOC4wMjEyNTZdIFBDSSBhZGQgZGV2aWNlIDAwMDA6MDM6MDAuMA0KWyAg
ICAyLjM5MTQ0Nl0gcGNpIDAwMDA6MDA6MDIuNDogUENJIGJyaWRnZSB0byBbYnVzIDAzXQ0KDQpb
ICAgIDIuMzkyNDEzXSBwY2kgMDAwMDowNDowMC4wOiBbMTAwMjoxNjM2XSB0eXBlIDAwIGNsYXNz
IDB4MDMwMDAwIFBDSWUgTGVnYWN5IEVuZHBvaW50DQoNCihYRU4pIFsgICAxOC4wNTYzNTZdIDAw
MDA6MDQ6MDAuMDogbm90IG1hcHBpbmcgQkFSIFtmZTcwMCwgZmU3N2ZdIGludmFsaWQgcG9zaXRp
b24NClsgICAgMi4zOTQzMjZdIHBjaSAwMDAwOjA0OjAwLjA6IEJBUiAwIFttZW0gMHhkMDAwMDAw
MC0weGRmZmZmZmZmIDY0Yml0IHByZWZdDQoNCihYRU4pIFsgICAxOC4wODUxMTldIDAwMDA6MDQ6
MDAuMDogbm90IG1hcHBpbmcgQkFSIFtmZTcwMCwgZmU3N2ZdIGludmFsaWQgcG9zaXRpb24NClsg
ICAgMi4zOTYzMjZdIHBjaSAwMDAwOjA0OjAwLjA6IEJBUiAyIFttZW0gMHhlMDAwMDAwMC0weGUw
MWZmZmZmIDY0Yml0IHByZWZdDQoNCihYRU4pIFsgICAxOC4xMTM4NzZdIDAwMDA6MDQ6MDAuMDog
bm90IG1hcHBpbmcgQkFSIFtmZTcwMCwgZmU3N2ZdIGludmFsaWQgcG9zaXRpb24NClsgICAgMi4z
OTgzMjZdIHBjaSAwMDAwOjA0OjAwLjA6IEJBUiA0IFtpbyAgMHhlMDAwLTB4ZTBmZl0NCg0KKFhF
TikgWyAgIDE4LjEzOTM0MV0gMDAwMDowNDowMC4wOiBub3QgbWFwcGluZyBCQVIgW2ZlNzAwLCBm
ZTc3Zl0gaW52YWxpZCBwb3NpdGlvbg0KWyAgICAyLjQwMDMyNl0gcGNpIDAwMDA6MDQ6MDAuMDog
QkFSIDUgW21lbSAweGZlNzAwMDAwLTB4ZmU3N2ZmZmZdDQoNCihYRU4pIFsgICAxOC4xNjYxOTBd
IDAwMDA6MDQ6MDAuMDogbm90IG1hcHBpbmcgQkFSIFtmZTcwMCwgZmU3N2ZdIGludmFsaWQgcG9z
aXRpb24NClsgICAgMi40MDIzMzVdIHBjaSAwMDAwOjA0OjAwLjA6IGVuYWJsaW5nIEV4dGVuZGVk
IFRhZ3MNCg0KWyAgICAyLjQwMzU1Ml0gcGNpIDAwMDA6MDQ6MDAuMDogUE1FIyBzdXBwb3J0ZWQg
ZnJvbSBEMSBEMiBEM2hvdCBEM2NvbGQNCg0KWyAgICAyLjQwNDQxOF0gcGNpIDAwMDA6MDQ6MDAu
MDogMTI2LjAxNiBHYi9zIGF2YWlsYWJsZSBQQ0llIGJhbmR3aWR0aCwgbGltaXRlZCBieSA4LjAg
R1QvcyBQQ0llIHgxNiBsaW5rIGF0IDAwMDA6MDA6MDguMSAoY2FwYWJsZSBvZiAyNTIuMDQ4IEdi
L3Mgd2l0aCAxNi4wIEdUL3MgUENJZSB4MTYgbGluaykNCg0KKFhFTikgWyAgIDE4LjIzNDY1OV0g
UENJIGFkZCBkZXZpY2UgMDAwMDowNDowMC4wDQpbICAgIDIuNDA2MzU2XSBwY2kgMDAwMDowNDow
MC4xOiBbMTAwMjoxNjM3XSB0eXBlIDAwIGNsYXNzIDB4MDQwMzAwIFBDSWUgTGVnYWN5IEVuZHBv
aW50DQoNClsgICAgMi40MDczNDRdIHBjaSAwMDAwOjA0OjAwLjE6IEJBUiAwIFttZW0gMHhmZTdj
ODAwMC0weGZlN2NiZmZmXQ0KDQpbICAgIDIuNDA4Mzc5XSBwY2kgMDAwMDowNDowMC4xOiBlbmFi
bGluZyBFeHRlbmRlZCBUYWdzDQoNClsgICAgMi40MDk0MDZdIHBjaSAwMDAwOjA0OjAwLjE6IFBN
RSMgc3VwcG9ydGVkIGZyb20gRDEgRDIgRDNob3QgRDNjb2xkDQoNCihYRU4pIFsgICAxOC4yOTM5
NDBdIFBDSSBhZGQgZGV2aWNlIDAwMDA6MDQ6MDAuMQ0KWyAgICAyLjQxMTM1NV0gcGNpIDAwMDA6
MDQ6MDAuMjogWzEwMjI6MTVkZl0gdHlwZSAwMCBjbGFzcyAweDEwODAwMCBQQ0llIEVuZHBvaW50
DQoNClsgICAgMi40MTIzNThdIHBjaSAwMDAwOjA0OjAwLjI6IEJBUiAyIFttZW0gMHhmZTYwMDAw
MC0weGZlNmZmZmZmXQ0KDQpbICAgIDIuNDEzMzQ5XSBwY2kgMDAwMDowNDowMC4yOiBCQVIgNSBb
bWVtIDB4ZmU3Y2MwMDAtMHhmZTdjZGZmZl0NCg0KWyAgICAyLjQxNDM0NF0gcGNpIDAwMDA6MDQ6
MDAuMjogZW5hYmxpbmcgRXh0ZW5kZWQgVGFncw0KDQooWEVOKSBbICAgMTguMzUxMTQwXSBQQ0kg
YWRkIGRldmljZSAwMDAwOjA0OjAwLjINClsgICAgMi40MTYzNTVdIHBjaSAwMDAwOjA0OjAwLjM6
IFsxMDIyOjE2MzldIHR5cGUgMDAgY2xhc3MgMHgwYzAzMzAgUENJZSBFbmRwb2ludA0KDQooWEVO
KSBbICAgMTguMzc0MzY0XSAwMDAwOjA0OjAwLjM6IG5vdCBtYXBwaW5nIEJBUiBbZmU1MDAsIGZl
NWZmXSBpbnZhbGlkIHBvc2l0aW9uDQpbICAgIDIuNDE4MzI2XSBwY2kgMDAwMDowNDowMC4zOiBC
QVIgMCBbbWVtIDB4ZmU1MDAwMDAtMHhmZTVmZmZmZiA2NGJpdF0NCg0KKFhFTikgWyAgIDE4LjQw
MTkyN10gMDAwMDowNDowMC4zOiBub3QgbWFwcGluZyBCQVIgW2ZlNTAwLCBmZTVmZl0gaW52YWxp
ZCBwb3NpdGlvbg0KKFhFTikgWyAgIDE4LjQxNjQ4Nl0gMDAwMDowNDowMC4zOiBub3QgbWFwcGlu
ZyBCQVIgW2ZlNTAwLCBmZTVmZl0gaW52YWxpZCBwb3NpdGlvbg0KKFhFTikgWyAgIDE4LjQzMTA0
M10gMDAwMDowNDowMC4zOiBub3QgbWFwcGluZyBCQVIgW2ZlNTAwLCBmZTVmZl0gaW52YWxpZCBw
b3NpdGlvbg0KKFhFTikgWyAgIDE4LjQ0NTYwOF0gMDAwMDowNDowMC4zOiBub3QgbWFwcGluZyBC
QVIgW2ZlNTAwLCBmZTVmZl0gaW52YWxpZCBwb3NpdGlvbg0KKFhFTikgWyAgIDE4LjQ2MDE2OF0g
MDAwMDowNDowMC4zOiBub3QgbWFwcGluZyBCQVIgW2ZlNTAwLCBmZTVmZl0gaW52YWxpZCBwb3Np
dGlvbg0KWyAgICAyLjQyNDMzN10gcGNpIDAwMDA6MDQ6MDAuMzogZW5hYmxpbmcgRXh0ZW5kZWQg
VGFncw0KDQpbICAgIDIuNDI1NDEzXSBwY2kgMDAwMDowNDowMC4zOiBQTUUjIHN1cHBvcnRlZCBm
cm9tIEQwIEQzaG90IEQzY29sZA0KDQooWEVOKSBbICAgMTguNDk3MDg2XSBQQ0kgYWRkIGRldmlj
ZSAwMDAwOjA0OjAwLjMNClsgICAgMi40MjczNTRdIHBjaSAwMDAwOjA0OjAwLjQ6IFsxMDIyOjE2
MzldIHR5cGUgMDAgY2xhc3MgMHgwYzAzMzAgUENJZSBFbmRwb2ludA0KDQooWEVOKSBbICAgMTgu
NTIwMzEzXSAwMDAwOjA0OjAwLjQ6IG5vdCBtYXBwaW5nIEJBUiBbZmU0MDAsIGZlNGZmXSBpbnZh
bGlkIHBvc2l0aW9uDQpbICAgIDIuNDI5MzI2XSBwY2kgMDAwMDowNDowMC40OiBCQVIgMCBbbWVt
IDB4ZmU0MDAwMDAtMHhmZTRmZmZmZiA2NGJpdF0NCg0KKFhFTikgWyAgIDE4LjU0Nzg3M10gMDAw
MDowNDowMC40OiBub3QgbWFwcGluZyBCQVIgW2ZlNDAwLCBmZTRmZl0gaW52YWxpZCBwb3NpdGlv
bg0KKFhFTikgWyAgIDE4LjU2MjQzM10gMDAwMDowNDowMC40OiBub3QgbWFwcGluZyBCQVIgW2Zl
NDAwLCBmZTRmZl0gaW52YWxpZCBwb3NpdGlvbg0KKFhFTikgWyAgIDE4LjU3Njk5NV0gMDAwMDow
NDowMC40OiBub3QgbWFwcGluZyBCQVIgW2ZlNDAwLCBmZTRmZl0gaW52YWxpZCBwb3NpdGlvbg0K
KFhFTikgWyAgIDE4LjU5MTU1M10gMDAwMDowNDowMC40OiBub3QgbWFwcGluZyBCQVIgW2ZlNDAw
LCBmZTRmZl0gaW52YWxpZCBwb3NpdGlvbg0KKFhFTikgWyAgIDE4LjYwNjExMV0gMDAwMDowNDow
MC40OiBub3QgbWFwcGluZyBCQVIgW2ZlNDAwLCBmZTRmZl0gaW52YWxpZCBwb3NpdGlvbg0KWyAg
ICAyLjQzNTMzN10gcGNpIDAwMDA6MDQ6MDAuNDogZW5hYmxpbmcgRXh0ZW5kZWQgVGFncw0KDQpb
ICAgIDIuNDM2NDEzXSBwY2kgMDAwMDowNDowMC40OiBQTUUjIHN1cHBvcnRlZCBmcm9tIEQwIEQz
aG90IEQzY29sZA0KDQooWEVOKSBbICAgMTguNjQzMDM2XSBQQ0kgYWRkIGRldmljZSAwMDAwOjA0
OjAwLjQNClsgICAgMi40MzgzNTRdIHBjaSAwMDAwOjA0OjAwLjU6IFsxMDIyOjE1ZTJdIHR5cGUg
MDAgY2xhc3MgMHgwNDgwMDAgUENJZSBFbmRwb2ludA0KDQpbICAgIDIuNDM5MzQ0XSBwY2kgMDAw
MDowNDowMC41OiBCQVIgMCBbbWVtIDB4ZmU3ODAwMDAtMHhmZTdiZmZmZl0NCg0KWyAgICAyLjQ0
MDM3OV0gcGNpIDAwMDA6MDQ6MDAuNTogZW5hYmxpbmcgRXh0ZW5kZWQgVGFncw0KDQpbICAgIDIu
NDQxNDA2XSBwY2kgMDAwMDowNDowMC41OiBQTUUjIHN1cHBvcnRlZCBmcm9tIEQwIEQzaG90IEQz
Y29sZA0KDQooWEVOKSBbICAgMTguNzAwNTc4XSBQQ0kgYWRkIGRldmljZSAwMDAwOjA0OjAwLjUN
ClsgICAgMi40NDMzNTVdIHBjaSAwMDAwOjA0OjAwLjY6IFsxMDIyOjE1ZTNdIHR5cGUgMDAgY2xh
c3MgMHgwNDAzMDAgUENJZSBFbmRwb2ludA0KDQpbICAgIDIuNDQ0MzQ0XSBwY2kgMDAwMDowNDow
MC42OiBCQVIgMCBbbWVtIDB4ZmU3YzAwMDAtMHhmZTdjN2ZmZl0NCg0KWyAgICAyLjQ0NTM3OF0g
cGNpIDAwMDA6MDQ6MDAuNjogZW5hYmxpbmcgRXh0ZW5kZWQgVGFncw0KDQpbICAgIDIuNDQ2NDA1
XSBwY2kgMDAwMDowNDowMC42OiBQTUUjIHN1cHBvcnRlZCBmcm9tIEQwIEQzaG90IEQzY29sZA0K
DQooWEVOKSBbICAgMTguNzU4MTMwXSBQQ0kgYWRkIGRldmljZSAwMDAwOjA0OjAwLjYNClsgICAg
Mi40NDgzOTBdIHBjaSAwMDAwOjAwOjA4LjE6IFBDSSBicmlkZ2UgdG8gW2J1cyAwNF0NCg0KWyAg
ICAyLjQ0OTQxMl0gcGNpIDAwMDA6MDU6MDAuMDogWzEwMjI6NzkwMV0gdHlwZSAwMCBjbGFzcyAw
eDAxMDYwMSBQQ0llIEVuZHBvaW50DQoNCihYRU4pIFsgICAxOC43OTE0MDVdIDAwMDA6MDU6MDAu
MDogbm90IG1hcHBpbmcgQkFSIFtmZTgwMSwgZmU4MDFdIGludmFsaWQgcG9zaXRpb24NCihYRU4p
IFsgICAxOC44MDU5NjVdIDAwMDA6MDU6MDAuMDogbm90IG1hcHBpbmcgQkFSIFtmZTgwMSwgZmU4
MDFdIGludmFsaWQgcG9zaXRpb24NCihYRU4pIFsgICAxOC44MjA1MzBdIDAwMDA6MDU6MDAuMDog
bm90IG1hcHBpbmcgQkFSIFtmZTgwMSwgZmU4MDFdIGludmFsaWQgcG9zaXRpb24NCihYRU4pIFsg
ICAxOC44MzUwODZdIDAwMDA6MDU6MDAuMDogbm90IG1hcHBpbmcgQkFSIFtmZTgwMSwgZmU4MDFd
IGludmFsaWQgcG9zaXRpb24NCihYRU4pIFsgICAxOC44NDk2NDVdIDAwMDA6MDU6MDAuMDogbm90
IG1hcHBpbmcgQkFSIFtmZTgwMSwgZmU4MDFdIGludmFsaWQgcG9zaXRpb24NCihYRU4pIFsgICAx
OC44NjQyMDVdIDAwMDA6MDU6MDAuMDogbm90IG1hcHBpbmcgQkFSIFtmZTgwMSwgZmU4MDFdIGlu
dmFsaWQgcG9zaXRpb24NClsgICAgMi40NTYzMjddIHBjaSAwMDAwOjA1OjAwLjA6IEJBUiA1IFtt
ZW0gMHhmZTgwMTAwMC0weGZlODAxN2ZmXQ0KDQooWEVOKSBbICAgMTguODkwNzI2XSAwMDAwOjA1
OjAwLjA6IG5vdCBtYXBwaW5nIEJBUiBbZmU4MDEsIGZlODAxXSBpbnZhbGlkIHBvc2l0aW9uDQpb
ICAgIDIuNDU4MzM3XSBwY2kgMDAwMDowNTowMC4wOiBlbmFibGluZyBFeHRlbmRlZCBUYWdzDQoN
ClsgICAgMi40NTk1NzBdIHBjaSAwMDAwOjA1OjAwLjA6IDEyNi4wMTYgR2IvcyBhdmFpbGFibGUg
UENJZSBiYW5kd2lkdGgsIGxpbWl0ZWQgYnkgOC4wIEdUL3MgUENJZSB4MTYgbGluayBhdCAwMDAw
OjAwOjA4LjIgKGNhcGFibGUgb2YgMjUyLjA0OCBHYi9zIHdpdGggMTYuMCBHVC9zIFBDSWUgeDE2
IGxpbmspDQoNCihYRU4pIFsgICAxOC45NDYzNjZdIFBDSSBhZGQgZGV2aWNlIDAwMDA6MDU6MDAu
MA0KWyAgICAyLjQ2MTM1NV0gcGNpIDAwMDA6MDU6MDAuMTogWzEwMjI6NzkwMV0gdHlwZSAwMCBj
bGFzcyAweDAxMDYwMSBQQ0llIEVuZHBvaW50DQoNCihYRU4pIFsgICAxOC45Njk1OTNdIDAwMDA6
MDU6MDAuMTogbm90IG1hcHBpbmcgQkFSIFtmZTgwMCwgZmU4MDBdIGludmFsaWQgcG9zaXRpb24N
CihYRU4pIFsgICAxOC45ODQxNTldIDAwMDA6MDU6MDAuMTogbm90IG1hcHBpbmcgQkFSIFtmZTgw
MCwgZmU4MDBdIGludmFsaWQgcG9zaXRpb24NCihYRU4pIFsgICAxOC45OTg3MTZdIDAwMDA6MDU6
MDAuMTogbm90IG1hcHBpbmcgQkFSIFtmZTgwMCwgZmU4MDBdIGludmFsaWQgcG9zaXRpb24NCihY
RU4pIFsgICAxOS4wMTMyNzhdIDAwMDA6MDU6MDAuMTogbm90IG1hcHBpbmcgQkFSIFtmZTgwMCwg
ZmU4MDBdIGludmFsaWQgcG9zaXRpb24NCihYRU4pIFsgICAxOS4wMjc4MzRdIDAwMDA6MDU6MDAu
MTogbm90IG1hcHBpbmcgQkFSIFtmZTgwMCwgZmU4MDBdIGludmFsaWQgcG9zaXRpb24NCihYRU4p
IFsgICAxOS4wNDIzOTldIDAwMDA6MDU6MDAuMTogbm90IG1hcHBpbmcgQkFSIFtmZTgwMCwgZmU4
MDBdIGludmFsaWQgcG9zaXRpb24NClsgICAgMi40NjgzMjddIHBjaSAwMDAwOjA1OjAwLjE6IEJB
UiA1IFttZW0gMHhmZTgwMDAwMC0weGZlODAwN2ZmXQ0KDQooWEVOKSBbICAgMTkuMDY4OTE1XSAw
MDAwOjA1OjAwLjE6IG5vdCBtYXBwaW5nIEJBUiBbZmU4MDAsIGZlODAwXSBpbnZhbGlkIHBvc2l0
aW9uDQpbICAgIDIuNDcwMzM3XSBwY2kgMDAwMDowNTowMC4xOiBlbmFibGluZyBFeHRlbmRlZCBU
YWdzDQoNCihYRU4pIFsgICAxOS4wOTM1MjhdIFBDSSBhZGQgZGV2aWNlIDAwMDA6MDU6MDAuMQ0K
WyAgICAyLjQ3MjM2NF0gcGNpIDAwMDA6MDA6MDguMjogUENJIGJyaWRnZSB0byBbYnVzIDA1XQ0K
DQpbICAgIDIuNDczOTQ3XSBBQ1BJOiBQQ0k6IEludGVycnVwdCBsaW5rIExOS0EgY29uZmlndXJl
ZCBmb3IgSVJRIDANCg0KWyAgICAyLjQ3NDM3NV0gQUNQSTogUENJOiBJbnRlcnJ1cHQgbGluayBM
TktCIGNvbmZpZ3VyZWQgZm9yIElSUSAwDQoNClsgICAgMi40NzUzNjRdIEFDUEk6IFBDSTogSW50
ZXJydXB0IGxpbmsgTE5LQyBjb25maWd1cmVkIGZvciBJUlEgMA0KDQpbICAgIDIuNDc2Mzc1XSBB
Q1BJOiBQQ0k6IEludGVycnVwdCBsaW5rIExOS0QgY29uZmlndXJlZCBmb3IgSVJRIDANCg0KWyAg
ICAyLjQ3NzM2OV0gQUNQSTogUENJOiBJbnRlcnJ1cHQgbGluayBMTktFIGNvbmZpZ3VyZWQgZm9y
IElSUSAwDQoNClsgICAgMi40NzgzNjJdIEFDUEk6IFBDSTogSW50ZXJydXB0IGxpbmsgTE5LRiBj
b25maWd1cmVkIGZvciBJUlEgMA0KDQpbICAgIDIuNDc5MzYyXSBBQ1BJOiBQQ0k6IEludGVycnVw
dCBsaW5rIExOS0cgY29uZmlndXJlZCBmb3IgSVJRIDANCg0KWyAgICAyLjQ4MDM2Ml0gQUNQSTog
UENJOiBJbnRlcnJ1cHQgbGluayBMTktIIGNvbmZpZ3VyZWQgZm9yIElSUSAwDQoNClsgICAgMi40
ODIyNjhdIHhlbjpiYWxsb29uOiBJbml0aWFsaXNpbmcgYmFsbG9vbiBkcml2ZXINCg0KWyAgICAy
LjU1OTcwOV0gaW9tbXU6IERlZmF1bHQgZG9tYWluIHR5cGU6IFRyYW5zbGF0ZWQNCg0KWyAgICAy
LjU2MDMzMF0gaW9tbXU6IERNQSBkb21haW4gVExCIGludmFsaWRhdGlvbiBwb2xpY3k6IGxhenkg
bW9kZQ0KDQpbICAgIDIuNTYxMzc3XSBTQ1NJIHN1YnN5c3RlbSBpbml0aWFsaXplZA0KDQpbICAg
IDIuNTYyMzQ4XSBsaWJhdGEgdmVyc2lvbiAzLjAwIGxvYWRlZC4NCg0KWyAgICAyLjU2MzM0Ml0g
QUNQSTogYnVzIHR5cGUgVVNCIHJlZ2lzdGVyZWQNCg0KWyAgICAyLjU2NDMzNF0gdXNiY29yZTog
cmVnaXN0ZXJlZCBuZXcgaW50ZXJmYWNlIGRyaXZlciB1c2Jmcw0KDQpbICAgIDIuNTY1MzMwXSB1
c2Jjb3JlOiByZWdpc3RlcmVkIG5ldyBpbnRlcmZhY2UgZHJpdmVyIGh1Yg0KDQpbICAgIDIuNTY2
MzMxXSB1c2Jjb3JlOiByZWdpc3RlcmVkIG5ldyBkZXZpY2UgZHJpdmVyIHVzYg0KDQpbICAgIDIu
NTY3MzM2XSBwcHNfY29yZTogTGludXhQUFMgQVBJIHZlci4gMSByZWdpc3RlcmVkDQoNClsgICAg
Mi41NjgzMjddIHBwc19jb3JlOiBTb2Z0d2FyZSB2ZXIuIDUuMy42IC0gQ29weXJpZ2h0IDIwMDUt
MjAwNyBSb2RvbGZvIEdpb21ldHRpIDxnaW9tZXR0aUBsaW51eC5pdD4NCg0KWyAgICAyLjU2OTMy
OV0gUFRQIGNsb2NrIHN1cHBvcnQgcmVnaXN0ZXJlZA0KDQpbICAgIDIuNTcwMzY3XSBlZml2YXJz
OiBSZWdpc3RlcmVkIGVmaXZhcnMgb3BlcmF0aW9ucw0KDQpbICAgIDIuNTcxMzQzXSBBZHZhbmNl
ZCBMaW51eCBTb3VuZCBBcmNoaXRlY3R1cmUgRHJpdmVyIEluaXRpYWxpemVkLg0KDQpbICAgIDIu
NTcyNDIzXSBOZXRMYWJlbDogSW5pdGlhbGl6aW5nDQoNClsgICAgMi41NzMzMjddIE5ldExhYmVs
OiAgZG9tYWluIGhhc2ggc2l6ZSA9IDEyOA0KDQpbICAgIDIuNTc0MzI2XSBOZXRMYWJlbDogIHBy
b3RvY29scyA9IFVOTEFCRUxFRCBDSVBTT3Y0IENBTElQU08NCg0KWyAgICAyLjU3NTMzN10gTmV0
TGFiZWw6ICB1bmxhYmVsZWQgdHJhZmZpYyBhbGxvd2VkIGJ5IGRlZmF1bHQNCg0KWyAgICAyLjU3
NjM2NF0gUENJOiBVc2luZyBBQ1BJIGZvciBJUlEgcm91dGluZw0KDQpbICAgIDIuNTg1MTk5XSBQ
Q0k6IHBjaV9jYWNoZV9saW5lX3NpemUgc2V0IHRvIDY0IGJ5dGVzDQoNClsgICAgMi41ODU0Mzdd
IHJlc291cmNlOiBFeHBhbmRlZCByZXNvdXJjZSBSZXNlcnZlZCBkdWUgdG8gY29uZmxpY3Qgd2l0
aCBQQ0kgQnVzIDAwMDA6MDANCg0KWyAgICAyLjU4NjMyOF0gcmVzb3VyY2U6IEV4cGFuZGVkIHJl
c291cmNlIFJlc2VydmVkIGR1ZSB0byBjb25mbGljdCB3aXRoIFBDSSBCdXMgMDAwMDowMA0KDQpb
ICAgIDIuNTg3MzI3XSBlODIwOiByZXNlcnZlIFJBTSBidWZmZXIgW21lbSAweDA5YmZmMDAwLTB4
MGJmZmZmZmZdDQoNClsgICAgMi41ODgzMjddIGU4MjA6IHJlc2VydmUgUkFNIGJ1ZmZlciBbbWVt
IDB4MGEyMDAwMDAtMHgwYmZmZmZmZl0NCg0KWyAgICAyLjU4OTMyN10gZTgyMDogcmVzZXJ2ZSBS
QU0gYnVmZmVyIFttZW0gMHhjYWJjOTAwMC0weGNiZmZmZmZmXQ0KDQpbICAgIDIuNTkwMzI3XSBl
ODIwOiByZXNlcnZlIFJBTSBidWZmZXIgW21lbSAweGNkZmZmZWE4LTB4Y2ZmZmZmZmZdDQoNClsg
ICAgMi41OTEzMjddIGU4MjA6IHJlc2VydmUgUkFNIGJ1ZmZlciBbbWVtIDB4ODBmMzQwMDAwLTB4
ODBmZmZmZmZmXQ0KDQpbICAgIDIuNTkyMzU0XSBwY2kgMDAwMDowNDowMC4wOiB2Z2FhcmI6IHNl
dHRpbmcgYXMgYm9vdCBWR0EgZGV2aWNlDQoNClsgICAgMi41OTMzMjFdIHBjaSAwMDAwOjA0OjAw
LjA6IHZnYWFyYjogYnJpZGdlIGNvbnRyb2wgcG9zc2libGUNCg0KWyAgICAyLjU5MzMyMV0gcGNp
IDAwMDA6MDQ6MDAuMDogdmdhYXJiOiBWR0EgZGV2aWNlIGFkZGVkOiBkZWNvZGVzPWlvK21lbSxv
d25zPW5vbmUsbG9ja3M9bm9uZQ0KDQpbICAgIDIuNTkzMzI3XSB2Z2FhcmI6IGxvYWRlZA0KDQpb
ICAgIDIuNTk0NDIyXSBjbG9ja3NvdXJjZTogU3dpdGNoZWQgdG8gY2xvY2tzb3VyY2UgdHNjLWVh
cmx5DQoNClsgICAgMi42MDUxNjVdIFZGUzogRGlzayBxdW90YXMgZHF1b3RfNi42LjANCg0KWyAg
ICAyLjYxMzA5M10gVkZTOiBEcXVvdC1jYWNoZSBoYXNoIHRhYmxlIGVudHJpZXM6IDUxMiAob3Jk
ZXIgMCwgNDA5NiBieXRlcykNCg0KWyAgICAyLjYyNjk5N10gcG5wOiBQblAgQUNQSSBpbml0DQoN
ClsgICAgMi42MzMyODFdIHN5c3RlbSAwMDowMDogW21lbSAweGYwMDAwMDAwLTB4ZjdmZmZmZmZd
IGhhcyBiZWVuIHJlc2VydmVkDQoNClsgICAgMi42NDY3NDBdIHN5c3RlbSAwMDowMjogW2lvICAw
eDBhMDAtMHgwYTBmXSBoYXMgYmVlbiByZXNlcnZlZA0KDQpbICAgIDIuNjU4NTEyXSBzeXN0ZW0g
MDA6MDI6IFtpbyAgMHgwYTEwLTB4MGExZl0gaGFzIGJlZW4gcmVzZXJ2ZWQNCg0KWyAgICAyLjY3
MDQ2OF0gc3lzdGVtIDAwOjAyOiBbaW8gIDB4MGEyMC0weDBhMmZdIGhhcyBiZWVuIHJlc2VydmVk
DQoNClsgICAgMi42ODI2NDVdIHBucCAwMDowMzogW2RtYSAwIGRpc2FibGVkXQ0KDQpbICAgIDIu
NjkwNDcwXSBwbnAgMDA6MDQ6IFtkbWEgMCBkaXNhYmxlZF0NCg0KWyAgICAyLjY5ODI0NF0gc3lz
dGVtIDAwOjA1OiBbaW8gIDB4MDRkMC0weDA0ZDFdIGhhcyBiZWVuIHJlc2VydmVkDQoNClsgICAg
Mi43MDk5ODZdIHN5c3RlbSAwMDowNTogW2lvICAweDA0MGJdIGhhcyBiZWVuIHJlc2VydmVkDQoN
ClsgICAgMi43MjA3MzFdIHN5c3RlbSAwMDowNTogW2lvICAweDA0ZDZdIGhhcyBiZWVuIHJlc2Vy
dmVkDQoNClsgICAgMi43MzE0ODNdIHN5c3RlbSAwMDowNTogW2lvICAweDBjMDAtMHgwYzAxXSBo
YXMgYmVlbiByZXNlcnZlZA0KDQpbICAgIDIuNzQzNDQwXSBzeXN0ZW0gMDA6MDU6IFtpbyAgMHgw
YzE0XSBoYXMgYmVlbiByZXNlcnZlZA0KDQpbICAgIDIuNzU0MTg3XSBzeXN0ZW0gMDA6MDU6IFtp
byAgMHgwYzUwLTB4MGM1MV0gaGFzIGJlZW4gcmVzZXJ2ZWQNCg0KWyAgICAyLjc2NjE0Nl0gc3lz
dGVtIDAwOjA1OiBbaW8gIDB4MGM1Ml0gaGFzIGJlZW4gcmVzZXJ2ZWQNCg0KWyAgICAyLjc3Njg5
NV0gc3lzdGVtIDAwOjA1OiBbaW8gIDB4MGM2Y10gaGFzIGJlZW4gcmVzZXJ2ZWQNCg0KWyAgICAy
Ljc4NzY0Ml0gc3lzdGVtIDAwOjA1OiBbaW8gIDB4MGM2Zl0gaGFzIGJlZW4gcmVzZXJ2ZWQNCg0K
WyAgICAyLjc5ODM4OV0gc3lzdGVtIDAwOjA1OiBbaW8gIDB4MGNkMC0weDBjZDFdIGhhcyBiZWVu
IHJlc2VydmVkDQoNClsgICAgMi44MTAzNDldIHN5c3RlbSAwMDowNTogW2lvICAweDBjZDItMHgw
Y2QzXSBoYXMgYmVlbiByZXNlcnZlZA0KDQpbICAgIDIuODIyMzA5XSBzeXN0ZW0gMDA6MDU6IFtp
byAgMHgwY2Q0LTB4MGNkNV0gaGFzIGJlZW4gcmVzZXJ2ZWQNCg0KWyAgICAyLjgzNDI2OF0gc3lz
dGVtIDAwOjA1OiBbaW8gIDB4MGNkNi0weDBjZDddIGhhcyBiZWVuIHJlc2VydmVkDQoNClsgICAg
Mi44NDYyMjhdIHN5c3RlbSAwMDowNTogW2lvICAweDBjZDgtMHgwY2RmXSBoYXMgYmVlbiByZXNl
cnZlZA0KDQpbICAgIDIuODU4MTg4XSBzeXN0ZW0gMDA6MDU6IFtpbyAgMHgwODAwLTB4MDg5Zl0g
aGFzIGJlZW4gcmVzZXJ2ZWQNCg0KWyAgICAyLjg3MDE0OV0gc3lzdGVtIDAwOjA1OiBbaW8gIDB4
MGIwMC0weDBiMGZdIGhhcyBiZWVuIHJlc2VydmVkDQoNClsgICAgMi44ODIxMDVdIHN5c3RlbSAw
MDowNTogW2lvICAweDBiMjAtMHgwYjNmXSBoYXMgYmVlbiByZXNlcnZlZA0KDQpbICAgIDIuODk0
MDY5XSBzeXN0ZW0gMDA6MDU6IFtpbyAgMHgwOTAwLTB4MDkwZl0gaGFzIGJlZW4gcmVzZXJ2ZWQN
Cg0KWyAgICAyLjkwNjAyN10gc3lzdGVtIDAwOjA1OiBbaW8gIDB4MDkxMC0weDA5MWZdIGhhcyBi
ZWVuIHJlc2VydmVkDQoNClsgICAgMi45MTc5ODddIHN5c3RlbSAwMDowNTogW21lbSAweGZlYzAw
MDAwLTB4ZmVjMDBmZmZdIGNvdWxkIG5vdCBiZSByZXNlcnZlZA0KDQpbICAgIDIuOTMyMDI2XSBz
eXN0ZW0gMDA6MDU6IFttZW0gMHhmZWMwMTAwMC0weGZlYzAxZmZmXSBjb3VsZCBub3QgYmUgcmVz
ZXJ2ZWQNCg0KWyAgICAyLjk0NjA3MV0gc3lzdGVtIDAwOjA1OiBbbWVtIDB4ZmVkYzAwMDAtMHhm
ZWRjMGZmZl0gaGFzIGJlZW4gcmVzZXJ2ZWQNCg0KWyAgICAyLjk1OTQxNV0gc3lzdGVtIDAwOjA1
OiBbbWVtIDB4ZmVlMDAwMDAtMHhmZWUwMGZmZl0gaGFzIGJlZW4gcmVzZXJ2ZWQNCg0KWyAgICAy
Ljk3Mjc2NF0gc3lzdGVtIDAwOjA1OiBbbWVtIDB4ZmVkODAwMDAtMHhmZWQ4ZmZmZl0gY291bGQg
bm90IGJlIHJlc2VydmVkDQoNClsgICAgMi45ODY4MDJdIHN5c3RlbSAwMDowNTogW21lbSAweGZl
YzEwMDAwLTB4ZmVjMTBmZmZdIGNvdWxkIG5vdCBiZSByZXNlcnZlZA0KDQpbICAgIDMuMDAwODQ0
XSBzeXN0ZW0gMDA6MDU6IFttZW0gMHhmZjAwMDAwMC0weGZmZmZmZmZmXSBoYXMgYmVlbiByZXNl
cnZlZA0KDQpbICAgIDMuMDE0OTE3XSBwbnA6IFBuUCBBQ1BJOiBmb3VuZCA2IGRldmljZXMNCg0K
WyAgICAzLjAzMDU2M10gUE0tVGltZXIgZmFpbGVkIGNvbnNpc3RlbmN5IGNoZWNrICAoMHhmZmZm
ZmYpIC0gYWJvcnRpbmcuDQoNClsgICAgMy4wNDMyODFdIE5FVDogUmVnaXN0ZXJlZCBQRl9JTkVU
IHByb3RvY29sIGZhbWlseQ0KDQpbICAgIDMuMDUzMTg4XSBJUCBpZGVudHMgaGFzaCB0YWJsZSBl
bnRyaWVzOiA2NTUzNiAob3JkZXI6IDcsIDUyNDI4OCBieXRlcywgbGluZWFyKQ0KDQpbICAgIDMu
MDY4NTM4XSB0Y3BfbGlzdGVuX3BvcnRhZGRyX2hhc2ggaGFzaCB0YWJsZSBlbnRyaWVzOiAyMDQ4
IChvcmRlcjogMywgMzI3NjggYnl0ZXMsIGxpbmVhcikNCg0KWyAgICAzLjA4NTM5OF0gVGFibGUt
cGVydHVyYiBoYXNoIHRhYmxlIGVudHJpZXM6IDY1NTM2IChvcmRlcjogNiwgMjYyMTQ0IGJ5dGVz
LCBsaW5lYXIpDQoNClsgICAgMy4xMDEwMDVdIFRDUCBlc3RhYmxpc2hlZCBoYXNoIHRhYmxlIGVu
dHJpZXM6IDMyNzY4IChvcmRlcjogNiwgMjYyMTQ0IGJ5dGVzLCBsaW5lYXIpDQoNClsgICAgMy4x
MTY5NzJdIFRDUCBiaW5kIGhhc2ggdGFibGUgZW50cmllczogMzI3NjggKG9yZGVyOiA4LCAxMDQ4
NTc2IGJ5dGVzLCBsaW5lYXIpDQoNClsgICAgMy4xMzE5MTFdIFRDUDogSGFzaCB0YWJsZXMgY29u
ZmlndXJlZCAoZXN0YWJsaXNoZWQgMzI3NjggYmluZCAzMjc2OCkNCg0KWyAgICAzLjE0NTAzN10g
VURQIGhhc2ggdGFibGUgZW50cmllczogMjA0OCAob3JkZXI6IDQsIDY1NTM2IGJ5dGVzLCBsaW5l
YXIpDQoNClsgICAgMy4xNTg1NDVdIFVEUC1MaXRlIGhhc2ggdGFibGUgZW50cmllczogMjA0OCAo
b3JkZXI6IDQsIDY1NTM2IGJ5dGVzLCBsaW5lYXIpDQoNClsgICAgMy4xNzI5NDddIE5FVDogUmVn
aXN0ZXJlZCBQRl9VTklYL1BGX0xPQ0FMIHByb3RvY29sIGZhbWlseQ0KDQpbICAgIDMuMTg0NTcy
XSBSUEM6IFJlZ2lzdGVyZWQgbmFtZWQgVU5JWCBzb2NrZXQgdHJhbnNwb3J0IG1vZHVsZS4NCg0K
WyAgICAzLjE5NjMzOF0gUlBDOiBSZWdpc3RlcmVkIHVkcCB0cmFuc3BvcnQgbW9kdWxlLg0KDQpb
ICAgIDMuMjA1ODU5XSBSUEM6IFJlZ2lzdGVyZWQgdGNwIHRyYW5zcG9ydCBtb2R1bGUuDQoNClsg
ICAgMy4yMTUzOTNdIFJQQzogUmVnaXN0ZXJlZCB0Y3Atd2l0aC10bHMgdHJhbnNwb3J0IG1vZHVs
ZS4NCg0KWyAgICAzLjIyNjQ4OV0gUlBDOiBSZWdpc3RlcmVkIHRjcCBORlN2NC4xIGJhY2tjaGFu
bmVsIHRyYW5zcG9ydCBtb2R1bGUuDQoNClsgICAgMy4yMzk3NzJdIHBjaSAwMDAwOjAwOjAyLjE6
IFBDSSBicmlkZ2UgdG8gW2J1cyAwMV0NCg0KWyAgICAzLjI0OTU1M10gcGNpIDAwMDA6MDA6MDIu
MTogICBicmlkZ2Ugd2luZG93IFttZW0gMHhmZmUwMDAwMDAwLTB4ZmZmODBmZmZmZiA2NGJpdCBw
cmVmXQ0KDQpbICAgIDMuMjY1ODQwXSBwY2kgMDAwMDowMDowMi4zOiBQQ0kgYnJpZGdlIHRvIFti
dXMgMDJdDQoNClsgICAgMy4yNzU4OTRdIHBjaSAwMDAwOjAwOjAyLjM6ICAgYnJpZGdlIHdpbmRv
dyBbbWVtIDB4ZmVhMDAwMDAtMHhmZWFmZmZmZl0NCg0KWyAgICAzLjI4OTU5MF0gcGNpIDAwMDA6
MDA6MDIuNDogUENJIGJyaWRnZSB0byBbYnVzIDAzXQ0KDQpbICAgIDMuMjk5NjM4XSBwY2kgMDAw
MDowMDowMi40OiAgIGJyaWRnZSB3aW5kb3cgW2lvICAweGYwMDAtMHhmZmZmXQ0KDQpbICAgIDMu
MzExOTQ5XSBwY2kgMDAwMDowMDowMi40OiAgIGJyaWRnZSB3aW5kb3cgW21lbSAweGZlOTAwMDAw
LTB4ZmU5ZmZmZmZdDQoNClsgICAgMy4zMjU2NDddIHBjaSAwMDAwOjAwOjA4LjE6IFBDSSBicmlk
Z2UgdG8gW2J1cyAwNF0NCg0KWyAgICAzLjMzNTY5NF0gcGNpIDAwMDA6MDA6MDguMTogICBicmlk
Z2Ugd2luZG93IFtpbyAgMHhlMDAwLTB4ZWZmZl0NCg0KWyAgICAzLjM0Nzk5OF0gcGNpIDAwMDA6
MDA6MDguMTogICBicmlkZ2Ugd2luZG93IFttZW0gMHhmZTQwMDAwMC0weGZlN2ZmZmZmXQ0KDQpb
ICAgIDMuMzYxNjk0XSBwY2kgMDAwMDowMDowOC4xOiAgIGJyaWRnZSB3aW5kb3cgW21lbSAweGQw
MDAwMDAwLTB4ZTAxZmZmZmYgNjRiaXQgcHJlZl0NCg0KWyAgICAzLjM3NzI5N10gcGNpIDAwMDA6
MDA6MDguMjogUENJIGJyaWRnZSB0byBbYnVzIDA1XQ0KDQpbICAgIDMuMzg3MzUzXSBwY2kgMDAw
MDowMDowOC4yOiAgIGJyaWRnZSB3aW5kb3cgW21lbSAweGZlODAwMDAwLTB4ZmU4ZmZmZmZdDQoN
ClsgICAgMy40MDEwNDVdIHBjaV9idXMgMDAwMDowMDogcmVzb3VyY2UgNCBbaW8gIDB4MDAwMC0w
eDAzYWYgd2luZG93XQ0KDQpbICAgIDMuNDEzNTE1XSBwY2lfYnVzIDAwMDA6MDA6IHJlc291cmNl
IDUgW2lvICAweDAzZTAtMHgwY2Y3IHdpbmRvd10NCg0KWyAgICAzLjQyNTk5NV0gcGNpX2J1cyAw
MDAwOjAwOiByZXNvdXJjZSA2IFtpbyAgMHgwM2IwLTB4MDNkZiB3aW5kb3ddDQoNClsgICAgMy40
Mzg0NzVdIHBjaV9idXMgMDAwMDowMDogcmVzb3VyY2UgNyBbaW8gIDB4MGQwMC0weGZmZmYgd2lu
ZG93XQ0KDQpbICAgIDMuNDUwOTU4XSBwY2lfYnVzIDAwMDA6MDA6IHJlc291cmNlIDggW21lbSAw
eDAwMGEwMDAwLTB4MDAwZGZmZmYgd2luZG93XQ0KDQpbICAgIDMuNDY0ODI0XSBwY2lfYnVzIDAw
MDA6MDA6IHJlc291cmNlIDkgW21lbSAweGQwMDAwMDAwLTB4ZmViZmZmZmYgd2luZG93XQ0KDQpb
ICAgIDMuNDc4NjkxXSBwY2lfYnVzIDAwMDA6MDA6IHJlc291cmNlIDEwIFttZW0gMHhmZWUwMDAw
MC0weGZmZmZmZmZmIHdpbmRvd10NCg0KWyAgICAzLjQ5MjcyOV0gcGNpX2J1cyAwMDAwOjAwOiBy
ZXNvdXJjZSAxMSBbbWVtIDB4ODMwMDAwMDAwLTB4ZmZmZmZmZmZmZiB3aW5kb3ddDQoNClsgICAg
My41MDcyOTFdIHBjaV9idXMgMDAwMDowMTogcmVzb3VyY2UgMiBbbWVtIDB4ZmZlMDAwMDAwMC0w
eGZmZjgwZmZmZmYgNjRiaXQgcHJlZl0NCg0KWyAgICAzLjUyMjU0M10gcGNpX2J1cyAwMDAwOjAy
OiByZXNvdXJjZSAxIFttZW0gMHhmZWEwMDAwMC0weGZlYWZmZmZmXQ0KDQpbICAgIDMuNTM1MTk2
XSBwY2lfYnVzIDAwMDA6MDM6IHJlc291cmNlIDAgW2lvICAweGYwMDAtMHhmZmZmXQ0KDQpbICAg
IDMuNTQ2NDY3XSBwY2lfYnVzIDAwMDA6MDM6IHJlc291cmNlIDEgW21lbSAweGZlOTAwMDAwLTB4
ZmU5ZmZmZmZdDQoNClsgICAgMy41NTkxMjFdIHBjaV9idXMgMDAwMDowNDogcmVzb3VyY2UgMCBb
aW8gIDB4ZTAwMC0weGVmZmZdDQoNClsgICAgMy41NzAzODNdIHBjaV9idXMgMDAwMDowNDogcmVz
b3VyY2UgMSBbbWVtIDB4ZmU0MDAwMDAtMHhmZTdmZmZmZl0NCg0KWyAgICAzLjU4MzA0MF0gcGNp
X2J1cyAwMDAwOjA0OiByZXNvdXJjZSAyIFttZW0gMHhkMDAwMDAwMC0weGUwMWZmZmZmIDY0Yml0
IHByZWZdDQoNClsgICAgMy41OTc2MDBdIHBjaV9idXMgMDAwMDowNTogcmVzb3VyY2UgMSBbbWVt
IDB4ZmU4MDAwMDAtMHhmZThmZmZmZl0NCg0KWyAgICAzLjYxMDMzMl0gcGNpIDAwMDA6MDE6MDAu
MDogQ0xTIG1pc21hdGNoICg2NCAhPSA0ODQpLCB1c2luZyA2NCBieXRlcw0KDQpbICAgIDMuNjIz
NDQxXSBwY2kgMDAwMDowNDowMC4xOiBEMCBwb3dlciBzdGF0ZSBkZXBlbmRzIG9uIDAwMDA6MDQ6
MDAuMA0KDQpbICAgIDMuNjM2MjUxXSBwY2kgMDAwMDowNDowMC4xOiBxdWlya19ncHVfaGRhKzB4
MC8weDEwIHRvb2sgMTI1MjIgdXNlY3MNCg0KWyAgICAzLjY0OTI1Ml0gcGNpIDAwMDA6MDQ6MDAu
MzogZXh0ZW5kaW5nIGRlbGF5IGFmdGVyIHBvd2VyLW9uIGZyb20gRDNob3QgdG8gMjAgbXNlYw0K
DQpbICAgIDMuNjY0NTA0XSBwY2kgMDAwMDowNDowMC4zOiBxdWlya19yeXplbl94aGNpX2QzaG90
KzB4MC8weDQwIHRvb2sgMTQ4OTUgdXNlY3MNCg0KWyAgICAzLjY3OTIzNl0gcGNpIDAwMDA6MDQ6
MDAuNDogZXh0ZW5kaW5nIGRlbGF5IGFmdGVyIHBvd2VyLW9uIGZyb20gRDNob3QgdG8gMjAgbXNl
Yw0KDQpbICAgIDMuNjk0MzI5XSBwY2kgMDAwMDowNDowMC40OiBxdWlya19yeXplbl94aGNpX2Qz
aG90KzB4MC8weDQwIHRvb2sgMTQ3MzkgdXNlY3MNCg0KWyAgICAzLjcwODk2M10gUENJLURNQTog
VXNpbmcgc29mdHdhcmUgYm91bmNlIGJ1ZmZlcmluZyBmb3IgSU8gKFNXSU9UTEIpDQoNClsgICAg
My43MDkwMjddIFVucGFja2luZyBpbml0cmFtZnMuLi4NCg0KWyAgICAzLjcyMTg3Nl0gc29mdHdh
cmUgSU8gVExCOiBtYXBwZWQgW21lbSAweDAwMDAwMDAwYzZiYzkwMDAtMHgwMDAwMDAwMGNhYmM5
MDAwXSAoNjRNQikNCg0KWyAgICAzLjc0NDgwMl0gY2xvY2tzb3VyY2U6IHRzYzogbWFzazogMHhm
ZmZmZmZmZmZmZmZmZmZmIG1heF9jeWNsZXM6IDB4MjliOTFkMWViYzAsIG1heF9pZGxlX25zOiA0
NDA3OTUyOTQ1MDMgbnMNCg0KWyAgICAzLjc2NDkxN10gY2xvY2tzb3VyY2U6IFN3aXRjaGVkIHRv
IGNsb2Nrc291cmNlIHRzYw0KDQpbICAgIDMuNzgwNzM0XSBJbml0aWFsaXNlIHN5c3RlbSB0cnVz
dGVkIGtleXJpbmdzDQoNClsgICAgMy43ODk2MjhdIHdvcmtpbmdzZXQ6IHRpbWVzdGFtcF9iaXRz
PTU2IG1heF9vcmRlcj0yMCBidWNrZXRfb3JkZXI9MA0KDQpbICAgIDMuODAyNzM5XSBORlM6IFJl
Z2lzdGVyaW5nIHRoZSBpZF9yZXNvbHZlciBrZXkgdHlwZQ0KDQpbICAgIDMuODEyNzA3XSBLZXkg
dHlwZSBpZF9yZXNvbHZlciByZWdpc3RlcmVkDQoNClsgICAgMy44MjExOTJdIEtleSB0eXBlIGlk
X2xlZ2FjeSByZWdpc3RlcmVkDQoNClsgICAgMy44Mjk0MzddIDlwOiBJbnN0YWxsaW5nIHY5ZnMg
OXAyMDAwIGZpbGUgc3lzdGVtIHN1cHBvcnQNCg0KWyAgICAzLjg0OTQ1Nl0gS2V5IHR5cGUgYXN5
bW1ldHJpYyByZWdpc3RlcmVkDQoNClsgICAgMy44NTc1MjZdIEFzeW1tZXRyaWMga2V5IHBhcnNl
ciAneDUwOScgcmVnaXN0ZXJlZA0KDQpbICAgIDMuODY3NDA5XSBCbG9jayBsYXllciBTQ1NJIGdl
bmVyaWMgKGJzZykgZHJpdmVyIHZlcnNpb24gMC40IGxvYWRlZCAobWFqb3IgMjUwKQ0KDQpbICAg
IDMuODgyMjg2XSBpbyBzY2hlZHVsZXIgbXEtZGVhZGxpbmUgcmVnaXN0ZXJlZA0KDQpbICAgIDMu
ODkxNDU5XSBpbyBzY2hlZHVsZXIga3liZXIgcmVnaXN0ZXJlZA0KDQpbICAgIDMuOTc1MzA1XSBG
cmVlaW5nIGluaXRyZCBtZW1vcnk6IDcyMDM5MksNCg0KWyAgICAzLjk4MzczOF0gcGNpZXBvcnQg
MDAwMDowMDowMi4xOiBQTUU6IFNpZ25hbGluZyB3aXRoIElSUSA0Mw0KDQpbICAgIDMuOTk1MzI5
XSBwY2llcG9ydCAwMDAwOjAwOjAyLjM6IFBNRTogU2lnbmFsaW5nIHdpdGggSVJRIDQ0DQoNClsg
ICAgNC4wMDY5MTddIHBjaWVwb3J0IDAwMDA6MDA6MDIuNDogUE1FOiBTaWduYWxpbmcgd2l0aCBJ
UlEgNDUNCg0KWyAgICA0LjAxODU0OF0gcGNpZXBvcnQgMDAwMDowMDowOC4xOiBQTUU6IFNpZ25h
bGluZyB3aXRoIElSUSA0Ng0KDQpbICAgIDQuMDMwMTY2XSBwY2llcG9ydCAwMDAwOjAwOjA4LjI6
IFBNRTogU2lnbmFsaW5nIHdpdGggSVJRIDQ3DQoNClsgICAgNC4wNDE3MzRdIGlucHV0OiBQb3dl
ciBCdXR0b24gYXMgL2RldmljZXMvTE5YU1lTVE06MDAvTE5YU1lCVVM6MDAvUE5QMEMwQzowMC9p
bnB1dC9pbnB1dDANCg0KWyAgICA0LjA1ODM0OV0gQUNQSTogYnV0dG9uOiBQb3dlciBCdXR0b24g
W1BXUkJdDQoNClsgICAgNC4wNjcxOTFdIGlucHV0OiBQb3dlciBCdXR0b24gYXMgL2RldmljZXMv
TE5YU1lTVE06MDAvTE5YUFdSQk46MDAvaW5wdXQvaW5wdXQxDQoNClsgICAgNC4wODIxMDNdIEFD
UEk6IGJ1dHRvbjogUG93ZXIgQnV0dG9uIFtQV1JGXQ0KDQpbICAgIDQuMDkwOTUxXSBBQ1BJOiB2
aWRlbzogVmlkZW8gRGV2aWNlIFtWR0FdIChtdWx0aS1oZWFkOiB5ZXMgIHJvbTogbm8gIHBvc3Q6
IG5vKQ0KDQpbICAgIDQuMTA1OTA1XSBpbnB1dDogVmlkZW8gQnVzIGFzIC9kZXZpY2VzL0xOWFNZ
U1RNOjAwL0xOWFNZQlVTOjAwL1BOUDBBMDg6MDAvZGV2aWNlOjBlL0xOWFZJREVPOjAwL2lucHV0
L2lucHV0Mg0KDQpbICAgIDQuMTI2MDI3XSBbRmlybXdhcmUgQnVnXTogQUNQSSBNV0FJVCBDLXN0
YXRlIDB4MCBub3Qgc3VwcG9ydGVkIGJ5IEhXICgweDApDQoNClsgICAgNC4xNDA3NjldIFtGaXJt
d2FyZSBCdWddOiBBQ1BJIE1XQUlUIEMtc3RhdGUgMHgwIG5vdCBzdXBwb3J0ZWQgYnkgSFcgKDB4
MCkNCg0KWyAgICA0LjE1NDgxMV0gW0Zpcm13YXJlIEJ1Z106IEFDUEkgTVdBSVQgQy1zdGF0ZSAw
eDAgbm90IHN1cHBvcnRlZCBieSBIVyAoMHgwKQ0KDQpbICAgIDQuMTY5Mzg2XSB0aGVybWFsIExO
WFRIRVJNOjAwOiByZWdpc3RlcmVkIGFzIHRoZXJtYWxfem9uZTANCg0KWyAgICA0LjE4MDU0MF0g
QUNQSTogdGhlcm1hbDogVGhlcm1hbCBab25lIFtUSFJNXSAoMjAgQykNCg0KWyAgICA0LjE5MDg0
M10gdGhlcm1hbCBMTlhUSEVSTTowMTogcmVnaXN0ZXJlZCBhcyB0aGVybWFsX3pvbmUxDQoNClsg
ICAgNC4yMDIyMDNdIEFDUEk6IHRoZXJtYWw6IFRoZXJtYWwgWm9uZSBbV0RURl0gKDAgQykNCg0K
WyAgICA0LjIxMjY0Ml0geGVuOnhlbl9ldnRjaG46IEV2ZW50LWNoYW5uZWwgZGV2aWNlIGluc3Rh
bGxlZA0KDQpbICAgIDQuMjIzODU4XSB4ZW5fbWNlbG9nOiBGYWlsZWQgdG8gZ2V0IENQVSBudW1i
ZXJzDQoNClsgICAgNC4yMzMxOTRdIHhlbl9wY2liYWNrOiBiYWNrZW5kIGlzIHZwY2kNCg0KWyAg
ICA0LjI0MTMxM10geGVuX2FjcGlfcHJvY2Vzc29yOiBVcGxvYWRpbmcgWGVuIHByb2Nlc3NvciBQ
TSBpbmZvDQoNClsgICAgNC4yNTQyNDddIFNlcmlhbDogODI1MC8xNjU1MCBkcml2ZXIsIDQgcG9y
dHMsIElSUSBzaGFyaW5nIGVuYWJsZWQNCg0KWyAgICA0LjI2Njc5OV0gMDA6MDQ6IHR0eVMxIGF0
IEkvTyAweDJmOCAoaXJxID0gMywgYmFzZV9iYXVkID0gMTE1MjAwKSBpcyBhIDE2NTUwQQ0KDQpb
ICAgIDQuMjgxNzc1XSBocGV0X2FjcGlfYWRkOiBubyBhZGRyZXNzIG9yIGlycXMgaW4gX0NSUw0K
DQpbICAgIDQuMjkxNzkzXSBOb24tdm9sYXRpbGUgbWVtb3J5IGRyaXZlciB2MS4zDQoNClsgICAg
NC4zMDAxOTldIExpbnV4IGFncGdhcnQgaW50ZXJmYWNlIHYwLjEwMw0KDQpbICAgIDQuMzA4ODk1
XSBBQ1BJOiBidXMgdHlwZSBkcm1fY29ubmVjdG9yIHJlZ2lzdGVyZWQNCg0KWyAgICA0LjMxOTY2
N10gbG9vcDogbW9kdWxlIGxvYWRlZA0KDQpbICAgIDQuMzI1ODQ1XSBhaGNpIDAwMDA6MDU6MDAu
MDogdmVyc2lvbiAzLjANCg0KWyAgICA0LjMzNDIyNl0gYWhjaSAwMDAwOjA1OjAwLjA6IEFIQ0kg
dmVycyAwMDAxLjAzMDEsIDMyIGNvbW1hbmQgc2xvdHMsIDYgR2JwcywgU0FUQSBtb2RlDQoNClsg
ICAgNC4zNTAyMjVdIGFoY2kgMDAwMDowNTowMC4wOiAxLzEgcG9ydHMgaW1wbGVtZW50ZWQgKHBv
cnQgbWFzayAweDEpDQoNClsgICAgNC4zNjMwNDZdIGFoY2kgMDAwMDowNTowMC4wOiBmbGFnczog
NjRiaXQgbmNxIHNudGYgaWxjayBwbSBsZWQgY2xvIG9ubHkgcG1wIGZicyBwaW8gc2x1bSBwYXJ0
DQoNClsgICAgNC4zODE1MDNdIHNjc2kgaG9zdDA6IGFoY2kNCg0KWyAgICA0LjM4NzEzMF0gYXRh
MTogU0FUQSBtYXggVURNQS8xMzMgYWJhciBtMjA0OEAweGZlODAxMDAwIHBvcnQgMHhmZTgwMTEw
MCBpcnEgNTAgbHBtLXBvbCAzDQoNClsgICAgNC40MDM4NTldIGFoY2kgMDAwMDowNTowMC4xOiBB
SENJIHZlcnMgMDAwMS4wMzAxLCAzMiBjb21tYW5kIHNsb3RzLCA2IEdicHMsIFNBVEEgbW9kZQ0K
DQpbICAgIDQuNDE5ODYwXSBhaGNpIDAwMDA6MDU6MDAuMTogMS8xIHBvcnRzIGltcGxlbWVudGVk
IChwb3J0IG1hc2sgMHgxKQ0KDQpbICAgIDQuNDMyNjg1XSBhaGNpIDAwMDA6MDU6MDAuMTogZmxh
Z3M6IDY0Yml0IG5jcSBzbnRmIGlsY2sgcG0gbGVkIGNsbyBvbmx5IHBtcCBmYnMgcGlvIHNsdW0g
cGFydA0KDQpbICAgIDQuNDUwODY4XSBzY3NpIGhvc3QxOiBhaGNpDQoNClsgICAgNC40NTY0ODhd
IGF0YTI6IFNBVEEgbWF4IFVETUEvMTMzIGFiYXIgbTIwNDhAMHhmZTgwMDAwMCBwb3J0IDB4ZmU4
MDAxMDAgaXJxIDUyIGxwbS1wb2wgMw0KDQpbICAgIDQuNDczMjgxXSBSb3VuZGluZyBkb3duIGFs
aWduZWQgbWF4X3NlY3RvcnMgZnJvbSA0Mjk0OTY3Mjk1IHRvIDQyOTQ5NjcyODgNCg0KWyAgICA0
LjQ4NzI4NV0gZGJfcm9vdDogY2Fubm90IG9wZW46IC9ldGMvdGFyZ2V0DQoNClsgICAgNC40OTYw
ODldIHR1bjogVW5pdmVyc2FsIFRVTi9UQVAgZGV2aWNlIGRyaXZlciwgMS42DQoNClsgICAgNC41
MDYzMjJdIGUxMDA6IEludGVsKFIpIFBSTy8xMDAgTmV0d29yayBEcml2ZXINCg0KWyAgICA0LjUx
NTc1MF0gZTEwMDogQ29weXJpZ2h0KGMpIDE5OTktMjAwNiBJbnRlbCBDb3Jwb3JhdGlvbg0KDQpb
ICAgIDQuNTI2ODQ1XSBlMTAwMDogSW50ZWwoUikgUFJPLzEwMDAgTmV0d29yayBEcml2ZXINCg0K
WyAgICA0LjUzNjcxNV0gZTEwMDA6IENvcHlyaWdodCAoYykgMTk5OS0yMDA2IEludGVsIENvcnBv
cmF0aW9uLg0KDQpbICAgIDQuNTQ4MzM0XSBlMTAwMGU6IEludGVsKFIpIFBSTy8xMDAwIE5ldHdv
cmsgRHJpdmVyDQoNClsgICAgNC41NTgzODddIGUxMDAwZTogQ29weXJpZ2h0KGMpIDE5OTkgLSAy
MDE1IEludGVsIENvcnBvcmF0aW9uLg0KDQpbICAgIDQuNTcwMzU0XSBJbnRlbChSKSAyLjVHIEV0
aGVybmV0IExpbnV4IERyaXZlcg0KDQpbICAgIDQuNTc5NTM1XSBDb3B5cmlnaHQoYykgMjAxOCBJ
bnRlbCBDb3Jwb3JhdGlvbi4NCg0KWyAgICA0LjU4ODg5OF0gc2t5MjogZHJpdmVyIHZlcnNpb24g
MS4zMA0KDQooWEVOKSBbICAgMjEuNjQ0MzYxXSBkMHYzIHVuYWJsZSB0byBmaXh1cCBtZW1vcnkg
cmVhZCBmcm9tIDB4ZmU5MTAwMGMgc2l6ZSA0OiAtMQ0KKFhFTikgWyAgIDIxLjY1ODU3Ml0gZDB2
MyB1bmFibGUgdG8gZml4dXAgbWVtb3J5IHdyaXRlIHRvIDB4ZmU5MTAwMDAgc2l6ZSA0OiAtMQ0K
KFhFTikgWyAgIDIxLjY3MjYxMF0gZDB2MyB1bmFibGUgdG8gZml4dXAgbWVtb3J5IHdyaXRlIHRv
IDB4ZmU5MTAwMDQgc2l6ZSA0OiAtMQ0KKFhFTikgWyAgIDIxLjY4NjY1M10gZDB2MyB1bmFibGUg
dG8gZml4dXAgbWVtb3J5IHdyaXRlIHRvIDB4ZmU5MTAwMDggc2l6ZSA0OiAtMQ0KKFhFTikgWyAg
IDIxLjcwMDY4OF0gZDB2MyB1bmFibGUgdG8gZml4dXAgbWVtb3J5IHJlYWQgZnJvbSAweGZlOTEw
MDA4IHNpemUgNDogLTENCihYRU4pIFsgICAyMS43MTQ5MDFdIGQwdjMgdW5hYmxlIHRvIGZpeHVw
IG1lbW9yeSB3cml0ZSB0byAweGZlOTEwMDBjIHNpemUgNDogLTENCihYRU4pIFsgICAyMS43Mjg5
NDJdIGQwdjMgdW5hYmxlIHRvIGZpeHVwIG1lbW9yeSB3cml0ZSB0byAweGZlOTEwMDFjIHNpemUg
NDogLTENCihYRU4pIFsgICAyMS43NDI5ODRdIGQwdjMgdW5hYmxlIHRvIGZpeHVwIG1lbW9yeSB3
cml0ZSB0byAweGZlOTEwMDJjIHNpemUgNDogLTENCihYRU4pIFsgICAyMS43NTcwMjVdIGQwdjMg
dW5hYmxlIHRvIGZpeHVwIG1lbW9yeSB3cml0ZSB0byAweGZlOTEwMDNjIHNpemUgNDogLTENCihY
RU4pIFsgICAyMS43NzEwNjVdIGQwdjMgdW5hYmxlIHRvIGZpeHVwIG1lbW9yeSB3cml0ZSB0byAw
eGZlOTEwMDRjIHNpemUgNDogLTENCihYRU4pIFsgICAyMS43ODUxMDVdIGQwdjMgdW5hYmxlIHRv
IGZpeHVwIG1lbW9yeSB3cml0ZSB0byAweGZlOTEwMDVjIHNpemUgNDogLTENCihYRU4pIFsgICAy
MS43OTkxNDVdIGQwdjMgdW5hYmxlIHRvIGZpeHVwIG1lbW9yeSB3cml0ZSB0byAweGZlOTEwMDZj
IHNpemUgNDogLTENCihYRU4pIFsgICAyMS44MTMxODZdIGQwdjMgdW5hYmxlIHRvIGZpeHVwIG1l
bW9yeSB3cml0ZSB0byAweGZlOTEwMDdjIHNpemUgNDogLTENClsgICAgNC43NzAzMjFdIGEoWEVO
KSBbICAgMjEuODI5OTk2XSBkMHYzIHVuYWJsZSB0byBmaXh1cCBtZW1vcnkgd3JpdGUgdG8gMHhm
ZTkxMDA4YyBzaXplIDQ6IC0xDQp0YTE6IFNBVEEgbGluayBkKFhFTikgWyAgIDIxLjg0NjgxMV0g
ZDB2MyB1bmFibGUgdG8gZml4dXAgbWVtb3J5IHdyaXRlIHRvIDB4ZmU5MTAwOWMgc2l6ZSA0OiAt
MQ0Kb3duIChTU3RhdHVzIDAgUyhYRU4pIFsgICAyMS44NjM2MjZdIGQwdjMgdW5hYmxlIHRvIGZp
eHVwIG1lbW9yeSB3cml0ZSB0byAweGZlOTEwMGFjIHNpemUgNDogLTENCkNvbnRyb2wgMzAwKQ0K
DQooWEVOKSBbICAgMjEuODgwMjY4XSBkMHYzIHVuYWJsZSB0byBmaXh1cCBtZW1vcnkgd3JpdGUg
dG8gMHhmZTkxMDBiYyBzaXplIDQ6IC0xDQooWEVOKSBbICAgMjEuODk0MzA2XSBkMHYzIHVuYWJs
ZSB0byBmaXh1cCBtZW1vcnkgd3JpdGUgdG8gMHhmZTkxMDBjYyBzaXplIDQ6IC0xDQooWEVOKSBb
ICAgMjEuOTA4MzQ2XSBkMHYzIHVuYWJsZSB0byBmaXh1cCBtZW1vcnkgd3JpdGUgdG8gMHhmZTkx
MDBkYyBzaXplIDQ6IC0xDQooWEVOKSBbICAgMjEuOTIyMzg1XSBkMHYzIHVuYWJsZSB0byBmaXh1
cCBtZW1vcnkgd3JpdGUgdG8gMHhmZTkxMDBlYyBzaXplIDQ6IC0xDQooWEVOKSBbICAgMjEuOTM2
NDI3XSBkMHYzIHVuYWJsZSB0byBmaXh1cCBtZW1vcnkgd3JpdGUgdG8gMHhmZTkxMDBmYyBzaXpl
IDQ6IC0xDQooWEVOKSBbICAgMjEuOTUwNDY4XSBkMHYzIHVuYWJsZSB0byBmaXh1cCBtZW1vcnkg
d3JpdGUgdG8gMHhmZTkxMDEwYyBzaXplIDQ6IC0xDQooWEVOKSBbICAgMjEuOTY0NTAzXSBkMHYz
IHVuYWJsZSB0byBmaXh1cCBtZW1vcnkgd3JpdGUgdG8gMHhmZTkxMDExYyBzaXplIDQ6IC0xDQoo
WEVOKSBbICAgMjEuOTc4NTQ2XSBkMHYzIHVuYWJsZSB0byBmaXh1cCBtZW1vcnkgd3JpdGUgdG8g
MHhmZTkxMDEyYyBzaXplIDQ6IC0xDQooWEVOKSBbICAgMjEuOTkyNTgzXSBkMHYzIHVuYWJsZSB0
byBmaXh1cCBtZW1vcnkgd3JpdGUgdG8gMHhmZTkxMDEzYyBzaXplIDQ6IC0xDQooWEVOKSBbICAg
MjIuMDA2NjIzXSBkMHYzIHVuYWJsZSB0byBmaXh1cCBtZW1vcnkgd3JpdGUgdG8gMHhmZTkxMDE0
YyBzaXplIDQ6IC0xDQooWEVOKSBbICAgMjIuMDIwNjY0XSBkMHYzIHVuYWJsZSB0byBmaXh1cCBt
ZW1vcnkgd3JpdGUgdG8gMHhmZTkxMDE1YyBzaXplIDQ6IC0xDQooWEVOKSBbICAgMjIuMDM0NzA2
XSBkMHYzIHVuYWJsZSB0byBmaXh1cCBtZW1vcnkgd3JpdGUgdG8gMHhmZTkxMDE2YyBzaXplIDQ6
IC0xDQooWEVOKSBbICAgMjIuMDQ4NzQ3XSBkMHYzIHVuYWJsZSB0byBmaXh1cCBtZW1vcnkgd3Jp
dGUgdG8gMHhmZTkxMDE3YyBzaXplIDQ6IC0xDQooWEVOKSBbICAgMjIuMDYyNzg0XSBkMHYzIHVu
YWJsZSB0byBmaXh1cCBtZW1vcnkgd3JpdGUgdG8gMHhmZTkxMDE4YyBzaXplIDQ6IC0xDQooWEVO
KSBbICAgMjIuMDc2ODIzXSBkMHYzIHVuYWJsZSB0byBmaXh1cCBtZW1vcnkgd3JpdGUgdG8gMHhm
ZTkxMDE5YyBzaXplIDQ6IC0xDQooWEVOKSBbICAgMjIuMDkwODY3XSBkMHYzIHVuYWJsZSB0byBm
aXh1cCBtZW1vcnkgd3JpdGUgdG8gMHhmZTkxMDFhYyBzaXplIDQ6IC0xDQooWEVOKSBbICAgMjIu
MTA0OTA0XSBkMHYzIHVuYWJsZSB0byBmaXh1cCBtZW1vcnkgd3JpdGUgdG8gMHhmZTkxMDFiYyBz
aXplIDQ6IC0xDQooWEVOKSBbICAgMjIuMTE4OTQ3XSBkMHYzIHVuYWJsZSB0byBmaXh1cCBtZW1v
cnkgd3JpdGUgdG8gMHhmZTkxMDFjYyBzaXplIDQ6IC0xDQooWEVOKSBbICAgMjIuMTMyOTg3XSBk
MHYzIHVuYWJsZSB0byBmaXh1cCBtZW1vcnkgd3JpdGUgdG8gMHhmZTkxMDFkYyBzaXplIDQ6IC0x
DQooWEVOKSBbICAgMjIuMTQ3MDI4XSBkMHYzIHVuYWJsZSB0byBmaXh1cCBtZW1vcnkgd3JpdGUg
dG8gMHhmZTkxMDFlYyBzaXplIDQ6IC0xDQooWEVOKSBbICAgMjIuMTYxMDY2XSBkMHYzIHVuYWJs
ZSB0byBmaXh1cCBtZW1vcnkgd3JpdGUgdG8gMHhmZTkxMDFmYyBzaXplIDQ6IC0xDQpbICAgIDQu
ODE3OTkwXSBhKFhFTikgWyAgIDIyLjE3Nzg3OV0gZDB2MSB1bmFibGUgdG8gZml4dXAgbWVtb3J5
IHJlYWQgZnJvbSAweGZlNWZlMDBjIHNpemUgNDogLTENCnRhMjogU0FUQSBsaW5rIGQoWEVOKSBb
ICAgMjIuMTk0ODY1XSBkMHYxIHVuYWJsZSB0byBmaXh1cCBtZW1vcnkgcmVhZCBmcm9tIDB4ZmU1
ZmUwMWMgc2l6ZSA0OiAtMQ0Kb3duIChTU3RhdHVzIDAgUyhYRU4pIFsgICAyMi4yMTE4NTVdIGQw
djEgdW5hYmxlIHRvIGZpeHVwIG1lbW9yeSByZWFkIGZyb20gMHhmZTVmZTAyYyBzaXplIDQ6IC0x
DQpDb250cm9sIDMwMCkNCg0KKFhFTikgWyAgIDIyLjIyODY3MF0gZDB2MSB1bmFibGUgdG8gZml4
dXAgbWVtb3J5IHJlYWQgZnJvbSAweGZlNWZlMDNjIHNpemUgNDogLTENCihYRU4pIFsgICAyMi4y
NDI4ODRdIGQwdjEgdW5hYmxlIHRvIGZpeHVwIG1lbW9yeSByZWFkIGZyb20gMHhmZTVmZTA0YyBz
aXplIDQ6IC0xDQpbICAgIDUuMTMyNjkwXSBtKFhFTikgWyAgIDIyLjI1OTg3MV0gZDB2MSB1bmFi
bGUgdG8gZml4dXAgbWVtb3J5IHdyaXRlIHRvIDB4ZmU1ZmUwMDAgc2l6ZSA0OiAtMQ0Kb2Rwcm9i
ZSAoNzMpIHVzZShYRU4pIFsgICAyMi4yNzY2ODJdIGQwdjEgdW5hYmxlIHRvIGZpeHVwIG1lbW9y
eSB3cml0ZSB0byAweGZlNWZlMDA0IHNpemUgNDogLTENCmQgZ3JlYXRlc3Qgc3RhY2soWEVOKSBb
ICAgMjIuMjkzNDk1XSBkMHYxIHVuYWJsZSB0byBmaXh1cCBtZW1vcnkgd3JpdGUgdG8gMHhmZTVm
ZTAwOCBzaXplIDQ6IC0xDQogZGVwdGg6IDEzNzIwIGJ5KFhFTikgWyAgIDIyLjMxMDMwNl0gZDB2
MSB1bmFibGUgdG8gZml4dXAgbWVtb3J5IHJlYWQgZnJvbSAweGZlNWZlMDA4IHNpemUgNDogLTEN
CnRlcyBsZWZ0DQoNCihYRU4pIFsgICAyMi4zMjY0MzFdIGQwdjEgdW5hYmxlIHRvIGZpeHVwIG1l
bW9yeSB3cml0ZSB0byAweGZlNWZlMDEwIHNpemUgNDogLTENCihYRU4pIFsgICAyMi4zNDA0Njdd
IGQwdjEgdW5hYmxlIHRvIGZpeHVwIG1lbW9yeSB3cml0ZSB0byAweGZlNWZlMDE0IHNpemUgNDog
LTENClsgICAgNS4xMzI4NzRdIHIoWEVOKSBbICAgMjIuMzU3MjgwXSBkMHYxIHVuYWJsZSB0byBm
aXh1cCBtZW1vcnkgd3JpdGUgdG8gMHhmZTVmZTAxOCBzaXplIDQ6IC0xDQo4MTY5IDAwMDA6MDM6
MDAuKFhFTikgWyAgIDIyLjM3NDA5OF0gZDB2MSB1bmFibGUgdG8gZml4dXAgbWVtb3J5IHJlYWQg
ZnJvbSAweGZlNWZlMDE4IHNpemUgNDogLTENCjAgZXRoMDogUlRMODEyNUIoWEVOKSBbICAgMjIu
MzkxMDg0XSBkMHYxIHVuYWJsZSB0byBmaXh1cCBtZW1vcnkgd3JpdGUgdG8gMHhmZTVmZTAyMCBz
aXplIDQ6IC0xDQosIGRjOjljOjUyOjI3OmFlKFhFTikgWyAgIDIyLjQwNzg5OV0gZDB2MSB1bmFi
bGUgdG8gZml4dXAgbWVtb3J5IHdyaXRlIHRvIDB4ZmU1ZmUwMjQgc2l6ZSA0OiAtMQ0KOmM0LCBY
SUQgNjQxLCBJUihYRU4pIFsgICAyMi40MjQ3MTJdIGQwdjEgdW5hYmxlIHRvIGZpeHVwIG1lbW9y
eSB3cml0ZSB0byAweGZlNWZlMDI4IHNpemUgNDogLTENClEgNTQNCg0KKFhFTikgWyAgIDIyLjQz
OTk2Ml0gZDB2MSB1bmFibGUgdG8gZml4dXAgbWVtb3J5IHJlYWQgZnJvbSAweGZlNWZlMDI4IHNp
emUgNDogLTENClsgICAgNS4xMzI4NzddIHIoWEVOKSBbICAgMjIuNDU2OTQ3XSBkMHYxIHVuYWJs
ZSB0byBmaXh1cCBtZW1vcnkgd3JpdGUgdG8gMHhmZTVmZTAzMCBzaXplIDQ6IC0xDQo4MTY5IDAw
MDA6MDM6MDAuKFhFTikgWyAgIDIyLjQ3Mzc2Nl0gZDB2MSB1bmFibGUgdG8gZml4dXAgbWVtb3J5
IHdyaXRlIHRvIDB4ZmU1ZmUwMzQgc2l6ZSA0OiAtMQ0KMCBldGgwOiBqdW1ibyBmZShYRU4pIFsg
ICAyMi40OTA1NzRdIGQwdjEgdW5hYmxlIHRvIGZpeHVwIG1lbW9yeSB3cml0ZSB0byAweGZlNWZl
MDM4IHNpemUgNDogLTENCmF0dXJlcyBbZnJhbWVzOiAoWEVOKSBbICAgMjIuNTA3MzkwXSBkMHYx
IHVuYWJsZSB0byBmaXh1cCBtZW1vcnkgcmVhZCBmcm9tIDB4ZmU1ZmUwMzggc2l6ZSA0OiAtMQ0K
OTE5NCBieXRlcywgdHggYyhYRU4pIFsgICAyMi41MjQzODBdIGQwdjEgdW5hYmxlIHRvIGZpeHVw
IG1lbW9yeSB3cml0ZSB0byAweGZlNWZlMDQwIHNpemUgNDogLTENCmhlY2tzdW1taW5nOiBrb10o
WEVOKSBbICAgMjIuNTQxMTg4XSBkMHYxIHVuYWJsZSB0byBmaXh1cCBtZW1vcnkgd3JpdGUgdG8g
MHhmZTVmZTA0NCBzaXplIDQ6IC0xDQoNCg0KKFhFTikgWyAgIDIyLjU1NTc1MV0gZDB2MSB1bmFi
bGUgdG8gZml4dXAgbWVtb3J5IHdyaXRlIHRvIDB4ZmU1ZmUwNDggc2l6ZSA0OiAtMQ0KKFhFTikg
WyAgIDIyLjU2OTc5MF0gZDB2MSB1bmFibGUgdG8gZml4dXAgbWVtb3J5IHJlYWQgZnJvbSAweGZl
NWZlMDQ4IHNpemUgNDogLTENClsgICAgNS4xMzI4ODVdIHgoWEVOKSBbICAgMjIuNTg2Nzc1XSBk
MHYxIHVuYWJsZSB0byBmaXh1cCBtZW1vcnkgd3JpdGUgdG8gMHhmZTVmZTAwYyBzaXplIDQ6IC0x
DQplbl9uZXRmcm9udDogSW5pKFhFTikgWyAgIDIyLjYwMzU4OF0gZDB2MSB1bmFibGUgdG8gZml4
dXAgbWVtb3J5IHdyaXRlIHRvIDB4ZmU1ZmUwMWMgc2l6ZSA0OiAtMQ0KdGlhbGlzaW5nIFhlbiB2
aShYRU4pIFsgICAyMi42MjA0MDVdIGQwdjEgdW5hYmxlIHRvIGZpeHVwIG1lbW9yeSB3cml0ZSB0
byAweGZlNWZlMDJjIHNpemUgNDogLTENCnJ0dWFsIGV0aGVybmV0IGQoWEVOKSBbICAgMjIuNjM3
MjE1XSBkMHYxIHVuYWJsZSB0byBmaXh1cCBtZW1vcnkgd3JpdGUgdG8gMHhmZTVmZTAzYyBzaXpl
IDQ6IC0xDQpyaXZlcg0KDQooWEVOKSBbICAgMjIuNjUyNjQzXSBkMHYxIHVuYWJsZSB0byBmaXh1
cCBtZW1vcnkgd3JpdGUgdG8gMHhmZTVmZTA0YyBzaXplIDQ6IC0xDQooWEVOKSBbICAgMjIuNjY2
Njg1XSBkMHYxIHVuYWJsZSB0byBmaXh1cCBtZW1vcnkgd3JpdGUgdG8gMHhmZTVmZTA1YyBzaXpl
IDQ6IC0xDQpbICAgIDUuMTMzMDQ2XSB4KFhFTikgWyAgIDIyLjY4MzQ5N10gZDB2MSB1bmFibGUg
dG8gZml4dXAgbWVtb3J5IHdyaXRlIHRvIDB4ZmU1ZmUwNmMgc2l6ZSA0OiAtMQ0KaGNpX2hjZCAw
MDAwOjA0OihYRU4pIFsgICAyMi43MDAzMDldIGQwdjEgdW5hYmxlIHRvIGZpeHVwIG1lbW9yeSB3
cml0ZSB0byAweGZlNWZlMDdjIHNpemUgNDogLTENCjAwLjM6IHhIQ0kgSG9zdCAoWEVOKSBbICAg
MjIuNzE3MTIyXSBkMHYxIHVuYWJsZSB0byBmaXh1cCBtZW1vcnkgd3JpdGUgdG8gMHhmZTVmZTAw
MCBzaXplIDQ6IC0xDQpDb250cm9sbGVyDQoNCihYRU4pIFsgICAyMi43MzM0MTZdIGQwdjEgdW5h
YmxlIHRvIGZpeHVwIG1lbW9yeSB3cml0ZSB0byAweGZlNWZlMDA0IHNpemUgNDogLTENCihYRU4p
IFsgICAyMi43NDc0NTZdIGQwdjEgdW5hYmxlIHRvIGZpeHVwIG1lbW9yeSB3cml0ZSB0byAweGZl
NWZlMDA4IHNpemUgNDogLTENCihYRU4pIFsgICAyMi43NjE0OTZdIGQwdjEgdW5hYmxlIHRvIGZp
eHVwIG1lbW9yeSByZWFkIGZyb20gMHhmZTVmZTAwOCBzaXplIDQ6IC0xDQooWEVOKSBbICAgMjIu
Nzc1NzEzXSBkMHYxIHVuYWJsZSB0byBmaXh1cCBtZW1vcnkgd3JpdGUgdG8gMHhmZTVmZTAwMCBz
aXplIDQ6IC0xDQooWEVOKSBbICAgMjIuNzg5NzUxXSBkMHYxIHVuYWJsZSB0byBmaXh1cCBtZW1v
cnkgd3JpdGUgdG8gMHhmZTVmZTAwNCBzaXplIDQ6IC0xDQooWEVOKSBbICAgMjIuODAzNzk1XSBk
MHYxIHVuYWJsZSB0byBmaXh1cCBtZW1vcnkgd3JpdGUgdG8gMHhmZTVmZTAwOCBzaXplIDQ6IC0x
DQooWEVOKSBbICAgMjIuODE3ODMxXSBkMHYxIHVuYWJsZSB0byBmaXh1cCBtZW1vcnkgcmVhZCBm
cm9tIDB4ZmU1ZmUwMDggc2l6ZSA0OiAtMQ0KKFhFTikgWyAgIDIyLjgzMjA0M10gZDB2MSB1bmFi
bGUgdG8gZml4dXAgbWVtb3J5IHdyaXRlIHRvIDB4ZmU1ZmUwMGMgc2l6ZSA0OiAtMQ0KWyAgICA1
LjEzMzA5NF0geGhjaV9oY2QgMDAwMDowNDowMC4zOiBuZXcgVVNCIGJ1cyByZWdpc3RlcmVkLCBh
c3NpZ25lZCBidXMgbnVtYmVyIDENCg0KWyAgICA1LjEzMzIyMF0geGhjaV9oY2QgMDAwMDowNDow
MC4zOiBoY2MgcGFyYW1zIDB4MDI2OGZmZTUgaGNpIHZlcnNpb24gMHgxMTAgcXVpcmtzIDB4MDAw
MDAyMDAwMDAwMDAxMA0KDQpbICAgIDUuODAzMzIyXSB4aGNpX2hjZCAwMDAwOjA0OjAwLjM6IHhI
Q0kgSG9zdCBDb250cm9sbGVyDQoNClsgICAgNS44NDcxMTVdIHhoY2lfaGNkIDAwMDA6MDQ6MDAu
MzogbmV3IFVTQiBidXMgcmVnaXN0ZXJlZCwgYXNzaWduZWQgYnVzIG51bWJlciAyDQoNClsgICAg
NS44NjE5NjNdIHhoY2lfaGNkIDAwMDA6MDQ6MDAuMzogSG9zdCBzdXBwb3J0cyBVU0IgMy4xIEVu
aGFuY2VkIFN1cGVyU3BlZWQNCg0KWyAgICA1Ljg3NjIwMF0gdXNiIHVzYjE6IE5ldyBVU0IgZGV2
aWNlIGZvdW5kLCBpZFZlbmRvcj0xZDZiLCBpZFByb2R1Y3Q9MDAwMiwgYmNkRGV2aWNlPSA2LjEy
DQoNClsgICAgNS44OTI4MThdIHVzYiB1c2IxOiBOZXcgVVNCIGRldmljZSBzdHJpbmdzOiBNZnI9
MywgUHJvZHVjdD0yLCBTZXJpYWxOdW1iZXI9MQ0KDQpbICAgIDUuOTA3Mzc0XSB1c2IgdXNiMTog
UHJvZHVjdDogeEhDSSBIb3N0IENvbnRyb2xsZXINCg0KWyAgICA1LjkxNzI1NV0gdXNiIHVzYjE6
IE1hbnVmYWN0dXJlcjogTGludXggNi4xMi4wIHhoY2ktaGNkDQoNClsgICAgNS45MjgxNzddIHVz
YiB1c2IxOiBTZXJpYWxOdW1iZXI6IDAwMDA6MDQ6MDAuMw0KDQpbICAgIDUuOTM3NjMyXSBodWIg
MS0wOjEuMDogVVNCIGh1YiBmb3VuZA0KDQpbICAgIDUuOTQ1MTczXSBodWIgMS0wOjEuMDogNCBw
b3J0cyBkZXRlY3RlZA0KDQpbICAgIDUuOTUzMzczXSB1c2IgdXNiMjogV2UgZG9uJ3Qga25vdyB0
aGUgYWxnb3JpdGhtcyBmb3IgTFBNIGZvciB0aGlzIGhvc3QsIGRpc2FibGluZyBMUE0uDQoNClsg
ICAgNS45Njk2MTBdIHVzYiB1c2IyOiBOZXcgVVNCIGRldmljZSBmb3VuZCwgaWRWZW5kb3I9MWQ2
YiwgaWRQcm9kdWN0PTAwMDMsIGJjZERldmljZT0gNi4xMg0KDQpbICAgIDUuOTg2MjQxXSB1c2Ig
dXNiMjogTmV3IFVTQiBkZXZpY2Ugc3RyaW5nczogTWZyPTMsIFByb2R1Y3Q9MiwgU2VyaWFsTnVt
YmVyPTENCg0KWyAgICA2LjAwMDc5OV0gdXNiIHVzYjI6IFByb2R1Y3Q6IHhIQ0kgSG9zdCBDb250
cm9sbGVyDQoNClsgICAgNi4wMTA2NzddIHVzYiB1c2IyOiBNYW51ZmFjdHVyZXI6IExpbnV4IDYu
MTIuMCB4aGNpLWhjZA0KDQpbICAgIDYuMDIxNjAyXSB1c2IgdXNiMjogU2VyaWFsTnVtYmVyOiAw
MDAwOjA0OjAwLjMNCg0KWyAgICA2LjAzMTA3NF0gaHViIDItMDoxLjA6IFVTQiBodWIgZm91bmQN
Cg0KWyAgICA2LjAzODU5Nl0gaHViIDItMDoxLjA6IDIgcG9ydHMgZGV0ZWN0ZWQNCg0KWyAgICA2
LjA0Njg0NF0geGhjaV9oY2QgMDAwMDowNDowMC40OiB4SENJIEhvc3QgQ29udHJvbGxlcg0KDQpb
ICAgIDYuMDU3MzYyXSB4aGNpX2hjZCAwMDAwOjA0OjAwLjQ6IG5ldyBVU0IgYnVzIHJlZ2lzdGVy
ZWQsIGFzc2lnbmVkIGJ1cyBudW1iZXIgMw0KDQpbICAgIDYuMDcyMjkxXSB4aGNpX2hjZCAwMDAw
OjA0OjAwLjQ6IGhjYyBwYXJhbXMgMHgwMjY4ZmZlNSBoY2kgdmVyc2lvbiAweDExMCBxdWlya3Mg
MHgwMDAwMDIwMDAwMDAwMDEwDQoNCihYRU4pIFsgICAyMy4xMzM0NzddIGQwdjAgdW5hYmxlIHRv
IGZpeHVwIG1lbW9yeSByZWFkIGZyb20gMHhmZTRmZTAwYyBzaXplIDQ6IC0xDQooWEVOKSBbICAg
MjMuMTQ3Njg1XSBkMHYwIHVuYWJsZSB0byBmaXh1cCBtZW1vcnkgcmVhZCBmcm9tIDB4ZmU0ZmUw
MWMgc2l6ZSA0OiAtMQ0KKFhFTikgWyAgIDIzLjE2MTkwMl0gZDB2MCB1bmFibGUgdG8gZml4dXAg
bWVtb3J5IHJlYWQgZnJvbSAweGZlNGZlMDJjIHNpemUgNDogLTENCihYRU4pIFsgICAyMy4xNzYx
MTddIGQwdjAgdW5hYmxlIHRvIGZpeHVwIG1lbW9yeSByZWFkIGZyb20gMHhmZTRmZTAzYyBzaXpl
IDQ6IC0xDQooWEVOKSBbICAgMjMuMTkwMzI1XSBkMHYwIHVuYWJsZSB0byBmaXh1cCBtZW1vcnkg
cmVhZCBmcm9tIDB4ZmU0ZmUwNGMgc2l6ZSA0OiAtMQ0KKFhFTikgWyAgIDIzLjIwNDU0NF0gZDB2
MCB1bmFibGUgdG8gZml4dXAgbWVtb3J5IHdyaXRlIHRvIDB4ZmU0ZmUwMDAgc2l6ZSA0OiAtMQ0K
KFhFTikgWyAgIDIzLjIxODU3OV0gZDB2MCB1bmFibGUgdG8gZml4dXAgbWVtb3J5IHdyaXRlIHRv
IDB4ZmU0ZmUwMDQgc2l6ZSA0OiAtMQ0KKFhFTikgWyAgIDIzLjIzMjYyMl0gZDB2MCB1bmFibGUg
dG8gZml4dXAgbWVtb3J5IHdyaXRlIHRvIDB4ZmU0ZmUwMDggc2l6ZSA0OiAtMQ0KKFhFTikgWyAg
IDIzLjI0NjY2MF0gZDB2MCB1bmFibGUgdG8gZml4dXAgbWVtb3J5IHJlYWQgZnJvbSAweGZlNGZl
MDA4IHNpemUgNDogLTENCihYRU4pIFsgICAyMy4yNjA4NzZdIGQwdjAgdW5hYmxlIHRvIGZpeHVw
IG1lbW9yeSB3cml0ZSB0byAweGZlNGZlMDEwIHNpemUgNDogLTENCihYRU4pIFsgICAyMy4yNzQ5
MTVdIGQwdjAgdW5hYmxlIHRvIGZpeHVwIG1lbW9yeSB3cml0ZSB0byAweGZlNGZlMDE0IHNpemUg
NDogLTENCihYRU4pIFsgICAyMy4yODg5NTNdIGQwdjAgdW5hYmxlIHRvIGZpeHVwIG1lbW9yeSB3
cml0ZSB0byAweGZlNGZlMDE4IHNpemUgNDogLTENCihYRU4pIFsgICAyMy4zMDI5OTZdIGQwdjAg
dW5hYmxlIHRvIGZpeHVwIG1lbW9yeSByZWFkIGZyb20gMHhmZTRmZTAxOCBzaXplIDQ6IC0xDQoo
WEVOKSBbICAgMjMuMzE3MjA3XSBkMHYwIHVuYWJsZSB0byBmaXh1cCBtZW1vcnkgd3JpdGUgdG8g
MHhmZTRmZTAyMCBzaXplIDQ6IC0xDQooWEVOKSBbICAgMjMuMzMxMjQ5XSBkMHYwIHVuYWJsZSB0
byBmaXh1cCBtZW1vcnkgd3JpdGUgdG8gMHhmZTRmZTAyNCBzaXplIDQ6IC0xDQooWEVOKSBbICAg
MjMuMzQ1MjkxXSBkMHYwIHVuYWJsZSB0byBmaXh1cCBtZW1vcnkgd3JpdGUgdG8gMHhmZTRmZTAy
OCBzaXplIDQ6IC0xDQooWEVOKSBbICAgMjMuMzU5MzI5XSBkMHYwIHVuYWJsZSB0byBmaXh1cCBt
ZW1vcnkgcmVhZCBmcm9tIDB4ZmU0ZmUwMjggc2l6ZSA0OiAtMQ0KKFhFTikgWyAgIDIzLjM3MzU0
MV0gZDB2MCB1bmFibGUgdG8gZml4dXAgbWVtb3J5IHdyaXRlIHRvIDB4ZmU0ZmUwMzAgc2l6ZSA0
OiAtMQ0KKFhFTikgWyAgIDIzLjM4NzU4M10gZDB2MCB1bmFibGUgdG8gZml4dXAgbWVtb3J5IHdy
aXRlIHRvIDB4ZmU0ZmUwMzQgc2l6ZSA0OiAtMQ0KKFhFTikgWyAgIDIzLjQwMTYyNl0gZDB2MCB1
bmFibGUgdG8gZml4dXAgbWVtb3J5IHdyaXRlIHRvIDB4ZmU0ZmUwMzggc2l6ZSA0OiAtMQ0KKFhF
TikgWyAgIDIzLjQxNTY2NF0gZDB2MCB1bmFibGUgdG8gZml4dXAgbWVtb3J5IHJlYWQgZnJvbSAw
eGZlNGZlMDM4IHNpemUgNDogLTENCihYRU4pIFsgICAyMy40Mjk5MTldIGQwdjMgdW5hYmxlIHRv
IGZpeHVwIG1lbW9yeSB3cml0ZSB0byAweGZlNGZlMDQwIHNpemUgNDogLTENCihYRU4pIFsgICAy
My40NDM5NTddIGQwdjMgdW5hYmxlIHRvIGZpeHVwIG1lbW9yeSB3cml0ZSB0byAweGZlNGZlMDQ0
IHNpemUgNDogLTENCihYRU4pIFsgICAyMy40NTc5OThdIGQwdjMgdW5hYmxlIHRvIGZpeHVwIG1l
bW9yeSB3cml0ZSB0byAweGZlNGZlMDQ4IHNpemUgNDogLTENCihYRU4pIFsgICAyMy40NzIwNDBd
IGQwdjMgdW5hYmxlIHRvIGZpeHVwIG1lbW9yeSByZWFkIGZyb20gMHhmZTRmZTA0OCBzaXplIDQ6
IC0xDQooWEVOKSBbICAgMjMuNDg2MjUyXSBkMHYzIHVuYWJsZSB0byBmaXh1cCBtZW1vcnkgd3Jp
dGUgdG8gMHhmZTRmZTAwYyBzaXplIDQ6IC0xDQooWEVOKSBbICAgMjMuNTAwMjk0XSBkMHYzIHVu
YWJsZSB0byBmaXh1cCBtZW1vcnkgd3JpdGUgdG8gMHhmZTRmZTAxYyBzaXplIDQ6IC0xDQooWEVO
KSBbICAgMjMuNTE0MzMxXSBkMHYzIHVuYWJsZSB0byBmaXh1cCBtZW1vcnkgd3JpdGUgdG8gMHhm
ZTRmZTAyYyBzaXplIDQ6IC0xDQooWEVOKSBbICAgMjMuNTI4Mzc1XSBkMHYzIHVuYWJsZSB0byBm
aXh1cCBtZW1vcnkgd3JpdGUgdG8gMHhmZTRmZTAzYyBzaXplIDQ6IC0xDQooWEVOKSBbICAgMjMu
NTQyNDEzXSBkMHYzIHVuYWJsZSB0byBmaXh1cCBtZW1vcnkgd3JpdGUgdG8gMHhmZTRmZTA0YyBz
aXplIDQ6IC0xDQooWEVOKSBbICAgMjMuNTU2NDU1XSBkMHYzIHVuYWJsZSB0byBmaXh1cCBtZW1v
cnkgd3JpdGUgdG8gMHhmZTRmZTA1YyBzaXplIDQ6IC0xDQooWEVOKSBbICAgMjMuNTcwNDk0XSBk
MHYzIHVuYWJsZSB0byBmaXh1cCBtZW1vcnkgd3JpdGUgdG8gMHhmZTRmZTA2YyBzaXplIDQ6IC0x
DQooWEVOKSBbICAgMjMuNTg0NTM1XSBkMHYzIHVuYWJsZSB0byBmaXh1cCBtZW1vcnkgd3JpdGUg
dG8gMHhmZTRmZTA3YyBzaXplIDQ6IC0xDQooWEVOKSBbICAgMjMuNTk4NTc1XSBkMHYzIHVuYWJs
ZSB0byBmaXh1cCBtZW1vcnkgd3JpdGUgdG8gMHhmZTRmZTAwMCBzaXplIDQ6IC0xDQooWEVOKSBb
ICAgMjMuNjEyNjE2XSBkMHYzIHVuYWJsZSB0byBmaXh1cCBtZW1vcnkgd3JpdGUgdG8gMHhmZTRm
ZTAwNCBzaXplIDQ6IC0xDQooWEVOKSBbICAgMjMuNjI2NjUyXSBkMHYzIHVuYWJsZSB0byBmaXh1
cCBtZW1vcnkgd3JpdGUgdG8gMHhmZTRmZTAwOCBzaXplIDQ6IC0xDQooWEVOKSBbICAgMjMuNjQw
NjkyXSBkMHYzIHVuYWJsZSB0byBmaXh1cCBtZW1vcnkgcmVhZCBmcm9tIDB4ZmU0ZmUwMDggc2l6
ZSA0OiAtMQ0KKFhFTikgWyAgIDIzLjY1NDkwNV0gZDB2MyB1bmFibGUgdG8gZml4dXAgbWVtb3J5
IHdyaXRlIHRvIDB4ZmU0ZmUwMDAgc2l6ZSA0OiAtMQ0KKFhFTikgWyAgIDIzLjY2ODk0Nl0gZDB2
MyB1bmFibGUgdG8gZml4dXAgbWVtb3J5IHdyaXRlIHRvIDB4ZmU0ZmUwMDQgc2l6ZSA0OiAtMQ0K
KFhFTikgWyAgIDIzLjY4Mjk4OF0gZDB2MyB1bmFibGUgdG8gZml4dXAgbWVtb3J5IHdyaXRlIHRv
IDB4ZmU0ZmUwMDggc2l6ZSA0OiAtMQ0KKFhFTikgWyAgIDIzLjY5NzAyOV0gZDB2MyB1bmFibGUg
dG8gZml4dXAgbWVtb3J5IHJlYWQgZnJvbSAweGZlNGZlMDA4IHNpemUgNDogLTENCihYRU4pIFsg
ICAyMy43MTEyNDJdIGQwdjMgdW5hYmxlIHRvIGZpeHVwIG1lbW9yeSB3cml0ZSB0byAweGZlNGZl
MDBjIHNpemUgNDogLTENClsgICAgNi42ODI0NTZdIHhoY2lfaGNkIDAwMDA6MDQ6MDAuNDogeEhD
SSBIb3N0IENvbnRyb2xsZXINCg0KWyAgICA2LjY5MzI1OV0geGhjaV9oY2QgMDAwMDowNDowMC40
OiBuZXcgVVNCIGJ1cyByZWdpc3RlcmVkLCBhc3NpZ25lZCBidXMgbnVtYmVyIDQNCg0KWyAgICA2
LjcwNzg4MV0geGhjaV9oY2QgMDAwMDowNDowMC40OiBIb3N0IHN1cHBvcnRzIFVTQiAzLjEgRW5o
YW5jZWQgU3VwZXJTcGVlZA0KDQpbICAgIDYuNzIyMTA3XSB1c2IgdXNiMzogTmV3IFVTQiBkZXZp
Y2UgZm91bmQsIGlkVmVuZG9yPTFkNmIsIGlkUHJvZHVjdD0wMDAyLCBiY2REZXZpY2U9IDYuMTIN
Cg0KWyAgICA2LjczODcyM10gdXNiIHVzYjM6IE5ldyBVU0IgZGV2aWNlIHN0cmluZ3M6IE1mcj0z
LCBQcm9kdWN0PTIsIFNlcmlhbE51bWJlcj0xDQoNClsgICAgNi43NTMyODVdIHVzYiB1c2IzOiBQ
cm9kdWN0OiB4SENJIEhvc3QgQ29udHJvbGxlcg0KDQpbICAgIDYuNzYzMTY4XSB1c2IgdXNiMzog
TWFudWZhY3R1cmVyOiBMaW51eCA2LjEyLjAgeGhjaS1oY2QNCg0KWyAgICA2Ljc3NDA4NV0gdXNi
IHVzYjM6IFNlcmlhbE51bWJlcjogMDAwMDowNDowMC40DQoNClsgICAgNi43ODM4MDFdIGh1YiAz
LTA6MS4wOiBVU0IgaHViIGZvdW5kDQoNClsgICAgNi43OTExMzZdIGh1YiAzLTA6MS4wOiA0IHBv
cnRzIGRldGVjdGVkDQoNClsgICAgNi43OTkzODFdIHVzYiB1c2I0OiBXZSBkb24ndCBrbm93IHRo
ZSBhbGdvcml0aG1zIGZvciBMUE0gZm9yIHRoaXMgaG9zdCwgZGlzYWJsaW5nIExQTS4NCg0KWyAg
ICA2LjgxNTU3NF0gdXNiIHVzYjQ6IE5ldyBVU0IgZGV2aWNlIGZvdW5kLCBpZFZlbmRvcj0xZDZi
LCBpZFByb2R1Y3Q9MDAwMywgYmNkRGV2aWNlPSA2LjEyDQoNClsgICAgNi44MzIyMTFdIHVzYiB1
c2I0OiBOZXcgVVNCIGRldmljZSBzdHJpbmdzOiBNZnI9MywgUHJvZHVjdD0yLCBTZXJpYWxOdW1i
ZXI9MQ0KDQpbICAgIDYuODQ2NzcxXSB1c2IgdXNiNDogUHJvZHVjdDogeEhDSSBIb3N0IENvbnRy
b2xsZXINCg0KWyAgICA2Ljg1NjY0NF0gdXNiIHVzYjQ6IE1hbnVmYWN0dXJlcjogTGludXggNi4x
Mi4wIHhoY2ktaGNkDQoNClsgICAgNi44Njc1NzFdIHVzYiB1c2I0OiBTZXJpYWxOdW1iZXI6IDAw
MDA6MDQ6MDAuNA0KDQpbICAgIDYuODc3MjM0XSBodWIgNC0wOjEuMDogVVNCIGh1YiBmb3VuZA0K
DQpbICAgIDYuODg0NTc5XSBodWIgNC0wOjEuMDogMiBwb3J0cyBkZXRlY3RlZA0KDQpbICAgIDYu
ODkyNzgyXSB1c2Jjb3JlOiByZWdpc3RlcmVkIG5ldyBpbnRlcmZhY2UgZHJpdmVyIHVzYmxwDQoN
ClsgICAgNi45MDM4MjNdIHVzYmNvcmU6IHJlZ2lzdGVyZWQgbmV3IGludGVyZmFjZSBkcml2ZXIg
dXNiLXN0b3JhZ2UNCg0KWyAgICA2LjkxNTk1N10gaTgwNDI6IFBOUDogTm8gUFMvMiBjb250cm9s
bGVyIGZvdW5kLg0KDQpbICAgIDYuOTI1NDcyXSBpODA0MjogUHJvYmluZyBwb3J0cyBkaXJlY3Rs
eS4NCg0KWyAgICA2LjkzNDY2MV0gaTgwNDI6IE5vIGNvbnRyb2xsZXIgZm91bmQNCg0KWyAgICA2
Ljk0MjEzMl0gcnRjX2Ntb3MgMDA6MDE6IFJUQyBjYW4gd2FrZSBmcm9tIFM0DQoNClsgICAgNi45
NTE0NjRdIHJ0Y19jbW9zIDAwOjAxOiByZWdpc3RlcmVkIGFzIHJ0YzANCg0KWyAgICA2Ljk2MDM4
NV0gcnRjX2Ntb3MgMDA6MDE6IG5vIGFsYXJtcywgeTNrLCAxMTQgYnl0ZXMgbnZyYW0NCg0KWyAg
ICA2Ljk3MTY1M10gZmFpbCB0byBpbml0aWFsaXplIHB0cF9rdm0NCg0KWyAgICA2Ljk3MTc2M10g
eGVuX3dkdCB4ZW5fd2R0OiBpbml0aWFsaXplZCAodGltZW91dD02MHMsIG5vd2F5b3V0PTApDQoN
ClsgICAgNi45OTE3ODRdIGRldmljZS1tYXBwZXI6IGlvY3RsOiA0LjQ4LjAtaW9jdGwgKDIwMjMt
MDMtMDEpIGluaXRpYWxpc2VkOiBkbS1kZXZlbEBsaXN0cy5saW51eC5kZXYNCg0KWyAgICA3LjAw
OTU5OV0gYW1kX3BzdGF0ZTogVGhlIENQUEMgZmVhdHVyZSBpcyBzdXBwb3J0ZWQgYnV0IGN1cnJl
bnRseSBkaXNhYmxlZCBieSB0aGUgQklPUy4NCg0KWyAgICA3LjAwOTU5OV0gUGxlYXNlIGVuYWJs
ZSBpdCBpZiB5b3VyIEJJT1MgaGFzIHRoZSBDUFBDIG9wdGlvbi4NCg0KWyAgICA3LjAzNzk2N10g
YW1kX3BzdGF0ZTogdGhlIF9DUEMgb2JqZWN0IGlzIG5vdCBwcmVzZW50IGluIFNCSU9TIG9yIEFD
UEkgZGlzYWJsZWQNCg0KWyAgICA3LjA1MzM2Ml0gaGlkOiByYXcgSElEIGV2ZW50cyBkcml2ZXIg
KEMpIEppcmkgS29zaW5hDQoNClsgICAgNy4wNjM1MzNdIHVzYmNvcmU6IHJlZ2lzdGVyZWQgbmV3
IGludGVyZmFjZSBkcml2ZXIgdXNiaGlkDQoNClsgICAgNy4wNzQ3MzVdIHVzYmhpZDogVVNCIEhJ
RCBjb3JlIGRyaXZlcg0KDQpbICAgIDcuMDgyODMxXSBzbmRfaGRhX2ludGVsIDAwMDA6MDQ6MDAu
MTogZW5hYmxpbmcgZGV2aWNlICgwMDAwIC0+IDAwMDIpDQoNCihYRU4pIFsgICAyNC4xMzg1OTZd
IDAwMDA6MDQ6MDAuMTogbm90IG1hcHBpbmcgQkFSIFtmZTdjOCwgZmU3Y2JdIGludmFsaWQgcG9z
aXRpb24NClsgICAgNy4xMTAzMzBdIHNuZF9oZGFfaW50ZWwgMDAwMDowNDowMC42OiBlbmFibGlu
ZyBkZXZpY2UgKDAwMDAgLT4gMDAwMikNCg0KKFhFTikgWyAgIDI0LjE2NjMzMF0gMDAwMDowNDow
MC42OiBub3QgbWFwcGluZyBCQVIgW2ZlN2MwLCBmZTdjN10gaW52YWxpZCBwb3NpdGlvbg0KWyAg
ICA3LjEzODM4OV0gSW5pdGlhbGl6aW5nIFhGUk0gbmV0bGluayBzb2NrZXQNCg0KWyAgICA3LjE0
MTE5M10gc25kX2hkYV9pbnRlbCAwMDAwOjA0OjAwLjE6IENhbm5vdCBwcm9iZSBjb2RlY3MsIGdp
dmluZyB1cA0KDQpbICAgIDcuMTQ2Nzc4XSBOKFhFTikgWyAgIDI0LjIwNTU5Ml0gYXJjaC94ODYv
aHZtL3Ztc2kuYzo4ODY6ZDB2MiAwMDAwOjA0OjAwLjE6IFBJUlEgMzMyMDogdW5zdXBwb3J0ZWQg
YWRkcmVzcyAwDQpFVDogUmVnaXN0ZXJlZCBQKFhFTikgWyAgIDI0LjIyNTM1M10gYXJjaC94ODYv
aHZtL3Ztc2kuYzo4ODY6ZDB2MiAwMDAwOjA0OjAwLjE6IFBJUlEgMzMyMDogdW5zdXBwb3J0ZWQg
YWRkcmVzcyAwDQpGX0lORVQ2IHByb3RvY29sKFhFTikgWyAgIDI0LjI0NTExMl0gYXJjaC94ODYv
aHZtL3Ztc2kuYzo4ODY6ZDB2MiAwMDAwOjA0OjAwLjE6IFBJUlEgMzMyMDogdW5zdXBwb3J0ZWQg
YWRkcmVzcyAwDQogZmFtaWx5DQoNClsgICAgNy4yMjEyNDBdIFNlZ21lbnQgUm91dGluZyB3aXRo
IElQdjYNCg0KWyAgICA3LjIyODQwN10gSW4tc2l0dSBPQU0gKElPQU0pIHdpdGggSVB2Ng0KDQpb
ICAgIDcuMjM2NDU5XSBzaXQ6IElQdjYsIElQdjQgYW5kIE1QTFMgb3ZlciBJUHY0IHR1bm5lbGlu
ZyBkcml2ZXINCg0KWyAgICA3LjI0ODQ4OV0gTkVUOiBSZWdpc3RlcmVkIFBGX1BBQ0tFVCBwcm90
b2NvbCBmYW1pbHkNCg0KWyAgICA3LjI1ODU5Nl0gOXBuZXQ6IEluc3RhbGxpbmcgOVAyMDAwIHN1
cHBvcnQNCg0KWyAgICA3LjI2NzI0N10gS2V5IHR5cGUgZG5zX3Jlc29sdmVyIHJlZ2lzdGVyZWQN
Cg0KWyAgICA3LjI3NjU2MV0gSVBJIHNob3J0aGFuZCBicm9hZGNhc3Q6IGVuYWJsZWQNCg0KWyAg
ICA3LjI4NjM0M10gc2NoZWRfY2xvY2s6IE1hcmtpbmcgc3RhYmxlICg3MTQxMDA2NTY3LCAxNDQ1
NTEwMDQpLT4oMTEwMDgwMzY3OTgsIC0zNzIyNDc5MjI3KQ0KDQpbICAgIDcuMzAzMDM5XSByZWdp
c3RlcmVkIHRhc2tzdGF0cyB2ZXJzaW9uIDENCg0KWyAgICA3LjMxMTE3N10gTG9hZGluZyBjb21w
aWxlZC1pbiBYLjUwOSBjZXJ0aWZpY2F0ZXMNCg0KWyAgICA3LjMyMTY3OV0gRGVtb3Rpb24gdGFy
Z2V0cyBmb3IgTm9kZSAwOiBudWxsDQoNClsgICAgNy4zMzA0MDJdIFBNOiAgIE1hZ2ljIG51bWJl
cjogNToxNDA6NDY1DQoNClsgICAgNy4zMzg0ODZdIHByaW50azogbGVnYWN5IGNvbnNvbGUgW25l
dGNvbjBdIGVuYWJsZWQNCg0KWyAgICA3LjM0ODQzMF0gbmV0Y29uc29sZTogbmV0d29yayBsb2dn
aW5nIHN0YXJ0ZWQNCg0KWyAgICA3LjM1ODAyOF0gY2ZnODAyMTE6IExvYWRpbmcgY29tcGlsZWQt
aW4gWC41MDkgY2VydGlmaWNhdGVzIGZvciByZWd1bGF0b3J5IGRhdGFiYXNlDQoNClsgICAgNy4z
NzQ2MDldIExvYWRlZCBYLjUwOSBjZXJ0ICdzZm9yc2hlZTogMDBiMjhkZGY0N2FlZjljZWE3Jw0K
DQpbICAgIDcuMzg1ODYyXSBMb2FkZWQgWC41MDkgY2VydCAnd2VuczogNjFjMDM4NjUxYWFiZGNm
OTRiZDBhYzdmZjA2YzcyNDhkYjE4YzYwMCcNCg0KWyAgICA3LjQwMDMyN10gcGxhdGZvcm0gcmVn
dWxhdG9yeS4wOiBEaXJlY3QgZmlybXdhcmUgbG9hZCBmb3IgcmVndWxhdG9yeS5kYiBmYWlsZWQg
d2l0aCBlcnJvciAtMg0KDQpbICAgIDcuNDA1NTc2XSBBTFNBIGRldmljZSBsaXN0Og0KDQpbICAg
IDcuNDE3NjQ1XSBjZmc4MDIxMTogZmFpbGVkIHRvIGxvYWQgcmVndWxhdG9yeS5kYg0KDQpbICAg
IDcuNDMzNDIzXSAgIE5vIHNvdW5kY2FyZHMgZm91bmQuDQoNClsgICAgNy40NDA4MjRdIEZyZWVp
bmcgdW51c2VkIGtlcm5lbCBpbWFnZSAoaW5pdG1lbSkgbWVtb3J5OiAzMDIwSw0KDQpbICAgIDcu
NDUyNDk3XSBXcml0ZSBwcm90ZWN0aW5nIHRoZSBrZXJuZWwgcmVhZC1vbmx5IGRhdGE6IDI4Njcy
aw0KDQpbICAgIDcuNDY0NTk1XSBGcmVlaW5nIHVudXNlZCBrZXJuZWwgaW1hZ2UgKHJvZGF0YS9k
YXRhIGdhcCkgbWVtb3J5OiA4NDRLDQoNClsgICAgNy41MDc0OTJdIHg4Ni9tbTogQ2hlY2tlZCBX
K1ggbWFwcGluZ3M6IHBhc3NlZCwgbm8gVytYIHBhZ2VzIGZvdW5kLg0KDQpbICAgIDcuNTIwMTk2
XSBSdW4gL2luaXQgYXMgaW5pdCBwcm9jZXNzDQoNClsgICAgNy41Mjc2NDJdICAgd2l0aCBhcmd1
bWVudHM6DQoNClsgICAgNy41MzM3MDZdICAgICAvaW5pdA0KDQpbICAgIDcuNTM4MzkxXSAgIHdp
dGggZW52aXJvbm1lbnQ6DQoNClsgICAgNy41NDQ4MDFdICAgICBIT01FPS8NCg0KWyAgICA3LjU0
OTY1M10gICAgIFRFUk09bGludXgNCg0KDQoNCiAgIE9wZW5SQyAwLjQ4IGlzIHN0YXJ0aW5nIHVw
IExpbnV4IDYuMTIuMCAoeDg2XzY0KQ0KDQoNCg0KICogTW91bnRpbmcgL3Byb2MgLi4uWyAgICA3
LjU3MjExOF0gZiBbIG9rIF1zdGFiaW5mbyAoOTApIHVzDQoNCmVkIGdyZWF0ZXN0IHN0YWNrIGRl
cHRoOiAxMzQwOCBieXRlcyBsZWZ0DQoNCiAqIE1vdW50aW5nIC9ydW4gLi4uIFsgb2sgXQ0KDQog
KiAvcnVuL29wZW5yYzogY3JlYXRpbmcgZGlyZWN0b3J5DQoNCiAqIC9ydW4vbG9jazogY3JlYXRp
bmcgZGlyZWN0b3J5DQoNCiAqIC9ydW4vbG9jazogY29ycmVjdGluZyBvd25lcg0KDQogKiBNb3Vu
dGluZyB4ZW5mcyAuLi4gWyBvayBdDQoNCiAqIENhY2hpbmcgc2VydmljZSBkZXBlbmRlbmNpZXMg
Li4uIFsgb2sgXQ0KDQogKiBFeGVjdXRpbmc6IC9saWIvcmMvc2gvb3BlbnJjLXJ1bi5zaCAvbGli
L3JjL3NoL29wZW5yYy1ydW4uc2ggL2V0Yy9pbml0LmQvZGV2ZnMgc3RhcnQNCg0KICogTW91bnRp
bmcgZGV2dG1wZnMgb24gL2RldiAuLi4gWyBvayBdDQoNCiAqIE1vdW50aW5nIC9kZXYvbXF1ZXVl
IC4uLiBbIG9rIF0NCg0KICogTW91bnRpbmcgL2Rldi9wdHMgLi4uIFsgb2sgXQ0KDQogKiBNb3Vu
dGluZyAvZGV2L3NobSAuLi4gWyBvayBdDQoNCiAqIEV4ZWN1dGluZzogL2xpYi9yYy9zaC9vcGVu
cmMtcnVuLnNoIC9saWIvcmMvc2gvb3BlbnJjLXJ1bi5zaCAvZXRjL2luaXQuZC9kbWVzZyBzdGFy
dA0KDQogKiBFeGVjdXRpbmc6IC9saWIvcmMvc2gvb3BlbnJjLXJ1bi5zaCAvbGliL3JjL3NoL29w
ZW5yYy1ydW4uc2ggL2V0Yy9pbml0LmQvc3lzZnMgc3RhcnQNCg0KICogTW91bnRpbmcgL3N5cyAu
Li4gWyBvayBdDQoNCiAqIE1vdW50aW5nIGRlYnVnIGZpbGVzeXN0ZW0gLi4uIFsgb2sgXQ0KDQog
KiBNb3VudGluZyBjb25maWcgZmlsZXN5c3RlbSAuLi4gWyBvayBdDQoNCiAqIE1vdW50aW5nIFNF
TGludXggZmlsZXN5c3RlbSAuLi4gWyBvayBdDQoNCiAqIE1vdW50aW5nIGVmaXZhcmZzIGZpbGVz
eXN0ZW0gLi4uIFsgb2sgXQ0KDQogKiBFeGVjdXRpbmc6IC9saWIvcmMvc2gvb3BlbnJjLXJ1bi5z
aCAvbGliL3JjL3NoL29wZW5yYy1ydW4uc2ggL2V0Yy9pbml0LmQvdWRldiBzdGFydA0KDQogKiBT
dGFydGluZyB1ZGV2IC4uLiAqIHN0YXJ0LXN0b3AtZGFlbW9uOiBmb3BlbiBgL3J1bi91ZGV2LnBp
ZCc6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkNCg0KICogRGV0YWNoaW5nIHRvIHN0YXJ0IGAv
c2Jpbi91ZGV2ZCcgLi4uIFsgb2sgXQ0KDQogKiBFeGVjdXRpbmc6IC9saWIvcmMvc2gvb3BlbnJj
LXJ1bi5zaCAvbGliL3JjL3NoL29wZW5yYy1ydW4uc2ggL2V0Yy9pbml0LmQvdWRldi10cmlnZ2Vy
IHN0YXJ0DQoNCiAqIEdlbmVyYXRpbmcgYSBydWxlIHRvIGNyZWF0ZSBhIC9kZXYvcm9vdCBzeW1s
aW5rIC4uLiBbIG9rIF0NCg0KICogUG9wdWxhdGluZyAvZGV2IHdpdGggZXhpc3RpbmcgZGV2aWNl
cyB0aHJvdWdoIHVldmVudHMgLi4uIFsgb2sgXQ0KDQogKiBFeGVjdXRpbmc6IC9saWIvcmMvc2gv
b3BlbnJjLXJ1bi5zaCAvbGliL3JjL3NoL29wZW5yYy1ydW4uc2ggL2V0Yy9pbml0LmQvaHdkcml2
ZXJzIHN0YXJ0DQoNCiAqIExvYWRpbmcgaGFyZHdhcmUgZHJpdmVycyAuLi4gWyBvayBdDQoNCiAq
IEV4ZWN1dGluZzogL2xpYi9yYy9zaC9vcGVucmMtcnVuLnNoIC9saWIvcmMvc2gvb3BlbnJjLXJ1
bi5zaCAvZXRjL2luaXQuZC9sb29wYmFjayBzdGFydA0KDQogKiBCcmluZ2luZyB1cCBuZXR3b3Jr
IGludGVyZmFjZSBsbyAuLi4gWyBvayBdDQoNCiAqIEV4ZWN1dGluZzogL2xpYi9yYy9zaC9vcGVu
cmMtcnVuLnNoIC9saWIvcmMvc2gvb3BlbnJjLXJ1bi5zaCAvZXRjL2luaXQuZC91ZGV2LXNldHRs
ZSBzdGFydA0KDQogKiBXYWl0aW5nIGZvciB1ZXZlbnRzIHRvIGJlIHByb2Nlc3NlZCAuLi4gWyBv
ayBdDQoNCiAqIEV4ZWN1dGluZzogL2xpYi9yYy9zaC9vcGVucmMtcnVuLnNoIC9saWIvcmMvc2gv
b3BlbnJjLXJ1bi5zaCAvZXRjL2luaXQuZC9tb2R1bGVzIHN0YXJ0DQoNCiAqIExvYWRpbmcgbW9k
dWxlcyAuLi4gKiAgIFByb2Nlc3NpbmcgL2V0Yy9tb2R1bGVzDQoNCiBbIG9rIF0NCg0KICogRXhl
Y3V0aW5nOiAvbGliL3JjL3NoL29wZW5yYy1ydW4uc2ggL2xpYi9yYy9zaC9vcGVucmMtcnVuLnNo
IC9ldGMvaW5pdC5kL2h3Y2xvY2sgc3RhcnQNCg0KICogU2V0dGluZyBzeXN0ZW0gY2xvY2sgdXNp
bmcgdGhlIGhhcmR3YXJlIGNsb2NrIFtVVENdIC4uLiBbIG9rIF0NCg0KICogRXhlY3V0aW5nOiAv
bGliL3JjL3NoL29wZW5yYy1ydW4uc2ggL2xpYi9yYy9zaC9vcGVucmMtcnVuLnNoIC9ldGMvaW5p
dC5kL2ZzY2sgc3RhcnQNCg0KICogQ2hlY2tpbmcgbG9jYWwgZmlsZXN5c3RlbXMgIC4uLiBbIG9r
IF0NCg0KICogRXhlY3V0aW5nOiAvbGliL3JjL3NoL29wZW5yYy1ydW4uc2ggL2xpYi9yYy9zaC9v
cGVucmMtcnVuLnNoIC9ldGMvaW5pdC5kL3Jvb3Qgc3RhcnQNCg0KICogUmVtb3VudGluZyBmaWxl
c3lzdGVtcyAuLi4gWyBvayBdDQoNCiAqIEV4ZWN1dGluZzogL2xpYi9yYy9zaC9vcGVucmMtcnVu
LnNoIC9saWIvcmMvc2gvb3BlbnJjLXJ1bi5zaCAvZXRjL2luaXQuZC9sb2NhbG1vdW50IHN0YXJ0
DQoNCiAqIE1vdW50aW5nIGxvY2FsIGZpbGVzeXN0ZW1zIC4uLiBbIG9rIF0NCg0KICogRXhlY3V0
aW5nOiAvbGliL3JjL3NoL29wZW5yYy1ydW4uc2ggL2xpYi9yYy9zaC9vcGVucmMtcnVuLnNoIC9l
dGMvaW5pdC5kL2Jvb3RtaXNjIHN0YXJ0DQoNCiAqIE1pZ3JhdGluZyAvdmFyL2xvY2sgdG8gL3J1
bi9sb2NrIC4uLiBbIG9rIF0NCg0KICogQ3JlYXRpbmcgdXNlciBsb2dpbiByZWNvcmRzIC4uLiBb
IG9rIF0NCg0KICogQ2xlYW5pbmcgL3RtcCBkaXJlY3RvcnkgLi4uIFsgb2sgXQ0KDQogKiBFeGVj
dXRpbmc6IC9saWIvcmMvc2gvb3BlbnJjLXJ1bi5zaCAvbGliL3JjL3NoL29wZW5yYy1ydW4uc2gg
L2V0Yy9pbml0LmQvaG9zdG5hbWUgc3RhcnQNCg0KICogU2V0dGluZyBob3N0bmFtZSAuLi4gWyBv
ayBdDQoNCiAqIEV4ZWN1dGluZzogL2xpYi9yYy9zaC9vcGVucmMtcnVuLnNoIC9saWIvcmMvc2gv
b3BlbnJjLXJ1bi5zaCAvZXRjL2luaXQuZC9sb2NhbCBzdGFydA0KDQogKiBTdGFydGluZyBsb2Nh
bCAuLi4gKiAgIEV4ZWN1dGluZyAiL2V0Yy9sb2NhbC5kL3hlbi5zdGFydCIgLi4uIFsgb2sgXQ0K
DQogWyBvayBdDQoNCg0KDQoNCldlbGNvbWUgdG8gQWxwaW5lIExpbnV4IDMuMTgNCg0KDQpLZXJu
ZWwgNi4xMi4wIG9uIGFuIHg4Nl82NCAoL2Rldi9odmMwKQ0KDQoNCg0KDQoNCnJ1bm5lci10MnMy
YXR4ci1wcm9qZWN0LTYyOTIxODYxLWNvbmN1cnJlbnQtMCBsb2dpbjogcm9vdA0KDQpXZWxjb21l
IHRvIEFscGluZSENCg0KDQoNClRoZSBBbHBpbmUgV2lraSBjb250YWlucyBhIGxhcmdlIGFtb3Vu
dCBvZiBob3ctdG8gZ3VpZGVzIGFuZCBnZW5lcmFsDQoNCmluZm9ybWF0aW9uIGFib3V0IGFkbWlu
aXN0cmF0aW5nIEFscGluZSBzeXN0ZW1zLg0KDQpTZWUgPGh0dHBzOi8vd2lraS5hbHBpbmVsaW51
eC5vcmcvPi4NCg0KDQoNCllvdSBjYW4gc2V0dXAgdGhlIHN5c3RlbSB3aXRoIHRoZSBjb21tYW5k
OiBzZXR1cC1hbHBpbmUNCg0KDQoNCllvdSBtYXkgY2hhbmdlIHRoaXMgbWVzc2FnZSBieSBlZGl0
aW5nIC9ldGMvbW90ZC4NCg0KDQoNCmxvZ2luWzc3Ml06IHJvb3QgbG9naW4gb24gJ2h2YzAnDQoN
CnJ1bm5lci10MnMyYXR4ci1wcm9qZWN0LTYyOTIxODYxLWNvbmN1cnJlbnQtMDp+IyAbWzZubHMg
L2Rldi9ubQgbW0p2bSoIG1tKZSoNCg0KbHM6IC9kZXYvbnZtZSo6IE5vIHN1Y2ggZmlsZSBvciBk
aXJlY3RvcnkNCg0KcnVubmVyLXQyczJhdHhyLXByb2plY3QtNjI5MjE4NjEtY29uY3VycmVudC0w
On4jIBtbNm4oWEVOKSBbICAgODMuMDc0NzcxXSAqKiogU2VyaWFsIGlucHV0IHRvIFhlbiAodHlw
ZSAnQ1RSTC1hJyB0aHJlZSB0aW1lcyB0byBzd2l0Y2ggaW5wdXQpDQooWEVOKSBbICAgODQuNzY0
NjAwXSBhcmNoL3g4Ni9odm0vdm1zaS5jOjg4NjpkMHYxIDAwMDA6MDQ6MDAuNjogUElSUSAzMzE5
OiB1bnN1cHBvcnRlZCBhZGRyZXNzIDANCihYRU4pIFsgICA4NC43ODE1ODddIGFyY2gveDg2L2h2
bS92bXNpLmM6ODg2OmQwdjEgMDAwMDowNDowMC42OiBQSVJRIDMzMTk6IHVuc3VwcG9ydGVkIGFk
ZHJlc3MgMA0KKFhFTikgWyAgIDg0Ljc5ODU3Nl0gYXJjaC94ODYvaHZtL3Ztc2kuYzo4ODY6ZDB2
MSAwMDAwOjA0OjAwLjY6IFBJUlEgMzMxOTogdW5zdXBwb3J0ZWQgYWRkcmVzcyAwDQooWEVOKSBb
ICAgODcuMDM1MTQ1XSAnaCcgcHJlc3NlZCAtPiBzaG93aW5nIGluc3RhbGxlZCBoYW5kbGVycw0K
KFhFTikgWyAgIDg3LjA0NjIzN10gWGVuIHZlcnNpb24gNC4yMS11bnN0YWJsZSAocm9vdEApIChn
Y2MgKEFscGluZSAxMi4yLjFfZ2l0MjAyMjA5MjQtcjEwKSAxMi4yLjEgMjAyMjA5MjQpIGRlYnVn
PXkgV2VkIEFwciAyMyAyMDoxNjoyOCBVVEMgMjAyNQ0KKFhFTikgWyAgIDg3LjA3MTcxNl0gTGF0
ZXN0IENoYW5nZVNldDoNCihYRU4pIFsgICA4Ny4wNzg4MjVdIGJ1aWxkLWlkOiA4YWFiZWI2M2Iy
MGEzNDc5NzZmYmQ1ZjM4ZDdhYjM1NmMzMDdjNDFlDQooWEVOKSBbICAgODcuMDkxNDc4XSAga2V5
ICcqJyAoYXNjaWkgJzJhJykgPT4gcHJpbnQgYWxsIGRpYWdub3N0aWNzDQooWEVOKSBbICAgODcu
MTAzNDM4XSAga2V5ICcrJyAoYXNjaWkgJzJiJykgPT4gaW5jcmVhc2UgbG9nIGxldmVsIHRocmVz
aG9sZA0KKFhFTikgWyAgIDg3LjExNjYxMF0gIGtleSAnLScgKGFzY2lpICcyZCcpID0+IGRlY3Jl
YXNlIGxvZyBsZXZlbCB0aHJlc2hvbGQNCihYRU4pIFsgICA4Ny4xMjk3ODVdICBrZXkgJzAnIChh
c2NpaSAnMzAnKSA9PiBkdW1wIERvbTAgcmVnaXN0ZXJzDQooWEVOKSBbICAgODcuMTQxMzk4XSAg
a2V5ICdBJyAoYXNjaWkgJzQxJykgPT4gdG9nZ2xlIGFsdGVybmF0aXZlIGtleSBoYW5kbGluZw0K
KFhFTikgWyAgIDg3LjE1NTA4OV0gIGtleSAnRycgKGFzY2lpICc0NycpID0+IHRvZ2dsZSBob3N0
L2d1ZXN0IGxvZyBsZXZlbCBhZGp1c3RtZW50DQooWEVOKSBbICAgODcuMTY5OTk4XSAga2V5ICdI
JyAoYXNjaWkgJzQ4JykgPT4gZHVtcCBoZWFwIGluZm8NCihYRU4pIFsgICA4Ny4xODA3NDNdICBr
ZXkgJ0knIChhc2NpaSAnNDknKSA9PiBkdW1wIEhWTSBpcnEgaW5mbw0KKFhFTikgWyAgIDg3LjE5
MjAxMl0gIGtleSAnTScgKGFzY2lpICc0ZCcpID0+IGR1bXAgTVNJIHN0YXRlDQooWEVOKSBbICAg
ODcuMjAyNzU3XSAga2V5ICdOJyAoYXNjaWkgJzRlJykgPT4gdHJpZ2dlciBhbiBOTUkNCihYRU4p
IFsgICA4Ny4yMTM1MDZdICBrZXkgJ08nIChhc2NpaSAnNGYnKSA9PiB0b2dnbGUgc2hhZG93IGF1
ZGl0cw0KKFhFTikgWyAgIDg3LjIyNTI5MF0gIGtleSAnUScgKGFzY2lpICc1MScpID0+IGR1bXAg
UENJIGRldmljZXMNCihYRU4pIFsgICA4Ny4yMzYzODNdICBrZXkgJ1InIChhc2NpaSAnNTInKSA9
PiByZWJvb3QgbWFjaGluZQ0KKFhFTikgWyAgIDg3LjI0NzEzMl0gIGtleSAnUycgKGFzY2lpICc1
MycpID0+IHJlc2V0IHNoYWRvdyBwYWdldGFibGVzDQooWEVOKSBbICAgODcuMjU5NDM3XSAga2V5
ICdWJyAoYXNjaWkgJzU2JykgPT4gZHVtcCBJT01NVSBpbnRyZW1hcCB0YWJsZXMNCihYRU4pIFsg
ICA4Ny4yNzIyNjNdICBrZXkgJ2EnIChhc2NpaSAnNjEnKSA9PiBkdW1wIHRpbWVyIHF1ZXVlcw0K
KFhFTikgWyAgIDg3LjI4MzUzMV0gIGtleSAnYycgKGFzY2lpICc2MycpID0+IGR1bXAgQUNQSSBD
eCBzdHJ1Y3R1cmVzDQooWEVOKSBbICAgODcuMjk1ODM5XSAga2V5ICdkJyAoYXNjaWkgJzY0Jykg
PT4gZHVtcCByZWdpc3RlcnMNCihYRU4pIFsgICA4Ny4zMDY1ODZdICBrZXkgJ2UnIChhc2NpaSAn
NjUnKSA9PiBkdW1wIGV2dGNobiBpbmZvDQooWEVOKSBbICAgODcuMzE3Njc5XSAga2V5ICdnJyAo
YXNjaWkgJzY3JykgPT4gcHJpbnQgZ3JhbnQgdGFibGUgdXNhZ2UNCihYRU4pIFsgICA4Ny4zMjk5
ODZdICBrZXkgJ2gnIChhc2NpaSAnNjgnKSA9PiBzaG93IHRoaXMgbWVzc2FnZQ0KKFhFTikgWyAg
IDg3LjM0MTI1MV0gIGtleSAnaScgKGFzY2lpICc2OScpID0+IGR1bXAgaW50ZXJydXB0IGJpbmRp
bmdzDQooWEVOKSBbICAgODcuMzUzNTU3XSAga2V5ICdtJyAoYXNjaWkgJzZkJykgPT4gbWVtb3J5
IGluZm8NCihYRU4pIFsgICA4Ny4zNjM3ODZdICBrZXkgJ24nIChhc2NpaSAnNmUnKSA9PiBOTUkg
c3RhdGlzdGljcw0KKFhFTikgWyAgIDg3LjM3NDUzMl0gIGtleSAnbycgKGFzY2lpICc2ZicpID0+
IGR1bXAgaW9tbXUgcGFnZSB0YWJsZXMNCihYRU4pIFsgICA4Ny4zODY2NjRdICBrZXkgJ3EnIChh
c2NpaSAnNzEnKSA9PiBkdW1wIGRvbWFpbiAoYW5kIGd1ZXN0IGRlYnVnKSBpbmZvDQooWEVOKSBb
ICAgODcuNDAwODgwXSAga2V5ICdyJyAoYXNjaWkgJzcyJykgPT4gZHVtcCBydW4gcXVldWVzDQoo
WEVOKSBbICAgODcuNDExNzk5XSAga2V5ICdzJyAoYXNjaWkgJzczJykgPT4gZHVtcCBzb2Z0dHNj
IHN0YXRzDQooWEVOKSBbICAgODcuNDIzMjQxXSAga2V5ICd0JyAoYXNjaWkgJzc0JykgPT4gZGlz
cGxheSBtdWx0aS1jcHUgY2xvY2sgaW5mbw0KKFhFTikgWyAgIDg3LjQzNjQxM10gIGtleSAndScg
KGFzY2lpICc3NScpID0+IGR1bXAgTlVNQSBpbmZvDQooWEVOKSBbICAgODcuNDQ3MTYwXSAga2V5
ICd2JyAoYXNjaWkgJzc2JykgPT4gZHVtcCBBTUQtViBWTUNCcw0KKFhFTikgWyAgIDg3LjQ1ODI1
Ml0gIGtleSAndycgKGFzY2lpICc3NycpID0+IHN5bmNocm9ub3VzbHkgZHVtcCBjb25zb2xlIHJp
bmcgYnVmZmVyIChkbWVzZykNCihYRU4pIFsgICA4Ny40NzQ1NDZdICBrZXkgJ3gnIChhc2NpaSAn
NzgnKSA9PiBwcmludCBsaXZlcGF0Y2ggaW5mbw0KKFhFTikgWyAgIDg3LjQ4NjMzNF0gIGtleSAn
eicgKGFzY2lpICc3YScpID0+IGR1bXAgSU9BUElDIGluZm8NCihYRU4pIFsgICA5Ny45ODgwNTRd
ICcqJyBwcmVzc2VkIC0+IGZpcmluZyBhbGwgZGlhZ25vc3RpYyBrZXloYW5kbGVycw0KKFhFTikg
WyAgIDk4LjAwMDM2MV0gW2Q6IGR1bXAgcmVnaXN0ZXJzXQ0KKFhFTikgWyAgIDk4LjAwNzY0MV0g
J2QnIHByZXNzZWQgLT4gZHVtcGluZyByZWdpc3RlcnMNCihYRU4pIFsgICA5OC4wMTcxNzNdDQoo
WEVOKSBbICAgOTguMDIxMTYyXSAqKiogRHVtcGluZyBDUFU4IGhvc3Qgc3RhdGU6ICoqKg0KKFhF
TikgWyAgIDk4LjAzMDY5M10gLS0tLVsgWGVuLTQuMjEtdW5zdGFibGUgIHg4Nl82NCAgZGVidWc9
eSAgVGFpbnRlZDogICBDICAgIF0tLS0tDQooWEVOKSBbICAgOTguMDQ1NTk5XSBDUFU6ICAgIDgN
CihYRU4pIFsgICA5OC4wNTExNDhdIFJJUDogICAgZTAwODpbPGZmZmY4MmQwNDAyODUwN2Y+XSBh
cmNoL3g4Ni9hY3BpL2NwdV9pZGxlLmMjYWNwaV9pZGxlX2RvX2VudHJ5KzB4MTFlLzB4MTM1DQoo
WEVOKSBbICAgOTguMDcwNTYxXSBSRkxBR1M6IDAwMDAwMDAwMDAwMDAyNDYgICBDT05URVhUOiBo
eXBlcnZpc29yDQooWEVOKSBbICAgOTguMDgyNTIyXSByYXg6IGZmZmY4MzA3Y2ZkNmZlNDggICBy
Yng6IGZmZmY4MzA3Y2I3NDNlMzggICByY3g6IDAwMDAwMDAwMDAwMDAwMDENCihYRU4pIFsgICA5
OC4wOTg0NjddIHJkeDogMDAwMDAwMDAwMDAwMDAwMCAgIHJzaTogZmZmZjgzMDdjZmQ2ZmVmOCAg
IHJkaTogMDAwMDAwMDAwMDAwMDA0OA0KKFhFTikgWyAgIDk4LjExNDQxNV0gcmJwOiBmZmZmODMw
N2NmZDZmZTQ4ICAgcnNwOiBmZmZmODMwN2NmZDZmZTQ4ICAgcjg6ICAwMDAwMDAwMGZmZmZmZjAx
DQooWEVOKSBbICAgOTguMTMwMzYyXSByOTogIGZmZmY4MzA3Y2I3NDNiYjAgICByMTA6IDAwMDAw
MDAwZmZmZmZmZmYgICByMTE6IDAwMDAwMDAwMDAwMDAwMGENCihYRU4pIFsgICA5OC4xNDYzMDZd
IHIxMjogZmZmZjgzMDdjYjc0M2RjMCAgIHIxMzogMDAwMDAwMDAwMDAwMDAwOCAgIHIxNDogMDAw
MDAwMTZjYzMxNGZhNA0KKFhFTikgWyAgIDk4LjE2MjI1NV0gcjE1OiBmZmZmODJkMDQwNGI4NzYw
ICAgY3IwOiAwMDAwMDAwMDgwMDUwMDNiICAgY3I0OiAwMDAwMDAwMDAwMzUwNmUwDQooWEVOKSBb
ICAgOTguMTc4MjAyXSBjcjM6IDAwMDAwMDAwYzZhYzgwMDAgICBjcjI6IDAwMDAwMDAwMDAwMDAw
MDANCihYRU4pIFsgICA5OC4xODk5ODddIGZzYjogMDAwMDAwMDAwMDAwMDAwMCAgIGdzYjogMDAw
MDAwMDAwMDAwMDAwMCAgIGdzczogMDAwMDAwMDAwMDAwMDAwMA0KKFhFTikgWyAgIDk4LjIwNTkz
NF0gZHM6IDAwMDAgICBlczogMDAwMCAgIGZzOiAwMDAwICAgZ3M6IDAwMDAgICBzczogMDAwMCAg
IGNzOiBlMDA4DQooWEVOKSBbICAgOTguMjIwODQyXSBYZW4gY29kZSBhcm91bmQgPGZmZmY4MmQw
NDAyODUwN2Y+IChhcmNoL3g4Ni9hY3BpL2NwdV9pZGxlLmMjYWNwaV9pZGxlX2RvX2VudHJ5KzB4
MTFlLzB4MTM1KToNCihYRU4pIFsgICA5OC4yNDA5NDldICAwMCAwMCBmMyAwZiBhZSBlOSBmYiBm
NCA8OGI+IDg2IGZjIDAwIDAwIDAwIDgwIGE2IDA0IDAxIDAwIDAwIGZlIDg5IGY5IDY2DQooWEVO
KSBbICAgOTguMjU3NzY0XSBYZW4gc3RhY2sgdHJhY2UgZnJvbSByc3A9ZmZmZjgzMDdjZmQ2ZmU0
ODoNCihYRU4pIFsgICA5OC4yNjkwMjhdICAgIGZmZmY4MzA3Y2ZkNmZlYjAgZmZmZjgyZDA0MDI4
NTZjYiBmZmZmODJkMDQwMzRlNzRlIGZmZmY4MmQwNDA1ZGI0MDANCihYRU4pIFsgICA5OC4yODUx
NTBdICAgIGZmZmY4MzA3Y2ZkNmZlYTAgMDAwMDAwMDAwMDAwMDAwMCAwMDAwMDAwMDAwMDAwMDAw
IDAwMDAwMDAwMDAwMDAwMDANCihYRU4pIFsgICA5OC4zMDEyNjldICAgIDAwMDAwMDAwMDAwMDAw
MDggMDAwMDAwMDAwMDAwN2ZmZiBmZmZmODJkMDQwNWRiMDAwIGZmZmY4MmQwNDA1ZDQyMzANCihY
RU4pIFsgICA5OC4zMTczODhdICAgIGZmZmY4MmQwNDA0Yjg3NjAgZmZmZjgzMDdjZmQ2ZmVlOCBm
ZmZmODJkMDQwMzIyNjA2IGZmZmY4MmQwNDAzMjI1MWQNCihYRU4pIFsgICA5OC4zMzM1MTBdICAg
IGZmZmY4MzA3Y2I3NDAwMDAgMDAwMDAwMDAwMDAwMDAwMCAwMDAwMDAwMDAwMDAwMDAxIGZmZmY4
MmQwNDA0Yjg3NjANCihYRU4pIFsgICA5OC4zNDk2MjldICAgIGZmZmY4MzA3Y2ZkNmZkZTAgZmZm
ZjgyZDA0MDMyNTUzOSAzYTE5NDM2MzYwMTgxYjdiIDQzMzlkM2FlYjQwYTllYWMNCihYRU4pIFsg
ICA5OC4zNjU3NTBdICAgIGVjZjUzNzQ3MWQyZTlhNzMgYTdiOTA2Njg3MTBhNTIxMCBlMDBmMzRl
ZmI5YWQ4YjBkIGNmMjIxMTdlNDNmOGQ2YjQNCihYRU4pIFsgICA5OC4zODE4NzFdICAgIGU2N2Zh
NTYzYmE3ODkwODcgNWRhOThmM2QxMjRjMDIwZiA1NjFhY2NkZmYyMDE4NTY5IDRhZDNiOTMxMWE0
ZmJhMTQNCihYRU4pIFsgICA5OC4zOTc5ODldICAgIDRmMTJlNmEzODNhMDFhYTggMmMxNWU3OWU4
MzIzNmNkYiAzN2EyNTk0MWZmYTcyY2IxIGM2MWFhNmI2OTExMDQ4MDENCihYRU4pIFsgICA5OC40
MTQxMDldICAgIDEwOGQ4MDgxZDMyZDNjZmEgMzE4MmI2MGI2ZWIzMzU1OSBiMzNkOTUwOWQ5OThh
NTJhIDRjMjcwZThmOGVhMjg1YmINCihYRU4pIFsgICA5OC40MzAyMzFdICAgIDhhODUxNGUxMmEy
MjdhYTcgYWVhZWM2ZmNmMGJkZGJkMyA0NTQzODk5NDYxMGJkODBlIDFhYjczYWI4NTFiNDc2ZDQN
CihYRU4pIFsgICA5OC40NDYzNDldICAgIGQ5ZTBiMzk4Yjc2ZGFhMjEgODFiYmY5YWU1YTk4ZjZh
OCAzMTJhYzNkMDJmYzI2NjUxIDAwMDBlMDEwMDAwMDAwMDgNCihYRU4pIFsgICA5OC40NjI0NzBd
ICAgIGZmZmY4MzA3Y2I3NDAwMDAgMDAwMDAwMzc4ZjdhMTAwMCAwMDAwMDAwMDAwMzUwNmUwIDAw
MDAwMDAwMDAwMDAwMDANCihYRU4pIFsgICA5OC40Nzg1OTBdICAgIDAwMDAwMDAwMDAwMDAwMDAg
MDAwMDAwMDIwMDAwMDAwMCBjMTAwYmMxMTAwMDAwMDAyDQooWEVOKSBbICAgOTguNDkxNzY0XSBY
ZW4gY2FsbCB0cmFjZToNCihYRU4pIFsgICA5OC40OTgzNTJdICAgIFs8ZmZmZjgyZDA0MDI4NTA3
Zj5dIFIgYXJjaC94ODYvYWNwaS9jcHVfaWRsZS5jI2FjcGlfaWRsZV9kb19lbnRyeSsweDExZS8w
eDEzNQ0KKFhFTikgWyAgIDk4LjUxNjM3Nl0gICAgWzxmZmZmODJkMDQwMjg1NmNiPl0gRiBhcmNo
L3g4Ni9hY3BpL2NwdV9pZGxlLmMjYWNwaV9wcm9jZXNzb3JfaWRsZSsweDNmMC8weDVjZQ0KKFhF
TikgWyAgIDk4LjUzNDU3OF0gICAgWzxmZmZmODJkMDQwMzIyNjA2Pl0gRiBhcmNoL3g4Ni9kb21h
aW4uYyNpZGxlX2xvb3ArMHhlOS8weGViDQooWEVOKSBbICAgOTguNTQ5NDg0XSAgICBbPGZmZmY4
MmQwNDAzMjU1Mzk+XSBGIGNvbnRpbnVlX3J1bm5pbmcrMHg1Yi8weDVkDQooWEVOKSBbICAgOTgu
NTYyNDg0XQ0KKFhFTikgWyAgIDk4LjU2NjQ3M10gKioqIER1bXBpbmcgQ1BVMCBob3N0IHN0YXRl
OiAqKioNCihYRU4pIFsgICA5OC41NzYwMDVdIC0tLS1bIFhlbi00LjIxLXVuc3RhYmxlICB4ODZf
NjQgIGRlYnVnPXkgIFRhaW50ZWQ6ICAgQyAgICBdLS0tLQ0KKFhFTikgWyAgIDk4LjU5MDkxMF0g
Q1BVOiAgICAwDQooWEVOKSBbICAgOTguNTk2NDU3XSBSSVA6ICAgIGUwMDg6WzxmZmZmODJkMDQw
MjM1Mzc1Pl0gX3NwaW5fdW5sb2NrX2lycXJlc3RvcmUrMHgyMS8weDI3DQooWEVOKSBbICAgOTgu
NjEyMDU5XSBSRkxBR1M6IDAwMDAwMDAwMDAwMDAyMDYgICBDT05URVhUOiBoeXBlcnZpc29yDQoo
WEVOKSBbICAgOTguNjI0MDE4XSByYXg6IGZmZmY4MmQwNDA1ZDQwODggICByYng6IDAwMDAwMDAw
MDAwMDAyMDAgICByY3g6IDAwMDAwMDAwMDAwMDAwMDgNCihYRU4pIFsgICA5OC42Mzk5NjRdIHJk
eDogZmZmZjgzMDdjZmRiN2ZmZiAgIHJzaTogZmZmZjgzMDdjYjcxNDU2OCAgIHJkaTogZmZmZjgz
MDdjYjcxNDU2MA0KKFhFTikgWyAgIDk4LjY1NTkxMV0gcmJwOiBmZmZmODMwN2NmZGI3ZTI4ICAg
cnNwOiBmZmZmODMwN2NmZGI3ZTIwICAgcjg6ICBmZmZmODJkMDQwNWZjYzAxDQooWEVOKSBbICAg
OTguNjcxODU5XSByOTogIGZmZmY4MzA3Y2I3MTQ1NjAgICByMTA6IGZmZmY4MzA3Y2ZkYjdkYzAg
ICByMTE6IGZmZmY4MmQwNDAzNGM5OGQNCihYRU4pIFsgICA5OC42ODc4MDRdIHIxMjogMDAwMDAw
MDAwMDAwMDIwNiAgIHIxMzogZmZmZjgyZDA0MDRjYzg3OCAgIHIxNDogZmZmZjgzMDdjZmRiN2Zm
Zg0KKFhFTikgWyAgIDk4LjcwMzc1Ml0gcjE1OiAwMDAwMDAwMDAwMDAwMDAwICAgY3IwOiAwMDAw
MDAwMDgwMDUwMDNiICAgY3I0OiAwMDAwMDAwMDAwMzUwNmUwDQooWEVOKSBbICAgOTguNzE5Njk4
XSBjcjM6IDAwMDAwMDA3Y2I3Y2MwMDAgICBjcjI6IDAwMDA1NjM1Yjk2MjgzY2QNCihYRU4pIFsg
ICA5OC43MzE0ODRdIGZzYjogMDAwMDAwMDAwMDAwMDAwMCAgIGdzYjogZmZmZjg4ODExNTAwMDAw
MCAgIGdzczogMDAwMDAwMDAwMDAwMDAwMA0KKFhFTikgWyAgIDk4Ljc0NzQzMl0gZHM6IDAwMDAg
ICBlczogMDAwMCAgIGZzOiAwMDAwICAgZ3M6IDAwMDAgICBzczogMDAwMCAgIGNzOiBlMDA4DQoo
WEVOKSBbICAgOTguNzYyMzM5XSBYZW4gY29kZSBhcm91bmQgPGZmZmY4MmQwNDAyMzUzNzU+IChf
c3Bpbl91bmxvY2tfaXJxcmVzdG9yZSsweDIxLzB4MjcpOg0KKFhFTikgWyAgIDk4Ljc3ODYzMV0g
IGZkIGZmIGZmIDQ4IDA5IDFjIDI0IDlkIDw0OD4gOGIgNWQgZjggYzkgYzMgMGYgYjcgNDcgMDIg
NjYgMzkgMDcgMGYgOTUgYzANCihYRU4pIFsgICA5OC43OTU0NDVdIFhlbiBzdGFjayB0cmFjZSBm
cm9tIHJzcD1mZmZmODMwN2NmZGI3ZTIwOg0KKFhFTikgWyAgIDk4LjgwNjcxM10gICAgMDAwMDAw
MDA4ZTBlMTA5OSBmZmZmODMwN2NmZGI3ZTUwIGZmZmY4MmQwNDAzNGQyODUgZmZmZjgyZDA0MDVk
YjAwMA0KKFhFTikgWyAgIDk4LjgyMjgzMV0gICAgZmZmZmZmZmZmZmZmZmZmZiBmZmZmODJkMDQw
NWRiMDAwIGZmZmY4MzA3Y2ZkYjdlNjggZmZmZjgyZDA0MDM0ZTg0MA0KKFhFTikgWyAgIDk4Ljgz
ODk1MV0gICAgZmZmZjgyZDA0MDVkYjAwMCBmZmZmODMwN2NmZGI3ZWEwIGZmZmY4MmQwNDAyMzQ4
MWEgMDAwMDAwMDAwMDAwMDAwMA0KKFhFTikgWyAgIDk4Ljg1NTA3Ml0gICAgMDAwMDAwMDAwMDAw
N2ZmZiBmZmZmODJkMDQwNWRiMDAwIGZmZmY4MmQwNDA1ZDQyMzAgZmZmZjgyZDA0MDRiODc2MA0K
KFhFTikgWyAgIDk4Ljg3MTE5Ml0gICAgZmZmZjgzMDdjZmRiN2ViMCBmZmZmODJkMDQwMjM0OGFk
IGZmZmY4MzA3Y2ZkYjdlZTggZmZmZjgyZDA0MDMyMjVhZg0KKFhFTikgWyAgIDk4Ljg4NzMxNV0g
ICAgZmZmZjgyZDA0MDMyMjUxZCBmZmZmODMwN2NiMzQ5MDAwIGZmZmY4MzA3Y2ZkYjdlZjggZmZm
ZjgzMDdjZmRhMDAwMA0KKFhFTikgWyAgIDk4LjkwMzQzNF0gICAgMDAwMDAwMDAwMDAwMDAwMCBm
ZmZmODMwN2NmZGI3ZTE4IGZmZmY4MmQwNDAzMjU0Y2QgMDAwMDAwMDAwMzU1ZjZjMA0KKFhFTikg
WyAgIDk4LjkxOTU1M10gICAgMDAwMDAwMDAwMDAwMDAwMCAwMDAwMDAwMDAwMDAwMDAwIDAwMDAw
MDAwMDAwMDAwMDAgMDAwMDAwMDAwMDAwMDAwMA0KKFhFTikgWyAgIDk4LjkzNTY3Ml0gICAgZmZm
ZmZmZmY4MmMwYzk0MCAwMDAwMDAwMDBiZmQyOGI4IDAwMDAwMDEyZTMzMDNhNDAgMDAwMDAwMDAw
MDAwMDAwMQ0KKFhFTikgWyAgIDk4Ljk1MTc5NF0gICAgMDAwMDAwMDAwMDAzN2UzNCBmZmZmODg4
MTE1MDAwMDAwIDAwMDAwMDAwYjBlMjdiNTMgMDAwMDAwMDAwMDAwMDAwMA0KKFhFTikgWyAgIDk4
Ljk2NzkxM10gICAgZmZmZmZmZmY4Mjk4YWVjMSAwMDAwMDAwMDAwMDM3ZTM0IDAwMDBiZWVmMDAw
MGJlZWYgZmZmZmZmZmY4MjAzZmQ0Zg0KKFhFTikgWyAgIDk4Ljk4NDAzNF0gICAgMDAwMDAwYmYw
MDAwYmVlZiAwMDAwMDAwMDAwMDAwMjA2IGZmZmZmZmZmODJjMDNlODggMDAwMDAwMDAwMDAwYmVl
Zg0KKFhFTikgWyAgIDk5LjAwMDE1NF0gICAgMDAwMDAwMDAwMDAwYmVlZiAwMDAwMDAwMDAwMDBi
ZWVmIDAwMDAwMDAwMDAwMGJlZWYgMDAwMDAwMDAwMDAwYmVlZg0KKFhFTikgWyAgIDk5LjAxNjI3
NF0gICAgMDAwMGUwMTAwMDAwMDAwMCBmZmZmODMwN2NmY2RmMDAwIDAwMDAwMDAwMDAwMDAwMDAg
MDAwMDAwMDAwMDM1MDZlMA0KKFhFTikgWyAgIDk5LjAzMjM5NF0gICAgMDAwMDAwMDAwMDAwMDAw
MCAwMDAwMDAwMDAwMDAwMDAwIDAwMDAwMDAyMDAwMDAwMDAgMDAwMDAwMTAwMDAwMDAwMg0KKFhF
TikgWyAgIDk5LjA0ODUxNF0gWGVuIGNhbGwgdHJhY2U6DQooWEVOKSBbICAgOTkuMDU1MTAxXSAg
ICBbPGZmZmY4MmQwNDAyMzUzNzU+XSBSIF9zcGluX3VubG9ja19pcnFyZXN0b3JlKzB4MjEvMHgy
Nw0KKFhFTikgWyAgIDk5LjA2OTMxNl0gICAgWzxmZmZmODJkMDQwMzRkMjg1Pl0gRiBhcmNoL3g4
Ni90aW1lLmMjcGxhdGZvcm1fdGltZV9jYWxpYnJhdGlvbisweDVjLzB4NjMNCihYRU4pIFsgICA5
OS4wODY2NDldICAgIFs8ZmZmZjgyZDA0MDM0ZTg0MD5dIEYgYXJjaC94ODYvdGltZS5jI2xvY2Fs
X3RpbWVfY2FsaWJyYXRpb24rMHgxOWEvMHgxOWMNCihYRU4pIFsgICA5OS4xMDM4MDldICAgIFs8
ZmZmZjgyZDA0MDIzNDgxYT5dIEYgY29tbW9uL3NvZnRpcnEuYyNfX2RvX3NvZnRpcnErMHg5My8w
eGJkDQooWEVOKSBbICAgOTkuMTE5MDYxXSAgICBbPGZmZmY4MmQwNDAyMzQ4YWQ+XSBGIGRvX3Nv
ZnRpcnErMHgxMy8weDE1DQooWEVOKSBbICAgOTkuMTMxMDIzXSAgICBbPGZmZmY4MmQwNDAzMjI1
YWY+XSBGIGFyY2gveDg2L2RvbWFpbi5jI2lkbGVfbG9vcCsweDkyLzB4ZWINCihYRU4pIFsgICA5
OS4xNDU5MjddICAgIFs8ZmZmZjgyZDA0MDMyNTRjZD5dIEYgY29udGV4dF9zd2l0Y2grMHg5ZmYv
MHhhMTANCihYRU4pIFsgICA5OS4xNTg5MzBdDQooWEVOKSBbICAgOTkuMTYyOTE3XSAqKiogRHVt
cGluZyBDUFUxIGhvc3Qgc3RhdGU6ICoqKg0KKFhFTikgWyAgIDk5LjE3MjQ0OF0gLS0tLVsgWGVu
LTQuMjEtdW5zdGFibGUgIHg4Nl82NCAgZGVidWc9eSAgVGFpbnRlZDogICBDICAgIF0tLS0tDQoo
WEVOKSBbICAgOTkuMTg3MzU2XSBDUFU6ICAgIDENCihYRU4pIFsgICA5OS4xOTI5MDNdIFJJUDog
ICAgZTAwODpbPGZmZmY4MmQwNDAyMDQ1NGI+XSBzdm1fc3RnaV9sYWJlbCswLzB4MTUNCihYRU4p
IFsgICA5OS4yMDY0MjRdIFJGTEFHUzogMDAwMDAwMDAwMDAwMDI0NiAgIENPTlRFWFQ6IGh5cGVy
dmlzb3IgKGQwdjEpDQooWEVOKSBbICAgOTkuMjE5NTk2XSByYXg6IDAwMDAwMDAwMDAwMDAwMDIg
ICByYng6IGZmZmY4MzA4MGYxZmYwMDAgICByY3g6IDAwMDAwMDAwMDAwMDAwMDENCihYRU4pIFsg
ICA5OS4yMzU1NDNdIHJkeDogMDAwMDAwMDAwMDAwMDAwMiAgIHJzaTogMDAwMDAwMDAwMDAwMDAw
MCAgIHJkaTogMDAwMDAwMDAwMDAwMDAwMA0KKFhFTikgWyAgIDk5LjI1MTQ4OV0gcmJwOiAwMDAw
N2NmODMwMjcwMGU3ICAgcnNwOiBmZmZmODMwN2NmZDhmZWY4ICAgcjg6ICAwMDAwMDAwMDAwMDAw
MDAwDQooWEVOKSBbICAgOTkuMjY3NDM4XSByOTogIDAwMDAwMDAwMDAwMDAwMDAgICByMTA6IDAw
MDAwMDAwMDAwMDAwMDAgICByMTE6IDAwMDAwMDAwMDAwMDAwMDANCihYRU4pIFsgICA5OS4yODMz
ODVdIHIxMjogMDAwMDAwMDAwMDAwMDAwMCAgIHIxMzogMDAwMDAwMDAwMDAwMDAwMCAgIHIxNDog
MDAwMDAwMDAwMDAwMDAwMA0KKFhFTikgWyAgIDk5LjI5OTMzMF0gcjE1OiAwMDAwMDAwMDAwMDAw
MDAwICAgY3IwOiAwMDAwMDAwMDgwMDUwMDMzICAgY3I0OiAwMDAwMDAwMDAwMzUwNmUwDQooWEVO
KSBbICAgOTkuMzE1Mjc4XSBjcjM6IDAwMDAwMDA3Y2I3YjQwMDAgICBjcjI6IDAwMDA3ZjU2YzE5
YzY3NDgNCihYRU4pIFsgICA5OS4zMjcwNjJdIGZzYjogMDAwMDAwMDAwMDAwMDAwMCAgIGdzYjog
ZmZmZjg4ODExNTA4MDAwMCAgIGdzczogMDAwMDAwMDAwMDAwMDAwMA0KKFhFTikgWyAgIDk5LjM0
MzAxMV0gZHM6IDAwMDAgICBlczogMDAwMCAgIGZzOiAwMDAwICAgZ3M6IDAwMDAgICBzczogMDAw
MCAgIGNzOiBlMDA4DQooWEVOKSBbICAgOTkuMzU3OTE4XSBYZW4gY29kZSBhcm91bmQgPGZmZmY4
MmQwNDAyMDQ1NGI+IChzdm1fc3RnaV9sYWJlbCk6DQooWEVOKSBbICAgOTkuMzcwOTE4XSAgMjQg
MDAgMDEgMDAgMDAgMGYgMDEgZGMgPGU4PiBmZCBhYyAwOSAwMCBlOSA3NyBmZSBmZiBmZiBmYiBl
OCAzZiAwMyAwMyAwMA0KKFhFTikgWyAgIDk5LjM4NzcyOV0gWGVuIHN0YWNrIHRyYWNlIGZyb20g
cnNwPWZmZmY4MzA3Y2ZkOGZlZjg6DQooWEVOKSBbICAgOTkuMzk4OTk3XSAgICAwMDAwMDAwMDAw
MDAwMDAwIDAwMDAwMDAwMDAwMDAwMDMgZmZmZmZmZmY4MmRkYzBjMCAwMDAwMDAwMDAwMDAwMDAy
DQooWEVOKSBbICAgOTkuNDE1MTE5XSAgICBmZmZmODg4MTAwYjZmYzk4IDAwMDAwMDAwMDAwMDAw
MDAgMDAwMDAwMDAwMDAwMDAwMCAwMDAwMDA0ZGVlNzMxMDQwDQooWEVOKSBbICAgOTkuNDMxMjM3
XSAgICAwMDAwMDAwMDAwMDAwMDBmIDAwMDAwMDAwMDAwNWM1N2MgMDAwMDAwMDgwZjFmYjAwMCAw
MDAwMDAwMDAwMDAwY2Y4DQooWEVOKSBbICAgOTkuNDQ3MzU3XSAgICAwMDAwMDAwMDAwMDAwNDE0
IGZmZmZmZmZmODI5OGFlYzEgMDAwMDAwMDAwMDAwMDQxNCAwMDAwYmVlZjAwMDBiZWVmDQooWEVO
KSBbICAgOTkuNDYzNDc4XSAgICBmZmZmZmZmZjgyMDQxYTUzIDAwMDAwMGJmMDAwMGJlZWYgMDAw
MDAwMDAwMDAwMDA5MyBmZmZmYzkwMDAwMGU3ZTUwDQooWEVOKSBbICAgOTkuNDc5NTk5XSAgICAw
MDAwMDAwMDAwMDBiZWVmIDg0OTEwMGYxMzg4Y2JlZWYgNWUxMzUzNmU4M2RmYmVlZiA0YzA1YTA1
Mjc0Y2RiZWVmDQooWEVOKSBbICAgOTkuNDk1NzE3XSAgICAwOGQ0YmVkOTY2ZTNiZWVmIDAwMDBl
MDEwMDAwMDAwMDEgZmZmZjgzMDgwZjFmZjAwMCAwMDAwMDAzNzhmN2JkMDAwDQooWEVOKSBbICAg
OTkuNTExODM3XSAgICAwMDAwMDAwMDAwMzUwNmUwIDAwMDAwMDAwMDAwMDAwMDAgMDAwMDAwMDAw
MDAwMDAwMCAwMDAwMDAwMjAwMDAwMDAwDQooWEVOKSBbICAgOTkuNTI3OTU5XSAgICA2MTAwOTAx
MDAwMDAwMDAyDQooWEVOKSBbICAgOTkuNTM1MjM5XSBYZW4gY2FsbCB0cmFjZToNCihYRU4pIFsg
ICA5OS41NDE4MjddICAgIFs8ZmZmZjgyZDA0MDIwNDU0Yj5dIFIgc3ZtX3N0Z2lfbGFiZWwrMC8w
eDE1DQooWEVOKSBbICAgOTkuNTUzOTU4XQ0KKFhFTikgWyAgIDk5LjU1Nzk0Nl0gKioqIER1bXBp
bmcgQ1BVMSBndWVzdCBzdGF0ZSAoZDB2MSk6ICoqKg0KKFhFTikgWyAgIDk5LjU2ODg2N10gLS0t
LVsgWGVuLTQuMjEtdW5zdGFibGUgIHg4Nl82NCAgZGVidWc9eSAgVGFpbnRlZDogICBDICAgIF0t
LS0tDQooWEVOKSBbICAgOTkuNTgzNzczXSBDUFU6ICAgIDENCihYRU4pIFsgICA5OS41ODkzMjBd
IFJJUDogICAgMDAxMDpbPGZmZmZmZmZmODIwNDFhNTM+XQ0KKFhFTikgWyAgIDk5LjU5OTAyN10g
UkZMQUdTOiAwMDAwMDAwMDAwMDAwMDkzICAgQ09OVEVYVDogaHZtIGd1ZXN0IChkMHYxKQ0KKFhF
TikgWyAgIDk5LjYxMjAyNV0gcmF4OiAwMDAwMDAwODBmMWZiMDAwICAgcmJ4OiAwMDAwMDAwMDAw
MDAwMDAwICAgcmN4OiAwMDAwMDAwMDAwMDAwY2Y4DQooWEVOKSBbICAgOTkuNjI3OTc0XSByZHg6
IDAwMDAwMDAwMDAwMDA0MTQgICByc2k6IGZmZmZmZmZmODI5OGFlYzEgICByZGk6IDAwMDAwMDAw
MDAwMDA0MTQNCihYRU4pIFsgICA5OS42NDM5MThdIHJicDogZmZmZjg4ODEwMGI2ZmM5OCAgIHJz
cDogZmZmZmM5MDAwMDBlN2U1MCAgIHI4OiAgMDAwMDAwMDAwMDA1YzU3Yw0KKFhFTikgWyAgIDk5
LjY1OTg2NV0gcjk6ICAwMDAwMDAwMDAwMDAwMDBmICAgcjEwOiAwMDAwMDA0ZGVlNzMxMDQwICAg
cjExOiAwMDAwMDAwMDAwMDAwMDAwDQooWEVOKSBbICAgOTkuNjc1ODE0XSByMTI6IDAwMDAwMDAw
MDAwMDAwMDIgICByMTM6IGZmZmZmZmZmODJkZGMwYzAgICByMTQ6IDAwMDAwMDAwMDAwMDAwMDMN
CihYRU4pIFsgICA5OS42OTE3NjBdIHIxNTogMDAwMDAwMDAwMDAwMDAwMCAgIGNyMDogMDAwMDAw
MDA4MDA1MDAzMyAgIGNyNDogMDAwMDAwMDAwMDM1MGVmMA0KKFhFTikgWyAgIDk5LjcwNzcwNV0g
Y3IzOiAwMDAwMDAwMDAyYzMyMDAwICAgY3IyOiAwMDAwMDAwMDAwMDAwMDAwDQooWEVOKSBbICAg
OTkuNzE5NDkzXSBmc2I6IDAwMDAwMDAwMDAwMDAwMDAgICBnc2I6IGZmZmY4ODgxMTUwODAwMDAg
ICBnc3M6IDAwMDAwMDAwMDAwMDAwMDANCihYRU4pIFsgICA5OS43MzU0MzldIGRzOiAwMDAwICAg
ZXM6IDAwMDAgICBmczogMDAwMCAgIGdzOiAwMDAwICAgc3M6IDAwMTggICBjczogMDAxMA0KKFhF
TikgWyAgIDk5Ljc1MDM0OF0NCihYRU4pIFsgICA5OS43NTQzMzVdICoqKiBEdW1waW5nIENQVTIg
aG9zdCBzdGF0ZTogKioqDQooWEVOKSBbICAgOTkuNzYzODY3XSAtLS0tWyBYZW4tNC4yMS11bnN0
YWJsZSAgeDg2XzY0ICBkZWJ1Zz15ICBUYWludGVkOiAgIEMgICAgXS0tLS0NCihYRU4pIFsgICA5
OS43Nzg3NzRdIENQVTogICAgMg0KKFhFTikgWyAgIDk5Ljc4NDMyMF0gUklQOiAgICBlMDA4Ols8
ZmZmZjgyZDA0MDIwNDNkNz5dIHN2bV9hc21fZG9fcmVzdW1lKzB4MTcvMHgxOGINCihYRU4pIFsg
ICA5OS43OTkwNTJdIFJGTEFHUzogMDAwMDAwMDAwMDAwMDI0NiAgIENPTlRFWFQ6IGh5cGVydmlz
b3IgKGQwdjIpDQooWEVOKSBbICAgOTkuODEyMjI2XSByYXg6IGZmZmY4MzA3Y2I3ZTgwMDAgICBy
Yng6IGZmZmY4MzA4MGYxZjUwMDAgICByY3g6IDAwMDAwMDAwMDAwMDAwMDANCihYRU4pIFsgICA5
OS44MjgxNzJdIHJkeDogMDAwMDAwMDAwMDAwMDAwMCAgIHJzaTogZmZmZjgzMDdjZmQ4NmEyOCAg
IHJkaTogZmZmZjgyYzAwMDI1MTIwMA0KKFhFTikgWyAgIDk5Ljg0NDEyMl0gcmJwOiAwMDAwN2Nm
ODM0OGM4MGU3ICAgcnNwOiBmZmZmODMwN2NiNzM3ZWY4ICAgcjg6ICAwMDAwMDAwMDAwMDAwMDAw
DQooWEVOKSBbICAgOTkuODYwMDY2XSByOTogIGZmZmY4MzA3Y2ZkODZhMjAgICByMTA6IDAwMDAw
MDAwMDAwMDAwMDAgICByMTE6IDAwMDAwMDAwMDAwMDAwMDANCihYRU4pIFsgICA5OS44NzYwMTRd
IHIxMjogMDAwMDAwMDAwMDAwMDAwMCAgIHIxMzogMDAwMDAwMDAwMDAwMDAwMCAgIHIxNDogMDAw
MDAwMDAwMDAwMDAwMA0KKFhFTikgWyAgIDk5Ljg5MTk2MV0gcjE1OiAwMDAwMDAwMDAwMDAwMDAw
ICAgY3IwOiAwMDAwMDAwMDgwMDUwMDMzICAgY3I0OiAwMDAwMDAwMDAwMzUwNmUwDQooWEVOKSBb
ICAgOTkuOTA3OTA4XSBjcjM6IDAwMDAwMDA3Y2I3YjMwMDAgICBjcjI6IDAwMDA3ZmZmNDI4ZTRm
ZjgNCihYRU4pIFsgICA5OS45MTk2OTRdIGZzYjogMDAwMDAwMDAwMDAwMDAwMCAgIGdzYjogZmZm
Zjg4ODExNTEwMDAwMCAgIGdzczogMDAwMDAwMDAwMDAwMDAwMA0KKFhFTikgWyAgIDk5LjkzNTY0
M10gZHM6IDAwMDAgICBlczogMDAwMCAgIGZzOiAwMDAwICAgZ3M6IDAwMDAgICBzczogMDAwMCAg
IGNzOiBlMDA4DQooWEVOKSBbICAgOTkuOTUwNTQ4XSBYZW4gY29kZSBhcm91bmQgPGZmZmY4MmQw
NDAyMDQzZDc+IChzdm1fYXNtX2RvX3Jlc3VtZSsweDE3LzB4MThiKToNCihYRU4pIFsgICA5OS45
NjU5NzddICAwOSAwMCBlOCAzNSA3NiAwOSAwMCBmYiA8ZTg+IDU2IGRiIDAyIDAwIDhiIDQzIDA0
IDQ4IDhkIDE1IDFhIDZjIDNkIDAwIDMxDQooWEVOKSBbICAgOTkuOTgyNzg3XSBYZW4gc3RhY2sg
dHJhY2UgZnJvbSByc3A9ZmZmZjgzMDdjYjczN2VmODoNCihYRU4pIFsgICA5OS45OTQwNTRdICAg
IDAwMDAwMDAwMDAwMDAwMDAgMDAwMDAwMDAwMDAwMDAwMyBmZmZmZmZmZjgyZGRjMGMwIDAwMDAw
MDAwMDAwMDAwMDINCihYRU4pIFsgIDEwMC4wMTAxNzRdICAgIGZmZmY4ODgxMDBiNzA0OTggMDAw
MDAwMDAwMDAwMDAwMCAwMDAwMDAwMDAwMDAwMDAwIDAwMDAwMDEzMmU4NzU2NDANCihYRU4pIFsg
IDEwMC4wMjYyOTddICAgIDAwMDAwMDAwMDAwMDAwMGYgMDAwMDAwMDAwMDAxNDIyYyAwMDAwMDAw
MDAwMDAwMDAwIDAwMDAwMDAwMDAwMDBjZjgNCihYRU4pIFsgIDEwMC4wNDI0MTZdICAgIDAwMDAw
MDAwMDAwMDA0MTQgZmZmZmZmZmY4Mjk4YWVjMSAwMDAwMDAwMDAwMDAwNDE0IDAwMDBiZWVmMDAw
MGJlZWYNCihYRU4pIFsgIDEwMC4wNTg1MzZdICAgIGZmZmZmZmZmODIwNDFhNTMgMDAwMDAwYmYw
MDAwYmVlZiAwMDAwMDAwMDAwMDAwMDkzIGZmZmZjOTAwMDAwZWZlNTANCihYRU4pIFsgIDEwMC4w
NzQ2NTVdICAgIDAwMDAwMDAwMDAwMGJlZWYgNDNmY2I3MWU3ODY5YmVlZiBkZjFjZjAzZmYzOGVi
ZWVmIDczN2YwYjhiNmUyZWJlZWYNCihYRU4pIFsgIDEwMC4wOTA3NzRdICAgIDlkMjQ3ZWZkOWI3
N2JlZWYgMDAwMGUwMTAwMDAwMDAwMiBmZmZmODMwODBmMWY1MDAwIDAwMDAwMDM3OGY3YWQwMDAN
CihYRU4pIFsgIDEwMC4xMDY4OTddICAgIDAwMDAwMDAwMDAzNTA2ZTAgMDAwMDAwMDAwMDAwMDAw
MCAwMDAwMDAwMDAwMDAwMDAwIDAwMDAwMDAyMDAwMDAwMDANCihYRU4pIFsgIDEwMC4xMjMwMTZd
ICAgIDQyMDA3ZDEwMDAwMDAwMDINCihYRU4pIFsgIDEwMC4xMzAyOThdIFhlbiBjYWxsIHRyYWNl
Og0KKFhFTikgWyAgMTAwLjEzNjg4NF0gICAgWzxmZmZmODJkMDQwMjA0M2Q3Pl0gUiBzdm1fYXNt
X2RvX3Jlc3VtZSsweDE3LzB4MThiDQooWEVOKSBbICAxMDAuMTUwMjMxXQ0KKFhFTikgWyAgMTAw
LjE1NDIxN10gKioqIER1bXBpbmcgQ1BVMiBndWVzdCBzdGF0ZSAoZDB2Mik6ICoqKg0KKFhFTikg
WyAgMTAwLjE2NTEzNl0gLS0tLVsgWGVuLTQuMjEtdW5zdGFibGUgIHg4Nl82NCAgZGVidWc9eSAg
VGFpbnRlZDogICBDICAgIF0tLS0tDQooWEVOKSBbICAxMDAuMTgwMDQzXSBDUFU6ICAgIDINCihY
RU4pIFsgIDEwMC4xODU1OTFdIFJJUDogICAgMDAxMDpbPGZmZmZmZmZmODIwNDFhNTM+XQ0KKFhF
TikgWyAgMTAwLjE5NTI5N10gUkZMQUdTOiAwMDAwMDAwMDAwMDAwMDkzICAgQ09OVEVYVDogaHZt
IGd1ZXN0IChkMHYyKQ0KKFhFTikgWyAgMTAwLjIwODI5OF0gcmF4OiAwMDAwMDAwMDAwMDAwMDAw
ICAgcmJ4OiAwMDAwMDAwMDAwMDAwMDAwICAgcmN4OiAwMDAwMDAwMDAwMDAwY2Y4DQooWEVOKSBb
ICAxMDAuMjI0MjQ1XSByZHg6IDAwMDAwMDAwMDAwMDA0MTQgICByc2k6IGZmZmZmZmZmODI5OGFl
YzEgICByZGk6IDAwMDAwMDAwMDAwMDA0MTQNCihYRU4pIFsgIDEwMC4yNDAxODldIHJicDogZmZm
Zjg4ODEwMGI3MDQ5OCAgIHJzcDogZmZmZmM5MDAwMDBlZmU1MCAgIHI4OiAgMDAwMDAwMDAwMDAx
NDIyYw0KKFhFTikgWyAgMTAwLjI1NjEzNl0gcjk6ICAwMDAwMDAwMDAwMDAwMDBmICAgcjEwOiAw
MDAwMDAxMzJlODc1NjQwICAgcjExOiAwMDAwMDAwMDAwMDAwMDAwDQooWEVOKSBbICAxMDAuMjcy
MDg1XSByMTI6IDAwMDAwMDAwMDAwMDAwMDIgICByMTM6IGZmZmZmZmZmODJkZGMwYzAgICByMTQ6
IDAwMDAwMDAwMDAwMDAwMDMNCihYRU4pIFsgIDEwMC4yODgwMzJdIHIxNTogMDAwMDAwMDAwMDAw
MDAwMCAgIGNyMDogMDAwMDAwMDA4MDA1MDAzMyAgIGNyNDogMDAwMDAwMDAwMDM1MGVmMA0KKFhF
TikgWyAgMTAwLjMwMzk3Nl0gY3IzOiAwMDAwMDAwMDAyYzMyMDAwICAgY3IyOiAwMDAwMDAwMDAw
MDAwMDAwDQooWEVOKSBbICAxMDAuMzE1NzY0XSBmc2I6IDAwMDAwMDAwMDAwMDAwMDAgICBnc2I6
IGZmZmY4ODgxMTUxMDAwMDAgICBnc3M6IDAwMDAwMDAwMDAwMDAwMDANCihYRU4pIFsgIDEwMC4z
MzE3MTBdIGRzOiAwMDAwICAgZXM6IDAwMDAgICBmczogMDAwMCAgIGdzOiAwMDAwICAgc3M6IDAw
MTggICBjczogMDAxMA0KKFhFTikgWyAgMTAwLjM0NjYxOV0NCihYRU4pIFsgIDEwMC4zNTA2MDVd
ICoqKiBEdW1waW5nIENQVTMgaG9zdCBzdGF0ZTogKioqDQooWEVOKSBbICAxMDAuMzYwMTM3XSAt
LS0tWyBYZW4tNC4yMS11bnN0YWJsZSAgeDg2XzY0ICBkZWJ1Zz15ICBUYWludGVkOiAgIEMgICAg
XS0tLS0NCihYRU4pIFsgIDEwMC4zNzUwNDNdIENQVTogICAgMw0KKFhFTikgWyAgMTAwLjM4MDU5
MF0gUklQOiAgICBlMDA4Ols8ZmZmZjgyZDA0MDIwNDU0Yj5dIHN2bV9zdGdpX2xhYmVsKzAvMHgx
NQ0KKFhFTikgWyAgMTAwLjM5NDExMl0gUkZMQUdTOiAwMDAwMDAwMDAwMDAwMjQ2ICAgQ09OVEVY
VDogaHlwZXJ2aXNvciAoZDB2MykNCihYRU4pIFsgIDEwMC40MDcyODVdIHJheDogMDAwMDAwMDAw
MDAwMDAwMiAgIHJieDogZmZmZjgzMDgwZjFlYjAwMCAgIHJjeDogMDAwMDAwMDAwMDAwMDAwMQ0K
KFhFTikgWyAgMTAwLjQyMzIzMl0gcmR4OiAwMDAwMDAwMDAwMDAwMDAyICAgcnNpOiAwMDAwMDAw
MDAwMDAwMDAwICAgcmRpOiAwMDAwMDAwMDAwMDAwMDAwDQooWEVOKSBbICAxMDAuNDM5MTc4XSBy
YnA6IDAwMDA3Y2Y4MzQ4ZDgwZTcgICByc3A6IGZmZmY4MzA3Y2I3MjdlZjggICByODogIDAwMDAw
MDAwMDAwMDAwMDANCihYRU4pIFsgIDEwMC40NTUxMjRdIHI5OiAgMDAwMDAwMDAwMDAwMDAwMCAg
IHIxMDogMDAwMDAwMDAwMDAwMDAwMCAgIHIxMTogMDAwMDAwMDAwMDAwMDAwMA0KKFhFTikgWyAg
MTAwLjQ3MTA3Ml0gcjEyOiAwMDAwMDAwMDAwMDAwMDAwICAgcjEzOiAwMDAwMDAwMDAwMDAwMDAw
ICAgcjE0OiAwMDAwMDAwMDAwMDAwMDAwDQooWEVOKSBbICAxMDAuNDg3MDE5XSByMTU6IDAwMDAw
MDAwMDAwMDAwMDAgICBjcjA6IDAwMDAwMDAwODAwNTAwMzMgICBjcjQ6IDAwMDAwMDAwMDAzNTA2
ZTANCihYRU4pIFsgIDEwMC41MDI5NjVdIGNyMzogMDAwMDAwMDdjYjdiMjAwMCAgIGNyMjogMDAw
MDdmZTAwMzE2ZjA5ZA0KKFhFTikgWyAgMTAwLjUxNDc1M10gZnNiOiAwMDAwMDAwMDAwMDAwMDAw
ICAgZ3NiOiBmZmZmODg4MTE1MTgwMDAwICAgZ3NzOiAwMDAwMDAwMDAwMDAwMDAwDQooWEVOKSBb
ICAxMDAuNTMwNzAwXSBkczogMDAwMCAgIGVzOiAwMDAwICAgZnM6IDAwMDAgICBnczogMDAwMCAg
IHNzOiAwMDAwICAgY3M6IGUwMDgNCihYRU4pIFsgIDEwMC41NDU2MDRdIFhlbiBjb2RlIGFyb3Vu
ZCA8ZmZmZjgyZDA0MDIwNDU0Yj4gKHN2bV9zdGdpX2xhYmVsKToNCihYRU4pIFsgIDEwMC41NTg2
MDddICAyNCAwMCAwMSAwMCAwMCAwZiAwMSBkYyA8ZTg+IGZkIGFjIDA5IDAwIGU5IDc3IGZlIGZm
IGZmIGZiIGU4IDNmIDAzIDAzIDAwDQooWEVOKSBbICAxMDAuNTc1NDE4XSBYZW4gc3RhY2sgdHJh
Y2UgZnJvbSByc3A9ZmZmZjgzMDdjYjcyN2VmODoNCihYRU4pIFsgIDEwMC41ODY2ODddICAgIDAw
MDAwMDAwMDAwMDAwMDAgMDAwMDAwMDAwMDAwMDAwMyBmZmZmZmZmZjgyZGRjMGMwIDAwMDAwMDAw
MDAwMDAwMDINCihYRU4pIFsgIDEwMC42MDI4MDZdICAgIGZmZmY4ODgxMDBiNzA4OTggMDAwMDAw
MDAwMDAwMDAwMCAwMDAwMDAwMDAwMDAwMDAwIDAwMDAwMDRkZWU3MzEwNDANCihYRU4pIFsgIDEw
MC42MTg5MjVdICAgIDAwMDAwMDAwMDAwMDAwMGYgMDAwMDAwMDAwMDAxODhhNCAwMDAwMDAwODBm
MWU4MDAwIDAwMDAwMDAwMDAwMDBjZjgNCihYRU4pIFsgIDEwMC42MzUwNDddICAgIDAwMDAwMDAw
MDAwMDA0MTQgZmZmZmZmZmY4Mjk4YWVjMSAwMDAwMDAwMDAwMDAwNDE0IDAwMDBiZWVmMDAwMGJl
ZWYNCihYRU4pIFsgIDEwMC42NTExNjZdICAgIGZmZmZmZmZmODIwNDFhNTMgMDAwMDAwYmYwMDAw
YmVlZiAwMDAwMDAwMDAwMDAwMDkzIGZmZmZjOTAwMDAwZjdlNTANCihYRU4pIFsgIDEwMC42Njcy
ODZdICAgIDAwMDAwMDAwMDAwMGJlZWYgYjE2ZWNlMjA2OTljYmVlZiAwNmE5ZDkzODE5OTliZWVm
IDI1ZjVmNzc1ZDhiNWJlZWYNCihYRU4pIFsgIDEwMC42ODM0MDZdICAgIGQ4NDQyYjE2MGYyOGJl
ZWYgMDAwMGUwMTAwMDAwMDAwMyBmZmZmODMwODBmMWViMDAwIDAwMDAwMDM3OGIxNTkwMDANCihY
RU4pIFsgIDEwMC42OTk1MjddICAgIDAwMDAwMDAwMDAzNTA2ZTAgMDAwMDAwMDAwMDAwMDAwMCAw
MDAwMDAwMDAwMDAwMDAwIDAwMDAwMDAyMDAwMDAwMDANCihYRU4pIFsgIDEwMC43MTU2NDZdICAg
IDk2MDBmMzEwMDAwMDAwMDINCihYRU4pIFsgIDEwMC43MjI5MjZdIFhlbiBjYWxsIHRyYWNlOg0K
KFhFTikgWyAgMTAwLjcyOTUxM10gICAgWzxmZmZmODJkMDQwMjA0NTRiPl0gUiBzdm1fc3RnaV9s
YWJlbCswLzB4MTUNCihYRU4pIFsgIDEwMC43NDE2NDZdDQooWEVOKSBbICAxMDAuNzQ1NjMyXSAq
KiogRHVtcGluZyBDUFUzIGd1ZXN0IHN0YXRlIChkMHYzKTogKioqDQooWEVOKSBbICAxMDAuNzU2
NTU1XSAtLS0tWyBYZW4tNC4yMS11bnN0YWJsZSAgeDg2XzY0ICBkZWJ1Zz15ICBUYWludGVkOiAg
IEMgICAgXS0tLS0NCihYRU4pIFsgIDEwMC43NzE0NjJdIENQVTogICAgMw0KKFhFTikgWyAgMTAw
Ljc3NzAwOF0gUklQOiAgICAwMDEwOls8ZmZmZmZmZmY4MjA0MWE1Mz5dDQooWEVOKSBbICAxMDAu
Nzg2NzE1XSBSRkxBR1M6IDAwMDAwMDAwMDAwMDAwOTMgICBDT05URVhUOiBodm0gZ3Vlc3QgKGQw
djMpDQooWEVOKSBbICAxMDAuNzk5NzEzXSByYXg6IDAwMDAwMDA4MGYxZTgwMDAgICByYng6IDAw
MDAwMDAwMDAwMDAwMDAgICByY3g6IDAwMDAwMDAwMDAwMDBjZjgNCihYRU4pIFsgIDEwMC44MTU2
NjFdIHJkeDogMDAwMDAwMDAwMDAwMDQxNCAgIHJzaTogZmZmZmZmZmY4Mjk4YWVjMSAgIHJkaTog
MDAwMDAwMDAwMDAwMDQxNA0KKFhFTikgWyAgMTAwLjgzMTYwNl0gcmJwOiBmZmZmODg4MTAwYjcw
ODk4ICAgcnNwOiBmZmZmYzkwMDAwMGY3ZTUwICAgcjg6ICAwMDAwMDAwMDAwMDE4OGE0DQooWEVO
KSBbICAxMDAuODQ3NTU0XSByOTogIDAwMDAwMDAwMDAwMDAwMGYgICByMTA6IDAwMDAwMDRkZWU3
MzEwNDAgICByMTE6IDAwMDAwMDAwMDAwMDAwMDANCihYRU4pIFsgIDEwMC44NjM1MDNdIHIxMjog
MDAwMDAwMDAwMDAwMDAwMiAgIHIxMzogZmZmZmZmZmY4MmRkYzBjMCAgIHIxNDogMDAwMDAwMDAw
MDAwMDAwMw0KKFhFTikgWyAgMTAwLjg3OTQ0OF0gcjE1OiAwMDAwMDAwMDAwMDAwMDAwICAgY3Iw
OiAwMDAwMDAwMDgwMDUwMDMzICAgY3I0OiAwMDAwMDAwMDAwMzUwZWYwDQooWEVOKSBbICAxMDAu
ODk1Mzk0XSBjcjM6IDAwMDAwMDAwMDJjMzIwMDAgICBjcjI6IDAwMDAwMDAwMDAwMDAwMDANCihY
RU4pIFsgIDEwMC45MDcxODFdIGZzYjogMDAwMDAwMDAwMDAwMDAwMCAgIGdzYjogZmZmZjg4ODEx
NTE4MDAwMCAgIGdzczogMDAwMDAwMDAwMDAwMDAwMA0KKFhFTikgWyAgMTAwLjkyMzEyN10gZHM6
IDAwMDAgICBlczogMDAwMCAgIGZzOiAwMDAwICAgZ3M6IDAwMDAgICBzczogMDAxOCAgIGNzOiAw
MDEwDQooWEVOKSBbICAxMDAuOTM4MDM0XQ0KKFhFTikgWyAgMTAwLjk0MjAyMF0gKioqIER1bXBp
bmcgQ1BVNCBob3N0IHN0YXRlOiAqKioNCihYRU4pIFsgIDEwMC45NTE1NTRdIC0tLS1bIFhlbi00
LjIxLXVuc3RhYmxlICB4ODZfNjQgIGRlYnVnPXkgIFRhaW50ZWQ6ICAgQyAgICBdLS0tLQ0KKFhF
TikgWyAgMTAwLjk2NjQ2Ml0gQ1BVOiAgICA0DQooWEVOKSBbICAxMDAuOTcyMDA4XSBSSVA6ICAg
IGUwMDg6WzxmZmZmODJkMDQwMjJlMzQyPl0gY29tbW9uL3BhZ2VfYWxsb2MuYyNub2RlX3RvX3Nj
cnViKzB4MmQvMHgxYWINCihYRU4pIFsgIDEwMC45ODk1MTZdIFJGTEFHUzogMDAwMDAwMDAwMDAw
MDI4NiAgIENPTlRFWFQ6IGh5cGVydmlzb3INCihYRU4pIFsgIDEwMS4wMDE0NzRdIHJheDogMDAw
MDAwMDAwMDAwMDAwNCAgIHJieDogMDAwMDAwMDAwMDAwMDAwNCAgIHJjeDogMDAwMDAwMDAwMDAw
MDAwMA0KKFhFTikgWyAgMTAxLjAxNzQyMV0gcmR4OiBmZmZmODJkMDQwNGI2NjAwICAgcnNpOiBm
ZmZmZmZmZmZmZmZmZjAxICAgcmRpOiAwMDAwMDAwMDAwMDAwMDAxDQooWEVOKSBbICAxMDEuMDMz
MzY5XSByYnA6IGZmZmY4MzA3Y2I3NzdlMzggICByc3A6IGZmZmY4MzA3Y2I3NzdlMDggICByODog
IGZmZmY4MzA3Y2I3N2UyYTANCihYRU4pIFsgIDEwMS4wNDkzMTZdIHI5OiAgMDAwMDAwMDAwMDAw
MDAwMSAgIHIxMDogMDAwMDAwMDBmZmZmZmZmZiAgIHIxMTogZmZmZjgyZDA0MDM0Yzk4ZA0KKFhF
TikgWyAgMTAxLjA2NTI2M10gcjEyOiAwMDAwMDAwMDAwMDA3ZmZmICAgcjEzOiBmZmZmODJkMDQw
NWRiMDAwICAgcjE0OiAwMDAwMDAwMDAwMDAwMDAwDQooWEVOKSBbICAxMDEuMDgxMjA5XSByMTU6
IGZmZmY4MmQwNDA0Yjg3NjAgICBjcjA6IDAwMDAwMDAwODAwNTAwM2IgICBjcjQ6IDAwMDAwMDAw
MDAzNTA2ZTANCihYRU4pIFsgIDEwMS4wOTcxNTZdIGNyMzogMDAwMDAwMDBjNmFjODAwMCAgIGNy
MjogMDAwMDAwMDAwMDAwMDAwMA0KKFhFTikgWyAgMTAxLjEwODk0Ml0gZnNiOiAwMDAwMDAwMDAw
MDAwMDAwICAgZ3NiOiAwMDAwMDAwMDAwMDAwMDAwICAgZ3NzOiAwMDAwMDAwMDAwMDAwMDAwDQoo
WEVOKSBbICAxMDEuMTI0ODkxXSBkczogMDAwMCAgIGVzOiAwMDAwICAgZnM6IDAwMDAgICBnczog
MDAwMCAgIHNzOiAwMDAwICAgY3M6IGUwMDgNCihYRU4pIFsgIDEwMS4xMzk3OTZdIFhlbiBjb2Rl
IGFyb3VuZCA8ZmZmZjgyZDA0MDIyZTM0Mj4gKGNvbW1vbi9wYWdlX2FsbG9jLmMjbm9kZV90b19z
Y3J1YisweDJkLzB4MWFiKToNCihYRU4pIFsgIDEwMS4xNTc5OTZdICA4MiAyOCAwMCA0NCAwZiBi
NiAzNCAwMiA8NDE+IDgwIGZlIGZmIGI4IDAwIDAwIDAwIDAwIDQ0IDBmIDQ0IGYwIDQxIDBmIGI2
DQooWEVOKSBbICAxMDEuMTc0ODA5XSBYZW4gc3RhY2sgdHJhY2UgZnJvbSByc3A9ZmZmZjgzMDdj
Yjc3N2UwODoNCihYRU4pIFsgIDEwMS4xODYwNzddICAgIGZmZmYwMTA3Y2I3NzgyMjAgMDAwMDAw
MDAwMDAwMDAwNCAwMDAwMDAwMDAwMDA3ZmZmIGZmZmY4MmQwNDA1ZGIwMDANCihYRU4pIFsgIDEw
MS4yMDIxOTZdICAgIGZmZmY4MmQwNDA1ZDQyMzAgZmZmZjgyZDA0MDRiODc2MCBmZmZmODMwN2Ni
Nzc3ZWIwIGZmZmY4MmQwNDAyMmZkZmENCihYRU4pIFsgIDEwMS4yMTgzMTZdICAgIGZmZmY4MmQw
NDAzNGU1ZTQgMDAwMDAwMDRjYjc3N2U2OCBmZmZmODJkMDQwMzRlNzRlIGZmZmY4MmQwNDA1ZGIy
MDANCihYRU4pIFsgIDEwMS4yMzQ0MzddICAgIGZmZmY4MzA3Y2I3NzdlYTAgZmZmZjgyZDA0MDIz
NDgyYSAwMDAwMDAwMDAwMDAwMDA0IDAwMDAwMDAwMDAwMDdmZmYNCihYRU4pIFsgIDEwMS4yNTA1
NThdICAgIDAwMDAwMDAwMDAwMDAwMDQgMDAwMDAwMDAwMDAwN2ZmZiBmZmZmODJkMDQwNWRiMDAw
IGZmZmY4MmQwNDA1ZDQyMzANCihYRU4pIFsgIDEwMS4yNjY2NzhdICAgIGZmZmY4MmQwNDA0Yjg3
NjAgZmZmZjgzMDdjYjc3N2VlOCBmZmZmODJkMDQwMzIyNWRiIGZmZmY4MmQwNDAzMjI1MWQNCihY
RU4pIFsgIDEwMS4yODI3OTldICAgIGZmZmY4MzA3Y2I3N2IwMDAgMDAwMDAwMDAwMDAwMDAwMCAw
MDAwMDAwMDAwMDAwMDAxIGZmZmY4MmQwNDA0Yjg3NjANCihYRU4pIFsgIDEwMS4yOTg5MTZdICAg
IGZmZmY4MzA3Y2I3NzdkZTggZmZmZjgyZDA0MDMyNTUzOSA0OGUxYzZjMTI4ZmRkOTdiIDI3Mjgy
NjVhZDRjZjVhMjcNCihYRU4pIFsgIDEwMS4zMTUwMzddICAgIGVmMGYwMjc4NGI5MzM1MzkgYzQx
M2FhZDZlMGVhMjZkMCA2YWVkMWRjNGQ0YjU3NDdhIDM3NGIwMWNjNzk1MjkzYjINCihYRU4pIFsg
IDEwMS4zMzExNTZdICAgIDcyNDk0YzJmODQ2OWM3NzkgNWQxMTUwZGVmNzQ5N2FiYyAwM2VlMzc3
NTg0OTg2NWVjIGI0MDdjZjlkZDA5OTc4MzcNCihYRU4pIFsgIDEwMS4zNDcyNzddICAgIDg3M2Yw
OWZjNWY3NjJhNTQgZTdkMmY3ZDIxMWE5NjcyZCAxZjE4ZDc2OTVmYmY5MTM1IGMwOTBkZGRiMjgy
ZDhiMjQNCihYRU4pIFsgIDEwMS4zNjMzOThdICAgIGI2MDVlNjZiNzM4YTNkZmUgMzhlM2VkOTk1
ZWUwNjEwMiAzNzM3MWNkZDJkOGE5MmYzIDcwMDUwOWRiOWU1NDViODINCihYRU4pIFsgIDEwMS4z
Nzk1MThdICAgIGIzMTI2YjhiZWIzNWNkN2IgNWI2YzMzZDkyYjE4NDFmNCA5YzRhNTc2MGNmZjc4
MjBlIDU1MjEyMzEyMTg1ZWI0OWMNCihYRU4pIFsgIDEwMS4zOTU2NDBdICAgIGZjN2E5MmY0NGMy
MDE1YWIgNDVkM2IyODBiMjczZmJkNyBlYzkwYTM3ZDc2OGQ4YWFkIDAwMDBlMDEwMDAwMDAwMDQN
CihYRU4pIFsgIDEwMS40MTE3NThdICAgIGZmZmY4MzA3Y2I3N2IwMDAgMDAwMDAwMzc4YjFhOTAw
MCAwMDAwMDAwMDAwMzUwNmUwIDAwMDAwMDAwMDAwMDAwMDANCihYRU4pIFsgIDEwMS40Mjc4Nzld
ICAgIDAwMDAwMDAwMDAwMDAwMDAgMDAwMDAwMDIwMDAwMDAwMCA5MTAwOWIxMDAwMDAwMDAyDQoo
WEVOKSBbICAxMDEuNDQxMDUxXSBYZW4gY2FsbCB0cmFjZToNCihYRU4pIFsgIDEwMS40NDc2Mzld
ICAgIFs8ZmZmZjgyZDA0MDIyZTM0Mj5dIFIgY29tbW9uL3BhZ2VfYWxsb2MuYyNub2RlX3RvX3Nj
cnViKzB4MmQvMHgxYWINCihYRU4pIFsgIDEwMS40NjM3NTldICAgIFs8ZmZmZjgyZDA0MDIyZmRm
YT5dIEYgc2NydWJfZnJlZV9wYWdlcysweDJhLzB4NDFiDQooWEVOKSBbICAxMDEuNDc2OTMxXSAg
ICBbPGZmZmY4MmQwNDAzMjI1ZGI+XSBGIGFyY2gveDg2L2RvbWFpbi5jI2lkbGVfbG9vcCsweGJl
LzB4ZWINCihYRU4pIFsgIDEwMS40OTE4MzhdICAgIFs8ZmZmZjgyZDA0MDMyNTUzOT5dIEYgY29u
dGludWVfcnVubmluZysweDViLzB4NWQNCihYRU4pIFsgIDEwMS41MDQ4MzldDQooWEVOKSBbICAx
MDEuNTA4ODI1XSAqKiogRHVtcGluZyBDUFU1IGhvc3Qgc3RhdGU6ICoqKg0KKFhFTikgWyAgMTAx
LjUxODM1OV0gLS0tLVsgWGVuLTQuMjEtdW5zdGFibGUgIHg4Nl82NCAgZGVidWc9eSAgVGFpbnRl
ZDogICBDICAgIF0tLS0tDQooWEVOKSBbICAxMDEuNTMzMjY4XSBDUFU6ICAgIDUNCihYRU4pIFsg
IDEwMS41Mzg4MTJdIFJJUDogICAgZTAwODpbPGZmZmY4MmQwNDAyODUwN2Y+XSBhcmNoL3g4Ni9h
Y3BpL2NwdV9pZGxlLmMjYWNwaV9pZGxlX2RvX2VudHJ5KzB4MTFlLzB4MTM1DQooWEVOKSBbICAx
MDEuNTU4MjI4XSBSRkxBR1M6IDAwMDAwMDAwMDAwMDAyNDYgICBDT05URVhUOiBoeXBlcnZpc29y
DQooWEVOKSBbICAxMDEuNTcwMTg3XSByYXg6IGZmZmY4MzA3Y2I3NjdlNDggICByYng6IGZmZmY4
MzA3Y2I3NzhkNzggICByY3g6IDAwMDAwMDAwMDAwMDAwMDENCihYRU4pIFsgIDEwMS41ODYxMzVd
IHJkeDogMDAwMDAwMDAwMDAwMDAwMCAgIHJzaTogZmZmZjgzMDdjYjc2N2VmOCAgIHJkaTogMDAw
MDAwMDAwMDAwMDA0OA0KKFhFTikgWyAgMTAxLjYwMjA4MF0gcmJwOiBmZmZmODMwN2NiNzY3ZTQ4
ICAgcnNwOiBmZmZmODMwN2NiNzY3ZTQ4ICAgcjg6ICAwMDAwMDAwMGZmZmZmZjAxDQooWEVOKSBb
ICAxMDEuNjE4MDI2XSByOTogIGZmZmY4MzA3Y2I3NzhhZjAgICByMTA6IDAwMDAwMDAwZmZmZmZm
ZmYgICByMTE6IGZmZmY4MmQwNDAzNGM5OGQNCihYRU4pIFsgIDEwMS42MzM5NzNdIHIxMjogZmZm
ZjgzMDdjYjc3OGQwMCAgIHIxMzogMDAwMDAwMDAwMDAwMDAwNSAgIHIxNDogMDAwMDAwMTc4MDhk
MzAzNw0KKFhFTikgWyAgMTAxLjY0OTkyMF0gcjE1OiBmZmZmODJkMDQwNGI4NzYwICAgY3IwOiAw
MDAwMDAwMDgwMDUwMDNiICAgY3I0OiAwMDAwMDAwMDAwMzUwNmUwDQooWEVOKSBbICAxMDEuNjY1
ODY5XSBjcjM6IDAwMDAwMDAwYzZhYzgwMDAgICBjcjI6IDAwMDAwMDAwMDAwMDAwMDANCihYRU4p
IFsgIDEwMS42Nzc2NTNdIGZzYjogMDAwMDAwMDAwMDAwMDAwMCAgIGdzYjogMDAwMDAwMDAwMDAw
MDAwMCAgIGdzczogMDAwMDAwMDAwMDAwMDAwMA0KKFhFTikgWyAgMTAxLjY5MzYwMl0gZHM6IDAw
MDAgICBlczogMDAwMCAgIGZzOiAwMDAwICAgZ3M6IDAwMDAgICBzczogMDAwMCAgIGNzOiBlMDA4
DQooWEVOKSBbICAxMDEuNzA4NTA5XSBYZW4gY29kZSBhcm91bmQgPGZmZmY4MmQwNDAyODUwN2Y+
IChhcmNoL3g4Ni9hY3BpL2NwdV9pZGxlLmMjYWNwaV9pZGxlX2RvX2VudHJ5KzB4MTFlLzB4MTM1
KToNCihYRU4pIFsgIDEwMS43Mjg2MTRdICAwMCAwMCBmMyAwZiBhZSBlOSBmYiBmNCA8OGI+IDg2
IGZjIDAwIDAwIDAwIDgwIGE2IDA0IDAxIDAwIDAwIGZlIDg5IGY5IDY2DQooWEVOKSBbICAxMDEu
NzQ1NDI5XSBYZW4gc3RhY2sgdHJhY2UgZnJvbSByc3A9ZmZmZjgzMDdjYjc2N2U0ODoNCihYRU4p
IFsgIDEwMS43NTY2OTVdICAgIGZmZmY4MzA3Y2I3NjdlYjAgZmZmZjgyZDA0MDI4NTZjYiBmZmZm
ODJkMDQwMzRlNzRlIGZmZmY4MmQwNDA1ZGIyODANCihYRU4pIFsgIDEwMS43NzI4MTVdICAgIGZm
ZmY4MzA3Y2I3NjdlYTAgMDAwMDAwMDAwMDAwMDAwMCAwMDAwMDAwMDAwMDAwMDAwIDAwMDAwMDAw
MDAwMDAwMDANCihYRU4pIFsgIDEwMS43ODg5MzRdICAgIDAwMDAwMDAwMDAwMDAwMDUgMDAwMDAw
MDAwMDAwN2ZmZiBmZmZmODJkMDQwNWRiMDAwIGZmZmY4MmQwNDA1ZDQyMzANCihYRU4pIFsgIDEw
MS44MDUwNTVdICAgIGZmZmY4MmQwNDA0Yjg3NjAgZmZmZjgzMDdjYjc2N2VlOCBmZmZmODJkMDQw
MzIyNjA2IGZmZmY4MmQwNDAzMjI1MWQNCihYRU4pIFsgIDEwMS44MjExNzZdICAgIGZmZmY4MzA3
Y2I3NmQwMDAgMDAwMDAwMDAwMDAwMDAwMCAwMDAwMDAwMDAwMDAwMDAxIGZmZmY4MmQwNDA0Yjg3
NjANCihYRU4pIFsgIDEwMS44MzcyOTZdICAgIGZmZmY4MzA3Y2I3NjdkZTggZmZmZjgyZDA0MDMy
NTUzOSAwM2ZlNzMwMjQxZDI0MDFmIGFhOTNkMDY4MzdjMTRkMzENCihYRU4pIFsgIDEwMS44NTM0
MTVdICAgIDRkZTY4NWQwNDA2OWY2NzMgNGUyNzBkMGIyZDc5NzkxZSBhMWNiYTg0OTYwNmNkZTY4
IDI2NTY1ZWZhZDc1M2M4YWENCihYRU4pIFsgIDEwMS44Njk1MzVdICAgIDhlNjA2ZjJhYmQxMGNj
ZjggNTFhYzZmOTJlMmE0MTIzYSA0OTI0OWM5ZmQ5OTFiYWI5IGIyZTUyNDJlZDMxNmI5NzINCihY
RU4pIFsgIDEwMS44ODU2NTVdICAgIDk4YjhkNDhkYjFmYTMyMzMgNThmMmJhNGY2MWFkYjJjOSA2
NjgyOTY1MTA1ZjFkOGZjIDJiN2M2YzQ0NjQ4NjJiNjQNCihYRU4pIFsgIDEwMS45MDE3NzRdICAg
IDViY2ExMmJiMTgwZGVjYmYgNzliMjk4YTdhZTA5YWYzNiA4ODgwZDhhYjIzZjkwNTcwIGFkNTNh
MmFlMWM0ZGNlYzINCihYRU4pIFsgIDEwMS45MTc4OTddICAgIGM5YzE1ZDNlZjhlZTViOWUgZDk4
MjBlMjQ1ZWZlYWJiMCA0YWMxNTA0OTk2YWYwYTQyIGUxMjc3NjE3ZmExYzM2N2YNCihYRU4pIFsg
IDEwMS45MzQwMTZdICAgIDFiMjA3OGE3NzU2NDJkNTYgMzFjMGJmZjhkYTMxMjczYyBjZWRiNDJi
NDlkZWZkYzY3IDAwMDBlMDEwMDAwMDAwMDUNCihYRU4pIFsgIDEwMS45NTAxMzZdICAgIGZmZmY4
MzA3Y2I3NmQwMDAgMDAwMDAwMzc4YjE5NTAwMCAwMDAwMDAwMDAwMzUwNmUwIDAwMDAwMDAwMDAw
MDAwMDANCihYRU4pIFsgIDEwMS45NjYyNTVdICAgIDAwMDAwMDAwMDAwMDAwMDAgMDAwMDAwMDIw
MDAwMDAwMCAyODAwY2ExMTAwMDAwMDAyDQooWEVOKSBbICAxMDEuOTc5NDMxXSBYZW4gY2FsbCB0
cmFjZToNCihYRU4pIFsgIDEwMS45ODYwMTddICAgIFs8ZmZmZjgyZDA0MDI4NTA3Zj5dIFIgYXJj
aC94ODYvYWNwaS9jcHVfaWRsZS5jI2FjcGlfaWRsZV9kb19lbnRyeSsweDExZS8weDEzNQ0KKFhF
TikgWyAgMTAyLjAwNDA0NF0gICAgWzxmZmZmODJkMDQwMjg1NmNiPl0gRiBhcmNoL3g4Ni9hY3Bp
L2NwdV9pZGxlLmMjYWNwaV9wcm9jZXNzb3JfaWRsZSsweDNmMC8weDVjZQ0KKFhFTikgWyAgMTAy
LjAyMjI0NV0gICAgWzxmZmZmODJkMDQwMzIyNjA2Pl0gRiBhcmNoL3g4Ni9kb21haW4uYyNpZGxl
X2xvb3ArMHhlOS8weGViDQooWEVOKSBbICAxMDIuMDM3MTQ5XSAgICBbPGZmZmY4MmQwNDAzMjU1
Mzk+XSBGIGNvbnRpbnVlX3J1bm5pbmcrMHg1Yi8weDVkDQooWEVOKSBbICAxMDIuMDUwMTUwXQ0K
KFhFTikgWyAgMTAyLjA1NDEzNV0gKioqIER1bXBpbmcgQ1BVNiBob3N0IHN0YXRlOiAqKioNCihY
RU4pIFsgIDEwMi4wNjM2NjldIC0tLS1bIFhlbi00LjIxLXVuc3RhYmxlICB4ODZfNjQgIGRlYnVn
PXkgIFRhaW50ZWQ6ICAgQyAgICBdLS0tLQ0KKFhFTikgWyAgMTAyLjA3ODU3Nl0gQ1BVOiAgICA2
DQooWEVOKSBbICAxMDIuMDg0MTI1XSBSSVA6ICAgIGUwMDg6WzxmZmZmODJkMDQwMjJmZGQxPl0g
c2NydWJfZnJlZV9wYWdlcysweDEvMHg0MWINCihYRU4pIFsgIDEwMi4wOTg1MTBdIFJGTEFHUzog
MDAwMDAwMDAwMDAwMDI0NiAgIENPTlRFWFQ6IGh5cGVydmlzb3INCihYRU4pIFsgIDEwMi4xMTA0
NzFdIHJheDogMDAwMDAwMDAwMDAwMDMwMCAgIHJieDogMDAwMDAwMDAwMDAwMDAwNiAgIHJjeDog
MDAwMDAwMDAwMDAwMDAwMA0KKFhFTikgWyAgMTAyLjEyNjQxNl0gcmR4OiAwMDAwMDAwMDAwMDAw
MDAwICAgcnNpOiBmZmZmZmZmZmZmZmZmZjAxICAgcmRpOiAwMDAwMDAwMDAwMDAwMDA2DQooWEVO
KSBbICAxMDIuMTQyMzY0XSByYnA6IGZmZmY4MzA3Y2I3NGZlZTggICByc3A6IGZmZmY4MzA3Y2I3
NGZlYjAgICByODogIGZmZmY4MzA3Y2I3NWEyYTANCihYRU4pIFsgIDEwMi4xNTgzMTFdIHI5OiAg
MDAwMDAwMDAwMDAwMDAwMSAgIHIxMDogMDAwMDAwMDBmZmZmZmZmZiAgIHIxMTogZmZmZjgyZDA0
MDM0Yzk4ZA0KKFhFTikgWyAgMTAyLjE3NDI1N10gcjEyOiAwMDAwMDAwMDAwMDA3ZmZmICAgcjEz
OiBmZmZmODJkMDQwNWRiMDAwICAgcjE0OiBmZmZmODJkMDQwNWQ0MjMwDQooWEVOKSBbICAxMDIu
MTkwMjA0XSByMTU6IGZmZmY4MmQwNDA0Yjg3NjAgICBjcjA6IDAwMDAwMDAwODAwNTAwM2IgICBj
cjQ6IDAwMDAwMDAwMDAzNTA2ZTANCihYRU4pIFsgIDEwMi4yMDYxNTFdIGNyMzogMDAwMDAwMDBj
NmFjODAwMCAgIGNyMjogMDAwMDAwMDAwMDAwMDAwMA0KKFhFTikgWyAgMTAyLjIxNzkzN10gZnNi
OiAwMDAwMDAwMDAwMDAwMDAwICAgZ3NiOiAwMDAwMDAwMDAwMDAwMDAwICAgZ3NzOiAwMDAwMDAw
MDAwMDAwMDAwDQooWEVOKSBbICAxMDIuMjMzODg0XSBkczogMDAwMCAgIGVzOiAwMDAwICAgZnM6
IDAwMDAgICBnczogMDAwMCAgIHNzOiAwMDAwICAgY3M6IGUwMDgNCihYRU4pIFsgIDEwMi4yNDg3
OTJdIFhlbiBjb2RlIGFyb3VuZCA8ZmZmZjgyZDA0MDIyZmRkMT4gKHNjcnViX2ZyZWVfcGFnZXMr
MHgxLzB4NDFiKToNCihYRU4pIFsgIDEwMi4yNjM4NzNdICBiYiBmNCBmZiBmZiBmZiBlYiBiMCA1
NSA8NDg+IDg5IGU1IDQxIDU3IDQxIDU2IDQxIDU1IDQxIDU0IDUzIDQ4IDgzIGVjIDQwDQooWEVO
KSBbICAxMDIuMjgwNjg0XSBYZW4gc3RhY2sgdHJhY2UgZnJvbSByc3A9ZmZmZjgzMDdjYjc0ZmVi
MDoNCihYRU4pIFsgIDEwMi4yOTE5NTFdICAgIGZmZmY4MzA3Y2I3NGZlZTggZmZmZjgyZDA0MDMy
MjVkYiBmZmZmODJkMDQwMzIyNTFkIGZmZmY4MzA3Y2I3NTcwMDANCihYRU4pIFsgIDEwMi4zMDgw
NzJdICAgIDAwMDAwMDAwMDAwMDAwMDAgMDAwMDAwMDAwMDAwMDAwMSBmZmZmODJkMDQwNGI4NzYw
IGZmZmY4MzA3Y2I3NGZkZTgNCihYRU4pIFsgIDEwMi4zMjQxOTFdICAgIGZmZmY4MmQwNDAzMjU1
MzkgZWJkOTU4NmU3OGM1OGVmZSBlMzk2YjNiODU3ZWIxNmIzIDdmYTA2Nzc2ZGJmNmM2Y2ENCihY
RU4pIFsgIDEwMi4zNDAzMTNdICAgIGMyZTFhNjcxZTExMTI0ZDEgNTkyOWMyOTc4NTA0ODgyOSA1
M2YzYzViZjk5N2I2MTBmIDlmZDllMzBkODU5OGM5NGMNCihYRU4pIFsgIDEwMi4zNTY0MzJdICAg
IDMwODgzODU5NGI3OTI1ZWEgMWJlNTM5NTIyZTk5N2Y0YyAzNjVjMDc3OWJjNGEzYjNhIGMxZGM0
ODc0NDQxNDk0ODkNCihYRU4pIFsgIDEwMi4zNzI1NTNdICAgIGY1OTc2NzQ0MzlkMWU0MjMgYjll
NzM4NDcwMDFjZWY3MiBmOGQzMmM0MDVlZGY1OGI2IGY5NzUwODg2ZmU5MDc3NzkNCihYRU4pIFsg
IDEwMi4zODg2NzRdICAgIDA2ZTg3OTMyNTUyNDE2OGQgNGYxMzQxNzZhYjA1NjVhMCBiZjU0MWQ4
M2NmZjc1ZWI0IGEwN2Y5YjI4ZWI1NTVmY2QNCihYRU4pIFsgIDEwMi40MDQ3OTNdICAgIGE0ODA5
MjAyZDBlYjk5YjYgOWFkMDI1NTFhM2ZkMjVhYiBlMWExNmNmNTlhNjJiNjhiIGY5NjM5ZGQ2MWE1
YmM3MGINCihYRU4pIFsgIDEwMi40MjA5MTJdICAgIDQyMTdkZWVlYWJmNjBkNjIgNWVkM2E3NTM0
N2M3M2IwZCAwMDAwZTAxMDAwMDAwMDA2IGZmZmY4MzA3Y2I3NTcwMDANCihYRU4pIFsgIDEwMi40
MzcwMzRdICAgIDAwMDAwMDM3OGIxODUwMDAgMDAwMDAwMDAwMDM1MDZlMCAwMDAwMDAwMDAwMDAw
MDAwIDAwMDAwMDAwMDAwMDAwMDANCihYRU4pIFsgIDEwMi40NTMxNTFdICAgIDAwMDAwMDAyMDAw
MDAwMDAgNTcwMDIxMTAwMDAwMDAwMg0KKFhFTikgWyAgMTAyLjQ2MzM3OF0gWGVuIGNhbGwgdHJh
Y2U6DQooWEVOKSBbICAxMDIuNDY5OTY4XSAgICBbPGZmZmY4MmQwNDAyMmZkZDE+XSBSIHNjcnVi
X2ZyZWVfcGFnZXMrMHgxLzB4NDFiDQooWEVOKSBbICAxMDIuNDgyOTY2XSAgICBbPGZmZmY4MmQw
NDAzMjU1Mzk+XSBGIGNvbnRpbnVlX3J1bm5pbmcrMHg1Yi8weDVkDQooWEVOKSBbICAxMDIuNDk1
OTY1XQ0KKFhFTikgWyAgMTAyLjQ5OTk1M10gKioqIER1bXBpbmcgQ1BVNyBob3N0IHN0YXRlOiAq
KioNCihYRU4pIFsgIDEwMi41MDk0ODhdIC0tLS1bIFhlbi00LjIxLXVuc3RhYmxlICB4ODZfNjQg
IGRlYnVnPXkgIFRhaW50ZWQ6ICAgQyAgICBdLS0tLQ0KKFhFTikgWyAgMTAyLjUyNDM5M10gQ1BV
OiAgICA3DQooWEVOKSBbICAxMDIuNTI5OTQwXSBSSVA6ICAgIGUwMDg6WzxmZmZmODJkMDQwMjg1
MDdmPl0gYXJjaC94ODYvYWNwaS9jcHVfaWRsZS5jI2FjcGlfaWRsZV9kb19lbnRyeSsweDExZS8w
eDEzNQ0KKFhFTikgWyAgMTAyLjU0OTM1NF0gUkZMQUdTOiAwMDAwMDAwMDAwMDAwMjQ2ICAgQ09O
VEVYVDogaHlwZXJ2aXNvcg0KKFhFTikgWyAgMTAyLjU2MTMxNF0gcmF4OiBmZmZmODMwN2NmZDdm
ZTQ4ICAgcmJ4OiBmZmZmODMwN2NiNzQzMzU4ICAgcmN4OiAwMDAwMDAwMDAwMDAwMDAxDQooWEVO
KSBbICAxMDIuNTc3MjYxXSByZHg6IDAwMDAwMDAwMDAwMDAwMDAgICByc2k6IGZmZmY4MzA3Y2Zk
N2ZlZjggICByZGk6IDAwMDAwMDAwMDAwMDAwNDgNCihYRU4pIFsgIDEwMi41OTMyMDhdIHJicDog
ZmZmZjgzMDdjZmQ3ZmU0OCAgIHJzcDogZmZmZjgzMDdjZmQ3ZmU0OCAgIHI4OiAgMDAwMDAwMDBm
ZmZmZmYwMQ0KKFhFTikgWyAgMTAyLjYwOTE1NF0gcjk6ICBmZmZmODMwN2NiNzQzMGQwICAgcjEw
OiAwMDAwMDAwMGZmZmZmZmZmICAgcjExOiBmZmZmODJkMDQwMzRjOThkDQooWEVOKSBbICAxMDIu
NjI1MTAxXSByMTI6IGZmZmY4MzA3Y2I3NDMyZTAgICByMTM6IDAwMDAwMDAwMDAwMDAwMDcgICBy
MTQ6IDAwMDAwMDE3YzJkNmJiNzINCihYRU4pIFsgIDEwMi42NDEwNDddIHIxNTogZmZmZjgyZDA0
MDRiODc2MCAgIGNyMDogMDAwMDAwMDA4MDA1MDAzYiAgIGNyNDogMDAwMDAwMDAwMDM1MDZlMA0K
KFhFTikgWyAgMTAyLjY1Njk5NF0gY3IzOiAwMDAwMDAwMGM2YWM4MDAwICAgY3IyOiAwMDAwMDAw
MDAwMDAwMDAwDQooWEVOKSBbICAxMDIuNjY4NzgyXSBmc2I6IDAwMDAwMDAwMDAwMDAwMDAgICBn
c2I6IDAwMDAwMDAwMDAwMDAwMDAgICBnc3M6IDAwMDAwMDAwMDAwMDAwMDANCihYRU4pIFsgIDEw
Mi42ODQ3MjldIGRzOiAwMDAwICAgZXM6IDAwMDAgICBmczogMDAwMCAgIGdzOiAwMDAwICAgc3M6
IDAwMDAgICBjczogZTAwOA0KKFhFTikgWyAgMTAyLjY5OTYzNl0gWGVuIGNvZGUgYXJvdW5kIDxm
ZmZmODJkMDQwMjg1MDdmPiAoYXJjaC94ODYvYWNwaS9jcHVfaWRsZS5jI2FjcGlfaWRsZV9kb19l
bnRyeSsweDExZS8weDEzNSk6DQooWEVOKSBbICAxMDIuNzE5NzQxXSAgMDAgMDAgZjMgMGYgYWUg
ZTkgZmIgZjQgPDhiPiA4NiBmYyAwMCAwMCAwMCA4MCBhNiAwNCAwMSAwMCAwMCBmZSA4OSBmOSA2
Ng0KKFhFTikgWyAgMTAyLjczNjU1N10gWGVuIHN0YWNrIHRyYWNlIGZyb20gcnNwPWZmZmY4MzA3
Y2ZkN2ZlNDg6DQooWEVOKSBbICAxMDIuNzQ3ODIxXSAgICBmZmZmODMwN2NmZDdmZWIwIGZmZmY4
MmQwNDAyODU2Y2IgZmZmZjgyZDA0MDM0ZTc0ZSBmZmZmODJkMDQwNWRiMzgwDQooWEVOKSBbICAx
MDIuNzYzOTQyXSAgICBmZmZmODMwN2NmZDdmZWEwIDAwMDAwMDAwMDAwMDAwMDAgMDAwMDAwMDAw
MDAwMDAwMCAwMDAwMDAwMDAwMDAwMDAwDQooWEVOKSBbICAxMDIuNzgwMDYxXSAgICAwMDAwMDAw
MDAwMDAwMDA3IDAwMDAwMDAwMDAwMDdmZmYgZmZmZjgyZDA0MDVkYjAwMCBmZmZmODJkMDQwNWQ0
MjMwDQooWEVOKSBbICAxMDIuNzk2MTgxXSAgICBmZmZmODJkMDQwNGI4NzYwIGZmZmY4MzA3Y2Zk
N2ZlZTggZmZmZjgyZDA0MDMyMjYwNiBmZmZmODJkMDQwMzIyNTFkDQooWEVOKSBbICAxMDIuODEy
MzAyXSAgICBmZmZmODMwN2NiNzUyMDAwIDAwMDAwMDAwMDAwMDAwMDAgMDAwMDAwMDAwMDAwMDAw
MSBmZmZmODJkMDQwNGI4NzYwDQooWEVOKSBbICAxMDIuODI4NDIzXSAgICBmZmZmODMwN2NmZDdm
ZGU4IGZmZmY4MmQwNDAzMjU1MzkgYzQxMjViOTZjYjkxOGVmZiA4OTNlZDUyZjFhMTE0OGQ1DQoo
WEVOKSBbICAxMDIuODQ0NTQyXSAgICAxNmU1NTg2NzMzMGUyZTIwIDU1ZDkzZWY3NzdjZTcxZWQg
ODY5OGNhZTA4OWJiOGQxMiA4ZTcwOTMyOWMxYTZjMmU2DQooWEVOKSBbICAxMDIuODYwNjYxXSAg
ICBmZmQzNTFhY2ZkZGRkMzBiIGZiYjQ0YmJkMDg3NGQ2MjQgMDFlNzM4NzM0ZmUxYWE5YyBmMWM2
MDVmM2VjYjg1ZDMxDQooWEVOKSBbICAxMDIuODc2NzgyXSAgICA4OTMzMTVhMGVlY2U4M2E3IDRh
MDYyMDdjZWIyNzcyY2EgOGY4MWExZGY3YTRkMTc1OSAwYmI0MTNkMWIyMzQ0MGRkDQooWEVOKSBb
ICAxMDIuODkyOTAyXSAgICAyMjc3NDc4MGE1MTRlYjM3IDJhMmEwZTgxNzAyOGY5MjggMmRiMTRl
YzE2MDlhMTVlYyA4NDUyYTBmMjRiZDkzMmY3DQooWEVOKSBbICAxMDIuOTA5MDI0XSAgICBiMjlh
M2NmZTk3NmQ4ZjczIDg3ZDViMTJlZmQ1ZTc2NDAgZTFlNDllYzY3YmFkYzRlMiAzZTVhYWJmMGU0
MmU0NjgyDQooWEVOKSBbICAxMDIuOTI1MTQyXSAgICAzNGU2OWM1YzlhM2QzMTFhIDhhYmEyMzk1
YWZiNjJiYmIgMDEyMGU1Yjc1MjYxZWY3ZSAwMDAwZTAxMDAwMDAwMDA3DQooWEVOKSBbICAxMDIu
OTQxMjY0XSAgICBmZmZmODMwN2NiNzUyMDAwIDAwMDAwMDM3OGIxNzEwMDAgMDAwMDAwMDAwMDM1
MDZlMCAwMDAwMDAwMDAwMDAwMDAwDQooWEVOKSBbICAxMDIuOTU3Mzg0XSAgICAwMDAwMDAwMDAw
MDAwMDAwIDAwMDAwMDAyMDAwMDAwMDAgMzMwMDQ4MTEwMDAwMDAwMg0KKFhFTikgWyAgMTAyLjk3
MDU1Nl0gWGVuIGNhbGwgdHJhY2U6DQooWEVOKSBbICAxMDIuOTc3MTQzXSAgICBbPGZmZmY4MmQw
NDAyODUwN2Y+XSBSIGFyY2gveDg2L2FjcGkvY3B1X2lkbGUuYyNhY3BpX2lkbGVfZG9fZW50cnkr
MHgxMWUvMHgxMzUNCihYRU4pIFsgIDEwMi45OTUxNjldICAgIFs8ZmZmZjgyZDA0MDI4NTZjYj5d
IEYgYXJjaC94ODYvYWNwaS9jcHVfaWRsZS5jI2FjcGlfcHJvY2Vzc29yX2lkbGUrMHgzZjAvMHg1
Y2UNCihYRU4pIFsgIDEwMy4wMTMzNzFdICAgIFs8ZmZmZjgyZDA0MDMyMjYwNj5dIEYgYXJjaC94
ODYvZG9tYWluLmMjaWRsZV9sb29wKzB4ZTkvMHhlYg0KKFhFTikgWyAgMTAzLjAyODI3OF0gICAg
WzxmZmZmODJkMDQwMzI1NTM5Pl0gRiBjb250aW51ZV9ydW5uaW5nKzB4NWIvMHg1ZA0KKFhFTikg
WyAgMTAzLjA0MTI3Nl0NCihYRU4pIFsgIDEwMy4wNDUyNjRdICoqKiBEdW1waW5nIENQVTkgaG9z
dCBzdGF0ZTogKioqDQooWEVOKSBbICAxMDMuMDU0Nzk5XSAtLS0tWyBYZW4tNC4yMS11bnN0YWJs
ZSAgeDg2XzY0ICBkZWJ1Zz15ICBUYWludGVkOiAgIEMgICAgXS0tLS0NCihYRU4pIFsgIDEwMy4w
Njk3MDVdIENQVTogICAgOQ0KKFhFTikgWyAgMTAzLjA3NTI1Ml0gUklQOiAgICBlMDA4Ols8ZmZm
ZjgyZDA0MDI4NTA3Zj5dIGFyY2gveDg2L2FjcGkvY3B1X2lkbGUuYyNhY3BpX2lkbGVfZG9fZW50
cnkrMHgxMWUvMHgxMzUNCihYRU4pIFsgIDEwMy4wOTQ2NjRdIFJGTEFHUzogMDAwMDAwMDAwMDAw
MDI0NiAgIENPTlRFWFQ6IGh5cGVydmlzb3INCihYRU4pIFsgIDEwMy4xMDY2MjZdIHJheDogZmZm
ZjgzMDdjZmQ1ZmU0OCAgIHJieDogZmZmZjgzMDdjZmQ2MzkyOCAgIHJjeDogMDAwMDAwMDAwMDAw
MDAwMQ0KKFhFTikgWyAgMTAzLjEyMjU3Ml0gcmR4OiAwMDAwMDAwMDAwMDAwMDAwICAgcnNpOiBm
ZmZmODMwN2NmZDVmZWY4ICAgcmRpOiAwMDAwMDAwMDAwMDAwMDQ4DQooWEVOKSBbICAxMDMuMTM4
NTE5XSByYnA6IGZmZmY4MzA3Y2ZkNWZlNDggICByc3A6IGZmZmY4MzA3Y2ZkNWZlNDggICByODog
IDAwMDAwMDAwZmZmZmZmMDENCihYRU4pIFsgIDEwMy4xNTQ0NjRdIHI5OiAgZmZmZjgzMDdjZmQ2
MzZhMCAgIHIxMDogMDAwMDAwMDBmZmZmZmZmZiAgIHIxMTogZmZmZjgyZDA0MDM0Yzk4ZA0KKFhF
TikgWyAgMTAzLjE3MDQxMl0gcjEyOiBmZmZmODMwN2NmZDYzOGIwICAgcjEzOiAwMDAwMDAwMDAw
MDAwMDA5ICAgcjE0OiAwMDAwMDAxN2MyZDZiN2NiDQooWEVOKSBbICAxMDMuMTg2MzU5XSByMTU6
IGZmZmY4MmQwNDA0Yjg3NjAgICBjcjA6IDAwMDAwMDAwODAwNTAwM2IgICBjcjQ6IDAwMDAwMDAw
MDAzNTA2ZTANCihYRU4pIFsgIDEwMy4yMDIzMDddIGNyMzogMDAwMDAwMDBjNmFjODAwMCAgIGNy
MjogMDAwMDAwMDAwMDAwMDAwMA0KKFhFTikgWyAgMTAzLjIxNDA5MV0gZnNiOiAwMDAwMDAwMDAw
MDAwMDAwICAgZ3NiOiAwMDAwMDAwMDAwMDAwMDAwICAgZ3NzOiAwMDAwMDAwMDAwMDAwMDAwDQoo
WEVOKSBbICAxMDMuMjMwMDQwXSBkczogMDAwMCAgIGVzOiAwMDAwICAgZnM6IDAwMDAgICBnczog
MDAwMCAgIHNzOiAwMDAwICAgY3M6IGUwMDgNCihYRU4pIFsgIDEwMy4yNDQ5NDddIFhlbiBjb2Rl
IGFyb3VuZCA8ZmZmZjgyZDA0MDI4NTA3Zj4gKGFyY2gveDg2L2FjcGkvY3B1X2lkbGUuYyNhY3Bp
X2lkbGVfZG9fZW50cnkrMHgxMWUvMHgxMzUpOg0KKFhFTikgWyAgMTAzLjI2NTA1Ml0gIDAwIDAw
IGYzIDBmIGFlIGU5IGZiIGY0IDw4Yj4gODYgZmMgMDAgMDAgMDAgODAgYTYgMDQgMDEgMDAgMDAg
ZmUgODkgZjkgNjYNCihYRU4pIFsgIDEwMy4yODE4NjZdIFhlbiBzdGFjayB0cmFjZSBmcm9tIHJz
cD1mZmZmODMwN2NmZDVmZTQ4Og0KKFhFTikgWyAgMTAzLjI5MzEzM10gICAgZmZmZjgzMDdjZmQ1
ZmViMCBmZmZmODJkMDQwMjg1NmNiIGZmZmY4MmQwNDAzNGU3NGUgZmZmZjgyZDA0MDVkYjQ4MA0K
KFhFTikgWyAgMTAzLjMwOTI1NF0gICAgZmZmZjgzMDdjZmQ1ZmVhMCAwMDAwMDAwMDAwMDAwMDAw
IDAwMDAwMDAwMDAwMDAwMDAgMDAwMDAwMDAwMDAwMDAwMA0KKFhFTikgWyAgMTAzLjMyNTM3MV0g
ICAgMDAwMDAwMDAwMDAwMDAwOSAwMDAwMDAwMDAwMDA3ZmZmIGZmZmY4MmQwNDA1ZGIwMDAgZmZm
ZjgyZDA0MDVkNDIzMA0KKFhFTikgWyAgMTAzLjM0MTQ5NF0gICAgZmZmZjgyZDA0MDRiODc2MCBm
ZmZmODMwN2NmZDVmZWU4IGZmZmY4MmQwNDAzMjI2MDYgZmZmZjgyZDA0MDMyMjUxZA0KKFhFTikg
WyAgMTAzLjM1NzYxM10gICAgZmZmZjgzMDdjZmQ2MjAwMCAwMDAwMDAwMDAwMDAwMDAwIDAwMDAw
MDAwMDAwMDAwMDEgZmZmZjgyZDA0MDRiODc2MA0KKFhFTikgWyAgMTAzLjM3MzczNF0gICAgZmZm
ZjgzMDdjZmQ1ZmRlOCBmZmZmODJkMDQwMzI1NTM5IDZjNTYzOWFiNmExNDJhNzIgN2Y1N2RiNGRm
ZWQxNThkYQ0KKFhFTikgWyAgMTAzLjM4OTg1M10gICAgNjI0ZjI0NTYzY2JjZDhkZiBiYjRlZjFi
MTVmMmZhYmRlIDhhY2JjMzQzNDE0NjczOTggOGY1YTUwNDZmNjNkM2IwZA0KKFhFTikgWyAgMTAz
LjQwNTk3Ml0gICAgNWRhMTcyZDZlYTYzZmY2ZCBlMDlkZjBjMjMxN2QxM2FjIGY4YzAyMGEwZTRm
Yjg1YzggNzU2NDAyNjMzM2IzNjcwNw0KKFhFTikgWyAgMTAzLjQyMjA5NF0gICAgOWJhM2I3MzBi
ZjlkMjg0ZSBhNTFjN2UxZDBjNzE0ZTAxIGU4M2MzZDVjOThmNmZhNGUgYmYxNGU0NTJkNzA1NmI2
Yw0KKFhFTikgWyAgMTAzLjQzODIxM10gICAgYjVmNGUwODNmNzg1MzJlOCA3NDlmNzNjZWVjZmEy
ZDQ5IDFlOTJkMDZiZDI1MDliZDEgZjIxZjE3N2JlMDQ0MjAyNQ0KKFhFTikgWyAgMTAzLjQ1NDMz
NV0gICAgNmEyNDI0ZjY4MjA0MzJkOSBiNWQ1MDhmNWMzYWZiZmNjIGE1NTI0YTVlOTJlYjFkZGIg
NmMwMjgwZGFlZmEwNjRmZg0KKFhFTikgWyAgMTAzLjQ3MDQ1NV0gICAgOTg0ZThlYTczYTQ4ZDk2
YSBmMGJlYzVjMDk4ODJiNTg5IDFjMGJiZDAxNGFjYzRkOWYgMDAwMGUwMTAwMDAwMDAwOQ0KKFhF
TikgWyAgMTAzLjQ4NjU3NV0gICAgZmZmZjgzMDdjZmQ2MjAwMCAwMDAwMDAzNzhmNzkxMDAwIDAw
MDAwMDAwMDAzNTA2ZTAgMDAwMDAwMDAwMDAwMDAwMA0KKFhFTikgWyAgMTAzLjUwMjY5Nl0gICAg
MDAwMDAwMDAwMDAwMDAwMCAwMDAwMDAwMjAwMDAwMDAwIDllMDBlNjExMDAwMDAwMDINCihYRU4p
IFsgIDEwMy41MTU4NjddIFhlbiBjYWxsIHRyYWNlOg0KKFhFTikgWyAgMTAzLjUyMjQ1M10gICAg
WzxmZmZmODJkMDQwMjg1MDdmPl0gUiBhcmNoL3g4Ni9hY3BpL2NwdV9pZGxlLmMjYWNwaV9pZGxl
X2RvX2VudHJ5KzB4MTFlLzB4MTM1DQooWEVOKSBbICAxMDMuNTQwNDgxXSAgICBbPGZmZmY4MmQw
NDAyODU2Y2I+XSBGIGFyY2gveDg2L2FjcGkvY3B1X2lkbGUuYyNhY3BpX3Byb2Nlc3Nvcl9pZGxl
KzB4M2YwLzB4NWNlDQooWEVOKSBbICAxMDMuNTU4NjgwXSAgICBbPGZmZmY4MmQwNDAzMjI2MDY+
XSBGIGFyY2gveDg2L2RvbWFpbi5jI2lkbGVfbG9vcCsweGU5LzB4ZWINCihYRU4pIFsgIDEwMy41
NzM1ODddICAgIFs8ZmZmZjgyZDA0MDMyNTUzOT5dIEYgY29udGludWVfcnVubmluZysweDViLzB4
NWQNCihYRU4pIFsgIDEwMy41ODY1ODhdDQooWEVOKSBbICAxMDMuNTkwNTc2XSAqKiogRHVtcGlu
ZyBDUFUxMCBob3N0IHN0YXRlOiAqKioNCihYRU4pIFsgIDEwMy42MDAyODFdIC0tLS1bIFhlbi00
LjIxLXVuc3RhYmxlICB4ODZfNjQgIGRlYnVnPXkgIFRhaW50ZWQ6ICAgQyAgICBdLS0tLQ0KKFhF
TikgWyAgMTAzLjYxNTE4OV0gQ1BVOiAgICAxMA0KKFhFTikgWyAgMTAzLjYyMDkwN10gUklQOiAg
ICBlMDA4Ols8ZmZmZjgyZDA0MDIzNDc4OD5dIGNvbW1vbi9zb2Z0aXJxLmMjX19kb19zb2Z0aXJx
KzB4MS8weGJkDQooWEVOKSBbICAxMDMuNjM3Mzc1XSBSRkxBR1M6IDAwMDAwMDAwMDAwMDAyMDIg
ICBDT05URVhUOiBoeXBlcnZpc29yDQooWEVOKSBbICAxMDMuNjQ5MzM1XSByYXg6IDAwMDAwMDAw
MDAwMDAyNDYgICByYng6IDAwMDAwMDAwMDAwMDAwMGEgICByY3g6IGZmZmY4MzA3Y2ZkNTE1NDAN
CihYRU4pIFsgIDEwMy42NjUyODNdIHJkeDogZmZmZjgyZDA0MDVkYjAwMCAgIHJzaTogMDAwMDAw
MDAwMDAwMGJmZCAgIHJkaTogMDAwMDAwMDAwMDAwMDAwMA0KKFhFTikgWyAgMTAzLjY4MTIyOV0g
cmJwOiBmZmZmODMwN2NmZDRmZWIwICAgcnNwOiBmZmZmODMwN2NmZDRmZWEwICAgcjg6ICAwMDAw
MDAwMGZmZmZmODMwDQooWEVOKSBbICAxMDMuNjk3MTc2XSByOTogIGZmZmY4MzA3Y2ZkNTQzOTAg
ICByMTA6IDAwMDAwMDAwZmZmZmZmZmYgICByMTE6IGZmZmY4MmQwNDAzNGM5OGQNCihYRU4pIFsg
IDEwMy43MTMxMjNdIHIxMjogMDAwMDAwMDAwMDAwN2ZmZiAgIHIxMzogZmZmZjgyZDA0MDVkYjAw
MCAgIHIxNDogZmZmZjgyZDA0MDVkNDIzMA0KKFhFTikgWyAgMTAzLjcyOTA3MF0gcjE1OiBmZmZm
ODJkMDQwNGI4NzYwICAgY3IwOiAwMDAwMDAwMDgwMDUwMDNiICAgY3I0OiAwMDAwMDAwMDAwMzUw
NmUwDQooWEVOKSBbICAxMDMuNzQ1MDE3XSBjcjM6IDAwMDAwMDAwYzZhYzgwMDAgICBjcjI6IDAw
MDAwMDAwMDAwMDAwMDANCihYRU4pIFsgIDEwMy43NTY4MDNdIGZzYjogMDAwMDAwMDAwMDAwMDAw
MCAgIGdzYjogMDAwMDAwMDAwMDAwMDAwMCAgIGdzczogMDAwMDAwMDAwMDAwMDAwMA0KKFhFTikg
WyAgMTAzLjc3Mjc1MV0gZHM6IDAwMDAgICBlczogMDAwMCAgIGZzOiAwMDAwICAgZ3M6IDAwMDAg
ICBzczogMDAwMCAgIGNzOiBlMDA4DQooWEVOKSBbICAxMDMuNzg3NjU4XSBYZW4gY29kZSBhcm91
bmQgPGZmZmY4MmQwNDAyMzQ3ODg+IChjb21tb24vc29mdGlycS5jI19fZG9fc29mdGlycSsweDEv
MHhiZCk6DQooWEVOKSBbICAxMDMuODA0ODE3XSAgMDIgMDAgZTggY2YgZmUgZmYgZmYgNTUgPDQ4
PiA4OSBlNSA0MSA1NyA0MSA1NiA0MSA1NSA0MSA1NCA1MyA0OSA4OSBmYyA0OQ0KKFhFTikgWyAg
MTAzLjgyMTYzMV0gWGVuIHN0YWNrIHRyYWNlIGZyb20gcnNwPWZmZmY4MzA3Y2ZkNGZlYTA6DQoo
WEVOKSBbICAxMDMuODMyODk3XSAgICBmZmZmODMwN2NmZDRmZWIwIGZmZmY4MmQwNDAyMzQ4YWQg
ZmZmZjgzMDdjZmQ0ZmVlOCBmZmZmODJkMDQwMzIyNWFmDQooWEVOKSBbICAxMDMuODQ5MDE3XSAg
ICBmZmZmODJkMDQwMzIyNTFkIGZmZmY4MzA3Y2ZkNTUwMDAgMDAwMDAwMDAwMDAwMDAwMCAwMDAw
MDAwMDAwMDAwMDAxDQooWEVOKSBbICAxMDMuODY1MTM3XSAgICBmZmZmODJkMDQwNGI4NzYwIGZm
ZmY4MzA3Y2ZkNGZkZTggZmZmZjgyZDA0MDMyNTUzOSA1MjM1MTBjZmYzNzhlNTg2DQooWEVOKSBb
ICAxMDMuODgxMjU2XSAgICA0NTQ2ODgzNDQ3YzkyNzBjIDRjZGVmOGEzMmNjN2I0Y2EgNjg5MzA1
NTMxMzE5MDNjMSA5OGFlZTA5MWQ0NTg2NTM3DQooWEVOKSBbICAxMDMuODk3Mzc4XSAgICBhZmVj
MGU3MWUyNjg3NzI2IGUzZTI5MDBhOTlmNmQzMzAgMDI4MmNjZTllNzYyZDE1MyA3YmI2ZTQ5ZmFj
MTlkZTRmDQooWEVOKSBbICAxMDMuOTEzNDk4XSAgICAxNTAwZGYwM2MxNjkxNzk4IDM2NDJkOWU4
NTc4N2YzODUgZjU0MWFlOTQ0MjExMGRkNCA1NGM4ODQ3MGFkYTFhMDBlDQooWEVOKSBbICAxMDMu
OTI5NjE3XSAgICA3ZjQ3OTg4Y2NmMGMyNTU4IGVkMzljN2M4ZmQwNzQxMGYgNjVjOTVjODhiYmI3
ODc0OSA0NDFhMzA5YzFlODc0NGRkDQooWEVOKSBbICAxMDMuOTQ1NzM3XSAgICA2ZGQ1ZTJjMjk0
ZGViN2E3IDQzMDcwZDg0MzYwYzRhOGEgZGY4YWEwOTIxNDZhMjc0ZCA3ZjllYTAwMWFhNDA4N2Jj
DQooWEVOKSBbICAxMDMuOTYxODU5XSAgICAxY2I0Mzg5ZDhmYTQwMzVkIGQ4NjBjOTAwNTE0ZGIz
ODkgMjkwMTI4ZmE2YzU5NjNhNiA4NDkyYmI5YmI4ZWQ2YmYyDQooWEVOKSBbICAxMDMuOTc3OTc5
XSAgICAwMDAwZTAxMDAwMDAwMDBhIGZmZmY4MzA3Y2ZkNTUwMDAgMDAwMDAwMzc4Zjc3ZDAwMCAw
MDAwMDAwMDAwMzUwNmUwDQooWEVOKSBbICAxMDMuOTk0MDk5XSAgICAwMDAwMDAwMDAwMDAwMDAw
IDAwMDAwMDAwMDAwMDAwMDAgMDAwMDAwMDIwMDAwMDAwMCBhMzAwMGMxMDAwMDAwMDAyDQooWEVO
KSBbICAxMDQuMDEwMjE3XSBYZW4gY2FsbCB0cmFjZToNCihYRU4pIFsgIDEwNC4wMTY4MDZdICAg
IFs8ZmZmZjgyZDA0MDIzNDc4OD5dIFIgY29tbW9uL3NvZnRpcnEuYyNfX2RvX3NvZnRpcnErMHgx
LzB4YmQNCihYRU4pIFsgIDEwNC4wMzE4ODRdICAgIFs8ZmZmZjgyZDA0MDMyMjVhZj5dIEYgYXJj
aC94ODYvZG9tYWluLmMjaWRsZV9sb29wKzB4OTIvMHhlYg0KKFhFTikgWyAgMTA0LjA0Njc5MV0g
ICAgWzxmZmZmODJkMDQwMzI1NTM5Pl0gRiBjb250aW51ZV9ydW5uaW5nKzB4NWIvMHg1ZA0KKFhF
TikgWyAgMTA0LjA1OTc5MV0NCihYRU4pIFsgIDEwNC4wNjM3NzddICoqKiBEdW1waW5nIENQVTEx
IGhvc3Qgc3RhdGU6ICoqKg0KKFhFTikgWyAgMTA0LjA3MzQ4NV0gLS0tLVsgWGVuLTQuMjEtdW5z
dGFibGUgIHg4Nl82NCAgZGVidWc9eSAgVGFpbnRlZDogICBDICAgIF0tLS0tDQooWEVOKSBbICAx
MDQuMDg4MzkzXSBDUFU6ICAgIDExDQooWEVOKSBbICAxMDQuMDk0MTExXSBSSVA6ICAgIGUwMDg6
WzxmZmZmODJkMDQwMjg1MDdmPl0gYXJjaC94ODYvYWNwaS9jcHVfaWRsZS5jI2FjcGlfaWRsZV9k
b19lbnRyeSsweDExZS8weDEzNQ0KKFhFTikgWyAgMTA0LjExMzUyNV0gUkZMQUdTOiAwMDAwMDAw
MDAwMDAwMjQ2ICAgQ09OVEVYVDogaHlwZXJ2aXNvcg0KKFhFTikgWyAgMTA0LjEyNTQ4N10gcmF4
OiBmZmZmODMwN2NmZDM3ZTQ4ICAgcmJ4OiBmZmZmODMwN2NmZDNjMDg4ICAgcmN4OiAwMDAwMDAw
MDAwMDAwMDAxDQooWEVOKSBbICAxMDQuMTQxNDMyXSByZHg6IDAwMDAwMDAwMDAwMDAwMDAgICBy
c2k6IGZmZmY4MzA3Y2ZkMzdlZjggICByZGk6IDAwMDAwMDAwMDAwMDAwNDgNCihYRU4pIFsgIDEw
NC4xNTczNzldIHJicDogZmZmZjgzMDdjZmQzN2U0OCAgIHJzcDogZmZmZjgzMDdjZmQzN2U0OCAg
IHI4OiAgMDAwMDAwMDBmZmZmZmYwMQ0KKFhFTikgWyAgMTA0LjE3MzMyNV0gcjk6ICBmZmZmODMw
N2NmZDU0YzgwICAgcjEwOiAwMDAwMDAwMGZmZmZmZmZmICAgcjExOiBmZmZmODJkMDQwMzRjOThk
DQooWEVOKSBbICAxMDQuMTg5Mjc0XSByMTI6IGZmZmY4MzA3Y2ZkM2MwMTAgICByMTM6IDAwMDAw
MDAwMDAwMDAwMGIgICByMTQ6IDAwMDAwMDE4MWU2YWU1NjkNCihYRU4pIFsgIDEwNC4yMDUyMTld
IHIxNTogZmZmZjgyZDA0MDRiODc2MCAgIGNyMDogMDAwMDAwMDA4MDA1MDAzYiAgIGNyNDogMDAw
MDAwMDAwMDM1MDZlMA0KKFhFTikgWyAgMTA0LjIyMTE2N10gY3IzOiAwMDAwMDAwMGM2YWM4MDAw
ICAgY3IyOiAwMDAwMDAwMDAwMDAwMDAwDQooWEVOKSBbICAxMDQuMjMyOTUzXSBmc2I6IDAwMDAw
MDAwMDAwMDAwMDAgICBnc2I6IDAwMDAwMDAwMDAwMDAwMDAgICBnc3M6IDAwMDAwMDAwMDAwMDAw
MDANCihYRU4pIFsgIDEwNC4yNDg5MDBdIGRzOiAwMDAwICAgZXM6IDAwMDAgICBmczogMDAwMCAg
IGdzOiAwMDAwICAgc3M6IDAwMDAgICBjczogZTAwOA0KKFhFTikgWyAgMTA0LjI2MzgwOF0gWGVu
IGNvZGUgYXJvdW5kIDxmZmZmODJkMDQwMjg1MDdmPiAoYXJjaC94ODYvYWNwaS9jcHVfaWRsZS5j
I2FjcGlfaWRsZV9kb19lbnRyeSsweDExZS8weDEzNSk6DQooWEVOKSBbICAxMDQuMjgzOTEzXSAg
MDAgMDAgZjMgMGYgYWUgZTkgZmIgZjQgPDhiPiA4NiBmYyAwMCAwMCAwMCA4MCBhNiAwNCAwMSAw
MCAwMCBmZSA4OSBmOSA2Ng0KKFhFTikgWyAgMTA0LjMwMDcyOF0gWGVuIHN0YWNrIHRyYWNlIGZy
b20gcnNwPWZmZmY4MzA3Y2ZkMzdlNDg6DQooWEVOKSBbICAxMDQuMzExOTkyXSAgICBmZmZmODMw
N2NmZDM3ZWIwIGZmZmY4MmQwNDAyODU2Y2IgZmZmZjgyZDA0MDM0ZTc0ZSBmZmZmODJkMDQwNWRi
NTgwDQooWEVOKSBbICAxMDQuMzI4MTE1XSAgICBmZmZmODMwN2NmZDM3ZWEwIDAwMDAwMDAwMDAw
MDAwMDAgMDAwMDAwMDAwMDAwMDAwMCAwMDAwMDAwMDAwMDAwMDAwDQooWEVOKSBbICAxMDQuMzQ0
MjM1XSAgICAwMDAwMDAwMDAwMDAwMDBiIDAwMDAwMDAwMDAwMDdmZmYgZmZmZjgyZDA0MDVkYjAw
MCBmZmZmODJkMDQwNWQ0MjMwDQooWEVOKSBbICAxMDQuMzYwMzU2XSAgICBmZmZmODJkMDQwNGI4
NzYwIGZmZmY4MzA3Y2ZkMzdlZTggZmZmZjgyZDA0MDMyMjYwNiBmZmZmODJkMDQwMzIyNTFkDQoo
WEVOKSBbICAxMDQuMzc2NDc0XSAgICBmZmZmODMwN2NmZDNmMDAwIDAwMDAwMDAwMDAwMDAwMDAg
MDAwMDAwMDAwMDAwMDAwMSBmZmZmODJkMDQwNGI4NzYwDQooWEVOKSBbICAxMDQuMzkyNTk0XSAg
ICBmZmZmODMwN2NmZDM3ZGU4IGZmZmY4MmQwNDAzMjU1MzkgOTM3MTg3NjM4YjNhZGY3NyAzM2I2
YmIxMzZjMGIyNTNmDQooWEVOKSBbICAxMDQuNDA4NzEzXSAgICBkY2Y0ZjJhZmY3YWUyYjU3IDU5
MzBkOTVjY2E1MGYzMmUgZTBiYmQ2NmYxMzYzYWEyOSA1NjYyMDA5NTU0ZTM4ZGY1DQooWEVOKSBb
ICAxMDQuNDI0ODM0XSAgICA2NDE2MGY2ZWUyNTczZjZkIDcwYjBjNGRjYTk4NWZiNjAgNDU0NzJh
YzJjMTk1Zjk2ZCAwNmQwMjY0MmI5Nzg2MDEzDQooWEVOKSBbICAxMDQuNDQwOTU0XSAgICAxMjhk
ZmNiYzlmMzEyODQzIDM5YjQ1NWVlM2EyOGQxNjIgZWIxNThjYTk5OTQxMGNkYSAzMTY4MGRjZDAw
ZWNmODkzDQooWEVOKSBbICAxMDQuNDU3MDc1XSAgICA1NjgyNzhlM2U1ZGMzMTMwIGUyMTgxOTMz
ZWE4ZWIxZWEgMDI3NGJhYzI0NDI3MWZkZiAzMWFmNGNkNDdiOWQxNjA5DQooWEVOKSBbICAxMDQu
NDczMTk0XSAgICA1NDI0NWE5OWYxZjQ3Y2FlIDJjNmQ5MjZkOTI5NDU1N2IgN2ZhYTViYjM5OWMz
N2RkNyA1YTE5ZDkwMjExMTE0ZWQ5DQooWEVOKSBbICAxMDQuNDg5MzE1XSAgICBiM2U1MjIxMjRm
NjM1Mzk4IGQyOGIxYzUxNjA3ZDc0ODEgYTExNzA1MjY5NmE0NTVjOSAwMDAwZTAxMDAwMDAwMDBi
DQooWEVOKSBbICAxMDQuNTA1NDM0XSAgICBmZmZmODMwN2NmZDNmMDAwIDAwMDAwMDM3OGY3NmQw
MDAgMDAwMDAwMDAwMDM1MDZlMCAwMDAwMDAwMDAwMDAwMDAwDQooWEVOKSBbICAxMDQuNTIxNTU2
XSAgICAwMDAwMDAwMDAwMDAwMDAwIDAwMDAwMDAyMDAwMDAwMDAgOWUwMGNmMTEwMDAwMDAwMg0K
KFhFTikgWyAgMTA0LjUzNDczMF0gWGVuIGNhbGwgdHJhY2U6DQooWEVOKSBbICAxMDQuNTQxMzE2
XSAgICBbPGZmZmY4MmQwNDAyODUwN2Y+XSBSIGFyY2gveDg2L2FjcGkvY3B1X2lkbGUuYyNhY3Bp
X2lkbGVfZG9fZW50cnkrMHgxMWUvMHgxMzUNCihYRU4pIFsgIDEwNC41NTkzNDRdICAgIFs8ZmZm
ZjgyZDA0MDI4NTZjYj5dIEYgYXJjaC94ODYvYWNwaS9jcHVfaWRsZS5jI2FjcGlfcHJvY2Vzc29y
X2lkbGUrMHgzZjAvMHg1Y2UNCihYRU4pIFsgIDEwNC41Nzc1NDNdICAgIFs8ZmZmZjgyZDA0MDMy
MjYwNj5dIEYgYXJjaC94ODYvZG9tYWluLmMjaWRsZV9sb29wKzB4ZTkvMHhlYg0KKFhFTikgWyAg
MTA0LjU5MjQ1MF0gICAgWzxmZmZmODJkMDQwMzI1NTM5Pl0gRiBjb250aW51ZV9ydW5uaW5nKzB4
NWIvMHg1ZA0KKFhFTikgWyAgMTA0LjYwNTQ0OV0NCihYRU4pIFsgIDEwNC42MDk0MzRdICoqKiBE
dW1waW5nIENQVTEyIGhvc3Qgc3RhdGU6ICoqKg0KKFhFTikgWyAgMTA0LjYxOTE0M10gLS0tLVsg
WGVuLTQuMjEtdW5zdGFibGUgIHg4Nl82NCAgZGVidWc9eSAgVGFpbnRlZDogICBDICAgIF0tLS0t
DQooWEVOKSBbICAxMDQuNjM0MDQ5XSBDUFU6ICAgIDEyDQooWEVOKSBbICAxMDQuNjM5NzY4XSBS
SVA6ICAgIGUwMDg6WzxmZmZmODJkMDQwMjM0Nzg4Pl0gY29tbW9uL3NvZnRpcnEuYyNfX2RvX3Nv
ZnRpcnErMHgxLzB4YmQNCihYRU4pIFsgIDEwNC42NTYyMzVdIFJGTEFHUzogMDAwMDAwMDAwMDAw
MDIwMiAgIENPTlRFWFQ6IGh5cGVydmlzb3INCihYRU4pIFsgIDEwNC42NjgxOTVdIHJheDogMDAw
MDAwMDAwMDAwMDI0NiAgIHJieDogMDAwMDAwMDAwMDAwMDAwYyAgIHJjeDogZmZmZjgzMDdjZmQy
ZDU0MA0KKFhFTikgWyAgMTA0LjY4NDE0NF0gcmR4OiBmZmZmODJkMDQwNWRiMDAwICAgcnNpOiAw
MDAwMDAwMDAwMDAwYmZkICAgcmRpOiAwMDAwMDAwMDAwMDAwMDAwDQooWEVOKSBbICAxMDQuNzAw
MDg4XSByYnA6IGZmZmY4MzA3Y2ZkMjdlYjAgICByc3A6IGZmZmY4MzA3Y2ZkMjdlYTAgICByODog
IDAwMDAwMDAwZmZmZmY4MzANCihYRU4pIFsgIDEwNC43MTYwMzddIHI5OiAgZmZmZjgzMDdjZmQz
Yzc3MCAgIHIxMDogMDAwMDAwMDBmZmZmZmZmZiAgIHIxMTogZmZmZjgyZDA0MDM0Yzk4ZA0KKFhF
TikgWyAgMTA0LjczMTk4M10gcjEyOiAwMDAwMDAwMDAwMDA3ZmZmICAgcjEzOiBmZmZmODJkMDQw
NWRiMDAwICAgcjE0OiBmZmZmODJkMDQwNWQ0MjMwDQooWEVOKSBbICAxMDQuNzQ3OTMwXSByMTU6
IGZmZmY4MmQwNDA0Yjg3NjAgICBjcjA6IDAwMDAwMDAwODAwNTAwM2IgICBjcjQ6IDAwMDAwMDAw
MDAzNTA2ZTANCihYRU4pIFsgIDEwNC43NjM4NzddIGNyMzogMDAwMDAwMDBjNmFjODAwMCAgIGNy
MjogMDAwMDAwMDAwMDAwMDAwMA0KKFhFTikgWyAgMTA0Ljc3NTY2M10gZnNiOiAwMDAwMDAwMDAw
MDAwMDAwICAgZ3NiOiAwMDAwMDAwMDAwMDAwMDAwICAgZ3NzOiAwMDAwMDAwMDAwMDAwMDAwDQoo
WEVOKSBbICAxMDQuNzkxNjEwXSBkczogMDAwMCAgIGVzOiAwMDAwICAgZnM6IDAwMDAgICBnczog
MDAwMCAgIHNzOiAwMDAwICAgY3M6IGUwMDgNCihYRU4pIFsgIDEwNC44MDY1MThdIFhlbiBjb2Rl
IGFyb3VuZCA8ZmZmZjgyZDA0MDIzNDc4OD4gKGNvbW1vbi9zb2Z0aXJxLmMjX19kb19zb2Z0aXJx
KzB4MS8weGJkKToNCihYRU4pIFsgIDEwNC44MjM2NzhdICAwMiAwMCBlOCBjZiBmZSBmZiBmZiA1
NSA8NDg+IDg5IGU1IDQxIDU3IDQxIDU2IDQxIDU1IDQxIDU0IDUzIDQ5IDg5IGZjIDQ5DQooWEVO
KSBbICAxMDQuODQwNDkyXSBYZW4gc3RhY2sgdHJhY2UgZnJvbSByc3A9ZmZmZjgzMDdjZmQyN2Vh
MDoNCihYRU4pIFsgIDEwNC44NTE3NTldICAgIGZmZmY4MzA3Y2ZkMjdlYjAgZmZmZjgyZDA0MDIz
NDhhZCBmZmZmODMwN2NmZDI3ZWU4IGZmZmY4MmQwNDAzMjI1YWYNCihYRU4pIFsgIDEwNC44Njc4
NzZdICAgIGZmZmY4MmQwNDAzMjI1MWQgZmZmZjgzMDdjZmQzOTAwMCAwMDAwMDAwMDAwMDAwMDAw
IDAwMDAwMDAwMDAwMDAwMDENCihYRU4pIFsgIDEwNC44ODM5OTddICAgIGZmZmY4MmQwNDA0Yjg3
NjAgZmZmZjgzMDdjZmQyN2RlOCBmZmZmODJkMDQwMzI1NTM5IDg4YTJmMGNhMDc0NDE3NTcNCihY
RU4pIFsgIDEwNC45MDAxMTldICAgIGZmNjQ0YzAyNGQ2MTExNjkgMjU5Y2RjYmY2NDgyZDk1NyAz
ZTMyYjFhOTU3YTI2YWYxIDk0MjIzOTllZTVmZGZmMDMNCihYRU4pIFsgIDEwNC45MTYyMzhdICAg
IGM5MzFkMGM0MzQxYTkyMGIgZmExMGIyZThiZmE1OTVmZCA1YTU3OTY4MmJmNzI4MTQyIGJiZDg1
NzE1MWJjZDExOWMNCihYRU4pIFsgIDEwNC45MzIzNTddICAgIDc4YmQ1MWE0ZGY1MzRkMzQgZTg3
NmI0NjZmODhiMzQ5NSAxODUyODk4MjQ3NzRhOTRlIDc1OGE0MmExNWJhNTY5Y2YNCihYRU4pIFsg
IDEwNC45NDg0NzhdICAgIDJjNzYyNjIxMTE3MDY5YTMgZmU2MTNmZWVlYmFjN2YwMiBmODBhNDU1
NzIwMjc4YTRlIDkzMTQ3NmZhMTk2MmZkMGQNCihYRU4pIFsgIDEwNC45NjQ1OTldICAgIDg4Mzc1
NTMzYTE5NjQ3ZmEgYjQ5NmI4ZGFlYzRiNTk2YSAyNzMzYWIwY2E4ZTYwNWQ1IDgyMjIzM2E4ZTY1
MWYxOGQNCihYRU4pIFsgIDEwNC45ODA3MTddICAgIDc3MDU4ODg5NmM4NGM1ODcgMmUxNzcwNjE3
Y2RmMDVkYiA5NTA3NjRkMjFjYjdlMmViIGExZmQwMjNkYTk4N2RiYTgNCihYRU4pIFsgIDEwNC45
OTY4MzhdICAgIDAwMDBlMDEwMDAwMDAwMGMgZmZmZjgzMDdjZmQzOTAwMCAwMDAwMDAzNzhmNzU5
MDAwIDAwMDAwMDAwMDAzNTA2ZTANCihYRU4pIFsgIDEwNS4wMTI5NTddICAgIDAwMDAwMDAwMDAw
MDAwMDAgMDAwMDAwMDAwMDAwMDAwMCAwMDAwMDAwMjAwMDAwMDAwIDY0MDBiMzEwMDAwMDAwMDIN
CihYRU4pIFsgIDEwNS4wMjkwNzhdIFhlbiBjYWxsIHRyYWNlOg0KKFhFTikgWyAgMTA1LjAzNTY2
Nl0gICAgWzxmZmZmODJkMDQwMjM0Nzg4Pl0gUiBjb21tb24vc29mdGlycS5jI19fZG9fc29mdGly
cSsweDEvMHhiZA0KKFhFTikgWyAgMTA1LjA1MDc0Nl0gICAgWzxmZmZmODJkMDQwMzIyNWFmPl0g
RiBhcmNoL3g4Ni9kb21haW4uYyNpZGxlX2xvb3ArMHg5Mi8weGViDQooWEVOKSBbICAxMDUuMDY1
NjU0XSAgICBbPGZmZmY4MmQwNDAzMjU1Mzk+XSBGIGNvbnRpbnVlX3J1bm5pbmcrMHg1Yi8weDVk
DQooWEVOKSBbICAxMDUuMDc4NjUzXQ0KKFhFTikgWyAgMTA1LjA4MjY0MF0gKioqIER1bXBpbmcg
Q1BVMTMgaG9zdCBzdGF0ZTogKioqDQooWEVOKSBbICAxMDUuMDkyMzQ3XSAtLS0tWyBYZW4tNC4y
MS11bnN0YWJsZSAgeDg2XzY0ICBkZWJ1Zz15ICBUYWludGVkOiAgIEMgICAgXS0tLS0NCihYRU4p
IFsgIDEwNS4xMDcyNTRdIENQVTogICAgMTMNCihYRU4pIFsgIDEwNS4xMTI5NzJdIFJJUDogICAg
ZTAwODpbPGZmZmY4MmQwNDAyODUwN2Y+XSBhcmNoL3g4Ni9hY3BpL2NwdV9pZGxlLmMjYWNwaV9p
ZGxlX2RvX2VudHJ5KzB4MTFlLzB4MTM1DQooWEVOKSBbICAxMDUuMTMyMzg1XSBSRkxBR1M6IDAw
MDAwMDAwMDAwMDAyNDYgICBDT05URVhUOiBoeXBlcnZpc29yDQooWEVOKSBbICAxMDUuMTQ0MzQ2
XSByYXg6IGZmZmY4MzA3Y2ZkMTdlNDggICByYng6IGZmZmY4MzA3Y2ZkMWI2MTggICByY3g6IDAw
MDAwMDAwMDAwMDAwMDENCihYRU4pIFsgIDEwNS4xNjAyOTJdIHJkeDogMDAwMDAwMDAwMDAwMDAw
MCAgIHJzaTogZmZmZjgzMDdjZmQxN2VmOCAgIHJkaTogMDAwMDAwMDAwMDAwMDA0OA0KKFhFTikg
WyAgMTA1LjE3NjIzOV0gcmJwOiBmZmZmODMwN2NmZDE3ZTQ4ICAgcnNwOiBmZmZmODMwN2NmZDE3
ZTQ4ICAgcjg6ICAwMDAwMDAwMGZmZmZmZjAxDQooWEVOKSBbICAxMDUuMTkyMTg3XSByOTogIGZm
ZmY4MzA3Y2ZkMWIzOTAgICByMTA6IDAwMDAwMDAwZmZmZmZmZmYgICByMTE6IGZmZmY4MmQwNDAz
NGM5OGQNCihYRU4pIFsgIDEwNS4yMDgxMzRdIHIxMjogZmZmZjgzMDdjZmQxYjVhMCAgIHIxMzog
MDAwMDAwMDAwMDAwMDAwZCAgIHIxNDogMDAwMDAwMTg1YjI1ODIzYg0KKFhFTikgWyAgMTA1LjIy
NDA4MV0gcjE1OiBmZmZmODJkMDQwNGI4NzYwICAgY3IwOiAwMDAwMDAwMDgwMDUwMDNiICAgY3I0
OiAwMDAwMDAwMDAwMzUwNmUwDQooWEVOKSBbICAxMDUuMjQwMDI3XSBjcjM6IDAwMDAwMDAwYzZh
YzgwMDAgICBjcjI6IDAwMDAwMDAwMDAwMDAwMDANCihYRU4pIFsgIDEwNS4yNTE4MTVdIGZzYjog
MDAwMDAwMDAwMDAwMDAwMCAgIGdzYjogMDAwMDAwMDAwMDAwMDAwMCAgIGdzczogMDAwMDAwMDAw
MDAwMDAwMA0KKFhFTikgWyAgMTA1LjI2Nzc2MF0gZHM6IDAwMDAgICBlczogMDAwMCAgIGZzOiAw
MDAwICAgZ3M6IDAwMDAgICBzczogMDAwMCAgIGNzOiBlMDA4DQooWEVOKSBbICAxMDUuMjgyNjY3
XSBYZW4gY29kZSBhcm91bmQgPGZmZmY4MmQwNDAyODUwN2Y+IChhcmNoL3g4Ni9hY3BpL2NwdV9p
ZGxlLmMjYWNwaV9pZGxlX2RvX2VudHJ5KzB4MTFlLzB4MTM1KToNCihYRU4pIFsgIDEwNS4zMDI3
NzNdICAwMCAwMCBmMyAwZiBhZSBlOSBmYiBmNCA8OGI+IDg2IGZjIDAwIDAwIDAwIDgwIGE2IDA0
IDAxIDAwIDAwIGZlIDg5IGY5IDY2DQooWEVOKSBbICAxMDUuMzE5NTg2XSBYZW4gc3RhY2sgdHJh
Y2UgZnJvbSByc3A9ZmZmZjgzMDdjZmQxN2U0ODoNCihYRU4pIFsgIDEwNS4zMzA4NTVdICAgIGZm
ZmY4MzA3Y2ZkMTdlYjAgZmZmZjgyZDA0MDI4NTZjYiBmZmZmODJkMDQwMzRlNzRlIGZmZmY4MmQw
NDA1ZGI2ODANCihYRU4pIFsgIDEwNS4zNDY5NzZdICAgIGZmZmY4MzA3Y2ZkMTdlYTAgMDAwMDAw
MDAwMDAwMDAwMCAwMDAwMDAwMDAwMDAwMDAwIDAwMDAwMDAwMDAwMDAwMDANCihYRU4pIFsgIDEw
NS4zNjMwOTVdICAgIDAwMDAwMDAwMDAwMDAwMGQgMDAwMDAwMDAwMDAwN2ZmZiBmZmZmODJkMDQw
NWRiMDAwIGZmZmY4MmQwNDA1ZDQyMzANCihYRU4pIFsgIDEwNS4zNzkyMTZdICAgIGZmZmY4MmQw
NDA0Yjg3NjAgZmZmZjgzMDdjZmQxN2VlOCBmZmZmODJkMDQwMzIyNjA2IGZmZmY4MmQwNDAzMjI1
MWQNCihYRU4pIFsgIDEwNS4zOTUzMzNdICAgIGZmZmY4MzA3Y2ZkMjgwMDAgMDAwMDAwMDAwMDAw
MDAwMCAwMDAwMDAwMDAwMDAwMDAxIGZmZmY4MmQwNDA0Yjg3NjANCihYRU4pIFsgIDEwNS40MTE0
NTRdICAgIGZmZmY4MzA3Y2ZkMTdkZTggZmZmZjgyZDA0MDMyNTUzOSBmNzhjZGYzZDViYTk0MTUx
IGNmNzZkYzQxNDlmMTAyODQNCihYRU4pIFsgIDEwNS40Mjc1NzRdICAgIGMwMzQ2YWViYTMzN2Q0
YzEgOTAyZmQ3MjQ5YTJhMTI2OCAxZWFhMzViOWE3M2RlZGY5IGVhNDY2MzU4NmY4YTgzN2MNCihY
RU4pIFsgIDEwNS40NDM2OTVdICAgIDdhNWY4MzI5NTBhMmYwM2IgYTcwNGE1YjcxMmMyYTk5NCBk
YTBjODk2OTJjODkzMjk2IDYyYWUzZTc1YTcxYmFhNDMNCihYRU4pIFsgIDEwNS40NTk4MTRdICAg
IDIyN2VjYTU3Njk4ZDE4MzkgMTg4YjQyMzFkMjQ5MWVhMSBhNzQxYjAzNDhlMjllMWZkIGY2NzU2
YmQ3OWI3ZWM2MzINCihYRU4pIFsgIDEwNS40NzU5MzVdICAgIDMxOTQ0Y2IzM2IyMTQ3MjQgZjIz
Y2E0YTVkYzY5NzNlNyBhZjQ4NjY2OWI4ODE4ZTViIGM4MDg1MWY1MWRkYzM2ZjENCihYRU4pIFsg
IDEwNS40OTIwNTZdICAgIDMxZjkxYWUxNTMxODkxMzMgMzAxZDNjMzUwYmZmNzFiMCBlMWExZWFk
M2RjZTc4YzEwIGZjMWNhNzU5N2I1NjIzYmQNCihYRU4pIFsgIDEwNS41MDgxNzZdICAgIDBlODUz
YWUwNzVhNjdiZGYgZmI3YmU0NTI1ZWU2MzAwYSA5MmU4NDVjZDA4NDljYmEyIDAwMDBlMDEwMDAw
MDAwMGQNCihYRU4pIFsgIDEwNS41MjQyOTddICAgIGZmZmY4MzA3Y2ZkMjgwMDAgMDAwMDAwMzc4
Zjc0OTAwMCAwMDAwMDAwMDAwMzUwNmUwIDAwMDAwMDAwMDAwMDAwMDANCihYRU4pIFsgIDEwNS41
NDA0MTZdICAgIDAwMDAwMDAwMDAwMDAwMDAgMDAwMDAwMDIwMDAwMDAwMCBkMTAwYWYxMTAwMDAw
MDAyDQooWEVOKSBbICAxMDUuNTUzNTg4XSBYZW4gY2FsbCB0cmFjZToNCihYRU4pIFsgIDEwNS41
NjAxNzVdICAgIFs8ZmZmZjgyZDA0MDI4NTA3Zj5dIFIgYXJjaC94ODYvYWNwaS9jcHVfaWRsZS5j
I2FjcGlfaWRsZV9kb19lbnRyeSsweDExZS8weDEzNQ0KKFhFTikgWyAgMTA1LjU3ODIwNF0gICAg
WzxmZmZmODJkMDQwMjg1NmNiPl0gRiBhcmNoL3g4Ni9hY3BpL2NwdV9pZGxlLmMjYWNwaV9wcm9j
ZXNzb3JfaWRsZSsweDNmMC8weDVjZQ0KKFhFTikgWyAgMTA1LjU5NjQwM10gICAgWzxmZmZmODJk
MDQwMzIyNjA2Pl0gRiBhcmNoL3g4Ni9kb21haW4uYyNpZGxlX2xvb3ArMHhlOS8weGViDQooWEVO
KSBbICAxMDUuNjExMzEwXSAgICBbPGZmZmY4MmQwNDAzMjU1Mzk+XSBGIGNvbnRpbnVlX3J1bm5p
bmcrMHg1Yi8weDVkDQooWEVOKSBbICAxMDUuNjI0MzA4XQ0KKFhFTikgWyAgMTA1LjYyODI5Nl0g
KioqIER1bXBpbmcgQ1BVMTQgaG9zdCBzdGF0ZTogKioqDQooWEVOKSBbICAxMDUuNjM4MDA1XSAt
LS0tWyBYZW4tNC4yMS11bnN0YWJsZSAgeDg2XzY0ICBkZWJ1Zz15ICBUYWludGVkOiAgIEMgICAg
XS0tLS0NCihYRU4pIFsgIDEwNS42NTI5MTBdIENQVTogICAgMTQNCihYRU4pIFsgIDEwNS42NTg2
MzFdIFJJUDogICAgZTAwODpbPGZmZmY4MmQwNDAzNGQ3MjI+XSBnZXRfc190aW1lX2ZpeGVkKzB4
MzcvMHg0NQ0KKFhFTikgWyAgMTA1LjY3MzAxOF0gUkZMQUdTOiAwMDAwMDAwMDAwMDAwMjQ2ICAg
Q09OVEVYVDogaHlwZXJ2aXNvcg0KKFhFTikgWyAgMTA1LjY4NDk3N10gcmF4OiAwMDAwMDAwMDkw
Njk3MTk1ICAgcmJ4OiBmZmZmODMwN2NmZDBhMmEwICAgcmN4OiAwMDAwMDAwMDAwMDAwMDAwDQoo
WEVOKSBbICAxMDUuNzAwOTI0XSByZHg6IDAwMDAwMDAwMDAwMDAwN2UgICByc2k6IDAwMDAwMDAw
MDAwMDAwMTAgICByZGk6IDAwMDAwMDAwMDAwMDAwMDANCihYRU4pIFsgIDEwNS43MTY4NzFdIHJi
cDogZmZmZjgzMDdjZmQwN2UxMCAgIHJzcDogZmZmZjgzMDdjZmQwN2UwOCAgIHI4OiAgZmZmZjgy
ZDA0MDRiNWUwMA0KKFhFTikgWyAgMTA1LjczMjgxNl0gcjk6ICAwMDAwMDAwMDAwMDAwMDAxICAg
cjEwOiAwMDAwMDAwMGZmZmZmZmZmICAgcjExOiBmZmZmODJkMDQwMzRjOThkDQooWEVOKSBbICAx
MDUuNzQ4NzY1XSByMTI6IGZmZmY4MzA3Y2I3ZmYwMTAgICByMTM6IDAwMDAwMDAwMDAwMDAwMDAg
ICByMTQ6IGZmZmY4MmQwNDA1ZDQyMzANCihYRU4pIFsgIDEwNS43NjQ3MTJdIHIxNTogZmZmZjgy
ZDA0MDRiODc2MCAgIGNyMDogMDAwMDAwMDA4MDA1MDAzYiAgIGNyNDogMDAwMDAwMDAwMDM1MDZl
MA0KKFhFTikgWyAgMTA1Ljc4MDY1OV0gY3IzOiAwMDAwMDAwMGM2YWM4MDAwICAgY3IyOiAwMDAw
MDAwMDAwMDAwMDAwDQooWEVOKSBbICAxMDUuNzkyNDQ0XSBmc2I6IDAwMDAwMDAwMDAwMDAwMDAg
ICBnc2I6IDAwMDAwMDAwMDAwMDAwMDAgICBnc3M6IDAwMDAwMDAwMDAwMDAwMDANCihYRU4pIFsg
IDEwNS44MDgzOTJdIGRzOiAwMDAwICAgZXM6IDAwMDAgICBmczogMDAwMCAgIGdzOiAwMDAwICAg
c3M6IDAwMDAgICBjczogZTAwOA0KKFhFTikgWyAgMTA1LjgyMzI5OV0gWGVuIGNvZGUgYXJvdW5k
IDxmZmZmODJkMDQwMzRkNzIyPiAoZ2V0X3NfdGltZV9maXhlZCsweDM3LzB4NDUpOg0KKFhFTikg
WyAgMTA1LjgzODM3OV0gIDhiIDVkIGY4IGM5IGMzIDBmIDAxIGY5IDw2Nj4gOTAgNDggYzEgZTIg
MjAgNDggODkgZDcgNDggMDkgYzcgZWIgZDkgNTUgNDgNCihYRU4pIFsgIDEwNS44NTUxOTFdIFhl
biBzdGFjayB0cmFjZSBmcm9tIHJzcD1mZmZmODMwN2NmZDA3ZTA4Og0KKFhFTikgWyAgMTA1Ljg2
NjQ1OV0gICAgZmZmZjgzMDdjZmQwOTU0MCBmZmZmODMwN2NmZDA3ZTIwIGZmZmY4MmQwNDAzNGQ5
ZmMgZmZmZjgzMDdjZmQwN2U0OA0KKFhFTikgWyAgMTA1Ljg4MjU3OF0gICAgZmZmZjgyZDA0MDI4
NmFmMiAwMDAwMDAwMDAwMDAwMDBlIGZmZmY4MzA3Y2I3ZmYwMTAgMDAwMDAwMDAwMDAwMDAwZQ0K
KFhFTikgWyAgMTA1Ljg5ODY5OF0gICAgZmZmZjgzMDdjZmQwN2ViMCBmZmZmODJkMDQwMjg1MzUy
IGZmZmY4MmQwNDAzNGU3NGUgZmZmZjgyZDA0MDVkYjcwMA0KKFhFTikgWyAgMTA1LjkxNDgxOF0g
ICAgZmZmZjgzMDdjZmQwN2VhMCAwMDAwMDAwMDAwMDAwMDAwIDAwMDAwMDAwMDAwMDAwMDAgMDAw
MDAwMDAwMDAwMDAwMA0KKFhFTikgWyAgMTA1LjkzMDkzN10gICAgMDAwMDAwMDAwMDAwMDAwZSAw
MDAwMDAwMDAwMDA3ZmZmIGZmZmY4MmQwNDA1ZGIwMDAgZmZmZjgyZDA0MDVkNDIzMA0KKFhFTikg
WyAgMTA1Ljk0NzA1OF0gICAgZmZmZjgyZDA0MDRiODc2MCBmZmZmODMwN2NmZDA3ZWU4IGZmZmY4
MmQwNDAzMjI2MDYgZmZmZjgyZDA0MDMyMjUxZA0KKFhFTikgWyAgMTA1Ljk2MzE4MF0gICAgZmZm
ZjgzMDdjZmQwZTAwMCAwMDAwMDAwMDAwMDAwMDAwIDAwMDAwMDAwMDAwMDAwMDEgZmZmZjgyZDA0
MDRiODc2MA0KKFhFTikgWyAgMTA1Ljk3OTI5OV0gICAgZmZmZjgzMDdjZmQwN2RlOCBmZmZmODJk
MDQwMzI1NTM5IGI1MWZhZDU5NDZmNjE3ZTcgNzI2MjdmYzUyZmEwNDk1Ng0KKFhFTikgWyAgMTA1
Ljk5NTQyMF0gICAgN2U3NWE3MzU0OGVkMjg0YiBlNTZmMmEwNjRhMjM4ODZjIGYxMmI0ZTA4NGQ2
ODE4ODQgZjJjNWFkZGJkNDE4MTAwNQ0KKFhFTikgWyAgMTA2LjAxMTU0MV0gICAgNDY5YjUwYzE5
Yzc1NDM4MSAyYTQ5NDQwNzVkNTM4MWNlIDM2MDYyNzg4ZTQyYjRkZWUgMmI4NGJlNjllMDlkZDdm
NQ0KKFhFTikgWyAgMTA2LjAyNzY2MF0gICAgZGYzYmJmNjYzMzBhYmY5YiBhYTU3NGI2MjNkMjk2
MTAzIGEwOTY0ZjQyY2ZhNjgzNDMgN2RiNjZmODZkZGQ1MmY4NA0KKFhFTikgWyAgMTA2LjA0Mzc4
MF0gICAgZWIwYzJmMGYxMDc5MWJkMyBiNTZhYWNjNWI4NDlhMTM2IGQzNWU0Y2YxZGFjZjJkNjEg
NTdlYTE1YzZjY2U5NGYwYQ0KKFhFTikgWyAgMTA2LjA1OTkwMV0gICAgYThjNDEyMzczNmU3ZmFl
ZiBlZmMwZjBkODdjZWUzMjUyIDkxMjVjMjNhMDg4MmViZmEgNWVlNTg5Y2ZkNWRkZDdiMg0KKFhF
TikgWyAgMTA2LjA3NjAyMF0gICAgZjI3OGM2MTFiZmI5NzM5YiAxM2JmZjFiNDcxNzZjZTFiIDRi
NDI2YmM4ZmFhMDJjNGYgMDAwMGUwMTAwMDAwMDAwZQ0KKFhFTikgWyAgMTA2LjA5MjEzOV0gICAg
ZmZmZjgzMDdjZmQwZTAwMCAwMDAwMDAzNzhmNzM1MDAwIDAwMDAwMDAwMDAzNTA2ZTAgMDAwMDAw
MDAwMDAwMDAwMA0KKFhFTikgWyAgMTA2LjEwODI2Ml0gICAgMDAwMDAwMDAwMDAwMDAwMCAwMDAw
MDAwMjAwMDAwMDAwIDQxMDA2MTEwMDAwMDAwMDINCihYRU4pIFsgIDEwNi4xMjE0MzJdIFhlbiBj
YWxsIHRyYWNlOg0KKFhFTikgWyAgMTA2LjEyODAyMF0gICAgWzxmZmZmODJkMDQwMzRkNzIyPl0g
UiBnZXRfc190aW1lX2ZpeGVkKzB4MzcvMHg0NQ0KKFhFTikgWyAgMTA2LjE0MTAxOV0gICAgWzxm
ZmZmODJkMDQwMzRkOWZjPl0gRiBnZXRfc190aW1lKzB4ZS8weDEwDQooWEVOKSBbICAxMDYuMTUy
ODA4XSAgICBbPGZmZmY4MmQwNDAyODZhZjI+XSBGIGFyY2gveDg2L2FjcGkvY3B1aWRsZV9tZW51
LmMjbWVudV9zZWxlY3QrMHg0Zi8weDIyMw0KKFhFTikgWyAgMTA2LjE3MDE0MF0gICAgWzxmZmZm
ODJkMDQwMjg1MzUyPl0gRiBhcmNoL3g4Ni9hY3BpL2NwdV9pZGxlLmMjYWNwaV9wcm9jZXNzb3Jf
aWRsZSsweDc3LzB4NWNlDQooWEVOKSBbICAxMDYuMTg4MTY2XSAgICBbPGZmZmY4MmQwNDAzMjI2
MDY+XSBGIGFyY2gveDg2L2RvbWFpbi5jI2lkbGVfbG9vcCsweGU5LzB4ZWINCihYRU4pIFsgIDEw
Ni4yMDMwNzNdICAgIFs8ZmZmZjgyZDA0MDMyNTUzOT5dIEYgY29udGludWVfcnVubmluZysweDVi
LzB4NWQNCihYRU4pIFsgIDEwNi4yMTYwNzVdDQooWEVOKSBbICAxMDYuMjIwMDYwXSAqKiogRHVt
cGluZyBDUFUxNSBob3N0IHN0YXRlOiAqKioNCihYRU4pIFsgIDEwNi4yMjk3NjddIC0tLS1bIFhl
bi00LjIxLXVuc3RhYmxlICB4ODZfNjQgIGRlYnVnPXkgIFRhaW50ZWQ6ICAgQyAgICBdLS0tLQ0K
KFhFTikgWyAgMTA2LjI0NDY3Nl0gQ1BVOiAgICAxNQ0KKFhFTikgWyAgMTA2LjI1MDM5NV0gUklQ
OiAgICBlMDA4Ols8ZmZmZjgyZDA0MDI4NTA3Zj5dIGFyY2gveDg2L2FjcGkvY3B1X2lkbGUuYyNh
Y3BpX2lkbGVfZG9fZW50cnkrMHgxMWUvMHgxMzUNCihYRU4pIFsgIDEwNi4yNjk4MDldIFJGTEFH
UzogMDAwMDAwMDAwMDAwMDI0NiAgIENPTlRFWFQ6IGh5cGVydmlzb3INCihYRU4pIFsgIDEwNi4y
ODE3NjddIHJheDogZmZmZjgzMDdjYjdmN2U0OCAgIHJieDogZmZmZjgzMDdjYjdmZmFjOCAgIHJj
eDogMDAwMDAwMDAwMDAwMDAwMQ0KKFhFTikgWyAgMTA2LjI5NzcxNF0gcmR4OiAwMDAwMDAwMDAw
MDAwMDAwICAgcnNpOiBmZmZmODMwN2NiN2Y3ZWY4ICAgcmRpOiAwMDAwMDAwMDAwMDAwMDQ4DQoo
WEVOKSBbICAxMDYuMzEzNjYyXSByYnA6IGZmZmY4MzA3Y2I3ZjdlNDggICByc3A6IGZmZmY4MzA3
Y2I3ZjdlNDggICByODogIDAwMDAwMDAwZmZmZmZmMDENCihYRU4pIFsgIDEwNi4zMjk2MDddIHI5
OiAgZmZmZjgzMDdjYjdmZjg0MCAgIHIxMDogMDAwMDAwMDBmZmZmZmZmZiAgIHIxMTogZmZmZjgy
ZDA0MDM0Yzk4ZA0KKFhFTikgWyAgMTA2LjM0NTU1Nl0gcjEyOiBmZmZmODMwN2NiN2ZmYTUwICAg
cjEzOiAwMDAwMDAwMDAwMDAwMDBmICAgcjE0OiAwMDAwMDAxODk3ZTAxNzIxDQooWEVOKSBbICAx
MDYuMzYxNTAyXSByMTU6IGZmZmY4MmQwNDA0Yjg3NjAgICBjcjA6IDAwMDAwMDAwODAwNTAwM2Ig
ICBjcjQ6IDAwMDAwMDAwMDAzNTA2ZTANCihYRU4pIFsgIDEwNi4zNzc0NDldIGNyMzogMDAwMDAw
MDBjNmFjODAwMCAgIGNyMjogMDAwMDAwMDAwMDAwMDAwMA0KKFhFTikgWyAgMTA2LjM4OTIzN10g
ZnNiOiAwMDAwMDAwMDAwMDAwMDAwICAgZ3NiOiAwMDAwMDAwMDAwMDAwMDAwICAgZ3NzOiAwMDAw
MDAwMDAwMDAwMDAwDQooWEVOKSBbICAxMDYuNDA1MTgyXSBkczogMDAwMCAgIGVzOiAwMDAwICAg
ZnM6IDAwMDAgICBnczogMDAwMCAgIHNzOiAwMDAwICAgY3M6IGUwMDgNCihYRU4pIFsgIDEwNi40
MjAwOTBdIFhlbiBjb2RlIGFyb3VuZCA8ZmZmZjgyZDA0MDI4NTA3Zj4gKGFyY2gveDg2L2FjcGkv
Y3B1X2lkbGUuYyNhY3BpX2lkbGVfZG9fZW50cnkrMHgxMWUvMHgxMzUpOg0KKFhFTikgWyAgMTA2
LjQ0MDE5NV0gIDAwIDAwIGYzIDBmIGFlIGU5IGZiIGY0IDw4Yj4gODYgZmMgMDAgMDAgMDAgODAg
YTYgMDQgMDEgMDAgMDAgZmUgODkgZjkgNjYNCihYRU4pIFsgIDEwNi40NTcwMDhdIFhlbiBzdGFj
ayB0cmFjZSBmcm9tIHJzcD1mZmZmODMwN2NiN2Y3ZTQ4Og0KKFhFTikgWyAgMTA2LjQ2ODI3N10g
ICAgZmZmZjgzMDdjYjdmN2ViMCBmZmZmODJkMDQwMjg1NmNiIGZmZmY4MmQwNDAzNGU3NGUgZmZm
ZjgyZDA0MDVkYjc4MA0KKFhFTikgWyAgMTA2LjQ4NDM5NV0gICAgZmZmZjgzMDdjYjdmN2VhMCAw
MDAwMDAwMDAwMDAwMDAwIDAwMDAwMDAwMDAwMDAwMDAgMDAwMDAwMDAwMDAwMDAwMA0KKFhFTikg
WyAgMTA2LjUwMDUxN10gICAgMDAwMDAwMDAwMDAwMDAwZiAwMDAwMDAwMDAwMDA3ZmZmIGZmZmY4
MmQwNDA1ZGIwMDAgZmZmZjgyZDA0MDVkNDIzMA0KKFhFTikgWyAgMTA2LjUxNjYzOF0gICAgZmZm
ZjgyZDA0MDRiODc2MCBmZmZmODMwN2NiN2Y3ZWU4IGZmZmY4MmQwNDAzMjI2MDYgZmZmZjgyZDA0
MDMyMjUxZA0KKFhFTikgWyAgMTA2LjUzMjc1Nl0gICAgZmZmZjgzMDdjYjdmYzAwMCAwMDAwMDAw
MDAwMDAwMDAwIDAwMDAwMDAwMDAwMDAwMDEgZmZmZjgyZDA0MDRiODc2MA0KKFhFTikgWyAgMTA2
LjU0ODg3Nl0gICAgZmZmZjgzMDdjYjdmN2RlOCBmZmZmODJkMDQwMzI1NTM5IDc2MWVkYzZmMmI0
NGVkYjkgZDI5ZTRkMGQzNGUzZTM2MA0KKFhFTikgWyAgMTA2LjU2NDk5N10gICAgNWM1N2FmOTk3
YmU4YWRkMSAxMTUzZTdiYTE2ODY4NzE4IDlmNjM1ZTI3MTlhYzlhYjQgYjlmYmMyZjFmYzRkNzlh
OA0KKFhFTikgWyAgMTA2LjU4MTExNl0gICAgY2E1ODA0N2JjMzk5MjFkMSA0ZmRkYzMwNGVkMmNh
M2UzIGJjMTg3YjQ0ODMzYjA5ZmIgZjRkZjYzMGYyNWEzNGFjZA0KKFhFTikgWyAgMTA2LjU5NzIz
OF0gICAgMWFlNDYyNzFlMGYyNjk0NCBjNTc5Y2NmN2QxNzM1NGMzIDg4ZWI5YTY3YjQ5MzFkZGIg
MWUzMzViM2FjMWRmMTkzYw0KKFhFTikgWyAgMTA2LjYxMzM1N10gICAgNzEwNjA2MDZmMmJmMDVi
NCA2ZmQ1OWJmMzg1NWE1Mzk1IDJkMDVhZDhjZWJjY2I4NDMgMWVlMTgwMWYxMzcyOTNiZQ0KKFhF
TikgWyAgMTA2LjYyOTQ3N10gICAgMWE5MGEwNTNiMzc0NGI4NCAzNTQwZDk0ZTlkODc5NDlhIDg4
YTM4NGU3ZTg5MTJlY2EgOTE5NTY2NGRhMzUzNTM4ZQ0KKFhFTikgWyAgMTA2LjY0NTU5OF0gICAg
NTEwZTkxNjY5NjdhNzJjYiBhZGQ5ODMxNmY1NDRjNDY4IDA0ZTVmZjNlN2QwYjYwZDggMDAwMGUw
MTAwMDAwMDAwZg0KKFhFTikgWyAgMTA2LjY2MTcxOF0gICAgZmZmZjgzMDdjYjdmYzAwMCAwMDAw
MDAzNzhiMjI1MDAwIDAwMDAwMDAwMDAzNTA2ZTAgMDAwMDAwMDAwMDAwMDAwMA0KKFhFTikgWyAg
MTA2LjY3NzgzN10gICAgMDAwMDAwMDAwMDAwMDAwMCAwMDAwMDAwMjAwMDAwMDAwIGRkMDBjMDEx
MDAwMDAwMDINCihYRU4pIFsgIDEwNi42OTEwMTFdIFhlbiBjYWxsIHRyYWNlOg0KKFhFTikgWyAg
MTA2LjY5NzU5Nl0gICAgWzxmZmZmODJkMDQwMjg1MDdmPl0gUiBhcmNoL3g4Ni9hY3BpL2NwdV9p
ZGxlLmMjYWNwaV9pZGxlX2RvX2VudHJ5KzB4MTFlLzB4MTM1DQooWEVOKSBbICAxMDYuNzE1NjI0
XSAgICBbPGZmZmY4MmQwNDAyODU2Y2I+XSBGIGFyY2gveDg2L2FjcGkvY3B1X2lkbGUuYyNhY3Bp
X3Byb2Nlc3Nvcl9pZGxlKzB4M2YwLzB4NWNlDQooWEVOKSBbICAxMDYuNzMzODI0XSAgICBbPGZm
ZmY4MmQwNDAzMjI2MDY+XSBGIGFyY2gveDg2L2RvbWFpbi5jI2lkbGVfbG9vcCsweGU5LzB4ZWIN
CihYRU4pIFsgIDEwNi43NDg3MzFdICAgIFs8ZmZmZjgyZDA0MDMyNTUzOT5dIEYgY29udGludWVf
cnVubmluZysweDViLzB4NWQNCihYRU4pIFsgIDEwNi43NjE3MzFdDQooWEVOKSBbICAxMDYuNzY1
NzE5XSBbMDogZHVtcCBEb20wIHJlZ2lzdGVyc10NCihYRU4pIFsgIDEwNi43NzM4NjZdICcwJyBw
cmVzc2VkIC0+IGR1bXBpbmcgRG9tMCdzIHJlZ2lzdGVycw0KKFhFTikgWyAgMTA2Ljc4NDYxMV0g
KioqIER1bXBpbmcgRG9tMCB2Y3B1IzAgc3RhdGU6ICoqKg0KKFhFTikgWyAgMTA2Ljc5NDQ5M10g
UklQOiAgICAwMDEwOls8ZmZmZmZmZmY4MjAzZmQ0Zj5dDQooWEVOKSBbICAxMDYuODA0MTk4XSBS
RkxBR1M6IDAwMDAwMDAwMDAwMDAyMDYgICBDT05URVhUOiBodm0gZ3Vlc3QgKGQwdjApDQooWEVO
KSBbICAxMDYuODE3MjAwXSByYXg6IGZmZmY4ODgxMTUwMDAwMDAgICByYng6IGZmZmZmZmZmODJj
MGM5NDAgICByY3g6IDAwMDAwMDE0ZjMwYzEwNDANCihYRU4pIFsgIDEwNi44MzMxNDZdIHJkeDog
MDAwMDAwMDAwMDAwMDAwMCAgIHJzaTogZmZmZmZmZmY4Mjk4YWVjMSAgIHJkaTogMDAwMDAwMDAw
MDAzN2Y5NA0KKFhFTikgWyAgMTA2Ljg0OTA5Ml0gcmJwOiAwMDAwMDAwMDAwMDAwMDAwICAgcnNw
OiBmZmZmZmZmZjgyYzAzZTg4ICAgcjg6ICAwMDAwMDAwMDAwMDM3Zjk0DQooWEVOKSBbICAxMDYu
ODY1MDQwXSByOTogIDAwMDAwMDE0ZjMwYzEwNDAgICByMTA6IDAwMDAwMDE0ZjMwYzEwNDAgICBy
MTE6IDAwMDAwMDAwMDAwMDAwMDANCihYRU4pIFsgIDEwNi44ODA5ODddIHIxMjogMDAwMDAwMDAw
MDAwMDAwMCAgIHIxMzogMDAwMDAwMDAwMDAwMDAwMCAgIHIxNDogMDAwMDAwMDAwMDAwMDAwMA0K
KFhFTikgWyAgMTA2Ljg5NjkzNF0gcjE1OiAwMDAwMDAwMDAzNTVmNmMwICAgY3IwOiAwMDAwMDAw
MDgwMDUwMDMzICAgY3I0OiAwMDAwMDAwMDAwMzUwZWYwDQooWEVOKSBbICAxMDYuOTEyODgwXSBj
cjM6IDAwMDAwMDAwMzIwNDIwMDAgICBjcjI6IDAwMDAwMDAwMDAwMDAwMDANCihYRU4pIFsgIDEw
Ni45MjQ2NjhdIGZzYjogMDAwMDAwMDAwMDAwMDAwMCAgIGdzYjogZmZmZjg4ODExNTAwMDAwMCAg
IGdzczogMDAwMDAwMDAwMDAwMDAwMA0KKFhFTikgWyAgMTA2Ljk0MDYxNF0gZHM6IDAwMDAgICBl
czogMDAwMCAgIGZzOiAwMDAwICAgZ3M6IDAwMDAgICBzczogMDAxOCAgIGNzOiAwMDEwDQooWEVO
KSBbICAxMDYuOTU1NTIxXSBHdWVzdCBzdGFjayB0cmFjZSBmcm9tIHNwPWZmZmZmZmZmODJjMDNl
ODg6DQooWEVOKSBbICAxMDYuOTY2OTU5XSAgICBmZmZmZmZmZjgyMDQxNjU5IGZmZmZmZmZmODIw
NDE5NDIgZmZmZmZmZmY4MTBmNWRlMyAwMDAwMDAwMDAwMDAwMDAwDQooWEVOKSBbICAxMDYuOTgz
MDgxXSAgICAzMjg1MjllY2E5OThkNDAwIDAwMDAwMDAwMDAwMDAwZWQgMDAwMDAwMDAwMDAwMDAw
MCAwMDAwMDAwMDAwMDAwMDAwDQooWEVOKSBbICAxMDYuOTk5MTk5XSAgICAwMDAwMDAwMDAwMDAw
MDMyIDAwMDAwMDAwMDAwMDAwMDAgZmZmZmZmZmY4MTBmNjAyNCAwMDAwMDAwMDAwMDAwMDAyDQoo
WEVOKSBbICAxMDcuMDE1MzIwXSAgICBmZmZmZmZmZjgyMDQyMDNjIDAwMDAwMDAwMDAwMDAwMDAg
ZmZmZmZmZmY4MzRjYWVhYiBmZmZmZmZmZjgzNWI0MDIwDQooWEVOKSBbICAxMDcuMDMxNDQyXSAg
ICAwMDAwMDAwMDAzNTVmNmMwIDAwMDAwMDAwMDAwMDAwYjAgMDAwMDAwMDAwMDAwMDAwMCAwMDAw
MDAwMDAwMDAwMDAwDQooWEVOKSBbICAxMDcuMDQ3NTYxXSAgICAwMDAwMDAwMDAwMDAwMDAwIGZm
ZmZmZmZmODM0ZGNkYjggZmZmZmZmZmY4MzRkY2ViYyAwMDAwMDAwMDAwMDAwMDAwDQooWEVOKSBb
ICAxMDcuMDYzNjgxXSAgICAwMDAwMDAwMDAwMDAwMDAwIGZmZmZmZmZmODEwM2Q0NTYgMDAwMDAw
MDAwMDAwMDAwMCAwMDAwMDAwMDAwMDAwMDAwDQooWEVOKSBbICAxMDcuMDc5ODAxXSAgICAwMDAw
MDAwMDAwMDAwMDAwIDAwMDAwMDAwMDAwMDAwMDAgMDAwMDAwMDAwMDAwMDAwMCAwMDAwMDAwMDAw
MDAwMDAwDQooWEVOKSBbICAxMDcuMDk1OTIxXSAgICAwMDAwMDAwMDAwMDAwMDAwIDAwMDAwMDAw
MDAwMDAwMDAgMDAwMDAwMDAwMDAwMDAwMCAwMDAwMDAwMDAwMDAwMDAwDQooWEVOKSBbICAxMDcu
MTEyMDQyXSAgICAwMDAwMDAwMDAwMDAwMDAwIDAwMDAwMDAwMDAwMDAwMDAgMDAwMDAwMDAwMDAw
MDAwMCAwMDAwMDAwMDAwMDAwMDAwDQooWEVOKSBbICAxMDcuMTI4MTYwXSAgICAwMDAwMDAwMDAw
MDAwMDAwIDAwMDAwMDAwMDAwMDAwMDAgMDAwMDAwMDAwMDAwMDAwMCAwMDAwMDAwMDAwMDAwMDAw
DQooWEVOKSBbICAxMDcuMTQ0MjgyXSAgICAwMDAwMDAwMDAwMDAwMDAwIDAwMDAwMDAwMDAwMDAw
MDAgMDAwMDAwMDAwMDAwMDAwMA0KKFhFTikgWyAgMTA3LjE1NzQ1Nl0gKioqIER1bXBpbmcgRG9t
MCB2Y3B1IzEgc3RhdGU6ICoqKg0KKFhFTikgWyAgMTA3LjE2NzMzNF0gUklQOiAgICAwMDEwOls8
ZmZmZmZmZmY4MjA0MWE1Mz5dDQooWEVOKSBbICAxMDcuMTc3MDQyXSBSRkxBR1M6IDAwMDAwMDAw
MDAwMDAwOTMgICBDT05URVhUOiBodm0gZ3Vlc3QgKGQwdjEpDQooWEVOKSBbICAxMDcuMTkwMDQy
XSByYXg6IDAwMDAwMDAwMDAwMDAwMDAgICByYng6IDAwMDAwMDAwMDAwMDAwMDAgICByY3g6IDAw
MDAwMDAwMDAwMDBjZjgNCihYRU4pIFsgIDEwNy4yMDU5ODddIHJkeDogMDAwMDAwMDAwMDAwMDQx
NCAgIHJzaTogZmZmZmZmZmY4Mjk4YWVjMSAgIHJkaTogMDAwMDAwMDAwMDAwMDQxNA0KKFhFTikg
WyAgMTA3LjIyMTkzNl0gcmJwOiBmZmZmODg4MTAwYjZmYzk4ICAgcnNwOiBmZmZmYzkwMDAwMGU3
ZTUwICAgcjg6ICAwMDAwMDAwMDAwMDVkMDg0DQooWEVOKSBbICAxMDcuMjM3ODgyXSByOTogIDAw
MDAwMDAwMDAwMDAwMGYgICByMTA6IDAwMDAwMDE0ZjkzZWZhNDAgICByMTE6IDAwMDAwMDAwMDAw
MDAwMDANCihYRU4pIFsgIDEwNy4yNTM4MjhdIHIxMjogMDAwMDAwMDAwMDAwMDAwMiAgIHIxMzog
ZmZmZmZmZmY4MmRkYzBjMCAgIHIxNDogMDAwMDAwMDAwMDAwMDAwMw0KKFhFTikgWyAgMTA3LjI2
OTc3NV0gcjE1OiAwMDAwMDAwMDAwMDAwMDAwICAgY3IwOiAwMDAwMDAwMDgwMDUwMDMzICAgY3I0
OiAwMDAwMDAwMDAwMzUwZWYwDQooWEVOKSBbICAxMDcuMjg1NzIyXSBjcjM6IDAwMDAwMDAwMDJj
MzIwMDAgICBjcjI6IDAwMDAwMDAwMDAwMDAwMDANCihYRU4pIFsgIDEwNy4yOTc1MDldIGZzYjog
MDAwMDAwMDAwMDAwMDAwMCAgIGdzYjogZmZmZjg4ODExNTA4MDAwMCAgIGdzczogMDAwMDAwMDAw
MDAwMDAwMA0KKFhFTikgWyAgMTA3LjMxMzQ1Nl0gZHM6IDAwMDAgICBlczogMDAwMCAgIGZzOiAw
MDAwICAgZ3M6IDAwMDAgICBzczogMDAxOCAgIGNzOiAwMDEwDQooWEVOKSBbICAxMDcuMzI4MzY0
XSBHdWVzdCBzdGFjayB0cmFjZSBmcm9tIHNwPWZmZmZjOTAwMDAwZTdlNTA6DQooWEVOKSBbICAx
MDcuMzM5ODAzXSAgICBmZmZmZmZmZjgyMDQxYjA5IDAwMDAwMDAxMDAwMDAwODcgZWZlZDdkZjc2
NTRhMjAwMCBmZmZmODg4MTAwYTdhMDAwDQooWEVOKSBbICAxMDcuMzU1OTI0XSAgICAwMDAwMDAw
MDAwMDAwMDAzIGZmZmZmZmZmODJkZGMwYzAgZmZmZmZmZmY4MmRkYzIxMCAwMDAwMDAwMDAwMDAw
MDAzDQooWEVOKSBbICAxMDcuMzcyMDQ1XSAgICBmZmZmZmZmZjgyMDQwZTY1IDAwMDAwMDE0ZmJi
YTdmYzYgZmZmZjg4ODEwMGE3YTAwMCBmZmZmZmZmZjgyZGRjMGMwDQooWEVOKSBbICAxMDcuMzg4
MTY0XSAgICAwMDAwMDAwMDAwMDAwMDAzIGZmZmY4ODgxMDBhN2EwMDAgMDAwMDAwMDAwMDAwMDAw
MyAwMDAwMDAwMDAwMDAwMDAwDQooWEVOKSBbICAxMDcuNDA0Mjg0XSAgICBmZmZmZmZmZjgxYzAy
YzE4IGZmZmY4ODgxMDAyNzlmODAgMDAwMDAwMDAwMDAwMDAwMSBmZmZmZmZmZjgyZGRjMGMwDQoo
WEVOKSBbICAxMDcuNDIwNDAyXSAgICBmZmZmZmZmZjgxMGY1ZGNhIDAxMDAwMDAwMDAwMDAwMDAg
ZWZlZDdkZjc2NTRhMjAwMCAwMDAwMDAwMDAwMDAwMDkzDQooWEVOKSBbICAxMDcuNDM2NTI1XSAg
ICAwMDAwMDAwMDAwMDAwMDAwIDAwMDAwMDAwMDAwMDAwMDAgMDAwMDAwMDAwMDAwMDAwMCAwMDAw
MDAwMDAwMDAwMDAwDQooWEVOKSBbICAxMDcuNDUyNjQ1XSAgICBmZmZmZmZmZjgxMGY2MDI0IDAw
MDAwMDAwMDAwMDAwMDEgZmZmZmZmZmY4MTA3MGQ5YyAwMDAwMDAwMDAwMDAwMDAwDQooWEVOKSBb
ICAxMDcuNDY4NzY0XSAgICBmZmZmZmZmZjgxMDNkNDU2IDAwMDAwMDAwMDAwMDAwMDAgMDAwMDAw
MDAwMDAwMDAwMCAwMDAwMDAwMDAwMDAwMDAwDQooWEVOKSBbICAxMDcuNDg0ODg1XSAgICAwMDAw
MDAwMDAwMDAwMDAwIDAwMDAwMDAwMDAwMDAwMDAgMDAwMDAwMDAwMDAwMDAwMCAwMDAwMDAwMDAw
MDAwMDAwDQooWEVOKSBbICAxMDcuNTAxMDA0XSAgICAwMDAwMDAwMDAwMDAwMDAwIDAwMDAwMDAw
MDAwMDAwMDAgMDAwMDAwMDAwMDAwMDAwMCAwMDAwMDAwMDAwMDAwMDAwDQooWEVOKSBbICAxMDcu
NTE3MTI0XSAgICAwMDAwMDAwMDAwMDAwMDAwIDAwMDAwMDAwMDAwMDAwMDAgMDAwMDAwMDAwMDAw
MDAwMCAwMDAwMDAwMDAwMDAwMDAwDQooWEVOKSBbICAxMDcuNTMzMjQ1XSAgICAwMDAwMDAwMDAw
MDAwMDAwIDAwMDAwMDAwMDAwMDAwMDAgMDAwMDAwMDAwMDAwMDAwMCAwMDAwMDAwMDAwMDAwMDAw
DQooWEVOKSBbICAxMDcuNTQ5MzYzXSAgICAwMDAwMDAwMDAwMDAwMDAwIDAwMDAwMDAwMDAwMDAw
MDANCihYRU4pIFsgIDEwNy41NTk1OTNdICoqKiBEdW1waW5nIERvbTAgdmNwdSMyIHN0YXRlOiAq
KioNCihYRU4pIFsgIDEwNy41Njk0NzBdIFJJUDogICAgMDAxMDpbPGZmZmZmZmZmODIwNDFhNTM+
XQ0KKFhFTikgWyAgMTA3LjU3OTE3N10gUkZMQUdTOiAwMDAwMDAwMDAwMDAwMDkzICAgQ09OVEVY
VDogaHZtIGd1ZXN0IChkMHYyKQ0KKFhFTikgWyAgMTA3LjU5MjE3OF0gcmF4OiAwMDAwMDAwMDAw
MDAwMDAwICAgcmJ4OiAwMDAwMDAwMDAwMDAwMDAwICAgcmN4OiAwMDAwMDAwMDAwMDAwMDA0DQoo
WEVOKSBbICAxMDcuNjA4MTI1XSByZHg6IDAwMDAwMDAwMDAwMDA0MTUgICByc2k6IGZmZmZmZmZm
ODI5OGFlYzEgICByZGk6IDAwMDAwMDAwMDAwMDA0MTUNCihYRU4pIFsgIDEwNy42MjQwNzJdIHJi
cDogZmZmZjg4ODEwMGI3MDRjYyAgIHJzcDogZmZmZmM5MDAwMDBlZmU1MCAgIHI4OiAgMDAwMDAw
MDAwMDAxNGNhYw0KKFhFTikgWyAgMTA3LjY0MDAxOF0gcjk6ICAwMDAwMDAwMDAwMDAwMDBmICAg
cjEwOiAwMDAwMDA0ZGVlNzMxMDQwICAgcjExOiAwMDAwMDAwMDAwMDAwMDAwDQooWEVOKSBbICAx
MDcuNjU1OTY1XSByMTI6IDAwMDAwMDAwMDAwMDAwMDMgICByMTM6IGZmZmZmZmZmODJkZGMwYzAg
ICByMTQ6IDAwMDAwMDAwMDAwMDAwMDMNCihYRU4pIFsgIDEwNy42NzE5MTNdIHIxNTogMDAwMDAw
MDAwMDAwMDAwMCAgIGNyMDogMDAwMDAwMDA4MDA1MDAzMyAgIGNyNDogMDAwMDAwMDAwMDM1MGVm
MA0KKFhFTikgWyAgMTA3LjY4Nzg2MF0gY3IzOiAwMDAwMDAwMDAyYzMyMDAwICAgY3IyOiAwMDAw
MDAwMDAwMDAwMDAwDQooWEVOKSBbICAxMDcuNjk5NjQ2XSBmc2I6IDAwMDAwMDAwMDAwMDAwMDAg
ICBnc2I6IGZmZmY4ODgxMTUxMDAwMDAgICBnc3M6IDAwMDAwMDAwMDAwMDAwMDANCihYRU4pIFsg
IDEwNy43MTU1OTJdIGRzOiAwMDAwICAgZXM6IDAwMDAgICBmczogMDAwMCAgIGdzOiAwMDAwICAg
c3M6IDAwMTggICBjczogMDAxMA0KKFhFTikgWyAgMTA3LjczMDQ5OV0gR3Vlc3Qgc3RhY2sgdHJh
Y2UgZnJvbSBzcD1mZmZmYzkwMDAwMGVmZTUwOg0KKFhFTikgWyAgMTA3Ljc0MTkzOV0gICAgZmZm
ZmZmZmY4MjA0MWIwOSAwMDAwMDAwMDAwMGVmZWIwIDEyMDFmMTU2MmQzOGEyMDAgZmZmZjg4ODEw
MGNhMDgwMA0KKFhFTikgWyAgMTA3Ljc1ODA1OF0gICAgMDAwMDAwMDAwMDAwMDAwMyBmZmZmZmZm
ZjgyZGRjMGMwIGZmZmZmZmZmODJkZGMyMTAgMDAwMDAwMDAwMDAwMDAwMw0KKFhFTikgWyAgMTA3
Ljc3NDE3OV0gICAgZmZmZmZmZmY4MjA0MGU2NSAwMDAwMDAxNTEzNGU4YWE2IGZmZmY4ODgxMDBj
YTA4MDAgZmZmZmZmZmY4MmRkYzBjMA0KKFhFTikgWyAgMTA3Ljc5MDI5OF0gICAgMDAwMDAwMDAw
MDAwMDAwMyBmZmZmODg4MTAwY2EwODAwIDAwMDAwMDAwMDAwMDAwMDMgMDAwMDAwMDAwMDAwMDAw
MA0KKFhFTikgWyAgMTA3LjgwNjQyMF0gICAgZmZmZmZmZmY4MWMwMmMxOCBmZmZmODg4MTAwMjdh
ZjQwIDAwMDAwMDAwMDAwMDAwMDIgZmZmZmZmZmY4MmRkYzBjMA0KKFhFTikgWyAgMTA3LjgyMjU0
MV0gICAgZmZmZmZmZmY4MTBmNWRjYSAwMTAwMDAwMDAwMDAwMDAwIDEyMDFmMTU2MmQzOGEyMDAg
MDAwMDAwMDAwMDAwMDA5Mw0KKFhFTikgWyAgMTA3LjgzODY1OF0gICAgMDAwMDAwMDAwMDAwMDAw
MCAwMDAwMDAwMDAwMDAwMDAwIDAwMDAwMDAwMDAwMDAwMDAgMDAwMDAwMDAwMDAwMDAwMA0KKFhF
TikgWyAgMTA3Ljg1NDc4MV0gICAgZmZmZmZmZmY4MTBmNjAyNCAwMDAwMDAwMDAwMDAwMDAyIGZm
ZmZmZmZmODEwNzBkOWMgMDAwMDAwMDAwMDAwMDAwMA0KKFhFTikgWyAgMTA3Ljg3MDkwMl0gICAg
ZmZmZmZmZmY4MTAzZDQ1NiAwMDAwMDAwMDAwMDAwMDAwIDAwMDAwMDAwMDAwMDAwMDAgMDAwMDAw
MDAwMDAwMDAwMA0KKFhFTikgWyAgMTA3Ljg4NzAyMF0gICAgMDAwMDAwMDAwMDAwMDAwMCAwMDAw
MDAwMDAwMDAwMDAwIDAwMDAwMDAwMDAwMDAwMDAgMDAwMDAwMDAwMDAwMDAwMA0KKFhFTikgWyAg
MTA3LjkwMzE0MV0gICAgMDAwMDAwMDAwMDAwMDAwMCAwMDAwMDAwMDAwMDAwMDAwIDAwMDAwMDAw
MDAwMDAwMDAgMDAwMDAwMDAwMDAwMDAwMA0KKFhFTikgWyAgMTA3LjkxOTI2MF0gICAgMDAwMDAw
MDAwMDAwMDAwMCAwMDAwMDAwMDAwMDAwMDAwIDAwMDAwMDAwMDAwMDAwMDAgMDAwMDAwMDAwMDAw
MDAwMA0KKFhFTikgWyAgMTA3LjkzNTM3OV0gICAgMDAwMDAwMDAwMDAwMDAwMCAwMDAwMDAwMDAw
MDAwMDAwIDAwMDAwMDAwMDAwMDAwMDAgMDAwMDAwMDAwMDAwMDAwMA0KKFhFTikgWyAgMTA3Ljk1
MTUwMl0gICAgMDAwMDAwMDAwMDAwMDAwMCAwMDAwMDAwMDAwMDAwMDAwDQooWEVOKSBbICAxMDcu
OTYxNzI4XSAqKiogRHVtcGluZyBEb20wIHZjcHUjMyBzdGF0ZTogKioqDQooWEVOKSBbICAxMDcu
OTcxNjA4XSBSSVA6ICAgIDAwMTA6WzxmZmZmZmZmZjgyMDQxYTUzPl0NCihYRU4pIFsgIDEwNy45
ODEzMTVdIFJGTEFHUzogMDAwMDAwMDAwMDAwMDA5MyAgIENPTlRFWFQ6IGh2bSBndWVzdCAoZDB2
MykNCihYRU4pIFsgIDEwNy45OTQzMTNdIHJheDogMDAwMDAwMDAwMDAwMDAwMCAgIHJieDogMDAw
MDAwMDAwMDAwMDAwMCAgIHJjeDogMDAwMDAwMDAwMDAwMGNmOA0KKFhFTikgWyAgMTA4LjAxMDI2
Ml0gcmR4OiAwMDAwMDAwMDAwMDAwNDE0ICAgcnNpOiBmZmZmZmZmZjgyOThhZWMxICAgcmRpOiAw
MDAwMDAwMDAwMDAwNDE0DQooWEVOKSBbICAxMDguMDI2MjA4XSByYnA6IGZmZmY4ODgxMDBiNzA4
OTggICByc3A6IGZmZmZjOTAwMDAwZjdlNTAgICByODogIDAwMDAwMDAwMDAwMTg5NWMNCihYRU4p
IFsgIDEwOC4wNDIxNTVdIHI5OiAgMDAwMDAwMDAwMDAwMDAwZiAgIHIxMDogMDAwMDAwMTY5ZTRi
MTA0MCAgIHIxMTogMDAwMDAwMDAwMDAwMDAwMA0KKFhFTikgWyAgMTA4LjA1ODEwMV0gcjEyOiAw
MDAwMDAwMDAwMDAwMDAyICAgcjEzOiBmZmZmZmZmZjgyZGRjMGMwICAgcjE0OiAwMDAwMDAwMDAw
MDAwMDAzDQooWEVOKSBbICAxMDguMDc0MDQ5XSByMTU6IDAwMDAwMDAwMDAwMDAwMDAgICBjcjA6
IDAwMDAwMDAwODAwNTAwMzMgICBjcjQ6IDAwMDAwMDAwMDAzNTBlZjANCihYRU4pIFsgIDEwOC4w
ODk5OTVdIGNyMzogMDAwMDAwMDAwMmMzMjAwMCAgIGNyMjogMDAwMDAwMDAwMDAwMDAwMA0KKFhF
TikgWyAgMTA4LjEwMTc4M10gZnNiOiAwMDAwMDAwMDAwMDAwMDAwICAgZ3NiOiBmZmZmODg4MTE1
MTgwMDAwICAgZ3NzOiAwMDAwMDAwMDAwMDAwMDAwDQooWEVOKSBbICAxMDguMTE3NzMwXSBkczog
MDAwMCAgIGVzOiAwMDAwICAgZnM6IDAwMDAgICBnczogMDAwMCAgIHNzOiAwMDE4ICAgY3M6IDAw
MTANCihYRU4pIFsgIDEwOC4xMzI2MzVdIEd1ZXN0IHN0YWNrIHRyYWNlIGZyb20gc3A9ZmZmZmM5
MDAwMDBmN2U1MDoNCihYRU4pIFsgIDEwOC4xNDQwNzZdICAgIGZmZmZmZmZmODIwNDFiMDkgMDAw
MDAwMDEwMDBmN2ViMCA4NTFlZTE3NmRkMjZkZDAwIGZmZmY4ODgxMGM1NmM4MDANCihYRU4pIFsg
IDEwOC4xNjAxOTVdICAgIDAwMDAwMDAwMDAwMDAwMDMgZmZmZmZmZmY4MmRkYzBjMCBmZmZmZmZm
ZjgyZGRjMjEwIDAwMDAwMDAwMDAwMDAwMDMNCihYRU4pIFsgIDEwOC4xNzYzMTZdICAgIGZmZmZm
ZmZmODIwNDBlNjUgMDAwMDAwMTUxZmEyNGJlNiBmZmZmODg4MTBjNTZjODAwIGZmZmZmZmZmODJk
ZGMwYzANCihYRU4pIFsgIDEwOC4xOTI0MzVdICAgIDAwMDAwMDAwMDAwMDAwMDMgZmZmZjg4ODEw
YzU2YzgwMCAwMDAwMDAwMDAwMDAwMDAzIDAwMDAwMDAwMDAwMDAwMDANCihYRU4pIFsgIDEwOC4y
MDg1NTZdICAgIGZmZmZmZmZmODFjMDJjMTggZmZmZjg4ODEwMDI3YmYwMCAwMDAwMDAwMDAwMDAw
MDAzIGZmZmZmZmZmODJkZGMwYzANCihYRU4pIFsgIDEwOC4yMjQ2NzZdICAgIGZmZmZmZmZmODEw
ZjVkY2EgMDEwMDAwMDAwMDAwMDAwMCA4NTFlZTE3NmRkMjZkZDAwIDAwMDAwMDAwMDAwMDAwOTMN
CihYRU4pIFsgIDEwOC4yNDA3OTddICAgIDAwMDAwMDAwMDAwMDAwMDAgMDAwMDAwMDAwMDAwMDAw
MCAwMDAwMDAwMDAwMDAwMDAwIDAwMDAwMDAwMDAwMDAwMDANCihYRU4pIFsgIDEwOC4yNTY5MTdd
ICAgIGZmZmZmZmZmODEwZjYwMjQgMDAwMDAwMDAwMDAwMDAwMyBmZmZmZmZmZjgxMDcwZDljIDAw
MDAwMDAwMDAwMDAwMDANCihYRU4pIFsgIDEwOC4yNzMwMzddICAgIGZmZmZmZmZmODEwM2Q0NTYg
MDAwMDAwMDAwMDAwMDAwMCAwMDAwMDAwMDAwMDAwMDAwIDAwMDAwMDAwMDAwMDAwMDANCihYRU4p
IFsgIDEwOC4yODkxNTddICAgIDAwMDAwMDAwMDAwMDAwMDAgMDAwMDAwMDAwMDAwMDAwMCAwMDAw
MDAwMDAwMDAwMDAwIDAwMDAwMDAwMDAwMDAwMDANCihYRU4pIFsgIDEwOC4zMDUyNzhdICAgIDAw
MDAwMDAwMDAwMDAwMDAgMDAwMDAwMDAwMDAwMDAwMCAwMDAwMDAwMDAwMDAwMDAwIDAwMDAwMDAw
MDAwMDAwMDANCihYRU4pIFsgIDEwOC4zMjEzOTZdICAgIDAwMDAwMDAwMDAwMDAwMDAgMDAwMDAw
MDAwMDAwMDAwMCAwMDAwMDAwMDAwMDAwMDAwIDAwMDAwMDAwMDAwMDAwMDANCihYRU4pIFsgIDEw
OC4zMzc1MTZdICAgIDAwMDAwMDAwMDAwMDAwMDAgMDAwMDAwMDAwMDAwMDAwMCAwMDAwMDAwMDAw
MDAwMDAwIDAwMDAwMDAwMDAwMDAwMDANCihYRU4pIFsgIDEwOC4zNTM2MzddICAgIDAwMDAwMDAw
MDAwMDAwMDAgMDAwMDAwMDAwMDAwMDAwMA0KKFhFTikgWyAgMTA4LjM2Mzg2NF0gW0g6IGR1bXAg
aGVhcCBpbmZvXQ0KKFhFTikgWyAgMTA4LjM3MTE0M10gJ0gnIHByZXNzZWQgLT4gZHVtcGluZyBo
ZWFwIGluZm8gKG5vdyA9IDEwODM3MDEwNTQzMykNCihYRU4pIFsgIDEwOC4zODQzMTddIGhlYXBb
bm9kZT0wXVt6b25lPTBdIC0+IDAgcGFnZXMNCihYRU4pIFsgIDEwOC4zOTM2NzZdIGhlYXBbbm9k
ZT0wXVt6b25lPTFdIC0+IDAgcGFnZXMNCihYRU4pIFsgIDEwOC40MDMwMzhdIGhlYXBbbm9kZT0w
XVt6b25lPTJdIC0+IDAgcGFnZXMNCihYRU4pIFsgIDEwOC40MTIzOThdIGhlYXBbbm9kZT0wXVt6
b25lPTNdIC0+IDAgcGFnZXMNCihYRU4pIFsgIDEwOC40MjE3NTldIGhlYXBbbm9kZT0wXVt6b25l
PTRdIC0+IDAgcGFnZXMNCihYRU4pIFsgIDEwOC40MzExMTddIGhlYXBbbm9kZT0wXVt6b25lPTVd
IC0+IDAgcGFnZXMNCihYRU4pIFsgIDEwOC40NDA0NzhdIGhlYXBbbm9kZT0wXVt6b25lPTZdIC0+
IDAgcGFnZXMNCihYRU4pIFsgIDEwOC40NDk4MzldIGhlYXBbbm9kZT0wXVt6b25lPTddIC0+IDAg
cGFnZXMNCihYRU4pIFsgIDEwOC40NTkxOTddIGhlYXBbbm9kZT0wXVt6b25lPThdIC0+IDAgcGFn
ZXMNCihYRU4pIFsgIDEwOC40Njg1NThdIGhlYXBbbm9kZT0wXVt6b25lPTldIC0+IDI1NiBwYWdl
cw0KKFhFTikgWyAgMTA4LjQ3ODI2M10gaGVhcFtub2RlPTBdW3pvbmU9MTBdIC0+IDUxMiBwYWdl
cw0KKFhFTikgWyAgMTA4LjQ4ODE0NV0gaGVhcFtub2RlPTBdW3pvbmU9MTFdIC0+IDEwMjQgcGFn
ZXMNCihYRU4pIFsgIDEwOC40OTgyMDBdIGhlYXBbbm9kZT0wXVt6b25lPTEyXSAtPiAyMDQ4IHBh
Z2VzDQooWEVOKSBbICAxMDguNTA4MjUxXSBoZWFwW25vZGU9MF1bem9uZT0xM10gLT4gNDA5NiBw
YWdlcw0KKFhFTikgWyAgMTA4LjUxODMwNV0gaGVhcFtub2RlPTBdW3pvbmU9MTRdIC0+IDgxOTIg
cGFnZXMNCihYRU4pIFsgIDEwOC41MjgzNTddIGhlYXBbbm9kZT0wXVt6b25lPTE1XSAtPiAxNjM4
NCBwYWdlcw0KKFhFTikgWyAgMTA4LjUzODU4Nl0gaGVhcFtub2RlPTBdW3pvbmU9MTZdIC0+IDMx
NzI5IHBhZ2VzDQooWEVOKSBbICAxMDguNTQ4ODExXSBoZWFwW25vZGU9MF1bem9uZT0xN10gLT4g
NjU1MzYgcGFnZXMNCihYRU4pIFsgIDEwOC41NTkwNDBdIGhlYXBbbm9kZT0wXVt6b25lPTE4XSAt
PiAxMzEwNzIgcGFnZXMNCihYRU4pIFsgIDEwOC41Njk0MzldIGhlYXBbbm9kZT0wXVt6b25lPTE5
XSAtPiAyNjIxNDQgcGFnZXMNCihYRU4pIFsgIDEwOC41Nzk4NDBdIGhlYXBbbm9kZT0wXVt6b25l
PTIwXSAtPiAzMDkwOTEgcGFnZXMNCihYRU4pIFsgIDEwOC41OTAyMzldIGhlYXBbbm9kZT0wXVt6
b25lPTIxXSAtPiAxMDQ4NTc2IHBhZ2VzDQooWEVOKSBbICAxMDguNjAwODExXSBoZWFwW25vZGU9
MF1bem9uZT0yMl0gLT4gMjA5NzE1MiBwYWdlcw0KKFhFTikgWyAgMTA4LjYxMTM4N10gaGVhcFtu
b2RlPTBdW3pvbmU9MjNdIC0+IDMwNTc2NDggcGFnZXMNCihYRU4pIFsgIDEwOC42MjE5NThdIGhl
YXBbbm9kZT0wXVt6b25lPTI0XSAtPiA2MTkxNyBwYWdlcw0KKFhFTikgWyAgMTA4LjYzMjE4NV0g
aGVhcFtub2RlPTBdW3pvbmU9MjVdIC0+IDAgcGFnZXMNCihYRU4pIFsgIDEwOC42NDE3MThdIGhl
YXBbbm9kZT0wXVt6b25lPTI2XSAtPiAwIHBhZ2VzDQooWEVOKSBbICAxMDguNjUxMjUxXSBoZWFw
W25vZGU9MF1bem9uZT0yN10gLT4gMCBwYWdlcw0KKFhFTikgWyAgMTA4LjY2MDc4OF0gaGVhcFtu
b2RlPTBdW3pvbmU9MjhdIC0+IDAgcGFnZXMNCihYRU4pIFsgIDEwOC42NzAzMjBdIGhlYXBbbm9k
ZT0wXVt6b25lPTI5XSAtPiAwIHBhZ2VzDQooWEVOKSBbICAxMDguNjc5ODUyXSBoZWFwW25vZGU9
MF1bem9uZT0zMF0gLT4gMCBwYWdlcw0KKFhFTikgWyAgMTA4LjY4OTM4NV0gaGVhcFtub2RlPTBd
W3pvbmU9MzFdIC0+IDAgcGFnZXMNCihYRU4pIFsgIDEwOC42OTg5MThdIGhlYXBbbm9kZT0wXVt6
b25lPTMyXSAtPiAwIHBhZ2VzDQooWEVOKSBbICAxMDguNzA4NDUyXSBoZWFwW25vZGU9MF1bem9u
ZT0zM10gLT4gMCBwYWdlcw0KKFhFTikgWyAgMTA4LjcxNzk4Nl0gaGVhcFtub2RlPTBdW3pvbmU9
MzRdIC0+IDAgcGFnZXMNCihYRU4pIFsgIDEwOC43Mjc1MjBdIGhlYXBbbm9kZT0wXVt6b25lPTM1
XSAtPiAwIHBhZ2VzDQooWEVOKSBbICAxMDguNzM3MDUyXSBoZWFwW25vZGU9MF1bem9uZT0zNl0g
LT4gMCBwYWdlcw0KKFhFTikgWyAgMTA4Ljc0NjU4Nl0gaGVhcFtub2RlPTBdW3pvbmU9MzddIC0+
IDAgcGFnZXMNCihYRU4pIFsgIDEwOC43NTYxMjFdIGhlYXBbbm9kZT0wXVt6b25lPTM4XSAtPiAw
IHBhZ2VzDQooWEVOKSBbICAxMDguNzY1NjU0XSBoZWFwW25vZGU9MF1bem9uZT0zOV0gLT4gMCBw
YWdlcw0KKFhFTikgWyAgMTA4Ljc3NTE4N10gaGVhcFtub2RlPTBdW3pvbmU9NDBdIC0+IDAgcGFn
ZXMNCihYRU4pIFsgIDEwOC43ODQ3MjFdIFtJOiBkdW1wIEhWTSBpcnEgaW5mb10NCihYRU4pIFsg
IDEwOC43OTI1MjBdICdJJyBwcmVzc2VkIC0+IGR1bXBpbmcgSFZNIGlycSBpbmZvDQooWEVOKSBb
ICAxMDguODAyNTc1XSBEb21haW4gMDoNCihYRU4pIFsgIDEwOC44MDgxMjFdIFBDSSAweDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIElTQSAweDAwMDAwMDAwIFJPVVRFIDAgMCAwIDAN
CihYRU4pIFsgIDEwOC44MjM3MjFdIEdTSSBbMCAtIDddIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAw
DQooWEVOKSBbICAxMDguODMzNzc0XSBHU0kgWzggLSBmXSAwMCAwMCAwMCAwMCAwMCAwMCAwMCAw
MA0KKFhFTikgWyAgMTA4Ljg0MzgyOF0gR1NJIFsxMCAtIDE3XSAwMCAwMCAwMCAwMCAwMCAwMCAw
MCAwMA0KKFhFTikgWyAgMTA4Ljg1NDIyOF0gR1NJIFsxOCAtIDFmXSAwMCAwMCAwMCAwMCAwMCAw
MCAwMCAwMA0KKFhFTikgWyAgMTA4Ljg2NDYyOF0gR1NJIFsyMCAtIDI3XSAwMCAwMCAwMCAwMCAw
MCAwMCAwMCAwMA0KKFhFTikgWyAgMTA4Ljg3NTAyOF0gR1NJIFsyOCAtIDJmXSAwMCAwMCAwMCAw
MCAwMCAwMCAwMCAwMA0KKFhFTikgWyAgMTA4Ljg4NTQyOV0gR1NJIFszMCAtIDM3XSAwMCAwMCAw
MCAwMCAwMCAwMCAwMCAwMA0KKFhFTikgWyAgMTA4Ljg5NTgyOV0gTGluayAwMCAwMCAwMCAwMA0K
KFhFTikgWyAgMTA4LjkwMjU4N10gQ2FsbGJhY2sgdmlhIDA6MCwgbm90IGFzc2VydGVkDQooWEVO
KSBbICAxMDguOTExNzc1XSBbTTogZHVtcCBNU0kgc3RhdGVdDQooWEVOKSBbICAxMDguOTE5MDU1
XSBNU0kgaW5mb3JtYXRpb246DQooWEVOKSBbICAxMDguOTI1ODE2XSAgTVNJICAgICA1NiB2ZWM9
MzAgIGZpeGVkICBlZGdlICAgYXNzZXJ0IHBoeXMgICAgY3B1IGRlc3Q9MDAwMDAwMDAgbWFzaz0w
LyAgLz8NCihYRU4pIFsgIDEwOC45NDMzMjFdICBNU0kgICAgIDU3IHZlYz1hOCAgZml4ZWQgIGVk
Z2UgICBhc3NlcnQgcGh5cyAgICBjcHUgZGVzdD0wMDAwMDAwMCBtYXNrPTAvICAvPw0KKFhFTikg
WyAgMTA4Ljk2MDgyOF0gIE1TSSAgICAgNTggdmVjPWIwICBmaXhlZCAgZWRnZSAgIGFzc2VydCBw
aHlzICAgIGNwdSBkZXN0PTAwMDAwMDAwIG1hc2s9MC8gIC8/DQooWEVOKSBbICAxMDguOTc4MzM0
XSAgTVNJICAgICA1OSB2ZWM9YjggIGZpeGVkICBlZGdlICAgYXNzZXJ0IHBoeXMgICAgY3B1IGRl
c3Q9MDAwMDAwMDAgbWFzaz0wLyAgLz8NCihYRU4pIFsgIDEwOC45OTU4NDNdICBNU0kgICAgIDYw
IHZlYz1jMCAgZml4ZWQgIGVkZ2UgICBhc3NlcnQgcGh5cyAgICBjcHUgZGVzdD0wMDAwMDAwMCBt
YXNrPTAvICAvPw0KKFhFTikgWyAgMTA5LjAxMzM1MF0gIE1TSSAgICAgNjEgdmVjPWM4ICBmaXhl
ZCAgZWRnZSAgIGFzc2VydCBwaHlzICAgIGNwdSBkZXN0PTAwMDAwMDAwIG1hc2s9MC8gIC8/DQoo
WEVOKSBbICAxMDkuMDMwODU3XSAgTVNJICAgICA2MiB2ZWM9ZDAgIGZpeGVkICBlZGdlICAgYXNz
ZXJ0IHBoeXMgICAgY3B1IGRlc3Q9MDAwMDAwMDAgbWFzaz0wLyAgLz8NCihYRU4pIFsgIDEwOS4w
NDgzNjBdICBNU0kgICAgIDYzIHZlYz1kOCAgZml4ZWQgIGVkZ2UgICBhc3NlcnQgcGh5cyAgICBj
cHUgZGVzdD0wMDAwMDAwMCBtYXNrPTAvICAvPw0KKFhFTikgWyAgMTA5LjA2NTg2OF0gIE1TSSAg
ICAgNjQgdmVjPTI5ICBmaXhlZCAgZWRnZSAgIGFzc2VydCBwaHlzICAgIGNwdSBkZXN0PTAwMDAw
MDAyIG1hc2s9MC8gRy8/DQooWEVOKSBbICAxMDkuMDgzMzc3XSAgTVNJICAgICA2NSB2ZWM9MzEg
IGZpeGVkICBlZGdlICAgYXNzZXJ0IHBoeXMgICAgY3B1IGRlc3Q9MDAwMDAwMDMgbWFzaz0wLyBH
Lz8NCihYRU4pIFsgIDEwOS4xMDA4ODJdIHZQQ0kgTVNJL01TSS1YIGQwDQooWEVOKSBbICAxMDku
MTA3ODE2XSAwMDAwOjA1OjAwLjEgTVNJDQooWEVOKSBbICAxMDkuMTE0NTc2XSAgIGVuYWJsZWQ6
IDEgNjQtYml0OiAxIHZlY3RvcnMgbWF4OiAyIGVuYWJsZWQ6IDENCihYRU4pIFsgIDEwOS4xMjY4
ODJdIHZlYz0weDIxICBmaXhlZCAgZWRnZSBkZWFzc2VydCBwaHlzICBmaXhlZCBkZXN0X2lkPTYg
cGlycTogMzMyMQ0KKFhFTikgWyAgMTA5LjE0MTc4OV0gMDAwMDowNTowMC4wIE1TSQ0KKFhFTikg
WyAgMTA5LjE0ODU1MF0gICBlbmFibGVkOiAxIDY0LWJpdDogMSB2ZWN0b3JzIG1heDogMiBlbmFi
bGVkOiAxDQooWEVOKSBbICAxMDkuMTYwODU3XSB2ZWM9MHgyMSAgZml4ZWQgIGVkZ2UgZGVhc3Nl
cnQgcGh5cyAgZml4ZWQgZGVzdF9pZD00IHBpcnE6IDMzMjINCihYRU4pIFsgIDEwOS4xNzU3NjVd
IDAwMDA6MDQ6MDAuNiBNU0kNCihYRU4pIFsgIDEwOS4xODI1MjNdICAgZW5hYmxlZDogMSA2NC1i
aXQ6IDEgdmVjdG9ycyBtYXg6IDEgZW5hYmxlZDogMQ0KKFhFTikgWyAgMTA5LjE5NDgyOV0gdmVj
PTAwICBmaXhlZCAgZWRnZSBkZWFzc2VydCBwaHlzICBmaXhlZCBkZXN0X2lkPTAgcGlycTogMzMx
OQ0KKFhFTikgWyAgMTA5LjIwOTM5MV0gMDAwMDowNDowMC40IE1TSS1YDQooWEVOKSBbICAxMDku
MjE2NDk3XSAgIGVudHJpZXM6IDggbWFza2FsbDogMCBlbmFibGVkOiAxDQooWEVOKSBbICAxMDku
MjI2Mzc2XSAgICAgIDAgdmVjPTAwICBmaXhlZCAgZWRnZSBkZWFzc2VydCBwaHlzICBmaXhlZCBk
ZXN0X2lkPTAgbWFzaz0xIHBpcnE6IC0xDQooWEVOKSBbICAxMDkuMjQzMDE2XSAgICAgIDEgdmVj
PTAwICBmaXhlZCAgZWRnZSBkZWFzc2VydCBwaHlzICBmaXhlZCBkZXN0X2lkPTAgbWFzaz0xIHBp
cnE6IC0xDQooWEVOKSBbICAxMDkuMjU5NjU3XSAgICAgIDIgdmVjPTAwICBmaXhlZCAgZWRnZSBk
ZWFzc2VydCBwaHlzICBmaXhlZCBkZXN0X2lkPTAgbWFzaz0xIHBpcnE6IC0xDQooWEVOKSBbICAx
MDkuMjc2Mjk2XSAgICAgIDMgdmVjPTAwICBmaXhlZCAgZWRnZSBkZWFzc2VydCBwaHlzICBmaXhl
ZCBkZXN0X2lkPTAgbWFzaz0xIHBpcnE6IC0xDQooWEVOKSBbICAxMDkuMjkyOTM2XSAgICAgIDQg
dmVjPTAwICBmaXhlZCAgZWRnZSBkZWFzc2VydCBwaHlzICBmaXhlZCBkZXN0X2lkPTAgbWFzaz0x
IHBpcnE6IC0xDQooWEVOKSBbICAxMDkuMzA5NTc3XSAgICAgIDUgdmVjPTAwICBmaXhlZCAgZWRn
ZSBkZWFzc2VydCBwaHlzICBmaXhlZCBkZXN0X2lkPTAgbWFzaz0xIHBpcnE6IC0xDQooWEVOKSBb
ICAxMDkuMzI2MjE4XSAgICAgIDYgdmVjPTAwICBmaXhlZCAgZWRnZSBkZWFzc2VydCBwaHlzICBm
aXhlZCBkZXN0X2lkPTAgbWFzaz0xIHBpcnE6IC0xDQooWEVOKSBbICAxMDkuMzQyODU2XSAgICAg
IDcgdmVjPTAwICBmaXhlZCAgZWRnZSBkZWFzc2VydCBwaHlzICBmaXhlZCBkZXN0X2lkPTAgbWFz
az0xIHBpcnE6IC0xDQooWEVOKSBbICAxMDkuMzU5NDk5XSAwMDAwOjA0OjAwLjMgTVNJLVgNCihY
RU4pIFsgIDEwOS4zNjY2MDNdICAgZW50cmllczogOCBtYXNrYWxsOiAwIGVuYWJsZWQ6IDENCihY
RU4pIFsgIDEwOS4zNzY0ODVdICAgICAgMCB2ZWM9MDAgIGZpeGVkICBlZGdlIGRlYXNzZXJ0IHBo
eXMgIGZpeGVkIGRlc3RfaWQ9MCBtYXNrPTEgcGlycTogLTENCihYRU4pIFsgIDEwOS4zOTMxMjRd
ICAgICAgMSB2ZWM9MDAgIGZpeGVkICBlZGdlIGRlYXNzZXJ0IHBoeXMgIGZpeGVkIGRlc3RfaWQ9
MCBtYXNrPTEgcGlycTogLTENCihYRU4pIFsgIDEwOS40MDk3NjVdICAgICAgMiB2ZWM9MDAgIGZp
eGVkICBlZGdlIGRlYXNzZXJ0IHBoeXMgIGZpeGVkIGRlc3RfaWQ9MCBtYXNrPTEgcGlycTogLTEN
CihYRU4pIFsgIDEwOS40MjY0MDRdICAgICAgMyB2ZWM9MDAgIGZpeGVkICBlZGdlIGRlYXNzZXJ0
IHBoeXMgIGZpeGVkIGRlc3RfaWQ9MCBtYXNrPTEgcGlycTogLTENCihYRU4pIFsgIDEwOS40NDMw
NDRdICAgICAgNCB2ZWM9MDAgIGZpeGVkICBlZGdlIGRlYXNzZXJ0IHBoeXMgIGZpeGVkIGRlc3Rf
aWQ9MCBtYXNrPTEgcGlycTogLTENCihYRU4pIFsgIDEwOS40NTk2ODRdICAgICAgNSB2ZWM9MDAg
IGZpeGVkICBlZGdlIGRlYXNzZXJ0IHBoeXMgIGZpeGVkIGRlc3RfaWQ9MCBtYXNrPTEgcGlycTog
LTENCihYRU4pIFsgIDEwOS40NzYzMjVdICAgICAgNiB2ZWM9MDAgIGZpeGVkICBlZGdlIGRlYXNz
ZXJ0IHBoeXMgIGZpeGVkIGRlc3RfaWQ9MCBtYXNrPTEgcGlycTogLTENCihYRU4pIFsgIDEwOS40
OTI5NjRdICAgICAgNyB2ZWM9MDAgIGZpeGVkICBlZGdlIGRlYXNzZXJ0IHBoeXMgIGZpeGVkIGRl
c3RfaWQ9MCBtYXNrPTEgcGlycTogLTENCihYRU4pIFsgIDEwOS41MDk2MDddIDAwMDA6MDQ6MDAu
MSBNU0kNCihYRU4pIFsgIDEwOS41MTYzNjRdICAgZW5hYmxlZDogMSA2NC1iaXQ6IDEgdmVjdG9y
cyBtYXg6IDEgZW5hYmxlZDogMQ0KKFhFTikgWyAgMTA5LjUyODY3MV0gdmVjPTAwICBmaXhlZCAg
ZWRnZSBkZWFzc2VydCBwaHlzICBmaXhlZCBkZXN0X2lkPTAgcGlycTogMzMyMA0KKFhFTikgWyAg
MTA5LjU0MzIzNF0gMDAwMDowMzowMC4wIE1TSS1YDQooWEVOKSBbICAxMDkuNTUwMzQwXSAgIGVu
dHJpZXM6IDMyIG1hc2thbGw6IDAgZW5hYmxlZDogMQ0KKFhFTikgWyAgMTA5LjU2MDM5M10gICAg
ICAwIHZlYz0wMCAgZml4ZWQgIGVkZ2UgZGVhc3NlcnQgcGh5cyAgZml4ZWQgZGVzdF9pZD0wIG1h
c2s9MSBwaXJxOiAtMQ0KKFhFTikgWyAgMTA5LjU3NzAzM10gICAgICAxIHZlYz0wMCAgZml4ZWQg
IGVkZ2UgZGVhc3NlcnQgcGh5cyAgZml4ZWQgZGVzdF9pZD0wIG1hc2s9MSBwaXJxOiAtMQ0KKFhF
TikgWyAgMTA5LjU5MzY3M10gICAgICAyIHZlYz0wMCAgZml4ZWQgIGVkZ2UgZGVhc3NlcnQgcGh5
cyAgZml4ZWQgZGVzdF9pZD0wIG1hc2s9MSBwaXJxOiAtMQ0KKFhFTikgWyAgMTA5LjYxMDMxM10g
ICAgICAzIHZlYz0wMCAgZml4ZWQgIGVkZ2UgZGVhc3NlcnQgcGh5cyAgZml4ZWQgZGVzdF9pZD0w
IG1hc2s9MSBwaXJxOiAtMQ0KKFhFTikgWyAgMTA5LjYyNjk1M10gICAgICA0IHZlYz0wMCAgZml4
ZWQgIGVkZ2UgZGVhc3NlcnQgcGh5cyAgZml4ZWQgZGVzdF9pZD0wIG1hc2s9MSBwaXJxOiAtMQ0K
KFhFTikgWyAgMTA5LjY0MzU5NF0gICAgICA1IHZlYz0wMCAgZml4ZWQgIGVkZ2UgZGVhc3NlcnQg
cGh5cyAgZml4ZWQgZGVzdF9pZD0wIG1hc2s9MSBwaXJxOiAtMQ0KKFhFTikgWyAgMTA5LjY2MDIz
M10gICAgICA2IHZlYz0wMCAgZml4ZWQgIGVkZ2UgZGVhc3NlcnQgcGh5cyAgZml4ZWQgZGVzdF9p
ZD0wIG1hc2s9MSBwaXJxOiAtMQ0KKFhFTikgWyAgMTA5LjY3Njg3NF0gICAgICA3IHZlYz0wMCAg
Zml4ZWQgIGVkZ2UgZGVhc3NlcnQgcGh5cyAgZml4ZWQgZGVzdF9pZD0wIG1hc2s9MSBwaXJxOiAt
MQ0KKFhFTikgWyAgMTA5LjY5MzUxMl0gICAgICA4IHZlYz0wMCAgZml4ZWQgIGVkZ2UgZGVhc3Nl
cnQgcGh5cyAgZml4ZWQgZGVzdF9pZD0wIG1hc2s9MSBwaXJxOiAtMQ0KKFhFTikgWyAgMTA5Ljcx
MDE1M10gICAgICA5IHZlYz0wMCAgZml4ZWQgIGVkZ2UgZGVhc3NlcnQgcGh5cyAgZml4ZWQgZGVz
dF9pZD0wIG1hc2s9MSBwaXJxOiAtMQ0KKFhFTikgWyAgMTA5LjcyNjc5NF0gICAgIDEwIHZlYz0w
MCAgZml4ZWQgIGVkZ2UgZGVhc3NlcnQgcGh5cyAgZml4ZWQgZGVzdF9pZD0wIG1hc2s9MSBwaXJx
OiAtMQ0KKFhFTikgWyAgMTA5Ljc0MzQzNV0gICAgIDExIHZlYz0wMCAgZml4ZWQgIGVkZ2UgZGVh
c3NlcnQgcGh5cyAgZml4ZWQgZGVzdF9pZD0wIG1hc2s9MSBwaXJxOiAtMQ0KKFhFTikgWyAgMTA5
Ljc2MDA3M10gICAgIDEyIHZlYz0wMCAgZml4ZWQgIGVkZ2UgZGVhc3NlcnQgcGh5cyAgZml4ZWQg
ZGVzdF9pZD0wIG1hc2s9MSBwaXJxOiAtMQ0KKFhFTikgWyAgMTA5Ljc3NjcxM10gICAgIDEzIHZl
Yz0wMCAgZml4ZWQgIGVkZ2UgZGVhc3NlcnQgcGh5cyAgZml4ZWQgZGVzdF9pZD0wIG1hc2s9MSBw
aXJxOiAtMQ0KKFhFTikgWyAgMTA5Ljc5MzM1M10gICAgIDE0IHZlYz0wMCAgZml4ZWQgIGVkZ2Ug
ZGVhc3NlcnQgcGh5cyAgZml4ZWQgZGVzdF9pZD0wIG1hc2s9MSBwaXJxOiAtMQ0KKFhFTikgWyAg
MTA5LjgwOTk5NV0gICAgIDE1IHZlYz0wMCAgZml4ZWQgIGVkZ2UgZGVhc3NlcnQgcGh5cyAgZml4
ZWQgZGVzdF9pZD0wIG1hc2s9MSBwaXJxOiAtMQ0KKFhFTikgWyAgMTA5LjgyNjYzNF0gICAgIDE2
IHZlYz0wMCAgZml4ZWQgIGVkZ2UgZGVhc3NlcnQgcGh5cyAgZml4ZWQgZGVzdF9pZD0wIG1hc2s9
MSBwaXJxOiAtMQ0KKFhFTikgWyAgMTA5Ljg0MzI3M10gICAgIDE3IHZlYz0wMCAgZml4ZWQgIGVk
Z2UgZGVhc3NlcnQgcGh5cyAgZml4ZWQgZGVzdF9pZD0wIG1hc2s9MSBwaXJxOiAtMQ0KKFhFTikg
WyAgMTA5Ljg1OTkxNV0gICAgIDE4IHZlYz0wMCAgZml4ZWQgIGVkZ2UgZGVhc3NlcnQgcGh5cyAg
Zml4ZWQgZGVzdF9pZD0wIG1hc2s9MSBwaXJxOiAtMQ0KKFhFTikgWyAgMTA5Ljg3NjU1NV0gICAg
IDE5IHZlYz0wMCAgZml4ZWQgIGVkZ2UgZGVhc3NlcnQgcGh5cyAgZml4ZWQgZGVzdF9pZD0wIG1h
c2s9MSBwaXJxOiAtMQ0KKFhFTikgWyAgMTA5Ljg5MzE5NV0gICAgIDIwIHZlYz0wMCAgZml4ZWQg
IGVkZ2UgZGVhc3NlcnQgcGh5cyAgZml4ZWQgZGVzdF9pZD0wIG1hc2s9MSBwaXJxOiAtMQ0KKFhF
TikgWyAgMTA5LjkwOTgzNl0gICAgIDIxIHZlYz0wMCAgZml4ZWQgIGVkZ2UgZGVhc3NlcnQgcGh5
cyAgZml4ZWQgZGVzdF9pZD0wIG1hc2s9MSBwaXJxOiAtMQ0KKFhFTikgWyAgMTA5LjkyNjQ3N10g
ICAgIDIyIHZlYz0wMCAgZml4ZWQgIGVkZ2UgZGVhc3NlcnQgcGh5cyAgZml4ZWQgZGVzdF9pZD0w
IG1hc2s9MSBwaXJxOiAtMQ0KKFhFTikgWyAgMTA5Ljk0MzExNl0gICAgIDIzIHZlYz0wMCAgZml4
ZWQgIGVkZ2UgZGVhc3NlcnQgcGh5cyAgZml4ZWQgZGVzdF9pZD0wIG1hc2s9MSBwaXJxOiAtMQ0K
KFhFTikgWyAgMTA5Ljk1OTc1Nl0gICAgIDI0IHZlYz0wMCAgZml4ZWQgIGVkZ2UgZGVhc3NlcnQg
cGh5cyAgZml4ZWQgZGVzdF9pZD0wIG1hc2s9MSBwaXJxOiAtMQ0KKFhFTikgWyAgMTA5Ljk3NjM5
N10gICAgIDI1IHZlYz0wMCAgZml4ZWQgIGVkZ2UgZGVhc3NlcnQgcGh5cyAgZml4ZWQgZGVzdF9p
ZD0wIG1hc2s9MSBwaXJxOiAtMQ0KKFhFTikgWyAgMTA5Ljk5MzAzNV0gICAgIDI2IHZlYz0wMCAg
Zml4ZWQgIGVkZ2UgZGVhc3NlcnQgcGh5cyAgZml4ZWQgZGVzdF9pZD0wIG1hc2s9MSBwaXJxOiAt
MQ0KKFhFTikgWyAgMTEwLjAwOTY3NV0gICAgIDI3IHZlYz0wMCAgZml4ZWQgIGVkZ2UgZGVhc3Nl
cnQgcGh5cyAgZml4ZWQgZGVzdF9pZD0wIG1hc2s9MSBwaXJxOiAtMQ0KKFhFTikgWyAgMTEwLjAy
NjMxNl0gICAgIDI4IHZlYz0wMCAgZml4ZWQgIGVkZ2UgZGVhc3NlcnQgcGh5cyAgZml4ZWQgZGVz
dF9pZD0wIG1hc2s9MSBwaXJxOiAtMQ0KKFhFTikgWyAgMTEwLjA0Mjk1N10gICAgIDI5IHZlYz0w
MCAgZml4ZWQgIGVkZ2UgZGVhc3NlcnQgcGh5cyAgZml4ZWQgZGVzdF9pZD0wIG1hc2s9MSBwaXJx
OiAtMQ0KKFhFTikgWyAgMTEwLjA1OTU5NV0gICAgIDMwIHZlYz0wMCAgZml4ZWQgIGVkZ2UgZGVh
c3NlcnQgcGh5cyAgZml4ZWQgZGVzdF9pZD0wIG1hc2s9MSBwaXJxOiAtMQ0KKFhFTikgWyAgMTEw
LjA3NjIzOF0gICAgIDMxIHZlYz0wMCAgZml4ZWQgIGVkZ2UgZGVhc3NlcnQgcGh5cyAgZml4ZWQg
ZGVzdF9pZD0wIG1hc2s9MSBwaXJxOiAtMQ0KKFhFTikgWyAgMTEwLjA5Mjg3OF0gMDAwMDowMDow
OC4yIE1TSQ0KKFhFTikgWyAgMTEwLjA5OTYzNV0gICBlbmFibGVkOiAxIDY0LWJpdDogMSB2ZWN0
b3JzIG1heDogMSBlbmFibGVkOiAxDQooWEVOKSBbICAxMTAuMTExOTQzXSB2ZWM9MHgyMSAgZml4
ZWQgIGVkZ2UgZGVhc3NlcnQgcGh5cyAgZml4ZWQgZGVzdF9pZD0yIHBpcnE6IDMzMjMNCihYRU4p
IFsgIDExMC4xMjY4NTBdIDAwMDA6MDA6MDguMSBNU0kNCihYRU4pIFsgIDExMC4xMzM2MTJdICAg
ZW5hYmxlZDogMSA2NC1iaXQ6IDEgdmVjdG9ycyBtYXg6IDEgZW5hYmxlZDogMQ0KKFhFTikgWyAg
MTEwLjE0NTkxOF0gdmVjPTB4MjEgIGZpeGVkICBlZGdlIGRlYXNzZXJ0IHBoeXMgIGZpeGVkIGRl
c3RfaWQ9MCBwaXJxOiAzMzI0DQooWEVOKSBbICAxMTAuMTYwODIzXSAwMDAwOjAwOjAyLjQgTVNJ
DQooWEVOKSBbICAxMTAuMTY3NTg0XSAgIGVuYWJsZWQ6IDEgNjQtYml0OiAxIHZlY3RvcnMgbWF4
OiAxIGVuYWJsZWQ6IDENCihYRU4pIFsgIDExMC4xNzk4ODldIHZlYz0weDIwICBmaXhlZCAgZWRn
ZSBkZWFzc2VydCBwaHlzICBmaXhlZCBkZXN0X2lkPTYgcGlycTogMzMyNQ0KKFhFTikgWyAgMTEw
LjE5NDc5OF0gMDAwMDowMDowMi4zIE1TSQ0KKFhFTikgWyAgMTEwLjIwMTU1OF0gICBlbmFibGVk
OiAxIDY0LWJpdDogMSB2ZWN0b3JzIG1heDogMSBlbmFibGVkOiAxDQooWEVOKSBbICAxMTAuMjEz
ODYzXSB2ZWM9MHgyMCAgZml4ZWQgIGVkZ2UgZGVhc3NlcnQgcGh5cyAgZml4ZWQgZGVzdF9pZD00
IHBpcnE6IDMzMjYNCihYRU4pIFsgIDExMC4yMjg3NzFdIDAwMDA6MDA6MDIuMSBNU0kNCihYRU4p
IFsgIDExMC4yMzU1MzFdICAgZW5hYmxlZDogMSA2NC1iaXQ6IDEgdmVjdG9ycyBtYXg6IDEgZW5h
YmxlZDogMQ0KKFhFTikgWyAgMTEwLjI0NzgzOV0gdmVjPTB4MjAgIGZpeGVkICBlZGdlIGRlYXNz
ZXJ0IHBoeXMgIGZpeGVkIGRlc3RfaWQ9MiBwaXJxOiAzMzI3DQooWEVOKSBbICAxMTAuMjYyNzQ0
XSBbUTogZHVtcCBQQ0kgZGV2aWNlc10NCihYRU4pIFsgIDExMC4yNzAzNzJdID09PT0gUENJIGRl
dmljZXMgPT09PQ0KKFhFTikgWyAgMTEwLjI3Nzk5N10gPT09PSBzZWdtZW50IDAwMDAgPT09PQ0K
KFhFTikgWyAgMTEwLjI4NTc5N10gMDAwMDowNTowMC4xIC0gZDAgLSBub2RlIC0xICAtIE1TSXMg
PCA2MyA+DQooWEVOKSBbICAxMTAuMjk3MDY0XSAwMDAwOjA1OjAwLjAgLSBkMCAtIG5vZGUgLTEg
IC0gTVNJcyA8IDYyID4NCihYRU4pIFsgIDExMC4zMDgzMzFdIDAwMDA6MDQ6MDAuNiAtIGQwIC0g
bm9kZSAtMSAgLSBNU0lzIDwgNjUgPg0KKFhFTikgWyAgMTEwLjMxOTU5N10gMDAwMDowNDowMC41
IC0gZDAgLSBub2RlIC0xDQooWEVOKSBbICAxMTAuMzI4NDM5XSAwMDAwOjA0OjAwLjQgLSBkMCAt
IG5vZGUgLTENCihYRU4pIFsgIDExMC4zMzcyNzldIDAwMDA6MDQ6MDAuMyAtIGQwIC0gbm9kZSAt
MQ0KKFhFTikgWyAgMTEwLjM0NjExN10gMDAwMDowNDowMC4yIC0gZDAgLSBub2RlIC0xDQooWEVO
KSBbICAxMTAuMzU0OTU4XSAwMDAwOjA0OjAwLjEgLSBkMCAtIG5vZGUgLTEgIC0gTVNJcyA8IDY0
ID4NCihYRU4pIFsgIDExMC4zNjYyMjRdIDAwMDA6MDQ6MDAuMCAtIGQwIC0gbm9kZSAtMQ0KKFhF
TikgWyAgMTEwLjM3NTA2NV0gMDAwMDowMzowMC4wIC0gZDAgLSBub2RlIC0xDQooWEVOKSBbICAx
MTAuMzgzOTA2XSAwMDAwOjAyOjAwLjAgLSBkMCAtIG5vZGUgLTENCihYRU4pIFsgIDExMC4zOTI3
NDRdIDAwMDA6MDE6MDAuMSAtIGQwIC0gbm9kZSAtMQ0KKFhFTikgWyAgMTEwLjQwMTU4N10gMDAw
MDowMTowMC4wIC0gZDAgLSBub2RlIC0xDQooWEVOKSBbICAxMTAuNDEwNDI3XSAwMDAwOjAwOjE4
LjcgLSBkMCAtIG5vZGUgLTENCihYRU4pIFsgIDExMC40MTkyNjZdIDAwMDA6MDA6MTguNiAtIGQw
IC0gbm9kZSAtMQ0KKFhFTikgWyAgMTEwLjQyODEwN10gMDAwMDowMDoxOC41IC0gZDAgLSBub2Rl
IC0xDQooWEVOKSBbICAxMTAuNDM2OTQ2XSAwMDAwOjAwOjE4LjQgLSBkMCAtIG5vZGUgLTENCihY
RU4pIFsgIDExMC40NDU3ODZdIDAwMDA6MDA6MTguMyAtIGQwIC0gbm9kZSAtMQ0KKFhFTikgWyAg
MTEwLjQ1NDYyNl0gMDAwMDowMDoxOC4yIC0gZDAgLSBub2RlIC0xDQooWEVOKSBbICAxMTAuNDYz
NDY3XSAwMDAwOjAwOjE4LjEgLSBkMCAtIG5vZGUgLTENCihYRU4pIFsgIDExMC40NzIzMDZdIDAw
MDA6MDA6MTguMCAtIGQwIC0gbm9kZSAtMQ0KKFhFTikgWyAgMTEwLjQ4MTE0Nl0gMDAwMDowMDox
NC4zIC0gZDAgLSBub2RlIC0xDQooWEVOKSBbICAxMTAuNDg5OTg0XSAwMDAwOjAwOjE0LjAgLSBk
MCAtIG5vZGUgLTENCihYRU4pIFsgIDExMC40OTg4MjddIDAwMDA6MDA6MDguMiAtIGQwIC0gbm9k
ZSAtMSAgLSBNU0lzIDwgNjEgPg0KKFhFTikgWyAgMTEwLjUxMDA5M10gMDAwMDowMDowOC4xIC0g
ZDAgLSBub2RlIC0xICAtIE1TSXMgPCA2MCA+DQooWEVOKSBbICAxMTAuNTIxMzU5XSAwMDAwOjAw
OjA4LjAgLSBkMCAtIG5vZGUgLTENCihYRU4pIFsgIDExMC41MzAxOThdIDAwMDA6MDA6MDIuNCAt
IGQwIC0gbm9kZSAtMSAgLSBNU0lzIDwgNTkgPg0KKFhFTikgWyAgMTEwLjU0MTQ2N10gMDAwMDow
MDowMi4zIC0gZDAgLSBub2RlIC0xICAtIE1TSXMgPCA1OCA+DQooWEVOKSBbICAxMTAuNTUyNzM1
XSAwMDAwOjAwOjAyLjEgLSBkMCAtIG5vZGUgLTEgIC0gTVNJcyA8IDU3ID4NCihYRU4pIFsgIDEx
MC41NjQwMDBdIDAwMDA6MDA6MDIuMCAtIGQwIC0gbm9kZSAtMQ0KKFhFTikgWyAgMTEwLjU3Mjg0
MV0gMDAwMDowMDowMS4wIC0gZDAgLSBub2RlIC0xDQooWEVOKSBbICAxMTAuNTgxNjgwXSAwMDAw
OjAwOjAwLjAgLSBkMCAtIG5vZGUgLTENCihYRU4pIFsgIDExMC41OTA1MjBdIDAwMDA6MDA6MDAu
MiAtIGRbWEVOXSAtIG5vZGUgLTENCihYRU4pIFsgIDExMC42MDAwNTNdIFtTOiByZXNldCBzaGFk
b3cgcGFnZXRhYmxlc10NCihYRU4pIFsgIDExMC42MDg4OTVdICdTJyBwcmVzc2VkIC0+IGJsb3dp
bmcgYWxsIHNoYWRvdyB0YWJsZXMNCihYRU4pIFsgIDExMC42MTk4MTRdIFthOiBkdW1wIHRpbWVy
IHF1ZXVlc10NCihYRU4pIFsgIDExMC42Mjc2MTNdIER1bXBpbmcgdGltZXIgcXVldWVzOg0KKFhF
TikgWyAgMTEwLjYzNTIzOV0gQ1BVMDA6DQooWEVOKSBbICAxMTAuNjQwMjY4XSAgIGV4PSAgICAg
IDE0OTA5OXVzIHRpbWVyPWZmZmY4MmQwNDA1ZmNjYTAgY2I9YXJjaC94ODYvdGltZS5jI3RpbWVf
Y2FsaWJyYXRpb24oMDAwMDAwMDAwMDAwMDAwMCkNCihYRU4pIFsgIDExMC42NjA4OTVdICAgZXg9
ICAgIDE3Mjg4NDg2dXMgdGltZXI9ZmZmZjgyZDA0MDVlNGU0MCBjYj1hcmNoL3g4Ni9jcHUvbWNo
ZWNrL2FtZF9ub25mYXRhbC5jI21jZV9hbWRfd29ya19mbigwMDAwMDAwMDAwMDAwMDAwKQ0KKFhF
TikgWyAgMTEwLjY4NDY0Ml0gICBleD0gICAgICA0NTY3OTh1cyB0aW1lcj1mZmZmODMwN2NiMzQ5
MDcwIGNiPWNvbW1vbi9zY2hlZC9jb3JlLmMjdmNwdV9zaW5nbGVzaG90X3RpbWVyX2ZuKGZmZmY4
MzA3Y2IzNDkwMDApDQooWEVOKSBbICAxMTAuNzA3MzQ3XSAgIGV4PTg2Mzk5ODA3MjAyNzkydXMg
dGltZXI9ZmZmZjgyZDA0MDVlNTU2MCBjYj1hcmNoL3g4Ni9jcHUvYW1kLmMjZmFtMTdfZGlzYWJs
ZV9jNigwMDAwMDAwMDAwMDAwMDAwKQ0KKFhFTikgWyAgMTEwLjcyODg0MF0gICBleD0gICAgNDY3
MjEyODd1cyB0aW1lcj1mZmZmODJkMDQwNWZjYzAwIGNiPWFyY2gveDg2L3RpbWUuYyNwbHRfb3Zl
cmZsb3coMDAwMDAwMDAwMDAwMDAwMCkNCihYRU4pIFsgIDExMC43NDg3NzNdIENQVTAxOg0KKFhF
TikgWyAgMTEwLjc1MzgwMV0gICBleD0gICAgICAxMzM0MjN1cyB0aW1lcj1mZmZmODMwN2NmZDkx
NDIwIGNiPWRyaXZlcnMvY3B1ZnJlcS9jcHVmcmVxX29uZGVtYW5kLmMjZG9fZGJzX3RpbWVyKGZm
ZmY4MzA3Y2ZkOTE0NjApDQooWEVOKSBbICAxMTAuNzc3MDMwXSAgIGV4PSAgICAgIDQ1Njc5OXVz
IHRpbWVyPWZmZmY4MzA4MGYxZmYwNzAgY2I9Y29tbW9uL3NjaGVkL2NvcmUuYyN2Y3B1X3Npbmds
ZXNob3RfdGltZXJfZm4oZmZmZjgzMDgwZjFmZjAwMCkNCihYRU4pIFsgIDExMC43OTk3MzVdIENQ
VTAyOg0KKFhFTikgWyAgMTEwLjgwNDc2M10gICBleD0gICAgICAxOTM0MjN1cyB0aW1lcj1mZmZm
ODMwN2NmZDgxNDIwIGNiPWRyaXZlcnMvY3B1ZnJlcS9jcHVmcmVxX29uZGVtYW5kLmMjZG9fZGJz
X3RpbWVyKGZmZmY4MzA3Y2ZkODE0NjApDQooWEVOKSBbICAxMTAuODI3OTg3XSAgIGV4PSAgICAg
MzcwNDc5OXVzIHRpbWVyPWZmZmY4MzA4MGYxZjUwNzAgY2I9Y29tbW9uL3NjaGVkL2NvcmUuYyN2
Y3B1X3NpbmdsZXNob3RfdGltZXJfZm4oZmZmZjgzMDgwZjFmNTAwMCkNCihYRU4pIFsgIDExMC44
NTA2OTRdIENQVTAzOg0KKFhFTikgWyAgMTEwLjg1NTcyMl0gICBleD0gICAgICA0NTY3OTh1cyB0
aW1lcj1mZmZmODMwODBmMWViMDcwIGNiPWNvbW1vbi9zY2hlZC9jb3JlLmMjdmNwdV9zaW5nbGVz
aG90X3RpbWVyX2ZuKGZmZmY4MzA4MGYxZWIwMDApDQooWEVOKSBbICAxMTAuODc4NDI4XSBDUFUw
NDoNCihYRU4pIFsgIDExMC44ODM0NTZdIENQVTA1Og0KKFhFTikgWyAgMTEwLjg4ODQ4NF0gQ1BV
MDY6DQooWEVOKSBbICAxMTAuODkzNTA4XSBDUFUwNzoNCihYRU4pIFsgIDExMC44OTg1MzRdIENQ
VTA4Og0KKFhFTikgWyAgMTEwLjkwMzU2NF0gQ1BVMDk6DQooWEVOKSBbICAxMTAuOTA4NTg5XSBD
UFUxMDoNCihYRU4pIFsgIDExMC45MTM2MTddIENQVTExOg0KKFhFTikgWyAgMTEwLjkxODY0M10g
Q1BVMTI6DQooWEVOKSBbICAxMTAuOTIzNjY5XSBDUFUxMzoNCihYRU4pIFsgIDExMC45Mjg2OTdd
IENQVTE0Og0KKFhFTikgWyAgMTEwLjkzMzcyMV0gQ1BVMTU6DQooWEVOKSBbICAxMTAuOTM4NzQ5
XSBbYzogZHVtcCBBQ1BJIEN4IHN0cnVjdHVyZXNdDQooWEVOKSBbICAxMTAuOTQ3NTkwXSAnYycg
cHJlc3NlZCAtPiBwcmludGluZyBBQ1BJIEN4IHN0cnVjdHVyZXMNCihYRU4pIFsgIDExMC45NTg4
NTZdIG1heCBzdGF0ZTogdW5saW1pdGVkDQooWEVOKSBbICAxMTAuOTY2MzA5XSA9PWNwdTA9PQ0K
KFhFTikgWyAgMTEwLjk3MTY4NV0gICAgKkMxOgl0eXBlW0MxXSBsYXRlbmN5WyAgMV0gdXNhZ2Vb
ICAgIDQzMTNdIG1ldGhvZFsgIEZGSF0gZHVyYXRpb25bMTA5Mzg0OTQwODddDQooWEVOKSBbICAx
MTAuOTg5NzExXSAgICAgQzI6CXR5cGVbQzJdIGxhdGVuY3lbNDAwXSB1c2FnZVsgICAgIDQ4N10g
bWV0aG9kWyBIQUxUXSBkdXJhdGlvbls3NDE5MjI4MjE5OF0NCihYRU4pIFsgIDExMS4wMDc3Mzdd
ICAgICBDMDoJdXNhZ2VbICAgIDQ4MDBdIGR1cmF0aW9uWzI1ODM5ODcwNzM4XQ0KKFhFTikgWyAg
MTExLjAxOTUyNV0gUEMyWzBdIFBDM1swXSBQQzZbMF0gUEM3WzBdDQooWEVOKSBbICAxMTEuMDI4
MTg5XSBDQzNbMF0gQ0M2WzBdIENDN1swXQ0KKFhFTikgWyAgMTExLjAzNTY0Ml0gPT1jcHUxPT0N
CihYRU4pIFsgIDExMS4wNDEwMTddICAgICBDMToJdHlwZVtDMV0gbGF0ZW5jeVsgIDFdIHVzYWdl
WyAgICAzODc2XSBtZXRob2RbICBGRkhdIGR1cmF0aW9uWzI4MTI2NTIyMTNdDQooWEVOKSBbICAx
MTEuMDU4ODY5XSAgICAgQzI6CXR5cGVbQzJdIGxhdGVuY3lbNDAwXSB1c2FnZVsgICAgIDMyOV0g
bWV0aG9kWyBIQUxUXSBkdXJhdGlvbls5NjI1NTY1NzQ1XQ0KKFhFTikgWyAgMTExLjA3NjcyNV0g
ICAgKkMwOgl1c2FnZVsgICAgNDIwNl0gZHVyYXRpb25bOTg2MDE3NjI4MDhdDQooWEVOKSBbICAx
MTEuMDg4NTEwXSBQQzJbMF0gUEMzWzBdIFBDNlswXSBQQzdbMF0NCihYRU4pIFsgIDExMS4wOTcx
NzhdIENDM1swXSBDQzZbMF0gQ0M3WzBdDQooWEVOKSBbICAxMTEuMTA0NjMwXSA9PWNwdTI9PQ0K
KFhFTikgWyAgMTExLjExMDAwNV0gICAgIEMxOgl0eXBlW0MxXSBsYXRlbmN5WyAgMV0gdXNhZ2Vb
ICAgIDY1MzNdIG1ldGhvZFsgIEZGSF0gZHVyYXRpb25bMjY4MjEzODY3MF0NCihYRU4pIFsgIDEx
MS4xMjc4NThdICAgICBDMjoJdHlwZVtDMl0gbGF0ZW5jeVs0MDBdIHVzYWdlWyAgICAgMjkwXSBt
ZXRob2RbIEhBTFRdIGR1cmF0aW9uWzEwNTE2NTU3NTAyXQ0KKFhFTikgWyAgMTExLjE0NTg4M10g
ICAgKkMwOgl1c2FnZVsgICAgNjgyNF0gZHVyYXRpb25bOTc5MTAyNzE5MjZdDQooWEVOKSBbICAx
MTEuMTU3NjcxXSBQQzJbMF0gUEMzWzBdIFBDNlswXSBQQzdbMF0NCihYRU4pIFsgIDExMS4xNjYz
MzddIENDM1swXSBDQzZbMF0gQ0M3WzBdDQooWEVOKSBbICAxMTEuMTczNzkxXSA9PWNwdTM9PQ0K
KFhFTikgWyAgMTExLjE3OTE2NF0gICAgIEMxOgl0eXBlW0MxXSBsYXRlbmN5WyAgMV0gdXNhZ2Vb
ICAgIDQ4NDNdIG1ldGhvZFsgIEZGSF0gZHVyYXRpb25bMjkzOTQzOTg4N10NCihYRU4pIFsgIDEx
MS4xOTcwMTldICAgICBDMjoJdHlwZVtDMl0gbGF0ZW5jeVs0MDBdIHVzYWdlWyAgICAgMzA0XSBt
ZXRob2RbIEhBTFRdIGR1cmF0aW9uWzEwMjgyNTk1NjQ2XQ0KKFhFTikgWyAgMTExLjIxNTA0Nl0g
ICAgKkMwOgl1c2FnZVsgICAgNTE0OF0gZHVyYXRpb25bOTc5NTYwOTE5NTBdDQooWEVOKSBbICAx
MTEuMjI2ODMyXSBQQzJbMF0gUEMzWzBdIFBDNlswXSBQQzdbMF0NCihYRU4pIFsgIDExMS4yMzU0
OTldIENDM1swXSBDQzZbMF0gQ0M3WzBdDQooWEVOKSBbICAxMTEuMjQyOTUzXSA9PWNwdTQ9PQ0K
KFhFTikgWyAgMTExLjI0ODMyNF0gICAgIEMxOgl0eXBlW0MxXSBsYXRlbmN5WyAgMV0gdXNhZ2Vb
ICAgICAgMzhdIG1ldGhvZFsgIEZGSF0gZHVyYXRpb25bODEyMjQxMzc5XQ0KKFhFTikgWyAgMTEx
LjI2NjAwNF0gICAgKkMyOgl0eXBlW0MyXSBsYXRlbmN5WzQwMF0gdXNhZ2VbICAgICAxNjBdIG1l
dGhvZFsgSEFMVF0gZHVyYXRpb25bMTAyMjUzMzQ5NDMxXQ0KKFhFTikgWyAgMTExLjI4NDIwNF0g
ICAgIEMwOgl1c2FnZVsgICAgIDE5OF0gZHVyYXRpb25bODE4MTY5NjA2OF0NCihYRU4pIFsgIDEx
MS4yOTU4MjBdIFBDMlswXSBQQzNbMF0gUEM2WzBdIFBDN1swXQ0KKFhFTikgWyAgMTExLjMwNDQ4
Nl0gQ0MzWzBdIENDNlswXSBDQzdbMF0NCihYRU4pIFsgIDExMS4zMTE5MzldID09Y3B1NT09DQoo
WEVOKSBbICAxMTEuMzE3MzEyXSAgICAgQzE6CXR5cGVbQzFdIGxhdGVuY3lbICAxXSB1c2FnZVsg
ICAgICAzNF0gbWV0aG9kWyAgRkZIXSBkdXJhdGlvbls3ODA1ODc0MTZdDQooWEVOKSBbICAxMTEu
MzM0OTkxXSAgICAqQzI6CXR5cGVbQzJdIGxhdGVuY3lbNDAwXSB1c2FnZVsgICAgIDE1OF0gbWV0
aG9kWyBIQUxUXSBkdXJhdGlvblsxMDI5MDA0NTQ3NjZdDQooWEVOKSBbICAxMTEuMzUzMTkzXSAg
ICAgQzA6CXVzYWdlWyAgICAgMTkyXSBkdXJhdGlvbls3NjM1MjMyMzI4XQ0KKFhFTikgWyAgMTEx
LjM2NDgwNV0gUEMyWzBdIFBDM1swXSBQQzZbMF0gUEM3WzBdDQooWEVOKSBbICAxMTEuMzczNDcz
XSBDQzNbMF0gQ0M2WzBdIENDN1swXQ0KKFhFTikgWyAgMTExLjM4MDkyNV0gPT1jcHU2PT0NCihY
RU4pIFsgIDExMS4zODYzMDBdICAgICBDMToJdHlwZVtDMV0gbGF0ZW5jeVsgIDFdIHVzYWdlWyAg
ICAgIDM2XSBtZXRob2RbICBGRkhdIGR1cmF0aW9uWzc2MTkzOTQ0NV0NCihYRU4pIFsgIDExMS40
MDM5ODBdICAgICpDMjoJdHlwZVtDMl0gbGF0ZW5jeVs0MDBdIHVzYWdlWyAgICAgMTU0XSBtZXRo
b2RbIEhBTFRdIGR1cmF0aW9uWzEwMjE3NTcwMDM2MV0NCihYRU4pIFsgIDExMS40MjIxNzldICAg
ICBDMDoJdXNhZ2VbICAgICAxOTBdIGR1cmF0aW9uWzg0NDc2MjIxNjVdDQooWEVOKSBbICAxMTEu
NDMzNzk0XSBQQzJbMF0gUEMzWzBdIFBDNlswXSBQQzdbMF0NCihYRU4pIFsgIDExMS40NDI0NjFd
IENDM1swXSBDQzZbMF0gQ0M3WzBdDQooWEVOKSBbICAxMTEuNDQ5OTE0XSA9PWNwdTc9PQ0KKFhF
TikgWyAgMTExLjQ1NTI4Nl0gICAgIEMxOgl0eXBlW0MxXSBsYXRlbmN5WyAgMV0gdXNhZ2VbICAg
ICAgMjldIG1ldGhvZFsgIEZGSF0gZHVyYXRpb25bNzUxOTc0MjUwXQ0KKFhFTikgWyAgMTExLjQ3
Mjk2OF0gICAgKkMyOgl0eXBlW0MyXSBsYXRlbmN5WzQwMF0gdXNhZ2VbICAgICAxNTRdIG1ldGhv
ZFsgSEFMVF0gZHVyYXRpb25bMTAzMDI3MzM3Mzk4XQ0KKFhFTikgWyAgMTExLjQ5MTE2Nl0gICAg
IEMwOgl1c2FnZVsgICAgIDE4M10gZHVyYXRpb25bNzY3NDkzNzY4NV0NCihYRU4pIFsgIDExMS41
MDI3ODFdIFBDMlswXSBQQzNbMF0gUEM2WzBdIFBDN1swXQ0KKFhFTikgWyAgMTExLjUxMTQ0OF0g
Q0MzWzBdIENDNlswXSBDQzdbMF0NCihYRU4pIFsgIDExMS41MTg5MDJdID09Y3B1OD09DQooWEVO
KSBbICAxMTEuNTI0Mjc1XSAgICAgQzE6CXR5cGVbQzFdIGxhdGVuY3lbICAxXSB1c2FnZVsgICA3
NjY5Ml0gbWV0aG9kWyAgRkZIXSBkdXJhdGlvblsxNzY4MjA3MDIwNF0NCihYRU4pIFsgIDExMS41
NDIzMDJdICAgICBDMjoJdHlwZVtDMl0gbGF0ZW5jeVs0MDBdIHVzYWdlWyAgICAgMjAyXSBtZXRo
b2RbIEhBTFRdIGR1cmF0aW9uWzgwMjU3MDUzNTcwXQ0KKFhFTikgWyAgMTExLjU2MDMyOF0gICAg
KkMwOgl1c2FnZVsgICA3Njg5NV0gZHVyYXRpb25bMTM1ODQxMTEyMjZdDQooWEVOKSBbICAxMTEu
NTcyMTE0XSBQQzJbMF0gUEMzWzBdIFBDNlswXSBQQzdbMF0NCihYRU4pIFsgIDExMS41ODA3ODFd
IENDM1swXSBDQzZbMF0gQ0M3WzBdDQooWEVOKSBbICAxMTEuNTg4MjM0XSA9PWNwdTk9PQ0KKFhF
TikgWyAgMTExLjU5MzYwNl0gICAgIEMxOgl0eXBlW0MxXSBsYXRlbmN5WyAgMV0gdXNhZ2VbICAg
ICAgMjVdIG1ldGhvZFsgIEZGSF0gZHVyYXRpb25bNzI0MDAzOTcxXQ0KKFhFTikgWyAgMTExLjYx
MTI4OV0gICAgKkMyOgl0eXBlW0MyXSBsYXRlbmN5WzQwMF0gdXNhZ2VbICAgICAxNDldIG1ldGhv
ZFsgSEFMVF0gZHVyYXRpb25bMTAzMTUyOTU0MTA3XQ0KKFhFTikgWyAgMTExLjYyOTQ4OF0gICAg
IEMwOgl1c2FnZVsgICAgIDE3NF0gZHVyYXRpb25bNzcxNTYxMTIyN10NCihYRU4pIFsgIDExMS42
NDExMDFdIFBDMlswXSBQQzNbMF0gUEM2WzBdIFBDN1swXQ0KKFhFTikgWyAgMTExLjY0OTc2N10g
Q0MzWzBdIENDNlswXSBDQzdbMF0NCihYRU4pIFsgIDExMS42NTcyMjBdID09Y3B1MTA9PQ0KKFhF
TikgWyAgMTExLjY2Mjc2OF0gICAgIEMxOgl0eXBlW0MxXSBsYXRlbmN5WyAgMV0gdXNhZ2VbICAg
ICAgMjddIG1ldGhvZFsgIEZGSF0gZHVyYXRpb25bNzEwNTc0OTIyXQ0KKFhFTikgWyAgMTExLjY4
MDQ0OF0gICAgKkMyOgl0eXBlW0MyXSBsYXRlbmN5WzQwMF0gdXNhZ2VbICAgICAxNDNdIG1ldGhv
ZFsgSEFMVF0gZHVyYXRpb25bMTAyNzIwNTM0MzcyXQ0KKFhFTikgWyAgMTExLjY5ODY0OV0gICAg
IEMwOgl1c2FnZVsgICAgIDE3MF0gZHVyYXRpb25bODIzMDYyMjUyMl0NCihYRU4pIFsgIDExMS43
MTAyNjFdIFBDMlswXSBQQzNbMF0gUEM2WzBdIFBDN1swXQ0KKFhFTikgWyAgMTExLjcxODkzMF0g
Q0MzWzBdIENDNlswXSBDQzdbMF0NCihYRU4pIFsgIDExMS43MjYzODNdID09Y3B1MTE9PQ0KKFhF
TikgWyAgMTExLjczMTkyOF0gICAgIEMxOgl0eXBlW0MxXSBsYXRlbmN5WyAgMV0gdXNhZ2VbICAg
ICAgMjVdIG1ldGhvZFsgIEZGSF0gZHVyYXRpb25bNzEwNTczNzE3XQ0KKFhFTikgWyAgMTExLjc0
OTYwOF0gICAgKkMyOgl0eXBlW0MyXSBsYXRlbmN5WzQwMF0gdXNhZ2VbICAgICAxNDNdIG1ldGhv
ZFsgSEFMVF0gZHVyYXRpb25bMTAzMjYyOTA0MjM4XQ0KKFhFTikgWyAgMTExLjc2NzgwOV0gICAg
IEMwOgl1c2FnZVsgICAgIDE2OF0gZHVyYXRpb25bNzc1NzQxMzM1Nl0NCihYRU4pIFsgIDExMS43
Nzk0MjFdIFBDMlswXSBQQzNbMF0gUEM2WzBdIFBDN1swXQ0KKFhFTikgWyAgMTExLjc4ODA5MF0g
Q0MzWzBdIENDNlswXSBDQzdbMF0NCihYRU4pIFsgIDExMS43OTU1NDNdID09Y3B1MTI9PQ0KKFhF
TikgWyAgMTExLjgwMTA4OV0gICAgIEMxOgl0eXBlW0MxXSBsYXRlbmN5WyAgMV0gdXNhZ2VbICAg
IDM0OTZdIG1ldGhvZFsgIEZGSF0gZHVyYXRpb25bMTIyOTU1MzAxNF0NCihYRU4pIFsgIDExMS44
MTg5NDRdICAgICBDMjoJdHlwZVtDMl0gbGF0ZW5jeVs0MDBdIHVzYWdlWyAgICAgMTI5XSBtZXRo
b2RbIEhBTFRdIGR1cmF0aW9uWzEwMTI1Mjk2ODczOV0NCihYRU4pIFsgIDExMS44MzcxNDNdICAg
ICpDMDoJdXNhZ2VbICAgIDM2MjZdIGR1cmF0aW9uWzkzMTc1MzI0NTBdDQooWEVOKSBbICAxMTEu
ODQ4NzU3XSBQQzJbMF0gUEMzWzBdIFBDNlswXSBQQzdbMF0NCihYRU4pIFsgIDExMS44NTc0MjNd
IENDM1swXSBDQzZbMF0gQ0M3WzBdDQooWEVOKSBbICAxMTEuODY0ODc2XSA9PWNwdTEzPT0NCihY
RU4pIFsgIDExMS44NzA0MjFdICAgICBDMToJdHlwZVtDMV0gbGF0ZW5jeVsgIDFdIHVzYWdlWyAg
IDEyNjQ2XSBtZXRob2RbICBGRkhdIGR1cmF0aW9uWzI2ODY1NzU1ODBdDQooWEVOKSBbICAxMTEu
ODg4Mjc4XSAgICAqQzI6CXR5cGVbQzJdIGxhdGVuY3lbNDAwXSB1c2FnZVsgICAgIDEzNF0gbWV0
aG9kWyBIQUxUXSBkdXJhdGlvblsxMDEyMDE4MzY5MjRdDQooWEVOKSBbICAxMTEuOTA2NDc2XSAg
ICAgQzA6CXVzYWdlWyAgIDEyNzgwXSBkdXJhdGlvbls3OTgwOTc0MjgwXQ0KKFhFTikgWyAgMTEx
LjkxODA4OF0gUEMyWzBdIFBDM1swXSBQQzZbMF0gUEM3WzBdDQooWEVOKSBbICAxMTEuOTI2NzU3
XSBDQzNbMF0gQ0M2WzBdIENDN1swXQ0KKFhFTikgWyAgMTExLjkzNDIxMV0gPT1jcHUxND09DQoo
WEVOKSBbICAxMTEuOTM5NzU2XSAgICAgQzE6CXR5cGVbQzFdIGxhdGVuY3lbICAxXSB1c2FnZVsg
ICAgICAyNF0gbWV0aG9kWyAgRkZIXSBkdXJhdGlvbls2NjI5NTc5NDhdDQooWEVOKSBbICAxMTEu
OTU3NDM2XSAgICAqQzI6CXR5cGVbQzJdIGxhdGVuY3lbNDAwXSB1c2FnZVsgICAgIDE0MF0gbWV0
aG9kWyBIQUxUXSBkdXJhdGlvblsxMDI4NjY0Mzc5OTNdDQooWEVOKSBbICAxMTEuOTc1NjM4XSAg
ICAgQzA6CXVzYWdlWyAgICAgMTY0XSBkdXJhdGlvbls4NDA5MzIzMjQ0XQ0KKFhFTikgWyAgMTEx
Ljk4NzI0OV0gUEMyWzBdIFBDM1swXSBQQzZbMF0gUEM3WzBdDQooWEVOKSBbICAxMTEuOTk1OTE3
XSBDQzNbMF0gQ0M2WzBdIENDN1swXQ0KKFhFTikgWyAgMTEyLjAwMzM3MV0gPT1jcHUxNT09DQoo
WEVOKSBbICAxMTIuMDA4OTE3XSAgICAgQzE6CXR5cGVbQzFdIGxhdGVuY3lbICAxXSB1c2FnZVsg
ICAgICAxOF0gbWV0aG9kWyAgRkZIXSBkdXJhdGlvblsxMTI2MTc2MTNdDQooWEVOKSBbICAxMTIu
MDI2NTk5XSAgICAqQzI6CXR5cGVbQzJdIGxhdGVuY3lbNDAwXSB1c2FnZVsgICAgIDE0MF0gbWV0
aG9kWyBIQUxUXSBkdXJhdGlvblsxMDQwNTczMjE0NTZdDQooWEVOKSBbICAxMTIuMDQ0Nzk3XSAg
ICAgQzA6CXVzYWdlWyAgICAgMTU4XSBkdXJhdGlvbls3ODM3OTQxMTI0XQ0KKFhFTikgWyAgMTEy
LjA1NjQxMl0gUEMyWzBdIFBDM1swXSBQQzZbMF0gUEM3WzBdDQooWEVOKSBbICAxMTIuMDY1MDc5
XSBDQzNbMF0gQ0M2WzBdIENDN1swXQ0KKFhFTikgWyAgMTEyLjA3MjUzMV0gW2U6IGR1bXAgZXZ0
Y2huIGluZm9dDQooWEVOKSBbICAxMTIuMDgwMTU4XSAnZScgcHJlc3NlZCAtPiBkdW1waW5nIGV2
ZW50LWNoYW5uZWwgaW5mbw0KKFhFTikgWyAgMTEyLjA5MTI1MV0gRXZlbnQgY2hhbm5lbCBpbmZv
cm1hdGlvbiBmb3IgZG9tYWluIDA6DQooWEVOKSBbICAxMTIuMTAxOTk5XSBQb2xsaW5nIHZDUFVz
OiB7fQ0KKFhFTikgWyAgMTEyLjEwODkzMV0gICAgIHBvcnQgW3AvbS9zXQ0KKFhFTikgWyAgMTEy
LjExNTY5Ml0gICAgICAgIDEgWzAvMC8gIC0gICBdOiBzPTUgbj0wIHg9MCB2PTANCihYRU4pIFsg
IDExMi4xMjYyNjVdICAgICAgICAyIFswLzAvICAtICAgXTogcz02IG49MCB4PTANCihYRU4pIFsg
IDExMi4xMzYxNDVdICAgICAgICAzIFswLzAvICAtICAgXTogcz02IG49MCB4PTANCihYRU4pIFsg
IDExMi4xNDYwMjZdICAgICAgICA0IFswLzAvICAtICAgXTogcz02IG49MCB4PTANCihYRU4pIFsg
IDExMi4xNTU5MDVdICAgICAgICA1IFswLzAvICAtICAgXTogcz01IG49MSB4PTAgdj0wDQooWEVO
KSBbICAxMTIuMTY2NDc4XSAgICAgICAgNiBbMC8wLyAgLSAgIF06IHM9NiBuPTEgeD0wDQooWEVO
KSBbICAxMTIuMTc2MzU4XSAgICAgICAgNyBbMC8wLyAgLSAgIF06IHM9NiBuPTEgeD0wDQooWEVO
KSBbICAxMTIuMTg2MjM3XSAgICAgICAgOCBbMC8wLyAgLSAgIF06IHM9NiBuPTEgeD0wDQooWEVO
KSBbICAxMTIuMTk2MTE4XSAgICAgICAgOSBbMC8wLyAgLSAgIF06IHM9NSBuPTIgeD0wIHY9MA0K
KFhFTikgWyAgMTEyLjIwNjY5MF0gICAgICAgMTAgWzAvMC8gIC0gICBdOiBzPTYgbj0yIHg9MA0K
KFhFTikgWyAgMTEyLjIxNjU3MV0gICAgICAgMTEgWzAvMC8gIC0gICBdOiBzPTYgbj0yIHg9MA0K
KFhFTikgWyAgMTEyLjIyNjQ1MV0gICAgICAgMTIgWzAvMC8gIC0gICBdOiBzPTYgbj0yIHg9MA0K
KFhFTikgWyAgMTEyLjIzNjMzM10gICAgICAgMTMgWzAvMC8gIC0gICBdOiBzPTUgbj0zIHg9MCB2
PTANCihYRU4pIFsgIDExMi4yNDY5MDddICAgICAgIDE0IFswLzAvICAtICAgXTogcz02IG49MyB4
PTANCihYRU4pIFsgIDExMi4yNTY3ODZdICAgICAgIDE1IFswLzAvICAtICAgXTogcz02IG49MyB4
PTANCihYRU4pIFsgIDExMi4yNjY2NjVdICAgICAgIDE2IFswLzAvICAtICAgXTogcz02IG49MyB4
PTANCihYRU4pIFsgIDExMi4yNzY1NDZdICAgICAgIDE3IFswLzAvICAtICAgXTogcz0yIG49MSB4
PTAgZD0wDQooWEVOKSBbICAxMTIuMjg3MTE4XSAgICAgICAxOCBbMC8wLyAgLSAgIF06IHM9NSBu
PTIgeD0wIHY9OQ0KKFhFTikgWyAgMTEyLjI5NzY5NF0gICAgICAgMTkgWzAvMC8gIC0gICBdOiBz
PTUgbj0zIHg9MCB2PTINCihYRU4pIFsgIDExMi4zMDgyNjZdIFtnOiBwcmludCBncmFudCB0YWJs
ZSB1c2FnZV0NCihYRU4pIFsgIDExMi4zMTcxMDddIGdudHRhYl91c2FnZV9wcmludF9hbGwgWyBr
ZXkgJ2cnIHByZXNzZWQNCihYRU4pIFsgIDExMi4zMjgwMjZdICAgICAgIC0tLS0tLS0tIGFjdGl2
ZSAtLS0tLS0tLSAgICAgICAtLS0tLS0tLSBzaGFyZWQgLS0tLS0tLS0NCihYRU4pIFsgIDExMi4z
NDI1ODVdIFtyZWZdIGxvY2FsZG9tIG1mbiAgICAgIHBpbiAgICAgICAgICBsb2NhbGRvbSBnbWZu
ICAgICBmbGFncw0KKFhFTikgWyAgMTEyLjM1Njk3NF0gZ3JhbnQtdGFibGUgZm9yIHJlbW90ZSBk
MCAodjEpDQooWEVOKSBbICAxMTIuMzY2MTYxXSAgIDEgZnJhbWVzICg2NCBtYXgpLCAwIG1hcHRy
YWNrIGZyYW1lcyAoMTAyNCBtYXgpDQooWEVOKSBbICAxMTIuMzc4NjQxXSBubyBhY3RpdmUgZ3Jh
bnQgdGFibGUgZW50cmllcw0KKFhFTikgWyAgMTEyLjM4NzY1NF0gZ250dGFiX3VzYWdlX3ByaW50
X2FsbCBdIGRvbmUNCihYRU4pIFsgIDExMi4zOTY2NjhdIFtpOiBkdW1wIGludGVycnVwdCBiaW5k
aW5nc10NCihYRU4pIFsgIDExMi40MDU1MDVdIElSUSBpbmZvcm1hdGlvbjoNCihYRU4pIFsgIDEx
Mi40MTIyNjZdICAgIElSUTogICAwIHZlYzpmMCBJTy1BUElDLWVkZ2UgICAgc3RhdHVzPTAwMCBh
ZmY6ezB9L3swfSBhcmNoL3g4Ni90aW1lLmMjdGltZXJfaW50ZXJydXB0KCkNCihYRU4pIFsgIDEx
Mi40MzIwMjhdICAgIElSUTogICAxIHZlYzozOCBJTy1BUElDLWVkZ2UgICAgc3RhdHVzPTAwMiBh
ZmY6ezB9L3swfSBtYXBwZWQsIHVuYm91bmQNCihYRU4pIFsgIDExMi40NDg2NjZdICAgIElSUTog
ICAzIHZlYzo0MCBJTy1BUElDLWVkZ2UgICAgc3RhdHVzPTAwMiBhZmY6ezB9L3swfSBtYXBwZWQs
IHVuYm91bmQNCihYRU4pIFsgIDExMi40NjUzMDhdICAgIElSUTogICA0IHZlYzpmMSBJTy1BUElD
LWVkZ2UgICAgc3RhdHVzPTAwMCBhZmY6ezAtMTV9L3swLTE1fSBkcml2ZXJzL2NoYXIvbnMxNjU1
MC5jI25zMTY1NTBfaW50ZXJydXB0KCkNCihYRU4pIFsgIDExMi40ODc2NjZdICAgIElSUTogICA1
IHZlYzo0OCBJTy1BUElDLWVkZ2UgICAgc3RhdHVzPTAwMiBhZmY6ezB9L3swfSBtYXBwZWQsIHVu
Ym91bmQNCihYRU4pIFsgIDExMi41MDQzMDddICAgIElSUTogICA2IHZlYzo1MCBJTy1BUElDLWVk
Z2UgICAgc3RhdHVzPTAwMiBhZmY6ezB9L3swfSBtYXBwZWQsIHVuYm91bmQNCihYRU4pIFsgIDEx
Mi41MjA5NDddICAgIElSUTogICA3IHZlYzo1OCBJTy1BUElDLWVkZ2UgICAgc3RhdHVzPTAwMiBh
ZmY6ezB9L3swfSBtYXBwZWQsIHVuYm91bmQNCihYRU4pIFsgIDExMi41Mzc1ODhdICAgIElSUTog
ICA4IHZlYzo2MCBJTy1BUElDLWVkZ2UgICAgc3RhdHVzPTAwMiBhZmY6ezB9L3swfSBtYXBwZWQs
IHVuYm91bmQNCihYRU4pIFsgIDExMi41NTQyMjhdICAgIElSUTogICA5IHZlYzo2OCBJTy1BUElD
LWxldmVsICAgc3RhdHVzPTAxMCBhZmY6ezB9L3swfSBpbi1mbGlnaHQ9MCBkMDogIDkoLU0tKQ0K
KFhFTikgWyAgMTEyLjU3MjI1NV0gICAgSVJROiAgMTAgdmVjOjcwIElPLUFQSUMtZWRnZSAgICBz
dGF0dXM9MDAyIGFmZjp7MH0vezB9IG1hcHBlZCwgdW5ib3VuZA0KKFhFTikgWyAgMTEyLjU4ODg5
Nl0gICAgSVJROiAgMTEgdmVjOjc4IElPLUFQSUMtZWRnZSAgICBzdGF0dXM9MDAyIGFmZjp7MH0v
ezB9IG1hcHBlZCwgdW5ib3VuZA0KKFhFTikgWyAgMTEyLjYwNTUzNV0gICAgSVJROiAgMTIgdmVj
Ojg4IElPLUFQSUMtZWRnZSAgICBzdGF0dXM9MDAyIGFmZjp7MH0vezB9IG1hcHBlZCwgdW5ib3Vu
ZA0KKFhFTikgWyAgMTEyLjYyMjE3Nl0gICAgSVJROiAgMTMgdmVjOjkwIElPLUFQSUMtZWRnZSAg
ICBzdGF0dXM9MDAyIGFmZjp7MH0vezB9IG1hcHBlZCwgdW5ib3VuZA0KKFhFTikgWyAgMTEyLjYz
ODgxNF0gICAgSVJROiAgMTQgdmVjOjk4IElPLUFQSUMtZWRnZSAgICBzdGF0dXM9MDAyIGFmZjp7
MH0vezB9IG1hcHBlZCwgdW5ib3VuZA0KKFhFTikgWyAgMTEyLjY1NTQ1N10gICAgSVJROiAgMTUg
dmVjOmEwIElPLUFQSUMtZWRnZSAgICBzdGF0dXM9MDAyIGFmZjp7MH0vezB9IG1hcHBlZCwgdW5i
b3VuZA0KKFhFTikgWyAgMTEyLjY3MjA5Nl0gICAgSVJROiAgNTYgdmVjOjMwIEFNRC1JT01NVS1N
U0kgICBzdGF0dXM9MDAwIGFmZjp7MC0xNX0vezB9IGRyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL2lv
bW11X2luaXQuYyNpb21tdV9pbnRlcnJ1cHRfaGFuZGxlcigpDQooWEVOKSBbICAxMTIuNjk3NDAx
XSAgICBJUlE6ICA1NyB2ZWM6YTggUENJLU1TSSAgICAgICAgIHN0YXR1cz0wMzAgYWZmOnswfS97
MH0gaW4tZmxpZ2h0PTAgZDA6MzMyNygtTS0pDQooWEVOKSBbICAxMTIuNzE1NjAzXSAgICBJUlE6
ICA1OCB2ZWM6YjAgUENJLU1TSSAgICAgICAgIHN0YXR1cz0wMzAgYWZmOnswfS97MH0gaW4tZmxp
Z2h0PTAgZDA6MzMyNigtTS0pDQooWEVOKSBbICAxMTIuNzMzODAyXSAgICBJUlE6ICA1OSB2ZWM6
YjggUENJLU1TSSAgICAgICAgIHN0YXR1cz0wMzAgYWZmOnswfS97MH0gaW4tZmxpZ2h0PTAgZDA6
MzMyNSgtTS0pDQooWEVOKSBbICAxMTIuNzUyMDAyXSAgICBJUlE6ICA2MCB2ZWM6YzAgUENJLU1T
SSAgICAgICAgIHN0YXR1cz0wMzAgYWZmOnswfS97MH0gaW4tZmxpZ2h0PTAgZDA6MzMyNCgtTS0p
DQooWEVOKSBbICAxMTIuNzcwMjAxXSAgICBJUlE6ICA2MSB2ZWM6YzggUENJLU1TSSAgICAgICAg
IHN0YXR1cz0wMzAgYWZmOnswfS97MH0gaW4tZmxpZ2h0PTAgZDA6MzMyMygtTS0pDQooWEVOKSBb
ICAxMTIuNzg4NDAxXSAgICBJUlE6ICA2MiB2ZWM6ZDAgUENJLU1TSSAgICAgICAgIHN0YXR1cz0w
MzAgYWZmOnswfS97MH0gaW4tZmxpZ2h0PTAgZDA6MzMyMigtTS0pDQooWEVOKSBbICAxMTIuODA2
NjAzXSAgICBJUlE6ICA2MyB2ZWM6ZDggUENJLU1TSSAgICAgICAgIHN0YXR1cz0wMzAgYWZmOnsw
fS97MH0gaW4tZmxpZ2h0PTAgZDA6MzMyMSgtTS0pDQooWEVOKSBbICAxMTIuODI0ODA0XSAgICBJ
UlE6ICA2NCB2ZWM6MjkgUENJLU1TSSAgICAgICAgIHN0YXR1cz0wMDIgYWZmOnsyfS97Mn0gbWFw
cGVkLCB1bmJvdW5kDQooWEVOKSBbICAxMTIuODQxNDQ1XSAgICBJUlE6ICA2NSB2ZWM6MzEgUENJ
LU1TSSAgICAgICAgIHN0YXR1cz0wMDIgYWZmOnszfS97M30gbWFwcGVkLCB1bmJvdW5kDQooWEVO
KSBbICAxMTIuODU4MDgzXSBEaXJlY3QgdmVjdG9yIGluZm9ybWF0aW9uOg0KKFhFTikgWyAgMTEy
Ljg2NjU3N10gICAgMHgyMiAtPiBpcnFfbW92ZV9jbGVhbnVwX2ludGVycnVwdCgpDQooWEVOKSBb
ICAxMTIuODc3MzI0XSAgICAweGY5IC0+IGFyY2gveDg2L2FwaWMuYyNwbXVfaW50ZXJydXB0KCkN
CihYRU4pIFsgIDExMi44ODg1OTJdICAgIDB4ZmEgLT4gYXJjaC94ODYvYXBpYy5jI2FwaWNfdGlt
ZXJfaW50ZXJydXB0KCkNCihYRU4pIFsgIDExMi45MDEwNzJdICAgIDB4ZmIgLT4gY2FsbF9mdW5j
dGlvbl9pbnRlcnJ1cHQoKQ0KKFhFTikgWyAgMTEyLjkxMTI5OF0gICAgMHhmYyAtPiBldmVudF9j
aGVja19pbnRlcnJ1cHQoKQ0KKFhFTikgWyAgMTEyLjkyMTE3Nl0gICAgMHhmZCAtPiBpbnZhbGlk
YXRlX2ludGVycnVwdCgpDQooWEVOKSBbICAxMTIuOTMwODg0XSAgICAweGZlIC0+IGFyY2gveDg2
L2FwaWMuYyNlcnJvcl9pbnRlcnJ1cHQoKQ0KKFhFTikgWyAgMTEyLjk0MjQ5Nl0gICAgMHhmZiAt
PiBhcmNoL3g4Ni9hcGljLmMjc3B1cmlvdXNfaW50ZXJydXB0KCkNCihYRU4pIFsgIDExMi45NTQ2
MzJdIElPLUFQSUMgaW50ZXJydXB0IGluZm9ybWF0aW9uOg0KKFhFTikgWyAgMTEyLjk2MzgxOF0g
ICAgIElSUSAgMCBWZWMyNDA6DQooWEVOKSBbICAxMTIuOTcwOTI2XSAgICAgICBBcGljIDB4MDAs
IFBpbiAgMjogdmVjPWYwIGRlbGl2ZXJ5PUZpeGVkIGRlc3Q9UCBzdGF0dXM9MCBwb2xhcml0eT0w
IGlycj0wIHRyaWc9RSBtYXNrPTAgZGVzdF9pZDowMA0KKFhFTikgWyAgMTEyLjk5MjkzOV0gICAg
IElSUSAgMSBWZWMgNTY6DQooWEVOKSBbICAxMTMuMDAwMDQ1XSAgICAgICBBcGljIDB4MDAsIFBp
biAgMTogdmVjPTM4IGRlbGl2ZXJ5PUZpeGVkIGRlc3Q9UCBzdGF0dXM9MCBwb2xhcml0eT0wIGly
cj0wIHRyaWc9RSBtYXNrPTAgZGVzdF9pZDowMA0KKFhFTikgWyAgMTEzLjAyMjA2MF0gICAgIElS
USAgMyBWZWMgNjQ6DQooWEVOKSBbICAxMTMuMDI5MTY2XSAgICAgICBBcGljIDB4MDAsIFBpbiAg
MzogdmVjPTQwIGRlbGl2ZXJ5PUZpeGVkIGRlc3Q9UCBzdGF0dXM9MCBwb2xhcml0eT0wIGlycj0w
IHRyaWc9RSBtYXNrPTAgZGVzdF9pZDowMA0KKFhFTikgWyAgMTEzLjA1MTE3OF0gICAgIElSUSAg
NCBWZWMyNDE6DQooWEVOKSBbICAxMTMuMDU4Mjg0XSAgICAgICBBcGljIDB4MDAsIFBpbiAgNDog
dmVjPWYxIGRlbGl2ZXJ5PUZpeGVkIGRlc3Q9UCBzdGF0dXM9MCBwb2xhcml0eT0wIGlycj0wIHRy
aWc9RSBtYXNrPTAgZGVzdF9pZDowOA0KKFhFTikgWyAgMTEzLjA4MDI5OF0gICAgIElSUSAgNSBW
ZWMgNzI6DQooWEVOKSBbICAxMTMuMDg3NDA1XSAgICAgICBBcGljIDB4MDAsIFBpbiAgNTogdmVj
PTQ4IGRlbGl2ZXJ5PUZpeGVkIGRlc3Q9UCBzdGF0dXM9MCBwb2xhcml0eT0wIGlycj0wIHRyaWc9
RSBtYXNrPTAgZGVzdF9pZDowMA0KKFhFTikgWyAgMTEzLjEwOTQxOF0gICAgIElSUSAgNiBWZWMg
ODA6DQooWEVOKSBbICAxMTMuMTE2NTI0XSAgICAgICBBcGljIDB4MDAsIFBpbiAgNjogdmVjPTUw
IGRlbGl2ZXJ5PUZpeGVkIGRlc3Q9UCBzdGF0dXM9MCBwb2xhcml0eT0wIGlycj0wIHRyaWc9RSBt
YXNrPTAgZGVzdF9pZDowMA0KKFhFTikgWyAgMTEzLjEzODUzOF0gICAgIElSUSAgNyBWZWMgODg6
DQooWEVOKSBbICAxMTMuMTQ1NjQ0XSAgICAgICBBcGljIDB4MDAsIFBpbiAgNzogdmVjPTU4IGRl
bGl2ZXJ5PUZpeGVkIGRlc3Q9UCBzdGF0dXM9MCBwb2xhcml0eT0wIGlycj0wIHRyaWc9RSBtYXNr
PTAgZGVzdF9pZDowMA0KKFhFTikgWyAgMTEzLjE2NzY1OF0gICAgIElSUSAgOCBWZWMgOTY6DQoo
WEVOKSBbICAxMTMuMTc0NzY1XSAgICAgICBBcGljIDB4MDAsIFBpbiAgODogdmVjPTYwIGRlbGl2
ZXJ5PUZpeGVkIGRlc3Q9UCBzdGF0dXM9MCBwb2xhcml0eT0wIGlycj0wIHRyaWc9RSBtYXNrPTAg
ZGVzdF9pZDowMA0KKFhFTikgWyAgMTEzLjE5Njc3OV0gICAgIElSUSAgOSBWZWMxMDQ6DQooWEVO
KSBbICAxMTMuMjAzODg4XSAgICAgICBBcGljIDB4MDAsIFBpbiAgOTogdmVjPTY4IGRlbGl2ZXJ5
PUZpeGVkIGRlc3Q9UCBzdGF0dXM9MCBwb2xhcml0eT0xIGlycj0wIHRyaWc9TCBtYXNrPTAgZGVz
dF9pZDowMA0KKFhFTikgWyAgMTEzLjIyNTkwMV0gICAgIElSUSAxMCBWZWMxMTI6DQooWEVOKSBb
ICAxMTMuMjMzMDA3XSAgICAgICBBcGljIDB4MDAsIFBpbiAxMDogdmVjPTcwIGRlbGl2ZXJ5PUZp
eGVkIGRlc3Q9UCBzdGF0dXM9MCBwb2xhcml0eT0wIGlycj0wIHRyaWc9RSBtYXNrPTAgZGVzdF9p
ZDowMA0KKFhFTikgWyAgMTEzLjI1NTAyMV0gICAgIElSUSAxMSBWZWMxMjA6DQooWEVOKSBbICAx
MTMuMjYyMTI4XSAgICAgICBBcGljIDB4MDAsIFBpbiAxMTogdmVjPTc4IGRlbGl2ZXJ5PUZpeGVk
IGRlc3Q9UCBzdGF0dXM9MCBwb2xhcml0eT0wIGlycj0wIHRyaWc9RSBtYXNrPTAgZGVzdF9pZDow
MA0KKFhFTikgWyAgMTEzLjI4NDE0MV0gICAgIElSUSAxMiBWZWMxMzY6DQooWEVOKSBbICAxMTMu
MjkxMjQ2XSAgICAgICBBcGljIDB4MDAsIFBpbiAxMjogdmVjPTg4IGRlbGl2ZXJ5PUZpeGVkIGRl
c3Q9UCBzdGF0dXM9MCBwb2xhcml0eT0wIGlycj0wIHRyaWc9RSBtYXNrPTAgZGVzdF9pZDowMA0K
KFhFTikgWyAgMTEzLjMxMzI2MF0gICAgIElSUSAxMyBWZWMxNDQ6DQooWEVOKSBbICAxMTMuMzIw
MzY4XSAgICAgICBBcGljIDB4MDAsIFBpbiAxMzogdmVjPTkwIGRlbGl2ZXJ5PUZpeGVkIGRlc3Q9
UCBzdGF0dXM9MCBwb2xhcml0eT0wIGlycj0wIHRyaWc9RSBtYXNrPTAgZGVzdF9pZDowMA0KKFhF
TikgWyAgMTEzLjM0MjM4MV0gICAgIElSUSAxNCBWZWMxNTI6DQooWEVOKSBbICAxMTMuMzQ5NDg4
XSAgICAgICBBcGljIDB4MDAsIFBpbiAxNDogdmVjPTk4IGRlbGl2ZXJ5PUZpeGVkIGRlc3Q9UCBz
dGF0dXM9MCBwb2xhcml0eT0wIGlycj0wIHRyaWc9RSBtYXNrPTAgZGVzdF9pZDowMA0KKFhFTikg
WyAgMTEzLjM3MTUwMV0gICAgIElSUSAxNSBWZWMxNjA6DQooWEVOKSBbICAxMTMuMzc4NjA3XSAg
ICAgICBBcGljIDB4MDAsIFBpbiAxNTogdmVjPWEwIGRlbGl2ZXJ5PUZpeGVkIGRlc3Q9UCBzdGF0
dXM9MCBwb2xhcml0eT0wIGlycj0wIHRyaWc9RSBtYXNrPTAgZGVzdF9pZDowMA0KKFhFTikgWyAg
MTEzLjQwMDYyMF0gW206IG1lbW9yeSBpbmZvXQ0KKFhFTikgWyAgMTEzLjQwNzM4Ml0gUGh5c2lj
YWwgbWVtb3J5IGluZm9ybWF0aW9uOg0KKFhFTikgWyAgMTEzLjQxNjIyMF0gICAgIFhlbiBoZWFw
OiAwa0IgZnJlZQ0KKFhFTikgWyAgMTEzLjQyNDAyMF0gICAgIGhlYXBbMDldOiAxMDI0a0IgZnJl
ZQ0KKFhFTikgWyAgMTEzLjQzMjM0MV0gICAgIGhlYXBbMTBdOiAyMDQ4a0IgZnJlZQ0KKFhFTikg
WyAgMTEzLjQ0MDY2M10gICAgIGhlYXBbMTFdOiA0MDk2a0IgZnJlZQ0KKFhFTikgWyAgMTEzLjQ0
ODk4MF0gICAgIGhlYXBbMTJdOiA4MTkya0IgZnJlZQ0KKFhFTikgWyAgMTEzLjQ1NzMwMF0gICAg
IGhlYXBbMTNdOiAxNjM4NGtCIGZyZWUNCihYRU4pIFsgIDExMy40NjU3OTVdICAgICBoZWFwWzE0
XTogMzI3NjhrQiBmcmVlDQooWEVOKSBbICAxMTMuNDc0Mjg5XSAgICAgaGVhcFsxNV06IDY1NTM2
a0IgZnJlZQ0KKFhFTikgWyAgMTEzLjQ4Mjc4MV0gICAgIGhlYXBbMTZdOiAxMjY5MTZrQiBmcmVl
DQooWEVOKSBbICAxMTMuNDkxNDQ4XSAgICAgaGVhcFsxN106IDI2MjE0NGtCIGZyZWUNCihYRU4p
IFsgIDExMy41MDAxMTVdICAgICBoZWFwWzE4XTogNTI0Mjg4a0IgZnJlZQ0KKFhFTikgWyAgMTEz
LjUwODc4MV0gICAgIGhlYXBbMTldOiAxMDQ4NTc2a0IgZnJlZQ0KKFhFTikgWyAgMTEzLjUxNzYy
MV0gICAgIGhlYXBbMjBdOiAxMjM2MzY0a0IgZnJlZQ0KKFhFTikgWyAgMTEzLjUyNjQ2M10gICAg
IGhlYXBbMjFdOiA0MTk0MzA0a0IgZnJlZQ0KKFhFTikgWyAgMTEzLjUzNTMwMl0gICAgIGhlYXBb
MjJdOiA4Mzg4NjA4a0IgZnJlZQ0KKFhFTikgWyAgMTEzLjU0NDE0M10gICAgIGhlYXBbMjNdOiAx
MjIzMDU5MmtCIGZyZWUNCihYRU4pIFsgIDExMy41NTMxNTZdICAgICBoZWFwWzI0XTogMjQ3NjY4
a0IgZnJlZQ0KKFhFTikgWyAgMTEzLjU2MTgyNF0gICAgIERvbSBoZWFwOiAyODM4OTUwOGtCIGZy
ZWUNCihYRU4pIFsgIDExMy41NzA4MzVdIFtuOiBOTUkgc3RhdGlzdGljc10NCihYRU4pIFsgIDEx
My41NzgxMTddIENQVQlOTUkNCihYRU4pIFsgIDExMy41ODMzMTVdICAgMAkgIDINCihYRU4pIFsg
IDExMy41ODg1MTZdICAgMQkgIDANCihYRU4pIFsgIDExMy41OTM3MTVdICAgMgkgIDANCihYRU4p
IFsgIDExMy41OTg5MTVdICAgMwkgIDANCihYRU4pIFsgIDExMy42MDQxMTddICAgNAkgIDANCihY
RU4pIFsgIDExMy42MDkzMTVdICAgNQkgIDANCihYRU4pIFsgIDExMy42MTQ1MTVdICAgNgkgIDAN
CihYRU4pIFsgIDExMy42MTk3MTddICAgNwkgIDANCihYRU4pIFsgIDExMy42MjQ5MTVdICAgOAkg
IDANCihYRU4pIFsgIDExMy42MzAxMTVdICAgOQkgIDANCihYRU4pIFsgIDExMy42MzUzMTddICAx
MAkgIDANCihYRU4pIFsgIDExMy42NDA1MTVdICAxMQkgIDANCihYRU4pIFsgIDExMy42NDU3MTZd
ICAxMgkgIDANCihYRU4pIFsgIDExMy42NTA5MTddICAxMwkgIDANCihYRU4pIFsgIDExMy42NTYx
MThdICAxNAkgIDANCihYRU4pIFsgIDExMy42NjEzMTVdICAxNQkgIDANCihYRU4pIFsgIDExMy42
NjY1MTddIGQwdjA6IE5NSSBuZWl0aGVyIHBlbmRpbmcgbm9yIG1hc2tlZA0KKFhFTikgWyAgMTEz
LjY3Njc0NV0gW3E6IGR1bXAgZG9tYWluIChhbmQgZ3Vlc3QgZGVidWcpIGluZm9dDQooWEVOKSBb
ICAxMTMuNjg3NDkwXSAncScgcHJlc3NlZCAtPiBkdW1waW5nIGRvbWFpbiBpbmZvIChub3cgPSAx
MTM2ODY0NTI0MDUpDQooWEVOKSBbICAxMTMuNzAxMDA5XSBHZW5lcmFsIGluZm9ybWF0aW9uIGZv
ciBkb21haW4gMDoNCihYRU4pIFsgIDExMy43MTA3MTddICAgICByZWZjbnQ9MyBkeWluZz0wIHBh
dXNlX2NvdW50PTANCihYRU4pIFsgIDExMy43MjA1OTddICAgICBucl9wYWdlcz0xMDQ4NTExIHhl
bmhlYXBfcGFnZXM9MiBkaXJ0eV9jcHVzPXswLTN9IG1heF9wYWdlcz00Mjk0OTY3Mjk1DQooWEVO
KSBbICAxMTMuNzM3NDEwXSAgICAgaGFuZGxlPTAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAw
MDAwMDAwMCB2bV9hc3Npc3Q9MDAwMDAwMjANCihYRU4pIFsgIDExMy43NTI4MzddICAgICBwYWdp
bmcgYXNzaXN0YW5jZTogaGFwIHJlZmNvdW50cyB0cmFuc2xhdGUgZXh0ZXJuYWwNCihYRU4pIFsg
IDExMy43NjY1MzBdIFJhbmdlc2V0cyBiZWxvbmdpbmcgdG8gZG9tYWluIDA6DQooWEVOKSBbICAx
MTMuNzc2MDYyXSAgICAgSW50ZXJydXB0cyB7IDEtNTUsIDU3LTY1IH0NCihYRU4pIFsgIDExMy43
ODUyNTFdICAgICBJL08gTWVtb3J5IHsgMC1lZmZmZiwgZjgwMDAtZmQyZmYsIGZkMzA0LWZlYmZm
LCBmZWMwMi1mZWRmZiwgZmVlMDEtZmZjZmZmZmYsIDEwMDAwMDAwMC1mZmZmZmZmZmYgfQ0KKFhF
TikgWyAgMTEzLjgwNjkxOF0gICAgIEkvTyBQb3J0cyAgeyAyMi0zZiwgNDQtNjAsIDYyLTgwLCA5
MC05MSwgOTMtOWYsIGEyLWJmLCBlMC1lOCwgZWEtZWYsIGYxLTNmNywgNDAwLTRjZiwgNGQyLTgw
NywgODBjLWNmOCwgY2ZhLWNmYiwgZDAwLWZmZmYgfQ0KKFhFTikgWyAgMTEzLjgzMjkxN10gICAg
IGxvZy1kaXJ0eSAgeyB9DQooWEVOKSBbICAxMTMuODQwMDI1XSBNZW1vcnkgcGFnZXMgYmVsb25n
aW5nIHRvIGRvbWFpbiAwOg0KKFhFTikgWyAgMTEzLjg1MDA3N10gICAgIERvbVBhZ2UgbGlzdCB0
b28gbG9uZyB0byBkaXNwbGF5DQooWEVOKSBbICAxMTMuODYwMzAzXSAgICAgUG9EIGVudHJpZXM9
MCBjYWNoZXNpemU9MA0KKFhFTikgWyAgMTEzLjg2OTMxOF0gICAgIFhlblBhZ2UgMDAwMDAwMDAw
MDBjZDFmZjogY2FmPWMwMDAwMDAwMDAwMDAwMDEsIHRhZj1lNDAwMDAwMDAwMDAwMDAxDQooWEVO
KSBbICAxMTMuODg1Nzg0XSAgICAgWGVuUGFnZSAwMDAwMDAwMDAwN2NiMzRhOiBjYWY9YzAwMDAw
MDAwMDAwMDAwMSwgdGFmPWU0MDAwMDAwMDAwMDAwMDENCihYRU4pIFsgIDExMy45MDIyNTFdIE5P
REUgYWZmaW5pdHkgZm9yIGRvbWFpbiAwOiBbMF0NCihYRU4pIFsgIDExMy45MTE2MTBdIFZDUFUg
aW5mb3JtYXRpb24gYW5kIGNhbGxiYWNrcyBmb3IgZG9tYWluIDA6DQooWEVOKSBbICAxMTMuOTIz
MjI2XSAgIFVOSVQwIGFmZmluaXRpZXM6IGhhcmQ9ezAtMTV9IHNvZnQ9ezAtMTV9DQooWEVOKSBb
ICAxMTMuOTM0NjY1XSAgICAgVkNQVTA6IENQVTAgW2hhcz1GXSBwb2xsPTAgdXBjYWxsX3BlbmQ9
MDAgdXBjYWxsX21hc2s9MDAgZGlydHlfY3B1PTANCihYRU4pIFsgIDExMy45NTExMzJdICAgICBw
YXVzZV9jb3VudD0wIHBhdXNlX2ZsYWdzPTENCihYRU4pIFsgIDExMy45NjA0OTJdICAgICBwYWdp
bmcgYXNzaXN0YW5jZTogaGFwLCA0IGxldmVscw0KKFhFTikgWyAgMTEzLjk3MDcxOF0gTm8gcGVy
aW9kaWMgdGltZXINCihYRU4pIFsgIDExMy45Nzc2NTNdICAgVU5JVDEgYWZmaW5pdGllczogaGFy
ZD17MC0xNX0gc29mdD17MC0xNX0NCihYRU4pIFsgIDExMy45ODkwOTFdICAgICBWQ1BVMTogQ1BV
MSBbaGFzPVRdIHBvbGw9MCB1cGNhbGxfcGVuZD0wMCB1cGNhbGxfbWFzaz0wMCBkaXJ0eV9jcHU9
MQ0KKFhFTikgWyAgMTE0LjAwNTU1OF0gICAgIHBhdXNlX2NvdW50PTAgcGF1c2VfZmxhZ3M9MA0K
KFhFTikgWyAgMTE0LjAxNDkxOF0gICAgIHBhZ2luZyBhc3Npc3RhbmNlOiBoYXAsIDQgbGV2ZWxz
DQooWEVOKSBbICAxMTQuMDI1MTQ3XSBObyBwZXJpb2RpYyB0aW1lcg0KKFhFTikgWyAgMTE0LjAz
MjA3OV0gICBVTklUMiBhZmZpbml0aWVzOiBoYXJkPXswLTE1fSBzb2Z0PXswLTE1fQ0KKFhFTikg
WyAgMTE0LjA0MzUyMF0gICAgIFZDUFUyOiBDUFUyIFtoYXM9VF0gcG9sbD0wIHVwY2FsbF9wZW5k
PTAwIHVwY2FsbF9tYXNrPTAwIGRpcnR5X2NwdT0yDQooWEVOKSBbICAxMTQuMDU5OTg2XSAgICAg
cGF1c2VfY291bnQ9MCBwYXVzZV9mbGFncz0wDQooWEVOKSBbICAxMTQuMDY5MzQ1XSAgICAgcGFn
aW5nIGFzc2lzdGFuY2U6IGhhcCwgNCBsZXZlbHMNCihYRU4pIFsgIDExNC4wNzk1NzJdIE5vIHBl
cmlvZGljIHRpbWVyDQooWEVOKSBbICAxMTQuMDg2NTA1XSAgIFVOSVQzIGFmZmluaXRpZXM6IGhh
cmQ9ezAtMTV9IHNvZnQ9ezAtMTV9DQooWEVOKSBbICAxMTQuMDk3OTQ4XSAgICAgVkNQVTM6IENQ
VTMgW2hhcz1UXSBwb2xsPTAgdXBjYWxsX3BlbmQ9MDAgdXBjYWxsX21hc2s9MDAgZGlydHlfY3B1
PTMNCihYRU4pIFsgIDExNC4xMTQ0MTNdICAgICBwYXVzZV9jb3VudD0wIHBhdXNlX2ZsYWdzPTAN
CihYRU4pIFsgIDExNC4xMjM3NzJdICAgICBwYWdpbmcgYXNzaXN0YW5jZTogaGFwLCA0IGxldmVs
cw0KKFhFTikgWyAgMTE0LjEzNDAwMF0gTm8gcGVyaW9kaWMgdGltZXINCihYRU4pIFsgIDExNC4x
NDA5MzVdIE5vdGlmeWluZyBndWVzdCAwOjAgKHZpcnEgMSwgcG9ydCAwKQ0KKFhFTikgWyAgMTE0
LjE1MTE2MF0gTm90aWZ5aW5nIGd1ZXN0IDA6MSAodmlycSAxLCBwb3J0IDApDQooWEVOKSBbICAx
MTQuMTYxMzg3XSBOb3RpZnlpbmcgZ3Vlc3QgMDoyICh2aXJxIDEsIHBvcnQgMCkNCihYRU4pIFsg
IDExNC4xNzE2MTVdIE5vdGlmeWluZyBndWVzdCAwOjMgKHZpcnEgMSwgcG9ydCAwKQ0KKFhFTikg
WyAgMTE0LjE4MTg0MF0gW3I6IGR1bXAgcnVuIHF1ZXVlc10NCihYRU4pIFsgIDExNC4xODkyOTVd
IHNjaGVkX3NtdF9wb3dlcl9zYXZpbmdzOiBkaXNhYmxlZA0KKFhFTikgWyAgMTE0LjE5OTAwMV0g
Tk9XPTExNDE4ODI1Njk2Nw0KKFhFTikgWyAgMTE0LjIwNTc2MV0gT25saW5lIENwdXM6IDAtMTUN
CihYRU4pIFsgIDExNC4yMTI2OTRdIENwdXBvb2wgMDoNCihYRU4pIFsgIDExNC4yMTg0MTVdIENw
dXM6IDAtMTUNCihYRU4pIFsgIDExNC4yMjQxMzJdIFNjaGVkdWxpbmcgZ3JhbnVsYXJpdHk6IGNw
dSwgMSBDUFUgcGVyIHNjaGVkLXJlc291cmNlDQooWEVOKSBbICAxMTQuMjM3MzA4XSBTY2hlZHVs
ZXI6IG51bGwgU2NoZWR1bGVyIChudWxsKQ0KKFhFTikgWyAgMTE0LjI0Njg0MF0gCWNwdXNfZnJl
ZSA9IDQtMTUNCihYRU4pIFsgIDExNC4yNTM3NzNdIERvbWFpbiBpbmZvOg0KKFhFTikgWyAgMTE0
LjI1OTg0MV0gCURvbWFpbjogMA0KKFhFTikgWyAgMTE0LjI2NTU2MF0gCSAgMTogWzAuMF0gcGNw
dT0wDQooWEVOKSBbICAxMTQuMjcyNjY5XSAJICAyOiBbMC4xXSBwY3B1PTENCihYRU4pIFsgIDEx
NC4yNzk3NzRdIAkgIDM6IFswLjJdIHBjcHU9Mg0KKFhFTikgWyAgMTE0LjI4Njg4MF0gCSAgNDog
WzAuM10gcGNwdT0zDQooWEVOKSBbICAxMTQuMjkzOTg4XSBXYWl0cXVldWU6DQooWEVOKSBbICAx
MTQuMjk5ODgxXSBDUFVzIGluZm86DQooWEVOKSBbICAxMTQuMzA1NjAwXSBDUFVbMDBdIGN1cnJl
bnQ9ZFtJRExFXXYwLCBjdXJyPWRbSURMRV12MCwgcHJldj1OVUxMDQooWEVOKSBbICAxMTQuMzE4
NjAzXSBDUFVbMDBdIHNpYmxpbmc9ezAtMX0sIGNvcmU9ezAtMTV9LCB1bml0PWQwdjANCihYRU4p
IFsgIDExNC4zMzAzODddIENQVVswMV0gY3VycmVudD1kMHYxLCBjdXJyPWQwdjEsIHByZXY9TlVM
TA0KKFhFTikgWyAgMTE0LjM0MTY1NV0gQ1BVWzAxXSBzaWJsaW5nPXswLTF9LCBjb3JlPXswLTE1
fSwgdW5pdD1kMHYxDQooWEVOKSBbICAxMTQuMzUzNDQzXSAJcnVuOiBbMC4xXSBwY3B1PTENCihY
RU4pIFsgIDExNC4zNjA1NDldIENQVVswMl0gY3VycmVudD1kMHYyLCBjdXJyPWQwdjIsIHByZXY9
TlVMTA0KKFhFTikgWyAgMTE0LjM3MTgxNV0gQ1BVWzAyXSBzaWJsaW5nPXsyLTN9LCBjb3JlPXsw
LTE1fSwgdW5pdD1kMHYyDQooWEVOKSBbICAxMTQuMzgzNjAxXSAJcnVuOiBbMC4yXSBwY3B1PTIN
CihYRU4pIFsgIDExNC4zOTA3MTBdIENQVVswM10gY3VycmVudD1kMHYzLCBjdXJyPWQwdjMsIHBy
ZXY9TlVMTA0KKFhFTikgWyAgMTE0LjQwMTk3Nl0gQ1BVWzAzXSBzaWJsaW5nPXsyLTN9LCBjb3Jl
PXswLTE1fSwgdW5pdD1kMHYzDQooWEVOKSBbICAxMTQuNDEzNzYxXSAJcnVuOiBbMC4zXSBwY3B1
PTMNCihYRU4pIFsgIDExNC40MjA4NjddIENQVVswNF0gY3VycmVudD1kW0lETEVddjQsIGN1cnI9
ZFtJRExFXXY0LCBwcmV2PU5VTEwNCihYRU4pIFsgIDExNC40MzM4NjldIENQVVswNF0gc2libGlu
Zz17NC01fSwgY29yZT17MC0xNX0NCihYRU4pIFsgIDExNC40NDM3NDhdIENQVVswNV0gY3VycmVu
dD1kW0lETEVddjUsIGN1cnI9ZFtJRExFXXY1LCBwcmV2PU5VTEwNCihYRU4pIFsgIDExNC40NTY3
NDldIENQVVswNV0gc2libGluZz17NC01fSwgY29yZT17MC0xNX0NCihYRU4pIFsgIDExNC40NjY2
MjldIENQVVswNl0gY3VycmVudD1kW0lETEVddjYsIGN1cnI9ZFtJRExFXXY2LCBwcmV2PU5VTEwN
CihYRU4pIFsgIDExNC40Nzk2MjhdIENQVVswNl0gc2libGluZz17Ni03fSwgY29yZT17MC0xNX0N
CihYRU4pIFsgIDExNC40ODk1MDhdIENQVVswN10gY3VycmVudD1kW0lETEVddjcsIGN1cnI9ZFtJ
RExFXXY3LCBwcmV2PU5VTEwNCihYRU4pIFsgIDExNC41MDI1MDldIENQVVswN10gc2libGluZz17
Ni03fSwgY29yZT17MC0xNX0NCihYRU4pIFsgIDExNC41MTIzOTBdIENQVVswOF0gY3VycmVudD1k
W0lETEVddjgsIGN1cnI9ZFtJRExFXXY4LCBwcmV2PU5VTEwNCihYRU4pIFsgIDExNC41MjUzODld
IENQVVswOF0gc2libGluZz17OC05fSwgY29yZT17MC0xNX0NCihYRU4pIFsgIDExNC41MzUyNzFd
IENQVVswOV0gY3VycmVudD1kW0lETEVddjksIGN1cnI9ZFtJRExFXXY5LCBwcmV2PU5VTEwNCihY
RU4pIFsgIDExNC41NDgyNzFdIENQVVswOV0gc2libGluZz17OC05fSwgY29yZT17MC0xNX0NCihY
RU4pIFsgIDExNC41NTgxNDldIENQVVsxMF0gY3VycmVudD1kW0lETEVddjEwLCBjdXJyPWRbSURM
RV12MTAsIHByZXY9TlVMTA0KKFhFTikgWyAgMTE0LjU3MTQ5NV0gQ1BVWzEwXSBzaWJsaW5nPXsx
MC0xMX0sIGNvcmU9ezAtMTV9DQooWEVOKSBbICAxMTQuNTgxNzIzXSBDUFVbMTFdIGN1cnJlbnQ9
ZFtJRExFXXYxMSwgY3Vycj1kW0lETEVddjExLCBwcmV2PU5VTEwNCihYRU4pIFsgIDExNC41OTUw
NzBdIENQVVsxMV0gc2libGluZz17MTAtMTF9LCBjb3JlPXswLTE1fQ0KKFhFTikgWyAgMTE0LjYw
NTI5N10gQ1BVWzEyXSBjdXJyZW50PWRbSURMRV12MTIsIGN1cnI9ZFtJRExFXXYxMiwgcHJldj1O
VUxMDQooWEVOKSBbICAxMTQuNjE4NjQ0XSBDUFVbMTJdIHNpYmxpbmc9ezEyLTEzfSwgY29yZT17
MC0xNX0NCihYRU4pIFsgIDExNC42Mjg4NjldIENQVVsxM10gY3VycmVudD1kW0lETEVddjEzLCBj
dXJyPWRbSURMRV12MTMsIHByZXY9TlVMTA0KKFhFTikgWyAgMTE0LjY0MjIxOF0gQ1BVWzEzXSBz
aWJsaW5nPXsxMi0xM30sIGNvcmU9ezAtMTV9DQooWEVOKSBbICAxMTQuNjUyNDQ1XSBDUFVbMTRd
IGN1cnJlbnQ9ZFtJRExFXXYxNCwgY3Vycj1kW0lETEVddjE0LCBwcmV2PU5VTEwNCihYRU4pIFsg
IDExNC42NjU3OTFdIENQVVsxNF0gc2libGluZz17MTQtMTV9LCBjb3JlPXswLTE1fQ0KKFhFTikg
WyAgMTE0LjY3NjAxOV0gQ1BVWzE1XSBjdXJyZW50PWRbSURMRV12MTUsIGN1cnI9ZFtJRExFXXYx
NSwgcHJldj1OVUxMDQooWEVOKSBbICAxMTQuNjg5MzY0XSBDUFVbMTVdIHNpYmxpbmc9ezE0LTE1
fSwgY29yZT17MC0xNX0NCihYRU4pIFsgIDExNC42OTk1OTBdIFtzOiBkdW1wIHNvZnR0c2Mgc3Rh
dHNdDQooWEVOKSBbICAxMTQuNzI3NTQxXSBUU0MgbWFya2VkIGFzIHJlbGlhYmxlLCB3YXJwID0g
MCAoY291bnQ9MikNCihYRU4pIFsgIDExNC43Mzg4MDhdIE5vIGRvbWFpbnMgaGF2ZSBlbXVsYXRl
ZCBUU0MNCihYRU4pIFsgIDExNC43NDc2NDddIFt0OiBkaXNwbGF5IG11bHRpLWNwdSBjbG9jayBp
bmZvXQ0KKFhFTikgWyAgMTE0Ljc1NzM1NF0gU3luY2VkIHN0aW1lIHNrZXc6IG1heD03OTJucyBh
dmc9NzkybnMgc2FtcGxlcz0xIGN1cnJlbnQ9NzkybnMNCihYRU4pIFsgIDExNC43NzIwODddIFN5
bmNlZCBjeWNsZXMgc2tldzogbWF4PTIxNDYgYXZnPTIxNDYgc2FtcGxlcz0xIGN1cnJlbnQ9MjE0
Ng0KKFhFTikgWyAgMTE0Ljc4NjQ3M10gW3U6IGR1bXAgTlVNQSBpbmZvXQ0KKFhFTikgWyAgMTE0
Ljc5Mzc1NF0gJ3UnIHByZXNzZWQgLT4gZHVtcGluZyBudW1hIGluZm8gKG5vdyA9IDExNDc5Mjcx
NjI5NykNCihYRU4pIFsgIDExNC44MDY5MjldIE5PREUwIHN0YXJ0LT4wIHNpemUtPjg0NTA4ODAg
ZnJlZS0+NzA5NzM3Nw0KKFhFTikgWyAgMTE0LjgxODE5Nl0gQ1BVMC4uLjE1IC0+IE5PREUwDQoo
WEVOKSBbICAxMTQuODI1MzAwXSBNZW1vcnkgbG9jYXRpb24gb2YgZWFjaCBkb21haW46DQooWEVO
KSBbICAxMTQuODM0NjYxXSBkMCAodG90YWw6IDEwNDg1MTEpOg0KKFhFTikgWyAgMTE0Ljg0NDI1
OF0gICAgIE5vZGUgMDogMTA0ODUxMQ0KKFhFTikgWyAgMTE0Ljg1MTUzN10gW3Y6IGR1bXAgQU1E
LVYgVk1DQnNdDQooWEVOKSBbICAxMTQuODU5MTYzXSAqKioqKioqKioqKiBWTUNCIEFyZWFzICoq
KioqKioqKioqKioqDQooWEVOKSBbICAxMTQuODY5NTYyXQ0KKFhFTikgWyAgMTE0Ljg3MzU0OV0g
Pj4+IERvbWFpbiAwIDw8PA0KKFhFTikgWyAgMTE0Ljg4MDMwOF0gCVZDUFUgMA0KKFhFTikgWyAg
MTE0Ljg4NTUxMV0gRHVtcGluZyBndWVzdCdzIGN1cnJlbnQgc3RhdGUgYXQga2V5X2hhbmRsZXIu
Li4NCihYRU4pIFsgIDExNC44OTc2NDRdIFNpemUgb2YgVk1DQiA9IDQwOTYsIHBhZGRyID0gMDAw
MDAwMDdjYjM0NTAwMCwgdmFkZHIgPSBmZmZmODMwN2NiMzQ1MDAwDQooWEVOKSBbICAxMTQuOTEz
OTM2XSBjcl9pbnRlcmNlcHRzID0gMHhmZWYzZmVmMyBkcl9pbnRlcmNlcHRzID0gMHhmZmZmZmZm
ZiBleGNlcHRpb25faW50ZXJjZXB0cyA9IDB4NjAwODINCihYRU4pIFsgIDExNC45MzI0ODJdIGdl
bmVyYWwxX2ludGVyY2VwdHMgPSAweGJkYzQwMDBmIGdlbmVyYWwyX2ludGVyY2VwdHMgPSAweDZm
N2YNCihYRU4pIFsgIDExNC45NDcwNDRdIGlvcG1fYmFzZV9wYSA9IDB4N2NiMzU0MDAwIG1zcnBt
X2Jhc2VfcGEgPSAweDdjYjM0MjAwMCB0c2Nfb2Zmc2V0ID0gMHhmZmZmZmZjMzM4NzE3NWM1DQoo
WEVOKSBbICAxMTQuOTY1OTM3XSB0bGJfY29udHJvbCA9IDAgdmludHIgPSAweDEwZjAwMDEgaW50
X3N0YXQgPSAwDQooWEVOKSBbICAxMTQuOTc3ODk4XSBldmVudF9pbmogMDAwMDAwMDAwMDAwMDAw
MCwgdmFsaWQ/IDAsIGVjPyAwLCB0eXBlIDAsIHZlY3RvciAwDQooWEVOKSBbICAxMTQuOTkyNDU4
XSBleGl0Y29kZSA9IDB4NzggZXhpdF9pbnRfaW5mbyA9IDANCihYRU4pIFsgIDExNS4wMDIxNjVd
IGV4aXRpbmZvMSA9IDAgZXhpdGluZm8yID0gMA0KKFhFTikgWyAgMTE1LjAxMDgzMF0gYXNpZCA9
IDB4N2I4IG5wX2N0cmwgPSAweDE6IE5QDQooWEVOKSBbICAxMTUuMDIwMDE2XSB2aXJ0dWFsIHZt
bG9hZC92bXNhdmUgPSAwLCB2aXJ0X2V4dCA9IDANCihYRU4pIFsgIDExNS4wMzA3NjVdIGNwbCA9
IDAgZWZlciA9IDB4MWQwMSBzdGFyID0gMHgyMzAwMTAwMDAwMDAwMCBsc3RhciA9IDB4ZmZmZmZm
ZmY4MjIwMDA4MA0KKFhFTikgWyAgMTE1LjA0NzIzMV0gQ1IwID0gMHgwMDAwMDAwMDgwMDUwMDNi
IENSMiA9IDB4MDAwMDU2MzViOTYyODNjZA0KKFhFTikgWyAgMTE1LjA1OTcxMl0gQ1IzID0gMHgw
MDAwMDAwMDMyMDQyMDAwIENSNCA9IDB4MDAwMDAwMDAwMDM1MGVmMA0KKFhFTikgWyAgMTE1LjA3
MjE5MV0gUlNQID0gMHhmZmZmZmZmZjgyYzAzZTg4ICBSSVAgPSAweGZmZmZmZmZmODIwM2ZkNGUN
CihYRU4pIFsgIDExNS4wODQ4NDNdIFJBWCA9IDB4ZmZmZjg4ODExNTAwMDAwMCAgUkZMQUdTPTB4
MDAwMDAwMDAwMDAwMDIwMg0KKFhFTikgWyAgMTE1LjA5NzY3Ml0gRFI2ID0gMHgwMDAwMDAwMGZm
ZmYwZmYwLCBEUjcgPSAweDAwMDAwMDAwMDAwMDA0MDANCihYRU4pIFsgIDExNS4xMTAzMjNdIENT
VEFSID0gMHhmZmZmZmZmZjgyMjAxZmEwIFNGTWFzayA9IDB4MDAwMDAwMDAwMDI1N2ZkNQ0KKFhF
TikgWyAgMTE1LjEyMzY3M10gS2VybkdTQmFzZSA9IDB4MDAwMDAwMDAwMDAwMDAwMCBQQVQgPSAw
eDA0MDcwNTA2MDAwNzAxMDYNCihYRU4pIFsgIDExNS4xMzczNjZdIFNTUCA9IDB4MDAwMDAwMDAw
MDAwMDAwMCBTX0NFVCA9IDB4MDAwMDAwMDAwMDAwMDAwMCBJU1NUID0gMHgwMDAwMDAwMDAwMDAw
MDAwDQooWEVOKSBbICAxMTUuMTU0Njk3XSBIX0NSMyA9IDB4MDAwMDAwMDdjYjdkNzAwMCBDbGVh
bkJpdHMgPSAweGZmZmZmZmY3DQooWEVOKSBbICAxMTUuMTY3MTc5XSAgICAgICAgc2VsIGF0dHIg
IGxpbWl0ICAgYmFzZQ0KKFhFTikgWyAgMTE1LjE3NjE5MV0gICBDUzogMDAxMCAwMjliIGZmZmZm
ZmZmIDAwMDAwMDAwMDAwMDAwMDANCihYRU4pIFsgIDExNS4xODcyODRdICAgRFM6IDAwMDAgMDAw
MCAwMDAwMDAwMCAwMDAwMDAwMDAwMDAwMDAwDQooWEVOKSBbICAxMTUuMTk4MzgwXSAgIFNTOiAw
MDE4IDBjOTMgZmZmZmZmZmYgMDAwMDAwMDAwMDAwMDAwMA0KKFhFTikgWyAgMTE1LjIwOTQ3Ml0g
ICBFUzogMDAwMCAwMDAwIDAwMDAwMDAwIDAwMDAwMDAwMDAwMDAwMDANCihYRU4pIFsgIDExNS4y
MjA1NjVdICAgRlM6IDAwMDAgMDAwMCAwMDAwMDAwMCAwMDAwMDAwMDAwMDAwMDAwDQooWEVOKSBb
ICAxMTUuMjMxNjU3XSAgIEdTOiAwMDAwIDAwMDAgMDAwMDAwMDAgZmZmZjg4ODExNTAwMDAwMA0K
KFhFTikgWyAgMTE1LjI0Mjc1MV0gR0RUUjogMDAwMCAwMDAwIDAwMDAwMDdmIGZmZmZmZTAwMDAw
MDEwMDANCihYRU4pIFsgIDExNS4yNTM4NDddIExEVFI6IDAwMDAgMDAwMCAwMDAwMDAwMCBmZmZm
ZmUwMDAwMDAwMDAwDQooWEVOKSBbICAxMTUuMjY0OTM5XSBJRFRSOiAwMDAwIDAwMDAgMDAwMDBm
ZmYgZmZmZmZlMDAwMDAwMDAwMA0KKFhFTikgWyAgMTE1LjI3NjAzMl0gICBUUjogMDA0MCAwMDg5
IDAwMDA0MDg3IGZmZmZmZTAwMDAwMDMwMDANCihYRU4pIFsgIDExNS4yODcxMjddIAlWQ1BVIDEN
CihYRU4pIFsgIDExNS4yOTIzMjddIER1bXBpbmcgZ3Vlc3QncyBjdXJyZW50IHN0YXRlIGF0IGtl
eV9oYW5kbGVyLi4uDQooWEVOKSBbICAxMTUuMzA0NDU5XSBTaXplIG9mIFZNQ0IgPSA0MDk2LCBw
YWRkciA9IDAwMDAwMDA4MGYxZmIwMDAsIHZhZGRyID0gZmZmZjgzMDgwZjFmYjAwMA0KKFhFTikg
WyAgMTE1LjMyMDc1M10gY3JfaW50ZXJjZXB0cyA9IDB4ZmVmM2ZlZjMgZHJfaW50ZXJjZXB0cyA9
IDB4ZmZmZmZmZmYgZXhjZXB0aW9uX2ludGVyY2VwdHMgPSAweDYwMDAyDQooWEVOKSBbICAxMTUu
MzM5Mjk5XSBnZW5lcmFsMV9pbnRlcmNlcHRzID0gMHhiZGM0MDAwZiBnZW5lcmFsMl9pbnRlcmNl
cHRzID0gMHg2ZjdmDQooWEVOKSBbICAxMTUuMzUzODU5XSBpb3BtX2Jhc2VfcGEgPSAweDdjYjM1
NDAwMCBtc3JwbV9iYXNlX3BhID0gMHg4MGYxZjgwMDAgdHNjX29mZnNldCA9IDB4ZmZmZmZmYzMz
ODcxNzVjNQ0KKFhFTikgWyAgMTE1LjM3Mjc1NF0gdGxiX2NvbnRyb2wgPSAwIHZpbnRyID0gMHgx
MGYwMDAxIGludF9zdGF0ID0gMA0KKFhFTikgWyAgMTE1LjM4NDcxMl0gZXZlbnRfaW5qIDAwMDAw
MDAwMDAwMDAwMDAsIHZhbGlkPyAwLCBlYz8gMCwgdHlwZSAwLCB2ZWN0b3IgMA0KKFhFTikgWyAg
MTE1LjM5OTI3NF0gZXhpdGNvZGUgPSAweDYwIGV4aXRfaW50X2luZm8gPSAwDQooWEVOKSBbICAx
MTUuNDA4OTc4XSBleGl0aW5mbzEgPSAwIGV4aXRpbmZvMiA9IDANCihYRU4pIFsgIDExNS40MTc2
NDZdIGFzaWQgPSAweDY4MSBucF9jdHJsID0gMHgxOiBOUA0KKFhFTikgWyAgMTE1LjQyNjgzMl0g
dmlydHVhbCB2bWxvYWQvdm1zYXZlID0gMCwgdmlydF9leHQgPSAwDQooWEVOKSBbICAxMTUuNDM3
NTgxXSBjcGwgPSAwIGVmZXIgPSAweDFkMDEgc3RhciA9IDB4MjMwMDEwMDAwMDAwMDAgbHN0YXIg
PSAweGZmZmZmZmZmODIyMDAwODANCihYRU4pIFsgIDExNS40NTQwNDZdIENSMCA9IDB4MDAwMDAw
MDA4MDA1MDAzMyBDUjIgPSAweDAwMDA3ZjU2YzE5YzY3NDgNCihYRU4pIFsgIDExNS40NjY1Mjhd
IENSMyA9IDB4MDAwMDAwMDAwMmMzMjAwMCBDUjQgPSAweDAwMDAwMDAwMDAzNTBlZjANCihYRU4p
IFsgIDExNS40NzkwMDVdIFJTUCA9IDB4ZmZmZmM5MDAwMDBlN2U1MCAgUklQID0gMHhmZmZmZmZm
ZjgyMDQxYTUzDQooWEVOKSBbICAxMTUuNDkxNjYwXSBSQVggPSAweDAwMDAwMDAwMDAwMDAwMDAg
IFJGTEFHUz0weDAwMDAwMDAwMDAwMDAwOTMNCihYRU4pIFsgIDExNS41MDQ0ODddIERSNiA9IDB4
MDAwMDAwMDBmZmZmMGZmMCwgRFI3ID0gMHgwMDAwMDAwMDAwMDAwNDAwDQooWEVOKSBbICAxMTUu
NTE3MTQwXSBDU1RBUiA9IDB4ZmZmZmZmZmY4MjIwMWZhMCBTRk1hc2sgPSAweDAwMDAwMDAwMDAy
NTdmZDUNCihYRU4pIFsgIDExNS41MzA0ODldIEtlcm5HU0Jhc2UgPSAweDAwMDAwMDAwMDAwMDAw
MDAgUEFUID0gMHgwNDA3MDUwNjAwMDcwMTA2DQooWEVOKSBbICAxMTUuNTQ0MTgyXSBTU1AgPSAw
eDAwMDAwMDAwMDAwMDAwMDAgU19DRVQgPSAweDAwMDAwMDAwMDAwMDAwMDAgSVNTVCA9IDB4MDAw
MDAwMDAwMDAwMDAwMA0KKFhFTikgWyAgMTE1LjU2MTUxM10gSF9DUjMgPSAweDAwMDAwMDA3Y2I3
ZDcwMDAgQ2xlYW5CaXRzID0gMHhmZmZmZmZmNw0KKFhFTikgWyAgMTE1LjU3Mzk5NF0gICAgICAg
IHNlbCBhdHRyICBsaW1pdCAgIGJhc2UNCihYRU4pIFsgIDExNS41ODMwMDddICAgQ1M6IDAwMTAg
MDI5YiBmZmZmZmZmZiAwMDAwMDAwMDAwMDAwMDAwDQooWEVOKSBbICAxMTUuNTk0MTAzXSAgIERT
OiAwMDAwIDAwMDAgMDAwMDAwMDAgMDAwMDAwMDAwMDAwMDAwMA0KKFhFTikgWyAgMTE1LjYwNTE5
M10gICBTUzogMDAxOCAwYzkzIGZmZmZmZmZmIDAwMDAwMDAwMDAwMDAwMDANCihYRU4pIFsgIDEx
NS42MTYyODhdICAgRVM6IDAwMDAgMDAwMCAwMDAwMDAwMCAwMDAwMDAwMDAwMDAwMDAwDQooWEVO
KSBbICAxMTUuNjI3MzgxXSAgIEZTOiAwMDAwIDAwMDAgMDAwMDAwMDAgMDAwMDAwMDAwMDAwMDAw
MA0KKFhFTikgWyAgMTE1LjYzODQ3Nl0gICBHUzogMDAwMCAwMDAwIDAwMDAwMDAwIGZmZmY4ODgx
MTUwODAwMDANCihYRU4pIFsgIDExNS42NDk1NjhdIEdEVFI6IDAwMDAgMDAwMCAwMDAwMDA3ZiBm
ZmZmZmUwMDAwMDNjMDAwDQooWEVOKSBbICAxMTUuNjYwNjYwXSBMRFRSOiAwMDAwIDAwMDAgMDAw
MDAwMDAgZmZmZmZlMDAwMDAwMDAwMA0KKFhFTikgWyAgMTE1LjY3MTc1NV0gSURUUjogMDAwMCAw
MDAwIDAwMDAwZmZmIGZmZmZmZTAwMDAwMDAwMDANCihYRU4pIFsgIDExNS42ODI4NTBdICAgVFI6
IDAwNDAgMDA4OSAwMDAwNDA4NyBmZmZmZmUwMDAwMDNlMDAwDQooWEVOKSBbICAxMTUuNjkzOTQx
XSAJVkNQVSAyDQooWEVOKSBbICAxMTUuNjk5MTQzXSBEdW1waW5nIGd1ZXN0J3MgY3VycmVudCBz
dGF0ZSBhdCBrZXlfaGFuZGxlci4uLg0KKFhFTikgWyAgMTE1LjcxMTI3NF0gU2l6ZSBvZiBWTUNC
ID0gNDA5NiwgcGFkZHIgPSAwMDAwMDAwODBmMWYyMDAwLCB2YWRkciA9IGZmZmY4MzA4MGYxZjIw
MDANCihYRU4pIFsgIDExNS43Mjc1NzBdIGNyX2ludGVyY2VwdHMgPSAweGZlZjNmZWYzIGRyX2lu
dGVyY2VwdHMgPSAweGZmZmZmZmZmIGV4Y2VwdGlvbl9pbnRlcmNlcHRzID0gMHg2MDA4Mg0KKFhF
TikgWyAgMTE1Ljc0NjExNF0gZ2VuZXJhbDFfaW50ZXJjZXB0cyA9IDB4YmRjNDAwMGYgZ2VuZXJh
bDJfaW50ZXJjZXB0cyA9IDB4NmY3Zg0KKFhFTikgWyAgMTE1Ljc2MDY3Nl0gaW9wbV9iYXNlX3Bh
ID0gMHg3Y2IzNTQwMDAgbXNycG1fYmFzZV9wYSA9IDB4ODBmMWYwMDAwIHRzY19vZmZzZXQgPSAw
eGZmZmZmZmMzMzg3MTc1YzUNCihYRU4pIFsgIDExNS43Nzk1NzBdIHRsYl9jb250cm9sID0gMCB2
aW50ciA9IDB4MTBmMDAwMSBpbnRfc3RhdCA9IDANCihYRU4pIFsgIDExNS43OTE1MzFdIGV2ZW50
X2luaiAwMDAwMDAwMDAwMDAwMDAwLCB2YWxpZD8gMCwgZWM/IDAsIHR5cGUgMCwgdmVjdG9yIDAN
CihYRU4pIFsgIDExNS44MDYwODhdIGV4aXRjb2RlID0gMHg2MCBleGl0X2ludF9pbmZvID0gMA0K
KFhFTikgWyAgMTE1LjgxNTc5N10gZXhpdGluZm8xID0gMCBleGl0aW5mbzIgPSAwDQooWEVOKSBb
ICAxMTUuODI0NDYzXSBhc2lkID0gMHg2YTQgbnBfY3RybCA9IDB4MTogTlANCihYRU4pIFsgIDEx
NS44MzM2NTFdIHZpcnR1YWwgdm1sb2FkL3Ztc2F2ZSA9IDAsIHZpcnRfZXh0ID0gMA0KKFhFTikg
WyAgMTE1Ljg0NDM5Nl0gY3BsID0gMCBlZmVyID0gMHgxZDAxIHN0YXIgPSAweDIzMDAxMDAwMDAw
MDAwIGxzdGFyID0gMHhmZmZmZmZmZjgyMjAwMDgwDQooWEVOKSBbICAxMTUuODYwODY0XSBDUjAg
PSAweDAwMDAwMDAwODAwNTAwM2IgQ1IyID0gMHgwMDAwN2YxNjQ2OTNhMDgwDQooWEVOKSBbICAx
MTUuODczMzQ1XSBDUjMgPSAweDAwMDAwMDAwMDJjMzIwMDAgQ1I0ID0gMHgwMDAwMDAwMDAwMzUw
ZWYwDQooWEVOKSBbICAxMTUuODg1ODI1XSBSU1AgPSAweGZmZmZjOTAwMDAwZWZlNTAgIFJJUCA9
IDB4ZmZmZmZmZmY4MjA0MWE1Mw0KKFhFTikgWyAgMTE1Ljg5ODQ3N10gUkFYID0gMHgwMDAwMDAw
MDAwMDAwMDAwICBSRkxBR1M9MHgwMDAwMDAwMDAwMDAwMDkzDQooWEVOKSBbICAxMTUuOTExMzAy
XSBEUjYgPSAweDAwMDAwMDAwZmZmZjBmZjAsIERSNyA9IDB4MDAwMDAwMDAwMDAwMDQwMA0KKFhF
TikgWyAgMTE1LjkyMzk1Nl0gQ1NUQVIgPSAweGZmZmZmZmZmODIyMDFmYTAgU0ZNYXNrID0gMHgw
MDAwMDAwMDAwMjU3ZmQ1DQooWEVOKSBbICAxMTUuOTM3MzAzXSBLZXJuR1NCYXNlID0gMHgwMDAw
MDAwMDAwMDAwMDAwIFBBVCA9IDB4MDQwNzA1MDYwMDA3MDEwNg0KKFhFTikgWyAgMTE1Ljk1MDk5
OF0gU1NQID0gMHgwMDAwMDAwMDAwMDAwMDAwIFNfQ0VUID0gMHgwMDAwMDAwMDAwMDAwMDAwIElT
U1QgPSAweDAwMDAwMDAwMDAwMDAwMDANCihYRU4pIFsgIDExNS45NjgzMzBdIEhfQ1IzID0gMHgw
MDAwMDAwN2NiN2Q3MDAwIENsZWFuQml0cyA9IDB4ZmZmZmZmZjcNCihYRU4pIFsgIDExNS45ODA4
MTJdICAgICAgICBzZWwgYXR0ciAgbGltaXQgICBiYXNlDQooWEVOKSBbICAxMTUuOTg5ODI0XSAg
IENTOiAwMDEwIDAyOWIgZmZmZmZmZmYgMDAwMDAwMDAwMDAwMDAwMA0KKFhFTikgWyAgMTE2LjAw
MDkxN10gICBEUzogMDAwMCAwMDAwIDAwMDAwMDAwIDAwMDAwMDAwMDAwMDAwMDANCihYRU4pIFsg
IDExNi4wMTIwMTFdICAgU1M6IDAwMTggMGM5MyBmZmZmZmZmZiAwMDAwMDAwMDAwMDAwMDAwDQoo
WEVOKSBbICAxMTYuMDIzMTAzXSAgIEVTOiAwMDAwIDAwMDAgMDAwMDAwMDAgMDAwMDAwMDAwMDAw
MDAwMA0KKFhFTikgWyAgMTE2LjAzNDE5N10gICBGUzogMDAwMCAwMDAwIDAwMDAwMDAwIDAwMDAw
MDAwMDAwMDAwMDANCihYRU4pIFsgIDExNi4wNDUyOTFdICAgR1M6IDAwMDAgMDAwMCAwMDAwMDAw
MCBmZmZmODg4MTE1MTAwMDAwDQooWEVOKSBbICAxMTYuMDU2Mzg1XSBHRFRSOiAwMDAwIDAwMDAg
MDAwMDAwN2YgZmZmZmZlMDAwMDA3NzAwMA0KKFhFTikgWyAgMTE2LjA2NzQ3N10gTERUUjogMDAw
MCAwMDAwIDAwMDAwMDAwIGZmZmZmZTAwMDAwMDAwMDANCihYRU4pIFsgIDExNi4wNzg1NzNdIElE
VFI6IDAwMDAgMDAwMCAwMDAwMGZmZiBmZmZmZmUwMDAwMDAwMDAwDQooWEVOKSBbICAxMTYuMDg5
NjY0XSAgIFRSOiAwMDQwIDAwODkgMDAwMDQwODcgZmZmZmZlMDAwMDA3OTAwMA0KKFhFTikgWyAg
MTE2LjEwMDc1OV0gCVZDUFUgMw0KKFhFTikgWyAgMTE2LjEwNTk1OF0gRHVtcGluZyBndWVzdCdz
IGN1cnJlbnQgc3RhdGUgYXQga2V5X2hhbmRsZXIuLi4NCihYRU4pIFsgIDExNi4xMTgwOTFdIFNp
emUgb2YgVk1DQiA9IDQwOTYsIHBhZGRyID0gMDAwMDAwMDgwZjFlODAwMCwgdmFkZHIgPSBmZmZm
ODMwODBmMWU4MDAwDQooWEVOKSBbICAxMTYuMTM0Mzg1XSBjcl9pbnRlcmNlcHRzID0gMHhmZWYz
ZmVmMyBkcl9pbnRlcmNlcHRzID0gMHhmZmZmZmZmZiBleGNlcHRpb25faW50ZXJjZXB0cyA9IDB4
NjAwODINCihYRU4pIFsgIDExNi4xNTI5MzFdIGdlbmVyYWwxX2ludGVyY2VwdHMgPSAweGJkYzQw
MDBmIGdlbmVyYWwyX2ludGVyY2VwdHMgPSAweDZmN2YNCihYRU4pIFsgIDExNi4xNjc0OTJdIGlv
cG1fYmFzZV9wYSA9IDB4N2NiMzU0MDAwIG1zcnBtX2Jhc2VfcGEgPSAweDgwZjFlNjAwMCB0c2Nf
b2Zmc2V0ID0gMHhmZmZmZmZjMzM4NzE3NWM1DQooWEVOKSBbICAxMTYuMTg2Mzg1XSB0bGJfY29u
dHJvbCA9IDAgdmludHIgPSAweDEwZjAwMDEgaW50X3N0YXQgPSAwDQooWEVOKSBbICAxMTYuMTk4
MzQ2XSBldmVudF9pbmogMDAwMDAwMDAwMDAwMDAwMCwgdmFsaWQ/IDAsIGVjPyAwLCB0eXBlIDAs
IHZlY3RvciAwDQooWEVOKSBbICAxMTYuMjEyOTA2XSBleGl0Y29kZSA9IDB4ODEgZXhpdF9pbnRf
aW5mbyA9IDANCihYRU4pIFsgIDExNi4yMjI2MTRdIGV4aXRpbmZvMSA9IDAgZXhpdGluZm8yID0g
MA0KKFhFTikgWyAgMTE2LjIzMTI3OF0gYXNpZCA9IDB4NzI3IG5wX2N0cmwgPSAweDE6IE5QDQoo
WEVOKSBbICAxMTYuMjQwNDY3XSB2aXJ0dWFsIHZtbG9hZC92bXNhdmUgPSAwLCB2aXJ0X2V4dCA9
IDANCihYRU4pIFsgIDExNi4yNTEyMTRdIGNwbCA9IDAgZWZlciA9IDB4MWQwMSBzdGFyID0gMHgy
MzAwMTAwMDAwMDAwMCBsc3RhciA9IDB4ZmZmZmZmZmY4MjIwMDA4MA0KKFhFTikgWyAgMTE2LjI2
NzY3OV0gQ1IwID0gMHgwMDAwMDAwMDgwMDUwMDNiIENSMiA9IDB4MDAwMDdmZTAwMzE2ZjA5ZA0K
KFhFTikgWyAgMTE2LjI4MDE2MF0gQ1IzID0gMHgwMDAwMDAwMDAyYzMyMDAwIENSNCA9IDB4MDAw
MDAwMDAwMDM1MGVmMA0KKFhFTikgWyAgMTE2LjI5MjY0MV0gUlNQID0gMHhmZmZmYzkwMDAwMGY3
ZGU4ICBSSVAgPSAweGZmZmZmZmZmODIwM2IzMDgNCihYRU4pIFsgIDExNi4zMDUyOTJdIFJBWCA9
IDB4MDAwMDAwMDAwMDAwMDAwMCAgUkZMQUdTPTB4MDAwMDAwMDAwMDAwMDAxMg0KKFhFTikgWyAg
MTE2LjMxODExOV0gRFI2ID0gMHgwMDAwMDAwMGZmZmYwZmYwLCBEUjcgPSAweDAwMDAwMDAwMDAw
MDA0MDANCihYRU4pIFsgIDExNi4zMzA3NzRdIENTVEFSID0gMHhmZmZmZmZmZjgyMjAxZmEwIFNG
TWFzayA9IDB4MDAwMDAwMDAwMDI1N2ZkNQ0KKFhFTikgWyAgMTE2LjM0NDEyMV0gS2VybkdTQmFz
ZSA9IDB4MDAwMDAwMDAwMDAwMDAwMCBQQVQgPSAweDA0MDcwNTA2MDAwNzAxMDYNCihYRU4pIFsg
IDExNi4zNTc4MTJdIFNTUCA9IDB4MDAwMDAwMDAwMDAwMDAwMCBTX0NFVCA9IDB4MDAwMDAwMDAw
MDAwMDAwMCBJU1NUID0gMHgwMDAwMDAwMDAwMDAwMDAwDQooWEVOKSBbICAxMTYuMzc1MTQ3XSBI
X0NSMyA9IDB4MDAwMDAwMDdjYjdkNzAwMCBDbGVhbkJpdHMgPSAweGZmZmZmZmY3DQooWEVOKSBb
ICAxMTYuMzg3NjI4XSAgICAgICAgc2VsIGF0dHIgIGxpbWl0ICAgYmFzZQ0KKFhFTikgWyAgMTE2
LjM5NjY0MF0gICBDUzogMDAxMCAwMjliIGZmZmZmZmZmIDAwMDAwMDAwMDAwMDAwMDANCihYRU4p
IFsgIDExNi40MDc3MzNdICAgRFM6IDAwMDAgMDAwMCAwMDAwMDAwMCAwMDAwMDAwMDAwMDAwMDAw
DQooWEVOKSBbICAxMTYuNDE4ODI2XSAgIFNTOiAwMDE4IDBjOTMgZmZmZmZmZmYgMDAwMDAwMDAw
MDAwMDAwMA0KKFhFTikgWyAgMTE2LjQyOTkyMF0gICBFUzogMDAwMCAwMDAwIDAwMDAwMDAwIDAw
MDAwMDAwMDAwMDAwMDANCihYRU4pIFsgIDExNi40NDEwMTRdICAgRlM6IDAwMDAgMDAwMCAwMDAw
MDAwMCAwMDAwMDAwMDAwMDAwMDAwDQooWEVOKSBbICAxMTYuNDUyMTA2XSAgIEdTOiAwMDAwIDAw
MDAgMDAwMDAwMDAgZmZmZjg4ODExNTE4MDAwMA0KKFhFTikgWyAgMTE2LjQ2MzIwMF0gR0RUUjog
MDAwMCAwMDAwIDAwMDAwMDdmIGZmZmZmZTAwMDAwYjIwMDANCihYRU4pIFsgIDExNi40NzQyOTNd
IExEVFI6IDAwMDAgMDAwMCAwMDAwMDAwMCBmZmZmZmUwMDAwMDAwMDAwDQooWEVOKSBbICAxMTYu
NDg1Mzg3XSBJRFRSOiAwMDAwIDAwMDAgMDAwMDBmZmYgZmZmZmZlMDAwMDAwMDAwMA0KKFhFTikg
WyAgMTE2LjQ5NjQ4MV0gICBUUjogMDA0MCAwMDg5IDAwMDA0MDg3IGZmZmZmZTAwMDAwYjQwMDAN
CihYRU4pIFsgIDExNi41MDc1NzZdICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqDQooWEVOKSBbICAxMTYuNTE4MTQ4XSBbeDogcHJpbnQgbGl2ZXBhdGNoIGluZm9dDQooWEVO
KSBbICAxMTYuNTI2NDY5XSAneCcgcHJlc3NlZCAtIER1bXBpbmcgYWxsIGxpdmVwYXRjaCBwYXRj
aGVzDQooWEVOKSBbICAxMTYuNTM3OTA4XSBidWlsZC1pZDogOGFhYmViNjNiMjBhMzQ3OTc2ZmJk
NWYzOGQ3YWIzNTZjMzA3YzQxZQ0KKFhFTikgWyAgMTE2LjU1MDU2M10gW3o6IGR1bXAgSU9BUElD
IGluZm9dDQooWEVOKSBbICAxMTYuNTU4MTg4XSBudW1iZXIgb2YgTVAgSVJRIHNvdXJjZXM6IDE1
Lg0KKFhFTikgWyAgMTE2LjU2NzIwM10gbnVtYmVyIG9mIElPLUFQSUMgIzE3IHJlZ2lzdGVyczog
MjQuDQooWEVOKSBbICAxMTYuNTc3NDMwXSBudW1iZXIgb2YgSU8tQVBJQyAjMTggcmVnaXN0ZXJz
OiAzMi4NCihYRU4pIFsgIDExNi41ODc2NTVdIHRlc3RpbmcgdGhlIElPIEFQSUMuLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLg0KKFhFTikgWyAgMTE2LjU5ODkyMl0gSU8gQVBJQyAjMTcuLi4uLi4NCihY
RU4pIFsgIDExNi42MDU4NTVdIC4uLi4gcmVnaXN0ZXIgIzAwOiAxMTAwMDAwMA0KKFhFTikgWyAg
MTE2LjYxNDUyMl0gLi4uLi4uLiAgICA6IHBoeXNpY2FsIEFQSUMgaWQ6IDExDQooWEVOKSBbICAx
MTYuNjI0MjMwXSAuLi4uLi4uICAgIDogRGVsaXZlcnkgVHlwZTogMA0KKFhFTikgWyAgMTE2LjYz
MzI0NF0gLi4uLi4uLiAgICA6IExUUyAgICAgICAgICA6IDANCihYRU4pIFsgIDExNi42NDIyNTdd
IC4uLi4gcmVnaXN0ZXIgIzAxOiAwMDE3ODAyMQ0KKFhFTikgWyAgMTE2LjY1MDkyM10gLi4uLi4u
LiAgICAgOiBtYXggcmVkaXJlY3Rpb24gZW50cmllczogMDAxNw0KKFhFTikgWyAgMTE2LjY2MjM2
NF0gLi4uLi4uLiAgICAgOiBQUlEgaW1wbGVtZW50ZWQ6IDENCihYRU4pIFsgIDExNi42NzE4OTdd
IC4uLi4uLi4gICAgIDogSU8gQVBJQyB2ZXJzaW9uOiAwMDIxDQooWEVOKSBbICAxMTYuNjgxOTUx
XSAuLi4uIHJlZ2lzdGVyICMwMjogMDEwMDAwMDANCihYRU4pIFsgIDExNi42OTA2MTVdIC4uLi4u
Li4gICAgIDogYXJiaXRyYXRpb246IDAxDQooWEVOKSBbICAxMTYuNjk5NjI5XSAuLi4uIHJlZ2lz
dGVyICMwMzogMDAwMDAwMDANCihYRU4pIFsgIDExNi43MDgyOTddIC4uLi4uLi4gICAgIDogQm9v
dCBEVCAgICA6IDANCihYRU4pIFsgIDExNi43MTcxMzddIC4uLi4gSVJRIHJlZGlyZWN0aW9uIHRh
YmxlOg0KKFhFTikgWyAgMTE2LjcyNTgwMV0gIE5SIERzdCBNc2sgVHJnIElSUiBQb2wgU3RhdCBE
c3RNIERlbE0gVmVjDQooWEVOKSBbICAxMTYuNzM3MDcxXSAgMDAgIDAwICAxICAgMCAgIDAgICAw
ICAgMCAgICAwICAgIDAgICAgMDANCihYRU4pIFsgIDExNi43NDgzMzhdICAwMSAgMDAgIDAgICAw
ICAgMCAgIDAgICAwICAgIDAgICAgMCAgICAzOA0KKFhFTikgWyAgMTE2Ljc1OTYwMl0gIDAyICAw
MCAgMCAgIDAgICAwICAgMCAgIDAgICAgMCAgICAwICAgIEYwDQooWEVOKSBbICAxMTYuNzcwODcw
XSAgMDMgIDAwICAwICAgMCAgIDAgICAwICAgMCAgICAwICAgIDAgICAgNDANCihYRU4pIFsgIDEx
Ni43ODIxMzddICAwNCAgMDggIDAgICAwICAgMCAgIDAgICAwICAgIDAgICAgMCAgICBGMQ0KKFhF
TikgWyAgMTE2Ljc5MzQwNV0gIDA1ICAwMCAgMCAgIDAgICAwICAgMCAgIDAgICAgMCAgICAwICAg
IDQ4DQooWEVOKSBbICAxMTYuODA0NjcyXSAgMDYgIDAwICAwICAgMCAgIDAgICAwICAgMCAgICAw
ICAgIDAgICAgNTANCihYRU4pIFsgIDExNi44MTU5MzhdICAwNyAgMDAgIDAgICAwICAgMCAgIDAg
ICAwICAgIDAgICAgMCAgICA1OA0KKFhFTikgWyAgMTE2LjgyNzIwM10gIDA4ICAwMCAgMCAgIDAg
ICAwICAgMCAgIDAgICAgMCAgICAwICAgIDYwDQooWEVOKSBbICAxMTYuODM4NDY5XSAgMDkgIDAw
ICAwICAgMSAgIDAgICAxICAgMCAgICAwICAgIDAgICAgNjgNCihYRU4pIFsgIDExNi44NDk3MzZd
ICAwYSAgMDAgIDAgICAwICAgMCAgIDAgICAwICAgIDAgICAgMCAgICA3MA0KKFhFTikgWyAgMTE2
Ljg2MTAwNV0gIDBiICAwMCAgMCAgIDAgICAwICAgMCAgIDAgICAgMCAgICAwICAgIDc4DQooWEVO
KSBbICAxMTYuODcyMjcyXSAgMGMgIDAwICAwICAgMCAgIDAgICAwICAgMCAgICAwICAgIDAgICAg
ODgNCihYRU4pIFsgIDExNi44ODM1MzhdICAwZCAgMDAgIDAgICAwICAgMCAgIDAgICAwICAgIDAg
ICAgMCAgICA5MA0KKFhFTikgWyAgMTE2Ljg5NDgwNV0gIDBlICAwMCAgMCAgIDAgICAwICAgMCAg
IDAgICAgMCAgICAwICAgIDk4DQooWEVOKSBbICAxMTYuOTA2MDcxXSAgMGYgIDAwICAwICAgMCAg
IDAgICAwICAgMCAgICAwICAgIDAgICAgQTANCihYRU4pIFsgIDExNi45MTczMzldICAxMCAgMDAg
IDEgICAwICAgMCAgIDAgICAwICAgIDAgICAgMCAgICAwMA0KKFhFTikgWyAgMTE2LjkyODYwM10g
IDExICAwMCAgMSAgIDAgICAwICAgMCAgIDAgICAgMCAgICAwICAgIDAwDQooWEVOKSBbICAxMTYu
OTM5ODcwXSAgMTIgIDAwICAxICAgMCAgIDAgICAwICAgMCAgICAwICAgIDAgICAgMDANCihYRU4p
IFsgIDExNi45NTExMzhdICAxMyAgMDAgIDEgICAwICAgMCAgIDAgICAwICAgIDAgICAgMCAgICAw
MA0KKFhFTikgWyAgMTE2Ljk2MjQwNF0gIDE0ICAwMCAgMSAgIDAgICAwICAgMCAgIDAgICAgMCAg
ICAwICAgIDAwDQooWEVOKSBbICAxMTYuOTczNjczXSAgMTUgIDAwICAxICAgMCAgIDAgICAwICAg
MCAgICAwICAgIDAgICAgMDANCihYRU4pIFsgIDExNi45ODQ5MzldICAxNiAgMDAgIDEgICAwICAg
MCAgIDAgICAwICAgIDAgICAgMCAgICAwMA0KKFhFTikgWyAgMTE2Ljk5NjIwNF0gIDE3ICAwMCAg
MSAgIDAgICAwICAgMCAgIDAgICAgMCAgICAwICAgIDAwDQooWEVOKSBbICAxMTcuMDA3NDcyXSBJ
TyBBUElDICMxOC4uLi4uLg0KKFhFTikgWyAgMTE3LjAxNDQwNV0gLi4uLiByZWdpc3RlciAjMDA6
IDEyMDAwMDAwDQooWEVOKSBbICAxMTcuMDIzMDcwXSAuLi4uLi4uICAgIDogcGh5c2ljYWwgQVBJ
QyBpZDogMTINCihYRU4pIFsgIDExNy4wMzI3NzldIC4uLi4uLi4gICAgOiBEZWxpdmVyeSBUeXBl
OiAwDQooWEVOKSBbICAxMTcuMDQxNzkzXSAuLi4uLi4uICAgIDogTFRTICAgICAgICAgIDogMA0K
KFhFTikgWyAgMTE3LjA1MDgwNF0gLi4uLiByZWdpc3RlciAjMDE6IDAwMUY4MDIxDQooWEVOKSBb
ICAxMTcuMDU5NDczXSAuLi4uLi4uICAgICA6IG1heCByZWRpcmVjdGlvbiBlbnRyaWVzOiAwMDFG
DQooWEVOKSBbICAxMTcuMDcwOTE0XSAuLi4uLi4uICAgICA6IFBSUSBpbXBsZW1lbnRlZDogMQ0K
KFhFTikgWyAgMTE3LjA4MDQ0NV0gLi4uLi4uLiAgICAgOiBJTyBBUElDIHZlcnNpb246IDAwMjEN
CihYRU4pIFsgIDExNy4wOTA0OThdIC4uLi4gcmVnaXN0ZXIgIzAyOiAwMDAwMDAwMA0KKFhFTikg
WyAgMTE3LjA5OTE2Nl0gLi4uLi4uLiAgICAgOiBhcmJpdHJhdGlvbjogMDANCihYRU4pIFsgIDEx
Ny4xMDgxODBdIC4uLi4gSVJRIHJlZGlyZWN0aW9uIHRhYmxlOg0KKFhFTikgWyAgMTE3LjExNjg0
OF0gIE5SIERzdCBNc2sgVHJnIElSUiBQb2wgU3RhdCBEc3RNIERlbE0gVmVjDQooWEVOKSBbICAx
MTcuMTI4MTE0XSAgMDAgIDAwICAxICAgMCAgIDAgICAwICAgMCAgICAwICAgIDAgICAgMDANCihY
RU4pIFsgIDExNy4xMzkzNzldICAwMSAgMDAgIDEgICAwICAgMCAgIDAgICAwICAgIDAgICAgMCAg
ICAwMA0KKFhFTikgWyAgMTE3LjE1MDY0NV0gIDAyICAwMCAgMSAgIDAgICAwICAgMCAgIDAgICAg
MCAgICAwICAgIDAwDQooWEVOKSBbICAxMTcuMTYxOTEzXSAgMDMgIDAwICAxICAgMCAgIDAgICAw
ICAgMCAgICAwICAgIDAgICAgMDANCihYRU4pIFsgIDExNy4xNzMxNzldICAwNCAgMDAgIDEgICAw
ICAgMCAgIDAgICAwICAgIDAgICAgMCAgICAwMA0KKFhFTikgWyAgMTE3LjE4NDQ0Nl0gIDA1ICAw
MCAgMSAgIDAgICAwICAgMCAgIDAgICAgMCAgICAwICAgIDAwDQooWEVOKSBbICAxMTcuMTk1NzEz
XSAgMDYgIDAwICAxICAgMCAgIDAgICAwICAgMCAgICAwICAgIDAgICAgMDANCihYRU4pIFsgIDEx
Ny4yMDY5ODFdICAwNyAgMDAgIDEgICAwICAgMCAgIDAgICAwICAgIDAgICAgMCAgICAwMA0KKFhF
TikgWyAgMTE3LjIxODI0N10gIDA4ICAwMCAgMSAgIDAgICAwICAgMCAgIDAgICAgMCAgICAwICAg
IDAwDQooWEVOKSBbICAxMTcuMjI5NTEzXSAgMDkgIDAwICAxICAgMCAgIDAgICAwICAgMCAgICAw
ICAgIDAgICAgMDANCihYRU4pIFsgIDExNy4yNDA3NzldICAwYSAgMDAgIDEgICAwICAgMCAgIDAg
ICAwICAgIDAgICAgMCAgICAwMA0KKFhFTikgWyAgMTE3LjI1MjA0OF0gIDBiICAwMCAgMSAgIDAg
ICAwICAgMCAgIDAgICAgMCAgICAwICAgIDAwDQooWEVOKSBbICAxMTcuMjYzMzEzXSAgMGMgIDAw
ICAxICAgMCAgIDAgICAwICAgMCAgICAwICAgIDAgICAgMDANCihYRU4pIFsgIDExNy4yNzQ1ODBd
ICAwZCAgMDAgIDEgICAwICAgMCAgIDAgICAwICAgIDAgICAgMCAgICAwMA0KKFhFTikgWyAgMTE3
LjI4NTg0OV0gIDBlICAwMCAgMSAgIDAgICAwICAgMCAgIDAgICAgMCAgICAwICAgIDAwDQooWEVO
KSBbICAxMTcuMjk3MTEyXSAgMGYgIDAwICAxICAgMCAgIDAgICAwICAgMCAgICAwICAgIDAgICAg
MDANCihYRU4pIFsgIDExNy4zMDgzODBdICAxMCAgMDAgIDEgICAwICAgMCAgIDAgICAwICAgIDAg
ICAgMCAgICAwMA0KKFhFTikgWyAgMTE3LjMxOTY0N10gIDExICAwMCAgMSAgIDAgICAwICAgMCAg
IDAgICAgMCAgICAwICAgIDAwDQooWEVOKSBbICAxMTcuMzMwOTE0XSAgMTIgIDAwICAxICAgMCAg
IDAgICAwICAgMCAgICAwICAgIDAgICAgMDANCihYRU4pIFsgIDExNy4zNDIxODFdICAxMyAgMDAg
IDEgICAwICAgMCAgIDAgICAwICAgIDAgICAgMCAgICAwMA0KKFhFTikgWyAgMTE3LjM1MzQ0OF0g
IDE0ICAwMCAgMSAgIDAgICAwICAgMCAgIDAgICAgMCAgICAwICAgIDAwDQooWEVOKSBbICAxMTcu
MzY0NzEzXSAgMTUgIDAwICAxICAgMCAgIDAgICAwICAgMCAgICAwICAgIDAgICAgMDANCihYRU4p
IFsgIDExNy4zNzU5ODJdICAxNiAgMDAgIDEgICAwICAgMCAgIDAgICAwICAgIDAgICAgMCAgICAw
MA0KKFhFTikgWyAgMTE3LjM4NzI0N10gIDE3ICAwMCAgMSAgIDAgICAwICAgMCAgIDAgICAgMCAg
ICAwICAgIDAwDQooWEVOKSBbICAxMTcuMzk4NTEzXSAgMTggIDAwICAxICAgMCAgIDAgICAwICAg
MCAgICAwICAgIDAgICAgMDANCihYRU4pIFsgIDExNy40MDk3ODJdICAxOSAgMDAgIDEgICAwICAg
MCAgIDAgICAwICAgIDAgICAgMCAgICAwMA0KKFhFTikgWyAgMTE3LjQyMTA0OF0gIDFhICAwMCAg
MSAgIDAgICAwICAgMCAgIDAgICAgMCAgICAwICAgIDAwDQooWEVOKSBbICAxMTcuNDMyMzE2XSAg
MWIgIDAwICAxICAgMCAgIDAgICAwICAgMCAgICAwICAgIDAgICAgMDANCihYRU4pIFsgIDExNy40
NDM1ODFdICAxYyAgMDAgIDEgICAwICAgMCAgIDAgICAwICAgIDAgICAgMCAgICAwMA0KKFhFTikg
WyAgMTE3LjQ1NDg0N10gIDFkICAwMCAgMSAgIDAgICAwICAgMCAgIDAgICAgMCAgICAwICAgIDAw
DQooWEVOKSBbICAxMTcuNDY2MTE1XSAgMWUgIDAwICAxICAgMCAgIDAgICAwICAgMCAgICAwICAg
IDAgICAgMDANCihYRU4pIFsgIDExNy40NzczODJdICAxZiAgMDAgIDEgICAwICAgMCAgIDAgICAw
ICAgIDAgICAgMCAgICAwMA0KKFhFTikgWyAgMTE3LjQ4ODY1MF0gVXNpbmcgdmVjdG9yLWJhc2Vk
IGluZGV4aW5nDQooWEVOKSBbICAxMTcuNDk3MzE3XSBJUlEgdG8gcGluIG1hcHBpbmdzOg0KKFhF
TikgWyAgMTE3LjUwNDc3MF0gSVJRMjQwIC0+IDA6Mg0KKFhFTikgWyAgMTE3LjUxMTAwOF0gSVJR
NTYgLT4gMDoxDQooWEVOKSBbICAxMTcuNTE3MDc1XSBJUlE2NCAtPiAwOjMNCihYRU4pIFsgIDEx
Ny41MjMxNDNdIElSUTI0MSAtPiAwOjQNCihYRU4pIFsgIDExNy41MjkzODJdIElSUTcyIC0+IDA6
NQ0KKFhFTikgWyAgMTE3LjUzNTQ0OV0gSVJRODAgLT4gMDo2DQooWEVOKSBbICAxMTcuNTQxNTE1
XSBJUlE4OCAtPiAwOjcNCihYRU4pIFsgIDExNy41NDc1ODRdIElSUTk2IC0+IDA6OA0KKFhFTikg
WyAgMTE3LjU1MzY1MF0gSVJRMTA0IC0+IDA6OQ0KKFhFTikgWyAgMTE3LjU1OTg5MV0gSVJRMTEy
IC0+IDA6MTANCihYRU4pIFsgIDExNy41NjYzMDJdIElSUTEyMCAtPiAwOjExDQooWEVOKSBbICAx
MTcuNTcyNzE0XSBJUlExMzYgLT4gMDoxMg0KKFhFTikgWyAgMTE3LjU3OTEzMF0gSVJRMTQ0IC0+
IDA6MTMNCihYRU4pIFsgIDExNy41ODU1NDFdIElSUTE1MiAtPiAwOjE0DQooWEVOKSBbICAxMTcu
NTkxOTU3XSBJUlExNjAgLT4gMDoxNQ0KKFhFTikgWyAgMTE3LjU5ODM3MV0gLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uIGRvbmUuDQo=

--------------6Td7nOPxkIvu5d2pw5vDA1A0--


From xen-devel-bounces@lists.xenproject.org Thu Apr 24 01:09:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Apr 2025 01:09:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.965726.1356182 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7l5T-0002fE-Em; Thu, 24 Apr 2025 01:09:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 965726.1356182; Thu, 24 Apr 2025 01: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 1u7l5T-0002f7-Bk; Thu, 24 Apr 2025 01:09:11 +0000
Received: by outflank-mailman (input) for mailman id 965726;
 Thu, 24 Apr 2025 01:09: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=YKuC=XK=tum.de=f.specht@srs-se1.protection.inumbo.net>)
 id 1u7l5M-0002ei-FT
 for xen-devel@lists.xenproject.org; Thu, 24 Apr 2025 01:09:09 +0000
Received: from postout1.mail.lrz.de (postout1.mail.lrz.de [129.187.255.137])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b4928715-20a8-11f0-9eb1-5ba50f476ded;
 Thu, 24 Apr 2025 03:09:01 +0200 (CEST)
Received: from lxmhs51.srv.lrz.de (localhost [127.0.0.1])
 by postout1.mail.lrz.de (Postfix) with ESMTP id 4ZjdCc2TPCzyYd;
 Thu, 24 Apr 2025 03:08:59 +0200 (CEST)
Received: from postout1.mail.lrz.de ([127.0.0.1])
 by lxmhs51.srv.lrz.de (lxmhs51.srv.lrz.de [127.0.0.1]) (amavis, port 20024)
 with LMTP id 2C68K3DEf7DF; Thu, 24 Apr 2025 03:08:59 +0200 (CEST)
Received: from localhost (ip-77-25-21-71.web.vodafone.de [77.25.21.71])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange ECDHE (prime256v1) server-signature RSA-PSS (2048 bits)
 server-digest SHA256) (Client did not present a certificate)
 by postout1.mail.lrz.de (Postfix) with ESMTPSA id 4ZjdCb1j6MzyYB;
 Thu, 24 Apr 2025 03:08:59 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b4928715-20a8-11f0-9eb1-5ba50f476ded
Authentication-Results: postout.lrz.de (amavis); dkim=pass (2048-bit key)
 reason="pass (just generated, assumed good)" header.d=tum.de
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tum.de; h=
	content-disposition:content-type:content-type:mime-version
	:message-id:subject:subject:from:from:date:date:received
	:received; s=tu-postout21; t=1745456939; bh=bYJ0+adjAhoU74pADpBp
	inu5glaC3kBjd/yPNjT5efI=; b=HXDAj10fy1gvB1oMCmVZIRRsOnIDtlGHHovk
	xGwR3hnbWNSZoVSLMW+dRIr2SwLmaL76/+vcAId4x7yT794XQiN68Fah9EcBxiIp
	lG1D7PTUK51REux0xuoo1ABz3cMIIwKYalvBWwLC5XpR8aSTkJIXVj42CitQd1Hz
	Cb3GtDdxv+HPFQ6opADTDV7v+4Qflor6JgHYtuQyH+4MbhdprvCLLNWn9OBEzTgS
	Kd/GycPG84+cCdv9w4e+aW1HKsUB+kZYY7myw9wk04RUDecSzC+YOQEQJa8Q02d7
	uhKd6hTuBu8Cs1I46Kwk3lD1NnZ/p/dX8doJQkzwCceCBRRBzQ==
X-Virus-Scanned: by amavisd-new at lrz.de in lxmhs51.srv.lrz.de
X-Spam-Flag: NO
X-Spam-Score: -2.871
X-Spam-Level:
X-Spam-Status: No, score=-2.871 tagged_above=-999 required=5
 tests=[ALL_TRUSTED=-1, BAYES_00=-1.9, DMARC_ADKIM_RELAXED=0.001,
 DMARC_ASPF_RELAXED=0.001, DMARC_POLICY_NONE=0.001, LRZ_BND_AN=0.001,
 LRZ_BND_MUTT=0.001, LRZ_DMARC_FAIL=0.001, LRZ_DMARC_FAIL_NONE=0.001,
 LRZ_DMARC_POLICY=0.001, LRZ_DMARC_TUM_FAIL=0.001, LRZ_DMARC_TUM_REJECT=3.5,
 LRZ_DMARC_TUM_REJECT_PO=-3.5, LRZ_ENVFROM_FROM_MATCH=0.001,
 LRZ_ENVFROM_TUM_S=0.001, LRZ_FROM_ENVFROM_ALIGNED_STRICT=0.001,
 LRZ_FROM_HAS_A=0.001, LRZ_FROM_HAS_AAAA=0.001, LRZ_FROM_HAS_MDOM=0.001,
 LRZ_FROM_HAS_MX=0.001, LRZ_FROM_HOSTED_DOMAIN=0.001,
 LRZ_FROM_NAME_IN_ADDR=0.001, LRZ_FROM_PHRASE=0.001,
 LRZ_FROM_PRE_SUR_PHRASE=0.001, LRZ_FROM_TUM_S=0.001, LRZ_HAS_BND=0.001,
 LRZ_HAS_CT=0.001, LRZ_HAS_MIME_VERSION=0.001, LRZ_HAS_SPF=0.001,
 LRZ_MSGID_LONG_50=0.001, LRZ_MSGID_NO_FQDN=0.001, LRZ_NO_UA_HEADER=0.001,
 LRZ_TO_SHORT=0.001] autolearn=no autolearn_force=no
Date: Thu, 24 Apr 2025 03:08:50 +0200
From: Fabian Specht <f.specht@tum.de>
To: xen-devel@lists.xenproject.org
Cc: manuel.andreas@tum.de
Subject: UBSan bug in real mode fpu emulation
Message-ID: <l2jnq5cxgkzcdkndp3mjf76nd7wdp2pbstkqo7llaarmbfqdge@bxdydela4rcf>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="7qx3syuhiqqeq7zi"
Content-Disposition: inline


--7qx3syuhiqqeq7zi
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

Dear Xen-Devel team,

we discovered a bug regarding undefined behaviour in the FPU emulation
unit.

if ( !s->rex_prefix )
{
	/* Convert 32-bit real/vm86 to 32-bit prot format. */
	unsigned int fip = fpstate.env.mode.real.fip_lo +
					   (fpstate.env.mode.real.fip_hi << 16);
	unsigned int fdp = fpstate.env.mode.real.fdp_lo +
					   (fpstate.env.mode.real.fdp_hi << 16);
	unsigned int fop = fpstate.env.mode.real.fop;

	fpstate.env.mode.prot.fip = fip & 0xf;
	fpstate.env.mode.prot.fcs = fip >> 4;
	fpstate.env.mode.prot.fop = fop;
	fpstate.env.mode.prot.fdp = fdp & 0xf;
	fpstate.env.mode.prot.fds = fdp >> 4;
}

It occurs at arch/x86/arch/x86/x86_emulate/blk.c:85 of the v4.20.0
release during the bit shift and can be triggered using the attached xtf
test. We are not aware of any security consequences.
Simply shifting by 4 should do the trick in my opinion.

Similar code resides in the same file in lines 87, 125 and 127.
The attached xtf test is run for hvm32.

~Fabian

--7qx3syuhiqqeq7zi
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="main.c"

#include <xtf.h>

const char test_title[] = "PoC-FPU-UBSan";

bool test_needs_fep = true;

void test_main(void)
{
    uint8_t fpu_env[28];

    /* To trigger UBSAN oout of bounds shift */
    memset(fpu_env, 0xFF, sizeof(fpu_env));

    asm volatile("movl %%cr0, %%ebx;"
                 "andl $0xFFFFFFFE, %%ebx;"
                 "movl %%ebx, %%cr0;"
                 "ud2;"
                 ".ascii \"xen\";"
                 "fldenv (%0)"
                 :
                 : "r"(fpu_env)
                 : "memory"
                 );

}

--7qx3syuhiqqeq7zi--


From xen-devel-bounces@lists.xenproject.org Thu Apr 24 01:40:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Apr 2025 01:40:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.965740.1356192 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7lZi-0007zv-S6; Thu, 24 Apr 2025 01:40:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 965740.1356192; Thu, 24 Apr 2025 01:40:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7lZi-0007zo-P7; Thu, 24 Apr 2025 01:40:26 +0000
Received: by outflank-mailman (input) for mailman id 965740;
 Thu, 24 Apr 2025 01:40:25 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=9zow=XK=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u7lZg-0007zi-36
 for xen-devel@lists.xenproject.org; Thu, 24 Apr 2025 01:40:25 +0000
Received: from mail-10631.protonmail.ch (mail-10631.protonmail.ch
 [79.135.106.31]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 15a70189-20ad-11f0-9eb1-5ba50f476ded;
 Thu, 24 Apr 2025 03:40:21 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 15a70189-20ad-11f0-9eb1-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1745458819; x=1745718019;
	bh=E/pMn9s671PtyemGwfmn/DeTr7HmEQ+adb1LZrX6IO4=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=jErJxlF2dfnoc5+fuT+lJCNaLoYepJq8hOlGpjDtp5IxwqGCoG2me7gFIyDXzk7mA
	 36W2XODrN8nJ9vTlQsf4uDOmUAM7now0ywq5Jja66UW/vzAdWBgA5yEoNA9XZjbadT
	 okEXpGuthjnD2brR7HkF+66hR9yt3qWWqu3P/MYgSwZAqz7QRx4Cjf/lEbk7yr9rAa
	 3XlqTkGi/Kluj3SrSUNi3uVzrl6kK1mCOJ7mO45SlDQJJF18SWx26pLm25FitNep9e
	 Js6kIw3ebnJ5dQYd4orol/pUw9/FPaR0mEmr8Sb+3inl8KtTvfixdPGGj4x3ZdmFLa
	 eF1FgHe/sarqA==
Date: Thu, 24 Apr 2025 01:40:13 +0000
To: Julien Grall <julien@xen.org>
From: dmkhn@proton.me
Cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com, michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org, dmukhin@ford.com
Subject: Re: [PATCH v4] xen/domain: unify domain ID allocation
Message-ID: <aAmWep+FJKCcw5hd@kraken>
In-Reply-To: <f0f159e6-ad79-4c1a-a61e-0272615754d6@xen.org>
References: <20250422215322.521464-1-dmukhin@ford.com> <f0f159e6-ad79-4c1a-a61e-0272615754d6@xen.org>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: c001325e1c16558bfb4bb2bbc1ee4262a3042bf4
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Hi Julien,

Thanks a lot for review!

On Wed, Apr 23, 2025 at 12:22:39PM +0100, Julien Grall wrote:
> Hi Denis,
>=20
> On 22/04/2025 22:54, dmkhn@proton.me wrote:
> > From: Denis Mukhin <dmukhin@ford.com>
> >
> > Currently, hypervisor code has two different non-system domain ID alloc=
ation
> > algorithms:
> >
> >    (a) Arm port allocates IDs sequentially based on max_init_domid;
> >
> >    (b) x86 has another algorithm implementation embedded into
> >        XEN_DOMCTL_createdomain; does not use max_init_domid, but does s=
imilar
> >        thing wrt sequentially allocating IDs.
>=20
> I am a bit confused with this statement. This is implying the code is
> only used by x86. However, XEN_DOMCTL_createdomain is common code and
> used by Arm when creating domains from the toolstack. Can you clarify?

Sorry for confusion. On x86, only implementation in "XEN_DOMCTL_createdomai=
n"
is used; I should have provided a clearer explanation.

> With this in mind...
>=20
> >
> > It makes sense to have a common helper code for such task across archit=
ectures
> > (Arm and x86).
>=20
> ... the unification is effectively between dom0less domU allocation and
> the toolstack domU allocation.

Correct; I will re-phrase, once there's agreement on the direction for this
patch in general.

>=20
> >
> > Wrap the domain ID allocation as an arch-independent function domid_all=
oc() in
> > common/domain.c.
> >
> > Allocation algorithm:
> > - If an explicit domain ID is provided, verify its availability and
> >    use it if ID is unused;
> > - Otherwise, perform an exhaustive search starting from the end of the =
used
> >    domain ID range, excluding hardware_domid.
> >
> > Move the is_free_domid() helper closer to domid_alloc(). Simplify
> > is_free_domid() by removing the domain ID range check, as the ID is now
> > guaranteed to be within the valid range. Additionally, update the predi=
cate to
> > return a bool value instead of an int.
> >
> > No functional change intended.
> >
> > Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> > ---
> > Changes v3->v4:
> > - fixed the behavior of domctl ID allocator to match the original behav=
ior
> >    in case of exhaustive search
> > - use domid_t input argument in domid_alloc()
> > - use DOMID_INVALID as an indicator of performing an exhaustive search
> > - use DOMID_INVALID as an indicator of allocator failure
> > - use %pd formatting for domain ID printouts in the modified code
> > - some comments fixups
> > - Link to v2: https://lore.kernel.org/xen-devel/20250416061509.934220-1=
-dmukhin@ford.com/
> > - CI run: https://gitlab.com/xen-project/people/dmukhin/xen/-/pipelines=
/1780576277
> > ---
> >   xen/arch/arm/dom0less-build.c | 17 ++++++------
> >   xen/arch/arm/domain_build.c   | 17 ++++++++----
> >   xen/arch/x86/setup.c          | 11 +++++---
> >   xen/common/domain.c           | 51 ++++++++++++++++++++++++++++++++++=
+
> >   xen/common/domctl.c           | 41 +++-------------------------
> >   xen/include/xen/domain.h      |  2 ++
> >   6 files changed, 84 insertions(+), 55 deletions(-)
> >
> > diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-buil=
d.c
> > index a356fc94fc..61e01b7306 100644
> > --- a/xen/arch/arm/dom0less-build.c
> > +++ b/xen/arch/arm/dom0less-build.c
> > @@ -1038,15 +1038,13 @@ void __init create_domUs(void)
> >           };
> >           unsigned int flags =3D 0U;
> >           bool has_dtb =3D false;
> > +        domid_t domid;
> >           uint32_t val;
> >           int rc;
> >
> >           if ( !dt_device_is_compatible(node, "xen,domain") )
> >               continue;
> >
> > -        if ( (max_init_domid + 1) >=3D DOMID_FIRST_RESERVED )
> > -            panic("No more domain IDs available\n");
> > -
> >           if ( dt_property_read_u32(node, "capabilities", &val) )
> >           {
> >               if ( val & ~DOMAIN_CAPS_MASK )
> > @@ -1218,12 +1216,13 @@ void __init create_domUs(void)
> >           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 he=
re it's
> > -         * very important to use the pre-increment operator to call
> > -         * domain_create() with a domid > 0. (domid =3D=3D 0 is reserv=
ed for Dom0)
> > -         */
> > -        d =3D domain_create(++max_init_domid, &d_cfg, flags);
> > +        domid =3D domid_alloc(DOMID_INVALID);
> > +        if ( domid =3D=3D DOMID_INVALID )
> > +            panic("Error allocating ID for domain %s\n", dt_node_name(=
node));
> > +        if ( max_init_domid < domid )
> > +            max_init_domid =3D domid;
>=20
> While I think it is a good idea to have a single way to allocate domain
> IDs, I am a bit concerned of the change for dom0less domUs. By
> introducing domid_alloc(), it will now be easier to change the behavior
> of the domain ID allocation without realizing the impact for dom0less
> domUs (max_init_domid is mainly used to limit the loop when switching
> consoles).

max_init_domid is (originally) why I am touching this code, in the context =
of:
  https://lore.kernel.org/xen-devel/20250103-vuart-ns8250-v3-v1-0-c5d36b31d=
66c@ford.com/

>=20
> I think we need to document explicitely in domid_alloc() that some
> callers specifically rely on the existing allocation scheme. So we need
> to be careful when changing it.
>=20
> > +
> > +        d =3D domain_create(domid, &d_cfg, flags);
> >           if ( IS_ERR(d) )
> >               panic("Error creating domain %s (rc =3D %ld)\n",
> >                     dt_node_name(node), PTR_ERR(d));
> > diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
> > index 270a6b97e4..fe968dd66b 100644
> > --- a/xen/arch/arm/domain_build.c
> > +++ b/xen/arch/arm/domain_build.c
> > @@ -2371,6 +2371,7 @@ void __init create_dom0(void)
> >           .grant_opts =3D XEN_DOMCTL_GRANT_version(opt_gnttab_max_versi=
on),
> >       };
> >       unsigned int flags =3D CDF_privileged | CDF_hardware;
> > +    domid_t domid;
> >       int rc;
> >
> >       /* The vGIC for DOM0 is exactly emulating the hardware GIC */
> > @@ -2395,19 +2396,25 @@ void __init create_dom0(void)
> >       if ( !llc_coloring_enabled )
> >           flags |=3D CDF_directmap;
> >
> > -    dom0 =3D domain_create(0, &dom0_cfg, flags);
> > +    domid =3D domid_alloc(get_initial_domain_id());
>=20
> This is technically a change of behavior for Arm if the hardware_domid
> is not 0. I think we need to using 0 here. If you want to change the
> behavior, then this should be a separate patch=C2=A0with a proper explana=
tion.

I agree, it is better to isolate Arm hardware_domid-related change in a
separate patch; will do that.

My understanding that the code in create_dom0() should have been using
hardware_domid instead of open coded 0: get_initial_domain_id() returns the
value of hardware_domid on Arm, and then domid_alloc(DOMID_INVALID) in domU
case should ensure that ID of get_initial_domain_id() is skipped during the
domain ID search.

>=20
> > +    if ( domid =3D=3D  DOMID_INVALID )
> > +        panic("Error allocating domain ID %d\n", get_initial_domain_id=
());
> > +
> > +    dom0 =3D domain_create(domid, &dom0_cfg, flags);
> >       if ( IS_ERR(dom0) )
> > -        panic("Error creating domain 0 (rc =3D %ld)\n", PTR_ERR(dom0))=
;
> > +        panic("Error creating domain %d (rc =3D %ld)\n", domid, PTR_ER=
R(dom0));
> >
> >       if ( llc_coloring_enabled && (rc =3D dom0_set_llc_colors(dom0)) )
> > -        panic("Error initializing LLC coloring for domain 0 (rc =3D %d=
)\n", rc);
> > +        panic("Error initializing LLC coloring for domain %pd (rc =3D =
%d)\n",
> > +              dom0, rc);
> >
> >       if ( alloc_dom0_vcpu0(dom0) =3D=3D NULL )
> > -        panic("Error creating domain 0 vcpu0\n");
> > +        panic("Error creating domain %pdv0\n", dom0);
> >
> >       rc =3D construct_dom0(dom0);
> >       if ( rc )
> > -        panic("Could not set up DOM0 guest OS (rc =3D %d)\n", rc);
> > +        panic("Could not set up guest OS for domain %pd (rc =3D %d)\n"=
,
> > +              dom0, rc);
> >
> >       set_xs_domain(dom0);
> >   }
> > diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
> > index 24b36c1a59..e61c023085 100644
> > --- a/xen/arch/x86/setup.c
> > +++ b/xen/arch/x86/setup.c
> > @@ -1009,8 +1009,11 @@ static struct domain *__init create_dom0(struct =
boot_info *bi)
> >       if ( iommu_enabled )
> >           dom0_cfg.flags |=3D XEN_DOMCTL_CDF_iommu;
> >
> > -    /* Create initial domain.  Not d0 for pvshim. */
> > -    bd->domid =3D get_initial_domain_id();
> > +    /* Allocate initial domain ID. Not d0 for pvshim. */
> > +    bd->domid =3D domid_alloc(get_initial_domain_id());
> > +    if ( bd->domid =3D=3D DOMID_INVALID )
> > +        panic("Error allocating domain ID %d\n", get_initial_domain_id=
());
> > +
> >       d =3D domain_create(bd->domid, &dom0_cfg,
> >                         pv_shim ? 0 : CDF_privileged | CDF_hardware);
> >       if ( IS_ERR(d) )
> > @@ -1038,7 +1041,7 @@ static struct domain *__init create_dom0(struct b=
oot_info *bi)
> >
> >           if ( (strlen(acpi_param) =3D=3D 0) && acpi_disabled )
> >           {
> > -            printk("ACPI is disabled, notifying Domain 0 (acpi=3Doff)\=
n");
> > +            printk("ACPI is disabled, notifying domain %pd (acpi=3Doff=
)\n", d);
> >               safe_strcpy(acpi_param, "off");
> >           }
> >
> > @@ -1053,7 +1056,7 @@ static struct domain *__init create_dom0(struct b=
oot_info *bi)
> >
> >       bd->d =3D d;
> >       if ( construct_dom0(bd) !=3D 0 )
> > -        panic("Could not construct domain 0\n");
> > +        panic("Could not construct domain %pd\n", d);
> >
> >       return d;
> >   }
> > diff --git a/xen/common/domain.c b/xen/common/domain.c
> > index abf1969e60..7c0f7a4990 100644
> > --- a/xen/common/domain.c
> > +++ b/xen/common/domain.c
> > @@ -66,6 +66,57 @@ DEFINE_RCU_READ_LOCK(domlist_read_lock);
> >   static struct domain *domain_hash[DOMAIN_HASH_SIZE];
> >   struct domain *domain_list;
> >
> > +/* Domain ID allocator */
> > +static unsigned int domid_last;
> > +
> > +static inline bool is_free_domid(domid_t dom)
> > +{
> > +    struct domain *d =3D rcu_lock_domain_by_id(dom);
> > +
> > +    if ( d )
> > +        rcu_unlock_domain(d);
> > +
> > +    return !d;
> > +}
> > +
> > +/*
> > + * Allocate new domain ID based on the hint.
>=20
> Maybe clarify this should not be used for system domains?

Agree, this I forgot to add; thanks!

>=20
> > + *
> > + * If hint is outside of valid [0..DOMID_FIRST_RESERVED - 1] range of =
IDs,
> > + * perform an exhaustive search starting from the end of the used doma=
in ID
> > + * range, excluding hardware_domid.
> > + */
> > +domid_t domid_alloc(domid_t hint)
>=20
>  From the name, my naive expectation is a second call to domid_alloc()
> (whether concurrent or not) would return a different domid. However,
> AFAICT, this is not the case.

Yes, to guarantee domid_alloc() to return a different value, domid_alloc()
call should be followed by domain_create() call, since domid_alloc()
internally relies on the domain list. I missed that explanation.

>=20
> I am in two mind whether this is the right interface to have. I think
> the minimum would be to clarify the expectation from the callers.

I think that "domain ID check/allocation" can be a library function
shared across all architectures, there's no need to re-implement it:
it looks very unlikely new architectures will need to implement a new schem=
e.

There's another similar domain ID check implementation coming from the
hyperlaunch series, in a part of validating hyperlaunch DT; with having a
library function (my current implementation still needs adjustment),
hyperlaunch code can re-use it.

>=20
> > +{
> > +    domid_t domid =3D DOMID_INVALID;
> > +
> > +    if ( hint < DOMID_FIRST_RESERVED )
> > +    {
> > +        /* Exact match. */
> > +        if ( is_free_domid(hint) )
> > +            domid =3D hint;
> > +    }
> > +    else
> > +    {
> > +        for ( domid =3D domid_last + 1; domid !=3D domid_last; domid++=
 )
> > +        {
> > +            if ( domid =3D=3D DOMID_FIRST_RESERVED )
> > +                domid =3D 0;
> > +
> > +            if ( domid =3D=3D hardware_domid )
> > +                continue;
> > +
> > +            if ( is_free_domid(domid) )
> > +                break;
> > +        }
> > +
> > +        if ( domid !=3D domid_last )
> > +            domid_last =3D domid;
> > +    }
> > +
> > +    return 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/common/domctl.c b/xen/common/domctl.c
> > index bfe2e1f9f0..2e02139660 100644
> > --- a/xen/common/domctl.c
> > +++ b/xen/common/domctl.c
> > @@ -49,20 +49,6 @@ static int xenctl_bitmap_to_nodemask(nodemask_t *nod=
emask,
> >                                      MAX_NUMNODES);
> >   }
> >
> > -static inline int is_free_domid(domid_t dom)
> > -{
> > -    struct domain *d;
> > -
> > -    if ( dom >=3D DOMID_FIRST_RESERVED )
> > -        return 0;
> > -
> > -    if ( (d =3D rcu_lock_domain_by_id(dom)) =3D=3D NULL )
> > -        return 1;
> > -
> > -    rcu_unlock_domain(d);
> > -    return 0;
> > -}
> > -
> >   void getdomaininfo(struct domain *d, struct xen_domctl_getdomaininfo =
*info)
> >   {
> >       struct vcpu *v;
> > @@ -421,34 +407,15 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xen_domctl_=
t) u_domctl)
> >
> >       case XEN_DOMCTL_createdomain:
> >       {
> > -        domid_t        dom;
> > -        static domid_t rover =3D 0;
> > +        domid_t domid =3D domid_alloc(op->domain);
> >
> > -        dom =3D op->domain;
> > -        if ( (dom > 0) && (dom < DOMID_FIRST_RESERVED) )
> > +        if ( domid =3D=3D DOMID_INVALID )
> >           {
> >               ret =3D -EEXIST;
> > -            if ( !is_free_domid(dom) )
> > -                break;
> > -        }
> > -        else
> > -        {
> > -            for ( dom =3D rover + 1; dom !=3D rover; dom++ )
> > -            {
> > -                if ( dom =3D=3D DOMID_FIRST_RESERVED )
> > -                    dom =3D 1;
> > -                if ( is_free_domid(dom) )
> > -                    break;
> > -            }
> > -
> > -            ret =3D -ENOMEM;
> > -            if ( dom =3D=3D rover )
> > -                break;
> > -
> > -            rover =3D dom;
> > +            break;
> >           }
> >
> > -        d =3D domain_create(dom, &op->u.createdomain, false);
> > +        d =3D domain_create(domid, &op->u.createdomain, false);
> >           if ( IS_ERR(d) )
> >           {
> >               ret =3D PTR_ERR(d);
> > diff --git a/xen/include/xen/domain.h b/xen/include/xen/domain.h
> > index e10baf2615..43e9411fc0 100644
> > --- a/xen/include/xen/domain.h
> > +++ b/xen/include/xen/domain.h
> > @@ -38,6 +38,8 @@ void arch_get_domain_info(const struct domain *d,
> >
> >   domid_t get_initial_domain_id(void);
> >
> > +domid_t domid_alloc(domid_t hint);
> > +
> >   /* CDF_* constant. Internal flags for domain creation. */
> >   /* Is this a privileged domain? */
> >   #define CDF_privileged           (1U << 0)
>=20
> Cheers,
>=20
> --
> Julien Grall
>=20



From xen-devel-bounces@lists.xenproject.org Thu Apr 24 05:12:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Apr 2025 05:12:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.965783.1356201 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7osP-00025I-9x; Thu, 24 Apr 2025 05:11:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 965783.1356201; Thu, 24 Apr 2025 05:11: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 1u7osP-00025B-7N; Thu, 24 Apr 2025 05:11:57 +0000
Received: by outflank-mailman (input) for mailman id 965783;
 Thu, 24 Apr 2025 05:11: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=9zow=XK=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u7osM-000255-9I
 for xen-devel@lists.xenproject.org; Thu, 24 Apr 2025 05:11:55 +0000
Received: from mail-10630.protonmail.ch (mail-10630.protonmail.ch
 [79.135.106.30]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9faf1985-20ca-11f0-9ffb-bf95429c2676;
 Thu, 24 Apr 2025 07:11:48 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9faf1985-20ca-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1745471506; x=1745730706;
	bh=rWWtHvNVY1LG4DRwU/05iAowOTcIQPz03VIwuRFxkV0=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=lEtPpZkcCwWzi7ADFCPSsJjgJlXl2QWyQa9K6bj5nJCNU8Lu/p2VKSXKEuch6oZrA
	 6btInHKRncIYYRruwvB79nDqhmGcH/+xuI8TsQ8DBJXSfwvKQYXT1wVQMouMF3JIcg
	 vTM4zLjyldTupY6i038J8YM3zEOWFpe/pjpagK6Oj3K6f+bDySeOWT4E3HxRVnliXL
	 0NcHP/LfHXTIexXENGOCfZmCdRgyhmNAdZ4+9XXmyeDJeXl3xL4nEkAKsxMcUWW+Re
	 sJ0mEpvvQF8E68mqUkSSmebBHTzo4fyCvpiJVlAZtVsQZs0KSVRqx6to/BwnzHqKV4
	 b+Ubs880gsaCw==
Date: Thu, 24 Apr 2025 05:11:40 +0000
To: Jan Beulich <jbeulich@suse.com>
From: dmkhn@proton.me
Cc: Alejandro Vallejo <agarciav@amd.com>, xen-devel@lists.xenproject.org, "Daniel P. Smith" <dpsmith@apertussolutions.com>, Andrew Cooper <andrew.cooper3@citrix.com>, =?utf-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, Bertrand Marquis <bertrand.marquis@arm.com>, Jason Andryuk <jason.andryuk@amd.com>
Subject: Re: [PATCH v4 07/13] x86/hyperlaunch: obtain cmdline from device tree
Message-ID: <aAnICErJs5m0StLh@starscream>
In-Reply-To: <4813aeb3-72c6-4705-8591-1af63ec05ae8@suse.com>
References: <20250417124844.11143-1-agarciav@amd.com> <20250417124844.11143-8-agarciav@amd.com> <aALX/NgsSi5sTyz3@kraken> <D9E1DIGCGP1O.QQ1KK0P3NX0K@amd.com> <4813aeb3-72c6-4705-8591-1af63ec05ae8@suse.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 662deea00ef6b1c44f744e7c8238a5e4f712a082
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Wed, Apr 23, 2025 at 03:08:18PM +0200, Jan Beulich wrote:
> On 23.04.2025 15:01, Alejandro Vallejo wrote:
> > On Fri Apr 18, 2025 at 11:53 PM BST, dmkhn wrote:
> >> On Thu, Apr 17, 2025 at 01:48:29PM +0100, Alejandro Vallejo wrote:
> >>> --- a/xen/common/domain-builder/fdt.h
> >>> +++ b/xen/common/domain-builder/fdt.h
> >>> @@ -9,6 +9,30 @@ struct boot_info;
> >>>  /* hyperlaunch fdt is required to be module 0 */
> >>>  #define HYPERLAUNCH_MODULE_IDX 0
> >>>
> >>> +static inline int __init fdt_cmdline_prop_size(const void *fdt, int =
offset)
> >>> +{
> >>> +    int ret;
> >>> +
> >>> +    fdt_get_property_by_offset(fdt, offset, &ret);
> >>
> >> Perhaps something like
> >>
> >>        (void)fdt_get_property_by_offset...
> >>
> >> since there's no need to check the return value?
> >
> > I vaguely seem to remember doing something like that a few years ago
> > (because it does show intent and many linters require it) and being tol=
d
> > not to. But maybe I misremember. I'm definitely happy to use that
> > convention here and later unless someone pushes back for some reason.
>=20
> Unless we settle on the need for such for Misra's sake, I'd like to ask
> to avoid them. We generally try to avoid casts as much as possible. We
> then also shouldn't add ones like suggested here.

Ack.

>=20
> Jan



From xen-devel-bounces@lists.xenproject.org Thu Apr 24 05:48:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Apr 2025 05:48:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.965799.1356213 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7pRJ-0006Nu-Ta; Thu, 24 Apr 2025 05:48:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 965799.1356213; Thu, 24 Apr 2025 05:48: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 1u7pRJ-0006Nn-On; Thu, 24 Apr 2025 05:48:01 +0000
Received: by outflank-mailman (input) for mailman id 965799;
 Thu, 24 Apr 2025 05:47: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=IaUl=XK=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u7pRH-0006NZ-JO
 for xen-devel@lists.xenproject.org; Thu, 24 Apr 2025 05:47:59 +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 aa9cd4b8-20cf-11f0-9ffb-bf95429c2676;
 Thu, 24 Apr 2025 07:47:54 +0200 (CEST)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-4394a0c65fcso5470265e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 23 Apr 2025 22:47:54 -0700 (PDT)
Received: from ?IPV6:2003:ca:b734:b408:9d23:e5d:de25:e110?
 (p200300cab734b4089d230e5dde25e110.dip0.t-ipconnect.de.
 [2003:ca:b734:b408:9d23:e5d:de25:e110])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4409d2a2e43sm6397755e9.10.2025.04.23.22.47.52
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 23 Apr 2025 22:47:53 -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: aa9cd4b8-20cf-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745473674; x=1746078474; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=MWw0jIbaX++oyedOfJGt/DHHL+/zPCP8Pz46b3GcsO0=;
        b=CkD0hB3JDXmjccTe8Hhcqp7h+R7xmqcunL5Ks03Eyc1IDy9/28iR5lUkm5bHPQOo//
         5howIKVl6YuiQAJMuRrHU+BUBJEaaGoF0SwYVOZ2gFjYPFfjFScXZeeccH+3fZ2W9xSu
         mK10xbusxsLPwWMWe24nE++p5pwoz6Cw7W8PS7w5tbk4hYQKCU0NCFlBXecC8MnsI7aV
         o7r/vVkh+wcN/jXtFPcz3OjnFonwHjsrZvVwKyW9XqEhT1qJw1dK+gKuLQvQ2HEHHUTX
         jE67Sc5iNu8zpj9D12S+dMZGGCJjjeNoDQnNgNjTz00Gj9MiaU5+xuVZfSL0DGieqYsw
         WMng==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745473674; x=1746078474;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=MWw0jIbaX++oyedOfJGt/DHHL+/zPCP8Pz46b3GcsO0=;
        b=mii64J7QiMZpixTuNRr2Bhzv7yUvhGUtMRZRRLgnrZ2/x1cE2qGxhIKSShzltqUxrt
         I2x3dadr3ODxyocFGg9UjDUEBkAvCXNjZhq5yohgcJIz1ugEue0XjrYzb38tQCOeimez
         tJSn7Qda90taxzS+P+J6EzWKdmhT3/wV35ugLzRsbuj3voFYhJsAHZJjiIK5CSdjrw8V
         3zjgCMQro2RpDxkNd0zsBFvBQkY6NJxADxxCupud03yXm1mAcHw/UJsBzhwibs2DrlqY
         8Ntud5O4f4tToEEwaG4rU8X0WR+OrPzaWVUMjyp4UA9CgDjMqBYNHSuGo/7mcYRV8T/a
         Fbag==
X-Forwarded-Encrypted: i=1; AJvYcCXzFStH2cOM1ronIrgnFHUJiksMFF/VKsKNe5oNJmF6I04LUoxPe1QsFcz2eArXji3+7/GA57XUyGI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwnCIMiEQjTpn/M5zBVkLDtdWGcOT5oDzeegwID06X2e9up/MgD
	/07Bhtb31VmtQURv5aT7YKhcoCygjMGWYXIc+8DHcuazoWNf+ek6Nd/tm5JmUg==
X-Gm-Gg: ASbGnctwGzDWjklHOJgEGVtOWotoHx1Whov+otid44nM96b0i160D1O+8yEaRbPxSrx
	79K83B3jaGoa12LJvrAaeWwEjGt401uK8k3ExMVJcN0M980BF6ji0CxI4QwipSVu447NjZy/CEo
	lxtMrW6vFqfhA/bw55E6oDVHVKWhneGzlcETGnbNaNJ3jfU/w4Hh6UkSSsTB0Q0MnfrS6E7Ncll
	AseM7N8aZPyWyIBrkddASa1xxShrB0LAhVOh3qKkK6SnKUXyZzLeGxRUMAY7lNXdPfABVbAGRAd
	siCrA34tWHYmNoHC8M874V4nIAIzhFfwFMBTRyEzXcf2MRXjIZzyBjNdvlwxgVhrZYmYWgvdC0C
	ofqro9vHN4tUT0PoICle2mT5IyiGNFr4vuv14flXHa36vtNKrSVvXmd8J9XwO7UZm0VEbLPCs
X-Google-Smtp-Source: AGHT+IH+Bx0WGCxVe9Iu9eoc6DrCj7Mw2uEwY68zMOaNCowO4J/N7qhNb7qWtJL9j0VdgOWGMrRXjQ==
X-Received: by 2002:a05:600c:4e0a:b0:43c:fffc:7855 with SMTP id 5b1f17b1804b1-4409bd20a55mr10741525e9.15.1745473673571;
        Wed, 23 Apr 2025 22:47:53 -0700 (PDT)
Message-ID: <6c9c731d-2697-46c7-9ac6-4eb68d59d0ad@suse.com>
Date: Thu, 24 Apr 2025 07:47:50 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/3] misra: add deviation for rules 21.1 and 21.2
To: Stefano Stabellini <sstabellini@kernel.org>,
 Nicola Vetrini <nicola.vetrini@bugseng.com>
Cc: victorm.lira@amd.com, Federico Serafini <federico.serafini@bugseng.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <790f9cae9a75b9f29554943c08abb6537647644e.1745364478.git.victorm.lira@amd.com>
 <20989ef0-a906-4ad2-818b-e52dd49b868d@suse.com>
 <alpine.DEB.2.22.394.2504231337240.785180@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.2504231337240.785180@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 23.04.2025 22:37, Stefano Stabellini wrote:
> On Wed, 23 Apr 2025, Jan Beulich wrote:
>> On 23.04.2025 01:43, victorm.lira@amd.com wrote:
>>> From: Nicola Vetrini <nicola.vetrini@bugseng.com>
>>>
>>> MISRA C Rules 21.1 ("#define and #undef shall not be used on a
>>> reserved identifier or reserved macro name") and R21.2 ("A reserved
>>> identifier or reserved macro name shall not be declared") violations
>>> are not problematic for Xen, as it does not use the C or POSIX
>>> libraries.
>>
>> In the course of all the Misra discussions it was pointed out more than
>> once that it's not just the titles which matter, but also the
>> "Amplification" text. While the latter two of the three bullet points
>> applying to both rules clearly are library-centric, the first one isn't.
>> In that light it's entirely unclear to me how ...
>>
>>> Xen uses -fno-builtin and -nostdinc to ensure this, but there are still
>>> __builtin_* functions from the compiler that are available so
>>> a deviation is formulated for all identifiers not starting with
>>> "__builtin_".
>>>
>>> The missing text of a deviation for Rule 21.2 is added to
>>> docs/misra/deviations.rst.
>>>
>>> To avoid regressions, tag both rules as clean and add them to the
>>> monitored set.
>>
>> ... our code base could be anywhere near clean towards these two rules.
> 
> 
> Given the section these two rules belong to "Standard libraries" and
> given the rest of the rule description, it is clear to me that the
> conflicts and undefined behaviors the two rules are trying to prevent
> are conflicts with C or POSIX libraries. Nicola is the original author
> of the patch and he has more experience with MISRA and I would trust
> his interpretation.

Then is there _another_ rule dealing with the remaining reserved
identifier space?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Apr 24 06:10:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Apr 2025 06:10:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.965813.1356222 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7pnE-0002GL-JJ; Thu, 24 Apr 2025 06:10:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 965813.1356222; Thu, 24 Apr 2025 06:10:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7pnE-0002GE-Gb; Thu, 24 Apr 2025 06:10:40 +0000
Received: by outflank-mailman (input) for mailman id 965813;
 Thu, 24 Apr 2025 06:10: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=IaUl=XK=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u7pnD-0002G8-Es
 for xen-devel@lists.xenproject.org; Thu, 24 Apr 2025 06:10:39 +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 d72d0822-20d2-11f0-9eb1-5ba50f476ded;
 Thu, 24 Apr 2025 08:10:37 +0200 (CEST)
Received: by mail-wr1-x42a.google.com with SMTP id
 ffacd0b85a97d-39ee623fe64so533250f8f.1
 for <xen-devel@lists.xenproject.org>; Wed, 23 Apr 2025 23:10:37 -0700 (PDT)
Received: from ?IPV6:2003:ca:b734:b408:9d23:e5d:de25:e110?
 (p200300cab734b4089d230e5dde25e110.dip0.t-ipconnect.de.
 [2003:ca:b734:b408:9d23:e5d:de25:e110])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3a06d54c105sm909209f8f.89.2025.04.23.23.10.36
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 23 Apr 2025 23:10:36 -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: d72d0822-20d2-11f0-9eb1-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745475037; x=1746079837; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=eYzr4SI5PhZvTE6U2jT9PLNZHTiN0PWbevjfMFhOlgA=;
        b=LUbKbbwpU837XWuzDt22JZzoS9wG20bSGsIiCbp/taHDstxs3QKttmTqVk6Df5FFY8
         5HDJjHsla3lPWc8WLY79KpcbfQfA52Nd2EviYk3ZVQyrMgKewIBz9ConQMTtr8Y9YQgx
         PBzl3DO93OJIJh0if8MGE9jy2mS/KhFhqNJyLLxAfPk9i2QFU4I/nlFNcM/TD1oIhNZb
         0l2pSXWglDtz842Dn8qDcglb+K0QSVYTt8kmFNzDHAC8K9EsMl+/noqvImkoYdCmouEO
         RB8O3OgxpF7WCjNp08XGnbjd4Bdp+i7/OzZGM6NvzllI9lNGi1QoTjdRdMZVO53OWxo+
         2zLg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745475037; x=1746079837;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=eYzr4SI5PhZvTE6U2jT9PLNZHTiN0PWbevjfMFhOlgA=;
        b=mCdFG/j1MdWKqHVh/hiBfY14QNeBeOy6S+S+8kjNHOKtaSEBD+MK8MUCoGgMIs88OD
         VXxhI/zaXM/H38mRq4w2Euz9eLJ69WfsmsWqkatxrDDqi+HALk81y6rxnq+RNmt1jeT6
         Hdoa0jVyvMQYwI5Ml3z4BRb2cFs4C+SmWMFW2l/te/rdGokFK+oaI3hyjnUdHqvf98qJ
         oUjicGfU4i6S/YdY18RbHmiX2eoTpEBvPq0IBEVm0D6hPxbI0QspZH4cnNuiO0Oi52nc
         QPM34O50ejiO2kauyoyWqtLYGHVLqhtO7TC4kPCSBzjVb1ALrMq2KFaj31aQkHXjWSye
         4c6w==
X-Gm-Message-State: AOJu0Yw8EmYgumm815g/0uvHGe/f6vTzXxPN0EIsyMguk/AKziMRr1U6
	UWXJlSo90vojqRf17Aq2oI/pIjq6zr44mVDW12+QQf1ADK1VF8slm81Zn9QUxA==
X-Gm-Gg: ASbGnct8W4Ch+zYT8FDkPPjzh9zpjLcuDjU9ilRIJnxOGVpcLTlfqokBI9SFtUAk+gC
	tqAUBWFYaQrg7oUfKq7Pwsobl4WGx0xdfDANL/vXPLviaktlFwm3m04BCSDQEnzblIvl6OVzVqR
	5B+pQhQBsetGzRiLo8h7NsvW1X05qX+PInDUlONFpUBP3n0fvhp8GGOb/eZebTKSIb71v3XcUVu
	6Gqn3AqgntivMIIgZ+5NrKji4ytsZQ/Eqd5KxgZZgj9vR5f8RjUclG2g543ts2YfSkc8rbELLEN
	e3+RXoOjD8W+NFDEa9grlTpQ43lJM2Q3P5dQ68/PpVzspXAnIpu2vZoZttzAR1TATCrTBvA6fdh
	nfpEs1O/abQYHn1CM2/N/nXBElD1O8yWCTdm/UcaVN8oEP0vFJxP5kN1l2/ifmAbfTwsVjKmg
X-Google-Smtp-Source: AGHT+IEBqsTtw6lGozmGXu9bJmJjgSJJ71lQidPPBXbynYhRTCNxD7LnZanu5RHuQmtrQYexi/wIHQ==
X-Received: by 2002:a05:6000:40cd:b0:390:f9a5:bd79 with SMTP id ffacd0b85a97d-3a06cf5f3a2mr835540f8f.26.1745475036858;
        Wed, 23 Apr 2025 23:10:36 -0700 (PDT)
Message-ID: <c3531783-9d9f-4152-84a1-a87fddce4342@suse.com>
Date: Thu, 24 Apr 2025 08:10:34 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1] misra: add deviation of Rule 5.5
To: Stefano Stabellini <sstabellini@kernel.org>,
 "Lira, Victor M" <VictorM.Lira@amd.com>
Cc: xen-devel@lists.xenproject.org,
 Federico Serafini <federico.serafini@bugseng.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Nicola Vetrini <nicola.vetrini@bugseng.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>
References: <9e1210f2a9c794d68dcc6b897239b228b141296a.1745427770.git.victorm.lira@amd.com>
 <48c7830931a98b2bf70ef1509f309b262b9e5792.1745427770.git.victorm.lira@amd.com>
 <d81178fe-82b8-434e-8610-e0ec71df6a28@amd.com>
 <alpine.DEB.2.22.394.2504231338140.785180@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.2504231338140.785180@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 23.04.2025 22:41, Stefano Stabellini wrote:
> On Wed, 23 Apr 2025, Lira, Victor M wrote:
>> Continuing a discussion from before:
>>
>> On 4/22/2025 11:44 PM, Jan Beulich wrote:
>>> Caution: This message originated from an External Source. Use proper caution
>>> when opening attachments, clicking links, or responding.
>>>
>>>
>>> On 23.04.2025 01:43, victorm.lira@amd.com wrote:
>>>>          memmove.
>>>>        - Tagged as `deliberate` for ECLAIR.
>>>>
>>>> +   * - R5.5
>>>> +     - Clashes between function-like macros and function names are
>>>> +       deliberate
>>> They may or may not be deliberate, depending on context. I don't think it's
>>> a
>>> good move to deviate this more widely than necessary. If I get the
>>> expression
>>> above (in deviations.ecl) right, even
>>>
>>> void func1(int);
>>> void func2(int);
>>>
>>> #define func1() func2(0)
>>> #define func2() func1(0)
>>>
>>> would be deviated, which I don't think we want. Especially when, in a less
>>> contrived scenario, the clash may not easily be visible.
>>
>> OK, I see the issue for different functions. Does it make sense to say it's
>> deliberate when it's the same identifier?
>>
>> 	void func1(int);
>> 	...
>> 	#define func1() func1(0)
>>
>> Could this be deviated?
> 
> I think it makes sense to be clear in deviations.rst and the doc text in
> deviations.ecl that we are referring to the same identifier. That we can
> do.
> 
> I am not sure it is possible to change the ecl rule accordingly to
> narrow the check relaxation. If not possible, I'd keep it as it is in
> this patch.

Isn't it a matter of producing a suitable regex? If not, I don't think we
should put in too broad an Eclair rule, but then rather resort to e.g.
SAF comments.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Apr 24 06:15:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Apr 2025 06:15:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.965824.1356232 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7ps6-00037g-49; Thu, 24 Apr 2025 06:15:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 965824.1356232; Thu, 24 Apr 2025 06:15: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 1u7ps6-00037Z-1M; Thu, 24 Apr 2025 06:15:42 +0000
Received: by outflank-mailman (input) for mailman id 965824;
 Thu, 24 Apr 2025 06:15: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=IaUl=XK=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u7ps4-00037T-Kz
 for xen-devel@lists.xenproject.org; Thu, 24 Apr 2025 06:15:40 +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 8b512674-20d3-11f0-9eb1-5ba50f476ded;
 Thu, 24 Apr 2025 08:15:39 +0200 (CEST)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-39ee623fe64so537619f8f.1
 for <xen-devel@lists.xenproject.org>; Wed, 23 Apr 2025 23:15:39 -0700 (PDT)
Received: from ?IPV6:2003:ca:b734:b408:9d23:e5d:de25:e110?
 (p200300cab734b4089d230e5dde25e110.dip0.t-ipconnect.de.
 [2003:ca:b734:b408:9d23:e5d:de25:e110])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3a06d4bc3d8sm951458f8f.33.2025.04.23.23.15.38
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 23 Apr 2025 23:15:38 -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: 8b512674-20d3-11f0-9eb1-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745475339; x=1746080139; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=sjT5q7bqjg7O0S4bE1vBzcQDjh6CoLXS329p8JLs2iM=;
        b=VGawodNIlg0vbhQ5aI94P8zE6TZ3nc/GbDPX0GdW/fC/XlEfzJDl/CJOxBJUS393Th
         B6zZ8GmMG/LE6o5ytGHOHsNCNiYK2etJbgv0nxrgntq8SkNjOitAkywSA1dNorR0ZFAC
         tPv+zguNK5N/5waUVVg0kGaVQiaaLuGx+9wIBO0r3MQjtMaxj0PhUWprSKcUQaOB+Urr
         bRVoIVmz0UfOGX+Ou6R1crge7f9rYuXqzBckRjR9FJvVObeCcSfj5FqxjM0ALEM05bKp
         Vb9H9AYbTMPJxD/g7+/jUFhFsobyC0GYUrPnxCFeyQQ3UXuTWCDCKhuifCF9icGnY06s
         8bog==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745475339; x=1746080139;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=sjT5q7bqjg7O0S4bE1vBzcQDjh6CoLXS329p8JLs2iM=;
        b=GTyEw1ig7JiBRMJJPR66ObWqzwP3CIBIckMp2zSyqroASxELeblPAKwt6365xhOWGN
         6vOOrpahf4kjPRF9hKOn7kcrBIX8DkZe+f6ElEGBusu4F9HwKiemGlORqJEDdabuu9p5
         SaS5i2HOVd5cHuQpo5PB69VeJmw9d8tWAa1ldNQF2Y2iH1cdNjOPa6421sJ8E0F8jC0m
         74LAhTnUsLKZdLTE8+CxRiIfDT7AKZKSbYPe7KkJLmAPdWEL6kBujeklEQcX1yoOE5sJ
         gd7LfKh2JDuZFE26lG5Un5Qp9xREdUMtp83ebnDBxO5TuVliaYAEYMeYubdDiKbWMCLO
         EM+A==
X-Forwarded-Encrypted: i=1; AJvYcCUi1T70IU/XEGcTS9sLvPUGMBcwfaoZEzatHF26UmdClZR7rz4UgS0ZkEOhOx2sdS+MmOXONPFU7NY=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw9t2dUsUR9Pxls2Ov5J7CsucVCa0TuQ8uEtLDUChBEEFr4xNbv
	cdobOmDaRvdQtgPcIMUWezjWdkffk1sMMNC0AKjz1XX5FqdLB6+bsUHivC3RiQ==
X-Gm-Gg: ASbGncus9GkK9Spejv4nM2jw78UJNJk0T5Vn6jAiEkpO/QwhP5OutMjA1+piPzQguaF
	qBcv1HnckyynEXU7QLNUzd4HLQIJixW3/omNbaLWnii/B+QvT+pU/mWdWb5LyRR3ZugsmjGIkwS
	fooX1caESVF2ZQihIuXhRFStyjIBcXWoHfPsaQBjOvMtmWeT5kIjM5iCXVTPag7mNmob1qAcU7v
	lafwLxl9j4WqGsjkUtj34dMiqmYMoltSuuCAND6xRHGtmLUE1hCIGNB5jHgAqOWfYKUo9L18Vuu
	gra4QQ/GxNsAGNe+yrCl5iKG+ZdonNjsMMRVbLq4HzGGR39VyPZ3lPqE+jCC/KkqsK11ULULp5D
	n9RnkMYw8mj551g5RNj+KLNVZ5P2puuJzTQVQ2RD9hOgk8kiDa5NWRasny6TQs9/glTSNMsRN
X-Google-Smtp-Source: AGHT+IGGi23COGmh58KBbvsDxIH1pgPmCb5zDstbfufb7xC1K1UMabgbpLXVnDty9087DoTrS2Plcw==
X-Received: by 2002:a05:6000:4201:b0:39c:268b:8b66 with SMTP id ffacd0b85a97d-3a06cfa5a70mr782081f8f.43.1745475339096;
        Wed, 23 Apr 2025 23:15:39 -0700 (PDT)
Message-ID: <f5d35582-9270-4816-84c2-f078afeee711@suse.com>
Date: Thu, 24 Apr 2025 08:15:36 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1] misra: add deviation for rules 21.1 and 21.2
To: victorm.lira@amd.com, Nicola Vetrini <nicola.vetrini@bugseng.com>,
 Federico Serafini <federico.serafini@bugseng.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>, xen-devel@lists.xenproject.org
References: <9e1210f2a9c794d68dcc6b897239b228b141296a.1745427770.git.victorm.lira@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: <9e1210f2a9c794d68dcc6b897239b228b141296a.1745427770.git.victorm.lira@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 23.04.2025 19:54, victorm.lira@amd.com wrote:
> From: Nicola Vetrini <nicola.vetrini@bugseng.com>
> 
> MISRA C Rules 21.1 ("#define and #undef shall not be used on a
> reserved identifier or reserved macro name") and R21.2 ("A reserved
> identifier or reserved macro name shall not be declared") violations
> are not problematic for Xen, as it does not use the C or POSIX
> libraries.
> 
> Xen uses -fno-builtin and -nostdinc to ensure this, but there are still
> __builtin_* functions from the compiler that are available so
> a deviation is formulated for all identifiers not starting with
> "__builtin_".
> 
> The missing text of a deviation for Rule 21.2 is added to
> docs/misra/deviations.rst.
> 
> To avoid regressions, tag both rules as clean and add them to the
> monitored set.
> 
> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
> Signed-off-by: Victor Lira <victorm.lira@amd.com>

While the rule is in the library section, ...

> --- a/docs/misra/deviations.rst
> +++ b/docs/misra/deviations.rst
> @@ -587,7 +587,31 @@ Deviations related to MISRA C:2012 Rules:
>         construct is deviated only in Translation Units that present a violation
>         of the Rule due to uses of this macro.
>       - Tagged as `deliberate` for ECLAIR.
> -
> +
> +   * - R21.1
> +     - Rule 21.1 reports identifiers reserved for the C and POSIX standard
> +       libraries. Xen does not use such libraries and all translation units
> +       are compiled with option '-nostdinc', therefore there is no reason to
> +       avoid to use `#define` or `#undef` on such identifiers except for those
> +       beginning with `__builtin_` for which compilers may perform (wrong)
> +       optimizations.
> +     - Tagged as `safe` for ECLAIR.

... I'd like to ask that it be explicitly clarified here that it's solely
the library (and not e.g. the compiler itself) that are of concern here.
If so, I expect there's another rule dealing with the remaining concerns.
Then, however, I consider the rule wording insufficient (as leaving an
ambiguity).

Jan


From xen-devel-bounces@lists.xenproject.org Thu Apr 24 06:18:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Apr 2025 06:18:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.965835.1356241 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7pvE-0003hc-IF; Thu, 24 Apr 2025 06:18:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 965835.1356241; Thu, 24 Apr 2025 06:18: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 1u7pvE-0003hV-Fg; Thu, 24 Apr 2025 06:18:56 +0000
Received: by outflank-mailman (input) for mailman id 965835;
 Thu, 24 Apr 2025 06:18: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=IaUl=XK=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u7pvD-0003hP-PB
 for xen-devel@lists.xenproject.org; Thu, 24 Apr 2025 06:18:55 +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 ff809a97-20d3-11f0-9eb1-5ba50f476ded;
 Thu, 24 Apr 2025 08:18:54 +0200 (CEST)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-39ac9aea656so731438f8f.3
 for <xen-devel@lists.xenproject.org>; Wed, 23 Apr 2025 23:18:54 -0700 (PDT)
Received: from ?IPV6:2003:ca:b734:b408:9d23:e5d:de25:e110?
 (p200300cab734b4089d230e5dde25e110.dip0.t-ipconnect.de.
 [2003:ca:b734:b408:9d23:e5d:de25:e110])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4409d2a35f0sm7164515e9.15.2025.04.23.23.18.53
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 23 Apr 2025 23:18:53 -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: ff809a97-20d3-11f0-9eb1-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745475534; x=1746080334; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=0xpX0cMUyLAPCpNvd9WcehRSs8l4r8ukiuxwyPaApb0=;
        b=IcJF+13b0rNBswOvUUVKbLzZV3cj8v76N380w20kN7d/JZ378sX01kh3eRPHVbOkwb
         4+BqUmw3laMa5g2Z5VGjtvgn1wUluUtaXrcZEV3e9wQoIwPFMo3+kv+kOfrQ6EQxzfTQ
         atVpTpI6aCzCIDVKzaT1e9cc4IjbrrGX7W9qI4lctizkpU+SV3H7sTzC3AlpI18tb59l
         gk1ziNTBqNG5K+PwfVpNYyjwt/uf3JCgdOdu8aLWNGd7Kf2oMJYdYRa1sZkb0OsAUNPM
         L9lSTBok4A3XvuGKYIabG9k9ZOhANjyAnESkGgFGQpFbfsrGUZ79j5ci22NZ+XvSFUg6
         +trA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745475534; x=1746080334;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=0xpX0cMUyLAPCpNvd9WcehRSs8l4r8ukiuxwyPaApb0=;
        b=lVTiu8rLo3ezIXK18EtLIFlhSzT4d+tNNtEPZVDZM0+fYqnO+gWkVK80JWmYMvbTYA
         Y1mJgusRyZeJRlra6qX5ROCloUUdnJrHW6K/qUfjkf1qUuCJPGmv/hsoCG0fHlxRF/n/
         /ajEgI1Is1w5IEFEdjlhNPZERwPxCSvON7PPtC4+LtC42k9i+QRecorxM1Ii1pR3ApH9
         Nih9cibEywd7CjuT5kVm5ODBa/KygcVJxtuz+ghLYITW6emqdIx1ynUAejenJUfQQlSA
         m+Ukw4Rkw0OZvVgdEp3BrGUP5o1bcBvhW7TMJZwahHa7Z8mRAw3cOCV8mYJSpzdFnSWb
         GdQA==
X-Forwarded-Encrypted: i=1; AJvYcCWBJLi3aWJ8Cea8Ka1TAh964WaTfY1Ueu38/xFu/dJwUSpGIZh71O0nbb8qtcRnwRsuxRy15+MJHag=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw36J23bwwMK1C21FpIEMGXRbC9r7JD1plh+wM6WbrakWxNDggq
	sVqIDoCx+TeJcO5YWD3ISniLvsa7txwHODm4O7aRE4Le5rMzXn9xjFTA0Y3Nvw==
X-Gm-Gg: ASbGncvPzEm/tKujAL+LywIebyrfMbGEwVOPGJu83K8LB5GnaQzpPe1kggKx9Vfxujg
	Qi6UJZ4qNAGLN1Tqs46gl9ye+QNeqbJnVykywyTemt3pYe9PhrkhdDhQ0NYuL08oVTh+qGWfXrB
	l5AEuq9DhbbQjugpyi/boM8CsTJcOQiNv33HUlaMLxTlWhYOLu/wQekKg37hTsRaYy+5FOQGD39
	m8qsvoPfGSWlwS0v4ZXQNweTQzUXezgUgyknKkZzaqknHM9Y+hxDyAyUGveG1iB+olsual9vZ8o
	IX4VZQkKbOKcwT4Shq8cjqqz+ErCAu8PsaBsDHlMXjjhVjjFg2DXmWVcHxSM4Em4RdOENQN86kE
	0Y3tCgWQkt/UGkpUUvaGWz1cueb/b3lUqPcaU3kewPGSB+ez47o5SKG1oSOjecjFgKwFIJnYhHx
	+4HDh644I=
X-Google-Smtp-Source: AGHT+IGIP4sCkBDkzCvn7skUkrHV0kNsI7HIFkRx6Iph43dmLCbwWv5DjMV/+rhZm8UpxDRjJ7oFdA==
X-Received: by 2002:a05:6000:1ac9:b0:39c:268e:ae04 with SMTP id ffacd0b85a97d-3a06cecb311mr797596f8f.0.1745475534151;
        Wed, 23 Apr 2025 23:18:54 -0700 (PDT)
Message-ID: <fc4bb04a-8d6d-4744-9be3-399aea5081e2@suse.com>
Date: Thu, 24 Apr 2025 08:18:51 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/vpci: Fix msix existing mapping printk
To: Jason Andryuk <jason.andryuk@amd.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <20250423212229.32721-1-jason.andryuk@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20250423212229.32721-1-jason.andryuk@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 23.04.2025 23:22, Jason Andryuk wrote:
> --- a/xen/drivers/vpci/msix.c
> +++ b/xen/drivers/vpci/msix.c
> @@ -666,7 +666,7 @@ int vpci_make_msix_hole(const struct pci_dev *pdev)
>                  put_gfn(d, start);
>                  gprintk(XENLOG_WARNING,
>                          "%pp: existing mapping (mfn: %" PRI_mfn
> -                        "type: %d) at %#lx clobbers MSIX MMIO area\n",
> +                        " type: %d) at %#lx clobbers MSIX MMIO area\n",

Imo this is a good indication that the format string better wouldn't be
extending across multiple lines. Then it would also be possible to grep
for it (in the sources) using e.g. "existing mapping .* clobbers".

Jan


From xen-devel-bounces@lists.xenproject.org Thu Apr 24 06:35:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Apr 2025 06:35:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.965850.1356251 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7qAc-00079q-Ux; Thu, 24 Apr 2025 06:34:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 965850.1356251; Thu, 24 Apr 2025 06: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 1u7qAc-00079j-SR; Thu, 24 Apr 2025 06:34:50 +0000
Received: by outflank-mailman (input) for mailman id 965850;
 Thu, 24 Apr 2025 06:34: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=IaUl=XK=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u7qAb-00079Z-05
 for xen-devel@lists.xenproject.org; Thu, 24 Apr 2025 06:34:49 +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 3690d598-20d6-11f0-9ffb-bf95429c2676;
 Thu, 24 Apr 2025 08:34:46 +0200 (CEST)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-39c266c2dd5so647906f8f.3
 for <xen-devel@lists.xenproject.org>; Wed, 23 Apr 2025 23:34:46 -0700 (PDT)
Received: from ?IPV6:2003:ca:b734:b408:9d23:e5d:de25:e110?
 (p200300cab734b4089d230e5dde25e110.dip0.t-ipconnect.de.
 [2003:ca:b734:b408:9d23:e5d:de25:e110])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3a06d532a9dsm995408f8f.61.2025.04.23.23.34.44
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 23 Apr 2025 23:34:44 -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: 3690d598-20d6-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745476485; x=1746081285; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=zL+sciCXJIK0yGTIFxCeU0K61FCHzj7AzTTjNz1xr98=;
        b=MhucUiW1TkRtcJoFAmcz5S6ZIlbz4NmC48nkTD1lIRtD9bpEZwWLrf+iqMLhnbu7X2
         v9cx+rnq0XaXycO2xVjt15yoRJNdnyX7rTPi+VFXWLPM652GICjFp6iepDfKhQUa4TGR
         fdcBAhdFIdUeoESIdcRq/OIqkkU5ns8X4DkYojx1rfkw6dTa/s7sqr5AmSV3RHhzkZmk
         GET3bu9r7HYyoRRwCzIl2G6SAeI225ZJq5IGtqNJD2Yspmw2e6ZxiRUYmhAYfsABOISr
         oomOyae1fPQI/WPxzykNva7C0F4FszZeVDMR7YcLDy1+I68qbJlzoqVo5N0x77ENSEQg
         TbVg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745476485; x=1746081285;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=zL+sciCXJIK0yGTIFxCeU0K61FCHzj7AzTTjNz1xr98=;
        b=UKTLBaJOVKHDtXvI8ZHO/UXZ7y1DCVlx+9R1EKfEAsvBNrWPMIVSIrAW1Gt50cp2c2
         mXFmftle+6ahmjJxhBI08HZk1kaweeWpS+4e3VTH6UDvgbj8YQ1L878uUwgnvXl8pqUa
         KuT4sLcLLYQy1TwTeUrRkvBuOrI6S8ZcLnf6sgFD/Lcg6P7LOBC7f8Y1oIUr4eyQ7mGW
         McIOPh0l6pgRb+aZWdX76+oT5gPfUltDfbZF9hk0P/gS/r834GCHsgOw9TRJf+Xi2hHz
         MKrSW/ouB96WqM9yYLfr1eIKye8ipGUjd+WN9yySqQIInGJmGn3QzaHtI9y1PYB0WF/f
         e2Cw==
X-Forwarded-Encrypted: i=1; AJvYcCXJk9AaF0IJRdEndafUY0lSCrpK2XgTqJmM+6sDSnG69HYWG+ofpIYoT6yz0uVHtFAERSXvdTozTw8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwUDV+2IlbeVB9E4d4v4B9l3r+Tpqi9zJYY4vogK26Eg9OmbMJx
	QY9BTmepAMBiRIVwzcuFh8MdojmRGvffwi4Pkr/O8Z67aYclaNFZi36rykWbYg==
X-Gm-Gg: ASbGncu9EQFeC+o2AW0ftyaBgva+rlnTliGC98QlKiKcgK83ZVoVqU4GVXhnGjTvs+s
	cWuON8TqxEboE0VQmu8ifGGlI4xEubPTPuiewAIPOmYndUgMo0yLw9LYE25Wskel1BzE6fJGW3r
	44/TrwOE14lpWGPob144uVF8iuDiF57Fc8LQJX0EweNjyz/0c0l7djLQbgmuNfaU2lxQnAtgRKI
	V+GPmr2GovJ5GHs9B+hoFQMEZNe7sAW6LlNxjvGYhWxBLFRim0SxbndP/lfO1Tevpumw1SCtx4Q
	Id2rBqxND0EfC7XcgwM6gZspGi2KCLm3sxW2gTF5Cnhx5fUUX8ZqFtLk5xvypJ8WKURvIb4TWbG
	4awu+aSjjSG78M/ZgXpIqdDHcf2C/K+XB2+3RIBwypjTVMRtLgLF+K16Cf2zhDs5lpA7ruRg4
X-Google-Smtp-Source: AGHT+IH9E1o9LJ+cwSu+3F7DUFRfhr2+CxwRYdb8fS8cZImhSvBJsJrpIokuBBQvNbHY6XwgWrf5Bg==
X-Received: by 2002:a05:6000:18a8:b0:391:241d:a13e with SMTP id ffacd0b85a97d-3a06cfab52fmr727926f8f.48.1745476485300;
        Wed, 23 Apr 2025 23:34:45 -0700 (PDT)
Message-ID: <40a5c44c-4ef1-4852-b441-ea65e31b2345@suse.com>
Date: Thu, 24 Apr 2025 08:34:42 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: UBSan bug in real mode fpu emulation
To: Fabian Specht <f.specht@tum.de>, xen-devel@lists.xenproject.org
Cc: manuel.andreas@tum.de
References: <l2jnq5cxgkzcdkndp3mjf76nd7wdp2pbstkqo7llaarmbfqdge@bxdydela4rcf>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <l2jnq5cxgkzcdkndp3mjf76nd7wdp2pbstkqo7llaarmbfqdge@bxdydela4rcf>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.04.2025 03:08, Fabian Specht wrote:
> we discovered a bug regarding undefined behaviour in the FPU emulation
> unit.
> 
> if ( !s->rex_prefix )
> {
> 	/* Convert 32-bit real/vm86 to 32-bit prot format. */
> 	unsigned int fip = fpstate.env.mode.real.fip_lo +
> 					   (fpstate.env.mode.real.fip_hi << 16);
> 	unsigned int fdp = fpstate.env.mode.real.fdp_lo +
> 					   (fpstate.env.mode.real.fdp_hi << 16);
> 	unsigned int fop = fpstate.env.mode.real.fop;
> 
> 	fpstate.env.mode.prot.fip = fip & 0xf;
> 	fpstate.env.mode.prot.fcs = fip >> 4;
> 	fpstate.env.mode.prot.fop = fop;
> 	fpstate.env.mode.prot.fdp = fdp & 0xf;
> 	fpstate.env.mode.prot.fds = fdp >> 4;
> }
> 
> It occurs at arch/x86/arch/x86/x86_emulate/blk.c:85 of the v4.20.0
> release during the bit shift and can be triggered using the attached xtf
> test. We are not aware of any security consequences.
> Simply shifting by 4 should do the trick in my opinion.

Since ...

> Similar code resides in the same file in lines 87, 125 and 127.

... all of these are shifts by 16, could you clarify what it is that you
want to shift by 4? Imo what we need to do here is add casts to unsigned
int, for the results thereof to be shifted (or use some extra arithmetic
to achieve the same effect, e.g. add in 0U). Or we could go and replace
the shifts by 16 with shifts by 12 (accounting for the later right shift
by 4, which would then need dropping).

Jan


From xen-devel-bounces@lists.xenproject.org Thu Apr 24 07:05:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Apr 2025 07:05:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.965848.1356267 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7qds-0004Dh-GN; Thu, 24 Apr 2025 07:05:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 965848.1356267; Thu, 24 Apr 2025 07:05: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 1u7qds-0004DH-Bu; Thu, 24 Apr 2025 07:05:04 +0000
Received: by outflank-mailman (input) for mailman id 965848;
 Thu, 24 Apr 2025 06: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=hkPj=XK=linux.intel.com=dapeng1.mi@srs-se1.protection.inumbo.net>)
 id 1u7q9i-00077i-Vu
 for xen-devel@lists.xenproject.org; Thu, 24 Apr 2025 06:33:54 +0000
Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.15])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1637a5ae-20d6-11f0-9eb1-5ba50f476ded;
 Thu, 24 Apr 2025 08:33:53 +0200 (CEST)
Received: from fmviesa001.fm.intel.com ([10.60.135.141])
 by fmvoesa109.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 23 Apr 2025 23:33:51 -0700
Received: from dapengmi-mobl1.ccr.corp.intel.com (HELO [10.124.245.128])
 ([10.124.245.128])
 by smtpauth.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 23 Apr 2025 23:33:39 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1637a5ae-20d6-11f0-9eb1-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1745476433; x=1777012433;
  h=message-id:date:mime-version:subject:to:cc:references:
   from:in-reply-to:content-transfer-encoding;
  bh=dcxOn/nuTpss+vf24oXBlr34cv3+AgMg/89LV6ad5rM=;
  b=EH1WaUTRi4TPiWTo1+4t3y7E2rhtAQPBJEDqKD8EYnZ0imw3keFRFE0+
   XUF5BQxQ1TnpzbyDbLVBr0K/prfP7PjDoUt1BsF6cKf1Fxci9G2MvN83z
   acShBqE5rU5QsTnT4To3Njk9VR3JSRfDz4Fol9dtQnWFQBeQVHx3v46to
   zW6iwoqBpMDPCnLa+qh4mLttip6V8X9SpYg9j4C3A0epCsWoqaCP4TYas
   Q0bl7FnSnt6Wjj8Ya0O+wxQuvsDRRq5nr8nWFy4fAu1hvBHeam1bXGun7
   xe/gKzAM0Em97s8P9RFvU85ZrY2NQEe14RAxm1w1PgySLXUUVLcv2v2QP
   Q==;
X-CSE-ConnectionGUID: UJeruhciTail4A4VRAPXCw==
X-CSE-MsgGUID: ZOCZyqQFT4a3q1XHS1OsaQ==
X-IronPort-AV: E=McAfee;i="6700,10204,11412"; a="47226707"
X-IronPort-AV: E=Sophos;i="6.15,235,1739865600"; 
   d="scan'208";a="47226707"
X-CSE-ConnectionGUID: l3lwgHW4RvWGJqWYsXT+Ow==
X-CSE-MsgGUID: x4fuAgz/TQeaZNeRxG6fQQ==
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="6.15,235,1739865600"; 
   d="scan'208";a="163563116"
Message-ID: <7c44da88-72bb-4d1f-9f38-bf0e7e79b7a0@linux.intel.com>
Date: Thu, 24 Apr 2025 14:33:35 +0800
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH v2 12/34] x86/msr: Remove pmu_msr_{read,write}()
To: "Xin Li (Intel)" <xin@zytor.com>, linux-kernel@vger.kernel.org,
 kvm@vger.kernel.org, linux-perf-users@vger.kernel.org,
 linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
 linux-pm@vger.kernel.org, linux-edac@vger.kernel.org,
 xen-devel@lists.xenproject.org, linux-acpi@vger.kernel.org,
 linux-hwmon@vger.kernel.org, netdev@vger.kernel.org,
 platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
 dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com, acme@kernel.org,
 jgross@suse.com, andrew.cooper3@citrix.com, peterz@infradead.org,
 namhyung@kernel.org, mark.rutland@arm.com,
 alexander.shishkin@linux.intel.com, jolsa@kernel.org, irogers@google.com,
 adrian.hunter@intel.com, kan.liang@linux.intel.com, wei.liu@kernel.org,
 ajay.kaher@broadcom.com, bcm-kernel-feedback-list@broadcom.com,
 tony.luck@intel.com, pbonzini@redhat.com, vkuznets@redhat.com,
 seanjc@google.com, luto@kernel.org, boris.ostrovsky@oracle.com,
 kys@microsoft.com, haiyangz@microsoft.com, decui@microsoft.com
References: <20250422082216.1954310-1-xin@zytor.com>
 <20250422082216.1954310-13-xin@zytor.com>
Content-Language: en-US
From: "Mi, Dapeng" <dapeng1.mi@linux.intel.com>
In-Reply-To: <20250422082216.1954310-13-xin@zytor.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit


On 4/22/2025 4:21 PM, Xin Li (Intel) wrote:
> As pmu_msr_{read,write}() are now wrappers of pmu_msr_chk_emulated(),
> remove them and use pmu_msr_chk_emulated() directly.
>
> While at it, convert the data type of MSR index to u32 in functions
> called in pmu_msr_chk_emulated().
>
> Suggested-by: H. Peter Anvin (Intel) <hpa@zytor.com>
> Signed-off-by: Xin Li (Intel) <xin@zytor.com>
> ---
>  arch/x86/xen/enlighten_pv.c | 17 ++++++++++-------
>  arch/x86/xen/pmu.c          | 24 ++++--------------------
>  arch/x86/xen/xen-ops.h      |  3 +--
>  3 files changed, 15 insertions(+), 29 deletions(-)
>
> diff --git a/arch/x86/xen/enlighten_pv.c b/arch/x86/xen/enlighten_pv.c
> index 1418758b57ff..b5a8bceb5f56 100644
> --- a/arch/x86/xen/enlighten_pv.c
> +++ b/arch/x86/xen/enlighten_pv.c
> @@ -1089,8 +1089,9 @@ static void xen_write_cr4(unsigned long cr4)
>  static u64 xen_do_read_msr(unsigned int msr, int *err)
>  {
>  	u64 val = 0;	/* Avoid uninitialized value for safe variant. */
> +	bool emulated;
>  
> -	if (pmu_msr_read(msr, &val, err))
> +	if (pmu_msr_chk_emulated(msr, &val, true, &emulated) && emulated)

ah, here it is.

Could we merge this patch and previous patch into a single patch? It's
unnecessary to just modify the pmu_msr_read()/pmu_msr_write() in previous
patch and delete them immediately. It just wastes the effort.


>  		return val;
>  
>  	if (err)
> @@ -1133,6 +1134,7 @@ static void xen_do_write_msr(unsigned int msr, unsigned int low,
>  			     unsigned int high, int *err)
>  {
>  	u64 val;
> +	bool emulated;
>  
>  	switch (msr) {
>  	case MSR_FS_BASE:
> @@ -1162,12 +1164,13 @@ static void xen_do_write_msr(unsigned int msr, unsigned int low,
>  	default:
>  		val = (u64)high << 32 | low;
>  
> -		if (!pmu_msr_write(msr, val)) {
> -			if (err)
> -				*err = native_write_msr_safe(msr, low, high);
> -			else
> -				native_write_msr(msr, low, high);
> -		}
> +		if (pmu_msr_chk_emulated(msr, &val, false, &emulated) && emulated)
> +			return;
> +
> +		if (err)
> +			*err = native_write_msr_safe(msr, low, high);
> +		else
> +			native_write_msr(msr, low, high);
>  	}
>  }
>  
> diff --git a/arch/x86/xen/pmu.c b/arch/x86/xen/pmu.c
> index 95caae97a394..afb02f43ee3f 100644
> --- a/arch/x86/xen/pmu.c
> +++ b/arch/x86/xen/pmu.c
> @@ -128,7 +128,7 @@ static inline uint32_t get_fam15h_addr(u32 addr)
>  	return addr;
>  }
>  
> -static inline bool is_amd_pmu_msr(unsigned int msr)
> +static bool is_amd_pmu_msr(u32 msr)
>  {
>  	if (boot_cpu_data.x86_vendor != X86_VENDOR_AMD &&
>  	    boot_cpu_data.x86_vendor != X86_VENDOR_HYGON)
> @@ -194,8 +194,7 @@ static bool is_intel_pmu_msr(u32 msr_index, int *type, int *index)
>  	}
>  }
>  
> -static bool xen_intel_pmu_emulate(unsigned int msr, u64 *val, int type,
> -				  int index, bool is_read)
> +static bool xen_intel_pmu_emulate(u32 msr, u64 *val, int type, int index, bool is_read)
>  {
>  	uint64_t *reg = NULL;
>  	struct xen_pmu_intel_ctxt *ctxt;
> @@ -257,7 +256,7 @@ static bool xen_intel_pmu_emulate(unsigned int msr, u64 *val, int type,
>  	return false;
>  }
>  
> -static bool xen_amd_pmu_emulate(unsigned int msr, u64 *val, bool is_read)
> +static bool xen_amd_pmu_emulate(u32 msr, u64 *val, bool is_read)
>  {
>  	uint64_t *reg = NULL;
>  	int i, off = 0;
> @@ -298,8 +297,7 @@ static bool xen_amd_pmu_emulate(unsigned int msr, u64 *val, bool is_read)
>  	return false;
>  }
>  
> -static bool pmu_msr_chk_emulated(unsigned int msr, uint64_t *val, bool is_read,
> -				 bool *emul)
> +bool pmu_msr_chk_emulated(u32 msr, u64 *val, bool is_read, bool *emul)
>  {
>  	int type, index = 0;
>  
> @@ -313,20 +311,6 @@ static bool pmu_msr_chk_emulated(unsigned int msr, uint64_t *val, bool is_read,
>  	return true;
>  }
>  
> -bool pmu_msr_read(u32 msr, u64 *val)
> -{
> -	bool emulated;
> -
> -	return pmu_msr_chk_emulated(msr, val, true, &emulated) && emulated;
> -}
> -
> -bool pmu_msr_write(u32 msr, u64 val)
> -{
> -	bool emulated;
> -
> -	return pmu_msr_chk_emulated(msr, &val, false, &emulated) && emulated;
> -}
> -
>  static u64 xen_amd_read_pmc(int counter)
>  {
>  	struct xen_pmu_amd_ctxt *ctxt;
> diff --git a/arch/x86/xen/xen-ops.h b/arch/x86/xen/xen-ops.h
> index a1875e10be31..fde9f9d7415f 100644
> --- a/arch/x86/xen/xen-ops.h
> +++ b/arch/x86/xen/xen-ops.h
> @@ -271,8 +271,7 @@ void xen_pmu_finish(int cpu);
>  static inline void xen_pmu_init(int cpu) {}
>  static inline void xen_pmu_finish(int cpu) {}
>  #endif
> -bool pmu_msr_read(u32 msr, u64 *val);
> -bool pmu_msr_write(u32 msr, u64 val);
> +bool pmu_msr_chk_emulated(u32 msr, u64 *val, bool is_read, bool *emul);
>  int pmu_apic_update(uint32_t reg);
>  u64 xen_read_pmc(int counter);
>  


From xen-devel-bounces@lists.xenproject.org Thu Apr 24 07:05:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Apr 2025 07:05:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.965845.1356262 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7qds-0004Ax-8v; Thu, 24 Apr 2025 07:05:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 965845.1356262; Thu, 24 Apr 2025 07:05: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 1u7qds-0004Aq-5x; Thu, 24 Apr 2025 07:05:04 +0000
Received: by outflank-mailman (input) for mailman id 965845;
 Thu, 24 Apr 2025 06: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=hkPj=XK=linux.intel.com=dapeng1.mi@srs-se1.protection.inumbo.net>)
 id 1u7q2E-0005Yc-NM
 for xen-devel@lists.xenproject.org; Thu, 24 Apr 2025 06:26:11 +0000
Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.16])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 009ef05b-20d5-11f0-9eb1-5ba50f476ded;
 Thu, 24 Apr 2025 08:26:07 +0200 (CEST)
Received: from orviesa006.jf.intel.com ([10.64.159.146])
 by orvoesa108.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 23 Apr 2025 23:26:05 -0700
Received: from dapengmi-mobl1.ccr.corp.intel.com (HELO [10.124.245.128])
 ([10.124.245.128])
 by orviesa006-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 23 Apr 2025 23:25:52 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 009ef05b-20d5-11f0-9eb1-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1745475968; x=1777011968;
  h=message-id:date:mime-version:subject:to:cc:references:
   from:in-reply-to:content-transfer-encoding;
  bh=r9pnF53EyyaRucMwNVgQLeGE6Ab0R4f4MEaSIMBKOXs=;
  b=LXyiEpY3vzyPtYdMbKNQu0wnkQUVVcJFDKetIt6hQwFC8tK+on4cvPz4
   tPA8liJUKOav+Hhy5CrX6er3dWq+SDWjuyGrikbxP6BVcX/v4uGAZi+EG
   PFjpx1xLNTArkkBks89llFk9wWmN/i7mdy/kovw8hOW3pruPwQkK4/CQi
   mkhXHv5aGacvQwSdkl0RrJDg0Z4YvE5vAjEkTuYHZRtpz/u3CHXcvQgQh
   KDtBNKjphApxHWoK+Ef0QRPn0BkZp0PP+y4tu5W+h5fN/yJS4ZbybYHzz
   sIWfDYVzDdvrtIlP0j4wxQqyAcTI9uPQVI5KJY/osO436mML9LCcikUXO
   Q==;
X-CSE-ConnectionGUID: wXz1jbBIRGijFWCGpG9fzw==
X-CSE-MsgGUID: Pl7RfLThTTWLi4AK/9KgAA==
X-IronPort-AV: E=McAfee;i="6700,10204,11412"; a="47187616"
X-IronPort-AV: E=Sophos;i="6.15,235,1739865600"; 
   d="scan'208";a="47187616"
X-CSE-ConnectionGUID: Ejvh0aUHTACVpOK/Jqvr7Q==
X-CSE-MsgGUID: i3jvGnxIQpSi7EjKCit1UA==
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="6.15,235,1739865600"; 
   d="scan'208";a="132432771"
Message-ID: <20471e53-c228-4cf6-83e6-3ab49f32f19f@linux.intel.com>
Date: Thu, 24 Apr 2025 14:25:49 +0800
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH v2 11/34] x86/msr: Remove calling
 native_{read,write}_msr{,_safe}() in pmu_msr_{read,write}()
To: "Xin Li (Intel)" <xin@zytor.com>, linux-kernel@vger.kernel.org,
 kvm@vger.kernel.org, linux-perf-users@vger.kernel.org,
 linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
 linux-pm@vger.kernel.org, linux-edac@vger.kernel.org,
 xen-devel@lists.xenproject.org, linux-acpi@vger.kernel.org,
 linux-hwmon@vger.kernel.org, netdev@vger.kernel.org,
 platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
 dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com, acme@kernel.org,
 jgross@suse.com, andrew.cooper3@citrix.com, peterz@infradead.org,
 namhyung@kernel.org, mark.rutland@arm.com,
 alexander.shishkin@linux.intel.com, jolsa@kernel.org, irogers@google.com,
 adrian.hunter@intel.com, kan.liang@linux.intel.com, wei.liu@kernel.org,
 ajay.kaher@broadcom.com, bcm-kernel-feedback-list@broadcom.com,
 tony.luck@intel.com, pbonzini@redhat.com, vkuznets@redhat.com,
 seanjc@google.com, luto@kernel.org, boris.ostrovsky@oracle.com,
 kys@microsoft.com, haiyangz@microsoft.com, decui@microsoft.com
References: <20250422082216.1954310-1-xin@zytor.com>
 <20250422082216.1954310-12-xin@zytor.com>
Content-Language: en-US
From: "Mi, Dapeng" <dapeng1.mi@linux.intel.com>
In-Reply-To: <20250422082216.1954310-12-xin@zytor.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit


On 4/22/2025 4:21 PM, Xin Li (Intel) wrote:
> hpa found that pmu_msr_write() is actually a completely pointless
> function [1]: all it does is shuffle some arguments, then calls
> pmu_msr_chk_emulated() and if it returns true AND the emulated flag
> is clear then does *exactly the same thing* that the calling code
> would have done if pmu_msr_write() itself had returned true.  And
> pmu_msr_read() does the equivalent stupidity.
>
> Remove the calls to native_{read,write}_msr{,_safe}() within
> pmu_msr_{read,write}().  Instead reuse the existing calling code
> that decides whether to call native_{read,write}_msr{,_safe}() based
> on the return value from pmu_msr_{read,write}().  Consequently,
> eliminate the need to pass an error pointer to pmu_msr_{read,write}().
>
> While at it, refactor pmu_msr_write() to take the MSR value as a u64
> argument, replacing the current dual u32 arguments, because the dual
> u32 arguments were only used to call native_write_msr{,_safe}(), which
> has now been removed.
>
> [1]: https://lore.kernel.org/lkml/0ec48b84-d158-47c6-b14c-3563fd14bcc4@zytor.com/
>
> Suggested-by: H. Peter Anvin (Intel) <hpa@zytor.com>
> Sign-off-by: Xin Li (Intel) <xin@zytor.com>
> ---
>  arch/x86/xen/enlighten_pv.c |  6 +++++-
>  arch/x86/xen/pmu.c          | 27 ++++-----------------------
>  arch/x86/xen/xen-ops.h      |  4 ++--
>  3 files changed, 11 insertions(+), 26 deletions(-)
>
> diff --git a/arch/x86/xen/enlighten_pv.c b/arch/x86/xen/enlighten_pv.c
> index 9fbe187aff00..1418758b57ff 100644
> --- a/arch/x86/xen/enlighten_pv.c
> +++ b/arch/x86/xen/enlighten_pv.c
> @@ -1132,6 +1132,8 @@ static void set_seg(unsigned int which, unsigned int low, unsigned int high,
>  static void xen_do_write_msr(unsigned int msr, unsigned int low,
>  			     unsigned int high, int *err)
>  {
> +	u64 val;
> +
>  	switch (msr) {
>  	case MSR_FS_BASE:
>  		set_seg(SEGBASE_FS, low, high, err);
> @@ -1158,7 +1160,9 @@ static void xen_do_write_msr(unsigned int msr, unsigned int low,
>  		break;
>  
>  	default:
> -		if (!pmu_msr_write(msr, low, high, err)) {
> +		val = (u64)high << 32 | low;
> +
> +		if (!pmu_msr_write(msr, val)) {
>  			if (err)
>  				*err = native_write_msr_safe(msr, low, high);
>  			else
> diff --git a/arch/x86/xen/pmu.c b/arch/x86/xen/pmu.c
> index 9c1682af620a..95caae97a394 100644
> --- a/arch/x86/xen/pmu.c
> +++ b/arch/x86/xen/pmu.c
> @@ -313,37 +313,18 @@ static bool pmu_msr_chk_emulated(unsigned int msr, uint64_t *val, bool is_read,
>  	return true;
>  }
>  
> -bool pmu_msr_read(unsigned int msr, uint64_t *val, int *err)
> +bool pmu_msr_read(u32 msr, u64 *val)

The function name is some kind of misleading right now. With the change,
this function only read PMU MSR's value if it's emulated, otherwise it
won't really read PMU MSR. How about changing the name to
"pmu_emulated_msr_read" or something similar?


>  {
>  	bool emulated;
>  
> -	if (!pmu_msr_chk_emulated(msr, val, true, &emulated))
> -		return false;
> -
> -	if (!emulated) {
> -		*val = err ? native_read_msr_safe(msr, err)
> -			   : native_read_msr(msr);
> -	}
> -
> -	return true;
> +	return pmu_msr_chk_emulated(msr, val, true, &emulated) && emulated;
>  }
>  
> -bool pmu_msr_write(unsigned int msr, uint32_t low, uint32_t high, int *err)
> +bool pmu_msr_write(u32 msr, u64 val)

ditto.


>  {
> -	uint64_t val = ((uint64_t)high << 32) | low;
>  	bool emulated;
>  
> -	if (!pmu_msr_chk_emulated(msr, &val, false, &emulated))
> -		return false;
> -
> -	if (!emulated) {
> -		if (err)
> -			*err = native_write_msr_safe(msr, low, high);
> -		else
> -			native_write_msr(msr, low, high);
> -	}
> -
> -	return true;
> +	return pmu_msr_chk_emulated(msr, &val, false, &emulated) && emulated;
>  }
>  
>  static u64 xen_amd_read_pmc(int counter)
> diff --git a/arch/x86/xen/xen-ops.h b/arch/x86/xen/xen-ops.h
> index dc886c3cc24d..a1875e10be31 100644
> --- a/arch/x86/xen/xen-ops.h
> +++ b/arch/x86/xen/xen-ops.h
> @@ -271,8 +271,8 @@ void xen_pmu_finish(int cpu);
>  static inline void xen_pmu_init(int cpu) {}
>  static inline void xen_pmu_finish(int cpu) {}
>  #endif
> -bool pmu_msr_read(unsigned int msr, uint64_t *val, int *err);
> -bool pmu_msr_write(unsigned int msr, uint32_t low, uint32_t high, int *err);
> +bool pmu_msr_read(u32 msr, u64 *val);

The prototype of pmu_msr_read() has been changed, but why there is no
corresponding change in its caller (xen_do_read_msr())?


> +bool pmu_msr_write(u32 msr, u64 val);
>  int pmu_apic_update(uint32_t reg);
>  u64 xen_read_pmc(int counter);
>  


From xen-devel-bounces@lists.xenproject.org Thu Apr 24 07:17:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Apr 2025 07:17:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.965895.1356282 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7qpP-00075c-EA; Thu, 24 Apr 2025 07:16:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 965895.1356282; Thu, 24 Apr 2025 07: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 1u7qpP-00075V-BD; Thu, 24 Apr 2025 07:16:59 +0000
Received: by outflank-mailman (input) for mailman id 965895;
 Thu, 24 Apr 2025 07:16: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=/BVb=XK=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u7qpN-00075K-SW
 for xen-devel@lists.xenproject.org; Thu, 24 Apr 2025 07:16:58 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1a071a4e-20dc-11f0-9eb1-5ba50f476ded;
 Thu, 24 Apr 2025 09:16:56 +0200 (CEST)
Received: from [192.168.7.202] ([71.202.166.45]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53O7G7xQ675155
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NO);
 Thu, 24 Apr 2025 00:16:08 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1a071a4e-20dc-11f0-9eb1-5ba50f476ded
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53O7G7xQ675155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745478973;
	bh=Odag7AUDgfyRP0+2u/H+HenPnfgl0J1B2VMW9HL/hPY=;
	h=Date:Subject:To:Cc:References:From:In-Reply-To:From;
	b=d86S+IGYG3p4vXYzf5tU1fqwwhzwlqPeOdX0LxBP3GXABuT8mjfDO+CBUKCW848SQ
	 DZKTS3GVQ63kEDbEoH3UczKm0cOKJPG2Qwh++9GOGJTM5UuSqDcynKa2xFyNgkdz4Z
	 R9VFC+6vru/Wbfh93IBkm1anEKXEw+f4obbh3WSLvTlHMYA93DY/dXGOsfOOtd92xQ
	 oizB71iApse9+ri55DZ2jAGUU+LSC2awjvDaoHQvrkRDvdKdRaoFx+ISpI70XSxFPc
	 jqSmnMNMNsT/GqweC5nu+VfxFOHe7P5xgOsr9wU+7mhYoBfhtU+mMKTul67uGxqWuB
	 yTuvbW0WLwpCw==
Message-ID: <2ce9ab5c-89a5-4504-91d2-fbc12c68117a@zytor.com>
Date: Thu, 24 Apr 2025 00:16:06 -0700
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH v2 11/34] x86/msr: Remove calling
 native_{read,write}_msr{,_safe}() in pmu_msr_{read,write}()
To: "Mi, Dapeng" <dapeng1.mi@linux.intel.com>, linux-kernel@vger.kernel.org,
        kvm@vger.kernel.org, linux-perf-users@vger.kernel.org,
        linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
        linux-pm@vger.kernel.org, linux-edac@vger.kernel.org,
        xen-devel@lists.xenproject.org, linux-acpi@vger.kernel.org,
        linux-hwmon@vger.kernel.org, netdev@vger.kernel.org,
        platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        acme@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com,
        peterz@infradead.org, namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com
References: <20250422082216.1954310-1-xin@zytor.com>
 <20250422082216.1954310-12-xin@zytor.com>
 <20471e53-c228-4cf6-83e6-3ab49f32f19f@linux.intel.com>
Content-Language: en-US
From: Xin Li <xin@zytor.com>
Autocrypt: addr=xin@zytor.com; keydata=
 xsDNBGUPz1cBDACS/9yOJGojBFPxFt0OfTWuMl0uSgpwk37uRrFPTTLw4BaxhlFL0bjs6q+0
 2OfG34R+a0ZCuj5c9vggUMoOLdDyA7yPVAJU0OX6lqpg6z/kyQg3t4jvajG6aCgwSDx5Kzg5
 Rj3AXl8k2wb0jdqRB4RvaOPFiHNGgXCs5Pkux/qr0laeFIpzMKMootGa4kfURgPhRzUaM1vy
 bsMsL8vpJtGUmitrSqe5dVNBH00whLtPFM7IbzKURPUOkRRiusFAsw0a1ztCgoFczq6VfAVu
 raTye0L/VXwZd+aGi401V2tLsAHxxckRi9p3mc0jExPc60joK+aZPy6amwSCy5kAJ/AboYtY
 VmKIGKx1yx8POy6m+1lZ8C0q9b8eJ8kWPAR78PgT37FQWKYS1uAroG2wLdK7FiIEpPhCD+zH
 wlslo2ETbdKjrLIPNehQCOWrT32k8vFNEMLP5G/mmjfNj5sEf3IOKgMTMVl9AFjsINLHcxEQ
 6T8nGbX/n3msP6A36FDfdSEAEQEAAc0WWGluIExpIDx4aW5Aenl0b3IuY29tPsLBDQQTAQgA
 NxYhBIUq/WFSDTiOvUIqv2u9DlcdrjdRBQJlD89XBQkFo5qAAhsDBAsJCAcFFQgJCgsFFgID
 AQAACgkQa70OVx2uN1HUpgv/cM2fsFCQodLArMTX5nt9yqAWgA5t1srri6EgS8W3F+3Kitge
 tYTBKu6j5BXuXaX3vyfCm+zajDJN77JHuYnpcKKr13VcZi1Swv6Jx1u0II8DOmoDYLb1Q2ZW
 v83W55fOWJ2g72x/UjVJBQ0sVjAngazU3ckc0TeNQlkcpSVGa/qBIHLfZraWtdrNAQT4A1fa
 sWGuJrChBFhtKbYXbUCu9AoYmmbQnsx2EWoJy3h7OjtfFapJbPZql+no5AJ3Mk9eE5oWyLH+
 QWqtOeJM7kKvn/dBudokFSNhDUw06e7EoVPSJyUIMbYtUO7g2+Atu44G/EPP0yV0J4lRO6EA
 wYRXff7+I1jIWEHpj5EFVYO6SmBg7zF2illHEW31JAPtdDLDHYcZDfS41caEKOQIPsdzQkaQ
 oW2hchcjcMPAfyhhRzUpVHLPxLCetP8vrVhTvnaZUo0xaVYb3+wjP+D5j/3+hwblu2agPsaE
 vgVbZ8Fx3TUxUPCAdr/p73DGg57oHjgezsDNBGUPz1gBDAD4Mg7hMFRQqlzotcNSxatlAQNL
 MadLfUTFz8wUUa21LPLrHBkUwm8RujehJrzcVbPYwPXIO0uyL/F///CogMNx7Iwo6by43KOy
 g89wVFhyy237EY76j1lVfLzcMYmjBoTH95fJC/lVb5Whxil6KjSN/R/y3jfG1dPXfwAuZ/4N
 cMoOslWkfZKJeEut5aZTRepKKF54T5r49H9F7OFLyxrC/uI9UDttWqMxcWyCkHh0v1Di8176
 jjYRNTrGEfYfGxSp+3jYL3PoNceIMkqM9haXjjGl0W1B4BidK1LVYBNov0rTEzyr0a1riUrp
 Qk+6z/LHxCM9lFFXnqH7KWeToTOPQebD2B/Ah5CZlft41i8L6LOF/LCuDBuYlu/fI2nuCc8d
 m4wwtkou1Y/kIwbEsE/6RQwRXUZhzO6llfoN96Fczr/RwvPIK5SVMixqWq4QGFAyK0m/1ap4
 bhIRrdCLVQcgU4glo17vqfEaRcTW5SgX+pGs4KIPPBE5J/ABD6pBnUUAEQEAAcLA/AQYAQgA
 JhYhBIUq/WFSDTiOvUIqv2u9DlcdrjdRBQJlD89ZBQkFo5qAAhsMAAoJEGu9DlcdrjdR4C0L
 /RcjolEjoZW8VsyxWtXazQPnaRvzZ4vhmGOsCPr2BPtMlSwDzTlri8BBG1/3t/DNK4JLuwEj
 OAIE3fkkm+UG4Kjud6aNeraDI52DRVCSx6xff3bjmJsJJMb12mWglN6LjdF6K+PE+OTJUh2F
 dOhslN5C2kgl0dvUuevwMgQF3IljLmi/6APKYJHjkJpu1E6luZec/lRbetHuNFtbh3xgFIJx
 2RpgVDP4xB3f8r0I+y6ua+p7fgOjDLyoFjubRGed0Be45JJQEn7A3CSb6Xu7NYobnxfkwAGZ
 Q81a2XtvNS7Aj6NWVoOQB5KbM4yosO5+Me1V1SkX2jlnn26JPEvbV3KRFcwV5RnDxm4OQTSk
 PYbAkjBbm+tuJ/Sm+5Yp5T/BnKz21FoCS8uvTiziHj2H7Cuekn6F8EYhegONm+RVg3vikOpn
 gao85i4HwQTK9/D1wgJIQkdwWXVMZ6q/OALaBp82vQ2U9sjTyFXgDjglgh00VRAHP7u1Rcu4
 l75w1xInsg==
In-Reply-To: <20471e53-c228-4cf6-83e6-3ab49f32f19f@linux.intel.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 4/23/2025 11:25 PM, Mi, Dapeng wrote:

>> -bool pmu_msr_read(unsigned int msr, uint64_t *val, int *err)
>> +bool pmu_msr_read(u32 msr, u64 *val)
> 
> The function name is some kind of misleading right now. With the change,
> this function only read PMU MSR's value if it's emulated, otherwise it
> won't really read PMU MSR. How about changing the name to
> "pmu_emulated_msr_read" or something similar?

This makes sense!

>> -bool pmu_msr_read(unsigned int msr, uint64_t *val, int *err);
>> -bool pmu_msr_write(unsigned int msr, uint32_t low, uint32_t high, int *err);
>> +bool pmu_msr_read(u32 msr, u64 *val);
> 
> The prototype of pmu_msr_read() has been changed, but why there is no
> corresponding change in its caller (xen_do_read_msr())?

Good catch.  I didn't compile one by one thus missed it.


From xen-devel-bounces@lists.xenproject.org Thu Apr 24 07:22:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Apr 2025 07:22:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.965906.1356291 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7quZ-0000oE-0B; Thu, 24 Apr 2025 07:22:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 965906.1356291; Thu, 24 Apr 2025 07:22: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 1u7quY-0000o7-Tt; Thu, 24 Apr 2025 07:22:18 +0000
Received: by outflank-mailman (input) for mailman id 965906;
 Thu, 24 Apr 2025 07:22: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=/BVb=XK=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u7quX-0000ny-7v
 for xen-devel@lists.xenproject.org; Thu, 24 Apr 2025 07:22:17 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d8b220e1-20dc-11f0-9eb1-5ba50f476ded;
 Thu, 24 Apr 2025 09:22:16 +0200 (CEST)
Received: from [192.168.7.202] ([71.202.166.45]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53O7LZ5g680960
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NO);
 Thu, 24 Apr 2025 00:21:35 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d8b220e1-20dc-11f0-9eb1-5ba50f476ded
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53O7LZ5g680960
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745479299;
	bh=O9DVYPK4RZY6YYB7/ewtc8a7TzxiyHmBlNZob9ULLMA=;
	h=Date:Subject:To:Cc:References:From:In-Reply-To:From;
	b=EzvxVtK1RQzG5pBpbz5wweMmUbLdbX/ewshxBSEyzwL/iSqjs/faWzfoVSom8e2bU
	 rmtjJO6WWsw5MRs+zFMZdhntary9psA+7pGR0qJdm5RToXkkDchyg/7J6wq+MXnydS
	 UyLEA/gHD031cZVbQISWf2vqYtuDBOavy4tsFM7jHVW35I0N3LU2ji43dZuWviNu+n
	 FFLmIt3g5crz4RF3ksAJwKElGMES6WqszkBNO0xqtkqsXJyqbnXEZbMYTHwHd3awyK
	 c6+7Hh3YMNGJO193usGiO/3RsTuBx8nz3JVH/XdAf95WQAP9Kvgb0r/sHpAcHBWEwG
	 PsB6OXwrQJnjg==
Message-ID: <45f95d01-4b98-457c-8272-c396a52b3844@zytor.com>
Date: Thu, 24 Apr 2025 00:21:34 -0700
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH v2 12/34] x86/msr: Remove pmu_msr_{read,write}()
To: "Mi, Dapeng" <dapeng1.mi@linux.intel.com>, linux-kernel@vger.kernel.org,
        kvm@vger.kernel.org, linux-perf-users@vger.kernel.org,
        linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
        linux-pm@vger.kernel.org, linux-edac@vger.kernel.org,
        xen-devel@lists.xenproject.org, linux-acpi@vger.kernel.org,
        linux-hwmon@vger.kernel.org, netdev@vger.kernel.org,
        platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        acme@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com,
        peterz@infradead.org, namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com
References: <20250422082216.1954310-1-xin@zytor.com>
 <20250422082216.1954310-13-xin@zytor.com>
 <7c44da88-72bb-4d1f-9f38-bf0e7e79b7a0@linux.intel.com>
Content-Language: en-US
From: Xin Li <xin@zytor.com>
Autocrypt: addr=xin@zytor.com; keydata=
 xsDNBGUPz1cBDACS/9yOJGojBFPxFt0OfTWuMl0uSgpwk37uRrFPTTLw4BaxhlFL0bjs6q+0
 2OfG34R+a0ZCuj5c9vggUMoOLdDyA7yPVAJU0OX6lqpg6z/kyQg3t4jvajG6aCgwSDx5Kzg5
 Rj3AXl8k2wb0jdqRB4RvaOPFiHNGgXCs5Pkux/qr0laeFIpzMKMootGa4kfURgPhRzUaM1vy
 bsMsL8vpJtGUmitrSqe5dVNBH00whLtPFM7IbzKURPUOkRRiusFAsw0a1ztCgoFczq6VfAVu
 raTye0L/VXwZd+aGi401V2tLsAHxxckRi9p3mc0jExPc60joK+aZPy6amwSCy5kAJ/AboYtY
 VmKIGKx1yx8POy6m+1lZ8C0q9b8eJ8kWPAR78PgT37FQWKYS1uAroG2wLdK7FiIEpPhCD+zH
 wlslo2ETbdKjrLIPNehQCOWrT32k8vFNEMLP5G/mmjfNj5sEf3IOKgMTMVl9AFjsINLHcxEQ
 6T8nGbX/n3msP6A36FDfdSEAEQEAAc0WWGluIExpIDx4aW5Aenl0b3IuY29tPsLBDQQTAQgA
 NxYhBIUq/WFSDTiOvUIqv2u9DlcdrjdRBQJlD89XBQkFo5qAAhsDBAsJCAcFFQgJCgsFFgID
 AQAACgkQa70OVx2uN1HUpgv/cM2fsFCQodLArMTX5nt9yqAWgA5t1srri6EgS8W3F+3Kitge
 tYTBKu6j5BXuXaX3vyfCm+zajDJN77JHuYnpcKKr13VcZi1Swv6Jx1u0II8DOmoDYLb1Q2ZW
 v83W55fOWJ2g72x/UjVJBQ0sVjAngazU3ckc0TeNQlkcpSVGa/qBIHLfZraWtdrNAQT4A1fa
 sWGuJrChBFhtKbYXbUCu9AoYmmbQnsx2EWoJy3h7OjtfFapJbPZql+no5AJ3Mk9eE5oWyLH+
 QWqtOeJM7kKvn/dBudokFSNhDUw06e7EoVPSJyUIMbYtUO7g2+Atu44G/EPP0yV0J4lRO6EA
 wYRXff7+I1jIWEHpj5EFVYO6SmBg7zF2illHEW31JAPtdDLDHYcZDfS41caEKOQIPsdzQkaQ
 oW2hchcjcMPAfyhhRzUpVHLPxLCetP8vrVhTvnaZUo0xaVYb3+wjP+D5j/3+hwblu2agPsaE
 vgVbZ8Fx3TUxUPCAdr/p73DGg57oHjgezsDNBGUPz1gBDAD4Mg7hMFRQqlzotcNSxatlAQNL
 MadLfUTFz8wUUa21LPLrHBkUwm8RujehJrzcVbPYwPXIO0uyL/F///CogMNx7Iwo6by43KOy
 g89wVFhyy237EY76j1lVfLzcMYmjBoTH95fJC/lVb5Whxil6KjSN/R/y3jfG1dPXfwAuZ/4N
 cMoOslWkfZKJeEut5aZTRepKKF54T5r49H9F7OFLyxrC/uI9UDttWqMxcWyCkHh0v1Di8176
 jjYRNTrGEfYfGxSp+3jYL3PoNceIMkqM9haXjjGl0W1B4BidK1LVYBNov0rTEzyr0a1riUrp
 Qk+6z/LHxCM9lFFXnqH7KWeToTOPQebD2B/Ah5CZlft41i8L6LOF/LCuDBuYlu/fI2nuCc8d
 m4wwtkou1Y/kIwbEsE/6RQwRXUZhzO6llfoN96Fczr/RwvPIK5SVMixqWq4QGFAyK0m/1ap4
 bhIRrdCLVQcgU4glo17vqfEaRcTW5SgX+pGs4KIPPBE5J/ABD6pBnUUAEQEAAcLA/AQYAQgA
 JhYhBIUq/WFSDTiOvUIqv2u9DlcdrjdRBQJlD89ZBQkFo5qAAhsMAAoJEGu9DlcdrjdR4C0L
 /RcjolEjoZW8VsyxWtXazQPnaRvzZ4vhmGOsCPr2BPtMlSwDzTlri8BBG1/3t/DNK4JLuwEj
 OAIE3fkkm+UG4Kjud6aNeraDI52DRVCSx6xff3bjmJsJJMb12mWglN6LjdF6K+PE+OTJUh2F
 dOhslN5C2kgl0dvUuevwMgQF3IljLmi/6APKYJHjkJpu1E6luZec/lRbetHuNFtbh3xgFIJx
 2RpgVDP4xB3f8r0I+y6ua+p7fgOjDLyoFjubRGed0Be45JJQEn7A3CSb6Xu7NYobnxfkwAGZ
 Q81a2XtvNS7Aj6NWVoOQB5KbM4yosO5+Me1V1SkX2jlnn26JPEvbV3KRFcwV5RnDxm4OQTSk
 PYbAkjBbm+tuJ/Sm+5Yp5T/BnKz21FoCS8uvTiziHj2H7Cuekn6F8EYhegONm+RVg3vikOpn
 gao85i4HwQTK9/D1wgJIQkdwWXVMZ6q/OALaBp82vQ2U9sjTyFXgDjglgh00VRAHP7u1Rcu4
 l75w1xInsg==
In-Reply-To: <7c44da88-72bb-4d1f-9f38-bf0e7e79b7a0@linux.intel.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 4/23/2025 11:33 PM, Mi, Dapeng wrote:
> Could we merge this patch and previous patch into a single patch? It's
> unnecessary to just modify the pmu_msr_read()/pmu_msr_write() in previous
> patch and delete them immediately. It just wastes the effort.

No, it's not wasting effort, it's for easier review.

Look at this patch, you can easily tell that pmu_msr_read() and
pmu_msr_write() are nothing more than pmu_msr_chk_emulated(), and
then removing them makes a lot of sense.



From xen-devel-bounces@lists.xenproject.org Thu Apr 24 07:27:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Apr 2025 07:27:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.965920.1356302 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7qza-0001Z7-Lg; Thu, 24 Apr 2025 07:27:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 965920.1356302; Thu, 24 Apr 2025 07:27:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7qza-0001Z0-IT; Thu, 24 Apr 2025 07:27:30 +0000
Received: by outflank-mailman (input) for mailman id 965920;
 Thu, 24 Apr 2025 07:27: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=Q930=XK=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1u7qzY-0001Yn-3W
 for xen-devel@lists.xenproject.org; Thu, 24 Apr 2025 07:27:28 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 920fe54d-20dd-11f0-9eb1-5ba50f476ded;
 Thu, 24 Apr 2025 09:27:26 +0200 (CEST)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id 1970D4EE3CA1;
 Thu, 24 Apr 2025 09:27:25 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 920fe54d-20dd-11f0-9eb1-5ba50f476ded
Authentication-Results: bugseng.com; arc=none smtp.remote-ip=162.55.131.47
ARC-Seal: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; cv=none; t=1745479645;
	b=Pg2CcLUBQJrK+UcxRXtU3pH9q8GMpkOZyIjurKiFzhvMs8lDFIUf/9buRvOhf9JPxvL6
	 T3Z8tgHbgdZ6InCrKFIssnWmINOrlTEhV3NcKfBOCkC3nIlV9chmYmek/eMD1LViTZFIe
	 esGt9D4zW/80fm6AI8m6C16EfwAzggnQR322sS9PpM8CArHFET5Ki0afgRkYeXJvAxzi5
	 qvlSwEYn55t+NaYbk7++3PtrHodC08yL/i2mr12svDyHtvryVQQMy/ZPaV1WoRQ8u9go/
	 A+k3sLQlq/Gp6w0I/s7JhWcdhDezs21hsbjgOPP7JlLA20jh1Pv9MGu2Yo5JoQJ9C7byV
	 3IHFqz37NNwwtXxu4Uczzjnv+8Dt42N0ZiycBq3zXoRr/cf7wk/QGFQ6Fg4y/E5kkPkIz
	 9r4SEWpRKIKX7itQzQbV//dC5Swh3zahMqxZmkFPlsT3bCxz/2UlTel0tD5UpsDJ5gaDa
	 qY5yR1UuHkxyeD+S2cpIVKvGvFOQbqjWz8FWCh6zbrsLB2nbvztr+IrV2KTEDISlp+qx6
	 NBLFNL9PyAnRtntrByUb4ouT/kyGhshAMy94CiFPg0lPCTzjigYWvSD6l6UZp0CQoewcu
	 OprS5eP8iZouLRrExrsQyW4Jz4dXV6jV32Nwqjbc50YeyYVhbyOWbfBg4R3dtPg=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1745479645;
	h=DKIM-Signature:MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:
	 References:Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=5rtpMavMXXIb5oM6UX+ySi3Lo/7Is8wEMtUJa1KoLg8=;
	b=UobhDhLjX2JVIqnAbSqUGrXNZ6CDneU9LOo//rSXpSLL/2gCm2y4nbJq1ogc+CS6j2Mx
	 G+xftEJRmenJuw8qq1/H8uZ+Ne6iJqfsYtY7Gq/eKyiiKuvoRk/JylERsfo9ZE5kbqH9g
	 kzSVewTGBEUYUih7RpUK+e1NrZsB6Ja5rhNn+tBDwQkOaCd4FBYfCemag0vKRiFH32KQN
	 n8bkNkWtUU388d2kUvladYpcguBBjgrgKw63GY0O0UD1KCEvfOsgIfVewZ64HB3Oj70n3
	 9xCmqpFoTd48IY8fSF9fRnd+eSk/CBrxfo1B1eR2PChFXc0dvLHU6HgVupHiS9lXroV5W
	 b5TTo91V3umXPmpDXT87yWGOkspnpD8En7Rl/Z2cw0xq0kNZ8dnj1KBwScoZnN/TYlitp
	 lSXgDLMHA9tJ2tZDDhygkrg34Q1l9upGxgfD8C0fB7QDNkpD4fK4n0hIPlSsdZAnmZkgQ
	 +Prslr/yq0ZRAgQenFb6OAreLeEsYgzoFYNpIovCZ/gIubMETcxvHYfxLjUlOL/AOzDwc
	 f2ZWArjOsLlspq7K+Z25SE2HjBK4EQ1c847j2wnbtPNR9cJdoHy5m7iA7O4yWUQ9ZzCeA
	 vOBzzuNjTJWgkh1+DvO8qDRjyqxUWUUGOVO3fYVYNlSnhQTA/3umpzRvgFzXa2k=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1745479645; bh=ASImTAl42QyOLbKHP+xJl0WaLzR5xuolQ5w0qxyGNSw=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=tjLVVU14MuAEWXIL4rdQBb1ycrernElKZCxfT9egETuWnqPgfkeF0K+n7dCPfXcMR
	 wPfhFjm5IeCeyuRj0A0+6bnvS2QVnYqk2URF/oQWgD6Z4ykECkGs/qeH+s4VdBOQxe
	 gNEJIp8u4GigLsaDOZ0sT0nYQrLohyES+fjsks/PMKoNX7q2BuruKUyt2CEDhpzNB5
	 0cxI0ySfqFv9ljfxnoGceQiWKqlLGvSMqHBF8tR49soAyvpN1aEscGnIVqOVQRQyzg
	 CQSynDDlhyK6VdxTnIpT9yM8v7ReTpxVuZ3XEyOCqqPr2s1AWqeRwACHT/Rdr+bpZ1
	 bVads0Li0HIwQ==
MIME-Version: 1.0
Date: Thu, 24 Apr 2025 09:27:25 +0200
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org, michal.orzel@amd.com,
 xenia.ragiadakou@amd.com, ayan.kumar.halder@amd.com, consulting@bugseng.com,
 Doug Goldstein <cardoe@cardoe.com>, Anthony PERARD
 <anthony.perard@vates.tech>, Jan Beulich <jbeulich@suse.com>, Julien Grall
 <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Subject: Re: [XEN PATCH] misra: update list of GCC extensions used by Xen
In-Reply-To: <76b7438b-9459-4f41-ab18-b777f7b3fcff@citrix.com>
References: <da508095ef2ac0024dfe9f51d9da976da0eaead7.1745441038.git.nicola.vetrini@bugseng.com>
 <alpine.DEB.2.22.394.2504231354540.785180@ubuntu-linux-20-04-desktop>
 <76b7438b-9459-4f41-ab18-b777f7b3fcff@citrix.com>
Message-ID: <1d362e4df1e0b483c31fdab4384f57f0@bugseng.com>
X-Sender: nicola.vetrini@bugseng.com
Organization: BUGSENG s.r.l.
Content-Type: text/plain; charset=UTF-8;
 format=flowed
Content-Transfer-Encoding: 8bit

On 2025-04-24 00:46, Andrew Cooper wrote:
> On 23/04/2025 9:55 pm, Stefano Stabellini wrote:
>> On Wed, 23 Apr 2025, Nicola Vetrini wrote:
>>> __inline was not mentioned in C-language-toolchain.rst, while
>>> __inline__ is not used in code under xen/. __inline is kept because 
>>> it
>>> may be used in Xen. The ECLAIR configuration is now consistent with 
>>> the
>>> documented extensions in the rst file.
>>> 
>>> No functional change.
>>> 
>>> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
>> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
> 
> Hmm.  f96e2f64576cd
> 
> I take it that patch shouldn't have gone in then?
> 
> Regardless, now that we're putting it back in, we should put in both
> __inline and __inline__, so as not to need to come back and repeat this
> patch again.
> 
> ~Andrew

Did I miss the addition of __inline__ here?
https://lore.kernel.org/xen-devel/20250422113957.1289290-1-andrew.cooper3@citrix.com/

No issue with adjusting it as you wrote, but my understanding was that 
only __inline will reenter the codebase.

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


From xen-devel-bounces@lists.xenproject.org Thu Apr 24 07:44:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Apr 2025 07:44:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.965937.1356312 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7rFv-0005jk-01; Thu, 24 Apr 2025 07:44:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 965937.1356312; Thu, 24 Apr 2025 07:44:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7rFu-0005jd-Sg; Thu, 24 Apr 2025 07:44:22 +0000
Received: by outflank-mailman (input) for mailman id 965937;
 Thu, 24 Apr 2025 07:44: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=hkPj=XK=linux.intel.com=dapeng1.mi@srs-se1.protection.inumbo.net>)
 id 1u7rFt-0005jW-3d
 for xen-devel@lists.xenproject.org; Thu, 24 Apr 2025 07:44:21 +0000
Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.9])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id eccb3249-20df-11f0-9eb1-5ba50f476ded;
 Thu, 24 Apr 2025 09:44:18 +0200 (CEST)
Received: from orviesa009.jf.intel.com ([10.64.159.149])
 by fmvoesa103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 24 Apr 2025 00:44:16 -0700
Received: from dapengmi-mobl1.ccr.corp.intel.com (HELO [10.124.245.128])
 ([10.124.245.128])
 by orviesa009-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 24 Apr 2025 00:43:59 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: eccb3249-20df-11f0-9eb1-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1745480659; x=1777016659;
  h=message-id:date:mime-version:subject:to:cc:references:
   from:in-reply-to:content-transfer-encoding;
  bh=VnZ0ZKETltelPggcEVrc3mWHY8TQu/tmfh9OEL4vmMI=;
  b=mdShgoTrla7KC8hEZsGlbhj8X/nFY7gUsqh8qDcmvDFVhJxVxefTZdbk
   GDX4OPjRNjb3MNsNzYIZgh80ed4mPXW8gJ3ZKiGKvW1pU7jEOh0/6qUIR
   0BQUg6xaZ7DzuEhm2xC1l3OrOSbHDMTb6pmoTmDLdQii65/kyoZs9kjKh
   VcYjikmKOmRFPxnd5zQprjobghxKFgJ1vozcN8TXSzwd8SGZ9MpA3Neh1
   HxMqrM8v90KV307ETIM6dRYQh7wjU+jnrp4UZbqp+7mFR0tMvWfwSXxdO
   To5a58XC6o/GP6R/e74r3iI2LIM2QoluS4hpGoxZfDGjL8Az+sXZpazx5
   A==;
X-CSE-ConnectionGUID: 2QuWcQJjSxmuny76cvpgyg==
X-CSE-MsgGUID: XXix71nJTT+DXb42lUmjJg==
X-IronPort-AV: E=McAfee;i="6700,10204,11412"; a="57741529"
X-IronPort-AV: E=Sophos;i="6.15,235,1739865600"; 
   d="scan'208";a="57741529"
X-CSE-ConnectionGUID: MELztBFPQQ2RK/E68kIfoA==
X-CSE-MsgGUID: h1WZ0YKEQFuFYSt/MxBHnQ==
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="6.15,235,1739865600"; 
   d="scan'208";a="132274496"
Message-ID: <02689dad-a10a-41a8-ad7e-e92d0a8d7e76@linux.intel.com>
Date: Thu, 24 Apr 2025 15:43:56 +0800
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH v2 12/34] x86/msr: Remove pmu_msr_{read,write}()
To: Xin Li <xin@zytor.com>, linux-kernel@vger.kernel.org,
 kvm@vger.kernel.org, linux-perf-users@vger.kernel.org,
 linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
 linux-pm@vger.kernel.org, linux-edac@vger.kernel.org,
 xen-devel@lists.xenproject.org, linux-acpi@vger.kernel.org,
 linux-hwmon@vger.kernel.org, netdev@vger.kernel.org,
 platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
 dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com, acme@kernel.org,
 jgross@suse.com, andrew.cooper3@citrix.com, peterz@infradead.org,
 namhyung@kernel.org, mark.rutland@arm.com,
 alexander.shishkin@linux.intel.com, jolsa@kernel.org, irogers@google.com,
 adrian.hunter@intel.com, kan.liang@linux.intel.com, wei.liu@kernel.org,
 ajay.kaher@broadcom.com, bcm-kernel-feedback-list@broadcom.com,
 tony.luck@intel.com, pbonzini@redhat.com, vkuznets@redhat.com,
 seanjc@google.com, luto@kernel.org, boris.ostrovsky@oracle.com,
 kys@microsoft.com, haiyangz@microsoft.com, decui@microsoft.com
References: <20250422082216.1954310-1-xin@zytor.com>
 <20250422082216.1954310-13-xin@zytor.com>
 <7c44da88-72bb-4d1f-9f38-bf0e7e79b7a0@linux.intel.com>
 <45f95d01-4b98-457c-8272-c396a52b3844@zytor.com>
Content-Language: en-US
From: "Mi, Dapeng" <dapeng1.mi@linux.intel.com>
In-Reply-To: <45f95d01-4b98-457c-8272-c396a52b3844@zytor.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit


On 4/24/2025 3:21 PM, Xin Li wrote:
> On 4/23/2025 11:33 PM, Mi, Dapeng wrote:
>> Could we merge this patch and previous patch into a single patch? It's
>> unnecessary to just modify the pmu_msr_read()/pmu_msr_write() in previous
>> patch and delete them immediately. It just wastes the effort.
> No, it's not wasting effort, it's for easier review.
>
> Look at this patch, you can easily tell that pmu_msr_read() and
> pmu_msr_write() are nothing more than pmu_msr_chk_emulated(), and
> then removing them makes a lot of sense.

These 2 patches are not complicated, it won't be difficult to review if
merging them into one as long as the commit message mentions it clearly.
Anyway I'm fine if you hope to keep them into two patches.




From xen-devel-bounces@lists.xenproject.org Thu Apr 24 07:51:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Apr 2025 07:51:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.965946.1356322 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7rMv-0007mk-MP; Thu, 24 Apr 2025 07:51:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 965946.1356322; Thu, 24 Apr 2025 07:51: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 1u7rMv-0007mc-Ih; Thu, 24 Apr 2025 07:51:37 +0000
Received: by outflank-mailman (input) for mailman id 965946;
 Thu, 24 Apr 2025 07:51: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=/BVb=XK=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u7rMu-0007mU-R4
 for xen-devel@lists.xenproject.org; Thu, 24 Apr 2025 07:51:36 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f189b5a7-20e0-11f0-9eb1-5ba50f476ded;
 Thu, 24 Apr 2025 09:51:35 +0200 (CEST)
Received: from [192.168.7.202] ([71.202.166.45]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53O7ol73715410
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NO);
 Thu, 24 Apr 2025 00:50:48 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f189b5a7-20e0-11f0-9eb1-5ba50f476ded
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53O7ol73715410
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745481052;
	bh=7hQKfoI8brTvc968M0/2fCuMOAxvohLcq5efGDsVPv8=;
	h=Date:Subject:To:Cc:References:From:In-Reply-To:From;
	b=HHQVgllfbBgTU8HpLd8YZoVvIwcgL/kOSRt4qdiUm5wj/uJtOGXaMBcpMCnwKbEF9
	 rG2estbhWXCsJa81wxO7BDezD81YoepsQLWPz0FadakNwpvwpNH3bAN/wIw2h1kwT1
	 XOreUorDjfaGzeHD4n8vPeiL9yC6tVs91R1ZiwGY2Fzo7dgNYxzGAp5Lhj+plOPcwS
	 JyWCZfR55+mA5Di7zo/a1t+g+QvX6CHHkVSiWEXyL06p66bw2FbQf379OEyv/e0oeD
	 S4rpgqUTn5Yxq97NCc2Ns/61Xf5EyFy7FXTRn6rJLWh/sWLE2NM1er+SCkbgBAJWqH
	 5gggmVYYw0CGA==
Message-ID: <f207c797-567f-426c-9fa5-27792d3478a8@zytor.com>
Date: Thu, 24 Apr 2025 00:50:46 -0700
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH v2 12/34] x86/msr: Remove pmu_msr_{read,write}()
To: "Mi, Dapeng" <dapeng1.mi@linux.intel.com>, linux-kernel@vger.kernel.org,
        kvm@vger.kernel.org, linux-perf-users@vger.kernel.org,
        linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
        linux-pm@vger.kernel.org, linux-edac@vger.kernel.org,
        xen-devel@lists.xenproject.org, linux-acpi@vger.kernel.org,
        linux-hwmon@vger.kernel.org, netdev@vger.kernel.org,
        platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        acme@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com,
        peterz@infradead.org, namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com
References: <20250422082216.1954310-1-xin@zytor.com>
 <20250422082216.1954310-13-xin@zytor.com>
 <7c44da88-72bb-4d1f-9f38-bf0e7e79b7a0@linux.intel.com>
 <45f95d01-4b98-457c-8272-c396a52b3844@zytor.com>
 <02689dad-a10a-41a8-ad7e-e92d0a8d7e76@linux.intel.com>
Content-Language: en-US
From: Xin Li <xin@zytor.com>
Autocrypt: addr=xin@zytor.com; keydata=
 xsDNBGUPz1cBDACS/9yOJGojBFPxFt0OfTWuMl0uSgpwk37uRrFPTTLw4BaxhlFL0bjs6q+0
 2OfG34R+a0ZCuj5c9vggUMoOLdDyA7yPVAJU0OX6lqpg6z/kyQg3t4jvajG6aCgwSDx5Kzg5
 Rj3AXl8k2wb0jdqRB4RvaOPFiHNGgXCs5Pkux/qr0laeFIpzMKMootGa4kfURgPhRzUaM1vy
 bsMsL8vpJtGUmitrSqe5dVNBH00whLtPFM7IbzKURPUOkRRiusFAsw0a1ztCgoFczq6VfAVu
 raTye0L/VXwZd+aGi401V2tLsAHxxckRi9p3mc0jExPc60joK+aZPy6amwSCy5kAJ/AboYtY
 VmKIGKx1yx8POy6m+1lZ8C0q9b8eJ8kWPAR78PgT37FQWKYS1uAroG2wLdK7FiIEpPhCD+zH
 wlslo2ETbdKjrLIPNehQCOWrT32k8vFNEMLP5G/mmjfNj5sEf3IOKgMTMVl9AFjsINLHcxEQ
 6T8nGbX/n3msP6A36FDfdSEAEQEAAc0WWGluIExpIDx4aW5Aenl0b3IuY29tPsLBDQQTAQgA
 NxYhBIUq/WFSDTiOvUIqv2u9DlcdrjdRBQJlD89XBQkFo5qAAhsDBAsJCAcFFQgJCgsFFgID
 AQAACgkQa70OVx2uN1HUpgv/cM2fsFCQodLArMTX5nt9yqAWgA5t1srri6EgS8W3F+3Kitge
 tYTBKu6j5BXuXaX3vyfCm+zajDJN77JHuYnpcKKr13VcZi1Swv6Jx1u0II8DOmoDYLb1Q2ZW
 v83W55fOWJ2g72x/UjVJBQ0sVjAngazU3ckc0TeNQlkcpSVGa/qBIHLfZraWtdrNAQT4A1fa
 sWGuJrChBFhtKbYXbUCu9AoYmmbQnsx2EWoJy3h7OjtfFapJbPZql+no5AJ3Mk9eE5oWyLH+
 QWqtOeJM7kKvn/dBudokFSNhDUw06e7EoVPSJyUIMbYtUO7g2+Atu44G/EPP0yV0J4lRO6EA
 wYRXff7+I1jIWEHpj5EFVYO6SmBg7zF2illHEW31JAPtdDLDHYcZDfS41caEKOQIPsdzQkaQ
 oW2hchcjcMPAfyhhRzUpVHLPxLCetP8vrVhTvnaZUo0xaVYb3+wjP+D5j/3+hwblu2agPsaE
 vgVbZ8Fx3TUxUPCAdr/p73DGg57oHjgezsDNBGUPz1gBDAD4Mg7hMFRQqlzotcNSxatlAQNL
 MadLfUTFz8wUUa21LPLrHBkUwm8RujehJrzcVbPYwPXIO0uyL/F///CogMNx7Iwo6by43KOy
 g89wVFhyy237EY76j1lVfLzcMYmjBoTH95fJC/lVb5Whxil6KjSN/R/y3jfG1dPXfwAuZ/4N
 cMoOslWkfZKJeEut5aZTRepKKF54T5r49H9F7OFLyxrC/uI9UDttWqMxcWyCkHh0v1Di8176
 jjYRNTrGEfYfGxSp+3jYL3PoNceIMkqM9haXjjGl0W1B4BidK1LVYBNov0rTEzyr0a1riUrp
 Qk+6z/LHxCM9lFFXnqH7KWeToTOPQebD2B/Ah5CZlft41i8L6LOF/LCuDBuYlu/fI2nuCc8d
 m4wwtkou1Y/kIwbEsE/6RQwRXUZhzO6llfoN96Fczr/RwvPIK5SVMixqWq4QGFAyK0m/1ap4
 bhIRrdCLVQcgU4glo17vqfEaRcTW5SgX+pGs4KIPPBE5J/ABD6pBnUUAEQEAAcLA/AQYAQgA
 JhYhBIUq/WFSDTiOvUIqv2u9DlcdrjdRBQJlD89ZBQkFo5qAAhsMAAoJEGu9DlcdrjdR4C0L
 /RcjolEjoZW8VsyxWtXazQPnaRvzZ4vhmGOsCPr2BPtMlSwDzTlri8BBG1/3t/DNK4JLuwEj
 OAIE3fkkm+UG4Kjud6aNeraDI52DRVCSx6xff3bjmJsJJMb12mWglN6LjdF6K+PE+OTJUh2F
 dOhslN5C2kgl0dvUuevwMgQF3IljLmi/6APKYJHjkJpu1E6luZec/lRbetHuNFtbh3xgFIJx
 2RpgVDP4xB3f8r0I+y6ua+p7fgOjDLyoFjubRGed0Be45JJQEn7A3CSb6Xu7NYobnxfkwAGZ
 Q81a2XtvNS7Aj6NWVoOQB5KbM4yosO5+Me1V1SkX2jlnn26JPEvbV3KRFcwV5RnDxm4OQTSk
 PYbAkjBbm+tuJ/Sm+5Yp5T/BnKz21FoCS8uvTiziHj2H7Cuekn6F8EYhegONm+RVg3vikOpn
 gao85i4HwQTK9/D1wgJIQkdwWXVMZ6q/OALaBp82vQ2U9sjTyFXgDjglgh00VRAHP7u1Rcu4
 l75w1xInsg==
In-Reply-To: <02689dad-a10a-41a8-ad7e-e92d0a8d7e76@linux.intel.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 4/24/2025 12:43 AM, Mi, Dapeng wrote:
> These 2 patches are not complicated, it won't be difficult to review if
> merging them into one as long as the commit message mentions it clearly.
> Anyway I'm fine if you hope to keep them into two patches.

Simple Small Steps...


From xen-devel-bounces@lists.xenproject.org Thu Apr 24 07:59:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Apr 2025 07:59:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.965957.1356331 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7rUF-0000FN-AE; Thu, 24 Apr 2025 07:59:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 965957.1356331; Thu, 24 Apr 2025 07:59: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 1u7rUF-0000FG-7e; Thu, 24 Apr 2025 07:59:11 +0000
Received: by outflank-mailman (input) for mailman id 965957;
 Thu, 24 Apr 2025 07:59: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=CnO2=XK=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u7rUD-0000FA-Vq
 for xen-devel@lists.xenproject.org; Thu, 24 Apr 2025 07:59:10 +0000
Received: from mail-pj1-x102e.google.com (mail-pj1-x102e.google.com
 [2607:f8b0:4864:20::102e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ffa1534b-20e1-11f0-9eb1-5ba50f476ded;
 Thu, 24 Apr 2025 09:59:08 +0200 (CEST)
Received: by mail-pj1-x102e.google.com with SMTP id
 98e67ed59e1d1-2ff799d99dcso696676a91.1
 for <xen-devel@lists.xenproject.org>; Thu, 24 Apr 2025 00:59:08 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 98e67ed59e1d1-309d5e18130sm3377973a91.1.2025.04.24.00.59.05
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 24 Apr 2025 00:59: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: ffa1534b-20e1-11f0-9eb1-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745481547; x=1746086347; 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=XHu2UgqDxCoVzYZt9cG62fKHZj5Tqst6+VKAMkbT3fc=;
        b=DwGSTtVIIyni/pwPw+3xsbHP/w9OTR2uN08tPoVeYVV4lwS5PBzTZ4cQ06Uy/JHjsS
         +MSnWzwNSjSht6t9T4mFHgTi5Jcr7rMHWPuM0tjcqypzCope0yKjeE+ZJyXWA7nQ0F7M
         0BeFdYAts3mAw7Fndcmm2sPvJc+Nm6bInfxQk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745481547; x=1746086347;
        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=XHu2UgqDxCoVzYZt9cG62fKHZj5Tqst6+VKAMkbT3fc=;
        b=J22o/7q6RiMpaHySNVCft6DWFRFvsl1guxFqVZ4FnT53I5E7nPa6DTVlXwDr8xkZBf
         TI3c0JAyEcc2yCeXzr36l2vOf2w8bYTtDiILbCGcqazzhqpCGXV95e3uwd9sTMPjFbY9
         yhxDGd9koEnrkNAu/E2ILqqBXz7JL0CL5ZxehCpuDOBRbzNoH8MNlBdQbnKGZjgPRh2o
         I8oG4ZuPa81L39LF+jeLdYBGanO/8fGisBOs6GStZ/0ItJ7cJxijr1A+LWtPAp5e7mNH
         9H5lNyuBNZKVOor5u+IntULqK9y5YXll3xnYQV/OtFrYZTzwPn5xM9Ar+TBm53Zrmwe+
         5vzA==
X-Forwarded-Encrypted: i=1; AJvYcCUDNaiGQOP6+2ZI2JcSICtC3Ezi7LSFRNWzeBVqnG74wXdAJ8UHzcQUHqEnmOtNHTLEJXLnE9o9+e0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwC6iJanQddQQhkKdFZsfuuV8CItcRumwYOXtBgqhcem0f0a2EM
	tH3eY9UquK2pKfFgvBvzJSCpMlPYGWwywhvQVL8Onn5ilGfBEdXKt+T6Rny+KcM=
X-Gm-Gg: ASbGncsGi32lCADr31T5s+mIkbsqiA28AIlHBnK8EVEv0RtHBJKhMcVdwrMcqSDJ6oW
	XsIJgysTyrTFa9Y4GCfr/mlUS6NspTcRsXic62uf4ygKxX3oTPKyM6QdE7Uxkl/kMkIHDTZVkcA
	m9RdkYNnrrelyBXSSRYB0g1whH4IWxcrPo/VE775E25fb9C9FjluKHwRmEFshFlF14c4ZmyfkjY
	f7YbTqS2pcy8ZLZNEKHll2fAnI7osfUs9tBUfLoCjYIVsdPNo9bX61tjOFQq1F8RN3XO+pG6gEc
	TUBZce+WpD79+ytUTRm99XBR49DbujND8psXNi7egB/Blg==
X-Google-Smtp-Source: AGHT+IGCgHhrW31Pd6CgfpzX+ADejQHUxQ2kHW/zvbXh69X031MZskTFaBpRnqSGhToB1BqwAzuy/g==
X-Received: by 2002:a17:90b:51cb:b0:2fc:b40:339a with SMTP id 98e67ed59e1d1-309ed27a73dmr2886619a91.10.1745481547100;
        Thu, 24 Apr 2025 00:59:07 -0700 (PDT)
Date: Thu, 24 Apr 2025 09:59:00 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: "Lira, Victor M" <VictorM.Lira@amd.com>
Cc: Jason Andryuk <jason.andryuk@amd.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	xen-devel@lists.xenproject.org,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>, Xenia.Ragiadakou@amd.com,
	Alejandro.GarciaVallejo@amd.com
Subject: Re: [RFC] xen/x86: allow overlaps with non-RAM regions
Message-ID: <aAnvRMgJxAskbCtE@macbook.lan>
References: <alpine.DEB.2.22.394.2504031755440.3529306@ubuntu-linux-20-04-desktop>
 <Z--0USril0UIhR4R@macbook.lan>
 <3c5dfd26-3c12-498b-aca4-0beac4e991a5@amd.com>
 <Z_jFSb2-efexUNlL@macbook.lan>
 <9ed89e50-c645-407d-80b4-5b78cb6e36fa@amd.com>
 <Z_zGdE91KwlYxu_A@macbook.lan>
 <ce06ec74-1a73-4a02-87fc-3e829399cc77@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <ce06ec74-1a73-4a02-87fc-3e829399cc77@amd.com>

On Wed, Apr 23, 2025 at 04:51:16PM -0700, Lira, Victor M wrote:
> [    4.570354] Intel(R) 2.5G Ethernet Linux Driver
> 
> [    4.579535] Copyright(c) 2018 Intel Corporation.
> 
> [    4.588898] sky2: driver version 1.30
> 
> (XEN) [   21.644361] d0v3 unable to fixup memory read from 0xfe91000c size 4: -1

This fault is unexpected, according to the identity mappings done at
domain build time:

d0: identity mappings for IOMMU:
 [00000000a0, 00000000ff] RW
 [0000009bff, 0000009fff] RW
 [00000cabc9, 00000cc14c] RW
 [00000cc389, 00000cc389] RW
 [00000cc70a, 00000cd1fe] RW
 [00000ce000, 00000cffff] RW
 [00000fd000, 00000fd2ff] RW

The page at 0xfe910 should be covered by the last range above.  I
think we have a bug somewhere that unexpectedly unmaps that address.

Can you try the Xen patch below and paste the output?  It should print
p2m modifications of the 0xfe910 gfn, so we can spot who/when removes
that mapping.

Thanks, Roger.
---
diff --git a/xen/arch/x86/mm/p2m-pt.c b/xen/arch/x86/mm/p2m-pt.c
index 666abd46be16..c4bb2cb01422 100644
--- a/xen/arch/x86/mm/p2m-pt.c
+++ b/xen/arch/x86/mm/p2m-pt.c
@@ -591,6 +591,14 @@ p2m_pt_set_entry(struct p2m_domain *p2m, gfn_t gfn_, mfn_t mfn,
     unsigned int flags, iommu_old_flags = 0;
     unsigned long old_mfn = mfn_x(INVALID_MFN);
 
+    if ( is_hardware_domain(d) &&
+         0xfe910 >= gfn && 0xfe910 < gfn + (1 << page_order) )
+    {
+        printk("gfn %#lx mfn %#"PRI_mfn" type %u order %u\n",
+               gfn, mfn_x(mfn), p2mt, page_order);
+        WARN();
+    }
+
     if ( !sve )
         return -EOPNOTSUPP;
 


From xen-devel-bounces@lists.xenproject.org Thu Apr 24 08:07:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Apr 2025 08:07:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.965970.1356341 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7rcW-00031T-2a; Thu, 24 Apr 2025 08:07:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 965970.1356341; Thu, 24 Apr 2025 08: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 1u7rcV-00031M-WF; Thu, 24 Apr 2025 08:07:44 +0000
Received: by outflank-mailman (input) for mailman id 965970;
 Thu, 24 Apr 2025 08:07: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=/BVb=XK=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u7rcU-00031G-Gh
 for xen-devel@lists.xenproject.org; Thu, 24 Apr 2025 08:07:42 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2e41ce42-20e3-11f0-9ffb-bf95429c2676;
 Thu, 24 Apr 2025 10:07:36 +0200 (CEST)
Received: from [192.168.7.202] ([71.202.166.45]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53O86uOw731084
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NO);
 Thu, 24 Apr 2025 01:06:57 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2e41ce42-20e3-11f0-9ffb-bf95429c2676
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53O86uOw731084
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745482020;
	bh=KmEo1ZYQQDPe/eBHeAwtyK6uD2OsimPSMpYKwP9PF0M=;
	h=Date:Subject:To:Cc:References:From:In-Reply-To:From;
	b=LUn/Q21ek7qt428VJCVaK7r0J65rS474/tbeyN6jnxDuA4e+VPH4XEfI/OsSLUYBB
	 BvpRAzADaXbAdlHcAxsKfc87VmEQu4veJ4shAXxl6d+KfdMZGS/rDLljsWBue+tMlb
	 jvEyu1Yv4F+eoj5cW4qEigccihTAn74hoJfZFM3aAPaGNzM7K5G9tj8QnwXy8c/25/
	 yT845Q0l6v0MeAUuXA9Fh8iSxmX1i65xs7b1QnacLeCOR9am33RZQnJmKye1tVbACZ
	 56XAfIsHBaouAtfIE0fwp1tmTpu1+KQweyH6OVB1NQwNJmnyPtnyxqbNHrqwDH/2lO
	 6Ooz8AMRP9cKQ==
Message-ID: <bb8f6b85-4e7d-440a-a8c3-0e0da45864b8@zytor.com>
Date: Thu, 24 Apr 2025 01:06:56 -0700
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH v2 21/34] x86/msr: Utilize the alternatives mechanism
 to write MSR
To: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>,
        linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
        linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
        netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        acme@kernel.org, andrew.cooper3@citrix.com, peterz@infradead.org,
        namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com
References: <20250422082216.1954310-1-xin@zytor.com>
 <20250422082216.1954310-22-xin@zytor.com>
 <b2624e84-6fab-44a3-affc-ce0847cd3da4@suse.com>
 <f7198308-e8f8-4cc5-b884-24bc5f408a2a@zytor.com>
 <37c88ea3-dd24-4607-9ee1-0f19025aaef3@suse.com>
Content-Language: en-US
From: Xin Li <xin@zytor.com>
Autocrypt: addr=xin@zytor.com; keydata=
 xsDNBGUPz1cBDACS/9yOJGojBFPxFt0OfTWuMl0uSgpwk37uRrFPTTLw4BaxhlFL0bjs6q+0
 2OfG34R+a0ZCuj5c9vggUMoOLdDyA7yPVAJU0OX6lqpg6z/kyQg3t4jvajG6aCgwSDx5Kzg5
 Rj3AXl8k2wb0jdqRB4RvaOPFiHNGgXCs5Pkux/qr0laeFIpzMKMootGa4kfURgPhRzUaM1vy
 bsMsL8vpJtGUmitrSqe5dVNBH00whLtPFM7IbzKURPUOkRRiusFAsw0a1ztCgoFczq6VfAVu
 raTye0L/VXwZd+aGi401V2tLsAHxxckRi9p3mc0jExPc60joK+aZPy6amwSCy5kAJ/AboYtY
 VmKIGKx1yx8POy6m+1lZ8C0q9b8eJ8kWPAR78PgT37FQWKYS1uAroG2wLdK7FiIEpPhCD+zH
 wlslo2ETbdKjrLIPNehQCOWrT32k8vFNEMLP5G/mmjfNj5sEf3IOKgMTMVl9AFjsINLHcxEQ
 6T8nGbX/n3msP6A36FDfdSEAEQEAAc0WWGluIExpIDx4aW5Aenl0b3IuY29tPsLBDQQTAQgA
 NxYhBIUq/WFSDTiOvUIqv2u9DlcdrjdRBQJlD89XBQkFo5qAAhsDBAsJCAcFFQgJCgsFFgID
 AQAACgkQa70OVx2uN1HUpgv/cM2fsFCQodLArMTX5nt9yqAWgA5t1srri6EgS8W3F+3Kitge
 tYTBKu6j5BXuXaX3vyfCm+zajDJN77JHuYnpcKKr13VcZi1Swv6Jx1u0II8DOmoDYLb1Q2ZW
 v83W55fOWJ2g72x/UjVJBQ0sVjAngazU3ckc0TeNQlkcpSVGa/qBIHLfZraWtdrNAQT4A1fa
 sWGuJrChBFhtKbYXbUCu9AoYmmbQnsx2EWoJy3h7OjtfFapJbPZql+no5AJ3Mk9eE5oWyLH+
 QWqtOeJM7kKvn/dBudokFSNhDUw06e7EoVPSJyUIMbYtUO7g2+Atu44G/EPP0yV0J4lRO6EA
 wYRXff7+I1jIWEHpj5EFVYO6SmBg7zF2illHEW31JAPtdDLDHYcZDfS41caEKOQIPsdzQkaQ
 oW2hchcjcMPAfyhhRzUpVHLPxLCetP8vrVhTvnaZUo0xaVYb3+wjP+D5j/3+hwblu2agPsaE
 vgVbZ8Fx3TUxUPCAdr/p73DGg57oHjgezsDNBGUPz1gBDAD4Mg7hMFRQqlzotcNSxatlAQNL
 MadLfUTFz8wUUa21LPLrHBkUwm8RujehJrzcVbPYwPXIO0uyL/F///CogMNx7Iwo6by43KOy
 g89wVFhyy237EY76j1lVfLzcMYmjBoTH95fJC/lVb5Whxil6KjSN/R/y3jfG1dPXfwAuZ/4N
 cMoOslWkfZKJeEut5aZTRepKKF54T5r49H9F7OFLyxrC/uI9UDttWqMxcWyCkHh0v1Di8176
 jjYRNTrGEfYfGxSp+3jYL3PoNceIMkqM9haXjjGl0W1B4BidK1LVYBNov0rTEzyr0a1riUrp
 Qk+6z/LHxCM9lFFXnqH7KWeToTOPQebD2B/Ah5CZlft41i8L6LOF/LCuDBuYlu/fI2nuCc8d
 m4wwtkou1Y/kIwbEsE/6RQwRXUZhzO6llfoN96Fczr/RwvPIK5SVMixqWq4QGFAyK0m/1ap4
 bhIRrdCLVQcgU4glo17vqfEaRcTW5SgX+pGs4KIPPBE5J/ABD6pBnUUAEQEAAcLA/AQYAQgA
 JhYhBIUq/WFSDTiOvUIqv2u9DlcdrjdRBQJlD89ZBQkFo5qAAhsMAAoJEGu9DlcdrjdR4C0L
 /RcjolEjoZW8VsyxWtXazQPnaRvzZ4vhmGOsCPr2BPtMlSwDzTlri8BBG1/3t/DNK4JLuwEj
 OAIE3fkkm+UG4Kjud6aNeraDI52DRVCSx6xff3bjmJsJJMb12mWglN6LjdF6K+PE+OTJUh2F
 dOhslN5C2kgl0dvUuevwMgQF3IljLmi/6APKYJHjkJpu1E6luZec/lRbetHuNFtbh3xgFIJx
 2RpgVDP4xB3f8r0I+y6ua+p7fgOjDLyoFjubRGed0Be45JJQEn7A3CSb6Xu7NYobnxfkwAGZ
 Q81a2XtvNS7Aj6NWVoOQB5KbM4yosO5+Me1V1SkX2jlnn26JPEvbV3KRFcwV5RnDxm4OQTSk
 PYbAkjBbm+tuJ/Sm+5Yp5T/BnKz21FoCS8uvTiziHj2H7Cuekn6F8EYhegONm+RVg3vikOpn
 gao85i4HwQTK9/D1wgJIQkdwWXVMZ6q/OALaBp82vQ2U9sjTyFXgDjglgh00VRAHP7u1Rcu4
 l75w1xInsg==
In-Reply-To: <37c88ea3-dd24-4607-9ee1-0f19025aaef3@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 4/23/2025 9:05 AM, Jürgen Groß wrote:
>> It's not a major change, but when it is patched to use the immediate 
>> form MSR write instruction, it's straightforwardly streamlined.
> 
> It should be rather easy to switch the current wrmsr/rdmsr paravirt 
> patching
> locations to use the rdmsr/wrmsr instructions instead of doing a call to
> native_*msr().
> 
> The case of the new immediate form could be handled the same way.

Actually, that is how we get this patch with the existing alternatives
infrastructure.  And we took a step further to also remove the pv_ops
MSR APIs...

It looks to me that you want to add a new facility to the alternatives
infrastructure first?


>>> Only the "paravirt" term has been eliminated.
>>
>> Yes.
>>
>> But a PV guest doesn't operate at the highest privilege level, which
>> means MSR instructions typically result in a #GP fault.  I actually 
>> think the pv_ops MSR APIs are unnecessary because of this inherent
>> limitation.
>>
>> Looking at the Xen MSR code, except PMU and just a few MSRs, it falls
>> back to executes native MSR instructions.  As MSR instructions trigger
>> #GP, Xen takes control and handles them in 2 ways:
>>
>>    1) emulate (or ignore) a MSR operation and skip the guest instruction.
>>
>>    2) inject the #GP back to guest OS and let its #GP handler handle it.
>>       But Linux MSR exception handler just ignores the MSR instruction
>>       (MCE MSR exception will panic).
>>
>> So why not let Xen handle all the details which it already tries to do?
> 
> Some MSRs are not handled that way, but via a kernel internal emulation.
> And those are handled that way mostly due to performance reasons. And some
> need special treatment.
> 
>> (Linux w/ such a change may not be able to run on old Xen hypervisors.)
> 
> Yes, and this is something to avoid.
> 
> And remember that Linux isn't the only PV-mode guest existing.
> 
>> BTW, if performance is a concern, writes to MSR_KERNEL_GS_BASE and
>> MSR_GS_BASE anyway are hpyercalls into Xen.
> 
> Yes, and some other MSR writes are just NOPs with Xen-PV.
> 

I will do some cleanup and refactor first.

BTW, at least we can merge the safe() APIs into the non-safe() ones.

Thanks!
     Xin


From xen-devel-bounces@lists.xenproject.org Thu Apr 24 08:14:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Apr 2025 08:14:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.965984.1356351 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7rj0-0005KY-Q4; Thu, 24 Apr 2025 08:14:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 965984.1356351; Thu, 24 Apr 2025 08:14: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 1u7rj0-0005KR-NY; Thu, 24 Apr 2025 08:14:26 +0000
Received: by outflank-mailman (input) for mailman id 965984;
 Thu, 24 Apr 2025 08:14: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=RfDJ=XK=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1u7riz-0005KL-Lc
 for xen-devel@lists.xenproject.org; Thu, 24 Apr 2025 08:14:25 +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 217e76ce-20e4-11f0-9ffb-bf95429c2676;
 Thu, 24 Apr 2025 10:14:23 +0200 (CEST)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-43edecbfb46so4432295e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 24 Apr 2025 01:14:23 -0700 (PDT)
Received: from ?IPV6:2003:e5:870f:e000:6c64:75fd:2c51:3fef?
 (p200300e5870fe0006c6475fd2c513fef.dip0.t-ipconnect.de.
 [2003:e5:870f:e000:6c64:75fd:2c51:3fef])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4409d2bfa93sm10528525e9.37.2025.04.24.01.14.21
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 24 Apr 2025 01:14:22 -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: 217e76ce-20e4-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745482463; x=1746087263; 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=008EJSG/phqGVPmxi0nDH3NCIHBvP55QLSxmr4tKYHM=;
        b=O+zyb46tl5IRV0ab/UlX29Dgj8ugoX5RBknK+7OCh/4p8Yxv2md1Qxjr0VLg1dCpny
         iJ+c7EX+4DDFb3nIZ+k5DUs7cssRnN0y5RwZ3tuh706Al/+X6XrWvyOwgB/m+eNCvBDH
         s1wxK3Lv72jmWLT9X8F14nUjLuajM4FvVjvOzstRBWcWHHXVBeHGf3kUln/MmlcAtesp
         k/e/UnFyEmTW7EPxlq/0uBvnNXu15jq22eXONFEZMjaMycT+q5+OINsmf2jZGQNwn168
         NnwFU3VnbvBfWR9x6/T2HxSulu4xuXQ8HInkGcQvmQMx76nDjBSfLknyWWzN20REotAb
         NB2g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745482463; x=1746087263;
        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=008EJSG/phqGVPmxi0nDH3NCIHBvP55QLSxmr4tKYHM=;
        b=OdtGhEDqY1sN1DusdDeCg95nU+x6lIv4tSHc+5z1qwj3X52lSiGpASG7GK9/BtIo6v
         rNUL60phzRz2/9imHducSt1RTdaViViaC4aCmqxMKdK4qo2dWX4xWNH3c7BwTRDI8its
         3daK4C2zo6ubv3qBGH4od11guVJpDD5ip6BKnkZR4CIlvRqWW89lDb6ppdFtKqBw6j5x
         weKo78ydb64vTgYujBsHXOawCD6BphuHls5LYv3XJBsXVuvxohAL2vbEiYg/A8Esh9xl
         caPSciINs0mB7m/PrU3nfp2sFxG1ylJ9OgwOmn7ZL9p0Z6B6klIeaN9isnfFqB6r7Tbk
         pKDw==
X-Forwarded-Encrypted: i=1; AJvYcCWp+qulfYgcxXEE+DDMEiJxUs5wJ9C02EUea6I0nwyBlfYwBT++0Nwrj3cdiLfCMAx/EG2f1G/nLT0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzokT2YlPSiAcY1bOh+o2hI30rhxaf1vJYJ+oUwxbrj4p7k5XpP
	JK+9PAIACwkfo2JxF7uHvB+2EBJsfjcXSa9AdDL5FHzn+iOkaLpRqH1t9FNBg7c=
X-Gm-Gg: ASbGncsZh9gJRi21y35hQM4iIoc/ZdmFmmksa9aK7qnL7kbXH3UKNiTAX7unKMSdV8l
	Lb3t1dhXePAGcZeRrZDi2PSqxqwZDhOGXxibU7IXJ7KwQPoKKwF8sew82+7GkXnAtMKQ0307BD2
	bP+MhMrnxFV5V13RCMOMYpO/dwd9FJFBBap6AfryA70U4n7eo0E4Ly3WNPml60GN5Ilp46cMbg/
	mRkyk27TDa+14Qgi0NSLRdGcNW9JC0NXT3O9jWRlXLrLQTutl7gYl3n4J+OmyWW65QgOAz/PcsR
	CG8FiEfblgWvpn6g3sYf6Ad9WChnBvAuqkBNxUgqvCUafuR9S+dWXVxamzo7yE+1VtOKJwwB3Wb
	HHIp7Hn7DFw+U0bPnGG34huXSGRGsjIDsJ5/nlsXNH6qBRYsh9XfPyABhU8eOB1SENg==
X-Google-Smtp-Source: AGHT+IFyv2kCFIwtSgJfhMLoeL4umabM8GMXtTutcFH/tZ4GaYnDHHb5JDeYCLMrA1sChvoEPbh09w==
X-Received: by 2002:a05:600c:1d03:b0:43d:db5:7b1a with SMTP id 5b1f17b1804b1-4409bd2225dmr12614855e9.12.1745482462951;
        Thu, 24 Apr 2025 01:14:22 -0700 (PDT)
Message-ID: <0cdc6e9d-88eb-4ead-8d55-985474257d53@suse.com>
Date: Thu, 24 Apr 2025 10:14:20 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH v2 21/34] x86/msr: Utilize the alternatives mechanism
 to write MSR
To: Xin Li <xin@zytor.com>, linux-kernel@vger.kernel.org,
 kvm@vger.kernel.org, linux-perf-users@vger.kernel.org,
 linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
 linux-pm@vger.kernel.org, linux-edac@vger.kernel.org,
 xen-devel@lists.xenproject.org, linux-acpi@vger.kernel.org,
 linux-hwmon@vger.kernel.org, netdev@vger.kernel.org,
 platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
 dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com, acme@kernel.org,
 andrew.cooper3@citrix.com, peterz@infradead.org, namhyung@kernel.org,
 mark.rutland@arm.com, alexander.shishkin@linux.intel.com, jolsa@kernel.org,
 irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
 wei.liu@kernel.org, ajay.kaher@broadcom.com,
 bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
 pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
 luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
 haiyangz@microsoft.com, decui@microsoft.com
References: <20250422082216.1954310-1-xin@zytor.com>
 <20250422082216.1954310-22-xin@zytor.com>
 <b2624e84-6fab-44a3-affc-ce0847cd3da4@suse.com>
 <f7198308-e8f8-4cc5-b884-24bc5f408a2a@zytor.com>
 <37c88ea3-dd24-4607-9ee1-0f19025aaef3@suse.com>
 <bb8f6b85-4e7d-440a-a8c3-0e0da45864b8@zytor.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: <bb8f6b85-4e7d-440a-a8c3-0e0da45864b8@zytor.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------VMSl19Ws92VaJ19wHUdCoQEK"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------VMSl19Ws92VaJ19wHUdCoQEK
Content-Type: multipart/mixed; boundary="------------0vp5F0mv6hCcRHQUu1aj0a9v";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Xin Li <xin@zytor.com>, linux-kernel@vger.kernel.org,
 kvm@vger.kernel.org, linux-perf-users@vger.kernel.org,
 linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
 linux-pm@vger.kernel.org, linux-edac@vger.kernel.org,
 xen-devel@lists.xenproject.org, linux-acpi@vger.kernel.org,
 linux-hwmon@vger.kernel.org, netdev@vger.kernel.org,
 platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
 dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com, acme@kernel.org,
 andrew.cooper3@citrix.com, peterz@infradead.org, namhyung@kernel.org,
 mark.rutland@arm.com, alexander.shishkin@linux.intel.com, jolsa@kernel.org,
 irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
 wei.liu@kernel.org, ajay.kaher@broadcom.com,
 bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
 pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
 luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
 haiyangz@microsoft.com, decui@microsoft.com
Message-ID: <0cdc6e9d-88eb-4ead-8d55-985474257d53@suse.com>
Subject: Re: [RFC PATCH v2 21/34] x86/msr: Utilize the alternatives mechanism
 to write MSR
References: <20250422082216.1954310-1-xin@zytor.com>
 <20250422082216.1954310-22-xin@zytor.com>
 <b2624e84-6fab-44a3-affc-ce0847cd3da4@suse.com>
 <f7198308-e8f8-4cc5-b884-24bc5f408a2a@zytor.com>
 <37c88ea3-dd24-4607-9ee1-0f19025aaef3@suse.com>
 <bb8f6b85-4e7d-440a-a8c3-0e0da45864b8@zytor.com>
In-Reply-To: <bb8f6b85-4e7d-440a-a8c3-0e0da45864b8@zytor.com>

--------------0vp5F0mv6hCcRHQUu1aj0a9v
Content-Type: multipart/mixed; boundary="------------0yeVN4sI0bLxwrBqbg5RE1SY"

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

T24gMjQuMDQuMjUgMTA6MDYsIFhpbiBMaSB3cm90ZToNCj4gT24gNC8yMy8yMDI1IDk6MDUg
QU0sIErDvHJnZW4gR3Jvw58gd3JvdGU6DQo+Pj4gSXQncyBub3QgYSBtYWpvciBjaGFuZ2Us
IGJ1dCB3aGVuIGl0IGlzIHBhdGNoZWQgdG8gdXNlIHRoZSBpbW1lZGlhdGUgZm9ybSBNU1Ig
DQo+Pj4gd3JpdGUgaW5zdHJ1Y3Rpb24sIGl0J3Mgc3RyYWlnaHRmb3J3YXJkbHkgc3RyZWFt
bGluZWQuDQo+Pg0KPj4gSXQgc2hvdWxkIGJlIHJhdGhlciBlYXN5IHRvIHN3aXRjaCB0aGUg
Y3VycmVudCB3cm1zci9yZG1zciBwYXJhdmlydCBwYXRjaGluZw0KPj4gbG9jYXRpb25zIHRv
IHVzZSB0aGUgcmRtc3Ivd3Jtc3IgaW5zdHJ1Y3Rpb25zIGluc3RlYWQgb2YgZG9pbmcgYSBj
YWxsIHRvDQo+PiBuYXRpdmVfKm1zcigpLg0KPj4NCj4+IFRoZSBjYXNlIG9mIHRoZSBuZXcg
aW1tZWRpYXRlIGZvcm0gY291bGQgYmUgaGFuZGxlZCB0aGUgc2FtZSB3YXkuDQo+IA0KPiBB
Y3R1YWxseSwgdGhhdCBpcyBob3cgd2UgZ2V0IHRoaXMgcGF0Y2ggd2l0aCB0aGUgZXhpc3Rp
bmcgYWx0ZXJuYXRpdmVzDQo+IGluZnJhc3RydWN0dXJlLsKgIEFuZCB3ZSB0b29rIGEgc3Rl
cCBmdXJ0aGVyIHRvIGFsc28gcmVtb3ZlIHRoZSBwdl9vcHMNCj4gTVNSIEFQSXMuLi4NCg0K
QW5kIHRoaXMgaXMgd2hhdCBJJ20gcXVlc3Rpb25pbmcuIElNSE8gdGhpcyBhcHByb2FjaCBp
cyBhZGRpbmcgbW9yZQ0KY29kZSBieSByZW1vdmluZyB0aGUgcHZfb3BzIE1TUl9BUElzIGp1
c3QgYmVjYXVzZSAicHZfb3BzIGlzIGJhZCIuIEFuZA0KSSBiZWxpZXZlIG1vc3QgcmVmdXNh
bCBvZiBwdl9vcHMgaXMgYmFzZWQgb24gbm8gbG9uZ2VyIHZhbGlkIHJlYXNvbmluZy4NCg0K
PiBJdCBsb29rcyB0byBtZSB0aGF0IHlvdSB3YW50IHRvIGFkZCBhIG5ldyBmYWNpbGl0eSB0
byB0aGUgYWx0ZXJuYXRpdmVzDQo+IGluZnJhc3RydWN0dXJlIGZpcnN0Pw0KDQpXaHkgd291
bGQgd2UgbmVlZCBhIG5ldyBmYWNpbGl0eSBpbiB0aGUgYWx0ZXJuYXRpdmVzIGluZnJhc3Ry
dWN0dXJlPw0KDQoNCkp1ZXJnZW4NCg==
--------------0yeVN4sI0bLxwrBqbg5RE1SY
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-----

--------------0yeVN4sI0bLxwrBqbg5RE1SY--

--------------0vp5F0mv6hCcRHQUu1aj0a9v--

--------------VMSl19Ws92VaJ19wHUdCoQEK
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/Ey8FAmgJ8twFAwAAAAAACgkQsN6d1ii/Ey8k
sgf/bXb/yPNEYKqkydqe/bdDkpvmLpSFUpdHMovM4PRMGt6zioNmVWczEr+IQ53jJEK1EgOrz1V5
CSe5GF6AQ52FukYXR+nsdEhvJ3SQbHcC1jjQ0KBbi7qxCIl5hNUVmyEEjIxdE5u2TPCMWxoot6t1
yNRYVLJOfCGc+rtLzkqT+DCZhmL5bJV7aHjBV/gGYMQs5mZvFWky2orA31cQd87ZQ01sJsXhSyK5
kyPT2DLGT2EUSFgkADIATsccYzDmoFGHujoktt1Dvy7KAp5Ij89J1F9z/bJPieoeXbxYM6WgXK6i
mL8fdLmqdHH+xIxH3Fw7vjbOQPVv3Q5NLHeDBr80mQ==
=oHe8
-----END PGP SIGNATURE-----

--------------VMSl19Ws92VaJ19wHUdCoQEK--


From xen-devel-bounces@lists.xenproject.org Thu Apr 24 09:12:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Apr 2025 09:12:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.966014.1356361 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7sdC-0007c3-05; Thu, 24 Apr 2025 09:12:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 966014.1356361; Thu, 24 Apr 2025 09:12: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 1u7sdB-0007bw-TW; Thu, 24 Apr 2025 09:12:29 +0000
Received: by outflank-mailman (input) for mailman id 966014;
 Thu, 24 Apr 2025 09:12: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=RfDJ=XK=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1u7sdA-0007bp-FP
 for xen-devel@lists.xenproject.org; Thu, 24 Apr 2025 09:12:28 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3cf750f1-20ec-11f0-9ffb-bf95429c2676;
 Thu, 24 Apr 2025 11:12:25 +0200 (CEST)
Received: from imap1.dmz-prg2.suse.org (unknown [10.150.64.97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out2.suse.de (Postfix) with ESMTPS id 7FFB31F393;
 Thu, 24 Apr 2025 09:12:24 +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 159C7139D0;
 Thu, 24 Apr 2025 09:12:24 +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 AtloA3gACmgaFQAAD6G6ig
 (envelope-from <jgross@suse.com>); Thu, 24 Apr 2025 09:12: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: 3cf750f1-20ec-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1745485944; 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=PiqNVvSSnKDcabe/2W97N/jbki5M8vigU6A372bH7xs=;
	b=Z5etMVDeHeKUCschBaZhtMSD+q9pm9+QUdWYe5d2MQLzm8/mTpjo+KJk/tP7IZTz/GPdS2
	4to0HnYoDJVdg0b7M4l1kFkANWre6rkPt/K5RonILZoAyn7NhkSdPLc3gwjX01Nc6+w6sI
	Fqedt0RD3eFyVm9tiM1LMm4UFSLvfMo=
Authentication-Results: smtp-out2.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1745485944; 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=PiqNVvSSnKDcabe/2W97N/jbki5M8vigU6A372bH7xs=;
	b=Z5etMVDeHeKUCschBaZhtMSD+q9pm9+QUdWYe5d2MQLzm8/mTpjo+KJk/tP7IZTz/GPdS2
	4to0HnYoDJVdg0b7M4l1kFkANWre6rkPt/K5RonILZoAyn7NhkSdPLc3gwjX01Nc6+w6sI
	Fqedt0RD3eFyVm9tiM1LMm4UFSLvfMo=
Message-ID: <04e39f8c-4b14-4dda-b1ee-a86d5194cc8e@suse.com>
Date: Thu, 24 Apr 2025 11:12:23 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 0/6] remove qemu-traditional
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Community Manager <community.manager@xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Nick Rosbrook <rosbrookn@gmail.com>, George Dunlap <gwd@xenproject.org>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>,
 Samuel Thibault <samuel.thibault@ens-lyon.org>
References: <20250408123526.14613-1-jgross@suse.com>
Content-Language: en-US
From: Juergen Gross <jgross@suse.com>
Autocrypt: addr=jgross@suse.com; keydata=
 xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOB
 ycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJve
 dYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJ
 NwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvx
 XP3FAp2pkW0xqG7/377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEB
 AAHNH0p1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT7CwHkEEwECACMFAlOMcK8CGwMH
 CwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRCw3p3WKL8TL8eZB/9G0juS/kDY9LhEXseh
 mE9U+iA1VsLhgDqVbsOtZ/S14LRFHczNd/Lqkn7souCSoyWsBs3/wO+OjPvxf7m+Ef+sMtr0
 G5lCWEWa9wa0IXx5HRPW/ScL+e4AVUbL7rurYMfwCzco+7TfjhMEOkC+va5gzi1KrErgNRHH
 kg3PhlnRY0Udyqx++UYkAsN4TQuEhNN32MvN0Np3WlBJOgKcuXpIElmMM5f1BBzJSKBkW0Jc
 Wy3h2Wy912vHKpPV/Xv7ZwVJ27v7KcuZcErtptDevAljxJtE7aJG6WiBzm+v9EswyWxwMCIO
 RoVBYuiocc51872tRGywc03xaQydB+9R7BHPzsBNBFOMcBYBCADLMfoA44MwGOB9YT1V4KCy
 vAfd7E0BTfaAurbG+Olacciz3yd09QOmejFZC6AnoykydyvTFLAWYcSCdISMr88COmmCbJzn
 sHAogjexXiif6ANUUlHpjxlHCCcELmZUzomNDnEOTxZFeWMTFF9Rf2k2F0Tl4E5kmsNGgtSa
 aMO0rNZoOEiD/7UfPP3dfh8JCQ1VtUUsQtT1sxos8Eb/HmriJhnaTZ7Hp3jtgTVkV0ybpgFg
 w6WMaRkrBh17mV0z2ajjmabB7SJxcouSkR0hcpNl4oM74d2/VqoW4BxxxOD1FcNCObCELfIS
 auZx+XT6s+CE7Qi/c44ibBMR7hyjdzWbABEBAAHCwF8EGAECAAkFAlOMcBYCGwwACgkQsN6d
 1ii/Ey9D+Af/WFr3q+bg/8v5tCknCtn92d5lyYTBNt7xgWzDZX8G6/pngzKyWfedArllp0Pn
 fgIXtMNV+3t8Li1Tg843EXkP7+2+CQ98MB8XvvPLYAfW8nNDV85TyVgWlldNcgdv7nn1Sq8g
 HwB2BHdIAkYce3hEoDQXt/mKlgEGsLpzJcnLKimtPXQQy9TxUaLBe9PInPd+Ohix0XOlY+Uk
 QFEx50Ki3rSDl2Zt2tnkNYKUCvTJq7jvOlaPd6d/W0tZqpyy7KVay+K4aMobDsodB3dvEAs6
 ScCnh03dDAFgIq5nsB11j3KPKdVoPlfucX2c7kGNH+LUMbzqV6beIENfNexkOfxHfw==
In-Reply-To: <20250408123526.14613-1-jgross@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------cObXPynaf7c6CsppNYBbygBN"
X-Spam-Score: -3.70
X-Spamd-Result: default: False [-3.70 / 50.00];
	BAYES_HAM(-3.00)[100.00%];
	SIGNED_PGP(-2.00)[];
	SUSPICIOUS_RECIPS(1.50)[];
	MIME_BASE64_TEXT_BOGUS(1.00)[];
	NEURAL_HAM_LONG(-1.00)[-0.998];
	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];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	RCPT_COUNT_TWELVE(0.00)[14];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	FUZZY_BLOCKED(0.00)[rspamd.com];
	ARC_NA(0.00)[];
	MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	FREEMAIL_ENVRCPT(0.00)[gmail.com];
	RCVD_TLS_ALL(0.00)[];
	TO_DN_SOME(0.00)[];
	RCVD_COUNT_TWO(0.00)[2];
	FROM_EQ_ENVFROM(0.00)[];
	FROM_HAS_DN(0.00)[];
	FREEMAIL_CC(0.00)[gmail.com,xenproject.org,citrix.com,vates.tech,amd.com,suse.com,xen.org,kernel.org,invisiblethingslab.com,ens-lyon.org];
	MID_RHS_MATCH_FROM(0.00)[];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	TAGGED_RCPT(0.00)[];
	HAS_ATTACHMENT(0.00)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[imap1.dmz-prg2.suse.org:helo,suse.com:mid]
X-Spam-Flag: NO
X-Spam-Level: 

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------cObXPynaf7c6CsppNYBbygBN
Content-Type: multipart/mixed; boundary="------------kfnT0cBgv8IVbouM5p3mxYej";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Community Manager <community.manager@xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Nick Rosbrook <rosbrookn@gmail.com>, George Dunlap <gwd@xenproject.org>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>,
 Samuel Thibault <samuel.thibault@ens-lyon.org>
Message-ID: <04e39f8c-4b14-4dda-b1ee-a86d5194cc8e@suse.com>
Subject: Re: [PATCH v2 0/6] remove qemu-traditional
References: <20250408123526.14613-1-jgross@suse.com>
In-Reply-To: <20250408123526.14613-1-jgross@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=

--------------kfnT0cBgv8IVbouM5p3mxYej
Content-Type: multipart/mixed; boundary="------------yJW93t0mqm7WKVf3JWooX4ZJ"

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

UGluZz8NCg0KT24gMDguMDQuMjUgMTQ6MzUsIEp1ZXJnZW4gR3Jvc3Mgd3JvdGU6DQo+IFJl
bW92ZSB0aGUgcWVtdS10cmFkaXRpb25hbCBzdXBwb3J0LiBUaGlzIGluY2x1ZGVzIHRoZSBN
aW5pLU9TDQo+IGJhc2VkIGlvZW11LXN0dWJkb20uDQo+IA0KPiBEb24ndCByZW1vdmUgUk9N
QklPUyBmb3Igbm93LCBhcyBpdCBjYW4gYmUgdXNlZCB3aXRoIHFlbXUgKFhlblNlcnZlcg0K
PiBpcyBkb2luZyB0aGF0KS4NCj4gDQo+IEFmdGVyIGFkZGluZyB0aGUgc2VyaWVzIGEgcnVu
IG9mIGF1dG9jb25mIHNob3VsZCBiZSBkb25lLg0KPiANCj4gQ2hhbmdlcyBpbiBWMjoNCj4g
LSBhZGRyZXNzZWQgY29tbWVudHMNCj4gDQo+IEp1ZXJnZW4gR3Jvc3MgKDYpOg0KPiAgICBT
VVBQT1JULm1kOiBtYWtlIExpbnV4IGJhc2VkIHN0dWJkb20gZnVsbHkgc3VwcG9ydGVkDQo+
ICAgIGRvY3M6IHJlbW92ZSBxZW11LXRyYWRpdGlvbmFsIHN1cHBvcnQgZnJvbSBkb2N1bWVu
dGF0aW9uDQo+ICAgIHRvb2xzOiByZW1vdmUgc3VwcG9ydCBmb3IgcnVubmluZyBhIGd1ZXN0
IHdpdGggcWVtdS10cmFkaXRpb25hbA0KPiAgICB0b29sczogcmVtb3ZlIHFlbXUtdHJhZGl0
aW9uYWwNCj4gICAgc3R1YmRvbTogcmVtb3ZlIGFuY2llbnQgc3R1YmRvbS1kbSBzY3JpcHQN
Cj4gICAgYnVpbGQ6IGRvbid0IHJlcXVpcmUgZnVsbCB0b29scyBidWlsZCBmb3IgYnVpbGRp
bmcgc3R1YmRvbXMNCj4gDQo+ICAgLmdpdGlnbm9yZSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHwgICAzIC0NCj4gICBDSEFOR0VMT0cubWQgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfCAgIDIgKw0KPiAgIENvbmZpZy5tayAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB8ICAyNCAtLQ0KPiAgIElOU1RBTEwgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxMiAtDQo+ICAgTUFJTlRBSU5FUlMg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA0IC0NCj4gICBNYWtlZmls
ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0NCj4gICBS
RUFETUUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0N
Cj4gICBTVVBQT1JULm1kICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg
MjEgKy0NCj4gICBjb25maWcvVG9vbHMubWsuaW4gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfCAgIDEgLQ0KPiAgIGRvY3MvbWFuL3hsLXBjaS1jb25maWd1cmF0aW9uLjUucG9kICAg
ICAgICAgICB8ICAgNCArLQ0KPiAgIGRvY3MvbWFuL3hsLmNmZy41LnBvZC5pbiAgICAgICAg
ICAgICAgICAgICAgICB8ICA0NiArLS0NCj4gICBkb2NzL21pc2Mvc3R1YmRvbS50eHQgICAg
ICAgICAgICAgICAgICAgICAgICAgfCAgNTIgLS0tDQo+ICAgZG9jcy9taXNjL3hlbnN0b3Jl
LXBhdGhzLnBhbmRvYyAgICAgICAgICAgICAgIHwgICAzICstDQo+ICAgZG9jcy9wcm9jZXNz
L2JyYW5jaGluZy1jaGVja2xpc3QudHh0ICAgICAgICAgIHwgICA0IC0NCj4gICBkb2NzL3By
b2Nlc3MvcmVsZWFzZS10ZWNobmljaWFuLWNoZWNrbGlzdC50eHQgfCAgIDMgLQ0KPiAgIGRv
Y3MvcHJvY2Vzcy94ZW4tcmVsZWFzZS1tYW5hZ2VtZW50LnBhbmRvYyAgICB8ICAgMiArLQ0K
PiAgIHN0dWJkb20vTWFrZWZpbGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA4
NCArLS0tLQ0KPiAgIHN0dWJkb20vY29uZmlndXJlICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB8ICA4OSAtLS0tLQ0KPiAgIHN0dWJkb20vY29uZmlndXJlLmFjICAgICAgICAgICAg
ICAgICAgICAgICAgICB8ICAxNSAtDQo+ICAgc3R1YmRvbS9pb2VtdS1taW5pb3MuY2ZnICAg
ICAgICAgICAgICAgICAgICAgIHwgICA2IC0NCj4gICBzdHViZG9tL3N0dWJkb20tZG0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfCAxODIgLS0tLS0tLS0tLQ0KPiAgIHRvb2xzL01h
a2VmaWxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA1OCAtLS0tDQo+ICAg
dG9vbHMvUnVsZXMubWsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAzIC0N
Cj4gICB0b29scy9jb25maWcuaC5pbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg
IDMgLQ0KPiAgIHRvb2xzL2NvbmZpZ3VyZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB8ICA0MiArLS0NCj4gICB0b29scy9jb25maWd1cmUuYWMgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfCAgMjEgKy0NCj4gICB0b29scy9maXJtd2FyZS9odm1sb2FkZXIvcGNpLmMg
ICAgICAgICAgICAgICAgfCAgMTkgKy0NCj4gICB0b29scy9maXJtd2FyZS9odm1sb2FkZXIv
dXRpbC5jICAgICAgICAgICAgICAgfCAgIDkgKy0NCj4gICB0b29scy9nb2xhbmcveGVubGln
aHQvdHlwZXMuZ2VuLmdvICAgICAgICAgICAgfCAgIDEgLQ0KPiAgIHRvb2xzL2xpYmFjcGkv
bWtfZHNkdC5jICAgICAgICAgICAgICAgICAgICAgICB8IDE3NyArKy0tLS0tLS0tDQo+ICAg
dG9vbHMvbGlicy9saWdodC9saWJ4bF9jcmVhdGUuYyAgICAgICAgICAgICAgIHwgIDYwICst
LS0NCj4gICB0b29scy9saWJzL2xpZ2h0L2xpYnhsX2Rpc2suYyAgICAgICAgICAgICAgICAg
fCAgIDcgLQ0KPiAgIHRvb2xzL2xpYnMvbGlnaHQvbGlieGxfZG0uYyAgICAgICAgICAgICAg
ICAgICB8IDMyMCArLS0tLS0tLS0tLS0tLS0tLS0NCj4gICB0b29scy9saWJzL2xpZ2h0L2xp
YnhsX2RvbS5jICAgICAgICAgICAgICAgICAgfCAgMTAgLQ0KPiAgIHRvb2xzL2xpYnMvbGln
aHQvbGlieGxfZG9tX3NhdmUuYyAgICAgICAgICAgICB8IDE0MCAtLS0tLS0tLQ0KPiAgIHRv
b2xzL2xpYnMvbGlnaHQvbGlieGxfZG9tX3N1c3BlbmQuYyAgICAgICAgICB8ICA2NSAtLS0t
DQo+ICAgdG9vbHMvbGlicy9saWdodC9saWJ4bF9kb21haW4uYyAgICAgICAgICAgICAgIHwg
IDE1IC0NCj4gICB0b29scy9saWJzL2xpZ2h0L2xpYnhsX2ludGVybmFsLmMgICAgICAgICAg
ICAgfCAgIDYgKy0NCj4gICB0b29scy9saWJzL2xpZ2h0L2xpYnhsX2ludGVybmFsLmggICAg
ICAgICAgICAgfCAgIDUgKy0NCj4gICB0b29scy9saWJzL2xpZ2h0L2xpYnhsX3BjaS5jICAg
ICAgICAgICAgICAgICAgfCAxODMgLS0tLS0tLS0tLQ0KPiAgIHRvb2xzL2xpYnMvbGlnaHQv
bGlieGxfc3RyZWFtX3dyaXRlLmMgICAgICAgICB8ICAgNCAtDQo+ICAgdG9vbHMvbGlicy9s
aWdodC9saWJ4bF90eXBlcy5pZGwgICAgICAgICAgICAgIHwgICAxIC0NCj4gICB0b29scy9w
eXRob24veGVuL21pZ3JhdGlvbi9saWJ4bC5weSAgICAgICAgICAgfCAgIDIgLQ0KPiAgIHRv
b2xzL3hsL3hsX3BhcnNlLmMgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNSArLQ0K
PiAgIDQ0IGZpbGVzIGNoYW5nZWQsIDgxIGluc2VydGlvbnMoKyksIDE2MzYgZGVsZXRpb25z
KC0pDQo+ICAgZGVsZXRlIG1vZGUgMTAwNjQ0IHN0dWJkb20vaW9lbXUtbWluaW9zLmNmZw0K
PiAgIGRlbGV0ZSBtb2RlIDEwMDY0NCBzdHViZG9tL3N0dWJkb20tZG0NCj4gDQoNCg==
--------------yJW93t0mqm7WKVf3JWooX4ZJ
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-----

--------------yJW93t0mqm7WKVf3JWooX4ZJ--

--------------kfnT0cBgv8IVbouM5p3mxYej--

--------------cObXPynaf7c6CsppNYBbygBN
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/Ey8FAmgKAHcFAwAAAAAACgkQsN6d1ii/Ey8P
Xgf/ToeZb846jyfhQJ6jpcukoJIgjt/SVi+4JDD83eUmsLFrVjxpLfV/3gYOK7EPK6e2evpKWDAm
QKgHHtvncI/JJs+4ldaSUyhcxl8W2wPSqwVpkn/xwISY22+HWj8F6tC5TyAeiaiK59wFH9yjAO2g
mVb1AZd+NyL06cs+yFrYgrPHS3D6xBAdO8ZWBZq5hO8Mgzwd+iJc1STyTgfmxjajW8bVkilho4RV
Q6jAD7vDWH8j02VeWgFkGkJa/KqB/68W++qHoizxPJ4cRNqvX0XeDCCqLDFIJJq6F1gQ4oMWy3pa
WwzbGxw7WBdzljG5FDavSgjHXjvasNR9vkoocim96w==
=tAd9
-----END PGP SIGNATURE-----

--------------cObXPynaf7c6CsppNYBbygBN--


From xen-devel-bounces@lists.xenproject.org Thu Apr 24 09:41:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Apr 2025 09:41:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.966035.1356372 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7t55-0004Tt-7t; Thu, 24 Apr 2025 09:41:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 966035.1356372; Thu, 24 Apr 2025 09: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 1u7t55-0004Tm-4k; Thu, 24 Apr 2025 09:41:19 +0000
Received: by outflank-mailman (input) for mailman id 966035;
 Thu, 24 Apr 2025 09:41:18 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <anthony@xenproject.org>) id 1u7t54-0004TE-Ey
 for xen-devel@lists.xenproject.org; Thu, 24 Apr 2025 09:41:18 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1u7t53-001ZJD-1X;
 Thu, 24 Apr 2025 09:41:17 +0000
Received: from [2a01:e0a:1da:8420:b77:bd5:6e45:7633] (helo=l14)
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1u7t53-00AFix-05;
 Thu, 24 Apr 2025 09:41:17 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=In-Reply-To:Content-Type:MIME-Version:
	References:Message-ID:Subject:Cc:To:From:Date;
	bh=+IARJY4v0fSj3emoiMfOQahZi4aUMsoPojKmfZ/bv9g=; b=gfeF79RADN8Ke6r6yODssHBSzJ
	UW1QV1xLpmhqFPcGPw9CQLRG0XPadLOyqlRs0UWrSzVQMP9eeOknjOiX3spu6uhdfVmQkFmcE5N5S
	IGmt6Fybm7xDXEj1tPxerUVxLrZ/oy3ZfgIP1mQjjzpzYKVE45KKJf62Ituetj/+ant0=;
Date: Thu, 24 Apr 2025 11:41:14 +0200
From: Anthony PERARD <anthony@xenproject.org>
To: Juergen Gross <jgross@suse.com>
Cc: xen-devel@lists.xenproject.org,
	Anthony PERARD <anthony.perard@vates.tech>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH v2 2/6] docs: remove qemu-traditional support from
 documentation
Message-ID: <aAoHOrcZ5LlhEObL@l14>
References: <20250408123526.14613-1-jgross@suse.com>
 <20250408123526.14613-3-jgross@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20250408123526.14613-3-jgross@suse.com>

On Tue, Apr 08, 2025 at 02:35:20PM +0200, Juergen Gross wrote:
> diff --git a/docs/man/xl.cfg.5.pod.in b/docs/man/xl.cfg.5.pod.in
> index 7339c44efd..ccf0c58895 100644
> --- a/docs/man/xl.cfg.5.pod.in
> +++ b/docs/man/xl.cfg.5.pod.in
> @@ -895,12 +895,6 @@ is used.
>  Specifies the path to the X authority file that should be used to
>  connect to the X server when the B<sdl> option is used.
>  
> -=item B<opengl=BOOLEAN>

This `opengl` sub-option is also mention above, for the `vfb` option.

> -
> -Enable OpenGL acceleration of the SDL display. Only effects machines
> -using B<device_model_version="qemu-xen-traditional"> and only if the
> -device-model was compiled with OpenGL support. The default is 0 (disabled).
> -
>  =item B<keymap=LANG>
>  
>  Configure the keymap to use for the keyboard associated with this
> @@ -1215,17 +1209,14 @@ working graphics passthrough. See the XenVGAPassthroughTestedAdapters
>  L<https://wiki.xenproject.org/wiki/XenVGAPassthroughTestedAdapters> wiki page
>  for graphics cards currently supported by B<gfx_passthru>.
>  
> -B<gfx_passthru> is currently supported both with the qemu-xen-traditional
> -device-model and upstream qemu-xen device-model.
> +B<gfx_passthru> is currently supported with the upstream qemu-xen device-model.

I don't understand why this is written in the doc :-(, where is it not
supported? Previous revision had: "only supported on qemu-trad, no
support for qemu-xen" which was useful information, and was changed
later when qemu-xen gain support. I would remove the sentence.

>  When given as a boolean the B<gfx_passthru> option either disables graphics
>  card passthrough or enables autodetection.
>  
>  When given as a string the B<gfx_passthru> option describes the type
>  of device to enable. Note that this behavior is only supported with the
> -upstream qemu-xen device-model. With qemu-xen-traditional IGD (Intel Graphics
> -Device) is always assumed and options other than autodetect or explicit IGD
> -will result in an error.
> +upstream qemu-xen device-model.

Here, we can remove the "Note that this behavior is only supported with
qemu-xen dm", this is the only device model supported so I hope the
behavior is supported in this case...

>  
>  Currently, valid values for the option are:
>  
> @@ -1903,10 +1894,7 @@ it may be useful to request a different one, like UEFI.
>  
>  =item B<rombios>
>  
> -Loads ROMBIOS, a 16-bit x86 compatible BIOS. This is used by default
> -when B<device_model_version=qemu-xen-traditional>. This is the only BIOS
> -option supported when B<device_model_version=qemu-xen-traditional>. This is
> -the BIOS used by all previous Xen versions.
> +Loads ROMBIOS, a 16-bit x86 compatible BIOS.

This option is not valid anymore, libxl will complain with:
    "qemu-xen does not support bios=rombios."

And I have no idea if it can work on not, I just know that XenServer
still use RomBIOS with a patched QEMU.

>  =item B<seabios>
>  
> @@ -1926,8 +1914,7 @@ Override the path to the blob to be used as BIOS. The blob provided here MUST
>  be consistent with the B<bios=> which you have specified. You should not
>  normally need to specify this option.
>  
> -This option does not have any effect if using B<bios="rombios"> or
> -B<device_model_version="qemu-xen-traditional">.
> +This option does not have any effect if using B<bios="rombios">.

This doesn't seems to be true. I think the only way currently to have
`bios_path_override` been effective is to start a guest with type=hvm
and device_model_version=qemu-xen.

So maybe instead we should write "Requires
B<device_model_version="qemu-xen">." like we have for the bios=ovmf option.


Thanks,

-- 
Anthony PERARD


From xen-devel-bounces@lists.xenproject.org Thu Apr 24 09:59:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Apr 2025 09:59:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.966060.1356386 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7tMo-0006te-Pk; Thu, 24 Apr 2025 09:59:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 966060.1356386; Thu, 24 Apr 2025 09: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 1u7tMo-0006tX-Lx; Thu, 24 Apr 2025 09:59:38 +0000
Received: by outflank-mailman (input) for mailman id 966060;
 Thu, 24 Apr 2025 09:59: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=YKuC=XK=tum.de=f.specht@srs-se1.protection.inumbo.net>)
 id 1u7tMn-0006tR-SU
 for xen-devel@lists.xenproject.org; Thu, 24 Apr 2025 09:59:37 +0000
Received: from postout2.mail.lrz.de (postout2.mail.lrz.de [129.187.255.138])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d14cac81-20f2-11f0-9ffb-bf95429c2676;
 Thu, 24 Apr 2025 11:59:32 +0200 (CEST)
Received: from lxmhs52.srv.lrz.de (localhost [127.0.0.1])
 by postout2.mail.lrz.de (Postfix) with ESMTP id 4Zjrzl2KXLzyYp;
 Thu, 24 Apr 2025 11:59:30 +0200 (CEST)
Received: from postout2.mail.lrz.de ([127.0.0.1])
 by lxmhs52.srv.lrz.de (lxmhs52.srv.lrz.de [127.0.0.1]) (amavis, port 20024)
 with LMTP id ek_54piztXrO; Thu, 24 Apr 2025 11:59:30 +0200 (CEST)
Received: from localhost (unknown [37.85.220.79])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange ECDHE (prime256v1) server-signature RSA-PSS (2048 bits)
 server-digest SHA256) (Client did not present a certificate)
 by postout2.mail.lrz.de (Postfix) with ESMTPSA id 4Zjrzj3Db7zyZ3;
 Thu, 24 Apr 2025 11:59:29 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d14cac81-20f2-11f0-9ffb-bf95429c2676
Authentication-Results: postout.lrz.de (amavis); dkim=pass (2048-bit key)
 reason="pass (just generated, assumed good)" header.d=tum.de
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tum.de; h=
	in-reply-to:content-disposition:content-type:content-type
	:mime-version:references:message-id:subject:subject:from:from
	:date:date:received:received; s=tu-postout21; t=1745488770; bh=g
	iNNqN+/QtHdg/cA9J9zLPXzEAuFwcVqhzpwjSO/g9A=; b=Wm+W7yHhwqXjjcBqI
	3uvXSrDQD9H1yQsJYwRoBULuAYEG3sEqzkrl2lvu0pxhQJpTf9XJre1pV3AWtUVv
	xZIUWrpZJNBHWEpjacrnWIPWeCsTnwikoucKJqgrdAujgyQRhpwZlEKKL2uit2lT
	xyTSslMQoYtfC/jVv5LkAgtSVH4aJefCbsdAE8td56NDAlhJSKMNdbpy91YHXBl+
	BLjhKHwBZjMm0Je9+PreYytdc/Q2zoI2jsKEWJJZQKgpVaR/C6tok/yHoieQsC75
	nD/GtAPQoOm1Bwuya4dUHI7QXgZ5gd4ycSEXf1nDg+NsQhcZ8N7OXmCDWpJ09+Wq
	ELDFw==
X-Virus-Scanned: by amavisd-new at lrz.de in lxmhs52.srv.lrz.de
X-Spam-Flag: NO
X-Spam-Score: -2.873
X-Spam-Level:
X-Spam-Status: No, score=-2.873 tagged_above=-999 required=5
 tests=[ALL_TRUSTED=-1, BAYES_00=-1.9, DMARC_ADKIM_RELAXED=0.001,
 DMARC_ASPF_RELAXED=0.001, DMARC_POLICY_NONE=0.001, LRZ_DMARC_FAIL=0.001,
 LRZ_DMARC_FAIL_NONE=0.001, LRZ_DMARC_POLICY=0.001, LRZ_DMARC_TUM_FAIL=0.001,
 LRZ_DMARC_TUM_REJECT=3.5, LRZ_DMARC_TUM_REJECT_PO=-3.5,
 LRZ_ENVFROM_FROM_MATCH=0.001, LRZ_ENVFROM_TUM_S=0.001,
 LRZ_FROM_ENVFROM_ALIGNED_STRICT=0.001, LRZ_FROM_HAS_A=0.001,
 LRZ_FROM_HAS_AAAA=0.001, LRZ_FROM_HAS_MDOM=0.001, LRZ_FROM_HAS_MX=0.001,
 LRZ_FROM_HOSTED_DOMAIN=0.001, LRZ_FROM_NAME_IN_ADDR=0.001,
 LRZ_FROM_PHRASE=0.001, LRZ_FROM_PRE_SUR_PHRASE=0.001, LRZ_FROM_TUM_S=0.001,
 LRZ_HAS_CT=0.001, LRZ_HAS_IN_REPLY_TO=0.001, LRZ_HAS_MIME_VERSION=0.001,
 LRZ_HAS_SPF=0.001, LRZ_MSGID_LONG_50=0.001, LRZ_MSGID_NO_FQDN=0.001,
 LRZ_NO_UA_HEADER=0.001, LRZ_SUBJ_FW_RE=0.001] autolearn=no autolearn_force=no
Date: Thu, 24 Apr 2025 11:59:21 +0200
From: Fabian Specht <f.specht@tum.de>
To: Jan Beulich <jbeulich@suse.com>, xen-devel@lists.xenproject.org
Cc: manuel.andreas@tum.de
Subject: Re: UBSan bug in real mode fpu emulation
Message-ID: <btqvz46tfyfridqunbth2l5g5e544p3jymwgr542oufvi3hbuc@em5mqn7qfmb3>
References: <l2jnq5cxgkzcdkndp3mjf76nd7wdp2pbstkqo7llaarmbfqdge@bxdydela4rcf>
 <40a5c44c-4ef1-4852-b441-ea65e31b2345@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <40a5c44c-4ef1-4852-b441-ea65e31b2345@suse.com>

On Thu, Apr 24, 2025 at 08:34:42AM +0200, Jan Beulich wrote:
> Since ...
> 
> > Similar code resides in the same file in lines 87, 125 and 127.
> 
> ... all of these are shifts by 16, could you clarify what it is that you
> want to shift by 4? Imo what we need to do here is add casts to unsigned
> int, for the results thereof to be shifted (or use some extra arithmetic
> to achieve the same effect, e.g. add in 0U). Or we could go and replace
> the shifts by 16 with shifts by 12 (accounting for the later right shift
> by 4, which would then need dropping).

Oh I guess I was up too late, of course we need some sort of cast.

~Fabian


From xen-devel-bounces@lists.xenproject.org Thu Apr 24 10:05:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Apr 2025 10:05:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.966071.1356396 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7tSK-0000a2-CM; Thu, 24 Apr 2025 10:05:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 966071.1356396; Thu, 24 Apr 2025 10: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 1u7tSK-0000Zv-8o; Thu, 24 Apr 2025 10:05:20 +0000
Received: by outflank-mailman (input) for mailman id 966071;
 Thu, 24 Apr 2025 10: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=RfDJ=XK=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1u7tSI-0000Zp-MK
 for xen-devel@lists.xenproject.org; Thu, 24 Apr 2025 10:05:18 +0000
Received: from mail-wr1-x434.google.com (mail-wr1-x434.google.com
 [2a00:1450:4864:20::434])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9eef0c71-20f3-11f0-9ffb-bf95429c2676;
 Thu, 24 Apr 2025 12:05:16 +0200 (CEST)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-39c14016868so750009f8f.1
 for <xen-devel@lists.xenproject.org>; Thu, 24 Apr 2025 03:05:16 -0700 (PDT)
Received: from ?IPV6:2003:e5:870f:e000:6c64:75fd:2c51:3fef?
 (p200300e5870fe0006c6475fd2c513fef.dip0.t-ipconnect.de.
 [2003:e5:870f:e000:6c64:75fd:2c51:3fef])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3a06d4be673sm1532611f8f.23.2025.04.24.03.05.14
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 24 Apr 2025 03:05: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: 9eef0c71-20f3-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745489116; x=1746093916; 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=Snc9P4tltLODVmDFrO3IyAgaPtpL6T6ziTpCwKYtdwc=;
        b=LaUSapWSoUdbG6ZmFjDM1at3EJ5yDNgcCaselWNkW6IAVpBQ7+ZJo+t7TvfZgXIXfV
         sCUWTT/J71V8NxVLh7hHFL41zuho6WHQIjAIffdJmGt1E6ay4OWO+Ne1lMrsWN/wq/PC
         JJIlVhh+hLwAXlxNlo3mbBSwhQqNQfo+DpkpNvFlGG/UAIeDjCwLalxNkYnVljKzLOrF
         Fx4y4WP07oQzfAQ/YHWHmysm/KQHi/582j4herjR0sQEmqPRKtP7ZqidqeTjuerniTUU
         a2bfvujiUVtFNjGeKAy5hZHHctp4iiCg83BhoJn7tay11FFtXIvmNSzjfjv5MHcVXciX
         TX7A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745489116; x=1746093916;
        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=Snc9P4tltLODVmDFrO3IyAgaPtpL6T6ziTpCwKYtdwc=;
        b=WlVTXZD+5nv0LYilJz/U32NPSdwzxWiKrXgwi5h02xXqtHo9oIAvX26jzcQwRk2Ets
         Zwp8PZks+T+GSn7skrPQ/pEPyqCyQVgH82oCpIs3QPBi1x2+NmWatD8EdjQF9B/NdjmO
         gwEMycawDjENekfQbGvK/ffkqgsvaXTe3vxVUltYuebu+mSXV9WQ7n1tPS5yNuLbUFY7
         z1Bu/ANYytvKq7YDaP8t9fU5/gzzVJ+D5MMgF6Pn0E+2fKh2/QE+q/B3ouLFoBTM1yIY
         OuO4TLRjNFcl8UXsO3LQdGSJFlNfK2JvnQkUumywQ3u+GBXMCUwr82SxLZZf5xNOrHOP
         CMLg==
X-Forwarded-Encrypted: i=1; AJvYcCWFxiGVbglQa1ox2cpKQ6CXNNwjsGXlBLor7AIpRGLGgMM19W3wqOdWjFDIqLDEKVUamLmFGHjxj/A=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz0vkF4tb8BJaJ6Hj5PzYu3IimAwlel+prKuxx+gMydwlVSsncu
	HeVqMjDIiCqYwdtiAODCD6RuAdzVViddDrSZKunzeR+cwftYSdVZFUvY4HQJoKA=
X-Gm-Gg: ASbGncttcEjnFt88oVJcHzoS/kOLtgUpZdNBg04tVSvRYUdAt9EkvGWw4juChazPLRM
	VIfrAnuQCy46vOfXDGKeN3dn1tVMG4MQKriqURzWW2yMhZTupHKM3EseZANDre5iKditrCdD9RH
	7RCpnJLvh4rZh95xX01BAe4N09oxHZ7VtuDUb5caTn6M6QUQeU0CRANLAHjic4xkVRCN/b4LcYn
	mi7F7blFE6FVxO6llKkxe/7XWUWsYoJFybz0oXY7ip39i6T0PVWgE8OTjp3cmxa7G+Rc/t6SB6w
	7vGTLNHgAgCa9D7w9k/Zj1VVgjceyeI20R52YoLIBEqv4vdpkedScbLkofcNaCPe5umRAZN4oCx
	VHjXohEWtDzxc0UopRCxEjIhmtts0TOGzJcwO28+ss9jldTtQbWjc+sGtuBmeGruIsw==
X-Google-Smtp-Source: AGHT+IFeiub5CJ4A2GUDjwMiofQYe2tDyhhjoa6mmc6NHfiKexbzfePgihm0x9Laf/1+RKVbRkMUdg==
X-Received: by 2002:a05:6000:2901:b0:39a:c8a8:4fdc with SMTP id ffacd0b85a97d-3a06cf563a3mr1591258f8f.16.1745489115718;
        Thu, 24 Apr 2025 03:05:15 -0700 (PDT)
Message-ID: <8944b510-6d70-472c-99a2-52a60517733d@suse.com>
Date: Thu, 24 Apr 2025 12:05:13 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH v2 12/34] x86/msr: Remove pmu_msr_{read,write}()
To: "Xin Li (Intel)" <xin@zytor.com>, linux-kernel@vger.kernel.org,
 kvm@vger.kernel.org, linux-perf-users@vger.kernel.org,
 linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
 linux-pm@vger.kernel.org, linux-edac@vger.kernel.org,
 xen-devel@lists.xenproject.org, linux-acpi@vger.kernel.org,
 linux-hwmon@vger.kernel.org, netdev@vger.kernel.org,
 platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
 dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com, acme@kernel.org,
 andrew.cooper3@citrix.com, peterz@infradead.org, namhyung@kernel.org,
 mark.rutland@arm.com, alexander.shishkin@linux.intel.com, jolsa@kernel.org,
 irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
 wei.liu@kernel.org, ajay.kaher@broadcom.com,
 bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
 pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
 luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
 haiyangz@microsoft.com, decui@microsoft.com
References: <20250422082216.1954310-1-xin@zytor.com>
 <20250422082216.1954310-13-xin@zytor.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: <20250422082216.1954310-13-xin@zytor.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------1R2qpraBQH5lAxkZ0x5pXs03"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------1R2qpraBQH5lAxkZ0x5pXs03
Content-Type: multipart/mixed; boundary="------------UPIgRGhz6y9kAKC46Fb5ZNDF";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: "Xin Li (Intel)" <xin@zytor.com>, linux-kernel@vger.kernel.org,
 kvm@vger.kernel.org, linux-perf-users@vger.kernel.org,
 linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
 linux-pm@vger.kernel.org, linux-edac@vger.kernel.org,
 xen-devel@lists.xenproject.org, linux-acpi@vger.kernel.org,
 linux-hwmon@vger.kernel.org, netdev@vger.kernel.org,
 platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
 dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com, acme@kernel.org,
 andrew.cooper3@citrix.com, peterz@infradead.org, namhyung@kernel.org,
 mark.rutland@arm.com, alexander.shishkin@linux.intel.com, jolsa@kernel.org,
 irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
 wei.liu@kernel.org, ajay.kaher@broadcom.com,
 bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
 pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
 luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
 haiyangz@microsoft.com, decui@microsoft.com
Message-ID: <8944b510-6d70-472c-99a2-52a60517733d@suse.com>
Subject: Re: [RFC PATCH v2 12/34] x86/msr: Remove pmu_msr_{read,write}()
References: <20250422082216.1954310-1-xin@zytor.com>
 <20250422082216.1954310-13-xin@zytor.com>
In-Reply-To: <20250422082216.1954310-13-xin@zytor.com>

--------------UPIgRGhz6y9kAKC46Fb5ZNDF
Content-Type: multipart/mixed; boundary="------------wbK5qLJRzlz94m02IO59B0xR"

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

T24gMjIuMDQuMjUgMTA6MjEsIFhpbiBMaSAoSW50ZWwpIHdyb3RlOg0KPiBBcyBwbXVfbXNy
X3tyZWFkLHdyaXRlfSgpIGFyZSBub3cgd3JhcHBlcnMgb2YgcG11X21zcl9jaGtfZW11bGF0
ZWQoKSwNCj4gcmVtb3ZlIHRoZW0gYW5kIHVzZSBwbXVfbXNyX2Noa19lbXVsYXRlZCgpIGRp
cmVjdGx5Lg0KPiANCj4gV2hpbGUgYXQgaXQsIGNvbnZlcnQgdGhlIGRhdGEgdHlwZSBvZiBN
U1IgaW5kZXggdG8gdTMyIGluIGZ1bmN0aW9ucw0KPiBjYWxsZWQgaW4gcG11X21zcl9jaGtf
ZW11bGF0ZWQoKS4NCj4gDQo+IFN1Z2dlc3RlZC1ieTogSC4gUGV0ZXIgQW52aW4gKEludGVs
KSA8aHBhQHp5dG9yLmNvbT4NCj4gU2lnbmVkLW9mZi1ieTogWGluIExpIChJbnRlbCkgPHhp
bkB6eXRvci5jb20+DQo+IC0tLQ0KPiAgIGFyY2gveDg2L3hlbi9lbmxpZ2h0ZW5fcHYuYyB8
IDE3ICsrKysrKysrKystLS0tLS0tDQo+ICAgYXJjaC94ODYveGVuL3BtdS5jICAgICAgICAg
IHwgMjQgKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICAgYXJjaC94ODYveGVuL3hlbi1v
cHMuaCAgICAgIHwgIDMgKy0tDQo+ICAgMyBmaWxlcyBjaGFuZ2VkLCAxNSBpbnNlcnRpb25z
KCspLCAyOSBkZWxldGlvbnMoLSkNCj4gDQo+IGRpZmYgLS1naXQgYS9hcmNoL3g4Ni94ZW4v
ZW5saWdodGVuX3B2LmMgYi9hcmNoL3g4Ni94ZW4vZW5saWdodGVuX3B2LmMNCj4gaW5kZXgg
MTQxODc1OGI1N2ZmLi5iNWE4YmNlYjVmNTYgMTAwNjQ0DQo+IC0tLSBhL2FyY2gveDg2L3hl
bi9lbmxpZ2h0ZW5fcHYuYw0KPiArKysgYi9hcmNoL3g4Ni94ZW4vZW5saWdodGVuX3B2LmMN
Cj4gQEAgLTEwODksOCArMTA4OSw5IEBAIHN0YXRpYyB2b2lkIHhlbl93cml0ZV9jcjQodW5z
aWduZWQgbG9uZyBjcjQpDQo+ICAgc3RhdGljIHU2NCB4ZW5fZG9fcmVhZF9tc3IodW5zaWdu
ZWQgaW50IG1zciwgaW50ICplcnIpDQo+ICAgew0KPiAgIAl1NjQgdmFsID0gMDsJLyogQXZv
aWQgdW5pbml0aWFsaXplZCB2YWx1ZSBmb3Igc2FmZSB2YXJpYW50LiAqLw0KPiArCWJvb2wg
ZW11bGF0ZWQ7DQo+ICAgDQo+IC0JaWYgKHBtdV9tc3JfcmVhZChtc3IsICZ2YWwsIGVycikp
DQo+ICsJaWYgKHBtdV9tc3JfY2hrX2VtdWxhdGVkKG1zciwgJnZhbCwgdHJ1ZSwgJmVtdWxh
dGVkKSAmJiBlbXVsYXRlZCkNCj4gICAJCXJldHVybiB2YWw7DQo+ICAgDQo+ICAgCWlmIChl
cnIpDQo+IEBAIC0xMTMzLDYgKzExMzQsNyBAQCBzdGF0aWMgdm9pZCB4ZW5fZG9fd3JpdGVf
bXNyKHVuc2lnbmVkIGludCBtc3IsIHVuc2lnbmVkIGludCBsb3csDQo+ICAgCQkJICAgICB1
bnNpZ25lZCBpbnQgaGlnaCwgaW50ICplcnIpDQo+ICAgew0KPiAgIAl1NjQgdmFsOw0KPiAr
CWJvb2wgZW11bGF0ZWQ7DQo+ICAgDQo+ICAgCXN3aXRjaCAobXNyKSB7DQo+ICAgCWNhc2Ug
TVNSX0ZTX0JBU0U6DQo+IEBAIC0xMTYyLDEyICsxMTY0LDEzIEBAIHN0YXRpYyB2b2lkIHhl
bl9kb193cml0ZV9tc3IodW5zaWduZWQgaW50IG1zciwgdW5zaWduZWQgaW50IGxvdywNCj4g
ICAJZGVmYXVsdDoNCj4gICAJCXZhbCA9ICh1NjQpaGlnaCA8PCAzMiB8IGxvdzsNCj4gICAN
Cj4gLQkJaWYgKCFwbXVfbXNyX3dyaXRlKG1zciwgdmFsKSkgew0KPiAtCQkJaWYgKGVycikN
Cj4gLQkJCQkqZXJyID0gbmF0aXZlX3dyaXRlX21zcl9zYWZlKG1zciwgbG93LCBoaWdoKTsN
Cj4gLQkJCWVsc2UNCj4gLQkJCQluYXRpdmVfd3JpdGVfbXNyKG1zciwgbG93LCBoaWdoKTsN
Cj4gLQkJfQ0KPiArCQlpZiAocG11X21zcl9jaGtfZW11bGF0ZWQobXNyLCAmdmFsLCBmYWxz
ZSwgJmVtdWxhdGVkKSAmJiBlbXVsYXRlZCkNCj4gKwkJCXJldHVybjsNCj4gKw0KPiArCQlp
ZiAoZXJyKQ0KPiArCQkJKmVyciA9IG5hdGl2ZV93cml0ZV9tc3Jfc2FmZShtc3IsIGxvdywg
aGlnaCk7DQo+ICsJCWVsc2UNCj4gKwkJCW5hdGl2ZV93cml0ZV9tc3IobXNyLCBsb3csIGhp
Z2gpOw0KPiAgIAl9DQo+ICAgfQ0KPiAgIA0KPiBkaWZmIC0tZ2l0IGEvYXJjaC94ODYveGVu
L3BtdS5jIGIvYXJjaC94ODYveGVuL3BtdS5jDQo+IGluZGV4IDk1Y2FhZTk3YTM5NC4uYWZi
MDJmNDNlZTNmIDEwMDY0NA0KPiAtLS0gYS9hcmNoL3g4Ni94ZW4vcG11LmMNCj4gKysrIGIv
YXJjaC94ODYveGVuL3BtdS5jDQo+IEBAIC0xMjgsNyArMTI4LDcgQEAgc3RhdGljIGlubGlu
ZSB1aW50MzJfdCBnZXRfZmFtMTVoX2FkZHIodTMyIGFkZHIpDQo+ICAgCXJldHVybiBhZGRy
Ow0KPiAgIH0NCj4gICANCj4gLXN0YXRpYyBpbmxpbmUgYm9vbCBpc19hbWRfcG11X21zcih1
bnNpZ25lZCBpbnQgbXNyKQ0KPiArc3RhdGljIGJvb2wgaXNfYW1kX3BtdV9tc3IodTMyIG1z
cikNCj4gICB7DQo+ICAgCWlmIChib290X2NwdV9kYXRhLng4Nl92ZW5kb3IgIT0gWDg2X1ZF
TkRPUl9BTUQgJiYNCj4gICAJICAgIGJvb3RfY3B1X2RhdGEueDg2X3ZlbmRvciAhPSBYODZf
VkVORE9SX0hZR09OKQ0KPiBAQCAtMTk0LDggKzE5NCw3IEBAIHN0YXRpYyBib29sIGlzX2lu
dGVsX3BtdV9tc3IodTMyIG1zcl9pbmRleCwgaW50ICp0eXBlLCBpbnQgKmluZGV4KQ0KPiAg
IAl9DQo+ICAgfQ0KPiAgIA0KPiAtc3RhdGljIGJvb2wgeGVuX2ludGVsX3BtdV9lbXVsYXRl
KHVuc2lnbmVkIGludCBtc3IsIHU2NCAqdmFsLCBpbnQgdHlwZSwNCj4gLQkJCQkgIGludCBp
bmRleCwgYm9vbCBpc19yZWFkKQ0KPiArc3RhdGljIGJvb2wgeGVuX2ludGVsX3BtdV9lbXVs
YXRlKHUzMiBtc3IsIHU2NCAqdmFsLCBpbnQgdHlwZSwgaW50IGluZGV4LCBib29sIGlzX3Jl
YWQpDQo+ICAgew0KPiAgIAl1aW50NjRfdCAqcmVnID0gTlVMTDsNCj4gICAJc3RydWN0IHhl
bl9wbXVfaW50ZWxfY3R4dCAqY3R4dDsNCj4gQEAgLTI1Nyw3ICsyNTYsNyBAQCBzdGF0aWMg
Ym9vbCB4ZW5faW50ZWxfcG11X2VtdWxhdGUodW5zaWduZWQgaW50IG1zciwgdTY0ICp2YWws
IGludCB0eXBlLA0KPiAgIAlyZXR1cm4gZmFsc2U7DQo+ICAgfQ0KPiAgIA0KPiAtc3RhdGlj
IGJvb2wgeGVuX2FtZF9wbXVfZW11bGF0ZSh1bnNpZ25lZCBpbnQgbXNyLCB1NjQgKnZhbCwg
Ym9vbCBpc19yZWFkKQ0KPiArc3RhdGljIGJvb2wgeGVuX2FtZF9wbXVfZW11bGF0ZSh1MzIg
bXNyLCB1NjQgKnZhbCwgYm9vbCBpc19yZWFkKQ0KPiAgIHsNCj4gICAJdWludDY0X3QgKnJl
ZyA9IE5VTEw7DQo+ICAgCWludCBpLCBvZmYgPSAwOw0KPiBAQCAtMjk4LDggKzI5Nyw3IEBA
IHN0YXRpYyBib29sIHhlbl9hbWRfcG11X2VtdWxhdGUodW5zaWduZWQgaW50IG1zciwgdTY0
ICp2YWwsIGJvb2wgaXNfcmVhZCkNCj4gICAJcmV0dXJuIGZhbHNlOw0KPiAgIH0NCj4gICAN
Cj4gLXN0YXRpYyBib29sIHBtdV9tc3JfY2hrX2VtdWxhdGVkKHVuc2lnbmVkIGludCBtc3Is
IHVpbnQ2NF90ICp2YWwsIGJvb2wgaXNfcmVhZCwNCj4gLQkJCQkgYm9vbCAqZW11bCkNCj4g
K2Jvb2wgcG11X21zcl9jaGtfZW11bGF0ZWQodTMyIG1zciwgdTY0ICp2YWwsIGJvb2wgaXNf
cmVhZCwgYm9vbCAqZW11bCkNCj4gICB7DQo+ICAgCWludCB0eXBlLCBpbmRleCA9IDA7DQo+
ICAgDQo+IEBAIC0zMTMsMjAgKzMxMSw2IEBAIHN0YXRpYyBib29sIHBtdV9tc3JfY2hrX2Vt
dWxhdGVkKHVuc2lnbmVkIGludCBtc3IsIHVpbnQ2NF90ICp2YWwsIGJvb2wgaXNfcmVhZCwN
Cj4gICAJcmV0dXJuIHRydWU7DQo+ICAgfQ0KPiAgIA0KPiAtYm9vbCBwbXVfbXNyX3JlYWQo
dTMyIG1zciwgdTY0ICp2YWwpDQo+IC17DQo+IC0JYm9vbCBlbXVsYXRlZDsNCj4gLQ0KPiAt
CXJldHVybiBwbXVfbXNyX2Noa19lbXVsYXRlZChtc3IsIHZhbCwgdHJ1ZSwgJmVtdWxhdGVk
KSAmJiBlbXVsYXRlZDsNCj4gLX0NCj4gLQ0KPiAtYm9vbCBwbXVfbXNyX3dyaXRlKHUzMiBt
c3IsIHU2NCB2YWwpDQo+IC17DQo+IC0JYm9vbCBlbXVsYXRlZDsNCj4gLQ0KPiAtCXJldHVy
biBwbXVfbXNyX2Noa19lbXVsYXRlZChtc3IsICZ2YWwsIGZhbHNlLCAmZW11bGF0ZWQpICYm
IGVtdWxhdGVkOw0KPiAtfQ0KPiAtDQo+ICAgc3RhdGljIHU2NCB4ZW5fYW1kX3JlYWRfcG1j
KGludCBjb3VudGVyKQ0KPiAgIHsNCj4gICAJc3RydWN0IHhlbl9wbXVfYW1kX2N0eHQgKmN0
eHQ7DQo+IGRpZmYgLS1naXQgYS9hcmNoL3g4Ni94ZW4veGVuLW9wcy5oIGIvYXJjaC94ODYv
eGVuL3hlbi1vcHMuaA0KPiBpbmRleCBhMTg3NWUxMGJlMzEuLmZkZTlmOWQ3NDE1ZiAxMDA2
NDQNCj4gLS0tIGEvYXJjaC94ODYveGVuL3hlbi1vcHMuaA0KPiArKysgYi9hcmNoL3g4Ni94
ZW4veGVuLW9wcy5oDQo+IEBAIC0yNzEsOCArMjcxLDcgQEAgdm9pZCB4ZW5fcG11X2Zpbmlz
aChpbnQgY3B1KTsNCj4gICBzdGF0aWMgaW5saW5lIHZvaWQgeGVuX3BtdV9pbml0KGludCBj
cHUpIHt9DQo+ICAgc3RhdGljIGlubGluZSB2b2lkIHhlbl9wbXVfZmluaXNoKGludCBjcHUp
IHt9DQo+ICAgI2VuZGlmDQo+IC1ib29sIHBtdV9tc3JfcmVhZCh1MzIgbXNyLCB1NjQgKnZh
bCk7DQo+IC1ib29sIHBtdV9tc3Jfd3JpdGUodTMyIG1zciwgdTY0IHZhbCk7DQo+ICtib29s
IHBtdV9tc3JfY2hrX2VtdWxhdGVkKHUzMiBtc3IsIHU2NCAqdmFsLCBib29sIGlzX3JlYWQs
IGJvb2wgKmVtdWwpOw0KPiAgIGludCBwbXVfYXBpY191cGRhdGUodWludDMyX3QgcmVnKTsN
Cj4gICB1NjQgeGVuX3JlYWRfcG1jKGludCBjb3VudGVyKTsNCj4gICANCg0KTWF5IEkgc3Vn
Z2VzdCB0byBnZXQgcmlkIG9mIHRoZSAiZW11bCIgcGFyYW1ldGVyIG9mIHBtdV9tc3JfY2hr
X2VtdWxhdGVkKCk/DQpJdCBoYXMgbm8gcmVhbCB2YWx1ZSwgYXMgcG11X21zcl9jaGtfZW11
bGF0ZWQoKSBjb3VsZCBlYXNpbHkgcmV0dXJuIGZhbHNlIGluDQp0aGUgY2FzZXMgd2hlcmUg
aXQgd291bGQgc2V0ICplbXVsIHRvIGZhbHNlLg0KDQoNCkp1ZXJnZW4NCg==
--------------wbK5qLJRzlz94m02IO59B0xR
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-----

--------------wbK5qLJRzlz94m02IO59B0xR--

--------------UPIgRGhz6y9kAKC46Fb5ZNDF--

--------------1R2qpraBQH5lAxkZ0x5pXs03
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/Ey8FAmgKDNkFAwAAAAAACgkQsN6d1ii/Ey/O
WggAhEABdU9+YuQyKPIQ+RmrWdmsL0iabZcb3x7rJTwABnt69GF5YeQn2PpqIOPLMP2K7lGPPeUW
N3vYbEdQ2iXBM1nEmYVwhlAfqOkHW0mbSu609L69eftNl+EJA/sV/gjM/v6aksZQCP4CQTk9d+x/
rzxIM6fws+5kBUjN2O+jCZBf9C6haQn7tcjQLi+r8OCW6fZPOmU+Or93SThiXbZauLQqSLT8BRlC
IKSpDQe8sfdiIBaKqBb0sObqRSZmNBN935Yf6lW/7YJlSps/VY+xZHQqg7FWNGZKeX3vCsEQ/hDW
q0oL5h9ZNoSFdaaxqsm3qXYBaEPW4xaz7RFclWCdTQ==
=wVQ7
-----END PGP SIGNATURE-----

--------------1R2qpraBQH5lAxkZ0x5pXs03--


From xen-devel-bounces@lists.xenproject.org Thu Apr 24 10:05:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Apr 2025 10:05:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.966073.1356405 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7tSd-0000u4-Pj; Thu, 24 Apr 2025 10:05:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 966073.1356405; Thu, 24 Apr 2025 10: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 1u7tSd-0000tx-MR; Thu, 24 Apr 2025 10:05:39 +0000
Received: by outflank-mailman (input) for mailman id 966073;
 Thu, 24 Apr 2025 10: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=YKuC=XK=tum.de=f.specht@srs-se1.protection.inumbo.net>)
 id 1u7tSc-0000q6-O1
 for xen-devel@lists.xenproject.org; Thu, 24 Apr 2025 10:05:38 +0000
Received: from postout2.mail.lrz.de (postout2.mail.lrz.de
 [2001:4ca0:0:103::81bb:ff8a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id aaa39063-20f3-11f0-9eb1-5ba50f476ded;
 Thu, 24 Apr 2025 12:05:37 +0200 (CEST)
Received: from lxmhs52.srv.lrz.de (localhost [127.0.0.1])
 by postout2.mail.lrz.de (Postfix) with ESMTP id 4Zjs6l6rySzyWN;
 Thu, 24 Apr 2025 12:05:35 +0200 (CEST)
Received: from postout2.mail.lrz.de ([127.0.0.1])
 by lxmhs52.srv.lrz.de (lxmhs52.srv.lrz.de [127.0.0.1]) (amavis, port 20024)
 with LMTP id fFaMnjZ0vLen; Thu, 24 Apr 2025 12:05:35 +0200 (CEST)
Received: from localhost (unknown [37.85.220.79])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange ECDHE (prime256v1) server-signature RSA-PSS (2048 bits)
 server-digest SHA256) (Client did not present a certificate)
 by postout2.mail.lrz.de (Postfix) with ESMTPSA id 4Zjs6k6brkzyVm;
 Thu, 24 Apr 2025 12:05:34 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: aaa39063-20f3-11f0-9eb1-5ba50f476ded
Authentication-Results: postout.lrz.de (amavis); dkim=pass (2048-bit key)
 reason="pass (just generated, assumed good)" header.d=tum.de
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tum.de; h=
	in-reply-to:content-disposition:content-type:content-type
	:mime-version:references:message-id:subject:subject:from:from
	:date:date:received:received; s=tu-postout21; t=1745489135; bh=/
	7l4LvLUGhi/+rWQnguP0LuDPmeBe+N1nMOqzQPBV44=; b=hjrJm0DwqTFLHkOY9
	Lac3zkauD2WBuEcZZ7jMsLGTDaEbUA9kSlUTelGTqxYr33ol0WCCkayNCww2QYQk
	97YFTH9mF1ezzRXQW+amRkdBWI4Sh1Yil2FeAhQHuqGQq4Va3TEJ9HvOszc3yDcL
	hlYtuZLWMZHiT2NP/sg505KtCOWxppM0IBzEKrWAUQ2gogjirKQvMNagp/whpf0X
	n4zjcXnZ+hOndBQ501EcfZF2NMejWmd01Hv3LH9hg6tWUyKBiGR+gjyBhYZN621q
	DwOBW5urWn0XTUc8LoIIUWVy9npHK6kjG/q9MyQ+wr/b4L8uS3KPmzdlkvonbFGk
	YWKrw==
X-Virus-Scanned: by amavisd-new at lrz.de in lxmhs52.srv.lrz.de
X-Spam-Flag: NO
X-Spam-Score: -2.873
X-Spam-Level:
X-Spam-Status: No, score=-2.873 tagged_above=-999 required=5
 tests=[ALL_TRUSTED=-1, BAYES_00=-1.9, DMARC_ADKIM_RELAXED=0.001,
 DMARC_ASPF_RELAXED=0.001, DMARC_POLICY_NONE=0.001, LRZ_DMARC_FAIL=0.001,
 LRZ_DMARC_FAIL_NONE=0.001, LRZ_DMARC_POLICY=0.001, LRZ_DMARC_TUM_FAIL=0.001,
 LRZ_DMARC_TUM_REJECT=3.5, LRZ_DMARC_TUM_REJECT_PO=-3.5,
 LRZ_ENVFROM_FROM_MATCH=0.001, LRZ_ENVFROM_TUM_S=0.001,
 LRZ_FROM_ENVFROM_ALIGNED_STRICT=0.001, LRZ_FROM_HAS_A=0.001,
 LRZ_FROM_HAS_AAAA=0.001, LRZ_FROM_HAS_MDOM=0.001, LRZ_FROM_HAS_MX=0.001,
 LRZ_FROM_HOSTED_DOMAIN=0.001, LRZ_FROM_NAME_IN_ADDR=0.001,
 LRZ_FROM_PHRASE=0.001, LRZ_FROM_PRE_SUR_PHRASE=0.001, LRZ_FROM_TUM_S=0.001,
 LRZ_HAS_CT=0.001, LRZ_HAS_IN_REPLY_TO=0.001, LRZ_HAS_MIME_VERSION=0.001,
 LRZ_HAS_SPF=0.001, LRZ_MSGID_LONG_50=0.001, LRZ_MSGID_NO_FQDN=0.001,
 LRZ_NO_UA_HEADER=0.001, LRZ_SUBJ_FW_RE=0.001] autolearn=no autolearn_force=no
Date: Thu, 24 Apr 2025 12:05:34 +0200
From: Fabian Specht <f.specht@tum.de>
To: Jan Beulich <jbeulich@suse.com>, xen-devel@lists.xenproject.org
Cc: manuel.andreas@tum.de
Subject: Re: UBSan bug in real mode fpu emulation
Message-ID: <s6vpfyfzvp73va7geesgj6pmcuhebglqsz7vpug6c44c3qiawf@l3pxta3f7uxz>
References: <l2jnq5cxgkzcdkndp3mjf76nd7wdp2pbstkqo7llaarmbfqdge@bxdydela4rcf>
 <40a5c44c-4ef1-4852-b441-ea65e31b2345@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <40a5c44c-4ef1-4852-b441-ea65e31b2345@suse.com>

On Thu, Apr 24, 2025 at 08:34:42AM +0200, Jan Beulich wrote:
> Since ...
> 
> > Similar code resides in the same file in lines 87, 125 and 127.
> 
> ... all of these are shifts by 16, could you clarify what it is that you
> want to shift by 4? Imo what we need to do here is add casts to unsigned
> int, for the results thereof to be shifted (or use some extra arithmetic
> to achieve the same effect, e.g. add in 0U). Or we could go and replace
> the shifts by 16 with shifts by 12 (accounting for the later right shift
> by 4, which would then need dropping).
> 
> Jan

I will submit a patch in the coming hours.

~Fabian Specht


From xen-devel-bounces@lists.xenproject.org Thu Apr 24 10:07:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Apr 2025 10:07:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.966092.1356416 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7tUe-0001g1-4I; Thu, 24 Apr 2025 10:07:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 966092.1356416; Thu, 24 Apr 2025 10: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 1u7tUe-0001fu-1V; Thu, 24 Apr 2025 10:07:44 +0000
Received: by outflank-mailman (input) for mailman id 966092;
 Thu, 24 Apr 2025 10:07: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=Yjef=XK=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1u7tUc-0001fm-Ih
 for xen-devel@lists.xenproject.org; Thu, 24 Apr 2025 10:07:43 +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 f44e0a90-20f3-11f0-9eb1-5ba50f476ded;
 Thu, 24 Apr 2025 12:07:39 +0200 (CEST)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-ac2c663a3daso157825066b.2
 for <xen-devel@lists.xenproject.org>; Thu, 24 Apr 2025 03:07:39 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-64-225.play-internet.pl.
 [109.243.64.225]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-ace598f6ba6sm82691566b.86.2025.04.24.03.07.37
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 24 Apr 2025 03:07:37 -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: f44e0a90-20f3-11f0-9eb1-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1745489259; x=1746094059; darn=lists.xenproject.org;
        h=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=g4560j7Y3nADOH6F6SvPGqNl26ADQKXMG4bw42EWp/4=;
        b=FDyg5q46pgzbhxCvO8yRvXt9hfDVixdbS+04kCUARfWYc0QhhG3FXcmTS+Eeqpe3XY
         T4Qm85BkP0kK4oKWumjyFSEjb696F09A4ugU3aUT47sYEUDGDhC565NIHPFZKhlMoAlH
         ylJ7ZkpFpdW9x5xgycdX4b+hBSAv30259HXDOPuct0cTMzEwSB9y21lzuQ5DdNz/DXkP
         3/JLKlywwPp2yfQuEkGt20FeTYj8/DkFpSEeVvqMnjYEEhVGuaNTrQJnaqf8okyPOBJ9
         AQ11q0B2CtLOLDR+EGPajc/N3LJt0EJBzlyCl7b3KXwCKrXVBO4WtMxtfoyIDrHpUarB
         730Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745489259; x=1746094059;
        h=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=g4560j7Y3nADOH6F6SvPGqNl26ADQKXMG4bw42EWp/4=;
        b=lbPmUXFywro2OjzASw/OWZGt7KNmxJ1AIo5z0aXzecYxU82j4qUCursuTgxJIHETl3
         Ot7NbQgVuT9RwWWXVke9BQwtUL/mYg6wCzvGtNcfwrSucsPIFdWwgHMucV3CpdB4ZNDt
         xtoFBNkgZOD1PgIicLgXdcmBzbyMKyQjaV02cCRAOAqcmyfyZVgquRQwzroixNqtuld8
         SM69OnF3NPj50bvv9zyDntzhcIbXw4EvIlkhfNYQJUQypoonqh15uoajdatUHkjm1GZn
         0UxmTu01HDdid5+KFHC8obuqy9/ayGjbJtJeiC2sIQLwJ0fd4b5r94FYTo+F0EBimeFy
         u1cA==
X-Forwarded-Encrypted: i=1; AJvYcCX10kBLbbjIRRvykJ2C3O7MInchb/nUymtmJ/qJiVKaUdBC4TPzGpDwU3K/bL9uxLUBwnEWJ1heaRU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxcsPUhL9F7yzVid3hqecN+12e9b1Q3RsyoOL1IESyNk8mXCChJ
	tvoI1WGe3XNafkQFcLu90+/q4bw6fAJ6ImlfEiir9JZhaTzdnI/s
X-Gm-Gg: ASbGncvvN2NBcXita4RFZ5l0OtZYkrgdcZYk1OtyMOdTtcgNTwnG06YyviqlARkFSD+
	byPINRyI4xuh4EZy25aoKrtXT44cIePXan1LmIF2j5XAMHL5bh/J7XRU6xBIWSo9koShh/n6oZE
	2kTNlbt0O1Tjn10Pgq4III3tU2U4QPQBQbIfH2xF7AT9uBEcyQAigegS/Vx0/ajDu5ky4UB85+m
	gbSVA06Ss3sO5skhUEQm2RAquvzw3h5blijumuRhNiq5APBwdx1tWx8Oo9vbhEAY3FT9WCg4V9H
	FCjjkvHli2QIdxvXjJroa72tn3l3KE8BCXsYic/pCSWO8ptSfI4+5bQrUzRreERxYcrAou192zU
	xI2Ij/JcimZEEBEfr
X-Google-Smtp-Source: AGHT+IFa65V2vtpARRqvAgBv9cqpAGknUdfzqj/k4Lp1V39UGYxEjn/HcJAz0Xv/4pyeBHYFqD1gOw==
X-Received: by 2002:a17:907:6e9e:b0:aca:a686:8558 with SMTP id a640c23a62f3a-ace570cdf79mr155273066b.6.1745489258408;
        Thu, 24 Apr 2025 03:07:38 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------3N15kRSEuV40hOF0dij5S8hz"
Message-ID: <b3515547-6a97-4237-8f38-5406a2575de6@gmail.com>
Date: Thu, 24 Apr 2025 12:07:35 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 4/6] tools: remove qemu-traditional
To: Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Community Manager <community.manager@xenproject.org>,
 Samuel Thibault <samuel.thibault@ens-lyon.org>
References: <20250408123526.14613-1-jgross@suse.com>
 <20250408123526.14613-5-jgross@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <20250408123526.14613-5-jgross@suse.com>

This is a multi-part message in MIME format.
--------------3N15kRSEuV40hOF0dij5S8hz
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 4/8/25 2:35 PM, Juergen Gross wrote:
> Remove qemu traditional from the tree.
>
> Signed-off-by: Juergen Gross<jgross@suse.com>
> ---
>   .gitignore                                    |  3 -
>   CHANGELOG.md                                  |  1 +

For CHANGELOG.md changes LGTM: Acked-by: Oleksii Kurochko<oleksii.kurochko@gmail.com>

~ Oleksii

>   Config.mk                                     | 24 -----
>   INSTALL                                       | 12 ---
>   MAINTAINERS                                   |  4 -
>   README                                        |  2 +-
>   SUPPORT.md                                    | 16 ----
>   config/Tools.mk.in                            |  1 -
>   docs/process/branching-checklist.txt          |  1 -
>   docs/process/release-technician-checklist.txt |  1 -
>   stubdom/Makefile                              | 84 +----------------
>   stubdom/configure                             | 89 -------------------
>   stubdom/configure.ac                          | 15 ----
>   stubdom/ioemu-minios.cfg                      |  6 --
>   tools/Makefile                                | 58 ------------
>   tools/Rules.mk                                |  3 -
>   tools/config.h.in                             |  3 -
>   tools/configure                               | 42 +--------
>   tools/configure.ac                            | 21 +----
>   19 files changed, 10 insertions(+), 376 deletions(-)
>   delete mode 100644 stubdom/ioemu-minios.cfg
>
> diff --git a/.gitignore b/.gitignore
> index 53f5df0003..ccc0bebee6 100644
> --- a/.gitignore
> +++ b/.gitignore
> @@ -255,9 +255,6 @@ LibVNCServer*
>   tools/qemu-xen-dir-remote
>   tools/qemu-xen-dir
>   
> -tools/qemu-xen-traditional-dir-remote
> -tools/qemu-xen-traditional-dir
> -
>   tools/firmware/seabios-dir-remote
>   tools/firmware/seabios-dir
>   
> diff --git a/CHANGELOG.md b/CHANGELOG.md
> index ce4fcf2feb..d150b9fa1b 100644
> --- a/CHANGELOG.md
> +++ b/CHANGELOG.md
> @@ -21,6 +21,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
>      - Smoke tests for the FreeBSD Xen builds in Cirrus CI.
>   
>   ### Removed
> + - Support of qemu-traditional has been removed.
>   
>   ## [4.20.0](https://xenbits.xenproject.org/gitweb/?p=xen.git;a=shortlog;h=RELEASE-4.20.0) - 2025-03-05
>   
> diff --git a/Config.mk b/Config.mk
> index 8be7733d9e..d61257a286 100644
> --- a/Config.mk
> +++ b/Config.mk
> @@ -208,22 +208,12 @@ XEN_EXTFILES_URL ?=https://xenbits.xen.org/xen-extfiles
>   
>   # Where to look for inlined subtrees (for example, from a tarball)
>   QEMU_UPSTREAM_INTREE ?= $(XEN_ROOT)/tools/qemu-xen
> -QEMU_TRADITIONAL_INTREE ?= $(XEN_ROOT)/tools/qemu-xen-traditional
>   
>   
>   # Handle legacy options
>   ifneq (,$(SEABIOS_UPSTREAM_TAG))
>   SEABIOS_UPSTREAM_REVISION ?= $(SEABIOS_UPSTREAM_TAG)
>   endif
> -ifneq (,$(QEMU_REMOTE))
> -QEMU_TRADITIONAL_URL ?= $(QEMU_REMOTE)
> -endif
> -ifneq (,$(CONFIG_QEMU))
> -QEMU_TRADITIONAL_LOC ?= $(CONFIG_QEMU)
> -endif
> -ifneq (,$(QEMU_TAG))
> -QEMU_TRADITIONAL_REVISION ?= $(QEMU_TAG)
> -endif
>   
>   OVMF_UPSTREAM_URL ?=https://xenbits.xen.org/git-http/ovmf.git
>   OVMF_UPSTREAM_REVISION ?= ba91d0292e593df8528b66f99c1b0b14fadc8e16
> @@ -239,20 +229,6 @@ SEABIOS_UPSTREAM_REVISION ?= rel-1.16.3
>   
>   ETHERBOOT_NICS ?= rtl8139 8086100e
>   
> -
> -QEMU_TRADITIONAL_URL ?=https://xenbits.xen.org/git-http/qemu-xen-traditional.git
> -QEMU_TRADITIONAL_REVISION ?= 3d273dd05e51e5a1ffba3d98c7437ee84e8f8764
> -# Wed Jul 15 10:01:40 2020 +0100
> -# qemu-trad: remove Xen path dependencies
> -
> -# Specify which qemu-dm to use. This may be `ioemu' to use the old
> -# Mercurial in-tree version, or a local directory, or a git URL.
> -# QEMU_UPSTREAM_LOC ?= `pwd`/$(XEN_ROOT)/../qemu-xen.git
> -
> -# Defaults for subtree locations
> -QEMU_TRADITIONAL_LOC ?= $(call or,$(wildcard $(QEMU_TRADITIONAL_INTREE)),\
> -                                  $(QEMU_TRADITIONAL_URL))
> -
>   QEMU_UPSTREAM_LOC ?= $(call or,$(wildcard $(QEMU_UPSTREAM_INTREE)),\
>                                  $(QEMU_UPSTREAM_URL))
>   
> diff --git a/INSTALL b/INSTALL
> index 88c1464816..786e3da996 100644
> --- a/INSTALL
> +++ b/INSTALL
> @@ -113,15 +113,6 @@ Build a private copy of SeaBIOS.
>   Use the given SeaBIOS binary instead of compiling a private copy.
>     --with-system-seabios=PATH
>   
> -Build the old qemu used by xm/xend. This is required if existing domUs
> -should be migrated to this host, or if existing domU snapshots should be
> -started with this version of the tools. Only if all domUs used the new
> -upstream qemu during initial start it is safe to disable this option.
> -The old qemu requires rombios, which can be disable along with
> -qemu-traditional.
> -  --enable-qemu-traditional
> -  --enable-rombios
> -
>   The libxl toolstack uses the upstream qemu per default. A private copy
>   will be built. If desired this private copy can be configured with
>   additional options passed to its configure script.
> @@ -245,7 +236,6 @@ locations.
>   XEN_EXTFILES_URL=
>   OVMF_UPSTREAM_URL=
>   QEMU_UPSTREAM_URL=
> -QEMU_TRADITIONAL_URL=
>   SEABIOS_UPSTREAM_URL=
>   MINIOS_UPSTREAM_URL=
>   
> @@ -253,7 +243,6 @@ Using additional CFLAGS to build tools which will run in dom0 is
>   required when building distro packages. These variables can be used to
>   pass RPM_OPT_FLAGS.
>   EXTRA_CFLAGS_XEN_TOOLS=
> -EXTRA_CFLAGS_QEMU_TRADITIONAL=
>   EXTRA_CFLAGS_QEMU_XEN=
>   
>   Additional CFLAGS may be supplied to the build of the hypervisor by
> @@ -340,7 +329,6 @@ sudo make install BOOT_DIR=/ood/path/boot EFI_DIR=/odd/path/efi
>   export WGET=$(type -P false)
>   export GIT=$(type -P false)
>   export EXTRA_CFLAGS_XEN_TOOLS="$RPM_OPT_FLAGS"
> -export EXTRA_CFLAGS_QEMU_TRADITIONAL="$RPM_OPT_FLAGS"
>   export EXTRA_CFLAGS_QEMU_XEN="$RPM_OPT_FLAGS"
>   %configure \
>           --with-initddir=%{_initddir}
> diff --git a/MAINTAINERS b/MAINTAINERS
> index c11b82eca9..7d1b3b8641 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -466,10 +466,6 @@ M:	Marek Marczykowski-Górecki<marmarek@invisiblethingslab.com>
>   S:	Supported
>   F:	tools/python
>   
> -QEMU-DM
> -S:	Supported
> -T:	githttps://xenbits.xenproject.org/git-http/qemu-xen-traditional.git
> -
>   QEMU UPSTREAM
>   M:	Stefano Stabellini<sstabellini@kernel.org>
>   M:	Anthony Perard<anthony.perard@vates.tech>
> diff --git a/README b/README
> index be90be3910..6ee58f7b35 100644
> --- a/README
> +++ b/README
> @@ -80,7 +80,7 @@ disabled at compile time:
>         libnl-3-dev, etc).  Required if network buffering is desired
>         when using Remus with libxl.  See docs/README.remus for detailed
>         information.
> -    * 16-bit x86 assembler, loader and compiler for qemu-traditional / rombios
> +    * 16-bit x86 assembler, loader and compiler for rombios
>         (dev86 rpm or bin86 & bcc debs)
>       * Development install of liblzma for rombios
>       * Development install of libbz2, liblzma, liblzo2, and libzstd for DomU
> diff --git a/SUPPORT.md b/SUPPORT.md
> index e8fd0c251e..5eecf1dcbc 100644
> --- a/SUPPORT.md
> +++ b/SUPPORT.md
> @@ -998,21 +998,6 @@ See the section **Blkback** for image formats supported by QEMU.
>   
>       Status: Supported, not security supported
>   
> -### qemu-xen-traditional ###
> -
> -The Xen Project provides an old version of qemu with modifications
> -which enable use as a device model stub domain.  The old version is
> -normally selected by default only in a stub dm configuration, but it
> -can be requested explicitly in other configurations, for example in
> -`xl` with `device_model_version="QEMU_XEN_TRADITIONAL"`. - - Status, Device Model Stub Domains: Supported, with caveats - 
> Status, as host process device model: No security support, not 
> recommended - -qemu-xen-traditional is security supported only for 
> those available -devices which are supported for mainstream QEMU (see 
> above), with -trusted driver domains (see Device Model Stub Domains). 
> - ## Virtual Firmware ### x86/HVM iPXE @@ -1031,7 +1016,6 @@ as the 
> guest itself. Booting a guest via guest BIOS firmware Status, SeaBIOS 
> (qemu-xen): Supported - Status, ROMBIOS (qemu-xen-traditional): 
> Supported ### x86/HVM OVMF diff --git a/config/Tools.mk.in 
> b/config/Tools.mk.in index 37c071961e..463ab75965 100644 --- 
> a/config/Tools.mk.in +++ b/config/Tools.mk.in @@ -43,7 +43,6 @@ 
> CONFIG_OVMF := @ovmf@ CONFIG_ROMBIOS := @rombios@ CONFIG_SEABIOS := 
> @seabios@ CONFIG_IPXE := @ipxe@ -CONFIG_QEMU_TRAD := 
> @qemu_traditional@ CONFIG_QEMU_XEN := @qemu_xen@ 
> CONFIG_QEMUU_EXTRA_ARGS:= @EXTRA_QEMUU_CONFIGURE_ARGS@ CONFIG_LIBNL := 
> @libnl@ diff --git a/docs/process/branching-checklist.txt 
> b/docs/process/branching-checklist.txt index aa7a27eed5..9632888a56 
> 100644 --- a/docs/process/branching-checklist.txt +++ 
> b/docs/process/branching-checklist.txt @@ -71,7 +71,6 @@ ov=4.0 Ensure 
> references to qemu trees and Mini-OS in xen.git's Config.mk are 
> updated. The variables and there content should be: * 
> QEMU_UPSTREAM_REVISION: qemu-xen-X.Y.0 - * QEMU_TRADITIONAL_REVISION: 
> xen-X.Y.0 * MINIOS_UPSTREAM_REVISION: xen-RELEASE-X.Y.0 Where X.Y is 
> the release version (e.g. 4.17). diff --git 
> a/docs/process/release-technician-checklist.txt 
> b/docs/process/release-technician-checklist.txt index 
> 829e8ec47b..64ed9fd5b2 100644 --- 
> a/docs/process/release-technician-checklist.txt +++ 
> b/docs/process/release-technician-checklist.txt @@ -56,7 +56,6 @@ 
> t=RELEASE-$r * change xen-unstable Config.mk # QEMU_UPSTREAM_REVISION, 
> -# QEMU_TRADITIONAL_REVISION # MINIOS_UPSTREAM_REVISION # (drop any 
> references to the specific commits, e.g. date or title) * change 
> SUPPORT.md heading version number; -unstable or -rc tag diff --git 
> a/stubdom/Makefile b/stubdom/Makefile index 724ce40365..82fc1e90f8 
> 100644 --- a/stubdom/Makefile +++ b/stubdom/Makefile @@ -7,7 +7,6 @@ 
> export PKG_CONFIG_DIR = $(CURDIR)/pkg-config # Remove flags which are 
> meant for tools, e.g. "-m64"
>   export EXTRA_CFLAGS_XEN_TOOLS=
> -export EXTRA_CFLAGS_QEMU_TRADITIONAL=
>   
>   export stubdom=y
>   export debug=y
> @@ -267,43 +266,6 @@ cross-tpmemu: $(TPMEMU_STAMPFILE)
>   .PHONY: $(CROSS_ROOT)
>   $(CROSS_ROOT): cross-newlib cross-zlib cross-libpci
>   
> -QEMU_ROOT := $(shell if [ -d "$(QEMU_TRADITIONAL_LOC)" ]; then echo "$(QEMU_TRADITIONAL_LOC)"; else echo .; fi)
> -
> -ifneq ($(filter ioemu,$(STUBDOM_TARGETS)),)
> -IOEMU_LINKFARM_TARGET := ioemu/linkfarm.stamp
> -endif
> -
> -ifeq ($(QEMU_ROOT),.)
> -$(XEN_ROOT)/tools/qemu-xen-traditional-dir:
> -	$(MAKE) DESTDIR= -C $(XEN_ROOT)/tools qemu-xen-traditional-dir-find
> -
> -ioemu/linkfarm.stamp: $(XEN_ROOT)/tools/qemu-xen-traditional-dir
> -	mkdir -p ioemu
> -	set -e;									\
> -	$(buildmakevars2shellvars);						\
> -	cd ioemu;								\
> -	src="$$XEN_ROOT/tools/qemu-xen-traditional-dir"; export src;		\
> -	(cd $$src && find * -type d						\
> -		$(addprefix ! -path , '*-softmmu*' '*-linux-user*') -print)	\
> -		| xargs mkdir -p;						\
> -	(cd $$src && find *	! -type l  -type f  $(addprefix ! -path ,	\
> -			'*.[oda1]' 'config-*' config.mak qemu-dm qemu-img-xen	\
> -			'*.html' '*.pod' '*-softmmu*' '*-linux-user*'		\
> -			)) >linkfarm.stamp.tmp;				\
> -	cmp -s linkfarm.stamp.tmp linkfarm.stamp &&			\
> -		rm linkfarm.stamp.tmp || {				\
> -		mv linkfarm.stamp.tmp linkfarm.stamp;			\
> -		cat linkfarm.stamp | while read f;			\
> -			do rm -f "$$f"; ln -s "$$src/$$f" "$$f"; done;	\
> -	}
> -else
> -export QEMU_ROOT
> -
> -ioemu/linkfarm.stamp:
> -	mkdir -p ioemu
> -	touch ioemu/linkfarm.stamp
> -endif
> -
>   #######
>   # libraries under tools/libs
>   #######
> @@ -380,29 +342,6 @@ $(TARGETS_MINIOS): mini-os-%:
>                   mkdir -p $@/$$i ; \
>   	done
>   
> -#######
> -# ioemu
> -#######
> -
> -ioemu-minios.gen.cfg: APP_LIBS = evtchn gnttab ctrl guest
> -ioemu-minios.gen.cfg: ioemu-minios.cfg Makefile
> -	$(GEN_config) >$@
> -
> -ioemu-minios-config.mk: ioemu-minios.gen.cfg
> -	MINIOS_CONFIG="$(CURDIR)/$<" CONFIG_FILE="$(CURDIR)/$@" $(MAKE) DESTDIR= -C $(MINI_OS) config
> -
> -.PHONY: ioemu
> -ioemu: cross-zlib cross-libpci libxenguest ioemu-minios-config.mk
> -	[ -f ioemu/config-host.mak ] || \
> -	  ( $(buildmakevars2shellvars); \
> -	    cd ioemu ; \
> -	    LWIPDIR=$(CURDIR)/lwip-$(XEN_TARGET_ARCH) \
> -	    TARGET_CPPFLAGS="$(TARGET_CPPFLAGS) $(shell cat ioemu-minios-config.mk)" \
> -	    TARGET_CFLAGS="$(TARGET_CFLAGS)" \
> -	    TARGET_LDFLAGS="$(TARGET_LDFLAGS)" \
> -	    $(QEMU_ROOT)/xen-setup-stubdom )
> -	$(MAKE) DESTDIR= -C ioemu -f $(QEMU_ROOT)/Makefile
> -
>   ###
>   # C
>   ###
> @@ -496,11 +435,6 @@ xenstorepvh: $(CROSS_ROOT) xenstorepvh-minios-config.mk
>   # minios
>   ########
>   
> -.PHONY: ioemu-stubdom
> -ioemu-stubdom: APP_OBJS=$(CURDIR)/ioemu/i386-stubdom/qemu.a $(CURDIR)/ioemu/i386-stubdom/libqemu.a $(CURDIR)/ioemu/libqemu_common.a
> -ioemu-stubdom: mini-os-$(XEN_TARGET_ARCH)-ioemu lwip-$(XEN_TARGET_ARCH) libxenguest ioemu
> -	DEF_CPPFLAGS="$(TARGET_CPPFLAGS)" DEF_CFLAGS="$(TARGET_CFLAGS)" DEF_LDFLAGS="$(TARGET_LDFLAGS)" MINIOS_CONFIG="$(CURDIR)/ioemu-minios.gen.cfg" $(MAKE) DESTDIR= -C $(MINI_OS) OBJ_DIR=$(CURDIR)/$< LWIPDIR=$(CURDIR)/lwip-$(XEN_TARGET_ARCH) APP_OBJS="$(APP_OBJS)"
> -
>   .PHONY: c-stubdom
>   c-stubdom: mini-os-$(XEN_TARGET_ARCH)-c lwip-$(XEN_TARGET_ARCH) libxenguest c
>   	DEF_CPPFLAGS="$(TARGET_CPPFLAGS)" DEF_CFLAGS="$(TARGET_CFLAGS)" DEF_LDFLAGS="$(TARGET_LDFLAGS)" MINIOS_CONFIG="$(CURDIR)/c/minios.cfg" $(MAKE) DESTDIR= -C $(MINI_OS) OBJ_DIR=$(CURDIR)/$< LWIPDIR=$(CURDIR)/lwip-$(XEN_TARGET_ARCH) APP_OBJS=$(CURDIR)/c/main.a
> @@ -544,13 +478,6 @@ else
>   install: $(STUBDOMPATH)
>   endif
>   
> -install-ioemu: ioemu-stubdom
> -	$(INSTALL_DIR) "$(DESTDIR)$(LIBEXEC_BIN)"
> -	$(INSTALL_PROG) stubdom-dm "$(DESTDIR)$(LIBEXEC_BIN)"
> -	$(INSTALL_DATA) stubdompath.sh "$(DESTDIR)$(LIBEXEC_BIN)"
> -	$(INSTALL_DIR) "$(DESTDIR)$(XENFIRMWAREDIR)"
> -	$(INSTALL_DATA) mini-os-$(XEN_TARGET_ARCH)-ioemu/mini-os.gz "$(DESTDIR)$(XENFIRMWAREDIR)/ioemu-stubdom.gz"
> -
>   install-grub: pv-grub
>   	$(INSTALL_DIR) "$(DESTDIR)$(XENFIRMWAREDIR)"
>   	$(INSTALL_DATA) mini-os-$(XEN_TARGET_ARCH)-grub/mini-os.gz "$(DESTDIR)$(XENFIRMWAREDIR)/pv-grub-$(XEN_TARGET_ARCH).gz" @@ -593,11 +520,6 @@ else uninstall: endif -uninstall-ioemu: - rm -f 
> $(DESTDIR)$(LIBEXEC_BIN)/stubdom-dm - rm -f 
> $(DESTDIR)$(LIBEXEC_BIN)/stubdompath.sh - rm -f 
> $(DESTDIR)$(XENFIRMWAREDIR)/ioemu-stubdom.gz - uninstall-grub: rm -f 
> $(DESTDIR)$(XENFIRMWAREDIR)/pv-grub-$(XEN_TARGET_ARCH).gz @@ -617,11 
> +539,10 @@ uninstall-vtpmmgr: # clean ####### -# Only clean the 
> libxc/ioemu/mini-os part +# Only clean the libxc/mini-os part .PHONY: 
> clean clean: $(foreach lib,$(STUB_LIBS),clean-libxen$(lib)) clean: - 
> rm -fr mini-os-$(XEN_TARGET_ARCH)-ioemu rm -fr 
> mini-os-$(XEN_TARGET_ARCH)-c rm -fr mini-os-$(XEN_TARGET_ARCH)-grub rm 
> -fr mini-os-$(XEN_TARGET_ARCH)-xenstore @@ -636,7 +557,6 @@ clean: rm 
> -f *-minios-config.mk rm -f *.gen.cfg rm -fr pkg-config - -[ ! -d 
> ioemu ] || $(MAKE) DESTDIR= -C ioemu clean -[ ! -d xenstore ] || 
> $(MAKE) -f $(CURDIR)/xenlibs.mk -C xenstore clean -[ ! -d xenstorepvh 
> ] || $(MAKE) -f $(CURDIR)/xenlibs.mk -C xenstorepvh clean @@ -647,7 
> +567,7 @@ crossclean: clean rm -fr newlib-$(XEN_TARGET_ARCH) rm -fr 
> zlib-$(XEN_TARGET_ARCH) pciutils-$(XEN_TARGET_ARCH) rm -fr 
> libs-$(XEN_TARGET_ARCH) - rm -fr ioemu xenstore xenstorepvh + rm -fr 
> xenstore xenstorepvh rm -fr gmp-$(XEN_TARGET_ARCH) rm -fr 
> polarssl-$(XEN_TARGET_ARCH) rm -fr tpm_emulator-$(XEN_TARGET_ARCH) 
> diff --git a/stubdom/configure b/stubdom/configure index 
> 08cacf764c..9dd0e7c796 100755 --- a/stubdom/configure +++ 
> b/stubdom/configure @@ -622,7 +622,6 @@ STUBDOM_UNINSTALL 
> STUBDOM_INSTALL STUBDOM_BUILD STUBDOM_TARGETS -ioemu vtpmmgr vtpm 
> TPMEMU_VERSION @@ -713,14 +712,12 @@ SHELL' ac_subst_files='' 
> ac_user_opts=' enable_option_checking -enable_ioemu_stubdom 
> enable_c_stubdom enable_pv_grub enable_xenstore_stubdom 
> enable_xenstorepvh_stubdom enable_vtpm_stubdom enable_vtpmmgr_stubdom 
> -enable_qemu_traditional enable_debug enable_extfiles ' @@ -1363,7 
> +1360,6 @@ Optional Features: --disable-option-checking ignore 
> unrecognized --enable/--with options --disable-FEATURE do not include 
> FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include 
> FEATURE [ARG=yes] - --enable-ioemu-stubdom Build and install 
> ioemu-stubdom --enable-c-stubdom Build and install c-stubdom (default 
> is DISABLED) --enable-pv-grub Build and install pv-grub (default is 
> DISABLED) --disable-xenstore-stubdom @@ -1375,7 +1371,6 @@ Optional 
> Features: --enable-vtpm-stubdom Build and install vtpm-stubdom 
> --enable-vtpmmgr-stubdom Build and install vtpmmgr-stubdom - 
> --disable-debug Disable debug build of stubdom (default is ENABLED) 
> --disable-extfiles Use xen extfiles repository for libraries (default 
> is ENABLED) @@ -2411,40 +2406,6 @@ case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
>   
>   # Enable/disable stub domains
>   
> -# Check whether --enable-ioemu-stubdom was given.
> -if test ${enable_ioemu_stubdom+y}
> -then :
> -  enableval=$enable_ioemu_stubdom;
> -
> -if test "x$enableval" = "xyes"
> -then :
> -
> -
> -ioemu=y
> -STUBDOM_TARGETS="$STUBDOM_TARGETS ioemu"
> -STUBDOM_BUILD="$STUBDOM_BUILD ioemu-stubdom"
> -STUBDOM_INSTALL="$STUBDOM_INSTALL install-ioemu"
> -STUBDOM_UNINSTALL="$STUBDOM_UNINSTALL install-ioemu"
> -
> -
> -else $as_nop
> -
> -if test "x$enableval" = "xno"
> -then :
> -
> -
> -ioemu=n
> -
> -
> -fi
> -
> -fi
> -
> -
> -fi
> -
> -
> -
>   # Check whether --enable-c-stubdom was given.
>   if test ${enable_c_stubdom+y}
>   then :
> @@ -2685,35 +2646,6 @@ fi
>   
>   
>   
> -# Check whether --enable-qemu-traditional was given.
> -if test ${enable_qemu_traditional+y}
> -then :
> -  enableval=$enable_qemu_traditional;
> -fi
> -
> -if test "x$enable_qemu_traditional" = "xyes"
> -then :
> -
> -    qemu_traditional=y
> -else $as_nop
> -
> -    qemu_traditional=n
> -
> -fi
> -if test "x$ioemu" = "x"
> -then :
> -
> -    ioemu=$qemu_traditional
> -
> -fi
> -echo "x$ioemu$qemu_traditional"
> -if test "x$ioemu$qemu_traditional" = "xyn"
> -then :
> -
> -    as_fn_error $? "IOEMU stubdomain requires qemu-traditional" "$LINENO" 5
> -
> -fi
> -
>   
>   # Check whether --enable-debug was given.
>   if test ${enable_debug+y}
> @@ -4358,27 +4290,6 @@ fi
>   
>   
>   
> -if test "x$ioemu" = "xy" || test "x$ioemu" = "x"
> -then :
> -
> -
> -ioemu=y
> -STUBDOM_TARGETS="$STUBDOM_TARGETS ioemu"
> -STUBDOM_BUILD="$STUBDOM_BUILD ioemu-stubdom"
> -STUBDOM_INSTALL="$STUBDOM_INSTALL install-ioemu"
> -STUBDOM_UNINSTALL="$STUBDOM_UNINSTALL install-ioemu"
> -
> -
> -else $as_nop
> -
> -
> -ioemu=n
> -
> -
> -fi
> -
> -
> -
>   
>   
>   
> diff --git a/stubdom/configure.ac b/stubdom/configure.ac
> index fc736c0387..f07b08c5b3 100644
> --- a/stubdom/configure.ac
> +++ b/stubdom/configure.ac
> @@ -18,7 +18,6 @@ m4_include([../m4/depends.m4])
>   m4_include([../m4/fetcher.m4])
>   
>   # Enable/disable stub domains
> -AX_STUBDOM_CONDITIONAL([ioemu-stubdom], [ioemu])
>   AX_STUBDOM_DEFAULT_DISABLE([c-stubdom], [c])
>   AX_STUBDOM_DEFAULT_DISABLE([pv-grub], [grub])
>   AX_STUBDOM_DEFAULT_ENABLE([xenstore-stubdom], [xenstore])
> @@ -26,19 +25,6 @@ AX_STUBDOM_DEFAULT_ENABLE([xenstorepvh-stubdom], [xenstorepvh])
>   AX_STUBDOM_CONDITIONAL([vtpm-stubdom], [vtpm])
>   AX_STUBDOM_CONDITIONAL([vtpmmgr-stubdom], [vtpmmgr])
>   
> -AC_ARG_ENABLE([qemu-traditional])
> -AS_IF([test "x$enable_qemu_traditional" = "xyes"], [
> -    qemu_traditional=y],[
> -    qemu_traditional=n
> -])
> -AS_IF([test "x$ioemu" = "x"], [
> -    ioemu=$qemu_traditional
> -])
> -echo "x$ioemu$qemu_traditional"
> -AS_IF([test "x$ioemu$qemu_traditional" = "xyn"], [
> -    AC_MSG_ERROR(IOEMU stubdomain requires qemu-traditional)
> -])
> -
>   AX_ARG_DEFAULT_ENABLE([debug], [Disable debug build of stubdom])
>   AX_ARG_DEFAULT_ENABLE([extfiles], [Use xen extfiles repository for libraries])
>   
> @@ -69,7 +55,6 @@ AX_STUBDOM_AUTO_DEPENDS([vtpmmgr], [vtpm])
>   #Conditionally enable these stubdoms based on the presense of dependencies
>   AX_STUBDOM_CONDITIONAL_FINISH([vtpm-stubdom], [vtpm])
>   AX_STUBDOM_CONDITIONAL_FINISH([vtpmmgr-stubdom], [vtpmmgr])
> -AX_STUBDOM_CONDITIONAL_FINISH([ioemu-stubdom], [ioemu])
>   
>   AX_STUBDOM_FINISH
>   AC_OUTPUT()
> diff --git a/stubdom/ioemu-minios.cfg b/stubdom/ioemu-minios.cfg
> deleted file mode 100644
> index 6153ae05f8..0000000000
> --- a/stubdom/ioemu-minios.cfg
> +++ /dev/null
> @@ -1,6 +0,0 @@
> -CONFIG_LIBC=y
> -CONFIG_LWIP=y
> -CONFIG_START_NETWORK=n
> -CONFIG_QEMU_XS_ARGS=y
> -CONFIG_PCIFRONT=y
> -XEN_INTERFACE_VERSION=__XEN_LATEST_INTERFACE_VERSION__
> diff --git a/tools/Makefile b/tools/Makefile
> index e9e1cda305..6ecf7c0da8 100644
> --- a/tools/Makefile
> +++ b/tools/Makefile
> @@ -24,7 +24,6 @@ SUBDIRS-$(CONFIG_Linux) += vchan
>   
>   # do not recurse in to a dir we are about to delete
>   ifneq "$(MAKECMDGOALS)" "distclean" -SUBDIRS-$(CONFIG_QEMU_TRAD) += qemu-xen-traditional-dir 
> SUBDIRS-$(CONFIG_QEMU_XEN) += qemu-xen-dir endif @@ -79,7 +78,6 @@ 
> clean: subdirs-clean .PHONY: distclean distclean: subdirs-distclean 
> clean - rm -rf qemu-xen-traditional-dir 
> qemu-xen-traditional-dir-remote rm -rf qemu-xen-dir 
> qemu-xen-dir-remote qemu-xen-build rm -rf ../config/Tools.mk config.h 
> config.log config.status \ config.cache autom4te.cache @@ -97,11 +95,6 
> @@ QEMU_UPSTREAM_RPATH := -Wl,-rpath,$(LIBEXEC_LIB) 
> IOEMU_EXTRA_LDFLAGS := endif -QEMU_ROOT := $(shell if [ -d "$(QEMU_TRADITIONAL_LOC)" ]; then echo "$(QEMU_TRADITIONAL_LOC)"; else echo .; fi)
> -ifneq ($(QEMU_ROOT),.)
> -export QEMU_ROOT
> -endif
> -
>   # Targets for external trees:
>   #  ${target}-dir-find
>   #    See if the directory exists and check it out if not.
> @@ -136,54 +129,6 @@ endif
>   #   ${TARGET}_LOC
>   #     The ultimate location of the source (either a local dir or remote URL)
>   
> -# External target: qemu-xen-traditional
> -qemu-xen-traditional-dir-find:
> -	set -ex; \
> -	if test -d $(QEMU_TRADITIONAL_LOC); then \
> -		mkdir -p qemu-xen-traditional-dir; \
> -	else \
> -		export GIT=$(GIT); \
> -		$(XEN_ROOT)/scripts/git-checkout.sh $(QEMU_TRADITIONAL_LOC) $(QEMU_TRADITIONAL_REVISION) qemu-xen-traditional-dir; \
> -	fi
> -
> -.PHONY: qemu-xen-traditional-dir-force-update
> -qemu-xen-traditional-dir-force-update: qemu-xen-traditional-dir-find
> -	set -ex; \
> -	if [ "$(QEMU_TRADITIONAL_REVISION)" ]; then \
> -		cd qemu-xen-traditional-dir-remote; \
> -		$(GIT) fetch origin; \
> -		$(GIT) reset --hard $(QEMU_TRADITIONAL_REVISION); \
> -	fi
> -
> -qemu-traditional-recurse = \
> -	set -e; \
> -		$(buildmakevars2shellvars); \
> -		export CONFIG_BLKTAP1=n; \
> -		export BUILDING_QEMU_TRAD=y; \
> -		cd qemu-xen-traditional-dir; \
> -		$(1)
> -
> -subdir-all-qemu-xen-traditional-dir: qemu-xen-traditional-dir-find
> -	$(call qemu-traditional-recurse,\
> -		$(QEMU_ROOT)/xen-setup \
> -		--extra-cflags="-D__XEN_TOOLS__ $(EXTRA_CFLAGS_QEMU_TRADITIONAL)" \
> -		$(IOEMU_EXTRA_LDFLAGS) \
> -		--cpu=$(IOEMU_CPU_ARCH) \
> -		$(IOEMU_CONFIGURE_CROSS); \
> -		$(MAKE) all \
> -	)
> -
> -subdir-install-qemu-xen-traditional-dir: subdir-all-qemu-xen-traditional-dir
> -	$(call qemu-traditional-recurse,$(MAKE) install)
> -
> -subdir-clean-qemu-xen-traditional-dir:
> -	set -e; if test -d qemu-xen-traditional-dir/.; then \
> -		$(MAKE) -C qemu-xen-traditional-dir clean; \
> -	fi
> -subdir-uninstall-qemu-xen-traditional-dir:
> -	rm -f $(D)$(bindir)/qemu-nbd*
> -	rm -f $(D)$(bindir)/qemu-img*
> -
>   # External target: qemu-xen
>   qemu-xen-dir-find:
>   	if test -d $(QEMU_UPSTREAM_LOC) ; then \
> @@ -276,9 +221,6 @@ subtree-force-update:
>   ifeq ($(CONFIG_QEMU_XEN),y)
>   	$(MAKE) qemu-xen-dir-force-update
>   endif
> -ifeq ($(CONFIG_QEMU_TRAD),y)
> -	$(MAKE) qemu-xen-traditional-dir-force-update
> -endif
>   ifeq ($(CONFIG_X86),y)
>   	$(MAKE) -C firmware subtree-force-update
>   endif
> diff --git a/tools/Rules.mk b/tools/Rules.mk
> index 6bd636709f..725c3c32e9 100644
> --- a/tools/Rules.mk
> +++ b/tools/Rules.mk
> @@ -134,12 +134,9 @@ endif
>   
>   CFLAGS_libxenlight += $(CFLAGS_libxenctrl)
>   
> -# Don't add -Werror if we are used by qemu-trad build system.
> -ifndef BUILDING_QEMU_TRAD
>   ifeq ($(CONFIG_WERROR),y)
>   CFLAGS += -Werror
>   endif
> -endif
>   
>   ifeq ($(debug),y)
>   # Use -Og if available, -O0 otherwise
> diff --git a/tools/config.h.in b/tools/config.h.in
> index 0bab3cb136..fe2a94cfc4 100644
> --- a/tools/config.h.in
> +++ b/tools/config.h.in
> @@ -42,9 +42,6 @@
>   /* pygrub enabled */
>   #undef HAVE_PYGRUB
>   
> -/* Qemu traditional enabled */
> -#undef HAVE_QEMU_TRADITIONAL
> -
>   /* ROMBIOS enabled */
>   #undef HAVE_ROMBIOS
>   
> diff --git a/tools/configure b/tools/configure
> index e1f6ea6bf5..27ae7c52fb 100755
> --- a/tools/configure
> +++ b/tools/configure
> @@ -726,7 +726,6 @@ BCC
>   LD86
>   AS86
>   ipxe
> -qemu_traditional
>   LINUX_BACKEND_MODULES
>   pygrub
>   golang
> @@ -835,7 +834,6 @@ enable_seabios
>   enable_golang
>   enable_pygrub
>   with_linux_backend_modules
> -enable_qemu_traditional
>   enable_ipxe
>   with_system_ipxe
>   enable_rombios
> @@ -1518,13 +1516,10 @@ Optional Features:
>     --disable-seabios       Disable SeaBIOS (default is ENABLED)
>     --disable-golang        Disable Go tools (default is ENABLED)
>     --disable-pygrub        Disable pygrub (default is ENABLED)
> -  --enable-qemu-traditional
> -                          Enable qemu traditional device model, (DEFAULT is
> -                          off)
>     --enable-ipxe           Enable in-tree IPXE, (DEFAULT is off, see also
>                             --with-system-ipxe)
> -  --enable-rombios        Enable ROMBIOS, (DEFAULT is on if qemu-traditional
> -                          or ipxe is enabled, otherwise off)
> +  --enable-rombios        Enable ROMBIOS, (DEFAULT is on if ipxe is enabled,
> +                          otherwise off)
>     --enable-libfsimage     Enable libfsimage, (DEFAULT is on if pygrub is
>                             enabled, otherwise off)
>     --enable-systemd        Enable systemd support (default is DISABLED)
> @@ -4838,45 +4833,16 @@ fi
>   LINUX_BACKEND_MODULES="`eval echo $LINUX_BACKEND_MODULES`"
>   
>   
> -# Check whether --enable-qemu-traditional was given.
> -if test ${enable_qemu_traditional+y}
> -then :
> -  enableval=$enable_qemu_traditional;
> -fi
> -
> -if test "x$enable_qemu_traditional" = "xyes"
> -then :
> -
> -
> -printf "%s\n" "#define HAVE_QEMU_TRADITIONAL 1" >>confdefs.h
> -
> -    qemu_traditional=y
> -else $as_nop
> -
> -    qemu_traditional=n
> -
> -fi
> -
> -
>   # Check whether --enable-ipxe was given.
>   if test ${enable_ipxe+y}
>   then :
>     enableval=$enable_ipxe;
> -else $as_nop
> -
> -    if test "x$enable_qemu_traditional" = "xyes"
> -then :
> -
> -        enable_ipxe="yes"
> -
>   else $as_nop
>   
>           enable_ipxe="no"
>   
>   fi
>   
> -fi
> -
>   if test "x$enable_ipxe" = "xno"
>   then :
>     ipxe=n
> @@ -4912,7 +4878,7 @@ then :
>     enableval=$enable_rombios;
>   else $as_nop
>   
> -    if test "x$enable_qemu_traditional" = "xyes" -o "x$enable_ipxe" = "xyes"
> +    if test "x$enable_ipxe" = "xyes"
>   then :
>   
>           enable_rombios="yes"
> @@ -4928,7 +4894,7 @@ fi
>   if test "x$enable_rombios" = "xyes"
>   then :
>   
> -                # Extract the first word of "as86", so it can be a program name with args.
> +    # Extract the first word of "as86", so it can be a program name with args.
>   set dummy as86; ac_word=$2
>   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
>   printf %s "checking for $ac_word... " >&6; }
> diff --git a/tools/configure.ac b/tools/configure.ac
> index 0dd6d747ab..dada1c3b15 100644
> --- a/tools/configure.ac
> +++ b/tools/configure.ac
> @@ -121,25 +121,11 @@ esac])
>   LINUX_BACKEND_MODULES="`eval echo $LINUX_BACKEND_MODULES`"
>   AC_SUBST(LINUX_BACKEND_MODULES)
>   
> -AC_ARG_ENABLE([qemu-traditional],
> -    AS_HELP_STRING([--enable-qemu-traditional],
> -                   [Enable qemu traditional device model, (DEFAULT is off)]))
> -AS_IF([test "x$enable_qemu_traditional" = "xyes"], [
> -AC_DEFINE([HAVE_QEMU_TRADITIONAL], [1], [Qemu traditional enabled])
> -    qemu_traditional=y],[
> -    qemu_traditional=n
> -])
> -AC_SUBST(qemu_traditional)
> -
>   AC_ARG_ENABLE([ipxe],
>       AS_HELP_STRING([--enable-ipxe],
>                      [Enable in-tree IPXE,
>                       (DEFAULT is off, see also --with-system-ipxe)]),,[
> -    AS_IF([test "x$enable_qemu_traditional" = "xyes"], [
> -        enable_ipxe="yes"
> -    ], [
>           enable_ipxe="no"
> -    ])
>   ])
>   AS_IF([test "x$enable_ipxe" = "xno"], [ipxe=n], [ipxe=y])
>   AC_ARG_WITH([system-ipxe],
> @@ -162,18 +148,15 @@ AC_SUBST(ipxe)
>   
>   AC_ARG_ENABLE([rombios],
>       AS_HELP_STRING([--enable-rombios],
> -                   [Enable ROMBIOS, (DEFAULT is on if qemu-traditional or ipxe is enabled,
> +                   [Enable ROMBIOS, (DEFAULT is on if ipxe is enabled,
>                       otherwise off)]),,[
> -    AS_IF([test "x$enable_qemu_traditional" = "xyes" -o "x$enable_ipxe" = "xyes"], [
> +    AS_IF([test "x$enable_ipxe" = "xyes"], [
>           enable_rombios="yes"
>       ], [
>           enable_rombios="no"
>       ])
>   ])
>   AS_IF([test "x$enable_rombios" = "xyes"], [
> -    dnl as86, ld86, and bcc are only required when building rombios. They
> -    dnl are only needed when the host system is x86 but that check is done
> -    dnl for us above when checking if we should build with qemu-traditional.
>       AX_PATH_PROG_OR_FAIL([AS86], [as86])
>       AX_PATH_PROG_OR_FAIL([LD86], [ld86])
>       AX_PATH_PROG_OR_FAIL([BCC], [bcc])
--------------3N15kRSEuV40hOF0dij5S8hz
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3DUTF=
-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class=3D"moz-cite-prefix">On 4/8/25 2:35 PM, Juergen Gross wrote=
:<br>
    </div>
    <blockquote type=3D"cite"
      cite=3D"mid:20250408123526.14613-5-jgross@suse.com">
      <pre wrap=3D"" class=3D"moz-quote-pre">Remove qemu traditional from=
 the tree.

Signed-off-by: Juergen Gross <a class=3D"moz-txt-link-rfc2396E" href=3D"m=
ailto:jgross@suse.com">&lt;jgross@suse.com&gt;</a>
---
 .gitignore                                    |  3 -
 CHANGELOG.md                                  |  1 +</pre>
    </blockquote>
    <pre>For CHANGELOG.md changes LGTM: Acked-by: Oleksii Kurochko <a cla=
ss=3D"moz-txt-link-rfc2396E" href=3D"mailto:oleksii.kurochko@gmail.com">&=
lt;oleksii.kurochko@gmail.com&gt;</a>

~ Oleksii
</pre>
    <blockquote type=3D"cite"
      cite=3D"mid:20250408123526.14613-5-jgross@suse.com">
      <pre wrap=3D"" class=3D"moz-quote-pre">
 Config.mk                                     | 24 -----
 INSTALL                                       | 12 ---
 MAINTAINERS                                   |  4 -
 README                                        |  2 +-
 SUPPORT.md                                    | 16 ----
 config/Tools.mk.in                            |  1 -
 docs/process/branching-checklist.txt          |  1 -
 docs/process/release-technician-checklist.txt |  1 -
 stubdom/Makefile                              | 84 +----------------
 stubdom/configure                             | 89 -------------------
 stubdom/configure.ac                          | 15 ----
 stubdom/ioemu-minios.cfg                      |  6 --
 tools/Makefile                                | 58 ------------
 tools/Rules.mk                                |  3 -
 tools/config.h.in                             |  3 -
 tools/configure                               | 42 +--------
 tools/configure.ac                            | 21 +----
 19 files changed, 10 insertions(+), 376 deletions(-)
 delete mode 100644 stubdom/ioemu-minios.cfg

diff --git a/.gitignore b/.gitignore
index 53f5df0003..ccc0bebee6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -255,9 +255,6 @@ LibVNCServer*
 tools/qemu-xen-dir-remote
 tools/qemu-xen-dir
=20
-tools/qemu-xen-traditional-dir-remote
-tools/qemu-xen-traditional-dir
-
 tools/firmware/seabios-dir-remote
 tools/firmware/seabios-dir
=20
diff --git a/CHANGELOG.md b/CHANGELOG.md
index ce4fcf2feb..d150b9fa1b 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -21,6 +21,7 @@ The format is based on [Keep a Changelog](<a class=3D"m=
oz-txt-link-freetext" href=3D"https://keepachangelog.com/en/1.0.0/">https=
://keepachangelog.com/en/1.0.0/</a>)
    - Smoke tests for the FreeBSD Xen builds in Cirrus CI.
=20
 ### Removed
+ - Support of qemu-traditional has been removed.
=20
 ## [4.20.0](<a class=3D"moz-txt-link-freetext" href=3D"https://xenbits.x=
enproject.org/gitweb/?p=3Dxen.git;a=3Dshortlog;h=3DRELEASE-4.20.0">https:=
//xenbits.xenproject.org/gitweb/?p=3Dxen.git;a=3Dshortlog;h=3DRELEASE-4.2=
0.0</a>) - 2025-03-05
=20
diff --git a/Config.mk b/Config.mk
index 8be7733d9e..d61257a286 100644
--- a/Config.mk
+++ b/Config.mk
@@ -208,22 +208,12 @@ XEN_EXTFILES_URL ?=3D <a class=3D"moz-txt-link-free=
text" href=3D"https://xenbits.xen.org/xen-extfiles">https://xenbits.xen.o=
rg/xen-extfiles</a>
=20
 # Where to look for inlined subtrees (for example, from a tarball)
 QEMU_UPSTREAM_INTREE ?=3D $(XEN_ROOT)/tools/qemu-xen
-QEMU_TRADITIONAL_INTREE ?=3D $(XEN_ROOT)/tools/qemu-xen-traditional
=20
=20
 # Handle legacy options
 ifneq (,$(SEABIOS_UPSTREAM_TAG))
 SEABIOS_UPSTREAM_REVISION ?=3D $(SEABIOS_UPSTREAM_TAG)
 endif
-ifneq (,$(QEMU_REMOTE))
-QEMU_TRADITIONAL_URL ?=3D $(QEMU_REMOTE)
-endif
-ifneq (,$(CONFIG_QEMU))
-QEMU_TRADITIONAL_LOC ?=3D $(CONFIG_QEMU)
-endif
-ifneq (,$(QEMU_TAG))
-QEMU_TRADITIONAL_REVISION ?=3D $(QEMU_TAG)
-endif
=20
 OVMF_UPSTREAM_URL ?=3D <a class=3D"moz-txt-link-freetext" href=3D"https:=
//xenbits.xen.org/git-http/ovmf.git">https://xenbits.xen.org/git-http/ovm=
f.git</a>
 OVMF_UPSTREAM_REVISION ?=3D ba91d0292e593df8528b66f99c1b0b14fadc8e16
@@ -239,20 +229,6 @@ SEABIOS_UPSTREAM_REVISION ?=3D rel-1.16.3
=20
 ETHERBOOT_NICS ?=3D rtl8139 8086100e
=20
-
-QEMU_TRADITIONAL_URL ?=3D <a class=3D"moz-txt-link-freetext" href=3D"htt=
ps://xenbits.xen.org/git-http/qemu-xen-traditional.git">https://xenbits.x=
en.org/git-http/qemu-xen-traditional.git</a>
-QEMU_TRADITIONAL_REVISION ?=3D 3d273dd05e51e5a1ffba3d98c7437ee84e8f8764
-# Wed Jul 15 10:01:40 2020 +0100
-# qemu-trad: remove Xen path dependencies
-
-# Specify which qemu-dm to use. This may be `ioemu' to use the old
-# Mercurial in-tree version, or a local directory, or a git URL.
-# QEMU_UPSTREAM_LOC ?=3D `pwd`/$(XEN_ROOT)/../qemu-xen.git
-
-# Defaults for subtree locations
-QEMU_TRADITIONAL_LOC ?=3D $(call or,$(wildcard $(QEMU_TRADITIONAL_INTREE=
)),\
-                                  $(QEMU_TRADITIONAL_URL))
-
 QEMU_UPSTREAM_LOC ?=3D $(call or,$(wildcard $(QEMU_UPSTREAM_INTREE)),\
                                $(QEMU_UPSTREAM_URL))
=20
diff --git a/INSTALL b/INSTALL
index 88c1464816..786e3da996 100644
--- a/INSTALL
+++ b/INSTALL
@@ -113,15 +113,6 @@ Build a private copy of SeaBIOS.
 Use the given SeaBIOS binary instead of compiling a private copy.
   --with-system-seabios=3DPATH
=20
-Build the old qemu used by xm/xend. This is required if existing domUs
-should be migrated to this host, or if existing domU snapshots should be=

-started with this version of the tools. Only if all domUs used the new
-upstream qemu during initial start it is safe to disable this option.
-The old qemu requires rombios, which can be disable along with
-qemu-traditional.
-  --enable-qemu-traditional
-  --enable-rombios
-
 The libxl toolstack uses the upstream qemu per default. A private copy
 will be built. If desired this private copy can be configured with
 additional options passed to its configure script.
@@ -245,7 +236,6 @@ locations.
 XEN_EXTFILES_URL=3D
 OVMF_UPSTREAM_URL=3D
 QEMU_UPSTREAM_URL=3D
-QEMU_TRADITIONAL_URL=3D
 SEABIOS_UPSTREAM_URL=3D
 MINIOS_UPSTREAM_URL=3D
=20
@@ -253,7 +243,6 @@ Using additional CFLAGS to build tools which will run=
 in dom0 is
 required when building distro packages. These variables can be used to
 pass RPM_OPT_FLAGS.
 EXTRA_CFLAGS_XEN_TOOLS=3D
-EXTRA_CFLAGS_QEMU_TRADITIONAL=3D
 EXTRA_CFLAGS_QEMU_XEN=3D
=20
 Additional CFLAGS may be supplied to the build of the hypervisor by
@@ -340,7 +329,6 @@ sudo make install BOOT_DIR=3D/ood/path/boot EFI_DIR=3D=
/odd/path/efi
 export WGET=3D$(type -P false)
 export GIT=3D$(type -P false)
 export EXTRA_CFLAGS_XEN_TOOLS=3D"$RPM_OPT_FLAGS"
-export EXTRA_CFLAGS_QEMU_TRADITIONAL=3D"$RPM_OPT_FLAGS"
 export EXTRA_CFLAGS_QEMU_XEN=3D"$RPM_OPT_FLAGS"
 %configure \
         --with-initddir=3D%{_initddir}
diff --git a/MAINTAINERS b/MAINTAINERS
index c11b82eca9..7d1b3b8641 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -466,10 +466,6 @@ M:	Marek Marczykowski-G=C3=B3recki <a class=3D"moz-t=
xt-link-rfc2396E" href=3D"mailto:marmarek@invisiblethingslab.com">&lt;mar=
marek@invisiblethingslab.com&gt;</a>
 S:	Supported
 F:	tools/python
=20
-QEMU-DM
-S:	Supported
-T:	git <a class=3D"moz-txt-link-freetext" href=3D"https://xenbits.xenpro=
ject.org/git-http/qemu-xen-traditional.git">https://xenbits.xenproject.or=
g/git-http/qemu-xen-traditional.git</a>
-
 QEMU UPSTREAM
 M:	Stefano Stabellini <a class=3D"moz-txt-link-rfc2396E" href=3D"mailto:=
sstabellini@kernel.org">&lt;sstabellini@kernel.org&gt;</a>
 M:	Anthony Perard <a class=3D"moz-txt-link-rfc2396E" href=3D"mailto:anth=
ony.perard@vates.tech">&lt;anthony.perard@vates.tech&gt;</a>
diff --git a/README b/README
index be90be3910..6ee58f7b35 100644
--- a/README
+++ b/README
@@ -80,7 +80,7 @@ disabled at compile time:
       libnl-3-dev, etc).  Required if network buffering is desired
       when using Remus with libxl.  See docs/README.remus for detailed
       information.
-    * 16-bit x86 assembler, loader and compiler for qemu-traditional / r=
ombios
+    * 16-bit x86 assembler, loader and compiler for rombios
       (dev86 rpm or bin86 &amp; bcc debs)
     * Development install of liblzma for rombios
     * Development install of libbz2, liblzma, liblzo2, and libzstd for D=
omU
diff --git a/SUPPORT.md b/SUPPORT.md
index e8fd0c251e..5eecf1dcbc 100644
--- a/SUPPORT.md
+++ b/SUPPORT.md
@@ -998,21 +998,6 @@ See the section **Blkback** for image formats suppor=
ted by QEMU.
=20
     Status: Supported, not security supported
=20
-### qemu-xen-traditional ###
-
-The Xen Project provides an old version of qemu with modifications
-which enable use as a device model stub domain.  The old version is
-normally selected by default only in a stub dm configuration, but it
-can be requested explicitly in other configurations, for example in
-`xl` with `device_model_version=3D"QEMU_XEN_TRADITIONAL<a class=3D"moz-t=
xt-link-rfc2396E" href=3D"mailto:`.--Status,DeviceModelStubDomains:Suppor=
ted,withcaveats-Status,ashostprocessdevicemodel:Nosecuritysupport,notreco=
mmended--qemu-xen-traditionalissecuritysupportedonlyforthoseavailable-dev=
iceswhicharesupportedformainstreamQEMU(seeabove),with-trusteddriverdomain=
s(seeDeviceModelStubDomains).-##VirtualFirmware###x86/HVMiPXE@@-1031,7+10=
16,6@@astheguestitself.BootingaguestviaguestBIOSfirmwareStatus,SeaBIOS(qe=
mu-xen):Supported-Status,ROMBIOS(qemu-xen-traditional):Supported###x86/HV=
MOVMFdiff--gita/config/Tools.mk.inb/config/Tools.mk.inindex37c071961e..46=
3ab75965100644---a/config/Tools.mk.in+++b/config/Tools.mk.in@@-43,7+43,6@=
@CONFIG_OVMF:=3D@ovmf@CONFIG_ROMBIOS:=3D@rombios@CONFIG_SEABIOS:=3D@seabi=
os@CONFIG_IPXE:=3D@ipxe@-CONFIG_QEMU_TRAD:=3D@qemu_traditional@CONFIG_QEM=
U_XEN:=3D@qemu_xen@CONFIG_QEMUU_EXTRA_ARGS:=3D@EXTRA_QEMUU_CONFIGURE_ARGS=
@CONFIG_LIBNL:=3D@libnl@diff--gita/docs/process/branching-checklist.txtb/=
docs/process/branching-checklist.txtindexaa7a27eed5..9632888a56100644---a=
/docs/process/branching-checklist.txt+++b/docs/process/branching-checklis=
t.txt@@-71,7+71,6@@ov=3D4.0EnsurereferencestoqemutreesandMini-OSinxen.git=
'sConfig.mkareupdated.Thevariablesandtherecontentshouldbe:*QEMU_UPSTREAM_=
REVISION:qemu-xen-X.Y.0-*QEMU_TRADITIONAL_REVISION:xen-X.Y.0*MINIOS_UPSTR=
EAM_REVISION:xen-RELEASE-X.Y.0WhereX.Yisthereleaseversion(e.g.4.17).diff-=
-gita/docs/process/release-technician-checklist.txtb/docs/process/release=
-technician-checklist.txtindex829e8ec47b..64ed9fd5b2100644---a/docs/proce=
ss/release-technician-checklist.txt+++b/docs/process/release-technician-c=
hecklist.txt@@-56,7+56,6@@t=3DRELEASE-$r*changexen-unstableConfig.mk#QEMU=
_UPSTREAM_REVISION,-#QEMU_TRADITIONAL_REVISION#MINIOS_UPSTREAM_REVISION#(=
dropanyreferencestothespecificcommits,e.g.dateortitle)*changeSUPPORT.mdhe=
adingversionnumber;-unstableor-rctagdiff--gita/stubdom/Makefileb/stubdom/=
Makefileindex724ce40365..82fc1e90f8100644---a/stubdom/Makefile+++b/stubdo=
m/Makefile@@-7,7+7,6@@exportPKG_CONFIG_DIR=3D$(CURDIR)/pkg-config#Removef=
lagswhicharemeantfortools,e.g.">"`.
-
-    Status, Device Model Stub Domains: Supported, with caveats
-    Status, as host process device model: No security support, not recom=
mended
-
-qemu-xen-traditional is security supported only for those available
-devices which are supported for mainstream QEMU (see above), with
-trusted driver domains (see Device Model Stub Domains).
-
 ## Virtual Firmware
=20
 ### x86/HVM iPXE
@@ -1031,7 +1016,6 @@ as the guest itself.
 Booting a guest via guest BIOS firmware
=20
     Status, SeaBIOS (qemu-xen): Supported
-    Status, ROMBIOS (qemu-xen-traditional): Supported
=20
 ### x86/HVM OVMF
=20
diff --git a/config/Tools.mk.in b/config/Tools.mk.in
index 37c071961e..463ab75965 100644
--- a/config/Tools.mk.in
+++ b/config/Tools.mk.in
@@ -43,7 +43,6 @@ CONFIG_OVMF         :=3D @ovmf@
 CONFIG_ROMBIOS      :=3D @rombios@
 CONFIG_SEABIOS      :=3D @seabios@
 CONFIG_IPXE         :=3D @ipxe@
-CONFIG_QEMU_TRAD    :=3D @qemu_traditional@
 CONFIG_QEMU_XEN     :=3D @qemu_xen@
 CONFIG_QEMUU_EXTRA_ARGS:=3D @EXTRA_QEMUU_CONFIGURE_ARGS@
 CONFIG_LIBNL        :=3D @libnl@
diff --git a/docs/process/branching-checklist.txt b/docs/process/branchin=
g-checklist.txt
index aa7a27eed5..9632888a56 100644
--- a/docs/process/branching-checklist.txt
+++ b/docs/process/branching-checklist.txt
@@ -71,7 +71,6 @@ ov=3D4.0
 Ensure references to qemu trees and Mini-OS in xen.git's Config.mk are u=
pdated.
 The variables and there content should be:
   * QEMU_UPSTREAM_REVISION: qemu-xen-X.Y.0
-  * QEMU_TRADITIONAL_REVISION: xen-X.Y.0
   * MINIOS_UPSTREAM_REVISION: xen-RELEASE-X.Y.0
 Where X.Y is the release version (e.g. 4.17).
=20
diff --git a/docs/process/release-technician-checklist.txt b/docs/process=
/release-technician-checklist.txt
index 829e8ec47b..64ed9fd5b2 100644
--- a/docs/process/release-technician-checklist.txt
+++ b/docs/process/release-technician-checklist.txt
@@ -56,7 +56,6 @@ t=3DRELEASE-$r
=20
 * change xen-unstable Config.mk
 #   QEMU_UPSTREAM_REVISION,
-#   QEMU_TRADITIONAL_REVISION
 #   MINIOS_UPSTREAM_REVISION
 #     (drop any references to the specific commits, e.g. date or title)
 * change SUPPORT.md heading version number; -unstable or -rc tag
diff --git a/stubdom/Makefile b/stubdom/Makefile
index 724ce40365..82fc1e90f8 100644
--- a/stubdom/Makefile
+++ b/stubdom/Makefile
@@ -7,7 +7,6 @@ export PKG_CONFIG_DIR =3D $(CURDIR)/pkg-config
=20
 # Remove flags which are meant for tools, e.g. "</a>-m64"
 export EXTRA_CFLAGS_XEN_TOOLS=3D
-export EXTRA_CFLAGS_QEMU_TRADITIONAL=3D
=20
 export stubdom=3Dy
 export debug=3Dy
@@ -267,43 +266,6 @@ cross-tpmemu: $(TPMEMU_STAMPFILE)
 .PHONY: $(CROSS_ROOT)
 $(CROSS_ROOT): cross-newlib cross-zlib cross-libpci
=20
-QEMU_ROOT :=3D $(shell if [ -d "$(QEMU_TRADITIONAL_LOC)" ]; then echo "$=
(QEMU_TRADITIONAL_LOC)"; else echo .; fi)
-
-ifneq ($(filter ioemu,$(STUBDOM_TARGETS)),)
-IOEMU_LINKFARM_TARGET :=3D ioemu/linkfarm.stamp
-endif
-
-ifeq ($(QEMU_ROOT),.)
-$(XEN_ROOT)/tools/qemu-xen-traditional-dir:
-	$(MAKE) DESTDIR=3D -C $(XEN_ROOT)/tools qemu-xen-traditional-dir-find
-
-ioemu/linkfarm.stamp: $(XEN_ROOT)/tools/qemu-xen-traditional-dir
-	mkdir -p ioemu
-	set -e;									\
-	$(buildmakevars2shellvars);						\
-	cd ioemu;								\
-	src=3D"$$XEN_ROOT/tools/qemu-xen-traditional-dir"; export src;		\
-	(cd $$src &amp;&amp; find * -type d						\
-		$(addprefix ! -path , '*-softmmu*' '*-linux-user*') -print)	\
-		| xargs mkdir -p;						\
-	(cd $$src &amp;&amp; find *	! -type l  -type f  $(addprefix ! -path ,	\=

-			'*.[oda1]' 'config-*' config.mak qemu-dm qemu-img-xen	\
-			'*.html' '*.pod' '*-softmmu*' '*-linux-user*'		\
-			)) &gt;linkfarm.stamp.tmp;				\
-	cmp -s linkfarm.stamp.tmp linkfarm.stamp &amp;&amp;			\
-		rm linkfarm.stamp.tmp || {				\
-		mv linkfarm.stamp.tmp linkfarm.stamp;			\
-		cat linkfarm.stamp | while read f;			\
-			do rm -f "$$f"; ln -s "$$src/$$f" "$$f"; done;	\
-	}
-else
-export QEMU_ROOT
-
-ioemu/linkfarm.stamp:
-	mkdir -p ioemu
-	touch ioemu/linkfarm.stamp
-endif
-
 #######
 # libraries under tools/libs
 #######
@@ -380,29 +342,6 @@ $(TARGETS_MINIOS): mini-os-%:
                 mkdir -p $@/$$i ; \
 	done
=20
-#######
-# ioemu
-#######
-
-ioemu-minios.gen.cfg: APP_LIBS =3D evtchn gnttab ctrl guest
-ioemu-minios.gen.cfg: ioemu-minios.cfg Makefile
-	$(GEN_config) &gt;$@
-
-ioemu-minios-config.mk: ioemu-minios.gen.cfg
-	MINIOS_CONFIG=3D"$(CURDIR)/$&lt;" CONFIG_FILE=3D"$(CURDIR)/$@" $(MAKE) =
DESTDIR=3D -C $(MINI_OS) config
-
-.PHONY: ioemu
-ioemu: cross-zlib cross-libpci libxenguest ioemu-minios-config.mk
-	[ -f ioemu/config-host.mak ] || \
-	  ( $(buildmakevars2shellvars); \
-	    cd ioemu ; \
-	    LWIPDIR=3D$(CURDIR)/lwip-$(XEN_TARGET_ARCH) \
-	    TARGET_CPPFLAGS=3D"$(TARGET_CPPFLAGS) $(shell cat ioemu-minios-conf=
ig.mk)" \
-	    TARGET_CFLAGS=3D"$(TARGET_CFLAGS)" \
-	    TARGET_LDFLAGS=3D"$(TARGET_LDFLAGS)" \
-	    $(QEMU_ROOT)/xen-setup-stubdom )
-	$(MAKE) DESTDIR=3D -C ioemu -f $(QEMU_ROOT)/Makefile
-
 ###
 # C
 ###
@@ -496,11 +435,6 @@ xenstorepvh: $(CROSS_ROOT) xenstorepvh-minios-config=
=2Emk
 # minios
 ########
=20
-.PHONY: ioemu-stubdom
-ioemu-stubdom: APP_OBJS=3D$(CURDIR)/ioemu/i386-stubdom/qemu.a $(CURDIR)/=
ioemu/i386-stubdom/libqemu.a $(CURDIR)/ioemu/libqemu_common.a
-ioemu-stubdom: mini-os-$(XEN_TARGET_ARCH)-ioemu lwip-$(XEN_TARGET_ARCH) =
libxenguest ioemu
-	DEF_CPPFLAGS=3D"$(TARGET_CPPFLAGS)" DEF_CFLAGS=3D"$(TARGET_CFLAGS)" DEF=
_LDFLAGS=3D"$(TARGET_LDFLAGS)" MINIOS_CONFIG=3D"$(CURDIR)/ioemu-minios.ge=
n.cfg" $(MAKE) DESTDIR=3D -C $(MINI_OS) OBJ_DIR=3D$(CURDIR)/$&lt; LWIPDIR=
=3D$(CURDIR)/lwip-$(XEN_TARGET_ARCH) APP_OBJS=3D"$(APP_OBJS)"
-
 .PHONY: c-stubdom
 c-stubdom: mini-os-$(XEN_TARGET_ARCH)-c lwip-$(XEN_TARGET_ARCH) libxengu=
est c
 	DEF_CPPFLAGS=3D"$(TARGET_CPPFLAGS)" DEF_CFLAGS=3D"$(TARGET_CFLAGS)" DEF=
_LDFLAGS=3D"$(TARGET_LDFLAGS)" MINIOS_CONFIG=3D"$(CURDIR)/c/minios.cfg" $=
(MAKE) DESTDIR=3D -C $(MINI_OS) OBJ_DIR=3D$(CURDIR)/$&lt; LWIPDIR=3D$(CUR=
DIR)/lwip-$(XEN_TARGET_ARCH) APP_OBJS=3D$(CURDIR)/c/main.a
@@ -544,13 +478,6 @@ else
 install: $(STUBDOMPATH)
 endif
=20
-install-ioemu: ioemu-stubdom
-	$(INSTALL_DIR) "$(DESTDIR)$(LIBEXEC_BIN)"
-	$(INSTALL_PROG) stubdom-dm "$(DESTDIR)$(LIBEXEC_BIN)"
-	$(INSTALL_DATA) stubdompath.sh "$(DESTDIR)$(LIBEXEC_BIN)"
-	$(INSTALL_DIR) "$(DESTDIR)$(XENFIRMWAREDIR)"
-	$(INSTALL_DATA) mini-os-$(XEN_TARGET_ARCH)-ioemu/mini-os.gz "$(DESTDIR)=
$(XENFIRMWAREDIR)/ioemu-stubdom.gz"
-
 install-grub: pv-grub
 	$(INSTALL_DIR) "$(DESTDIR)$(XENFIRMWAREDIR)"
 	$(INSTALL_DATA) mini-os-$(XEN_TARGET_ARCH)-grub/mini-os.gz "$(DESTDIR)$=
(XENFIRMWAREDIR)/pv-grub-$(XEN_TARGET_ARCH).gz<a class=3D"moz-txt-link-rf=
c2396E" href=3D"mailto:@@-593,11+520,6@@elseuninstall:endif-uninstall-ioe=
mu:-rm-f$(DESTDIR)$(LIBEXEC_BIN)/stubdom-dm-rm-f$(DESTDIR)$(LIBEXEC_BIN)/=
stubdompath.sh-rm-f$(DESTDIR)$(XENFIRMWAREDIR)/ioemu-stubdom.gz-uninstall=
-grub:rm-f$(DESTDIR)$(XENFIRMWAREDIR)/pv-grub-$(XEN_TARGET_ARCH).gz@@-617=
,11+539,10@@uninstall-vtpmmgr:#clean#######-#Onlycleanthelibxc/ioemu/mini=
-ospart+#Onlycleanthelibxc/mini-ospart.PHONY:cleanclean:$(foreachlib,$(ST=
UB_LIBS),clean-libxen$(lib))clean:-rm-frmini-os-$(XEN_TARGET_ARCH)-ioemur=
m-frmini-os-$(XEN_TARGET_ARCH)-crm-frmini-os-$(XEN_TARGET_ARCH)-grubrm-fr=
mini-os-$(XEN_TARGET_ARCH)-xenstore@@-636,7+557,6@@clean:rm-f*-minios-con=
fig.mkrm-f*.gen.cfgrm-frpkg-config--[!-dioemu]||$(MAKE)DESTDIR=3D-Cioemuc=
lean-[!-dxenstore]||$(MAKE)-f$(CURDIR)/xenlibs.mk-Cxenstoreclean-[!-dxens=
torepvh]||$(MAKE)-f$(CURDIR)/xenlibs.mk-Cxenstorepvhclean@@-647,7+567,7@@=
crossclean:cleanrm-frnewlib-$(XEN_TARGET_ARCH)rm-frzlib-$(XEN_TARGET_ARCH=
)pciutils-$(XEN_TARGET_ARCH)rm-frlibs-$(XEN_TARGET_ARCH)-rm-frioemuxensto=
rexenstorepvh+rm-frxenstorexenstorepvhrm-frgmp-$(XEN_TARGET_ARCH)rm-frpol=
arssl-$(XEN_TARGET_ARCH)rm-frtpm_emulator-$(XEN_TARGET_ARCH)diff--gita/st=
ubdom/configureb/stubdom/configureindex08cacf764c..9dd0e7c796100755---a/s=
tubdom/configure+++b/stubdom/configure@@-622,7+622,6@@STUBDOM_UNINSTALLST=
UBDOM_INSTALLSTUBDOM_BUILDSTUBDOM_TARGETS-ioemuvtpmmgrvtpmTPMEMU_VERSION@=
@-713,14+712,12@@SHELL'ac_subst_files=3D''ac_user_opts=3D'enable_option_c=
hecking-enable_ioemu_stubdomenable_c_stubdomenable_pv_grubenable_xenstore=
_stubdomenable_xenstorepvh_stubdomenable_vtpm_stubdomenable_vtpmmgr_stubd=
om-enable_qemu_traditionalenable_debugenable_extfiles'@@-1363,7+1360,6@@O=
ptionalFeatures:--disable-option-checkingignoreunrecognized--enable/--wit=
hoptions--disable-FEATUREdonotincludeFEATURE(sameas--enable-FEATURE=3Dno)=
--enable-FEATURE[=3DARG]includeFEATURE[ARG=3Dyes]---enable-ioemu-stubdomB=
uildandinstallioemu-stubdom--enable-c-stubdomBuildandinstallc-stubdom(def=
aultisDISABLED)--enable-pv-grubBuildandinstallpv-grub(defaultisDISABLED)-=
-disable-xenstore-stubdom@@-1375,7+1371,6@@OptionalFeatures:--enable-vtpm=
-stubdomBuildandinstallvtpm-stubdom--enable-vtpmmgr-stubdomBuildandinstal=
lvtpmmgr-stubdom---disable-debugDisabledebugbuildofstubdom(defaultisENABL=
ED)--disable-extfilesUsexenextfilesrepositoryforlibraries(defaultisENABLE=
D)@@-2411,40+2406,6@@case$host_osin*\*)host_os=3D`echo">"
@@ -593,11 +520,6 @@ else
 uninstall:
 endif
=20
-uninstall-ioemu:
-	rm -f $(DESTDIR)$(LIBEXEC_BIN)/stubdom-dm
-	rm -f $(DESTDIR)$(LIBEXEC_BIN)/stubdompath.sh
-	rm -f $(DESTDIR)$(XENFIRMWAREDIR)/ioemu-stubdom.gz
-
 uninstall-grub:
 	rm -f $(DESTDIR)$(XENFIRMWAREDIR)/pv-grub-$(XEN_TARGET_ARCH).gz
=20
@@ -617,11 +539,10 @@ uninstall-vtpmmgr:
 # clean
 #######
=20
-# Only clean the libxc/ioemu/mini-os part
+# Only clean the libxc/mini-os part
 .PHONY: clean
 clean: $(foreach lib,$(STUB_LIBS),clean-libxen$(lib))
 clean:
-	rm -fr mini-os-$(XEN_TARGET_ARCH)-ioemu
 	rm -fr mini-os-$(XEN_TARGET_ARCH)-c
 	rm -fr mini-os-$(XEN_TARGET_ARCH)-grub
 	rm -fr mini-os-$(XEN_TARGET_ARCH)-xenstore
@@ -636,7 +557,6 @@ clean:
 	rm -f *-minios-config.mk
 	rm -f *.gen.cfg
 	rm -fr pkg-config
-	-[ ! -d ioemu ] || $(MAKE) DESTDIR=3D -C ioemu clean
 	-[ ! -d xenstore ] || $(MAKE) -f $(CURDIR)/xenlibs.mk -C xenstore clean=

 	-[ ! -d xenstorepvh ] || $(MAKE) -f $(CURDIR)/xenlibs.mk -C xenstorepvh=
 clean
=20
@@ -647,7 +567,7 @@ crossclean: clean
 	rm -fr newlib-$(XEN_TARGET_ARCH)
 	rm -fr zlib-$(XEN_TARGET_ARCH) pciutils-$(XEN_TARGET_ARCH)
 	rm -fr libs-$(XEN_TARGET_ARCH)
-	rm -fr ioemu xenstore xenstorepvh
+	rm -fr xenstore xenstorepvh
 	rm -fr gmp-$(XEN_TARGET_ARCH)
 	rm -fr polarssl-$(XEN_TARGET_ARCH)
 	rm -fr tpm_emulator-$(XEN_TARGET_ARCH)
diff --git a/stubdom/configure b/stubdom/configure
index 08cacf764c..9dd0e7c796 100755
--- a/stubdom/configure
+++ b/stubdom/configure
@@ -622,7 +622,6 @@ STUBDOM_UNINSTALL
 STUBDOM_INSTALL
 STUBDOM_BUILD
 STUBDOM_TARGETS
-ioemu
 vtpmmgr
 vtpm
 TPMEMU_VERSION
@@ -713,14 +712,12 @@ SHELL'
 ac_subst_files=3D''
 ac_user_opts=3D'
 enable_option_checking
-enable_ioemu_stubdom
 enable_c_stubdom
 enable_pv_grub
 enable_xenstore_stubdom
 enable_xenstorepvh_stubdom
 enable_vtpm_stubdom
 enable_vtpmmgr_stubdom
-enable_qemu_traditional
 enable_debug
 enable_extfiles
 '
@@ -1363,7 +1360,6 @@ Optional Features:
   --disable-option-checking  ignore unrecognized --enable/--with options=

   --disable-FEATURE       do not include FEATURE (same as --enable-FEATU=
RE=3Dno)
   --enable-FEATURE[=3DARG]  include FEATURE [ARG=3Dyes]
-  --enable-ioemu-stubdom  Build and install ioemu-stubdom
   --enable-c-stubdom      Build and install c-stubdom (default is DISABL=
ED)
   --enable-pv-grub        Build and install pv-grub (default is DISABLED=
)
   --disable-xenstore-stubdom
@@ -1375,7 +1371,6 @@ Optional Features:
   --enable-vtpm-stubdom   Build and install vtpm-stubdom
   --enable-vtpmmgr-stubdom
                           Build and install vtpmmgr-stubdom
-
   --disable-debug         Disable debug build of stubdom (default is ENA=
BLED)
   --disable-extfiles      Use xen extfiles repository for libraries (def=
ault
                           is ENABLED)
@@ -2411,40 +2406,6 @@ case $host_os in *\ *) host_os=3D`echo "</a>$host_=
os" | sed 's/ /-/g'`;; esac
=20
 # Enable/disable stub domains
=20
-# Check whether --enable-ioemu-stubdom was given.
-if test ${enable_ioemu_stubdom+y}
-then :
-  enableval=3D$enable_ioemu_stubdom;
-
-if test "x$enableval" =3D "xyes"
-then :
-
-
-ioemu=3Dy
-STUBDOM_TARGETS=3D"$STUBDOM_TARGETS ioemu"
-STUBDOM_BUILD=3D"$STUBDOM_BUILD ioemu-stubdom"
-STUBDOM_INSTALL=3D"$STUBDOM_INSTALL install-ioemu"
-STUBDOM_UNINSTALL=3D"$STUBDOM_UNINSTALL install-ioemu"
-
-
-else $as_nop
-
-if test "x$enableval" =3D "xno"
-then :
-
-
-ioemu=3Dn
-
-
-fi
-
-fi
-
-
-fi
-
-
-
 # Check whether --enable-c-stubdom was given.
 if test ${enable_c_stubdom+y}
 then :
@@ -2685,35 +2646,6 @@ fi
=20
=20
=20
-# Check whether --enable-qemu-traditional was given.
-if test ${enable_qemu_traditional+y}
-then :
-  enableval=3D$enable_qemu_traditional;
-fi
-
-if test "x$enable_qemu_traditional" =3D "xyes"
-then :
-
-    qemu_traditional=3Dy
-else $as_nop
-
-    qemu_traditional=3Dn
-
-fi
-if test "x$ioemu" =3D "x"
-then :
-
-    ioemu=3D$qemu_traditional
-
-fi
-echo "x$ioemu$qemu_traditional"
-if test "x$ioemu$qemu_traditional" =3D "xyn"
-then :
-
-    as_fn_error $? "IOEMU stubdomain requires qemu-traditional" "$LINENO=
" 5
-
-fi
-
=20
 # Check whether --enable-debug was given.
 if test ${enable_debug+y}
@@ -4358,27 +4290,6 @@ fi
=20
=20
=20
-if test "x$ioemu" =3D "xy" || test "x$ioemu" =3D "x"
-then :
-
-
-ioemu=3Dy
-STUBDOM_TARGETS=3D"$STUBDOM_TARGETS ioemu"
-STUBDOM_BUILD=3D"$STUBDOM_BUILD ioemu-stubdom"
-STUBDOM_INSTALL=3D"$STUBDOM_INSTALL install-ioemu"
-STUBDOM_UNINSTALL=3D"$STUBDOM_UNINSTALL install-ioemu"
-
-
-else $as_nop
-
-
-ioemu=3Dn
-
-
-fi
-
-
-
=20
=20
=20
diff --git a/stubdom/configure.ac b/stubdom/configure.ac
index fc736c0387..f07b08c5b3 100644
--- a/stubdom/configure.ac
+++ b/stubdom/configure.ac
@@ -18,7 +18,6 @@ m4_include([../m4/depends.m4])
 m4_include([../m4/fetcher.m4])
=20
 # Enable/disable stub domains
-AX_STUBDOM_CONDITIONAL([ioemu-stubdom], [ioemu])
 AX_STUBDOM_DEFAULT_DISABLE([c-stubdom], [c])
 AX_STUBDOM_DEFAULT_DISABLE([pv-grub], [grub])
 AX_STUBDOM_DEFAULT_ENABLE([xenstore-stubdom], [xenstore])
@@ -26,19 +25,6 @@ AX_STUBDOM_DEFAULT_ENABLE([xenstorepvh-stubdom], [xens=
torepvh])
 AX_STUBDOM_CONDITIONAL([vtpm-stubdom], [vtpm])
 AX_STUBDOM_CONDITIONAL([vtpmmgr-stubdom], [vtpmmgr])
=20
-AC_ARG_ENABLE([qemu-traditional])
-AS_IF([test "x$enable_qemu_traditional" =3D "xyes"], [
-    qemu_traditional=3Dy],[
-    qemu_traditional=3Dn
-])
-AS_IF([test "x$ioemu" =3D "x"], [
-    ioemu=3D$qemu_traditional
-])
-echo "x$ioemu$qemu_traditional"
-AS_IF([test "x$ioemu$qemu_traditional" =3D "xyn"], [
-    AC_MSG_ERROR(IOEMU stubdomain requires qemu-traditional)
-])
-
 AX_ARG_DEFAULT_ENABLE([debug], [Disable debug build of stubdom])
 AX_ARG_DEFAULT_ENABLE([extfiles], [Use xen extfiles repository for libra=
ries])
=20
@@ -69,7 +55,6 @@ AX_STUBDOM_AUTO_DEPENDS([vtpmmgr], [vtpm])
 #Conditionally enable these stubdoms based on the presense of dependenci=
es
 AX_STUBDOM_CONDITIONAL_FINISH([vtpm-stubdom], [vtpm])
 AX_STUBDOM_CONDITIONAL_FINISH([vtpmmgr-stubdom], [vtpmmgr])
-AX_STUBDOM_CONDITIONAL_FINISH([ioemu-stubdom], [ioemu])
=20
 AX_STUBDOM_FINISH
 AC_OUTPUT()
diff --git a/stubdom/ioemu-minios.cfg b/stubdom/ioemu-minios.cfg
deleted file mode 100644
index 6153ae05f8..0000000000
--- a/stubdom/ioemu-minios.cfg
+++ /dev/null
@@ -1,6 +0,0 @@
-CONFIG_LIBC=3Dy
-CONFIG_LWIP=3Dy
-CONFIG_START_NETWORK=3Dn
-CONFIG_QEMU_XS_ARGS=3Dy
-CONFIG_PCIFRONT=3Dy
-XEN_INTERFACE_VERSION=3D__XEN_LATEST_INTERFACE_VERSION__
diff --git a/tools/Makefile b/tools/Makefile
index e9e1cda305..6ecf7c0da8 100644
--- a/tools/Makefile
+++ b/tools/Makefile
@@ -24,7 +24,6 @@ SUBDIRS-$(CONFIG_Linux) +=3D vchan
=20
 # do not recurse in to a dir we are about to delete
 ifneq "$(MAKECMDGOALS)" "distclean<a class=3D"moz-txt-link-rfc2396E" hre=
f=3D"mailto:-SUBDIRS-$(CONFIG_QEMU_TRAD)+=3Dqemu-xen-traditional-dirSUBDI=
RS-$(CONFIG_QEMU_XEN)+=3Dqemu-xen-direndif@@-79,7+78,6@@clean:subdirs-cle=
an.PHONY:distcleandistclean:subdirs-distcleanclean-rm-rfqemu-xen-traditio=
nal-dirqemu-xen-traditional-dir-remoterm-rfqemu-xen-dirqemu-xen-dir-remot=
eqemu-xen-buildrm-rf../config/Tools.mkconfig.hconfig.logconfig.status\con=
fig.cacheautom4te.cache@@-97,11+95,6@@QEMU_UPSTREAM_RPATH:=3D-Wl,-rpath,$=
(LIBEXEC_LIB)IOEMU_EXTRA_LDFLAGS:=3Dendif-QEMU_ROOT:=3D$(shellif[-d">"
-SUBDIRS-$(CONFIG_QEMU_TRAD) +=3D qemu-xen-traditional-dir
 SUBDIRS-$(CONFIG_QEMU_XEN) +=3D qemu-xen-dir
 endif
=20
@@ -79,7 +78,6 @@ clean: subdirs-clean
=20
 .PHONY: distclean
 distclean: subdirs-distclean clean
-	rm -rf qemu-xen-traditional-dir qemu-xen-traditional-dir-remote
 	rm -rf qemu-xen-dir qemu-xen-dir-remote qemu-xen-build
 	rm -rf ../config/Tools.mk config.h config.log config.status \
 		config.cache autom4te.cache
@@ -97,11 +95,6 @@ QEMU_UPSTREAM_RPATH :=3D -Wl,-rpath,$(LIBEXEC_LIB)
 IOEMU_EXTRA_LDFLAGS :=3D
 endif
=20
-QEMU_ROOT :=3D $(shell if [ -d "</a>$(QEMU_TRADITIONAL_LOC)" ]; then ech=
o "$(QEMU_TRADITIONAL_LOC)"; else echo .; fi)
-ifneq ($(QEMU_ROOT),.)
-export QEMU_ROOT
-endif
-
 # Targets for external trees:
 #  ${target}-dir-find
 #    See if the directory exists and check it out if not.
@@ -136,54 +129,6 @@ endif
 #   ${TARGET}_LOC
 #     The ultimate location of the source (either a local dir or remote =
URL)
=20
-# External target: qemu-xen-traditional
-qemu-xen-traditional-dir-find:
-	set -ex; \
-	if test -d $(QEMU_TRADITIONAL_LOC); then \
-		mkdir -p qemu-xen-traditional-dir; \
-	else \
-		export GIT=3D$(GIT); \
-		$(XEN_ROOT)/scripts/git-checkout.sh $(QEMU_TRADITIONAL_LOC) $(QEMU_TRA=
DITIONAL_REVISION) qemu-xen-traditional-dir; \
-	fi
-
-.PHONY: qemu-xen-traditional-dir-force-update
-qemu-xen-traditional-dir-force-update: qemu-xen-traditional-dir-find
-	set -ex; \
-	if [ "$(QEMU_TRADITIONAL_REVISION)" ]; then \
-		cd qemu-xen-traditional-dir-remote; \
-		$(GIT) fetch origin; \
-		$(GIT) reset --hard $(QEMU_TRADITIONAL_REVISION); \
-	fi
-
-qemu-traditional-recurse =3D \
-	set -e; \
-		$(buildmakevars2shellvars); \
-		export CONFIG_BLKTAP1=3Dn; \
-		export BUILDING_QEMU_TRAD=3Dy; \
-		cd qemu-xen-traditional-dir; \
-		$(1)
-
-subdir-all-qemu-xen-traditional-dir: qemu-xen-traditional-dir-find
-	$(call qemu-traditional-recurse,\
-		$(QEMU_ROOT)/xen-setup \
-		--extra-cflags=3D"-D__XEN_TOOLS__ $(EXTRA_CFLAGS_QEMU_TRADITIONAL)" \
-		$(IOEMU_EXTRA_LDFLAGS) \
-		--cpu=3D$(IOEMU_CPU_ARCH) \
-		$(IOEMU_CONFIGURE_CROSS); \
-		$(MAKE) all \
-	)
-
-subdir-install-qemu-xen-traditional-dir: subdir-all-qemu-xen-traditional=
-dir
-	$(call qemu-traditional-recurse,$(MAKE) install)
-
-subdir-clean-qemu-xen-traditional-dir:
-	set -e; if test -d qemu-xen-traditional-dir/.; then \
-		$(MAKE) -C qemu-xen-traditional-dir clean; \
-	fi
-subdir-uninstall-qemu-xen-traditional-dir:
-	rm -f $(D)$(bindir)/qemu-nbd*
-	rm -f $(D)$(bindir)/qemu-img*
-
 # External target: qemu-xen
 qemu-xen-dir-find:
 	if test -d $(QEMU_UPSTREAM_LOC) ; then \
@@ -276,9 +221,6 @@ subtree-force-update:
 ifeq ($(CONFIG_QEMU_XEN),y)
 	$(MAKE) qemu-xen-dir-force-update
 endif
-ifeq ($(CONFIG_QEMU_TRAD),y)
-	$(MAKE) qemu-xen-traditional-dir-force-update
-endif
 ifeq ($(CONFIG_X86),y)
 	$(MAKE) -C firmware subtree-force-update
 endif
diff --git a/tools/Rules.mk b/tools/Rules.mk
index 6bd636709f..725c3c32e9 100644
--- a/tools/Rules.mk
+++ b/tools/Rules.mk
@@ -134,12 +134,9 @@ endif
=20
 CFLAGS_libxenlight +=3D $(CFLAGS_libxenctrl)
=20
-# Don't add -Werror if we are used by qemu-trad build system.
-ifndef BUILDING_QEMU_TRAD
 ifeq ($(CONFIG_WERROR),y)
 CFLAGS +=3D -Werror
 endif
-endif
=20
 ifeq ($(debug),y)
 # Use -Og if available, -O0 otherwise
diff --git a/tools/config.h.in b/tools/config.h.in
index 0bab3cb136..fe2a94cfc4 100644
--- a/tools/config.h.in
+++ b/tools/config.h.in
@@ -42,9 +42,6 @@
 /* pygrub enabled */
 #undef HAVE_PYGRUB
=20
-/* Qemu traditional enabled */
-#undef HAVE_QEMU_TRADITIONAL
-
 /* ROMBIOS enabled */
 #undef HAVE_ROMBIOS
=20
diff --git a/tools/configure b/tools/configure
index e1f6ea6bf5..27ae7c52fb 100755
--- a/tools/configure
+++ b/tools/configure
@@ -726,7 +726,6 @@ BCC
 LD86
 AS86
 ipxe
-qemu_traditional
 LINUX_BACKEND_MODULES
 pygrub
 golang
@@ -835,7 +834,6 @@ enable_seabios
 enable_golang
 enable_pygrub
 with_linux_backend_modules
-enable_qemu_traditional
 enable_ipxe
 with_system_ipxe
 enable_rombios
@@ -1518,13 +1516,10 @@ Optional Features:
   --disable-seabios       Disable SeaBIOS (default is ENABLED)
   --disable-golang        Disable Go tools (default is ENABLED)
   --disable-pygrub        Disable pygrub (default is ENABLED)
-  --enable-qemu-traditional
-                          Enable qemu traditional device model, (DEFAULT=
 is
-                          off)
   --enable-ipxe           Enable in-tree IPXE, (DEFAULT is off, see also=

                           --with-system-ipxe)
-  --enable-rombios        Enable ROMBIOS, (DEFAULT is on if qemu-traditi=
onal
-                          or ipxe is enabled, otherwise off)
+  --enable-rombios        Enable ROMBIOS, (DEFAULT is on if ipxe is enab=
led,
+                          otherwise off)
   --enable-libfsimage     Enable libfsimage, (DEFAULT is on if pygrub is=

                           enabled, otherwise off)
   --enable-systemd        Enable systemd support (default is DISABLED)
@@ -4838,45 +4833,16 @@ fi
 LINUX_BACKEND_MODULES=3D"`eval echo $LINUX_BACKEND_MODULES`"
=20
=20
-# Check whether --enable-qemu-traditional was given.
-if test ${enable_qemu_traditional+y}
-then :
-  enableval=3D$enable_qemu_traditional;
-fi
-
-if test "x$enable_qemu_traditional" =3D "xyes"
-then :
-
-
-printf "%s\n" "#define HAVE_QEMU_TRADITIONAL 1" &gt;&gt;confdefs.h
-
-    qemu_traditional=3Dy
-else $as_nop
-
-    qemu_traditional=3Dn
-
-fi
-
-
 # Check whether --enable-ipxe was given.
 if test ${enable_ipxe+y}
 then :
   enableval=3D$enable_ipxe;
-else $as_nop
-
-    if test "x$enable_qemu_traditional" =3D "xyes"
-then :
-
-        enable_ipxe=3D"yes"
-
 else $as_nop
=20
         enable_ipxe=3D"no"
=20
 fi
=20
-fi
-
 if test "x$enable_ipxe" =3D "xno"
 then :
   ipxe=3Dn
@@ -4912,7 +4878,7 @@ then :
   enableval=3D$enable_rombios;
 else $as_nop
=20
-    if test "x$enable_qemu_traditional" =3D "xyes" -o "x$enable_ipxe" =3D=
 "xyes"
+    if test "x$enable_ipxe" =3D "xyes"
 then :
=20
         enable_rombios=3D"yes"
@@ -4928,7 +4894,7 @@ fi
 if test "x$enable_rombios" =3D "xyes"
 then :
=20
-                # Extract the first word of "as86", so it can be a progr=
am name with args.
+    # Extract the first word of "as86", so it can be a program name with=
 args.
 set dummy as86; ac_word=3D$2
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" &gt=
;&amp;5
 printf %s "checking for $ac_word... " &gt;&amp;6; }
diff --git a/tools/configure.ac b/tools/configure.ac
index 0dd6d747ab..dada1c3b15 100644
--- a/tools/configure.ac
+++ b/tools/configure.ac
@@ -121,25 +121,11 @@ esac])
 LINUX_BACKEND_MODULES=3D"`eval echo $LINUX_BACKEND_MODULES`"
 AC_SUBST(LINUX_BACKEND_MODULES)
=20
-AC_ARG_ENABLE([qemu-traditional],
-    AS_HELP_STRING([--enable-qemu-traditional],
-                   [Enable qemu traditional device model, (DEFAULT is of=
f)]))
-AS_IF([test "x$enable_qemu_traditional" =3D "xyes"], [
-AC_DEFINE([HAVE_QEMU_TRADITIONAL], [1], [Qemu traditional enabled])
-    qemu_traditional=3Dy],[
-    qemu_traditional=3Dn
-])
-AC_SUBST(qemu_traditional)
-
 AC_ARG_ENABLE([ipxe],
     AS_HELP_STRING([--enable-ipxe],
                    [Enable in-tree IPXE,
                     (DEFAULT is off, see also --with-system-ipxe)]),,[
-    AS_IF([test "x$enable_qemu_traditional" =3D "xyes"], [
-        enable_ipxe=3D"yes"
-    ], [
         enable_ipxe=3D"no"
-    ])
 ])
 AS_IF([test "x$enable_ipxe" =3D "xno"], [ipxe=3Dn], [ipxe=3Dy])
 AC_ARG_WITH([system-ipxe],
@@ -162,18 +148,15 @@ AC_SUBST(ipxe)
=20
 AC_ARG_ENABLE([rombios],
     AS_HELP_STRING([--enable-rombios],
-                   [Enable ROMBIOS, (DEFAULT is on if qemu-traditional o=
r ipxe is enabled,
+                   [Enable ROMBIOS, (DEFAULT is on if ipxe is enabled,
                     otherwise off)]),,[
-    AS_IF([test "x$enable_qemu_traditional" =3D "xyes" -o "x$enable_ipxe=
" =3D "xyes"], [
+    AS_IF([test "x$enable_ipxe" =3D "xyes"], [
         enable_rombios=3D"yes"
     ], [
         enable_rombios=3D"no"
     ])
 ])
 AS_IF([test "x$enable_rombios" =3D "xyes"], [
-    dnl as86, ld86, and bcc are only required when building rombios. The=
y
-    dnl are only needed when the host system is x86 but that check is do=
ne
-    dnl for us above when checking if we should build with qemu-traditio=
nal.
     AX_PATH_PROG_OR_FAIL([AS86], [as86])
     AX_PATH_PROG_OR_FAIL([LD86], [ld86])
     AX_PATH_PROG_OR_FAIL([BCC], [bcc])
</pre>
    </blockquote>
  </body>
</html>

--------------3N15kRSEuV40hOF0dij5S8hz--


From xen-devel-bounces@lists.xenproject.org Thu Apr 24 10:11:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Apr 2025 10:11:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.966109.1356427 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7tY6-0003sb-Nu; Thu, 24 Apr 2025 10:11:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 966109.1356427; Thu, 24 Apr 2025 10: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 1u7tY6-0003sU-JG; Thu, 24 Apr 2025 10:11:18 +0000
Received: by outflank-mailman (input) for mailman id 966109;
 Thu, 24 Apr 2025 10:11: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=RfDJ=XK=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1u7tY5-0003qs-Qx
 for xen-devel@lists.xenproject.org; Thu, 24 Apr 2025 10:11: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 74c7b2d5-20f4-11f0-9eb1-5ba50f476ded;
 Thu, 24 Apr 2025 12:11:15 +0200 (CEST)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-acb2faa9f55so100016566b.3
 for <xen-devel@lists.xenproject.org>; Thu, 24 Apr 2025 03:11:15 -0700 (PDT)
Received: from ?IPV6:2003:e5:870f:e000:6c64:75fd:2c51:3fef?
 (p200300e5870fe0006c6475fd2c513fef.dip0.t-ipconnect.de.
 [2003:e5:870f:e000:6c64:75fd:2c51:3fef])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-ace59897e30sm83112766b.44.2025.04.24.03.11.13
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 24 Apr 2025 03:11: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: 74c7b2d5-20f4-11f0-9eb1-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745489475; x=1746094275; 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=fdSwYuBhxOdnqF7xkOxhz3DelClCI0K6T6vVUCDVKjQ=;
        b=gaTZhLCg3TSksf/YJ8lrWEOZsVBsnCM7jR883ua5vXKjo6dSTnbObreFpklNIFGk9Y
         /U1tnZd2sZTjdplPi6G4sMbsN+yIEO7prlqcuHVisDQ4ZEoKlqMo3Xjj+HX4okGNSFK0
         QeUCVJYJdeGm+EamSRz9zNGJc7AeF0f+kuVS0wHD4Z9AE2E35xW651Ib3hCUXnFDa5AC
         sU+xHzp0GoZ5UFKM8rGj/PB9F6tPxFaDlW7gEKzaEl8okwXbbJoqUgp6rfqQS1VTIVB2
         PnelGBAZRl3TOoejY16pNvCKZIHGmIyvWvztDtfqrxq5BP8AUTDji2uSq9njq0sJu/vA
         jN7Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745489475; x=1746094275;
        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=fdSwYuBhxOdnqF7xkOxhz3DelClCI0K6T6vVUCDVKjQ=;
        b=olp6INaK7eKcNBJNWhJ2IApw9/KQ3K4mArqmuivjmmXapXVSmOGgdXVabJb3D4gQ4z
         W2PT2Y98fL+v1XDScib5THY5RroLYZMgmH/aRVYtcjZkCIIS/xJToGHvazqM+acjKjs6
         7C5o86NnclVWa1DzrUEewOzMtcAI2iEEMCapJWTlvFdmZ/YtkFPQRZ4nRaigZmjaz/9/
         fMyL91csc9tbHFJMca1vB0mRAxBi7gFm5OMVTPH+Q7lm6qMUkhmNxrtFGbH1Lda7KsKk
         UO7ch0nD+xOttM+5xqzBA/4ZQdjxv3NjSF3hf5xNCThXKLpzuvoTcDkEOWohjgONZ7JZ
         XQPw==
X-Forwarded-Encrypted: i=1; AJvYcCUjf3+doILRdhkKfr0ZdbwFr+EB2cZaBOjTTvIP1g3NC2uvhafSWRQuLiIVKJR4+yYWGpXuJigvU+4=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy4jr6HYB6LQCGR9AquzMp9sxqOD5bF7S8OxUMYYq24ZcyoiBdo
	LEI4yavGY9SJlv+3Gj1aP07rgpkyQ09KfIEWz/fwW2HvVTeGcaT8UEl4Bg0v8Rs=
X-Gm-Gg: ASbGncsivy713OR9fWQOfSEVr04hya8rkWJgGKeFQ+/CXdmNwISvVhQApnFTfb6zxcG
	Aij3zez7txRYpXZZf6svehz9eHA7qL8nqXJ8i17xukgQZcqGeyXfl0Xm8gUF2jDpFzPY1Acco69
	vaJpbfYYmsdtXmoFKoQa3/InQ6a+Yr3H6P1VyXmgD6QMIJp+j+pfnypDb+BvdM4Yl0DscIxdxuF
	JJzYuDfgRGp7n4oBY6fIUwhH/xes0Zzt3v1nX80a0zSYbFdx3L+bHQ74paoW+maItfR2xs9uLIH
	LAq5b5xpanfZAVPmYCCTLG2U5Cku+I/dtEZ9Y3ZPrl42s0tAluznS4UV9QcSAL4qdwQhc9zfolV
	Gag1iWgZn1UPpe/32yThZ32UPC9KS/g0TODwxy8Emyb9qzoPYim6Cr26dsRqsF1JDtA==
X-Google-Smtp-Source: AGHT+IEbbmIPPrsikvb3BTzA0vI8qHnxarVzFktNTu67SixW/XcJ61OviQ7YGJJWqIAYONft+vNyww==
X-Received: by 2002:a17:907:7d8d:b0:ac3:4373:e8bf with SMTP id a640c23a62f3a-ace572204b7mr216108466b.10.1745489474688;
        Thu, 24 Apr 2025 03:11:14 -0700 (PDT)
Message-ID: <7c7de4be-e8d0-45b9-9212-186d79e95512@suse.com>
Date: Thu, 24 Apr 2025 12:11:12 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH v2 13/34] x86/xen/msr: Remove the error pointer
 argument from set_reg()
To: "Xin Li (Intel)" <xin@zytor.com>, linux-kernel@vger.kernel.org,
 kvm@vger.kernel.org, linux-perf-users@vger.kernel.org,
 linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
 linux-pm@vger.kernel.org, linux-edac@vger.kernel.org,
 xen-devel@lists.xenproject.org, linux-acpi@vger.kernel.org,
 linux-hwmon@vger.kernel.org, netdev@vger.kernel.org,
 platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
 dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com, acme@kernel.org,
 andrew.cooper3@citrix.com, peterz@infradead.org, namhyung@kernel.org,
 mark.rutland@arm.com, alexander.shishkin@linux.intel.com, jolsa@kernel.org,
 irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
 wei.liu@kernel.org, ajay.kaher@broadcom.com,
 bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
 pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
 luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
 haiyangz@microsoft.com, decui@microsoft.com
References: <20250422082216.1954310-1-xin@zytor.com>
 <20250422082216.1954310-14-xin@zytor.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: <20250422082216.1954310-14-xin@zytor.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------S0T23vorp0xJmxsOKDfgVss5"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------S0T23vorp0xJmxsOKDfgVss5
Content-Type: multipart/mixed; boundary="------------e7SX2BGON4oOR8X6gtLTAdYZ";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: "Xin Li (Intel)" <xin@zytor.com>, linux-kernel@vger.kernel.org,
 kvm@vger.kernel.org, linux-perf-users@vger.kernel.org,
 linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
 linux-pm@vger.kernel.org, linux-edac@vger.kernel.org,
 xen-devel@lists.xenproject.org, linux-acpi@vger.kernel.org,
 linux-hwmon@vger.kernel.org, netdev@vger.kernel.org,
 platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
 dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com, acme@kernel.org,
 andrew.cooper3@citrix.com, peterz@infradead.org, namhyung@kernel.org,
 mark.rutland@arm.com, alexander.shishkin@linux.intel.com, jolsa@kernel.org,
 irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
 wei.liu@kernel.org, ajay.kaher@broadcom.com,
 bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
 pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
 luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
 haiyangz@microsoft.com, decui@microsoft.com
Message-ID: <7c7de4be-e8d0-45b9-9212-186d79e95512@suse.com>
Subject: Re: [RFC PATCH v2 13/34] x86/xen/msr: Remove the error pointer
 argument from set_reg()
References: <20250422082216.1954310-1-xin@zytor.com>
 <20250422082216.1954310-14-xin@zytor.com>
In-Reply-To: <20250422082216.1954310-14-xin@zytor.com>

--------------e7SX2BGON4oOR8X6gtLTAdYZ
Content-Type: multipart/mixed; boundary="------------8yUdmrKCo5lfdOTdqXAp6QOj"

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

T24gMjIuMDQuMjUgMTA6MjEsIFhpbiBMaSAoSW50ZWwpIHdyb3RlOg0KPiBzZXRfcmVnKCkg
aXMgdXNlZCB0byB3cml0ZSB0aGUgZm9sbG93aW5nIE1TUnMgb24gWGVuOg0KPiANCj4gICAg
ICBNU1JfRlNfQkFTRQ0KPiAgICAgIE1TUl9LRVJORUxfR1NfQkFTRQ0KPiAgICAgIE1TUl9H
U19CQVNFDQo+IA0KPiBCdXQgbm9uZSBvZiB0aGVzZSBNU1JzIGFyZSB3cml0dGVuIHVzaW5n
IGFueSBNU1Igd3JpdGUgc2FmZSBBUEkuDQo+IFRoZXJlZm9yZSB0aGVyZSBpcyBubyBuZWVk
IHRvIHBhc3MgYW4gZXJyb3IgcG9pbnRlciBhcmd1bWVudCB0bw0KPiBzZXRfcmVnKCkgZm9y
IHJldHVybmluZyBhbiBlcnJvciBjb2RlIHRvIGJlIHVzZWQgaW4gTVNSIHNhZmUgQVBJcy4N
Cg0Kc2V0X3NlZygpLCBwbGVhc2UgKGZ1cnRoZXIgdXAsIHRvbykuDQoNCj4gDQo+IFJlbW92
ZSB0aGUgZXJyb3IgcG9pbnRlciBhcmd1bWVudC4NCj4gDQo+IFNpZ25lZC1vZmYtYnk6IFhp
biBMaSAoSW50ZWwpIDx4aW5Aenl0b3IuY29tPg0KDQpSZXZpZXdlZC1ieTogSnVlcmdlbiBH
cm9zcyA8amdyb3NzQHN1c2UuY29tPg0KDQoNCkp1ZXJnZW4NCg==
--------------8yUdmrKCo5lfdOTdqXAp6QOj
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-----

--------------8yUdmrKCo5lfdOTdqXAp6QOj--

--------------e7SX2BGON4oOR8X6gtLTAdYZ--

--------------S0T23vorp0xJmxsOKDfgVss5
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/Ey8FAmgKDkAFAwAAAAAACgkQsN6d1ii/Ey8n
iAf/Q6AJZFMakTRIVTgS05wIOPuMydvp8L3b0MHg2v83cNkEIg7troXAv1WpNireLBumlMqQPsna
E7/sncIbwOKkbZ2HKMnSFRDvYBp08xO7ZVbM8lGRYaJ/1vx3pvkls9dvrK3kQiKeLIN2j6+cCKXV
uPsdSv++pBdBiHP+4jqnP1xus8szgWgbgxb6MrFbo/5sqMGIKVn0RggRKVSI74Bk3ohbrhKbkPSd
RmqEioBJsYwKvBLXcwVeDsT5mMAnoPh4J0s1i0qH4xeF/07FSclbHljXeLQ+CCmK0BrOuG/CIwuL
g9vlmHLxYyJ+Fkhk0Ebh1uIdY+8KGzFGtrSV+tRLyQ==
=TDhx
-----END PGP SIGNATURE-----

--------------S0T23vorp0xJmxsOKDfgVss5--


From xen-devel-bounces@lists.xenproject.org Thu Apr 24 10:15:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Apr 2025 10:15:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.966119.1356436 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7tc8-0004Yp-5x; Thu, 24 Apr 2025 10:15:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 966119.1356436; Thu, 24 Apr 2025 10:15: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 1u7tc8-0004Yi-2I; Thu, 24 Apr 2025 10:15:28 +0000
Received: by outflank-mailman (input) for mailman id 966119;
 Thu, 24 Apr 2025 10:15: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=nqL3=XK=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1u7tc6-0004Yc-8R
 for xen-devel@lists.xenproject.org; Thu, 24 Apr 2025 10:15:26 +0000
Received: from fhigh-a4-smtp.messagingengine.com
 (fhigh-a4-smtp.messagingengine.com [103.168.172.155])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0853b065-20f5-11f0-9ffb-bf95429c2676;
 Thu, 24 Apr 2025 12:15:23 +0200 (CEST)
Received: from phl-compute-07.internal (phl-compute-07.phl.internal
 [10.202.2.47])
 by mailfhigh.phl.internal (Postfix) with ESMTP id 4A4B71140290;
 Thu, 24 Apr 2025 06:15:22 -0400 (EDT)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-07.internal (MEProxy); Thu, 24 Apr 2025 06:15:22 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 24 Apr 2025 06:15:20 -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: 0853b065-20f5-11f0-9ffb-bf95429c2676
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=fm2; t=1745489722;
	 x=1745576122; bh=8ZIxeMnNYV9bIC9uK3BPzHnYzNxrxB9Rg8+EHp20Euc=; b=
	RebdoSyVqHcUvjHnMXYMonb6PNJ7PkVtbazla/9LdlUAmqIS+h8mZptMpl7LSPph
	njNDAywgHBsco7ubivyzGkSzsinPIBwsnFlsLdmh7fFv7QfGCZTQy1R5vzQxYDFJ
	p0ykg2Y770LIw92KnJA17IwmwaK6j1CS56mbgX1F6VmL7WcQ32KNbNPvvJtvS9LN
	pL7eARyFoQn9Qh7ENuqFF0ufX689lmKSdCWiHTQq0tVOFNGJcwkw2LcO2sKAnPC0
	2JOOY8J2ZNAy4bPnKZLJiJJ/tTq/bChDD6OyBOXfJjuLNc3qlM4WW1iJqho2EbP7
	k/0OLeAXUQHIbzdYBaOzAQ==
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=
	1745489722; x=1745576122; bh=8ZIxeMnNYV9bIC9uK3BPzHnYzNxrxB9Rg8+
	EHp20Euc=; b=YGqpSUbcqW4w8k/LBk/u9EUeDxPwdDRhle1wlLdU1242UFptyb+
	Y/1iTrG6/kYWOrWoEFE/lcJVWD4iMll+FOeqHsZjGd1YM+1wl4hVjUFlMEIOEu90
	JG38HOF0ffRsXBC1LjwBvIVN6tkhzFhYhQ+Igj0wEPAkex2puVD5MJEm2GxNHTSw
	BMGspEMqO9QeciUldZ9M7+UadhQuf9D9R5acIiXoVfR8p6TbtLTURK28DZIpnUDc
	6/wME/XwKn8xF+cTpKi2qqpLa+KHYqokLJJEUke4KbfV5WuMAGsEKR3kKukNud5t
	W5Yl3FGw18HOeGwja297TK7sE5DzEjfTX2Q==
X-ME-Sender: <xms:OQ8KaMDUokeJ2Z9fk948F2cOJC61bvHxBcdvq6XvHfOTkoVh6z35qg>
    <xme:OQ8KaOgxb7Q_2-ofAYtjfGbREkGnnZ1ISgJBu1PlQAKTqxfxIAMXjlkh_x4s5H92R
    3fLXvulSU1OcQ>
X-ME-Received: <xmr:OQ8KaPkHb-P9xV8XRgJdj2MR1JdgBckDgOGmBr_zyfWoxXLWAsPADBOaH_CfHzXQzhd-0alSjoVodcKDwdvcsJtKWQmVdI9XyQ>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvgeelvddtucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
    pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
    gvnhhtshculddquddttddmnecujfgurhepfffhvfevuffkfhggtggujgesghdtroertddt
    jeenucfhrhhomhepofgrrhgvkhcuofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuc
    eomhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecu
    ggftrfgrthhtvghrnheptdetvdfhkedutedvleffgeeutdektefhtefhfffhfeetgefhie
    egledvtddtkedtnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhf
    rhhomhepmhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomh
    dpnhgspghrtghpthhtohepledpmhhouggvpehsmhhtphhouhhtpdhrtghpthhtoheprhho
    ghgvrhdrphgruhestghithhrihigrdgtohhmpdhrtghpthhtohepvhhitghtohhrmhdrlh
    hirhgrsegrmhgurdgtohhmpdhrtghpthhtohepjhgrshhonhdrrghnughrhihukhesrghm
    ugdrtghomhdprhgtphhtthhopehsshhtrggsvghllhhinhhisehkvghrnhgvlhdrohhrgh
    dprhgtphhtthhopeigvghnqdguvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdr
    ohhrghdprhgtphhtthhopegrnhgurhgvfidrtghoohhpvghrfeestghithhrihigrdgtoh
    hmpdhrtghpthhtohepjhgsvghulhhitghhsehsuhhsvgdrtghomhdprhgtphhtthhopeig
    vghnihgrrdhrrghgihgruggrkhhouhesrghmugdrtghomhdprhgtphhtthhopegrlhgvjh
    grnhgurhhordhgrghrtghirghvrghllhgvjhhosegrmhgurdgtohhm
X-ME-Proxy: <xmx:OQ8KaCyH3yNpK_JzrW9rS0SaiUjKqIPz-Az6S_nWosUM0Jocc2k_tQ>
    <xmx:OQ8KaBTacRp357yKcs_BmMuEQ0HjNllI_ooA2LxOsjSZfbxd-m4jmg>
    <xmx:OQ8KaNZuvm_9j3Z8o6FwNX3duYoSgCFgPpDO62_bdSa-HcT424G4hQ>
    <xmx:OQ8KaKQGj9-lX3jtJB1RuLKCPJREi0XwFpm2RV6dj1Rs1GNtB2RLCQ>
    <xmx:Og8KaDR1tvoYQgT879dKBLUv0MVMlJknBEJg_QyFFg5kKveQh7Ch_UTM>
Feedback-ID: i1568416f:Fastmail
Date: Thu, 24 Apr 2025 12:15:17 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
Cc: "Lira, Victor M" <VictorM.Lira@amd.com>,
	Jason Andryuk <jason.andryuk@amd.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	xen-devel@lists.xenproject.org,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>, Xenia.Ragiadakou@amd.com,
	Alejandro.GarciaVallejo@amd.com
Subject: Re: [RFC] xen/x86: allow overlaps with non-RAM regions
Message-ID: <aAoPNTsLjMMfsHvJ@mail-itl>
References: <alpine.DEB.2.22.394.2504031755440.3529306@ubuntu-linux-20-04-desktop>
 <Z--0USril0UIhR4R@macbook.lan>
 <3c5dfd26-3c12-498b-aca4-0beac4e991a5@amd.com>
 <Z_jFSb2-efexUNlL@macbook.lan>
 <9ed89e50-c645-407d-80b4-5b78cb6e36fa@amd.com>
 <Z_zGdE91KwlYxu_A@macbook.lan>
 <ce06ec74-1a73-4a02-87fc-3e829399cc77@amd.com>
 <aAnvRMgJxAskbCtE@macbook.lan>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="DiGgUl5sZK8OOW9n"
Content-Disposition: inline
In-Reply-To: <aAnvRMgJxAskbCtE@macbook.lan>


--DiGgUl5sZK8OOW9n
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Thu, 24 Apr 2025 12:15:17 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
Cc: "Lira, Victor M" <VictorM.Lira@amd.com>,
	Jason Andryuk <jason.andryuk@amd.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	xen-devel@lists.xenproject.org,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>, Xenia.Ragiadakou@amd.com,
	Alejandro.GarciaVallejo@amd.com
Subject: Re: [RFC] xen/x86: allow overlaps with non-RAM regions

On Thu, Apr 24, 2025 at 09:59:00AM +0200, Roger Pau Monn=C3=A9 wrote:
> On Wed, Apr 23, 2025 at 04:51:16PM -0700, Lira, Victor M wrote:
> > [    4.570354] Intel(R) 2.5G Ethernet Linux Driver
> >=20
> > [    4.579535] Copyright(c) 2018 Intel Corporation.
> >=20
> > [    4.588898] sky2: driver version 1.30
> >=20
> > (XEN) [   21.644361] d0v3 unable to fixup memory read from 0xfe91000c s=
ize 4: -1
>=20
> This fault is unexpected, according to the identity mappings done at
> domain build time:
>=20
> d0: identity mappings for IOMMU:
>  [00000000a0, 00000000ff] RW
>  [0000009bff, 0000009fff] RW
>  [00000cabc9, 00000cc14c] RW
>  [00000cc389, 00000cc389] RW
>  [00000cc70a, 00000cd1fe] RW
>  [00000ce000, 00000cffff] RW
>  [00000fd000, 00000fd2ff] RW
>=20
> The page at 0xfe910 should be covered by the last range above.  I
> think we have a bug somewhere that unexpectedly unmaps that address.

You sure? 0xfe910 is outside of [00000fd000, 00000fd2ff].

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmgKDzUACgkQ24/THMrX
1ywMqQf6AksEN1hvyqXWFLs4R+dOImpkM5FWFJTe93r0SEJb5lJ18tA9wCl9w8S5
JOsPxeMd4ZEdD8R4AlJwW5U70IXKKI+QkyrZZ9ddVtDz9XmapcTegSnN0bVbrTK9
oFSiTA2gi4MW0bD8F7kEtz0BcOFXwhnvlGnu58vdlMeFCevyzc4XYvGzTRmrzltw
nX2i8zICeAhoNKXCtUO9n0MMSkaPSmQWhYszn8SovjZVrrAwG8ruxof9VE54gdPA
bIzL749lmRGx3CCAsrywJBRC6szSp7Mz1GPcTTqpOzGz4+4wEiTSw1qGFqyI/T5P
S5lW/cCZgHFg+CnfGaNsgMBPssgczg==
=/jyu
-----END PGP SIGNATURE-----

--DiGgUl5sZK8OOW9n--


From xen-devel-bounces@lists.xenproject.org Thu Apr 24 10:16:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Apr 2025 10:16:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.966127.1356446 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7td5-00052Z-DM; Thu, 24 Apr 2025 10:16:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 966127.1356446; Thu, 24 Apr 2025 10:16: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 1u7td5-00052S-Aa; Thu, 24 Apr 2025 10:16:27 +0000
Received: by outflank-mailman (input) for mailman id 966127;
 Thu, 24 Apr 2025 10: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=RfDJ=XK=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1u7td3-00052F-FA
 for xen-devel@lists.xenproject.org; Thu, 24 Apr 2025 10:16: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 2cf43b58-20f5-11f0-9eb1-5ba50f476ded;
 Thu, 24 Apr 2025 12:16:24 +0200 (CEST)
Received: by mail-ej1-x636.google.com with SMTP id
 a640c23a62f3a-acbb85ce788so174348766b.3
 for <xen-devel@lists.xenproject.org>; Thu, 24 Apr 2025 03:16:24 -0700 (PDT)
Received: from ?IPV6:2003:e5:870f:e000:6c64:75fd:2c51:3fef?
 (p200300e5870fe0006c6475fd2c513fef.dip0.t-ipconnect.de.
 [2003:e5:870f:e000:6c64:75fd:2c51:3fef])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-ace59c5e9ccsm85183966b.178.2025.04.24.03.16.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 24 Apr 2025 03:16: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: 2cf43b58-20f5-11f0-9eb1-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745489784; x=1746094584; 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=7yeb9KlYqqGD/ZehSL+UaW5Mu1Sv69xuG2EIsa3T9HE=;
        b=T0/szGySnlAZcNMTS3BCwtNV3/HV/ZNmnadL1ujyTfBpwptujg209UnXfc5prVy8JY
         e7pXjAT5F5Q4HvpgjpEKiFlaSMqAWCTv4U1M1TqGdvtEdfJpDGYNKuDfuvMejVrI3WWi
         Qh+49Yy2NyO/g0clJOAvkr0Da+LZ6WSBisMxeZB+A89pHbHRmXzAVmZISSMIgldlqAPJ
         /6RmZWbUXZNOZrCNHpP7+k7OXgkk9Bw/3gWZPmzf0SiQCaopXHbKpFK/Ay0idze+sG2W
         7usIorbwCdxskHNkH9SRUc87by26O3vn4WfD2txtWGwmbAV4vPWpCOCwGwx4qbtCtHC0
         M4dg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745489784; x=1746094584;
        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=7yeb9KlYqqGD/ZehSL+UaW5Mu1Sv69xuG2EIsa3T9HE=;
        b=KgXWz+0lCPvPMhWIiCLQFYVt2S4VHl6DvL37SMJTBup6qDarqFo8RuT/ejLE5SSyOv
         9n/Rp/gkpVjLP3VAcaObC6IMsRkXgmJhONrd2TCiaRVgLdGe1NVEcMkUO4V43ZXYue7o
         I5k/wH36deydP5RJi9WR9G/3vsk8fVdmWX9jqxr4wuj10pTvMN1f9MXiNluKB1aj0kZF
         vsL8o84Gesif1jn5z4jotB/RcoOvT3hGti6YYhI5zBKbyzN7GsqJp1w1K5EgLmTOu+CP
         f4nE683jjpp8W/5LvehpPNFhz971T/qt/WQ94A0Zwb5Sp1T2v+Op+RFpnUTwjS/l1FMR
         vjjQ==
X-Forwarded-Encrypted: i=1; AJvYcCVF30zPWL0OzZxx+Dd+kr+p71dVwZRutmTXBmuZd+pG7znKJvKEMfWctkNNOlgmYc194qb2JAgf5eI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyGZctKV3VHQcNemWFpvw15dd3StVh6KXOb9g2FwYi5U1xaC2ZL
	GdKMWeSjjAtsbwdYj3KIDEYT0DqRa9a8RcqOuOnVVOb420wnMQqzmzAQif1O+EY=
X-Gm-Gg: ASbGnctvMp9S971mei/sB88Dh4kyFRPNBYP485wOvkJ4BH+y9EM9nyPRrUtk41Gemvv
	EnuTtAnX6bxblWM7y72uyPpa1PnbuLV+wtu/G0iydp2XPVOM+VQFnSUrgwtPrfeOg3cGrE5LaCX
	FtEGEX1rYOEu9Hmca9wBwH87TELd1VcQp5gAp1PuccFHpVmbtzknzGLx4LgFLgGXEvKw3ltm3E+
	qCz17el/wfTEXpR9A6GFHcw1u/ptEZrGhfhxzN3dceNtniCYqC2y9eLs44giIETZqA7PE+m3tuE
	SInnGCqr3lkCiLKUMc84a1s+tl+Vfb7sVZb3bq4mg7uvJv8RXmcQ3qJdNgMF9GF+aS19SidooBW
	Vu1ISM/RGi5bhK7Zcdy7dnKUJCe8SaCeZs2Nw0yuObQ7/c3PhEQRrYfy9jv5AHPJ1aQ==
X-Google-Smtp-Source: AGHT+IEm0tqe1Y6NrZYwZAPw8mP7gfJu/rS857Ou/Nw00s8avdEvZrPp9A2s5JSOi+lWLJhyNrhoNw==
X-Received: by 2002:a17:907:3f9e:b0:aca:d4f6:440d with SMTP id a640c23a62f3a-ace5723afaemr234662066b.17.1745489783619;
        Thu, 24 Apr 2025 03:16:23 -0700 (PDT)
Message-ID: <054eec5c-1f36-454b-9220-b7f975d2717b@suse.com>
Date: Thu, 24 Apr 2025 12:16:21 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH v2 14/34] x86/msr: refactor
 pv_cpu_ops.write_msr{_safe}()
To: "Xin Li (Intel)" <xin@zytor.com>, linux-kernel@vger.kernel.org,
 kvm@vger.kernel.org, linux-perf-users@vger.kernel.org,
 linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
 linux-pm@vger.kernel.org, linux-edac@vger.kernel.org,
 xen-devel@lists.xenproject.org, linux-acpi@vger.kernel.org,
 linux-hwmon@vger.kernel.org, netdev@vger.kernel.org,
 platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
 dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com, acme@kernel.org,
 andrew.cooper3@citrix.com, peterz@infradead.org, namhyung@kernel.org,
 mark.rutland@arm.com, alexander.shishkin@linux.intel.com, jolsa@kernel.org,
 irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
 wei.liu@kernel.org, ajay.kaher@broadcom.com,
 bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
 pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
 luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
 haiyangz@microsoft.com, decui@microsoft.com
References: <20250422082216.1954310-1-xin@zytor.com>
 <20250422082216.1954310-15-xin@zytor.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: <20250422082216.1954310-15-xin@zytor.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------pWVoNv7WLwVBgb4mHgM007fn"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------pWVoNv7WLwVBgb4mHgM007fn
Content-Type: multipart/mixed; boundary="------------b3S9hpqWlrcvhJkKaKAw7Czp";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: "Xin Li (Intel)" <xin@zytor.com>, linux-kernel@vger.kernel.org,
 kvm@vger.kernel.org, linux-perf-users@vger.kernel.org,
 linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
 linux-pm@vger.kernel.org, linux-edac@vger.kernel.org,
 xen-devel@lists.xenproject.org, linux-acpi@vger.kernel.org,
 linux-hwmon@vger.kernel.org, netdev@vger.kernel.org,
 platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
 dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com, acme@kernel.org,
 andrew.cooper3@citrix.com, peterz@infradead.org, namhyung@kernel.org,
 mark.rutland@arm.com, alexander.shishkin@linux.intel.com, jolsa@kernel.org,
 irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
 wei.liu@kernel.org, ajay.kaher@broadcom.com,
 bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
 pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
 luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
 haiyangz@microsoft.com, decui@microsoft.com
Message-ID: <054eec5c-1f36-454b-9220-b7f975d2717b@suse.com>
Subject: Re: [RFC PATCH v2 14/34] x86/msr: refactor
 pv_cpu_ops.write_msr{_safe}()
References: <20250422082216.1954310-1-xin@zytor.com>
 <20250422082216.1954310-15-xin@zytor.com>
In-Reply-To: <20250422082216.1954310-15-xin@zytor.com>

--------------b3S9hpqWlrcvhJkKaKAw7Czp
Content-Type: multipart/mixed; boundary="------------BppMQx0iku6Wc7Pk9I10DjXt"

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

T24gMjIuMDQuMjUgMTA6MjEsIFhpbiBMaSAoSW50ZWwpIHdyb3RlOg0KPiBBbiBNU1IgdmFs
dWUgaXMgcmVwcmVzZW50ZWQgYXMgYSA2NC1iaXQgdW5zaWduZWQgaW50ZWdlciwgd2l0aCBl
eGlzdGluZw0KPiBNU1IgaW5zdHJ1Y3Rpb25zIHN0b3JpbmcgaXQgaW4gRURYOkVBWCBhcyB0
d28gMzItYml0IHNlZ21lbnRzLg0KPiANCj4gVGhlIG5ldyBpbW1lZGlhdGUgZm9ybSBNU1Ig
aW5zdHJ1Y3Rpb25zLCBob3dldmVyLCB1dGlsaXplIGEgNjQtYml0DQo+IGdlbmVyYWwtcHVy
cG9zZSByZWdpc3RlciB0byBzdG9yZSB0aGUgTVNSIHZhbHVlLiAgVG8gdW5pZnkgdGhlIHVz
YWdlIG9mDQo+IGFsbCBNU1IgaW5zdHJ1Y3Rpb25zLCBsZXQgdGhlIGRlZmF1bHQgTVNSIGFj
Y2VzcyBBUElzIGFjY2VwdCBhbiBNU1INCj4gdmFsdWUgYXMgYSBzaW5nbGUgNjQtYml0IGFy
Z3VtZW50IGluc3RlYWQgb2YgdHdvIDMyLWJpdCBzZWdtZW50cy4NCj4gDQo+IFRoZSBkdWFs
IDMyLWJpdCBBUElzIGFyZSBzdGlsbCBhdmFpbGFibGUgYXMgY29udmVuaWVudCB3cmFwcGVy
cyBvdmVyIHRoZQ0KPiBBUElzIHRoYXQgaGFuZGxlIGFuIE1TUiB2YWx1ZSBhcyBhIHNpbmds
ZSA2NC1iaXQgYXJndW1lbnQuDQo+IA0KPiBUaGUgZm9sbG93aW5nIGlsbHVzdHJhdGVzIHRo
ZSB1cGRhdGVkIGRlcml2YXRpb24gb2YgdGhlIE1TUiB3cml0ZSBBUElzOg0KPiANCj4gICAg
ICAgICAgICAgICAgICAgX193cm1zcnEodTMyIG1zciwgdTY0IHZhbCkNCj4gICAgICAgICAg
ICAgICAgICAgICAvICAgICAgICAgICAgICAgICAgXA0KPiAgICAgICAgICAgICAgICAgICAg
LyAgICAgICAgICAgICAgICAgICAgXA0KPiAgICAgICAgICAgICBuYXRpdmVfd3Jtc3JxKG1z
ciwgdmFsKSAgICBuYXRpdmVfd3Jtc3IobXNyLCBsb3csIGhpZ2gpDQo+ICAgICAgICAgICAg
ICAgICAgIHwNCj4gICAgICAgICAgICAgICAgICAgfA0KPiAgICAgICAgICAgICBuYXRpdmVf
d3JpdGVfbXNyKG1zciwgdmFsKQ0KPiAgICAgICAgICAgICAgICAgIC8gICAgICAgICAgXA0K
PiAgICAgICAgICAgICAgICAgLyAgICAgICAgICAgIFwNCj4gICAgICAgICB3cm1zcnEobXNy
LCB2YWwpICAgIHdybXNyKG1zciwgbG93LCBoaWdoKQ0KPiANCj4gV2hlbiBDT05GSUdfUEFS
QVZJUlQgaXMgZW5hYmxlZCwgd3Jtc3JxKCkgYW5kIHdybXNyKCkgYXJlIGRlZmluZWQgb24g
dG9wDQo+IG9mIHBhcmF2aXJ0X3dyaXRlX21zcigpOg0KPiANCj4gICAgICAgICAgICAgIHBh
cmF2aXJ0X3dyaXRlX21zcih1MzIgbXNyLCB1NjQgdmFsKQ0KPiAgICAgICAgICAgICAgICAg
LyAgICAgICAgICAgICBcDQo+ICAgICAgICAgICAgICAgIC8gICAgICAgICAgICAgICBcDQo+
ICAgICAgICAgICAgd3Jtc3JxKG1zciwgdmFsKSAgICB3cm1zcihtc3IsIGxvdywgaGlnaCkN
Cj4gDQo+IHBhcmF2aXJ0X3dyaXRlX21zcigpIGludm9rZXMgY3B1LndyaXRlX21zcihtc3Is
IHZhbCksIGFuIGluZGlyZWN0IGxheWVyDQo+IG9mIHB2X29wcyBNU1Igd3JpdGUgY2FsbDoN
Cj4gDQo+ICAgICAgSWYgb24gbmF0aXZlOg0KPiANCj4gICAgICAgICAgICAgIGNwdS53cml0
ZV9tc3IgPSBuYXRpdmVfd3JpdGVfbXNyDQo+IA0KPiAgICAgIElmIG9uIFhlbjoNCj4gDQo+
ICAgICAgICAgICAgICBjcHUud3JpdGVfbXNyID0geGVuX3dyaXRlX21zcg0KPiANCj4gVGhl
cmVmb3JlLCByZWZhY3RvciBwdl9jcHVfb3BzLndyaXRlX21zcntfc2FmZX0oKSB0byBhY2Nl
cHQgYW4gTVNSIHZhbHVlDQo+IGluIGEgc2luZ2xlIHU2NCBhcmd1bWVudCwgcmVwbGFjaW5n
IHRoZSBjdXJyZW50IGR1YWwgdTMyIGFyZ3VtZW50cy4NCj4gDQo+IE5vIGZ1bmN0aW9uYWwg
Y2hhbmdlIGludGVuZGVkLg0KPiANCj4gU2lnbmVkLW9mZi1ieTogWGluIExpIChJbnRlbCkg
PHhpbkB6eXRvci5jb20+DQoNClJldmlld2VkLWJ5OiBKdWVyZ2VuIEdyb3NzIDxqZ3Jvc3NA
c3VzZS5jb20+DQoNCg0KSnVlcmdlbg0K
--------------BppMQx0iku6Wc7Pk9I10DjXt
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-----

--------------BppMQx0iku6Wc7Pk9I10DjXt--

--------------b3S9hpqWlrcvhJkKaKAw7Czp--

--------------pWVoNv7WLwVBgb4mHgM007fn
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/Ey8FAmgKD3UFAwAAAAAACgkQsN6d1ii/Ey8e
hQf+IyaGfaANfYLf1gQb5JWLRkUgyz/njZG+UwVqy+rsaIYD+pEhdKw5SCCnD0k0rYwGX+humDna
09S/SBtqSMJ6op9sp+0UMcix59tVByTG+d8H/RBLf2IWAPI0XKU6b3m310+4u3nyopkvf/rjeJWt
SfFxXPA+0soMqiPgLiqLfQOcImvL7By/Ic4k7iCcQ8r2tUX4e49qE7Ceu6m2OhnWo7gegbiK3g3a
o5e9jvL464VbQ0jA76OH8KY4kcOV8y0TQXP2dC3WWvN7O1iNoEL9KIIg3/K4iTHOY10ayy/UVXOd
NK1TCl85M2LuLTmu8q4pp9E3JwXRobXErwdZe+JYvQ==
=xegw
-----END PGP SIGNATURE-----

--------------pWVoNv7WLwVBgb4mHgM007fn--


From xen-devel-bounces@lists.xenproject.org Thu Apr 24 10:39:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Apr 2025 10:39:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.966143.1356455 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7typ-00011e-7V; Thu, 24 Apr 2025 10:38:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 966143.1356455; Thu, 24 Apr 2025 10:38: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 1u7typ-00011X-4j; Thu, 24 Apr 2025 10:38:55 +0000
Received: by outflank-mailman (input) for mailman id 966143;
 Thu, 24 Apr 2025 10:38: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=CnO2=XK=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u7tyn-00011R-S4
 for xen-devel@lists.xenproject.org; Thu, 24 Apr 2025 10:38:53 +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 4e5b875f-20f8-11f0-9ffb-bf95429c2676;
 Thu, 24 Apr 2025 12:38:48 +0200 (CEST)
Received: by mail-ed1-x532.google.com with SMTP id
 4fb4d7f45d1cf-5f5bef591d6so1589434a12.1
 for <xen-devel@lists.xenproject.org>; Thu, 24 Apr 2025 03:38:48 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 a640c23a62f3a-ace59c2c282sm85724966b.158.2025.04.24.03.38.47
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 24 Apr 2025 03:38: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: 4e5b875f-20f8-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745491128; x=1746095928; 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=95XP89wM/MbT6Su4ZJ1pqdh/1HU7cMyiHzEbAgSBVZs=;
        b=qZywu03AONdiDVH/rhvsUZ+rKDy/DZXpe2MWMeSViVxqAXII47oRlXlj8hg4rCRuWR
         zmxbMbLEkk8alefATeXDsA9RLgcsaLSKvMqRbGgsnPy/kAkYR9EqgXkrqlNF+cS+oaEJ
         SJlY4zyesVmGPxqvzfhdtt6Z74BHAovNctDmM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745491128; x=1746095928;
        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=95XP89wM/MbT6Su4ZJ1pqdh/1HU7cMyiHzEbAgSBVZs=;
        b=Ocrsml/tgQ/TFfwKMG1SzZl5oxWamiFLaBr4PtVdua+kkt74DndgoNlaWkailp+nAa
         7SUCsewEeun4qeHRa4veDrpUMTsnYqLrNnKxApIOHI4wYWPxQYBYfdA4OP+niqu6d+9O
         kJh6PEtLJkvE4zu4PrnV3cD/bfZ5mMFWx7PIVXaieqSXVIYWI2anCgQ7Mn0RpHvWbwtF
         PUjBVEI+sfiH1xX43BsmmZOCvgBzGh9VnWIZ7L2u/GEXSd0iVMxFaU/2o/pyEjFzSvyP
         IZ+Qi6jB3QLMmqiyhw0XIUinTE9Rb3Po2P4UULGeMeAl5l+7Y7zetLkBNd+DNqvE/KNL
         KMXQ==
X-Gm-Message-State: AOJu0Yzc+XkrSzSQjByG7pJqFDN8QiyrNxBwwE1CmX8execoeKaus4K3
	JFNa7C4vCURoFSGgq64jI/3KWlZL5aBPbIABdOwaGvieyHheUsAiUHdDM71epR5XqWM4ijbVfwl
	b
X-Gm-Gg: ASbGncs/RIRG37oqoexyPDCH7iZIsn7U4gFCPwv5xPb5VMNsA4gJ0p719TvTuHxA8Z4
	sqKX/XbVIXCRx5ybQD7jlNXMxAAY3K9qaq7XOpwoHFWBiN10BtS2f73GWNY5nr6nIVDGCnid+Xl
	+QnwdeOTLxPL6qACvpX44FGf+zpj1ao2pvflLfC1p6ytGmiV3/ngyShe7uk3OwfhTzuDUZvdSyy
	0SEEJTj2Hn+AtT0jTZDxGHipkk4ktK7UnygQcG3TOWupsbEZ2RW4Dq9jIRsL3edzhqHLQ65fyTU
	XP/JdLoc+F1X8eG5pdvsjDel3BL9Ei6lUt98nlMPDS4vFw==
X-Google-Smtp-Source: AGHT+IENEOyj41Piz65NS5XLTmA6/2CJwXHsdoF/8jWEnXB5nBS01jufKmPcIdn8WTfOM3WQkUDz6w==
X-Received: by 2002:a17:907:3f92:b0:ace:55d8:227d with SMTP id a640c23a62f3a-ace573ee7d6mr229753866b.54.1745491127970;
        Thu, 24 Apr 2025 03:38:47 -0700 (PDT)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH] xen: fix buffer over-read in bitmap_to_xenctl_bitmap()
Date: Thu, 24 Apr 2025 12:38:41 +0200
Message-ID: <20250424103841.94828-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.48.1
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

There's an off-by-one when calculating the last byte in the input array to
bitmap_to_xenctl_bitmap(), which leads to bitmaps with sizes multiple of 8
to over-read and incorrectly use a byte past the end of the array.

While there also ensure that bitmap_to_xenctl_bitmap() is not called with a
bitmap of 0 length.

Fixes: 288c4641c80d ('xen: simplify bitmap_to_xenctl_bitmap for little endian')
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/common/bitmap.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/xen/common/bitmap.c b/xen/common/bitmap.c
index bf1a7fd91e36..415d6bc074f6 100644
--- a/xen/common/bitmap.c
+++ b/xen/common/bitmap.c
@@ -369,6 +369,12 @@ int bitmap_to_xenctl_bitmap(struct xenctl_bitmap *xenctl_bitmap,
     const uint8_t *bytemap;
     uint8_t last, *buf = NULL;
 
+    if ( !nbits )
+    {
+	ASSERT_UNREACHABLE();
+	return -EILSEQ;
+    }
+
     if ( !IS_ENABLED(LITTLE_ENDIAN) )
     {
         buf = xmalloc_array(uint8_t, xen_bytes);
@@ -396,7 +402,7 @@ int bitmap_to_xenctl_bitmap(struct xenctl_bitmap *xenctl_bitmap,
      * their loops to 8 bits. Ensure we clear those left over bits so as to
      * prevent surprises.
      */
-    last = bytemap[nbits / 8];
+    last = bytemap[(nbits - 1) / 8];
     if ( nbits % 8 )
         last &= (1U << (nbits % 8)) - 1;
 
-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Thu Apr 24 10:45:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Apr 2025 10:45:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.966158.1356465 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7u4z-0003Hy-Rt; Thu, 24 Apr 2025 10:45:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 966158.1356465; Thu, 24 Apr 2025 10:45: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 1u7u4z-0003Hr-PN; Thu, 24 Apr 2025 10:45:17 +0000
Received: by outflank-mailman (input) for mailman id 966158;
 Thu, 24 Apr 2025 10:45: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=KF8R=XK=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u7u4y-0003HS-H0
 for xen-devel@lists.xenproject.org; Thu, 24 Apr 2025 10:45:16 +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 34844efd-20f9-11f0-9eb1-5ba50f476ded;
 Thu, 24 Apr 2025 12:45:15 +0200 (CEST)
Received: by mail-wr1-x432.google.com with SMTP id
 ffacd0b85a97d-39c1ef4ae3aso556092f8f.1
 for <xen-devel@lists.xenproject.org>; Thu, 24 Apr 2025 03:45:15 -0700 (PDT)
Received: from [192.168.1.23] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3a06d4a8003sm1660652f8f.1.2025.04.24.03.45.13
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 24 Apr 2025 03:45: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: 34844efd-20f9-11f0-9eb1-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745491514; x=1746096314; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=KJjanCZpdIaaHAm0lUoTBlWZKHzYIPOwZSAG43K0TtY=;
        b=V+uGlGwbPw40GFCaBBYfxDtePRQLIGDB058eHWtMs+7XrnA3JI2FOain6Ur9mHh20i
         Ng36a+OEcaTypMLGD84dfKLJ8BJO72a+J0eLle+huV2ChbgO3qjb3MNeHUEIdMWff69+
         PAHLbjR74oA2lpUckJNQYaW/xdTFK1+tdJCEs=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745491514; x=1746096314;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=KJjanCZpdIaaHAm0lUoTBlWZKHzYIPOwZSAG43K0TtY=;
        b=wMrrFXfe3+WQyoP562GofmqGDTlcbvvegtNI+u0mXZWAGv+jFytS2A/EyjasDYYqOE
         1I3/oXrYuf4XJJLDWDw/e7PFoJJPzD0MdeWYoHOqkNZOavjVlNhCMt62fyPik3Yja4hm
         Oeicmk5SXBkSxF0fWW6ZJh3j8QoqP3EmppZoBbAJcg98ylocdR2vc47g7Dc18pFEB92S
         zjxTgm/Qx2Re1xKqFpe1SToqCpO6uYjuUFe8O26zmPAHAJ6kNcI3KXa0FmNNhKXNesxL
         M+vmJ8RjPRnrmO+5XJKilSL1jUuRkirgr0hwWZiHfvQxOttTmreCsmujEXtVxSkFj2by
         gZOw==
X-Forwarded-Encrypted: i=1; AJvYcCVlUs3t7Ng5vH2NvhRDp4iTzN/ZK0cQV82wDCD+sd9KyBJe5SlaXh/OD0TwyGTmXNOSkxmUbjxUyMc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzEV8V2BjUsrcFAFgIyqx92DBo9A7JpUyxWLhnRZNqLbqu+CmOn
	SdBnZ5xhPjFuzIH26IrQv2sy0xkj45yp5+k/+A54jYLasIOHpU2dfx/vStROwBs=
X-Gm-Gg: ASbGncskbuPUegTyb/bjw50kzxBYG8DvZA0TmhnhleidmQfpzus+Z79gG9MwlorXBdn
	hprhB25HlLjmYeLUR01vtCgjq+XkO8OjGFV3suI432Wyj5FkPt5mxXIENaa6z3OwP4oMI5KLid2
	PtmHa3iZRfMY/I7tnCuWwLflpUjjHtM8KQaEDKNZX0+mOY+e3UStBA+jgrdYu/y3Zn44lQkG0zG
	O276KAyjYJyE1Wy6B4pR3v9vecbEYOJFJJqcBxRLn2tmLzhDSwGm988PIR4kP0rBUOpuYVcBulF
	Nd/l4mwai6/xhlcM1F+bw6bj6p6nZpBviKXMqd60I/36T+u7W+JaJdgU2CtY8gxQvlcy+q3MZ0R
	LlvgE
X-Google-Smtp-Source: AGHT+IE5j6r8MA55JyzUApuSbXrDe25WEdXSt7msrZhCfIK7yxjLS5yKu3Yb9qQZYWRLmw7TSETOEA==
X-Received: by 2002:a05:6000:4285:b0:38d:e0a9:7e5e with SMTP id ffacd0b85a97d-3a06d641ee8mr1729191f8f.6.1745491514435;
        Thu, 24 Apr 2025 03:45:14 -0700 (PDT)
Message-ID: <7e3b941d-ec4e-4158-8844-a3cf236c8d4d@citrix.com>
Date: Thu, 24 Apr 2025 11:45:13 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: UBSan bug in real mode fpu emulation
To: Fabian Specht <f.specht@tum.de>, xen-devel@lists.xenproject.org
Cc: manuel.andreas@tum.de
References: <l2jnq5cxgkzcdkndp3mjf76nd7wdp2pbstkqo7llaarmbfqdge@bxdydela4rcf>
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: <l2jnq5cxgkzcdkndp3mjf76nd7wdp2pbstkqo7llaarmbfqdge@bxdydela4rcf>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 24/04/2025 2:08 am, Fabian Specht wrote:
> Dear Xen-Devel team,
>
> we discovered a bug regarding undefined behaviour in the FPU emulation
> unit.
>
> if ( !s->rex_prefix )
> {
> 	/* Convert 32-bit real/vm86 to 32-bit prot format. */
> 	unsigned int fip = fpstate.env.mode.real.fip_lo +
> 					   (fpstate.env.mode.real.fip_hi << 16);
> 	unsigned int fdp = fpstate.env.mode.real.fdp_lo +
> 					   (fpstate.env.mode.real.fdp_hi << 16);
> 	unsigned int fop = fpstate.env.mode.real.fop;
>
> 	fpstate.env.mode.prot.fip = fip & 0xf;
> 	fpstate.env.mode.prot.fcs = fip >> 4;
> 	fpstate.env.mode.prot.fop = fop;
> 	fpstate.env.mode.prot.fdp = fdp & 0xf;
> 	fpstate.env.mode.prot.fds = fdp >> 4;
> }
>
> It occurs at arch/x86/arch/x86/x86_emulate/blk.c:85 of the v4.20.0
> release during the bit shift and can be triggered using the attached xtf
> test. We are not aware of any security consequences.
> Simply shifting by 4 should do the trick in my opinion.
>
> Similar code resides in the same file in lines 87, 125 and 127.
> The attached xtf test is run for hvm32.

Several things.  First, please always the UBSAN analysis from the crash.

There are several different ways that shifts go wrong, and I suspect
this is a shift into a sign bit, which is notable given the unsigned
underlying type.

Also, are you aware that the test isn't properly in Real Mode?  It's in
so-called unreal mode (not actually a real mode, but a consequence of
how the segment registers work), which is relevant to how you manage to
re-enter the emulator for FLDENV.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Apr 24 10:48:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Apr 2025 10:48:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.966169.1356475 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7u87-0003qG-8s; Thu, 24 Apr 2025 10:48:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 966169.1356475; Thu, 24 Apr 2025 10:48: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 1u7u87-0003q9-6C; Thu, 24 Apr 2025 10:48:31 +0000
Received: by outflank-mailman (input) for mailman id 966169;
 Thu, 24 Apr 2025 10:48: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=CnO2=XK=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u7u86-0003q3-35
 for xen-devel@lists.xenproject.org; Thu, 24 Apr 2025 10:48:30 +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 a7c1bf31-20f9-11f0-9ffb-bf95429c2676;
 Thu, 24 Apr 2025 12:48:28 +0200 (CEST)
Received: by mail-ed1-x52a.google.com with SMTP id
 4fb4d7f45d1cf-5e5c7d6b96fso1575196a12.3
 for <xen-devel@lists.xenproject.org>; Thu, 24 Apr 2025 03:48:28 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 4fb4d7f45d1cf-5f6ed9e0ba6sm944319a12.75.2025.04.24.03.48.27
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 24 Apr 2025 03:48:27 -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: a7c1bf31-20f9-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745491708; x=1746096508; 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=Dwnp+/x85wRF3e/O/oqRpY4QG2HujtI1d8XPzHF+htc=;
        b=E8TIv6lUliSJKwW/jdMPY7itDDJPgrkEnh98pVwE9VTLLqfMpmMiWGWRBHo5H1szKx
         uXavjaRJD6V+8caf35uX5TAA0bmifUDCZkRkUFveN96VzNpE7qY9o0QgJiCa0zKmPD/5
         Hbda8YpxG8qbbBP4hA4e13FubOYWbPVUSP/Ag=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745491708; x=1746096508;
        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=Dwnp+/x85wRF3e/O/oqRpY4QG2HujtI1d8XPzHF+htc=;
        b=wkbnSjWDsUfzAgI9kq4dEkPKhipB8/Iho/jn5B4rCi4qZaB7e4+gji2dWYarIN9TZV
         e0IMLbgV0oNrfHRmxloRuqORmE+CgT82iApfBeaOj6N1DSuTRTbr2DrJ0pLn+SMM6TFf
         kUVCPqFFT0DhjPJaStd4ZIeyQiZ6qnA0MgVFvtOFLdAwLjxpOvqVljP0KFs7GEdu0MZ3
         FE5h25M+op1NbL/y+GfjRUIwZqRXgevwsaj158gX5HJafsaFFjYMWe4wvuT4S5YWRYKy
         4l+ETgQzTysXxOkut8m4q5d5NBiNf5/m8ava/vioNRJaJZNB0TxDRtHeTu4vIAZYPxFw
         I2Ug==
X-Forwarded-Encrypted: i=1; AJvYcCUeAEKBBAea0npczpLaEYq6bI2DLUeWVwEPN/cJwv7r0gUUz3/BTJRbiOnOW4aAcRzN6M+6Y7pknjA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwCqzYB4sYVBbKEygF4Lv2UeHLWmjEYoRHXMND/+w5JYN+OqcMa
	DFMku8uHjHQusdt5SL/DY17q3wk8XKDWRy9T5f3TBu8DL1z08y+FStK2rhp+lMc=
X-Gm-Gg: ASbGncvSfvYhGbN6XCJzIw9upGjrGl6MiY0hEr7nL95euwm9jktqfhHHBTNAgSB2s2S
	D2eH/nulipoDZeSNjTvtAISkWsf5ZAHCrKAydbmsvQ7PqCirbMlSsmIoz28VWKqkO1jIp/GyAPA
	FsrgUJO/N2ExIomIdsf2dds/l+U1cWqsbUcG3eILOye2DRRaH3Bx5qnKOrOCWsnHa3yMOexpA2F
	bpcLsqtgXXWehINjAOO21Xwxj6TF29PMADqt1GRRWsJKQ2VVYnBpN2dtmgpYi2CWjTtuZulu5/B
	4TcS4ZlNx9jtA+r4enfwHV357gbaHE3+5+apMPsB9fZb1Q==
X-Google-Smtp-Source: AGHT+IGNgOjBgZPmgjbP5Tni1L9NX6HJ/gM5NkfcCsBrpFYXSLkv0+GUsS7ql9ysRMrGG9Tk2ADhXQ==
X-Received: by 2002:a05:6402:2708:b0:5e6:17e6:9510 with SMTP id 4fb4d7f45d1cf-5f6de1bf547mr2101777a12.6.1745491707817;
        Thu, 24 Apr 2025 03:48:27 -0700 (PDT)
Date: Thu, 24 Apr 2025 12:48:26 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Cc: "Lira, Victor M" <VictorM.Lira@amd.com>,
	Jason Andryuk <jason.andryuk@amd.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	xen-devel@lists.xenproject.org,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>, Xenia.Ragiadakou@amd.com,
	Alejandro.GarciaVallejo@amd.com
Subject: Re: [RFC] xen/x86: allow overlaps with non-RAM regions
Message-ID: <aAoW-kvpsWuPJwrC@macbook.lan>
References: <alpine.DEB.2.22.394.2504031755440.3529306@ubuntu-linux-20-04-desktop>
 <Z--0USril0UIhR4R@macbook.lan>
 <3c5dfd26-3c12-498b-aca4-0beac4e991a5@amd.com>
 <Z_jFSb2-efexUNlL@macbook.lan>
 <9ed89e50-c645-407d-80b4-5b78cb6e36fa@amd.com>
 <Z_zGdE91KwlYxu_A@macbook.lan>
 <ce06ec74-1a73-4a02-87fc-3e829399cc77@amd.com>
 <aAnvRMgJxAskbCtE@macbook.lan>
 <aAoPNTsLjMMfsHvJ@mail-itl>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <aAoPNTsLjMMfsHvJ@mail-itl>

On Thu, Apr 24, 2025 at 12:15:17PM +0200, Marek Marczykowski-Górecki wrote:
> On Thu, Apr 24, 2025 at 09:59:00AM +0200, Roger Pau Monné wrote:
> > On Wed, Apr 23, 2025 at 04:51:16PM -0700, Lira, Victor M wrote:
> > > [    4.570354] Intel(R) 2.5G Ethernet Linux Driver
> > > 
> > > [    4.579535] Copyright(c) 2018 Intel Corporation.
> > > 
> > > [    4.588898] sky2: driver version 1.30
> > > 
> > > (XEN) [   21.644361] d0v3 unable to fixup memory read from 0xfe91000c size 4: -1
> > 
> > This fault is unexpected, according to the identity mappings done at
> > domain build time:
> > 
> > d0: identity mappings for IOMMU:
> >  [00000000a0, 00000000ff] RW
> >  [0000009bff, 0000009fff] RW
> >  [00000cabc9, 00000cc14c] RW
> >  [00000cc389, 00000cc389] RW
> >  [00000cc70a, 00000cd1fe] RW
> >  [00000ce000, 00000cffff] RW
> >  [00000fd000, 00000fd2ff] RW
> > 
> > The page at 0xfe910 should be covered by the last range above.  I
> > think we have a bug somewhere that unexpectedly unmaps that address.
> 
> You sure? 0xfe910 is outside of [00000fd000, 00000fd2ff].

Oh, did and off-by-one when copying, it should have been:

d0: identity mappings for IOMMU:
 [00000000a0, 00000000ff] RW
 [0000009bff, 0000009fff] RW
 [00000cabc9, 00000cc14c] RW
 [00000cc389, 00000cc389] RW
 [00000cc70a, 00000cd1fe] RW
 [00000ce000, 00000cffff] RW
 [00000fd000, 00000fd2ff] RW
 [00000fd304, 00000febff] RW

Where 0xfe910 is covered by the last range.

Regards, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Apr 24 10:54:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Apr 2025 10:54:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.966180.1356486 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7uEH-00069Y-T0; Thu, 24 Apr 2025 10:54:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 966180.1356486; Thu, 24 Apr 2025 10:54: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 1u7uEH-00069R-Q5; Thu, 24 Apr 2025 10:54:53 +0000
Received: by outflank-mailman (input) for mailman id 966180;
 Thu, 24 Apr 2025 10:54: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=Q930=XK=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1u7uEF-00069L-6W
 for xen-devel@lists.xenproject.org; Thu, 24 Apr 2025 10:54:51 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 88a7b077-20fa-11f0-9ffb-bf95429c2676;
 Thu, 24 Apr 2025 12:54:45 +0200 (CEST)
Received: from [192.168.0.104] (unknown [46.228.253.214])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPSA id 42B424EE0737;
 Thu, 24 Apr 2025 12:54:43 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 88a7b077-20fa-11f0-9ffb-bf95429c2676
Authentication-Results: bugseng.com; arc=none smtp.remote-ip=46.228.253.214
ARC-Seal: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; cv=none; t=1745492084;
	b=dJwFc/Y3JOiOK4/H9cJZFQx5qVOXM4GAa+8Rm3cfB2QbmitPjI+dirqzlCdHfA49/NKT
	 1lTGShKPTU6gE3UCzAdRGsqtFqkJF26IcPjWYX+fcBXgic5IQ5+UXj9kuCV82LCVy9rRl
	 6hMqePEbEWy+UwIk5DNatkV+U3dtEWT5AI2wOPbGeKuoi5CkC7lihuh9eqLjma94I1ZL7
	 FyFY9mQ5dQoaBaH8HfC2hm07LK3XIP0tIUfuwZYINCzY+oF9jq0YPSBjQV4GOMz86ZFsp
	 9cDum1hHNQU3FagVRYp0Yx9gqayiQcEL4JAqu2AqwXJ2a81GDE8VbYmX4V8H2hEQMPxBk
	 ijJJUdMDkRachy2VvuW+wbUfFe33GR7ZFJRebQx+LFi8ypnD4A8cjKS7fTckCMGWwxuYP
	 oqBHKVdvB3jre7tBoK2N2zUCkG1PLy9ipYkJ1/5IzLQwWNArEm+rZhOAUYH+G1/qALIPm
	 SLv03xGxmhN6q4UwEP8wIbBYhII+TidzKDuPmows72Xzc+kAdtTuFhBAq+BFGpLthhEMb
	 5lsT1zSt8rAqWJhf16f5p05HQcxCFAszBmMGNDKPOMU/fB7LolK0rZfc0BXSqxXzChHZ4
	 K+uojrUpEIw50AdcV5OnhzT0IxP1v08sAH2dQZ9HWiCOJhSFnrKHubOSe6mVgVg=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1745492084;
	h=DKIM-Signature:Content-Type:Message-ID:Date:MIME-Version:User-Agent:
	 Subject:To:Cc:References:Content-Language:From:In-Reply-To;
	bh=t2Gm+ltAWfwLzEbJlBs5awWqViQ3UtkjF9FZdQPJZfs=;
	b=gX/VNGGal3kgG7w5KmWNMZrPU0N8CXzxACtk5Ift58j7svL4ADpwHnjDcY/uWTezBM3e
	 RKRe/eKBVFjGZzRCxVJUOsPq6fH78BNvApXENY2zfK2kHp8Nvex9xk5MpJsM4ImDIBB+B
	 prjoTpJNTTr2bbBGBGHc8+k4k6X3v3GjY5fsxY1RnsQoyvtXTTGgJi9qTmD8aQefuN8s8
	 88GENiQ0hP/Z/tBeP4lvFJ2dU9t5KeLr82o+8asUia5ap8aiyrF/bW2G6tUD090/iTCN5
	 uXNoyRtfr+3VkOeJclt1oiZh53fWxJ5hvKHKqJBXmHASJrm1QxUe7pn9QLF9mMDBSYv2r
	 eWcrsyqCIVF2hlvDXpUuQmbNnZHdF0kujDRvKIcHKQSqUrhX0oqA9iNboZajvMIRyOVgG
	 fWjwWIvR94r6Va/3hcunuCC8hReMdvUI9auMO07fM5jisRQjfJ8fUEZ/KYmswKCEGs5C+
	 e9kTpN+5b+iEe2S3bJNCyydVVrEkPcvWLW075HXpbGa6hzGhmlaRfarGCFF/kPPL2wJ2z
	 3zMKbzzrjnwmWCT+Y/fPk+LOBvBJWowyU46mUei3Dv8IMeQT3JmBWg/ldCxUUKwSRHtQ3
	 6yx3Zn0d+3T0OjgiRnmK5UteHGz23lzXIam9YoynEuXuNT1N0UZDhRTfr/ZXdSs=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=46.228.253.214
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1745492084; bh=rP+wcRrjyp2Jr//0Dk0jk5ebcyy+b5lfb26TZ/GlaYA=;
	h=Date:Subject:To:Cc:References:From:In-Reply-To:From;
	b=pdNvf3p3/YvVJRK6sByx9m9a0kQyFSfAqlc+pouzyw+hnyklNsL02uPP17qrRlymp
	 m9L7ojQYGdAjM4hNherbNauIkba+AwzsSnFKrNlhE7PnzE7YZWIcDh8Vk4nbyMP53K
	 mQgtykcWtXnB/O1AMjLGssozy6BNhs/e680dG/0E3yupv6VMO/NIRJ/rAWRbDWZIC0
	 U4fIy50NXvg0yzBlFthefs+m6cleh9NvRAxz3ava59CUySmsH8IYZc8lye2NthMRaR
	 OtEeq2kiNYZ7h6Z8j3lIe8JX+DhmSw1TWBPW51Rl2tG1jYMXdBDjh3l7pgc7JFee03
	 prApnAoeU8dPg==
Content-Type: multipart/mixed; boundary="------------pU8o5jw9DTHAELL3BH6UnlhZ"
Message-ID: <c79a4654-50d7-44f6-94b1-5a8f3fbe9b84@bugseng.com>
Date: Thu, 24 Apr 2025 12:54:41 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 00/21] x86: Trenchboot Secure Launch DRTM (Xen)
To: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Lukasz Hawrylko <lukasz@hawrylko.pl>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Mateusz_M=C3=B3wka?= <mateusz.mowka@intel.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, trenchboot-devel@googlegroups.com
References: <cover.1745172094.git.sergii.dmytruk@3mdeb.com>
 <744934f4-f56f-4dc7-bccb-c32f2829d1da@citrix.com>
 <010709d8-7784-41bf-bcb6-bf04803a75fc@citrix.com> <aAk1ZBw8GtoVYoL8@MjU3Nj>
 <a48a0c03f151d960254c65f538141836@bugseng.com> <aAlhPtx8sBvmF5mh@MjU3Nj>
Content-Language: en-US
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
In-Reply-To: <aAlhPtx8sBvmF5mh@MjU3Nj>

This is a multi-part message in MIME format.
--------------pU8o5jw9DTHAELL3BH6UnlhZ
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 4/23/25 23:53, Sergii Dmytruk wrote:
> On Wed, Apr 23, 2025 at 10:11:35PM +0200, Nicola Vetrini wrote:
>> On 2025-04-23 20:45, Sergii Dmytruk wrote:
>>> On Wed, Apr 23, 2025 at 02:38:37PM +0100, Andrew Cooper wrote:
>>>> On 22/04/2025 6:14 pm, Andrew Cooper wrote:
>>>>> I've stripped out the sha2 patch and fixed up to use the existing sha2,
>>>>> then kicked off some CI testing:
>>>>>
>>>>> https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/1780285393
>>>>> https://cirrus-ci.com/build/5452335868018688
>>>>>
>>>>> When the dust has settled, I'll talk you through the failures.
>>>> And here we go.  Interestingly, the FreeBSD testing was entirely
>>>> happy,
>>>> and that is the rare way around.
>>>>
>>>> For Gitlab, there are several areas.
>>>>
>>>> First, for MISRA.  In the job logs, you want the "Browse current
>>>> reports:" link which will give you full details, but it's all pretty
>>>> simple stuff.
>>> Thanks, but that link gives me a list of 5096 failures all over the code
>>> base.  Is there any way to see a diff against master?
>>>
>> Hi,
>>
>> yes, you can define selections of violations introduced on previously clean
>> guidelines by clicking on the "ECLAIR" button on the upper right. See [1]
>> which is the result of defining the "clean_added" selection shown in the
>> attached screenshot. If you have other questions please let me know.
> Hi,
>
> not sure why, but using "added" left 4861 violations.  Picking `_NO_TAG`
> instead seemingly left only new violations.  Maybe that's something
> specific to this particular run.  Either way, I can go through the list
> now and know how to adjust it.  Thank you for the instructions.
>
I'm not sure I fully understand this. This is what I see on x86: the 
ones still shown are those rules where the CI is blocking and new issues 
have been introduced by that pipeline run (of course a different 
pipeline may yield different results). Only new violations are blocking, 
so that is why I filtered out the rest in this case.

Thanks,

  Nicola

>> Thanks,
>>   Nicola
>>
>> [1] https://saas.eclairit.com:3787/fs/var/local/eclair/xen-project.ecdf/xen-project/hardware/xen-staging/ECLAIR_normal/andrew/tb-v1.1/ARM64/9791028027/PROJECT.ecd;/by_service.html#service&kind{"select":true,"selection":{"hiddenAreaKinds":[],"hiddenSubareaKinds":[],"show":true,"selector":{"enabled":true,"negated":false,"kind":1,"children":[{"enabled":true,"negated":false,"kind":0,"domain":"clean","inputs":[{"enabled":true,"text":"added"}]}]}}}
--------------pU8o5jw9DTHAELL3BH6UnlhZ
Content-Type: image/png; name="Screenshot from 2025-04-24 12-52-40.png"
Content-Disposition: attachment; filename="Screenshot from 2025-04-24
 12-52-40.png"
Content-Transfer-Encoding: base64

iVBORw0KGgoAAAANSUhEUgAAAjUAAAEBCAYAAACAFlS+AAAABHNCSVQICAgIfAhkiAAAABl0
RVh0U29mdHdhcmUAZ25vbWUtc2NyZWVuc2hvdO8Dvz4AAAAudEVYdENyZWF0aW9uIFRpbWUA
VGh1IDI0IEFwciAyMDI1IDEyOjUyOjQwIFBNIENFU1RAG074AAAgAElEQVR4nOzdd1zV1f/A
8de9F5Ahy4UDSkAFUQlcuHLhKJxprtAs0dyZmllKqeW3tMw0TYXS3GIWw9BE0RREUXNgLlQc
KArKUqbAvZ/fH8RNghL5URa+n48Hjwd8zvmc8ZGHnzdn3KNSFEWhjLTZaSTvXcKDW7+W9Zb/
hJpeHxCUUoOFB+KedFOeagcntMf/zFV+TblfYWUOcKhDvSpmjPr+1J/mWdK7Cfe1Or46EV8i
7bt+zzH4m8Os9m7JjI1H+GRYC2yrG6PV6cgoyOb2fUPe3hdbYe0Vld9o17r0qXqLuz99/KSb
UqGMbd2o+aIvKrX6STdFPMUe67dPbWRKfsrVv6stT0yV2s58d/rWk27GU6/DiiiGN3qG7na1
KqzMwCu3qV/NhPbPVvvTPEuirtDdvnqpafceFNC0riWp2XnY1zLnzr0HAKhUoFKpKqyd4ukR
cjkZ47pNn3QzKlxechyge9LNEE+5xwpqdHk56B5k/l1teSIMre3Q6nRcTct50k0RQI9vovGo
ac0I52cqrMyVZ67wcU/nP02/lpZDRp6WFrUtSqbdz6HVs9W4mpJF47pW3LmfA6gAFaoyj3EK
8bu72Xlo8x9gWO3ZJ92UCqXLzUApyH/SzRBPuccKavLuXv672vHEGNVpzLm7EtD8mwzccBxj
rZq3mzeskPIu38vi7oMHjPP485fI/rhkejWoWeJ6TFIG7rZWnE/MwLmeJYnp2YCCSqVCrZJh
dlE+Kdl5VKnT5Ek3o8IV3JMRb/Fklfl/ZV1eNnl3K9+aE1OH9pxMzHrSzRB/MCH4DKfiM1jQ
rmL+4//fL7GMbv0sVY00paZ//PMlOthal7gecSMNx5pVOXkjjWdqVCUhNRsVKlBk+kmUX8Sd
Aoxtmz3pZlS43MTzT7oJ4ilX5qBGyc/mwZ1Lf2dbnogqtRrw44WkJ90MUYrPDlxmacRV/Lu6
Y2ZYejDyOH6+eYdPX3T50/Tr6Tl4/mHtzf28Ah4UaElIz8HG0oQbKVmoVGpUKlVhcCNEOYTG
3cW4nuuTbkaFy7t9Dsq+90SICqd61O4nRVGYM2cOsbGxPMZGKSGEEEKIf9Qjg5oPPviApKQk
ateujVq26gkhhBDiX+qRUUpsbKwENEIIIYT415NIRQghhBCVwiODGicnJ7KysmQ9jRBCCCH+
1R65pgZgxVfLuZuc8k+0RwghhBCiXMoU1AghhBBC/NsZPOkGCCGEqLyOHz/+pJvwr9KiRQsA
4v0GPOGW/Ls8MzawQsqRhcJCCCGEqBQkqBFCCCFEpSBBjRBCCCEqBQlqhBBCCAGAkpvNjYz/
7v6hf2lQk8/hGQ0x0NTEZ1fek26MEEKIf5juxgZe7ziFH++X9oLN5/D8nvRbfIqCkndyfd1I
Ok7bQUZpBedF8EHXgXx5VlvRTf5n6dL4dG4ob57SPSoje74NpWtwWinP6o9Z01n6eSQrbxY+
86yj0bh8HMvlR1XxL/Iv3f2kpnqzFxgwIIuWtf+lcZcQQognRIPTQF9mauzRPOmmPCmqqvQb
3IKceqqKK1MpIC1LR1EYWaVhI76wNKJOBVbxdyt7xKC9yQ7fvjxX14IqhlWwqNOUF9/+gStF
Aym5F9k6rSfONU0xrloH136z+fF6PqCQtq4PxmpjOo+ZTLvaVbFyeYO3e5qjNnyOuad/ix21
5/m4lRFq816svq0l5dddBAb+yC+JhSGiknaUFaM70aCGKUbG1ji0f52vjt0rfPh/WrcQQoj/
LCWDXzfPZvgLz9OuoxcjP9z+2ztHS+wP81kYehUtkHc9jM8nDMCzY0deHPE+P8TmPFRGOifW
z2KEV2c6dn2JicujSH5o8EeXepz1s17Fq3MHnvfsz9iFO4jLAcjj4LwejPhoFR++MZSX+3vh
9fKbrDicwj81cKFNvEjftw6yPu33BicfOkyz/13ggjaTkO+Os+ZqYVpBaiKLV+2j1VvbcZ6+
m5c3XCUmu2SZSlYKq9dG0OmdUFze3I77nCg+Pp2DVsnhu2+OsS39AcGr9zA2KoecSxeZ+kMC
txVAyedM5EmGvL+DxpN/pNVH0Sw6nU0+oL17iQEzDzM/OJo+8/bQbmYY/dZd48ITeA2XOai5
FzyDVz/Zg7r3Z2z67lve75TPgVXv8PHOVBSyOPBeb0YsicKg27ssnP0iRhELGPzSx5ws6pTy
gIjNe6k7fBKv+gxhypjeVNOdI2DzCfKBgpjNbD6lpVrv1xlQ+w9hoS6BDaN6Mfnb01i+MJ0P
Z/bC8sx6pgyYxs70zEfXLYQQ4r+n4By/3GrHnK17CFv7BjbRn7M8/B7FJqQKLvDtews47jCV
jXv2EvBeU+JPXPttqkUhdc8C3g3Ipc/n29m78yuGFPzK6ezfStDd4PvZM9hW0J/F2/ezd9tc
2l7/kulLj1AYDxRw8XA8Lees5/vgYFa+lMvWRZs4/w/NXGlsbHnJLp3QkzmFgZSSQ9ixFBq2
tqPhw29v7T1WrPqFHaYN2fRJb07PaYFn2gVGbbjBnWIPS0tE0DFWZtux+qPenFvyIt+2LmDj
tsuc0pkweHQrBllVob9Pd/zamxQLEFJOnmLUj1l0GN6VU0tfJMCrCrvXRrP0WmGIp8u6yy+q
hqz/oDtRHzyH86UzfHb8Af/06pwyBzW6vDwKlDyuHf6JA+cyaTDuB66mxPFN/2qocg+wblMc
OrvXWLb2A6a858+q8U4UnN7I5uNFkYWamoM/Y92iBXw53RM7Lx8G1VO4/N0mDufmcWTTFi4o
dXl5lBfWf4xpboWw9qcUNM3fYeO6j3h33joCgzaybd2bNCeiDHULIYT4z9E0pv9oLxpaGmPu
8ALdmyok3rxTbKREe2kfe2+1YMTY56lTxRBLl8FM6F80LZXJ0d3RWPUew8DGFhga16XjhNdo
Z1r4ktHFhxP6a32GvNkfZwsDjKq54T2mB7rwHRzLBVBh1b4v3esZAUbYtnDD5m4iSf/UchyV
KV4e1Yg9nkC8DnSpt9h+3ZqXWpoWm3YruHGT4Ls1mDTQjkYmaowsqvPGQHtqnotnb7GFRWpa
9X2ekJH1aWCk5d69XPJMqmCanUf6X0UfSh4HohMxb9eE8U4mVFEb4NiiGVMa5xB09Le1Ohor
+naohrUKVGY1aGercCvlwT82qlWkzGtqrAcuxP9wGu+tDeUr3xCWo8LYtgvvrP+OOU1uceu+
Dl3q1/SuvhYVoBTkotUZEnf1wW8laLB1rI9xUYGmnRjl3YhvPv2BTbu7odl2DZXjdF7vZAoU
D0Z0d26RpFXQ1LWlrqawLPuuw7AHlDvH/rruNob/32ckhBDiSVBbYGVZ9FeuGo2BigJt8YhC
l5ZMmmlNauhfLmpq1bFBfRHQ3SM5VUc1j+ro/1Y2tqG2deHf87rkuyTnncdveFe+KUpXdOQr
zbh7X0dt1JhVNf39XrUGNbp/dPShlrsdbULi2HHHEa9fb3KxgT1eVioeboQuI5dUE1PqGP9+
TW1lSm1uczdToYb+qor8lCSWBMaxNyGfqtUtcLHOp0Ax/Os+KXnczYA61U0eCqbU1KlmSFpa
UeBiiLlx0ZNSoVGDoij/+EhNmYOanHQtjgPeJ2SmCwZXDhH54wrmLt7Lp58GM+kHG2zM1Kgt
RrL+p3d4zkAh7epZUqs2oElTUwgEUFHFuMrvvxwY0nzkSJovnk2I72xUt9Q8N28kLY1K1q2u
VQcbjYqLcbFczocWhvmcWjmRJeeeZeCEpn9dtxBCiP8s1SMWqaqr16Ra1kWSshWwVAEKqSmp
hS9TtRW1aqi5c/sOOmoVTk3kpZByT4cNoLauhrVxK8YFLaXvb1MESk4yN1M11Kqp5tjf2rOy
UZnVYaDLGZYdT0T3azYdetShWmE39dTmxljnZHA7FzArvKZNyyIRI2pWfegBalNYtuYscR7t
2Tu1GtZqyDt3kvaXHwrUSnveKiNqmMPtlBy0GP8WOGhJSMnD2qoKarIqvuPlVObpp5tbxtK1
a3deHLWUg7fyUasVdIoaG0cHqpp2ZviQZ1HFb+OTT7exd9fXzBr5Ml693mPPvYcK+cNvp6aR
N6M6GXPn119JMurA68OdS13Jrq7bj5EvVEd37guG9pvIu1MH88qMb9gYHIe6Tpey1S2EEKLS
0TR4gd4NYli/LJz4nAIyL4XgF3jxtzU1ZrTp05X80BVsjEklP+8OR75ZR2Rm4Stcbe/JCw3P
sH7pT1zO0KLLjmfPp2/g/V4QN/8125gNeL5NHVIO/sqmdBsGNDEsEXcY2NajX41klv9wg0u5
Cvn3U1gTdI07TnZ0Nn8oo1JAxgMVpmZGmKoh/34yfmG3SNbqKCiMAqmi0ZJ0N4uUBw9FTSoj
Ore24V7UWVZezOWBroArJ86y/JwxvVtY/au2UZc5qGk4aQvBHw/G7tIq3hzuzZvfxOM06it+
+LgzJpjTfdGPrJnYiqwd85k8bRUX6r3Mx0GrGWn7F1Wo6zHIxwtrtQqLHq8z6Jk/yau25dVv
Q1n6WnO0h1fz+coDPHB/neXBX+BlZVG+uoUQQvz3aex55ZP5dE35Gp+eXXlp9mGebdf0txet
CosOb7NoXB0ifAfQtccovslxp43Nb38+q+3xXvAJL+Zu4c3eHenwwmi+SenMvE9G4Pgv2itu
0tCOFw1yUbs9Q7sqpWQwsGLiuBa8kHmRYe/+iOu844RbObF65DPFt2Mb1GTCYFuyd++nxfSd
dPj8HPHOdrRWZxKXrIDGgq4tzDm17We8d98r9rk21Vu4s7q3KRHrw3nurV0M/SmXbq+1Zfq/
6UEBKkVR/rsfHSiEEOJfTU7pLk5O6S6dnNIthBBCCPEQCWqEEEIIUSlIUCOEEEKISkHW1Agh
hBCiUpCRGiGEEEJUCmXaXn7lypW/ux1CCCEqEQcHB0B2P/2R7H4qnex+EkIIIYR4iAQ1Qggh
hKgUJKgRQgghRKUgQY0QQgghKoWynUOlpLHNpx3vHsgrNVlTfwxbw97F3SCPGz9/zdJvtnPo
7A1S8wypZteEdn1GMcmnG/VNtFzxG8SLn8YUO1Pi99a48+7urYx5VoNybxdTu03mxzQD3N/Z
wdY3HH4/7DJvN2+1mMAOo4F8Hb2Qzobl6boQQojK7wHnVo1i9Jo0+q0IYWbLP7wwCuL5ftoo
Pj1SA58NmxjbSAO6NE6sX8gX3x3ickoBJnWb4vnq20zt3whTFegStzLupc84kf97MRrH0WzY
PI5G+hdVLue/GcdYv1hcZoSwYnCtSjGKsP7AFdbsjeN2Wg52NUx5s5czfVvaAnAh4T7zvjvN
8SupWJoa0qtFPd57qQlVDAsfSucP9nD1Tmax8n759EVqWhhXWPvKFtSoquDYeSjD6uaDksKp
HeGcz65Nm/6dsDcCdXV3aqgLuLJlPMPmHCBFZYVjq460sHzA9RNHCP5iPPui3mbDmjewcenJ
0GEuaFG4dSSQiKtQv+MA2tRVgeYZGpurAR1JPwWwN00HSh6ntwZw6rVZtDCqsH4LIYSo7PKS
iF43nw+/vUgeNUvJkMPZ1b4sPZyOTl1DfzX74FLeXbEPjfvL+Awy5eLOAIIXzqVWs42MaaCm
4NJ54rRqqjt50Lhm4QtbXfdZzPSHRyrcO7wU39VnyVb+TWdY//+EnbrF+1tiaFjHnBGd7Nl+
7CZTVv/CMzXMeO5Za8asjCY18wFD2j3Lxdv3+XZfHFWNDXi7rwtZuQVcu5tJXWsTnG0t9WVW
MajYAzHL+LRNaf7qHJoDFJxkQfRezj9oxIBZHzHQqvBfUbkbyNiFB0gxbMzoNRt4x8OqMCrN
PsfXbwzn0+hl/O87LzaOHMu85wHy+PmdXURcVXAbPof5XR+KWLRxBAZEk2PSkh4trxF+MJjN
+yfRvIdFiSPXhRBCiBIKYlj2ygTW3zSnXi1jVEl/zKCQHvUFvmtvYGpdhdx7Rdd1ZCYmkqEY
0titM127mlHtwk723zKmikFh+o3Yi2RRm0Fvzed1RzVVrc0xeujlpEv8if/NCyLDwhp1SsY/
0dt/RPzdLBrXs+Tz15rTxM4KBxtz3tt0kpNXUmn2jBV+Yz0w0KiobWXC1qhrRF9MxkhTOD71
a3w6igKvdLTnlQ71qVa1Cqq/4YVeYaNhOcf3E50JJh18GNfa6veCTV0Y8UZPqqlyObX/MOll
+PzivJNb2XZOi2WXV5k3sR92qlR2b95Boq6iWiuEEKJyU1O9uTfz1m5i1vMl/yDW3Qrlow+3
k9/9XaZ0Nn8oXU2NrkPoXV/Nr6snMHjgSD75uYC20+fySn01kMXFCzfQKskETe1Bz56eeL40
jXUx91EA8i6z6YNPOWgxmA/GupV15OA/YUz3hux6vytN7KwAOHk1FYDGtpZo1Cpc7CxpVNeC
EV9GMf+HM3g0rMH4no0AOHMjHYDlO2NpPmMnz00PJfBIfIW3sYKCGoXMtHTyFTWWdetQ9Q+/
PYY1baiuUtCmp5L2yMAkg4iA7dxUavLCy12o5T6Ql5w05BzezPcXtRXTXCGEEJWbQTNemTUB
L2dLSkxw5F1k/fuLOGw1hA/f6UKNP7yzVEbVsK1rTZ22o/jgw7fwcsjh8LKP2XZNC7pkMpTa
1K7fkgGT3+eDST2okxzJV+8t5VBmJidWzGZlrANj5k+kZdV/qrP/vGU7Y/nu0HW6udamTaMa
xdKm93VhRj8XjlxKZtbmUwBk5RZQ19qEMd0b8NmrzTGtYsDb605wPuFeacWXWwUFkSqqWlth
qNJx79YtMhWweuiXJC/xFncVFRora6weEUYpST+xeXcKitqOmz99jO9uhWTFBFVBLNu2HGH0
vHaYVEyjhRBCPHV0JPywiK9P51Gj5X12ffkZd09loij5HFy9iBqvvonzvg9ZEV0Vn41j6dtQ
Qw+zi0S+HUZIWByDxzZi8OfbGKwvrytVzh5g9v5jRO9dy5EtV9A8056E7z/ns5uxaNESv3s5
y6q+xmQvhyfY74qhKDBnawzr9l+hS9PaLB/dukSeji616OhSi8AjN9h2+DofDXuOKb2cmdLL
WZ8nIyefD7f9ysHzd2lcz7JEGeVVYdNPJs074lEVciLXsPJoOkUDMkrWGdb67yZNqUKz59sU
C3ZK0nIlOIBD2QpKQTwHv9vCli0B7DmfgQ4tt0M3EZ4m528KIYQoL4XsjEwKlHxuHfuRwMAg
Iq/koujucX5vCIfic0i4kYiOPB7kFb5v8nNz0QIqlQol81eCln3KJ2sOkaoASi45uVpQGWOs
yyRTUci5epDgwEBCjiagRcedU7sIPZFEZZhrmLX5JOv2X2FI+2dZPaENJkaF42C30nLoMmcP
b68rPBajQKdwPzufKgYaDDVqVu+9zLsbT5JXUBgdZOYW7oEuur+iVNh0n6pWX2a8FcKJ/x1i
9avdiWjTBmfLbK7+cpgzSfmYuU/mvaHPlhwGfFj+abZtO0OBgRvv7PyOsQ6/5Vbus3t6NyZu
38+m4Bv08v7tcs4JNsz1JfyhQMmgYX9mjGyJWUV1TAghRCWioeEbmznyRtHP+Rz9pA+Tgq1+
29Kt4nZOc8x+jua7OTPJ71yDizsjyDZ0pPPz9TEwuUbq0WACY8O5dKs/rThBUHQBpm796dX3
FSa+9K6+ptzd79B1ViSu71SOLd3bDsezOfIaGrWKlIwHjPM7AkD/1nb0alEPsyoG/BB9A7Va
xa3UHO7ez2VkZwc0ahVJ93LZcvAaN1Kycatvzbc/x2FtZkTvFvUqtI0VuIbJiEavfUPQM6tZ
viaEyJPh7MgzwMq2Gb0mvsrkcV40MP3rErIitxByXYdxu4H0q/9Q+KOyoNMr/bALXcOJgK2c
GfwcAMqDK+wPKH7YptHzTZn0asuHttYJIYQQZaWmTv8PWZz9Bcu/i+T7jXmY2bVm+NvvMKqx
IdCQkQsX8GDRSkLC1nNeXQOnnpOZMm0o9St20OFfZ93PcQBodQrhpxP1112ftQbg6/FtmPvd
aXaeuIVZFQPG92zEtD6NAZjR1wWdAtuP3uDopWTc6lszb8hzWJlV7Ge1qBRFeeR8jpzSLYQQ
4nHIKd2lk1O6SyendAshhBBCPESCGiGEEEJUChLUCCGEEKJSKNOaGiGEEEKIfzsZqRFCCCFE
pVCZjqUQQgjxLyO7n4qT3U+lk91PQgghhBAPkaBGCCGEEJWCBDVCCCGEqBQkqBFCCCFEpVDm
oCY9PR2VSoVKpcLCwoL8/Hx9mr29vT7twoUL+uvh4eF4enpibm6OtbU1nTp1Ys+ePfp0RVH4
8MMPsbW1xdTUFA8PDw4cOFCi7sjISH35R48eLZG+YsUKGjVqhKmpKU2aNCEgIKDUPuTm5urL
UalUqNVqLCws6Nq1K8eOHSuRPzExESsrKzp37vzI56PVamnfvj0qlRw6JYQQT7MBAwbQsmXL
Yl8pKSlPullPXNipW3T/cC8NJ4XQ86O9RF24W+F1lGukJiMjg6ioKABiY2O5du1aiTwbNmyg
R48eREZG0rZtWzw8PDh06BA9evRg69atAKxfv545c+Zgb2+Pj48PFy5cwMvLi4yMjGJlrVix
Qv/98uXLi6UFBQUxceJEDA0NGT9+POnp6Xh7e5ca/BQxMzNj7NixvP7667i4uPDzzz/TpUsX
zp07p89z+vRpunbtyr179x75PO7evcvAgQM5dOjQI/MKIYSovLKzs7lx4wY2NjZ06NBB/2Vk
VLEHN/7XRF9MZqzfEfLytQzvaM/ttBxGrzxMRk7+o29+DI+9pdvJyYnY2Fh27dpF586dCQsL
A8DZ2Vk/SpOdnc2UKVNQq9VERETQpk0bAHbu3Mnw4cPZv38/Q4YM4YUXXiAiIgI3NzcSEhII
Dw8nMTGxWH137twhMDAQNzc37t+/z9atW1m0aBG1atUCCg/bdHV1Ze3atbi7u+Pk5MTYsWOJ
jo6mdevWpfbBysqKVatW6X9+7733WLBgAR9//DEbN25k3bp1jBo1ikaNGj3yeVy4cIEWLVpQ
tWpVrK2tSUtLe9xHKoQQopK4cOECiqIwcOBA+vfvj7W1tYzgA9/+HIeiwLLRrXCxs2JI+/rk
5GkxNKjYVTCPXZqtrS1OTk7s2rULgLCwMKysrGjZsqU+z6FDh0hLS6Nz5876gAbAy8uL1NRU
Vq5cCYCNjQ3PP/88Bw8epHHjxsTFxbFu3TrMzc3193z99dfk5eUxZswYfHx8yMvLw9/fX58+
ffp0YmJicHd3B+DIkSMAuLq6lrlP48aNAwqnuQBMTU1ZsmQJ+/btK9P9kyZN4syZM9StW7fM
dQohhKh8iv64X716NT169MDT05OdO3c+4VY9eWdvpKNSwbKdsTSaFILPisPcz8nD2FBTofWU
K0Tq1q0bMTExXLt2jQMHDtC1a1c0mt8blpSUBECdOnXKVJ6TkxPbt2+ncePGeHt766eBdDod
/v7+mJiY4O3tzahRozAwMGDVqlUUFBSUKGf+/PmsWbOGPn36lGkdTJHq1asDkJqaCsCgQYOY
PHkyhoaGj7zX2dmZhQsXUrNmzTLXJ4QQonLKysrCxsaG4cOH88EHH2BsbMzcuXO5dOnSk27a
E5WZU4CigEatYtVYD4wM1Iz3O0piek6F1lPuoAbA19eXrKwsunfvXizd2toagISEhGLXtVot
gYGBZGVlFbvu4OBAnz59mDVrFpmZmaxfvx6A0NBQ4uPjsbKyYubMmcydOxcrKysSEhIIDPz9
0wcVRWHy5Mm8//77eHl5/elC4T9TNGVkZWX1WPcJIYQQDxszZgw7duxg/Pjx9O3bl+HDh6PT
6f5ynefTwMSocOBjRj8XejxXh9e7OpL1oIDDsckVWk+5gpouXbqg0WjYvHkzQImgpn379piZ
mREREVFsV9GGDRsYOHAgffv2BWDWrFnUrl2b2NhYoHDBLYClpSXw+wLh27dv4+fnh5+fH8nJ
hQ9g2bJl+nLHjRvH8uXL8fHxYfv27Ziamj5Wf4KCggDo1KnTY90nhBBCPGzz5s3873//Iy8v
D0D/R7yxsfGTbNYT16ieBQBJ93IByM3TAlT4mppynf1kaWlJq1atiI6Opn79+jg6OpZIX7hw
IZMmTeL555+nW7du5OfnEx4ejqGhIb6+vgC0bduWTz75hAEDBtCzZ0/WrFlD1apVGTp0KHFx
cezevZv69etz5coV/UIrrVaLvb09Bw8e5NSpU5w6dQp/f380Gg137txh4MCBAHh7ezNo0CC8
vb05e/ZssSg5PT2dcePGoSgK165dIzw8HDMzM2bPnv3Ivufk5NC2bVtcXV31I0pCCCEEQHJy
MkFBQSQkJNC0aVMCAgKwtLQs8cf/0+aVDvbsP5PE9LXH6dWiHj9Ex2NtZkQ7p4pdulHuEKno
H+jP/qEmTpxIcHAwLVq0YN++fRw5coROnToRFhZGly5dAOjTpw+rV68mPz8ff39/mjZtSnh4
OPb29qxatQpFURg1alSxleMajUa/sHfZsmX6Ld5arZYff/yRkJAQQkJC9KM/sbGxxMTEoNPp
9GVkZWXh5+fH119/TXR0NN27d2f//v00btz4kf3WarXExMRw8eLFcjw1IYQQldn48eMZPnw4
V69eZePGjTg5ObFy5UosLCyedNOeqJ5udVg43B2NRsWGA1dxsDFn/ZvtqFa1Yre6qxRFUSq0
RCGEEOI3ckp3cXJKd+nklG4hhBBCiIdIUCOEEEKISkGCGiGEEEJUCrKmRgghhBCVgozUCCGE
EKJSKNPn1Fy5cuXvbocQQohKxMHBAZD3xx8VPRfZ/VSc7H4SQgghhHiIBDVCCCGEqBQkqBFC
CCFEpSBBjRBCCCEqhTIHNffv38fR0RFHR0dcXV0pKCjQp3Xq1EmfFhcXp78eFRXF8OHDadas
Ge7u7gwbNoyDBw/q0xVFYdmyZbRr144mTZowYMAAjhw5UqLuY8eO6cuPiYkpkb5x40Y8PT1p
0qQJPXv2JDQ0tNQ+PHjwQF+Oo6MjDRo0wNXVFaciUiEAACAASURBVG9vb06fPl3qPV9++SWO
jo6PPLxSq9UyaNCgEod7FklOTqZt27b6j8gWQgghnhYP8rV8EBBDq5k/4TLlRwZ/HsmZ+PQK
r6dcIzVZWVn68zyuXLnCzZs3S+QJCgpi5MiRHDt2jObNm+Pm5sbx48cZOXIkO3bs0OdZsmQJ
dnZ2DB48mLi4OHx8fPRHtRfZuHGj/vsNGzYUS9u9ezdz5szBwMAAb29vMjIymDp1aqnBTxFT
U1OGDRvGyy+/TMOGDYmOjsbb25vLly8XyxcVFcWyZcse+TxSU1OZMGECJ06cKDVdq9Xy5ptv
cufOnUeWJYQQQlQ2nwSdZd3+KzjXs2BAGztOXk3l1WWHyMnTVmg9jx3UFG1HO3DgAACRkZEA
xUYocnJy+Oijj1Cr1QQEBLBu3Tq+/fZb/P39sbS0JDo6GoCOHTsSEBDAmjVrGD58ODY2Nhga
GharLyUlhbCwMFxcXLCzsyM0NJSUlBR9enx8PM7OznzxxRfMmjWLN998E51Ox6lTp/60D+bm
5syfP58FCxbwww8/MG7cOLKzs1mxYoU+T1JSEm+99RbVq1f/y+cRFxdHx44dOXnyJJaWlqXm
Wbx4MadOncLc3PwvyxJCCCEqo9TMPJo9Y8W3k9oxf5gbL7rXJSXjAdfuZlZoPY8d1NSuXRsH
BwciIiIAiIiIwMLCgmbNmunznDhxgnv37uHh4YG7u7v+eufOnTlx4gQfffQRADVq1KBVq1b8
8ssv9OjRg+vXr/PZZ59hZmamvycgIID8/HyGDBnC4MGDyc/PJyAgQJ8+evRoduzYgYuLC4A+
mHF2di5zn1555RWgcJoLoKCggEmTJmFlZcXUqVMfef+IESPYtWsXtWrVKpH2888/4+fnxwcf
fEDNmjXL3CYhhBCisvhyVEtCZ3XBQK0iv0DHmRv3MDbUUL9m1Qqtp1zTT+3bt+f8+fPcvHmT
o0eP0rZtW9Tq34tKTk4GKPUlXxoHBwf8/f1p0KABU6dO1U8D6XQ6AgICMDY2pl+/fgwaNAiN
RsOmTZvQaksOWX311Vds27YNT09PPDw8ytwfa2trANLTC+f3FixYwLlz51i+fHmxAKs0jo6O
zJw5k2rVqpVIu3nzJtOnT6dfv34MHTq0zO0RQgghKqPcfC1j/Y4Ql5jB2/1cMDHSVGj55Q5q
oHBaJTs7mw4dOhRLL5qGSUxMLHZdq9USFhZGdnZ2set2dnZ4enoyYcIEsrOzCQws/GTBffv2
cevWLSwsLFi4cCFLly7FwsKCpKQkdu3apb9fURTmzZvH4sWL6dy5M0uXLn2s/ty7dw8ACwsL
zp07x7fffoutrS0bNmzgu+++A2DHjh0EBwc/Vrnz58/Xl+3r60tycjI5OTn4+vpy//79xypL
CCGE+C/LyMnHe0kUe39NZGrvxozp1qDC6yhXUNOmTRs0Gg3bt28HKBHUtGjRAlNTU44dO1Zs
V1FwcDATJkzgjTfeAGDRokV4eHjoP0a7aK1M0dqTTZs2AXDnzh22bNnCli1bSEtLAyi2G8nX
15f169czePBg/P39MTExeaz+7N69GwAPDw8yMjIAuHz5Mlu2bCEqKgqAX375pdSdWX+lKHAJ
Dg5my5Yt3L9/nwcPHrBly5YSgZ0QQghRWWU9KGDoFwc5cSWVT0c0563eZV8i8jjKdPbTH5mb
m+Pq6srJkyextbXlmWeeKZH+zjvvMHfuXIYMGUL79u0pKCggKioKAwMDJk2aBIC7uzsrV65k
/PjxdOzYkW3btmFqakrv3r2Jj48nMjISW1tb9u/fj0qlAgpHezp16sQvv/zCuXPnOH/+PAEB
AWg0GlJSUpgwYQIA/fr1w8vLi6lTp3Lp0iWCgoL07cvIyMDX1xdFUUhISCAqKgpTU1MmTJhA
gwYNim1LDw0NZcqUKcyZM4dXX32V3NxcXn75ZZydnVm0aNFfPqfNmzcX+7l79+6kpqbqd44J
IYQQT4MPAmI4E59OtapGhJ++Tfjp2wDMfKkJDWpX3CaacgU1UDgFdfLkyRKjNEVGjBhBnTp1
8PPz4/DhwxgaGtK6dWsmT55MmzZtAPD09GTBggWsWrWKgIAAGjduzKxZs7Czs2PBggUoisKg
QYP0AQ2ARqPhlVde4fPPP2f9+vWcP38eKAx29u7dq8/n6uoKFG45P3/+PDqdTp+WnZ3Nli1b
UKlUmJmZ0aFDB6ZNm0aDBo8eCtPpdJw/f54qVao8/kMTQgghnjIZOfkEHbkBFO6C2h1zW5/2
RveGFVqXSlEU5VGZ5JRVIYQQj0NO6S6dnNJdOjmlWwghhBDiIRLUCCGEEKJSkKBGCCGEEJVC
mdbUCCGEEEL828lIjRBCCCEqhXJv6RZCCCFE+cjup+Jk95MQQgghxEMkqBFCCCFEpSBBjRBC
CCEqBQlqhBBCCFEplDmoSU9PR6VSoVKpsLCwID8/X59mb2+vT7tw4YL+enh4OJ6enpibm2Nt
bU2nTp3Ys2ePPl1RFD788ENsbW0xNTXFw8ODAwcOlKg7MjJSX/7Ro0dLpK9YsYJGjRphampK
kyZNCAgIKLUPubm5+nKKvoyMjKhbty6vvfYamZmZxfInJiZiZWVF586dH/l8tFot7du3L3ZO
lRBCCCHgQb6WDwJiaDXzJ1ym/MjgzyM5E59e4fWUa6QmIyODqKgoAGJjY7l27VqJPBs2bKBH
jx5ERkbStm1bPDw8OHToED169GDr1q0ArF+/njlz5mBvb4+Pjw8XLlzAy8uLjIyMYmWtWLFC
//3y5cuLpQUFBTFx4kQMDQ0ZP3486enpeHt7lxr8FDExMWHs2LGMHTuW4cOHo1KpWLduHbNn
z9bnOX36NF27duXevXuPfB53795l4MCBHDp06JF5hRBCiKfNJ0FnWbf/Cs71LBjQxo6TV1N5
ddkhcvK0FVrPYwc1Tk5OAOzatQuAsLAwAJydnfV5srOzmTJlCmq1moiICHbv3s2uXbsICQnB
2tqa/fv3A/DCCy8QERHBzp07mThxInXr1sXIyKhYfXfu3CEwMBA3NzccHBzYunUrd+7c0adf
uXIFV1dXNm7cyOeff86cOXPQ6XRER0f/aR8sLCxYtWoVq1atYs2aNaxevRqAs2fPArBu3Trc
3d0py+cSXrhwgfr163P48GGsra0fmV8IIYR42qRm5tHsGSu+ndSO+cPceNG9LikZD7h2N/PR
Nz+Gx/6cGltbW6AwqFmwYAFhYWFYWVnRsmVL/dTToUOHSEtLw9PTkzZt2ujv9fLyIjU1Vf+z
jY0NNjY2/PTTT3h5eWFoaMj333+Pubm5Ps/XX39NXl4eY8aMIT09ndmzZ+Pv74+vry8A06dP
Z/r06fr8R44cAcDV1fVP+5CZmcncuXOBwimpkJAQffsATE1NWbJkCS+//DJ169Z95DOZNGkS
b7/9Nl26dCEtLe2R+YUQQoinyZejWuq/zy/QcebGPYwNNdSvWbVC6ynX9FO3bt2IiYnh2rVr
HDhwgK5du6LRaPTpSUlJANSpU6dM5Tk5ObF9+3YaN26Mt7c3586dA0Cn0+Hv74+JiQne3t6M
GjUKAwMDVq1aRUFBQYly5s+fz5o1a+jTp89froPJyspi3rx5zJs3j4ULF2JmZsaaNWuYOnUq
AIMGDWLy5MkYGho+su3Ozs4sXLiQmjVrlqmvQgghxNMqN1/LWL8jxCVm8HY/F0yMNI++6TGU
O6gB8PX1JSsri+7duxdLL5qGSUhIKHZdq9USGBhIVlZWsesODg706dOHWbNmkZmZyfr16wEI
DQ0lPj4eKysrZs6cydy5c7GysiIhIYHAwN8/fVBRFCZPnsz777+Pl5fXny4ULmJjY0NBQQHB
wcFUqVKF69ev4+TkJIt8hRBCiL9JRk4+3kui2PtrIlN7N2ZMtwYVXke5gpouXbqg0WjYvHkz
QImgpn379piZmREREcGxY8f01zds2MDAgQPp27cvALNmzaJ27drExsYChQtuASwtLYHfFwjf
vn0bPz8//Pz8SE5OBmDZsmX6cseNG8fy5cvx8fFh+/btmJqaPrIPGo2Gfv368dlnn5GcnMzA
gQNl6kgIIYT4G2Q9KGDoFwc5cSWVT0c0563ezo++qRzKFdRYWlrSqlUrFEWhfv36ODo6lkhf
uHAhWq2W559/nt69e9OzZ098fHwwNDTUr4dp27YtSUlJDBgwgGnTpuHr60vVqlUZOnQocXFx
7N69m/r166PT6VAUBUVRKCgowM7OjoMHD3Lq1CnWrl2Lv78/Go2GO3fuMHDgQPr378+2bdsA
8Pb2xs3Njby8vFL7MmnSJLp06UJiYiIzZsx4ZN9zcnJwc3Pj1VdfLc+jE0IIIZ46HwTEcCY+
HSszQ8JP32bMymjGrIzmcmLGo29+DOX+8L2i0Zk/jtIUmThxIsHBwbRo0YJ9+/Zx5MgROnXq
RFhYGF26dAGgT58+rF69mvz8fPz9/WnatCnh4eHY29uzatUqFEVh1KhRxaaFNBoN48aNAwpH
a4q2eGu1Wn788UdCQkIICQnRj/7ExsYSExODTqcrtZ0qlYrVq1fr19VERkb+Zb+1Wi0xMTFc
vHjxMZ6WEEII8XTKyMkn6MgNoHAX1O6Y2/qvtMzSBxzKS6WUZd+yEEIIISqMnNJdnJzSLYQQ
QgjxEAlqhBBCCFEpSFAjhBBCiEpB1tQIIYQQolKQkRohhBBCVAplOvvpypUrf3c7hBBCVCIO
Dg6AvD/+qOi5yO6n4mT3kxBCCCHEQySoEUIIIUSlIEGNEEIIISoFCWqEEEIIUSmUOai5f/8+
jo6OODo64urqSkFBgT6tU6dO+rS4uDj99aioKIYPH06zZs1wd3dn2LBhHDx4UJ+uKArLli2j
Xbt2NGnShAEDBnDkyJESdR87dkxffkxMTIn0jRs34unpSZMmTejZsyehoaGl9uHBgwf6coq+
nJycaNu2LTNmzCA7O1uf19PTs0TeolPEH1bWPgghhBBPu7v3c2k6NZQhi//6nMXyKtdITVZW
FsePHwcKV7bfvHmzRJ6goCBGjhzJsWPHaN68OW5ubhw/fpyRI0eyY8cOfZ4lS5ZgZ2fH4MGD
iYuLw8fHh6ysrGJlbdy4Uf/9hg0biqXt3r2bOXPmYGBggLe3NxkZGUydOrXU4KeIsbExw4YN
Y9iwYfTv3x+VSkVgYCCLFi3S9+/69evUqVOHLl266L+qVKlSaj/L0gchhBDiaXY+4R5DFx8k
Iyf/b6ujTFu6H+bg4MCVK1c4cOAAHh4e+lOtHx6lycnJ4aOPPkKtVhMQEIC7uzsA+/fvZ9q0
aURHR9OrVy86duxIQEAALi4uJCYmEhUVVWI0JCUlhbCwMFxcXMjIyCA0NJT33nuP6tWrAxAf
H4+zszOfffYZLi4uODg4MHv2bE6dOsVzzz1Xah+qVq3K/Pnz9T9HRETw+uuvc+nSJQDOnDmD
oigMGzaMoUOHUq1atWInhT+sLH0QQgghnmbfH45nxvoT2NtU/Vvreeygpnbt2kBhIPDOO+8Q
ERGBhYUFzZo10wc1J06c4N69e7Rr104f0AB07tyZEydO6H+uUaMGNWrU4MCBA4waNQoDAwO+
+uorzMzM9HkCAgLIz89nyJAh3L9/n88//5yAgAAmTpwIwOjRoxk9erQ+/6lTpwBwdnb+0z5k
Z2ezdOlSoHBKKjw8XN8+gLNnzwKwYsUKFi9ejKWlJe+//z4vvfRSibLK0gchhBDiaWZipGHO
4GZ4Na9Hq5k//W31lGv6qX379pw/f56bN29y9OhR2rZti1r9e1HJyckA1KpVq0zlOTg44O/v
T4MGDZg6dSqXL18GQKfTERAQgLGxMf369WPQoEFoNBo2bdqEVqstUc5XX33Ftm3b8PT0xMPD
40/ry87O5ssvv+TLL7/Ez88PExMTFi5cyKhRo4DC6ac6derg4+PDwoULMTExYebMmVy4cOGx
+yCEEEI87Xq1qMdrXRwx0Py9+5PKHdQALF68mOzsbDp06FAs3dLSEoDExMRi17VaLWFhYcUW
5ALY2dnh6enJhAkTyM7OJjCw8JMF9+3bx61bt7CwsGDhwoUsXboUCwsLkpKS2LVrl/5+RVGY
N28eixcvpnPnzvpRmD9To0YNLl68iJ+fH0ZGRiQkJODg4KCfYpo8eTIHDx5k2rRpvPzyy4we
PRqtVktUVNSflvlnfRBCCCHEP6NcQU2bNm3QaDRs374doERQ06JFC0xNTTl27BinT5/WXw8O
DmbChAm88cYbACxatAgPDw/9x2inpKQAYG5uDsCmTZsAuHPnDlu2bGHLli2kpaUBsH79en25
vr6+rF+/nsGDB+Pv74+Jickj+6DRaOjWrRvvvfceaWlpTJgwgXv37gHw7bffMnv2bPLy8gDI
zMwEKLXcR/VBCCGEEP+Mx15TA4UvbFdXV06ePImtrS3PPPNMifR33nmHuXPnMmTIENq3b09B
QQFRUVEYGBgwadIkANzd3Vm5ciXjx4+nY8eObNu2DVNTU3r37k18fDyRkZHY2tqyf/9+/SiK
VqulU6dO/PLLL5w7d47z588TEBCARqMhJSWFCRMmANCvXz+8vLyYOnUqly5dIigoqNS+jBgx
grCwMKKjo1mwYAGffPIJSUlJBAQEcOPGDZ577jnWrVuHlZUVXl5e5Obm8vLLL+Ps7MyiRYv+
sg9CCCGE+OeUe3KraArqj6M0RUaMGIGfnx9Nmzbl8OHDnDp1itatW7Nu3TratGkDFH4WzIIF
CygoKCAgIIBGjRqxYcMG7Ozs2Lx5M4qiMGjQoGI7jzQaDa+88gpQOFpTNGKj1WrZu3cv4eHh
hIeHc/XqVaBwy/n58+fR6XSltlOlUrFgwQJMTU3Ztm0bx44dY/r06YwePZrLly/zzTff4OLi
woYNG7CyskKn03H+/Hl9+X/VByGEEEL8c1SKoiiPyiSnrAohhHgcckp36eSU7tLJKd1CCCGE
EA+RoEYIIYQQlYIENUIIIYSoFMq0pkYIIYQQ4t9ORmqEEEIIUSmU63NqhBBCCFF+svupONn9
JIQQQgjxEAlqhBBCCFEpSFAjhBBCiEpBghohhBBCVAplDmrS09NRqVSoVCosLCzIz8/Xp9nb
2+vTLly4oL8eHh6Op6cn5ubmWFtb06lTJ/bs2aNPVxSFDz/8EFtbW0xNTfHw8ODAgQMl6o6M
jNSXf/To0RLpK1asoFGjRpiamtKkSRMCAgJK7UNubq6+nKIvIyMj6taty2uvvaY/jdvKyqpE
PpVKRXBwcKnllrV+IYQQojK4ez+XplNDGbI4skTa/rNJPDsuiC9Czxe7HnbqFt0/3EvDSSH0
/GgvURfuVni7yjVSk5GRQVRUFACxsbFcu3atRJ4NGzbQo0cPIiMjadu2LR4eHhw6dIgePXqw
detWoPBAyjlz5mBvb4+Pjw8XLlzAy8uLjIyMYmWtWLFC//3y5cuLpQUFBTFx4kQMDQ0ZP348
6enpeHt7lxr8FDExMWHs2LGMHTuW4cOHo1KpWLduHbNnzwagV69e9OvXT/9lbGxM1apVady4
cYmyylO/EEII8V91PuEeQxcfJCMnv0TaTydvMeHrku+/6IvJjPU7Ql6+luEd7bmdlsPolYdL
LeP/47G3dDs5OREbG8uuXbvo3LkzYWFhADg7O+tHabKzs5kyZQpqtZqIiAj9qdw7d+5k+PDh
7N+/nyFDhvDCCy8QERGBm5sbCQkJhIeHk5iYWKy+O3fuEBgYiJubG/fv32fr1q0sWrSIWrVq
AYWHpbm6urJ27Vrc3d1xcnJi7NixREdH07p161L7YGFhwapVq/Q/79q1ixdffJGzZ88CsGnT
Jn3a5s2bCQkJISAgACcnpxJllad+IYQQ4r/o+8PxzFh/AnubqiXSZqw/wXeHruNY25y4xOKD
E9/+HIeiwLLRrXCxs2JI+/rk5GkxNKjYVTCPHdTY2toChYHAggULCAsLw8rKipYtW+qDmkOH
DpGWloanp6c+oAHw8vIiNTVV/7ONjQ02Njb89NNPeHl5YWhoyPfff4+5ubk+z9dff01eXh5j
xowhPT2d2bNn4+/vj6+vLwDTp09n+vTp+vxHjhwBwNXV9U/7kJmZydy5c4HCKamQkBB9+x6W
mprKxIkT6d27N0OGDCm1rPLUL4QQQvwXmRhpmDO4GV7N69Fq5k/F0p6tacaaiW15kK9lvH/x
0ZqzN9JRqWDZzlj2/ppIHWsTPvZ2w9hQU6HtK1eI1K1bN2JiYrh27RoHDhyga9euaDS/Nywp
KQmAOnXqlKk8Jycntm/fTuPGjfH29ubcuXMA6HQ6/P39MTExwdvbm1GjRmFgYMCqVasoKCgo
Uc78+fNZs2YNffr0oXPnzn9aX1ZWFvPmzWPevHksXLgQMzMz1qxZw9SpU4vlW7JkCenp6cyf
P79M/Shr/UIIIcR/Ua8W9XitiyMGmpLhw6QXnfBsVrvU+zJzClAU0KhVrBrrgZGBmvF+R0lM
z6nQ9pU7qAHw9fUlKyuL7t27F0u3trYGICEhodh1rVZLYGAgWVlZxa47ODjQp08fZs2aRWZm
JuvXrwcgNDSU+Ph4rKysmDlzJnPnzsXKyoqEhAQCA3//9EFFUZg8eTLvv/8+Xl5ej1yoa2Nj
Q0FBAcHBwVSpUoXr16/j5OSESqUq1tYVK1bQunVrnnvuub8s73HrF0IIIZ4mJkaFAx8z+rnQ
47k6vN7VkawHBRyOTa7QesoV1HTp0gWNRsPmzZsBSgQ17du3x8zMjIiICI4dO6a/vmHDBgYO
HEjfvn0BmDVrFrVr1yY2NhaAu3cLV0JbWloCvy8Qvn37Nn5+fvj5+ZGcXPgAli1bpi933Lhx
LF++HB8fH7Zv346pqekj+6DRaOjXrx+fffYZycnJDBw4kLS0NH36wYMHSUlJoX///o8sqzz1
CyGEEE+LRvUsAEi6lwtAbp4WoMLX1JSrNEtLS1q1aoWiKNSvXx9HR8cS6QsXLkSr1fL888/T
u3dvevbsiY+PD4aGhvr1MG3btiUpKYkBAwYwbdo0fH19qVq1KkOHDiUuLo7du3dTv359dDod
iqKgKAoFBQXY2dlx8OBBTp06xdq1a/H390ej0XDnzh0GDhxI//792bZtGwDe3t64ubmRl5dX
al8mTZpEly5dSExMZMaMGfrrRbu7PDw8iuXPycnBzc2NV199FeCR9QshhBBPu1c62AMwfe1x
5n//KyvDLmJtZkQ7p5oVWk+5Q6Si0Zk/jtIUmThxIsHBwbRo0YJ9+/Zx5MgROnXqRFhYGF26
dAGgT58+rF69mvz8fPz9/WnatCnh4eHY29uzatUqFEVh1KhRxaaFNBoN48aNAwpHa4q2eGu1
Wn788UdCQkIICQnRj/7ExsYSExODTqcrtZ0qlYrVq1fr19VERhbuub9+/Trw+8LoIlqtlpiY
GC5evAjwyPqFEEKIp11PtzosHO6ORqNiw4GrONiYs/7NdlSralSh9agURVEqtEQhhBBC/CU5
pbs4OaVbCCGEEOIhEtQIIYQQolKQoEYIIYQQlYKsqRFCCCFEpSAjNUIIIYSoFMp09tOVK1f+
7nYIIYSoRBwcHAB5f/xR0XOR3U/Fye4nIYQQQoiHSFAjhBBCiEpBghohhBBCVAoS1AghhBCi
UihzUHP//n0cHR1xdHTE1dWVgoICfVqnTp30aXFxcfrrUVFRDB8+nGbNmuHu7s6wYcM4ePCg
Pl1RFJYtW0a7du1o0qQJAwYM4MiRIyXqPnbsmL78mJiYEukbN27E09OTJk2a0LNnT0JDQ0vt
w4MHD/TlFH05OTnRtm1bZsyYQXZ2NgBubm4l8jk6OrJnz54SZZa1D0IIIcTT7u79XJpODWXI
4si/pfxyjdRkZWVx/PhxoHBl+82bN0vkCQoKYuTIkRw7dozmzZvj5ubG8ePHGTlyJDt27NDn
WbJkCXZ2dgwePJi4uDh8fHzIysoqVtbGjRv132/YsKFY2u7du5kzZw4GBgZ4e3uTkZHB1KlT
Sw1+ihgbGzNs2DCGDRtG//79UalUBAYGsmjRIgC6dOlCt27d9F9VqlTB1NS0xGnkj9MHIYQQ
4ml2PuEeQxcfJCMn/2+ro0xbuh/m4ODAlStXOHDgAB4eHvpTrR8epcnJyeGjjz5CrVYTEBCA
u7s7APv372fatGlER0fTq1cvOnbsSEBAAC4uLiQmJhIVFcXdu3eL1ZeSkkJYWBguLi5kZGQQ
GhrKe++9R/Xq1QGIj4/H+f/au/e4KKt98eOfcQBluCgnTqhBKrrFUBCyBLRSw7QQ0zQ1wwsB
pYLmxtIy6aBt/QXbW+IlwYMloI6bAlFKMXQLqKmogTvFG2Qk5gXkDirMzO8PDk8S4IWj++xN
3/frNS9mnrWedXn+4ftal2f16sXSpUtxdHTE3t6eBQsWkJWVRd++fZvsg7m5OYsXL1Z+p6en
89Zbb3H+/HkAVq5cqaTt2LGD1NRUIiIilK14d7qfPgghhBB/ZF99n8/cmBN0szF/pPU8cFDT
sWNHoC4QmDdvHunp6VhaWuLk5KQENSdOnKC0tJQBAwYoAQ3A4MGDOXHihPLb2toaa2tr0tLS
8PPzw8jIiLVr12JmZqbk0Wq11NTUMGHCBMrKyli+fDlarZagoCAAAgICCAgIUPJnZWUB0KtX
r2b7UFVVxapVq4C6KanU1FSlfXcqKSkhNDSUF198kREjRjRZ1v30QQghhPgjMzVREzreCa+n
n+DZD3Y9snpaNP00cOBAcnJyuHTpEkePHsXDw4M2bX4rqrCwEIDHH3/8vsqzt7cnKiqKHj16
EBwczIULFwDQ6/VotVratWvHqFGjGDduHGq1ms2bN6PT6RqVs3btWuLj4/H09MTNza3Z+qqq
qoiIiCAiIoLIyEhMTU0JDw/Hz8+vQb4vvviCsrIy5syZ0+I+CCGEEH90I/o9ge+Q7hipH+3+
pBYHNQArVqygqqqK5557rkF6+/btAbhy2xqhsgAAIABJREFU5UqD6zqdjpSUFGVBbj07Ozs8
PT0JDAykqqqKhIS6Nwvu27ePy5cvY2lpSXh4OKtWrcLS0pKrV6+ye/du5X6DwcCiRYtYsWIF
gwcPVkZhmmNtbc25c+eIjIzExMSEgoIC7O3tUalUDdoaFxdH3759eeqpp+75TJrrgxBCCCH+
OVoU1Li7u6NWq9mxYwdAo6CmX79+aDQaMjMzOXnypHJ9+/btBAYG8s477wCwbNky3NzclNdo
FxUVAWBhYQHA5s2bAbh27Rpbt25l69atFBcXAxATE6OUGxISQkxMDOPHjycqKgpTU9N79kGt
VjN06FDmz59PcXExgYGBlJaWKunHjh2jpKSEl1566a7l3KsPQgghhPjnaFFQY2FhgbOzMwaD
AVtbW5588slG6fPmzUOn0zFhwgQCAgLw9fXlww8/xMjIiJkzZwLg6upKYWEhM2bMYMmSJaxY
sQKNRoO3tzf5+flkZGRga2vLhQsXyM3NJTc3l3PnztGpUyeOHTvG6dOn+frrr9FqtajVaoqK
iggMDGTatGl8++23AAQHB+Pt7U1NTdOrrSdPnoy7uzvXr18nLCxMuV6/u8vFxaVB/ps3b+Lt
7c37779/zz4IIYQQ4p+nxZNb9VNQvx+lqTd58mQiIyPp06cP33//PVlZWfTv359Nmzbh7u4O
gKenJ2FhYdTW1qLVaunZsyexsbHY2dmxZcsWDAYD48aNazAtpFarefPNN4G60Zr6ERudTsfe
vXtJTU0lNTWVn376Cajbcp6Tk4Ner2+ynSqVirCwMDQaDfHx8WRmZgJQUFAA/LYwup5erycn
J0cp/259EEIIIcQ/j8pgMBjulUlOWRVCCPEg5JTupskp3U2TU7qFEEIIIe4gQY0QQgghWgUJ
aoQQQgjRKtzXmhohhBBCiH91MlIjhBBCiFbhgc9+EkIIIcT/jux+akh2PwkhhBBC3EGCGiGE
EEK0ChLUCCGEEKJVkKBGCCGEEK3CfQc1JSUlqFQqVCoVlpaWDQ6I7Natm5J25swZ5Xpqaiqe
np5YWFhgZWXFoEGD+O6775R0g8HAJ598gq2tLRqNBjc3N9LS0hrVnZGRoZR/9OjRRunr1q2j
Z8+eaDQaevfujVarbbIPN2/eVMqp/5iYmNC5c2d8fX2pqKgAoKqqinfeeQcbGxvMzc15/vnn
lTOhfu9++yCEEEL8Eew/dZUu0xNZmZyjXLtVo+O/tNk8+8EuHGfvZPzyDH7ML3nodbdopKa8
vJyDBw8CcPbsWS5evNgoT2xsLMOGDSMjIwMPDw/c3Nw4dOgQw4YNY9u2bUDdgZShoaF069YN
f39/zpw5g5eXF+Xl5Q3KWrdunfJ9zZo1DdISExMJCgrC2NiYGTNmUFJSgo+PT5PBTz1TU1Om
TZvGtGnTmDRpEiqVik2bNrFgwQIAlixZwoYNG3jppZeYNWsWJ0+eZOzYsU2Wdb99EEIIIVq7
XT9cJnBD4/+/nyaeYtP+PHo9YckYdzt++OkGU1Yfovq27qHW/8BBjYODAwC7d+8GICUlBYBe
vXopeaqqqpg9ezZt2rQhPT2dPXv2sHv3bpKSkrCysmL//v0AvPzyy6Snp/Ptt98SFBRE586d
MTExaVDftWvXSEhIwMXFBXt7e7Zt28a1a9eU9Ly8PJydnYmLi2P58uWEhoai1+s5fPhws32w
tLRk/fr1rF+/no0bNxIdHQ3AqVOnADh37hwAr732GmPGjOHxxx9v1K5699MHIYQQorWbG3OC
6ZFH6NjBtFHajYrbOD3ZgS9mDmDxRBdece1MUfktLl6veKhteOD31Nja2gJ1QU1YWBgpKSl0
6NCBZ555Rpl6OnToEMXFxXh6euLu7q7c6+XlxY0bN5TfNjY22NjYsGvXLry8vDA2Nuarr77C
wsJCybNhwwZu377N22+/TUlJCQsWLCAqKoqQkBAA3nvvPd577z0l/5EjRwBwdnZutg8VFRUs
XLgQqJuSSkpKUtoH8O677/Ldd9/x+uuvA2BhYUFGRkaTZd1PH4QQQojWrst/mrExyINbNTpm
RDUcrYnwe0b5XlOr58dfSmlnrKbrf5o/1Da0aPpp6NChZGdnc/HiRdLS0njxxRdRq9VK+tWr
VwHo1KnTfZXn4ODAjh07eOqpp/Dx8eH06dMA6PV6oqKiMDU1xcfHBz8/P4yMjFi/fj21tbWN
ylm8eDEbN25k5MiRDB48uNn6KisrWbRoEYsWLSI8PBwzMzM2btxIcHAwAI899hidO3cmMDBQ
mfry9fVFp2t+mKy5PgghhBB/BDNfccDTqeNd89ys0TEt8gi5V8p5f5Qjpibqu+Z/UC0OagBC
QkKorKzkpZdeapBuZWUFQEFBQYPrOp2OhIQEKisrG1y3t7dn5MiRfPTRR1RUVBATEwNAcnIy
+fn5dOjQgQ8++ICFCxfSoUMHCgoKSEj47e2DBoOBWbNm8fHHH+Pl5dXsQuF6NjY21NbWsn37
dtq2bcvPP/+Mg4MDKpUKgICAAIqKilizZg0zZszA19eXrKwsZR1RU5rrgxBCCCGgvLoGn88O
svcfVwj2foq3h/Z46HW0KKgZMmQIarWaLVu2ADQKagYOHIiZmRnp6ekNdg3FxsYyduxYXn31
VQA++ugjOnbsyNmzZwG4fv06AO3btwd+WyD866+/EhkZSWRkJIWFhQCsXr1aKXf69OmsWbMG
f39/duzYgUajuWcf1Go1o0aNYunSpRQWFjJ27FiKi4uBujU1t27d4vbt2wDKrqi2bds2Kude
fRBCCCH+6Cpv1fLGygOcyLvBXyc/zZ+9e937phZoUVDTvn17nn32WQwGA127dqV79+6N0sPD
w9HpdDz//PN4e3szfPhw/P39MTY2VtbDeHh4cPXqVcaMGcOcOXMICQnB3NycN954g9zcXPbs
2UPXrl3R6/UYDAYMBgO1tbXY2dlx4MABsrKy+PLLL4mKikKtVnPt2jXGjh3L6NGjiY+PB8DH
xwcXFxclQPm9mTNnMmTIEK5cucLcuXMBGDZsGKWlpYwYMYLg4GDi4uLo0aMHLi4uVFdX4+Li
wpQpU+7ZByGEEELAf2mz+TG/hA5mxqSe/JW3Pz/M258f5sKVh7tTuMUv36sfnfn9KE29oKAg
tm/fTr9+/di3bx9Hjhxh0KBBpKSkMGTIEABGjhxJdHQ0NTU1REVF0adPH1JTU+nWrRvr16/H
YDDg5+enTAtB3QjL9OnTgbrRmvot3jqdjp07d5KUlERSUpIycnL27Fmys7PR6/VNtlOlUhEd
Ha2sq8nIyCAyMpKZM2dy+vRpoqOjGTJkCMnJybRt2xadTkd2drayQ+pufRBCCCH+6Mqra0g8
8gtQtwtqT/avyqe4oukBh5ZSGQwGw0MtUQghhBB3Jad0NySndAshhBBC3EGCGiGEEEK0ChLU
CCGEEKJVkDU1QgghhGgVZKRGCCGEEK3CfZ39lJeX96jbIYQQohWxt7cH5P/H79U/F9n91JDs
fhJCCCGEuIMENUIIIYRoFSSoEUIIIUSrIEGNEEIIIVqF+w5qysrK6N69O927d8fZ2Zna2lol
bdCgQUpabm6ucv3gwYNMmjQJJycnXF1dmThxIgcOHFDSDQYDq1evZsCAAfTu3ZsxY8Zw5MiR
RnVnZmYq5WdnZzdKj4uLw9PTk969ezN8+HCSk5Ob7MOtW7eUcuo/Dg4OeHh4MHfuXKqqqgCo
rq5mwYIF9O/fHycnJyZMmMDJkyfv+YwOHz5Mz549CQoKumdeIYQQ4o+iT3AyXaYnNvqkZP36
UOtp0UhNZWUlx48fB+pWtl+6dKlRnsTERKZOnUpmZiZPP/00Li4uHD9+nKlTp/LNN98oeT77
7DPs7OwYP348ubm5+Pv7U1lZ2aCsuLg45XtsbGyDtD179hAaGoqRkRE+Pj6Ul5cTHBzcZPBT
r127dkycOJGJEycyevRoVCoVCQkJLFu2DIB169ah1Wp57rnnmDJlCmfOnCEwMPCuz+TatWvM
nj0bnU5313xCCCHEH82LTh0Z1reT8mlrrMasrRF/6mTxUOu5ry3dd7K3tycvL4+0tDTc3NzI
yMgAaDBKU11dzV/+8hfatGmDVqvF1dUVgP379zNnzhwOHz7MiBEjeOGFF9BqtTg6OnLlyhUO
HjzI9evXG9RXVFRESkoKjo6OlJeXk5yczPz583nssccAyM/Pp1evXixduhRHR0fs7e1ZsGAB
WVlZ9O3bt8k+mJubs3jxYuV3eno6b731FufPnwfgp59+AmDYsGF07tyZXbt2cbd3FOp0Ot59
990Gp4kLIYQQok6E3zPK96Sjv7An+1eWBzyLvY35Q63ngYOajh07AnWBwLx580hPT8fS0hIn
JyclqDlx4gSlpaUMGDBACWgABg8ezIkTJ5Tf1tbWWFtbk5aWhp+fH0ZGRqxduxYzMzMlj1ar
paamhgkTJlBWVsby5cvRarXKFE9AQAABAQFK/qysLAB69erVbB+qqqpYtWoVUDcllZqaqrQP
YOrUqRw4cECpw8zMjG3btjVb3tKlS/nHP/7B+vXr8fX1vfsDFEIIIf6gSipvE6LNxtOpIyOf
sX3o5bdo+mngwIHk5ORw6dIljh49ioeHB23a/FZUYWEhAI8//vh9lWdvb09UVBQ9evQgODiY
CxcuAKDX69FqtbRr145Ro0Yxbtw41Go1mzdvbnKaZ+3atcTHx+Pp6Ymbm1uz9VVVVREREUFE
RASRkZGYmpoSHh6On58fAFZWVtjY2DBp0iQ++eQTAObNm9dknampqWzYsIHQ0NC7BlJCCCHE
H130vlzKqmqYO8rxkZTf4qAGYMWKFVRVVfHcc881SG/fvj0AV65caXBdp9ORkpKiLMitZ2dn
h6enJ4GBgVRVVZGQUPdmwX379nH58mUsLS0JDw9n1apVWFpacvXqVXbv3q3cbzAYWLRoEStW
rGDw4MHKKExzrK2tOXfuHJGRkZiYmFBQUIC9vb0yffThhx9SXFzMwoUL8fHxYezYsZw+fVpZ
R3SnuXPnYm5uzsmTJwkPDwfg1KlTrFy58p7PUQghhPij0OkNxO7Pw6WrFU/Ztn8kdbQoqHF3
d0etVrNjxw6ARkFNv3790Gg0ZGZmNtg1tH37dgIDA3nnnXcAWLZsGW5ubsprtIuKigCwsKhb
OLR582agbhHu1q1b2bp1K8XFxQDExMQo5YaEhBATE8P48eOJiorC1NT0nn1Qq9UMHTqU+fPn
U1xcTGBgIKWlpUDdmprbt29TU1MDoARhJiYmjcopKyujoqKCrVu3kpiYCMAvv/yiPBshhBBC
QOaFIoorbzPMpfMjq6NFQY2FhQXOzs4YDAZsbW158sknG6XXT9dMmDCBgIAAfH19+fDDDzEy
MmLmzJkAuLq6UlhYyIwZM1iyZAkrVqxAo9Hg7e1Nfn4+GRkZ2NracuHCBXJzc8nNzeXcuXN0
6tSJY8eOcfr0ab7++mu0Wi1qtZqioiICAwOZNm0a3377LQDBwcF4e3srAcrvTZ48GXd3d65f
v05YWBgAzz//POXl5fj7+7N48WK2b99Oly5dcHR05ObNm3h7e/P+++8DKO3Kzc3l8OHDALz8
8sv8/e9/b8mjFUIIIVqlY7l1Axeu3aweWR0tfvle/RTU70dp6k2ePJnIyEj69OnD999/T1ZW
Fv3792fTpk24u7sD4OnpSVhYGLW1tWi1Wnr27ElsbCx2dnZs2bIFg8HAuHHjGuwqUqvVvPnm
m0DdaE39iI1Op2Pv3r2kpqaSmpqq7GDKy8sjJycHvV7fZDtVKhVhYWFoNBri4+PJzMxkyZIl
TJkyhQsXLvC3v/0NDw8P/vu//xsTExP0ej05OTlK+UIIIYS4t4IbdbMeHTvcezalpVSGu+1V
/h9yyqoQQogHIad0N01O6W6anNIthBBCCHEHCWqEEEII0SpIUCOEEEKIVuG+1tQIIYQQQvyr
k5EaIYQQQrQKD3z2kxBCCCH+d2T3U0Oy+0kIIYQQ4g4S1AghhBCiVZCgRgghhBCtggQ1Qggh
hGgV7juoKSkpQaVSoVKpsLS0bHBAZLdu3ZS0M2fOKNdTU1Px9PTEwsICKysrBg0axHfffaek
GwwGPvnkE2xtbdFoNLi5uZGWltao7oyMDKX8o0ePNkpft24dPXv2RKPR0Lt3b7RabZN9uHnz
plJO/cfExITOnTvj6+tLRUVFg/xXrlyhQ4cODB48uFFZu3fvRqVSsXDhwmaf2dGjR3nhhRcw
NzfHzs6O5cuXN5tXCCGEaO2ul92kT3AyE1ZkPJLyWzRSU15ezsGDBwE4e/YsFy9ebJQnNjaW
YcOGkZGRgYeHB25ubhw6dIhhw4axbds2oO5AytDQULp164a/vz9nzpzBy8uL8vLyBmWtW7dO
+b5mzZoGaYmJiQQFBWFsbMyMGTMoKSnBx8enyeCnnqmpKdOmTWPatGlMmjQJlUrFpk2bWLBg
gZLn5MmTvPjii5SWlja6/+uvv2b8+PF3fUY3btzglVde4ccffyQgIABra2vef/99oqKi7nqf
EEII0RrlFJTyxooDlFfX3DtzCz1wUOPg4ADUjVQApKSkANCrVy8lT1VVFbNnz6ZNmzakp6ez
Z88edu/eTVJSElZWVuzfvx+Al19+mfT0dL799luCgoLo3LkzJiYmDeq7du0aCQkJuLi4YG9v
z7Zt27h27ZqSnpeXh7OzM3FxcSxfvpzQ0FD0ej2HDx9utg+WlpasX7+e9evXs3HjRqKjowE4
deoUAJs2bcLV1ZWm3kvo7+/P66+/zhNPPHHX53Ts2DFu3LhBYGAgn332GXv27AHg888/v+t9
QgghRGvz1ff5eC3+O4/6bb8P/J4aW1tboC6oCQsLIyUlhQ4dOvDMM88oU0+HDh2iuLgYT09P
3N3dlXu9vLy4ceOG8tvGxgYbGxt27dqFl5cXxsbGfPXVV1hYWCh5NmzYwO3bt3n77bcpKSlh
wYIFREVFERISAsB7773He++9p+Q/cuQIAM7Ozs32oaKiQpk2unnzJklJSUr7ADQaDZ999hmv
v/46nTt3bnBv9+7d2blzJzdv3mTcuHHN1lE/JZeRkUF+fj4HDhwA4Mcff8RgMKBSqZq9Vwgh
hGhNTE3UhI53wuvpJ3j2g12PrJ4WvXxv6NChrF27losXL5KWlsbw4cNRq9VK+tWrVwHo1KnT
fZXn4ODAjh07CAkJwcfHhyNHjuDo6IherycqKgpTU1N8fHyorq4mNDSU9evX8+GHH2Jk1LD5
ixcvZuPGjYwcObLJdTD1KisrWbRokfK7X79+bNy4EV9fXwAlWCksLGx070cffQTAV199ddc+
/elPfyI8PJwFCxbQpUsXbG1tad++PaWlpdy6dYt27drdz6MRQggh/u2N6Fc3u3Gj4vYjradF
a2qGDh0KQEhICJWVlbz00ksN0q2srAAoKChocF2n05GQkEBlZWWD6/b29owcOZKPPvqIiooK
YmJiAEhOTiY/P58OHTrwwQcfsHDhQjp06EBBQQEJCb+9fdBgMDBr1iw+/vhjvLy8ml0oXM/G
xoba2lq2b99O27Zt+fnnn3FwcHjooydz587l8uXLHDt2jLNnz6LX6zExMZGARgghhHgEWhTU
DBkyBLVazZYtWwAaBTUDBw7EzMyM9PR0MjMzleuxsbGMHTuWV199Fagb9ejYsSNnz54F4Pr1
6wC0b98e+G2B8K+//kpkZCSRkZHK6Mnq1auVcqdPn86aNWvw9/dnx44daDSae/ZBrVYzatQo
li5dSmFhIWPHjqW4uLglj6NJ1dXVTJkyhZUrV9KvXz/Onz9PeXk5Li4uD60OIYQQQvymRUFN
+/btefbZZzEYDHTt2pXu3bs3Sg8PD0en0/H888/j7e3N8OHD8ff3x9jYWFkP4+HhwdWrVxkz
Zgxz5swhJCQEc3Nz3njjDXJzc9mzZw9du3ZFr9djMBgwGAzU1tZiZ2fHgQMHyMrK4ssvvyQq
Kgq1Ws21a9cYO3Yso0ePJj4+HgAfHx9cXFy4fbvpIa+ZM2cyZMgQrly5wty5c1vyOBQZGRm4
uLgQERGBqakpp06d4q9//SszZ87k9ddfB2DWrFn/qzqEEEII0bQWv3yvfnTm96M09YKCgti+
fTv9+vVj3759HDlyhEGDBpGSksKQIUMAGDlyJNHR0dTU1BAVFUWfPn1ITU2lW7durF+/HoPB
gJ+fX4NpIbVazfTp04G60Zr6Ld46nY6dO3eSlJREUlKSMvpz9uxZsrOz0ev1TbZTpVIRHR2N
mZkZGzduJCOj5XvnS0tLyc7O5vLlywDExcXRv39/oqOjMRgMREZGMmnSpBaXL4QQQojmqQxN
7VsWQgghxCMjp3Q3JKd0CyGEEELcQYIaIYQQQrQKEtQIIYQQolWQNTVCCCGEaBVkpEYIIYQQ
rcJ9HZOQl5f3qNshhBCiFbG3twfk/8fv1T8X2f3UkOx+EkIIIYS4gwQ1QgghhGgVJKgRQggh
RKsgQY0QQgghWoX7DmrKysro3r073bt3x9nZmdraWiVt0KBBSlpubq5y/eDBg0yaNAknJydc
XV2ZOHEiBw4cUNINBgOrV69mwIAB9O7dmzFjxnDkyJFGdWdmZirlZ2dnN0qPi4vD09OT3r17
M3z4cJKTk5vsw61bt5Ry6j8ODg54eHgwd+5cqqqqlHyLFi3Cw8MDJycnJk6cyKlTp5Ryfv75
ZyZPnoyzszPDhw8nJSWlyfq++OKLRvV1794db2/vezxtIYQQ4t/LxeuVTIk4hOOfd9L3vW8I
3HCUovJbAPQJTqbL9MRGn5SsXx9qG1o0UlNZWcnx48eBupXtly5dapQnMTGRqVOnkpmZydNP
P42LiwvHjx9n6tSpfPPNN0qezz77DDs7O8aPH09ubi7+/v5UVlY2KCsuLk75Hhsb2yBtz549
hIaGYmRkhI+PD+Xl5QQHBzcZ/NRr164dEydOZOLEiYwePRqVSkVCQgLLli0DIDw8nJiYGBwc
HHjttdfIysrC19eX6upq9Ho9AQEBHD16lJEjR1JZWcmsWbM4c+ZMo3qefPJJhg4dqnwcHR0B
cHZ2vp/HLIQQQvzbmPPlMY6cL2TSC9142bUz3xwvYPFXPwLwolNHhvXtpHzaGqsxa2vEnzpZ
PNQ23NeW7jvZ29uTl5dHWloabm5uyqnWd47SVFdX85e//IU2bdqg1WpxdXUFYP/+/cyZM4fD
hw8zYsQIXnjhBbRaLY6Ojly5coWDBw9y/fr1BvUVFRWRkpKCo6Mj5eXlJCcnM3/+fB577DEA
8vPz6dWrF0uXLsXR0RF7e3sWLFhAVlYWffv2bbIP5ubmLF68WPmdnp7OW2+9xfnz5wEoLi6m
T58+REdHo1arKSsrY+fOnfz8889UV1eTl5eHt7c3S5YsITk5mdmzZ7Njxw569erVoB5PT088
PT0BuH37NqNHj+app55i0aJFD/rYhRBCiH9pP12toIOZCa+4PkFJ5S3+dvBnjI1UAET4PaPk
Szr6C3uyf2V5wLPY25g/1DY8cFDTsWNHoC4QmDdvHunp6VhaWuLk5KQENSdOnKC0tJQBAwYo
AQ3A4MGDOXHihPLb2toaa2tr0tLS8PPzw8jIiLVr12JmZqbk0Wq11NTUMGHCBMrKyli+fDla
rZagoCAAAgICCAgIUPJnZWUBNAow7lRVVcWqVauAuqmm1NRUpX0AK1euVPLW1NRw+vRp2rVr
R5cuXZRRpm7dujX4e+e0W1PWrVvHuXPnSExMxNjY+K55hRBCiH83Qa848P++/pHR4fsB6NnZ
kv8a13BmoqTyNiHabDydOjLyGduH3oYWTT8NHDiQnJwcLl26xNGjR/Hw8KBNm9+KKiwsBODx
xx+/r/Ls7e2JioqiR48eBAcHc+HCBQD0ej1arZZ27doxatQoxo0bh1qtZvPmzeh0ukblrF27
lvj4eDw9PXFzc2u2vqqqKiIiIoiIiCAyMhJTU1PCw8Px8/NrkO/mzZsEBgaSm5vLnDlzMDU1
VdbdmJiYANC2bVulzOaUlZXxxRdfMHToUJycnO7rmQghhBD/Tp74Dw3/Yd6Wj8c5EfRyT85d
LuOv2081yBO9L5eyqhrmjnJ8JG1ocVADsGLFCqqqqnjuuecapLdv3x6AK1euNLiu0+lISUlp
FADY2dnh6elJYGAgVVVVJCTUvVlw3759XL58GUtLS8LDw1m1ahWWlpZcvXqV3bt3K/cbDAYW
LVrEihUrGDx4sDIK0xxra2vOnTtHZGQkJiYmFBQUYG9vj0qlUvKUl5czZcoU9u3bx+zZs/H3
9wfq1uNA3XQS1I30AGg0mmbrS0hIoKKigokTJ961XUIIIcS/o/LqGv688Rj9//QYAZ49mDe6
N72esGRzxkVq9XVHTOr0BmL35+HS1YqnbNs/kna0KKhxd3dHrVazY8cOgEZBTb9+/dBoNGRm
ZnLy5Enl+vbt2wkMDOSdd94BYNmyZbi5uSmv0S4qKgLAwqJu4dDmzZsBuHbtGlu3bmXr1q0U
FxcDEBMTo5QbEhJCTEwM48ePJyoqClNT03v2Qa1WM3ToUObPn09xcTGBgYGUlpYCdaMuPj4+
/PDDD3z66ae8++67yn31000XL15s8LdHjx7N1rVnzx40Gk2j5ySEEEK0BpeLq7lZo6Oium5n
tMEAVbd0GKtVtPmf8YLMC0UUV95mmEvnR9aOB15TA3VBh7OzMz/88AO2trY8+eSTjdLnzZvH
woULmTBhAgMHDqS2tpaDBw9iZGTEzJkzAXB1deXzzz9nxowZvPDCC8THx6PRaPD29iY/P5+M
jAxsbW3Zv3+/Moqi0+kYNGgQx44d4/Tp0+Tk5KDValGr1RQVFREYGAjAqFGj8PLyIjg4mPPn
z5OYmNhkXyZPnkxKSgqHDx8mLCyMTz/9lNDQUE6dOoWVlRV79+5l7969AMydO5enn34aW1tb
du/eTWhoKGlpaajVal599VWABvU8e6YoAAABpElEQVQZGxtjMBj44Ycf6Nu3L2q1uiWPWwgh
hPiX1t3GnM7/oSE95yrzYk9QcbOW/MJKXnOzo83//P8+lls3cOHazeqRtaPFL9+rn4JqbvRh
8uTJREZG0qdPH77//nuysrLo378/mzZtwt3dHajbHRQWFkZtbS1arZaePXsSGxuLnZ0dW7Zs
wWAwMG7cuAbTQmq1mjfffBOoG62pH7HR6XTs3buX1NRUUlNT+emnn4C6Lec5OTno9fom26lS
qQgLC0Oj0RAfH09aWhpJSUlA3S6o+vJSU1MpKSlBrVYTExND//79SUxMxMTEhNWrV+Pg4NBk
fdevX+f27dvKAmshhBCitTFSt2HLnwfyknMndv1wmcPnCnnjua4snuii5Cm4Ubf0pGOHe8+m
tJTKYDAY7pVJTlkVQgjxIOSU7qbJKd1Nk1O6hRBCCCHuIEGNEEIIIVoFCWqEEEII0Src15oa
IYQQQoh/dTJSI4QQQohWoUXvqRFCCCHux/Hjx/+vm/AvpV+/fv/XTWjVZKRGCCGEEK2CBDVC
CCGEaBUkqBFCCCFEq/D/AXC55WOXiGUQAAAAAElFTkSuQmCC
--------------pU8o5jw9DTHAELL3BH6UnlhZ
Content-Type: image/png; name="Screenshot from 2025-04-24 12-53-17.png"
Content-Disposition: attachment; filename="Screenshot from 2025-04-24
 12-53-17.png"
Content-Transfer-Encoding: base64

iVBORw0KGgoAAAANSUhEUgAAAUwAAAEVCAYAAACL79xgAAAABHNCSVQICAgIfAhkiAAAABl0
RVh0U29mdHdhcmUAZ25vbWUtc2NyZWVuc2hvdO8Dvz4AAAAudEVYdENyZWF0aW9uIFRpbWUA
VGh1IDI0IEFwciAyMDI1IDEyOjUzOjE3IFBNIENFU1RZ9qQaAAAgAElEQVR4nOzdeVhUZfvA
8S+bKMouCMKwqSjuu6IgYiiuiWuSmqbyaqZlvVnuqWn2amrlvuSSmQtSoLhWsiguZeZSaqCA
LCKbsiUIw5zfH8T8GBlgQAW053NdXjJzzrOcM2fuec56aw0ePFhCEARBqJCWlZWVCJiCIAga
0JIkSQRMQRAEDWjXdAcEQRBeFLo13QFBeJlE7dhB7MGDpP/6K48fPKjp7jxT+mZmmHfpgsPo
0TSbNKmmu1MjXshdcoVCQWJiIjKZrKa7ItQily5dAqBz587V3vaDK1c4P3Uqab/8Uu1t14SG
XbviumULZu3b13RXqlWN7JKfPn0aLy8vDA0NMTIyws3Nje+//17j8n5+fhw4cACA27dvo6Wl
9by6Krwgrly5wiuvvIKXlxeXL1+u1rYfXLnCqVde+dcES4C0X37h1Cuv8ODKlZruSrWq9oD5
3XffMXjwYHr06EFERARXr15lzJgxTJw4kZUrV2pUR3p6uvJva2tr/P39n1d3hRfAlStX8PDw
ICsri8zMTPr06fNMg2ZGRga///57mdPPT51a7u63boMGTJAktf98bt1Szqelo0Pr2bPxuXmT
cXl5jIiNxXXrVupaWirnmSBJjIiNrbDP3davZ4IkMURNQOuxfTsTJAlrLy+1fStuu/3SpVDO
YOTxgwecnzq1zOl///03v/32GwqFosL+viiqNWDm5uYyc+ZM1q1bx9KlS2nbti2Ojo7MmDGD
/fv3M3/+fBISErh9+zZWVlbMnDkTDw8P2rRpw9atWwFYtWoVJ0+eZNmyZXz44YckJSUxatQo
ZRtbt27F2dkZExMTevfuzdWrV4GikWjjxo1ZtGgRnTp1QiaTMW/ePGW5Xbt20aRJE0xNTene
vTthYWHVuWqEKioZLIs9q6B569YttmzZwty5czlz5ozaeaJ27NB4ZJn/8CGRW7ao/Ivdv185
vdd339Fp5Ur0jIxIOHIEeU4Ozn5+DDh7Fl0DA437rWtggNO4cQCYtWuHZc+elerbXX9/6piY
0G7hQhzHjCm3XNovvxC1Y4faaXl5eWzdupU5c+Zw5MgRMjIyNF6G2qpaT/qcO3eO7Oxsxo4d
W2rawIEDsbW1JTg4GC8vL5KTk7GwsCAsLIzk5GTat29Py5YtmT17NhEREbi5ufHBBx9w+/Zt
ZR3FQffo0aN06NCBDRs24O3tzc2bNwFISkpCT0+P3377jdu3b9OmTRvGjBmDvb09U6dO5erV
q7Ro0YJ169bx1ltvcePGjWpbN0LlqQuWxYqD5unTp+nYsaPGdebm5nL+/HnCwsK4f/8+AHp6
ejg5OamdP/bgQY3rfnTvHuenTVM7zcrTE4fRo3l47RrHevZEnpODlrY2nt9/j5GzM6bt2pF6
/rxG7TiOGUMdY2PiAgOx8/Gh+fTppEREVKpvbebMoeOKFZi0alVhe7EHD6o9CVS3bl3s7e25
e/cuwcHBHDt2jHbt2tG7d29atGih0bLUNlUKmJUdfXXo0AGA2NhYTExMyM/PJz8/v9R8VlZW
3L17l5ycHHR0dJg2bRpZWVnUq1eP4cOHs3v3btq2bYtcLufx48dkZWWRk5MDQFZWFrt27eLN
N9+kRYsW5ObmMmnSJLZs2UJAQIDyRMC4cePIysrC0tISR0dHrl+/jpWVFXp6eqxbt46RI0cy
btw4JkyYoPJFLG+XTHh+HBwcsLe3L/V+ecGyWGWCZnx8PGFhYfzyyy88fvwYKNoe3d3dcXV1
pX79+mrLpf/6q8bLYtC4Ma6bN6u2GxxMQnAwNv37AxC5dSvyf7ZpSaHgtI+PxvUXc546FUVB
AeenTsW0TRscRo7k1/feIy8lpcwydS0tab94MQC69evjNHYsSBL3Tp2qsL2y1kH9+vWZN28e
d+/eJTw8nF9//ZXff/+d33//nUaNGuHh4UGPHj2oV6+e2vJ3794lVoPDD1Xl4eFR6TLVOsK0
sLAgLS2N3NxctSspPj6eRo0aAWBiYkLdunWV08zMzJS712VJS0srdebc3t6ehIQEZcA0NzdX
TtPV1UWhUFC3bl2OHDnCqlWrGDJkCAYGBrz//vtMnz69yssqPBumpqal3tMkWBYrL2jK5XJ+
++03QkNDiY6OBoq2iS5dutCrVy+cnZ0rrL8ylw7VMTXF+Yljfrn375MQHKw8Tpn7z6i2qsza
t6dh167EBQaSl5JC1I4ddFy+nGaTJ3N9xYoyy9W1sKDdxx8rXyf99BNnJ04kOTy8wjYrWgf2
9vaMHz+eUaNGceHCBc6cOUNCQgIHDx4kMDCQrl270rt371LfXVNT0+caMKviqQJm8chRU66u
rpiZmbF7926mPbFrcvLkSe7fv0+/fv3Iz8/n4cOH/P3338pf9ujoaGxtbQHKPCtuY2NDXFyc
ynuxsbG8+uqr5fYrIyODx48fs3//fuRyOadOnWLcuHF4enri4uJSpWUVng1DQ0OV15UJlsXU
Bc3s7GyWLFlCdnY2AJaWlri7u9OjRw8aNGigcd36ZmYaB82MP/8kqHVrtdPy/6nDoHFjlfdN
WrdGS1ubh9euadRGcUCu27Ahrps3o29hAUDzadP443//QyrjBEzGn39ypEMHmrzxBj22baO+
nR2ZJU5IlUffzEyj+erWrUvv3r3p3bs30dHRnDlzhl9//ZWzZ89y9uxZ3N3dGffPsVco+uyf
x/fuafYWq/Wkj76+PmvWrGHx4sX873//46+//iImJobt27czZcoU5s6dqwyKCoWCxYsX8/jx
YyIiIggMDOS1115T1hMbG1vqIPKYMWPYuXMnly9fRi6Xs2HDBpKSkvD29i63X9nZ2QwbNowz
Z86gq6uLpaUlOjo6pb6sQvV78sdxyJAhlQqWxTIzM1W+jPn5+cpgaWtri5+fH/369atUsAQw
79Kl0n1R595PPwHQzM8P3X8GCVq6urhu3syrV6/SuF+/CuvQbdCgaFcasHRzw3nqVOyHDweg
vp0dtoMHl1teUVBA1Ndfc+PLLzFydqbXvn3lniUvVpV14OTkxOuvv86IESPQ1S0atz144oen
Nl4uWO13+vj4+GBhYcHnn3/Oxo0bKSgooHXr1nz11VcMGzZMZV4DAwNcXFwwMjJi/fr1yl+b
4cOHM23aNB4+fMiCBQuU8w8aNIjk5GSmTJlCUlISbdq0ITAwEAsLC+WXQx2ZTMb69et59913
SUpKolGjRmzatEkZvIWaI0mSyhfH19eXiIgIzp07V6l6evTooXLMqkGDBvTq1YuLFy+SkJDA
8uXLcXBwwMPDgy5duqCnp6dRvQ6jR3Pv5EmN5lV3DBPgwowZJJ44QUJwMLaDBzPs1i1SL1zA
tG1bjJydSYmIIOmfgApQ19y8VD33fvwRfTMz9AwNubluHb+8845ymt2wYXh+/z0tpk8n/vDh
Cvt5ed48ZEOGYNmjB87/+Q+RW7aUO7/D6NEV1llSSkoK4eHhnDt3jr///hsoujzQ1dVVZb7a
eE9Nle70KT7p87x2U6Ojo+nQoQOZmZnPpX7hxWFgYKAcgRRLTU3FssS1iZpISUnB4p/d05KK
z4qHhoaSnJysbNPV1ZVevXphZWVVYd1Hu3Ur99Ii3QYNGFvOD/a39epRmJeHdp06tJkzhyZv
vEF9OzvykpOJCwzk94ULyf9nb2pCGV/XP1evxqp3b8w7deJIhw4qF5Rr6egw8u5dDBo35ntn
Z9rMmUOzyZM51bcvqRcuMDY7u9ThAqvevfE+fZrHDx/yQ/PmPE5LU9tuw65dGXTxYrnrB4r2
GK9evUpYWBi3bt1CkiS0tbXLPWsul8t59OhRhXVXVvEueVVO+oiAKdRq+vr66Ovrq7yXlpZW
KvgZGxsza9Ys0tLS2LBhQ6l6UlNTadiwYZntSJLErVu3CAkJ4fr168qLrZ2dnfHw8KBDhw7o
6OioLVt8p8/Ldu94RfTNzOj388/l3h758OFD5THK4kNohoaGuLm54eHhofakXrHHjx8rr1h4
lp4mYIqHbwi1WkFBQamAqe433sTEhMWLF3Pr1i21AbOicYGWlhYuLi64uLiQnp5OeHg4Z8+e
JTIyksjISNq1a1fmVRNm7dvT7+efxb3kT8jIyGDevHnKHx8nJyd69+5Np06dSu01qFNQUPDM
+vus1MqA6eTkJEaXAlC0K5efn0+dOnWqrU1zc3OGDRvGkCFDuHTpEiEhIcjl8nLLmLVvz6CL
F8XTikooLCxER0eH7t274+npiZ2dncZt5efn18pbKmtlwBSEkvLy8tDW1tZoVPIs6erq0r17
d7p3767xbX3NJk361z767ElGRkb873//K/Oi/7LI5XLy8vKeU6+ejgiYwguh+GYHXV1dGjZs
yOLFi1V2s01MTABo2LAhH5e4ABuKdrfLO36pieL6Bc3p6elpfLVBMblcTm5u7nPq0dOrlSd9
BKEsdevWrdbdc6H65OfnV8vIUpz0Ef418vLyyM/PR09PDx0dHXR0dGrlBc5CxSRJorCwkMLC
QgoKCmrlMcsniYApvHAUCsVzudxEECoikqAJgiBoSARMQRAEDT2XXXK5XMHp0+dISNDsUVW2
tlb07dtTHIuqZY5EX+HTi0f462GSRvM3N7VmYfehDHRs+5x7Jgg147kEzNOnz9G3by+MjTV7
8svDh1n8+GME/fpV/Ch9ofosiDhEfLbmF1//9TCJ+RH+ImAKL63nskuekHBf42AJYGpqREKC
ZqMYofpUJlgWu5uVXvFMgvCCEscwhadSX0+fP/xWcm3K/2q6K4Lw3NXqgGlsbKzyr3Hjxowa
NYrIyMhn2s7u3bsZOHDgM62zslxcXDh79myly82aNYv58+c/hx5pZu/QGbQwb0w93bIvJn/l
lVcwNjbmwoULpaYNHjwYY2NjUsrJNyM8nejoaIyNjWu6Gy+FWh0wAb799ltu3LjBjRs3OH36
NAYGBrz22mvP9OGinp6eNRp0AL788ssXLpPeQrdhDG7agVx5PsMD1pQ7r5mZGYcOHVJ57969
exXmaRKenpWVFd98801Nd+OlUOsDZsOGDbGxscHGxoYWLVrw3nvvER0dTUZGBjt27GDUqFH0
6tWLJk2akJqayrVr1xgwYAAymQxXV1dO/ZP1bteuXfTu3Vul7gEDBrBjxw5CQkJYvnw5UPSE
leXLl9OqVSuaNm3K22+/TXZ2NmlpaZiampKUVHSs9fTp0xgbGxMVFQXAL7/8Qusn8rVUpsy7
777LrVu3iI6OxtnZmeXLl9OrVy9atmzJkiVLlHXevn2bAQMGYG1tzaBBg1RGZrm5ucybNw9n
Z2eaNGmCn58f6enpVep7STpa2uz3eQfzev9/XHpgk/YschuOhMSYH77iemp8uZ/jq6++SmBg
IIWFhcr3AgICGDRokMp8586d45VXXsHGxoZu3boRFBSknObo6MilS5eUr0uOri9fvoyHhwe2
trZ06dKF7du3K+cra5tQZ9euXXTs2BGZTMbAgQO5fv06AJMnT1Z5uv+jR4+wsrLir7/+KnOb
AdRuoyXt3r0bHx8fxowZQ//+/fH09OT8P+l0IyMjadWqFX5+fshkMo4fP05aWhqTJ0+mSZMm
tG7dmrVr1yJJErdv38bCwkLlISHLly9n0qRJ3L9/nzfeeKPC9TF79mzeffdd5Xx9+/Zl8uTJ
ytfDhg3ju+++K3Pd/RvU+oBZUnZ2Nrt27cLBwUH54NGff/6Z+fPn89NPP6Gnp4ePjw8+Pj7E
xsayatUq/Pz8uH37Nj4+Pty8eZOYmBgAEhISuHz5cqm0GKtXryY4OJgTJ05w9epVcnNzmT17
Ng0bNqRjx46EhoYCEB4eTr169Thz5gwAP/74IwMGDFCpqyplAJKTk9HT0yM8PJzg4GA2btzI
H3/8gSRJvP7663Tt2pW7d+8yZ84cfiqRumDu3LlcvHiRsLAwrl69ikKhYMqUKVXuR7GBTdoz
skVXjo7+kLq6ejibWbPPZyZaaDE35ABH71wps2yxdu3aYWZmppKi+eDBg8o8TQBxcXEMHz6c
KVOmEBcXx+rVq5k+fboygJTn/fff58033yQhIYFt27axcOFCEhMTycjIKHObeNKhQ4dYunQp
27ZtIyYmhsGDBzNs2DAyMjLw9fXlhx9+UO7ZHDlyhBYtWtC8efMyt5liJbdRdU99Dw0NZcaM
GZw4cYJly5bx+uuvK/MWJSQk4ODgwPnz5+nVqxeTJ09GS0uL69evc/z4cfbv38/evXtp2rQp
bdu25XCJFBQBAQEq6xcod33079+fkJAQAP7++29u3rxJ+D9ZI4ufTN+3b98KP4uXWa0PmMOG
DcPa2horKytsbW0JDw/n66+/Vk53cnLC29sbR0dHjh07hoWFBVOnTkVHRwc3NzcGDhzI3r17
MTExoX///gQEBABFX46+ffuWeuLzN998w0cffYRMJqN+/fosWbKEAwcOkJeXR//+/ZVBJyws
jPHjxyuPO546dUpt0KlKGUD5y+7k5ISjoyMxMTFcu3aNO3fuMG/ePOrUqYO7uztDhgwBiu7L
9ff3Z+HChVhbW9OgQQNWrlzJ6dOnuXfvXpX7AXDk9mW++zOCztZO/Om3it8nf0p9PX12XQvj
84vBZZZ70siRI5XrvzhNQatWrZTTDx8+TPv27fH19VV+fr6+vuzbt6/Cuo2NjQkODuann36i
efPmJCYmYmNjU+428aSDBw8yadIk5QNup0+fjrm5OadOncLT05OCggIu/pOOwd/fnzFjxgDl
bzOguo2q07VrV9zc3ADo2bMntra2nD59Wjndz88PW1tb0tPTCQ0NZcWKFRgYGCCTyZg1axa7
d+8GivIdff/99wD89ttvZGZm4uXlpdJWeevDzc2N1NRUYmNjiYiIoHfv3ujo6BAZGUl4eDht
2rRRG/D/TWp9wNywYQMRERGcP3+e6OhoLl++rMwxDkXJk4rFx8cTFRWFTCZT/gsMDOTevXsA
vP7668rjaIcOHSr16ytJEomJiUyfPl1ZvkePHujp6ZGQkIC3tzdhYWFkZGQQHx+Pn58fZ86c
ITU1lTt37ig3+pKqUgbU509PTk7GzMxM5QnkxQ9lzcvLIycnR+Uhrebm5hgYGHDv3r0q96PY
pKNbOZ8Yhb1xQ/R19DifGMW0EzvKLfOkUaNGERwczOPHjzlw4ACjn0ielZqaWmZe+Yps374d
Kysrpk+fjqOjI++99x65ubkVbhMllZfXXkdHh1GjRhEQEEB6ejpnz55lxIgRFW4zoLqNqvNk
3iAzMzNlfiFtbW1l/qL4+KLDHsWHDGQyGR988IHyUMuIESO4cOECqamp+Pv7M3LkyFJpNcpb
H/r6+nh6ehIaGkpYWBju7u707NmTs2fPVvij+m9R6x++0bhxY5ycnMqcrq39/zG/UaNGdO7c
WeUYVWJiIgYGBgB4eXnx9ttvc+zYMeLj40ul39XS0lJmjPT09ASKns8XExODo6MjOjo6aGtr
s3PnTrp3746zszO6urps3LgRT09PtY8da9u2baXLlMXa2pr09HTlsyGh6MRJw4YNqVevHmZm
Zty9e1e5vlJTU3n06BEWFhbY29s/VT/kikKG+K/i0ptFx3qH+K9Crigst8yTHB0dadKkCadO
neL777/n+PHjKtNtbGxKnUmPiYlRBgwdHR2Vh26kp6dTv359CgsLuXnzJqtXr0ZfX5+rV6/y
xhtvsGfPngq3iSfbLy+vva+vL8OHD8fFxYVevXopR1vlbTPh4eEq26g6xYGw5DLb2NgAqqlm
rayslCO+4s8/IyODnJwcAExNTXnllVc4fPgwgYGBakfmFa2Pfv36ERoaSnR0NJs3b0ZfX5/Q
0FB+//139u/fX+5y/BvU+hFmZQwaNIi//vqLb7/9lsLCQqKiovDy8iI4uGi3UUdHhxEjRjB7
9myGDx+uNkj4+vqybNkyEhMTkcvlLF++nBEjRiin9+3bl6+++opevXoB4O7uzqZNm8q9LKkq
ZdRp06YNrVu35uOPP+bx48dcuHBB5aTImDFjWLZsGUlJSeTk5PDRRx/RtWtX7O3tn0k/MvIe
0XTTezTd9B4ZeVXL5jdq1Cg++eQT7OzsaNy4scq0IUOGcP36dfbt20dhYSERERHs27dPORJt
2rQpe/bsISMjg5CQEOVuq46ODu+++y4bNmygsLAQa2trtLS0MDMzq3CbKKmivPatW7fGwsKC
1atXq+ydVLTNVOTy5cscOnQIuVzO+vXrycvLo0+fPqXmc3JyonPnzsyZM4dHjx6RkZHBxIkT
+eSTT1SWYc2aNRgaGqp9Xm1F68Pb25uQkBDu3buHi4sLHh4enDhxAoVCgYuLi8bL9LJ6LgHT
1taahw+zNJ4/Pf0hMln5uy2asLCwICAggD179uDg4MDQoUOZMmUK48ePV87j6+tLQkKC8vjT
k+bMmYO7uzv9+vXDwcGBX3/9FX9/f+Wujbe3Nw8ePMDd3R2AXr168fjx43IPhlelTFm+++47
/vrrL+zt7ZkzZ47KWeZFixbRpUsXPD09cXFxobCwUOWsZmX70bhB2Rn9ymJvZF7u9BEjRnD7
9u1Sh0OgaATt7+/Ptm3bkMlkvPPOO6xZs0YZPJYtW8aNGzdo0aIF69atUznzu2vXLo4ePYqd
nR09evTAx8eHESNGaLRNFBs0aBALFixgypQpyGQygoKClHnti/n6+pKZmanyI1PRNlORtm3b
EhAQgIODAz/88AMBAQFqR8BaWlrs3r2bjIwM2rRpQ/v27bGysmL16tXKeby9vXn06FGZ23dF
68Pa2hp7e3tcXV3R0tLC0dERc3NzsTv+j+fyxHVJkjh16hyJiZrd7iiTWePl1UM8fKOWORJ9
hWUXgojKSNZo/uam1ixyHcoAB3EvuaZ2797NgQMHOHbsWE135V+j1j1xXUtLC29v8SCNF90Q
p/YMcSo7jaog/Nu8VMcwBUEQnicRMAWhBk2YMEHsjr9ARMAUBEHQkAiYgiAIGhIBUxAEQUMi
YAqCIGhIBExBEAQNiYApCIKgIREwBUEQNCQCpiAIgoae6tbI4nsyBUEQ/g3ECFMQBEFDVXpa
kSAIwr+RGGEKZYqLi2P8+PGYm5tjb2/PzJkzyczMrOluCUKNEQHzCbGxsTXdhVIUCkWpNAbP
2927d+nZsyeWlpb8+uuvBAYGkpCQwFtvvVWt/RCE2qRGAuZPP/1Ev379MDU1xcTEhL59+yqz
8dWk27dvqyRYexbWr19P//79n6oOPz8/Dhw4ABT1sToetDxkyBDeeustVq9ejZOTEx06dGDr
1q0EBQWhUCiee/uCUBtVe8Dcs2cPPj4+DB06lCtXrnDlyhVcXV3p06cPV69ere7uqMjJyVGm
Rq1N0tPTlX8Xp3F43o4ePcq8efMICwtTZiWUy+XPvV1BqNWkapSbmyuZmppKO3fuLDVt5syZ
0rZt2yRJkqQRI0ZIK1asUE7bt2+f1KlTJ0mSJOm1116TpkyZIllbW0tubm7SzZs3JTs7O2ns
2LGSsbGxdPjwYSklJUXy9fWVLCwsJHt7e+mzzz6TFAqFJEmSNHbsWOm9996TPD09JUdHR6lb
t27SH3/8IcnlcsnS0lLS0tKSbGxspKSkJJX+KRQKadasWZKlpaVkaWkpDRo0SIqPj5ckSZIK
CgqkhQsXSnZ2dpKlpaX05ptvSpmZmZIkSdK6deskb2/vCueTJEnasmWL5OTkJBkaGkqenp5S
VFSUtHLlSqlu3bqSsbGxNHv2bCkqKkoq+bFt2bJFatasmWRsbCx5eHhIV65ckSRJkqKioiRr
a2tp4cKFUseOHSVbW1tp7ty55X4+9+/fl9q1ayfduXNHkiRJOn78uGRsbCydOXNGkiRJGj9+
vDR+/Phy6xCEl1mVrsMszumjqeLcP2fPniUzM5MBAwaQlaWaJG3ZsmUAZGVlUVBQQF5ennKe
R48eUVhYSFZWFnK5nGPHjhEUFES9evXIyckhLi4OGxsbzp07h6mpKaNHj8bCwoJr166Rnp7O
yJEjMTQ0ZNy4cRQUFHDgwAHCwsKwtLTknXfeYe7cuXz77bcEBATg7e3NjRs3lH0pdvLkSU6c
OMGvv/6KgYEBb731FosXL2bNmjWsXLmSH374gWPHjmFmZsbMmTOZNm0amzdvJi8vD7lcTlZW
VrnzhYSE8NFHHxEQEECHDh1YunQpvr6+/Pzzz4SFheHq6srMmTOJjo5W9u3QoUPMmzcPf39/
2rVrx9atW+nbty+XLl0iJyeHpKQkFAoFISEhREdH4+rqyuDBg2ndunWpzygjI4O+ffvSt29f
GjZsiL+/P5MnT2bfvn20bduWGTNmcPHiRX788UeV9SKuxRVeVFXJ6VOtu+RpaWnUr19fmVO5
qry9vWnevDl2dnbK9/z8/LC1tSU9PZ3Q0FBWrFiBgYEBMpmMWbNmsXv3buW8gwYNUua69vLy
4s6dOxW2aWRkREJCAnv37iUhIYFt27axZs0aAL755hs++ugjZDIZ9evXZ8mSJRw4cKDU7n15
8wUEBDB69Gg6d+6Mjo4OH330EZ9//nm5fTp48CCTJk2iU6dO6OrqMn36dMzNzVVyTk+ePBko
StHq6OhITEyM2rref/99OnXqxKeffsrp06eZMmUKBw4cwN3dndjYWMLDwzl27BgmJiYVritB
eFk91Z0+ZWWNLIulpSU5OTn8/fff1K9fX2VaWloa9erVK/W+Ok/ms9bW1lYGwOKzyR07dlRO
VygUmJr+f8pYc3NzlbKanMRwdXVl7dq1bN++nYULF9KkSRNWr16Nu7s7iYmJTJ8+nZkzZyrn
19PTIyEhQflakqRy50tOTqZHjx7K9w0MDCpcv2lpachkMpX37O3tSUhIUJ68Krmsurq6ape1
sLCQI0eOKEfWzs7OHDp0iG7dupGQkICDgwNnz55V24fKbgOCUNOeZq+oWkeYnTt3xtjYmICA
gFLT3n//faZOnQqAjo4O+fn5ymkPHjxQmffJs4uiRkUAACAASURBVMQlX1tZWaGjo0NkZCTx
8fHEx8fz559/cuLEiQr7V97Z5/j4eFq3bs2pU6eIjY1l2LBhTJgwAS0tLRo1asTevXuV7cXE
xBAREYGjo6NK3eXN17hxY+XJFSg6ATV//nzy8/PL7JeNjQ1xcXEq78XGxip/PDQlSRKFhYXo
6hb9ftra2tKtWzdWrVqlNn+4IPxbVWvArFOnDkuWLGHOnDns2LGDhIQE7ty5w/z58/npp5/4
8MMPAWjatCmBgYHcu3eP27dvs2PHDo3bcHJyonPnzsyZM4dHjx6RkZHBxIkT+eSTTyosq6+v
z+PHj4mKiqKwsFBl2rlz5/D19SU+Ph5DQ0OMjIwwMzMDwNfXl2XLlpGYmIhcLmf58uWMGDGi
VP3lzTdq1CgOHDjAlStXKCwsZM2aNfzyyy/UqVMHfX19YmNjycjIUKlvzJgx7Ny5k8uXLyOX
y9mwYQNJSUl4e3trvL6gaOQ5aNAgPvjgA+RyOZIk8emnn7Jz5072799fqboE4WX2XPKSl2fi
xIkYGhqyceNGFixYgJ6eHp07d+bYsWO0bdsWgKlTp3LlyhU6d+6MTCZj4sSJGn9xtbS02L17
N3PmzKFNmzYUFhbSv3//Co8HQlGwdXV1pWfPnoSGhtKyZUvltNGjR3Pz5k369OlDTk4OLVu2
VAbyOXPmIEkS/fr1IzMzk/bt2+Pv74+Ojo5K/eXN5+bmxrJly5g0aRIpKSl07dqVnTt3AjB8
+HCmTZvGw4cPWbBggbK+QYMGkZyczJQpU0hKSqJNmzYEBgZiYWFBdna2Ruur2Lp165g0aZJy
F75Dhw6cPHmy1C6/IPybVele8uKz5OL4lSAIL5riY5i1/iy5IAjCi0wETEEQBA2JgCkIgqAh
ETAFQRA0JAKmIAiChkTAFARB0JAImIIgCBoSAVMQBEFDz+xOn4KCAtLT0yt9h4kgCEJVGRoa
Ym5ujp6eXrW090wCZkFBAbGxsdjZ2eHs7PwsqhQEQahQamoqsbGxODg4VEvQfCYBMz09HTs7
OywsLJ5FdYIgCBopjjnp6elYWVk99/aeyTHM7OxsESwFQagRVXnYTFWJkz6CIAgaEgFTEARB
QyJgCoIgaEgETEEQBA2JgCkIgqAhETAFQagx5Z3dro03wdSqgPnhhx+ya9eumu6GRk6dOsX4
8ePVTktPT6dz5848evSo0vV++umnfPHFF0/bPUGo9e7fv6/M7vqkuLg4IiMjSU5OroGela1W
BUxBEP49FAoFACkpKSqBMTk5mdTUVJV5aotqzxoJcOXKFdasWUNMTAzW1tbMmjWLHj16qMxT
WFjItm3bCA4OJj8/Hzc3N/773/9Sv359Hjx4wKpVq7h+/ToPHjzA0dGRBQsW4OLiQmBgIKGh
odSvX5+oqCjkcjlvv/02r7zySoX9unHjBl9++SUxMTHk5ubSqVMnli5dipGREY8ePeKzzz4j
LCwMMzMzevbsqVJ2586d7Nu3D0mSGDVqlMq0yMhIVq1aRVRUFFZWVsycOVNZPi4ujk8++YRb
t27RsmVLGjRogIGBwVOuYUGo/Ro3bszff/9NVlYWCQkJ6OvrI0kSCQkJABgZGWFtbV3DvVRV
7SPMzMxMZs2axfDhwwkNDWXmzJl8+OGHZGVlqcy3c+dOQkND2bZtG4GBgeTl5bFy5UoAvvji
C7S0tAgICCA0NJTmzZuzadMmZdlz584xYsQIDh48yJQpU/jss88q/KWSJIkPP/yQ3r17c/Lk
SQ4fPkxKSgo//PCDss2UlBSCg4PZsGED586dU5Y9deoUBw8eZMuWLQQFBREVFaWclpWVxfTp
0/Hy8uLnn39m9uzZLFiwgLi4OCRJ4r///S9t2rTh9OnT+Pn5cf78+adex4LwomjSpAn16tUD
IDo6mujoaADq1atHkyZNarJralV7wIyIiKBRo0b4+Pigo6ODu7s7W7ZsQV9fX2W+oKAgpkyZ
grW1NQYGBsycOZPjx4+Tn5/PO++8w9y5c9HV1SUlJQVjY2PS0tKUZR0cHOjYsSMAPXv25OHD
h+Tk5FTYt40bNzJ69Gjy8/NJT0/HxMSE9PR0oCgoTp48GUNDQxo3bsy4ceOU5U6cOMHQoUNx
dHTEwMCAGTNmKKcVj0hfe+01dHR06NSpE7179+bIkSPK4zfTpk1T5mfv3bv306xeQXihaGtr
06xZM3R1dSnO+K2rq0uzZs3Q1q59RwyrfZc8LS2NRo0aqbzXqlUrldeSJJGcnMzSpUtZtmyZ
8n1dXV3u379PTk4Oa9eu5c6dO8hkMho0aKBS3sTERPl38UqvaISppaXFn3/+yfvvv09WVhZN
mzYlIyMDSZLIy8sjJycHS0tL5fwldxXS0tJwc3NTO+3+/fvcvXtXJRAWFhbi6elJWloaxsbG
1KlTRzmtcePGyOXycvsqCELNqPaAaWlpSUpKisp7O3bswMvLS/laS0sLc3NzFi9eTLdu3QCQ
y+UkJiZia2vL0KFDGTZsGFu2bEFbW5vvv/+eQ4cOPVW/EhMT+fjjj9m8ebNydDpv3jwA6tat
i6GhIffv38fe3h5AeVC6eJnu37+vfF1yWsOGDWnVqhU7duxQvpeSkkLdunW5f/8+GRkZ5OXl
UbduXeU0MzOzp1oWQXhRKBQK5bkGLS0toOi7HhUVRYsWLWrdKLPae9OjRw/lsUCFQsHZs2fZ
s2cPRkZGKvMNHjyYTZs2kZKSglwuZ/PmzcycOROFQkF2djbm5uZoa2tz79499u/fT0FBwVP1
q3iXvWHDhgBcunSJM2fOKOsdMmQIW7Zs4eHDh6SkpPDtt98qyw4ZMoQffviByMhI8vLy2LBh
g3Kah4cHMTExHD58GIVCwd27d5k4cSKhoaE4OzvTtGlT1q1bR35+PlevXuXnn39+quUQhBfJ
nTt3yM3NBcDJyQknJycAcnNzuXPnTk12Ta1qH2EaGRnx5Zdfsnr1alatWkXjxo35/PPPVXaj
Afz8/FAoFLz55pvk5OTg4uLCl19+ia6uLvPnz+err75i48aNmJqaMnDgQLZv305eXl6V+9W8
eXPGjx/P5MmT0dPTw9bWlldffVV5AmfGjBl8/vnnDBs2jPr16+Pl5cXly5eBoqCYlJTEO++8
Q35+Pr6+vsp6zczMWLduHWvXrmXNmjUYGBgwcuRIXn31VQBWr17N0qVL6dOnD05OTuIYpvCv
cf/+feXJXltbW2UMsLW1JSEhgaysLJKTk0sdwqtJWlLxkdZKCAsLA6BDhw4AREVF0alTp2fb
M0EQXmpJSUncu3cPS0tLZDKZyrT4+HhSUlKwtbXVKGD+9ttvNGvWTKN2f//9d6BooFNZNXId
piAIgrW1NQ0bNlSbWkImk2FlZVVtuXo09a8JmNHR0cyePbvM6TNmzMDT07MaeyQIQnkBsbYF
S/gXBUwnJycCAgJquhuCILzAatc5e0EQhFpMBExBEAQNiYApCIKgoWcSMA0NDVXubhEEQagu
qampGBoaVktbzyRgmpubExcXJ4KmIAjVKjU1lbi4OMzNzaulvWdyllxPTw8HBwfS09OJi4t7
FlUKgiBUyNDQEAcHh2q7BOmZXVakp6eHlZUVVlZWz6pKQRCEWkWc9BEEQdCQCJiCIAgaEgFT
EARBQyJgCoIgaEgETEEQBA2JgCkIgqAhETAFQRA09FTXYRY/uVgQBOHfQIwwBUEQNCVVo+Lm
Pv7441r1fzWvBkEQXlBVSoImCILwb1Stu+SLFy+uzuY0Vtv6FRsbW9NdEARBjRoNmLGxsYwa
NQozMzPq1q1L69at2bx5s3L69u3bqyVPd20KmHv27GHmzJnPpe5x48bVqmUVhBdNjQbMIUOG
oKurS0hICLdu3WLBggV8+OGH7Nmzpzq7VauCSHp6OuIoiSDUUjV18PTx48cSIF2+fFnl/U2b
Nklr166VJEmStm3bJnXp0kWaPHmyZGJiItnZ2UkHDhxQzhseHi5169ZNMjQ0lFq1aiX5+/tL
kiRJM2bMkP7zn/8o53N1dZXGjBmjfN2vXz9p586d5favUaNG0nvvvSeZmJhIc+bMkQoKCqSF
CxdKdnZ2kqWlpfTmm29KmZmZyn56eXlJQ4YMkdzc3KQuXbpIZ86cqbCfT7Yzbtw4ydjYWKpb
t67k5uYmKRQKadasWZKlpaVkaWkpDRo0SIqPjy/VV02Xd+zYsdKECROkPn36SAYGBlKHDh2k
69evK+fbv3+/1LJlS8nY2Fjq06eP9Ndff0mSJEk3b96U7OzspLFjx0rGxsbS4cOHy10fgvCy
qtaAWXxWuti4ceMkFxcXae3atdJvv/0myeVylenbtm2TAGnHjh3So0ePpM8//1wyNjaWCgsL
pZiYGKlevXrSrl27pIKCAikkJEQyNDSUzpw5I504cUJydHSUJEmSsrOzJSMjI8nKykqSJEn6
+++/JQMDAyk5ObnMfklSUSAbMGCAFBcXJ927d09aunSp1KZNGyk2NlbKzs6WXnvtNemNN95Q
9lNLS0sKCQmRJEmSQkNDJXNzcykjI6PcfqprZ+3atdKgQYMkSZKk4OBgqWXLltLDhw+lx48f
S2PGjJHeeuutUn3VdHnHjh0rNWzYUDp//ryUlZUljRgxQho8eLAkSUVBvUGDBlJ4eLiUn58v
rV27VmratKmUn58v3bx5UwKkhQsXSnfv3pWys7PLXR+C8LKq0oXrYWFhlZq/Q4cOALz//vtk
ZWUp31+/fj1HjhwhKCiIlStXkpOTw7Bhw1iyZAlmZmbk5ubi4uLCiBEjKCgoYMSIEXzwwQfc
vXuXffv20b59e4YNG8ajR4/o2LEjY8aMYfv27axatYrk5GSuXbtGZGQkHh4eXLp0iUuXLhET
E0Pr1q2pW7eusi9P9gtAoVAwcuRIjI2NAdi2bRvLli3D1NQUhULBwoULadu2LatWrSI3N5eu
XbvSsWNHsrKy6NChAzY2NgQFBZGQkFBmP9u2bVuqnby8PORyOVlZWejq6hIXF8emTZsYMGAA
mzZtQltbu1RfO3bsqNHyFhQUMHz4cFq2bIkkSfj4+LB8+XKysrLYtGkTY8aMoV27duTm5jJp
0iTWrl3L0aNHsbW1BeCNN97AxMQEhUJR7vqoW7cuIG5sEGo3Dw+PSpep1mOYK1asUHmdm5vL
q6++ytdff82tW7cIDQ0lOTmZSZMmKecxMzNT/q2vrw9AYWEhqampyGQylfrs7e1JSEhAX18f
T09PQkNDCQsLw93dnZ49e3L27FlOnTrFgAEDyu1XscaNGwMgSRKJiYlMnz4dmUyGTCajR48e
6OnpkZCQAFDqSfNmZmYkJyeX288n23mSq6sra9euJSgoiM6dO9OtWzfCw8NLzVeZ5X1yfRYW
FgKQkJDAt99+q1w+mUxGamoq8fHxAGhra2Npaanx+hCEl9FT3RpZPHLU1Ny5c5V/BwYG8u67
7xIVFUWdOnUAaNq0KbNmzWL06NEV1mVjY8OFCxdU3ouJiVF+qfv160doaCjR0dFs3rwZfX19
QkND+f3339m/f3+Z/SpJS0tL+X+jRo3YtGkTnp6eAMjlcmJiYnB0dCQiIkIZWEr2xcbGBi0t
rXL7WbKdJ/+Oj4+ndevWnDp1iqysLNavX8+ECROIiYkp1dfKLK86VlZWvP322yxatEj53p07
d2jcuDHx8fGl+lje+ihW2e1DEKrD0+z51NgI09vbG0NDQ8aNG8dPP/3E7du3+fHHH1m4cCHe
3t4V1jVkyBCuX7/Ovn37KCwsJCIign379imDrbe3NyEhIdy7dw8XFxc8PDw4ceIECoUCFxeX
MvtVFl9fX5YtW0ZiYiJyuZzly5czYsQI5fTLly9z6NAh5HI569evJy8vjz59+lTYzyfp6+uT
nJxMcnIy586dw9fXl/j4eAwNDTEyMlIZIZZUmeVV5/XXX2fHjh1cunQJSZI4duwY3bt3JzEx
sUrrQxBeRs8sCZomSo7k6tWrx/Hjx1m8eDHTpk3jwYMHNGrUiKFDh6qMcspibW2Nv78/Cxcu
5L///S/W1tasWbOGPn36KKfb29tjb2+PlpYWjo6OmJubl9odf7JfZZkzZw6SJNGvXz8yMzNp
3749/v7+6OjoANC2bVsCAgKYNWsWzZs3JyAgAAMDAwwMDMrt55P69OnDmjVrcHNzIzIykps3
b9KnTx9ycnJo2bIlO3bsKHN9aLq8ZbW7YsUKpk+fTkJCAnZ2duzevZumTZsSGRlZ6fUhCC+j
Kt0aWXzSp7K7XCtWrNAoOFW3p+3X7t27OXDgAMeOHXuGvRIE4Xko3iWv9Sd9amOwhNrbL0EQ
apdqDZjFl84UHzOsLf8X90sQBKE81bpLLgiCUNNemF1yQRCEF5kImIIgCBoSAVMQBEFDImAK
giBoSARMQRAEDYmAKQiCoCERMAVBEDT0XO4lPxJ9hU8vHuGvh0kazd/c1JqF3Ycy0LHt8+iO
IAjCM/FcRpgLIg5pHCwB/nqYxPwIf5X3ntVdQeIunpdPdd8xVpltKC0tjRMnTrBp0yaN/p04
cYK0tLRqq094Os/lTh+zjdOr1JkH0zdWqZwg1AZpaWn4+/vj6elJ27ZtVZ4hqo4kSVy7do2Q
kBBGjRpFw4YNn2t9QpEX8k6f+nr6/OG3kmtT/qd2uibPqNTEs6qnWFZWFhkZGc+0TqFy1H2m
cXFx1dqeOpcuXcLT05N27dqVCm5yuRx/f3/kcrnyPS0tLdq1a4enpyeXLl2qVH0FBQUcOnQI
hUKhcX3C06uxgLl36AxamDemnm4dtdMr8wQhR0dHLl26xM2bN1WeZF7ZeqDoV3r8+PFYWFgw
duzYUtPd3d2VTzzfvXs3AwcOrFT9VWmzpK1btzJ8+HAAxo8fz5o1a566fYDo6OgX5vDFk5/p
/v37+eCDD6qtvbLExMTQtq364/AKhYLExESVAFesbdu2ap+iX159kiSRkJCgEoArqk94ejUS
MBe6DWNw0w7kyvMZHqD+C19TI8ykpCQOHz7M6dOn2bJlS6npDx48eCb9qkyb1cHKyopvvvmm
RtqurCc/0+fxmZTXXnkq2m2ubJlnXZ/wdJ5rwNTR0ma/zzuY12ugfG9gk/YschuOhMSYH77i
emq82rLqRhHu7u7IZDIcHR2ZM2eORn1QNzrIzc1l3rx5ODs706RJE/z8/EhPTycxMVF5XGP0
6NGcO3dOpdy4cePIzs5m1KhRHDlyRFnXzJkzsbe3p1WrVvzwww/K+a9du8aAAQOQyWS4urpy
6tSpUn1R12ZZ/StPWWXS0tIwNTUlKanoJNzp06cxNjYmKioKgF9++YXWrVtz//593njjDaBo
tOns7Mzy5cvp1asXLVu2ZMmSJcq2oqOjGThwIDY2Nnh7e/Pf//6XmTNnqu1XeZ9b06ZNmTdv
Hvb29ixZsoTCwkKWL19Oq1ataNq0KW+//TbZ2dml6iz5mZ4/f54VK1YQFhZG//79iYyMpFWr
Vvj5+SGTyTh+/LhyD6TYrFmzmD9/PoBGbc6dO5f09HSMjY3Fru6/3HMNmAObtGdki64cHf0h
dXX1cDazZp/PTLTQYm7IAY7euVJm2ZK/6nfu3OHdd99l7dq1xMfHc+TIEXbt2qXRxqtudDB3
7lwuXrxIWFgYV69eRaFQMGXKFGxsbPj5558B+OOPP+jXr59KuW+//RZDQ0P8/f0ZMmQIUJTL
p1u3bty6dYu33nqLd955B4VCQUZGBj4+Pvj4+BAbG8uqVavw8/Pj9u3bKnWqa7Os/pWnrDIN
GzakY8eOhIaGAhAeHk69evU4c+YMAD/++KPaNBbJycno6ekRHh5OcHAwGzdu5I8//kCSJHx9
fenYsSMxMTEsWrSIvXv3qu2TJp9bZGQkERERTJs2jdWrVxMcHMyJEye4evUqubm5zJ49u1S9
JT9TV1dX5s6dq8xhBEUZMB0cHDh//jy9evUqd71p0uaKFSswNDRk7969NG3atNz6iqWnp5Oa
mlruPKmpqRX+EAq1y3PN6XPk9mW++zOC11v15E+/VVg1MEZfR49d18L4/GJwuWVLjiJsbW25
cOECjo6OZGRk8Pfff2NkZERycnKFfXhyhClJEv7+/uzduxdra2sAVq5ciZOTE/fu3av0Mrq4
uDBu3DigKJHY/PnzefjwISdPnsTCwoKpU6cC4ObmxsCBA9m7dy8ff/xxmfVVpX8Vlenfvz+h
oaH4+voSFhbG+PHjOXv2LJMmTeLUqVNl9mfy5MkAODk54ejoSExMDIWFhdy9e5dFixZRp04d
evbsyejRo1F3sYUmn9uYMWOUec+/+eYbli1bpkxLvGTJEtq2bcsXX3yhzHUOmh1T9PPzK3U8
Wx1N2ixub/DgwRXWVywvL4/AwEB8fHywsbEpNT0hIYHAwECGDRumUX0//PADd+/eLfX+xo2q
V5bY29trXKdQec89Cdqko1txNLHE1aYZAOcTo5h2Qn0ir5JK5tnR09Pjm2++Ye/evejr69Ou
XTsKCgrUfknLqweKNuScnBzs7OyU75mbm2NgYMC9e/c0+pKVVFbe9Pj4eKKiolRyksvlcl59
9dVy66uof1Up4+3tzddff01GRgbx8fFs2bKFQYMGkZqayp07d3Bzc1ObT9zc3Fz5t66uLgqF
gnv37mFhYaFMjQwgk8nUnqXW5HNTl/u95O59ca7zkiO7inIwlcyhXh5N26xKzicbGxu8vLwI
Cgpi9OjRGBkZKaelpKRw+PBh+vbtqzaYqvNkEMzPz2fjxo1Mnz5d5bMQnq/nHjDlikKG+K/i
0pvLARjivwq5orDCciU30O+++w5/f39CQkKUG1izZs00av/JDb1evXqYmZlx9+5dnJycgKJd
o0ePHmFhYVFhfdramh3FaNSoEZ07d1Y5bpmYmIiBgUG55arSv4rK2Nvbo62tzc6dO+nevTvO
zs7o6uqyceNGPD09K/WFs7GxITU1lfz8fGW5slLxavK5aZr7vaQnP9MnT3I8+VpHR4fHjx8r
X6enp1O/fn2N26xqzqfmzZuTmZlJQEAAI0eOBFC+7ty5M82bN69SvULNqZaz5Bl5j2i66T2a
bnqPjLxHGpUpeZwqMzOTevXqYWpqSmFhIevXryclJYWCgoJK1VNszJgxLFu2jKSkJHJycvjo
o4/o2rUr9vb2Fdanp6dHZGQkubm55c43aNAg/vrrL7799lsKCwuJiorCy8uL4ODyD0VUtX8V
lenbty9fffWV8pieu7s7mzZtqvRlUW3atKFp06asWLECuVzOpUuX8Pf3VztvZT83TXOdP/mZ
lszlrk7Tpk3Zs2cPGRkZhISEcPr06Uq1uWLFCvLz8wkKCuLhw4flrp8nde3aFUdHRwIDAwEI
CgqiSZMmdO3atVL1CLXDcwmYjRuYVrqMvZG5yuuSv+oTJkygSZMmtGzZknbt2nH16lX69u3L
rVu3KqxX3ehg0aJFdOnSBU9PT1xcXCgsLOS7777TqJ/jxo1j5syZFc5vYWFBQEAAe/bswcHB
gaFDhzJlyhTGjx9fYRtV6V9FZby9vXnw4AHu7u4A9OrVi8ePH9O3b18Nlvr/aWlp8fXXXxMe
Ho5MJmPRokV4eHigp6dXat7Kfm5z5szB3d2dfv364eDgwK+//qo21/mTn2mfPn1IT0/Hzc1N
bb3Lli3jxo0btGjRgnXr1imvBtC0zblz55Kdnc0bb7zBnTt3yl0/6g4T9e3bFxMTEwBMTU1L
rfPyDi1V4Ua8KpURNPNcbo08En2FZReCiMqo+KQMFD18Y5HrUAY4/P9Fus8qh3ltzYX+onr8
+DG//PILbm5uyl3fadOmIZPJlJfqPG/V/Zlq2t6JEydwcHCgXbt2paYVFBRw8eJFunXrVurH
5erVq8TGxtK/f3+N6yssLFSeVHryB6Ws+oQiT3NrpMgaKVSKJEk4Ojry+eefM3z4cK5du8bQ
oUM5cOAA3bt3r+nu1ShxL/mL4YW8l7wi4mlFtZOWlhbffPMNX3zxBY0bN2bixIksXbq0WoNl
bX1aUcOGDRk1ahSxsbF8+eWXfPHFF+X++/LLL4mNjS0zuD3r+oSnJ0aYgiD8q7yUI0xBEITa
RgRMQRAEDYmAKQiCoKHnfqdPeUTuH0EQXiQ1GjAXRBwiPlvzZxkW5/6prQHT2NiYzMxM5XV7
mv5fXO5lkJaWxqVLlzR+gK2joyOdO3cu86zus65PEJ5GjZ4lF7l/Xi7iOkThRfBSnyWvKPdP
bVLVp8Q/67xDNaU6c9qoI3LaCM9brQ+YFeX+Kc+zzHmjiZK3z1Um309tvXUzPDycZs2a0ahR
I3777bcK56/OnDblETlthOelVgdMTXL/1CYlR4qenp4a31tdW0eYhw4dwsPDg5s3b9K+fXuN
yoicNsLLrFYEzKfJ/QNFeV169+6NtbU13bp146effio1T3m5W1JTU5k4cSKtWrWiUaNG9OrV
iytXitJn7N69m9GjRzN58mS6detGx44dCQoKUtuPkiPFkJAQli8vegbo5cuX8fDwwNbWli5d
urB9+/Yyy5W0a9cuOnbsiEwmY+DAgVy/fh2oOOdOWloakydPpkmTJrRu3Zq1a9eW+QSbc+fO
8corr2BjY0O3bt2UyzZv3jwOHjzI8ePHefPNN8nIyBA5bYR/vVoRMJ8m98+DBw8YPXo0b775
JgkJCSxdupRx48aVyh1eXu6W+fPno62tzaVLl4iLi6Nt27Z88sknyrI//vgjkyZN4uLFi3z0
0Ue8//77anctyxopvv/++8r+bdu2jYULF6o8dFdduUOHDrF06VK2bdtGTEwMgwcPZtiwYcrl
KivnDhSlltDS0uL69escP36c/fv3q827ExcXx/Dhw5kyZQpxcXGsXr2a6dOnc/78eT799FN8
fHyYNm0aQUFBIqeNIFDDlxUVe5rcP6dOncLGxoYJEyYARc99PHr0qDJdRLHycrd88skn6Ovr
U6dOHeLi4jAxMeHq1avKss7OzvTs2RMoXhgg5wAAF3hJREFUerbhf/7zHzIzMzE1VX3uZ1kj
RWNjY4KDg7G1taVnz54kJiaqPLldXbmDBw8yadIkOnXqBMD06dPZvXs3p06donPnzoD6nDtG
RkaEhoZy+/ZtDAwMMDAwYNasWezYsUOZe6jY4cOHad++Pb6+vkBR3iFfX1/27duHq6uryrx1
6tSp0Zw233zzjUbpdM3MzFSedykIz1KtCJhQ9dw/KSkppb6QxUGmWEW5W7Kzs5k3bx43btyg
SZMmGBkZqezClsxtUxzoyhphqgt+27dvZ8mSJUyfPp2srCxee+01PvvsM+rVq1dmubS0NJV8
QFCU4CohIUEZMNXl3ImPLzp00bFjR+U0hUJRKrhD0QhPXRshISGl5q2sZ53TRgRBoTaoFbvk
8P+5f2IzU4nNTNU494+1tXWp5GCff/65Sjrb4twte/fuJT4+nvj4eGJiYoiIiMDR0ZHx48fj
5eVFTEwMp0+fZujQoVVaBnXBsrCwkJs3b7J69WoiIyM5efIkoaGh7Nmzp9xyNjY2pRKLxcbG
Vpjcy8rKCh0dHSIjI5XL+ueffypT0FbURkxMTKUTwZWlefPmdO7cmYCAAOXxYpHTRniR1ZqA
CVXL/ePl5cW9e/fYt28fhYWFnDx5knXr1pUaUZWVu0WSJDIzM7GwsEBbW5u7d++yefNm8vPz
K91/dccidXR0ePfdd9mwYQOFhYVYW1ujpaWlkm2yrLxDO3fu5PLly8jlcjZs2EBSUhLe3t7l
9sHJyYnOnTszZ84cHj16REZGBhMnTlQ5JltsyJAhXL9+XbnuIiIi2LdvH6NHjy41r8hpIwg1
HDCfRe4fU1NTAgIC2L59O/b29ixdupS9e/eq7K5C2blbdHV1+eqrr1i5ciXNmjVjzJgxvPba
a8TFxVWY6OxJ5Z3tPnr0KHZ2dvTo0QMfHx+VRFvqyg0aNIgFCxYwZcoUZDIZQUFBBAYGVpjZ
UktLi927d5ORkUGbNm1o3749VlZWrF69utS81tbW+Pv7s23bNmQyGe+88w5r1qyhT58+peYV
OW0EoYZvjXwWuX9qk6rmmnlZ8g5VZ06b8oicNkJ5RE4foVYQ95ILLwIRMGsJ8bQi8bQiofYT
AVMQBEFDL/XTigRBEGoLETAFQRA0VO13+hQUFJCenq68kFkQBKGqDA0NMTc3L3XlxfNSrQGz
oKCA2NhY7OzscHZ2rs6mBUF4CaWmphIbG4uDg0O1BM1qDZjp6enY2dlVePG1IAiCJopjSXp6
OlZWVs+9vWo9hpmdnS2CpSAIz5SFhUW1HeITJ30EQRA0JAKmIAiChkTAFARB0FCteYDwkx49
ekR2drbaB/W+DLS1tTE0NMTAwKCmuyIIgoZq7QjzZQ6WUPQUdHEtqiC8WGptwHyZg2Wxf8My
CsLLpNYGzMr66KOPWLp0qdppQUFBVX42oru7Oz/++GO586Snp/N/7d17UNV13sDxt+BhgccD
co4oigdREEE3UUCqld2JFcwLbtIqSw3ZpLAaWY6pBYaKZXmhy45juvtU4iWUAhdQs0Znt3FK
ixXcDXXRSDmgeITDKQUF5fr84eOZjtx+ih6O9HnNOA6/7/V3ZvjwPb/L9xMbG0txcbH5WHFx
MbGxsYoSdwkhHgw2ew3zQVJXV8fXX39NXFycObjGxcVRWVl5x7u2CyFsl02vMLOzs4mMjMTf
358xY8awcuVKc9m5c+eIjo7G19eXWbNmUVVVZS67du0aL730EqNGjeI3v/kNBQUFFv3u3buX
xx57DH9/f2JiYjh37py57NChQ/z2t79l5MiRJCUl0dTU1OU8dTod69atw2AwMG/ePJ599lkM
BgNpaWmKsyIKIWyfzQbM0tJSli1bxvr16zl9+jTZ2dl8/PHHHD9+nNbWVp577jmCg4MpLi5m
8eLFFqlhX3/9dQwGA8eOHeOTTz7hn//8p7ksPz+fJUuWsH79ek6cOEFkZCRxcXE0NjZy4cIF
5s+fT0pKCv/973/x8vKirKxM0Xzj4uJYsGAB+fn5FBYWkpiYaM73LYToHWw2YHp6evLll18S
FBRETU0N165dw9XVFaPRyKlTp9Dr9bzyyiuoVComTpzI1KlTzW3z8vJYtGgRLi4u6HQ6FixY
YC7bvXs3s2fPNueWSUhIoLm5maNHj3LgwAECAwN5/PHHUalUPP/88wwaNEjxnLtKoSCEeLDZ
7DXMvn37snv3bj799FMcHBx46KGHaGhooLW1lcrKStzc3HBwcDDX1+l0NDU1UV9fT01NDYMH
D7You6WiooKCggL+/ve/m481NDRQUVFBVVWVxQv8ffr0YejQoYrmu3PnTrZs2cKECRMA2Lx5
M76+vsTGxt71ZyCEsC02GzCzsrLIycnhwIED5uA3btw44GZ62B9//JH6+nqcnJwAuHTpEgMG
DMDJyQkXFxcqKirw8fExl90ycOBA5s+fT1JSkvlYaWkpHh4eZGRk8K9//ctiHj9v2xG9Xk9y
cjKenp6kp6fT2trKlClTWLp0KY888gje3t7d+iyEELbBZr+SX7lyBUdHR1xdXWlubuZvf/sb
VVVVNDQ0MHr0aPz9/XnzzTdpaGjg2LFj7N+/39z2T3/6E2+//TYmkwmDwcBf//pXc1lMTAw7
duwwXws9ePAgjz32GAaDgaioKIqLi8nNzaWpqYkPP/yQioqKLueq0WgICwtjx44daDQatFot
27dvJywsDI1Gc18+HyGE9dnsCvPpp5/myJEjhISE0K9fP0JDQ/n9739PSUkJAOnp6SxevJiA
gAD8/PwsnrNcvnw5K1asYOLEifTr148ZM2bwzTffADcTH6WmprJ48WIuXryITqfjgw8+YMSI
EeZ+V6xYwZIlS4iIiFCUE9vFxYXMzEyLY6NHj25zTAjxYLNq1siSkhKCg4MV1TUYDHc6rQfS
z6+1CiHuTmFhISNHjlRUt1dmjbSzs9mp3TO/hHMUojex2d9YtVrdqwPKrd2KhBAPDpu9huns
7CxbnwkhbErvXcIJIcQ9JgFTCCEUkoAphBAKWTVgqtVqjEajNYcUQvRyRqPRajdQrRowtVot
5eXlEjSFEPeE0WikvLwcrVZrlfGsepdcpVLh7e2NyWSivLzcmkMLIXohtVqNt7c3KpXKKuNZ
/bEilUqFh4eHxa5AQgjxIJCbPkIIoZAETCGEUKhH3/TZd+4/vJW/jzM/KdtoY5TbYFY88gTT
ho+9zzMTQoi2ejRgphzJ5nyt8jS0Z34y8NqRrB4LmK6uriQlJZGcnMzatWvv6H9XV1euXLnS
I/O+16qrqykoKKC0tFRR/eHDhxMSEsKAAQOs0p8Q94tVt3e7nWZz4l21+zFxc7fGFXevurqa
rKwswsPDGTt2bJd5jFpbWykqKuLLL79k9uzZbYLcve5PiK70yu3dbvkf1a84mbCBovj1PT0V
1q5d2yNtbUlBQQHh4eEEBgZaBLempiaysrLapCXu06cPgYGBhIeHt0l33Fl/HemqPyHuJ5sP
mBlPLMRfOwSnvg7tlp87dw5XV9d2yxISEu4qUGVnZ7f71yc5Ofmu+7+9ra3YuHEjnp6eDB8+
nJaWli7rl5aWMnZs20siLS0tVFRUdNjH2LFj2/3K3VF/XemoPyHuJ5sOmCvCoonyHU99UwNP
7nn3jts///zzREdH37P53B4c76R/W11hpqens3r1av79738r3n/0btIJd9bmXvcnxP1iEwHT
vo8dmTNfQuvUz3xsms84VoY9SSutxOZs5ITxfJf9XL9+nRkzZvDMM8/Q3NzMli1byMnJAW6u
BpcvX05UVBRjx45l0qRJnD59GoBr164xf/58hg4dyvjx4zl27Fi7/d++Svx5/7t27SIwMJBh
w4YxadIkjhw50mlbgPr6epYvX46fnx8+Pj4kJCRgMpkA2L59OzExMcybN4+HH36YoKAg8vLy
zG2LioqYOnUqOp2ORx99lIMHD3b4uWzbto2goCB0Oh3Tpk3jxIkTAEyaNImysjLeeustNm3a
hMlkwtXVVb7qCtEBmwiY03zGMcs/lM9iXsGxrwo/zWB2z3yRPvQh+ctP+Ozsf7rso6mpiTlz
5uDq6sq2bduwt7dvUycnJ4etW7dSVFTEmDFjWLNmDQCvvfYaFRUVnDx5kry8PA4dOtTuGB2t
Emtqali0aBFZWVmUlZURExPD4sWLu2ybnJxMfn4+hw8f5rvvvqOlpYX4+Hhz+aFDh5g7dy75
+fm8+uqrvPzyy7S0tHD58mVmzpzJzJkz0ev1pKWlkZCQwA8//NBmjOzsbF5//XU++OADSktL
iYqKIjo6msuXL/OPf/yDIUOG8NFHH5GSkoJarSYjIwNfX9+OP+j/ZzKZutwTwGg0mv8ACNEb
2MSO6/t+OM6uU0d4esxETiWk4dHPlV/Zq9hWdJi38/d33QEQHx9PRUUFhw8fbjdYAkyfPp2B
AwcCEBERYQ5ie/bsISMjg/79+9O/f39efPFFtm3b1qZ9R9chHRwcUKlUpKenM2vWLOLj45k/
f36nbVtbW8nKyiIjI8OcCG3Dhg2MGDGCixcvAuDn58fEiRMBiIyM5M9//jNXrlzh888/x93d
3TxGWFgY06ZNIyMjg1WrVlmM8+mnnzJ37lxz8rnExES2b9/OwYMHiYmJaXMeUVFR7Z7j7a5f
v05ubi4zZ87E09OzTfmFCxfIzc1VfMlix44d/Phj14+YaTQa5syZo6hPIe41mwiYAHM/+1+G
9x/Io543M799U1HCgi+2Km5vNBo5e/YsJ06c6PBxp5/vaGJnZ0dLSwv19fXU1NRYZG/08vJq
t/2tZypv5+joyL59+0hLS2PGjBk4Ozvz8ssvk5iY2GHb69evc/XqVYuxtFotzs7O5oB5+3zh
5s2V8+fPU1JSgk6nM5c3NTXxhz/8oc3cqqurLeoBDBs2jAsXLrR7jkp5enoSERFBXl4eMTEx
uLi4mMuqqqrYu3cvkZGR7QbT9kgQFA8Cm/hKDtDU0syMrDT0V4zorxiZkZVGU0uz4vY5OTm8
8MILLFy4sM2jLZ1xcnKif//+FgHkVsC6XUcrzMuXL3Pjxg0yMzMpLy9n48aNpKSkUFxc3GFb
JycnNBoNZWVl5mNGo5G6ujrc3d07nfOgQYMICQnh/Pnz5n8FBQWsW7euTV1PT882O0Pp9Xrz
Srs7Ro0aRUhICHv27KG2thaAK1eusGfPHkJCQhg1alS3xxDClthMwAS4fL0O3y2L8d2ymMvX
6+6orYODA8uWLaOuro6//OUvd9T26aefZu3atVRXV1NRUcGmTZvardfRNcza2lqio6P56quv
6Nu3LwMHDsTe3t5iU9P22sbGxrJmzRoMBgNXr17l1VdfJTQ0lGHDhnU63+nTp3PmzBk+/vhj
mpubKSkpISIigv37216+iI2NJT09nePHj9PU1MT777+PwWDg8ccfb1O3oaGBvLw8fvrpp07H
/7nQ0FCGDx9Obm4uAHl5efj4+BAaGqq4DyEeFD0aMIf0c7vjNsNcOt4o1NHRkXfffZcNGzbw
/fffK+5z1apVBAQEMH78eCZPnkxERES79TpaYep0OjZt2sSiRYsYPHgw8fHxbNmyhaFDh3ba
duXKlUyYMIHw8HACAgJobm5m165dXc7X3d2dPXv2sHPnTry9vXniiSeIj4/nmWeeaVN3+vTp
pKSkEB8fj06nIy8vj9zc3HZXsbW1tcyZM4ezZ892Ov7tL4dFRkbSv39/ANzc3IiMjOyyjdKy
e9lGiO7q0Vcj9537D2u+zaPkcqWi+qPcBrPy0SeY6t0z75J3dA3zfre1JV988QXe3t4EBgZa
HG9sbCQ/P5+HH3643c1cv/vuO/R6PVOmTFHUX1c66k+IrnTn1cgeDZjiwSPvkosHnQRMK5Hd
im6S3YrEg0wCphBCKNSrdysSQghbIQFTCCEUsvqbPo2NjZhMJvODzkIIcbfUajVarbZ3ptlt
bGxEr9fj5eWFn5+fNYcWQvRCRqMRvV5vtdzkVg2YJpMJLy+vLl/9E0IIJW7FEpPJhIeHx30f
z6rXMGtrayVYCiHuKXd3d6td4pObPkIIoZAETCGEUEgCphBCKGQzGwjfrq6ujtraWkWZDH8J
7OzsUKvVODs79/RUhPjFstkVpgRLSy0tLfLsqhA9zGYDprWD5fnzXWel7GnyB0SInmWzAbMz
Cxcu5J133umyXkJCQoe7p//c7fsqBgUFcfTo0W7NsTMmk4nY2FiLFBbFxcXExsYqSgQmhOgZ
NnsNszPx8fH39FretWvXuHHjhvnntLS0+5qPpq6ujq+//pq4uDhzSt+4uDgqKyupr6+/b+MK
IbrHZleYiYmJvPHGG+af6+rq8PHxoaSkhA8//JB9+/YBN7MvpqamMn78eB566CEWLlzY7iqt
urqaBQsWMGHCBIYPH87kyZMpKiqiubmZp556ivr6eoKCgqiqqmLZsmWcOXMGuJkudt68eYwe
PZrQ0FDeeecdc5K1hQsXkpqayuzZs3nkkUeIiooyt+uMTqdj3bp1GAwG5s2bx7PPPovBYCAt
LU1xlkUhhPXZbMCcPXs2e/fuNedu+fzzz/Hz82PkyJEW9VatWkVBQQFffPEF33zzDc3Nzbzw
wgtt+lu9ejUAX331FWfOnOHXv/4169evx97ent27d+Pk5MTx48ctsim2tLQQFxfHgAEDKCws
JDs7m/3797N582Zznb179/L+++/z7bff4u/vT1pamqLzi4uLY8GCBeTn51NYWEhiYiJPPfXU
HX9OQgjrsdmA+bvf/Y6mpiYKCgqAm2l0Z82aZVGntbWVnJwckpKSGDRoEP369ePNN9/k8OHD
XLp0yaJuSkoKGzZsoG/fvly8eBE3Nzeqqqo6ncPJkycpLS1l9erVODk54eXlxZIlS8jMzDTX
mTp1qjnIhoeHK941HOgyHYMQwrbY7DVMe3t7oqOjyc3NxcfHh6NHj7ZJn3vjxg2uXr1qkZ1R
o9Hg7OxMRUWFRd1Lly6RmprK6dOnGTFiBGq1usvMg9XV1Wi1WhwdHc3HdDqdRd5yjUZjMWel
d7J37tzJli1bmDBhAgCbN2/G19eX2NhYRe2FENZnsytMuPm1/MCBA+zfv5+wsLA2OVwcHR1x
c3OzeCSourqaurq6Npt8JCQkEB4ezqlTp/jss8+YPn26uayjld6QIUMwmUwWN2LKysq6vYGI
Xq8nOTkZT09P0tPT2bp1K56enixduhS9Xt+tvoUQ949NB8yAgAA0Gg0bN25s83X8llmzZrF+
/XoqKyu5evUqKSkpBAcH4+XlZa7T2tpKTU0N7u7u2NnZUV5eztatW2lsbATAwcGBhoYGzp49
S3Nzs7mdn58f/v7+pKamUl9fT3l5Oe+99x5PPvlkt85Lo9EQFhbGjh070Gg0aLVatm/fTlhY
mMWKVQhhW2w6YMLNVWZtbS2TJ09utzwpKYmgoCCmTJlCSEgIra2tbN261aJOnz592LBhA++9
9x7jxo3jueee449//CMXLlygvr6eYcOGERoayqRJk/j+++/N7ezs7Pjoo4+orKwkODiYGTNm
EBkZydKlS7t1Ti4uLmRmZhIQEGA+Nnr0aDIzM3FxcelW30KI+8eqWSNLSkoIDg5WVNdgMNzp
tH4RBg8e3NNTEMLmFBYWtnmCpiO9MmuknZ3NTq3HyGciRM+y2d9AtVotAeJnbu1WJIToOTb7
WJGzs7NsZSaEsCmyhBNCCIUkYAohhEISMIUQQiGrBky1Wo3RaLTmkEKIXs5oNFrthqhVA6ZW
q6W8vFyCphDinjAajZSXl6PVaq0ynlXvkqtUKry9vTGZTJSXl1tzaCFEL6RWq/H29kalUlll
PKs/VqRSqfDw8MDDw8PaQwshRLfITR8hhFBIAqYQQigkAVMIIRSSgCmEEApJwBRCCIUkYAoh
hEISMIUQQqFuPYd5a+diIYT4JZAVphBCKHRXOX2EEOKXSFaYQgihkARMIYRQSAKmEEIoJAFT
CCEUkoAphBAKScAUQgiFJGAKIYRCEjCFEEIhCZhCCKGQBEwhhFBIAqYQQij0f1NFaqyKxZ6z
AAAAAElFTkSuQmCC

--------------pU8o5jw9DTHAELL3BH6UnlhZ--


From xen-devel-bounces@lists.xenproject.org Thu Apr 24 11:42:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Apr 2025 11:42:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.966213.1356495 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7uxk-00068O-Bh; Thu, 24 Apr 2025 11:41:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 966213.1356495; Thu, 24 Apr 2025 11:41: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 1u7uxk-00068H-90; Thu, 24 Apr 2025 11:41:52 +0000
Received: by outflank-mailman (input) for mailman id 966213;
 Thu, 24 Apr 2025 11:41: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=KF8R=XK=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u7uxj-00068B-26
 for xen-devel@lists.xenproject.org; Thu, 24 Apr 2025 11:41:51 +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 1974e896-2101-11f0-9ffb-bf95429c2676;
 Thu, 24 Apr 2025 13:41:45 +0200 (CEST)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-43ea40a6e98so8564675e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 24 Apr 2025 04:41:45 -0700 (PDT)
Received: from [192.168.1.23] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4409d2bf751sm18014445e9.34.2025.04.24.04.41.44
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 24 Apr 2025 04:41:44 -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: 1974e896-2101-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745494905; x=1746099705; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=XA2DZNhBlFBiy/erxI5im6paQA1RJkr+LnWitzQ9+fI=;
        b=mls0n8M15fEEEVihsb3iKbNFbewtyWVoSGi2sTT9KhzkJHdp2gTxqbXX8VIKiGB69+
         AbBadtcETr+C9t8QSxL43jCtodxYWJXgMPltqzFYoH+VKtQZnUM9+f57BPoA0WLBD9Nz
         ZbBIbn/ArBdpWWww4hRRCs92SPBHD2dWKSRNU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745494905; x=1746099705;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=XA2DZNhBlFBiy/erxI5im6paQA1RJkr+LnWitzQ9+fI=;
        b=f6/OBBJBwVHcyOF4qZi5mAc/UW1SjDm7Ypugo22OCbSdC2obgkuj3c9zzx97n1/Ks5
         KKQiv/4eLkWtekIMkMWr5/LsdLv6yEjyIevOelwYJ1spXEAsPRUm2GWwe+yFP0nHBm8p
         7FVKn8n3gKfIsBJmOhvOo/eIbNScrNIdjG8FDa2liHeYkBaTQhEmzTeAx1iR4K7nW0qe
         KUoRhlNPGGjVKDF1Yw8/2COUOh4OwQkcTQ3mQB8WWoz/yMaZzIaAC0t2AAUb7Rxs+1vh
         NlTOdT2MwTSxJa5zVrN3j81GzKpWNUBRmxr11wA4WY00h6PP+f7ZBhIY4GQHRaNRHEN7
         dTyQ==
X-Forwarded-Encrypted: i=1; AJvYcCX1jdtmg0cfNGbyFJTg1aB0vsYWPtqrn7i7DZPhSnMtYq/Z3Z43L75SJSmxAl2s6bC0K2OSZzbYt7s=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyH3RoncOgGWj2RmzHYDpKk0a+o8+f9XAx2QjhZCOmbCJn9PtNI
	YxQVgmW4sVxwQsC0SLCfU9SVRT+zcopG4V8W9rFs59qfjW/BIWf3LnJxu0k584A=
X-Gm-Gg: ASbGnct9uj6FfeaQuefL/berdHWikJR1zYFD2dseQHVpc973SKefXC6zvd3OHyEsSH9
	Pdu9o4bNT6CXyrpWgmKtkEX+/zd9mnsnup8t8JewuSgyrEq1I7vEyuk77oa7Fporm5VjVU2o5M3
	mJPwGEoRV6hyRGlQyyvsLxQgVsjze9CsuS8k28LT6D2fvqUeMBTZt1Z608arDIRwzF/NBuv1GEJ
	66UPVx+xbRTKpb3zojpACuZYRSOrLoGrTXdUW/MupXgMViG5lCk9mC+Znl15rkU+V3/GfmrWPUB
	cGF9OwdbMopAD9OqxFfqbB0okW8bMsKE7TnjhKKC7aW/X0PKB/okLhbd3ZVYiLIra3Q6pu1Dvap
	Gq2Tk
X-Google-Smtp-Source: AGHT+IHboyJ5fuPQIr4DWS+Pc1hvFFbrYO5b9sOwB8W9IAcDMI6xKw3jBWElJxOEp/JNDKkmtMiJ7A==
X-Received: by 2002:a05:600c:3b1a:b0:43d:40b0:5b with SMTP id 5b1f17b1804b1-4409bd76e79mr17324675e9.25.1745494904937;
        Thu, 24 Apr 2025 04:41:44 -0700 (PDT)
Message-ID: <041d4bd5-962c-4600-b436-0ec214a6c6ca@citrix.com>
Date: Thu, 24 Apr 2025 12:41:43 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen: fix buffer over-read in bitmap_to_xenctl_bitmap()
To: Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
References: <20250424103841.94828-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: <20250424103841.94828-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 24/04/2025 11:38 am, Roger Pau Monne wrote:
> There's an off-by-one when calculating the last byte in the input array to
> bitmap_to_xenctl_bitmap(), which leads to bitmaps with sizes multiple of 8
> to over-read and incorrectly use a byte past the end of the array.

/sigh

> While there also ensure that bitmap_to_xenctl_bitmap() is not called with a
> bitmap of 0 length.
>
> Fixes: 288c4641c80d ('xen: simplify bitmap_to_xenctl_bitmap for little endian')
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>

You ought to note that this is only not getting an XSA because
288c4641c80d isn't in a released Xen yet.

> ---
>  xen/common/bitmap.c | 8 +++++++-
>  1 file changed, 7 insertions(+), 1 deletion(-)
>
> diff --git a/xen/common/bitmap.c b/xen/common/bitmap.c
> index bf1a7fd91e36..415d6bc074f6 100644
> --- a/xen/common/bitmap.c
> +++ b/xen/common/bitmap.c
> @@ -369,6 +369,12 @@ int bitmap_to_xenctl_bitmap(struct xenctl_bitmap *xenctl_bitmap,
>      const uint8_t *bytemap;
>      uint8_t last, *buf = NULL;
>  
> +    if ( !nbits )
> +    {
> +	ASSERT_UNREACHABLE();
> +	return -EILSEQ;
> +    }

I don't see any hypercalls performing a bits==0 check, so I expect this
is reachable.

> +
>      if ( !IS_ENABLED(LITTLE_ENDIAN) )
>      {
>          buf = xmalloc_array(uint8_t, xen_bytes);
> @@ -396,7 +402,7 @@ int bitmap_to_xenctl_bitmap(struct xenctl_bitmap *xenctl_bitmap,
>       * their loops to 8 bits. Ensure we clear those left over bits so as to
>       * prevent surprises.
>       */
> -    last = bytemap[nbits / 8];
> +    last = bytemap[(nbits - 1) / 8];
>      if ( nbits % 8 )
>          last &= (1U << (nbits % 8)) - 1;
>  

This (preexisting) logic is mad.  The overwhelming majority of cases are
going to be a multiple of 8, and as you notice, the 0 case can't be
fixed like this.

It should all be inside a copy_bytes conditional as is done in
xenctl_bitmap_to_bitmap().

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Apr 24 11:42:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Apr 2025 11:42:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.966219.1356506 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7uyF-0006Z7-J4; Thu, 24 Apr 2025 11:42:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 966219.1356506; Thu, 24 Apr 2025 11: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 1u7uyF-0006Z0-GC; Thu, 24 Apr 2025 11:42:23 +0000
Received: by outflank-mailman (input) for mailman id 966219;
 Thu, 24 Apr 2025 11: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=Yjef=XK=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1u7uyE-000685-5p
 for xen-devel@lists.xenproject.org; Thu, 24 Apr 2025 11:42:22 +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 2edeffd1-2101-11f0-9eb2-5ba50f476ded;
 Thu, 24 Apr 2025 13:42:21 +0200 (CEST)
Received: by mail-ed1-x530.google.com with SMTP id
 4fb4d7f45d1cf-5e8be1c6ff8so1628557a12.1
 for <xen-devel@lists.xenproject.org>; Thu, 24 Apr 2025 04:42:21 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-64-225.play-internet.pl.
 [109.243.64.225]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5f6ed9df8f8sm1024280a12.68.2025.04.24.04.42.19
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 24 Apr 2025 04:42: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: 2edeffd1-2101-11f0-9eb2-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1745494941; x=1746099741; darn=lists.xenproject.org;
        h=in-reply-to:content-language:references:cc:to:subject:from
         :user-agent:mime-version:date:message-id:from:to:cc:subject:date
         :message-id:reply-to;
        bh=lmuTrG0KdvxPYIi9Ia14fuQG9GhKduR1D6MgEml/ItQ=;
        b=l+MdjJoQPpwQCcoD9d/9j4BuNGF7F2KRtjkI6CTSO3nYL0n5x2cDlKW1IT+UeVxzI8
         MGqWqKQ9afJfRMe4pWBeCIMEg9KVMWnMu/fRlcx1XOPPXD7DAqdL2wTYO2kOy3T/hqj7
         TcOe25Xcafj0wJU2QlLMMpcuXEHoubFsVprTTiAV3ltoey9fHsThcgS5KbCell6QZmgs
         4HP8kWtR8qAJRY/mrG8XOIXDt3S78UN8xWfCqnmU+Wo14N1XranEvHF8m1a9G0rTWdOi
         ZGfwbcjD56HP/dv2BpX6o84As0h9XzAsBFHX+KtOoNYzeSSTqbTpE91v6U/5F5pJ+vWi
         1TzA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745494941; x=1746099741;
        h=in-reply-to: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=lmuTrG0KdvxPYIi9Ia14fuQG9GhKduR1D6MgEml/ItQ=;
        b=xQpMTE135guqvoj2/jsLPh2WJxpYc16yPwij5VdpGo/lbwb7RUAlS+xsvRQRkfcDBB
         eXBFgwds9uFSBxHBZP8XSxN1FMHKL5ZqOOrUyuXmDkC+koOyJ4/sWh+F4Y+ecR6eJWH/
         aCjBNJ5rATi0XSlJfFZkbDRzGCAEASh50az0ngUL7JWspAL+We3Zwz8XoWsvP5Ezp8CS
         j4czyfD3ypCkbxok30zOm5bTlglD/QG7554FLvZNuKDUtq6u2puNSxpAyD2XCLpSk7c4
         Vv7xDjuHKiR2hbmR0Oxy7SoVwTBpMl1mCOBLRjOExwcdu2C/P2gbKruqHsRpD6z0PNGC
         98sw==
X-Forwarded-Encrypted: i=1; AJvYcCXNt9mJKa7gra6RmBPNC3A/8+fHZ2Gzz2raZlxpne8nL+3poehs2FOhv+rxzg2VtH30ntb3FIhWyXk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwJFBf1l9X2wptUocHFaTASXIq82oNLvhulfHw4XQvHoKTDsIip
	lotz7DBTkWaKqJSFllxMi8ITj/EdwweCxR2TAva4UVfaBfa4v3ax
X-Gm-Gg: ASbGncthpfl5Q+S4v5yivjgKoZpN+3g/IW1DUvcEU7o636Non6TVe4F3/8RxWv+fVeZ
	MF6Tg1H4CYzmNbwc8B9R7qEIvFSfdHmQSQYxbzownMpxelW8iSbe/dA2OjTwgYIdZ8nEVYDxSQq
	d+3bcs04gQBd+YAW9yxx3St/gEDNuylCCP/fwLteDQcvA1BH8vtIBltsF+JJrdi+yfFrhuDGuK9
	acvLO/tBU+ha82o4j2yq1jhLZdL+/z1KgsQN3AhdGA2dhLida+gB9QISpBV4WE04t5BnbL9NsNC
	TRSn2y+i+fisHkx01E/8Rtp/TSo+wt8hUGp+1KaVM5taJLgCTSfySGj7EZestn7X1Q4KA+hFDbz
	Fi35b8SMQcwDWc03t
X-Google-Smtp-Source: AGHT+IEgZUspumxMo5/YANsRag03NGG3y4CoEz8EgjRdCbXES6quT6/opTZTOAJjBaqZsubmBLCynA==
X-Received: by 2002:a05:6402:2681:b0:5d3:cff5:634f with SMTP id 4fb4d7f45d1cf-5f6df82fdcemr2156194a12.24.1745494939930;
        Thu, 24 Apr 2025 04:42:19 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------fFxa0EaYfvbxfwTUNxpg0xLv"
Message-ID: <069de4f4-0618-4a64-bb0d-73eac409116c@gmail.com>
Date: Thu, 24 Apr 2025 13:42:18 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Re: [PATCH v2 1/6] SUPPORT.md: make Linux based stubdom fully
 supported
To: Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org
Cc: Community Manager <community.manager@xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
References: <20250408123526.14613-1-jgross@suse.com>
 <20250408123526.14613-2-jgross@suse.com>
Content-Language: en-US
In-Reply-To: <20250408123526.14613-2-jgross@suse.com>

This is a multi-part message in MIME format.
--------------fFxa0EaYfvbxfwTUNxpg0xLv
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 4/8/25 2:35 PM, Juergen Gross wrote:
> All patches needed for running with a Linux stubdom device model are
> in the tree and QubesOS is using and testing Linux stubdoms nowadays.
>
> Switch support from "Tech Preview" to "Supported, with caveats".
>
> Signed-off-by: Juergen Gross<jgross@suse.com>
> ---
> V2:
> - switch to "Supported, with caveats" (security team)
> ---
>   CHANGELOG.md | 1 +
>   SUPPORT.md   | 5 ++++-
>   2 files changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/CHANGELOG.md b/CHANGELOG.md
> index 8f6afa5c85..ce4fcf2feb 100644
> --- a/CHANGELOG.md
> +++ b/CHANGELOG.md
> @@ -10,6 +10,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
>    - The minimum toolchain requirements have increased for some architectures:
>      - For x86, GCC 5.1 and Binutils 2.25, or Clang/LLVM 11
>      - For ARM32 and ARM64, GCC 5.1 and Binutils 2.25
> + - Linux based device model stubdomains are now fully supported.

LGTM: Acked-By: Oleksii Kurochko<oleksii.kurochko@gmail.com>

Thanks.
~ Oleksii

>   
>   ### Added
>    - On x86:
> diff --git a/SUPPORT.md b/SUPPORT.md
> index 91cb6f8ed2..e8fd0c251e 100644
> --- a/SUPPORT.md
> +++ b/SUPPORT.md
> @@ -260,7 +260,10 @@ Go (golang) bindings for libxl
>   
>   Support for running qemu-xen device model in a linux stubdomain.
>   
> -    Status: Tech Preview
> +    Status: Supported, with caveats
> +
> +Any issue in the stubdomain affecting only the guest it is servicing
> +or itself will not be regarded a security issue.
>   
>   ## Xenstore
>   
--------------fFxa0EaYfvbxfwTUNxpg0xLv
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 4/8/25 2:35 PM, Juergen Gross wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:20250408123526.14613-2-jgross@suse.com">
      <pre wrap="" class="moz-quote-pre">All patches needed for running with a Linux stubdom device model are
in the tree and QubesOS is using and testing Linux stubdoms nowadays.

Switch support from "Tech Preview" to "Supported, with caveats".

Signed-off-by: Juergen Gross <a class="moz-txt-link-rfc2396E"
      href="mailto:jgross@suse.com">&lt;jgross@suse.com&gt;</a>
---
V2:
- switch to "Supported, with caveats" (security team)
---
 CHANGELOG.md | 1 +
 SUPPORT.md   | 5 ++++-
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 8f6afa5c85..ce4fcf2feb 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -10,6 +10,7 @@ The format is based on [Keep a Changelog](<a
      class="moz-txt-link-freetext"
      href="https://keepachangelog.com/en/1.0.0/">https://keepachangelog.com/en/1.0.0/</a>)
  - The minimum toolchain requirements have increased for some architectures:
    - For x86, GCC 5.1 and Binutils 2.25, or Clang/LLVM 11
    - For ARM32 and ARM64, GCC 5.1 and Binutils 2.25
+ - Linux based device model stubdomains are now fully supported.</pre>
    </blockquote>
    <pre>LGTM: Acked-By: Oleksii Kurochko <a
    class="moz-txt-link-rfc2396E"
    href="mailto:oleksii.kurochko@gmail.com">&lt;oleksii.kurochko@gmail.com&gt;</a>

Thanks.
~ Oleksii
</pre>
    <blockquote type="cite"
      cite="mid:20250408123526.14613-2-jgross@suse.com">
      <pre wrap="" class="moz-quote-pre"> 
 ### Added
  - On x86:
diff --git a/SUPPORT.md b/SUPPORT.md
index 91cb6f8ed2..e8fd0c251e 100644
--- a/SUPPORT.md
+++ b/SUPPORT.md
@@ -260,7 +260,10 @@ Go (golang) bindings for libxl
 
 Support for running qemu-xen device model in a linux stubdomain.
 
-    Status: Tech Preview
+    Status: Supported, with caveats
+
+Any issue in the stubdomain affecting only the guest it is servicing
+or itself will not be regarded a security issue.
 
 ## Xenstore
 
</pre>
    </blockquote>
  </body>
</html>

--------------fFxa0EaYfvbxfwTUNxpg0xLv--


From xen-devel-bounces@lists.xenproject.org Thu Apr 24 11:59:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Apr 2025 11:59:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.966236.1356517 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7vEM-00010k-Ue; Thu, 24 Apr 2025 11:59:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 966236.1356517; Thu, 24 Apr 2025 11: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 1u7vEM-00010d-Q6; Thu, 24 Apr 2025 11:59:02 +0000
Received: by outflank-mailman (input) for mailman id 966236;
 Thu, 24 Apr 2025 11: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=KF8R=XK=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u7vEL-00010X-LJ
 for xen-devel@lists.xenproject.org; Thu, 24 Apr 2025 11:59:01 +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 8288971a-2103-11f0-9eb2-5ba50f476ded;
 Thu, 24 Apr 2025 13:59:00 +0200 (CEST)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-39c1efc4577so520579f8f.0
 for <xen-devel@lists.xenproject.org>; Thu, 24 Apr 2025 04:59:00 -0700 (PDT)
Received: from [192.168.1.23] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3a06d4a800esm1854426f8f.3.2025.04.24.04.58.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 24 Apr 2025 04:58: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: 8288971a-2103-11f0-9eb2-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745495940; x=1746100740; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=fj6LGahoTYMxnRXxcI3of6d0hI/muf1rInmz5RlCZRM=;
        b=S7VyVubbhoe9nvuMIlvWcNdESMW72uiXGbz2V4oWWkIB8qrTXemGsbujPTIOrt02pI
         laPuzYun6DU/q8hr6tdXTkumYGFEb/HzSHQve5JQ2gZ1OBQMazMKZNItTzl1c5tpIFkX
         hKzgZuZo6x2U4PMU0Z0ltJL9kS91adl0HniOM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745495940; x=1746100740;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=fj6LGahoTYMxnRXxcI3of6d0hI/muf1rInmz5RlCZRM=;
        b=AhZzQ82ceBrDqvR1f8yf8hVyfFyrrRpaGIoEMK5aewvUX4UchGKXowVJ4SiJTRdOvb
         K48KR4xDpqwoHObYaQh3qYpQ99uLuPR8wf+5xouFqj0xmQGJsc5/Rji7CKtDQKfcutpT
         GLWgJGNINNjsgfYv9kapktg2O9jUr8mBu4PrwdsyzVVYGguMpitM1Ckc2GWD58UOq6Q4
         r7ptA5hr+V35tPR9MbloGbA9U73QSVN21jpVeH0K4TCmPW2/UyMTsFoH9ndO11HX+wRC
         wC6n6pff+5uMRgIrpvyjgmR1mwNd9OOAeMOlTl6ezJUFrhi06z2whBraPlMGbQBjf8xF
         sciQ==
X-Forwarded-Encrypted: i=1; AJvYcCWE9i1Z4EWqCMWlVnrLwrkfu3zp5IDc3ZmflxWC1uU8lWpYO+VDHpFoAkTXD4KkoUIMl/i3fY011i0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YypJt5UYnfZPhhcze3p9Jg5AJathDhZNQ58/Mr5/7ZUqGuhGhJg
	wtkIJ82oV5aScjQF6JxG2hUqSOJZok8769TMfc5nocDjh0AbHn6rYgw9+5bhr67pCWkySDrhT9Q
	p
X-Gm-Gg: ASbGncsRWA0fn97zmBsGpiHw0wo8ixgGuBld6GA70igSguOcDGM/TBE3pKQB3BRqEWX
	1+hINhvbQSMPt/UWirS19KGt6KaMWx3I/lUPsciWybh7bH0IXI9aKUwMoQ9oGRu7nsC0y+rC7NN
	tUqATbbFZJCKMVDk/AcXN6z5syH/cpPDgDtpA2gtq8OquuKmWvK5F3ctHWQNUFsEBcKO0OOZlyE
	Gu2p4U9M5CCTInSk2n4+qssTQlI3wa9jwi9rj7hmVzZuD7PGX1qAOJy2456Igq9/lCm3aT15qPg
	v5wSzBDTgdwAYf2Ig9PddYWlTt4i6Dr6Ek4WXtcSRlVOmN/GlZhDnC/o6sJaBSoUVahtV0I/WO3
	5d9M9
X-Google-Smtp-Source: AGHT+IGraPvbgnvacLxk6PkCswfyv64TKXmePUtaw21/A9m3dRcFnIwG65vOmjP1Ddd6VvB+HKex3w==
X-Received: by 2002:a5d:64a4:0:b0:39f:e37:1733 with SMTP id ffacd0b85a97d-3a06cf52369mr1885352f8f.2.1745495940276;
        Thu, 24 Apr 2025 04:59:00 -0700 (PDT)
Message-ID: <76110aab-d506-4b20-9e28-1ddfd9a059f1@citrix.com>
Date: Thu, 24 Apr 2025 12:58:59 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1] misra: add deviation of Rule 5.5
To: "Lira, Victor M" <VictorM.Lira@amd.com>, xen-devel@lists.xenproject.org
Cc: Federico Serafini <federico.serafini@bugseng.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Nicola Vetrini <nicola.vetrini@bugseng.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>
References: <9e1210f2a9c794d68dcc6b897239b228b141296a.1745427770.git.victorm.lira@amd.com>
 <48c7830931a98b2bf70ef1509f309b262b9e5792.1745427770.git.victorm.lira@amd.com>
 <d81178fe-82b8-434e-8610-e0ec71df6a28@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: <d81178fe-82b8-434e-8610-e0ec71df6a28@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 23/04/2025 7:16 pm, Lira, Victor M wrote:
> Continuing a discussion from before:
>
> On 4/22/2025 11:44 PM, Jan Beulich wrote:
>> Caution: This message originated from an External Source. Use proper
>> caution when opening attachments, clicking links, or responding.
>>
>>
>> On 23.04.2025 01:43, victorm.lira@amd.com wrote:
>>>          memmove.
>>>        - Tagged as `deliberate` for ECLAIR.
>>>
>>> +   * - R5.5
>>> +     - Clashes between function-like macros and function names are
>>> +       deliberate
>> They may or may not be deliberate, depending on context. I don't
>> think it's a
>> good move to deviate this more widely than necessary. If I get the
>> expression
>> above (in deviations.ecl) right, even
>>
>> void func1(int);
>> void func2(int);
>>
>> #define func1() func2(0)
>> #define func2() func1(0)
>>
>> would be deviated, which I don't think we want. Especially when, in a
>> less
>> contrived scenario, the clash may not easily be visible.
> OK, I see the issue for different functions. Does it make sense to say
> it's deliberate when it's the same identifier?
>
>     void func1(int);
>     ...
>     #define func1() func1(0)
>
> Could this be deviated?

The issue here is we've got a load of violations, and different reasoning.

e.g. all the bitops violations are valid and need fixing.  I have a plan
for how to do so, and 0 time.  These are the overwhelming majority of
violations.

pirq_cleanup_check() is horrible.  cpu_has_amd_erraturm is even worse.

In fact, I can't see a single case where the origin code is something we
really want to keep.

I still don't understand the complaint about 'c' as an identifier.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Apr 24 12:45:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Apr 2025 12:45:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.966264.1356526 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7vxQ-0001Sm-CP; Thu, 24 Apr 2025 12:45:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 966264.1356526; Thu, 24 Apr 2025 12: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 1u7vxQ-0001Sf-9i; Thu, 24 Apr 2025 12:45:36 +0000
Received: by outflank-mailman (input) for mailman id 966264;
 Thu, 24 Apr 2025 12:45: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=/3PA=XK=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u7vxP-0001SZ-Nh
 for xen-devel@lists.xenproject.org; Thu, 24 Apr 2025 12:45:35 +0000
Received: from NAM04-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam04on20617.outbound.protection.outlook.com
 [2a01:111:f403:2408::617])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 00b26c82-210a-11f0-9ffb-bf95429c2676;
 Thu, 24 Apr 2025 14:45:30 +0200 (CEST)
Received: from MW4PR03CA0100.namprd03.prod.outlook.com (2603:10b6:303:b7::15)
 by SA1PR12MB8699.namprd12.prod.outlook.com (2603:10b6:806:389::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.35; Thu, 24 Apr
 2025 12:45:25 +0000
Received: from CO1PEPF000075F3.namprd03.prod.outlook.com
 (2603:10b6:303:b7:cafe::41) by MW4PR03CA0100.outlook.office365.com
 (2603:10b6:303:b7::15) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.37 via Frontend Transport; Thu,
 24 Apr 2025 12:45:24 +0000
Received: from SATLEXMB04.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.8655.12 via Frontend Transport; Thu, 24 Apr 2025 12:45:24 +0000
Received: from xcbagarciav01.xilinx.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; Thu, 24 Apr
 2025 07:45:21 -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: 00b26c82-210a-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=gwRLOwMfQtsoBX0OcPe5L4VKTUkE7jqhPuQmgo+9/RdJ36fu8DW6Z3C6+fJ0vrgNcjqt8zQPAc0/4PJAu3sCs8y0vDMZE6YwyqF6B6enB0c9+vUE7fSytucA8azrG+eJ77BFJdXlMbO2PaMhaekATDmJ3FY/gDBls6GTE/RmJQc68a5DOfdJQ9wP4oazkGvf8gXI/1rRpgQmeyf4dLc6tDxb6iuMS2n8F10G2kC5Ip1eoCSYtAbq+wmVYtXyHaUCrXnXJX0qGQLBiiWPxHWKqrgWaRIIzj8gRXyF8UvPjozGL251Al02+UUdeg0OrY1mMySWBIui7eBvgOtHaZ+R5g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=IQQ8c6Jmffzt+ZdPDHxA9EutCM1UQAQdRALjk9nLMFo=;
 b=aUWgLd89L6VNpZeMXDpgeAVYSaY16QlO1OWdFyBSX13EZiB++qhgo1q/o3j/h9YTqCI57nph+gpz3V5O/S0WwtrOy5McPbPmb4i19XN10hs3k1RQf9LZnr9MaHSzjzMB0xBItZ6pPT/cIipVb5wBQWcowFlLylJCI099EFLcUWoFN58tn+Lo+df4bD7G15G3XH6HZUIS5OjYHtQ9uohId+JLv51BmjK2H7PnPq91Ez8Rqho7CJPjkrLcqjBS4DzSl9aM85aNvN7UDbUrnnGtV+kAiqk3o7lJ2qNRpdTtNLWJXr7cSP4RoVvp9lSvx937aXNVlOF1JALS36Ngct6PCA==
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=IQQ8c6Jmffzt+ZdPDHxA9EutCM1UQAQdRALjk9nLMFo=;
 b=3KSjHzegesQv+YJJcNe12nVYfgChYtFN184cHA+KfHnbviETN/zGqHrYAvIHh9OKnIrwrIjITVVQESymZ+NM78WOEX0NcvHD+KSGrCu6hqx4ybRp/WEWnxW0Wjdbjw4fALdFZttVz2XBImS8N9b20RdtJEX6ibe2yZx7u1zgL9E=
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: Alejandro Vallejo <agarciav@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Alejandro Vallejo <agarciav@amd.com>, Jason Andryuk
	<jason.andryuk@amd.com>, Jan Beulich <jbeulich@suse.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Paul Durrant <paul@xen.org>
Subject: [PATCH] x86/hyperv: Adjust hypercall page placement
Date: Thu, 24 Apr 2025 13:45:03 +0100
Message-ID: <20250424124505.42156-1-agarciav@amd.com>
X-Mailer: git-send-email 2.43.0
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: CO1PEPF000075F3:EE_|SA1PR12MB8699:EE_
X-MS-Office365-Filtering-Correlation-Id: 6a996bee-9047-4167-7af9-08dd832de1dc
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?WSJ70hfTye4JsRfZ3w2ruCFsleEYmMiyf6/CgwCH7oc3hbKw9vb7zWz5rD8I?=
 =?us-ascii?Q?jSIGEn/y2afW5lxIS0O34oeBRXOmrr24aIFeMLlmC/NAUEmQFCNoGPelDYzM?=
 =?us-ascii?Q?lTJQ5xrHASEkA1qaoDUkbLX+rwUFmzzzWo04RMM1zkJDPZO+vi0ulWE2SvYG?=
 =?us-ascii?Q?Wb2VOtJ9PXOHkLLwVnGwdqRbTLwgQLqUDljj3RchyhEmouFBKjbBCx+jnKRr?=
 =?us-ascii?Q?YAuCjrSGeEN7qpSt7NaAUu+yD1E6q0taTxCydM9PF19erL4gAo21fjR1zihx?=
 =?us-ascii?Q?QAaJySJZFcMFNZ7KXtAq8kJBfWZvK+ivq5e90++cylBrbQFNLpH6J2IrVRcu?=
 =?us-ascii?Q?8tV0vA/8hmFJJ2Q9uVwPs6gPdINjAKqyneWvkw1HZU2vIJEcKHesx1KzUSsb?=
 =?us-ascii?Q?bYKhgfnl2Rgdx7bAEiqEWzALqavoGNJO49fTVC5UsJIz6uISG5pmuRIyTBS0?=
 =?us-ascii?Q?GCxeCLLlgK3qjGb2tikRWkwITK/m/bKFH3lSsc6Qd360+l8+xFV+yuk7l7ua?=
 =?us-ascii?Q?cDh08kQuAddABVsl6mPZhI/e9sFNFb+9VkrD2rggjR+AiqiTGp0igZjELBLq?=
 =?us-ascii?Q?RoVDk4vPntbnPrdCr4l3MJK8xaH1mFUKAp4n0OblQGb9lIlo1s3NbsGvqYKe?=
 =?us-ascii?Q?wKAGsQfVJhbbzJPsL5InsyKUumPHh/LeYgmtgTcMtC2eYcV1nDG/3+SA3gAC?=
 =?us-ascii?Q?Y+1iwzJzDV9iBi1uF+ne/Q+3DC0AGp6hLVbTZVLabxTv231F7fi4DB8Pr4ia?=
 =?us-ascii?Q?AgLeRJKEHbNuRHMJtdKxiNmOR4P54vzhTNCY8TTm7FLoT3PMk4nSRBtBtdSM?=
 =?us-ascii?Q?PZfraqY7ahdlx99NQJBjRqoPgxQz87kuFOb+W/zEV+cbDhchATsYblghoKMI?=
 =?us-ascii?Q?eFeUKqLgH50SpSAotHfFltvRZXzHfnqpqgwKHMSTCu2LMsJtDnC0sFrAPTXO?=
 =?us-ascii?Q?nU1TegVCAL7QkAsxstSYaMy4v4P9ELrTiGoFfFLMbN9ZJ8o7imJs8wBilscf?=
 =?us-ascii?Q?b0JvdySI4RMA2DkZRYWWmEgFS5WER3gmDO3nnBGCXGh4rJbBSI8mntu8bA42?=
 =?us-ascii?Q?tFs30p3/JbkLHerWkLl6pzzjyraZOpKjf5KAqXlGCPVAVdGIJ/jf7p3+OCMl?=
 =?us-ascii?Q?ozeV1H96e8wJMHltUqGXFw+kuvyo5YyJC2GPOX8V0pVEciS1TRx3zvsh/h/M?=
 =?us-ascii?Q?P059E+EyfkFvyZcsOWILrf50tk9Kog4zW0iXPIm5aMwwROKjlnzt+UzQPDhU?=
 =?us-ascii?Q?2i99UXpwXCXP8yIWC9wKmnoKwBtuZqVKwIZf9CaWQ5R9chJMcnnjDAlETFB/?=
 =?us-ascii?Q?X5k1toFlGeb4OlSMKQRTYv2/TxdbWe4n1ieZtu+X9NBKyQLO+rmgF5Fu2Om3?=
 =?us-ascii?Q?ynX9oeeZ58hC9jdmND5fwO0kjLLpW691ZzogJ0OeITMMRUvaaarGJTT0JJqA?=
 =?us-ascii?Q?VNNxSOqBW4YGgp4X0w4nDXFinn1cldV1MbZ4RDQLuHhlWFo8WFcKFGtf5SkG?=
 =?us-ascii?Q?P+sJbEMn2HAUuDMQkYxpf1jPwjpXwn8C1hYI?=
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: 24 Apr 2025 12:45:24.1005
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 6a996bee-9047-4167-7af9-08dd832de1dc
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:
	CO1PEPF000075F3.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB8699

Xen nowadays crashes under some Hyper-V configurations when
paddr_bits>36. At the 44bit boundary we reach an edge case in which the
end of the guest physical address space is not representable using 32bit
MFNs. Furthermore, it's an act of faith that the tail of the physical
address space has no reserved regions already.

This commit uses the first unused MFN rather than the last, thus
ensuring the hypercall page placement is more resilient against such
corner cases.

While at this, add an extra BUG_ON() to explicitly test for the
hypercall page being correctly set, and mark hcall_page_ready as
__ro_after_init.

Fixes: 620fc734f854("x86/hyperv: setup hypercall page")
Signed-off-by: Alejandro Vallejo <agarciav@amd.com>
---
 xen/arch/x86/e820.c                     | 14 ++++++++++++++
 xen/arch/x86/guest/hyperv/hyperv.c      | 20 ++++++++++----------
 xen/arch/x86/include/asm/e820.h         |  1 +
 xen/arch/x86/include/asm/guest/hyperv.h |  3 ---
 4 files changed, 25 insertions(+), 13 deletions(-)

diff --git a/xen/arch/x86/e820.c b/xen/arch/x86/e820.c
index ca577c0bde..7be9a8db34 100644
--- a/xen/arch/x86/e820.c
+++ b/xen/arch/x86/e820.c
@@ -582,6 +582,20 @@ int __init e820_add_range(uint64_t s, uint64_t e, uint32_t type)
     return 1;
 }
 
+uint64_t __init e820_reserve_hole(void)
+{
+    for ( unsigned int i = 0; i < e820.nr_map; i++ )
+    {
+        uint64_t hole = e820.map[i].addr + e820.map[i].size;
+        if ( e820_add_range(hole, hole + PAGE_SIZE, E820_RESERVED) )
+            return hole;
+    }
+
+    print_e820_memory_map(e820.map, e820.nr_map);
+    panic("Unable to find a hole in e820");
+}
+
+
 int __init e820_change_range_type(
     struct e820map *map, uint64_t s, uint64_t e,
     uint32_t orig_type, uint32_t new_type)
diff --git a/xen/arch/x86/guest/hyperv/hyperv.c b/xen/arch/x86/guest/hyperv/hyperv.c
index 6989af38f1..7617f94808 100644
--- a/xen/arch/x86/guest/hyperv/hyperv.c
+++ b/xen/arch/x86/guest/hyperv/hyperv.c
@@ -22,7 +22,8 @@ DEFINE_PER_CPU_READ_MOSTLY(void *, hv_vp_assist);
 DEFINE_PER_CPU_READ_MOSTLY(unsigned int, hv_vp_index);
 
 unsigned int __read_mostly hv_max_vp_index;
-static bool __read_mostly hcall_page_ready;
+static bool __ro_after_init hcall_page_ready;
+static unsigned long __ro_after_init hcall_page_mfn = INVALID_MFN_RAW;
 
 static uint64_t generate_guest_id(void)
 {
@@ -84,7 +85,6 @@ static void __init setup_hypercall_page(void)
 {
     union hv_x64_msr_hypercall_contents hypercall_msr;
     union hv_guest_os_id guest_id;
-    unsigned long mfn;
 
     BUILD_BUG_ON(HV_HYP_PAGE_SHIFT != PAGE_SHIFT);
 
@@ -98,18 +98,18 @@ static void __init setup_hypercall_page(void)
     rdmsrl(HV_X64_MSR_HYPERCALL, hypercall_msr.as_uint64);
     if ( !hypercall_msr.enable )
     {
-        mfn = HV_HCALL_MFN;
         hypercall_msr.enable = 1;
-        hypercall_msr.guest_physical_address = mfn;
+        hypercall_msr.guest_physical_address = hcall_page_mfn;
         wrmsrl(HV_X64_MSR_HYPERCALL, hypercall_msr.as_uint64);
     }
     else
-        mfn = hypercall_msr.guest_physical_address;
+        hcall_page_mfn = hypercall_msr.guest_physical_address;
 
     rdmsrl(HV_X64_MSR_HYPERCALL, hypercall_msr.as_uint64);
     BUG_ON(!hypercall_msr.enable);
+    BUG_ON(hypercall_msr.guest_physical_address != hcall_page_mfn);
 
-    set_fixmap_x(FIX_X_HYPERV_HCALL, mfn << PAGE_SHIFT);
+    set_fixmap_x(FIX_X_HYPERV_HCALL, hcall_page_mfn << PAGE_SHIFT);
 
     hcall_page_ready = true;
 }
@@ -189,10 +189,10 @@ static int cf_check ap_setup(void)
 
 static void __init cf_check e820_fixup(void)
 {
-    uint64_t s = HV_HCALL_MFN << PAGE_SHIFT;
-
-    if ( !e820_add_range(s, s + PAGE_SIZE, E820_RESERVED) )
-        panic("Unable to reserve Hyper-V hypercall range\n");
+    printk(XENLOG_DEBUG "reserving hole for the hypercall page");
+    hcall_page_mfn = e820_reserve_hole() >> PAGE_SHIFT;
+    printk(XENLOG_INFO "hyperv: hypercall page %#lx",
+           hcall_page_mfn << PAGE_SHIFT);
 }
 
 static int cf_check flush_tlb(
diff --git a/xen/arch/x86/include/asm/e820.h b/xen/arch/x86/include/asm/e820.h
index 8e7644f887..74cbbea62d 100644
--- a/xen/arch/x86/include/asm/e820.h
+++ b/xen/arch/x86/include/asm/e820.h
@@ -26,6 +26,7 @@ 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 *map, uint64_t s, uint64_t e);
+extern uint64_t e820_reserve_hole(void);
 extern int e820_change_range_type(
     struct e820map *map, uint64_t s, uint64_t e,
     uint32_t orig_type, uint32_t new_type);
diff --git a/xen/arch/x86/include/asm/guest/hyperv.h b/xen/arch/x86/include/asm/guest/hyperv.h
index c05efdce71..5792e77104 100644
--- a/xen/arch/x86/include/asm/guest/hyperv.h
+++ b/xen/arch/x86/include/asm/guest/hyperv.h
@@ -10,9 +10,6 @@
 
 #include <xen/types.h>
 
-/* Use top-most MFN for hypercall page */
-#define HV_HCALL_MFN   (((1ull << paddr_bits) - 1) >> HV_HYP_PAGE_SHIFT)
-
 /*
  * The specification says: "The partition reference time is computed
  * by the following formula:
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu Apr 24 12:58:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Apr 2025 12:58:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.966275.1356536 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7wA0-0003dx-G6; Thu, 24 Apr 2025 12:58:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 966275.1356536; Thu, 24 Apr 2025 12: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 1u7wA0-0003dq-Cw; Thu, 24 Apr 2025 12:58:36 +0000
Received: by outflank-mailman (input) for mailman id 966275;
 Thu, 24 Apr 2025 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=CnO2=XK=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u7w9z-0003dk-Er
 for xen-devel@lists.xenproject.org; Thu, 24 Apr 2025 12:58:35 +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 d44f5755-210b-11f0-9eb2-5ba50f476ded;
 Thu, 24 Apr 2025 14:58:34 +0200 (CEST)
Received: by mail-ej1-x62d.google.com with SMTP id
 a640c23a62f3a-ac7bd86f637so425586066b.1
 for <xen-devel@lists.xenproject.org>; Thu, 24 Apr 2025 05:58:34 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 a640c23a62f3a-ace598980easm104290766b.40.2025.04.24.05.58.32
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 24 Apr 2025 05:58:33 -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: d44f5755-210b-11f0-9eb2-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745499513; x=1746104313; 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=119RsW2VdvuSgxEMmpSbsigmTPfUKH34XNDUI28hQVc=;
        b=C2KYkty5LsOYhprjni6ZPoH7UvYTvIGSNkFdVSv0w+7AkIo1G1+iS0xqe+QxQ8MYex
         lh1D4cRYY5pH8wKkyTOUYrZRLREwQQp5S+fmsKHberB7+Vz9AEhiRl9ZovOmcdA6sUb+
         b67jofZFd6CLD1ssbgNrDNQM2K1aO81zWrDQY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745499513; x=1746104313;
        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=119RsW2VdvuSgxEMmpSbsigmTPfUKH34XNDUI28hQVc=;
        b=pichfSqmJtGL5ef9Ty4gpfld9vE2I3vAzPp5GkMxt2E2e61FoSuevKuO8suo4Aipjz
         wY3CX65JqWknyhruUjEp2434s2Ez1NgsJ+OppYbbH7dJA6f4MxNdMXmUNQng43lPjvt9
         dJLKrzdHHkibzF1I+YyoZ7tXtodIwfKlF92bVPOOjTSwyywupdXFS1LpvlKiU9tU+JAX
         SbTqgwQYYOh8o9MLhhRX3Hx0zfni5rfh5aBryXINNx3DIXdw4UuPmAsENmTeuNMvtpwi
         Xg/I00yQP7GUIB00BVnbt9kYCwAVO1KwR2tjEmbRjS/9y89WuYW/BXduEehkQ21BawdT
         /9+g==
X-Gm-Message-State: AOJu0Yyddx6NJyXbK6o5QMvvcG8HCyA9OXgWlTKPCo+XZaF94uyXiCnf
	tPiT1REwm2iAQIy+XigZzbVaj5H/d2/m6LjBV+6iuFORYXULt0psN5+axUazE7+q6cBAlNGQ8Yy
	P
X-Gm-Gg: ASbGncuGPy0+hQSA++QaqUNLQ8ikg9ItJiYNLhkV/KU6AOSuwESg9KNBTNvyaSkihYv
	2Ff4/+ESFsA51cTjMFPVzhZwqVuouixNY9o13gnO/erugoU0xjmja8Oy0Vpg+LGop8Exd81aPqU
	IJwpJ1Lpl/r8vhGHgMn0R4icjajqsDQEDkvD4GpuQfeCyLE6pDvcrRKOCVl2KI4f3cL84fqkpGL
	CYeBEws0r2c9IQBaFhaUIH0ZqaRacyMDyRkA3t3kY+EVPQ3bo2YVEgirqL4QacHjecp5nks/lgZ
	EpjgJtUW7elPLIUtdnL2HSPqhA1keVn+kLPrNvp5lUb+3nL+Ji3Z6/vR
X-Google-Smtp-Source: AGHT+IH5QqVUbfEwjoL4fZHy85eQ+kXbpn4RPlbocq4UhMqoJ1zZ2LxTVdCf5YigtSRTExHlMVX4WA==
X-Received: by 2002:a17:907:7d8e:b0:ac7:e6b5:d4ea with SMTP id a640c23a62f3a-ace5a40a5c4mr172632766b.26.1745499513398;
        Thu, 24 Apr 2025 05:58:33 -0700 (PDT)
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>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH] x86/hvmloader: fix usage of NULL with cpuid_count()
Date: Thu, 24 Apr 2025 14:58:13 +0200
Message-ID: <20250424125813.96449-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.48.1
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The commit that added support for retrieving the APIC IDs from the APs
introduced several usages of cpuid() with NULL parameters, which is not
handled by the underlying implementation.  For GCC I expect this results in
writes to the physical address at 0, however for Clang the generated code
in smp.o is:

tools/firmware/hvmloader/smp.o: file format elf32-i386

Disassembly of section .text:

00000000 <smp_initialise>:
       0: 55                            pushl   %ebp
       1: 89 e5                         movl    %esp, %ebp
       3: 53                            pushl   %ebx
       4: 31 c0                         xorl    %eax, %eax
       6: 31 c9                         xorl    %ecx, %ecx
       8: 0f a2                         cpuid

Showing the usage of a NULL pointer results in undefined behavior, and
clang refusing to generate further code after it.

Fix by using a temporary variable in cpuid_count() in place for any NULL
parameter.

Fixes: 9ad0db58c7e2 ('tools/hvmloader: Retrieve APIC IDs from the APs themselves')
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
Could also be fixed by using the temporary variable in the call sites,
however that's more code in the call sites at the expense of less checking.
I don't think the extra NULL check logic in cpuid_count() is that bad.

Overall the solution proposed in this patch is safer going forward, as it
prevent issues like this from being introduced in the first place.
---
 tools/firmware/hvmloader/util.h | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/tools/firmware/hvmloader/util.h b/tools/firmware/hvmloader/util.h
index 644450c51ceb..765a013ddd9e 100644
--- a/tools/firmware/hvmloader/util.h
+++ b/tools/firmware/hvmloader/util.h
@@ -190,6 +190,17 @@ static inline void cpuid_count(
     uint32_t *ecx,
     uint32_t *edx)
 {
+    uint32_t tmp;
+
+    if ( !eax )
+        eax = &tmp;
+    if ( !ebx )
+        ebx = &tmp;
+    if ( !ecx )
+        ecx = &tmp;
+    if ( !edx )
+        edx = &tmp;
+
     asm volatile ( "cpuid"
                    : "=a" (*eax), "=b" (*ebx), "=c" (*ecx), "=d" (*edx)
                    : "a" (leaf), "c" (subleaf) );
-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Thu Apr 24 13:04:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Apr 2025 13:04:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.966288.1356546 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7wG1-0005E7-3c; Thu, 24 Apr 2025 13:04:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 966288.1356546; Thu, 24 Apr 2025 13:04:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7wG1-0005E0-0Y; Thu, 24 Apr 2025 13:04:49 +0000
Received: by outflank-mailman (input) for mailman id 966288;
 Thu, 24 Apr 2025 13:04: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=CnO2=XK=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u7wFz-0005Du-J2
 for xen-devel@lists.xenproject.org; Thu, 24 Apr 2025 13:04:47 +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 afbee908-210c-11f0-9ffb-bf95429c2676;
 Thu, 24 Apr 2025 15:04:42 +0200 (CEST)
Received: by mail-ed1-x531.google.com with SMTP id
 4fb4d7f45d1cf-5e5e22e6ed2so1539987a12.3
 for <xen-devel@lists.xenproject.org>; Thu, 24 Apr 2025 06:04:42 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 a640c23a62f3a-ace5989b18esm108713166b.60.2025.04.24.06.04.40
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 24 Apr 2025 06:04: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: afbee908-210c-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745499881; x=1746104681; 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=QssEnrGD2EwZ6qzBcru0FLwNyMDPdFsjKaD8SQlH8NQ=;
        b=iuL0aBPEzDNWo8gKGdj3bq6e8ma8lId1Xe3nWxeWGwMPZwjxiz+lvXnwLgApAFRkIu
         Tzovxvl42SRP0rPoZoQTVAHxYyh9Ae/xyoYt2P81Yl64TwSUjBU7OMBvvBpjljNgDTcs
         ijgPb2JRXu6nAmNCtgYGspTXuiUQNPfSTv3ks=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745499881; x=1746104681;
        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=QssEnrGD2EwZ6qzBcru0FLwNyMDPdFsjKaD8SQlH8NQ=;
        b=PGa9+pXanzIXV22CbAN3JDC3ttQ8vhaNFupZdz3gDJg6qxhvHmqrZnX6Zcp7pbS/ae
         kh82poQJZrmnJVErs6S8OE6SOrKbElokUU9RalxfYcgT4qsEu8Uv+QOwWKVLWHMq8nvg
         FjvMTydZe7z1bkVTxEqQ79yav0IMvRqL+d+SDknc0osTP3a8MBS42L1Tzqo+Qn1N2lLK
         vgmxNRzt5Rg9BNkqs4tQNU9ME50DOFgyaouc5BwtBtDVCdHeokm9AMAMjjMbCFDrIN1H
         s6VTX7G0ZoF/GKKdfixp47GWUDT2o+3+Wb69GLE3fvZqgDYI8FhPqDcK6mlt0kGIaBgk
         BqBg==
X-Gm-Message-State: AOJu0Yy/WGBaO2y+km9oMP3kv7NNLWSjcLSJ2GxdvSgKSjm+DmrUl1W7
	fPd1LtF4rr8zI3p9ravi086XJQhrDOGZgUmqHaCF2id2Hqz+CmPQD+AjOV6deGs=
X-Gm-Gg: ASbGncveWSmR7gZ6RWr11PYTg1QTZUTDZHclzPDhqX6GWL7KFecGDrpwe683Z3QMxt3
	kniUM0pi+twG25gqglOd1ZMWXCTd+ilmA1UdrOLi6iIwBxrLnGMH4KFxo4qgYmfNwrcksIYOjkL
	B4PCeu56ALHfVbuwnE8Zf6upWytuHZAby1dOeibvEMEN+H5d6dqZA8qH/enuIch8X/SjfNVn/xG
	IXF73d+Odmp//TVPdP2a4/UsqkfDUpj2OwfBXNv4sbXHPFsHz4kxG4Yl5yDACfZzVxRCn/QhNI0
	WPE5UMva0NuZAOQ0jtgLvNTmbApl6Ogvcg5F7fKNx8WSM8pIwL/7x1lI
X-Google-Smtp-Source: AGHT+IHrWrO6QNZRBttyti0vbEu/3H2+JZPnONDvO3+v9YKgS2gzqdSNORLKsbn2lL1NrIGA6A1wLQ==
X-Received: by 2002:a17:907:9726:b0:ac7:391a:e2d3 with SMTP id a640c23a62f3a-ace57608f0emr253738466b.58.1745499881333;
        Thu, 24 Apr 2025 06:04:41 -0700 (PDT)
Date: Thu, 24 Apr 2025 15:04:39 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: xen-devel@lists.xenproject.org,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH] xen: fix buffer over-read in bitmap_to_xenctl_bitmap()
Message-ID: <aAo250IiFOC1Hggg@macbook.lan>
References: <20250424103841.94828-1-roger.pau@citrix.com>
 <041d4bd5-962c-4600-b436-0ec214a6c6ca@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <041d4bd5-962c-4600-b436-0ec214a6c6ca@citrix.com>

On Thu, Apr 24, 2025 at 12:41:43PM +0100, Andrew Cooper wrote:
> On 24/04/2025 11:38 am, Roger Pau Monne wrote:
> > There's an off-by-one when calculating the last byte in the input array to
> > bitmap_to_xenctl_bitmap(), which leads to bitmaps with sizes multiple of 8
> > to over-read and incorrectly use a byte past the end of the array.
> 
> /sigh
> 
> > While there also ensure that bitmap_to_xenctl_bitmap() is not called with a
> > bitmap of 0 length.
> >
> > Fixes: 288c4641c80d ('xen: simplify bitmap_to_xenctl_bitmap for little endian')
> > Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> 
> You ought to note that this is only not getting an XSA because
> 288c4641c80d isn't in a released Xen yet.

Yeah, I did explicitly check this wasn't backported to any stable
branches.

> > ---
> >  xen/common/bitmap.c | 8 +++++++-
> >  1 file changed, 7 insertions(+), 1 deletion(-)
> >
> > diff --git a/xen/common/bitmap.c b/xen/common/bitmap.c
> > index bf1a7fd91e36..415d6bc074f6 100644
> > --- a/xen/common/bitmap.c
> > +++ b/xen/common/bitmap.c
> > @@ -369,6 +369,12 @@ int bitmap_to_xenctl_bitmap(struct xenctl_bitmap *xenctl_bitmap,
> >      const uint8_t *bytemap;
> >      uint8_t last, *buf = NULL;
> >  
> > +    if ( !nbits )
> > +    {
> > +	ASSERT_UNREACHABLE();
> > +	return -EILSEQ;
> > +    }
> 
> I don't see any hypercalls performing a bits==0 check, so I expect this
> is reachable.

bitmap_to_xenctl_bitmap() has just two callers, one passes nr_cpu_ids,
the other MAX_NUMNODES.  I think there are no callers that pass 0,
much less from hypercall provided values.

> > +
> >      if ( !IS_ENABLED(LITTLE_ENDIAN) )
> >      {
> >          buf = xmalloc_array(uint8_t, xen_bytes);
> > @@ -396,7 +402,7 @@ int bitmap_to_xenctl_bitmap(struct xenctl_bitmap *xenctl_bitmap,
> >       * their loops to 8 bits. Ensure we clear those left over bits so as to
> >       * prevent surprises.
> >       */
> > -    last = bytemap[nbits / 8];
> > +    last = bytemap[(nbits - 1) / 8];
> >      if ( nbits % 8 )
> >          last &= (1U << (nbits % 8)) - 1;
> >  
> 
> This (preexisting) logic is mad.  The overwhelming majority of cases are
> going to be a multiple of 8, and as you notice, the 0 case can't be
> fixed like this.

It's indeed a weird logic.  The usage of last should be restricted to
nbits % 8 != 0, and the rest of the cases handled directly by the
copy_to_guest() call above this logic.

> It should all be inside a copy_bytes conditional as is done in
> xenctl_bitmap_to_bitmap().

I could do it like that, but seeing the values passed by the only two
callers it seemed less churn to add early check and assert.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Apr 24 13:14:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Apr 2025 13:14:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.966302.1356556 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7wP4-0007ud-UV; Thu, 24 Apr 2025 13:14:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 966302.1356556; Thu, 24 Apr 2025 13:14: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 1u7wP4-0007uW-RM; Thu, 24 Apr 2025 13:14:10 +0000
Received: by outflank-mailman (input) for mailman id 966302;
 Thu, 24 Apr 2025 13:14: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=YKuC=XK=tum.de=f.specht@srs-se1.protection.inumbo.net>)
 id 1u7wP3-0007uQ-HL
 for xen-devel@lists.xenproject.org; Thu, 24 Apr 2025 13:14:09 +0000
Received: from postout1.mail.lrz.de (postout1.mail.lrz.de [129.187.255.137])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 00b0724d-210e-11f0-9eb2-5ba50f476ded;
 Thu, 24 Apr 2025 15:14:07 +0200 (CEST)
Received: from lxmhs51.srv.lrz.de (localhost [127.0.0.1])
 by postout1.mail.lrz.de (Postfix) with ESMTP id 4ZjxJG6VsfzyZg;
 Thu, 24 Apr 2025 15:14:06 +0200 (CEST)
Received: from postout1.mail.lrz.de ([127.0.0.1])
 by lxmhs51.srv.lrz.de (lxmhs51.srv.lrz.de [127.0.0.1]) (amavis, port 20024)
 with LMTP id HlZ1plk49MFf; Thu, 24 Apr 2025 15:14:06 +0200 (CEST)
Received: from localhost (unknown [IPv6:2001:4ca0:0:f297:754:306c:a470:cbec])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange ECDHE (prime256v1) server-signature RSA-PSS (2048 bits)
 server-digest SHA256) (Client did not present a certificate)
 by postout1.mail.lrz.de (Postfix) with ESMTPSA id 4ZjxJG1hH8zyZp;
 Thu, 24 Apr 2025 15:14:06 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 00b0724d-210e-11f0-9eb2-5ba50f476ded
Authentication-Results: postout.lrz.de (amavis); dkim=pass (2048-bit key)
 reason="pass (just generated, assumed good)" header.d=tum.de
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tum.de; h=
	in-reply-to:content-transfer-encoding:content-disposition
	:content-type:content-type:mime-version:references:message-id
	:subject:subject:from:from:date:date:received:received; s=
	tu-postout21; t=1745500446; bh=NYmCpO7c5e4FUCtGBLASRh5aVXe1xTdNm
	7J7Qh3h864=; b=h0SeKLukXASfnISwKyIgsykdlUHo/T4SLih3L3BiiV+Dq1+ij
	LfYRKPxJDhYadRnYDNsPHYslC8eGEe8+uRLbIyenLunR/NE0OXF1B1R6gwhJHQtU
	xL1zm7UsvV4ckeOIe+ls8rXFTFMwvSs5G0id3OdoC9BeaQDi5vzFVRqbHmSfed9W
	R/LXE9ZkpCKebepM9mBYJon6n2zo9RKxQE/xXfzlEm+BHj8b1Hd3jjL0zC7XMEUK
	S10yzmx777z8/wSTHxWuXJgvRsfQJM8WY1F0M/s7S6shlhXnPfrbRuensF+sETAW
	wvD+x7MyCi8aGu3gLPGhslgAOOYbTeirE8oTw==
X-Virus-Scanned: by amavisd-new at lrz.de in lxmhs51.srv.lrz.de
X-Spam-Flag: NO
X-Spam-Score: -2.872
X-Spam-Level:
X-Spam-Status: No, score=-2.872 tagged_above=-999 required=5
 tests=[ALL_TRUSTED=-1, BAYES_00=-1.9, DMARC_ADKIM_RELAXED=0.001,
 DMARC_ASPF_RELAXED=0.001, DMARC_POLICY_NONE=0.001,
 LRZ_CT_PLAIN_ISO8859_1=0.001, LRZ_DMARC_FAIL=0.001,
 LRZ_DMARC_FAIL_NONE=0.001, LRZ_DMARC_POLICY=0.001, LRZ_DMARC_TUM_FAIL=0.001,
 LRZ_DMARC_TUM_REJECT=3.5, LRZ_DMARC_TUM_REJECT_PO=-3.5,
 LRZ_ENVFROM_FROM_MATCH=0.001, LRZ_ENVFROM_TUM_S=0.001,
 LRZ_FROM_ENVFROM_ALIGNED_STRICT=0.001, LRZ_FROM_HAS_A=0.001,
 LRZ_FROM_HAS_AAAA=0.001, LRZ_FROM_HAS_MDOM=0.001, LRZ_FROM_HAS_MX=0.001,
 LRZ_FROM_HOSTED_DOMAIN=0.001, LRZ_FROM_NAME_IN_ADDR=0.001,
 LRZ_FROM_PHRASE=0.001, LRZ_FROM_PRE_SUR_PHRASE=0.001, LRZ_FROM_TUM_S=0.001,
 LRZ_HAS_CT=0.001, LRZ_HAS_IN_REPLY_TO=0.001, LRZ_HAS_MIME_VERSION=0.001,
 LRZ_HAS_SPF=0.001, LRZ_MSGID_LONG_50=0.001, LRZ_MSGID_NO_FQDN=0.001,
 LRZ_NO_UA_HEADER=0.001, LRZ_SUBJ_FW_RE=0.001] autolearn=no autolearn_force=no
Date: Thu, 24 Apr 2025 15:13:58 +0200
From: Fabian Specht <f.specht@tum.de>
To: Andrew Cooper <andrew.cooper3@citrix.com>, 
	xen-devel@lists.xenproject.org
Cc: manuel.andreas@tum.de
Subject: Re: UBSan bug in real mode fpu emulation
Message-ID: <lfakyg5jqdnbm6kleldta52xm6pzdy2fikr6ydxw5rs4wplefv@ymabtpq6fdvq>
References: <l2jnq5cxgkzcdkndp3mjf76nd7wdp2pbstkqo7llaarmbfqdge@bxdydela4rcf>
 <7e3b941d-ec4e-4158-8844-a3cf236c8d4d@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <7e3b941d-ec4e-4158-8844-a3cf236c8d4d@citrix.com>

> > if ( !s->rex_prefix )
> > {
> > 	/* Convert 32-bit real/vm86 to 32-bit prot format. */
> > 	unsigned int fip = fpstate.env.mode.real.fip_lo +
> > 					   (fpstate.env.mode.real.fip_hi << 16);
> > 	unsigned int fdp = fpstate.env.mode.real.fdp_lo +
> > 					   (fpstate.env.mode.real.fdp_hi << 16);
> > 	unsigned int fop = fpstate.env.mode.real.fop;
> >
> > 	fpstate.env.mode.prot.fip = fip & 0xf;
> > 	fpstate.env.mode.prot.fcs = fip >> 4;
> > 	fpstate.env.mode.prot.fop = fop;
> > 	fpstate.env.mode.prot.fdp = fdp & 0xf;
> > 	fpstate.env.mode.prot.fds = fdp >> 4;
> > }

> Several things. First, please always the UBSAN analysis from the crash.

(XEN) UBSAN: Undefined behaviour in arch/x86/x86_emulate/blk.c:87:66
(XEN) left shift of 65535 by 16 places cannot be represented in type 'int'
(XEN) ----[ Xen-4.20.0  x86_64  debug=y ubsan=y  Tainted:     H  ]----
(XEN) CPU:    2
(XEN) RIP:    e008:[<ffff82d04031fe8d>] common/ubsan/ubsan.c#ubsan_epilogue+0xa/0xd2
(XEN) RFLAGS: 0000000000010092   CONTEXT: hypervisor (d1v0)
(XEN) rax: 0000000000000000   rbx: ffff830176baf6c8   rcx: 00000000000004ce
(XEN) rdx: ffff830176baffd0   rsi: 0000000000000002   rdi: ffff830176baf6c8
(XEN) rbp: ffff830176baf660   rsp: ffff830176baf650   r8:  00000000ffffffff
(XEN) r9:  0000000000000000   r10: ffff830176baf670   r11: 0000000000000000
(XEN) r12: ffff82d040877992   r13: 0000000000000010   r14: 000000000000ffff
(XEN) r15: ffff82d040877992   cr0: 0000000080050033   cr4: 00000000003506e0
(XEN) cr3: 000000010089c000   cr2: 0000000000000000
(XEN) fsb: 0000000000000000   gsb: 0000000000000000   gss: 0000000000000000
(XEN) ds: 0000   es: 0000   fs: 0033   gs: 0033   ss: 0000   cs: e008
(XEN) Xen code around <ffff82d04031fe8d> (common/ubsan/ubsan.c#ubsan_epilogue+0xa/0xd2):
(XEN)  89 e5 41 54 53 48 89 fb <0f> 0b 48 8d 3d 3a b6 36 00 e8 f3 95 00 00 48 85
(XEN) Xen stack trace from rsp=ffff830176baf650:
(XEN)    ffffffffffffffff ffff82d040877992 ffff830176baf6f8 ffff82d040320d8e
(XEN)    ffff82d0405603e3 ffff003533353536 ffff830176bafe10 ffff830176baf728
(XEN)    ffff82d04056076d ffff82e002017b00 0000000776003631 ffff830100882000
(XEN)    ffff830176baf770 0000000000000117 ffff830176baf778 0000000000000202
(XEN)    ffff830100bd8fd0 000000000000ffff 000000000000001c 00000000ffffffff
(XEN)    000000000000ffff ffff830176baf7b8 ffff82d04053c6a0 ffff830176bafce8
(XEN)    0000000000117fd0 0000000000000001 ffffffff76bafe08 ffffffffffffffff
(XEN)    ffffffffffffffff ffffffffffffffff ffff830176baf770 0000000100000001
(XEN)    ffff83010095b000 0000000000000001 0000000000117fd0 0000000076bafd68
(XEN)    ffff82e002017b00 0000000000117fd0 0000000300000003 0000000000000117
(XEN)    0000000000000001 000000000000001c ffff830100bd8fd0 ffff830176bafce8
(XEN)    ffff830176bafaa0 ffff830176baf808 ffff82d0404176a8 ffff830176bafba8
(XEN)    0000000000000000 0000000000117fd0 ffff830176bafce8 ffff830176bafaa0
(XEN)    ffff82d0404175e8 ffff830176bafa30 000000000000001c ffff830176baf880
(XEN)    ffff82d040545817 ffff830176bafce8 ffff830100000000 ffff82d07fffc140
(XEN)    ffff830176bafb18 ffff830176bafba8 ffff830100000080 0000000000010010
(XEN)    ffff83010000000b 0000000000000001 ffff830176bafef8 0000000000000000
(XEN)    ffff8301795d0010 0000000000000000 ffff830176bafc10 ffff82d0405e8400
(XEN)    ffff830176bafa9c ffff830176bafa24 ffff830176baf9c0 0000000000000000
(XEN)    0000000000000000 ffff830176bafc30 ffff82d0405d8d6b ffff830176baf968
(XEN) Xen call trace:
(XEN)    [<ffff82d04031fe8d>] R common/ubsan/ubsan.c#ubsan_epilogue+0xa/0xd2
(XEN)    [<ffff82d040320d8e>] F __ubsan_handle_shift_out_of_bounds+0x11c/0x1d1
(XEN)    [<ffff82d04053c6a0>] F x86_emul_blk+0x3d8/0x117d
(XEN)    [<ffff82d0404176a8>] F arch/x86/hvm/emulate.c#hvmemul_blk+0xc0/0x138
(XEN)    [<ffff82d040545817>] F x86emul_fpu+0x207e/0x819b
(XEN)    [<ffff82d0405e8400>] F x86_emulate+0x1527b/0x3ecb3
(XEN)    [<ffff82d040615d2a>] F x86_emulate_wrapper+0x87/0x216
(XEN)    [<ffff82d040418c41>] F arch/x86/hvm/emulate.c#_hvm_emulate_one+0x256/0x60f
(XEN)    [<ffff82d04041900c>] F hvm_emulate_one+0x12/0x14
(XEN)    [<ffff82d04042d239>] F hvm_ud_intercept+0x1e7/0x4c1
(XEN)    [<ffff82d0403dbd90>] F svm_vmexit_handler+0x1bc1/0x2d70
(XEN)    [<ffff82d040203540>] F svm_stgi_label+0x5/0x15
(XEN) 

> There are several different ways that shifts go wrong, and I suspect
> this is a shift into a sign bit, which is notable given the unsigned
> underlying type.

Might be, but I am not entirely sure. Either way, it should be fixed
through a simple cast to unsigned int I think.

> Also, are you aware that the test isn't properly in Real Mode? It's in
> so-called unreal mode (not actually a real mode, but a consequence of
> how the segment registers work), which is relevant to how you manage to
> re-enter the emulator for FLDENV.

Yes I am aware. But the bug should be triggered regardless of the
current mode, right?

~Fabian


From xen-devel-bounces@lists.xenproject.org Thu Apr 24 13:30:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Apr 2025 13:30:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.966330.1356565 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7weY-0002cB-9x; Thu, 24 Apr 2025 13:30:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 966330.1356565; Thu, 24 Apr 2025 13:30: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 1u7weY-0002c4-76; Thu, 24 Apr 2025 13:30:10 +0000
Received: by outflank-mailman (input) for mailman id 966330;
 Thu, 24 Apr 2025 13:30: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=Yjef=XK=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1u7weW-0002by-4Q
 for xen-devel@lists.xenproject.org; Thu, 24 Apr 2025 13:30:08 +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 3c65382a-2110-11f0-9eb2-5ba50f476ded;
 Thu, 24 Apr 2025 15:30:06 +0200 (CEST)
Received: by mail-ej1-x632.google.com with SMTP id
 a640c23a62f3a-ace333d5f7bso184470566b.3
 for <xen-devel@lists.xenproject.org>; Thu, 24 Apr 2025 06:30:06 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-64-225.play-internet.pl.
 [109.243.64.225]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-ace59820923sm108386366b.33.2025.04.24.06.30.04
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 24 Apr 2025 06:30:04 -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: 3c65382a-2110-11f0-9eb2-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1745501406; x=1746106206; darn=lists.xenproject.org;
        h=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=Rzguls3Vu8q5nSCIy1UEvoc69a/RTh12WQpaMmqr528=;
        b=ByKcizj98nxZyNzKR0wcCqjJ+WnMd44hYNL96Zznz7BfNL5Rz0AjCnm6CQRaNN+FSk
         9BMYaQIp7bp02rR17AKWfDNwkpe5BjaMBkHx9qwklt2GTEs7/8NmO7Ltn+pdpm1yqd2f
         NB8RWPsz7L+5pPZQZZ5CtIo98RhDQ7ddyhMzr7AiNPQ5ZRPe7PRSOjY5VlPJAlrhohQB
         NtsmUdszWO7xnAU9pJDTJibapW8bIJ9UQvmq88WW6THEbdvaZHPXq7hxzwLmPPThRZkc
         fheoozem9Gryc8zeFCoe0keN+5+579MW81sxIqDrIkSuw8NlTR82Ge3yfEHJReAn1d3k
         vUPg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745501406; x=1746106206;
        h=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=Rzguls3Vu8q5nSCIy1UEvoc69a/RTh12WQpaMmqr528=;
        b=HzkC+fVJItVb/8oQDOOjr5AHyiK1s1Vz+jJfAXbyiagUiCcUFvOrdE7riCEfH+kxNE
         V7QoK8QA6xBpX82QQwy80AGt3/j26561Ba+OY80/An2/t0OTnDe9ER3NJ1kMMdmUaGIh
         5xajHw3aZe5HybkTuUflGT9VqbptpBvoI29jtSGm+mzBMnoimPwMhQVt6DCPOvcDlVw8
         ahTeqTRp8U5QFhCVTK19Eww0HO5tmX01YLI4esNXtfHVSMfK8oMSxAMSE6dPFlwhMpX8
         wYw7s2ME5yMVFqngmA+S7drYHXHAlaip2iYFeIIETflmHJG86WVjhsoJPARFXECbS9RD
         QdZw==
X-Forwarded-Encrypted: i=1; AJvYcCWJ57yt3aoWtymbqoZsLHAnUYs/ulBlgjU+/hUtsptMJ/ObY5b1dGk0hDLQKP9NTM//Y6JewpvS+Bw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwwN4vUyXHx8B5tx49VVGx9IHDbvI9tHDPGjHC7egJU57w6H27E
	otQl4QZrBNWh5hjaOocR4jbRB/DAriMGgQ58NNy4V6KyT38EAyjY
X-Gm-Gg: ASbGncu2MiNBK3hVMG8V8OkTOMnPD3E12wFbpa958jJ7r3EqKLb+B/J3eE5lz8AvBN8
	Z6p9ZzKYKO9r3xXF/0mKT9zA/27ObFQboa0FIJ3O2WTfjTH9C658C6G19itNEvFBCDpIIegD4+a
	0qn40QllTk2HXHj5qHe5c/8uNzyXfIAosWXFltf4DEg1ZPS2/UR4ZLTAL0SXIhKeTNyNdLv8qCB
	ywxQYT6Vzrgu5MVjywL+F4vIMGqage0voaANFuaGsD8MrujWjne3tS8yKXmA1ypg0AbloI04pGB
	6puB7sXHnIxvdWR+rTsj/br9U0W7IxZkVGd4rTNwAQlpVd4F2cME8rEKYUkOiJcC70Y0tbtpmKe
	WzOqOTvx+tjxTMkSq
X-Google-Smtp-Source: AGHT+IE7Wp/uFUjJcvanGTajBDDnv+FYDtKUstetKjn3OPu4UpDtYlkRqKaYtvbaBimUM4GTVusA/Q==
X-Received: by 2002:a17:907:a4e:b0:abf:6e6a:885c with SMTP id a640c23a62f3a-ace57283e71mr257186566b.23.1745501405419;
        Thu, 24 Apr 2025 06:30:05 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------fZiyz4mApGCz5FywkcbWgRT2"
Message-ID: <9ecef427-2b2c-4495-abd9-716e7c844982@gmail.com>
Date: Thu, 24 Apr 2025 15:30:03 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 03/14] xen/riscv: introduce ioremap()
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1744126720.git.oleksii.kurochko@gmail.com>
 <6d91eeabe2735de93bfcf2a2420e2059a8f35e52.1744126720.git.oleksii.kurochko@gmail.com>
 <84089b6d-efeb-4613-85b9-eb10d11d7338@suse.com>
 <f315bc11-c537-4dca-9e62-a6d3f02733e4@gmail.com>
 <6b226b72-11a4-4004-b42d-0e280de83539@suse.com>
 <bbfdc4a0-54f0-4a9d-aa6d-2cf85ec03411@gmail.com>
 <a71db245-5b0b-435e-8e58-cb43c5162862@suse.com>
 <7d5356a5-53b7-4d1b-82ff-bc6f81a2f445@gmail.com>
 <6f50dea4-60e6-46b0-9363-d943ba553334@suse.com>
 <676c1627-95a0-46a0-b132-3f3ac2fdda01@gmail.com>
 <28142d86-0845-4bb3-a0bb-e4903f898abf@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <28142d86-0845-4bb3-a0bb-e4903f898abf@suse.com>

This is a multi-part message in MIME format.
--------------fZiyz4mApGCz5FywkcbWgRT2
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 4/22/25 11:14 AM, Jan Beulich wrote:
> On 22.04.2025 10:40, Oleksii Kurochko wrote:
>> On 4/17/25 4:49 PM, Jan Beulich wrote:
>>> On 17.04.2025 16:37, Oleksii Kurochko wrote:
>>>> On 4/17/25 4:24 PM, Jan Beulich wrote:
>>>>> On 17.04.2025 16:20, Oleksii Kurochko wrote:
>>>>>> On 4/15/25 1:02 PM, Jan Beulich wrote:
>>>>>>> On 15.04.2025 12:29, Oleksii Kurochko wrote:
>>>>>>>> On 4/10/25 5:13 PM, Jan Beulich wrote:
>>>>>>>>> On 08.04.2025 17:57, Oleksii Kurochko wrote:
>>>>>>>>>> Based on RISC-V unpriviliged spec ( Version 20240411 ):
>>>>>>>>>> ```
>>>>>>>>>> For implementations that conform to the RISC-V Unix Platform Specification,
>>>>>>>>>> I/O devices and DMA operations are required to access memory coherently and
>>>>>>>>>> via strongly ordered I/O channels. Therefore, accesses to regular main memory
>>>>>>>>>> regions that are concurrently accessed by external devices can also use the
>>>>>>>>>> standard synchronization mechanisms. Implementations that do not conform
>>>>>>>>>> to the Unix Platform Specification and/or in which devices do not access
>>>>>>>>>> memory coherently will need to use mechanisms
>>>>>>>>>> (which are currently platform-specific or device-specific) to enforce
>>>>>>>>>> coherency.
>>>>>>>>>>
>>>>>>>>>> I/O regions in the address space should be considered non-cacheable
>>>>>>>>>> regions in the PMAs for those regions. Such regions can be considered coherent
>>>>>>>>>> by the PMA if they are not cached by any agent.
>>>>>>>>>> ```
>>>>>>>>>> and [1]:
>>>>>>>>>> ```
>>>>>>>>>> The current riscv linux implementation requires SOC system to support
>>>>>>>>>> memory coherence between all I/O devices and CPUs. But some SOC systems
>>>>>>>>>> cannot maintain the coherence and they need support cache clean/invalid
>>>>>>>>>> operations to synchronize data.
>>>>>>>>>>
>>>>>>>>>> Current implementation is no problem with SiFive FU540, because FU540
>>>>>>>>>> keeps all IO devices and DMA master devices coherence with CPU. But to a
>>>>>>>>>> traditional SOC vendor, it may already have a stable non-coherency SOC
>>>>>>>>>> system, the need is simply to replace the CPU with RV CPU and rebuild
>>>>>>>>>> the whole system with IO-coherency is very expensive.
>>>>>>>>>> ```
>>>>>>>>>>
>>>>>>>>>> and the fact that all known ( to me ) CPUs that support the H-extension
>>>>>>>>>> and that ones is going to be supported by Xen have memory coherency
>>>>>>>>>> between all I/O devices and CPUs, so it is currently safe to use the
>>>>>>>>>> PAGE_HYPERVISOR attribute.
>>>>>>>>>> However, in cases where a platform does not support memory coherency, it
>>>>>>>>>> should support CMO extensions and Svpbmt. In this scenario, updates to
>>>>>>>>>> ioremap will be necessary.
>>>>>>>>>> For now, a compilation error will be generated to ensure that the need to
>>>>>>>>>> update ioremap() is not overlooked.
>>>>>>>>>>
>>>>>>>>>> [1]https://patchwork.kernel.org/project/linux-riscv/patch/1555947870-23014-1-git-send-email-guoren@kernel.org/
>>>>>>>>> But MMIO access correctness isn't just a matter of coherency. There may not
>>>>>>>>> be any caching involved in most cases, or else you may observe significantly
>>>>>>>>> delayed or even dropped (folded with later ones) writes, and reads may be
>>>>>>>>> serviced from the cache instead of going to actual MMIO. Therefore ...
>>>>>>>>>
>>>>>>>>>> --- a/xen/arch/riscv/Kconfig
>>>>>>>>>> +++ b/xen/arch/riscv/Kconfig
>>>>>>>>>> @@ -15,6 +15,18 @@ config ARCH_DEFCONFIG
>>>>>>>>>>       	string
>>>>>>>>>>       	default "arch/riscv/configs/tiny64_defconfig"
>>>>>>>>>>       
>>>>>>>>>> +config HAS_SVPBMT
>>>>>>>>>> +	bool
>>>>>>>>>> +	help
>>>>>>>>>> +	  This config enables usage of Svpbmt ISA-extension ( Supervisor-mode:
>>>>>>>>>> +	  page-based memory types).
>>>>>>>>>> +
>>>>>>>>>> +	  The memory type for a page contains a combination of attributes
>>>>>>>>>> +	  that indicate the cacheability, idempotency, and ordering
>>>>>>>>>> +	  properties for access to that page.
>>>>>>>>>> +
>>>>>>>>>> +	  The Svpbmt extension is only available on 64-bit cpus.
>>>>>>>>> ... I kind of expect this extension (or anything else that there might be) will need
>>>>>>>>> making use of.
>>>>>>>> In cases where the Svpbmt extension isn't available, PMA (Physical Memory Attributes)
>>>>>>>> is used to control which memory regions are cacheable, non-cacheable, readable, writable,
>>>>>>>> etc. PMA is configured in M-mode by the firmware (e.g., OpenSBI), as is done in Andes
>>>>>>>> cores, or it can be fixed at design time, as in SiFive cores.
>>>>>>> How would things work if there was a need to map a RAM page uncacheable (via
>>>>>>> ioremap() or otherwise)?
>>>>>> My understanding is that Svpbmt is only needed when someone wants to change the memory
>>>>>> attribute of a page set by PMA.
>>>>>>
>>>>>> The question is if non-cacheable RAM page is really needed if we have a coherency?
>>>>> Aiui coherency here is among CPUs.
>>>> ```
>>>> For implementations that conform to the RISC-V Unix Platform Specification,
>>>> I/O devices and DMA operations are required to access memory coherently and
>>>> via strongly ordered I/O channels. Therefore, accesses to regular main memory
>>>> regions that are concurrently accessed by external devices can also use the
>>>> standard synchronization mechanisms. Implementations that do not conform
>>>> to the Unix Platform Specification and/or in which devices do not access
>>>> memory coherently will need to use mechanisms
>>>> (which are currently platform-specific or device-specific) to enforce
>>>> coherency.
>>>> ```
>>>> Based on this from the spec, coherency here is not only among CPUs.
>>>>
>>>>
>>>>> Properties of devices in the system are
>>>>> largely unknown?
>>>> Yes, but still not sure what kind of property requires ioremap() which won't work
>>>> without Svpmbt. Could you please tell me an example?
>>> Well, above you said they all need to access memory coherently. That's the
>>> "property" I was referring to.
>> Do you mean that device could have a property which tell that it would like to have non-cachable
>> region used for that? I haven't seen such property in device tree files.
>>
>> Do we have in Xen cases when Xen wants to have map part of RAM as non-cachebale and it is only the
>> one option?
> On x86 we have the case that IOMMUs may access memory non-coherently. This is
> particular means that IOMMU page table updates (which necessarily live in RAM)
> need to be done quite carefully. As it's all our code, we deal with the
> situation by issuing cache flushes, avoiding the need for UC mappings.
>
> Graphics engines may have similar constraints, aiui. With the driver code not
> being part of Xen, we wouldn't be able to use a similar "simplification" there.
> UC mappings would be pretty much unavoidable.

For this case, it would be better to have Svpmbt.

I would like to noted that Svpmbt isn't supported by RV32 architectures. For such cases, it will be still
needed to play with PMA.
I found today a patch in Linux kernel which does something similar to what I wrote in one of my previous
replies:
   [0]https://lore.kernel.org/all/20241102000843.1301099-1-samuel.holland@sifive.com/
In the cover letter [0] it is mentioned the following:
   On some RISC-V platforms, including StarFive JH7100 and ESWIN EIC7700,
   RAM is mapped to multiple physical address ranges, with each alias
   having a different set of statically-determined Physical Memory
   Attributes (PMAs). Software selects the PMAs for a page by choosing a
   PFN from the corresponding physical address range. On these platforms,
   this is the only way to allocate noncached memory for use with
   noncoherent DMA.

So firmware should configure PMAs so some part of RAM is noncached and then kernel get this info based
on the binding:
   https://patchew.org/linux/20241102000843.1301099-1-samuel.holland@sifive.com/20241102000843.1301099-2-samuel.holland@sifive.com/

Considering that this feature isn't available even in Linux kernel, we can start with assumption that all
our SoCs will support Svpmbt.

We don't really care about StarFive JH7100 as it doesn't support H extension, but we potentially should care
about ESWIN EIC7700, which support H extension and doesn't support Svpmbt extension according to a datasheet
publicly available:
   Each EIC7700X core is configured to support the RV64I base ISA, as well as the Multiply (M), Atomic(A),
   Single-Precision Floating Point (F), Double-Precision Floating Point (D), Compressed (C), CSR
   Instructions (Zicsr), Instruction-Fetch Fence (Zifencei), Address Calculation (Zba), Basic Bit
   Manipulation (Zbb), and Count Overflow and Mode-Based Filtering (Sscofpmf) RISC‑V extensions. This
   is captured by the RISC‑V extension string: RV64GC_Zba_Zbb_Sscofpmf.

>
>> I am also thinking why it can't be used cachable region + barrier (if we don't have memory coherency
>> for everything).
> Not sure what exactly you're asking here (if anything). An answer would very
> likely depend on the specific kind of barrier you're thinking about. The
> question would be what, if any, effect a barrier would have on the cache(s).

I confused barrier with cache flushes (when I wrote that I thought about the case of DMA that we don't really
should have requirement of non-cachable memory for DMA as it is enough to have memory fence between use of DMA
memory and MMIO that triggers the dma), basically I meant what you wrote above about x86's IOMMUs.

~ Oleksii

>
>> Anyway, if it isn't an option to have mapped cacheble region + barrier then there is no any choice
>> and the support of Svpmbt is required.
> Quite possible.
>
> Jan
--------------fZiyz4mApGCz5FywkcbWgRT2
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 4/22/25 11:14 AM, Jan Beulich wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:28142d86-0845-4bb3-a0bb-e4903f898abf@suse.com">
      <pre wrap="" class="moz-quote-pre">On 22.04.2025 10:40, Oleksii Kurochko wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">
On 4/17/25 4:49 PM, Jan Beulich wrote:
</pre>
        <blockquote type="cite">
          <pre wrap="" class="moz-quote-pre">On 17.04.2025 16:37, Oleksii Kurochko wrote:
</pre>
          <blockquote type="cite">
            <pre wrap="" class="moz-quote-pre">On 4/17/25 4:24 PM, Jan Beulich wrote:
</pre>
            <blockquote type="cite">
              <pre wrap="" class="moz-quote-pre">On 17.04.2025 16:20, Oleksii Kurochko wrote:
</pre>
              <blockquote type="cite">
                <pre wrap="" class="moz-quote-pre">On 4/15/25 1:02 PM, Jan Beulich wrote:
</pre>
                <blockquote type="cite">
                  <pre wrap="" class="moz-quote-pre">On 15.04.2025 12:29, Oleksii Kurochko wrote:
</pre>
                  <blockquote type="cite">
                    <pre wrap="" class="moz-quote-pre">On 4/10/25 5:13 PM, Jan Beulich wrote:
</pre>
                    <blockquote type="cite">
                      <pre wrap="" class="moz-quote-pre">On 08.04.2025 17:57, Oleksii Kurochko wrote:
</pre>
                      <blockquote type="cite">
                        <pre wrap="" class="moz-quote-pre">Based on RISC-V unpriviliged spec ( Version 20240411 ):
```
For implementations that conform to the RISC-V Unix Platform Specification,
I/O devices and DMA operations are required to access memory coherently and
via strongly ordered I/O channels. Therefore, accesses to regular main memory
regions that are concurrently accessed by external devices can also use the
standard synchronization mechanisms. Implementations that do not conform
to the Unix Platform Specification and/or in which devices do not access
memory coherently will need to use mechanisms
(which are currently platform-specific or device-specific) to enforce
coherency.

I/O regions in the address space should be considered non-cacheable
regions in the PMAs for those regions. Such regions can be considered coherent
by the PMA if they are not cached by any agent.
```
and [1]:
```
The current riscv linux implementation requires SOC system to support
memory coherence between all I/O devices and CPUs. But some SOC systems
cannot maintain the coherence and they need support cache clean/invalid
operations to synchronize data.

Current implementation is no problem with SiFive FU540, because FU540
keeps all IO devices and DMA master devices coherence with CPU. But to a
traditional SOC vendor, it may already have a stable non-coherency SOC
system, the need is simply to replace the CPU with RV CPU and rebuild
the whole system with IO-coherency is very expensive.
```

and the fact that all known ( to me ) CPUs that support the H-extension
and that ones is going to be supported by Xen have memory coherency
between all I/O devices and CPUs, so it is currently safe to use the
PAGE_HYPERVISOR attribute.
However, in cases where a platform does not support memory coherency, it
should support CMO extensions and Svpbmt. In this scenario, updates to
ioremap will be necessary.
For now, a compilation error will be generated to ensure that the need to
update ioremap() is not overlooked.

[1]<a class="moz-txt-link-freetext" href="https://patchwork.kernel.org/project/linux-riscv/patch/1555947870-23014-1-git-send-email-guoren@kernel.org/">https://patchwork.kernel.org/project/linux-riscv/patch/1555947870-23014-1-git-send-email-guoren@kernel.org/</a>
</pre>
                      </blockquote>
                      <pre wrap="" class="moz-quote-pre">But MMIO access correctness isn't just a matter of coherency. There may not
be any caching involved in most cases, or else you may observe significantly
delayed or even dropped (folded with later ones) writes, and reads may be
serviced from the cache instead of going to actual MMIO. Therefore ...

</pre>
                      <blockquote type="cite">
                        <pre wrap="" class="moz-quote-pre">--- a/xen/arch/riscv/Kconfig
+++ b/xen/arch/riscv/Kconfig
@@ -15,6 +15,18 @@ config ARCH_DEFCONFIG
     	string
     	default "arch/riscv/configs/tiny64_defconfig"
     
+config HAS_SVPBMT
+	bool
+	help
+	  This config enables usage of Svpbmt ISA-extension ( Supervisor-mode:
+	  page-based memory types).
+
+	  The memory type for a page contains a combination of attributes
+	  that indicate the cacheability, idempotency, and ordering
+	  properties for access to that page.
+
+	  The Svpbmt extension is only available on 64-bit cpus.
</pre>
                      </blockquote>
                      <pre wrap="" class="moz-quote-pre">... I kind of expect this extension (or anything else that there might be) will need
making use of.
</pre>
                    </blockquote>
                    <pre wrap="" class="moz-quote-pre">In cases where the Svpbmt extension isn't available, PMA (Physical Memory Attributes)
is used to control which memory regions are cacheable, non-cacheable, readable, writable,
etc. PMA is configured in M-mode by the firmware (e.g., OpenSBI), as is done in Andes
cores, or it can be fixed at design time, as in SiFive cores.
</pre>
                  </blockquote>
                  <pre wrap="" class="moz-quote-pre">How would things work if there was a need to map a RAM page uncacheable (via
ioremap() or otherwise)?
</pre>
                </blockquote>
                <pre wrap="" class="moz-quote-pre">My understanding is that Svpbmt is only needed when someone wants to change the memory
attribute of a page set by PMA.

The question is if non-cacheable RAM page is really needed if we have a coherency?
</pre>
              </blockquote>
              <pre wrap="" class="moz-quote-pre">Aiui coherency here is among CPUs.
</pre>
            </blockquote>
            <pre wrap="" class="moz-quote-pre">```
For implementations that conform to the RISC-V Unix Platform Specification,
I/O devices and DMA operations are required to access memory coherently and
via strongly ordered I/O channels. Therefore, accesses to regular main memory
regions that are concurrently accessed by external devices can also use the
standard synchronization mechanisms. Implementations that do not conform
to the Unix Platform Specification and/or in which devices do not access
memory coherently will need to use mechanisms
(which are currently platform-specific or device-specific) to enforce
coherency.
```
Based on this from the spec, coherency here is not only among CPUs.


</pre>
            <blockquote type="cite">
              <pre wrap="" class="moz-quote-pre">Properties of devices in the system are
largely unknown?
</pre>
            </blockquote>
            <pre wrap="" class="moz-quote-pre">Yes, but still not sure what kind of property requires ioremap() which won't work
without Svpmbt. Could you please tell me an example?
</pre>
          </blockquote>
          <pre wrap="" class="moz-quote-pre">Well, above you said they all need to access memory coherently. That's the
"property" I was referring to.
</pre>
        </blockquote>
        <pre wrap="" class="moz-quote-pre">
Do you mean that device could have a property which tell that it would like to have non-cachable
region used for that? I haven't seen such property in device tree files.

Do we have in Xen cases when Xen wants to have map part of RAM as non-cachebale and it is only the
one option?
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
On x86 we have the case that IOMMUs may access memory non-coherently. This is
particular means that IOMMU page table updates (which necessarily live in RAM)
need to be done quite carefully. As it's all our code, we deal with the
situation by issuing cache flushes, avoiding the need for UC mappings.

Graphics engines may have similar constraints, aiui. With the driver code not
being part of Xen, we wouldn't be able to use a similar "simplification" there.
UC mappings would be pretty much unavoidable.</pre>
    </blockquote>
    <pre>For this case, it would be better to have Svpmbt.

I would like to noted that Svpmbt isn't supported by RV32 architectures. For such cases, it will be still
needed to play with PMA.
I found today a patch in Linux kernel which does something similar to what I wrote in one of my previous
replies:
  [0] <a class="moz-txt-link-freetext" href="https://lore.kernel.org/all/20241102000843.1301099-1-samuel.holland@sifive.com/">https://lore.kernel.org/all/20241102000843.1301099-1-samuel.holland@sifive.com/</a>
In the cover letter [0] it is mentioned the following:
  On some RISC-V platforms, including StarFive JH7100 and ESWIN EIC7700,
  RAM is mapped to multiple physical address ranges, with each alias
  having a different set of statically-determined Physical Memory
  Attributes (PMAs). Software selects the PMAs for a page by choosing a
  PFN from the corresponding physical address range. On these platforms,
  this is the only way to allocate noncached memory for use with
  noncoherent DMA.

So firmware should configure PMAs so some part of RAM is noncached and then kernel get this info based
on the binding:
  <a class="moz-txt-link-freetext" href="https://patchew.org/linux/20241102000843.1301099-1-samuel.holland@sifive.com/20241102000843.1301099-2-samuel.holland@sifive.com/">https://patchew.org/linux/20241102000843.1301099-1-samuel.holland@sifive.com/20241102000843.1301099-2-samuel.holland@sifive.com/</a>

Considering that this feature isn't available even in Linux kernel, we can start with assumption that all
our SoCs will support Svpmbt.

We don't really care about StarFive JH7100 as it doesn't support H extension, but we potentially should care
about ESWIN EIC7700, which support H extension and doesn't support Svpmbt extension according to a datasheet
publicly available:
  Each EIC7700X core is configured to support the RV64I base ISA, as well as the Multiply (M), Atomic(A),
  Single-Precision Floating Point (F), Double-Precision Floating Point (D), Compressed (C), CSR
  Instructions (Zicsr), Instruction-Fetch Fence (Zifencei), Address Calculation (Zba), Basic Bit
  Manipulation (Zbb), and Count Overflow and Mode-Based Filtering (Sscofpmf) RISC‑V extensions. This
  is captured by the RISC‑V extension string: RV64GC_Zba_Zbb_Sscofpmf.

</pre>
    <blockquote type="cite"
      cite="mid:28142d86-0845-4bb3-a0bb-e4903f898abf@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">I am also thinking why it can't be used cachable region + barrier (if we don't have memory coherency
for everything).
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Not sure what exactly you're asking here (if anything). An answer would very
likely depend on the specific kind of barrier you're thinking about. The
question would be what, if any, effect a barrier would have on the cache(s).</pre>
    </blockquote>
    <pre>I confused barrier with cache flushes (when I wrote that I thought about the case of DMA that we don't really
should have requirement of non-cachable memory for DMA as it is enough to have memory fence between use of DMA
memory and MMIO that triggers the dma), basically I meant what you wrote above about x86's IOMMUs.

~ Oleksii
</pre>
    <blockquote type="cite"
      cite="mid:28142d86-0845-4bb3-a0bb-e4903f898abf@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">Anyway, if it isn't an option to have mapped cacheble region + barrier then there is no any choice
and the support of Svpmbt is required.
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Quite possible.

Jan
</pre>
    </blockquote>
  </body>
</html>

--------------fZiyz4mApGCz5FywkcbWgRT2--


From xen-devel-bounces@lists.xenproject.org Thu Apr 24 13:41:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Apr 2025 13:41:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.966343.1356576 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7wpi-0005Gb-94; Thu, 24 Apr 2025 13:41:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 966343.1356576; Thu, 24 Apr 2025 13:41:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7wpi-0005GU-61; Thu, 24 Apr 2025 13:41:42 +0000
Received: by outflank-mailman (input) for mailman id 966343;
 Thu, 24 Apr 2025 13:41:41 +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 1u7wph-0005GO-3g
 for xen-devel@lists.xenproject.org; Thu, 24 Apr 2025 13:41:41 +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 1u7wpg-001ffi-0t;
 Thu, 24 Apr 2025 13:41:40 +0000
Received: from [2a01:e0a:1da:8420:b77:bd5:6e45:7633] (helo=l14)
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1u7wpf-00EgXS-2w;
 Thu, 24 Apr 2025 13:41: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>
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=0bCs0z5h8TGFizTQyCrHG4bQMUs8ZugPkiXUI3Afgug=; b=JJbEwZOZbXmUjS/dwH7gwKJ/fM
	Dice1FKgf9+bli8vPpPIq0B4LsSGWEqLecqya2dCmiD+5YmHyqiB0HFNifcvk8qtyXOhwgd4L8K6I
	/OoyYBYK1pr530VCkBc2UvZVnRoAyHxcn9Za7TNRJQqK1EjYvJ4feA488iT6xK+O8Saw=;
Date: Thu, 24 Apr 2025 15:41:37 +0200
From: Anthony PERARD <anthony@xenproject.org>
To: Juergen Gross <jgross@suse.com>
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Nick Rosbrook <rosbrookn@gmail.com>,
	George Dunlap <gwd@xenproject.org>,
	Marek =?iso-8859-1?Q?Marczykowski-G=F3recki?= <marmarek@invisiblethingslab.com>
Subject: Re: [PATCH v2 3/6] tools: remove support for running a guest with
 qemu-traditional
Message-ID: <aAo_kQKhjRMqRNhO@l14>
References: <20250408123526.14613-1-jgross@suse.com>
 <20250408123526.14613-4-jgross@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20250408123526.14613-4-jgross@suse.com>

On Tue, Apr 08, 2025 at 02:35:21PM +0200, Juergen Gross wrote:
> diff --git a/tools/firmware/hvmloader/pci.c b/tools/firmware/hvmloader/pci.c
> index c3c61ca060..a00acdd45b 100644
> --- a/tools/firmware/hvmloader/pci.c
> +++ b/tools/firmware/hvmloader/pci.c
> @@ -113,19 +113,9 @@ void pci_setup(void)
>       * increase the size of the lowmem MMIO hole?  Defaulting to 1

This say "default to 1", but the default is changing to 0 instead.

>       * here will mean that non-libxl toolstacks (including xend and
>       * home-grown ones) means that those using qemu-xen will still
> -     * experience the memory relocation bug described below; but it
> -     * also means that those using qemu-traditional will *not*
> -     * experience any change; and it also means that there is a
> -     * work-around for those using qemu-xen, namely switching to
> -     * qemu-traditional.
> -     *
> -     * If we defaulted to 0, and failing to resize the hole caused any
> -     * problems with qemu-traditional, then there is no work-around.
> -     *
> -     * Since xend can only use qemu-traditional, I think this is the
> -     * option that will have the least impact.
> +     * experience the memory relocation bug described below.
>       */
> -    bool allow_memory_relocate = 1;
> +    bool allow_memory_relocate = 0;

I would keep this as 1. libxl does set it to 0 so there's no need to
change the default here. I don't know if non-libxl toolstack will set
the xenstore entry "hvmloader/allow-memory-relocate" with "1" if they
need it.

>  
>      BUILD_BUG_ON((typeof(*pci_devfn_decode_type))PCI_COMMAND_IO !=
>                   PCI_COMMAND_IO);
> @@ -347,10 +337,7 @@ void pci_setup(void)
>      {
>          /*
>           * At the moment qemu-xen can't deal with relocated memory regions.
> -         * It's too close to the release to make a proper fix; for now,
> -         * only allow the MMIO hole to grow large enough to move guest memory
> -         * if we're running qemu-traditional.  Items that don't fit will be
> -         * relocated into the 64-bit address space.
> +         * It's too close to the release to make a proper fix.

I feel like this is removing too much information. Maybe instead of "if
we are running qemu-traditional", we could have "if
allow_memory_relocate is true".

>           *
>           * This loop now does the following:
>           * - If allow_memory_relocate, increase the MMIO hole until it's
> diff --git a/tools/firmware/hvmloader/util.c b/tools/firmware/hvmloader/util.c
> index 2d07ce1290..79c0e6bd4a 100644
> --- a/tools/firmware/hvmloader/util.c
> +++ b/tools/firmware/hvmloader/util.c
> @@ -843,14 +843,7 @@ void hvmloader_acpi_build_tables(struct acpi_config *config,
>  
>      /* If the device model is specified switch to the corresponding tables */
>      s = xenstore_read("platform/device-model", "");
> -    if ( !strncmp(s, "qemu_xen_traditional", 21) )
> -    {
> -        config->dsdt_anycpu = dsdt_anycpu;
> -        config->dsdt_anycpu_len = dsdt_anycpu_len;
> -        config->dsdt_15cpu = dsdt_15cpu;
> -        config->dsdt_15cpu_len = dsdt_15cpu_len;

Those `dsdt_anycpu` and `dsdt_15cpu` blob are still built in. The are
both associated with qemu-trad so should not be included in hvmloader
anymore.

> -    }
> -    else if ( !strncmp(s, "qemu_xen", 9) )
> +    if ( !strncmp(s, "qemu_xen", 9) )
>      {
>          config->dsdt_anycpu = dsdt_anycpu_qemu_xen;
>          config->dsdt_anycpu_len = dsdt_anycpu_qemu_xen_len;
> diff --git a/tools/golang/xenlight/types.gen.go b/tools/golang/xenlight/types.gen.go
> index e7667f1ce3..02c4d8d123 100644
> --- a/tools/golang/xenlight/types.gen.go
> +++ b/tools/golang/xenlight/types.gen.go
> @@ -70,7 +70,6 @@ ChannelConnectionSocket ChannelConnection = 2
>  type DeviceModelVersion int
>  const(
>  DeviceModelVersionUnknown DeviceModelVersion = 0
> -DeviceModelVersionQemuXenTraditional DeviceModelVersion = 1
>  DeviceModelVersionQemuXen DeviceModelVersion = 2
>  )
>  
> diff --git a/tools/libacpi/mk_dsdt.c b/tools/libacpi/mk_dsdt.c
> index 34f6753f61..396e3e01e2 100644
> --- a/tools/libacpi/mk_dsdt.c
> +++ b/tools/libacpi/mk_dsdt.c
> @@ -105,7 +80,7 @@ int main(int argc, char **argv)
>  {
>      unsigned int cpu, max_cpus;
>  #if defined(CONFIG_X86)
> -    dm_version dm_version = QEMU_XEN_TRADITIONAL;
> +    dm_version dm_version = QEMU_XEN;

This change means that we are going to have "dsdt_anycpu" (.asl and blob)
been the same as "dsdt_anycpu_qemu_xen". Instead of changing the
default, could you ensure that `--dm-version` is provided on the command
line or return an error? No more default `dm_version`.

>      unsigned int slot, dev, intx, link;
>  
>      max_cpus = HVM_MAX_VCPUS;
> diff --git a/tools/libs/light/libxl_create.c b/tools/libs/light/libxl_create.c
> index e03599ea99..9c56c4c9e5 100644
> --- a/tools/libs/light/libxl_create.c
> +++ b/tools/libs/light/libxl_create.c
> @@ -100,12 +100,7 @@ int libxl__domain_build_info_setdefault(libxl__gc *gc,
>  
>      if (!b_info->device_model_version) {

A lot more can be removed in this blocks. In all cases, we set
device_model_version=qemu-xen. Which mean it's qemu-xen in the condition
just after.

>          if (b_info->type == LIBXL_DOMAIN_TYPE_HVM) {
> -            if (libxl_defbool_val(b_info->device_model_stubdomain)) {
> -                b_info->device_model_version =
> -                    LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL;
> -            } else {
> -                b_info->device_model_version = LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN;
> -            }
> +            b_info->device_model_version = LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN;
>          } else {
>              b_info->device_model_version =
>                  LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN;
> @@ -117,16 +112,8 @@ int libxl__domain_build_info_setdefault(libxl__gc *gc,
>              dm = libxl__domain_device_model(gc, b_info);
>              rc = access(dm, X_OK);
>              if (rc < 0) {
> -                /* qemu-xen unavailable, use qemu-xen-traditional */
> -                if (errno == ENOENT) {
> -                    LOGE(INFO, "qemu-xen is unavailable"
> -                         ", using qemu-xen-traditional instead");
> -                    b_info->device_model_version =
> -                        LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL;
> -                } else {
> -                    LOGE(ERROR, "qemu-xen access error");
> -                    return ERROR_FAIL;
> -                }
> +                LOGE(ERROR, "qemu-xen access error");
> +                return ERROR_FAIL;
>              }
>          }
>      }
> diff --git a/tools/libs/light/libxl_dm.c b/tools/libs/light/libxl_dm.c
> index b193a5dc37..4146ee0ea1 100644
> --- a/tools/libs/light/libxl_dm.c
> +++ b/tools/libs/light/libxl_dm.c
> @@ -2429,16 +2155,11 @@ void libxl__spawn_stub_dm(libxl__egc *egc, libxl__stub_dm_spawn_state *sdss)
>                          "%s",
>                          libxl_bios_type_to_string(guest_config->b_info.u.hvm.bios));
>      }
> -    /* Disable relocating memory to make the MMIO hole larger
> -     * unless we're running qemu-traditional and vNUMA is not
> -     * configured. */
> +    /* Disable relocating memory to make the MMIO hole larger. */

I don't think this sentence as the right meaning :-). I feel like this
read as " the following make the MMIO hole larger", but I think it is
just an explanation of what "relocating memory" mean, and what is
messing.

We might want to rewrite the comment, "disable relocating memory, see
comment in hvmloader about the meaning". Or "disable relocating memory,
having a lager MMIO hole isn't implemented with qemu-xen". Or something
like that.

There's the same comment in the non-stubdom code path
(device_model_launch) just below..

>      libxl__xs_printf(gc, XBT_NULL,
>                       libxl__sprintf(gc, "%s/hvmloader/allow-memory-relocate",
>                                      libxl__xs_get_dompath(gc, guest_domid)),
> -                     "%d",
> -                     guest_config->b_info.device_model_version
> -                        == LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL &&
> -                     !libxl__vnuma_configured(&guest_config->b_info));
> +                     "0");
>      ret = xc_domain_set_target(ctx->xch, dm_domid, guest_domid);
>      if (ret<0) {
>          LOGED(ERROR, guest_domid, "setting target domain %d -> %d",
> @@ -3162,26 +2879,16 @@ static void device_model_launch(libxl__egc *egc,
>          libxl__xs_printf(gc, XBT_NULL,
>                           GCSPRINTF("%s/hvmloader/bios", path),
>                           "%s", libxl_bios_type_to_string(b_info->u.hvm.bios));
> -        /* Disable relocating memory to make the MMIO hole larger
> -         * unless we're running qemu-traditional and vNUMA is not
> -         * configured. */
> +        /* Disable relocating memory to make the MMIO hole larger. */
>          libxl__xs_printf(gc, XBT_NULL,
>                           GCSPRINTF("%s/hvmloader/allow-memory-relocate", path),
> -                         "%d",
> -                         b_info->device_model_version==LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL &&
> -                         !libxl__vnuma_configured(b_info));
> +                         "0");
>          free(path);
>      }
>  
> diff --git a/tools/libs/light/libxl_dom_suspend.c b/tools/libs/light/libxl_dom_suspend.c
> index 6091a5f3f6..f0a74fc82c 100644
> --- a/tools/libs/light/libxl_dom_suspend.c
> +++ b/tools/libs/light/libxl_dom_suspend.c
> @@ -85,15 +85,8 @@ void libxl__domain_suspend_device_model(libxl__egc *egc,
>      STATE_AO_GC(dsps->ao);
>      int rc = 0;
>      uint32_t const domid = dsps->domid;
> -    const char *const filename = dsps->dm_savefile;
>  
>      switch (libxl__device_model_version_running(gc, domid)) {
> -    case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL: {
> -        LOGD(DEBUG, domid, "Saving device model state to %s", filename);
> -        libxl__qemu_traditional_cmd(gc, domid, "save");
> -        libxl__wait_for_device_model_deprecated(gc, domid, "paused", NULL, NULL, NULL);

That function isn't used anymore, and can be removed from libxl. Same
for libxl__xenstore_child_wait_deprecated() which is used by it.

> -        break;
> -    }
>      case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN:
>          /* calls dsps->callback_device_model_done when done */
>          libxl__qmp_suspend_save(egc, dsps); /* must be last */
> diff --git a/tools/libs/light/libxl_stream_write.c b/tools/libs/light/libxl_stream_write.c
> index 634f3240d1..98d44597a7 100644
> --- a/tools/libs/light/libxl_stream_write.c
> +++ b/tools/libs/light/libxl_stream_write.c
> @@ -252,10 +252,6 @@ void libxl__stream_write_start(libxl__egc *egc,
>          stream->device_model_version =
>              libxl__device_model_version_running(gc, dss->domid);
>          switch (stream->device_model_version) {
> -        case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL:
> -            stream->emu_sub_hdr.id = EMULATOR_QEMU_TRADITIONAL;

EMULATOR_QEMU_TRADITIONAL is still defined in libxl_sr_stream_format.h,
we probably what to comment it out.

> -            break;
> -
>          case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN:
>              stream->emu_sub_hdr.id = EMULATOR_QEMU_UPSTREAM;
>              break;
> diff --git a/tools/libs/light/libxl_types.idl b/tools/libs/light/libxl_types.idl
> index 9bb2969931..246bb3ddd2 100644
> --- a/tools/libs/light/libxl_types.idl
> +++ b/tools/libs/light/libxl_types.idl
> @@ -104,7 +104,6 @@ libxl_channel_connection = Enumeration("channel_connection", [
>  
>  libxl_device_model_version = Enumeration("device_model_version", [
>      (0, "UNKNOWN"),
> -    (1, "QEMU_XEN_TRADITIONAL"), # Historical qemu-xen device model (qemu-dm)

I think we need to keep that, so application using libxl and using this
value don't need to be changed. At least, that's a promise made in
libxl.h about the API.

>      (2, "QEMU_XEN"),             # Upstream based qemu-xen device model
>      ])
>  
> diff --git a/tools/python/xen/migration/libxl.py b/tools/python/xen/migration/libxl.py
> index 5dcb50fe02..dc5c7ac355 100644
> --- a/tools/python/xen/migration/libxl.py
> +++ b/tools/python/xen/migration/libxl.py
> @@ -51,12 +51,10 @@ rec_type_to_str = {
>  EMULATOR_HEADER_FORMAT = "II"
>  
>  EMULATOR_ID_unknown       = 0x00000000
> -EMULATOR_ID_qemu_trad     = 0x00000001

Should we keep this value as a comment? Or maybe the information in
"docs/specs/libxl-migration-stream.pandoc" is enough.

>  EMULATOR_ID_qemu_upstream = 0x00000002
>  
>  emulator_id_to_str = {
>      EMULATOR_ID_unknown       : "Unknown",
> -    EMULATOR_ID_qemu_trad     : "Qemu Traditional",
>      EMULATOR_ID_qemu_upstream : "Qemu Upstream",
>  }
>  

Thanks,

-- 
Anthony PERARD


From xen-devel-bounces@lists.xenproject.org Thu Apr 24 13:48:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Apr 2025 13:48:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.966367.1356586 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7wvo-0005va-0o; Thu, 24 Apr 2025 13:48:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 966367.1356586; Thu, 24 Apr 2025 13:47: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 1u7wvn-0005vT-T1; Thu, 24 Apr 2025 13:47:59 +0000
Received: by outflank-mailman (input) for mailman id 966367;
 Thu, 24 Apr 2025 13:47: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=/3PA=XK=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u7wvn-0005vJ-0e
 for xen-devel@lists.xenproject.org; Thu, 24 Apr 2025 13:47:59 +0000
Received: from NAM12-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam12on20620.outbound.protection.outlook.com
 [2a01:111:f403:2417::620])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b8c33dc1-2112-11f0-9ffb-bf95429c2676;
 Thu, 24 Apr 2025 15:47:55 +0200 (CEST)
Received: from SJ0PR13CA0212.namprd13.prod.outlook.com (2603:10b6:a03:2c1::7)
 by CH2PR12MB4053.namprd12.prod.outlook.com (2603:10b6:610:7c::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.27; Thu, 24 Apr
 2025 13:47:50 +0000
Received: from SN1PEPF000252A4.namprd05.prod.outlook.com
 (2603:10b6:a03:2c1:cafe::ec) by SJ0PR13CA0212.outlook.office365.com
 (2603:10b6:a03:2c1::7) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8678.13 via Frontend Transport; Thu,
 24 Apr 2025 13:47:50 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SN1PEPF000252A4.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.8655.12 via Frontend Transport; Thu, 24 Apr 2025 13:47:49 +0000
Received: from localhost (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; Thu, 24 Apr
 2025 08:47:47 -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: b8c33dc1-2112-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=jux8II3mVEX4pMN3qSWCYZIefs3dVKQKz9XxXlF5YI+p35H3qc/Fh9Ns15l2clOa4pPh3mYo0raIIYsUsnULRWsRzjSeTh+1WAQEBc7ZpwJNCU3sv8GUtzTLUh79javNFWXU936DprtcSWipXI6XNeChZhLpB2plyVEkYaKs+F9wAao3SIGS41hlAr8h9AWHerAIagF0/2VrdYAMEZJuebEbhC1t8LC2zEADkgqMmVeH59rfSReNd200bI/mP1nDO5jrUuY0IiNabGM759bUn8I5BEw62iZ1Da5Ti6/ixHJmkrvDEME2PiR+DeNrFX13H+nMpT3eCd35SD43/vAbkw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=tjELUaRyGnu65+y6Em3aUiAYggDmeOzHUcwOuoPQDvU=;
 b=UXIyMT2/UwKNwdc5+hzcqi4b6yiQKMJXHIUDyZkR2IM6QQBad5rkIZWu5jYE9+khQypQCkAMm13mHQM1KSzBXHqDJ/384FOvLXrRo9YLqFT0OEfhqt/gMs3x50L4ngdaJ/6xW9ZELoDGa4pbdwB5BIuuw7NjG3AA4OCjxqdA2h1i3h/n19XCPNP2X9REZS4UwaBSszebGqRzStlbbZfHk8kVbVWl1ZHhHtT0/EOGO5wjZZasj08G3rtlIhR3I50zM7H7WL9P7sHyj5kd1FljEM2PI6R4/18a8+2gYG7ABYEg5FzHdvBG9N6WXrknad+WqK2f4m6CNf1KjBGCLimF/w==
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=tjELUaRyGnu65+y6Em3aUiAYggDmeOzHUcwOuoPQDvU=;
 b=mSKVmifI6GdIzkVUkXpx7tfDluVh/1iimlnBouTdtPPh2YbQP8H//kO8CxhrN/oxjX0uQE+2NuQIhY+CnWQI9PC02M6h0LciEtwvwUYQ50DenQNmBPWtAN2lEeUTsJbI0SmocQ3q28YeQ8LLjB55OJs9vyD/5i8J05hRTeB89H0=
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
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Thu, 24 Apr 2025 14:47:46 +0100
Message-ID: <D9EWZF0G7QUZ.2IDV470T7SYD0@amd.com>
CC: Jason Andryuk <jason.andryuk@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>, Paul Durrant <paul@xen.org>
Subject: Re: [PATCH] x86/hyperv: Adjust hypercall page placement
From: Alejandro Vallejo <agarciav@amd.com>
To: Alejandro Vallejo <agarciav@amd.com>, <xen-devel@lists.xenproject.org>
X-Mailer: aerc 0.20.1
References: <20250424124505.42156-1-agarciav@amd.com>
In-Reply-To: <20250424124505.42156-1-agarciav@amd.com>
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: SN1PEPF000252A4:EE_|CH2PR12MB4053:EE_
X-MS-Office365-Filtering-Correlation-Id: 143d3988-9ea5-4609-b71f-08dd83369a21
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?d1FQOFRXL2xGR2k2V3MvSEtpcVU4VVVUVWJaYlRHOEE3TE1ERzd0MjMyVzhI?=
 =?utf-8?B?WXBSM2hocDhBN095WjFnOExHZzhJWTVJM1N4cVpnSkE5SXJFd3NtT2YwTWNl?=
 =?utf-8?B?L0RrUmFmKzV0MGRPSjV1QTRQNGdDYytzTk1MRHppVDdGV0k3SzdDejFOdmQz?=
 =?utf-8?B?Q2pSQkg0TFlvbXNGZUVKd2YvRXhjWWxFT3VtMGh2VnRLdUlCL3ZHNEliTzJi?=
 =?utf-8?B?R1BqRWw0QnhQcGhXY0lOUkpBci85WjQzNXJidE14VWQzU3VZSzdvNWZtV0dU?=
 =?utf-8?B?Rko3MEN1bkFkTnlyYWhEQUg5NCtocU5HSi9ZTmpmazU0SzlUZkJRWnB5T0VY?=
 =?utf-8?B?MG5UOGJKWDJjcGxEdXJNdmUzdDA3bmdGTlR2alVTUmZBNGg5VExLZ2MyV09P?=
 =?utf-8?B?YVFQY1NXeW5ZaFNMVWw4N1ZweHgwaXRsdytKK2MvV2pYRUlUUzIrNGNjMGdm?=
 =?utf-8?B?OUNCR2xSaEN3YVdPN3hIMFJMUU1HczV2RFg0S1ZwUitnWFFCUlgwWmphbnVv?=
 =?utf-8?B?ZWFDamhPUjJiN2J1azlZSUk0NVZmdUVVVnZtM2EzUGt1VjVLT0FWaUUxeGJU?=
 =?utf-8?B?ZHJYVk14QVhhdENWMzVxSzJTV051MUlvQzd1UncrMCtaS0FTaWh4b3VQTGpH?=
 =?utf-8?B?WXFNVHpxTENrZVNvYW9qbHZhQVFRZnhYR0JaSDZzUEl6UDNtUjJSaUFFNlhZ?=
 =?utf-8?B?SG8vVHN1ak03T3UvR1FJT2lYd0ZvYlJtSVVjQU9tcVdGZFYxLzJLK0lxVnBJ?=
 =?utf-8?B?UEF6MXNIWjkrS2FmdkZDajZqZUNLc2tvQXRCRmNSbGRLb0VOMko1aWxhMFNN?=
 =?utf-8?B?TlhpL1RsTjJoMXFDenB5MzFKSzZZVDh0VkxXdlZuR0g0Ykx3KzNiTGx3NlhU?=
 =?utf-8?B?V2FaQzB4MUR5UzNLL2NhemVUeml5WkdFSVFJSjVCemNVL1pWNlVZd3YzK1hY?=
 =?utf-8?B?TG4xMFBDMjBCd2pQV0tRdlU5YnA3allQTTl2bUtDUVdGMCtyMXJBbEN4Y0h2?=
 =?utf-8?B?MEFqcTg3VnBuNVZxZzhBZkVBa25RaHRQUTNlMUpObEY1MnFBZWZJd1ZkN0lq?=
 =?utf-8?B?V3RQSitNWUtiZ1FSSXdrampHQjBjODF4MHJRSUpOcW8rdE1rS2I4NHNIT20x?=
 =?utf-8?B?M1hLVGtKY2Z0SW1sM1BiL2dnQXJTWWYwRGFQemFvWEdXNHpxUzVSVEFKTXFq?=
 =?utf-8?B?S3VoMTNVamdRRUhBT1BzSDZpYU1iK3hHcFBNWEpZY3h4dlBheXFuSlkzMnpm?=
 =?utf-8?B?RE5IQ2k4TSt1aUdrNHNvblpCRjlPZWJhdWVMbjhiK01VSnU2eWN2WlBMT3VI?=
 =?utf-8?B?ang3dWZTN3pjOU1DVUZCNHNwOXRmU1ZsZWtXWlpaUkI0L3JXeG5uTDMycEpx?=
 =?utf-8?B?Ym56TEo0TEZwRmxxWVllMzkzSzFEdGwwaTBzRzlCYkQ0Tkd5WXhYTDlHL05q?=
 =?utf-8?B?SzZLai9pbWQwS1dkcWxUSGtReUdZQkRZNGZPUURuN0k3b0dzRTJZd29EK2N6?=
 =?utf-8?B?TTN4S2lGeEtMUGNYUVM0VzhTU0hkSTcvWitLSGNuK1FWWURaVHhEdWxlY3JU?=
 =?utf-8?B?UFM3alZhT3ZsajV2TTVKVVBsS2pGeVdyUnJCV2hOWDhpWXNJc0QybUN1OStF?=
 =?utf-8?B?ZjRvQUlZZlFFa201c200YXllYStEZnlud0tQSVhhZFZNTFdUejlEdkpSdzY1?=
 =?utf-8?B?VGc4VUM0cWdvSURNNmhFNC9PQXRqQ29qSjFIencwSlk3ZlRvbVlvck45QXhC?=
 =?utf-8?B?YWdJSVJTOHhFYnpQSm9lbDl0UlVGdFc4bEEvN0NCcHdDZEFBNjVEY0U5NVNX?=
 =?utf-8?B?TzQ0S1NrdHJwSVRyWC8zeXJYZkJEUFdCTVMxczVZanZiS0plYTQ3V2hObFh6?=
 =?utf-8?B?Nlk5MlRUYUQrMm84cjVKNkt2eS9WbGZBTGk3dE8reTB1QzBDVy85eHNzM3p2?=
 =?utf-8?B?TWhuUURIVmZlb2dKSFU1WmFXOVFEZWlGN2J3bjdCTUhRa0svSTBXKzhsanND?=
 =?utf-8?B?bmczN3RIODd6ZWY2TEZHRFhlTm1NTzY5UFlBMnZEVEhLV1hDSWFURG8zQ3cy?=
 =?utf-8?Q?9nUPel?=
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: 24 Apr 2025 13:47:49.3383
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 143d3988-9ea5-4609-b71f-08dd83369a21
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:
	SN1PEPF000252A4.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR12MB4053

On Thu Apr 24, 2025 at 1:45 PM BST, Alejandro Vallejo wrote:
> Xen nowadays crashes under some Hyper-V configurations when
> paddr_bits>36. At the 44bit boundary we reach an edge case in which the
> end of the guest physical address space is not representable using 32bit
> MFNs. Furthermore, it's an act of faith that the tail of the physical
> address space has no reserved regions already.
>
> This commit uses the first unused MFN rather than the last, thus
> ensuring the hypercall page placement is more resilient against such
> corner cases.
>
> While at this, add an extra BUG_ON() to explicitly test for the
> hypercall page being correctly set, and mark hcall_page_ready as
> __ro_after_init.
>
> Fixes: 620fc734f854("x86/hyperv: setup hypercall page")
> Signed-off-by: Alejandro Vallejo <agarciav@amd.com>

After a side discussion, this seems on the unsafe side of things due to
potential collision with MMIO. I'll resend (though not today) with the
page overlapping a RAM page instead. Possibly the last page of actual
RAM.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Thu Apr 24 14:03:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Apr 2025 14:03:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.966378.1356595 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7xB1-0001Fz-8f; Thu, 24 Apr 2025 14:03:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 966378.1356595; Thu, 24 Apr 2025 14:03:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7xB1-0001Fs-5c; Thu, 24 Apr 2025 14:03:43 +0000
Received: by outflank-mailman (input) for mailman id 966378;
 Thu, 24 Apr 2025 14:03: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=s25R=XK=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1u7xAz-0001Fm-MH
 for xen-devel@lists.xenproject.org; Thu, 24 Apr 2025 14:03:41 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on2061f.outbound.protection.outlook.com
 [2a01:111:f403:2414::61f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id eb6f4e17-2114-11f0-9ffb-bf95429c2676;
 Thu, 24 Apr 2025 16:03:39 +0200 (CEST)
Received: from MW4PR03CA0192.namprd03.prod.outlook.com (2603:10b6:303:b8::17)
 by IA0PR12MB7697.namprd12.prod.outlook.com (2603:10b6:208:433::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.30; Thu, 24 Apr
 2025 14:03:33 +0000
Received: from MWH0EPF000A6730.namprd04.prod.outlook.com
 (2603:10b6:303:b8:cafe::e4) by MW4PR03CA0192.outlook.office365.com
 (2603:10b6:303:b8::17) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.35 via Frontend Transport; Thu,
 24 Apr 2025 14:03:32 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 MWH0EPF000A6730.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.8655.12 via Frontend Transport; Thu, 24 Apr 2025 14:03:32 +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, 24 Apr
 2025 09:03:32 -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; Thu, 24 Apr
 2025 09:03:31 -0500
Received: from [172.21.185.2] (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, 24 Apr 2025 09:03:31 -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: eb6f4e17-2114-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=BcYktGYNRU77EubGq5eCbqfJG5WcWrow8pozWEAnCRCUIFPv0PbFIqO/e2essqb8Ul3OIVPAclfry5VWWLuVxzd15OWhvcEpzAw+Q8oLIE0oy9uISIGK4IGT4s8GE8PG2yCHx6/zzSTPiGmVu7pRGrwYvRWXiQqRKKmXiQppypAI4vBA3oPK6wZbLcCgQOUzXZgbFgyU5KXF6+cXLcarXLUVEW9BYlVCSdCLOvHma8UN1BinTbOPWxzrWy6qjRYIQv1RLLC23aT9u5MsuuI7NcFZaZyMXClAh0DQvxXo78Txbo3KF7BWZKtrzHNyrpVXbyiAdNo6huUL3fyloqAJaw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=gTQHCu9KWktPy13w/iSWHJooRMu5Pvj4JAIHKDnikFM=;
 b=wnsTrKwHUImcCIieHzOl2S0KJOgrtIZxS+lQqZyBhKyqclr9FIgtWdXx5fWw+sHB0swrVjA07jImep+I+M5IsUSXBGJpkD62rzQjqSeGTUYW1L4+/osYufkjdFrzcZ61a3JPvJjqYEwXxlJieB2er+NdzWIVmBw5lwEHI8ujtVvkrt6aKcbu0auaWoG0yCqVuQVEML1Xr1kkwO/c+3q3TPBbXpPDKo+otW7mlvuToEXsIzOfMXvUlNvePISIRyjCDfZa3Bd5LSId5qFrd1W9znvKXor8vNjRqSJHxNe38AQP2xZpiGzi00pHTQuibMzNX2ZSzub5R4epGYXbc3M6sA==
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=gTQHCu9KWktPy13w/iSWHJooRMu5Pvj4JAIHKDnikFM=;
 b=0PZCk1BomiXe79kXJLusnrMF6aPB7b5fk75tlxHneLShuQAK6d0qVyczel00mZQGgM5nS/lbLQp1PX7X4Zk6cYvBfuDtdbtliaFIdcDg3spk+bzKqadY+qSXm0PQJX51yGirs9O77k53ntcWU/xMiommg0IV1tiNv3kmbKZmCOs=
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: <8d0e6837-27d9-41b7-bf7a-4f4108a7a84c@amd.com>
Date: Thu, 24 Apr 2025 10:03:33 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/vpci: Fix msix existing mapping printk
To: Jan Beulich <jbeulich@suse.com>
CC: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
	<xen-devel@lists.xenproject.org>
References: <20250423212229.32721-1-jason.andryuk@amd.com>
 <fc4bb04a-8d6d-4744-9be3-399aea5081e2@suse.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <fc4bb04a-8d6d-4744-9be3-399aea5081e2@suse.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: MWH0EPF000A6730:EE_|IA0PR12MB7697:EE_
X-MS-Office365-Filtering-Correlation-Id: 3756d066-6895-40c2-22c6-08dd8338cc84
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?M3R2ZmcyM2xyc2Y3a1VTWm5STUhVTm10OFo1Slg5eElzNVpQTXkvblc0OU9z?=
 =?utf-8?B?czNhRkwzUytoUlJYTHU2T0M1WVVUNGFwMTBZdXpTb0d4dHUxenErN1BWT3ps?=
 =?utf-8?B?TTBEaW9KL1lKd1V5SFZnMHNZRlZnaUJJdWtnYmt3K0dzcERhYXNEL1EwVjhy?=
 =?utf-8?B?YythWDdBKzVwY0dDQWxkajliRXBTMzVHT1kvaGlVbXZ0dXhvNitKT0x5c0x1?=
 =?utf-8?B?WXZ6TFlRS2VLOHNSRVNMd2s3TFV2RGU1SjFLVzRLSGpKVjJ0SHgxVFgvNFZo?=
 =?utf-8?B?ZUZ5R2lkM2gzbmxkcG9OZFEyTTVJaXBzM3FjZThKeWVZNWl3UFlzZ0Z4TmUz?=
 =?utf-8?B?bGFqditiZzRZeitkbWdTNW5XS3hORmUrcndwaThQQXBXb0RHUEp4bmhZOHhG?=
 =?utf-8?B?QWQ2UVNoREhBQlV2VGtydHVHRnh0OHNON24vU013QmNicG5FMGdWM1F4UXRn?=
 =?utf-8?B?R0YvVm1ya1hFMmlabUlUUEtSVGcwYnRRTlN4TGQyTWlVTTYxUWFBOTRyazFV?=
 =?utf-8?B?NElIY3JpTzRpcHFoTGdIdnNJZzlNL3B1T0wyRDN6c0JuNHlMTm9nVTVQMlVM?=
 =?utf-8?B?ZU1ncmUrS2dsRm5HRXl3QmJMQWpKVVlmMHlBbnBMenlESVlnRENoTG5IN3lV?=
 =?utf-8?B?cWhxamRYWFhOZzlacngya2xPNUxMazVnbmJrL1NMejAySHZ0Y0tyQ3Q4a00w?=
 =?utf-8?B?RkVVWmYzOWdkRXdwMmlvaXY0S3VwTWRIUG1ZTXU2enczMmNZNHZqSnVrbVJt?=
 =?utf-8?B?YzFiVmxLc1huRzNudDVHRE1KN002K240WWZMUVdQWGdiR1dGYmZhcDk5cStM?=
 =?utf-8?B?dWpscU9lTGt6SFl2bEZuQ3E5MlRaeEpwQUhOYXZEWkNYaE1zNVFwT1VvZXQz?=
 =?utf-8?B?K2JSbytxUTNTOUkydlZQendobmlrZjJmUytuWkRtVnhDQ2U0TERMSVNSMEhC?=
 =?utf-8?B?MmQya2VZTHVSU29yWjhjOEl4cFBnL2xIRHd5YzJyKy9SanZlQU5TUTFISVAx?=
 =?utf-8?B?dHFtVGdhNFNEMyt4RzN3NGRha2hlTzdpQWxnVy8vNnVYNGsvZFY5a3cxUkt2?=
 =?utf-8?B?cmdOWUJqcjRZVkQvTnlOTWFDdmhQKzZYdUVabXJnSS9nQWs3bTNMWkxqN0tJ?=
 =?utf-8?B?cVVMWk16bGh2RGZacUxzVy8vaUI2dWJRU2J4VVJLQ1QrQWd0UHdpZG83TDBN?=
 =?utf-8?B?T1Q4TkpTczU3VlQvMWs5blBuWUdIR21FMUwxSHpMRU5kKzhSSTJWdFBwblUz?=
 =?utf-8?B?bnJUbFowMW5STngrMklHdHNKZXFNYUNFWjBZblh4dDRtNmNRWndwaUFhdE9X?=
 =?utf-8?B?bTBhZElpKyswc2VNOXptRG95R0g0a3Vwd0k3bXk4eFhDUXVtWUhFRUt0aHVj?=
 =?utf-8?B?MStJenUxNng5YytJSkVNN3lwQTR6a09oeDFrTGZtQzRWbER1VURmMXcvVzl0?=
 =?utf-8?B?Wml0UU0vb1Z6dUxycWhCNGpIaFVvdk1MWEJvcnoyYWIxMWptb0FOL0owTFlZ?=
 =?utf-8?B?c05vemtNZS8zaW9hL3p1dHEydFBpTXpxcnliRENiQ3VjVm5aS1FieTViV2RV?=
 =?utf-8?B?SXNHMG54RjBSZGxhZ2JVNWo5aXVwaEpweFRrcktpWm4yeHFjZWtsR1Fpb3cv?=
 =?utf-8?B?Q2pqQUYyQW1MVXVsajEweHNmREh4N0NUUTZwaW41UW5VMjU5MW8zN29XTDVZ?=
 =?utf-8?B?bzRtMndlODV3YjhqQlpJWUNPcnhhNmV2NzRQdnI3L0JPR3NJdlhGb050bWNy?=
 =?utf-8?B?Yk9Uclk2Mkp0cmNNQm92M1lKZDJCUEJTaHhRMGpJVHNBekJLZlBZWEdDSVVL?=
 =?utf-8?B?c2NVL1FseVYxaTQ2QjB0MTlPNmNxcTg2VWlONlQ4NnpWckl3UHh4N3dvaFoz?=
 =?utf-8?B?K21JOFRBaGNha2NRUmh6SlhmQzRJZWt2YXc5OGRISEFITW8wVmJMZ3hkRDNj?=
 =?utf-8?B?QUY4YkdTb0NqUlFwZE1qeUI3N09JWDhOL3hFemEvMDlJMmFETXY3WkxJYzlV?=
 =?utf-8?B?bnBpYk9mazlkT3ZLaTVzNnNLU21JL0E3dlF4ZC9rUzN0TkQrcnNlVEE5T2Fh?=
 =?utf-8?Q?pyURfU?=
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)(1800799024)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Apr 2025 14:03:32.7691
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 3756d066-6895-40c2-22c6-08dd8338cc84
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:
	MWH0EPF000A6730.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PR12MB7697

On 2025-04-24 02:18, Jan Beulich wrote:
> On 23.04.2025 23:22, Jason Andryuk wrote:
>> --- a/xen/drivers/vpci/msix.c
>> +++ b/xen/drivers/vpci/msix.c
>> @@ -666,7 +666,7 @@ int vpci_make_msix_hole(const struct pci_dev *pdev)
>>                   put_gfn(d, start);
>>                   gprintk(XENLOG_WARNING,
>>                           "%pp: existing mapping (mfn: %" PRI_mfn
>> -                        "type: %d) at %#lx clobbers MSIX MMIO area\n",
>> +                        " type: %d) at %#lx clobbers MSIX MMIO area\n",
> 
> Imo this is a good indication that the format string better wouldn't be
> extending across multiple lines. Then it would also be possible to grep
> for it (in the sources) using e.g. "existing mapping .* clobbers".

Sure, a single line works for me.

Thanks,
Jason


From xen-devel-bounces@lists.xenproject.org Thu Apr 24 14:04:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Apr 2025 14:04:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.966386.1356605 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7xCA-0001li-GU; Thu, 24 Apr 2025 14:04:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 966386.1356605; Thu, 24 Apr 2025 14: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 1u7xCA-0001lb-E1; Thu, 24 Apr 2025 14:04:54 +0000
Received: by outflank-mailman (input) for mailman id 966386;
 Thu, 24 Apr 2025 14:04: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=KF8R=XK=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u7xC9-0001lR-CC
 for xen-devel@lists.xenproject.org; Thu, 24 Apr 2025 14:04:53 +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 15068069-2115-11f0-9ffb-bf95429c2676;
 Thu, 24 Apr 2025 16:04:48 +0200 (CEST)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-4394a823036so10474675e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 24 Apr 2025 07:04:48 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3a06d4ae0c3sm2173164f8f.29.2025.04.24.07.04.45
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 24 Apr 2025 07:04: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: 15068069-2115-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745503487; x=1746108287; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Xxpv0yRGCcRy4bvVn3wUom7PcRVRG/rxXEeQkIO6LWU=;
        b=skTX9g9fxTIbiD8arm0aIkHV7ykJZz6Tbldf8AaLBY66TYP1IUGYq1rH8zcb023d95
         ynopYt+lQ+A1/QCL72w01j9yHxRI7ilhm1PG32xQ/36T5m6bAI2IL8JM4BBRJ+DUJFDG
         71i5i6XTENRv3+aBObi1rrpSuJYgTqsHdnQI0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745503487; x=1746108287;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Xxpv0yRGCcRy4bvVn3wUom7PcRVRG/rxXEeQkIO6LWU=;
        b=XzQNKkIPkaDQ3uqs/PauLUdEBbz4vUYrXW15Xn6uFcTtTXfjVfNyWsxfxDQXCWocrv
         lJysofKsvqmembWO6hWoCqS3d2XmZ2KrghgiGMWWstbgresCkZP9nBEVJqKAaGP4wlbx
         WhKs5rOhywkELRq8vq63sW/oDBReU2MjURVCuHhRSgUIG2+wpTxnbj7An3k/cCjHJwfW
         pyAMjF5IL1Si1h9TChGVmPBoWxL4Iu8zWEEh7erVpBUIt6KiZlFJCpyn3Olga3O2V4NN
         UT48IIGTGSJZkmKsU+mp6xMB8Vg5tXjI8Zum0g8qnGrzHLtaWc+78hgpLwMiW+6npLdF
         7PNg==
X-Forwarded-Encrypted: i=1; AJvYcCUOLVBLIXiXHCU4H21cmOQFXmHm2KuXiLjxmV6xhtxuyKJj/Skv3aLm5A8EbF6gJTjJmz7DGTmt1lU=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw5ekzxLRzAkwBxIripqwF5sAhWwkCOPREDvOH1/IacStPriuQa
	9pm1kfb5dqNcIdI97xG+CI824kcsH75lETFqBCU5n+TD0TQeOF7Wtna0hZeGZ+A=
X-Gm-Gg: ASbGncvxHptu3/kyU/WYy5w6t+0uF3PHPSnYgsrM/+xfixLbV17acMLEARgCoZWYI6f
	/r2VcGacl+PRuQss8JouQPg7u1yYH6pNWlK/j3Y5jwprM8ME952EC9H8LIdM6RMLsmweKGZEZtV
	88CL7or8gkk6fRaQUx9X9kTNsHRhwC6lpgAXrwTe+J/fv+BvzE9HYmHw6VuubVNZ85rxiDlyA+7
	NDUMcI/FbM6UbYcqRnbczXbNdsFk/l3e13uT8Vs1Xn2kfA+1mMsbaNf4cHHEEei6FvFgL/FOroT
	qqnuGDmC6/wsxdLFYG4AKDZniMExkul42KUT1ULUmHvstU+I1oQay5ENgT0YYWdPuey4ewAS2yY
	UE81AJ7kphEuAWkXS
X-Google-Smtp-Source: AGHT+IGoE3ihziAEJXsspY6laCE6Uygh/fPcfmGS2qIZbyw1tTet9pVyn+zlZyMbh/QzHTr3nNtp2w==
X-Received: by 2002:a5d:47ad:0:b0:390:e62e:f31f with SMTP id ffacd0b85a97d-3a06cf5000amr2185367f8f.3.1745503485881;
        Thu, 24 Apr 2025 07:04:45 -0700 (PDT)
Message-ID: <659665fc-e938-4c2d-9707-b44f637bb6fb@citrix.com>
Date: Thu, 24 Apr 2025 15:04:44 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: UBSan bug in real mode fpu emulation
To: Fabian Specht <f.specht@tum.de>, xen-devel@lists.xenproject.org
Cc: manuel.andreas@tum.de
References: <l2jnq5cxgkzcdkndp3mjf76nd7wdp2pbstkqo7llaarmbfqdge@bxdydela4rcf>
 <7e3b941d-ec4e-4158-8844-a3cf236c8d4d@citrix.com>
 <lfakyg5jqdnbm6kleldta52xm6pzdy2fikr6ydxw5rs4wplefv@ymabtpq6fdvq>
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: <lfakyg5jqdnbm6kleldta52xm6pzdy2fikr6ydxw5rs4wplefv@ymabtpq6fdvq>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 24/04/2025 2:13 pm, Fabian Specht wrote:
>>> if ( !s->rex_prefix )
>>> {
>>> 	/* Convert 32-bit real/vm86 to 32-bit prot format. */
>>> 	unsigned int fip = fpstate.env.mode.real.fip_lo +
>>> 					   (fpstate.env.mode.real.fip_hi << 16);
>>> 	unsigned int fdp = fpstate.env.mode.real.fdp_lo +
>>> 					   (fpstate.env.mode.real.fdp_hi << 16);
>>> 	unsigned int fop = fpstate.env.mode.real.fop;
>>>
>>> 	fpstate.env.mode.prot.fip = fip & 0xf;
>>> 	fpstate.env.mode.prot.fcs = fip >> 4;
>>> 	fpstate.env.mode.prot.fop = fop;
>>> 	fpstate.env.mode.prot.fdp = fdp & 0xf;
>>> 	fpstate.env.mode.prot.fds = fdp >> 4;
>>> }
>> Several things.  First, please always the UBSAN analysis from the crash.
> (XEN) UBSAN: Undefined behaviour in arch/x86/x86_emulate/blk.c:87:66
> (XEN) left shift of 65535 by 16 places cannot be represented in type 'int'
> (XEN) ----[ Xen-4.20.0  x86_64  debug=y ubsan=y  Tainted:     H  ]----

Yes, it is a shift into the sign bit.

>
>> There are several different ways that shifts go wrong, and I suspect
>> this is a shift into a sign bit, which is notable given the unsigned
>> underlying type.
> Might be, but I am not entirely sure. Either way, it should be fixed
> through a simple cast to unsigned int I think.

I have a sneaking suspicion that this is sufficient:

diff --git a/xen/arch/x86/x86_emulate/private.h
b/xen/arch/x86/x86_emulate/private.h
index 30be59547032..9f3d6f0e5357 100644
--- a/xen/arch/x86/x86_emulate/private.h
+++ b/xen/arch/x86/x86_emulate/private.h
@@ -385,9 +385,9 @@ struct x87_env16 {
     union {
         struct {
             uint16_t fip_lo;
-            uint16_t fop:11, :1, fip_hi:4;
+            uint32_t fop:11, :1, fip_hi:4;
             uint16_t fdp_lo;
-            uint16_t :12, fdp_hi:4;
+            uint32_t :12, fdp_hi:4;
         } real;
         struct {
             uint16_t fip;


The problem is that a uint16_t bitfield promotes into int.  A base type
of uint32_t should cause the bitfield to promote into unsigned int directly.

>
>> Also, are you aware that the test isn't properly in Real Mode?  It's in
>> so-called unreal mode (not actually a real mode, but a consequence of
>> how the segment registers work), which is relevant to how you manage to
>> re-enter the emulator for FLDENV.
> Yes I am aware. But the bug should be triggered regardless of the
> current mode, right?

Well, that depends.  Some CPUs trucate %eip to %ip at this point.  Xen
doesn't, which is why the XTF test doesn't crash in a different way.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Apr 24 14:21:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Apr 2025 14:21:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.966404.1356616 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7xRt-0005di-1O; Thu, 24 Apr 2025 14:21:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 966404.1356616; Thu, 24 Apr 2025 14:21:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7xRs-0005db-U6; Thu, 24 Apr 2025 14:21:08 +0000
Received: by outflank-mailman (input) for mailman id 966404;
 Thu, 24 Apr 2025 14:21:08 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=KF8R=XK=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u7xRs-0005dV-GD
 for xen-devel@lists.xenproject.org; Thu, 24 Apr 2025 14:21:08 +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 5ccab634-2117-11f0-9eb2-5ba50f476ded;
 Thu, 24 Apr 2025 16:21:07 +0200 (CEST)
Received: by mail-wr1-x435.google.com with SMTP id
 ffacd0b85a97d-39c266c2dd5so1189724f8f.3
 for <xen-devel@lists.xenproject.org>; Thu, 24 Apr 2025 07:21:07 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3a06d569c1bsm2224364f8f.101.2025.04.24.07.21.06
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 24 Apr 2025 07:21: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: 5ccab634-2117-11f0-9eb2-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745504467; x=1746109267; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=rQsmCZqY8/07IK58Yhov3m/dZRx9yuC+jvu9Ks8P95I=;
        b=odhRKKyENMiWrOE0UXPt01v7jUhs+Nr1UN1r4NszlXB9kFmDdb1KtqeeZwd7PGP+mt
         N0W0rhfKVWxsXZPNt3SCndElRF0u+RJxDUZmkMxiQUQJpqQwzidl9o5hxYgvXpfXaYk7
         1pYhggo6pJp404yoB9+voyzWiQwAy3nIzlalA=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745504467; x=1746109267;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=rQsmCZqY8/07IK58Yhov3m/dZRx9yuC+jvu9Ks8P95I=;
        b=uLJe39/gwDBVmWo3+t7KtfxHwElaopbEwSa8gWPd0WuUbYZFtDnxGVaMyvMnsRXiee
         d5kGr5VFoe/LDQMyEKHDK74wy7I3uKjVNWGaqRmmnTKLWbPDSAf1YZ9GcaYZzJIUFLl1
         HVOEpEpHVtkdyW9/Y0g4UEcoDXyDDVWWv7GaasUqwAnyz5EioS6aLEkvpbzEietcn1a1
         O3tV6O7Q5S/744Jf22as1byaZilhrxTVHJdbkcdLs504xCgTuy8BpcRgJ+BsZ1K3sjde
         ROfCwZgdKTthsDSB1X6y0K/WbcUgv8QgwrKQQNp579uUeqA7KdhudcGBv1Kb4OsbKu2F
         H1rw==
X-Forwarded-Encrypted: i=1; AJvYcCVeN1RnLusmu34gK4D8fHyrcEEplO9qE0e9YZoitqg3YEQxlMjf058NtSsTS8C0iS0f6EloRxPb89s=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwceHre8De9qfMTN59RMzlq4QKkTaV6AKB42W5WRekJf70esPZm
	/htPo4JG5VbLtOmNTWHk4EWKWNoAo3g00A7SokJON0YcZz3xLTzq8JWn7bPJl5M=
X-Gm-Gg: ASbGnctmNqzsP2ybvGgTQshTyVr74XZ4Bbz1zuU39Y8AeAP3cyqc5gHaHeYv18fCtFH
	Ajn1Cah1HGC7QJvwiRga3osJeuf7OK7CtxaVVscAz9BW23TqlUAWO7KfsidBynDpax8Wmz2BrUH
	2JcSGkhOZaTxd1/zPI9/+t3azXNSbyuF2fzJq9l93WwZ7aiYEIXjERPq+2vtCN2DR+/IXVWI+YZ
	CiTsXE4KNe6nG2gfEcFm8a8k8cyuEj0QKAL0/pib8laJYqixks2z1MStK4ctkcnyJR72n3PhXWA
	r9E6tf+v4iwTmMCq0OJlVH2p4SlliShfqBZgFtMfUiyi+Z77YT+QEYBG7zSnUNzM1njKTGpL+H3
	Az7yh6g==
X-Google-Smtp-Source: AGHT+IG1/ruNtDJEQTHhLEGTSXPFXy8WkWfPunwbK53osK5vOc7z4eLCu26r6e/keGqanAkeuPl6Vg==
X-Received: by 2002:a05:6000:1789:b0:399:7f43:b3a4 with SMTP id ffacd0b85a97d-3a06cf5ef02mr2320169f8f.24.1745504466818;
        Thu, 24 Apr 2025 07:21:06 -0700 (PDT)
Message-ID: <72b6e9b8-8f6a-4495-ac1c-9df5822067a8@citrix.com>
Date: Thu, 24 Apr 2025 15:21:05 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/hvmloader: fix usage of NULL with cpuid_count()
To: Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>,
 Anthony PERARD <anthony.perard@vates.tech>
References: <20250424125813.96449-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: <20250424125813.96449-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 24/04/2025 1:58 pm, Roger Pau Monne wrote:
> The commit that added support for retrieving the APIC IDs from the APs
> introduced several usages of cpuid() with NULL parameters, which is not
> handled by the underlying implementation.  For GCC I expect this results in
> writes to the physical address at 0, however for Clang the generated code
> in smp.o is:

Oh lovely.  I guess we need full VM testing for the Clang builds too.

> tools/firmware/hvmloader/smp.o: file format elf32-i386
>
> Disassembly of section .text:
>
> 00000000 <smp_initialise>:
>        0: 55                            pushl   %ebp
>        1: 89 e5                         movl    %esp, %ebp
>        3: 53                            pushl   %ebx
>        4: 31 c0                         xorl    %eax, %eax
>        6: 31 c9                         xorl    %ecx, %ecx
>        8: 0f a2                         cpuid

I get the hint that this is the whole file?  But you don't say that
explicitly.

> Showing the usage of a NULL pointer results in undefined behavior, and
> clang refusing to generate further code after it.
>
> Fix by using a temporary variable in cpuid_count() in place for any NULL
> parameter.
>
> Fixes: 9ad0db58c7e2 ('tools/hvmloader: Retrieve APIC IDs from the APs themselves')
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> ---
> Could also be fixed by using the temporary variable in the call sites,
> however that's more code in the call sites at the expense of less checking.
> I don't think the extra NULL check logic in cpuid_count() is that bad.
>
> Overall the solution proposed in this patch is safer going forward, as it
> prevent issues like this from being introduced in the first place.
> ---
>  tools/firmware/hvmloader/util.h | 11 +++++++++++
>  1 file changed, 11 insertions(+)
>
> diff --git a/tools/firmware/hvmloader/util.h b/tools/firmware/hvmloader/util.h
> index 644450c51ceb..765a013ddd9e 100644
> --- a/tools/firmware/hvmloader/util.h
> +++ b/tools/firmware/hvmloader/util.h
> @@ -190,6 +190,17 @@ static inline void cpuid_count(
>      uint32_t *ecx,
>      uint32_t *edx)
>  {
> +    uint32_t tmp;
> +
> +    if ( !eax )
> +        eax = &tmp;
> +    if ( !ebx )
> +        ebx = &tmp;
> +    if ( !ecx )
> +        ecx = &tmp;
> +    if ( !edx )
> +        edx = &tmp;
> +

Personally I dislike this pattern, and some of that is definitely PTSD
from Xen's original hvm_cpuid() function.

hvmloader is a small enough codebase that I don't think it matters
either way.

Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>, preferably with
clarity over the disassembly.

>      asm volatile ( "cpuid"
>                     : "=a" (*eax), "=b" (*ebx), "=c" (*ecx), "=d" (*edx)
>                     : "a" (leaf), "c" (subleaf) );



From xen-devel-bounces@lists.xenproject.org Thu Apr 24 14:34:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Apr 2025 14:34:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.966415.1356626 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7xeJ-0007tG-4C; Thu, 24 Apr 2025 14:33:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 966415.1356626; Thu, 24 Apr 2025 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 1u7xeJ-0007t9-0Y; Thu, 24 Apr 2025 14:33:59 +0000
Received: by outflank-mailman (input) for mailman id 966415;
 Thu, 24 Apr 2025 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=CnO2=XK=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u7xeH-0007t3-Rl
 for xen-devel@lists.xenproject.org; Thu, 24 Apr 2025 14:33:57 +0000
Received: from mail-pf1-x431.google.com (mail-pf1-x431.google.com
 [2607:f8b0:4864:20::431])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 26487bc4-2119-11f0-9ffb-bf95429c2676;
 Thu, 24 Apr 2025 16:33:55 +0200 (CEST)
Received: by mail-pf1-x431.google.com with SMTP id
 d2e1a72fcca58-736b350a22cso926180b3a.1
 for <xen-devel@lists.xenproject.org>; Thu, 24 Apr 2025 07:33:55 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 d2e1a72fcca58-73e25aa0acfsm1438310b3a.152.2025.04.24.07.33.52
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 24 Apr 2025 07:33:53 -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: 26487bc4-2119-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745505234; x=1746110034; 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=ET8TaNJRyGQPpVdpnGRB83icJaR1bGaBpcJoCD/NbGQ=;
        b=Ki3ZA2PhH4/VvqAmn7Ncw6tsQOKQOgWvd1diKKPMKCgVF/EW3VOSBE3W51pKplo+zf
         i31jFsvR/5zTTyU9vXTcyqOfYJFcR7ey2VeLqdrugq47rAIYf8j9SXvN5tNnJE0O7Ahu
         b3J8yJwn6QnoXWnb7zk8fD13xmOqLxyQhEfp8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745505234; x=1746110034;
        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=ET8TaNJRyGQPpVdpnGRB83icJaR1bGaBpcJoCD/NbGQ=;
        b=xTwEvNBOa63vtrcPygGW1samSHAsnNT0hAX+0f6dm2q0pVy/JNSwPB4eVa8kwq6sel
         /IXm4jDFRi4EiEg1xErEAXTH6RSf6ZCIdfRGfkZLIcVMjCOchgbWvb2NSGcGQcAb0Y4n
         FjA9Duko79S8cdHhPrXJCjqMz4nQPtXe/uTkGp/Zwz98gm5DNWFuq5pdnQqtRimL6fQG
         7yDWfCUpgGN5jgEZsLTTWCkUyyDnY/TshgZS83nmBi0Bwnt6I1iR2ckm1V9pO8cIY9cH
         syAqTRDgxDaDav07tN3h9DhOVbRFCiKX1QYm2ReK0YNXRIqxencde/enAd/0NYY/gnEy
         jGTg==
X-Gm-Message-State: AOJu0YxSWXEzC2g/+nN03f3tgQ4dbnCL/MUVhfbdG2DTdo+ZACPMz31b
	HoXypoVLjkDnw6/3WpAnreJhErdYtYFqQe8zRwXe6jjJzbyE5H/iRCGB1Yuc3aA=
X-Gm-Gg: ASbGnctNOS2jzhhm2CEiYZCU4vT9FLiGIU2jH0+Eo4CBa7htyaUeV2Wowljg1hngGxz
	XPefXjm0DsWidanI7f7LDbxetaW1Gwuskn4rcfpFZGwoJJsS1LTvJEI92MEn/IEn4Bkb2QXVtJT
	JHMkeaZOVnZrXjMWX0p673smmNHPw0HibsyDeRowQNHQ0HTZ98SNaECcL8qgZ9zbLPV8qKopQtO
	xVKcN5NLbB1aG0X781RfBfcPNT4F2ajGedUAYlLK9wyhCPXQMFMDq6n7ABcRmFqVhF+jISZ1OXE
	BR4HzhSrh5JUQc7/0fawIxM7xLvKC7N500+exMP5R7t9vROuUKbc86jI
X-Google-Smtp-Source: AGHT+IHo0Zvt94eAxAJoTWAksNE3j9FkCTvLxH8tY7piYKOTiKs6FPvPQaXPe6B4m13lbkt1VcERSA==
X-Received: by 2002:a05:6a00:2e0e:b0:736:7270:4d18 with SMTP id d2e1a72fcca58-73e24633349mr3908150b3a.14.1745505234260;
        Thu, 24 Apr 2025 07:33:54 -0700 (PDT)
Date: Thu, 24 Apr 2025 16:33:48 +0200
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>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: Re: [PATCH] x86/hvmloader: fix usage of NULL with cpuid_count()
Message-ID: <aApLzKSC5wnLeShs@macbook.lan>
References: <20250424125813.96449-1-roger.pau@citrix.com>
 <72b6e9b8-8f6a-4495-ac1c-9df5822067a8@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <72b6e9b8-8f6a-4495-ac1c-9df5822067a8@citrix.com>

On Thu, Apr 24, 2025 at 03:21:05PM +0100, Andrew Cooper wrote:
> On 24/04/2025 1:58 pm, Roger Pau Monne wrote:
> > The commit that added support for retrieving the APIC IDs from the APs
> > introduced several usages of cpuid() with NULL parameters, which is not
> > handled by the underlying implementation.  For GCC I expect this results in
> > writes to the physical address at 0, however for Clang the generated code
> > in smp.o is:
> 
> Oh lovely.  I guess we need full VM testing for the Clang builds too.
> 
> > tools/firmware/hvmloader/smp.o: file format elf32-i386
> >
> > Disassembly of section .text:
> >
> > 00000000 <smp_initialise>:
> >        0: 55                            pushl   %ebp
> >        1: 89 e5                         movl    %esp, %ebp
> >        3: 53                            pushl   %ebx
> >        4: 31 c0                         xorl    %eax, %eax
> >        6: 31 c9                         xorl    %ecx, %ecx
> >        8: 0f a2                         cpuid
> 
> I get the hint that this is the whole file?  But you don't say that
> explicitly.

Yeah, realized later while reading the message myself.  This is indeed
the whole file.

> > Showing the usage of a NULL pointer results in undefined behavior, and
> > clang refusing to generate further code after it.
> >
> > Fix by using a temporary variable in cpuid_count() in place for any NULL
> > parameter.
> >
> > Fixes: 9ad0db58c7e2 ('tools/hvmloader: Retrieve APIC IDs from the APs themselves')
> > Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> > ---
> > Could also be fixed by using the temporary variable in the call sites,
> > however that's more code in the call sites at the expense of less checking.
> > I don't think the extra NULL check logic in cpuid_count() is that bad.
> >
> > Overall the solution proposed in this patch is safer going forward, as it
> > prevent issues like this from being introduced in the first place.
> > ---
> >  tools/firmware/hvmloader/util.h | 11 +++++++++++
> >  1 file changed, 11 insertions(+)
> >
> > diff --git a/tools/firmware/hvmloader/util.h b/tools/firmware/hvmloader/util.h
> > index 644450c51ceb..765a013ddd9e 100644
> > --- a/tools/firmware/hvmloader/util.h
> > +++ b/tools/firmware/hvmloader/util.h
> > @@ -190,6 +190,17 @@ static inline void cpuid_count(
> >      uint32_t *ecx,
> >      uint32_t *edx)
> >  {
> > +    uint32_t tmp;
> > +
> > +    if ( !eax )
> > +        eax = &tmp;
> > +    if ( !ebx )
> > +        ebx = &tmp;
> > +    if ( !ecx )
> > +        ecx = &tmp;
> > +    if ( !edx )
> > +        edx = &tmp;
> > +
> 
> Personally I dislike this pattern, and some of that is definitely PTSD
> from Xen's original hvm_cpuid() function.
> 
> hvmloader is a small enough codebase that I don't think it matters
> either way.
> 
> Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>, preferably with
> clarity over the disassembly.

I've adjusted to:

"""
For GCC I expect this results in writes to the physical address at 0,
however for Clang the generated code in smp.o for the whole file is:

tools/firmware/hvmloader/smp.o: file format elf32-i386
...
"""

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Apr 24 14:43:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Apr 2025 14:43:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.966426.1356637 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7xnQ-0001cm-1K; Thu, 24 Apr 2025 14:43:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 966426.1356637; Thu, 24 Apr 2025 14:43: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 1u7xnP-0001cf-SN; Thu, 24 Apr 2025 14:43:23 +0000
Received: by outflank-mailman (input) for mailman id 966426;
 Thu, 24 Apr 2025 14:43:22 +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 1u7xnO-0001cZ-Op
 for xen-devel@lists.xenproject.org; Thu, 24 Apr 2025 14:43:22 +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 1u7xnN-001hLa-0L;
 Thu, 24 Apr 2025 14:43:21 +0000
Received: from [2a01:e0a:1da:8420:b77:bd5:6e45:7633] (helo=l14)
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1u7xnM-00HIhV-2D;
 Thu, 24 Apr 2025 14:43: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=xenproject.org; s=20200302mail; h=In-Reply-To:Content-Type:MIME-Version:
	References:Message-ID:Subject:Cc:To:From:Date;
	bh=fJQp4FSLbVoFKlYSD+kNPjE/uRX1Z+jvkrQFySzn988=; b=P2HVLp2Zz1aFNPE4AF5nZtyPnw
	vT1NSdFnfzbiW3pplqWs4mX9RjZ02U5y0g3YEMDpjfIJo3cbi/m/RO7WwqFYFZPeg91NaQpGdCMsw
	R0zVPC23YV7Lqg6DYji//2rRStChk9+1SJ3l3LW0pG+UBt7g0ZrVgNh78oUy/+AJUQgM=;
Date: Thu, 24 Apr 2025 16:43:18 +0200
From: Anthony PERARD <anthony@xenproject.org>
To: Juergen Gross <jgross@suse.com>
Cc: xen-devel@lists.xenproject.org,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Community Manager <community.manager@xenproject.org>,
	Samuel Thibault <samuel.thibault@ens-lyon.org>
Subject: Re: [PATCH v2 4/6] tools: remove qemu-traditional
Message-ID: <aApOBsLtGWQ0qjK0@l14>
References: <20250408123526.14613-1-jgross@suse.com>
 <20250408123526.14613-5-jgross@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20250408123526.14613-5-jgross@suse.com>

On Tue, Apr 08, 2025 at 02:35:22PM +0200, Juergen Gross wrote:
> diff --git a/INSTALL b/INSTALL
> index 88c1464816..786e3da996 100644
> --- a/INSTALL
> +++ b/INSTALL

There's one "--enable-ioemu-stubdom" left in this file.

> diff --git a/stubdom/Makefile b/stubdom/Makefile
> index 724ce40365..82fc1e90f8 100644
> --- a/stubdom/Makefile
> +++ b/stubdom/Makefile
> @@ -544,13 +478,6 @@ else
>  install: $(STUBDOMPATH)
>  endif
>  
> -install-ioemu: ioemu-stubdom
> -	$(INSTALL_DIR) "$(DESTDIR)$(LIBEXEC_BIN)"
> -	$(INSTALL_PROG) stubdom-dm "$(DESTDIR)$(LIBEXEC_BIN)"
> -	$(INSTALL_DATA) stubdompath.sh "$(DESTDIR)$(LIBEXEC_BIN)"

If we don't install "stubdompath.sh", we don't need to make it
anymore, that is $(STUBDOMPATH) rule and as prerequisite isn't needed
anymore.

I think "stubdompath.sh" is only used by "stubdom-dm", so we can remove
all mention of "stubdompath.sh" or "$(STUBDOMPATH)", here or in the next
patch.

And with $(STUBDOMPATH) path gone, this will be the user of the make
macro $(buildmakevars2file) and $(BUILD_MAKE_VARS), so I think the could
be both removed as well.

> -	$(INSTALL_DIR) "$(DESTDIR)$(XENFIRMWAREDIR)"
> -	$(INSTALL_DATA) mini-os-$(XEN_TARGET_ARCH)-ioemu/mini-os.gz "$(DESTDIR)$(XENFIRMWAREDIR)/ioemu-stubdom.gz"
> -
>  install-grub: pv-grub
>  	$(INSTALL_DIR) "$(DESTDIR)$(XENFIRMWAREDIR)"
>  	$(INSTALL_DATA) mini-os-$(XEN_TARGET_ARCH)-grub/mini-os.gz "$(DESTDIR)$(XENFIRMWAREDIR)/pv-grub-$(XEN_TARGET_ARCH).gz"
> diff --git a/tools/Makefile b/tools/Makefile
> index e9e1cda305..6ecf7c0da8 100644
> --- a/tools/Makefile
> +++ b/tools/Makefile
> @@ -136,54 +129,6 @@ endif
> -
> -qemu-traditional-recurse = \
> -	set -e; \
> -		$(buildmakevars2shellvars); \

These are the last mention of the make macro $(buildmakevars2shellvars),
so we can remove it from Config.mk.


Thanks,

-- 
Anthony PERARD


From xen-devel-bounces@lists.xenproject.org Thu Apr 24 14:47:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Apr 2025 14:47:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.966445.1356645 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7xrm-0002Cu-F7; Thu, 24 Apr 2025 14:47:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 966445.1356645; Thu, 24 Apr 2025 14:47: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 1u7xrm-0002Cn-CW; Thu, 24 Apr 2025 14:47:54 +0000
Received: by outflank-mailman (input) for mailman id 966445;
 Thu, 24 Apr 2025 14:47:53 +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 1u7xrl-0002Ch-9m
 for xen-devel@lists.xenproject.org; Thu, 24 Apr 2025 14:47:53 +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 1u7xrl-001hTA-0F;
 Thu, 24 Apr 2025 14:47:53 +0000
Received: from [2a01:e0a:1da:8420:b77:bd5:6e45:7633] (helo=l14)
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1u7xrk-00HVPz-2f;
 Thu, 24 Apr 2025 14:47: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=xenproject.org; s=20200302mail; h=In-Reply-To:Content-Type:MIME-Version:
	References:Message-ID:Subject:Cc:To:From:Date;
	bh=Ddh6wJKe/o4cCy1ry10f1/+Xm0rK7AxGtWGhKrJEEj4=; b=w6AP2S/+LyAWMxDGLq9K/Kz3ph
	PKunV/d8ciNXX//80rqj39ozOjjC7UR/7oXCsmRPQlimYGCdEtF8JE3GegzC6IqxXvxRUxKT8FfAi
	BHUPzEQYC+5IHwUpWlEJ4tCE4Qf/VeMCUFa4ViDmD2ziKKpQvQ9JIm4+dO66unu04/+Y=;
Date: Thu, 24 Apr 2025 16:47:51 +0200
From: Anthony PERARD <anthony@xenproject.org>
To: Juergen Gross <jgross@suse.com>
Cc: xen-devel@lists.xenproject.org,
	Samuel Thibault <samuel.thibault@ens-lyon.org>
Subject: Re: [PATCH v2 5/6] stubdom: remove ancient stubdom-dm script
Message-ID: <aApPF9A-6ZjM__st@l14>
References: <20250408123526.14613-1-jgross@suse.com>
 <20250408123526.14613-6-jgross@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20250408123526.14613-6-jgross@suse.com>

On Tue, Apr 08, 2025 at 02:35:23PM +0200, Juergen Gross wrote:
> The stubdom-dm script is still using "xm" instead of "xl", so it is
> probably unused since more than 10 years now.
> 
> Signed-off-by: Juergen Gross <jgross@suse.com>

Reviewed-by: Anthony PERARD <anthony.perard@vates.tech>

Thanks,

-- 
Anthony PERARD


From xen-devel-bounces@lists.xenproject.org Thu Apr 24 14:50:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Apr 2025 14:50:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.966455.1356655 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7xuM-0003hy-R5; Thu, 24 Apr 2025 14:50:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 966455.1356655; Thu, 24 Apr 2025 14:50: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 1u7xuM-0003hr-Oa; Thu, 24 Apr 2025 14:50:34 +0000
Received: by outflank-mailman (input) for mailman id 966455;
 Thu, 24 Apr 2025 14:50:33 +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 1u7xuL-0003hA-9z
 for xen-devel@lists.xenproject.org; Thu, 24 Apr 2025 14:50:33 +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 1u7xuK-001hZa-2d;
 Thu, 24 Apr 2025 14:50:32 +0000
Received: from [2a01:e0a:1da:8420:b77:bd5:6e45:7633] (helo=l14)
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1u7xuK-0001S3-1M;
 Thu, 24 Apr 2025 14:50:32 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=In-Reply-To:Content-Type:MIME-Version:
	References:Message-ID:Subject:Cc:To:From:Date;
	bh=/2leqnixMz8bcci6giaiurg5UqIOpwbp0yvzE/Ox9X0=; b=48CqHOamPaE+1Nm+XBgEM4/m9H
	yNwT4+4WNO5/CblEiW4G26iwEy0fEBIWJ9x0kWL5YKKQxfDjXQTyOFGK6RvzLqF0iieMF7vDtF3L8
	9imgT3FDmFa62bxeFKGaxQvlZQfHptUz0aoMoe8f75uiAQPHDPZ6VSox/DPayKdxdJQU=;
Date: Thu, 24 Apr 2025 16:50:30 +0200
From: Anthony PERARD <anthony@xenproject.org>
To: Juergen Gross <jgross@suse.com>
Cc: xen-devel@lists.xenproject.org,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH v2 6/6] build: don't require full tools build for
 building stubdoms
Message-ID: <aApPtoqyNOjj7A-1@l14>
References: <20250408123526.14613-1-jgross@suse.com>
 <20250408123526.14613-7-jgross@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20250408123526.14613-7-jgross@suse.com>

On Tue, Apr 08, 2025 at 02:35:24PM +0200, Juergen Gross wrote:
> With the drop of qemu-traditional "make stubdom" no longer requires
> "make tools" to have finished.
> 
> It is enough to add "install-tools-public-headers" as a prereq of
> "install-stubdom".
> 
> Signed-off-by: Juergen Gross <jgross@suse.com>

Once the rest of the patch series
is committed: Acked-by: Anthony PERARD <anthony.perard@vates.tech>

Thanks,

-- 
Anthony PERARD


From xen-devel-bounces@lists.xenproject.org Thu Apr 24 15:00:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Apr 2025 15:00:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.966467.1356667 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7y3V-0004pN-ON; Thu, 24 Apr 2025 15:00:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 966467.1356667; Thu, 24 Apr 2025 15:00: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 1u7y3V-0004pG-Ju; Thu, 24 Apr 2025 15:00:01 +0000
Received: by outflank-mailman (input) for mailman id 966467;
 Thu, 24 Apr 2025 14:59:59 +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 1u7y3T-0004pA-IW
 for xen-devel@lists.xenproject.org; Thu, 24 Apr 2025 14:59:59 +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 1u7y3T-001hpC-0w;
 Thu, 24 Apr 2025 14:59:59 +0000
Received: from [2a01:e0a:1da:8420:b77:bd5:6e45:7633] (helo=l14)
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1u7y3S-000RUN-32;
 Thu, 24 Apr 2025 14: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=xenproject.org; s=20200302mail; h=In-Reply-To:Content-Type:MIME-Version:
	References:Message-ID:Subject:Cc:To:From:Date;
	bh=jbVErCU31Ri7NPzLNbD8MTZKyQ2bICIYAMYxokQtFis=; b=qlVRb+KxSNDADWZKVehonwZS7s
	q5eyDJ/F2jujSDTH5PZ1nCyzG09crxvQrX7BU1I2lF2mf3Sni+ksEcdZee9keFwd9j2LEr4FCSTFy
	gy7VAwKfMN9rq782T9KMy7N0aBG6gPYjO98X4FfB8Lo8ij/6B60lu59VxUD5WRjz4Q8U=;
Date: Thu, 24 Apr 2025 16:59:57 +0200
From: Anthony PERARD <anthony@xenproject.org>
To: Jason Andryuk <jason.andryuk@amd.com>
Cc: xen-devel@lists.xenproject.org,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: Re: [PATCH 1/2] tools/xen-hptool: Add missing newlines
Message-ID: <aApR7WIqpaASajs8@l14>
References: <20250423212821.42776-1-jason.andryuk@amd.com>
 <20250423212821.42776-2-jason.andryuk@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20250423212821.42776-2-jason.andryuk@amd.com>

On Wed, Apr 23, 2025 at 05:28:20PM -0400, Jason Andryuk wrote:
> Add some missing newlines to error messages.
> 
> Fixes: 284d5633be37 ("Tools: add online/offline hotplug user interfaces")
> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>

Acked-by: Anthony PERARD <anthony.perard@vates.tech>

Thanks,

-- 
Anthony PERARD


From xen-devel-bounces@lists.xenproject.org Thu Apr 24 15:00:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Apr 2025 15:00:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.966475.1356675 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7y4A-0006MB-2B; Thu, 24 Apr 2025 15:00:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 966475.1356675; Thu, 24 Apr 2025 15: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 1u7y49-0006M4-Vd; Thu, 24 Apr 2025 15:00:41 +0000
Received: by outflank-mailman (input) for mailman id 966475;
 Thu, 24 Apr 2025 15:00:41 +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 1u7y49-0006Ly-Es
 for xen-devel@lists.xenproject.org; Thu, 24 Apr 2025 15:00:41 +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 1u7y49-001hri-0W;
 Thu, 24 Apr 2025 15:00:41 +0000
Received: from [2a01:e0a:1da:8420:b77:bd5:6e45:7633] (helo=l14)
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1u7y48-000TXd-2u;
 Thu, 24 Apr 2025 15:00: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=xenproject.org; s=20200302mail; h=In-Reply-To:Content-Type:MIME-Version:
	References:Message-ID:Subject:Cc:To:From:Date;
	bh=UUVWO8xhBRbA6mpQJxdKUahxWtydL2pWqmO5YYmQT9g=; b=AjTkySW7VPiXCg0BtKOJ3Phps6
	lqiuMT8Npy4WFYxLjUgCIF1w5pe/ijXcX8gX7M7B6sC6G12pRrY2LyUU1/aDZlAWkxlx2JNJQgGWz
	OE8IFsgI7yyYnPUsgfmTxXbXzeS1atsXp7stZCI5HXo7ighwgaSjurcgsvpkecglXioU=;
Date: Thu, 24 Apr 2025 17:00:39 +0200
From: Anthony PERARD <anthony@xenproject.org>
To: Jason Andryuk <jason.andryuk@amd.com>
Cc: xen-devel@lists.xenproject.org,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: Re: [PATCH 2/2] tools/xen-hptool: Replace hard tabs
Message-ID: <aApSF7bWv-1Xy1EY@l14>
References: <20250423212821.42776-1-jason.andryuk@amd.com>
 <20250423212821.42776-3-jason.andryuk@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20250423212821.42776-3-jason.andryuk@amd.com>

On Wed, Apr 23, 2025 at 05:28:21PM -0400, Jason Andryuk wrote:
> With a tab stop of 8, the alignment is off.  Replace the hard tabs with
> spaces to match the file.
> 
> Fixes: 284d5633be37 ("Tools: add online/offline hotplug user interfaces")
> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>

Acked-by: Anthony PERARD <anthony.perard@vates.tech>

Thanks,

-- 
Anthony PERARD


From xen-devel-bounces@lists.xenproject.org Thu Apr 24 15:16:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Apr 2025 15:16:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.966491.1356685 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7yJd-0000RD-BN; Thu, 24 Apr 2025 15:16:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 966491.1356685; Thu, 24 Apr 2025 15:16:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7yJd-0000R6-8m; Thu, 24 Apr 2025 15:16:41 +0000
Received: by outflank-mailman (input) for mailman id 966491;
 Thu, 24 Apr 2025 15:16:40 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=KQwv=XK=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1u7yJc-0000R0-Ct
 for xen-devel@lists.xenproject.org; Thu, 24 Apr 2025 15:16:40 +0000
Received: from NAM10-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam10on20619.outbound.protection.outlook.com
 [2a01:111:f403:2413::619])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1b99aff8-211f-11f0-9ffb-bf95429c2676;
 Thu, 24 Apr 2025 17:16:35 +0200 (CEST)
Received: from MW2PR16CA0062.namprd16.prod.outlook.com (2603:10b6:907:1::39)
 by SJ1PR12MB6243.namprd12.prod.outlook.com (2603:10b6:a03:456::13) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.27; Thu, 24 Apr
 2025 15:16:30 +0000
Received: from SJ5PEPF000001EE.namprd05.prod.outlook.com
 (2603:10b6:907:1:cafe::df) by MW2PR16CA0062.outlook.office365.com
 (2603:10b6:907:1::39) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.35 via Frontend Transport; Thu,
 24 Apr 2025 15:16:30 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 SJ5PEPF000001EE.mail.protection.outlook.com (10.167.242.202) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Thu, 24 Apr 2025 15:16:29 +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, 24 Apr
 2025 10:16:28 -0500
Received: from [172.20.75.239] (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, 24 Apr 2025 10:16:26 -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: 1b99aff8-211f-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ZwSwtPn7DZKYRV9piqPRtSIIwuUihQtskVHwvaUlpDQp7OcFOAeuaZotHvkj9+srz+GlQ/E/GGNzN17FHooKqqvOfnqwrskSa2ObfsujtD7rJ5Sovy5+cH79fwHqaic8DkJ89uKGrauk6OyOjyLT94MHvJ2AKzOIKajzu4fr+6m4lfo8GDH10Hes1swVEImqXaWa5EM/VuoDNX7Tbx/apOUAk9D4KAtgKsrpxigcer7Y8kOLBwJbbxrI9nfzp4TLWe4h+gGDdPpedY2KMZ01CBO5pAgTMXWTk4qHqImERessgcD/gM7P++3o+J445jZ2lYp6CNoozIlqW/jHl2Kykg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=HLkqiYHz/dfTOq+gF9FZyxmHm5M1bod8XoHvUSWEMi4=;
 b=bP1lmph9NeqplazCKlBzcjAEUQXDy6RaVdcOej1UkMLRyKKALwxDRdrq4QxK6tx6C2vgYOPX7pMPmU4f+CghnGrTtjqFvl8iJxN/tShYLdK8IEoZuOg42WAvRR7ctYsny0HSsUgjVy1NBqmY1KjkfGIUmVFOwV5QbdQOek3q8fQ1RmDYAs+jNKfZEQiebMjlfi/VLb2VVvJUY1Q4JWgRidwZrQYlnxyaiAlnm4w7gXpUuHDOEk/4m6KfY5usd23aT3IYgr0REttY/N9Hx3P9NSgwlMJseAXisocodUYPo64BDeZzV1H9J1jnssvOtsnNM9EPXqofL34iMng7Ti58hw==
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=HLkqiYHz/dfTOq+gF9FZyxmHm5M1bod8XoHvUSWEMi4=;
 b=jA7hL/Tof8lGBxoBLOBayTPXoJLKlmzLLERVNxyb+DRrU7nQnoBH/jip6Ej3eZ2WSubgFkLlvE6p8bNaNleE3PEwKEeS92RTROv1e9P4odNLBwfqGEa53WKdxoSkKzUCx87z7U559wb4OpzqzCNS4uWK83qaPx1xPFJIZa99TS0=
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: <882700a9-a59f-4249-8131-b0dae5f12bfe@amd.com>
Date: Thu, 24 Apr 2025 11:16:26 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 3/4] xen/arm: add support for PCI child bus
To: Mykyta Poturai <Mykyta_Poturai@epam.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
CC: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@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>
References: <cover.1745402473.git.mykyta_poturai@epam.com>
 <79bbb6705638445526bbd1fa299b7bfd0d087462.1745402473.git.mykyta_poturai@epam.com>
Content-Language: en-US
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
In-Reply-To: <79bbb6705638445526bbd1fa299b7bfd0d087462.1745402473.git.mykyta_poturai@epam.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: SJ5PEPF000001EE:EE_|SJ1PR12MB6243:EE_
X-MS-Office365-Filtering-Correlation-Id: dfb9ba63-ad1f-4794-e2eb-08dd8342fd73
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|1800799024|36860700013|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?Qk15VitOZkJTUkhMalJaY3FGemVnQXZ5WENqZ0IwWVN3SElkZTdvazZjeURH?=
 =?utf-8?B?bVQwTWEvblJ2OER1RDN6T3MxYUtDWko1NjRXRHQ0VVZnYzR5TXVqeHN6MWhW?=
 =?utf-8?B?TzFabVArdjF5N2pESFU2SW9peTJSMmhSaUFnQzFReEFBVWpVOFVQMVBXWXN3?=
 =?utf-8?B?bnRONFFtK2lzNnVNeTBWa21tdXRoL1RDb3dRZlJ0NTQ0WWVPYjBlTGpZT1Vz?=
 =?utf-8?B?ZWgrQWI4YXBBSXR1SGNONTZiNW8wTTlqbVgxZFNndjZxZElkQ2gyN3grLzRy?=
 =?utf-8?B?OCtBSTN5QlJyeC8rcnd5VXl2aFQvM2RFNjhxc2MwVHZPdWt3OWRORDJlRk1p?=
 =?utf-8?B?YU50VHAvb1g3MnljSk4ybEtRNnNuNkt1ZHVGVDEwNGZXSnFwaHVKZGNCVUp6?=
 =?utf-8?B?NS9TOHhrenVJOUtleTRoN1JVWFIyM3JFdjkrYnIzVU56N1NnMXorVmcvbEJS?=
 =?utf-8?B?RXpPMldmcStVbFQ4aEhCY2Z2RUtJY1pRcDhVUXc4ZFRUVmZ0VUlENDJzNWs5?=
 =?utf-8?B?T3hLeFRHSGNlUytpLzc3bndMQi9ObC9jOCt3ZlFmMXZQV1dHUHo3VjZUcXUz?=
 =?utf-8?B?OWxXbmpTOHc1ZDBsOVhzdG0xWnRjdzk1MkR0Y2t3My8zcWE2VjBvSDJVL0tB?=
 =?utf-8?B?cWYwc0ZMbWVqU25SemFFaGg0eldFeTVYQTF3Uy9LdDEvdFhjQXhvNmVxWlVv?=
 =?utf-8?B?bndDOHBxUFIrREtMc0d0VW5XRUwxQVRUSnBJeUZKS21SS1RmZDhMS3RXOHJN?=
 =?utf-8?B?bkFqV0MxelQ4VEw2bnNmMi9pMCtkMlFlK3BNS1daUUh0UXVNR1F3TDJ5RS9n?=
 =?utf-8?B?QW1CT29EZWRRaHU3YjMwa2hWRExFSDRZVzhsUkNHTUtJaWdZQzVnc2JJUUZv?=
 =?utf-8?B?QXBaZzVVWmljVW4wRnExWTVpdGx6OXV1SCt1Mk04UEpzRVBRamJuRjl1UTRR?=
 =?utf-8?B?bk5ab3BRbE5CVmNiWk1IVlFKMFVvSEE4Nyszbk5FZVBMc0RxRExXVUE1dm4x?=
 =?utf-8?B?QlhpbDBzZW9sTnNFYWVCemZLL01Vc1YyOGxIZlJ3MXVITzRhYkdLNUN5akNp?=
 =?utf-8?B?K1dCcEJLYVdRSWhoM1gzaG82bWxRay9GQ1V5NGJ0TGNocy9KcXRQa0RxRUNu?=
 =?utf-8?B?czE3bytLd1ZCK25hTm96OHpzOWR0Z1VISFJkNjdNQ3VSTDV6ZktDWFFQc1ZJ?=
 =?utf-8?B?UXJ4RGsxK3VKNWRzVmlwaWNmd1JSTUJLcFlSdDhkeitGd0NPYmxpa0JyNVlm?=
 =?utf-8?B?QytYYjBEODVJVjUzaEpWVjA1eTd3ODVXTjVqdDEwbk56YW5iWHZERk94TUl2?=
 =?utf-8?B?Wk9keXZkeHpZdUlZQVN2ZDVoeFBETERQN2FHMGJYd0NQMVhrRERoYkpqVVRy?=
 =?utf-8?B?Y3M3T2VjaThRblQybDFFaWNucTJmSWNMZmdjb2gwWkkxdU8wUlhKT1hObDkw?=
 =?utf-8?B?dk15cUtiaUtCL1JRamZsNmt2S0UxNXZJa2NDV3pHdEo4MitmS1oxUlY4YWxH?=
 =?utf-8?B?bWtDKzMrdVFGcUp2OVJvU1pObVRVb09qU1BXZnpjQVl5aUlvS1F4MGkxa2tI?=
 =?utf-8?B?Wk5URlU3Qll3eTJXU0kyamZmZm50RlhidVhrVEVjcFYrN25PU201OEJGaHZM?=
 =?utf-8?B?OFphbEExNTdOL2RMeStxL0Y5NU1TMzJuRFRsWHhicUZIY3MrWTlMZGZoMjVD?=
 =?utf-8?B?OC9lSGF4MWhjT1pDOHNjbStZeFBrRDJRWUZhZ0w0cGNjbytnV2RoMVVYa2ZE?=
 =?utf-8?B?VVQ3T0t5TWpnWGxEcFROZWRuMGhpVXQzcTM1MEVZbEhodVFleElKZmg1OEdP?=
 =?utf-8?B?ZEtLdnJqV0ZzejMybDlXcmlQQ3MrZm1acXRjL2pQOVdiQUxmRmRjR2JjUE1L?=
 =?utf-8?B?S1dXanFwR2VRQms5UkFrUlFCM1Z0b2RDYk1TRm1PRDBIMEpkZDNWajQ4dnZZ?=
 =?utf-8?B?bWZDdTFSZW9ET3RpbHpMME01bWtndlpsQlB3d2ROazVmOXFDTjVhdEhEVEY5?=
 =?utf-8?B?QWRTL0tXSWIvR0granA3T3o3WUlyMU5CcUlhVFRYSHBUaG5LemVNeW14YkhZ?=
 =?utf-8?Q?Y4Phwa?=
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)(36860700013)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Apr 2025 15:16:29.8382
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: dfb9ba63-ad1f-4794-e2eb-08dd8342fd73
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:
	SJ5PEPF000001EE.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ1PR12MB6243

On 4/23/25 07:08, Mykyta Poturai wrote:
> diff --git a/xen/arch/arm/pci/pci-access.c b/xen/arch/arm/pci/pci-access.c
> index 9f9aac43d7..91271973fb 100644
> --- a/xen/arch/arm/pci/pci-access.c
> +++ b/xen/arch/arm/pci/pci-access.c
> @@ -18,10 +18,31 @@
>  #define INVALID_VALUE (~0U)
>  #define PCI_ERR_VALUE(len) GENMASK(0, len * 8)
>  
> +static const struct pci_ops *get_ops(struct pci_host_bridge *bridge,
> +                                     pci_sbdf_t sbdf)
> +{
> +    if ( bridge->child_ops )
> +    {
> +        struct pci_config_window *cfg = bridge->child_cfg;
> +
> +        if ( (sbdf.bus >= cfg->busn_start) && (sbdf.bus <= cfg->busn_end) )
> +            return bridge->child_ops;
> +    }
> +    return bridge->ops;
> +}
> +
> +static inline void __iomem *map_bus(struct pci_host_bridge *bridge, pci_sbdf_t sbdf,

Line too long


From xen-devel-bounces@lists.xenproject.org Thu Apr 24 16:11:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Apr 2025 16:11:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.966533.1356734 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7zAC-0002Vb-59; Thu, 24 Apr 2025 16:11:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 966533.1356734; Thu, 24 Apr 2025 16:11:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7zAC-0002VQ-1y; Thu, 24 Apr 2025 16:11:00 +0000
Received: by outflank-mailman (input) for mailman id 966533;
 Thu, 24 Apr 2025 16:10: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=/3PA=XK=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u7zAA-0001nN-Cp
 for xen-devel@lists.xenproject.org; Thu, 24 Apr 2025 16:10:58 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on2062d.outbound.protection.outlook.com
 [2a01:111:f403:2414::62d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b395bc8c-2126-11f0-9ffb-bf95429c2676;
 Thu, 24 Apr 2025 18:10:56 +0200 (CEST)
Received: from BYAPR21CA0029.namprd21.prod.outlook.com (2603:10b6:a03:114::39)
 by CH3PR12MB8355.namprd12.prod.outlook.com (2603:10b6:610:131::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.23; Thu, 24 Apr
 2025 16:10:48 +0000
Received: from SJ5PEPF000001C8.namprd05.prod.outlook.com
 (2603:10b6:a03:114:cafe::b) by BYAPR21CA0029.outlook.office365.com
 (2603:10b6:a03:114::39) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8699.6 via Frontend Transport; Thu,
 24 Apr 2025 16:10:48 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ5PEPF000001C8.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.8655.12 via Frontend Transport; Thu, 24 Apr 2025 16:10:47 +0000
Received: from xcbagarciav01.xilinx.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; Thu, 24 Apr
 2025 11:10:44 -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: b395bc8c-2126-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=NpAkOr/tCXZIEbzKsKJOE8TEtQV59Sj7VyF2S/8byEhjg6DHBIfhRuSFeR7w6Jym2TQLfRuXawwdNnvQ9gOHMqIDoqugs/XLc2r6gCcgbb881Qw7hep71pnPIy5DN6QTMkQgXtccoYfgFl9vbZBQ37LPBTawqY15rbfl4LGybd3RBvIzbndiS9YWxGNGyNAiyLkX/18xcEsg8GVsAsS5aCc3gF/j1W1c1PEAX+K/4Nz6QPiURQj1OGID2Vw/K1xn1zqfmaLA4nUzwGowc+FGkNz1UJaYPl/l9nSDJA3tyJUFO4N2MbdMuj7ZRvKlEF/uXJB0SbsUA6AevgXazvG7uQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=de7GYhFNLaKxmeIKJByEJNI5+c/cE+47MXdYWvs3Q/Y=;
 b=wa3oYDsDRoidpHZ8hDBlt7W/NGDWVvmqD7WyqMCMKOIdL/fzzQpDige+nox1VrDE2xvqSDWEFSkUHmVdE3Q3N172nMDDc/sroNhvSaq6W++gVWxfC+Hit8CyEvSrVL+JGH5Q4q8pNnTOgWGkbaZ2Ux7TznDItcXpm78Ui39q4gR6bGIXgbSKOec4E4O0zyfx5YJEUTfT3v3P+gl26m3KB06hMtU2n22wt7JR7IrCWjMLprw/y3CY3HOD92TSRCDFJF1i3wpQ7xpjhQqlSvxsbNKX95P1EPaEcPC0Y9JHNTzbwu41trXGNkAIoaPhx7hSSRGnwMDaR3iQomkAp+vbQA==
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=de7GYhFNLaKxmeIKJByEJNI5+c/cE+47MXdYWvs3Q/Y=;
 b=FWk1oBD6ROYjUdtA2jdHh0Er5kp9Rei74kXbHCCswOd7vAII/k55DklD/aD6dnm2I7rO7KXHvL7JF9Vptad0g3L0lvl8BrIusktm+zSO8F6npHECvPouiCkurEJzc8WBmKBQY13NbIlkpPIweqfWTVGrTfT8DlAA0tXYssXI5gw=
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: Alejandro Vallejo <agarciav@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: "Daniel P. Smith" <dpsmith@apertussolutions.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, "Julien
 Grall" <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, "Jason
 Andryuk" <jason.andryuk@amd.com>, Alejandro Vallejo <agarciav@amd.com>
Subject: [PATCH v5 02/12] common/hyperlaunch: introduce the domain builder
Date: Thu, 24 Apr 2025 17:10:12 +0100
Message-ID: <20250424161027.92942-3-agarciav@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20250424161027.92942-1-agarciav@amd.com>
References: <20250424161027.92942-1-agarciav@amd.com>
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: SJ5PEPF000001C8:EE_|CH3PR12MB8355:EE_
X-MS-Office365-Filtering-Correlation-Id: afc21d88-8450-405d-1d71-08dd834a9369
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|82310400026|1800799024|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?sLLnrIsfZVZGc/ZNRAEor1KoP3FQJQC5NvaVYJiE0Nmo2VhGMMhx9T4Dohjb?=
 =?us-ascii?Q?4NBIhyP/B5xYIOIb9Fo0vCb7hdXnLS5h4KZLubmXuwAU9aAVnNajsoPsOLYu?=
 =?us-ascii?Q?7Jvmen7g+9LFyJ/6FJCJEOIY6HQtpWcBM3x+JDYGJX8yNyQ1FgFJpOFRmyu2?=
 =?us-ascii?Q?mhkJTNnnWvJ9G7N+/HwpBkZyfzggL+GYy1W5SGlkC7/z69BsvImGfIL2K4ns?=
 =?us-ascii?Q?5Cub/ZM1yJM5gn9mGz/LtyuFJMYsj4zp3HGJi6aM2Ybh8Ah0j+Zg4nhdU9ab?=
 =?us-ascii?Q?6HofHj6xHHe0gi3yYH6irHyNQMvlgAJAH/7n5JCPQzlqQLUGidNzh0ajt1mT?=
 =?us-ascii?Q?07KanlkPDw6fdRHvXYKn+LxUysYhlT+NgktTEW6y/U2RsD3dGX4yl5zuwlvl?=
 =?us-ascii?Q?3QxC1mDctNxZhuST8ph4OfRmRriwi729V6cJVCe0fO9NV95WQ8R9kKMtrClx?=
 =?us-ascii?Q?5aLW/wDPM1qmwXAsuj5nSGFr1Hd3s66YSsKmVjC4M0RQZ49H3Kv31TIF/KpN?=
 =?us-ascii?Q?/Z2KnziHlUMfITByamrYze1cwDUo6N6n7yugTuZOR5QO1eE1x0QhIFiTdA45?=
 =?us-ascii?Q?upiS2eFwHcO3neACWz+gAeyLCezG4VxgxHehjwz8LVJfkAlEdtQ6giF+IvR5?=
 =?us-ascii?Q?Mp87eYX8U0ZySrMAeMMMCw7ll+uIWP7n3foi8osffkcgQEcCEc2aAEQGbBcA?=
 =?us-ascii?Q?nuo0VtkTAQwqBKblwLSLBE++H/PV2iu0cC6m2DoCbBGSMgARx6EBSDG6tpJp?=
 =?us-ascii?Q?4xyS/taZYqWTjwIDf2BP/xudD+QPo3r3cZIfEUMsvXy56btvrrJr3WAuqa7h?=
 =?us-ascii?Q?c3XEyDA7c9GmeWnPVSzoHQ93Dc98nOV2BnEpfIA9EZZiEdhkS2Yj8d9rN/1I?=
 =?us-ascii?Q?sQPvOVIbjnLMjNJQn6hfJW9Fq0KkuVZoCkrLUdXWLtK6aA4SGm22tR9nOZHN?=
 =?us-ascii?Q?cGwqjgc3TIi+GveigvFz3K0kHfzVIabDNaj/UQ8Bgx+rv+w6G0ckevnhvBeu?=
 =?us-ascii?Q?JkwP22nbYfLu8G9kp28sJcs0aQJyJCU1DduLOLlV98v8OjwnYMyR9Lwlmh7M?=
 =?us-ascii?Q?j53ahL8zN+5210yQfXAhEDV7gcDg0uloA/x2purWuY4EDUWrtGHcRkfBr3i2?=
 =?us-ascii?Q?iS0Z1yxq0pEWEzQJ3Sk4UNV4mYyK6d4KuTBWr2Rrlf9ZXZF6+Kqj8iBGVJ2d?=
 =?us-ascii?Q?QJuVL3ZFAFkS+EQjE01TlfS1+mRwBDwxLaI4TYjR0TVhlfcARlG0ioiR7fwu?=
 =?us-ascii?Q?CabDVTZ419LGzJnzLCmnA6PnPmGSYNTqjb7gAE8IgXFc/ueUeh7Nt4iBqwi8?=
 =?us-ascii?Q?ZhLJl+atXna3HzNmQyQIxLcwK8sKtBWVCfBklFjtsrsqDBN2WyjFO4PMqhQJ?=
 =?us-ascii?Q?hsloc2havhSqBPZeShNoEULN97/e+g3IpQIC3RnuJgJfJqeBmbbQf4vckYSa?=
 =?us-ascii?Q?3Igoi/f6d1qRycvy32ic8xwxtTuttA6IsThHxIjsvLsoZD9hb/CO9CqI0H5P?=
 =?us-ascii?Q?k/B6iX9JMD1MW7ls0V94MTP4anxjbLOm6azS?=
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: 24 Apr 2025 16:10:47.9030
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: afc21d88-8450-405d-1d71-08dd834a9369
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:
	SJ5PEPF000001C8.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB8355

From: "Daniel P. Smith" <dpsmith@apertussolutions.com>

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>
Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
Signed-off-by: Alejandro Vallejo <agarciav@amd.com>
---
v5:
  * Decoupled core.c from !CONFIG_DOMAIN_BUILDER
  * builder_init() now returns an enumerated type of the kind of FDT it
    found. If no FDT is found, then initialisation happens inline in
    setup.c
  * Refactored the switch in core.c to operate on an enumerated type instead
     * This has knock-on effects on the helper
  * Moved hyperlaunch detection path to the following patch
---
 xen/arch/x86/include/asm/bootinfo.h |  3 ++
 xen/arch/x86/setup.c                | 19 ++++++++----
 xen/common/Makefile                 |  1 +
 xen/common/domain-builder/Makefile  |  2 ++
 xen/common/domain-builder/core.c    | 45 +++++++++++++++++++++++++++++
 xen/common/domain-builder/fdt.c     | 39 +++++++++++++++++++++++++
 xen/common/domain-builder/fdt.h     | 14 +++++++++
 xen/include/xen/domain-builder.h    | 29 +++++++++++++++++++
 8 files changed, 146 insertions(+), 6 deletions(-)
 create mode 100644 xen/common/domain-builder/Makefile
 create mode 100644 xen/common/domain-builder/core.c
 create mode 100644 xen/common/domain-builder/fdt.c
 create mode 100644 xen/common/domain-builder/fdt.h
 create mode 100644 xen/include/xen/domain-builder.h

diff --git a/xen/arch/x86/include/asm/bootinfo.h b/xen/arch/x86/include/asm/bootinfo.h
index 3afc214c17..82c2650fcf 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/setup.c b/xen/arch/x86/setup.c
index cf1ea040dd..bd13d9d196 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -5,6 +5,7 @@
 #include <xen/cpuidle.h>
 #include <xen/dmi.h>
 #include <xen/domain.h>
+#include <xen/domain-builder.h>
 #include <xen/domain_page.h>
 #include <xen/efi.h>
 #include <xen/err.h>
@@ -1283,9 +1284,14 @@ 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];
+    if ( builder_init(bi) == FDT_KIND_NONE )
+    {
+        /* 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];
+        bi->hyperlaunch_enabled = false;
+    }
 
     if ( pvh_boot )
     {
@@ -1468,8 +1474,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);
+    bi->domains[0].kernel->headroom =
+        bzimage_headroom(bootstrap_map_bm(bi->domains[0].kernel),
+                         bi->domains[0].kernel->size);
     bootstrap_unmap();
 
 #ifndef highmem_start
@@ -1593,7 +1600,7 @@ void asmlinkage __init noreturn __start_xen(void)
 #endif
     }
 
-    if ( bi->mods[0].headroom && !bi->mods[0].relocated )
+    if ( bi->domains[0].kernel->headroom && !bi->domains[0].kernel->relocated )
         panic("Not enough memory to relocate the dom0 kernel image\n");
     for ( i = 0; i < bi->nr_modules; ++i )
     {
diff --git a/xen/common/Makefile b/xen/common/Makefile
index 98f0873056..e42af71e3f 100644
--- a/xen/common/Makefile
+++ b/xen/common/Makefile
@@ -11,6 +11,7 @@ obj-$(filter-out $(CONFIG_X86),$(CONFIG_ACPI)) += device.o
 obj-$(CONFIG_HAS_DEVICE_TREE) += device-tree/
 obj-$(CONFIG_IOREQ_SERVER) += dm.o
 obj-y += domain.o
+obj-$(CONFIG_DOMAIN_BUILDER) += domain-builder/
 obj-y += event_2l.o
 obj-y += event_channel.o
 obj-$(CONFIG_EVTCHN_FIFO) += event_fifo.o
diff --git a/xen/common/domain-builder/Makefile b/xen/common/domain-builder/Makefile
new file mode 100644
index 0000000000..bfd2f6267e
--- /dev/null
+++ b/xen/common/domain-builder/Makefile
@@ -0,0 +1,2 @@
+obj-y += fdt.init.o
+obj-y += core.init.o
diff --git a/xen/common/domain-builder/core.c b/xen/common/domain-builder/core.c
new file mode 100644
index 0000000000..fdc13aee40
--- /dev/null
+++ b/xen/common/domain-builder/core.c
@@ -0,0 +1,45 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Copyright (C) 2024, Apertus Solutions, LLC
+ */
+#include <xen/bug.h>
+#include <xen/err.h>
+#include <xen/init.h>
+#include <xen/kconfig.h>
+#include <xen/domain-builder.h>
+#include <xen/lib.h>
+
+#include <asm/bootinfo.h>
+
+#include "fdt.h"
+
+enum fdt_kind __init builder_init(struct boot_info *bi)
+{
+    enum fdt_kind kind;
+
+    bi->hyperlaunch_enabled = false;
+    switch ( (kind = detect_fdt_kind(bi)) )
+    {
+    case FDT_KIND_NONE:
+        /* No DT found */
+        return kind;
+
+    case FDT_KIND_UNKNOWN:
+        printk(XENLOG_DEBUG "DT found: non-hyperlaunch\n");
+        bi->mods[0].type = BOOTMOD_FDT;
+        return kind;
+
+    default:
+        BUG();
+    }
+}
+
+/*
+ * 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/domain-builder/fdt.c b/xen/common/domain-builder/fdt.c
new file mode 100644
index 0000000000..708dcfcbe8
--- /dev/null
+++ b/xen/common/domain-builder/fdt.c
@@ -0,0 +1,39 @@
+/* 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 <asm/bootinfo.h>
+#include <asm/page.h>
+#include <asm/setup.h>
+
+#include "fdt.h"
+
+enum fdt_kind __init detect_fdt_kind(const struct boot_info *bi)
+{
+    enum fdt_kind kind;
+    const void *fdt = bootstrap_map_bm(&bi->mods[HYPERLAUNCH_MODULE_IDX]);
+
+    if ( !fdt || fdt_check_header(fdt) < 0 )
+        kind = FDT_KIND_NONE;
+    else
+        kind = FDT_KIND_UNKNOWN;
+
+    bootstrap_unmap();
+
+    return kind;
+}
+
+/*
+ * 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/domain-builder/fdt.h b/xen/common/domain-builder/fdt.h
new file mode 100644
index 0000000000..ed9c62631c
--- /dev/null
+++ b/xen/common/domain-builder/fdt.h
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+#ifndef __XEN_DOMAIN_BUILDER_FDT_H__
+#define __XEN_DOMAIN_BUILDER_FDT_H__
+
+#include <xen/domain-builder.h>
+
+struct boot_info;
+
+/* hyperlaunch fdt is required to be module 0 */
+#define HYPERLAUNCH_MODULE_IDX 0
+
+enum fdt_kind detect_fdt_kind(const struct boot_info *bi);
+
+#endif /* __XEN_DOMAIN_BUILDER_FDT_H__ */
diff --git a/xen/include/xen/domain-builder.h b/xen/include/xen/domain-builder.h
new file mode 100644
index 0000000000..b9702db735
--- /dev/null
+++ b/xen/include/xen/domain-builder.h
@@ -0,0 +1,29 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+#ifndef __XEN_DOMAIN_BUILDER_H__
+#define __XEN_DOMAIN_BUILDER_H__
+
+struct boot_info;
+
+/* Return status of builder_init(). Shows which boot mechanism was detected */
+enum fdt_kind
+{
+    /* FDT not found. Skipped builder. */
+    FDT_KIND_NONE,
+    /* Found an FDT that wasn't hyperlaunch. */
+    FDT_KIND_UNKNOWN,
+};
+
+/*
+ * Initialises `bi` if it detects a compatible FDT. Otherwise returns
+ * FDT_KIND_NONE and leaves initialisation up to the caller.
+ */
+#if IS_ENABLED(CONFIG_DOMAIN_BUILDER)
+enum fdt_kind builder_init(struct boot_info *bi);
+#else
+static inline enum fdt_kind builder_init(struct boot_info *bi)
+{
+    return FDT_KIND_NONE;
+}
+#endif /* !IS_ENABLED(CONFIG_DOMAIN_BUILDER) */
+
+#endif /* __XEN_DOMAIN_BUILDER_H__ */
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu Apr 24 16:11:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Apr 2025 16:11:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.966532.1356724 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7zAA-0002H4-Uz; Thu, 24 Apr 2025 16:10:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 966532.1356724; Thu, 24 Apr 2025 16:10: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 1u7zAA-0002Gv-SS; Thu, 24 Apr 2025 16:10:58 +0000
Received: by outflank-mailman (input) for mailman id 966532;
 Thu, 24 Apr 2025 16:10: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=/3PA=XK=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u7zA9-0001nH-Ii
 for xen-devel@lists.xenproject.org; Thu, 24 Apr 2025 16:10:57 +0000
Received: from NAM12-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam12on2062a.outbound.protection.outlook.com
 [2a01:111:f403:2417::62a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b3ace76d-2126-11f0-9eb2-5ba50f476ded;
 Thu, 24 Apr 2025 18:10:56 +0200 (CEST)
Received: from SJ0PR13CA0239.namprd13.prod.outlook.com (2603:10b6:a03:2c1::34)
 by PH8PR12MB7133.namprd12.prod.outlook.com (2603:10b6:510:22e::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.35; Thu, 24 Apr
 2025 16:10:52 +0000
Received: from SJ5PEPF000001CD.namprd05.prod.outlook.com
 (2603:10b6:a03:2c1:cafe::3f) by SJ0PR13CA0239.outlook.office365.com
 (2603:10b6:a03:2c1::34) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.33 via Frontend Transport; Thu,
 24 Apr 2025 16:10:52 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ5PEPF000001CD.mail.protection.outlook.com (10.167.242.42) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Thu, 24 Apr 2025 16:10:51 +0000
Received: from xcbagarciav01.xilinx.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; Thu, 24 Apr
 2025 11:10:47 -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: b3ace76d-2126-11f0-9eb2-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=QAwTUgh8cqkJYCwTqs0TcV5G1Xvq75KDsYXLO8l7GIE5RcnMABNDPJ6xei4IcJZ6m/vGH6jXvM4KoKvDubyGzW/YV21ieLLKKViPSwQEaMB7qUIG87dLnK4Zv3Zczwu6hC9ke247h6t2CeNPB56rBrCe6OxP+2FYa0FIPTJm4dTZnDRT++voPXkShQqMbEh8OTZwMwk/sFElfy8UBp0M0N56cPzivyTwr1cdEX2d10Ud6H8rX3YK+WEOvoFyAeIiAN59f4vElt7cDrQMOT1dX4472JMj/4MqnnMmlTHGMLfJEyGjcCv9sjz8C7DmGJxmsHLrrXWIQiVt3ZjbbdvOew==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Fi5PfVfOlydABatnEURfMmEIY6UIrLm7/1zu+vrcS98=;
 b=ydlzvqI9mDSKZQidqBgt94aC07g+RnJmcBD//I9lcPh0z6XU3lofSMq3KEoKktdoF0bW3Gmp7ZowT2Jf97PKJHgz9CnjJoY0eDJPITgyRcgLyN9oS2EIq/mblU+Hp+I2wybYruQhcuqo8Z/ps+kt6AgXNwSllBl7ePUwQZ/Eg6Ae/Ldh+wNVbiio+W+taEtfq8XoNQ+pbHZcLnXZD+gymatj2shduF/mE3uTP7BF6NrMrNa/FEzBO7iRMyNu6Nlb1vjrcZcZdnv/1PGtpKJj4n6H71l6CTTjK0nnBmmmHx6fz4rL3Zrk5SnjFRdvNEGh5ouyyk1p6Dj7h5TPkLmwJw==
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=Fi5PfVfOlydABatnEURfMmEIY6UIrLm7/1zu+vrcS98=;
 b=FNGqZMDgjVLdXeG9QDfcaH/HO/C8hD2ZqTDAopWiMcTKAM7RvjRIvEjWGTDAjpt2hif0aN8WEICEwgsIITdkD2yhpLGwM//4i+oLMgy1qrph8ks2EcqNCJjV+7p2bmBaoMF7eC4jRSj6vErcZM+zlzsTiJPTQEA3D9QFG6kye8o=
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: Alejandro Vallejo <agarciav@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: "Daniel P. Smith" <dpsmith@apertussolutions.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, "Julien
 Grall" <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, "Jason
 Andryuk" <jason.andryuk@amd.com>, Alejandro Vallejo <agarciav@amd.com>
Subject: [PATCH v5 03/12] x86/hyperlaunch: initial support for hyperlaunch device tree
Date: Thu, 24 Apr 2025 17:10:13 +0100
Message-ID: <20250424161027.92942-4-agarciav@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20250424161027.92942-1-agarciav@amd.com>
References: <20250424161027.92942-1-agarciav@amd.com>
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: SJ5PEPF000001CD:EE_|PH8PR12MB7133:EE_
X-MS-Office365-Filtering-Correlation-Id: de64220a-11a8-4fac-513f-08dd834a958a
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?V8EX+/6EOWWtWhkPISv9G6VfAAWB/eC0URukXRx1XPWZq4YC8w2l2JU13uxK?=
 =?us-ascii?Q?R2suU4BWAV6Mc7/hdOcktFTXrQAMeqS932N20eyKEU53Rg3/n6+esrcsFM8c?=
 =?us-ascii?Q?7rHddRnCVyp5iv47Pub1OTLvlprVREzq1CUl2V7mKmfZrQp0eVoUkQxs9O5E?=
 =?us-ascii?Q?gbk1LqfosxbmeKyYH5snUeod0PAyFfbB2OL2xUlTv3gkBIo5kcuZr8ogmhcf?=
 =?us-ascii?Q?s0eEe4nGOYRQOOfyEutGVZSiZgqQxs/W0DooJnARZJ8xrR8J8nIcYdnQNSRH?=
 =?us-ascii?Q?nDSg9NGnqJfXd6ioEWx+WEnKy944JxVJNJpzsbCVbETnphkUrFGiPM7ACDJq?=
 =?us-ascii?Q?1uiNpwNiAtjnQZjmdqFqCuGR3PEX88pvJzqiEHrBqMPN9M63DmOf/dlX7wB7?=
 =?us-ascii?Q?TGIiMdVJvc3wKhzUx2IX3apFpD+4+RVsT5QZLP73OesbgO5nWab3PSIGiyQp?=
 =?us-ascii?Q?kpaGh9aZXbtYf2BmY4XVhCc8gbg/gj5BGhIgM0FjDciUQDm0FpSm7tNFk/Rr?=
 =?us-ascii?Q?IK1Bh/JcktXv53vwd6xmEEmbmutgiHNfqIds3ocgUF5F7mg1W6CeY0hL/IfQ?=
 =?us-ascii?Q?JGPix8VrV0pKlNR4IP29swdf0BFw8e3htsbbil6rz16tijBDlsRVFqc3CPEu?=
 =?us-ascii?Q?DuuSxZAv5YCcVkngBjQ12hQUKeWWCUS7FAKYi4e7DVylXvsyk7WRiNud8sMl?=
 =?us-ascii?Q?QnpDNbdb7oyMOyEC81/toukQu38yUlP7GlG7eW1RK9JouxjvgWX4oPpqOJhW?=
 =?us-ascii?Q?WTPwEgR1rSBJZ9jlQYY65J/GiL/aDOgtwL3o4omDGXYBqHuw2JSUJT6Y46rN?=
 =?us-ascii?Q?SXlmnHNqCKCytxD5r9Ys3uDClXmt2ycpiPdkZMvQhtI7oRrE/oavgC2tLu9S?=
 =?us-ascii?Q?dEpO2foXLEhqMYRajz8dF3zfCEK1QMfa836PE02Ge9fRUl7J/cq8iJ1g+xU7?=
 =?us-ascii?Q?0ITWf8wzzTioc8dT7sTcZqsFZDnD8b4D1iCcWdjK3PTPsZuwmizH2Lw0D3oz?=
 =?us-ascii?Q?gDjTx+OvnDaGcvXXr5H3JuCjQ64fBybmwq4bQS5Abhaj/UTRcGzC7DIBrCYX?=
 =?us-ascii?Q?dOpR0ab69J/gp0YN6rNXqRYwUIz0NJ7QVREkmlqgUhnUdhLPEbsDW6SeWs7t?=
 =?us-ascii?Q?uSmfys3obnarphW0d9hUbipdvIOGgsCzgfXSc+Q/zmUocUUnrjL+p0hcCTdU?=
 =?us-ascii?Q?7oAO4NZB4MdPr/bB0QXWI3UEeOw5x76xTZnFNEWmoUxUnQGtot9/62LjPC6m?=
 =?us-ascii?Q?XYMWzKUGRNB6kl5YXb4782o4ji8Ex5VRcMPcbCAgK3WXDmRSU8v3fQIA4IXp?=
 =?us-ascii?Q?ZbOZbisS5LEJH9s2Oo0rWuXlNYtKKZ++zrj/ORB5aCbW0Pa81Yhm3LhqBEk7?=
 =?us-ascii?Q?u4zXPP+tIpQ9TkDfPAaGlAQ5GC+q0B1eHXaluUzdEqNBT9xLx7LlOuzgj1Vi?=
 =?us-ascii?Q?33aY4Ze1OEaJ2Yvs3hRzMbZgkLov92FIlYKfwZUkR045D84Pvdjr/XoqDwea?=
 =?us-ascii?Q?9ADWmP2J30EKQwuM6r/Q0lzVksKQ71qUwGjP?=
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: 24 Apr 2025 16:10:51.4760
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: de64220a-11a8-4fac-513f-08dd834a958a
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:
	SJ5PEPF000001CD.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH8PR12MB7133

From: "Daniel P. Smith" <dpsmith@apertussolutions.com>

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 an error if more than one is found.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
Signed-off-by: Alejandro Vallejo <agarciav@amd.com>
---
v5:
  * Turned !fdt check into a BUG_ON(). It's checked ahead of time.
---
 xen/arch/x86/include/asm/bootinfo.h |  1 +
 xen/common/domain-builder/core.c    | 15 +++++++
 xen/common/domain-builder/fdt.c     | 62 +++++++++++++++++++++++++++++
 xen/common/domain-builder/fdt.h     |  1 +
 xen/include/xen/domain-builder.h    |  2 +
 5 files changed, 81 insertions(+)

diff --git a/xen/arch/x86/include/asm/bootinfo.h b/xen/arch/x86/include/asm/bootinfo.h
index 82c2650fcf..1e3d582e45 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];
 };
diff --git a/xen/common/domain-builder/core.c b/xen/common/domain-builder/core.c
index fdc13aee40..0955558977 100644
--- a/xen/common/domain-builder/core.c
+++ b/xen/common/domain-builder/core.c
@@ -16,10 +16,17 @@
 enum fdt_kind __init builder_init(struct boot_info *bi)
 {
     enum fdt_kind kind;
+    int ret;
 
     bi->hyperlaunch_enabled = false;
     switch ( (kind = detect_fdt_kind(bi)) )
     {
+    case FDT_KIND_HYPERLAUNCH:
+        printk(XENLOG_DEBUG "DT found: hyperlaunch\n");
+        bi->hyperlaunch_enabled = true;
+        bi->mods[0].type = BOOTMOD_FDT;
+        break;
+
     case FDT_KIND_NONE:
         /* No DT found */
         return kind;
@@ -32,6 +39,14 @@ enum fdt_kind __init builder_init(struct boot_info *bi)
     default:
         BUG();
     }
+
+    printk(XENLOG_INFO "Hyperlaunch configuration:\n");
+    if ( (ret = walk_hyperlaunch_fdt(bi)) < 0 )
+        panic("Walk of device tree failed (%d)\n", ret);
+
+    printk(XENLOG_INFO "  number of domains: %u\n", bi->nr_domains);
+
+    return FDT_KIND_HYPERLAUNCH;
 }
 
 /*
diff --git a/xen/common/domain-builder/fdt.c b/xen/common/domain-builder/fdt.c
index 708dcfcbe8..c1ccba39a2 100644
--- a/xen/common/domain-builder/fdt.c
+++ b/xen/common/domain-builder/fdt.c
@@ -13,6 +13,36 @@
 
 #include "fdt.h"
 
+static int __init find_hyperlaunch_node(const 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;
+
+        return hv_node;
+    }
+    else
+    {
+        /* Look 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") )
+                return chosen_node;
+        }
+    }
+
+    return -ENODATA;
+}
+
 enum fdt_kind __init detect_fdt_kind(const struct boot_info *bi)
 {
     enum fdt_kind kind;
@@ -20,6 +50,8 @@ enum fdt_kind __init detect_fdt_kind(const struct boot_info *bi)
 
     if ( !fdt || fdt_check_header(fdt) < 0 )
         kind = FDT_KIND_NONE;
+    else if ( find_hyperlaunch_node(fdt) >= 0 )
+        kind = FDT_KIND_HYPERLAUNCH;
     else
         kind = FDT_KIND_UNKNOWN;
 
@@ -28,6 +60,36 @@ enum fdt_kind __init detect_fdt_kind(const struct boot_info *bi)
     return kind;
 }
 
+int __init walk_hyperlaunch_fdt(struct boot_info *bi)
+{
+    int ret = 0, hv_node, node;
+    const void *fdt = bootstrap_map_bm(&bi->mods[HYPERLAUNCH_MODULE_IDX]);
+
+    BUG_ON(!fdt);
+
+    hv_node = find_hyperlaunch_node(fdt);
+    if ( hv_node < 0 )
+    {
+        ret = hv_node;
+        goto err_out;
+    }
+
+    fdt_for_each_subnode(node, fdt, hv_node)
+    {
+        if ( !fdt_node_check_compatible(fdt, node, "xen,domain") )
+            bi->nr_domains++;
+    }
+
+    /* Until multi-domain construction is added, throw an error */
+    if ( bi->nr_domains != 1 )
+        printk(XENLOG_ERR "hyperlaunch only supports dom0 construction\n");
+
+ err_out:
+    bootstrap_unmap();
+
+    return ret;
+}
+
 /*
  * Local variables:
  * mode: C
diff --git a/xen/common/domain-builder/fdt.h b/xen/common/domain-builder/fdt.h
index ed9c62631c..826c0f01e5 100644
--- a/xen/common/domain-builder/fdt.h
+++ b/xen/common/domain-builder/fdt.h
@@ -10,5 +10,6 @@ struct boot_info;
 #define HYPERLAUNCH_MODULE_IDX 0
 
 enum fdt_kind detect_fdt_kind(const struct boot_info *bi);
+int walk_hyperlaunch_fdt(struct boot_info *bi);
 
 #endif /* __XEN_DOMAIN_BUILDER_FDT_H__ */
diff --git a/xen/include/xen/domain-builder.h b/xen/include/xen/domain-builder.h
index b9702db735..cbb3cbea7c 100644
--- a/xen/include/xen/domain-builder.h
+++ b/xen/include/xen/domain-builder.h
@@ -9,6 +9,8 @@ enum fdt_kind
 {
     /* FDT not found. Skipped builder. */
     FDT_KIND_NONE,
+    /* Found Hyperlaunch FDT */
+    FDT_KIND_HYPERLAUNCH,
     /* Found an FDT that wasn't hyperlaunch. */
     FDT_KIND_UNKNOWN,
 };
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu Apr 24 16:11:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Apr 2025 16:11:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.966531.1356711 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7zA5-0001ql-Lq; Thu, 24 Apr 2025 16:10:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 966531.1356711; Thu, 24 Apr 2025 16:10: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 1u7zA5-0001po-F7; Thu, 24 Apr 2025 16:10:53 +0000
Received: by outflank-mailman (input) for mailman id 966531;
 Thu, 24 Apr 2025 16:10: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=/3PA=XK=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u7zA4-0001nN-6D
 for xen-devel@lists.xenproject.org; Thu, 24 Apr 2025 16:10:52 +0000
Received: from NAM02-BN1-obe.outbound.protection.outlook.com
 (mail-bn1nam02on20616.outbound.protection.outlook.com
 [2a01:111:f403:2407::616])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id af942526-2126-11f0-9ffb-bf95429c2676;
 Thu, 24 Apr 2025 18:10:49 +0200 (CEST)
Received: from BYAPR08CA0020.namprd08.prod.outlook.com (2603:10b6:a03:100::33)
 by DS5PPF78FC67EBA.namprd12.prod.outlook.com (2603:10b6:f:fc00::655)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.35; Thu, 24 Apr
 2025 16:10:46 +0000
Received: from SJ5PEPF000001CC.namprd05.prod.outlook.com
 (2603:10b6:a03:100:cafe::30) by BYAPR08CA0020.outlook.office365.com
 (2603:10b6:a03:100::33) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.35 via Frontend Transport; Thu,
 24 Apr 2025 16:10:45 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ5PEPF000001CC.mail.protection.outlook.com (10.167.242.41) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Thu, 24 Apr 2025 16:10:45 +0000
Received: from xcbagarciav01.xilinx.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; Thu, 24 Apr
 2025 11:10:41 -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: af942526-2126-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=au0ONRxs4r21n/+cqzlGjIPQ/we2L2J5uuDDpAcqMVlo9GOhuz1zodIysbLkbVfuf72QgjfKu4xTi7FamJKeujO6j+4EZY0H7wBKrfN4ZrlW0bEeyiizrex1DUDfsVzaqAed+L2ljSk+zeXe9sfIfHjovMyHsYVnMkjv4sHfcr4FNuLz+nlV5wcNpRLVGzWHaETMMdPByuwUk0k3MrvrA8kIOLVPK27B2oZ8ag4EPxpRysmdR93kqQYVgO/Y/BVWwvYAJiCdlJwgUpu1w4mfx6Xpj7U5bMigv0awtJ1jN1+NELVSBqkVwuu2acihFOnXx+MiCGWKZFwONADWx5BdKg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=wEc/HNT0KESzfboUNJTrwBwewE4li5sM04iz6EBbZLA=;
 b=Z8fTOysRth74p/g6tvMdsRd17+Cs5l28fgJqbeGrfcBXeXtP6NKWQ6tbGlOawOzpbMARlPyZ+uZlre2hAMZOGAQSgXjWFLL175K6R/Kntu7JC/CX3KaNoZmqIcUnMJjyCBw60Q5ds1nHE1tUBnVHHgl0hwkilLFKvzl/KkJ2ODCG1h430KsKRIEru5jjwP/AmDc7JcvxbLR8RerpECcAl2556M/bWIw17cgLclcpADIEl2bJcKKmKoeBuHP22wqOclHKW9zqaV9adv5URfG/INTAXMygvZqgC4XX3q68U6nYobnFwBrAZGEtkbMoFvkWI8xNJVCxKyr8hf5EY9db4g==
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=wEc/HNT0KESzfboUNJTrwBwewE4li5sM04iz6EBbZLA=;
 b=LVuN/Yyz4FFTcMsGhXWRmfXEd9AJA1MOTizWK+7Y3m0YQoO7Y799MMzCXRqd29C9816PgWk3CussKlmGyVK5alwDqUMqAxV9uxZB8xLy0S9u1AVlGIIjL9NW983bdtg259pd3pKDfJ2udAW+RdVofr+NK7+3qG0iEhJmpyr3dxk=
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: Alejandro Vallejo <agarciav@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: "Daniel P. Smith" <dpsmith@apertussolutions.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, "Julien
 Grall" <julien@xen.org>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Alejandro Vallejo <agarciav@amd.com>
Subject: [PATCH v5 01/12] kconfig: introduce domain builder config options
Date: Thu, 24 Apr 2025 17:10:11 +0100
Message-ID: <20250424161027.92942-2-agarciav@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20250424161027.92942-1-agarciav@amd.com>
References: <20250424161027.92942-1-agarciav@amd.com>
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: SJ5PEPF000001CC:EE_|DS5PPF78FC67EBA:EE_
X-MS-Office365-Filtering-Correlation-Id: 866f05cf-6190-4ef9-a3dc-08dd834a9225
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|376014|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?G9FCx2/Fxl3W9Y0bklNwdpjnX400xfy0QMkwQEY6daiebgnI776Bd9UmP9If?=
 =?us-ascii?Q?3onCmAQ/i1s7tEzVuggTGXEZEZ+QYsOxAfr4leq2FYEBKYuAsDzWCAZGgp6a?=
 =?us-ascii?Q?gDRNrTJPgtFQT7UFHrDIqTKG+POzNJ+TWykkzURTHjvkonWAxeMHK5NWVKxo?=
 =?us-ascii?Q?7TcyXfE/dmQXpOpw5NLUHE/Nin1o7TZ4RlKXvYMKd+i2/yUQUWfUwBT+vE+G?=
 =?us-ascii?Q?vxwdwiomgri4//TA+N69Az4yU7g5uwLWVQKnARiyIlDfiUNHi0becNBAVAuD?=
 =?us-ascii?Q?BVdPqcK35cLKfj7Cz59KClCvRwz0SShy2Ur/dN86Ugo5YTrFm+z34GeImFeQ?=
 =?us-ascii?Q?ZI7nxjbAdBG//ZKZMx0bxnoT9z67bslLEZKR0gFYwVfb8Eu4GLoRXP87mFM3?=
 =?us-ascii?Q?JGFOWI0Ppx3guEElMTJNb4LtnnDamOb/RE7KiX9612XIyqSiNOjMv8ZBjySz?=
 =?us-ascii?Q?lJ0LDG7MRWFiTRkqTwTXk9g9V7CBeTjeomuatsW+vlmwo7x9UFWtg9PEE8eC?=
 =?us-ascii?Q?ZPHNqs/3esqeDUp8VOSH9TOXWBwK69bpObDa8UJkwm/1xJXQp31g6cUkVPP3?=
 =?us-ascii?Q?cdmLze6pfWjKn+igOaLlZGzV9JDpTZoV95zSvgTWgpNbj2LmYDQKkruJIzVL?=
 =?us-ascii?Q?65Hht5NbIDfmzn/xk5DSDxG0VHtf+Rc+9tipI4Lnlv5AxQBumyB1DK+pkTI+?=
 =?us-ascii?Q?Ymt8Aa3b7BDO24fsLyjJx0FiRuBOdlUHqh2A4tT76EujjghtTf9/uaSZYFIP?=
 =?us-ascii?Q?awEJzj/TvWlZvpdzW2S4QM5nOS+AqeXswv49lywd2D0eFFWzzt9s8/jTvXXH?=
 =?us-ascii?Q?kppzBrZNT508JlY4jJ/hAZOSj4/eB16T4bJ/7aDNjBtjh9lb1k/oA+l/nlyg?=
 =?us-ascii?Q?U+KU37mknB+kpH7JhznihbuD+C3DMh4I6JHaCUKWdQiKv4ptfVIuNkJLsvQw?=
 =?us-ascii?Q?NXvO/6aJdrXJDJSWH3UFz6/PFzTfOSGC5ZIFnG73bnr8lQvqBUaQDqpIbg9c?=
 =?us-ascii?Q?oS2TPTUjvkLca/NBJjZ1m6zyHsjjx31wF/MGM7kISWlLpoq7vDVWnO2jox/1?=
 =?us-ascii?Q?Eu5x18s/2dLRxH9Z35C26AbxHr7KJO4yECSL2gUQs2Ljm4NOy0eY/IG8WItu?=
 =?us-ascii?Q?vSyhguYq6PRdU4ezcL+7HH2UbYtOYu/bNUr5Ygmo9C/buvf832ECelX6A46D?=
 =?us-ascii?Q?rv3llwy8LgrabjAyNppNOjTe4eZHHgXvp7vpngoegdzOpjOsdNQcu7uv3muJ?=
 =?us-ascii?Q?Okqko7KSzdEWu8GELLWx8TGxGr8XnjSklqI2EhiEQT2UzXSnh/HaxBSWRynK?=
 =?us-ascii?Q?ED2dGCiLwxOveP9tLnpT7RczKhagbyhhUAvvGwmfdJqYSmZ4yvC/inSWkePJ?=
 =?us-ascii?Q?0Et+U+/gLXTFVv6CwcSVZddwKNFiQeOSpFWbm+lCOBpInupMBSu9MISqs2Jm?=
 =?us-ascii?Q?RuKUREORq4v8QaaGgbAVYtNjSRHrmudsimSZ/765HuhFqyZE1tP5NKl3g+7N?=
 =?us-ascii?Q?Askjm+Hi/AoFjbCFHKx7PZyET2CuJIhHuTkc?=
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)(376014)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Apr 2025 16:10:45.7987
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 866f05cf-6190-4ef9-a3dc-08dd834a9225
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:
	SJ5PEPF000001CC.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS5PPF78FC67EBA

From: "Daniel P. Smith" <dpsmith@apertussolutions.com>

Hyperlaunch domain builder will be the consolidated boot time domain
building logic framework. Introduces the config option to enable this
domain builder to eventually turn on the ability to load the domain
configuration via a flattened device tree.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
Signed-off-by: Alejandro Vallejo <agarciav@amd.com>
---
v5:
  * Removed CONFIG_HAS_BOOT_INFO
  * Reworded help message
---
 xen/common/Kconfig                |  2 ++
 xen/common/domain-builder/Kconfig | 15 +++++++++++++++
 2 files changed, 17 insertions(+)
 create mode 100644 xen/common/domain-builder/Kconfig

diff --git a/xen/common/Kconfig b/xen/common/Kconfig
index be28060716..e025fbe257 100644
--- a/xen/common/Kconfig
+++ b/xen/common/Kconfig
@@ -144,6 +144,8 @@ config STATIC_MEMORY
 
 	  If unsure, say N.
 
+source "common/domain-builder/Kconfig"
+
 menu "Speculative hardening"
 
 config INDIRECT_THUNK
diff --git a/xen/common/domain-builder/Kconfig b/xen/common/domain-builder/Kconfig
new file mode 100644
index 0000000000..44b8351af8
--- /dev/null
+++ b/xen/common/domain-builder/Kconfig
@@ -0,0 +1,15 @@
+menu "Domain Builder Features"
+
+config DOMAIN_BUILDER
+	bool "Domain builder (UNSUPPORTED)" if UNSUPPORTED && X86
+	select LIBFDT
+	help
+	  Support for constructing predefined domains described by a flattened
+	  device tree. This allows constructing multiple domains at boot time
+	  instead of being limited to a single dom0.
+
+	  This feature is currently experimental.
+
+	  If unsure, say N.
+
+endmenu
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu Apr 24 16:11:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Apr 2025 16:11:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.966530.1356704 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7zA5-0001na-CH; Thu, 24 Apr 2025 16:10:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 966530.1356704; Thu, 24 Apr 2025 16:10: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 1u7zA5-0001nT-8f; Thu, 24 Apr 2025 16:10:53 +0000
Received: by outflank-mailman (input) for mailman id 966530;
 Thu, 24 Apr 2025 16:10: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=/3PA=XK=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u7zA3-0001nH-4z
 for xen-devel@lists.xenproject.org; Thu, 24 Apr 2025 16:10:51 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on2061d.outbound.protection.outlook.com
 [2a01:111:f403:2415::61d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id aece9006-2126-11f0-9eb2-5ba50f476ded;
 Thu, 24 Apr 2025 18:10:49 +0200 (CEST)
Received: from BYAPR08CA0025.namprd08.prod.outlook.com (2603:10b6:a03:100::38)
 by PH7PR12MB9173.namprd12.prod.outlook.com (2603:10b6:510:2ee::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.26; Thu, 24 Apr
 2025 16:10:43 +0000
Received: from SJ5PEPF000001CC.namprd05.prod.outlook.com
 (2603:10b6:a03:100:cafe::a0) by BYAPR08CA0025.outlook.office365.com
 (2603:10b6:a03:100::38) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.35 via Frontend Transport; Thu,
 24 Apr 2025 16:10:42 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ5PEPF000001CC.mail.protection.outlook.com (10.167.242.41) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Thu, 24 Apr 2025 16:10:42 +0000
Received: from xcbagarciav01.xilinx.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; Thu, 24 Apr
 2025 11:10:39 -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: aece9006-2126-11f0-9eb2-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=bkO7RcKsZYtx9tdBos2NbUD2WygTwWkvfzSHUzpTj6unSyHOConggUA+G38jCD/RLX+ylVzj3ZXkTnQYId3Ouozs4dFX6v8b7MU4rhGeDOIDgGXjUmZvNmDUAPxhPGF5TNjuy9nFS+fkwQyr7YBUGReUTeo4r6/glZmcn+Yk57Y824qeZg0rhCh1qYdUcL/xo8aTsO7MJjudBq3RuMcRiRB0W8TTnC+yajtg0DlHG6lQVs4fZ+BHTYfuILeQFSTd4hinKn3dhwfIVkzyppzuD+erXrcn4pfuaHppTrowDnNK7cUA9J+18h+bqqV1dv1qk4LtJDQ7wlq9fB0Uwb/PzQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=tGj901I88ijCCm+6lDmMWrORShiINxAGWituBp32fFo=;
 b=yU2HPvRpHICaAbJz/euf4OLaRiBqTLnO8V5Y7lOeBWDfVms8+VY5pcuOjaC7txlHwCwwTQm3EkZfZ3IWAESGYMd95YIVllKg/72xBof1X9ThNGDxP93xJ62sn6ZBN+G/5KxOUBNx706ZswgOJ+zk0Weck6EXOh/m5S/R4mRWJyqaeb/1hHHhNtfKjUf6LKW87L64c3ggPbg7Tx08Rm3tOPgNHdVzIBvg37jp7JLdWMCSSjQ14tUnCY97TfXooP6IVT7LO8g/iWMJJrqk/c3SEUy2AhSVb2bRBIwViM6AR+KoKwGLt5sJBb/UbJI2wM4Ef+drT0YJm7uCKljlLr68Lw==
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=tGj901I88ijCCm+6lDmMWrORShiINxAGWituBp32fFo=;
 b=3YYKsaGYR3gCyUV+Vkm5kuSNIR6cxWWp6UVZ8y90FZukdcr15A/NPpL4sw8WKfRcT0Ihb2wbDd/S4Fr0OQTnuTbnIW7ayXmuwZD2HrNxFzSl75SGxfkBhWmC/k2+pjcczw+jqG1295pbBovFBRUCgOWmH59x002dn300hXSU1H0=
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: Alejandro Vallejo <agarciav@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Alejandro Vallejo <agarciav@amd.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, "Julien
 Grall" <julien@xen.org>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
	"Bertrand Marquis" <bertrand.marquis@arm.com>
Subject: [PATCH v5 00/12] Hyperlaunch device tree for dom0
Date: Thu, 24 Apr 2025 17:10:10 +0100
Message-ID: <20250424161027.92942-1-agarciav@amd.com>
X-Mailer: git-send-email 2.43.0
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: SJ5PEPF000001CC:EE_|PH7PR12MB9173:EE_
X-MS-Office365-Filtering-Correlation-Id: 35b724c8-75fb-4045-a770-08dd834a9022
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|1800799024|376014|82310400026|13003099007;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?m8zJ1csSbbWRDpNBiTCCP5VCUHcaMz1YpZjdb50jtm3dQXFCjn9p6BT6WJgz?=
 =?us-ascii?Q?EcGWwzPTitZSTJXlkBXsvWTsLgYY9cZ/JN6jH/alU+Hdo0Hk3dGkUak1Trru?=
 =?us-ascii?Q?jaQnbUxyMwb1g+ncmQtZ02SnRJseaISeorpycLb9AXZjwmEvtfC9xkEAcDih?=
 =?us-ascii?Q?397AD93rPFpwW/z9rt8/dytDHZRe9l+wY2AoHuUzFaWH6SccOmpgJH6K2SBH?=
 =?us-ascii?Q?+CqMTnomTu0ByBHGuIyPGgvrI/ddUT0r5UHQgrNGAaoisa77Mfox0Bd3aHyS?=
 =?us-ascii?Q?FroGEDAZDOa6dPBQgzyqqfo09CgjnGZMShAGIhQ3mI29MS7K6QAzrvTbThAZ?=
 =?us-ascii?Q?4jFj5DjnRaKxgSPGdwClfSGd4J3s7h8rhahygwXy0mIkV+YEBKJgwrdfLNuD?=
 =?us-ascii?Q?2XZ2OT1nGokr/Lj35UvlGkX1toY1T8MimssrAqK07lDrHw0UpKJUpM2LSosF?=
 =?us-ascii?Q?XVS6aKUWMs6IabISBnDLJZR9qqIR12yWL29kp+CRIHafv3Dj6zk4na/EXys0?=
 =?us-ascii?Q?4FDMFjMVnmz580p2+3uMbg7/berrKCELgsuT0S7tPINyrZlZeVwgunO6ph7Y?=
 =?us-ascii?Q?wynjhL/e6k8v2X79kSTx3/e5j2cGvP1LgMrHZkaNF9Ycwb31JbSK9zA2q5rX?=
 =?us-ascii?Q?8nrZcUVcICYsoiKmkAs93D2rB9/IHM1pouy7KhBmXhEabM3WyfYLvhpVA0qe?=
 =?us-ascii?Q?FLjbun3zEKfZYXyTJ/U/QkyK5sURO7GWwTsH8/ZMi5u+UTuIhyjwixc73y2b?=
 =?us-ascii?Q?dndNnA2JnGkbNtyBsePCaOnEO4MlFVWjairzmQ1ou6nIZlHkUIFZ0QVOYGXm?=
 =?us-ascii?Q?V3ViUe3o5LcrDHX//sw1q7XoJiRKtn1W3fLCg7IeV4ANhCi8VxjBbQ4XyhY+?=
 =?us-ascii?Q?TIlEpTqH+xJIsFZm3IztZurg7QC6ddAJhJ0CiddAha4PDR8nSzCyefg5lbmk?=
 =?us-ascii?Q?MZgbcpmu0krZtg13NC9GFbmM5QQ1bpjZTuCbiIzq2xc8qtm01p2DzRHtaQzz?=
 =?us-ascii?Q?rnYjt9PgIeZ5v73F7zCV0SMAlXQpuUu0xUwFE5WYJYGG05Imwctq1zYDV01a?=
 =?us-ascii?Q?uZa1T+8O0XNslJSwEfIgWOYuFS1yXyImL6V63uRJLL+MwyUhBWUUf9ohLZL7?=
 =?us-ascii?Q?qQY0UiFvscwXWJ0SptvHNlO6BtSjUtVowAcwOusnmv9NaZIzvtdZlW3XU28Q?=
 =?us-ascii?Q?ohQommszC/8FRmrA2qf46QnA6W737uswum0p5s+8BRJmqJmQr38Kdwhs+GNZ?=
 =?us-ascii?Q?2TIQzmt21Phu20Atve0md6c3wsa56BkYB6lZGWbGyjvgfR7GXJ+bqKAeKau/?=
 =?us-ascii?Q?IcPh5NNFUeVgS3VqFs/41jRAORd61Ux5tI0iayY3fdJyM0n6ERkT1mc4iXw6?=
 =?us-ascii?Q?bMfwW0pwWDu2HjVZty/wfega3Kq019L9kNNfd7SFcOF+6pcebmA/hrqMGfN/?=
 =?us-ascii?Q?CW0A+bx9UIqKr5keIRj4Leb1niEjwPjYGxq4BGftWnaPWrTGmku1m1mLPwNf?=
 =?us-ascii?Q?CWpiiNrav4eIgABcgKXsq+ewCfJ+BGWMlFFZPbmuHf8tDorqbOQupj4pXw?=
 =?us-ascii?Q?=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)(1800799024)(376014)(82310400026)(13003099007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Apr 2025 16:10:42.4237
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 35b724c8-75fb-4045-a770-08dd834a9022
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:
	SJ5PEPF000001CC.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB9173

Hi,

v4: https://lore.kernel.org/xen-devel/20250417124844.11143-1-agarciav@amd.com/
v3: https://lore.kernel.org/xen-devel/20250408160802.49870-1-agarciav@amd.com/
v2: https://lore.kernel.org/xen-devel/20241226165740.29812-1-dpsmith@apertussolutions.com/
v1: https://lore.kernel.org/xen-devel/20241123182044.30687-1-dpsmith@apertussolutions.com/

========= Original cover letter:

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.



Alejandro Vallejo (1):
  x86/hyperlaunch: Add helpers to locate multiboot modules

Daniel P. Smith (11):
  kconfig: introduce domain builder config options
  common/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/dom0_build.c              |  11 +
 xen/arch/x86/include/asm/boot-domain.h |  14 +
 xen/arch/x86/include/asm/bootinfo.h    |  10 +-
 xen/arch/x86/setup.c                   |  64 +++-
 xen/common/Kconfig                     |   2 +
 xen/common/Makefile                    |   1 +
 xen/common/domain-builder/Kconfig      |  15 +
 xen/common/domain-builder/Makefile     |   2 +
 xen/common/domain-builder/core.c       |  86 +++++
 xen/common/domain-builder/fdt.c        | 512 +++++++++++++++++++++++++
 xen/common/domain-builder/fdt.h        |  40 ++
 xen/include/xen/domain-builder.h       |  37 ++
 xen/include/xen/libfdt/libfdt-xen.h    |  23 ++
 13 files changed, 800 insertions(+), 17 deletions(-)
 create mode 100644 xen/common/domain-builder/Kconfig
 create mode 100644 xen/common/domain-builder/Makefile
 create mode 100644 xen/common/domain-builder/core.c
 create mode 100644 xen/common/domain-builder/fdt.c
 create mode 100644 xen/common/domain-builder/fdt.h
 create mode 100644 xen/include/xen/domain-builder.h

-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu Apr 24 16:11:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Apr 2025 16:11:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.966536.1356747 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7zAG-0002q3-Lu; Thu, 24 Apr 2025 16:11:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 966536.1356747; Thu, 24 Apr 2025 16: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 1u7zAG-0002pd-Gv; Thu, 24 Apr 2025 16:11:04 +0000
Received: by outflank-mailman (input) for mailman id 966536;
 Thu, 24 Apr 2025 16: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=/3PA=XK=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u7zAF-0001nH-6O
 for xen-devel@lists.xenproject.org; Thu, 24 Apr 2025 16:11:03 +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 b6db28d1-2126-11f0-9eb2-5ba50f476ded;
 Thu, 24 Apr 2025 18:11:02 +0200 (CEST)
Received: from MW4PR04CA0288.namprd04.prod.outlook.com (2603:10b6:303:89::23)
 by CY5PR12MB6646.namprd12.prod.outlook.com (2603:10b6:930:41::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.27; Thu, 24 Apr
 2025 16:10:56 +0000
Received: from SJ5PEPF000001CA.namprd05.prod.outlook.com
 (2603:10b6:303:89:cafe::18) by MW4PR04CA0288.outlook.office365.com
 (2603:10b6:303:89::23) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.35 via Frontend Transport; Thu,
 24 Apr 2025 16:10:56 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ5PEPF000001CA.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.8655.12 via Frontend Transport; Thu, 24 Apr 2025 16:10:55 +0000
Received: from xcbagarciav01.xilinx.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; Thu, 24 Apr
 2025 11:10:51 -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: b6db28d1-2126-11f0-9eb2-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=dGosHt2CFxHBFfWpNP8jkwY136aVgbSq1IIois23/hgxcebmBH0IFi1+ELyAdTll0se7vis+rktfp28Y4WXcqArIgthENAFOgJF90JFc9JoNsjdRx3S4GpFSYj1pi3pChauEZ5fik3dtR5BxelM0Oj0K2LRdLSgEA5X1LKFUCQnh3gh2Hc6WXGWlDLUEBqqAkm1zE+nDzs2iAxH9vidARBZlWHcYzp0e2EnDLgqd2tXkp+VKgxNKurtqicb2WwwwZyOaSHkM/3HzRJ1d11DD250rsdSiYLGyzLQR7BgC0yNktb3Suh/oJ1Ywl8uJMYMMPN5k0cQvH/wdzWsgdBOC/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=k4m5Lm4bLEjm3x5leIA7OliYWnqb6/R0IRdoszlI3xs=;
 b=kiEm/25Xpvhg9x1/eBzy9VaGy61ATIk4+YH6nxWM94hr8ovAFuJlzyHc4Znp87WUE73bAjPu3ShTr5Rsdk0RqNSazBbjSS1jlnuCjkBFPEbtkG2Zu1aIyh9AvZ9qJTJfNtv9nqpK2yTyG2cI8y5CNNuhRC3vRXKBicUrL6VxjciI59E7TgC9O7JkQpZid9qmyn+uD16yfCNP6EsvunsApf5nL5g9otqxEQ/qYHDmHp84pkPvNhU/UlKVm8V2EDF5TjdxGKgwSZUhSdG/PgxbyMd8ykp0jCb+oeRGiDY5MomWD2E/LlGhe6VVfgS+Wi4fughItQXBUo3IH56uDFcx6Q==
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=k4m5Lm4bLEjm3x5leIA7OliYWnqb6/R0IRdoszlI3xs=;
 b=nkgzwOeICgG/kQTpYnli+Gma1npClb/ZoXvPjP6edW9zVtXyO326KaGr7Bs/QWWnyA3k5fpzQ/pz0mITq/0W9lX7aOCZKKvDp4UFktq602tE35WWLNsm/RZsw/IW0dAeJm7Lt3rIS0+iKyeswYQ+JDe6gYINrG6V3up5GSEABQE=
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: Alejandro Vallejo <agarciav@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Alejandro Vallejo <agarciav@amd.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, "Julien
 Grall" <julien@xen.org>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>, "Jason
 Andryuk" <jason.andryuk@amd.com>
Subject: [PATCH v5 04/12] x86/hyperlaunch: Add helpers to locate multiboot modules
Date: Thu, 24 Apr 2025 17:10:14 +0100
Message-ID: <20250424161027.92942-5-agarciav@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20250424161027.92942-1-agarciav@amd.com>
References: <20250424161027.92942-1-agarciav@amd.com>
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: SJ5PEPF000001CA:EE_|CY5PR12MB6646:EE_
X-MS-Office365-Filtering-Correlation-Id: 1d6050a7-7f0b-43a7-5912-08dd834a97d3
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|1800799024|376014|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?rhahiVDzqwVxK+CAXN7Hb/urEu9bZuUIC9+hchGF+/N4kNiSRj7WMqajQEJP?=
 =?us-ascii?Q?vCNT7oC47uaJNDc1aM2ceLQ2pzqdbg5KGOBprmdweryarJQOS7tpsUmJwjoz?=
 =?us-ascii?Q?nSb0nceElNIAb8bNF3wuWaMjp/I9sfBCuwBueRswIRZMaDCVYhhHeYHkJAZJ?=
 =?us-ascii?Q?+UFTV4ORta1d7kjJrTJLiLrJM980456cG1IuoZElphwAoUMzi6t6CzHr940q?=
 =?us-ascii?Q?YuOx/W7/iwEO4CZAqzdU3W6OxBfXER/lI7d5JDJ/WXV8lGjG0lMPg0ikBWrJ?=
 =?us-ascii?Q?4CQj5UKdz9ss7xs+YuDl4cMvgg39seXOv2+fcfDsZqkOtVWmYOXOB65iF4Zu?=
 =?us-ascii?Q?RuB51D4u985fudAWIZNFsWIMrvWi2ixsQjW64UG7IpuIDuUU6MGY8MTUdW9L?=
 =?us-ascii?Q?waTe2kpGUD1N8cShTjLNlGwRbcy1FEDf0pmz4bgUcbkViLX3Vfxh2nVMr0FX?=
 =?us-ascii?Q?36IuXLw0L1IJFCXGJDS7NxvcdlfE2p12G7v6reXChk6apXBNRuXlis9qslG9?=
 =?us-ascii?Q?h78o1Kq29XEmVDSxStwvWv4IleVMnM7zNLC23PxTOV5JQ2FLTDEJ472BMWGm?=
 =?us-ascii?Q?y6TPwMnYD6m9vsdcVawr1nw3uN8aLeUdDJDzECq6SeSbvGuYUtJIzEcuTAWH?=
 =?us-ascii?Q?RaoP7/fvCQnlkiUBcFqeNOwnt7BEibsrPVRTKgJ/mCBIevVVzxJFwrzsg1cY?=
 =?us-ascii?Q?u7E3PJ8ezBdpNooYFlmG8RQiCoOLf+9q6AyKX2ak7WpK5RhR2IznEAwB//4z?=
 =?us-ascii?Q?qmaHv/YiVyG4UgIQ0eb6DyeYq4xIwlZrHMT4fdNr185okHQM9VI7P/qCj+gD?=
 =?us-ascii?Q?cgQTB7YaRBrThTusJgo6UP79MxmfzgxryHeWzQLKPNNwi464zB/jcIdtiQ/c?=
 =?us-ascii?Q?P7HxrSdgYkHtL145nihN3KdBY1QRSOJj/TidzLg87fUtdkdpJa7D2kSkSsws?=
 =?us-ascii?Q?nSj/tLSSilKEfnMQzOcmE47dtbmbjiXPIQSuJgHWKHOmEsIyT3+LM3Dm9a4S?=
 =?us-ascii?Q?RH7xr9iT0QK+OkRhTBBMeUFbdmHNqWflD/hsvDiqDkd/ignlvJowL0BcDPOG?=
 =?us-ascii?Q?w3Hapsyav/HanNLBf6D18jRlgEGjQROpQXOcax2DSEr8cU4GVitaZlLhGnZT?=
 =?us-ascii?Q?KWa9vNyXRFuLlBOiGZa1S4R8xk63Yn1iPCIj5Ek8uVAFHQtuI2kYqG/vAZMn?=
 =?us-ascii?Q?pnBgcmVDdAEC+72P/cfcuADECjxjnPYXvAd/EFm6qQr+HEw1Ww1UJb4PVSKx?=
 =?us-ascii?Q?iZCDKFqJ/7Eh1Sf1qgWaGVUPolHskdZipHGxgHI4Q4qXkC2xgA2NrI71QI5d?=
 =?us-ascii?Q?EZI3KB7i3JI1u/U3/jd81NHuFxlMtxRoMRRTfoyXWlNaCt5CwIukstZZ6p+J?=
 =?us-ascii?Q?JJg8BS/5Z1IhzKh23FzXIWAz/dmWRZ6sJd+ON7AOZCPFgxAkIutnpg6nJea1?=
 =?us-ascii?Q?d15A287ds+DBd8gww5pK1eYcLncpRvdgyVFNI+yQ38xS80Pq39LH+nJ39XKJ?=
 =?us-ascii?Q?X+EVkKIouXhfeRHpnn/HVMXD/1cmxbrGFFJm?=
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: 24 Apr 2025 16:10:55.3101
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 1d6050a7-7f0b-43a7-5912-08dd834a97d3
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:
	SJ5PEPF000001CA.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR12MB6646

Hyperlaunch mandates either a reg or module-index DT prop on nodes that
contain `multiboot,module" under their "compatible" prop. This patch
introduces a helper to generically find such index, appending the module
to the list of modules if it wasn't already (i.e: because it's given via
the "reg" prop).

Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
Signed-off-by: Alejandro Vallejo <agarciav@amd.com>
---
v5:
  * s/read_fdt_prop_as_reg/fdt_prop_as_reg/
  * Move the _u32() prop helper to fdt.c
---
 xen/common/domain-builder/fdt.c  | 172 +++++++++++++++++++++++++++++++
 xen/common/domain-builder/fdt.h  |   1 +
 xen/include/xen/domain-builder.h |   4 +
 3 files changed, 177 insertions(+)

diff --git a/xen/common/domain-builder/fdt.c b/xen/common/domain-builder/fdt.c
index c1ccba39a2..11f0436e85 100644
--- a/xen/common/domain-builder/fdt.c
+++ b/xen/common/domain-builder/fdt.c
@@ -13,6 +13,178 @@
 
 #include "fdt.h"
 
+static 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;
+
+    *val = fdt32_to_cpu(*(const fdt32_t *)prop->data);
+    return 0;
+}
+
+/*
+ * Unpacks a "reg" property into its address and size constituents.
+ *
+ * @param prop          Pointer to an FDT "reg" property.
+ * @param address_cells Number of 4-octet cells that make up an "address".
+ * @param size_cells    Number of 4-octet cells that make up a "size".
+ * @param p_addr[out]   Address encoded in the property.
+ * @param p_size[out]   Size encoded in the property.
+ * @returns             -EINVAL on malformed property, 0 otherwise.
+ */
+static int __init fdt_prop_as_reg(const struct fdt_property *prop,
+                                  int address_cells, int size_cells,
+                                  uint64_t *p_addr, uint64_t *p_size)
+{
+    const fdt32_t *cell = (const fdt32_t *)prop->data;
+    uint64_t addr, size;
+
+    if ( fdt32_to_cpu(prop->len) !=
+         (address_cells + size_cells) * sizeof(*cell) )
+    {
+        printk(XENLOG_ERR "  cannot read reg %lu+%lu from prop len %u\n",
+            address_cells * sizeof(*cell), size_cells * sizeof(*cell),
+            fdt32_to_cpu(prop->len));
+        return -EINVAL;
+    }
+
+    switch ( address_cells )
+    {
+    case 1:
+        addr = fdt32_to_cpu(*cell);
+        break;
+    case 2:
+        addr = fdt64_to_cpu(*(const fdt64_t *)cell);
+        break;
+    default:
+        printk(XENLOG_ERR "  unsupported address_cells=%d\n", address_cells);
+        return -EINVAL;
+    }
+
+    cell += address_cells;
+    switch ( size_cells )
+    {
+    case 1:
+        size = fdt32_to_cpu(*cell);
+        break;
+    case 2:
+        size = fdt64_to_cpu(*(const fdt64_t *)cell);
+        break;
+    default:
+        printk(XENLOG_ERR "  unsupported size_cells=%d\n", size_cells);
+        return -EINVAL;
+    }
+
+    *p_addr = addr;
+    *p_size = size;
+
+    return 0;
+}
+
+/*
+ * Locate a multiboot module given its node offset in the FDT.
+ *
+ * The module location may be given via either FDT property:
+ *     * reg = <address, size>
+ *         * Mutates `bi` to append the module.
+ *     * module-index = <idx>
+ *         * Leaves `bi` unchanged.
+ *
+ * @param fdt           Pointer to the full FDT.
+ * @param node          Offset for the module node.
+ * @param address_cells Number of 4-octet cells that make up an "address".
+ * @param size_cells    Number of 4-octet cells that make up a "size".
+ * @param bi[inout]     Xen's representation of the boot parameters.
+ * @return              -EINVAL on malformed nodes, otherwise
+ *                      index inside `bi->mods`
+ */
+int __init fdt_read_multiboot_module(const void *fdt, int node,
+                                     int address_cells, int size_cells,
+                                     struct boot_info *bi)
+{
+    const struct fdt_property *prop;
+    uint64_t addr, size;
+    int ret;
+    uint32_t idx;
+
+    if ( fdt_node_check_compatible(fdt, node, "multiboot,module") )
+    {
+        printk(XENLOG_ERR "  bad module. multiboot,module not found");
+        return -ENODATA;
+    }
+
+    /* Location given as a `module-index` property. */
+    if ( (prop = fdt_get_property(fdt, node, "module-index", NULL)) )
+    {
+        if ( fdt_get_property(fdt, node, "reg", NULL) )
+        {
+            printk(XENLOG_ERR "  found both reg and module-index for module\n");
+            return -EINVAL;
+        }
+        if ( (ret = fdt_prop_as_u32(prop, &idx)) )
+        {
+            printk(XENLOG_ERR "  bad module-index prop\n");
+            return ret;
+        }
+        if ( idx >= MAX_NR_BOOTMODS )
+        {
+            printk(XENLOG_ERR "  module-index overflow. %s=%u\n",
+                   STR(MAX_NR_BOOTMODS), MAX_NR_BOOTMODS);
+            return -EINVAL;
+        }
+
+        return idx;
+    }
+
+    /* Otherwise location given as a `reg` property. */
+    if ( !(prop = fdt_get_property(fdt, node, "reg", NULL)) )
+    {
+        printk(XENLOG_ERR "  no location for multiboot,module\n");
+        return -EINVAL;
+    }
+    if ( fdt_get_property(fdt, node, "module-index", NULL) )
+    {
+        printk(XENLOG_ERR "  found both reg and module-index for module\n");
+        return -EINVAL;
+    }
+
+    ret = fdt_prop_as_reg(prop, address_cells, size_cells, &addr, &size);
+    if ( ret < 0 )
+    {
+        printk(XENLOG_ERR "  failed reading reg for multiboot,module\n");
+        return -EINVAL;
+    }
+
+    idx = bi->nr_modules;
+    if ( idx > MAX_NR_BOOTMODS )
+    {
+        /*
+         * MAX_NR_BOOTMODS must fit in 31 bits so it's representable in the
+         * positive side of an int; for the return value.
+         */
+        BUILD_BUG_ON(MAX_NR_BOOTMODS > (uint64_t)INT_MAX);
+        printk(XENLOG_ERR "  idx=%u exceeds len=%u\n", idx, MAX_NR_BOOTMODS);
+        return -EINVAL;
+    }
+
+    /*
+     * Append new module to the existing list
+     *
+     * Note that bi->nr_modules points to Xen itself, so we must shift it first
+     */
+    bi->nr_modules++;
+    bi->mods[bi->nr_modules] = bi->mods[idx];
+    bi->mods[idx] = (struct boot_module){
+        .start = addr,
+        .size = size,
+    };
+
+    printk(XENLOG_INFO "  module[%u]: addr %lx size %lx\n", idx, addr, size);
+
+    return idx;
+}
+
 static int __init find_hyperlaunch_node(const void *fdt)
 {
     int hv_node = fdt_path_offset(fdt, "/chosen/hypervisor");
diff --git a/xen/common/domain-builder/fdt.h b/xen/common/domain-builder/fdt.h
index 826c0f01e5..f48456acd2 100644
--- a/xen/common/domain-builder/fdt.h
+++ b/xen/common/domain-builder/fdt.h
@@ -3,6 +3,7 @@
 #define __XEN_DOMAIN_BUILDER_FDT_H__
 
 #include <xen/domain-builder.h>
+#include <xen/libfdt/libfdt-xen.h>
 
 struct boot_info;
 
diff --git a/xen/include/xen/domain-builder.h b/xen/include/xen/domain-builder.h
index cbb3cbea7c..3ac3a0ab84 100644
--- a/xen/include/xen/domain-builder.h
+++ b/xen/include/xen/domain-builder.h
@@ -28,4 +28,8 @@ static inline enum fdt_kind builder_init(struct boot_info *bi)
 }
 #endif /* !IS_ENABLED(CONFIG_DOMAIN_BUILDER) */
 
+int fdt_read_multiboot_module(const void *fdt, int node,
+                              int address_cells, int size_cells,
+                              struct boot_info *bi)
+
 #endif /* __XEN_DOMAIN_BUILDER_H__ */
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu Apr 24 16:11:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Apr 2025 16:11:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.966537.1356758 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7zAI-00038l-TX; Thu, 24 Apr 2025 16:11:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 966537.1356758; Thu, 24 Apr 2025 16:11: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 1u7zAI-00038Y-Pw; Thu, 24 Apr 2025 16:11:06 +0000
Received: by outflank-mailman (input) for mailman id 966537;
 Thu, 24 Apr 2025 16:11: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=/3PA=XK=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u7zAH-0001nH-Rd
 for xen-devel@lists.xenproject.org; Thu, 24 Apr 2025 16:11:05 +0000
Received: from NAM02-DM3-obe.outbound.protection.outlook.com
 (mail-dm3nam02on20619.outbound.protection.outlook.com
 [2a01:111:f403:2405::619])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b8c89994-2126-11f0-9eb2-5ba50f476ded;
 Thu, 24 Apr 2025 18:11:05 +0200 (CEST)
Received: from BY5PR03CA0022.namprd03.prod.outlook.com (2603:10b6:a03:1e0::32)
 by LV3PR12MB9118.namprd12.prod.outlook.com (2603:10b6:408:1a1::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.23; Thu, 24 Apr
 2025 16:11:00 +0000
Received: from SJ5PEPF000001C9.namprd05.prod.outlook.com
 (2603:10b6:a03:1e0:cafe::8f) by BY5PR03CA0022.outlook.office365.com
 (2603:10b6:a03:1e0::32) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.33 via Frontend Transport; Thu,
 24 Apr 2025 16:10:58 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ5PEPF000001C9.mail.protection.outlook.com (10.167.242.37) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Thu, 24 Apr 2025 16:10:58 +0000
Received: from xcbagarciav01.xilinx.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; Thu, 24 Apr
 2025 11:10:54 -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: b8c89994-2126-11f0-9eb2-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=EfHpcRYNOswSjvp5rIbFKSzm0YFibrJN61wgnlzoFMIfg5X0KY1D47cmPY10xJ6af2lgVrN4wNrDhEgnhDMS9Zvh/GEGmKk1KeokPBkn3OxrpD7DxlGBppMzoLP/vNthxbNPLN8wuvfybwMs0siimsF1LALfwqpj4BCGTqXKL1+FW/AQaE6BJBvj27xPwk8d9VFsMseCQ8hLw6009Mkkz2qcy7h+JigJ5yBJOmsWtTXwuGgMUT11LPuJTkCPFvh5WogljEnm+hR1Diqr24MGuHrEgcGwBYuvSY+abaqLEqFTYIf2+TCS8n3ffTQMS9+n71I1zTwnsP37ln3AyrwDgQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=uQTbGW0kHXZziuUHgHskmnnUaC6QlbCAFsioAwpmZ8w=;
 b=L2AeSARIDi7pmHMu+3fsEZL1ldXRS/QNreje1ikOH43q7BCY/RF1UJ8IQIGwU9XATOdCF8+KVAjLvMOhESbXSwEDpgZVUcRQoemApe7fpAw0JZtSVamfh/8qngyx5+v3/6KphlcYRLwgxNRM6GGnpeNg22479jwt1L8hfahB53mtWM6FL4PwFrWzW/bPG5ST2c3z7Ejp+Qv5HEVMAlUrKVLRUScSRru9umEmz3A3hoFVUZQIZZeiyI99Tqv/RQd1HGy6c6KLdHfhtwAC7IF7bxsAJbySCAmCAtie3wHyEa7p2dZME8n7UWJS7PSZDeqi2evYj5cXchjhQJj0JcBuWg==
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=uQTbGW0kHXZziuUHgHskmnnUaC6QlbCAFsioAwpmZ8w=;
 b=ppxoxDAcwK82kdHYij/M2ksL796VxXRlm1QlJSoddwmNs4Hnmxvuww23ly1rVxVLl5AXX/wp//u7KfXIsQQPzc8DVwm9iqdu1MZKWbktC/lKBK+sB07NeAjG3nVYzDlEfXOZ2vIYqmtB7wJYrGBpD7Ulqza+AWAuwh8mBrvbsNk=
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: Alejandro Vallejo <agarciav@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: "Daniel P. Smith" <dpsmith@apertussolutions.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, "Julien
 Grall" <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, "Jason
 Andryuk" <jason.andryuk@amd.com>, Alejandro Vallejo <agarciav@amd.com>
Subject: [PATCH v5 05/12] x86/hyperlaunch: locate dom0 kernel with hyperlaunch
Date: Thu, 24 Apr 2025 17:10:15 +0100
Message-ID: <20250424161027.92942-6-agarciav@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20250424161027.92942-1-agarciav@amd.com>
References: <20250424161027.92942-1-agarciav@amd.com>
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: SJ5PEPF000001C9:EE_|LV3PR12MB9118:EE_
X-MS-Office365-Filtering-Correlation-Id: b1a5cbca-937d-4d72-8b14-08dd834a9983
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|36860700013|1800799024|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?gE5657PnO3DtB2t3y89tGV43K68/Le/vIem1QLfr9a41dE21j1G51tF8QCTy?=
 =?us-ascii?Q?DhVYLyq2JFwDV6gTarwBdMdvgV7BjR5mAOB2pJXdYbIoH+hgjQOh50E1zI10?=
 =?us-ascii?Q?cPkdXhbYrgH8S7QBeXNHui9uV6CvmL/agtLCI5el4ZhJgDfblt8UfhpwJxUK?=
 =?us-ascii?Q?SOGHa6X5czLnwQHfkfazt7tHqf176s0TXrygR6SskNTfW4QnHzAWGYm64J9V?=
 =?us-ascii?Q?cmCacHUpnhA49naj3IvHRiT2PTRoYWzbOvTVjwT8rxkBE5Pks4xc2M7bmfCd?=
 =?us-ascii?Q?6jMsod9QRqcGdVEdOnKbSJLF4CSnz6B3og7S+5DjOHZf+sjv2u4fFgprpE/u?=
 =?us-ascii?Q?xRfslIFvcZXGovjmJWKEyvuikJCJyKT1qn/TC5f89OCBCXM8oR5PULXUe90w?=
 =?us-ascii?Q?mLZ72brEcbkxPm/fvRXVBBRCJ5b7kjCSnBamF93fFT3mVCpYYvfvKgeJjPLl?=
 =?us-ascii?Q?lpTGOz9NY3Qeiw3PAF9FR/vj9pFw43cXWG19zQg1wudqaE56z1DOIIDjpplZ?=
 =?us-ascii?Q?jCetzem4+O/p9CUJSfrSGcK6dgM1dVw9mdTQFY5M3Z59Fsoa5seMu5RNJ2+j?=
 =?us-ascii?Q?mX4Z73k6U9wY8ClVW8dezuDG9RMeC2sAcy0R0p4nHtjsUHSSicd2lJw/vFwJ?=
 =?us-ascii?Q?DUWj9I6tnFiYtE/1M7z9D7ToO+tSjmrMbjwmrkK54kccvcQo+XvNjS/m75EO?=
 =?us-ascii?Q?HweSv4eAf+HY+O6v9RXc78amt2jqxtccBWRJ+N9phWPiosQPekr833OfdUzM?=
 =?us-ascii?Q?gLIlDhZmkFNp737A6zd2AkY/Vu1xXlj+yLfFfz9QHuhToSc8XJyDW2wSHdT1?=
 =?us-ascii?Q?Gzu+4xlKcmSdcsjJFV+OzHZHgHjcbiUCyI2zq2UsOJAWfNdJ/yJU/TJer9wM?=
 =?us-ascii?Q?USAWPSuqd8oFzlNFRdaD2gevn03lpy1rrq01TwuOfBXtbd7V9KQwgIEwUZXc?=
 =?us-ascii?Q?8UA/7KCSAv2IvjDmQ6UVcjEmhvQ8h2lIK0L+5TwxLsX6uNG2sz3VNTgDIUTr?=
 =?us-ascii?Q?NNcq9kExcJIWVWnEE0Jfw2dLJuDvkPXV3hKKvCXYbOr3wnXXvhFXbyUiziV7?=
 =?us-ascii?Q?WhVpS0qTffdxN9qeMS+dGvS0hDkMjQiOKWBQaCol+mu91Iz0oeJQJTx/Kzup?=
 =?us-ascii?Q?6sqf4WphPOV2ry0pKKzeMTXL1/XdOQS51k4uiX5ZELWuYcSUROia7ehPV5xI?=
 =?us-ascii?Q?o5iOGNZVGQviet1F69MhPogW73YvYWjkdA+TnOQhAc8NivoOskDuV3kHkgLh?=
 =?us-ascii?Q?05sHnwfHZsx+YfzXYElD8N+GU5FmKpP93f0RxJQEBVwuPADs0PDZfTvWSyfW?=
 =?us-ascii?Q?03f0naD9DEVdmcFTgPhMSi7lHUCRMVijZRWTN3YJD0YfknGLVG4HMcOXhQ76?=
 =?us-ascii?Q?vyYlrUtaM4bnrviPkSIh6aaVKztRmfabdV49sNsLx5grHL1Tansb/bvmznAE?=
 =?us-ascii?Q?AqIH5ZXFips9MP4YNyTZd4yMd15Z8oJ6jr7WJfoYp7ASTt3irMvakyrjf4Vc?=
 =?us-ascii?Q?6Lc4vYIxF1Dhm8mG1PC4A0Lyx0kWjPkLaDkj?=
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)(1800799024)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Apr 2025 16:10:58.1425
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: b1a5cbca-937d-4d72-8b14-08dd834a9983
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:
	SJ5PEPF000001C9.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV3PR12MB9118

From: "Daniel P. Smith" <dpsmith@apertussolutions.com>

Look for a subnode of type `multiboot,kernel` within a domain node. If
found, locate it using the multiboot module helper to generically ensure
it lives in the module list. 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>
Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
Signed-off-by: Alejandro Vallejo <agarciav@amd.com>
---
v5:
  * Add domain name to the error path on no-kernel.
---
 xen/arch/x86/setup.c            |  1 +
 xen/common/domain-builder/fdt.c | 64 +++++++++++++++++++++++++++++++--
 2 files changed, 62 insertions(+), 3 deletions(-)

diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index bd13d9d196..7e756302ae 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -1290,6 +1290,7 @@ void asmlinkage __init noreturn __start_xen(void)
         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;
         bi->hyperlaunch_enabled = false;
     }
 
diff --git a/xen/common/domain-builder/fdt.c b/xen/common/domain-builder/fdt.c
index 11f0436e85..662c715483 100644
--- a/xen/common/domain-builder/fdt.c
+++ b/xen/common/domain-builder/fdt.c
@@ -99,9 +99,9 @@ static int __init fdt_prop_as_reg(const struct fdt_property *prop,
  * @return              -EINVAL on malformed nodes, otherwise
  *                      index inside `bi->mods`
  */
-int __init fdt_read_multiboot_module(const void *fdt, int node,
-                                     int address_cells, int size_cells,
-                                     struct boot_info *bi)
+static int __init fdt_read_multiboot_module(const void *fdt, int node,
+                                            int address_cells, int size_cells,
+                                            struct boot_info *bi)
 {
     const struct fdt_property *prop;
     uint64_t addr, size;
@@ -185,6 +185,52 @@ int __init fdt_read_multiboot_module(const void *fdt, int node,
     return idx;
 }
 
+static int __init process_domain_node(
+    struct boot_info *bi, const 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) ?: "unknown";
+    int address_cells = fdt_address_cells(fdt, dom_node);
+    int size_cells = fdt_size_cells(fdt, dom_node);
+
+    fdt_for_each_subnode(node, fdt, dom_node)
+    {
+        if ( !fdt_node_check_compatible(fdt, node, "multiboot,kernel") )
+        {
+            int idx;
+
+            if ( bd->kernel )
+            {
+                printk(XENLOG_WARNING
+                       "  duplicate kernel for domain %s\n", name);
+                continue;
+            }
+
+            idx = fdt_read_multiboot_module(fdt, node, address_cells,
+                                            size_cells, bi);
+            if ( idx < 0 )
+            {
+                printk(XENLOG_ERR
+                       "  failed processing kernel for domain %s\n", name);
+                return idx;
+            }
+
+            printk(XENLOG_INFO "  kernel: multiboot-index=%d\n", idx);
+            bi->mods[idx].type = BOOTMOD_KERNEL;
+            bd->kernel = &bi->mods[idx];
+        }
+    }
+
+    if ( !bd->kernel )
+    {
+        printk(XENLOG_ERR "error: no kernel assigned to domain %s\n", name);
+        return -ENODATA;
+    }
+
+    return 0;
+}
+
 static int __init find_hyperlaunch_node(const void *fdt)
 {
     int hv_node = fdt_path_offset(fdt, "/chosen/hypervisor");
@@ -248,8 +294,20 @@ 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 "warning: only creating first %u domains\n",
+                   MAX_NR_BOOTDOMS);
+            break;
+        }
+
         if ( !fdt_node_check_compatible(fdt, node, "xen,domain") )
+        {
+            if ( (ret = process_domain_node(bi, fdt, node)) < 0 )
+                break;
+
             bi->nr_domains++;
+        }
     }
 
     /* Until multi-domain construction is added, throw an error */
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu Apr 24 16:11:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Apr 2025 16:11:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.966540.1356768 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7zAL-0003SB-67; Thu, 24 Apr 2025 16:11:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 966540.1356768; Thu, 24 Apr 2025 16:11:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7zAL-0003Rb-2d; Thu, 24 Apr 2025 16:11:09 +0000
Received: by outflank-mailman (input) for mailman id 966540;
 Thu, 24 Apr 2025 16:11:08 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=/3PA=XK=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u7zAK-0001nH-01
 for xen-devel@lists.xenproject.org; Thu, 24 Apr 2025 16:11:08 +0000
Received: from NAM10-BN7-obe.outbound.protection.outlook.com
 (mail-bn7nam10on20602.outbound.protection.outlook.com
 [2a01:111:f403:2009::602])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ba023e1c-2126-11f0-9eb2-5ba50f476ded;
 Thu, 24 Apr 2025 18:11:07 +0200 (CEST)
Received: from BY5PR03CA0001.namprd03.prod.outlook.com (2603:10b6:a03:1e0::11)
 by DM6PR12MB4282.namprd12.prod.outlook.com (2603:10b6:5:223::10) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.24; Thu, 24 Apr
 2025 16:11:02 +0000
Received: from SJ5PEPF000001C9.namprd05.prod.outlook.com
 (2603:10b6:a03:1e0:cafe::5c) by BY5PR03CA0001.outlook.office365.com
 (2603:10b6:a03:1e0::11) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.35 via Frontend Transport; Thu,
 24 Apr 2025 16:11:01 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ5PEPF000001C9.mail.protection.outlook.com (10.167.242.37) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Thu, 24 Apr 2025 16:11:01 +0000
Received: from xcbagarciav01.xilinx.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; Thu, 24 Apr
 2025 11:10:57 -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: ba023e1c-2126-11f0-9eb2-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=OzArhp9RUJ9R4gE/qNVXcvKU8PeAC0k7BOhhbj6s35+fVUhK2ZgyBXUErVjm142mfNZPey1jZ1ba/3oCgJw/leAPDra4nGpT5MbNrIUT8KkrJ23N7ZMO6kpwrG/FKhaOC2KgdOloQKv4HtBtaVa9I4tum9wpT4mSmQy7+GN9tAgjzJ7QlXnxE6yULwI+V4JTykKbxuXGmMEqMjXpcogTUtmeAnnZ4D+mEBAIW693gCCNUaTFsWtoR8i81oKcd7c8XyHTrKoDFncHvW2DxQcJy4A9dVWFDeKdodI5xmZ8vYqUMtFt0vXAlg8t8DBHSJhpaXXwjN/z1nHpJ2+OPqdVaQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=040m2HL/wx5IafRg2WQM67zz/QZTdAza17xjTQBfo70=;
 b=N3X63EQ5erP970b5AYaW2YFJ7AdzcbDSZrcwcMjo0WOvBjXp07/dri8+jdkhx6qDqh/TDhtOERuRr3JCT1eM+Z1inLIvKcS+bfE8RQ7E4X+f7poDXas6mVQKiKbulGtTX2BX625UXMwTducjqQZCbIurXxL2SdnJHo0muBctH4DhMEWKfFoetoG5f/MWZeqJLwyd1hor6UT43X/KLqvznsf0qxYqI4n5JfblwREw26gR4B9sNPS3DXdzGCgrZcMRMJqYHFyP8zQwoaPdTc5+vIg5XrPOyQKnb+lxRTOPpMqd39/126MkAgO8WhWrW+gsx/NJG1uGhzR4q4Qrf4SNCA==
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=040m2HL/wx5IafRg2WQM67zz/QZTdAza17xjTQBfo70=;
 b=DA5OGFDQAGe5ZtIi4jzePm0a8WSweF2kixA8dI7Iym9P6elFgZoOlunCKmVAhnWO55kxRJx1H6B2ysOZPp5iSHyx01ST23X22mRhcQjS+9C38729dDXSC7nzQbfCXgAa5+WiEB/6NrCQFOcWm15R6OQPH/DuaqpqXQiDnDAadxU=
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: Alejandro Vallejo <agarciav@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: "Daniel P. Smith" <dpsmith@apertussolutions.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, "Julien
 Grall" <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
	"Bertrand Marquis" <bertrand.marquis@arm.com>, Jason Andryuk
	<jason.andryuk@amd.com>, Alejandro Vallejo <agarciav@amd.com>
Subject: [PATCH v5 06/12] x86/hyperlaunch: obtain cmdline from device tree
Date: Thu, 24 Apr 2025 17:10:16 +0100
Message-ID: <20250424161027.92942-7-agarciav@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20250424161027.92942-1-agarciav@amd.com>
References: <20250424161027.92942-1-agarciav@amd.com>
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: SJ5PEPF000001C9:EE_|DM6PR12MB4282:EE_
X-MS-Office365-Filtering-Correlation-Id: 4460af43-66f0-40fd-4ab3-08dd834a9baa
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|36860700013|1800799024|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?7ZjNlq/5olDiGJMGDD0bev2k0hFYzs/Y3SD3GM31BMJSc5AUHvSNIqZJUE3K?=
 =?us-ascii?Q?VddLOxTcvIE1zulzLeJfdNQSWjHSH7HVUq4lcUnzJ1wIGaFoEtDccgjxg0sR?=
 =?us-ascii?Q?BuEwvQTXjfkUvaA0wUFwX75KXw1erdzxPdtwa+TVzVwZUmvJmWjj2YltN7qx?=
 =?us-ascii?Q?QX5i9PHYK8pG96kJHaJnd03RYAxmaE2Lp1OxC/qVhKHqMDzxtej49O4XzwyC?=
 =?us-ascii?Q?V3OsgqibP8rGH74A9j47y9F1pubTJ/YunhiH6OSqPQKMG7gsg4ME8s5vQWE+?=
 =?us-ascii?Q?dbWlqiihykzmDNePj4K698GSkebgEGOvuZiel+FfqtGt330dPEaNpAWJB1Vr?=
 =?us-ascii?Q?CqLdGjw9HzeEd4ifb/B+jAS/6ioRagXru9Eh9p20uxZ1WzGyXfvvAamkV0Jv?=
 =?us-ascii?Q?DvQVzmYxD77/btAQZuvsObw9lpcU397UknT+T03uPH9LflZloyO8Oq3+5Gut?=
 =?us-ascii?Q?xGJKbVl0hkCmGqHCRZeqd3fXjiZeGaQKbNiAcQrS0sIS7RPPWC7Afc1fnnxR?=
 =?us-ascii?Q?BxbU4wcf7FU+Dc0FofFB3iyt+MFLxdecP1iargZNCMnpy3XOfX4gaKc2d3nA?=
 =?us-ascii?Q?Bm2+faua+kvpNXIg5MChOX0NYzY7KQBr243j3/J24qggMWsL8V0zqFHqpJSG?=
 =?us-ascii?Q?WDydFI5x+RZzg/GO0yhOAUUfv/RoTouQU43k53+GN/l+rn6AMtfaabTaVMNV?=
 =?us-ascii?Q?LLdSZsj5rlM41pCn5fZ+7T74GAr/bVHXT5AB05HFNnA2aEjGti8N/wai6oNK?=
 =?us-ascii?Q?3cJE2pB1DuGuLa/i7H43TzfXrv0uXz5y0o6NH/sAj0GKr0mDo4b/g+MUJ/fG?=
 =?us-ascii?Q?7SpxixC0xBuyN4QZJYFygF2PrHDt/iEF1tEZoQ+/qtJxyBs/rs7UetQqIjkR?=
 =?us-ascii?Q?J2M9KQ4G4ubNv/3eJg7Qe9hXo3Af0FuCeqei/GFFMOBaQ6eVQ6o+YUmWt9R7?=
 =?us-ascii?Q?rogS51LKh+q2TK55bZu3rWECprUlA09ODGRVi7gK1tHWpw1NVEUZU0EoC47w?=
 =?us-ascii?Q?bHNoNJGH8AnKW2Gznn3G4j1c8UhmyKzuqeboTC7Y7q+IlkFlSFG8nvEes9R/?=
 =?us-ascii?Q?yiapMbmwc+Taea/k1e85CkS/JaFTohZWp2o9H41jGvPWXS5pY5p+IqxVFY9g?=
 =?us-ascii?Q?iEdvcLLA9NvFWj1uls8YtSGgcYtzHw6S95ETOvx3Ohy+ELMmySNY88C7ERyD?=
 =?us-ascii?Q?SotN3dbejw/+6p5kqUZC0R9Gd4DUhN5zqzTiQbvdWyLzMtxnUuOidNGFIDRh?=
 =?us-ascii?Q?AlpTPp0pcqObi7Ib9DPb54S5N3qafZ8dAhrZPjVatRBGclXO3mQ9MAPUNHus?=
 =?us-ascii?Q?U0FthFfI4Cwkectfqqb9sKag4eZRAREuvIEqNu0MmSGSajjx/DQ/VZ9iMpUn?=
 =?us-ascii?Q?v7niZnlx/J5NF6QTp//28NFmZSU22ZaINhU0tqH0NVDYPGsD0v1gthPAszLA?=
 =?us-ascii?Q?waxBUYt9tjNp9mGqSVv+1HQ+KT4/+2NfmsgFjt5IQfAxCZkIUKP9Tb+rLe83?=
 =?us-ascii?Q?KkREMVgptTwQ15mKV1m2hQpkXoJKSMMhjNVY?=
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)(1800799024)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Apr 2025 16:11:01.7519
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 4460af43-66f0-40fd-4ab3-08dd834a9baa
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:
	SJ5PEPF000001C9.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4282

From: "Daniel P. Smith" <dpsmith@apertussolutions.com>

Add support to read the command line from the hyperlaunch device tree.
The device tree command line is located in the "bootargs" property of the
"multiboot,kernel" node.

A boot loader command line, e.g. a grub module string field, takes
precendence over the device tree one since it is easier to modify.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
Signed-off-by: Alejandro Vallejo <agarciav@amd.com>
---
v5:
  * Fixed typo on commit message
  * Added BUG_ON() statements on fdt cmdline parsers in setup.c so they
    are skipped on !CONFIG_DOMAIN_BUILDER
  * Add cmdline handling comment to the domain_cmdline_size()
---
 xen/arch/x86/include/asm/bootinfo.h |  6 ++++--
 xen/arch/x86/setup.c                | 22 ++++++++++++++++++++--
 xen/common/domain-builder/core.c    | 26 ++++++++++++++++++++++++++
 xen/common/domain-builder/fdt.c     |  6 ++++++
 xen/common/domain-builder/fdt.h     | 24 ++++++++++++++++++++++++
 xen/include/xen/domain-builder.h    |  8 +++++---
 xen/include/xen/libfdt/libfdt-xen.h | 23 +++++++++++++++++++++++
 7 files changed, 108 insertions(+), 7 deletions(-)

diff --git a/xen/arch/x86/include/asm/bootinfo.h b/xen/arch/x86/include/asm/bootinfo.h
index 1e3d582e45..5b2c93b1ef 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/setup.c b/xen/arch/x86/setup.c
index 7e756302ae..325ba8cc8a 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -984,7 +984,19 @@ static size_t __init domain_cmdline_size(const struct boot_info *bi,
 {
     size_t s = bi->kextra ? strlen(bi->kextra) : 0;
 
-    s += bd->kernel->cmdline_pa ? strlen(__va(bd->kernel->cmdline_pa)) : 0;
+
+    /*
+     * Bootloader cmdline takes precedence and replaces the DT provided one.
+     *
+     * In that case, fdt_cmdline is not be populated at all.
+     */
+    if ( bd->kernel->fdt_cmdline )
+    {
+        BUG_ON(!IS_ENABLED(CONFIG_DOMAIN_BUILDER));
+        s += builder_get_cmdline_size(bi, bd->kernel->cmdline_pa);
+    }
+    else if ( bd->kernel->cmdline_pa )
+        s += strlen(__va(bd->kernel->cmdline_pa));
 
     if ( s == 0 )
         return s;
@@ -1048,7 +1060,13 @@ 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 )
+        {
+            BUG_ON(!IS_ENABLED(CONFIG_DOMAIN_BUILDER));
+            builder_get_cmdline(
+                bi, bd->kernel->cmdline_pa, cmdline, cmdline_size);
+        }
+        else if ( bd->kernel->cmdline_pa )
             strlcpy(cmdline,
                     cmdline_cook(__va(bd->kernel->cmdline_pa), bi->loader),
                     cmdline_size);
diff --git a/xen/common/domain-builder/core.c b/xen/common/domain-builder/core.c
index 0955558977..0b7a21a4b8 100644
--- a/xen/common/domain-builder/core.c
+++ b/xen/common/domain-builder/core.c
@@ -10,9 +10,35 @@
 #include <xen/lib.h>
 
 #include <asm/bootinfo.h>
+#include <asm/setup.h>
 
 #include "fdt.h"
 
+size_t __init builder_get_cmdline_size(const struct boot_info *bi, int offset)
+{
+    const void *fdt;
+    int size;
+
+    fdt = bootstrap_map_bm(&bi->mods[HYPERLAUNCH_MODULE_IDX]);
+    size = fdt_cmdline_prop_size(fdt, offset);
+    bootstrap_unmap();
+
+    return max(0, size);
+}
+
+int __init builder_get_cmdline(const struct boot_info *bi,
+                               int offset, char *cmdline, size_t size)
+{
+    const void *fdt;
+    int ret;
+
+    fdt = bootstrap_map_bm(&bi->mods[HYPERLAUNCH_MODULE_IDX]);
+    ret = fdt_cmdline_prop_copy(fdt, offset, cmdline, size);
+    bootstrap_unmap();
+
+    return ret;
+}
+
 enum fdt_kind __init builder_init(struct boot_info *bi)
 {
     enum fdt_kind kind;
diff --git a/xen/common/domain-builder/fdt.c b/xen/common/domain-builder/fdt.c
index 662c715483..fa92dc55b2 100644
--- a/xen/common/domain-builder/fdt.c
+++ b/xen/common/domain-builder/fdt.c
@@ -219,6 +219,12 @@ static int __init process_domain_node(
             printk(XENLOG_INFO "  kernel: multiboot-index=%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] )
+                bd->kernel->fdt_cmdline = fdt_get_prop_offset(
+                    fdt, node, "bootargs", &bd->kernel->cmdline_pa);
         }
     }
 
diff --git a/xen/common/domain-builder/fdt.h b/xen/common/domain-builder/fdt.h
index f48456acd2..e1243cbf26 100644
--- a/xen/common/domain-builder/fdt.h
+++ b/xen/common/domain-builder/fdt.h
@@ -10,6 +10,30 @@ struct boot_info;
 /* hyperlaunch fdt is required to be module 0 */
 #define HYPERLAUNCH_MODULE_IDX 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);
+}
+
 enum fdt_kind detect_fdt_kind(const struct boot_info *bi);
 int walk_hyperlaunch_fdt(struct boot_info *bi);
 
diff --git a/xen/include/xen/domain-builder.h b/xen/include/xen/domain-builder.h
index 3ac3a0ab84..350e2eb2af 100644
--- a/xen/include/xen/domain-builder.h
+++ b/xen/include/xen/domain-builder.h
@@ -2,6 +2,8 @@
 #ifndef __XEN_DOMAIN_BUILDER_H__
 #define __XEN_DOMAIN_BUILDER_H__
 
+#include <xen/types.h>
+
 struct boot_info;
 
 /* Return status of builder_init(). Shows which boot mechanism was detected */
@@ -28,8 +30,8 @@ static inline enum fdt_kind builder_init(struct boot_info *bi)
 }
 #endif /* !IS_ENABLED(CONFIG_DOMAIN_BUILDER) */
 
-int fdt_read_multiboot_module(const void *fdt, int node,
-                              int address_cells, int size_cells,
-                              struct boot_info *bi)
+size_t builder_get_cmdline_size(const struct boot_info *bi, int offset);
+int builder_get_cmdline(const struct boot_info *bi, int offset,
+                        char *cmdline, size_t size);
 
 #endif /* __XEN_DOMAIN_BUILDER_H__ */
diff --git a/xen/include/xen/libfdt/libfdt-xen.h b/xen/include/xen/libfdt/libfdt-xen.h
index a5340bc9f4..9c20a26a35 100644
--- a/xen/include/xen/libfdt/libfdt-xen.h
+++ b/xen/include/xen/libfdt/libfdt-xen.h
@@ -13,6 +13,29 @@
 
 #include <xen/libfdt/libfdt.h>
 
+static inline bool __init fdt_get_prop_offset(
+    const void *fdt, int node, const char *pname, unsigned long *poffset)
+{
+    int ret, offset;
+    const char *name;
+
+    fdt_for_each_property_offset(offset, fdt, node)
+    {
+        fdt_getprop_by_offset(fdt, offset, &name, &ret);
+
+        if ( ret < 0 )
+            continue;
+
+        if ( !strcmp(name, pname) )
+        {
+            *poffset = offset;
+            return true;
+        }
+    }
+
+    return false;
+}
+
 static inline int fdt_get_mem_rsv_paddr(const void *fdt, int n,
                                         paddr_t *address,
                                         paddr_t *size)
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu Apr 24 16:20:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Apr 2025 16:20:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.966585.1356782 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7zJc-0006nJ-5Y; Thu, 24 Apr 2025 16:20:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 966585.1356782; Thu, 24 Apr 2025 16:20:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7zJc-0006nC-2J; Thu, 24 Apr 2025 16:20:44 +0000
Received: by outflank-mailman (input) for mailman id 966585;
 Thu, 24 Apr 2025 16:20: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=/3PA=XK=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u7zAV-0001nH-IG
 for xen-devel@lists.xenproject.org; Thu, 24 Apr 2025 16:11:19 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on20630.outbound.protection.outlook.com
 [2a01:111:f403:2415::630])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id bfa4974c-2126-11f0-9eb2-5ba50f476ded;
 Thu, 24 Apr 2025 18:11:16 +0200 (CEST)
Received: from BY5PR03CA0010.namprd03.prod.outlook.com (2603:10b6:a03:1e0::20)
 by CY8PR12MB7489.namprd12.prod.outlook.com (2603:10b6:930:90::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.24; Thu, 24 Apr
 2025 16:11:12 +0000
Received: from SJ5PEPF000001C9.namprd05.prod.outlook.com
 (2603:10b6:a03:1e0:cafe::32) by BY5PR03CA0010.outlook.office365.com
 (2603:10b6:a03:1e0::20) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.33 via Frontend Transport; Thu,
 24 Apr 2025 16:11:12 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ5PEPF000001C9.mail.protection.outlook.com (10.167.242.37) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Thu, 24 Apr 2025 16:11:12 +0000
Received: from xcbagarciav01.xilinx.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; Thu, 24 Apr
 2025 11:11:08 -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: bfa4974c-2126-11f0-9eb2-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=YRHSv4eHvZfbR7M1kwjxv4CMcCkXMzJE2Az3N/UD1JNXklJyFNY57k05JFL/9bX1Qv1racOIOxIwlPNOIusyCvEBtYIWTJ3Zplkihd90guSq4oRdD8vUUbsHy2MKoRSOLRiAKJnQUy2kmvfrv2ktYBax/FbrXXlfEBP20VeODwtIMztS77788Sk88bi5CMw5kjXK4blhtLZwUZjvZDZftO2HD5t2iivfQ1w+p2Tgg5Uk11T+lGP/D3caS6gBiJcAr3tCMp95JcWFBFGLunTeSUM9+aVyvSzJ3WIL+UuV13iVi2EOGuZ/H32tDoWqmg0bezjitQMBRvQGaHfCdgqLWg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=28gi/6IP4vO+Xxp1YWVLmOZxY0y3ZtVcvqKxcgVuVdw=;
 b=HOrU3yZdRNdc9n46mzedqAc+It9Dcg1mSSzSRu/r0+l824TfpaPTfS06JXtt2J0HDa1RtVZodNAjKgbGaxXsrjQh2PmvxoAjOF5jBSKDQkK5Td7IegQEegXe+yTtVK3x7XuZst5g9k/9z+WQBQeO1zyj0T+a5ekXACGVnZfewP87u1w8X6DVK9Xn7g1qH03JWQ3hmanQgob9ztqUx5ZgGSUB4TvMjzRqG7fHM2sWWBfEG30w7dVu69QH3R+O2NbQaCgYc0ObJkEo9PTMwDoEJw8/jbGWl8uEAycI7pfP+CDFVm3UVXFuM6Jo6zFQLOzCOWnZl38oNpI4o3v/Si0R3g==
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=28gi/6IP4vO+Xxp1YWVLmOZxY0y3ZtVcvqKxcgVuVdw=;
 b=tl4RarlaeQFnIVVOBWGOH4VU17AttqY7ybqrARSJOyv6WEooLTfNpkYmZwTa42Prq6fhI9jn8isfbK86662bk3PJPU9MOKL8m0GETFL6Op+VR50tOsyNBLh74ioFxrJN7hxidn2KvadhQFRYCNU87HQVdfZWmiM0IU4ziGVRyAg=
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: Alejandro Vallejo <agarciav@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: "Daniel P. Smith" <dpsmith@apertussolutions.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, "Julien
 Grall" <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, "Jason
 Andryuk" <jason.andryuk@amd.com>, Alejandro Vallejo <agarciav@amd.com>,
	"Denis Mukhin" <dmukhin@ford.com>
Subject: [PATCH v5 09/12] x86/hyperlaunch: specify dom0 mode with device tree
Date: Thu, 24 Apr 2025 17:10:19 +0100
Message-ID: <20250424161027.92942-10-agarciav@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20250424161027.92942-1-agarciav@amd.com>
References: <20250424161027.92942-1-agarciav@amd.com>
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: SJ5PEPF000001C9:EE_|CY8PR12MB7489:EE_
X-MS-Office365-Filtering-Correlation-Id: eb9c9049-c628-4850-154e-08dd834aa209
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|36860700013|1800799024|376014;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?ySbd4GVpph3UTND9Mz30SAg6rKKHYyk7ir9tF/5nvVqAMMiyU0Iw7Msiuwrg?=
 =?us-ascii?Q?S2rzQ7c8MsW2WP2qlqPggqhW3YIxeAnCghFVyvisJW1pPPLK3FCfPH9sTZcr?=
 =?us-ascii?Q?392qIJAZDIlGshk0ZijgwxDK7UFaSa+uQKNycwenEvyHDzptg1PCDcC5Pze5?=
 =?us-ascii?Q?B8xTK2GMqgjihOit+v7vyACf3vs8PpK774UwIqm+WYwLcbA9Hsx25zbH1YQq?=
 =?us-ascii?Q?u4LI+6XJa7L3e6INtVHXpceFeMXphkfBEb9e762hFWCvPp9NkMwx9HRAVJ2E?=
 =?us-ascii?Q?7hhUvV7/Og2y4AjFDhcYwgYlFzyNS+6eDK3t6l09NV/x1CcgDEMT8LDrQ+V7?=
 =?us-ascii?Q?BUWui3BQviEHZO8kcw8FbF405+e4fxeu0CeXy5X6c6bPF5EOkQRAYNWHWT0d?=
 =?us-ascii?Q?7BFuDC7QJZKbuoQKtGsUYsbZ23toRiJRJKYxESQOxtUipWjoLSVu6jHuDq1y?=
 =?us-ascii?Q?WfvoAyxL/+mBFi3wJ7mn5vxjspLjaNLMb0UBZ/z44HkvqMvumimtMf/H+nBE?=
 =?us-ascii?Q?NWFVsKpEZg54vIpE0taWkcJcU7uXm24G8pYwByGOCs2MVUHbuoT9eK0yLcM8?=
 =?us-ascii?Q?awokhxzyb17HlAclW/3C6ptcD/5mDT439vsW7eT+g0dm266LUxZfnG1KFwKC?=
 =?us-ascii?Q?hurHbxpUVPEZqhRem1vCdS/UuKo/cilTmVMFED2vBACjLO+QVI3r5JePgL5V?=
 =?us-ascii?Q?RDHjEgTum/xULtkliGQkaYyLGDSvW6xk9hqH59H4mo/imDx2NEqJ1bqyl+zz?=
 =?us-ascii?Q?RtDO7G1hbMb9lOp6Xv5BhcUvH0vwokK4SDTXb2IEmdXqv9oPdqT5TPQK0t4L?=
 =?us-ascii?Q?2DgoEV84TQ9AHttxRjugrilMDG/jqOAAaXe7f9Wq9m/l+rQJRiMYssFDrAFG?=
 =?us-ascii?Q?WFalSPi/Yqfd60UEChL+CHg0yR/WI7uq+UGIIj1SM73XN2VaBPCyZsEJ/bVK?=
 =?us-ascii?Q?yO3MtIUNeiL9MwUyv4Oaw1RaOxS8KAmEd8ZTS6KBmrCV4jsHIem6bP6Gmb/l?=
 =?us-ascii?Q?qQzPVHZrr/eK/ikOSprbCeu9TiqyXZJUkgCiiRiLWy5kjfbQAGzkj3mZlgl5?=
 =?us-ascii?Q?IPdajgiSbB0R+QpGvQR9kKciW78F+8XPh/CWZjfXqiHT0F4Kg98fqj2XAXhX?=
 =?us-ascii?Q?laUAQpxfo4W3uKBwwzSaA5t6rxoWwb0oijILJCuvu4VbL1ggsX6ZDTh2oXJg?=
 =?us-ascii?Q?MqIpUFEbYgcjkI1LQvYsC6cURvWbO27zQmN7MnEvXoh3WX+ToDgAm2kAy4QY?=
 =?us-ascii?Q?egZvVlmKRrjIM5wonG7MD/UHUT3WPvLI0PYoQ9z9mGqTf7mxaHgpmKTjNbsW?=
 =?us-ascii?Q?S0b3nTw+UW6GXqys4paGKgT1TpGJhYXXPZvDCK/XvYPz5nOFlALGgy1kMFSr?=
 =?us-ascii?Q?WWwQ1rudiPvdCLj2HNl9aQ2lZMZC+RCGW7jMpSt+hTtEXeCH5Nvx+mEl+Zyr?=
 =?us-ascii?Q?QO9G/z9udp5I8fyRqEhiM2sczPd/dwtBzmXwOWDmroNcyKSV+PJP04vFo9JC?=
 =?us-ascii?Q?kRRccyjnaFRGzZT+fUMSqfjbHfX1UksMqsrz?=
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)(1800799024)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Apr 2025 16:11:12.4395
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: eb9c9049-c628-4850-154e-08dd834aa209
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:
	SJ5PEPF000001C9.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR12MB7489

From: "Daniel P. Smith" <dpsmith@apertussolutions.com>

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>
Signed-off-by: Alejandro Vallejo <agarciav@amd.com>
Reviewed-by: Denis Mukhin <dmukhin@ford.com>
---
 xen/arch/x86/include/asm/boot-domain.h |  5 +++++
 xen/arch/x86/setup.c                   |  3 ++-
 xen/common/domain-builder/fdt.c        | 21 +++++++++++++++++++++
 3 files changed, 28 insertions(+), 1 deletion(-)

diff --git a/xen/arch/x86/include/asm/boot-domain.h b/xen/arch/x86/include/asm/boot-domain.h
index d7c6042e25..e316d4bcde 100644
--- a/xen/arch/x86/include/asm/boot-domain.h
+++ b/xen/arch/x86/include/asm/boot-domain.h
@@ -13,6 +13,11 @@
 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     */
+    uint32_t mode;
+
     struct boot_module *kernel;
     struct boot_module *module;
     const char *cmdline;
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index ece77079d8..d3a4f89a6a 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -1029,7 +1029,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) ?
diff --git a/xen/common/domain-builder/fdt.c b/xen/common/domain-builder/fdt.c
index 5a5b3c8806..75f68de448 100644
--- a/xen/common/domain-builder/fdt.c
+++ b/xen/common/domain-builder/fdt.c
@@ -235,6 +235,27 @@ static int __init process_domain_node(
             bd->domid = val;
             printk(XENLOG_INFO "  domid: %d\n", bd->domid);
         }
+        else if ( !strncmp(prop_name, "mode", name_len) )
+        {
+            if ( (rc = fdt_prop_as_u32(prop, &bd->mode)) )
+            {
+                printk(XENLOG_ERR
+                       "  failed processing mode for domain %s\n", name);
+                return rc;
+            }
+
+            if ( (bd->mode & BUILD_MODE_PARAVIRT)  &&
+                 (bd->mode & BUILD_MODE_ENABLE_DM) )
+            {
+                printk(XENLOG_ERR "  mode: invalid (pv+hvm)\n");
+                return -EINVAL;
+            }
+
+            printk(XENLOG_INFO "  mode: %s\n",
+                   (bd->mode & BUILD_MODE_PARAVIRT)  ? "pv"  :
+                   (bd->mode & BUILD_MODE_ENABLE_DM) ? "hvm" :
+                                                       "pvh");
+        }
     }
 
     fdt_for_each_subnode(node, fdt, dom_node)
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu Apr 24 16:21:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Apr 2025 16:21:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.966599.1356792 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7zJt-0007LG-DF; Thu, 24 Apr 2025 16:21:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 966599.1356792; Thu, 24 Apr 2025 16:21: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 1u7zJt-0007L7-A0; Thu, 24 Apr 2025 16:21:01 +0000
Received: by outflank-mailman (input) for mailman id 966599;
 Thu, 24 Apr 2025 16:21: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=/3PA=XK=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u7zAd-0001nN-UD
 for xen-devel@lists.xenproject.org; Thu, 24 Apr 2025 16:11:27 +0000
Received: from NAM12-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam12on20611.outbound.protection.outlook.com
 [2a01:111:f403:200a::611])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c415f30f-2126-11f0-9ffb-bf95429c2676;
 Thu, 24 Apr 2025 18:11:24 +0200 (CEST)
Received: from MW4PR04CA0287.namprd04.prod.outlook.com (2603:10b6:303:89::22)
 by SJ0PR12MB6854.namprd12.prod.outlook.com (2603:10b6:a03:47c::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.35; Thu, 24 Apr
 2025 16:11:18 +0000
Received: from SJ5PEPF000001CB.namprd05.prod.outlook.com
 (2603:10b6:303:89:cafe::1b) by MW4PR04CA0287.outlook.office365.com
 (2603:10b6:303:89::22) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.36 via Frontend Transport; Thu,
 24 Apr 2025 16:11:18 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ5PEPF000001CB.mail.protection.outlook.com (10.167.242.40) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Thu, 24 Apr 2025 16:11:18 +0000
Received: from xcbagarciav01.xilinx.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; Thu, 24 Apr
 2025 11:11:15 -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: c415f30f-2126-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ZryILJ9lMBMSEhswr6xb8tx8H1Ju0uCieYHJMPfprCLQO5e7T5eOTrYWMAsb79WRI9BjB9Zcd6SjoYj6VB8ZEQZJzKg3o5z6SDUwkfcqprxmV4k9cQDvWU+mj0vufXW4awAvDu5BqSw9towBjjdMdu7j7shlsCs1PCSr0Ti7Skmjj+vq27vzHrjkg6R1g6yj/gTkzUegGdpUrzqPDlag/Y/ZeES9Fnfaa8Uzyfp3pTl8z0tQ/dtrlOy+Ne0rbc1gUQrAOrUuLEo+7biprbEUq9UXw+XBg5BXpVgBoyq6oK5EBJvpyLDOBsTdbXYQornPCkm1cO62I1NiH3EqDnJKAw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=RsN0d2QN5rII9Lf6gzYOwAZ2IpMwWI5p1HyZ9OS2+wc=;
 b=eONT1h2CXOya8wDho9x6fIFKxI56ZnbCA+KqUj+Ipq6O6KjDRHdJkmE+FMb8ZJuVdAh3fDca/AHIT3aJRlyiGZp1prxexN/qoqyUJYzAP9+fjpw1P0HEL7eO/RjFGKISqwK/qtkLxY3qJ7Jvhs2zqHfdafIyRb4xkKlAUxyQ4Jb6v69oNEJnXFaNsexIHs32Xct8Tin52cFnulSWTPFM0x9aD5MwW+K+bjjnSUqCJGGQvf4O/vuonYqiTBU0z21Vsye15Z6jSzHZ5HFNpi1HfadYtg/9GlGPGplhJlyenf1smbxU1idy2uGO5xfJMum3DNcw04o0GsTbTOUnR5XWmQ==
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=RsN0d2QN5rII9Lf6gzYOwAZ2IpMwWI5p1HyZ9OS2+wc=;
 b=HV6wNsfJdMlsUDwEHTA3WiTdvLo/rVSduvgaxytPjkyBCC9vJfixm1mjYKkoeZ810jtQeZB+xMWZwZcGLwK4n0+oXk1AzbuZEg99/+W5r6Rf/4axBXUq5dPscsKHYxAIcVi4l2xrOhlDEKYhNEmGpSfOiMDBnN+X/PG13H+VKqg=
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: Alejandro Vallejo <agarciav@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: "Daniel P. Smith" <dpsmith@apertussolutions.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, "Julien
 Grall" <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, "Jason
 Andryuk" <jason.andryuk@amd.com>, Alejandro Vallejo <agarciav@amd.com>,
	"Denis Mukhin" <dmukhin@ford.com>
Subject: [PATCH v5 11/12] x86/hyperlaunch: add max vcpu parsing of hyperlaunch device tree
Date: Thu, 24 Apr 2025 17:10:21 +0100
Message-ID: <20250424161027.92942-12-agarciav@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20250424161027.92942-1-agarciav@amd.com>
References: <20250424161027.92942-1-agarciav@amd.com>
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: SJ5PEPF000001CB:EE_|SJ0PR12MB6854:EE_
X-MS-Office365-Filtering-Correlation-Id: fd647027-00d6-42cf-4817-08dd834aa586
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|376014|36860700013|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?SHILNE1zQ1878s/MWzWAEjzjbr/I7N/eoueJUmOdriNp71t0VeE/FZyBxvrv?=
 =?us-ascii?Q?kIVcU50Bl5e5TPYymorKwR4E59IJO04qZqQv39B+RRfwlaTVInciwsKQ2SYD?=
 =?us-ascii?Q?DDTpIWwR1/mR+8+OV00ucigzT3+t+VSq4NaRlH5Yr63nZB5uvNU+weuejjaZ?=
 =?us-ascii?Q?vnkYpJlCw1dOKVLuabvzJn/U3JcvdsDdufWgTVZCTbdsSBwuRWLNXN1VtE7p?=
 =?us-ascii?Q?hmfwOiZ6DT4jHK+DCJqWqBiSUnsT8NUJUrYj/m3MFMOvk8PU41VmoHVmkmQo?=
 =?us-ascii?Q?fGhwj+A8UI19U51WDt00q0+KttK0dvr8c6PoUrO0fIdFAZ3oL0EVNa0ZLfnB?=
 =?us-ascii?Q?AXVj+wM9izVBgbRi/AhJJgvnvCtjx4oFvOyA2TqsLeo3uSS5ZVBEnu/NmI+Q?=
 =?us-ascii?Q?pE6LFvM7dqlBxi4+Z9sibA1duaA6MK3hXRZCtPlxmjbiHDH+ay6S+MSCDbcf?=
 =?us-ascii?Q?b8vorB3hRF4wCbOV7DhPbAbFYdlmcafSw0/l0suwWA6Ie518e0ozMKJCNAuJ?=
 =?us-ascii?Q?rSbMxiW9nOEuV07Y+WSvpn50ysrY3nbyJq/PkzTdFs8rNAzKMEim0ib4HHGp?=
 =?us-ascii?Q?WssEMK03eG4pRVO1rQTHDBHbl+ZDkQ7XhkjiWtRhhAHw/pqssCK/zVW6Xu+g?=
 =?us-ascii?Q?bZkEoOiWKodpinjP9pZ78JWYER469IeFE32ICMmHbtMvIsfYtjdWC0VlE6eO?=
 =?us-ascii?Q?rW5J+wLjJCScS1N7+GSmS5djyb2QgK2ZrpCqFqS2+ITEuXc677ahkmDLm4mF?=
 =?us-ascii?Q?BVdt2T2/UJcBQyjTp1ZY+VEgeRdVeqwblu3BB/WR3cYjYUJVWgn1T0WNF1ww?=
 =?us-ascii?Q?2XXlEb3m8MaufnX5yMbYpPFSYJp9AQqe1mk4EoC1B5G5oxwPx7r9+X16ggnU?=
 =?us-ascii?Q?KKWF9FBdDdhGTQW2YXMvBB79A1sBCcVjAkY44Bns123xWczPo5Cqy4E+SQmu?=
 =?us-ascii?Q?+I5IFSJVXXzqb7h+LOKinkPhhQP9GqaE3OTLClC2GZOHErGeAvyphQlOLo23?=
 =?us-ascii?Q?VKLVXcd+jPpKGaQbodcEi64zKE3zagxoqNBkXAujl/5RLBaDLzutRoPJ9ZNY?=
 =?us-ascii?Q?nOQf8+Wbetjz8j3weoB9vPsK/z7S4bI+guLQ2R04BvasutvbeS8gbvwiY00A?=
 =?us-ascii?Q?ph82jL8E/0Ma96UltH3lN2p2VBtGj+aTM9Hk/WmnagIA8IpSiiTR941UpFvl?=
 =?us-ascii?Q?E6wy9J+PXiGSlTq6/nrVYWXjplmXXDbVLCCpkevXUg65LVyw08Oe+ufJ93Lk?=
 =?us-ascii?Q?3hZ+Zy/TDwk5ZWiNPkTnLLweKCOn0Eg5r0QQ6MzS41cLwB1+Zf7Eg2RzTfEv?=
 =?us-ascii?Q?Nqd/gY4bXSq0ezXV8OZEsjmFmZAmTIhkIKc+4S9at85VCxJfkLgKpuq4irAP?=
 =?us-ascii?Q?oWCp0SvWPDPoakjJBz8Hi4F1Bo87Akt0qGNYguwh5lpF4uDd3m+OBUZKR4Bh?=
 =?us-ascii?Q?WyN8nfJzPuiH2AZ5z5bnpZUkji+/bgiwfe/7hv4O3+ifVx+tHT3HFGk06nCh?=
 =?us-ascii?Q?Xksl/p5FsVTLyswj4ql0EihnzbwzgSpchGmh?=
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)(376014)(36860700013)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Apr 2025 16:11:18.2931
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: fd647027-00d6-42cf-4817-08dd834aa586
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:
	SJ5PEPF000001CB.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR12MB6854

From: "Daniel P. Smith" <dpsmith@apertussolutions.com>

Introduce the `cpus` property, named as such for dom0less compatibility, that
represents the maximum number of vcpus 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>
Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>
Signed-off-by: Alejandro Vallejo <agarciav@amd.com>
Reviewed-by: Denis Mukhin <dmukhin@ford.com>
---
 xen/arch/x86/dom0_build.c              |  3 +++
 xen/arch/x86/include/asm/boot-domain.h |  2 ++
 xen/common/domain-builder/fdt.c        | 11 +++++++++++
 3 files changed, 16 insertions(+)

diff --git a/xen/arch/x86/dom0_build.c b/xen/arch/x86/dom0_build.c
index 8db24dbc0a..f734104c74 100644
--- a/xen/arch/x86/dom0_build.c
+++ b/xen/arch/x86/dom0_build.c
@@ -635,6 +635,9 @@ int __init construct_dom0(const struct boot_domain *bd)
     if ( !get_memsize(&dom0_max_size, ULONG_MAX) && bd->max_pages )
         dom0_max_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/include/asm/boot-domain.h b/xen/arch/x86/include/asm/boot-domain.h
index fa8ea1cc66..969c02a6ea 100644
--- a/xen/arch/x86/include/asm/boot-domain.h
+++ b/xen/arch/x86/include/asm/boot-domain.h
@@ -22,6 +22,8 @@ struct boot_domain {
     unsigned long min_pages;
     unsigned long max_pages;
 
+    unsigned int max_vcpus;
+
     struct boot_module *kernel;
     struct boot_module *module;
     const char *cmdline;
diff --git a/xen/common/domain-builder/fdt.c b/xen/common/domain-builder/fdt.c
index ff41727ef1..e90f183481 100644
--- a/xen/common/domain-builder/fdt.c
+++ b/xen/common/domain-builder/fdt.c
@@ -302,6 +302,17 @@ static int __init process_domain_node(
             bd->max_pages = PFN_DOWN(kb * SZ_1K);
             printk(XENLOG_INFO "  max memory: %lu KiB\n", kb);
         }
+        else if ( !strncmp(prop_name, "cpus", name_len) )
+        {
+            uint32_t val = UINT32_MAX;
+            if ( (rc = fdt_prop_as_u32(prop, &val)) )
+            {
+                printk(XENLOG_ERR "  bad \"cpus\" prop on domain %s\n", name);
+                return rc;
+            }
+            bd->max_vcpus = val;
+            printk(XENLOG_INFO "  cpus: %d\n", bd->max_vcpus);
+        }
     }
 
     fdt_for_each_subnode(node, fdt, dom_node)
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu Apr 24 16:21:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Apr 2025 16:21:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.966616.1356802 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7zK9-0007wP-LL; Thu, 24 Apr 2025 16:21:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 966616.1356802; Thu, 24 Apr 2025 16: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 1u7zK9-0007wI-HH; Thu, 24 Apr 2025 16:21:17 +0000
Received: by outflank-mailman (input) for mailman id 966616;
 Thu, 24 Apr 2025 16:21: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=/3PA=XK=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u7zAT-0001nH-Hi
 for xen-devel@lists.xenproject.org; Thu, 24 Apr 2025 16:11:17 +0000
Received: from NAM10-BN7-obe.outbound.protection.outlook.com
 (mail-bn7nam10on2060b.outbound.protection.outlook.com
 [2a01:111:f403:2009::60b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id be89a138-2126-11f0-9eb2-5ba50f476ded;
 Thu, 24 Apr 2025 18:11:13 +0200 (CEST)
Received: from MW4PR04CA0294.namprd04.prod.outlook.com (2603:10b6:303:89::29)
 by DM6PR12MB4418.namprd12.prod.outlook.com (2603:10b6:5:28e::9) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.26; Thu, 24 Apr
 2025 16:11:09 +0000
Received: from SJ5PEPF000001CB.namprd05.prod.outlook.com
 (2603:10b6:303:89:cafe::4d) by MW4PR04CA0294.outlook.office365.com
 (2603:10b6:303:89::29) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.36 via Frontend Transport; Thu,
 24 Apr 2025 16:11:09 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ5PEPF000001CB.mail.protection.outlook.com (10.167.242.40) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Thu, 24 Apr 2025 16:11:09 +0000
Received: from xcbagarciav01.xilinx.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; Thu, 24 Apr
 2025 11:11:05 -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: be89a138-2126-11f0-9eb2-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=d/63QOD/WDcAPlBXya9Hgxzw6neik0jVdIYDWsAHppAvxKMMy27tRx4SnRCvxpa7bZdA9Fci7NaSoy4aCUxJuTTjPpFotrKvKZX1Fz5mBHszYLGSpuHF/wMU6I8lHDJ2hmlUvC4zWbUwT19lj5HNQYjSEXKm8nx7dee186AI+xhI+VXbnuS2YtY8uhF8srix5uz5OoQD5v9iZoKx8JDFAw22XPQGQ00Dei7VDreOKS1p6wyDDk/bQlGYWFgkL3I5aTrRE1hQWH3j/DknbGWkKqVGJWY8YseNthwYMX9zRdf+vlhqfokqQ6pUpoAcDn3E1GusAhsr4ZtuEB5VdFCOrw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=qIhJ8nbyFnianlR3LJ/mEEa1RiFi8WH+5AR9mcXRzQo=;
 b=LD18mgOqq1fjZ0rUrIpzhbzcG8LsK22T+HOeEujCx2//+tT/pN6kgeXwzve+qy/zLUA7prUzLHGtCsJwPVrtugvLAqYSFGD4TkONzv3YqtAK+Ppx0AzFtU/CMsBaDqCNUviThhDhuAI+t2BMkNuzc9IXK70czAmTdYPivjgmYi2wOqJZIOZjxPHhi0RDygFHXaqdTlrMu9xgfFDEtdIOYbIbAppc8rcMdG2SwASlj4Oe3Ot7hGmAbwNHalthhzIaW9RnXT/SRDDb53365phCEhLr5DlU931a0IZpLConT+D5V+QHO84GW1JMkJcOPNkCERJrLmn1Bd6+P5/MvYj/NA==
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=qIhJ8nbyFnianlR3LJ/mEEa1RiFi8WH+5AR9mcXRzQo=;
 b=insDBlao1ROBg4b+WE8FzgZb34qNcm1pJPuZsBJIM7NIasvFXiBe5USd3hqfXa70SQrfN6BMUingBqGUKn9Xo4cti7MvErKiiu2f1ujUnhjqoUWeKKxhgw2L6/NP04+LTQ4cP4/GlQgf30+U7q1IxoP/iYKkgz1omUy9qtDpYlA=
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: Alejandro Vallejo <agarciav@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: "Daniel P. Smith" <dpsmith@apertussolutions.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, "Julien
 Grall" <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
	Alejandro Vallejo <agarciav@amd.com>
Subject: [PATCH v5 08/12] x86/hyperlaunch: add domain id parsing to domain config
Date: Thu, 24 Apr 2025 17:10:18 +0100
Message-ID: <20250424161027.92942-9-agarciav@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20250424161027.92942-1-agarciav@amd.com>
References: <20250424161027.92942-1-agarciav@amd.com>
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: SJ5PEPF000001CB:EE_|DM6PR12MB4418:EE_
X-MS-Office365-Filtering-Correlation-Id: d8261fd0-4ed6-498c-4ea6-08dd834aa018
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?dFgxyY9CgBgbJMSH0+1k5/AjM+4xqE7l7nPmVdyKmsp3+F3GqMiDnRH5Ag5j?=
 =?us-ascii?Q?0AT3QILWva9aBIw9mMdJyXiGyKLqpc/DzEfY5fXYcBF8IQ/ZO7Bmq4+GNy1t?=
 =?us-ascii?Q?GLlIYNis2amwfZWyhFLBCASKg45NJdyeTOIBtn3AKDmrIsVA2uz6/IpCpGIe?=
 =?us-ascii?Q?ILdJ3KIFe4WB4UMGNnniP01D/CCSEJiQYdHchM5JiwBeH1mfuhYtUdS5cgtw?=
 =?us-ascii?Q?RZA024hhh0kq5D1c/a1mKg++2d3oAkvjFcGgE/dM/ZNvWT1zG/cQYlaaujia?=
 =?us-ascii?Q?0meHE2cKuZ/SxtkGem1cPkO8KGjFKbPuUR9Co1JgMVG8aUa1qvbmsKWitB80?=
 =?us-ascii?Q?t7JMGOGE8+uNY90G4eBrGXZZcqm1N/iQSFQ11xOLHJ3mXOv5vbi+0SfjKHRe?=
 =?us-ascii?Q?hZBpPFErBNvqCGKsqsdxvTASQoyZpsMEJAfykLO5oQSw0wz8CBsVJLcjjoFn?=
 =?us-ascii?Q?lzkF0RltkOlpUiuMnhE6a33sZ3SJ57raLuVqvndYU/LTN9Mm58tiqADW+dGW?=
 =?us-ascii?Q?XIhGvlUchWwmDZwB553+wCDzdhNviOINZ+CGpecH9WF9cnBs93QP40Elv0tS?=
 =?us-ascii?Q?LFkAOBBrY4C/wrdM95aypKHkP0SNioAHJMEo63BX/jxuGUAGCAQrtijNHCYA?=
 =?us-ascii?Q?5IeJ24R6WU6SQcX1PK8xCaf5kCyvIUFMnNspPcMIGSj6NRA3dZrJsj9Dkcgd?=
 =?us-ascii?Q?qjlJ87MhFbE3RxbkhY/M55lsM8JPdtl5vlnHqmSH7cburSb9MQXWoOrsATjT?=
 =?us-ascii?Q?DJdXUsVTWRvHTzID/fThmWxjyMM3JUNJUKu/HyaS6IEd2UYoNMhVKI4zIu99?=
 =?us-ascii?Q?UWSCxNMMyou6kqpMRBClpQAB88pyjwBahbIgKtpSfuxOf10hWEO/cRR96TFD?=
 =?us-ascii?Q?oRQGiuvGS+XYLAfzz9RElJJWD1hCnhSHNjU8cy90ttJCVwNwgElEtFj6w6Xe?=
 =?us-ascii?Q?x3xPWqR3KiPwVrEk5tJ4M3qygELHIoqsP43EkxEz+BlkxeQNaLZgk3szj+eV?=
 =?us-ascii?Q?+MUWte7NGTXAjlbcosDMGMXjFh4llOv8Qac4B6gBKwVtSA1FLmzGGcVgkN2f?=
 =?us-ascii?Q?ihmpfnfwZKhMeysrtPLKmfmkhKfKwavkhAdTSqTNTZBhfNjJ9ZuDDq8W911W?=
 =?us-ascii?Q?eNTJXLOHQc+xcX91VoSB+5bGGHppVaoRf3CVSSmpiJ7ZGL+StKK9FHJqBD2F?=
 =?us-ascii?Q?zJg84mA2K96/GAdRYGWZV1Q27NbFXXpADOAuNkc3Ixnu/Q2Nzbe8SrBFlSR4?=
 =?us-ascii?Q?wpacGccxCuIRRXEenI8vb8ASwuBtIWTU4Nxy6lioC8HPlOatmlRj4Ur0wfvM?=
 =?us-ascii?Q?SQDcy+nJFFrreRq/+xwiIcQuDfAmFiykVhM3Ax0WUm7EiSCsl6hVvP+9Dn+/?=
 =?us-ascii?Q?p9ABBFpDfZEG3tEubSF4Em9CRidzxoZA20oaDZpjCNANylxZGAr9AS+n8KE9?=
 =?us-ascii?Q?6CICeLDERxJnY0FeqxD1bIgNGea5QzmsYYgUNXoUQB/jRkfbKGDR2+IdQ1dl?=
 =?us-ascii?Q?jQWj8SnHN/ZdzIUebYPrja1CuVZta9tgiImR?=
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: 24 Apr 2025 16:11:09.1838
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: d8261fd0-4ed6-498c-4ea6-08dd834aa018
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:
	SJ5PEPF000001CB.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4418

From: "Daniel P. Smith" <dpsmith@apertussolutions.com>

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>
Signed-off-by: Alejandro Vallejo <agarciav@amd.com>
---
v5:
  * Added missing domid to printk (also rewrote it).
---
 xen/arch/x86/setup.c            |  5 ++--
 xen/common/domain-builder/fdt.c | 52 ++++++++++++++++++++++++++++++++-
 2 files changed, 54 insertions(+), 3 deletions(-)

diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 661b80138a..ece77079d8 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -1042,8 +1042,9 @@ static struct domain *__init create_dom0(struct boot_info *bi)
     if ( iommu_enabled )
         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 )
+        /* Create initial domain.  Not d0 for pvshim. */
+        bd->domid = get_initial_domain_id();
     d = domain_create(bd->domid, &dom0_cfg,
                       pv_shim ? 0 : CDF_privileged | CDF_hardware);
     if ( IS_ERR(d) )
diff --git a/xen/common/domain-builder/fdt.c b/xen/common/domain-builder/fdt.c
index 144fcc75b5..5a5b3c8806 100644
--- a/xen/common/domain-builder/fdt.c
+++ b/xen/common/domain-builder/fdt.c
@@ -2,6 +2,7 @@
 /*
  * Copyright (C) 2024, Apertus Solutions, LLC
  */
+#include <xen/domain.h>
 #include <xen/err.h>
 #include <xen/init.h>
 #include <xen/lib.h>
@@ -188,12 +189,54 @@ static int __init fdt_read_multiboot_module(const void *fdt, int node,
 static int __init process_domain_node(
     struct boot_info *bi, const 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) ?: "unknown";
     int address_cells = fdt_address_cells(fdt, dom_node);
     int size_cells = fdt_size_cells(fdt, dom_node);
 
+    fdt_for_each_property_offset(property, fdt, dom_node)
+    {
+        const struct fdt_property *prop;
+        const char *prop_name;
+        int name_len, rc;
+
+        prop = fdt_get_property_by_offset(fdt, property, NULL);
+        if ( !prop )
+            continue; /* silently skip */
+
+        prop_name = fdt_get_string(fdt, fdt32_to_cpu(prop->nameoff), &name_len);
+
+        if ( !strncmp(prop_name, "domid", name_len) )
+        {
+            uint32_t val = DOMID_INVALID;
+
+            if ( (rc = fdt_prop_as_u32(prop, &val)) )
+            {
+                printk(XENLOG_ERR
+                       "  failed processing domain id for domain %s\n", name);
+                return rc;
+            }
+            if ( val >= DOMID_FIRST_RESERVED )
+            {
+                printk(XENLOG_ERR "  invalid domain id for domain %s\n", name);
+                return -EINVAL;
+            }
+
+            for ( unsigned int i = 0; i < bi->nr_domains; i++ )
+            {
+                if ( bi->domains[i].domid == val )
+                {
+                    printk(XENLOG_ERR "  duplicate id for domain %s\n", name);
+                    return -EINVAL;
+                }
+            }
+
+            bd->domid = val;
+            printk(XENLOG_INFO "  domid: %d\n", bd->domid);
+        }
+    }
+
     fdt_for_each_subnode(node, fdt, dom_node)
     {
         if ( !fdt_node_check_compatible(fdt, node, "multiboot,kernel") )
@@ -258,6 +301,13 @@ static int __init process_domain_node(
         return -ENODATA;
     }
 
+    if ( bd->domid == DOMID_INVALID )
+        bd->domid = get_initial_domain_id();
+    else if ( bd->domid != get_initial_domain_id() )
+        printk(XENLOG_WARNING
+               "warning: unsupported boot. d%d is not the initial domain.\n",
+               bd->domid);
+
     return 0;
 }
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu Apr 24 16:21:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Apr 2025 16:21:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.966630.1356811 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7zKJ-0008UU-W4; Thu, 24 Apr 2025 16:21:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 966630.1356811; Thu, 24 Apr 2025 16: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 1u7zKJ-0008UN-TS; Thu, 24 Apr 2025 16:21:27 +0000
Received: by outflank-mailman (input) for mailman id 966630;
 Thu, 24 Apr 2025 16: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=/3PA=XK=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u7zAo-0001nN-Vs
 for xen-devel@lists.xenproject.org; Thu, 24 Apr 2025 16:11:38 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on20606.outbound.protection.outlook.com
 [2a01:111:f403:2412::606])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c817a06c-2126-11f0-9ffb-bf95429c2676;
 Thu, 24 Apr 2025 18:11:31 +0200 (CEST)
Received: from BYAPR08CA0001.namprd08.prod.outlook.com (2603:10b6:a03:100::14)
 by IA1PR12MB6626.namprd12.prod.outlook.com (2603:10b6:208:3a2::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.27; Thu, 24 Apr
 2025 16:11:22 +0000
Received: from SJ5PEPF000001CC.namprd05.prod.outlook.com
 (2603:10b6:a03:100:cafe::e1) by BYAPR08CA0001.outlook.office365.com
 (2603:10b6:a03:100::14) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.36 via Frontend Transport; Thu,
 24 Apr 2025 16:11:22 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ5PEPF000001CC.mail.protection.outlook.com (10.167.242.41) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Thu, 24 Apr 2025 16:11:22 +0000
Received: from xcbagarciav01.xilinx.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; Thu, 24 Apr
 2025 11:11:17 -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: c817a06c-2126-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=DOk5Zcj3gGbLAGhdmsWyigFOw0M2iBItfv3nOhRJD/h8KNv+FoNeFZZaK1vZydITsCl0a8/mvtoYEg4uv1o4W/Uvx8n9aePUaA47X0nfNf7mzFPIeYxWR880sSQWNDiNlFfT+QmZf5QkwVgT9Atq7TfbnaL7UgagzB4BVDOkpCj5h8orPE7KKjBWYeCyIs+FNL9mxOLM4nZtJ8wzWOJpruqD9qRZlvW7trN57uy/WRdMLzA/+Ho+cliuPuQc4zMNBvYKHD97wg4iC4iGOMg/y3y3EUer7A8pJUe73ZZxfIk45wk4FpqwPBSuaW3LEIFF17u58eOK0+YXhDuRcezoCA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ZnYdhXQLD7Eiy2SzydZQeTnvDQgUvVY63+cNfwNHfqc=;
 b=Xa/RXKF/Hu6cDs3CEYHg72bHjuaVZhTResDnrolmA61iWXCzi3Ddk10FsK0b8SxqQp8vEitgmND3VzvyVVLgAM65HF+mIoi3asTuPuVd7GLZCxvmfUmn4Mpq3NhQYFPvOxg5Znpz36T0Bk5MKqHPNHtdkh+b1/dRe6se0Afx/bXUazE9iUR3+FrlSSPsp1a9poRoo3BxDdzMNfh2EBrLgjQj6Cl6e+R157S2tn9F2gZS/kvaZWSUQJMXK/D/ra4fDatZ292s1TrsrL5uE16rcFxqCVBvHXqkm5RlGRNaQaUNqtxt+Kj6gxpIGnBWYT2LoTWsdwT3KbuYcpcMRuvaiw==
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=ZnYdhXQLD7Eiy2SzydZQeTnvDQgUvVY63+cNfwNHfqc=;
 b=vqz89+4STj/AcyAuHL9wdnzgUwRhHXaV/IiD1QmFRX5ZwnEaB9/EjPhRJXhf8jMyhZv7mdQy1cfFDS3sSnt+r2PGO+GLSlo/0uJL8gx+ZhRCB0aK74r+Wbt4Sx/u8r+vN4GRRRhMW+dHJx52UBfWzNGU+AzPsxu68dmEMyuWYIc=
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: Alejandro Vallejo <agarciav@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: "Daniel P. Smith" <dpsmith@apertussolutions.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, "Julien
 Grall" <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, "Jason
 Andryuk" <jason.andryuk@amd.com>, Alejandro Vallejo <agarciav@amd.com>,
	"Denis Mukhin" <dmukhin@ford.com>
Subject: [PATCH v5 12/12] x86/hyperlaunch: add capabilities to boot domain
Date: Thu, 24 Apr 2025 17:10:22 +0100
Message-ID: <20250424161027.92942-13-agarciav@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20250424161027.92942-1-agarciav@amd.com>
References: <20250424161027.92942-1-agarciav@amd.com>
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: SJ5PEPF000001CC:EE_|IA1PR12MB6626:EE_
X-MS-Office365-Filtering-Correlation-Id: c115599b-caae-41f1-8342-08dd834aa7ca
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|36860700013|376014|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?7d4beJut/MVPBv15XLaG4UyINf3f7O+Bfx5SzK8YAuy55KskDcB3Q0V3wNOg?=
 =?us-ascii?Q?5A6y4zRezCJOHQmA8kL5ORJuyW9HErM4KOOT658BDTH7+Odz+0v5Rc8X1R3Q?=
 =?us-ascii?Q?Lj1MHIMtTFZlgWO4TqAM9R7LcI6w8w8WUB4o8Z6525tr3BtVevDClbXrTYIr?=
 =?us-ascii?Q?WAEdzH3JjAenaD2owrUWXmRUBFLcuPyMj5WPCIDcHo9g4MZVlwLvQPRadwml?=
 =?us-ascii?Q?L0QOkfof14bTKUuQafw5hZys/o89EAApyr4bLclmjZLMRU4WsAqKm5DQMtpI?=
 =?us-ascii?Q?U1XlHXFjoibbaRMDQRY4I4t0y8nx7gpi45f03Zeu0zdX+wRq6AaoBmiEOZjQ?=
 =?us-ascii?Q?NmUNH4zaZSjs8N6ZDRMXc7PczpCxNUajQ6jQ2uplia4NQo7EOLePFjUvviKH?=
 =?us-ascii?Q?8jCKpCmRM+tvkGpM3skUP9L4Zahn7JYZUsdyEg+x4pngrrBHL8On+GK2VVyP?=
 =?us-ascii?Q?UEWZ9cL7WHuSuLcPIvkYQFleMlJCxBHlV7xEyFAXXT24YBrHhnRNQBXYn0hl?=
 =?us-ascii?Q?WlhLxcbfVvuhDnGpkWAhF/LWI5LPM6SOvyU9m2IF9cKyT3JX41q1IZ6gHNUk?=
 =?us-ascii?Q?zKDdpGClEFENxo25MP+2P/dzWG7kJfg0KEUkbRMOUe9HYm9ykp/hszUgY5sa?=
 =?us-ascii?Q?8Fg1aPM9IGDqfgiRIk9vnU1wH5bmMy7quytOYkjWlzJlcv1fziaWMdnWnmIv?=
 =?us-ascii?Q?5JWSj1vghcL9wGIVV+Jlz+kqbBI2TUargHUlg4IGSdvmqLBhfKIpA0wGqgN1?=
 =?us-ascii?Q?VLa62k2RtaelvjO94rOxIHkUmmIO3ogX+8e2PBBZAU0O4ZHPiDHL6ek2xB8K?=
 =?us-ascii?Q?FicgiV2jDWW4O+7FSwvIpHnNz3v1kZfYJVL3OVB10q6G3KUYzkx0iu6EGQYh?=
 =?us-ascii?Q?gGp+AkYv3EOjT1tHbKxBrXuomroM3BMVybICjFN4QDUOyXOnb15ajXHNigjX?=
 =?us-ascii?Q?nG/UvlxtkKui8xRebnDyctsxvUCmvjKZ8heJLsjZrIon/qkyT6+nAzGPn1mn?=
 =?us-ascii?Q?2+6aUQyioBJzhr6rWaZOnCWRNzYp7c0h5A/oMIE9NHJIdwoA23UgVD7ZC39s?=
 =?us-ascii?Q?8/4QS7XWV65dV5xy+uDKnOxd9NDl2MTl7DAQJVQe7/4x1udSTX4nyYiysOQg?=
 =?us-ascii?Q?jx+WuSzyxk7MKvbh1qP0FOaqBXaXEsm8BDnpRbHgZ+KfjnjiaWTHXB3zTEPa?=
 =?us-ascii?Q?1Tl27xg33O0RbRgyzy8L7TghXg7NnKhkuOZuSCBdd46XfXeB+/pGkyykP3aH?=
 =?us-ascii?Q?nDOmWzNi/NtVUAJ3GdhcErhadMcgcR2HhQ9ln25oOcSWJcMrcHiOXyigs6rN?=
 =?us-ascii?Q?WOhCrNyDHR0oRQUFjM9ZmvRvIu043IOjUtG0VDrzpXYuZSDKfxo7d7zyW9GJ?=
 =?us-ascii?Q?67rNed+wVNB/bNlQJQp82CfdYw09PYpqqOhBvLC+G5KjkjKIlnZvz37h/u5K?=
 =?us-ascii?Q?T8bGnr7h9qaIzeMo6DDhcyXqD7DD3yNCsRbtyH0jAux392B4rg2H98sN/Wr7?=
 =?us-ascii?Q?E5NXUhwS6I5ltqF2NnbH0nGoFvZEkg5N8MLB?=
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: 24 Apr 2025 16:11:22.0957
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: c115599b-caae-41f1-8342-08dd834aa7ca
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:
	SJ5PEPF000001CC.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB6626

From: "Daniel P. Smith" <dpsmith@apertussolutions.com>

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>
Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
Signed-off-by: Alejandro Vallejo <agarciav@amd.com>
Reviewed-by: Denis Mukhin <dmukhin@ford.com>
---
v5:
  * Removed BUILD_CAPS, as DOMAIN_CAPS is now in public/bootfdt.h
  * Assigned DOMAIN_CAPS_MASK to dom0, rather than only BUILD_CAPS_CONTROL.
    * So it also gets hardware+xenstore.
---
 xen/arch/x86/include/asm/boot-domain.h |  3 +++
 xen/arch/x86/setup.c                   |  5 ++++-
 xen/common/domain-builder/fdt.c        | 23 +++++++++++++++++++++++
 3 files changed, 30 insertions(+), 1 deletion(-)

diff --git a/xen/arch/x86/include/asm/boot-domain.h b/xen/arch/x86/include/asm/boot-domain.h
index 969c02a6ea..cb5351241a 100644
--- a/xen/arch/x86/include/asm/boot-domain.h
+++ b/xen/arch/x86/include/asm/boot-domain.h
@@ -13,6 +13,9 @@
 struct boot_domain {
     domid_t domid;
 
+    /* Bitmap. See DOMAIN_CAPS_MASK for a list */
+    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 d4f839146f..960e43c785 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -61,6 +61,7 @@
 
 #include <xsm/xsm.h>
 
+#include <public/bootfdt.h>
 #include <public/version.h>
 #ifdef CONFIG_COMPAT
 #include <compat/platform.h>
@@ -1050,7 +1051,8 @@ static struct domain *__init create_dom0(struct boot_info *bi)
         /* Create initial domain.  Not d0 for pvshim. */
         bd->domid = get_initial_domain_id();
     d = domain_create(bd->domid, &dom0_cfg,
-                      pv_shim ? 0 : CDF_privileged | CDF_hardware);
+            ((bd->capabilities & DOMAIN_CAPS_CONTROL)  ? CDF_privileged : 0) |
+            ((bd->capabilities & DOMAIN_CAPS_HARDWARE) ? CDF_hardware   : 0));
     if ( IS_ERR(d) )
         panic("Error creating d%u: %ld\n", bd->domid, PTR_ERR(d));
 
@@ -1313,6 +1315,7 @@ void asmlinkage __init noreturn __start_xen(void)
         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 = pv_shim ? 0 : DOMAIN_CAPS_MASK;
         bi->nr_domains = 1;
         bi->hyperlaunch_enabled = false;
     }
diff --git a/xen/common/domain-builder/fdt.c b/xen/common/domain-builder/fdt.c
index e90f183481..09d2930e16 100644
--- a/xen/common/domain-builder/fdt.c
+++ b/xen/common/domain-builder/fdt.c
@@ -7,6 +7,7 @@
 #include <xen/init.h>
 #include <xen/lib.h>
 #include <xen/libfdt/libfdt.h>
+#include <public/bootfdt.h>
 #include <xen/sizes.h>
 
 #include <asm/bootinfo.h>
@@ -313,6 +314,28 @@ static int __init process_domain_node(
             bd->max_vcpus = val;
             printk(XENLOG_INFO "  cpus: %d\n", bd->max_vcpus);
         }
+        else if ( !strncmp(prop_name, "capabilities", name_len) )
+        {
+            if ( (rc = fdt_prop_as_u32(prop, &bd->capabilities)) )
+            {
+                printk(XENLOG_ERR
+                       "  bad \"capabilities\" on domain %s\n", name);
+                return rc;
+            }
+
+            if ( bd->capabilities & ~DOMAIN_CAPS_MASK )
+            {
+                printk(XENLOG_WARNING "  unknown capabilities: %#x\n",
+                       bd->capabilities & ~DOMAIN_CAPS_MASK);
+
+                bd->capabilities &= DOMAIN_CAPS_MASK;
+            }
+
+            printk(XENLOG_INFO "  caps: %s%s%s\n",
+                   (bd->capabilities & DOMAIN_CAPS_CONTROL)  ? "c" : "",
+                   (bd->capabilities & DOMAIN_CAPS_HARDWARE) ? "h" : "",
+                   (bd->capabilities & DOMAIN_CAPS_XENSTORE) ? "x" : "");
+        }
     }
 
     fdt_for_each_subnode(node, fdt, dom_node)
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu Apr 24 16:21:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Apr 2025 16:21:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.966638.1356822 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7zKR-0000TE-8r; Thu, 24 Apr 2025 16:21:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 966638.1356822; Thu, 24 Apr 2025 16:21: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 1u7zKR-0000SH-5Z; Thu, 24 Apr 2025 16:21:35 +0000
Received: by outflank-mailman (input) for mailman id 966638;
 Thu, 24 Apr 2025 16:21: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=/3PA=XK=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u7zAR-0001nN-PO
 for xen-devel@lists.xenproject.org; Thu, 24 Apr 2025 16:11:15 +0000
Received: from NAM12-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam12on20619.outbound.protection.outlook.com
 [2a01:111:f403:200a::619])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bdc409bd-2126-11f0-9ffb-bf95429c2676;
 Thu, 24 Apr 2025 18:11:14 +0200 (CEST)
Received: from MW4PR04CA0287.namprd04.prod.outlook.com (2603:10b6:303:89::22)
 by PH7PR12MB9125.namprd12.prod.outlook.com (2603:10b6:510:2f4::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.23; Thu, 24 Apr
 2025 16:11:08 +0000
Received: from SJ5PEPF000001CB.namprd05.prod.outlook.com
 (2603:10b6:303:89:cafe::ca) by MW4PR04CA0287.outlook.office365.com
 (2603:10b6:303:89::22) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.36 via Frontend Transport; Thu,
 24 Apr 2025 16:11:07 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ5PEPF000001CB.mail.protection.outlook.com (10.167.242.40) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Thu, 24 Apr 2025 16:11:06 +0000
Received: from xcbagarciav01.xilinx.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; Thu, 24 Apr
 2025 11:11:01 -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: bdc409bd-2126-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=W+UKtx/veAKpIV4ZiRM3KQcfAseuB592R7A7/5IAbFjV3vjlezXKiGvJHvoHlbiqqLccPTqi/K4r73NbB0jJ+uln3LuGBprztes36FHxkfnFGafbVWztCeyKQZT02USGOD4okpjdH0LzmJxNwzdtZuEZh3/OGAn7uyrX9tOWPPulhQxsmJb3a1HiA2N9y6T0Phlo+FjHUNAMbJx2RiP3X+GXxlV56jbJ9bzAlg9rI1DHT8Jiuj892VUK5qqSze9kE8X6Vri7hISqPoubi66cZ4NaeykEtFi00nzJN+qzml6+woWATvOgXH5mB2lKS33WzXJ5AhBEtUCV5Cd1EkFplw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=8y2vRpZxTQB/tX3/SzwBn0+VCnYO2holz9cei3VSTZg=;
 b=i3YFUN3PvzsNnbEJd3KfGg2qt0mN7pSAeIniY9i0bkJXNbkyJZww6Se6BGIHSIMc+R+M8c8huRAkrToHtEng7Ce8RelMFkJZ4iUspf2pLyRGNjOBz9iqjaYda2UBXuD/H97f1e7rI+y9M2hmgoCTKkQJHz/VebTMzqUwsV5NKLlk/Ws5T8iXdSjwExZz4JZ6bxSefAohQCztutJ7CFl+WM31yxWpYawmivJLQzNdu8UEN9uhRp0QQ9IVxWCs5HTJc5kuFKyGOZ6NyVz+/dOwVpB3yRzX2BPZUdnM3w6jWdh1vjcgUGal0EEbnsdlH1GCKEVetu4W7kdU+7D3H5Mudw==
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=8y2vRpZxTQB/tX3/SzwBn0+VCnYO2holz9cei3VSTZg=;
 b=inkGGmKoJ7BV9rOFbw7jDDAm3cZWpWmcWffrveR8PCb0b776ksqHLG6Nha0CK1/+U1WkuZ5170DEEfuua6vVuA/D5FFz9dCrFgKn6bp/omtC2Veq1gCZHIuB4XfB+ynIp754IYc7LXZUQ1BFyqROUCSgH4vd3uSqCv+OnCFZpIs=
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: Alejandro Vallejo <agarciav@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: "Daniel P. Smith" <dpsmith@apertussolutions.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, "Julien
 Grall" <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, "Jason
 Andryuk" <jason.andryuk@amd.com>, Alejandro Vallejo <agarciav@amd.com>
Subject: [PATCH v5 07/12] x86/hyperlaunch: locate dom0 initrd with hyperlaunch
Date: Thu, 24 Apr 2025 17:10:17 +0100
Message-ID: <20250424161027.92942-8-agarciav@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20250424161027.92942-1-agarciav@amd.com>
References: <20250424161027.92942-1-agarciav@amd.com>
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: SJ5PEPF000001CB:EE_|PH7PR12MB9125:EE_
X-MS-Office365-Filtering-Correlation-Id: 5cdc1277-9c07-4fa5-10bc-08dd834a9eb5
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|1800799024|376014|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?wYpcAwj715kVW3UcT0dpIsBxe3Gj6LBMJifMuRN84ZWawaA3bi1qheF1QmKm?=
 =?us-ascii?Q?tJlkFlt889YQYSbD81GInXIq6URxpE9ooFuu72A/xNFoDpUvFOlbERvVIGlG?=
 =?us-ascii?Q?LkK2THTFairq14hhuyz/HyPc9Beviw6Do0gcoaPm542IWyNEOXN5ywXkYdQv?=
 =?us-ascii?Q?p9s8GLM7sXr5MvOvffZKS3cjA5/dI4HA7k3j+Xq1rpMCkchpiV22C5ZeJuHi?=
 =?us-ascii?Q?+9uDqS4CpIMtqJ4LYjkElXwv/2He8Sel5e8ykPm4fw1bLhGS8D1bR1Jy0dKz?=
 =?us-ascii?Q?6GJ7lKJtLdDJpnGeRrLIPYZaGEbmaTrVczqmCqlNt8Hi9gY/KLmzYWFmBoCB?=
 =?us-ascii?Q?ZjugXj3sukq2Bt5nO3O4B/1zauVpZf3CCxy5Ru97HqARh2TLfRg8aQkrxVa+?=
 =?us-ascii?Q?YNaJQgQ0/sXVKYjrUq6urGYX+3I3C0Bb4rB9PpEszkXphmg9KLOoEN1kxyX2?=
 =?us-ascii?Q?ERTr1oOVqY0QIPJoPbGH0Su5u+fYFeASCgscd57j7bQykEb7EqjHf4npv4Ao?=
 =?us-ascii?Q?/SvN6XmwW8Af6YhpQenGu28eRaAAD12jAXLKco48PHoSDt/WxXb3OaB3n8Kj?=
 =?us-ascii?Q?/5XodTwbsNwazbK1N/FDJwHn/IP79yvIbr4z+KDHzsLQywrIeP9mTm5ZzduR?=
 =?us-ascii?Q?H9cMowPdtSiZoyXI3SivWMq1nB191FNl0GlUH94ZmP5Qfre7y8divFgmglED?=
 =?us-ascii?Q?IK0LGzYa6sdTTglInJ2W5EnlzaxypCOsu+UhS4pfc4YFrCAGIl74Gs+QvSiD?=
 =?us-ascii?Q?vsE95K/ExcqziqSj4kkWtIktit5eoJZxf63GGpQT41JYrKlKlaj7P5BTGTB8?=
 =?us-ascii?Q?QDpIf0dgaPBQjHhGMfQ7g5zY9yM2Dew3SxCXM759G+aQUmnUnJTV/pm91gae?=
 =?us-ascii?Q?buFy0ER0BOYEd6vlqd7ZLrFc9sJxbYOcpn3aPgphyEH0FhGsXShxy3R9DV3A?=
 =?us-ascii?Q?kb5extZ6IZwsGUFkeX5+AK6587BHJi9Al2ctweGrPwyIA++tTz6LiJeaxhMp?=
 =?us-ascii?Q?wwtrCL6q5Gv6OlMhBOaxLdDhXlhiw6ykUdSNNb8CDt9fGApOjnBDBEE/MnC+?=
 =?us-ascii?Q?eSnjiPACW9TErmv36GYvguzMor0yQtCbeadn6Ei1WEkX7MJYvuUYbwzphOIT?=
 =?us-ascii?Q?MO+d89JuSO/6wsE8Awez2YzU18suRA5u3Q2KRkl3wJKTHWKbHDeQxjyZs/E3?=
 =?us-ascii?Q?bUIzjwfHz3CohkHtjo07E+EVx8Szhhdj1Pg8ZFBbz4kUT3k9qCvB6zXzkudH?=
 =?us-ascii?Q?Diw91Mk4VrOPziO1UgEsgLxTgB11WBjOVOjQrC2JO+m4SvDwr+HfEYeGGewo?=
 =?us-ascii?Q?agl0ccvgvdFb0KKLzxpIjoc5EeRAt/vz2UHc1YVViS8y7AM0t0P7/O/9ZIiC?=
 =?us-ascii?Q?Zi1kjWKQYB/coUdd+KauoG6k3SzGkRs2UudyguVYEulb1l5MS8o3wUVoc8Tf?=
 =?us-ascii?Q?MdPoKFKfs1nj3EPxgGGjsc9Aatj39wkLDy1BGV7/niU7sPGBKeX8oAjD8/3T?=
 =?us-ascii?Q?o47ruxnTUKBxpMejz95clWE+e64pWwVA2VOT?=
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: 24 Apr 2025 16:11:06.8089
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 5cdc1277-9c07-4fa5-10bc-08dd834a9eb5
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:
	SJ5PEPF000001CB.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB9125

From: "Daniel P. Smith" <dpsmith@apertussolutions.com>

Look for a subnode of type `multiboot,ramdisk` within a domain node and
parse via the fdt_read_multiboot_module() helper. After a successful
helper call, the module index is returned and the module is guaranteed
to be in the module list.

Fix unused typo in adjacent comment.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
Signed-off-by: Alejandro Vallejo <agarciav@amd.com>
---
v5:
  * Propagate errors from fdt_read_multiboot_module()
---
 xen/arch/x86/setup.c            |  4 ++--
 xen/common/domain-builder/fdt.c | 24 ++++++++++++++++++++++++
 2 files changed, 26 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 325ba8cc8a..661b80138a 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -2171,11 +2171,11 @@ void asmlinkage __init noreturn __start_xen(void)
      * 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
+     * any remaining unclaimed boot modules, and report them as unused initrd
      * candidates.
      */
     initrdidx = first_boot_module_index(bi, BOOTMOD_UNKNOWN);
-    if ( initrdidx < MAX_NR_BOOTMODS )
+    if ( !bi->hyperlaunch_enabled && initrdidx < MAX_NR_BOOTMODS )
     {
         bi->mods[initrdidx].type = BOOTMOD_RAMDISK;
         bi->domains[0].module = &bi->mods[initrdidx];
diff --git a/xen/common/domain-builder/fdt.c b/xen/common/domain-builder/fdt.c
index fa92dc55b2..144fcc75b5 100644
--- a/xen/common/domain-builder/fdt.c
+++ b/xen/common/domain-builder/fdt.c
@@ -226,6 +226,30 @@ static int __init process_domain_node(
                 bd->kernel->fdt_cmdline = fdt_get_prop_offset(
                     fdt, node, "bootargs", &bd->kernel->cmdline_pa);
         }
+        else if ( !fdt_node_check_compatible(fdt, node, "multiboot,ramdisk") )
+        {
+            int idx;
+
+            if ( bd->module )
+            {
+                printk(XENLOG_WARNING
+                       "Duplicate module for domain %s\n", name);
+                continue;
+            }
+
+            idx = fdt_read_multiboot_module(fdt, node, address_cells,
+                                            size_cells, bi);
+            if ( idx < 0 )
+            {
+                printk(XENLOG_ERR "  failed processing module for domain %s\n",
+                       name);
+                return idx;
+            }
+
+            printk(XENLOG_INFO "  module: multiboot-index=%d\n", idx);
+            bi->mods[idx].type = BOOTMOD_RAMDISK;
+            bd->module = &bi->mods[idx];
+        }
     }
 
     if ( !bd->kernel )
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu Apr 24 16:21:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Apr 2025 16:21:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.966645.1356832 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7zKX-0000tQ-H4; Thu, 24 Apr 2025 16:21:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 966645.1356832; Thu, 24 Apr 2025 16:21: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 1u7zKX-0000tG-Dh; Thu, 24 Apr 2025 16:21:41 +0000
Received: by outflank-mailman (input) for mailman id 966645;
 Thu, 24 Apr 2025 16:21:39 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=/3PA=XK=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u7zAZ-0001nH-J1
 for xen-devel@lists.xenproject.org; Thu, 24 Apr 2025 16:11:23 +0000
Received: from NAM10-BN7-obe.outbound.protection.outlook.com
 (mail-bn7nam10on20613.outbound.protection.outlook.com
 [2a01:111:f403:2009::613])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c2b6dd1e-2126-11f0-9eb2-5ba50f476ded;
 Thu, 24 Apr 2025 18:11:21 +0200 (CEST)
Received: from BY5PR03CA0004.namprd03.prod.outlook.com (2603:10b6:a03:1e0::14)
 by IA0PR12MB7776.namprd12.prod.outlook.com (2603:10b6:208:430::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.24; Thu, 24 Apr
 2025 16:11:16 +0000
Received: from SJ5PEPF000001C9.namprd05.prod.outlook.com
 (2603:10b6:a03:1e0:cafe::15) by BY5PR03CA0004.outlook.office365.com
 (2603:10b6:a03:1e0::14) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.38 via Frontend Transport; Thu,
 24 Apr 2025 16:11:16 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ5PEPF000001C9.mail.protection.outlook.com (10.167.242.37) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Thu, 24 Apr 2025 16:11:16 +0000
Received: from xcbagarciav01.xilinx.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; Thu, 24 Apr
 2025 11:11: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: c2b6dd1e-2126-11f0-9eb2-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=dwPDiBsUkqST3SWB2rCaAk7OuHtznPwjB5J7B9CI85KaAK5AxrE135PQsPFehRxQ9hKx24BnZ/q5HdwpMu4188GErQFrhFOyFR415wMScK628cuSvAA7quRi2NPM71Gql0x5KaJe2d/IekxFeKk0LzCRARm1pWgyHid00THJulRdxkZAIv2atlarMxqIL7p8rnk0sfL6GEdbgv+arhl2wNEowT+Ttxo15GSZ0c+TwlSfC4fiFHBNIoRCiRocWprXMZsPE01zGUhxhu8LGJqe/lysma7cA3D5imTU5tWjJ4Wlynw+562OcyXIxpozs8eMXKWi6YTAg6cwHOZnGV7gVA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=nbQD0BEkffu9ccPLxnUOgdugjybzhilvi8yJz3bAL4Y=;
 b=ottkdw0GSA+4KcOOeoesvzv6A7v8wOuS4fDu37BjIaskbVEAMNThC4oOnDAcoalls6c0UvCzKsqmaCfWMljGDeSSQmvN/saInlP1ho5EczoQlPu1svhpY2zsz/ZQet09gsQ/qxNe/RSJZnW/2e/NIC3j13hYg4AO/lBonwehsjLQLL6ogZfTpd4pFgWE8arLqkI4pNFtc79uGdrKKq/0HM4GF1AuUGb2WP42eeKrUBik+az5KdQIxmYHUTZX5R7Qlfpa0qEz7EXgsJ+IfanHmOf93T0rmd2vQa4cMdWMdAbeM25BWnwaCJRMypNT1bWgYgUVgeEoHiqtw/5d9kQzEQ==
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=nbQD0BEkffu9ccPLxnUOgdugjybzhilvi8yJz3bAL4Y=;
 b=OM2FMI9aCyAln2ex7lm6O9BOWL4XYUOPmLbwWLOh2MqH9Acz2A1epZo62iECg+ieS47JUttaEoCUgwyySXiJ3BblvlE+FQy5bFF4FEp8O38qPMZ6m5544oSA9Y0B1nDM1f+nnnyYnEHQrgDjQrbqwdNaMqjTV6u9Rb+IaKtHd/Q=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C
From: Alejandro Vallejo <agarciav@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: "Daniel P. Smith" <dpsmith@apertussolutions.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, "Julien
 Grall" <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, "Jason
 Andryuk" <jason.andryuk@amd.com>, Alejandro Vallejo <agarciav@amd.com>
Subject: [PATCH v5 10/12] x86/hyperlaunch: add memory parsing to domain config
Date: Thu, 24 Apr 2025 17:10:20 +0100
Message-ID: <20250424161027.92942-11-agarciav@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20250424161027.92942-1-agarciav@amd.com>
References: <20250424161027.92942-1-agarciav@amd.com>
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: SJ5PEPF000001C9:EE_|IA0PR12MB7776:EE_
X-MS-Office365-Filtering-Correlation-Id: c4825830-4df4-45d3-238f-08dd834aa43e
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|376014|82310400026|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?Qp9IeC6giTUV9xgXou9oHSLbvafh8fYmjRZ+t7xcqr8t+Uq3KJRFgjRrIEaZ?=
 =?us-ascii?Q?K3YnWWsGSLhwjX9DfRFvnm310aZkHMu1rzRSoWjZrF3VtDiOgXhgqh733XMz?=
 =?us-ascii?Q?Z4wdL07VuxChEL5DA2FRgvJO0bCgjcYEJ8kDP6zrBpwWlgIHv8RqgVGmMKca?=
 =?us-ascii?Q?gmipww9hASebdU69njjOlx0M4ZBTJ8nfuS9upSNt3v6fi6yAZb0TKWW7Kj9D?=
 =?us-ascii?Q?ASiPOjGCgnWn/nJdqV2VKSslGT3WSGKFnoI/pO4pFhirB2fZFITtr9p7GDUb?=
 =?us-ascii?Q?EOZIEqJVy4+o5PqiXasBoBSFnxm9Zp+bg416PB8wJenpFT6YIg6QYXw2jfGI?=
 =?us-ascii?Q?RHaeqaxNEDl221j8KxR1PVd5r/Ds2ak31wdOoIKcWiRDYumf9H6hFo9EGcnB?=
 =?us-ascii?Q?9sdODJv8qHLmURInEm9ZwMTuicyRh4iRjUVs/Yvt86RCJVWJ8BgBJPBGqbAW?=
 =?us-ascii?Q?9ZA8YyPw8XNGva/CT6fwnMlig115HlXt7ssdZn7I/pDY4NtbVnzIfWAiDK/m?=
 =?us-ascii?Q?dRRIG31l+H5vGNbT3e/EkaWcR1BAJpkAmhwUvBJ3xekfws64A5LAH8RzIj7U?=
 =?us-ascii?Q?aY/Q/w5TQY6N5O49YyHDrjwedRa9/PSivQ5GKGDKomRlyPOyMGtBCVt8cdhY?=
 =?us-ascii?Q?qyvPupUmoRFS6UDxaUedfR8cbJ0fN7frvtFmpEr5PFEwrrFOAmSi0/Oz12MR?=
 =?us-ascii?Q?VDsYTf5Nt65HHXQMKioZBEFE/+om3ZyU6tbgc+kVoYzjrN3Qhn0ayUoYnHKi?=
 =?us-ascii?Q?OR2Dkw6aw3bbFhWzxIGUN9/Z4/px/28+zzl56+s4Om9xGPE3CizZZu1gyWj0?=
 =?us-ascii?Q?nMqA+/XHkkNFpUddeRQpw4+5pPEuQDg8GqzzH4F2W+2fJlbFTN1vub/AqWev?=
 =?us-ascii?Q?tfFyytELp1WeYGTThKviEfkJ4kxHysVHlZo1IxlFFl6Y608PzArRWrDfjO8l?=
 =?us-ascii?Q?saDOQn06wlEWMh4AEXl+DAdsj3OGc0DQHrRWGSbpASzOTWDMEU8bi1Z+4NvJ?=
 =?us-ascii?Q?euL0oVK2r4pdayolRw/jYFTzNPD2MvePEsx8I5to5Y55EXqbZIuPFGLTYmVq?=
 =?us-ascii?Q?i8sydMWgawOLHSqVASthtymaaSChFuiSGl6Bdrdzd26uBiuIclYD4yCzG8mq?=
 =?us-ascii?Q?/k9B8rMZBRGa601ooZqjXAx1K3nOEHqbNHGPjcsTNzLitAyDhpo1mC5us/BG?=
 =?us-ascii?Q?+DU7phKntP8+S4mrPGQi+JP3jNAlkNGI5jEB3E2vmMQo49vylVWb2zxExFJK?=
 =?us-ascii?Q?Hj1sccg2rtU3X4S9rVi8cJCS0j78mTXHo1Z8F33SeTDt1IHrH19fpgpswfPb?=
 =?us-ascii?Q?AaUrTV6sNyDI09FwNbC50NfHlM1W3K3jMD2tDJirljrJ6mx0g+1ey3BcXtV7?=
 =?us-ascii?Q?kdw8ObRDi9mxMAsq46Xg1GA8oGRQvtmfAreKZWm4vmb4lSMR0dS92Y0N6uyf?=
 =?us-ascii?Q?ujZk9N7NCNsvpVgTXua7LXUMeZ+ABZDClT9FZUB054qqGWXBy51/JSD7vAMc?=
 =?us-ascii?Q?2UIv8cnDJrczfG6ioxoOF+ODBVDldzUpuWI+?=
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: 24 Apr 2025 16:11:16.1426
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: c4825830-4df4-45d3-238f-08dd834aa43e
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:
	SJ5PEPF000001C9.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PR12MB7776

From: "Daniel P. Smith" <dpsmith@apertussolutions.com>

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>
Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>
Signed-off-by: Alejandro Vallejo <agarciav@amd.com>
---
v5:
  * strncmp() == 0 -> !strncmp()
  * Moved the _u64 helper in libfdt-xen.h to fdt.c
---
 xen/arch/x86/dom0_build.c              |  8 +++++
 xen/arch/x86/include/asm/boot-domain.h |  4 +++
 xen/arch/x86/setup.c                   |  5 ++-
 xen/common/domain-builder/fdt.c        | 46 ++++++++++++++++++++++++++
 4 files changed, 62 insertions(+), 1 deletion(-)

diff --git a/xen/arch/x86/dom0_build.c b/xen/arch/x86/dom0_build.c
index 0b467fd4a4..8db24dbc0a 100644
--- a/xen/arch/x86/dom0_build.c
+++ b/xen/arch/x86/dom0_build.c
@@ -627,6 +627,14 @@ int __init construct_dom0(const 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, ULONG_MAX) && bd->mem_pages )
+        dom0_size.nr_pages = bd->mem_pages;
+    if ( !get_memsize(&dom0_min_size, ULONG_MAX) && bd->min_pages )
+        dom0_min_size.nr_pages = bd->min_pages;
+    if ( !get_memsize(&dom0_max_size, ULONG_MAX) && bd->max_pages )
+        dom0_max_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/include/asm/boot-domain.h b/xen/arch/x86/include/asm/boot-domain.h
index e316d4bcde..fa8ea1cc66 100644
--- a/xen/arch/x86/include/asm/boot-domain.h
+++ b/xen/arch/x86/include/asm/boot-domain.h
@@ -18,6 +18,10 @@ struct boot_domain {
 #define BUILD_MODE_ENABLE_DM     (1 << 1) /* HVM    | PVH     */
     uint32_t mode;
 
+    unsigned long mem_pages;
+    unsigned long min_pages;
+    unsigned long max_pages;
+
     struct boot_module *kernel;
     struct boot_module *module;
     const char *cmdline;
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index d3a4f89a6a..d4f839146f 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -296,7 +296,10 @@ static const char *cmdline_cook(const char *p, const char *loader_name);
 struct boot_info __initdata xen_boot_info = {
     .loader = "unknown",
     .cmdline = "",
-    .domains = { [0 ... MAX_NR_BOOTDOMS - 1] = { .domid = DOMID_INVALID } },
+    .domains = { [0 ... MAX_NR_BOOTDOMS - 1] = {
+        .domid = DOMID_INVALID,
+        .max_pages = ULONG_MAX,
+    }},
 };
 
 static struct boot_info *__init multiboot_fill_boot_info(
diff --git a/xen/common/domain-builder/fdt.c b/xen/common/domain-builder/fdt.c
index 75f68de448..ff41727ef1 100644
--- a/xen/common/domain-builder/fdt.c
+++ b/xen/common/domain-builder/fdt.c
@@ -7,6 +7,7 @@
 #include <xen/init.h>
 #include <xen/lib.h>
 #include <xen/libfdt/libfdt.h>
+#include <xen/sizes.h>
 
 #include <asm/bootinfo.h>
 #include <asm/page.h>
@@ -24,6 +25,16 @@ static int __init fdt_prop_as_u32(const struct fdt_property *prop,
     return 0;
 }
 
+static int __init fdt_prop_as_u64(const struct fdt_property *prop,
+                                  uint64_t *val)
+{
+    if ( !prop || fdt32_to_cpu(prop->len) < sizeof(uint64_t) )
+        return -EINVAL;
+
+    *val = fdt64_to_cpu(*(const fdt64_t *)prop->data);
+    return 0;
+}
+
 /*
  * Unpacks a "reg" property into its address and size constituents.
  *
@@ -256,6 +267,41 @@ static int __init process_domain_node(
                    (bd->mode & BUILD_MODE_ENABLE_DM) ? "hvm" :
                                                        "pvh");
         }
+        else if ( !strncmp(prop_name, "memory", name_len) )
+        {
+            uint64_t kb;
+            if ( (rc = fdt_prop_as_u64(prop, &kb)) )
+            {
+                printk(XENLOG_ERR "  bad \"memory\" prop on domain %s\n", name);
+                return rc;
+            }
+            bd->mem_pages = PFN_DOWN(kb * SZ_1K);
+            printk(XENLOG_ERR "  memory: %lu KiB\n", kb);
+        }
+        else if ( !strncmp(prop_name, "mem-min", name_len) )
+        {
+            uint64_t kb;
+            if ( (rc = fdt_prop_as_u64(prop, &kb)) )
+            {
+                printk(XENLOG_ERR
+                       "  bad \"mem-min\" prop on domain %s\n", name);
+                return rc;
+            }
+            bd->min_pages = PFN_DOWN(kb * SZ_1K);
+            printk(XENLOG_INFO "  min memory: %lu kb\n", kb);
+        }
+        else if ( !strncmp(prop_name, "mem-max", name_len) )
+        {
+            uint64_t kb;
+            if ( (rc = fdt_prop_as_u64(prop, &kb)) )
+            {
+                printk(XENLOG_ERR
+                       "  bad \"mem-max\" prop on domain %s\n", name);
+                return rc;
+            }
+            bd->max_pages = PFN_DOWN(kb * SZ_1K);
+            printk(XENLOG_INFO "  max memory: %lu KiB\n", kb);
+        }
     }
 
     fdt_for_each_subnode(node, fdt, dom_node)
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu Apr 24 16:54:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Apr 2025 16:54:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.966706.1356842 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7zqc-0007xt-63; Thu, 24 Apr 2025 16:54:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 966706.1356842; Thu, 24 Apr 2025 16:54:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u7zqc-0007xm-32; Thu, 24 Apr 2025 16:54:50 +0000
Received: by outflank-mailman (input) for mailman id 966706;
 Thu, 24 Apr 2025 16:54: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=s25R=XK=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1u7zqb-0007xd-Dx
 for xen-devel@lists.xenproject.org; Thu, 24 Apr 2025 16:54:49 +0000
Received: from NAM12-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam12on20613.outbound.protection.outlook.com
 [2a01:111:f403:200a::613])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id cf49c8a6-212c-11f0-9eb2-5ba50f476ded;
 Thu, 24 Apr 2025 18:54:40 +0200 (CEST)
Received: from SJ0PR13CA0150.namprd13.prod.outlook.com (2603:10b6:a03:2c6::35)
 by DS7PR12MB6189.namprd12.prod.outlook.com (2603:10b6:8:9a::17) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.26; Thu, 24 Apr
 2025 16:54:36 +0000
Received: from SJ1PEPF000023D0.namprd02.prod.outlook.com
 (2603:10b6:a03:2c6:cafe::c2) by SJ0PR13CA0150.outlook.office365.com
 (2603:10b6:a03:2c6::35) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.32 via Frontend Transport; Thu,
 24 Apr 2025 16:54:36 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 SJ1PEPF000023D0.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.8655.12 via Frontend Transport; Thu, 24 Apr 2025 16:54:35 +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, 24 Apr
 2025 11:54:35 -0500
Received: from [172.21.185.2] (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, 24 Apr 2025 11:54:34 -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: cf49c8a6-212c-11f0-9eb2-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=NWXEgf6QUh6myIFWfDP06apA9bT9mkX5nKpsJ78KQQRVep6Vsk5S8CUX0IKBeWg91lfMiSPUWoWoPeYfgxPBFBBMjIjZwedi/lrM3q+UQv/nipL1+8iRHlr1D4qTGS0G2m6Uci7IPKD8PzHfZRypMPc+B9sJ0IaXeMi9DFY02E7aU7ZAv/NCdzQtyCAD7HO+KFhHM07tNAhC7W95xbdc1VESbsMaVEl42nluCh7DLI7yPnsil9bGojZ5pRHpjNXiEaVtiI90oJY26Ou2okq4vKIduqVocR/epRiltoaDgvA/69LlqRBn2ABBbme/pptMwDErVqYKhflJ0SDDNXKkUg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=oZyj+BsMd4NoIFxN13beaPvBCaoIPB0HJfw2DI6UftU=;
 b=nQqehV8Wf7ZGmlXm4Xt4gY92OvjJ+c0nbhISISiriC/wg2qzYLcr8BW20tFmlkptMkjbzzgUYn1VZEQ2ccYApy/HNCWcOcFhbsCGDh3vr5HnNcS4awpIsgktt5h5hPT7TxnOZlEayzDI961xLIqMFIWwVAayVuHdTQzY6e/+Ln5DmanW2YEoXRr4jcj92Xr1jBlMa5Orhy5stFhCc9tjIA4xrNqGXIiX2voxnqIc2rbE6OLS6Bzc9WsecgrDqMrla8Pao4mMCpyvtjRmwjPHxS6J1p8CUEOxBuV3iKHW7DwWSOa0D/plTp2WZYgkF1GnwTjdS+ME9ThOOkWcuG92WA==
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=oZyj+BsMd4NoIFxN13beaPvBCaoIPB0HJfw2DI6UftU=;
 b=svs0hsW5QvW8JhmT7x6RpA544GjYNLrvch1PmHYCMBG/wPj757GKpIhN9txtrz6AEX+fnRoliV+qHxqurUPAOPkS6SIcwKox36fnfNcCfN0+QeWaF217tc5zK2kPLXlzscWUwtyt06ShFnakI4Jvp9MzIR2YIckzNr6Itrwa0OQ=
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: <4f634f22-3947-40f6-ac2e-5670376a7980@amd.com>
Date: Thu, 24 Apr 2025 12:54:35 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 01/12] kconfig: introduce domain builder config options
To: Alejandro Vallejo <agarciav@amd.com>, <xen-devel@lists.xenproject.org>
CC: "Daniel P. Smith" <dpsmith@apertussolutions.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, "Julien
 Grall" <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
References: <20250424161027.92942-1-agarciav@amd.com>
 <20250424161027.92942-2-agarciav@amd.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <20250424161027.92942-2-agarciav@amd.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: SJ1PEPF000023D0:EE_|DS7PR12MB6189:EE_
X-MS-Office365-Filtering-Correlation-Id: aeab9f3e-bb81-4df4-9834-08dd8350b1cb
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?SGRvSm9nOVNmdG1tS2psdkN3V3YwMVlpc0ZBeEdQSjE4bDNUUFlpUzNKa1Qv?=
 =?utf-8?B?ZCtZQ1V2ZzVRVjZicGpGelM1NlcvQVNSYzZZdUYrZTFicVRpZUF1TE05OHA1?=
 =?utf-8?B?VEFsNExBa3NmcU9Vay9zK0tZMno1MHNwR3NGeEErUC9VQVJVSzUxcUttczdC?=
 =?utf-8?B?SU45cExKWU9UcnNoUktvY0VIM1U1ZHlja0M1cVJmUjduR3Z4dDlCaS9UOVlI?=
 =?utf-8?B?N2FGNnpENzh0RGIyVzB3cW5PNS9zeS9pWDAyb3ZMTWZNTmxKNDNrVk9oRDZi?=
 =?utf-8?B?SEZqOUdjeDBZcTdEcDlYR21mc3FnWDJLdVN4ZTI2VHljZnF6dVVMMUJyOHNI?=
 =?utf-8?B?WmJybGZyb29IdjVUYkpvNjB2aG90anYrazNjTHJielo1NE1YbFljcmNaTTlB?=
 =?utf-8?B?cFUzbHNlRjNSZXlFVE13Y0RKUGk4MU5UYjlhc0NjcWFEc09KQjVRODUvRkJV?=
 =?utf-8?B?WEpJWGZKVDJZTCtwRGRoTTgyKy9IMlFMUlhEc3ZQWUFxeERHcmFnblF3Rk40?=
 =?utf-8?B?WUVkSFFiaENsUFRIbCtINXFwVWRYVTIvK3QxY3ZXZldjdUdGOExxRW1xb0J2?=
 =?utf-8?B?dkRnVGcxcktmbDE2Vy9Yb21CTXErd3ZITTNLOFc5RnV0ZFZJS3pvZFRTM1A0?=
 =?utf-8?B?WExaSnRIUGpVdkIrVHNIUmlVdFZGUnEwWTV3NWdTYktLRm5HS3ZPL1V2c1F0?=
 =?utf-8?B?UmNWNCs1TWlMbi9wbkZPa29EamYzQ1lUOFZaLzBWdFY0Ykt2dDVDcFFqZFAz?=
 =?utf-8?B?NGlyb28zazJMampTWWZ6SURtL2ZxSUx0c3NLZ3NRallhNTVkT2hzdVdoQVBM?=
 =?utf-8?B?aGIrbkVDa09ZTU9FeWdmSXJyNmFlM1JyUVNHYncza2JvdUxoV3p1M2sxQ3dm?=
 =?utf-8?B?ejAvc1JrVTg4UktvZlcwaCtiRlZaeW1zbUQvM3VJZUtqY3dITjVpN0VFaCtE?=
 =?utf-8?B?ZVh5bHByRzZKUERqSzU1VXp5c1l6SEJJSURmaUQxL1pNYXpZSjFqeWJzNXd5?=
 =?utf-8?B?TkE0R0lHNjA1ZEREWW8xMVIwMElDdWNwOUt3ajMwc0R2UDhLV2oxTzNmL1Vz?=
 =?utf-8?B?eG1XcTFycVdCYkxVZ1VSYlE1TUhmellGQkZkM2MvcjlTRk44VmIwTXdueGN4?=
 =?utf-8?B?ZFBhaXorR0tESG0vSEpHbGhRQlpHS2xUM0ZjN0NkejYxVU9vN0cxbmZWTU5L?=
 =?utf-8?B?a1lXZ2duK245bWNzWE5TOVpERE5MNGlrUW15VERaa01iS21QclpQRUFHNkpR?=
 =?utf-8?B?RVdHZmRIWkgyc3NraDJZa0FRUTNYNWo3dElsOWpIcDlhM0NhSTNRZWpZNVhT?=
 =?utf-8?B?ZjAyekJCak5sVk4vcnFpTWNyTEthcENBNlgzV214bVFubCtVZGZyaWwzMzBZ?=
 =?utf-8?B?eVRIYzZ6azIzbm1VdS9lbDlNREVGSUtvWU90VGMweGVlNXY5c3RGM0xRLzNw?=
 =?utf-8?B?WTcreEh4K2lpMWRrMUVUa2RoS21DYnBXYXRMcm5zWFpMYjAzZE5Vdk5xNHJs?=
 =?utf-8?B?eG5KZlJiNFAxVXBBdTkwWUpzZUxBQlhVMkNyTWRoMzNWZ2dMbDF1YzU3WE9l?=
 =?utf-8?B?c2pEZXBySVdxazRMcVNrVkFhMGpEM1M4NlRmUUFOSlhGM1k1cVg3WGNOMWZN?=
 =?utf-8?B?UkdzajRXZXJJN2E4aTJSU3plVEgwekZ2ZW9sVm9yN3VnRXZyR1lvdHUwWHhX?=
 =?utf-8?B?QzYvSjByYUlHMEY5N3dWWWNwR0grRS9iWVhxeFdlOWVoLzBXd21GQy9rdFpk?=
 =?utf-8?B?SWdLc05STGZFS0lyL3IwNEExa3dGQkNjdEJIeWorWUk2RVVuMW15ZDlwUTFm?=
 =?utf-8?B?V2s3Yk5NSm1BejNIakcybFArMG4wT0s1eUNLV0kyQWIvemNtdW4vY1dqamla?=
 =?utf-8?B?T3BmKzl5MnUyRnlGQlErbHNHTWo0WU5yQ1gwRXJETFpOODViSU5TMzJyR3Z4?=
 =?utf-8?B?Z21KM3JpeWMyV21TeVRLaEt5RHEyc1pETmk5Q0Fkb283MHhkeGRjOEVxUzFC?=
 =?utf-8?B?eDl5ZStGbVpHaHhUM2pPeXZDUUlWMnhpY0QzcGZyVlg2MjhtNklEQS8xVytN?=
 =?utf-8?Q?m/4Brm?=
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: 24 Apr 2025 16:54:35.8540
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: aeab9f3e-bb81-4df4-9834-08dd8350b1cb
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:
	SJ1PEPF000023D0.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB6189

On 2025-04-24 12:10, Alejandro Vallejo wrote:
> From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
> 
> Hyperlaunch domain builder will be the consolidated boot time domain
> building logic framework. Introduces the config option to enable this

"Introduce the"

> domain builder to eventually turn on the ability to load the domain
> configuration via a flattened device tree.
> 
> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
> Signed-off-by: Alejandro Vallejo <agarciav@amd.com>

Maybe the title should be "kconfig: introduce CONFIG_DOMAIN_BUILDER" to 
more directly state what is happening.

At least with the typo fixed:

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

Thanks,
Jason


From xen-devel-bounces@lists.xenproject.org Thu Apr 24 17:42:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Apr 2025 17:42:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.966720.1356855 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u80aD-00088g-KG; Thu, 24 Apr 2025 17:41:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 966720.1356855; Thu, 24 Apr 2025 17:41: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 1u80aD-00088Z-Gr; Thu, 24 Apr 2025 17:41:57 +0000
Received: by outflank-mailman (input) for mailman id 966720;
 Thu, 24 Apr 2025 17:41: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=s25R=XK=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1u80aC-00088T-4Z
 for xen-devel@lists.xenproject.org; Thu, 24 Apr 2025 17:41:56 +0000
Received: from NAM02-SN1-obe.outbound.protection.outlook.com
 (mail-sn1nam02on20631.outbound.protection.outlook.com
 [2a01:111:f403:2406::631])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 686e85fc-2133-11f0-9eb2-5ba50f476ded;
 Thu, 24 Apr 2025 19:41:54 +0200 (CEST)
Received: from BL1P223CA0023.NAMP223.PROD.OUTLOOK.COM (2603:10b6:208:2c4::28)
 by LV3PR12MB9401.namprd12.prod.outlook.com (2603:10b6:408:21c::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.24; Thu, 24 Apr
 2025 17:41:48 +0000
Received: from BN2PEPF000044A2.namprd02.prod.outlook.com
 (2603:10b6:208:2c4:cafe::98) by BL1P223CA0023.outlook.office365.com
 (2603:10b6:208:2c4::28) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.36 via Frontend Transport; Thu,
 24 Apr 2025 17:41:46 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 BN2PEPF000044A2.mail.protection.outlook.com (10.167.243.153) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Thu, 24 Apr 2025 17:41:45 +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, 24 Apr
 2025 12:41:44 -0500
Received: from [172.21.185.2] (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, 24 Apr 2025 12:41:43 -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: 686e85fc-2133-11f0-9eb2-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ILYDwdP4ZlLytUuWF3J/WwpcWWPSLyOF142zfF5F20c3xaR73TRvdjFjUqwKD2tcHefJc9MSFAhFXhYNbIkpcz8V6ulLiRLuPzrVdvO5ZUaSCrKqY3SbnwrwqJXKqP73gXK/xt+q2fNzXYdqrO+0EHB5f6P0nSa4NTkMDGbVReaSYB7xEA5Wf/OipUqQ52ffDYboY7mL5bJ9aAFm+mkjV9kKeAiMXdcAKjVhOz14MlNAPLmUJxM3ZFdS+6OiwtjKVMbetW2GoSc6nju8AeTMB1IQvsv6jUThxbnp2BPp2tFU/VE9rzmRXAKMfYMfe9US3n8V/6P9ka3DBKuR3oPPkw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=QrkZc7pzRi1FK1PvwqM0L/Jlg5CRJyVJ5WE9W0Urkxo=;
 b=FV1Nrgte1jb/RmvW8ncV93srIHXOiWvQUn5Ri3W3D4a8QyihxPH48u36L2WDRWVSQvJQy8e0p0pYzjyb8Wf9IsQwIqCRDLw064zBFCMDgeOzwqRShW11PC5uUcGs9zmS88WME/TufbPTiPfQHFmIprxznniS9A+m76K/52b4VECbH99BWW0Tk/G3W7IJ8jxAM9aKWdaFryqRGYPTJ0/1FhKWPRZGGDR+DutZFWPlGUYQbEIx8tYDa026fHGtje6CPgn/T5JFckGtP6ogjwnXWCY5QLmftkOXWm+yRMhIVWpj/2fnDioWeI4fU7pTR8Ty0XaK7eve0x5+tRFQebgKcw==
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=QrkZc7pzRi1FK1PvwqM0L/Jlg5CRJyVJ5WE9W0Urkxo=;
 b=lfhPllEcd25B5h1Irzv4BsIsTICzk/Ets0g4ZbL8nxWByPfsotxuS6WtjfbjElCS4ieIDwhO9KGKKyQSTQSBks4prPhCl1BYYsB/tWS4IreWjmZKfKSeW8Df85A3K1makRiqOlV1krbKIgLhgrW30UR3ZszUNrue8T3jG5sdCEs=
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: <6a37c1ac-8f5d-4c06-bd74-10d35e0dc1a6@amd.com>
Date: Thu, 24 Apr 2025 13:41:45 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 08/12] x86/hyperlaunch: add domain id parsing to domain
 config
To: Alejandro Vallejo <agarciav@amd.com>, <xen-devel@lists.xenproject.org>
CC: "Daniel P. Smith" <dpsmith@apertussolutions.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, "Julien
 Grall" <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
References: <20250424161027.92942-1-agarciav@amd.com>
 <20250424161027.92942-9-agarciav@amd.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <20250424161027.92942-9-agarciav@amd.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: BN2PEPF000044A2:EE_|LV3PR12MB9401:EE_
X-MS-Office365-Filtering-Correlation-Id: f146dd45-571f-4c37-2a5a-08dd83574828
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?WjVjZVhkb05OWTNxM3J0R1FuelB4bGRxNUhhV2J0ajFxdGt2d3ZEc0Z6WmY5?=
 =?utf-8?B?K25veEpveWNHdExoazZzRWhremYwdzVTc2hZaDRkUG9IUlUxMWx4aEV1Z0tw?=
 =?utf-8?B?YlJxZDE1SThXaTByTDMrUzdGQUVmYzdmZkMvRTNPUjBVMVdJTElrZmZYcjdC?=
 =?utf-8?B?Zkh0QkZTVGxTSXYwaFJWUHNzUjZhUmJaZjRqeE4xM2ZvR29YZnRlT1RrOEJG?=
 =?utf-8?B?WkdJcUpjY0NtUm9EY2g5NnZaVkpPd0dKeVNTNXUvYjNYUkMxSGNaVENvOWVq?=
 =?utf-8?B?WVNydytqaE15cTE1WVBhRTROYXI5LzhzU2VHS0c4d2JkdDJVV2pvZmlSampL?=
 =?utf-8?B?anVoL096Z05sblZvRTNZcENqaUYwRzdzMEF3MjBkMStUVzd5aDNkd2J5VmhH?=
 =?utf-8?B?L042c094aFhmZHlsUlBDMDcvQUFPbE5nTFhwaG5KWklvTGdDaFQ3aDhDZUs1?=
 =?utf-8?B?VmgxRkJ5OU5TS2FSV1MzYlRkVUJCa2RIS0Frc1JOamdneVdMKzdCOUthMG9k?=
 =?utf-8?B?NjQyTzdjSFhNcXZWNGc0ck1lc0tsVUlaeUlleXRyY2RvcHJta0RKVVB2dG8y?=
 =?utf-8?B?N3dLczJwRnBENDRPTEpRd3M2L3FLU2RZejJqaTBJZlZZalgwOC9CemtpRWto?=
 =?utf-8?B?M3p5Zzh6VXkwV2tkWXpFY2ZNUllMWDJndUFFQ3ppQlUyTEhmWHMwckRMMnJF?=
 =?utf-8?B?L3RaODhaZ0ZsME45cXFoSS80dDZ3ajI4UjBrVVVjMVY0STNyWE9zWjhVVkJN?=
 =?utf-8?B?T203VS9KVXg2TnIzdXR3a25GcUxLd3hDQkoyVWRMQS9tZGYvOE5kWU1tcjRR?=
 =?utf-8?B?MEFWbHlZQ3BGcjhvWkxiOHV2Z0xuM0RwZUkxOElka1Jsa2ROajFMRjl6UXpz?=
 =?utf-8?B?ZzM2cG1ISVJvSE9ZS1RVMEdZS21VVHhqbHhMZGRiY1FaR0dFWFZsMWRLeGI5?=
 =?utf-8?B?QnNZRk1zV1ROQXErQlV0OUNLcUhBQ1BTVTZ6dzJUS0UrL0M3TVhld2x2WHl0?=
 =?utf-8?B?djQ4b3hWSSs1Z2svdHh4RHNFNjNLQlVsT2t3dXNYUkdpVjF3U09Yd05KVFFK?=
 =?utf-8?B?aTgzMWlmMFZmSlozbDg1TDZqNVpxbm81azN0ZTVMSnl4YjhCeUdCVmowN1FX?=
 =?utf-8?B?c2NGMFhRZUdLVUp6dG93L3VEQ25rQWdkY08zRENGTDEyTnVVNFF6eU12bWtR?=
 =?utf-8?B?bXJOY2dtaGxsck5MZVphQkNVVWtaeWpONWRnVnhHS3o1Vmo0blZlSVRsRGVy?=
 =?utf-8?B?ZEV6NkRCRGRJMHVUVTJhckhlczJCUURpZlc4WDZYYStoc0EvUlYxT2VqMkRq?=
 =?utf-8?B?Z2xXV3ZFQWxRWmhDZTZUUjBEU2dQajQ3MVBiakY2cUQxTG16bWRYdlJXbmdR?=
 =?utf-8?B?UFAwZWhLUGlmL0E2NlpOVTlUZ01PMnJwdlVxdUN5MjRTNnMzcXo5WlpLMjlB?=
 =?utf-8?B?cGh6UDVqTHI0Lzh4RStaTHVqT09kdy9CM2tSMDAvbDZDZGdqQTJEN3FkSWNz?=
 =?utf-8?B?ZDNIYWd2bW1wYi9uMHoxZlVNWWtocEpSODN4ZEIrUXlBTnUveVJxSXVYZ2xn?=
 =?utf-8?B?Wm0wVzFEZjNDTSthUVRsMUlTcGNSYitKdFNqcEZVaXF6R1BqeVVOaHZDaHlv?=
 =?utf-8?B?M3A3Y3RiUDJ1U29CaDVHSTBlT1VXcVRpc1Frd2VEMm15NGdCMHlrSWVQYkUv?=
 =?utf-8?B?WFIyWDRmVmkvNWFFM3N5N1VXQTZpQzZlcllGL2pjOHRTQlRValFzNEN6ZkdD?=
 =?utf-8?B?ZS9UaE5aZG1rU1RNT3AyQmFOdFVhcUNISFpYK3NHa0lWS2FGOVd0bzdzemJq?=
 =?utf-8?B?bld4TVNNL2kvV3ZqVnJCaXB0NmM3UEllcUVYMGFiMml4QmowdDVBV09sK1NJ?=
 =?utf-8?B?OWk2UVVEeUlnRFFkNXlsSmhsdGUwZGx3RmYyOGJ3MnJjbVZxWlg2NDgzOTRU?=
 =?utf-8?B?WGhHSXk4SitjSTdmS0VSTkwwZ3VwMGh3alEyaW51ZUNnbEtsRkY5V1ZjY0xE?=
 =?utf-8?B?WVlZNTFZMmozMmNLV2hkc0d4czdqNmoxT0V2MG5GUnp2dTJmQXlVV1NpeVF2?=
 =?utf-8?Q?eFx39M?=
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: 24 Apr 2025 17:41:45.2038
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: f146dd45-571f-4c37-2a5a-08dd83574828
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:
	BN2PEPF000044A2.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV3PR12MB9401

On 2025-04-24 12:10, Alejandro Vallejo wrote:
> From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
> 
> 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>
> Signed-off-by: Alejandro Vallejo <agarciav@amd.com>
> ---

> diff --git a/xen/common/domain-builder/fdt.c b/xen/common/domain-builder/fdt.c
> index 144fcc75b5..5a5b3c8806 100644
> --- a/xen/common/domain-builder/fdt.c
> +++ b/xen/common/domain-builder/fdt.c

> @@ -188,12 +189,54 @@ static int __init fdt_read_multiboot_module(const void *fdt, int node,
>   static int __init process_domain_node(
>       struct boot_info *bi, const 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) ?: "unknown";
>       int address_cells = fdt_address_cells(fdt, dom_node);
>       int size_cells = fdt_size_cells(fdt, dom_node);
>   
> +    fdt_for_each_property_offset(property, fdt, dom_node)
> +    {
> +        const struct fdt_property *prop;
> +        const char *prop_name;
> +        int name_len, rc;
> +
> +        prop = fdt_get_property_by_offset(fdt, property, NULL);
> +        if ( !prop )
> +            continue; /* silently skip */
> +
> +        prop_name = fdt_get_string(fdt, fdt32_to_cpu(prop->nameoff), &name_len);
> +

Stray blank line.

> +        if ( !strncmp(prop_name, "domid", name_len) )
> +        {
> +            uint32_t val = DOMID_INVALID;
> +
> +            if ( (rc = fdt_prop_as_u32(prop, &val)) )
> +            {
> +                printk(XENLOG_ERR
> +                       "  failed processing domain id for domain %s\n", name);
> +                return rc;
> +            }

Maybe add a blank line here?

> +            if ( val >= DOMID_FIRST_RESERVED )
> +            {
> +                printk(XENLOG_ERR "  invalid domain id for domain %s\n", name);
> +                return -EINVAL;
> +            }
> +

> @@ -258,6 +301,13 @@ static int __init process_domain_node(
>           return -ENODATA;
>       }
>   
> +    if ( bd->domid == DOMID_INVALID )
> +        bd->domid = get_initial_domain_id();
> +    else if ( bd->domid != get_initial_domain_id() )
> +        printk(XENLOG_WARNING
> +               "warning: unsupported boot. d%d is not the initial domain.\n",

Maybe:
"warning: d%u is not the expected initial domid (%u)\n" ?

It's a strange message.  The domid property is added, but it's not 
expected to actually be used?

With the newlines addressed (and optionally the message change):

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

Thanks,
Jason


From xen-devel-bounces@lists.xenproject.org Thu Apr 24 17:51:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Apr 2025 17:51:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.966751.1356864 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u80jA-0001Pg-C9; Thu, 24 Apr 2025 17:51:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 966751.1356864; Thu, 24 Apr 2025 17: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 1u80jA-0001PZ-9Q; Thu, 24 Apr 2025 17:51:12 +0000
Received: by outflank-mailman (input) for mailman id 966751;
 Thu, 24 Apr 2025 17:51: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=/BVb=XK=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u80j8-0001PT-Sk
 for xen-devel@lists.xenproject.org; Thu, 24 Apr 2025 17:51:11 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b2947a4a-2134-11f0-9ffb-bf95429c2676;
 Thu, 24 Apr 2025 19:51:08 +0200 (CEST)
Received: from [192.168.7.202] ([71.202.166.45]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53OHo0ch1382184
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NO);
 Thu, 24 Apr 2025 10:50:01 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b2947a4a-2134-11f0-9ffb-bf95429c2676
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53OHo0ch1382184
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745517004;
	bh=s//FslW+O7Kn/IezyVBmG0EeFGCYGlqoMCN23p8kepQ=;
	h=Date:Subject:To:Cc:References:From:In-Reply-To:From;
	b=Qmcxq/0pRXzN/V+n0zvhvv/OoLvqqvKKiVDhNOGC1sz6osmqDDUYrR+tqqy3ga/u7
	 JZpvT18GGm7u7JMxdWjZSYChBiJHXKChUd2j3U39ORZs5MDVb4G7VtVtmZRcbpeLMt
	 m3iEcT7ggWGzwceuQ2WNjjW5bkmHSlTac6xC2kFMvWFQzV9xA4ABxyzXK56cpGvVXB
	 Z2GE+XuHwAbGxdx+vxfyvWePtTx/85Pa22tSKDMjJILyluCkPpeG0HBau04zqCZjI0
	 PP1ixyRBjfPn514E7EZwguUuURA8RzDzTFyQbM8I27ftfQ+nYl+1piEjuJAyk3NecS
	 iN/TMRiJOd+JA==
Message-ID: <ca088501-2fbe-4a32-b191-04f7be6a2713@zytor.com>
Date: Thu, 24 Apr 2025 10:49:59 -0700
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH v2 12/34] x86/msr: Remove pmu_msr_{read,write}()
To: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>,
        linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
        linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
        netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        acme@kernel.org, andrew.cooper3@citrix.com, peterz@infradead.org,
        namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com
References: <20250422082216.1954310-1-xin@zytor.com>
 <20250422082216.1954310-13-xin@zytor.com>
 <8944b510-6d70-472c-99a2-52a60517733d@suse.com>
Content-Language: en-US
From: Xin Li <xin@zytor.com>
Autocrypt: addr=xin@zytor.com; keydata=
 xsDNBGUPz1cBDACS/9yOJGojBFPxFt0OfTWuMl0uSgpwk37uRrFPTTLw4BaxhlFL0bjs6q+0
 2OfG34R+a0ZCuj5c9vggUMoOLdDyA7yPVAJU0OX6lqpg6z/kyQg3t4jvajG6aCgwSDx5Kzg5
 Rj3AXl8k2wb0jdqRB4RvaOPFiHNGgXCs5Pkux/qr0laeFIpzMKMootGa4kfURgPhRzUaM1vy
 bsMsL8vpJtGUmitrSqe5dVNBH00whLtPFM7IbzKURPUOkRRiusFAsw0a1ztCgoFczq6VfAVu
 raTye0L/VXwZd+aGi401V2tLsAHxxckRi9p3mc0jExPc60joK+aZPy6amwSCy5kAJ/AboYtY
 VmKIGKx1yx8POy6m+1lZ8C0q9b8eJ8kWPAR78PgT37FQWKYS1uAroG2wLdK7FiIEpPhCD+zH
 wlslo2ETbdKjrLIPNehQCOWrT32k8vFNEMLP5G/mmjfNj5sEf3IOKgMTMVl9AFjsINLHcxEQ
 6T8nGbX/n3msP6A36FDfdSEAEQEAAc0WWGluIExpIDx4aW5Aenl0b3IuY29tPsLBDQQTAQgA
 NxYhBIUq/WFSDTiOvUIqv2u9DlcdrjdRBQJlD89XBQkFo5qAAhsDBAsJCAcFFQgJCgsFFgID
 AQAACgkQa70OVx2uN1HUpgv/cM2fsFCQodLArMTX5nt9yqAWgA5t1srri6EgS8W3F+3Kitge
 tYTBKu6j5BXuXaX3vyfCm+zajDJN77JHuYnpcKKr13VcZi1Swv6Jx1u0II8DOmoDYLb1Q2ZW
 v83W55fOWJ2g72x/UjVJBQ0sVjAngazU3ckc0TeNQlkcpSVGa/qBIHLfZraWtdrNAQT4A1fa
 sWGuJrChBFhtKbYXbUCu9AoYmmbQnsx2EWoJy3h7OjtfFapJbPZql+no5AJ3Mk9eE5oWyLH+
 QWqtOeJM7kKvn/dBudokFSNhDUw06e7EoVPSJyUIMbYtUO7g2+Atu44G/EPP0yV0J4lRO6EA
 wYRXff7+I1jIWEHpj5EFVYO6SmBg7zF2illHEW31JAPtdDLDHYcZDfS41caEKOQIPsdzQkaQ
 oW2hchcjcMPAfyhhRzUpVHLPxLCetP8vrVhTvnaZUo0xaVYb3+wjP+D5j/3+hwblu2agPsaE
 vgVbZ8Fx3TUxUPCAdr/p73DGg57oHjgezsDNBGUPz1gBDAD4Mg7hMFRQqlzotcNSxatlAQNL
 MadLfUTFz8wUUa21LPLrHBkUwm8RujehJrzcVbPYwPXIO0uyL/F///CogMNx7Iwo6by43KOy
 g89wVFhyy237EY76j1lVfLzcMYmjBoTH95fJC/lVb5Whxil6KjSN/R/y3jfG1dPXfwAuZ/4N
 cMoOslWkfZKJeEut5aZTRepKKF54T5r49H9F7OFLyxrC/uI9UDttWqMxcWyCkHh0v1Di8176
 jjYRNTrGEfYfGxSp+3jYL3PoNceIMkqM9haXjjGl0W1B4BidK1LVYBNov0rTEzyr0a1riUrp
 Qk+6z/LHxCM9lFFXnqH7KWeToTOPQebD2B/Ah5CZlft41i8L6LOF/LCuDBuYlu/fI2nuCc8d
 m4wwtkou1Y/kIwbEsE/6RQwRXUZhzO6llfoN96Fczr/RwvPIK5SVMixqWq4QGFAyK0m/1ap4
 bhIRrdCLVQcgU4glo17vqfEaRcTW5SgX+pGs4KIPPBE5J/ABD6pBnUUAEQEAAcLA/AQYAQgA
 JhYhBIUq/WFSDTiOvUIqv2u9DlcdrjdRBQJlD89ZBQkFo5qAAhsMAAoJEGu9DlcdrjdR4C0L
 /RcjolEjoZW8VsyxWtXazQPnaRvzZ4vhmGOsCPr2BPtMlSwDzTlri8BBG1/3t/DNK4JLuwEj
 OAIE3fkkm+UG4Kjud6aNeraDI52DRVCSx6xff3bjmJsJJMb12mWglN6LjdF6K+PE+OTJUh2F
 dOhslN5C2kgl0dvUuevwMgQF3IljLmi/6APKYJHjkJpu1E6luZec/lRbetHuNFtbh3xgFIJx
 2RpgVDP4xB3f8r0I+y6ua+p7fgOjDLyoFjubRGed0Be45JJQEn7A3CSb6Xu7NYobnxfkwAGZ
 Q81a2XtvNS7Aj6NWVoOQB5KbM4yosO5+Me1V1SkX2jlnn26JPEvbV3KRFcwV5RnDxm4OQTSk
 PYbAkjBbm+tuJ/Sm+5Yp5T/BnKz21FoCS8uvTiziHj2H7Cuekn6F8EYhegONm+RVg3vikOpn
 gao85i4HwQTK9/D1wgJIQkdwWXVMZ6q/OALaBp82vQ2U9sjTyFXgDjglgh00VRAHP7u1Rcu4
 l75w1xInsg==
In-Reply-To: <8944b510-6d70-472c-99a2-52a60517733d@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 4/24/2025 3:05 AM, Jürgen Groß wrote:
> 
> May I suggest to get rid of the "emul" parameter of pmu_msr_chk_emulated()?
> It has no real value, as pmu_msr_chk_emulated() could easily return 
> false in
> the cases where it would set *emul to false.

Good idea!

The function type is a bit of weird but I didn't think of change it.


From xen-devel-bounces@lists.xenproject.org Thu Apr 24 17:51:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Apr 2025 17:51:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.966754.1356875 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u80jR-0001jn-Jl; Thu, 24 Apr 2025 17:51:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 966754.1356875; Thu, 24 Apr 2025 17:51:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u80jR-0001jc-Gk; Thu, 24 Apr 2025 17:51:29 +0000
Received: by outflank-mailman (input) for mailman id 966754;
 Thu, 24 Apr 2025 17:51: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=/BVb=XK=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u80jQ-0001j9-4I
 for xen-devel@lists.xenproject.org; Thu, 24 Apr 2025 17:51:28 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id bca047ca-2134-11f0-9eb2-5ba50f476ded;
 Thu, 24 Apr 2025 19:51:25 +0200 (CEST)
Received: from [192.168.7.202] ([71.202.166.45]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53OHooUY1383060
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NO);
 Thu, 24 Apr 2025 10:50:51 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bca047ca-2134-11f0-9eb2-5ba50f476ded
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53OHooUY1383060
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745517053;
	bh=vRUzZpZGFJolMKWVih6pSIskaMZx/C9W0RbkMI/WUL4=;
	h=Date:Subject:To:Cc:References:From:In-Reply-To:From;
	b=BVFv6Rd/IQ4J/PYHV3nN9oqAwGme4iFBImZRL6GTcMhgw7NYKI28t7uuoVpBh6PKp
	 Qy2xaOL92iZPXBKZt18DClDdHu3Cu26OIl4X3wCxR6sP5IvdC0f2A7gL/3A2OrpX9K
	 vBDJPG7XgmIA8lWPglrxwu2BGk3JKhEvcr6RSlKe2FpGUDSIGQIrDKIZmZn49EaoYL
	 ADBESCC4Zsb4bWa7wGLDCdPOl+K3TeEVWdgeOHMFTdiA2wKrluDoC86oJ/ps6iqrBb
	 f6WH3cQT18xQO9Bmnlmpr31eZorHV057tP0mCCdH9T/XCtwTZdzP0kYWRlcnS5Uvqb
	 Rvudk3Z8FPKfA==
Message-ID: <b90ead3b-75fd-464f-aa93-5afdc7ee0f02@zytor.com>
Date: Thu, 24 Apr 2025 10:50:50 -0700
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH v2 13/34] x86/xen/msr: Remove the error pointer
 argument from set_reg()
To: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>,
        linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
        linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
        netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        acme@kernel.org, andrew.cooper3@citrix.com, peterz@infradead.org,
        namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com
References: <20250422082216.1954310-1-xin@zytor.com>
 <20250422082216.1954310-14-xin@zytor.com>
 <7c7de4be-e8d0-45b9-9212-186d79e95512@suse.com>
Content-Language: en-US
From: Xin Li <xin@zytor.com>
Autocrypt: addr=xin@zytor.com; keydata=
 xsDNBGUPz1cBDACS/9yOJGojBFPxFt0OfTWuMl0uSgpwk37uRrFPTTLw4BaxhlFL0bjs6q+0
 2OfG34R+a0ZCuj5c9vggUMoOLdDyA7yPVAJU0OX6lqpg6z/kyQg3t4jvajG6aCgwSDx5Kzg5
 Rj3AXl8k2wb0jdqRB4RvaOPFiHNGgXCs5Pkux/qr0laeFIpzMKMootGa4kfURgPhRzUaM1vy
 bsMsL8vpJtGUmitrSqe5dVNBH00whLtPFM7IbzKURPUOkRRiusFAsw0a1ztCgoFczq6VfAVu
 raTye0L/VXwZd+aGi401V2tLsAHxxckRi9p3mc0jExPc60joK+aZPy6amwSCy5kAJ/AboYtY
 VmKIGKx1yx8POy6m+1lZ8C0q9b8eJ8kWPAR78PgT37FQWKYS1uAroG2wLdK7FiIEpPhCD+zH
 wlslo2ETbdKjrLIPNehQCOWrT32k8vFNEMLP5G/mmjfNj5sEf3IOKgMTMVl9AFjsINLHcxEQ
 6T8nGbX/n3msP6A36FDfdSEAEQEAAc0WWGluIExpIDx4aW5Aenl0b3IuY29tPsLBDQQTAQgA
 NxYhBIUq/WFSDTiOvUIqv2u9DlcdrjdRBQJlD89XBQkFo5qAAhsDBAsJCAcFFQgJCgsFFgID
 AQAACgkQa70OVx2uN1HUpgv/cM2fsFCQodLArMTX5nt9yqAWgA5t1srri6EgS8W3F+3Kitge
 tYTBKu6j5BXuXaX3vyfCm+zajDJN77JHuYnpcKKr13VcZi1Swv6Jx1u0II8DOmoDYLb1Q2ZW
 v83W55fOWJ2g72x/UjVJBQ0sVjAngazU3ckc0TeNQlkcpSVGa/qBIHLfZraWtdrNAQT4A1fa
 sWGuJrChBFhtKbYXbUCu9AoYmmbQnsx2EWoJy3h7OjtfFapJbPZql+no5AJ3Mk9eE5oWyLH+
 QWqtOeJM7kKvn/dBudokFSNhDUw06e7EoVPSJyUIMbYtUO7g2+Atu44G/EPP0yV0J4lRO6EA
 wYRXff7+I1jIWEHpj5EFVYO6SmBg7zF2illHEW31JAPtdDLDHYcZDfS41caEKOQIPsdzQkaQ
 oW2hchcjcMPAfyhhRzUpVHLPxLCetP8vrVhTvnaZUo0xaVYb3+wjP+D5j/3+hwblu2agPsaE
 vgVbZ8Fx3TUxUPCAdr/p73DGg57oHjgezsDNBGUPz1gBDAD4Mg7hMFRQqlzotcNSxatlAQNL
 MadLfUTFz8wUUa21LPLrHBkUwm8RujehJrzcVbPYwPXIO0uyL/F///CogMNx7Iwo6by43KOy
 g89wVFhyy237EY76j1lVfLzcMYmjBoTH95fJC/lVb5Whxil6KjSN/R/y3jfG1dPXfwAuZ/4N
 cMoOslWkfZKJeEut5aZTRepKKF54T5r49H9F7OFLyxrC/uI9UDttWqMxcWyCkHh0v1Di8176
 jjYRNTrGEfYfGxSp+3jYL3PoNceIMkqM9haXjjGl0W1B4BidK1LVYBNov0rTEzyr0a1riUrp
 Qk+6z/LHxCM9lFFXnqH7KWeToTOPQebD2B/Ah5CZlft41i8L6LOF/LCuDBuYlu/fI2nuCc8d
 m4wwtkou1Y/kIwbEsE/6RQwRXUZhzO6llfoN96Fczr/RwvPIK5SVMixqWq4QGFAyK0m/1ap4
 bhIRrdCLVQcgU4glo17vqfEaRcTW5SgX+pGs4KIPPBE5J/ABD6pBnUUAEQEAAcLA/AQYAQgA
 JhYhBIUq/WFSDTiOvUIqv2u9DlcdrjdRBQJlD89ZBQkFo5qAAhsMAAoJEGu9DlcdrjdR4C0L
 /RcjolEjoZW8VsyxWtXazQPnaRvzZ4vhmGOsCPr2BPtMlSwDzTlri8BBG1/3t/DNK4JLuwEj
 OAIE3fkkm+UG4Kjud6aNeraDI52DRVCSx6xff3bjmJsJJMb12mWglN6LjdF6K+PE+OTJUh2F
 dOhslN5C2kgl0dvUuevwMgQF3IljLmi/6APKYJHjkJpu1E6luZec/lRbetHuNFtbh3xgFIJx
 2RpgVDP4xB3f8r0I+y6ua+p7fgOjDLyoFjubRGed0Be45JJQEn7A3CSb6Xu7NYobnxfkwAGZ
 Q81a2XtvNS7Aj6NWVoOQB5KbM4yosO5+Me1V1SkX2jlnn26JPEvbV3KRFcwV5RnDxm4OQTSk
 PYbAkjBbm+tuJ/Sm+5Yp5T/BnKz21FoCS8uvTiziHj2H7Cuekn6F8EYhegONm+RVg3vikOpn
 gao85i4HwQTK9/D1wgJIQkdwWXVMZ6q/OALaBp82vQ2U9sjTyFXgDjglgh00VRAHP7u1Rcu4
 l75w1xInsg==
In-Reply-To: <7c7de4be-e8d0-45b9-9212-186d79e95512@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 4/24/2025 3:11 AM, Jürgen Groß wrote:
> set_seg(), please (further up, too).

Good catch, thanks a lot!


From xen-devel-bounces@lists.xenproject.org Thu Apr 24 18:14:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Apr 2025 18:14:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.966781.1356885 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u815h-0005yy-Gh; Thu, 24 Apr 2025 18:14:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 966781.1356885; Thu, 24 Apr 2025 18:14: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 1u815h-0005yr-D2; Thu, 24 Apr 2025 18:14:29 +0000
Received: by outflank-mailman (input) for mailman id 966781;
 Thu, 24 Apr 2025 18:14: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=P8hq=XK=3mdeb.com=sergii.dmytruk@srs-se1.protection.inumbo.net>)
 id 1u815f-0005yl-W1
 for xen-devel@lists.xenproject.org; Thu, 24 Apr 2025 18:14:28 +0000
Received: from 7.mo582.mail-out.ovh.net (7.mo582.mail-out.ovh.net
 [46.105.59.196]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f38ac5ff-2137-11f0-9ffb-bf95429c2676;
 Thu, 24 Apr 2025 20:14:24 +0200 (CEST)
Received: from director9.ghost.mail-out.ovh.net (unknown [10.108.25.156])
 by mo582.mail-out.ovh.net (Postfix) with ESMTP id 4Zk3yl6HhZz1TgP
 for <xen-devel@lists.xenproject.org>; Thu, 24 Apr 2025 18:14:23 +0000 (UTC)
Received: from ghost-submission-5b5ff79f4f-zrnsh (unknown [10.111.174.174])
 by director9.ghost.mail-out.ovh.net (Postfix) with ESMTPS id 39C541FE87;
 Thu, 24 Apr 2025 18:14:21 +0000 (UTC)
Received: from 3mdeb.com ([37.59.142.99])
 by ghost-submission-5b5ff79f4f-zrnsh with ESMTPSA
 id vcS3M3x/CmgQKQAADFPD6Q
 (envelope-from <sergii.dmytruk@3mdeb.com>); Thu, 24 Apr 2025 18:14: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: f38ac5ff-2137-11f0-9ffb-bf95429c2676
Authentication-Results:garm.ovh; auth=pass (GARM-99G003a321d7d8-e962-4723-8755-cd239566492b,
                    6AF2A11B8D4EBDE9D9447A7514DB0FF9F8FB9007) smtp.auth=sergii.dmytruk@3mdeb.com
X-OVh-ClientIp:176.111.181.178
Date: Thu, 24 Apr 2025 21:14:11 +0300
From: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>,
	Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>,
	Lukasz Hawrylko <lukasz@hawrylko.pl>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Mateusz =?iso-8859-1?Q?M=F3wka?= <mateusz.mowka@intel.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Marek =?iso-8859-1?Q?Marczykowski-G=F3recki?= <marmarek@invisiblethingslab.com>,
	trenchboot-devel@googlegroups.com
Subject: Re: [PATCH 00/21] x86: Trenchboot Secure Launch DRTM (Xen)
Message-ID: <aAp_c7m7DBLwqjwP@MjU3Nj>
References: <cover.1745172094.git.sergii.dmytruk@3mdeb.com>
 <744934f4-f56f-4dc7-bccb-c32f2829d1da@citrix.com>
 <010709d8-7784-41bf-bcb6-bf04803a75fc@citrix.com>
 <aAk1ZBw8GtoVYoL8@MjU3Nj>
 <a48a0c03f151d960254c65f538141836@bugseng.com>
 <aAlhPtx8sBvmF5mh@MjU3Nj>
 <c79a4654-50d7-44f6-94b1-5a8f3fbe9b84@bugseng.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <c79a4654-50d7-44f6-94b1-5a8f3fbe9b84@bugseng.com>
X-Ovh-Tracer-Id: 9187061767043200156
X-VR-SPAMSTATE: OK
X-VR-SPAMSCORE: -100
X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvhedtudeiucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuqfggjfdpvefjgfevmfevgfenuceurghilhhouhhtmecuhedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurhepfffhvfevuffkfhggtggugfgjsehtkeertddttddunecuhfhrohhmpefuvghrghhiihcuffhmhihtrhhukhcuoehsvghrghhiihdrughmhihtrhhukhesfehmuggvsgdrtghomheqnecuggftrfgrthhtvghrnhepuedutdeltdffteffleeuudeltedvgfevuefhvdelhfefheetgeejfeeuudeiveefnecuffhomhgrihhnpehgihhtlhgrsgdrtghomhdptghirhhruhhsqdgtihdrtghomhdpvggtlhgrihhrihhtrdgtohhmnecukfhppeduvdejrddtrddtrddupddujeeirdduuddurddukedurddujeekpdefjedrheelrddugedvrdelleenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepihhnvghtpeduvdejrddtrddtrddupdhmrghilhhfrhhomhepshgvrhhgihhirdgumhihthhruhhkseefmhguvggsrdgtohhmpdhnsggprhgtphhtthhopedupdhrtghpthhtohepgigvnhdquggvvhgvlheslhhishhtshdrgigvnhhprhhojhgvtghtrdhorhhgpdfovfetjfhoshhtpehmohehkedvmgdpmhhouggvpehsmhhtphhouhht
DKIM-Signature: a=rsa-sha256; bh=9IPkYx3xfLze8zi0+PWUiBKEarN11QDto97JLIYYcss=;
 c=relaxed/relaxed; d=3mdeb.com; h=From; s=ovhmo3617313-selector1;
 t=1745518463; v=1;
 b=Iq9BQmv+CxuEw2iKDVYYUa7yPeI9zjd3P/X9BOSrNChvBPW7yzmRBVEF6t/Y5fUMOCnXi64H
 //ZxbJx7ILLzLFLnhITsXhKbYjtyZhRVpKo9aDgxIuyzKRL6vlYVHoIUPMnqhYXxYVYpxxO7coe
 FtPCzABHwE+ZugbowMHEYGEohV4ab8frhKeQlENPAL8WXRWUXwcEtP/WgQCFhOvP6HllfyHJGLa
 /okZljeFfyzCBAEcqpZEyUAH2ekcMG2fq5S0f2E37jfUUUMRJk7D1xasIzZhNTBc8BdhouvXN24
 UURkp1FKO/CrJXLrkzZ9x9sLEgkOta3oPU6U5UioOBCpg==

On Thu, Apr 24, 2025 at 12:54:41PM +0200, Nicola Vetrini wrote:
>
> On 4/23/25 23:53, Sergii Dmytruk wrote:
> > On Wed, Apr 23, 2025 at 10:11:35PM +0200, Nicola Vetrini wrote:
> > > On 2025-04-23 20:45, Sergii Dmytruk wrote:
> > > > On Wed, Apr 23, 2025 at 02:38:37PM +0100, Andrew Cooper wrote:
> > > > > On 22/04/2025 6:14 pm, Andrew Cooper wrote:
> > > > > > I've stripped out the sha2 patch and fixed up to use the existing sha2,
> > > > > > then kicked off some CI testing:
> > > > > >
> > > > > > https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/1780285393
> > > > > > https://cirrus-ci.com/build/5452335868018688
> > > > > >
> > > > > > When the dust has settled, I'll talk you through the failures.
> > > > > And here we go. Interestingly, the FreeBSD testing was entirely
> > > > > happy,
> > > > > and that is the rare way around.
> > > > >
> > > > > For Gitlab, there are several areas.
> > > > >
> > > > > First, for MISRA. In the job logs, you want the "Browse current
> > > > > reports:" link which will give you full details, but it's all pretty
> > > > > simple stuff.
> > > > Thanks, but that link gives me a list of 5096 failures all over the code
> > > > base.  Is there any way to see a diff against master?
> > > >
> > > Hi,
> > >
> > > yes, you can define selections of violations introduced on previously clean
> > > guidelines by clicking on the "ECLAIR" button on the upper right. See [1]
> > > which is the result of defining the "clean_added" selection shown in the
> > > attached screenshot. If you have other questions please let me know.
> > Hi,
> >
> > not sure why, but using "added" left 4861 violations.  Picking `_NO_TAG`
> > instead seemingly left only new violations.  Maybe that's something
> > specific to this particular run.  Either way, I can go through the list
> > now and know how to adjust it.  Thank you for the instructions.
> >
> I'm not sure I fully understand this. This is what I see on x86: the ones
> still shown are those rules where the CI is blocking and new issues have
> been introduced by that pipeline run (of course a different pipeline may
> yield different results). Only new violations are blocking, so that is why I
> filtered out the rest in this case.

My bad, I still had "Hide" instead of "Show" in the selection.  Other
comboboxes are also hard to see but I wasn't even looking for one in
the title.  Thanks again.

> > > Thanks,
> > >   Nicola
> > >
> > > [1] https://saas.eclairit.com:3787/fs/var/local/eclair/xen-project.ecdf/xen-project/hardware/xen-staging/ECLAIR_normal/andrew/tb-v1.1/ARM64/9791028027/PROJECT.ecd;/by_service.html#service&kind{"select":true,"selection":{"hiddenAreaKinds":[],"hiddenSubareaKinds":[],"show":true,"selector":{"enabled":true,"negated":false,"kind":1,"children":[{"enabled":true,"negated":false,"kind":0,"domain":"clean","inputs":[{"enabled":true,"text":"added"}]}]}}}



From xen-devel-bounces@lists.xenproject.org Thu Apr 24 18:23:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Apr 2025 18:23:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.966792.1356895 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u81EK-0007yI-9F; Thu, 24 Apr 2025 18:23:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 966792.1356895; Thu, 24 Apr 2025 18:23: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 1u81EK-0007yB-5z; Thu, 24 Apr 2025 18:23:24 +0000
Received: by outflank-mailman (input) for mailman id 966792;
 Thu, 24 Apr 2025 18:23: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=OeN4=XK=ariadne.space=ariadne@srs-se1.protection.inumbo.net>)
 id 1u81EI-0007xm-In
 for xen-devel@lists.xenproject.org; Thu, 24 Apr 2025 18:23:22 +0000
Received: from outbound.pv.icloud.com
 (p-west1-cluster1-host4-snip4-10.eps.apple.com [57.103.64.123])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2a164bb1-2139-11f0-9ffb-bf95429c2676;
 Thu, 24 Apr 2025 20:23:06 +0200 (CEST)
Received: from smtpclient.apple (pv-asmtp-me-k8s.p00.prod.me.com [17.56.9.36])
 by outbound.pv.icloud.com (Postfix) with ESMTPSA id DC477180042F;
 Thu, 24 Apr 2025 18:23: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: 2a164bb1-2139-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ariadne.space;
	s=sig1; bh=08nTJUYzj57E/TLMHdYjm/4Q5MV282nWnewKnPEBZFs=;
	h=Content-Type:From:Mime-Version:Subject:Date:Message-Id:To:x-icloud-hme;
	b=J5e5WESdGLOskLQkjhQyxoCuhlH8LUXKkwOHTnbDCQVCykjKQ1pC2eU0wiV1IijhY
	 +9y0zh7rX5GaTpUT9vGcM+F9HS5g1JM+DVi1IhPZAxHD9qH7r8uoCLRlhoW42cmp5q
	 ar9KbwYsK3vcOD8xobvQZVR+k24lKtxF9ouBxrtLno5Wqqwf5dqT7hM77a/zRwgHnL
	 K0rjLqq7SMZiBLzsGx2ncwoaUVnbbrj5HjTCRtYayUBLIMGDkskxsGkA6JUCdVer1g
	 3S5TILvqUdEe4m9XBNiSzdovGdPnNwnyj2PFpSXf9hvhTCm9nSDtn3mBVWinJ93RiR
	 CHev6cuAJUa3g==
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
From: Ariadne Conill <ariadne@ariadne.space>
Mime-Version: 1.0 (1.0)
Subject: Re: [PATCH] x86/hyperv: Adjust hypercall page placement
Date: Thu, 24 Apr 2025 11:22:50 -0700
Message-Id: <002DF04C-A250-4EAD-9834-FC07EFC9D562@ariadne.space>
References: <D9EWZF0G7QUZ.2IDV470T7SYD0@amd.com>
Cc: xen-devel@lists.xenproject.org, Jason Andryuk <jason.andryuk@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>,
 Paul Durrant <paul@xen.org>, Alejandro Vallejo <agarciav@amd.com>
In-Reply-To: <D9EWZF0G7QUZ.2IDV470T7SYD0@amd.com>
To: Alejandro Vallejo <agarciav@amd.com>
X-Mailer: iPhone Mail (22D82)
X-Proofpoint-ORIG-GUID: zEIs1u3Dr-rKkoQOpHht-JeczmWZ9Wjd
X-Proofpoint-GUID: zEIs1u3Dr-rKkoQOpHht-JeczmWZ9Wjd
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.0.736,FMLib:17.12.80.40
 definitions=2025-04-24_08,2025-04-24_02,2025-02-21_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 mlxscore=0 phishscore=0
 malwarescore=0 spamscore=0 clxscore=1030 mlxlogscore=999 bulkscore=0
 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.19.0-2411120000 definitions=main-2504240127

Hi,

> On Apr 24, 2025, at 6:48=E2=80=AFAM, Alejandro Vallejo <agarciav@amd.com> w=
rote:
>=20
> =EF=BB=BFOn Thu Apr 24, 2025 at 1:45 PM BST, Alejandro Vallejo wrote:
>> Xen nowadays crashes under some Hyper-V configurations when
>> paddr_bits>36. At the 44bit boundary we reach an edge case in which the
>> end of the guest physical address space is not representable using 32bit
>> MFNs. Furthermore, it's an act of faith that the tail of the physical
>> address space has no reserved regions already.
>>=20
>> This commit uses the first unused MFN rather than the last, thus
>> ensuring the hypercall page placement is more resilient against such
>> corner cases.
>>=20
>> While at this, add an extra BUG_ON() to explicitly test for the
>> hypercall page being correctly set, and mark hcall_page_ready as
>> __ro_after_init.
>>=20
>> Fixes: 620fc734f854("x86/hyperv: setup hypercall page")
>> Signed-off-by: Alejandro Vallejo <agarciav@amd.com>
>=20
> After a side discussion, this seems on the unsafe side of things due to
> potential collision with MMIO. I'll resend (though not today) with the
> page overlapping a RAM page instead. Possibly the last page of actual
> RAM.

We have been working on bringing Xen up on Azure over at Edera, and have enc=
ountered this problem.  Our solution to this problem was to change Xen to ha=
ndle the hypercall trampoline page in the same way as Linux: dynamically all=
ocating a page from the heap and then marking it as executable.

This approach should avoid the issues with MMIO and page overlaps.  Would it=
 be more interesting to start with our patch instead?

Ariadne=


From xen-devel-bounces@lists.xenproject.org Thu Apr 24 18:48:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Apr 2025 18:48:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.966820.1356909 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u81by-0003AM-80; Thu, 24 Apr 2025 18:47:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 966820.1356909; Thu, 24 Apr 2025 18: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 1u81by-0003AF-4L; Thu, 24 Apr 2025 18:47:50 +0000
Received: by outflank-mailman (input) for mailman id 966820;
 Thu, 24 Apr 2025 18: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=P8hq=XK=3mdeb.com=sergii.dmytruk@srs-se1.protection.inumbo.net>)
 id 1u81bw-00039l-7O
 for xen-devel@lists.xenproject.org; Thu, 24 Apr 2025 18:47:48 +0000
Received: from 14.mo550.mail-out.ovh.net (14.mo550.mail-out.ovh.net
 [178.32.97.215]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9b1d277c-213c-11f0-9ffb-bf95429c2676;
 Thu, 24 Apr 2025 20:47:43 +0200 (CEST)
Received: from director1.ghost.mail-out.ovh.net (unknown [10.109.148.164])
 by mo550.mail-out.ovh.net (Postfix) with ESMTP id 4Zk4jB6Wvfz1ZZR
 for <xen-devel@lists.xenproject.org>; Thu, 24 Apr 2025 18:47:42 +0000 (UTC)
Received: from ghost-submission-5b5ff79f4f-cbfxp (unknown [10.108.54.179])
 by director1.ghost.mail-out.ovh.net (Postfix) with ESMTPS id EE09E1FD4F;
 Thu, 24 Apr 2025 18:47:40 +0000 (UTC)
Received: from 3mdeb.com ([37.59.142.108])
 by ghost-submission-5b5ff79f4f-cbfxp with ESMTPSA
 id TQ9mJUyHCmgPqy0Aly7jbg
 (envelope-from <sergii.dmytruk@3mdeb.com>); Thu, 24 Apr 2025 18:47: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: 9b1d277c-213c-11f0-9ffb-bf95429c2676
Authentication-Results:garm.ovh; auth=pass (GARM-108S002a734e243-f413-490a-a728-3a5017d4fd83,
                    6AF2A11B8D4EBDE9D9447A7514DB0FF9F8FB9007) smtp.auth=sergii.dmytruk@3mdeb.com
X-OVh-ClientIp:176.111.181.178
Date: Thu, 24 Apr 2025 21:47:31 +0300
From: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>,
	Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>,
	Lukasz Hawrylko <lukasz@hawrylko.pl>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Mateusz =?iso-8859-1?Q?M=F3wka?= <mateusz.mowka@intel.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Marek =?iso-8859-1?Q?Marczykowski-G=F3recki?= <marmarek@invisiblethingslab.com>,
	trenchboot-devel@googlegroups.com
Subject: Re: [PATCH 00/21] x86: Trenchboot Secure Launch DRTM (Xen)
Message-ID: <aAqHQ98cePJxuf6v@MjU3Nj>
References: <cover.1745172094.git.sergii.dmytruk@3mdeb.com>
 <744934f4-f56f-4dc7-bccb-c32f2829d1da@citrix.com>
 <010709d8-7784-41bf-bcb6-bf04803a75fc@citrix.com>
 <aAk1ZBw8GtoVYoL8@MjU3Nj>
 <6ae5f0a2-8055-45e1-933c-199d6c6d8626@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <6ae5f0a2-8055-45e1-933c-199d6c6d8626@citrix.com>
X-Ovh-Tracer-Id: 9749730245553206428
X-VR-SPAMSTATE: OK
X-VR-SPAMSCORE: -100
X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvhedtvddvucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuqfggjfdpvefjgfevmfevgfenuceurghilhhouhhtmecuhedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurhepfffhvfevuffkfhggtggugfgjsehtkeertddttddunecuhfhrohhmpefuvghrghhiihcuffhmhihtrhhukhcuoehsvghrghhiihdrughmhihtrhhukhesfehmuggvsgdrtghomheqnecuggftrfgrthhtvghrnhepgfejffevudffgfejvdfhfffhueefudegteetteduueehhedugfelgfelieeihfeunecuffhomhgrihhnpehgihhtlhgrsgdrtghomhdptghirhhruhhsqdgtihdrtghomhdpkhgvrhhnvghlrdhorhhgnecukfhppeduvdejrddtrddtrddupddujeeirdduuddurddukedurddujeekpdefjedrheelrddugedvrddutdeknecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehinhgvthepuddvjedrtddrtddruddpmhgrihhlfhhrohhmpehsvghrghhiihdrughmhihtrhhukhesfehmuggvsgdrtghomhdpnhgspghrtghpthhtohepuddprhgtphhtthhopeigvghnqdguvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdpoffvtefjohhsthepmhhoheehtdgmpdhmohguvgepshhmthhpohhuth
DKIM-Signature: a=rsa-sha256; bh=n7PnAuKdwOT+uzgZPCOTLAMaJMhasobHPaW1+Y/IEaA=;
 c=relaxed/relaxed; d=3mdeb.com; h=From; s=ovhmo3617313-selector1;
 t=1745520462; v=1;
 b=FjzG8Wv5/HsZrylExGlKjObjfQv94hkwNZZnxqBwdWm6E+ohlRaIGDJtwXCVw0JGMF+1OLWH
 mQt1NE/T2FwxNdnGSlJq1KU8MqcLJnxgxDy8P1Fu7lkBOg+4FD2jtK2xe8R1I8gEFf1xht8ip3Z
 GLnr7dLTYpU0WPpjzpz5hgKEiZdZNNRtigLaKqQogar5s9s2mQemGJ6DbOEVkKPUss+pMYl3VyW
 w8xXbPVAcwwfBVoIrXUskA+hdqxlnABXPg6D808vxuaSAuiOm0U/64mi5BvckmbTFbTLbtq8qxA
 tEsE31qkgeWL1zs/JfkUQCTm6Sk+DMyaYztDmTsqJASlA==

On Wed, Apr 23, 2025 at 11:43:15PM +0100, Andrew Cooper wrote:
> On 23/04/2025 7:45 pm, Sergii Dmytruk wrote:
> > On Wed, Apr 23, 2025 at 02:38:37PM +0100, Andrew Cooper wrote:
> >> On 22/04/2025 6:14 pm, Andrew Cooper wrote:
> >>> I've stripped out the sha2 patch and fixed up to use the existing sha2,
> >>> then kicked off some CI testing:
> >>>
> >>> https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/1780285393
> >>> https://cirrus-ci.com/build/5452335868018688
> >>>
> >>> When the dust has settled, I'll talk you through the failures.
> >> And here we go. Interestingly, the FreeBSD testing was entirely happy,
> >> and that is the rare way around.
> >>
> >> For Gitlab, there are several areas.
> >>
> >> First, for MISRA. In the job logs, you want the "Browse current
> >> reports:" link which will give you full details, but it's all pretty
> >> simple stuff.
> > Thanks, but that link gives me a list of 5096 failures all over the code
> > base.  Is there any way to see a diff against master?
>
> No sadly not. What you see is a mix of the blocking issues, and the "we
> want to see these so we can work on them".

Nicola Vetrini explained how some errors can be filtered in
https://lore.kernel.org/xen-devel/c2940798-11d0-4aaa-a013-64bef9bbdb82@apertussolutions.com/T/#m153e1cf8a6ef37d3d301253624c07fa3c25814c2
At least in this case it works when done correctly.

> >> kbl-suspend-x86-64-gcc-debug is a real S3 test on KabyLake hardware,
> >> which appears to have gone to sleep and never woken up. (More likely,
> >> crashed on wakeup before we got the console up). The AlderLake
> >> equivalent test seems to be happy, as well as the AMD ones.
> > Hm, not sure what that could be, but will try to reproduce/guess.
>
> KBL is unreliable in one specific way, but not with these symptoms.
>
> I reran the suspend test, and it failed in the same way. I think it's a
> deterministic bug.
>
> I can probably dig out my emergency serial debugging patches for S3 if
> you want?

Thanks, I'll try to come up with something first.  So far I thought
about a change in how stack is picked for APs, but I would expect all
hardware to have issues with S3 if that was the problem.

> >> Other common failures seem to be:
> >>
> >>  # take image offset into account
> >>  arch/x86/efi/fixmlehdr xen.efi 0x200000
> >>  Failed to find MLE header in xen.efi
> >>  arch/x86/Makefile:220: recipe for target 'xen.efi' failed
> >>  make[3]: *** [xen.efi] Error 1
> >>
> >> ~Andrew
> > That seems to be the only reason behind the rest of build failures.
> > I was able to reproduce the failure in Fedora 37 docker.  Searching for
> > the header in 8KiB instead of 4KiB fixes it.  Looks like large default
> > alignment of some toolchains pushes `head.S` to 4 KiB offset.
>
> FYI, you can access all the Xen containers with:
>
> CONTAINER=foo ./automation/scripts/containerize
>
> in the xen.git tree.

Thanks, that looks more convenient.

> Alignment that large is unexpected, and I suspect we want to fix it. Is
> it pre-existing, or something introduced by your series?
>
> ~Andrew

Pre-existing one.  I can see `-N` is already passed to `ld`:

-N, --omagic     Do not page align data, do not make text readonly

Specifying `--section-alignment 512 --file-alignment 512 --nmagic`
didn't reduce the alignment.  Statistics so far:

  Give 0x1000 offset:
  GNU ld (GNU Binutils for Debian) 2.31.1
  GNU ld version 2.38-27.fc37

  Give 0x440 offset:
  GNU ld (GNU Binutils for Debian) 2.40
  GNU ld (GNU Binutils for Debian) 2.41

Maybe that's not something configurable and just needs a newer version.


From xen-devel-bounces@lists.xenproject.org Thu Apr 24 18:51:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Apr 2025 18:51:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.966839.1356919 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u81fS-0004yi-KS; Thu, 24 Apr 2025 18:51:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 966839.1356919; Thu, 24 Apr 2025 18:51:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u81fS-0004yb-HO; Thu, 24 Apr 2025 18:51:26 +0000
Received: by outflank-mailman (input) for mailman id 966839;
 Thu, 24 Apr 2025 18:51: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=KF8R=XK=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u81fQ-0004yV-IQ
 for xen-devel@lists.xenproject.org; Thu, 24 Apr 2025 18:51:24 +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 1e269c21-213d-11f0-9eb2-5ba50f476ded;
 Thu, 24 Apr 2025 20:51:23 +0200 (CEST)
Received: by mail-wr1-x42e.google.com with SMTP id
 ffacd0b85a97d-39ee5ac4321so1474404f8f.1
 for <xen-devel@lists.xenproject.org>; Thu, 24 Apr 2025 11:51:23 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3a073cbedf4sm110267f8f.45.2025.04.24.11.51.21
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 24 Apr 2025 11:51:22 -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: 1e269c21-213d-11f0-9eb2-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745520683; x=1746125483; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=kiZhF9VOYBl77ZWu0EdxEQfJfSR+cAOs0BJKXG22QIk=;
        b=uyoSh+ADfnhTveKkvTqGOKc3fLPBun8qUO4ejHyAZxTOLUy/qYxMUD81YedMD/uOJq
         dyTIjO6RgpvDqi197MNdGBQDppPHuF+BJo9JBIObQOmfjijJUHRwaexxeG06Oz3xUfh8
         1x+hSe5B2l7fQulqEaeHF5u+MkYpAsTOmdBqs=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745520683; x=1746125483;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=kiZhF9VOYBl77ZWu0EdxEQfJfSR+cAOs0BJKXG22QIk=;
        b=CVe4YW8hR4XejxDBJYG4Fg1rFRROqxKLbVyS+iKpP4mDEnxt82ucHBU5FHj8zhf+nf
         wQFOu1CEM4otnAKGdSAlfCFJzaxr/kX2JEGjozTZG/oOE/HSyuTu+pCAgx2sdwOYspUa
         x7nzt1BZDJag119a6u6FoJIJiWLvXgZUW8fpHkNaocmwbNvcUWNqLrmF/MInxdDc4YbF
         jqE5ijsaZAqJTJzZplQ7bm5XdwRIG1E00DNNSbm0/R47K/wMReCB7jRPiqDyqR7Tqlas
         wV5A5FjdJ+R7jYlIHeHZa3+FiKAfATF/wj8SWVbC8tm5iPjVuxDX3nC5Uz6h29gg+59Q
         rGHw==
X-Gm-Message-State: AOJu0YwTo3tjvWHd04ZVZSpcEEp+wDcXyYboQoepZte4rztrTwfch2oe
	05petFb7ojc524ECe4vELA7Vjo3pgnGPWWwyZIUJ9XvDL/XhNNrHwVBUv91gZYQ=
X-Gm-Gg: ASbGncsboJfUS0o2OnOWUitSv2dPnDvrhQHohf3SYlAczVFRWeIDIzb6l5poVTss4YB
	tfP7Z6bpk82iK6juqiQr92+tLXR0g3dlpfzCISY5gfgyFBqwXpz5i/FeGBBJmk9GdNAr8wXru7v
	fWG9FjOTaonxSYdWMZ4BpCddyXtRc6JpxZMKXVSXnEFLrKDg5KUeeyCRr0d2OFor+lRPFZx30YW
	Gf7bFby/AFTZcps5xTbAcsSMbji7b9ynGpxfNOyP0W+iLhjNLVrvV1Lg/uZ+5LrUR10Sn39BJ4W
	JM9AHfMXCsc/8N/HPuB0hPne9veLMsehQ2iFJBcyLTnUEePdr5cGU/mjjiVBsAGONYUci75C03O
	baFQIKQ==
X-Google-Smtp-Source: AGHT+IG1pjRRTV9+sQ0Hbt/wmB0mYpTvHbyBCtQye77xEnQSUintBb/6G0PeSTLKIksO9hi+5hL4oQ==
X-Received: by 2002:a5d:47ae:0:b0:39c:1257:ccb0 with SMTP id ffacd0b85a97d-3a072bfa76emr348702f8f.59.1745520682522;
        Thu, 24 Apr 2025 11:51:22 -0700 (PDT)
Message-ID: <99e2fd35-4241-4be5-a81b-c7ea6cd54597@citrix.com>
Date: Thu, 24 Apr 2025 19:51:21 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 00/21] x86: Trenchboot Secure Launch DRTM (Xen)
To: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Lukasz Hawrylko <lukasz@hawrylko.pl>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Mateusz_M=C3=B3wka?= <mateusz.mowka@intel.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, trenchboot-devel@googlegroups.com
References: <cover.1745172094.git.sergii.dmytruk@3mdeb.com>
 <744934f4-f56f-4dc7-bccb-c32f2829d1da@citrix.com>
 <010709d8-7784-41bf-bcb6-bf04803a75fc@citrix.com> <aAk1ZBw8GtoVYoL8@MjU3Nj>
 <6ae5f0a2-8055-45e1-933c-199d6c6d8626@citrix.com> <aAqHQ98cePJxuf6v@MjU3Nj>
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: <aAqHQ98cePJxuf6v@MjU3Nj>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 24/04/2025 7:47 pm, Sergii Dmytruk wrote:
>> Alignment that large is unexpected, and I suspect we want to fix it.  Is
>> it pre-existing, or something introduced by your series?
>>
>> ~Andrew
> Pre-existing one.  I can see `-N` is already passed to `ld`:
>
> -N, --omagic     Do not page align data, do not make text readonly
>
> Specifying `--section-alignment 512 --file-alignment 512 --nmagic`
> didn't reduce the alignment.  Statistics so far:
>
>   Give 0x1000 offset:
>   GNU ld (GNU Binutils for Debian) 2.31.1
>   GNU ld version 2.38-27.fc37
>
>   Give 0x440 offset:
>   GNU ld (GNU Binutils for Debian) 2.40
>   GNU ld (GNU Binutils for Debian) 2.41
>
> Maybe that's not something configurable and just needs a newer version.

Ah - that's something that was changed literally yesterday:

https://xenbits.xen.org/gitweb/?p=xen.git;a=commitdiff;h=d444763f8ca556d0a67a4b933be303d346baef02

in order to fix some problems we've had trying to get xen.efi happy to
be NX_COMPAT.

We couldn't identify any good reason why -N was in use.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Apr 24 19:22:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Apr 2025 19:22:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.966853.1356929 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u829r-0001Vl-St; Thu, 24 Apr 2025 19:22:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 966853.1356929; Thu, 24 Apr 2025 19: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 1u829r-0001Ve-Q8; Thu, 24 Apr 2025 19:22:51 +0000
Received: by outflank-mailman (input) for mailman id 966853;
 Thu, 24 Apr 2025 19: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=KQwv=XK=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1u829p-0001VY-Si
 for xen-devel@lists.xenproject.org; Thu, 24 Apr 2025 19:22:50 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on2061f.outbound.protection.outlook.com
 [2a01:111:f403:2412::61f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7fb60bc8-2141-11f0-9eb2-5ba50f476ded;
 Thu, 24 Apr 2025 21:22:47 +0200 (CEST)
Received: from PH7P222CA0025.NAMP222.PROD.OUTLOOK.COM (2603:10b6:510:33a::19)
 by SA1PR12MB7198.namprd12.prod.outlook.com (2603:10b6:806:2bf::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.36; Thu, 24 Apr
 2025 19:22:39 +0000
Received: from CY4PEPF0000EE32.namprd05.prod.outlook.com
 (2603:10b6:510:33a:cafe::9d) by PH7P222CA0025.outlook.office365.com
 (2603:10b6:510:33a::19) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.36 via Frontend Transport; Thu,
 24 Apr 2025 19:22:39 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 CY4PEPF0000EE32.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.8655.12 via Frontend Transport; Thu, 24 Apr 2025 19:22: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, 24 Apr
 2025 14:22:37 -0500
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; Thu, 24 Apr
 2025 14:22:37 -0500
Received: from [172.20.75.239] (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, 24 Apr 2025 14:22:36 -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: 7fb60bc8-2141-11f0-9eb2-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Cva3LCoe7JU29UebmOu4T9/UKaL11dtd7wMzVsF+wqJ45umr6ZulMPXnXnOL5r0Ii6st5BvEuTfnClFKEJFyqXZAFWjdfVR3BzxyJ5kExazdVh8FSICl4A4G1l0/CmugReXg29c36vCeDQJLcf8ABPOjqUU4PDYK39gQp0YijCBJC8PU2dO1Rh6kHEF6bdmNFxRFeyvWi7fSJAhQQo1yW2YI8u8nDvcgXkd/hE2CLRiVBlxctrJsNSFXuophVYVxpLWr/v+IctYhrKMXoTU3yBDp2vjUFE/bZuNrISw4FWfUOGwHoW2LcPe7VcnsIP65GFvg/+30x+2wtqzze0ougQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=KP4TrP33evWVmeNHf/i/UQ1nScqOgEOYvQNG4bPKzPU=;
 b=fu5bCpZzcj8pq/6oNafej/nKUjIeRTJG4/NsbfCC9/E1GKkNWx4Puf0CkaHwwchyMl47PICiZISDLW2yrTC3WeLHvy2lfbkmoDLbb9NDX9B7PQ70DR0qlfX7YBD2V1MWm9yfXwYJPH9vPanH2fhbGWifbp/8OpNZ4WLIFf3wuKWWw22fso6MfonOXnEkQd292FVafIKNVdIxAhCgr139YHJixnVN95eiEyetxp7M5IwQCWnoUlSVGsoROT0s9avBRzm9cSf6Xrd8PTLvw9ozFT4oPKoLIh/2UjOi9/mHBqhzuVTAOQ3TsqjPuM7RmSumH9Acahhr1R5zUsvqDhCYnA==
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=KP4TrP33evWVmeNHf/i/UQ1nScqOgEOYvQNG4bPKzPU=;
 b=n2RaW3SXr0mhHjCR8psoUVQnHFc4QS7dJgO/2my//CzQp3lA5PPvIgrIdL+6G3o4FIC7pXfXtMynbZysjdmwjDn0fgYX8yelIZcF9Rf93sKhiV8+a8b/O+jx13mlBYE7BinprFE/+w3Kn4bEjQom5pYyfZ4f5hgs4G1aNtWhlAM=
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: <3d2555d7-83c0-438d-8d61-ac622a662384@amd.com>
Date: Thu, 24 Apr 2025 15:22:38 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 4/4] xen/arm: add support for R-Car Gen4 PCI host
 controller
To: Mykyta Poturai <Mykyta_Poturai@epam.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
CC: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@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>
References: <cover.1745402473.git.mykyta_poturai@epam.com>
 <98c8e00a77800e8b1163ab1efa9a60f1bced0fb9.1745402473.git.mykyta_poturai@epam.com>
Content-Language: en-US
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
In-Reply-To: <98c8e00a77800e8b1163ab1efa9a60f1bced0fb9.1745402473.git.mykyta_poturai@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CY4PEPF0000EE32:EE_|SA1PR12MB7198:EE_
X-MS-Office365-Filtering-Correlation-Id: 185cf162-d507-46c3-37e6-08dd83656066
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|36860700013|1800799024|376014|13003099007|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?Y0pFSEZXOW4zQWN4TlFmMkpvV2hHNUQyeVh0UWhOS2s2dTduWFo5aVZiVVZ5?=
 =?utf-8?B?eENscnRJMDRCZG1SeXJjNjA4bDBzMDcwYlhLcmcwaUNveEZoK3dwMlNnMk15?=
 =?utf-8?B?c3M3TlhzeUhrT1RDWUxFeGNWbUFQQ2pLR0dCNjdvRlM4WVBMSXNneFEyMWpZ?=
 =?utf-8?B?V0MzNmwra2drYktybkFoY1V2emU1UFBxNlFFVWhmQzAwUUNSbXdKa0pMcG9t?=
 =?utf-8?B?ZkNMTEVWTFBtZGxOSXc2UzcxM1V0WElwRTRKUWtQeDREMHN0YXU0NGpYSjJQ?=
 =?utf-8?B?T2NwM3EyU3YzWitBY1Nyb1BJWFkvSFl3WmxoRHFzRVFxdndMMEdXRXZVeUd1?=
 =?utf-8?B?eURnenRaOTlKbnV2S3B6NlllNmwwTVVrMUVHSnkwV3NLaEZ5M09KQ0IvMEkw?=
 =?utf-8?B?WTFYQUpab1hmUHlHQ25lc21TVUwvNnVSdE1NOUtQcWtqa0dGeTk5QTdUeWF6?=
 =?utf-8?B?R2FOZENXMlFHL2lKSkIweEh2bWNvS1phcFMyVlUrWnVIVmE2QzlJTmJxS2Q5?=
 =?utf-8?B?b1lKWnJmUUlBT1NhOVpFNGNBOGs3U2hqWWJyMEJTbDZwQWhhYWgrT050M29B?=
 =?utf-8?B?MGpHVGFxWHFDN0dsVVF5VkZSbHJhNlFRSVBhODhMRWZoZnVRalpwdU93eUdY?=
 =?utf-8?B?U0RQelp0SUJ0eU04YWhyWEdMS1pNV29zMjNaL1BVcGFtZFpjODBPR1ptMFg4?=
 =?utf-8?B?ZXZEekx3eEVRVXJ4YW5EakhSL2ZQcE5hMFJhSkpRWUdkOUgwTG4zcUM3bTEr?=
 =?utf-8?B?QkN3L1Q3eGF6Mk5vaC9ZT3NxMnBMbEdZN0p3SGxuN1dvWTJBdTdlb0J1amFj?=
 =?utf-8?B?ZW1yQUdmN3ErZ1BrbkxXd2xwbEV2SUExRytxQU82bWJQS1BUVVpZL3c3ZG9F?=
 =?utf-8?B?WldpeVFocG5QSW9qS0FJNzNsaVZDeFliajZLanp2OXJ3Zk1kcXJSQlhJdVZD?=
 =?utf-8?B?MGVmSmpIWjhIM3lPU01ScTJGeDJGNW9LNXdhb0JGV0hiNW95dnJ1cWxxcmc2?=
 =?utf-8?B?aFo1Tjd1RnQ2NVllUmx4UlJvQURqVkp3MEFtbHlUdlpEcHpMc1I1UGdFQ2Nj?=
 =?utf-8?B?YVBCTHVtZDU2ZEJ2cVhQN3lwdWFpWGJNbC9wZ2FtblllbTJlK2FGaUlQTWpW?=
 =?utf-8?B?MnJ2RWtTcWpZei9QNlVEdlVFakwvUkRPYUJKSjhHdlJRMDFNUXhLR1hOMjQz?=
 =?utf-8?B?U3NaUFFxZFEyNHcyVDh3SDhMaHhJcUhia3E2NHgvTCtHREFYOUh5RUp6cVdX?=
 =?utf-8?B?aTR1UHgxS2dqOURySEExUUxqTlBDUHdta0xGbjJzWVR6Z2ZsT0NNSW5kTkRF?=
 =?utf-8?B?VVAvaVFqL3dWQmRXZlVzdnZxVjJmczc1MFpnWXNPZzhCZnJJc3FKVWdYaXJT?=
 =?utf-8?B?a3M4bnVpWHZJUjE1TldqenhLQ3dyNDl1RE5WWVJuVHNPUGxjZVgwS1dRbjlx?=
 =?utf-8?B?THpWNmd1S3hETXVac2dMdm5CUk9Bcm9qV2plQWVzQjNSbUhuNFlQZG12Ym5m?=
 =?utf-8?B?OURMZU0rM1k0OUl1bVZWRzJuRVEwY01LOGNrYTdBOURmRE5iVVkxRHRQMVNY?=
 =?utf-8?B?a1dGdXhla2k2RlJiYXJGUVExbEIrcm13UlVnTit1dU1WallodU1IY2RFSlNZ?=
 =?utf-8?B?cWVpbU95b2JUVmY1R00vNEF5QXo5NUNQR1d0aFpQdS9vdWlwOVY5anBtVFd4?=
 =?utf-8?B?V29yQlJtZm1uYXpvVnYrMDJ6U3RrZVl3aHFmam9FVEVjOEJMc0hJeUt2WnZF?=
 =?utf-8?B?NElReVpUZThJckVWaGN2dkpkRk9xVEMvdVo5M3VIdjVxVDhkSitlMnlGOXRn?=
 =?utf-8?B?UXlIekJHNjArdEFGVWIxSWtxeEJ4Mlk5c254T3cwaklyS1E1L0krZnM1UHJm?=
 =?utf-8?B?WHBGVzVUU2pYWW1KT3N1dnVuR3Q5MndEMW5xSENGMGp2Rkp6OWIvc0VGSGs5?=
 =?utf-8?B?YkdnWGFxeG8rNGorZHlOWXZpeXBtcHI0UUlqVW5LekpQUXJuck1xS0E2OXRa?=
 =?utf-8?B?ZElZdGMvYm9NSklpcnpLRzJpYVB4MVVkU2lLN3RyMUQzVTJFV0R6ZVM1TndJ?=
 =?utf-8?B?RGk3YklzNWFCdCtWV284MWhpQmFVS2VkaXRFQT09?=
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)(1800799024)(376014)(13003099007)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Apr 2025 19:22:38.7319
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 185cf162-d507-46c3-37e6-08dd83656066
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:
	CY4PEPF0000EE32.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB7198

On 4/23/25 07:08, Mykyta Poturai wrote:
> From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
> 
> Add support for Renesas R-Car Gen4 PCI host controller, specifically
> targeting the S4 and V4H SoCs. The implementation includes configuration
> read/write operations for both root and child buses. For accessing the
> child bus, iATU is used for address translation.

In a system with dom0, I assume dom0 programs the iATU, and would do so
before issuing any PHYSDEVOP_pci_device_add hypercalls or PCI config
space accesses. Is that a correct assumption? If so, what is the use
case for iATU initialization in Xen? E.g. is it to guard against a
misconfigured or broken dom0? Do different iATU settings need to be
applied when running as a Xen guest vs not?

Further, is this driver sufficient to initialize the PCI controller
without dom0 involvement (e.g. to enable dom0less PCI passthrough)?

These would all be valid use cases IMO, but I would just like to
understand the rationale.

> 
> Code common to all DesignWare PCI host controllers is located in a
> separate file to allow for easy reuse in other DesignWare-based PCI
> host controllers.
> 
> Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
> Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
> ---
> v3->v4:
> * no changes
> 
> v2->v3:
> * move priv allocation to dw_pcie_host_probe
> 
> v1->v2:
> * move designware code in a separate file
> ---
>  xen/arch/arm/pci/Makefile         |   2 +
>  xen/arch/arm/pci/pci-designware.c | 403 ++++++++++++++++++++++++++++++
>  xen/arch/arm/pci/pci-designware.h | 102 ++++++++
>  xen/arch/arm/pci/pci-host-rcar4.c | 103 ++++++++
>  4 files changed, 610 insertions(+)
>  create mode 100644 xen/arch/arm/pci/pci-designware.c
>  create mode 100644 xen/arch/arm/pci/pci-designware.h
>  create mode 100644 xen/arch/arm/pci/pci-host-rcar4.c
> 
> diff --git a/xen/arch/arm/pci/Makefile b/xen/arch/arm/pci/Makefile
> index 1d045ade01..ca6135e282 100644
> --- a/xen/arch/arm/pci/Makefile
> +++ b/xen/arch/arm/pci/Makefile
> @@ -4,3 +4,5 @@ obj-y += pci-host-generic.o
>  obj-y += pci-host-common.o
>  obj-y += ecam.o
>  obj-y += pci-host-zynqmp.o
> +obj-y += pci-designware.o
> +obj-y += pci-host-rcar4.o
> diff --git a/xen/arch/arm/pci/pci-designware.c b/xen/arch/arm/pci/pci-designware.c
> new file mode 100644
> index 0000000000..dcbd07ced3
> --- /dev/null
> +++ b/xen/arch/arm/pci/pci-designware.c
> @@ -0,0 +1,403 @@
> +/*
> + * Based on Linux drivers/pci/controller/pci-host-common.c
> + * Based on Linux drivers/pci/controller/pci-host-generic.c
> + * Based on xen/arch/arm/pci/pci-host-generic.c

Linux drivers/pci/controller/dwc/pcie-designware.c ?

> + *
> + * 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.
> + *
> + * 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.
> + *
> + * You should have received a copy of the GNU General Public License
> + * along with this program.  If not, see <http://www.gnu.org/licenses/>.
> + */

Please use SPDX (see CODING_STYLE) here and in the other two new files.

> +
> +#include <xen/delay.h>
> +#include <asm/io.h>
> +
> +#include "pci-designware.h"
> +/**
> + * upper_32_bits - return bits 32-63 of a number
> + * @n: the number we're accessing
> + *
> + * A basic shift-right of a 64- or 32-bit quantity.  Use this to suppress
> + * the "right shift count >= width of type" warning when that quantity is
> + * 32-bits.
> + */
> +#define upper_32_bits(n) ((uint32_t)(((n) >> 16) >> 16))
> +
> +/**
> + * lower_32_bits - return bits 0-31 of a number
> + * @n: the number we're accessing
> + */
> +#define lower_32_bits(n) ((uint32_t)((n) & 0xffffffff))

This constant needs a U suffix

> +
> +static int dw_pcie_read(void __iomem *addr, int size, uint32_t *val)
> +{
> +    if ( !IS_ALIGNED((uintptr_t)addr, size) )
> +    {
> +        *val = 0;
> +        return PCIBIOS_BAD_REGISTER_NUMBER;

The callers of dw_pcie_{read,write} below don't appear to do much (other
than printk) about the error returned. Please see
docs/process/coding-best-practices.pandoc regarding error handling.

> +    }
> +
> +    if ( size == 4 )
> +        *val = readl(addr);
> +    else if ( size == 2 )
> +        *val = readw(addr);
> +    else if ( size == 1 )
> +        *val = readb(addr);
> +    else
> +    {
> +        *val = 0;
> +        return PCIBIOS_BAD_REGISTER_NUMBER;
> +    }
> +
> +    return PCIBIOS_SUCCESSFUL;
> +}
> +
> +static int dw_pcie_write(void __iomem *addr, int size, uint32_t val)
> +{
> +    if ( !IS_ALIGNED((uintptr_t)addr, size) )
> +        return PCIBIOS_BAD_REGISTER_NUMBER;
> +
> +    if ( size == 4 )
> +        writel(val, addr);
> +    else if ( size == 2 )
> +        writew(val, addr);
> +    else if ( size == 1 )
> +        writeb(val, addr);
> +    else
> +        return PCIBIOS_BAD_REGISTER_NUMBER;
> +
> +    return PCIBIOS_SUCCESSFUL;
> +}
> +
> +static uint32_t dw_pcie_read_dbi(struct pci_host_bridge *bridge, uint32_t reg,
> +                                 size_t size)
> +{
> +    void __iomem *addr = bridge->cfg->win + reg;
> +    uint32_t val;
> +
> +    dw_pcie_read(addr, size, &val);
> +    return val;
> +}
> +
> +static void dw_pcie_write_dbi(struct pci_host_bridge *bridge, uint32_t reg,
> +                              size_t size, uint32_t val)
> +{
> +    void __iomem *addr = bridge->cfg->win + reg;
> +
> +    dw_pcie_write(addr, size, val);
> +}
> +
> +static uint32_t dw_pcie_readl_dbi(struct pci_host_bridge *bridge, uint32_t reg)
> +{
> +    return dw_pcie_read_dbi(bridge, reg, sizeof(uint32_t));
> +}
> +
> +static void dw_pcie_writel_dbi(struct pci_host_bridge *pci, uint32_t reg,
> +                               uint32_t val)
> +{
> +    dw_pcie_write_dbi(pci, reg, sizeof(uint32_t), val);
> +}
> +
> +static void dw_pcie_read_iatu_unroll_enabled(struct pci_host_bridge *bridge)
> +{
> +    struct dw_pcie_priv *priv = bridge->priv;
> +    uint32_t val;
> +
> +    val = dw_pcie_readl_dbi(bridge, PCIE_ATU_VIEWPORT);
> +    if ( val == 0xffffffff )

This constant needs a U suffix

> +        priv->iatu_unroll_enabled = true;
> +
> +    printk(XENLOG_DEBUG "%s iATU unroll: %sabled\n",

XENLOG_G_DEBUG

> +           dt_node_full_name(bridge->dt_node),
> +           priv->iatu_unroll_enabled ? "en" : "dis");
> +}
> +
> +static uint32_t dw_pcie_readl_atu(struct pci_host_bridge *pci, uint32_t reg)
> +{
> +    struct dw_pcie_priv *priv = pci->priv;
> +    int ret;
> +    uint32_t val;
> +
> +    ret = dw_pcie_read(priv->atu_base + reg, 4, &val);
> +    if ( ret )
> +        printk(XENLOG_ERR "Read ATU address failed\n");

XENLOG_G_ERR

> +
> +    return val;
> +}
> +
> +static void dw_pcie_writel_atu(struct pci_host_bridge *pci, uint32_t reg,
> +                               uint32_t val)
> +{
> +    struct dw_pcie_priv *priv = pci->priv;
> +    int ret;
> +
> +    ret = dw_pcie_write(priv->atu_base + reg, 4, val);
> +    if ( ret )
> +        printk(XENLOG_ERR "Write ATU address failed\n");

XENLOG_G_ERR

> +}
> +
> +static uint32_t dw_pcie_readl_ob_unroll(struct pci_host_bridge *pci,
> +                                        uint32_t index, uint32_t reg)
> +{
> +    uint32_t offset = PCIE_GET_ATU_OUTB_UNR_REG_OFFSET(index);
> +
> +    return dw_pcie_readl_atu(pci, offset + reg);
> +}
> +
> +static void dw_pcie_writel_ob_unroll(struct pci_host_bridge *pci,
> +                                     uint32_t index, uint32_t reg, uint32_t val)
> +{
> +    uint32_t offset = PCIE_GET_ATU_OUTB_UNR_REG_OFFSET(index);
> +
> +    dw_pcie_writel_atu(pci, offset + reg, val);
> +}
> +
> +static uint32_t dw_pcie_enable_ecrc(uint32_t val)
> +{
> +    ASSERT_UNREACHABLE();
> +    return 0;
> +}
> +
> +static void dw_pcie_prog_outbound_atu_unroll(struct pci_host_bridge *pci,
> +                                             uint8_t func_no, int index,
> +                                             int type, uint64_t cpu_addr,
> +                                             uint64_t pci_addr, uint64_t size)
> +{
> +    struct dw_pcie_priv *priv = pci->priv;
> +    uint32_t retries, val;
> +    uint64_t limit_addr = cpu_addr + size - 1;
> +
> +    dw_pcie_writel_ob_unroll(pci, index, PCIE_ATU_UNR_LOWER_BASE,
> +                             lower_32_bits(cpu_addr));
> +    dw_pcie_writel_ob_unroll(pci, index, PCIE_ATU_UNR_UPPER_BASE,
> +                             upper_32_bits(cpu_addr));
> +    dw_pcie_writel_ob_unroll(pci, index, PCIE_ATU_UNR_LOWER_LIMIT,
> +                             lower_32_bits(limit_addr));
> +    dw_pcie_writel_ob_unroll(pci, index, PCIE_ATU_UNR_UPPER_LIMIT,
> +                             upper_32_bits(limit_addr));
> +    dw_pcie_writel_ob_unroll(pci, index, PCIE_ATU_UNR_LOWER_TARGET,
> +                             lower_32_bits(pci_addr));
> +    dw_pcie_writel_ob_unroll(pci, index, PCIE_ATU_UNR_UPPER_TARGET,
> +                             upper_32_bits(pci_addr));
> +    val = type | PCIE_ATU_FUNC_NUM(func_no);
> +    val = upper_32_bits(size - 1) ? val | PCIE_ATU_INCREASE_REGION_SIZE : val;
> +    if ( priv->version == 0x490A )
> +        val = dw_pcie_enable_ecrc(val);
> +    dw_pcie_writel_ob_unroll(pci, index, PCIE_ATU_UNR_REGION_CTRL1, val);
> +    dw_pcie_writel_ob_unroll(pci, index, PCIE_ATU_UNR_REGION_CTRL2,
> +                             PCIE_ATU_ENABLE);
> +
> +    /*
> +     * Make sure ATU enable takes effect before any subsequent config
> +     * and I/O accesses.
> +     */
> +    for ( retries = 0; retries < LINK_WAIT_MAX_IATU_RETRIES; retries++ )
> +    {
> +        val = dw_pcie_readl_ob_unroll(pci, index, PCIE_ATU_UNR_REGION_CTRL2);
> +        if ( val & PCIE_ATU_ENABLE )
> +            return;
> +
> +        mdelay(LINK_WAIT_IATU);
> +    }

dw_pcie_child_{map_bus,config_read,config_write}, and thus
dw_pcie_prog_outbound_atu{_unroll}, would potentially be called on every
guest PCI access, where the d->pci_lock may be held. It doesn't seem
appropriate to have a busy-wait such as this in that code path.

If the busy-wait is necessary, then perhaps iATU configuration should
happen during init/probe (as your FIXME note below suggests), not as a
consequence of guest PCI access.

Same comment applies below.

> +    printk(XENLOG_ERR "Outbound iATU is not being enabled\n");

XENLOG_G_ERR

> +}
> +
> +static void __dw_pcie_prog_outbound_atu(struct pci_host_bridge *pci,
> +                                        uint8_t func_no, int index, int type,
> +                                        uint64_t cpu_addr, uint64_t pci_addr,
> +                                        uint64_t size)
> +{
> +    struct dw_pcie_priv *priv = pci->priv;
> +    uint32_t retries, val;
> +
> +    if ( priv->iatu_unroll_enabled )
> +    {
> +        dw_pcie_prog_outbound_atu_unroll(pci, func_no, index, type, cpu_addr,
> +                                         pci_addr, size);
> +        return;
> +    }
> +
> +    dw_pcie_writel_dbi(pci, PCIE_ATU_VIEWPORT,
> +                       PCIE_ATU_REGION_OUTBOUND | index);
> +    dw_pcie_writel_dbi(pci, PCIE_ATU_LOWER_BASE, lower_32_bits(cpu_addr));
> +    dw_pcie_writel_dbi(pci, PCIE_ATU_UPPER_BASE, upper_32_bits(cpu_addr));
> +    dw_pcie_writel_dbi(pci, PCIE_ATU_LIMIT, lower_32_bits(cpu_addr + size - 1));
> +    if ( priv->version >= 0x460A )
> +        dw_pcie_writel_dbi(pci, PCIE_ATU_UPPER_LIMIT,
> +                           upper_32_bits(cpu_addr + size - 1));
> +    dw_pcie_writel_dbi(pci, PCIE_ATU_LOWER_TARGET, lower_32_bits(pci_addr));
> +    dw_pcie_writel_dbi(pci, PCIE_ATU_UPPER_TARGET, upper_32_bits(pci_addr));
> +    val = type | PCIE_ATU_FUNC_NUM(func_no);
> +    val = ((upper_32_bits(size - 1)) && (priv->version >= 0x460A))
> +              ? val | PCIE_ATU_INCREASE_REGION_SIZE
> +              : val;
> +    if ( priv->version == 0x490A )
> +        val = dw_pcie_enable_ecrc(val);
> +    dw_pcie_writel_dbi(pci, PCIE_ATU_CR1, val);
> +    dw_pcie_writel_dbi(pci, PCIE_ATU_CR2, PCIE_ATU_ENABLE);
> +
> +    /*
> +     * Make sure ATU enable takes effect before any subsequent config
> +     * and I/O accesses.
> +     */
> +    for ( retries = 0; retries < LINK_WAIT_MAX_IATU_RETRIES; retries++ )
> +    {
> +        val = dw_pcie_readl_dbi(pci, PCIE_ATU_CR2);
> +        if ( val & PCIE_ATU_ENABLE )
> +            return;
> +
> +        mdelay(LINK_WAIT_IATU);
> +    }> +    printk(XENLOG_ERR "Outbound iATU is not being enabled\n");

XENLOG_G_ERR

> +}
> +
> +static void dw_pcie_prog_outbound_atu(struct pci_host_bridge *pci, int index,
> +                                      int type, uint64_t cpu_addr,
> +                                      uint64_t pci_addr, uint64_t size)
> +{
> +    __dw_pcie_prog_outbound_atu(pci, 0, index, type, cpu_addr, pci_addr, size);
> +}
> +
> +void dw_pcie_set_version(struct pci_host_bridge *bridge, unsigned int version)
> +{
> +    struct dw_pcie_priv *priv = bridge->priv;
> +
> +    priv->version = version;
> +}
> +
> +void __iomem *dw_pcie_child_map_bus(struct pci_host_bridge *bridge,
> +                                    pci_sbdf_t sbdf, uint32_t where)
> +{
> +    uint32_t busdev;
> +
> +    busdev = PCIE_ATU_BUS(sbdf.bus) | PCIE_ATU_DEV(PCI_SLOT(sbdf.devfn)) |
> +             PCIE_ATU_FUNC(PCI_FUNC(sbdf.devfn));
> +
> +    /* FIXME: Parent is the root bus, so use PCIE_ATU_TYPE_CFG0. */
> +    dw_pcie_prog_outbound_atu(bridge, PCIE_ATU_REGION_INDEX1,
> +                              PCIE_ATU_TYPE_CFG0, bridge->child_cfg->phys_addr,
> +                              busdev, bridge->child_cfg->size);

Does iATU configuration really need to happen on every guest PCI access?

> +
> +    return bridge->child_cfg->win + where;
> +}
> +
> +int dw_pcie_child_config_read(struct pci_host_bridge *bridge, pci_sbdf_t sbdf,
> +                              uint32_t reg, uint32_t len, uint32_t *value)
> +{
> +    struct dw_pcie_priv *priv = bridge->priv;
> +    int ret;
> +
> +    /*
> +     * FIXME: we cannot read iATU settings at the early initialization
> +     * (probe) as the host's HW is not yet initialized at that phase.
> +     * This read operation is the very first thing Domain-0 will do
> +     * during its initialization, so take this opportunity and read
> +     * iATU setting now.
> +     */
> +    if ( unlikely(!priv->iatu_unroll_initilized) )
> +    {
> +        dw_pcie_read_iatu_unroll_enabled(bridge);
> +        priv->iatu_unroll_initilized = true;
> +    }
> +
> +    ret = pci_generic_config_read(bridge, sbdf, reg, len, value);
> +    if ( !ret && (priv->num_viewport <= 2) )
> +        dw_pcie_prog_outbound_atu(bridge, PCIE_ATU_REGION_INDEX1,
> +                                  PCIE_ATU_TYPE_IO,
> +                                  bridge->child_cfg->phys_addr, 0,
> +                                  bridge->child_cfg->size);
> +
> +    return ret;
> +}
> +
> +int dw_pcie_child_config_write(struct pci_host_bridge *bridge, pci_sbdf_t sbdf,
> +                               uint32_t reg, uint32_t len, uint32_t value)
> +{
> +    struct dw_pcie_priv *priv = bridge->priv;
> +    int ret;
> +
> +    ret = pci_generic_config_write(bridge, sbdf, reg, len, value);
> +    if ( !ret && (priv->num_viewport <= 2) )
> +        dw_pcie_prog_outbound_atu(bridge, PCIE_ATU_REGION_INDEX1,
> +                                  PCIE_ATU_TYPE_IO,
> +                                  bridge->child_cfg->phys_addr, 0,
> +                                  bridge->child_cfg->size);
> +    return ret;
> +}
> +
> +bool __init dw_pcie_child_need_p2m_hwdom_mapping(struct domain *d,
> +                                                 struct pci_host_bridge *bridge,
> +                                                 uint64_t addr)
> +{
> +    struct pci_config_window *cfg = bridge->child_cfg;
> +
> +    /*
> +     * We do not want ECAM address space to be mapped in Domain-0's p2m,
> +     * so we can trap access to it.
> +     */
> +    return cfg->phys_addr != addr;
> +}
> +
> +struct pci_host_bridge *__init
> +dw_pcie_host_probe(struct dt_device_node *dev, const void *data,
> +                   const struct pci_ecam_ops *ops,
> +                   const struct pci_ecam_ops *child_ops)
> +{
> +    struct pci_host_bridge *bridge;
> +    struct dw_pcie_priv *priv;
> +
> +    paddr_t atu_phys_addr;
> +    paddr_t atu_size;
> +    int atu_idx, ret;
> +
> +    bridge = pci_host_common_probe(dev, ops, child_ops);
> +    if ( IS_ERR(bridge) )
> +        return bridge;
> +
> +    priv = xzalloc_bytes(sizeof(struct dw_pcie_priv));

xzalloc(struct dw_pcie_priv) ?

> +    if ( !priv )
> +        return ERR_PTR(-ENOMEM);
> +
> +    bridge->priv = priv;
> +
> +    atu_idx = dt_property_match_string(dev, "reg-names", "atu");
> +    if ( atu_idx < 0 )
> +    {
> +        printk(XENLOG_ERR "Cannot find \"atu\" range index in device tree\n");
> +        return ERR_PTR(atu_idx);
> +    }
> +    ret = dt_device_get_address(dev, atu_idx, &atu_phys_addr, &atu_size);
> +    if ( ret )
> +    {
> +        printk(XENLOG_ERR "Cannot find \"atu\" range in device tree\n");
> +        return ERR_PTR(ret);
> +    }
> +    printk("iATU at [mem 0x%" PRIpaddr "-0x%" PRIpaddr "]\n", atu_phys_addr,
> +           atu_phys_addr + atu_size - 1);
> +    priv->atu_base = ioremap_nocache(atu_phys_addr, atu_size);
> +    if ( !priv->atu_base )
> +    {
> +        printk(XENLOG_ERR "iATU ioremap failed\n");
> +        return ERR_PTR(ENXIO);
> +    }
> +
> +    if ( !dt_property_read_u32(dev, "num-viewport", &priv->num_viewport) )
> +        priv->num_viewport = 2;
> +
> +    /*
> +     * FIXME: we cannot read iATU unroll enable now as the host bridge's
> +     * HW is not yet initialized by Domain-0: leave it for later.
> +     */

Is there a plan to address this?

> +
> +    printk(XENLOG_INFO "%s number of view ports: %d\n", dt_node_full_name(dev),
> +           priv->num_viewport);
> +
> +    return bridge;
> +}
> diff --git a/xen/arch/arm/pci/pci-designware.h b/xen/arch/arm/pci/pci-designware.h
> new file mode 100644
> index 0000000000..a15ba9a329
> --- /dev/null
> +++ b/xen/arch/arm/pci/pci-designware.h
> @@ -0,0 +1,102 @@
> +/*
> + * Based on Linux drivers/pci/controller/pci-host-common.c
> + * Based on Linux drivers/pci/controller/pci-host-generic.c
> + * Based on xen/arch/arm/pci/pci-host-generic.c
> + *
> + * 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.
> + *
> + * 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.
> + *
> + * 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/pci.h>
> +#include <xen/init.h>
> +
> +#ifndef __PCI_DESIGNWARE_H__
> +#define __PCI_DESIGNWARE_H__
> +
> +#define PCIBIOS_SUCCESSFUL              0x00
> +#define PCIBIOS_BAD_REGISTER_NUMBER     0x87

Could you use existing error code definitions instead of introducing new
ones?

> +
> +#define PCIE_ATU_VIEWPORT               0x900
> +#define PCIE_ATU_REGION_OUTBOUND        0
> +#define PCIE_ATU_CR1                    0x904
> +#define PCIE_ATU_INCREASE_REGION_SIZE   BIT(13, UL)
> +#define PCIE_ATU_CR2                    0x908
> +#define PCIE_ATU_ENABLE                 BIT(31, UL)
> +#define PCIE_ATU_LOWER_BASE             0x90C
> +#define PCIE_ATU_UPPER_BASE             0x910
> +#define PCIE_ATU_LIMIT                  0x914
> +#define PCIE_ATU_LOWER_TARGET           0x918
> +#define PCIE_ATU_UPPER_TARGET           0x91C
> +#define PCIE_ATU_UPPER_LIMIT            0x924
> +
> +#define PCIE_ATU_REGION_INDEX1  0x1
> +#define PCIE_ATU_TYPE_IO        0x2
> +#define PCIE_ATU_TYPE_CFG0      0x4
> +
> +#define FIELD_PREP(_mask, _val) \
> +    (((typeof(_mask))(_val) << (ffs64(_mask) - 1)) & (_mask))
> +
> +#define PCIE_ATU_BUS(x)         FIELD_PREP(GENMASK(31, 24), x)
> +#define PCIE_ATU_DEV(x)         FIELD_PREP(GENMASK(23, 19), x)
> +#define PCIE_ATU_FUNC(x)        FIELD_PREP(GENMASK(18, 16), x)

Parenthesis around (x)

> +
> +/* Register address builder */
> +#define PCIE_GET_ATU_OUTB_UNR_REG_OFFSET(region) \
> +    ((region) << 9)
> +
> +/*
> + * iATU Unroll-specific register definitions
> + * From 4.80 core version the address translation will be made by unroll
> + */
> +#define PCIE_ATU_UNR_REGION_CTRL1       0x00
> +#define PCIE_ATU_UNR_REGION_CTRL2       0x04
> +#define PCIE_ATU_UNR_LOWER_BASE         0x08
> +#define PCIE_ATU_UNR_UPPER_BASE         0x0C
> +#define PCIE_ATU_UNR_LOWER_LIMIT        0x10
> +#define PCIE_ATU_UNR_LOWER_TARGET       0x14
> +#define PCIE_ATU_UNR_UPPER_TARGET       0x18
> +#define PCIE_ATU_UNR_UPPER_LIMIT        0x20
> +
> +#define PCIE_ATU_FUNC_NUM(pf)           ((pf) << 20)
> +
> +/* Parameters for the waiting for iATU enabled routine */
> +#define LINK_WAIT_MAX_IATU_RETRIES      5
> +#define LINK_WAIT_IATU                  9
> +
> +struct dw_pcie_priv {
> +    uint32_t num_viewport;
> +    bool iatu_unroll_initilized;
> +    bool iatu_unroll_enabled;
> +    void __iomem *atu_base;
> +    unsigned int version;
> +};
> +
> +void dw_pcie_set_version(struct pci_host_bridge *bridge, unsigned int version);
> +
> +void __iomem *dw_pcie_child_map_bus(struct pci_host_bridge *bridge,
> +                                    pci_sbdf_t sbdf, uint32_t where);
> +
> +int dw_pcie_child_config_read(struct pci_host_bridge *bridge, pci_sbdf_t sbdf,
> +                              uint32_t reg, uint32_t len, uint32_t *value);
> +
> +int dw_pcie_child_config_write(struct pci_host_bridge *bridge, pci_sbdf_t sbdf,
> +                               uint32_t reg, uint32_t len, uint32_t value);
> +
> +bool __init dw_pcie_child_need_p2m_hwdom_mapping(struct domain *d,
> +                                                 struct pci_host_bridge *bridge,
> +                                                 uint64_t addr);
> +
> +struct pci_host_bridge *__init
> +dw_pcie_host_probe(struct dt_device_node *dev, const void *data,
> +                   const struct pci_ecam_ops *ops,
> +                   const struct pci_ecam_ops *child_ops);
> +#endif /* __PCI_DESIGNWARE_H__ */
> diff --git a/xen/arch/arm/pci/pci-host-rcar4.c b/xen/arch/arm/pci/pci-host-rcar4.c
> new file mode 100644
> index 0000000000..cae1b4254d
> --- /dev/null
> +++ b/xen/arch/arm/pci/pci-host-rcar4.c
> @@ -0,0 +1,103 @@
> +/*
> + * Based on Linux drivers/pci/controller/pci-host-common.c
> + * Based on Linux drivers/pci/controller/pci-host-generic.c
> + * Based on xen/arch/arm/pci/pci-host-generic.c
> + *
> + * 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.
> + *
> + * 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.
> + *
> + * 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/init.h>
> +#include <xen/pci.h>
> +
> +#include <asm/device.h>
> +#include <asm/io.h>
> +#include <asm/pci.h>
> +
> +#include "pci-designware.h"
> +
> +#define RCAR4_DWC_VERSION       0x520A
> +
> +/*
> + * PCI host bridges often have different ways to access the root and child
> + * bus config spaces:
> + *   "dbi"   : the aperture where root port's own configuration registers
> + *             are available.
> + *   "config": child's configuration space
> + *   "atu"   : iATU registers for DWC version 4.80 or later
> + */
> +static int __init rcar4_cfg_reg_index(struct dt_device_node *np)
> +{
> +    return dt_property_match_string(np, "reg-names", "dbi");
> +}
> +
> +static int __init rcar4_child_cfg_reg_index(struct dt_device_node *np)
> +{
> +    return dt_property_match_string(np, "reg-names", "config");
> +}
> +
> +/* ECAM ops */
> +const struct pci_ecam_ops rcar4_pcie_ops = {
> +    .bus_shift  = 20,
> +    .cfg_reg_index = rcar4_cfg_reg_index,
> +    .pci_ops    = {
> +        .map_bus                = pci_ecam_map_bus,
> +        .read                   = pci_generic_config_read,
> +        .write                  = pci_generic_config_write,
> +        .need_p2m_hwdom_mapping = pci_ecam_need_p2m_hwdom_mapping,
> +    }
> +};
> +
> +const struct pci_ecam_ops rcar4_pcie_child_ops = {
> +    .bus_shift  = 20,
> +    .cfg_reg_index = rcar4_child_cfg_reg_index,
> +    .pci_ops    = {
> +        .map_bus                = dw_pcie_child_map_bus,
> +        .read                   = dw_pcie_child_config_read,
> +        .write                  = dw_pcie_child_config_write,
> +        .need_p2m_hwdom_mapping = dw_pcie_child_need_p2m_hwdom_mapping,
> +    }
> +};
> +
> +static const struct dt_device_match __initconstrel rcar4_pcie_dt_match[] = {
> +    { .compatible = "renesas,r8a779f0-pcie" },
> +    { .compatible = "renesas,r8a779g0-pcie" },
> +    {},
> +};
> +
> +static int __init pci_host_generic_probe(struct dt_device_node *dev,
> +                                         const void *data)

It's not really a "generic" probe... How about naming the function
pci_host_rcar4_probe ?

> +{
> +    struct pci_host_bridge *bridge;
> +
> +    bridge = dw_pcie_host_probe(dev, data, &rcar4_pcie_ops,
> +                                &rcar4_pcie_child_ops);
> +
> +    dw_pcie_set_version(bridge, RCAR4_DWC_VERSION);
> +
> +    return 0;
> +}
> +
> +DT_DEVICE_START(pci_gen, "PCI HOST R-CAR GEN4", DEVICE_PCI_HOSTBRIDGE)
> +.dt_match = rcar4_pcie_dt_match,
> +.init = pci_host_generic_probe,
> +DT_DEVICE_END
> +
> +/*
> + * 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 Thu Apr 24 20:47:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Apr 2025 20:47:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.966884.1356939 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u83TO-0004nP-UY; Thu, 24 Apr 2025 20:47:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 966884.1356939; Thu, 24 Apr 2025 20: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 1u83TO-0004nI-Qv; Thu, 24 Apr 2025 20:47:06 +0000
Received: by outflank-mailman (input) for mailman id 966884;
 Thu, 24 Apr 2025 20:47: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=/3PA=XK=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u83TN-0004nC-K4
 for xen-devel@lists.xenproject.org; Thu, 24 Apr 2025 20:47:05 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on2060e.outbound.protection.outlook.com
 [2a01:111:f403:2414::60e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 42fb45d8-214d-11f0-9ffb-bf95429c2676;
 Thu, 24 Apr 2025 22:46:57 +0200 (CEST)
Received: from BN9PR03CA0776.namprd03.prod.outlook.com (2603:10b6:408:13a::31)
 by BL3PR12MB6641.namprd12.prod.outlook.com (2603:10b6:208:38d::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.27; Thu, 24 Apr
 2025 20:46:53 +0000
Received: from BN2PEPF000044A1.namprd02.prod.outlook.com
 (2603:10b6:408:13a:cafe::6a) by BN9PR03CA0776.outlook.office365.com
 (2603:10b6:408:13a::31) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.38 via Frontend Transport; Thu,
 24 Apr 2025 20:46:53 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BN2PEPF000044A1.mail.protection.outlook.com (10.167.243.152) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Thu, 24 Apr 2025 20:46:53 +0000
Received: from localhost (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; Thu, 24 Apr
 2025 15:46:52 -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: 42fb45d8-214d-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=LbHQEY8ACjTTe88iEHV/qzjaweHJ8xHwLjD2Mdji8D6yEqrEEYwvi4KOfZfdplVMBGqQNwsEBYyw+Zpzt9q91YZTKu4cveZTs2l7K57HopzoEXg294ezWywUDXCUQ0Kf3A1i1zIHNLc6rUblPdSF6P0Lu7ZJssI7tBJcx5O6xUCcyiNyOgSGDBRnffZkr1JdOktdupuUFM/O++NHdfEvGDj3gXsITmlvlzbVlV1wVNa/BBEeufOOktZdhJdPPDkCxrYkOkO/2oANDu7Tx+lI/tajA8aHvA7MGkikIOIAiNlbvvbsqHIjIGb3Kvc91hR3/aW4AKhZML57aW6eccPzaA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=s5wLGLa9O57B6pKujrrtL97gvvoXkboTf35Uj4Yn0gk=;
 b=T04835crzdlxe3UzymhzdvhNm2PJ1qcb/646l6Qcx5lzRIVpF6OsFr6fYBtKiN240MYr/GBDDQpctB6zxuzaA3EpqAkK3fOTLJu817yrG+Q2ZqaFVwpEOYbE0BhAicEewTyOaCCC07vH9CGTrmgBQum4dlHl+vsc4PpEwOLTW0hcTf1D431N0I3TkVMoYiQkhteeursLQpbQ9gInm7b+mu6U6ZiRSsFpuDSV42DC8PtYHSEFSLxYJ8WYZ3unLqRCCRaTc9xqSqb7rPlbC8AesY0XKe7LJUYOs7XiaUd3Wci20alKo5drWN/UVLkgzETcv3/Pqj9u01J4bfofHbGfkA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=ariadne.space 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=s5wLGLa9O57B6pKujrrtL97gvvoXkboTf35Uj4Yn0gk=;
 b=cLd00fjjg+ceqeWscW3Lwouspa9OqZgWDQw+p6MGZn3YHl2s/Q8vh2JA6KzscJwBMzIyDsnF2POpbRPR1cpaQvOnFnUV+/SukFKNSol7bqxDosJYqmsh+BDVoDVcIH7UvgGgbriNFs7hZq9i2dJrmlSamQ9lFi1uWGtey4PXXPo=
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
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Thu, 24 Apr 2025 21:46:50 +0100
Message-ID: <D9F5WA7ONX45.NTFNWPJS5MWU@amd.com>
To: Ariadne Conill <ariadne@ariadne.space>
CC: <xen-devel@lists.xenproject.org>, Jason Andryuk <jason.andryuk@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>, Paul Durrant
	<paul@xen.org>
Subject: Re: [PATCH] x86/hyperv: Adjust hypercall page placement
From: Alejandro Vallejo <agarciav@amd.com>
X-Mailer: aerc 0.20.1
References: <D9EWZF0G7QUZ.2IDV470T7SYD0@amd.com>
 <002DF04C-A250-4EAD-9834-FC07EFC9D562@ariadne.space>
In-Reply-To: <002DF04C-A250-4EAD-9834-FC07EFC9D562@ariadne.space>
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: BN2PEPF000044A1:EE_|BL3PR12MB6641:EE_
X-MS-Office365-Filtering-Correlation-Id: 1d6435bf-2622-4299-b8f3-08dd83712528
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?ZnVkWm5VZnp2SU05RFR1QUVXdTRVTGpDU21tMUY1SHhXcVFycTAvSGE5MDhW?=
 =?utf-8?B?S3ZySHpPWnZidVNyZXd0Qzk3K2g4MktaQWxpVThtVjVZMkE4SEg0UDFDeFhG?=
 =?utf-8?B?MGZkd1doWFovSXA1L1F6eVhYWWZTUGZtSjdFK2NUUFNkdkV3WFdGZnVXUXBC?=
 =?utf-8?B?ZTdHK0hkSHNQdjh5eGtsTkFEc2h4WWVnMFpmdGNqVklaTUdWQ0kzU2UvQkRE?=
 =?utf-8?B?eW13YlNwb1dXTkhzTXJSaHVSUUlrL3VabnN2bmxUOENiNHhsTG1HRm9IOHU0?=
 =?utf-8?B?WC9MejB6QUpnRS9NZDBkWFlyWDl5Q0dNYmhydVBhdmJpWDJWaU1MdU9LcENp?=
 =?utf-8?B?eXlEOTJHTmFHK0s1dUhrMmF2ZTM2ZHl2WXJDK1BFL21GYitrS0EzLzlpQkN1?=
 =?utf-8?B?TWpPYTZmUFZVTTAxTG9wZVpEMExWZUdRRHZHZG1uV3ZhNERPNnZyVUF3ZEx4?=
 =?utf-8?B?ZlBENXUyTFBGZlJHNklybGc2MFNMVzl2M29nY293YVYzOXkxM0UxbVh4dHdo?=
 =?utf-8?B?N3hrOW9LcWYvU0Z4aHY0OTZtWHRPSmFEZDgzVWxEYWJjN0k3d01ZTG9ITlBr?=
 =?utf-8?B?QU9mMGlMd3JjK1I2RllxUDhad2ZxK0c3K2wxM0lsT1N0WHl1eVVrQVNpZGZP?=
 =?utf-8?B?U3hSaUFqRkZmVGM4OHZ2bC9xZzhDQUduY0I0RlpJUytEaXdxUThMWlNoKzlK?=
 =?utf-8?B?MUk3SythWDF0OTNwYnZTYTNacTM2djNVS2drbG1peVVpa0ZYWTB3N0hrRnY2?=
 =?utf-8?B?THpkTkxVZmZUUXhQN0RIaUE4SkFLKzBPaCtCSlltZnkyZGNUNHVkbjRnbUox?=
 =?utf-8?B?VlJlTnlWdkFFem10eU93RC9wNGpMZXdGNVg0NHk5TElHdmhxMDN2RlBsdXRs?=
 =?utf-8?B?UlN5alVkVWhNMDN0RnJxQTM1QVF4QzkrVnBZdGhieFVxK0w4R1FxMFZNKzRu?=
 =?utf-8?B?eS9LMTJnL1BoYldZUHpHeXFpSmMzUmh6WFord2pybm1zbVMzWDQrL3RiMzcv?=
 =?utf-8?B?RnhlTmk5M3JYYUZwT2IwZ3BnYjQxbkVDSGsveHRNeWxVLzM0TzUyM09LYXF0?=
 =?utf-8?B?aUhoelk3eVl4Rms5TFEvRE1WVTV6VE0wRjZkdnd4TkhKbjBKZDFuQWhmOXdz?=
 =?utf-8?B?Z1Q5elFTZmgyWG5GcnZ0MWpiQkIyekdIS2RXbm4wYUU2Zm4zQ3VlcTRHZlZP?=
 =?utf-8?B?T0JqVStaSkJtamRYRnVoVG14c1NuNEYxUGwzU2xkTkx5QTB5Mkd1cUZSc091?=
 =?utf-8?B?Z3JjUDVRRW84K1Mva21SaXJKc0VWOFBQNERWV25malJ4RkZ1ZHVuNlFaazZ1?=
 =?utf-8?B?cHdJc3JSY05ieGdtWmFwSEdWQlVRRHcvdGRBMWVINVVucGk1Z0Q4dHJydkFx?=
 =?utf-8?B?ZHFzSFRrQ25tUGxwTHpmU2d1bDVJaTY5YW1wbGpqMmUwSGNhQVNScU51akNv?=
 =?utf-8?B?U1FYZGNpNjR1bFdlakhLRXJwZnhOU0JlcDRGM25wWE9BdFVrRTV6S0RIM1J3?=
 =?utf-8?B?YVZHY1RFbmtxeVJmR1c4UkZtU3hIN0l2TjEyeTRnaExZVFFsVTAzNEhnVjV3?=
 =?utf-8?B?MnBsM2xuWmdHVDhqRnN6L1BDTjRhYXlVN0w1TnJuaWtnb0taNGdQR0dHSDdQ?=
 =?utf-8?B?WW5oWlVSaGpBM3ErQmMzRGcxd2lnOGk1Y2pheTd4RVQxalowTlltYzRuNEFw?=
 =?utf-8?B?NU41SE5Rek53cm10VDdSK01KMXg2a21Gcy95clVvSjBxa1NKYzF2ak50NnBJ?=
 =?utf-8?B?WjFiU0F4aHNNUXNzRUY1eWRBTmdOWk9PQnpQQzBjcmMvUTZ6bFJncXE2M3BE?=
 =?utf-8?B?dmcrUjZKOEtMbWM0dFpDdzFHcHpreElsQ3BOeVdDemJ4eFA2UkJLVFk2VE1K?=
 =?utf-8?B?V2UyTmU2ZWErRVZNWnQ1TFl3SlhqeFE2cEY2TzVkL1kvSkEzZGZFNmlDU1dw?=
 =?utf-8?B?Z1NZNkdBN000VWxnTUVDSW1CN3ZUc3VkenhmSVlORlZMMll4d2pxL24wRHp0?=
 =?utf-8?B?SlNOSEhnMVVoYy8yTDE0M2lpTWlVTTYrQ3dMdHc4dExDdm42ZHorZ2VhaEVY?=
 =?utf-8?Q?9p+iUo?=
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)(1800799024)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Apr 2025 20:46:53.4000
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 1d6435bf-2622-4299-b8f3-08dd83712528
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:
	BN2PEPF000044A1.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL3PR12MB6641

On Thu Apr 24, 2025 at 7:22 PM BST, Ariadne Conill wrote:
> Hi,
>
>> On Apr 24, 2025, at 6:48=E2=80=AFAM, Alejandro Vallejo <agarciav@amd.com=
> wrote:
>>=20
>> =EF=BB=BFOn Thu Apr 24, 2025 at 1:45 PM BST, Alejandro Vallejo wrote:
>>> Xen nowadays crashes under some Hyper-V configurations when
>>> paddr_bits>36. At the 44bit boundary we reach an edge case in which the
>>> end of the guest physical address space is not representable using 32bi=
t
>>> MFNs. Furthermore, it's an act of faith that the tail of the physical
>>> address space has no reserved regions already.
>>>=20
>>> This commit uses the first unused MFN rather than the last, thus
>>> ensuring the hypercall page placement is more resilient against such
>>> corner cases.
>>>=20
>>> While at this, add an extra BUG_ON() to explicitly test for the
>>> hypercall page being correctly set, and mark hcall_page_ready as
>>> __ro_after_init.
>>>=20
>>> Fixes: 620fc734f854("x86/hyperv: setup hypercall page")
>>> Signed-off-by: Alejandro Vallejo <agarciav@amd.com>
>>=20
>> After a side discussion, this seems on the unsafe side of things due to
>> potential collision with MMIO. I'll resend (though not today) with the
>> page overlapping a RAM page instead. Possibly the last page of actual
>> RAM.
>
> We have been working on bringing Xen up on Azure over at Edera, and
> have encountered this problem.  Our solution to this problem was to
> change Xen to handle the hypercall trampoline page in the same way as
> Linux: dynamically allocating a page from the heap and then marking it
> as executable.
>
> This approach should avoid the issues with MMIO and page overlaps.

Yes, that's what I meant by overlapping RAM. Overlaying the hypercall
page on top of existing RAM rather than trying to find a suitable hole.

> Would it be more interesting to start with our patch instead?

If you have it ready to go, for sure. My ability to test any of this is
fairly limited. I suspect the VM is just not getting 48 bits worth of
guest-physical address space, and so making any hypercall turns into an
EPT violation.

I couldn't run the tests that would definitely prove it though

>From the little I saw of the dmesg going forward, I suspect there's more
required (at least in time handling) to enable support in gen2
insteances.

Cheers,
Alejandro



From xen-devel-bounces@lists.xenproject.org Thu Apr 24 21:15:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Apr 2025 21:15:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.966901.1356948 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u83uX-00017a-Uv; Thu, 24 Apr 2025 21:15:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 966901.1356948; Thu, 24 Apr 2025 21:15:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u83uX-00017T-S0; Thu, 24 Apr 2025 21:15:09 +0000
Received: by outflank-mailman (input) for mailman id 966901;
 Thu, 24 Apr 2025 21:15: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=vyxV=XK=zytor.com=hpa@srs-se1.protection.inumbo.net>)
 id 1u83uV-00017N-VV
 for xen-devel@lists.xenproject.org; Thu, 24 Apr 2025 21:15:08 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 30571546-2151-11f0-9ffb-bf95429c2676;
 Thu, 24 Apr 2025 23:15:05 +0200 (CEST)
Received: from [127.0.0.1] ([76.133.66.138]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53OLEFGV1614013
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NO);
 Thu, 24 Apr 2025 14:14:15 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 30571546-2151-11f0-9ffb-bf95429c2676
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53OLEFGV1614013
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745529257;
	bh=fbePqpXsVBFA3b05CfQZoudDssWCQj14Vtwe8+dAbac=;
	h=Date:From:To:CC:Subject:In-Reply-To:References:From;
	b=b2EYzYodyQjJ1ivIsEmkKH2t2+MFFTbYKTMXxiq4ngho+EPg7RDeSa2QY0zU3k7I6
	 RN61uEVxuOFyhUwF3mAy8cHv6Z4FYf2CxBcMEmWvdr2DQUvRfPzZM/iNJ2SaZGkcbi
	 UDaP7PXrKVnNJgW3SRLPxFD1BMbGSjssSS7c0i84j+8Jm8fWDnoENz8P5a1Jd5X9AE
	 YeKJLfs/prqdFpmvrMCTt4Lf9g4iZhNiXh9GJorxSh8b9JQoVphIe+5AyBQlhioJ6S
	 KAYln5qQrQumWrckqE9SV5vLlM+oXOd+2n91sqkeXt69I3byDARDpBKA8HfhZxu6f+
	 76vUr76BOVI7A==
Date: Thu, 24 Apr 2025 14:14:12 -0700
From: "H. Peter Anvin" <hpa@zytor.com>
To: Xin Li <xin@zytor.com>, =?ISO-8859-1?Q?J=FCrgen_Gro=DF?= <jgross@suse.com>,
        linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
        linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
        netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org
CC: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, acme@kernel.org,
        andrew.cooper3@citrix.com, peterz@infradead.org, namhyung@kernel.org,
        mark.rutland@arm.com, alexander.shishkin@linux.intel.com,
        jolsa@kernel.org, irogers@google.com, adrian.hunter@intel.com,
        kan.liang@linux.intel.com, wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com
Subject: Re: [RFC PATCH v2 12/34] x86/msr: Remove pmu_msr_{read,write}()
User-Agent: K-9 Mail for Android
In-Reply-To: <ca088501-2fbe-4a32-b191-04f7be6a2713@zytor.com>
References: <20250422082216.1954310-1-xin@zytor.com> <20250422082216.1954310-13-xin@zytor.com> <8944b510-6d70-472c-99a2-52a60517733d@suse.com> <ca088501-2fbe-4a32-b191-04f7be6a2713@zytor.com>
Message-ID: <018705C7-35CF-406A-85DA-360FF7BCB072@zytor.com>
MIME-Version: 1.0
Content-Type: text/plain;
 charset=utf-8
Content-Transfer-Encoding: quoted-printable

On April 24, 2025 10:49:59 AM PDT, Xin Li <xin@zytor=2Ecom> wrote:
>On 4/24/2025 3:05 AM, J=C3=BCrgen Gro=C3=9F wrote:
>>=20
>> May I suggest to get rid of the "emul" parameter of pmu_msr_chk_emulate=
d()?
>> It has no real value, as pmu_msr_chk_emulated() could easily return fal=
se in
>> the cases where it would set *emul to false=2E
>
>Good idea!
>
>The function type is a bit of weird but I didn't think of change it=2E

It is weird in the extreme=2E=20

By the way, this patch should have "xen" in its subject tag=2E


From xen-devel-bounces@lists.xenproject.org Thu Apr 24 21:19:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Apr 2025 21:19:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.966911.1356959 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u83yx-0001h5-Em; Thu, 24 Apr 2025 21:19:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 966911.1356959; Thu, 24 Apr 2025 21: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 1u83yx-0001gy-CB; Thu, 24 Apr 2025 21:19:43 +0000
Received: by outflank-mailman (input) for mailman id 966911;
 Thu, 24 Apr 2025 21: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=s25R=XK=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1u83yw-0001gs-6x
 for xen-devel@lists.xenproject.org; Thu, 24 Apr 2025 21:19:42 +0000
Received: from NAM11-CO1-obe.outbound.protection.outlook.com
 (mail-co1nam11on20609.outbound.protection.outlook.com
 [2a01:111:f403:2416::609])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d3ce8b01-2151-11f0-9ffb-bf95429c2676;
 Thu, 24 Apr 2025 23:19:39 +0200 (CEST)
Received: from MN2PR01CA0061.prod.exchangelabs.com (2603:10b6:208:23f::30) by
 DM4PR12MB6590.namprd12.prod.outlook.com (2603:10b6:8:8f::11) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.8678.24; Thu, 24 Apr 2025 21:19:33 +0000
Received: from BL6PEPF00020E66.namprd04.prod.outlook.com
 (2603:10b6:208:23f:cafe::7d) by MN2PR01CA0061.outlook.office365.com
 (2603:10b6:208:23f::30) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.36 via Frontend Transport; Thu,
 24 Apr 2025 21:19:10 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BL6PEPF00020E66.mail.protection.outlook.com (10.167.249.27) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Thu, 24 Apr 2025 21:19:33 +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, 24 Apr
 2025 16:19:32 -0500
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, 24 Apr
 2025 16:19:32 -0500
Received: from [172.21.185.2] (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, 24 Apr 2025 16:19:30 -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: d3ce8b01-2151-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=UENmW8cwfIPIEJJz/UYVMKoDdK7YgINTXU58Xt6XWzZC/xyGXj02DM9a2cbBGbXeApMKZ26ZlaTDDa8zl+MgkfXzCgnUVTq8zb+3oCTRGxX+GnG3AV5ntd/tUu0k4OQGmPpAeJTtLWJNEa0FhJM5H85TiDpTZtsI9hzEt3TjMjgv3t3PnZXhVc9X9F7z2vRsEeQoTNGOJDMZsn38o0RWvEiLQqo08HylWyp4kotsW2zMd1zTi4Y5dmAntfWKcoSU3J82yydxgxMVkrskoKtfshsJBz9K+XtxuPAUJsW6u3LDvIf1gmg72rbKlCWlVoqCfbHlXPyll6KDzz6qG4DpoQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=XObGseISFbDn3fLKRyp6gaJLyL8FnL/Cemzvlv9SZYU=;
 b=F/rQX1LQQjmUFtTG6xmsXSut1s7NxGWyQwkwzYavAASUv/O7hroScMrjfonhVC1wP3pdG+icHMMc7qRnZbF2xVboVno3NH3JM8Q2TBO7NXTmI+J9Y0c5N9TDRgrl5fhlh/YVrbOdgBv/rM79YjRVj4Mo0u1YVV/YVgFC1n4Nt/mw059yzHvQpijf93LbzcOs5RawZ8m/q5DH+CwrWqxudrgW+cwjtwWJ83woFJu6ffyJpfp2brGI0TfAofloGO+vnyr1iEe7QCnRkTrnV84BFyA9SZwv/yCRnj1zC02DwSrwDPQAfCf8auW/cUPiF9A32SAv6kU4j3khizNW+pb9Vg==
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=XObGseISFbDn3fLKRyp6gaJLyL8FnL/Cemzvlv9SZYU=;
 b=kbUwB47JZBBwqi6yJEGEewspuv0vz+vs6W+6+Iej2CswTKHR3RS84/U5VlBPfXT2pzYWni2BWDXipk9eq2TVhJDLy5j9yiLZY9jn8CNrmQISLkyuAMzv1I8wRD94kJcWynfXzYv/MCTTh6268rWinDCZhD5t3U1piyc2E4G6M0k=
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: <775d3ac0-8f43-415a-a32d-14377092b96b@amd.com>
Date: Thu, 24 Apr 2025 17:19:32 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC] xen/x86: allow overlaps with non-RAM regions
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
	=?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
CC: "Lira, Victor M" <VictorM.Lira@amd.com>, Stefano Stabellini
	<sstabellini@kernel.org>, <xen-devel@lists.xenproject.org>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>,
	<Xenia.Ragiadakou@amd.com>, <Alejandro.GarciaVallejo@amd.com>
References: <alpine.DEB.2.22.394.2504031755440.3529306@ubuntu-linux-20-04-desktop>
 <Z--0USril0UIhR4R@macbook.lan> <3c5dfd26-3c12-498b-aca4-0beac4e991a5@amd.com>
 <Z_jFSb2-efexUNlL@macbook.lan> <9ed89e50-c645-407d-80b4-5b78cb6e36fa@amd.com>
 <Z_zGdE91KwlYxu_A@macbook.lan> <ce06ec74-1a73-4a02-87fc-3e829399cc77@amd.com>
 <aAnvRMgJxAskbCtE@macbook.lan> <aAoPNTsLjMMfsHvJ@mail-itl>
 <aAoW-kvpsWuPJwrC@macbook.lan>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <aAoW-kvpsWuPJwrC@macbook.lan>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL6PEPF00020E66:EE_|DM4PR12MB6590:EE_
X-MS-Office365-Filtering-Correlation-Id: bd70f95d-41ed-4948-0f0d-08dd8375b55c
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?NXpDb3VXRzAvUzd0a1d3Zk02MVFRb1MxRWlqKytabVgzWlM5Tm5yeWZCSFZy?=
 =?utf-8?B?bmd0Tkc2bzhhdXlsZVVIcVJ5eEk3MWlsSENoTHM1NlRielBuU2JFblNEVVZk?=
 =?utf-8?B?ODRRZk1xUjJnS1orSkp5UFFpdG9QbjdUcGgybzZnRitlMElZNzFuclVuNTlX?=
 =?utf-8?B?V2dyZ0d2RmN3TTByQk4rV3ZNSCtvMGdZMGEzMVZNNS9uVU9sWUQ1Nm16OW9h?=
 =?utf-8?B?N3luUnNXS0hHL3g2bTJYT3J5bTBqMExuaXpmU0hFN1NNWWdRcWtvc1grRzB2?=
 =?utf-8?B?UkpBRkdzWTRuRTJRaUduZXN4V2tnTVdEQWJSV0VMVkdEcFpwVnQzcDNoN0xQ?=
 =?utf-8?B?UnNnc0dpSWx0MHlxWmtTRUNvZzhDcllkUVBzSzRPa0lWSDhnMktINXNrRzFy?=
 =?utf-8?B?cDkvcFh2Ti96dVdjQk82MUx6T0kzV09zS1h1OTN4SEhsakcvaEdxVjdERzlJ?=
 =?utf-8?B?dkVyTjJ0OGJsRzJCeTVtbFNQbVBiQjByQ3F3dStKdzJlaXVjYkRKajBPb1Z5?=
 =?utf-8?B?SHNtdzd6ZVFpS3NsTzdWMm90RCtqN1pESEJ5bEk2azRUOEhDY2pXa1UzUWoz?=
 =?utf-8?B?RmVDMnMxOHJYcVpBMWljU05kRzRURmNzenRqZUJCZGJBcStBVlFiVlBvM1kx?=
 =?utf-8?B?Q3pLaGtRL1luYUlnMWNEcTJWU3E2SkpmYURsOUNFaHJDQ29JamFUNFNqMUdY?=
 =?utf-8?B?Ym9rbXlKVFdwYXQ5R1hRSUJybmNtelRldkhrcmJBdEE1UnpPbGZiNHRBTlZz?=
 =?utf-8?B?STBER09NL0pOMDBjb1VtMktOb2NydEJlZXE4ckFSbTZ4NCsrUjhVWTB6R0t6?=
 =?utf-8?B?VnRKR2h1aGl5VlpDK3ZOUExHS2hJUHQvTHpIbmszdzl6cWpWUG1ucHBrMmtD?=
 =?utf-8?B?LzlBMDdWaGJDUFJmMVpncDQyQ1dGenNEVUl5bkFVUGlxKzU4aE5HR2cvdGhG?=
 =?utf-8?B?M3JjeFlDckVoWkZuc0F4ZWRxcXRBRjU3bkZKcWFrVW1CNGxHWElkNG8yOWFo?=
 =?utf-8?B?NjRCYmNtOUtHN09aMWk4MmI2L2ljUCtDeDZLNHcvNVoxaG9ZaTZGdW0wSmxw?=
 =?utf-8?B?NmdrbkVSTnBtd09GS3lSM2FZaTl3RVZPUE53Zm9UdGtXeVgyY2lIamFUSEJw?=
 =?utf-8?B?R3JvUyt6d3BTMkdoYkxJbXFCTjRESjZpcmkzek8wdG8zRUgyMDVUNzVtQ1ZH?=
 =?utf-8?B?US9HTnJsUEdJeWRGQzBzem1UbW02OTVyWktyZ2lMekJoNk96b3ZrNlZXaEhG?=
 =?utf-8?B?S3pyR2cwanR5VS9kSkpuaW16QTJoSVg0ZWlQOGZIaTRNZ2J2bFJ1YzRuR0lx?=
 =?utf-8?B?Q1BsZFg4L3pOcm55a2R4SUtTclU1NWwyQWt0dHI0a2xCR2VqL2ZFYnNTQ0J0?=
 =?utf-8?B?eVUxekVwSFVMWmNPTFYzTEY3TWVGai94bFowR3JhdExleGpDb2V1ZklQaGxL?=
 =?utf-8?B?WTBVVHR0MG9EV1h6WjhNUS95enpmNFNkQzdNS0tmc1MxUlVxVUtxOHYyenVN?=
 =?utf-8?B?WU1PU283UkRsbzA5V0hPVXY5Y1RYR3dUbURMemM5ckhpWk8vNkJqYzgvT2k5?=
 =?utf-8?B?TENFeE1lUU5lVlNxWDhDY2g5aC9sKzVNSVpBbHYySzVGRDUrbkt5RkdjeXFq?=
 =?utf-8?B?Mkw4ZlRGNDNlUFE3bHEzamJmbFV0KytLNS9oeFZwZmpmczRMV1Q4d0hnSzhV?=
 =?utf-8?B?NWtLL2NYZzlRUk5ENmRZNCtmWE9pT0Fnd1JKQjdTZWM4YXJ3NWJBOWxkNzJP?=
 =?utf-8?B?aklsZVFndTQ0ZWhkVDRwckJ4ckVsZjdGZlBuQXdna2w4ZGhQODNFZE5jdEJy?=
 =?utf-8?B?SGNuSnJDL3BBcXhLRTd2RlVVVTdaanBYa2V5UTBSRkQrQkt6dXBWS2I3aldq?=
 =?utf-8?B?cTNRNWRGNUF3MmNSRFBWTTlwcTBKSHRYanZUN3BJWDRoT1IwL05hbHlqMVNZ?=
 =?utf-8?B?NUFxNzUzTEtJVzA5T1FKeUsxa1gwTVpKbDF3Uk11ZzdXcjdPKytmVWs4bUFk?=
 =?utf-8?B?N2pmMEVwdlI4WFR1OTVSQWY4ckNyTHBxUzJkMzUrclFwbktRYWlNUENOR2x6?=
 =?utf-8?Q?UKjSln?=
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: 24 Apr 2025 21:19:33.3131
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: bd70f95d-41ed-4948-0f0d-08dd8375b55c
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:
	BL6PEPF00020E66.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB6590

On 2025-04-24 06:48, Roger Pau Monné wrote:
> On Thu, Apr 24, 2025 at 12:15:17PM +0200, Marek Marczykowski-Górecki wrote:
>> On Thu, Apr 24, 2025 at 09:59:00AM +0200, Roger Pau Monné wrote:
>>> On Wed, Apr 23, 2025 at 04:51:16PM -0700, Lira, Victor M wrote:
>>>> [    4.570354] Intel(R) 2.5G Ethernet Linux Driver
>>>>
>>>> [    4.579535] Copyright(c) 2018 Intel Corporation.
>>>>
>>>> [    4.588898] sky2: driver version 1.30
>>>>
>>>> (XEN) [   21.644361] d0v3 unable to fixup memory read from 0xfe91000c size 4: -1
>>>
>>> This fault is unexpected, according to the identity mappings done at
>>> domain build time:
>>>
>>> d0: identity mappings for IOMMU:
>>>   [00000000a0, 00000000ff] RW
>>>   [0000009bff, 0000009fff] RW
>>>   [00000cabc9, 00000cc14c] RW
>>>   [00000cc389, 00000cc389] RW
>>>   [00000cc70a, 00000cd1fe] RW
>>>   [00000ce000, 00000cffff] RW
>>>   [00000fd000, 00000fd2ff] RW
>>>
>>> The page at 0xfe910 should be covered by the last range above.  I
>>> think we have a bug somewhere that unexpectedly unmaps that address.
>>
>> You sure? 0xfe910 is outside of [00000fd000, 00000fd2ff].
> 
> Oh, did and off-by-one when copying, it should have been:
> 
> d0: identity mappings for IOMMU:
>   [00000000a0, 00000000ff] RW
>   [0000009bff, 0000009fff] RW
>   [00000cabc9, 00000cc14c] RW
>   [00000cc389, 00000cc389] RW
>   [00000cc70a, 00000cd1fe] RW	
>   [00000ce000, 00000cffff] RW
>   [00000fd000, 00000fd2ff] RW
>   [00000fd304, 00000febff] RW
> 
> Where 0xfe910 is covered by the last range.

This looks like it's okay.  You think the somehow the device ranges are 
unmapped?

I thought the immediate issue is that the e820 marks these addresses 
reserved.  That leads to pci_check_bars()->is_memory_hole() returning 
false.  Stefano's original patch just returned true for non-RAM memory 
regions and the device worked.  That would leave bar->mem rangeset 
empty, IIUC.  Not sure how that would remove mappings though.

That also changes the setting of bar->enabled, but I don't immediately 
see how that affects mappings.

Regards,
Jason


From xen-devel-bounces@lists.xenproject.org Thu Apr 24 21:23:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Apr 2025 21:23:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.966922.1356968 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u842j-0003Y3-Th; Thu, 24 Apr 2025 21:23:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 966922.1356968; Thu, 24 Apr 2025 21:23: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 1u842j-0003Xw-Qw; Thu, 24 Apr 2025 21:23:37 +0000
Received: by outflank-mailman (input) for mailman id 966922;
 Thu, 24 Apr 2025 21:23: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=s25R=XK=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1u842i-0003Xq-P1
 for xen-devel@lists.xenproject.org; Thu, 24 Apr 2025 21:23:36 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on20621.outbound.protection.outlook.com
 [2a01:111:f403:2418::621])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5fe9a041-2152-11f0-9eb2-5ba50f476ded;
 Thu, 24 Apr 2025 23:23:33 +0200 (CEST)
Received: from BL1P221CA0028.NAMP221.PROD.OUTLOOK.COM (2603:10b6:208:2c5::18)
 by DM4PR12MB8449.namprd12.prod.outlook.com (2603:10b6:8:17f::19) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.27; Thu, 24 Apr
 2025 21:23:27 +0000
Received: from BL6PEPF00020E60.namprd04.prod.outlook.com
 (2603:10b6:208:2c5:cafe::8a) by BL1P221CA0028.outlook.office365.com
 (2603:10b6:208:2c5::18) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.36 via Frontend Transport; Thu,
 24 Apr 2025 21:23:27 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BL6PEPF00020E60.mail.protection.outlook.com (10.167.249.21) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Thu, 24 Apr 2025 21:23:27 +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, 24 Apr
 2025 16:23:27 -0500
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; Thu, 24 Apr
 2025 16:23:26 -0500
Received: from fedora.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; Thu, 24 Apr 2025 16:23:26 -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: 5fe9a041-2152-11f0-9eb2-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=OnOJckFFF+o7Rh1Y5RZFqUpHq8gChVwkaCsjuIlCTvC7tpWDO3i0LEEhTwotkGF23lW61afK+j36N2Bsb0iPt2zRBVV/mTMRnCuwvH4m2EBJbLt93ya2Q3zRqLquVD4IFjqSU/fdaZqeUtok9duXG1tjxcLcIVU3ZMNWynkgtPBelfyreCm/M9ObhoUVDVWqkZqEKwQ3/JNI7sCVXzdcHo8gi7DZ1VwZMmvXSltpFx8GpCXUKZXSTDy7qFf5QIPaiJdK6WddZ0LGdI9lqO/mPPWmOwyyhH6D8VpIlagXT2w0Oze/aIo0XeFgQDUWvsP7Y8j+Gd3RzjADcYBlHY8Adw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=9n+bNQDT/oPUTcJYcm2pOLXgc4BFunl53RhuAfD3QkI=;
 b=CqWsQYBAUoCXfYljvWOTedCo+Ti1LuhyQELlPjKezlKeqat0Xm+sfF/ZoiIiTwzKx9HLplT3K5vMjqhACjZ8j4keOiO8QmQ8ybOal+AYLojYy0VT29qiq7JGBGvQDCv6FfSR4IUu0eVnGC3DNPC/4vTvnYl5OnRTYm4+jpHXtRrnQSwS7WOZLvDCsBicBQ8X8qMXZFX5Qs/gL6vu/4isIZZzeQx/3Zzx5fVtpU2ZH55JqoyfQ3UM/gkSOPTgI0EfOEFtGlfsr0wbc8VH6LNvX/E+J4BrZzMnV3KdkRJB3zlolDgFpjvpDuNVQh8f9lLSNCjN6sSKLq6IkfjmyMLqKw==
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=9n+bNQDT/oPUTcJYcm2pOLXgc4BFunl53RhuAfD3QkI=;
 b=OlJUXhEVlx3XMjKQEMrjRZQ0BGFctwT3uixaaCjMf6YKtR6DnUK1JB5a2OMGTWuO5XUqlJiH5iR3Epg+YJYxFQ5OXiExYqMyMijPo29TLwTzHiWg+6brdpcc3Zd0YzU9dzsCwkuVqOB2bkIvguM0srd33Qb2bqrjQzJu45ytlS4=
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>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v2] xen/vpci: Fix msix existing mapping printk
Date: Thu, 24 Apr 2025 17:23:26 -0400
Message-ID: <20250424212326.151403-1-jason.andryuk@amd.com>
X-Mailer: git-send-email 2.49.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL6PEPF00020E60:EE_|DM4PR12MB8449:EE_
X-MS-Office365-Filtering-Correlation-Id: 25ef4734-a6ae-48e5-6495-08dd837640c9
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?oyq/J74wXKCrOm6aPVt/vqy2I6KV43ZG3iNSTUJAUmFD+qQ822VSP/tg1CC/?=
 =?us-ascii?Q?Hzk95peR4vrdzvF5HynQkvOt+CauCTuxZPa/HH/tDSFLP7dGovcH6C97SJ1V?=
 =?us-ascii?Q?0+F1HSIsbvH+D86s2fwUW9AwjHYLT2rNznGvv3h/bsSwycY8iBOzIPwJ2Guo?=
 =?us-ascii?Q?oWIyNkaLpkJ7z3KUZpPcvCZtQ8xqOA8NwT/UB8cAxlIj6d/yRhj/dWiQtl/G?=
 =?us-ascii?Q?kPyqN5KSHdGXM+EtyhtZMgcdScqe3XrEV/FtYvZ4B7X+T5f5JeXLDMCH/d7g?=
 =?us-ascii?Q?Fm0EhFxOaiizoiwwbiEYlamFHNLmpXd6mlrf8rfG4W7qtdgXJ86hD+/MgZcI?=
 =?us-ascii?Q?+jwL3QJI8ls9bvYIzJSQwZOQdduWOLPNLUT/BwTjiufMVUvRjFumkzLYHxOk?=
 =?us-ascii?Q?ecZu2mZYM0TePOVnO2gIXz5tPWvExIY381CqQlaq9Mv1XQ4xzDWb6CLIUj6E?=
 =?us-ascii?Q?36rKZ56J89xhWpUMsgxm0X3/WuJgXdSJf/CzE6xaNhV8Ya67JvMPu3aFNES3?=
 =?us-ascii?Q?m1440FTft4mvo+olRO9LvedRygCqceNRn6LQxzll3CdfTQCa0laXVpdBR8Zy?=
 =?us-ascii?Q?kda2xd6AMEOo52Dv1pe77tzPIZsxo1j/eVBQ2WmxlK19vYq7tvRN2KISfhQ1?=
 =?us-ascii?Q?Ks6HYcgRsval2rmGMRiMdiDzyXWCMtBYKV3XxSaQCwfeFhwusCIWzDmbBXdV?=
 =?us-ascii?Q?Vm5Fx8fdFxDXrxzpgDbhPMdkTLJSBAFBwUf3Ra6cRfBpirpYCc4ebX+yN+Ci?=
 =?us-ascii?Q?hmXquQ5O5HNHIPDDvwv459+2BrZeTzNZRLBL7W9y9J/EMPCr0ZcvMFoW5iYC?=
 =?us-ascii?Q?AFbG2hH7sr2qX0cgSfK3pdWObiVrQ4LaSNTQY01wFfnP3u5sN25bqnESv74D?=
 =?us-ascii?Q?cJwav/2r8MuLvKxm5H7VYgYtWL8rCQeHl66cz+C9E7kvyZf85ld1ZuaJDbNS?=
 =?us-ascii?Q?BKaCtyYJysRADnHrbuffqIB6oSVLOGtobKP0IswY2e566uGXKNfj8rrhXaRS?=
 =?us-ascii?Q?eslqAywLr3/zPA3zEUPE2cp1T5saLdVEe+g6i7frwPo0QiJGv5l2IBjpWqAB?=
 =?us-ascii?Q?BN0Ajh8dHohBQS9sG4/qAu1J32MvnRa1pyBcrOr1Nf7cjSj5UuNA34JsEC0Q?=
 =?us-ascii?Q?2qhuWjqExpn4dYU2lP8nnewVRpat07G/HqJqmNKwNaFoJN781h8GYZsFIeM7?=
 =?us-ascii?Q?8PslEI7qJyBSFYipx9SsHoKcJ4KBiVfRbnpcdSAJienIZrbJ1kv9O121MK3W?=
 =?us-ascii?Q?NkH8iHHXxPfV2Gs+Hz1regTwAETw1hhqd2LgftiX9gyqn1pzjGjF4tt6OLa7?=
 =?us-ascii?Q?C6UhPq5LZ/sMvnwYJ3C49kNcOgq1ZZAjrZYX0mILcl5XZIi2ZpcbFArsgulU?=
 =?us-ascii?Q?by/xf/fh4M9cCfFgBL0ChCnc8KRjl4UihayaVKyK5qP5fHtqPP6GYGIjKc8F?=
 =?us-ascii?Q?wfjqv0QdX1If7zn7qURYF+3wTfq4cssVw3ygc5tIOavcmbsHrpxPjz7pvvH+?=
 =?us-ascii?Q?w2qoM/feImgXS250MLOhUDBzgERFGffWLlVu?=
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)(82310400026)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Apr 2025 21:23:27.2485
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 25ef4734-a6ae-48e5-6495-08dd837640c9
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:
	BL6PEPF00020E60.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB8449

The format string lacks a space, so mfn and type run together:
(XEN) d0v0 0000:06:00.7: existing mapping (mfn: 753037type: 0) at 0x1 clobbers MSIX MMIO area

Add a space.  Additionally, move the format string to a single long line
to improve grep-ability.

Fixes: 677053fac17a ("vpci/msix: carve p2m hole for MSIX MMIO regions")
Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
---
v2:
Use a single line
Add Fixes
---
 xen/drivers/vpci/msix.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/xen/drivers/vpci/msix.c b/xen/drivers/vpci/msix.c
index f3804ce047..3568f2a651 100644
--- a/xen/drivers/vpci/msix.c
+++ b/xen/drivers/vpci/msix.c
@@ -665,8 +665,7 @@ int vpci_make_msix_hole(const struct pci_dev *pdev)
             default:
                 put_gfn(d, start);
                 gprintk(XENLOG_WARNING,
-                        "%pp: existing mapping (mfn: %" PRI_mfn
-                        "type: %d) at %#lx clobbers MSIX MMIO area\n",
+                        "%pp: existing mapping (mfn: %" PRI_mfn " type: %d) at %#lx clobbers MSIX MMIO area\n",
                         &pdev->sbdf, mfn_x(mfn), t, start);
                 return -EEXIST;
             }
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Thu Apr 24 21:27:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Apr 2025 21:27:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.966937.1356978 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u846o-0004B2-Gw; Thu, 24 Apr 2025 21:27:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 966937.1356978; Thu, 24 Apr 2025 21: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 1u846o-0004Av-E2; Thu, 24 Apr 2025 21:27:50 +0000
Received: by outflank-mailman (input) for mailman id 966937;
 Thu, 24 Apr 2025 21:27: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=iZrJ=XK=gmail.com=trolle.selander@srs-se1.protection.inumbo.net>)
 id 1u846o-0004Ap-1z
 for xen-devel@lists.xenproject.org; Thu, 24 Apr 2025 21:27:50 +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 f7ef7560-2152-11f0-9ffb-bf95429c2676;
 Thu, 24 Apr 2025 23:27:48 +0200 (CEST)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-ac2bb7ca40bso273353866b.3
 for <xen-devel@lists.xenproject.org>; Thu, 24 Apr 2025 14:27: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: f7ef7560-2152-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1745530067; x=1746134867; darn=lists.xenproject.org;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:from:to:cc:subject:date:message-id:reply-to;
        bh=yVJORT2KGUdz/ji3AIvuRYZnWV53wuE7d4tJ0N5ILrE=;
        b=P0V20rKeUPLFaLnC1k6N1c+1YFLaVq54ZZmmsCvcDdbORMJqLvzMB9ZBUYokw9+e92
         zMzn8SR/AypknBxeFXJFwV3Bi7IWsVUwy4N9cqXehVA5I937oRJ4SIPzqRWpD6wW11RJ
         rzjnMymUkLG79igA8slNLZS7t+fYxoprDMi84wrd04bNenZYcVGnWlamcIZPUERfYmJH
         vI5rnMOdHXWRB6J5Y8EwI+mi4cByOGsbciC705pmqXnAV1pS+MqyEgGEyUWEj4FHrqV4
         A5XyWadIMWXcw3j9OxfQHmdy9LWYNPvmXHuvkPiA0B9MgHGbB+ez70FxJOtpDccIXc9J
         kwQQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745530067; x=1746134867;
        h=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=yVJORT2KGUdz/ji3AIvuRYZnWV53wuE7d4tJ0N5ILrE=;
        b=HQmu8xo5CkZXedRIEzkvvIn5peXWPoTerxhzKR7HycQN2o/WFex8vitTp9DLJN0R2y
         6unYCNalqUwgqoLKJIY4pUI+hQk2cQKN5BHpWH15do+LncRssvXLtJwrQKCxhSp0EP8p
         4XuHAHWASjcvauJJGlILNAqwuuMH1USwzcYcz2tt351fy5L/d7G5VvTQ9lg49WYcnTFI
         hhRH3mGPG7WR/JwEealLPKWt+BWySWfr+GJOG7+Q9NrQLJneeogy4jBRK3QVcSV+vqot
         7IyTXwoTjECqSF2LXlsrbeD+7QsV3fl9AUI89r5SosE/zGSLwiv9ns5V9LFj0Dkiu782
         hKMg==
X-Forwarded-Encrypted: i=1; AJvYcCXuuKSI5YWuIpNRNCxsppOoxi6tgT+YzKRis9DdyYUeKqECrxYo1w06TYu2aFaaRHhWBwsV/CDppqw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyZpZrz/vhSabVtx2oMAFKjwL8pFeXHWRStp/cB8tWN71CYcUyv
	jeAtxrzlJamVdIbM2VUOsgn1E78SCaGBkTY3jVGawiWohuxoPQ18z6E9Eil9cUEfCN6loMw0hIr
	9ftiMQLMP1Rw87cjECYY0rUFTw9U=
X-Gm-Gg: ASbGncta91qOYCXfdnqjZERi8hZPKSzj4+Re1fmjWHAwsQxwZE+fIOIB3ixw7YOSgdC
	B4u//GwGO0cWhv2KiprxopNsPJUJURPeuUtuVIE2SYkO4lZKh4jwd4G9SMU2TgtgYFz9UIXLUMd
	RJ7WhgRg5gMqXiJUxFTiG+UwnnnNfvPcqfhu8=
X-Google-Smtp-Source: AGHT+IGfG6HYHzmfVZ3S0al3DSyrJnKeFONht1DMHassKVF+KiYhOqmFPX00SaCjvfnfldwyLYuwXuJA1Y4OFov/PVk=
X-Received: by 2002:a17:907:720e:b0:ac7:f3a6:5af0 with SMTP id
 a640c23a62f3a-ace71026097mr7054966b.10.1745530067251; Thu, 24 Apr 2025
 14:27:47 -0700 (PDT)
MIME-Version: 1.0
References: <D9EWZF0G7QUZ.2IDV470T7SYD0@amd.com> <002DF04C-A250-4EAD-9834-FC07EFC9D562@ariadne.space>
 <D9F5WA7ONX45.NTFNWPJS5MWU@amd.com>
In-Reply-To: <D9F5WA7ONX45.NTFNWPJS5MWU@amd.com>
From: Trolle Selander <trolle.selander@gmail.com>
Date: Thu, 24 Apr 2025 17:27:36 -0400
X-Gm-Features: ATxdqUHR8WKj_V1K1ilHh9ppTCkx0ihqMfCKqpV6OzWmzonFaedgag7C1sNXFvs
Message-ID: <CAMhw1543RpYCbOxCv_31qkv_s3cOdmeAf=PKhiMbpkbBvcGRDw@mail.gmail.com>
Subject: Re: [PATCH] x86/hyperv: Adjust hypercall page placement
To: Alejandro Vallejo <agarciav@amd.com>
Cc: Ariadne Conill <ariadne@ariadne.space>, xen-devel@lists.xenproject.org, 
	Jason Andryuk <jason.andryuk@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>, 
	Paul Durrant <paul@xen.org>
Content-Type: multipart/alternative; boundary="0000000000009a793c06338ce3fc"

--0000000000009a793c06338ce3fc
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

I worked on Xen-on-Azure last summer in my previous position. Allocating a
heap page was how we solved this particular issue in our branch as well.

I see you say you're still 'working on bringing Xen up on Azure', so I'm
not sure how far along your branch / patch set is, but for what it's worth,
we had "everything" working, including use of VMBus and passthrough devices
in dom0.

The Azure version of the product got put on ice, and the code wasn't in a
very 'upstreamable' state due to how patches/branches were managed, but
bottom line is I know every bump on the Xen-on-Azure road, so may be able
to help get an upstream version of this 'the rest of the way' if you start
pushing it to xen-devel.

Cheers,
Trolle

On Thu, Apr 24, 2025 at 4:47=E2=80=AFPM Alejandro Vallejo <agarciav@amd.com=
> wrote:

> On Thu Apr 24, 2025 at 7:22 PM BST, Ariadne Conill wrote:
> > Hi,
> >
> >> On Apr 24, 2025, at 6:48=E2=80=AFAM, Alejandro Vallejo <agarciav@amd.c=
om>
> wrote:
> >>
> >> =EF=BB=BFOn Thu Apr 24, 2025 at 1:45 PM BST, Alejandro Vallejo wrote:
> >>> Xen nowadays crashes under some Hyper-V configurations when
> >>> paddr_bits>36. At the 44bit boundary we reach an edge case in which t=
he
> >>> end of the guest physical address space is not representable using
> 32bit
> >>> MFNs. Furthermore, it's an act of faith that the tail of the physical
> >>> address space has no reserved regions already.
> >>>
> >>> This commit uses the first unused MFN rather than the last, thus
> >>> ensuring the hypercall page placement is more resilient against such
> >>> corner cases.
> >>>
> >>> While at this, add an extra BUG_ON() to explicitly test for the
> >>> hypercall page being correctly set, and mark hcall_page_ready as
> >>> __ro_after_init.
> >>>
> >>> Fixes: 620fc734f854("x86/hyperv: setup hypercall page")
> >>> Signed-off-by: Alejandro Vallejo <agarciav@amd.com>
> >>
> >> After a side discussion, this seems on the unsafe side of things due t=
o
> >> potential collision with MMIO. I'll resend (though not today) with the
> >> page overlapping a RAM page instead. Possibly the last page of actual
> >> RAM.
> >
> > We have been working on bringing Xen up on Azure over at Edera, and
> > have encountered this problem.  Our solution to this problem was to
> > change Xen to handle the hypercall trampoline page in the same way as
> > Linux: dynamically allocating a page from the heap and then marking it
> > as executable.
> >
> > This approach should avoid the issues with MMIO and page overlaps.
>
> Yes, that's what I meant by overlapping RAM. Overlaying the hypercall
> page on top of existing RAM rather than trying to find a suitable hole.
>
> > Would it be more interesting to start with our patch instead?
>
> If you have it ready to go, for sure. My ability to test any of this is
> fairly limited. I suspect the VM is just not getting 48 bits worth of
> guest-physical address space, and so making any hypercall turns into an
> EPT violation.
>
> I couldn't run the tests that would definitely prove it though
>
> From the little I saw of the dmesg going forward, I suspect there's more
> required (at least in time handling) to enable support in gen2
> insteances.
>
> Cheers,
> Alejandro
>
>
>

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

<div dir=3D"ltr">I worked on Xen-on-Azure last summer in my previous positi=
on. Allocating a heap page was how we solved this particular issue in our b=
ranch as well.<br><br>I see you say you&#39;re still &#39;working on bringi=
ng Xen up on Azure&#39;, so I&#39;m not sure how far along your branch / pa=
tch set is, but for what it&#39;s worth, we had &quot;everything&quot; work=
ing, including use of VMBus and passthrough devices in dom0.<div><br>The Az=
ure version of the product got put on ice, and the code wasn&#39;t in a ver=
y &#39;upstreamable&#39; state due to how patches/branches were managed, bu=
t bottom line is I know every bump on the Xen-on-Azure road, so may be able=
 to help get an upstream version of this &#39;the rest of the way&#39; if y=
ou start pushing it to xen-devel.<div><br></div><div>Cheers,</div><div>Trol=
le</div></div></div><br><div class=3D"gmail_quote gmail_quote_container"><d=
iv dir=3D"ltr" class=3D"gmail_attr">On Thu, Apr 24, 2025 at 4:47=E2=80=AFPM=
 Alejandro Vallejo &lt;<a href=3D"mailto:agarciav@amd.com">agarciav@amd.com=
</a>&gt; wrote:<br></div><blockquote class=3D"gmail_quote" style=3D"margin:=
0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">=
On Thu Apr 24, 2025 at 7:22 PM BST, Ariadne Conill wrote:<br>
&gt; Hi,<br>
&gt;<br>
&gt;&gt; On Apr 24, 2025, at 6:48=E2=80=AFAM, Alejandro Vallejo &lt;<a href=
=3D"mailto:agarciav@amd.com" target=3D"_blank">agarciav@amd.com</a>&gt; wro=
te:<br>
&gt;&gt; <br>
&gt;&gt; =EF=BB=BFOn Thu Apr 24, 2025 at 1:45 PM BST, Alejandro Vallejo wro=
te:<br>
&gt;&gt;&gt; Xen nowadays crashes under some Hyper-V configurations when<br=
>
&gt;&gt;&gt; paddr_bits&gt;36. At the 44bit boundary we reach an edge case =
in which the<br>
&gt;&gt;&gt; end of the guest physical address space is not representable u=
sing 32bit<br>
&gt;&gt;&gt; MFNs. Furthermore, it&#39;s an act of faith that the tail of t=
he physical<br>
&gt;&gt;&gt; address space has no reserved regions already.<br>
&gt;&gt;&gt; <br>
&gt;&gt;&gt; This commit uses the first unused MFN rather than the last, th=
us<br>
&gt;&gt;&gt; ensuring the hypercall page placement is more resilient agains=
t such<br>
&gt;&gt;&gt; corner cases.<br>
&gt;&gt;&gt; <br>
&gt;&gt;&gt; While at this, add an extra BUG_ON() to explicitly test for th=
e<br>
&gt;&gt;&gt; hypercall page being correctly set, and mark hcall_page_ready =
as<br>
&gt;&gt;&gt; __ro_after_init.<br>
&gt;&gt;&gt; <br>
&gt;&gt;&gt; Fixes: 620fc734f854(&quot;x86/hyperv: setup hypercall page&quo=
t;)<br>
&gt;&gt;&gt; Signed-off-by: Alejandro Vallejo &lt;<a href=3D"mailto:agarcia=
v@amd.com" target=3D"_blank">agarciav@amd.com</a>&gt;<br>
&gt;&gt; <br>
&gt;&gt; After a side discussion, this seems on the unsafe side of things d=
ue to<br>
&gt;&gt; potential collision with MMIO. I&#39;ll resend (though not today) =
with the<br>
&gt;&gt; page overlapping a RAM page instead. Possibly the last page of act=
ual<br>
&gt;&gt; RAM.<br>
&gt;<br>
&gt; We have been working on bringing Xen up on Azure over at Edera, and<br=
>
&gt; have encountered this problem.=C2=A0 Our solution to this problem was =
to<br>
&gt; change Xen to handle the hypercall trampoline page in the same way as<=
br>
&gt; Linux: dynamically allocating a page from the heap and then marking it=
<br>
&gt; as executable.<br>
&gt;<br>
&gt; This approach should avoid the issues with MMIO and page overlaps.<br>
<br>
Yes, that&#39;s what I meant by overlapping RAM. Overlaying the hypercall<b=
r>
page on top of existing RAM rather than trying to find a suitable hole.<br>
<br>
&gt; Would it be more interesting to start with our patch instead?<br>
<br>
If you have it ready to go, for sure. My ability to test any of this is<br>
fairly limited. I suspect the VM is just not getting 48 bits worth of<br>
guest-physical address space, and so making any hypercall turns into an<br>
EPT violation.<br>
<br>
I couldn&#39;t run the tests that would definitely prove it though<br>
<br>
>From the little I saw of the dmesg going forward, I suspect there&#39;s mor=
e<br>
required (at least in time handling) to enable support in gen2<br>
insteances.<br>
<br>
Cheers,<br>
Alejandro<br>
<br>
<br>
</blockquote></div>

--0000000000009a793c06338ce3fc--


From xen-devel-bounces@lists.xenproject.org Thu Apr 24 21:38:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Apr 2025 21:38:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.966949.1356990 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u84HI-0006FD-Go; Thu, 24 Apr 2025 21:38:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 966949.1356990; Thu, 24 Apr 2025 21:38: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 1u84HI-0006F6-CI; Thu, 24 Apr 2025 21:38:40 +0000
Received: by outflank-mailman (input) for mailman id 966949;
 Thu, 24 Apr 2025 21: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=WO6P=XK=amd.com=VictorM.Lira@srs-se1.protection.inumbo.net>)
 id 1u84HH-0006F0-Jv
 for xen-devel@lists.xenproject.org; Thu, 24 Apr 2025 21:38:39 +0000
Received: from NAM10-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam10on20617.outbound.protection.outlook.com
 [2a01:111:f403:2413::617])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7a143081-2154-11f0-9ffb-bf95429c2676;
 Thu, 24 Apr 2025 23:38:37 +0200 (CEST)
Received: from IA0PR12MB8864.namprd12.prod.outlook.com (2603:10b6:208:485::16)
 by LV3PR12MB9120.namprd12.prod.outlook.com (2603:10b6:408:1a3::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.36; Thu, 24 Apr
 2025 21:38:33 +0000
Received: from IA0PR12MB8864.namprd12.prod.outlook.com
 ([fe80::b579:5233:e4a2:9077]) by IA0PR12MB8864.namprd12.prod.outlook.com
 ([fe80::b579:5233:e4a2:9077%7]) with mapi id 15.20.8678.025; Thu, 24 Apr 2025
 21:38: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: 7a143081-2154-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=dXsztuMa0NtTJudCfYSplZvsq0W2s+xscciSt64vLrq0C8Uw3Nyy3P/rSar+zOcy/wgLxl4x3fGXgDQc+gH9uJZj+SznMbJJoI7yWmLXTpmvqCPagiFhzZHlq9SEci20+1BY4nG/oCf1+RD4MKjrWTMxfZwoYBwQ4JBstv49Cv2IKY/sUEDmPB/EqfYdd2yfDYz1wmiEJmNFGh4T1FKQCup0ApPxX2VQCOYHPFQa7mvT2W8mOlWJpcw4PwWMd65GPwGnaFs1xS9O5GnA/irgWXaUwsRbWOApgFVIkal9e7OGfUd2LHhnJDYIICY97zpY4sw8zNVqytA3YTKWKqwMNA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=u2XKyGySSq3DgauchUF3lCVEgxnvamPXIGj3RBNtPxM=;
 b=fdf/g7uyFxelpMdmaiKR3AJEwA479DiZkhdfFNUzDaqV6neQNJ6ATsJkfVJq8W1gvNahlheWu/C7r0GV32Ur/QS9IBqv+5543mNHt+uNFdA2jv41cQyFGjkuBOQBydXG73ngCa2YQcYBuxa5jUFSdzh+7EJsnSPT5396gBhhGXW8xt1GCO0YcqJmhBdwBPE78cAk/faKuKtU/5tfuiH7zTKSfG6netQLXkTmgXivftyJi1O25SYV5lESL/MM+61I9IQVGNEyKzLCBw71suNgceQ46ak5SE+tVMHh8xEejJtKPCb/2bwovgVH9QO5UgFxaiApjZ6P0MReUywEIDIfYQ==
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=u2XKyGySSq3DgauchUF3lCVEgxnvamPXIGj3RBNtPxM=;
 b=b/RZfJw/UbGiHOkQxBdvBn88OaI1mwDTk/bndhVNOEbEGcWvQkdtAOK42/oLgU9jnkHwicOXvB+ilFEbdbiCRKu2gVxIBwpHFuyW5FJnQiazh8XRgqyrZXTeS8XbGk/MOnBAYZHKcKBjxdit0HBnwJr0vpq4hqcJYLeuGpfuhIw=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <554026de-bbb4-488f-95c4-8e2f034d6d0e@amd.com>
Date: Thu, 24 Apr 2025 14:38:29 -0700
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC] xen/x86: allow overlaps with non-RAM regions
To: Jason Andryuk <jason.andryuk@amd.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org, Andrew Cooper <andrew.cooper3@citrix.com>,
 Jan Beulich <jbeulich@suse.com>, Xenia.Ragiadakou@amd.com,
 Alejandro.GarciaVallejo@amd.com
References: <alpine.DEB.2.22.394.2504031755440.3529306@ubuntu-linux-20-04-desktop>
 <Z--0USril0UIhR4R@macbook.lan> <3c5dfd26-3c12-498b-aca4-0beac4e991a5@amd.com>
 <Z_jFSb2-efexUNlL@macbook.lan> <9ed89e50-c645-407d-80b4-5b78cb6e36fa@amd.com>
 <Z_zGdE91KwlYxu_A@macbook.lan> <ce06ec74-1a73-4a02-87fc-3e829399cc77@amd.com>
 <aAnvRMgJxAskbCtE@macbook.lan> <aAoPNTsLjMMfsHvJ@mail-itl>
 <aAoW-kvpsWuPJwrC@macbook.lan> <775d3ac0-8f43-415a-a32d-14377092b96b@amd.com>
Content-Language: en-US
From: "Lira, Victor M" <VictorM.Lira@amd.com>
In-Reply-To: <775d3ac0-8f43-415a-a32d-14377092b96b@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: PH8PR07CA0021.namprd07.prod.outlook.com
 (2603:10b6:510:2cd::10) To IA0PR12MB8864.namprd12.prod.outlook.com
 (2603:10b6:208:485::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: IA0PR12MB8864:EE_|LV3PR12MB9120:EE_
X-MS-Office365-Filtering-Correlation-Id: f0ae7392-506e-4cf1-9986-08dd83785c50
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?dkdUak9xVWhjN1BpazAzRU5ZQnpKMXh1NFY3RmM1Q0JjSnlPSjQyVUdwaE90?=
 =?utf-8?B?dXpJOUlzNzJMa2pOK3JoYWFLU1ZGanlsVmxCNXoyV1BkQ3h1THhwYk9PdmN1?=
 =?utf-8?B?NE1LVmlSTUNsQ1VURVQ4Mk1KQ1p1ZSt4ZHJhcWNKSy9wajZLdU1nNERUd1Uz?=
 =?utf-8?B?bm1DV0ovSk44eWFwL1BnZnVaRW05KzdWUENlaWVVM1czWHZQUE1hQ3d6Yldm?=
 =?utf-8?B?ZkdJQnBlUEgxSEhYSHJhdzNjR2k2TDdqMkFXakx3cXNnUVJHWldvcEtPaU9j?=
 =?utf-8?B?aWI5d1FKemQzUE1mK000NkRrWWRrYnRZUGVEK2xhakIrK3MxNitoblViQ0dN?=
 =?utf-8?B?RmdaS2VFa2FsdXZsMVZYR2M5TVk2UmZPZzBlMzRrMFJkT0w2ZS9LS0lKd0ZQ?=
 =?utf-8?B?clpPc2h3VUNaNGoyT01zZmVzamRYVEliUWdMQ1lkaURYRW9wMStMM3A1ZVFF?=
 =?utf-8?B?M1R2cGNiV2VsUFdCVFJQWGdpd0NvNWg1QzBDNHBveWtHc0hkVnpDU2UxQTkz?=
 =?utf-8?B?ZXl2b1BqakJIRjFubFpneUJQWlFWT20wL050MnpPZytqdWYzd0hWTWlyN1A3?=
 =?utf-8?B?Z21pZG81WDkycWtVMGtaMlVzaVNScS9INW1PdzQyYklCbU5oUW5Nem5CdStE?=
 =?utf-8?B?YzVuQUNGd3JPWW9jZnlmdmhXT0R2SmUvRVFiaHMyRXQ5U3VDNmxUZ05LSkdC?=
 =?utf-8?B?Wmdob3MrZHoxUWU1NW5Fdncvb1FGYXdWb0ExRVVESUVBS2RpVkdqQWl4Mkds?=
 =?utf-8?B?QkJwRS9hUGx1K3RjTkxFM3ZtMHR4akNSZlRYZ2VJYVdWbjZRT1Zqc1lscEx6?=
 =?utf-8?B?ZkRWMEJ4Njl1bU4rL21PRkhDQzN0M0QxNkFYdW0xSGt4NmZuVGNjL2NOaC9J?=
 =?utf-8?B?MGp1dGJTNzZxL0dLY1hrUkFpT0NmU1UzVEhIcUFKaDg5ZHh4alBxVDhGdnNC?=
 =?utf-8?B?ZHFTTkI4ZzlEdU5tRU44azRNVk54L3hqMzU1TnZ1VVVxSnNaMXlRam1SMWQ0?=
 =?utf-8?B?V3VzZ2JFRjZIWVZyRlZzZngwWXlSNTFDUHZtY01KT2YySDBTWWduQ1dhVVRK?=
 =?utf-8?B?K0pWVGdoYVV2VjZuSkVQYkZZR3BpbzNidXI3WG5oMEZOMEhRbWpXcVIvMEM4?=
 =?utf-8?B?a1NhT01ib3FHYVlkN3U4NUZTUThNMjltNUVGcmQ3c2E1dE92V2R2WHVFM1VB?=
 =?utf-8?B?MHVxZ0VDSXZSTC9keFd5MzY5Y0FvTkd4NjNYeGtkUWZncmlaWlIya3lhMG9Y?=
 =?utf-8?B?eGpyS0NTZ1VNSzJxU2lzdDNiWWloNjBZK1JsV1l5SmVpTU5IT21UOWJTdTNx?=
 =?utf-8?B?eURLSlJSc3FUSkhla2NzNHJkbG5tUkljQlp5NmhLd3VzNWhYaDZrQWZKTnVk?=
 =?utf-8?B?UjY3K1l3TzJqRHJjaER2ZnlhUDBDRUlYaERPUnIreUxGM3J3Mmdpa3ZpN2ds?=
 =?utf-8?B?emJhdW9mdXFCbHhNTlNRYU0vZWhLdlVaNzQ5dVc0V1Q3K25RRWFVRFVrT2FZ?=
 =?utf-8?B?Q3ZmYkJNWnpuWkt2ZWRkcFllTU1HaXA1ZGZtSHlsSWZvL0pTNktGdXRYSFhj?=
 =?utf-8?B?TUZZVnF1Z2cySWJHUzRNV1VVK0kwYVpPa1FSNmpsbWVLZnhMbWpMNjlmaEVw?=
 =?utf-8?B?cEw2Qm9rT0NRM0Z4MmMxRW42UG0zb2tvSTFUUHJuMVZaQ0lOSlRLWG9RZzdW?=
 =?utf-8?B?Vlg1Z2F5ODdYS25DZElMN2tZMUdGM05ud3pOQmtiSW5SR3VsUGYvR2cyOWRO?=
 =?utf-8?B?ZSs2MnRzbVhTVTAzc0RzWG5yTE1JekN5T3I2bzd5TkQzSko3N25zbWtvN1Vk?=
 =?utf-8?B?UWJueWMvZWVUOW5UOGxmOGlPdGUrSTAvZG5nNmxIdERxNThlOUZSUmVOSVZo?=
 =?utf-8?B?Uk5LVDNvdGdTWkQzNzg5NGVHRDd1UTlqSzM2c0FNdjM5aEg3OVpDaFZlWDVT?=
 =?utf-8?Q?A/ngV/1XKbM=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA0PR12MB8864.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?NUFucTR2SzBCWVlzZkhzUnZoRURDNWJySG01ZS9WK2NlR0V2bmRsTUpGUkh2?=
 =?utf-8?B?R2s3VUpobGJxaVlTVXBjaVc1UzJsVitGSFZQeDVHaFl5QmY5ZjBqemd3UGU5?=
 =?utf-8?B?UHVzTnVQeUo3SkZvcy9vcUUzbnVDRU9NSWp1OU1KOUtpdjAxSThoYkRzREFq?=
 =?utf-8?B?NW9WQngzQk1TV0t1enJ4ZjdIN1FuNnpsb3J2d1J1S0pUNElHSlpwWk1DaS9L?=
 =?utf-8?B?NG9kV3IxcmhScEQvSFhZNDVTUGQ3NE1KTXJpNi9RVFYvSmNXMk9rVmFqYUZa?=
 =?utf-8?B?ekRUcUtlcWtMeEprRUhMTGVZMVluSWhyamRMVHVQR01LQjdkc056TjEyazRq?=
 =?utf-8?B?OWxaNVJMYWlWVzI2anV5RFA3K2pqRDdzY21KaEMwamdJdFZVdkZXcm9JaC94?=
 =?utf-8?B?bUdKYUY3cU5DYmRjOUFpSzZkMXp5WjFOU1JWOXlseWRFNUpUVGdvWGpmYjRx?=
 =?utf-8?B?akRMRHRsajd6eFdJWEJVOHVvb1Rjd3NZR1RaN29kandnTGM1dHZBN1RYT3Zm?=
 =?utf-8?B?SkJvKzQ0SWJxSXNWTGNmRTBJUXhQVzdxNlZjZ25vQmpqWTJkdy94TFdLcWY1?=
 =?utf-8?B?M0sxRjVFdWFSMWtvNFpKK3JISWFJd1kxaU5nWFV2VHlWdE9rTTYyaElRYStX?=
 =?utf-8?B?K0ljeEd1R0h6VGd6V0tYS2x3cU9FejRHN2w4Y3hqeGtzcE5xOGRXZEZBVTdM?=
 =?utf-8?B?MEd6WmdCTUZwZHl1Z3g5amxBZU1Bd0k2VDRZc04vdXNDTXZaU1BoRVVvK0Mx?=
 =?utf-8?B?MnFZUXhzUmdkeWJWN3pkVkJmeGwzZjdZNVBXcjdhMjJ2UktuZUdFcE1VeThh?=
 =?utf-8?B?MFRvWlBxSjhsMFIrNVpKZ3pTZVZscVRhbi9sUWhDcE9jL1NqTGh2MHltN2xp?=
 =?utf-8?B?eUl5cW55TWVuekdBaHpMR2JZWWg5S3dISHZzQ3d6bkhOTjRVRDJXWGxHQU9O?=
 =?utf-8?B?VmxTZXoyMnFQNTdUUE5YYVI0MmJhT1lQTEg5d213dlMrM0Z1cmpNWnJIQlJO?=
 =?utf-8?B?Q1YyRTBJS0t5M1RjZENzQzZ4bmJwRUN1TUhFY3o2UWJDS2lsQkowRmtnM3RI?=
 =?utf-8?B?Z0dIVGNlU1IrZFhBMm10Z3E5Z3hySnNybGplTDhGakR5U0RHN0tHVDFRRzBx?=
 =?utf-8?B?S1FlNTRFbkNXS1lEUHh2czBXVHJLVFZwV1ZZV0w4RnUxc2g5SGRLcmN3Zjh5?=
 =?utf-8?B?UkhYQlRHR3ZUcXpMMW5EaVl0b0lkY1MrWVZDbjQ5SkN0UXVwd2VrM3NiQ1BZ?=
 =?utf-8?B?QUJBTlo5Rzdmb1R5L2RyWndhSEl4WnI5RVpvdFJmaUIzRGNHTUFGOHJUQXdD?=
 =?utf-8?B?UDlMYmpkZlhWbWNPbUtQN0wvTUZ1UERtSVV0c3V3cmZjUFN0cXJHa3dpVDc5?=
 =?utf-8?B?YjBxS2tXM1RYTGhKUkZYL1NZUEJheFc1L0lxQTRHeWwvcmdjeW5KakVvYmlN?=
 =?utf-8?B?LzY0ZFFaUXJtZkVyWGdTbDJNSEhOSzIzK2RRcHRCNkRZZXY2M25NdzM4U3Rr?=
 =?utf-8?B?cmtzV3VTL3RCcjA0NURUMUVkeGFEUWFHanlEeHc1TzJudHFERXN2VDZiWmpX?=
 =?utf-8?B?WjROZ2VSd3k5VWZRbEFLMjJaZElXQjZidXgwWlpWQkdkazZWdTBQUVgyLzE0?=
 =?utf-8?B?TlVHMGFuUkxFMnpGd3hlU1F0NFNaWlJXYVAvUyttR3V3NmJuV082Tm4vSWhF?=
 =?utf-8?B?QjBONktmcGxBT1c0cHBkYmp2emVKaFR6VGI5TzBoREU3OHlMTnBCaDEwOFoy?=
 =?utf-8?B?T1ZLZ28yaFhrQ2RLWE0yeW51ZjhLTVljWW96Vk1XWnI5RW43M3F0MytaQ2hG?=
 =?utf-8?B?dzErT1FmVHl6TGo5OHdwZFRWQ21lSThSWkQ1VFMzYWZ4TUY1ODJvK2JHLytk?=
 =?utf-8?B?MVFDN1l1bzF0a0dMc2ZITXFJc3NSNTdxanRIR3FuYVZmVUVUeGozRUpTRTdH?=
 =?utf-8?B?MVFzayszUS9jcEtjNnJlRmVoUTdCU05pR3pPR3pOQmpDWWV2NmFvRG5IamZ0?=
 =?utf-8?B?aFNFOEszdDhORlhtbEtVSkhFL2R6UFNwcE5GcGZyV1FqQnRtSmswZm5IbUJO?=
 =?utf-8?B?ZEtLVitrYkJPMXcwNnNGYUhRRCszM2hVWlRhQVJZNGN2YTVrUVl6eGJVYXVx?=
 =?utf-8?Q?re/G4QO3V+XvfxeJxfP/yA77C?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f0ae7392-506e-4cf1-9986-08dd83785c50
X-MS-Exchange-CrossTenant-AuthSource: IA0PR12MB8864.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Apr 2025 21:38:32.7317
 (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: JCUUIWR5KzGgmXNbW0nbAArXbvwqy49wSw9iTKVXn0RKc7E2+eEAe36aA7yyidZO71pNAucuCt921ar2/cYA3Q==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV3PR12MB9120

Hello all,

Here is the output from Roger's patch.
This is the section of interest:

> (XEN) [ 7.547326] d0 has maximum 3328PIRQs
> (XEN) [ 7.555644] *** Building a PVH Dom0 ***
> (XEN) [ 7.567780] d0: identity mappings for IOMMU:
> (XEN) [ 7.577312]  [00000000a0, 00000000ff] RW
> (XEN) [ 7.586153]  [0000009bff, 0000009fff] RW
> (XEN) [ 7.594992]  [00000cabc9, 00000cc14c] RW
> (XEN) [ 7.603866]  [00000cc389, 00000cc389] RW
> (XEN) [ 7.612707]  [00000cc70a, 00000cd1fe] RW
> (XEN) [ 7.621896]  [00000ce000, 00000cffff] RW
> (XEN) [ 7.630731]  [00000fd000, 00000fd2ff] RW
> (XEN) [ 7.639573]  [00000fd304, 00000febff] RW
> (XEN) [ 7.648414] gfn 0xfe800mfn 0xfe800type 5order 9
> (XEN) [ 7.658985] Xen WARNat arch/x86/mm/p2m-pt.c:599
> (XEN) [ 7.669215] ----[ Xen-4.21-unstable x86_64  debug=y  Tainted:   
> C    ]----
> ...
> (XEN) [ 8.227521] Xen call trace:
> (XEN) [ 8.234107]    [<ffff82d040309bd6>] R 
> arch/x86/mm/p2m-pt.c#p2m_pt_set_entry+0xc1/0x961
> (XEN) [ 8.250925]    [<ffff82d0402fbf0d>] F p2m_set_entry+0xb5/0x13c
> (XEN) [ 8.263579]    [<ffff82d0402fc091>] F 
> arch/x86/mm/p2m.c#set_typed_p2m_entry+0xfd/0x6f0
> (XEN) [ 8.280388]    [<ffff82d0402fdcd4>] F set_mmio_p2m_entry+0x62/0x6b
> (XEN) [ 8.293735]    [<ffff82d0402ff9cf>] F map_mmio_regions+0x77/0xcf
> (XEN) [ 8.306734]    [<ffff82d04042fc1b>] F 
> drivers/passthrough/x86/iommu.c#identity_map+0x7e/0x196
> (XEN) [ 8.324761]    [<ffff82d040232935>] F 
> rangeset_report_ranges+0x10a/0x159
> (XEN) [ 8.339149]    [<ffff82d0404301e6>] F 
> arch_iommu_hwdom_init+0x27f/0x316
> (XEN) [ 8.353361]    [<ffff82d04042cffa>] F 
> drivers/passthrough/amd/pci_amd_iommu.c#amd_iommu_hwdom_init+0xa9/0xc1
> (XEN) [ 8.373988]    [<ffff82d040430846>] F iommu_hwdom_init+0x26/0x2e
> (XEN) [ 8.386989]    [<ffff82d040441a30>] F 
> dom0_construct_pvh+0x265/0x1141
> (XEN) [ 8.400860]    [<ffff82d040457f7c>] F construct_dom0+0x47/0x93
> (XEN) [ 8.413511]    [<ffff82d0404504e0>] F __start_xen+0x21fc/0x2425
> (XEN) [ 8.426340]    [<ffff82d0402043be>] F __high_start+0x8e/0x90
> (XEN) [ 8.438646]
> (XEN) [ 8.442632]  [00000fec02, 00000fedff] RW
> (XEN) [ 8.451599]  [00000fee01, 00000fffff] RW
> (XEN) [ 8.460571]  [000080f340, 00008501ff] RW
> (XEN) [ 8.470205] 0000:02:00.0: not mapping BAR [fea00, fea03] invalid 
> position
> (XEN) [ 8.484769] 0000:03:00.0: not mapping BAR [fe900, fe90f] invalid 
> position
> (XEN) [ 8.499330] 0000:03:00.0: not mapping BAR [fe910, fe913] invalid 
> position
> (XEN) [ 8.513890] gfn 0xfe910mfn 0xfffffffffffffffftype 1order 0
> (XEN) [ 8.526370] Xen WARNat arch/x86/mm/p2m-pt.c:599
> ...
> (XEN) [ 9.094902] Xen call trace:
> (XEN) [ 9.101491]    [<ffff82d040309bd6>] R 
> arch/x86/mm/p2m-pt.c#p2m_pt_set_entry+0xc1/0x961
> (XEN) [ 9.118306]    [<ffff82d0402fbf0d>] F p2m_set_entry+0xb5/0x13c
> (XEN) [ 9.130957]    [<ffff82d0402fe1fb>] F 
> p2m_remove_identity_entry+0x26f/0x2ca
> (XEN) [ 9.145865]    [<ffff82d040268a4a>] F 
> vpci_make_msix_hole+0x11a/0x27a
> (XEN) [ 9.159734]    [<ffff82d0402654c4>] F 
> drivers/vpci/header.c#modify_decoding+0x4e/0x1b3
> (XEN) [ 9.176547]    [<ffff82d040265c89>] F 
> drivers/vpci/header.c#modify_bars+0x660/0x6c4
> (XEN) [ 9.192838]    [<ffff82d040266427>] F 
> drivers/vpci/header.c#init_header+0x5e7/0x86f
> (XEN) [ 9.209129]    [<ffff82d04026449c>] F vpci_assign_device+0xd3/0x115
> (XEN) [ 9.222648]    [<ffff82d040430de4>] F 
> drivers/passthrough/pci.c#setup_one_hwdom_device+0x92/0x15b
> (XEN) [ 9.241368]    [<ffff82d04043112a>] F 
> drivers/passthrough/pci.c#_setup_hwdom_pci_devices+0x158/0x241
> (XEN) [ 9.260612]    [<ffff82d04027aad7>] F 
> drivers/passthrough/pci.c#pci_segments_iterate+0x43/0x69
> (XEN) [ 9.278814]    [<ffff82d040431513>] F 
> setup_hwdom_pci_devices+0x28/0x2f
> (XEN) [ 9.293026]    [<ffff82d04042d009>] F 
> drivers/passthrough/amd/pci_amd_iommu.c#amd_iommu_hwdom_init+0xb8/0xc1
> (XEN) [ 9.313649]    [<ffff82d040430846>] F iommu_hwdom_init+0x26/0x2e
> (XEN) [ 9.326652]    [<ffff82d040441a30>] F 
> dom0_construct_pvh+0x265/0x1141
> (XEN) [ 9.340516]    [<ffff82d040457f7c>] F construct_dom0+0x47/0x93
> (XEN) [ 9.353172]    [<ffff82d0404504e0>] F __start_xen+0x21fc/0x2425
> (XEN) [ 9.365999]    [<ffff82d0402043be>] F __high_start+0x8e/0x90
> (XEN) [ 9.378305]
> (XEN) [ 9.382289] 0000:04:00.0: not mapping BAR [fe700, fe77f] invalid 
> position
> (XEN) [ 9.396850] 0000:04:00.3: not mapping BAR [fe500, fe5ff] invalid 
> position
> (XEN) [ 9.411412] 0000:04:00.4: not mapping BAR [fe400, fe4ff] invalid 
> position
> (XEN) [ 9.425972] 0000:05:00.0: not mapping BAR [fe801, fe801] invalid 
> position
> (XEN) [ 9.440531] 0000:05:00.1: not mapping BAR [fe800, fe800] invalid 
> position

So vpci_make_msix_hole is where it's getting removed.


Victor


From xen-devel-bounces@lists.xenproject.org Thu Apr 24 21:45:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Apr 2025 21:45:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.966960.1356999 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u84O0-0008K1-4H; Thu, 24 Apr 2025 21:45:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 966960.1356999; Thu, 24 Apr 2025 21: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 1u84O0-0008Ju-1O; Thu, 24 Apr 2025 21:45:36 +0000
Received: by outflank-mailman (input) for mailman id 966960;
 Thu, 24 Apr 2025 21:45: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=TIdu=XK=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u84Nz-0008Jo-EB
 for xen-devel@lists.xenproject.org; Thu, 24 Apr 2025 21:45:35 +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 7160a5d4-2155-11f0-9eb2-5ba50f476ded;
 Thu, 24 Apr 2025 23:45:31 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 6E9DF5C6455;
 Thu, 24 Apr 2025 21:43:12 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id B7D04C4CEE3;
 Thu, 24 Apr 2025 21:45: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: 7160a5d4-2155-11f0-9eb2-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1745531129;
	bh=NH2QybXHWDNMEW5RZOv6zK78L8kGBZTir3hPbfvNj7A=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=LdGYiODovzAWuHWGmq/KWgJoYmyyHqLkxLYcjt2KgHV7A6thdD7839nJaGRwNPsco
	 dt94tMtDJ60+HeQusjKYNgDjnwvt4+TDCN6SEREv9QLv9WHFlX3IYEUazIdjroy5ca
	 Cj8aqOXhsuXHj4qNEN0LQzFnvbrKpoQL+F7W/JkIoTut/DIZU5RRwV2t0e7cgweYTd
	 l0VmSpI9k/8KpjVEL1rPm0mViwLZNsKB1BUZlASxY5QT0OA/M6bPr9sKB1elg3vBNZ
	 GkqDWC58v9PinoWM+rFFE6vbooK8/9QAQc/Cuy4W0eIrmxDIUx7CCGfphlC6EaNScl
	 k/D/rgvS3utoQ==
Date: Thu, 24 Apr 2025 14:45:27 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jan Beulich <jbeulich@suse.com>
cc: victorm.lira@amd.com, Nicola Vetrini <nicola.vetrini@bugseng.com>, 
    Federico Serafini <federico.serafini@bugseng.com>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    Anthony PERARD <anthony.perard@vates.tech>, 
    Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Bertrand Marquis <bertrand.marquis@arm.com>, 
    xen-devel@lists.xenproject.org
Subject: Re: [PATCH v1] misra: add deviation for rules 21.1 and 21.2
In-Reply-To: <f5d35582-9270-4816-84c2-f078afeee711@suse.com>
Message-ID: <alpine.DEB.2.22.394.2504241443550.785180@ubuntu-linux-20-04-desktop>
References: <9e1210f2a9c794d68dcc6b897239b228b141296a.1745427770.git.victorm.lira@amd.com> <f5d35582-9270-4816-84c2-f078afeee711@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, 24 Apr 2025, Jan Beulich wrote:
> On 23.04.2025 19:54, victorm.lira@amd.com wrote:
> > From: Nicola Vetrini <nicola.vetrini@bugseng.com>
> > 
> > MISRA C Rules 21.1 ("#define and #undef shall not be used on a
> > reserved identifier or reserved macro name") and R21.2 ("A reserved
> > identifier or reserved macro name shall not be declared") violations
> > are not problematic for Xen, as it does not use the C or POSIX
> > libraries.
> > 
> > Xen uses -fno-builtin and -nostdinc to ensure this, but there are still
> > __builtin_* functions from the compiler that are available so
> > a deviation is formulated for all identifiers not starting with
> > "__builtin_".
> > 
> > The missing text of a deviation for Rule 21.2 is added to
> > docs/misra/deviations.rst.
> > 
> > To avoid regressions, tag both rules as clean and add them to the
> > monitored set.
> > 
> > Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
> > Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
> > Signed-off-by: Victor Lira <victorm.lira@amd.com>
> 
> While the rule is in the library section, ...
> 
> > --- a/docs/misra/deviations.rst
> > +++ b/docs/misra/deviations.rst
> > @@ -587,7 +587,31 @@ Deviations related to MISRA C:2012 Rules:
> >         construct is deviated only in Translation Units that present a violation
> >         of the Rule due to uses of this macro.
> >       - Tagged as `deliberate` for ECLAIR.
> > -
> > +
> > +   * - R21.1
> > +     - Rule 21.1 reports identifiers reserved for the C and POSIX standard
> > +       libraries. Xen does not use such libraries and all translation units
> > +       are compiled with option '-nostdinc', therefore there is no reason to
> > +       avoid to use `#define` or `#undef` on such identifiers except for those
> > +       beginning with `__builtin_` for which compilers may perform (wrong)
> > +       optimizations.
> > +     - Tagged as `safe` for ECLAIR.
> 
> ... I'd like to ask that it be explicitly clarified here that it's solely
> the library (and not e.g. the compiler itself) that are of concern here.

The language can be clarified:

- Rule 21.1 reports identifiers reserved for the C and POSIX standard
  libraries. Xen does not use such libraries and all translation units
  are compiled with option '-nostdinc', therefore there is no reason to
  avoid to use `#define` or `#undef` on C and POSIX standard libraries
  identifiers except for those beginning with `__builtin_` for which
  compilers may perform (wrong) optimizations.



From xen-devel-bounces@lists.xenproject.org Thu Apr 24 22:19:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Apr 2025 22:19:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.967003.1357008 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u84uf-0005Pf-Gn; Thu, 24 Apr 2025 22:19:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 967003.1357008; Thu, 24 Apr 2025 22:19:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u84uf-0005PY-E5; Thu, 24 Apr 2025 22:19:21 +0000
Received: by outflank-mailman (input) for mailman id 967003;
 Thu, 24 Apr 2025 22:19: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=9zow=XK=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u84ud-0005PS-Cq
 for xen-devel@lists.xenproject.org; Thu, 24 Apr 2025 22:19:20 +0000
Received: from mail-4316.protonmail.ch (mail-4316.protonmail.ch [185.70.43.16])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 277a2435-215a-11f0-9ffb-bf95429c2676;
 Fri, 25 Apr 2025 00:19:14 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 277a2435-215a-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=tgxenni7sbfc7edc44othvna24.protonmail; t=1745533153; x=1745792353;
	bh=xvkh/QbKbXPuXjrXcMxKVt5mJzD8Kz3rDbKHC0eq594=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=F87oYK4hFC8WAyHjei14PBZTYJVQ6bf1ysYIzFn916+k0XWJoO4k62PLdOtoTCKQA
	 3S8qaQxUiWbJhxi0ejdM4JvMiKEjhqTFFdUhPo0+qoRZqzJUfI8qGBRmiQ2biktaKj
	 2LvRKpEJmibvZsuIqgUnccssta8OV6PeSQqfbhBTYOgn53Yf3vlOI/oF/BpT0ZwNZx
	 637wfgQOutxyJ5J9dSVBHCwLoZedEWLgNU1OAObER8ZEK254Cw3mtm8lLhPPOfCM2I
	 blUwPtijrOarGKxl2qd8poj34oaQYGgMwOLJTPOPtbnMYQQIqSVBT52rCjQlCaU/+f
	 /S2rhtSrO+D1w==
Date: Thu, 24 Apr 2025 22:19:06 +0000
To: Alejandro Vallejo <agarciav@amd.com>
From: dmkhn@proton.me
Cc: xen-devel@lists.xenproject.org, Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>, =?utf-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>, Bertrand Marquis <bertrand.marquis@arm.com>
Subject: Re: [PATCH v5 00/12] Hyperlaunch device tree for dom0
Message-ID: <aAq41+qsbuJP2JOj@kraken>
In-Reply-To: <20250424161027.92942-1-agarciav@amd.com>
References: <20250424161027.92942-1-agarciav@amd.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: b08883e76e4372e0aab45615f902c743348a1411
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Thu, Apr 24, 2025 at 05:10:10PM +0100, Alejandro Vallejo wrote:
> Hi,
>=20
> v4: https://lore.kernel.org/xen-devel/20250417124844.11143-1-agarciav@amd=
.com/
> v3: https://lore.kernel.org/xen-devel/20250408160802.49870-1-agarciav@amd=
.com/
> v2: https://lore.kernel.org/xen-devel/20241226165740.29812-1-dpsmith@aper=
tussolutions.com/
> v1: https://lore.kernel.org/xen-devel/20241123182044.30687-1-dpsmith@aper=
tussolutions.com/
>=20
> =3D=3D=3D=3D=3D=3D=3D=3D=3D Original cover letter:
>=20
> The Hyperlaunch device tree for dom0 series is the second split out for t=
he
> introduction of the Hyperlaunch domain builder logic. These changes focus=
 on
> introducing the ability to express a domain configuration that is then us=
ed to
> populate the struct boot_domain structure for dom0. This ability to expre=
ss a
> domain configuration provides the next step towards a general domain buil=
der.
>=20
> 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 han=
dling
> the knock-on effects to the construction logic from requested review chan=
ges.
>=20
>=20
>=20
> Alejandro Vallejo (1):
>   x86/hyperlaunch: Add helpers to locate multiboot modules
>=20
> Daniel P. Smith (11):
>   kconfig: introduce domain builder config options
>   common/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

One general comment w.r.t. naming notation in:

    xen/common/domain-builder/fdt.c
    xen/common/domain-builder/fdt.h

Sorry, overlooked that earlier.

What do you think about using fdt_<something> notation for all functions in
fdt.{c,h}?

For example:

    s/detect_fdt_kind/fdt_detect_hyperlauch_node/

    s/find_hyperlaunch_node/fdt_find_hyperlauch_node/

    s/walk_hyperlaunch_fdt/fdt_walk_hyperlauch_node/

    s/process_domain_node/fdt_process_hyperlauch_node/

Other than that:

Reviewed-by: Denis Mukhin <dmukhin@ford.com>

for the series.

>=20
>  xen/arch/x86/dom0_build.c              |  11 +
>  xen/arch/x86/include/asm/boot-domain.h |  14 +
>  xen/arch/x86/include/asm/bootinfo.h    |  10 +-
>  xen/arch/x86/setup.c                   |  64 +++-
>  xen/common/Kconfig                     |   2 +
>  xen/common/Makefile                    |   1 +
>  xen/common/domain-builder/Kconfig      |  15 +
>  xen/common/domain-builder/Makefile     |   2 +
>  xen/common/domain-builder/core.c       |  86 +++++
>  xen/common/domain-builder/fdt.c        | 512 +++++++++++++++++++++++++
>  xen/common/domain-builder/fdt.h        |  40 ++
>  xen/include/xen/domain-builder.h       |  37 ++
>  xen/include/xen/libfdt/libfdt-xen.h    |  23 ++
>  13 files changed, 800 insertions(+), 17 deletions(-)
>  create mode 100644 xen/common/domain-builder/Kconfig
>  create mode 100644 xen/common/domain-builder/Makefile
>  create mode 100644 xen/common/domain-builder/core.c
>  create mode 100644 xen/common/domain-builder/fdt.c
>  create mode 100644 xen/common/domain-builder/fdt.h
>  create mode 100644 xen/include/xen/domain-builder.h
>=20
> --
> 2.43.0
>=20
>=20



From xen-devel-bounces@lists.xenproject.org Thu Apr 24 22:25:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 24 Apr 2025 22:25:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.967014.1357019 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u850Q-0007La-4j; Thu, 24 Apr 2025 22:25:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 967014.1357019; Thu, 24 Apr 2025 22: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 1u850Q-0007LT-15; Thu, 24 Apr 2025 22:25:18 +0000
Received: by outflank-mailman (input) for mailman id 967014;
 Thu, 24 Apr 2025 22:25: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=/BVb=XK=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u850N-0007LN-Ve
 for xen-devel@lists.xenproject.org; Thu, 24 Apr 2025 22:25:16 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fcb6cc6d-215a-11f0-9eb2-5ba50f476ded;
 Fri, 25 Apr 2025 00:25:13 +0200 (CEST)
Received: from [192.168.7.202] ([71.202.166.45]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53OMORWG1692289
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NO);
 Thu, 24 Apr 2025 15:24:28 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fcb6cc6d-215a-11f0-9eb2-5ba50f476ded
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53OMORWG1692289
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745533472;
	bh=G5UVXicyTBIPs6yn0Aol/9aUmVhDamNK2RBM6HiC8ec=;
	h=Date:Subject:To:Cc:References:From:In-Reply-To:From;
	b=aIcpLSsAz7DGTiM9hjhLHyD03dBWLKbzaB0V7WrZg3rVc8ktBSYGZKS94ZpxkPHnw
	 CsFJQCtr1TeOAu7k8gJdRylK+VYPpFazuWZNgwVB32EqC/nJxAiobWbnAqdHF65XG2
	 +FO7dAWYnt93+w+yiJ8iigZ28z1jIOGv0wAmPXqKWpxUUG4KtkHHdonr86KgEl9+fD
	 7Y9QDxWWLyY4HpxDsapGfWsbm1L0xMFDZR8rHZtRI58j1lRq1WnC1HJADQJGBgpjyn
	 A0jWqTb6KjE+o3MzIzTtJ2zwLsjRHOlx4VenrIMKzRUYWNwBX4y23nDAjPzb2IQV56
	 EdGEcpRBEmJvg==
Message-ID: <7649416e-1955-4c9c-a851-8b0c4da34c6f@zytor.com>
Date: Thu, 24 Apr 2025 15:24:27 -0700
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH v2 12/34] x86/msr: Remove pmu_msr_{read,write}()
To: "H. Peter Anvin" <hpa@zytor.com>,
        =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?=
 <jgross@suse.com>,
        linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
        linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
        netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, acme@kernel.org,
        andrew.cooper3@citrix.com, peterz@infradead.org, namhyung@kernel.org,
        mark.rutland@arm.com, alexander.shishkin@linux.intel.com,
        jolsa@kernel.org, irogers@google.com, adrian.hunter@intel.com,
        kan.liang@linux.intel.com, wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com
References: <20250422082216.1954310-1-xin@zytor.com>
 <20250422082216.1954310-13-xin@zytor.com>
 <8944b510-6d70-472c-99a2-52a60517733d@suse.com>
 <ca088501-2fbe-4a32-b191-04f7be6a2713@zytor.com>
 <018705C7-35CF-406A-85DA-360FF7BCB072@zytor.com>
Content-Language: en-US
From: Xin Li <xin@zytor.com>
Autocrypt: addr=xin@zytor.com; keydata=
 xsDNBGUPz1cBDACS/9yOJGojBFPxFt0OfTWuMl0uSgpwk37uRrFPTTLw4BaxhlFL0bjs6q+0
 2OfG34R+a0ZCuj5c9vggUMoOLdDyA7yPVAJU0OX6lqpg6z/kyQg3t4jvajG6aCgwSDx5Kzg5
 Rj3AXl8k2wb0jdqRB4RvaOPFiHNGgXCs5Pkux/qr0laeFIpzMKMootGa4kfURgPhRzUaM1vy
 bsMsL8vpJtGUmitrSqe5dVNBH00whLtPFM7IbzKURPUOkRRiusFAsw0a1ztCgoFczq6VfAVu
 raTye0L/VXwZd+aGi401V2tLsAHxxckRi9p3mc0jExPc60joK+aZPy6amwSCy5kAJ/AboYtY
 VmKIGKx1yx8POy6m+1lZ8C0q9b8eJ8kWPAR78PgT37FQWKYS1uAroG2wLdK7FiIEpPhCD+zH
 wlslo2ETbdKjrLIPNehQCOWrT32k8vFNEMLP5G/mmjfNj5sEf3IOKgMTMVl9AFjsINLHcxEQ
 6T8nGbX/n3msP6A36FDfdSEAEQEAAc0WWGluIExpIDx4aW5Aenl0b3IuY29tPsLBDQQTAQgA
 NxYhBIUq/WFSDTiOvUIqv2u9DlcdrjdRBQJlD89XBQkFo5qAAhsDBAsJCAcFFQgJCgsFFgID
 AQAACgkQa70OVx2uN1HUpgv/cM2fsFCQodLArMTX5nt9yqAWgA5t1srri6EgS8W3F+3Kitge
 tYTBKu6j5BXuXaX3vyfCm+zajDJN77JHuYnpcKKr13VcZi1Swv6Jx1u0II8DOmoDYLb1Q2ZW
 v83W55fOWJ2g72x/UjVJBQ0sVjAngazU3ckc0TeNQlkcpSVGa/qBIHLfZraWtdrNAQT4A1fa
 sWGuJrChBFhtKbYXbUCu9AoYmmbQnsx2EWoJy3h7OjtfFapJbPZql+no5AJ3Mk9eE5oWyLH+
 QWqtOeJM7kKvn/dBudokFSNhDUw06e7EoVPSJyUIMbYtUO7g2+Atu44G/EPP0yV0J4lRO6EA
 wYRXff7+I1jIWEHpj5EFVYO6SmBg7zF2illHEW31JAPtdDLDHYcZDfS41caEKOQIPsdzQkaQ
 oW2hchcjcMPAfyhhRzUpVHLPxLCetP8vrVhTvnaZUo0xaVYb3+wjP+D5j/3+hwblu2agPsaE
 vgVbZ8Fx3TUxUPCAdr/p73DGg57oHjgezsDNBGUPz1gBDAD4Mg7hMFRQqlzotcNSxatlAQNL
 MadLfUTFz8wUUa21LPLrHBkUwm8RujehJrzcVbPYwPXIO0uyL/F///CogMNx7Iwo6by43KOy
 g89wVFhyy237EY76j1lVfLzcMYmjBoTH95fJC/lVb5Whxil6KjSN/R/y3jfG1dPXfwAuZ/4N
 cMoOslWkfZKJeEut5aZTRepKKF54T5r49H9F7OFLyxrC/uI9UDttWqMxcWyCkHh0v1Di8176
 jjYRNTrGEfYfGxSp+3jYL3PoNceIMkqM9haXjjGl0W1B4BidK1LVYBNov0rTEzyr0a1riUrp
 Qk+6z/LHxCM9lFFXnqH7KWeToTOPQebD2B/Ah5CZlft41i8L6LOF/LCuDBuYlu/fI2nuCc8d
 m4wwtkou1Y/kIwbEsE/6RQwRXUZhzO6llfoN96Fczr/RwvPIK5SVMixqWq4QGFAyK0m/1ap4
 bhIRrdCLVQcgU4glo17vqfEaRcTW5SgX+pGs4KIPPBE5J/ABD6pBnUUAEQEAAcLA/AQYAQgA
 JhYhBIUq/WFSDTiOvUIqv2u9DlcdrjdRBQJlD89ZBQkFo5qAAhsMAAoJEGu9DlcdrjdR4C0L
 /RcjolEjoZW8VsyxWtXazQPnaRvzZ4vhmGOsCPr2BPtMlSwDzTlri8BBG1/3t/DNK4JLuwEj
 OAIE3fkkm+UG4Kjud6aNeraDI52DRVCSx6xff3bjmJsJJMb12mWglN6LjdF6K+PE+OTJUh2F
 dOhslN5C2kgl0dvUuevwMgQF3IljLmi/6APKYJHjkJpu1E6luZec/lRbetHuNFtbh3xgFIJx
 2RpgVDP4xB3f8r0I+y6ua+p7fgOjDLyoFjubRGed0Be45JJQEn7A3CSb6Xu7NYobnxfkwAGZ
 Q81a2XtvNS7Aj6NWVoOQB5KbM4yosO5+Me1V1SkX2jlnn26JPEvbV3KRFcwV5RnDxm4OQTSk
 PYbAkjBbm+tuJ/Sm+5Yp5T/BnKz21FoCS8uvTiziHj2H7Cuekn6F8EYhegONm+RVg3vikOpn
 gao85i4HwQTK9/D1wgJIQkdwWXVMZ6q/OALaBp82vQ2U9sjTyFXgDjglgh00VRAHP7u1Rcu4
 l75w1xInsg==
In-Reply-To: <018705C7-35CF-406A-85DA-360FF7BCB072@zytor.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

> By the way, this patch should have "xen" in its subject tag.
> 

Right, I should add it.


From xen-devel-bounces@lists.xenproject.org Fri Apr 25 00:21:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 00:21:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.967056.1357030 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u86p1-0007kQ-5i; Fri, 25 Apr 2025 00:21:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 967056.1357030; Fri, 25 Apr 2025 00: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 1u86p1-0007kJ-16; Fri, 25 Apr 2025 00:21:39 +0000
Received: by outflank-mailman (input) for mailman id 967056;
 Fri, 25 Apr 2025 00:21:37 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=6c45=XL=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u86oz-0007kD-Oo
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 00:21:37 +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 3d3c860b-216b-11f0-9ffb-bf95429c2676;
 Fri, 25 Apr 2025 02:21:32 +0200 (CEST)
Received: by mail-wr1-x429.google.com with SMTP id
 ffacd0b85a97d-39d83782ef6so1999287f8f.0
 for <xen-devel@lists.xenproject.org>; Thu, 24 Apr 2025 17:21:32 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3a073e5d264sm699788f8f.95.2025.04.24.17.21.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 24 Apr 2025 17:21: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: 3d3c860b-216b-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745540491; x=1746145291; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Sk6H0e+9GJica8QkgR4gZVIscIty2mo0HB15NcL001U=;
        b=WUnd20kZYwVkajo0P5xbmMs2GkddLmHkyQkn1+CiGMvbZMeJwy0i96XfG1pmz1x2YX
         nSuJB8YzScCcooK0otd7p7HSf0O9vyB+7qTtFaLtpOVJJjZEJKx9gw2sjZjVXHO/6ZDj
         tVxT+wSjk/NpveKJfzpipZFY6DoYxHyIcuMVY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745540491; x=1746145291;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Sk6H0e+9GJica8QkgR4gZVIscIty2mo0HB15NcL001U=;
        b=TiMzc/tZ4B6Mn88r4VQv+xKwbxSOAskdPcaH37JDMtjSyBIMruwd+XuH/QmjYxCRm9
         5/ikaOav2Ahefgb1SQNrpoG/lPzhI5F5wlUobGuHXjBQpQkrXXKaToS9E+ik9pOVtF1s
         k4UG8eeBDIOK7hGq121TZjF+pRDlBD8Q2T6VKaY/0ncmG8y8VsSThQeJaigIlhIRAE50
         8uvs2HHqE0NJ1vgIqDa+u4M+lvIY+zhj1On8rSE2ikyCLTX9hXbPWFtiuK1XENLwTOgJ
         ukQY2/8Q3wcIr33EMi7rrq0SGGRTfv+gKWKxILAcqcT8PPsU9l2KDJe3esNX11Sr8XkA
         u0SQ==
X-Forwarded-Encrypted: i=1; AJvYcCXAJUycmpaD11TuYbeu+jDxYQ0iRfLBA52759hoUCetnycmI1ng7in5gobp5iA5hL66zzvmmMZ72IU=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxha3r9SPNFnmgiYG9SCHKKD/dwEMyJoHuobRMrPfiKaL/y5elq
	9qHx1lnaOYS047xuHhTXURDj0hgxG45R3+jOr+FJ2XvLpzs9tU7Lfgegp2cXwDo=
X-Gm-Gg: ASbGncv1ZgbHbgISkuvgOC1TUvBk30VX9AWwkEDE2vEKy39zvPSt6EBGopSC8Le2fWF
	l8NajAwKFFx+SsXwRVljb2VHz7A9CQdbtnZjlnQrWZWsRLXudMHHs73eUEGz0Gk0D6P6y3H2r9y
	pr4/1pEteDnEsBujIsqKDEZqDqH0IF5rVPKfWd4OHZ5J/RR3xz5GZsNVpm719dnuqBmmAVZ5HOj
	ES89t7WTMcuMVFwfLKTWNUKHS3rcMJhTLtaSy3dNMWukI6OZ0ajjx3GdfGMvk/Koa1aXYOMG/dA
	j0bilSHtY5oYVruulq9c8HhAgqoCew8z09pJZc2fWqjc8K62qNALjMteXsE0EBztkjBp8Ucxe1p
	o4UrFNQ==
X-Google-Smtp-Source: AGHT+IHqFOSCfu/XNN9VUutcNZgua+Tp1fWjvB5fXbS5niXgPEwOiZEU/+DAVTXmQ6ole2CleGo8Ww==
X-Received: by 2002:a05:6000:40c7:b0:39f:d13:32a with SMTP id ffacd0b85a97d-3a074d4f2c9mr98182f8f.29.1745540484401;
        Thu, 24 Apr 2025 17:21:24 -0700 (PDT)
Message-ID: <bc0fb7ca-92f5-4625-9c73-a6d743f4a306@citrix.com>
Date: Fri, 25 Apr 2025 01:21:22 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH] misra: update list of GCC extensions used by Xen
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org, michal.orzel@amd.com,
 xenia.ragiadakou@amd.com, ayan.kumar.halder@amd.com, consulting@bugseng.com,
 Doug Goldstein <cardoe@cardoe.com>,
 Anthony PERARD <anthony.perard@vates.tech>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <da508095ef2ac0024dfe9f51d9da976da0eaead7.1745441038.git.nicola.vetrini@bugseng.com>
 <alpine.DEB.2.22.394.2504231354540.785180@ubuntu-linux-20-04-desktop>
 <76b7438b-9459-4f41-ab18-b777f7b3fcff@citrix.com>
 <1d362e4df1e0b483c31fdab4384f57f0@bugseng.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: <1d362e4df1e0b483c31fdab4384f57f0@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 24/04/2025 8:27 am, Nicola Vetrini wrote:
> On 2025-04-24 00:46, Andrew Cooper wrote:
>> On 23/04/2025 9:55 pm, Stefano Stabellini wrote:
>>> On Wed, 23 Apr 2025, Nicola Vetrini wrote:
>>>> __inline was not mentioned in C-language-toolchain.rst, while
>>>> __inline__ is not used in code under xen/. __inline is kept because it
>>>> may be used in Xen. The ECLAIR configuration is now consistent with
>>>> the
>>>> documented extensions in the rst file.
>>>>
>>>> No functional change.
>>>>
>>>> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
>>> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
>>
>> Hmm.  f96e2f64576cd
>>
>> I take it that patch shouldn't have gone in then?
>>
>> Regardless, now that we're putting it back in, we should put in both
>> __inline and __inline__, so as not to need to come back and repeat this
>> patch again.
>>
>> ~Andrew
>
> Did I miss the addition of __inline__ here?
> https://lore.kernel.org/xen-devel/20250422113957.1289290-1-andrew.cooper3@citrix.com/
>
>
> No issue with adjusting it as you wrote, but my understanding was that
> only __inline will reenter the codebase.
>

Sods law says that if we introduce __inline now, we might have
__inline__ get back in too.

For the other keywords, we cover all spellings, so we ought to be
consistent here too.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Apr 25 01:16:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 01:16:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.967087.1357039 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u87fw-0005sq-1J; Fri, 25 Apr 2025 01:16:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 967087.1357039; Fri, 25 Apr 2025 01:16: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 1u87fv-0005sj-UH; Fri, 25 Apr 2025 01:16:19 +0000
Received: by outflank-mailman (input) for mailman id 967087;
 Fri, 25 Apr 2025 01:16: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=kyFG=XL=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u87fv-0005ro-6q
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 01:16: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 e2e6b421-2172-11f0-9eb3-5ba50f476ded;
 Fri, 25 Apr 2025 03:16:17 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 61B825C5B62;
 Fri, 25 Apr 2025 01:13:58 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 606EFC4CEE3;
 Fri, 25 Apr 2025 01:16: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: e2e6b421-2172-11f0-9eb3-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1745543775;
	bh=zeUVo3PJW7v34rEv6CBE9tM2pM+ky2r5ReJXipJMums=;
	h=Date:From:To:cc:Subject:From;
	b=CApcFpKeTBsGLm5W/ZU35bAOMjKq83DCtXENCzpgVH6gVbbA4TyKzAWYIppA9HvCV
	 S5NFnvBIJPqF+OYCJs1NYk9dWsDN48jhe2/xndYRKD+rKZ569n8w/3XYNVbDm/Yq+e
	 TspBYh8zX8600a8qkcW9kZLUds3rjzJYHhHvNZ8v/wY3HZbSZL5F0rIygMREGJrQ0G
	 3gMVPtEcYcv1ep9KwpM5z37HYUZls1yyzvUULmPS60TnvXpNSz51LSObzPlN23LLt7
	 B2YhIRYf2p2TANewBuj4SkcrOmU/exjof2H5CDvmrRHdRSzZZ6X4KtZbcCsOKf2VSc
	 ZNU1nDvG4VwMg==
Date: Thu, 24 Apr 2025 18:16:12 -0700 (PDT)
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, andrei.cherechesu@oss.nxp.com, 
    Michal Orzel <michal.orzel@amd.com>, jason.andryuk@amd.com
Subject: [PATCH v5] uboot-script-gen: Dynamically compute addr and size when
 loading binaries
Message-ID: <alpine.DEB.2.22.394.2504241808470.785180@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

From: Andrei Cherechesu <andrei.cherechesu@oss.nxp.com>

Normally, the Imagebuilder would precompute the sizes of the loaded
binaries and addresses where they are loaded before generating the
script, and the sizes and addresses that needed to be provided to
Xen via /chosen would be hardcoded in the boot script.

Added an option via "-s" parameter to avoid hardcoding any
address in the boot script, and dynamically compute the
loading addresses for binaries. The first loading address is based
on the MEMORY_START parameter and after loading each binary,
the loading address and the size of the binary are stored in
variables with corresponding names. Then, the loading address
for the next binary is computed and aligned to 0x200000.

If the "-s" parameter is not used, the normal flow is executed,
where the loading addresses and sizes for each binaries are
precomputed and hardcoded inside the script, but the loading
addresses and sizes for each binary are now also stored for eventual
later use.

Reserved memory regions are left TBD in the -s case.

Link: https://lists.xenproject.org/archives/html/xen-devel/2022-09/msg01862.html
Signed-off-by: Andrei Cherechesu <andrei.cherechesu@nxp.com>
Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
---
This patch adds quite a bit of complexity which is the reason why I
didn't originally commit it. Now that we are enabling ImageBuilder in
Yocto, it turns out this patch is required because Yocto invokes
ImageBuilder before all the binaries are ready and available.

Andrei, sorry for taking so long to realize why it is essential, but we
are getting there now.

The changes I made to the original patch are purely to make it simpler
to maintain.
---

diff --git a/README.md b/README.md
index f8039ec..28c9e6b 100644
--- a/README.md
+++ b/README.md
@@ -356,6 +356,8 @@ Where:\
    can only be used  in combination with the -k option.  This adds the
    public key into the dtb.  Then one can add this dtb back into the
    u-boot bin or elf.\
+-s addresses and sizes are calculated dynamically from U-Boot, hence
+   binaries don't need to be available at the time of invocation.\
 
 ### Signed FIT images
 
diff --git a/scripts/uboot-script-gen b/scripts/uboot-script-gen
index 638154a..ee4af6c 100755
--- a/scripts/uboot-script-gen
+++ b/scripts/uboot-script-gen
@@ -1,8 +1,11 @@
 #!/bin/bash
 
 offset=$((2*1024*1024))
+PADDING_MASK=`printf "0x%X\n" $(($offset - 1))`
+PADDING_MASK_INV=`printf "0x%X\n" $((~$PADDING_MASK))`
 filesize=0
 prog_req=(mkimage file fdtput mktemp awk od)
+CALC=""
 
 function cleanup_and_return_err()
 {
@@ -100,17 +103,42 @@ function dt_set()
     fi
 }
 
+function dt_set_calc()
+{
+    local path=$1
+    local var=$2
+    local name_var=$3
+ 
+    addr_var="$name_var"_addr
+    size_var="$name_var"_size
+
+    # Split data_addr_var into high/low
+    echo "setexpr addr_hi \${"$addr_var"} / 0x100000000" >> $UBOOT_SOURCE
+    echo "setexpr addr_lo \${"$addr_var"} \& 0xFFFFFFFF" >> $UBOOT_SOURCE
+    
+    # Split data_size_var into high/low
+    echo "setexpr size_hi \${"$size_var"} / 0x100000000" >> $UBOOT_SOURCE
+    echo "setexpr size_lo \${"$size_var"} \& 0xFFFFFFFF" >> $UBOOT_SOURCE
+    
+    echo "fdt set $path $var <0x\${addr_hi} 0x\${addr_lo} 0x\${size_hi} 0x\${size_lo}>" >> $UBOOT_SOURCE
+}
+
 function add_device_tree_kernel()
 {
     local path=$1
-    local addr=$2
-    local size=$3
-    local bootargs=$4
+    local name=$2
+    local addr=$3
+    local size=$4
+    local bootargs=$5
     local node_name="module@${addr#0x}"
 
     dt_mknode "$path" "$node_name"
     dt_set "$path/$node_name" "compatible" "str_a" "multiboot,kernel multiboot,module"
-    dt_set "$path/$node_name" "reg" "hex"  "$(split_addr_size $addr $size)"
+    if test "$CALC"; then
+        dt_set_calc "$path/$node_name" "reg" $name
+    else
+        dt_set "$path/$node_name" "reg" "hex"  "$(split_addr_size $addr $size)"
+    fi
     dt_set "$path/$node_name" "bootargs" "str" "$bootargs"
 }
 
@@ -118,26 +146,36 @@ function add_device_tree_kernel()
 function add_device_tree_ramdisk()
 {
     local path=$1
-    local addr=$2
-    local size=$3
+    local name=$2
+    local addr=$3
+    local size=$4
     local node_name="module@${addr#0x}"
 
     dt_mknode "$path"  "$node_name"
     dt_set "$path/$node_name" "compatible" "str_a" "multiboot,ramdisk multiboot,module"
-    dt_set "$path/$node_name" "reg" "hex"  "$(split_addr_size $addr $size)"
+    if test "$CALC"; then
+        dt_set_calc "$path/$node_name" "reg" $name
+    else
+        dt_set "$path/$node_name" "reg" "hex"  "$(split_addr_size $addr $size)"
+    fi
 }
 
 
 function add_device_tree_passthrough()
 {
     local path=$1
-    local addr=$2
-    local size=$3
+    local name=$2
+    local addr=$3
+    local size=$4
     local node_name="module@${addr#0x}"
 
     dt_mknode "$path"  "$node_name"
     dt_set "$path/$node_name" "compatible" "str_a" "multiboot,device-tree multiboot,module"
-    dt_set "$path/$node_name" "reg" "hex"  "$(split_addr_size $addr $size)"
+    if test "$CALC"; then
+        dt_set_calc "$path/$node_name" "reg" $name
+    else
+        dt_set "$path/$node_name" "reg" "hex"  "$(split_addr_size $addr $size)"
+    fi
 }
 
 function add_device_tree_mem()
@@ -358,7 +396,11 @@ function xen_device_tree_editing()
 
         dt_mknode "/chosen" "$node_name"
         dt_set "/chosen/$node_name" "compatible" "str_a" "xen,xsm-policy xen,multiboot-module multiboot,module"
-        dt_set "/chosen/$node_name" "reg" "hex" "$(split_addr_size $xen_policy_addr $xen_policy_size)"
+        if test "$CALC"; then
+            dt_set_calc "/chosen/$node_name" "reg" "xen_policy"
+        else
+            dt_set "/chosen/$node_name" "reg" "hex" "$(split_addr_size $xen_policy_addr $xen_policy_size)"
+        fi
     fi
 
     if test "$DOM0_KERNEL"
@@ -367,7 +409,11 @@ function xen_device_tree_editing()
 
         dt_mknode "/chosen" "$node_name"
         dt_set "/chosen/$node_name" "compatible" "str_a" "xen,linux-zimage xen,multiboot-module multiboot,module"
-        dt_set "/chosen/$node_name" "reg" "hex" "$(split_addr_size $dom0_kernel_addr $dom0_kernel_size)"
+        if test "$CALC"; then
+            dt_set_calc "/chosen/$node_name" "reg" "dom0_linux"
+        else
+            dt_set "/chosen/$node_name" "reg" "hex" "$(split_addr_size $dom0_kernel_addr $dom0_kernel_size)"
+        fi
         dt_set "/chosen" "xen,dom0-bootargs" "str" "$DOM0_CMD"
     fi
 
@@ -377,7 +423,11 @@ function xen_device_tree_editing()
 
         dt_mknode "/chosen" "$node_name"
         dt_set "/chosen/$node_name" "compatible" "str_a" "xen,linux-initrd xen,multiboot-module multiboot,module"
-        dt_set "/chosen/$node_name" "reg" "hex" "$(split_addr_size $ramdisk_addr $ramdisk_size)"
+        if test "$CALC"; then
+            dt_set_calc "/chosen/$node_name" "reg" "dom0_ramdisk"
+        else
+            dt_set "/chosen/$node_name" "reg" "hex" "$(split_addr_size $ramdisk_addr $ramdisk_size)"
+        fi
     fi
 
     i=0
@@ -464,14 +514,14 @@ function xen_device_tree_editing()
 
         xen_dt_domu_add_vcpu_nodes "/chosen/domU$i" $i ${DOMU_VCPUS[$i]}
 
-        add_device_tree_kernel "/chosen/domU$i" ${domU_kernel_addr[$i]} ${domU_kernel_size[$i]} "${DOMU_CMD[$i]}"
+        add_device_tree_kernel "/chosen/domU$i" "domU${i}_kernel" ${domU_kernel_addr[$i]} ${domU_kernel_size[$i]} "${DOMU_CMD[$i]}"
         if test "${domU_ramdisk_addr[$i]}"
         then
-            add_device_tree_ramdisk "/chosen/domU$i" ${domU_ramdisk_addr[$i]} ${domU_ramdisk_size[$i]}
+            add_device_tree_ramdisk "/chosen/domU$i" "domU${i}_ramdisk" ${domU_ramdisk_addr[$i]} ${domU_ramdisk_size[$i]}
         fi
         if test "${domU_passthrough_dtb_addr[$i]}"
         then
-            add_device_tree_passthrough "/chosen/domU$i" ${domU_passthrough_dtb_addr[$i]} ${domU_passthrough_dtb_size[$i]}
+            add_device_tree_passthrough "/chosen/domU$i" "domU${i}_fdt" ${domU_passthrough_dtb_addr[$i]} ${domU_passthrough_dtb_size[$i]}
         fi
         i=$(( $i + 1 ))
     done
@@ -504,7 +554,11 @@ function device_tree_editing()
 
     if test $UBOOT_SOURCE
     then
-        echo "fdt addr $device_tree_addr" >> $UBOOT_SOURCE
+        if test "$CALC"; then
+            echo "fdt addr \${host_fdt_addr}" >> $UBOOT_SOURCE
+        else
+            echo "fdt addr $device_tree_addr" >> $UBOOT_SOURCE
+        fi
         echo "fdt resize 1024" >> $UBOOT_SOURCE
 
         if test $NUM_DT_OVERLAY && test $NUM_DT_OVERLAY -gt 0
@@ -512,7 +566,11 @@ function device_tree_editing()
             i=0
             while test $i -lt $NUM_DT_OVERLAY
             do
-                echo "fdt apply ${dt_overlay_addr[$i]}" >> $UBOOT_SOURCE
+                if test "$CALC"; then
+                    echo "fdt apply \${host_fdto${i}_addr}" >> $UBOOT_SOURCE
+                else
+                    echo "fdt apply ${dt_overlay_addr[$i]}" >> $UBOOT_SOURCE
+                fi
                 i=$(( $i + 1 ))
             done
         fi
@@ -530,8 +588,12 @@ function fill_reserved_spaces_from_dtb()
 {
     if [ ! -f $DEVICE_TREE ]
     then
-        echo "File $DEVICE_TREE doesn't exist, exiting";
-        cleanup_and_return_err
+        if test "$CALC"; then
+            return
+        else
+            echo "File $DEVICE_TREE doesn't exist, exiting";
+            cleanup_and_return_err
+        fi
     fi
 
     # Check if reserved-memory node exists
@@ -613,7 +675,7 @@ function get_image_size()
     printf "%u" $effective_size
 }
 
-function add_size()
+function add_size_from_file()
 {
     local filename=$1
     local size=`stat -L --printf="%s" $filename`
@@ -645,6 +707,24 @@ function add_size()
     filesize=$size
 }
 
+function add_size_calculate()
+{
+    local fit_scr_name=$1
+
+    echo "setenv "$fit_scr_name"_addr \${memaddr}" >> $UBOOT_SOURCE
+    echo "setenv "$fit_scr_name"_size \${filesize}" >> $UBOOT_SOURCE
+    echo "setexpr memaddr \${memaddr} \+ \${filesize}" >> $UBOOT_SOURCE
+    echo "setexpr memaddr \${memaddr} \+ $PADDING_MASK" >> $UBOOT_SOURCE
+    echo "setexpr memaddr \${memaddr} \& $PADDING_MASK_INV" >> $UBOOT_SOURCE
+
+    # TODO: missing ${RESERVED_MEM_SPACES[@]} check
+
+    # The following are updated to avoid collisions in node names, but
+    # they are not actively used.
+    memaddr=$((memaddr + offset))
+    filesize=$offset
+}
+
 function load_file()
 {
     local filename=$1
@@ -657,10 +737,16 @@ function load_file()
     if test "$FIT"
     then
         echo "imxtract \$fit_addr $fit_scr_name $memaddr" >> $UBOOT_SOURCE
+        add_size_from_file $filename
     else
-        echo "$LOAD_CMD $memaddr ${prepend_path:+$prepend_path/}$relative_path" >> $UBOOT_SOURCE
+        if test "$CALC"; then
+            echo "$LOAD_CMD \${memaddr} ${prepend_path:+$prepend_path/}$relative_path" >> $UBOOT_SOURCE
+            add_size_calculate $fit_scr_name
+        else
+            echo "$LOAD_CMD $memaddr ${prepend_path:+$prepend_path/}$relative_path" >> $UBOOT_SOURCE
+            add_size_from_file $filename
+        fi
     fi
-    add_size $filename
 }
 
 function check_file_type()
@@ -670,8 +756,13 @@ function check_file_type()
 
     if [ ! -f $filename ]
     then
-        echo "File $filename doesn't exist, exiting";
-        cleanup_and_return_err
+        if test "$CALC"
+        then
+            return
+        else
+            echo "File $filename doesn't exist, exiting";
+            cleanup_and_return_err
+        fi
     fi
 
     # if file doesn't know what it is, it outputs data, so include that
@@ -705,8 +796,13 @@ function check_compressed_file_type()
 
     if [ ! -f $filename ]
     then
-        echo "File $filename doesn't exist, exiting";
-        cleanup_and_return_err
+        if test "$CALC"
+        then
+            return
+        else
+            echo "File $filename doesn't exist, exiting";
+            cleanup_and_return_err
+        fi
     fi
 
     file_type=$( file -L $filename )
@@ -872,6 +968,12 @@ function linux_config()
 generate_uboot_images()
 {
     local arch=$(file -L $XEN | grep -E 'ARM64|Aarch64')
+    
+    if test "$CALC"
+    then
+        echo "bootm is not compatible with -s"
+        cleanup_and_return_err
+    fi
 
     if test "$arch"
     then
@@ -997,7 +1099,11 @@ bitstream_load_and_config()
         if test "$UBOOT_SOURCE"
         then
             # we assume the FPGA device is 0 here
-            echo "fpga load 0 $bitstream_addr $bitstream_size" >> "$UBOOT_SOURCE"
+            if test "$CALC"; then
+                echo "fpga load 0 \${fpga_bitstream_addr} \${fpga_bitstream_size}" >> "$UBOOT_SOURCE"
+            else
+                echo "fpga load 0 $bitstream_addr $bitstream_size" >> "$UBOOT_SOURCE"
+            fi
         fi
     fi
 }
@@ -1271,7 +1377,7 @@ function print_help
 {
     script=`basename "$0"`
     echo "usage:"
-    echo "	$script -c CONFIG_FILE -d DIRECTORY [-t LOAD_CMD] [-o FILE] [-k KEY_DIR/HINT [-u U-BOOT_DTB]] [-e] [-f] [-p PREPEND_PATH]"
+    echo "	$script -c CONFIG_FILE -d DIRECTORY [-t LOAD_CMD] [-o FILE] [-k KEY_DIR/HINT [-u U-BOOT_DTB]] [-e] [-f] [-p PREPEND_PATH] [-s]"
     echo "	$script -h"
     echo "where:"
     echo "	CONFIG_FILE - configuration file"
@@ -1288,6 +1394,7 @@ function print_help
     echo "	U-BOOT_DTB - u-boot control dtb so that the public key gets added to it"
     echo "	-f - enable generating a FIT image"
     echo "	PREPEND_PATH - path to be appended before file names to match deploy location within rootfs"
+    echo "	-s - enable dynamic loading of binaries by storing their addresses and sizes u-boot env variables"
     echo "	-h - prints out the help message and exits "
     echo "Defaults:"
     echo "	CONFIG_FILE=$cfg_file, UBOOT_TYPE=\"LOAD_CMD\" env var, DIRECTORY=$uboot_dir"
@@ -1295,7 +1402,7 @@ function print_help
     echo "	$script -c ../config -d ./build42 -t \"scsi load 1:1\""
 }
 
-while getopts ":c:t:d:ho:k:u:fp:" opt; do
+while getopts ":c:t:d:ho:k:u:fp:s" opt; do
     case ${opt} in
     t )
         case $OPTARG in
@@ -1340,6 +1447,9 @@ while getopts ":c:t:d:ho:k:u:fp:" opt; do
     p )
         prepend_path="$OPTARG"
         ;;
+    s )
+        CALC=y
+        ;;
     h )
         print_help
         exit 0
@@ -1533,6 +1643,7 @@ uboot_addr=$memaddr
 # 2MB are enough for a uboot script
 memaddr=$(( $memaddr + $offset ))
 memaddr=`printf "0x%X\n" $memaddr`
+echo "setenv memaddr $memaddr" >> $UBOOT_SOURCE
 
 fill_reserved_spaces_from_dtb
 
@@ -1583,7 +1694,11 @@ fi
 
 if [ "$BOOT_CMD" != "none" ]
 then
-    echo "$BOOT_CMD $kernel_addr $([ "$BOOT_CMD" = "bootefi" ] || echo '-') $device_tree_addr" >> $UBOOT_SOURCE
+    if test "$CALC"; then
+        echo "$BOOT_CMD \${host_kernel_addr} $([ "$BOOT_CMD" = "bootefi" ] || echo '-') \${host_fdt_addr}" >> $UBOOT_SOURCE
+    else
+        echo "$BOOT_CMD $kernel_addr $([ "$BOOT_CMD" = "bootefi" ] || echo '-') $device_tree_addr" >> $UBOOT_SOURCE
+    fi
 else
     # skip boot command but store load addresses to be used later
     echo "setenv host_kernel_addr $kernel_addr" >> $UBOOT_SOURCE


From xen-devel-bounces@lists.xenproject.org Fri Apr 25 01:16:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 01:16:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.967090.1357049 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u87gD-0006E2-CV; Fri, 25 Apr 2025 01:16:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 967090.1357049; Fri, 25 Apr 2025 01: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 1u87gD-0006Dv-8k; Fri, 25 Apr 2025 01:16:37 +0000
Received: by outflank-mailman (input) for mailman id 967090;
 Fri, 25 Apr 2025 01:16: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=tq29=XL=zytor.com=hpa@srs-se1.protection.inumbo.net>)
 id 1u87gC-0005ro-1R
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 01:16:36 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id eccefaf0-2172-11f0-9eb3-5ba50f476ded;
 Fri, 25 Apr 2025 03:16:34 +0200 (CEST)
Received: from [172.27.3.244] ([76.133.66.138]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53P1FaK51878943
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NO);
 Thu, 24 Apr 2025 18:15:37 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: eccefaf0-2172-11f0-9eb3-5ba50f476ded
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53P1FaK51878943
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745543740;
	bh=Eqcm/Hif/MkDs4mjYz2tKFyoVP1HuqqqBruNWCY5tSI=;
	h=Date:Subject:To:Cc:References:From:In-Reply-To:From;
	b=bwKC9WDGeH6PKjPk6PbPnscfTUG7uO0p90T8jZtRz/H1uV5R0u0jHyKPLpz4Lzuza
	 jaan86VUYCLDqr62mFWyqSXvvBjaf+ve6G5ZtKNwudj3pQxiq/p0DQHubDAWAL4iVK
	 Num9qesxZzs6c+gaFJIpcjhHqgTrRqcXI4bwh1tGXr1pf3tvinHjceiUPk+LlVYVAf
	 mYaL7M4P9z3kr6aQ69HDJ4GJ4kjHFXVFi/8OoAlHsRrCGt5QgNwZK3Agfp39Cx1S5g
	 BERlMv7+KxMZFAhG9+QYjnrsyKHBCBRF3w4ALl9e3WkwPa1KT4qcT1tq3RLd9c/O5Z
	 dx3hBdqeJAyRA==
Message-ID: <483eb20c-7302-4733-a15f-21d140396919@zytor.com>
Date: Thu, 24 Apr 2025 18:15:36 -0700
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH v2 21/34] x86/msr: Utilize the alternatives mechanism
 to write MSR
To: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>,
        Xin Li
 <xin@zytor.com>, linux-kernel@vger.kernel.org,
        kvm@vger.kernel.org, linux-perf-users@vger.kernel.org,
        linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
        linux-pm@vger.kernel.org, linux-edac@vger.kernel.org,
        xen-devel@lists.xenproject.org, linux-acpi@vger.kernel.org,
        linux-hwmon@vger.kernel.org, netdev@vger.kernel.org,
        platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, acme@kernel.org,
        andrew.cooper3@citrix.com, peterz@infradead.org, namhyung@kernel.org,
        mark.rutland@arm.com, alexander.shishkin@linux.intel.com,
        jolsa@kernel.org, irogers@google.com, adrian.hunter@intel.com,
        kan.liang@linux.intel.com, wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com
References: <20250422082216.1954310-1-xin@zytor.com>
 <20250422082216.1954310-22-xin@zytor.com>
 <b2624e84-6fab-44a3-affc-ce0847cd3da4@suse.com>
 <f7198308-e8f8-4cc5-b884-24bc5f408a2a@zytor.com>
 <37c88ea3-dd24-4607-9ee1-0f19025aaef3@suse.com>
 <bb8f6b85-4e7d-440a-a8c3-0e0da45864b8@zytor.com>
 <0cdc6e9d-88eb-4ead-8d55-985474257d53@suse.com>
Content-Language: en-US
From: "H. Peter Anvin" <hpa@zytor.com>
In-Reply-To: <0cdc6e9d-88eb-4ead-8d55-985474257d53@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 4/24/25 01:14, Jürgen Groß wrote:
>>
>> Actually, that is how we get this patch with the existing alternatives
>> infrastructure.  And we took a step further to also remove the pv_ops
>> MSR APIs...
> 
> And this is what I'm questioning. IMHO this approach is adding more
> code by removing the pv_ops MSR_APIs just because "pv_ops is bad". And
> I believe most refusal of pv_ops is based on no longer valid reasoning.
> 

pvops are a headache because it is effectively a secondary alternatives 
infrastructure that is incompatible with the alternatives one...

>> It looks to me that you want to add a new facility to the alternatives
>> infrastructure first?
> 
> Why would we need a new facility in the alternatives infrastructure?

I'm not sure what Xin means with "facility", but a key motivation for 
this is to:

a. Avoid using the pvops for MSRs when on the only remaining user 
thereof (Xen) is only using it for a very small subset of MSRs and for 
the rest it is just overhead, even for Xen;

b. Being able to do wrmsrns immediate/wrmsrns/wrmsr and rdmsr 
immediate/rdmsr alternatives.

Of these, (b) is by far the biggest motivation. The architectural 
direction for supervisor states is to avoid ad hoc and XSAVES ISA and 
instead use MSRs. The immediate forms are expected to be significantly 
faster, because they make the MSR index available at the very beginning 
of the pipeline instead of at a relatively late stage.

	-hpa



From xen-devel-bounces@lists.xenproject.org Fri Apr 25 03:45:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 03:45:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.967144.1357058 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8A04-0001uz-Ie; Fri, 25 Apr 2025 03:45:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 967144.1357058; Fri, 25 Apr 2025 03:45: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 1u8A04-0001us-G9; Fri, 25 Apr 2025 03:45:16 +0000
Received: by outflank-mailman (input) for mailman id 967144;
 Fri, 25 Apr 2025 03:45: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=tq29=XL=zytor.com=hpa@srs-se1.protection.inumbo.net>)
 id 1u8A02-0001um-S3
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 03:45:15 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b026bbb9-2187-11f0-9ffb-bf95429c2676;
 Fri, 25 Apr 2025 05:45:12 +0200 (CEST)
Received: from [IPV6:2601:646:8081:1f93:ace:6989:11eb:d5d3]
 ([IPv6:2601:646:8081:1f93:ace:6989:11eb:d5d3]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53P3iRFQ2047105
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NO);
 Thu, 24 Apr 2025 20:44:27 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b026bbb9-2187-11f0-9ffb-bf95429c2676
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53P3iRFQ2047105
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745552672;
	bh=b2EU0c9r4+7Z91N6+uKj1oR80E0vF0IHEbyiUhJnLQA=;
	h=Date:Subject:From:To:Cc:References:In-Reply-To:From;
	b=h6tkGPZf95yQ3bAcYVi/++g5apF9dA+xDaGqiCLYRc9VcHVlrJdGQsg4l29MEZ7CJ
	 aLVdgM7ERZdGZm+YeYHxkaRoWYmC139k7kZqYZoAzT/znx6Kx6O2GtZpDA/JUfvlJ1
	 CcsBsfRHddjbpCzdM4zIuzpA7epwqsOqTiZB4ua/CkyilKNABnOQlavSOZxha0+wfj
	 cX6ckW2WvvNyLFS1B2A5lWVYkYGzgGJhfmVN53iSVa6vyOu/NY5xsXrNsSQKXTH85b
	 +dwG+fJzWTGalgBqhI1nG1clXUnlMv9jRJvaiZN9wKeE5vSAPLzqIsZZs/a531ezoe
	 HihwH9Nv3ITtg==
Message-ID: <72516271-5b28-434a-838b-d8532e1b4fc1@zytor.com>
Date: Thu, 24 Apr 2025 20:44:19 -0700
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH v2 21/34] x86/msr: Utilize the alternatives mechanism
 to write MSR
From: "H. Peter Anvin" <hpa@zytor.com>
To: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>,
        Xin Li
 <xin@zytor.com>, linux-kernel@vger.kernel.org,
        kvm@vger.kernel.org, linux-perf-users@vger.kernel.org,
        linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
        linux-pm@vger.kernel.org, linux-edac@vger.kernel.org,
        xen-devel@lists.xenproject.org, linux-acpi@vger.kernel.org,
        linux-hwmon@vger.kernel.org, netdev@vger.kernel.org,
        platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, acme@kernel.org,
        andrew.cooper3@citrix.com, peterz@infradead.org, namhyung@kernel.org,
        mark.rutland@arm.com, alexander.shishkin@linux.intel.com,
        jolsa@kernel.org, irogers@google.com, adrian.hunter@intel.com,
        kan.liang@linux.intel.com, wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com
References: <20250422082216.1954310-1-xin@zytor.com>
 <20250422082216.1954310-22-xin@zytor.com>
 <b2624e84-6fab-44a3-affc-ce0847cd3da4@suse.com>
 <f7198308-e8f8-4cc5-b884-24bc5f408a2a@zytor.com>
 <37c88ea3-dd24-4607-9ee1-0f19025aaef3@suse.com>
 <bb8f6b85-4e7d-440a-a8c3-0e0da45864b8@zytor.com>
 <0cdc6e9d-88eb-4ead-8d55-985474257d53@suse.com>
 <483eb20c-7302-4733-a15f-21d140396919@zytor.com>
Content-Language: en-US
In-Reply-To: <483eb20c-7302-4733-a15f-21d140396919@zytor.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 4/24/25 18:15, H. Peter Anvin wrote:
> On 4/24/25 01:14, Jürgen Groß wrote:
>>>
>>> Actually, that is how we get this patch with the existing alternatives
>>> infrastructure.  And we took a step further to also remove the pv_ops
>>> MSR APIs...
>>
>> And this is what I'm questioning. IMHO this approach is adding more
>> code by removing the pv_ops MSR_APIs just because "pv_ops is bad". And
>> I believe most refusal of pv_ops is based on no longer valid reasoning.
>>
> 
> pvops are a headache because it is effectively a secondary alternatives 
> infrastructure that is incompatible with the alternatives one...
> 
>>> It looks to me that you want to add a new facility to the alternatives
>>> infrastructure first?
>>
>> Why would we need a new facility in the alternatives infrastructure?
> 
> I'm not sure what Xin means with "facility", but a key motivation for 
> this is to:
> 
> a. Avoid using the pvops for MSRs when on the only remaining user 
> thereof (Xen) is only using it for a very small subset of MSRs and for 
> the rest it is just overhead, even for Xen;
> 
> b. Being able to do wrmsrns immediate/wrmsrns/wrmsr and rdmsr immediate/ 
> rdmsr alternatives.
> 
> Of these, (b) is by far the biggest motivation. The architectural 
> direction for supervisor states is to avoid ad hoc and XSAVES ISA and 
> instead use MSRs. The immediate forms are expected to be significantly 
> faster, because they make the MSR index available at the very beginning 
> of the pipeline instead of at a relatively late stage.
> 

Note that to support the immediate forms, we *must* do these inline, or 
the const-ness of the MSR index -- which applies to by far the vast 
majority of MSR references -- gets lost. pvops does exactly that.

Furthermore, the MSR immediate instructions take a 64-bit number in a 
single register; as these instructions are by necessity relatively long, 
it makes sense for the alternative sequence to accept a 64-bit input 
register and do the %eax/%edx shuffle in the legacy fallback code... we 
did a bunch of experiments to see what made most sense.

	-hpa



From xen-devel-bounces@lists.xenproject.org Fri Apr 25 05:10:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 05:10:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.967171.1357068 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8BKP-00065F-FS; Fri, 25 Apr 2025 05:10:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 967171.1357068; Fri, 25 Apr 2025 05:10:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8BKP-000658-Ch; Fri, 25 Apr 2025 05:10:21 +0000
Received: by outflank-mailman (input) for mailman id 967171;
 Fri, 25 Apr 2025 05:10: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=1vdn=XL=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1u8BKO-000652-AI
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 05:10:20 +0000
Received: from NAM12-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam12on2061c.outbound.protection.outlook.com
 [2a01:111:f403:200a::61c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9380e51a-2193-11f0-9eb3-5ba50f476ded;
 Fri, 25 Apr 2025 07:10:18 +0200 (CEST)
Received: from BN9PR12MB5273.namprd12.prod.outlook.com (2603:10b6:408:11e::22)
 by DS5PPFEAC589ED8.namprd12.prod.outlook.com (2603:10b6:f:fc00::667)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.27; Fri, 25 Apr
 2025 05:10:13 +0000
Received: from BN9PR12MB5273.namprd12.prod.outlook.com
 ([fe80::cf66:58ab:47be:4b13]) by BN9PR12MB5273.namprd12.prod.outlook.com
 ([fe80::cf66:58ab:47be:4b13%4]) with mapi id 15.20.8678.025; Fri, 25 Apr 2025
 05:10: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: 9380e51a-2193-11f0-9eb3-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=P0dWVk+74JNuUY5EcAMQhIDyJz250mUMycOsjreMlzYnYbktfttp4YQSMgdEtavIotUt/HVDRp2Mp7uWp8oF5xxbdio6uxzTzCBwE2A2GQ4001hYlPenme9UdgSljD8NhXU0o4a9FEcXYl0fn7qtvbjUhnl3Oxtdrp72MBD0aRkuNUBGp7gpr4v/KqvhLksXPAV1Z8YxcDApGL9MeARWVBjy/tANwXjftgJjuTfsIm3rPd1AnoiIBmDRX/UoJfvrM4X4hauL5UfWAq2BXJPCN5AVGPuQ6P1BiTAEe8YQL1ml56IT3tUWug0Nrc1PFnKN21jVddj+5eustfpePd7iOA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=RY9BtOPWT+uN7oJHWq5UEKBsr79x0J1yoC3ECVYbNKo=;
 b=iTX8uQ0zwIL96dP1bzxFTG7HXE0SljOXU1zj4jzMzp/UQhb0lyFQnm47LJ5/KS2a/7gM+a/a4HzYcnUse7vV5zXoExtuICDSUiK5YjmW9yHf7wfdrvOSOnf3t2oRsleYzqAYvFTVhwzBf5ooeuN6dyaeWSXh217stBxn5m+5VlHQMwvdqeBwZ2ITqmCkDotvtBuUoQM9dj4gbLttss0OUjZnDgnLPYLNZmOz+zmsaMVkkoPL0r0Hb2CY/ra4axglV9A3kDNpfnGnNBi4b5CtNycZoqjOoF5szQ2MCs1mNh2sCWBoyKXaFTc4+cE0J+L/KsjamMg6/+cjljPaFS4PBQ==
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=RY9BtOPWT+uN7oJHWq5UEKBsr79x0J1yoC3ECVYbNKo=;
 b=gdQRKgkYYzU68iUB9NVDVk9F81s4wcnI+bMOpiP5sZw4qKEDUfcFdHTpl/S6NeyUY1JoY8dINrCA9FGy5O5UzijVIVgSZV+pB59d6U0nOJfun88is7V6Efj1KGa5H60uZLqPAup53iMTW+U5uU01Cd7YlevyWwDhoG3BQ2PU1IQ=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <b73c7dcc-278a-413c-addc-44aef753d1dd@amd.com>
Date: Fri, 25 Apr 2025 07:10:08 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5] uboot-script-gen: Dynamically compute addr and size
 when loading binaries
To: Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org
Cc: andrei.cherechesu@oss.nxp.com, jason.andryuk@amd.com
References: <alpine.DEB.2.22.394.2504241808470.785180@ubuntu-linux-20-04-desktop>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <alpine.DEB.2.22.394.2504241808470.785180@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR4P281CA0253.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:f5::7) To DM4PR12MB5277.namprd12.prod.outlook.com
 (2603:10b6:5:390::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN9PR12MB5273:EE_|DS5PPFEAC589ED8:EE_
X-MS-Office365-Filtering-Correlation-Id: b0b78a37-0549-4b5a-4278-08dd83b774c5
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?bElFS0RoRDhURzlEUzZ6dU5hL0xrUEJVdmR1MUhsallQYlRaQVRtZURaS2JP?=
 =?utf-8?B?MzFaYVJRend0THlXckQ1Si8yTHRVcCt1anNMNUkvUUd3STQvSkJQMlFudDhG?=
 =?utf-8?B?Q3VNQjF4cW5yMXh5MzlJYzFDakRXVzlad3BETkxlbzVsZ21CWDBYNmwwYk5D?=
 =?utf-8?B?Q1JGS3VRQXNwdThVVFQ5bHZtYlJOVTJLTUxnT3lXRnJXQW5BY05pYzI5cnkv?=
 =?utf-8?B?dGtpZUkzQ1hSbmVVL0JJTE9CS2VzL1lLUDZZNzl5OFg2UUdPeGN1aDdOeklN?=
 =?utf-8?B?SE1jVktsTjF1R1BmRjNKSXM0Y2NLQkxIL0lqS2JvSEExQ2c5OHIvL3lSWEdV?=
 =?utf-8?B?N3dLeGRNVUFreHprS1g1dmJpN3BWTW9tNlBiZ1UyMHEwSHlLYzNrbGpkS1d0?=
 =?utf-8?B?NjE3eUFVamkzWk9xS3pPOVZNRVNTc0l2UjlYNzBoK2RtQjN4RVpqUlVodlBh?=
 =?utf-8?B?K1h3WVltM0srRExHcm1JMHJ2Vnlkbm9FQkRFODdqbXNXTXEzTkJicHlrQXpF?=
 =?utf-8?B?T2VDazd0WUNmeVNVT3NkNXBtR0ExZ05nQU1JQzZUUkRoY0FCa3dWNDZ5bm9K?=
 =?utf-8?B?d1JxTWNvbFA0M0Zoallpa09NbE5SZTdYM250a0g5R2JFSjFta1BXeWczcEt3?=
 =?utf-8?B?RG5PQVNZTC9nc3h6ZTlyM2daeGZqMlpSM0pWT3Uzdkh0ZStLam9aWUVyci9z?=
 =?utf-8?B?YW1LQTh1cWoxZEVCK01NVEdHa09LUURRV254WTVHaXNreWRKRHdIWjJ1RzVn?=
 =?utf-8?B?TTVUZUxxTXA0T2pIa204ZDhPUWU3V2hBTFRySGZ1UXpsaHhFRDI4TDAybEtG?=
 =?utf-8?B?OW9zMGFZaUppKzF0VllvVHNybkRrV0xFVnV2SGxET1JsRjBPUFBRQlFHWkwr?=
 =?utf-8?B?UjllRUVyWVpuT0V1aEJDNm81WnRHekxDdmNTamFpWlh1UlZadGJ0TFQvSWVD?=
 =?utf-8?B?NExHYWdlcG1PSTU1MlFSRkVkTWxwYngxcmxJbzJhL1ZtaGF6aGxEaXQyMG5k?=
 =?utf-8?B?MGMrNEFqRXBWaDhvcTl4RFc1N0J6VjVwZjFnSGNwWHZBWGtDcnBrbWljYXVi?=
 =?utf-8?B?NWJhcmVzQlo0Z05sSG9mdjBGekdvNk4rNXNLZi9jVUxBbzA1c0dTTEE3ZExi?=
 =?utf-8?B?NmRBNUxDVzVJNm96YjNuN0kxSjNDa2hyaEQ2cDNpSENTT2ZtQWlGWTNrN2Qv?=
 =?utf-8?B?cDNsbkxJZURrbGhma2RkVXpQZ2dlN1dlY1FCYUFPZUZlQk5oLzQxTXB3M1dO?=
 =?utf-8?B?N2MwV2lZUzJra3drMGtSd2pIMGtjWUVqZjJ3N2FMcC9FeURHOXVsendwcmNS?=
 =?utf-8?B?WDlYOTc4cVA3aEFLRnFjS3dRVHdxdHExaENrN2RHaEt1YUlET2cwQUhQL2RR?=
 =?utf-8?B?VVBoQUVuSTdPOThZZUttaEROcUhKMEZ4YWFGYUx2Z0c4UDVEZk0xcUVYQ3NC?=
 =?utf-8?B?ckZiTFdtTGVOSjk5WmdTcUZQclNoaURsSnp1VjVQUG5uQk9JSnZ1REdnbkdT?=
 =?utf-8?B?TkFvWmpNM3lTUGhtSFBxOFJoZDhUeGE5ZFNSL1hjR05Damk4RzhMT241R1RC?=
 =?utf-8?B?dm9aT2xaMEk4cWxKb1FzbGpSZEhZZWZZRmc4VGJGUFdMa1d4NFJLd0ticEcx?=
 =?utf-8?B?VjJFdS9GbFI2U2NrSlFTbS9SMnNEYTdPOXBKS2xJaWVGaVJCNURsTXhwcU9V?=
 =?utf-8?B?VVUwWXRnQkZwdjB2NjZwYzZDQ1R0V1V1R3Nia3l4N3BXQkhybHdGVUJ1R0Fi?=
 =?utf-8?B?YTlMTWdBTStobzZIOUFmcmRUcFE0STBIbVhZQWh4ZEpxbi96ampwdk1jcERM?=
 =?utf-8?Q?3ty5aYI5JdunJFI2goBdYBa7ej8OHyDXbK/Bw=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN9PR12MB5273.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?WnByM3NrY0NwbnlncHFIbEhoRFlUOFhGZTZyT0cyTForVFl6RW1PVEpUa3J6?=
 =?utf-8?B?L1AvL21ac0NYUXlXdmJ0RTFQRkt0S01pTDlseFRUUGF1WFRtdTFpalU4dXIv?=
 =?utf-8?B?QmpqZjJqMHNsSzRUV2l2cnVyenV6cEszRWdRa1hEa29EWVo2eWVRK1lWV0tl?=
 =?utf-8?B?WFI1Rm5zdUJWMmxZNG1FOENYaXV2Z0ZhSWRjSjFuV3lhTVoyQUU1YWNjb2dT?=
 =?utf-8?B?Uk0vT0N0SmRXK09HYlNMUTJLVlpuWXkzdEcwcU54RGxobjB2ejN5ckR6NHNM?=
 =?utf-8?B?TnNSZjV2ZmEyTXJoMTJmMkJtRkRwQ2xvYmo4cUdYVzRSV2VZWHJkR0VORFpt?=
 =?utf-8?B?Mi9qSnVMQzg5SjJDZExxaVliUUJRQm9tVllDSlVIWjdXMTRUY0FDTzJVMmlZ?=
 =?utf-8?B?RXdEazJPZUMvbVF3RUhzOG1LVDdKWHp2OFZ4UTYyYk5WdUhsY3BzeEtwMWVm?=
 =?utf-8?B?WGZ3U0hvSzJrRCt4Wm1xUmNVbDkxZUhHMGtGczhxQ3ErUU9OeEhEZTM1RnJC?=
 =?utf-8?B?dUQ4c2tUTEw3Y0lZWUwwa21HeGs5dTMwQjZwNjJtbmR4dGNTSXJZU1p6Vk9E?=
 =?utf-8?B?Zy94azNyazFaM3cyeXd5UGt0dnhxWDRwYWYwNk54UHRhai9waVB3WlVTOWVn?=
 =?utf-8?B?UDZMaHpObndCVTZUS2FwWUVuVXlOdHo0dXVFRkZhd3d0eld2b2l6Z1JkKy9K?=
 =?utf-8?B?aGlhc0x6ZjAxVXBNTUVKYnlBSjZyUXphemlieGUxT3pFWE41K2lIYXJpWm02?=
 =?utf-8?B?emYrc2hNbDFKVWM2VWVDUlo1VU1mRDRFdURRUCtGZDA2Z20zc1FyL0kwUUl4?=
 =?utf-8?B?d0RvQlZJbU1VdkxzQXI3eDg5c1UxYk9IMDZnZlVWZDRkaUtGNG9icE5kNXFN?=
 =?utf-8?B?M2c2S0E5ckJxL2FiN0dPYTNTQnpYcDhGYWY2L0w3UitHdFdjOHIwMEwvbW1Q?=
 =?utf-8?B?cm9PSFR5T0pZRFp1Q1dObjBPVURtWitBTWozVEVtTGFEZWFhU0JvcFZ6ajVD?=
 =?utf-8?B?YTk2bFpYNVVEeGh6RVBsdkZLejdIQU9iV0Z3QlduZ2ZrZXRkTXBacGtQUTdi?=
 =?utf-8?B?R3dtcnJURU15T1hqOS9hdE1IT2poQ3ZvNWlPZStWdXBvQ2x3aFRIaWpzVzBU?=
 =?utf-8?B?dGtMc2tvYXB5YlIzTUJmd2gzMUlwaUh3OEcwYStONnlRelM1dTZtd0tZOW1R?=
 =?utf-8?B?SEMzc3BtcDNDR0dpcFZFaWU4SW93ZTJmSFVYc0tMWG5UcXRyNXdwYVFZeHhC?=
 =?utf-8?B?TEJxOHpWQTRzYTBlM1hZZGFLTDcxaDBYT0JkNHNUQUx0eG9wSVFKbDZIREdl?=
 =?utf-8?B?T3ZDeDVDN3VoYVQwUjlCU0ZwOWZIaU11UXovS2NSQXJxU0lad0luQlgwYWVE?=
 =?utf-8?B?RC9XZHFTenVLbXdIdVpOa3daQnpJQlBXZVNTaGFKWEgxdHpsRGZMTHFhRDdT?=
 =?utf-8?B?dTUwc25ZTzdlcHVnQjJGQlZKb2N3aG1OYlNHei80b1k5dTg0WENzR1BzeVB3?=
 =?utf-8?B?ZzNLZlVsSmlFb0NENTB4amQwVFdWVnhhUDAwVEdmQ3puUGg2bFpvQlZITGVG?=
 =?utf-8?B?UGV4QnYrVDFwbDc4d2RvL1JjRzd6bi8rRTBzbW9JRjc1bjVYd29tRS9zOHBw?=
 =?utf-8?B?b1AxT0JrbTVBWWlUVDlGVzNEZHZ6SVlTeFgxWk9kVmVQOThCT2FYcU15cnI4?=
 =?utf-8?B?QkNJUHpXQVYyKzZvdmozaE80K1RXL1VhNVY0K2lFUzYzSHBjQ1dmWklOcjNP?=
 =?utf-8?B?TU5GOG9lMFJHVlJ3ZGJiVEI3c29HdmFQbGhHKzBJSUhRdThBbmNObjhycC82?=
 =?utf-8?B?NXp5a0JSdUVGSzMzSDFoTWZHOVJsZGRxMXVFOUF3VksrRmNZdUw2aTlNa25o?=
 =?utf-8?B?V3RmV0p4N1A2RzNVcm93ZDdGSWlWUXN4b0gzN0Z2cXhLK0tLUk45bVRnRjU1?=
 =?utf-8?B?SStHMUQ2YXFUMTFmcTlCZDVzNGltcG9tV0xRbWpISTZReWR1bWNJRkZrMHBi?=
 =?utf-8?B?UlZUOGZNeDlLVk9OZHgwTFlkTjMzNVF5ck1lRlJXTXpOVnViZzdkTVBDMGpZ?=
 =?utf-8?B?eVdDelkyZS9BYk5wK3N1Z1VGWU5oQlIyc09UODFnNlRJRlk0OC9OUlZ5WDE0?=
 =?utf-8?Q?nUeU=3D?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b0b78a37-0549-4b5a-4278-08dd83b774c5
X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB5277.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Apr 2025 05:10:13.0696
 (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: QC/iIFU7JztXBtFlmCFDSsmh61xW+QNuVslcHMlIJ6EdIzjmb0l5oJZf8W+FMeVd
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS5PPFEAC589ED8



On 25/04/2025 03:16, Stefano Stabellini wrote:
> From: Andrei Cherechesu <andrei.cherechesu@oss.nxp.com>
> 
> Normally, the Imagebuilder would precompute the sizes of the loaded
> binaries and addresses where they are loaded before generating the
> script, and the sizes and addresses that needed to be provided to
> Xen via /chosen would be hardcoded in the boot script.
> 
> Added an option via "-s" parameter to avoid hardcoding any
> address in the boot script, and dynamically compute the
> loading addresses for binaries. The first loading address is based
> on the MEMORY_START parameter and after loading each binary,
> the loading address and the size of the binary are stored in
> variables with corresponding names. Then, the loading address
> for the next binary is computed and aligned to 0x200000.
> 
> If the "-s" parameter is not used, the normal flow is executed,
> where the loading addresses and sizes for each binaries are
> precomputed and hardcoded inside the script, but the loading
> addresses and sizes for each binary are now also stored for eventual
> later use.
> 
> Reserved memory regions are left TBD in the -s case.
> 
> Link: https://lists.xenproject.org/archives/html/xen-devel/2022-09/msg01862.html
> Signed-off-by: Andrei Cherechesu <andrei.cherechesu@nxp.com>
> Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
> ---
> This patch adds quite a bit of complexity which is the reason why I
> didn't originally commit it. Now that we are enabling ImageBuilder in
> Yocto, it turns out this patch is required because Yocto invokes
> ImageBuilder before all the binaries are ready and available.
> 
> Andrei, sorry for taking so long to realize why it is essential, but we
> are getting there now.
> 
> The changes I made to the original patch are purely to make it simpler
> to maintain.
> ---
> 
> diff --git a/README.md b/README.md
> index f8039ec..28c9e6b 100644
> --- a/README.md
> +++ b/README.md
> @@ -356,6 +356,8 @@ Where:\
>     can only be used  in combination with the -k option.  This adds the
>     public key into the dtb.  Then one can add this dtb back into the
>     u-boot bin or elf.\
> +-s addresses and sizes are calculated dynamically from U-Boot, hence
> +   binaries don't need to be available at the time of invocation.\
>  
>  ### Signed FIT images
>  
> diff --git a/scripts/uboot-script-gen b/scripts/uboot-script-gen
> index 638154a..ee4af6c 100755
> --- a/scripts/uboot-script-gen
> +++ b/scripts/uboot-script-gen
> @@ -1,8 +1,11 @@
>  #!/bin/bash
>  
>  offset=$((2*1024*1024))
> +PADDING_MASK=`printf "0x%X\n" $(($offset - 1))`
> +PADDING_MASK_INV=`printf "0x%X\n" $((~$PADDING_MASK))`
>  filesize=0
>  prog_req=(mkimage file fdtput mktemp awk od)
> +CALC=""
>  
>  function cleanup_and_return_err()
>  {
> @@ -100,17 +103,42 @@ function dt_set()
>      fi
>  }
>  
> +function dt_set_calc()
> +{
> +    local path=$1
> +    local var=$2
> +    local name_var=$3
> + 
> +    addr_var="$name_var"_addr
> +    size_var="$name_var"_size
> +
> +    # Split data_addr_var into high/low
> +    echo "setexpr addr_hi \${"$addr_var"} / 0x100000000" >> $UBOOT_SOURCE
> +    echo "setexpr addr_lo \${"$addr_var"} \& 0xFFFFFFFF" >> $UBOOT_SOURCE
> +    
> +    # Split data_size_var into high/low
> +    echo "setexpr size_hi \${"$size_var"} / 0x100000000" >> $UBOOT_SOURCE
> +    echo "setexpr size_lo \${"$size_var"} \& 0xFFFFFFFF" >> $UBOOT_SOURCE
> +    
> +    echo "fdt set $path $var <0x\${addr_hi} 0x\${addr_lo} 0x\${size_hi} 0x\${size_lo}>" >> $UBOOT_SOURCE
> +}
> +
>  function add_device_tree_kernel()
>  {
>      local path=$1
> -    local addr=$2
> -    local size=$3
> -    local bootargs=$4
> +    local name=$2
> +    local addr=$3
> +    local size=$4
> +    local bootargs=$5
>      local node_name="module@${addr#0x}"
>  
>      dt_mknode "$path" "$node_name"
>      dt_set "$path/$node_name" "compatible" "str_a" "multiboot,kernel multiboot,module"
> -    dt_set "$path/$node_name" "reg" "hex"  "$(split_addr_size $addr $size)"
> +    if test "$CALC"; then
> +        dt_set_calc "$path/$node_name" "reg" $name
> +    else
> +        dt_set "$path/$node_name" "reg" "hex"  "$(split_addr_size $addr $size)"
> +    fi
>      dt_set "$path/$node_name" "bootargs" "str" "$bootargs"
>  }
>  
> @@ -118,26 +146,36 @@ function add_device_tree_kernel()
>  function add_device_tree_ramdisk()
>  {
>      local path=$1
> -    local addr=$2
> -    local size=$3
> +    local name=$2
> +    local addr=$3
> +    local size=$4
>      local node_name="module@${addr#0x}"
>  
>      dt_mknode "$path"  "$node_name"
>      dt_set "$path/$node_name" "compatible" "str_a" "multiboot,ramdisk multiboot,module"
> -    dt_set "$path/$node_name" "reg" "hex"  "$(split_addr_size $addr $size)"
> +    if test "$CALC"; then
> +        dt_set_calc "$path/$node_name" "reg" $name
> +    else
> +        dt_set "$path/$node_name" "reg" "hex"  "$(split_addr_size $addr $size)"
> +    fi
>  }
>  
>  
>  function add_device_tree_passthrough()
>  {
>      local path=$1
> -    local addr=$2
> -    local size=$3
> +    local name=$2
> +    local addr=$3
> +    local size=$4
>      local node_name="module@${addr#0x}"
>  
>      dt_mknode "$path"  "$node_name"
>      dt_set "$path/$node_name" "compatible" "str_a" "multiboot,device-tree multiboot,module"
> -    dt_set "$path/$node_name" "reg" "hex"  "$(split_addr_size $addr $size)"
> +    if test "$CALC"; then
> +        dt_set_calc "$path/$node_name" "reg" $name
> +    else
> +        dt_set "$path/$node_name" "reg" "hex"  "$(split_addr_size $addr $size)"
> +    fi
>  }
>  
>  function add_device_tree_mem()
> @@ -358,7 +396,11 @@ function xen_device_tree_editing()
>  
>          dt_mknode "/chosen" "$node_name"
>          dt_set "/chosen/$node_name" "compatible" "str_a" "xen,xsm-policy xen,multiboot-module multiboot,module"
> -        dt_set "/chosen/$node_name" "reg" "hex" "$(split_addr_size $xen_policy_addr $xen_policy_size)"
> +        if test "$CALC"; then
> +            dt_set_calc "/chosen/$node_name" "reg" "xen_policy"
> +        else
> +            dt_set "/chosen/$node_name" "reg" "hex" "$(split_addr_size $xen_policy_addr $xen_policy_size)"
> +        fi
>      fi
>  
>      if test "$DOM0_KERNEL"
> @@ -367,7 +409,11 @@ function xen_device_tree_editing()
>  
>          dt_mknode "/chosen" "$node_name"
>          dt_set "/chosen/$node_name" "compatible" "str_a" "xen,linux-zimage xen,multiboot-module multiboot,module"
> -        dt_set "/chosen/$node_name" "reg" "hex" "$(split_addr_size $dom0_kernel_addr $dom0_kernel_size)"
> +        if test "$CALC"; then
> +            dt_set_calc "/chosen/$node_name" "reg" "dom0_linux"
> +        else
> +            dt_set "/chosen/$node_name" "reg" "hex" "$(split_addr_size $dom0_kernel_addr $dom0_kernel_size)"
> +        fi
>          dt_set "/chosen" "xen,dom0-bootargs" "str" "$DOM0_CMD"
>      fi
>  
> @@ -377,7 +423,11 @@ function xen_device_tree_editing()
>  
>          dt_mknode "/chosen" "$node_name"
>          dt_set "/chosen/$node_name" "compatible" "str_a" "xen,linux-initrd xen,multiboot-module multiboot,module"
> -        dt_set "/chosen/$node_name" "reg" "hex" "$(split_addr_size $ramdisk_addr $ramdisk_size)"
> +        if test "$CALC"; then
> +            dt_set_calc "/chosen/$node_name" "reg" "dom0_ramdisk"
> +        else
> +            dt_set "/chosen/$node_name" "reg" "hex" "$(split_addr_size $ramdisk_addr $ramdisk_size)"
> +        fi
>      fi
>  
>      i=0
> @@ -464,14 +514,14 @@ function xen_device_tree_editing()
>  
>          xen_dt_domu_add_vcpu_nodes "/chosen/domU$i" $i ${DOMU_VCPUS[$i]}
>  
> -        add_device_tree_kernel "/chosen/domU$i" ${domU_kernel_addr[$i]} ${domU_kernel_size[$i]} "${DOMU_CMD[$i]}"
> +        add_device_tree_kernel "/chosen/domU$i" "domU${i}_kernel" ${domU_kernel_addr[$i]} ${domU_kernel_size[$i]} "${DOMU_CMD[$i]}"
>          if test "${domU_ramdisk_addr[$i]}"
>          then
> -            add_device_tree_ramdisk "/chosen/domU$i" ${domU_ramdisk_addr[$i]} ${domU_ramdisk_size[$i]}
> +            add_device_tree_ramdisk "/chosen/domU$i" "domU${i}_ramdisk" ${domU_ramdisk_addr[$i]} ${domU_ramdisk_size[$i]}
>          fi
>          if test "${domU_passthrough_dtb_addr[$i]}"
>          then
> -            add_device_tree_passthrough "/chosen/domU$i" ${domU_passthrough_dtb_addr[$i]} ${domU_passthrough_dtb_size[$i]}
> +            add_device_tree_passthrough "/chosen/domU$i" "domU${i}_fdt" ${domU_passthrough_dtb_addr[$i]} ${domU_passthrough_dtb_size[$i]}
>          fi
>          i=$(( $i + 1 ))
>      done
> @@ -504,7 +554,11 @@ function device_tree_editing()
>  
>      if test $UBOOT_SOURCE
>      then
> -        echo "fdt addr $device_tree_addr" >> $UBOOT_SOURCE
> +        if test "$CALC"; then
> +            echo "fdt addr \${host_fdt_addr}" >> $UBOOT_SOURCE
> +        else
> +            echo "fdt addr $device_tree_addr" >> $UBOOT_SOURCE
> +        fi
>          echo "fdt resize 1024" >> $UBOOT_SOURCE
>  
>          if test $NUM_DT_OVERLAY && test $NUM_DT_OVERLAY -gt 0
> @@ -512,7 +566,11 @@ function device_tree_editing()
>              i=0
>              while test $i -lt $NUM_DT_OVERLAY
>              do
> -                echo "fdt apply ${dt_overlay_addr[$i]}" >> $UBOOT_SOURCE
> +                if test "$CALC"; then
> +                    echo "fdt apply \${host_fdto${i}_addr}" >> $UBOOT_SOURCE
> +                else
> +                    echo "fdt apply ${dt_overlay_addr[$i]}" >> $UBOOT_SOURCE
> +                fi
>                  i=$(( $i + 1 ))
>              done
>          fi
> @@ -530,8 +588,12 @@ function fill_reserved_spaces_from_dtb()
>  {
>      if [ ! -f $DEVICE_TREE ]
>      then
> -        echo "File $DEVICE_TREE doesn't exist, exiting";
> -        cleanup_and_return_err
> +        if test "$CALC"; then
> +            return
> +        else
> +            echo "File $DEVICE_TREE doesn't exist, exiting";
> +            cleanup_and_return_err
> +        fi
>      fi
>  
>      # Check if reserved-memory node exists
> @@ -613,7 +675,7 @@ function get_image_size()
>      printf "%u" $effective_size
>  }
>  
> -function add_size()
> +function add_size_from_file()
>  {
>      local filename=$1
>      local size=`stat -L --printf="%s" $filename`
> @@ -645,6 +707,24 @@ function add_size()
>      filesize=$size
>  }
>  
> +function add_size_calculate()
> +{
> +    local fit_scr_name=$1
> +
> +    echo "setenv "$fit_scr_name"_addr \${memaddr}" >> $UBOOT_SOURCE
> +    echo "setenv "$fit_scr_name"_size \${filesize}" >> $UBOOT_SOURCE
> +    echo "setexpr memaddr \${memaddr} \+ \${filesize}" >> $UBOOT_SOURCE
> +    echo "setexpr memaddr \${memaddr} \+ $PADDING_MASK" >> $UBOOT_SOURCE
To save some lines, can the two additions be done in one line, i.e.:
echo "setexpr memaddr \${memaddr} \+ \${filesize} \+ $PADDING_MASK" >> $UBOOT_SOURCE

> +    echo "setexpr memaddr \${memaddr} \& $PADDING_MASK_INV" >> $UBOOT_SOURCE
> +
> +    # TODO: missing ${RESERVED_MEM_SPACES[@]} check
> +
> +    # The following are updated to avoid collisions in node names, but
> +    # they are not actively used.
> +    memaddr=$((memaddr + offset))
> +    filesize=$offset
> +}
> +
>  function load_file()
>  {
>      local filename=$1
> @@ -657,10 +737,16 @@ function load_file()
>      if test "$FIT"
>      then
>          echo "imxtract \$fit_addr $fit_scr_name $memaddr" >> $UBOOT_SOURCE
> +        add_size_from_file $filename
>      else
> -        echo "$LOAD_CMD $memaddr ${prepend_path:+$prepend_path/}$relative_path" >> $UBOOT_SOURCE
> +        if test "$CALC"; then
> +            echo "$LOAD_CMD \${memaddr} ${prepend_path:+$prepend_path/}$relative_path" >> $UBOOT_SOURCE
> +            add_size_calculate $fit_scr_name
> +        else
> +            echo "$LOAD_CMD $memaddr ${prepend_path:+$prepend_path/}$relative_path" >> $UBOOT_SOURCE
> +            add_size_from_file $filename
> +        fi
>      fi
> -    add_size $filename
>  }
>  
>  function check_file_type()
> @@ -670,8 +756,13 @@ function check_file_type()
>  
>      if [ ! -f $filename ]
>      then
> -        echo "File $filename doesn't exist, exiting";
> -        cleanup_and_return_err
> +        if test "$CALC"
> +        then
> +            return
> +        else
> +            echo "File $filename doesn't exist, exiting";
> +            cleanup_and_return_err
> +        fi
>      fi
>  
>      # if file doesn't know what it is, it outputs data, so include that
> @@ -705,8 +796,13 @@ function check_compressed_file_type()
>  
>      if [ ! -f $filename ]
>      then
> -        echo "File $filename doesn't exist, exiting";
> -        cleanup_and_return_err
> +        if test "$CALC"
> +        then
> +            return
> +        else
> +            echo "File $filename doesn't exist, exiting";
> +            cleanup_and_return_err
> +        fi
>      fi
>  
>      file_type=$( file -L $filename )
> @@ -872,6 +968,12 @@ function linux_config()
>  generate_uboot_images()
>  {
>      local arch=$(file -L $XEN | grep -E 'ARM64|Aarch64')
> +    
> +    if test "$CALC"
> +    then
> +        echo "bootm is not compatible with -s"
> +        cleanup_and_return_err
> +    fi
>  
>      if test "$arch"
>      then
> @@ -997,7 +1099,11 @@ bitstream_load_and_config()
>          if test "$UBOOT_SOURCE"
>          then
>              # we assume the FPGA device is 0 here
> -            echo "fpga load 0 $bitstream_addr $bitstream_size" >> "$UBOOT_SOURCE"
> +            if test "$CALC"; then
> +                echo "fpga load 0 \${fpga_bitstream_addr} \${fpga_bitstream_size}" >> "$UBOOT_SOURCE"
> +            else
> +                echo "fpga load 0 $bitstream_addr $bitstream_size" >> "$UBOOT_SOURCE"
> +            fi
>          fi
>      fi
>  }
> @@ -1271,7 +1377,7 @@ function print_help
>  {
>      script=`basename "$0"`
>      echo "usage:"
> -    echo "	$script -c CONFIG_FILE -d DIRECTORY [-t LOAD_CMD] [-o FILE] [-k KEY_DIR/HINT [-u U-BOOT_DTB]] [-e] [-f] [-p PREPEND_PATH]"
> +    echo "	$script -c CONFIG_FILE -d DIRECTORY [-t LOAD_CMD] [-o FILE] [-k KEY_DIR/HINT [-u U-BOOT_DTB]] [-e] [-f] [-p PREPEND_PATH] [-s]"
>      echo "	$script -h"
>      echo "where:"
>      echo "	CONFIG_FILE - configuration file"
> @@ -1288,6 +1394,7 @@ function print_help
>      echo "	U-BOOT_DTB - u-boot control dtb so that the public key gets added to it"
>      echo "	-f - enable generating a FIT image"
>      echo "	PREPEND_PATH - path to be appended before file names to match deploy location within rootfs"
> +    echo "	-s - enable dynamic loading of binaries by storing their addresses and sizes u-boot env variables"
>      echo "	-h - prints out the help message and exits "
>      echo "Defaults:"
>      echo "	CONFIG_FILE=$cfg_file, UBOOT_TYPE=\"LOAD_CMD\" env var, DIRECTORY=$uboot_dir"
> @@ -1295,7 +1402,7 @@ function print_help
>      echo "	$script -c ../config -d ./build42 -t \"scsi load 1:1\""
>  }
>  
> -while getopts ":c:t:d:ho:k:u:fp:" opt; do
> +while getopts ":c:t:d:ho:k:u:fp:s" opt; do
>      case ${opt} in
>      t )
>          case $OPTARG in
> @@ -1340,6 +1447,9 @@ while getopts ":c:t:d:ho:k:u:fp:" opt; do
>      p )
>          prepend_path="$OPTARG"
>          ;;
> +    s )
> +        CALC=y
> +        ;;
>      h )
>          print_help
>          exit 0
> @@ -1533,6 +1643,7 @@ uboot_addr=$memaddr
>  # 2MB are enough for a uboot script
>  memaddr=$(( $memaddr + $offset ))
>  memaddr=`printf "0x%X\n" $memaddr`
> +echo "setenv memaddr $memaddr" >> $UBOOT_SOURCE
Why is it here unconditionally?

>  
>  fill_reserved_spaces_from_dtb
>  
> @@ -1583,7 +1694,11 @@ fi
>  
>  if [ "$BOOT_CMD" != "none" ]
>  then
> -    echo "$BOOT_CMD $kernel_addr $([ "$BOOT_CMD" = "bootefi" ] || echo '-') $device_tree_addr" >> $UBOOT_SOURCE
> +    if test "$CALC"; then
> +        echo "$BOOT_CMD \${host_kernel_addr} $([ "$BOOT_CMD" = "bootefi" ] || echo '-') \${host_fdt_addr}" >> $UBOOT_SOURCE
> +    else
> +        echo "$BOOT_CMD $kernel_addr $([ "$BOOT_CMD" = "bootefi" ] || echo '-') $device_tree_addr" >> $UBOOT_SOURCE
> +    fi
>  else
>      # skip boot command but store load addresses to be used later
>      echo "setenv host_kernel_addr $kernel_addr" >> $UBOOT_SOURCE

~Michal



From xen-devel-bounces@lists.xenproject.org Fri Apr 25 06:52:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 06:52:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.967202.1357080 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8Cur-00036Q-O8; Fri, 25 Apr 2025 06:52:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 967202.1357080; Fri, 25 Apr 2025 06:52: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 1u8Cur-00036J-IQ; Fri, 25 Apr 2025 06:52:05 +0000
Received: by outflank-mailman (input) for mailman id 967202;
 Fri, 25 Apr 2025 06: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=AgEa=XL=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1u8Cup-00036D-DW
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 06:52:03 +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 ca542a4c-21a1-11f0-9eb3-5ba50f476ded;
 Fri, 25 Apr 2025 08:52:01 +0200 (CEST)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-ac2c663a3daso359469066b.2
 for <xen-devel@lists.xenproject.org>; Thu, 24 Apr 2025 23:52:01 -0700 (PDT)
Received: from ?IPV6:2003:e5:870f:e000:6c64:75fd:2c51:3fef?
 (p200300e5870fe0006c6475fd2c513fef.dip0.t-ipconnect.de.
 [2003:e5:870f:e000:6c64:75fd:2c51:3fef])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5f703831b5csm794913a12.65.2025.04.24.23.51.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 24 Apr 2025 23:52: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: ca542a4c-21a1-11f0-9eb3-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745563921; x=1746168721; 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=0MiSnhd6LKI51whYJ6+YCfOKtkOaJi9qq1W8mhQmh9U=;
        b=IQ9qN9TExO5Y5Z3U3swj9+72eStXUQLfmS8vWMhojxkhkWCG+GfpoAzDoO/OHn9f5I
         ioI2leO5tVLrHSZCcoLYlafUm41TMHnfz/QKWoEe8xRXe/cFL+s1aWyubpcMw6uM0n4y
         4/OtJQeCnPJytzgBs68qy4YfUSwB1UW0Y6D4rJ0bTYHHZunGErNAtHqRIQLRort3mwWk
         pyqjmWCTBpiwzi7OC+FbhCdf0zAz90xmCsyfMedWhLRciLVU+/IPU3VzS8qT53syYVRU
         BLQU1sP8J5Glrr71TmIjjl0x4RB7zI/5OVytVEBf88qwlsfri7hQmYiRfNL94JSthO4l
         lgQQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745563921; x=1746168721;
        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=0MiSnhd6LKI51whYJ6+YCfOKtkOaJi9qq1W8mhQmh9U=;
        b=VBvz6EWShe5roIxQk7cXmFtvGNg6QpIau6rc9OZKP+asIpCn7P553OXFPdDZDwEB7B
         qQzfqXaiMsHh9lCVyVZuz5KvEL6N008BG7K3dXZn0Z/RUTygbBAReRbxuCDZjiGXhg/T
         6R9gN/uBZGF4eBiY8s7ThQaHvLxM/iHp2dBIp8Z5l2qylPzou0Q+h+jcGJHALGrZeuxJ
         +wtfamBmbM/XLehhGlgmMCfmEQVxWiJT/IdcDWBqwnRC8RmiftCYrAN0V7w+SJ9ocoK7
         9mLo76ir83ufpSN3LGGRmgHxcCT8MrogLYPxUre0juvn8hNZGLKrIQ/q2ZErJxzMiB5/
         jLZw==
X-Forwarded-Encrypted: i=1; AJvYcCU7f3wbrPcfEKErTsn46yO9eDL5PWxk+K7esupYvvoVRMuOR5nepjfUKTMVBOjgeRY12ydPLawzUTU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwBDDW/vrkChbUZHGl5xCQE9nCkQBsHm8GdTo/Uh3kQnSe0kh+5
	cKt6+iQYAiWr67sx5kZsvm/GsvqST0XIFb++8viK26V8eIsVPmeGojJT+508YNQ=
X-Gm-Gg: ASbGnctkIPyDlhWU1726N9z6impjIAvSDD/id8jAGzwlHL9n5IA5naaSjhODz27Rtq6
	euM0h3qDpY8+XOcFVvbvhazKzQqAtP9QiaOW9H6oU6m5SLukpI1fnskUqNFyPcBdwkMibIfqGfL
	X9ra0AVgbJR7OMj9lFmx6wDEaJzrD0FDCeXkHJYuHv499/Js8jeEm41YeaD2JwrDt3/iJzOFUSf
	kGFmfgCUYWtKjJyeXFA1UznKL59aqLvf0llWu/QiiZHfMVtQ26SXZnxPxdpZNW3rlkJIwmI7VLP
	tvWBsmEsij5keHcHZODSzcA28ioF5GkfnQt3MBQzv4U8wRVVUFTgHvCnMQ5cTVj+1rSB/TZbscD
	WQ3XvaT0wDJxOSA64Z0uJeolec9F7s3wISLhGKEyYCNwPY1UUSd4959lFr9dp2iB0Fg==
X-Google-Smtp-Source: AGHT+IH6tRnHb03g3T3b9xd39ZFziT14G1AusaxT67r9u6w2KcJuEH4Jv4x/SdvY9ic/HmRGz4GAmQ==
X-Received: by 2002:a17:907:1c18:b0:aca:a162:8707 with SMTP id a640c23a62f3a-ace71025d83mr100133966b.7.1745563921096;
        Thu, 24 Apr 2025 23:52:01 -0700 (PDT)
Message-ID: <0825ae04-6545-424d-ad01-3a5fda36ad86@suse.com>
Date: Fri, 25 Apr 2025 08:51:58 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH v2 21/34] x86/msr: Utilize the alternatives mechanism
 to write MSR
To: "H. Peter Anvin" <hpa@zytor.com>, Xin Li <xin@zytor.com>,
 linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
 linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
 virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
 linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
 linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
 netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
 dave.hansen@linux.intel.com, x86@kernel.org, acme@kernel.org,
 andrew.cooper3@citrix.com, peterz@infradead.org, namhyung@kernel.org,
 mark.rutland@arm.com, alexander.shishkin@linux.intel.com, jolsa@kernel.org,
 irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
 wei.liu@kernel.org, ajay.kaher@broadcom.com,
 bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
 pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
 luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
 haiyangz@microsoft.com, decui@microsoft.com
References: <20250422082216.1954310-1-xin@zytor.com>
 <20250422082216.1954310-22-xin@zytor.com>
 <b2624e84-6fab-44a3-affc-ce0847cd3da4@suse.com>
 <f7198308-e8f8-4cc5-b884-24bc5f408a2a@zytor.com>
 <37c88ea3-dd24-4607-9ee1-0f19025aaef3@suse.com>
 <bb8f6b85-4e7d-440a-a8c3-0e0da45864b8@zytor.com>
 <0cdc6e9d-88eb-4ead-8d55-985474257d53@suse.com>
 <483eb20c-7302-4733-a15f-21d140396919@zytor.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: <483eb20c-7302-4733-a15f-21d140396919@zytor.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------T4ZWz9eXqhqS8XTZKkH4szjE"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------T4ZWz9eXqhqS8XTZKkH4szjE
Content-Type: multipart/mixed; boundary="------------aDhkvWpyJ2mqrcVlzpHJ5Lh0";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: "H. Peter Anvin" <hpa@zytor.com>, Xin Li <xin@zytor.com>,
 linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
 linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
 virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
 linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
 linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
 netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
 dave.hansen@linux.intel.com, x86@kernel.org, acme@kernel.org,
 andrew.cooper3@citrix.com, peterz@infradead.org, namhyung@kernel.org,
 mark.rutland@arm.com, alexander.shishkin@linux.intel.com, jolsa@kernel.org,
 irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
 wei.liu@kernel.org, ajay.kaher@broadcom.com,
 bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
 pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
 luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
 haiyangz@microsoft.com, decui@microsoft.com
Message-ID: <0825ae04-6545-424d-ad01-3a5fda36ad86@suse.com>
Subject: Re: [RFC PATCH v2 21/34] x86/msr: Utilize the alternatives mechanism
 to write MSR
References: <20250422082216.1954310-1-xin@zytor.com>
 <20250422082216.1954310-22-xin@zytor.com>
 <b2624e84-6fab-44a3-affc-ce0847cd3da4@suse.com>
 <f7198308-e8f8-4cc5-b884-24bc5f408a2a@zytor.com>
 <37c88ea3-dd24-4607-9ee1-0f19025aaef3@suse.com>
 <bb8f6b85-4e7d-440a-a8c3-0e0da45864b8@zytor.com>
 <0cdc6e9d-88eb-4ead-8d55-985474257d53@suse.com>
 <483eb20c-7302-4733-a15f-21d140396919@zytor.com>
In-Reply-To: <483eb20c-7302-4733-a15f-21d140396919@zytor.com>

--------------aDhkvWpyJ2mqrcVlzpHJ5Lh0
Content-Type: multipart/mixed; boundary="------------zlSHc0vaMFKhZ0dLG0JUBad0"

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

T24gMjUuMDQuMjUgMDM6MTUsIEguIFBldGVyIEFudmluIHdyb3RlOg0KPiBPbiA0LzI0LzI1
IDAxOjE0LCBKw7xyZ2VuIEdyb8OfIHdyb3RlOg0KPj4+DQo+Pj4gQWN0dWFsbHksIHRoYXQg
aXMgaG93IHdlIGdldCB0aGlzIHBhdGNoIHdpdGggdGhlIGV4aXN0aW5nIGFsdGVybmF0aXZl
cw0KPj4+IGluZnJhc3RydWN0dXJlLsKgIEFuZCB3ZSB0b29rIGEgc3RlcCBmdXJ0aGVyIHRv
IGFsc28gcmVtb3ZlIHRoZSBwdl9vcHMNCj4+PiBNU1IgQVBJcy4uLg0KPj4NCj4+IEFuZCB0
aGlzIGlzIHdoYXQgSSdtIHF1ZXN0aW9uaW5nLiBJTUhPIHRoaXMgYXBwcm9hY2ggaXMgYWRk
aW5nIG1vcmUNCj4+IGNvZGUgYnkgcmVtb3ZpbmcgdGhlIHB2X29wcyBNU1JfQVBJcyBqdXN0
IGJlY2F1c2UgInB2X29wcyBpcyBiYWQiLiBBbmQNCj4+IEkgYmVsaWV2ZSBtb3N0IHJlZnVz
YWwgb2YgcHZfb3BzIGlzIGJhc2VkIG9uIG5vIGxvbmdlciB2YWxpZCByZWFzb25pbmcuDQo+
Pg0KPiANCj4gcHZvcHMgYXJlIGEgaGVhZGFjaGUgYmVjYXVzZSBpdCBpcyBlZmZlY3RpdmVs
eSBhIHNlY29uZGFyeSBhbHRlcm5hdGl2ZXMgDQo+IGluZnJhc3RydWN0dXJlIHRoYXQgaXMg
aW5jb21wYXRpYmxlIHdpdGggdGhlIGFsdGVybmF0aXZlcyBvbmUuLi4NCg0KSHU/IEhvdyBj
YW4gdGhhdCBiZSwgYXMgcHZfb3BzIGlzIHVzaW5nIG9ubHkgYWx0ZXJuYXRpdmVzIGluZnJh
c3RydWN0dXJlDQpmb3IgZG9pbmcgdGhlIHBhdGNoaW5nPw0KDQpJJ2Qgc2F5IHRvZGF5IHB2
X29wcyBpcyBhIGNvbnZlbmllbmNlIHdyYXBwZXIgYXJvdW5kIGFsdGVybmF0aXZlcy4NCg0K
PiANCj4+PiBJdCBsb29rcyB0byBtZSB0aGF0IHlvdSB3YW50IHRvIGFkZCBhIG5ldyBmYWNp
bGl0eSB0byB0aGUgYWx0ZXJuYXRpdmVzDQo+Pj4gaW5mcmFzdHJ1Y3R1cmUgZmlyc3Q/DQo+
Pg0KPj4gV2h5IHdvdWxkIHdlIG5lZWQgYSBuZXcgZmFjaWxpdHkgaW4gdGhlIGFsdGVybmF0
aXZlcyBpbmZyYXN0cnVjdHVyZT8NCj4gDQo+IEknbSBub3Qgc3VyZSB3aGF0IFhpbiBtZWFu
cyB3aXRoICJmYWNpbGl0eSIsIGJ1dCBhIGtleSBtb3RpdmF0aW9uIGZvciB0aGlzIGlzIHRv
Og0KPiANCj4gYS4gQXZvaWQgdXNpbmcgdGhlIHB2b3BzIGZvciBNU1JzIHdoZW4gb24gdGhl
IG9ubHkgcmVtYWluaW5nIHVzZXIgdGhlcmVvZiAoWGVuKSANCj4gaXMgb25seSB1c2luZyBp
dCBmb3IgYSB2ZXJ5IHNtYWxsIHN1YnNldCBvZiBNU1JzIGFuZCBmb3IgdGhlIHJlc3QgaXQg
aXMganVzdCANCj4gb3ZlcmhlYWQsIGV2ZW4gZm9yIFhlbjsNCj4gDQo+IGIuIEJlaW5nIGFi
bGUgdG8gZG8gd3Jtc3JucyBpbW1lZGlhdGUvd3Jtc3Jucy93cm1zciBhbmQgcmRtc3IgaW1t
ZWRpYXRlL3JkbXNyIA0KPiBhbHRlcm5hdGl2ZXMuDQo+IA0KPiBPZiB0aGVzZSwgKGIpIGlz
IGJ5IGZhciB0aGUgYmlnZ2VzdCBtb3RpdmF0aW9uLiBUaGUgYXJjaGl0ZWN0dXJhbCBkaXJl
Y3Rpb24gZm9yIA0KPiBzdXBlcnZpc29yIHN0YXRlcyBpcyB0byBhdm9pZCBhZCBob2MgYW5k
IFhTQVZFUyBJU0EgYW5kIGluc3RlYWQgdXNlIE1TUnMuIFRoZSANCj4gaW1tZWRpYXRlIGZv
cm1zIGFyZSBleHBlY3RlZCB0byBiZSBzaWduaWZpY2FudGx5IGZhc3RlciwgYmVjYXVzZSB0
aGV5IG1ha2UgdGhlIA0KPiBNU1IgaW5kZXggYXZhaWxhYmxlIGF0IHRoZSB2ZXJ5IGJlZ2lu
bmluZyBvZiB0aGUgcGlwZWxpbmUgaW5zdGVhZCBvZiBhdCBhIA0KPiByZWxhdGl2ZWx5IGxh
dGUgc3RhZ2UuDQoNCkkgdW5kZXJzdGFuZCB0aGUgbW90aXZhdGlvbiBmb3IgYiksIGJ1dCBJ
IHRoaW5rIHRoaXMgY291bGQgYmUgYWNoaWV2ZWQgd2l0aG91dA0KYSkgcmF0aGVyIGVhc2ls
eS4gQW5kIEkgY29udGludWUgdG8gYmVsaWV2ZSB0aGF0IHlvdXIgcmVhc29uaW5nIGZvciBh
KSBpcyBiYXNlZA0Kb24gb2xkIGZhY3RzLiBCdXQgbWF5IGJlIEknbSBqdXN0IG5vdCB1bmRl
cnN0YW5kaW5nIHlvdXIgY29uY2VybnMgd2l0aCB0b2RheSdzDQpwdl9vcHMgaW1wbGVtZW50
YXRpb24uDQoNCg0KSnVlcmdlbg0K
--------------zlSHc0vaMFKhZ0dLG0JUBad0
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-----

--------------zlSHc0vaMFKhZ0dLG0JUBad0--

--------------aDhkvWpyJ2mqrcVlzpHJ5Lh0--

--------------T4ZWz9eXqhqS8XTZKkH4szjE
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/Ey8FAmgLMQ4FAwAAAAAACgkQsN6d1ii/Ey8v
GAf8CiwnPQUGDuLTROoGEGEZYhZNiIuP6NpPgDIjznR04WHQqCKmSKzSJU9bRnXelOjMGbYovqK5
H/4ovrb5WrWiSib6UbfpZkkgEJi/2YSoXppYhG4sNDnhRSUrFBREETgpfTokr0tYEvX/ZZYrx+nV
RVCKKt9kWmHh3+v0+SzR5AfexZ5c13gqdsYhMKlYu49q82NdjjrwXF6F/WHahWchlhxv2LElrYO+
K7zm4YOjDOn3F04XKVSHqBfQsO5J6ZKHLbow+YnWjYIo5B4GlUGkd6xRmxrTXd7cvqwGxJ9urozi
pw9xdCBracc183w0319kUg4l8bsZ35Ynel8AymEH+w==
=pOyC
-----END PGP SIGNATURE-----

--------------T4ZWz9eXqhqS8XTZKkH4szjE--


From xen-devel-bounces@lists.xenproject.org Fri Apr 25 07:01:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 07:01:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.967213.1357088 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8D4J-0004zW-HA; Fri, 25 Apr 2025 07:01:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 967213.1357088; Fri, 25 Apr 2025 07: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 1u8D4J-0004zP-EI; Fri, 25 Apr 2025 07:01:51 +0000
Received: by outflank-mailman (input) for mailman id 967213;
 Fri, 25 Apr 2025 07: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=AgEa=XL=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1u8D4I-0004zJ-Cc
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 07:01:50 +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 1bdd9e7c-21a3-11f0-9ffb-bf95429c2676;
 Fri, 25 Apr 2025 09:01:35 +0200 (CEST)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-3912fdddf8fso2000496f8f.1
 for <xen-devel@lists.xenproject.org>; Fri, 25 Apr 2025 00:01:41 -0700 (PDT)
Received: from ?IPV6:2003:e5:870f:e000:6c64:75fd:2c51:3fef?
 (p200300e5870fe0006c6475fd2c513fef.dip0.t-ipconnect.de.
 [2003:e5:870f:e000:6c64:75fd:2c51:3fef])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3a073e47307sm1410893f8f.65.2025.04.25.00.01.29
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 25 Apr 2025 00:01:31 -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: 1bdd9e7c-21a3-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745564492; x=1746169292; 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=+z35d4FnwaxKfrAKqUcE083ocCvqkf07d+2qYyUy+9c=;
        b=RkC4V8JS1Bps+6m2ca+xwnYUIQjjiNlHTM2cx7nYkUiRFs0NSdTMa4txSwcV1FxnhN
         xtdJO6SWOVIyTXMj4IQtX4L9ARX8fnPKtGjLSODgUvsT48BnUNSvIJjQEsGF+cSX/Ux9
         QnpXh+ge+uGXlk7i9zikQxrabsiDQ7Dg42R1OJIGaGMo8z6wb9n+1JnnZNjbl+vhkfOd
         JrjHVSge9DZpyqMDDqvm+jU6WOahFNQ/c6mTQPz4SXAwy3JNQ74xWqYtx9tiRNlTJFta
         mGTbKONmoUbNRX/jjOPhQVJz+wjpllnVd8tDeUtkz38md92rrLl/Jm+EIPqv8656UnNw
         UrEg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745564492; x=1746169292;
        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=+z35d4FnwaxKfrAKqUcE083ocCvqkf07d+2qYyUy+9c=;
        b=X9Go2O94WTvd+sBV8z89yZ20bgAxw2SGOHNJhyx0fBtCrgHDYY0/t5eGRfahUxRQL5
         BuwUv7rcX8b3S+65TCMsIeFo9O/fighBGtbvt9bZ70ptGelGpBavj4g95sID/1vNoEZb
         TYRBbbo88jGT8EIRr8de61RrriQ56OHUuvl7oNhEb8asFQalmo3pve7vHNiHa7tL3TLd
         6oscRHlKSNvKDZAjAGlId4UsLvCxI5YjT8BrsKnhVnKLFOQ37rsbYrXv3zgFNZzvt6u4
         PXsvx19wIp5A8Bvt7LebuNMvbwP0oRxO/7pRXZy7ofQi3RAaUjImiNznMRl23VXPAsOp
         X81w==
X-Forwarded-Encrypted: i=1; AJvYcCW9j4ykjfDJYgUThTQ4xhIyHNbviSt+2iZVyI0G2w2B7SH5TBvuEjwsp3kgk9W4pkp6k7xVK4kM9Ik=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwniLc1sKsE46cjuwdUWLAiFKsgdLFNLbQ9aiJXpwcGgpztNsdP
	C8hRXXHKkC4kpUCjueiIX1chmBpuw1rup/LI97P23fL/zFg+tks7DiiNOze2Pig=
X-Gm-Gg: ASbGncuOex4rNX2thVhWA7E2dguf/av99PjW6OFSLVC8O8Wxym4mhv6AbDQsIuisjDW
	vSFu1eQ4DQ5zfEDazUr/vZXNSkbxyVVpcgXQEMJuHNNe8mIJDjxNS54xdASPXvt1KvHzBJcAP2C
	rfEDfeRtNuRmFpgO1GyaObYiq7x5TyvNC/VCLH5UYkF7RJntBQHJHnnu01e+EdJkD4wdZAr2Lks
	1E3dKD9fh9TJvmZ6W7Z8i1PDJJy6kvoSk4TLb9A0P0Ld/cd1Jeb1VYcCtC4DC7Y/hffA8i9PV00
	UwKHBnAAtK3ZNbcQwIEwk6NFCeiRLbvifYLm2/9TXpi/NyaXGpu0WIzZbNOH14/l8siuAuEMDOB
	oErn25bD5gMcp854v3OffjsiqO6Vcf+dNWBwixqv6KAp0W/wzyCR5QnhEoE29K06iRQ==
X-Google-Smtp-Source: AGHT+IGufufLyZ6Eu5vID2+YO2Cr3jWI7A87kyc7N9C1LqbP68Kf/K1914Qn5HAlZea3Ybx+tzciEw==
X-Received: by 2002:a5d:47cc:0:b0:39f:bf3:6f21 with SMTP id ffacd0b85a97d-3a06d64cab2mr4129155f8f.11.1745564491511;
        Fri, 25 Apr 2025 00:01:31 -0700 (PDT)
Message-ID: <6ef898f7-c8a3-4326-96ab-42aa90c48e1c@suse.com>
Date: Fri, 25 Apr 2025 09:01:29 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH v2 21/34] x86/msr: Utilize the alternatives mechanism
 to write MSR
To: "H. Peter Anvin" <hpa@zytor.com>, Xin Li <xin@zytor.com>,
 linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
 linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
 virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
 linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
 linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
 netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
 dave.hansen@linux.intel.com, x86@kernel.org, acme@kernel.org,
 andrew.cooper3@citrix.com, peterz@infradead.org, namhyung@kernel.org,
 mark.rutland@arm.com, alexander.shishkin@linux.intel.com, jolsa@kernel.org,
 irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
 wei.liu@kernel.org, ajay.kaher@broadcom.com,
 bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
 pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
 luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
 haiyangz@microsoft.com, decui@microsoft.com
References: <20250422082216.1954310-1-xin@zytor.com>
 <20250422082216.1954310-22-xin@zytor.com>
 <b2624e84-6fab-44a3-affc-ce0847cd3da4@suse.com>
 <f7198308-e8f8-4cc5-b884-24bc5f408a2a@zytor.com>
 <37c88ea3-dd24-4607-9ee1-0f19025aaef3@suse.com>
 <bb8f6b85-4e7d-440a-a8c3-0e0da45864b8@zytor.com>
 <0cdc6e9d-88eb-4ead-8d55-985474257d53@suse.com>
 <483eb20c-7302-4733-a15f-21d140396919@zytor.com>
 <72516271-5b28-434a-838b-d8532e1b4fc1@zytor.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: <72516271-5b28-434a-838b-d8532e1b4fc1@zytor.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------70AsB5RmvESA2s8FjOW8qybs"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------70AsB5RmvESA2s8FjOW8qybs
Content-Type: multipart/mixed; boundary="------------GJ9OF40vHIucWp0hwDufMOKu";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: "H. Peter Anvin" <hpa@zytor.com>, Xin Li <xin@zytor.com>,
 linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
 linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
 virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
 linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
 linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
 netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
 dave.hansen@linux.intel.com, x86@kernel.org, acme@kernel.org,
 andrew.cooper3@citrix.com, peterz@infradead.org, namhyung@kernel.org,
 mark.rutland@arm.com, alexander.shishkin@linux.intel.com, jolsa@kernel.org,
 irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
 wei.liu@kernel.org, ajay.kaher@broadcom.com,
 bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
 pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
 luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
 haiyangz@microsoft.com, decui@microsoft.com
Message-ID: <6ef898f7-c8a3-4326-96ab-42aa90c48e1c@suse.com>
Subject: Re: [RFC PATCH v2 21/34] x86/msr: Utilize the alternatives mechanism
 to write MSR
References: <20250422082216.1954310-1-xin@zytor.com>
 <20250422082216.1954310-22-xin@zytor.com>
 <b2624e84-6fab-44a3-affc-ce0847cd3da4@suse.com>
 <f7198308-e8f8-4cc5-b884-24bc5f408a2a@zytor.com>
 <37c88ea3-dd24-4607-9ee1-0f19025aaef3@suse.com>
 <bb8f6b85-4e7d-440a-a8c3-0e0da45864b8@zytor.com>
 <0cdc6e9d-88eb-4ead-8d55-985474257d53@suse.com>
 <483eb20c-7302-4733-a15f-21d140396919@zytor.com>
 <72516271-5b28-434a-838b-d8532e1b4fc1@zytor.com>
In-Reply-To: <72516271-5b28-434a-838b-d8532e1b4fc1@zytor.com>

--------------GJ9OF40vHIucWp0hwDufMOKu
Content-Type: multipart/mixed; boundary="------------OqD5G79twKp4xp6ASPK6yqSb"

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

T24gMjUuMDQuMjUgMDU6NDQsIEguIFBldGVyIEFudmluIHdyb3RlOg0KPiBPbiA0LzI0LzI1
IDE4OjE1LCBILiBQZXRlciBBbnZpbiB3cm90ZToNCj4+IE9uIDQvMjQvMjUgMDE6MTQsIErD
vHJnZW4gR3Jvw58gd3JvdGU6DQo+Pj4+DQo+Pj4+IEFjdHVhbGx5LCB0aGF0IGlzIGhvdyB3
ZSBnZXQgdGhpcyBwYXRjaCB3aXRoIHRoZSBleGlzdGluZyBhbHRlcm5hdGl2ZXMNCj4+Pj4g
aW5mcmFzdHJ1Y3R1cmUuwqAgQW5kIHdlIHRvb2sgYSBzdGVwIGZ1cnRoZXIgdG8gYWxzbyBy
ZW1vdmUgdGhlIHB2X29wcw0KPj4+PiBNU1IgQVBJcy4uLg0KPj4+DQo+Pj4gQW5kIHRoaXMg
aXMgd2hhdCBJJ20gcXVlc3Rpb25pbmcuIElNSE8gdGhpcyBhcHByb2FjaCBpcyBhZGRpbmcg
bW9yZQ0KPj4+IGNvZGUgYnkgcmVtb3ZpbmcgdGhlIHB2X29wcyBNU1JfQVBJcyBqdXN0IGJl
Y2F1c2UgInB2X29wcyBpcyBiYWQiLiBBbmQNCj4+PiBJIGJlbGlldmUgbW9zdCByZWZ1c2Fs
IG9mIHB2X29wcyBpcyBiYXNlZCBvbiBubyBsb25nZXIgdmFsaWQgcmVhc29uaW5nLg0KPj4+
DQo+Pg0KPj4gcHZvcHMgYXJlIGEgaGVhZGFjaGUgYmVjYXVzZSBpdCBpcyBlZmZlY3RpdmVs
eSBhIHNlY29uZGFyeSBhbHRlcm5hdGl2ZXMgDQo+PiBpbmZyYXN0cnVjdHVyZSB0aGF0IGlz
IGluY29tcGF0aWJsZSB3aXRoIHRoZSBhbHRlcm5hdGl2ZXMgb25lLi4uDQo+Pg0KPj4+PiBJ
dCBsb29rcyB0byBtZSB0aGF0IHlvdSB3YW50IHRvIGFkZCBhIG5ldyBmYWNpbGl0eSB0byB0
aGUgYWx0ZXJuYXRpdmVzDQo+Pj4+IGluZnJhc3RydWN0dXJlIGZpcnN0Pw0KPj4+DQo+Pj4g
V2h5IHdvdWxkIHdlIG5lZWQgYSBuZXcgZmFjaWxpdHkgaW4gdGhlIGFsdGVybmF0aXZlcyBp
bmZyYXN0cnVjdHVyZT8NCj4+DQo+PiBJJ20gbm90IHN1cmUgd2hhdCBYaW4gbWVhbnMgd2l0
aCAiZmFjaWxpdHkiLCBidXQgYSBrZXkgbW90aXZhdGlvbiBmb3IgdGhpcyBpcyB0bzoNCj4+
DQo+PiBhLiBBdm9pZCB1c2luZyB0aGUgcHZvcHMgZm9yIE1TUnMgd2hlbiBvbiB0aGUgb25s
eSByZW1haW5pbmcgdXNlciB0aGVyZW9mIA0KPj4gKFhlbikgaXMgb25seSB1c2luZyBpdCBm
b3IgYSB2ZXJ5IHNtYWxsIHN1YnNldCBvZiBNU1JzIGFuZCBmb3IgdGhlIHJlc3QgaXQgaXMg
DQo+PiBqdXN0IG92ZXJoZWFkLCBldmVuIGZvciBYZW47DQo+Pg0KPj4gYi4gQmVpbmcgYWJs
ZSB0byBkbyB3cm1zcm5zIGltbWVkaWF0ZS93cm1zcm5zL3dybXNyIGFuZCByZG1zciBpbW1l
ZGlhdGUvIHJkbXNyIA0KPj4gYWx0ZXJuYXRpdmVzLg0KPj4NCj4+IE9mIHRoZXNlLCAoYikg
aXMgYnkgZmFyIHRoZSBiaWdnZXN0IG1vdGl2YXRpb24uIFRoZSBhcmNoaXRlY3R1cmFsIGRp
cmVjdGlvbiANCj4+IGZvciBzdXBlcnZpc29yIHN0YXRlcyBpcyB0byBhdm9pZCBhZCBob2Mg
YW5kIFhTQVZFUyBJU0EgYW5kIGluc3RlYWQgdXNlIE1TUnMuIA0KPj4gVGhlIGltbWVkaWF0
ZSBmb3JtcyBhcmUgZXhwZWN0ZWQgdG8gYmUgc2lnbmlmaWNhbnRseSBmYXN0ZXIsIGJlY2F1
c2UgdGhleSBtYWtlIA0KPj4gdGhlIE1TUiBpbmRleCBhdmFpbGFibGUgYXQgdGhlIHZlcnkg
YmVnaW5uaW5nIG9mIHRoZSBwaXBlbGluZSBpbnN0ZWFkIG9mIGF0IGEgDQo+PiByZWxhdGl2
ZWx5IGxhdGUgc3RhZ2UuDQo+Pg0KPiANCj4gTm90ZSB0aGF0IHRvIHN1cHBvcnQgdGhlIGlt
bWVkaWF0ZSBmb3Jtcywgd2UgKm11c3QqIGRvIHRoZXNlIGlubGluZSwgb3IgdGhlIA0KPiBj
b25zdC1uZXNzIG9mIHRoZSBNU1IgaW5kZXggLS0gd2hpY2ggYXBwbGllcyB0byBieSBmYXIg
dGhlIHZhc3QgbWFqb3JpdHkgb2YgTVNSIA0KPiByZWZlcmVuY2VzIC0tIGdldHMgbG9zdC4g
cHZvcHMgZG9lcyBleGFjdGx5IHRoYXQuDQo+IA0KPiBGdXJ0aGVybW9yZSwgdGhlIE1TUiBp
bW1lZGlhdGUgaW5zdHJ1Y3Rpb25zIHRha2UgYSA2NC1iaXQgbnVtYmVyIGluIGEgc2luZ2xl
IA0KPiByZWdpc3RlcjsgYXMgdGhlc2UgaW5zdHJ1Y3Rpb25zIGFyZSBieSBuZWNlc3NpdHkg
cmVsYXRpdmVseSBsb25nLCBpdCBtYWtlcyBzZW5zZSANCj4gZm9yIHRoZSBhbHRlcm5hdGl2
ZSBzZXF1ZW5jZSB0byBhY2NlcHQgYSA2NC1iaXQgaW5wdXQgcmVnaXN0ZXIgYW5kIGRvIHRo
ZSAlZWF4LyANCj4gJWVkeCBzaHVmZmxlIGluIHRoZSBsZWdhY3kgZmFsbGJhY2sgY29kZS4u
LiB3ZSBkaWQgYSBidW5jaCBvZiBleHBlcmltZW50cyB0byBzZWUgDQo+IHdoYXQgbWFkZSBt
b3N0IHNlbnNlLg0KDQpZZXMsIEkgdW5kZXJzdGFuZCB0aGF0Lg0KDQpBbmQgSSdtIHRvdGFs
bHkgaW4gZmF2b3Igb2YgWGluJ3MgcmV3b3JrIG9mIHRoZSBNU1IgbG93IGxldmVsIGZ1bmN0
aW9ucy4NCg0KSW5saW5pbmcgdGhlIE1TUiBhY2Nlc3MgaW5zdHJ1Y3Rpb25zIHdpdGggcHZf
b3BzIHNob3VsZCBub3QgYmUgdmVyeQ0KY29tcGxpY2F0ZWQuIFdlIGRvIHRoYXQgd2l0aCBv
dGhlciBpbnN0cnVjdGlvbnMgKFNUSS9DTEksIFBURSBhY2Nlc3NlcykNCnRvZGF5LCBzbyB0
aGlzIGlzIG5vIG5ldyBraW5kIG9mIGZ1bmN0aW9uYWxpdHkuDQoNCkkgY291bGQgaGF2ZSBh
IHRyeSB3cml0aW5nIGEgcGF0Y2ggYWNoaWV2aW5nIHRoYXQsIGJ1dCBJIHdvdWxkIG9ubHkg
c3RhcnQNCnRoYXQgd29yayBpbiBjYXNlIHlvdSBtaWdodCBjb25zaWRlciB0YWtpbmcgaXQg
aW5zdGVhZCBvZiBYaW4ncyBwYXRjaA0KcmVtb3ZpbmcgdGhlIHB2X29wcyB1c2FnZSBmb3Ig
cmRtc3Ivd3Jtc3IuIEluIGNhc2UgaXQgdHVybnMgb3V0IHRoYXQgbXkNCnZlcnNpb24gcmVz
dWx0cyBpbiBtb3JlIGNvZGUgY2hhbmdlcyB0aGFuIFhpbidzIHBhdGNoLCBJJ2QgYmUgZmlu
ZSB0byBkcm9wDQpteSBwYXRjaCwgb2YgY291cnNlLg0KDQoNCkp1ZXJnZW4NCg==
--------------OqD5G79twKp4xp6ASPK6yqSb
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-----

--------------OqD5G79twKp4xp6ASPK6yqSb--

--------------GJ9OF40vHIucWp0hwDufMOKu--

--------------70AsB5RmvESA2s8FjOW8qybs
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/Ey8FAmgLM0kFAwAAAAAACgkQsN6d1ii/Ey9J
ewgAleneoGof9FfwPyKjEeafKKF9GL+4Sam+p2GRBaUaEVHL9jEK/zI63WD1/raK2NasxlmJYHVZ
s2qZ+J/M8gr4P/UNqf467Np0nZ79OmtqtPh0Q77SUOsMP4psy2YPuJA7divtrxd2PMOmXFcYdbya
id9OTcpk5o0wCYzeKaWD9FzxVnBQW3lPfGk0AYEVvYxfolzuygFQ+vjCEjLjzTy71lVX9kj5oa0B
Xo5fqnC9Tih5mo68HAKsbmyT2b6K6RE0iWTqgXAx7T8BHgQBHHKgC6yiAj+0r5tvaOYT3nupCvZF
v1+aoIdfjelYRqb6tHKba9qJzgzzn0kei4XfjMQ87A==
=uKZw
-----END PGP SIGNATURE-----

--------------70AsB5RmvESA2s8FjOW8qybs--


From xen-devel-bounces@lists.xenproject.org Fri Apr 25 07:12:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 07:12:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.967234.1357098 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8DES-0006xn-I4; Fri, 25 Apr 2025 07:12:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 967234.1357098; Fri, 25 Apr 2025 07: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 1u8DES-0006xg-Eq; Fri, 25 Apr 2025 07:12:20 +0000
Received: by outflank-mailman (input) for mailman id 967234;
 Fri, 25 Apr 2025 07: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=y1QO=XL=infradead.org=peterz@srs-se1.protection.inumbo.net>)
 id 1u8DEP-0006xa-IH
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 07:12:19 +0000
Received: from desiato.infradead.org (desiato.infradead.org
 [2001:8b0:10b:1:d65d:64ff:fe57:4e05])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9919d625-21a4-11f0-9ffb-bf95429c2676;
 Fri, 25 Apr 2025 09:12:07 +0200 (CEST)
Received: from 77-249-17-252.cable.dynamic.v4.ziggo.nl ([77.249.17.252]
 helo=noisy.programming.kicks-ass.net)
 by desiato.infradead.org with esmtpsa (Exim 4.98.1 #2 (Red Hat Linux))
 id 1u8DE6-0000000BzpF-0oO3; Fri, 25 Apr 2025 07:11:58 +0000
Received: by noisy.programming.kicks-ass.net (Postfix, from userid 1000)
 id 9C8B63003C4; Fri, 25 Apr 2025 09:11:57 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9919d625-21a4-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=desiato.20200630; h=In-Reply-To:Content-Type:MIME-Version:
	References:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To:
	Content-Transfer-Encoding:Content-ID:Content-Description;
	bh=/gz49BzCJiWld7uM47beLEzscI0nDdN8PKFhZbH8k1o=; b=Qw+6HPRAw2GLZXmgq20QS8wt0C
	txn/mVTO91ykn5tuFL/uuYfAuUYz48Q+lrxxQKWB2g9D74CKa+ah99c2oA9gm4GaeNVuoBaXtLVTE
	EIQdRwY5DRRXVVw52ts12pvJLUE9HqBbfk09qveKUwveCLkKx6mpx/Pt92hCzjodDWEFS+AyI99lE
	XynTiM71ri22QAuhPkA1dOyMyrvoIpydTtDNIbY90QgKhPVFKkLiMxiJwtrCmY2XuUv18oexVkyGa
	K2Yz5b9lN+AeV19kdukXXE8nn2xl4BF0X2TDbsW+JRVY+YdM++E1hfKHpu8kf3a1t1S5TXUufej/G
	ZpKgJFCw==;
Date: Fri, 25 Apr 2025 09:11:57 +0200
From: Peter Zijlstra <peterz@infradead.org>
To: =?iso-8859-1?Q?J=FCrgen_Gro=DF?= <jgross@suse.com>
Cc: "Xin Li (Intel)" <xin@zytor.com>, linux-kernel@vger.kernel.org,
	kvm@vger.kernel.org, linux-perf-users@vger.kernel.org,
	linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
	linux-pm@vger.kernel.org, linux-edac@vger.kernel.org,
	xen-devel@lists.xenproject.org, linux-acpi@vger.kernel.org,
	linux-hwmon@vger.kernel.org, netdev@vger.kernel.org,
	platform-driver-x86@vger.kernel.org, tglx@linutronix.de,
	mingo@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com,
	x86@kernel.org, hpa@zytor.com, acme@kernel.org,
	andrew.cooper3@citrix.com, namhyung@kernel.org,
	mark.rutland@arm.com, alexander.shishkin@linux.intel.com,
	jolsa@kernel.org, irogers@google.com, adrian.hunter@intel.com,
	kan.liang@linux.intel.com, wei.liu@kernel.org,
	ajay.kaher@broadcom.com, bcm-kernel-feedback-list@broadcom.com,
	tony.luck@intel.com, pbonzini@redhat.com, vkuznets@redhat.com,
	seanjc@google.com, luto@kernel.org, boris.ostrovsky@oracle.com,
	kys@microsoft.com, haiyangz@microsoft.com, decui@microsoft.com
Subject: Re: [RFC PATCH v2 21/34] x86/msr: Utilize the alternatives mechanism
 to write MSR
Message-ID: <20250425071157.GI18306@noisy.programming.kicks-ass.net>
References: <20250422082216.1954310-1-xin@zytor.com>
 <20250422082216.1954310-22-xin@zytor.com>
 <b2624e84-6fab-44a3-affc-ce0847cd3da4@suse.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha512;
	protocol="application/pgp-signature"; boundary="xy1v71s9LdcW622N"
Content-Disposition: inline
In-Reply-To: <b2624e84-6fab-44a3-affc-ce0847cd3da4@suse.com>


--xy1v71s9LdcW622N
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Tue, Apr 22, 2025 at 11:57:01AM +0200, J=FCrgen Gro=DF wrote:
> On 22.04.25 10:22, Xin Li (Intel) wrote:

> >    This becomes even more silly for trivial instructions like STI/CLI
> >    or in the worst case paravirt_nop().
>=20
> This is nonsense.

What Jurgen says. Someone hasn't done their homework.

static __always_inline void arch_local_irq_disable(void)
{
        PVOP_ALT_VCALLEE0(irq.irq_disable, "cli;", ALT_NOT_XEN);
}

static __always_inline void arch_local_irq_enable(void)
{
        PVOP_ALT_VCALLEE0(irq.irq_enable, "sti;", ALT_NOT_XEN);
}

That very much patches in STI/CLI directly when not Xen.


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

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

iQIzBAABCgAdFiEEv3OU3/byMaA0LqWJdkfhpEvA5LoFAmgLNbQACgkQdkfhpEvA
5LoeWg/8D6ZI5w51DgwY+CTaX5PthgVGKgELCKDw5kBtAe3UxeF/H12T6L6a4XhK
iSGZ9nZg17P5b2kv9cfXnslz/BqlOUjFfT+cuY64cIDvGXPqjbEcWxhHp/O7e34u
L1wOXvlh5ZnWkVUPbeIFgLxCqPqOnGBpsq0LrQwaCxbEzkB5wKqS57h2ooqsrloQ
V4WBwabMJ/lp704zpEgcqzWhM8zWydjPgfGuCZUTbVlvc4pgAGAwktnRd7ot+D4x
n9UbVvBHSzW53t3RpsrzcQkVDGirtlcIipDUbPeIyTs+ArR+xfBiEl7QvXz1liAg
GiJ7aNB/6PybXktHZBkEoRd/3sPBavWiOc1TMriCjWit/pNE+GJjUUozds3kRe/v
pwMTYEbXlPYsgYv121YZpFaaz1ihVlIpnDj/6aqMTe+KQhAziId4CtU8pfSHYZi3
EgC+1PUUySs0LV4TkieDsk1zmfG1lDvWNe5UKyuFYKQ/A99Kg3BacBJHc+PrZDMq
X7MfWZLRG++yhbcBPfHasl6Vg++GagMpoJLKp5zC9QaTUjRdvYm36SR0NvOC+BAt
NPIq3H7qbBLYR0JBaJrgNSqe+1rPgJooo5PYg1Ozmv4q50Umlai3coKqls3pnTIe
zwUVnBTjAszAW1zI3BcSrm5Ol912qJXA7AzxV+FRiKDC+kIRaU4=
=t7cf
-----END PGP SIGNATURE-----

--xy1v71s9LdcW622N--


From xen-devel-bounces@lists.xenproject.org Fri Apr 25 08:07:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 08:07:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.967296.1357117 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8E5z-0006fR-LX; Fri, 25 Apr 2025 08:07:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 967296.1357117; Fri, 25 Apr 2025 08:07: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 1u8E5z-0006fK-HE; Fri, 25 Apr 2025 08:07:39 +0000
Received: by outflank-mailman (input) for mailman id 967296;
 Fri, 25 Apr 2025 08:07: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=ZJ1s=XL=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u8E5y-0006fE-DU
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 08:07:38 +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 4fd42561-21ac-11f0-9ffb-bf95429c2676;
 Fri, 25 Apr 2025 10:07:20 +0200 (CEST)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-3914aba1ce4so1441151f8f.2
 for <xen-devel@lists.xenproject.org>; Fri, 25 Apr 2025 01:07:28 -0700 (PDT)
Received: from [10.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-3a073e461casm1593348f8f.74.2025.04.25.01.07.26
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 25 Apr 2025 01:07:27 -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: 4fd42561-21ac-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745568447; x=1746173247; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=SWU1PEhrpAVMYN5N36PBet5PbNmWcrMovqbMPn1yVtM=;
        b=hHM7f5RXMornKJBxcsGOfa38tp09txgcnspcVWAte8iRc6ufYulqTynuwXqvVK4X7Q
         JaW/fSe2I+JEFxU7CThgvaCk5rmyuigIv9ByqbIR29/21cUzT2t+ppkpMNzeeUtirxsb
         3I/FQ5MoI0+Pilnxm50PHiaXtfNq6WoC/qVmX4f+M6c5jP82l5GOrazVs83yOzUUsfIa
         OvGzVQPG7Ot5HdHXnheCeQPp/pOnhTTaHHDMpz6/r1zIC66bIx8MIJYcARpA2qDReE5K
         Kz3vUWbzb7DKsF5WQaeevUsnH1kPN4kLOAnvPPZmYdduvipPtx+PIXq5WryMFwwG1xzp
         B9ig==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745568447; x=1746173247;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=SWU1PEhrpAVMYN5N36PBet5PbNmWcrMovqbMPn1yVtM=;
        b=Krhfb5pP7Ur2t6kYNOUeswxjprU+HcyT6N1G5AlUj3Mw0oHscJ9x9WW8ckXEF2fZ3e
         sfgWmXdfJSF7XkUXJ4lPMPBIoEy0hKuhQbF9hLT9RC8Lar/VjZxhU7m1HvbKDj1XsVPI
         pW2qRvBZcylK8qHbbCQuKKPJNk9B3HZoVrxF+5WfQQx6ONEs8QUmfmPEmJ1gZ63+6sSY
         Y7aX3WdDIlljj+SwJwISC5U5xRcp09Ztv9t7XPp0fRW6qzxDZ5HPDwQrN+CU6PhnxdK3
         +f6x4o9sUFvVGR0LBTx72R14/Fc7bwbMJAFKvBUXv2wq7pwnh28TCERxM5tkBXQe9kTW
         I60A==
X-Forwarded-Encrypted: i=1; AJvYcCUNeVM1REgh2aRhh/vRK7iCQDMz6rKFmk3J+QKPl9NkahFJzgX133+LW/0Tq9zd++sUzVY/pXeQw7I=@lists.xenproject.org
X-Gm-Message-State: AOJu0YypGHMmF2pxFN6zxYlbLpIuf7SGzFDvl+CI59YXe/cSqI7OqQuA
	TAe5OzNt3Aa+QMX+/QkhdMb1bBAsKV1b5HOdcDkk77CPyR4Re4sSolvSY0Pk8w==
X-Gm-Gg: ASbGncue867QDA9Gzfho5fY8TqbwYLLEijkWqeFKsBLEP37+I7jbrR6RI+gJHoHJKiL
	0ES7aXIATJWInLnCgdHKmdisdHg67ojqugxTZxH5fWnXLKHWBASmkcVFTB+78WtTtjFJgztzh6k
	ohEH5EV5xzzFBFYLFdRocibfWi3gxdBrkTIJ2fegbFWHV4dTtdhr3T9wZDPjLuQYMA25umMU9ko
	hY1kHTzn/EXsCzhlUUIFON+5hVsSpdr0HkqovfYASnYVhhVAv9/cDd9aDGVppQDC4zR74gzKBru
	YCJJi1amEz7TDXt7+m7PqJhINT6VSkSaHSA8jocHOr8GyYPcU6w+snsx+O5kreXf+d6UoU7bUtL
	+uOEDpQ8MrZk4WOTTRAsAICDQDZGm4UITeAht
X-Google-Smtp-Source: AGHT+IHQuzSZYrgjgZCr4a0EGokX2J65T8ABMGA7UijjrwLRQirxlAN5S/2VwUy0yEq93F9Wu4bBew==
X-Received: by 2002:a05:6000:2403:b0:39a:ca05:54a9 with SMTP id ffacd0b85a97d-3a074e41d2bmr851952f8f.29.1745568447596;
        Fri, 25 Apr 2025 01:07:27 -0700 (PDT)
Message-ID: <8d65ee65-ec6f-49a3-8954-d303b08dc2df@suse.com>
Date: Fri, 25 Apr 2025 10:07:25 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1] misra: add deviation for rules 21.1 and 21.2
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: victorm.lira@amd.com, Nicola Vetrini <nicola.vetrini@bugseng.com>,
 Federico Serafini <federico.serafini@bugseng.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>, xen-devel@lists.xenproject.org
References: <9e1210f2a9c794d68dcc6b897239b228b141296a.1745427770.git.victorm.lira@amd.com>
 <f5d35582-9270-4816-84c2-f078afeee711@suse.com>
 <alpine.DEB.2.22.394.2504241443550.785180@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.2504241443550.785180@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.04.2025 23:45, Stefano Stabellini wrote:
> On Thu, 24 Apr 2025, Jan Beulich wrote:
>> On 23.04.2025 19:54, victorm.lira@amd.com wrote:
>>> From: Nicola Vetrini <nicola.vetrini@bugseng.com>
>>>
>>> MISRA C Rules 21.1 ("#define and #undef shall not be used on a
>>> reserved identifier or reserved macro name") and R21.2 ("A reserved
>>> identifier or reserved macro name shall not be declared") violations
>>> are not problematic for Xen, as it does not use the C or POSIX
>>> libraries.
>>>
>>> Xen uses -fno-builtin and -nostdinc to ensure this, but there are still
>>> __builtin_* functions from the compiler that are available so
>>> a deviation is formulated for all identifiers not starting with
>>> "__builtin_".
>>>
>>> The missing text of a deviation for Rule 21.2 is added to
>>> docs/misra/deviations.rst.
>>>
>>> To avoid regressions, tag both rules as clean and add them to the
>>> monitored set.
>>>
>>> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
>>> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
>>> Signed-off-by: Victor Lira <victorm.lira@amd.com>
>>
>> While the rule is in the library section, ...
>>
>>> --- a/docs/misra/deviations.rst
>>> +++ b/docs/misra/deviations.rst
>>> @@ -587,7 +587,31 @@ Deviations related to MISRA C:2012 Rules:
>>>         construct is deviated only in Translation Units that present a violation
>>>         of the Rule due to uses of this macro.
>>>       - Tagged as `deliberate` for ECLAIR.
>>> -
>>> +
>>> +   * - R21.1
>>> +     - Rule 21.1 reports identifiers reserved for the C and POSIX standard
>>> +       libraries. Xen does not use such libraries and all translation units
>>> +       are compiled with option '-nostdinc', therefore there is no reason to
>>> +       avoid to use `#define` or `#undef` on such identifiers except for those
>>> +       beginning with `__builtin_` for which compilers may perform (wrong)
>>> +       optimizations.
>>> +     - Tagged as `safe` for ECLAIR.
>>
>> ... I'd like to ask that it be explicitly clarified here that it's solely
>> the library (and not e.g. the compiler itself) that are of concern here.
> 
> The language can be clarified:
> 
> - Rule 21.1 reports identifiers reserved for the C and POSIX standard
>   libraries. Xen does not use such libraries and all translation units
>   are compiled with option '-nostdinc', therefore there is no reason to
>   avoid to use `#define` or `#undef` on C and POSIX standard libraries
>   identifiers except for those beginning with `__builtin_` for which
>   compilers may perform (wrong) optimizations.

Which makes it more apparent that there is a gap: What about e.g. __x86_64__?
That falls within what the rules cover, is not a C or POSIX standard library
identifier, yet very clearly must not be fiddled with. Whereas the text
above deviates it.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Apr 25 08:35:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 08:35:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.967318.1357188 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8EX2-00045D-H4; Fri, 25 Apr 2025 08:35:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 967318.1357188; Fri, 25 Apr 2025 08:35: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 1u8EX2-00043U-3c; Fri, 25 Apr 2025 08:35:36 +0000
Received: by outflank-mailman (input) for mailman id 967318;
 Fri, 25 Apr 2025 08: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=Tuhi=XL=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u8EX0-0002sy-S8
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 08:35:34 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 408609bf-21b0-11f0-9eb3-5ba50f476ded;
 Fri, 25 Apr 2025 10:35:34 +0200 (CEST)
Received: from terminus.zytor.com (terminus.zytor.com
 [IPv6:2607:7c80:54:3:0:0:0:136]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53P8Yg5X2390085
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Fri, 25 Apr 2025 01:35:06 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 408609bf-21b0-11f0-9eb3-5ba50f476ded
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53P8Yg5X2390085
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745570107;
	bh=FN/DKU8Mk2Q9Xof2Rumm+93wLI4a8v+UmrLXGE1N9mk=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=L78zoZAAN4f887y6qrYsRv1om8NzU+UWXr3Vc5HlTTSXUohwqXnXnQojJBw9b1s9T
	 h86xOvwIJB6Ua8meWZlAGHT+h0th53l96xPbayjpOKZ4DjyHxqkGpydO8o/0KivYn/
	 jdmHXS+sQqnMkJPFn7dB5i5Yyfy1DYtABR6j7h99DUMuLqt/k17vF2jb+38yQcRdEV
	 G9ngF24E4Kjj7fU2hIpR+Ghr6tgUOovBiIhQZcV+qhdz3Vedm6AWFYqyxgevLN4POO
	 UVTWdh/p6/hvKNjFY4TLjPK6aHrVKvmhjHc4zWe61CNbkTMmx2vkewcubTz2h2/90a
	 wIeCZ3lZzhmcw==
From: "Xin Li (Intel)" <xin@zytor.com>
To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
        linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
        netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        acme@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com,
        peterz@infradead.org, namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com,
        dapeng1.mi@linux.intel.com
Subject: [PATCH v3 09/14] x86/xen/msr: Remove calling native_{read,write}_msr{,_safe}() in pmu_msr_{read,write}()
Date: Fri, 25 Apr 2025 01:34:32 -0700
Message-ID: <20250425083442.2390017-10-xin@zytor.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250425083442.2390017-1-xin@zytor.com>
References: <20250425083442.2390017-1-xin@zytor.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

hpa found that pmu_msr_write() is actually a completely pointless
function [1]: all it does is shuffle some arguments, then calls
pmu_msr_chk_emulated() and if it returns true AND the emulated flag
is clear then does *exactly the same thing* that the calling code
would have done if pmu_msr_write() itself had returned true.  And
pmu_msr_read() does the equivalent stupidity.

Remove the calls to native_{read,write}_msr{,_safe}() within
pmu_msr_{read,write}().  Instead reuse the existing calling code
that decides whether to call native_{read,write}_msr{,_safe}() based
on the return value from pmu_msr_{read,write}().  Consequently,
eliminate the need to pass an error pointer to pmu_msr_{read,write}().

While at it, refactor pmu_msr_write() to take the MSR value as a u64
argument, replacing the current dual u32 arguments, because the dual
u32 arguments were only used to call native_write_msr{,_safe}(), which
has now been removed.

[1]: https://lore.kernel.org/lkml/0ec48b84-d158-47c6-b14c-3563fd14bcc4@zytor.com/

Suggested-by: H. Peter Anvin (Intel) <hpa@zytor.com>
Sign-off-by: Xin Li (Intel) <xin@zytor.com>
---

Change in v3:
*) Rename pmu_msr_{read,write}() to pmu_msr_{read,write}_emulated()
   (Dapeng Mi).
*) Fix a pmu_msr_read() callsite with wrong arguments (Dapeng Mi).
---
 arch/x86/xen/enlighten_pv.c |  8 ++++++--
 arch/x86/xen/pmu.c          | 27 ++++-----------------------
 arch/x86/xen/xen-ops.h      |  4 ++--
 3 files changed, 12 insertions(+), 27 deletions(-)

diff --git a/arch/x86/xen/enlighten_pv.c b/arch/x86/xen/enlighten_pv.c
index 846b5737d320..61e51a970f3c 100644
--- a/arch/x86/xen/enlighten_pv.c
+++ b/arch/x86/xen/enlighten_pv.c
@@ -1090,7 +1090,7 @@ static u64 xen_do_read_msr(unsigned int msr, int *err)
 {
 	u64 val = 0;	/* Avoid uninitialized value for safe variant. */
 
-	if (pmu_msr_read(msr, &val, err))
+	if (pmu_msr_read_emulated(msr, &val))
 		return val;
 
 	if (err)
@@ -1132,6 +1132,8 @@ static void set_seg(unsigned int which, unsigned int low, unsigned int high,
 static void xen_do_write_msr(unsigned int msr, unsigned int low,
 			     unsigned int high, int *err)
 {
+	u64 val;
+
 	switch (msr) {
 	case MSR_FS_BASE:
 		set_seg(SEGBASE_FS, low, high, err);
@@ -1158,7 +1160,9 @@ static void xen_do_write_msr(unsigned int msr, unsigned int low,
 		break;
 
 	default:
-		if (!pmu_msr_write(msr, low, high, err)) {
+		val = (u64)high << 32 | low;
+
+		if (!pmu_msr_write_emulated(msr, val)) {
 			if (err)
 				*err = native_write_msr_safe(msr, low, high);
 			else
diff --git a/arch/x86/xen/pmu.c b/arch/x86/xen/pmu.c
index 9c1682af620a..b6557f2d1a2e 100644
--- a/arch/x86/xen/pmu.c
+++ b/arch/x86/xen/pmu.c
@@ -313,37 +313,18 @@ static bool pmu_msr_chk_emulated(unsigned int msr, uint64_t *val, bool is_read,
 	return true;
 }
 
-bool pmu_msr_read(unsigned int msr, uint64_t *val, int *err)
+bool pmu_msr_read_emulated(u32 msr, u64 *val)
 {
 	bool emulated;
 
-	if (!pmu_msr_chk_emulated(msr, val, true, &emulated))
-		return false;
-
-	if (!emulated) {
-		*val = err ? native_read_msr_safe(msr, err)
-			   : native_read_msr(msr);
-	}
-
-	return true;
+	return pmu_msr_chk_emulated(msr, val, true, &emulated) && emulated;
 }
 
-bool pmu_msr_write(unsigned int msr, uint32_t low, uint32_t high, int *err)
+bool pmu_msr_write_emulated(u32 msr, u64 val)
 {
-	uint64_t val = ((uint64_t)high << 32) | low;
 	bool emulated;
 
-	if (!pmu_msr_chk_emulated(msr, &val, false, &emulated))
-		return false;
-
-	if (!emulated) {
-		if (err)
-			*err = native_write_msr_safe(msr, low, high);
-		else
-			native_write_msr(msr, low, high);
-	}
-
-	return true;
+	return pmu_msr_chk_emulated(msr, &val, false, &emulated) && emulated;
 }
 
 static u64 xen_amd_read_pmc(int counter)
diff --git a/arch/x86/xen/xen-ops.h b/arch/x86/xen/xen-ops.h
index 735f58780704..163e03e33089 100644
--- a/arch/x86/xen/xen-ops.h
+++ b/arch/x86/xen/xen-ops.h
@@ -274,8 +274,8 @@ void xen_pmu_finish(int cpu);
 static inline void xen_pmu_init(int cpu) {}
 static inline void xen_pmu_finish(int cpu) {}
 #endif
-bool pmu_msr_read(unsigned int msr, uint64_t *val, int *err);
-bool pmu_msr_write(unsigned int msr, uint32_t low, uint32_t high, int *err);
+bool pmu_msr_read_emulated(u32 msr, u64 *val);
+bool pmu_msr_write_emulated(u32 msr, u64 val);
 int pmu_apic_update(uint32_t reg);
 u64 xen_read_pmc(int counter);
 
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Fri Apr 25 08:35:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 08:35:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.967316.1357175 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8EX1-0003sI-J9; Fri, 25 Apr 2025 08:35:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 967316.1357175; Fri, 25 Apr 2025 08: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 1u8EX1-0003qJ-7p; Fri, 25 Apr 2025 08:35:35 +0000
Received: by outflank-mailman (input) for mailman id 967316;
 Fri, 25 Apr 2025 08:35: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=Tuhi=XL=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u8EWz-0002sy-NM
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 08:35:33 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3c86d94c-21b0-11f0-9eb3-5ba50f476ded;
 Fri, 25 Apr 2025 10:35:27 +0200 (CEST)
Received: from terminus.zytor.com (terminus.zytor.com
 [IPv6:2607:7c80:54:3:0:0:0:136]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53P8Yg5P2390085
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Fri, 25 Apr 2025 01:34:49 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3c86d94c-21b0-11f0-9eb3-5ba50f476ded
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53P8Yg5P2390085
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745570091;
	bh=647AnGgLXs34NjSWqun8T/TryywSzrBvCGHXdii61Zk=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=DkDA8ycjphciWWaVFq4Ul+HxFYAk++kpSrDb0GUR0+2NW9udjWpkcu+di893xjMRD
	 9uim80f09InfvNePjMl1wKwRMq7GsEmfWJiHXG/PjgSZEQeu9o/vRLtpHeEZv3FEWt
	 xF+PGcJtnbJxrEbQVi6Kusy8GslmLYh0muh4hbUuAzkQPt9ob2zYoL8//RuufchGLu
	 JmIaj+7Rnf9eTe9UJcaAJ0xbt8AqC53B67DeK1VUibNOh+7mw/oehutgxmPU4wObgA
	 RaOo4zVtWws27D9rCnoPAljeM3d1TsZHQsDnnC9SL8BFlfaW0cAz8RQN4Bsq85pDKc
	 /0jy4nOMAQJgA==
From: "Xin Li (Intel)" <xin@zytor.com>
To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
        linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
        netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        acme@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com,
        peterz@infradead.org, namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com,
        dapeng1.mi@linux.intel.com
Subject: [PATCH v3 01/14] x86/msr: Move rdtsc{,_ordered}() to <asm/tsc.h>
Date: Fri, 25 Apr 2025 01:34:24 -0700
Message-ID: <20250425083442.2390017-2-xin@zytor.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250425083442.2390017-1-xin@zytor.com>
References: <20250425083442.2390017-1-xin@zytor.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

For some reason, there are some TSC-related functions in the MSR
header even though there is a tsc.h header.

Relocate rdtsc{,_ordered}() from <asm/msr.h> to <asm/tsc.h>, and
subsequently remove the inclusion of <asm/msr.h> in <asm/tsc.h>.
Consequently, <asm/msr.h> must be included in several source files
that previously did not require it.

Signed-off-by: Xin Li (Intel) <xin@zytor.com>
Acked-by: Dave Hansen <dave.hansen@linux.intel.com>
---

Change in v3:
* Add a problem statement to the changelog (Dave Hansen).
---
 arch/x86/events/msr.c                         |  3 +
 arch/x86/events/perf_event.h                  |  1 +
 arch/x86/events/probe.c                       |  2 +
 arch/x86/hyperv/ivm.c                         |  1 +
 arch/x86/include/asm/fred.h                   |  1 +
 arch/x86/include/asm/microcode.h              |  2 +
 arch/x86/include/asm/mshyperv.h               |  1 +
 arch/x86/include/asm/msr.h                    | 55 +-------------
 arch/x86/include/asm/suspend_32.h             |  1 +
 arch/x86/include/asm/suspend_64.h             |  1 +
 arch/x86/include/asm/switch_to.h              |  2 +
 arch/x86/include/asm/tsc.h                    | 76 ++++++++++++++++++-
 arch/x86/kernel/cpu/resctrl/pseudo_lock.c     |  1 +
 arch/x86/kernel/fpu/xstate.h                  |  1 +
 arch/x86/kernel/hpet.c                        |  1 +
 arch/x86/kernel/process_64.c                  |  1 +
 arch/x86/kernel/trace_clock.c                 |  2 +-
 arch/x86/kernel/tsc_sync.c                    |  1 +
 arch/x86/lib/kaslr.c                          |  2 +-
 arch/x86/mm/mem_encrypt_identity.c            |  1 +
 arch/x86/realmode/init.c                      |  1 +
 drivers/acpi/processor_perflib.c              |  1 +
 drivers/acpi/processor_throttling.c           |  3 +-
 drivers/cpufreq/amd-pstate-ut.c               |  2 +
 drivers/hwmon/hwmon-vid.c                     |  4 +
 drivers/net/vmxnet3/vmxnet3_drv.c             |  4 +
 drivers/platform/x86/intel/pmc/cnp.c          |  1 +
 .../intel/speed_select_if/isst_if_common.c    |  1 +
 drivers/platform/x86/intel/turbo_max_3.c      |  1 +
 29 files changed, 116 insertions(+), 58 deletions(-)

diff --git a/arch/x86/events/msr.c b/arch/x86/events/msr.c
index 8970ecef87c5..c39e49cecace 100644
--- a/arch/x86/events/msr.c
+++ b/arch/x86/events/msr.c
@@ -3,6 +3,9 @@
 #include <linux/sysfs.h>
 #include <linux/nospec.h>
 #include <asm/cpu_device_id.h>
+#include <asm/msr.h>
+#include <asm/tsc.h>
+
 #include "probe.h"
 
 enum perf_msr_id {
diff --git a/arch/x86/events/perf_event.h b/arch/x86/events/perf_event.h
index a5166fa9339b..a8d4e82e3589 100644
--- a/arch/x86/events/perf_event.h
+++ b/arch/x86/events/perf_event.h
@@ -17,6 +17,7 @@
 #include <asm/fpu/xstate.h>
 #include <asm/intel_ds.h>
 #include <asm/cpu.h>
+#include <asm/msr.h>
 
 /* To enable MSR tracing please use the generic trace points. */
 
diff --git a/arch/x86/events/probe.c b/arch/x86/events/probe.c
index fda35cf25528..bb719d0d3f0b 100644
--- a/arch/x86/events/probe.c
+++ b/arch/x86/events/probe.c
@@ -2,6 +2,8 @@
 #include <linux/export.h>
 #include <linux/types.h>
 #include <linux/bits.h>
+
+#include <asm/msr.h>
 #include "probe.h"
 
 static umode_t
diff --git a/arch/x86/hyperv/ivm.c b/arch/x86/hyperv/ivm.c
index 1b8a2415183b..8209de792388 100644
--- a/arch/x86/hyperv/ivm.c
+++ b/arch/x86/hyperv/ivm.c
@@ -22,6 +22,7 @@
 #include <asm/realmode.h>
 #include <asm/e820/api.h>
 #include <asm/desc.h>
+#include <asm/msr.h>
 #include <uapi/asm/vmx.h>
 
 #ifdef CONFIG_AMD_MEM_ENCRYPT
diff --git a/arch/x86/include/asm/fred.h b/arch/x86/include/asm/fred.h
index 2a29e5216881..12b34d5b2953 100644
--- a/arch/x86/include/asm/fred.h
+++ b/arch/x86/include/asm/fred.h
@@ -9,6 +9,7 @@
 #include <linux/const.h>
 
 #include <asm/asm.h>
+#include <asm/msr.h>
 #include <asm/trapnr.h>
 
 /*
diff --git a/arch/x86/include/asm/microcode.h b/arch/x86/include/asm/microcode.h
index 263ea3dd0001..107a1aaa211b 100644
--- a/arch/x86/include/asm/microcode.h
+++ b/arch/x86/include/asm/microcode.h
@@ -2,6 +2,8 @@
 #ifndef _ASM_X86_MICROCODE_H
 #define _ASM_X86_MICROCODE_H
 
+#include <asm/msr.h>
+
 struct cpu_signature {
 	unsigned int sig;
 	unsigned int pf;
diff --git a/arch/x86/include/asm/mshyperv.h b/arch/x86/include/asm/mshyperv.h
index bab5ccfc60a7..15d00dace70f 100644
--- a/arch/x86/include/asm/mshyperv.h
+++ b/arch/x86/include/asm/mshyperv.h
@@ -8,6 +8,7 @@
 #include <linux/io.h>
 #include <asm/nospec-branch.h>
 #include <asm/paravirt.h>
+#include <asm/msr.h>
 #include <hyperv/hvhdk.h>
 
 /*
diff --git a/arch/x86/include/asm/msr.h b/arch/x86/include/asm/msr.h
index 2ccc78ebc3d7..2caa13830e11 100644
--- a/arch/x86/include/asm/msr.h
+++ b/arch/x86/include/asm/msr.h
@@ -12,6 +12,7 @@
 #include <uapi/asm/msr.h>
 #include <asm/shared/msr.h>
 
+#include <linux/types.h>
 #include <linux/percpu.h>
 
 struct msr_info {
@@ -169,60 +170,6 @@ native_write_msr_safe(u32 msr, u32 low, u32 high)
 extern int rdmsr_safe_regs(u32 regs[8]);
 extern int wrmsr_safe_regs(u32 regs[8]);
 
-/**
- * rdtsc() - returns the current TSC without ordering constraints
- *
- * rdtsc() returns the result of RDTSC as a 64-bit integer.  The
- * only ordering constraint it supplies is the ordering implied by
- * "asm volatile": it will put the RDTSC in the place you expect.  The
- * CPU can and will speculatively execute that RDTSC, though, so the
- * results can be non-monotonic if compared on different CPUs.
- */
-static __always_inline u64 rdtsc(void)
-{
-	DECLARE_ARGS(val, low, high);
-
-	asm volatile("rdtsc" : EAX_EDX_RET(val, low, high));
-
-	return EAX_EDX_VAL(val, low, high);
-}
-
-/**
- * rdtsc_ordered() - read the current TSC in program order
- *
- * rdtsc_ordered() returns the result of RDTSC as a 64-bit integer.
- * It is ordered like a load to a global in-memory counter.  It should
- * be impossible to observe non-monotonic rdtsc_unordered() behavior
- * across multiple CPUs as long as the TSC is synced.
- */
-static __always_inline u64 rdtsc_ordered(void)
-{
-	DECLARE_ARGS(val, low, high);
-
-	/*
-	 * The RDTSC instruction is not ordered relative to memory
-	 * access.  The Intel SDM and the AMD APM are both vague on this
-	 * point, but empirically an RDTSC instruction can be
-	 * speculatively executed before prior loads.  An RDTSC
-	 * immediately after an appropriate barrier appears to be
-	 * ordered as a normal load, that is, it provides the same
-	 * ordering guarantees as reading from a global memory location
-	 * that some other imaginary CPU is updating continuously with a
-	 * time stamp.
-	 *
-	 * Thus, use the preferred barrier on the respective CPU, aiming for
-	 * RDTSCP as the default.
-	 */
-	asm volatile(ALTERNATIVE_2("rdtsc",
-				   "lfence; rdtsc", X86_FEATURE_LFENCE_RDTSC,
-				   "rdtscp", X86_FEATURE_RDTSCP)
-			: EAX_EDX_RET(val, low, high)
-			/* RDTSCP clobbers ECX with MSR_TSC_AUX. */
-			:: "ecx");
-
-	return EAX_EDX_VAL(val, low, high);
-}
-
 static inline u64 native_read_pmc(int counter)
 {
 	DECLARE_ARGS(val, low, high);
diff --git a/arch/x86/include/asm/suspend_32.h b/arch/x86/include/asm/suspend_32.h
index d8416b3bf832..e8e5aab06255 100644
--- a/arch/x86/include/asm/suspend_32.h
+++ b/arch/x86/include/asm/suspend_32.h
@@ -9,6 +9,7 @@
 
 #include <asm/desc.h>
 #include <asm/fpu/api.h>
+#include <asm/msr.h>
 
 /* image of the saved processor state */
 struct saved_context {
diff --git a/arch/x86/include/asm/suspend_64.h b/arch/x86/include/asm/suspend_64.h
index 54df06687d83..b512f9665f78 100644
--- a/arch/x86/include/asm/suspend_64.h
+++ b/arch/x86/include/asm/suspend_64.h
@@ -9,6 +9,7 @@
 
 #include <asm/desc.h>
 #include <asm/fpu/api.h>
+#include <asm/msr.h>
 
 /*
  * Image of the saved processor state, used by the low level ACPI suspend to
diff --git a/arch/x86/include/asm/switch_to.h b/arch/x86/include/asm/switch_to.h
index 75248546403d..4f21df7af715 100644
--- a/arch/x86/include/asm/switch_to.h
+++ b/arch/x86/include/asm/switch_to.h
@@ -52,6 +52,8 @@ do {									\
 } while (0)
 
 #ifdef CONFIG_X86_32
+#include <asm/msr.h>
+
 static inline void refresh_sysenter_cs(struct thread_struct *thread)
 {
 	/* Only happens when SEP is enabled, no need to test "SEP"arately: */
diff --git a/arch/x86/include/asm/tsc.h b/arch/x86/include/asm/tsc.h
index 94408a784c8e..13335a130edf 100644
--- a/arch/x86/include/asm/tsc.h
+++ b/arch/x86/include/asm/tsc.h
@@ -7,7 +7,81 @@
 
 #include <asm/cpufeature.h>
 #include <asm/processor.h>
-#include <asm/msr.h>
+
+/*
+ * both i386 and x86_64 returns 64-bit value in edx:eax, but gcc's "A"
+ * constraint has different meanings. For i386, "A" means exactly
+ * edx:eax, while for x86_64 it doesn't mean rdx:rax or edx:eax. Instead,
+ * it means rax *or* rdx.
+ */
+#ifdef CONFIG_X86_64
+/* Using 64-bit values saves one instruction clearing the high half of low */
+#define DECLARE_ARGS(val, low, high)	unsigned long low, high
+#define EAX_EDX_VAL(val, low, high)	((low) | (high) << 32)
+#define EAX_EDX_RET(val, low, high)	"=a" (low), "=d" (high)
+#else
+#define DECLARE_ARGS(val, low, high)	u64 val
+#define EAX_EDX_VAL(val, low, high)	(val)
+#define EAX_EDX_RET(val, low, high)	"=A" (val)
+#endif
+
+/**
+ * rdtsc() - returns the current TSC without ordering constraints
+ *
+ * rdtsc() returns the result of RDTSC as a 64-bit integer.  The
+ * only ordering constraint it supplies is the ordering implied by
+ * "asm volatile": it will put the RDTSC in the place you expect.  The
+ * CPU can and will speculatively execute that RDTSC, though, so the
+ * results can be non-monotonic if compared on different CPUs.
+ */
+static __always_inline u64 rdtsc(void)
+{
+	DECLARE_ARGS(val, low, high);
+
+	asm volatile("rdtsc" : EAX_EDX_RET(val, low, high));
+
+	return EAX_EDX_VAL(val, low, high);
+}
+
+/**
+ * rdtsc_ordered() - read the current TSC in program order
+ *
+ * rdtsc_ordered() returns the result of RDTSC as a 64-bit integer.
+ * It is ordered like a load to a global in-memory counter.  It should
+ * be impossible to observe non-monotonic rdtsc_unordered() behavior
+ * across multiple CPUs as long as the TSC is synced.
+ */
+static __always_inline u64 rdtsc_ordered(void)
+{
+	DECLARE_ARGS(val, low, high);
+
+	/*
+	 * The RDTSC instruction is not ordered relative to memory
+	 * access.  The Intel SDM and the AMD APM are both vague on this
+	 * point, but empirically an RDTSC instruction can be
+	 * speculatively executed before prior loads.  An RDTSC
+	 * immediately after an appropriate barrier appears to be
+	 * ordered as a normal load, that is, it provides the same
+	 * ordering guarantees as reading from a global memory location
+	 * that some other imaginary CPU is updating continuously with a
+	 * time stamp.
+	 *
+	 * Thus, use the preferred barrier on the respective CPU, aiming for
+	 * RDTSCP as the default.
+	 */
+	asm volatile(ALTERNATIVE_2("rdtsc",
+				   "lfence; rdtsc", X86_FEATURE_LFENCE_RDTSC,
+				   "rdtscp", X86_FEATURE_RDTSCP)
+			: EAX_EDX_RET(val, low, high)
+			/* RDTSCP clobbers ECX with MSR_TSC_AUX. */
+			:: "ecx");
+
+	return EAX_EDX_VAL(val, low, high);
+}
+
+#undef DECLARE_ARGS
+#undef EAX_EDX_VAL
+#undef EAX_EDX_RET
 
 /*
  * Standard way to access the cycle counter.
diff --git a/arch/x86/kernel/cpu/resctrl/pseudo_lock.c b/arch/x86/kernel/cpu/resctrl/pseudo_lock.c
index 2a82eb6a0376..26c354bdea07 100644
--- a/arch/x86/kernel/cpu/resctrl/pseudo_lock.c
+++ b/arch/x86/kernel/cpu/resctrl/pseudo_lock.c
@@ -25,6 +25,7 @@
 #include <asm/cpu_device_id.h>
 #include <asm/resctrl.h>
 #include <asm/perf_event.h>
+#include <asm/msr.h>
 
 #include "../../events/perf_event.h" /* For X86_CONFIG() */
 #include "internal.h"
diff --git a/arch/x86/kernel/fpu/xstate.h b/arch/x86/kernel/fpu/xstate.h
index 5e5d35027f13..f705bd355ea2 100644
--- a/arch/x86/kernel/fpu/xstate.h
+++ b/arch/x86/kernel/fpu/xstate.h
@@ -5,6 +5,7 @@
 #include <asm/cpufeature.h>
 #include <asm/fpu/xstate.h>
 #include <asm/fpu/xcr.h>
+#include <asm/msr.h>
 
 #ifdef CONFIG_X86_64
 DECLARE_PER_CPU(u64, xfd_state);
diff --git a/arch/x86/kernel/hpet.c b/arch/x86/kernel/hpet.c
index cc5d12232216..c9982a7c9536 100644
--- a/arch/x86/kernel/hpet.c
+++ b/arch/x86/kernel/hpet.c
@@ -12,6 +12,7 @@
 #include <asm/hpet.h>
 #include <asm/time.h>
 #include <asm/mwait.h>
+#include <asm/msr.h>
 
 #undef  pr_fmt
 #define pr_fmt(fmt) "hpet: " fmt
diff --git a/arch/x86/kernel/process_64.c b/arch/x86/kernel/process_64.c
index 24e1ccf22912..cfa9c031de91 100644
--- a/arch/x86/kernel/process_64.c
+++ b/arch/x86/kernel/process_64.c
@@ -57,6 +57,7 @@
 #include <asm/unistd.h>
 #include <asm/fsgsbase.h>
 #include <asm/fred.h>
+#include <asm/msr.h>
 #ifdef CONFIG_IA32_EMULATION
 /* Not included via unistd.h */
 #include <asm/unistd_32_ia32.h>
diff --git a/arch/x86/kernel/trace_clock.c b/arch/x86/kernel/trace_clock.c
index b8e7abe00b06..708d61743d15 100644
--- a/arch/x86/kernel/trace_clock.c
+++ b/arch/x86/kernel/trace_clock.c
@@ -4,7 +4,7 @@
  */
 #include <asm/trace_clock.h>
 #include <asm/barrier.h>
-#include <asm/msr.h>
+#include <asm/tsc.h>
 
 /*
  * trace_clock_x86_tsc(): A clock that is just the cycle counter.
diff --git a/arch/x86/kernel/tsc_sync.c b/arch/x86/kernel/tsc_sync.c
index f1c7a86dbf49..ec3aa340d351 100644
--- a/arch/x86/kernel/tsc_sync.c
+++ b/arch/x86/kernel/tsc_sync.c
@@ -21,6 +21,7 @@
 #include <linux/kernel.h>
 #include <linux/smp.h>
 #include <linux/nmi.h>
+#include <asm/msr.h>
 #include <asm/tsc.h>
 
 struct tsc_adjust {
diff --git a/arch/x86/lib/kaslr.c b/arch/x86/lib/kaslr.c
index a58f451a7dd3..b5893928d55c 100644
--- a/arch/x86/lib/kaslr.c
+++ b/arch/x86/lib/kaslr.c
@@ -8,7 +8,7 @@
  */
 #include <asm/asm.h>
 #include <asm/kaslr.h>
-#include <asm/msr.h>
+#include <asm/tsc.h>
 #include <asm/archrandom.h>
 #include <asm/e820/api.h>
 #include <asm/shared/io.h>
diff --git a/arch/x86/mm/mem_encrypt_identity.c b/arch/x86/mm/mem_encrypt_identity.c
index 5eecdd92da10..afda349db35b 100644
--- a/arch/x86/mm/mem_encrypt_identity.c
+++ b/arch/x86/mm/mem_encrypt_identity.c
@@ -44,6 +44,7 @@
 #include <asm/sections.h>
 #include <asm/coco.h>
 #include <asm/sev.h>
+#include <asm/msr.h>
 
 #include "mm_internal.h"
 
diff --git a/arch/x86/realmode/init.c b/arch/x86/realmode/init.c
index 263787b4800c..ed5c63c0b4e5 100644
--- a/arch/x86/realmode/init.c
+++ b/arch/x86/realmode/init.c
@@ -9,6 +9,7 @@
 #include <asm/realmode.h>
 #include <asm/tlbflush.h>
 #include <asm/crash.h>
+#include <asm/msr.h>
 #include <asm/sev.h>
 
 struct real_mode_header *real_mode_header;
diff --git a/drivers/acpi/processor_perflib.c b/drivers/acpi/processor_perflib.c
index 53996f1a2d80..64b8d1e19594 100644
--- a/drivers/acpi/processor_perflib.c
+++ b/drivers/acpi/processor_perflib.c
@@ -20,6 +20,7 @@
 #include <acpi/processor.h>
 #ifdef CONFIG_X86
 #include <asm/cpufeature.h>
+#include <asm/msr.h>
 #endif
 
 #define ACPI_PROCESSOR_FILE_PERFORMANCE	"performance"
diff --git a/drivers/acpi/processor_throttling.c b/drivers/acpi/processor_throttling.c
index 00d045e5f524..8482e9a8a7aa 100644
--- a/drivers/acpi/processor_throttling.c
+++ b/drivers/acpi/processor_throttling.c
@@ -18,9 +18,10 @@
 #include <linux/sched.h>
 #include <linux/cpufreq.h>
 #include <linux/acpi.h>
+#include <linux/uaccess.h>
 #include <acpi/processor.h>
 #include <asm/io.h>
-#include <linux/uaccess.h>
+#include <asm/asm.h>
 
 /* ignore_tpc:
  *  0 -> acpi processor driver doesn't ignore _TPC values
diff --git a/drivers/cpufreq/amd-pstate-ut.c b/drivers/cpufreq/amd-pstate-ut.c
index 707fa81c749f..c8d031b297d2 100644
--- a/drivers/cpufreq/amd-pstate-ut.c
+++ b/drivers/cpufreq/amd-pstate-ut.c
@@ -31,6 +31,8 @@
 
 #include <acpi/cppc_acpi.h>
 
+#include <asm/msr.h>
+
 #include "amd-pstate.h"
 
 
diff --git a/drivers/hwmon/hwmon-vid.c b/drivers/hwmon/hwmon-vid.c
index 6d1175a51832..2df4956296ed 100644
--- a/drivers/hwmon/hwmon-vid.c
+++ b/drivers/hwmon/hwmon-vid.c
@@ -15,6 +15,10 @@
 #include <linux/kernel.h>
 #include <linux/hwmon-vid.h>
 
+#ifdef CONFIG_X86
+#include <asm/msr.h>
+#endif
+
 /*
  * Common code for decoding VID pins.
  *
diff --git a/drivers/net/vmxnet3/vmxnet3_drv.c b/drivers/net/vmxnet3/vmxnet3_drv.c
index 3df6aabc7e33..7edd0b5e0e77 100644
--- a/drivers/net/vmxnet3/vmxnet3_drv.c
+++ b/drivers/net/vmxnet3/vmxnet3_drv.c
@@ -27,6 +27,10 @@
 #include <linux/module.h>
 #include <net/ip6_checksum.h>
 
+#ifdef CONFIG_X86
+#include <asm/msr.h>
+#endif
+
 #include "vmxnet3_int.h"
 #include "vmxnet3_xdp.h"
 
diff --git a/drivers/platform/x86/intel/pmc/cnp.c b/drivers/platform/x86/intel/pmc/cnp.c
index 547bdf1ab02d..efea4e1ba52b 100644
--- a/drivers/platform/x86/intel/pmc/cnp.c
+++ b/drivers/platform/x86/intel/pmc/cnp.c
@@ -10,6 +10,7 @@
 
 #include <linux/smp.h>
 #include <linux/suspend.h>
+#include <asm/msr.h>
 #include "core.h"
 
 /* Cannon Lake: PGD PFET Enable Ack Status Register(s) bitmap */
diff --git a/drivers/platform/x86/intel/speed_select_if/isst_if_common.c b/drivers/platform/x86/intel/speed_select_if/isst_if_common.c
index 44dcd165b4c0..8a5713593811 100644
--- a/drivers/platform/x86/intel/speed_select_if/isst_if_common.c
+++ b/drivers/platform/x86/intel/speed_select_if/isst_if_common.c
@@ -21,6 +21,7 @@
 
 #include <asm/cpu_device_id.h>
 #include <asm/intel-family.h>
+#include <asm/msr.h>
 
 #include "isst_if_common.h"
 
diff --git a/drivers/platform/x86/intel/turbo_max_3.c b/drivers/platform/x86/intel/turbo_max_3.c
index 7e538bbd5b50..b5af3e91ba04 100644
--- a/drivers/platform/x86/intel/turbo_max_3.c
+++ b/drivers/platform/x86/intel/turbo_max_3.c
@@ -17,6 +17,7 @@
 
 #include <asm/cpu_device_id.h>
 #include <asm/intel-family.h>
+#include <asm/msr.h>
 
 #define MSR_OC_MAILBOX			0x150
 #define MSR_OC_MAILBOX_CMD_OFFSET	32
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Fri Apr 25 08:35:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 08:35:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.967315.1357152 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8EWz-0003FH-Uu; Fri, 25 Apr 2025 08:35:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 967315.1357152; Fri, 25 Apr 2025 08:35:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8EWz-0003DD-Lq; Fri, 25 Apr 2025 08:35:33 +0000
Received: by outflank-mailman (input) for mailman id 967315;
 Fri, 25 Apr 2025 08:35:32 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Tuhi=XL=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u8EWy-0002sy-My
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 08:35:32 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3c7e577e-21b0-11f0-9eb3-5ba50f476ded;
 Fri, 25 Apr 2025 10:35:27 +0200 (CEST)
Received: from terminus.zytor.com (terminus.zytor.com
 [IPv6:2607:7c80:54:3:0:0:0:136]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53P8Yg5S2390085
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Fri, 25 Apr 2025 01:34:55 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3c7e577e-21b0-11f0-9eb3-5ba50f476ded
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53P8Yg5S2390085
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745570097;
	bh=ubV3mxjb0pTABxeIf2EwXNL4ptnwNX7V+DrJijW3VC0=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=D6ykqhIW5txRLYZYcwQ42AvATqG8/xptzO4imIXAdEWMalWy8M3glva32nGrtHFei
	 /gddxrxOgYkWsZPqUTIOJB8fVcRs87dV1EYsgGms4d1AT1hJXOnUELWuX6EZmYis/C
	 RrF79OsPNKYQGXYtJ0+NXOxxQFb2mJWjrqo3spKq+zLzZ6F3FBTuEApP1qK7t3erln
	 1xVgD0alMjSlqAP4c4CuGpPQcPiPoaZe0p3Pibky5/UWjvZOzZSch7ann3MW9QUXc2
	 uf3MCVYJWYwCuA/ksmn2VQvV8q1rdBJnM1x7JxX6Ac6qWnwFJeisgLXSXxBQytavQw
	 IDmwLyJ4IdHng==
From: "Xin Li (Intel)" <xin@zytor.com>
To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
        linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
        netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        acme@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com,
        peterz@infradead.org, namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com,
        dapeng1.mi@linux.intel.com
Subject: [PATCH v3 04/14] x86/msr: Convert the rdpmc() macro into an always inline function
Date: Fri, 25 Apr 2025 01:34:27 -0700
Message-ID: <20250425083442.2390017-5-xin@zytor.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250425083442.2390017-1-xin@zytor.com>
References: <20250425083442.2390017-1-xin@zytor.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Functions offer type safety and better readability compared to macros.
Additionally, always inline functions can match the performance of
macros.  Converting the rdpmc() macro into an always inline function
is simple and straightforward, so just make the change.

Moreover, the read result is now the returned value, further enhancing
readability.

Signed-off-by: Xin Li (Intel) <xin@zytor.com>
Acked-by: Dave Hansen <dave.hansen@linux.intel.com>
---

Change in v3:
*) Add a changelog even it's obvious (Dave Hansen).
---
 arch/x86/events/amd/uncore.c              |  2 +-
 arch/x86/events/core.c                    |  2 +-
 arch/x86/events/intel/core.c              |  4 ++--
 arch/x86/events/intel/ds.c                |  2 +-
 arch/x86/include/asm/msr.h                |  5 ++++-
 arch/x86/include/asm/paravirt.h           |  4 +---
 arch/x86/kernel/cpu/resctrl/pseudo_lock.c | 12 ++++++------
 7 files changed, 16 insertions(+), 15 deletions(-)

diff --git a/arch/x86/events/amd/uncore.c b/arch/x86/events/amd/uncore.c
index 42c833cf9d98..13c4cea545c5 100644
--- a/arch/x86/events/amd/uncore.c
+++ b/arch/x86/events/amd/uncore.c
@@ -108,7 +108,7 @@ static void amd_uncore_read(struct perf_event *event)
 	if (hwc->event_base_rdpmc < 0)
 		rdmsrq(hwc->event_base, new);
 	else
-		rdpmc(hwc->event_base_rdpmc, new);
+		new = rdpmc(hwc->event_base_rdpmc);
 
 	local64_set(&hwc->prev_count, new);
 	delta = (new << COUNTER_SHIFT) - (prev << COUNTER_SHIFT);
diff --git a/arch/x86/events/core.c b/arch/x86/events/core.c
index ea618dd8a678..d8634446684e 100644
--- a/arch/x86/events/core.c
+++ b/arch/x86/events/core.c
@@ -134,7 +134,7 @@ u64 x86_perf_event_update(struct perf_event *event)
 	 */
 	prev_raw_count = local64_read(&hwc->prev_count);
 	do {
-		rdpmc(hwc->event_base_rdpmc, new_raw_count);
+		new_raw_count = rdpmc(hwc->event_base_rdpmc);
 	} while (!local64_try_cmpxchg(&hwc->prev_count,
 				      &prev_raw_count, new_raw_count));
 
diff --git a/arch/x86/events/intel/core.c b/arch/x86/events/intel/core.c
index 8ac7a03ae4e9..9fa94b6e4e74 100644
--- a/arch/x86/events/intel/core.c
+++ b/arch/x86/events/intel/core.c
@@ -2724,12 +2724,12 @@ static u64 intel_update_topdown_event(struct perf_event *event, int metric_end,
 
 	if (!val) {
 		/* read Fixed counter 3 */
-		rdpmc((3 | INTEL_PMC_FIXED_RDPMC_BASE), slots);
+		slots = rdpmc(3 | INTEL_PMC_FIXED_RDPMC_BASE);
 		if (!slots)
 			return 0;
 
 		/* read PERF_METRICS */
-		rdpmc(INTEL_PMC_FIXED_RDPMC_METRICS, metrics);
+		metrics = rdpmc(INTEL_PMC_FIXED_RDPMC_METRICS);
 	} else {
 		slots = val[0];
 		metrics = val[1];
diff --git a/arch/x86/events/intel/ds.c b/arch/x86/events/intel/ds.c
index be05e93b48e7..a093cb485278 100644
--- a/arch/x86/events/intel/ds.c
+++ b/arch/x86/events/intel/ds.c
@@ -2274,7 +2274,7 @@ intel_pmu_save_and_restart_reload(struct perf_event *event, int count)
 	WARN_ON(this_cpu_read(cpu_hw_events.enabled));
 
 	prev_raw_count = local64_read(&hwc->prev_count);
-	rdpmc(hwc->event_base_rdpmc, new_raw_count);
+	new_raw_count = rdpmc(hwc->event_base_rdpmc);
 	local64_set(&hwc->prev_count, new_raw_count);
 
 	/*
diff --git a/arch/x86/include/asm/msr.h b/arch/x86/include/asm/msr.h
index ae96d35e0621..73d44081e597 100644
--- a/arch/x86/include/asm/msr.h
+++ b/arch/x86/include/asm/msr.h
@@ -234,7 +234,10 @@ static inline int rdmsrq_safe(u32 msr, u64 *p)
 	return err;
 }
 
-#define rdpmc(counter, val) ((val) = native_read_pmc(counter))
+static __always_inline u64 rdpmc(int counter)
+{
+	return native_read_pmc(counter);
+}
 
 #endif	/* !CONFIG_PARAVIRT_XXL */
 
diff --git a/arch/x86/include/asm/paravirt.h b/arch/x86/include/asm/paravirt.h
index faa0713553b1..f272c4bd3d5b 100644
--- a/arch/x86/include/asm/paravirt.h
+++ b/arch/x86/include/asm/paravirt.h
@@ -239,13 +239,11 @@ static inline int rdmsrq_safe(unsigned msr, u64 *p)
 	return err;
 }
 
-static inline u64 paravirt_read_pmc(int counter)
+static __always_inline u64 rdpmc(int counter)
 {
 	return PVOP_CALL1(u64, cpu.read_pmc, counter);
 }
 
-#define rdpmc(counter, val) ((val) = paravirt_read_pmc(counter))
-
 static inline void paravirt_alloc_ldt(struct desc_struct *ldt, unsigned entries)
 {
 	PVOP_VCALL2(cpu.alloc_ldt, ldt, entries);
diff --git a/arch/x86/kernel/cpu/resctrl/pseudo_lock.c b/arch/x86/kernel/cpu/resctrl/pseudo_lock.c
index 15ff62d83bd8..61d762555a79 100644
--- a/arch/x86/kernel/cpu/resctrl/pseudo_lock.c
+++ b/arch/x86/kernel/cpu/resctrl/pseudo_lock.c
@@ -1019,8 +1019,8 @@ static int measure_residency_fn(struct perf_event_attr *miss_attr,
 	 * used in L1 cache, second to capture accurate value that does not
 	 * include cache misses incurred because of instruction loads.
 	 */
-	rdpmc(hit_pmcnum, hits_before);
-	rdpmc(miss_pmcnum, miss_before);
+	hits_before = rdpmc(hit_pmcnum);
+	miss_before = rdpmc(miss_pmcnum);
 	/*
 	 * From SDM: Performing back-to-back fast reads are not guaranteed
 	 * to be monotonic.
@@ -1028,8 +1028,8 @@ static int measure_residency_fn(struct perf_event_attr *miss_attr,
 	 * before proceeding.
 	 */
 	rmb();
-	rdpmc(hit_pmcnum, hits_before);
-	rdpmc(miss_pmcnum, miss_before);
+	hits_before = rdpmc(hit_pmcnum);
+	miss_before = rdpmc(miss_pmcnum);
 	/*
 	 * Use LFENCE to ensure all previous instructions are retired
 	 * before proceeding.
@@ -1051,8 +1051,8 @@ static int measure_residency_fn(struct perf_event_attr *miss_attr,
 	 * before proceeding.
 	 */
 	rmb();
-	rdpmc(hit_pmcnum, hits_after);
-	rdpmc(miss_pmcnum, miss_after);
+	hits_after = rdpmc(hit_pmcnum);
+	miss_after = rdpmc(miss_pmcnum);
 	/*
 	 * Use LFENCE to ensure all previous instructions are retired
 	 * before proceeding.
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Fri Apr 25 08:35:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 08:35:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.967313.1357140 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8EWz-00031A-C8; Fri, 25 Apr 2025 08:35:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 967313.1357140; Fri, 25 Apr 2025 08:35:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8EWz-00030U-4H; Fri, 25 Apr 2025 08:35:33 +0000
Received: by outflank-mailman (input) for mailman id 967313;
 Fri, 25 Apr 2025 08:35: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=Tuhi=XL=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u8EWx-0002sy-Pm
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 08:35:31 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3c7e7f8a-21b0-11f0-9eb3-5ba50f476ded;
 Fri, 25 Apr 2025 10:35:27 +0200 (CEST)
Received: from terminus.zytor.com (terminus.zytor.com
 [IPv6:2607:7c80:54:3:0:0:0:136]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53P8Yg5O2390085
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Fri, 25 Apr 2025 01:34:47 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3c7e7f8a-21b0-11f0-9eb3-5ba50f476ded
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53P8Yg5O2390085
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745570089;
	bh=A3b4ITZaTfXzMfE8P3NClf2sv8WJ6sa7JySmuA7pbdY=;
	h=From:To:Cc:Subject:Date:From;
	b=OejYNbDTNY7z9B258k3ak9TmvMyUbUpawFr8lLCTkwYMVfGb8YqhUrp3Z4KHs5fPj
	 my80ixwryjSADjgtbLLeYGt0L3yHPJEv3Wau8PPmxGKQDdPwP1Xvbht7Gu2n9NaQOW
	 r9knRf/PcJ8xVurhtr9sRPFMNKKB8w/PmJDV/lYlJLHUotF+ugc+6Wg/XheAMKDeDu
	 coOtH3LvRC/W3UtUcStNjIBjhI6NBGI5cYFWcYvObfXwETuZisb5epS8DGpWpQdwKV
	 ZzSnCgUoos8Ps6ZQ2mJ4kAjz3ZUWe34m74SdH0VpP2V6mtcW/fmnQms4X8fzOFGbzo
	 5n2xdLpTmFqxA==
From: "Xin Li (Intel)" <xin@zytor.com>
To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
        linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
        netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        acme@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com,
        peterz@infradead.org, namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com,
        dapeng1.mi@linux.intel.com
Subject: [PATCH v3 00/14] MSR code cleanup part one
Date: Fri, 25 Apr 2025 01:34:23 -0700
Message-ID: <20250425083442.2390017-1-xin@zytor.com>
X-Mailer: git-send-email 2.49.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This patch set is the first part of the patch set:

  MSR refactor with new MSR instructions support

@ https://lore.kernel.org/lkml/20250422082216.1954310-1-xin@zytor.com/T/#m5a34be7d4ed55f0baca965cb65452a08e9ad7c8a


It's getting *WAY* too big, and whether to zap the pv_ops MSR APIs is
still under argument.  Dave Hansen suggested to focus on rename stuff
first, most of which he acked.

Jürgen Groß also gave his RBs to most of the Xen MSR cleanup patches.

So here comes the first MSR cleanup patch set with version 3.


This patch series is based on:

  git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git x86/msr


Xin Li (Intel) (14):
  x86/msr: Move rdtsc{,_ordered}() to <asm/tsc.h>
  x86/msr: Remove rdpmc()
  x86/msr: Rename rdpmcl() to rdpmc()
  x86/msr: Convert the rdpmc() macro into an always inline function
  x86/msr: Return u64 consistently in Xen PMC read functions
  x86/msr: Convert __wrmsr() uses to native_wrmsr{,q}() uses
  x86/msr: Add the native_rdmsrq() helper
  x86/msr: Convert __rdmsr() uses to native_rdmsrq() uses
  x86/xen/msr: Remove calling native_{read,write}_msr{,_safe}() in
    pmu_msr_{read,write}()
  x86/xen/msr: Remove pmu_msr_{read,write}()
  x86/xen/msr: Remove the error pointer argument from set_seg()
  x86/pvops/msr: refactor pv_cpu_ops.write_msr{,_safe}()
  x86/msr: Replace wrmsr(msr, low, 0) with wrmsrq(msr, low)
  x86/msr: Change the function type of native_read_msr_safe()

 arch/x86/coco/sev/core.c                      |   2 +-
 arch/x86/events/amd/brs.c                     |   4 +-
 arch/x86/events/amd/uncore.c                  |   2 +-
 arch/x86/events/core.c                        |   2 +-
 arch/x86/events/intel/core.c                  |   4 +-
 arch/x86/events/intel/ds.c                    |   2 +-
 arch/x86/events/msr.c                         |   3 +
 arch/x86/events/perf_event.h                  |   1 +
 arch/x86/events/probe.c                       |   2 +
 arch/x86/hyperv/hv_apic.c                     |   6 +-
 arch/x86/hyperv/hv_vtl.c                      |   4 +-
 arch/x86/hyperv/ivm.c                         |   3 +-
 arch/x86/include/asm/apic.h                   |   4 +-
 arch/x86/include/asm/fred.h                   |   1 +
 arch/x86/include/asm/microcode.h              |   2 +
 arch/x86/include/asm/mshyperv.h               |   3 +-
 arch/x86/include/asm/msr.h                    | 130 +++++-------------
 arch/x86/include/asm/paravirt.h               |  57 ++++----
 arch/x86/include/asm/paravirt_types.h         |  10 +-
 arch/x86/include/asm/suspend_32.h             |   1 +
 arch/x86/include/asm/suspend_64.h             |   1 +
 arch/x86/include/asm/switch_to.h              |   4 +-
 arch/x86/include/asm/tsc.h                    |  76 +++++++++-
 arch/x86/kernel/cpu/amd.c                     |   2 +-
 arch/x86/kernel/cpu/common.c                  |  10 +-
 arch/x86/kernel/cpu/mce/core.c                |   6 +-
 arch/x86/kernel/cpu/resctrl/pseudo_lock.c     |  25 ++--
 arch/x86/kernel/cpu/resctrl/rdtgroup.c        |   2 +-
 arch/x86/kernel/cpu/umwait.c                  |   4 +-
 arch/x86/kernel/fpu/xstate.h                  |   1 +
 arch/x86/kernel/hpet.c                        |   1 +
 arch/x86/kernel/kvm.c                         |   2 +-
 arch/x86/kernel/kvmclock.c                    |   2 +-
 arch/x86/kernel/process_64.c                  |   1 +
 arch/x86/kernel/trace_clock.c                 |   2 +-
 arch/x86/kernel/tsc_sync.c                    |   1 +
 arch/x86/kvm/svm/svm.c                        |  34 ++---
 arch/x86/kvm/vmx/vmx.c                        |   4 +-
 arch/x86/lib/kaslr.c                          |   2 +-
 arch/x86/mm/mem_encrypt_identity.c            |   5 +-
 arch/x86/realmode/init.c                      |   1 +
 arch/x86/xen/enlighten_pv.c                   |  58 ++++----
 arch/x86/xen/pmu.c                            |  69 +++-------
 arch/x86/xen/xen-ops.h                        |   5 +-
 drivers/acpi/processor_perflib.c              |   1 +
 drivers/acpi/processor_throttling.c           |   3 +-
 drivers/cpufreq/amd-pstate-ut.c               |   2 +
 drivers/hwmon/hwmon-vid.c                     |   4 +
 drivers/net/vmxnet3/vmxnet3_drv.c             |   4 +
 drivers/platform/x86/intel/pmc/cnp.c          |   1 +
 .../intel/speed_select_if/isst_if_common.c    |   1 +
 drivers/platform/x86/intel/turbo_max_3.c      |   1 +
 52 files changed, 284 insertions(+), 294 deletions(-)


base-commit: a5447e92e169dafaf02fd653500105c7186d7128
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Fri Apr 25 08:35:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 08:35:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.967317.1357180 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8EX1-0003x8-WF; Fri, 25 Apr 2025 08:35:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 967317.1357180; Fri, 25 Apr 2025 08: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 1u8EX1-0003vY-M8; Fri, 25 Apr 2025 08:35:35 +0000
Received: by outflank-mailman (input) for mailman id 967317;
 Fri, 25 Apr 2025 08:35: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=Tuhi=XL=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u8EWz-0002sz-Uf
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 08:35:33 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3afbb387-21b0-11f0-9ffb-bf95429c2676;
 Fri, 25 Apr 2025 10:35:24 +0200 (CEST)
Received: from terminus.zytor.com (terminus.zytor.com
 [IPv6:2607:7c80:54:3:0:0:0:136]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53P8Yg5T2390085
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Fri, 25 Apr 2025 01:34:57 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3afbb387-21b0-11f0-9ffb-bf95429c2676
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53P8Yg5T2390085
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745570099;
	bh=+1cZPrjxoO8JP1SvNOjxHMJreVADygXIL9efLTE+5Mg=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=F6vSQMi7TaxXX6g86RzyahMtuAdPxIGazxNkvqFJ36qXhTfTGwfcl14Zcq4s2POXC
	 niLC7I1Gu8ZZjcErcpBuICA0rJTJ7RhKIyS/ycFiSmRCGgiP0WVqu7dSGr3Y2NlM6F
	 Gdwe5BFHGT42f3rKWb5hyMMHiMi7bRwiIPRuXfjquaHkaG+LwoX8Coerw5DbsntywQ
	 pMk/mNcD8hAC5bvXpfRFX8QIoGqXkBfBHz15uz6PkVCVMIaV+U4UTCYcvWYDf1OsFi
	 5cX2scfJbAmJ+8gKqJjqhm9VHLxC4geKP0aazl31NuDnYDFxgVoRVDHtmTqL7EeBTD
	 89o4WbRGeVNXg==
From: "Xin Li (Intel)" <xin@zytor.com>
To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
        linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
        netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        acme@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com,
        peterz@infradead.org, namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com,
        dapeng1.mi@linux.intel.com
Subject: [PATCH v3 05/14] x86/msr: Return u64 consistently in Xen PMC read functions
Date: Fri, 25 Apr 2025 01:34:28 -0700
Message-ID: <20250425083442.2390017-6-xin@zytor.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250425083442.2390017-1-xin@zytor.com>
References: <20250425083442.2390017-1-xin@zytor.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The pv_ops PMC read API is defined as:
        u64 (*read_pmc)(int counter);

But Xen PMC read functions return unsigned long long, make them
return u64 consistently.

Signed-off-by: Xin Li (Intel) <xin@zytor.com>
Reviewed-by: Juergen Gross <jgross@suse.com>
---
 arch/x86/xen/pmu.c     | 6 +++---
 arch/x86/xen/xen-ops.h | 2 +-
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/arch/x86/xen/pmu.c b/arch/x86/xen/pmu.c
index f06987b0efc3..9c1682af620a 100644
--- a/arch/x86/xen/pmu.c
+++ b/arch/x86/xen/pmu.c
@@ -346,7 +346,7 @@ bool pmu_msr_write(unsigned int msr, uint32_t low, uint32_t high, int *err)
 	return true;
 }
 
-static unsigned long long xen_amd_read_pmc(int counter)
+static u64 xen_amd_read_pmc(int counter)
 {
 	struct xen_pmu_amd_ctxt *ctxt;
 	uint64_t *counter_regs;
@@ -366,7 +366,7 @@ static unsigned long long xen_amd_read_pmc(int counter)
 	return counter_regs[counter];
 }
 
-static unsigned long long xen_intel_read_pmc(int counter)
+static u64 xen_intel_read_pmc(int counter)
 {
 	struct xen_pmu_intel_ctxt *ctxt;
 	uint64_t *fixed_counters;
@@ -396,7 +396,7 @@ static unsigned long long xen_intel_read_pmc(int counter)
 	return arch_cntr_pair[counter].counter;
 }
 
-unsigned long long xen_read_pmc(int counter)
+u64 xen_read_pmc(int counter)
 {
 	if (boot_cpu_data.x86_vendor != X86_VENDOR_INTEL)
 		return xen_amd_read_pmc(counter);
diff --git a/arch/x86/xen/xen-ops.h b/arch/x86/xen/xen-ops.h
index 63c13a2ccf55..735f58780704 100644
--- a/arch/x86/xen/xen-ops.h
+++ b/arch/x86/xen/xen-ops.h
@@ -277,7 +277,7 @@ static inline void xen_pmu_finish(int cpu) {}
 bool pmu_msr_read(unsigned int msr, uint64_t *val, int *err);
 bool pmu_msr_write(unsigned int msr, uint32_t low, uint32_t high, int *err);
 int pmu_apic_update(uint32_t reg);
-unsigned long long xen_read_pmc(int counter);
+u64 xen_read_pmc(int counter);
 
 #ifdef CONFIG_SMP
 
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Fri Apr 25 08:35:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 08:35:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.967314.1357144 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8EWz-00037n-JK; Fri, 25 Apr 2025 08:35:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 967314.1357144; Fri, 25 Apr 2025 08:35:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8EWz-00035u-Ci; Fri, 25 Apr 2025 08:35:33 +0000
Received: by outflank-mailman (input) for mailman id 967314;
 Fri, 25 Apr 2025 08:35: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=Tuhi=XL=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u8EWy-0002sz-9j
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 08:35:32 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 38807414-21b0-11f0-9ffb-bf95429c2676;
 Fri, 25 Apr 2025 10:35:20 +0200 (CEST)
Received: from terminus.zytor.com (terminus.zytor.com
 [IPv6:2607:7c80:54:3:0:0:0:136]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53P8Yg5U2390085
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Fri, 25 Apr 2025 01:34:59 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 38807414-21b0-11f0-9ffb-bf95429c2676
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53P8Yg5U2390085
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745570101;
	bh=9LPiQNEsSgyXuY3TdJWu1S/JZqK6CgIYEh3wNKfcnqQ=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=NtTy3lTZvcUVKuxblDw/9pQnMdDCCPzsj+em2YmbG06S63s8kvmLbWeIgADvpTxVL
	 gUfohRsmah0vJatqonhkjw3ZtvHh4iPAqTKO/v6a4oNngW7ek2u/o/ITTKsxUpnGOB
	 BNU8depWSYMORZ6O4ou8cgCF7Ulk0gf3vCPnFUmA+ACFuvYZS3BNRhz32q6+wmEw2n
	 lLRBuJiD3Y5+OCA4814z7RT6rHKgIll+/J0OpGtYfmbFIm5nYHlpP1UwCE+ECMTsCb
	 sDvB45B6CnI3T6KydDeDgjjaOcr2xEZ7xVPZNmVlXI+mBExVzQtFCo/NzTUJDL/fNO
	 AhvQe69UUJ1jg==
From: "Xin Li (Intel)" <xin@zytor.com>
To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
        linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
        netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        acme@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com,
        peterz@infradead.org, namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com,
        dapeng1.mi@linux.intel.com
Subject: [PATCH v3 06/14] x86/msr: Convert __wrmsr() uses to native_wrmsr{,q}() uses
Date: Fri, 25 Apr 2025 01:34:29 -0700
Message-ID: <20250425083442.2390017-7-xin@zytor.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250425083442.2390017-1-xin@zytor.com>
References: <20250425083442.2390017-1-xin@zytor.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

__wrmsr() is the lowest level MSR write API, with native_wrmsr()
and native_wrmsrq() serving as higher-level wrappers around it:

  #define native_wrmsr(msr, low, high)                    \
          __wrmsr(msr, low, high)

  #define native_wrmsrl(msr, val)                         \
          __wrmsr((msr), (u32)((u64)(val)),               \
                         (u32)((u64)(val) >> 32))

However, __wrmsr() continues to be utilized in various locations.

MSR APIs are designed for different scenarios, such as native or
pvops, with or without trace, and safe or non-safe.  Unfortunately,
the current MSR API names do not adequately reflect these factors,
making it challenging to select the most appropriate API for
various situations.

To pave the way for improving MSR API names, convert __wrmsr()
uses to native_wrmsr{,q}() to ensure consistent usage.  Later,
these APIs can be renamed to better reflect their implications,
such as native or pvops, with or without trace, and safe or
non-safe.

No functional change intended.

Signed-off-by: Xin Li (Intel) <xin@zytor.com>
---

Change in v2:
* Use native_wrmsr() where natural [rmid_p, closid_p] high/lo parameters
  can be used, without the shift-uglification (Ingo).
---
 arch/x86/events/amd/brs.c                 | 2 +-
 arch/x86/include/asm/apic.h               | 2 +-
 arch/x86/include/asm/msr.h                | 6 ++++--
 arch/x86/kernel/cpu/mce/core.c            | 2 +-
 arch/x86/kernel/cpu/resctrl/pseudo_lock.c | 6 +++---
 5 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/arch/x86/events/amd/brs.c b/arch/x86/events/amd/brs.c
index ec4e8a4cace4..3f5ecfd80d1e 100644
--- a/arch/x86/events/amd/brs.c
+++ b/arch/x86/events/amd/brs.c
@@ -44,7 +44,7 @@ static inline unsigned int brs_to(int idx)
 static __always_inline void set_debug_extn_cfg(u64 val)
 {
 	/* bits[4:3] must always be set to 11b */
-	__wrmsr(MSR_AMD_DBG_EXTN_CFG, val | 3ULL << 3, val >> 32);
+	native_wrmsrq(MSR_AMD_DBG_EXTN_CFG, val | 3ULL << 3);
 }
 
 static __always_inline u64 get_debug_extn_cfg(void)
diff --git a/arch/x86/include/asm/apic.h b/arch/x86/include/asm/apic.h
index 1c136f54651c..0174dd548327 100644
--- a/arch/x86/include/asm/apic.h
+++ b/arch/x86/include/asm/apic.h
@@ -214,7 +214,7 @@ static inline void native_apic_msr_write(u32 reg, u32 v)
 
 static inline void native_apic_msr_eoi(void)
 {
-	__wrmsr(APIC_BASE_MSR + (APIC_EOI >> 4), APIC_EOI_ACK, 0);
+	native_wrmsrq(APIC_BASE_MSR + (APIC_EOI >> 4), APIC_EOI_ACK);
 }
 
 static inline u32 native_apic_msr_read(u32 reg)
diff --git a/arch/x86/include/asm/msr.h b/arch/x86/include/asm/msr.h
index 73d44081e597..82a908125b20 100644
--- a/arch/x86/include/asm/msr.h
+++ b/arch/x86/include/asm/msr.h
@@ -144,10 +144,12 @@ static inline u64 native_read_msr_safe(u32 msr, int *err)
 static inline void notrace
 native_write_msr(u32 msr, u32 low, u32 high)
 {
-	__wrmsr(msr, low, high);
+	u64 val = (u64)high << 32 | low;
+
+	native_wrmsrq(msr, val);
 
 	if (tracepoint_enabled(write_msr))
-		do_trace_write_msr(msr, ((u64)high << 32 | low), 0);
+		do_trace_write_msr(msr, val, 0);
 }
 
 /* Can be uninlined because referenced by paravirt */
diff --git a/arch/x86/kernel/cpu/mce/core.c b/arch/x86/kernel/cpu/mce/core.c
index 255927f0284e..1ae75ec7ac95 100644
--- a/arch/x86/kernel/cpu/mce/core.c
+++ b/arch/x86/kernel/cpu/mce/core.c
@@ -1306,7 +1306,7 @@ static noinstr bool mce_check_crashing_cpu(void)
 		}
 
 		if (mcgstatus & MCG_STATUS_RIPV) {
-			__wrmsr(MSR_IA32_MCG_STATUS, 0, 0);
+			native_wrmsrq(MSR_IA32_MCG_STATUS, 0);
 			return true;
 		}
 	}
diff --git a/arch/x86/kernel/cpu/resctrl/pseudo_lock.c b/arch/x86/kernel/cpu/resctrl/pseudo_lock.c
index 61d762555a79..6e5edd76086e 100644
--- a/arch/x86/kernel/cpu/resctrl/pseudo_lock.c
+++ b/arch/x86/kernel/cpu/resctrl/pseudo_lock.c
@@ -483,7 +483,7 @@ int resctrl_arch_pseudo_lock_fn(void *_plr)
 	 * cache.
 	 */
 	saved_msr = __rdmsr(MSR_MISC_FEATURE_CONTROL);
-	__wrmsr(MSR_MISC_FEATURE_CONTROL, prefetch_disable_bits, 0x0);
+	native_wrmsrq(MSR_MISC_FEATURE_CONTROL, prefetch_disable_bits);
 	closid_p = this_cpu_read(pqr_state.cur_closid);
 	rmid_p = this_cpu_read(pqr_state.cur_rmid);
 	mem_r = plr->kmem;
@@ -495,7 +495,7 @@ int resctrl_arch_pseudo_lock_fn(void *_plr)
 	 * pseudo-locked followed by reading of kernel memory to load it
 	 * into the cache.
 	 */
-	__wrmsr(MSR_IA32_PQR_ASSOC, rmid_p, plr->closid);
+	native_wrmsr(MSR_IA32_PQR_ASSOC, rmid_p, plr->closid);
 
 	/*
 	 * Cache was flushed earlier. Now access kernel memory to read it
@@ -532,7 +532,7 @@ int resctrl_arch_pseudo_lock_fn(void *_plr)
 	 * Critical section end: restore closid with capacity bitmask that
 	 * does not overlap with pseudo-locked region.
 	 */
-	__wrmsr(MSR_IA32_PQR_ASSOC, rmid_p, closid_p);
+	native_wrmsr(MSR_IA32_PQR_ASSOC, rmid_p, closid_p);
 
 	/* Re-enable the hardware prefetcher(s) */
 	wrmsrq(MSR_MISC_FEATURE_CONTROL, saved_msr);
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Fri Apr 25 08:35:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 08:35:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.967311.1357126 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8EWy-0002tm-O6; Fri, 25 Apr 2025 08:35:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 967311.1357126; Fri, 25 Apr 2025 08:35: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 1u8EWy-0002tf-LG; Fri, 25 Apr 2025 08:35:32 +0000
Received: by outflank-mailman (input) for mailman id 967311;
 Fri, 25 Apr 2025 08:35: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=Tuhi=XL=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u8EWx-0002sy-4l
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 08:35:31 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3cdda175-21b0-11f0-9eb3-5ba50f476ded;
 Fri, 25 Apr 2025 10:35:27 +0200 (CEST)
Received: from terminus.zytor.com (terminus.zytor.com
 [IPv6:2607:7c80:54:3:0:0:0:136]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53P8Yg5V2390085
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Fri, 25 Apr 2025 01:35:02 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3cdda175-21b0-11f0-9eb3-5ba50f476ded
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53P8Yg5V2390085
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745570103;
	bh=HGw2nFQL5aKA5RzIm7/QSoWKBl/SarOifRVAMhDF5jc=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=WmynG9wHeRjV+Q3G3LyDwa0t8H2xdLhYQhh0ra6oIC+UKd/vIlwdgrqzDjKdCDec2
	 PnojmoRouq3yIpIiGFGVI2h14sephA3L4z+tUh7+efsj9OhPET2PQZgkHJyaQryO1J
	 HjXROz4i7dHc2FLIHeagMur/3NIya3J9of0PiuZl2K+1kbxBdagDgSqYF6kqkg7o13
	 4Xt2UVPF8/kCortRdwMgreH8vjS20RTFSJPYmFHCcndr+PULwc5WvqeeXBnSMpd0Jj
	 t76O0a/CmAPYaGzPF5p6HEpyekAJYxcBemmDnxV7IEH/jHg/7MdFfLjWdILBqGNFxn
	 IJwSKbRyX0DGw==
From: "Xin Li (Intel)" <xin@zytor.com>
To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
        linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
        netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        acme@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com,
        peterz@infradead.org, namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com,
        dapeng1.mi@linux.intel.com
Subject: [PATCH v3 07/14] x86/msr: Add the native_rdmsrq() helper
Date: Fri, 25 Apr 2025 01:34:30 -0700
Message-ID: <20250425083442.2390017-8-xin@zytor.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250425083442.2390017-1-xin@zytor.com>
References: <20250425083442.2390017-1-xin@zytor.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

__rdmsr() is the lowest-level primitive MSR read API, implemented in
assembly code and returning an MSR value in a u64 integer, on top of
which a convenience wrapper native_rdmsr() is defined to return an MSR
value in two u32 integers.  For some reason, native_rdmsrq() is not
defined and __rdmsr() is directly used when it needs to return an MSR
value in a u64 integer.

Add the native_rdmsrq() helper, which is simply an alias of __rdmsr(),
to make native_rdmsr() and native_rdmsrq() a pair of MSR read APIs.

Signed-off-by: Xin Li (Intel) <xin@zytor.com>
---

Change in v2:
* Split into two changes and add the native_rdmsrl() helper in the
  first one with a proper explanation (Ingo).
---
 arch/x86/include/asm/msr.h | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/arch/x86/include/asm/msr.h b/arch/x86/include/asm/msr.h
index 82a908125b20..7b9713a49d59 100644
--- a/arch/x86/include/asm/msr.h
+++ b/arch/x86/include/asm/msr.h
@@ -107,6 +107,11 @@ do {							\
 	(void)((val2) = (u32)(__val >> 32));		\
 } while (0)
 
+static __always_inline u64 native_rdmsrq(u32 msr)
+{
+	return __rdmsr(msr);
+}
+
 #define native_wrmsr(msr, low, high)			\
 	__wrmsr(msr, low, high)
 
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Fri Apr 25 08:35:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 08:35:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.967312.1357132 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8EWz-0002vy-1Y; Fri, 25 Apr 2025 08:35:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 967312.1357132; Fri, 25 Apr 2025 08:35: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 1u8EWy-0002va-SB; Fri, 25 Apr 2025 08:35:32 +0000
Received: by outflank-mailman (input) for mailman id 967312;
 Fri, 25 Apr 2025 08:35: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=Tuhi=XL=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u8EWx-0002sy-Ia
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 08:35:31 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3c7e99a0-21b0-11f0-9eb3-5ba50f476ded;
 Fri, 25 Apr 2025 10:35:27 +0200 (CEST)
Received: from terminus.zytor.com (terminus.zytor.com
 [IPv6:2607:7c80:54:3:0:0:0:136]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53P8Yg5Q2390085
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Fri, 25 Apr 2025 01:34:51 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3c7e99a0-21b0-11f0-9eb3-5ba50f476ded
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53P8Yg5Q2390085
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745570093;
	bh=lNRi52fPuelCbqEpttWsWEMCSZtlZ0beyL7G7ad5WoI=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=cA82jInRsydXIwm6m1XH1TkZYoK4mqKL9NBirr8sCUCj+XPqLN/CeEGAoiOSyyuRI
	 QdzTgWC1eF7uXuSSS5zTnBU4pLicou3MhJxxwhQ0NFlMmKq20cvYz5Yav1PoyNkayn
	 KgKYJZr5z4IHK8I9dsC9QY691QE5y3054zf0B6D/9Nh0g2dd24jiFcwT00q/Uc8L8m
	 E68o2mwpxEZX8CjJCyzCeaSRisGH61g0Njb+EtcPu/0Wr2HpIpxcjMwV/AJKqwrhjK
	 CatTGQb6lGQHqqJDVz+V8dcGz7WC1dbY1YZ9LdaSMsyYJl1UHPDrRZ5b3knqA1I/lN
	 SmcyUOUKSfGjQ==
From: "Xin Li (Intel)" <xin@zytor.com>
To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
        linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
        netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        acme@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com,
        peterz@infradead.org, namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com,
        dapeng1.mi@linux.intel.com
Subject: [PATCH v3 02/14] x86/msr: Remove rdpmc()
Date: Fri, 25 Apr 2025 01:34:25 -0700
Message-ID: <20250425083442.2390017-3-xin@zytor.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250425083442.2390017-1-xin@zytor.com>
References: <20250425083442.2390017-1-xin@zytor.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

rdpmc() is not used anywhere, remove it.

Signed-off-by: Xin Li (Intel) <xin@zytor.com>
Acked-by: Dave Hansen <dave.hansen@linux.intel.com>
---
 arch/x86/include/asm/msr.h      | 7 -------
 arch/x86/include/asm/paravirt.h | 7 -------
 2 files changed, 14 deletions(-)

diff --git a/arch/x86/include/asm/msr.h b/arch/x86/include/asm/msr.h
index 2caa13830e11..e05466e486fc 100644
--- a/arch/x86/include/asm/msr.h
+++ b/arch/x86/include/asm/msr.h
@@ -234,13 +234,6 @@ static inline int rdmsrq_safe(u32 msr, u64 *p)
 	return err;
 }
 
-#define rdpmc(counter, low, high)			\
-do {							\
-	u64 _l = native_read_pmc((counter));		\
-	(low)  = (u32)_l;				\
-	(high) = (u32)(_l >> 32);			\
-} while (0)
-
 #define rdpmcl(counter, val) ((val) = native_read_pmc(counter))
 
 #endif	/* !CONFIG_PARAVIRT_XXL */
diff --git a/arch/x86/include/asm/paravirt.h b/arch/x86/include/asm/paravirt.h
index 86a77528792d..c4dedb984735 100644
--- a/arch/x86/include/asm/paravirt.h
+++ b/arch/x86/include/asm/paravirt.h
@@ -244,13 +244,6 @@ static inline u64 paravirt_read_pmc(int counter)
 	return PVOP_CALL1(u64, cpu.read_pmc, counter);
 }
 
-#define rdpmc(counter, low, high)		\
-do {						\
-	u64 _l = paravirt_read_pmc(counter);	\
-	low = (u32)_l;				\
-	high = _l >> 32;			\
-} while (0)
-
 #define rdpmcl(counter, val) ((val) = paravirt_read_pmc(counter))
 
 static inline void paravirt_alloc_ldt(struct desc_struct *ldt, unsigned entries)
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Fri Apr 25 08:35:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 08:35:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.967319.1357195 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8EX3-0004Ix-C5; Fri, 25 Apr 2025 08:35:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 967319.1357195; Fri, 25 Apr 2025 08: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 1u8EX2-0004Eg-OS; Fri, 25 Apr 2025 08:35:36 +0000
Received: by outflank-mailman (input) for mailman id 967319;
 Fri, 25 Apr 2025 08:35: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=Tuhi=XL=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u8EX0-0002sz-Uw
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 08:35:34 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3b131b3d-21b0-11f0-9ffb-bf95429c2676;
 Fri, 25 Apr 2025 10:35:24 +0200 (CEST)
Received: from terminus.zytor.com (terminus.zytor.com
 [IPv6:2607:7c80:54:3:0:0:0:136]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53P8Yg5W2390085
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Fri, 25 Apr 2025 01:35:04 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3b131b3d-21b0-11f0-9ffb-bf95429c2676
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53P8Yg5W2390085
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745570105;
	bh=Rr0vTnv8pBflcTi5rZDOYZSrbHCmv/JEcdKGNOUNlWI=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=QO2yTydNX7XYERdeG5etf9HFKP49Ph8IgVoixKPgmmAhHGegY4da2C1VI38Eiik3C
	 H1TrRnrbAOCOP7xQkCODJl7YJYgJ8Se0Ixj47f5h3u0O+FWA5WwEzSHceNuxjXorrJ
	 Cnhp0O1E0sGRQzi1ZwghIUhPFm5/3YaCbplo6tu3wvW9UgqNm/q9LjiY7VYRFTD791
	 d+0NlR9p9GKXGtx2f1oZ/9tTBOrqd/sWkJgG/jx9dprkZEnqIOqEObT82almfwI9Un
	 UfhlrG6uJ0+j4K6T6NqiZtKIdZXHGUA5gLpjA5P3mHRAnTXtRgeqeQ6FcqKd+/IhoF
	 KUd8njE+zgiPg==
From: "Xin Li (Intel)" <xin@zytor.com>
To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
        linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
        netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        acme@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com,
        peterz@infradead.org, namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com,
        dapeng1.mi@linux.intel.com
Subject: [PATCH v3 08/14] x86/msr: Convert __rdmsr() uses to native_rdmsrq() uses
Date: Fri, 25 Apr 2025 01:34:31 -0700
Message-ID: <20250425083442.2390017-9-xin@zytor.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250425083442.2390017-1-xin@zytor.com>
References: <20250425083442.2390017-1-xin@zytor.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

__rdmsr() is the lowest level MSR write API, with native_rdmsr()
and native_rdmsrq() serving as higher-level wrappers around it.

  #define native_rdmsr(msr, val1, val2)                   \
  do {                                                    \
          u64 __val = __rdmsr((msr));                     \
          (void)((val1) = (u32)__val);                    \
          (void)((val2) = (u32)(__val >> 32));            \
  } while (0)

  static __always_inline u64 native_rdmsrq(u32 msr)
  {
          return __rdmsr(msr);
  }

However, __rdmsr() continues to be utilized in various locations.

MSR APIs are designed for different scenarios, such as native or
pvops, with or without trace, and safe or non-safe.  Unfortunately,
the current MSR API names do not adequately reflect these factors,
making it challenging to select the most appropriate API for
various situations.

To pave the way for improving MSR API names, convert __rdmsr()
uses to native_rdmsrq() to ensure consistent usage.  Later, these
APIs can be renamed to better reflect their implications, such as
native or pvops, with or without trace, and safe or non-safe.

No functional change intended.

Signed-off-by: Xin Li (Intel) <xin@zytor.com>
---
 arch/x86/coco/sev/core.c                  | 2 +-
 arch/x86/events/amd/brs.c                 | 2 +-
 arch/x86/hyperv/hv_vtl.c                  | 4 ++--
 arch/x86/hyperv/ivm.c                     | 2 +-
 arch/x86/include/asm/mshyperv.h           | 2 +-
 arch/x86/kernel/cpu/common.c              | 2 +-
 arch/x86/kernel/cpu/mce/core.c            | 4 ++--
 arch/x86/kernel/cpu/resctrl/pseudo_lock.c | 2 +-
 arch/x86/kvm/vmx/vmx.c                    | 4 ++--
 arch/x86/mm/mem_encrypt_identity.c        | 4 ++--
 10 files changed, 14 insertions(+), 14 deletions(-)

diff --git a/arch/x86/coco/sev/core.c b/arch/x86/coco/sev/core.c
index b18a33fe8dd3..c4137c94678d 100644
--- a/arch/x86/coco/sev/core.c
+++ b/arch/x86/coco/sev/core.c
@@ -276,7 +276,7 @@ static noinstr struct ghcb *__sev_get_ghcb(struct ghcb_state *state)
 
 static inline u64 sev_es_rd_ghcb_msr(void)
 {
-	return __rdmsr(MSR_AMD64_SEV_ES_GHCB);
+	return native_rdmsrq(MSR_AMD64_SEV_ES_GHCB);
 }
 
 static __always_inline void sev_es_wr_ghcb_msr(u64 val)
diff --git a/arch/x86/events/amd/brs.c b/arch/x86/events/amd/brs.c
index 3f5ecfd80d1e..06f35a6b58a5 100644
--- a/arch/x86/events/amd/brs.c
+++ b/arch/x86/events/amd/brs.c
@@ -49,7 +49,7 @@ static __always_inline void set_debug_extn_cfg(u64 val)
 
 static __always_inline u64 get_debug_extn_cfg(void)
 {
-	return __rdmsr(MSR_AMD_DBG_EXTN_CFG);
+	return native_rdmsrq(MSR_AMD_DBG_EXTN_CFG);
 }
 
 static bool __init amd_brs_detect(void)
diff --git a/arch/x86/hyperv/hv_vtl.c b/arch/x86/hyperv/hv_vtl.c
index 13242ed8ff16..c6343e699154 100644
--- a/arch/x86/hyperv/hv_vtl.c
+++ b/arch/x86/hyperv/hv_vtl.c
@@ -149,11 +149,11 @@ static int hv_vtl_bringup_vcpu(u32 target_vp_index, int cpu, u64 eip_ignored)
 	input->vp_context.rip = rip;
 	input->vp_context.rsp = rsp;
 	input->vp_context.rflags = 0x0000000000000002;
-	input->vp_context.efer = __rdmsr(MSR_EFER);
+	input->vp_context.efer = native_rdmsrq(MSR_EFER);
 	input->vp_context.cr0 = native_read_cr0();
 	input->vp_context.cr3 = __native_read_cr3();
 	input->vp_context.cr4 = native_read_cr4();
-	input->vp_context.msr_cr_pat = __rdmsr(MSR_IA32_CR_PAT);
+	input->vp_context.msr_cr_pat = native_rdmsrq(MSR_IA32_CR_PAT);
 	input->vp_context.idtr.limit = idt_ptr.size;
 	input->vp_context.idtr.base = idt_ptr.address;
 	input->vp_context.gdtr.limit = gdt_ptr.size;
diff --git a/arch/x86/hyperv/ivm.c b/arch/x86/hyperv/ivm.c
index 8209de792388..09a165a3c41e 100644
--- a/arch/x86/hyperv/ivm.c
+++ b/arch/x86/hyperv/ivm.c
@@ -111,7 +111,7 @@ u64 hv_ghcb_hypercall(u64 control, void *input, void *output, u32 input_size)
 
 static inline u64 rd_ghcb_msr(void)
 {
-	return __rdmsr(MSR_AMD64_SEV_ES_GHCB);
+	return native_rdmsrq(MSR_AMD64_SEV_ES_GHCB);
 }
 
 static inline void wr_ghcb_msr(u64 val)
diff --git a/arch/x86/include/asm/mshyperv.h b/arch/x86/include/asm/mshyperv.h
index 15d00dace70f..778444310cfb 100644
--- a/arch/x86/include/asm/mshyperv.h
+++ b/arch/x86/include/asm/mshyperv.h
@@ -305,7 +305,7 @@ void hv_set_non_nested_msr(unsigned int reg, u64 value);
 
 static __always_inline u64 hv_raw_get_msr(unsigned int reg)
 {
-	return __rdmsr(reg);
+	return native_rdmsrq(reg);
 }
 
 #else /* CONFIG_HYPERV */
diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c
index 079ded4eeb86..cefc99990bde 100644
--- a/arch/x86/kernel/cpu/common.c
+++ b/arch/x86/kernel/cpu/common.c
@@ -164,7 +164,7 @@ static void ppin_init(struct cpuinfo_x86 *c)
 
 	/* Is the enable bit set? */
 	if (val & 2UL) {
-		c->ppin = __rdmsr(info->msr_ppin);
+		c->ppin = native_rdmsrq(info->msr_ppin);
 		set_cpu_cap(c, info->feature);
 		return;
 	}
diff --git a/arch/x86/kernel/cpu/mce/core.c b/arch/x86/kernel/cpu/mce/core.c
index 1ae75ec7ac95..32286bad75e6 100644
--- a/arch/x86/kernel/cpu/mce/core.c
+++ b/arch/x86/kernel/cpu/mce/core.c
@@ -121,7 +121,7 @@ void mce_prep_record_common(struct mce *m)
 {
 	m->cpuid	= cpuid_eax(1);
 	m->cpuvendor	= boot_cpu_data.x86_vendor;
-	m->mcgcap	= __rdmsr(MSR_IA32_MCG_CAP);
+	m->mcgcap	= native_rdmsrq(MSR_IA32_MCG_CAP);
 	/* need the internal __ version to avoid deadlocks */
 	m->time		= __ktime_get_real_seconds();
 }
@@ -1298,7 +1298,7 @@ static noinstr bool mce_check_crashing_cpu(void)
 	    (crashing_cpu != -1 && crashing_cpu != cpu)) {
 		u64 mcgstatus;
 
-		mcgstatus = __rdmsr(MSR_IA32_MCG_STATUS);
+		mcgstatus = native_rdmsrq(MSR_IA32_MCG_STATUS);
 
 		if (boot_cpu_data.x86_vendor == X86_VENDOR_ZHAOXIN) {
 			if (mcgstatus & MCG_STATUS_LMCES)
diff --git a/arch/x86/kernel/cpu/resctrl/pseudo_lock.c b/arch/x86/kernel/cpu/resctrl/pseudo_lock.c
index 6e5edd76086e..324bd4919300 100644
--- a/arch/x86/kernel/cpu/resctrl/pseudo_lock.c
+++ b/arch/x86/kernel/cpu/resctrl/pseudo_lock.c
@@ -482,7 +482,7 @@ int resctrl_arch_pseudo_lock_fn(void *_plr)
 	 * the buffer and evict pseudo-locked memory read earlier from the
 	 * cache.
 	 */
-	saved_msr = __rdmsr(MSR_MISC_FEATURE_CONTROL);
+	saved_msr = native_rdmsrq(MSR_MISC_FEATURE_CONTROL);
 	native_wrmsrq(MSR_MISC_FEATURE_CONTROL, prefetch_disable_bits);
 	closid_p = this_cpu_read(pqr_state.cur_closid);
 	rmid_p = this_cpu_read(pqr_state.cur_rmid);
diff --git a/arch/x86/kvm/vmx/vmx.c b/arch/x86/kvm/vmx/vmx.c
index cd0d6c1fcf9c..68c8bb247fc4 100644
--- a/arch/x86/kvm/vmx/vmx.c
+++ b/arch/x86/kvm/vmx/vmx.c
@@ -380,7 +380,7 @@ static __always_inline void vmx_disable_fb_clear(struct vcpu_vmx *vmx)
 	if (!vmx->disable_fb_clear)
 		return;
 
-	msr = __rdmsr(MSR_IA32_MCU_OPT_CTRL);
+	msr = native_rdmsrq(MSR_IA32_MCU_OPT_CTRL);
 	msr |= FB_CLEAR_DIS;
 	native_wrmsrq(MSR_IA32_MCU_OPT_CTRL, msr);
 	/* Cache the MSR value to avoid reading it later */
@@ -7307,7 +7307,7 @@ void noinstr vmx_spec_ctrl_restore_host(struct vcpu_vmx *vmx,
 		return;
 
 	if (flags & VMX_RUN_SAVE_SPEC_CTRL)
-		vmx->spec_ctrl = __rdmsr(MSR_IA32_SPEC_CTRL);
+		vmx->spec_ctrl = native_rdmsrq(MSR_IA32_SPEC_CTRL);
 
 	/*
 	 * If the guest/host SPEC_CTRL values differ, restore the host value.
diff --git a/arch/x86/mm/mem_encrypt_identity.c b/arch/x86/mm/mem_encrypt_identity.c
index afda349db35b..32af1cc378e4 100644
--- a/arch/x86/mm/mem_encrypt_identity.c
+++ b/arch/x86/mm/mem_encrypt_identity.c
@@ -527,7 +527,7 @@ void __head sme_enable(struct boot_params *bp)
 	me_mask = 1UL << (ebx & 0x3f);
 
 	/* Check the SEV MSR whether SEV or SME is enabled */
-	RIP_REL_REF(sev_status) = msr = __rdmsr(MSR_AMD64_SEV);
+	RIP_REL_REF(sev_status) = msr = native_rdmsrq(MSR_AMD64_SEV);
 	feature_mask = (msr & MSR_AMD64_SEV_ENABLED) ? AMD_SEV_BIT : AMD_SME_BIT;
 
 	/*
@@ -558,7 +558,7 @@ void __head sme_enable(struct boot_params *bp)
 			return;
 
 		/* For SME, check the SYSCFG MSR */
-		msr = __rdmsr(MSR_AMD64_SYSCFG);
+		msr = native_rdmsrq(MSR_AMD64_SYSCFG);
 		if (!(msr & MSR_AMD64_SYSCFG_MEM_ENCRYPT))
 			return;
 	}
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Fri Apr 25 08:35:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 08:35:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.967320.1357202 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8EX3-0004Tm-RL; Fri, 25 Apr 2025 08:35:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 967320.1357202; Fri, 25 Apr 2025 08: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 1u8EX3-0004QH-GH; Fri, 25 Apr 2025 08:35:37 +0000
Received: by outflank-mailman (input) for mailman id 967320;
 Fri, 25 Apr 2025 08:35: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=Tuhi=XL=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u8EX1-0002sy-Nh
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 08:35:35 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 40efd850-21b0-11f0-9eb3-5ba50f476ded;
 Fri, 25 Apr 2025 10:35:34 +0200 (CEST)
Received: from terminus.zytor.com (terminus.zytor.com
 [IPv6:2607:7c80:54:3:0:0:0:136]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53P8Yg5Y2390085
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Fri, 25 Apr 2025 01:35:08 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 40efd850-21b0-11f0-9eb3-5ba50f476ded
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53P8Yg5Y2390085
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745570110;
	bh=hZcF32qWuESh4ggtUZngdaMFRMTAW60ISVLqNJ/G40g=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=HPho89N0GdJN3e3pjBsIA0ar8wp8OZKDdCb66UoC3mGT8GRM8ymWe0/7RRhoe1RGp
	 hi5oxD95MX+TAVMTmotvLVmRFlKMhlHBUZvxcrA3ibHc/S5Uptxz4WHL4WsbgQIJOF
	 eO+lFs8yVNoW+g5v3WExIjfj2qB66a4rYIxtSOq+BOn9czM9SpZJljr3uMsySsN52t
	 gnmi11rTDeSnKTc6rQtY9lpFo8shGTn0Dz3eMJHrLOzLw+xKsLlQV8fM6B8xPxM/j0
	 2HVHK3VkcGWFHWjWN6mE35i2sVAys6OTWDWh46qlOCEAMeQPlRv5TfTgefoh8L4zf7
	 tlW8jQbXAKYVw==
From: "Xin Li (Intel)" <xin@zytor.com>
To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
        linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
        netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        acme@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com,
        peterz@infradead.org, namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com,
        dapeng1.mi@linux.intel.com
Subject: [PATCH v3 10/14] x86/xen/msr: Remove pmu_msr_{read,write}()
Date: Fri, 25 Apr 2025 01:34:33 -0700
Message-ID: <20250425083442.2390017-11-xin@zytor.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250425083442.2390017-1-xin@zytor.com>
References: <20250425083442.2390017-1-xin@zytor.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

As pmu_msr_{read,write}() are now wrappers of pmu_msr_chk_emulated(),
remove them and use pmu_msr_chk_emulated() directly.

As pmu_msr_chk_emulated() could easily return false in the cases where
it would set *emul to false, remove the "emul" argument and use the
return value instead.

While at it, convert the data type of MSR index to u32 in functions
called in pmu_msr_chk_emulated().

Suggested-by: H. Peter Anvin (Intel) <hpa@zytor.com>
Suggested-by: Juergen Gross <jgross@suse.com>
Signed-off-by: Xin Li (Intel) <xin@zytor.com>
---

Change in v3:
*) Remove the "emul" argument of pmu_msr_chk_emulated() (Juergen Gross).
---
 arch/x86/xen/enlighten_pv.c | 15 ++++++++-------
 arch/x86/xen/pmu.c          | 30 ++++++------------------------
 arch/x86/xen/xen-ops.h      |  3 +--
 3 files changed, 15 insertions(+), 33 deletions(-)

diff --git a/arch/x86/xen/enlighten_pv.c b/arch/x86/xen/enlighten_pv.c
index 61e51a970f3c..528a2f4df050 100644
--- a/arch/x86/xen/enlighten_pv.c
+++ b/arch/x86/xen/enlighten_pv.c
@@ -1090,7 +1090,7 @@ static u64 xen_do_read_msr(unsigned int msr, int *err)
 {
 	u64 val = 0;	/* Avoid uninitialized value for safe variant. */
 
-	if (pmu_msr_read_emulated(msr, &val))
+	if (pmu_msr_chk_emulated(msr, &val, true))
 		return val;
 
 	if (err)
@@ -1162,12 +1162,13 @@ static void xen_do_write_msr(unsigned int msr, unsigned int low,
 	default:
 		val = (u64)high << 32 | low;
 
-		if (!pmu_msr_write_emulated(msr, val)) {
-			if (err)
-				*err = native_write_msr_safe(msr, low, high);
-			else
-				native_write_msr(msr, low, high);
-		}
+		if (pmu_msr_chk_emulated(msr, &val, false))
+			return;
+
+		if (err)
+			*err = native_write_msr_safe(msr, low, high);
+		else
+			native_write_msr(msr, low, high);
 	}
 }
 
diff --git a/arch/x86/xen/pmu.c b/arch/x86/xen/pmu.c
index b6557f2d1a2e..6bee83018694 100644
--- a/arch/x86/xen/pmu.c
+++ b/arch/x86/xen/pmu.c
@@ -128,7 +128,7 @@ static inline uint32_t get_fam15h_addr(u32 addr)
 	return addr;
 }
 
-static inline bool is_amd_pmu_msr(unsigned int msr)
+static bool is_amd_pmu_msr(u32 msr)
 {
 	if (boot_cpu_data.x86_vendor != X86_VENDOR_AMD &&
 	    boot_cpu_data.x86_vendor != X86_VENDOR_HYGON)
@@ -194,8 +194,7 @@ static bool is_intel_pmu_msr(u32 msr_index, int *type, int *index)
 	}
 }
 
-static bool xen_intel_pmu_emulate(unsigned int msr, u64 *val, int type,
-				  int index, bool is_read)
+static bool xen_intel_pmu_emulate(u32 msr, u64 *val, int type, int index, bool is_read)
 {
 	uint64_t *reg = NULL;
 	struct xen_pmu_intel_ctxt *ctxt;
@@ -257,7 +256,7 @@ static bool xen_intel_pmu_emulate(unsigned int msr, u64 *val, int type,
 	return false;
 }
 
-static bool xen_amd_pmu_emulate(unsigned int msr, u64 *val, bool is_read)
+static bool xen_amd_pmu_emulate(u32 msr, u64 *val, bool is_read)
 {
 	uint64_t *reg = NULL;
 	int i, off = 0;
@@ -298,33 +297,16 @@ static bool xen_amd_pmu_emulate(unsigned int msr, u64 *val, bool is_read)
 	return false;
 }
 
-static bool pmu_msr_chk_emulated(unsigned int msr, uint64_t *val, bool is_read,
-				 bool *emul)
+bool pmu_msr_chk_emulated(u32 msr, u64 *val, bool is_read)
 {
 	int type, index = 0;
 
 	if (is_amd_pmu_msr(msr))
-		*emul = xen_amd_pmu_emulate(msr, val, is_read);
+		return xen_amd_pmu_emulate(msr, val, is_read);
 	else if (is_intel_pmu_msr(msr, &type, &index))
-		*emul = xen_intel_pmu_emulate(msr, val, type, index, is_read);
+		return xen_intel_pmu_emulate(msr, val, type, index, is_read);
 	else
 		return false;
-
-	return true;
-}
-
-bool pmu_msr_read_emulated(u32 msr, u64 *val)
-{
-	bool emulated;
-
-	return pmu_msr_chk_emulated(msr, val, true, &emulated) && emulated;
-}
-
-bool pmu_msr_write_emulated(u32 msr, u64 val)
-{
-	bool emulated;
-
-	return pmu_msr_chk_emulated(msr, &val, false, &emulated) && emulated;
 }
 
 static u64 xen_amd_read_pmc(int counter)
diff --git a/arch/x86/xen/xen-ops.h b/arch/x86/xen/xen-ops.h
index 163e03e33089..fd7f845b83a3 100644
--- a/arch/x86/xen/xen-ops.h
+++ b/arch/x86/xen/xen-ops.h
@@ -274,8 +274,7 @@ void xen_pmu_finish(int cpu);
 static inline void xen_pmu_init(int cpu) {}
 static inline void xen_pmu_finish(int cpu) {}
 #endif
-bool pmu_msr_read_emulated(u32 msr, u64 *val);
-bool pmu_msr_write_emulated(u32 msr, u64 val);
+bool pmu_msr_chk_emulated(u32 msr, u64 *val, bool is_read);
 int pmu_apic_update(uint32_t reg);
 u64 xen_read_pmc(int counter);
 
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Fri Apr 25 08:35:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 08:35:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.967321.1357218 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8EX5-00050s-IL; Fri, 25 Apr 2025 08:35:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 967321.1357218; Fri, 25 Apr 2025 08:35:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8EX5-0004zE-Bg; Fri, 25 Apr 2025 08:35:39 +0000
Received: by outflank-mailman (input) for mailman id 967321;
 Fri, 25 Apr 2025 08: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=Tuhi=XL=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u8EX4-0002sz-BB
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 08:35:38 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 38b86dbb-21b0-11f0-9ffb-bf95429c2676;
 Fri, 25 Apr 2025 10:35:20 +0200 (CEST)
Received: from terminus.zytor.com (terminus.zytor.com
 [IPv6:2607:7c80:54:3:0:0:0:136]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53P8Yg5R2390085
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Fri, 25 Apr 2025 01:34:53 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 38b86dbb-21b0-11f0-9ffb-bf95429c2676
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53P8Yg5R2390085
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745570095;
	bh=nBz3GLFAwDoQVYhhWmv18m7tWTqjAgxiRsxoRTTSuK8=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=N4iHjAOsm7Qruo8uIbG+2IuASClPrN9hxKCkrfsx1aETMmREIUcXntywT7wBkuUwu
	 lt0Bxg1Y12NDCfA2HieEUq1WhbKx0df2GqsqLWC0ob1fOxi8WNCblWtZfESz0DitR1
	 nK5chIFy932DtseX4200GLG1ei+SJ8wY9mmRh5cBYNqKZ7rn4DLSsFoxQG/8Z311r0
	 iZn/ULykrenXKN++xbEhsqzLR+ARmf8G46JkGG6YVvM3gvk35IEvZHOadQRfRqZXM9
	 p4f5jYi4F9YqcuJz4Hv8c6FFGVnqcvDEs7TBLV/ESOagIOc84Zi1O9KpQaxy+IIjnm
	 FuIb8s9SqeeVw==
From: "Xin Li (Intel)" <xin@zytor.com>
To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
        linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
        netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        acme@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com,
        peterz@infradead.org, namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com,
        dapeng1.mi@linux.intel.com
Subject: [PATCH v3 03/14] x86/msr: Rename rdpmcl() to rdpmc()
Date: Fri, 25 Apr 2025 01:34:26 -0700
Message-ID: <20250425083442.2390017-4-xin@zytor.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250425083442.2390017-1-xin@zytor.com>
References: <20250425083442.2390017-1-xin@zytor.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Now that rdpmc() is gone, i.e. rdpmcl() is the sole PMC read helper,
simply rename rdpmcl() to rdpmc().

Signed-off-by: Xin Li (Intel) <xin@zytor.com>
Acked-by: Dave Hansen <dave.hansen@linux.intel.com>
---

Changes in v3:
*) Explain the reason of the renaming in the changelog (Dave Hansen).
*) Use shorter name rdpmc() instead of rdpmcq() as the name of the
   sole PMC read helper (Sean Christopherson).
---
 arch/x86/events/amd/uncore.c              |  2 +-
 arch/x86/events/core.c                    |  2 +-
 arch/x86/events/intel/core.c              |  4 ++--
 arch/x86/events/intel/ds.c                |  2 +-
 arch/x86/include/asm/msr.h                |  2 +-
 arch/x86/include/asm/paravirt.h           |  2 +-
 arch/x86/kernel/cpu/resctrl/pseudo_lock.c | 12 ++++++------
 7 files changed, 13 insertions(+), 13 deletions(-)

diff --git a/arch/x86/events/amd/uncore.c b/arch/x86/events/amd/uncore.c
index 2a3259df619a..42c833cf9d98 100644
--- a/arch/x86/events/amd/uncore.c
+++ b/arch/x86/events/amd/uncore.c
@@ -108,7 +108,7 @@ static void amd_uncore_read(struct perf_event *event)
 	if (hwc->event_base_rdpmc < 0)
 		rdmsrq(hwc->event_base, new);
 	else
-		rdpmcl(hwc->event_base_rdpmc, new);
+		rdpmc(hwc->event_base_rdpmc, new);
 
 	local64_set(&hwc->prev_count, new);
 	delta = (new << COUNTER_SHIFT) - (prev << COUNTER_SHIFT);
diff --git a/arch/x86/events/core.c b/arch/x86/events/core.c
index 85b55c1dc162..ea618dd8a678 100644
--- a/arch/x86/events/core.c
+++ b/arch/x86/events/core.c
@@ -134,7 +134,7 @@ u64 x86_perf_event_update(struct perf_event *event)
 	 */
 	prev_raw_count = local64_read(&hwc->prev_count);
 	do {
-		rdpmcl(hwc->event_base_rdpmc, new_raw_count);
+		rdpmc(hwc->event_base_rdpmc, new_raw_count);
 	} while (!local64_try_cmpxchg(&hwc->prev_count,
 				      &prev_raw_count, new_raw_count));
 
diff --git a/arch/x86/events/intel/core.c b/arch/x86/events/intel/core.c
index 394fa83b537b..8ac7a03ae4e9 100644
--- a/arch/x86/events/intel/core.c
+++ b/arch/x86/events/intel/core.c
@@ -2724,12 +2724,12 @@ static u64 intel_update_topdown_event(struct perf_event *event, int metric_end,
 
 	if (!val) {
 		/* read Fixed counter 3 */
-		rdpmcl((3 | INTEL_PMC_FIXED_RDPMC_BASE), slots);
+		rdpmc((3 | INTEL_PMC_FIXED_RDPMC_BASE), slots);
 		if (!slots)
 			return 0;
 
 		/* read PERF_METRICS */
-		rdpmcl(INTEL_PMC_FIXED_RDPMC_METRICS, metrics);
+		rdpmc(INTEL_PMC_FIXED_RDPMC_METRICS, metrics);
 	} else {
 		slots = val[0];
 		metrics = val[1];
diff --git a/arch/x86/events/intel/ds.c b/arch/x86/events/intel/ds.c
index 410a8975d1b9..be05e93b48e7 100644
--- a/arch/x86/events/intel/ds.c
+++ b/arch/x86/events/intel/ds.c
@@ -2274,7 +2274,7 @@ intel_pmu_save_and_restart_reload(struct perf_event *event, int count)
 	WARN_ON(this_cpu_read(cpu_hw_events.enabled));
 
 	prev_raw_count = local64_read(&hwc->prev_count);
-	rdpmcl(hwc->event_base_rdpmc, new_raw_count);
+	rdpmc(hwc->event_base_rdpmc, new_raw_count);
 	local64_set(&hwc->prev_count, new_raw_count);
 
 	/*
diff --git a/arch/x86/include/asm/msr.h b/arch/x86/include/asm/msr.h
index e05466e486fc..ae96d35e0621 100644
--- a/arch/x86/include/asm/msr.h
+++ b/arch/x86/include/asm/msr.h
@@ -234,7 +234,7 @@ static inline int rdmsrq_safe(u32 msr, u64 *p)
 	return err;
 }
 
-#define rdpmcl(counter, val) ((val) = native_read_pmc(counter))
+#define rdpmc(counter, val) ((val) = native_read_pmc(counter))
 
 #endif	/* !CONFIG_PARAVIRT_XXL */
 
diff --git a/arch/x86/include/asm/paravirt.h b/arch/x86/include/asm/paravirt.h
index c4dedb984735..faa0713553b1 100644
--- a/arch/x86/include/asm/paravirt.h
+++ b/arch/x86/include/asm/paravirt.h
@@ -244,7 +244,7 @@ static inline u64 paravirt_read_pmc(int counter)
 	return PVOP_CALL1(u64, cpu.read_pmc, counter);
 }
 
-#define rdpmcl(counter, val) ((val) = paravirt_read_pmc(counter))
+#define rdpmc(counter, val) ((val) = paravirt_read_pmc(counter))
 
 static inline void paravirt_alloc_ldt(struct desc_struct *ldt, unsigned entries)
 {
diff --git a/arch/x86/kernel/cpu/resctrl/pseudo_lock.c b/arch/x86/kernel/cpu/resctrl/pseudo_lock.c
index 26c354bdea07..15ff62d83bd8 100644
--- a/arch/x86/kernel/cpu/resctrl/pseudo_lock.c
+++ b/arch/x86/kernel/cpu/resctrl/pseudo_lock.c
@@ -1019,8 +1019,8 @@ static int measure_residency_fn(struct perf_event_attr *miss_attr,
 	 * used in L1 cache, second to capture accurate value that does not
 	 * include cache misses incurred because of instruction loads.
 	 */
-	rdpmcl(hit_pmcnum, hits_before);
-	rdpmcl(miss_pmcnum, miss_before);
+	rdpmc(hit_pmcnum, hits_before);
+	rdpmc(miss_pmcnum, miss_before);
 	/*
 	 * From SDM: Performing back-to-back fast reads are not guaranteed
 	 * to be monotonic.
@@ -1028,8 +1028,8 @@ static int measure_residency_fn(struct perf_event_attr *miss_attr,
 	 * before proceeding.
 	 */
 	rmb();
-	rdpmcl(hit_pmcnum, hits_before);
-	rdpmcl(miss_pmcnum, miss_before);
+	rdpmc(hit_pmcnum, hits_before);
+	rdpmc(miss_pmcnum, miss_before);
 	/*
 	 * Use LFENCE to ensure all previous instructions are retired
 	 * before proceeding.
@@ -1051,8 +1051,8 @@ static int measure_residency_fn(struct perf_event_attr *miss_attr,
 	 * before proceeding.
 	 */
 	rmb();
-	rdpmcl(hit_pmcnum, hits_after);
-	rdpmcl(miss_pmcnum, miss_after);
+	rdpmc(hit_pmcnum, hits_after);
+	rdpmc(miss_pmcnum, miss_after);
 	/*
 	 * Use LFENCE to ensure all previous instructions are retired
 	 * before proceeding.
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Fri Apr 25 08:35:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 08:35:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.967322.1357233 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8EX7-0005Sj-Ax; Fri, 25 Apr 2025 08:35:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 967322.1357233; Fri, 25 Apr 2025 08: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 1u8EX6-0005Rf-Vy; Fri, 25 Apr 2025 08:35:40 +0000
Received: by outflank-mailman (input) for mailman id 967322;
 Fri, 25 Apr 2025 08: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=Tuhi=XL=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u8EX5-0002sz-BK
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 08:35:39 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3dc309f1-21b0-11f0-9ffb-bf95429c2676;
 Fri, 25 Apr 2025 10:35:29 +0200 (CEST)
Received: from terminus.zytor.com (terminus.zytor.com
 [IPv6:2607:7c80:54:3:0:0:0:136]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53P8Yg5Z2390085
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Fri, 25 Apr 2025 01:35:10 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3dc309f1-21b0-11f0-9ffb-bf95429c2676
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53P8Yg5Z2390085
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745570112;
	bh=SuVfHs5/TqhTttnO9xmll8hvX7BRznt+kmoVGtMiUw4=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=K8lOKuIh/D/j7rZL7AQL6SMyVvbSw9/XmzjWLxTZwYLNpA2genobdKLYetW7RYAaM
	 m75xsxgTEDLfOAGlGi3upnHxzwttxJ+hLtCW+XnAV2rRY5NBOrQFoS1yMuSVsXajKJ
	 5Hv2+0oeUl2dnVryDTNH5G++Q9r1jBoT5LZ46QreyIe/CCPPS2/e+BYkoG5UaWrW5Y
	 Rbog+y9zcYaFw/P9uDuQ8WIuXo2rc2EWkr+5pwlFccp1Ul29yTTsAZ6GltMI+YV+pn
	 hqOgyl4nWc7UW1d/lG8P54j5O9rvp2FzQzg9jmXJaBHgkcB/fLPFsOTZ8K0cJsme38
	 /2r7j9uqSpAZQ==
From: "Xin Li (Intel)" <xin@zytor.com>
To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
        linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
        netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        acme@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com,
        peterz@infradead.org, namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com,
        dapeng1.mi@linux.intel.com
Subject: [PATCH v3 11/14] x86/xen/msr: Remove the error pointer argument from set_seg()
Date: Fri, 25 Apr 2025 01:34:34 -0700
Message-ID: <20250425083442.2390017-12-xin@zytor.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250425083442.2390017-1-xin@zytor.com>
References: <20250425083442.2390017-1-xin@zytor.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

set_seg() is used to write the following MSRs on Xen:

    MSR_FS_BASE
    MSR_KERNEL_GS_BASE
    MSR_GS_BASE

But none of these MSRs are written using any MSR write safe API.
Therefore there is no need to pass an error pointer argument to
set_seg() for returning an error code to be used in MSR safe APIs.

Remove the error pointer argument.

Signed-off-by: Xin Li (Intel) <xin@zytor.com>
Reviewed-by: Juergen Gross <jgross@suse.com>
---

Change in v3:
*) Fix a typo: set_reg() => set_seg() (Juergen Gross).
---
 arch/x86/xen/enlighten_pv.c | 16 +++++-----------
 1 file changed, 5 insertions(+), 11 deletions(-)

diff --git a/arch/x86/xen/enlighten_pv.c b/arch/x86/xen/enlighten_pv.c
index 528a2f4df050..c247e7689bc3 100644
--- a/arch/x86/xen/enlighten_pv.c
+++ b/arch/x86/xen/enlighten_pv.c
@@ -1110,17 +1110,11 @@ static u64 xen_do_read_msr(unsigned int msr, int *err)
 	return val;
 }
 
-static void set_seg(unsigned int which, unsigned int low, unsigned int high,
-		    int *err)
+static void set_seg(u32 which, u32 low, u32 high)
 {
 	u64 base = ((u64)high << 32) | low;
 
-	if (HYPERVISOR_set_segment_base(which, base) == 0)
-		return;
-
-	if (err)
-		*err = -EIO;
-	else
+	if (HYPERVISOR_set_segment_base(which, base))
 		WARN(1, "Xen set_segment_base(%u, %llx) failed\n", which, base);
 }
 
@@ -1136,15 +1130,15 @@ static void xen_do_write_msr(unsigned int msr, unsigned int low,
 
 	switch (msr) {
 	case MSR_FS_BASE:
-		set_seg(SEGBASE_FS, low, high, err);
+		set_seg(SEGBASE_FS, low, high);
 		break;
 
 	case MSR_KERNEL_GS_BASE:
-		set_seg(SEGBASE_GS_USER, low, high, err);
+		set_seg(SEGBASE_GS_USER, low, high);
 		break;
 
 	case MSR_GS_BASE:
-		set_seg(SEGBASE_GS_KERNEL, low, high, err);
+		set_seg(SEGBASE_GS_KERNEL, low, high);
 		break;
 
 	case MSR_STAR:
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Fri Apr 25 08:35:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 08:35:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.967323.1357242 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8EX8-0005oJ-N2; Fri, 25 Apr 2025 08:35:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 967323.1357242; Fri, 25 Apr 2025 08: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 1u8EX8-0005mN-Dp; Fri, 25 Apr 2025 08:35:42 +0000
Received: by outflank-mailman (input) for mailman id 967323;
 Fri, 25 Apr 2025 08:35: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=Tuhi=XL=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u8EX6-0002sz-Iu
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 08:35:40 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3edd3aa7-21b0-11f0-9ffb-bf95429c2676;
 Fri, 25 Apr 2025 10:35:31 +0200 (CEST)
Received: from terminus.zytor.com (terminus.zytor.com
 [IPv6:2607:7c80:54:3:0:0:0:136]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53P8Yg5a2390085
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Fri, 25 Apr 2025 01:35:12 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3edd3aa7-21b0-11f0-9ffb-bf95429c2676
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53P8Yg5a2390085
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745570114;
	bh=dp0os6L/8gGJ7R7+2ig+AT66kaK/KC35t7gKjESvVTk=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=A/QUzZI/IjfTqiINbtMDb11WkZZst4x6GucpCvTvL5FudXlQehstDBKpE0ft2emN9
	 tgv8h1RW5ONmdqXtiSRPRiRsATyT7009gur34vQimnYj5Puo+DabCiOwp4wEZdzA7G
	 ldt+fx4dg5AxfnxC4qIz2YKuNymRCtdBSXvPu7uUaQs6yfOXEQOVfR8n9l/+TmCqLJ
	 kRdk9ULSzYw0qbJtS/T/y6xNa0hI4Gy7wXX/zlaOM192A9zxghjzbG3C67A74xq2P8
	 kRuBbkbKwE94lDXhk3sqZxsy3nRUQtv8IBUnUA3Sk1tElESl156mvyN7lle1fI7khV
	 APYtzNj0LIQsA==
From: "Xin Li (Intel)" <xin@zytor.com>
To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
        linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
        netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        acme@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com,
        peterz@infradead.org, namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com,
        dapeng1.mi@linux.intel.com
Subject: [PATCH v3 12/14] x86/pvops/msr: refactor pv_cpu_ops.write_msr{,_safe}()
Date: Fri, 25 Apr 2025 01:34:35 -0700
Message-ID: <20250425083442.2390017-13-xin@zytor.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250425083442.2390017-1-xin@zytor.com>
References: <20250425083442.2390017-1-xin@zytor.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

An MSR value is represented as a 64-bit unsigned integer, with existing
MSR instructions storing it in EDX:EAX as two 32-bit segments.

The new immediate form MSR instructions, however, utilize a 64-bit
general-purpose register to store the MSR value.  To unify the usage of
all MSR instructions, let the default MSR access APIs accept an MSR
value as a single 64-bit argument instead of two 32-bit segments.

The dual 32-bit APIs are still available as convenient wrappers over the
APIs that handle an MSR value as a single 64-bit argument.

The following illustrates the updated derivation of the MSR write APIs:

                 __wrmsrq(u32 msr, u64 val)
                   /                  \
                  /                    \
           native_wrmsrq(msr, val)    native_wrmsr(msr, low, high)
                 |
                 |
           native_write_msr(msr, val)
                /          \
               /            \
       wrmsrq(msr, val)    wrmsr(msr, low, high)

When CONFIG_PARAVIRT is enabled, wrmsrq() and wrmsr() are defined on top
of paravirt_write_msr():

            paravirt_write_msr(u32 msr, u64 val)
               /             \
              /               \
          wrmsrq(msr, val)    wrmsr(msr, low, high)

paravirt_write_msr() invokes cpu.write_msr(msr, val), an indirect layer
of pv_ops MSR write call:

    If on native:

            cpu.write_msr = native_write_msr

    If on Xen:

            cpu.write_msr = xen_write_msr

Therefore, refactor pv_cpu_ops.write_msr{_safe}() to accept an MSR value
in a single u64 argument, replacing the current dual u32 arguments.

No functional change intended.

Signed-off-by: Xin Li (Intel) <xin@zytor.com>
Reviewed-by: Juergen Gross <jgross@suse.com>
---

Change in v2:
* Spell out the reason why use a single u64 argument to pass the MSR
  value in the lowest level APIs (Andrew Cooper).
---
 arch/x86/include/asm/msr.h            | 35 ++++++++++++---------------
 arch/x86/include/asm/paravirt.h       | 27 +++++++++++----------
 arch/x86/include/asm/paravirt_types.h |  4 +--
 arch/x86/kernel/kvmclock.c            |  2 +-
 arch/x86/kvm/svm/svm.c                | 15 +++---------
 arch/x86/xen/enlighten_pv.c           | 30 +++++++++--------------
 6 files changed, 46 insertions(+), 67 deletions(-)

diff --git a/arch/x86/include/asm/msr.h b/arch/x86/include/asm/msr.h
index 7b9713a49d59..0392b9596107 100644
--- a/arch/x86/include/asm/msr.h
+++ b/arch/x86/include/asm/msr.h
@@ -92,12 +92,12 @@ static __always_inline u64 __rdmsr(u32 msr)
 	return EAX_EDX_VAL(val, low, high);
 }
 
-static __always_inline void __wrmsr(u32 msr, u32 low, u32 high)
+static __always_inline void __wrmsrq(u32 msr, u64 val)
 {
 	asm volatile("1: wrmsr\n"
 		     "2:\n"
 		     _ASM_EXTABLE_TYPE(1b, 2b, EX_TYPE_WRMSR)
-		     : : "c" (msr), "a"(low), "d" (high) : "memory");
+		     : : "c" (msr), "a" ((u32)val), "d" ((u32)(val >> 32)) : "memory");
 }
 
 #define native_rdmsr(msr, val1, val2)			\
@@ -113,11 +113,10 @@ static __always_inline u64 native_rdmsrq(u32 msr)
 }
 
 #define native_wrmsr(msr, low, high)			\
-	__wrmsr(msr, low, high)
+	__wrmsrq((msr), (u64)(high) << 32 | (low))
 
 #define native_wrmsrq(msr, val)				\
-	__wrmsr((msr), (u32)((u64)(val)),		\
-		       (u32)((u64)(val) >> 32))
+	__wrmsrq((msr), (val))
 
 static inline u64 native_read_msr(u32 msr)
 {
@@ -146,11 +145,8 @@ static inline u64 native_read_msr_safe(u32 msr, int *err)
 }
 
 /* Can be uninlined because referenced by paravirt */
-static inline void notrace
-native_write_msr(u32 msr, u32 low, u32 high)
+static inline void notrace native_write_msr(u32 msr, u64 val)
 {
-	u64 val = (u64)high << 32 | low;
-
 	native_wrmsrq(msr, val);
 
 	if (tracepoint_enabled(write_msr))
@@ -158,8 +154,7 @@ native_write_msr(u32 msr, u32 low, u32 high)
 }
 
 /* Can be uninlined because referenced by paravirt */
-static inline int notrace
-native_write_msr_safe(u32 msr, u32 low, u32 high)
+static inline int notrace native_write_msr_safe(u32 msr, u64 val)
 {
 	int err;
 
@@ -167,10 +162,10 @@ native_write_msr_safe(u32 msr, u32 low, u32 high)
 		     "2:\n\t"
 		     _ASM_EXTABLE_TYPE_REG(1b, 2b, EX_TYPE_WRMSR_SAFE, %[err])
 		     : [err] "=a" (err)
-		     : "c" (msr), "0" (low), "d" (high)
+		     : "c" (msr), "0" ((u32)val), "d" ((u32)(val >> 32))
 		     : "memory");
 	if (tracepoint_enabled(write_msr))
-		do_trace_write_msr(msr, ((u64)high << 32 | low), err);
+		do_trace_write_msr(msr, val, err);
 	return err;
 }
 
@@ -206,7 +201,7 @@ do {								\
 
 static inline void wrmsr(u32 msr, u32 low, u32 high)
 {
-	native_write_msr(msr, low, high);
+	native_write_msr(msr, (u64)high << 32 | low);
 }
 
 #define rdmsrq(msr, val)			\
@@ -214,13 +209,13 @@ static inline void wrmsr(u32 msr, u32 low, u32 high)
 
 static inline void wrmsrq(u32 msr, u64 val)
 {
-	native_write_msr(msr, (u32)(val & 0xffffffffULL), (u32)(val >> 32));
+	native_write_msr(msr, val);
 }
 
 /* wrmsr with exception handling */
-static inline int wrmsr_safe(u32 msr, u32 low, u32 high)
+static inline int wrmsrq_safe(u32 msr, u64 val)
 {
-	return native_write_msr_safe(msr, low, high);
+	return native_write_msr_safe(msr, val);
 }
 
 /* rdmsr with exception handling */
@@ -264,11 +259,11 @@ static __always_inline void wrmsrns(u32 msr, u64 val)
 }
 
 /*
- * 64-bit version of wrmsr_safe():
+ * Dual u32 version of wrmsrq_safe():
  */
-static inline int wrmsrq_safe(u32 msr, u64 val)
+static inline int wrmsr_safe(u32 msr, u32 low, u32 high)
 {
-	return wrmsr_safe(msr, (u32)val,  (u32)(val >> 32));
+	return wrmsrq_safe(msr, (u64)high << 32 | low);
 }
 
 struct msr __percpu *msrs_alloc(void);
diff --git a/arch/x86/include/asm/paravirt.h b/arch/x86/include/asm/paravirt.h
index f272c4bd3d5b..edf23bde367e 100644
--- a/arch/x86/include/asm/paravirt.h
+++ b/arch/x86/include/asm/paravirt.h
@@ -180,10 +180,9 @@ static inline u64 paravirt_read_msr(unsigned msr)
 	return PVOP_CALL1(u64, cpu.read_msr, msr);
 }
 
-static inline void paravirt_write_msr(unsigned msr,
-				      unsigned low, unsigned high)
+static inline void paravirt_write_msr(u32 msr, u64 val)
 {
-	PVOP_VCALL3(cpu.write_msr, msr, low, high);
+	PVOP_VCALL2(cpu.write_msr, msr, val);
 }
 
 static inline u64 paravirt_read_msr_safe(unsigned msr, int *err)
@@ -191,10 +190,9 @@ static inline u64 paravirt_read_msr_safe(unsigned msr, int *err)
 	return PVOP_CALL2(u64, cpu.read_msr_safe, msr, err);
 }
 
-static inline int paravirt_write_msr_safe(unsigned msr,
-					  unsigned low, unsigned high)
+static inline int paravirt_write_msr_safe(u32 msr, u64 val)
 {
-	return PVOP_CALL3(int, cpu.write_msr_safe, msr, low, high);
+	return PVOP_CALL2(int, cpu.write_msr_safe, msr, val);
 }
 
 #define rdmsr(msr, val1, val2)			\
@@ -204,22 +202,25 @@ do {						\
 	val2 = _l >> 32;			\
 } while (0)
 
-#define wrmsr(msr, val1, val2)			\
-do {						\
-	paravirt_write_msr(msr, val1, val2);	\
-} while (0)
+static __always_inline void wrmsr(u32 msr, u32 low, u32 high)
+{
+	paravirt_write_msr(msr, (u64)high << 32 | low);
+}
 
 #define rdmsrq(msr, val)			\
 do {						\
 	val = paravirt_read_msr(msr);		\
 } while (0)
 
-static inline void wrmsrq(unsigned msr, u64 val)
+static inline void wrmsrq(u32 msr, u64 val)
 {
-	wrmsr(msr, (u32)val, (u32)(val>>32));
+	paravirt_write_msr(msr, val);
 }
 
-#define wrmsr_safe(msr, a, b)	paravirt_write_msr_safe(msr, a, b)
+static inline int wrmsrq_safe(u32 msr, u64 val)
+{
+	return paravirt_write_msr_safe(msr, val);
+}
 
 /* rdmsr with exception handling */
 #define rdmsr_safe(msr, a, b)				\
diff --git a/arch/x86/include/asm/paravirt_types.h b/arch/x86/include/asm/paravirt_types.h
index 631c306ce1ff..78777b78da12 100644
--- a/arch/x86/include/asm/paravirt_types.h
+++ b/arch/x86/include/asm/paravirt_types.h
@@ -92,14 +92,14 @@ struct pv_cpu_ops {
 
 	/* Unsafe MSR operations.  These will warn or panic on failure. */
 	u64 (*read_msr)(unsigned int msr);
-	void (*write_msr)(unsigned int msr, unsigned low, unsigned high);
+	void (*write_msr)(u32 msr, u64 val);
 
 	/*
 	 * Safe MSR operations.
 	 * read sets err to 0 or -EIO.  write returns 0 or -EIO.
 	 */
 	u64 (*read_msr_safe)(unsigned int msr, int *err);
-	int (*write_msr_safe)(unsigned int msr, unsigned low, unsigned high);
+	int (*write_msr_safe)(u32 msr, u64 val);
 
 	u64 (*read_pmc)(int counter);
 
diff --git a/arch/x86/kernel/kvmclock.c b/arch/x86/kernel/kvmclock.c
index 0af797930ccb..ca0a49eeac4a 100644
--- a/arch/x86/kernel/kvmclock.c
+++ b/arch/x86/kernel/kvmclock.c
@@ -196,7 +196,7 @@ static void kvm_setup_secondary_clock(void)
 void kvmclock_disable(void)
 {
 	if (msr_kvm_system_time)
-		native_write_msr(msr_kvm_system_time, 0, 0);
+		native_write_msr(msr_kvm_system_time, 0);
 }
 
 static void __init kvmclock_init_mem(void)
diff --git a/arch/x86/kvm/svm/svm.c b/arch/x86/kvm/svm/svm.c
index 67657b3a36ce..4ef9978dce70 100644
--- a/arch/x86/kvm/svm/svm.c
+++ b/arch/x86/kvm/svm/svm.c
@@ -475,7 +475,6 @@ static void svm_inject_exception(struct kvm_vcpu *vcpu)
 
 static void svm_init_erratum_383(void)
 {
-	u32 low, high;
 	int err;
 	u64 val;
 
@@ -489,10 +488,7 @@ static void svm_init_erratum_383(void)
 
 	val |= (1ULL << 47);
 
-	low  = lower_32_bits(val);
-	high = upper_32_bits(val);
-
-	native_write_msr_safe(MSR_AMD64_DC_CFG, low, high);
+	native_write_msr_safe(MSR_AMD64_DC_CFG, val);
 
 	erratum_383_found = true;
 }
@@ -2167,17 +2163,12 @@ static bool is_erratum_383(void)
 
 	/* Clear MCi_STATUS registers */
 	for (i = 0; i < 6; ++i)
-		native_write_msr_safe(MSR_IA32_MCx_STATUS(i), 0, 0);
+		native_write_msr_safe(MSR_IA32_MCx_STATUS(i), 0);
 
 	value = native_read_msr_safe(MSR_IA32_MCG_STATUS, &err);
 	if (!err) {
-		u32 low, high;
-
 		value &= ~(1ULL << 2);
-		low    = lower_32_bits(value);
-		high   = upper_32_bits(value);
-
-		native_write_msr_safe(MSR_IA32_MCG_STATUS, low, high);
+		native_write_msr_safe(MSR_IA32_MCG_STATUS, value);
 	}
 
 	/* Flush tlb to evict multi-match entries */
diff --git a/arch/x86/xen/enlighten_pv.c b/arch/x86/xen/enlighten_pv.c
index c247e7689bc3..c067d1e8a39c 100644
--- a/arch/x86/xen/enlighten_pv.c
+++ b/arch/x86/xen/enlighten_pv.c
@@ -1110,10 +1110,8 @@ static u64 xen_do_read_msr(unsigned int msr, int *err)
 	return val;
 }
 
-static void set_seg(u32 which, u32 low, u32 high)
+static void set_seg(u32 which, u64 base)
 {
-	u64 base = ((u64)high << 32) | low;
-
 	if (HYPERVISOR_set_segment_base(which, base))
 		WARN(1, "Xen set_segment_base(%u, %llx) failed\n", which, base);
 }
@@ -1123,22 +1121,19 @@ static void set_seg(u32 which, u32 low, u32 high)
  * With err == NULL write_msr() semantics are selected.
  * Supplying an err pointer requires err to be pre-initialized with 0.
  */
-static void xen_do_write_msr(unsigned int msr, unsigned int low,
-			     unsigned int high, int *err)
+static void xen_do_write_msr(u32 msr, u64 val, int *err)
 {
-	u64 val;
-
 	switch (msr) {
 	case MSR_FS_BASE:
-		set_seg(SEGBASE_FS, low, high);
+		set_seg(SEGBASE_FS, val);
 		break;
 
 	case MSR_KERNEL_GS_BASE:
-		set_seg(SEGBASE_GS_USER, low, high);
+		set_seg(SEGBASE_GS_USER, val);
 		break;
 
 	case MSR_GS_BASE:
-		set_seg(SEGBASE_GS_KERNEL, low, high);
+		set_seg(SEGBASE_GS_KERNEL, val);
 		break;
 
 	case MSR_STAR:
@@ -1154,15 +1149,13 @@ static void xen_do_write_msr(unsigned int msr, unsigned int low,
 		break;
 
 	default:
-		val = (u64)high << 32 | low;
-
 		if (pmu_msr_chk_emulated(msr, &val, false))
 			return;
 
 		if (err)
-			*err = native_write_msr_safe(msr, low, high);
+			*err = native_write_msr_safe(msr, val);
 		else
-			native_write_msr(msr, low, high);
+			native_write_msr(msr, val);
 	}
 }
 
@@ -1171,12 +1164,11 @@ static u64 xen_read_msr_safe(unsigned int msr, int *err)
 	return xen_do_read_msr(msr, err);
 }
 
-static int xen_write_msr_safe(unsigned int msr, unsigned int low,
-			      unsigned int high)
+static int xen_write_msr_safe(u32 msr, u64 val)
 {
 	int err = 0;
 
-	xen_do_write_msr(msr, low, high, &err);
+	xen_do_write_msr(msr, val, &err);
 
 	return err;
 }
@@ -1188,11 +1180,11 @@ static u64 xen_read_msr(unsigned int msr)
 	return xen_do_read_msr(msr, xen_msr_safe ? &err : NULL);
 }
 
-static void xen_write_msr(unsigned int msr, unsigned low, unsigned high)
+static void xen_write_msr(u32 msr, u64 val)
 {
 	int err;
 
-	xen_do_write_msr(msr, low, high, xen_msr_safe ? &err : NULL);
+	xen_do_write_msr(msr, val, xen_msr_safe ? &err : NULL);
 }
 
 /* This is called once we have the cpu_possible_mask */
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Fri Apr 25 08:35:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 08:35:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.967324.1357253 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8EXA-0006BF-Si; Fri, 25 Apr 2025 08:35:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 967324.1357253; Fri, 25 Apr 2025 08: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 1u8EXA-00069v-5J; Fri, 25 Apr 2025 08:35:44 +0000
Received: by outflank-mailman (input) for mailman id 967324;
 Fri, 25 Apr 2025 08:35: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=Tuhi=XL=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u8EX8-0002sy-DY
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 08:35:42 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 44f0242b-21b0-11f0-9eb3-5ba50f476ded;
 Fri, 25 Apr 2025 10:35:41 +0200 (CEST)
Received: from terminus.zytor.com (terminus.zytor.com
 [IPv6:2607:7c80:54:3:0:0:0:136]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53P8Yg5b2390085
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Fri, 25 Apr 2025 01:35:14 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 44f0242b-21b0-11f0-9eb3-5ba50f476ded
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53P8Yg5b2390085
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745570116;
	bh=uv41QT4bUCUeg9kRJU+Ll1R/EUQNWmYyobPhZDDnvG0=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=LAHupr+aVuwBpQ/lNk4VRYfQ8YqH5gxJ2rbpQnBuRb4FaPPs70H6aY1LwvgqiZm7g
	 HGijy5UeFm73/eBXR+IGsU6GUt8lk0uW2ujOhjHd+8YFP6FlTKaPe4NoqX38awxYPk
	 /xIGSplFs/IhIrHT35jWYZVGRoIeRgbzT1lZOmuyNtXHKUuFWzrhnryI2+qkXFrVTN
	 TY5LUhj34npFxPcxFG7+6q0Ud1MXC09OUc5i8nZbZf+9zaMDQf/GlSdPVLQbd+lBGC
	 WCjWDfnBVN4vbnbd4hlZgXwvR+IWnKB3H6jRhkgL304Rs2jXmKs1f9GQRy0wpbeZsY
	 ZKoo8rEiZWH1g==
From: "Xin Li (Intel)" <xin@zytor.com>
To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
        linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
        netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        acme@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com,
        peterz@infradead.org, namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com,
        dapeng1.mi@linux.intel.com
Subject: [PATCH v3 13/14] x86/msr: Replace wrmsr(msr, low, 0) with wrmsrq(msr, low)
Date: Fri, 25 Apr 2025 01:34:36 -0700
Message-ID: <20250425083442.2390017-14-xin@zytor.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250425083442.2390017-1-xin@zytor.com>
References: <20250425083442.2390017-1-xin@zytor.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The third argument in wrmsr(msr, low, 0) is unnecessary.  Instead, use
wrmsrq(msr, low), which automatically sets the higher 32 bits of the
MSR value to 0.

Signed-off-by: Xin Li (Intel) <xin@zytor.com>
---
 arch/x86/hyperv/hv_apic.c                 | 6 +++---
 arch/x86/include/asm/apic.h               | 2 +-
 arch/x86/include/asm/switch_to.h          | 2 +-
 arch/x86/kernel/cpu/amd.c                 | 2 +-
 arch/x86/kernel/cpu/common.c              | 8 ++++----
 arch/x86/kernel/cpu/resctrl/pseudo_lock.c | 4 ++--
 arch/x86/kernel/cpu/resctrl/rdtgroup.c    | 2 +-
 arch/x86/kernel/cpu/umwait.c              | 4 ++--
 arch/x86/kernel/kvm.c                     | 2 +-
 9 files changed, 16 insertions(+), 16 deletions(-)

diff --git a/arch/x86/hyperv/hv_apic.c b/arch/x86/hyperv/hv_apic.c
index c450e67cb0a4..4d617ee59377 100644
--- a/arch/x86/hyperv/hv_apic.c
+++ b/arch/x86/hyperv/hv_apic.c
@@ -75,10 +75,10 @@ static void hv_apic_write(u32 reg, u32 val)
 {
 	switch (reg) {
 	case APIC_EOI:
-		wrmsr(HV_X64_MSR_EOI, val, 0);
+		wrmsrq(HV_X64_MSR_EOI, val);
 		break;
 	case APIC_TASKPRI:
-		wrmsr(HV_X64_MSR_TPR, val, 0);
+		wrmsrq(HV_X64_MSR_TPR, val);
 		break;
 	default:
 		native_apic_mem_write(reg, val);
@@ -92,7 +92,7 @@ static void hv_apic_eoi_write(void)
 	if (hvp && (xchg(&hvp->apic_assist, 0) & 0x1))
 		return;
 
-	wrmsr(HV_X64_MSR_EOI, APIC_EOI_ACK, 0);
+	wrmsrq(HV_X64_MSR_EOI, APIC_EOI_ACK);
 }
 
 static bool cpu_is_self(int cpu)
diff --git a/arch/x86/include/asm/apic.h b/arch/x86/include/asm/apic.h
index 0174dd548327..68e10e30fe9b 100644
--- a/arch/x86/include/asm/apic.h
+++ b/arch/x86/include/asm/apic.h
@@ -209,7 +209,7 @@ static inline void native_apic_msr_write(u32 reg, u32 v)
 	    reg == APIC_LVR)
 		return;
 
-	wrmsr(APIC_BASE_MSR + (reg >> 4), v, 0);
+	wrmsrq(APIC_BASE_MSR + (reg >> 4), v);
 }
 
 static inline void native_apic_msr_eoi(void)
diff --git a/arch/x86/include/asm/switch_to.h b/arch/x86/include/asm/switch_to.h
index 4f21df7af715..499b1c15cc8b 100644
--- a/arch/x86/include/asm/switch_to.h
+++ b/arch/x86/include/asm/switch_to.h
@@ -61,7 +61,7 @@ static inline void refresh_sysenter_cs(struct thread_struct *thread)
 		return;
 
 	this_cpu_write(cpu_tss_rw.x86_tss.ss1, thread->sysenter_cs);
-	wrmsr(MSR_IA32_SYSENTER_CS, thread->sysenter_cs, 0);
+	wrmsrq(MSR_IA32_SYSENTER_CS, thread->sysenter_cs);
 }
 #endif
 
diff --git a/arch/x86/kernel/cpu/amd.c b/arch/x86/kernel/cpu/amd.c
index 0bbe79862aa6..5e28ec2fe4e8 100644
--- a/arch/x86/kernel/cpu/amd.c
+++ b/arch/x86/kernel/cpu/amd.c
@@ -1200,7 +1200,7 @@ void amd_set_dr_addr_mask(unsigned long mask, unsigned int dr)
 	if (per_cpu(amd_dr_addr_mask, cpu)[dr] == mask)
 		return;
 
-	wrmsr(amd_msr_dr_addr_masks[dr], mask, 0);
+	wrmsrq(amd_msr_dr_addr_masks[dr], mask);
 	per_cpu(amd_dr_addr_mask, cpu)[dr] = mask;
 }
 
diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c
index cefc99990bde..ef9751d577c3 100644
--- a/arch/x86/kernel/cpu/common.c
+++ b/arch/x86/kernel/cpu/common.c
@@ -1982,9 +1982,9 @@ void enable_sep_cpu(void)
 	 */
 
 	tss->x86_tss.ss1 = __KERNEL_CS;
-	wrmsr(MSR_IA32_SYSENTER_CS, tss->x86_tss.ss1, 0);
-	wrmsr(MSR_IA32_SYSENTER_ESP, (unsigned long)(cpu_entry_stack(cpu) + 1), 0);
-	wrmsr(MSR_IA32_SYSENTER_EIP, (unsigned long)entry_SYSENTER_32, 0);
+	wrmsrq(MSR_IA32_SYSENTER_CS, tss->x86_tss.ss1);
+	wrmsrq(MSR_IA32_SYSENTER_ESP, (unsigned long)(cpu_entry_stack(cpu) + 1));
+	wrmsrq(MSR_IA32_SYSENTER_EIP, (unsigned long)entry_SYSENTER_32);
 
 	put_cpu();
 }
@@ -2198,7 +2198,7 @@ static inline void setup_getcpu(int cpu)
 	struct desc_struct d = { };
 
 	if (boot_cpu_has(X86_FEATURE_RDTSCP) || boot_cpu_has(X86_FEATURE_RDPID))
-		wrmsr(MSR_TSC_AUX, cpudata, 0);
+		wrmsrq(MSR_TSC_AUX, cpudata);
 
 	/* Store CPU and node number in limit. */
 	d.limit0 = cpudata;
diff --git a/arch/x86/kernel/cpu/resctrl/pseudo_lock.c b/arch/x86/kernel/cpu/resctrl/pseudo_lock.c
index 324bd4919300..1190c48a16b2 100644
--- a/arch/x86/kernel/cpu/resctrl/pseudo_lock.c
+++ b/arch/x86/kernel/cpu/resctrl/pseudo_lock.c
@@ -905,7 +905,7 @@ int resctrl_arch_measure_cycles_lat_fn(void *_plr)
 	 * Disable hardware prefetchers.
 	 */
 	rdmsr(MSR_MISC_FEATURE_CONTROL, saved_low, saved_high);
-	wrmsr(MSR_MISC_FEATURE_CONTROL, prefetch_disable_bits, 0x0);
+	wrmsrq(MSR_MISC_FEATURE_CONTROL, prefetch_disable_bits);
 	mem_r = READ_ONCE(plr->kmem);
 	/*
 	 * Dummy execute of the time measurement to load the needed
@@ -1001,7 +1001,7 @@ static int measure_residency_fn(struct perf_event_attr *miss_attr,
 	 * Disable hardware prefetchers.
 	 */
 	rdmsr(MSR_MISC_FEATURE_CONTROL, saved_low, saved_high);
-	wrmsr(MSR_MISC_FEATURE_CONTROL, prefetch_disable_bits, 0x0);
+	wrmsrq(MSR_MISC_FEATURE_CONTROL, prefetch_disable_bits);
 
 	/* Initialize rest of local variables */
 	/*
diff --git a/arch/x86/kernel/cpu/resctrl/rdtgroup.c b/arch/x86/kernel/cpu/resctrl/rdtgroup.c
index 26f4d820ee6e..2ec6d7d843c5 100644
--- a/arch/x86/kernel/cpu/resctrl/rdtgroup.c
+++ b/arch/x86/kernel/cpu/resctrl/rdtgroup.c
@@ -1707,7 +1707,7 @@ void resctrl_arch_mon_event_config_write(void *_config_info)
 		pr_warn_once("Invalid event id %d\n", config_info->evtid);
 		return;
 	}
-	wrmsr(MSR_IA32_EVT_CFG_BASE + index, config_info->mon_config, 0);
+	wrmsrq(MSR_IA32_EVT_CFG_BASE + index, config_info->mon_config);
 }
 
 static void mbm_config_write_domain(struct rdt_resource *r,
diff --git a/arch/x86/kernel/cpu/umwait.c b/arch/x86/kernel/cpu/umwait.c
index 0050eae153bb..933fcd7ff250 100644
--- a/arch/x86/kernel/cpu/umwait.c
+++ b/arch/x86/kernel/cpu/umwait.c
@@ -33,7 +33,7 @@ static DEFINE_MUTEX(umwait_lock);
 static void umwait_update_control_msr(void * unused)
 {
 	lockdep_assert_irqs_disabled();
-	wrmsr(MSR_IA32_UMWAIT_CONTROL, READ_ONCE(umwait_control_cached), 0);
+	wrmsrq(MSR_IA32_UMWAIT_CONTROL, READ_ONCE(umwait_control_cached));
 }
 
 /*
@@ -71,7 +71,7 @@ static int umwait_cpu_offline(unsigned int cpu)
 	 * the original control MSR value in umwait_init(). So there
 	 * is no race condition here.
 	 */
-	wrmsr(MSR_IA32_UMWAIT_CONTROL, orig_umwait_control_cached, 0);
+	wrmsrq(MSR_IA32_UMWAIT_CONTROL, orig_umwait_control_cached);
 
 	return 0;
 }
diff --git a/arch/x86/kernel/kvm.c b/arch/x86/kernel/kvm.c
index 44a45df7200a..bc9d21d7395f 100644
--- a/arch/x86/kernel/kvm.c
+++ b/arch/x86/kernel/kvm.c
@@ -399,7 +399,7 @@ static void kvm_disable_steal_time(void)
 	if (!has_steal_clock)
 		return;
 
-	wrmsr(MSR_KVM_STEAL_TIME, 0, 0);
+	wrmsrq(MSR_KVM_STEAL_TIME, 0);
 }
 
 static u64 kvm_steal_clock(int cpu)
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Fri Apr 25 08:35:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 08:35:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.967326.1357264 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8EXD-0006lV-Mj; Fri, 25 Apr 2025 08:35:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 967326.1357264; Fri, 25 Apr 2025 08:35: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 1u8EXD-0006k4-Cu; Fri, 25 Apr 2025 08:35:47 +0000
Received: by outflank-mailman (input) for mailman id 967326;
 Fri, 25 Apr 2025 08:35: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=Tuhi=XL=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u8EXA-0002sy-Dy
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 08:35:44 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 45f5188d-21b0-11f0-9eb3-5ba50f476ded;
 Fri, 25 Apr 2025 10:35:43 +0200 (CEST)
Received: from terminus.zytor.com (terminus.zytor.com
 [IPv6:2607:7c80:54:3:0:0:0:136]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53P8Yg5c2390085
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Fri, 25 Apr 2025 01:35:16 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 45f5188d-21b0-11f0-9eb3-5ba50f476ded
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53P8Yg5c2390085
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745570118;
	bh=PGgDVUVp5WEsZGmkrE1cE9ZmxybTvIy441YCsSnZyG8=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=f0nyTqFFxoNNT5zdxXz0wAG2oDnQQHR2TITjrl4/WZHGQrZGNiF1OZYbax0C2iuIx
	 CH2XXrL5uYNMptan27zhYOojgtxgK72O5RWOTmV95xgIIpIT3kSr62AOOXra9uRF6E
	 kTbsurThw7Iy4DVFR1xhvN89VcU9gmp1/l4hhWaLt3TSW9XbKcovRa9h+mP/NfqMQv
	 Pry2fZZ/3lQkv2R/rt1kUSU/HD8Pxr3Y+EPze/8OS2f48IUTb7v1i2RJSfxC9aW9TR
	 2obaMyl6yz37n/hRq5aMI5eGmJZogK/gHDlJVsHJ/MBZRP2hgoN7z0zm+fw0egbklR
	 7ZKW0NW9geX6g==
From: "Xin Li (Intel)" <xin@zytor.com>
To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
        linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
        netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        acme@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com,
        peterz@infradead.org, namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com,
        dapeng1.mi@linux.intel.com
Subject: [PATCH v3 14/14] x86/msr: Change the function type of native_read_msr_safe()
Date: Fri, 25 Apr 2025 01:34:37 -0700
Message-ID: <20250425083442.2390017-15-xin@zytor.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250425083442.2390017-1-xin@zytor.com>
References: <20250425083442.2390017-1-xin@zytor.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Modify the function type of native_read_msr_safe() to:

    int native_read_msr_safe(u32 msr, u64 *val)

This change makes the function return an error code instead of the
MSR value, aligning it with the type of native_write_msr_safe().
Consequently, their callers can check the results in the same way.

While at it, convert leftover MSR data type "unsigned int" to u32.

Signed-off-by: Xin Li (Intel) <xin@zytor.com>
---
 arch/x86/include/asm/msr.h            | 21 +++++++++++----------
 arch/x86/include/asm/paravirt.h       | 19 ++++++++-----------
 arch/x86/include/asm/paravirt_types.h |  6 +++---
 arch/x86/kvm/svm/svm.c                | 19 +++++++------------
 arch/x86/xen/enlighten_pv.c           | 13 ++++++++-----
 arch/x86/xen/pmu.c                    | 14 ++++++++------
 6 files changed, 45 insertions(+), 47 deletions(-)

diff --git a/arch/x86/include/asm/msr.h b/arch/x86/include/asm/msr.h
index 0392b9596107..e7ee51ccd82e 100644
--- a/arch/x86/include/asm/msr.h
+++ b/arch/x86/include/asm/msr.h
@@ -130,18 +130,22 @@ static inline u64 native_read_msr(u32 msr)
 	return val;
 }
 
-static inline u64 native_read_msr_safe(u32 msr, int *err)
+static inline int native_read_msr_safe(u32 msr, u64 *p)
 {
+	int err;
 	DECLARE_ARGS(val, low, high);
 
 	asm volatile("1: rdmsr ; xor %[err],%[err]\n"
 		     "2:\n\t"
 		     _ASM_EXTABLE_TYPE_REG(1b, 2b, EX_TYPE_RDMSR_SAFE, %[err])
-		     : [err] "=r" (*err), EAX_EDX_RET(val, low, high)
+		     : [err] "=r" (err), EAX_EDX_RET(val, low, high)
 		     : "c" (msr));
 	if (tracepoint_enabled(read_msr))
-		do_trace_read_msr(msr, EAX_EDX_VAL(val, low, high), *err);
-	return EAX_EDX_VAL(val, low, high);
+		do_trace_read_msr(msr, EAX_EDX_VAL(val, low, high), err);
+
+	*p = EAX_EDX_VAL(val, low, high);
+
+	return err;
 }
 
 /* Can be uninlined because referenced by paravirt */
@@ -221,8 +225,8 @@ static inline int wrmsrq_safe(u32 msr, u64 val)
 /* rdmsr with exception handling */
 #define rdmsr_safe(msr, low, high)				\
 ({								\
-	int __err;						\
-	u64 __val = native_read_msr_safe((msr), &__err);	\
+	u64 __val;						\
+	int __err = native_read_msr_safe((msr), &__val);	\
 	(*low) = (u32)__val;					\
 	(*high) = (u32)(__val >> 32);				\
 	__err;							\
@@ -230,10 +234,7 @@ static inline int wrmsrq_safe(u32 msr, u64 val)
 
 static inline int rdmsrq_safe(u32 msr, u64 *p)
 {
-	int err;
-
-	*p = native_read_msr_safe(msr, &err);
-	return err;
+	return native_read_msr_safe(msr, p);
 }
 
 static __always_inline u64 rdpmc(int counter)
diff --git a/arch/x86/include/asm/paravirt.h b/arch/x86/include/asm/paravirt.h
index edf23bde367e..03f680d1057a 100644
--- a/arch/x86/include/asm/paravirt.h
+++ b/arch/x86/include/asm/paravirt.h
@@ -175,7 +175,7 @@ static inline void __write_cr4(unsigned long x)
 	PVOP_VCALL1(cpu.write_cr4, x);
 }
 
-static inline u64 paravirt_read_msr(unsigned msr)
+static inline u64 paravirt_read_msr(u32 msr)
 {
 	return PVOP_CALL1(u64, cpu.read_msr, msr);
 }
@@ -185,9 +185,9 @@ static inline void paravirt_write_msr(u32 msr, u64 val)
 	PVOP_VCALL2(cpu.write_msr, msr, val);
 }
 
-static inline u64 paravirt_read_msr_safe(unsigned msr, int *err)
+static inline int paravirt_read_msr_safe(u32 msr, u64 *val)
 {
-	return PVOP_CALL2(u64, cpu.read_msr_safe, msr, err);
+	return PVOP_CALL2(int, cpu.read_msr_safe, msr, val);
 }
 
 static inline int paravirt_write_msr_safe(u32 msr, u64 val)
@@ -225,19 +225,16 @@ static inline int wrmsrq_safe(u32 msr, u64 val)
 /* rdmsr with exception handling */
 #define rdmsr_safe(msr, a, b)				\
 ({							\
-	int _err;					\
-	u64 _l = paravirt_read_msr_safe(msr, &_err);	\
+	u64 _l;						\
+	int _err = paravirt_read_msr_safe((msr), &_l);	\
 	(*a) = (u32)_l;					\
-	(*b) = _l >> 32;				\
+	(*b) = (u32)(_l >> 32);				\
 	_err;						\
 })
 
-static inline int rdmsrq_safe(unsigned msr, u64 *p)
+static __always_inline int rdmsrq_safe(u32 msr, u64 *p)
 {
-	int err;
-
-	*p = paravirt_read_msr_safe(msr, &err);
-	return err;
+	return paravirt_read_msr_safe(msr, p);
 }
 
 static __always_inline u64 rdpmc(int counter)
diff --git a/arch/x86/include/asm/paravirt_types.h b/arch/x86/include/asm/paravirt_types.h
index 78777b78da12..b08b9d3122d6 100644
--- a/arch/x86/include/asm/paravirt_types.h
+++ b/arch/x86/include/asm/paravirt_types.h
@@ -91,14 +91,14 @@ struct pv_cpu_ops {
 		      unsigned int *ecx, unsigned int *edx);
 
 	/* Unsafe MSR operations.  These will warn or panic on failure. */
-	u64 (*read_msr)(unsigned int msr);
+	u64 (*read_msr)(u32 msr);
 	void (*write_msr)(u32 msr, u64 val);
 
 	/*
 	 * Safe MSR operations.
-	 * read sets err to 0 or -EIO.  write returns 0 or -EIO.
+	 * Returns 0 or -EIO.
 	 */
-	u64 (*read_msr_safe)(unsigned int msr, int *err);
+	int (*read_msr_safe)(u32 msr, u64 *val);
 	int (*write_msr_safe)(u32 msr, u64 val);
 
 	u64 (*read_pmc)(int counter);
diff --git a/arch/x86/kvm/svm/svm.c b/arch/x86/kvm/svm/svm.c
index 4ef9978dce70..838606f784c9 100644
--- a/arch/x86/kvm/svm/svm.c
+++ b/arch/x86/kvm/svm/svm.c
@@ -475,15 +475,13 @@ static void svm_inject_exception(struct kvm_vcpu *vcpu)
 
 static void svm_init_erratum_383(void)
 {
-	int err;
 	u64 val;
 
 	if (!static_cpu_has_bug(X86_BUG_AMD_TLB_MMATCH))
 		return;
 
 	/* Use _safe variants to not break nested virtualization */
-	val = native_read_msr_safe(MSR_AMD64_DC_CFG, &err);
-	if (err)
+	if (native_read_msr_safe(MSR_AMD64_DC_CFG, &val))
 		return;
 
 	val |= (1ULL << 47);
@@ -648,13 +646,12 @@ static int svm_enable_virtualization_cpu(void)
 	 * erratum is present everywhere).
 	 */
 	if (cpu_has(&boot_cpu_data, X86_FEATURE_OSVW)) {
-		uint64_t len, status = 0;
+		u64 len, status = 0;
 		int err;
 
-		len = native_read_msr_safe(MSR_AMD64_OSVW_ID_LENGTH, &err);
+		err = native_read_msr_safe(MSR_AMD64_OSVW_ID_LENGTH, &len);
 		if (!err)
-			status = native_read_msr_safe(MSR_AMD64_OSVW_STATUS,
-						      &err);
+			err = native_read_msr_safe(MSR_AMD64_OSVW_STATUS, &status);
 
 		if (err)
 			osvw_status = osvw_len = 0;
@@ -2145,14 +2142,13 @@ static int ac_interception(struct kvm_vcpu *vcpu)
 
 static bool is_erratum_383(void)
 {
-	int err, i;
+	int i;
 	u64 value;
 
 	if (!erratum_383_found)
 		return false;
 
-	value = native_read_msr_safe(MSR_IA32_MC0_STATUS, &err);
-	if (err)
+	if (native_read_msr_safe(MSR_IA32_MC0_STATUS, &value))
 		return false;
 
 	/* Bit 62 may or may not be set for this mce */
@@ -2165,8 +2161,7 @@ static bool is_erratum_383(void)
 	for (i = 0; i < 6; ++i)
 		native_write_msr_safe(MSR_IA32_MCx_STATUS(i), 0);
 
-	value = native_read_msr_safe(MSR_IA32_MCG_STATUS, &err);
-	if (!err) {
+	if (!native_read_msr_safe(MSR_IA32_MCG_STATUS, &value)) {
 		value &= ~(1ULL << 2);
 		native_write_msr_safe(MSR_IA32_MCG_STATUS, value);
 	}
diff --git a/arch/x86/xen/enlighten_pv.c b/arch/x86/xen/enlighten_pv.c
index c067d1e8a39c..0b2f5e679026 100644
--- a/arch/x86/xen/enlighten_pv.c
+++ b/arch/x86/xen/enlighten_pv.c
@@ -1086,7 +1086,7 @@ static void xen_write_cr4(unsigned long cr4)
 	native_write_cr4(cr4);
 }
 
-static u64 xen_do_read_msr(unsigned int msr, int *err)
+static u64 xen_do_read_msr(u32 msr, int *err)
 {
 	u64 val = 0;	/* Avoid uninitialized value for safe variant. */
 
@@ -1094,7 +1094,7 @@ static u64 xen_do_read_msr(unsigned int msr, int *err)
 		return val;
 
 	if (err)
-		val = native_read_msr_safe(msr, err);
+		*err = native_read_msr_safe(msr, &val);
 	else
 		val = native_read_msr(msr);
 
@@ -1159,9 +1159,12 @@ static void xen_do_write_msr(u32 msr, u64 val, int *err)
 	}
 }
 
-static u64 xen_read_msr_safe(unsigned int msr, int *err)
+static int xen_read_msr_safe(u32 msr, u64 *val)
 {
-	return xen_do_read_msr(msr, err);
+	int err;
+
+	*val = xen_do_read_msr(msr, &err);
+	return err;
 }
 
 static int xen_write_msr_safe(u32 msr, u64 val)
@@ -1173,7 +1176,7 @@ static int xen_write_msr_safe(u32 msr, u64 val)
 	return err;
 }
 
-static u64 xen_read_msr(unsigned int msr)
+static u64 xen_read_msr(u32 msr)
 {
 	int err;
 
diff --git a/arch/x86/xen/pmu.c b/arch/x86/xen/pmu.c
index 6bee83018694..3e704094c97c 100644
--- a/arch/x86/xen/pmu.c
+++ b/arch/x86/xen/pmu.c
@@ -317,11 +317,12 @@ static u64 xen_amd_read_pmc(int counter)
 	uint8_t xenpmu_flags = get_xenpmu_flags();
 
 	if (!xenpmu_data || !(xenpmu_flags & XENPMU_IRQ_PROCESSING)) {
-		uint32_t msr;
-		int err;
+		u32 msr;
+		u64 val;
 
 		msr = amd_counters_base + (counter * amd_msr_step);
-		return native_read_msr_safe(msr, &err);
+		native_read_msr_safe(msr, &val);
+		return val;
 	}
 
 	ctxt = &xenpmu_data->pmu.c.amd;
@@ -338,15 +339,16 @@ static u64 xen_intel_read_pmc(int counter)
 	uint8_t xenpmu_flags = get_xenpmu_flags();
 
 	if (!xenpmu_data || !(xenpmu_flags & XENPMU_IRQ_PROCESSING)) {
-		uint32_t msr;
-		int err;
+		u32 msr;
+		u64 val;
 
 		if (counter & (1 << INTEL_PMC_TYPE_SHIFT))
 			msr = MSR_CORE_PERF_FIXED_CTR0 + (counter & 0xffff);
 		else
 			msr = MSR_IA32_PERFCTR0 + counter;
 
-		return native_read_msr_safe(msr, &err);
+		native_read_msr_safe(msr, &val);
+		return val;
 	}
 
 	ctxt = &xenpmu_data->pmu.c.intel;
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Fri Apr 25 08:43:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 08:43:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.967483.1357278 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8Ef2-0004pk-Ie; Fri, 25 Apr 2025 08:43:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 967483.1357278; Fri, 25 Apr 2025 08:43: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 1u8Ef2-0004pW-Df; Fri, 25 Apr 2025 08:43:52 +0000
Received: by outflank-mailman (input) for mailman id 967483;
 Fri, 25 Apr 2025 08:43: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=AYju=XL=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u8EXw-0002sy-PX
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 08:36:32 +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 5b64e04d-21b0-11f0-9eb3-5ba50f476ded;
 Fri, 25 Apr 2025 10:36:19 +0200 (CEST)
Received: by mail-pl1-x633.google.com with SMTP id
 d9443c01a7336-22d95f0dda4so30166555ad.2
 for <xen-devel@lists.xenproject.org>; Fri, 25 Apr 2025 01:36:19 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 d9443c01a7336-22db4dbcf7dsm26850885ad.69.2025.04.25.01.36.15
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 25 Apr 2025 01:36: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: 5b64e04d-21b0-11f0-9eb3-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745570177; x=1746174977; 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=X/GxJBsK6n1J97dBzbLBs/WDP7IrILK5BdDKmQjHdxk=;
        b=tRDabKjrxQu4z5sa9gu+r1qx0cPGrgLSGFjrWurpuAAiJER5y/tqoztomnO69AzXag
         wCz2N4Mho4JXKqRdjjH7G/lF8ibA9oavxJPSJcjOXZCduXmbD8HOeQgea4YCs90i2JzR
         DXP2NmgQLmBiwQYW1rpIBTZcqAeaWsNLIh2S4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745570177; x=1746174977;
        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=X/GxJBsK6n1J97dBzbLBs/WDP7IrILK5BdDKmQjHdxk=;
        b=hGVgnoaH9Y+B079fIQUGMEbXT34BsRuE3A9EiK/8u6dATDtnt1rpNAm8ZRQq+cLi8R
         wH6yO9Gxw2wk5rqKbcIy2xUAcrRIyful3aKrAnL+srJDYNyEK1qn3v6HAoGk5H5HPcvi
         7CGONdtk7eyMYhO8Pq4A54/EgeSyNKYzuu3QRIcptXhQEjWdii5Bu8OfIgOIM7G4Z9P5
         p69Osn+QcTXKPTw6e7ZuWZX3aBglXNEectMsYQhQLMdCfCbq6lUGNIDmmp6HsfjL6wBK
         dbaQI5hxMJjwkXSHjXF0PmYGgcMCa0Gy3bGLznftNeBYCT7FfAnyFVzrEdODS0qOflRU
         zQiQ==
X-Gm-Message-State: AOJu0YxkJsQvZvwbc7zHB+8s/lPif1s/0Ke4qX3xElJgpVC/OU+Baem2
	kKbX0LPlopAz6qwUFB+FiCXJAMZrIlzuXa/ic0prtt02VZE2ezTm0C6z9t3N4v6r6OTnbyc1DiL
	n
X-Gm-Gg: ASbGnct+zmfhhm2VM/LiMJKZ7ax3f/x6xlYOabYNQOQIC/D2Y0jbc5nQkaG/WXTESCN
	CUandI01GGe79wPZdl6pxihZU6JHnQ/515HhmsJj53wyzwtfLfdkKcT/RL2XRhVqP7ZnyBBqOeL
	YJuXJTAWnQiWk/OJejgmiqiGRTq+nWivRNipCiXZB3TJz7SDh02ilJXomql7jm2KuEdNulxGdDd
	ucFd6xb5DE5RgoivdgRao0HNoECYw6EIury8PulpHMtIqK9zovllnMPLOlQEbvAFxY1XTI6UCes
	rZn5VoRobX9LtPl6nnFG0SrBRmjqlMMv7P0UCRQcZ6wOkw==
X-Google-Smtp-Source: AGHT+IG0hORC7Qgprc8WyLk7gcKt5kiWkxcb19M92Xw81eKcPgLZ4oYC5fW9k0hyoqJqSkAFA8FMuQ==
X-Received: by 2002:a17:902:ce10:b0:224:13a4:d61d with SMTP id d9443c01a7336-22dbf5edd9fmr23356215ad.23.1745570177397;
        Fri, 25 Apr 2025 01:36:17 -0700 (PDT)
Date: Fri, 25 Apr 2025 10:36:11 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jason Andryuk <jason.andryuk@amd.com>
Cc: xen-devel@lists.xenproject.org
Subject: Re: [PATCH v2] xen/vpci: Fix msix existing mapping printk
Message-ID: <aAtJe-w-oJDxuxZJ@macbook.lan>
References: <20250424212326.151403-1-jason.andryuk@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <20250424212326.151403-1-jason.andryuk@amd.com>

On Thu, Apr 24, 2025 at 05:23:26PM -0400, Jason Andryuk wrote:
> The format string lacks a space, so mfn and type run together:
> (XEN) d0v0 0000:06:00.7: existing mapping (mfn: 753037type: 0) at 0x1 clobbers MSIX MMIO area
> 
> Add a space.  Additionally, move the format string to a single long line
> to improve grep-ability.
> 
> Fixes: 677053fac17a ("vpci/msix: carve p2m hole for MSIX MMIO regions")
> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>

Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri Apr 25 08:54:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 08:54:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.967501.1357286 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8EpW-00084N-Dq; Fri, 25 Apr 2025 08:54:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 967501.1357286; Fri, 25 Apr 2025 08:54: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 1u8EpW-00084G-Az; Fri, 25 Apr 2025 08:54:42 +0000
Received: by outflank-mailman (input) for mailman id 967501;
 Fri, 25 Apr 2025 08: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=ZJ1s=XL=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u8EpU-00084A-Rm
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 08:54:40 +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 e6f0536a-21b2-11f0-9ffb-bf95429c2676;
 Fri, 25 Apr 2025 10:54:31 +0200 (CEST)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-43d07ca6a80so8470035e9.1
 for <xen-devel@lists.xenproject.org>; Fri, 25 Apr 2025 01:54:38 -0700 (PDT)
Received: from [10.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-440a538f4e3sm17053495e9.36.2025.04.25.01.54.37
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 25 Apr 2025 01:54:37 -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: e6f0536a-21b2-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745571278; x=1746176078; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=kX0GFG7ueQSP9itJd/oJ/9mcPcF7pU0wIEBIx0MCoQs=;
        b=aKV33tS9JpkXn1+mAjB2f3dRNwvvO2zZlo6sYkY0oVSFFuRSAxr8Qmm52vLlCwoikK
         XFJQVjR7lN//S/FfSMQvf5i5G2zHHzgoFt2ed/HEPg9C5gzdZVk911UXOreQMDzW+xet
         1yqXCQMxaKElSVdlLpMOTd+nh1lrtzAuWsk4xkimoJPM8M2CkviAfi3Mjf2A44qkCpqc
         IF8StrD5r5ZvNzCe6SKiZr7DeUcWYEZBwtHIT6QIwEzjnKMtyz6aa+wUbc/l43ght5d7
         oPCvhZ5dmwRR5JzEVRGLTcQvK+oDp/K+vHdMwxtdd0deU+YJNQyK5b5qk6KHq8rbwIvM
         NAeA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745571278; x=1746176078;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=kX0GFG7ueQSP9itJd/oJ/9mcPcF7pU0wIEBIx0MCoQs=;
        b=nPaaiK7mtwYAo8NsK1IXX7JVN1gYejjtVw/DTPIZBAa+OLdTvQLOyRw73BZsh53AGH
         96V9WMdHEW4D1EeQk2+Cd/8TDEhZdvnG9FZsOeCQUlD1v8FUDgSO3SlYFaw/hpUsC7Cv
         7GRtZtI65CF5TWQnc7PUuDhThHtjFKiAmNYbIZ7Jt7a6N0sm8T9h1cX+gKeR0yyhlSXF
         ZbcfjxZ04TzRI5Ji/3BWaaIBYS9LsjWRT7gS974EuebaJxtveSV4fXnuXIUzC32Ts9zd
         Zz4Tw5xXLJ6ShQLHmojOBAYLTJfvSgFF7Q2/masqcfOjmqakS701laZwGVF3Xi3Fb0tR
         xlIQ==
X-Gm-Message-State: AOJu0YwleUDFmlSi+Ahl1d6NyTV4UgfoTShkCJL/V7SsCAzTB/lkqNBu
	+/4SoJ582/SxTcak8qLx2nJSwaZIk1n8CKiOL9sUP131kFVV0zX99+Pi/Is+OQ==
X-Gm-Gg: ASbGncu1Anzn6Fr2IUAaLhe+vYUx/KPyO0RlEwVn8MvvsEGOQ98IoIC8Ycbn2Oed2mv
	r2I0qv7ZPZe/7AGxAuhqor/aecY9091aXIDdib5vrPV/D5Q6NhtN9i5CWiJUD6AU8gNUK6pJfyq
	Ay82SeyYXXk4lnLacry1WZYKFIOOpAbu4atnUnpzaJtACmme9ClN2auy2nRSDV6zFPnpTuz2Ie3
	B0W7YK3zN5mrYLpjbkYLxJyUtLTAHgHuPZtU29UDB0YD8zCHKkp8qcFCHjdN1gxB+1Us/tXP/VP
	Mu1KPLKSX2GYIe/wZXSTnUkA2/+I0FAJ0ziJz50Hi4TiDsYtgIBKwnvPSqI1xKJDvMf9BbCoUan
	iHYEaWHF+s5fJsw+qUqtIlfaETg==
X-Google-Smtp-Source: AGHT+IGcy8BRnlyg7JqobhDxzSd8Voi85ZnpHIqY/6bP3jExi4RDiYkLBVPW5xZ8BSn+s2lJaN3etQ==
X-Received: by 2002:a05:600c:1f82:b0:43d:934:ea97 with SMTP id 5b1f17b1804b1-440a66ab23bmr10158525e9.27.1745571278156;
        Fri, 25 Apr 2025 01:54:38 -0700 (PDT)
Message-ID: <f425b237-dd89-4800-96c7-08072a3f67e3@suse.com>
Date: Fri, 25 Apr 2025 10:54:36 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen: fix buffer over-read in bitmap_to_xenctl_bitmap()
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: xen-devel@lists.xenproject.org, Anthony PERARD
 <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>
References: <20250424103841.94828-1-roger.pau@citrix.com>
 <041d4bd5-962c-4600-b436-0ec214a6c6ca@citrix.com>
 <aAo250IiFOC1Hggg@macbook.lan>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <aAo250IiFOC1Hggg@macbook.lan>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 24.04.2025 15:04, Roger Pau Monné wrote:
> On Thu, Apr 24, 2025 at 12:41:43PM +0100, Andrew Cooper wrote:
>> On 24/04/2025 11:38 am, Roger Pau Monne wrote:
>>> There's an off-by-one when calculating the last byte in the input array to
>>> bitmap_to_xenctl_bitmap(), which leads to bitmaps with sizes multiple of 8
>>> to over-read and incorrectly use a byte past the end of the array.
>>
>> /sigh
>>
>>> While there also ensure that bitmap_to_xenctl_bitmap() is not called with a
>>> bitmap of 0 length.
>>>
>>> Fixes: 288c4641c80d ('xen: simplify bitmap_to_xenctl_bitmap for little endian')
>>> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
>>
>> You ought to note that this is only not getting an XSA because
>> 288c4641c80d isn't in a released Xen yet.
> 
> Yeah, I did explicitly check this wasn't backported to any stable
> branches.
> 
>>> ---
>>>  xen/common/bitmap.c | 8 +++++++-
>>>  1 file changed, 7 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/xen/common/bitmap.c b/xen/common/bitmap.c
>>> index bf1a7fd91e36..415d6bc074f6 100644
>>> --- a/xen/common/bitmap.c
>>> +++ b/xen/common/bitmap.c
>>> @@ -369,6 +369,12 @@ int bitmap_to_xenctl_bitmap(struct xenctl_bitmap *xenctl_bitmap,
>>>      const uint8_t *bytemap;
>>>      uint8_t last, *buf = NULL;
>>>  
>>> +    if ( !nbits )
>>> +    {
>>> +	ASSERT_UNREACHABLE();
>>> +	return -EILSEQ;
>>> +    }
>>
>> I don't see any hypercalls performing a bits==0 check, so I expect this
>> is reachable.
> 
> bitmap_to_xenctl_bitmap() has just two callers, one passes nr_cpu_ids,
> the other MAX_NUMNODES.  I think there are no callers that pass 0,
> much less from hypercall provided values.

Still I don't think there should be an assertion here, not even an error.
As much as memcpy(x, y, 0) is okay, it ought to be okay to invoke this
function for entirely void bitmaps.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Apr 25 09:02:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 09:02:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.967513.1357297 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8Ex8-0001Hx-5s; Fri, 25 Apr 2025 09:02:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 967513.1357297; Fri, 25 Apr 2025 09: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 1u8Ex8-0001Hq-2C; Fri, 25 Apr 2025 09:02:34 +0000
Received: by outflank-mailman (input) for mailman id 967513;
 Fri, 25 Apr 2025 09: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=AYju=XL=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u8Ex6-0001Hh-Ka
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 09:02:32 +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 0016cc28-21b4-11f0-9ffb-bf95429c2676;
 Fri, 25 Apr 2025 11:02:22 +0200 (CEST)
Received: by mail-ej1-x634.google.com with SMTP id
 a640c23a62f3a-ac2aeada833so393259866b.0
 for <xen-devel@lists.xenproject.org>; Fri, 25 Apr 2025 02:02:30 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 a640c23a62f3a-ace6e586bc6sm103107666b.75.2025.04.25.02.02.29
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 25 Apr 2025 02:02:29 -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: 0016cc28-21b4-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745571750; x=1746176550; 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=KP1QobxFM1EW/SEc4NqvRxI/iCT2aUT+lwIh2ZrFRAk=;
        b=ajQiESIMLArccuiMLN0e242NW45xnYxHLxV0JaO4Mslc9VeeDkJm8euATYJWk9vFTb
         akHEphJ0X6esW0YDxW7jGZ8+NRonHDlweuqaS1JJUJLBSv2Vqmy44RlxWXSqcfX0Xzah
         ORzG/j+BbwFRb+6MY7daMEMKQn3e2lrGPGLpo=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745571750; x=1746176550;
        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=KP1QobxFM1EW/SEc4NqvRxI/iCT2aUT+lwIh2ZrFRAk=;
        b=WSyiaX9JusOeXGmXcXDobaiRHIbm+QpmkqCuvSr/BteTuvT3kbAseidm+OX2nbLggY
         sxhiFZde8XSIjthpYbKbQxmYzgQQAuNGq2puZ7aCHEYhdLLCwqAbaVnCxEzKhhu67Kax
         T/nDSqoPBUy55fg9HdVRpdfRJHJwHY8fDozp6l+4do25PpSMe30jc3rHNhz6OSREdMK3
         L8FkbVUwt1IOEN9k9rt0FGBa7u8aOtOK+D+cE3SOjh8R0ZitMaQ1fH2HaL9R+rY0dJYg
         cZR5rHSC9g5AJ0LDElNWSbkRKw7uLJSdCwPrPZmghpDUm1EBN+P79rGJ8D0K6/mwwlZ5
         LCog==
X-Forwarded-Encrypted: i=1; AJvYcCW5kxaP0NHThhhPRPr2D+FKajtJIBXDnsrH9VR4gToBcIYGHQbORborRxk92gtzBbLYL0RWRw4D4mQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw2CSVva0r4RXmH5GLOM0eSRCVSLv5/CnUZJwcgoGY1xGff8lUI
	BVrszPIVBb5UXQw7FiWaHCCTRMCerx8zJAv4M66f5qkSMfU3x4/bT4vSguDM5kU=
X-Gm-Gg: ASbGncuMtpwLubeA2rohDmxbllB1jmrw5/7PMUe0662fLB2+WK/SzOCb7XJHvvQ5dBx
	NPJewBX/QmmpsVziuuQhL1G0bDs2PfzzAKZRruSeUNarB+JwNIrByr2+oQXvVKdFz4pk40ZK+ed
	iP5aSgmTbXTjW5lTGUyVZ2VNthzEW51D6se+cIRk5dTQPt1jdCrMupHbKPC9vZ5SYl4TP3Y29Qk
	8w5STThJfGqGKszi9a/JuHpwieYXh9NJGYlca/s2eGbpR9xA5c9axEuT6AaWSbHJx08svIK84fe
	VTLVQbQvx/Ws7ZhhsFkN62y+8GaBvCfFcP2Mpvv5MWQGU3nmn+Kkh4ce
X-Google-Smtp-Source: AGHT+IEO6iQDJjv6WH/ZvAHd94NzcJ7zUzGc0XJSNcXDsiCwGq7sG/7TcN3rnZzHGgeY49qfX5NDjg==
X-Received: by 2002:a17:907:da9:b0:acb:1165:9a93 with SMTP id a640c23a62f3a-ace5a124befmr547548666b.3.1745571749766;
        Fri, 25 Apr 2025 02:02:29 -0700 (PDT)
Date: Fri, 25 Apr 2025 11:02:28 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: "Lira, Victor M" <VictorM.Lira@amd.com>
Cc: Jason Andryuk <jason.andryuk@amd.com>,
	Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	xen-devel@lists.xenproject.org,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>, Xenia.Ragiadakou@amd.com,
	Alejandro.GarciaVallejo@amd.com
Subject: Re: [RFC] xen/x86: allow overlaps with non-RAM regions
Message-ID: <aAtPpOq2Kc_N6hBy@macbook.lan>
References: <3c5dfd26-3c12-498b-aca4-0beac4e991a5@amd.com>
 <Z_jFSb2-efexUNlL@macbook.lan>
 <9ed89e50-c645-407d-80b4-5b78cb6e36fa@amd.com>
 <Z_zGdE91KwlYxu_A@macbook.lan>
 <ce06ec74-1a73-4a02-87fc-3e829399cc77@amd.com>
 <aAnvRMgJxAskbCtE@macbook.lan>
 <aAoPNTsLjMMfsHvJ@mail-itl>
 <aAoW-kvpsWuPJwrC@macbook.lan>
 <775d3ac0-8f43-415a-a32d-14377092b96b@amd.com>
 <554026de-bbb4-488f-95c4-8e2f034d6d0e@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <554026de-bbb4-488f-95c4-8e2f034d6d0e@amd.com>

On Thu, Apr 24, 2025 at 02:38:29PM -0700, Lira, Victor M wrote:
> Hello all,
> 
> Here is the output from Roger's patch.
> This is the section of interest:
> 
> > (XEN) [ 7.547326] d0 has maximum 3328PIRQs
> > (XEN) [ 7.555644] *** Building a PVH Dom0 ***
> > (XEN) [ 7.567780] d0: identity mappings for IOMMU:
> > (XEN) [ 7.577312]  [00000000a0, 00000000ff] RW
> > (XEN) [ 7.586153]  [0000009bff, 0000009fff] RW
> > (XEN) [ 7.594992]  [00000cabc9, 00000cc14c] RW
> > (XEN) [ 7.603866]  [00000cc389, 00000cc389] RW
> > (XEN) [ 7.612707]  [00000cc70a, 00000cd1fe] RW
> > (XEN) [ 7.621896]  [00000ce000, 00000cffff] RW
> > (XEN) [ 7.630731]  [00000fd000, 00000fd2ff] RW
> > (XEN) [ 7.639573]  [00000fd304, 00000febff] RW
> > (XEN) [ 7.648414] gfn 0xfe800mfn 0xfe800type 5order 9
> > (XEN) [ 7.658985] Xen WARNat arch/x86/mm/p2m-pt.c:599
> > (XEN) [ 7.669215] ----[ Xen-4.21-unstable x86_64  debug=y  Tainted:   C
> >    ]----
> > ...
> > (XEN) [ 8.227521] Xen call trace:
> > (XEN) [ 8.234107]    [<ffff82d040309bd6>] R
> > arch/x86/mm/p2m-pt.c#p2m_pt_set_entry+0xc1/0x961
> > (XEN) [ 8.250925]    [<ffff82d0402fbf0d>] F p2m_set_entry+0xb5/0x13c
> > (XEN) [ 8.263579]    [<ffff82d0402fc091>] F
> > arch/x86/mm/p2m.c#set_typed_p2m_entry+0xfd/0x6f0
> > (XEN) [ 8.280388]    [<ffff82d0402fdcd4>] F set_mmio_p2m_entry+0x62/0x6b
> > (XEN) [ 8.293735]    [<ffff82d0402ff9cf>] F map_mmio_regions+0x77/0xcf
> > (XEN) [ 8.306734]    [<ffff82d04042fc1b>] F
> > drivers/passthrough/x86/iommu.c#identity_map+0x7e/0x196
> > (XEN) [ 8.324761]    [<ffff82d040232935>] F
> > rangeset_report_ranges+0x10a/0x159
> > (XEN) [ 8.339149]    [<ffff82d0404301e6>] F
> > arch_iommu_hwdom_init+0x27f/0x316
> > (XEN) [ 8.353361]    [<ffff82d04042cffa>] F
> > drivers/passthrough/amd/pci_amd_iommu.c#amd_iommu_hwdom_init+0xa9/0xc1
> > (XEN) [ 8.373988]    [<ffff82d040430846>] F iommu_hwdom_init+0x26/0x2e
> > (XEN) [ 8.386989]    [<ffff82d040441a30>] F
> > dom0_construct_pvh+0x265/0x1141
> > (XEN) [ 8.400860]    [<ffff82d040457f7c>] F construct_dom0+0x47/0x93
> > (XEN) [ 8.413511]    [<ffff82d0404504e0>] F __start_xen+0x21fc/0x2425
> > (XEN) [ 8.426340]    [<ffff82d0402043be>] F __high_start+0x8e/0x90
> > (XEN) [ 8.438646]
> > (XEN) [ 8.442632]  [00000fec02, 00000fedff] RW
> > (XEN) [ 8.451599]  [00000fee01, 00000fffff] RW
> > (XEN) [ 8.460571]  [000080f340, 00008501ff] RW
> > (XEN) [ 8.470205] 0000:02:00.0: not mapping BAR [fea00, fea03] invalid
> > position
> > (XEN) [ 8.484769] 0000:03:00.0: not mapping BAR [fe900, fe90f] invalid
> > position
> > (XEN) [ 8.499330] 0000:03:00.0: not mapping BAR [fe910, fe913] invalid
> > position
> > (XEN) [ 8.513890] gfn 0xfe910mfn 0xfffffffffffffffftype 1order 0
> > (XEN) [ 8.526370] Xen WARNat arch/x86/mm/p2m-pt.c:599
> > ...
> > (XEN) [ 9.094902] Xen call trace:
> > (XEN) [ 9.101491]    [<ffff82d040309bd6>] R
> > arch/x86/mm/p2m-pt.c#p2m_pt_set_entry+0xc1/0x961
> > (XEN) [ 9.118306]    [<ffff82d0402fbf0d>] F p2m_set_entry+0xb5/0x13c
> > (XEN) [ 9.130957]    [<ffff82d0402fe1fb>] F
> > p2m_remove_identity_entry+0x26f/0x2ca
> > (XEN) [ 9.145865]    [<ffff82d040268a4a>] F
> > vpci_make_msix_hole+0x11a/0x27a
> > (XEN) [ 9.159734]    [<ffff82d0402654c4>] F
> > drivers/vpci/header.c#modify_decoding+0x4e/0x1b3
> > (XEN) [ 9.176547]    [<ffff82d040265c89>] F
> > drivers/vpci/header.c#modify_bars+0x660/0x6c4
> > (XEN) [ 9.192838]    [<ffff82d040266427>] F
> > drivers/vpci/header.c#init_header+0x5e7/0x86f
> > (XEN) [ 9.209129]    [<ffff82d04026449c>] F vpci_assign_device+0xd3/0x115
> > (XEN) [ 9.222648]    [<ffff82d040430de4>] F
> > drivers/passthrough/pci.c#setup_one_hwdom_device+0x92/0x15b
> > (XEN) [ 9.241368]    [<ffff82d04043112a>] F
> > drivers/passthrough/pci.c#_setup_hwdom_pci_devices+0x158/0x241
> > (XEN) [ 9.260612]    [<ffff82d04027aad7>] F
> > drivers/passthrough/pci.c#pci_segments_iterate+0x43/0x69
> > (XEN) [ 9.278814]    [<ffff82d040431513>] F
> > setup_hwdom_pci_devices+0x28/0x2f
> > (XEN) [ 9.293026]    [<ffff82d04042d009>] F
> > drivers/passthrough/amd/pci_amd_iommu.c#amd_iommu_hwdom_init+0xb8/0xc1
> > (XEN) [ 9.313649]    [<ffff82d040430846>] F iommu_hwdom_init+0x26/0x2e
> > (XEN) [ 9.326652]    [<ffff82d040441a30>] F
> > dom0_construct_pvh+0x265/0x1141
> > (XEN) [ 9.340516]    [<ffff82d040457f7c>] F construct_dom0+0x47/0x93
> > (XEN) [ 9.353172]    [<ffff82d0404504e0>] F __start_xen+0x21fc/0x2425
> > (XEN) [ 9.365999]    [<ffff82d0402043be>] F __high_start+0x8e/0x90
> > (XEN) [ 9.378305]
> > (XEN) [ 9.382289] 0000:04:00.0: not mapping BAR [fe700, fe77f] invalid
> > position
> > (XEN) [ 9.396850] 0000:04:00.3: not mapping BAR [fe500, fe5ff] invalid
> > position
> > (XEN) [ 9.411412] 0000:04:00.4: not mapping BAR [fe400, fe4ff] invalid
> > position
> > (XEN) [ 9.425972] 0000:05:00.0: not mapping BAR [fe801, fe801] invalid
> > position
> > (XEN) [ 9.440531] 0000:05:00.1: not mapping BAR [fe800, fe800] invalid
> > position
> 
> So vpci_make_msix_hole is where it's getting removed.

Oh, the output is very mangled when displaying the email on my MUA,
but I see.  I think I now get what's happening.

Since the BAR falls into a reserved region, the `enabled` bit for it is
never set, and thus the handling in msix_accept() never triggers,
leaving those accesses unhandled and terminated by the null handler.

I think the patch below should fix it, let me know how it goes.

There's also a further known issue with vpci_make_msix_hole(): if the
BARs are repositioned the holes are not restored to their previous
values, but I don't think you are hitting that issue (yet).

Thanks, Roger.
---
diff --git a/xen/drivers/vpci/msix.c b/xen/drivers/vpci/msix.c
index f3804ce047a3..bcdeffc16a95 100644
--- a/xen/drivers/vpci/msix.c
+++ b/xen/drivers/vpci/msix.c
@@ -158,12 +158,10 @@ static struct vpci_msix *msix_find(const struct domain *d, unsigned long addr)
 
     list_for_each_entry ( msix, &d->arch.hvm.msix_tables, next )
     {
-        const struct vpci_bar *bars = msix->pdev->vpci->header.bars;
         unsigned int i;
 
         for ( i = 0; i < ARRAY_SIZE(msix->tables); i++ )
-            if ( bars[msix->tables[i] & PCI_MSIX_BIRMASK].enabled &&
-                 VMSIX_ADDR_SAME_PAGE(addr, msix->pdev->vpci, i) )
+            if ( VMSIX_ADDR_SAME_PAGE(addr, msix->pdev->vpci, i) )
                 return msix;
     }
 
@@ -392,7 +390,7 @@ static int cf_check msix_read(
         return rc;
     }
 
-    if ( !access_allowed(msix->pdev, addr, len) )
+    if ( !msix->enabled || !access_allowed(msix->pdev, addr, len) )
     {
         read_unlock(&d->pci_lock);
         return X86EMUL_OKAY;
@@ -539,7 +537,7 @@ static int cf_check msix_write(
         return rc;
     }
 
-    if ( !access_allowed(msix->pdev, addr, len) )
+    if ( !msix->enabled || !access_allowed(msix->pdev, addr, len) )
     {
         read_unlock(&d->pci_lock);
         return X86EMUL_OKAY;



From xen-devel-bounces@lists.xenproject.org Fri Apr 25 09:04:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 09:04:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.967527.1357308 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8Eyp-0002AZ-Kv; Fri, 25 Apr 2025 09:04:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 967527.1357308; Fri, 25 Apr 2025 09:04: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 1u8Eyp-0002AS-Gq; Fri, 25 Apr 2025 09:04:19 +0000
Received: by outflank-mailman (input) for mailman id 967527;
 Fri, 25 Apr 2025 09:04: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=AYju=XL=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u8Eyn-00028H-L4
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 09:04:17 +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 43fd6b5f-21b4-11f0-9eb3-5ba50f476ded;
 Fri, 25 Apr 2025 11:04:16 +0200 (CEST)
Received: by mail-ed1-x531.google.com with SMTP id
 4fb4d7f45d1cf-5e5dce099f4so2573058a12.1
 for <xen-devel@lists.xenproject.org>; Fri, 25 Apr 2025 02:04:16 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 a640c23a62f3a-ace6e4fb5ecsm103892866b.71.2025.04.25.02.04.15
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 25 Apr 2025 02:04: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: 43fd6b5f-21b4-11f0-9eb3-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745571856; x=1746176656; 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=gXw5c/60i0Mi9KAHkjWTEIxPqnyGs1rQ8Sz7Lxi8/rQ=;
        b=ueY40tXsqO6fi+XgbuKM3dl71xQpNvHjai+JkKhdgvetLr9Ii9pHuu+DTxJl6hQtat
         xVQ3tRqbAn8KbmUZZZUOO7rgxnUcib9MwIb5ZPaVT3bCuHHKjxKIRAcU7tUse+yeZkJF
         1LkfXgakfKLrIoygtfy4ac6bVagPLvpPZyqYE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745571856; x=1746176656;
        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=gXw5c/60i0Mi9KAHkjWTEIxPqnyGs1rQ8Sz7Lxi8/rQ=;
        b=Y04uEWZuxP5MLD9O0205BEa1hIeyGu/cwmlHpWVchYR5I8kaen/iQalg5YGcvjccZq
         Jx00ATsx4+VfXiioWkbRYz4VeK9LLrVEajEEoZVG379JAa2Sb6fMuCkmJy3iX1uXkrCj
         0kTd8vhXMPMmF95o9q17eOWTdRH9AOfKjuKUXank62Vbp+uDnRSyBbTEDJGNIY8MdZx8
         6u0fkOnJOTomXGAhhai6qCvKsY3LDDlZkXExlaY439PqZt7ONsbj4CZ5kXfrKFZr0e6O
         GJUn8vfnUzEk5B1s7ZDtH1D0wiaLOlkAO0HBHpl+8ixibQTsfKtoyk85b2MOoDZ69iGK
         4Hjg==
X-Gm-Message-State: AOJu0Yw4q6mY9PIGrx+7eLFb/FmveBvwmd3uD2c6L1n6Wt7hdTRzLLFt
	n2WPpI07Uytp4e9BpqvbzbyacMBEhUynLzGEnvJalJtbBRQYnL/8FRyC0Un4FHQ=
X-Gm-Gg: ASbGncuA1naXZI4A/bR6yNMxGHSRlvqIcYGzOQ3NGLubmfMOaqpwe/5i/OzYNgH77Nc
	tuU0Lr8/f9FpNgIFXlPIStjXBdPKB8uQ4mq9ENsQDnrB3SVn9QzN3PUs3VbOm8pwQjUtU8cwTn5
	E78PyM0p2VN47xQZt3owqNTa76QMs5IoVnRm7pEF9VRdrpK4ksgwmHFUYvk5KhQLnxYlQmq7Ge4
	zUyZtNkQh1cdz9VGmD8/HGT1TRTcqUKxwrOekqaXKD/tnysSA405Djrgj40LJd+eK6ZSqaaRFmo
	z8Xe+iDhGZomol99l5+MfVTOHMgnG3J9cVx7To03nBeOyg==
X-Google-Smtp-Source: AGHT+IEdMO5vSSwD596/jS/Ac+HGkzczarJqsHfBND2LhHPbEtH8FkUESPaScY5ZgEAG69N9mbScaw==
X-Received: by 2002:a17:907:9721:b0:ace:3a1b:d3d with SMTP id a640c23a62f3a-ace71047f9dmr128238466b.2.1745571856236;
        Fri, 25 Apr 2025 02:04:16 -0700 (PDT)
Date: Fri, 25 Apr 2025 11:04:15 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: xen-devel@lists.xenproject.org,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: [PATCH] xen: fix buffer over-read in bitmap_to_xenctl_bitmap()
Message-ID: <aAtQDwHmaSJVh-3k@macbook.lan>
References: <20250424103841.94828-1-roger.pau@citrix.com>
 <041d4bd5-962c-4600-b436-0ec214a6c6ca@citrix.com>
 <aAo250IiFOC1Hggg@macbook.lan>
 <f425b237-dd89-4800-96c7-08072a3f67e3@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <f425b237-dd89-4800-96c7-08072a3f67e3@suse.com>

On Fri, Apr 25, 2025 at 10:54:36AM +0200, Jan Beulich wrote:
> On 24.04.2025 15:04, Roger Pau Monné wrote:
> > On Thu, Apr 24, 2025 at 12:41:43PM +0100, Andrew Cooper wrote:
> >> On 24/04/2025 11:38 am, Roger Pau Monne wrote:
> >>> There's an off-by-one when calculating the last byte in the input array to
> >>> bitmap_to_xenctl_bitmap(), which leads to bitmaps with sizes multiple of 8
> >>> to over-read and incorrectly use a byte past the end of the array.
> >>
> >> /sigh
> >>
> >>> While there also ensure that bitmap_to_xenctl_bitmap() is not called with a
> >>> bitmap of 0 length.
> >>>
> >>> Fixes: 288c4641c80d ('xen: simplify bitmap_to_xenctl_bitmap for little endian')
> >>> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> >>
> >> You ought to note that this is only not getting an XSA because
> >> 288c4641c80d isn't in a released Xen yet.
> > 
> > Yeah, I did explicitly check this wasn't backported to any stable
> > branches.
> > 
> >>> ---
> >>>  xen/common/bitmap.c | 8 +++++++-
> >>>  1 file changed, 7 insertions(+), 1 deletion(-)
> >>>
> >>> diff --git a/xen/common/bitmap.c b/xen/common/bitmap.c
> >>> index bf1a7fd91e36..415d6bc074f6 100644
> >>> --- a/xen/common/bitmap.c
> >>> +++ b/xen/common/bitmap.c
> >>> @@ -369,6 +369,12 @@ int bitmap_to_xenctl_bitmap(struct xenctl_bitmap *xenctl_bitmap,
> >>>      const uint8_t *bytemap;
> >>>      uint8_t last, *buf = NULL;
> >>>  
> >>> +    if ( !nbits )
> >>> +    {
> >>> +	ASSERT_UNREACHABLE();
> >>> +	return -EILSEQ;
> >>> +    }
> >>
> >> I don't see any hypercalls performing a bits==0 check, so I expect this
> >> is reachable.
> > 
> > bitmap_to_xenctl_bitmap() has just two callers, one passes nr_cpu_ids,
> > the other MAX_NUMNODES.  I think there are no callers that pass 0,
> > much less from hypercall provided values.
> 
> Still I don't think there should be an assertion here, not even an error.
> As much as memcpy(x, y, 0) is okay, it ought to be okay to invoke this
> function for entirely void bitmaps.

OK, are we fine then with just returning early if bits == 0?  No
assert and no error.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri Apr 25 09:11:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 09:11:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.967540.1357317 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8F5Z-00054m-9g; Fri, 25 Apr 2025 09:11:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 967540.1357317; Fri, 25 Apr 2025 09: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 1u8F5Z-00054f-6N; Fri, 25 Apr 2025 09:11:17 +0000
Received: by outflank-mailman (input) for mailman id 967540;
 Fri, 25 Apr 2025 09:11: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=ZJ1s=XL=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u8F5Y-00054Z-GQ
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 09:11:16 +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 3d8c5c61-21b5-11f0-9eb3-5ba50f476ded;
 Fri, 25 Apr 2025 11:11:15 +0200 (CEST)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-43cfe574976so13944085e9.1
 for <xen-devel@lists.xenproject.org>; Fri, 25 Apr 2025 02:11:15 -0700 (PDT)
Received: from [10.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-4409d2a0e7esm51919335e9.10.2025.04.25.02.11.14
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 25 Apr 2025 02:11: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: 3d8c5c61-21b5-11f0-9eb3-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745572275; x=1746177075; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Ymt2IyLtkKOOCDqHil4x3OgwVshyHb/OgPMZ08zWTmI=;
        b=Byu0zciicpJW2Gt37BYYJNd7zjWZrDWkYeQaOTf8L71owUFz9vnxLiYMKPNVX5eLCJ
         7gYwxgRWS/ZvlSh34HkbHbtIz4XF2AgRyoemglpgHVMusF59Ei3Gx2Nvthru0JB1WMPg
         mJs4d8ahQdwX4NsnRq2fUKbNm9E1j12+Rdrk3chfKIQ36aFa0PdgGAPk5YnuTAn4ls9U
         5f/j2xSkId+7NWfoSL6bslpwjw8ciClPhxkibFg2tWgmutUv8u869HdezsN/BCYqP5Q1
         o3OJszh5MWaBcuCWF4XkcnOFkSoCUj90VbtQ17TVFkWiVntxQu2hrdHdaIaVTC3bWoqD
         L+Rg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745572275; x=1746177075;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Ymt2IyLtkKOOCDqHil4x3OgwVshyHb/OgPMZ08zWTmI=;
        b=MCa3sYT2amI5JaFR4gPwcJjqktIw2uCRPGHC8zJL9mEJRNrpVEqFJTTNpl9X+kpPD9
         DvvL7oNTSKLntZfttS/OdDddBUWXCu1tWCFawZVQH2GnNi77ISJ2lsVULPz/t8Wfoko7
         s0PJtgQst+OSYYawhPZcbzyY3kRoViU5hwEvpKrmex4HXhnfdjaKT4uuflLI4Hi6i0/+
         Ad6eFKR8OOCeFK2oqxhCLdGRGRjEJk1EoVbdwHGoxWd45SacSvLkYrm64Ixlg3oJ2cOI
         b5A4V09dO31GutcJd6ISbKAcA5vF8DsL2lbwH0j3vZaE1+fR1z4kxzGnMNmQBWTCqe3Q
         IUlg==
X-Forwarded-Encrypted: i=1; AJvYcCW/3p9TXXtiIfFrLZPe1iTPl7m2yrH/Kzyl2ypSw1CpvH86NktwdoisOng+qhv26l0rqz4Ldrcn/7E=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywgq/0yhZwjqOKkbDYeZMVUiE9IcoQsgEszn/SHSD9DswIimuEn
	jlE4UkC3ZME3vN9OThBGUgA9XiunDUDSodxKY9NvlVZzC1NxnEIwh6vTgl/EJw==
X-Gm-Gg: ASbGncuLyJ4uH0uDV45U9zjRA+aEhge4yVoYlQOSwVc/kIhNTb3eB37wHUtz3TijZQ9
	qzX/ieQftGTtI3D5MiIQXj6w3Xhd/Arrxw9O8f/oygIs/qudU7nQh5uwA2NO/GpOIeY8ceyHyim
	7fKFQACm445K4Wzst1AlVmFt78/yKhkGY9Yx2uMVolYolojpm7faVL34/CGD7uTgY+UNTj6o2Ni
	UnXhWoh3LYASkdHp7OpDV6pJgCWPGINArGT61E/tN+DPKceXqmSHJLKeyPt5F+tL4e+8vrd43/+
	wYB9JivN5yAhBodP9tKv4AiEt1hd99x6OmIHHb2iQxPK7RMkGjMp+WV0hfyVMuYuh6ompyNRwgb
	1vWov5aQbPjTo+kwjwPoz69GNEQ==
X-Google-Smtp-Source: AGHT+IHNnFiBaXeNXlsUKp3uuXx6Lww1JX4PiP2jHCbDmYYx9sXARMu2CaCitZ1n8lvqu/6G4vXQuw==
X-Received: by 2002:a05:600c:1c96:b0:43c:ec4c:25b4 with SMTP id 5b1f17b1804b1-440a65e37afmr14319745e9.10.1745572274972;
        Fri, 25 Apr 2025 02:11:14 -0700 (PDT)
Message-ID: <e5b9ecbd-f96f-4dfc-b6f6-c2f9d5bf17d2@suse.com>
Date: Fri, 25 Apr 2025 11:11:13 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: UBSan bug in real mode fpu emulation
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: manuel.andreas@tum.de, Fabian Specht <f.specht@tum.de>,
 xen-devel@lists.xenproject.org
References: <l2jnq5cxgkzcdkndp3mjf76nd7wdp2pbstkqo7llaarmbfqdge@bxdydela4rcf>
 <7e3b941d-ec4e-4158-8844-a3cf236c8d4d@citrix.com>
 <lfakyg5jqdnbm6kleldta52xm6pzdy2fikr6ydxw5rs4wplefv@ymabtpq6fdvq>
 <659665fc-e938-4c2d-9707-b44f637bb6fb@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: <659665fc-e938-4c2d-9707-b44f637bb6fb@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 24.04.2025 16:04, Andrew Cooper wrote:
> I have a sneaking suspicion that this is sufficient:
> 
> diff --git a/xen/arch/x86/x86_emulate/private.h
> b/xen/arch/x86/x86_emulate/private.h
> index 30be59547032..9f3d6f0e5357 100644
> --- a/xen/arch/x86/x86_emulate/private.h
> +++ b/xen/arch/x86/x86_emulate/private.h
> @@ -385,9 +385,9 @@ struct x87_env16 {
>      union {
>          struct {
>              uint16_t fip_lo;
> -            uint16_t fop:11, :1, fip_hi:4;
> +            uint32_t fop:11, :1, fip_hi:4;
>              uint16_t fdp_lo;
> -            uint16_t :12, fdp_hi:4;
> +            uint32_t :12, fdp_hi:4;
>          } real;
>          struct {
>              uint16_t fip;
> 
> 
> The problem is that a uint16_t bitfield promotes into int.  A base type
> of uint32_t should cause the bitfield to promote into unsigned int directly.

I fear that's not gcc's way of thinking. In fact, the other involved structure
already uses bitfields with uint32_t base type, and the issue was reported
there nevertheless. Having known only compilers which respect declared type of
bitfields, I was rather surprised by gcc not doing so when I first started
using it on not exactly trivial code. Just to learn that they are free to do
so. Looks like I never dared to submit a patch I've been carrying to optionally
alter that behavior.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Apr 25 09:11:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 09:11:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.967549.1357327 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8F6D-0005k3-HD; Fri, 25 Apr 2025 09:11:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 967549.1357327; Fri, 25 Apr 2025 09:11: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 1u8F6D-0005jw-Ej; Fri, 25 Apr 2025 09:11:57 +0000
Received: by outflank-mailman (input) for mailman id 967549;
 Fri, 25 Apr 2025 09:11: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=ZJ1s=XL=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u8F6C-00054Z-4w
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 09:11:56 +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 556f9360-21b5-11f0-9eb3-5ba50f476ded;
 Fri, 25 Apr 2025 11:11:55 +0200 (CEST)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-43ede096d73so14328075e9.2
 for <xen-devel@lists.xenproject.org>; Fri, 25 Apr 2025 02:11:55 -0700 (PDT)
Received: from [10.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-4409d2e00d8sm49320785e9.35.2025.04.25.02.11.54
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 25 Apr 2025 02:11: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: 556f9360-21b5-11f0-9eb3-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745572315; x=1746177115; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=4LLweWAtjPpIVfxJHoSnge8ur7O58E/0yu08so+yTmc=;
        b=Jfo1ak3+6GKVJYn264boVy+T7RtuOGQq8MVatrUL9d3qHQtRaF9IMJJNEBqZzMBraJ
         Xj6tVdtjIA8rrRbI2Qz0NHBj7rkZYbNlzmAoqJU324R8YrYOEp+PSPcNY9jCFCZP27hR
         SsTn9heJ/dddRHoOJJgC6R/ahDAM3OkiFWTSZd91avwAzLL+dP5P6jL3/GKfb8nRkGbG
         mgaGvbL0bqwgyz5da4hd0LZtCzEHFES830Nv7gRWD2L/7zQosbJTMOMM8jgRmMU4/RbE
         lzIb8Y2unEHdywv7bql5LWRff/JBIrXSIYPTEqHKAIsTvhx7KDTUCG+K4rBqS8bObZc4
         0UUA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745572315; x=1746177115;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=4LLweWAtjPpIVfxJHoSnge8ur7O58E/0yu08so+yTmc=;
        b=GXoRDGH2pip3XnteGXS1Ftkx+siUTG4a3lVvDH/rzztyNwUjKmxJZauYREvuRUff3U
         jenuJcXLMX/4/kjM4QaaKR+8IVavEXc+YIXhxclsZd+323h7c3igX/y0Dh0nQUt3y7l4
         Yl9SFjQOZfyhzlGSf+NAA9MoFNCMiK83KErBMNCRAgeGHgMSnj3QZs5GoChd0Xgsc7ri
         JMOFj95cQdgo/Q9laZj9tkuinedr56Y+iFJwaFtcgCTSVcra/59gP2MKmdIThJ1/CG6o
         H3xzSI9zeWGWvTM55PtmIylT1Va/fmN8yqMat+oBpImYFqUPyxfVDFxkEm49tja531Jt
         BKPA==
X-Gm-Message-State: AOJu0Yy3Qc0kx/j6D/Rw5DrOFofdDedzAtjU4WjIM06bxbqYIQSxaemc
	Z/bR7VH0xZ8HYRs20lqJYkDAglX3t1GLmQ/PPKDs3Cqoo2IrfUOwXu1t7bAU0g==
X-Gm-Gg: ASbGncvlOr3PdDThfajiKjnDDIXutZdml3DB8z2HaNFoqCmyoXcGs+V+2stCFg/Cokc
	y7VZ7vcvuFW9ZV2YcJ66jojJylTUTTNu2i6Jp7z0D6DH7F2Uf1LZGa3q0QxccaepCMOnHcFJOcO
	U+wT8e1f1glb4u3zIIYS02noCuQt3cHl8T3ixsGVUKVNYiTE01E+KaFEDfaCjZtaJythWB9H4Ff
	wOAewAObjgnaWEEjoUnWujBntr1MToQRh+81gVfzaaF5YcCmL/wGDNNlssEAUBrVK/QhfP9NjIa
	7181EonPG5JylgNmM6kGA04LUqOZlHnXDxlNos9AQR/e4fBS10ysx//X0vUfl75zXmxGmLsVoaK
	2tNTFH0sdP/rGnD3lFNsuszPi3Q==
X-Google-Smtp-Source: AGHT+IFDKSRTL2tAaP8C5KeDL71soNf5XPVBOwHptVJrh/kpC33LVVH+oR92k34WePVWIcCJDVIU1w==
X-Received: by 2002:a05:600c:3d17:b0:43c:f70a:2af0 with SMTP id 5b1f17b1804b1-440a660754emr15348175e9.16.1745572315032;
        Fri, 25 Apr 2025 02:11:55 -0700 (PDT)
Message-ID: <db8dad9b-4bae-4760-a6e9-d405a17f39cf@suse.com>
Date: Fri, 25 Apr 2025 11:11:54 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen: fix buffer over-read in bitmap_to_xenctl_bitmap()
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: xen-devel@lists.xenproject.org, Anthony PERARD
 <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>
References: <20250424103841.94828-1-roger.pau@citrix.com>
 <041d4bd5-962c-4600-b436-0ec214a6c6ca@citrix.com>
 <aAo250IiFOC1Hggg@macbook.lan>
 <f425b237-dd89-4800-96c7-08072a3f67e3@suse.com>
 <aAtQDwHmaSJVh-3k@macbook.lan>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <aAtQDwHmaSJVh-3k@macbook.lan>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 25.04.2025 11:04, Roger Pau Monné wrote:
> On Fri, Apr 25, 2025 at 10:54:36AM +0200, Jan Beulich wrote:
>> On 24.04.2025 15:04, Roger Pau Monné wrote:
>>> On Thu, Apr 24, 2025 at 12:41:43PM +0100, Andrew Cooper wrote:
>>>> On 24/04/2025 11:38 am, Roger Pau Monne wrote:
>>>>> There's an off-by-one when calculating the last byte in the input array to
>>>>> bitmap_to_xenctl_bitmap(), which leads to bitmaps with sizes multiple of 8
>>>>> to over-read and incorrectly use a byte past the end of the array.
>>>>
>>>> /sigh
>>>>
>>>>> While there also ensure that bitmap_to_xenctl_bitmap() is not called with a
>>>>> bitmap of 0 length.
>>>>>
>>>>> Fixes: 288c4641c80d ('xen: simplify bitmap_to_xenctl_bitmap for little endian')
>>>>> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
>>>>
>>>> You ought to note that this is only not getting an XSA because
>>>> 288c4641c80d isn't in a released Xen yet.
>>>
>>> Yeah, I did explicitly check this wasn't backported to any stable
>>> branches.
>>>
>>>>> ---
>>>>>  xen/common/bitmap.c | 8 +++++++-
>>>>>  1 file changed, 7 insertions(+), 1 deletion(-)
>>>>>
>>>>> diff --git a/xen/common/bitmap.c b/xen/common/bitmap.c
>>>>> index bf1a7fd91e36..415d6bc074f6 100644
>>>>> --- a/xen/common/bitmap.c
>>>>> +++ b/xen/common/bitmap.c
>>>>> @@ -369,6 +369,12 @@ int bitmap_to_xenctl_bitmap(struct xenctl_bitmap *xenctl_bitmap,
>>>>>      const uint8_t *bytemap;
>>>>>      uint8_t last, *buf = NULL;
>>>>>  
>>>>> +    if ( !nbits )
>>>>> +    {
>>>>> +	ASSERT_UNREACHABLE();
>>>>> +	return -EILSEQ;
>>>>> +    }
>>>>
>>>> I don't see any hypercalls performing a bits==0 check, so I expect this
>>>> is reachable.
>>>
>>> bitmap_to_xenctl_bitmap() has just two callers, one passes nr_cpu_ids,
>>> the other MAX_NUMNODES.  I think there are no callers that pass 0,
>>> much less from hypercall provided values.
>>
>> Still I don't think there should be an assertion here, not even an error.
>> As much as memcpy(x, y, 0) is okay, it ought to be okay to invoke this
>> function for entirely void bitmaps.
> 
> OK, are we fine then with just returning early if bits == 0?  No
> assert and no error.

I'd be fine with that, yes.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Apr 25 09:15:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 09:15:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.967562.1357337 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8F9x-00079z-12; Fri, 25 Apr 2025 09:15:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 967562.1357337; Fri, 25 Apr 2025 09:15: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 1u8F9w-00079s-To; Fri, 25 Apr 2025 09:15:48 +0000
Received: by outflank-mailman (input) for mailman id 967562;
 Fri, 25 Apr 2025 09:15: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=ZJ1s=XL=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u8F9w-00079m-4S
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 09:15: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 df488273-21b5-11f0-9eb3-5ba50f476ded;
 Fri, 25 Apr 2025 11:15:46 +0200 (CEST)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-39ac56756f6so1953606f8f.2
 for <xen-devel@lists.xenproject.org>; Fri, 25 Apr 2025 02:15:46 -0700 (PDT)
Received: from [10.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-3a073e5c68esm1703053f8f.82.2025.04.25.02.15.45
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 25 Apr 2025 02:15: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: df488273-21b5-11f0-9eb3-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745572546; x=1746177346; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=VPkxJkrmdguKWsoDLSMzCT326SLERXlANpD29MtWkA0=;
        b=cFMjhdYelIdr3hChwyJIQLUKlM7vtxJCJQBXXQ9DxZrdImarbf7gg5toooQPQ6p8rb
         taqfc3MXBf3pqhiZ/XxcIekLa7Q4syy0GEP7uTABf/G1kVcFnzHklES7+d3ju2Xrgk6P
         iLFNvjPC017worBN5HBCyi76pXBt3uKgfeB0NpxEx49AFCsQeBIqMALQ0KF5CDIxJQ4a
         NCdai/ZSpjurs04XA3CE0UTIvJftRFVVkQl13CkEPcvaeAvLtP31VOb+2JqynaaT5LZ+
         3h+Vqw3CXz3aELvcizqegWsfOPxu8n16Jh7I5sMzteyh6esPXkGC3UqxEWEMggWDMcB9
         nZWQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745572546; x=1746177346;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=VPkxJkrmdguKWsoDLSMzCT326SLERXlANpD29MtWkA0=;
        b=qMDAGEO912T14JsFJOcMsTSfZU2bMvYog3WxJHH+HrZ0zl2chD28iAa6tW0X7Q+KJG
         s9hOdj4ote3TGuES8ZIIXCwjLc4efBx1L6vzmnnEijeqqfD6+TPtnvLNOi4tpq9Z6t0b
         Iaaj2Yo8J2eH1xt2Kjb8tjCQHXDXpKVxVfQUpeJx8G9QIEf0XhbuPx7DY2hoDI0ik48t
         FORGCE1+8aNGRwI92Z82hysdwa5uu8SWlwDTJwSVUVqHaGYJ55WEQeElR8FbtTt9SMEI
         BLcAxqEODU507dF7tXRK13Ybu9JM87wvGuxxU+E9qCdH1IrdrmM+cEzQz0ppLSikO/kt
         iWqQ==
X-Forwarded-Encrypted: i=1; AJvYcCUz2APlfqXROrdAjbJ0eqIOerCcEWS7OiQ8pxLJVP66Gl34isYJzFUWAIrGssLzl37yqSO+AcMv/0Q=@lists.xenproject.org
X-Gm-Message-State: AOJu0YymAxFixklzyGVFfm2maU5fQogN9NGKTe/9d7KgXu5fymw/7Nmw
	9W3Z2hpleRvvaOQVpXIas78Hwa3C/ew1CXuiBtjjZBvQ7iEJF/WzDAQ4SWxveQ==
X-Gm-Gg: ASbGncubG01Aa3NxsOic1h6hwwc0zAwbebovImIX2GC368fHy4eZPBFtA2+On/OzX7O
	ltsgcM0SGgE9rG5AfRvpYrxwCqK72hjesvocJ23bmOC2plnoOhDfneMgZG4TBi4zDpVfFl6CFjf
	tN5irI3cCHFv+2wkOFDOzk4xQObRKpbulNUegAxmVa1dGREni/Pi3XNjQ6vIZVfvbrjC295BzHl
	6q6sbNsVpfZA8McZIkayq3posyp6IKkFozILvHANREmocTsSfJFWZ0+noOnRgLhh/3OWgpIrvb1
	iC+9q92Wtn/aDAMgNvIpBrIOC6Dxj6BqMumMiGylhhzxH00nnAXuhHw4SttzNv3OK51OFFa+yYV
	f3oEURYMHoKkS2qCsHOq/rOPwGA==
X-Google-Smtp-Source: AGHT+IEgcYwJuL/d71ij0Zbnl+fYaFlZ7C+KzbHw2hzSaZEO1jiI0P5imMVXrx6qgAnkXr0JGET0qA==
X-Received: by 2002:a05:6000:4308:b0:39c:2665:2c13 with SMTP id ffacd0b85a97d-3a074f76f29mr1086975f8f.54.1745572546330;
        Fri, 25 Apr 2025 02:15:46 -0700 (PDT)
Message-ID: <a5a44168-1c4e-4e16-b00d-557975862bfb@suse.com>
Date: Fri, 25 Apr 2025 11:15:45 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/hyperv: Adjust hypercall page placement
To: Alejandro Vallejo <agarciav@amd.com>
Cc: Jason Andryuk <jason.andryuk@amd.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Paul Durrant <paul@xen.org>, xen-devel@lists.xenproject.org
References: <20250424124505.42156-1-agarciav@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: <20250424124505.42156-1-agarciav@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.04.2025 14:45, Alejandro Vallejo wrote:
> Xen nowadays crashes under some Hyper-V configurations when
> paddr_bits>36. At the 44bit boundary we reach an edge case in which the
> end of the guest physical address space is not representable using 32bit
> MFNs. Furthermore, it's an act of faith that the tail of the physical
> address space has no reserved regions already.
> 
> This commit uses the first unused MFN rather than the last, thus
> ensuring the hypercall page placement is more resilient against such
> corner cases.
> 
> While at this, add an extra BUG_ON() to explicitly test for the
> hypercall page being correctly set, and mark hcall_page_ready as
> __ro_after_init.
> 
> Fixes: 620fc734f854("x86/hyperv: setup hypercall page")
> Signed-off-by: Alejandro Vallejo <agarciav@amd.com>

Just in case you re-submit (as per later discussion), and respective code
was to stay, two style nits:

> --- a/xen/arch/x86/e820.c
> +++ b/xen/arch/x86/e820.c
> @@ -582,6 +582,20 @@ int __init e820_add_range(uint64_t s, uint64_t e, uint32_t type)
>      return 1;
>  }
>  
> +uint64_t __init e820_reserve_hole(void)
> +{
> +    for ( unsigned int i = 0; i < e820.nr_map; i++ )
> +    {
> +        uint64_t hole = e820.map[i].addr + e820.map[i].size;
> +        if ( e820_add_range(hole, hole + PAGE_SIZE, E820_RESERVED) )

Blank line between declaration(s) and statement8s) please.

> +            return hole;
> +    }
> +
> +    print_e820_memory_map(e820.map, e820.nr_map);
> +    panic("Unable to find a hole in e820");
> +}
> +
> +

No double blank lines please.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Apr 25 09:19:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 09:19:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.967577.1357347 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8FDR-0007nF-IN; Fri, 25 Apr 2025 09:19:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 967577.1357347; Fri, 25 Apr 2025 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 1u8FDR-0007n8-EZ; Fri, 25 Apr 2025 09:19:25 +0000
Received: by outflank-mailman (input) for mailman id 967577;
 Fri, 25 Apr 2025 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=ZJ1s=XL=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u8FDQ-0007n2-5x
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 09:19:24 +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 601daf61-21b6-11f0-9eb3-5ba50f476ded;
 Fri, 25 Apr 2025 11:19:23 +0200 (CEST)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-39c0dfba946so1425606f8f.3
 for <xen-devel@lists.xenproject.org>; Fri, 25 Apr 2025 02:19:23 -0700 (PDT)
Received: from [10.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-3a073c8c7a4sm1838939f8f.14.2025.04.25.02.19.21
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 25 Apr 2025 02:19:22 -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: 601daf61-21b6-11f0-9eb3-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745572762; x=1746177562; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=+RDerG6jNULfaA4YUvRDnnpy9iI0YZWbPJff+ejUuJQ=;
        b=Xs21uKsVA5CMrLNvN/DGu7G31tUlT2aj5aFaxb6kUxQGdmO2uOnlt21yPtrQts2JIn
         /h1X4MB4yt8u/F8q4JbHdV6AqXfD+WQ/xli4XuuPjSNP92Aoqc+jC/Sr/W/ADVhsk2aX
         fXO6Jq7hhD3BKi57F7jw5HODEq6n5P5LnjYZ5wMd3+eBSVJPZ0sRFjIXURA78XFsfI8x
         Ak61zBDsTe59hWxGDW66rn8EiDF2pqEE8GCxM+L4jkKkE8Sfv5TrM1r+P+WjLZLrhYuP
         6yAdcYaR5la1lWf0/h5PMl6zpWp1w4lBj9579Eq3F+1J7oyCOy4dLD0SGa0G6hJ4Rk9W
         RPHQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745572762; x=1746177562;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=+RDerG6jNULfaA4YUvRDnnpy9iI0YZWbPJff+ejUuJQ=;
        b=tGHi6tlRw39zbJ4J75qJUTgvvNbOwD8OEb6LG3RlvpqN4aDQ1nZGufcKuCDrDPShyf
         JCvl/hDEF8WI34pzUXBYyd/9Tbez1ijO+QWQPO72ERuJTIk9idMFQ5ugC0nxXIFidVUt
         TFgzfLKGLxacVxdufRuBNgC03UNsmX91AgS0EzR9H9CCxbCoZEtbTOiCJ75I9EgyA78q
         RA8dSJghSIqF/H7TfKQg5DE6f/j+s3RnV8tqd5WXWKPZN4UT7aKzCMtcQrjYPhHGZMN/
         +kBogEjrqUBpVJKGqGIRAeEVUq8yzhIIihscSuggHQ99p9ySGCZwa0EJplHwkL30dTvT
         0jeA==
X-Forwarded-Encrypted: i=1; AJvYcCVqdH8I5sXOGBgXtkm1GnNn5X4PwHjl7dLFR5GFXBm+skwgzM51TEYWy+o3sz1Y8Ku8++8AfKwOd0U=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxFFTIviIPOOfH2C/ZDqa7FnRWn8npmdsAeSaqZhrDqIbJ1K6jG
	2QwoLKQuqy9yHqk0vOpvZyAdgR+8vskWmBQNQvbG10J58W+qcM+Mrt5x/mq4QrIUgYGP8yv5gYk
	=
X-Gm-Gg: ASbGncu4x+NDFLGBhivRjA3kAd1adSao/m3YWT/jkZfaR920MzTnwWNv29qZcIMBzx7
	3Tml2QbqAKChbvGOZ12l6qxwN0CBDC1dNOTzDKtB6UcRERZgoL5PoO6k1FaPjgWyjQYwetVBipK
	QyQmY0AXi9Ywxm7WTsq4M54Uon7bd/SWnVD2qQaprCPI1KAmPfm/nG3Yo5iRaJgjzd6cyQbS2Od
	XZhF3E+/DvCvSPHPpTCyNbxjYqHlXe0a5SqVEUrF7MyPMDJkTi3u2gjok9h5szrnAGqlYbaYZTj
	cCVQeyA1XTg1+ewwx2q+vSdyNRrEz/SbWuTq1smzDtmwxrYTOHy5MiedQDQXo8pmDYPP+rucX3y
	munkt2AW/3rPMmJxwSSI07UZYgA==
X-Google-Smtp-Source: AGHT+IFvG8gujqfBiGFxzGotrg/BtaUAf1/Ehm8uMVqba3i5/pGrdlORkjMQsp2/zrhC5qWitnQ8Sw==
X-Received: by 2002:a5d:598d:0:b0:391:487f:282a with SMTP id ffacd0b85a97d-3a074f492f2mr1200260f8f.50.1745572762384;
        Fri, 25 Apr 2025 02:19:22 -0700 (PDT)
Message-ID: <2acad9ba-564a-4d18-9b09-dcabe8f7b025@suse.com>
Date: Fri, 25 Apr 2025 11:19:21 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC] xen/x86: allow overlaps with non-RAM regions
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "Lira, Victor M" <VictorM.Lira@amd.com>
Cc: Jason Andryuk <jason.andryuk@amd.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org,
 Andrew Cooper <andrew.cooper3@citrix.com>, Xenia.Ragiadakou@amd.com,
 Alejandro.GarciaVallejo@amd.com
References: <3c5dfd26-3c12-498b-aca4-0beac4e991a5@amd.com>
 <Z_jFSb2-efexUNlL@macbook.lan> <9ed89e50-c645-407d-80b4-5b78cb6e36fa@amd.com>
 <Z_zGdE91KwlYxu_A@macbook.lan> <ce06ec74-1a73-4a02-87fc-3e829399cc77@amd.com>
 <aAnvRMgJxAskbCtE@macbook.lan> <aAoPNTsLjMMfsHvJ@mail-itl>
 <aAoW-kvpsWuPJwrC@macbook.lan> <775d3ac0-8f43-415a-a32d-14377092b96b@amd.com>
 <554026de-bbb4-488f-95c4-8e2f034d6d0e@amd.com> <aAtPpOq2Kc_N6hBy@macbook.lan>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <aAtPpOq2Kc_N6hBy@macbook.lan>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 25.04.2025 11:02, Roger Pau Monné wrote:
> On Thu, Apr 24, 2025 at 02:38:29PM -0700, Lira, Victor M wrote:
>> Hello all,
>>
>> Here is the output from Roger's patch.
>> This is the section of interest:
>>
>>> (XEN) [ 7.547326] d0 has maximum 3328PIRQs
>>> (XEN) [ 7.555644] *** Building a PVH Dom0 ***
>>> (XEN) [ 7.567780] d0: identity mappings for IOMMU:
>>> (XEN) [ 7.577312]  [00000000a0, 00000000ff] RW
>>> (XEN) [ 7.586153]  [0000009bff, 0000009fff] RW
>>> (XEN) [ 7.594992]  [00000cabc9, 00000cc14c] RW
>>> (XEN) [ 7.603866]  [00000cc389, 00000cc389] RW
>>> (XEN) [ 7.612707]  [00000cc70a, 00000cd1fe] RW
>>> (XEN) [ 7.621896]  [00000ce000, 00000cffff] RW
>>> (XEN) [ 7.630731]  [00000fd000, 00000fd2ff] RW
>>> (XEN) [ 7.639573]  [00000fd304, 00000febff] RW
>>> (XEN) [ 7.648414] gfn 0xfe800mfn 0xfe800type 5order 9
>>> (XEN) [ 7.658985] Xen WARNat arch/x86/mm/p2m-pt.c:599
>>> (XEN) [ 7.669215] ----[ Xen-4.21-unstable x86_64  debug=y  Tainted:   C
>>>    ]----
>>> ...
>>> (XEN) [ 8.227521] Xen call trace:
>>> (XEN) [ 8.234107]    [<ffff82d040309bd6>] R
>>> arch/x86/mm/p2m-pt.c#p2m_pt_set_entry+0xc1/0x961
>>> (XEN) [ 8.250925]    [<ffff82d0402fbf0d>] F p2m_set_entry+0xb5/0x13c
>>> (XEN) [ 8.263579]    [<ffff82d0402fc091>] F
>>> arch/x86/mm/p2m.c#set_typed_p2m_entry+0xfd/0x6f0
>>> (XEN) [ 8.280388]    [<ffff82d0402fdcd4>] F set_mmio_p2m_entry+0x62/0x6b
>>> (XEN) [ 8.293735]    [<ffff82d0402ff9cf>] F map_mmio_regions+0x77/0xcf
>>> (XEN) [ 8.306734]    [<ffff82d04042fc1b>] F
>>> drivers/passthrough/x86/iommu.c#identity_map+0x7e/0x196
>>> (XEN) [ 8.324761]    [<ffff82d040232935>] F
>>> rangeset_report_ranges+0x10a/0x159
>>> (XEN) [ 8.339149]    [<ffff82d0404301e6>] F
>>> arch_iommu_hwdom_init+0x27f/0x316
>>> (XEN) [ 8.353361]    [<ffff82d04042cffa>] F
>>> drivers/passthrough/amd/pci_amd_iommu.c#amd_iommu_hwdom_init+0xa9/0xc1
>>> (XEN) [ 8.373988]    [<ffff82d040430846>] F iommu_hwdom_init+0x26/0x2e
>>> (XEN) [ 8.386989]    [<ffff82d040441a30>] F
>>> dom0_construct_pvh+0x265/0x1141
>>> (XEN) [ 8.400860]    [<ffff82d040457f7c>] F construct_dom0+0x47/0x93
>>> (XEN) [ 8.413511]    [<ffff82d0404504e0>] F __start_xen+0x21fc/0x2425
>>> (XEN) [ 8.426340]    [<ffff82d0402043be>] F __high_start+0x8e/0x90
>>> (XEN) [ 8.438646]
>>> (XEN) [ 8.442632]  [00000fec02, 00000fedff] RW
>>> (XEN) [ 8.451599]  [00000fee01, 00000fffff] RW
>>> (XEN) [ 8.460571]  [000080f340, 00008501ff] RW
>>> (XEN) [ 8.470205] 0000:02:00.0: not mapping BAR [fea00, fea03] invalid
>>> position
>>> (XEN) [ 8.484769] 0000:03:00.0: not mapping BAR [fe900, fe90f] invalid
>>> position
>>> (XEN) [ 8.499330] 0000:03:00.0: not mapping BAR [fe910, fe913] invalid
>>> position
>>> (XEN) [ 8.513890] gfn 0xfe910mfn 0xfffffffffffffffftype 1order 0
>>> (XEN) [ 8.526370] Xen WARNat arch/x86/mm/p2m-pt.c:599
>>> ...
>>> (XEN) [ 9.094902] Xen call trace:
>>> (XEN) [ 9.101491]    [<ffff82d040309bd6>] R
>>> arch/x86/mm/p2m-pt.c#p2m_pt_set_entry+0xc1/0x961
>>> (XEN) [ 9.118306]    [<ffff82d0402fbf0d>] F p2m_set_entry+0xb5/0x13c
>>> (XEN) [ 9.130957]    [<ffff82d0402fe1fb>] F
>>> p2m_remove_identity_entry+0x26f/0x2ca
>>> (XEN) [ 9.145865]    [<ffff82d040268a4a>] F
>>> vpci_make_msix_hole+0x11a/0x27a
>>> (XEN) [ 9.159734]    [<ffff82d0402654c4>] F
>>> drivers/vpci/header.c#modify_decoding+0x4e/0x1b3
>>> (XEN) [ 9.176547]    [<ffff82d040265c89>] F
>>> drivers/vpci/header.c#modify_bars+0x660/0x6c4
>>> (XEN) [ 9.192838]    [<ffff82d040266427>] F
>>> drivers/vpci/header.c#init_header+0x5e7/0x86f
>>> (XEN) [ 9.209129]    [<ffff82d04026449c>] F vpci_assign_device+0xd3/0x115
>>> (XEN) [ 9.222648]    [<ffff82d040430de4>] F
>>> drivers/passthrough/pci.c#setup_one_hwdom_device+0x92/0x15b
>>> (XEN) [ 9.241368]    [<ffff82d04043112a>] F
>>> drivers/passthrough/pci.c#_setup_hwdom_pci_devices+0x158/0x241
>>> (XEN) [ 9.260612]    [<ffff82d04027aad7>] F
>>> drivers/passthrough/pci.c#pci_segments_iterate+0x43/0x69
>>> (XEN) [ 9.278814]    [<ffff82d040431513>] F
>>> setup_hwdom_pci_devices+0x28/0x2f
>>> (XEN) [ 9.293026]    [<ffff82d04042d009>] F
>>> drivers/passthrough/amd/pci_amd_iommu.c#amd_iommu_hwdom_init+0xb8/0xc1
>>> (XEN) [ 9.313649]    [<ffff82d040430846>] F iommu_hwdom_init+0x26/0x2e
>>> (XEN) [ 9.326652]    [<ffff82d040441a30>] F
>>> dom0_construct_pvh+0x265/0x1141
>>> (XEN) [ 9.340516]    [<ffff82d040457f7c>] F construct_dom0+0x47/0x93
>>> (XEN) [ 9.353172]    [<ffff82d0404504e0>] F __start_xen+0x21fc/0x2425
>>> (XEN) [ 9.365999]    [<ffff82d0402043be>] F __high_start+0x8e/0x90
>>> (XEN) [ 9.378305]
>>> (XEN) [ 9.382289] 0000:04:00.0: not mapping BAR [fe700, fe77f] invalid
>>> position
>>> (XEN) [ 9.396850] 0000:04:00.3: not mapping BAR [fe500, fe5ff] invalid
>>> position
>>> (XEN) [ 9.411412] 0000:04:00.4: not mapping BAR [fe400, fe4ff] invalid
>>> position
>>> (XEN) [ 9.425972] 0000:05:00.0: not mapping BAR [fe801, fe801] invalid
>>> position
>>> (XEN) [ 9.440531] 0000:05:00.1: not mapping BAR [fe800, fe800] invalid
>>> position
>>
>> So vpci_make_msix_hole is where it's getting removed.
> 
> Oh, the output is very mangled when displaying the email on my MUA,
> but I see.  I think I now get what's happening.
> 
> Since the BAR falls into a reserved region, the `enabled` bit for it is
> never set, and thus the handling in msix_accept() never triggers,
> leaving those accesses unhandled and terminated by the null handler.
> 
> I think the patch below should fix it, let me know how it goes.

Just to mention - "fix" isn't quite the right term here, is it? BARs may
not live in E820_RESERVED areas. And while we make those up from the EFI
memory map we're handed, ...

> There's also a further known issue with vpci_make_msix_hole(): if the
> BARs are repositioned the holes are not restored to their previous
> values, but I don't think you are hitting that issue (yet).

... the memory map we're seeing here will go stale once the OS (any; not
just Xen or Linux) decides to move those BARs. Imo firmware simply may
not request runtime mappings of BARs.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Apr 25 09:24:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 09:24:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.967590.1357356 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8FHt-00020K-UX; Fri, 25 Apr 2025 09:24:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 967590.1357356; Fri, 25 Apr 2025 09:24: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 1u8FHt-00020D-Rn; Fri, 25 Apr 2025 09:24:01 +0000
Received: by outflank-mailman (input) for mailman id 967590;
 Fri, 25 Apr 2025 09:24: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=ZJ1s=XL=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u8FHs-000207-Mx
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 09:24:00 +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 04db3973-21b7-11f0-9eb3-5ba50f476ded;
 Fri, 25 Apr 2025 11:23:59 +0200 (CEST)
Received: by mail-wr1-x42d.google.com with SMTP id
 ffacd0b85a97d-39c1efc457bso1417098f8f.2
 for <xen-devel@lists.xenproject.org>; Fri, 25 Apr 2025 02:23:59 -0700 (PDT)
Received: from [10.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-3a073c8cc81sm1808299f8f.19.2025.04.25.02.23.58
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 25 Apr 2025 02:23:58 -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: 04db3973-21b7-11f0-9eb3-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745573039; x=1746177839; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=YL1JeHWZHkfCaHmk2y8qmdyiaUjZ0BhqFDXf/gZBLWc=;
        b=PCaxymV3THlHyJEffxkOj870Nf586TxNUWP6Xi17WlSAqbaZ1G+N+KeSEJEAYWza1T
         k/GSDnfTMcGzXNd+XJCooGA6726p8i9HIG8kx2r8rp2WsHvDZRGtw++PicdXZ4BWkFl0
         DoCr7pEGpQR+DLUgmUDJglPK2i7NmF+ZkpO9RIC/AAjdvXcbTXkMK+eUwByQXtLO7kkS
         IhUIowiiOteTESMqTPDt6lfoAHWmShqFx/xQsbXhihhQo0s624pB8MXUP9+Npb/PiHPI
         GCKusw6/GdOMKEUOIGhQhXPXeqT2Y2TsMk2mdYU+o8/AD52e8qO7iMm3FnTq01IcrJUJ
         lXmQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745573039; x=1746177839;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=YL1JeHWZHkfCaHmk2y8qmdyiaUjZ0BhqFDXf/gZBLWc=;
        b=gHmuYoWUj9eieJe0r7cAYgxSQ/QCH3aiN7G7/2p/aVllDiUoG6YjXJNbhmc9nRdnZ+
         mcHfXebc7zXyfEjF2xAWvDj7I05Jpvl8DaSCRn2hXwRIscMmVzJzpxu11elMBoobQ7Kc
         SYx2Q3VsuWorWIgZort6yYWWPw8CTOZCBvjLIuPQ5TNZ7VfDzsnnQ498S7lGY8DIA20u
         GltFubQ6LJtfcIFzLjOKb9XIggHZb4US1bPCTso7UYzqqEZu7r4wEIidwyruJYv/CcfT
         EyqmkbEp/gksbz29ytE1LtBtjoAuTpmSTjcSiiHfgDMQX2QQxQyVOd7MNYPrzhcbh9Nt
         0PWQ==
X-Forwarded-Encrypted: i=1; AJvYcCXSt7X6NOUfRzis7B8SpNeAZsWqy0u7srXIj8RgnaHi6JK58MKk/atoeJGlIoyO9aNgEuH/G09obq8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxGwibG3fYVbiidWg+rJz5Lpa8p7iBwbT/89XMiyeC81IgqSbwU
	zMiam242JP8LZQe3ZQ2VbDAKnKuKqOjfTLKO7UbZG+FiNUNaG4vYHfRJp/C4XA==
X-Gm-Gg: ASbGncvBGZkudzZ6+5CheuIgtYw0LNyRjn06hHCkZ6u+MoEcxSpeVS9xlDRWR+zRLMp
	sqgFCGNTNEwbVghBroGm2nqZtCZlsQNH9tUVARWG+v2u7LIk2RDG6XaMf7gxZxenryZPWuzOn2N
	/gB+LNNJrsMegdonOVUXCeFwyaNScJ6mD67NmtsoyntqhE7c02Z1Wh+j5fEvCpzkPxioD1fYv5k
	/O3+wrEze9HCW6+gkDrVDrIN5nzavrFiySdmfaW21eFqLoLveg5cnRPBNXc2Y32QYey4yjnZvl8
	cfyT4saDGTGbmh0B54kSX1r/TvrsPSU/kG6Ij7/lANJmRAzKaxe2+D0Ffmg4CyAddJ2eF+rdRxz
	jLoBoQ43UgLhCYT96QPtet39yyQ==
X-Google-Smtp-Source: AGHT+IFbBMECwHqjdumjyUFCnWS4u2Z4n0cuqZfNYYGhiG3kI3FTzO9p3YjJvpRv3BBF711E4Lcefg==
X-Received: by 2002:a05:6000:2903:b0:39c:13fa:80b with SMTP id ffacd0b85a97d-3a074e0f772mr1045088f8f.12.1745573038885;
        Fri, 25 Apr 2025 02:23:58 -0700 (PDT)
Message-ID: <4b433cff-b39f-4603-bd2a-9cab71d75fdf@suse.com>
Date: Fri, 25 Apr 2025 11:23:58 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: UBSan bug in real mode fpu emulation
To: Fabian Specht <f.specht@tum.de>
Cc: manuel.andreas@tum.de, xen-devel@lists.xenproject.org
References: <l2jnq5cxgkzcdkndp3mjf76nd7wdp2pbstkqo7llaarmbfqdge@bxdydela4rcf>
 <40a5c44c-4ef1-4852-b441-ea65e31b2345@suse.com>
 <s6vpfyfzvp73va7geesgj6pmcuhebglqsz7vpug6c44c3qiawf@l3pxta3f7uxz>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <s6vpfyfzvp73va7geesgj6pmcuhebglqsz7vpug6c44c3qiawf@l3pxta3f7uxz>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.04.2025 12:05, Fabian Specht wrote:
> On Thu, Apr 24, 2025 at 08:34:42AM +0200, Jan Beulich wrote:
>> Since ...
>>
>>> Similar code resides in the same file in lines 87, 125 and 127.
>>
>> ... all of these are shifts by 16, could you clarify what it is that you
>> want to shift by 4? Imo what we need to do here is add casts to unsigned
>> int, for the results thereof to be shifted (or use some extra arithmetic
>> to achieve the same effect, e.g. add in 0U). Or we could go and replace
>> the shifts by 16 with shifts by 12 (accounting for the later right shift
>> by 4, which would then need dropping).
> 
> I will submit a patch in the coming hours.

Since in another reply you said "yes" to the cast suggestion, I'd like to
point out that I was meaning to try the other route first. But that's not
going to be today.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Apr 25 09:42:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 09:42:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.967609.1357367 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8FZZ-0006rm-AQ; Fri, 25 Apr 2025 09:42:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 967609.1357367; Fri, 25 Apr 2025 09:42: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 1u8FZZ-0006rf-6R; Fri, 25 Apr 2025 09:42:17 +0000
Received: by outflank-mailman (input) for mailman id 967609;
 Fri, 25 Apr 2025 09:42:15 +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 1u8FZX-0006rZ-GQ
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 09:42:15 +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 1u8FZV-003jMm-0k;
 Fri, 25 Apr 2025 09:42:13 +0000
Received: from lfbn-gre-1-199-136.w90-112.abo.wanadoo.fr ([90.112.161.136]
 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 1u8FZU-000ab9-2U;
 Fri, 25 Apr 2025 09:42: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=xenproject.org; s=20200302mail; h=In-Reply-To:Content-Type:MIME-Version:
	References:Message-ID:Subject:Cc:To:From:Date;
	bh=WCgYwtS6sH/0hupOA7tJzv1wMClgBMpdYk9QAVfY7nI=; b=V83fLX9H8djmFtLJQYjCwyDTHb
	jfhKip2KbcISSpiNNvnJqG3jnBxTgfZX0GeeScNLnEZlGxK4Y2yj/WxUWBP3qJgsCrUQzr2KTDjXD
	lM3BfRFvv5u8c1y8uXagDt0edh4syrwHYoia/2E+1R386x/6Qa29ir8pYuwIduqQ1TcA=;
Date: Fri, 25 Apr 2025 11:42:10 +0200
From: Anthony PERARD <anthony@xenproject.org>
To: Jan Beulich <jbeulich@suse.com>, Hongbo <hehongbo@mail.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org
Subject: Re: [XEN PATCH v2 1/1] tools/libxl: search PATH for QEMU if
 `QEMU_XEN_PATH` is not absolute
Message-ID: <aAtY8n5xF6SExmDJ@l14>
References: <20241223031753.13709-1-hehongbo@mail.com>
 <20250330160304.20899-1-hehongbo@mail.com>
 <54d1d04a-e2b5-449e-97d9-8888e5b0f5eb@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <54d1d04a-e2b5-449e-97d9-8888e5b0f5eb@suse.com>

On Tue, Apr 08, 2025 at 12:38:16PM +0200, Jan Beulich wrote:
> On 30.03.2025 18:03, Hongbo wrote:
> > +                {
> > +                    char *path_dup = libxl__strdup(gc, path_env);
> > +                    char *saveptr;
> > +
> > +                    char *path = strtok_r(path_dup, ":", &saveptr);
> 
> Main reason I'm replying here is this one though, where CI found gcc to
> object:
> 
> libxl_dm.c: In function 'libxl__domain_device_model':
> libxl_dm.c:356:31: error: 'saveptr' may be used uninitialized in this function [-Werror=maybe-uninitialized]
>                          char *candidate = libxl__abs_path(gc, configured_dm, path);
>                                ^
> cc1: all warnings being treated as errors
> 
> The compiler can't know that path_dup is guaranteed non-NULL. Hence, if it
> can see (part of) the implementation of strtok_r(), it would observe that
> it's possible that the continuation-invocation path is taken, where
> saveptr necessarily is consumed.

I'll recommit this patch again with `saveptr` initialised to NULL. My
man page says some implementation requires this anyway.

Cheers,

-- 
Anthony PERARD


From xen-devel-bounces@lists.xenproject.org Fri Apr 25 09:55:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 09:55:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.967619.1357377 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8FmA-00018o-Bp; Fri, 25 Apr 2025 09:55:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 967619.1357377; Fri, 25 Apr 2025 09:55:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8FmA-00018h-95; Fri, 25 Apr 2025 09:55:18 +0000
Received: by outflank-mailman (input) for mailman id 967619;
 Fri, 25 Apr 2025 09:55: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=AgEa=XL=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1u8Fm9-00018b-EA
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 09:55:17 +0000
Received: from mail-wm1-x344.google.com (mail-wm1-x344.google.com
 [2a00:1450:4864:20::344])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6388b405-21bb-11f0-9eb3-5ba50f476ded;
 Fri, 25 Apr 2025 11:55:16 +0200 (CEST)
Received: by mail-wm1-x344.google.com with SMTP id
 5b1f17b1804b1-43edecbfb94so18944345e9.1
 for <xen-devel@lists.xenproject.org>; Fri, 25 Apr 2025 02:55:16 -0700 (PDT)
Received: from ?IPV6:2003:e5:870f:e000:6c64:75fd:2c51:3fef?
 (p200300e5870fe0006c6475fd2c513fef.dip0.t-ipconnect.de.
 [2003:e5:870f:e000:6c64:75fd:2c51:3fef])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-440a52f89b2sm19712325e9.8.2025.04.25.02.55.13
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 25 Apr 2025 02:55: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: 6388b405-21bb-11f0-9eb3-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745574916; x=1746179716; 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=NcWE1bJYcLRfud/TYBaEGj5sNWQY2z4fAnt1IKr2YXk=;
        b=FK/eg2ITO+eIMg7dCbMnvaxA4yOVOnjAZ6Jm2RXimwzeGm+KN+9ex1aJnY0dAOwSiO
         0iZA3gzNo9NqFLfeOhwPKQHl85CEi/euOtYOSu86fVmvDo6NrAVKnRlujFeXojhtDf3B
         SmM/rm4v4h2A4klYTzGk6Sahql/veNZpgXIa9VHtCbvAf67gMpkLIofz80vz0ZjAAqR0
         Y99QTJv9ZiT1dG0g9LrZ7KmMajwrTE9T50jGzVno7QgSr6msWOEnTlsyBLv6zK7eU07u
         ayOiBT6zPDXyP3UUvYEaUMc22gLhBVcP3zbzLXLrC64vwwg3gk9CJ0PHuxfufBOnzsSQ
         V1tw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745574916; x=1746179716;
        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=NcWE1bJYcLRfud/TYBaEGj5sNWQY2z4fAnt1IKr2YXk=;
        b=Ox6LERlF1mKFlFqHZ975OOcyhz6lsh18dYhhPVZDYAyzS6vDCSOD3gi3btNKFsZfGu
         RDoJKJCJ8AnDiTN8BS42UGjjlv05LJEWdjxSPrMxB+K7dkZ5alarun9ubO3FeVIU+F+W
         otGGznDs7lRtFwKnDBCQ3vCoUOEjc40zNv4fajgczOjVKVNv/wZirRm8qx7Gdp87Mzf5
         x1XhsHDNtzACK8h9RXE90qmK5JC+y0APFfK9iFqDmKIdnh+mIsVy4htP+2Vs0gLpfhtk
         Cd/I7FdlQW9WhrS2ZrY6qCv8vdsj7dQwPMGTf/EWxfBVLwyKV0cG2siCgrmCTXiY5bWu
         nLrg==
X-Forwarded-Encrypted: i=1; AJvYcCUQv/YykHe6Q9iZOA8k0hOK4dVGw4G6O3nlZ5AtrQ+tyUepafv/xJXMQtgyPSat21Wkn2MRQ/y9lu4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwY4c19ikl1y0SYJOsPtNNcP9RQB8NgDfa+0dHjQpNgpw8CixFu
	j32XZcc8sO4OmD0zQPxS3zLNvXEvq6J6nYs9yUCA7/bQvrxN47Smm4VqwQ2JRt4=
X-Gm-Gg: ASbGncvaClsr5sPQ31/C3kE6KvdCaVA1uwS7XreLjO/+SmTQ3EyrNwcKxwDDzqHzGeM
	UZsZHNn7w8z3M4q3D8RPBhAfIjRAPWx3TmAynPl2FY7g+qWESkQheDLh/ZV7Dy8hdRT4IdPA5Vz
	sFLLYF4IUvY2HuND08PEET1m0GysB8c/KIReewVgEkadJSM2CMLAr+7ypw29KpVop1NUOZPIiQw
	uH+vWhsdLjB+XbE3UHaur8CJCSwhOrDQJUv+zEx7x3fre7/OvyHCRZ7YSxS13hq50NZUF5hNJWO
	xUhE6O9zDAwFnA5Uw25GqD2uCQ5nqka4i+h1NI5U7xp0COgDPSKPFP1hAfO8HxWjDKUpN7LlvMq
	h/el6qWe7u8W/S+oT95/GYpx1fVk5XeGtnd8M8O4lo1k1p1HzSIv9p/u34t/I8KuBtQ==
X-Google-Smtp-Source: AGHT+IHtx1TOSgXcL+wm9ZIPfyr+4YgzzXRNPlhTDP9N/InsP2TFGU+fY9WmjuTgX4ibBWR0TYzRDw==
X-Received: by 2002:a05:600c:3491:b0:43b:ce3c:19d0 with SMTP id 5b1f17b1804b1-440a66b6fb1mr13860625e9.29.1745574915455;
        Fri, 25 Apr 2025 02:55:15 -0700 (PDT)
Message-ID: <524349a7-55da-42a2-b9cc-ec0d2ce66ae4@suse.com>
Date: Fri, 25 Apr 2025 11:55:12 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 09/14] x86/xen/msr: Remove calling
 native_{read,write}_msr{,_safe}() in pmu_msr_{read,write}()
To: "Xin Li (Intel)" <xin@zytor.com>, linux-kernel@vger.kernel.org,
 kvm@vger.kernel.org, linux-perf-users@vger.kernel.org,
 linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
 linux-pm@vger.kernel.org, linux-edac@vger.kernel.org,
 xen-devel@lists.xenproject.org, linux-acpi@vger.kernel.org,
 linux-hwmon@vger.kernel.org, netdev@vger.kernel.org,
 platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
 dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com, acme@kernel.org,
 andrew.cooper3@citrix.com, peterz@infradead.org, namhyung@kernel.org,
 mark.rutland@arm.com, alexander.shishkin@linux.intel.com, jolsa@kernel.org,
 irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
 wei.liu@kernel.org, ajay.kaher@broadcom.com,
 bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
 pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
 luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
 haiyangz@microsoft.com, decui@microsoft.com, dapeng1.mi@linux.intel.com
References: <20250425083442.2390017-1-xin@zytor.com>
 <20250425083442.2390017-10-xin@zytor.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: <20250425083442.2390017-10-xin@zytor.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------umyLmQJXz7NbwmBml0jM4Ng1"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------umyLmQJXz7NbwmBml0jM4Ng1
Content-Type: multipart/mixed; boundary="------------ILcDmpjOr8sgvBFsIPNfJu0U";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: "Xin Li (Intel)" <xin@zytor.com>, linux-kernel@vger.kernel.org,
 kvm@vger.kernel.org, linux-perf-users@vger.kernel.org,
 linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
 linux-pm@vger.kernel.org, linux-edac@vger.kernel.org,
 xen-devel@lists.xenproject.org, linux-acpi@vger.kernel.org,
 linux-hwmon@vger.kernel.org, netdev@vger.kernel.org,
 platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
 dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com, acme@kernel.org,
 andrew.cooper3@citrix.com, peterz@infradead.org, namhyung@kernel.org,
 mark.rutland@arm.com, alexander.shishkin@linux.intel.com, jolsa@kernel.org,
 irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
 wei.liu@kernel.org, ajay.kaher@broadcom.com,
 bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
 pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
 luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
 haiyangz@microsoft.com, decui@microsoft.com, dapeng1.mi@linux.intel.com
Message-ID: <524349a7-55da-42a2-b9cc-ec0d2ce66ae4@suse.com>
Subject: Re: [PATCH v3 09/14] x86/xen/msr: Remove calling
 native_{read,write}_msr{,_safe}() in pmu_msr_{read,write}()
References: <20250425083442.2390017-1-xin@zytor.com>
 <20250425083442.2390017-10-xin@zytor.com>
In-Reply-To: <20250425083442.2390017-10-xin@zytor.com>

--------------ILcDmpjOr8sgvBFsIPNfJu0U
Content-Type: multipart/mixed; boundary="------------KIfLsXjXNDGJVTPgM3MpoiKp"

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

T24gMjUuMDQuMjUgMTA6MzQsIFhpbiBMaSAoSW50ZWwpIHdyb3RlOg0KPiBocGEgZm91bmQg
dGhhdCBwbXVfbXNyX3dyaXRlKCkgaXMgYWN0dWFsbHkgYSBjb21wbGV0ZWx5IHBvaW50bGVz
cw0KPiBmdW5jdGlvbiBbMV06IGFsbCBpdCBkb2VzIGlzIHNodWZmbGUgc29tZSBhcmd1bWVu
dHMsIHRoZW4gY2FsbHMNCj4gcG11X21zcl9jaGtfZW11bGF0ZWQoKSBhbmQgaWYgaXQgcmV0
dXJucyB0cnVlIEFORCB0aGUgZW11bGF0ZWQgZmxhZw0KPiBpcyBjbGVhciB0aGVuIGRvZXMg
KmV4YWN0bHkgdGhlIHNhbWUgdGhpbmcqIHRoYXQgdGhlIGNhbGxpbmcgY29kZQ0KPiB3b3Vs
ZCBoYXZlIGRvbmUgaWYgcG11X21zcl93cml0ZSgpIGl0c2VsZiBoYWQgcmV0dXJuZWQgdHJ1
ZS4gIEFuZA0KPiBwbXVfbXNyX3JlYWQoKSBkb2VzIHRoZSBlcXVpdmFsZW50IHN0dXBpZGl0
eS4NCj4gDQo+IFJlbW92ZSB0aGUgY2FsbHMgdG8gbmF0aXZlX3tyZWFkLHdyaXRlfV9tc3J7
LF9zYWZlfSgpIHdpdGhpbg0KPiBwbXVfbXNyX3tyZWFkLHdyaXRlfSgpLiAgSW5zdGVhZCBy
ZXVzZSB0aGUgZXhpc3RpbmcgY2FsbGluZyBjb2RlDQo+IHRoYXQgZGVjaWRlcyB3aGV0aGVy
IHRvIGNhbGwgbmF0aXZlX3tyZWFkLHdyaXRlfV9tc3J7LF9zYWZlfSgpIGJhc2VkDQo+IG9u
IHRoZSByZXR1cm4gdmFsdWUgZnJvbSBwbXVfbXNyX3tyZWFkLHdyaXRlfSgpLiAgQ29uc2Vx
dWVudGx5LA0KPiBlbGltaW5hdGUgdGhlIG5lZWQgdG8gcGFzcyBhbiBlcnJvciBwb2ludGVy
IHRvIHBtdV9tc3Jfe3JlYWQsd3JpdGV9KCkuDQo+IA0KPiBXaGlsZSBhdCBpdCwgcmVmYWN0
b3IgcG11X21zcl93cml0ZSgpIHRvIHRha2UgdGhlIE1TUiB2YWx1ZSBhcyBhIHU2NA0KPiBh
cmd1bWVudCwgcmVwbGFjaW5nIHRoZSBjdXJyZW50IGR1YWwgdTMyIGFyZ3VtZW50cywgYmVj
YXVzZSB0aGUgZHVhbA0KPiB1MzIgYXJndW1lbnRzIHdlcmUgb25seSB1c2VkIHRvIGNhbGwg
bmF0aXZlX3dyaXRlX21zcnssX3NhZmV9KCksIHdoaWNoDQo+IGhhcyBub3cgYmVlbiByZW1v
dmVkLg0KPiANCj4gWzFdOiBodHRwczovL2xvcmUua2VybmVsLm9yZy9sa21sLzBlYzQ4Yjg0
LWQxNTgtNDdjNi1iMTRjLTM1NjNmZDE0YmNjNEB6eXRvci5jb20vDQo+IA0KPiBTdWdnZXN0
ZWQtYnk6IEguIFBldGVyIEFudmluIChJbnRlbCkgPGhwYUB6eXRvci5jb20+DQo+IFNpZ24t
b2ZmLWJ5OiBYaW4gTGkgKEludGVsKSA8eGluQHp5dG9yLmNvbT4NCg0KUmV2aWV3ZWQtYnk6
IEp1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT4NCg0KDQpKdWVyZ2VuDQo=
--------------KIfLsXjXNDGJVTPgM3MpoiKp
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-----

--------------KIfLsXjXNDGJVTPgM3MpoiKp--

--------------ILcDmpjOr8sgvBFsIPNfJu0U--

--------------umyLmQJXz7NbwmBml0jM4Ng1
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/Ey8FAmgLXAEFAwAAAAAACgkQsN6d1ii/Ey88
Cgf+MAp/YWFiSmqylTxTDIt7kHncN7KNk+/Iat64QmjTwZbgOO6Ol0/EWdPH9IKncht38/BsQQbc
Kpm8hyi72Q8JqBJXFbhsZQPFShJWtlgXy8oJ5o96+HR0j/BUlj+kUU3qjrxzFb6wsaLjo8j/guKM
cj9Vi4kIRazqWp0L8GIURgfnQIvtQdY5C1IU6+wR1JzSKlUZKDTXkc+aYaCRheR7pXHyHxMk1zsC
z31EStqcPz83sn9uj3GfIrGzroOELJyGJYGQm+6pJlaQDKSnOQGmdJWd5v0HysMQB2kYSTn/8I8T
Owl3spzB9/MRmcopaSWd/n53lPf8oXlOAiI/Wh2UcA==
=/QzV
-----END PGP SIGNATURE-----

--------------umyLmQJXz7NbwmBml0jM4Ng1--


From xen-devel-bounces@lists.xenproject.org Fri Apr 25 10:08:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 10:08:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.967638.1357387 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8Fz7-0003je-HM; Fri, 25 Apr 2025 10:08:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 967638.1357387; Fri, 25 Apr 2025 10:08: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 1u8Fz7-0003jX-Ek; Fri, 25 Apr 2025 10:08:41 +0000
Received: by outflank-mailman (input) for mailman id 967638;
 Fri, 25 Apr 2025 10:08: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=AgEa=XL=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1u8Fz6-0003jM-Be
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 10:08:40 +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 425242f5-21bd-11f0-9eb3-5ba50f476ded;
 Fri, 25 Apr 2025 12:08:39 +0200 (CEST)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-39ee623fe64so1953302f8f.1
 for <xen-devel@lists.xenproject.org>; Fri, 25 Apr 2025 03:08:39 -0700 (PDT)
Received: from ?IPV6:2003:e5:870f:e000:6c64:75fd:2c51:3fef?
 (p200300e5870fe0006c6475fd2c513fef.dip0.t-ipconnect.de.
 [2003:e5:870f:e000:6c64:75fd:2c51:3fef])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-440a53874a9sm19482305e9.34.2025.04.25.03.08.37
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 25 Apr 2025 03:08:38 -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: 425242f5-21bd-11f0-9eb3-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745575719; x=1746180519; 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=xQKK3OcwSXAQmSMxY7ZPonWOs2FqcDKLKCnyPwhUYyM=;
        b=BB52OrrfpbV9vqAhwE2zT4S0+30Yyu3Iu9xVCUb5xTCOW2sC0F0lJylZ761wbp1RlP
         gjCLQPQQpFlShEhsZvkvcLEliGNUSAYCHVCXuuCCbH6Iz09qIWqZTW5eoEaiGJcEBkhK
         G9LZremld3jNdxdcE3AQGMf/rm81/4uVAmR9brXsSNapzjgqlBwcLJ9CV0eBdG0ywjLc
         yhJqwSwW31QkYBQ97uzVH62KiJcS1RjhYCiuTUXmFosB9D03S99iMF1DRJsDH5zgWzjT
         IruGbNx3jlRPqvwG6NqyDxD+cFFnoX+gcc4OyMzAn6U0sFAQtSNibDkIFtKJ+7pBMmjx
         ZB7A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745575719; x=1746180519;
        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=xQKK3OcwSXAQmSMxY7ZPonWOs2FqcDKLKCnyPwhUYyM=;
        b=tHmz/188Yi9B1kOlKxyORHn+uZO71B/I+QiEFYn1aPGXxKp1eprhc0T9f42NpS0uy+
         5Q+QR/dGeb5MOrGGqJEUS2AsqwajoGltYces1M8vVqs50utgUWZ5gltyKizs4kMHfW+F
         GgmDlVR/gaKeJFqPaIGkJqkVy78Exu8iR7tgdPY1I7rn0iu3fGEpWJfYM1mfmx8uCuqV
         pxFReJSofzOSONHXWBja3q5zEpJOSqzHFUy0UqtiWBumMyGIxRc4sxktq5yFGTls0BYf
         VmcQzE7Rfv60UIIwnvrfQCz7alPltqOqbKw0Fk1BJ/c7J+YsrSEkta5LQJZS/32UiEqr
         107Q==
X-Forwarded-Encrypted: i=1; AJvYcCUJ9vrNFKhQpUtPthXPqncQChU2pUuZM3f1ZFv3CvX2ryf7+VBxzEwfmMHOgBwxTysRNRdC7QtLoao=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzrEDWM5Zi+Q9Wk4pVEZ7O5KO6oRGTXA+rJGWPwjpBaLdeF5x91
	4M6Y5njP3kUIVgkhiWHYlE9zwK2E39qnmTCH2toGYpGkLQi5wQjrK+ba3kl6sxo=
X-Gm-Gg: ASbGncud+bjWgHxtb08QaHLasHAb7E7DfnfAQd7rq9ePk+8p7xRRfPDwkXfO+E1xCVL
	ZMfieNgU+oJCwvDVJTAM4STe/d91FoCMg4x4XwtkTZzADvzrF3Zw6sHMYbJ7zz/2qpKTCKkkH19
	A8p49bVWxP+GcyNktEpjZJtlP9UYBhauIF65Ci3UqGemh4vilqMXYbDvOwcn8VWy5pdT2lyGcQg
	Go9/c75+17PLE5a/wo+PDuqCys2FwPVATGTFTC8jY2jJS6qeIRb95rClmZsSn6DxlZKvBKmKA4v
	z+x5Ism6yG/sEp5oLWHX6H9O4ZruODrIbjb/BHd4Q8Ii7NbGg1k1qXqOV6oOxesvcQ/y9CWph0b
	jUWiYO7GZ/uS8m+rm2DrxFDOnPU+pHoubTHJW1aHawdvyHhKdNF+DMbpooGVd4Ic84Q==
X-Google-Smtp-Source: AGHT+IGU4Q9aZFuS4tqffof5bxE63Nbzc5rbtd1cNrTdh+MkKy2ZMlM5eLt2/NojanWJQonzlqjKcw==
X-Received: by 2002:a5d:64eb:0:b0:390:fbdd:994d with SMTP id ffacd0b85a97d-3a074e37904mr1398442f8f.27.1745575718780;
        Fri, 25 Apr 2025 03:08:38 -0700 (PDT)
Message-ID: <04d47f21-6183-42d5-bc18-f23a8c3c2009@suse.com>
Date: Fri, 25 Apr 2025 12:08:36 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 10/14] x86/xen/msr: Remove pmu_msr_{read,write}()
To: "Xin Li (Intel)" <xin@zytor.com>, linux-kernel@vger.kernel.org,
 kvm@vger.kernel.org, linux-perf-users@vger.kernel.org,
 linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
 linux-pm@vger.kernel.org, linux-edac@vger.kernel.org,
 xen-devel@lists.xenproject.org, linux-acpi@vger.kernel.org,
 linux-hwmon@vger.kernel.org, netdev@vger.kernel.org,
 platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
 dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com, acme@kernel.org,
 andrew.cooper3@citrix.com, peterz@infradead.org, namhyung@kernel.org,
 mark.rutland@arm.com, alexander.shishkin@linux.intel.com, jolsa@kernel.org,
 irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
 wei.liu@kernel.org, ajay.kaher@broadcom.com,
 bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
 pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
 luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
 haiyangz@microsoft.com, decui@microsoft.com, dapeng1.mi@linux.intel.com
References: <20250425083442.2390017-1-xin@zytor.com>
 <20250425083442.2390017-11-xin@zytor.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: <20250425083442.2390017-11-xin@zytor.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------VB6ybu8aisKH0gV6QqOmM4vy"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------VB6ybu8aisKH0gV6QqOmM4vy
Content-Type: multipart/mixed; boundary="------------ogFHbfX7pVv3PgDj6x3UIh47";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: "Xin Li (Intel)" <xin@zytor.com>, linux-kernel@vger.kernel.org,
 kvm@vger.kernel.org, linux-perf-users@vger.kernel.org,
 linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
 linux-pm@vger.kernel.org, linux-edac@vger.kernel.org,
 xen-devel@lists.xenproject.org, linux-acpi@vger.kernel.org,
 linux-hwmon@vger.kernel.org, netdev@vger.kernel.org,
 platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
 dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com, acme@kernel.org,
 andrew.cooper3@citrix.com, peterz@infradead.org, namhyung@kernel.org,
 mark.rutland@arm.com, alexander.shishkin@linux.intel.com, jolsa@kernel.org,
 irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
 wei.liu@kernel.org, ajay.kaher@broadcom.com,
 bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
 pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
 luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
 haiyangz@microsoft.com, decui@microsoft.com, dapeng1.mi@linux.intel.com
Message-ID: <04d47f21-6183-42d5-bc18-f23a8c3c2009@suse.com>
Subject: Re: [PATCH v3 10/14] x86/xen/msr: Remove pmu_msr_{read,write}()
References: <20250425083442.2390017-1-xin@zytor.com>
 <20250425083442.2390017-11-xin@zytor.com>
In-Reply-To: <20250425083442.2390017-11-xin@zytor.com>

--------------ogFHbfX7pVv3PgDj6x3UIh47
Content-Type: multipart/mixed; boundary="------------6P0PQ6a4l4W0NIdcsPcChB8C"

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

T24gMjUuMDQuMjUgMTA6MzQsIFhpbiBMaSAoSW50ZWwpIHdyb3RlOg0KPiBBcyBwbXVfbXNy
X3tyZWFkLHdyaXRlfSgpIGFyZSBub3cgd3JhcHBlcnMgb2YgcG11X21zcl9jaGtfZW11bGF0
ZWQoKSwNCj4gcmVtb3ZlIHRoZW0gYW5kIHVzZSBwbXVfbXNyX2Noa19lbXVsYXRlZCgpIGRp
cmVjdGx5Lg0KPiANCj4gQXMgcG11X21zcl9jaGtfZW11bGF0ZWQoKSBjb3VsZCBlYXNpbHkg
cmV0dXJuIGZhbHNlIGluIHRoZSBjYXNlcyB3aGVyZQ0KPiBpdCB3b3VsZCBzZXQgKmVtdWwg
dG8gZmFsc2UsIHJlbW92ZSB0aGUgImVtdWwiIGFyZ3VtZW50IGFuZCB1c2UgdGhlDQo+IHJl
dHVybiB2YWx1ZSBpbnN0ZWFkLg0KPiANCj4gV2hpbGUgYXQgaXQsIGNvbnZlcnQgdGhlIGRh
dGEgdHlwZSBvZiBNU1IgaW5kZXggdG8gdTMyIGluIGZ1bmN0aW9ucw0KPiBjYWxsZWQgaW4g
cG11X21zcl9jaGtfZW11bGF0ZWQoKS4NCj4gDQo+IFN1Z2dlc3RlZC1ieTogSC4gUGV0ZXIg
QW52aW4gKEludGVsKSA8aHBhQHp5dG9yLmNvbT4NCj4gU3VnZ2VzdGVkLWJ5OiBKdWVyZ2Vu
IEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+DQo+IFNpZ25lZC1vZmYtYnk6IFhpbiBMaSAoSW50
ZWwpIDx4aW5Aenl0b3IuY29tPg0KPiAtLS0NCj4gDQo+IENoYW5nZSBpbiB2MzoNCj4gKikg
UmVtb3ZlIHRoZSAiZW11bCIgYXJndW1lbnQgb2YgcG11X21zcl9jaGtfZW11bGF0ZWQoKSAo
SnVlcmdlbiBHcm9zcykuDQo+IC0tLQ0KPiAgIGFyY2gveDg2L3hlbi9lbmxpZ2h0ZW5fcHYu
YyB8IDE1ICsrKysrKysrLS0tLS0tLQ0KPiAgIGFyY2gveDg2L3hlbi9wbXUuYyAgICAgICAg
ICB8IDMwICsrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiAgIGFyY2gveDg2L3hl
bi94ZW4tb3BzLmggICAgICB8ICAzICstLQ0KPiAgIDMgZmlsZXMgY2hhbmdlZCwgMTUgaW5z
ZXJ0aW9ucygrKSwgMzMgZGVsZXRpb25zKC0pDQo+IA0KPiBkaWZmIC0tZ2l0IGEvYXJjaC94
ODYveGVuL2VubGlnaHRlbl9wdi5jIGIvYXJjaC94ODYveGVuL2VubGlnaHRlbl9wdi5jDQo+
IGluZGV4IDYxZTUxYTk3MGYzYy4uNTI4YTJmNGRmMDUwIDEwMDY0NA0KPiAtLS0gYS9hcmNo
L3g4Ni94ZW4vZW5saWdodGVuX3B2LmMNCj4gKysrIGIvYXJjaC94ODYveGVuL2VubGlnaHRl
bl9wdi5jDQo+IEBAIC0xMDkwLDcgKzEwOTAsNyBAQCBzdGF0aWMgdTY0IHhlbl9kb19yZWFk
X21zcih1bnNpZ25lZCBpbnQgbXNyLCBpbnQgKmVycikNCj4gICB7DQo+ICAgCXU2NCB2YWwg
PSAwOwkvKiBBdm9pZCB1bmluaXRpYWxpemVkIHZhbHVlIGZvciBzYWZlIHZhcmlhbnQuICov
DQo+ICAgDQo+IC0JaWYgKHBtdV9tc3JfcmVhZF9lbXVsYXRlZChtc3IsICZ2YWwpKQ0KPiAr
CWlmIChwbXVfbXNyX2Noa19lbXVsYXRlZChtc3IsICZ2YWwsIHRydWUpKQ0KPiAgIAkJcmV0
dXJuIHZhbDsNCj4gICANCj4gICAJaWYgKGVycikNCj4gQEAgLTExNjIsMTIgKzExNjIsMTMg
QEAgc3RhdGljIHZvaWQgeGVuX2RvX3dyaXRlX21zcih1bnNpZ25lZCBpbnQgbXNyLCB1bnNp
Z25lZCBpbnQgbG93LA0KPiAgIAlkZWZhdWx0Og0KPiAgIAkJdmFsID0gKHU2NCloaWdoIDw8
IDMyIHwgbG93Ow0KPiAgIA0KPiAtCQlpZiAoIXBtdV9tc3Jfd3JpdGVfZW11bGF0ZWQobXNy
LCB2YWwpKSB7DQo+IC0JCQlpZiAoZXJyKQ0KPiAtCQkJCSplcnIgPSBuYXRpdmVfd3JpdGVf
bXNyX3NhZmUobXNyLCBsb3csIGhpZ2gpOw0KPiAtCQkJZWxzZQ0KPiAtCQkJCW5hdGl2ZV93
cml0ZV9tc3IobXNyLCBsb3csIGhpZ2gpOw0KPiAtCQl9DQo+ICsJCWlmIChwbXVfbXNyX2No
a19lbXVsYXRlZChtc3IsICZ2YWwsIGZhbHNlKSkNCj4gKwkJCXJldHVybjsNCj4gKw0KPiAr
CQlpZiAoZXJyKQ0KPiArCQkJKmVyciA9IG5hdGl2ZV93cml0ZV9tc3Jfc2FmZShtc3IsIGxv
dywgaGlnaCk7DQo+ICsJCWVsc2UNCj4gKwkJCW5hdGl2ZV93cml0ZV9tc3IobXNyLCBsb3cs
IGhpZ2gpOw0KPiAgIAl9DQo+ICAgfQ0KPiAgIA0KPiBkaWZmIC0tZ2l0IGEvYXJjaC94ODYv
eGVuL3BtdS5jIGIvYXJjaC94ODYveGVuL3BtdS5jDQo+IGluZGV4IGI2NTU3ZjJkMWEyZS4u
NmJlZTgzMDE4Njk0IDEwMDY0NA0KPiAtLS0gYS9hcmNoL3g4Ni94ZW4vcG11LmMNCj4gKysr
IGIvYXJjaC94ODYveGVuL3BtdS5jDQo+IEBAIC0xMjgsNyArMTI4LDcgQEAgc3RhdGljIGlu
bGluZSB1aW50MzJfdCBnZXRfZmFtMTVoX2FkZHIodTMyIGFkZHIpDQo+ICAgCXJldHVybiBh
ZGRyOw0KPiAgIH0NCj4gICANCj4gLXN0YXRpYyBpbmxpbmUgYm9vbCBpc19hbWRfcG11X21z
cih1bnNpZ25lZCBpbnQgbXNyKQ0KPiArc3RhdGljIGJvb2wgaXNfYW1kX3BtdV9tc3IodTMy
IG1zcikNCj4gICB7DQo+ICAgCWlmIChib290X2NwdV9kYXRhLng4Nl92ZW5kb3IgIT0gWDg2
X1ZFTkRPUl9BTUQgJiYNCj4gICAJICAgIGJvb3RfY3B1X2RhdGEueDg2X3ZlbmRvciAhPSBY
ODZfVkVORE9SX0hZR09OKQ0KPiBAQCAtMTk0LDggKzE5NCw3IEBAIHN0YXRpYyBib29sIGlz
X2ludGVsX3BtdV9tc3IodTMyIG1zcl9pbmRleCwgaW50ICp0eXBlLCBpbnQgKmluZGV4KQ0K
PiAgIAl9DQo+ICAgfQ0KPiAgIA0KPiAtc3RhdGljIGJvb2wgeGVuX2ludGVsX3BtdV9lbXVs
YXRlKHVuc2lnbmVkIGludCBtc3IsIHU2NCAqdmFsLCBpbnQgdHlwZSwNCj4gLQkJCQkgIGlu
dCBpbmRleCwgYm9vbCBpc19yZWFkKQ0KPiArc3RhdGljIGJvb2wgeGVuX2ludGVsX3BtdV9l
bXVsYXRlKHUzMiBtc3IsIHU2NCAqdmFsLCBpbnQgdHlwZSwgaW50IGluZGV4LCBib29sIGlz
X3JlYWQpDQo+ICAgew0KPiAgIAl1aW50NjRfdCAqcmVnID0gTlVMTDsNCj4gICAJc3RydWN0
IHhlbl9wbXVfaW50ZWxfY3R4dCAqY3R4dDsNCj4gQEAgLTI1Nyw3ICsyNTYsNyBAQCBzdGF0
aWMgYm9vbCB4ZW5faW50ZWxfcG11X2VtdWxhdGUodW5zaWduZWQgaW50IG1zciwgdTY0ICp2
YWwsIGludCB0eXBlLA0KPiAgIAlyZXR1cm4gZmFsc2U7DQo+ICAgfQ0KPiAgIA0KPiAtc3Rh
dGljIGJvb2wgeGVuX2FtZF9wbXVfZW11bGF0ZSh1bnNpZ25lZCBpbnQgbXNyLCB1NjQgKnZh
bCwgYm9vbCBpc19yZWFkKQ0KPiArc3RhdGljIGJvb2wgeGVuX2FtZF9wbXVfZW11bGF0ZSh1
MzIgbXNyLCB1NjQgKnZhbCwgYm9vbCBpc19yZWFkKQ0KPiAgIHsNCj4gICAJdWludDY0X3Qg
KnJlZyA9IE5VTEw7DQo+ICAgCWludCBpLCBvZmYgPSAwOw0KPiBAQCAtMjk4LDMzICsyOTcs
MTYgQEAgc3RhdGljIGJvb2wgeGVuX2FtZF9wbXVfZW11bGF0ZSh1bnNpZ25lZCBpbnQgbXNy
LCB1NjQgKnZhbCwgYm9vbCBpc19yZWFkKQ0KPiAgIAlyZXR1cm4gZmFsc2U7DQo+ICAgfQ0K
PiAgIA0KPiAtc3RhdGljIGJvb2wgcG11X21zcl9jaGtfZW11bGF0ZWQodW5zaWduZWQgaW50
IG1zciwgdWludDY0X3QgKnZhbCwgYm9vbCBpc19yZWFkLA0KPiAtCQkJCSBib29sICplbXVs
KQ0KPiArYm9vbCBwbXVfbXNyX2Noa19lbXVsYXRlZCh1MzIgbXNyLCB1NjQgKnZhbCwgYm9v
bCBpc19yZWFkKQ0KPiAgIHsNCj4gICAJaW50IHR5cGUsIGluZGV4ID0gMDsNCj4gICANCj4g
ICAJaWYgKGlzX2FtZF9wbXVfbXNyKG1zcikpDQo+IC0JCSplbXVsID0geGVuX2FtZF9wbXVf
ZW11bGF0ZShtc3IsIHZhbCwgaXNfcmVhZCk7DQo+ICsJCXJldHVybiB4ZW5fYW1kX3BtdV9l
bXVsYXRlKG1zciwgdmFsLCBpc19yZWFkKTsNCj4gICAJZWxzZSBpZiAoaXNfaW50ZWxfcG11
X21zcihtc3IsICZ0eXBlLCAmaW5kZXgpKQ0KPiAtCQkqZW11bCA9IHhlbl9pbnRlbF9wbXVf
ZW11bGF0ZShtc3IsIHZhbCwgdHlwZSwgaW5kZXgsIGlzX3JlYWQpOw0KPiArCQlyZXR1cm4g
eGVuX2ludGVsX3BtdV9lbXVsYXRlKG1zciwgdmFsLCB0eXBlLCBpbmRleCwgaXNfcmVhZCk7
DQo+ICAgCWVsc2UNCg0KQ2FuIHlvdSBwbGVhc2UgcmVtb3ZlIHRoZSB0d28gImVsc2UiIGlu
c3RhbmNlcyBhYm92ZT8gV2l0aCBkaXJlY3RseSByZXR1cm5pbmcNCmZvcm0gdGhlICJpZiIg
Y2xhdXNlIHRoZXkgYXJlIG5vIGxvbmdlciBuZWVkZWQuDQoNCldpdGggdGhhdCB5b3UgY2Fu
IGFkZCBteToNCg0KUmV2aWV3ZWQtYnk6IEp1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNv
bT4NCg0KDQpKdWVyZ2VuDQo=
--------------6P0PQ6a4l4W0NIdcsPcChB8C
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-----

--------------6P0PQ6a4l4W0NIdcsPcChB8C--

--------------ogFHbfX7pVv3PgDj6x3UIh47--

--------------VB6ybu8aisKH0gV6QqOmM4vy
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/Ey8FAmgLXyQFAwAAAAAACgkQsN6d1ii/Ey8v
Ogf+PRONHNGahmTCtDNZUX2Gy8abeuTUJJJHJyMlfT5cFckV+yhsYr1a7HlE3mRB56O40BZEoRa7
4+zHMaGgxXGReFHM9DxKSLkx9hQy0W7rzotkqHZB5RRTn5m318O+uj7xLL6FyOiDhMPR3sPfgcZx
m5zC6g63Xyz3HifjOtijdeAfFXfQ+rHqOVdDIRWTUy+rc3IasXWgnDXUAZqaVIK52giYpbkPqp3W
Wi63p54rGIvcSfHDzlSOSCabI8B3zRMM/35sJfAhmp+qlHn2tGpORVQuy/tW+GiwNnp2SXYQd6eW
kQF7lCDZKP9ldTY1cfMpxuqOuG670Z/7W8osbuh07w==
=5xyU
-----END PGP SIGNATURE-----

--------------VB6ybu8aisKH0gV6QqOmM4vy--


From xen-devel-bounces@lists.xenproject.org Fri Apr 25 11:09:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 11:09:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.967654.1357397 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8Gvj-0005Zr-QR; Fri, 25 Apr 2025 11:09:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 967654.1357397; Fri, 25 Apr 2025 11:09: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 1u8Gvj-0005Zk-Mi; Fri, 25 Apr 2025 11:09:15 +0000
Received: by outflank-mailman (input) for mailman id 967654;
 Fri, 25 Apr 2025 11:09: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=AYju=XL=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u8Gvi-0005Ze-JE
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 11:09:14 +0000
Received: from mail-pl1-x629.google.com (mail-pl1-x629.google.com
 [2607:f8b0:4864:20::629])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b71eb53f-21c5-11f0-9ffb-bf95429c2676;
 Fri, 25 Apr 2025 13:09:12 +0200 (CEST)
Received: by mail-pl1-x629.google.com with SMTP id
 d9443c01a7336-2264aefc45dso33626105ad.0
 for <xen-devel@lists.xenproject.org>; Fri, 25 Apr 2025 04:09:12 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 d9443c01a7336-22db4dbd3f9sm29359285ad.89.2025.04.25.04.09.08
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 25 Apr 2025 04:09: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: b71eb53f-21c5-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745579351; x=1746184151; 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=flH7NV7DxjiB5u/XjLHIVVxOBB9ob3xcQlbGaybYu6w=;
        b=VhKYwkjU8CnP7DcQvZWQiYJNaDmIx3VNJs79ZnmHIAIc1XyNAzMkewVvcUSg/7AsAx
         L5bQmC5OAm0+2CNQJNW3BiHm1MELBuvj3DdexaL39awYisVklPI6H4ApjUwPScF3g82b
         BVcm5FiP3WYj26EkuagtF5kICglS2Ep20sXjY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745579351; x=1746184151;
        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=flH7NV7DxjiB5u/XjLHIVVxOBB9ob3xcQlbGaybYu6w=;
        b=J2p2kaj/cAyroCx8EGvlxHq5Bbskn1KmehIPRWiTi/JTZcUX+dAwGGcqYFUz3Gn7Mx
         RJKPdt7sGeoxwYazapy+rLLmR+Ks19YWnWcPCEvT9TYYAFISCLPTwIZ/K9voGhp1in8E
         wCAFA8eh+Tr5QTBqjKfXEc7TEyhymo9/bJMDfkDR5UfG7Pg3jVZFPqbfDepgIy9y+9Yi
         iEEuBiCu/vAy8GaR1XqzqhBcP1oIqLFiTMVltnqbsY7lq2H+g6Dclv944mNYTy7rRmrI
         XKBJS+OacPNxllm5AtggsVt8orihC9jqi7HqNYRIy6I1FGX1fSjXniw/auVJ4OsHBS8E
         GQtA==
X-Forwarded-Encrypted: i=1; AJvYcCVTNYC+/VP5J3ZLWSVCI2cC3cu2qyED0q3JJCjNvWdDVOcbA600wQGM/ArfyvObsN0+L514cOwpbkI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzCn91BHyEiri/taWmTNAxqeyBlWpkyqb4q8G0J1jq5LzB3p8j2
	BKmVG9RA2zy5MlQWhoTBQZbT7fUk0FurantrXWIWgBc5929R5zUKDxZbCTkGw8k=
X-Gm-Gg: ASbGnctrF6yPBie+6nJJnQ4/JNbStI+GSM4ziu2/Hqu1nuIrKmv3YiSxkQD08e5RhNx
	ADDEckGZTH14osIeggRYQ7WEzoAP7Em+k3jebx21b7RzeG46MxYDoXxVCRZuFaFMaOhNt7mdpq+
	bBT0PXJFh/qwaEAiGjRmiGa9Fm9aG2jiREwzRe+1r9N748T4prKGaWW4xEdX3tkX9lHsPXSoNPz
	QgkutGRI89hhw03fEO/LXqgrnK2nYGEFkVMIA748jcLd7Xvo3G9DTfEPpLmxHNyUkbLc55afwg6
	KxOrxalkBa/7CgZw0XU0G7N5qwX//3Ui92zygu8zwWM4aw==
X-Google-Smtp-Source: AGHT+IHFiaFRamNCy0JEwhpQTZNxw8yTKTeZY8wbDZL+8lLCjxcbegDkF/+CuSZsvX63yNQmZkx/ag==
X-Received: by 2002:a17:902:d4ca:b0:220:f87d:9d5b with SMTP id d9443c01a7336-22dbf5faf1emr34090255ad.24.1745579350650;
        Fri, 25 Apr 2025 04:09:10 -0700 (PDT)
Date: Fri, 25 Apr 2025 13:09:04 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "Lira, Victor M" <VictorM.Lira@amd.com>,
	Jason Andryuk <jason.andryuk@amd.com>,
	Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	xen-devel@lists.xenproject.org,
	Andrew Cooper <andrew.cooper3@citrix.com>, Xenia.Ragiadakou@amd.com,
	Alejandro.GarciaVallejo@amd.com
Subject: Re: [RFC] xen/x86: allow overlaps with non-RAM regions
Message-ID: <aAttUBx57tds8WJJ@macbook.lan>
References: <9ed89e50-c645-407d-80b4-5b78cb6e36fa@amd.com>
 <Z_zGdE91KwlYxu_A@macbook.lan>
 <ce06ec74-1a73-4a02-87fc-3e829399cc77@amd.com>
 <aAnvRMgJxAskbCtE@macbook.lan>
 <aAoPNTsLjMMfsHvJ@mail-itl>
 <aAoW-kvpsWuPJwrC@macbook.lan>
 <775d3ac0-8f43-415a-a32d-14377092b96b@amd.com>
 <554026de-bbb4-488f-95c4-8e2f034d6d0e@amd.com>
 <aAtPpOq2Kc_N6hBy@macbook.lan>
 <2acad9ba-564a-4d18-9b09-dcabe8f7b025@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <2acad9ba-564a-4d18-9b09-dcabe8f7b025@suse.com>

On Fri, Apr 25, 2025 at 11:19:21AM +0200, Jan Beulich wrote:
> On 25.04.2025 11:02, Roger Pau Monné wrote:
> > On Thu, Apr 24, 2025 at 02:38:29PM -0700, Lira, Victor M wrote:
> >> Hello all,
> >>
> >> Here is the output from Roger's patch.
> >> This is the section of interest:
> >>
> >>> (XEN) [ 7.547326] d0 has maximum 3328PIRQs
> >>> (XEN) [ 7.555644] *** Building a PVH Dom0 ***
> >>> (XEN) [ 7.567780] d0: identity mappings for IOMMU:
> >>> (XEN) [ 7.577312]  [00000000a0, 00000000ff] RW
> >>> (XEN) [ 7.586153]  [0000009bff, 0000009fff] RW
> >>> (XEN) [ 7.594992]  [00000cabc9, 00000cc14c] RW
> >>> (XEN) [ 7.603866]  [00000cc389, 00000cc389] RW
> >>> (XEN) [ 7.612707]  [00000cc70a, 00000cd1fe] RW
> >>> (XEN) [ 7.621896]  [00000ce000, 00000cffff] RW
> >>> (XEN) [ 7.630731]  [00000fd000, 00000fd2ff] RW
> >>> (XEN) [ 7.639573]  [00000fd304, 00000febff] RW
> >>> (XEN) [ 7.648414] gfn 0xfe800mfn 0xfe800type 5order 9
> >>> (XEN) [ 7.658985] Xen WARNat arch/x86/mm/p2m-pt.c:599
> >>> (XEN) [ 7.669215] ----[ Xen-4.21-unstable x86_64  debug=y  Tainted:   C
> >>>    ]----
> >>> ...
> >>> (XEN) [ 8.227521] Xen call trace:
> >>> (XEN) [ 8.234107]    [<ffff82d040309bd6>] R
> >>> arch/x86/mm/p2m-pt.c#p2m_pt_set_entry+0xc1/0x961
> >>> (XEN) [ 8.250925]    [<ffff82d0402fbf0d>] F p2m_set_entry+0xb5/0x13c
> >>> (XEN) [ 8.263579]    [<ffff82d0402fc091>] F
> >>> arch/x86/mm/p2m.c#set_typed_p2m_entry+0xfd/0x6f0
> >>> (XEN) [ 8.280388]    [<ffff82d0402fdcd4>] F set_mmio_p2m_entry+0x62/0x6b
> >>> (XEN) [ 8.293735]    [<ffff82d0402ff9cf>] F map_mmio_regions+0x77/0xcf
> >>> (XEN) [ 8.306734]    [<ffff82d04042fc1b>] F
> >>> drivers/passthrough/x86/iommu.c#identity_map+0x7e/0x196
> >>> (XEN) [ 8.324761]    [<ffff82d040232935>] F
> >>> rangeset_report_ranges+0x10a/0x159
> >>> (XEN) [ 8.339149]    [<ffff82d0404301e6>] F
> >>> arch_iommu_hwdom_init+0x27f/0x316
> >>> (XEN) [ 8.353361]    [<ffff82d04042cffa>] F
> >>> drivers/passthrough/amd/pci_amd_iommu.c#amd_iommu_hwdom_init+0xa9/0xc1
> >>> (XEN) [ 8.373988]    [<ffff82d040430846>] F iommu_hwdom_init+0x26/0x2e
> >>> (XEN) [ 8.386989]    [<ffff82d040441a30>] F
> >>> dom0_construct_pvh+0x265/0x1141
> >>> (XEN) [ 8.400860]    [<ffff82d040457f7c>] F construct_dom0+0x47/0x93
> >>> (XEN) [ 8.413511]    [<ffff82d0404504e0>] F __start_xen+0x21fc/0x2425
> >>> (XEN) [ 8.426340]    [<ffff82d0402043be>] F __high_start+0x8e/0x90
> >>> (XEN) [ 8.438646]
> >>> (XEN) [ 8.442632]  [00000fec02, 00000fedff] RW
> >>> (XEN) [ 8.451599]  [00000fee01, 00000fffff] RW
> >>> (XEN) [ 8.460571]  [000080f340, 00008501ff] RW
> >>> (XEN) [ 8.470205] 0000:02:00.0: not mapping BAR [fea00, fea03] invalid
> >>> position
> >>> (XEN) [ 8.484769] 0000:03:00.0: not mapping BAR [fe900, fe90f] invalid
> >>> position
> >>> (XEN) [ 8.499330] 0000:03:00.0: not mapping BAR [fe910, fe913] invalid
> >>> position
> >>> (XEN) [ 8.513890] gfn 0xfe910mfn 0xfffffffffffffffftype 1order 0
> >>> (XEN) [ 8.526370] Xen WARNat arch/x86/mm/p2m-pt.c:599
> >>> ...
> >>> (XEN) [ 9.094902] Xen call trace:
> >>> (XEN) [ 9.101491]    [<ffff82d040309bd6>] R
> >>> arch/x86/mm/p2m-pt.c#p2m_pt_set_entry+0xc1/0x961
> >>> (XEN) [ 9.118306]    [<ffff82d0402fbf0d>] F p2m_set_entry+0xb5/0x13c
> >>> (XEN) [ 9.130957]    [<ffff82d0402fe1fb>] F
> >>> p2m_remove_identity_entry+0x26f/0x2ca
> >>> (XEN) [ 9.145865]    [<ffff82d040268a4a>] F
> >>> vpci_make_msix_hole+0x11a/0x27a
> >>> (XEN) [ 9.159734]    [<ffff82d0402654c4>] F
> >>> drivers/vpci/header.c#modify_decoding+0x4e/0x1b3
> >>> (XEN) [ 9.176547]    [<ffff82d040265c89>] F
> >>> drivers/vpci/header.c#modify_bars+0x660/0x6c4
> >>> (XEN) [ 9.192838]    [<ffff82d040266427>] F
> >>> drivers/vpci/header.c#init_header+0x5e7/0x86f
> >>> (XEN) [ 9.209129]    [<ffff82d04026449c>] F vpci_assign_device+0xd3/0x115
> >>> (XEN) [ 9.222648]    [<ffff82d040430de4>] F
> >>> drivers/passthrough/pci.c#setup_one_hwdom_device+0x92/0x15b
> >>> (XEN) [ 9.241368]    [<ffff82d04043112a>] F
> >>> drivers/passthrough/pci.c#_setup_hwdom_pci_devices+0x158/0x241
> >>> (XEN) [ 9.260612]    [<ffff82d04027aad7>] F
> >>> drivers/passthrough/pci.c#pci_segments_iterate+0x43/0x69
> >>> (XEN) [ 9.278814]    [<ffff82d040431513>] F
> >>> setup_hwdom_pci_devices+0x28/0x2f
> >>> (XEN) [ 9.293026]    [<ffff82d04042d009>] F
> >>> drivers/passthrough/amd/pci_amd_iommu.c#amd_iommu_hwdom_init+0xb8/0xc1
> >>> (XEN) [ 9.313649]    [<ffff82d040430846>] F iommu_hwdom_init+0x26/0x2e
> >>> (XEN) [ 9.326652]    [<ffff82d040441a30>] F
> >>> dom0_construct_pvh+0x265/0x1141
> >>> (XEN) [ 9.340516]    [<ffff82d040457f7c>] F construct_dom0+0x47/0x93
> >>> (XEN) [ 9.353172]    [<ffff82d0404504e0>] F __start_xen+0x21fc/0x2425
> >>> (XEN) [ 9.365999]    [<ffff82d0402043be>] F __high_start+0x8e/0x90
> >>> (XEN) [ 9.378305]
> >>> (XEN) [ 9.382289] 0000:04:00.0: not mapping BAR [fe700, fe77f] invalid
> >>> position
> >>> (XEN) [ 9.396850] 0000:04:00.3: not mapping BAR [fe500, fe5ff] invalid
> >>> position
> >>> (XEN) [ 9.411412] 0000:04:00.4: not mapping BAR [fe400, fe4ff] invalid
> >>> position
> >>> (XEN) [ 9.425972] 0000:05:00.0: not mapping BAR [fe801, fe801] invalid
> >>> position
> >>> (XEN) [ 9.440531] 0000:05:00.1: not mapping BAR [fe800, fe800] invalid
> >>> position
> >>
> >> So vpci_make_msix_hole is where it's getting removed.
> > 
> > Oh, the output is very mangled when displaying the email on my MUA,
> > but I see.  I think I now get what's happening.
> > 
> > Since the BAR falls into a reserved region, the `enabled` bit for it is
> > never set, and thus the handling in msix_accept() never triggers,
> > leaving those accesses unhandled and terminated by the null handler.
> > 
> > I think the patch below should fix it, let me know how it goes.
> 
> Just to mention - "fix" isn't quite the right term here, is it? BARs may
> not live in E820_RESERVED areas. And while we make those up from the EFI
> memory map we're handed, ...

It is a fix IMO, because the 'enabled' bit is not set for those BARs
when they are indeed mapped in the p2m, just not handled by the vPCI
code due to being placed in a E820_RESERVED region.

Due to the 'enabled' bit not being set, the MSI-X handlers didn't
function as expected, even when the BARs are properly mapped.  I'm not
convinced the provided patch is the best way to solve this, I need to
think more carefully about it.  It should however fix the issue
reported.

> > There's also a further known issue with vpci_make_msix_hole(): if the
> > BARs are repositioned the holes are not restored to their previous
> > values, but I don't think you are hitting that issue (yet).
> 
> ... the memory map we're seeing here will go stale once the OS (any; not
> just Xen or Linux) decides to move those BARs. Imo firmware simply may
> not request runtime mappings of BARs.

Indeed, but Xen still needs to keep a consistent view for the guest in
the p2m.  Currently if a PVH dom0 moves BARs inside of a E820_RESERVED
region the MSI-X holes will get out-of-sync with the BAR placements,
and hence MSI-X traps won't work correctly for those devices.

That's however a different issue that the patch provided in the
previous email doesn't fix.

Regards, Roger.


From xen-devel-bounces@lists.xenproject.org Fri Apr 25 11:12:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 11:12:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.967667.1357406 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8GyW-0007UF-A1; Fri, 25 Apr 2025 11:12:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 967667.1357406; Fri, 25 Apr 2025 11: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 1u8GyW-0007U8-6Y; Fri, 25 Apr 2025 11:12:08 +0000
Received: by outflank-mailman (input) for mailman id 967667;
 Fri, 25 Apr 2025 11: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=snHQ=XL=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1u8GyV-0007Tu-1t
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 11:12:07 +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 1caea5ca-21c6-11f0-9ffb-bf95429c2676;
 Fri, 25 Apr 2025 13:12:01 +0200 (CEST)
Received: by mail-ed1-x533.google.com with SMTP id
 4fb4d7f45d1cf-5efe8d9eb1eso1426531a12.0
 for <xen-devel@lists.xenproject.org>; Fri, 25 Apr 2025 04:12:01 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-64-225.play-internet.pl.
 [109.243.64.225]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5f7011fc653sm1123301a12.14.2025.04.25.04.11.57
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 25 Apr 2025 04:12: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: 1caea5ca-21c6-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1745579521; x=1746184321; darn=lists.xenproject.org;
        h=in-reply-to:content-language:references:cc:to:from:subject
         :user-agent:mime-version:date:message-id:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Q9ZabyKA1KMyqXL3hYDJejU2TLsCTqw3wc3RAkdqovM=;
        b=br1kimHB6LX8zY9QS01vXv+p22sXhDVxEy9cPvsGqAx+VP5t7kmz8RS1rr9JD2jYOC
         csgz8n7La5eyX3mfO7GJyo3Rkhbo7wC9SIHOyZEi8BVh9lRxF54O/j+2vUg/KTGn28oj
         SHF/k7Kfm8KMnn1RkLG8vu41FcDDKDsLEKFMYkSt2z4BKkoZRdo79OU4+2W9XOpyoeX9
         wCNkiBrJzbeIRCYRLXG2uIQ0YNxfR3mfY1vhf38craQTNv5wo3LVfolZJNy4KXrfI/gn
         GbZw+D9Me2Y3xHpeUYMsAIsvsckLb2p+GMr1OhQAyYPC/+xRimTabAECYk2dIeZ0eFWp
         XYWQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745579521; x=1746184321;
        h=in-reply-to: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=Q9ZabyKA1KMyqXL3hYDJejU2TLsCTqw3wc3RAkdqovM=;
        b=YWo9QW/n1oQdFqNmN7luN+KnnIB1XK6z2AXFpcCdN/6cbHO/UmzmOUEWOchjIxyiPs
         PivQZTcz8obpsGxhSFR23xVD5HlN2IfhBll/5RMFvf4REFYfUWXzm2TT430l1rDuVixj
         lVMY6dwwFydgchstcROJd927f3mQECD5fejf+clXOzzjp3po5t+F9+jRWpU0PnwGXlaT
         xaztphfO33ZuBgwE5rEd/wQ3LjiDbUu3b8rJG2pJcc37qdHs0Nf0uxhczm4mR7wM9BaK
         MgAhr2K2Gfo+iQnl163iJ86xBTdb+NHNInHKrPo4wPBD1RaUKtjxgFFT+qKZye+fb6UI
         0MrQ==
X-Forwarded-Encrypted: i=1; AJvYcCWB3MQKs3M6Vrrm63chNABxivS+GbM4sVXLpw3Du3P+qUk7ntivLgj9h81Z1OVnKmBVoEC7LtwNGrA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwS4wU345MCenO8eGR03xj4N3QxpAjUhXvyMtDmNjdgFpPEkh5V
	yEemOa5NmatDt5Ie+9Fah5lww7EBSWgJmnjSqxRiV2hOdP1s7wAp
X-Gm-Gg: ASbGncuYwpPy613OH8+r8YNq0WrFcEvZx4znYKbMdT41BVHUkcjiODI1TnR1QZjQ78x
	N6w+l6FngOiwDlCpcfUqrPsLzTAstgw234k7/4LLAJJf8W+EnBIIE7nmN0uL1fW+Es6QVPchUSF
	DfcwlXZbfne78/vvSQExP51UZRH7tDOJp2BAVSnwirUOnILy4YqMg/YxqPUWH+yhlzWXo71o19M
	vktRlxIQRi6wqdocSGH3IYupNv1dyZoJTC54D2k4uOyJM1Ho6c6WxisTSfjzRxmC2beMakMsFZY
	dyWYXrDYNX4nOiFlPq7mYowvENRro6YGCe4LgBYIwYKeiU3frW4hzxQD49HaApIe0HarxdXcYOE
	uBKRkmDzJFcfpsB/7
X-Google-Smtp-Source: AGHT+IEERAbgq24i4SqG4dy0ERrSiB2JmW6doOiBaJ8+euyI+GsnOSIWgWkc9evN7L8uu881BoAn5Q==
X-Received: by 2002:a05:6402:27d0:b0:5f4:9015:a6d0 with SMTP id 4fb4d7f45d1cf-5f726753046mr1466798a12.12.1745579520707;
        Fri, 25 Apr 2025 04:12:00 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------z11UG2tOytcGdUcsMf5pdcyk"
Message-ID: <192683d3-8777-45c2-b8a8-546bf171a7aa@gmail.com>
Date: Fri, 25 Apr 2025 13:11:56 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 2/2] xen/mm: Introduce per-arch pte_attr_t type for PTE
 flags
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: Shawn Anastasio <sanastasio@raptorengineering.com>,
 xen-devel@lists.xenproject.org
Cc: tpearson@raptorengineering.com,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>, Jan Beulich <jbeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
References: <a8417544cc8139ceafc1314acc6f9970358061ee.1741284947.git.sanastasio@raptorengineering.com>
 <818891459587be5e7263fa958701dc34abc4d16d.1741284947.git.sanastasio@raptorengineering.com>
 <803f27c4-c04b-4382-b7b0-e958134e1fd0@gmail.com>
Content-Language: en-US
In-Reply-To: <803f27c4-c04b-4382-b7b0-e958134e1fd0@gmail.com>

This is a multi-part message in MIME format.
--------------z11UG2tOytcGdUcsMf5pdcyk
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 3/10/25 10:22 AM, Oleksii Kurochko wrote:
>
>
> On 3/6/25 7:25 PM, Shawn Anastasio wrote:
>> Xen's memory management APIs map_pages_to_xen, modify_xen_mappings,
>> set_fixmap, ioremap_attr, and __vmap all use an unsigned int to
>> represent architecture-dependent page table entry flags. This assumption
>> is not well-suited for PPC/radix where some flags go past 32-bits, so
>> introduce the pte_attr_t type to allow architectures to opt in to larger
>> types to store PTE flags.
>>
>> Suggested-by: Andrew Cooper<andrew.cooper3@citrix.com>
>> Signed-off-by: Shawn Anastasio<sanastasio@raptorengineering.com>
>> ---
>> Changes in v4:
>>    - Change definitions of map_pages_to_xen, modify_xen_mappings in all arches
>>    to match new prototype.
>>    - Use new flag types in modify_xen_mappings_lite as well (previously missed)
>>
>> Changes in v3:
>>    - Use new asm/mm-types.h to pull in pte_attr_t definition when
>>    necessary.
>>    - Drop define+ifdef since pte_attr_t is now always defined.
>>
>> Changes in v2:
>>    - Drop Kconfig option and use `#define pte_attr_t pte_attr_t` for arches to
>>    opt-in to defining the type.
>>    - Move default pte_attr_definition to xen/types.h
>>    - Update commit message to reflect that this change isn't strictly
>>    necessary for arches w/ >32bit pte flags
>>
>>   xen/arch/arm/mmu/pt.c               | 4 ++--
>>   xen/arch/ppc/include/asm/Makefile   | 1 -
>>   xen/arch/ppc/include/asm/mm-types.h | 7 +++++++
>>   xen/arch/ppc/mm-radix.c             | 2 +-
>>   xen/arch/riscv/pt.c                 | 2 +-
> Reviewed-by: Oleksii Kurochko<oleksii.kurochko@gmail.com>

Also as the part of this patch the following changes should be considered (I can send that as
a separate patch):
$ git diff

diff --git a/xen/arch/riscv/include/asm/fixmap.h b/xen/arch/riscv/include/asm/fixmap.h
index e399a15f53..5990c964aa 100644
--- a/xen/arch/riscv/include/asm/fixmap.h
+++ b/xen/arch/riscv/include/asm/fixmap.h
@@ -33,7 +33,7 @@
  extern pte_t xen_fixmap[];
  
  /* Map a page in a fixmap entry */
-void set_fixmap(unsigned int map, mfn_t mfn, unsigned int flags);
+void set_fixmap(unsigned int map, mfn_t mfn, pte_attr_t flags);
  /* Remove a mapping from a fixmap entry */
  void clear_fixmap(unsigned int map);
  
diff --git a/xen/arch/riscv/include/asm/page.h b/xen/arch/riscv/include/asm/page.h
index 3904d42a71..e23d69214e 100644
--- a/xen/arch/riscv/include/asm/page.h
+++ b/xen/arch/riscv/include/asm/page.h
@@ -217,7 +217,7 @@ static inline pte_t read_pte(const pte_t *p)
      return read_atomic(p);
  }
  
-static inline pte_t pte_from_mfn(mfn_t mfn, unsigned int flags)
+static inline pte_t pte_from_mfn(mfn_t mfn, pte_attr_t flags)
  {
      unsigned long pte = (mfn_x(mfn) << PTE_PPN_SHIFT) | flags;
      return (pte_t){ .pte = pte };
diff --git a/xen/arch/riscv/pt.c b/xen/arch/riscv/pt.c
index ef84b6b078..d6cc68b7db 100644
--- a/xen/arch/riscv/pt.c
+++ b/xen/arch/riscv/pt.c
@@ -25,7 +25,7 @@ static inline mfn_t get_root_page(void)
   * See the comment about the possible combination of (mfn, flags) in
   * the comment above pt_update().
   */
-static bool pt_check_entry(pte_t entry, mfn_t mfn, unsigned int flags)
+static bool pt_check_entry(pte_t entry, mfn_t mfn, pte_attr_t flags)
  {
      /* Sanity check when modifying an entry. */
      if ( (flags & PTE_VALID) && mfn_eq(mfn, INVALID_MFN) )
@@ -260,7 +260,7 @@ pte_t pt_walk(vaddr_t va, unsigned int *pte_level)
   */
  static int pt_update_entry(mfn_t root, vaddr_t virt,
                             mfn_t mfn, unsigned int *target,
-                           unsigned int flags)
+                           pte_attr_t flags)
  {
      int rc;
      /*
@@ -355,7 +355,7 @@ static int pt_update_entry(mfn_t root, vaddr_t virt,
  
  /* Return the level where mapping should be done */
  static int pt_mapping_level(unsigned long vfn, mfn_t mfn, unsigned long nr,
-                            unsigned int flags)
+                            pte_attr_t flags)
  {
      unsigned int level = 0;
      unsigned long mask;
@@ -409,7 +409,7 @@ static DEFINE_SPINLOCK(pt_lock);
   * inserting will be done.
   */
  static int pt_update(vaddr_t virt, mfn_t mfn,
-                     unsigned long nr_mfns, unsigned int flags)
+                     unsigned long nr_mfns, pte_attr_t flags)
  {
      int rc = 0;
      unsigned long vfn = PFN_DOWN(virt);
@@ -537,7 +537,7 @@ int __init populate_pt_range(unsigned long virt, unsigned long nr_mfns)
  }
  
  /* Map a 4k page in a fixmap entry */
-void set_fixmap(unsigned int map, mfn_t mfn, unsigned int flags)
+void set_fixmap(unsigned int map, mfn_t mfn, pte_attr_t flags)
  {
      if ( map_pages_to_xen(FIXMAP_ADDR(map), mfn, 1, flags | PTE_SMALL) != 0 )
          BUG();

~ Oleksii


> ~ Oleksii
>>   xen/arch/x86/mm.c                   | 6 +++---
>>   xen/common/efi/boot.c               | 5 +++--
>>   xen/common/vmap.c                   | 2 +-
>>   xen/include/asm-generic/mm-types.h  | 2 ++
>>   xen/include/xen/mm.h                | 7 ++++---
>>   xen/include/xen/vmap.h              | 4 +++-
>>   11 files changed, 27 insertions(+), 15 deletions(-)
>>   create mode 100644 xen/arch/ppc/include/asm/mm-types.h
>>
>> diff --git a/xen/arch/arm/mmu/pt.c b/xen/arch/arm/mmu/pt.c
>> index da28d669e7..9dc99db352 100644
>> --- a/xen/arch/arm/mmu/pt.c
>> +++ b/xen/arch/arm/mmu/pt.c
>> @@ -701,7 +701,7 @@ static int xen_pt_update(unsigned long virt,
>>   int map_pages_to_xen(unsigned long virt,
>>                        mfn_t mfn,
>>                        unsigned long nr_mfns,
>> -                     unsigned int flags)
>> +                     pte_attr_t flags)
>>   {
>>       return xen_pt_update(virt, mfn, nr_mfns, flags);
>>   }
>> @@ -719,7 +719,7 @@ int destroy_xen_mappings(unsigned long s, unsigned long e)
>>       return xen_pt_update(s, INVALID_MFN, (e - s) >> PAGE_SHIFT, 0);
>>   }
>>
>> -int modify_xen_mappings(unsigned long s, unsigned long e, unsigned int nf)
>> +int modify_xen_mappings(unsigned long s, unsigned long e, pte_attr_t nf)
>>   {
>>       ASSERT(IS_ALIGNED(s, PAGE_SIZE));
>>       ASSERT(IS_ALIGNED(e, PAGE_SIZE));
>> diff --git a/xen/arch/ppc/include/asm/Makefile b/xen/arch/ppc/include/asm/Makefile
>> index c0dbc68ac6..c989a7f89b 100644
>> --- a/xen/arch/ppc/include/asm/Makefile
>> +++ b/xen/arch/ppc/include/asm/Makefile
>> @@ -5,7 +5,6 @@ generic-y += div64.h
>>   generic-y += hardirq.h
>>   generic-y += hypercall.h
>>   generic-y += iocap.h
>> -generic-y += mm-types.h
>>   generic-y += paging.h
>>   generic-y += percpu.h
>>   generic-y += perfc_defn.h
>> diff --git a/xen/arch/ppc/include/asm/mm-types.h b/xen/arch/ppc/include/asm/mm-types.h
>> new file mode 100644
>> index 0000000000..0cb850f4f6
>> --- /dev/null
>> +++ b/xen/arch/ppc/include/asm/mm-types.h
>> @@ -0,0 +1,7 @@
>> +/* SPDX-License-Identifier: GPL-2.0-only */
>> +#ifndef __ASM_PPC_MM_TYPES_H__
>> +#define __ASM_PPC_MM_TYPES_H__
>> +
>> +typedef unsigned long pte_attr_t;
>> +
>> +#endif /* __ASM_PPC_MM_TYPES_H__ */
>> diff --git a/xen/arch/ppc/mm-radix.c b/xen/arch/ppc/mm-radix.c
>> index 24232f3907..e02dffa7c5 100644
>> --- a/xen/arch/ppc/mm-radix.c
>> +++ b/xen/arch/ppc/mm-radix.c
>> @@ -265,7 +265,7 @@ int destroy_xen_mappings(unsigned long s, unsigned long e)
>>   int map_pages_to_xen(unsigned long virt,
>>                        mfn_t mfn,
>>                        unsigned long nr_mfns,
>> -                     unsigned int flags)
>> +                     pte_attr_t flags)
>>   {
>>       BUG_ON("unimplemented");
>>   }
>> diff --git a/xen/arch/riscv/pt.c b/xen/arch/riscv/pt.c
>> index 857619d48d..918b1b91ab 100644
>> --- a/xen/arch/riscv/pt.c
>> +++ b/xen/arch/riscv/pt.c
>> @@ -504,7 +504,7 @@ static int pt_update(vaddr_t virt, mfn_t mfn,
>>   int map_pages_to_xen(unsigned long virt,
>>                        mfn_t mfn,
>>                        unsigned long nr_mfns,
>> -                     unsigned int flags)
>> +                     pte_attr_t flags)
>>   {
>>       /*
>>        * Ensure that flags has PTE_VALID bit as map_pages_to_xen() is supposed
>> diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
>> index bfdc8fb019..53c17c6f88 100644
>> --- a/xen/arch/x86/mm.c
>> +++ b/xen/arch/x86/mm.c
>> @@ -5472,7 +5472,7 @@ int map_pages_to_xen(
>>       unsigned long virt,
>>       mfn_t mfn,
>>       unsigned long nr_mfns,
>> -    unsigned int flags)
>> +    pte_attr_t flags)
>>   {
>>       bool locking = system_state > SYS_STATE_boot;
>>       l3_pgentry_t *pl3e = NULL, ol3e;
>> @@ -5890,7 +5890,7 @@ int __init populate_pt_range(unsigned long virt, unsigned long nr_mfns)
>>    *
>>    * It is an error to call with present flags over an unpopulated range.
>>    */
>> -int modify_xen_mappings(unsigned long s, unsigned long e, unsigned int nf)
>> +int modify_xen_mappings(unsigned long s, unsigned long e, pte_attr_t nf)
>>   {
>>       bool locking = system_state > SYS_STATE_boot;
>>       l3_pgentry_t *pl3e = NULL;
>> @@ -6186,7 +6186,7 @@ int destroy_xen_mappings(unsigned long s, unsigned long e)
>>    * the non-inclusive boundary will be updated.
>>    */
>>   void init_or_livepatch modify_xen_mappings_lite(
>> -    unsigned long s, unsigned long e, unsigned int nf)
>> +    unsigned long s, unsigned long e, pte_attr_t nf)
>>   {
>>       unsigned long v = s, fm, flags;
>>
>> diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c
>> index efbec00af9..999dbce4dc 100644
>> --- a/xen/common/efi/boot.c
>> +++ b/xen/common/efi/boot.c
>> @@ -1,4 +1,5 @@
>>   #include "efi.h"
>> +#include <asm/mm-types.h>
>>   #include <efi/efiprot.h>
>>   #include <efi/efipciio.h>
>>   #include <public/xen.h>
>> @@ -1656,7 +1657,7 @@ void __init efi_init_memory(void)
>>       struct rt_extra {
>>           struct rt_extra *next;
>>           unsigned long smfn, emfn;
>> -        unsigned int prot;
>> +        pte_attr_t prot;
>>       } *extra, *extra_head = NULL;
>>
>>       free_ebmalloc_unused_mem();
>> @@ -1671,7 +1672,7 @@ void __init efi_init_memory(void)
>>           EFI_MEMORY_DESCRIPTOR *desc = efi_memmap + i;
>>           u64 len = desc->NumberOfPages << EFI_PAGE_SHIFT;
>>           unsigned long smfn, emfn;
>> -        unsigned int prot = PAGE_HYPERVISOR_RWX;
>> +        pte_attr_t prot = PAGE_HYPERVISOR_RWX;
>>           paddr_t mem_base;
>>           unsigned long mem_npages;
>>
>> diff --git a/xen/common/vmap.c b/xen/common/vmap.c
>> index 47225fecc0..d6991421f3 100644
>> --- a/xen/common/vmap.c
>> +++ b/xen/common/vmap.c
>> @@ -222,7 +222,7 @@ static void vm_free(const void *va)
>>   }
>>
>>   void *__vmap(const mfn_t *mfn, unsigned int granularity,
>> -             unsigned int nr, unsigned int align, unsigned int flags,
>> +             unsigned int nr, unsigned int align, pte_attr_t flags,
>>                enum vmap_region type)
>>   {
>>       void *va = vm_alloc(nr * granularity, align, type);
>> diff --git a/xen/include/asm-generic/mm-types.h b/xen/include/asm-generic/mm-types.h
>> index 26490e48db..9eb3cba698 100644
>> --- a/xen/include/asm-generic/mm-types.h
>> +++ b/xen/include/asm-generic/mm-types.h
>> @@ -2,4 +2,6 @@
>>   #ifndef __ASM_GENERIC_MM_TYPES_H__
>>   #define __ASM_GENERIC_MM_TYPES_H__
>>
>> +typedef unsigned int pte_attr_t;
>> +
>>   #endif /* __ASM_GENERIC_MM_TYPES_H__ */
>> diff --git a/xen/include/xen/mm.h b/xen/include/xen/mm.h
>> index 16f733281a..e79f1728c3 100644
>> --- a/xen/include/xen/mm.h
>> +++ b/xen/include/xen/mm.h
>> @@ -69,6 +69,7 @@
>>   #include <xen/spinlock.h>
>>   #include <xen/perfc.h>
>>   #include <public/memory.h>
>> +#include <asm/mm-types.h>
>>
>>   struct page_info;
>>
>> @@ -113,11 +114,11 @@ int map_pages_to_xen(
>>       unsigned long virt,
>>       mfn_t mfn,
>>       unsigned long nr_mfns,
>> -    unsigned int flags);
>> +    pte_attr_t flags);
>>   /* Alter the permissions of a range of Xen virtual address space. */
>> -int modify_xen_mappings(unsigned long s, unsigned long e, unsigned int nf);
>> +int modify_xen_mappings(unsigned long s, unsigned long e, pte_attr_t nf);
>>   void modify_xen_mappings_lite(unsigned long s, unsigned long e,
>> -                              unsigned int nf);
>> +                              pte_attr_t nf);
>>   int destroy_xen_mappings(unsigned long s, unsigned long e);
>>   /* Retrieve the MFN mapped by VA in Xen virtual address space. */
>>   mfn_t xen_map_to_mfn(unsigned long va);
>> diff --git a/xen/include/xen/vmap.h b/xen/include/xen/vmap.h
>> index 26c831757a..e1155ed14a 100644
>> --- a/xen/include/xen/vmap.h
>> +++ b/xen/include/xen/vmap.h
>> @@ -8,8 +8,10 @@
>>   #ifndef __XEN_VMAP_H__
>>   #define __XEN_VMAP_H__
>>
>> +#include <xen/mm.h>
>>   #include <xen/mm-frame.h>
>>   #include <xen/page-size.h>
>> +#include <asm/mm-types.h>
>>
>>   /* Identifiers for the linear ranges tracked by vmap */
>>   enum vmap_region {
>> @@ -57,7 +59,7 @@ void vm_init_type(enum vmap_region type, void *start, void *end);
>>    * @return Pointer to the mapped area on success; NULL otherwise.
>>    */
>>   void *__vmap(const mfn_t *mfn, unsigned int granularity, unsigned int nr,
>> -             unsigned int align, unsigned int flags, enum vmap_region type);
>> +             unsigned int align, pte_attr_t flags, enum vmap_region type);
>>
>>   /*
>>    * Map an array of pages contiguously into the VMAP_DEFAULT vmap region
>> --
>> 2.30.2
>>
--------------z11UG2tOytcGdUcsMf5pdcyk
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 3/10/25 10:22 AM, Oleksii Kurochko
      wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:803f27c4-c04b-4382-b7b0-e958134e1fd0@gmail.com">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <p><br>
      </p>
      <div class="moz-cite-prefix">On 3/6/25 7:25 PM, Shawn Anastasio
        wrote:<br>
      </div>
      <blockquote type="cite"
cite="mid:818891459587be5e7263fa958701dc34abc4d16d.1741284947.git.sanastasio@raptorengineering.com">
        <pre wrap="" class="moz-quote-pre">Xen's memory management APIs map_pages_to_xen, modify_xen_mappings,
set_fixmap, ioremap_attr, and __vmap all use an unsigned int to
represent architecture-dependent page table entry flags. This assumption
is not well-suited for PPC/radix where some flags go past 32-bits, so
introduce the pte_attr_t type to allow architectures to opt in to larger
types to store PTE flags.

Suggested-by: Andrew Cooper <a class="moz-txt-link-rfc2396E"
        href="mailto:andrew.cooper3@citrix.com" moz-do-not-send="true">&lt;andrew.cooper3@citrix.com&gt;</a>
Signed-off-by: Shawn Anastasio <a class="moz-txt-link-rfc2396E"
        href="mailto:sanastasio@raptorengineering.com"
        moz-do-not-send="true">&lt;sanastasio@raptorengineering.com&gt;</a>
---
Changes in v4:
  - Change definitions of map_pages_to_xen, modify_xen_mappings in all arches
  to match new prototype.
  - Use new flag types in modify_xen_mappings_lite as well (previously missed)

Changes in v3:
  - Use new asm/mm-types.h to pull in pte_attr_t definition when
  necessary.
  - Drop define+ifdef since pte_attr_t is now always defined.

Changes in v2:
  - Drop Kconfig option and use `#define pte_attr_t pte_attr_t` for arches to
  opt-in to defining the type.
  - Move default pte_attr_definition to xen/types.h
  - Update commit message to reflect that this change isn't strictly
  necessary for arches w/ &gt;32bit pte flags

 xen/arch/arm/mmu/pt.c               | 4 ++--
 xen/arch/ppc/include/asm/Makefile   | 1 -
 xen/arch/ppc/include/asm/mm-types.h | 7 +++++++
 xen/arch/ppc/mm-radix.c             | 2 +-
 xen/arch/riscv/pt.c                 | 2 +-</pre>
      </blockquote>
      <pre>Reviewed-by: Oleksii Kurochko <a
      class="moz-txt-link-rfc2396E"
      href="mailto:oleksii.kurochko@gmail.com" moz-do-not-send="true">&lt;oleksii.kurochko@gmail.com&gt;</a></pre>
    </blockquote>
    <pre>Also as the part of this patch the following changes should be considered (I can send that as
a separate patch):
$ git diff

diff --git a/xen/arch/riscv/include/asm/fixmap.h b/xen/arch/riscv/include/asm/fixmap.h
index e399a15f53..5990c964aa 100644
--- a/xen/arch/riscv/include/asm/fixmap.h
+++ b/xen/arch/riscv/include/asm/fixmap.h
@@ -33,7 +33,7 @@
 extern pte_t xen_fixmap[];
 
 /* Map a page in a fixmap entry */
-void set_fixmap(unsigned int map, mfn_t mfn, unsigned int flags);
+void set_fixmap(unsigned int map, mfn_t mfn, pte_attr_t flags);
 /* Remove a mapping from a fixmap entry */
 void clear_fixmap(unsigned int map);
 
diff --git a/xen/arch/riscv/include/asm/page.h b/xen/arch/riscv/include/asm/page.h
index 3904d42a71..e23d69214e 100644
--- a/xen/arch/riscv/include/asm/page.h
+++ b/xen/arch/riscv/include/asm/page.h
@@ -217,7 +217,7 @@ static inline pte_t read_pte(const pte_t *p)
     return read_atomic(p);
 }
 
-static inline pte_t pte_from_mfn(mfn_t mfn, unsigned int flags)
+static inline pte_t pte_from_mfn(mfn_t mfn, pte_attr_t flags)
 {
     unsigned long pte = (mfn_x(mfn) &lt;&lt; PTE_PPN_SHIFT) | flags;
     return (pte_t){ .pte = pte };
diff --git a/xen/arch/riscv/pt.c b/xen/arch/riscv/pt.c
index ef84b6b078..d6cc68b7db 100644
--- a/xen/arch/riscv/pt.c
+++ b/xen/arch/riscv/pt.c
@@ -25,7 +25,7 @@ static inline mfn_t get_root_page(void)
  * See the comment about the possible combination of (mfn, flags) in
  * the comment above pt_update().
  */
-static bool pt_check_entry(pte_t entry, mfn_t mfn, unsigned int flags)
+static bool pt_check_entry(pte_t entry, mfn_t mfn, pte_attr_t flags)
 {
     /* Sanity check when modifying an entry. */
     if ( (flags &amp; PTE_VALID) &amp;&amp; mfn_eq(mfn, INVALID_MFN) )
@@ -260,7 +260,7 @@ pte_t pt_walk(vaddr_t va, unsigned int *pte_level)
  */
 static int pt_update_entry(mfn_t root, vaddr_t virt,
                            mfn_t mfn, unsigned int *target,
-                           unsigned int flags)
+                           pte_attr_t flags)
 {
     int rc;
     /*
@@ -355,7 +355,7 @@ static int pt_update_entry(mfn_t root, vaddr_t virt,
 
 /* Return the level where mapping should be done */
 static int pt_mapping_level(unsigned long vfn, mfn_t mfn, unsigned long nr,
-                            unsigned int flags)
+                            pte_attr_t flags)
 {
     unsigned int level = 0;
     unsigned long mask;
@@ -409,7 +409,7 @@ static DEFINE_SPINLOCK(pt_lock);
  * inserting will be done.
  */
 static int pt_update(vaddr_t virt, mfn_t mfn,
-                     unsigned long nr_mfns, unsigned int flags)
+                     unsigned long nr_mfns, pte_attr_t flags)
 {
     int rc = 0;
     unsigned long vfn = PFN_DOWN(virt);
@@ -537,7 +537,7 @@ int __init populate_pt_range(unsigned long virt, unsigned long nr_mfns)
 }
 
 /* Map a 4k page in a fixmap entry */
-void set_fixmap(unsigned int map, mfn_t mfn, unsigned int flags)
+void set_fixmap(unsigned int map, mfn_t mfn, pte_attr_t flags)
 {
     if ( map_pages_to_xen(FIXMAP_ADDR(map), mfn, 1, flags | PTE_SMALL) != 0 )
         BUG();

~ Oleksii

</pre>
    <p><br>
    </p>
    <blockquote type="cite"
      cite="mid:803f27c4-c04b-4382-b7b0-e958134e1fd0@gmail.com">
      <pre>~ Oleksii
</pre>
      <blockquote type="cite"
cite="mid:818891459587be5e7263fa958701dc34abc4d16d.1741284947.git.sanastasio@raptorengineering.com">
        <pre wrap="" class="moz-quote-pre"> xen/arch/x86/mm.c                   | 6 +++---
 xen/common/efi/boot.c               | 5 +++--
 xen/common/vmap.c                   | 2 +-
 xen/include/asm-generic/mm-types.h  | 2 ++
 xen/include/xen/mm.h                | 7 ++++---
 xen/include/xen/vmap.h              | 4 +++-
 11 files changed, 27 insertions(+), 15 deletions(-)
 create mode 100644 xen/arch/ppc/include/asm/mm-types.h

diff --git a/xen/arch/arm/mmu/pt.c b/xen/arch/arm/mmu/pt.c
index da28d669e7..9dc99db352 100644
--- a/xen/arch/arm/mmu/pt.c
+++ b/xen/arch/arm/mmu/pt.c
@@ -701,7 +701,7 @@ static int xen_pt_update(unsigned long virt,
 int map_pages_to_xen(unsigned long virt,
                      mfn_t mfn,
                      unsigned long nr_mfns,
-                     unsigned int flags)
+                     pte_attr_t flags)
 {
     return xen_pt_update(virt, mfn, nr_mfns, flags);
 }
@@ -719,7 +719,7 @@ int destroy_xen_mappings(unsigned long s, unsigned long e)
     return xen_pt_update(s, INVALID_MFN, (e - s) &gt;&gt; PAGE_SHIFT, 0);
 }

-int modify_xen_mappings(unsigned long s, unsigned long e, unsigned int nf)
+int modify_xen_mappings(unsigned long s, unsigned long e, pte_attr_t nf)
 {
     ASSERT(IS_ALIGNED(s, PAGE_SIZE));
     ASSERT(IS_ALIGNED(e, PAGE_SIZE));
diff --git a/xen/arch/ppc/include/asm/Makefile b/xen/arch/ppc/include/asm/Makefile
index c0dbc68ac6..c989a7f89b 100644
--- a/xen/arch/ppc/include/asm/Makefile
+++ b/xen/arch/ppc/include/asm/Makefile
@@ -5,7 +5,6 @@ generic-y += div64.h
 generic-y += hardirq.h
 generic-y += hypercall.h
 generic-y += iocap.h
-generic-y += mm-types.h
 generic-y += paging.h
 generic-y += percpu.h
 generic-y += perfc_defn.h
diff --git a/xen/arch/ppc/include/asm/mm-types.h b/xen/arch/ppc/include/asm/mm-types.h
new file mode 100644
index 0000000000..0cb850f4f6
--- /dev/null
+++ b/xen/arch/ppc/include/asm/mm-types.h
@@ -0,0 +1,7 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+#ifndef __ASM_PPC_MM_TYPES_H__
+#define __ASM_PPC_MM_TYPES_H__
+
+typedef unsigned long pte_attr_t;
+
+#endif /* __ASM_PPC_MM_TYPES_H__ */
diff --git a/xen/arch/ppc/mm-radix.c b/xen/arch/ppc/mm-radix.c
index 24232f3907..e02dffa7c5 100644
--- a/xen/arch/ppc/mm-radix.c
+++ b/xen/arch/ppc/mm-radix.c
@@ -265,7 +265,7 @@ int destroy_xen_mappings(unsigned long s, unsigned long e)
 int map_pages_to_xen(unsigned long virt,
                      mfn_t mfn,
                      unsigned long nr_mfns,
-                     unsigned int flags)
+                     pte_attr_t flags)
 {
     BUG_ON("unimplemented");
 }
diff --git a/xen/arch/riscv/pt.c b/xen/arch/riscv/pt.c
index 857619d48d..918b1b91ab 100644
--- a/xen/arch/riscv/pt.c
+++ b/xen/arch/riscv/pt.c
@@ -504,7 +504,7 @@ static int pt_update(vaddr_t virt, mfn_t mfn,
 int map_pages_to_xen(unsigned long virt,
                      mfn_t mfn,
                      unsigned long nr_mfns,
-                     unsigned int flags)
+                     pte_attr_t flags)
 {
     /*
      * Ensure that flags has PTE_VALID bit as map_pages_to_xen() is supposed
diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
index bfdc8fb019..53c17c6f88 100644
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -5472,7 +5472,7 @@ int map_pages_to_xen(
     unsigned long virt,
     mfn_t mfn,
     unsigned long nr_mfns,
-    unsigned int flags)
+    pte_attr_t flags)
 {
     bool locking = system_state &gt; SYS_STATE_boot;
     l3_pgentry_t *pl3e = NULL, ol3e;
@@ -5890,7 +5890,7 @@ int __init populate_pt_range(unsigned long virt, unsigned long nr_mfns)
  *
  * It is an error to call with present flags over an unpopulated range.
  */
-int modify_xen_mappings(unsigned long s, unsigned long e, unsigned int nf)
+int modify_xen_mappings(unsigned long s, unsigned long e, pte_attr_t nf)
 {
     bool locking = system_state &gt; SYS_STATE_boot;
     l3_pgentry_t *pl3e = NULL;
@@ -6186,7 +6186,7 @@ int destroy_xen_mappings(unsigned long s, unsigned long e)
  * the non-inclusive boundary will be updated.
  */
 void init_or_livepatch modify_xen_mappings_lite(
-    unsigned long s, unsigned long e, unsigned int nf)
+    unsigned long s, unsigned long e, pte_attr_t nf)
 {
     unsigned long v = s, fm, flags;

diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c
index efbec00af9..999dbce4dc 100644
--- a/xen/common/efi/boot.c
+++ b/xen/common/efi/boot.c
@@ -1,4 +1,5 @@
 #include "efi.h"
+#include &lt;asm/mm-types.h&gt;
 #include &lt;efi/efiprot.h&gt;
 #include &lt;efi/efipciio.h&gt;
 #include &lt;public/xen.h&gt;
@@ -1656,7 +1657,7 @@ void __init efi_init_memory(void)
     struct rt_extra {
         struct rt_extra *next;
         unsigned long smfn, emfn;
-        unsigned int prot;
+        pte_attr_t prot;
     } *extra, *extra_head = NULL;

     free_ebmalloc_unused_mem();
@@ -1671,7 +1672,7 @@ void __init efi_init_memory(void)
         EFI_MEMORY_DESCRIPTOR *desc = efi_memmap + i;
         u64 len = desc-&gt;NumberOfPages &lt;&lt; EFI_PAGE_SHIFT;
         unsigned long smfn, emfn;
-        unsigned int prot = PAGE_HYPERVISOR_RWX;
+        pte_attr_t prot = PAGE_HYPERVISOR_RWX;
         paddr_t mem_base;
         unsigned long mem_npages;

diff --git a/xen/common/vmap.c b/xen/common/vmap.c
index 47225fecc0..d6991421f3 100644
--- a/xen/common/vmap.c
+++ b/xen/common/vmap.c
@@ -222,7 +222,7 @@ static void vm_free(const void *va)
 }

 void *__vmap(const mfn_t *mfn, unsigned int granularity,
-             unsigned int nr, unsigned int align, unsigned int flags,
+             unsigned int nr, unsigned int align, pte_attr_t flags,
              enum vmap_region type)
 {
     void *va = vm_alloc(nr * granularity, align, type);
diff --git a/xen/include/asm-generic/mm-types.h b/xen/include/asm-generic/mm-types.h
index 26490e48db..9eb3cba698 100644
--- a/xen/include/asm-generic/mm-types.h
+++ b/xen/include/asm-generic/mm-types.h
@@ -2,4 +2,6 @@
 #ifndef __ASM_GENERIC_MM_TYPES_H__
 #define __ASM_GENERIC_MM_TYPES_H__

+typedef unsigned int pte_attr_t;
+
 #endif /* __ASM_GENERIC_MM_TYPES_H__ */
diff --git a/xen/include/xen/mm.h b/xen/include/xen/mm.h
index 16f733281a..e79f1728c3 100644
--- a/xen/include/xen/mm.h
+++ b/xen/include/xen/mm.h
@@ -69,6 +69,7 @@
 #include &lt;xen/spinlock.h&gt;
 #include &lt;xen/perfc.h&gt;
 #include &lt;public/memory.h&gt;
+#include &lt;asm/mm-types.h&gt;

 struct page_info;

@@ -113,11 +114,11 @@ int map_pages_to_xen(
     unsigned long virt,
     mfn_t mfn,
     unsigned long nr_mfns,
-    unsigned int flags);
+    pte_attr_t flags);
 /* Alter the permissions of a range of Xen virtual address space. */
-int modify_xen_mappings(unsigned long s, unsigned long e, unsigned int nf);
+int modify_xen_mappings(unsigned long s, unsigned long e, pte_attr_t nf);
 void modify_xen_mappings_lite(unsigned long s, unsigned long e,
-                              unsigned int nf);
+                              pte_attr_t nf);
 int destroy_xen_mappings(unsigned long s, unsigned long e);
 /* Retrieve the MFN mapped by VA in Xen virtual address space. */
 mfn_t xen_map_to_mfn(unsigned long va);
diff --git a/xen/include/xen/vmap.h b/xen/include/xen/vmap.h
index 26c831757a..e1155ed14a 100644
--- a/xen/include/xen/vmap.h
+++ b/xen/include/xen/vmap.h
@@ -8,8 +8,10 @@
 #ifndef __XEN_VMAP_H__
 #define __XEN_VMAP_H__

+#include &lt;xen/mm.h&gt;
 #include &lt;xen/mm-frame.h&gt;
 #include &lt;xen/page-size.h&gt;
+#include &lt;asm/mm-types.h&gt;

 /* Identifiers for the linear ranges tracked by vmap */
 enum vmap_region {
@@ -57,7 +59,7 @@ void vm_init_type(enum vmap_region type, void *start, void *end);
  * @return Pointer to the mapped area on success; NULL otherwise.
  */
 void *__vmap(const mfn_t *mfn, unsigned int granularity, unsigned int nr,
-             unsigned int align, unsigned int flags, enum vmap_region type);
+             unsigned int align, pte_attr_t flags, enum vmap_region type);

 /*
  * Map an array of pages contiguously into the VMAP_DEFAULT vmap region
--
2.30.2

</pre>
      </blockquote>
    </blockquote>
  </body>
</html>

--------------z11UG2tOytcGdUcsMf5pdcyk--


From xen-devel-bounces@lists.xenproject.org Fri Apr 25 11:24:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 11:24:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.967688.1357427 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8HAN-0001J9-Tj; Fri, 25 Apr 2025 11:24:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 967688.1357427; Fri, 25 Apr 2025 11: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 1u8HAN-0001Fq-P9; Fri, 25 Apr 2025 11:24:23 +0000
Received: by outflank-mailman (input) for mailman id 967688;
 Fri, 25 Apr 2025 11: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=6c45=XL=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u8HAM-0001A7-H3
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 11:24:22 +0000
Received: from mail-wm1-x32d.google.com (mail-wm1-x32d.google.com
 [2a00:1450:4864:20::32d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d5e2c304-21c7-11f0-9eb3-5ba50f476ded;
 Fri, 25 Apr 2025 13:24:22 +0200 (CEST)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-43d07ca6a80so9160225e9.1
 for <xen-devel@lists.xenproject.org>; Fri, 25 Apr 2025 04:24:22 -0700 (PDT)
Received: from localhost.localdomain (host-92-26-98-202.as13285.net.
 [92.26.98.202]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-440a531072csm21743005e9.18.2025.04.25.04.24.20
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 25 Apr 2025 04:24:20 -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: d5e2c304-21c7-11f0-9eb3-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745580261; x=1746185061; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=tA9Gz9qx65Gsb4o9nkP44u7yRdCQbYGW4dzg5Ro9QOc=;
        b=hTGkb16h/AG58ahGdz6eV+zoOCx0XrTxRXEoktwph0u4ijQmB8LxaJg0G6R1npX1gb
         so+STfuANX8jn2HChMHeSksT7/rwFgekLwBtFnIR51OkvZpEw9RXNc3TdyaPHpW/eFI0
         sChiRwYB631ZJbrRbb3BczUFPox0QZK5F+m8E=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745580261; x=1746185061;
        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=tA9Gz9qx65Gsb4o9nkP44u7yRdCQbYGW4dzg5Ro9QOc=;
        b=fqG19tZzcDZ/StJDPYBaQtLZDSa3gL9X0OgQbBKnCSGBCvs1rkM2Osw7xtnXJAAnkI
         7RmAc2W7nJfgAi/Mof9dKRNgsIpYojCuzquORx7Vw163RuhqwxcZ7pMhcvxkfmV9j7bC
         xDsZIRlZFTKoTKlAzExwt9xvAQQGP3YR5obxvqz8USbaUgJ1IgCeNCUN6aUvfQHIEQ5r
         ZfO3kuNnuIjsPKjIplmiTCOUWU4k4Wz5MJ/3XHDlSX92OAnZyyIZmaMnxzJWxTNXGkEG
         WzT6TSy/oHwDn7arRLxewQdOTFhbhH8CtBREjRNQOKxxHnY7CVUPAGk0v9jE0PZIisU3
         Howg==
X-Gm-Message-State: AOJu0YwYNz+3Lzx3Nx/YgSqUMCYjsBjcxMMa5pfxK9J1UhHZuie5WIsR
	JrHdXa1CLmXyR5v7LUT3k1ErvYtC60VLfow1ghjv4bPrF6cXDtxlWYe+b3+S6yhnhsTRI/IPahb
	g
X-Gm-Gg: ASbGnct5IrxP2ZluDu6erlrcTKHsQJxGw9yu6Ebx0DUm62Zp/BnrzQtTxo6IpM7NjIs
	rJQ0abimqkHEDdxzFcNfjCH0GOFbV3SG/JZGXTQGHQ7uvl/E5UYAnX4hj3FMjEGf5vlC59NB+2k
	LCmcDk42ojitKUlS1BmsYBYxTa8JXhATdTOXcOo9XC/tOPDS1DfiN0LtzLHntDEAMRkBgF4LwpO
	fLJ2GFcv5SIPkZKHTKUfKDH5Woe3csJ07LXmDKwe5J/HJI1n4cnsI8rAThvusf5xvEZ3BBGzvbV
	RmI1NksTUcGkSOpBdQXEfSw8zuFM0FdYGvQL3S4UILloFVuDjKZZpovWFuDf6JDtfXEySC51rhs
	WbNx1OpO33gq6qA==
X-Google-Smtp-Source: AGHT+IE7qq6rdVvEodnYNzVwFetkoOzSbmHdfaMaKLgbHb7zJLjUw4/w1tYTLRr64nlFDst4kpg2fw==
X-Received: by 2002:a05:600c:a00c:b0:43c:fae1:5151 with SMTP id 5b1f17b1804b1-440a6698465mr15908595e9.25.1745580261176;
        Fri, 25 Apr 2025 04:24:21 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Shawn Anastasio <sanastasio@raptorengineering.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH v5 2/3] xen/mm: Switch some APIs over to pte_attr_t
Date: Fri, 25 Apr 2025 12:24:14 +0100
Message-Id: <20250425112415.245585-3-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250425112415.245585-1-andrew.cooper3@citrix.com>
References: <20250425112415.245585-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: Shawn Anastasio <sanastasio@raptorengineering.com>

Several APIs take an architecture-dependent set of flags in an unsigned int,
but this needs to be a wider type to support PPC.

The new type pte_attr_t has been introduced for this purpose, so switch to it
in map_pages_to_xen(), __vmap() and modify_xen_mappings{,_lite}().

No functional change.

Suggested-by: Andrew Cooper <andrew.cooper3@citrix.com>
Signed-off-by: Shawn Anastasio <sanastasio@raptorengineering.com>
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Julien Grall <julien@xen.org>
CC: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
CC: Bertrand Marquis <bertrand.marquis@arm.com>
CC: Michal Orzel <michal.orzel@amd.com>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
CC: Shawn Anastasio <sanastasio@raptorengineering.com>
---
 xen/arch/arm/mmu/pt.c   | 4 ++--
 xen/arch/ppc/mm-radix.c | 2 +-
 xen/arch/riscv/pt.c     | 2 +-
 xen/arch/x86/mm.c       | 6 +++---
 xen/common/efi/boot.c   | 4 ++--
 xen/common/vmap.c       | 2 +-
 xen/include/xen/mm.h    | 7 ++++---
 xen/include/xen/vmap.h  | 3 ++-
 8 files changed, 16 insertions(+), 14 deletions(-)

diff --git a/xen/arch/arm/mmu/pt.c b/xen/arch/arm/mmu/pt.c
index 11cb1c66dac8..4726e713efd3 100644
--- a/xen/arch/arm/mmu/pt.c
+++ b/xen/arch/arm/mmu/pt.c
@@ -696,7 +696,7 @@ static int xen_pt_update(unsigned long virt,
 int map_pages_to_xen(unsigned long virt,
                      mfn_t mfn,
                      unsigned long nr_mfns,
-                     unsigned int flags)
+                     pte_attr_t flags)
 {
     return xen_pt_update(virt, mfn, nr_mfns, flags);
 }
@@ -714,7 +714,7 @@ int destroy_xen_mappings(unsigned long s, unsigned long e)
     return xen_pt_update(s, INVALID_MFN, (e - s) >> PAGE_SHIFT, 0);
 }
 
-int modify_xen_mappings(unsigned long s, unsigned long e, unsigned int nf)
+int modify_xen_mappings(unsigned long s, unsigned long e, pte_attr_t nf)
 {
     ASSERT(IS_ALIGNED(s, PAGE_SIZE));
     ASSERT(IS_ALIGNED(e, PAGE_SIZE));
diff --git a/xen/arch/ppc/mm-radix.c b/xen/arch/ppc/mm-radix.c
index 9a00ae416af0..d5385ec9dd4b 100644
--- a/xen/arch/ppc/mm-radix.c
+++ b/xen/arch/ppc/mm-radix.c
@@ -265,7 +265,7 @@ int destroy_xen_mappings(unsigned long s, unsigned long e)
 int map_pages_to_xen(unsigned long virt,
                      mfn_t mfn,
                      unsigned long nr_mfns,
-                     unsigned int flags)
+                     pte_attr_t flags)
 {
     BUG_ON("unimplemented");
 }
diff --git a/xen/arch/riscv/pt.c b/xen/arch/riscv/pt.c
index 857619d48df1..918b1b91abde 100644
--- a/xen/arch/riscv/pt.c
+++ b/xen/arch/riscv/pt.c
@@ -504,7 +504,7 @@ static int pt_update(vaddr_t virt, mfn_t mfn,
 int map_pages_to_xen(unsigned long virt,
                      mfn_t mfn,
                      unsigned long nr_mfns,
-                     unsigned int flags)
+                     pte_attr_t flags)
 {
     /*
      * Ensure that flags has PTE_VALID bit as map_pages_to_xen() is supposed
diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
index 1cf236516789..0e6c766be4aa 100644
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -5442,7 +5442,7 @@ int map_pages_to_xen(
     unsigned long virt,
     mfn_t mfn,
     unsigned long nr_mfns,
-    unsigned int flags)
+    pte_attr_t flags)
 {
     bool locking = system_state > SYS_STATE_boot;
     l3_pgentry_t *pl3e = NULL, ol3e;
@@ -5860,7 +5860,7 @@ int __init populate_pt_range(unsigned long virt, unsigned long nr_mfns)
  *
  * It is an error to call with present flags over an unpopulated range.
  */
-int modify_xen_mappings(unsigned long s, unsigned long e, unsigned int nf)
+int modify_xen_mappings(unsigned long s, unsigned long e, pte_attr_t nf)
 {
     bool locking = system_state > SYS_STATE_boot;
     l3_pgentry_t *pl3e = NULL;
@@ -6156,7 +6156,7 @@ int destroy_xen_mappings(unsigned long s, unsigned long e)
  * the non-inclusive boundary will be updated.
  */
 void init_or_livepatch modify_xen_mappings_lite(
-    unsigned long s, unsigned long e, unsigned int nf)
+    unsigned long s, unsigned long e, pte_attr_t nf)
 {
     unsigned long v = s, fm, flags;
 
diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c
index 143b5681ba92..e39fbc3529c4 100644
--- a/xen/common/efi/boot.c
+++ b/xen/common/efi/boot.c
@@ -1676,7 +1676,7 @@ void __init efi_init_memory(void)
     struct rt_extra {
         struct rt_extra *next;
         unsigned long smfn, emfn;
-        unsigned int prot;
+        pte_attr_t prot;
     } *extra, *extra_head = NULL;
 
     free_ebmalloc_unused_mem();
@@ -1691,7 +1691,7 @@ void __init efi_init_memory(void)
         EFI_MEMORY_DESCRIPTOR *desc = efi_memmap + i;
         u64 len = desc->NumberOfPages << EFI_PAGE_SHIFT;
         unsigned long smfn, emfn;
-        unsigned int prot = PAGE_HYPERVISOR_RWX;
+        pte_attr_t prot = PAGE_HYPERVISOR_RWX;
         paddr_t mem_base;
         unsigned long mem_npages;
 
diff --git a/xen/common/vmap.c b/xen/common/vmap.c
index 47225fecc067..d6991421f3f7 100644
--- a/xen/common/vmap.c
+++ b/xen/common/vmap.c
@@ -222,7 +222,7 @@ static void vm_free(const void *va)
 }
 
 void *__vmap(const mfn_t *mfn, unsigned int granularity,
-             unsigned int nr, unsigned int align, unsigned int flags,
+             unsigned int nr, unsigned int align, pte_attr_t flags,
              enum vmap_region type)
 {
     void *va = vm_alloc(nr * granularity, align, type);
diff --git a/xen/include/xen/mm.h b/xen/include/xen/mm.h
index ae1c48a61545..e89942b87d1e 100644
--- a/xen/include/xen/mm.h
+++ b/xen/include/xen/mm.h
@@ -64,6 +64,7 @@
 #include <xen/bug.h>
 #include <xen/compiler.h>
 #include <xen/mm-frame.h>
+#include <xen/mm-types.h>
 #include <xen/types.h>
 #include <xen/list.h>
 #include <xen/spinlock.h>
@@ -113,11 +114,11 @@ int map_pages_to_xen(
     unsigned long virt,
     mfn_t mfn,
     unsigned long nr_mfns,
-    unsigned int flags);
+    pte_attr_t flags);
 /* Alter the permissions of a range of Xen virtual address space. */
-int modify_xen_mappings(unsigned long s, unsigned long e, unsigned int nf);
+int modify_xen_mappings(unsigned long s, unsigned long e, pte_attr_t nf);
 void modify_xen_mappings_lite(unsigned long s, unsigned long e,
-                              unsigned int nf);
+                              pte_attr_t nf);
 int destroy_xen_mappings(unsigned long s, unsigned long e);
 /* Retrieve the MFN mapped by VA in Xen virtual address space. */
 mfn_t xen_map_to_mfn(unsigned long va);
diff --git a/xen/include/xen/vmap.h b/xen/include/xen/vmap.h
index 26c831757a11..327a2597826d 100644
--- a/xen/include/xen/vmap.h
+++ b/xen/include/xen/vmap.h
@@ -9,6 +9,7 @@
 #define __XEN_VMAP_H__
 
 #include <xen/mm-frame.h>
+#include <xen/mm-types.h>
 #include <xen/page-size.h>
 
 /* Identifiers for the linear ranges tracked by vmap */
@@ -57,7 +58,7 @@ void vm_init_type(enum vmap_region type, void *start, void *end);
  * @return Pointer to the mapped area on success; NULL otherwise.
  */
 void *__vmap(const mfn_t *mfn, unsigned int granularity, unsigned int nr,
-             unsigned int align, unsigned int flags, enum vmap_region type);
+             unsigned int align, pte_attr_t flags, enum vmap_region type);
 
 /*
  * Map an array of pages contiguously into the VMAP_DEFAULT vmap region
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Apr 25 11:24:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 11:24:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.967687.1357422 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8HAN-0001E3-MW; Fri, 25 Apr 2025 11:24:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 967687.1357422; Fri, 25 Apr 2025 11: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 1u8HAN-0001DI-IN; Fri, 25 Apr 2025 11:24:23 +0000
Received: by outflank-mailman (input) for mailman id 967687;
 Fri, 25 Apr 2025 11:24: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=6c45=XL=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u8HAM-0001AX-39
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 11:24:22 +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 d4cce376-21c7-11f0-9ffb-bf95429c2676;
 Fri, 25 Apr 2025 13:24:20 +0200 (CEST)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-43d2d952eb1so15048715e9.1
 for <xen-devel@lists.xenproject.org>; Fri, 25 Apr 2025 04:24:20 -0700 (PDT)
Received: from localhost.localdomain (host-92-26-98-202.as13285.net.
 [92.26.98.202]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-440a531072csm21743005e9.18.2025.04.25.04.24.18
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 25 Apr 2025 04:24:18 -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: d4cce376-21c7-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745580259; x=1746185059; 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=YiFJDGmQn+KQNTJ2JzPNQ5Hnz+qZ6HXT6jjVBS38GNk=;
        b=rYvfmEbSyKlmh0qFt3C9utLc2MTbSsVYsxJQZMzLD/bYWAf1YohDcL4Q36ImXNUGMa
         GUhztUlSfw+onjKyjoHskjUR5knSCoB5MlxSk6b1/Nziq1OXBQX5WFISWU56diOyDXB2
         odl2xmvfFBBcHkOjuDb/JsltH05hljW2K1WT4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745580259; x=1746185059;
        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=YiFJDGmQn+KQNTJ2JzPNQ5Hnz+qZ6HXT6jjVBS38GNk=;
        b=UcMSxYajoc8W77InW5mocWmsTgcEW1KYmoqfEuKGonb/hcKDBgxb1b5wCDYa/NNkiW
         zD8h6zWxL5xVzXn/QymQTSvhiF0WIfzF5GAJ01SkvH7LGPuLAqMJua7iAvTbHD3IKjoB
         mMHynT1dxc78UsXKAomqnhJpUBgNUf2qopJcrzOySHgiYuhaGng2DxZZ6klbzOkVD6EN
         HmsBbTRcLSRtnI4fMk7qwWSainEbC5euA2QLatPph60i+F7y589HzgmMok1MC1utkS7W
         Rqz5qqsSKdV6xNoLoWeYM4MTk2tG3D3gUcKk3bqP0LCKtBg1RV3cuuyZgOk/ShtQOkNr
         SMjA==
X-Gm-Message-State: AOJu0Yxj+U81RAfgCnB0fqR+sUO2KJ7dEb0CMIUBTLRnhP02MHiTxfI3
	Ne4yckixKOIERSkxeNgWLa0haEgFQ19iZplpci7eaKtulwGj4h3noPYQ9PTlJC7jkG4kUGwUNwo
	f
X-Gm-Gg: ASbGncuoJLlrXsy+18CqfLGPgu7Ca/1oq7XxPqWj+NI1KDRGF99vepki+9rRpiN5vFq
	MwDvMalFooGzSXwoYhVIOCyIwmirNXrQg6Ciio6zOFF0HeaPRRYKHldlinfl/ZigI8DJ9O5SwEv
	cHXPt1x18Lo8BVVu2nBwz4JCNSM/xQdSj7a/4J+J4sIauBB5KGIJoEMspBFuE8yc6tSFO/G6oLz
	/WZuhVR5CwsTtzyHfcDXaWZl7TPV5YidkuJC5jbbub0jB8Dypvc+8Zk0vumCbKNQR9m4pjFGZSI
	87dlkj1f5oaz52FfDlfRSZyltsAHkZHtNhO4VEQJ8GkkCVzgzq0k01Z1i3J7un8L8iz3VgSgtMd
	O8DFac6+c5lECBQ==
X-Google-Smtp-Source: AGHT+IEzI4yvi2ZlxZKf3Lt/U46wM/oxeiZTMcJO8ab9we6uVs6D8qHzxmqn65nQbEbGkQeCDQxOVA==
X-Received: by 2002:a05:600c:1c0a:b0:440:68db:a045 with SMTP id 5b1f17b1804b1-440a66abaffmr14477275e9.26.1745580259369;
        Fri, 25 Apr 2025 04:24:19 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Shawn Anastasio <sanastasio@raptorengineering.com>
Subject: [PATCH v5 0/3] xen/mm: Introduce pte_attr_t
Date: Fri, 25 Apr 2025 12:24:12 +0100
Message-Id: <20250425112415.245585-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 is in order to support PPC needing wider flags, but I've also written it
as a showcase of the new __has_include().

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

Andrew Cooper (1):
  xen/mm: Introduce mm-types.h

Shawn Anastasio (2):
  xen/mm: Switch some APIs over to pte_attr_t
  ppc/mm: Introduce mm-types.h

 xen/arch/arm/mmu/pt.c               |  4 ++--
 xen/arch/ppc/include/asm/mm-types.h |  7 +++++++
 xen/arch/ppc/mm-radix.c             |  2 +-
 xen/arch/riscv/pt.c                 |  2 +-
 xen/arch/x86/mm.c                   |  6 +++---
 xen/common/efi/boot.c               |  4 ++--
 xen/common/vmap.c                   |  2 +-
 xen/include/xen/mm-types.h          | 19 +++++++++++++++++++
 xen/include/xen/mm.h                |  7 ++++---
 xen/include/xen/vmap.h              |  3 ++-
 10 files changed, 42 insertions(+), 14 deletions(-)
 create mode 100644 xen/arch/ppc/include/asm/mm-types.h
 create mode 100644 xen/include/xen/mm-types.h


base-commit: 6dc1b711ded0e477c501d4017ccb0da83d6d56a1
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Apr 25 11:24:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 11:24:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.967689.1357448 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8HAP-0001r8-7J; Fri, 25 Apr 2025 11:24:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 967689.1357448; Fri, 25 Apr 2025 11:24:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8HAP-0001qR-2S; Fri, 25 Apr 2025 11:24:25 +0000
Received: by outflank-mailman (input) for mailman id 967689;
 Fri, 25 Apr 2025 11:24: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=6c45=XL=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u8HAN-0001A7-Qn
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 11:24:23 +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 d6b2928f-21c7-11f0-9eb3-5ba50f476ded;
 Fri, 25 Apr 2025 13:24:23 +0200 (CEST)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-43d2d952eb1so15049285e9.1
 for <xen-devel@lists.xenproject.org>; Fri, 25 Apr 2025 04:24:23 -0700 (PDT)
Received: from localhost.localdomain (host-92-26-98-202.as13285.net.
 [92.26.98.202]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-440a531072csm21743005e9.18.2025.04.25.04.24.21
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 25 Apr 2025 04:24:21 -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: d6b2928f-21c7-11f0-9eb3-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745580263; x=1746185063; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=v36HYmxQutvat5+vkDgo13dmyUzLDnP9Gcli+3xTA18=;
        b=mrx6vv2b/kS660y42GT0Z23ISsNlZxk1PLoYK84p04IqBn1eGu7mirUpBaxFvR6ZJz
         HFR69Eg2sxWgbEPYO8TOgxVUjXlYv3MUCXcJx7PmSVVYcZkvzDq5uQe8Fk7M3hubYp10
         w3cdUVVFkqVMKuy53D2wcadKn8YELVP7b//As=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745580263; x=1746185063;
        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=v36HYmxQutvat5+vkDgo13dmyUzLDnP9Gcli+3xTA18=;
        b=SYhlGdwDP/OXqzrjRIh2n6MFq8ZYmCTKrtb/lM6vhEAqrKI20mLQ48fzp3csoJZfeS
         RELxo8v8f9lbsxhzXXFpYYSyR+3p2vSzbpfSOz2CMr0mUeWq3ktWeILpWtnplasTThRn
         LpF6GdAmw0HD/tr3EoeKjd45fO+Wa6hxBQ08G7Ans812IXdA3kA1Sc311SA8/3b4dGo6
         IDad+bWtvBTeiE+vHB6CE5Ky3LktAeHN5qyNs7A8kTp7dZcSZc/t4iPXJUpz/4MUNlLQ
         dK+BYDCjkcRxSTSIaWuCs8S7jmmu5uli1mihwsOh6E9pjaXcDuPW9pVTEWuVsrnbhpJk
         r3XQ==
X-Gm-Message-State: AOJu0YwXgqStn7fbtoqX7FMaNnxx836boEEHMgqEWnTcrVcTCKhVOX/u
	mioNT1YfFF3rxcgZST+zB9zB3h/zSqMAcIiLTB092/uoACyjrenKa6kGx+kmFAw2/kPMMMFhI9x
	q
X-Gm-Gg: ASbGncvUfNnuBUq3RVemGRs9nBGRBZMf3VBRpMBVT/jhjFEom9ond37hJaCERoreENP
	V5lQlniMmie1OV+afOVbkQrghz1sFBMa8jy1pW36VO+qlIpGia4TBSna/pmw09sdzvpVyP127J3
	mpqal4fL5KYnZyXVOS81Kq3FqQWXer3BYf2O4zSEWR5q+hV1RJI0z/IzOnjWxqhO6NfVAuj5V4G
	OK9P8b3cOFx4vL5QUVrj6WkqkkV4ovtz/zTYOb70eVojSHQMJiMaEn2IZYPwnQEfBAoTztFhL+h
	JOk1hHZvRt0WnT3PzdRLop4FjNzbRmG69VApA6i6zn/RvF8u7hOBkkQZOcymjgsIjtJey1W6EiI
	yWKeUEIixNofVGA==
X-Google-Smtp-Source: AGHT+IHRAPyNcrOaqj+bbzurrRKNdUBK3cc5md8L0wzSjrPO3xVS+zDe1HZyI4mdv4p/xbr8sHyvnw==
X-Received: by 2002:a05:600c:1d9f:b0:43c:fceb:91a with SMTP id 5b1f17b1804b1-440a65e6dc3mr16451745e9.11.1745580262651;
        Fri, 25 Apr 2025 04:24:22 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Shawn Anastasio <sanastasio@raptorengineering.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH v5 3/3] ppc/mm: Introduce mm-types.h
Date: Fri, 25 Apr 2025 12:24:15 +0100
Message-Id: <20250425112415.245585-4-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250425112415.245585-1-andrew.cooper3@citrix.com>
References: <20250425112415.245585-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: Shawn Anastasio <sanastasio@raptorengineering.com>

Signed-off-by: Shawn Anastasio <sanastasio@raptorengineering.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Julien Grall <julien@xen.org>
CC: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
CC: Bertrand Marquis <bertrand.marquis@arm.com>
CC: Michal Orzel <michal.orzel@amd.com>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
CC: Shawn Anastasio <sanastasio@raptorengineering.com>

Possibly not for taking on it's own (might be better with the PPC
implemenation of map_pages_to_xen()).

Nevertheless, this patch alone now does trip:

  diff --git a/xen/common/vmap.c b/xen/common/vmap.c
  index d6991421f3f7..9552806dba39 100644
  --- a/xen/common/vmap.c
  +++ b/xen/common/vmap.c
  @@ -228,6 +228,8 @@ void *__vmap(const mfn_t *mfn, unsigned int granularity,
       void *va = vm_alloc(nr * granularity, align, type);
       unsigned long cur = (unsigned long)va;

  +    BUILD_BUG_ON(sizeof(pte_attr_t) != 4);
  +
       for ( ; va && nr--; ++mfn, cur += PAGE_SIZE * granularity )
       {
           if ( map_pages_to_xen(cur, *mfn, granularity, flags) )

in PPC builds only.
---
 xen/arch/ppc/include/asm/mm-types.h | 7 +++++++
 1 file changed, 7 insertions(+)
 create mode 100644 xen/arch/ppc/include/asm/mm-types.h

diff --git a/xen/arch/ppc/include/asm/mm-types.h b/xen/arch/ppc/include/asm/mm-types.h
new file mode 100644
index 000000000000..06a3af1c6eda
--- /dev/null
+++ b/xen/arch/ppc/include/asm/mm-types.h
@@ -0,0 +1,7 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+#ifndef PPC_MM_TYPES_H
+#define PPC_MM_TYPES_H
+
+typedef unsigned long pte_attr_t;
+
+#endif /* PPC_MM_TYPES_H */
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Apr 25 11:24:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 11:24:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.967686.1357417 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8HAN-0001B2-F8; Fri, 25 Apr 2025 11:24:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 967686.1357417; Fri, 25 Apr 2025 11: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 1u8HAN-0001Av-BV; Fri, 25 Apr 2025 11:24:23 +0000
Received: by outflank-mailman (input) for mailman id 967686;
 Fri, 25 Apr 2025 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=6c45=XL=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u8HAL-0001A7-RY
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 11:24:21 +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 d552c605-21c7-11f0-9eb3-5ba50f476ded;
 Fri, 25 Apr 2025 13:24:21 +0200 (CEST)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-43d04ea9d9aso9815905e9.3
 for <xen-devel@lists.xenproject.org>; Fri, 25 Apr 2025 04:24:21 -0700 (PDT)
Received: from localhost.localdomain (host-92-26-98-202.as13285.net.
 [92.26.98.202]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-440a531072csm21743005e9.18.2025.04.25.04.24.19
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 25 Apr 2025 04:24: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: d552c605-21c7-11f0-9eb3-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745580260; x=1746185060; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=vhEPjQ0dQZYRoJ0ktNBv9zT4/PmoHcrhpTUaXmh36R0=;
        b=msKsHHLCuIPuOcLK0js/Oo3rRTXzPeCz1k4mfc6WiJIvSnxi17LuplZ7WZmPrJ6/Y4
         wNeJszfR7T1cPWb12PfSIdNEtBllkI80cntKWQ9T+6eb63Gh82gven9WULf1ThaydCrn
         b+GeBbytuXGeDi6pbqwk47dPOfMPBKvTs7hG0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745580260; x=1746185060;
        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=vhEPjQ0dQZYRoJ0ktNBv9zT4/PmoHcrhpTUaXmh36R0=;
        b=Oo3IxHPhqEK+pYbPgy0lQnBJQJF9fyNqh6eO8QRwSd04+kT9mwAYw/5mN/nCv8DBjM
         Ymiamrt1/Yip8m3GtWDdQJC6AlrXtMVkqyHujAJP33JUkc9Lpum18IqmxO2Rp/+43j4a
         gFxFPXZmMgEorCFsXG+/kMskM8Y3bQPNHw3CS9OQmVStQxjAy+WqdlBMwH+g5WsZQRi3
         9bQG0uRvebZP1xeu7s96YAtsF1dLqyUZ4xdxn/bi73uQqXxlKgxWa9w3qaRHVPWnaMmW
         KplzGbNWUO/ewnUpsEmVEqjwUrrKW55m8aFoVYaLrLMOxAQp6SwPrPPkvnoSMyAwL56F
         lnGw==
X-Gm-Message-State: AOJu0YzqQCJl3q73IWj6DnutafEO/9MR+OdVfgdQVwDnFnv8TY3oDtRB
	bcviUzv0ViBwxqTCFWo8/nK749GctGUgQEoGLFvo3SO07/wsOmpyuGrrMKHPaCnYKrnuODEUw6m
	U
X-Gm-Gg: ASbGnctwXwVzxdev0OBJ5Ss5ZfgySCBBPd85czMwmpThZR95opQcpsjFABKhoUPvahx
	vyUZJr5h9OZE2x8E6DIcjRA3vWx0tdeFBEr88POxFlhu5qmy6fkvanSIsYu734g9XUqcxjTeUFg
	14z6O/bHQV8toAdHZCTT7P1OWjkoEN1Tz8xnNb0v9th+EX+g6vIXPV+gyXRM6a2DyFUF8XiFqLg
	OWMq/iFkJ+1U3igKiv0IAb7azlahAbk6CDUT91D+4tqLdF3dJ/U9Ks02YPZPwNY0mI6hSak7tMK
	lvUUmLVGqeWMsFPDyLSLipxSadsoO9k97jr1uMN/jFvKNRQaBXbrb0V3DOqIIKcCbJDUMyzHZqK
	SRXZLSo019sPYgA==
X-Google-Smtp-Source: AGHT+IGb33P6iew2x/LwHCVVSD/WMU6Rnd/sjM/clhLo2nrZj8J0Qdu+u/nUx/p6WnCLGVbN07MdsQ==
X-Received: by 2002:a05:600c:c88:b0:43d:10c:2f60 with SMTP id 5b1f17b1804b1-440a669c41bmr14772985e9.24.1745580260269;
        Fri, 25 Apr 2025 04:24:20 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Shawn Anastasio <sanastasio@raptorengineering.com>
Subject: [PATCH v5 1/3] xen/mm: Introduce mm-types.h
Date: Fri, 25 Apr 2025 12:24:13 +0100
Message-Id: <20250425112415.245585-2-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250425112415.245585-1-andrew.cooper3@citrix.com>
References: <20250425112415.245585-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The type used for pagetable attributes/permissions is currently unsigned int,
but needs to become architecture dependent as PPC needs unsigned long.

Introduce mm-types.h to house pte_attr_t.

Given the new toolchain baseline, we can use __has_include() now to remove the
need for boilerplate on most architectures.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Julien Grall <julien@xen.org>
CC: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
CC: Bertrand Marquis <bertrand.marquis@arm.com>
CC: Michal Orzel <michal.orzel@amd.com>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
CC: Shawn Anastasio <sanastasio@raptorengineering.com>

__has_include() was one of the justifications for the new toolchain baseline,
and is included in https://gitlab.com/xen-project/xen/-/issues/201
---
 xen/include/xen/mm-types.h | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)
 create mode 100644 xen/include/xen/mm-types.h

diff --git a/xen/include/xen/mm-types.h b/xen/include/xen/mm-types.h
new file mode 100644
index 000000000000..19f692e9aaa4
--- /dev/null
+++ b/xen/include/xen/mm-types.h
@@ -0,0 +1,19 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+#ifndef XEN_MM_TYPES_H
+#define XEN_MM_TYPES_H
+
+/*
+ * Types used to abstract away architecture-specific details in the memory
+ * management code.
+ *
+ * Architectures need only provide their own asm/mm-types.h if they want to
+ * override the defaults given here.
+ */
+#if __has_include(<asm/mm-types.h>)
+# include <asm/mm-types.h>
+#else /* !__has_include(<asm/mm-types.h>) */
+
+typedef unsigned int pte_attr_t;
+
+#endif /* !__has_include(<asm/mm-types.h>) */
+#endif /* XEN_MM_TYPES_H */
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Apr 25 11:29:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 11:29:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.967725.1357457 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8HEw-0003KV-Qp; Fri, 25 Apr 2025 11:29:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 967725.1357457; Fri, 25 Apr 2025 11: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 1u8HEw-0003KO-NX; Fri, 25 Apr 2025 11:29:06 +0000
Received: by outflank-mailman (input) for mailman id 967725;
 Fri, 25 Apr 2025 11:29: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=snHQ=XL=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1u8HEu-0003KI-SC
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 11:29:04 +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 7dcf0ce7-21c8-11f0-9eb3-5ba50f476ded;
 Fri, 25 Apr 2025 13:29:03 +0200 (CEST)
Received: by mail-ej1-x636.google.com with SMTP id
 a640c23a62f3a-aaecf50578eso325455366b.2
 for <xen-devel@lists.xenproject.org>; Fri, 25 Apr 2025 04:29:03 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-64-225.play-internet.pl.
 [109.243.64.225]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-ace6ecf82f9sm119532966b.88.2025.04.25.04.29.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 25 Apr 2025 04:29: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: 7dcf0ce7-21c8-11f0-9eb3-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1745580543; x=1746185343; darn=lists.xenproject.org;
        h=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=H+SAy5snn6/GCaaOhHtZ4cE3/CrQZuOkyWlRx197FXQ=;
        b=L9QCbxm3p+JV0abb6Uwsu1P6m35OdHY/SzyEJ4Lysv+guyeQUF69mT6Dj1SXugBuli
         N7ijKmdWqu5b40qlaS6PFtkEopVg7PRcuCdnmitwEp9BHESML8T6Zbtb0/TG6hSm5lAR
         uhB8eeHzKXXGQ/yGEqUygBaXNRbHp2nJeJNKusZO1lWWALbrE+JjSu0WR/XUPxYPfBrn
         qQv3VZ06Jyk4lAypxLTpNd5fDm1Ze9Eex6Qj9cx0vj4nMmQzKLVzR12WSDuxGDWvPwOn
         KEA7XZU3+1ygxThFHAS0rzHRiBitmjbFLdAVaU3bLuWWK1X7A9ICikxNf1HqpSgZ5iSd
         CIkw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745580543; x=1746185343;
        h=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=H+SAy5snn6/GCaaOhHtZ4cE3/CrQZuOkyWlRx197FXQ=;
        b=sIZyaM0emrivldDel2lJLGU9FcWzgr0AoU9ld9CAANrlFIsDiuuNF78NKEpIoVJLG4
         j6B/E7m1RCB9SDrSgSX4ubsTPJOuCkUjnsm2JCTAwkhpqpaDI2y9JcVsknrCIvIHUlMg
         Xy9xtLqDZ5C6HoXomndKbQzZ/W2qQuQZS+IGNLq6OGjAxjFbo8DZq4MoQxoFceoiwhof
         cmksm0w5u6G59vX3h8InvRKRlsQViy6dsJtknK7ZVsRddQpf2gfT0GFxdSXbpZc9+gc6
         3IEFF22Tfy5y+0Rj+dYyS81zk4KfLOPsmqy11XOwqYHbvXEB4y3E5eDlN0KpbjA8YDdE
         wL0A==
X-Forwarded-Encrypted: i=1; AJvYcCUEJoH+64n/AN/edtzHfsu8BU0TEI482Gnve0vGMnXck/g+pCXSjoYXtn7zGAr5tIF9IvfYB63TS1A=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzGh9HfNLDOBevEdv+XE2c7bjKisHQCqGXt5dzyyHihy5LfMQke
	2h6Ip4bMucSZuHMwKKJW38FgAS53mN+awBg5sdP6X45p17MUu+KE
X-Gm-Gg: ASbGncuSTz84qJBLLp5oXWoZYYiuE0AL8A2UUoVhCZfGy+6ym4e3AbqA1VuSWwgi6Dh
	E7zhiQAuwf4qo4QQqEzevVJeevSuf4ljNyh+NERfLc3qygDHZp45qeTncoFEULFlTL6GCOaybXN
	qhWR7fmgfqfh5r0i9JkPJ5hr0aQt0yp7LtsKzp9iPvtcMdUWgEAitqM0quRiWOK45tfyu2P6fCi
	9Jv8hERtwXLt54sfhpjLxuTuaEpHy7toAskkZBib8bXwtfDlVdEtBYvAzEcLEio+U/FuyMe7Ibw
	LBnGRwUjSsYiWD/ZZ0f5l+4hffZhnnI/OFMb1tEr3JxeEH5MeDotRvM5jwqImdgemuOwT28XEip
	RmXn0fbieb8iTD2Gm
X-Google-Smtp-Source: AGHT+IHBNRzqsgKYcfK3ojGJeheZ2vOkqmR1y1BFISRYVf6PdJ0VPuyJY2fdEuBs2qaYIilIDziQjQ==
X-Received: by 2002:a17:907:7d89:b0:ac8:14ad:f3cf with SMTP id a640c23a62f3a-ace710951b9mr201173566b.23.1745580542546;
        Fri, 25 Apr 2025 04:29:02 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------E2FUEUj2sfNWNJrxaWVk0hsc"
Message-ID: <b2883538-8cea-4fde-b42b-55455fa810ca@gmail.com>
Date: Fri, 25 Apr 2025 13:29:01 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 1/3] xen/mm: Introduce mm-types.h
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>, Stefano Stabellini <sstabellini@kernel.org>,
 Julien Grall <julien@xen.org>, Volodymyr Babchuk
 <Volodymyr_Babchuk@epam.com>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Shawn Anastasio <sanastasio@raptorengineering.com>
References: <20250425112415.245585-1-andrew.cooper3@citrix.com>
 <20250425112415.245585-2-andrew.cooper3@citrix.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <20250425112415.245585-2-andrew.cooper3@citrix.com>

This is a multi-part message in MIME format.
--------------E2FUEUj2sfNWNJrxaWVk0hsc
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 4/25/25 1:24 PM, Andrew Cooper wrote:
> The type used for pagetable attributes/permissions is currently unsigned int,
> but needs to become architecture dependent as PPC needs unsigned long.

Not only PPC, RISC-V needs it too.

>
> Introduce mm-types.h to house pte_attr_t.

Do we really want a separate mm-types.h?
If yes then:
  Reviewed-by: Oleksii Kurochko<oleksii.kurochko@gmail.com>

~ Oleksii

>
> Given the new toolchain baseline, we can use __has_include() now to remove the
> need for boilerplate on most architectures.
>
> Signed-off-by: Andrew Cooper<andrew.cooper3@citrix.com>
> ---
> CC: Jan Beulich<JBeulich@suse.com>
> CC: Roger Pau Monné<roger.pau@citrix.com>
> CC: Stefano Stabellini<sstabellini@kernel.org>
> CC: Julien Grall<julien@xen.org>
> CC: Volodymyr Babchuk<Volodymyr_Babchuk@epam.com>
> CC: Bertrand Marquis<bertrand.marquis@arm.com>
> CC: Michal Orzel<michal.orzel@amd.com>
> CC: Oleksii Kurochko<oleksii.kurochko@gmail.com>
> CC: Shawn Anastasio<sanastasio@raptorengineering.com>
>
> __has_include() was one of the justifications for the new toolchain baseline,
> and is included inhttps://gitlab.com/xen-project/xen/-/issues/201
> ---
>   xen/include/xen/mm-types.h | 19 +++++++++++++++++++
>   1 file changed, 19 insertions(+)
>   create mode 100644 xen/include/xen/mm-types.h
>
> diff --git a/xen/include/xen/mm-types.h b/xen/include/xen/mm-types.h
> new file mode 100644
> index 000000000000..19f692e9aaa4
> --- /dev/null
> +++ b/xen/include/xen/mm-types.h
> @@ -0,0 +1,19 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +#ifndef XEN_MM_TYPES_H
> +#define XEN_MM_TYPES_H
> +
> +/*
> + * Types used to abstract away architecture-specific details in the memory
> + * management code.
> + *
> + * Architectures need only provide their own asm/mm-types.h if they want to
> + * override the defaults given here.
> + */
> +#if __has_include(<asm/mm-types.h>)
> +# include <asm/mm-types.h>
> +#else /* !__has_include(<asm/mm-types.h>) */
> +
> +typedef unsigned int pte_attr_t;
> +
> +#endif /* !__has_include(<asm/mm-types.h>) */
> +#endif /* XEN_MM_TYPES_H */
--------------E2FUEUj2sfNWNJrxaWVk0hsc
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 4/25/25 1:24 PM, Andrew Cooper
      wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:20250425112415.245585-2-andrew.cooper3@citrix.com">
      <pre wrap="" class="moz-quote-pre">The type used for pagetable attributes/permissions is currently unsigned int,
but needs to become architecture dependent as PPC needs unsigned long.</pre>
    </blockquote>
    <pre>Not only PPC, RISC-V needs it too.

</pre>
    <blockquote type="cite"
      cite="mid:20250425112415.245585-2-andrew.cooper3@citrix.com">
      <pre wrap="" class="moz-quote-pre">

Introduce mm-types.h to house pte_attr_t.</pre>
    </blockquote>
    <pre>Do we really want a separate mm-types.h?
If yes then:
 Reviewed-by: Oleksii Kurochko <a class="moz-txt-link-rfc2396E" href="mailto:oleksii.kurochko@gmail.com">&lt;oleksii.kurochko@gmail.com&gt;</a>

~ Oleksii
</pre>
    <blockquote type="cite"
      cite="mid:20250425112415.245585-2-andrew.cooper3@citrix.com">
      <pre wrap="" class="moz-quote-pre">

Given the new toolchain baseline, we can use __has_include() now to remove the
need for boilerplate on most architectures.

Signed-off-by: Andrew Cooper <a class="moz-txt-link-rfc2396E" href="mailto:andrew.cooper3@citrix.com">&lt;andrew.cooper3@citrix.com&gt;</a>
---
CC: Jan Beulich <a class="moz-txt-link-rfc2396E" href="mailto:JBeulich@suse.com">&lt;JBeulich@suse.com&gt;</a>
CC: Roger Pau Monné <a class="moz-txt-link-rfc2396E" href="mailto:roger.pau@citrix.com">&lt;roger.pau@citrix.com&gt;</a>
CC: Stefano Stabellini <a class="moz-txt-link-rfc2396E" href="mailto:sstabellini@kernel.org">&lt;sstabellini@kernel.org&gt;</a>
CC: Julien Grall <a class="moz-txt-link-rfc2396E" href="mailto:julien@xen.org">&lt;julien@xen.org&gt;</a>
CC: Volodymyr Babchuk <a class="moz-txt-link-rfc2396E" href="mailto:Volodymyr_Babchuk@epam.com">&lt;Volodymyr_Babchuk@epam.com&gt;</a>
CC: Bertrand Marquis <a class="moz-txt-link-rfc2396E" href="mailto:bertrand.marquis@arm.com">&lt;bertrand.marquis@arm.com&gt;</a>
CC: Michal Orzel <a class="moz-txt-link-rfc2396E" href="mailto:michal.orzel@amd.com">&lt;michal.orzel@amd.com&gt;</a>
CC: Oleksii Kurochko <a class="moz-txt-link-rfc2396E" href="mailto:oleksii.kurochko@gmail.com">&lt;oleksii.kurochko@gmail.com&gt;</a>
CC: Shawn Anastasio <a class="moz-txt-link-rfc2396E" href="mailto:sanastasio@raptorengineering.com">&lt;sanastasio@raptorengineering.com&gt;</a>

__has_include() was one of the justifications for the new toolchain baseline,
and is included in <a class="moz-txt-link-freetext" href="https://gitlab.com/xen-project/xen/-/issues/201">https://gitlab.com/xen-project/xen/-/issues/201</a>
---
 xen/include/xen/mm-types.h | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)
 create mode 100644 xen/include/xen/mm-types.h

diff --git a/xen/include/xen/mm-types.h b/xen/include/xen/mm-types.h
new file mode 100644
index 000000000000..19f692e9aaa4
--- /dev/null
+++ b/xen/include/xen/mm-types.h
@@ -0,0 +1,19 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+#ifndef XEN_MM_TYPES_H
+#define XEN_MM_TYPES_H
+
+/*
+ * Types used to abstract away architecture-specific details in the memory
+ * management code.
+ *
+ * Architectures need only provide their own asm/mm-types.h if they want to
+ * override the defaults given here.
+ */
+#if __has_include(&lt;asm/mm-types.h&gt;)
+# include &lt;asm/mm-types.h&gt;
+#else /* !__has_include(&lt;asm/mm-types.h&gt;) */
+
+typedef unsigned int pte_attr_t;
+
+#endif /* !__has_include(&lt;asm/mm-types.h&gt;) */
+#endif /* XEN_MM_TYPES_H */
</pre>
    </blockquote>
  </body>
</html>

--------------E2FUEUj2sfNWNJrxaWVk0hsc--


From xen-devel-bounces@lists.xenproject.org Fri Apr 25 11:32:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 11:32:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.967744.1357466 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8HIN-0005Uy-8B; Fri, 25 Apr 2025 11:32:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 967744.1357466; Fri, 25 Apr 2025 11:32:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8HIN-0005Ur-5O; Fri, 25 Apr 2025 11:32:39 +0000
Received: by outflank-mailman (input) for mailman id 967744;
 Fri, 25 Apr 2025 11:32:38 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=AYju=XL=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u8HIM-0005Ul-6G
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 11:32:38 +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 fc2cac75-21c8-11f0-9ffb-bf95429c2676;
 Fri, 25 Apr 2025 13:32:35 +0200 (CEST)
Received: by mail-ed1-x52e.google.com with SMTP id
 4fb4d7f45d1cf-5e5e8274a74so3314932a12.1
 for <xen-devel@lists.xenproject.org>; Fri, 25 Apr 2025 04:32:36 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 4fb4d7f45d1cf-5f70354635csm1156854a12.49.2025.04.25.04.32.34
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 25 Apr 2025 04:32:35 -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: fc2cac75-21c8-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745580755; x=1746185555; 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=JzM4/Rj4ycImLA04FgIK9XC5uE2TDbLJM9e4B7nM+SM=;
        b=iRxgMuEWvmUqGoA9cBdu2SJUyVzMWef5ABIrmt9iXRLDrqStDwogEcX+SlhwcdwhaC
         1jQ2nHFXd0ivgvzXXZCqTdyf7m3HC30YH0QdpG+m+DGrf7BY2sDOnOF71cBXwg6D/Raj
         p60SoUYh22pBzH9b0voClH5eMRfSjqPNj5YeU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745580755; x=1746185555;
        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=JzM4/Rj4ycImLA04FgIK9XC5uE2TDbLJM9e4B7nM+SM=;
        b=bThnnO+IIj5VInUl2opQr4+MQ1XnA1/aDFIOnOdTI+hMfKGbfsAHJGQMOUSRraMN0G
         q2k8zliaZXm34BaN9QL5eIN1R+WqBO2Csl25aNv3aw2jSsgPCt9tkjuyevV+NoDTMzfs
         JCHRiOKBaFuPHiPRq0wOE342g/qCXsZOyCNe3MX+8ZIzweDli/Cz8k4NCI3kP+iPHpAT
         8EKnce1c9X/UoIYzMVYwhVxnW8Car/FqmAOsUJa/MQmSUj96tMVo9bW9nsxjRQUQ1z9R
         N7hG0dZZK6VPR6E6efEw875DEIRC7EKfK0FQloAdtskW1DR5jfQDH6zBNwXw55NyX7ry
         fzhg==
X-Gm-Message-State: AOJu0YxCwI4aELfHqIjGJ0nekMTNZSKirSE1/IGMLlT9gjX0H9yYGkuX
	h2fzk+EDbMf0R20vbyx7xiRsolqSJOv+GmKeRjBpiDZ9fFy2XM//aAcC3zWCVIbGQD5C5l/hF6B
	c
X-Gm-Gg: ASbGncuEeLYo1L5l36jccTZC2xx8/LyBsOCLnFwW++ulmRfAgCdnmNd9XNlsVpcZZ1l
	SAGDuWd3SY/SCm3n/bwwYC5xf3qTsLkWrKJpqiitYumreFN5uAkXPaH9UaqxkNQdVlrSyMZGpbc
	1BFWVu3Ztl33+ZkD3vB2NxaT0AFZ70jtdOVOCMSuUH3iffq94wCjzGnohFUrOFX8uXOCRyrsLxy
	8wEa1YD0RPCFv9rA3vq9u15PzWg7+mQaKGaDJ8qHH4skSlL3chbqxHnpuhZJgEUPZS7ije/u6FY
	B6/51DLQypbGBGEEQX6ADn4LiVyPNf5VHA9L1D3x8ycWyw==
X-Google-Smtp-Source: AGHT+IHW9mq9KXqdPedQev6ujTwASuo3KZA/UQNi40BMEdX4Y/ad/LGAw9JdpUui1eg/+vcGmFxS8g==
X-Received: by 2002:a05:6402:35d2:b0:5d0:bf5e:eb8 with SMTP id 4fb4d7f45d1cf-5f7234347aemr1469706a12.23.1745580755472;
        Fri, 25 Apr 2025 04:32:35 -0700 (PDT)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2] xen: fix buffer over-read in bitmap_to_xenctl_bitmap()
Date: Fri, 25 Apr 2025 13:32:27 +0200
Message-ID: <20250425113227.10243-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.48.1
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

There's an off-by-one when calculating the last byte in the input array to
bitmap_to_xenctl_bitmap(), which leads to bitmaps with sizes multiple of 8
to over-read and incorrectly use a byte past the end of the array.

Fixes: 288c4641c80d ('xen: simplify bitmap_to_xenctl_bitmap for little endian')
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
Changes since v1:
 - Handle length 0.
---
 xen/common/bitmap.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/xen/common/bitmap.c b/xen/common/bitmap.c
index bf1a7fd91e36..4f96fda3895c 100644
--- a/xen/common/bitmap.c
+++ b/xen/common/bitmap.c
@@ -369,6 +369,9 @@ int bitmap_to_xenctl_bitmap(struct xenctl_bitmap *xenctl_bitmap,
     const uint8_t *bytemap;
     uint8_t last, *buf = NULL;
 
+    if ( !nbits )
+        return 0;
+
     if ( !IS_ENABLED(LITTLE_ENDIAN) )
     {
         buf = xmalloc_array(uint8_t, xen_bytes);
@@ -396,7 +399,7 @@ int bitmap_to_xenctl_bitmap(struct xenctl_bitmap *xenctl_bitmap,
      * their loops to 8 bits. Ensure we clear those left over bits so as to
      * prevent surprises.
      */
-    last = bytemap[nbits / 8];
+    last = bytemap[(nbits - 1) / 8];
     if ( nbits % 8 )
         last &= (1U << (nbits % 8)) - 1;
 
-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Fri Apr 25 11:33:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 11:33:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.967754.1357476 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8HJQ-00060Q-HG; Fri, 25 Apr 2025 11:33:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 967754.1357476; Fri, 25 Apr 2025 11:33: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 1u8HJQ-00060J-Ed; Fri, 25 Apr 2025 11:33:44 +0000
Received: by outflank-mailman (input) for mailman id 967754;
 Fri, 25 Apr 2025 11:33: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=snHQ=XL=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1u8HJP-00060B-Li
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 11:33:43 +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 23ccafed-21c9-11f0-9eb3-5ba50f476ded;
 Fri, 25 Apr 2025 13:33:42 +0200 (CEST)
Received: by mail-ed1-x52a.google.com with SMTP id
 4fb4d7f45d1cf-5f728aeedacso759534a12.2
 for <xen-devel@lists.xenproject.org>; Fri, 25 Apr 2025 04:33:42 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-64-225.play-internet.pl.
 [109.243.64.225]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5f7011fbfb2sm1159402a12.3.2025.04.25.04.33.40
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 25 Apr 2025 04:33: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: 23ccafed-21c9-11f0-9eb3-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1745580822; x=1746185622; darn=lists.xenproject.org;
        h=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=9lLm29aqWt0rWLPledrWyLIqIdL9SmfRnysXh5mS0LM=;
        b=hScnNWqjoxKwPSe15VcB34GBpOC6YJhyzFbzbWXnWi8x78225AdN+Tm6PApr0m9LBN
         IVv8sLYHWa87Zr/8qwFgNcNOy3/kBIvpnaZysN0GMo/wcRtq7VbFzMAMcVYaHL1Clq3J
         8d2y6Dc32xmglSLUxiefNGyT3mFyMenVE6GOZgVQiNv6e/DGOzz47PGfNz7CuDDIcdMl
         qYJ/4fwDLtkjuAlA0JP2wY7Yw5ERoBwj6Hkg7EJleFjQJ4jGQLRffgJOMVI9jSeHpT6d
         C1dA3YGrcjgbxn+pNQ4eEcSbx7XFyerLhjXKu2LmuI9ZS+FGgFRBfc4HNFQKp6J/WjNj
         hFPg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745580822; x=1746185622;
        h=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=9lLm29aqWt0rWLPledrWyLIqIdL9SmfRnysXh5mS0LM=;
        b=GbQmjkazm00V9exYt9wYW8Kqw7CJ+7/qWrHuR6gGw/TM1arh1+7GeO06rTsf62Pn9Z
         qvfLpIb3zf+qkcPyli45fFuShkH4IptyeICB3TGtVt9aVr7F46tTfgRnJEvfn8wY6gHj
         hKQuY+CIRs1judC05tloCv+O0fleqz5z6pDj6OBzeGhGdCkVnOne69NLduMtoax17WoY
         hn1CuxUP/Uou6IIaxEdVQSSOH4+mt8D+h67PImYNlyyIa29OtezAR4KvxcBDpsJbMijd
         PV6w5eYz1NAtN2CuqE6HrO2GrwlCvAERpppGsNwKfJNq7aUKUNq5KHLyMolfcQWK9qTf
         FUXg==
X-Forwarded-Encrypted: i=1; AJvYcCUDX2vl3ssHDnsnv88rGJAKh6d4jPdDF/HT11k1v7MtgIfsA5fviowdCEJ+EN+stNgFgkpjHweR71E=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyGrlXOhjSBHLVusjKjorscmKYWncnAzRjUNFWZ8MBuh8xGO2+e
	+wxRVfsc/XMlnlqptFhfOfCc8djgwJlxFUC2Jxszany9Jn/8fZHx
X-Gm-Gg: ASbGnctR2vxJvWapZhCDkwsxNt3A0/fEctQWp7Yt4OupGbosjgZfXcg3+qThJNvB7wS
	ZnvMFFlradVmp+dMmcP1eedP60WEUh/XUzKrShxPdDDIDCREugUYMOhmxP9F0JQJjp/YNZuAP9p
	hSg0G9OjnZE85aQeTiYGNClnbhuyL+FDlqEbqEmQK9yS7XJjeoYgPOpqNIKq/5NH14qTAK14MRd
	Lr5tZ94ZYqkCk/RbbRiHOwPWMTdsYuDr+n0xJ5Qnn7RhGvZxrQRoZF6J2z/P56QN7HJU4CfK3ig
	0OoU/JSxQiJHiwMh72HoqOxv/Ns8SL50o5jDPwSsr3K1VS6Q2Xpacukis1URl2QVMSsSXEL2qvA
	sbmdP8IPwf65SwnKp
X-Google-Smtp-Source: AGHT+IFRFg34y/gA5gkIRukpwnkZSkPsgTj+556Vz9IEGGH4kjvQ43UVh3ViDBeeW9rVUR8qZ3qbAA==
X-Received: by 2002:a05:6402:5009:b0:5dc:7643:4f3d with SMTP id 4fb4d7f45d1cf-5f722577ec8mr1259665a12.1.1745580821461;
        Fri, 25 Apr 2025 04:33:41 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------Zgr0ogap5EvgzVoR73L0BTzY"
Message-ID: <123a6576-c56c-40f5-b87d-c84248d46fac@gmail.com>
Date: Fri, 25 Apr 2025 13:33:40 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 2/3] xen/mm: Switch some APIs over to pte_attr_t
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Shawn Anastasio <sanastasio@raptorengineering.com>,
 Jan Beulich <JBeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Julien Grall <julien@xen.org>, Volodymyr Babchuk
 <Volodymyr_Babchuk@epam.com>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>
References: <20250425112415.245585-1-andrew.cooper3@citrix.com>
 <20250425112415.245585-3-andrew.cooper3@citrix.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <20250425112415.245585-3-andrew.cooper3@citrix.com>

This is a multi-part message in MIME format.
--------------Zgr0ogap5EvgzVoR73L0BTzY
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 4/25/25 1:24 PM, Andrew Cooper wrote:
> From: Shawn Anastasio<sanastasio@raptorengineering.com>
>
> Several APIs take an architecture-dependent set of flags in an unsigned int,
> but this needs to be a wider type to support PPC.
>
> The new type pte_attr_t has been introduced for this purpose, so switch to it
> in map_pages_to_xen(), __vmap() and modify_xen_mappings{,_lite}().
>
> No functional change.
>
> Suggested-by: Andrew Cooper<andrew.cooper3@citrix.com>
> Signed-off-by: Shawn Anastasio<sanastasio@raptorengineering.com>
> Signed-off-by: Andrew Cooper<andrew.cooper3@citrix.com>
> Reviewed-by: Oleksii Kurochko<oleksii.kurochko@gmail.com>
> ---
> CC: Jan Beulich<JBeulich@suse.com>
> CC: Roger Pau Monné<roger.pau@citrix.com>
> CC: Stefano Stabellini<sstabellini@kernel.org>
> CC: Julien Grall<julien@xen.org>
> CC: Volodymyr Babchuk<Volodymyr_Babchuk@epam.com>
> CC: Bertrand Marquis<bertrand.marquis@arm.com>
> CC: Michal Orzel<michal.orzel@amd.com>
> CC: Oleksii Kurochko<oleksii.kurochko@gmail.com>
> CC: Shawn Anastasio<sanastasio@raptorengineering.com>
> ---
>   xen/arch/arm/mmu/pt.c   | 4 ++--
>   xen/arch/ppc/mm-radix.c | 2 +-
>   xen/arch/riscv/pt.c     | 2 +-

As I wrote here, probably, as a part of this patch we also wants to do the following changes:
   https://lore.kernel.org/xen-devel/192683d3-8777-45c2-b8a8-546bf171a7aa@gmail.com/T/#u

I'm okay with sending the mentioned changes in the link as a separate patch when I will introduce
Svpmbt extension which uses 61 and 62 bits. Let me know if you are okay with that?

If you think that these changes should be part of this patch then something similar for Arm should
be done too now.

~ Oleksii

>   xen/arch/x86/mm.c       | 6 +++---
>   xen/common/efi/boot.c   | 4 ++--
>   xen/common/vmap.c       | 2 +-
>   xen/include/xen/mm.h    | 7 ++++---
>   xen/include/xen/vmap.h  | 3 ++-
>   8 files changed, 16 insertions(+), 14 deletions(-)
>
> diff --git a/xen/arch/arm/mmu/pt.c b/xen/arch/arm/mmu/pt.c
> index 11cb1c66dac8..4726e713efd3 100644
> --- a/xen/arch/arm/mmu/pt.c
> +++ b/xen/arch/arm/mmu/pt.c
> @@ -696,7 +696,7 @@ static int xen_pt_update(unsigned long virt,
>   int map_pages_to_xen(unsigned long virt,
>                        mfn_t mfn,
>                        unsigned long nr_mfns,
> -                     unsigned int flags)
> +                     pte_attr_t flags)
>   {
>       return xen_pt_update(virt, mfn, nr_mfns, flags);
>   }
> @@ -714,7 +714,7 @@ int destroy_xen_mappings(unsigned long s, unsigned long e)
>       return xen_pt_update(s, INVALID_MFN, (e - s) >> PAGE_SHIFT, 0);
>   }
>   
> -int modify_xen_mappings(unsigned long s, unsigned long e, unsigned int nf)
> +int modify_xen_mappings(unsigned long s, unsigned long e, pte_attr_t nf)
>   {
>       ASSERT(IS_ALIGNED(s, PAGE_SIZE));
>       ASSERT(IS_ALIGNED(e, PAGE_SIZE));
> diff --git a/xen/arch/ppc/mm-radix.c b/xen/arch/ppc/mm-radix.c
> index 9a00ae416af0..d5385ec9dd4b 100644
> --- a/xen/arch/ppc/mm-radix.c
> +++ b/xen/arch/ppc/mm-radix.c
> @@ -265,7 +265,7 @@ int destroy_xen_mappings(unsigned long s, unsigned long e)
>   int map_pages_to_xen(unsigned long virt,
>                        mfn_t mfn,
>                        unsigned long nr_mfns,
> -                     unsigned int flags)
> +                     pte_attr_t flags)
>   {
>       BUG_ON("unimplemented");
>   }
> diff --git a/xen/arch/riscv/pt.c b/xen/arch/riscv/pt.c
> index 857619d48df1..918b1b91abde 100644
> --- a/xen/arch/riscv/pt.c
> +++ b/xen/arch/riscv/pt.c
> @@ -504,7 +504,7 @@ static int pt_update(vaddr_t virt, mfn_t mfn,
>   int map_pages_to_xen(unsigned long virt,
>                        mfn_t mfn,
>                        unsigned long nr_mfns,
> -                     unsigned int flags)
> +                     pte_attr_t flags)
>   {
>       /*
>        * Ensure that flags has PTE_VALID bit as map_pages_to_xen() is supposed
> diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
> index 1cf236516789..0e6c766be4aa 100644
> --- a/xen/arch/x86/mm.c
> +++ b/xen/arch/x86/mm.c
> @@ -5442,7 +5442,7 @@ int map_pages_to_xen(
>       unsigned long virt,
>       mfn_t mfn,
>       unsigned long nr_mfns,
> -    unsigned int flags)
> +    pte_attr_t flags)
>   {
>       bool locking = system_state > SYS_STATE_boot;
>       l3_pgentry_t *pl3e = NULL, ol3e;
> @@ -5860,7 +5860,7 @@ int __init populate_pt_range(unsigned long virt, unsigned long nr_mfns)
>    *
>    * It is an error to call with present flags over an unpopulated range.
>    */
> -int modify_xen_mappings(unsigned long s, unsigned long e, unsigned int nf)
> +int modify_xen_mappings(unsigned long s, unsigned long e, pte_attr_t nf)
>   {
>       bool locking = system_state > SYS_STATE_boot;
>       l3_pgentry_t *pl3e = NULL;
> @@ -6156,7 +6156,7 @@ int destroy_xen_mappings(unsigned long s, unsigned long e)
>    * the non-inclusive boundary will be updated.
>    */
>   void init_or_livepatch modify_xen_mappings_lite(
> -    unsigned long s, unsigned long e, unsigned int nf)
> +    unsigned long s, unsigned long e, pte_attr_t nf)
>   {
>       unsigned long v = s, fm, flags;
>   
> diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c
> index 143b5681ba92..e39fbc3529c4 100644
> --- a/xen/common/efi/boot.c
> +++ b/xen/common/efi/boot.c
> @@ -1676,7 +1676,7 @@ void __init efi_init_memory(void)
>       struct rt_extra {
>           struct rt_extra *next;
>           unsigned long smfn, emfn;
> -        unsigned int prot;
> +        pte_attr_t prot;
>       } *extra, *extra_head = NULL;
>   
>       free_ebmalloc_unused_mem();
> @@ -1691,7 +1691,7 @@ void __init efi_init_memory(void)
>           EFI_MEMORY_DESCRIPTOR *desc = efi_memmap + i;
>           u64 len = desc->NumberOfPages << EFI_PAGE_SHIFT;
>           unsigned long smfn, emfn;
> -        unsigned int prot = PAGE_HYPERVISOR_RWX;
> +        pte_attr_t prot = PAGE_HYPERVISOR_RWX;
>           paddr_t mem_base;
>           unsigned long mem_npages;
>   
> diff --git a/xen/common/vmap.c b/xen/common/vmap.c
> index 47225fecc067..d6991421f3f7 100644
> --- a/xen/common/vmap.c
> +++ b/xen/common/vmap.c
> @@ -222,7 +222,7 @@ static void vm_free(const void *va)
>   }
>   
>   void *__vmap(const mfn_t *mfn, unsigned int granularity,
> -             unsigned int nr, unsigned int align, unsigned int flags,
> +             unsigned int nr, unsigned int align, pte_attr_t flags,
>                enum vmap_region type)
>   {
>       void *va = vm_alloc(nr * granularity, align, type);
> diff --git a/xen/include/xen/mm.h b/xen/include/xen/mm.h
> index ae1c48a61545..e89942b87d1e 100644
> --- a/xen/include/xen/mm.h
> +++ b/xen/include/xen/mm.h
> @@ -64,6 +64,7 @@
>   #include <xen/bug.h>
>   #include <xen/compiler.h>
>   #include <xen/mm-frame.h>
> +#include <xen/mm-types.h>
>   #include <xen/types.h>
>   #include <xen/list.h>
>   #include <xen/spinlock.h>
> @@ -113,11 +114,11 @@ int map_pages_to_xen(
>       unsigned long virt,
>       mfn_t mfn,
>       unsigned long nr_mfns,
> -    unsigned int flags);
> +    pte_attr_t flags);
>   /* Alter the permissions of a range of Xen virtual address space. */
> -int modify_xen_mappings(unsigned long s, unsigned long e, unsigned int nf);
> +int modify_xen_mappings(unsigned long s, unsigned long e, pte_attr_t nf);
>   void modify_xen_mappings_lite(unsigned long s, unsigned long e,
> -                              unsigned int nf);
> +                              pte_attr_t nf);
>   int destroy_xen_mappings(unsigned long s, unsigned long e);
>   /* Retrieve the MFN mapped by VA in Xen virtual address space. */
>   mfn_t xen_map_to_mfn(unsigned long va);
> diff --git a/xen/include/xen/vmap.h b/xen/include/xen/vmap.h
> index 26c831757a11..327a2597826d 100644
> --- a/xen/include/xen/vmap.h
> +++ b/xen/include/xen/vmap.h
> @@ -9,6 +9,7 @@
>   #define __XEN_VMAP_H__
>   
>   #include <xen/mm-frame.h>
> +#include <xen/mm-types.h>
>   #include <xen/page-size.h>
>   
>   /* Identifiers for the linear ranges tracked by vmap */
> @@ -57,7 +58,7 @@ void vm_init_type(enum vmap_region type, void *start, void *end);
>    * @return Pointer to the mapped area on success; NULL otherwise.
>    */
>   void *__vmap(const mfn_t *mfn, unsigned int granularity, unsigned int nr,
> -             unsigned int align, unsigned int flags, enum vmap_region type);
> +             unsigned int align, pte_attr_t flags, enum vmap_region type);
>   
>   /*
>    * Map an array of pages contiguously into the VMAP_DEFAULT vmap region
--------------Zgr0ogap5EvgzVoR73L0BTzY
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 4/25/25 1:24 PM, Andrew Cooper
      wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:20250425112415.245585-3-andrew.cooper3@citrix.com">
      <pre wrap="" class="moz-quote-pre">From: Shawn Anastasio <a class="moz-txt-link-rfc2396E" href="mailto:sanastasio@raptorengineering.com">&lt;sanastasio@raptorengineering.com&gt;</a>

Several APIs take an architecture-dependent set of flags in an unsigned int,
but this needs to be a wider type to support PPC.

The new type pte_attr_t has been introduced for this purpose, so switch to it
in map_pages_to_xen(), __vmap() and modify_xen_mappings{,_lite}().

No functional change.

Suggested-by: Andrew Cooper <a class="moz-txt-link-rfc2396E" href="mailto:andrew.cooper3@citrix.com">&lt;andrew.cooper3@citrix.com&gt;</a>
Signed-off-by: Shawn Anastasio <a class="moz-txt-link-rfc2396E" href="mailto:sanastasio@raptorengineering.com">&lt;sanastasio@raptorengineering.com&gt;</a>
Signed-off-by: Andrew Cooper <a class="moz-txt-link-rfc2396E" href="mailto:andrew.cooper3@citrix.com">&lt;andrew.cooper3@citrix.com&gt;</a>
Reviewed-by: Oleksii Kurochko <a class="moz-txt-link-rfc2396E" href="mailto:oleksii.kurochko@gmail.com">&lt;oleksii.kurochko@gmail.com&gt;</a>
---
CC: Jan Beulich <a class="moz-txt-link-rfc2396E" href="mailto:JBeulich@suse.com">&lt;JBeulich@suse.com&gt;</a>
CC: Roger Pau Monné <a class="moz-txt-link-rfc2396E" href="mailto:roger.pau@citrix.com">&lt;roger.pau@citrix.com&gt;</a>
CC: Stefano Stabellini <a class="moz-txt-link-rfc2396E" href="mailto:sstabellini@kernel.org">&lt;sstabellini@kernel.org&gt;</a>
CC: Julien Grall <a class="moz-txt-link-rfc2396E" href="mailto:julien@xen.org">&lt;julien@xen.org&gt;</a>
CC: Volodymyr Babchuk <a class="moz-txt-link-rfc2396E" href="mailto:Volodymyr_Babchuk@epam.com">&lt;Volodymyr_Babchuk@epam.com&gt;</a>
CC: Bertrand Marquis <a class="moz-txt-link-rfc2396E" href="mailto:bertrand.marquis@arm.com">&lt;bertrand.marquis@arm.com&gt;</a>
CC: Michal Orzel <a class="moz-txt-link-rfc2396E" href="mailto:michal.orzel@amd.com">&lt;michal.orzel@amd.com&gt;</a>
CC: Oleksii Kurochko <a class="moz-txt-link-rfc2396E" href="mailto:oleksii.kurochko@gmail.com">&lt;oleksii.kurochko@gmail.com&gt;</a>
CC: Shawn Anastasio <a class="moz-txt-link-rfc2396E" href="mailto:sanastasio@raptorengineering.com">&lt;sanastasio@raptorengineering.com&gt;</a>
---
 xen/arch/arm/mmu/pt.c   | 4 ++--
 xen/arch/ppc/mm-radix.c | 2 +-
 xen/arch/riscv/pt.c     | 2 +-</pre>
    </blockquote>
    <pre>As I wrote here, probably, as a part of this patch we also wants to do the following changes:
  <a class="moz-txt-link-freetext" href="https://lore.kernel.org/xen-devel/192683d3-8777-45c2-b8a8-546bf171a7aa@gmail.com/T/#u">https://lore.kernel.org/xen-devel/192683d3-8777-45c2-b8a8-546bf171a7aa@gmail.com/T/#u</a>

I'm okay with sending the mentioned changes in the link as a separate patch when I will introduce
Svpmbt extension which uses 61 and 62 bits. Let me know if you are okay with that?

If you think that these changes should be part of this patch then something similar for Arm should
be done too now.

~ Oleksii
</pre>
    <blockquote type="cite"
      cite="mid:20250425112415.245585-3-andrew.cooper3@citrix.com">
      <pre wrap="" class="moz-quote-pre">
 xen/arch/x86/mm.c       | 6 +++---
 xen/common/efi/boot.c   | 4 ++--
 xen/common/vmap.c       | 2 +-
 xen/include/xen/mm.h    | 7 ++++---
 xen/include/xen/vmap.h  | 3 ++-
 8 files changed, 16 insertions(+), 14 deletions(-)

diff --git a/xen/arch/arm/mmu/pt.c b/xen/arch/arm/mmu/pt.c
index 11cb1c66dac8..4726e713efd3 100644
--- a/xen/arch/arm/mmu/pt.c
+++ b/xen/arch/arm/mmu/pt.c
@@ -696,7 +696,7 @@ static int xen_pt_update(unsigned long virt,
 int map_pages_to_xen(unsigned long virt,
                      mfn_t mfn,
                      unsigned long nr_mfns,
-                     unsigned int flags)
+                     pte_attr_t flags)
 {
     return xen_pt_update(virt, mfn, nr_mfns, flags);
 }
@@ -714,7 +714,7 @@ int destroy_xen_mappings(unsigned long s, unsigned long e)
     return xen_pt_update(s, INVALID_MFN, (e - s) &gt;&gt; PAGE_SHIFT, 0);
 }
 
-int modify_xen_mappings(unsigned long s, unsigned long e, unsigned int nf)
+int modify_xen_mappings(unsigned long s, unsigned long e, pte_attr_t nf)
 {
     ASSERT(IS_ALIGNED(s, PAGE_SIZE));
     ASSERT(IS_ALIGNED(e, PAGE_SIZE));
diff --git a/xen/arch/ppc/mm-radix.c b/xen/arch/ppc/mm-radix.c
index 9a00ae416af0..d5385ec9dd4b 100644
--- a/xen/arch/ppc/mm-radix.c
+++ b/xen/arch/ppc/mm-radix.c
@@ -265,7 +265,7 @@ int destroy_xen_mappings(unsigned long s, unsigned long e)
 int map_pages_to_xen(unsigned long virt,
                      mfn_t mfn,
                      unsigned long nr_mfns,
-                     unsigned int flags)
+                     pte_attr_t flags)
 {
     BUG_ON("unimplemented");
 }
diff --git a/xen/arch/riscv/pt.c b/xen/arch/riscv/pt.c
index 857619d48df1..918b1b91abde 100644
--- a/xen/arch/riscv/pt.c
+++ b/xen/arch/riscv/pt.c
@@ -504,7 +504,7 @@ static int pt_update(vaddr_t virt, mfn_t mfn,
 int map_pages_to_xen(unsigned long virt,
                      mfn_t mfn,
                      unsigned long nr_mfns,
-                     unsigned int flags)
+                     pte_attr_t flags)
 {
     /*
      * Ensure that flags has PTE_VALID bit as map_pages_to_xen() is supposed
diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
index 1cf236516789..0e6c766be4aa 100644
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -5442,7 +5442,7 @@ int map_pages_to_xen(
     unsigned long virt,
     mfn_t mfn,
     unsigned long nr_mfns,
-    unsigned int flags)
+    pte_attr_t flags)
 {
     bool locking = system_state &gt; SYS_STATE_boot;
     l3_pgentry_t *pl3e = NULL, ol3e;
@@ -5860,7 +5860,7 @@ int __init populate_pt_range(unsigned long virt, unsigned long nr_mfns)
  *
  * It is an error to call with present flags over an unpopulated range.
  */
-int modify_xen_mappings(unsigned long s, unsigned long e, unsigned int nf)
+int modify_xen_mappings(unsigned long s, unsigned long e, pte_attr_t nf)
 {
     bool locking = system_state &gt; SYS_STATE_boot;
     l3_pgentry_t *pl3e = NULL;
@@ -6156,7 +6156,7 @@ int destroy_xen_mappings(unsigned long s, unsigned long e)
  * the non-inclusive boundary will be updated.
  */
 void init_or_livepatch modify_xen_mappings_lite(
-    unsigned long s, unsigned long e, unsigned int nf)
+    unsigned long s, unsigned long e, pte_attr_t nf)
 {
     unsigned long v = s, fm, flags;
 
diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c
index 143b5681ba92..e39fbc3529c4 100644
--- a/xen/common/efi/boot.c
+++ b/xen/common/efi/boot.c
@@ -1676,7 +1676,7 @@ void __init efi_init_memory(void)
     struct rt_extra {
         struct rt_extra *next;
         unsigned long smfn, emfn;
-        unsigned int prot;
+        pte_attr_t prot;
     } *extra, *extra_head = NULL;
 
     free_ebmalloc_unused_mem();
@@ -1691,7 +1691,7 @@ void __init efi_init_memory(void)
         EFI_MEMORY_DESCRIPTOR *desc = efi_memmap + i;
         u64 len = desc-&gt;NumberOfPages &lt;&lt; EFI_PAGE_SHIFT;
         unsigned long smfn, emfn;
-        unsigned int prot = PAGE_HYPERVISOR_RWX;
+        pte_attr_t prot = PAGE_HYPERVISOR_RWX;
         paddr_t mem_base;
         unsigned long mem_npages;
 
diff --git a/xen/common/vmap.c b/xen/common/vmap.c
index 47225fecc067..d6991421f3f7 100644
--- a/xen/common/vmap.c
+++ b/xen/common/vmap.c
@@ -222,7 +222,7 @@ static void vm_free(const void *va)
 }
 
 void *__vmap(const mfn_t *mfn, unsigned int granularity,
-             unsigned int nr, unsigned int align, unsigned int flags,
+             unsigned int nr, unsigned int align, pte_attr_t flags,
              enum vmap_region type)
 {
     void *va = vm_alloc(nr * granularity, align, type);
diff --git a/xen/include/xen/mm.h b/xen/include/xen/mm.h
index ae1c48a61545..e89942b87d1e 100644
--- a/xen/include/xen/mm.h
+++ b/xen/include/xen/mm.h
@@ -64,6 +64,7 @@
 #include &lt;xen/bug.h&gt;
 #include &lt;xen/compiler.h&gt;
 #include &lt;xen/mm-frame.h&gt;
+#include &lt;xen/mm-types.h&gt;
 #include &lt;xen/types.h&gt;
 #include &lt;xen/list.h&gt;
 #include &lt;xen/spinlock.h&gt;
@@ -113,11 +114,11 @@ int map_pages_to_xen(
     unsigned long virt,
     mfn_t mfn,
     unsigned long nr_mfns,
-    unsigned int flags);
+    pte_attr_t flags);
 /* Alter the permissions of a range of Xen virtual address space. */
-int modify_xen_mappings(unsigned long s, unsigned long e, unsigned int nf);
+int modify_xen_mappings(unsigned long s, unsigned long e, pte_attr_t nf);
 void modify_xen_mappings_lite(unsigned long s, unsigned long e,
-                              unsigned int nf);
+                              pte_attr_t nf);
 int destroy_xen_mappings(unsigned long s, unsigned long e);
 /* Retrieve the MFN mapped by VA in Xen virtual address space. */
 mfn_t xen_map_to_mfn(unsigned long va);
diff --git a/xen/include/xen/vmap.h b/xen/include/xen/vmap.h
index 26c831757a11..327a2597826d 100644
--- a/xen/include/xen/vmap.h
+++ b/xen/include/xen/vmap.h
@@ -9,6 +9,7 @@
 #define __XEN_VMAP_H__
 
 #include &lt;xen/mm-frame.h&gt;
+#include &lt;xen/mm-types.h&gt;
 #include &lt;xen/page-size.h&gt;
 
 /* Identifiers for the linear ranges tracked by vmap */
@@ -57,7 +58,7 @@ void vm_init_type(enum vmap_region type, void *start, void *end);
  * @return Pointer to the mapped area on success; NULL otherwise.
  */
 void *__vmap(const mfn_t *mfn, unsigned int granularity, unsigned int nr,
-             unsigned int align, unsigned int flags, enum vmap_region type);
+             unsigned int align, pte_attr_t flags, enum vmap_region type);
 
 /*
  * Map an array of pages contiguously into the VMAP_DEFAULT vmap region
</pre>
    </blockquote>
  </body>
</html>

--------------Zgr0ogap5EvgzVoR73L0BTzY--


From xen-devel-bounces@lists.xenproject.org Fri Apr 25 11:34:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 11:34:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.967764.1357487 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8HKX-0006bg-Vf; Fri, 25 Apr 2025 11:34:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 967764.1357487; Fri, 25 Apr 2025 11:34:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8HKX-0006bZ-SW; Fri, 25 Apr 2025 11:34:53 +0000
Received: by outflank-mailman (input) for mailman id 967764;
 Fri, 25 Apr 2025 11:34: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=6c45=XL=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u8HKW-0006bT-8x
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 11:34:52 +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 4c06082c-21c9-11f0-9ffb-bf95429c2676;
 Fri, 25 Apr 2025 13:34:49 +0200 (CEST)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-43d0359b1fcso14426865e9.0
 for <xen-devel@lists.xenproject.org>; Fri, 25 Apr 2025 04:34:50 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-440a0692a22sm41515115e9.2.2025.04.25.04.34.48
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 25 Apr 2025 04:34:49 -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: 4c06082c-21c9-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745580890; x=1746185690; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=3YnxlXY+Xui4B0XEZ2ZjL2k0jYlZEV0bUPMTA5Og2jc=;
        b=mmQA51leY7VmaG6sDbPqJeSY2EMUy+0aF9NeRo51gDDpncPDDhFLue0pG4xsDcifmP
         84t2HBASbTNnnnLZoyO0lsARD5B0taqTWy3Ic2ILfrOk3k4ZCQUXHFjxH6idSMfP1na+
         +jDZm39bYBkpwvDfrShRVd3KJp64ZLBHm6fjE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745580890; x=1746185690;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=3YnxlXY+Xui4B0XEZ2ZjL2k0jYlZEV0bUPMTA5Og2jc=;
        b=o3RSpFTk49oNJMFjaUeXrcEstedP6mjyRTUsnbEBxEnGTnYfPOz/PeTSVTwtNWEiLV
         zVSGve3qwTFE1wELzjRwTs4DGoU8v+4ojv4oXikh1fhJz7Gtov7CYQYXqJyZqETQ0tS0
         5aqKKPg+z30HAY3uEFw2QsxagANzCan0nt7Y3/2NRd/W62qUzaS/iSkfZuKQQnTeBokO
         5yVLtQjS5mmGJh6XFLYR5yQlI4liLD4I9dpcU4YpzG+unCr9naVEFd6ExciHGZKwf9jB
         J0L7x1UdoVcmy4agt3BZ4P4BKEAXmS0sA+tRCKmgNw9NDI585RSwba83p0j0LLs847TI
         +Xvg==
X-Forwarded-Encrypted: i=1; AJvYcCWnFE3hxr0ggSQ9XQalhh7qXH6G5vDViOpD2Fl9YiXbDMadUSWRSGSv8wLviHskSYGAuRjvobH8XL4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzlFCTcCiQPaGpUlRpTzIpqdf4ZWJmEA7KD8mAmah9yigncXbdO
	HNKIyKEITSCmNRsqSUJobwsuqa1QsNRiVScyXdAEt6kDlsrCf+Bt9WCtf9MeLic=
X-Gm-Gg: ASbGncttZEEngBqdwH5FMtHqv/Bb2+D5qfDLsZH4gWQTMHqWPi2YxbIwyEqq+hg7Cbe
	diQ9kYAHY/w6KNR1VzcYDWx5Ru6FUc3HQhfZzxzgUj/X+Sq9xsmpNkQkc/lgJnpubrfDUInLe9/
	IGfA7bOsBoZ3AleOX68CRV9yXT6kLDxWdKR4jO+NC+dPZZsj8DzHikjgpuTbbdV2Zec3gE+l6OV
	DerD5dDk6YfMIPWbrHD0lZOSLIsdzxecqOMzXSCB5pd24pGxltcfBpJBNRbN8Qri43udMXbBmND
	Ogh0g8X/yCpoRyDXlpJkpTXl9aNvsIRvHofmyYlAJ8ncmgLMR5s2xgsDhp2M0bMCPAkFgyhAV1c
	Mg0Fd9w==
X-Google-Smtp-Source: AGHT+IGdOImIl8KhFDSVFLRKK2DFbSbAjTOkK7OneR5lUYdyCzgDyvttsHs5HhSL8GfjmQjMdBTu2A==
X-Received: by 2002:a05:600c:4f52:b0:43b:c857:e9d7 with SMTP id 5b1f17b1804b1-440a65cf326mr15546705e9.5.1745580889541;
        Fri, 25 Apr 2025 04:34:49 -0700 (PDT)
Message-ID: <46d6243f-89c8-4ab8-aeac-6f9ed69d5f61@citrix.com>
Date: Fri, 25 Apr 2025 12:34:47 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] xen: fix buffer over-read in bitmap_to_xenctl_bitmap()
To: Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
References: <20250425113227.10243-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: <20250425113227.10243-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 25/04/2025 12:32 pm, Roger Pau Monne wrote:
> There's an off-by-one when calculating the last byte in the input array to
> bitmap_to_xenctl_bitmap(), which leads to bitmaps with sizes multiple of 8
> to over-read and incorrectly use a byte past the end of the array.
>
> Fixes: 288c4641c80d ('xen: simplify bitmap_to_xenctl_bitmap for little endian')
> 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 Fri Apr 25 11:38:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 11:38:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.967780.1357497 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8HNW-0007AJ-Bv; Fri, 25 Apr 2025 11:37:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 967780.1357497; Fri, 25 Apr 2025 11:37: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 1u8HNW-0007AB-90; Fri, 25 Apr 2025 11:37:58 +0000
Received: by outflank-mailman (input) for mailman id 967780;
 Fri, 25 Apr 2025 11:37: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=snHQ=XL=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1u8HNU-0007A5-Be
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 11:37:56 +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 b9a8cda5-21c9-11f0-9ffb-bf95429c2676;
 Fri, 25 Apr 2025 13:37:53 +0200 (CEST)
Received: by mail-ed1-x531.google.com with SMTP id
 4fb4d7f45d1cf-5e5e63162a0so3195969a12.3
 for <xen-devel@lists.xenproject.org>; Fri, 25 Apr 2025 04:37:54 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-64-225.play-internet.pl.
 [109.243.64.225]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-ace6e4e69d9sm126703866b.50.2025.04.25.04.37.52
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 25 Apr 2025 04:37:52 -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: b9a8cda5-21c9-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1745581074; x=1746185874; darn=lists.xenproject.org;
        h=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=/oCzall6IJjEf2NA5xua/OK1BYGT7Y/JTGA8KS6iqJ4=;
        b=Wz63E8V4Ufhs8/gkAs08fAtG/PXCJo+bgkE8IoW1VVv0GjrBrM3otrrpG7YITrFybF
         5F3Cd6Ulyboetm9KZO6Oko3IwVm5tUVzKTEjheEG9sef1DKM3eGPbjl7cyF6o9oMcrkG
         fPJU9tgNMvfs6cON84/dNvr/If8e+gHDhWmHINexUCK05UM3zZUwHN/n7H4Cnj12phQ8
         ieNXOc+3geVlLgs+qqr0cI5fNRQVO5c88t2EDGYmsQpH40b+itQP/JCD5w19Y/oe4y+1
         zVXuST0oo1inlZ57YQs7knDIxFOt0xVOv6LQr/AlGpLZSFgeNxtn2qdbkJAGQ++M12qj
         7TDw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745581074; x=1746185874;
        h=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=/oCzall6IJjEf2NA5xua/OK1BYGT7Y/JTGA8KS6iqJ4=;
        b=QOGCa7ZD+ME6/fkn0Am3qPl1n/gd5X5a+gBGv4WsKDNaXXSwIpi9+wlcg7W7J6+bVo
         JPRlFyFtwetTW007TILgjrtqCtwYv9/iaggqVa8g712qLGiNIMLJeVh3jKT1pW3Y6pP2
         Wqij/yvmQL9avHN399I2j2fH27YfH47/XLC8Q0u98FbofKYtPGwdl5ejkImLh9gAyiGQ
         HGU42R57RbGadaz+A26qYpdNAxJt6lke9iFjzlKp9aeq0NcVmqI2eCUQCKjG/amXd1ds
         nBd6CN/amtcO94UmYVaV4OlNFN2vAktmS4oL7LXYXzX+/2WTtsM2RBV5ym17HKzkMcEE
         ZoOQ==
X-Forwarded-Encrypted: i=1; AJvYcCU7ug9gix2TYI2PcIuABNWETuwR+2kWi89J1Gs56ZXjn89Xjh36ad1vMT2dpMRH+CQ6QN7pt8HgSco=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy6TIDm7NvtS6qp5CwPou2GgJSU8saii0wzZJSp0B9nStIgvGtb
	UN2xz4dn8lQRin7EiBo0KZAIYS0PaP4JkCGx/gI00PculG/KFF+Z
X-Gm-Gg: ASbGncu9DayUDujGtlo9KhUtAlXef2ivtSH3A8FeCvI0WIS4rzSoPIFjCwJQdSGGz6+
	8kbWrwiYRDyP83DxdMYNPxjGi6Fl5ibplhKOKUOlpULGB/ztRcbYzs9t1GDwuzTlD+cgP3FRcSM
	irHx/+X7r4FHZBzk6hMuMGpyC39azYxHxNF7/FshOItZzKuavsgVWe8e7EdKrDauQIf0FCADDPq
	qK+AIXUZtUgvrmqFOjdrRXtC27e1As/epZnNUdM/gKR84zSK2Mc6b67w6Ddq214RXI6hwFqsT59
	6h20IoPz0EgRt36VTVwEwaqJdIfzA47jqF4ktTNLNWgk+Oc9IYABaVVsF2m+nCXeUugLzVvSbQ5
	UXwK8Cr+XSrwIeAwN
X-Google-Smtp-Source: AGHT+IEI/86n+Ar6kMSJ9ijLJwsfUJhgn8c8m2xYfHxjDpCXV0xyKhxlirWGiQinIxD+Am7dlL1k4A==
X-Received: by 2002:a17:907:9712:b0:acb:4f4a:cbd0 with SMTP id a640c23a62f3a-ace73a45d2bmr152419666b.14.1745581073209;
        Fri, 25 Apr 2025 04:37:53 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------XMoOdFwmyq6FjXzEzOhZitU5"
Message-ID: <71e1847a-6469-4596-b721-38e8e0060194@gmail.com>
Date: Fri, 25 Apr 2025 13:37:52 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 3/3] ppc/mm: Introduce mm-types.h
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Shawn Anastasio <sanastasio@raptorengineering.com>,
 Jan Beulich <JBeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Julien Grall <julien@xen.org>, Volodymyr Babchuk
 <Volodymyr_Babchuk@epam.com>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>
References: <20250425112415.245585-1-andrew.cooper3@citrix.com>
 <20250425112415.245585-4-andrew.cooper3@citrix.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <20250425112415.245585-4-andrew.cooper3@citrix.com>

This is a multi-part message in MIME format.
--------------XMoOdFwmyq6FjXzEzOhZitU5
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 4/25/25 1:24 PM, Andrew Cooper wrote:
> From: Shawn Anastasio<sanastasio@raptorengineering.com>
>
> Signed-off-by: Shawn Anastasio<sanastasio@raptorengineering.com>
> ---
> CC: Jan Beulich<JBeulich@suse.com>
> CC: Roger Pau Monné<roger.pau@citrix.com>
> CC: Stefano Stabellini<sstabellini@kernel.org>
> CC: Julien Grall<julien@xen.org>
> CC: Volodymyr Babchuk<Volodymyr_Babchuk@epam.com>
> CC: Bertrand Marquis<bertrand.marquis@arm.com>
> CC: Michal Orzel<michal.orzel@amd.com>
> CC: Oleksii Kurochko<oleksii.kurochko@gmail.com>
> CC: Shawn Anastasio<sanastasio@raptorengineering.com>
>
> Possibly not for taking on it's own (might be better with the PPC
> implemenation of map_pages_to_xen()).
>
> Nevertheless, this patch alone now does trip:
>
>    diff --git a/xen/common/vmap.c b/xen/common/vmap.c
>    index d6991421f3f7..9552806dba39 100644
>    --- a/xen/common/vmap.c
>    +++ b/xen/common/vmap.c
>    @@ -228,6 +228,8 @@ void *__vmap(const mfn_t *mfn, unsigned int granularity,
>         void *va = vm_alloc(nr * granularity, align, type);
>         unsigned long cur = (unsigned long)va;
>
>    +    BUILD_BUG_ON(sizeof(pte_attr_t) != 4);
>    +

Could you please clarify what kind of changes should done in the case if
sizeof(pte_attr_t) == 8 (unsigned long)?

~ Oleksii

>         for ( ; va && nr--; ++mfn, cur += PAGE_SIZE * granularity )
>         {
>             if ( map_pages_to_xen(cur, *mfn, granularity, flags) )
>
> in PPC builds only.
> ---
>   xen/arch/ppc/include/asm/mm-types.h | 7 +++++++
>   1 file changed, 7 insertions(+)
>   create mode 100644 xen/arch/ppc/include/asm/mm-types.h
>
> diff --git a/xen/arch/ppc/include/asm/mm-types.h b/xen/arch/ppc/include/asm/mm-types.h
> new file mode 100644
> index 000000000000..06a3af1c6eda
> --- /dev/null
> +++ b/xen/arch/ppc/include/asm/mm-types.h
> @@ -0,0 +1,7 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +#ifndef PPC_MM_TYPES_H
> +#define PPC_MM_TYPES_H
> +
> +typedef unsigned long pte_attr_t;
> +
> +#endif /* PPC_MM_TYPES_H */
--------------XMoOdFwmyq6FjXzEzOhZitU5
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 4/25/25 1:24 PM, Andrew Cooper
      wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:20250425112415.245585-4-andrew.cooper3@citrix.com">
      <pre wrap="" class="moz-quote-pre">From: Shawn Anastasio <a class="moz-txt-link-rfc2396E" href="mailto:sanastasio@raptorengineering.com">&lt;sanastasio@raptorengineering.com&gt;</a>

Signed-off-by: Shawn Anastasio <a class="moz-txt-link-rfc2396E" href="mailto:sanastasio@raptorengineering.com">&lt;sanastasio@raptorengineering.com&gt;</a>
---
CC: Jan Beulich <a class="moz-txt-link-rfc2396E" href="mailto:JBeulich@suse.com">&lt;JBeulich@suse.com&gt;</a>
CC: Roger Pau Monné <a class="moz-txt-link-rfc2396E" href="mailto:roger.pau@citrix.com">&lt;roger.pau@citrix.com&gt;</a>
CC: Stefano Stabellini <a class="moz-txt-link-rfc2396E" href="mailto:sstabellini@kernel.org">&lt;sstabellini@kernel.org&gt;</a>
CC: Julien Grall <a class="moz-txt-link-rfc2396E" href="mailto:julien@xen.org">&lt;julien@xen.org&gt;</a>
CC: Volodymyr Babchuk <a class="moz-txt-link-rfc2396E" href="mailto:Volodymyr_Babchuk@epam.com">&lt;Volodymyr_Babchuk@epam.com&gt;</a>
CC: Bertrand Marquis <a class="moz-txt-link-rfc2396E" href="mailto:bertrand.marquis@arm.com">&lt;bertrand.marquis@arm.com&gt;</a>
CC: Michal Orzel <a class="moz-txt-link-rfc2396E" href="mailto:michal.orzel@amd.com">&lt;michal.orzel@amd.com&gt;</a>
CC: Oleksii Kurochko <a class="moz-txt-link-rfc2396E" href="mailto:oleksii.kurochko@gmail.com">&lt;oleksii.kurochko@gmail.com&gt;</a>
CC: Shawn Anastasio <a class="moz-txt-link-rfc2396E" href="mailto:sanastasio@raptorengineering.com">&lt;sanastasio@raptorengineering.com&gt;</a>

Possibly not for taking on it's own (might be better with the PPC
implemenation of map_pages_to_xen()).

Nevertheless, this patch alone now does trip:

  diff --git a/xen/common/vmap.c b/xen/common/vmap.c
  index d6991421f3f7..9552806dba39 100644
  --- a/xen/common/vmap.c
  +++ b/xen/common/vmap.c
  @@ -228,6 +228,8 @@ void *__vmap(const mfn_t *mfn, unsigned int granularity,
       void *va = vm_alloc(nr * granularity, align, type);
       unsigned long cur = (unsigned long)va;

  +    BUILD_BUG_ON(sizeof(pte_attr_t) != 4);
  +</pre>
    </blockquote>
    <pre>Could you please clarify what kind of changes should done in the case if 
sizeof(pte_attr_t) == 8 (unsigned long)?

~ Oleksii
</pre>
    <blockquote type="cite"
      cite="mid:20250425112415.245585-4-andrew.cooper3@citrix.com">
      <pre wrap="" class="moz-quote-pre">
       for ( ; va &amp;&amp; nr--; ++mfn, cur += PAGE_SIZE * granularity )
       {
           if ( map_pages_to_xen(cur, *mfn, granularity, flags) )

in PPC builds only.
---
 xen/arch/ppc/include/asm/mm-types.h | 7 +++++++
 1 file changed, 7 insertions(+)
 create mode 100644 xen/arch/ppc/include/asm/mm-types.h

diff --git a/xen/arch/ppc/include/asm/mm-types.h b/xen/arch/ppc/include/asm/mm-types.h
new file mode 100644
index 000000000000..06a3af1c6eda
--- /dev/null
+++ b/xen/arch/ppc/include/asm/mm-types.h
@@ -0,0 +1,7 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+#ifndef PPC_MM_TYPES_H
+#define PPC_MM_TYPES_H
+
+typedef unsigned long pte_attr_t;
+
+#endif /* PPC_MM_TYPES_H */
</pre>
    </blockquote>
  </body>
</html>

--------------XMoOdFwmyq6FjXzEzOhZitU5--


From xen-devel-bounces@lists.xenproject.org Fri Apr 25 11:39:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 11:39:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.967790.1357507 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8HP5-0007ij-MZ; Fri, 25 Apr 2025 11:39:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 967790.1357507; Fri, 25 Apr 2025 11: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 1u8HP5-0007ic-JW; Fri, 25 Apr 2025 11:39:35 +0000
Received: by outflank-mailman (input) for mailman id 967790;
 Fri, 25 Apr 2025 11:39: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=6c45=XL=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u8HP3-0007i5-LE
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 11:39: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 f3af097d-21c9-11f0-9ffb-bf95429c2676;
 Fri, 25 Apr 2025 13:39:31 +0200 (CEST)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-43ed8d32a95so18696215e9.3
 for <xen-devel@lists.xenproject.org>; Fri, 25 Apr 2025 04:39:31 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-440a5310a1csm22164165e9.20.2025.04.25.04.39.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 25 Apr 2025 04:39: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: f3af097d-21c9-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745581171; x=1746185971; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=z30g6b8JfD0qVCG8icP/UxDOnqfQU4fvycuZG/EmgkY=;
        b=il0XoHS+OsGQK2LrGLhihz/KCI7yzbjQEngmvA2ux7aB+gAvr21R+I/Batpen0nBL6
         xm3bDwqPkwCJ+31vbMxKZ9G50xvDUE5itFsVdqnHkwu5OmjWbQzn83BFrAhoygWnsexn
         LXaakVQlwRR6kEr6rngiIwv++MI9LvT4hD3G4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745581171; x=1746185971;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=z30g6b8JfD0qVCG8icP/UxDOnqfQU4fvycuZG/EmgkY=;
        b=o/Siqixk9/TUsCeJELoFhFFRkWYIzcvCAYEZGSlynm06iq4m8h7HCkBRDIsjGZUKuz
         6+sKpNZ+r9SDtqet+F0erczjPHJhINQ+DgADWfHXk5NfyhMfTyjFckyZZP+0kyj1vPoC
         IZBq3GZY/5Ga0a8vGIhi+6kvfl+5EMuWuEP5hFlKBZdb3u73QBdQlI1an0AH+mSQWWlF
         X0v68aEOjyKe5EsM4NrxlJfzbD0/MReA4fI5EtQvXvqQZ4oOOsOR5EhwbIHMVS/iXT08
         pG1NqTsQpwlVMmMvw+/CNrrX5FP7UpgZIFEXMYIG1aStofBjcV52TSTWr78i1Vfxu09m
         H+jQ==
X-Forwarded-Encrypted: i=1; AJvYcCVFe0wc4fPHEUZu+9XeUQIExZ8txxHDS3orFgT42hc19W9lRnkFWKwK1+c9UgwO0GMDgQcEX5NF+UQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxBayYGDH+fKY5ncWNAVxYvsMkRugaJZ9ya5BQ/DuH1S6Ie85dO
	xJDHdrsFFko3Lg8HT5vR5wsl5RnGvEEk+4+4jvgIeo59aBrO/EhYgY1ObD456ung7gAlmNaqb6p
	D
X-Gm-Gg: ASbGncvk44tSHC9yDXI3S62WE1y9JvvzBaa4JnqQ98SRrt+4F3EKbSUiy7cnYD6+LA4
	GQoNIOpTkzqQedKcObmdasrtulfyXtMB6h9+4/a4o7HyCqHXkwcb+aNFzKlCBezos0aqhz+mc1Y
	rEp/ybvlVCxMLfMPVQlZvV2JBOsaEUDKwJ8FZXRSgoSJIZusyNT/bRMHEjoLHDEPEXpHevPft7n
	o3bxSg5VovpK3EtFZqOfjNd00lkS3LE5vp2JJkDSkyWa6bVvShFYYdEVBqc3GlakHvXS0G8ZQm1
	GltgqY9eUwasl45jJiNM/UDNIgTyOWAsdoyehVInpzgEKtfCuvVSAxnrC153Bq2GKqe/YtmcAdz
	rJsZsEA==
X-Google-Smtp-Source: AGHT+IHQDWVRNnRugX0+1l3h0D50/d+pO9WsdFrv/ZO6dEniUnRD1Dy8MdD2WOJQm+628qqv2fXCBw==
X-Received: by 2002:a05:600c:468d:b0:43c:fe5e:f040 with SMTP id 5b1f17b1804b1-440a669edabmr14338175e9.23.1745581170972;
        Fri, 25 Apr 2025 04:39:30 -0700 (PDT)
Message-ID: <62216f26-e408-4ba2-a2bc-702531a13bcd@citrix.com>
Date: Fri, 25 Apr 2025 12:39:29 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 3/3] ppc/mm: Introduce mm-types.h
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Shawn Anastasio <sanastasio@raptorengineering.com>,
 Jan Beulich <JBeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Julien Grall <julien@xen.org>, Volodymyr Babchuk
 <Volodymyr_Babchuk@epam.com>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>
References: <20250425112415.245585-1-andrew.cooper3@citrix.com>
 <20250425112415.245585-4-andrew.cooper3@citrix.com>
 <71e1847a-6469-4596-b721-38e8e0060194@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: <71e1847a-6469-4596-b721-38e8e0060194@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 25/04/2025 12:37 pm, Oleksii Kurochko wrote:
>
>
> On 4/25/25 1:24 PM, Andrew Cooper wrote:
>> From: Shawn Anastasio <sanastasio@raptorengineering.com>
>>
>> Signed-off-by: Shawn Anastasio <sanastasio@raptorengineering.com>
>> ---
>> CC: Jan Beulich <JBeulich@suse.com>
>> CC: Roger Pau Monné <roger.pau@citrix.com>
>> CC: Stefano Stabellini <sstabellini@kernel.org>
>> CC: Julien Grall <julien@xen.org>
>> CC: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
>> CC: Bertrand Marquis <bertrand.marquis@arm.com>
>> CC: Michal Orzel <michal.orzel@amd.com>
>> CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>> CC: Shawn Anastasio <sanastasio@raptorengineering.com>
>>
>> Possibly not for taking on it's own (might be better with the PPC
>> implemenation of map_pages_to_xen()).
>>
>> Nevertheless, this patch alone now does trip:
>>
>>   diff --git a/xen/common/vmap.c b/xen/common/vmap.c
>>   index d6991421f3f7..9552806dba39 100644
>>   --- a/xen/common/vmap.c
>>   +++ b/xen/common/vmap.c
>>   @@ -228,6 +228,8 @@ void *__vmap(const mfn_t *mfn, unsigned int granularity,
>>        void *va = vm_alloc(nr * granularity, align, type);
>>        unsigned long cur = (unsigned long)va;
>>
>>   +    BUILD_BUG_ON(sizeof(pte_attr_t) != 4);
>>   +
> Could you please clarify what kind of changes should done in the case if 
> sizeof(pte_attr_t) == 8 (unsigned long)?

Nothing.  This is simply to demonstrate that __has_include() is working,
and is making PPC different to all the other architectures.

~Andrew.


From xen-devel-bounces@lists.xenproject.org Fri Apr 25 11:58:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 11:58:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.967818.1357545 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8Hh7-0003jZ-DM; Fri, 25 Apr 2025 11:58:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 967818.1357545; Fri, 25 Apr 2025 11:58: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 1u8Hh7-0003jS-AK; Fri, 25 Apr 2025 11:58:13 +0000
Received: by outflank-mailman (input) for mailman id 967818;
 Fri, 25 Apr 2025 11:58: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=Fya8=XL=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u8Hh6-0003jM-Aj
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 11:58:12 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on20608.outbound.protection.outlook.com
 [2a01:111:f403:2415::608])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8d02f663-21cc-11f0-9ffb-bf95429c2676;
 Fri, 25 Apr 2025 13:58:08 +0200 (CEST)
Received: from BN6PR17CA0046.namprd17.prod.outlook.com (2603:10b6:405:75::35)
 by LV8PR12MB9136.namprd12.prod.outlook.com (2603:10b6:408:18e::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.27; Fri, 25 Apr
 2025 11:58:04 +0000
Received: from BL6PEPF0001AB4F.namprd04.prod.outlook.com
 (2603:10b6:405:75:cafe::88) by BN6PR17CA0046.outlook.office365.com
 (2603:10b6:405:75::35) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.37 via Frontend Transport; Fri,
 25 Apr 2025 11:58:04 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BL6PEPF0001AB4F.mail.protection.outlook.com (10.167.242.73) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Fri, 25 Apr 2025 11:58:04 +0000
Received: from localhost (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; Fri, 25 Apr
 2025 06:58: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: 8d02f663-21cc-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=HgttrMIyk4rQX77V/i4jOaFmIHVC5r9ugw043Hkie2W1b6+aVCDMiaohWCiIFVYruFhk8NdDCdkySmX3JXyrp2ipJ3r+CrRap4AQVjiCGHkEC/+i2EuxkMPQ2GdDfC2I5hXx9JmRdYF27+JWIeWL91onmzUlcV/CF8Jtk69D1B7oC+N6ToyhWTgEi0RR6Hh1vYoR9Zq/u0V08pZDU53eomgfFF+0Op+XvhW3YvBJGvXtD6LKkr2QOu4uEZCc5dOU2ppe66N9SH693j7EPOG1InMAmeRbSZKWMHlkVzGt7BWuwam48HDicxq9Kzvzz2JPDs86M10jgVM3QUKnzoSvVw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=VKOD5KjaEapNHz+btHLAnTl7OoP46BCObWtszpMDcDI=;
 b=J16JRk2c5fIiLdAZENGfQJ89Xd+niZ6iXhjcpKKhKDvMDWBwNYZ4U4bUFEykX3J9xvK9mhmb8CAShq+/KKiQWPF2FE8Fh3gIQ9UZ8GUhpe11ak4Hak3TVR0iprEQ52rChp7qDQp0Dr6OBGQTWUk/fa8jx3u69aa91bJMmGB7OeYI00KGTR7KP73gR9wLdGl7IzFd5e+FfBxp0ors+OYF9ogOrmefF1kWhBChNRIY9eD1n2neRbGgcilpXH6H+gFzymZJSQciFaNJJ44nMrdTF33XXiU0UNp3a147glV6phivtYe9kOXFm63967vR5KPM+XeAHcxNtfefpDyJk0jZvg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=proton.me 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=VKOD5KjaEapNHz+btHLAnTl7OoP46BCObWtszpMDcDI=;
 b=NmzbuE/G285ZUmBQ8h8ifTT2oaH9RH962rMi1IRxQt34DfDgtYHbRCtWtF0YiTn9FygnHbLh3wnaTQPmCirjuXpUIZQl/kht50glD6/2/WdCPLZV4uUxGPf84XtOr0hrNABzuoIJpC+xyRzm6Lr31nyhBNOwghMgKnIOXWo/1so=
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
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Fri, 25 Apr 2025 12:58:01 +0100
Message-ID: <D9FP9XTIH5FT.2SYZUNG1UO138@amd.com>
CC: <xen-devel@lists.xenproject.org>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, "Julien
 Grall" <julien@xen.org>, =?utf-8?q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
	"Bertrand Marquis" <bertrand.marquis@arm.com>
Subject: Re: [PATCH v5 00/12] Hyperlaunch device tree for dom0
From: Alejandro Vallejo <agarciav@amd.com>
To: <dmkhn@proton.me>
X-Mailer: aerc 0.20.1
References: <20250424161027.92942-1-agarciav@amd.com>
 <aAq41+qsbuJP2JOj@kraken>
In-Reply-To: <aAq41+qsbuJP2JOj@kraken>
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: BL6PEPF0001AB4F:EE_|LV8PR12MB9136:EE_
X-MS-Office365-Filtering-Correlation-Id: 330fc57a-f17a-4485-2e85-08dd83f06fb0
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|36860700013|82310400026|13003099007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?ZHhZZ0JQcGZvWHRIYk85QXM2ZElXUjBYd25pUzl3UGlYOFo2aks1eTV5aE5C?=
 =?utf-8?B?TDE4OUlRaXZVTnVuMDVGcFZTUmpoWE5Ed1ZoL0xxOEM3MGFDN2MzdkQyUTBw?=
 =?utf-8?B?aDdjU0g3YzZlSHB1aGxkRStZV2dNN0oxazNUUDFKVXF5K1VjS3h5SUpVMnA1?=
 =?utf-8?B?NnBnMXpRR203M3Y3Um9pcFloV3JRU3A1UHJoVmd2RGNLUUlyUmlEcVh6U2Vn?=
 =?utf-8?B?RkhBRG5kakFMcU9hUE1UWU9pMlJsamdkdENXTHNMcUMrSVNCelZpVmt6bVZ3?=
 =?utf-8?B?YUNPaWFObXdRTjZnNGlBTG1QNWtielI1YUthOVV3eGNiODZqeTJRZWVwdkRL?=
 =?utf-8?B?VFNlZ2xKWkhwSFp5Y1NrMFd2cGp5akUyWEpueVlXYTBhZTkrSm80U1VyS2hl?=
 =?utf-8?B?YitWVGJhUkpNbE52aTB4YU5hVW0vWE1DUExpQi9jRHNxZHdSWUpqWG1ld09t?=
 =?utf-8?B?amdYc2x4M0xQTkZjMmluU1FYMW13QWxnMWcwczliMFNjUGNUVVZReDBzRkhi?=
 =?utf-8?B?M1AxUEFZYzdma2xodjU0UnFaSDAyVy9xdnlLWXZpYXBNZ3pJYXFUVmFLOFVW?=
 =?utf-8?B?WlpRQkNoN2RPRmY2WTFpU1FQZXpENi9QWW9BSlhrNVBuanNxMWR3dUVmZXU5?=
 =?utf-8?B?RXVsSlNkeWlJSXpzZ05ESTRQeDNaRUI3MHBwOEZwaWp0MXdGVzUwSVFReGM0?=
 =?utf-8?B?NFlxemMrZ2dSbUJ3Ky9WTzdIZm1EUHFkS2ZrMUtibStTODB1QmgveUQyR1NB?=
 =?utf-8?B?cERlZlZJR216WFEyc2tVQzIreC9iSUpXZzdSd3RRR0hudWZrQkRlYm1hNmlD?=
 =?utf-8?B?OW1HTFVnZW5OTGxiWGJ2V1JRaEd0MkZ1TmtraXdBVTVFRG5LRExpbGRZMEFM?=
 =?utf-8?B?WkloTVlKR0xvSTVwT1NsU0RDL0x3Vm15TFpaeHNmSjJmV3JtcTFJVFdTL2kv?=
 =?utf-8?B?T01QVm1tV2NsajNCaTQ0azZNTFd3bSt2eWxpMGViNlZMTDlTSHBSUXVocURL?=
 =?utf-8?B?dE1zS0N1a2hobjdFZzJhbFZPM2dmZ1dUNnpxcER0cjhENWpDcWg5Zmp4aDhx?=
 =?utf-8?B?QjNpa2FWRU1nRjUvVzVHakdHWjFzMHBtUTRWRFdjUDNBY3ZTaUhpenR6dUxs?=
 =?utf-8?B?MmRva3BiQmZ4dVdUcjNFaGNFUnpMMlZPVnc0K1kydFBhUTZhWnhjVkdONWxT?=
 =?utf-8?B?TDlvbjZPNjZyWWVwMkt3Z2lGMURFR1ZKU1JrWEVVT2xQVjZuVGNadWxxNjls?=
 =?utf-8?B?RnFOM2k5ZzN4Nmpnb0c5bUpldHMweG4vUHJFeVdnTXN1YlQ1MDAxeUpPZ3V1?=
 =?utf-8?B?S090dGl5R0pMd1BUb0thcm9sVUZwN0ZqSHowcW41bGR2N1ZOT3FsRVMyWWlF?=
 =?utf-8?B?SEErc01YQzA2cFhaT1Z3QUxpQzEwckZRTU11OTh0dTI5RVY5MjdpVnZqVXNY?=
 =?utf-8?B?cmZzMzZwZWpySno2RGRwM3dKeks2MXlIZW9IbCtzWEVkMS9kb0xGb3dzMHFm?=
 =?utf-8?B?SVQxUmNXWnMrMUVMbEdiemU0V2xMTCt2ZXB5TytZWEM0YjRFRk9rZlV6aTd6?=
 =?utf-8?B?U0Rtd1JLK2k3NzJBRXB3cU1hN2dlbzBhTm1vTUU0dEJGZC9aT3VjWnBDOW9L?=
 =?utf-8?B?WWtBMStueHBsUXBwbGVxRUNvSXpjenZFeVhLVm9JbG9tampNczF3RklVOEV4?=
 =?utf-8?B?d0Q1Rnc5cHYyRXJYeXdjMTZVL1B1Y2w4TVlYMEJmeDNRdTUya1E2Uk8vWTM4?=
 =?utf-8?B?LzBjV21vMm9teUYzbmhyN3N6VEhjRDFIN3J0TUIvU1BIOHFDTkhPZ2NXWDdO?=
 =?utf-8?B?bGx0VXRFZzZnQWZZRjFDcTN5b0RTM2ZCMEVNWWhVdmlYd0U4ZW9GS0hIZzBF?=
 =?utf-8?B?VkNYWnNwYUl1azJyM2Z4a3NoVGtqdTBhVjhQZHIxOG9IUW4rcFE1QUJFN3dD?=
 =?utf-8?B?SHNHT2FGenczRDZmcURRK1hERmhiV0FqZjZJUnFBYU9kc2M1R0NMeUE4RGtx?=
 =?utf-8?B?aGU0Z0tRdzdYQ3F6djVpRzZMYVc4Um1DZmh3Sy94UXVITUZFR2NnT2VrbEFV?=
 =?utf-8?B?ZEtNVFNrbUdYTkpSSm5KSnBIaWNqSTlHaTNPZz09?=
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)(13003099007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Apr 2025 11:58:04.5372
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 330fc57a-f17a-4485-2e85-08dd83f06fb0
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:
	BL6PEPF0001AB4F.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR12MB9136

On Thu Apr 24, 2025 at 11:19 PM BST, dmkhn wrote:
> On Thu, Apr 24, 2025 at 05:10:10PM +0100, Alejandro Vallejo wrote:
>> Hi,
>>=20
>> v4: https://lore.kernel.org/xen-devel/20250417124844.11143-1-agarciav@am=
d.com/
>> v3: https://lore.kernel.org/xen-devel/20250408160802.49870-1-agarciav@am=
d.com/
>> v2: https://lore.kernel.org/xen-devel/20241226165740.29812-1-dpsmith@ape=
rtussolutions.com/
>> v1: https://lore.kernel.org/xen-devel/20241123182044.30687-1-dpsmith@ape=
rtussolutions.com/
>>=20
>> =3D=3D=3D=3D=3D=3D=3D=3D=3D Original cover letter:
>>=20
>> The Hyperlaunch device tree for dom0 series is the second split out for =
the
>> introduction of the Hyperlaunch domain builder logic. These changes focu=
s on
>> introducing the ability to express a domain configuration that is then u=
sed to
>> populate the struct boot_domain structure for dom0. This ability to expr=
ess a
>> domain configuration provides the next step towards a general domain bui=
lder.
>>=20
>> 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 ha=
ndling
>> the knock-on effects to the construction logic from requested review cha=
nges.
>>=20
>>=20
>>=20
>> Alejandro Vallejo (1):
>>   x86/hyperlaunch: Add helpers to locate multiboot modules
>>=20
>> Daniel P. Smith (11):
>>   kconfig: introduce domain builder config options
>>   common/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
>
> One general comment w.r.t. naming notation in:
>
>     xen/common/domain-builder/fdt.c
>     xen/common/domain-builder/fdt.h
>
> Sorry, overlooked that earlier.
>
> What do you think about using fdt_<something> notation for all functions =
in
> fdt.{c,h}?
>
> For example:
>
>     s/detect_fdt_kind/fdt_detect_hyperlauch_node/
                                         ^      =20
					 kind?
>
>     s/find_hyperlaunch_node/fdt_find_hyperlauch_node/
>
>     s/walk_hyperlaunch_fdt/fdt_walk_hyperlauch_node/
>
>     s/process_domain_node/fdt_process_hyperlauch_node/
                                         ^
					 domain?

Assuming the two nits above are mistakes on copy-paste, it sounds
reasonable. I'll wait for some acks on the rest and resend with those
adjustments if needed.

>
> Other than that:
>
> Reviewed-by: Denis Mukhin <dmukhin@ford.com>
>
> for the series.

Thanks a lot!

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Fri Apr 25 12:00:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 12:00:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.967833.1357556 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8Hj9-0005Iv-Ue; Fri, 25 Apr 2025 12:00:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 967833.1357556; Fri, 25 Apr 2025 12: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 1u8Hj9-0005Io-Q8; Fri, 25 Apr 2025 12:00:19 +0000
Received: by outflank-mailman (input) for mailman id 967833;
 Fri, 25 Apr 2025 12: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=/m1g=XL=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1u8Hj8-0005IG-Fd
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 12:00:18 +0000
Received: from NAM04-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam04on2062f.outbound.protection.outlook.com
 [2a01:111:f403:240a::62f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d9c00497-21cc-11f0-9eb3-5ba50f476ded;
 Fri, 25 Apr 2025 14:00:17 +0200 (CEST)
Received: from PH8PR12MB7326.namprd12.prod.outlook.com (2603:10b6:510:216::7)
 by PH7PR12MB5879.namprd12.prod.outlook.com (2603:10b6:510:1d7::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.27; Fri, 25 Apr
 2025 12:00:13 +0000
Received: from PH8PR12MB7326.namprd12.prod.outlook.com
 ([fe80::6d76:9c33:d230:8264]) by PH8PR12MB7326.namprd12.prod.outlook.com
 ([fe80::6d76:9c33:d230:8264%2]) with mapi id 15.20.8678.025; Fri, 25 Apr 2025
 12:00: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: d9c00497-21cc-11f0-9eb3-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=E/YAIJKndomkNmQVyyGOmqqEFxoslsK33key5wM2nk5mko2pG5C0dpLC53dopjpf1dfYFG+qnO+aRZGampK+jTNXMRBqNwuFkjbBt8gv8CRlWeQzmiAh5vTqu1bk52i6LTuJ3Aw4V7jI07jJJDsL5oX1ChOHSRkGei8+s2S+YpobmtdKj7QlobPljkVu3UjKbtz9FfTFzTyEnWYMTTJ+bSyVN8NomYuyrQwyGa4SJkPStOWss+M05sDvJV/h+Tz3OBdVhDrG+5Zgby+oirkkglZXI9QF51RDzTnYB1TEgpyRr9hpUAu1mgh+dJzGgp3vV6VxCgS4MGlaQPKLv816fg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=yrklMbc9X+diIryfky2BmDAKkIiH0mOdbRI4w9TYwfY=;
 b=LA4kQ6NAm1lVA97N99xmnQpp9YRIFCsi10LrQ7+K1Zlk8e0g7Pko2MbrAMQ+AJRdRvtgntx5I15iYXj2DUERk7/aNE6UdOTQd9tTBwjGQME/g4vUkZpQr1UnvfS6EsTp1eKDpiuBXC09dwR3pj88xUrCMCJ0I2Uy7pmy6bkXRnQwZEhd+wR+ZwhB9cDSN/dN+be/X7eMixBOjggl/UgMB60fO/DeQiBzrr7hOEKFs0Qla99gLGhK1cGZkRVMxHbBFvxrz0wGPeyqeFcVbekZqv/K0Gl4/W/z4Z4GLiIeh/Ulf6P4tjMm/yq1fcfJGcyZeZHZMAqdpwmBh/E7y1o3jw==
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=yrklMbc9X+diIryfky2BmDAKkIiH0mOdbRI4w9TYwfY=;
 b=NiTQkhsuETjPh74E6j9wY0frImchDdFfkJFXvGsICE5opD3dZ6FObQ3964v+1LLz+P0duCjQZZ0/3EdcOlku2sHkdEM9zQjfFAqfUCDwk4HnuIGhh2fjfmGovP5G1BFoKfFKfxshgtm8Tew+Oz2P6Lli9TsqAiJgvWNvga6qD/o=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <cebb0020-531f-467c-bc81-54d2ba1aa8e0@amd.com>
Date: Fri, 25 Apr 2025 13:00:05 +0100
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1] xen/arm: AArch32-V8R: Add MPU register definitions
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>,
 Luca Fancellu <luca.fancellu@arm.com>
References: <20250417155511.1854081-1-ayan.kumar.halder@amd.com>
 <306e5414-1552-4605-86d6-b23b89d00bc9@xen.org>
Content-Language: en-GB
From: Ayan Kumar Halder <ayankuma@amd.com>
In-Reply-To: <306e5414-1552-4605-86d6-b23b89d00bc9@xen.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P265CA0104.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:2c3::8) To PH8PR12MB7326.namprd12.prod.outlook.com
 (2603:10b6:510:216::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: PH8PR12MB7326:EE_|PH7PR12MB5879:EE_
X-MS-Office365-Filtering-Correlation-Id: cbd5506a-fcf9-4814-fe74-08dd83f0bab7
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?Q0haVEo4UTRMTHRsUXRBZ0tSZUptbjdVZDNlODlaWGNQdzR4aG95VHVzaExC?=
 =?utf-8?B?Tm9tTkdod1FFNW1ZK2FkbVpQbEs1KzRSMUFmZ21KRm10aGhIdklaMEI3SDlo?=
 =?utf-8?B?SkdFd3IyUnVrT2ZXN095ZHBJOW9lcld3YmZ0SEd0Z2h6Ni9xSGF2RWk4M0dJ?=
 =?utf-8?B?UkgvQm9DZm1GQktaVzF2c2hwQ2dLZWdCNzl6ZEtoRGxxTi9xYjdnTDRJQlpj?=
 =?utf-8?B?K21OL3JYOVVBS1BFQ0ZtaHREeHN5S3hOSmZGY3pCanZqa2RFcDNyQi9UcTdX?=
 =?utf-8?B?M1J0THZIblhJU25QeEpIalZWOHAvMW90UWUrM0ZaRmoxKzFPV0JUU3hsSWgv?=
 =?utf-8?B?VGNTOEV0TVU2cXM1VFZoOFV1Zk9YRlYzZDhCaUV6VWtPOVhNM2JGa0t4Vjh4?=
 =?utf-8?B?elp0RHN3d2tVME9oZ2gzV1RTQmMreWVUcHNGSTlqSjE0ZURlWWRGaHVwd0hw?=
 =?utf-8?B?WFIxd2J2NzFnUVNVZk1yTnkyRmd6bi9JRzdRQy9lUVljc2NKRXhCRFFsbFhp?=
 =?utf-8?B?cVhRWmZhaDdmeGhETzM2Mm52bm1KekRGTFU2TGN1eVA2NU1HdmllSzJnb1J1?=
 =?utf-8?B?WnVxeTU0OTFMVU1lLzh2ZHNTS3N1TG1zM3U2NEhWR2hEbG5GQm00TXNMNFVy?=
 =?utf-8?B?TmhhR25XNkh2WnFZVzF3NDRoN0Zadm9VaDVIelVmeUhzM2NsNnFlV2tUU0F3?=
 =?utf-8?B?L0hyMTkvMG9vVnY5T2ZleDkwZ2g1bVpHUGlyN1gzMVkyZk0wVkQ0MkppYndp?=
 =?utf-8?B?NURFOGR0cDZsbmFIMG9pbWY0Q0lHUnBrWHhWd0N5NlZzMUdEcXRnRmNpR0dy?=
 =?utf-8?B?OEJja3dkdU8wbm5YSFYxQkx4OE5ZWE5DNVllWEMwRVdiMldiYlQvZm5oaTUy?=
 =?utf-8?B?aWkwV3RDRXh4cXV3aENiSnVHc3FLV2V0andSUnpMZUVPVVBQSXNzdlordEF5?=
 =?utf-8?B?b3plMk5ob0VCS0phdzFwV1JOWjBYMkNMMTdnalFPOEg1YzkxdlNHdHM0emFW?=
 =?utf-8?B?Rit0eDg2eEVLc1pNY3BpbDhyMGZ5T09HRDZ6SndBS0F3cm1SWDNTTkQ1Nm01?=
 =?utf-8?B?elhrVFE3UUozTnU5SmxRVWovUmRJU3lQb2dQMS9kcitXSS95ckRYaldrcC9o?=
 =?utf-8?B?TStEWXRNMkFZMjBWVFplUm5nTlAzaTZubUQyclVwK0R6anlTUHhWb0JnYXdE?=
 =?utf-8?B?OUZOUVBaY2hrR3kvbkFRZEtFMHB2b2twMDN6UG4wMDV0MWs2MEY0cnl5dUs2?=
 =?utf-8?B?dTZZb3NUdEkrUUVYY0pabUlzN1Nnai9tNFFkRmFlN0VvZjVnenRWZGdUQ1RB?=
 =?utf-8?B?aUgwVHk1UnVKM1I4c1FJWEFFZ3FlZldoamFCbFNHbHg3SGtNV21nM1liTGIv?=
 =?utf-8?B?MHNaalFzejFjOHdoOW52OFJSS0lhVTlLc0VsZlRFc20vV09zdkVwT1R5dENx?=
 =?utf-8?B?MzZrejRIODlEM21kbkEyR1RXMHNKRmFKUnFPcEp1UHArRzVyaTZOQ2dTcGxm?=
 =?utf-8?B?cUcwMlR0dy95UzBPODYxa0hqZURQNjVxaEVxWWFnd2VBK0Ruc0pMTWpIQXFk?=
 =?utf-8?B?VTVkbjVYSDFMNHRGSlY3ZnpwVGRtbVQrNDZjUkFtYVNwNkt1bUxFZGdLUDBu?=
 =?utf-8?B?aS9LbnlwcUtpQlJmRERKRStpT2ppMzFTK2ppVTU3dmZ6QXdDeHk0Zy9NTnE5?=
 =?utf-8?B?NjRNMXpqMk1SdnlFbWpZWUNINlRUQlRyK0c3Qyttdmt1ZExGQ1ZWU0QyTzdt?=
 =?utf-8?B?K0pyWkMyejlieTRWRllHOGRyc0FSWHdaRm9nYTROOGM5a1hHTEtiMnpXWFBU?=
 =?utf-8?B?R2VkL3Q5b1BWV0VNeVdjVjhZdjVUeU5EY1lSRmRZQ0dubWRFMzQwT0pCREhY?=
 =?utf-8?B?NzJiLzNPaGJXQys5Z01WZWNNY1YwZGVCOG82b25SdXRGTTk2c3R6TnFaWXFR?=
 =?utf-8?Q?uVH9ghsQpBE=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)(366016)(1800799024)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?MnJ2UEdUc05PMXFNM1RkRzFYdWYwckx6VkVJWFlRc0QrM1lzdUJxbVYvdEM0?=
 =?utf-8?B?aWpOSVREYVNGUGVOZ0dJbHhZMUNuUXZvY2VUTWVteVYxSkhOQlVnWXVvVWhB?=
 =?utf-8?B?eDVSWnlpTzBIWkgvamdwZE9rMmE3Y1NzaHBlTmVYU2ZKR0xRTXllY2dsUjJD?=
 =?utf-8?B?alRCNGV6eXlzdlJwZlBwSWZiY1BTOWdGenNWYXB0cWlhVjVEcU1KcGlPeFZp?=
 =?utf-8?B?MUNwYW5RVy83cTI5UThldnhuRm4wYm5JNGlEWnN6QW1ZazlUWXpnalV0aDcy?=
 =?utf-8?B?Wm5qT3VQU2NVQUVIdm95dFdOWm9ZY1NORnJXZEFGM0dUV1lWTGF1OWIrZUZW?=
 =?utf-8?B?ZmVwVTZFUmQvN211Q2NEUi80KzlCMUNENkVpa3YzV0MzRTZxam1WdWJzL3hK?=
 =?utf-8?B?SWMwYkpXQnNra0tETE4rRjRsaGFQeVJqdUlzcDBiRXQyOCtTTmI0MGpFdmIv?=
 =?utf-8?B?RVVkRXRxL3duL1NQb2kzMzBHdVROc3VSMTFOMHRXYTFCNW1FQjBKeGN5ME5O?=
 =?utf-8?B?ZERnRkdhWUdZWEVST202M1BidWhEdXFFUjE2dGNyS0xSbEcyV0xmdzEwM0Y0?=
 =?utf-8?B?SFFtcmJyREtVbkxQL1VzNkpueWFCeE80RDlDL08wVkliOWdTUnBtNXljOWgv?=
 =?utf-8?B?bThUUkFsc0d0T3l5SlJ1OXFqQlhDRXUrQXk3VWVCdnAxUW05SCtyekFhYTdF?=
 =?utf-8?B?ZHdzalBtbDd4ZkVKN1ZuUlJxa2pCb2k4NTJSSTg5ekF2YVB0WXFhNll3OXI5?=
 =?utf-8?B?a3hWVUhuZmxiRVo0dFlKeGkxZkpkdlJBN2xBVWpaVU9uOElPVHd2VlRyVTFS?=
 =?utf-8?B?VStnSlJPZXFjSmgwbEN0SUMzcHJCaXlJL09qYTRjNWdXSitybkhuNU9YOENr?=
 =?utf-8?B?ZEtvNE1pYklWQ0pNOUJHTGZLOXRpbFdxU3RybzEySjFCd0hNRkFlaUZJOEJ6?=
 =?utf-8?B?UVhCZEt6eTNLZSs3NHZtYlU3YXJKRkFkVmdSVFd3cFBvUGkwc0xlNXVieUFZ?=
 =?utf-8?B?ck5EdnNUd3RHSE5HNzcyeHI5TzVGVHY1MW1OMlVCMEtMV2pLZklENGhzOWpI?=
 =?utf-8?B?SVVsRG1id29LUGhWeGtIbUxWcjYxSmFxa1JDN2tuVnJtZUhTN25WQ29zdWI1?=
 =?utf-8?B?bHo1M1hyUWZ2NU9qbUZ0QjZEVFRPS0k4RlQ3MXhwMDYzU09kRmVMVitrQVBk?=
 =?utf-8?B?L0xQQlV6OHE3SjBTVUFwMzFMSWJWeC9TeWpIcFF1dTNGU2lRYnR1dlN6WWp5?=
 =?utf-8?B?Qmk1NnNvSGNrQ2s1UUJyKzNoQ01Ub2orY2VyQjJxeldQUXZaWC8ySUkyVFVD?=
 =?utf-8?B?RkNVSHh1U1JFbk1UR2FqWHNKRHdTQ3IzSjBoMnRqUUNBN0V0aHRNellKcVdy?=
 =?utf-8?B?dTRhbU5QVSsvSlVlcU9MU0pNYXJySE84eTh5Z3BPMmFBQUhCejhNd3YxZUJG?=
 =?utf-8?B?c3FNaWVpWFdyd292VVV0K1AvZjVNYlc0UFh4MmFraHhacC9HeTdxOVVhRlY1?=
 =?utf-8?B?N1ViRnl2ZDlESmlxWUNJVDJXb1lHZHc5MUdOZ1p3R2UxV3N5Znc2Z3Iyckx2?=
 =?utf-8?B?NndKcVJ4NFR4ckR4YzJvUG9iTU93eDMzNm5LajZDTWtIWmlFenNUSFBmS1kw?=
 =?utf-8?B?NkhHYk1TTDdENVBLR2JoWVo0eWh0UW5EaTJvSnpHNmFXOFN6eG5FRkh3SWty?=
 =?utf-8?B?NysyQkxtUmZQK1ZWbFBiOXZPNGlvMmRWK2NWd0IyaUxnM1cwNHlTTkwxblls?=
 =?utf-8?B?NndWc05DUDBIZlBsYzd4NGRlZzdOcWtOamN4TGEvTUROYkVrZzByaG9MRzFz?=
 =?utf-8?B?Zld3aDEvRC8xN25oemhjSFQ1ZVZ2Qm1jM0RuSTVmNDNsZ2RpTThwaDcwU0NQ?=
 =?utf-8?B?UDRpYkM4L1MvRC9SenlFVVlidnpqdUw4Rk1kTm1RRXV6TnlMZnVqRm1aYjU1?=
 =?utf-8?B?eFhBendoeElqeXhkMGFZSzZiU0xuZXlBNzExell6NjJubWdyek1VRVVxUTAy?=
 =?utf-8?B?UHYxVFFyVEs1eWlZMHFNbktDcXVxWEFrc2g1ZFo1Tk1EM0laYUFrQzI5S256?=
 =?utf-8?B?aUw0RUdtZ1ZmME9Md1N6ejFDWDIvb2RwYVJBRE5MNkJ6TFhTamJCQVhaTUtT?=
 =?utf-8?Q?OQMUKxaBLQ0vft14dn1UhO8E5?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: cbd5506a-fcf9-4814-fe74-08dd83f0bab7
X-MS-Exchange-CrossTenant-AuthSource: PH8PR12MB7326.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Apr 2025 12:00:11.3766
 (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: 7ONVV/K76bvHL5VNid3kOCfKXqSd8feTXSEEUR7bkZP9qGzlzdUB07zhZO5wHIae6Vtw4wjjorzPM8CSmznNIA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB5879

Hi Julien,

cc-ed Luca for feedback on specific points.

On 18/04/2025 05:54, Julien Grall wrote:
> Hi Ayan,
>
> On 18/04/2025 00:55, Ayan Kumar Halder wrote:
>> Add the definitions for HPRBAR<0..31>, HPRLAR<0..31> and HPRENR.
>> The definitions are taken from ARM DDI 0568A.c ID110520, E2.2.3 
>> HPRBAR<n>,
>> E2.2.4 HPRENR and E2.2.6 HPRLAR<n>.
>>
>> Introduce pr_t typedef which is a structure having the prbar and 
>> prlar members,
>> each being structured as the registers of the AArch32-V8R architecture.
>> This is the arm32 equivalent of
>> "arm/mpu: Introduce MPU memory region map structure".
>>
>> Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
>> ---
>> This patch should be applied after
>> "[PATCH v3 0/7] First chunk for Arm R82 and MPU support" in order to 
>> enable
>> compilation for AArch32.
>>
>>   xen/arch/arm/include/asm/arm32/mpu.h  |  59 +++++++++++
>>   xen/arch/arm/include/asm/mpu.h        |   4 +
>>   xen/arch/arm/include/asm/mpu/cpregs.h | 135 ++++++++++++++++++++++++++
>>   3 files changed, 198 insertions(+)
>>   create mode 100644 xen/arch/arm/include/asm/arm32/mpu.h
>>
>> diff --git a/xen/arch/arm/include/asm/arm32/mpu.h 
>> b/xen/arch/arm/include/asm/arm32/mpu.h
>> new file mode 100644
>> index 0000000000..4aabd93479
>> --- /dev/null
>> +++ b/xen/arch/arm/include/asm/arm32/mpu.h
>> @@ -0,0 +1,59 @@
>> +/* SPDX-License-Identifier: GPL-2.0-only */
>> +/*
>> + * mpu.h: Arm Memory Protection Unit definitions for aarch64.
>> + */
>> +
>> +#ifndef __ARM_ARM32_MPU_H
>> +#define __ARM_ARM32_MPU_H
>> +
>> +#define XN_EL2_ENABLED  0x1
>
> I understand the define is introduced in Luca's patch, but this a bit 
> non-descriptive... Can we find a better name? Maybe by adding the name 
> of the register and some documentation?

We can rename this as PRBAR_EL2_XN if this sounds better (cc @Luca) in 
Luca's patch

The description can be

Refer ARM DDI 0568A.c  ID110520 , E2.2.2

HPRBAR [0:1] Execute Never

>
>> +
>> +#ifndef __ASSEMBLY__
>> +
>> +/* Hypervisor Protection Region Base Address Register */
>> +typedef union {
>> +    struct {
>> +        unsigned int xn:1;       /* Execute-Never */
>> +        unsigned int ap:2;       /* Acess Permission */
>> +        unsigned int sh:2;       /* Sharebility */
>> +        unsigned int res0:1;     /* Reserved as 0 */
>> +        unsigned int base:26;    /* Base Address */
>> +    } reg;
>> +    uint32_t bits;
>> +} prbar_t;
>> +
>> +/* Hypervisor Protection Region Limit Address Register */
>> +typedef union {
>> +    struct {
>> +        unsigned int en:1;     /* Region enable */
>> +        unsigned int ai:3;     /* Memory Attribute Index */
>> +        /*
>> +         * There is no actual ns bit in hardware. It is used here for
>> +         * compatibility with Armr64 code. Thus, we are reusing a 
>> res0 bit for ns.
>
> typo: Arm64.
Ack
>
>> +         */
>
> Hmmmm, this would mean someone may mistakenly set the bit to 0 by 
> mistake. If the field is always meant to be 0 on arm64, then I would 
> consider to name is res0 on arm64 with an explanation.
>
> This would make clear the bit is not supposed to have a value other 
> than 0.

On Arm64, ns == 0 as it can only support secure mode.

So we can change this on Arm64 as well :-

unsigned int res0:2; /* ns == 0 as only secure mode is supported */

@Luca to clarify

>
>> +        unsigned int ns:1;     /* Reserved 0 by hardware */
>> +        unsigned int res0:1;   /* Reserved 0 by hardware */
Then, we can change this on Arm32 as well.
>> +        unsigned int limit:26;  /* Limit Address */
>
> NIT: Can we align the comments?
Ack.
>
>> +    } reg;
>> +    uint32_t bits;
>> +} prlar_t;
>> +
>> +/* Protection Region */
>> +typedef struct {
>> +    prbar_t prbar;
>> +    prlar_t prlar;
>> +    uint64_t p2m_type;          /* Used to store p2m types. */
>> +} pr_t;
>
> This looks to be common with arm64. If so, I would prefer if the 
> structure is in a common header.

No, in arm64 this is

typedef struct {
      prbar_t prbar;
      prlar_t prlar;
} pr_t;

The reason being Arm64 uses unused bits (ie 'pad') to store the type.

>
>> +
>> +#endif /* __ASSEMBLY__ */
>> +
>> +#endif /* __ARM_ARM32_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/mpu.h 
>> b/xen/arch/arm/include/asm/mpu.h
>> index 77d0566f97..67127149c0 100644
>> --- a/xen/arch/arm/include/asm/mpu.h
>> +++ b/xen/arch/arm/include/asm/mpu.h
>> @@ -8,8 +8,12 @@
>>     #if defined(CONFIG_ARM_64)
>>   # include <asm/arm64/mpu.h>
>> +#elif defined(CONFIG_ARM_32)
>> +# include <asm/arm32/mpu.h>
>>   #endif
>>   +#define PRENR_MASK  GENMASK(31, 0)
>> +
>>   #define MPU_REGION_SHIFT  6
>>   #define MPU_REGION_ALIGN  (_AC(1, UL) << MPU_REGION_SHIFT)
>>   #define MPU_REGION_MASK   (~(MPU_REGION_ALIGN - 1))
>> diff --git a/xen/arch/arm/include/asm/mpu/cpregs.h 
>> b/xen/arch/arm/include/asm/mpu/cpregs.h
>> index d5cd0e04d5..7cf52aa09a 100644
>> --- a/xen/arch/arm/include/asm/mpu/cpregs.h
>> +++ b/xen/arch/arm/include/asm/mpu/cpregs.h
>> @@ -6,18 +6,153 @@
>>   /* CP15 CR0: MPU Type Register */
>>   #define HMPUIR          p15,4,c0,c0,4
>>   +/* CP15 CR6: Protection Region Enable Register */
>> +#define HPRENR          p15,4,c6,c1,1
>> +
>>   /* CP15 CR6: MPU Protection Region Base/Limit/Select Address 
>> Register */
>>   #define HPRSELR         p15,4,c6,c2,1
>>   #define HPRBAR          p15,4,c6,c3,0
>>   #define HPRLAR          p15,4,c6,c8,1
>>   +/* CP15 CR6: MPU Protection Region Base/Limit Address Register */
>> +#define HPRBAR0         p15,4,c6,c8,0
>> +#define HPRLAR0         p15,4,c6,c8,1
>> +#define HPRBAR1         p15,4,c6,c8,4
>> +#define HPRLAR1         p15,4,c6,c8,5
>> +#define HPRBAR2         p15,4,c6,c9,0
>> +#define HPRLAR2         p15,4,c6,c9,1
>> +#define HPRBAR3         p15,4,c6,c9,4
>> +#define HPRLAR3         p15,4,c6,c9,5
>> +#define HPRBAR4         p15,4,c6,c10,0
>> +#define HPRLAR4         p15,4,c6,c10,1
>> +#define HPRBAR5         p15,4,c6,c10,4
>> +#define HPRLAR5         p15,4,c6,c10,5
>> +#define HPRBAR6         p15,4,c6,c11,0
>> +#define HPRLAR6         p15,4,c6,c11,1
>> +#define HPRBAR7         p15,4,c6,c11,4
>> +#define HPRLAR7         p15,4,c6,c11,5
>> +#define HPRBAR8         p15,4,c6,c12,0
>> +#define HPRLAR8         p15,4,c6,c12,1
>> +#define HPRBAR9         p15,4,c6,c12,4
>> +#define HPRLAR9         p15,4,c6,c12,5
>> +#define HPRBAR10        p15,4,c6,c13,0
>> +#define HPRLAR10        p15,4,c6,c13,1
>> +#define HPRBAR11        p15,4,c6,c13,4
>> +#define HPRLAR11        p15,4,c6,c13,5
>> +#define HPRBAR12        p15,4,c6,c14,0
>> +#define HPRLAR12        p15,4,c6,c14,1
>> +#define HPRBAR13        p15,4,c6,c14,4
>> +#define HPRLAR13        p15,4,c6,c14,5
>> +#define HPRBAR14        p15,4,c6,c15,0
>> +#define HPRLAR14        p15,4,c6,c15,1
>> +#define HPRBAR15        p15,4,c6,c15,4
>> +#define HPRLAR15        p15,4,c6,c15,5
>> +#define HPRBAR16        p15,5,c6,c8,0
>> +#define HPRLAR16        p15,5,c6,c8,1
>> +#define HPRBAR17        p15,5,c6,c8,4
>> +#define HPRLAR17        p15,5,c6,c8,5
>> +#define HPRBAR18        p15,5,c6,c9,0
>> +#define HPRLAR18        p15,5,c6,c9,1
>> +#define HPRBAR19        p15,5,c6,c9,4
>> +#define HPRLAR19        p15,5,c6,c9,5
>> +#define HPRBAR20        p15,5,c6,c10,0
>> +#define HPRLAR20        p15,5,c6,c10,1
>> +#define HPRBAR21        p15,5,c6,c10,4
>> +#define HPRLAR21        p15,5,c6,c10,5
>> +#define HPRBAR22        p15,5,c6,c11,0
>> +#define HPRLAR22        p15,5,c6,c11,1
>> +#define HPRBAR23        p15,5,c6,c11,4
>> +#define HPRLAR23        p15,5,c6,c11,5
>> +#define HPRBAR24        p15,5,c6,c12,0
>> +#define HPRLAR24        p15,5,c6,c12,1
>> +#define HPRBAR25        p15,5,c6,c12,4
>> +#define HPRLAR25        p15,5,c6,c12,5
>> +#define HPRBAR26        p15,5,c6,c13,0
>> +#define HPRLAR26        p15,5,c6,c13,1
>> +#define HPRBAR27        p15,5,c6,c13,4
>> +#define HPRLAR27        p15,5,c6,c13,5
>> +#define HPRBAR28        p15,5,c6,c14,0
>> +#define HPRLAR28        p15,5,c6,c14,1
>> +#define HPRBAR29        p15,5,c6,c14,4
>> +#define HPRLAR29        p15,5,c6,c14,5
>> +#define HPRBAR30        p15,5,c6,c15,0
>> +#define HPRLAR30        p15,5,c6,c15,1
>> +#define HPRBAR31        p15,5,c6,c15,4
>> +#define HPRLAR31        p15,5,c6,c15,5
>
> NIT: Is there any way we could generate the values using macros?
This looks tricky. So I will prefer to keep this as it is.
>
>> +
>>   /* Aliases of AArch64 names for use in common code */
>>   #ifdef CONFIG_ARM_32
>>   /* Alphabetically... */
>>   #define MPUIR_EL2       HMPUIR
>>   #define PRBAR_EL2       HPRBAR
>> +#define PRBAR0_EL2      HPRBAR0
>
> AFAIU, the alias will be mainly used in the macro generate
> the switch. Rather than open-coding all the PR*AR_EL2, can we
> provide two macros PR{B, L}AR_N that will be implemented as
> HPR{B,L}AR##n for arm32 and PR{B,L}AR##n for arm64?

Yes , we can have

#define PR{B,L}AR_EL2_(n)          HPR{B,L}AR##n for arm32

#define PR{B,L}AR_EL2_(n)          PR{B,L}AR##n##_EL2

I will send a v2 with these changes. Please have a look at that.

- Ayan

>
>>   #define PRSELR_EL2      HPRSELR
>> +
>>   #endif /* CONFIG_ARM_32 */
>>     #endif /* __ARM_MPU_CPREGS_H */
>
> Cheers,
>


From xen-devel-bounces@lists.xenproject.org Fri Apr 25 12:24:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 12:24:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.967852.1357566 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8I5s-0001Hx-OT; Fri, 25 Apr 2025 12:23:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 967852.1357566; Fri, 25 Apr 2025 12:23: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 1u8I5s-0001Hq-Jm; Fri, 25 Apr 2025 12:23:48 +0000
Received: by outflank-mailman (input) for mailman id 967852;
 Fri, 25 Apr 2025 12:23: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=Fya8=XL=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u8I5r-0001Ff-AA
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 12:23:47 +0000
Received: from NAM12-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam12on20618.outbound.protection.outlook.com
 [2a01:111:f403:200a::618])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1fbedf2a-21d0-11f0-9ffb-bf95429c2676;
 Fri, 25 Apr 2025 14:23:43 +0200 (CEST)
Received: from CH0PR03CA0048.namprd03.prod.outlook.com (2603:10b6:610:b3::23)
 by CH3PR12MB9196.namprd12.prod.outlook.com (2603:10b6:610:197::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.28; Fri, 25 Apr
 2025 12:23:33 +0000
Received: from CH3PEPF00000010.namprd04.prod.outlook.com
 (2603:10b6:610:b3:cafe::b3) by CH0PR03CA0048.outlook.office365.com
 (2603:10b6:610:b3::23) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.37 via Frontend Transport; Fri,
 25 Apr 2025 12:23:33 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CH3PEPF00000010.mail.protection.outlook.com (10.167.244.41) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Fri, 25 Apr 2025 12:23:33 +0000
Received: from localhost (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; Fri, 25 Apr
 2025 07:23:32 -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: 1fbedf2a-21d0-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=XryCHQ9lcLbJ2a8GyBfOuLhRYmKoCBDhrIELnrsJnsNSUT0oFZSGeOwis9gW3o+WUZknSuMe13qTPnnH95CWYaE7h+Q5G9IdaREM4q/0zvRe3VmFG5Q/AREouWB4wXvQe/cy/0vxf5Rw/fhHlJxIkYr4Yvk1D6k2FaY0GrkaL6uyskFJkQZYC6sf2kVCcE/pfVY9Ay9lUs0aeJkmtIWavFt0cLaqqf2R4IvZUqZN/jG9drskgxLqTxORYUWljzOoUK0pen5NvQ5osA9lGBOOTJm9Z3H1WLtnsu7apUIelmdf8ekKj6w/39+YlCi5oZXibo24kgJX4MyE8o9JAi19Zw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=/pGcYbRi0Ea7ULYgSqcSRAcuX2/Qs5vWBI6vB5qWo/M=;
 b=iEhzQdqbUhgfwa22p9k5DCfNqvS7QI6gusNO/4tM5tlvh+x4gYtBcwh52V0FNHhvqNwGZlJZYCni6qDtFCRUu8llB9B3p73gyKFOthlKxPHozTgrKxZvZJ1WHx9v4r7sYGliYhj2m7wL/TGccKAqdEkV9mq+xa6uVjE/fk2AnVp5ny+MwlxGV1GCvfbWG1NqLVvIPiSQgZGk1SO5nPK1BzEQ5Knfov0xPUUnhCyGOdaSHafxnu9peoDm6MpmZx8NHbwLuJrMMTbx7EgJVY3SJyVC3Heeq1SDI5KUaF5XJkzACGPE52htgvcriL2V1Z7P/eeDNqGOiybziFTBrhIj1Q==
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=/pGcYbRi0Ea7ULYgSqcSRAcuX2/Qs5vWBI6vB5qWo/M=;
 b=auF5DBC/mM/m5AwdDeCJLmXuC9aRa+KagHo9qg91SdRhR0M8GpsmEI25qz8PSv+XUOkQ7fiNnaqh4rbmo/UvNykKtbDXHchOohrD2H546R6wniTl/uFR1LBpn/cHPeI8FzBegPVYvOQUiHYT5vzjCFAok1rG3xZyE5/lx+p3ElI=
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
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Fri, 25 Apr 2025 13:23:30 +0100
Message-ID: <D9FPTG9VXGV2.3OT1N6UFNG2WI@amd.com>
Subject: Re: [PATCH] x86/hvmloader: fix usage of NULL with cpuid_count()
From: Alejandro Vallejo <agarciav@amd.com>
To: Roger Pau Monne <roger.pau@citrix.com>, <xen-devel@lists.xenproject.org>
CC: Jan Beulich <jbeulich@suse.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Xen-devel <xen-devel-bounces@lists.xenproject.org>
X-Mailer: aerc 0.20.1
References: <20250424125813.96449-1-roger.pau@citrix.com>
In-Reply-To: <20250424125813.96449-1-roger.pau@citrix.com>
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: CH3PEPF00000010:EE_|CH3PR12MB9196:EE_
X-MS-Office365-Filtering-Correlation-Id: cbbd7aa2-1bdd-4161-84d8-08dd83f3fef3
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|82310400026|36860700013|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?VkFVMW5pR0RiUGc4Z00vVzVsTmV5RE1TaXk4aWRnd0tncHB3S3dCTTJuK3R5?=
 =?utf-8?B?UExmNWxIV1ozazQ0dFRzdEgrZGFUWWNjdzJWNW1MRE8reWtMUjZKbjFydTdn?=
 =?utf-8?B?Z3BTZFZwMWhpY292QlR1SmdCQk1qU1JvOXAwQnozYkpiWWpZbEsxUWFnRG1q?=
 =?utf-8?B?N3lRcWJBMFJ2dmV5Nk9OZHJxU1BWWkZpWWtNbThSSzFZZ203OGtwVzZpdGdR?=
 =?utf-8?B?bHJZdWNMVEJkWnhHdXR5Z2loOWc1Wk9qZzlBME83VDNOeDNuY0FyK3JzYjd2?=
 =?utf-8?B?QWM1QzBiaitpYm1oRitlQmpGejhSZlpaSmV3UEx1eGR4UHVYQWZOTVl4Szdr?=
 =?utf-8?B?UHhMcEI4enZ3dFJFRElDU0pRejF4WEpvMElidnN3VVVJVlphdUF5QWFaOGFQ?=
 =?utf-8?B?S3NiaEJXV1N6WlRWL3BFWlVqWTBJNFhJTy9PUG1vdWFLUWpGeGxQSEo3WFJ0?=
 =?utf-8?B?T2xyemtqQWk2VmVsTXdnbEVCSS9BNjdiSFptaVRJQjFIV1RkTW9LRVJZNlBZ?=
 =?utf-8?B?bE9mZ0hUeHBHck5OMERWazY3S2FaRGdBUVFldm5GelgzWE9BK0FCRHVEK2Fy?=
 =?utf-8?B?LzZLK2ZyNXdnTGV3ZHZveFdQNkw2eU04czVGRUxJUlVhYUxlWW9NQXdZUGkr?=
 =?utf-8?B?WTkzYW0zMXBzOHMzaDFJTHZaaEUrS3BadkE0N3JhNVVsUExoMDNFOWE5WnI2?=
 =?utf-8?B?TnhvdHdJYk1kd3d0dmdVNzdKUS9sQnpLVGlvNWVkQ2szeEZUeUVmaFRvQ2kw?=
 =?utf-8?B?K3lwYVVYZC9UeG4rb0ticE03amVOY3UxZnZvYlVzbEpBNjliZHVYZTkzdHlj?=
 =?utf-8?B?M2JnTjRwYUErZU4wUkx3VmFWMDBCLzQyRGMyMkN5ekI0aDltMng5SWxCWSt0?=
 =?utf-8?B?VklyQk13UnRTcTRlRkYzdkxldU5wWGpGWXA3MUtyekQ4THBzV3Yrcm91dWM5?=
 =?utf-8?B?UWY2aDR4QnJQbE41bzdHdFVsaysxMzVhUU1Hd3ZNc0pOaWYrbmpoZW1lenBk?=
 =?utf-8?B?MitpaWZWbGFab0lBa3VKWktnclM5UFhaL2Q0M25IZFBHS2RjVDdLR1hha1V6?=
 =?utf-8?B?b2xzcXE2aXJrQkZkRUwwbS90cFJBSGRxc2RLZWpyME9lczl0bDRpL0pKa2U1?=
 =?utf-8?B?Q3dOZk9SWmZ5cnFscGkvNUw4RnM2ZFdzV1l6cHlycmI1Z3dTdGNaTFRELzVi?=
 =?utf-8?B?NjdqOVpVaEdrVlhCMnNneC9MN0ovc0o4c1k0NXVpSkVMdkdYY1RldHpveUo4?=
 =?utf-8?B?TXpjUFJnN3RsUTJnZkkrdmR6cmRuNzIyZEdCckdoQTFZbmpiaE1rQTNlZG5y?=
 =?utf-8?B?aDU5bHBDOTRlKzJjRzJMK3FQYWE0c2lVckhkcnJpT050SUJmQTNmUC9ybTJG?=
 =?utf-8?B?L05MU0lqbXg0UlcwZTVzbVRwMVdPNmM5Vm40T05VZmxTSTN3WGRrenFaNHlO?=
 =?utf-8?B?Rkg5QlptSGM4OUVYVnU5a1puWnRCSXUyblg3UGo2aUZMTUVkSVFrTlEwK3FW?=
 =?utf-8?B?cnZXYWEyRkRtYXJ1WnA3RXRWcEp2YkthYVU5MkJHU1ZwRmEzTC91eEpIaEVS?=
 =?utf-8?B?RmtoYnkxcmNtM2kwUUplNnRTZ1pZNzJYNFBwQ1p2TmZxTW1adm12N2V4Z3Y3?=
 =?utf-8?B?SE1TK01PM3owWWV1eGFnOTFlZy9NMkxNdXQ3SVZSUDFQT3JzN21pMUhqM21k?=
 =?utf-8?B?TGduaWo5UVEvV3g5NlJjNmI1NkFtdFJjeHRSSnFpejNNWWkrODJwU1BLMVhT?=
 =?utf-8?B?WWhxMzYyQ25FTUZZUVZjRmFlWXEvYS9qY2JkTmtLM29iYUtrMXN4RTkxZlZK?=
 =?utf-8?B?TjhTYkpJYzdkbjFlZ0VrTi93N3dGcy9jaVhmSXd5ZUhydy9xdS80ajBSRW9D?=
 =?utf-8?B?K3l0VzJWTHAvbmovbnZDQnRJOVU5QUtYdFZwRktSZllPWVQwaDAxMjNXVUk1?=
 =?utf-8?B?bzR0cDZTS2NQdXBVY0w2b0VLcGZLNnQ3b2srMmZJWG5BaS9keXA0OXQ3N3Fv?=
 =?utf-8?B?YWEwZFlGM2RaS3ZnWHEwZVR6eE93S2E3Mm1QRFBHKzRuelM5UWVJelZvSW02?=
 =?utf-8?Q?aKL37h?=
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)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Apr 2025 12:23:33.3517
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: cbbd7aa2-1bdd-4161-84d8-08dd83f3fef3
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:
	CH3PEPF00000010.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB9196

On Thu Apr 24, 2025 at 1:58 PM BST, Roger Pau Monne wrote:
> The commit that added support for retrieving the APIC IDs from the APs
> introduced several usages of cpuid() with NULL parameters, which is not
> handled by the underlying implementation.  For GCC I expect this results =
in
> writes to the physical address at 0, however for Clang the generated code
> in smp.o is:
>
> tools/firmware/hvmloader/smp.o: file format elf32-i386
>
> Disassembly of section .text:
>
> 00000000 <smp_initialise>:
>        0: 55                            pushl   %ebp
>        1: 89 e5                         movl    %esp, %ebp
>        3: 53                            pushl   %ebx
>        4: 31 c0                         xorl    %eax, %eax
>        6: 31 c9                         xorl    %ecx, %ecx
>        8: 0f a2                         cpuid
>
> Showing the usage of a NULL pointer results in undefined behavior, and
> clang refusing to generate further code after it.
>
> Fix by using a temporary variable in cpuid_count() in place for any NULL
> parameter.
>
> Fixes: 9ad0db58c7e2 ('tools/hvmloader: Retrieve APIC IDs from the APs the=
mselves')
> Signed-off-by: Roger Pau Monn=C3=A9 <roger.pau@citrix.com>

Ugh, that's on me. I was sure I saw the pattern in Xen (from where the
code came from), but clearly I hallucinated.

> ---
> Could also be fixed by using the temporary variable in the call sites,
> however that's more code in the call sites at the expense of less checkin=
g.
> I don't think the extra NULL check logic in cpuid_count() is that bad.
>
> Overall the solution proposed in this patch is safer going forward, as it
> prevent issues like this from being introduced in the first place.

Might be worth moving this same extra checks onto Xen's cpuid. There's
no shortage of `junk` variables at the callsites.

> ---
>  tools/firmware/hvmloader/util.h | 11 +++++++++++
>  1 file changed, 11 insertions(+)
>
> diff --git a/tools/firmware/hvmloader/util.h b/tools/firmware/hvmloader/u=
til.h
> index 644450c51ceb..765a013ddd9e 100644
> --- a/tools/firmware/hvmloader/util.h
> +++ b/tools/firmware/hvmloader/util.h
> @@ -190,6 +190,17 @@ static inline void cpuid_count(
>      uint32_t *ecx,
>      uint32_t *edx)
>  {
> +    uint32_t tmp;
> +
> +    if ( !eax )
> +        eax =3D &tmp;
> +    if ( !ebx )
> +        ebx =3D &tmp;
> +    if ( !ecx )
> +        ecx =3D &tmp;
> +    if ( !edx )
> +        edx =3D &tmp;
> +

A somewhat more compact alternative that doesn't require tmp would be:

  eax =3D eax ?: &leaf;
  ebx =3D ebx ?: &leaf;
  ecx =3D ecx ?: &leaf;
  edx =3D edx ?: &leaf;

It clobbers `leaf`, but only after it's no longer relevant.

>      asm volatile ( "cpuid"
>                     : "=3Da" (*eax), "=3Db" (*ebx), "=3Dc" (*ecx), "=3Dd"=
 (*edx)
>                     : "a" (leaf), "c" (subleaf) );

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Fri Apr 25 12:33:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 12:33:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.967872.1357591 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8IFO-0003q7-PH; Fri, 25 Apr 2025 12:33:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 967872.1357591; Fri, 25 Apr 2025 12:33: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 1u8IFO-0003py-Lu; Fri, 25 Apr 2025 12:33:38 +0000
Received: by outflank-mailman (input) for mailman id 967872;
 Fri, 25 Apr 2025 12:33: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=y1QO=XL=infradead.org=peterz@srs-se1.protection.inumbo.net>)
 id 1u8IFM-0003pd-Ji
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 12:33:37 +0000
Received: from desiato.infradead.org (desiato.infradead.org
 [2001:8b0:10b:1:d65d:64ff:fe57:4e05])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7e0219cc-21d1-11f0-9eb3-5ba50f476ded;
 Fri, 25 Apr 2025 14:33:35 +0200 (CEST)
Received: from 77-249-17-252.cable.dynamic.v4.ziggo.nl ([77.249.17.252]
 helo=noisy.programming.kicks-ass.net)
 by desiato.infradead.org with esmtpsa (Exim 4.98.1 #2 (Red Hat Linux))
 id 1u8IF4-0000000C2S5-1fLP; Fri, 25 Apr 2025 12:33:18 +0000
Received: by noisy.programming.kicks-ass.net (Postfix, from userid 1000)
 id DA9983003C4; Fri, 25 Apr 2025 14:33:17 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7e0219cc-21d1-11f0-9eb3-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=desiato.20200630; h=In-Reply-To:Content-Type:MIME-Version:
	References:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To:
	Content-Transfer-Encoding:Content-ID:Content-Description;
	bh=z0kssRXr0Jmr2iLuPqygq8fHDe3P+7Q6+7xMZ7CRFpA=; b=n62i0DvKUkkS19M6Grw/IA6BJM
	6eax7WEzMDhdsLLdBaVpyql0sL3uwAA/S4ABBYyHfp8Tx/iU0ee0EuTw7NJfGf9EI8UsjXrlSl0sS
	02tBYqSgzmjI/Kny3gI739/JKlgl+9wGdEidVTiMFctgk47RLsTlqNTkCUR+iW8cVDyF62mXAMwh5
	XkywTMBNuRYpIwM9+ushQW73ekmtzH4pzyRk9psYN+bzsnJD1auXiTevc+ivI+Y1ZKlYKr7ewsVRG
	jovxOw3NEqLfi+p+LosTspxc/ZhCArckwjJxCRVQhZyFjxgfcqmpAHeIJnZG6UgRJMQ7uJJh6ZqZe
	G7VOYhcg==;
Date: Fri, 25 Apr 2025 14:33:17 +0200
From: Peter Zijlstra <peterz@infradead.org>
To: =?iso-8859-1?Q?J=FCrgen_Gro=DF?= <jgross@suse.com>
Cc: Xin Li <xin@zytor.com>, linux-kernel@vger.kernel.org,
	kvm@vger.kernel.org, linux-perf-users@vger.kernel.org,
	linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
	linux-pm@vger.kernel.org, linux-edac@vger.kernel.org,
	xen-devel@lists.xenproject.org, linux-acpi@vger.kernel.org,
	linux-hwmon@vger.kernel.org, netdev@vger.kernel.org,
	platform-driver-x86@vger.kernel.org, tglx@linutronix.de,
	mingo@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com,
	x86@kernel.org, hpa@zytor.com, acme@kernel.org,
	andrew.cooper3@citrix.com, namhyung@kernel.org,
	mark.rutland@arm.com, alexander.shishkin@linux.intel.com,
	jolsa@kernel.org, irogers@google.com, adrian.hunter@intel.com,
	kan.liang@linux.intel.com, wei.liu@kernel.org,
	ajay.kaher@broadcom.com, bcm-kernel-feedback-list@broadcom.com,
	tony.luck@intel.com, pbonzini@redhat.com, vkuznets@redhat.com,
	seanjc@google.com, luto@kernel.org, boris.ostrovsky@oracle.com,
	kys@microsoft.com, haiyangz@microsoft.com, decui@microsoft.com
Subject: Re: [RFC PATCH v2 21/34] x86/msr: Utilize the alternatives mechanism
 to write MSR
Message-ID: <20250425123317.GB22125@noisy.programming.kicks-ass.net>
References: <20250422082216.1954310-1-xin@zytor.com>
 <20250422082216.1954310-22-xin@zytor.com>
 <b2624e84-6fab-44a3-affc-ce0847cd3da4@suse.com>
 <f7198308-e8f8-4cc5-b884-24bc5f408a2a@zytor.com>
 <37c88ea3-dd24-4607-9ee1-0f19025aaef3@suse.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha512;
	protocol="application/pgp-signature"; boundary="/MHZas7e8A04P/yf"
Content-Disposition: inline
In-Reply-To: <37c88ea3-dd24-4607-9ee1-0f19025aaef3@suse.com>


--/MHZas7e8A04P/yf
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Wed, Apr 23, 2025 at 06:05:19PM +0200, J=FCrgen Gro=DF wrote:

> > It's not a major change, but when it is patched to use the immediate
> > form MSR write instruction, it's straightforwardly streamlined.
>=20
> It should be rather easy to switch the current wrmsr/rdmsr paravirt patch=
ing
> locations to use the rdmsr/wrmsr instructions instead of doing a call to
> native_*msr().

Right, just make the Xen functions asm stubs that expect the instruction
registers instead of C-abi and ALT_NOT_XEN the thing.

Shouldn't be hard at all.

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

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

iQIzBAABCgAdFiEEv3OU3/byMaA0LqWJdkfhpEvA5LoFAmgLgQUACgkQdkfhpEvA
5LqJKRAAkGelIfMDPEkg613aLM0RL5GIPigFIL9+IaLhypRMpJMp1rKIwy8kLaRd
NwdJ0yX6iqAzFF/AHn3KvVp7MxNCeDWNTXTcCpxuCSB8NoKfph2JduGzhUylWdg3
AhemoMrgzBgwkVVk2mDD2kvewJ0Axr2isfs+ugJLAo+GvKhnV+qJRvSE/FB0V7XV
LC+r1B6ZXIcUBjvYOW2JbRYPW/UDT/LS9CZDWr2pu+A3jJ8vmlOwAb0Yeh3/2yKB
/LdGM2PIII/0x66JaVvZawFSLjeUT18HxLAAh8MDDLgWCiwp+Uk3RzgrnaSj9oC0
6uV/J7czytoK4haaV70zPcWqzZPIurtpgcG9AynaG05VjJ5ARgEG6EFJd91NnbM+
7dZWXM6y1PI6IFuh1ldUJUD3YnEd3VuXAWaYE4aBr63rXaUYuVpAKRUY0NFZmxHw
KGaVmss4AtUGeDBTPMvYyx+d1BTxPiYVeVbLzodtjl/mQPfpne5vlQomBolxd/0a
fkeL0zUZoVgLfndRNVN+dIa2cPWo+BHNNM8tI92aFQ0YrxaTpdSjrOJ0bobnBUch
deYEsdgKUEpUcFZqcp/ox1cc73kPeJ9365RwavrAN8sZIUSs+vvtu36/WIVI12eK
qw6upySrPM0KLVTItTbNxKmS5uvFrc2fDPMAoru3P2Y5VkKPa2Q=
=6Oyb
-----END PGP SIGNATURE-----

--/MHZas7e8A04P/yf--


From xen-devel-bounces@lists.xenproject.org Fri Apr 25 12:37:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 12:37:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.967889.1357613 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8IIe-0004XW-Bw; Fri, 25 Apr 2025 12:37:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 967889.1357613; Fri, 25 Apr 2025 12:37:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8IIe-0004XO-8P; Fri, 25 Apr 2025 12:37:00 +0000
Received: by outflank-mailman (input) for mailman id 967889;
 Fri, 25 Apr 2025 12:36: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=Fya8=XL=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u8IId-0004XD-0M
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 12:36:59 +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 f7f35537-21d1-11f0-9ffb-bf95429c2676;
 Fri, 25 Apr 2025 14:36:55 +0200 (CEST)
Received: from SJ0PR13CA0033.namprd13.prod.outlook.com (2603:10b6:a03:2c2::8)
 by DS0PR12MB8293.namprd12.prod.outlook.com (2603:10b6:8:f3::7) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.8678.27; Fri, 25 Apr 2025 12:36:51 +0000
Received: from CY4PEPF0000EDD0.namprd03.prod.outlook.com
 (2603:10b6:a03:2c2:cafe::15) by SJ0PR13CA0033.outlook.office365.com
 (2603:10b6:a03:2c2::8) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.23 via Frontend Transport; Fri,
 25 Apr 2025 12:36:50 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CY4PEPF0000EDD0.mail.protection.outlook.com (10.167.241.196) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Fri, 25 Apr 2025 12:36:50 +0000
Received: from localhost (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; Fri, 25 Apr
 2025 07:36:48 -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: f7f35537-21d1-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=auQvVieM7TO0xqGgdzLWTIDTrNAyWme3Q4dd34cOelogbLMy3W0zQ9sF8GAg2WuZc6IZ55bxTC3H1SiR97BA84BjbdX2qmsocTRGViZYQsLR0Y3Otuk8eFuaBG0S6LfM8HvHCVduQYmQeY0r/LJurK2BhONJBdEAtXZ0NMBrdSQ55GJrHjxGqfrGpMaQ/2thVs0YWJmNcJk3+PIbBiiGtx4hvRTqiqmR4mtao91NwbpTp444Yqfml91o3/bK1aZ3IifM6NRS29YXr0Id0+BffxV4rABirf5543eF3cERqsaM4oV5XUiBrYcQTxewts+v65Fo+AJY/XNmsOkaSQW4/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=xi6HiV/v4lFN9EQLKuYbULt3tlbLUebiB7R37k61iU4=;
 b=n424bEoOgIhPflGRI5P6FCVLcyp0wdU5sSta1fpT+5Fu+Z0IjtgHoQeRIvs65mrMF93npIP6dSHJRn7Hy0gbhdFVmzsxfyDjndHLbDj8JDfKR52eJAGLhfl4YseV8Remh1xWyb7FOO06gZLidjf2RKz+dvUfVEV2fPYXcv6cVeqgYI2ORacJeDBhXTE+6KDdDSSrWZfVFz6Ghz1prtfyNgCwlctT33/jvjZC4ADzHvDnPRkVhc/DhbdRr3vF8y6WHAZp80409XHzn0H1QIfrLJHoBbEShPePJTYXh5USjEBOkUkmT/7mhmO0s2HKFuvMc7js3HOnriyY5swR0ehhAw==
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=xi6HiV/v4lFN9EQLKuYbULt3tlbLUebiB7R37k61iU4=;
 b=KMsVCWPljqQguc0bxpnfBzQjJEu4X499yQVCMjcVgzkztKeO1Cj5q8ONPzVoQ4S5QwYCYB4uzCyCutDiGKJ5xuSKSm9GwN2GF5vqiTDIhkJlte3j0CDfo3eWCKgcL3kKqwm/vNdkvIpDoUqQ3MX8DJYtbGcp7H2IA0ewgoM5U9k=
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
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Fri, 25 Apr 2025 13:36:42 +0100
Message-ID: <D9FQ3JVWGOSR.1F6NIIEDCUP16@amd.com>
CC: Jan Beulich <jbeulich@suse.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Frediano Ziglio <frediano.ziglio@cloud.com>,
	Xen-devel <xen-devel-bounces@lists.xenproject.org>
Subject: Re: [PATCH v2] x86/intel: workaround several MONITOR/MWAIT errata
From: Alejandro Vallejo <agarciav@amd.com>
To: Roger Pau Monne <roger.pau@citrix.com>, <xen-devel@lists.xenproject.org>
X-Mailer: aerc 0.20.1
References: <20250423113215.80755-1-roger.pau@citrix.com>
In-Reply-To: <20250423113215.80755-1-roger.pau@citrix.com>
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: CY4PEPF0000EDD0:EE_|DS0PR12MB8293:EE_
X-MS-Office365-Filtering-Correlation-Id: 1311ce3b-5836-40ab-1be7-08dd83f5da0f
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?TThQOEJDNS90dW5nZ3hSTlBMS3JxU29YQ2x6VDU2bFU1V3BkWVBsc0JJMUlP?=
 =?utf-8?B?SWR1OUFDMXpaN3czcU1LdzFjcVZFOGxGS2prYjQ3QjdSZmNEREFBZzlTVnY3?=
 =?utf-8?B?bDA3OFJpamlHZUJRYjBRQ2VxOW84dVFXZk4yYmlQdmVzazlENFA5N0p3Q0tl?=
 =?utf-8?B?dFZ1WGVsTUZBcUlGQmo0S2FmS1NZdWMvNkV4czd3Y0JvT01DM1JacUlidGhI?=
 =?utf-8?B?MVF1MmdNdkh0TnJlcEFxMHpab2czelFHNmdiaFh1cmpoVDVQRGw5RFAvK21M?=
 =?utf-8?B?TUFtZjBhc2dOSndYcEUxOTZsdDlyUGhtSlhXbVlScm9rLzYvSUxzdnhhcHFh?=
 =?utf-8?B?bGlVYlF4TVl6ZlBYaTV2UGlKZ3hEd0FXdGYwNmRTNzNwOCtMK3JZcHJkcDNY?=
 =?utf-8?B?LzdNd2pkSkJ5VFJ5dWFxWUQ5aXdXS25qeFlEQVVYUDA3Tm1UdGVPZlE1NlBj?=
 =?utf-8?B?dFZCT0M0Yk1UYUZlU2FOcU5JbEs5Mk9ObW1aQnFjOXhXdktuRHRVSm5xZm0w?=
 =?utf-8?B?eE03T0orN2t4WUs1ZzdtUGdrT2dGTVZkY0VieWU2UFExTW9oZFkrWndCVmJk?=
 =?utf-8?B?aXkvamJ2Ym5VZ2Q1TTFocTdZaVNEK0tLQmVUMzh0R1hjMDJnZHNNaDdlSkRF?=
 =?utf-8?B?M1hLeTNOVFRTeWZVMDB2M3R6ajB1L3ZxNzg1ZWpTT3RNYzZwaFN5aUxwVVBp?=
 =?utf-8?B?ZEtRaWk3NTEzY01kTDBqY25YZVRwODFwL0sxY2duNFppeXQyYTl1aGFlTXZR?=
 =?utf-8?B?akJaY2JVTHF2N3pidkxORWlsOG95OE8vT0JPMVlHZ1VWTG5SM0Ntc2V5Wmln?=
 =?utf-8?B?dGdvY1d4TEtsdjdyTWF3NXhQMzR1Tm50RVZTdTZrOC9jQkIrSkg3RjFueEhn?=
 =?utf-8?B?dTNsL1hRK1Mrb2xYYklSL0pMOXMvcUdhVmRJdkNiUDJHcGkxMktpMnF0aHFS?=
 =?utf-8?B?OU1UUHJ0MVJkbmRlSHM0VE1seFRRTDhUdVdpMmVlQzRmRmswcExSMSswS3l5?=
 =?utf-8?B?OVJFaE9DQmRLWVVaLzVRUFNrS0VtMDVQU0gwY2hVQjExTklwcXM1TUo1YzFJ?=
 =?utf-8?B?RDdqZVdsWVp6S0V4UjBIaWpjMUIzMU9wL1cyNFRlcVp2ZTBnd01zZis1VVY1?=
 =?utf-8?B?QTdtZklMS1A2d1h6V25YM3U4TEhCUFRtaVg4aGZFQ09qZW4vNVN5Y0lCZ0tJ?=
 =?utf-8?B?NXFUSGlPaWxOR29lU2d3WVNUaWFqY2xSTmsvVG5CYmVDOGJTUFRwUmpuTm43?=
 =?utf-8?B?Vk5FL0ZrOVlwSkNRMXQ4VzlUSlkrcXp1TmNVYWFUYjcyTGNFQjlzRHhSNHJj?=
 =?utf-8?B?NUQyZDVpUktrZklwalJiY251Y01nTzRTUHRPNlU0enRtSGdMNm5LQ0xkb0p6?=
 =?utf-8?B?ZDVGU1A3Rk9zcGk3eVYvT0ZlODFBb3RIYUR4Q1FBQnZKNGFDSENSY1lKWFEz?=
 =?utf-8?B?Vkg0VFl5MWg3RDB4aVYzQ0cvV1hpYnZCYnJhck9PMFhKQ29xVTNKejlLZXY1?=
 =?utf-8?B?OStDV3puck1aRzE1WllpWk1ZNEFtcWpzOGJsUDI1akF2cGR2dDZaNVQ0dHls?=
 =?utf-8?B?SW5PWXltK09PRlk3NXI1dFpNeVAxTVUzTzJkVnhSNllkYlpLU08zaEt4dEE5?=
 =?utf-8?B?Q3Z5UHl4d0N5SHNOWWdSVXNnVjhkMitXUlNsaTJ3RHhGMlpQOFJDRVdVL25r?=
 =?utf-8?B?MkozdDRnS203aDNmMitNOHg0YWJubVlOV3IzcWZHREUyc2pNUkdUWGtrUUZB?=
 =?utf-8?B?TWVKZEZBTEFXOGR4aXZjR3RQMU14NHk0SVhHN1lsRFczb0lRNDM4cW9RWVBK?=
 =?utf-8?B?UFFuUVduV1ZIekxxbFppVVhHcStpMUVrSmhsVm1aN00wWkcrSWxoNUtjRHRO?=
 =?utf-8?B?OG1FdUlGOEVJRXViTzd5Q0Fpa1JJVit4aHVHNHU5Y1NDeWVockdVS2N0NkhI?=
 =?utf-8?B?T2Q1RDQzTjIwdDMyT0NudUlTcElieldIS3ExVlVqZjI2clUxU1BzcXhFaVMv?=
 =?utf-8?B?RXVPVG5KcDZuaVJwcUF6a0h5SGh6dDJHVHBKZll2K0NCL1h1bG50WW1NbHoz?=
 =?utf-8?Q?dX71MW?=
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: 25 Apr 2025 12:36:50.3565
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 1311ce3b-5836-40ab-1be7-08dd83f5da0f
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:
	CY4PEPF0000EDD0.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB8293

On Wed Apr 23, 2025 at 12:32 PM BST, Roger Pau Monne wrote:
> There are several errata on Intel regarding the usage of the MONITOR/MWAI=
T
> instructions, all having in common that stores to the monitored region
> might not wake up the CPU.
>
> Fix them by forcing the sending of an IPI for the affected models.
>
> The Ice Lake issue has been reproduced internally on XenServer hardware,
> and the fix does seem to prevent it.  The symptom was APs getting stuck i=
n
> the idle loop immediately after bring up, which in turn prevented the BSP
> from making progress.

Ugh... so this is what it was... Awesome having this madness fixed.

Do you happen to know if Linux has a similar fix in place?

> This would happen before the watchdog was initialized, and hence the
> whole system would get stuck.

That's nasty. It was the misassumption that the watchdog was already
running that had me going in circles thinking it was a lockup rather
than a livelock. Oh, well.

I believe the kudos for finally being able to reproduce this goes to
Frediano?

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Fri Apr 25 12:41:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 12:41:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.967901.1357623 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8IMd-0006Fb-R8; Fri, 25 Apr 2025 12:41:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 967901.1357623; Fri, 25 Apr 2025 12: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 1u8IMd-0006FU-OS; Fri, 25 Apr 2025 12:41:07 +0000
Received: by outflank-mailman (input) for mailman id 967901;
 Fri, 25 Apr 2025 12:41: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=Fya8=XL=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u8IMc-0006FO-CI
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 12:41:06 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on2061b.outbound.protection.outlook.com
 [2a01:111:f403:2418::61b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8c68e6a6-21d2-11f0-9ffb-bf95429c2676;
 Fri, 25 Apr 2025 14:41:04 +0200 (CEST)
Received: from BYAPR05CA0071.namprd05.prod.outlook.com (2603:10b6:a03:74::48)
 by LV8PR12MB9620.namprd12.prod.outlook.com (2603:10b6:408:2a1::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.27; Fri, 25 Apr
 2025 12:41:00 +0000
Received: from SJ1PEPF00001CEA.namprd03.prod.outlook.com
 (2603:10b6:a03:74:cafe::ab) by BYAPR05CA0071.outlook.office365.com
 (2603:10b6:a03:74::48) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.25 via Frontend Transport; Fri,
 25 Apr 2025 12:40:59 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ1PEPF00001CEA.mail.protection.outlook.com (10.167.242.26) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Fri, 25 Apr 2025 12:40:59 +0000
Received: from localhost (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; Fri, 25 Apr
 2025 07:40:57 -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: 8c68e6a6-21d2-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=mw/bkPrDJeE3hB7EPfzPNXapypSKwMtVFqeR+JkkYdIIMMeoDBfz+YVUEOI893EpzPNuoxQgclP10r4skbTnVX/7JuZh6xlT2c+M2KgP48XVlaZlmx+zbcx+WmL7KEtKjV6X8uKarp2Ah//7Th7uN1TH8kqTZCcMtXR/z1+vzjrPaqlEYlmhX7h8dXnshcVLEJnTJX+/115PPUj3jWWHrhV+ullxBgs9cv3W6bKVOvKrb7dRrgGzG3V5ku5WjnyYJ9q0TbkAI1FV+UiG6QCvwtZLnD3vZZaWyrzy08w0uWzE3qoujrknZQwsskPTn0YuIJayXx77OfD9sGIa5pRfrw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=uj05Nef9tml9IMjrZFGWs3G6Itzb/yvhwRqLRa/UMGs=;
 b=qGExuRTWhaaNK+z38AvdiPeg0BKUFDhtWzd0wqN1+GRrOJA5b/S3DH6p8HElOlaxR4EqOSIkoQ/wes86yU9B/qPyUvI8TB1EobXF/bEA9m2SyRlmcVVw3xyZJ+nDhZEu79/QRjq1F1GZFt7zh5CXZsMStXT5Oq39OBdnl4YMKDbd2Edu1zMRi98h9+FyWZ6KIWNwM3r8dsEEGNwqcnv5RW0302QZn87f9fhV9+kZs/mCiRAca4ae7UJ7hpB8NDu8CMcAQ4IBKwE2MicWAcHz/AJbLoT0/9gKTV9BlhGSWTFsTV2S+vpcs2dy+PcpqNqA2s9ClHbwFsaN33QgpHKXkQ==
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=uj05Nef9tml9IMjrZFGWs3G6Itzb/yvhwRqLRa/UMGs=;
 b=BnpjApLKd6WdAAYVH2r1/c8JeEFz76VImRZ+wRCOtRchgzTZxqanTaahIbxjpaBUKt1MV4bc7n+oLlh17pvYY9DHTcrqgr2gKvCYNPLNtITVXy4AvR7URCl8G2yNdV5uZsWnFo9vx6JYikBDmt9vgjsK4wztgQccuSmv84Kytl8=
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
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Fri, 25 Apr 2025 13:40:56 +0100
Message-ID: <D9FQ6SCMB5BW.H4C34X9UIEP5@amd.com>
CC: "Daniel P. Smith" <dpsmith@apertussolutions.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, "Julien
 Grall" <julien@xen.org>, =?utf-8?q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH v5 01/12] kconfig: introduce domain builder config
 options
From: Alejandro Vallejo <agarciav@amd.com>
To: Jason Andryuk <jason.andryuk@amd.com>, <xen-devel@lists.xenproject.org>
X-Mailer: aerc 0.20.1
References: <20250424161027.92942-1-agarciav@amd.com>
 <20250424161027.92942-2-agarciav@amd.com>
 <4f634f22-3947-40f6-ac2e-5670376a7980@amd.com>
In-Reply-To: <4f634f22-3947-40f6-ac2e-5670376a7980@amd.com>
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: SJ1PEPF00001CEA:EE_|LV8PR12MB9620:EE_
X-MS-Office365-Filtering-Correlation-Id: d84fbeda-1b21-4d62-fc99-08dd83f66e57
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?V3NJaFB6YVU2M3hYZFlCQ1FLd1dPWFBvR0FSdUIxMXFpT3NQTWQzeU52c280?=
 =?utf-8?B?NzNHeFVzU0RpYStobFZLL3RWemtPWVJ1aWlLVUwzd0ZrZ21nR1lCRkhwVnJ6?=
 =?utf-8?B?Q2V1ZEpiRE03Z0h1akYvbG9ZeEFoTndJWVBGems4cXdLOWFwUkF6RTh1bk96?=
 =?utf-8?B?TmQ0emRJcERYWGZvNGcyOUcyOUFQSGVlL2laclA5Wm1lRUNpSGpXK0lzclpO?=
 =?utf-8?B?MHZ0OHpvaGl0UVBXbnBIZWxFL0lMY1EvVmZ4RFdiNGUyNHd6UEZQbWdqMkpm?=
 =?utf-8?B?dExWalJBQm1UaElPWW5KajhUOGVYdzJlOHJjTWF4ODhkVUVYVFdPcjV6WjFC?=
 =?utf-8?B?SE5MRHpxVTduVnFra1g1LzNyMmxoMmM2U2RGYTZxTiszWmdRUG5sZ2E4bWM1?=
 =?utf-8?B?OERZMm9BejdkbElnVllra09DOVdRUDRCbDhBR2QyS3laUHo3SDhGbU5aZFpQ?=
 =?utf-8?B?Q2w3TGtHZ0VSSTl6N0ZtYWhnUHkxbnV3cThSejE2Mit5dHdVZFQ3bW11a0VM?=
 =?utf-8?B?UTBwelp5cGMvZXNZUTQyK1FRMWNiUmcxbXpQd0Z0cUJSK3BUK3VlUzBhS0dR?=
 =?utf-8?B?bVJQcjB4dU8xRkI5a0w1aGE5NG1RTWhKdC85RTdKMHQ1dXNuZ29pL2dmS29I?=
 =?utf-8?B?UFBVamdhOFp2QnozZ1VoVmNRN3lkZ1lidnZrS3dLL3U2UC9MQkV6eFdRYnc1?=
 =?utf-8?B?dkxJSVRRc3ZSeC9xczBPaEVhQ1N1QU40aGpaZEdlcWpvL0dKR1ViTjJ3ZWRK?=
 =?utf-8?B?ZmRJai9SVDVOeHlvWTNDTUVmeTNTSSt1KytoRHJ6TmJUU0poSWtpMGh3b0w4?=
 =?utf-8?B?bEZWRkF3Qk9CSXBPWjZiaHIreXZGNjUwUkNkS3R6ZzVxdG81UEtsdCtEbmR6?=
 =?utf-8?B?OXZwTmZ5czYxMUxCSzR4aHBIZGtHczVZQWxSSm1kZnp5UWkzTTZNdWt4b2Qr?=
 =?utf-8?B?WGZZUlFmL3VsbS8wS3BQVHdsakd3ajdtNS9tSjVIMWtTMHFCZklCckk1ZTRO?=
 =?utf-8?B?b2ZuMjNJSTc1Znp4UmJSYmo2N3dpWStQWjl4V24rYUw2ZlFxMUdkamRnaHR2?=
 =?utf-8?B?cVVJTU1pVjFwa2Rub25ZM2xPbm8zQVoreTh3aStMREdmU1dYSGQrWkJYcUVI?=
 =?utf-8?B?RkxsbVVZOHhNdWxTZXEvRzFteTFhZXM4NXp0OUZYR3ovcFBVTTFNajk1SUVr?=
 =?utf-8?B?RkhTYVZnMlpKZktXYkNiSmhFRnA2dkl6dkpvZEQ5RGtTN2RaaWkyc2hkbFo4?=
 =?utf-8?B?ajdBMFRhN1FpdXBIL0FwQUgrS0J2RzlzOGdUOHBhWkVpdWxJMlFSdlBib29C?=
 =?utf-8?B?WDN2WEE0cStCSUU1MzF1b1hUVmJuam9jeVpubVBtaTJ3OXBlU3NPOUJNQThj?=
 =?utf-8?B?TTcxd1hINzFhTkJjWnRyUkh5UFFpRFBFVmEyY0s1WlpON3pMUDlhaW1FMnFG?=
 =?utf-8?B?LzE3eVNDRXhlU3VyNGtUelJKVHJ3ZUlRc2tiQzdzb3hiUUt3VUlmcEVwU1Iz?=
 =?utf-8?B?a052Y3p0ZTMrL2JzWlZ1VXUrZFg1THZrWFZFME9sQUZoaHFrREJSc01hOVdu?=
 =?utf-8?B?YjI5Y2N2cGx2cjNJaENFa21wSlV6bkQ3c0ZKdSsrVkhhMGdjUUhhTldiQmtl?=
 =?utf-8?B?ek1MNUVqUW1sVUh6MWtwbnN5d0xvZ0M2Y1VBTUVYMUlCa3dCdHFCSlRiSWVk?=
 =?utf-8?B?RnRhdDcrdDBxSTBtcjJ1MmkyRHBvVTRCckFEdHpONnoxSHplMC9VdGFuTTBE?=
 =?utf-8?B?R0dCTTl3eWFCY2xSY3UwUlBBV1hybmtHbjUrYlV5RHJSUnNNM2s1WVdiWWVK?=
 =?utf-8?B?Y2dtOVFqcnlmNDZLUE44M3VKMUJmWUtzaHpINHV1am9Qazh5WXpTN1d3djFw?=
 =?utf-8?B?Z1VqQXlDeWhkSzF5NCs4dTA4UWRpenU3VDFpL1BMaUJJV1BKSTRjMHhvRWpG?=
 =?utf-8?B?eHY2a1p1K1liRVhYcyt2eklUUXphU3pYYi9nOE1ML3hLZkFPRWVod1lkd2Fa?=
 =?utf-8?B?YmU3NHZHeHFXRHdrRUs4L3pTRGt2eVJYclhvMkk5OERYUWtOd1N0TnM0bFR5?=
 =?utf-8?Q?FFESeM?=
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: 25 Apr 2025 12:40:59.1525
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: d84fbeda-1b21-4d62-fc99-08dd83f66e57
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:
	SJ1PEPF00001CEA.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR12MB9620

On Thu Apr 24, 2025 at 5:54 PM BST, Jason Andryuk wrote:
> On 2025-04-24 12:10, Alejandro Vallejo wrote:
>> From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
>>=20
>> Hyperlaunch domain builder will be the consolidated boot time domain
>> building logic framework. Introduces the config option to enable this
>
> "Introduce the"
>
>> domain builder to eventually turn on the ability to load the domain
>> configuration via a flattened device tree.
>>=20
>> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
>> Signed-off-by: Alejandro Vallejo <agarciav@amd.com>
>
> Maybe the title should be "kconfig: introduce CONFIG_DOMAIN_BUILDER" to=
=20
> more directly state what is happening.

Sounds good.

>
> At least with the typo fixed:
>
> Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Fri Apr 25 12:44:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 12:44:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.967912.1357633 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8IPZ-00075r-7r; Fri, 25 Apr 2025 12:44:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 967912.1357633; Fri, 25 Apr 2025 12:44: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 1u8IPZ-00075k-4u; Fri, 25 Apr 2025 12:44:09 +0000
Received: by outflank-mailman (input) for mailman id 967912;
 Fri, 25 Apr 2025 12:44: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=Fya8=XL=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u8IPY-00075e-2H
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 12:44:08 +0000
Received: from NAM10-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam10on2062f.outbound.protection.outlook.com
 [2a01:111:f403:2413::62f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f85849c4-21d2-11f0-9ffb-bf95429c2676;
 Fri, 25 Apr 2025 14:44:05 +0200 (CEST)
Received: from SJ0PR13CA0027.namprd13.prod.outlook.com (2603:10b6:a03:2c0::32)
 by SJ1PR12MB6195.namprd12.prod.outlook.com (2603:10b6:a03:457::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.35; Fri, 25 Apr
 2025 12:43:59 +0000
Received: from SJ5PEPF000001F3.namprd05.prod.outlook.com
 (2603:10b6:a03:2c0:cafe::9e) by SJ0PR13CA0027.outlook.office365.com
 (2603:10b6:a03:2c0::32) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.15 via Frontend Transport; Fri,
 25 Apr 2025 12:43:58 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ5PEPF000001F3.mail.protection.outlook.com (10.167.242.71) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Fri, 25 Apr 2025 12:43:58 +0000
Received: from localhost (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; Fri, 25 Apr
 2025 07:43:56 -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: f85849c4-21d2-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Z20d6EkBUDoNWTvRJY1cTxP0n/5MbquVCJhvLW4xdyYNbNSylVB6B9ER708rJCM7CZNJZJQowGcLPTtUistwUBS+G9DetGq2xG8/aj5ulVvPNIcCn29eno52ELexGfJh6VjgiakP7BwESylvUQQ9VhPKoLXPsSmxXKGXxoa2WO1rxE9vQFfDPp6MfgDyGQHB3MF92NS4atKTL39KTx9dCdmq4b8xMO2skwwDSckxArb53eJdszsyALA8huPt0j4DF4YRIjmt2iJLvROYxc3/+rmC+WZYQrhqQhRc4CR1h3Bay1QRYcw/t/H7KtCzJgBsZ0kJEsSgwz0G4HLk4m6VaQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=NcYmEprzaZs/Q6kbtd2FxUIRyxvkasqXfYSFz94h1RQ=;
 b=U6Tnx6LG6VuhnLngVtX6GPYIZQnsxLOEjvdxUzhMLtCE7S/fEiIZhjMwC8dhcgzY254JQB4v5pVAKHHVwrtFaM5ASiaSfhrZQf1TBLuu64YVd/w8Y+cRYTv+Na0FEeCRnSxvELqbhVOZcAw7RxruthObrGFUZBBtkThAOdLUhwOEVEIDKT7pRWi0ceReDcxb87xIefyUQ+YqIqatQwgbb+ixcgjTFefrdtKWyt2GurJOzq7C5TR4LM3FCJ7YolN30RQs6xQZZ4TmGT7IdEZV9QdjX8yXe4u8wUvUAWSx9ErK0w1xhPFOy5vwXX8/jFhuVZp8/s91EKWN1tyiumtz3Q==
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=NcYmEprzaZs/Q6kbtd2FxUIRyxvkasqXfYSFz94h1RQ=;
 b=nFOJff7oFy0ZcJa/IC8DOGWafgcpxv7jTgOMSFyM7rLzjEmCMKzBYkeU9r9pobtbwmbo5GyWO/sIiM6NLhi6K3GbjVLIcii0TuBhKCKP71gy/Ot/A64iUwO8f44VXhY5t/9GxzIYr5zvg+PPgBbt+D7fc3oAqR6O8f305KpYYHM=
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
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Fri, 25 Apr 2025 13:43:55 +0100
Message-ID: <D9FQ92LKFYB8.1S6OJT81HUCXZ@amd.com>
From: Alejandro Vallejo <agarciav@amd.com>
To: Jason Andryuk <jason.andryuk@amd.com>, <xen-devel@lists.xenproject.org>
CC: "Daniel P. Smith" <dpsmith@apertussolutions.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, "Julien
 Grall" <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH v5 08/12] x86/hyperlaunch: add domain id parsing to
 domain config
X-Mailer: aerc 0.20.1
References: <20250424161027.92942-1-agarciav@amd.com>
 <20250424161027.92942-9-agarciav@amd.com>
 <6a37c1ac-8f5d-4c06-bd74-10d35e0dc1a6@amd.com>
In-Reply-To: <6a37c1ac-8f5d-4c06-bd74-10d35e0dc1a6@amd.com>
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: SJ5PEPF000001F3:EE_|SJ1PR12MB6195:EE_
X-MS-Office365-Filtering-Correlation-Id: d7674bd9-5ac9-4825-e1c7-08dd83f6d907
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?eW1hY0NubXpwZG1JUGZtNk9Ic3VZVjVIUzZweGxJM09yc0c3dFNWMmdLTWlG?=
 =?utf-8?B?eUdySHY2cjRRd0RBcjgyTDk3enJQMXB4bVBqU2g0bEVkSFkxcFJzVU9XZVF5?=
 =?utf-8?B?ZWxDTytLNEFkMlQ3dWRnR1IxOXMyZjNOUWROQzJxUStVdURxN3FpYXRpV0RK?=
 =?utf-8?B?TVd6dXFRZm50b25Gd2k5b0NIa2FsamlTQUhFZ0pWcTd4ZjlscnlEOTk3ejhT?=
 =?utf-8?B?enFmYWtYNHJZc3Q0UENMcXBwMDRqdGVDNDk0bXBmUWpUcmdNaklscjRDQVFy?=
 =?utf-8?B?eExWU2lKdDdTdmF2VkhhVVJzcm1yS2ZvWERkaXhRbTM0QlFqdjRyeDNLb0tX?=
 =?utf-8?B?eVR0b3NrdWFGSmU0RGNnY2hYRFhQY2xvTUZSMFl3c0N6MHVvRHNNL204Q3Q0?=
 =?utf-8?B?aHZVc2dPdXExbGllYzFMZFQyd3hlK2lpNy91Zml3akE5ekNkKzdpWEJFcCs3?=
 =?utf-8?B?SWlVVE10VkFMQTg3em8yS1U4YnlVN0VmUWhuSWd3cytQN2E2M2RrcW5CUnpm?=
 =?utf-8?B?UW95eGp0ajZ0cUJYTjQramlHVzd1NWJmWk5vRU0xeno2aEwxbDlZY05PRWJS?=
 =?utf-8?B?NkZBbGxoWlBJOWlFNHRlY1VYNk43NlFEbk1QRk1lYkdDOGNDSldnV2JKWmxK?=
 =?utf-8?B?MkFwdk1vb0RXaEo3a0d0RUhsZlV5ekM3YzFCcTNpRkFrTXh6WHNzdU8wQjRG?=
 =?utf-8?B?NlVPK2FhQjdEV2djZmk1RzdtU0FreG45WGNmcEFQN1pHcGJZQ2tGOVdPL3Fm?=
 =?utf-8?B?TXh5TUdtM2RuV25XNGR2U2gwd0JXcXRMMGUweVNEaCt5Y21ITnY0YnFGdDFw?=
 =?utf-8?B?ei95N1V2TVVnV0NoTTZCOFY4THJVVDRiUFcyUWtZMlhnNnozMkhTMFFMUXdE?=
 =?utf-8?B?TERzekg2TDV1ajhjM2JKV1hoZmVrYzUxdEY1cWFwWGtTTFZpazVGU0FyNzZC?=
 =?utf-8?B?TkI5UUI0R1BLVzZzeUJjNVhwL081dWtSb2FwUkpDRkZRUzNPMjQ4T1dqcm1I?=
 =?utf-8?B?Q3ZTT1l1c241ZE44czZpSFR0OHBhQlJyek9XejY4d1B2KzBpTVV6UFd3RXBW?=
 =?utf-8?B?eHJTbTFTMTdZU0llZDQwMS94RnNXVCsrcmkwUmN0eXpmdkcyTDZLbjgvWUdy?=
 =?utf-8?B?QmFpWkJCUkRpZWtEeTYzdGpjRFYrMTJ5bVNHdXFvRFJTaE10NDEzRDJvWGV3?=
 =?utf-8?B?TWtHeExqZWdxSGtJTjJrTmdzdjFJbGc5VndtdWZpelVEKzRvazRNVm9oaWYy?=
 =?utf-8?B?ZFNudFprTUFFSk84S0RLQW1EMEtaSTBPeURQcG1PVXZiZGJyMkFQTFJxNGtJ?=
 =?utf-8?B?cDJsUmZ5ZFQ2UkhsUjIrUUE3S2xBTmNNUFVwbjc0RllqSXhqVDhsNUk1Y2Q0?=
 =?utf-8?B?Uk1ickt0NFdFTXRHVHd5bDQrckJHWnVHWDBCTGpYRWZiZW91Y0RMTWR6eWpr?=
 =?utf-8?B?bllSZjJOM3NsUUx1TldUVmJudHV0Y0FrK1FMVTVlRjNBZ2loZjRHK2UyZENm?=
 =?utf-8?B?VzdkSGdNODRtd05Lclk0eFE2Y3BwTTRyN0pOZHF5S2VjR1VsMGswaDVRN3ZO?=
 =?utf-8?B?bGNKZjFQRS9KNjV1U0l2eWM1OENUUlVSZzViRmorNEQ1TjIvL2M5dzhXeHMz?=
 =?utf-8?B?emYzbUdKeGxkTCtRWjFEVjdpczFPUnJjaXRNK3ZZTElkLzgyaDZsamJEdnY3?=
 =?utf-8?B?RjAwTDdyRnVDRkt3QTdUbWgzWXJpN0ZUd3VIUzVLdnZjbmtoZjlIVWw2eHl6?=
 =?utf-8?B?UVJXNTJyS0dmZGFnMmwyWjZOSnJoZ3BvSXkrNDYvQWRmQ3l5Wlk4WW1VN21j?=
 =?utf-8?B?Zll3S252Q2RJdjZPUUlUZUhZMkJJRzNOTFFJM1M4MWRVN2NuaHZQWi9jd2lz?=
 =?utf-8?B?bFFibzZWVDdLaG1EU1FjUHM4UUlNbXhTWVJ6cSsxUFNrd0FYdHorTnhTYUpG?=
 =?utf-8?B?cFUrRlYrZ2xXSGhWOEwvSzBEN1c3d0t1N2pZbXBiWHN5NkYvNzhrZUh2aDZB?=
 =?utf-8?B?ZFJlNmFURGJIQS84M0pQdWNWRDNHUnhxK0VmOHZQU0wvajQyN3Z0c1BNVE1t?=
 =?utf-8?Q?aZVT5v?=
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: 25 Apr 2025 12:43:58.1438
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: d7674bd9-5ac9-4825-e1c7-08dd83f6d907
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:
	SJ5PEPF000001F3.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ1PR12MB6195

On Thu Apr 24, 2025 at 6:41 PM BST, Jason Andryuk wrote:
> On 2025-04-24 12:10, Alejandro Vallejo wrote:
>> From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
>>=20
>> 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.
>>=20
>> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
>> Signed-off-by: Alejandro Vallejo <agarciav@amd.com>
>> ---
>
>> diff --git a/xen/common/domain-builder/fdt.c b/xen/common/domain-builder=
/fdt.c
>> index 144fcc75b5..5a5b3c8806 100644
>> --- a/xen/common/domain-builder/fdt.c
>> +++ b/xen/common/domain-builder/fdt.c
>
>> @@ -188,12 +189,54 @@ static int __init fdt_read_multiboot_module(const =
void *fdt, int node,
>>   static int __init process_domain_node(
>>       struct boot_info *bi, const void *fdt, int dom_node)
>>   {
>> -    int node;
>> +    int node, property;
>>       struct boot_domain *bd =3D &bi->domains[bi->nr_domains];
>>       const char *name =3D fdt_get_name(fdt, dom_node, NULL) ?: "unknown=
";
>>       int address_cells =3D fdt_address_cells(fdt, dom_node);
>>       int size_cells =3D fdt_size_cells(fdt, dom_node);
>>  =20
>> +    fdt_for_each_property_offset(property, fdt, dom_node)
>> +    {
>> +        const struct fdt_property *prop;
>> +        const char *prop_name;
>> +        int name_len, rc;
>> +
>> +        prop =3D fdt_get_property_by_offset(fdt, property, NULL);
>> +        if ( !prop )
>> +            continue; /* silently skip */
>> +
>> +        prop_name =3D fdt_get_string(fdt, fdt32_to_cpu(prop->nameoff), =
&name_len);
>> +
>
> Stray blank line.
>
>> +        if ( !strncmp(prop_name, "domid", name_len) )
>> +        {
>> +            uint32_t val =3D DOMID_INVALID;
>> +
>> +            if ( (rc =3D fdt_prop_as_u32(prop, &val)) )
>> +            {
>> +                printk(XENLOG_ERR
>> +                       "  failed processing domain id for domain %s\n",=
 name);
>> +                return rc;
>> +            }
>
> Maybe add a blank line here?
>
>> +            if ( val >=3D DOMID_FIRST_RESERVED )
>> +            {
>> +                printk(XENLOG_ERR "  invalid domain id for domain %s\n"=
, name);
>> +                return -EINVAL;
>> +            }
>> +
>
>> @@ -258,6 +301,13 @@ static int __init process_domain_node(
>>           return -ENODATA;
>>       }
>>  =20
>> +    if ( bd->domid =3D=3D DOMID_INVALID )
>> +        bd->domid =3D get_initial_domain_id();
>> +    else if ( bd->domid !=3D get_initial_domain_id() )
>> +        printk(XENLOG_WARNING
>> +               "warning: unsupported boot. d%d is not the initial domai=
n.\n",
>
> Maybe:
> "warning: d%u is not the expected initial domid (%u)\n" ?
>
> It's a strange message.  The domid property is added, but it's not=20
> expected to actually be used?

It's just a transient message until multidomain boot is added in a later
series. It's merely informative that you're booting something you
probably didn't mean to. Or didn't mean to on this hypervisor.

>
> With the newlines addressed (and optionally the message change):

I'm happy to make those adjustments.

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

Thanks

>
> Thanks,
> Jason

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Fri Apr 25 12:44:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 12:44:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.967914.1357642 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8IPj-0007Nx-Hu; Fri, 25 Apr 2025 12:44:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 967914.1357642; Fri, 25 Apr 2025 12: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 1u8IPj-0007Nn-Ej; Fri, 25 Apr 2025 12:44:19 +0000
Received: by outflank-mailman (input) for mailman id 967914;
 Fri, 25 Apr 2025 12:44: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=6c45=XL=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u8IPh-00075e-Fv
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 12:44:17 +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 ff1192f8-21d2-11f0-9ffb-bf95429c2676;
 Fri, 25 Apr 2025 14:44:15 +0200 (CEST)
Received: by mail-wr1-x42a.google.com with SMTP id
 ffacd0b85a97d-3912d2c89ecso1794646f8f.2
 for <xen-devel@lists.xenproject.org>; Fri, 25 Apr 2025 05:44:15 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3a073ca4e50sm2348074f8f.30.2025.04.25.05.44.14
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 25 Apr 2025 05:44: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: ff1192f8-21d2-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745585055; x=1746189855; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=sZ1LX1Uz1/vv6dOnKMPjNjS1ZIYpjhnxZcWK4Do+Ey8=;
        b=wGQZui16S5KHIS9UfCcNL+DYZWTP3y3Zy5oyl0b00J3yxVyxfymQ3AkwcNeeKiSv/e
         C+w7K/jLLd7D0KHprMxQ2fHd8n6hUcE/Blv7IIGm160ofAPwYD0RqmaRYBkZxmho/4pE
         WSllQtTtBt7PQb6okRR4ueij9lq74oSV14oKc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745585055; x=1746189855;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=sZ1LX1Uz1/vv6dOnKMPjNjS1ZIYpjhnxZcWK4Do+Ey8=;
        b=Pp471NKsoAohHJtbCPuEGmF0se/jxmFssS63OXTAL66v4IJdKYxvEcosNaXYbdyM9P
         YBdqKHvRvoJqlvEHTPpsAroKMMv8RsNgSAtN68/fsGlodk9vWwOTEBU5Q8Dno0HEz5+S
         nQvJEQin7i2it6UT1OSn9Gt6T77W+evo00j3rzwvvRTmHvO1kyTdzdylNTcXyK7Pr2ZZ
         Kq8ajkj0igdmzdDlgYj4UbGCJ8vKqvtPrb39D74SuJp7TW0aZnAeMNVtxvkAYsJs7PnU
         jSaF5wtIcYgBSZGoFJyLI7LU5nXzVm6UxPxHP/32hmYyPAZlicEIugiE3a65jCF1dlX1
         TW8A==
X-Forwarded-Encrypted: i=1; AJvYcCXdPecocJh4pIkXPNDwyDqtJNmeHFDS9HLYSIZ29eTSA4LxhgBbmdB/RO7Q5EhOKaUvKzoxA2wekxE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzuhHvEl0RU22dLRZooNuo7DNPJkB/vehdM+CXvCLOOnVKbhbFw
	9JUE1Fw5PkXWrGvqY8cnrCZ9bpTzwW49MAExySL+tG4Pu1z5xqYgWdQhk+AELGk=
X-Gm-Gg: ASbGnctQWDxYHyjx9SFIXs9qvvr4JqfFVP9arqWU/owqeujmbTVQb0WfA+GU25UJB8t
	lTipdJZNWfxm5lVt1Ee8TwTNwvLIZm2shXix78i4++c+JsfiYenw4x4JwwEGwXaXfLO+kMlwR8k
	qdjskbXiDwA6likDWXj09GtrBTfmzHuxSJ0pr66FwxiKOU1PVHYvblfh8ZHZoAg6cKYeN68QPUC
	WCcD9lF+/CypX8bXbSrsJPuA+r90fspTH23pGYmqYumFEhQq0snGvHdC36BbbR3+kmeref3Z4aY
	zJmjN3o/sxUUZm6IBQAS4ChwMevQ8Yh3A927vxS5AqsFGf9H2LE/vQkOkJfPrOO4GxTW/Vb+QiV
	qSSz23g==
X-Google-Smtp-Source: AGHT+IHappLsMjsAckrUhRn8/32g0D7TV+gQSaXslFSN5wDoc8ugy+smlmgGnBvLm/LD8vvmi5TEJQ==
X-Received: by 2002:a05:6000:186c:b0:399:737f:4e02 with SMTP id ffacd0b85a97d-3a074f2ee55mr1640895f8f.39.1745585055094;
        Fri, 25 Apr 2025 05:44:15 -0700 (PDT)
Message-ID: <f001a675-cb08-450c-99f4-c717d68e2b33@citrix.com>
Date: Fri, 25 Apr 2025 13:44:13 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] x86/intel: workaround several MONITOR/MWAIT errata
To: Alejandro Vallejo <agarciav@amd.com>,
 Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>,
 Frediano Ziglio <frediano.ziglio@cloud.com>
References: <20250423113215.80755-1-roger.pau@citrix.com>
 <D9FQ3JVWGOSR.1F6NIIEDCUP16@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: <D9FQ3JVWGOSR.1F6NIIEDCUP16@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 25/04/2025 1:36 pm, Alejandro Vallejo wrote:
> On Wed Apr 23, 2025 at 12:32 PM BST, Roger Pau Monne wrote:
>> There are several errata on Intel regarding the usage of the MONITOR/MWAIT
>> instructions, all having in common that stores to the monitored region
>> might not wake up the CPU.
>>
>> Fix them by forcing the sending of an IPI for the affected models.
>>
>> The Ice Lake issue has been reproduced internally on XenServer hardware,
>> and the fix does seem to prevent it.  The symptom was APs getting stuck in
>> the idle loop immediately after bring up, which in turn prevented the BSP
>> from making progress.
> Ugh... so this is what it was... Awesome having this madness fixed.
>
> Do you happen to know if Linux has a similar fix in place?

https://lore.kernel.org/lkml/20250421192205.7CC1A7D9@davehans-spike.ostc.intel.com/T/#u

>
>> This would happen before the watchdog was initialized, and hence the
>> whole system would get stuck.
> That's nasty. It was the misassumption that the watchdog was already
> running that had me going in circles thinking it was a lockup rather
> than a livelock. Oh, well.
>
> I believe the kudos for finally being able to reproduce this goes to
> Frediano?

Of course.

The bit about the watchdog is a little bit of a red herring.  The
rcu_barrier() loop processes softirqs, so the watchdog wouldn't have
fired even it had been set up.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Apr 25 12:44:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 12:44:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.967934.1357652 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8IQK-00088n-Q4; Fri, 25 Apr 2025 12:44:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 967934.1357652; Fri, 25 Apr 2025 12:44:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8IQK-00088g-Ml; Fri, 25 Apr 2025 12:44:56 +0000
Received: by outflank-mailman (input) for mailman id 967934;
 Fri, 25 Apr 2025 12:44:55 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=AYju=XL=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u8IQJ-00075e-Fn
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 12:44:55 +0000
Received: from mail-pj1-x1031.google.com (mail-pj1-x1031.google.com
 [2607:f8b0:4864:20::1031])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 153778b2-21d3-11f0-9ffb-bf95429c2676;
 Fri, 25 Apr 2025 14:44:53 +0200 (CEST)
Received: by mail-pj1-x1031.google.com with SMTP id
 98e67ed59e1d1-3035858c687so1781737a91.2
 for <xen-devel@lists.xenproject.org>; Fri, 25 Apr 2025 05:44:53 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 98e67ed59e1d1-309f7737c88sm1504684a91.1.2025.04.25.05.44.50
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 25 Apr 2025 05:44: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: 153778b2-21d3-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745585092; x=1746189892; 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=pKWuJdgdwuiXZUdy2uBWJ1xIknZ6V8yS60jvADUJi5c=;
        b=YSvLUvH242/xacXx2s2prLc2C+Pz5vm/T8E0jgzJuQrPHpbbJ4iOG6bT4/ez9pKI3B
         KCi/0WbkmAHQsfMjmTQmHY9Ij38/1wbnRITRJIqrTX6wQMHOH5DFpziPS8bESxud9InA
         S6WIZ70IYp804E15r9nMcVGvcbLCj4PpVx/pw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745585092; x=1746189892;
        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=pKWuJdgdwuiXZUdy2uBWJ1xIknZ6V8yS60jvADUJi5c=;
        b=KtgkcrouK304SVD5KigP+yZ4BBONuSAPuhxyxOOSNFdB2FZmGjV8CHuBZlM8wo8Tiu
         vlQEbmedPAiRIlQ+FQJYDVHsTC5bJAtlJwObGHo7xwvEkv6p97inOwMaXECgJqRBL48B
         /Uf8ZRKZiY5o0AwoyuFxW1u5OEgekxEAPuld35yWxpTg8AowbcrHuhWns2ZqhiQg+uZa
         LkmJfdzqr0LvbOa3Qc7pB3tEu1zAgIWKYS/eY/+JVFgBjnvACjkU6OE4e+kWjXx/j9hA
         HQ/Icnmu+7mJwxIFdyCYjBnNh7nY4xxo5JzETq8BPZYb/wox4SEQbwuy4CQVoulpIvL8
         Dd8g==
X-Gm-Message-State: AOJu0YyxcVRD7LDEmrFRPuChluT8P1uYXer2mZERXZMK69hx268h824m
	ZrrIXSLyt86xAg5RxNT5FOqnksUVCV7iYZuP8MfsosSewTvBg9GhPyOL2rDpkZg=
X-Gm-Gg: ASbGnctu/UG+qReX789fyd8SbvRRytyB9oLlGHuBNnpSuc10vaybIRndO52GHjh6ane
	IwxzLrgQl7lOQpvOWDQ1F9DFCvRlBxTwxOqm/M2Avfws9hfEuku1kdKEfzb3+DT+hdJgGGR6iIV
	946tA6IoCdWJjy0rKNIIs7m3OZCOZkLTBmb/OpaOMfdXgxPuGIq+Opa935QrdeNf3dUXlTrFjwy
	9tza/v6DwdES1+i6FkbwvasgM9NbdD2mWosqdcbFOAktjO19dd0p2t7W+ooisEDGMWo7as10MUM
	fgwpUDsaw2oLh+5UguusJG137ncCFdtTPOJxnShWWXfHZJhwLvVHwCXD
X-Google-Smtp-Source: AGHT+IF0dgjG9q0Tlityx9nrYaZWOc4MNNmsyttuagE9pv4jpXjrSmjXfXk4eKUd9HMRW8XI69/cHw==
X-Received: by 2002:a17:90b:5246:b0:2fe:e0a9:49d4 with SMTP id 98e67ed59e1d1-309f7d876a2mr3858665a91.2.1745585091947;
        Fri, 25 Apr 2025 05:44:51 -0700 (PDT)
Date: Fri, 25 Apr 2025 14:44:46 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Alejandro Vallejo <agarciav@amd.com>
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Xen-devel <xen-devel-bounces@lists.xenproject.org>
Subject: Re: [PATCH] x86/hvmloader: fix usage of NULL with cpuid_count()
Message-ID: <aAuDvqxihXBI9u2k@macbook.lan>
References: <20250424125813.96449-1-roger.pau@citrix.com>
 <D9FPTG9VXGV2.3OT1N6UFNG2WI@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <D9FPTG9VXGV2.3OT1N6UFNG2WI@amd.com>

On Fri, Apr 25, 2025 at 01:23:30PM +0100, Alejandro Vallejo wrote:
> On Thu Apr 24, 2025 at 1:58 PM BST, Roger Pau Monne wrote:
> > The commit that added support for retrieving the APIC IDs from the APs
> > introduced several usages of cpuid() with NULL parameters, which is not
> > handled by the underlying implementation.  For GCC I expect this results in
> > writes to the physical address at 0, however for Clang the generated code
> > in smp.o is:
> >
> > tools/firmware/hvmloader/smp.o: file format elf32-i386
> >
> > Disassembly of section .text:
> >
> > 00000000 <smp_initialise>:
> >        0: 55                            pushl   %ebp
> >        1: 89 e5                         movl    %esp, %ebp
> >        3: 53                            pushl   %ebx
> >        4: 31 c0                         xorl    %eax, %eax
> >        6: 31 c9                         xorl    %ecx, %ecx
> >        8: 0f a2                         cpuid
> >
> > Showing the usage of a NULL pointer results in undefined behavior, and
> > clang refusing to generate further code after it.
> >
> > Fix by using a temporary variable in cpuid_count() in place for any NULL
> > parameter.
> >
> > Fixes: 9ad0db58c7e2 ('tools/hvmloader: Retrieve APIC IDs from the APs themselves')
> > Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> 
> Ugh, that's on me. I was sure I saw the pattern in Xen (from where the
> code came from), but clearly I hallucinated.
> 
> > ---
> > Could also be fixed by using the temporary variable in the call sites,
> > however that's more code in the call sites at the expense of less checking.
> > I don't think the extra NULL check logic in cpuid_count() is that bad.
> >
> > Overall the solution proposed in this patch is safer going forward, as it
> > prevent issues like this from being introduced in the first place.
> 
> Might be worth moving this same extra checks onto Xen's cpuid. There's
> no shortage of `junk` variables at the callsites.
> 
> > ---
> >  tools/firmware/hvmloader/util.h | 11 +++++++++++
> >  1 file changed, 11 insertions(+)
> >
> > diff --git a/tools/firmware/hvmloader/util.h b/tools/firmware/hvmloader/util.h
> > index 644450c51ceb..765a013ddd9e 100644
> > --- a/tools/firmware/hvmloader/util.h
> > +++ b/tools/firmware/hvmloader/util.h
> > @@ -190,6 +190,17 @@ static inline void cpuid_count(
> >      uint32_t *ecx,
> >      uint32_t *edx)
> >  {
> > +    uint32_t tmp;
> > +
> > +    if ( !eax )
> > +        eax = &tmp;
> > +    if ( !ebx )
> > +        ebx = &tmp;
> > +    if ( !ecx )
> > +        ecx = &tmp;
> > +    if ( !edx )
> > +        edx = &tmp;
> > +
> 
> A somewhat more compact alternative that doesn't require tmp would be:
> 
>   eax = eax ?: &leaf;
>   ebx = ebx ?: &leaf;
>   ecx = ecx ?: &leaf;
>   edx = edx ?: &leaf;

But that performs the write unconditionally?  It might be more compact
code-wise, but might incur in an unneeded store?

> It clobbers `leaf`, but only after it's no longer relevant.

My preference was to use a explicitly tmp variable, but I could switch
to using leaf if that's the preference.  Given that Andrew has already
Acked the current version I'm tempted to just go with what has already
been Acked.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri Apr 25 12:48:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 12:48:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.967946.1357663 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8ITc-0000KR-7U; Fri, 25 Apr 2025 12:48:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 967946.1357663; Fri, 25 Apr 2025 12:48: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 1u8ITc-0000KK-4n; Fri, 25 Apr 2025 12:48:20 +0000
Received: by outflank-mailman (input) for mailman id 967946;
 Fri, 25 Apr 2025 12:48: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=ZJ1s=XL=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u8ITa-0000KC-Qm
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 12:48:18 +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 8ed304bf-21d3-11f0-9ffb-bf95429c2676;
 Fri, 25 Apr 2025 14:48:16 +0200 (CEST)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-43d07ca6a80so9583965e9.1
 for <xen-devel@lists.xenproject.org>; Fri, 25 Apr 2025 05:48:16 -0700 (PDT)
Received: from [10.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-3a073e5cffasm2279286f8f.96.2025.04.25.05.48.15
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 25 Apr 2025 05:48: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: 8ed304bf-21d3-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745585296; x=1746190096; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=IFJsEFyMY4lr5rGy2zN5KfdVgZbEMiUuALH+7SWEOAQ=;
        b=COPpQe519N0dgPkKimnRLcIECmXBUtOyFyMHHuBbZye0/e5VsRodrUXV/xYw1bM9hL
         rO4WEx6FW/xNEAupqIk4HJ//pLVsghjdDRkFCv3dQsuqBGMSK3XnE1OTrhQYoEq4NOC5
         N2D7OdGgqvJ+9kQMOMcnOu9X27KBGPu5rnH1qewJgmF37oiT+OYE+TY1xwEbiShh1yfl
         ugORwypBDn/u7YM8e1g7v4fo0nQzPutpDyEmPlLbFLb59r6DN8oI20AV93QLeyiywxdu
         2WxP9LLNuTEqxQq0M42AA4pqzCfq32hXQ4tzPOVzrQQ49kAtt07/xmE1bcAi2WK8D9Ps
         h6Fg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745585296; x=1746190096;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=IFJsEFyMY4lr5rGy2zN5KfdVgZbEMiUuALH+7SWEOAQ=;
        b=xM21PBr1L3bwHXEc+YEGGAS7QVUigbOXg5O+2lGj42KDiRP/RBtuCPZo6I8rQr7+MR
         wN5RicsMYbkoYSG1a51qrNcAAk7LoYK0zuetWtqZtTWRCKIv0aGRAjLKFPP3AEbauKxK
         TxLBo2yywlPmOyFyXuYiaCxEiBigWp50pr0rNUIQ10TbgBmq6i+KDmzU4YWrH0iS9qkX
         /mPJjcwA97UBF2R8YeGnEq/K2UE5AAsKZogRnjacXksSVMLFysykoq016f0oldJaLh45
         yye6CML2Kb4WtAr+exViFUeWbxaMFgbxjIBECWk2Uxyr4FArkiG6oDw5WliU+of+Bs65
         A81Q==
X-Forwarded-Encrypted: i=1; AJvYcCUdXiZBcoofjZJZOAzjgqDZJrHeHLjaqkQjA1yt3r+rkzL8yHmXRCx1cBFN+laNCt6ij7bXlNBjnk4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzhvvpHsfA+iOuBGv6jfMO0gmugFT2Bm33dr0Gyxko9SEeSUh7B
	RYsgktTL6AFbf6fmdE37iM43zxd2KAZ1hzn6aswLLa2SxtprK7P7Xa4mVlWKqA==
X-Gm-Gg: ASbGncsKo0CsGIn0CuFGX9yDit/sn9ZZaiN4beaba5x5XG4pBWeYqTvzPR+wIeqr6iZ
	Cr4ZQEdjmRQBAmGGZYrz4c+QWQLM7FYXoa9AikdnYpza9nipWTRzcVaZ6i9RX0+xQzjag5lwTYk
	+qFeA1hKU7TJs8Y7vDoq8Lz/xT0wzPrhjG21cUef/BJ6FYt3B0e4TYhYv9iGg1Rnr+yz0WpRKEh
	3FYQZWupheBO12DwatMCaQJuzGpDMIuo7GtoX5gB8vE/grc+IjqFlINlr7XZjfmcRPcLRjCf9Pj
	gD96MGtpvNDN9lMoqimm3OlO/vsuDZy/GC99i0nPT1r/tBQL6wRFzZr9jpYpvNttpaseEylaQoN
	n3oSvSCiydFESdB9L5zKx5d6Rag==
X-Google-Smtp-Source: AGHT+IF+xy2Lyv4v4sCbFfpnctAcZrSPjA+tQlpvinX38olUd1p+A62Ty1UjxY+Pg8ed2RXmP3DBuQ==
X-Received: by 2002:a05:6000:2409:b0:391:253b:4046 with SMTP id ffacd0b85a97d-3a074e1f465mr1936735f8f.16.1745585296389;
        Fri, 25 Apr 2025 05:48:16 -0700 (PDT)
Message-ID: <e5c6b448-945c-4c93-a3d6-e6e598102c2b@suse.com>
Date: Fri, 25 Apr 2025 14:48:15 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 1/3] xen/mm: Introduce mm-types.h
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Shawn Anastasio <sanastasio@raptorengineering.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250425112415.245585-1-andrew.cooper3@citrix.com>
 <20250425112415.245585-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: <20250425112415.245585-2-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 25.04.2025 13:24, Andrew Cooper wrote:
> The type used for pagetable attributes/permissions is currently unsigned int,
> but needs to become architecture dependent as PPC needs unsigned long.
> 
> Introduce mm-types.h to house pte_attr_t.
> 
> Given the new toolchain baseline, we can use __has_include() now to remove the
> need for boilerplate on most architectures.

That's true now, when it's just pte_attr_t that's there. Memory management,
however, is pretty different between architectures, so I wonder if in the
longer run any one will remain that actually can use the common header.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Apr 25 12:49:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 12:49:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.967954.1357673 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8IUQ-0000oV-GB; Fri, 25 Apr 2025 12:49:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 967954.1357673; Fri, 25 Apr 2025 12: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 1u8IUQ-0000oO-D1; Fri, 25 Apr 2025 12:49:10 +0000
Received: by outflank-mailman (input) for mailman id 967954;
 Fri, 25 Apr 2025 12: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=6c45=XL=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u8IUP-0000oG-IP
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 12:49:09 +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 ad16b48a-21d3-11f0-9ffb-bf95429c2676;
 Fri, 25 Apr 2025 14:49:07 +0200 (CEST)
Received: by mail-wr1-x436.google.com with SMTP id
 ffacd0b85a97d-39d83782ef6so2364201f8f.0
 for <xen-devel@lists.xenproject.org>; Fri, 25 Apr 2025 05:49:07 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3a073c8cab5sm2334028f8f.10.2025.04.25.05.49.06
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 25 Apr 2025 05:49: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: ad16b48a-21d3-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745585347; x=1746190147; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=goEFQm6UUepN+Hlb8LvhjG4jRriwiif1mEOmVObzBlY=;
        b=Mse2ZrcJIokFody3KNVPq/cd2H5inYQtkYstgR45EAZflxhpxIKH0tOBR0fNMUp8X7
         OEfvOmjBN2yZyqrs6ODwp6TryeIEMbKAXMh5HJDpy7NBBDQe/vMcElQ6ZD2kEIdY4iXc
         6l7z/O97FbjGsHxe8a/0kgZrRkdMQq36mQ4Aw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745585347; x=1746190147;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=goEFQm6UUepN+Hlb8LvhjG4jRriwiif1mEOmVObzBlY=;
        b=UdZH8Lr0TyUkg9uC36sdsqi9bZAo3PI/Kas2B0+ZqrUoj4gSKcOhhFgXNBqgS94pIS
         KbZvFL5Z/Ar3zKuGh6ni/7Z/bqyxvZ+rmOHmNV1LCJHZfCH3gka6lpGYy1QwWrFgXMRv
         mknWMzrc7ezqiwc2S/cfFLvJ+Gvp9Sd9ZMoQM9+b8NGZzeV933tdjWXAXQ2BY5sS8ky9
         ORcxxJspfPXs9//CNKobPTyS6nzmFFwtLqJDWMJ5e/DI5Z1Dj4QqxdCQjj8bmRTHzkQO
         TFAYiduzjQ5J6WCbFYsndCalJUL2MVpbtlsIzjXDHBt1cuA7SDAVIiOU8kWRaMNGvQsN
         vprw==
X-Forwarded-Encrypted: i=1; AJvYcCXumdKk43Oh5aqQn/Sys2W/rfVYv9giYgfmtsfd7D2IvRmGadTMuErX8oGMNFcQccW1eSqxJFG63ko=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx+lhJlgXCxnb0PsFrykgqHGcwIYWxQM9hE/hE1r6+cqSbTxYr+
	OyE/9ky2+wyjhcyu7cNWILk9/nyqlqQIGgaDS21V7OjorFBt3NSLifNP0WDbtH0=
X-Gm-Gg: ASbGnctKwU/ft5shjmJ+4zhBUrrIT70mnXg24UIv5MFasiXbyq3ssbUIHkF9rDu0loQ
	zr3XfJUvuHy9MFdLSU8YgarQgHskX9uvOKm4ZLT1teLgbbJRfQ+I/nM9obCAFYXWvX4od39lcJM
	Mm+yGFnij1wj+nvZ4UBG4NrSTH8/5x8OL3g70WHOiwQ7p55tYTDZPaSs72aF2QpB04LeNxWp4wK
	Ob/fBJZ5SbrdUTbJavEeqI+7qoxS1jmhaEFwAlc0p/dof3lVanPJ5BkQ06qSDqVAM/IBfYpuVR0
	KxTmiMh3WQS9eMqUDCm2fZVR8/vT5hdHIHj4AoI0TC5ujqWqtNG5f7hX7pnhLrb9d0y0MYXDyhj
	pADh5n3c04HsQnVYV
X-Google-Smtp-Source: AGHT+IEwn/QA63mX9XmMzn+ztIlQR2m8zJSJJ7pl0zNtaK+nBzX4M4q7WMg0721gIZNqHxN0elI8Sg==
X-Received: by 2002:a05:6000:1a8e:b0:39c:30f7:b6ad with SMTP id ffacd0b85a97d-3a074d46321mr1893853f8f.18.1745585347081;
        Fri, 25 Apr 2025 05:49:07 -0700 (PDT)
Message-ID: <027a1f67-7de1-4f48-9de6-c79f6f09c92a@citrix.com>
Date: Fri, 25 Apr 2025 13:49:05 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 1/3] xen/mm: Introduce mm-types.h
To: Jan Beulich <jbeulich@suse.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.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>, Julien Grall <julien@xen.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Shawn Anastasio <sanastasio@raptorengineering.com>
References: <20250425112415.245585-1-andrew.cooper3@citrix.com>
 <20250425112415.245585-2-andrew.cooper3@citrix.com>
 <b2883538-8cea-4fde-b42b-55455fa810ca@gmail.com>
 <f278eec0-2627-4598-bcdd-ee2bed4b71a3@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: <f278eec0-2627-4598-bcdd-ee2bed4b71a3@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 25/04/2025 1:45 pm, Jan Beulich wrote:
> On 25.04.2025 13:29, Oleksii Kurochko wrote:
>> On 4/25/25 1:24 PM, Andrew Cooper wrote:
>>> The type used for pagetable attributes/permissions is currently unsigned int,
>>> but needs to become architecture dependent as PPC needs unsigned long.
>> Not only PPC, RISC-V needs it too.
>>
>>> Introduce mm-types.h to house pte_attr_t.
>> Do we really want a separate mm-types.h?
> I think so, yes. It'll (hopefully) allow to avoid including xen/mm.h in a few
> places, in the longer run.

Yes, that's the intention.  We need to use this pattern here and
elsewhere (especially sched.h) to avoid having most TUs pull in most of
the world.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Apr 25 12:50:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 12:50:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.967968.1357683 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8IVq-0002Pn-S8; Fri, 25 Apr 2025 12:50:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 967968.1357683; Fri, 25 Apr 2025 12:50: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 1u8IVq-0002Pg-PC; Fri, 25 Apr 2025 12:50:38 +0000
Received: by outflank-mailman (input) for mailman id 967968;
 Fri, 25 Apr 2025 12: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=ZJ1s=XL=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u8IQp-00075e-NR
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 12:45:27 +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 28d7fb3c-21d3-11f0-9ffb-bf95429c2676;
 Fri, 25 Apr 2025 14:45:25 +0200 (CEST)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-43edecbfb94so20737655e9.1
 for <xen-devel@lists.xenproject.org>; Fri, 25 Apr 2025 05:45:25 -0700 (PDT)
Received: from [10.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-3a073e46869sm2264657f8f.72.2025.04.25.05.45.24
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 25 Apr 2025 05:45: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: 28d7fb3c-21d3-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745585125; x=1746189925; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=AMZ6tvhAj+0ImqwVAWsI1V/AEI5FFCfECVf92tFjQHE=;
        b=E7ByUjll/T9b2/IyTItRIfJD0oZMdVYbEHNNK5BMmM7OlQys1YjN4WiQihtO57ZNfH
         iG41MMSYy/tQzyOiUxwql78herZXTCD0sjbEeU7B7z0M0+XhhLDBAEYwzaj6Z5LsCpzN
         AwbOYpxu8KRMweOItcq9DcmL4ClTWZ2Z0XtxsNpgwsMdqP0c+dp4OAQBAOlWZjzxzsxj
         Q0V6ExHnC4/+nYVfAXgI+qLxRvz4xt2M8NXapE+qGnQmeERnGRqHirtPCY0bDhHQRkYC
         cigWiRtclcU4Q2pCAiEICW+2xgUosX5dKPG5K+zSe6TM+JAAoffJh2+2d0X83eh1hibF
         0IMQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745585125; x=1746189925;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=AMZ6tvhAj+0ImqwVAWsI1V/AEI5FFCfECVf92tFjQHE=;
        b=l55XL59FAokDCRtzVew7tzouz5u/RIYcjWCLFV7V/p+2Eirt9QzDq5NQIabt7nY9Jm
         WPmhWD93+ibQniXx5bMmAJPpijLbAl/wU4khEc9cdcnpMjGJyBNlxzr8jGxfX07dncGw
         rMvCu4Efz8KyLUD2HE0U8UBhRMwuhmLVlsL6Vk1smBUQEVDhD+KuAhuFUL1ncf1se8q9
         pWtpFXkBqo7qIDg8CRGLygqNV3GllI1lZlZpB9yYsLPivsuDbNE8R34ZXWt2GcufroRa
         vkHrr5iq2ZDmc5+cOnHA9LKZFH3kyfVtWZPOwOXT23o2HxfDJ712ZAQij2CpLlqXiL3G
         J/Ww==
X-Forwarded-Encrypted: i=1; AJvYcCW/AvMqUUbEZv7z0aGqdtKnpZ7xd8ZZgxrPByFzBpNuNwT9MdnA39qDe3Jy780XC/AWo9xikLaMGrU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzjN13oTBhxC3zHaFcqEhqty69ukg2vElbTGq3jD0d/t04vjtEI
	rC8mDsl8YFpTczua+4IQN1GTQcaUcIXetTFGTZVLzqCPpy1PYZye9hKhtrzazA==
X-Gm-Gg: ASbGncsbUUDbD3ndrFHtfrbodxAiCh44Sd66wPSG5AneRF0hHRpAskYMp0ZWUbyPsGg
	OialjPPJgbrH8jpFDraCM4R4ZKAfPuUiw/kJn1c8EAxNIjv/prhvW9FDpPKnliM9FzzMg4Ethd0
	MwCTNZJpTzKkdTMoqqgrMHchB9pWjz15bm+g2vG57nAO2JBvnpigFu0Zo7uf1UGx3R807iumjfi
	fFwKAsQXBHqXu/3V4bu/OYuKBh3pBnRcsX18oI2MwJyNWs/EtOV+ocpq9NCkJsmpMb/uCFXI/Tj
	jdCz2cKhXdOdW6Op5jiEdepzMI7yffSv9M6J1VqmzcwJciVLEJsnZuD3Oo/DybjEMVGeC+ihWoq
	uEbLlH6At7vBNm3gy9IjhQNnM4kR5N3LaK72Y
X-Google-Smtp-Source: AGHT+IEV5UEXkgcjRjeSBSy17KiMifU6kh+kuqHUMRSsPBH/uCDCqR9ljhOzQw4OiMhm5u0BLT6bcQ==
X-Received: by 2002:a05:600c:3d17:b0:43c:f513:9585 with SMTP id 5b1f17b1804b1-440a65ec991mr21395355e9.13.1745585125229;
        Fri, 25 Apr 2025 05:45:25 -0700 (PDT)
Message-ID: <f278eec0-2627-4598-bcdd-ee2bed4b71a3@suse.com>
Date: Fri, 25 Apr 2025 14:45:23 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 1/3] xen/mm: Introduce mm-types.h
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.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>, Julien Grall <julien@xen.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Shawn Anastasio <sanastasio@raptorengineering.com>
References: <20250425112415.245585-1-andrew.cooper3@citrix.com>
 <20250425112415.245585-2-andrew.cooper3@citrix.com>
 <b2883538-8cea-4fde-b42b-55455fa810ca@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: <b2883538-8cea-4fde-b42b-55455fa810ca@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 25.04.2025 13:29, Oleksii Kurochko wrote:
> 
> On 4/25/25 1:24 PM, Andrew Cooper wrote:
>> The type used for pagetable attributes/permissions is currently unsigned int,
>> but needs to become architecture dependent as PPC needs unsigned long.
> 
> Not only PPC, RISC-V needs it too.
> 
>>
>> Introduce mm-types.h to house pte_attr_t.
> 
> Do we really want a separate mm-types.h?

I think so, yes. It'll (hopefully) allow to avoid including xen/mm.h in a few
places, in the longer run.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Apr 25 12:51:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 12:51:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.967980.1357693 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8IWj-0003J7-4K; Fri, 25 Apr 2025 12:51:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 967980.1357693; Fri, 25 Apr 2025 12:51: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 1u8IWj-0003Iy-13; Fri, 25 Apr 2025 12:51:33 +0000
Received: by outflank-mailman (input) for mailman id 967980;
 Fri, 25 Apr 2025 12:51: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=AgEa=XL=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1u8IWh-0003GR-KJ
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 12:51:31 +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 02671a0d-21d4-11f0-9eb3-5ba50f476ded;
 Fri, 25 Apr 2025 14:51:30 +0200 (CEST)
Received: by mail-ed1-x52c.google.com with SMTP id
 4fb4d7f45d1cf-5f624291db6so3886191a12.3
 for <xen-devel@lists.xenproject.org>; Fri, 25 Apr 2025 05:51:30 -0700 (PDT)
Received: from ?IPV6:2003:e5:870f:e000:6c64:75fd:2c51:3fef?
 (p200300e5870fe0006c6475fd2c513fef.dip0.t-ipconnect.de.
 [2003:e5:870f:e000:6c64:75fd:2c51:3fef])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5f7013ff81dsm1302428a12.24.2025.04.25.05.51.28
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 25 Apr 2025 05:51:29 -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: 02671a0d-21d4-11f0-9eb3-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745585490; x=1746190290; 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=QwWtNokkfVuIeRXynko9qQzQz/Rs9NiYpTsLbebSHY4=;
        b=TDP4POZbXw84fp1QSOkd/6IoQeMYfsZkP//IpqlHZBa7ql4y9Z1ac5jQjl2JufBwNC
         /ppJf6U17GNpSygpWtyoUVH2YmqpSOIN5VuFia1Z0xAXyspRKsulMS/dcl1pDwhelZCU
         zwpxAe9flS/5LpIiZH3pjtpWOCvDfh4G3Bg8U1sOe9j1TAu/bwt1ml7BywDZc66GgdMS
         QyAy1YVY0ZdGH3o2N6xkREEeYkAhqns0qPIpUI/0DTAuWAB1srxj9cgIZQ3PIRQr2wKM
         sPrW+QtYlfAFQQb/BAu1So5R01hj2xgnrVKjy41wJGNG9kYdfbKWngFg8+lZ/HUFHShy
         Jt7A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745585490; x=1746190290;
        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=QwWtNokkfVuIeRXynko9qQzQz/Rs9NiYpTsLbebSHY4=;
        b=uvBPCdE1ot2umTj+VpuLyCjMyFeBkz2ogRDS2KnxHsmb7Mseoihg3sjgclEvlxG649
         QkrjYH+csRwErs3sZOMAHOP9Ceoe1XZ6Xh9ooSkLJiQ/BpV5hFzz+o7vPL1LjE/SlHzx
         TG83LMTk4zkW66QnLE+mgl7fYiZiAjcoLmsn4OtAEaCK7QV3BZHo0wT3HZubP9c0MhDu
         zzJtVFlexVL6yr30Ntrghwse5/FWTYtOHEl8wB8qe4j6eZoDxiZvalsMnt1pioniU8t4
         l2RXO4FT2xuoddwBV38tvPdfTktgCqUFHQzMhBVH+tqMvq+sCXd8TjNIAjncQYHAGLOd
         hvqA==
X-Forwarded-Encrypted: i=1; AJvYcCXryD50XyjEVfjxyCGzxpDPIM7jwyi7ZcgPIiQc6I72NCdSySPBOPDLiKKU4xTmdeNg3acxg8N0oXE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YweMmuIcWQYVI1goa6fWb7JV6VLPk0/1u601XGSuGtp9O+UtqF/
	06kguzfTvtFY4mzJ5NuuFo5X93/BqIeVDxuLksw8Sxz6j2V7bvrOZzHY4KhE4dg=
X-Gm-Gg: ASbGncsJc6uUtGf8QyZC6O0Yu0gXQdaR8tS49SXvL+4H/W3Ha5Y3Frh+Gc+p6/efhbS
	DHhdE63krDtkcjBscLVELt8Ff+yxOkHwF8yFvYepbnh1uxYfD/04j3J59iVPjPL59LwcgYjZ+vz
	OhoeAhPfIjx4l54guvnRoOdQx+OTdLKDo2cjH3+yfy2NCJ0c7RkwJ7jou8+xt0GOhFCZ4WlWt8n
	yNVfjQSwtZlUVoctXbe90rxPhauRHYlPmvJOKxQ9cBICbnFCQeMARDprWIYMYJ1vIdd1Wd240Yd
	Y+L5BHyG2qoFyRiujAizC7O/Id5W5aSv/URY9NT2pdussZrqwQ6Gv4dou3VhyBcNQbzeDtkObTl
	C7OzQ43sm4fu9I/aGFcA4FqpXKJK6+UwK7wD0IV208bfSRwDr+oEmVFhekkkrkh0AAA==
X-Google-Smtp-Source: AGHT+IFNK5z5L+OZugp/JrHsD/ek2grtIVBstAXX/s7dAzj21zA8Jl8YCBMRL8UDCGc4m8dgmm2D+A==
X-Received: by 2002:a05:6402:26cf:b0:5e6:bba0:6778 with SMTP id 4fb4d7f45d1cf-5f72343464emr1737937a12.23.1745585490047;
        Fri, 25 Apr 2025 05:51:30 -0700 (PDT)
Message-ID: <35979102-2eb2-4566-b32a-f2b02ded8ae6@suse.com>
Date: Fri, 25 Apr 2025 14:51:27 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH v2 21/34] x86/msr: Utilize the alternatives mechanism
 to write MSR
To: Peter Zijlstra <peterz@infradead.org>
Cc: Xin Li <xin@zytor.com>, linux-kernel@vger.kernel.org,
 kvm@vger.kernel.org, linux-perf-users@vger.kernel.org,
 linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
 linux-pm@vger.kernel.org, linux-edac@vger.kernel.org,
 xen-devel@lists.xenproject.org, linux-acpi@vger.kernel.org,
 linux-hwmon@vger.kernel.org, netdev@vger.kernel.org,
 platform-driver-x86@vger.kernel.org, tglx@linutronix.de, mingo@redhat.com,
 bp@alien8.de, dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
 acme@kernel.org, andrew.cooper3@citrix.com, namhyung@kernel.org,
 mark.rutland@arm.com, alexander.shishkin@linux.intel.com, jolsa@kernel.org,
 irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
 wei.liu@kernel.org, ajay.kaher@broadcom.com,
 bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
 pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
 luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
 haiyangz@microsoft.com, decui@microsoft.com
References: <20250422082216.1954310-1-xin@zytor.com>
 <20250422082216.1954310-22-xin@zytor.com>
 <b2624e84-6fab-44a3-affc-ce0847cd3da4@suse.com>
 <f7198308-e8f8-4cc5-b884-24bc5f408a2a@zytor.com>
 <37c88ea3-dd24-4607-9ee1-0f19025aaef3@suse.com>
 <20250425123317.GB22125@noisy.programming.kicks-ass.net>
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: <20250425123317.GB22125@noisy.programming.kicks-ass.net>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------07IxI3FeUVVif9J0hZIyhP9u"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------07IxI3FeUVVif9J0hZIyhP9u
Content-Type: multipart/mixed; boundary="------------l43kLZ1qANrhEdych36notzD";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Peter Zijlstra <peterz@infradead.org>
Cc: Xin Li <xin@zytor.com>, linux-kernel@vger.kernel.org,
 kvm@vger.kernel.org, linux-perf-users@vger.kernel.org,
 linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
 linux-pm@vger.kernel.org, linux-edac@vger.kernel.org,
 xen-devel@lists.xenproject.org, linux-acpi@vger.kernel.org,
 linux-hwmon@vger.kernel.org, netdev@vger.kernel.org,
 platform-driver-x86@vger.kernel.org, tglx@linutronix.de, mingo@redhat.com,
 bp@alien8.de, dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
 acme@kernel.org, andrew.cooper3@citrix.com, namhyung@kernel.org,
 mark.rutland@arm.com, alexander.shishkin@linux.intel.com, jolsa@kernel.org,
 irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
 wei.liu@kernel.org, ajay.kaher@broadcom.com,
 bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
 pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
 luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
 haiyangz@microsoft.com, decui@microsoft.com
Message-ID: <35979102-2eb2-4566-b32a-f2b02ded8ae6@suse.com>
Subject: Re: [RFC PATCH v2 21/34] x86/msr: Utilize the alternatives mechanism
 to write MSR
References: <20250422082216.1954310-1-xin@zytor.com>
 <20250422082216.1954310-22-xin@zytor.com>
 <b2624e84-6fab-44a3-affc-ce0847cd3da4@suse.com>
 <f7198308-e8f8-4cc5-b884-24bc5f408a2a@zytor.com>
 <37c88ea3-dd24-4607-9ee1-0f19025aaef3@suse.com>
 <20250425123317.GB22125@noisy.programming.kicks-ass.net>
In-Reply-To: <20250425123317.GB22125@noisy.programming.kicks-ass.net>

--------------l43kLZ1qANrhEdych36notzD
Content-Type: multipart/mixed; boundary="------------IalltgkvDsSESyH6wpAYJhIj"

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

T24gMjUuMDQuMjUgMTQ6MzMsIFBldGVyIFppamxzdHJhIHdyb3RlOg0KPiBPbiBXZWQsIEFw
ciAyMywgMjAyNSBhdCAwNjowNToxOVBNICswMjAwLCBKw7xyZ2VuIEdyb8OfIHdyb3RlOg0K
PiANCj4+PiBJdCdzIG5vdCBhIG1ham9yIGNoYW5nZSwgYnV0IHdoZW4gaXQgaXMgcGF0Y2hl
ZCB0byB1c2UgdGhlIGltbWVkaWF0ZQ0KPj4+IGZvcm0gTVNSIHdyaXRlIGluc3RydWN0aW9u
LCBpdCdzIHN0cmFpZ2h0Zm9yd2FyZGx5IHN0cmVhbWxpbmVkLg0KPj4NCj4+IEl0IHNob3Vs
ZCBiZSByYXRoZXIgZWFzeSB0byBzd2l0Y2ggdGhlIGN1cnJlbnQgd3Jtc3IvcmRtc3IgcGFy
YXZpcnQgcGF0Y2hpbmcNCj4+IGxvY2F0aW9ucyB0byB1c2UgdGhlIHJkbXNyL3dybXNyIGlu
c3RydWN0aW9ucyBpbnN0ZWFkIG9mIGRvaW5nIGEgY2FsbCB0bw0KPj4gbmF0aXZlXyptc3Io
KS4NCj4gDQo+IFJpZ2h0LCBqdXN0IG1ha2UgdGhlIFhlbiBmdW5jdGlvbnMgYXNtIHN0dWJz
IHRoYXQgZXhwZWN0IHRoZSBpbnN0cnVjdGlvbg0KPiByZWdpc3RlcnMgaW5zdGVhZCBvZiBD
LWFiaSBhbmQgQUxUX05PVF9YRU4gdGhlIHRoaW5nLg0KPiANCj4gU2hvdWxkbid0IGJlIGhh
cmQgYXQgYWxsLg0KDQpDb3JyZWN0LiBBbmQgZm9yIHRoZSBuZXcgaW1tZWRpYXRlIGZvcm0g
d2UgY2FuIHVzZSBBTFRFUk5BVElWRV8zKCkuDQoNCg0KSnVlcmdlbg0K
--------------IalltgkvDsSESyH6wpAYJhIj
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-----

--------------IalltgkvDsSESyH6wpAYJhIj--

--------------l43kLZ1qANrhEdych36notzD--

--------------07IxI3FeUVVif9J0hZIyhP9u
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/Ey8FAmgLhVAFAwAAAAAACgkQsN6d1ii/Ey8e
vAf+KJOZqMUHxjnpltD/COFLiLrXAGHxc7ihiTnYIlmuJBNY2/PMbKPO2hF1JLAUEVIUZQrhNb3y
ixZojM1tK6ssy5bIFD/D8z9MibUFxp18Q5+vWLWuB5Bqiv4fZ0yZ3FN1PZEifNyTWix4R8inBi7B
oyP8CxQe7t9hRHp8vYhukpL9OwG4EAWiSNVS3r8/+D5xYtf2FhDGqTCLVm4VFuIPJfklOT4HzYhV
4dUaIcz2by4JTRko6sJmBmyAZ3prrPCusvfMG3AaPxRu7psLlgffSxlyyXRSwOdE7y48MVAqagjm
CHY32dOYjPAtQUadEKO+DN/Xv10wn72TiKJn+djfrw==
=xiTo
-----END PGP SIGNATURE-----

--------------07IxI3FeUVVif9J0hZIyhP9u--


From xen-devel-bounces@lists.xenproject.org Fri Apr 25 12:51:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 12:51:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.967981.1357696 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8IWj-0003MQ-Cj; Fri, 25 Apr 2025 12:51:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 967981.1357696; Fri, 25 Apr 2025 12:51: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 1u8IWj-0003M7-8x; Fri, 25 Apr 2025 12:51:33 +0000
Received: by outflank-mailman (input) for mailman id 967981;
 Fri, 25 Apr 2025 12:51: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=/m1g=XL=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1u8IQk-0007M6-9Q
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 12:45:22 +0000
Received: from NAM11-CO1-obe.outbound.protection.outlook.com
 (mail-co1nam11on2060c.outbound.protection.outlook.com
 [2a01:111:f403:2416::60c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 24d37793-21d3-11f0-9eb3-5ba50f476ded;
 Fri, 25 Apr 2025 14:45:20 +0200 (CEST)
Received: from BL1PR13CA0411.namprd13.prod.outlook.com (2603:10b6:208:2c2::26)
 by CH3PR12MB8458.namprd12.prod.outlook.com (2603:10b6:610:155::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.27; Fri, 25 Apr
 2025 12:45:11 +0000
Received: from BL6PEPF00020E66.namprd04.prod.outlook.com
 (2603:10b6:208:2c2:cafe::9f) by BL1PR13CA0411.outlook.office365.com
 (2603:10b6:208:2c2::26) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.15 via Frontend Transport; Fri,
 25 Apr 2025 12:45:11 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 BL6PEPF00020E66.mail.protection.outlook.com (10.167.249.27) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Fri, 25 Apr 2025 12:45:10 +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, 25 Apr
 2025 07:45:10 -0500
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; Fri, 25 Apr
 2025 07:45:09 -0500
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, 25 Apr 2025 07:45:09 -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: 24d37793-21d3-11f0-9eb3-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=NUXnsAEKolhFhwPfsYYceuO2L5f31H7p+XXAahaxcNluNtcLOuFKmOY7v+ont/xp70YQ6rJ9deV/CGOnC/PPEUnyqpDNMRIq+vZBiC1BUpKiA6rX3aTalXBUSPrpdJnt50tjHAnOjVpw3ekciueq09nvz117aAomF4TppZj9MAJR1WTKA3ZmSuCAqLx67sGCdDzL1di2Bvpeeja9xanN6pnihQ8IkVjIXVqgKDOaSqI9X9UBlT6DAyFk1RLeXuZnCaPI5kaNxr3VqAKOBOZS5OVo1iE5nMGjgzwtcemj1N2zqQjeZmV8mTPZcecFoqpfVh+CZCT6dw2l4jyso2pTAw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Za2qafe4F13w1lRNFAElgMuqv0P9SCzOcBpwKB8HL+s=;
 b=ywQqNuzR74Kr00//VWB2aFiYCKI9T0t/u7XX3ONRSI17OX4hSrQTKACD7wDQI1L2OcaMMEjRVI5p9ZrZo8JnYw8QYhJeFYsEnvT84glP4HYN7gpyjbeK4/KGLir9CJcSsTnZNiZpQORuPe2oWFy9Ma+45obLOuMYucse3aPArZ5BLVQhNpyczoZeVlmujvunR04HJrhnBsnThYnBPTbx9gwR27X3TJCGw5bYAE4hU6k/OKs+xCzO1s2hbsIWw6/cJ2lUCGLgze8cvyuK+IRsOF87jNgXnTmOVZD1QiPjs/MqamuMT5eCSt7KGM9If6JSmMS1bErqA+3sjw9neKXV3A==
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=Za2qafe4F13w1lRNFAElgMuqv0P9SCzOcBpwKB8HL+s=;
 b=dUVmg17b4bFdr0dVnsfyg55bQ7Y/FUBRiDHK+7JDiXoYQmYSlUtKBtBYJwjKGmEJ2gfjTb/zSe+TMNmWWQ4jdvmrw3U32SBLJ0VZLuZN3crJYv29jSJy+wG29458BthGGZb309BtO27yuyIIeDrczi1PS6I7TCBzGK8crCZUUJI=
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>, Luca Fancellu
	<luca.fancellu@arm.com>, Bertrand Marquis <bertrand.marquis@arm.com>, "Michal
 Orzel" <michal.orzel@amd.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v2] xen/arm: AArch32-V8R: Add MPU register definitions
Date: Fri, 25 Apr 2025 13:45:06 +0100
Message-ID: <20250425124506.390458-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
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL6PEPF00020E66:EE_|CH3PR12MB8458:EE_
X-MS-Office365-Filtering-Correlation-Id: 73f25ebc-c4b3-488f-aa1f-08dd83f7041b
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|36860700013|82310400026|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?KZLaEW1fDM7RKLoXUJ2wPXoDQETlIXBCxHefqMzlc7McsR2XKo1Dz2DniUbf?=
 =?us-ascii?Q?dLGkShJT2pxiarL3mjP9txG95ntr2WMISV+B88O0+EjAcolQG5/WIYxQk+rR?=
 =?us-ascii?Q?4w75Mr4YcWYYCCxvArt2y1SjK+uC533jnUX30wDWSQd9kWhc9JR2CnXRnPK5?=
 =?us-ascii?Q?TP96APjWAU3BObL6EcXlPNG3flV85qaLVpDq+WRI18jPhP0Qkuh0z9/Yr8W4?=
 =?us-ascii?Q?NUR+6VP8TdMc31yjj2so4nKXdnezxc6dksdEB9oWc74MtWM5a3lTUJwO9L0Q?=
 =?us-ascii?Q?gEmt6+PH0s8kESjIQ/De8qoy/Hb5wlzBpkQ+XsjM8Zq5fq8jAds7KeLENHS+?=
 =?us-ascii?Q?NBB2F/r2rrysMUiHbhIRKSOyyGRQPB8it4IXwW+Id1uMVSk92IN0PichwJQZ?=
 =?us-ascii?Q?oL9SAuNjZLXJLSpTnIENNVClzDyRAKddIR4u2MJaDk+Xja+lE2EV3UotcVG4?=
 =?us-ascii?Q?80N9uKcTKs6WKlK6OdRyMAwPx2NVHM1baxS2Vs5bWrfZdEJTOTY7Jlvaze6s?=
 =?us-ascii?Q?sXr/pDff0kgI/2AYmiIrCmcy5CBjLpP0LHLq+0FnDrEgsva3InzoPec5HKGv?=
 =?us-ascii?Q?oNvCS0Jv0hqou14tooNMZMPCpFr3zmTkOJefXb0TtY0bOcy8SS3JX81xvV1s?=
 =?us-ascii?Q?FV8FqQyFSTGeKB2pOzqVyqthklWlfDXkHCJFso8qWGbeTkGw01rv9CZDQRxP?=
 =?us-ascii?Q?BP2XY9x1YJxERS+0QCzmJm12bAfL/ubXbQWkLa0moWJ2eZn9N0wrpNyi2QqN?=
 =?us-ascii?Q?RYIXN9JbfHroqxX06KwR0F+Y11Pq2scTm4NBHnh8xDrCc0sP4hyxYxi5SSMj?=
 =?us-ascii?Q?GwnI2skxebKIPgTzV7ZP3lpFGT0S2KeUMJUkM/pLTmOQysiStrwvsxX3HYxa?=
 =?us-ascii?Q?VTsMfMmHevMR5LVcbgMtl7+j/1fWXcRpGNTvW6PmCo3N3PUqP+hh4tNnSPBI?=
 =?us-ascii?Q?ZOM/tIxTiplEZgpBRHdCt5r/l5Fysg38RIuq5CkgUhXoBXjmGTHUfRooRDd5?=
 =?us-ascii?Q?SFKumfmi1J9KtVN22wHAIHfGGZqvJHAdSsU22bTYKZp8pUlWwf/swB+vNYF6?=
 =?us-ascii?Q?Up/Qn+tyRy4KtnC0YWbEJnz58OgFGjjWvy4RbGSZ0uX0ZJORy5r5avUgWo3H?=
 =?us-ascii?Q?DhMaiOZqzpe/oU0blv8CblAiMETisH+NENombN9SDsLKQfQ8RiKHNqF3TiOy?=
 =?us-ascii?Q?lpIgn+EipE1B3P4WQDe+2Hveg6JB3A8dxvAZ9gW5p4XHbN7fCDIfTMHBqrKB?=
 =?us-ascii?Q?NSm6Yk6dz0vBK3MbI+gIQAOsqepMszEaYZNDs/t924ia8V2J3jpQaqArgWzl?=
 =?us-ascii?Q?CVCB2EYVDlqFqLtTlwcIpT8YoKpELHW65tnKDpFpv4RcShICMVD0mOSnztob?=
 =?us-ascii?Q?QNReREeX72KFIJKKOkxrTA2KabvBvL0j8FBsBcjnintlUdTx/LHXt1Q66wpp?=
 =?us-ascii?Q?sLt5KosFvUpoEaScoCVrhPFKKCNKudAs13JDkSXXzlhootLl/c4UHLMQO6aH?=
 =?us-ascii?Q?P9fr3yespQTl+S2KdcZHP9vw+pY5UfIN5LGO?=
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: 25 Apr 2025 12:45:10.5092
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 73f25ebc-c4b3-488f-aa1f-08dd83f7041b
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:
	BL6PEPF00020E66.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB8458

Add the definitions for HPRBAR<0..31>, HPRLAR<0..31> and HPRENR.
The definitions are taken from ARM DDI 0568A.c ID110520, E2.2.3 HPRBAR<n>,
E2.2.4 HPRENR and E2.2.6 HPRLAR<n>.

Introduce pr_t typedef which is a structure having the prbar and prlar members,
each being structured as the registers of the AArch32-V8R architecture.
This is the arm32 equivalent of
"arm/mpu: Introduce MPU memory region map structure".

Few differences worth noting:-
1. The XN in HPRBAR is 1 bit in Arm32 (unlike 2 bits in Arm64).
2. PRSELR_EL2 is not used to access HPRBAR<0..31> and HPRLAR<0..31>.

Introduce macros PR{B,L}AR_EL2_(num) to generate alias for the sysregs.

Also, took the opportunity to fix the register definition of HPRLAR.

Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
---
Changes from :-

v1 - 1. Introduce macros for PR{B,L}AR_EL2_(num). Similar macros need to be
defined for arm64 as well.
2. Some style fixes

Comments not addressed
1. Renaming of PRBAR_EL2_XN if needed.
2. Using res0 for ns.

This patch should be applied after
"[PATCH v3 0/7] First chunk for Arm R82 and MPU support" in order to enable
compilation for AArch32 and macros need to be defined for Arm64 as well.

 xen/arch/arm/include/asm/arm32/mpu.h  | 59 +++++++++++++++++++++
 xen/arch/arm/include/asm/mpu.h        |  4 ++
 xen/arch/arm/include/asm/mpu/cpregs.h | 75 ++++++++++++++++++++++++++-
 xen/arch/arm/include/asm/page.h       |  7 ++-
 xen/arch/arm/mpu/mm.c                 | 14 +++--
 5 files changed, 153 insertions(+), 6 deletions(-)
 create mode 100644 xen/arch/arm/include/asm/arm32/mpu.h

diff --git a/xen/arch/arm/include/asm/arm32/mpu.h b/xen/arch/arm/include/asm/arm32/mpu.h
new file mode 100644
index 0000000000..dc5ef9b3e9
--- /dev/null
+++ b/xen/arch/arm/include/asm/arm32/mpu.h
@@ -0,0 +1,59 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * mpu.h: Arm Memory Protection Unit definitions for aarch64.
+ */
+
+#ifndef __ARM_ARM32_MPU_H
+#define __ARM_ARM32_MPU_H
+
+#define XN_EL2_ENABLED  0x1
+
+#ifndef __ASSEMBLY__
+
+/* Hypervisor Protection Region Base Address Register */
+typedef union {
+    struct {
+        unsigned int xn:1;       /* Execute-Never */
+        unsigned int ap:2;       /* Acess Permission */
+        unsigned int sh:2;       /* Sharebility */
+        unsigned int res0:1;     /* Reserved as 0 */
+        unsigned int base:26;    /* Base Address */
+    } reg;
+    uint32_t bits;
+} prbar_t;
+
+/* Hypervisor Protection Region Limit Address Register */
+typedef union {
+    struct {
+        unsigned int en:1;     /* Region enable */
+        unsigned int ai:3;     /* Memory Attribute Index */
+        /*
+         * There is no actual ns bit in hardware. It is used here for
+         * compatibility with Arm64 code. Thus, we are reusing a res0 bit for ns.
+         */
+        unsigned int ns:1;     /* Reserved 0 by hardware */
+        unsigned int res0:1;   /* Reserved 0 by hardware */
+        unsigned int limit:26; /* Limit Address */
+    } reg;
+    uint32_t bits;
+} prlar_t;
+
+/* Protection Region */
+typedef struct {
+    prbar_t prbar;
+    prlar_t prlar;
+    uint64_t p2m_type;          /* Used to store p2m types. */
+} pr_t;
+
+#endif /* __ASSEMBLY__ */
+
+#endif /* __ARM_ARM32_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/mpu.h b/xen/arch/arm/include/asm/mpu.h
index 77d0566f97..67127149c0 100644
--- a/xen/arch/arm/include/asm/mpu.h
+++ b/xen/arch/arm/include/asm/mpu.h
@@ -8,8 +8,12 @@
 
 #if defined(CONFIG_ARM_64)
 # include <asm/arm64/mpu.h>
+#elif defined(CONFIG_ARM_32)
+# include <asm/arm32/mpu.h>
 #endif
 
+#define PRENR_MASK  GENMASK(31, 0)
+
 #define MPU_REGION_SHIFT  6
 #define MPU_REGION_ALIGN  (_AC(1, UL) << MPU_REGION_SHIFT)
 #define MPU_REGION_MASK   (~(MPU_REGION_ALIGN - 1))
diff --git a/xen/arch/arm/include/asm/mpu/cpregs.h b/xen/arch/arm/include/asm/mpu/cpregs.h
index d5cd0e04d5..d051598477 100644
--- a/xen/arch/arm/include/asm/mpu/cpregs.h
+++ b/xen/arch/arm/include/asm/mpu/cpregs.h
@@ -6,18 +6,91 @@
 /* CP15 CR0: MPU Type Register */
 #define HMPUIR          p15,4,c0,c0,4
 
+/* CP15 CR6: Protection Region Enable Register */
+#define HPRENR          p15,4,c6,c1,1
+
 /* CP15 CR6: MPU Protection Region Base/Limit/Select Address Register */
 #define HPRSELR         p15,4,c6,c2,1
 #define HPRBAR          p15,4,c6,c3,0
-#define HPRLAR          p15,4,c6,c8,1
+#define HPRLAR          p15,4,c6,c3,1
+
+/* CP15 CR6: MPU Protection Region Base/Limit Address Register */
+#define HPRBAR0         p15,4,c6,c8,0
+#define HPRLAR0         p15,4,c6,c8,1
+#define HPRBAR1         p15,4,c6,c8,4
+#define HPRLAR1         p15,4,c6,c8,5
+#define HPRBAR2         p15,4,c6,c9,0
+#define HPRLAR2         p15,4,c6,c9,1
+#define HPRBAR3         p15,4,c6,c9,4
+#define HPRLAR3         p15,4,c6,c9,5
+#define HPRBAR4         p15,4,c6,c10,0
+#define HPRLAR4         p15,4,c6,c10,1
+#define HPRBAR5         p15,4,c6,c10,4
+#define HPRLAR5         p15,4,c6,c10,5
+#define HPRBAR6         p15,4,c6,c11,0
+#define HPRLAR6         p15,4,c6,c11,1
+#define HPRBAR7         p15,4,c6,c11,4
+#define HPRLAR7         p15,4,c6,c11,5
+#define HPRBAR8         p15,4,c6,c12,0
+#define HPRLAR8         p15,4,c6,c12,1
+#define HPRBAR9         p15,4,c6,c12,4
+#define HPRLAR9         p15,4,c6,c12,5
+#define HPRBAR10        p15,4,c6,c13,0
+#define HPRLAR10        p15,4,c6,c13,1
+#define HPRBAR11        p15,4,c6,c13,4
+#define HPRLAR11        p15,4,c6,c13,5
+#define HPRBAR12        p15,4,c6,c14,0
+#define HPRLAR12        p15,4,c6,c14,1
+#define HPRBAR13        p15,4,c6,c14,4
+#define HPRLAR13        p15,4,c6,c14,5
+#define HPRBAR14        p15,4,c6,c15,0
+#define HPRLAR14        p15,4,c6,c15,1
+#define HPRBAR15        p15,4,c6,c15,4
+#define HPRLAR15        p15,4,c6,c15,5
+#define HPRBAR16        p15,5,c6,c8,0
+#define HPRLAR16        p15,5,c6,c8,1
+#define HPRBAR17        p15,5,c6,c8,4
+#define HPRLAR17        p15,5,c6,c8,5
+#define HPRBAR18        p15,5,c6,c9,0
+#define HPRLAR18        p15,5,c6,c9,1
+#define HPRBAR19        p15,5,c6,c9,4
+#define HPRLAR19        p15,5,c6,c9,5
+#define HPRBAR20        p15,5,c6,c10,0
+#define HPRLAR20        p15,5,c6,c10,1
+#define HPRBAR21        p15,5,c6,c10,4
+#define HPRLAR21        p15,5,c6,c10,5
+#define HPRBAR22        p15,5,c6,c11,0
+#define HPRLAR22        p15,5,c6,c11,1
+#define HPRBAR23        p15,5,c6,c11,4
+#define HPRLAR23        p15,5,c6,c11,5
+#define HPRBAR24        p15,5,c6,c12,0
+#define HPRLAR24        p15,5,c6,c12,1
+#define HPRBAR25        p15,5,c6,c12,4
+#define HPRLAR25        p15,5,c6,c12,5
+#define HPRBAR26        p15,5,c6,c13,0
+#define HPRLAR26        p15,5,c6,c13,1
+#define HPRBAR27        p15,5,c6,c13,4
+#define HPRLAR27        p15,5,c6,c13,5
+#define HPRBAR28        p15,5,c6,c14,0
+#define HPRLAR28        p15,5,c6,c14,1
+#define HPRBAR29        p15,5,c6,c14,4
+#define HPRLAR29        p15,5,c6,c14,5
+#define HPRBAR30        p15,5,c6,c15,0
+#define HPRLAR30        p15,5,c6,c15,1
+#define HPRBAR31        p15,5,c6,c15,4
+#define HPRLAR31        p15,5,c6,c15,5
 
 /* Aliases of AArch64 names for use in common code */
 #ifdef CONFIG_ARM_32
 /* Alphabetically... */
 #define MPUIR_EL2       HMPUIR
 #define PRBAR_EL2       HPRBAR
+#define PRBAR_EL2_(N)   HPRBAR##N
+#define PRENR_EL2       HPRENR
 #define PRLAR_EL2       HPRLAR
+#define PRLAR_EL2_(N)   HPRLAR##N
 #define PRSELR_EL2      HPRSELR
+
 #endif /* CONFIG_ARM_32 */
 
 #endif /* __ARM_MPU_CPREGS_H */
diff --git a/xen/arch/arm/include/asm/page.h b/xen/arch/arm/include/asm/page.h
index 22f7d2c6cb..f4ae8ba6d7 100644
--- a/xen/arch/arm/include/asm/page.h
+++ b/xen/arch/arm/include/asm/page.h
@@ -96,7 +96,8 @@
 /*
  * Layout of the flags used for updating MPU memory region attributes
  * [0:2] Memory attribute Index
- * [3:4] Execute Never
+ * [3:4] Execute Never // For ARM_64
+ * [3] Execute Never // For ARM_32
  * [5:6] Access Permission
  * [7]   Region Present
  */
@@ -105,7 +106,11 @@
 #define _PAGE_AP_BIT            5
 #define _PAGE_PRESENT_BIT       7
 #define _PAGE_AI                (7U << _PAGE_AI_BIT)
+#ifdef CONFIG_ARM_32
+#define _PAGE_XN                (1U << _PAGE_XN_BIT)
+#else
 #define _PAGE_XN                (2U << _PAGE_XN_BIT)
+#endif
 #define _PAGE_RO                (2U << _PAGE_AP_BIT)
 #define _PAGE_PRESENT           (1U << _PAGE_PRESENT_BIT)
 #define PAGE_AI_MASK(x)         (((x) >> _PAGE_AI_BIT) & 0x7U)
diff --git a/xen/arch/arm/mpu/mm.c b/xen/arch/arm/mpu/mm.c
index e0a40489a7..c177724c45 100644
--- a/xen/arch/arm/mpu/mm.c
+++ b/xen/arch/arm/mpu/mm.c
@@ -31,16 +31,16 @@ pr_t xen_mpumap[MAX_MPU_REGIONS];
 #define GENERATE_WRITE_PR_REG_CASE(num, pr)                                 \
     case num:                                                               \
     {                                                                       \
-        WRITE_SYSREG(pr->prbar.bits & ~MPU_REGION_RES0, PRBAR##num##_EL2);  \
-        WRITE_SYSREG(pr->prlar.bits & ~MPU_REGION_RES0, PRLAR##num##_EL2);  \
+        WRITE_SYSREG(pr->prbar.bits & ~MPU_REGION_RES0, PRBAR_EL2_(num));   \
+        WRITE_SYSREG(pr->prlar.bits & ~MPU_REGION_RES0, PRLAR_EL2_(num));   \
         break;                                                              \
     }
 
 #define GENERATE_READ_PR_REG_CASE(num, pr)                      \
     case num:                                                   \
     {                                                           \
-        pr->prbar.bits = READ_SYSREG(PRBAR##num##_EL2);         \
-        pr->prlar.bits = READ_SYSREG(PRLAR##num##_EL2);         \
+        pr->prbar.bits = READ_SYSREG(PRBAR_EL2_(num));          \
+        pr->prlar.bits = READ_SYSREG(PRLAR_EL2_(num));          \
         break;                                                  \
     }
 
@@ -56,6 +56,11 @@ static void __init __maybe_unused build_assertions(void)
 
 static void prepare_selector(uint8_t *sel)
 {
+    /*
+     * In Arm32, one can access PRBAR<0..31>_EL2 and PRLAR<0..31>_EL2 without
+     * the need to configure PRSELR_EL2.
+     */
+#ifdef CONFIG_ARM_64
     uint8_t cur_sel = *sel;
     /*
      * {read,write}_protection_region works using the direct access to the 0..15
@@ -69,6 +74,7 @@ static void prepare_selector(uint8_t *sel)
         isb();
     }
     *sel = *sel & 0xFU;
+#endif
 }
 
 /*
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Fri Apr 25 12:52:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 12:52:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.968007.1357713 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8IY4-0004ot-RP; Fri, 25 Apr 2025 12:52:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 968007.1357713; Fri, 25 Apr 2025 12:52: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 1u8IY4-0004om-OO; Fri, 25 Apr 2025 12:52:56 +0000
Received: by outflank-mailman (input) for mailman id 968007;
 Fri, 25 Apr 2025 12:52: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=y1QO=XL=infradead.org=peterz@srs-se1.protection.inumbo.net>)
 id 1u8IY4-0004oe-2P
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 12:52:56 +0000
Received: from desiato.infradead.org (desiato.infradead.org
 [2001:8b0:10b:1:d65d:64ff:fe57:4e05])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 34ae0a91-21d4-11f0-9eb3-5ba50f476ded;
 Fri, 25 Apr 2025 14:52:55 +0200 (CEST)
Received: from 77-249-17-252.cable.dynamic.v4.ziggo.nl ([77.249.17.252]
 helo=noisy.programming.kicks-ass.net)
 by desiato.infradead.org with esmtpsa (Exim 4.98.1 #2 (Red Hat Linux))
 id 1u8IXt-0000000C2bD-2jfU; Fri, 25 Apr 2025 12:52:45 +0000
Received: by noisy.programming.kicks-ass.net (Postfix, from userid 1000)
 id 3849A300073; Fri, 25 Apr 2025 14:52:45 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 34ae0a91-21d4-11f0-9eb3-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=desiato.20200630; h=In-Reply-To:Content-Transfer-Encoding:
	Content-Type:MIME-Version:References:Message-ID:Subject:Cc:To:From:Date:
	Sender:Reply-To:Content-ID:Content-Description;
	bh=IDYQFrDJHA7L8jf52g4kfnTitAFJx9ur9V0d2b50BLo=; b=WC7YSMHkPF6hShCY786xiHVHDr
	zbWZEoDWt7bacv4YBSZjyeuzd86Hs+DM9z1RnOCJQ5xBDY8fzsuMOP9nz+hxSYkX8GWF+7Hcfd5GY
	y9XAgi28oYrUDuf79WmTYUQ4rYSrUCc+ti4P994Grej6mWoEbXrvRT1Znq7C8PiN0wGwEE2TCP7Ta
	IuyucF2BGfKx+iZgRxhCuCkO9O6vufW91a9tlgB/cQWrA5X6Fgbd7WhC72owqwZ4ziVmITn1Ygvpo
	g1O3mI6ZWJdPLtdB/AOnAYdH/GQcnroDkK5y+ZyfJ79ZewuBEVt4rRKLKSFqPHLgMvZsVeAKOv3c+
	Wjij67/A==;
Date: Fri, 25 Apr 2025 14:52:45 +0200
From: Peter Zijlstra <peterz@infradead.org>
To: "Xin Li (Intel)" <xin@zytor.com>
Cc: linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
	linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
	virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
	linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
	linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
	netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org,
	tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
	dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
	acme@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com,
	namhyung@kernel.org, mark.rutland@arm.com,
	alexander.shishkin@linux.intel.com, jolsa@kernel.org,
	irogers@google.com, adrian.hunter@intel.com,
	kan.liang@linux.intel.com, wei.liu@kernel.org,
	ajay.kaher@broadcom.com, bcm-kernel-feedback-list@broadcom.com,
	tony.luck@intel.com, pbonzini@redhat.com, vkuznets@redhat.com,
	seanjc@google.com, luto@kernel.org, boris.ostrovsky@oracle.com,
	kys@microsoft.com, haiyangz@microsoft.com, decui@microsoft.com,
	dapeng1.mi@linux.intel.com
Subject: Re: [PATCH v3 00/14] MSR code cleanup part one
Message-ID: <20250425125245.GC22125@noisy.programming.kicks-ass.net>
References: <20250425083442.2390017-1-xin@zytor.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <20250425083442.2390017-1-xin@zytor.com>

On Fri, Apr 25, 2025 at 01:34:23AM -0700, Xin Li (Intel) wrote:
> This patch set is the first part of the patch set:
> 
>   MSR refactor with new MSR instructions support
> 
> @ https://lore.kernel.org/lkml/20250422082216.1954310-1-xin@zytor.com/T/#m5a34be7d4ed55f0baca965cb65452a08e9ad7c8a
> 
> 
> It's getting *WAY* too big, and whether to zap the pv_ops MSR APIs is
> still under argument.  Dave Hansen suggested to focus on rename stuff
> first, most of which he acked.
> 
> Jrgen Gro also gave his RBs to most of the Xen MSR cleanup patches.
> 
> So here comes the first MSR cleanup patch set with version 3.
> 
> 
> This patch series is based on:
> 
>   git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git x86/msr
> 
> 
> Xin Li (Intel) (14):
>   x86/msr: Move rdtsc{,_ordered}() to <asm/tsc.h>
>   x86/msr: Remove rdpmc()
>   x86/msr: Rename rdpmcl() to rdpmc()
>   x86/msr: Convert the rdpmc() macro into an always inline function
>   x86/msr: Return u64 consistently in Xen PMC read functions
>   x86/msr: Convert __wrmsr() uses to native_wrmsr{,q}() uses
>   x86/msr: Add the native_rdmsrq() helper
>   x86/msr: Convert __rdmsr() uses to native_rdmsrq() uses
>   x86/xen/msr: Remove calling native_{read,write}_msr{,_safe}() in
>     pmu_msr_{read,write}()
>   x86/xen/msr: Remove pmu_msr_{read,write}()
>   x86/xen/msr: Remove the error pointer argument from set_seg()
>   x86/pvops/msr: refactor pv_cpu_ops.write_msr{,_safe}()
>   x86/msr: Replace wrmsr(msr, low, 0) with wrmsrq(msr, low)
>   x86/msr: Change the function type of native_read_msr_safe()

These look ok.

Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>


From xen-devel-bounces@lists.xenproject.org Fri Apr 25 12:54:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 12:54:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.968020.1357723 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8IZQ-0005Mm-5U; Fri, 25 Apr 2025 12:54:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 968020.1357723; Fri, 25 Apr 2025 12:54: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 1u8IZQ-0005Mf-1X; Fri, 25 Apr 2025 12:54:20 +0000
Received: by outflank-mailman (input) for mailman id 968020;
 Fri, 25 Apr 2025 12:54:18 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Fya8=XL=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u8IZO-0005MU-Ps
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 12:54:18 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on20615.outbound.protection.outlook.com
 [2a01:111:f403:2415::615])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 63a82c91-21d4-11f0-9ffb-bf95429c2676;
 Fri, 25 Apr 2025 14:54:15 +0200 (CEST)
Received: from MW4PR04CA0228.namprd04.prod.outlook.com (2603:10b6:303:87::23)
 by CH3PR12MB8659.namprd12.prod.outlook.com (2603:10b6:610:17c::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.27; Fri, 25 Apr
 2025 12:54:10 +0000
Received: from SJ5PEPF000001F1.namprd05.prod.outlook.com
 (2603:10b6:303:87:cafe::91) by MW4PR04CA0228.outlook.office365.com
 (2603:10b6:303:87::23) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.35 via Frontend Transport; Fri,
 25 Apr 2025 12:54:09 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ5PEPF000001F1.mail.protection.outlook.com (10.167.242.69) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Fri, 25 Apr 2025 12:54:09 +0000
Received: from localhost (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; Fri, 25 Apr
 2025 07:54:07 -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: 63a82c91-21d4-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=OPgPAoxhY6BD/oqQ0O3/m0Dia8mgL+WWu/tLvNtwNsR2yU+etoUyuyr3HyoGHAAIii9Tn576pQXzKX3H3HxDoOfB0dxX5RFQv04sFC9ZN7XxMs66YMaymz72MGYU5I2GwD+3p72t46TszCNxR6+iBVE2SDSS9idDr7AcQIgtQzt0bPADNNfZ9B+CwmLk0tmIUx4zF7m/9Gbop4oHxtZZtvF7HiA08DanPBf5MM5D2FVW+UF9icSRBBXY/dSKe5kuAN/YEDL1Ic8toT+uL3lbzSYZwvgo3e680ndym1OSxCGU9IcxnEwsjnWetVtJLGEPnEmHvuoNpyfgLvmnyurvdw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=DpA0IsOcL84k4K+IiDU2FFoW7pmc4NixteRXMA26fP4=;
 b=RvegQIwJysy+e86tYHFbYQ3LWiHR82Hv2QVPO7VaRy41YZmZZlv8B+OLHw0hgLR6zFf85bKR2SuyN7pqlF2TuG7+pMMyvBGSOtw1MPQswsqC8IJg5SYphXqfEzNd7L2Y38MneAARWAipbxP7N6wfd495b6M5YJYnyf+qC7lidCpfjCuttis3KZCKiwuj+DO21cRSC/NgnPATZrIs6UVjQPpKefUEFR4FS9dwfU0JxN7WksWgC/Mzf5uXiiCa0T19tFqsRRqH7o99caE+6i6aMvTNvX3zFEm+sVzNgTqG7O77VEsjYXDPl0xL3ZT7Q8wS4D7NFWb6dIwlCov0S/6fwg==
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=DpA0IsOcL84k4K+IiDU2FFoW7pmc4NixteRXMA26fP4=;
 b=PmB7tg6dd8jhOgS3uC4oAUebnY6XvqXO8s+pr1gdb2j+ZNlUNymxE4DRr59bI+Xbf+lbT4w9HyFJsZBpQaYersMVk1oFLI4guSIGeSOYEPinoynoD6DLEOFXsKP8Kf/r1W1/izU5d3webaZc7NkIenot6RpnNmTogT3BBBTPa1Y=
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
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Fri, 25 Apr 2025 13:54:06 +0100
Message-ID: <D9FQGVAF15CN.11IV12O8WFG0C@amd.com>
CC: <xen-devel@lists.xenproject.org>, Jan Beulich <jbeulich@suse.com>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Xen-devel
	<xen-devel-bounces@lists.xenproject.org>
Subject: Re: [PATCH] x86/hvmloader: fix usage of NULL with cpuid_count()
From: Alejandro Vallejo <agarciav@amd.com>
To: =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
X-Mailer: aerc 0.20.1
References: <20250424125813.96449-1-roger.pau@citrix.com>
 <D9FPTG9VXGV2.3OT1N6UFNG2WI@amd.com> <aAuDvqxihXBI9u2k@macbook.lan>
In-Reply-To: <aAuDvqxihXBI9u2k@macbook.lan>
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: SJ5PEPF000001F1:EE_|CH3PR12MB8659:EE_
X-MS-Office365-Filtering-Correlation-Id: 4c17ae63-5183-4ab8-96e7-08dd83f8453c
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?OWhaMlIvN2pvbFJKcmdjVGNkak1rQVhFc3RrOHhvT0k3S3F2cmY4b3lCK1Nt?=
 =?utf-8?B?aDFoTkY3cHdaekVhdkZVc0xPQmdSODIxd1RTUVZETVArOUxGdXlSTGVUL1pD?=
 =?utf-8?B?RFJpM29YVGZrUUtrQ0s1TXdGdkE0WGJmay94cHk1SnkvcnhFbnozazRCdkxT?=
 =?utf-8?B?b0N3dkcvOERDTjJZT2R2azZDWFNWNDlyZ253bXd6TEJBeFlGTlMxYzQ1Nk4x?=
 =?utf-8?B?b1V6ZmhxQ0VJZGtwSFNxWmhWR2RieWk5Y09ZeWl1RDhMQk96a2doWmN4dlRR?=
 =?utf-8?B?bW9leUxqbE1lY2dRRUNVdEx5bzZBelhWTHhzL21kSFJlMWt6Sno1Nmh3aGpn?=
 =?utf-8?B?N0hudkJLVnBnNFY1a1V2VUI1VGJXdFRQTzNEU3hZVGhIRXhwZVRNSXBhQ1JT?=
 =?utf-8?B?TjQ4a2hKcUlrVEcwSUNzZ09VVVFOcUJyOEc0aHFWck9XcjMrVHhhR0Z5ajFn?=
 =?utf-8?B?amtZRjJwZFRFbXBWcnJOOUtHQ0tEeUlPVmNrcW9tdnhROHArOXoxMEN1TVlV?=
 =?utf-8?B?TkpnZ0c5aGJxL3o1QU1NWXYybEpzZWkzOXBXNWFzRDdqeE9pay9OVDJtejc5?=
 =?utf-8?B?VDIzZy9tMmJXMStwNDNXN0d0QTk5NzR3WjFobW91RHR6ZGlxbWp1SmRCTVV6?=
 =?utf-8?B?czhXS1hoMnVRdHBRTnNFNGxScE9SaXlpSmh1c3ZtQ1NXRTNvSHo4YXM0V2Nt?=
 =?utf-8?B?OXUwVTA2NENKRERNUW84OExtMENaNXMwMWU5QktZcSttL0FZYi9RRlNYNTlO?=
 =?utf-8?B?WWlVb1lEZEYyT2ZsSlYwdEJRWDVGWmJaZHRtQ3Rua2NIUmlFTzEyTHFUVFJx?=
 =?utf-8?B?VGI2WFF4RFlUTkpVdzI4Y2d0RGtmcWIxd3FFbmdteEs2UVlCN2V3M0ZqWFZj?=
 =?utf-8?B?OW1kZC80blNuL2NTVzZaM3dnZktqU3hiTnhoMHA2dERPTXdMamhBNS84UTNa?=
 =?utf-8?B?RWdtSWhyNHg2d205NDFFMEhWR0RqMTdPS0xlbUgzZk5TcFpnSWJVM2xqbkhF?=
 =?utf-8?B?bi9LYUVLWVZsajVXckZBTU1oVTFKYlF0WnRmdXpaUFpycUNLVlU4cGR2WnV1?=
 =?utf-8?B?SElsd3ZXclhwTkJVVXovT2t4b2I3NUdFb0dwQjdLbW1LdFJkTHZzNTdjYkJz?=
 =?utf-8?B?N0F1aGZEcHRvUEl2d0NrRzJqMFcxL1RxU3lSUkVRbG96WDBnQ1FIYXZFSzds?=
 =?utf-8?B?aFpWU2tSeDNwekVBL1JlQWVEVFluMWdRbm1BL2s4N3NXSHR5WW5XeW9nRFcw?=
 =?utf-8?B?NVpSNFZQL0xZWXpIZGxHUE93OGJvU2pUWVZtaGlmRkZVWm5MbGVQMXl2ZUdP?=
 =?utf-8?B?cjZCSndrdVdKY3RNeEFEemRQaDB6a3hYS0MyaWdQYW50czdRYzIvSUs5blE5?=
 =?utf-8?B?SVFBWnJ5eENmMFRRTlJEajE0TVQwVXJsMnpDUWVEZHp1NUsxbENhOXdIc2Qy?=
 =?utf-8?B?b0R4VjBOazJubXJXWWhOdlJrbDhMZnd6MkFWQWZSMnFBQTF4R1RiMDRDaDlh?=
 =?utf-8?B?QmJWQkhGQ3JDeTZVQUZXM0JxVUVBN3R6OEFxMmRmY3JPb1I1SHJqbzc2TXZQ?=
 =?utf-8?B?R1FHaGJ1M2RIUDdwWXBlMk9WNG5nWk1ac0VaaURCclRuZFJIMzlKd3NhU2s2?=
 =?utf-8?B?MGYrU2VaWWpQaUZLWEwwbitwSTZXK1BZMUN5Uzlobm5JVWFlYVROVkNUOEUx?=
 =?utf-8?B?T3BqMXR0cUpRVEhqZHViSDZpdWlDTHNXMURIeWV0dTc2bUJNeXlycjdqT0wx?=
 =?utf-8?B?R3FiNlFMa2V0cWJXeUFVeUpWOVdQMU4valhoVXMvbGV5M1dOMWhzL0JJamNw?=
 =?utf-8?B?bk12S08wZHpFaXFaWmJHZGVROFpXVzF6WnlFci95VnlVUWlKU1lmR21kWFBW?=
 =?utf-8?B?cGtJcGZRME4xdFl1UTZwMmNhMnhaVmdQRVdQR2RYc05IZGg2WG9LSjN1K1Z5?=
 =?utf-8?B?ZlJkc1dRbDdQN2FiWnJ4VDhXRFJmdWV4VnZCdUVPS2dXQXhTakRKbXJybVJy?=
 =?utf-8?B?eWUzdnA1Q25RRE80b0xHcjdqeWlicElnVFRVWVU3Unh5NzhXa2pwVHFtNWFk?=
 =?utf-8?Q?0MDB9+?=
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 Apr 2025 12:54:09.1799
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 4c17ae63-5183-4ab8-96e7-08dd83f8453c
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:
	SJ5PEPF000001F1.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB8659

On Fri Apr 25, 2025 at 1:44 PM BST, Roger Pau Monn=C3=A9 wrote:
> On Fri, Apr 25, 2025 at 01:23:30PM +0100, Alejandro Vallejo wrote:
>> On Thu Apr 24, 2025 at 1:58 PM BST, Roger Pau Monne wrote:
>> > The commit that added support for retrieving the APIC IDs from the APs
>> > introduced several usages of cpuid() with NULL parameters, which is no=
t
>> > handled by the underlying implementation.  For GCC I expect this resul=
ts in
>> > writes to the physical address at 0, however for Clang the generated c=
ode
>> > in smp.o is:
>> >
>> > tools/firmware/hvmloader/smp.o: file format elf32-i386
>> >
>> > Disassembly of section .text:
>> >
>> > 00000000 <smp_initialise>:
>> >        0: 55                            pushl   %ebp
>> >        1: 89 e5                         movl    %esp, %ebp
>> >        3: 53                            pushl   %ebx
>> >        4: 31 c0                         xorl    %eax, %eax
>> >        6: 31 c9                         xorl    %ecx, %ecx
>> >        8: 0f a2                         cpuid
>> >
>> > Showing the usage of a NULL pointer results in undefined behavior, and
>> > clang refusing to generate further code after it.
>> >
>> > Fix by using a temporary variable in cpuid_count() in place for any NU=
LL
>> > parameter.
>> >
>> > Fixes: 9ad0db58c7e2 ('tools/hvmloader: Retrieve APIC IDs from the APs =
themselves')
>> > Signed-off-by: Roger Pau Monn=C3=A9 <roger.pau@citrix.com>
>>=20
>> Ugh, that's on me. I was sure I saw the pattern in Xen (from where the
>> code came from), but clearly I hallucinated.
>>=20
>> > ---
>> > Could also be fixed by using the temporary variable in the call sites,
>> > however that's more code in the call sites at the expense of less chec=
king.
>> > I don't think the extra NULL check logic in cpuid_count() is that bad.
>> >
>> > Overall the solution proposed in this patch is safer going forward, as=
 it
>> > prevent issues like this from being introduced in the first place.
>>=20
>> Might be worth moving this same extra checks onto Xen's cpuid. There's
>> no shortage of `junk` variables at the callsites.
>>=20
>> > ---
>> >  tools/firmware/hvmloader/util.h | 11 +++++++++++
>> >  1 file changed, 11 insertions(+)
>> >
>> > diff --git a/tools/firmware/hvmloader/util.h b/tools/firmware/hvmloade=
r/util.h
>> > index 644450c51ceb..765a013ddd9e 100644
>> > --- a/tools/firmware/hvmloader/util.h
>> > +++ b/tools/firmware/hvmloader/util.h
>> > @@ -190,6 +190,17 @@ static inline void cpuid_count(
>> >      uint32_t *ecx,
>> >      uint32_t *edx)
>> >  {
>> > +    uint32_t tmp;
>> > +
>> > +    if ( !eax )
>> > +        eax =3D &tmp;
>> > +    if ( !ebx )
>> > +        ebx =3D &tmp;
>> > +    if ( !ecx )
>> > +        ecx =3D &tmp;
>> > +    if ( !edx )
>> > +        edx =3D &tmp;
>> > +
>>=20
>> A somewhat more compact alternative that doesn't require tmp would be:
>>=20
>>   eax =3D eax ?: &leaf;
>>   ebx =3D ebx ?: &leaf;
>>   ecx =3D ecx ?: &leaf;
>>   edx =3D edx ?: &leaf;
>
> But that performs the write unconditionally?  It might be more compact
> code-wise, but might incur in an unneeded store?

Pretty sure it would all optimise to very similar, if not identical code.

>
>> It clobbers `leaf`, but only after it's no longer relevant.
>
> My preference was to use a explicitly tmp variable, but I could switch
> to using leaf if that's the preference.  Given that Andrew has already
> Acked the current version I'm tempted to just go with what has already
> been Acked.

That's perfectly fine. It was merely a cosmetic nit. LGTM as it is too.

>
> Thanks, Roger.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Fri Apr 25 12:55:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 12:55:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.968034.1357745 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8IaT-0005zs-Gu; Fri, 25 Apr 2025 12:55:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 968034.1357745; Fri, 25 Apr 2025 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 1u8IaT-0005zl-Dw; Fri, 25 Apr 2025 12:55:25 +0000
Received: by outflank-mailman (input) for mailman id 968034;
 Fri, 25 Apr 2025 12:55: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=AYju=XL=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u8IaR-0005fg-Hk
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 12:55:23 +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 8cdf432c-21d4-11f0-9eb3-5ba50f476ded;
 Fri, 25 Apr 2025 14:55:23 +0200 (CEST)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-ac2ab99e16eso483771466b.0
 for <xen-devel@lists.xenproject.org>; Fri, 25 Apr 2025 05:55:23 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 a640c23a62f3a-ace6e41bc36sm133973866b.33.2025.04.25.05.55.21
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 25 Apr 2025 05:55:22 -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: 8cdf432c-21d4-11f0-9eb3-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745585722; x=1746190522; 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=dDAQtEeaCdNJWUkmGBO/iyPhlfbQ0PELgLWmxIlFM04=;
        b=MokC2rvHBiQz/Yt+yy8pPlVRPAL59FE7pyw4qt3Y6PVbfH8TMJm8ZWjP0aZTfBKVx+
         rsYQOuK9HZ0sq18BdqgjnZpan780zSK+cEnhfmUnWhxQunB1JdO+SbHYggsK2/mKJlLS
         DAdB+e/zCFg8e/V53P6gQE8TZMr73au8t7RSs=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745585722; x=1746190522;
        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=dDAQtEeaCdNJWUkmGBO/iyPhlfbQ0PELgLWmxIlFM04=;
        b=tkameTbfTQZNziTjQApaYmjkua+WJERi/xp/4OHMaK5BZzGA6NlyShoWrxlrW1GePm
         qSd46SHV/rKySkvp6mxX0z34bzOTQzT2UogMOkfws2jJOxJYSiNn45G4ICWnMOAGaQal
         bDTDK2fdGVwTeeWD6O4u/ggtQC+barHlLF5MXob8FG2A2UTbDuwdocfJ5k9/VpzjveaD
         oQo3p2UWS66PbPsJbDiGPgLG+J6IvcVvnHbh1WgHo7yfLj+wbuPQdykogCL6wf5yTjb/
         8x3OcATOyo6GueCAaTo+0Z/H6So1Vn8RNnR9r7TnuyVFrc76utwjKr6yL7YvCjLR+kXK
         lRpw==
X-Gm-Message-State: AOJu0YyKxP/rpwaCMc+LlbMs3nQ2hSxiY3VwOfmCTD80k3vTf79d5yA3
	nYsKxyDAp9fNV3/XGL/UFX/u5vpfJZt+83d1TTFE4Qc823/Oh83KbW+qbfV24s8=
X-Gm-Gg: ASbGnctyutXI1U2tkiFqcPk86Vf3xIE9usfxd65g0Uqw4zYzWiCpH8aVuCWLzr/K8fs
	njs1/ws3e2HJyKUZOsGySPeRiMWwFyFxBW+UDk1P5NPKiFs9hkQsdJHb7V2iLvrE9tO5QhffPoB
	/g5h36PgYY3puTPFbQO0jcvxJJ7Z/QP7plRP82Wa5H1jmEz21x5XCWErHfsZj+n6oWVSy82W0KZ
	Q31t0ogOcfd9PzrGPS7DysiqtvCh/BJRyKAGCy6b2wg18JM02yJf5qY9uvilTSC0gJpOd2S1TJu
	HOr+FkN3hXHn7VAgB2ge7cqDz+jAatfolxKJ5NgPXH6PQw==
X-Google-Smtp-Source: AGHT+IFpqtLrQeC6vZ554o6lti8v8FTI/l303cv2y1NRrymjBT+Pkk32hd+owQfs8oJYt5K7ClU0ZQ==
X-Received: by 2002:a17:906:4795:b0:acb:6746:8754 with SMTP id a640c23a62f3a-ace7111ef01mr206925766b.27.1745585722329;
        Fri, 25 Apr 2025 05:55:22 -0700 (PDT)
Date: Fri, 25 Apr 2025 14:55:20 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Alejandro Vallejo <agarciav@amd.com>
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Frediano Ziglio <frediano.ziglio@cloud.com>,
	Xen-devel <xen-devel-bounces@lists.xenproject.org>
Subject: Re: [PATCH v2] x86/intel: workaround several MONITOR/MWAIT errata
Message-ID: <aAuGODoMFfZ2fEx-@macbook.lan>
References: <20250423113215.80755-1-roger.pau@citrix.com>
 <D9FQ3JVWGOSR.1F6NIIEDCUP16@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <D9FQ3JVWGOSR.1F6NIIEDCUP16@amd.com>

On Fri, Apr 25, 2025 at 01:36:42PM +0100, Alejandro Vallejo wrote:
> On Wed Apr 23, 2025 at 12:32 PM BST, Roger Pau Monne wrote:
> > There are several errata on Intel regarding the usage of the MONITOR/MWAIT
> > instructions, all having in common that stores to the monitored region
> > might not wake up the CPU.
> >
> > Fix them by forcing the sending of an IPI for the affected models.
> >
> > The Ice Lake issue has been reproduced internally on XenServer hardware,
> > and the fix does seem to prevent it.  The symptom was APs getting stuck in
> > the idle loop immediately after bring up, which in turn prevented the BSP
> > from making progress.
> 
> Ugh... so this is what it was... Awesome having this madness fixed.
> 
> Do you happen to know if Linux has a similar fix in place?

It should have now:

https://lore.kernel.org/lkml/20250421192205.7CC1A7D9@davehans-spike.ostc.intel.com/

> > This would happen before the watchdog was initialized, and hence the
> > whole system would get stuck.
> 
> That's nasty. It was the misassumption that the watchdog was already
> running that had me going in circles thinking it was a lockup rather
> than a livelock. Oh, well.
> 
> I believe the kudos for finally being able to reproduce this goes to
> Frediano?

Yes, Frediano managed to get it to reproduce reliably in the lab
(maybe 1-2 hits per day), and afterwards we pushed the rate up by just
rebooting in Xen itself after AP bringup, once we knew the specific
hardware that exhibited the issue.

Regards, Roger.


From xen-devel-bounces@lists.xenproject.org Fri Apr 25 13:05:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 13:05:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.968049.1357755 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8Ijw-0008MB-Dw; Fri, 25 Apr 2025 13:05:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 968049.1357755; Fri, 25 Apr 2025 13:05:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8Ijw-0008M4-AC; Fri, 25 Apr 2025 13:05:12 +0000
Received: by outflank-mailman (input) for mailman id 968049;
 Fri, 25 Apr 2025 13:05: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=6c45=XL=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u8Ijv-0008Ly-EP
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 13:05:11 +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 eb26a439-21d5-11f0-9eb3-5ba50f476ded;
 Fri, 25 Apr 2025 15:05:10 +0200 (CEST)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-39efc1365e4so1103125f8f.1
 for <xen-devel@lists.xenproject.org>; Fri, 25 Apr 2025 06:05:10 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3a073c8ca99sm2321197f8f.20.2025.04.25.06.05.09
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 25 Apr 2025 06:05: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: eb26a439-21d5-11f0-9eb3-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745586310; x=1746191110; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=a8XTFW5MXdZ2AJnFdq28UM8hkzvg+RToqPjVE71pa8I=;
        b=LEQu7B7UlOHt8Cr3j6yV6dd3yuBXO3cY8aEN8uRzjoQA8rSOYU4BR/JxQPuRs6n1OA
         RAsqT2ZKHCLqR+lG/Hx0wwTP6bxCP4/X45z8FAe7gnrKsjOAinn2oOqHCtUDCrKxjo9r
         ratsva+U0/OT4e37iw3IVwuFxXA6gkRq2wQtk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745586310; x=1746191110;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=a8XTFW5MXdZ2AJnFdq28UM8hkzvg+RToqPjVE71pa8I=;
        b=BkVFYbAQQ5aWlRyfE3A5Zi7orDEO5B1b+QucWteNxpdThsdpTOd97IawkGWUfNPVcl
         sNWI7BmUfr0HCAViehmGPEChdV6G0dF/muRouOW62UhK65WnMOKVs2iRPF9r0Bo2poQc
         KaVBFxsDXYPgSmPxy2G7UzSq/kTR+SzEBZpEES419G0/a1fze4EB1Wj59gA1lmKzWR0B
         ZeQCSo9FAXP0z7sXq7ykTW3m6b9BxkZptfUAnXxCvDOBGRSC8DP7qRDYUvXLVRypgUel
         QKME4eNHwcCB/DHrvmovbOoAWbKFRhqipGwxoS/9C4HfKgpFfMgZXftarP/IMt613MFl
         EePw==
X-Forwarded-Encrypted: i=1; AJvYcCWHAwHXNyffVhEMmQ6bf3j6XDLM60r+1of3jbJzjJyaAj02R2mbnuS1npusfEbQeHHU3osOzR2Z0X8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxJIBpg1LfkDYkXfpcCO/A7TrRgK9Ncr/gXDJx3pHakWC65tDvs
	g0n0bUTaUT4RWO8f6L4p9mBVbGSezxVE9eG34bdd5u/FjwW5rcGZX1lKairNVlQ=
X-Gm-Gg: ASbGnct6PHFXljMQNTvL9eZ8xhwgRS/JB3TdT58yB4gKCeclddG0kUM9aPxVXdee+QI
	UyISvqX4BuIf2MvqAFfGgOo4sE++LSun2zl96PfE0LO7dYllP4YEnpZLCfiMLcw4HNuDtdOIWv+
	A6tl/LLLsOotQ+blVo4mDugNizmRHqyu8MbEjxjMv0tmYmMULRwOygWpE4hLtfBgZ4nBZ0AyUWS
	HXLBDMb5lsYZyrxtbTdeetqhkFrWEvRwZOKHfJUb8LjGlmC284nfQwGjTtomU890NRvtWlQdc02
	23QhJ5xujD38GHRgK7N3NsdF0swo2oAHfzhWf/X3ssKDjwBgI2SzwuN4Xhu1wB8pLnTUbL6P9uM
	P16OxnK9+1e0HjR4y
X-Google-Smtp-Source: AGHT+IGIcqnZC4vsTLJCXRMwfhQApfMc5iLpXDbGB/Z6h3rl3hGWl4GuKmcUz9FQakmMN+fEXKz0vQ==
X-Received: by 2002:a05:6000:2287:b0:391:4873:7940 with SMTP id ffacd0b85a97d-3a074f84b97mr1740244f8f.54.1745586309958;
        Fri, 25 Apr 2025 06:05:09 -0700 (PDT)
Message-ID: <74bf3a58-6c90-4123-80e3-b72ba67ea46d@citrix.com>
Date: Fri, 25 Apr 2025 14:05:08 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 1/3] xen/mm: Introduce mm-types.h
To: Jan Beulich <jbeulich@suse.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Shawn Anastasio <sanastasio@raptorengineering.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250425112415.245585-1-andrew.cooper3@citrix.com>
 <20250425112415.245585-2-andrew.cooper3@citrix.com>
 <e5c6b448-945c-4c93-a3d6-e6e598102c2b@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: <e5c6b448-945c-4c93-a3d6-e6e598102c2b@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 25/04/2025 1:48 pm, Jan Beulich wrote:
> On 25.04.2025 13:24, Andrew Cooper wrote:
>> The type used for pagetable attributes/permissions is currently unsigned int,
>> but needs to become architecture dependent as PPC needs unsigned long.
>>
>> Introduce mm-types.h to house pte_attr_t.
>>
>> Given the new toolchain baseline, we can use __has_include() now to remove the
>> need for boilerplate on most architectures.
> That's true now, when it's just pte_attr_t that's there. Memory management,
> however, is pretty different between architectures, so I wonder if in the
> longer run any one will remain that actually can use the common header.

Anything in xen/mm.h is common and needs architectures to provide (or
use the defaults) the bits required.

asm/mm{,-types.h} still exist (when necessary) to provide the
arch-specific extensions.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Apr 25 13:13:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 13:13:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.968063.1357765 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8IsE-0002fa-8q; Fri, 25 Apr 2025 13:13:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 968063.1357765; Fri, 25 Apr 2025 13: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 1u8IsE-0002fT-5v; Fri, 25 Apr 2025 13:13:46 +0000
Received: by outflank-mailman (input) for mailman id 968063;
 Fri, 25 Apr 2025 13:13: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=ZJ1s=XL=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u8IsC-0002fN-QK
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 13:13:44 +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 1770f695-21d7-11f0-9ffb-bf95429c2676;
 Fri, 25 Apr 2025 15:13:34 +0200 (CEST)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-43cfe574976so16086685e9.1
 for <xen-devel@lists.xenproject.org>; Fri, 25 Apr 2025 06:13:34 -0700 (PDT)
Received: from [10.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-4409d2e0241sm57397215e9.37.2025.04.25.06.13.33
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 25 Apr 2025 06:13:33 -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: 1770f695-21d7-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745586814; x=1746191614; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=P9BtxEHfgdCDFhfXFXch/znWxTUTAoGXf/K+on2Qdmw=;
        b=Wq+BLRvFJy5no8/VIUmR6BTKkW5+HvNyzWfWwjweyS5nwFiK6aMBFyQ3XDz2cuhlHw
         UrlGVyzGwCn0Rrg67uO2PUIAVSYfBJzbImiCdV2YbZ+1pZ6Cl/oUqqnND7TzfG5w8jFb
         2Re8ATFPlg+cFAdyowMiiEfa2bYBjNdmZPO9cDrjb8IPElsJCZXBEVlItK8YN+KMuB9J
         8qxo4iZ5GTDkQbAu+FQZx3HlgYXoGIYekp6Z+guv3RaaLkxtHD+bDCDH9UrZgmd2WgeT
         GNTpEa/wGXGYsWRLOHuLSp1D4Drj2kZUoCdu7q8qA0DHjEMIBCZ0T1JKdUCD6pdZViIf
         kAJQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745586814; x=1746191614;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=P9BtxEHfgdCDFhfXFXch/znWxTUTAoGXf/K+on2Qdmw=;
        b=B2vQOb8fIJkRwIOr8TqyyOtjLQYSl6RX4WiQ+SQDUBoGvX7+ujxfnFoAS9ADjVdD2X
         9U89Z/Vh9TS+2HS8tUaduKhTBpF0glA0Gc/knA8Mv8JRRH7O5E7KfKi6kjEmxOBWzO4m
         A15mVP61iVA9v829MmfXRnXD4qJCXaEkabv2fhTpAztmrVzgeLKxPSqy8NqYMk2WwSzw
         vEplVPTi0bGcLm53yaqN7qzO6r6mIlvIWohKH7GX4EUbpJpPM+ebRCetE2i2whXM55vF
         HP+9G42fehVeyEoDyR+69Y5Snm19g7h6qzzevq94++w6Dzh1STZcrz+yw/iw+yIYWbkX
         mi7A==
X-Forwarded-Encrypted: i=1; AJvYcCUS0XYpP+HF74HQtHD17bzoYU1XDrWy6ZVuOt2/V4m7gNW3wAe2yxgj3ebvMnH23puR/cfx8Kvo+UQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy1bmxSuzoVRto1W/I4S0WztE2ZHbJIMwHYAhSZaozk3N4WVyUV
	Jy+mdKYkTfGtdiItplGV0ipAIjCSOsgVi+KZd2VMWs9bdRUwooyULgo3jbzAuw==
X-Gm-Gg: ASbGncu8Fg5NSrwdqs8WWfVyY07leH+TQKMwGguiQlzNMMvRf9i+7kTQfMomCnoMfoZ
	XgcZFQl11VTDEw0kFlcQl2voHq2GMnsQgZX2elxAdRaUBtwVMKe05+pme08Dg/Tql1Ui6mpzu9V
	JXRJEdY3lyfxtKB0/UdaSOSkj5h1EaLfd7FeVRVrHH2jsaQpGgwx1psStm2nt82NBc3BZBjk53D
	mwN6JsXfos+bzuh4vO6wy8BnRagwIAM1mW6GpHAKPRA0nkt79tWIQUOE2Yk0Nedl/YxjaqCXflx
	y4jcELIYEPvwRGnoyQrPlmOyrU41AjRUUFhY9mTZx6QvTrGeg5xOOt7NQUjk8Xxl4cG/NlI1GmK
	wFBmk+hhTVy5CyPcdhm6UIjSQMg==
X-Google-Smtp-Source: AGHT+IERkx6LUvQcqpiK7naYuLxL8OvzinRF9kzuus9dtFswvSdDgQNvp62QOdcML3WLAqSYTAhmew==
X-Received: by 2002:a05:600c:a089:b0:43d:2313:7b49 with SMTP id 5b1f17b1804b1-440a65e499fmr21660595e9.12.1745586814030;
        Fri, 25 Apr 2025 06:13:34 -0700 (PDT)
Message-ID: <654dd5d3-b235-4f5b-9ad6-b3f1281434d2@suse.com>
Date: Fri, 25 Apr 2025 15:13:32 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 1/3] xen/mm: Introduce mm-types.h
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Shawn Anastasio <sanastasio@raptorengineering.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250425112415.245585-1-andrew.cooper3@citrix.com>
 <20250425112415.245585-2-andrew.cooper3@citrix.com>
 <e5c6b448-945c-4c93-a3d6-e6e598102c2b@suse.com>
 <74bf3a58-6c90-4123-80e3-b72ba67ea46d@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: <74bf3a58-6c90-4123-80e3-b72ba67ea46d@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 25.04.2025 15:05, Andrew Cooper wrote:
> On 25/04/2025 1:48 pm, Jan Beulich wrote:
>> On 25.04.2025 13:24, Andrew Cooper wrote:
>>> The type used for pagetable attributes/permissions is currently unsigned int,
>>> but needs to become architecture dependent as PPC needs unsigned long.
>>>
>>> Introduce mm-types.h to house pte_attr_t.
>>>
>>> Given the new toolchain baseline, we can use __has_include() now to remove the
>>> need for boilerplate on most architectures.
>> That's true now, when it's just pte_attr_t that's there. Memory management,
>> however, is pretty different between architectures, so I wonder if in the
>> longer run any one will remain that actually can use the common header.
> 
> Anything in xen/mm.h is common and needs architectures to provide (or
> use the defaults) the bits required.
> 
> asm/mm{,-types.h} still exist (when necessary) to provide the
> arch-specific extensions.

Sure, but you kind of avoid my question: Are you reasonably certain more than
one arch will still be able to use the defaults, once a few more things appear
in this header? (IOW: Won't we be better off having each arch have its
asm/mm-types.h right away?)

Jan


From xen-devel-bounces@lists.xenproject.org Fri Apr 25 13:14:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 13:14:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.968067.1357775 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8Isb-00032y-FJ; Fri, 25 Apr 2025 13:14:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 968067.1357775; Fri, 25 Apr 2025 13:14: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 1u8Isb-00032r-CG; Fri, 25 Apr 2025 13:14:09 +0000
Received: by outflank-mailman (input) for mailman id 968067;
 Fri, 25 Apr 2025 13:14: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=/m1g=XL=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1u8IsZ-00032O-TY
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 13:14:08 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on20604.outbound.protection.outlook.com
 [2a01:111:f403:2412::604])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 25083e86-21d7-11f0-9eb3-5ba50f476ded;
 Fri, 25 Apr 2025 15:13:58 +0200 (CEST)
Received: from PH8PR12MB7326.namprd12.prod.outlook.com (2603:10b6:510:216::7)
 by SJ0PR12MB6903.namprd12.prod.outlook.com (2603:10b6:a03:485::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.40; Fri, 25 Apr
 2025 13:13:52 +0000
Received: from PH8PR12MB7326.namprd12.prod.outlook.com
 ([fe80::6d76:9c33:d230:8264]) by PH8PR12MB7326.namprd12.prod.outlook.com
 ([fe80::6d76:9c33:d230:8264%2]) with mapi id 15.20.8678.025; Fri, 25 Apr 2025
 13:13: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: 25083e86-21d7-11f0-9eb3-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=I92rCOyuKSguPXWlID950wVypLAVF/lTzd2uKUINKEuGFJMNmQBUV6wtx41PXeHOE+qgGjIi+j7lkVb6zmWf9DqRKO40nnePR8uRz2+PqMMJrlQLz2oUaBZDZ2fzFLUrpNecmZp/3XyWPYkvVuwXrieJfrOAlRmXxA6pEVAeaJfwc/8Oy0qFC/pXxU4iHx5RgaSW46HVZNO+2Mh/KE7Iq2gSEsePQ+WUN6unrOL3tQGPIaVFUS0e+vK0qtvfL6s9J9hyJrj+MCFDjzHxdgsTdW56BGd+QE0OcZTgvyTAn2cQ0iXQi6PRXNojomTfD1YMZrztktLUDOnklXWHH6lXlQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ouD44gM6jWwqliAuSOF2WgNYF7cw/xyBBtr/xDScH5g=;
 b=mwUaUuaAsFuIOJwc8X+IsGC8ski0r+cK+BoISAbkaza/11k1P+BAVEPf1E0FE7Fw7oAqiB+i4nljYtr3LBz0iOW8ojCf0DY2quKVFZgxd987aYEoc5+H5gQHmvCXLq2YyFNgI91ZSrybW+RFDQqGe6Cvb2ld7FVD8ZmVvR5ou1wPGZlsgV7Ctsah6PIsNTieI65AP7kaUTJf8mF7A/owQpW7aoc4AIanYJbd8a7k8INQ5ECPfQUbaIkSY+uyiBJbptbbTkRD2VutWBKKJ0I+V1kplHAUXP9XfLGpZqSJLbMRon2NfRInDJRYfreA8v74fLa2yULYDclnjUd6+4/2Cw==
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=ouD44gM6jWwqliAuSOF2WgNYF7cw/xyBBtr/xDScH5g=;
 b=JSfoISwEsGWH06GKX/7D78kQ6ES6EebBbm2JBUKU7+BpE4w8vuXvkMeoBkQmDr1XSbC4FgYGwWUtVM+S8WpJIw+fSqPT1ihcThlIxOujUUvTuTNBTpFc8lsV9wAjRTdwP405cJepZkXXpQWKgXyVitRRzV2/a2Pr63aO9SgfbSs=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <612b5d62-dcbe-4d85-866a-dab5c1b68b8c@amd.com>
Date: Fri, 25 Apr 2025 14:13:48 +0100
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1] xen/arm: AArch32-V8R: Add MPU register definitions
Content-Language: en-GB
To: Mark Brown <mark.brown@parrylabs.com>, Julien Grall <julien@xen.org>,
 Ayan Kumar Halder <ayan.kumar.halder@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <20250417155511.1854081-1-ayan.kumar.halder@amd.com>
 <306e5414-1552-4605-86d6-b23b89d00bc9@xen.org>
 <PH1P110MB14413B4A22675F4C1FD4DC109CBFA@PH1P110MB1441.NAMP110.PROD.OUTLOOK.COM>
From: Ayan Kumar Halder <ayankuma@amd.com>
In-Reply-To: <PH1P110MB14413B4A22675F4C1FD4DC109CBFA@PH1P110MB1441.NAMP110.PROD.OUTLOOK.COM>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO4P123CA0050.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:152::19) To PH8PR12MB7326.namprd12.prod.outlook.com
 (2603:10b6:510:216::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: PH8PR12MB7326:EE_|SJ0PR12MB6903:EE_
X-MS-Office365-Filtering-Correlation-Id: ff164985-5e53-432a-52f7-08dd83fb063f
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?ZEN6emR0VFpPWEVrM08wL1JwY3FZVUFWOFdiN3BmS2tkd3puMmU3em4zMUc5?=
 =?utf-8?B?NXNCblhuOGhEdFR5dGVIS3JJWUlpRGNROHZ1VU1rUW03bVZsN0FLWUhlNHBF?=
 =?utf-8?B?OWlHNTVRSzJiQ003eFNJNnF5YmNiZWpIRnF2TllHRVFNTG1HcWdqQTdIZGZW?=
 =?utf-8?B?bVFhUVhpT3FyajFsYWJGb1EwYnA3NU95bFFIUGNKcjJwaFpVaWJ5ckJlRVY0?=
 =?utf-8?B?eGFEb1daNmMxMkM1Qmxrc1A2a2hKZEdUb05KTjh6MS9OWnFBQnR2eTFsZ2RG?=
 =?utf-8?B?RDRBMXJ4RGI3R1lRNXA3UTNIN01wUzdQV0ovc1BnNmJYVjVmL2VzVDRZYmR4?=
 =?utf-8?B?dkZWcGZVOTdPU0RqRzJnenRWMm1RazdwdjJ0RTk5ZENuLzdPdWh0Y1AwLzM0?=
 =?utf-8?B?dDdLMVVYU1dndFJ4QlkvekphUkxWakszRDBad0FmZkVqMUdTQnlHMUZ5aWRY?=
 =?utf-8?B?YlhHUytEcG5vcVF5amNMNWxpMjY0N1RHRVkzVFBEUS83UHhvV0txdE5laDk5?=
 =?utf-8?B?YkxaRTdQQWFudmgvcCtsQVNsU1BPb2k2SUdpWWFNT1lHcGJnbmVBM2FNclps?=
 =?utf-8?B?NzZVUHN2Wkh3WGh2MGFlRE1sYTZzZ1hWNS83THk2eklzRytnRUFyNkxtSG85?=
 =?utf-8?B?ZlBjUnZVc3NHdE5wT0V6Nm5ab1V1ZEltZzhYK25mZjVRazJoY1ZnT2ptTFN4?=
 =?utf-8?B?L3V2TXlqbWxBZkNIMGZZNkpJL2RZRkhVU09POWhwS0F3SHBKYm9FQi9UcnA4?=
 =?utf-8?B?d0JaSm02dUdwaG04U2hiaXp6NUN1UFVDdzdUWW94Z3dpOVBZcmR4c3pXLzhy?=
 =?utf-8?B?dVIxWWNVaU4vb3o2dXFhaEV0bVdUcVBYalk3QlYvYUZmRXBqVzhLUGpQaE1Y?=
 =?utf-8?B?RG9TUEFsRTh3NzRsZ3Zyb1ZIWU00aXpabVFId1kzM1lHUEc2VFg5SFNuc0hq?=
 =?utf-8?B?R2pIRkZQVlJhSGxSV2lHS0ROclZGOTJDMWhlN3JZQVRXYTNKc2p0dGg0UXhl?=
 =?utf-8?B?dVMvaEZFb2pQMG1xZlNWaVpLYWJDbXlqN2ZkdEtSaTlyMS94RVdGWm0zREV6?=
 =?utf-8?B?MDhha2NVN0NtNUR6dkxrdEFBSlEyQTBkUUhoZW45UkZyUmJ2cGJ5d1gvZDFi?=
 =?utf-8?B?SENHSnowL24rTURCUzJoUjJWRXRFT3MrVEova0hodGlUR1VwdDRWOGRFMFlG?=
 =?utf-8?B?a1BDbXhGbVlQVlFZTEZoUTJrY1pmYmZ4eEZvWTZtN2QyM3hUQ3ljWVcwclZB?=
 =?utf-8?B?Qm1ZZFBRY2YrUzhVNWExTCtuQ2ptTFdySW1UYkRPcmhUd2xTbHBVa2gzdnpr?=
 =?utf-8?B?MTl1WGlWSVl4dXpPd1BZS1QzZUZpcnNLdkpTbVh1VjlpbkpSSXArejUxc2Uz?=
 =?utf-8?B?L2RGMXBnZXdmcTFXTlNONHc0YUJDd1dSc2E5K0JLVlFxRUtFdk5ZQTNjZXNo?=
 =?utf-8?B?RmVlSThXSEc1VmI3VGdERlZISkNKLysvb0ZXVzFEdk1rWkZTVDVXRDhGQjVq?=
 =?utf-8?B?SUFQbUUvZG9Pd0gwbU1kV3cxNmFIMFE5K0pjU2tkdVorUCs1bHdKSGxNMEJt?=
 =?utf-8?B?cU9kaGlWNEhIWmRrQjRvUzVMTDcyVGlNc2FBTkZOYmp5T2ltMnoxK3doVkpt?=
 =?utf-8?B?M2tHMXU5TDFReWg4RDZIczl2aWpsQ1Z2TVJDOVExQXEzMDRDeTl2YnZRZ09L?=
 =?utf-8?B?NWVPZXIvYkFlcEluM21BODhPNEg0cURXaUlOZUdNaFVXWnM3Y2ZQY2c5Q2oz?=
 =?utf-8?B?RlhjdVVKVzRWQllZa1llbHJVR3A4emNxYnZ3bGFlRjlYeFE1SUdyL05NUE9B?=
 =?utf-8?B?Y3QyTjhJaHgzRlZyVFRwSElSTDZrbUdRZnNLYU1wYkt6alplVUREeno4SEhY?=
 =?utf-8?Q?oAkXnP+a6R9J6?=
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)(1800799024)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?SHlabEJ5em9XVjZYWXJ3eWkxSXYxM2F3M0FrTVZ0SUpYbk0vZFJNVHBiVVhh?=
 =?utf-8?B?U3NwUlA5Qm4zUlB5aWlPcktmeEV5aUpWQllWalRzKzAxVDNvNTNJT3pQcjFF?=
 =?utf-8?B?TzJLZFpweEdaRmtHMGxlTlRNQWQxdHdsMmVBbkpQRTRNanIzT0ZKaEQwSzB4?=
 =?utf-8?B?ZlIvQTBFVEQ0eWNzN0lsWmY2Y0JMOERqdzRRMTI5QXRJWWZSdnYvOHZ6VlJ2?=
 =?utf-8?B?R0tjcGp1SVBBV2xCR21VUHNEMEN3S3cyUHdGcWdUMUYrREVSbGVON3JqT3B6?=
 =?utf-8?B?NTNIdEEvNzd4eU10dW1JV202b2R0N1Z4RkhCNFZoRU0zdmhIWE55Z0RHajJ0?=
 =?utf-8?B?Rk5tR0hhcUdrckdVVXpKdS83Q1o2UzJqc0xXWnRHTXJRTFoxQzRpOTBxM0Jn?=
 =?utf-8?B?Z3ZyNUF1Wm5oNXE0VWJuMWp0M1NIcDl3cU5jTFM3Vm5ackkvYityekhZc2lk?=
 =?utf-8?B?OEdLU2x3d0J6YzF0Tng1cWswRk80d1daWVdFY2N3cjdqM1hjMFRLWHc2cTN0?=
 =?utf-8?B?dVVvUmdNbE5mU0NaQ1h2TlBSMEpSN2JyUFJ2emNtbmI4T2xzdU1sajdLMjRJ?=
 =?utf-8?B?cjhOeGF5Z3kvemYyK2J1eVZuTnE2bzhVMERaM0hUalhad0FPRjdiU3IxTXEr?=
 =?utf-8?B?Nkl1cTdCWEZxd3V1eXNUd21nK0NFUVA5a2s4ZXRkb2RJUTNQQ0FZYzcyS0Ru?=
 =?utf-8?B?dWRJMGllOEM0TGpVZ1hwRjlxZ3VuYVJFQjRtU0J5VGVWWVg1NnQydklBd1Nk?=
 =?utf-8?B?NmFKclRudWs0NkFKaEFJRTVZOEpVMFovcHl4NEpLTTdDTUUrb2d2TTBFdDZG?=
 =?utf-8?B?eXZ2NER0a05GcVRJWWkrMzF0M1puazVUNEJEMFVqT3RnNjBVOFBxNjgwUGxa?=
 =?utf-8?B?RlJOR0k3QVl1RFNXV2VVM21jUlBqdWxHNHE0UGE4TGhyRmt1allrL0t2dllx?=
 =?utf-8?B?ZzRnZmxENm4wWGRVT0FVSVJ1Yit6ZlhOcnlmMlV5c3cwd3YreGhWendqckZl?=
 =?utf-8?B?OGtjRUFheHJvZGw5SEZzLy9yYk5QZnFZTnV0L2RnZ0JXeTBnaDF4Q2tjUDdW?=
 =?utf-8?B?UnBVSUVLbkdqSFg5eDZOOERQOXJoSjRDVXJycFoyc1dWOFllVWpVNlRGTkFk?=
 =?utf-8?B?ZnkzLzdHTVNQSmJ4WENEZjJ6SVhtaXZ5WEZycnl3MVhyNkxXaXZNS2xuZDlS?=
 =?utf-8?B?OUROTEZRaWcyeGZtY0Z0SnNWdWI2YnNBbE1jcWlDT0s0ZStqVVBkcUxzTWdV?=
 =?utf-8?B?aDFJc3ZLSnFzVmN5TEpxbDRFZDBLZUtTV0E3SElEcThqL1F4ZUJTMWkzZ0tu?=
 =?utf-8?B?eXI3bVlSMkM1SUVvQ3Z6dGFyN3lZbFVnVGQza2RlQk9qL1MvdDNlMFhLZjk4?=
 =?utf-8?B?TEh3ai9SeVk1WThWd0p0YTZOWlRWdzFvQnVYa2hncTNmMGwvR1BKZW5zTnVi?=
 =?utf-8?B?ZTNLZE9XdGlGVWFiaXJIYnRzbndKaWp1a0FKNFZlSlppWWpuNEQ0SmdPZVor?=
 =?utf-8?B?STNmQVpWSGMxZWIrcTQzZStndnduY094a21QV0lKa2ExS2tibzl3dHRtZ2FQ?=
 =?utf-8?B?VDJCV1d2MVUrQXZyczJ2Mk84RU5jc3h5aDN5cHl2Rm9lV1VBU243ZGFlQkxU?=
 =?utf-8?B?eUhZNEpucGxMQjY2Y1VZeEwyWXJpZFVQMFBDYXJYNm1FVmd3V1ZqU3ljK0dC?=
 =?utf-8?B?bkE0ampESjN6UnpnOHpSZDBBUGt1dEZGajl4ZlZBdFo3M21VekhHS3cvSG1D?=
 =?utf-8?B?U1lkMVFCRnVzbWhKU0g1N2psUmsyVEl1K1U4dndxdGZwUHhKN1hIZGlJRExT?=
 =?utf-8?B?TjA3dkJCVUVHWXdZQ0hlaUVIZEExajlmMldpUVdmWGE1NUs2ZUJXTVU4SVB3?=
 =?utf-8?B?SFVVTW9ZZlNkdUlUV1RobDl2RW5tN3VYK0k1WTBTYXhmWmJLWktaZ05pam4y?=
 =?utf-8?B?UTBzQXpkdGk4WFRFL0ZNcXJZaUhjeHZyN0RFUStKZExPc2QxdnJ3WFdTRE5u?=
 =?utf-8?B?dDU3Q0g4WS9Bak9rVXJMZW9CdjJxL1dUa0kzVVpwQ3pDZERuTklXNUNTaCs1?=
 =?utf-8?B?VEgxMnhPZ2kyZk55TzlzSGVtMmZ1NExiOC94VjNBc1hkZWwvUHR2aFM4U25K?=
 =?utf-8?Q?5b1Ad2JOIFiBsb0GFgLTjNtNr?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ff164985-5e53-432a-52f7-08dd83fb063f
X-MS-Exchange-CrossTenant-AuthSource: PH8PR12MB7326.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Apr 2025 13:13:52.3065
 (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: peqY9EB1a33WmqPWqQZejs+TH4OR1QdEMsq7w6dMPV/qDfnPl4FIQW/MKFnixyL1sih3nv0ubB9yLY8Zjuqb3A==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR12MB6903

Hi Mark,

On 18/04/2025 16:00, Mark Brown wrote:
> Hello all,
> This is my first post to xen-devel. Since I'm new, let me give a brief intro about "Why?"
Welcome :)
>
> 1. I am interested in easing the ongoing burden of repeatedly obtaining safety
> certification for Xen for eventual use in high assurance operational *systems*.
> Call this an evergreen certification effort.
>
> 2. When I read the ISO26262 and avionics cert standards, I note that there is a system
> architecture (it has its own "System V" lifecycle) that encompasses a set-of-n
> hardware items (e.g. fabricated SoC analysis and also FPGA soft IP development) and
> also a set-of-m software items (e.g., bootloader, hypervisor, guest OSes, apps, containers,
> etc.). For high assurance, we must evaluate the entire system and not just some of its items.
>
> 3. Also from the standards the govern the lifecycle and processes for developing
> high assurance systems, hardware, and software, maintaining (automated) bidirectional
> requirements identifier traceability from safety requirements "down" (i.e., through
> levels of requirements decomposition, into *-architecture level designs, into software
> unit designs, into software unit code, and into software verification tests at the unit,
> library, module / architecture, and system level. From my perspective, there's a lot
> riding on these requirements IDs. I would guess that many in this community
> would feel concerned about dumping many (hundreds?) of requirements IDs
> directly into the Xen code base, even if these were located within comments.
>
> 4. Because of 1, 2, and 3 (above), when I look to understand Xen requirements sources,
> my first pass is to remember that Xen is just one software item, and it will need to accept
> integration requirements flowing in from the system (i.e., via KConfig settings and Device
> Tree / SDT language) and also from the core types that it relies upon (i.e., scoped down
> to the operationally-deployed core types including Arm Cortex-R52 during boot,
> but extending to co-processors it uses and then to IO devices that are used, etc.)
> Finally, sometimes other software items flow requirements into Xen, e.g., when
> Linux  paravirtualization or virtio implementations are scoped-in.

Thanks for the context. This is exciting as Xen finds new use cases in 
avionics.

However I think the right way to go on this is to send a RFC (request 
for comments) patch on the coding style.

Especially on ...

>
> In summary, finding an agreeable way to embed requirements IDs into the Xen
> source code seems essential to me, so that we can achieve evergreen high
> assurance certifications for Xen.
>
> Proposal 1: Rather than start by adding many requirements IDs into comments,
> we might instead start out by using a less-impactful approach.
> I propose that we could hand-pick some C data types (CDTs) that were known to be
> critically important to Xen's high assurance, and simply (re)name these CDTs,
> for example, structs and unions.
>
> This proposal is to adopt a naming convention for handpicked safety-relevant
> CDTs, starting with the first two identified below.
>
> For example in this patch, e.g. in xen/arch/arm/include/asm/arm32/mpu.h,
> two CDT structs convey the bitfield requirements from the new MPU co-processors.
> Specifically, in the typedefs "prbar_t" and "prlar_t" no struct tag (name) is used
> for either of the bitfield struct. I propose adding struct tag names to both, and
> then leveraging these struct tag names as requirements IDs.
>
> Suggested Naming Convention:
>   (a) E.g., For prbar_t, tag its bitfield struct with the name "PRBAR_BF"
>   (b) E.g., For prlar_t, tag its bitfied struct with the name "PRLAR_BF"
>   (c) Proposed bitfield struct naming convention: <register>_BF

You can send a patch to update 
https://gitlab.com/xen-project/xen/-/blob/staging/CODING_STYLE?ref_type=heads 
with the suggested naming convention.

However, we need a rationale for the above proposal. So..

>   (d) Going forward, for bitfield structs that flow-in safety-relevant
>    requirements from the core's Technical Reference Manual (TRM)
>    and registers, to use the suffix "_BF" to identify these structs. And
>    to faithfully reuse the TRM's name for the register.  (application to structs)
> (e) Going forward, for unions that wrap "_BF" structs, to name any
>    union member name corresponding to the "_BF" as "bf" and any
>    union member name corresponding to the whole as "whole".
>    (application to unions that immediately wrap "_BF" structs)
>
> The benefits of systematically following these naming conventions will be:
> 1) Even simple tools like grep -R can find all "_BF" requirements IDs that flow from
>      hardware registers that have been handpicked due to their safety-relevance.
> 2) Any CDT-parsing tool such as Doxygen, etc., can automatically find and trace
>     all usages of "_BF" structs at several levels
>     (a) Dependent structs such as "pr_t" can be automatically traced "up" to
>     their "_BF" ancestor CDTs.
>     (b) C function argument CDTs can be automatically traced up to any
>     ancestor "_BF" CDTs, with the implication that the function may be safety-relevant
>     because it accesses one or more "_BF" CDTs.
>     (c) Simple pointer-to-CDT usages should not obscure any facts that
>     either the ".bf.*" (accessing a safety-relevant bitfield by name) or the
>    ".whole" (accessing the entire register contents by value) were accessed.

This should be a part of the commit message. I would avoid adding any 
mention of requirements or req-ids in the coding style. You can put this 
in the cover letter to explain what is the long term view on this.

In short I am suggesting that the changes suggested for the coding style 
should be concise, so the maintainers can give their opinion.

Also if you can prepare a proof of concept with a sample Doxygen report, 
that might be helpful.

What might help the maintainers is to understand :-

1. What is the minimum change you are suggesting ?

Proposed bitfield struct naming convention: <register>_BF ....

2. How is it going to be helpful to the community in general (eg better 
code readability, ease of review, ease of mantainance)

"<register>_BF" can be linked to the specific section of Architecture manual within the code itself. It helps to review, mantain and update the code.

> 3) This convention will naturally allow the new "_BF" requirements IDs
> to flow into all future use / access of these safety-relevant registers, including
> future verification tests.
> 4) Also, it will naturally allow the new "<register>_BF" requirements IDs
> to be traced "up" into the TRM and automatically de-reference the semantics
> and usage and safety-relevant notes about the bitfield, the register, and the
> larger context of use for that register (e.g., at which instruction will the PMU's
> enforcement of "HPRBAR10" / "p15,4,c6,c13,0" be activated?)
> 5) The xen-devel community may find that using this naming convention
> provides an easier on-ramp to "start seeing safety and high assurance."
> This is because engineers who read any future C source code,
> or review any future patch series will see that specific lines in that C source code
> are indelibly tattooed when they refer to a safety-relevant register. Whether any
> line of code access the "_BF" register in part or in whole, that will become explicitly visible.
> The goal is to raise community awareness by flagging access / use.

You can mention this as part of the commit message.

Also it will be helpful if you can pick up an existing file (eg anything 
arch/arm64/mmu ) to explain the concept. As the new code is in flux, so 
it make things easier to understand the proposed coding style changes in 
the existing code.

You can take a look at 
https://lists.xen.org/archives/html/xen-devel/2022-05/msg01995.html to 
understand how we propose new changes to the coding style.

Hope this helps.

- Ayan

>
> Thank you!
>
> Sincerely,
> --mark
>
> -----Original Message-----
> From: Xen-devel <xen-devel-bounces@lists.xenproject.org> On Behalf Of Julien Grall
> Sent: Thursday, April 17, 2025 11:55 PM
> 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>
> Subject: Re: [PATCH v1] xen/arm: AArch32-V8R: Add MPU register definitions
>
> [You don't often get email from julien@xen.org. Learn why this is important at https://aka.ms/LearnAboutSenderIdentification ]
>
> CAUTION: This email originated from outside of the organization. Do not click links or open attachments unless you recognize the sender and know the content is safe.
>
>
> Hi Ayan,
>
> On 18/04/2025 00:55, Ayan Kumar Halder wrote:
>> Add the definitions for HPRBAR<0..31>, HPRLAR<0..31> and HPRENR.
>> The definitions are taken from ARM DDI 0568A.c ID110520, E2.2.3
>> HPRBAR<n>,
>> E2.2.4 HPRENR and E2.2.6 HPRLAR<n>.
>>
>> Introduce pr_t typedef which is a structure having the prbar and prlar
>> members, each being structured as the registers of the AArch32-V8R architecture.
>> This is the arm32 equivalent of
>> "arm/mpu: Introduce MPU memory region map structure".
>>
>> Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
>> ---
>> This patch should be applied after
>> "[PATCH v3 0/7] First chunk for Arm R82 and MPU support" in order to
>> enable compilation for AArch32.
>>
>>    xen/arch/arm/include/asm/arm32/mpu.h  |  59 +++++++++++
>>    xen/arch/arm/include/asm/mpu.h        |   4 +
>>    xen/arch/arm/include/asm/mpu/cpregs.h | 135 ++++++++++++++++++++++++++
>>    3 files changed, 198 insertions(+)
>>    create mode 100644 xen/arch/arm/include/asm/arm32/mpu.h
>>
>> diff --git a/xen/arch/arm/include/asm/arm32/mpu.h
>> b/xen/arch/arm/include/asm/arm32/mpu.h
>> new file mode 100644
>> index 0000000000..4aabd93479
>> --- /dev/null
>> +++ b/xen/arch/arm/include/asm/arm32/mpu.h
>> @@ -0,0 +1,59 @@
>> +/* SPDX-License-Identifier: GPL-2.0-only */
>> +/*
>> + * mpu.h: Arm Memory Protection Unit definitions for aarch64.
>> + */
>> +
>> +#ifndef __ARM_ARM32_MPU_H
>> +#define __ARM_ARM32_MPU_H
>> +
>> +#define XN_EL2_ENABLED  0x1
> I understand the define is introduced in Luca's patch, but this a bit non-descriptive... Can we find a better name? Maybe by adding the name of the register and some documentation?
>
>> +
>> +#ifndef __ASSEMBLY__
>> +
>> +/* Hypervisor Protection Region Base Address Register */ typedef
>> +union {
>> +    struct {
>> +        unsigned int xn:1;       /* Execute-Never */
>> +        unsigned int ap:2;       /* Acess Permission */
>> +        unsigned int sh:2;       /* Sharebility */
>> +        unsigned int res0:1;     /* Reserved as 0 */
>> +        unsigned int base:26;    /* Base Address */
>> +    } reg;
>> +    uint32_t bits;
>> +} prbar_t;
>> +
>> +/* Hypervisor Protection Region Limit Address Register */ typedef
>> +union {
>> +    struct {
>> +        unsigned int en:1;     /* Region enable */
>> +        unsigned int ai:3;     /* Memory Attribute Index */
>> +        /*
>> +         * There is no actual ns bit in hardware. It is used here for
>> +         * compatibility with Armr64 code. Thus, we are reusing a res0 bit for ns.
> typo: Arm64.
>
>> +         */
> Hmmmm, this would mean someone may mistakenly set the bit to 0 by mistake. If the field is always meant to be 0 on arm64, then I would consider to name is res0 on arm64 with an explanation.
>
> This would make clear the bit is not supposed to have a value other than 0.
>
>> +        unsigned int ns:1;     /* Reserved 0 by hardware */
>> +        unsigned int res0:1;   /* Reserved 0 by hardware */
>> +        unsigned int limit:26;  /* Limit Address */
> NIT: Can we align the comments?
>
>> +    } reg;
>> +    uint32_t bits;
>> +} prlar_t;
>> +
>> +/* Protection Region */
>> +typedef struct {
>> +    prbar_t prbar;
>> +    prlar_t prlar;
>> +    uint64_t p2m_type;          /* Used to store p2m types. */
>> +} pr_t;
> This looks to be common with arm64. If so, I would prefer if the structure is in a common header.
>
>> +
>> +#endif /* __ASSEMBLY__ */
>> +
>> +#endif /* __ARM_ARM32_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/mpu.h
>> b/xen/arch/arm/include/asm/mpu.h index 77d0566f97..67127149c0 100644
>> --- a/xen/arch/arm/include/asm/mpu.h
>> +++ b/xen/arch/arm/include/asm/mpu.h
>> @@ -8,8 +8,12 @@
>>
>>    #if defined(CONFIG_ARM_64)
>>    # include <asm/arm64/mpu.h>
>> +#elif defined(CONFIG_ARM_32)
>> +# include <asm/arm32/mpu.h>
>>    #endif
>>
>> +#define PRENR_MASK  GENMASK(31, 0)
>> +
>>    #define MPU_REGION_SHIFT  6
>>    #define MPU_REGION_ALIGN  (_AC(1, UL) << MPU_REGION_SHIFT)
>>    #define MPU_REGION_MASK   (~(MPU_REGION_ALIGN - 1))
>> diff --git a/xen/arch/arm/include/asm/mpu/cpregs.h
>> b/xen/arch/arm/include/asm/mpu/cpregs.h
>> index d5cd0e04d5..7cf52aa09a 100644
>> --- a/xen/arch/arm/include/asm/mpu/cpregs.h
>> +++ b/xen/arch/arm/include/asm/mpu/cpregs.h
>> @@ -6,18 +6,153 @@
>>    /* CP15 CR0: MPU Type Register */
>>    #define HMPUIR          p15,4,c0,c0,4
>>
>> +/* CP15 CR6: Protection Region Enable Register */
>> +#define HPRENR          p15,4,c6,c1,1
>> +
>>    /* CP15 CR6: MPU Protection Region Base/Limit/Select Address Register */
>>    #define HPRSELR         p15,4,c6,c2,1
>>    #define HPRBAR          p15,4,c6,c3,0
>>    #define HPRLAR          p15,4,c6,c8,1
>>
>> +/* CP15 CR6: MPU Protection Region Base/Limit Address Register */
>> +#define HPRBAR0         p15,4,c6,c8,0
>> +#define HPRLAR0         p15,4,c6,c8,1
>> +#define HPRBAR1         p15,4,c6,c8,4
>> +#define HPRLAR1         p15,4,c6,c8,5
>> +#define HPRBAR2         p15,4,c6,c9,0
>> +#define HPRLAR2         p15,4,c6,c9,1
>> +#define HPRBAR3         p15,4,c6,c9,4
>> +#define HPRLAR3         p15,4,c6,c9,5
>> +#define HPRBAR4         p15,4,c6,c10,0
>> +#define HPRLAR4         p15,4,c6,c10,1
>> +#define HPRBAR5         p15,4,c6,c10,4
>> +#define HPRLAR5         p15,4,c6,c10,5
>> +#define HPRBAR6         p15,4,c6,c11,0
>> +#define HPRLAR6         p15,4,c6,c11,1
>> +#define HPRBAR7         p15,4,c6,c11,4
>> +#define HPRLAR7         p15,4,c6,c11,5
>> +#define HPRBAR8         p15,4,c6,c12,0
>> +#define HPRLAR8         p15,4,c6,c12,1
>> +#define HPRBAR9         p15,4,c6,c12,4
>> +#define HPRLAR9         p15,4,c6,c12,5
>> +#define HPRBAR10        p15,4,c6,c13,0
>> +#define HPRLAR10        p15,4,c6,c13,1
>> +#define HPRBAR11        p15,4,c6,c13,4
>> +#define HPRLAR11        p15,4,c6,c13,5
>> +#define HPRBAR12        p15,4,c6,c14,0
>> +#define HPRLAR12        p15,4,c6,c14,1
>> +#define HPRBAR13        p15,4,c6,c14,4
>> +#define HPRLAR13        p15,4,c6,c14,5
>> +#define HPRBAR14        p15,4,c6,c15,0
>> +#define HPRLAR14        p15,4,c6,c15,1
>> +#define HPRBAR15        p15,4,c6,c15,4
>> +#define HPRLAR15        p15,4,c6,c15,5
>> +#define HPRBAR16        p15,5,c6,c8,0
>> +#define HPRLAR16        p15,5,c6,c8,1
>> +#define HPRBAR17        p15,5,c6,c8,4
>> +#define HPRLAR17        p15,5,c6,c8,5
>> +#define HPRBAR18        p15,5,c6,c9,0
>> +#define HPRLAR18        p15,5,c6,c9,1
>> +#define HPRBAR19        p15,5,c6,c9,4
>> +#define HPRLAR19        p15,5,c6,c9,5
>> +#define HPRBAR20        p15,5,c6,c10,0
>> +#define HPRLAR20        p15,5,c6,c10,1
>> +#define HPRBAR21        p15,5,c6,c10,4
>> +#define HPRLAR21        p15,5,c6,c10,5
>> +#define HPRBAR22        p15,5,c6,c11,0
>> +#define HPRLAR22        p15,5,c6,c11,1
>> +#define HPRBAR23        p15,5,c6,c11,4
>> +#define HPRLAR23        p15,5,c6,c11,5
>> +#define HPRBAR24        p15,5,c6,c12,0
>> +#define HPRLAR24        p15,5,c6,c12,1
>> +#define HPRBAR25        p15,5,c6,c12,4
>> +#define HPRLAR25        p15,5,c6,c12,5
>> +#define HPRBAR26        p15,5,c6,c13,0
>> +#define HPRLAR26        p15,5,c6,c13,1
>> +#define HPRBAR27        p15,5,c6,c13,4
>> +#define HPRLAR27        p15,5,c6,c13,5
>> +#define HPRBAR28        p15,5,c6,c14,0
>> +#define HPRLAR28        p15,5,c6,c14,1
>> +#define HPRBAR29        p15,5,c6,c14,4
>> +#define HPRLAR29        p15,5,c6,c14,5
>> +#define HPRBAR30        p15,5,c6,c15,0
>> +#define HPRLAR30        p15,5,c6,c15,1
>> +#define HPRBAR31        p15,5,c6,c15,4
>> +#define HPRLAR31        p15,5,c6,c15,5
> NIT: Is there any way we could generate the values using macros?
>
>> +
>>    /* Aliases of AArch64 names for use in common code */
>>    #ifdef CONFIG_ARM_32
>>    /* Alphabetically... */
>>    #define MPUIR_EL2       HMPUIR
>>    #define PRBAR_EL2       HPRBAR
>> +#define PRBAR0_EL2      HPRBAR0
> AFAIU, the alias will be mainly used in the macro generate the switch. Rather than open-coding all the PR*AR_EL2, can we provide two macros PR{B, L}AR_N that will be implemented as HPR{B,L}AR##n for arm32 and PR{B,L}AR##n for arm64?
>
>>    #define PRSELR_EL2      HPRSELR
>> +
>>    #endif /* CONFIG_ARM_32 */
>>
>>    #endif /* __ARM_MPU_CPREGS_H */
> Cheers,
>
> --
> Julien Grall
>
>
> ________________________________
> The information contained in this e-mail and any attachments from Parry Labs may contain confidential and/or proprietary information, and is intended only for the named recipient to whom it was originally addressed. If you are not the intended recipient, any disclosure, distribution, or copying of this e-mail or its attachments is strictly prohibited.   If you have received this e-mail in error, please notify the sender immediately by return e-mail and permanently delete the e-mail and any attachments.


From xen-devel-bounces@lists.xenproject.org Fri Apr 25 13:32:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 13:32:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.968092.1357784 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8JAC-0007Ab-04; Fri, 25 Apr 2025 13:32:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 968092.1357784; Fri, 25 Apr 2025 13: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 1u8JAB-0007AU-Sz; Fri, 25 Apr 2025 13:32:19 +0000
Received: by outflank-mailman (input) for mailman id 968092;
 Fri, 25 Apr 2025 13:32: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 1u8JAA-0007AO-PU
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 13:32: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 1u8JAA-003pVS-1Y;
 Fri, 25 Apr 2025 13:32:18 +0000
Received: from [2a02:8012:3a1:0:8daa:3830:53f7:173e]
 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 1u8JAA-008aeD-0w;
 Fri, 25 Apr 2025 13:32:18 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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=ABAA1nlxtJTVtzlkmTBlp4NI++vg4QzPrNpno7Ils+0=; b=MOQdJrzu4m2eAdywoHfBCEF33G
	VuRNQ42VgLsYcJMxI297PWcSJvWT2x5FA0NcUBwXHDpJqMzMEe2JQVmlV9ZEVevz7Out/jIR7ALmI
	AA7HeEaZy99LStOy8SEbmlAnGuphGAOIFEE7Ad2Jf8HjhvFVZyuQvmdnV0xhRg9z2ypE=;
Message-ID: <f2a55c19-4a8b-44a3-be9e-bdf3fb554b7d@xen.org>
Date: Fri, 25 Apr 2025 14:32:16 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1] xen/arm: AArch32-V8R: Add MPU register definitions
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: 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: <20250417155511.1854081-1-ayan.kumar.halder@amd.com>
 <306e5414-1552-4605-86d6-b23b89d00bc9@xen.org>
 <cebb0020-531f-467c-bc81-54d2ba1aa8e0@amd.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <cebb0020-531f-467c-bc81-54d2ba1aa8e0@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi Ayan

On 25/04/2025 13:00, Ayan Kumar Halder wrote:
>>> +        unsigned int ns:1;     /* Reserved 0 by hardware */
>>> +        unsigned int res0:1;   /* Reserved 0 by hardware */
> Then, we can change this on Arm32 as well.
>>> +        unsigned int limit:26;  /* Limit Address */
>>
>> NIT: Can we align the comments?
> Ack.
>>
>>> +    } reg;
>>> +    uint32_t bits;
>>> +} prlar_t;
>>> +
>>> +/* Protection Region */
>>> +typedef struct {
>>> +    prbar_t prbar;
>>> +    prlar_t prlar;
>>> +    uint64_t p2m_type;          /* Used to store p2m types. */
>>> +} pr_t;
>>
>> This looks to be common with arm64. If so, I would prefer if the 
>> structure is in a common header.
> 
> No, in arm64 this is
> 
> typedef struct {
>       prbar_t prbar;
>       prlar_t prlar;
> } pr_t;
> 
> The reason being Arm64 uses unused bits (ie 'pad') to store the type.

Hmmm... They are bits from the system register (prbar), right? If so, 
you can't use them for storing the p2m_type as AFAICT they are RES0.

You could possibly mask the bits before writing them. But then, it will 
become risky if the fields are defined.

Also, the number of MPU regions is fairly small. So, I don't think it is 
worth it to store p2m_type.

Regardless that, I think it would be better to defer the introduction of 
p2m_type until guest support is added. So it will be easier to 
understand how this is going to be used and the size (for instance, I 
doubt 64-bit is necessary...).

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Fri Apr 25 13:33:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 13:33:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.968106.1357807 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8JBX-00083N-Bf; Fri, 25 Apr 2025 13:33:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 968106.1357807; Fri, 25 Apr 2025 13: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 1u8JBX-00083G-92; Fri, 25 Apr 2025 13:33:43 +0000
Received: by outflank-mailman (input) for mailman id 968106;
 Fri, 25 Apr 2025 13:33: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=iaDa=XL=3mdeb.com=sergii.dmytruk@srs-se1.protection.inumbo.net>)
 id 1u8JBU-000834-Pk
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 13:33:41 +0000
Received: from 6.mo583.mail-out.ovh.net (6.mo583.mail-out.ovh.net
 [178.32.119.138]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e5878700-21d9-11f0-9eb3-5ba50f476ded;
 Fri, 25 Apr 2025 15:33:39 +0200 (CEST)
Received: from director6.ghost.mail-out.ovh.net (unknown [10.108.25.63])
 by mo583.mail-out.ovh.net (Postfix) with ESMTP id 4ZkYhL5GHNz1Pwj
 for <xen-devel@lists.xenproject.org>; Fri, 25 Apr 2025 13:33:38 +0000 (UTC)
Received: from ghost-submission-5b5ff79f4f-dpp2z (unknown [10.108.54.28])
 by director6.ghost.mail-out.ovh.net (Postfix) with ESMTPS id A45981FEC5;
 Fri, 25 Apr 2025 13:33:36 +0000 (UTC)
Received: from 3mdeb.com ([37.59.142.109])
 by ghost-submission-5b5ff79f4f-dpp2z with ESMTPSA
 id LM+WBjCPC2i19AEA//PyqQ
 (envelope-from <sergii.dmytruk@3mdeb.com>); Fri, 25 Apr 2025 13:33:36 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e5878700-21d9-11f0-9eb3-5ba50f476ded
Authentication-Results:garm.ovh; auth=pass (GARM-109S0033e4aaf71-8ec0-4c80-81a5-8d7daa0cd4df,
                    CE3358D68E528721033CA0B73B1255FA651B03CF) smtp.auth=sergii.dmytruk@3mdeb.com
X-OVh-ClientIp:176.111.181.178
Date: Fri, 25 Apr 2025 16:33:25 +0300
From: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>,
	Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>,
	Lukasz Hawrylko <lukasz@hawrylko.pl>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Mateusz =?iso-8859-1?Q?M=F3wka?= <mateusz.mowka@intel.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Marek =?iso-8859-1?Q?Marczykowski-G=F3recki?= <marmarek@invisiblethingslab.com>,
	trenchboot-devel@googlegroups.com
Subject: Re: [PATCH 00/21] x86: Trenchboot Secure Launch DRTM (Xen)
Message-ID: <aAuPJRy64Fez_HCT@MjU3Nj>
References: <cover.1745172094.git.sergii.dmytruk@3mdeb.com>
 <744934f4-f56f-4dc7-bccb-c32f2829d1da@citrix.com>
 <010709d8-7784-41bf-bcb6-bf04803a75fc@citrix.com>
 <aAk1ZBw8GtoVYoL8@MjU3Nj>
 <6ae5f0a2-8055-45e1-933c-199d6c6d8626@citrix.com>
 <aAqHQ98cePJxuf6v@MjU3Nj>
 <99e2fd35-4241-4be5-a81b-c7ea6cd54597@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <99e2fd35-4241-4be5-a81b-c7ea6cd54597@citrix.com>
X-Ovh-Tracer-Id: 10318309698760062108
X-VR-SPAMSTATE: OK
X-VR-SPAMSCORE: -100
X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvhedvgeejucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuqfggjfdpvefjgfevmfevgfenuceurghilhhouhhtmecuhedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurhepfffhvfevuffkfhggtggugfgjsehtkeertddttddunecuhfhrohhmpefuvghrghhiihcuffhmhihtrhhukhcuoehsvghrghhiihdrughmhihtrhhukhesfehmuggvsgdrtghomheqnecuggftrfgrthhtvghrnhepjeeijeffvddvvdettdeuuedtkeehgfduleevfffghfeuudeuleejleeutefggedvnecuffhomhgrihhnpeigvghnrdhorhhgpdhsohhurhgtvgifrghrvgdrohhrghenucfkphepuddvjedrtddrtddruddpudejiedrudduuddrudekuddrudejkedpfeejrdehledrudegvddruddtleenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepihhnvghtpeduvdejrddtrddtrddupdhmrghilhhfrhhomhepshgvrhhgihhirdgumhihthhruhhkseefmhguvggsrdgtohhmpdhnsggprhgtphhtthhopedupdhrtghpthhtohepgigvnhdquggvvhgvlheslhhishhtshdrgigvnhhprhhojhgvtghtrdhorhhgpdfovfetjfhoshhtpehmohehkeefmgdpmhhouggvpehsmhhtphhouhht
DKIM-Signature: a=rsa-sha256; bh=/qxLl0+iTx+0MH5tonACziZgyUg7DNuTOrbjMVEjjsU=;
 c=relaxed/relaxed; d=3mdeb.com; h=From; s=ovhmo3617313-selector1;
 t=1745588018; v=1;
 b=W50U/ATqVGSQvBfh+GcNs8F0p2FuH09Jk68OidMRoFMby/X85zP3PRjjMsy078+P2oFdR4JT
 YHLX3AC4SIo9EyYbCUVab4p6jDr/XyMcNSHvjzjtNbKA5ttJ3A8QhQGjmoZZvVqiDDOnNP0VbFA
 Gtsh7G80IvKFj+b0/IQQ0WjjF2Hv9QOzQhAJ9UY8ecLGOT8Nmucy9cDu0O2FXDHgzBFaWHNq6QH
 uu2Nsls9UEF+KhMeL5cdq5W4tfrroTakAjh5+LIzj4NbJvihoPNvHcY3wu8g34vChY/WfckIxlm
 cESxTU7mmYrRV1zFcVgDgzIJKJXNBe2hOWBOXJWatUcwg==

On Thu, Apr 24, 2025 at 07:51:21PM +0100, Andrew Cooper wrote:
> On 24/04/2025 7:47 pm, Sergii Dmytruk wrote:
> >> Alignment that large is unexpected, and I suspect we want to fix it. Is
> >> it pre-existing, or something introduced by your series?
> >>
> >> ~Andrew
> > Pre-existing one.  I can see `-N` is already passed to `ld`:
> >
> > -N, --omagic     Do not page align data, do not make text readonly
> >
> > Specifying `--section-alignment 512 --file-alignment 512 --nmagic`
> > didn't reduce the alignment.  Statistics so far:
> >
> >   Give 0x1000 offset:
> >   GNU ld (GNU Binutils for Debian) 2.31.1
> >   GNU ld version 2.38-27.fc37
> >
> >   Give 0x440 offset:
> >   GNU ld (GNU Binutils for Debian) 2.40
> >   GNU ld (GNU Binutils for Debian) 2.41
> >
> > Maybe that's not something configurable and just needs a newer version.
>
> Ah - that's something that was changed literally yesterday:
>
> https://xenbits.xen.org/gitweb/?p=xen.git;a=commitdiff;h=d444763f8ca556d0a67a4b933be303d346baef02
>
> in order to fix some problems we've had trying to get xen.efi happy to
> be NX_COMPAT.
>
> We couldn't identify any good reason why -N was in use.
>
> ~Andrew

The fewer cryptic flags the better, but adding either of those flags or
removing -N doesn't affect the file offset.  EFI_LDFLAGS even includes
--file-alignment=0x20, it just gets ignored and that could be
target-specific behaviour in older versions of ld.  This commit by Jan
Beulich might be the one fixing it:

https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=bc5baa9f13ffb3fd4c39f1a779062bfb3a980cea


From xen-devel-bounces@lists.xenproject.org Fri Apr 25 13:48:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 13:48:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.968121.1357816 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8JPj-000203-Hb; Fri, 25 Apr 2025 13:48:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 968121.1357816; Fri, 25 Apr 2025 13:48: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 1u8JPj-0001zw-Ed; Fri, 25 Apr 2025 13:48:23 +0000
Received: by outflank-mailman (input) for mailman id 968121;
 Fri, 25 Apr 2025 13:48: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=6c45=XL=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u8JPi-0001zq-Fb
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 13:48: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 f33021c2-21db-11f0-9eb3-5ba50f476ded;
 Fri, 25 Apr 2025 15:48:21 +0200 (CEST)
Received: by mail-wr1-x429.google.com with SMTP id
 ffacd0b85a97d-3912d2c89ecso1853013f8f.2
 for <xen-devel@lists.xenproject.org>; Fri, 25 Apr 2025 06:48:21 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3a073e5e198sm2458113f8f.97.2025.04.25.06.48.19
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 25 Apr 2025 06:48:20 -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: f33021c2-21db-11f0-9eb3-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745588900; x=1746193700; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=2Aj0qQhdDdSu+7vuox4DRSnuw2xxvVia3cAtIMoOdDo=;
        b=VdZS8jafonVDtyeXYuBjHML1ywrC+mIrjznuikb9XL5pUcZY2l8OVaitWFmgGz9Ugp
         N0+4HSYMV8WtdAIeu/VZ4mWk1Woe3p/10JFNgzkqCvN3DzJYC4lCN++riKbc+95KC/dV
         hZcB81fh/3DKibKtsUtUAVIG/Eu4o+fOHRppM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745588900; x=1746193700;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=2Aj0qQhdDdSu+7vuox4DRSnuw2xxvVia3cAtIMoOdDo=;
        b=gh2bX+e/z35kQkPUmMrEfnZvW5IR0UkaTe93ptG4COPQl/4pPZ3oG/lsdbnNPVwtFL
         vC8O4g0MdD4e0AkfbVsGFaBuPZnOhJZbgVZmLfQmA/piuoT4Eq+6IXVmBtbev+z1vjoo
         mYeBvw25GtNWqH4MxfNuMIQI9TcTl+YXQ78JLtlB5k+StuZPMM1ndCTsRi8Ax273VWcY
         l23n0S226C8pZMpMIl9wGAhTcUWDT9SIbw6sJ+kPzSJsC7WtziWBRAr7YC2Lf95T5NEn
         68LgHGJwBEgIizSqGJW1LwlZ43Tvg7AsqmOgkK9v/DNf91y2Nhi82m/PMzzbdst2T7V5
         udwg==
X-Forwarded-Encrypted: i=1; AJvYcCUem+m7lQJbvIWP9cyzB60IX4Qmt8/pDEdoTtLZRYlMuqlhDAdsTSH7BiZV809SReznWgau/depClA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzdZjZIIlNdN0b7nR/W+5gHIeViowaPcwVsVGgDdXUpPdu1mxDw
	f/m/qt+adLVjcXUNElCA8DHWMP8f0CsXdZH7EowjF5S+mJIq3u4qktbn0ppqO5A=
X-Gm-Gg: ASbGncvqZet+p7m+BtriyOqvsz+fevkUZL9Uln4NVCwhXVJhajV3ghkijuQalk0Ydn2
	uYDzOn7v+BSIzgzLZGdONbKj3mqqpuaKQwQTwfMk1eMwJAHn87ytDT134X7tgcSsQrZlM5aGl4n
	REGjOHJtt1dX3AM0RDksxYUQ4Cz3fPNiqUZhcG4kRx3pbAKvyFcvAFGxDTqFbHVt6iGL3FC96W+
	V9QaARxcAAZXkhesIyTVMr/AL7b5sxMorDPqUkd3gn+le4Ey8RKgDh0M2HFfml7WYxNtH52jXAE
	daLvlsXu5F4RNcGYFZ1B/p9tJ2dksogZc50hYl+z778VpHLHZrvW5Ms/5Lt2eHTJhcFtu7WkrP0
	rpb5k5g==
X-Google-Smtp-Source: AGHT+IGrK5pVHH14e84YVu7zDTH60AnjDHi6FGIsMHUWf6vrOQPakGfNZW15P6pJtxprUCfq6aBM4A==
X-Received: by 2002:a5d:6d82:0:b0:391:4559:876a with SMTP id ffacd0b85a97d-3a074f2ecbemr2032759f8f.46.1745588900535;
        Fri, 25 Apr 2025 06:48:20 -0700 (PDT)
Message-ID: <25666272-71b9-4ec6-8a77-a3b419132d83@citrix.com>
Date: Fri, 25 Apr 2025 14:48:19 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 1/3] xen/mm: Introduce mm-types.h
To: Jan Beulich <jbeulich@suse.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Shawn Anastasio <sanastasio@raptorengineering.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250425112415.245585-1-andrew.cooper3@citrix.com>
 <20250425112415.245585-2-andrew.cooper3@citrix.com>
 <e5c6b448-945c-4c93-a3d6-e6e598102c2b@suse.com>
 <74bf3a58-6c90-4123-80e3-b72ba67ea46d@citrix.com>
 <654dd5d3-b235-4f5b-9ad6-b3f1281434d2@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: <654dd5d3-b235-4f5b-9ad6-b3f1281434d2@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 25/04/2025 2:13 pm, Jan Beulich wrote:
> On 25.04.2025 15:05, Andrew Cooper wrote:
>> On 25/04/2025 1:48 pm, Jan Beulich wrote:
>>> On 25.04.2025 13:24, Andrew Cooper wrote:
>>>> The type used for pagetable attributes/permissions is currently unsigned int,
>>>> but needs to become architecture dependent as PPC needs unsigned long.
>>>>
>>>> Introduce mm-types.h to house pte_attr_t.
>>>>
>>>> Given the new toolchain baseline, we can use __has_include() now to remove the
>>>> need for boilerplate on most architectures.
>>> That's true now, when it's just pte_attr_t that's there. Memory management,
>>> however, is pretty different between architectures, so I wonder if in the
>>> longer run any one will remain that actually can use the common header.
>> Anything in xen/mm.h is common and needs architectures to provide (or
>> use the defaults) the bits required.
>>
>> asm/mm{,-types.h} still exist (when necessary) to provide the
>> arch-specific extensions.
> Sure, but you kind of avoid my question: Are you reasonably certain more than
> one arch will still be able to use the defaults, once a few more things appear
> in this header? (IOW: Won't we be better off having each arch have its
> asm/mm-types.h right away?)

I can't predict the future, but my gut feeling is that it's not going to
diverge very much.

If needs be, we can go to conditional override for specific bits.  Or,
if I'm wrong, I'm wrong.  It's not hard to change.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Apr 25 14:05:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 14:05:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.968134.1357826 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8Jfr-0005zC-R4; Fri, 25 Apr 2025 14:05:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 968134.1357826; Fri, 25 Apr 2025 14: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 1u8Jfr-0005z5-ON; Fri, 25 Apr 2025 14:05:03 +0000
Received: by outflank-mailman (input) for mailman id 968134;
 Fri, 25 Apr 2025 14:05:03 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1u8Jfr-0005yz-5p
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 14:05:03 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1u8Jfq-003qOw-2c;
 Fri, 25 Apr 2025 14:05:02 +0000
Received: from [2a02:8012:3a1:0:8daa:3830:53f7:173e]
 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 1u8Jfq-009GjR-1s;
 Fri, 25 Apr 2025 14:05:02 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=79jHBIQMz4P6KJqNF/n36Ih2RBqJq/34ybT7duPwOco=; b=PGK9uVpR61MJw7CyBkxiV73AvN
	/ra16eUpZW7hvInN5mxUViobHqoeTscb4Y3SSzRu+kiFlhp5PBO96PsLP0e+14XlhrHFV0v/U4Zxj
	+ppNm70c1z+QqWkoVA7gQGVIzHmMMFM+y5qZim/Q/g8t1kCLsO62Bu9iN4KSd9jyt3DM=;
Message-ID: <82de1227-7489-4ac9-a52c-2da188bd8e54@xen.org>
Date: Fri, 25 Apr 2025 15:05:00 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] xen/arm: AArch32-V8R: Add MPU register definitions
Content-Language: en-GB
To: Ayan Kumar Halder <ayan.kumar.halder@amd.com>,
 xen-devel@lists.xenproject.org
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Luca Fancellu <luca.fancellu@arm.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <20250425124506.390458-1-ayan.kumar.halder@amd.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20250425124506.390458-1-ayan.kumar.halder@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Ayan,

On 25/04/2025 13:45, Ayan Kumar Halder wrote:
> Add the definitions for HPRBAR<0..31>, HPRLAR<0..31> and HPRENR.
> The definitions are taken from ARM DDI 0568A.c ID110520, E2.2.3 HPRBAR<n>,
> E2.2.4 HPRENR and E2.2.6 HPRLAR<n>.
> 
> Introduce pr_t typedef which is a structure having the prbar and prlar members,
> each being structured as the registers of the AArch32-V8R architecture.
> This is the arm32 equivalent of
> "arm/mpu: Introduce MPU memory region map structure".
> 
> Few differences worth noting:-
> 1. The XN in HPRBAR is 1 bit in Arm32 (unlike 2 bits in Arm64).
> 2. PRSELR_EL2 is not used to access HPRBAR<0..31> and HPRLAR<0..31>.
> 
> Introduce macros PR{B,L}AR_EL2_(num) to generate alias for the sysregs.
> 
> Also, took the opportunity to fix the register definition of HPRLAR.
> 
> Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
> ---
> Changes from :-
> 
> v1 - 1. Introduce macros for PR{B,L}AR_EL2_(num). Similar macros need to be
> defined for arm64 as well.
> 2. Some style fixes
> 
> Comments not addressed
> 1. Renaming of PRBAR_EL2_XN if needed.
> 2. Using res0 for ns.

Why are you rushing sending a new version that doesn't address most of 
the comments when ...

> 
> This patch should be applied after
> "[PATCH v3 0/7] First chunk for Arm R82 and MPU support" in order to enable
> compilation for AArch32 and macros need to be defined for Arm64 as well.

... this depends on a patch still under review? This is not a very good 
use of reviewers time.

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Fri Apr 25 14:16:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 14:16:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.968150.1357837 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8JrE-00087e-RK; Fri, 25 Apr 2025 14:16:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 968150.1357837; Fri, 25 Apr 2025 14:16: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 1u8JrE-00087X-OV; Fri, 25 Apr 2025 14:16:48 +0000
Received: by outflank-mailman (input) for mailman id 968150;
 Fri, 25 Apr 2025 14:16:47 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=/m1g=XL=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1u8JrD-00087Q-7q
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 14:16:47 +0000
Received: from NAM12-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam12on20601.outbound.protection.outlook.com
 [2a01:111:f403:2417::601])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e7f8fd96-21df-11f0-9ffb-bf95429c2676;
 Fri, 25 Apr 2025 16:16:42 +0200 (CEST)
Received: from PH8PR12MB7326.namprd12.prod.outlook.com (2603:10b6:510:216::7)
 by DM6PR12MB4372.namprd12.prod.outlook.com (2603:10b6:5:2af::14) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.26; Fri, 25 Apr
 2025 14:16:36 +0000
Received: from PH8PR12MB7326.namprd12.prod.outlook.com
 ([fe80::6d76:9c33:d230:8264]) by PH8PR12MB7326.namprd12.prod.outlook.com
 ([fe80::6d76:9c33:d230:8264%2]) with mapi id 15.20.8678.025; Fri, 25 Apr 2025
 14:16: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: e7f8fd96-21df-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=iVjmnqg0qesrL0tlAES1LDVAKWgpKHLwlE3VPOKz4X7rmcxYvw7OoQkVeFTmuDyizQV6iqqdMcv0ZLMOzfpNS63vQzKOt7i6fTpB126e+VoApcJZS7Fbq9lugNRp2Oa8XXJZq/Dt4N8BXPd5luMz3BBeeSLiuF86Ni7Mo/CGVdso6Th2UlJ/uQ7XNjyJ9jhNfTXC3xNI4IZC1vvr6Yex9NLN3RntpVluyL/VrJltZdQ2zSdY7rPkXJhbiM0UWvuLrHNefRxQbhRLzeCkkcXHXO0geFFLuqO7i1QiJkK1EyMN8qVhJeuErogs/cYp9Px7/jRRdjdXe+8nVNcuYDXGfQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=s8f/Vba4PZCx9DiU29wG30Mid7Pgv0sAY80tm3rZkCs=;
 b=MNMYN7pJwFgjam6tCoMrhIiCpbV/7wueM05c0xU/Y9CXBUQy08rdgrHdX8SYKUGtt+RX7CLbJmSuX8wyXTkU/aIr2hq8PFhaLEgzNyg3BOFnH2N+GeW7tmMmQoC0NPPFGN00MEz4R5ApZ2MRUGfYS3mEhRRORYhs+/UE/oqLf4tZAQ4SG/tJPOTerrQMnNm2AdlNj4xYL8Prd6Q1eYOgosK/W/K2Wn9ZT6da1lnfCuKeAA7US32K04pbOCfwMRVu7xxJTWAuIesFiTWEHpZZRwNkCcElBgS/jvewpygooUYzT/rw2OX6vjPvx6nqDXBL4GCHfoeuQhR8mfk9HGQLYw==
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=s8f/Vba4PZCx9DiU29wG30Mid7Pgv0sAY80tm3rZkCs=;
 b=BQIwNo8uqxoR53Eq0pVDVbo3neHfi4dRI06XR30N35i4LcNLKXqbZ69Chpc+5LvxR20/WqjujjjaSPpXrOucPS3rmS0gqJyoP7mt8nwlf1hXyBAis/aGHIyPxq6hsF+53ul+SOm9lcnhMRY6MlGf29GdlebFF3hi1fQFEtONjMA=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <8c0915a9-9c31-460c-9484-ad5a81999b0c@amd.com>
Date: Fri, 25 Apr 2025 15:16:32 +0100
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] xen/arm: AArch32-V8R: Add MPU register definitions
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>,
 Luca Fancellu <luca.fancellu@arm.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <20250425124506.390458-1-ayan.kumar.halder@amd.com>
 <82de1227-7489-4ac9-a52c-2da188bd8e54@xen.org>
From: Ayan Kumar Halder <ayankuma@amd.com>
In-Reply-To: <82de1227-7489-4ac9-a52c-2da188bd8e54@xen.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO4P123CA0603.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:295::19) To PH8PR12MB7326.namprd12.prod.outlook.com
 (2603:10b6:510:216::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: PH8PR12MB7326:EE_|DM6PR12MB4372:EE_
X-MS-Office365-Filtering-Correlation-Id: fbdafc01-9d69-416b-2368-08dd8403c9a6
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?VEowbDRhYnlYbm56L1FxOVpLQTNYMGRwMStoelNSaGVKUmppbUJwYTQydElR?=
 =?utf-8?B?c0s2Q1VuVE9McjNCbmdacmtDRGNNZ3N6bnJ4SGh4ckI2ZFhFUFVHNHVQcEly?=
 =?utf-8?B?RHdmelplaTZtZllXTWxDTmo2VEJUaWVwUkJreENPVVg4Q3ExR1YzL1dTQmRx?=
 =?utf-8?B?dFpQVitsenFlczRFdUl2blV3R0lTVXRRekRtdlpqdXJtdU0vWkFrbUhNQXBv?=
 =?utf-8?B?c1VQT2Q4YW9lWm9WSytWVDNHbGZRdUg5WnlrRXdoV3FGVk5SY2hxNVBnVzY1?=
 =?utf-8?B?bHVJRUFFTXp3SDFmTnJteG5pZGVxQ2NvelVYNlZnWlZnUytxU1RqVWxJbGFm?=
 =?utf-8?B?NVNYcCtsRThpeWNIeGVXdTU2dzJjYWxTWVZTQ2Y0Z0djaEIvc1gxOHJPeDd6?=
 =?utf-8?B?SG5kUEJtbUlsVlF2YVkvZEN5cEpnU05ubENXV29oOUlVb0xzR3ZNVDUwTjVV?=
 =?utf-8?B?MXBkQVp6WnF2OGdHamlBM1lGNEFSOU9VNFlpWlNxZHQ1NDczcjI1V2JzMlBC?=
 =?utf-8?B?YisrMzRnWlJiQkM3bEJ6angyRDF5NHBIYzFUZ1hlenYxNlVERklKMlcyb3JJ?=
 =?utf-8?B?ZTlUdXJYMW9Cd0ZFaHE1UGRYaUZLYVM0eFd2c001TUNCTTQ5SjVmWEEvK3ov?=
 =?utf-8?B?WG9IUlNyTWZ2bk1jejR4NWlHRGFycFpBa0dDY2ZTakllYURNUjdiRnZzV0E1?=
 =?utf-8?B?ZmRoTkdYMHRZUzMwRjN4RDE3RGtYNU1KVzF5NEpUbnVvSzVhRTQzMTZDMU1z?=
 =?utf-8?B?Slc2RVlxK2pTMnJVOEhiSXdhSC91T2tKL2VwMmE3eVk0QlMyeXBQSFVvcDBJ?=
 =?utf-8?B?ck9jZDJyNVdLaE9QWlVKVGxLVXN5bHRnd0o1V24xYkNGREp4QXpXVWQxcXFk?=
 =?utf-8?B?aHdQcTF0MlhmbWFqSC84akhOUld2aG43Y1VrRmU0dG1GRXRTZWFoQmlzbEpn?=
 =?utf-8?B?R0oyZ0t4VTFrb1R3L2g2NEJsS1pIZG5uMjYwRTZVdk5XM2VvcDNZblg5aUJN?=
 =?utf-8?B?WkdmSDBQdWlLUURVaXFZcVhsWGRFR1FKMDhYUExkUEdzRG5PRkFSOWhmNHRx?=
 =?utf-8?B?Q3k5bDR1NGhUQ3c1ZVJ2M0ZkY2JKMU5CbENmdHMycnBCSkRTT256MHVJNUJz?=
 =?utf-8?B?OWVKQVZzcWZ6aW5qNlJIcVgwYWQ0ek0yV1dKTTd4SW5Fa1ZSTDJ4QkRGTWEy?=
 =?utf-8?B?T0t0ZUJNNUtraVdVcEI0bk9TR29FQmU4Um9NRDU5V2hSNEdkMjRzSHNCNGRW?=
 =?utf-8?B?MTJLZDc2M0tQcHZ2VWNMZnNxUk5nelhSQXk1UnowSFlBWmJwOFliamdJNExw?=
 =?utf-8?B?VXhiOWNDNnlqSllid3g0NGcvb2RnUHEvelNrVTNSc2w5MmxCcUNDb3NJMzlN?=
 =?utf-8?B?N0trczJEblJWY0N5YUExeGRmRXdWeFM5aVlBNHRNQ3BpVVNRM0djQWFYRGxT?=
 =?utf-8?B?Y1B2ZHFLQU1LZUtEU0RxZ3ZoZG51aUcra0pybEpYdFlkTEZSa0RsTGZwcm1t?=
 =?utf-8?B?cjZIY0Y5c2hpdnpCdkpkWk1QYjFKRytTNWxkK1RsanZMeWhjcGFFY1ZTK3lJ?=
 =?utf-8?B?SkdvTi95b2tNejRjeEtDMWcwK0VMeVg5ZFlEeUlPcWR6c3ErQ3M4UElNWHRt?=
 =?utf-8?B?aUw1WGZyVm1IN1JlM0ttOVI5eDhVY2lQa3QxR3ROM1Q3cXVkVnJiQnVRYXd3?=
 =?utf-8?B?Q3lCekZQRy9VbHVKYURnV2YzaXdzVG16MFpHZHhTOXVBMm1DNnFpbDExUkRP?=
 =?utf-8?B?WVdtQmNQaFd1Rm04UmpGcERvRkxscUtKdkFlTldqbWJSQ3NTQXFmOEhUZ3RP?=
 =?utf-8?B?OEJSakJYRUNQQTE1elRHcTI4cDI2eEJFVElmUlNQWFovV0VPcTZXODJkY25T?=
 =?utf-8?B?TUQxRjB6UG9VZXRvNFkzVk1HSjRqTXFFNzFwSngrQkJsKzNCWFNhK0dYT0Z2?=
 =?utf-8?Q?CdDIlmHyXDE=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)(376014)(366016)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?VXAxS3BsQ05YcVYwUjNNTjhERTRsSngyU1B3TGNYZ0ZHcWFZY3ZOQ0pGSFJr?=
 =?utf-8?B?cGt4YzJuRHlZM2hZb0duOHBwMjdPeFZ1WlNvZUpuVEdycUhhUzdEQ0I2ME40?=
 =?utf-8?B?TU1JTHZIc0c0RHRHNEhEb1N0bitIVmluSHpvT0lXcFhETFNlRWkrMlVhbnZY?=
 =?utf-8?B?c0ZzMmtuTERIK3Q0VnM2R01pZTBTcVJmWkxtYmhqNVk2WFpMM1hVSGtrZGZ0?=
 =?utf-8?B?UDhJM3I1eDdST3NCb1VjYUFZNW00M1I1b1pJVUR2b1A1eTBpZTRKR0dkMDdO?=
 =?utf-8?B?cG9OVjliVWIrRDd5MU1VVVREMDlJY1gyNUtocjBQSHo5MitLRU5EWllqVmNF?=
 =?utf-8?B?MHN0Q294OHAyZExqS3pFMFlpcFV5OVc4K2lNSlFXRElBbTFKREM1a2UvV29t?=
 =?utf-8?B?Vm1HK1FrUjIvTmNtS2FhM3VCdjFZUGo3WFVYNnR1cDRMN2dVb0QrenNmYmF4?=
 =?utf-8?B?ZEJjNk9JaVNUc0h1UFdycGRZN01JZ3FoSFNuNTdrOEJMdzU4NExIbGthWjRP?=
 =?utf-8?B?RGpucWM5OHhWMmJEWlMyM2pjUWRkOGtKS2NoWTZUYXRFRVI3cGlsa3l3bHUz?=
 =?utf-8?B?Wk8yNWRucGdQRmh3NkU4SklDQzRQVHB4NXUrMzdWQmgwc2FkekJERVBjTzBV?=
 =?utf-8?B?NHFRbVRDZ1UzTTE2M0l3NXR2Q0ExOUVRQzN3SGZHVXI5aVpqNU5YaDMyai9U?=
 =?utf-8?B?cnc1bTNwb2orZDNHdm9Zbi96VUZtSlBPUEdxWGVmYjVkMHRoWHpMWWhiOWQz?=
 =?utf-8?B?SU9qWUhqQ0lCNVJpTDNWdTErQW55cDl5SVRMV2VDdWNteXRrMEwxTnFGSEFz?=
 =?utf-8?B?MVBKcnB0bUs3dmVxV3FvL3B0S3JzZysyNTFNcThSUVQ1SjhWbzJrVVE1NjQ5?=
 =?utf-8?B?WmhmZzZwWTd1dk9yUVhYR2UwekR2a3h1dnBRelh5YS9rdkVpUVhoMlNYcEsr?=
 =?utf-8?B?Sm05YjZDNEZHS25zSHlyQmhkMDkwMWNwK3FEQyt1b3NLWHlCdkZNcjArYXVQ?=
 =?utf-8?B?SVpJbGxkc2VsMWhUczc5TzNndktpa1NrVERXcjZWby9YSmtpNUlJUER0b2dZ?=
 =?utf-8?B?emRuNDRMeVZjSktmckFGVlg3bmN1cWdhNmMyUEk4UEZxRDI3eUF5ejlFamlI?=
 =?utf-8?B?U3d6UEgxaWVyZGRZNGVVV1RCSzlRRjZITkpCdGxubTJnQVBXVjh3MXF5M1NK?=
 =?utf-8?B?Tkxjenl2WTNybXNwT2N6RWNWc0xvV0hMb0gxcDRXVElDQlBkRGZ5Vk1SaGhI?=
 =?utf-8?B?V0F1clNVNVc0V0VsMVo3dHlpT1MvWlMvMGV6RFdHZXJzUFZoVkZ4UGY1RFBN?=
 =?utf-8?B?MTVXU3dYVkpnSlNhYnIwZmZBeSt1cHV3cEdBT1A4T0pReEMvMTBpUElIQ25z?=
 =?utf-8?B?Zmw5aFJvYU14dzkrdHdVTjZKS2dtWmV4VWFBaUhvN1Q5ZDZsM3ErWXRXV0V6?=
 =?utf-8?B?UGV3dEg0MDJnK0VUbVBoZHVqMDRQWXZERXRYSVh2Nml5eDBwT2dqUW4zSGFr?=
 =?utf-8?B?eWdZZG02VW53ZjRkcVZFcG8wZCtIaUdrSkdsRTc1Zk5wUnhVOXJCc0ExeC9a?=
 =?utf-8?B?OXk4UmtKcGNXOGpWOEt5NEtveE50eWFMODlPUlZiM3hsanh4UHdtUXpaYnNO?=
 =?utf-8?B?cU50WmY0U05pU1pFMG1ZcDJjbEdHV2g2dXAvM2w3Tk1mRnQrNjFnaWlZZGsz?=
 =?utf-8?B?dTF6UFJBS2FmV1hYM04xRFBZQnhXaHk3N0NOaDh1Ny81bXpYdFFpbUw1aElO?=
 =?utf-8?B?cmdtRnZQVFgwS3F1NkU1TmRUN3VJSUthdFBnc3pxK2hNUmsvc2lNUnNWeEJW?=
 =?utf-8?B?N1psVzM4N2JndEo1c3lDaFdORXdUUmxSUHFndXR0TWpid3lFM05LMUNYM3kr?=
 =?utf-8?B?NytSaVhJSVhPMGN1WFgyS1dWcHk5ZGYyWEtsT1RZdlhmQjhKOHlHeHQ4OUJ0?=
 =?utf-8?B?MjN1Rk15Unp2dWp5YUtERk5YQnRkbUF6WmlWRVF0ZWwxV2luUThjL3dPMlhS?=
 =?utf-8?B?YVAxbXlOcERvNEgzQ0x6eEFoVEVEa01oaUVFMnJva0JDMGthVHRXVU5MSVd2?=
 =?utf-8?B?QVlQMzEvSmNPU3RhMWlJTTJsMWZ6akgxV1N2MGVva2xDSG9hYlVBQ1dLQUFY?=
 =?utf-8?Q?28o4IIVNPqS7QLrZco+nPVLWk?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: fbdafc01-9d69-416b-2368-08dd8403c9a6
X-MS-Exchange-CrossTenant-AuthSource: PH8PR12MB7326.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Apr 2025 14:16:36.2531
 (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: 9i/9nWFe5/wSFwN45+DXIpns7psAEXG0umBTXpfnODQcMJGn8lQoSqK/G8nQMnyH7HF4ak0/VaXf5YaWPdsLrg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4372


On 25/04/2025 15:05, Julien Grall wrote:
> Hi Ayan,
Hi Julien,
>
> On 25/04/2025 13:45, Ayan Kumar Halder wrote:
>> Add the definitions for HPRBAR<0..31>, HPRLAR<0..31> and HPRENR.
>> The definitions are taken from ARM DDI 0568A.c ID110520, E2.2.3 
>> HPRBAR<n>,
>> E2.2.4 HPRENR and E2.2.6 HPRLAR<n>.
>>
>> Introduce pr_t typedef which is a structure having the prbar and 
>> prlar members,
>> each being structured as the registers of the AArch32-V8R architecture.
>> This is the arm32 equivalent of
>> "arm/mpu: Introduce MPU memory region map structure".
>>
>> Few differences worth noting:-
>> 1. The XN in HPRBAR is 1 bit in Arm32 (unlike 2 bits in Arm64).
>> 2. PRSELR_EL2 is not used to access HPRBAR<0..31> and HPRLAR<0..31>.
>>
>> Introduce macros PR{B,L}AR_EL2_(num) to generate alias for the sysregs.
>>
>> Also, took the opportunity to fix the register definition of HPRLAR.
>>
>> Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
>> ---
>> Changes from :-
>>
>> v1 - 1. Introduce macros for PR{B,L}AR_EL2_(num). Similar macros need 
>> to be
>> defined for arm64 as well.
>> 2. Some style fixes
>>
>> Comments not addressed
>> 1. Renaming of PRBAR_EL2_XN if needed.
>> 2. Using res0 for ns.
>
> Why are you rushing sending a new version that doesn't address most of 
> the comments when ...
Sorry, as there were lot of comments, so I want to show the proposed 
changes. I should probably have waited until we are aligned on all the 
changes in v1.
>
>>
>> This patch should be applied after
>> "[PATCH v3 0/7] First chunk for Arm R82 and MPU support" in order to 
>> enable
>> compilation for AArch32 and macros need to be defined for Arm64 as well.
>
> ... this depends on a patch still under review? This is not a very 
> good use of reviewers time.

Ack.

- Ayan

>
> Cheers,
>


From xen-devel-bounces@lists.xenproject.org Fri Apr 25 14:21:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 14:21:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.968166.1357847 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8Jvj-0001ju-GU; Fri, 25 Apr 2025 14:21:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 968166.1357847; Fri, 25 Apr 2025 14: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 1u8Jvj-0001jm-DQ; Fri, 25 Apr 2025 14:21:27 +0000
Received: by outflank-mailman (input) for mailman id 968166;
 Fri, 25 Apr 2025 14: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=kKSw=XL=kernel.org=arnd@srs-se1.protection.inumbo.net>)
 id 1u8Jvi-0001jg-7V
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 14:21:26 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org
 [2600:3c0a:e001:78e:0:1991:8:25])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9024dff6-21e0-11f0-9ffb-bf95429c2676;
 Fri, 25 Apr 2025 16:21:23 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id EE37E49BEC;
 Fri, 25 Apr 2025 14:21:19 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 67FA6C4CEE4;
 Fri, 25 Apr 2025 14:21: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: 9024dff6-21e0-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1745590881;
	bh=nmDRxC+knYKh7h47UaJi1RUPn/QPP+Qvi9F5Frj7RDg=;
	h=From:To:Cc:Subject:Date:From;
	b=hTyJrdtwYF87YDIvFLMOFAu2aLHUWkYJOG0CNgwL4gYDxHge1ooHycrGEpDnIYPcl
	 6FnKXxnpeEuu+wghoNCmQuIVIf4HcAZoDbegk+S8xIfZyAWBYY0XqIKFMcvmXeZaII
	 NKkLguLpJstx7yYUrDOgvcpoQO4tKyjNiitZCHTCzH1iUeOT6Q95nFAjM7T2ULK9ST
	 k4rsebaktlzkdpQcX1ZhfgTL9L2GgzBOKPBwb+i2BhHGQ3VKU+sjtWL4LpOxSZL34E
	 R/7vhdj8pztfVag1EXZT9VmI1AzezqZozsoB0ufdP2GiiuJRP6NhUb4WxoRyS6lgGo
	 B8KJzIiKoazMA==
From: Arnd Bergmann <arnd@kernel.org>
To: Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org
Cc: Arnd Bergmann <arnd@arndb.de>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Alexander Usyskin <alexander.usyskin@intel.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	=?UTF-8?q?Mateusz=20Jo=C5=84czyk?= <mat.jonczyk@o2.pl>,
	"Mike Rapoport (Microsoft)" <rppt@kernel.org>,
	Ard Biesheuvel <ardb@kernel.org>,
	Peter Zijlstra <peterz@infradead.org>,
	linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org
Subject: [PATCH] [RFC] x86/cpu: rework instruction set selection
Date: Fri, 25 Apr 2025 16:15:15 +0200
Message-Id: <20250425141740.734030-1-arnd@kernel.org>
X-Mailer: git-send-email 2.39.5
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Arnd Bergmann <arnd@arndb.de>

With cx8 and tsc being mandatory features, the only important
architectural features are now cmov and pae.

Change the large list of target CPUs to no longer pick the instruction set
itself but only the mtune= optimization level and in-kernel optimizations
that remain compatible with all cores.

The CONFIG_X86_CMOV instead becomes user-selectable and is now how
Kconfig picks between 586-class (Pentium, Pentium MMX, K6, C3, GeodeGX)
and 686-class (everything else) targets.

In order to allow running on late 32-bit cores (Athlon, Pentium-M,
Pentium 4, ...), the X86_L1_CACHE_SHIFT can no longer be set to anything
lower than 6 (i.e. 64 byte cache lines).

The optimization options now depend on X86_CMOV and X86_PAE instead
of the other way round, while other compile-time conditionals that
checked for MATOM/MGEODEGX1 instead now check for CPU_SUP_* options
that enable support for a particular CPU family.

Link: https://lore.kernel.org/lkml/dd29df0c-0b4f-44e6-b71b-2a358ea76fb4@app.fastmail.com/
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
This is what I had in mind as mentioned in the earlier thread on
cx8/tsc removal. I based this on top of the Ingo's [RFC 15/15]
patch.
---
 arch/x86/Kconfig                |   2 +-
 arch/x86/Kconfig.cpu            | 100 ++++++++++++++------------------
 arch/x86/Makefile_32.cpu        |  48 +++++++--------
 arch/x86/include/asm/vermagic.h |  36 +-----------
 arch/x86/kernel/tsc.c           |   2 +-
 arch/x86/xen/Kconfig            |   1 -
 drivers/misc/mei/Kconfig        |   2 +-
 7 files changed, 74 insertions(+), 117 deletions(-)

diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index a9d717558972..1e33f88c9b97 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -1438,7 +1438,7 @@ config HIGHMEM
 
 config X86_PAE
 	bool "PAE (Physical Address Extension) Support"
-	depends on X86_32 && X86_HAVE_PAE
+	depends on X86_32 && X86_CMOV
 	select PHYS_ADDR_T_64BIT
 	help
 	  PAE is required for NX support, and furthermore enables
diff --git a/arch/x86/Kconfig.cpu b/arch/x86/Kconfig.cpu
index 6f1e8cc8fe58..0619566de93f 100644
--- a/arch/x86/Kconfig.cpu
+++ b/arch/x86/Kconfig.cpu
@@ -1,23 +1,32 @@
 # SPDX-License-Identifier: GPL-2.0
 # Put here option for CPU selection and depending optimization
-choice
-	prompt "x86-32 Processor family"
-	depends on X86_32
-	default M686
+
+config X86_CMOV
+	bool "Require 686-class CMOV instructions" if X86_32
+	default y
 	help
-	  This is the processor type of your CPU. This information is
-	  used for optimizing purposes. In order to compile a kernel
-	  that can run on all supported x86 CPU types (albeit not
-	  optimally fast), you can specify "586" here.
+	  Most x86-32 processor implementations are compatible with
+	  the the CMOV instruction originally added in the Pentium Pro,
+	  and they perform much better when using it.
+
+	  Disable this option to build for 586-class CPUs without this
+	  instruction. This is only required for the original Intel
+	  Pentium (P5, P54, P55), AMD K6/K6-II/K6-3D, Geode GX1 and Via
+	  CyrixIII/C3 CPUs.
 
 	  Note that the 386 and 486 is no longer supported, this includes
 	  AMD/Cyrix/Intel 386DX/DXL/SL/SLC/SX, Cyrix/TI 486DLC/DLC2,
 	  UMC 486SX-S and the NexGen Nx586, AMD ELAN and all 486 based
 	  CPUs.
 
-	  The kernel will not necessarily run on earlier architectures than
-	  the one you have chosen, e.g. a Pentium optimized kernel will run on
-	  a PPro, but not necessarily on a i486.
+choice
+	prompt "x86-32 Processor optimization"
+	depends on X86_32
+	default X86_GENERIC
+	help
+	  This is the processor type of your CPU. This information is
+	  used for optimizing purposes, but does not change compatibility
+	  with other CPU types.
 
 	  Here are the settings recommended for greatest speed:
 	  - "586" for generic Pentium CPUs lacking the TSC
@@ -45,14 +54,13 @@ choice
 
 config M586TSC
 	bool "Pentium-Classic"
-	depends on X86_32
+	depends on X86_32 && !X86_CMOV
 	help
-	  Select this for a Pentium Classic processor with the RDTSC (Read
-	  Time Stamp Counter) instruction for benchmarking.
+	  Select this for a Pentium Classic processor.
 
 config M586MMX
 	bool "Pentium-MMX"
-	depends on X86_32
+	depends on X86_32 && !X86_CMOV
 	help
 	  Select this for a Pentium with the MMX graphics/multimedia
 	  extended instructions.
@@ -117,7 +125,7 @@ config MPENTIUM4
 
 config MK6
 	bool "K6/K6-II/K6-III"
-	depends on X86_32
+	depends on X86_32 && !X86_CMOV
 	help
 	  Select this for an AMD K6-family processor.  Enables use of
 	  some extended instructions, and passes appropriate optimization
@@ -125,7 +133,7 @@ config MK6
 
 config MK7
 	bool "Athlon/Duron/K7"
-	depends on X86_32
+	depends on X86_32 && !X86_PAE
 	help
 	  Select this for an AMD Athlon K7-family processor.  Enables use of
 	  some extended instructions, and passes appropriate optimization
@@ -147,42 +155,37 @@ config MEFFICEON
 
 config MGEODEGX1
 	bool "GeodeGX1"
-	depends on X86_32
+	depends on X86_32 && !X86_CMOV
 	help
 	  Select this for a Geode GX1 (Cyrix MediaGX) chip.
 
 config MGEODE_LX
 	bool "Geode GX/LX"
-	depends on X86_32
+	depends on X86_32 && !X86_PAE
 	help
 	  Select this for AMD Geode GX and LX processors.
 
 config MCYRIXIII
 	bool "CyrixIII/VIA-C3"
-	depends on X86_32
+	depends on X86_32 && !X86_CMOV
 	help
 	  Select this for a Cyrix III or C3 chip.  Presently Linux and GCC
 	  treat this chip as a generic 586. Whilst the CPU is 686 class,
 	  it lacks the cmov extension which gcc assumes is present when
 	  generating 686 code.
-	  Note that Nehemiah (Model 9) and above will not boot with this
-	  kernel due to them lacking the 3DNow! instructions used in earlier
-	  incarnations of the CPU.
 
 config MVIAC3_2
 	bool "VIA C3-2 (Nehemiah)"
-	depends on X86_32
+	depends on X86_32 && !X86_PAE
 	help
 	  Select this for a VIA C3 "Nehemiah". Selecting this enables usage
 	  of SSE and tells gcc to treat the CPU as a 686.
-	  Note, this kernel will not boot on older (pre model 9) C3s.
 
 config MVIAC7
 	bool "VIA C7"
-	depends on X86_32
+	depends on X86_32 && !X86_PAE
 	help
-	  Select this for a VIA C7.  Selecting this uses the correct cache
-	  shift and tells gcc to treat the CPU as a 686.
+	  Select this for a VIA C7.
 
 config MATOM
 	bool "Intel Atom"
@@ -192,20 +195,19 @@ config MATOM
 	  accordingly optimized code. Use a recent GCC with specific Atom
 	  support in order to fully benefit from selecting this option.
 
-endchoice
-
 config X86_GENERIC
-	bool "Generic x86 support"
-	depends on X86_32
+	bool "Generic x86"
 	help
-	  Instead of just including optimizations for the selected
+	  Instead of just including optimizations for a particular
 	  x86 variant (e.g. PII, Crusoe or Athlon), include some more
 	  generic optimizations as well. This will make the kernel
-	  perform better on x86 CPUs other than that selected.
+	  perform better on a variety of CPUs.
 
 	  This is really intended for distributors who need more
 	  generic optimizations.
 
+endchoice
+
 #
 # Define implied options from the CPU selection here
 config X86_INTERNODE_CACHE_SHIFT
@@ -216,17 +218,14 @@ config X86_INTERNODE_CACHE_SHIFT
 config X86_L1_CACHE_SHIFT
 	int
 	default "7" if MPENTIUM4
-	default "6" if MK7 || MPENTIUMM || MATOM || MVIAC7 || X86_GENERIC || X86_64
-	default "4" if MGEODEGX1
-	default "5" if MCRUSOE || MEFFICEON || MCYRIXIII || MK6 || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || MVIAC3_2 || MGEODE_LX
+	default "6"
 
 config X86_F00F_BUG
-	def_bool y
-	depends on M586MMX || M586TSC || M586
+	def_bool !X86_CMOV
 
 config X86_ALIGNMENT_16
 	def_bool y
-	depends on MCYRIXIII || MK6 || M586MMX || M586TSC || M586 || MVIAC3_2 || MGEODEGX1
+	depends on MCYRIXIII || MK6 || M586MMX || M586TSC || M586 || MVIAC3_2 || MGEODEGX1 || (!X86_CMOV && X86_GENERIC)
 
 config X86_INTEL_USERCOPY
 	def_bool y
@@ -234,34 +233,23 @@ config X86_INTEL_USERCOPY
 
 config X86_USE_PPRO_CHECKSUM
 	def_bool y
-	depends on MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MVIAC3_2 || MVIAC7 || MEFFICEON || MGEODE_LX || MATOM
+	depends on MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MVIAC3_2 || MVIAC7 || MEFFICEON || MGEODE_LX || MATOM || (X86_CMOV && X86_GENERIC)
 
 config X86_TSC
 	def_bool y
 
-config X86_HAVE_PAE
-	def_bool y
-	depends on MCRUSOE || MEFFICEON || MCYRIXIII || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MVIAC7 || MATOM || X86_64
-
 config X86_CX8
 	def_bool y
 
-# this should be set for all -march=.. options where the compiler
-# generates cmov.
-config X86_CMOV
-	def_bool y
-	depends on (MK7 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MVIAC3_2 || MVIAC7 || MCRUSOE || MEFFICEON || MATOM || MGEODE_LX || X86_64)
-
 config X86_MINIMUM_CPU_FAMILY
 	int
 	default "64" if X86_64
-	default "6" if X86_32 && (MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MVIAC3_2 || MVIAC7 || MEFFICEON || MATOM || MK7)
-	default "5" if X86_32
-	default "4"
+	default "6" if X86_32 && X86_CMOV
+	default "5"
 
 config X86_DEBUGCTLMSR
 	def_bool y
-	depends on !(MK6 || MCYRIXIII || M586MMX || M586TSC || M586) && !UML
+	depends on X86_CMOV && !UML
 
 config IA32_FEAT_CTL
 	def_bool y
@@ -297,7 +285,7 @@ config CPU_SUP_INTEL
 config CPU_SUP_CYRIX_32
 	default y
 	bool "Support Cyrix processors" if PROCESSOR_SELECT
-	depends on M586 || M586TSC || M586MMX || (EXPERT && !64BIT)
+	depends on !64BIT
 	help
 	  This enables detection, tunings and quirks for Cyrix processors
 
diff --git a/arch/x86/Makefile_32.cpu b/arch/x86/Makefile_32.cpu
index f5e933077bf4..ebd7ec6eaf34 100644
--- a/arch/x86/Makefile_32.cpu
+++ b/arch/x86/Makefile_32.cpu
@@ -10,30 +10,32 @@ else
 align		:= -falign-functions=0 -falign-jumps=0 -falign-loops=0
 endif
 
-cflags-$(CONFIG_M586TSC)	+= -march=i586
-cflags-$(CONFIG_M586MMX)	+= -march=pentium-mmx
-cflags-$(CONFIG_M686)		+= -march=i686
-cflags-$(CONFIG_MPENTIUMII)	+= -march=i686 $(call tune,pentium2)
-cflags-$(CONFIG_MPENTIUMIII)	+= -march=i686 $(call tune,pentium3)
-cflags-$(CONFIG_MPENTIUMM)	+= -march=i686 $(call tune,pentium3)
-cflags-$(CONFIG_MPENTIUM4)	+= -march=i686 $(call tune,pentium4)
-cflags-$(CONFIG_MK6)		+= -march=k6
-# Please note, that patches that add -march=athlon-xp and friends are pointless.
-# They make zero difference whatsosever to performance at this time.
-cflags-$(CONFIG_MK7)		+= -march=athlon
-cflags-$(CONFIG_MCRUSOE)	+= -march=i686 $(align)
-cflags-$(CONFIG_MEFFICEON)	+= -march=i686 $(call tune,pentium3) $(align)
-cflags-$(CONFIG_MCYRIXIII)	+= $(call cc-option,-march=c3,-march=i486) $(align)
-cflags-$(CONFIG_MVIAC3_2)	+= $(call cc-option,-march=c3-2,-march=i686)
-cflags-$(CONFIG_MVIAC7)		+= -march=i686
-cflags-$(CONFIG_MATOM)		+= -march=atom
+ifdef CONFIG_X86_CMOV
+cflags-y			+= -march=i686
+else
+cflags-y			+= -march=i586
+endif
 
-# Geode GX1 support
-cflags-$(CONFIG_MGEODEGX1)	+= -march=pentium-mmx
-cflags-$(CONFIG_MGEODE_LX)	+= $(call cc-option,-march=geode,-march=pentium-mmx)
-# add at the end to overwrite eventual tuning options from earlier
-# cpu entries
-cflags-$(CONFIG_X86_GENERIC) 	+= $(call tune,generic,$(call tune,i686))
+cflags-$(CONFIG_M586TSC)	+= -mtune=i586
+cflags-$(CONFIG_M586MMX)	+= -mtune=pentium-mmx
+cflags-$(CONFIG_M686)		+= -mtune=i686
+cflags-$(CONFIG_MPENTIUMII)	+= -mtune=pentium2
+cflags-$(CONFIG_MPENTIUMIII)	+= -mtune=pentium3
+cflags-$(CONFIG_MPENTIUMM)	+= -mtune=pentium3
+cflags-$(CONFIG_MPENTIUM4)	+= -mtune=pentium4
+cflags-$(CONFIG_MK6)		+= -mtune=k6
+# Please note, that patches that add -mtune=athlon-xp and friends are pointless.
+# They make zero difference whatsosever to performance at this time.
+cflags-$(CONFIG_MK7)		+= -mtune=athlon
+cflags-$(CONFIG_MCRUSOE)	+= -mtune=i686 $(align)
+cflags-$(CONFIG_MEFFICEON)	+= -mtune=pentium3 $(align)
+cflags-$(CONFIG_MCYRIXIII)	+= -mtune=c3 $(align)
+cflags-$(CONFIG_MVIAC3_2)	+= -mtune=c3-2
+cflags-$(CONFIG_MVIAC7)		+= -mtune=i686
+cflags-$(CONFIG_MATOM)		+= -mtune=atom
+cflags-$(CONFIG_MGEODEGX1)	+= -mtune=pentium-mmx
+cflags-$(CONFIG_MGEODE_LX)	+= -mtune=geode
+cflags-$(CONFIG_X86_GENERIC) 	+= -mtune=generic
 
 # Bug fix for binutils: this option is required in order to keep
 # binutils from generating NOPL instructions against our will.
diff --git a/arch/x86/include/asm/vermagic.h b/arch/x86/include/asm/vermagic.h
index e26061df0c9b..6554dbdfd719 100644
--- a/arch/x86/include/asm/vermagic.h
+++ b/arch/x86/include/asm/vermagic.h
@@ -5,42 +5,10 @@
 
 #ifdef CONFIG_X86_64
 /* X86_64 does not define MODULE_PROC_FAMILY */
-#elif defined CONFIG_M586TSC
-#define MODULE_PROC_FAMILY "586TSC "
-#elif defined CONFIG_M586MMX
-#define MODULE_PROC_FAMILY "586MMX "
-#elif defined CONFIG_MATOM
-#define MODULE_PROC_FAMILY "ATOM "
-#elif defined CONFIG_M686
+#elif defined CONFIG_X86_CMOV
 #define MODULE_PROC_FAMILY "686 "
-#elif defined CONFIG_MPENTIUMII
-#define MODULE_PROC_FAMILY "PENTIUMII "
-#elif defined CONFIG_MPENTIUMIII
-#define MODULE_PROC_FAMILY "PENTIUMIII "
-#elif defined CONFIG_MPENTIUMM
-#define MODULE_PROC_FAMILY "PENTIUMM "
-#elif defined CONFIG_MPENTIUM4
-#define MODULE_PROC_FAMILY "PENTIUM4 "
-#elif defined CONFIG_MK6
-#define MODULE_PROC_FAMILY "K6 "
-#elif defined CONFIG_MK7
-#define MODULE_PROC_FAMILY "K7 "
-#elif defined CONFIG_MCRUSOE
-#define MODULE_PROC_FAMILY "CRUSOE "
-#elif defined CONFIG_MEFFICEON
-#define MODULE_PROC_FAMILY "EFFICEON "
-#elif defined CONFIG_MCYRIXIII
-#define MODULE_PROC_FAMILY "CYRIXIII "
-#elif defined CONFIG_MVIAC3_2
-#define MODULE_PROC_FAMILY "VIAC3-2 "
-#elif defined CONFIG_MVIAC7
-#define MODULE_PROC_FAMILY "VIAC7 "
-#elif defined CONFIG_MGEODEGX1
-#define MODULE_PROC_FAMILY "GEODEGX1 "
-#elif defined CONFIG_MGEODE_LX
-#define MODULE_PROC_FAMILY "GEODE "
 #else
-#error unknown processor family
+#define MODULE_PROC_FAMILY "586 "
 #endif
 
 #ifdef CONFIG_X86_32
diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c
index 489c779ef3ef..76b15ef8c85f 100644
--- a/arch/x86/kernel/tsc.c
+++ b/arch/x86/kernel/tsc.c
@@ -1221,7 +1221,7 @@ bool tsc_clocksource_watchdog_disabled(void)
 
 static void __init check_system_tsc_reliable(void)
 {
-#if defined(CONFIG_MGEODEGX1) || defined(CONFIG_MGEODE_LX) || defined(CONFIG_X86_GENERIC)
+#if defined(CONFIG_CPU_SUP_CYRIX)
 	if (is_geode_lx()) {
 		/* RTSC counts during suspend */
 #define RTSC_SUSP 0x100
diff --git a/arch/x86/xen/Kconfig b/arch/x86/xen/Kconfig
index 222b6fdad313..2648459b8e8f 100644
--- a/arch/x86/xen/Kconfig
+++ b/arch/x86/xen/Kconfig
@@ -9,7 +9,6 @@ config XEN
 	select PARAVIRT_CLOCK
 	select X86_HV_CALLBACK_VECTOR
 	depends on X86_64 || (X86_32 && X86_PAE)
-	depends on X86_64 || (X86_GENERIC || MPENTIUM4 || MATOM)
 	depends on X86_LOCAL_APIC
 	help
 	  This is the Linux Xen port.  Enabling this will allow the
diff --git a/drivers/misc/mei/Kconfig b/drivers/misc/mei/Kconfig
index 7575fee96cc6..4deb17ed0a62 100644
--- a/drivers/misc/mei/Kconfig
+++ b/drivers/misc/mei/Kconfig
@@ -3,7 +3,7 @@
 config INTEL_MEI
 	tristate "Intel Management Engine Interface"
 	depends on X86 && PCI
-	default X86_64 || MATOM
+	default X86_64 || CPU_SUP_INTEL
 	help
 	  The Intel Management Engine (Intel ME) provides Manageability,
 	  Security and Media services for system containing Intel chipsets.
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Apr 25 14:32:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 14:32:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.968183.1357862 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8K68-0003rH-MP; Fri, 25 Apr 2025 14:32:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 968183.1357862; Fri, 25 Apr 2025 14:32:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8K68-0003qQ-Hv; Fri, 25 Apr 2025 14:32:12 +0000
Received: by outflank-mailman (input) for mailman id 968183;
 Fri, 25 Apr 2025 14:32: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=b9qI=XL=gmail.com=edgar.iglesias@srs-se1.protection.inumbo.net>)
 id 1u8K67-0003o0-8y
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 14:32:11 +0000
Received: from mail-lj1-x22b.google.com (mail-lj1-x22b.google.com
 [2a00:1450:4864:20::22b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 129e7857-21e2-11f0-9eb3-5ba50f476ded;
 Fri, 25 Apr 2025 16:32:10 +0200 (CEST)
Received: by mail-lj1-x22b.google.com with SMTP id
 38308e7fff4ca-30bfc79ad97so37116341fa.1
 for <xen-devel@lists.xenproject.org>; Fri, 25 Apr 2025 07:32:10 -0700 (PDT)
Received: from gmail.com (213-67-3-247-no600.tbcn.telia.com. [213.67.3.247])
 by smtp.gmail.com with ESMTPSA id
 38308e7fff4ca-317d16a8312sm7745871fa.86.2025.04.25.07.32.08
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 25 Apr 2025 07:32: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: 129e7857-21e2-11f0-9eb3-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1745591530; x=1746196330; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=NG4zYuYYpcJqlLYEG5C5mY3Kfpvlarp9AnNvsczkLIA=;
        b=DqMDCf/iPMtvs34r9EtWEvCSIlDDZthL63Ex9zK9k4c9gfUjlyBuWSvr56/OTJN5se
         h5xIbSvPQxdQJRa7uD558d/M+GsL4AQQdGAsIODbXhzp8wBVozwj25UC7u9kd4wuPcyN
         2hKYGntfEAavWC+lkynwt7NX88Psy8TyUeCTVrukTnf8RBmTmLEraLh8C+uIgfnYh6P7
         inVfiFQywdWE8AHQCOLZaExCycjJWNH2Tn0Ch0PZp2s34p1Tv2FByv9hSNUHX0pBCJAq
         636Q2FDLxMESyOB626IeERfxEQwnvbVXMj20E07VMZhtN8C4GYYQ6cq1rTN5jMwygs51
         jxLQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745591530; x=1746196330;
        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=NG4zYuYYpcJqlLYEG5C5mY3Kfpvlarp9AnNvsczkLIA=;
        b=QW1bQeGf+h+ghIZMKhbss3nZ6uTEUFAPAyHCDRaYim6dL7mdomQDwc/PcxEOj/d+Eu
         AbZz7TaJ5ferVJDcRSem57FY5lJMgTGfcXQV6eVl8JrWQa7zc/SQ+aiLxlGsDELADnse
         kpd5x9l4kMzWnhOQsKhzRQC4VmZ3vbDi4mkAr6EhQufEbBOgQm4nLY4TZa8eHsYwLI59
         8dNPMz39M0k8RyLo4z8UKmo4VU91HVZLxG/FoQWBxPUWIsyqtzE+ap/IWJJxd7bYMe0k
         Ad9rg52RemAuvlb0sca/F/GlmBvlA9VZOT/K1t3F1rvRopJ0zrUtiqxvh0u+1GiZJbPf
         e9Tw==
X-Forwarded-Encrypted: i=1; AJvYcCVC7TPTjo394HocZdOBiuizFl2FX1vaqK291FGPZBUhaMAUMJcc0f1B3c+g1sJlasbk6Onb9HZEG+I=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwXWpumcsxiEGBPXkmTjdYsjVg8i/SrKUJwpzMQDYPMmgw9KHl1
	+W48iUHqR7/ffOGSYSMie0O+6OYrR5BwxsL+EuVPiwJ8HuRHdDV9
X-Gm-Gg: ASbGncv5NzGZ0XOzXxRHMDmrh5D0+5y1ToUQqNx8YBnkg1ulfaiqoftCkOY9xbzWovI
	s+hdx7XFpcyZNMXwoolBYGtfbw2m0Y874g0mQRwXXM6a2K6EB4tP6hwD8h87lQAWShU0E7n20S5
	fcPY1GXIfnlr5FjV5RqzSijXq/ZCE3ZOD0/SxL9iLNDqZP/KJnqKKsO3Gxd+OsnqOziZAh5gSAP
	LAstoD+GXZ458WTFAXGBfbdZXHOAzPJlSJARDeWCE8T8aTKYT6XNJo5QtCsgQZ8FPiRxM+uYBQ3
	P9R/VSWkvpBN7Nzw7XDpBUaQJN3esl0+pZbKvGZ4C1uMnKXWPauDw9b5TFqnr4VlsST+r6uJN06
	AwqXiNX4/ueYLDGWCDgAgRpg=
X-Google-Smtp-Source: AGHT+IHWARaFw57BZ01THUTSc2KFZuId+pV+qu+u3iEKnTFsjDPBoBcWZkR34cYxgsb/mk2/7B64+Q==
X-Received: by 2002:a05:651c:881:b0:30d:e10c:cae0 with SMTP id 38308e7fff4ca-317ce4c347amr22810961fa.20.1745591529939;
        Fri, 25 Apr 2025 07:32:09 -0700 (PDT)
From: "Edgar E. Iglesias" <edgar.iglesias@gmail.com>
To: qemu-devel@nongnu.org,
	qemu-stable@nongnu.org
Cc: sstabellini@kernel.org,
	anthony@xenproject.org,
	paul@xen.org,
	edgar.iglesias@amd.com,
	xen-devel@lists.xenproject.org,
	"Edgar E. Iglesias" <edgar.iglesias@gmail.com>
Subject: [PATCH v1 1/1] xen: mapcache: Split mapcache_grants by ro and rw
Date: Fri, 25 Apr 2025 16:31:56 +0200
Message-ID: <20250425143156.204452-2-edgar.iglesias@gmail.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20250425143156.204452-1-edgar.iglesias@gmail.com>
References: <20250425143156.204452-1-edgar.iglesias@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: "Edgar E. Iglesias" <edgar.iglesias@amd.com>

Today, we don't track write-abiliy in the cache, if a user
requests a readable mapping followed by a writeable mapping
on the same page, the second lookup will incorrectly hit
the readable entry.

Split mapcache_grants by ro and rw access. Grants will now
have separate ways in the cache depending on writeability.

Signed-off-by: Edgar E. Iglesias <edgar.iglesias@amd.com>
---
 hw/xen/xen-mapcache.c | 26 +++++++++++++++++++-------
 1 file changed, 19 insertions(+), 7 deletions(-)

diff --git a/hw/xen/xen-mapcache.c b/hw/xen/xen-mapcache.c
index 2c8f861fdb..e31d379702 100644
--- a/hw/xen/xen-mapcache.c
+++ b/hw/xen/xen-mapcache.c
@@ -75,7 +75,8 @@ typedef struct MapCache {
 } MapCache;
 
 static MapCache *mapcache;
-static MapCache *mapcache_grants;
+static MapCache *mapcache_grants_ro;
+static MapCache *mapcache_grants_rw;
 static xengnttab_handle *xen_region_gnttabdev;
 
 static inline void mapcache_lock(MapCache *mc)
@@ -176,9 +177,12 @@ void xen_map_cache_init(phys_offset_to_gaddr_t f, void *opaque)
      * Grant mappings must use XC_PAGE_SIZE granularity since we can't
      * map anything beyond the number of pages granted to us.
      */
-    mapcache_grants = xen_map_cache_init_single(f, opaque,
-                                                XC_PAGE_SHIFT,
-                                                max_mcache_size);
+    mapcache_grants_ro = xen_map_cache_init_single(f, opaque,
+                                                   XC_PAGE_SHIFT,
+                                                   max_mcache_size);
+    mapcache_grants_rw = xen_map_cache_init_single(f, opaque,
+                                                   XC_PAGE_SHIFT,
+                                                   max_mcache_size);
 
     setrlimit(RLIMIT_AS, &rlimit_as);
 }
@@ -456,9 +460,13 @@ uint8_t *xen_map_cache(MemoryRegion *mr,
                        bool is_write)
 {
     bool grant = xen_mr_is_grants(mr);
-    MapCache *mc = grant ? mapcache_grants : mapcache;
+    MapCache *mc = mapcache;
     uint8_t *p;
 
+    if (grant) {
+        mc = is_write ? mapcache_grants_rw : mapcache_grants_ro;
+    }
+
     if (grant && !lock) {
         /*
          * Grants are only supported via address_space_map(). Anything
@@ -523,7 +531,10 @@ ram_addr_t xen_ram_addr_from_mapcache(void *ptr)
 
     addr = xen_ram_addr_from_mapcache_single(mapcache, ptr);
     if (addr == RAM_ADDR_INVALID) {
-        addr = xen_ram_addr_from_mapcache_single(mapcache_grants, ptr);
+        addr = xen_ram_addr_from_mapcache_single(mapcache_grants_ro, ptr);
+    }
+    if (addr == RAM_ADDR_INVALID) {
+        addr = xen_ram_addr_from_mapcache_single(mapcache_grants_rw, ptr);
     }
 
     return addr;
@@ -626,7 +637,8 @@ static void xen_invalidate_map_cache_entry_single(MapCache *mc, uint8_t *buffer)
 static void xen_invalidate_map_cache_entry_all(uint8_t *buffer)
 {
     xen_invalidate_map_cache_entry_single(mapcache, buffer);
-    xen_invalidate_map_cache_entry_single(mapcache_grants, buffer);
+    xen_invalidate_map_cache_entry_single(mapcache_grants_ro, buffer);
+    xen_invalidate_map_cache_entry_single(mapcache_grants_rw, buffer);
 }
 
 static void xen_invalidate_map_cache_entry_bh(void *opaque)
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Apr 25 14:32:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 14:32:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.968182.1357857 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8K68-0003oI-Es; Fri, 25 Apr 2025 14:32:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 968182.1357857; Fri, 25 Apr 2025 14:32:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8K68-0003oB-BG; Fri, 25 Apr 2025 14:32:12 +0000
Received: by outflank-mailman (input) for mailman id 968182;
 Fri, 25 Apr 2025 14:32:10 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=b9qI=XL=gmail.com=edgar.iglesias@srs-se1.protection.inumbo.net>)
 id 1u8K66-0003o0-7X
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 14:32:10 +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 114f80d6-21e2-11f0-9eb3-5ba50f476ded;
 Fri, 25 Apr 2025 16:32:08 +0200 (CEST)
Received: by mail-lf1-x12a.google.com with SMTP id
 2adb3069b0e04-54d65cb6e8aso2941489e87.1
 for <xen-devel@lists.xenproject.org>; Fri, 25 Apr 2025 07:32:08 -0700 (PDT)
Received: from gmail.com (213-67-3-247-no600.tbcn.telia.com. [213.67.3.247])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-54e7cc9e883sm632540e87.133.2025.04.25.07.32.06
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 25 Apr 2025 07:32: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: 114f80d6-21e2-11f0-9eb3-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1745591528; x=1746196328; 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=azeeqSY8CzJ4Bp0LEe7Hpbdx1EyTNPLikM5147epRk8=;
        b=IB7WaTjj5aJ49u0YnLym0YIjbf425Qzyi0J6wT6aRHxGxri1mxkCcWUo0bwDbxeaAs
         TX4lv3lQ8+BOX7Mgy9/YMr3zXUKe8YDWToZmAXB18NiLyI4kWQkIuAnT0KYFZX2bW2IN
         +CCJnuM0MvBqED2r0dmhWQ/ABWO2ZbZq2ys/JrFkt7AnIjv34BnoB6gFgZus8UwpPsuU
         LqqRYNsMPXvRFcGB+nMBk0BpsGJhLYbVG0KRWw5IgwY73kq5A5eUj+ezGwiJYPrl+jOZ
         5FHh5OzHUXInupPM2e9Bxv+KSPuZpxAG9/Pnuuc36t0rEKIJo3GQ2Qg7NgrXOumQugol
         K1Pg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745591528; x=1746196328;
        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=azeeqSY8CzJ4Bp0LEe7Hpbdx1EyTNPLikM5147epRk8=;
        b=df0RNklHFjxDcVrv2bOUv4fHEfaXJIWS4m7qPyw0+wDeToeq+Du6lhsQYTXQZsNP95
         jn3ZiSowyUfUxF08mqYlt2L8Md/9JzORNfw4E56koUq/z1rGBheu7nf26i9vgdPq/1GB
         8lMq41uAFd/E/lKZrDUYdLBfmpYV2IynbM0OKk+9Om5sVu2/zunxKT9v54wiXIv+gBtW
         mIgKfxWKmXq5txCho+Ncfmy7SYENDe8kEaa0IsYSIPtwLsZdZCEMOvN3GbcrVugwDxsl
         ofXBJ7v6pqZe85TPVikD3tg3vVNHXtCcQNJ1ck8Sn/evKiiUsE66upT4ZHoS2mr6b6gQ
         uj9Q==
X-Forwarded-Encrypted: i=1; AJvYcCUkOcDUCMq7PgFfpOdaDwzGV1k5jaYDPrnTTb3SSecsuhpZs93QWVfRtT0J+Elmgy2y4Xw86FeIhq8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxzN8kGIo76Qw+6jyvXcbg7T1+bwdDT4crZnMeCLQxaKfj64ZpN
	OygoOcjAK3XvTjIfipMbds3niKE75jNRTcq1+aY59mzWpD+pEkBV/+sJFIoNHk8=
X-Gm-Gg: ASbGncsP/j94lg2g+itH5eMuwIn6ctONV9wWBaX2H3BuuvzfXs/cKL83AwhiooejKBv
	VzcNtAqeZmgg0uwiyxEGbjg35a9GfcwhgB/oUoweFFDKCkgtJbphmUWXMP/DW7wKVHl0zsn8lKT
	jy2HSq5AV2iwr0MrGHXmJ0hPyuWg9f4Kaimlp3UMwqDXIm7cpDY1QH1NuxihqeWr6yhfFm5djFo
	Dx2sKcoTdRpMr9By+aIZTCPS6RN4EdNew5lvlPhGqAML7ritXJpIxd/1TJLAMnfpvULBZdaJg+z
	KPbZcjUUaI/PayFd9GcOdRxHJizdy2FSHvLONsNkt4PZ/DmG5sobjb/HIuGqKPvqxPplvtidUZv
	0V3dETL/FhQh0
X-Google-Smtp-Source: AGHT+IF6GoiPiuFmU1v0uNdbuCBJilb8xb2JfSTEgACYnhGTyApmLy4m47IQ+SEYeYHqhegvkysP7A==
X-Received: by 2002:a05:6512:10cf:b0:54b:f04:59e8 with SMTP id 2adb3069b0e04-54e8cbd55e2mr744424e87.23.1745591527794;
        Fri, 25 Apr 2025 07:32:07 -0700 (PDT)
From: "Edgar E. Iglesias" <edgar.iglesias@gmail.com>
To: qemu-devel@nongnu.org,
	qemu-stable@nongnu.org
Cc: sstabellini@kernel.org,
	anthony@xenproject.org,
	paul@xen.org,
	edgar.iglesias@amd.com,
	xen-devel@lists.xenproject.org
Subject: [PATCH v1 0/1] xen: mapcache: grants: Fix mixup betwen ro and rw mappings
Date: Fri, 25 Apr 2025 16:31:55 +0200
Message-ID: <20250425143156.204452-1-edgar.iglesias@gmail.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: "Edgar E. Iglesias" <edgar.iglesias@amd.com>

This fixes an issue with grant mappings when a read-only
mapping is requested followed by a read-write mapping for
the same page. Today, we don't track write-ability and
read-write lookups hit on read-only entries.

This series is an attempt to fix this by splitting mapcache_grants
in two, a read-only and a read-write instance.

I tried a couple of other approaches, one was to speculatively
map grants as read-write and if mapping fails, then fall back
to read-only. This works but since Xen logs each failed grant
mapping, it gets noisy.

Another way is to track writeability per mapping in the cache
and modify the lookup logic to only hit on compatible mappings.
It works but adds more complexity to the lookup logic compared
with the split cache approach.
https://gitlab.com/edgar.iglesias/qemu/-/commits/edgar/grants-ro-rw-fix

Cheers,
Edgar

Edgar E. Iglesias (1):
  xen: mapcache: Split mapcache_grants by ro and rw

 hw/xen/xen-mapcache.c | 26 +++++++++++++++++++-------
 1 file changed, 19 insertions(+), 7 deletions(-)

-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Apr 25 14:42:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 14:42:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.968210.1357877 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8KGA-0006T6-QM; Fri, 25 Apr 2025 14:42:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 968210.1357877; Fri, 25 Apr 2025 14:42: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 1u8KGA-0006Sz-NJ; Fri, 25 Apr 2025 14:42:34 +0000
Received: by outflank-mailman (input) for mailman id 968210;
 Fri, 25 Apr 2025 14:42: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=ZJ1s=XL=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u8KG9-0006St-TN
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 14:42:33 +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 801115bf-21e3-11f0-9eb3-5ba50f476ded;
 Fri, 25 Apr 2025 16:42:24 +0200 (CEST)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-39efc1365e4so1167467f8f.1
 for <xen-devel@lists.xenproject.org>; Fri, 25 Apr 2025 07:42:24 -0700 (PDT)
Received: from [10.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-3a073ca5225sm2599018f8f.33.2025.04.25.07.42.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 25 Apr 2025 07:42: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: 801115bf-21e3-11f0-9eb3-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745592144; x=1746196944; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=8ZtQPHmzG31xriP/OP/HmV8wfUBy3Mw67KqFymqL98U=;
        b=Y3inQXvLK7st7FZ8zuiQSNIL8Mgf8KTMPzMDGm/jpZVPQWy87aKSYguQYemJuaUL58
         r49Bwx0ecLxYAIzmKG/ncfQ/oxtDaM86WnVeGCQfy5xpK19cn7NOG0s56KElnDTlbOid
         OJEuE73XepGuDXL6BXDeByeDPFZCLtQ2kmDlul6VoZQZ91/CeWzGkK1K/x/g/n96dPud
         ez8WcHhFB71cnT4S6gCx5Pf31LMDVykBpfMNnm/oWT5zrIHnIb0xDU+qq568tBF0l0YL
         64BezL3WUN11YxLhfiRLW02BYY13Yf60WW0VsOb++RQ+42N1yfbJv6w9/Z5wmABIUkcr
         BIZA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745592144; x=1746196944;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=8ZtQPHmzG31xriP/OP/HmV8wfUBy3Mw67KqFymqL98U=;
        b=T4dePFBRkCZD+dIw9TYYy4/2gQK7rqbeqtOiF3f/dFadj8rJvbcSXzb3W3yOmrU9eg
         ttBhjCAMe00NTYLu3xyq4yqBYlCmc4mcJkcz0zpQZGfUhi7OSTZYvRFbWha/nthPLSvx
         EL+E5GlWZxKpwdVMxk2sQyb32Ipga0pu8SA/8b8JqPO+gRUX0hHl9ZgMOVSTicj3OkMG
         1zoX/hwT+3rpBEaM6/EVzwUIH5lCcoJAfU2/DFy7pfELESy7dXMsP20RqnXBsjKTLYQj
         FG3k5GON4BQ95VXp4YaQF7B8wWj+TgI6AV6cn4M6Mc40adI1ZuUopFZT3Yq8DTlz+Gy7
         0K8A==
X-Forwarded-Encrypted: i=1; AJvYcCXTBVAF+hsXkCBLXcZtITq2oCUo3iAxjEb0mjEuZyHbpJcsbatVFYHSQXX476JLqRHDCEwY4n3PMeo=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwNMu+0Pcj38dknBXGoRfOkntyeJOpMi3xyWq3Pv77I8Dsjb2Xp
	3Fy1GMs+EsVrGaN9zD5PKF96qS23UBtKSaJ4YnBqn6kd8dE06dBiLbtRwYvnWw==
X-Gm-Gg: ASbGncvth4OaHbK2G4qks+kbRcArXAkYNjMUoKtk3IxP5+eaD+4+H9Y0Pe/z2nO3tjV
	mjx3I2LNlyKVPhpE18Cs1Q5d5e0KTSabxfjk/os7V68bnaAdDhgs7k3TYEnqs1atqrecYL0A1W5
	T1fZ5ltdm3wN1UP6gRhTZwuiC7HmO0d75j/8z9SGpBv1dFPKb35dWIe4LTn2+Pt6bG5BNx3Fcy2
	tdTq3+DC6DO6hmh45f4Qr5/3s2GLhtwhCVGmHNBQosW5fYt4usTgv/JCqYY7q6+EEyziTaYlUdg
	LFRu9tmM29ozrsQOvOA2FMYmeEVXdwAbO/L34VbRjbWGu6q5u98Cb9gxVgnKkjCwA6E8APS0U7B
	POZnG/wLnc6Tcy1rtuEoPj3MORw==
X-Google-Smtp-Source: AGHT+IGqdu/MWt+1xMFfc6l/vxACo3VMfbv+HMYpM3ETfkK978bTu4EbdjOI/+yNip/WxY4WB7iqlw==
X-Received: by 2002:a5d:47c9:0:b0:3a0:6aca:88c5 with SMTP id ffacd0b85a97d-3a074e0ffa1mr2074976f8f.11.1745592143523;
        Fri, 25 Apr 2025 07:42:23 -0700 (PDT)
Message-ID: <fb85bf50-2a44-493d-b4ef-29417b4efcb4@suse.com>
Date: Fri, 25 Apr 2025 16:42:22 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 1/3] xen/mm: Introduce mm-types.h
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Shawn Anastasio <sanastasio@raptorengineering.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250425112415.245585-1-andrew.cooper3@citrix.com>
 <20250425112415.245585-2-andrew.cooper3@citrix.com>
 <e5c6b448-945c-4c93-a3d6-e6e598102c2b@suse.com>
 <74bf3a58-6c90-4123-80e3-b72ba67ea46d@citrix.com>
 <654dd5d3-b235-4f5b-9ad6-b3f1281434d2@suse.com>
 <25666272-71b9-4ec6-8a77-a3b419132d83@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: <25666272-71b9-4ec6-8a77-a3b419132d83@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 25.04.2025 15:48, Andrew Cooper wrote:
> On 25/04/2025 2:13 pm, Jan Beulich wrote:
>> On 25.04.2025 15:05, Andrew Cooper wrote:
>>> On 25/04/2025 1:48 pm, Jan Beulich wrote:
>>>> On 25.04.2025 13:24, Andrew Cooper wrote:
>>>>> The type used for pagetable attributes/permissions is currently unsigned int,
>>>>> but needs to become architecture dependent as PPC needs unsigned long.
>>>>>
>>>>> Introduce mm-types.h to house pte_attr_t.
>>>>>
>>>>> Given the new toolchain baseline, we can use __has_include() now to remove the
>>>>> need for boilerplate on most architectures.
>>>> That's true now, when it's just pte_attr_t that's there. Memory management,
>>>> however, is pretty different between architectures, so I wonder if in the
>>>> longer run any one will remain that actually can use the common header.
>>> Anything in xen/mm.h is common and needs architectures to provide (or
>>> use the defaults) the bits required.
>>>
>>> asm/mm{,-types.h} still exist (when necessary) to provide the
>>> arch-specific extensions.
>> Sure, but you kind of avoid my question: Are you reasonably certain more than
>> one arch will still be able to use the defaults, once a few more things appear
>> in this header? (IOW: Won't we be better off having each arch have its
>> asm/mm-types.h right away?)
> 
> I can't predict the future, but my gut feeling is that it's not going to
> diverge very much.
> 
> If needs be, we can go to conditional override for specific bits.  Or,
> if I'm wrong, I'm wrong.  It's not hard to change.

Well, feel free then to put in with Oleksii's R-b.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Apr 25 14:48:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 14:48:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.968222.1357887 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8KMH-00073q-E9; Fri, 25 Apr 2025 14:48:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 968222.1357887; Fri, 25 Apr 2025 14:48: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 1u8KMH-00073j-Ay; Fri, 25 Apr 2025 14:48:53 +0000
Received: by outflank-mailman (input) for mailman id 968222;
 Fri, 25 Apr 2025 14:48: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=Y3Op=XL=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u8KMF-00073d-DB
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 14:48:52 +0000
Received: from mail-10630.protonmail.ch (mail-10630.protonmail.ch
 [79.135.106.30]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 60cd0186-21e4-11f0-9ffb-bf95429c2676;
 Fri, 25 Apr 2025 16:48:40 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 60cd0186-21e4-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1745592519; x=1745851719;
	bh=TKYBxeWi+/1GqXurbs+QgV6+7XatARiJqrZ0rIWIkEA=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=iLwpBM4moipspVjUIedNhpUPNWr2rm9+qPxl5Lasb76U5npe8UCh7naoa3iJ64aDD
	 XDEEWQ0P1ZqOfYcw/YofCmuCK4qcSdXxEZ5Qgaw2ZH6y3ry7ao/YEQ3vz8E0U69prL
	 1Q8dRAqPr+UafND5f1NJug6iXcMlrOIUKIiQikSfBneOgv5e9M9NKShVhR5HHhDTjC
	 Lag9EWJUiB+3tMWdtI7U69I/embcl6817PFWFNMQY3I9VtmvZwKOQ+cuPTiwls/4nN
	 VhgnlV2OIwHxuo/6uqiJmTkZijRHB3MVXg4+wyZozeV4thkgdXOoDC1DNUzec9Y0io
	 wfRPkDQ61i3ww==
Date: Fri, 25 Apr 2025 14:48:34 +0000
To: Alejandro Vallejo <agarciav@amd.com>
From: dmkhn@proton.me
Cc: xen-devel@lists.xenproject.org, Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>, =?utf-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>, Bertrand Marquis <bertrand.marquis@arm.com>
Subject: Re: [PATCH v5 00/12] Hyperlaunch device tree for dom0
Message-ID: <aAugvlVL4iqPAL1h@starscream>
In-Reply-To: <D9FP9XTIH5FT.2SYZUNG1UO138@amd.com>
References: <20250424161027.92942-1-agarciav@amd.com> <aAq41+qsbuJP2JOj@kraken> <D9FP9XTIH5FT.2SYZUNG1UO138@amd.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: aa55d2d5061e0bbc2595bcd80027e452225e304a
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Fri, Apr 25, 2025 at 12:58:01PM +0100, Alejandro Vallejo wrote:
> On Thu Apr 24, 2025 at 11:19 PM BST, dmkhn wrote:
> > On Thu, Apr 24, 2025 at 05:10:10PM +0100, Alejandro Vallejo wrote:
> >> Hi,
> >>
> >> v4: https://lore.kernel.org/xen-devel/20250417124844.11143-1-agarciav@=
amd.com/
> >> v3: https://lore.kernel.org/xen-devel/20250408160802.49870-1-agarciav@=
amd.com/
> >> v2: https://lore.kernel.org/xen-devel/20241226165740.29812-1-dpsmith@a=
pertussolutions.com/
> >> v1: https://lore.kernel.org/xen-devel/20241123182044.30687-1-dpsmith@a=
pertussolutions.com/
> >>
> >> =3D=3D=3D=3D=3D=3D=3D=3D=3D Original cover letter:
> >>
> >> The Hyperlaunch device tree for dom0 series is the second split out fo=
r the
> >> introduction of the Hyperlaunch domain builder logic. These changes fo=
cus 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 ex=
press a
> >> domain configuration provides the next step towards a general domain b=
uilder.
> >>
> >> The splitting of Hyperlaunch into a set of series are twofold, to redu=
ce 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 c=
hanges.
> >>
> >>
> >>
> >> Alejandro Vallejo (1):
> >>   x86/hyperlaunch: Add helpers to locate multiboot modules
> >>
> >> Daniel P. Smith (11):
> >>   kconfig: introduce domain builder config options
> >>   common/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
> >
> > One general comment w.r.t. naming notation in:
> >
> >     xen/common/domain-builder/fdt.c
> >     xen/common/domain-builder/fdt.h
> >
> > Sorry, overlooked that earlier.
> >
> > What do you think about using fdt_<something> notation for all function=
s in
> > fdt.{c,h}?
> >
> > For example:
> >
> >     s/detect_fdt_kind/fdt_detect_hyperlauch_node/
>                                          ^
> =09=09=09=09=09 kind?
> >
> >     s/find_hyperlaunch_node/fdt_find_hyperlauch_node/
> >
> >     s/walk_hyperlaunch_fdt/fdt_walk_hyperlauch_node/
> >
> >     s/process_domain_node/fdt_process_hyperlauch_node/
>                                          ^
> =09=09=09=09=09 domain?
>=20
> Assuming the two nits above are mistakes on copy-paste, it sounds
> reasonable. I'll wait for some acks on the rest and resend with those
> adjustments if needed.

Sounds good!
Yep, my point is let's use prefix for consistency.

>=20
> >
> > Other than that:
> >
> > Reviewed-by: Denis Mukhin <dmukhin@ford.com>
> >
> > for the series.
>=20
> Thanks a lot!
>=20
> Cheers,
> Alejandro



From xen-devel-bounces@lists.xenproject.org Fri Apr 25 14:57:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 14:57:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.968233.1357897 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8KUV-0000ek-65; Fri, 25 Apr 2025 14:57:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 968233.1357897; Fri, 25 Apr 2025 14: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 1u8KUV-0000ed-3B; Fri, 25 Apr 2025 14:57:23 +0000
Received: by outflank-mailman (input) for mailman id 968233;
 Fri, 25 Apr 2025 14:57:21 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ZJ1s=XL=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u8KUT-0000eX-E8
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 14:57: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 962dd381-21e5-11f0-9eb3-5ba50f476ded;
 Fri, 25 Apr 2025 16:57:20 +0200 (CEST)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-43edecbfb46so15789995e9.0
 for <xen-devel@lists.xenproject.org>; Fri, 25 Apr 2025 07:57:20 -0700 (PDT)
Received: from [10.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-440a5369cc1sm26945845e9.32.2025.04.25.07.57.19
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 25 Apr 2025 07:57: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: 962dd381-21e5-11f0-9eb3-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745593039; x=1746197839; 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=tektL52K2VrClu4Lx4GmS+MUB1SUZ5mGyZugGsRBqsY=;
        b=MdcesEUE/ec2fVl5KnhfJ2I9aYMsOC18bmFLwUXSk4X3WNP654c3RS6gdtDU8aMcTL
         WBIpwjYqt/bbsr9xV4g1nxMdVsfDiyqzUT2O/lp/2CAEzOm1G+mb2W1ERn7fJyTbSE8X
         HIuYK3uYmYM8bsEEQJGOhWuIT5Lb63TEZdDkttWa2zKsEeOJF9w5Z5l5ILfarMTEvtj+
         WumYVA+5IwSiRG4C0gjdLeoxZCZHzIwTfW/o12AnIR4Gmsoc6y43LXdgOqiwpqoXMN88
         9c5PaEfUkvWLImV9S+U/9CYqj1Llalk4vwicTMPEFrUb+nXdNTSznDU8hByEDOesv88j
         Bl/g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745593039; x=1746197839;
        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=tektL52K2VrClu4Lx4GmS+MUB1SUZ5mGyZugGsRBqsY=;
        b=eAGiHq0mxCVUJkgQw2LuEFrkEGiApI4sqWAuFHZtLaTPM4wnqOlwmazkOHurqFox7a
         cqkIrLD1u0mPzrUu+trMeSGhmXAPiHQ+xemgQ1vSdxzkAxqPgoeCQU1UOmJ/my61Nj8Q
         2mW8TeNXLwxQsqb7Nr95tEtqou9VncvjC1WwyHe/0rePNvSY9Pc6ZiU1lPs7GKynKVP6
         IPyzyO86hRegYJuAUY7I6jAIYcUufNNYCUMvqqZZ7FbOSfGWCxmuYMOvtnsAZGzyw6Ly
         LAQyG9pnhWoEoB0bw3WyH8oHUOchsnsKznIl/A0TJDq5LSRObIoo+DFq/aNUs1EO+Q3G
         SCzw==
X-Gm-Message-State: AOJu0Yx5UB/lO/3wCZxn5GwBTkLdeOY/zhQnE7L3F5ttJAJmd1onBZ5D
	CJKcwTaYOg0W0YfeGS0+/tlGjbRpcdrprOUr3gMPNVDixHhNso1hah6Sr6oH0zWUEW1srE77x44
	=
X-Gm-Gg: ASbGnct60uYsm8zWhIpOH6rFELL3ChLGrnNQXZZzdZKja4ZIlCo1YjvUyTY+ATVFQxo
	aV0JqeRq2N6tEvG/DlJ32LF3BlRm+4BMxirkAgQFBprFG1H4uAnJcoADJDLEXUMieKMYi9yVhAH
	niEKSWsZh6sHpjz6bqJ4nVC3XjZvxYx6bwJPsWoJ+bAHkOCUaIK+P0PWPpDCb5jJYUsRYxfsXpf
	+CufBCXDGs4OCTqoWlEPWZpGle4yhU8/549lSf4XZR6wAdcvijF3ywmYdta0Qs+i5MLWK+/8daY
	gYIWyFfByYc2p8CpjRgIJeWTCjQZinG9pq/+9BzGqcIad/DmII8bYR8R+SaeyKgqHVQTGLyJpKT
	ol8MRmCoKJdcgJ2hsK4ydWCUMZg==
X-Google-Smtp-Source: AGHT+IFZv2s/NHENR66TiYS21vg4TuT5/yX/xThiBTpIBICTej3BjvUx9EW2P2DsmxxE/rslZcjNjQ==
X-Received: by 2002:a05:600c:8597:b0:43d:db5:7b1a with SMTP id 5b1f17b1804b1-440a6f4d886mr23296045e9.12.1745593039563;
        Fri, 25 Apr 2025 07:57:19 -0700 (PDT)
Message-ID: <8e31896e-3603-4969-af7c-3175ceacff55@suse.com>
Date: Fri, 25 Apr 2025 16:57:18 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH v2] x86: constrain sub-page access length in
 mmio_ro_emulated_write()
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>,
 Marek Marczykowski <marmarek@invisiblethingslab.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

Without doing so we could trigger the ASSERT_UNREACHABLE() in
subpage_mmio_write_emulate(). A comment there actually says this
validation would already have been done ...

Fixes: 8847d6e23f97 ("x86/mm: add API for marking only part of a MMIO page read only")
Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
v2: Emit a warning message otherwise.

--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -5195,8 +5195,13 @@ int cf_check mmio_ro_emulated_write(
         return X86EMUL_UNHANDLEABLE;
     }
 
-    subpage_mmio_write_emulate(mmio_ro_ctxt->mfn, PAGE_OFFSET(offset),
-                               p_data, bytes);
+    if ( bytes <= 8 )
+        subpage_mmio_write_emulate(mmio_ro_ctxt->mfn, PAGE_OFFSET(offset),
+                                   p_data, bytes);
+    else if ( subpage_mmio_find_page(mmio_ro_ctxt->mfn) )
+        gprintk(XENLOG_WARNING,
+                "unsupported %u-byte write to R/O MMIO 0x%"PRI_mfn"%03lx\n",
+                bytes, mfn_x(mmio_ro_ctxt->mfn), PAGE_OFFSET(offset));
 
     return X86EMUL_OKAY;
 }


From xen-devel-bounces@lists.xenproject.org Fri Apr 25 15:05:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 15:05:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.968246.1357907 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8KcO-0002j1-UE; Fri, 25 Apr 2025 15:05:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 968246.1357907; Fri, 25 Apr 2025 15:05: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 1u8KcO-0002iu-Re; Fri, 25 Apr 2025 15:05:32 +0000
Received: by outflank-mailman (input) for mailman id 968246;
 Fri, 25 Apr 2025 15:05:32 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Fya8=XL=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u8KcO-0002io-E4
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 15:05:32 +0000
Received: from NAM04-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam04on20610.outbound.protection.outlook.com
 [2a01:111:f403:2409::610])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b8e76e02-21e6-11f0-9ffb-bf95429c2676;
 Fri, 25 Apr 2025 17:05:28 +0200 (CEST)
Received: from MN2PR08CA0026.namprd08.prod.outlook.com (2603:10b6:208:239::31)
 by DM6PR12MB4057.namprd12.prod.outlook.com (2603:10b6:5:213::9) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.27; Fri, 25 Apr
 2025 15:05:22 +0000
Received: from BN3PEPF0000B075.namprd04.prod.outlook.com
 (2603:10b6:208:239:cafe::ed) by MN2PR08CA0026.outlook.office365.com
 (2603:10b6:208:239::31) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.37 via Frontend Transport; Fri,
 25 Apr 2025 15:05:22 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BN3PEPF0000B075.mail.protection.outlook.com (10.167.243.120) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Fri, 25 Apr 2025 15:05:22 +0000
Received: from localhost (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; Fri, 25 Apr
 2025 10:05:20 -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: b8e76e02-21e6-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=MiKNvbtYIxCr3Pugv05E2QKb9HFUOk+xNg8HhIpwsHJu8GL5S4zyFOvGWefyK787z4jp1NkaXlh3yiSMXbxmF95gJS1ar2jC3Jb+A/ZAHeRqRqYkyn8/SkpZkjQE+dxqjabDKsW2pvXB2akG3iNr8055a3CD+Zcq27Psoor+nabjvbyHqgPhfsZYn+lw467RPNT+LjlCR50vpvu+l+s3ZkVHwZxhBLuq5ZCCmElHU//UZl/GCs93O9DW4qJimNrsmLrmBkKk4I7+SErzOam3K8OUGBqvVlAOtHewO4mTL7ij67Nvqe5ohaG9nNzYyrAy79hK7s/sbKywAocSAb09kw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=fYCxa/vBeVlmOwio7PE+M4cuHvrml2IC/+3T8IpQ/ZQ=;
 b=DWZnYD6rBVyJmYejsw46tvRX8nYSpHDNHa0raae9uUgCkAKGPWm1nEgK5vxa1/Ob+6VrcZMvmgJVTAZOGMqKYVfvJ5qd95UrRQnEhMeCfGiE3Q7ySO0X/EOyiQ+jh4LmcBtWnf+fw43Dnds7nxFQCgmxXu6zhl6cbkrQshzDFusxT+Cb6BF0wZ2tDY0jEM2KfzkUdAt3lJ9Y8NRLFbgI2pa8g+sc9rTkaMBnTWxuiMr6hGXSbcmC3wkxuHo2hzxIyfBeBkxihmVxuAPKhNK4AqbvwkxgaiUt851PLcGtW8HWEryRIYaueDHJH1neTGtwNkaWtHwZQuo8jy5+dLyA9A==
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=fYCxa/vBeVlmOwio7PE+M4cuHvrml2IC/+3T8IpQ/ZQ=;
 b=FpIllVfE9qifWefySTuONWnHgN1A6gE4UUUCFu1VFqlb8crlMwum3swq7HJUVFdgYu74liIoIgDUkdorGE0xnUS1fBtz+rF+NF4rXuRm8EGv68xOlcVgDujPrWSZt4+dj1lpHe/3LeIZn0tIsW54qQd/ApFClUnzmJCFFSTlLfk=
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
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Fri, 25 Apr 2025 16:05:19 +0100
Message-ID: <D9FT9CGX7VBK.1SKSWAY7UG6SV@amd.com>
To: Jason Andryuk <jason.andryuk@amd.com>, "Daniel P. Smith"
	<dpsmith@apertussolutions.com>, <xen-devel@lists.xenproject.org>
CC: <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>
Subject: Re: [RFC 03/38] x86/hyperlaunch: convert max vcpu determination to
 domain builder
From: Alejandro Vallejo <agarciav@amd.com>
X-Mailer: aerc 0.20.1
References: <20250419220820.4234-1-dpsmith@apertussolutions.com>
 <20250419220820.4234-4-dpsmith@apertussolutions.com>
 <b3069950-ac03-4603-866c-27c6166bfecf@amd.com>
In-Reply-To: <b3069950-ac03-4603-866c-27c6166bfecf@amd.com>
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: BN3PEPF0000B075:EE_|DM6PR12MB4057:EE_
X-MS-Office365-Filtering-Correlation-Id: cf75f65b-d16e-4262-2d7f-08dd840a99e9
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|36860700013|1800799024|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?cm5Ya3FiakNESkhMR0dVYkhzY25VdnVLSnJwZjNkMkVpTlhoa0pFSnZQVnZO?=
 =?utf-8?B?NXhhRW1QR0JFZVhqUi9JUmgyN016ZkJpNHhFbzFrYWwvajNOZlJVK0lMcHNh?=
 =?utf-8?B?ZC9LdDBndzVHVEdDWkUwUWZGem5aY1dPV29OTy9vQ0NwQmt4dHpxN3BMWWhT?=
 =?utf-8?B?L0xwS3NRcEJYVTd1MENjMkthaEhsVU5JRkcvMnhNemJKdVdDT25uek5pV1Ji?=
 =?utf-8?B?d0JXUktzQlZrUGx2cXJ0NDZmQ3ZHVUltNHVoY3lJdWxLZjZwSENCU1hYTUJE?=
 =?utf-8?B?cHM2UmRCN0MxdEVKcEJsaFB6eE5aVzhkWHdqSjU1M0c5SVNFdUIxNGhXeXdX?=
 =?utf-8?B?a2o3QVpkK2hWb3hFSDBQZVgydGxrWGk5MU5XNWtIcDdFNVpKRFZqSnptQXBS?=
 =?utf-8?B?TGU5UythK3RDdzhhN1hlOTRiUjZBcGNEaVpGT2VtZ0ZuMThkcC9tWWtJeFFs?=
 =?utf-8?B?NWpsWjhnNHdHUHhPSTRZNXFtT3Y5dCtLbDRxNWYxdUhEUExoa1pvc3ZMRzRM?=
 =?utf-8?B?aGgvOVpFOUtYYUlyalJ3OVM4djBpS1E3cnBoaGQvYmlkNC8vZ2V2a2lXRlJJ?=
 =?utf-8?B?MlZzekUrUGpvZFY3ckFpMGNZV1ZDRGxtYnNubUx0T3NBNFhHM3g3Ym5WbS9Y?=
 =?utf-8?B?UmNqUFMrbXUxQ2FOZHZ5WFY4SFVTL0hBN3MraVBMZGtuenArQUZrbkduR0pm?=
 =?utf-8?B?YXdnS3FlRDFja2xWb1hEK3c3MG15NkpTN05najVpWlFCalJralB4MkFjdmZy?=
 =?utf-8?B?Y25tVHpudlByL2JqNkpjR1krWnJNbjNSRE9XWksrSjdsMjZQNEhVZXc1V0kz?=
 =?utf-8?B?ZWtCY3FFYTYzM1g2VFBJaVVMeVk2SWxWNHNjemxhQjJibDBNQ3dpK1dVNGl5?=
 =?utf-8?B?aWxMWVpaZVQvTGNtL1RWZ2lmeWlNWVJzNm5mcGhDTERCTlR4eVBCbXFlcm5Y?=
 =?utf-8?B?L0IzYUFqT3U1RFVLNDAyWlA2aFI0dkZCeXQ4U0lUT1dVRUFqQm9XOWNiOFN3?=
 =?utf-8?B?ZHdtOHVrSWI0R1ZDQmYxb1RwTGtxT2ZSZUtBRlNzU3ZrOG9LVFovWDBMelMz?=
 =?utf-8?B?TGRPRDJqbm9xS2VGWW1FWDJKRkxrWDVLdzcyS2s4cHkvMlMvQlJyTDRCZXZk?=
 =?utf-8?B?NndheFRpUTBhT01TOWpFczVnSlJobkJlUEFhWjRnL1d3dllKeUc5UDY2c2px?=
 =?utf-8?B?aUdoMUpHVWRaaktUM1dFc2x4YnpaQlJLVlg5RWRWWG0xdTZZVnRid0hqL1cz?=
 =?utf-8?B?TDNEUDhXeE01RzA5ZVpKdWdQYmFIZ1BiSzZEUEd6SHRNNlBmNXpYNGNMY1Jt?=
 =?utf-8?B?bWZreStDU0s1cktGVkxoc2F4RitjL2kvZzA0MUdDakMxY0JMbzJYK3lmemQy?=
 =?utf-8?B?bWlubEFFSE5qbE5RTXppNm9ka2pIMmY4UlNGNzhvWkVBR3ZXbHpKUTlJR0lI?=
 =?utf-8?B?ZEVhYTVDY0tlZCtWSXU5RncyUFBqUDg5M015aUpyQVZNOGRPdmhoTW9NaDJa?=
 =?utf-8?B?dFZZZjVtWjhDcnV3QnFFcEl2TnhPZVY3Rmh3M0t4YklhNnU4Z29QZENoa3Vl?=
 =?utf-8?B?c2E4Q3BKWVh0MVl0OFZZKzhMMzVEL3NuTnZoSG1CLzFMY2Z0WUhlR2dPTkxB?=
 =?utf-8?B?eXI4cGtFQ3A5b095cXljaDlmc2krcXNucDNjRG1FNyt4YXRBVi9ucFhJL0t4?=
 =?utf-8?B?Vm5SQUdYTlVGZ0czTmRRL2Fqb0wrc3dURTRlbm5zVUpLbjluSVNjeG80a3E4?=
 =?utf-8?B?ZkU1dXJVakVyUGMwRlRnNVphZWYzOEpBM3RIbytGOVhNUzJPWnZZY09FS09R?=
 =?utf-8?B?cnQ0ZC9IajVJVloyTkRVelZwZC9IN2tJTDhYQmFoK0RQQkZqRDZkZEswM1Vq?=
 =?utf-8?B?Y1dWY2hHTE5mb3ZWQTlOdi9IMENxQTIzWFBqbUhSS091c3RFTk0rVkxOTjB1?=
 =?utf-8?B?Z09CdmhRTHpCdTViUXJNNzU2dm0vKzhJcFZsbkgzcmR1M2t6S01Xdnh3THFr?=
 =?utf-8?B?Mk8rTUFvaFBXYzh6QzdKOGNCcGtNOW93R3dSQ2VBV0xoVnEraWNWaGdqOVR6?=
 =?utf-8?Q?rZfvaR?=
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)(1800799024)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Apr 2025 15:05:22.2588
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: cf75f65b-d16e-4262-2d7f-08dd840a99e9
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:
	BN3PEPF0000B075.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4057

On Tue Apr 22, 2025 at 9:36 PM BST, Jason Andryuk wrote:
> On 2025-04-19 18:07, Daniel P. Smith wrote:
>> +        limit =3D dom0_max_vcpus();
>
> dom0_max_vcpus() applies Xen's dom0_max_vcpus command line option.  That=
=20
> is desirable for a traditional dom0.  For a disaggregated, Hyperlaunch=20
> system, I'm not sure it's appropriate.  Considering there can multiple=20
> control domains, it's more questionable.
>
> Might it be better to only apply Xen "dom0" command line options to=20
> non-hyperlaunch dom0?  Or a domain with all of=20
> BUILD_CAPS_CONTROL/HARDWARE/XENSTORE?

Alternatively, why not apply it to the hardware domain instead? That's
guaranteed to be (at most) one, and will still function appropriately
when doing non-DTB based boots.

I'll make this adjustment while rebasing this rfc against my latest
hlaunch series.

>
> I guess it could stay as-is, but it seems unusual.

And would probably be particularly weird when it applies to all your
control domains and _not to your hardware domain, which incidentally is
the one domain with domid 0.

>
> Regards,
> Jason

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Fri Apr 25 15:22:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 15:22:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.968262.1357917 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8Ksr-0006PJ-E0; Fri, 25 Apr 2025 15:22:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 968262.1357917; Fri, 25 Apr 2025 15:22:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8Ksr-0006PC-AU; Fri, 25 Apr 2025 15:22:33 +0000
Received: by outflank-mailman (input) for mailman id 968262;
 Fri, 25 Apr 2025 15:22:31 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Fya8=XL=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u8Ksp-0006P3-Rs
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 15:22:31 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on2061a.outbound.protection.outlook.com
 [2a01:111:f403:2412::61a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1955c1ad-21e9-11f0-9eb3-5ba50f476ded;
 Fri, 25 Apr 2025 17:22:30 +0200 (CEST)
Received: from BLAPR03CA0143.namprd03.prod.outlook.com (2603:10b6:208:32e::28)
 by SA1PR12MB8600.namprd12.prod.outlook.com (2603:10b6:806:257::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.23; Fri, 25 Apr
 2025 15:22:23 +0000
Received: from BN1PEPF00004680.namprd03.prod.outlook.com
 (2603:10b6:208:32e:cafe::5b) by BLAPR03CA0143.outlook.office365.com
 (2603:10b6:208:32e::28) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.37 via Frontend Transport; Fri,
 25 Apr 2025 15:22:23 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BN1PEPF00004680.mail.protection.outlook.com (10.167.243.85) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Fri, 25 Apr 2025 15:22:23 +0000
Received: from localhost (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; Fri, 25 Apr
 2025 10:22:22 -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: 1955c1ad-21e9-11f0-9eb3-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=pKbDnYk7gM7+ziPsw8ypZcp/uRKuhg2ElfDDbXZdqczhMI9HtIDUotv3hnXrexHBO6GjS6X7mWX4AfcDxhgwQVVysxvUd8oWfEwEJGmoY9SDNgyiN8Mg0Nd6Bfr7pWBOaNM6dRyMZAUIjayf4d+vW0kUQtaUAt7oaKgR2yxq2xHHnAv5G70ZdFTqP/KRfRINnHOvXGMFlues50jS3eEM+LEQEL4gTNPOK50OZRpQWpcd9Y+Ym3RwPET044UWFojLbDn2D9ot27+RDqx1gAqLT5SNOjJdV7ThO4Pk0a+HTX2KvZekx2EJLnp+V21Qsh1Ntsw4bDyUNt27j9uHrOGpYA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=jtI2W2IgT4q2vABA7JthLVQLkC/UPM3zKWRx5ppodnI=;
 b=fFkX8l2EwckaoxBXw/lGWz7k8sEChxBorM2q9PWNxA6M8QOYgDN6voGHCtOi2YYRHsGjc8gkGCT30tZKHQS8C8gFQ5FLmJmAcA7XaA1z1ZIPWgwKlYbz9BfLqypnN3Qzp7DERUHL43W+zgGiNcWoZG0mrPuYvW37KRa4/SgRjvgGhykslu0xxMKrGIM9Rpf9xeqWGjbHW4boyOBxK3pbycQHMBEMsJ0UJUC3eAa6lgsgwVPt3xk28uEmDxnD1mrWXvflwI5G2c+lh1WBgbNPlLVRpZWDm3mxLMaWZnN05Y/xIc7nlNis/4jSNAqIUQwsdGaxqAg6PvJ4h+TvhNi9lA==
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=jtI2W2IgT4q2vABA7JthLVQLkC/UPM3zKWRx5ppodnI=;
 b=lkkWeJP8htfUpfAhcR+MwJragf8S7edncjeiQc3whSyc/P//Oe1RPIKrT8OXP9l3cdqdA55f7+TT8ZtSFJ86mWunYfvd15lPeqmOZtJMECUqQr182+1EmMIiITrSzctD3nEqOks8eUSDcOo2kLvn8KNvWqRYQW+JiF5O1oRxJEE=
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
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Fri, 25 Apr 2025 16:22:21 +0100
Message-ID: <D9FTMDQ501TU.1H73IHNYGWKZH@amd.com>
CC: <jason.andryuk@amd.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>
Subject: Re: [RFC 04/38] x86/hyperlaunch: convert vcpu0 creation to domain
 builder
From: Alejandro Vallejo <agarciav@amd.com>
To: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	<xen-devel@lists.xenproject.org>
X-Mailer: aerc 0.20.1
References: <20250419220820.4234-1-dpsmith@apertussolutions.com>
 <20250419220820.4234-5-dpsmith@apertussolutions.com>
In-Reply-To: <20250419220820.4234-5-dpsmith@apertussolutions.com>
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: BN1PEPF00004680:EE_|SA1PR12MB8600:EE_
X-MS-Office365-Filtering-Correlation-Id: 34c43e89-2779-43a6-116b-08dd840cfaaf
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|376014|36860700013|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?RFRFVngxMG1DWVVTRys4Q1BzVExxY2syeVFnUUlaaEUrMWZDbU1KN2cwNERQ?=
 =?utf-8?B?MDkzdEZudGpzTXpiQmVmTUZlWFg3bWxJb1V3Y0tWUVNsbEo2YUpQamJ5N1NZ?=
 =?utf-8?B?bUx5bzViL0FqNU0zMkg0VDBmdGpMVTNlTXkwVEQ4Rm43RkhHckRtd2NvSE5z?=
 =?utf-8?B?RXR4aVJGMmhEOTJrZFZQQVN3WWtPRXpFT1hSbW1CcHJtZzIwR2NEVjdjUVlS?=
 =?utf-8?B?dmY2MCtmMW1wcmZ1MWNZaTVIQi9sUksxUktGSnFTOER0ODhvVWtEd2NNS2RB?=
 =?utf-8?B?MjR5WDZrMjZqVDJTZllXRmhjWjhCTjdrakh5RW14NXJ3ZjlhM1JidHF6encr?=
 =?utf-8?B?Y1BLMHF0OFNpd0JKMzl6dHQ3SG4rRG9ERmwreVRCUk8yTlh4VTNSSUdPd2Qz?=
 =?utf-8?B?M01mZVVjRHRGRHNiUGFLU0E4WE1LUW85a1JRWVd0L3R6TFN3NlpKaDVLWHJW?=
 =?utf-8?B?djcyNml1MGF3dFphckNFYTlyVFJmQzRacVRFWkQ5U0Q3R0sxdVJwVFVlVkg1?=
 =?utf-8?B?V0dIVlRqYWZvdURyZFNqZWt0MEt6NFczb1hXTjVJbW5UUklrbnp2T3d5UXY4?=
 =?utf-8?B?K3FJUXBOZXd3dS96UE5FNzJWelNvVGdPeXhuMHBXWFRHUk5qeUVUMFdUWjRK?=
 =?utf-8?B?eThFS0RsM1hob3lNZjg1d0h2U0RJZVBwekoxMktuQWhacWttU1FLdDE5cWZJ?=
 =?utf-8?B?RkVwMStJa1J5Yk5MZWM0ZXVsZ05sWnpqY3FGVy9zaC9ZR1p2UktNaUFOUTNi?=
 =?utf-8?B?cHN5UXZ3akRRWHJ6YWt4NjFJZW5zd2tsLzFHQTVlK1JBZUlOQ25ZN0wrSjhw?=
 =?utf-8?B?Q0dON3BNa3d3U201YUZkNzVZQmkzOHFRZzh1Q2F3eFpHYXFZSkY5czE2R29N?=
 =?utf-8?B?dFJFNkQ1YlNZdEJseTg0MHdkQkZpWUFRRkc3TjJweFhVZmhuU2hPeTZwRTVS?=
 =?utf-8?B?RkdlcTRzclo5RmV0eXIySVVKRG9EczdYUUFacGgxWTc2ZTdjb2tzRGhzT2Nu?=
 =?utf-8?B?cjM4QjF3K3V6b0l1bUpvZkZwZmhZODF0SnIyaXV1NVRJaFd2cXE0WmkyRXVD?=
 =?utf-8?B?RmFpa09lNHRTSlpIUHVUeXFmcmltVWYzM3E4UDliRzJ0blVEQWphZGpZSGt1?=
 =?utf-8?B?RllSQ1lkNUtPMjhEaTNQbE1TWi9oQmFsQXlpdktJOStYelN2d2lSdzQySklv?=
 =?utf-8?B?a1VMRjhsSXpvb0Q2YnZVeWhYZC85ckNYRDZzdVJEVm9XczEvdTRicDNEdnJ1?=
 =?utf-8?B?OURadDFqa1VQZXhUdGJBVUdlbU0yc2I0cEt0UTJQRmMwZ1pqTWlXTWNPUHBD?=
 =?utf-8?B?OGVJK0RkWVJoUFNjK0FQK2Q4VjVyV0RtVEtoZkZMeVpGenQzYVdENEpQRUEy?=
 =?utf-8?B?Nzl6Rm10TmlXKzNpeFNkOWczUkNDREQ0RXlRb1IzcHRMQXJjMTFXc2cyVExR?=
 =?utf-8?B?WFBmRkVVQmtSdm9DYzNyQjA2NUdHMGFaUXlrcVE0akNXVklsbnJQdFBuUUlo?=
 =?utf-8?B?elB3UEVUM1J4aER3aWtMd2Y1Sy9wQW91ZU5ycCt1QUN3N0dxOXljUzNVU3pu?=
 =?utf-8?B?WCtHdW0wRlBYTFJPZ1c4Y0pvaE1tNHI3Mnk5ZDBEU3Nyai9MY1oySlFYSW5q?=
 =?utf-8?B?RU5vV213NVdMTE1xMzhwZjY4dXVtTHVSaitUa2g5RU0yYU9BTTZ3SWZNTVpG?=
 =?utf-8?B?MzhZMy81L3VOT2lzdkdFZ2FvSmNCWWNGbjBhUW85UjVDNWsvbFlBa2pLZWhE?=
 =?utf-8?B?TWRoZHE0emw2VjBYZUhiQktrYmJaZHF6UFI1ckZjUndXd3I2TUtYeThFUUJi?=
 =?utf-8?B?Y1lSOVFsYW1sVU4xZmtsNDhaaXlMQ2Z6WkFrdzJnU3pzNzhjU2lXd3FkNlBp?=
 =?utf-8?B?RUFQa1ZpaGs2RmZEdlBpKy9jWWozM0I4MDNLNjRGZWpiYVRJLzdhckdHT0dy?=
 =?utf-8?B?bHRraW1vQUtIT1cxMnZSWWUxMWJYZXZsNHQ1dTY1UWhoVzhVdFpZK2JLQ29p?=
 =?utf-8?B?U29wOFRFdWFkZWdEL1pQSHlkTDh3V0xWdDZzeHVCTllraUo3dWM1VmEydGha?=
 =?utf-8?Q?69YYv6?=
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)(376014)(36860700013)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Apr 2025 15:22:23.6260
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 34c43e89-2779-43a6-116b-08dd840cfaaf
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:
	BN1PEPF00004680.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB8600

On Sat Apr 19, 2025 at 11:07 PM BST, Daniel P. Smith wrote:
> Convert alloc_dom0_vcpu0() to dom0_set_affinity(), making it only set up =
the
> node affinity based on command line parameters passed. At the same time,
> introduce alloc_dom_vcpu0() as the replacement for alloc_dom0_vcpu(). The=
n have
> alloc_dom_vcpu0() call dom0_set_affinity() when the boot domain is the co=
ntrol
> domain, otherwise set the affinity to auto.
>
> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
> ---
>  xen/arch/x86/dom0_build.c                 |  4 +---
>  xen/arch/x86/domain-builder/domain.c      | 11 +++++++++++
>  xen/arch/x86/include/asm/dom0_build.h     |  2 ++
>  xen/arch/x86/include/asm/domain-builder.h |  1 +
>  xen/arch/x86/setup.c                      |  5 +++--
>  5 files changed, 18 insertions(+), 5 deletions(-)
>
> diff --git a/xen/arch/x86/domain-builder/domain.c b/xen/arch/x86/domain-b=
uilder/domain.c
> index f2277b9e3cf3..619d36ea0b87 100644
> --- a/xen/arch/x86/domain-builder/domain.c
> +++ b/xen/arch/x86/domain-builder/domain.c
> @@ -9,6 +9,7 @@
>  #include <xen/sched.h>
> =20
>  #include <asm/bootinfo.h>
> +#include <asm/dom0_build.h>
> =20
>  unsigned int __init dom_max_vcpus(struct boot_domain *bd)
>  {
> @@ -27,6 +28,16 @@ unsigned int __init dom_max_vcpus(struct boot_domain *=
bd)
>      return bd->max_vcpus;
>  }
> =20
> +struct vcpu *__init alloc_dom_vcpu0(struct boot_domain *bd)
> +{
> +    if ( bd->capabilities & BUILD_CAPS_CONTROL )
> +        dom0_set_affinity(bd->d);

Similar as before, this probably wants to be DOMAIN_CAPS_HARDWARE?

I'll adjust while rebasing.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Fri Apr 25 15:29:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 15:29:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.968275.1357927 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8Kz4-000703-35; Fri, 25 Apr 2025 15:28:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 968275.1357927; Fri, 25 Apr 2025 15:28: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 1u8Kz3-0006zw-VP; Fri, 25 Apr 2025 15:28:57 +0000
Received: by outflank-mailman (input) for mailman id 968275;
 Fri, 25 Apr 2025 15:28: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=tq29=XL=zytor.com=hpa@srs-se1.protection.inumbo.net>)
 id 1u8Kz2-0006zq-83
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 15:28:56 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fe16b2de-21e9-11f0-9ffb-bf95429c2676;
 Fri, 25 Apr 2025 17:28:53 +0200 (CEST)
Received: from [127.0.0.1] ([76.133.66.138]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53PFSG7j2879055
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NO);
 Fri, 25 Apr 2025 08:28:18 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fe16b2de-21e9-11f0-9ffb-bf95429c2676
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53PFSG7j2879055
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745594899;
	bh=VXq1PHnajmb8IhmTG7In4mFZ7EewzJEbGitlsKd4G50=;
	h=Date:From:To:CC:Subject:In-Reply-To:References:From;
	b=e8sSKlOE29QVRsUNwa5Glun405WCr1ZH8x+o/lM1uZO65MH8ZxHfRZ9Vpxe5VnEA+
	 exbTNWCfO9mqnsVBdWqxPuN5ymfnVoRJTE6z+MBGn61/u3Qm2DjxXhiGfR2jMZhqHr
	 TVyHxknF9aW5yNQDR1IeB4wNDPkNeqbiDL9Y9B0Tf3kbrU9Cizj1ktB/G9v+xJzUqp
	 CHyGasv5e/2REjIUjeW5ato0YPXhMP5OYJMXpoIgD7CMZRrKMKSc6nMzj9uhQk4uBg
	 IJzYx36Il8whoA9nZiKMg7YdPVo4z5Ujq2ijkY4iAHziVAchpEmHBwdMKS7/pwXclD
	 IBJVqUYnPG0ng==
Date: Fri, 25 Apr 2025 08:28:14 -0700
From: "H. Peter Anvin" <hpa@zytor.com>
To: =?ISO-8859-1?Q?J=FCrgen_Gro=DF?= <jgross@suse.com>, Xin Li <xin@zytor.com>,
        linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
        linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
        netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org
CC: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, acme@kernel.org,
        andrew.cooper3@citrix.com, peterz@infradead.org, namhyung@kernel.org,
        mark.rutland@arm.com, alexander.shishkin@linux.intel.com,
        jolsa@kernel.org, irogers@google.com, adrian.hunter@intel.com,
        kan.liang@linux.intel.com, wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com
Subject: =?US-ASCII?Q?Re=3A_=5BRFC_PATCH_v2_21/34=5D_x86/msr=3A_Utiliz?=
 =?US-ASCII?Q?e_the_alternatives_mechanism_to_write_MSR?=
User-Agent: K-9 Mail for Android
In-Reply-To: <6ef898f7-c8a3-4326-96ab-42aa90c48e1c@suse.com>
References: <20250422082216.1954310-1-xin@zytor.com> <20250422082216.1954310-22-xin@zytor.com> <b2624e84-6fab-44a3-affc-ce0847cd3da4@suse.com> <f7198308-e8f8-4cc5-b884-24bc5f408a2a@zytor.com> <37c88ea3-dd24-4607-9ee1-0f19025aaef3@suse.com> <bb8f6b85-4e7d-440a-a8c3-0e0da45864b8@zytor.com> <0cdc6e9d-88eb-4ead-8d55-985474257d53@suse.com> <483eb20c-7302-4733-a15f-21d140396919@zytor.com> <72516271-5b28-434a-838b-d8532e1b4fc1@zytor.com> <6ef898f7-c8a3-4326-96ab-42aa90c48e1c@suse.com>
Message-ID: <D7218B8B-B9D6-46F8-9397-C44398E24253@zytor.com>
MIME-Version: 1.0
Content-Type: text/plain;
 charset=utf-8
Content-Transfer-Encoding: quoted-printable

On April 25, 2025 12:01:29 AM PDT, "J=C3=BCrgen Gro=C3=9F" <jgross@suse=2Ec=
om> wrote:
>On 25=2E04=2E25 05:44, H=2E Peter Anvin wrote:
>> On 4/24/25 18:15, H=2E Peter Anvin wrote:
>>> On 4/24/25 01:14, J=C3=BCrgen Gro=C3=9F wrote:
>>>>>=20
>>>>> Actually, that is how we get this patch with the existing alternativ=
es
>>>>> infrastructure=2E=C2=A0 And we took a step further to also remove th=
e pv_ops
>>>>> MSR APIs=2E=2E=2E
>>>>=20
>>>> And this is what I'm questioning=2E IMHO this approach is adding more
>>>> code by removing the pv_ops MSR_APIs just because "pv_ops is bad"=2E =
And
>>>> I believe most refusal of pv_ops is based on no longer valid reasonin=
g=2E
>>>>=20
>>>=20
>>> pvops are a headache because it is effectively a secondary alternative=
s infrastructure that is incompatible with the alternatives one=2E=2E=2E
>>>=20
>>>>> It looks to me that you want to add a new facility to the alternativ=
es
>>>>> infrastructure first?
>>>>=20
>>>> Why would we need a new facility in the alternatives infrastructure?
>>>=20
>>> I'm not sure what Xin means with "facility", but a key motivation for =
this is to:
>>>=20
>>> a=2E Avoid using the pvops for MSRs when on the only remaining user th=
ereof (Xen) is only using it for a very small subset of MSRs and for the re=
st it is just overhead, even for Xen;
>>>=20
>>> b=2E Being able to do wrmsrns immediate/wrmsrns/wrmsr and rdmsr immedi=
ate/ rdmsr alternatives=2E
>>>=20
>>> Of these, (b) is by far the biggest motivation=2E The architectural di=
rection for supervisor states is to avoid ad hoc and XSAVES ISA and instead=
 use MSRs=2E The immediate forms are expected to be significantly faster, b=
ecause they make the MSR index available at the very beginning of the pipel=
ine instead of at a relatively late stage=2E
>>>=20
>>=20
>> Note that to support the immediate forms, we *must* do these inline, or=
 the const-ness of the MSR index -- which applies to by far the vast majori=
ty of MSR references -- gets lost=2E pvops does exactly that=2E
>>=20
>> Furthermore, the MSR immediate instructions take a 64-bit number in a s=
ingle register; as these instructions are by necessity relatively long, it =
makes sense for the alternative sequence to accept a 64-bit input register =
and do the %eax/ %edx shuffle in the legacy fallback code=2E=2E=2E we did a=
 bunch of experiments to see what made most sense=2E
>
>Yes, I understand that=2E
>
>And I'm totally in favor of Xin's rework of the MSR low level functions=
=2E
>
>Inlining the MSR access instructions with pv_ops should not be very
>complicated=2E We do that with other instructions (STI/CLI, PTE accesses)
>today, so this is no new kind of functionality=2E
>
>I could have a try writing a patch achieving that, but I would only start
>that work in case you might consider taking it instead of Xin's patch
>removing the pv_ops usage for rdmsr/wrmsr=2E In case it turns out that my
>version results in more code changes than Xin's patch, I'd be fine to dro=
p
>my patch, of course=2E
>
>
>Juergen

The wrapper in question is painfully opaque, but if it is much simpler, th=
en I'm certainly willing to consider it=2E=2E=2E but I don't really see how=
 it would be possible given among other things the need for trap points for=
 the safe MSRs=2E

Keep in mind this needs to work even without PV enabled!

Note that Andrew encouraged us to pursue the pvops removal for MSRs=2E Not=
e that Xen benefits pretty heavily because it can dispatch the proper path =
of the few that are left for the common case of fixed MSRs=2E


From xen-devel-bounces@lists.xenproject.org Fri Apr 25 15:29:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 15:29:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.968284.1357936 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8Kzn-0007V8-9n; Fri, 25 Apr 2025 15:29:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 968284.1357936; Fri, 25 Apr 2025 15: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 1u8Kzn-0007V1-78; Fri, 25 Apr 2025 15:29:43 +0000
Received: by outflank-mailman (input) for mailman id 968284;
 Fri, 25 Apr 2025 15: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=tq29=XL=zytor.com=hpa@srs-se1.protection.inumbo.net>)
 id 1u8Kzl-0007Gp-Oi
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 15:29:41 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 19ef719e-21ea-11f0-9eb3-5ba50f476ded;
 Fri, 25 Apr 2025 17:29:40 +0200 (CEST)
Received: from [127.0.0.1] ([76.133.66.138]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53PFTBaV2880069
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NO);
 Fri, 25 Apr 2025 08:29:11 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 19ef719e-21ea-11f0-9eb3-5ba50f476ded
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53PFTBaV2880069
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745594953;
	bh=HV6VAWyHmVnGscrHkhlxywgfLhBCIOaIqAHKg4TF8Ww=;
	h=Date:From:To:CC:Subject:In-Reply-To:References:From;
	b=iQ+XMvqcZNxnOa/I9EZR/mshfDVcYq+cePk2TG9e54uOwCvKB3Jjm1xPdmYlOwRHP
	 DQZfYPcgHJ15ycfkCO44CHxAPNtKlEpwO+e3HbxLS3WN5m2GlJgLqWvrW6B8D4o5ub
	 Zes9COz/AXoKuLU158cfbQSbTaxvthVom0W4PheBM19CU1DpvbPqSU/MWFk1vVebut
	 H1I+EYvdBYhAeTwxxohUMZyQi5+jbZbMqhhRx83ibCp8qGgDSmy4rn/uqaOKU2J8Xd
	 bhvIxW5HPWNJCE2YRbuH/hDPmgfebrJ9qBuyd4/X+QvQ9OurZ3B/Ph0cuuoO0f3nvo
	 c91K5uZbr30YA==
Date: Fri, 25 Apr 2025 08:29:10 -0700
From: "H. Peter Anvin" <hpa@zytor.com>
To: Peter Zijlstra <peterz@infradead.org>,
        =?ISO-8859-1?Q?J=FCrgen_Gro=DF?= <jgross@suse.com>
CC: Xin Li <xin@zytor.com>, linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
        linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
        netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org,
        tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, acme@kernel.org,
        andrew.cooper3@citrix.com, namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com
Subject: =?US-ASCII?Q?Re=3A_=5BRFC_PATCH_v2_21/34=5D_x86/msr=3A_Utiliz?=
 =?US-ASCII?Q?e_the_alternatives_mechanism_to_write_MSR?=
User-Agent: K-9 Mail for Android
In-Reply-To: <20250425123317.GB22125@noisy.programming.kicks-ass.net>
References: <20250422082216.1954310-1-xin@zytor.com> <20250422082216.1954310-22-xin@zytor.com> <b2624e84-6fab-44a3-affc-ce0847cd3da4@suse.com> <f7198308-e8f8-4cc5-b884-24bc5f408a2a@zytor.com> <37c88ea3-dd24-4607-9ee1-0f19025aaef3@suse.com> <20250425123317.GB22125@noisy.programming.kicks-ass.net>
Message-ID: <E1BAF52C-A955-466A-B5A2-DE12876FBFCF@zytor.com>
MIME-Version: 1.0
Content-Type: text/plain;
 charset=utf-8
Content-Transfer-Encoding: quoted-printable

On April 25, 2025 5:33:17 AM PDT, Peter Zijlstra <peterz@infradead=2Eorg> w=
rote:
>On Wed, Apr 23, 2025 at 06:05:19PM +0200, J=C3=BCrgen Gro=C3=9F wrote:
>
>> > It's not a major change, but when it is patched to use the immediate
>> > form MSR write instruction, it's straightforwardly streamlined=2E
>>=20
>> It should be rather easy to switch the current wrmsr/rdmsr paravirt pat=
ching
>> locations to use the rdmsr/wrmsr instructions instead of doing a call t=
o
>> native_*msr()=2E
>
>Right, just make the Xen functions asm stubs that expect the instruction
>registers instead of C-abi and ALT_NOT_XEN the thing=2E
>
>Shouldn't be hard at all=2E

And that's what we will be doing=2E We already have code for that=2E


From xen-devel-bounces@lists.xenproject.org Fri Apr 25 15:32:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 15:32:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.968297.1357947 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8L2K-0001GP-Mt; Fri, 25 Apr 2025 15:32:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 968297.1357947; Fri, 25 Apr 2025 15:32: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 1u8L2K-0001GI-JI; Fri, 25 Apr 2025 15:32:20 +0000
Received: by outflank-mailman (input) for mailman id 968297;
 Fri, 25 Apr 2025 15:32: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=Fya8=XL=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u8L2J-0001GC-9J
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 15:32:19 +0000
Received: from NAM10-BN7-obe.outbound.protection.outlook.com
 (mail-bn7nam10on2061f.outbound.protection.outlook.com
 [2a01:111:f403:2009::61f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 77a3d77e-21ea-11f0-9eb3-5ba50f476ded;
 Fri, 25 Apr 2025 17:32:17 +0200 (CEST)
Received: from BN0PR08CA0003.namprd08.prod.outlook.com (2603:10b6:408:142::19)
 by IA1PR12MB8192.namprd12.prod.outlook.com (2603:10b6:208:3f9::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.35; Fri, 25 Apr
 2025 15:32:11 +0000
Received: from MN1PEPF0000ECD5.namprd02.prod.outlook.com
 (2603:10b6:408:142:cafe::bb) by BN0PR08CA0003.outlook.office365.com
 (2603:10b6:408:142::19) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.37 via Frontend Transport; Fri,
 25 Apr 2025 15:32:11 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 MN1PEPF0000ECD5.mail.protection.outlook.com (10.167.242.133) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Fri, 25 Apr 2025 15:32:10 +0000
Received: from localhost (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; Fri, 25 Apr
 2025 10:32:08 -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: 77a3d77e-21ea-11f0-9eb3-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=b6QFvJC+/8KisYvuyKkj6Lk+Xl7PZfKEERZoeShQpBmAI1tIFPbcybIqgDA8Wx8Pf1zznQU/cB7uzIXqUDIcRA83PdtrbV6gycGUDYfm47cbmAUyo+SVybB0GoaQNKTsz0kTA4Q2YgOgT+hw4RJweY+THboID331m32NXp5VGZdovX+0KSR7isexJoTbdO+qQQf9A065WeAF6hrv+Z/gYgxsvMG0JQNN7YkImt1Z84F0s7P4uIhHxPxo/HfpCvkuvbxUK+ny+nBM5YeqcZ6xURf2pVKyskRmJnRUBDLvqC7FA4osvlkmlAjGehlW7ZWO67P174d+rmzbZJ7/+4oJ+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=EF19AcWwzX4Mf+Mvfee+VJ3jfJzBFAX96NRbqe/Paak=;
 b=tmUNIEyHvBba8nNMdCKiOX8EVeHSg1ndBx7dERhfN6kdxoLcyh3lwe/HpFmw82KEGqUkc2pAix5Flz6v27G+s2rjwuTtcA7w7MdGxxh3ttQP3RzW5xy6fDp7+tZYRlnOcCTYIotTk5ck684htoymGW3imAP2joyoOjNPCM7elsB24g8JVYcNU30oknfPsfNEdp2qMjpHdnVyYrrnL+nPbBQ9GOOPHh06uL6a4iaRvu7ApBzIca5N06wdiJMFvtQGanviX3nwbiqf94xtVp0zX2hefntWp+hkqAPRi6Sy0Y1ClBQndO3wU8XanC4Ioi1+gdmr3aQiymmEoL9WlSiD0Q==
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=EF19AcWwzX4Mf+Mvfee+VJ3jfJzBFAX96NRbqe/Paak=;
 b=c9onfsz58/+eHoeevtBpbIUwnSlDfzdB7adSva2zlA1WzgjLq0zTVmvDDV8oIM5K1f9MV91Sxlg+zx7VYSnEJZDv/aaageDPaWOS/C8eDdbsyyHV7PJpa8IqlobGbr7oFajdNoVCltyUF9ppNmq7ue5DscumRqtWk1RNvI2ZgH4=
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
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Fri, 25 Apr 2025 16:32:07 +0100
Message-ID: <D9FTTUWYQE4W.28DF7XSYTJ9TH@amd.com>
From: Alejandro Vallejo <agarciav@amd.com>
To: Alejandro Vallejo <agarciav@amd.com>, <xen-devel@lists.xenproject.org>
CC: "Daniel P. Smith" <dpsmith@apertussolutions.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, "Julien
 Grall" <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, "Jason
 Andryuk" <jason.andryuk@amd.com>, Denis Mukhin <dmukhin@ford.com>
Subject: Re: [PATCH v5 12/12] x86/hyperlaunch: add capabilities to boot
 domain
X-Mailer: aerc 0.20.1
References: <20250424161027.92942-1-agarciav@amd.com>
 <20250424161027.92942-13-agarciav@amd.com>
In-Reply-To: <20250424161027.92942-13-agarciav@amd.com>
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: MN1PEPF0000ECD5:EE_|IA1PR12MB8192:EE_
X-MS-Office365-Filtering-Correlation-Id: 0108a2e9-e613-45de-3d64-08dd840e58a8
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?ZitmTUhQK2ZDUW9mdGZidnB3UGNmZzJHQmV5M2toNDRadTExUVZFTW9LYVZK?=
 =?utf-8?B?WnFkSVZIakZjN0haMzkrRFhpTWZUdnVEZU81V0pNNFZNV1I3OHd3Sit4eHdm?=
 =?utf-8?B?QkovczhxMGlpTDA1UjBxTXIwZHFoMVRMOWs0ZVhSZG5BSm9NNlJGUlJ3dnZT?=
 =?utf-8?B?all4NmhqTTNEalIxdDl4WHNZYVhucFhQbUQ0c1dLWHJjeFB6YW9sVHRyM2Zk?=
 =?utf-8?B?SWdQN0ltdmMvRmw4NmRIMG1TZ0VvcFN2YTFqdTVXWnFXc0dNdUw5Tk1mREl5?=
 =?utf-8?B?OGpldXZtc1p0WEVTbjU1a0w2SSt6aWt6aVgrcFBXdUJySXAybzhyUHduYWxH?=
 =?utf-8?B?bFBOZ1cwUzdiSysvWktpcUJGZytyY0hVNHlyUUdKN2RNSy9VT1RQTmhVTUgy?=
 =?utf-8?B?ZzFiMTVwVHFIVzI1NnM1azg3bXpOL09kaCsvTW1ZcEtFSmZpU2lxTnhGbGc5?=
 =?utf-8?B?YjBLR2hzQytidW9IdXplYi9oejZpYTIwR3RRcDl0R1ZYUk1zdkpXOUxIU3Jw?=
 =?utf-8?B?OEUxMThYc0ozeHVYTUhMS1I3RFZmdkhKTG42b01XYkptS01xTmlBek5FTkV4?=
 =?utf-8?B?Rk81bG9vV09TQnBwaFVEZHZ2WmJxanNuVGZFV0t5THNQSGxCK0QxUWc5Ym9B?=
 =?utf-8?B?MnZ2VW9ScExwSFBOcWY0TzgwaU9uUzk2ZmdZd1I0SWVIMEFNWDJGWURVQzFZ?=
 =?utf-8?B?Rm5EeU5NOEI2RnFCS0QreVc0eTBkTmdSMXZKRUlvZ3dvbXJndGhtL3dRMC9q?=
 =?utf-8?B?OTFKSnd1dnNUelRScTFPQXpCUW9TNk10SytCS3BpWmkrc0xPUHBWRDNydUY2?=
 =?utf-8?B?NGRubUxvVis2TjhwY1FBcENjdjFrbU5rWG5HdkdiblRyYUdZL1p5d0x0Q3lj?=
 =?utf-8?B?RlBpU0pVeXV2ZlN3NVRNUk1DYkI5Z21DMmEwM2k2MkpsYlVSZ1N6Z2RkQXFl?=
 =?utf-8?B?M1hyc0ZHeVluV0kwYjN4bitHZWFCMnV3TXdsMlVBc2cxVGtGem0vR1FoOXdp?=
 =?utf-8?B?ZWlyRjAvZE5HR0xNUjlZbnRCdzRRMFBHTHZkam90Z2VkaGRXS1psZzZwMnM5?=
 =?utf-8?B?WjN2Vm9LdkFXSVR0NzU5TEVsblB5QmN6WmhEZzFYeE5NL29VaFY5cUNIUmtq?=
 =?utf-8?B?ZjZqSzdJTkh6ZDJRbzdNL2EyVC9LYUF4T3VueDR4VDJJMm5laU1XQ1I5YmFV?=
 =?utf-8?B?clVwTDNYMStQd1RvODROeWFyUWJ4WUhoWStIazVFWWU0UG5tRFFZa1JmU1M1?=
 =?utf-8?B?SytQVWlUSm5EOW9xWUJ1ZnhINGZzM2NKNnQyQ1FaSm5wL2w1MDdzUmdTQk1H?=
 =?utf-8?B?aDNNcGNWR2F3SEIrclliRE51ZEt1cytieGJHem8rSDRZT2x6UWw1WkNNYXNk?=
 =?utf-8?B?N1UxTUY5VnZlTWxGV0pZVTYrbkwrOE1LbDdQaDdrNm9tYU9MRHlWRG1BNHZB?=
 =?utf-8?B?TlM1WmJhMytiRGNxSEl3L2ZuTTU4czUwY0RTTUpDLzB5Y3NtUmd5V3grZ0du?=
 =?utf-8?B?dGtzWHJGbmVoeEJLdzNFY1BORUYzVDFHK1lVMkI2WjcxSXA3WTJxSk04SWtz?=
 =?utf-8?B?WnIvM0YreExuV21LbEFuTEREcmZSOEw4L1Y3eUF4S3p0U0xyMWxIa3dyOHdv?=
 =?utf-8?B?WWxvN0ZxaExuSzE0SGprTi9hZ2FlMzFDK2VkbUMwSitQYVBHWTIvNVBmeTkx?=
 =?utf-8?B?eXFRTC9adjJ0R3c5YVI1SDRCOU5GODZCM0lCeUxkc25scVAzZkEwcEp4MTlF?=
 =?utf-8?B?b2k4SktwcjlXU0NpK2NkNW1uZWVGSmRieEkwRnBBSXVzN0U4c3hxdHJ1Qm1S?=
 =?utf-8?B?VzlsVmtFSGFtV0RtVzNMU21qQnJTcFk2aDIxZGY3a3lLQlEvVzBVRkkyam1t?=
 =?utf-8?B?b1ZpQkxBVE94M3ZpQUszbTFKYll1K0lKYW42aERYazVXTHlRYVZpZ1A1YWhO?=
 =?utf-8?B?OGt4NGE4UGxDd2Z4ZFN5SzdwTTlrTjB4eEc3SkZYNnNnZHJDZFZVa1hHejJE?=
 =?utf-8?B?VmtyQ0ZEMkdNbUhmNmhReS9qK2xyL0x0b3dhOC9sNmNsYVV2YWE5TmtPUEFl?=
 =?utf-8?Q?zlFBsV?=
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)(1800799024)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Apr 2025 15:32:10.7869
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 0108a2e9-e613-45de-3d64-08dd840e58a8
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:
	MN1PEPF0000ECD5.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB8192

On Thu Apr 24, 2025 at 5:10 PM BST, Alejandro Vallejo wrote:
> From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
>
> Introduce the ability to assign capabilities to a domain via its definiti=
on 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>
> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
> Signed-off-by: Alejandro Vallejo <agarciav@amd.com>
> Reviewed-by: Denis Mukhin <dmukhin@ford.com>
> ---
> v5:
>   * Removed BUILD_CAPS, as DOMAIN_CAPS is now in public/bootfdt.h
>   * Assigned DOMAIN_CAPS_MASK to dom0, rather than only BUILD_CAPS_CONTRO=
L.
>     * So it also gets hardware+xenstore.
> ---
>  xen/arch/x86/include/asm/boot-domain.h |  3 +++
>  xen/arch/x86/setup.c                   |  5 ++++-
>  xen/common/domain-builder/fdt.c        | 23 +++++++++++++++++++++++
>  3 files changed, 30 insertions(+), 1 deletion(-)
>
> diff --git a/xen/arch/x86/include/asm/boot-domain.h b/xen/arch/x86/includ=
e/asm/boot-domain.h
> index 969c02a6ea..cb5351241a 100644
> --- a/xen/arch/x86/include/asm/boot-domain.h
> +++ b/xen/arch/x86/include/asm/boot-domain.h
> @@ -13,6 +13,9 @@
>  struct boot_domain {
>      domid_t domid;
> =20
> +    /* Bitmap. See DOMAIN_CAPS_MASK for a list */
> +    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 d4f839146f..960e43c785 100644
> --- a/xen/arch/x86/setup.c
> +++ b/xen/arch/x86/setup.c
> @@ -61,6 +61,7 @@
> =20
>  #include <xsm/xsm.h>
> =20
> +#include <public/bootfdt.h>
>  #include <public/version.h>
>  #ifdef CONFIG_COMPAT
>  #include <compat/platform.h>
> @@ -1050,7 +1051,8 @@ static struct domain *__init create_dom0(struct boo=
t_info *bi)
>          /* Create initial domain.  Not d0 for pvshim. */
>          bd->domid =3D get_initial_domain_id();

Self commenting that I missed XEN_DOMCTL_CDF_iommu being passed if
iommu_enabled is set (out of context, a few lines above). That should be
gated on DOMAIN_CAPS_HARDWARE being set too. Just spotted it when
rebasing the RFC series from Daniel.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Fri Apr 25 15:35:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 15:35:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.968314.1357957 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8L4p-0001tI-4j; Fri, 25 Apr 2025 15:34:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 968314.1357957; Fri, 25 Apr 2025 15: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 1u8L4p-0001tB-1p; Fri, 25 Apr 2025 15:34:55 +0000
Received: by outflank-mailman (input) for mailman id 968314;
 Fri, 25 Apr 2025 15: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=tq29=XL=zytor.com=hpa@srs-se1.protection.inumbo.net>)
 id 1u8L4o-0001t5-H6
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 15:34:54 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d3a13ce6-21ea-11f0-9ffb-bf95429c2676;
 Fri, 25 Apr 2025 17:34:51 +0200 (CEST)
Received: from [127.0.0.1] ([76.133.66.138]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53PFYLdk2886041
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NO);
 Fri, 25 Apr 2025 08:34:21 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d3a13ce6-21ea-11f0-9ffb-bf95429c2676
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53PFYLdk2886041
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745595262;
	bh=xquCoLx0EClrpIqU/qUlrzBrIsfVOPaUZzqU87EdpwY=;
	h=Date:From:To:CC:Subject:In-Reply-To:References:From;
	b=BX3HMffLlNpx/LYQ7xFc9hoV2yFjQgyVgU4Noc2vtwkFaWwsn7fUYGugqvcZ9bHzx
	 6JrqG0yqkpPa2/nGO/p0gzmTYp2DMvqlF2+DN2KPi78Ob4Ge2jny19g3XBqcDBg8x+
	 JRAEK79RjjO1vhN8MmSKecEqNmCBjQuB/eP+qj+kB8GrQf3ktqiTMdv2luGopNW8Fn
	 G8zUGVJLHPtXDB01+RsfR3V+FPUNQxN9O4XfIMMGQnS0GZGYqjvNI1y7bJ413qPeUU
	 D37G3DK9ILdKnTWBaO5Ns84SGR2e0lJFa8r5sSdRagIq8K2K54l21slo9cOnz6AaKt
	 FB4e7KOILHaKw==
Date: Fri, 25 Apr 2025 08:34:19 -0700
From: "H. Peter Anvin" <hpa@zytor.com>
To: Arnd Bergmann <arnd@kernel.org>, Thomas Gleixner <tglx@linutronix.de>,
        Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
        Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org
CC: Arnd Bergmann <arnd@arndb.de>, Juergen Gross <jgross@suse.com>,
        Boris Ostrovsky <boris.ostrovsky@oracle.com>,
        Alexander Usyskin <alexander.usyskin@intel.com>,
        Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
        =?UTF-8?Q?Mateusz_Jo=C5=84czyk?= <mat.jonczyk@o2.pl>,
        "Mike Rapoport (Microsoft)" <rppt@kernel.org>,
        Ard Biesheuvel <ardb@kernel.org>,
        Peter Zijlstra <peterz@infradead.org>, linux-kernel@vger.kernel.org,
        xen-devel@lists.xenproject.org
Subject: Re: [PATCH] [RFC] x86/cpu: rework instruction set selection
User-Agent: K-9 Mail for Android
In-Reply-To: <20250425141740.734030-1-arnd@kernel.org>
References: <20250425141740.734030-1-arnd@kernel.org>
Message-ID: <7CEE8E85-D7B1-4066-AD4D-747CA4340F65@zytor.com>
MIME-Version: 1.0
Content-Type: text/plain;
 charset=utf-8
Content-Transfer-Encoding: quoted-printable

On April 25, 2025 7:15:15 AM PDT, Arnd Bergmann <arnd@kernel=2Eorg> wrote:
>From: Arnd Bergmann <arnd@arndb=2Ede>
>
>With cx8 and tsc being mandatory features, the only important
>architectural features are now cmov and pae=2E
>
>Change the large list of target CPUs to no longer pick the instruction se=
t
>itself but only the mtune=3D optimization level and in-kernel optimizatio=
ns
>that remain compatible with all cores=2E
>
>The CONFIG_X86_CMOV instead becomes user-selectable and is now how
>Kconfig picks between 586-class (Pentium, Pentium MMX, K6, C3, GeodeGX)
>and 686-class (everything else) targets=2E
>
>In order to allow running on late 32-bit cores (Athlon, Pentium-M,
>Pentium 4, =2E=2E=2E), the X86_L1_CACHE_SHIFT can no longer be set to any=
thing
>lower than 6 (i=2Ee=2E 64 byte cache lines)=2E
>
>The optimization options now depend on X86_CMOV and X86_PAE instead
>of the other way round, while other compile-time conditionals that
>checked for MATOM/MGEODEGX1 instead now check for CPU_SUP_* options
>that enable support for a particular CPU family=2E
>
>Link: https://lore=2Ekernel=2Eorg/lkml/dd29df0c-0b4f-44e6-b71b-2a358ea76f=
b4@app=2Efastmail=2Ecom/
>Signed-off-by: Arnd Bergmann <arnd@arndb=2Ede>
>---
>This is what I had in mind as mentioned in the earlier thread on
>cx8/tsc removal=2E I based this on top of the Ingo's [RFC 15/15]
>patch=2E
>---
> arch/x86/Kconfig                |   2 +-
> arch/x86/Kconfig=2Ecpu            | 100 ++++++++++++++------------------
> arch/x86/Makefile_32=2Ecpu        |  48 +++++++--------
> arch/x86/include/asm/vermagic=2Eh |  36 +-----------
> arch/x86/kernel/tsc=2Ec           |   2 +-
> arch/x86/xen/Kconfig            |   1 -
> drivers/misc/mei/Kconfig        |   2 +-
> 7 files changed, 74 insertions(+), 117 deletions(-)
>
>diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
>index a9d717558972=2E=2E1e33f88c9b97 100644
>--- a/arch/x86/Kconfig
>+++ b/arch/x86/Kconfig
>@@ -1438,7 +1438,7 @@ config HIGHMEM
>=20
> config X86_PAE
> 	bool "PAE (Physical Address Extension) Support"
>-	depends on X86_32 && X86_HAVE_PAE
>+	depends on X86_32 && X86_CMOV
> 	select PHYS_ADDR_T_64BIT
> 	help
> 	  PAE is required for NX support, and furthermore enables
>diff --git a/arch/x86/Kconfig=2Ecpu b/arch/x86/Kconfig=2Ecpu
>index 6f1e8cc8fe58=2E=2E0619566de93f 100644
>--- a/arch/x86/Kconfig=2Ecpu
>+++ b/arch/x86/Kconfig=2Ecpu
>@@ -1,23 +1,32 @@
> # SPDX-License-Identifier: GPL-2=2E0
> # Put here option for CPU selection and depending optimization
>-choice
>-	prompt "x86-32 Processor family"
>-	depends on X86_32
>-	default M686
>+
>+config X86_CMOV
>+	bool "Require 686-class CMOV instructions" if X86_32
>+	default y
> 	help
>-	  This is the processor type of your CPU=2E This information is
>-	  used for optimizing purposes=2E In order to compile a kernel
>-	  that can run on all supported x86 CPU types (albeit not
>-	  optimally fast), you can specify "586" here=2E
>+	  Most x86-32 processor implementations are compatible with
>+	  the the CMOV instruction originally added in the Pentium Pro,
>+	  and they perform much better when using it=2E
>+
>+	  Disable this option to build for 586-class CPUs without this
>+	  instruction=2E This is only required for the original Intel
>+	  Pentium (P5, P54, P55), AMD K6/K6-II/K6-3D, Geode GX1 and Via
>+	  CyrixIII/C3 CPUs=2E
>=20
> 	  Note that the 386 and 486 is no longer supported, this includes
> 	  AMD/Cyrix/Intel 386DX/DXL/SL/SLC/SX, Cyrix/TI 486DLC/DLC2,
> 	  UMC 486SX-S and the NexGen Nx586, AMD ELAN and all 486 based
> 	  CPUs=2E
>=20
>-	  The kernel will not necessarily run on earlier architectures than
>-	  the one you have chosen, e=2Eg=2E a Pentium optimized kernel will run=
 on
>-	  a PPro, but not necessarily on a i486=2E
>+choice
>+	prompt "x86-32 Processor optimization"
>+	depends on X86_32
>+	default X86_GENERIC
>+	help
>+	  This is the processor type of your CPU=2E This information is
>+	  used for optimizing purposes, but does not change compatibility
>+	  with other CPU types=2E
>=20
> 	  Here are the settings recommended for greatest speed:
> 	  - "586" for generic Pentium CPUs lacking the TSC
>@@ -45,14 +54,13 @@ choice
>=20
> config M586TSC
> 	bool "Pentium-Classic"
>-	depends on X86_32
>+	depends on X86_32 && !X86_CMOV
> 	help
>-	  Select this for a Pentium Classic processor with the RDTSC (Read
>-	  Time Stamp Counter) instruction for benchmarking=2E
>+	  Select this for a Pentium Classic processor=2E
>=20
> config M586MMX
> 	bool "Pentium-MMX"
>-	depends on X86_32
>+	depends on X86_32 && !X86_CMOV
> 	help
> 	  Select this for a Pentium with the MMX graphics/multimedia
> 	  extended instructions=2E
>@@ -117,7 +125,7 @@ config MPENTIUM4
>=20
> config MK6
> 	bool "K6/K6-II/K6-III"
>-	depends on X86_32
>+	depends on X86_32 && !X86_CMOV
> 	help
> 	  Select this for an AMD K6-family processor=2E  Enables use of
> 	  some extended instructions, and passes appropriate optimization
>@@ -125,7 +133,7 @@ config MK6
>=20
> config MK7
> 	bool "Athlon/Duron/K7"
>-	depends on X86_32
>+	depends on X86_32 && !X86_PAE
> 	help
> 	  Select this for an AMD Athlon K7-family processor=2E  Enables use of
> 	  some extended instructions, and passes appropriate optimization
>@@ -147,42 +155,37 @@ config MEFFICEON
>=20
> config MGEODEGX1
> 	bool "GeodeGX1"
>-	depends on X86_32
>+	depends on X86_32 && !X86_CMOV
> 	help
> 	  Select this for a Geode GX1 (Cyrix MediaGX) chip=2E
>=20
> config MGEODE_LX
> 	bool "Geode GX/LX"
>-	depends on X86_32
>+	depends on X86_32 && !X86_PAE
> 	help
> 	  Select this for AMD Geode GX and LX processors=2E
>=20
> config MCYRIXIII
> 	bool "CyrixIII/VIA-C3"
>-	depends on X86_32
>+	depends on X86_32 && !X86_CMOV
> 	help
> 	  Select this for a Cyrix III or C3 chip=2E  Presently Linux and GCC
> 	  treat this chip as a generic 586=2E Whilst the CPU is 686 class,
> 	  it lacks the cmov extension which gcc assumes is present when
> 	  generating 686 code=2E
>-	  Note that Nehemiah (Model 9) and above will not boot with this
>-	  kernel due to them lacking the 3DNow! instructions used in earlier
>-	  incarnations of the CPU=2E
>=20
> config MVIAC3_2
> 	bool "VIA C3-2 (Nehemiah)"
>-	depends on X86_32
>+	depends on X86_32 && !X86_PAE
> 	help
> 	  Select this for a VIA C3 "Nehemiah"=2E Selecting this enables usage
> 	  of SSE and tells gcc to treat the CPU as a 686=2E
>-	  Note, this kernel will not boot on older (pre model 9) C3s=2E
>=20
> config MVIAC7
> 	bool "VIA C7"
>-	depends on X86_32
>+	depends on X86_32 && !X86_PAE
> 	help
>-	  Select this for a VIA C7=2E  Selecting this uses the correct cache
>-	  shift and tells gcc to treat the CPU as a 686=2E
>+	  Select this for a VIA C7=2E
>=20
> config MATOM
> 	bool "Intel Atom"
>@@ -192,20 +195,19 @@ config MATOM
> 	  accordingly optimized code=2E Use a recent GCC with specific Atom
> 	  support in order to fully benefit from selecting this option=2E
>=20
>-endchoice
>-
> config X86_GENERIC
>-	bool "Generic x86 support"
>-	depends on X86_32
>+	bool "Generic x86"
> 	help
>-	  Instead of just including optimizations for the selected
>+	  Instead of just including optimizations for a particular
> 	  x86 variant (e=2Eg=2E PII, Crusoe or Athlon), include some more
> 	  generic optimizations as well=2E This will make the kernel
>-	  perform better on x86 CPUs other than that selected=2E
>+	  perform better on a variety of CPUs=2E
>=20
> 	  This is really intended for distributors who need more
> 	  generic optimizations=2E
>=20
>+endchoice
>+
> #
> # Define implied options from the CPU selection here
> config X86_INTERNODE_CACHE_SHIFT
>@@ -216,17 +218,14 @@ config X86_INTERNODE_CACHE_SHIFT
> config X86_L1_CACHE_SHIFT
> 	int
> 	default "7" if MPENTIUM4
>-	default "6" if MK7 || MPENTIUMM || MATOM || MVIAC7 || X86_GENERIC || X8=
6_64
>-	default "4" if MGEODEGX1
>-	default "5" if MCRUSOE || MEFFICEON || MCYRIXIII || MK6 || MPENTIUMIII =
|| MPENTIUMII || M686 || M586MMX || M586TSC || MVIAC3_2 || MGEODE_LX
>+	default "6"
>=20
> config X86_F00F_BUG
>-	def_bool y
>-	depends on M586MMX || M586TSC || M586
>+	def_bool !X86_CMOV
>=20
> config X86_ALIGNMENT_16
> 	def_bool y
>-	depends on MCYRIXIII || MK6 || M586MMX || M586TSC || M586 || MVIAC3_2 |=
| MGEODEGX1
>+	depends on MCYRIXIII || MK6 || M586MMX || M586TSC || M586 || MVIAC3_2 |=
| MGEODEGX1 || (!X86_CMOV && X86_GENERIC)
>=20
> config X86_INTEL_USERCOPY
> 	def_bool y
>@@ -234,34 +233,23 @@ config X86_INTEL_USERCOPY
>=20
> config X86_USE_PPRO_CHECKSUM
> 	def_bool y
>-	depends on MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMM || MPENTIU=
MIII || MPENTIUMII || M686 || MVIAC3_2 || MVIAC7 || MEFFICEON || MGEODE_LX =
|| MATOM
>+	depends on MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMM || MPENTIU=
MIII || MPENTIUMII || M686 || MVIAC3_2 || MVIAC7 || MEFFICEON || MGEODE_LX =
|| MATOM || (X86_CMOV && X86_GENERIC)
>=20
> config X86_TSC
> 	def_bool y
>=20
>-config X86_HAVE_PAE
>-	def_bool y
>-	depends on MCRUSOE || MEFFICEON || MCYRIXIII || MPENTIUM4 || MPENTIUMM =
|| MPENTIUMIII || MPENTIUMII || M686 || MVIAC7 || MATOM || X86_64
>-
> config X86_CX8
> 	def_bool y
>=20
>-# this should be set for all -march=3D=2E=2E options where the compiler
>-# generates cmov=2E
>-config X86_CMOV
>-	def_bool y
>-	depends on (MK7 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII =
|| M686 || MVIAC3_2 || MVIAC7 || MCRUSOE || MEFFICEON || MATOM || MGEODE_LX=
 || X86_64)
>-
> config X86_MINIMUM_CPU_FAMILY
> 	int
> 	default "64" if X86_64
>-	default "6" if X86_32 && (MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPEN=
TIUMII || M686 || MVIAC3_2 || MVIAC7 || MEFFICEON || MATOM || MK7)
>-	default "5" if X86_32
>-	default "4"
>+	default "6" if X86_32 && X86_CMOV
>+	default "5"
>=20
> config X86_DEBUGCTLMSR
> 	def_bool y
>-	depends on !(MK6 || MCYRIXIII || M586MMX || M586TSC || M586) && !UML
>+	depends on X86_CMOV && !UML
>=20
> config IA32_FEAT_CTL
> 	def_bool y
>@@ -297,7 +285,7 @@ config CPU_SUP_INTEL
> config CPU_SUP_CYRIX_32
> 	default y
> 	bool "Support Cyrix processors" if PROCESSOR_SELECT
>-	depends on M586 || M586TSC || M586MMX || (EXPERT && !64BIT)
>+	depends on !64BIT
> 	help
> 	  This enables detection, tunings and quirks for Cyrix processors
>=20
>diff --git a/arch/x86/Makefile_32=2Ecpu b/arch/x86/Makefile_32=2Ecpu
>index f5e933077bf4=2E=2Eebd7ec6eaf34 100644
>--- a/arch/x86/Makefile_32=2Ecpu
>+++ b/arch/x86/Makefile_32=2Ecpu
>@@ -10,30 +10,32 @@ else
> align		:=3D -falign-functions=3D0 -falign-jumps=3D0 -falign-loops=3D0
> endif
>=20
>-cflags-$(CONFIG_M586TSC)	+=3D -march=3Di586
>-cflags-$(CONFIG_M586MMX)	+=3D -march=3Dpentium-mmx
>-cflags-$(CONFIG_M686)		+=3D -march=3Di686
>-cflags-$(CONFIG_MPENTIUMII)	+=3D -march=3Di686 $(call tune,pentium2)
>-cflags-$(CONFIG_MPENTIUMIII)	+=3D -march=3Di686 $(call tune,pentium3)
>-cflags-$(CONFIG_MPENTIUMM)	+=3D -march=3Di686 $(call tune,pentium3)
>-cflags-$(CONFIG_MPENTIUM4)	+=3D -march=3Di686 $(call tune,pentium4)
>-cflags-$(CONFIG_MK6)		+=3D -march=3Dk6
>-# Please note, that patches that add -march=3Dathlon-xp and friends are =
pointless=2E
>-# They make zero difference whatsosever to performance at this time=2E
>-cflags-$(CONFIG_MK7)		+=3D -march=3Dathlon
>-cflags-$(CONFIG_MCRUSOE)	+=3D -march=3Di686 $(align)
>-cflags-$(CONFIG_MEFFICEON)	+=3D -march=3Di686 $(call tune,pentium3) $(al=
ign)
>-cflags-$(CONFIG_MCYRIXIII)	+=3D $(call cc-option,-march=3Dc3,-march=3Di4=
86) $(align)
>-cflags-$(CONFIG_MVIAC3_2)	+=3D $(call cc-option,-march=3Dc3-2,-march=3Di=
686)
>-cflags-$(CONFIG_MVIAC7)		+=3D -march=3Di686
>-cflags-$(CONFIG_MATOM)		+=3D -march=3Datom
>+ifdef CONFIG_X86_CMOV
>+cflags-y			+=3D -march=3Di686
>+else
>+cflags-y			+=3D -march=3Di586
>+endif
>=20
>-# Geode GX1 support
>-cflags-$(CONFIG_MGEODEGX1)	+=3D -march=3Dpentium-mmx
>-cflags-$(CONFIG_MGEODE_LX)	+=3D $(call cc-option,-march=3Dgeode,-march=
=3Dpentium-mmx)
>-# add at the end to overwrite eventual tuning options from earlier
>-# cpu entries
>-cflags-$(CONFIG_X86_GENERIC) 	+=3D $(call tune,generic,$(call tune,i686)=
)
>+cflags-$(CONFIG_M586TSC)	+=3D -mtune=3Di586
>+cflags-$(CONFIG_M586MMX)	+=3D -mtune=3Dpentium-mmx
>+cflags-$(CONFIG_M686)		+=3D -mtune=3Di686
>+cflags-$(CONFIG_MPENTIUMII)	+=3D -mtune=3Dpentium2
>+cflags-$(CONFIG_MPENTIUMIII)	+=3D -mtune=3Dpentium3
>+cflags-$(CONFIG_MPENTIUMM)	+=3D -mtune=3Dpentium3
>+cflags-$(CONFIG_MPENTIUM4)	+=3D -mtune=3Dpentium4
>+cflags-$(CONFIG_MK6)		+=3D -mtune=3Dk6
>+# Please note, that patches that add -mtune=3Dathlon-xp and friends are =
pointless=2E
>+# They make zero difference whatsosever to performance at this time=2E
>+cflags-$(CONFIG_MK7)		+=3D -mtune=3Dathlon
>+cflags-$(CONFIG_MCRUSOE)	+=3D -mtune=3Di686 $(align)
>+cflags-$(CONFIG_MEFFICEON)	+=3D -mtune=3Dpentium3 $(align)
>+cflags-$(CONFIG_MCYRIXIII)	+=3D -mtune=3Dc3 $(align)
>+cflags-$(CONFIG_MVIAC3_2)	+=3D -mtune=3Dc3-2
>+cflags-$(CONFIG_MVIAC7)		+=3D -mtune=3Di686
>+cflags-$(CONFIG_MATOM)		+=3D -mtune=3Datom
>+cflags-$(CONFIG_MGEODEGX1)	+=3D -mtune=3Dpentium-mmx
>+cflags-$(CONFIG_MGEODE_LX)	+=3D -mtune=3Dgeode
>+cflags-$(CONFIG_X86_GENERIC) 	+=3D -mtune=3Dgeneric
>=20
> # Bug fix for binutils: this option is required in order to keep
> # binutils from generating NOPL instructions against our will=2E
>diff --git a/arch/x86/include/asm/vermagic=2Eh b/arch/x86/include/asm/ver=
magic=2Eh
>index e26061df0c9b=2E=2E6554dbdfd719 100644
>--- a/arch/x86/include/asm/vermagic=2Eh
>+++ b/arch/x86/include/asm/vermagic=2Eh
>@@ -5,42 +5,10 @@
>=20
> #ifdef CONFIG_X86_64
> /* X86_64 does not define MODULE_PROC_FAMILY */
>-#elif defined CONFIG_M586TSC
>-#define MODULE_PROC_FAMILY "586TSC "
>-#elif defined CONFIG_M586MMX
>-#define MODULE_PROC_FAMILY "586MMX "
>-#elif defined CONFIG_MATOM
>-#define MODULE_PROC_FAMILY "ATOM "
>-#elif defined CONFIG_M686
>+#elif defined CONFIG_X86_CMOV
> #define MODULE_PROC_FAMILY "686 "
>-#elif defined CONFIG_MPENTIUMII
>-#define MODULE_PROC_FAMILY "PENTIUMII "
>-#elif defined CONFIG_MPENTIUMIII
>-#define MODULE_PROC_FAMILY "PENTIUMIII "
>-#elif defined CONFIG_MPENTIUMM
>-#define MODULE_PROC_FAMILY "PENTIUMM "
>-#elif defined CONFIG_MPENTIUM4
>-#define MODULE_PROC_FAMILY "PENTIUM4 "
>-#elif defined CONFIG_MK6
>-#define MODULE_PROC_FAMILY "K6 "
>-#elif defined CONFIG_MK7
>-#define MODULE_PROC_FAMILY "K7 "
>-#elif defined CONFIG_MCRUSOE
>-#define MODULE_PROC_FAMILY "CRUSOE "
>-#elif defined CONFIG_MEFFICEON
>-#define MODULE_PROC_FAMILY "EFFICEON "
>-#elif defined CONFIG_MCYRIXIII
>-#define MODULE_PROC_FAMILY "CYRIXIII "
>-#elif defined CONFIG_MVIAC3_2
>-#define MODULE_PROC_FAMILY "VIAC3-2 "
>-#elif defined CONFIG_MVIAC7
>-#define MODULE_PROC_FAMILY "VIAC7 "
>-#elif defined CONFIG_MGEODEGX1
>-#define MODULE_PROC_FAMILY "GEODEGX1 "
>-#elif defined CONFIG_MGEODE_LX
>-#define MODULE_PROC_FAMILY "GEODE "
> #else
>-#error unknown processor family
>+#define MODULE_PROC_FAMILY "586 "
> #endif
>=20
> #ifdef CONFIG_X86_32
>diff --git a/arch/x86/kernel/tsc=2Ec b/arch/x86/kernel/tsc=2Ec
>index 489c779ef3ef=2E=2E76b15ef8c85f 100644
>--- a/arch/x86/kernel/tsc=2Ec
>+++ b/arch/x86/kernel/tsc=2Ec
>@@ -1221,7 +1221,7 @@ bool tsc_clocksource_watchdog_disabled(void)
>=20
> static void __init check_system_tsc_reliable(void)
> {
>-#if defined(CONFIG_MGEODEGX1) || defined(CONFIG_MGEODE_LX) || defined(CO=
NFIG_X86_GENERIC)
>+#if defined(CONFIG_CPU_SUP_CYRIX)
> 	if (is_geode_lx()) {
> 		/* RTSC counts during suspend */
> #define RTSC_SUSP 0x100
>diff --git a/arch/x86/xen/Kconfig b/arch/x86/xen/Kconfig
>index 222b6fdad313=2E=2E2648459b8e8f 100644
>--- a/arch/x86/xen/Kconfig
>+++ b/arch/x86/xen/Kconfig
>@@ -9,7 +9,6 @@ config XEN
> 	select PARAVIRT_CLOCK
> 	select X86_HV_CALLBACK_VECTOR
> 	depends on X86_64 || (X86_32 && X86_PAE)
>-	depends on X86_64 || (X86_GENERIC || MPENTIUM4 || MATOM)
> 	depends on X86_LOCAL_APIC
> 	help
> 	  This is the Linux Xen port=2E  Enabling this will allow the
>diff --git a/drivers/misc/mei/Kconfig b/drivers/misc/mei/Kconfig
>index 7575fee96cc6=2E=2E4deb17ed0a62 100644
>--- a/drivers/misc/mei/Kconfig
>+++ b/drivers/misc/mei/Kconfig
>@@ -3,7 +3,7 @@
> config INTEL_MEI
> 	tristate "Intel Management Engine Interface"
> 	depends on X86 && PCI
>-	default X86_64 || MATOM
>+	default X86_64 || CPU_SUP_INTEL
> 	help
> 	  The Intel Management Engine (Intel ME) provides Manageability,
> 	  Security and Media services for system containing Intel chipsets=2E

I really don't like testing an unrelated feature (CMOV for PAE); furthermo=
re, at least some old hypervisors were known to have broken PAE=2E

At the very least it needs to be abstracted for clarity reasons=2E=20

Nacked-by: H=2E Peter Anvin <hpa@zytor=2Ecom>


From xen-devel-bounces@lists.xenproject.org Fri Apr 25 15:45:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 15:45:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.968329.1357967 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8LFF-00048n-2j; Fri, 25 Apr 2025 15:45:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 968329.1357967; Fri, 25 Apr 2025 15:45: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 1u8LFE-00048g-Vr; Fri, 25 Apr 2025 15:45:40 +0000
Received: by outflank-mailman (input) for mailman id 968329;
 Fri, 25 Apr 2025 15: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=I1XR=XL=linux.intel.com=ilpo.jarvinen@srs-se1.protection.inumbo.net>)
 id 1u8LFD-00048Z-Do
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 15:45:39 +0000
Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.15])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 53fc4cc2-21ec-11f0-9eb3-5ba50f476ded;
 Fri, 25 Apr 2025 17:45:37 +0200 (CEST)
Received: from fmviesa009.fm.intel.com ([10.60.135.149])
 by orvoesa107.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 25 Apr 2025 08:45:35 -0700
Received: from ijarvine-mobl1.ger.corp.intel.com (HELO localhost)
 ([10.245.245.154])
 by fmviesa009-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 25 Apr 2025 08:45:22 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 53fc4cc2-21ec-11f0-9eb3-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1745595937; x=1777131937;
  h=from:date:to:cc:subject:in-reply-to:message-id:
   references:mime-version;
  bh=NDEMzXyKMQaX/1P4v8LWPCUwLdyUYFm0Z5j9i1NuUNc=;
  b=jqB6ckNe+u+NoojI4ep+JrEurZEaq67IL+ypmXJvVvI4ltx2oQ1mfTWg
   9/HbBKA3yJ/nIfw9b1P8GQAQnkAdLAm6PnjJLIKeCIPqC+1DX1Bem7ykJ
   dVj2geitsf/+iLo2WjpBWT78xvNtvYGAHuGwa5JWAwWsSwgzOO50/SXu5
   qYFdEfaWZM+nu367oLgoUQJVYGBRTii701DFzxZw62FkXo6dO1GKrBKzl
   1A+YpD+pv5NtGUqIu7X/7aBxXoQ9hDqa4RaEMsCQHovv+2PNRhoaqtvvq
   TZrtUL8VlI1Kw+N7kX52dpmKN2teELzOreoEfV5SZgZf7mSCmJaPBHjl4
   g==;
X-CSE-ConnectionGUID: r8qAf6dJSSuurr3t6tbocQ==
X-CSE-MsgGUID: FyBwG7PtTrilPYuNPjc0EQ==
X-IronPort-AV: E=McAfee;i="6700,10204,11414"; a="50928850"
X-IronPort-AV: E=Sophos;i="6.15,238,1739865600"; 
   d="scan'208";a="50928850"
X-CSE-ConnectionGUID: zVyTiGS+Tp27oRIuRu3o/Q==
X-CSE-MsgGUID: FTR+bshYRAKz5gvHmp9NIg==
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="6.15,238,1739865600"; 
   d="scan'208";a="133870388"
From: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= <ilpo.jarvinen@linux.intel.com>
Date: Fri, 25 Apr 2025 18:45:18 +0300 (EEST)
To: "Xin Li (Intel)" <xin@zytor.com>
cc: LKML <linux-kernel@vger.kernel.org>, kvm@vger.kernel.org, 
    linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org, 
    virtualization@lists.linux.dev, linux-pm@vger.kernel.org, 
    linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org, 
    linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org, 
    Netdev <netdev@vger.kernel.org>, platform-driver-x86@vger.kernel.org, 
    tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, 
    dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com, 
    acme@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com, 
    peterz@infradead.org, namhyung@kernel.org, mark.rutland@arm.com, 
    alexander.shishkin@linux.intel.com, jolsa@kernel.org, irogers@google.com, 
    adrian.hunter@intel.com, kan.liang@linux.intel.com, wei.liu@kernel.org, 
    ajay.kaher@broadcom.com, bcm-kernel-feedback-list@broadcom.com, 
    tony.luck@intel.com, pbonzini@redhat.com, vkuznets@redhat.com, 
    seanjc@google.com, luto@kernel.org, boris.ostrovsky@oracle.com, 
    kys@microsoft.com, haiyangz@microsoft.com, decui@microsoft.com, 
    dapeng1.mi@linux.intel.com
Subject: Re: [PATCH v3 01/14] x86/msr: Move rdtsc{,_ordered}() to
 <asm/tsc.h>
In-Reply-To: <20250425083442.2390017-2-xin@zytor.com>
Message-ID: <42dc90e1-df2a-2324-d28c-d75fb525e4a2@linux.intel.com>
References: <20250425083442.2390017-1-xin@zytor.com> <20250425083442.2390017-2-xin@zytor.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Fri, 25 Apr 2025, Xin Li (Intel) wrote:

> For some reason, there are some TSC-related functions in the MSR
> header even though there is a tsc.h header.
> 
> Relocate rdtsc{,_ordered}() from <asm/msr.h> to <asm/tsc.h>, and
> subsequently remove the inclusion of <asm/msr.h> in <asm/tsc.h>.
> Consequently, <asm/msr.h> must be included in several source files
> that previously did not require it.
>
> Signed-off-by: Xin Li (Intel) <xin@zytor.com>
> Acked-by: Dave Hansen <dave.hansen@linux.intel.com>
> ---
> 
> Change in v3:
> * Add a problem statement to the changelog (Dave Hansen).
> ---

>  drivers/platform/x86/intel/pmc/cnp.c          |  1 +
>  .../intel/speed_select_if/isst_if_common.c    |  1 +
>  drivers/platform/x86/intel/turbo_max_3.c      |  1 +

Hi,

To me this looks really a random set of source files, maybe it helped some 
build success but it's hard for me to review this because there are still 
cases that depend on indirect include chains.

Could you just look into solving all missing msr.h includes instead 
as clearly some are still missing after 3 pre-existing ones and you adding 
it into 3 files:

$ git grep -e rdmsr -e wrmsr -l drivers/platform/x86/
drivers/platform/x86/intel/ifs/core.c
drivers/platform/x86/intel/ifs/load.c
drivers/platform/x86/intel/ifs/runtest.c
drivers/platform/x86/intel/pmc/cnp.c
drivers/platform/x86/intel/pmc/core.c
drivers/platform/x86/intel/speed_select_if/isst_if_common.c
drivers/platform/x86/intel/speed_select_if/isst_if_mbox_msr.c
drivers/platform/x86/intel/speed_select_if/isst_tpmi_core.c
drivers/platform/x86/intel/tpmi_power_domains.c
drivers/platform/x86/intel/turbo_max_3.c
drivers/platform/x86/intel/uncore-frequency/uncore-frequency.c
drivers/platform/x86/intel_ips.c

$ git grep -e 'msr.h' -l drivers/platform/x86/
drivers/platform/x86/intel/pmc/core.c
drivers/platform/x86/intel/tpmi_power_domains.c
drivers/platform/x86/intel_ips.c

I'd also prefer the patch(es) adding missing includes be in a different 
patch.

-- 
 i.



From xen-devel-bounces@lists.xenproject.org Fri Apr 25 15:53:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 15:53:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.968349.1357977 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8LMR-0006Lf-P1; Fri, 25 Apr 2025 15:53:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 968349.1357977; Fri, 25 Apr 2025 15: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 1u8LMR-0006LY-M9; Fri, 25 Apr 2025 15:53:07 +0000
Received: by outflank-mailman (input) for mailman id 968349;
 Fri, 25 Apr 2025 15:53: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=zUna=XL=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1u8LMQ-0006LS-KC
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 15:53:07 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5fa480f4-21ed-11f0-9eb3-5ba50f476ded;
 Fri, 25 Apr 2025 17:53:05 +0200 (CEST)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id B09234EE0737;
 Fri, 25 Apr 2025 17:53:03 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5fa480f4-21ed-11f0-9eb3-5ba50f476ded
Authentication-Results: bugseng.com; arc=none smtp.remote-ip=162.55.131.47
ARC-Seal: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; cv=none; t=1745596383;
	b=r0G2RchOsSC16d4ETZYD/uzmM2EU9McvQPNAJHVMsyViROyAZTHRpj1auN0yK1ERHKA7
	 DuwSSjGG/9IaYD0P8af4DKSYJoSc2knm5TSctwTHzzb5XLnhrPFE75GZF/aAnYxTVGaJR
	 goTvxjJsaO0YYcryn1gHkT5eAC49qazNbH1ceFy0zkYgz4f7Q26/YJMvhIduC2fr1pZ4G
	 J51BtFPEh6IU6vWDFGCi9kCoVH79/N4SvG7YcOJJKkbpMQ8H9KMyFy0V+ih3VBR+hFbwA
	 1jTCJoh01r4l4jirMp70s3aAu59/PjFphB6Psz8HLfnkIWoBWyOAftFbGo4PzegqOz8jZ
	 mfr0OStT4WlzjI1N0wbopPIOKw0o/1edA542qPbQsOqZz/a/QbM0rdgIaY5sSfg2cNnV+
	 8d+SrK3o1mFOL8FDNLTENJfoKzAV2PrBKTVJWlaJXX9idT4nMN5c0GuxeJ4R9tjjaNhYl
	 EqKMR9sQdg2lBmGG3R9Qsn1+HXfkJlrdOj3dSny5H1FHZ1YMo0CZMK2+WQdf03oRdI9kx
	 KW9AdOrly1GscIpfppCP0TkQDiRGeQQnX8S3l1xyOUxPaJiy4rT/rZHfUbUMNZWFxHl4A
	 oxtVQjp3TrHd+e8wH+dSTbz11WOU7ytvtQZulSyNeAQyiQnk1ED5LbKjEMtkbIY=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1745596383;
	h=DKIM-Signature:MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:
	 References:Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=ZlVtX6/H69KyDq0ZXoXpcRteBc20NIKrfdkjlddmYTo=;
	b=ADWUoTAAQg41hsAUVJYHxwxn1REgd5tP4qS/R9wgytAyKUXj81gQiC1pIHUVi74LWF/k
	 yLEfLCufBBE9Gt1g1szYTMjsm3j/xYuP9lR/Z/5BbIBbV6yATTJ+dKd9NLFpr4LsJTuds
	 0dInXF+SfFQqT/dhuBIuNxUV+tTQ2Mx9+Fs5DvGIKABOm7GFOwXyT2J7kvrWB8FXeRnbp
	 vkSYnIPEpn4RglozymrXbYxtaik5qjdK1y3OMqCSnkozEhSmX0fKLlGIk7ZXmbUBnqnLC
	 uygjKOYDWD0B4HU1lZHXmL7lZqHsuBkG7FS6Mo3vQNauIx5DTpbb7HJBwA+BH6lgFeq1R
	 f/Xa5+svKB8PnDUDSzlTuLL7BKa5k/cWs9FsHpjejvdUP6PR9dWtkiJi5+EMy+odCSFpq
	 DJYqRxJ3sEOnxnwb9hZL+rgoBIX+nRNbOlSrxoehoSqwuN6HvxtkIIcdkY/7+Qvj+7wEV
	 gBDhsuhyQVJn3QZWPFH88w8YkRQXV6D6MWfIKKEyFfOeB6jwJdnguuXuytEfpzBmkg3x0
	 JycG/ge3srCdSlNOnlwLwqfU81VcD/uPI6/YGGsEVWCt0mEfGKLeLisHcvcEuIJs4sRYX
	 Ne/8toJoX4eUo1s9aB+PGavF/wORkVwUWvweTCX8jvgUagLA0+AJKrH2rCd6Iyo=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1745596383; bh=EoappiWRhq2Xe/N5OzY9mxhp+n9sKlOMXdL4nkS/LuE=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=rSm+IX0NO01zhMsLbMhu1CI4dx9T4OiXhMYP34Tt6e2Gc/sgyInecQ1G4vjpYb0Lx
	 lDnMsjLdlGnjPh0cMwwZxZgjlkqoJHR3v2aV5d5a5OJ60SiDDwICDbw6sqYiFqB3vw
	 CnRzFZppwCvDakzkP7s8HGIyCw7+TdLSyirt0bOlnKyA3vAKPLg3qBdO6C6cZO4+MJ
	 3Gfw9BcJjJ4F3zsCnH53jiAvpDYARkwH0qUHbN9WpKDtVZd9Dimno7E9AhSZniPivZ
	 dHG7P4U/gxySNz61uNw+i9lumIdrIHUkCTud7GAivkLsbgF7+jBpnVwPkm/26nvCPw
	 t5ep6TRs/6WVg==
MIME-Version: 1.0
Date: Fri, 25 Apr 2025 17:53:03 +0200
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, victorm.lira@amd.com,
 Federico Serafini <federico.serafini@bugseng.com>, Andrew Cooper
 <andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Bertrand Marquis
 <bertrand.marquis@arm.com>, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v1] misra: add deviation for rules 21.1 and 21.2
In-Reply-To: <8d65ee65-ec6f-49a3-8954-d303b08dc2df@suse.com>
References: <9e1210f2a9c794d68dcc6b897239b228b141296a.1745427770.git.victorm.lira@amd.com>
 <f5d35582-9270-4816-84c2-f078afeee711@suse.com>
 <alpine.DEB.2.22.394.2504241443550.785180@ubuntu-linux-20-04-desktop>
 <8d65ee65-ec6f-49a3-8954-d303b08dc2df@suse.com>
Message-ID: <a9db045cff906a4b7db8730ad1095e4b@bugseng.com>
X-Sender: nicola.vetrini@bugseng.com
Organization: BUGSENG s.r.l.
Content-Type: text/plain; charset=US-ASCII;
 format=flowed
Content-Transfer-Encoding: 7bit

On 2025-04-25 10:07, Jan Beulich wrote:
> On 24.04.2025 23:45, Stefano Stabellini wrote:
>> On Thu, 24 Apr 2025, Jan Beulich wrote:
>>> On 23.04.2025 19:54, victorm.lira@amd.com wrote:
>>>> From: Nicola Vetrini <nicola.vetrini@bugseng.com>
>>>> 
>>>> MISRA C Rules 21.1 ("#define and #undef shall not be used on a
>>>> reserved identifier or reserved macro name") and R21.2 ("A reserved
>>>> identifier or reserved macro name shall not be declared") violations
>>>> are not problematic for Xen, as it does not use the C or POSIX
>>>> libraries.
>>>> 
>>>> Xen uses -fno-builtin and -nostdinc to ensure this, but there are 
>>>> still
>>>> __builtin_* functions from the compiler that are available so
>>>> a deviation is formulated for all identifiers not starting with
>>>> "__builtin_".
>>>> 
>>>> The missing text of a deviation for Rule 21.2 is added to
>>>> docs/misra/deviations.rst.
>>>> 
>>>> To avoid regressions, tag both rules as clean and add them to the
>>>> monitored set.
>>>> 
>>>> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
>>>> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
>>>> Signed-off-by: Victor Lira <victorm.lira@amd.com>
>>> 
>>> While the rule is in the library section, ...
>>> 
>>>> --- a/docs/misra/deviations.rst
>>>> +++ b/docs/misra/deviations.rst
>>>> @@ -587,7 +587,31 @@ Deviations related to MISRA C:2012 Rules:
>>>>         construct is deviated only in Translation Units that present 
>>>> a violation
>>>>         of the Rule due to uses of this macro.
>>>>       - Tagged as `deliberate` for ECLAIR.
>>>> -
>>>> +
>>>> +   * - R21.1
>>>> +     - Rule 21.1 reports identifiers reserved for the C and POSIX 
>>>> standard
>>>> +       libraries. Xen does not use such libraries and all 
>>>> translation units
>>>> +       are compiled with option '-nostdinc', therefore there is no 
>>>> reason to
>>>> +       avoid to use `#define` or `#undef` on such identifiers 
>>>> except for those
>>>> +       beginning with `__builtin_` for which compilers may perform 
>>>> (wrong)
>>>> +       optimizations.
>>>> +     - Tagged as `safe` for ECLAIR.
>>> 
>>> ... I'd like to ask that it be explicitly clarified here that it's 
>>> solely
>>> the library (and not e.g. the compiler itself) that are of concern 
>>> here.
>> 
>> The language can be clarified:
>> 
>> - Rule 21.1 reports identifiers reserved for the C and POSIX standard
>>   libraries. Xen does not use such libraries and all translation units
>>   are compiled with option '-nostdinc', therefore there is no reason 
>> to
>>   avoid to use `#define` or `#undef` on C and POSIX standard libraries
>>   identifiers except for those beginning with `__builtin_` for which
>>   compilers may perform (wrong) optimizations.
> 
> Which makes it more apparent that there is a gap: What about e.g. 
> __x86_64__?
> That falls within what the rules cover, is not a C or POSIX standard 
> library
> identifier, yet very clearly must not be fiddled with. Whereas the text
> above deviates it.
> 

Hi Jan,

that is true, even if unlikely: one approach could be to avoid deviating 
predefined macros for all CUs as -nostdinc and -fno-builtins should take 
care of the rest; this kind of deviation is not currently possible in 
ECLAIR, but it might be in the future. I think this could be 
accomplished also via some gcc trickery on each CU, though I'm not sure 
how valued that is for Xen.

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


From xen-devel-bounces@lists.xenproject.org Fri Apr 25 16:14:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 16:14:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.968372.1357987 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8Lgf-0002YM-G5; Fri, 25 Apr 2025 16:14:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 968372.1357987; Fri, 25 Apr 2025 16: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 1u8Lgf-0002YF-Ce; Fri, 25 Apr 2025 16:14:01 +0000
Received: by outflank-mailman (input) for mailman id 968372;
 Fri, 25 Apr 2025 16: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=ScUV=XL=arndb.de=arnd@srs-se1.protection.inumbo.net>)
 id 1u8Lgd-0002Y9-Nb
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 16:14:00 +0000
Received: from fout-a3-smtp.messagingengine.com
 (fout-a3-smtp.messagingengine.com [103.168.172.146])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 491ae671-21f0-11f0-9ffb-bf95429c2676;
 Fri, 25 Apr 2025 18:13:55 +0200 (CEST)
Received: from phl-compute-05.internal (phl-compute-05.phl.internal
 [10.202.2.45])
 by mailfout.phl.internal (Postfix) with ESMTP id 87A6013803F8;
 Fri, 25 Apr 2025 12:13:54 -0400 (EDT)
Received: from phl-imap-11 ([10.202.2.101])
 by phl-compute-05.internal (MEProxy); Fri, 25 Apr 2025 12:13:54 -0400
Received: by mailuser.phl.internal (Postfix, from userid 501)
 id A08062220073; Fri, 25 Apr 2025 12:13:52 -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: 491ae671-21f0-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arndb.de; 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=1745597634;
	 x=1745684034; bh=Yvg2W7pOPhvpDT95VcvdJxrIJY08qpA5cIKwqfTORTY=; b=
	Naad5GFeWYwQrTjdLfyOV77bbd2AkMddHFS2vgyO9i1KrLIGD/+LDdmVJbs0ASqm
	lDprKhuAOVbVNaIWeRqnYqJFjtMCESkrtWiHkQuY7CO6o5GVzBm133gLWtpYpG8/
	dpyEjvBa4/dARmhYiiiu35CJgVHruzBap+1J73pv3TsbUwjscNx+iJD4uIUpbuV9
	Y9FOw2Nt+KcNCls4py4oTDFo0cEjUsU2lhhxhVoTnNdvKx/8m5GS7TzU7w85t61y
	Or+klb2b6lp4/CJ9iiErJSO8CGah/I5mERH7s+z/ZfxVN2opGK/76chVJ/q+g2lA
	jLULe/s7RxKAFtYvaCFpHQ==
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=1745597634; x=
	1745684034; bh=Yvg2W7pOPhvpDT95VcvdJxrIJY08qpA5cIKwqfTORTY=; b=L
	p6aCUm/0PsRC5l8WdrWL3golhsxVaDBgp7c/rPDw9Q5q/NFWU0VdmlY5+jNt0QTu
	qdnY/QUzZvh3x1vEkhEY9slS8t8b3Zh4hluJIM+g70vk+tIw1ioFR2yR3eGZTShu
	Z/fCPeM9oU5zYeGsDrAW0YJFEmuVzAOKA3WZh41REcXoGOpJF57BtuxAKTYyfzZk
	G97qJl3UiwvvRFCOM2LAVHjYy1dqFCAw3/sIVrJVnNG5xa4jRRu+mT0JedQLdeWJ
	h5pT6B3KVj5cpOBJDEqMHVMSiCyOYAQaHulDmdCE8rfyKcluoGG275vS+78HfGyy
	bP8wo8G1/cwwia5SqXHXA==
X-ME-Sender: <xms:wLQLaHp2tb94smK6g90t71KWpC6jZx2bDxPng9mKqywhqdxDC-nw6Q>
    <xme:wLQLaBoqI_UZqWP1YDLAa4zTp3rx6Qs_G2MinX485YfeaV2dL48ka7WuuughkAmuQ
    5ud796Q1yfgs6ZK_Nk>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvhedvjeelucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
    pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
    gvnhhtshculddquddttddmnecujfgurhepofggfffhvfevkfgjfhfutgfgsehtjeertder
    tddtnecuhfhrohhmpedftehrnhguuceuvghrghhmrghnnhdfuceorghrnhgusegrrhhnug
    gsrdguvgeqnecuggftrfgrthhtvghrnhephfdthfdvtdefhedukeetgefggffhjeeggeet
    fefggfevudegudevledvkefhvdeinecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrg
    hmpehmrghilhhfrhhomheprghrnhgusegrrhhnuggsrdguvgdpnhgspghrtghpthhtohep
    udejpdhmohguvgepshhmthhpohhuthdprhgtphhtthhopegsphesrghlihgvnhekrdguvg
    dprhgtphhtthhopehpvghtvghriiesihhnfhhrrgguvggrugdrohhrghdprhgtphhtthho
    pegrlhgvgigrnhguvghrrdhushihshhkihhnsehinhhtvghlrdgtohhmpdhrtghpthhtoh
    eprghruggssehkvghrnhgvlhdrohhrghdprhgtphhtthhopegrrhhnugeskhgvrhhnvghl
    rdhorhhgpdhrtghpthhtoheprhhpphhtsehkvghrnhgvlhdrohhrghdprhgtphhtthhope
    igkeeisehkvghrnhgvlhdrohhrghdprhgtphhtthhopehtghhlgieslhhinhhuthhrohhn
    ihigrdguvgdprhgtphhtthhopegurghvvgdrhhgrnhhsvghnsehlihhnuhigrdhinhhtvg
    hlrdgtohhm
X-ME-Proxy: <xmx:wLQLaEOhJEv0oYYsVYfyzmYUSp9pAhgUhKJ2Ri2uYxyOFqLYX4bM4Q>
    <xmx:wLQLaK5HIvDo_c-bsOw4b-cSc-jjR7kfO-CPlpDbHW-o9cebCPLPqA>
    <xmx:wLQLaG6dqj8QzvQpBZRwzX5_KhFyy6YmgAENRQv-2M-16qCk0ECsjA>
    <xmx:wLQLaCh4ZGvLeTwKKeSXf_0llKg28o3D8ev4AHtW93IuQmmMeFFDIg>
    <xmx:wrQLaHfI90MILvt6A9aWTPE1_R_OExpxtVSaC1qUMNPKYNP5eKO0tR1R>
Feedback-ID: i56a14606:Fastmail
X-Mailer: MessagingEngine.com Webmail Interface
MIME-Version: 1.0
X-ThreadId: T6ef4c78fde3bfaf8
Date: Fri, 25 Apr 2025 18:13:31 +0200
From: "Arnd Bergmann" <arnd@arndb.de>
To: "H. Peter Anvin" <hpa@zytor.com>, "Arnd Bergmann" <arnd@kernel.org>,
 "Thomas Gleixner" <tglx@linutronix.de>, "Ingo Molnar" <mingo@redhat.com>,
 "Borislav Petkov" <bp@alien8.de>,
 "Dave Hansen" <dave.hansen@linux.intel.com>, x86@kernel.org
Cc: "Juergen Gross" <jgross@suse.com>,
 "Boris Ostrovsky" <boris.ostrovsky@oracle.com>,
 "Alexander Usyskin" <alexander.usyskin@intel.com>,
 "Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
 =?UTF-8?Q?Mateusz_Jo=C5=84czyk?= <mat.jonczyk@o2.pl>,
 "Mike Rapoport" <rppt@kernel.org>, "Ard Biesheuvel" <ardb@kernel.org>,
 "Peter Zijlstra" <peterz@infradead.org>, linux-kernel@vger.kernel.org,
 xen-devel@lists.xenproject.org
Message-Id: <09e26f91-9a62-45c8-b94e-eddb307251f4@app.fastmail.com>
In-Reply-To: <7CEE8E85-D7B1-4066-AD4D-747CA4340F65@zytor.com>
References: <20250425141740.734030-1-arnd@kernel.org>
 <7CEE8E85-D7B1-4066-AD4D-747CA4340F65@zytor.com>
Subject: Re: [PATCH] [RFC] x86/cpu: rework instruction set selection
Content-Type: text/plain
Content-Transfer-Encoding: 7bit

On Fri, Apr 25, 2025, at 17:34, H. Peter Anvin wrote:
> On April 25, 2025 7:15:15 AM PDT, Arnd Bergmann <arnd@kernel.org> wrote:
>
> I really don't like testing an unrelated feature (CMOV for PAE); 

How about a new symbol with the opposite polarity, e.g. CONFIG_CPU_586?
In that case, X86_HAVE_PAE and X86_CMOV could both depend on that
not being set.

I only picked the X86_CMOV symbol because it already exists in .config
files, but that is not the important bit here.

> furthermore, at least some old hypervisors were known to have
> broken PAE.

I'm not following. What does that have to do with my patch?

     Arnd


From xen-devel-bounces@lists.xenproject.org Fri Apr 25 16:48:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 16:48:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.968388.1357997 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8MDj-00089J-Vs; Fri, 25 Apr 2025 16:48:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 968388.1357997; Fri, 25 Apr 2025 16:48: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 1u8MDj-00089C-Qm; Fri, 25 Apr 2025 16:48:11 +0000
Received: by outflank-mailman (input) for mailman id 968388;
 Fri, 25 Apr 2025 16:48: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=/n1b=XL=amd.com=VictorM.Lira@srs-se1.protection.inumbo.net>)
 id 1u8MDh-000896-H6
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 16:48:10 +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 0d921b4a-21f5-11f0-9eb3-5ba50f476ded;
 Fri, 25 Apr 2025 18:48:04 +0200 (CEST)
Received: from SJ2PR12MB8876.namprd12.prod.outlook.com (2603:10b6:a03:539::18)
 by DS0PR12MB7677.namprd12.prod.outlook.com (2603:10b6:8:136::13) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.35; Fri, 25 Apr
 2025 16:47:59 +0000
Received: from SJ2PR12MB8876.namprd12.prod.outlook.com
 ([fe80::69d9:a014:7a29:de4a]) by SJ2PR12MB8876.namprd12.prod.outlook.com
 ([fe80::69d9:a014:7a29:de4a%4]) with mapi id 15.20.8678.025; Fri, 25 Apr 2025
 16:47: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: 0d921b4a-21f5-11f0-9eb3-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=uSPaA2EIprffG8bbWJVBsvTyfTKq3OsnA5hMZUiqnY+5T0j7eqvh/k5ZnZ8Zhjz6HP1X8gCwCXTjvU/fiPOstpmcDVzV84FaZ01nBzndBiuIGg+9TnLMj5BxZ723VgovrwSmemcy+tBb8uxKkFj4LC7uh6KdYBIzgADm1XexduIySkfFYh0sE6VZ0KHm/cHfBeTzorKwMp53DBf/M0bhutAGtoP51u0GkuFq29W2Tz/KToRU06AvVRzsyBpjf6VBvgCk1UBCmJhzHkdJDhpFch+3g8toWTRQI3Q7tzbkcSpXvIIZ9ZWBqTJMQvkL5BJb0MwGXUwzrMfRE7m/I5n5RQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=wkKKDKOY2eoEYNbNkUxETY1w/YHyl22LdYPei9DGgdw=;
 b=t7wXu52XtFNvnCdVu3DF3T8Js53K0mY/dO8FnbelHvO4LhBklhRrz3P+g72obdPpJxgaihsylnHntGbuSb6B2reQ2NEuUGcgoS/YpMU/qtrz6K0yM+QVbAEpgcF45/jk5uofDNOAI9/BejfgTIKatR/sCDYLgeR7nV9O1Plnf/OGORkuRN36izmDlk7A2SApc3KL0vuDe4Y77ZLicZPY/YnhRLFz+VA9luxu5+dEoXGsx2oGo59vKu30linUu3uUY+MVEQPPYtk8GIcZfnX/IVUGtDkBOlXcS4u2K/hVs3jj0LfH8Patgj4mYwKtIuYWo6l18KYmWzCbvGw6VkO43Q==
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=wkKKDKOY2eoEYNbNkUxETY1w/YHyl22LdYPei9DGgdw=;
 b=xY3JHzgKj96LiayQYZSCuO0xbTHGOmtlvJFDAODpDopFAz0PuSlh7pA8JlLhfx+yyqGtneVhdKC92sJ9E7oxjjLAYNHBA1Xjnm03w7hjmSPcoIaIsSradpjqKpwakr+pG9GFqDrVqhaqiKIsAz9SuQAlv5p+Sh077u1eXSpBeg8=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Content-Type: multipart/mixed; boundary="------------C0Y5u2RfkqdS1mr8M54JJ5RE"
Message-ID: <e5d464f3-6675-4fd6-a834-7f743fee668a@amd.com>
Date: Fri, 25 Apr 2025 09:47:57 -0700
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC] xen/x86: allow overlaps with non-RAM regions
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jan Beulich <jbeulich@suse.com>
Cc: Jason Andryuk <jason.andryuk@amd.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org,
 Andrew Cooper <andrew.cooper3@citrix.com>, Xenia.Ragiadakou@amd.com,
 Alejandro.GarciaVallejo@amd.com
References: <9ed89e50-c645-407d-80b4-5b78cb6e36fa@amd.com>
 <Z_zGdE91KwlYxu_A@macbook.lan> <ce06ec74-1a73-4a02-87fc-3e829399cc77@amd.com>
 <aAnvRMgJxAskbCtE@macbook.lan> <aAoPNTsLjMMfsHvJ@mail-itl>
 <aAoW-kvpsWuPJwrC@macbook.lan> <775d3ac0-8f43-415a-a32d-14377092b96b@amd.com>
 <554026de-bbb4-488f-95c4-8e2f034d6d0e@amd.com> <aAtPpOq2Kc_N6hBy@macbook.lan>
 <2acad9ba-564a-4d18-9b09-dcabe8f7b025@suse.com>
 <aAttUBx57tds8WJJ@macbook.lan>
Content-Language: en-US
From: "Lira, Victor M" <VictorM.Lira@amd.com>
In-Reply-To: <aAttUBx57tds8WJJ@macbook.lan>
X-ClientProxiedBy: PH5P220CA0010.NAMP220.PROD.OUTLOOK.COM
 (2603:10b6:510:34a::13) To SJ2PR12MB8876.namprd12.prod.outlook.com
 (2603:10b6:a03:539::18)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ2PR12MB8876:EE_|DS0PR12MB7677:EE_
X-MS-Office365-Filtering-Correlation-Id: 4da7ef9e-4433-4bd9-5990-08dd8418efbe
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014|4053099003;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?NWpZVWdzT1QydUo5R1AwbVUvL2ZPRkNuMFgvRG1ENjFZRkFHODFHcVVZTzlH?=
 =?utf-8?B?WVE0ZXh1OEFZeWVZc3ZyQlRYSHBrVXVIVXd2Ry9McE1nYmY3cC8yYytCanhw?=
 =?utf-8?B?QjFsSHozeFhhYWF2VUVIZDgzc2MwdVBIdFl4ODZFc2ttdUVpY0JUNEQ5MEc1?=
 =?utf-8?B?aS9mQjR2Nkh2b24xK2M1ZUdwZHphWkVtT3lPaDlWdTYwditWNGgvZXgrTXBL?=
 =?utf-8?B?SHZ2TkVDVkRHZ3VGVERJcUxHOFR0eWNjZEpsN0RuM2xTUDhkWmtaYUJQU0o2?=
 =?utf-8?B?ZmJwK3dNVFgyVk96TlhldGVYR1lXMUpzVEdPcFRuRlFYRnNtdFR1a2NDVU83?=
 =?utf-8?B?a1ExeHFOUTlKdTBHeW8yT2FDaFR2Vzk0cWc0TW1OWC9lVndTSWl4U2J1YlJU?=
 =?utf-8?B?djIyZjkrRGhGZmxiMnVpM29ubVQzQjl5WExDZlA4MUFITGxVOHpHQ0pscEZX?=
 =?utf-8?B?WWNuMm40MVViS1diZHhTYlNYdDZTT1NGNnZRTDFWSDE4VnZUZk9SYTN4ZlV1?=
 =?utf-8?B?QzZIb2JuVm1UYUZUc2xUaUVCOFFGSFRFUElXK2ZqNkV5VzVhVW9mK2JuZjZ1?=
 =?utf-8?B?cDlKbDNVVWFueSttYWdiZ0ZsU0FyVExERTZPNnhvazBsTkt2bFFySVc1VEx4?=
 =?utf-8?B?eDJKN29qdHdyUHYxb0hnZHlwMTdNUHNSZkxMdEFIenk1ZVhIMGZacU83RGQr?=
 =?utf-8?B?R1N0YWd3cFVBZUtkVGMrdS8xaTlOSThnVTQ2WmJVT1p0dHVENDVHN0tmdUI3?=
 =?utf-8?B?WFM3YnBGMkpaVWN3dnJvM0xoUFplQnB1bHdPaTNtTS9UNEpQQjlLdDVweEVT?=
 =?utf-8?B?VFp6TEtuaFJqYkFWVXVaa3RaZEVMMG5SV3lnMGZrbGNPSFBRL2FBTGFqbCsz?=
 =?utf-8?B?VlI5ZGZtcGNmc0Ftd1ZpS2ZjY2FTZ01abXBGWnlUVUdwT2NSajdmV0dkZXBF?=
 =?utf-8?B?T244cmRMb01vRyt4RlNlOUhhVzlOUzBWaFNtSUpuK3l6UHdrZm5SWG1UbWds?=
 =?utf-8?B?MktKRnFsWmdqYW4rVnV4REpHNmo3WHU3eDZid0ZXdndSSjlQN2JwbVVBTjNU?=
 =?utf-8?B?cXBRL2lwdDgrT2FEMlZNbDg4STRJRloxZVF5RjczVTgxNW4wZ0FLenQwcGc1?=
 =?utf-8?B?SFVxU0lJSmFuUnN5TDNJSWw2aDl1WkRmaERyYXdkWnVaS0ppR0xLcG50bmdn?=
 =?utf-8?B?SEViSEI1WGcwQnkxWFExaWl1c2xvQkJpSVIwaGRvWWNTUkd0YlI4eVZFMmZi?=
 =?utf-8?B?R0NFKzNjMFRkWHg4RnpKRmtJb2NGbkVGWTAwZnljL1R3OUtLRFJwaFJMTUxu?=
 =?utf-8?B?WVVhaC9oOU1zMjhpWWRUak9UVEl3Sk9ueTQxYUVia0xBN0hqQ3RVRWFoNi9j?=
 =?utf-8?B?R1l3M0ZvYzQxcTdVRmVJTk0zK1lGUExsYVhVSHEvcHg3N08xZ0dna05peFR5?=
 =?utf-8?B?czJHeWhGSytrUnVYMU1xOEtZZk9XZW9uNDdmTi80MURCMFphd2UxV25UbUlU?=
 =?utf-8?B?NDdBQVg2aFhGdnhCR0R0SW5mdGlpZk1Mb1ZmaXFHYTVqbjM3N0hndXY4VFk3?=
 =?utf-8?B?eXc4T0Y1cXpwbnA4R2JvdUtaYkpuM0FkbE43c0ZnKzREeDVtMmRMMkxBdVJS?=
 =?utf-8?B?NDEyYVpQSTBYUGJwV0IzQ1psOUxHdjdDRWQyK2lBQjMyN05SRHJqd1o5L1d0?=
 =?utf-8?B?SjIzUkUrd2FUTzZZTFd4Q0h2c21KcWJVL1NsNWJBNDVHRGVqV0l5M1FqaERI?=
 =?utf-8?B?aVFIbmg5N3BueUtJc3gra1ZIWkwwSitSaGpHK1g0N01LbHhZOUZxUVFZeWg3?=
 =?utf-8?B?WDhGSmhnK3NOcnl1ZzFMRjBMR2Q0NUh6VFlCZ0M5bW1ZaXVZY2hJdFlSYUhP?=
 =?utf-8?B?dE5mWFo1akFmaW5EbDFCTy9KR2lWM3hXaFBQZzBEcEpaMWVja0lncnNWc1hp?=
 =?utf-8?Q?HxEfJZ/cfRE=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SJ2PR12MB8876.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(4053099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?OFQvblZLWTZYaUozMkJVNGFvVDh4TFllQWd1bjNLb1M1VUVHd2RlZmdoWnFR?=
 =?utf-8?B?dnh3bUlTSVZydGRmZXk0dWdkdXJrN1RXVDV6dEVsOUtRczYvY28yN0E3U2RR?=
 =?utf-8?B?QTZaWHJjNm9RdHJnOTlWM3hoRzc5NFZ6MWdOV0NRWGtncll5azFFaHMzK0xt?=
 =?utf-8?B?SmI4b056dm44SU9hVk9JbUJBSDhpRVRxc1Z6eDE5TVp2WnR1bXBidnl6ejQ3?=
 =?utf-8?B?YWxOdldRd3hMRXp6UVk3ckxTZnIzY1Y0RzhUSEJSUnU4UnQ1N1UzeGJqZjdq?=
 =?utf-8?B?OXdwRFlRQmdYQXV6TXdFM25CVEVDM0F1ZG9NV2NUaFVlVEZDTjVuYUxzRzQv?=
 =?utf-8?B?UU1PMGU4VituSDU3WDlHU3R1Mnp3eElyV0prV3M0YU5DaUlHR2p0UERQVmpv?=
 =?utf-8?B?RWw4ZlN6MUlCZUF2aFIxTEk3cEhHTkM5OHNqU1pHeXduanRRUjB4Y091WDVl?=
 =?utf-8?B?SVBEaWYyQUplWHhQYkR5SFVUc1E3SjA3MTlpWDdZcVozektwOGt6RkcvUnJP?=
 =?utf-8?B?OG4vSG5KM0wrdWoyZ0p3ZHRxSTk4M2YrUG1vaEx0S3lrS0xwYzNmNllKSkV6?=
 =?utf-8?B?cFRwM2MyaUw2WnZ6ZktZdUxmNDBBcUtORndScTJkV2Zob2FvSFUxL2pYNWZx?=
 =?utf-8?B?SjBHb3BjNFlDdFpVTkVpcGNIQVgwYXFaSi9ESm5DbDNhNTNCcy9UMEZqaFli?=
 =?utf-8?B?RkN1VUdLaXpuelRWZ1VycmVBZHF3M1hGNXZaWSt2bkR0ZlN2WGcwcmVodnZ5?=
 =?utf-8?B?ZE5xdnVzNnlvT3dvdk15V0wvMXh0Q24ybW9VcUNTQ2hTUG9sWWNmS2VGRlcy?=
 =?utf-8?B?c0dUc2MwUUZhenJqR21DUXpGWVUzRWxCa0p5S2VjaU1BQlZicmVjdk5nakVv?=
 =?utf-8?B?YjVnZUxwWGhzbFFoNWs3dDlKNXRTNS9hTCtmU1JLYytscUo2Y0VLUWNESXhv?=
 =?utf-8?B?a0JJTDgxWmozOVgwblRQRERRQnFJemxtU09MbEpDc2kzcmthVDRFWnpOYUM3?=
 =?utf-8?B?a0RmOEFXV0JRYXdGbDdqTnllY0ZTc3BHdTF4aENMK1lBNmY3UjN5MVpHQStv?=
 =?utf-8?B?UU9YeGxqUHdiWXh2WWh3OVNhYy94d1Rpb3dTT0c0bWVrb1Z6a0Q5bFowZW1K?=
 =?utf-8?B?R3JzYU5sMzRIWXZ5NzVHYnYvQitTYlJqK0FZQ0JjTVA5ZUlJZEtGMjY4NXgy?=
 =?utf-8?B?R2RuSVhMcFB3MU5aMHpDb2I5TW5KMExobytHaklhbktlbk90dFNkWGRIbXR4?=
 =?utf-8?B?YkYwandERE84M2VBMk9oZEtOOXdYdUxvZEdtWUZuK0VSTzVQSTd6WTlsNEdH?=
 =?utf-8?B?K0d3c0x0Mk13ZUlyUVA1U29HenE2RnA2NTB0bmQ4UnRnUm9sSXpkZmloNzNE?=
 =?utf-8?B?TitXUzIyR1NreisxeTI3V3lKd0V1a2dpUit4ODB5NGZxU3RHNEpOb2pqNUxG?=
 =?utf-8?B?UmU5SHRXQXRpTkRBcFdISDF0S1FyU0ZzNEtZcUFpTE9UZWE3c1pybVF0dm9p?=
 =?utf-8?B?bzBkZ2ZEVnR4VU84anVZZHh2YUdoWUdOblBwZklvY1pabFZJeTRLZmJLVFVW?=
 =?utf-8?B?RkZCb01nQ093SitDWXZQbFpibGZJUmpjK1ptVllsZ05SdXkwYmFnZWh4b3kr?=
 =?utf-8?B?enEzNlI4Si9SbmtxKzE2b3pFejZpdHpyWXpKbHFZck80TWFBSC8zdUZkeUlD?=
 =?utf-8?B?anlLdHF5eDZiNmhTc1ZZUVZ3ZGhONzNucjh1ekZ4NTR6Q1FhbWFJcXptVkhz?=
 =?utf-8?B?V1AvTk9YNHh1eFp5WkZCN1ZobkJNN05HOHZCTE1YeWdjV2g2MmJkcmVXOWhE?=
 =?utf-8?B?b1JJYlhmZzJFK2YxakttbzBiMktnUG1JWDJWVGFoVnF2aHB3dHdzWGpUM1Fr?=
 =?utf-8?B?OU16d2t5UkcxbUJoY296UWptMmlDVUJMaE9ZQXFkOWxPL1JVblVmcVdkS3Bk?=
 =?utf-8?B?bzZiWXZwRUdWUjM3OThIc2dFZFA5eXVWSjJEeU4rVXJ0d0JPVFcxMWZKUFlK?=
 =?utf-8?B?dlRtZGVQSElIZDAwcVNvR3hGdU5Mc250N0VqV1dVbGdPQ3JFSmx6MGFsd0w3?=
 =?utf-8?B?dmRpcGp0VjhpczQrTGxDN1lKd0NKSHIwNE9NZTNQYWJpNW82NWZoTUkzSmVZ?=
 =?utf-8?Q?G2P/6d2hdrRbA/7SM2hnsKmWY?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 4da7ef9e-4433-4bd9-5990-08dd8418efbe
X-MS-Exchange-CrossTenant-AuthSource: SJ2PR12MB8876.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Apr 2025 16:47:59.4704
 (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: wnj0t+0SHWQCiygetZe0x4BC51S3VCAmBSkbIj70V37232o59iOdXP6vBHZ2IXTmua7TkIqY4olCxnEdszQVQQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB7677

--------------C0Y5u2RfkqdS1mr8M54JJ5RE
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

I can confirm with the patch the NVME drive can be accessed despite the 
"not mapping BAR" warning from Xen.
Output log attached.


Victor
--------------C0Y5u2RfkqdS1mr8M54JJ5RE
Content-Type: text/plain; charset=UTF-8; name="xen-staging-patched-msix.log"
Content-Disposition: attachment; filename="xen-staging-patched-msix.log"
Content-Transfer-Encoding: base64

KFhFTikgWzAwMDAwMDIzNGRiYTg3ODNdIFhlbiB2ZXJzaW9uIDQuMjEtdW5zdGFibGUgKHJvb3RA
KSAoZ2NjIChBbHBpbmUgMTIuMi4xX2dpdDIwMjIwOTI0LXIxMCkgMTIuMi4xIDIwMjIwOTI0KSBk
ZWJ1Zz15IEZyaSBBcHIgMjUgMTY6Mjc6MjggVVRDIDIwMjUNCihYRU4pIFswMDAwMDAyMzUyM2U2
Y2Q0XSBMYXRlc3QgQ2hhbmdlU2V0Og0KKFhFTikgWzAwMDAwMDIzNTM5NmY2YmZdIGJ1aWxkLWlk
OiAwMmU5M2U2MzlkODU5YmEyMThhMzEyYmNlMzdlOTEwY2RlYmEyZDRkDQooWEVOKSBbMDAwMDAw
MjM1NWU0NmVhMF0gQ29uc29sZSBvdXRwdXQgaXMgc3luY2hyb25vdXMuDQooWEVOKSBbMDAwMDAw
MjM1Nzk4ZTVlY10gQ1BVIFZlbmRvcjogQU1ELCBGYW1pbHkgMjMgKDB4MTcpLCBNb2RlbCA5NiAo
MHg2MCksIFN0ZXBwaW5nIDEgKHJhdyAwMDg2MGYwMSkNCihYRU4pIFswMDAwMDAyMzVhYjUxMmZk
XSBCU1AgbWljcm9jb2RlIHJldmlzaW9uOiAweDA4NjAwMTBjDQooWEVOKSBbMDAwMDAwMjM1Yzg4
MTM1Zl0gQm9vdGxvYWRlcjogR1JVQiAyLjEzDQooWEVOKSBbMDAwMDAwMjM1ZGY3ODg3Nl0gQ29t
bWFuZCBsaW5lOiBjb25zb2xlPWNvbTEgY29tMT01NzYwMCw4bjEsMHgzRjgsNCBzY2hlZD1udWxs
IGxvZ2x2bD1hbGwgZ3Vlc3RfbG9nbHZsPWFsbCBjb25zb2xlX3RpbWVzdGFtcHM9Ym9vdCBpb21t
dT12ZXJib3NlIGRvbTA9cHZoLHZlcmJvc2UscGYtZml4dXAgZG9tMF9tYXhfdmNwdXM9NCBkb20w
X21lbT00RyBhcmdvPTEsbWFjLXBlcm1pc3NpdmU9MSBzeW5jX2NvbnNvbGUgbm9yZWJvb3Qgd293
DQooWEVOKSBbMDAwMDAwMjM2NWFlYmE3N10gWGVuIGltYWdlIGxvYWQgYmFzZSBhZGRyZXNzOiAw
eGM2NjAwMDAwDQooWEVOKSBbMDAwMDAwMjM2N2E3ZmJlOF0gVmlkZW8gaW5mb3JtYXRpb246DQoo
WEVOKSBbMDAwMDAwMjM2OTAwNzFhN10gIFZHQSBpcyBncmFwaGljcyBtb2RlIDE5MjB4MTIwMCwg
MzIgYnBwDQooWEVOKSBbMDAwMDAwMjM2YWY5YzliZl0gRGlzYyBpbmZvcm1hdGlvbjoNCihYRU4p
IFswMDAwMDAyMzZjNGFhNjNiXSAgRm91bmQgMCBNQlIgc2lnbmF0dXJlcw0KKFhFTikgWzAwMDAw
MDIzNmRjOTZkMDFdICBGb3VuZCAxIEVERCBpbmZvcm1hdGlvbiBzdHJ1Y3R1cmVzDQooWEVOKSBb
MDAwMDAwMjM2ZmE0MTY2N10gRUZJIFJBTSBtYXA6DQooWEVOKSBbMDAwMDAwMjM3MGNlOTBkZl0g
IFswMDAwMDAwMDAwMDAwMDAwLCAwMDAwMDAwMDAwMDlmZmZmXSAodXNhYmxlKQ0KKFhFTikgWzAw
MDAwMDIzNzJmZDZlOTBdICBbMDAwMDAwMDAwMDBhMDAwMCwgMDAwMDAwMDAwMDBmZmZmZl0gKHJl
c2VydmVkKQ0KKFhFTikgWzAwMDAwMDIzNzUzYjk3NWNdICBbMDAwMDAwMDAwMDEwMDAwMCwgMDAw
MDAwMDAwOWJmZWZmZl0gKHVzYWJsZSkNCihYRU4pIFswMDAwMDAyMzc3NmE5MDAzXSAgWzAwMDAw
MDAwMDliZmYwMDAsIDAwMDAwMDAwMDlmZmZmZmZdIChyZXNlcnZlZCkNCihYRU4pIFswMDAwMDAy
Mzc5YThjMWRmXSAgWzAwMDAwMDAwMGEwMDAwMDAsIDAwMDAwMDAwMGExZmZmZmZdICh1c2FibGUp
DQooWEVOKSBbMDAwMDAwMjM3YmQ3OTY5Y10gIFswMDAwMDAwMDBhMjAwMDAwLCAwMDAwMDAwMDBh
MjBjZmZmXSAoQUNQSSBOVlMpDQooWEVOKSBbMDAwMDAwMjM3ZTE1YjYxZl0gIFswMDAwMDAwMDBh
MjBkMDAwLCAwMDAwMDAwMGNhYmM4ZmZmXSAodXNhYmxlKQ0KKFhFTikgWzAwMDAwMDIzODA0NDhi
ZmVdICBbMDAwMDAwMDBjYWJjOTAwMCwgMDAwMDAwMDBjYzE0Y2ZmZl0gKHJlc2VydmVkKQ0KKFhF
TikgWzAwMDAwMDIzODI4MmQ0NjZdICBbMDAwMDAwMDBjYzE0ZDAwMCwgMDAwMDAwMDBjYzE5NWZm
Zl0gKEFDUEkgZGF0YSkNCihYRU4pIFswMDAwMDAyMzg0Yzg5Yzk1XSAgWzAwMDAwMDAwY2MxOTYw
MDAsIDAwMDAwMDAwY2MzODhmZmZdIChBQ1BJIE5WUykNCihYRU4pIFswMDAwMDAyMzg3MDZiZDU3
XSAgWzAwMDAwMDAwY2MzODkwMDAsIDAwMDAwMDAwY2MzODlmZmZdIChyZXNlcnZlZCkNCihYRU4p
IFswMDAwMDAyMzg5NDUwNWJmXSAgWzAwMDAwMDAwY2MzOGEwMDAsIDAwMDAwMDAwY2M3MDlmZmZd
IChBQ1BJIE5WUykNCihYRU4pIFswMDAwMDAyMzhiODMyNWI2XSAgWzAwMDAwMDAwY2M3MGEwMDAs
IDAwMDAwMDAwY2QxZmVmZmZdIChyZXNlcnZlZCkNCihYRU4pIFswMDAwMDAyMzhkYzE2MDRjXSAg
WzAwMDAwMDAwY2QxZmYwMDAsIDAwMDAwMDAwY2RmZmZmZmZdICh1c2FibGUpDQooWEVOKSBbMDAw
MDAwMjM4ZmYwMzc0ZF0gIFswMDAwMDAwMGNlMDAwMDAwLCAwMDAwMDAwMGNmZmZmZmZmXSAocmVz
ZXJ2ZWQpDQooWEVOKSBbMDAwMDAwMjM5MjJlNTgwZl0gIFswMDAwMDAwMGYwMDAwMDAwLCAwMDAw
MDAwMGY3ZmZmZmZmXSAocmVzZXJ2ZWQpDQooWEVOKSBbMDAwMDAwMjM5NDZjOTA5Yl0gIFswMDAw
MDAwMGZkMDAwMDAwLCAwMDAwMDAwMGZmZmZmZmZmXSAocmVzZXJ2ZWQpDQooWEVOKSBbMDAwMDAw
MjM5NmFhYmM3N10gIFswMDAwMDAwMTAwMDAwMDAwLCAwMDAwMDAwODBmMzNmZmZmXSAodXNhYmxl
KQ0KKFhFTikgWzAwMDAwMDIzOThkOThiOGJdICBbMDAwMDAwMDgwZjM0MDAwMCwgMDAwMDAwMDg1
MDFmZmZmZl0gKHJlc2VydmVkKQ0KKFhFTikgWzAwMDAwMDIzYTc0YjBlNjBdIEFDUEk6IFJTRFAg
Q0M2RjMwMTQsIDAwMjQgKHIyIEFMQVNLQSkNCihYRU4pIFswMDAwMDAyM2E5MzRmNGQ2XSBBQ1BJ
OiBYU0RUIENDNkYyNzI4LCAwMERDIChyMSBBTEFTS0EgICBBIE0gSSAgIDEwNzIwMDkgQU1JICAg
MTAwMDAxMykNCihYRU4pIFswMDAwMDAyM2FjMTNkM2VhXSBBQ1BJOiBGQUNQIENDMThDMDAwLCAw
MTE0IChyNiBBTEFTS0EgICBBIE0gSSAgIDEwNzIwMDkgQU1JICAgICAxMDAxMykNCihYRU4pIFsw
MDAwMDAyM2FlZjJiYTIyXSBBQ1BJOiBEU0RUIENDMTgzMDAwLCA4NzZEIChyMiBBTEFTS0EgICBB
IE0gSSAgIDEwNzIwMDkgSU5UTCAyMDEyMDkxMykNCihYRU4pIFswMDAwMDAyM2IxZDFiMTU2XSBB
Q1BJOiBGQUNTIENDNkMwMDAwLCAwMDQwDQooWEVOKSBbMDAwMDAwMjNiMzVmYzlhZV0gQUNQSTog
U1NEVCBDQzE4RTAwMCwgNzIzQyAocjIgICAgQU1EIEFtZFRhYmxlICAgICAgICAyIE1TRlQgIDQw
MDAwMDApDQooWEVOKSBbMDAwMDAwMjNiNjNlYjc3Y10gQUNQSTogSVZSUyBDQzE4RDAwMCwgMDFB
NCAocjIgIEFNRCAgIEFtZFRhYmxlICAgICAgICAxIEFNRCAgICAgICAgIDApDQooWEVOKSBbMDAw
MDAwMjNiOTFkYmU4ZF0gQUNQSTogRklEVCBDQzE4MjAwMCwgMDA5QyAocjEgQUxBU0tBICAgIEEg
TSBJICAxMDcyMDA5IEFNSSAgICAgMTAwMTMpDQooWEVOKSBbMDAwMDAwMjNiYmZjYTU4Zl0gQUNQ
STogTUNGRyBDQzE4MTAwMCwgMDAzQyAocjEgQUxBU0tBICAgIEEgTSBJICAxMDcyMDA5IE1TRlQg
ICAgMTAwMTMpDQooWEVOKSBbMDAwMDAwMjNiZWRiOWUwM10gQUNQSTogSFBFVCBDQzE4MDAwMCwg
MDAzOCAocjEgQUxBU0tBICAgIEEgTSBJICAxMDcyMDA5IEFNSSAgICAgICAgIDUpDQooWEVOKSBb
MDAwMDAwMjNjMWJhODljN10gQUNQSTogU1NEVCBDQzE3RjAwMCwgMDIyOCAocjEgICAgQU1EICAg
ICBTVEQzICAgICAgICAxIElOVEwgMjAxMjA5MTMpDQooWEVOKSBbMDAwMDAwMjNjNDk5NzQ0ZF0g
QUNQSTogVkZDVCBDQzE3MTAwMCwgRDY4NCAocjEgQUxBU0tBICAgQSBNIEkgICAgICAgICAxICBB
TUQgMzE1MDRGNDcpDQooWEVOKSBbMDAwMDAwMjNjNzc4NzkxOV0gQUNQSTogVFBNMiBDQzE2RjAw
MCwgMDA0QyAocjQgQUxBU0tBICAgQSBNIEkgICAgICAgICAxIEFNSSAgICAgICAgIDApDQooWEVO
KSBbMDAwMDAwMjNjYTU3NjYwMF0gQUNQSTogU1NEVCBDQzE2QjAwMCwgMzlGNCAocjEgICAgQU1E
IEFtZFRhYmxlICAgICAgICAxIEFNRCAgICAgICAgIDEpDQooWEVOKSBbMDAwMDAwMjNjZDM2NTUw
Y10gQUNQSTogQ1JBVCBDQzE2QTAwMCwgMEYyOCAocjEgICAgQU1EIEFtZFRhYmxlICAgICAgICAx
IEFNRCAgICAgICAgIDEpDQooWEVOKSBbMDAwMDAwMjNkMDE1NDc3Zl0gQUNQSTogQ0RJVCBDQzE2
OTAwMCwgMDAyOSAocjEgICAgQU1EIEFtZFRhYmxlICAgICAgICAxIEFNRCAgICAgICAgIDEpDQoo
WEVOKSBbMDAwMDAwMjNkMmY0NDdlMV0gQUNQSTogU1NEVCBDQzE2ODAwMCwgMDEzOSAocjEgICAg
QU1EIEFtZFRhYmxlICAgICAgICAxIElOVEwgMjAxMjA5MTMpDQooWEVOKSBbMDAwMDAwMjNkNWQz
MzE0NF0gQUNQSTogU1NEVCBDQzE2NzAwMCwgMDIyNyAocjEgICAgQU1EIEFtZFRhYmxlICAgICAg
ICAxIElOVEwgMjAxMjA5MTMpDQooWEVOKSBbMDAwMDAwMjNkOGIyMWY2OV0gQUNQSTogU1NEVCBD
QzE2NjAwMCwgMEQzNyAocjEgICAgQU1EIEFtZFRhYmxlICAgICAgICAxIElOVEwgMjAxMjA5MTMp
DQooWEVOKSBbMDAwMDAwMjNkYjkxMjQzNl0gQUNQSTogU1NEVCBDQzE2NDAwMCwgMTBBNSAocjEg
ICAgQU1EIEFtZFRhYmxlICAgICAgICAxIElOVEwgMjAxMjA5MTMpDQooWEVOKSBbMDAwMDAwMjNk
ZTcwMDZjZF0gQUNQSTogU1NEVCBDQzE2MDAwMCwgMzBDOCAocjEgICAgQU1EIEFtZFRhYmxlICAg
ICAgICAxIElOVEwgMjAxMjA5MTMpDQooWEVOKSBbMDAwMDAwMjNlMTRlZjViZF0gQUNQSTogV1NN
VCBDQzE1RjAwMCwgMDAyOCAocjEgQUxBU0tBICAgQSBNIEkgICAxMDcyMDA5IEFNSSAgICAgMTAw
MTMpDQooWEVOKSBbMDAwMDAwMjNlNDJkZGY3OF0gQUNQSTogQVBJQyBDQzE1RTAwMCwgMDBERSAo
cjMgQUxBU0tBICAgQSBNIEkgICAxMDcyMDA5IEFNSSAgICAgMTAwMTMpDQooWEVOKSBbMDAwMDAw
MjNlNzBjZTUwZl0gQUNQSTogU1NEVCBDQzE1RDAwMCwgMDA3RCAocjEgICAgQU1EIEFtZFRhYmxl
ICAgICAgICAxIElOVEwgMjAxMjA5MTMpDQooWEVOKSBbMDAwMDAwMjNlOWViZDFmNl0gQUNQSTog
U1NEVCBDQzE1QzAwMCwgMDUxNyAocjEgICAgQU1EIEFtZFRhYmxlICAgICAgICAxIElOVEwgMjAx
MjA5MTMpDQooWEVOKSBbMDAwMDAwMjNlY2NhYzAxYl0gQUNQSTogRlBEVCBDQzE1QjAwMCwgMDA0
NCAocjEgQUxBU0tBICAgQSBNIEkgICAxMDcyMDA5IEFNSSAgIDEwMDAwMTMpDQooWEVOKSBbMDAw
MDAwMjNlZmE5YjUwYl0gQUNQSTogQkdSVCBDQzE3MDAwMCwgMDAzOCAocjEgQUxBU0tBICAgQSBN
IEkgICAxMDcyMDA5IEFNSSAgICAgMTAwMTMpDQooWEVOKSBbMDAwMDAwMjNmMjg4YWZlMF0gU3lz
dGVtIFJBTTogMzIxNjhNQiAoMzI5NDA2NTZrQikNCihYRU4pIFswMDAwMDAyM2Y4OWZkZjkyXSBO
byBOVU1BIGNvbmZpZ3VyYXRpb24gZm91bmQNCihYRU4pIFswMDAwMDAyM2ZhM2QzMzJiXSBGYWtp
bmcgYSBub2RlIGF0IDAwMDAwMDAwMDAwMDAwMDAtMDAwMDAwMDgwZjM0MDAwMA0KKFhFTikgWzAw
MDAwMDI0MDRkYjA4Y2FdIERvbWFpbiBoZWFwIGluaXRpYWxpc2VkDQooWEVOKSBbMDAwMDAwMjQw
Nzk1NTkwNl0gU01CSU9TIDMuMiBwcmVzZW50Lg0KKFhFTikgWzAwMDAwMDI0MDhmNTQ3YzFdIFVz
aW5nIEFQSUMgZHJpdmVyIGRlZmF1bHQNCihYRU4pIFswMDAwMDAyNDBhODM1Y2IzXSBBQ1BJOiBQ
TS1UaW1lciBJTyBQb3J0OiAweDgwOCAoMzIgYml0cykNCihYRU4pIFswMDAwMDAyNDBjN2NhNjEx
XSBBQ1BJOiB2NSBTTEVFUCBJTkZPOiBjb250cm9sWzA6MF0sIHN0YXR1c1swOjBdDQooWEVOKSBb
MDAwMDAwMjQwZWFiOTE1OV0gQUNQSTogU0xFRVAgSU5GTzogcG0xeF9jbnRbMTo4MDQsMTowXSwg
cG0xeF9ldnRbMTo4MDAsMTowXQ0KKFhFTikgWzAwMDAwMDI0MTEzNjRkNWJdIEFDUEk6IDMyLzY0
WCBGQUNTIGFkZHJlc3MgbWlzbWF0Y2ggaW4gRkFEVCAtIGNjNmMwMDAwLzAwMDAwMDAwMDAwMDAw
MDAsIHVzaW5nIDMyDQooWEVOKSBbMDAwMDAwMjQxNDY5NjIzMl0gQUNQSTogICAgICAgICAgICAg
d2FrZXVwX3ZlY1tjYzZjMDAwY10sIHZlY19zaXplWzIwXQ0KKFhFTikgWzAwMDAwMDI0MTZjNjM0
MjRdIEFDUEk6IExvY2FsIEFQSUMgYWRkcmVzcyAweGZlZTAwMDAwDQooWEVOKSBbMDAwMDAwMjQx
OGEwZGE0MV0gT3ZlcnJpZGluZyBBUElDIGRyaXZlciB3aXRoIGJpZ3NtcA0KKFhFTikgWzAwMDAw
MDI0MWE3M2YyNTJdIEFDUEk6IElPQVBJQyAoaWRbMHgxMV0gYWRkcmVzc1sweGZlYzAwMDAwXSBn
c2lfYmFzZVswXSkNCihYRU4pIFswMDAwMDAyNDFjZTdhZWZjXSBJT0FQSUNbMF06IGFwaWNfaWQg
MTcsIHZlcnNpb24gMzMsIGFkZHJlc3MgMHhmZWMwMDAwMCwgR1NJIDAtMjMNCihYRU4pIFswMDAw
MDAyNDFmOThhNTVkXSBBQ1BJOiBJT0FQSUMgKGlkWzB4MTJdIGFkZHJlc3NbMHhmZWMwMTAwMF0g
Z3NpX2Jhc2VbMjRdKQ0KKFhFTikgWzAwMDAwMDI0MjIxNDIyZjFdIElPQVBJQ1sxXTogYXBpY19p
ZCAxOCwgdmVyc2lvbiAzMywgYWRkcmVzcyAweGZlYzAxMDAwLCBHU0kgMjQtNTUNCihYRU4pIFsw
MDAwMDAyNDI0Y2NjZWNhXSBBQ1BJOiBJTlRfU1JDX09WUiAoYnVzIDAgYnVzX2lycSAwIGdsb2Jh
bF9pcnEgMiBkZmwgZGZsKQ0KKFhFTikgWzAwMDAwMDI0Mjc0ODJkYWNdIEFDUEk6IElOVF9TUkNf
T1ZSIChidXMgMCBidXNfaXJxIDkgZ2xvYmFsX2lycSA5IGxvdyBsZXZlbCkNCihYRU4pIFswMDAw
MDAyNDI5ZDJmNjA3XSBBQ1BJOiBJUlEwIHVzZWQgYnkgb3ZlcnJpZGUuDQooWEVOKSBbMDAwMDAw
MjQyYjc4MDRhNl0gQUNQSTogSVJRMiB1c2VkIGJ5IG92ZXJyaWRlLg0KKFhFTikgWzAwMDAwMDI0
MmQxZDA3YjddIEFDUEk6IElSUTkgdXNlZCBieSBvdmVycmlkZS4NCihYRU4pIFswMDAwMDAyNDJl
YzIxYmU0XSBBQ1BJOiBIUEVUIGlkOiAweDEwMjI4MjAxIGJhc2U6IDB4ZmVkMDAwMDANCihYRU4p
IFswMDAwMDAyNDMwZDI2YjgyXSBQQ0k6IE1DRkcgY29uZmlndXJhdGlvbiAwOiBiYXNlIGYwMDAw
MDAwIHNlZ21lbnQgMDAwMCBidXNlcyAwMCAtIDdmDQooWEVOKSBbMDAwMDAwMjQzM2ExZmI0N10g
UENJOiBNQ0ZHIGFyZWEgYXQgZjAwMDAwMDAgcmVzZXJ2ZWQgaW4gRTgyMA0KKFhFTikgWzAwMDAw
MDI0MzViOWY1ZjJdIFBDSTogVXNpbmcgTUNGRyBmb3Igc2VnbWVudCAwMDAwIGJ1cyAwMC03Zg0K
KFhFTikgWzAwMDAwMDI0MzdjYTE2NTNdIEFDUEk6IEJHUlQ6IGludmFsaWRhdGluZyB2MSBpbWFn
ZSBhdCAweGM3N2E3MDE4DQooWEVOKSBbMDAwMDAwMjQzYTAwYjAwZV0gVXNpbmcgQUNQSSAoTUFE
VCkgZm9yIFNNUCBjb25maWd1cmF0aW9uIGluZm9ybWF0aW9uDQooWEVOKSBbMDAwMDAwMjQzYzU1
Y2Q2Zl0gU01QOiBBbGxvd2luZyAxNiBDUFVzICgwIGhvdHBsdWcgQ1BVcykNCihYRU4pIFswMDAw
MDAyNDNlNDc2N2FjXSBJUlEgbGltaXRzOiA1NiBHU0ksIDMyNzIgTVNJL01TSS1YDQooWEVOKSBb
MDAwMDAwMjQ0MDFhNzlkOF0gQ1BVMDogMTQwMCAuLi4gMjkwMCBNSHoNCihYRU4pIFswMDAwMDAy
NDQxOTkzZWNlXSB4c3RhdGU6IHNpemU6IDB4MzgwIGFuZCBzdGF0ZXM6IDB4MjA3DQooWEVOKSBb
MDAwMDAwMjQ0MzgzM2MwYV0gQ1BVMDogQU1EIEZhbTE3aCBtYWNoaW5lIGNoZWNrIHJlcG9ydGlu
ZyBlbmFibGVkDQooWEVOKSBbMDAwMDAwMjQ0NWMxNTUxOF0gU3BlY3VsYXRpdmUgbWl0aWdhdGlv
biBmYWNpbGl0aWVzOg0KKFhFTikgWzAwMDAwMDI0NDc5NDRiNDldICAgSGFyZHdhcmUgaGludHM6
IElCUlNfRkFTVCBJQlJTX1NBTUVfTU9ERQ0KKFhFTikgWzAwMDAwMDI0NDlhNGE1MzZdICAgSGFy
ZHdhcmUgZmVhdHVyZXM6IElCUEIgSUJSUyBTVElCUCBTU0JEDQooWEVOKSBbMDAwMDAwMjQ0YmFk
MmY5Y10gICBDb21waWxlZC1pbiBzdXBwb3J0OiBJTkRJUkVDVF9USFVOSyBTSEFET1dfUEFHSU5H
IEhBUkRFTl9BUlJBWSBIQVJERU5fQlJBTkNIIEhBUkRFTl9HVUVTVF9BQ0NFU1MgSEFSREVOX0xP
Q0sNCihYRU4pIFswMDAwMDAyNDRmYzYwZDIzXSAgIFhlbiBzZXR0aW5nczogQlRJLVRodW5rOiBS
RVRQT0xJTkUsIFNQRUNfQ1RSTDogSUJSUy0gU1RJQlArIFNTQkQtLCBPdGhlcjogQlJBTkNIX0hB
UkRFTg0KKFhFTikgWzAwMDAwMDI0NTMzZTBkNmJdICAgU3VwcG9ydCBmb3IgSFZNIFZNczogTVNS
X1NQRUNfQ1RSTCBNU1JfVklSVF9TUEVDX0NUUkwgUlNCIElCUEItZW50cnkNCihYRU4pIFswMDAw
MDAyNDU2MjQ5ZDcwXSAgIFN1cHBvcnQgZm9yIFBWIFZNczogSUJQQi1lbnRyeQ0KKFhFTikgWzAw
MDAwMDI0NTdlODZiZGNdICAgWFBUSSAoNjQtYml0IFBWIG9ubHkpOiBEb20wIGRpc2FibGVkLCBE
b21VIGRpc2FibGVkICh3aXRob3V0IFBDSUQpDQooWEVOKSBbMDAwMDAwMjQ1YWJmOTZkM10gICBQ
ViBMMVRGIHNoYWRvd2luZzogRG9tMCBkaXNhYmxlZCwgRG9tVSBkaXNhYmxlZA0KKFhFTikgWzAw
MDAwMDI0NWQwNTg5NjBdIFVzaW5nIHNjaGVkdWxlcjogbnVsbCBTY2hlZHVsZXIgKG51bGwpDQoo
WEVOKSBbMDAwMDAwMjQ1ZWY3MmMzOV0gSW5pdGlhbGl6aW5nIG51bGwgc2NoZWR1bGVyDQooWEVO
KSBbMDAwMDAwMjQ2MDk0ODZiYl0gV0FSTklORzogVGhpcyBpcyBleHBlcmltZW50YWwgc29mdHdh
cmUgaW4gZGV2ZWxvcG1lbnQuDQooWEVOKSBbMDAwMDAwMjQ2MzAwOTEzNl0gVXNlIGF0IHlvdXIg
b3duIHJpc2suDQooWEVOKSBbMDAwMDAwMjQ2ZDA0ZTZlZF0gUGxhdGZvcm0gdGltZXIgaXMgMTQu
MzE4TUh6IEhQRVQNCihYRU4pIFsgICAgMS42Nzk1MTVdIERldGVjdGVkIDI4OTQuNTYxIE1IeiBw
cm9jZXNzb3IuDQooWEVOKSBbICAgIDEuNjkwNTIyXSBGcmVlZCAxMDA4a0IgdW51c2VkIEJTUyBt
ZW1vcnkNCihYRU4pIFsgICAgMS42OTk3MDldIEVGSSBtZW1vcnkgbWFwOg0KKFhFTikgWyAgICAx
LjcwNjI5N10gIDAwMDAwMDAwMDAwMDAtMDAwMDAwMDAwM2ZmZiB0eXBlPTIgYXR0cj0wMDAwMDAw
MDAwMDAwMDBmDQooWEVOKSBbICAgIDEuNzIwMTY1XSAgMDAwMDAwMDAwNDAwMC0wMDAwMDAwMDhl
ZmZmIHR5cGU9NyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgMS43MzQwMzFdICAw
MDAwMDAwMDhmMDAwLTAwMDAwMDAwOWVmZmYgdHlwZT0yIGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0K
KFhFTikgWyAgICAxLjc0Nzg5N10gIDAwMDAwMDAwOWYwMDAtMDAwMDAwMDA5ZmZmZiB0eXBlPTQg
YXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDEuNzYxNzYyXSAgMDAwMDAwMDEwMDAw
MC0wMDAwMDAwZTMxZmZmIHR5cGU9MiBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAg
MS43NzU2MjldICAwMDAwMDAwZTMyMDAwLTAwMDAwMDBmZmZmZmYgdHlwZT03IGF0dHI9MDAwMDAw
MDAwMDAwMDAwZg0KKFhFTikgWyAgICAxLjc4OTQ5N10gIDAwMDAwMDEwMDAwMDAtMDAwMDAwMTAx
ZmZmZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDEuODAzMzY0XSAg
MDAwMDAwMTAyMDAwMC0wMDAwMDA5YmZlZmZmIHR5cGU9NyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYN
CihYRU4pIFsgICAgMS44MTcyMzBdICAwMDAwMDA5YmZmMDAwLTAwMDAwMDlmZmZmZmYgdHlwZT0w
IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICAxLjgzMTA5Nl0gIDAwMDAwMGEwMDAw
MDAtMDAwMDAwYTFmZmZmZiB0eXBlPTcgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAg
IDEuODQ0OTYyXSAgMDAwMDAwYTIwMDAwMC0wMDAwMDBhMjBjZmZmIHR5cGU9MTAgYXR0cj0wMDAw
MDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDEuODU5MDAyXSAgMDAwMDAwYTIwZDAwMC0wMDAwMDE2
YzQwZmZmIHR5cGU9MiBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgMS44NzI4NzBd
ICAwMDAwMDE2YzQxMDAwLTAwMDAwYzRlZTlmZmYgdHlwZT03IGF0dHI9MDAwMDAwMDAwMDAwMDAw
Zg0KKFhFTikgWyAgICAxLjg4NjczNl0gIDAwMDAwYzRlZWEwMDAtMDAwMDBjNmZmZWZmZiB0eXBl
PTEgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDEuOTAwNjA0XSAgMDAwMDBjNmZm
ZjAwMC0wMDAwMGM3MTE0ZmZmIHR5cGU9NyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsg
ICAgMS45MTQ0NzBdICAwMDAwMGM3MTE1MDAwLTAwMDAwYzcxMWVmZmYgdHlwZT00IGF0dHI9MDAw
MDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICAxLjkyODMzNl0gIDAwMDAwYzcxMWYwMDAtMDAwMDBj
NzE1OWZmZiB0eXBlPTMgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDEuOTQyMjAz
XSAgMDAwMDBjNzE1YTAwMC0wMDAwMGM3MTVhZmZmIHR5cGU9NyBhdHRyPTAwMDAwMDAwMDAwMDAw
MGYNCihYRU4pIFsgICAgMS45NTYwNzFdICAwMDAwMGM3MTViMDAwLTAwMDAwYzcxNWNmZmYgdHlw
ZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICAxLjk2OTkzNV0gIDAwMDAwYzcx
NWQwMDAtMDAwMDBjNzE2OGZmZiB0eXBlPTMgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBb
ICAgIDEuOTgzODAzXSAgMDAwMDBjNzE2OTAwMC0wMDAwMGM3MTk0ZmZmIHR5cGU9NCBhdHRyPTAw
MDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgMS45OTc2NzBdICAwMDAwMGM3MTk1MDAwLTAwMDAw
YzcxYTJmZmYgdHlwZT0zIGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICAyLjAxMTUz
Nl0gIDAwMDAwYzcxYTMwMDAtMDAwMDBjNzFkY2ZmZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAwMDAw
MDBmDQooWEVOKSBbICAgIDIuMDI1NDA0XSAgMDAwMDBjNzFkZDAwMC0wMDAwMGM3MWRkZmZmIHR5
cGU9NyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgMi4wMzkyNzFdICAwMDAwMGM3
MWRlMDAwLTAwMDAwYzcxZTBmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikg
WyAgICAyLjA1MzEzNV0gIDAwMDAwYzcxZTEwMDAtMDAwMDBjNzFlMWZmZiB0eXBlPTcgYXR0cj0w
MDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDIuMDY3MDA0XSAgMDAwMDBjNzFlMjAwMC0wMDAw
MGM3MWUzZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgMi4wODA4
NzBdICAwMDAwMGM3MWU0MDAwLTAwMDAwYzcxZTVmZmYgdHlwZT03IGF0dHI9MDAwMDAwMDAwMDAw
MDAwZg0KKFhFTikgWyAgICAyLjA5NDczNV0gIDAwMDAwYzcxZTYwMDAtMDAwMDBjNzFlN2ZmZiB0
eXBlPTQgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDIuMTA4NjA0XSAgMDAwMDBj
NzFlODAwMC0wMDAwMGM3MWU4ZmZmIHR5cGU9NyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4p
IFsgICAgMi4xMjI0NzFdICAwMDAwMGM3MWU5MDAwLTAwMDAwYzcxZTlmZmYgdHlwZT00IGF0dHI9
MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICAyLjEzNjMzN10gIDAwMDAwYzcxZWEwMDAtMDAw
MDBjNzFlYWZmZiB0eXBlPTcgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDIuMTUw
MjA1XSAgMDAwMDBjNzFlYjAwMC0wMDAwMGM3MWViZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAw
MDAwMGYNCihYRU4pIFsgICAgMi4xNjQwNzBdICAwMDAwMGM3MWVjMDAwLTAwMDAwYzcxZWNmZmYg
dHlwZT03IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICAyLjE3NzkzN10gIDAwMDAw
YzcxZWQwMDAtMDAwMDBjNzFlZWZmZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVO
KSBbICAgIDIuMTkxODAyXSAgMDAwMDBjNzFlZjAwMC0wMDAwMGM3MWYwZmZmIHR5cGU9NyBhdHRy
PTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgMi4yMDU2NzFdICAwMDAwMGM3MWYxMDAwLTAw
MDAwYzcxZjNmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICAyLjIx
OTUzN10gIDAwMDAwYzcxZjQwMDAtMDAwMDBjNzFmZWZmZiB0eXBlPTcgYXR0cj0wMDAwMDAwMDAw
MDAwMDBmDQooWEVOKSBbICAgIDIuMjMzNDAzXSAgMDAwMDBjNzFmZjAwMC0wMDAwMGM3MjAxZmZm
IHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgMi4yNDcyNjldICAwMDAw
MGM3MjAyMDAwLTAwMDAwYzcyMDRmZmYgdHlwZT03IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhF
TikgWyAgICAyLjI2MTEzOF0gIDAwMDAwYzcyMDUwMDAtMDAwMDBjNzIwNWZmZiB0eXBlPTQgYXR0
cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDIuMjc1MDAzXSAgMDAwMDBjNzIwNjAwMC0w
MDAwMGM3MjA2ZmZmIHR5cGU9NyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgMi4y
ODg4NjldICAwMDAwMGM3MjA3MDAwLTAwMDAwYzcyMDdmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAw
MDAwMDAwZg0KKFhFTikgWyAgICAyLjMwMjczN10gIDAwMDAwYzcyMDgwMDAtMDAwMDBjNzIwOWZm
ZiB0eXBlPTcgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDIuMzE2NjAzXSAgMDAw
MDBjNzIwYTAwMC0wMDAwMGM3MjBiZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihY
RU4pIFsgICAgMi4zMzA0NjldICAwMDAwMGM3MjBjMDAwLTAwMDAwYzcyMGNmZmYgdHlwZT03IGF0
dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICAyLjM0NDMzNV0gIDAwMDAwYzcyMGQwMDAt
MDAwMDBjNzIwZGZmZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDIu
MzU4MjAyXSAgMDAwMDBjNzIwZTAwMC0wMDAwMGM3MjBlZmZmIHR5cGU9NyBhdHRyPTAwMDAwMDAw
MDAwMDAwMGYNCihYRU4pIFsgICAgMi4zNzIwNjldICAwMDAwMGM3MjBmMDAwLTAwMDAwYzcyMTBm
ZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICAyLjM4NTkzN10gIDAw
MDAwYzcyMTEwMDAtMDAwMDBjNzIxMWZmZiB0eXBlPTcgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQoo
WEVOKSBbICAgIDIuMzk5ODAzXSAgMDAwMDBjNzIxMjAwMC0wMDAwMGM3MjEyZmZmIHR5cGU9NCBh
dHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgMi40MTM2NzBdICAwMDAwMGM3MjEzMDAw
LTAwMDAwYzcyMTRmZmYgdHlwZT03IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICAy
LjQyNzUzNV0gIDAwMDAwYzcyMTUwMDAtMDAwMDBjNzIxNWZmZiB0eXBlPTQgYXR0cj0wMDAwMDAw
MDAwMDAwMDBmDQooWEVOKSBbICAgIDIuNDQxNDA0XSAgMDAwMDBjNzIxNjAwMC0wMDAwMGM3MmMy
ZmZmIHR5cGU9NyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgMi40NTUyNzBdICAw
MDAwMGM3MmMzMDAwLTAwMDAwYzc3ZTVmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0K
KFhFTikgWyAgICAyLjQ2OTEzNl0gIDAwMDAwYzc3ZTYwMDAtMDAwMDBjNzgzOGZmZiB0eXBlPTcg
YXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDIuNDgzMDAyXSAgMDAwMDBjNzgzOTAw
MC0wMDAwMGM3ODVhZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAg
Mi40OTY4NzFdICAwMDAwMGM3ODViMDAwLTAwMDAwYzc5ZDJmZmYgdHlwZT0zIGF0dHI9MDAwMDAw
MDAwMDAwMDAwZg0KKFhFTikgWyAgICAyLjUxMDczNl0gIDAwMDAwYzc5ZDMwMDAtMDAwMDBjN2Ez
ZGZmZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDIuNTI0NjAzXSAg
MDAwMDBjN2EzZTAwMC0wMDAwMGM3YTQyZmZmIHR5cGU9NyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYN
CihYRU4pIFsgICAgMi41Mzg0NjldICAwMDAwMGM3YTQzMDAwLTAwMDAwYzdhNDNmZmYgdHlwZT00
IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICAyLjU1MjMzNV0gIDAwMDAwYzdhNDQw
MDAtMDAwMDBjN2E0OWZmZiB0eXBlPTcgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAg
IDIuNTY2MjA1XSAgMDAwMDBjN2E0YTAwMC0wMDAwMGM3YTRhZmZmIHR5cGU9NCBhdHRyPTAwMDAw
MDAwMDAwMDAwMGYNCihYRU4pIFsgICAgMi41ODAwNzFdICAwMDAwMGM3YTRiMDAwLTAwMDAwYzdh
NGJmZmYgdHlwZT03IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICAyLjU5MzkzN10g
IDAwMDAwYzdhNGMwMDAtMDAwMDBjN2E0Y2ZmZiB0eXBlPTIgYXR0cj0wMDAwMDAwMDAwMDAwMDBm
DQooWEVOKSBbICAgIDIuNjA3ODAzXSAgMDAwMDBjN2E0ZDAwMC0wMDAwMGM3YTVkZmZmIHR5cGU9
MyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgMi42MjE2NzBdICAwMDAwMGM3YTVl
MDAwLTAwMDAwYzdhOGZmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAg
ICAyLjYzNTUzOF0gIDAwMDAwYzdhOTAwMDAtMDAwMDBjN2E5MGZmZiB0eXBlPTcgYXR0cj0wMDAw
MDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDIuNjQ5NDA1XSAgMDAwMDBjN2E5MTAwMC0wMDAwMGM3
YTk1ZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgMi42NjMyNzBd
ICAwMDAwMGM3YTk2MDAwLTAwMDAwYzdhOTdmZmYgdHlwZT03IGF0dHI9MDAwMDAwMDAwMDAwMDAw
Zg0KKFhFTikgWyAgICAyLjY3NzEzNl0gIDAwMDAwYzdhOTgwMDAtMDAwMDBjN2FlN2ZmZiB0eXBl
PTQgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDIuNjkxMDAyXSAgMDAwMDBjN2Fl
ODAwMC0wMDAwMGM3YjA3ZmZmIHR5cGU9MyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsg
ICAgMi43MDQ4NzFdICAwMDAwMGM3YjA4MDAwLTAwMDAwYzdiMDhmZmYgdHlwZT00IGF0dHI9MDAw
MDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICAyLjcxODczN10gIDAwMDAwYzdiMDkwMDAtMDAwMDBj
N2IxMGZmZiB0eXBlPTMgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDIuNzMyNjAy
XSAgMDAwMDBjN2IxMTAwMC0wMDAwMGM3YjE4ZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAwMDAw
MGYNCihYRU4pIFsgICAgMi43NDY0NzFdICAwMDAwMGM3YjE5MDAwLTAwMDAwYzdiMzBmZmYgdHlw
ZT0zIGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICAyLjc2MDMzN10gIDAwMDAwYzdi
MzEwMDAtMDAwMDBjN2IzMmZmZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBb
ICAgIDIuNzc0MjAzXSAgMDAwMDBjN2IzMzAwMC0wMDAwMGM3YjU1ZmZmIHR5cGU9MyBhdHRyPTAw
MDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgMi43ODgwNzBdICAwMDAwMGM3YjU2MDAwLTAwMDAw
YzdiNjBmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICAyLjgwMTkz
Nl0gIDAwMDAwYzdiNjEwMDAtMDAwMDBjN2I4Y2ZmZiB0eXBlPTMgYXR0cj0wMDAwMDAwMDAwMDAw
MDBmDQooWEVOKSBbICAgIDIuODE1ODAyXSAgMDAwMDBjN2I4ZDAwMC0wMDAwMGM5MjcwZmZmIHR5
cGU9NCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgMi44Mjk2NzJdICAwMDAwMGM5
MjcxMDAwLTAwMDAwYzkyZDdmZmYgdHlwZT0zIGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikg
WyAgICAyLjg0MzUzN10gIDAwMDAwYzkyZDgwMDAtMDAwMDBjOTJkYmZmZiB0eXBlPTQgYXR0cj0w
MDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDIuODU3NDAzXSAgMDAwMDBjOTJkYzAwMC0wMDAw
MGM5MmU1ZmZmIHR5cGU9MyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgMi44NzEy
NzJdICAwMDAwMGM5MmU2MDAwLTAwMDAwYzkzMzBmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAw
MDAwZg0KKFhFTikgWyAgICAyLjg4NTEzOF0gIDAwMDAwYzkzMzEwMDAtMDAwMDBjOTM0YWZmZiB0
eXBlPTMgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDIuODk5MDAzXSAgMDAwMDBj
OTM0YjAwMC0wMDAwMGM5MzRlZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4p
IFsgICAgMi45MTI4NzBdICAwMDAwMGM5MzRmMDAwLTAwMDAwYzkzNmNmZmYgdHlwZT0zIGF0dHI9
MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICAyLjkyNjczNl0gIDAwMDAwYzkzNmQwMDAtMDAw
MDBjOTM2ZGZmZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDIuOTQw
NjA1XSAgMDAwMDBjOTM2ZTAwMC0wMDAwMGM5Mzc0ZmZmIHR5cGU9MyBhdHRyPTAwMDAwMDAwMDAw
MDAwMGYNCihYRU4pIFsgICAgMi45NTQ0NzFdICAwMDAwMGM5Mzc1MDAwLTAwMDAwYzkzN2JmZmYg
dHlwZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICAyLjk2ODMzN10gIDAwMDAw
YzkzN2MwMDAtMDAwMDBjOTM4OWZmZiB0eXBlPTMgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVO
KSBbICAgIDIuOTgyMjAyXSAgMDAwMDBjOTM4YTAwMC0wMDAwMGM5MzhlZmZmIHR5cGU9NCBhdHRy
PTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgMi45OTYwNjldICAwMDAwMGM5MzhmMDAwLTAw
MDAwYzkzOTBmZmYgdHlwZT0zIGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICAzLjAw
OTkzNV0gIDAwMDAwYzkzOTEwMDAtMDAwMDBjOTM5MmZmZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAw
MDAwMDBmDQooWEVOKSBbICAgIDMuMDIzODA1XSAgMDAwMDBjOTM5MzAwMC0wMDAwMGM5Mzk5ZmZm
IHR5cGU9MyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgMy4wMzc2NzJdICAwMDAw
MGM5MzlhMDAwLTAwMDAwYzkzOWJmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhF
TikgWyAgICAzLjA1MTUzOF0gIDAwMDAwYzkzOWMwMDAtMDAwMDBjOTM5Y2ZmZiB0eXBlPTMgYXR0
cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDMuMDY1NDA0XSAgMDAwMDBjOTM5ZDAwMC0w
MDAwMGM5M2EwZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgMy4w
NzkyNzBdICAwMDAwMGM5M2ExMDAwLTAwMDAwYzkzYjdmZmYgdHlwZT0zIGF0dHI9MDAwMDAwMDAw
MDAwMDAwZg0KKFhFTikgWyAgICAzLjA5MzEzNl0gIDAwMDAwYzkzYjgwMDAtMDAwMDBjOTNiOWZm
ZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDMuMTA3MDA1XSAgMDAw
MDBjOTNiYTAwMC0wMDAwMGM5M2JiZmZmIHR5cGU9MyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihY
RU4pIFsgICAgMy4xMjA4NzFdICAwMDAwMGM5M2JjMDAwLTAwMDAwYzkzYmNmZmYgdHlwZT00IGF0
dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICAzLjEzNDczN10gIDAwMDAwYzkzYmQwMDAt
MDAwMDBjOTNjYmZmZiB0eXBlPTMgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDMu
MTQ4NjA0XSAgMDAwMDBjOTNjYzAwMC0wMDAwMGM5M2Q0ZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAw
MDAwMDAwMGYNCihYRU4pIFsgICAgMy4xNjI0NzJdICAwMDAwMGM5M2Q1MDAwLTAwMDAwYzkzZDZm
ZmYgdHlwZT0zIGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICAzLjE3NjMzOF0gIDAw
MDAwYzkzZDcwMDAtMDAwMDBjOTNkOGZmZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQoo
WEVOKSBbICAgIDMuMTkwMjA1XSAgMDAwMDBjOTNkOTAwMC0wMDAwMGM5M2Q5ZmZmIHR5cGU9MyBh
dHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgMy4yMDQwNjldICAwMDAwMGM5M2RhMDAw
LTAwMDAwYzkzZGFmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICAz
LjIxNzkzNl0gIDAwMDAwYzkzZGIwMDAtMDAwMDBjOTNkYmZmZiB0eXBlPTMgYXR0cj0wMDAwMDAw
MDAwMDAwMDBmDQooWEVOKSBbICAgIDMuMjMxODAzXSAgMDAwMDBjOTNkYzAwMC0wMDAwMGM5NTI5
ZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgMy4yNDU2NjldICAw
MDAwMGM5NTJhMDAwLTAwMDAwYzk1MzNmZmYgdHlwZT0zIGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0K
KFhFTikgWyAgICAzLjI1OTUzOF0gIDAwMDAwYzk1MzQwMDAtMDAwMDBjOTUzNWZmZiB0eXBlPTQg
YXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDMuMjczNDA1XSAgMDAwMDBjOTUzNjAw
MC0wMDAwMGM5NTM5ZmZmIHR5cGU9MyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAg
My4yODcyNzFdICAwMDAwMGM5NTNhMDAwLTAwMDAwYzk1M2RmZmYgdHlwZT00IGF0dHI9MDAwMDAw
MDAwMDAwMDAwZg0KKFhFTikgWyAgICAzLjMwMTEzN10gIDAwMDAwYzk1M2UwMDAtMDAwMDBjOTU0
NWZmZiB0eXBlPTMgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDMuMzE1MDA0XSAg
MDAwMDBjOTU0NjAwMC0wMDAwMGM5NTQ3ZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYN
CihYRU4pIFsgICAgMy4zMjg4NzBdICAwMDAwMGM5NTQ4MDAwLTAwMDAwYzk1NGJmZmYgdHlwZT0z
IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICAzLjM0MjczNl0gIDAwMDAwYzk1NGMw
MDAtMDAwMDBjOTU0ZGZmZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAg
IDMuMzU2NjAzXSAgMDAwMDBjOTU0ZTAwMC0wMDAwMGM5NTU2ZmZmIHR5cGU9MyBhdHRyPTAwMDAw
MDAwMDAwMDAwMGYNCihYRU4pIFsgICAgMy4zNzA0NjldICAwMDAwMGM5NTU3MDAwLTAwMDAwYzk1
NWFmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICAzLjM4NDMzNV0g
IDAwMDAwYzk1NWIwMDAtMDAwMDBjOTU1Y2ZmZiB0eXBlPTMgYXR0cj0wMDAwMDAwMDAwMDAwMDBm
DQooWEVOKSBbICAgIDMuMzk4MjA1XSAgMDAwMDBjOTU1ZDAwMC0wMDAwMGM5NTVmZmZmIHR5cGU9
NCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgMy40MTIwNzJdICAwMDAwMGM5NTYw
MDAwLTAwMDAwYzk1NmNmZmYgdHlwZT0zIGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAg
ICAzLjQyNTkzOF0gIDAwMDAwYzk1NmQwMDAtMDAwMDBjOTdmZmZmZiB0eXBlPTQgYXR0cj0wMDAw
MDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDMuNDM5ODA0XSAgMDAwMDBjOTgwMDAwMC0wMDAwMGM5
ODFhZmZmIHR5cGU9MyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgMy40NTM2NzBd
ICAwMDAwMGM5ODFiMDAwLTAwMDAwYzk4MmFmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAw
Zg0KKFhFTikgWyAgICAzLjQ2NzUzNV0gIDAwMDAwYzk4MmIwMDAtMDAwMDBjOTgzZGZmZiB0eXBl
PTMgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDMuNDgxNDA1XSAgMDAwMDBjOTgz
ZTAwMC0wMDAwMGM5ODNmZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsg
ICAgMy40OTUyNzFdICAwMDAwMGM5ODQwMDAwLTAwMDAwYzk4NDNmZmYgdHlwZT0zIGF0dHI9MDAw
MDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICAzLjUwOTEzN10gIDAwMDAwYzk4NDQwMDAtMDAwMDBj
OTg0OGZmZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDMuNTIzMDAy
XSAgMDAwMDBjOTg0OTAwMC0wMDAwMGM5ODViZmZmIHR5cGU9MyBhdHRyPTAwMDAwMDAwMDAwMDAw
MGYNCihYRU4pIFsgICAgMy41MzY4NzJdICAwMDAwMGM5ODVjMDAwLTAwMDAwYzk4NjBmZmYgdHlw
ZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICAzLjU1MDczN10gIDAwMDAwYzk4
NjEwMDAtMDAwMDBjOTg2MWZmZiB0eXBlPTMgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBb
ICAgIDMuNTY0NjAzXSAgMDAwMDBjOTg2MjAwMC0wMDAwMGM5ODYyZmZmIHR5cGU9NCBhdHRyPTAw
MDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgMy41Nzg0NjldICAwMDAwMGM5ODYzMDAwLTAwMDAw
Yzk4NjNmZmYgdHlwZT0zIGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICAzLjU5MjMz
OF0gIDAwMDAwYzk4NjQwMDAtMDAwMDBjOTg2NmZmZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAwMDAw
MDBmDQooWEVOKSBbICAgIDMuNjA2MjA0XSAgMDAwMDBjOTg2NzAwMC0wMDAwMGM5ODc0ZmZmIHR5
cGU9MyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgMy42MjAwNzBdICAwMDAwMGM5
ODc1MDAwLTAwMDAwYzk4NzVmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikg
WyAgICAzLjYzMzkzNl0gIDAwMDAwYzk4NzYwMDAtMDAwMDBjOTg3NmZmZiB0eXBlPTMgYXR0cj0w
MDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDMuNjQ3ODA0XSAgMDAwMDBjOTg3NzAwMC0wMDAw
MGM5ODgyZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgMy42NjE2
NzFdICAwMDAwMGM5ODgzMDAwLTAwMDAwYzk4OGJmZmYgdHlwZT0zIGF0dHI9MDAwMDAwMDAwMDAw
MDAwZg0KKFhFTikgWyAgICAzLjY3NTUzN10gIDAwMDAwYzk4OGMwMDAtMDAwMDBjOTg4ZWZmZiB0
eXBlPTQgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDMuNjg5NDA0XSAgMDAwMDBj
OTg4ZjAwMC0wMDAwMGM5ODk0ZmZmIHR5cGU9MyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4p
IFsgICAgMy43MDMyNzBdICAwMDAwMGM5ODk1MDAwLTAwMDAwYzk4ZTFmZmYgdHlwZT00IGF0dHI9
MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICAzLjcxNzEzNl0gIDAwMDAwYzk4ZTIwMDAtMDAw
MDBjOTkwZmZmZiB0eXBlPTMgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDMuNzMx
MDA1XSAgMDAwMDBjOTkxMDAwMC0wMDAwMGM5OTExZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAw
MDAwMGYNCihYRU4pIFsgICAgMy43NDQ4NzFdICAwMDAwMGM5OTEyMDAwLTAwMDAwYzk5MTNmZmYg
dHlwZT0zIGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICAzLjc1ODczN10gIDAwMDAw
Yzk5MTQwMDAtMDAwMDBjOTkxNWZmZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVO
KSBbICAgIDMuNzcyNjA0XSAgMDAwMDBjOTkxNjAwMC0wMDAwMGM5OTJkZmZmIHR5cGU9MyBhdHRy
PTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgMy43ODY0NzBdICAwMDAwMGM5OTJlMDAwLTAw
MDAwYzk5MzlmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICAzLjgw
MDMzNl0gIDAwMDAwYzk5M2EwMDAtMDAwMDBjOTk2MGZmZiB0eXBlPTMgYXR0cj0wMDAwMDAwMDAw
MDAwMDBmDQooWEVOKSBbICAgIDMuODE0MjA1XSAgMDAwMDBjOTk2MTAwMC0wMDAwMGM5OTY0ZmZm
IHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgMy44MjgwNzJdICAwMDAw
MGM5OTY1MDAwLTAwMDAwYzk5NmNmZmYgdHlwZT0zIGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhF
TikgWyAgICAzLjg0MTkzOF0gIDAwMDAwYzk5NmQwMDAtMDAwMDBjOTk3NGZmZiB0eXBlPTQgYXR0
cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDMuODU1ODA0XSAgMDAwMDBjOTk3NTAwMC0w
MDAwMGM5OTdlZmZmIHR5cGU9MyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgMy44
Njk2NzBdICAwMDAwMGM5OTdmMDAwLTAwMDAwYzk5ODhmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAw
MDAwMDAwZg0KKFhFTikgWyAgICAzLjg4MzUzNl0gIDAwMDAwYzk5ODkwMDAtMDAwMDBjOTlhZGZm
ZiB0eXBlPTMgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDMuODk3NDA1XSAgMDAw
MDBjOTlhZTAwMC0wMDAwMGM5OWI3ZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihY
RU4pIFsgICAgMy45MTEyNzFdICAwMDAwMGM5OWI4MDAwLTAwMDAwYzk5YjhmZmYgdHlwZT0zIGF0
dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICAzLjkyNTEzN10gIDAwMDAwYzk5YjkwMDAt
MDAwMDBjOTliOWZmZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDMu
OTM5MDAzXSAgMDAwMDBjOTliYTAwMC0wMDAwMGM5OWMxZmZmIHR5cGU9MyBhdHRyPTAwMDAwMDAw
MDAwMDAwMGYNCihYRU4pIFsgICAgMy45NTI4NzJdICAwMDAwMGM5OWMyMDAwLTAwMDAwYzk5YzRm
ZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICAzLjk2NjczNl0gIDAw
MDAwYzk5YzUwMDAtMDAwMDBjOTljNmZmZiB0eXBlPTMgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQoo
WEVOKSBbICAgIDMuOTgwNjA1XSAgMDAwMDBjOTljNzAwMC0wMDAwMGM5OWM3ZmZmIHR5cGU9NCBh
dHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgMy45OTQ0NzFdICAwMDAwMGM5OWM4MDAw
LTAwMDAwYzk5ZDVmZmYgdHlwZT0zIGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICA0
LjAwODMzN10gIDAwMDAwYzk5ZDYwMDAtMDAwMDBjOTlkOWZmZiB0eXBlPTQgYXR0cj0wMDAwMDAw
MDAwMDAwMDBmDQooWEVOKSBbICAgIDQuMDIyMjAzXSAgMDAwMDBjOTlkYTAwMC0wMDAwMGM5OWRm
ZmZmIHR5cGU9MyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgNC4wMzYwNzJdICAw
MDAwMGM5OWUwMDAwLTAwMDAwYzk5ZTVmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0K
KFhFTikgWyAgICA0LjA0OTkzOF0gIDAwMDAwYzk5ZTYwMDAtMDAwMDBjOTllNmZmZiB0eXBlPTMg
YXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDQuMDYzODAzXSAgMDAwMDBjOTllNzAw
MC0wMDAwMGM5OWU4ZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAg
NC4wNzc2NzBdICAwMDAwMGM5OWU5MDAwLTAwMDAwYzk5ZmRmZmYgdHlwZT0zIGF0dHI9MDAwMDAw
MDAwMDAwMDAwZg0KKFhFTikgWyAgICA0LjA5MTUzNl0gIDAwMDAwYzk5ZmUwMDAtMDAwMDBjOTlm
ZWZmZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDQuMTA1NDAyXSAg
MDAwMDBjOTlmZjAwMC0wMDAwMGM5YTAxZmZmIHR5cGU9MyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYN
CihYRU4pIFsgICAgNC4xMTkyNjldICAwMDAwMGM5YTAyMDAwLTAwMDAwYzlhMDJmZmYgdHlwZT00
IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICA0LjEzMzEzNl0gIDAwMDAwYzlhMDMw
MDAtMDAwMDBjOWExMmZmZiB0eXBlPTMgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAg
IDQuMTQ3MDA1XSAgMDAwMDBjOWExMzAwMC0wMDAwMGM5YTE1ZmZmIHR5cGU9NCBhdHRyPTAwMDAw
MDAwMDAwMDAwMGYNCihYRU4pIFsgICAgNC4xNjA4NjldICAwMDAwMGM5YTE2MDAwLTAwMDAwYzlh
MTdmZmYgdHlwZT0zIGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICA0LjE3NDczNl0g
IDAwMDAwYzlhMTgwMDAtMDAwMDBjOWExOWZmZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAwMDAwMDBm
DQooWEVOKSBbICAgIDQuMTg4NjA1XSAgMDAwMDBjOWExYTAwMC0wMDAwMGM5YTJmZmZmIHR5cGU9
MyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgNC4yMDI0NjldICAwMDAwMGM5YTMw
MDAwLTAwMDAwYzlhMzBmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAg
ICA0LjIxNjMzOF0gIDAwMDAwYzlhMzEwMDAtMDAwMDBjOWEzMWZmZiB0eXBlPTMgYXR0cj0wMDAw
MDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDQuMjMwMjA0XSAgMDAwMDBjOWEzMjAwMC0wMDAwMGM5
YTMyZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgNC4yNDQwNzBd
ICAwMDAwMGM5YTMzMDAwLTAwMDAwYzlhMzNmZmYgdHlwZT0zIGF0dHI9MDAwMDAwMDAwMDAwMDAw
Zg0KKFhFTikgWyAgICA0LjI1NzkzNl0gIDAwMDAwYzlhMzQwMDAtMDAwMDBjOWEzNGZmZiB0eXBl
PTQgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDQuMjcxODA1XSAgMDAwMDBjOWEz
NTAwMC0wMDAwMGM5YTM1ZmZmIHR5cGU9MyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsg
ICAgNC4yODU2NzFdICAwMDAwMGM5YTM2MDAwLTAwMDAwYzlhMzZmZmYgdHlwZT00IGF0dHI9MDAw
MDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICA0LjI5OTUzNl0gIDAwMDAwYzlhMzcwMDAtMDAwMDBj
OWEzN2ZmZiB0eXBlPTMgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDQuMzEzNDA1
XSAgMDAwMDBjOWEzODAwMC0wMDAwMGM5YTM4ZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAwMDAw
MGYNCihYRU4pIFsgICAgNC4zMjcyNzFdICAwMDAwMGM5YTM5MDAwLTAwMDAwYzlhNGJmZmYgdHlw
ZT0zIGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICA0LjM0MTEzN10gIDAwMDAwYzlh
NGMwMDAtMDAwMDBjOWE0ZGZmZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBb
ICAgIDQuMzU1MDAzXSAgMDAwMDBjOWE0ZTAwMC0wMDAwMGM5YTUyZmZmIHR5cGU9MyBhdHRyPTAw
MDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgNC4zNjg4NzJdICAwMDAwMGM5YTUzMDAwLTAwMDAw
YzlhNTdmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICA0LjM4Mjcz
OF0gIDAwMDAwYzlhNTgwMDAtMDAwMDBjOWE1Y2ZmZiB0eXBlPTMgYXR0cj0wMDAwMDAwMDAwMDAw
MDBmDQooWEVOKSBbICAgIDQuMzk2NjA0XSAgMDAwMDBjOWE1ZDAwMC0wMDAwMGM5YTVmZmZmIHR5
cGU9NCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgNC40MTA0NzBdICAwMDAwMGM5
YTYwMDAwLTAwMDAwYzlhNjZmZmYgdHlwZT0zIGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikg
WyAgICA0LjQyNDMzNl0gIDAwMDAwYzlhNjcwMDAtMDAwMDBjOWE2OWZmZiB0eXBlPTQgYXR0cj0w
MDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDQuNDM4MjA1XSAgMDAwMDBjOWE2YTAwMC0wMDAw
MGM5YTczZmZmIHR5cGU9MyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgNC40NTIw
NzJdICAwMDAwMGM5YTc0MDAwLTAwMDAwYzlhOGFmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAw
MDAwZg0KKFhFTikgWyAgICA0LjQ2NTkzOV0gIDAwMDAwYzlhOGIwMDAtMDAwMDBjOWE5Y2ZmZiB0
eXBlPTMgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDQuNDc5ODA0XSAgMDAwMDBj
OWE5ZDAwMC0wMDAwMGM5YTlkZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4p
IFsgICAgNC40OTM2NzBdICAwMDAwMGM5YTllMDAwLTAwMDAwYzlhOWZmZmYgdHlwZT0zIGF0dHI9
MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICA0LjUwNzUzNl0gIDAwMDAwYzlhYTAwMDAtMDAw
MDBjOWFhN2ZmZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDQuNTIx
NDAzXSAgMDAwMDBjOWFhODAwMC0wMDAwMGM5YWE4ZmZmIHR5cGU9MyBhdHRyPTAwMDAwMDAwMDAw
MDAwMGYNCihYRU4pIFsgICAgNC41MzUyNzFdICAwMDAwMGM5YWE5MDAwLTAwMDAwYzlhYTlmZmYg
dHlwZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICA0LjU0OTEzN10gIDAwMDAw
YzlhYWEwMDAtMDAwMDBjOWFhYWZmZiB0eXBlPTMgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVO
KSBbICAgIDQuNTYzMDAzXSAgMDAwMDBjOWFhYjAwMC0wMDAwMGM5YWFjZmZmIHR5cGU9NCBhdHRy
PTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgNC41NzY4NzJdICAwMDAwMGM5YWFkMDAwLTAw
MDAwYzlhYjFmZmYgdHlwZT0zIGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICA0LjU5
MDczN10gIDAwMDAwYzlhYjIwMDAtMDAwMDBjOWFiM2ZmZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAw
MDAwMDBmDQooWEVOKSBbICAgIDQuNjA0NjA1XSAgMDAwMDBjOWFiNDAwMC0wMDAwMGM5YWI3ZmZm
IHR5cGU9MyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgNC42MTg0NzFdICAwMDAw
MGM5YWI4MDAwLTAwMDAwYzlhYjhmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhF
TikgWyAgICA0LjYzMjMzN10gIDAwMDAwYzlhYjkwMDAtMDAwMDBjOWFiZWZmZiB0eXBlPTMgYXR0
cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDQuNjQ2MjAzXSAgMDAwMDBjOWFiZjAwMC0w
MDAwMGM5YWJmZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgNC42
NjAwNzJdICAwMDAwMGM5YWMwMDAwLTAwMDAwYzlhY2JmZmYgdHlwZT0zIGF0dHI9MDAwMDAwMDAw
MDAwMDAwZg0KKFhFTikgWyAgICA0LjY3MzkzOF0gIDAwMDAwYzlhY2MwMDAtMDAwMDBjOWFjY2Zm
ZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDQuNjg3ODA1XSAgMDAw
MDBjOWFjZDAwMC0wMDAwMGM5YWNlZmZmIHR5cGU9MyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihY
RU4pIFsgICAgNC43MDE2NzBdICAwMDAwMGM5YWNmMDAwLTAwMDAwYzlhZDBmZmYgdHlwZT00IGF0
dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICA0LjcxNTUzOF0gIDAwMDAwYzlhZDEwMDAt
MDAwMDBjOWFkMWZmZiB0eXBlPTMgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDQu
NzI5NDA0XSAgMDAwMDBjOWFkMjAwMC0wMDAwMGM5YWQyZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAw
MDAwMDAwMGYNCihYRU4pIFsgICAgNC43NDMyNjldICAwMDAwMGM5YWQzMDAwLTAwMDAwYzlhZWVm
ZmYgdHlwZT0zIGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICA0Ljc1NzEzOF0gIDAw
MDAwYzlhZWYwMDAtMDAwMDBjOWFmMWZmZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQoo
WEVOKSBbICAgIDQuNzcxMDA0XSAgMDAwMDBjOWFmMjAwMC0wMDAwMGM5YWYzZmZmIHR5cGU9MyBh
dHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgNC43ODQ4NzJdICAwMDAwMGM5YWY0MDAw
LTAwMDAwYzlhZjdmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICA0
Ljc5ODczOF0gIDAwMDAwYzlhZjgwMDAtMDAwMDBjOWFmYmZmZiB0eXBlPTMgYXR0cj0wMDAwMDAw
MDAwMDAwMDBmDQooWEVOKSBbICAgIDQuODEyNjAzXSAgMDAwMDBjOWFmYzAwMC0wMDAwMGM5YWZk
ZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgNC44MjY0NzFdICAw
MDAwMGM5YWZlMDAwLTAwMDAwYzliMDdmZmYgdHlwZT0zIGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0K
KFhFTikgWyAgICA0Ljg0MDMzNl0gIDAwMDAwYzliMDgwMDAtMDAwMDBjOWYwN2ZmZiB0eXBlPTQg
YXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDQuODU0MjAzXSAgMDAwMDBjOWYwODAw
MC0wMDAwMGM5ZjI3ZmZmIHR5cGU9MyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAg
NC44NjgwNzJdICAwMDAwMGM5ZjI4MDAwLTAwMDAwYzlmMjlmZmYgdHlwZT00IGF0dHI9MDAwMDAw
MDAwMDAwMDAwZg0KKFhFTikgWyAgICA0Ljg4MTkzN10gIDAwMDAwYzlmMmEwMDAtMDAwMDBjOWYy
YmZmZiB0eXBlPTMgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDQuODk1ODAzXSAg
MDAwMDBjOWYyYzAwMC0wMDAwMGM5ZjJkZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYN
CihYRU4pIFsgICAgNC45MDk2NzFdICAwMDAwMGM5ZjJlMDAwLTAwMDAwYzlmMmVmZmYgdHlwZT0z
IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICA0LjkyMzUzOF0gIDAwMDAwYzlmMmYw
MDAtMDAwMDBjOWYyZmZmZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAg
IDQuOTM3NDA2XSAgMDAwMDBjOWYzMDAwMC0wMDAwMGM5ZjMwZmZmIHR5cGU9MyBhdHRyPTAwMDAw
MDAwMDAwMDAwMGYNCihYRU4pIFsgICAgNC45NTEyNzJdICAwMDAwMGM5ZjMxMDAwLTAwMDAwYzlm
MzFmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICA0Ljk2NTEzN10g
IDAwMDAwYzlmMzIwMDAtMDAwMDBjOWYzNmZmZiB0eXBlPTMgYXR0cj0wMDAwMDAwMDAwMDAwMDBm
DQooWEVOKSBbICAgIDQuOTc5MDAzXSAgMDAwMDBjOWYzNzAwMC0wMDAwMGM5ZjNhZmZmIHR5cGU9
NCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgNC45OTI4NzJdICAwMDAwMGM5ZjNi
MDAwLTAwMDAwYzlmM2JmZmYgdHlwZT0zIGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAg
ICA1LjAwNjczN10gIDAwMDAwYzlmM2MwMDAtMDAwMDBjOWYzY2ZmZiB0eXBlPTQgYXR0cj0wMDAw
MDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDUuMDIwNjAzXSAgMDAwMDBjOWYzZDAwMC0wMDAwMGM5
ZjNkZmZmIHR5cGU9MyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgNS4wMzQ0NzBd
ICAwMDAwMGM5ZjNlMDAwLTAwMDAwY2E0MTFmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAw
Zg0KKFhFTikgWyAgICA1LjA0ODMzN10gIDAwMDAwY2E0MTIwMDAtMDAwMDBjYTQxM2ZmZiB0eXBl
PTMgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDUuMDYyMjAzXSAgMDAwMDBjYTQx
NDAwMC0wMDAwMGNhNDE1ZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsg
ICAgNS4wNzYwNjldICAwMDAwMGNhNDE2MDAwLTAwMDAwY2E0MWNmZmYgdHlwZT0zIGF0dHI9MDAw
MDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICA1LjA4OTkzNl0gIDAwMDAwY2E0MWQwMDAtMDAwMDBj
YTQxZGZmZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDUuMTAzODA0
XSAgMDAwMDBjYTQxZTAwMC0wMDAwMGNhNDFlZmZmIHR5cGU9MyBhdHRyPTAwMDAwMDAwMDAwMDAw
MGYNCihYRU4pIFsgICAgNS4xMTc2NzJdICAwMDAwMGNhNDFmMDAwLTAwMDAwY2E0ODhmZmYgdHlw
ZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICA1LjEzMTUzOF0gIDAwMDAwY2E0
ODkwMDAtMDAwMDBjYTQ4OWZmZiB0eXBlPTMgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBb
ICAgIDUuMTQ1NDA0XSAgMDAwMDBjYTQ4YTAwMC0wMDAwMGNhNDhiZmZmIHR5cGU9NCBhdHRyPTAw
MDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgNS4xNTkyNzJdICAwMDAwMGNhNDhjMDAwLTAwMDAw
Y2E0OGNmZmYgdHlwZT0zIGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICA1LjE3MzEz
OV0gIDAwMDAwY2E0OGQwMDAtMDAwMDBjYTQ5MWZmZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAwMDAw
MDBmDQooWEVOKSBbICAgIDUuMTg3MDA0XSAgMDAwMDBjYTQ5MjAwMC0wMDAwMGNhNDk0ZmZmIHR5
cGU9MyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgNS4yMDA4NzBdICAwMDAwMGNh
NDk1MDAwLTAwMDAwY2FiYzhmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikg
WyAgICA1LjIxNDczNl0gIDAwMDAwY2FiYzkwMDAtMDAwMDBjYzE0Y2ZmZiB0eXBlPTAgYXR0cj0w
MDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDUuMjI4NjA1XSAgMDAwMDBjYzE0ZDAwMC0wMDAw
MGNjMTk1ZmZmIHR5cGU9OSBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgNS4yNDI0
NzFdICAwMDAwMGNjMTk2MDAwLTAwMDAwY2MzODhmZmYgdHlwZT0xMCBhdHRyPTAwMDAwMDAwMDAw
MDAwMGYNCihYRU4pIFsgICAgNS4yNTY1MTFdICAwMDAwMGNjMzg5MDAwLTAwMDAwY2MzODlmZmYg
dHlwZT0wIGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICA1LjI3MDM3Nl0gIDAwMDAw
Y2MzOGEwMDAtMDAwMDBjYzcwOWZmZiB0eXBlPTEwIGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhF
TikgWyAgICA1LjI4NDQxOV0gIDAwMDAwY2M3MGEwMDAtMDAwMDBjZDE3OWZmZiB0eXBlPTYgYXR0
cj04MDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDUuMjk4Mjg1XSAgMDAwMDBjZDE3YTAwMC0w
MDAwMGNkMWZlZmZmIHR5cGU9NSBhdHRyPTgwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgNS4z
MTIxNTJdICAwMDAwMGNkMWZmMDAwLTAwMDAwY2Q3ZmZmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAw
MDAwMDAwZg0KKFhFTikgWyAgICA1LjMyNjAxOF0gIDAwMDAwY2Q4MDAwMDAtMDAwMDBjZDhlOWZm
ZiB0eXBlPTcgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDUuMzM5ODg0XSAgMDAw
MDBjZDhlYTAwMC0wMDAwMGNkOWU5ZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihY
RU4pIFsgICAgNS4zNTM3NTBdICAwMDAwMGNkOWVhMDAwLTAwMDAwY2RhMDVmZmYgdHlwZT0zIGF0
dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICA1LjM2NzYxOF0gIDAwMDAwY2RhMDYwMDAt
MDAwMDBjZGEzMWZmZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDUu
MzgxNDg0XSAgMDAwMDBjZGEzMjAwMC0wMDAwMGNkYTQ0ZmZmIHR5cGU9MyBhdHRyPTAwMDAwMDAw
MDAwMDAwMGYNCihYRU4pIFsgICAgNS4zOTUzNTBdICAwMDAwMGNkYTQ1MDAwLTAwMDAwY2RmNTdm
ZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICA1LjQwOTIxOV0gIDAw
MDAwY2RmNTgwMDAtMDAwMDBjZGY1YWZmZiB0eXBlPTMgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQoo
WEVOKSBbICAgIDUuNDIzMDg1XSAgMDAwMDBjZGY1YjAwMC0wMDAwMGNkZjZkZmZmIHR5cGU9NCBh
dHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgNS40MzY5NTFdICAwMDAwMGNkZjZlMDAw
LTAwMDAwY2RmNzdmZmYgdHlwZT0zIGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICA1
LjQ1MDgxN10gIDAwMDAwY2RmNzgwMDAtMDAwMDBjZGY5MWZmZiB0eXBlPTQgYXR0cj0wMDAwMDAw
MDAwMDAwMDBmDQooWEVOKSBbICAgIDUuNDY0NjgzXSAgMDAwMDBjZGY5MjAwMC0wMDAwMGNkZjk3
ZmZmIHR5cGU9MyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAgNS40Nzg1NTJdICAw
MDAwMGNkZjk4MDAwLTAwMDAwY2RmYWRmZmYgdHlwZT00IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0K
KFhFTikgWyAgICA1LjQ5MjQxOF0gIDAwMDAwY2RmYWUwMDAtMDAwMDBjZGZiMWZmZiB0eXBlPTMg
YXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDUuNTA2Mjg0XSAgMDAwMDBjZGZiMjAw
MC0wMDAwMGNkZmM1ZmZmIHR5cGU9NCBhdHRyPTAwMDAwMDAwMDAwMDAwMGYNCihYRU4pIFsgICAg
NS41MjAxNTBdICAwMDAwMGNkZmM2MDAwLTAwMDAwY2RmY2FmZmYgdHlwZT0zIGF0dHI9MDAwMDAw
MDAwMDAwMDAwZg0KKFhFTikgWyAgICA1LjUzNDAxOV0gIDAwMDAwY2RmY2IwMDAtMDAwMDBjZGZk
ZmZmZiB0eXBlPTQgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAgIDUuNTQ3ODgzXSAg
MDAwMDBjZGZlMDAwMC0wMDAwMGNkZmYxZmZmIHR5cGU9MyBhdHRyPTAwMDAwMDAwMDAwMDAwMGYN
CihYRU4pIFsgICAgNS41NjE3NTJdICAwMDAwMGNkZmYyMDAwLTAwMDAwY2RmZjlmZmYgdHlwZT00
IGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICA1LjU3NTYxOV0gIDAwMDAwY2RmZmEw
MDAtMDAwMDBjZGZmZmZmZiB0eXBlPTMgYXR0cj0wMDAwMDAwMDAwMDAwMDBmDQooWEVOKSBbICAg
IDUuNTg5NDg1XSAgMDAwMDEwMDAwMDAwMC0wMDAwODBmMzNmZmZmIHR5cGU9NyBhdHRyPTAwMDAw
MDAwMDAwMDAwMGYNCihYRU4pIFsgICAgNS42MDMzNTBdICAwMDAwMDAwMGEwMDAwLTAwMDAwMDAw
ZmZmZmYgdHlwZT0wIGF0dHI9MDAwMDAwMDAwMDAwMDAwZg0KKFhFTikgWyAgICA1LjYxNzIxN10g
IDAwMDAwY2UwMDAwMDAtMDAwMDBjZmZmZmZmZiB0eXBlPTAgYXR0cj0wMDAwMDAwMDAwMDAwMDBm
DQooWEVOKSBbICAgIDUuNjMxMDg1XSAgMDAwMDBmMDAwMDAwMC0wMDAwMGY3ZmZmZmZmIHR5cGU9
MTEgYXR0cj04MDAwMDAwMDAwMDAxMDBkDQooWEVOKSBbICAgIDUuNjQ1MTI1XSAgMDAwMDBmZDAw
MDAwMC0wMDAwMGZlZGZmZmZmIHR5cGU9MTEgYXR0cj04MDAwMDAwMDAwMDAxMDBkDQooWEVOKSBb
ICAgIDUuNjU5MTYzXSAgMDAwMDBmZWUwMDAwMC0wMDAwMGZlZTAwZmZmIHR5cGU9MTEgYXR0cj04
MDAwMDAwMDAwMDAwMDAxDQooWEVOKSBbICAgIDUuNjczMjA0XSAgMDAwMDBmZWUwMTAwMC0wMDAw
MGZmZmZmZmZmIHR5cGU9MTEgYXR0cj04MDAwMDAwMDAwMDAxMDBkDQooWEVOKSBbICAgIDUuNjg3
MjQzXSAgMDAwMDgwZjM0MDAwMC0wMDAwODJmZmZmZmZmIHR5cGU9MCBhdHRyPTAwMDAwMDAwMDAw
MDAwMGYNCihYRU4pIFsgICAgNS43MDExMTFdICAwMDAwODMwMDAwMDAwLTAwMDA4NTAxZmZmZmYg
dHlwZT0xMSBhdHRyPTgwMDAwMDAwMDAwMDEwMGQNCihYRU4pIFsgICAgNS43MTUxNTJdIGFsdCB0
YWJsZSBmZmZmODJkMDQwNGExZmY4IC0+IGZmZmY4MmQwNDA0YjNlZjgNCihYRU4pIFsgICAgNS43
NDAzMjFdIEFNRC1WaTogSU9NTVUgRXh0ZW5kZWQgRmVhdHVyZXM6DQooWEVOKSBbICAgIDUuNzQ5
ODU0XSAtIFBlcmlwaGVyYWwgUGFnZSBTZXJ2aWNlIFJlcXVlc3QNCihYRU4pIFsgICAgNS43NTk1
NTldIC0geDJBUElDDQooWEVOKSBbICAgIDUuNzY0OTMzXSAtIE5YIGJpdA0KKFhFTikgWyAgICA1
Ljc3MDMwN10gLSBJbnZhbGlkYXRlIEFsbCBDb21tYW5kDQooWEVOKSBbICAgIDUuNzc4NDU0XSAt
IEd1ZXN0IEFQSUMNCihYRU4pIFsgICAgNS43ODQ1MjBdIC0gUGVyZm9ybWFuY2UgQ291bnRlcnMN
CihYRU4pIFsgICAgNS43OTIzMjBdIC0gSG9zdCBBZGRyZXNzIFRyYW5zbGF0aW9uIFNpemU6IDB4
Mg0KKFhFTikgWyAgICA1LjgwMjU0Nl0gLSBHdWVzdCBBZGRyZXNzIFRyYW5zbGF0aW9uIFNpemU6
IDANCihYRU4pIFsgICAgNS44MTI1OTldIC0gR3Vlc3QgQ1IzIFJvb3QgVGFibGUgTGV2ZWw6IDB4
MQ0KKFhFTikgWyAgICA1LjgyMjMwNF0gLSBNYXhpbXVtIFBBU0lEOiAweGYNCihYRU4pIFsgICAg
NS44Mjk3NjBdIC0gU01JIEZpbHRlciBSZWdpc3RlcjogMHgxDQooWEVOKSBbICAgIDUuODM4MjU0
XSAtIFNNSSBGaWx0ZXIgUmVnaXN0ZXIgQ291bnQ6IDB4MQ0KKFhFTikgWyAgICA1Ljg0Nzc4Nl0g
LSBHdWVzdCBWaXJ0dWFsIEFQSUMgTW9kZXM6IDB4MQ0KKFhFTikgWyAgICA1Ljg1NzE0NV0gLSBE
dWFsIFBQUiBMb2c6IDB4Mg0KKFhFTikgWyAgICA1Ljg2NDQyN10gLSBEdWFsIEV2ZW50IExvZzog
MHgyDQooWEVOKSBbICAgIDUuODcyMDUyXSAtIFVzZXIgLyBTdXBlcnZpc29yIFBhZ2UgUHJvdGVj
dGlvbg0KKFhFTikgWyAgICA1Ljg4MjEwN10gLSBEZXZpY2UgVGFibGUgU2VnbWVudGF0aW9uOiAw
eDMNCihYRU4pIFsgICAgNS44OTE2NDBdIC0gUFBSIExvZyBPdmVyZmxvdyBFYXJseSBXYXJuaW5n
DQooWEVOKSBbICAgIDUuOTAxMTczXSAtIFBQUiBBdXRvbWF0aWMgUmVzcG9uc2UNCihYRU4pIFsg
ICAgNS45MDkzMTldIC0gTWVtb3J5IEFjY2VzcyBSb3V0aW5nIGFuZCBDb250cm9sOiAwDQooWEVO
KSBbICAgIDUuOTE5ODkxXSAtIEJsb2NrIFN0b3BNYXJrIE1lc3NhZ2UNCihYRU4pIFsgICAgNS45
MjgwNDBdIC0gUGVyZm9ybWFuY2UgT3B0aW1pemF0aW9uDQooWEVOKSBbICAgIDUuOTM2NTMzXSAt
IE1TSSBDYXBhYmlsaXR5IE1NSU8gQWNjZXNzDQooWEVOKSBbICAgIDUuOTQ1MzcyXSAtIEd1ZXN0
IEkvTyBQcm90ZWN0aW9uDQooWEVOKSBbICAgIDUuOTUzMTcyXSAtIEVuaGFuY2VkIFBQUiBIYW5k
bGluZw0KKFhFTikgWyAgICA1Ljk2MTE0NF0gLSBBdHRyaWJ1dGUgRm9yd2FyZA0KKFhFTikgWyAg
ICA1Ljk2ODQyNl0gLSBJbnZhbGlkYXRlIElPVExCIFR5cGUNCihYRU4pIFsgICAgNS45NzY0MDBd
IC0gVk0gVGFibGUgU2l6ZTogMA0KKFhFTikgWyAgICA1Ljk4MzUwNl0gLSBHdWVzdCBBY2Nlc3Mg
Qml0IFVwZGF0ZSBEaXNhYmxlDQooWEVOKSBbICAgIDYuMDA0Mzc2XSBBTUQtVmk6IERpc2FibGVk
IEhBUCBtZW1vcnkgbWFwIHNoYXJpbmcgd2l0aCBJT01NVQ0KKFhFTikgWyAgICA2LjAxNzAyOF0g
QU1ELVZpOiBJT01NVSAwIEVuYWJsZWQuDQooWEVOKSBbICAgIDYuMDI1MTc0XSBJL08gdmlydHVh
bGlzYXRpb24gZW5hYmxlZA0KKFhFTikgWyAgICA2LjAzMzY2OF0gIC0gRG9tMCBtb2RlOiBSZWxh
eGVkDQooWEVOKSBbICAgIDYuMDQxMjk2XSBJbnRlcnJ1cHQgcmVtYXBwaW5nIGVuYWJsZWQNCihY
RU4pIFsgICAgNi4wNDk5NjJdIG5yX3NvY2tldHM6IDENCihYRU4pIFsgICAgNi4wNTYyMDFdIEVu
YWJsaW5nIEFQSUMgbW9kZS4gIFVzaW5nIDIgSS9PIEFQSUNzDQooWEVOKSBbICAgIDYuMDY3MjA3
XSBFTkFCTElORyBJTy1BUElDIElSUXMNCihYRU4pIFsgICAgNi4wNzQ4MzRdICAtPiBVc2luZyBu
ZXcgQUNLIG1ldGhvZA0KKFhFTikgWyAgICA2LjA4Mjk4MV0gLi5USU1FUjogdmVjdG9yPTB4RjAg
YXBpYzE9MCBwaW4xPTIgYXBpYzI9LTEgcGluMj0tMQ0KKFhFTikgWyAgICA2LjI0NTY3Ml0gV2Fs
bGNsb2NrIHNvdXJjZTogQ01PUyBSVEMNCihYRU4pIFsgICAgNy4wMjYyNzFdIEFsbG9jYXRlZCBj
b25zb2xlIHJpbmcgb2YgMTI4IEtpQi4NCihYRU4pIFsgICAgNy4wMzYxNTJdIG13YWl0LWlkbGU6
IGRvZXMgbm90IHJ1biBvbiBmYW1pbHkgMjMgbW9kZWwgOTYNCihYRU4pIFsgICAgNy4wNDgxMTNd
IEhWTTogQVNJRHMgZW5hYmxlZC4NCihYRU4pIFsgICAgNy4wNTUzOTBdIFNWTTogU3VwcG9ydGVk
IGFkdmFuY2VkIGZlYXR1cmVzOg0KKFhFTikgWyAgICA3LjA2NTA5OF0gIC0gTmVzdGVkIFBhZ2Ug
VGFibGVzIChOUFQpDQooWEVOKSBbICAgIDcuMDczNzY0XSAgLSBMYXN0IEJyYW5jaCBSZWNvcmQg
KExCUikgVmlydHVhbGlzYXRpb24NCihYRU4pIFsgICAgNy4wODUwMzFdICAtIE5leHQtUklQIFNh
dmVkIG9uICNWTUVYSVQNCihYRU4pIFsgICAgNy4wOTM4NzFdICAtIFZNQ0IgQ2xlYW4gQml0cw0K
KFhFTikgWyAgICA3LjEwMDk3OF0gIC0gVExCIGZsdXNoIGJ5IEFTSUQNCihYRU4pIFsgICAgNy4x
MDg0MzBdICAtIERlY29kZUFzc2lzdHMNCihYRU4pIFsgICAgNy4xMTUxOTBdICAtIFZpcnR1YWwg
Vk1MT0FEL1ZNU0FWRQ0KKFhFTikgWyAgICA3LjEyMzMzN10gIC0gVmlydHVhbCBHSUYNCihYRU4p
IFsgICAgNy4xMjk3NTFdICAtIFBhdXNlLUludGVyY2VwdCBGaWx0ZXINCihYRU4pIFsgICAgNy4x
MzgwNzFdICAtIFBhdXNlLUludGVyY2VwdCBGaWx0ZXIgVGhyZXNob2xkDQooWEVOKSBbICAgIDcu
MTQ4MTI0XSAgLSBUU0MgUmF0ZSBNU1INCihYRU4pIFsgICAgNy4xNTQ3MTJdICAtIE1TUl9TUEVD
X0NUUkwgdmlydHVhbGlzYXRpb24NCihYRU4pIFsgICAgNy4xNjQwNzFdIEhWTTogU1ZNIGVuYWJs
ZWQNCihYRU4pIFsgICAgNy4xNzA4MzNdIEhWTTogSGFyZHdhcmUgQXNzaXN0ZWQgUGFnaW5nIChI
QVApIGRldGVjdGVkDQooWEVOKSBbICAgIDcuMTgyNDQ0XSBIVk06IEhBUCBwYWdlIHNpemVzOiA0
a0IsIDJNQiwgMUdCDQooWEVOKSBbICAgIDcuNDk4NzM2XSBCcm91Z2h0IHVwIDE2IENQVXMNCihY
RU4pIFsgICAgNy41MDY3MDldIFNjaGVkdWxpbmcgZ3JhbnVsYXJpdHk6IGNwdSwgMSBDUFUgcGVy
IHNjaGVkLXJlc291cmNlDQooWEVOKSBbICAgIDcuNTE5ODgwXSBJbml0aWFsaXppbmcgbnVsbCBz
Y2hlZHVsZXINCihYRU4pIFsgICAgNy41Mjg1NDhdIFdBUk5JTkc6IFRoaXMgaXMgZXhwZXJpbWVu
dGFsIHNvZnR3YXJlIGluIGRldmVsb3BtZW50Lg0KKFhFTikgWyAgICA3LjU0MTg5NF0gVXNlIGF0
IHlvdXIgb3duIHJpc2suDQooWEVOKSBbICAgIDcuNTQ5NTIzXSBtY2hlY2tfcG9sbDogTWFjaGlu
ZSBjaGVjayBwb2xsaW5nIHRpbWVyIHN0YXJ0ZWQuDQooWEVOKSBbICAgIDcuNTYyMDAwXSBSdW5u
aW5nIHN0dWIgcmVjb3Zlcnkgc2VsZnRlc3RzLi4uDQooWEVOKSBbICAgIDcuNTcxODgxXSBGaXh1
cCAjVURbMDAwMF06IGZmZmY4MmQwN2ZmZmUwNDQgW2ZmZmY4MmQwN2ZmZmUwNDRdIC0+IGZmZmY4
MmQwNDAzOGY5ZDANCihYRU4pIFsgICAgNy41ODgzNDldIEZpeHVwICNHUFswMDAwXTogZmZmZjgy
ZDA3ZmZmZTA0NSBbZmZmZjgyZDA3ZmZmZTA0NV0gLT4gZmZmZjgyZDA0MDM4ZjlkMA0KKFhFTikg
WyAgICA3LjYwNDgxNV0gRml4dXAgI1NTWzAwMDBdOiBmZmZmODJkMDdmZmZlMDQ0IFtmZmZmODJk
MDdmZmZlMDQ0XSAtPiBmZmZmODJkMDQwMzhmOWQwDQooWEVOKSBbICAgIDcuNjIxMjgzXSBGaXh1
cCAjQlBbMDAwMF06IGZmZmY4MmQwN2ZmZmUwNDUgW2ZmZmY4MmQwN2ZmZmUwNDVdIC0+IGZmZmY4
MmQwNDAzOGY5ZDANCihYRU4pIFsgICAgNy42NTc3NzBdIE5YIChFeGVjdXRlIERpc2FibGUpIHBy
b3RlY3Rpb24gYWN0aXZlDQooWEVOKSBbICAgIDcuNjY4MzQ0XSBkMCBoYXMgbWF4aW11bSAzMzI4
IFBJUlFzDQooWEVOKSBbICAgIDcuNjc2NzA4XSAqKiogQnVpbGRpbmcgYSBQVkggRG9tMCAqKioN
CihYRU4pIFsgICAgNy42ODkyNjZdIGQwOiBpZGVudGl0eSBtYXBwaW5ncyBmb3IgSU9NTVU6DQoo
WEVOKSBbICAgIDcuNjk4Nzk5XSAgWzAwMDAwMDAwYTAsIDAwMDAwMDAwZmZdIFJXDQooWEVOKSBb
ICAgIDcuNzA3NjM3XSAgWzAwMDAwMDliZmYsIDAwMDAwMDlmZmZdIFJXDQooWEVOKSBbICAgIDcu
NzE2NDc5XSAgWzAwMDAwY2FiYzksIDAwMDAwY2MxNGNdIFJXDQooWEVOKSBbICAgIDcuNzI1NDY3
XSAgWzAwMDAwY2MzODksIDAwMDAwY2MzODldIFJXDQooWEVOKSBbICAgIDcuNzM0MzA1XSAgWzAw
MDAwY2M3MGEsIDAwMDAwY2QxZmVdIFJXDQooWEVOKSBbICAgIDcuNzQzNjczXSAgWzAwMDAwY2Uw
MDAsIDAwMDAwY2ZmZmZdIFJXDQooWEVOKSBbICAgIDcuNzUyNTE0XSAgWzAwMDAwZmQwMDAsIDAw
MDAwZmQyZmZdIFJXDQooWEVOKSBbICAgIDcuNzYxMzU2XSAgWzAwMDAwZmQzMDQsIDAwMDAwZmVi
ZmZdIFJXDQooWEVOKSBbICAgIDcuNzcwMTkzXSAgWzAwMDAwZmVjMDIsIDAwMDAwZmVkZmZdIFJX
DQooWEVOKSBbICAgIDcuNzc5Mjk0XSAgWzAwMDAwZmVlMDEsIDAwMDAwZmZmZmZdIFJXDQooWEVO
KSBbICAgIDcuNzg4NDA0XSAgWzAwMDA4MGYzNDAsIDAwMDA4NTAxZmZdIFJXDQooWEVOKSBbICAg
IDcuNzk4MjU4XSAwMDAwOjAyOjAwLjA6IG5vdCBtYXBwaW5nIEJBUiBbZmVhMDAsIGZlYTAzXSBp
bnZhbGlkIHBvc2l0aW9uDQooWEVOKSBbICAgIDcuODEyODE3XSAwMDAwOjAzOjAwLjA6IG5vdCBt
YXBwaW5nIEJBUiBbZmU5MDAsIGZlOTBmXSBpbnZhbGlkIHBvc2l0aW9uDQooWEVOKSBbICAgIDcu
ODI3Mzc4XSAwMDAwOjAzOjAwLjA6IG5vdCBtYXBwaW5nIEJBUiBbZmU5MTAsIGZlOTEzXSBpbnZh
bGlkIHBvc2l0aW9uDQooWEVOKSBbICAgIDcuODQxOTM2XSAwMDAwOjA0OjAwLjA6IG5vdCBtYXBw
aW5nIEJBUiBbZmU3MDAsIGZlNzdmXSBpbnZhbGlkIHBvc2l0aW9uDQooWEVOKSBbICAgIDcuODU2
NTE1XSAwMDAwOjA0OjAwLjM6IG5vdCBtYXBwaW5nIEJBUiBbZmU1MDAsIGZlNWZmXSBpbnZhbGlk
IHBvc2l0aW9uDQooWEVOKSBbICAgIDcuODcxMDc0XSAwMDAwOjA0OjAwLjQ6IG5vdCBtYXBwaW5n
IEJBUiBbZmU0MDAsIGZlNGZmXSBpbnZhbGlkIHBvc2l0aW9uDQooWEVOKSBbICAgIDcuODg1NjM1
XSAwMDAwOjA1OjAwLjA6IG5vdCBtYXBwaW5nIEJBUiBbZmU4MDEsIGZlODAxXSBpbnZhbGlkIHBv
c2l0aW9uDQooWEVOKSBbICAgIDcuOTAwMTkzXSAwMDAwOjA1OjAwLjE6IG5vdCBtYXBwaW5nIEJB
UiBbZmU4MDAsIGZlODAwXSBpbnZhbGlkIHBvc2l0aW9uDQooWEVOKSBbICAgIDguMDQyODMxXSBE
b20wIG1lbW9yeSBhbGxvY2F0aW9uIHN0YXRzOg0KKFhFTikgWyAgICA4LjA1MTg0NF0gb3JkZXIg
IDAgYWxsb2NhdGlvbnM6IDQNCihYRU4pIFsgICAgOC4wNTk4MTZdIG9yZGVyICAxIGFsbG9jYXRp
b25zOiAyDQooWEVOKSBbICAgIDguMDY3NzkwXSBvcmRlciAgMiBhbGxvY2F0aW9uczogMg0KKFhF
TikgWyAgICA4LjA3NTc2NV0gb3JkZXIgIDMgYWxsb2NhdGlvbnM6IDINCihYRU4pIFsgICAgOC4w
ODM3MzddIG9yZGVyICA0IGFsbG9jYXRpb25zOiAyDQooWEVOKSBbICAgIDguMDkxNzExXSBvcmRl
ciAgNSBhbGxvY2F0aW9uczogNA0KKFhFTikgWyAgICA4LjA5OTY4NF0gb3JkZXIgIDYgYWxsb2Nh
dGlvbnM6IDMNCihYRU4pIFsgICAgOC4xMDc2NjBdIG9yZGVyICA3IGFsbG9jYXRpb25zOiA1DQoo
WEVOKSBbICAgIDguMTE1NjMxXSBvcmRlciAgOCBhbGxvY2F0aW9uczogNA0KKFhFTikgWyAgICA4
LjEyMzYwNV0gb3JkZXIgIDkgYWxsb2NhdGlvbnM6IDYNCihYRU4pIFsgICAgOC4xMzE1NzZdIG9y
ZGVyIDEwIGFsbG9jYXRpb25zOiAzDQooWEVOKSBbICAgIDguMTM5NTUxXSBvcmRlciAxMSBhbGxv
Y2F0aW9uczogNg0KKFhFTikgWyAgICA4LjE0NzUyM10gb3JkZXIgMTIgYWxsb2NhdGlvbnM6IDMN
CihYRU4pIFsgICAgOC4xNTU0OTZdIG9yZGVyIDEzIGFsbG9jYXRpb25zOiAyDQooWEVOKSBbICAg
IDguMTYzNDcyXSBvcmRlciAxNCBhbGxvY2F0aW9uczogMw0KKFhFTikgWyAgICA4LjE3MTQ0Ml0g
b3JkZXIgMTUgYWxsb2NhdGlvbnM6IDENCihYRU4pIFsgICAgOC4xNzk0MTZdIG9yZGVyIDE2IGFs
bG9jYXRpb25zOiAyDQooWEVOKSBbICAgIDguMTg3MzkyXSBvcmRlciAxNyBhbGxvY2F0aW9uczog
Mg0KKFhFTikgWyAgICA4LjE5NTM2NV0gb3JkZXIgMTggYWxsb2NhdGlvbnM6IDINCihYRU4pIFsg
ICAgOC41MjU5MDJdIEVMRjogcGhkcjogcGFkZHI9MHgxMDAwMDAwIG1lbXN6PTB4MTkxZmVjNA0K
KFhFTikgWyAgICA4LjUzNzE2OV0gRUxGOiBwaGRyOiBwYWRkcj0weDJhMDAwMDAgbWVtc3o9MHg4
NzgwMDANCihYRU4pIFsgICAgOC41NDgyNjJdIEVMRjogcGhkcjogcGFkZHI9MHgzMjc4MDAwIG1l
bXN6PTB4MmZlZDgNCihYRU4pIFsgICAgOC41NTkxODNdIEVMRjogcGhkcjogcGFkZHI9MHgzMmE4
MDAwIG1lbXN6PTB4NTg4MDAwDQooWEVOKSBbICAgIDguNTcwMjc0XSBFTEY6IG1lbW9yeTogMHgx
MDAwMDAwIC0+IDB4MzgzMDAwMA0KKFhFTikgWyAgICA4LjU4MDMzMF0gRUxGOiBub3RlOiBQSFlT
MzJfRU5UUlkgPSAweDEwMDAwMDANCihYRU4pIFsgICAgOC41OTAzODNdIEVMRjogbm90ZTogR1VF
U1RfT1MgPSAibGludXgiDQooWEVOKSBbICAgIDguNTk5Mzk1XSBFTEY6IG5vdGU6IEdVRVNUX1ZF
UlNJT04gPSAiMi42Ig0KKFhFTikgWyAgICA4LjYwODkyOV0gRUxGOiBub3RlOiBYRU5fVkVSU0lP
TiA9ICJ4ZW4tMy4wIg0KKFhFTikgWyAgICA4LjYxODgwOF0gRUxGOiBub3RlOiBWSVJUX0JBU0Ug
PSAweGZmZmZmZmZmODAwMDAwMDANCihYRU4pIFsgICAgOC42Mjk5MDJdIEVMRjogbm90ZTogSU5J
VF9QMk0gPSAweDgwMDAwMDAwMDANCihYRU4pIFsgICAgOC42Mzk3ODBdIEVMRjogbm90ZTogRU5U
UlkgPSAweGZmZmZmZmZmODMyYmFiNzANCihYRU4pIFsgICAgOC42NTAxODFdIEVMRjogbm90ZTog
RkVBVFVSRVMgPSAiIXdyaXRhYmxlX3BhZ2VfdGFibGVzIg0KKFhFTikgWyAgICA4LjY2MTk3MF0g
RUxGOiBub3RlOiBQQUVfTU9ERSA9ICJ5ZXMiDQooWEVOKSBbICAgIDguNjcwNjM3XSBFTEY6IG5v
dGU6IEwxX01GTl9WQUxJRA0KKFhFTikgWyAgICA4LjY3ODYwOV0gRUxGOiBub3RlOiBNT0RfU1RB
UlRfUEZOID0gMHgxDQooWEVOKSBbICAgIDguNjg3Nzk3XSBFTEY6IG5vdGU6IFBBRERSX09GRlNF
VCA9IDANCihYRU4pIFsgICAgOC42OTY0NjJdIEVMRjogbm90ZTogSFlQRVJDQUxMX1BBR0UgPSAw
eGZmZmZmZmZmODFmODQwMDANCihYRU4pIFsgICAgOC43MDg0MjJdIEVMRjogbm90ZTogU1VQUE9S
VEVEX0ZFQVRVUkVTID0gMHg4ODAxDQooWEVOKSBbICAgIDguNzE4OTk1XSBFTEY6IG5vdGU6IExP
QURFUiA9ICJnZW5lcmljIg0KKFhFTikgWyAgICA4LjcyODAwN10gRUxGOiBub3RlOiBTVVNQRU5E
X0NBTkNFTCA9IDB4MQ0KKFhFTikgWyAgICA4LjczNzM3MF0gRUxGOiBGb3VuZCBQVkggaW1hZ2UN
CihYRU4pIFsgICAgOC43NDQ4MjFdIEVMRjogYWRkcmVzc2VzOg0KKFhFTikgWyAgICA4Ljc1MTQx
MV0gICAgIHZpcnRfYmFzZSAgICAgICAgPSAweDANCihYRU4pIFsgICAgOC43NTk5MDNdICAgICBl
bGZfcGFkZHJfb2Zmc2V0ID0gMHgwDQooWEVOKSBbICAgIDguNzY4Mzk3XSAgICAgdmlydF9vZmZz
ZXQgICAgICA9IDB4MA0KKFhFTikgWyAgICA4Ljc3Njg4OV0gICAgIHZpcnRfa3N0YXJ0ICAgICAg
PSAweDEwMDAwMDANCihYRU4pIFsgICAgOC43ODY0MjJdICAgICB2aXJ0X2tlbmQgICAgICAgID0g
MHgzODMwMDAwDQooWEVOKSBbICAgIDguNzk1OTU3XSAgICAgdmlydF9lbnRyeSAgICAgICA9IDB4
MTAwMDAwMA0KKFhFTikgWyAgICA4LjgwNTQ5MV0gICAgIHAybV9iYXNlICAgICAgICAgPSAweDgw
MDAwMDAwMDANCihYRU4pIFsgICAgOC44MTU1NDFdIEVMRjogcGhkciAwIGF0IDB4MTAwMDAwMCAt
PiAweDI5MWZlYzQNCihYRU4pIFsgICAgOC44MzI2NDNdIEVMRjogcGhkciAxIGF0IDB4MmEwMDAw
MCAtPiAweDMyNzgwMDANCihYRU4pIFsgICAgOC44NDUwNzhdIEVMRjogcGhkciAyIGF0IDB4MzI3
ODAwMCAtPiAweDMyYTdlZDgNCihYRU4pIFsgICAgOC44NTU0NzddIEVMRjogcGhkciAzIGF0IDB4
MzJhODAwMCAtPiAweDM1NjEwMDANCihYRU4pIFsgICAgOC45MjU5ODldIERvbTAgbWVtb3J5IG1h
cDoNCihYRU4pIFsgICAgOC45MzI3NTBdICBbMDAwMDAwMDAwMDAwMDAwMCwgMDAwMDAwMDAwMDA5
ZmZmZl0gKHVzYWJsZSkNCihYRU4pIFsgICAgOC45NDQ3MDhdICBbMDAwMDAwMDAwMDBhMDAwMCwg
MDAwMDAwMDAwMDBmZmZmZl0gKHJlc2VydmVkKQ0KKFhFTikgWyAgICA4Ljk1NzAxNl0gIFswMDAw
MDAwMDAwMTAwMDAwLCAwMDAwMDAwMDA5YmZlZmZmXSAodXNhYmxlKQ0KKFhFTikgWyAgICA4Ljk2
ODk3Nl0gIFswMDAwMDAwMDA5YmZmMDAwLCAwMDAwMDAwMDA5ZmZmZmZmXSAocmVzZXJ2ZWQpDQoo
WEVOKSBbICAgIDguOTgxMjg0XSAgWzAwMDAwMDAwMGEwMDAwMDAsIDAwMDAwMDAwMGExZmZmZmZd
ICh1c2FibGUpDQooWEVOKSBbICAgIDguOTkzMjQyXSAgWzAwMDAwMDAwMGEyMDAwMDAsIDAwMDAw
MDAwMGEyMGNmZmZdIChBQ1BJIE5WUykNCihYRU4pIFsgICAgOS4wMDU1NTFdICBbMDAwMDAwMDAw
YTIwZDAwMCwgMDAwMDAwMDBjYWJjOGZmZl0gKHVzYWJsZSkNCihYRU4pIFsgICAgOS4wMTc1MTFd
ICBbMDAwMDAwMDBjYWJjOTAwMCwgMDAwMDAwMDBjYzE0Y2ZmZl0gKHJlc2VydmVkKQ0KKFhFTikg
WyAgICA5LjAyOTgxNl0gIFswMDAwMDAwMGNjMTRkMDAwLCAwMDAwMDAwMGNjMTk1ZmZmXSAoQUNQ
SSBkYXRhKQ0KKFhFTikgWyAgICA5LjA0MjI5Nl0gIFswMDAwMDAwMGNjMTk2MDAwLCAwMDAwMDAw
MGNjMzg4ZmZmXSAoQUNQSSBOVlMpDQooWEVOKSBbICAgIDkuMDU0NjA0XSAgWzAwMDAwMDAwY2Mz
ODkwMDAsIDAwMDAwMDAwY2MzODlmZmZdIChyZXNlcnZlZCkNCihYRU4pIFsgICAgOS4wNjY5MTFd
ICBbMDAwMDAwMDBjYzM4YTAwMCwgMDAwMDAwMDBjYzcwOWZmZl0gKEFDUEkgTlZTKQ0KKFhFTikg
WyAgICA5LjA3OTIxN10gIFswMDAwMDAwMGNjNzBhMDAwLCAwMDAwMDAwMGNkMWZlZmZmXSAocmVz
ZXJ2ZWQpDQooWEVOKSBbICAgIDkuMDkxNTI0XSAgWzAwMDAwMDAwY2QxZmYwMDAsIDAwMDAwMDAw
Y2RmZmZlYTddICh1c2FibGUpDQooWEVOKSBbICAgIDkuMTAzNDgyXSAgWzAwMDAwMDAwY2RmZmZl
YTgsIDAwMDAwMDAwY2RmZmZmM2ZdIChBQ1BJIGRhdGEpDQooWEVOKSBbICAgIDkuMTE1OTY1XSAg
WzAwMDAwMDAwY2UwMDAwMDAsIDAwMDAwMDAwY2ZmZmZmZmZdIChyZXNlcnZlZCkNCihYRU4pIFsg
ICAgOS4xMjgyNzBdICBbMDAwMDAwMDBmMDAwMDAwMCwgMDAwMDAwMDBmN2ZmZmZmZl0gKHJlc2Vy
dmVkKQ0KKFhFTikgWyAgICA5LjE0MDU3NV0gIFswMDAwMDAwMGZkMDAwMDAwLCAwMDAwMDAwMGZm
ZmZmZmZmXSAocmVzZXJ2ZWQpDQooWEVOKSBbICAgIDkuMTUyODgzXSAgWzAwMDAwMDAxMDAwMDAw
MDAsIDAwMDAwMDAxMzRhYTNmZmZdICh1c2FibGUpDQooWEVOKSBbICAgIDkuMTY0ODQ1XSAgWzAw
MDAwMDAxMzRhYTQwMDAsIDAwMDAwMDA4MGYzM2ZmZmZdICh1bnVzYWJsZSkNCihYRU4pIFsgICAg
OS4xNzcxNTBdICBbMDAwMDAwMDgwZjM0MDAwMCwgMDAwMDAwMDg1MDFmZmZmZl0gKHJlc2VydmVk
KQ0KKFhFTikgWyAgICA5LjE4OTQ1N10gSW5pdGlhbCBsb3cgbWVtb3J5IHZpcnEgdGhyZXNob2xk
IHNldCBhdCAweDQwMDAgcGFnZXMuDQooWEVOKSBbICAgIDkuMjAyODA0XSBTY3J1YmJpbmcgRnJl
ZSBSQU0gaW4gYmFja2dyb3VuZA0KKFhFTikgWyAgICA5LjIxMjMzNl0gU3RkLiBMb2dsZXZlbDog
QWxsDQooWEVOKSBbICAgIDkuMjE5NDQzXSBHdWVzdCBMb2dsZXZlbDogQWxsDQooWEVOKSBbICAg
IDkuMjI2NzIzXSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioNCihYRU4pIFsgICAgOS4yMzk1NDldIFdBUk5JTkc6IENPTlNPTEUgT1VUUFVUIElTIFNZ
TkNIUk9OT1VTDQooWEVOKSBbICAgIDkuMjUwMTI0XSBUaGlzIG9wdGlvbiBpcyBpbnRlbmRlZCB0
byBhaWQgZGVidWdnaW5nIG9mIFhlbiBieSBlbnN1cmluZw0KKFhFTikgWyAgICA5LjI2NDMzNV0g
dGhhdCBhbGwgb3V0cHV0IGlzIHN5bmNocm9ub3VzbHkgZGVsaXZlcmVkIG9uIHRoZSBzZXJpYWwg
bGluZS4NCihYRU4pIFsgICAgOS4yNzkwNjhdIEhvd2V2ZXIgaXQgY2FuIGludHJvZHVjZSBTSUdO
SUZJQ0FOVCBsYXRlbmNpZXMgYW5kIGFmZmVjdA0KKFhFTikgWyAgICA5LjI5MjkzNV0gdGltZWtl
ZXBpbmcuIEl0IGlzIE5PVCByZWNvbW1lbmRlZCBmb3IgcHJvZHVjdGlvbiB1c2UhDQooWEVOKSBb
ICAgIDkuMzA2Mjg0XSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioNCihYRU4pIFsgICAgOS4zMTkxMTFdIDMuLi4gMi4uLiAxLi4uDQooWEVOKSBbICAg
MTIuMzI1NTMyXSAqKiogU2VyaWFsIGlucHV0IHRvIERPTTAgKHR5cGUgJ0NUUkwtYScgdGhyZWUg
dGltZXMgdG8gc3dpdGNoIGlucHV0KQ0KKFhFTikgWyAgIDEyLjM0MTQ4N10gY29tbW9uL3NjaGVk
L251bGwuYzozNTc6IDAgPC0tIGQwdjANCihYRU4pIFsgICAxMi4zNTE1ODZdIEZyZWVkIDY2MGtC
IGluaXQgbWVtb3J5DQpbICAgIDAuMDAwMDAwXSBMaW51eCB2ZXJzaW9uIDYuMTEuMC1ydDEgKHNz
dGFiZWxsaW5pQHVidW50dS1saW51eC0yMC0wNC1kZXNrdG9wKSAoeDg2XzY0LWxpbnV4LWdudS1n
Y2MgKFVidW50dSA5LjQuMC0xdWJ1bnR1MX4yMC4wNC4yKSA5LjQuMCwgR05VIGxkIChHTlUgQmlu
dXRpbHMgZm9yIFVidW50dSkgMi4zNCkgIzU4MiBTTVAgUFJFRU1QVF9EWU5BTUlDIFRodSBBcHIg
IDMgMTc6Mzc6NDIgUERUIDIwMjUNClsgICAgMC4wMDAwMDBdIENvbW1hbmQgbGluZTogY29uc29s
ZT1odmMwIHJvb3Q9L2Rldi9yYW0wIGVhcmx5cHJpbnRrPXhlbiBkZWJ1ZyByZGluaXQ9L2Jpbi9z
aA0KWyAgICAwLjAwMDAwMF0gW0Zpcm13YXJlIEJ1Z106IFRTQyBkb2Vzbid0IGNvdW50IHdpdGgg
UDAgZnJlcXVlbmN5IQ0KWyAgICAwLjAwMDAwMF0gQklPUy1wcm92aWRlZCBwaHlzaWNhbCBSQU0g
bWFwOg0KWyAgICAwLjAwMDAwMF0gQklPUy1lODIwOiBbbWVtIDB4MDAwMDAwMDAwMDAwMDAwMC0w
eDAwMDAwMDAwMDAwOWZmZmZdIHVzYWJsZQ0KWyAgICAwLjAwMDAwMF0gQklPUy1lODIwOiBbbWVt
IDB4MDAwMDAwMDAwMDBhMDAwMC0weDAwMDAwMDAwMDAwZmZmZmZdIHJlc2VydmVkDQpbICAgIDAu
MDAwMDAwXSBCSU9TLWU4MjA6IFttZW0gMHgwMDAwMDAwMDAwMTAwMDAwLTB4MDAwMDAwMDAwOWJm
ZWZmZl0gdXNhYmxlDQpbICAgIDAuMDAwMDAwXSBCSU9TLWU4MjA6IFttZW0gMHgwMDAwMDAwMDA5
YmZmMDAwLTB4MDAwMDAwMDAwOWZmZmZmZl0gcmVzZXJ2ZWQNClsgICAgMC4wMDAwMDBdIEJJT1Mt
ZTgyMDogW21lbSAweDAwMDAwMDAwMGEwMDAwMDAtMHgwMDAwMDAwMDBhMWZmZmZmXSB1c2FibGUN
ClsgICAgMC4wMDAwMDBdIEJJT1MtZTgyMDogW21lbSAweDAwMDAwMDAwMGEyMDAwMDAtMHgwMDAw
MDAwMDBhMjBjZmZmXSBBQ1BJIE5WUw0KWyAgICAwLjAwMDAwMF0gQklPUy1lODIwOiBbbWVtIDB4
MDAwMDAwMDAwYTIwZDAwMC0weDAwMDAwMDAwY2FiYzhmZmZdIHVzYWJsZQ0KWyAgICAwLjAwMDAw
MF0gQklPUy1lODIwOiBbbWVtIDB4MDAwMDAwMDBjYWJjOTAwMC0weDAwMDAwMDAwY2MxNGNmZmZd
IHJlc2VydmVkDQpbICAgIDAuMDAwMDAwXSBCSU9TLWU4MjA6IFttZW0gMHgwMDAwMDAwMGNjMTRk
MDAwLTB4MDAwMDAwMDBjYzE5NWZmZl0gQUNQSSBkYXRhDQpbICAgIDAuMDAwMDAwXSBCSU9TLWU4
MjA6IFttZW0gMHgwMDAwMDAwMGNjMTk2MDAwLTB4MDAwMDAwMDBjYzM4OGZmZl0gQUNQSSBOVlMN
ClsgICAgMC4wMDAwMDBdIEJJT1MtZTgyMDogW21lbSAweDAwMDAwMDAwY2MzODkwMDAtMHgwMDAw
MDAwMGNjMzg5ZmZmXSByZXNlcnZlZA0KWyAgICAwLjAwMDAwMF0gQklPUy1lODIwOiBbbWVtIDB4
MDAwMDAwMDBjYzM4YTAwMC0weDAwMDAwMDAwY2M3MDlmZmZdIEFDUEkgTlZTDQpbICAgIDAuMDAw
MDAwXSBCSU9TLWU4MjA6IFttZW0gMHgwMDAwMDAwMGNjNzBhMDAwLTB4MDAwMDAwMDBjZDFmZWZm
Zl0gcmVzZXJ2ZWQNClsgICAgMC4wMDAwMDBdIEJJT1MtZTgyMDogW21lbSAweDAwMDAwMDAwY2Qx
ZmYwMDAtMHgwMDAwMDAwMGNkZmZmZWE3XSB1c2FibGUNClsgICAgMC4wMDAwMDBdIEJJT1MtZTgy
MDogW21lbSAweDAwMDAwMDAwY2RmZmZlYTgtMHgwMDAwMDAwMGNkZmZmZjNmXSBBQ1BJIGRhdGEN
ClsgICAgMC4wMDAwMDBdIEJJT1MtZTgyMDogW21lbSAweDAwMDAwMDAwY2UwMDAwMDAtMHgwMDAw
MDAwMGNmZmZmZmZmXSByZXNlcnZlZA0KWyAgICAwLjAwMDAwMF0gQklPUy1lODIwOiBbbWVtIDB4
MDAwMDAwMDBmMDAwMDAwMC0weDAwMDAwMDAwZjdmZmZmZmZdIHJlc2VydmVkDQpbICAgIDAuMDAw
MDAwXSBCSU9TLWU4MjA6IFttZW0gMHgwMDAwMDAwMGZkMDAwMDAwLTB4MDAwMDAwMDBmZmZmZmZm
Zl0gcmVzZXJ2ZWQNClsgICAgMC4wMDAwMDBdIEJJT1MtZTgyMDogW21lbSAweDAwMDAwMDAxMDAw
MDAwMDAtMHgwMDAwMDAwODBmMzNmZmZmXSB1c2FibGUNClsgICAgMC4wMDAwMDBdIEJJT1MtZTgy
MDogW21lbSAweDAwMDAwMDA4MGYzNDAwMDAtMHgwMDAwMDAwODUwMWZmZmZmXSByZXNlcnZlZA0K
WyAgICAwLjAwMDAwMF0gcHJpbnRrOiBsZWdhY3kgYm9vdGNvbnNvbGUgW3hlbmJvb3QwXSBlbmFi
bGVkDQpbICAgIDAuMDAwMDAwXSBOWCAoRXhlY3V0ZSBEaXNhYmxlKSBwcm90ZWN0aW9uOiBhY3Rp
dmUNClsgICAgMC4wMDAwMDBdIEFQSUM6IFN0YXRpYyBjYWxscyBpbml0aWFsaXplZA0KWyAgICAw
LjAwMDAwMF0gZWZpOiBFRkkgdjIuNyBieSBBbWVyaWNhbiBNZWdhdHJlbmRzDQpbICAgIDAuMDAw
MDAwXSBlZmk6IEFDUEk9MHhjYzZmMzAwMCBBQ1BJIDIuMD0weGNjNmYzMDE0IFRQTUZpbmFsTG9n
PTB4Y2M2YzIwMDAgU01CSU9TPTB4Y2NmZDYwMDAgU01CSU9TIDMuMD0weGNjZmQ1MDAwIChNRU1B
VFRSPTB4YzdhOTMyOTggdW51c2FibGUpIEVTUlQ9MHhjYzE1YTAxOA0KWyAgICAwLjAwMDAwMF0g
U01CSU9TIDMuMi4wIHByZXNlbnQuDQpbICAgIDAuMDAwMDAwXSBETUk6ICAvN0Q3ODUgLyA3RDc4
NiwgQklPUyA1LjE2IDAyLzI0LzIwMjUNClsgICAgMC4wMDAwMDBdIERNSTogTWVtb3J5IHNsb3Rz
IHBvcHVsYXRlZDogMi8yDQpbICAgIDAuMDAwMDAwXSBIeXBlcnZpc29yIGRldGVjdGVkOiBYZW4g
SFZNDQpbICAgIDAuMDAwMDAwXSBYZW4gdmVyc2lvbiA0LjIxLg0KWyAgICAwLjAwMDAwNF0gSFZN
T1BfcGFnZXRhYmxlX2R5aW5nIG5vdCBzdXBwb3J0ZWQNClsgICAgMC4wNTQyMTFdIHRzYzogRmFz
dCBUU0MgY2FsaWJyYXRpb24gZmFpbGVkDQpbICAgIDAuMDYyMzk1XSB0c2M6IERldGVjdGVkIDI4
OTQuNTYwIE1IeiBwcm9jZXNzb3INClsgICAgMC4wNzE3MTVdIGU4MjA6IHVwZGF0ZSBbbWVtIDB4
MDAwMDAwMDAtMHgwMDAwMGZmZl0gdXNhYmxlID09PiByZXNlcnZlZA0KWyAgICAwLjA4NDkyOF0g
ZTgyMDogcmVtb3ZlIFttZW0gMHgwMDBhMDAwMC0weDAwMGZmZmZmXSB1c2FibGUNClsgICAgMC4w
OTYwMjVdIGxhc3RfcGZuID0gMHg4MGYzNDAgbWF4X2FyY2hfcGZuID0gMHg0MDAwMDAwMDANClsg
ICAgMC4xMDY5OTRdIE1UUlIgbWFwOiA0IGVudHJpZXMgKDMgZml4ZWQgKyAxIHZhcmlhYmxlOyBt
YXggMjApLCBidWlsdCBmcm9tIDkgdmFyaWFibGUgTVRSUnMNClsgICAgMC4xMjM1ODNdIHg4Ni9Q
QVQ6IENvbmZpZ3VyYXRpb24gWzAtN106IFdCICBXQyAgVUMtIFVDICBXQiAgV1AgIFVDLSBXVA0K
WyAgICAwLjEzODAwNV0gQ1BVIE1UUlJzIGFsbCBibGFuayAtIHZpcnR1YWxpemVkIHN5c3RlbS4N
ClsgICAgMC4xNDc3NjFdIGxhc3RfcGZuID0gMHhjZGZmZiBtYXhfYXJjaF9wZm4gPSAweDQwMDAw
MDAwMA0KWyAgICAwLjE2MjAwOV0gZXNydDogUmVzZXJ2aW5nIEVTUlQgc3BhY2UgZnJvbSAweDAw
MDAwMDAwY2MxNWEwMTggdG8gMHgwMDAwMDAwMGNjMTVhMDUwLg0KWyAgICAwLjE3NzMwM10gVXNp
bmcgR0IgcGFnZXMgZm9yIGRpcmVjdCBtYXBwaW5nDQpbICAgIDAuMTg2NzI4XSBTZWN1cmUgYm9v
dCBkaXNhYmxlZA0KWyAgICAwLjE5MjgyOV0gUkFNRElTSzogW21lbSAweDBhMjBkMDAwLTB4MTZj
NDBmZmZdDQpbICAgIDAuMjAyNDYwXSBBQ1BJOiBFYXJseSB0YWJsZSBjaGVja3N1bSB2ZXJpZmlj
YXRpb24gZGlzYWJsZWQNClsgICAgMC4yMTM0MTddIEFDUEk6IFJTRFAgMHgwMDAwMDAwMENERkZG
RUE4IDAwMDAyNCAodjAyIEFMQVNLQSkNClsgICAgMC4yMjQ4NTNdIEFDUEk6IFhTRFQgMHgwMDAw
MDAwMENERkZGRUNDIDAwMDA5QyAodjAxIEFMQVNLQSBBIE0gSSAgICAwMTA3MjAwOSBBTUkgIDAx
MDAwMDEzKQ0KWyAgICAwLjI0MTg0MV0gQUNQSTogQVBJQyAweDAwMDAwMDAwQ0RGRkZGNjggMDAw
MDk4ICh2MDMgQUxBU0tBIEEgTSBJICAgIDAxMDcyMDA5IEFNSSAgMDAwMTAwMTMpDQpbICAgIDAu
MjU4ODI5XSBBQ1BJOiBGQUNQIDB4MDAwMDAwMDBDQzE4QzAwMCAwMDAxMTQgKHYwNiBBTEFTS0Eg
QSBNIEkgICAgMDEwNzIwMDkgQU1JICAwMDAxMDAxMykNClsgICAgMC4yNzU4NTJdIEFDUEk6IERT
RFQgMHgwMDAwMDAwMENDMTgzMDAwIDAwODc2RCAodjAyIEFMQVNLQSBBIE0gSSAgICAwMTA3MjAw
OSBJTlRMIDIwMTIwOTEzKQ0KWyAgICAwLjI5MjgwMV0gQUNQSTogRkFDUyAweDAwMDAwMDAwQ0M2
QzAwMDAgMDAwMDQwDQpbICAgIDAuMzAxOTg5XSBBQ1BJOiBTU0RUIDB4MDAwMDAwMDBDQzE4RTAw
MCAwMDcyM0MgKHYwMiBBTUQgICAgQW1kVGFibGUgMDAwMDAwMDIgTVNGVCAwNDAwMDAwMCkNClsg
ICAgMC4zMTg5NzVdIEFDUEk6IE1DRkcgMHgwMDAwMDAwMENDMTgxMDAwIDAwMDAzQyAodjAxIEFM
QVNLQSBBIE0gSSAgICAwMTA3MjAwOSBNU0ZUIDAwMDEwMDEzKQ0KWyAgICAwLjMzNTk2Ml0gQUNQ
STogU1NEVCAweDAwMDAwMDAwQ0MxN0YwMDAgMDAwMjI4ICh2MDEgQU1EICAgIFNURDMgICAgIDAw
MDAwMDAxIElOVEwgMjAxMjA5MTMpDQpbICAgIDAuMzUyOTQ4XSBBQ1BJOiBWRkNUIDB4MDAwMDAw
MDBDQzE3MTAwMCAwMEQ2ODQgKHYwMSBBTEFTS0EgQSBNIEkgICAgMDAwMDAwMDEgQU1EICAzMTUw
NEY0NykNClsgICAgMC4zNjk5MzRdIEFDUEk6IFNTRFQgMHgwMDAwMDAwMENDMTZCMDAwIDAwMzlG
NCAodjAxIEFNRCAgICBBbWRUYWJsZSAwMDAwMDAwMSBBTUQgIDAwMDAwMDAxKQ0KWyAgICAwLjM4
NjkyM10gQUNQSTogU1NEVCAweDAwMDAwMDAwQ0MxNjgwMDAgMDAwMTM5ICh2MDEgQU1EICAgIEFt
ZFRhYmxlIDAwMDAwMDAxIElOVEwgMjAxMjA5MTMpDQpbICAgIDAuNDAzOTA5XSBBQ1BJOiBTU0RU
IDB4MDAwMDAwMDBDQzE2NzAwMCAwMDAyMjcgKHYwMSBBTUQgICAgQW1kVGFibGUgMDAwMDAwMDEg
SU5UTCAyMDEyMDkxMykNClsgICAgMC40MjA4OTZdIEFDUEk6IFNTRFQgMHgwMDAwMDAwMENDMTY2
MDAwIDAwMEQzNyAodjAxIEFNRCAgICBBbWRUYWJsZSAwMDAwMDAwMSBJTlRMIDIwMTIwOTEzKQ0K
WyAgICAwLjQzNzg4Ml0gQUNQSTogU1NEVCAweDAwMDAwMDAwQ0MxNjQwMDAgMDAxMEE1ICh2MDEg
QU1EICAgIEFtZFRhYmxlIDAwMDAwMDAxIElOVEwgMjAxMjA5MTMpDQpbICAgIDAuNDU0ODY3XSBB
Q1BJOiBTU0RUIDB4MDAwMDAwMDBDQzE2MDAwMCAwMDMwQzggKHYwMSBBTUQgICAgQW1kVGFibGUg
MDAwMDAwMDEgSU5UTCAyMDEyMDkxMykNClsgICAgMC40NzE4NTRdIEFDUEk6IFNTRFQgMHgwMDAw
MDAwMENDMTVEMDAwIDAwMDA3RCAodjAxIEFNRCAgICBBbWRUYWJsZSAwMDAwMDAwMSBJTlRMIDIw
MTIwOTEzKQ0KWyAgICAwLjQ4ODg0Ml0gQUNQSTogU1NEVCAweDAwMDAwMDAwQ0MxNUMwMDAgMDAw
NTE3ICh2MDEgQU1EICAgIEFtZFRhYmxlIDAwMDAwMDAxIElOVEwgMjAxMjA5MTMpDQpbICAgIDAu
NTA1ODI3XSBBQ1BJOiBGUERUIDB4MDAwMDAwMDBDQzE1QjAwMCAwMDAwNDQgKHYwMSBBTEFTS0Eg
QSBNIEkgICAgMDEwNzIwMDkgQU1JICAwMTAwMDAxMykNClsgICAgMC41MjI4MTJdIEFDUEk6IFJl
c2VydmluZyBBUElDIHRhYmxlIG1lbW9yeSBhdCBbbWVtIDB4Y2RmZmZmNjgtMHhjZGZmZmZmZl0N
ClsgICAgMC41MzY4NTNdIEFDUEk6IFJlc2VydmluZyBGQUNQIHRhYmxlIG1lbW9yeSBhdCBbbWVt
IDB4Y2MxOGMwMDAtMHhjYzE4YzExM10NClsgICAgMC41NTA4OTFdIEFDUEk6IFJlc2VydmluZyBE
U0RUIHRhYmxlIG1lbW9yeSBhdCBbbWVtIDB4Y2MxODMwMDAtMHhjYzE4Yjc2Y10NClsgICAgMC41
NjQ5MzNdIEFDUEk6IFJlc2VydmluZyBGQUNTIHRhYmxlIG1lbW9yeSBhdCBbbWVtIDB4Y2M2YzAw
MDAtMHhjYzZjMDAzZl0NClsgICAgMC41Nzg5NzJdIEFDUEk6IFJlc2VydmluZyBTU0RUIHRhYmxl
IG1lbW9yeSBhdCBbbWVtIDB4Y2MxOGUwMDAtMHhjYzE5NTIzYl0NClsgICAgMC41OTMwMTNdIEFD
UEk6IFJlc2VydmluZyBNQ0ZHIHRhYmxlIG1lbW9yeSBhdCBbbWVtIDB4Y2MxODEwMDAtMHhjYzE4
MTAzYl0NClsgICAgMC42MDcwNTFdIEFDUEk6IFJlc2VydmluZyBTU0RUIHRhYmxlIG1lbW9yeSBh
dCBbbWVtIDB4Y2MxN2YwMDAtMHhjYzE3ZjIyN10NClsgICAgMC42MjEwOTNdIEFDUEk6IFJlc2Vy
dmluZyBWRkNUIHRhYmxlIG1lbW9yeSBhdCBbbWVtIDB4Y2MxNzEwMDAtMHhjYzE3ZTY4M10NClsg
ICAgMC42MzUxMzNdIEFDUEk6IFJlc2VydmluZyBTU0RUIHRhYmxlIG1lbW9yeSBhdCBbbWVtIDB4
Y2MxNmIwMDAtMHhjYzE2ZTlmM10NClsgICAgMC42NDkxNzJdIEFDUEk6IFJlc2VydmluZyBTU0RU
IHRhYmxlIG1lbW9yeSBhdCBbbWVtIDB4Y2MxNjgwMDAtMHhjYzE2ODEzOF0NClsgICAgMC42NjMy
MTFdIEFDUEk6IFJlc2VydmluZyBTU0RUIHRhYmxlIG1lbW9yeSBhdCBbbWVtIDB4Y2MxNjcwMDAt
MHhjYzE2NzIyNl0NClsgICAgMC42NzcyNTJdIEFDUEk6IFJlc2VydmluZyBTU0RUIHRhYmxlIG1l
bW9yeSBhdCBbbWVtIDB4Y2MxNjYwMDAtMHhjYzE2NmQzNl0NClsgICAgMC42OTEyOTNdIEFDUEk6
IFJlc2VydmluZyBTU0RUIHRhYmxlIG1lbW9yeSBhdCBbbWVtIDB4Y2MxNjQwMDAtMHhjYzE2NTBh
NF0NClsgICAgMC43MDUzMzJdIEFDUEk6IFJlc2VydmluZyBTU0RUIHRhYmxlIG1lbW9yeSBhdCBb
bWVtIDB4Y2MxNjAwMDAtMHhjYzE2MzBjN10NClsgICAgMC43MTkzNzFdIEFDUEk6IFJlc2Vydmlu
ZyBTU0RUIHRhYmxlIG1lbW9yeSBhdCBbbWVtIDB4Y2MxNWQwMDAtMHhjYzE1ZDA3Y10NClsgICAg
MC43MzM0MTJdIEFDUEk6IFJlc2VydmluZyBTU0RUIHRhYmxlIG1lbW9yeSBhdCBbbWVtIDB4Y2Mx
NWMwMDAtMHhjYzE1YzUxNl0NClsgICAgMC43NDc0NTJdIEFDUEk6IFJlc2VydmluZyBGUERUIHRh
YmxlIG1lbW9yeSBhdCBbbWVtIDB4Y2MxNWIwMDAtMHhjYzE1YjA0M10NClsgICAgMC43NjE2MzRd
IE5vIE5VTUEgY29uZmlndXJhdGlvbiBmb3VuZA0KWyAgICAwLjc2OTExOV0gRmFraW5nIGEgbm9k
ZSBhdCBbbWVtIDB4MDAwMDAwMDAwMDAwMDAwMC0weDAwMDAwMDA4MGYzM2ZmZmZdDQpbICAgIDAu
NzgyNDY2XSBOT0RFX0RBVEEoMCkgYWxsb2NhdGVkIFttZW0gMHgxMzRhOWYwMDAtMHgxMzRhYTJm
ZmZdDQpbICAgIDAuNzk0NDU0XSBab25lIHJhbmdlczoNClsgICAgMC43OTk0NTNdICAgRE1BICAg
ICAgW21lbSAweDAwMDAwMDAwMDAwMDEwMDAtMHgwMDAwMDAwMDAwZmZmZmZmXQ0KWyAgICAwLjgx
MTc1OF0gICBETUEzMiAgICBbbWVtIDB4MDAwMDAwMDAwMTAwMDAwMC0weDAwMDAwMDAwZmZmZmZm
ZmZdDQpbICAgIDAuODI0MDY1XSAgIE5vcm1hbCAgIFttZW0gMHgwMDAwMDAwMTAwMDAwMDAwLTB4
MDAwMDAwMDgwZjMzZmZmZl0NClsgICAgMC44MzYzNzNdIE1vdmFibGUgem9uZSBzdGFydCBmb3Ig
ZWFjaCBub2RlDQpbICAgIDAuODQ0ODY3XSBFYXJseSBtZW1vcnkgbm9kZSByYW5nZXMNClsgICAg
MC44NTE5NzFdICAgbm9kZSAgIDA6IFttZW0gMHgwMDAwMDAwMDAwMDAxMDAwLTB4MDAwMDAwMDAw
MDA5ZmZmZl0NClsgICAgMC44NjQ0NTJdICAgbm9kZSAgIDA6IFttZW0gMHgwMDAwMDAwMDAwMTAw
MDAwLTB4MDAwMDAwMDAwOWJmZWZmZl0NClsgICAgMC44Nzc0ODhdICAgbm9kZSAgIDA6IFttZW0g
MHgwMDAwMDAwMDBhMDAwMDAwLTB4MDAwMDAwMDAwYTFmZmZmZl0NClsgICAgMC44ODk2NTRdICAg
bm9kZSAgIDA6IFttZW0gMHgwMDAwMDAwMDBhMjBkMDAwLTB4MDAwMDAwMDBjYWJjOGZmZl0NClsg
ICAgMC45MDIxMzRdICAgbm9kZSAgIDA6IFttZW0gMHgwMDAwMDAwMGNkMWZmMDAwLTB4MDAwMDAw
MDBjZGZmZWZmZl0NClsgICAgMC45MTQ2MTNdICAgbm9kZSAgIDA6IFttZW0gMHgwMDAwMDAwMTAw
MDAwMDAwLTB4MDAwMDAwMDgwZjMzZmZmZl0NClsgICAgMC45MjcwOThdIEluaXRtZW0gc2V0dXAg
bm9kZSAwIFttZW0gMHgwMDAwMDAwMDAwMDAxMDAwLTB4MDAwMDAwMDgwZjMzZmZmZl0NClsgICAg
MC45NDExNDBdIE9uIG5vZGUgMCwgem9uZSBETUE6IDEgcGFnZXMgaW4gdW5hdmFpbGFibGUgcmFu
Z2VzDQpbICAgIDAuOTUyNzY0XSBPbiBub2RlIDAsIHpvbmUgRE1BOiA5NiBwYWdlcyBpbiB1bmF2
YWlsYWJsZSByYW5nZXMNClsgICAgMC45NjQ2NTZdIE9uIG5vZGUgMCwgem9uZSBETUEzMjogMTAy
NSBwYWdlcyBpbiB1bmF2YWlsYWJsZSByYW5nZXMNClsgICAgMC45ODE2MjhdIE9uIG5vZGUgMCwg
em9uZSBETUEzMjogMTMgcGFnZXMgaW4gdW5hdmFpbGFibGUgcmFuZ2VzDQpbICAgIDAuOTkzNTYw
XSBPbiBub2RlIDAsIHpvbmUgRE1BMzI6IDk3ODIgcGFnZXMgaW4gdW5hdmFpbGFibGUgcmFuZ2Vz
DQpbICAgIDEuMDQ5NzY5XSBPbiBub2RlIDAsIHpvbmUgTm9ybWFsOiA4MTkzIHBhZ2VzIGluIHVu
YXZhaWxhYmxlIHJhbmdlcw0KWyAgICAxLjA2MjE0OV0gT24gbm9kZSAwLCB6b25lIE5vcm1hbDog
MzI2NCBwYWdlcyBpbiB1bmF2YWlsYWJsZSByYW5nZXMNClsgICAgMS4wNzUyMTNdIEFDUEk6IFBN
LVRpbWVyIElPIFBvcnQ6IDB4ODA4DQpbICAgIDEuMDgyOTIyXSBJT0FQSUNbMF06IGFwaWNfaWQg
MTcsIHZlcnNpb24gMTcsIGFkZHJlc3MgMHhmZWMwMDAwMCwgR1NJIDAtMjMNClsgICAgMS4wOTY3
NzBdIElPQVBJQ1sxXTogYXBpY19pZCAxOCwgdmVyc2lvbiAxNywgYWRkcmVzcyAweGZlYzAxMDAw
LCBHU0kgMjQtNTUNClsgICAgMS4xMTA3NzhdIEFDUEk6IElOVF9TUkNfT1ZSIChidXMgMCBidXNf
aXJxIDAgZ2xvYmFsX2lycSAyIGRmbCBkZmwpDQpbICAgIDEuMTIzNDMxXSBBQ1BJOiBJTlRfU1JD
X09WUiAoYnVzIDAgYnVzX2lycSA5IGdsb2JhbF9pcnEgOSBsb3cgbGV2ZWwpDQpbICAgIDEuMTM2
NDMyXSBBQ1BJOiBVc2luZyBBQ1BJIChNQURUKSBmb3IgU01QIGNvbmZpZ3VyYXRpb24gaW5mb3Jt
YXRpb24NClsgICAgMS4xNDkyNjJdIENQVSB0b3BvOiBNYXguIGxvZ2ljYWwgcGFja2FnZXM6ICAg
MQ0KWyAgICAxLjE1ODQ0M10gQ1BVIHRvcG86IE1heC4gbG9naWNhbCBkaWVzOiAgICAgICAxDQpb
ICAgIDEuMTY3NjMwXSBDUFUgdG9wbzogTWF4LiBkaWVzIHBlciBwYWNrYWdlOiAgIDENClsgICAg
MS4xNzY4MTldIENQVSB0b3BvOiBNYXguIHRocmVhZHMgcGVyIGNvcmU6ICAgMQ0KWyAgICAxLjE4
NjAwM10gQ1BVIHRvcG86IE51bS4gY29yZXMgcGVyIHBhY2thZ2U6ICAgICA0DQpbICAgIDEuMTk1
NzEwXSBDUFUgdG9wbzogTnVtLiB0aHJlYWRzIHBlciBwYWNrYWdlOiAgIDQNClsgICAgMS4yMDU0
MTVdIENQVSB0b3BvOiBBbGxvd2luZyA0IHByZXNlbnQgQ1BVcyBwbHVzIDAgaG90cGx1ZyBDUFVz
DQpbICAgIDEuMjE3NTYzXSBQTTogaGliZXJuYXRpb246IFJlZ2lzdGVyZWQgbm9zYXZlIG1lbW9y
eTogW21lbSAweDAwMDAwMDAwLTB4MDAwMDBmZmZdDQpbICAgIDEuMjMyNjMwXSBQTTogaGliZXJu
YXRpb246IFJlZ2lzdGVyZWQgbm9zYXZlIG1lbW9yeTogW21lbSAweDAwMGEwMDAwLTB4MDAwZmZm
ZmZdDQpbICAgIDEuMjQ3NzEwXSBQTTogaGliZXJuYXRpb246IFJlZ2lzdGVyZWQgbm9zYXZlIG1l
bW9yeTogW21lbSAweDA5YmZmMDAwLTB4MDlmZmZmZmZdDQpbICAgIDEuMjYyNzg5XSBQTTogaGli
ZXJuYXRpb246IFJlZ2lzdGVyZWQgbm9zYXZlIG1lbW9yeTogW21lbSAweDBhMjAwMDAwLTB4MGEy
MGNmZmZdDQpbICAgIDEuMjc3ODY4XSBQTTogaGliZXJuYXRpb246IFJlZ2lzdGVyZWQgbm9zYXZl
IG1lbW9yeTogW21lbSAweGNhYmM5MDAwLTB4Y2MxNGNmZmZdDQpbICAgIDEuMjkyOTQ5XSBQTTog
aGliZXJuYXRpb246IFJlZ2lzdGVyZWQgbm9zYXZlIG1lbW9yeTogW21lbSAweGNjMTRkMDAwLTB4
Y2MxOTVmZmZdDQpbICAgIDEuMzA4MDMwXSBQTTogaGliZXJuYXRpb246IFJlZ2lzdGVyZWQgbm9z
YXZlIG1lbW9yeTogW21lbSAweGNjMTk2MDAwLTB4Y2MzODhmZmZdDQpbICAgIDEuMzIzMTEwXSBQ
TTogaGliZXJuYXRpb246IFJlZ2lzdGVyZWQgbm9zYXZlIG1lbW9yeTogW21lbSAweGNjMzg5MDAw
LTB4Y2MzODlmZmZdDQpbICAgIDEuMzM4MTkwXSBQTTogaGliZXJuYXRpb246IFJlZ2lzdGVyZWQg
bm9zYXZlIG1lbW9yeTogW21lbSAweGNjMzhhMDAwLTB4Y2M3MDlmZmZdDQpbICAgIDEuMzUzMjcw
XSBQTTogaGliZXJuYXRpb246IFJlZ2lzdGVyZWQgbm9zYXZlIG1lbW9yeTogW21lbSAweGNjNzBh
MDAwLTB4Y2QxZmVmZmZdDQpbICAgIDEuMzY4MzQ4XSBQTTogaGliZXJuYXRpb246IFJlZ2lzdGVy
ZWQgbm9zYXZlIG1lbW9yeTogW21lbSAweGNkZmZmMDAwLTB4Y2RmZmZmZmZdDQpbICAgIDEuMzgz
NDI5XSBQTTogaGliZXJuYXRpb246IFJlZ2lzdGVyZWQgbm9zYXZlIG1lbW9yeTogW21lbSAweGNk
ZmZmMDAwLTB4Y2RmZmZmZmZdDQpbICAgIDEuMzk4NTA4XSBQTTogaGliZXJuYXRpb246IFJlZ2lz
dGVyZWQgbm9zYXZlIG1lbW9yeTogW21lbSAweGNlMDAwMDAwLTB4Y2ZmZmZmZmZdDQpbICAgIDEu
NDEzNTg5XSBQTTogaGliZXJuYXRpb246IFJlZ2lzdGVyZWQgbm9zYXZlIG1lbW9yeTogW21lbSAw
eGQwMDAwMDAwLTB4ZWZmZmZmZmZdDQpbICAgIDEuNDI4NjcwXSBQTTogaGliZXJuYXRpb246IFJl
Z2lzdGVyZWQgbm9zYXZlIG1lbW9yeTogW21lbSAweGYwMDAwMDAwLTB4ZjdmZmZmZmZdDQpbICAg
IDEuNDQzNzQ4XSBQTTogaGliZXJuYXRpb246IFJlZ2lzdGVyZWQgbm9zYXZlIG1lbW9yeTogW21l
bSAweGY4MDAwMDAwLTB4ZmNmZmZmZmZdDQpbICAgIDEuNDU4ODI5XSBQTTogaGliZXJuYXRpb246
IFJlZ2lzdGVyZWQgbm9zYXZlIG1lbW9yeTogW21lbSAweGZkMDAwMDAwLTB4ZmZmZmZmZmZdDQpb
ICAgIDEuNDczOTEyXSBbbWVtIDB4ZDAwMDAwMDAtMHhlZmZmZmZmZl0gYXZhaWxhYmxlIGZvciBQ
Q0kgZGV2aWNlcw0KWyAgICAxLjQ4NjA0OV0gQm9vdGluZyBrZXJuZWwgb24gWGVuIFBWSA0KWyAg
ICAxLjQ5MzMyMl0gWGVuIHZlcnNpb246IDQuMjEtdW5zdGFibGUNClsgICAgMS41MDA3ODBdIGNs
b2Nrc291cmNlOiByZWZpbmVkLWppZmZpZXM6IG1hc2s6IDB4ZmZmZmZmZmYgbWF4X2N5Y2xlczog
MHhmZmZmZmZmZiwgbWF4X2lkbGVfbnM6IDE5MTA5Njk5NDAzOTE0MTkgbnMNClsgICAgMS41MjYw
MDFdIHNldHVwX3BlcmNwdTogTlJfQ1BVUzo2NCBucl9jcHVtYXNrX2JpdHM6NCBucl9jcHVfaWRz
OjQgbnJfbm9kZV9pZHM6MQ0KWyAgICAxLjU0MDgxN10gcGVyY3B1OiBFbWJlZGRlZCA1NyBwYWdl
cy9jcHUgczE5NjMxMiByODE5MiBkMjg5NjggdTUyNDI4OA0KWyAgICAxLjU1MzU5Ml0gcGNwdS1h
bGxvYzogczE5NjMxMiByODE5MiBkMjg5NjggdTUyNDI4OCBhbGxvYz0xKjIwOTcxNTINClsgICAg
MS41NjYyNDVdIHBjcHUtYWxsb2M6IFswXSAwIDEgMiAzDQpbICAgIDEuNTczMzc1XSBLZXJuZWwg
Y29tbWFuZCBsaW5lOiBjb25zb2xlPWh2YzAgcm9vdD0vZGV2L3JhbTAgZWFybHlwcmludGs9eGVu
IGRlYnVnIHJkaW5pdD0vYmluL3NoDQpbICAgIDEuNTkxMTAzXSByYW5kb206IGNybmcgaW5pdCBk
b25lDQpbICAgIDEuNTk4MTIyXSBEZW50cnkgY2FjaGUgaGFzaCB0YWJsZSBlbnRyaWVzOiA1MjQy
ODggKG9yZGVyOiAxMCwgNDE5NDMwNCBieXRlcywgbGluZWFyKQ0KWyAgICAxLjYxMzc4MV0gSW5v
ZGUtY2FjaGUgaGFzaCB0YWJsZSBlbnRyaWVzOiAyNjIxNDQgKG9yZGVyOiA5LCAyMDk3MTUyIGJ5
dGVzLCBsaW5lYXIpDQpbICAgIDEuNjI5MDM3XSBGYWxsYmFjayBvcmRlciBmb3IgTm9kZSAwOiAw
DQpbICAgIDEuNjI5MDQwXSBCdWlsdCAxIHpvbmVsaXN0cywgbW9iaWxpdHkgZ3JvdXBpbmcgb24u
ICBUb3RhbCBwYWdlczogODIzNTE2Mg0KWyAgICAxLjY1MDY3NF0gUG9saWN5IHpvbmU6IE5vcm1h
bA0KWyAgICAxLjY1NjkxNl0gbWVtIGF1dG8taW5pdDogc3RhY2s6b2ZmLCBoZWFwIGFsbG9jOm9m
ZiwgaGVhcCBmcmVlOm9mZg0KWyAgICAxLjY2OTQwMF0gc29mdHdhcmUgSU8gVExCOiBhcmVhIG51
bSA0Lg0KWyAgICAxLjc1NDcwNl0gU0xVQjogSFdhbGlnbj02NCwgT3JkZXI9MC0zLCBNaW5PYmpl
Y3RzPTAsIENQVXM9NCwgTm9kZXM9MQ0KUG9raW5nIEtBU0xSIHVzaW5nIFJEUkFORCBSRFRTQy4u
Lg0KWyAgICAxLjc3NDY4MF0gRHluYW1pYyBQcmVlbXB0OiB2b2x1bnRhcnkNClsgICAgMS43ODE4
NDBdIHJjdTogUHJlZW1wdGlibGUgaGllcmFyY2hpY2FsIFJDVSBpbXBsZW1lbnRhdGlvbi4NClsg
ICAgMS43OTMyNTldIHJjdTogCVJDVSBldmVudCB0cmFjaW5nIGlzIGVuYWJsZWQuDQpbICAgIDEu
ODAyMjcxXSByY3U6IAlSQ1UgcmVzdHJpY3RpbmcgQ1BVcyBmcm9tIE5SX0NQVVM9NjQgdG8gbnJf
Y3B1X2lkcz00Lg0KWyAgICAxLjgxNTQ0NV0gCVRyYW1wb2xpbmUgdmFyaWFudCBvZiBUYXNrcyBS
Q1UgZW5hYmxlZC4NClsgICAgMS44MjU0OTldIHJjdTogUkNVIGNhbGN1bGF0ZWQgdmFsdWUgb2Yg
c2NoZWR1bGVyLWVubGlzdG1lbnQgZGVsYXkgaXMgMTAwIGppZmZpZXMuDQpbICAgIDEuODQwNzUz
XSByY3U6IEFkanVzdGluZyBnZW9tZXRyeSBmb3IgcmN1X2Zhbm91dF9sZWFmPTE2LCBucl9jcHVf
aWRzPTQNClsgICAgMS44NTQxMDRdIFJDVSBUYXNrczogU2V0dGluZyBzaGlmdCB0byAyIGFuZCBs
aW0gdG8gMSByY3VfdGFza19jYl9hZGp1c3Q9MS4NClsgICAgMS44NjkzOTFdIFVzaW5nIE5VTEwg
bGVnYWN5IFBJQw0KWyAgICAxLjg3NTY2Ml0gTlJfSVJRUzogNDM1MiwgbnJfaXJxczogMTAwMCwg
cHJlYWxsb2NhdGVkIGlycXM6IDANClsgICAgMS44ODc2MTBdIHhlbjpldmVudHM6IFVzaW5nIEZJ
Rk8tYmFzZWQgQUJJDQooWEVOKSBbICAgMTQuNzE5ODgyXSBkMHYwOiB1cGNhbGwgdmVjdG9yIGYz
DQpbICAgIDEuOTAzNTkwXSB4ZW46ZXZlbnRzOiBYZW4gSFZNIGNhbGxiYWNrIHZlY3RvciBmb3Ig
ZXZlbnQgZGVsaXZlcnkgaXMgZW5hYmxlZA0KWyAgICAxLjkxNzgyNl0gcmN1OiBzcmN1X2luaXQ6
IFNldHRpbmcgc3JjdV9zdHJ1Y3Qgc2l6ZXMgYmFzZWQgb24gY29udGVudGlvbi4NClsgICAgMS45
MzE1MzJdIENvbnNvbGU6IGNvbG91ciBkdW1teSBkZXZpY2UgODB4MjUNClsgICAgMS45NDAzMzNd
IHByaW50azogbGVnYWN5IGNvbnNvbGUgW3R0eTBdIGVuYWJsZWQNClsgICAgMS45NDk5MDZdIHBy
aW50azogbGVnYWN5IGNvbnNvbGUgW2h2YzBdIGVuYWJsZWQNCg0KWyAgICAxLjk0OTkwNl0gcHJp
bnRrOiBsZWdhY3kgY29uc29sZSBbaHZjMF0gZW5hYmxlZA0KWyAgICAxLjk2ODU4Nl0gcHJpbnRr
OiBsZWdhY3kgYm9vdGNvbnNvbGUgW3hlbmJvb3QwXSBkaXNhYmxlZA0KDQpbICAgIDEuOTY4NTg2
XSBwcmludGs6IGxlZ2FjeSBib290Y29uc29sZSBbeGVuYm9vdDBdIGRpc2FibGVkDQpbICAgIDEu
OTkwNjA5XSBBQ1BJOiBDb3JlIHJldmlzaW9uIDIwMjQwMzIyDQoNClsgICAgMi4wMTcxNjFdIEZh
aWxlZCB0byByZWdpc3RlciBsZWdhY3kgdGltZXIgaW50ZXJydXB0DQoNClsgICAgMi4wMjcwNzld
IEFQSUM6IFN3aXRjaCB0byBzeW1tZXRyaWMgSS9PIG1vZGUgc2V0dXANCg0KWyAgICAyLjAzNzg4
Nl0geDJhcGljIGVuYWJsZWQNCg0KWyAgICAyLjA0Mzk5Ml0gQVBJQzogU3dpdGNoZWQgQVBJQyBy
b3V0aW5nIHRvOiBwaHlzaWNhbCB4MmFwaWMNCg0KWyAgICAyLjA1NTAyOV0gY2xvY2tzb3VyY2U6
IHRzYy1lYXJseTogbWFzazogMHhmZmZmZmZmZmZmZmZmZmZmIG1heF9jeWNsZXM6IDB4MjliOTJm
ZDIwM2EsIG1heF9pZGxlX25zOiA0NDA3OTUyMzI5MTggbnMNCg0KWyAgICAyLjA3NjA5MV0gQ2Fs
aWJyYXRpbmcgZGVsYXkgbG9vcCAoc2tpcHBlZCksIHZhbHVlIGNhbGN1bGF0ZWQgdXNpbmcgdGlt
ZXIgZnJlcXVlbmN5Li4gNTc4OS4xMiBCb2dvTUlQUyAobHBqPTI4OTQ1NjApDQoNClsgICAgMi4w
NzcwODldIHg4Ni9jcHU6IFVzZXIgTW9kZSBJbnN0cnVjdGlvbiBQcmV2ZW50aW9uIChVTUlQKSBh
Y3RpdmF0ZWQNCg0KWyAgICAyLjA3NzA4OV0gTGFzdCBsZXZlbCBpVExCIGVudHJpZXM6IDRLQiAx
MDI0LCAyTUIgMTAyNCwgNE1CIDUxMg0KDQpbICAgIDIuMDc3MDg5XSBMYXN0IGxldmVsIGRUTEIg
ZW50cmllczogNEtCIDIwNDgsIDJNQiAyMDQ4LCA0TUIgMTAyNCwgMUdCIDANCg0KWyAgICAyLjA3
NzA4OV0gU3BlY3RyZSBWMSA6IE1pdGlnYXRpb246IHVzZXJjb3B5L3N3YXBncyBiYXJyaWVycyBh
bmQgX191c2VyIHBvaW50ZXIgc2FuaXRpemF0aW9uDQoNClsgICAgMi4wNzcwODldIFNwZWN0cmUg
VjIgOiBNaXRpZ2F0aW9uOiBSZXRwb2xpbmVzDQoNClsgICAgMi4wNzcwODldIFNwZWN0cmUgVjIg
OiBTcGVjdHJlIHYyIC8gU3BlY3RyZVJTQiBtaXRpZ2F0aW9uOiBGaWxsaW5nIFJTQiBvbiBjb250
ZXh0IHN3aXRjaA0KDQpbICAgIDIuMDc3MDg5XSBTcGVjdHJlIFYyIDogU3BlY3RyZSB2MiAvIFNw
ZWN0cmVSU0IgOiBGaWxsaW5nIFJTQiBvbiBWTUVYSVQNCg0KWyAgICAyLjA3NzA4OV0gU3BlY3Ry
ZSBWMiA6IEVuYWJsaW5nIFNwZWN1bGF0aW9uIEJhcnJpZXIgZm9yIGZpcm13YXJlIGNhbGxzDQoN
ClsgICAgMi4wNzcwODldIFJFVEJsZWVkOiBNaXRpZ2F0aW9uOiB1bnRyYWluZWQgcmV0dXJuIHRo
dW5rDQoNClsgICAgMi4wNzcwODldIFNwZWN0cmUgVjIgOiBtaXRpZ2F0aW9uOiBFbmFibGluZyBj
b25kaXRpb25hbCBJbmRpcmVjdCBCcmFuY2ggUHJlZGljdGlvbiBCYXJyaWVyDQoNClsgICAgMi4w
NzcwODldIFNwZWN1bGF0aXZlIFN0b3JlIEJ5cGFzczogTWl0aWdhdGlvbjogU3BlY3VsYXRpdmUg
U3RvcmUgQnlwYXNzIGRpc2FibGVkIHZpYSBwcmN0bA0KDQpbICAgIDIuMDc3MDg5XSB4ODYvZnB1
OiBTdXBwb3J0aW5nIFhTQVZFIGZlYXR1cmUgMHgwMDE6ICd4ODcgZmxvYXRpbmcgcG9pbnQgcmVn
aXN0ZXJzJw0KDQpbICAgIDIuMDc3MDg5XSB4ODYvZnB1OiBTdXBwb3J0aW5nIFhTQVZFIGZlYXR1
cmUgMHgwMDI6ICdTU0UgcmVnaXN0ZXJzJw0KDQpbICAgIDIuMDc3MDg5XSB4ODYvZnB1OiBTdXBw
b3J0aW5nIFhTQVZFIGZlYXR1cmUgMHgwMDQ6ICdBVlggcmVnaXN0ZXJzJw0KDQpbICAgIDIuMDc3
MDg5XSB4ODYvZnB1OiB4c3RhdGVfb2Zmc2V0WzJdOiAgNTc2LCB4c3RhdGVfc2l6ZXNbMl06ICAy
NTYNCg0KWyAgICAyLjA3NzA4OV0geDg2L2ZwdTogRW5hYmxlZCB4c3RhdGUgZmVhdHVyZXMgMHg3
LCBjb250ZXh0IHNpemUgaXMgODMyIGJ5dGVzLCB1c2luZyAnY29tcGFjdGVkJyBmb3JtYXQuDQoN
ClsgICAgMi4wNzcwODldIEZyZWVpbmcgU01QIGFsdGVybmF0aXZlcyBtZW1vcnk6IDQ4Sw0KDQpb
ICAgIDIuMDc3MDg5XSBwaWRfbWF4OiBkZWZhdWx0OiAzMjc2OCBtaW5pbXVtOiAzMDENCg0KWyAg
ICAyLjA3NzA4OV0gTFNNOiBpbml0aWFsaXppbmcgbHNtPWNhcGFiaWxpdHksc2VsaW51eA0KDQpb
ICAgIDIuMDc3MDg5XSBTRUxpbnV4OiAgSW5pdGlhbGl6aW5nLg0KDQpbICAgIDIuMDc3MDg5XSBN
b3VudC1jYWNoZSBoYXNoIHRhYmxlIGVudHJpZXM6IDgxOTIgKG9yZGVyOiA0LCA2NTUzNiBieXRl
cywgbGluZWFyKQ0KDQpbICAgIDIuMDc3MDg5XSBNb3VudHBvaW50LWNhY2hlIGhhc2ggdGFibGUg
ZW50cmllczogODE5MiAob3JkZXI6IDQsIDY1NTM2IGJ5dGVzLCBsaW5lYXIpDQoNClsgICAgMi4w
NzcwODldIGNsb2Nrc291cmNlOiB4ZW46IG1hc2s6IDB4ZmZmZmZmZmZmZmZmZmZmZiBtYXhfY3lj
bGVzOiAweDFjZDQyZTRkZmZiLCBtYXhfaWRsZV9uczogODgxNTkwNTkxNDgzIG5zDQoNClsgICAg
Mi4wNzcwODldIFhlbjogdXNpbmcgdmNwdW9wIHRpbWVyIGludGVyZmFjZQ0KDQpbICAgIDIuMDc3
MDg5XSBpbnN0YWxsaW5nIFhlbiB0aW1lciBmb3IgQ1BVIDANCg0KWyAgICAyLjA3NzA4OV0gc21w
Ym9vdDogQ1BVMDogQU1EIFJ5emVuIEVtYmVkZGVkIFYyNzQ4IHdpdGggUmFkZW9uIEdyYXBoaWNz
IChmYW1pbHk6IDB4MTcsIG1vZGVsOiAweDYwLCBzdGVwcGluZzogMHgxKQ0KDQpbICAgIDIuMDc3
MjAzXSBQZXJmb3JtYW5jZSBFdmVudHM6IFBNVSBub3QgYXZhaWxhYmxlIGR1ZSB0byB2aXJ0dWFs
aXphdGlvbiwgdXNpbmcgc29mdHdhcmUgZXZlbnRzIG9ubHkuDQoNClsgICAgMi4wNzgxMDldIHNp
Z25hbDogbWF4IHNpZ2ZyYW1lIHNpemU6IDE3NzYNCg0KWyAgICAyLjA3OTEwOV0gcmN1OiBIaWVy
YXJjaGljYWwgU1JDVSBpbXBsZW1lbnRhdGlvbi4NCg0KWyAgICAyLjA4MDA5NF0gcmN1OiAJTWF4
IHBoYXNlIG5vLWRlbGF5IGluc3RhbmNlcyBpcyA0MDAuDQoNClsgICAgMi4wODExMjBdIFRpbWVy
IG1pZ3JhdGlvbjogMSBoaWVyYXJjaHkgbGV2ZWxzOyA4IGNoaWxkcmVuIHBlciBncm91cDsgMSBj
cm9zc25vZGUgbGV2ZWwNCg0KWyAgICAyLjA4NDczNV0gc21wOiBCcmluZ2luZyB1cCBzZWNvbmRh
cnkgQ1BVcyAuLi4NCg0KWyAgICAyLjA4NTE0Nl0gaW5zdGFsbGluZyBYZW4gdGltZXIgZm9yIENQ
VSAxDQoNClsgICAgMi4wODYxNTZdIHNtcGJvb3Q6IHg4NjogQm9vdGluZyBTTVAgY29uZmlndXJh
dGlvbjoNCg0KKFhFTikgWyAgIDE1LjM4MjM3MV0gY29tbW9uL3NjaGVkL251bGwuYzozNTc6IDEg
PC0tIGQwdjENClsgICAgMi4wODcwOTVdIC4uLi4gbm9kZSAgIzAsIENQVXM6ICAgICAgIzENCg0K
WyAgICAyLjA4ODUwOF0gaW5zdGFsbGluZyBYZW4gdGltZXIgZm9yIENQVSAyDQoNCihYRU4pIFsg
ICAxNS40MDg5MTddIGNvbW1vbi9zY2hlZC9udWxsLmM6MzU3OiAyIDwtLSBkMHYyDQpbICAgIDIu
MDkwMTc2XSAgIzINCg0KWyAgICAyLjA5MTU5NF0gaW5zdGFsbGluZyBYZW4gdGltZXIgZm9yIENQ
VSAzDQoNCihYRU4pIFsgICAxNS40MzExNDBdIGNvbW1vbi9zY2hlZC9udWxsLmM6MzU3OiAzIDwt
LSBkMHYzDQpbICAgIDIuMDkzMTgxXSAgIzMNCg0KWyAgICAyLjA5NzE2Ml0gc21wOiBCcm91Z2h0
IHVwIDEgbm9kZSwgNCBDUFVzDQoNClsgICAgMi4wOTkwOTZdIHNtcGJvb3Q6IFRvdGFsIG9mIDQg
cHJvY2Vzc29ycyBhY3RpdmF0ZWQgKDIzMTU2LjQ4IEJvZ29NSVBTKQ0KDQpbICAgIDIuMTAxMTM5
XSBNZW1vcnk6IDMzNTIxMjhLLzMyOTQwNjQ4SyBhdmFpbGFibGUgKDE4NDMySyBrZXJuZWwgY29k
ZSwgMjkxOUsgcndkYXRhLCA3Mjk2SyByb2RhdGEsIDI5MjhLIGluaXQsIDI2ODRLIGJzcywgMjk1
ODQ1NjhLIHJlc2VydmVkLCAwSyBjbWEtcmVzZXJ2ZWQpDQoNClsgICAgMi4xMDI4NDldIGRldnRt
cGZzOiBpbml0aWFsaXplZA0KDQpbICAgIDIuMTAzMTE3XSB4ODYvbW06IE1lbW9yeSBibG9jayBz
aXplOiAxMjhNQg0KDQpbICAgIDIuMTA2MjE1XSBBQ1BJOiBQTTogUmVnaXN0ZXJpbmcgQUNQSSBO
VlMgcmVnaW9uIFttZW0gMHgwYTIwMDAwMC0weDBhMjBjZmZmXSAoNTMyNDggYnl0ZXMpDQoNClsg
ICAgMi4xMDcwOTZdIEFDUEk6IFBNOiBSZWdpc3RlcmluZyBBQ1BJIE5WUyByZWdpb24gW21lbSAw
eGNjMTk2MDAwLTB4Y2MzODhmZmZdICgyMDQzOTA0IGJ5dGVzKQ0KDQpbICAgIDIuMTA4MTEzXSBB
Q1BJOiBQTTogUmVnaXN0ZXJpbmcgQUNQSSBOVlMgcmVnaW9uIFttZW0gMHhjYzM4YTAwMC0weGNj
NzA5ZmZmXSAoMzY3MDAxNiBieXRlcykNCg0KWyAgICAyLjEwOTE1MF0gY2xvY2tzb3VyY2U6IGpp
ZmZpZXM6IG1hc2s6IDB4ZmZmZmZmZmYgbWF4X2N5Y2xlczogMHhmZmZmZmZmZiwgbWF4X2lkbGVf
bnM6IDE5MTEyNjA0NDYyNzUwMDAgbnMNCg0KWyAgICAyLjExMDA5N10gZnV0ZXggaGFzaCB0YWJs
ZSBlbnRyaWVzOiAxMDI0IChvcmRlcjogNCwgNjU1MzYgYnl0ZXMsIGxpbmVhcikNCg0KWyAgICAy
LjExMTE2MF0gUE06IFJUQyB0aW1lOiAwMDoyOToyMiwgZGF0ZTogMjAyNS0wNC0yNg0KDQpbICAg
IDIuMTEyMjk0XSBORVQ6IFJlZ2lzdGVyZWQgUEZfTkVUTElOSy9QRl9ST1VURSBwcm90b2NvbCBm
YW1pbHkNCg0KWyAgICAyLjExMzEwOV0geGVuOmdyYW50X3RhYmxlOiBHcmFudCB0YWJsZXMgdXNp
bmcgdmVyc2lvbiAxIGxheW91dA0KDQpbICAgIDIuMTE0MTEyXSBHcmFudCB0YWJsZSBpbml0aWFs
aXplZA0KDQpbICAgIDIuMTE1MTkwXSBhdWRpdDogaW5pdGlhbGl6aW5nIG5ldGxpbmsgc3Vic3lz
IChkaXNhYmxlZCkNCg0KWyAgICAyLjExNjExMl0gYXVkaXQ6IHR5cGU9MjAwMCBhdWRpdCgxNzQ1
NjI3MzYzLjA0NToxKTogc3RhdGU9aW5pdGlhbGl6ZWQgYXVkaXRfZW5hYmxlZD0wIHJlcz0xDQoN
ClsgICAgMi4xMTYxNDZdIHRoZXJtYWxfc3lzOiBSZWdpc3RlcmVkIHRoZXJtYWwgZ292ZXJub3Ig
J3N0ZXBfd2lzZScNCg0KWyAgICAyLjEzMjA5OF0gdGhlcm1hbF9zeXM6IFJlZ2lzdGVyZWQgdGhl
cm1hbCBnb3Zlcm5vciAndXNlcl9zcGFjZScNCg0KWyAgICAyLjE0NDEwNl0gY3B1aWRsZTogdXNp
bmcgZ292ZXJub3IgbWVudQ0KDQpbICAgIDIuMTY1MzI0XSBQQ0k6IEVDQU0gW21lbSAweGYwMDAw
MDAwLTB4ZjdmZmZmZmZdIChiYXNlIDB4ZjAwMDAwMDApIGZvciBkb21haW4gMDAwMCBbYnVzIDAw
LTdmXQ0KDQpbICAgIDIuMTgxMTExXSBQQ0k6IFVzaW5nIGNvbmZpZ3VyYXRpb24gdHlwZSAxIGZv
ciBiYXNlIGFjY2Vzcw0KDQpbICAgIDIuMTkyMTU2XSBrcHJvYmVzOiBrcHJvYmUganVtcC1vcHRp
bWl6YXRpb24gaXMgZW5hYmxlZC4gQWxsIGtwcm9iZXMgYXJlIG9wdGltaXplZCBpZiBwb3NzaWJs
ZS4NCg0KWyAgICAyLjIxMDM4Nl0gSHVnZVRMQjogcmVnaXN0ZXJlZCAxLjAwIEdpQiBwYWdlIHNp
emUsIHByZS1hbGxvY2F0ZWQgMCBwYWdlcw0KDQpbICAgIDIuMjI0MDk2XSBIdWdlVExCOiAxNjM4
MCBLaUIgdm1lbW1hcCBjYW4gYmUgZnJlZWQgZm9yIGEgMS4wMCBHaUIgcGFnZQ0KDQpbICAgIDIu
MjM3MDk2XSBIdWdlVExCOiByZWdpc3RlcmVkIDIuMDAgTWlCIHBhZ2Ugc2l6ZSwgcHJlLWFsbG9j
YXRlZCAwIHBhZ2VzDQoNClsgICAgMi4yNTEwOTVdIEh1Z2VUTEI6IDI4IEtpQiB2bWVtbWFwIGNh
biBiZSBmcmVlZCBmb3IgYSAyLjAwIE1pQiBwYWdlDQoNClsgICAgMi4yNjMxNDldIEFDUEk6IEFk
ZGVkIF9PU0koTW9kdWxlIERldmljZSkNCg0KWyAgICAyLjI3MjA5Nl0gQUNQSTogQWRkZWQgX09T
SShQcm9jZXNzb3IgRGV2aWNlKQ0KDQpbICAgIDIuMjgxMDk1XSBBQ1BJOiBBZGRlZCBfT1NJKDMu
MCBfU0NQIEV4dGVuc2lvbnMpDQoNClsgICAgMi4yOTAwOTVdIEFDUEk6IEFkZGVkIF9PU0koUHJv
Y2Vzc29yIEFnZ3JlZ2F0b3IgRGV2aWNlKQ0KDQpbICAgIDIuMzEyNzAzXSBBQ1BJOiAxMSBBQ1BJ
IEFNTCB0YWJsZXMgc3VjY2Vzc2Z1bGx5IGFjcXVpcmVkIGFuZCBsb2FkZWQNCg0KKFhFTikgWyAg
IDE1Ljg3MDQ0OF0gZDA6IGJpbmQ6IG1fZ3NpPTkgZ19nc2k9OQ0KWyAgICAyLjMzNDYwNF0gQUNQ
STogW0Zpcm13YXJlIEJ1Z106IEJJT1MgX09TSShMaW51eCkgcXVlcnkgaWdub3JlZA0KDQpbICAg
IDIuMzQ5Nzc4XSBBQ1BJOiBJbnRlcnByZXRlciBlbmFibGVkDQoNClsgICAgMi4zNTYxMDVdIEFD
UEk6IFBNOiAoc3VwcG9ydHMgUzAgUzMgUzQgUzUpDQoNClsgICAgMi4zNjUwOTZdIEFDUEk6IFVz
aW5nIElPQVBJQyBmb3IgaW50ZXJydXB0IHJvdXRpbmcNCg0KWyAgICAyLjM3NTMxNl0gUENJOiBV
c2luZyBob3N0IGJyaWRnZSB3aW5kb3dzIGZyb20gQUNQSTsgaWYgbmVjZXNzYXJ5LCB1c2UgInBj
aT1ub2NycyIgYW5kIHJlcG9ydCBhIGJ1Zw0KDQpbICAgIDIuMzkzMTAzXSBQQ0k6IElnbm9yaW5n
IEU4MjAgcmVzZXJ2YXRpb25zIGZvciBob3N0IGJyaWRnZSB3aW5kb3dzDQoNClsgICAgMi40MDU0
NjZdIEFDUEk6IEVuYWJsZWQgNiBHUEVzIGluIGJsb2NrIDAwIHRvIDFGDQoNClsgICAgMi40MTY2
MDldIEFDUEk6IFxfU0JfLlAwUzA6IE5ldyBwb3dlciByZXNvdXJjZQ0KDQpbICAgIDIuNDI2MTE2
XSBBQ1BJOiBcX1NCXy5QM1MwOiBOZXcgcG93ZXIgcmVzb3VyY2UNCg0KWyAgICAyLjQzNTE0N10g
QUNQSTogXF9TQl8uUDBTMTogTmV3IHBvd2VyIHJlc291cmNlDQoNClsgICAgMi40NDQxMTNdIEFD
UEk6IFxfU0JfLlAzUzE6IE5ldyBwb3dlciByZXNvdXJjZQ0KDQpbICAgIDIuNDU5MjY0XSBBQ1BJ
OiBcX1NCXy5QUldMOiBOZXcgcG93ZXIgcmVzb3VyY2UNCg0KWyAgICAyLjQ2ODExM10gQUNQSTog
XF9TQl8uUFJXQjogTmV3IHBvd2VyIHJlc291cmNlDQoNClsgICAgMi40Nzg0MzldIEFDUEk6IFBD
SSBSb290IEJyaWRnZSBbUENJMF0gKGRvbWFpbiAwMDAwIFtidXMgMDAtZmZdKQ0KDQpbICAgIDIu
NDkwMDk4XSBhY3BpIFBOUDBBMDg6MDA6IF9PU0M6IE9TIHN1cHBvcnRzIFtFeHRlbmRlZENvbmZp
ZyBBU1BNIENsb2NrUE0gU2VnbWVudHMgTVNJIEhQWC1UeXBlM10NCg0KWyAgICAyLjUwODIzMF0g
YWNwaSBQTlAwQTA4OjAwOiBfT1NDOiBPUyBub3cgY29udHJvbHMgW1BNRSBQQ0llQ2FwYWJpbGl0
eSBMVFJdDQoNClsgICAgMi41MjIxMDldIGFjcGkgUE5QMEEwODowMDogW0Zpcm13YXJlIEluZm9d
OiBFQ0FNIFttZW0gMHhmMDAwMDAwMC0weGY3ZmZmZmZmXSBmb3IgZG9tYWluIDAwMDAgW2J1cyAw
MC03Zl0gb25seSBwYXJ0aWFsbHkgY292ZXJzIHRoaXMgYnJpZGdlDQoNClsgICAgMi41NDczODld
IFBDSSBob3N0IGJyaWRnZSB0byBidXMgMDAwMDowMA0KDQpbICAgIDIuNTU1MTAwXSBwY2lfYnVz
IDAwMDA6MDA6IHJvb3QgYnVzIHJlc291cmNlIFtpbyAgMHgwMDAwLTB4MDNhZiB3aW5kb3ddDQoN
ClsgICAgMi41NjkwOTZdIHBjaV9idXMgMDAwMDowMDogcm9vdCBidXMgcmVzb3VyY2UgW2lvICAw
eDAzZTAtMHgwY2Y3IHdpbmRvd10NCg0KWyAgICAyLjU4MjA5Nl0gcGNpX2J1cyAwMDAwOjAwOiBy
b290IGJ1cyByZXNvdXJjZSBbaW8gIDB4MDNiMC0weDAzZGYgd2luZG93XQ0KDQpbICAgIDIuNTk2
MDk1XSBwY2lfYnVzIDAwMDA6MDA6IHJvb3QgYnVzIHJlc291cmNlIFtpbyAgMHgwZDAwLTB4ZmZm
ZiB3aW5kb3ddDQoNClsgICAgMi42MDkwOTZdIHBjaV9idXMgMDAwMDowMDogcm9vdCBidXMgcmVz
b3VyY2UgW21lbSAweDAwMGEwMDAwLTB4MDAwZGZmZmYgd2luZG93XQ0KDQpbICAgIDIuNjI0MDk2
XSBwY2lfYnVzIDAwMDA6MDA6IHJvb3QgYnVzIHJlc291cmNlIFttZW0gMHhkMDAwMDAwMC0weGZl
YmZmZmZmIHdpbmRvd10NCg0KWyAgICAyLjYzOTA5Nl0gcGNpX2J1cyAwMDAwOjAwOiByb290IGJ1
cyByZXNvdXJjZSBbbWVtIDB4ZmVlMDAwMDAtMHhmZmZmZmZmZiB3aW5kb3ddDQoNClsgICAgMi42
NTQwOTZdIHBjaV9idXMgMDAwMDowMDogcm9vdCBidXMgcmVzb3VyY2UgW21lbSAweDgzMDAwMDAw
MC0weGZmZmZmZmZmZmYgd2luZG93XQ0KDQpbICAgIDIuNjY5MDk2XSBwY2lfYnVzIDAwMDA6MDA6
IHJvb3QgYnVzIHJlc291cmNlIFtidXMgMDAtZmZdDQoNClsgICAgMi42ODAxMjVdIHBjaSAwMDAw
OjAwOjAwLjA6IFsxMDIyOjE2MzBdIHR5cGUgMDAgY2xhc3MgMHgwNjAwMDAgY29udmVudGlvbmFs
IFBDSSBlbmRwb2ludA0KDQooWEVOKSBbICAgMTYuMjQ2MzI1XSBQQ0kgYWRkIGRldmljZSAwMDAw
OjAwOjAwLjANClsgICAgMi43MDUxMjNdIHBjaSAwMDAwOjAwOjAwLjI6IFsxMDIyOjE2MzFdIHR5
cGUgMDAgY2xhc3MgMHgwODA2MDAgY29udmVudGlvbmFsIFBDSSBlbmRwb2ludA0KDQooWEVOKSBb
ICAgMTYuMjcxNjMxXSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjAwLjINClsgICAgMi43MzAxMjZd
IHBjaSAwMDAwOjAwOjAxLjA6IFsxMDIyOjE2MzJdIHR5cGUgMDAgY2xhc3MgMHgwNjAwMDAgY29u
dmVudGlvbmFsIFBDSSBlbmRwb2ludA0KDQooWEVOKSBbICAgMTYuMjk2OTM5XSBQQ0kgYWRkIGRl
dmljZSAwMDAwOjAwOjAxLjANClsgICAgMi43NTUxMzBdIHBjaSAwMDAwOjAwOjAyLjA6IFsxMDIy
OjE2MzJdIHR5cGUgMDAgY2xhc3MgMHgwNjAwMDAgY29udmVudGlvbmFsIFBDSSBlbmRwb2ludA0K
DQooWEVOKSBbICAgMTYuMzIyMjQ1XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjAyLjANClsgICAg
Mi43ODAxMjRdIHBjaSAwMDAwOjAwOjAyLjE6IFsxMDIyOjE2MzRdIHR5cGUgMDEgY2xhc3MgMHgw
NjA0MDAgUENJZSBSb290IFBvcnQNCg0KWyAgICAyLjc5NTE0NF0gcGNpIDAwMDA6MDA6MDIuMTog
UENJIGJyaWRnZSB0byBbYnVzIDAxXQ0KDQpbICAgIDIuODA1MTE5XSBwY2kgMDAwMDowMDowMi4x
OiAgIGJyaWRnZSB3aW5kb3cgW21lbSAweGZmZTAwMDAwMDAtMHhmZmY4MGZmZmZmIDY0Yml0IHBy
ZWZdDQoNClsgICAgMi44MjEyOTNdIHBjaSAwMDAwOjAwOjAyLjE6IFBNRSMgc3VwcG9ydGVkIGZy
b20gRDAgRDNob3QgRDNjb2xkDQoNCihYRU4pIFsgICAxNi4zODQzMDFdIFBDSSBhZGQgZGV2aWNl
IDAwMDA6MDA6MDIuMQ0KWyAgICAyLjg0MTEyOF0gcGNpIDAwMDA6MDA6MDIuMzogWzEwMjI6MTYz
NF0gdHlwZSAwMSBjbGFzcyAweDA2MDQwMCBQQ0llIFJvb3QgUG9ydA0KDQpbICAgIDIuODU2MTQy
XSBwY2kgMDAwMDowMDowMi4zOiBQQ0kgYnJpZGdlIHRvIFtidXMgMDJdDQoNClsgICAgMi44NjYx
MDZdIHBjaSAwMDAwOjAwOjAyLjM6ICAgYnJpZGdlIHdpbmRvdyBbbWVtIDB4ZmVhMDAwMDAtMHhm
ZWFmZmZmZl0NCg0KWyAgICAyLjg3OTEyN10gcGNpIDAwMDA6MDA6MDIuMzogZW5hYmxpbmcgRXh0
ZW5kZWQgVGFncw0KDQpbICAgIDIuODg5Mjg4XSBwY2kgMDAwMDowMDowMi4zOiBQTUUjIHN1cHBv
cnRlZCBmcm9tIEQwIEQzaG90IEQzY29sZA0KDQooWEVOKSBbICAgMTYuNDUzODA1XSBQQ0kgYWRk
IGRldmljZSAwMDAwOjAwOjAyLjMNClsgICAgMi45MTAxMjRdIHBjaSAwMDAwOjAwOjAyLjQ6IFsx
MDIyOjE2MzRdIHR5cGUgMDEgY2xhc3MgMHgwNjA0MDAgUENJZSBSb290IFBvcnQNCg0KWyAgICAy
LjkyNTE0MV0gcGNpIDAwMDA6MDA6MDIuNDogUENJIGJyaWRnZSB0byBbYnVzIDAzXQ0KDQpbICAg
IDIuOTM1MTAzXSBwY2kgMDAwMDowMDowMi40OiAgIGJyaWRnZSB3aW5kb3cgW2lvICAweGYwMDAt
MHhmZmZmXQ0KDQpbICAgIDIuOTQ3MDk5XSBwY2kgMDAwMDowMDowMi40OiAgIGJyaWRnZSB3aW5k
b3cgW21lbSAweGZlOTAwMDAwLTB4ZmU5ZmZmZmZdDQoNClsgICAgMi45NjAxMjVdIHBjaSAwMDAw
OjAwOjAyLjQ6IGVuYWJsaW5nIEV4dGVuZGVkIFRhZ3MNCg0KWyAgICAyLjk3MDI3OF0gcGNpIDAw
MDA6MDA6MDIuNDogUE1FIyBzdXBwb3J0ZWQgZnJvbSBEMCBEM2hvdCBEM2NvbGQNCg0KKFhFTikg
WyAgIDE2LjUzNTYyMV0gUENJIGFkZCBkZXZpY2UgMDAwMDowMDowMi40DQpbICAgIDIuOTkxMTMz
XSBwY2kgMDAwMDowMDowOC4wOiBbMTAyMjoxNjMyXSB0eXBlIDAwIGNsYXNzIDB4MDYwMDAwIGNv
bnZlbnRpb25hbCBQQ0kgZW5kcG9pbnQNCg0KKFhFTikgWyAgIDE2LjU2MDkyNV0gUENJIGFkZCBk
ZXZpY2UgMDAwMDowMDowOC4wDQpbICAgIDMuMDE2MTIzXSBwY2kgMDAwMDowMDowOC4xOiBbMTAy
MjoxNjM1XSB0eXBlIDAxIGNsYXNzIDB4MDYwNDAwIFBDSWUgUm9vdCBQb3J0DQoNClsgICAgMy4w
MzAxNDddIHBjaSAwMDAwOjAwOjA4LjE6IFBDSSBicmlkZ2UgdG8gW2J1cyAwNF0NCg0KWyAgICAz
LjA0MDEwM10gcGNpIDAwMDA6MDA6MDguMTogICBicmlkZ2Ugd2luZG93IFtpbyAgMHhlMDAwLTB4
ZWZmZl0NCg0KWyAgICAzLjA1MzA5OV0gcGNpIDAwMDA6MDA6MDguMTogICBicmlkZ2Ugd2luZG93
IFttZW0gMHhmZTQwMDAwMC0weGZlN2ZmZmZmXQ0KDQpbICAgIDMuMDY2MTA5XSBwY2kgMDAwMDow
MDowOC4xOiAgIGJyaWRnZSB3aW5kb3cgW21lbSAweGQwMDAwMDAwLTB4ZTAxZmZmZmYgNjRiaXQg
cHJlZl0NCg0KWyAgICAzLjA4MjExMV0gcGNpIDAwMDA6MDA6MDguMTogZW5hYmxpbmcgRXh0ZW5k
ZWQgVGFncw0KDQpbICAgIDMuMDkxMjU2XSBwY2kgMDAwMDowMDowOC4xOiBQTUUjIHN1cHBvcnRl
ZCBmcm9tIEQwIEQzaG90IEQzY29sZA0KDQooWEVOKSBbICAgMTYuNjU4MzQyXSBQQ0kgYWRkIGRl
dmljZSAwMDAwOjAwOjA4LjENClsgICAgMy4xMTIxMjhdIHBjaSAwMDAwOjAwOjA4LjI6IFsxMDIy
OjE2MzVdIHR5cGUgMDEgY2xhc3MgMHgwNjA0MDAgUENJZSBSb290IFBvcnQNCg0KWyAgICAzLjEy
NzE0Ml0gcGNpIDAwMDA6MDA6MDguMjogUENJIGJyaWRnZSB0byBbYnVzIDA1XQ0KDQpbICAgIDMu
MTM3MTA3XSBwY2kgMDAwMDowMDowOC4yOiAgIGJyaWRnZSB3aW5kb3cgW21lbSAweGZlODAwMDAw
LTB4ZmU4ZmZmZmZdDQoNClsgICAgMy4xNTAxMjJdIHBjaSAwMDAwOjAwOjA4LjI6IGVuYWJsaW5n
IEV4dGVuZGVkIFRhZ3MNCg0KWyAgICAzLjE2MDI0OF0gcGNpIDAwMDA6MDA6MDguMjogUE1FIyBz
dXBwb3J0ZWQgZnJvbSBEMCBEM2hvdCBEM2NvbGQNCg0KKFhFTikgWyAgIDE2LjcyNzg0OF0gUENJ
IGFkZCBkZXZpY2UgMDAwMDowMDowOC4yDQpbICAgIDMuMTgxMTQ3XSBwY2kgMDAwMDowMDoxNC4w
OiBbMTAyMjo3OTBiXSB0eXBlIDAwIGNsYXNzIDB4MGMwNTAwIGNvbnZlbnRpb25hbCBQQ0kgZW5k
cG9pbnQNCg0KKFhFTikgWyAgIDE2Ljc1MzE1N10gUENJIGFkZCBkZXZpY2UgMDAwMDowMDoxNC4w
DQpbICAgIDMuMjA2MTE2XSBwY2kgMDAwMDowMDoxNC4zOiBbMTAyMjo3OTBlXSB0eXBlIDAwIGNs
YXNzIDB4MDYwMTAwIGNvbnZlbnRpb25hbCBQQ0kgZW5kcG9pbnQNCg0KKFhFTikgWyAgIDE2Ljc3
ODQ1OF0gUENJIGFkZCBkZXZpY2UgMDAwMDowMDoxNC4zDQpbICAgIDMuMjMxMTM2XSBwY2kgMDAw
MDowMDoxOC4wOiBbMTAyMjoxNDQ4XSB0eXBlIDAwIGNsYXNzIDB4MDYwMDAwIGNvbnZlbnRpb25h
bCBQQ0kgZW5kcG9pbnQNCg0KKFhFTikgWyAgIDE2LjgwMzc2OF0gUENJIGFkZCBkZXZpY2UgMDAw
MDowMDoxOC4wDQpbICAgIDMuMjU2MTEzXSBwY2kgMDAwMDowMDoxOC4xOiBbMTAyMjoxNDQ5XSB0
eXBlIDAwIGNsYXNzIDB4MDYwMDAwIGNvbnZlbnRpb25hbCBQQ0kgZW5kcG9pbnQNCg0KKFhFTikg
WyAgIDE2LjgyOTA3MV0gUENJIGFkZCBkZXZpY2UgMDAwMDowMDoxOC4xDQpbICAgIDMuMjgxMTEz
XSBwY2kgMDAwMDowMDoxOC4yOiBbMTAyMjoxNDRhXSB0eXBlIDAwIGNsYXNzIDB4MDYwMDAwIGNv
bnZlbnRpb25hbCBQQ0kgZW5kcG9pbnQNCg0KKFhFTikgWyAgIDE2Ljg1NDM3OV0gUENJIGFkZCBk
ZXZpY2UgMDAwMDowMDoxOC4yDQpbICAgIDMuMzA2MTEzXSBwY2kgMDAwMDowMDoxOC4zOiBbMTAy
MjoxNDRiXSB0eXBlIDAwIGNsYXNzIDB4MDYwMDAwIGNvbnZlbnRpb25hbCBQQ0kgZW5kcG9pbnQN
Cg0KKFhFTikgWyAgIDE2Ljg3OTY4NV0gUENJIGFkZCBkZXZpY2UgMDAwMDowMDoxOC4zDQpbICAg
IDMuMzMxMTEzXSBwY2kgMDAwMDowMDoxOC40OiBbMTAyMjoxNDRjXSB0eXBlIDAwIGNsYXNzIDB4
MDYwMDAwIGNvbnZlbnRpb25hbCBQQ0kgZW5kcG9pbnQNCg0KKFhFTikgWyAgIDE2LjkwNDk5MV0g
UENJIGFkZCBkZXZpY2UgMDAwMDowMDoxOC40DQpbICAgIDMuMzU2MTEzXSBwY2kgMDAwMDowMDox
OC41OiBbMTAyMjoxNDRkXSB0eXBlIDAwIGNsYXNzIDB4MDYwMDAwIGNvbnZlbnRpb25hbCBQQ0kg
ZW5kcG9pbnQNCg0KKFhFTikgWyAgIDE2LjkzMDMwMF0gUENJIGFkZCBkZXZpY2UgMDAwMDowMDox
OC41DQpbICAgIDMuMzgxMTEzXSBwY2kgMDAwMDowMDoxOC42OiBbMTAyMjoxNDRlXSB0eXBlIDAw
IGNsYXNzIDB4MDYwMDAwIGNvbnZlbnRpb25hbCBQQ0kgZW5kcG9pbnQNCg0KKFhFTikgWyAgIDE2
Ljk1NTYwNV0gUENJIGFkZCBkZXZpY2UgMDAwMDowMDoxOC42DQpbICAgIDMuNDA2MTE0XSBwY2kg
MDAwMDowMDoxOC43OiBbMTAyMjoxNDRmXSB0eXBlIDAwIGNsYXNzIDB4MDYwMDAwIGNvbnZlbnRp
b25hbCBQQ0kgZW5kcG9pbnQNCg0KKFhFTikgWyAgIDE2Ljk4MDkxN10gUENJIGFkZCBkZXZpY2Ug
MDAwMDowMDoxOC43DQpbICAgIDMuNDMxMTkzXSBwY2kgMDAwMDowMTowMC4wOiBbMTBlZTo1NzAw
XSB0eXBlIDAwIGNsYXNzIDB4MTIwMDAwIFBDSWUgRW5kcG9pbnQNCg0KWyAgICAzLjQ0NTEyNV0g
cGNpIDAwMDA6MDE6MDAuMDogQkFSIDAgW21lbSAweGZmZTAwMDAwMDAtMHhmZmVmZmZmZmZmIDY0
Yml0IHByZWZdDQoNClsgICAgMy40NjAxMTNdIHBjaSAwMDAwOjAxOjAwLjA6IEJBUiAyIFttZW0g
MHhmZmY4MDQwMDAwLTB4ZmZmODA3ZmZmZiA2NGJpdCBwcmVmXQ0KDQpbICAgIDMuNDc0MzA0XSBw
Y2kgMDAwMDowMTowMC4wOiBzdXBwb3J0cyBEMQ0KDQpbICAgIDMuNDgyMDk1XSBwY2kgMDAwMDow
MTowMC4wOiBQTUUjIHN1cHBvcnRlZCBmcm9tIEQwIEQxIEQzaG90IEQzY29sZA0KDQooWEVOKSBb
ICAgMTcuMDU0MjMyXSBQQ0kgYWRkIGRldmljZSAwMDAwOjAxOjAwLjANClsgICAgMy41MDMxMzld
IHBjaSAwMDAwOjAxOjAwLjE6IFsxMGVlOjU3MDFdIHR5cGUgMDAgY2xhc3MgMHgxMjAwMDAgUENJ
ZSBFbmRwb2ludA0KDQpbICAgIDMuNTE4MTI0XSBwY2kgMDAwMDowMTowMC4xOiBCQVIgMCBbbWVt
IDB4ZmZmODAwMDAwMC0weGZmZjgwM2ZmZmYgNjRiaXQgcHJlZl0NCg0KWyAgICAzLjUzMjExM10g
cGNpIDAwMDA6MDE6MDAuMTogQkFSIDIgW21lbSAweGZmZjAwMDAwMDAtMHhmZmY3ZmZmZmZmIDY0
Yml0IHByZWZdDQoNClsgICAgMy41NDYyOTRdIHBjaSAwMDAwOjAxOjAwLjE6IHN1cHBvcnRzIEQx
DQoNClsgICAgMy41NTQwOTddIHBjaSAwMDAwOjAxOjAwLjE6IFBNRSMgc3VwcG9ydGVkIGZyb20g
RDAgRDEgRDNob3QgRDNjb2xkDQoNCihYRU4pIFsgICAxNy4xMjc1NTRdIFBDSSBhZGQgZGV2aWNl
IDAwMDA6MDE6MDAuMQ0KWyAgICAzLjU3NjExOV0gcGNpIDAwMDA6MDA6MDIuMTogUENJIGJyaWRn
ZSB0byBbYnVzIDAxXQ0KDQpbICAgIDMuNTg2MTk0XSBwY2kgMDAwMDowMjowMC4wOiBbMTQ0ZDph
ODA4XSB0eXBlIDAwIGNsYXNzIDB4MDEwODAyIFBDSWUgRW5kcG9pbnQNCg0KKFhFTikgWyAgIDE3
LjE2MDgzNF0gMDAwMDowMjowMC4wOiBub3QgbWFwcGluZyBCQVIgW2ZlYTAwLCBmZWEwM10gaW52
YWxpZCBwb3NpdGlvbg0KWyAgICAzLjYwMDA5NV0gcGNpIDAwMDA6MDI6MDAuMDogQkFSIDAgW21l
bSAweGZlYTAwMDAwLTB4ZmVhMDNmZmYgNjRiaXRdDQoNCihYRU4pIFsgICAxNy4xODgzOTJdIDAw
MDA6MDI6MDAuMDogbm90IG1hcHBpbmcgQkFSIFtmZWEwMCwgZmVhMDNdIGludmFsaWQgcG9zaXRp
b24NCihYRU4pIFsgICAxNy4yMDI5NTRdIDAwMDA6MDI6MDAuMDogbm90IG1hcHBpbmcgQkFSIFtm
ZWEwMCwgZmVhMDNdIGludmFsaWQgcG9zaXRpb24NCihYRU4pIFsgICAxNy4yMTc1MTNdIDAwMDA6
MDI6MDAuMDogbm90IG1hcHBpbmcgQkFSIFtmZWEwMCwgZmVhMDNdIGludmFsaWQgcG9zaXRpb24N
CihYRU4pIFsgICAxNy4yMzIwNzVdIDAwMDA6MDI6MDAuMDogbm90IG1hcHBpbmcgQkFSIFtmZWEw
MCwgZmVhMDNdIGludmFsaWQgcG9zaXRpb24NCihYRU4pIFsgICAxNy4yNDY2MzddIDAwMDA6MDI6
MDAuMDogbm90IG1hcHBpbmcgQkFSIFtmZWEwMCwgZmVhMDNdIGludmFsaWQgcG9zaXRpb24NCihY
RU4pIFsgICAxNy4yNjE0NDNdIFBDSSBhZGQgZGV2aWNlIDAwMDA6MDI6MDAuMA0KWyAgICAzLjYy
NjEwOF0gcGNpIDAwMDA6MDA6MDIuMzogUENJIGJyaWRnZSB0byBbYnVzIDAyXQ0KDQpbICAgIDMu
NjM2MTk3XSBwY2kgMDAwMDowMzowMC4wOiBbMTBlYzo4MTI1XSB0eXBlIDAwIGNsYXNzIDB4MDIw
MDAwIFBDSWUgRW5kcG9pbnQNCg0KKFhFTikgWyAgIDE3LjI5NDcyOF0gMDAwMDowMzowMC4wOiBu
b3QgbWFwcGluZyBCQVIgW2ZlOTAwLCBmZTkwZl0gaW52YWxpZCBwb3NpdGlvbg0KKFhFTikgWyAg
IDE3LjMwOTI4OF0gMDAwMDowMzowMC4wOiBub3QgbWFwcGluZyBCQVIgW2ZlOTEwLCBmZTkxM10g
aW52YWxpZCBwb3NpdGlvbg0KWyAgICAzLjY1MTA5NF0gcGNpIDAwMDA6MDM6MDAuMDogQkFSIDAg
W2lvICAweGYwMDAtMHhmMGZmXQ0KDQooWEVOKSBbICAgMTcuMzM0NDIxXSAwMDAwOjAzOjAwLjA6
IG5vdCBtYXBwaW5nIEJBUiBbZmU5MDAsIGZlOTBmXSBpbnZhbGlkIHBvc2l0aW9uDQooWEVOKSBb
ICAgMTcuMzQ4OTc2XSAwMDAwOjAzOjAwLjA6IG5vdCBtYXBwaW5nIEJBUiBbZmU5MTAsIGZlOTEz
XSBpbnZhbGlkIHBvc2l0aW9uDQooWEVOKSBbICAgMTcuMzYzNTM3XSAwMDAwOjAzOjAwLjA6IG5v
dCBtYXBwaW5nIEJBUiBbZmU5MDAsIGZlOTBmXSBpbnZhbGlkIHBvc2l0aW9uDQooWEVOKSBbICAg
MTcuMzc4MDk3XSAwMDAwOjAzOjAwLjA6IG5vdCBtYXBwaW5nIEJBUiBbZmU5MTAsIGZlOTEzXSBp
bnZhbGlkIHBvc2l0aW9uDQpbICAgIDMuNjYzMDk1XSBwY2kgMDAwMDowMzowMC4wOiBCQVIgMiBb
bWVtIDB4ZmU5MDAwMDAtMHhmZTkwZmZmZiA2NGJpdF0NCg0KKFhFTikgWyAgIDE3LjQwNTY1OV0g
MDAwMDowMzowMC4wOiBub3QgbWFwcGluZyBCQVIgW2ZlOTAwLCBmZTkwZl0gaW52YWxpZCBwb3Np
dGlvbg0KKFhFTikgWyAgIDE3LjQyMDIxOF0gMDAwMDowMzowMC4wOiBub3QgbWFwcGluZyBCQVIg
W2ZlOTEwLCBmZTkxM10gaW52YWxpZCBwb3NpdGlvbg0KWyAgICAzLjY3NjA5NF0gcGNpIDAwMDA6
MDM6MDAuMDogQkFSIDQgW21lbSAweGZlOTEwMDAwLTB4ZmU5MTNmZmYgNjRiaXRdDQoNCihYRU4p
IFsgICAxNy40NDc3NzldIDAwMDA6MDM6MDAuMDogbm90IG1hcHBpbmcgQkFSIFtmZTkwMCwgZmU5
MGZdIGludmFsaWQgcG9zaXRpb24NCihYRU4pIFsgICAxNy40NjIzNDFdIDAwMDA6MDM6MDAuMDog
bm90IG1hcHBpbmcgQkFSIFtmZTkxMCwgZmU5MTNdIGludmFsaWQgcG9zaXRpb24NClsgICAgMy42
ODkzMjhdIHBjaSAwMDAwOjAzOjAwLjA6IHN1cHBvcnRzIEQxIEQyDQoNClsgICAgMy42OTgwOTVd
IHBjaSAwMDAwOjAzOjAwLjA6IFBNRSMgc3VwcG9ydGVkIGZyb20gRDAgRDEgRDIgRDNob3QgRDNj
b2xkDQoNCihYRU4pIFsgICAxNy40OTkwMzRdIFBDSSBhZGQgZGV2aWNlIDAwMDA6MDM6MDAuMA0K
WyAgICAzLjcyMDIxOV0gcGNpIDAwMDA6MDA6MDIuNDogUENJIGJyaWRnZSB0byBbYnVzIDAzXQ0K
DQpbICAgIDMuNzMwMTg0XSBwY2kgMDAwMDowNDowMC4wOiBbMTAwMjoxNjM2XSB0eXBlIDAwIGNs
YXNzIDB4MDMwMDAwIFBDSWUgTGVnYWN5IEVuZHBvaW50DQoNCihYRU4pIFsgICAxNy41MzM4ODhd
IDAwMDA6MDQ6MDAuMDogbm90IG1hcHBpbmcgQkFSIFtmZTcwMCwgZmU3N2ZdIGludmFsaWQgcG9z
aXRpb24NClsgICAgMy43NDcwOTRdIHBjaSAwMDAwOjA0OjAwLjA6IEJBUiAwIFttZW0gMHhkMDAw
MDAwMC0weGRmZmZmZmZmIDY0Yml0IHByZWZdDQoNCihYRU4pIFsgICAxNy41NjI2NzFdIDAwMDA6
MDQ6MDAuMDogbm90IG1hcHBpbmcgQkFSIFtmZTcwMCwgZmU3N2ZdIGludmFsaWQgcG9zaXRpb24N
ClsgICAgMy43NjEwOTRdIHBjaSAwMDAwOjA0OjAwLjA6IEJBUiAyIFttZW0gMHhlMDAwMDAwMC0w
eGUwMWZmZmZmIDY0Yml0IHByZWZdDQoNCihYRU4pIFsgICAxNy41OTE0MzldIDAwMDA6MDQ6MDAu
MDogbm90IG1hcHBpbmcgQkFSIFtmZTcwMCwgZmU3N2ZdIGludmFsaWQgcG9zaXRpb24NClsgICAg
My43NzYwOTRdIHBjaSAwMDAwOjA0OjAwLjA6IEJBUiA0IFtpbyAgMHhlMDAwLTB4ZTBmZl0NCg0K
KFhFTikgWyAgIDE3LjYxNjkwOF0gMDAwMDowNDowMC4wOiBub3QgbWFwcGluZyBCQVIgW2ZlNzAw
LCBmZTc3Zl0gaW52YWxpZCBwb3NpdGlvbg0KWyAgICAzLjc4ODA5NF0gcGNpIDAwMDA6MDQ6MDAu
MDogQkFSIDUgW21lbSAweGZlNzAwMDAwLTB4ZmU3N2ZmZmZdDQoNCihYRU4pIFsgICAxNy42NDM3
NzZdIDAwMDA6MDQ6MDAuMDogbm90IG1hcHBpbmcgQkFSIFtmZTcwMCwgZmU3N2ZdIGludmFsaWQg
cG9zaXRpb24NClsgICAgMy44MDExMDNdIHBjaSAwMDAwOjA0OjAwLjA6IGVuYWJsaW5nIEV4dGVu
ZGVkIFRhZ3MNCg0KWyAgICAzLjgxMDMzMF0gcGNpIDAwMDA6MDQ6MDAuMDogUE1FIyBzdXBwb3J0
ZWQgZnJvbSBEMSBEMiBEM2hvdCBEM2NvbGQNCg0KWyAgICAzLjgyMzE4OF0gcGNpIDAwMDA6MDQ6
MDAuMDogMTI2LjAxNiBHYi9zIGF2YWlsYWJsZSBQQ0llIGJhbmR3aWR0aCwgbGltaXRlZCBieSA4
LjAgR1QvcyBQQ0llIHgxNiBsaW5rIGF0IDAwMDA6MDA6MDguMSAoY2FwYWJsZSBvZiAyNTIuMDQ4
IEdiL3Mgd2l0aCAxNi4wIEdUL3MgUENJZSB4MTYgbGluaykNCg0KKFhFTikgWyAgIDE3LjcxMjI0
MV0gUENJIGFkZCBkZXZpY2UgMDAwMDowNDowMC4wDQpbICAgIDMuODU1MTI2XSBwY2kgMDAwMDow
NDowMC4xOiBbMTAwMjoxNjM3XSB0eXBlIDAwIGNsYXNzIDB4MDQwMzAwIFBDSWUgTGVnYWN5IEVu
ZHBvaW50DQoNClsgICAgMy44NTYxMTNdIHBjaSAwMDAwOjA0OjAwLjE6IEJBUiAwIFttZW0gMHhm
ZTdjODAwMC0weGZlN2NiZmZmXQ0KDQpbICAgIDMuODU3MTQ3XSBwY2kgMDAwMDowNDowMC4xOiBl
bmFibGluZyBFeHRlbmRlZCBUYWdzDQoNClsgICAgMy44NTgxNzZdIHBjaSAwMDAwOjA0OjAwLjE6
IFBNRSMgc3VwcG9ydGVkIGZyb20gRDEgRDIgRDNob3QgRDNjb2xkDQoNCihYRU4pIFsgICAxNy43
NzE1NTZdIFBDSSBhZGQgZGV2aWNlIDAwMDA6MDQ6MDAuMQ0KWyAgICAzLjg2MDEyM10gcGNpIDAw
MDA6MDQ6MDAuMjogWzEwMjI6MTVkZl0gdHlwZSAwMCBjbGFzcyAweDEwODAwMCBQQ0llIEVuZHBv
aW50DQoNClsgICAgMy44NjExMjZdIHBjaSAwMDAwOjA0OjAwLjI6IEJBUiAyIFttZW0gMHhmZTYw
MDAwMC0weGZlNmZmZmZmXQ0KDQpbICAgIDMuODYyMTE2XSBwY2kgMDAwMDowNDowMC4yOiBCQVIg
NSBbbWVtIDB4ZmU3Y2MwMDAtMHhmZTdjZGZmZl0NCg0KWyAgICAzLjg2MzExMV0gcGNpIDAwMDA6
MDQ6MDAuMjogZW5hYmxpbmcgRXh0ZW5kZWQgVGFncw0KDQooWEVOKSBbICAgMTcuODI4NzU2XSBQ
Q0kgYWRkIGRldmljZSAwMDAwOjA0OjAwLjINClsgICAgMy44NjUxMjNdIHBjaSAwMDAwOjA0OjAw
LjM6IFsxMDIyOjE2MzldIHR5cGUgMDAgY2xhc3MgMHgwYzAzMzAgUENJZSBFbmRwb2ludA0KDQoo
WEVOKSBbICAgMTcuODUxOTgzXSAwMDAwOjA0OjAwLjM6IG5vdCBtYXBwaW5nIEJBUiBbZmU1MDAs
IGZlNWZmXSBpbnZhbGlkIHBvc2l0aW9uDQpbICAgIDMuODY3MDk0XSBwY2kgMDAwMDowNDowMC4z
OiBCQVIgMCBbbWVtIDB4ZmU1MDAwMDAtMHhmZTVmZmZmZiA2NGJpdF0NCg0KKFhFTikgWyAgIDE3
Ljg3OTU0NF0gMDAwMDowNDowMC4zOiBub3QgbWFwcGluZyBCQVIgW2ZlNTAwLCBmZTVmZl0gaW52
YWxpZCBwb3NpdGlvbg0KKFhFTikgWyAgIDE3Ljg5NDEwMV0gMDAwMDowNDowMC4zOiBub3QgbWFw
cGluZyBCQVIgW2ZlNTAwLCBmZTVmZl0gaW52YWxpZCBwb3NpdGlvbg0KKFhFTikgWyAgIDE3Ljkw
ODY2MV0gMDAwMDowNDowMC4zOiBub3QgbWFwcGluZyBCQVIgW2ZlNTAwLCBmZTVmZl0gaW52YWxp
ZCBwb3NpdGlvbg0KKFhFTikgWyAgIDE3LjkyMzIyMV0gMDAwMDowNDowMC4zOiBub3QgbWFwcGlu
ZyBCQVIgW2ZlNTAwLCBmZTVmZl0gaW52YWxpZCBwb3NpdGlvbg0KKFhFTikgWyAgIDE3LjkzNzc4
M10gMDAwMDowNDowMC4zOiBub3QgbWFwcGluZyBCQVIgW2ZlNTAwLCBmZTVmZl0gaW52YWxpZCBw
b3NpdGlvbg0KWyAgICAzLjg3MzEwNV0gcGNpIDAwMDA6MDQ6MDAuMzogZW5hYmxpbmcgRXh0ZW5k
ZWQgVGFncw0KDQpbICAgIDMuODc0MTgxXSBwY2kgMDAwMDowNDowMC4zOiBQTUUjIHN1cHBvcnRl
ZCBmcm9tIEQwIEQzaG90IEQzY29sZA0KDQooWEVOKSBbICAgMTcuOTc0NzAzXSBQQ0kgYWRkIGRl
dmljZSAwMDAwOjA0OjAwLjMNClsgICAgMy44NzYxMjNdIHBjaSAwMDAwOjA0OjAwLjQ6IFsxMDIy
OjE2MzldIHR5cGUgMDAgY2xhc3MgMHgwYzAzMzAgUENJZSBFbmRwb2ludA0KDQooWEVOKSBbICAg
MTcuOTk3OTI5XSAwMDAwOjA0OjAwLjQ6IG5vdCBtYXBwaW5nIEJBUiBbZmU0MDAsIGZlNGZmXSBp
bnZhbGlkIHBvc2l0aW9uDQpbICAgIDMuODc4MDk0XSBwY2kgMDAwMDowNDowMC40OiBCQVIgMCBb
bWVtIDB4ZmU0MDAwMDAtMHhmZTRmZmZmZiA2NGJpdF0NCg0KKFhFTikgWyAgIDE4LjAyNTQ4OV0g
MDAwMDowNDowMC40OiBub3QgbWFwcGluZyBCQVIgW2ZlNDAwLCBmZTRmZl0gaW52YWxpZCBwb3Np
dGlvbg0KKFhFTikgWyAgIDE4LjA0MDA1MF0gMDAwMDowNDowMC40OiBub3QgbWFwcGluZyBCQVIg
W2ZlNDAwLCBmZTRmZl0gaW52YWxpZCBwb3NpdGlvbg0KKFhFTikgWyAgIDE4LjA1NDYwOV0gMDAw
MDowNDowMC40OiBub3QgbWFwcGluZyBCQVIgW2ZlNDAwLCBmZTRmZl0gaW52YWxpZCBwb3NpdGlv
bg0KKFhFTikgWyAgIDE4LjA2OTE2OF0gMDAwMDowNDowMC40OiBub3QgbWFwcGluZyBCQVIgW2Zl
NDAwLCBmZTRmZl0gaW52YWxpZCBwb3NpdGlvbg0KKFhFTikgWyAgIDE4LjA4MzcyOV0gMDAwMDow
NDowMC40OiBub3QgbWFwcGluZyBCQVIgW2ZlNDAwLCBmZTRmZl0gaW52YWxpZCBwb3NpdGlvbg0K
WyAgICAzLjg4NDEwNV0gcGNpIDAwMDA6MDQ6MDAuNDogZW5hYmxpbmcgRXh0ZW5kZWQgVGFncw0K
DQpbICAgIDMuODg1MTgxXSBwY2kgMDAwMDowNDowMC40OiBQTUUjIHN1cHBvcnRlZCBmcm9tIEQw
IEQzaG90IEQzY29sZA0KDQooWEVOKSBbICAgMTguMTIwNjQ5XSBQQ0kgYWRkIGRldmljZSAwMDAw
OjA0OjAwLjQNClsgICAgMy44ODcxMjNdIHBjaSAwMDAwOjA0OjAwLjU6IFsxMDIyOjE1ZTJdIHR5
cGUgMDAgY2xhc3MgMHgwNDgwMDAgUENJZSBFbmRwb2ludA0KDQpbICAgIDMuODg4MTEyXSBwY2kg
MDAwMDowNDowMC41OiBCQVIgMCBbbWVtIDB4ZmU3ODAwMDAtMHhmZTdiZmZmZl0NCg0KWyAgICAz
Ljg4OTE0Nl0gcGNpIDAwMDA6MDQ6MDAuNTogZW5hYmxpbmcgRXh0ZW5kZWQgVGFncw0KDQpbICAg
IDMuODkwMTc0XSBwY2kgMDAwMDowNDowMC41OiBQTUUjIHN1cHBvcnRlZCBmcm9tIEQwIEQzaG90
IEQzY29sZA0KDQooWEVOKSBbICAgMTguMTc4MTk2XSBQQ0kgYWRkIGRldmljZSAwMDAwOjA0OjAw
LjUNClsgICAgMy44OTIxMjFdIHBjaSAwMDAwOjA0OjAwLjY6IFsxMDIyOjE1ZTNdIHR5cGUgMDAg
Y2xhc3MgMHgwNDAzMDAgUENJZSBFbmRwb2ludA0KDQpbICAgIDMuODkzMTEyXSBwY2kgMDAwMDow
NDowMC42OiBCQVIgMCBbbWVtIDB4ZmU3YzAwMDAtMHhmZTdjN2ZmZl0NCg0KWyAgICAzLjg5NDE0
Nl0gcGNpIDAwMDA6MDQ6MDAuNjogZW5hYmxpbmcgRXh0ZW5kZWQgVGFncw0KDQpbICAgIDMuODk1
MTc0XSBwY2kgMDAwMDowNDowMC42OiBQTUUjIHN1cHBvcnRlZCBmcm9tIEQwIEQzaG90IEQzY29s
ZA0KDQooWEVOKSBbICAgMTguMjM1NzQzXSBQQ0kgYWRkIGRldmljZSAwMDAwOjA0OjAwLjYNClsg
ICAgMy44OTcxNTldIHBjaSAwMDAwOjAwOjA4LjE6IFBDSSBicmlkZ2UgdG8gW2J1cyAwNF0NCg0K
WyAgICAzLjg5ODE4MV0gcGNpIDAwMDA6MDU6MDAuMDogWzEwMjI6NzkwMV0gdHlwZSAwMCBjbGFz
cyAweDAxMDYwMSBQQ0llIEVuZHBvaW50DQoNCihYRU4pIFsgICAxOC4yNjkwMjNdIDAwMDA6MDU6
MDAuMDogbm90IG1hcHBpbmcgQkFSIFtmZTgwMSwgZmU4MDFdIGludmFsaWQgcG9zaXRpb24NCihY
RU4pIFsgICAxOC4yODM1ODJdIDAwMDA6MDU6MDAuMDogbm90IG1hcHBpbmcgQkFSIFtmZTgwMSwg
ZmU4MDFdIGludmFsaWQgcG9zaXRpb24NCihYRU4pIFsgICAxOC4yOTgxNDFdIDAwMDA6MDU6MDAu
MDogbm90IG1hcHBpbmcgQkFSIFtmZTgwMSwgZmU4MDFdIGludmFsaWQgcG9zaXRpb24NCihYRU4p
IFsgICAxOC4zMTI3MDFdIDAwMDA6MDU6MDAuMDogbm90IG1hcHBpbmcgQkFSIFtmZTgwMSwgZmU4
MDFdIGludmFsaWQgcG9zaXRpb24NCihYRU4pIFsgICAxOC4zMjcyNjFdIDAwMDA6MDU6MDAuMDog
bm90IG1hcHBpbmcgQkFSIFtmZTgwMSwgZmU4MDFdIGludmFsaWQgcG9zaXRpb24NCihYRU4pIFsg
ICAxOC4zNDE4MjJdIDAwMDA6MDU6MDAuMDogbm90IG1hcHBpbmcgQkFSIFtmZTgwMSwgZmU4MDFd
IGludmFsaWQgcG9zaXRpb24NClsgICAgMy45MDUwOTVdIHBjaSAwMDAwOjA1OjAwLjA6IEJBUiA1
IFttZW0gMHhmZTgwMTAwMC0weGZlODAxN2ZmXQ0KDQooWEVOKSBbICAgMTguMzY4MzQzXSAwMDAw
OjA1OjAwLjA6IG5vdCBtYXBwaW5nIEJBUiBbZmU4MDEsIGZlODAxXSBpbnZhbGlkIHBvc2l0aW9u
DQpbICAgIDMuOTA3MTA1XSBwY2kgMDAwMDowNTowMC4wOiBlbmFibGluZyBFeHRlbmRlZCBUYWdz
DQoNClsgICAgMy45MDgzNDhdIHBjaSAwMDAwOjA1OjAwLjA6IDEyNi4wMTYgR2IvcyBhdmFpbGFi
bGUgUENJZSBiYW5kd2lkdGgsIGxpbWl0ZWQgYnkgOC4wIEdUL3MgUENJZSB4MTYgbGluayBhdCAw
MDAwOjAwOjA4LjIgKGNhcGFibGUgb2YgMjUyLjA0OCBHYi9zIHdpdGggMTYuMCBHVC9zIFBDSWUg
eDE2IGxpbmspDQoNCihYRU4pIFsgICAxOC40MjM5ODFdIFBDSSBhZGQgZGV2aWNlIDAwMDA6MDU6
MDAuMA0KWyAgICAzLjkxMDEyMl0gcGNpIDAwMDA6MDU6MDAuMTogWzEwMjI6NzkwMV0gdHlwZSAw
MCBjbGFzcyAweDAxMDYwMSBQQ0llIEVuZHBvaW50DQoNCihYRU4pIFsgICAxOC40NDcyMDldIDAw
MDA6MDU6MDAuMTogbm90IG1hcHBpbmcgQkFSIFtmZTgwMCwgZmU4MDBdIGludmFsaWQgcG9zaXRp
b24NCihYRU4pIFsgICAxOC40NjE3NjldIDAwMDA6MDU6MDAuMTogbm90IG1hcHBpbmcgQkFSIFtm
ZTgwMCwgZmU4MDBdIGludmFsaWQgcG9zaXRpb24NCihYRU4pIFsgICAxOC40NzYzMjldIDAwMDA6
MDU6MDAuMTogbm90IG1hcHBpbmcgQkFSIFtmZTgwMCwgZmU4MDBdIGludmFsaWQgcG9zaXRpb24N
CihYRU4pIFsgICAxOC40OTA4ODhdIDAwMDA6MDU6MDAuMTogbm90IG1hcHBpbmcgQkFSIFtmZTgw
MCwgZmU4MDBdIGludmFsaWQgcG9zaXRpb24NCihYRU4pIFsgICAxOC41MDU0NDddIDAwMDA6MDU6
MDAuMTogbm90IG1hcHBpbmcgQkFSIFtmZTgwMCwgZmU4MDBdIGludmFsaWQgcG9zaXRpb24NCihY
RU4pIFsgICAxOC41MjAwMTBdIDAwMDA6MDU6MDAuMTogbm90IG1hcHBpbmcgQkFSIFtmZTgwMCwg
ZmU4MDBdIGludmFsaWQgcG9zaXRpb24NClsgICAgMy45MTcwOTZdIHBjaSAwMDAwOjA1OjAwLjE6
IEJBUiA1IFttZW0gMHhmZTgwMDAwMC0weGZlODAwN2ZmXQ0KDQooWEVOKSBbICAgMTguNTQ2NTI4
XSAwMDAwOjA1OjAwLjE6IG5vdCBtYXBwaW5nIEJBUiBbZmU4MDAsIGZlODAwXSBpbnZhbGlkIHBv
c2l0aW9uDQpbICAgIDMuOTE5MTA1XSBwY2kgMDAwMDowNTowMC4xOiBlbmFibGluZyBFeHRlbmRl
ZCBUYWdzDQoNCihYRU4pIFsgICAxOC41NzExNDFdIFBDSSBhZGQgZGV2aWNlIDAwMDA6MDU6MDAu
MQ0KWyAgICAzLjkyMTEzM10gcGNpIDAwMDA6MDA6MDguMjogUENJIGJyaWRnZSB0byBbYnVzIDA1
XQ0KDQpbICAgIDMuOTIyNzA3XSBBQ1BJOiBQQ0k6IEludGVycnVwdCBsaW5rIExOS0EgY29uZmln
dXJlZCBmb3IgSVJRIDANCg0KWyAgICAzLjkyMzEzOV0gQUNQSTogUENJOiBJbnRlcnJ1cHQgbGlu
ayBMTktCIGNvbmZpZ3VyZWQgZm9yIElSUSAwDQoNClsgICAgMy45MjQxMzJdIEFDUEk6IFBDSTog
SW50ZXJydXB0IGxpbmsgTE5LQyBjb25maWd1cmVkIGZvciBJUlEgMA0KDQpbICAgIDMuOTI1MTQx
XSBBQ1BJOiBQQ0k6IEludGVycnVwdCBsaW5rIExOS0QgY29uZmlndXJlZCBmb3IgSVJRIDANCg0K
WyAgICAzLjkyNjEzNl0gQUNQSTogUENJOiBJbnRlcnJ1cHQgbGluayBMTktFIGNvbmZpZ3VyZWQg
Zm9yIElSUSAwDQoNClsgICAgMy45MjcxMjldIEFDUEk6IFBDSTogSW50ZXJydXB0IGxpbmsgTE5L
RiBjb25maWd1cmVkIGZvciBJUlEgMA0KDQpbICAgIDMuOTI4MTI5XSBBQ1BJOiBQQ0k6IEludGVy
cnVwdCBsaW5rIExOS0cgY29uZmlndXJlZCBmb3IgSVJRIDANCg0KWyAgICAzLjkyOTEyOV0gQUNQ
STogUENJOiBJbnRlcnJ1cHQgbGluayBMTktIIGNvbmZpZ3VyZWQgZm9yIElSUSAwDQoNClsgICAg
My45MzEwMjVdIHhlbjpiYWxsb29uOiBJbml0aWFsaXNpbmcgYmFsbG9vbiBkcml2ZXINCg0KWyAg
ICA0LjAwNDUyMV0gaW9tbXU6IERlZmF1bHQgZG9tYWluIHR5cGU6IFRyYW5zbGF0ZWQNCg0KWyAg
ICA0LjAwNTA5OF0gaW9tbXU6IERNQSBkb21haW4gVExCIGludmFsaWRhdGlvbiBwb2xpY3k6IGxh
enkgbW9kZQ0KDQpbICAgIDQuMDA2MTQ1XSBTQ1NJIHN1YnN5c3RlbSBpbml0aWFsaXplZA0KDQpb
ICAgIDQuMDA3MTA3XSBsaWJhdGEgdmVyc2lvbiAzLjAwIGxvYWRlZC4NCg0KWyAgICA0LjAwODEx
MF0gQUNQSTogYnVzIHR5cGUgVVNCIHJlZ2lzdGVyZWQNCg0KWyAgICA0LjAwOTEwMl0gdXNiY29y
ZTogcmVnaXN0ZXJlZCBuZXcgaW50ZXJmYWNlIGRyaXZlciB1c2Jmcw0KDQpbICAgIDQuMDEwMDk3
XSB1c2Jjb3JlOiByZWdpc3RlcmVkIG5ldyBpbnRlcmZhY2UgZHJpdmVyIGh1Yg0KDQpbICAgIDQu
MDExMTAxXSB1c2Jjb3JlOiByZWdpc3RlcmVkIG5ldyBkZXZpY2UgZHJpdmVyIHVzYg0KDQpbICAg
IDQuMDEyMTAzXSBwcHNfY29yZTogTGludXhQUFMgQVBJIHZlci4gMSByZWdpc3RlcmVkDQoNClsg
ICAgNC4wMTMwOTRdIHBwc19jb3JlOiBTb2Z0d2FyZSB2ZXIuIDUuMy42IC0gQ29weXJpZ2h0IDIw
MDUtMjAwNyBSb2RvbGZvIEdpb21ldHRpIDxnaW9tZXR0aUBsaW51eC5pdD4NCg0KWyAgICA0LjAx
NDA5Nl0gUFRQIGNsb2NrIHN1cHBvcnQgcmVnaXN0ZXJlZA0KDQpbICAgIDQuMDE1MTM4XSBlZml2
YXJzOiBSZWdpc3RlcmVkIGVmaXZhcnMgb3BlcmF0aW9ucw0KDQpbICAgIDQuMDE2MTEyXSBBZHZh
bmNlZCBMaW51eCBTb3VuZCBBcmNoaXRlY3R1cmUgRHJpdmVyIEluaXRpYWxpemVkLg0KDQpbICAg
IDQuMDE3MTg0XSBOZXRMYWJlbDogSW5pdGlhbGl6aW5nDQoNClsgICAgNC4wMTgwOTRdIE5ldExh
YmVsOiAgZG9tYWluIGhhc2ggc2l6ZSA9IDEyOA0KDQpbICAgIDQuMDE5MDk0XSBOZXRMYWJlbDog
IHByb3RvY29scyA9IFVOTEFCRUxFRCBDSVBTT3Y0IENBTElQU08NCg0KWyAgICA0LjAyMDEwNF0g
TmV0TGFiZWw6ICB1bmxhYmVsZWQgdHJhZmZpYyBhbGxvd2VkIGJ5IGRlZmF1bHQNCg0KWyAgICA0
LjAyMTEyNl0gUENJOiBVc2luZyBBQ1BJIGZvciBJUlEgcm91dGluZw0KDQpbICAgIDQuMDI5OTg0
XSBQQ0k6IHBjaV9jYWNoZV9saW5lX3NpemUgc2V0IHRvIDY0IGJ5dGVzDQoNClsgICAgNC4wMzAy
MDNdIHJlc291cmNlOiBFeHBhbmRlZCByZXNvdXJjZSBSZXNlcnZlZCBkdWUgdG8gY29uZmxpY3Qg
d2l0aCBQQ0kgQnVzIDAwMDA6MDANCg0KWyAgICA0LjAzMTA5NV0gcmVzb3VyY2U6IEV4cGFuZGVk
IHJlc291cmNlIFJlc2VydmVkIGR1ZSB0byBjb25mbGljdCB3aXRoIFBDSSBCdXMgMDAwMDowMA0K
DQpbICAgIDQuMDMyMDk1XSBlODIwOiByZXNlcnZlIFJBTSBidWZmZXIgW21lbSAweDA5YmZmMDAw
LTB4MGJmZmZmZmZdDQoNClsgICAgNC4wMzMwOTVdIGU4MjA6IHJlc2VydmUgUkFNIGJ1ZmZlciBb
bWVtIDB4MGEyMDAwMDAtMHgwYmZmZmZmZl0NCg0KWyAgICA0LjAzNDA5NF0gZTgyMDogcmVzZXJ2
ZSBSQU0gYnVmZmVyIFttZW0gMHhjYWJjOTAwMC0weGNiZmZmZmZmXQ0KDQpbICAgIDQuMDM1MDk0
XSBlODIwOiByZXNlcnZlIFJBTSBidWZmZXIgW21lbSAweGNkZmZmZWE4LTB4Y2ZmZmZmZmZdDQoN
ClsgICAgNC4wMzYwOTVdIGU4MjA6IHJlc2VydmUgUkFNIGJ1ZmZlciBbbWVtIDB4ODBmMzQwMDAw
LTB4ODBmZmZmZmZmXQ0KDQpbICAgIDQuMDM3MTEyXSBwY2kgMDAwMDowNDowMC4wOiB2Z2FhcmI6
IHNldHRpbmcgYXMgYm9vdCBWR0EgZGV2aWNlDQoNClsgICAgNC4wMzgwODldIHBjaSAwMDAwOjA0
OjAwLjA6IHZnYWFyYjogYnJpZGdlIGNvbnRyb2wgcG9zc2libGUNCg0KWyAgICA0LjAzODA4OV0g
cGNpIDAwMDA6MDQ6MDAuMDogdmdhYXJiOiBWR0EgZGV2aWNlIGFkZGVkOiBkZWNvZGVzPWlvK21l
bSxvd25zPW5vbmUsbG9ja3M9bm9uZQ0KDQpbICAgIDQuMDM4MDk0XSB2Z2FhcmI6IGxvYWRlZA0K
DQpbICAgIDQuMDM5MjI2XSBjbG9ja3NvdXJjZTogU3dpdGNoZWQgdG8gY2xvY2tzb3VyY2UgdHNj
LWVhcmx5DQoNClsgICAgNC4wNTAxMjZdIFZGUzogRGlzayBxdW90YXMgZHF1b3RfNi42LjANCg0K
WyAgICA0LjA1ODA0NF0gVkZTOiBEcXVvdC1jYWNoZSBoYXNoIHRhYmxlIGVudHJpZXM6IDUxMiAo
b3JkZXIgMCwgNDA5NiBieXRlcykNCg0KWyAgICA0LjA3MTk0MV0gcG5wOiBQblAgQUNQSSBpbml0
DQoNClsgICAgNC4wNzgyMjldIHN5c3RlbSAwMDowMDogW21lbSAweGYwMDAwMDAwLTB4ZjdmZmZm
ZmZdIGhhcyBiZWVuIHJlc2VydmVkDQoNClsgICAgNC4wOTE3MDFdIHN5c3RlbSAwMDowMjogW2lv
ICAweDBhMDAtMHgwYTBmXSBoYXMgYmVlbiByZXNlcnZlZA0KDQpbICAgIDQuMTAzNDU3XSBzeXN0
ZW0gMDA6MDI6IFtpbyAgMHgwYTEwLTB4MGExZl0gaGFzIGJlZW4gcmVzZXJ2ZWQNCg0KWyAgICA0
LjExNTQxMV0gc3lzdGVtIDAwOjAyOiBbaW8gIDB4MGEyMC0weDBhMmZdIGhhcyBiZWVuIHJlc2Vy
dmVkDQoNClsgICAgNC4xMjc2MTNdIHBucCAwMDowMzogW2RtYSAwIGRpc2FibGVkXQ0KDQpbICAg
IDQuMTM1NDA4XSBwbnAgMDA6MDQ6IFtkbWEgMCBkaXNhYmxlZF0NCg0KWyAgICA0LjE0MzIwNV0g
c3lzdGVtIDAwOjA1OiBbaW8gIDB4MDRkMC0weDA0ZDFdIGhhcyBiZWVuIHJlc2VydmVkDQoNClsg
ICAgNC4xNTQ5MzJdIHN5c3RlbSAwMDowNTogW2lvICAweDA0MGJdIGhhcyBiZWVuIHJlc2VydmVk
DQoNClsgICAgNC4xNjU2ODFdIHN5c3RlbSAwMDowNTogW2lvICAweDA0ZDZdIGhhcyBiZWVuIHJl
c2VydmVkDQoNClsgICAgNC4xNzY0MjhdIHN5c3RlbSAwMDowNTogW2lvICAweDBjMDAtMHgwYzAx
XSBoYXMgYmVlbiByZXNlcnZlZA0KDQpbICAgIDQuMTg4Mzg0XSBzeXN0ZW0gMDA6MDU6IFtpbyAg
MHgwYzE0XSBoYXMgYmVlbiByZXNlcnZlZA0KDQpbICAgIDQuMTk5MTMwXSBzeXN0ZW0gMDA6MDU6
IFtpbyAgMHgwYzUwLTB4MGM1MV0gaGFzIGJlZW4gcmVzZXJ2ZWQNCg0KWyAgICA0LjIxMTA5M10g
c3lzdGVtIDAwOjA1OiBbaW8gIDB4MGM1Ml0gaGFzIGJlZW4gcmVzZXJ2ZWQNCg0KWyAgICA0LjIy
MTgzOF0gc3lzdGVtIDAwOjA1OiBbaW8gIDB4MGM2Y10gaGFzIGJlZW4gcmVzZXJ2ZWQNCg0KWyAg
ICA0LjIzMjU5MF0gc3lzdGVtIDAwOjA1OiBbaW8gIDB4MGM2Zl0gaGFzIGJlZW4gcmVzZXJ2ZWQN
Cg0KWyAgICA0LjI0MzMzMF0gc3lzdGVtIDAwOjA1OiBbaW8gIDB4MGNkMC0weDBjZDFdIGhhcyBi
ZWVuIHJlc2VydmVkDQoNClsgICAgNC4yNTUyOTNdIHN5c3RlbSAwMDowNTogW2lvICAweDBjZDIt
MHgwY2QzXSBoYXMgYmVlbiByZXNlcnZlZA0KDQpbICAgIDQuMjY3MjUyXSBzeXN0ZW0gMDA6MDU6
IFtpbyAgMHgwY2Q0LTB4MGNkNV0gaGFzIGJlZW4gcmVzZXJ2ZWQNCg0KWyAgICA0LjI3OTIxM10g
c3lzdGVtIDAwOjA1OiBbaW8gIDB4MGNkNi0weDBjZDddIGhhcyBiZWVuIHJlc2VydmVkDQoNClsg
ICAgNC4yOTExNzNdIHN5c3RlbSAwMDowNTogW2lvICAweDBjZDgtMHgwY2RmXSBoYXMgYmVlbiBy
ZXNlcnZlZA0KDQpbICAgIDQuMzAzMTMyXSBzeXN0ZW0gMDA6MDU6IFtpbyAgMHgwODAwLTB4MDg5
Zl0gaGFzIGJlZW4gcmVzZXJ2ZWQNCg0KWyAgICA0LjMxNTA5NF0gc3lzdGVtIDAwOjA1OiBbaW8g
IDB4MGIwMC0weDBiMGZdIGhhcyBiZWVuIHJlc2VydmVkDQoNClsgICAgNC4zMjcwNTBdIHN5c3Rl
bSAwMDowNTogW2lvICAweDBiMjAtMHgwYjNmXSBoYXMgYmVlbiByZXNlcnZlZA0KDQpbICAgIDQu
MzM5MDEzXSBzeXN0ZW0gMDA6MDU6IFtpbyAgMHgwOTAwLTB4MDkwZl0gaGFzIGJlZW4gcmVzZXJ2
ZWQNCg0KWyAgICA0LjM1MDk3NF0gc3lzdGVtIDAwOjA1OiBbaW8gIDB4MDkxMC0weDA5MWZdIGhh
cyBiZWVuIHJlc2VydmVkDQoNClsgICAgNC4zNjI5MjhdIHN5c3RlbSAwMDowNTogW21lbSAweGZl
YzAwMDAwLTB4ZmVjMDBmZmZdIGNvdWxkIG5vdCBiZSByZXNlcnZlZA0KDQpbICAgIDQuMzc2OTY2
XSBzeXN0ZW0gMDA6MDU6IFttZW0gMHhmZWMwMTAwMC0weGZlYzAxZmZmXSBjb3VsZCBub3QgYmUg
cmVzZXJ2ZWQNCg0KWyAgICA0LjM5MTAxM10gc3lzdGVtIDAwOjA1OiBbbWVtIDB4ZmVkYzAwMDAt
MHhmZWRjMGZmZl0gaGFzIGJlZW4gcmVzZXJ2ZWQNCg0KWyAgICA0LjQwNDM1MV0gc3lzdGVtIDAw
OjA1OiBbbWVtIDB4ZmVlMDAwMDAtMHhmZWUwMGZmZl0gaGFzIGJlZW4gcmVzZXJ2ZWQNCg0KWyAg
ICA0LjQxNzY5OF0gc3lzdGVtIDAwOjA1OiBbbWVtIDB4ZmVkODAwMDAtMHhmZWQ4ZmZmZl0gY291
bGQgbm90IGJlIHJlc2VydmVkDQoNClsgICAgNC40MzE3NDZdIHN5c3RlbSAwMDowNTogW21lbSAw
eGZlYzEwMDAwLTB4ZmVjMTBmZmZdIGNvdWxkIG5vdCBiZSByZXNlcnZlZA0KDQpbICAgIDQuNDQ1
Nzc5XSBzeXN0ZW0gMDA6MDU6IFttZW0gMHhmZjAwMDAwMC0weGZmZmZmZmZmXSBoYXMgYmVlbiBy
ZXNlcnZlZA0KDQpbICAgIDQuNDU5ODM1XSBwbnA6IFBuUCBBQ1BJOiBmb3VuZCA2IGRldmljZXMN
Cg0KWyAgICA0LjQ3NTczNl0gUE0tVGltZXIgZmFpbGVkIGNvbnNpc3RlbmN5IGNoZWNrICAoMHhm
ZmZmZmYpIC0gYWJvcnRpbmcuDQoNClsgICAgNC40ODg0NTBdIE5FVDogUmVnaXN0ZXJlZCBQRl9J
TkVUIHByb3RvY29sIGZhbWlseQ0KDQpbICAgIDQuNDk4MzYxXSBJUCBpZGVudHMgaGFzaCB0YWJs
ZSBlbnRyaWVzOiA2NTUzNiAob3JkZXI6IDcsIDUyNDI4OCBieXRlcywgbGluZWFyKQ0KDQpbICAg
IDQuNTEzNzQzXSB0Y3BfbGlzdGVuX3BvcnRhZGRyX2hhc2ggaGFzaCB0YWJsZSBlbnRyaWVzOiAy
MDQ4IChvcmRlcjogMywgMzI3NjggYnl0ZXMsIGxpbmVhcikNCg0KWyAgICA0LjUzMDYxNF0gVGFi
bGUtcGVydHVyYiBoYXNoIHRhYmxlIGVudHJpZXM6IDY1NTM2IChvcmRlcjogNiwgMjYyMTQ0IGJ5
dGVzLCBsaW5lYXIpDQoNClsgICAgNC41NDYyMTBdIFRDUCBlc3RhYmxpc2hlZCBoYXNoIHRhYmxl
IGVudHJpZXM6IDMyNzY4IChvcmRlcjogNiwgMjYyMTQ0IGJ5dGVzLCBsaW5lYXIpDQoNClsgICAg
NC41NjIxNzJdIFRDUCBiaW5kIGhhc2ggdGFibGUgZW50cmllczogMzI3NjggKG9yZGVyOiA4LCAx
MDQ4NTc2IGJ5dGVzLCBsaW5lYXIpDQoNClsgICAgNC41NzcxMTNdIFRDUDogSGFzaCB0YWJsZXMg
Y29uZmlndXJlZCAoZXN0YWJsaXNoZWQgMzI3NjggYmluZCAzMjc2OCkNCg0KWyAgICA0LjU5MDI1
Nl0gVURQIGhhc2ggdGFibGUgZW50cmllczogMjA0OCAob3JkZXI6IDQsIDY1NTM2IGJ5dGVzLCBs
aW5lYXIpDQoNClsgICAgNC42MDM3NTJdIFVEUC1MaXRlIGhhc2ggdGFibGUgZW50cmllczogMjA0
OCAob3JkZXI6IDQsIDY1NTM2IGJ5dGVzLCBsaW5lYXIpDQoNClsgICAgNC42MTgxNTZdIE5FVDog
UmVnaXN0ZXJlZCBQRl9VTklYL1BGX0xPQ0FMIHByb3RvY29sIGZhbWlseQ0KDQpbICAgIDQuNjI5
ODI4XSBSUEM6IFJlZ2lzdGVyZWQgbmFtZWQgVU5JWCBzb2NrZXQgdHJhbnNwb3J0IG1vZHVsZS4N
Cg0KWyAgICA0LjY0MTU0MV0gUlBDOiBSZWdpc3RlcmVkIHVkcCB0cmFuc3BvcnQgbW9kdWxlLg0K
DQpbICAgIDQuNjUxMzY4XSBSUEM6IFJlZ2lzdGVyZWQgdGNwIHRyYW5zcG9ydCBtb2R1bGUuDQoN
ClsgICAgNC42NjA2MDZdIFJQQzogUmVnaXN0ZXJlZCB0Y3Atd2l0aC10bHMgdHJhbnNwb3J0IG1v
ZHVsZS4NCg0KWyAgICA0LjY3MTY5N10gUlBDOiBSZWdpc3RlcmVkIHRjcCBORlN2NC4xIGJhY2tj
aGFubmVsIHRyYW5zcG9ydCBtb2R1bGUuDQoNClsgICAgNC42ODUyMTRdIHBjaSAwMDAwOjAwOjAy
LjE6IFBDSSBicmlkZ2UgdG8gW2J1cyAwMV0NCg0KWyAgICA0LjY5NDk5MV0gcGNpIDAwMDA6MDA6
MDIuMTogICBicmlkZ2Ugd2luZG93IFttZW0gMHhmZmUwMDAwMDAwLTB4ZmZmODBmZmZmZiA2NGJp
dCBwcmVmXQ0KDQpbICAgIDQuNzExMjc0XSBwY2kgMDAwMDowMDowMi4zOiBQQ0kgYnJpZGdlIHRv
IFtidXMgMDJdDQoNClsgICAgNC43MjEzMjVdIHBjaSAwMDAwOjAwOjAyLjM6ICAgYnJpZGdlIHdp
bmRvdyBbbWVtIDB4ZmVhMDAwMDAtMHhmZWFmZmZmZl0NCg0KWyAgICA0LjczNTAxN10gcGNpIDAw
MDA6MDA6MDIuNDogUENJIGJyaWRnZSB0byBbYnVzIDAzXQ0KDQpbICAgIDQuNzQ1MDcxXSBwY2kg
MDAwMDowMDowMi40OiAgIGJyaWRnZSB3aW5kb3cgW2lvICAweGYwMDAtMHhmZmZmXQ0KDQpbICAg
IDQuNzU3Mzc3XSBwY2kgMDAwMDowMDowMi40OiAgIGJyaWRnZSB3aW5kb3cgW21lbSAweGZlOTAw
MDAwLTB4ZmU5ZmZmZmZdDQoNClsgICAgNC43NzEwNzVdIHBjaSAwMDAwOjAwOjA4LjE6IFBDSSBi
cmlkZ2UgdG8gW2J1cyAwNF0NCg0KWyAgICA0Ljc4MTEyMF0gcGNpIDAwMDA6MDA6MDguMTogICBi
cmlkZ2Ugd2luZG93IFtpbyAgMHhlMDAwLTB4ZWZmZl0NCg0KWyAgICA0Ljc5MzQzMl0gcGNpIDAw
MDA6MDA6MDguMTogICBicmlkZ2Ugd2luZG93IFttZW0gMHhmZTQwMDAwMC0weGZlN2ZmZmZmXQ0K
DQpbICAgIDQuODA3MTI0XSBwY2kgMDAwMDowMDowOC4xOiAgIGJyaWRnZSB3aW5kb3cgW21lbSAw
eGQwMDAwMDAwLTB4ZTAxZmZmZmYgNjRiaXQgcHJlZl0NCg0KWyAgICA0LjgyMjczMF0gcGNpIDAw
MDA6MDA6MDguMjogUENJIGJyaWRnZSB0byBbYnVzIDA1XQ0KDQpbICAgIDQuODMyNzgxXSBwY2kg
MDAwMDowMDowOC4yOiAgIGJyaWRnZSB3aW5kb3cgW21lbSAweGZlODAwMDAwLTB4ZmU4ZmZmZmZd
DQoNClsgICAgNC44NDY0NzddIHBjaV9idXMgMDAwMDowMDogcmVzb3VyY2UgNCBbaW8gIDB4MDAw
MC0weDAzYWYgd2luZG93XQ0KDQpbICAgIDQuODU4OTQ4XSBwY2lfYnVzIDAwMDA6MDA6IHJlc291
cmNlIDUgW2lvICAweDAzZTAtMHgwY2Y3IHdpbmRvd10NCg0KWyAgICA0Ljg3MTQyNV0gcGNpX2J1
cyAwMDAwOjAwOiByZXNvdXJjZSA2IFtpbyAgMHgwM2IwLTB4MDNkZiB3aW5kb3ddDQoNClsgICAg
NC44ODM5MDRdIHBjaV9idXMgMDAwMDowMDogcmVzb3VyY2UgNyBbaW8gIDB4MGQwMC0weGZmZmYg
d2luZG93XQ0KDQpbICAgIDQuODk2Mzg3XSBwY2lfYnVzIDAwMDA6MDA6IHJlc291cmNlIDggW21l
bSAweDAwMGEwMDAwLTB4MDAwZGZmZmYgd2luZG93XQ0KDQpbICAgIDQuOTEwMjU1XSBwY2lfYnVz
IDAwMDA6MDA6IHJlc291cmNlIDkgW21lbSAweGQwMDAwMDAwLTB4ZmViZmZmZmYgd2luZG93XQ0K
DQpbICAgIDQuOTI0MTIzXSBwY2lfYnVzIDAwMDA6MDA6IHJlc291cmNlIDEwIFttZW0gMHhmZWUw
MDAwMC0weGZmZmZmZmZmIHdpbmRvd10NCg0KWyAgICA0LjkzODE2Ml0gcGNpX2J1cyAwMDAwOjAw
OiByZXNvdXJjZSAxMSBbbWVtIDB4ODMwMDAwMDAwLTB4ZmZmZmZmZmZmZiB3aW5kb3ddDQoNClsg
ICAgNC45NTI3MjRdIHBjaV9idXMgMDAwMDowMTogcmVzb3VyY2UgMiBbbWVtIDB4ZmZlMDAwMDAw
MC0weGZmZjgwZmZmZmYgNjRiaXQgcHJlZl0NCg0KWyAgICA0Ljk2Nzk3N10gcGNpX2J1cyAwMDAw
OjAyOiByZXNvdXJjZSAxIFttZW0gMHhmZWEwMDAwMC0weGZlYWZmZmZmXQ0KDQpbICAgIDQuOTgw
NjI0XSBwY2lfYnVzIDAwMDA6MDM6IHJlc291cmNlIDAgW2lvICAweGYwMDAtMHhmZmZmXQ0KDQpb
ICAgIDQuOTkxODkxXSBwY2lfYnVzIDAwMDA6MDM6IHJlc291cmNlIDEgW21lbSAweGZlOTAwMDAw
LTB4ZmU5ZmZmZmZdDQoNClsgICAgNS4wMDQ1NDhdIHBjaV9idXMgMDAwMDowNDogcmVzb3VyY2Ug
MCBbaW8gIDB4ZTAwMC0weGVmZmZdDQoNClsgICAgNS4wMTU4MTRdIHBjaV9idXMgMDAwMDowNDog
cmVzb3VyY2UgMSBbbWVtIDB4ZmU0MDAwMDAtMHhmZTdmZmZmZl0NCg0KWyAgICA1LjAyODQ2NF0g
cGNpX2J1cyAwMDAwOjA0OiByZXNvdXJjZSAyIFttZW0gMHhkMDAwMDAwMC0weGUwMWZmZmZmIDY0
Yml0IHByZWZdDQoNClsgICAgNS4wNDMwMzFdIHBjaV9idXMgMDAwMDowNTogcmVzb3VyY2UgMSBb
bWVtIDB4ZmU4MDAwMDAtMHhmZThmZmZmZl0NCg0KWyAgICA1LjA1NTg1NF0gcGNpIDAwMDA6MDE6
MDAuMDogQ0xTIG1pc21hdGNoICg2NCAhPSA0ODQpLCB1c2luZyA2NCBieXRlcw0KDQpbICAgIDUu
MDY4ODgxXSBwY2kgMDAwMDowNDowMC4xOiBEMCBwb3dlciBzdGF0ZSBkZXBlbmRzIG9uIDAwMDA6
MDQ6MDAuMA0KDQpbICAgIDUuMDgxNjg2XSBwY2kgMDAwMDowNDowMC4xOiBxdWlya19ncHVfaGRh
KzB4MC8weDEwIHRvb2sgMTI1MjAgdXNlY3MNCg0KWyAgICA1LjA5NDY5Nl0gcGNpIDAwMDA6MDQ6
MDAuMzogZXh0ZW5kaW5nIGRlbGF5IGFmdGVyIHBvd2VyLW9uIGZyb20gRDNob3QgdG8gMjAgbXNl
Yw0KDQpbICAgIDUuMTA5OTM2XSBwY2kgMDAwMDowNDowMC4zOiBxdWlya19yeXplbl94aGNpX2Qz
aG90KzB4MC8weDEwIHRvb2sgMTQ4ODMgdXNlY3MNCg0KWyAgICA1LjEyNDc3NF0gcGNpIDAwMDA6
MDQ6MDAuNDogZXh0ZW5kaW5nIGRlbGF5IGFmdGVyIHBvd2VyLW9uIGZyb20gRDNob3QgdG8gMjAg
bXNlYw0KDQpbICAgIDUuMTM5NzUyXSBwY2kgMDAwMDowNDowMC40OiBxdWlya19yeXplbl94aGNp
X2QzaG90KzB4MC8weDEwIHRvb2sgMTQ2MjcgdXNlY3MNCg0KWyAgICA1LjE1NDM4MV0gUENJLURN
QTogVXNpbmcgc29mdHdhcmUgYm91bmNlIGJ1ZmZlcmluZyBmb3IgSU8gKFNXSU9UTEIpDQoNClsg
ICAgNS4xNTQ0NDldIFVucGFja2luZyBpbml0cmFtZnMuLi4NCg0KWyAgICA1LjE2NzMwN10gc29m
dHdhcmUgSU8gVExCOiBtYXBwZWQgW21lbSAweDAwMDAwMDAwYzZiYzkwMDAtMHgwMDAwMDAwMGNh
YmM5MDAwXSAoNjRNQikNCg0KWyAgICA1LjE2NzM0N10gY2xvY2tzb3VyY2U6IHRzYzogbWFzazog
MHhmZmZmZmZmZmZmZmZmZmZmIG1heF9jeWNsZXM6IDB4MjliOTJmZDIwM2EsIG1heF9pZGxlX25z
OiA0NDA3OTUyMzI5MTggbnMNCg0KWyAgICA1LjIxMDM2MV0gY2xvY2tzb3VyY2U6IFN3aXRjaGVk
IHRvIGNsb2Nrc291cmNlIHRzYw0KDQpbICAgIDUuMjIxMzg3XSBJbml0aWFsaXNlIHN5c3RlbSB0
cnVzdGVkIGtleXJpbmdzDQoNClsgICAgNS4yMzAyMjFdIHdvcmtpbmdzZXQ6IHRpbWVzdGFtcF9i
aXRzPTU2IG1heF9vcmRlcj0yMCBidWNrZXRfb3JkZXI9MA0KDQpbICAgIDUuMjQzMzc2XSBORlM6
IFJlZ2lzdGVyaW5nIHRoZSBpZF9yZXNvbHZlciBrZXkgdHlwZQ0KDQpbICAgIDUuMjUzMDIxXSBG
cmVlaW5nIGluaXRyZCBtZW1vcnk6IDIwNzA1NksNCg0KWyAgICA1LjI1MzM1NV0gS2V5IHR5cGUg
aWRfcmVzb2x2ZXIgcmVnaXN0ZXJlZA0KDQpbICAgIDUuMjcwMTU1XSBLZXkgdHlwZSBpZF9sZWdh
Y3kgcmVnaXN0ZXJlZA0KDQpbICAgIDUuMjc4Mzg0XSA5cDogSW5zdGFsbGluZyB2OWZzIDlwMjAw
MCBmaWxlIHN5c3RlbSBzdXBwb3J0DQoNClsgICAgNS4yOTg2ODNdIEtleSB0eXBlIGFzeW1tZXRy
aWMgcmVnaXN0ZXJlZA0KDQpbICAgIDUuMzA2Njk2XSBBc3ltbWV0cmljIGtleSBwYXJzZXIgJ3g1
MDknIHJlZ2lzdGVyZWQNCg0KWyAgICA1LjMxNjU5MF0gQmxvY2sgbGF5ZXIgU0NTSSBnZW5lcmlj
IChic2cpIGRyaXZlciB2ZXJzaW9uIDAuNCBsb2FkZWQgKG1ham9yIDI1MSkNCg0KWyAgICA1LjMz
MTQ5OF0gaW8gc2NoZWR1bGVyIG1xLWRlYWRsaW5lIHJlZ2lzdGVyZWQNCg0KWyAgICA1LjM0MDY3
Ml0gaW8gc2NoZWR1bGVyIGt5YmVyIHJlZ2lzdGVyZWQNCg0KWyAgICA1LjM0OTI0NF0gcGNpZXBv
cnQgMDAwMDowMDowMi4xOiBQTUU6IFNpZ25hbGluZyB3aXRoIElSUSA0Mw0KDQpbICAgIDUuMzYw
ODQ3XSBwY2llcG9ydCAwMDAwOjAwOjAyLjM6IFBNRTogU2lnbmFsaW5nIHdpdGggSVJRIDQ0DQoN
ClsgICAgNS4zNzI0MjVdIHBjaWVwb3J0IDAwMDA6MDA6MDIuNDogUE1FOiBTaWduYWxpbmcgd2l0
aCBJUlEgNDUNCg0KWyAgICA1LjM4NDAzNV0gcGNpZXBvcnQgMDAwMDowMDowOC4xOiBQTUU6IFNp
Z25hbGluZyB3aXRoIElSUSA0Ng0KDQpbICAgIDUuMzk1NjY5XSBwY2llcG9ydCAwMDAwOjAwOjA4
LjI6IFBNRTogU2lnbmFsaW5nIHdpdGggSVJRIDQ3DQoNClsgICAgNS40MDcyMDldIGlucHV0OiBQ
b3dlciBCdXR0b24gYXMgL2RldmljZXMvTE5YU1lTVE06MDAvTE5YU1lCVVM6MDAvUE5QMEMwQzow
MC9pbnB1dC9pbnB1dDANCg0KWyAgICA1LjQyMzg0NF0gQUNQSTogYnV0dG9uOiBQb3dlciBCdXR0
b24gW1BXUkJdDQoNClsgICAgNS40MzI2OTBdIGlucHV0OiBQb3dlciBCdXR0b24gYXMgL2Rldmlj
ZXMvTE5YU1lTVE06MDAvTE5YUFdSQk46MDAvaW5wdXQvaW5wdXQxDQoNClsgICAgNS40NDc2NTBd
IEFDUEk6IGJ1dHRvbjogUG93ZXIgQnV0dG9uIFtQV1JGXQ0KDQpbICAgIDUuNDU2NDQzXSBBQ1BJ
OiB2aWRlbzogVmlkZW8gRGV2aWNlIFtWR0FdIChtdWx0aS1oZWFkOiB5ZXMgIHJvbTogbm8gIHBv
c3Q6IG5vKQ0KDQpbICAgIDUuNDcxNDAxXSBpbnB1dDogVmlkZW8gQnVzIGFzIC9kZXZpY2VzL0xO
WFNZU1RNOjAwL0xOWFNZQlVTOjAwL1BOUDBBMDg6MDAvZGV2aWNlOjBlL0xOWFZJREVPOjAwL2lu
cHV0L2lucHV0Mg0KDQpbICAgIDUuNDkxNTc3XSBbRmlybXdhcmUgQnVnXTogQUNQSSBNV0FJVCBD
LXN0YXRlIDB4MCBub3Qgc3VwcG9ydGVkIGJ5IEhXICgweDApDQoNClsgICAgNS41MDU2NDZdIEFD
UEk6IFxfU0JfLlBMVEYuUDAwMDogRm91bmQgMyBpZGxlIHN0YXRlcw0KDQpbICAgIDUuNTE2MTE0
XSBbRmlybXdhcmUgQnVnXTogQUNQSSBNV0FJVCBDLXN0YXRlIDB4MCBub3Qgc3VwcG9ydGVkIGJ5
IEhXICgweDApDQoNClsgICAgNS41MzAyNTRdIEFDUEk6IFxfU0JfLlBMVEYuUDAwMTogRm91bmQg
MyBpZGxlIHN0YXRlcw0KDQpbICAgIDUuNTQwNzEzXSBbRmlybXdhcmUgQnVnXTogQUNQSSBNV0FJ
VCBDLXN0YXRlIDB4MCBub3Qgc3VwcG9ydGVkIGJ5IEhXICgweDApDQoNClsgICAgNS41NTQ4Njhd
IEFDUEk6IFxfU0JfLlBMVEYuUDAwMjogRm91bmQgMyBpZGxlIHN0YXRlcw0KDQpbICAgIDUuNTY1
NTEwXSB0aGVybWFsIExOWFRIRVJNOjAwOiByZWdpc3RlcmVkIGFzIHRoZXJtYWxfem9uZTANCg0K
WyAgICA1LjU3NjcwN10gQUNQSTogdGhlcm1hbDogVGhlcm1hbCBab25lIFtUSFJNXSAoMjAgQykN
Cg0KWyAgICA1LjU4NzAwOF0gdGhlcm1hbCBMTlhUSEVSTTowMTogcmVnaXN0ZXJlZCBhcyB0aGVy
bWFsX3pvbmUxDQoNClsgICAgNS41OTgzNzVdIEFDUEk6IHRoZXJtYWw6IFRoZXJtYWwgWm9uZSBb
V0RURl0gKDAgQykNCg0KWyAgICA1LjYwODgwM10geGVuX21jZWxvZzogRmFpbGVkIHRvIGdldCBD
UFUgbnVtYmVycw0KDQpbICAgIDUuNjE4NjkyXSBTZXJpYWw6IDgyNTAvMTY1NTAgZHJpdmVyLCA0
IHBvcnRzLCBJUlEgc2hhcmluZyBlbmFibGVkDQoNClsgICAgNS42MzEyMDJdIDAwOjA0OiB0dHlT
MSBhdCBJL08gMHgyZjggKGlycSA9IDMsIGJhc2VfYmF1ZCA9IDExNTIwMCkgaXMgYSAxNjU1MEEN
Cg0KWyAgICA1LjY0NjM1NF0gaHBldF9hY3BpX2FkZDogbm8gYWRkcmVzcyBvciBpcnFzIGluIF9D
UlMNCg0KWyAgICA1LjY1NjM2M10gTm9uLXZvbGF0aWxlIG1lbW9yeSBkcml2ZXIgdjEuMw0KDQpb
ICAgIDUuNjY0NzgxXSBMaW51eCBhZ3BnYXJ0IGludGVyZmFjZSB2MC4xMDMNCg0KWyAgICA1LjY3
MzU0MF0gQUNQSTogYnVzIHR5cGUgZHJtX2Nvbm5lY3RvciByZWdpc3RlcmVkDQoNClsgICAgNS42
ODQ2OTldIGxvb3A6IG1vZHVsZSBsb2FkZWQNCg0KWyAgICA1LjY5MTM1OF0gbnZtZSBudm1lMDog
cGNpIGZ1bmN0aW9uIDAwMDA6MDI6MDAuMA0KDQpbICAgIDUuNjkxNTY4XSBhaGNpIDAwMDA6MDU6
MDAuMDogdmVyc2lvbiAzLjANCg0KWyAgICA1LjcwODk0NV0gbnZtZSBudm1lMDogbWlzc2luZyBv
ciBpbnZhbGlkIFNVQk5RTiBmaWVsZC4NCg0KWyAgICA1LjcwOTA5N10gYWhjaSAwMDAwOjA1OjAw
LjA6IEFIQ0kgdmVycyAwMDAxLjAzMDEsIDMyIGNvbW1hbmQgc2xvdHMsIDYgR2JwcywgU0FUQSBt
b2RlDQoNClsgICAgNS43MTk3OTZdIG52bWUgbnZtZTA6IEQzIGVudHJ5IGxhdGVuY3kgc2V0IHRv
IDggc2Vjb25kcw0KDQpbICAgIDUuNzM1Nzk2XSBhaGNpIDAwMDA6MDU6MDAuMDogMS8xIHBvcnRz
IGltcGxlbWVudGVkIChwb3J0IG1hc2sgMHgxKQ0KDQpbICAgIDUuNzU3OTgxXSBudm1lIG52bWUw
OiA0LzAvMCBkZWZhdWx0L3JlYWQvcG9sbCBxdWV1ZXMNCg0KWyAgICA1Ljc1OTU0N10gYWhjaSAw
MDAwOjA1OjAwLjA6IGZsYWdzOiA2NGJpdCBuY3Egc250ZiBpbGNrIHBtIGxlZCBjbG8gb25seSBw
bXAgZmJzIHBpbyBzbHVtIHBhcnQNCg0KWyAgICA1Ljc4NzkxMl0gc2NzaSBob3N0MDogYWhjaQ0K
DQpbICAgIDUuNzg4OTMyXSAgbnZtZTBuMTogcDEgcDINCg0KWyAgICA1Ljc5MzU0M10gYXRhMTog
U0FUQSBtYXggVURNQS8xMzMgYWJhciBtMjA0OEAweGZlODAxMDAwIHBvcnQgMHhmZTgwMTEwMCBp
cnEgNTIgbHBtLXBvbCAzDQoNClsgICAgNS44MTYwMjVdIGFoY2kgMDAwMDowNTowMC4xOiBBSENJ
IHZlcnMgMDAwMS4wMzAxLCAzMiBjb21tYW5kIHNsb3RzLCA2IEdicHMsIFNBVEEgbW9kZQ0KDQpb
ICAgIDUuODMxOTk3XSBhaGNpIDAwMDA6MDU6MDAuMTogMS8xIHBvcnRzIGltcGxlbWVudGVkIChw
b3J0IG1hc2sgMHgxKQ0KDQpbICAgIDUuODQ0ODIxXSBhaGNpIDAwMDA6MDU6MDAuMTogZmxhZ3M6
IDY0Yml0IG5jcSBzbnRmIGlsY2sgcG0gbGVkIGNsbyBvbmx5IHBtcCBmYnMgcGlvIHNsdW0gcGFy
dA0KDQpbICAgIDUuODYyODI3XSBzY3NpIGhvc3QxOiBhaGNpDQoNClsgICAgNS44Njg0NDZdIGF0
YTI6IFNBVEEgbWF4IFVETUEvMTMzIGFiYXIgbTIwNDhAMHhmZTgwMDAwMCBwb3J0IDB4ZmU4MDAx
MDAgaXJxIDU4IGxwbS1wb2wgMw0KDQpbICAgIDUuODg1MzIxXSBSb3VuZGluZyBkb3duIGFsaWdu
ZWQgbWF4X3NlY3RvcnMgZnJvbSA0Mjk0OTY3Mjk1IHRvIDQyOTQ5NjcyODgNCg0KWyAgICA1Ljg5
OTIzNV0gZGJfcm9vdDogY2Fubm90IG9wZW46IC9ldGMvdGFyZ2V0DQoNClsgICAgNS45MDgwNDVd
IGUxMDA6IEludGVsKFIpIFBSTy8xMDAgTmV0d29yayBEcml2ZXINCg0KWyAgICA1LjkxNzQ2OF0g
ZTEwMDogQ29weXJpZ2h0KGMpIDE5OTktMjAwNiBJbnRlbCBDb3Jwb3JhdGlvbg0KDQpbICAgIDUu
OTI4NTY3XSBlMTAwMDogSW50ZWwoUikgUFJPLzEwMDAgTmV0d29yayBEcml2ZXINCg0KWyAgICA1
LjkzODQ0OF0gZTEwMDA6IENvcHlyaWdodCAoYykgMTk5OS0yMDA2IEludGVsIENvcnBvcmF0aW9u
Lg0KDQpbICAgIDUuOTUwMDYxXSBlMTAwMGU6IEludGVsKFIpIFBSTy8xMDAwIE5ldHdvcmsgRHJp
dmVyDQoNClsgICAgNS45NjAxMTBdIGUxMDAwZTogQ29weXJpZ2h0KGMpIDE5OTkgLSAyMDE1IElu
dGVsIENvcnBvcmF0aW9uLg0KDQpbICAgIDUuOTcyMDg4XSBza3kyOiBkcml2ZXIgdmVyc2lvbiAx
LjMwDQoNClsgICAgNS45ODgzOTJdIG1vZHByb2JlICg3OCkgdXNlZCBncmVhdGVzdCBzdGFjayBk
ZXB0aDogMTM5MzYgYnl0ZXMgbGVmdA0KDQpbICAgIDUuOTg4ODMwXSByODE2OSAwMDAwOjAzOjAw
LjAgZXRoMDogUlRMODEyNUIsIGRjOjljOjUyOjI3OmFlOmM0LCBYSUQgNjQxLCBJUlEgNjANCg0K
WyAgICA2LjAxNjE4OF0gcjgxNjkgMDAwMDowMzowMC4wIGV0aDA6IGp1bWJvIGZlYXR1cmVzIFtm
cmFtZXM6IDkxOTQgYnl0ZXMsIHR4IGNoZWNrc3VtbWluZzoga29dDQoNClsgICAgNi4wMzM1MzNd
IHhoY2lfaGNkIDAwMDA6MDQ6MDAuMzogeEhDSSBIb3N0IENvbnRyb2xsZXINCg0KWyAgICA2LjA0
NDAwMF0geGhjaV9oY2QgMDAwMDowNDowMC4zOiBuZXcgVVNCIGJ1cyByZWdpc3RlcmVkLCBhc3Np
Z25lZCBidXMgbnVtYmVyIDENCg0KWyAgICA2LjA1ODkwOV0geGhjaV9oY2QgMDAwMDowNDowMC4z
OiBoY2MgcGFyYW1zIDB4MDI2OGZmZTUgaGNpIHZlcnNpb24gMHgxMTAgcXVpcmtzIDB4MDAwMDAy
MDAwMDAwMDAxMA0KDQpbICAgIDYuMDc3NTI3XSB4aGNpX2hjZCAwMDAwOjA0OjAwLjM6IHhIQ0kg
SG9zdCBDb250cm9sbGVyDQoNClsgICAgNi4wODc4NjldIHhoY2lfaGNkIDAwMDA6MDQ6MDAuMzog
bmV3IFVTQiBidXMgcmVnaXN0ZXJlZCwgYXNzaWduZWQgYnVzIG51bWJlciAyDQoNClsgICAgNi4x
MDI3MTJdIHhoY2lfaGNkIDAwMDA6MDQ6MDAuMzogSG9zdCBzdXBwb3J0cyBVU0IgMy4xIEVuaGFu
Y2VkIFN1cGVyU3BlZWQNCg0KWyAgICA2LjExNjk1N10gdXNiIHVzYjE6IE5ldyBVU0IgZGV2aWNl
IGZvdW5kLCBpZFZlbmRvcj0xZDZiLCBpZFByb2R1Y3Q9MDAwMiwgYmNkRGV2aWNlPSA2LjExDQoN
ClsgICAgNi4xMjE4NDZdIGF0YTE6IFNBVEEgbGluayBkb3duIChTU3RhdHVzIDAgU0NvbnRyb2wg
MzAwKQ0KDQpbICAgIDYuMTMzNTU4XSB1c2IgdXNiMTogTmV3IFVTQiBkZXZpY2Ugc3RyaW5nczog
TWZyPTMsIFByb2R1Y3Q9MiwgU2VyaWFsTnVtYmVyPTENCg0KWyAgICA2LjE1OTA0OF0gdXNiIHVz
YjE6IFByb2R1Y3Q6IHhIQ0kgSG9zdCBDb250cm9sbGVyDQoNClsgICAgNi4xNjg5MThdIHVzYiB1
c2IxOiBNYW51ZmFjdHVyZXI6IExpbnV4IDYuMTEuMC1ydDEgeGhjaS1oY2QNCg0KWyAgICA2LjE4
MDUzMl0gdXNiIHVzYjE6IFNlcmlhbE51bWJlcjogMDAwMDowNDowMC4zDQoNClsgICAgNi4xOTAw
MjZdIGh1YiAxLTA6MS4wOiBVU0IgaHViIGZvdW5kDQoNClsgICAgNi4xOTQzNDddIGF0YTI6IFNB
VEEgbGluayBkb3duIChTU3RhdHVzIDAgU0NvbnRyb2wgMzAwKQ0KDQpbICAgIDYuMTk3NTI0XSBo
dWIgMS0wOjEuMDogNCBwb3J0cyBkZXRlY3RlZA0KDQpbICAgIDYuMjE2Njc0XSB1c2IgdXNiMjog
V2UgZG9uJ3Qga25vdyB0aGUgYWxnb3JpdGhtcyBmb3IgTFBNIGZvciB0aGlzIGhvc3QsIGRpc2Fi
bGluZyBMUE0uDQoNClsgICAgNi4yMzI4ODVdIHVzYiB1c2IyOiBOZXcgVVNCIGRldmljZSBmb3Vu
ZCwgaWRWZW5kb3I9MWQ2YiwgaWRQcm9kdWN0PTAwMDMsIGJjZERldmljZT0gNi4xMQ0KDQpbICAg
IDYuMjQ5NTEzXSB1c2IgdXNiMjogTmV3IFVTQiBkZXZpY2Ugc3RyaW5nczogTWZyPTMsIFByb2R1
Y3Q9MiwgU2VyaWFsTnVtYmVyPTENCg0KWyAgICA2LjI2NDA4MV0gdXNiIHVzYjI6IFByb2R1Y3Q6
IHhIQ0kgSG9zdCBDb250cm9sbGVyDQoNClsgICAgNi4yNzM5NjBdIHVzYiB1c2IyOiBNYW51ZmFj
dHVyZXI6IExpbnV4IDYuMTEuMC1ydDEgeGhjaS1oY2QNCg0KWyAgICA2LjI4NTU3M10gdXNiIHVz
YjI6IFNlcmlhbE51bWJlcjogMDAwMDowNDowMC4zDQoNClsgICAgNi4yOTUwNzZdIGh1YiAyLTA6
MS4wOiBVU0IgaHViIGZvdW5kDQoNClsgICAgNi4zMDI1NjJdIGh1YiAyLTA6MS4wOiAyIHBvcnRz
IGRldGVjdGVkDQoNClsgICAgNi4zMTA4MTFdIHhoY2lfaGNkIDAwMDA6MDQ6MDAuNDogeEhDSSBI
b3N0IENvbnRyb2xsZXINCg0KWyAgICA2LjMyMTM2M10geGhjaV9oY2QgMDAwMDowNDowMC40OiBu
ZXcgVVNCIGJ1cyByZWdpc3RlcmVkLCBhc3NpZ25lZCBidXMgbnVtYmVyIDMNCg0KWyAgICA2LjMz
NjI3MF0geGhjaV9oY2QgMDAwMDowNDowMC40OiBoY2MgcGFyYW1zIDB4MDI2OGZmZTUgaGNpIHZl
cnNpb24gMHgxMTAgcXVpcmtzIDB4MDAwMDAyMDAwMDAwMDAxMA0KDQpbICAgIDYuMzU0ODc3XSB4
aGNpX2hjZCAwMDAwOjA0OjAwLjQ6IHhIQ0kgSG9zdCBDb250cm9sbGVyDQoNClsgICAgNi4zNjUy
MzddIHhoY2lfaGNkIDAwMDA6MDQ6MDAuNDogbmV3IFVTQiBidXMgcmVnaXN0ZXJlZCwgYXNzaWdu
ZWQgYnVzIG51bWJlciA0DQoNClsgICAgNi4zODAwNThdIHhoY2lfaGNkIDAwMDA6MDQ6MDAuNDog
SG9zdCBzdXBwb3J0cyBVU0IgMy4xIEVuaGFuY2VkIFN1cGVyU3BlZWQNCg0KWyAgICA2LjM5NDI5
OV0gdXNiIHVzYjM6IE5ldyBVU0IgZGV2aWNlIGZvdW5kLCBpZFZlbmRvcj0xZDZiLCBpZFByb2R1
Y3Q9MDAwMiwgYmNkRGV2aWNlPSA2LjExDQoNClsgICAgNi40MTA5MTBdIHVzYiB1c2IzOiBOZXcg
VVNCIGRldmljZSBzdHJpbmdzOiBNZnI9MywgUHJvZHVjdD0yLCBTZXJpYWxOdW1iZXI9MQ0KDQpb
ICAgIDYuNDI1NDY5XSB1c2IgdXNiMzogUHJvZHVjdDogeEhDSSBIb3N0IENvbnRyb2xsZXINCg0K
WyAgICA2LjQzNTM1MV0gdXNiIHVzYjM6IE1hbnVmYWN0dXJlcjogTGludXggNi4xMS4wLXJ0MSB4
aGNpLWhjZA0KDQpbICAgIDYuNDQ2OTYxXSB1c2IgdXNiMzogU2VyaWFsTnVtYmVyOiAwMDAwOjA0
OjAwLjQNCg0KWyAgICA2LjQ1NjU1M10gaHViIDMtMDoxLjA6IFVTQiBodWIgZm91bmQNCg0KWyAg
ICA2LjQ2Mzk3OF0gaHViIDMtMDoxLjA6IDQgcG9ydHMgZGV0ZWN0ZWQNCg0KWyAgICA2LjQ3MjI4
MV0gdXNiIHVzYjQ6IFdlIGRvbid0IGtub3cgdGhlIGFsZ29yaXRobXMgZm9yIExQTSBmb3IgdGhp
cyBob3N0LCBkaXNhYmxpbmcgTFBNLg0KDQpbICAgIDYuNDg4NDk0XSB1c2IgdXNiNDogTmV3IFVT
QiBkZXZpY2UgZm91bmQsIGlkVmVuZG9yPTFkNmIsIGlkUHJvZHVjdD0wMDAzLCBiY2REZXZpY2U9
IDYuMTENCg0KWyAgICA2LjUwNTAzM10gdXNiIHVzYjQ6IE5ldyBVU0IgZGV2aWNlIHN0cmluZ3M6
IE1mcj0zLCBQcm9kdWN0PTIsIFNlcmlhbE51bWJlcj0xDQoNClsgICAgNi41MTk1OTBdIHVzYiB1
c2I0OiBQcm9kdWN0OiB4SENJIEhvc3QgQ29udHJvbGxlcg0KDQpbICAgIDYuNTI5NDY5XSB1c2Ig
dXNiNDogTWFudWZhY3R1cmVyOiBMaW51eCA2LjExLjAtcnQxIHhoY2ktaGNkDQoNClsgICAgNi41
NDEwODZdIHVzYiB1c2I0OiBTZXJpYWxOdW1iZXI6IDAwMDA6MDQ6MDAuNA0KDQpbICAgIDYuNTUw
NTM2XSBodWIgNC0wOjEuMDogVVNCIGh1YiBmb3VuZA0KDQpbICAgIDYuNTU4MDc1XSBodWIgNC0w
OjEuMDogMiBwb3J0cyBkZXRlY3RlZA0KDQpbICAgIDYuNTY2Mjg4XSB1c2Jjb3JlOiByZWdpc3Rl
cmVkIG5ldyBpbnRlcmZhY2UgZHJpdmVyIHVzYmxwDQoNClsgICAgNi41NzczMjddIHVzYmNvcmU6
IHJlZ2lzdGVyZWQgbmV3IGludGVyZmFjZSBkcml2ZXIgdXNiLXN0b3JhZ2UNCg0KWyAgICA2LjU3
NzM0NV0gdXNiIDEtMzogbmV3IGxvdy1zcGVlZCBVU0IgZGV2aWNlIG51bWJlciAyIHVzaW5nIHho
Y2lfaGNkDQoNClsgICAgNi42MDI2NDFdIGk4MDQyOiBQTlA6IE5vIFBTLzIgY29udHJvbGxlciBm
b3VuZC4NCg0KWyAgICA2LjYxMTk3N10gaTgwNDI6IFByb2JpbmcgcG9ydHMgZGlyZWN0bHkuDQoN
ClsgICAgNi42MjExNjJdIGk4MDQyOiBObyBjb250cm9sbGVyIGZvdW5kDQoNClsgICAgNi42Mjg2
NDBdIHJ0Y19jbW9zIDAwOjAxOiBSVEMgY2FuIHdha2UgZnJvbSBTNA0KDQpbICAgIDYuNjM3OTYy
XSBydGNfY21vcyAwMDowMTogcmVnaXN0ZXJlZCBhcyBydGMwDQoNClsgICAgNi42NDY4NzddIHJ0
Y19jbW9zIDAwOjAxOiBubyBhbGFybXMsIHkzaywgMTE0IGJ5dGVzIG52cmFtDQoNClsgICAgNi42
NTgxOTJdIGZhaWwgdG8gaW5pdGlhbGl6ZSBwdHBfa3ZtDQoNClsgICAgNi42NTgyNzNdIGRldmlj
ZS1tYXBwZXI6IGlvY3RsOiA0LjQ4LjAtaW9jdGwgKDIwMjMtMDMtMDEpIGluaXRpYWxpc2VkOiBk
bS1kZXZlbEBsaXN0cy5saW51eC5kZXYNCg0KWyAgICA2LjY4MzYyMF0gYW1kX3BzdGF0ZTogVGhl
IENQUEMgZmVhdHVyZSBpcyBzdXBwb3J0ZWQgYnV0IGN1cnJlbnRseSBkaXNhYmxlZCBieSB0aGUg
QklPUy4NCg0KWyAgICA2LjY4MzYyMF0gUGxlYXNlIGVuYWJsZSBpdCBpZiB5b3VyIEJJT1MgaGFz
IHRoZSBDUFBDIG9wdGlvbi4NCg0KWyAgICA2LjcxMTg2NF0gYW1kX3BzdGF0ZTogdGhlIF9DUEMg
b2JqZWN0IGlzIG5vdCBwcmVzZW50IGluIFNCSU9TIG9yIEFDUEkgZGlzYWJsZWQNCg0KWyAgICA2
LjcyNjc5Ml0gaGlkOiByYXcgSElEIGV2ZW50cyBkcml2ZXIgKEMpIEppcmkgS29zaW5hDQoNClsg
ICAgNi43MzcyNTNdIHVzYmNvcmU6IHJlZ2lzdGVyZWQgbmV3IGludGVyZmFjZSBkcml2ZXIgdXNi
aGlkDQoNClsgICAgNi43NDg0MzldIHVzYmhpZDogVVNCIEhJRCBjb3JlIGRyaXZlcg0KDQpbICAg
IDYuNzU2ODU1XSBzbmRfaGRhX2ludGVsIDAwMDA6MDQ6MDAuMTogZW5hYmxpbmcgZGV2aWNlICgw
MDAwIC0+IDAwMDIpDQoNCihYRU4pIFsgICAyMS44NDA4NDJdIDAwMDA6MDQ6MDAuMTogbm90IG1h
cHBpbmcgQkFSIFtmZTdjOCwgZmU3Y2JdIGludmFsaWQgcG9zaXRpb24NClsgICAgNi43ODQzMzJd
IHVzYiAzLTQ6IG5ldyBoaWdoLXNwZWVkIFVTQiBkZXZpY2UgbnVtYmVyIDIgdXNpbmcgeGhjaV9o
Y2QNCg0KWyAgICA2Ljc4NDQ0Nl0gc25kX2hkYV9pbnRlbCAwMDAwOjA0OjAwLjY6IGVuYWJsaW5n
IGRldmljZSAoMDAwMCAtPiAwMDAyKQ0KDQpbICAgIDYuODAwMDQzXSB1KFhFTikgWyAgIDIxLjg4
NDUyMV0gMDAwMDowNDowMC42OiBub3QgbWFwcGluZyBCQVIgW2ZlN2MwLCBmZTdjN10gaW52YWxp
ZCBwb3NpdGlvbg0Kc2IgMS0zOiBOZXcgVVNCIGRldmljZSBmb3VuZCwgaWRWZW5kb3I9NDEzYywg
aWRQcm9kdWN0PTIxMTMsIGJjZERldmljZT0gMS4wOA0KDQpbICAgIDYuODI4MzYwXSBJbml0aWFs
aXppbmcgWEZSTSBuZXRsaW5rIHNvY2tldA0KDQpbICAgIDYuODQxNjY3XSB1c2IgMS0zOiBOZXcg
VVNCIGRldmljZSBzdHJpbmdzOiBNZnI9MCwgUHJvZHVjdD0yLCBTZXJpYWxOdW1iZXI9MA0KDQpb
ICAgIDYuODQxNjY5XSB1c2IgMS0zOiBQcm9kdWN0OiBEZWxsIEtCMjE2IFdpcmVkIEtleWJvYXJk
DQoNClsgICAgNi44NzUzNTJdIE5FVDogUmVnaXN0ZXJlZCBQRl9JTkVUNiBwcm90b2NvbCBmYW1p
bHkNCg0KWyAgICA2Ljg4MTcwMF0gc25kX2hkYV9pbnRlbCAwMDAwOjA0OjAwLjE6IENhbm5vdCBw
cm9iZSBjb2RlY3MsIGdpdmluZyB1cA0KDQpbICAgIDYuODg1NjUwXSBTKFhFTikgWyAgIDIxLjk3
MjQwNF0gYXJjaC94ODYvaHZtL3Ztc2kuYzo4ODY6ZDB2MyAwMDAwOjA0OjAwLjE6IFBJUlEgMzMx
MzogdW5zdXBwb3J0ZWQgYWRkcmVzcyAwDQplZ21lbnQgUm91dGluZyB3KFhFTikgWyAgIDIxLjk5
MjE2NF0gYXJjaC94ODYvaHZtL3Ztc2kuYzo4ODY6ZDB2MyAwMDAwOjA0OjAwLjE6IFBJUlEgMzMx
MzogdW5zdXBwb3J0ZWQgYWRkcmVzcyAwDQooWEVOKSBbICAgMjIuMDA5MTUxXSBhcmNoL3g4Ni9o
dm0vdm1zaS5jOjg4NjpkMHYzIDAwMDA6MDQ6MDAuMTogUElSUSAzMzEzOiB1bnN1cHBvcnRlZCBh
ZGRyZXNzIDANCml0aCBJUHY2DQoNClsgICAgNi45NTY5NzRdIEluLXNpdHUgT0FNIChJT0FNKSB3
aXRoIElQdjYNCg0KWyAgICA2Ljk2NTAwM10gc2l0OiBJUHY2LCBJUHY0IGFuZCBNUExTIG92ZXIg
SVB2NCB0dW5uZWxpbmcgZHJpdmVyDQoNClsgICAgNi45NzIxODldIHVzYiAzLTQ6IE5ldyBVU0Ig
ZGV2aWNlIGZvdW5kLCBpZFZlbmRvcj0wNDAzLCBpZFByb2R1Y3Q9NjAxMSwgYmNkRGV2aWNlPSA4
LjAwDQoNClsgICAgNi45NzY5NjZdIE5FVDogUmVnaXN0ZXJlZCBQRl9QQUNLRVQgcHJvdG9jb2wg
ZmFtaWx5DQoNClsgICAgNi45OTMzMzJdIHVzYiAzLTQ6IE5ldyBVU0IgZGV2aWNlIHN0cmluZ3M6
IE1mcj0xLCBQcm9kdWN0PTIsIFNlcmlhbE51bWJlcj0zDQoNClsgICAgNi45OTMzMzRdIHVzYiAz
LTQ6IFByb2R1Y3Q6IFZFMjMwMg0KDQpbICAgIDYuOTkzMzM1XSB1c2IgMy00OiBNYW51ZmFjdHVy
ZXI6IFhpbGlueA0KDQpbICAgIDYuOTkzMzM2XSB1c2IgMy00OiBTZXJpYWxOdW1iZXI6IDUySDI1
MTEwMDAwMTINCg0KWyAgICA2Ljk5MzUxOF0gaW5wdXQ6IERlbGwgS0IyMTYgV2lyZWQgS2V5Ym9h
cmQgYXMgL2RldmljZXMvcGNpMDAwMDowMC8wMDAwOjAwOjA4LjEvMDAwMDowNDowMC4zL3VzYjEv
MS0zLzEtMzoxLjAvMDAwMzo0MTNDOjIxMTMuMDAwMS9pbnB1dC9pbnB1dDMNCg0KWyAgICA3LjAw
MzU4OV0gOXBuZXQ6IEluc3RhbGxpbmcgOVAyMDAwIHN1cHBvcnQNCg0KWyAgICA3LjA3NzI0OF0g
S2V5IHR5cGUgZG5zX3Jlc29sdmVyIHJlZ2lzdGVyZWQNCg0KWyAgICA3LjA4NjIxOF0gSVBJIHNo
b3J0aGFuZCBicm9hZGNhc3Q6IGVuYWJsZWQNCg0KWyAgICA3LjA4NjMyMl0gaGlkLWdlbmVyaWMg
MDAwMzo0MTNDOjIxMTMuMDAwMTogaW5wdXQsaGlkcmF3MDogVVNCIEhJRCB2MS4xMSBLZXlib2Fy
ZCBbRGVsbCBLQjIxNiBXaXJlZCBLZXlib2FyZF0gb24gdXNiLTAwMDA6MDQ6MDAuMy0zL2lucHV0
MA0KDQpbICAgIDcuMDk2Mjk1XSBzY2hlZF9jbG9jazogTWFya2luZyBzdGFibGUgKDY5NTEwMDY1
MzEsIDE0NDU5NjMwMyktPig5MzQyNjI3NDAxLCAtMjI0NzAyNDU2NykNCg0KWyAgICA3LjEzNjU3
MV0gcmVnaXN0ZXJlZCB0YXNrc3RhdHMgdmVyc2lvbiAxDQoNClsgICAgNy4xNDQ2OTJdIExvYWRp
bmcgY29tcGlsZWQtaW4gWC41MDkgY2VydGlmaWNhdGVzDQoNClsgICAgNy4xNDQ4MzJdIGlucHV0
OiBEZWxsIEtCMjE2IFdpcmVkIEtleWJvYXJkIFN5c3RlbSBDb250cm9sIGFzIC9kZXZpY2VzL3Bj
aTAwMDA6MDAvMDAwMDowMDowOC4xLzAwMDA6MDQ6MDAuMy91c2IxLzEtMy8xLTM6MS4xLzAwMDM6
NDEzQzoyMTEzLjAwMDIvaW5wdXQvaW5wdXQ0DQoNClsgICAgNy4xODI4NzNdIERlbW90aW9uIHRh
cmdldHMgZm9yIE5vZGUgMDogbnVsbA0KDQpbICAgIDcuMTkxNzkwXSBQTTogICBNYWdpYyBudW1i
ZXI6IDU6ODYzOjQ1Ng0KDQpbICAgIDcuMTk5OTM1XSBtZW0gdXJhbmRvbTogaGFzaCBtYXRjaGVz
DQoNClsgICAgNy4yMDcyNzJdIHByaW50azogbGVnYWN5IGNvbnNvbGUgW25ldGNvbjBdIGVuYWJs
ZWQNCg0KWyAgICA3LjIxNzMwOF0gbmV0Y29uc29sZTogbmV0d29yayBsb2dnaW5nIHN0YXJ0ZWQN
Cg0KWyAgICA3LjIyNjk5N10gY2ZnODAyMTE6IExvYWRpbmcgY29tcGlsZWQtaW4gWC41MDkgY2Vy
dGlmaWNhdGVzIGZvciByZWd1bGF0b3J5IGRhdGFiYXNlDQoNClsgICAgNy4yMzQ3NzNdIGlucHV0
OiBEZWxsIEtCMjE2IFdpcmVkIEtleWJvYXJkIENvbnN1bWVyIENvbnRyb2wgYXMgL2RldmljZXMv
cGNpMDAwMDowMC8wMDAwOjAwOjA4LjEvMDAwMDowNDowMC4zL3VzYjEvMS0zLzEtMzoxLjEvMDAw
Mzo0MTNDOjIxMTMuMDAwMi9pbnB1dC9pbnB1dDUNCg0KWyAgICA3LjI0MzAyOV0gTG9hZGVkIFgu
NTA5IGNlcnQgJ3Nmb3JzaGVlOiAwMGIyOGRkZjQ3YWVmOWNlYTcnDQoNClsgICAgNy4yNzExNTld
IGhpZC1nZW5lcmljIDAwMDM6NDEzQzoyMTEzLjAwMDI6IGlucHV0LGhpZHJhdzE6IFVTQiBISUQg
djEuMTEgRGV2aWNlIFtEZWxsIEtCMjE2IFdpcmVkIEtleWJvYXJkXSBvbiB1c2ItMDAwMDowNDow
MC4zLTMvaW5wdXQxDQoNClsgICAgNy4yODI2MjZdIExvYWRlZCBYLjUwOSBjZXJ0ICd3ZW5zOiA2
MWMwMzg2NTFhYWJkY2Y5NGJkMGFjN2ZmMDZjNzI0OGRiMThjNjAwJw0KDQpbICAgIDcuMzIxODgw
XSBBTFNBIGRldmljZSBsaXN0Og0KDQpbICAgIDcuMzI3OTQzXSBwbGF0Zm9ybSByZWd1bGF0b3J5
LjA6IERpcmVjdCBmaXJtd2FyZSBsb2FkIGZvciByZWd1bGF0b3J5LmRiIGZhaWxlZCB3aXRoIGVy
cm9yIC0yDQoNClsgICAgNy4zMjg2MTJdICAgTm8gc291bmRjYXJkcyBmb3VuZC4NCg0KWyAgICA3
LjM0NTI2Nl0gY2ZnODAyMTE6IGZhaWxlZCB0byBsb2FkIHJlZ3VsYXRvcnkuZGINCg0KWyAgICA3
LjM2MjM3MV0gRnJlZWluZyB1bnVzZWQga2VybmVsIGltYWdlIChpbml0bWVtKSBtZW1vcnk6IDI5
MjhLDQoNClsgICAgNy4zNzQwNTRdIFdyaXRlIHByb3RlY3RpbmcgdGhlIGtlcm5lbCByZWFkLW9u
bHkgZGF0YTogMjY2MjRrDQoNClsgICAgNy4zODYxMjZdIEZyZWVpbmcgdW51c2VkIGtlcm5lbCBp
bWFnZSAocm9kYXRhL2RhdGEgZ2FwKSBtZW1vcnk6IDg5NksNCg0KWyAgICA3LjQyOTYyM10geDg2
L21tOiBDaGVja2VkIFcrWCBtYXBwaW5nczogcGFzc2VkLCBubyBXK1ggcGFnZXMgZm91bmQuDQoN
ClsgICAgNy40NDIzMjVdIFJ1biAvYmluL3NoIGFzIGluaXQgcHJvY2Vzcw0KDQpbICAgIDcuNDUw
MTE5XSAgIHdpdGggYXJndW1lbnRzOg0KDQpbICAgIDcuNDU2MTg4XSAgICAgL2Jpbi9zaA0KDQpb
ICAgIDcuNDYxMjEyXSAgIHdpdGggZW52aXJvbm1lbnQ6DQoNClsgICAgNy40Njc2MzBdICAgICBI
T01FPS8NCg0KWyAgICA3LjQ3MjQ3NF0gICAgIFRFUk09bGludXgNCg0KL2Jpbi9zaDogY2FuJ3Qg
YWNjZXNzIHR0eTsgam9iIGNvbnRyb2wgdHVybmVkIG9mZg0KDQp+ICMgG1s2bm1vdW50IC10IHBy
b2MgcHJvYyAvcHJvYw0KDQpbICAgMjMuNTY3MjQ2XSBtfiAjIBtbNm5vdW50ICg5MykgdXNlZCBn
cmVhdGVzdCBzdGFjayBkZXB0aDogMTM0MDggYnl0ZXMgbGVmdA0KDQptb3VudCAtdCBzeXNmcyBz
eXNmcyAvc3lzDQoNCn4gIyAbWzZubW91bnQgLXQgZGV2dG1wZnMgZGV2dG1wZnMgL2Rldg0KDQp+
ICMgG1s2bmxzIC9kZXYNCg0KG1sxOzM1bWF1dG9mcxtbbSAgICAgICAgICAgG1sxOzM1bW52bWUt
ZmFicmljcxtbbSAgICAgG1sxOzM1bXR0eTI2G1ttICAgICAgICAgICAgG1sxOzM1bXR0eTU2G1tt
DQoNChtbMTszNG1idXMbW20gICAgICAgICAgICAgIBtbMTszNW1udm1lMBtbbSAgICAgICAgICAg
IBtbMTszNW10dHkyNxtbbSAgICAgICAgICAgIBtbMTszNW10dHk1NxtbbQ0KDQobWzE7MzVtY29u
c29sZRtbbSAgICAgICAgICAbWzE7MzVtbnZtZTBuMRtbbSAgICAgICAgICAbWzE7MzVtdHR5Mjgb
W20gICAgICAgICAgICAbWzE7MzVtdHR5NTgbW20NCg0KG1sxOzM0bWNwdRtbbSAgICAgICAgICAg
ICAgG1sxOzM1bW52bWUwbjFwMRtbbSAgICAgICAgG1sxOzM1bXR0eTI5G1ttICAgICAgICAgICAg
G1sxOzM1bXR0eTU5G1ttDQoNChtbMTszNW1jcHVfZG1hX2xhdGVuY3kbW20gIBtbMTszNW1udm1l
MG4xcDIbW20gICAgICAgIBtbMTszNW10dHkzG1ttICAgICAgICAgICAgIBtbMTszNW10dHk2G1tt
DQoNChtbMTszNW1mdWxsG1ttICAgICAgICAgICAgIBtbMTszNW1udnJhbRtbbSAgICAgICAgICAg
IBtbMTszNW10dHkzMBtbbSAgICAgICAgICAgIBtbMTszNW10dHk2MBtbbQ0KDQobWzE7MzVtaGlk
cmF3MBtbbSAgICAgICAgICAbWzE7MzVtcG9ydBtbbSAgICAgICAgICAgICAbWzE7MzVtdHR5MzEb
W20gICAgICAgICAgICAbWzE7MzVtdHR5NjEbW20NCg0KG1sxOzM1bWhpZHJhdzEbW20gICAgICAg
ICAgG1sxOzM1bXB0bXgbW20gICAgICAgICAgICAgG1sxOzM1bXR0eTMyG1ttICAgICAgICAgICAg
G1sxOzM1bXR0eTYyG1ttDQoNChtbMTszNW1ocGV0G1ttICAgICAgICAgICAgIBtbMTszNW1yYW5k
b20bW20gICAgICAgICAgIBtbMTszNW10dHkzMxtbbSAgICAgICAgICAgIBtbMTszNW10dHk2Mxtb
bQ0KDQobWzE7MzVtaHZjMBtbbSAgICAgICAgICAgICAbWzE7MzVtcmZraWxsG1ttICAgICAgICAg
ICAbWzE7MzVtdHR5MzQbW20gICAgICAgICAgICAbWzE7MzVtdHR5NxtbbQ0KDQobWzE7MzVtaHZj
MRtbbSAgICAgICAgICAgICAbWzE7MzVtcnRjMBtbbSAgICAgICAgICAgICAbWzE7MzVtdHR5MzUb
W20gICAgICAgICAgICAbWzE7MzVtdHR5OBtbbQ0KDQobWzE7MzVtaHZjMhtbbSAgICAgICAgICAg
ICAbWzE7MzVtc25hcHNob3QbW20gICAgICAgICAbWzE7MzVtdHR5MzYbW20gICAgICAgICAgICAb
WzE7MzVtdHR5ORtbbQ0KDQobWzE7MzVtaHZjMxtbbSAgICAgICAgICAgICAbWzE7MzRtc25kG1tt
ICAgICAgICAgICAgICAbWzE7MzVtdHR5MzcbW20gICAgICAgICAgICAbWzE7MzVtdHR5UzAbW20N
Cg0KG1sxOzM1bWh2YzQbW20gICAgICAgICAgICAgG1sxOzM1bXR0eRtbbSAgICAgICAgICAgICAg
G1sxOzM1bXR0eTM4G1ttICAgICAgICAgICAgG1sxOzM1bXR0eVMxG1ttDQoNChtbMTszNW1odmM1
G1ttICAgICAgICAgICAgIBtbMTszNW10dHkwG1ttICAgICAgICAgICAgIBtbMTszNW10dHkzORtb
bSAgICAgICAgICAgIBtbMTszNW10dHlTMhtbbQ0KDQobWzE7MzVtaHZjNhtbbSAgICAgICAgICAg
ICAbWzE7MzVtdHR5MRtbbSAgICAgICAgICAgICAbWzE7MzVtdHR5NBtbbSAgICAgICAgICAgICAb
WzE7MzVtdHR5UzMbW20NCg0KG1sxOzM1bWh2YzcbW20gICAgICAgICAgICAgG1sxOzM1bXR0eTEw
G1ttICAgICAgICAgICAgG1sxOzM1bXR0eTQwG1ttICAgICAgICAgICAgG1sxOzM1bXVyYW5kb20b
W20NCg0KG1sxOzM1bWh3cm5nG1ttICAgICAgICAgICAgG1sxOzM1bXR0eTExG1ttICAgICAgICAg
ICAgG1sxOzM1bXR0eTQxG1ttICAgICAgICAgICAgG1sxOzM1bXVzYm1vbjAbW20NCg0KG1sxOzM0
bWlucHV0G1ttICAgICAgICAgICAgG1sxOzM1bXR0eTEyG1ttICAgICAgICAgICAgG1sxOzM1bXR0
eTQyG1ttICAgICAgICAgICAgG1sxOzM1bXVzYm1vbjEbW20NCg0KG1sxOzM1bWttc2cbW20gICAg
ICAgICAgICAgG1sxOzM1bXR0eTEzG1ttICAgICAgICAgICAgG1sxOzM1bXR0eTQzG1ttICAgICAg
ICAgICAgG1sxOzM1bXVzYm1vbjIbW20NCg0KG1sxOzM1bWxvb3AtY29udHJvbBtbbSAgICAgG1sx
OzM1bXR0eTE0G1ttICAgICAgICAgICAgG1sxOzM1bXR0eTQ0G1ttICAgICAgICAgICAgG1sxOzM1
bXVzYm1vbjMbW20NCg0KG1sxOzM1bWxvb3AwG1ttICAgICAgICAgICAgG1sxOzM1bXR0eTE1G1tt
ICAgICAgICAgICAgG1sxOzM1bXR0eTQ1G1ttICAgICAgICAgICAgG1sxOzM1bXVzYm1vbjQbW20N
Cg0KG1sxOzM1bWxvb3AxG1ttICAgICAgICAgICAgG1sxOzM1bXR0eTE2G1ttICAgICAgICAgICAg
G1sxOzM1bXR0eTQ2G1ttICAgICAgICAgICAgG1sxOzM1bXZjcxtbbQ0KDQobWzE7MzVtbG9vcDIb
W20gICAgICAgICAgICAbWzE7MzVtdHR5MTcbW20gICAgICAgICAgICAbWzE7MzVtdHR5NDcbW20g
ICAgICAgICAgICAbWzE7MzVtdmNzMRtbbQ0KDQobWzE7MzVtbG9vcDMbW20gICAgICAgICAgICAb
WzE7MzVtdHR5MTgbW20gICAgICAgICAgICAbWzE7MzVtdHR5NDgbW20gICAgICAgICAgICAbWzE7
MzVtdmNzYRtbbQ0KDQobWzE7MzVtbG9vcDQbW20gICAgICAgICAgICAbWzE7MzVtdHR5MTkbW20g
ICAgICAgICAgICAbWzE7MzVtdHR5NDkbW20gICAgICAgICAgICAbWzE7MzVtdmNzYTEbW20NCg0K
G1sxOzM1bWxvb3A1G1ttICAgICAgICAgICAgG1sxOzM1bXR0eTIbW20gICAgICAgICAgICAgG1sx
OzM1bXR0eTUbW20gICAgICAgICAgICAgG1sxOzM1bXZjc3UbW20NCg0KG1sxOzM1bWxvb3A2G1tt
ICAgICAgICAgICAgG1sxOzM1bXR0eTIwG1ttICAgICAgICAgICAgG1sxOzM1bXR0eTUwG1ttICAg
ICAgICAgICAgG1sxOzM1bXZjc3UxG1ttDQoNChtbMTszNW1sb29wNxtbbSAgICAgICAgICAgIBtb
MTszNW10dHkyMRtbbSAgICAgICAgICAgIBtbMTszNW10dHk1MRtbbSAgICAgICAgICAgIBtbMTsz
NW12Z2FfYXJiaXRlchtbbQ0KDQobWzE7MzRtbWFwcGVyG1ttICAgICAgICAgICAbWzE7MzVtdHR5
MjIbW20gICAgICAgICAgICAbWzE7MzVtdHR5NTIbW20gICAgICAgICAgICAbWzE7MzRteGVuG1tt
DQoNChtbMTszNW1tZW0bW20gICAgICAgICAgICAgIBtbMTszNW10dHkyMxtbbSAgICAgICAgICAg
IBtbMTszNW10dHk1MxtbbSAgICAgICAgICAgIBtbMTszNW16ZXJvG1ttDQoNChtbMTszNW1uZzBu
MRtbbSAgICAgICAgICAgIBtbMTszNW10dHkyNBtbbSAgICAgICAgICAgIBtbMTszNW10dHk1NBtb
bQ0KDQobWzE7MzVtbnVsbBtbbSAgICAgICAgICAgICAbWzE7MzVtdHR5MjUbW20gICAgICAgICAg
ICAbWzE7MzVtdHR5NTUbW20NCg0KfiAjIBtbNm5tb3VudCAvZGV2L252bWUwbjFwMQgbW0oyIC9t
bnQNCg0KWyAgIDQ5LjI1MjQ1MF0gRVhUNC1mcyAobnZtZTBuMXAyKTogcmVjb3ZlcnkgY29tcGxl
dGUNCg0KWyAgIDQ5LjI2MzY0M10gRVhUNC1mcyAobnZtZTBuMXAyKTogbW91bnRlZCBmaWxlc3lz
dGVtIDBiNWRjNDBhLTEzOTQtNDJjOC1hM2EzLWQ4ZTQ5YmVmODAzYyByL3cgd2l0aCBvcmRlcmVk
IGRhdGEgbW9kZS4gUXVvdGEgbW9kZTogbm9uZS4NCg0KfiAjIBtbNm5scyAvbW50DQoNChtbMTsz
Nm1iaW4bW20gICAgICAgICAbWzE7MzRtaG9tZRtbbSAgICAgICAgG1sxOzM0bWxvc3QrZm91bmQb
W20gIBtbMTszNG1yb290G1ttICAgICAgICAbWzA7MG1zd2FwZmlsZRtbbQ0KDQobWzE7MzRtYm9v
dBtbbSAgICAgICAgG1sxOzM2bWxpYhtbbSAgICAgICAgIBtbMTszNG1tZWRpYRtbbSAgICAgICAb
WzE7MzRtcnVuG1ttICAgICAgICAgG1sxOzM0bXN5cxtbbQ0KDQobWzE7MzRtY2Ryb20bW20gICAg
ICAgG1sxOzM2bWxpYjMyG1ttICAgICAgIBtbMTszNG1tbnQbW20gICAgICAgICAbWzE7MzZtc2Jp
bhtbbSAgICAgICAgG1sxOzM0bXRtcBtbbQ0KDQobWzE7MzRtZGV2G1ttICAgICAgICAgG1sxOzM2
bWxpYjY0G1ttICAgICAgIBtbMTszNG1vcHQbW20gICAgICAgICAbWzE7MzRtc25hcBtbbSAgICAg
ICAgG1sxOzM0bXVzchtbbQ0KDQobWzE7MzRtZXRjG1ttICAgICAgICAgG1sxOzM2bWxpYngzMhtb
bSAgICAgIBtbMTszNG1wcm9jG1ttICAgICAgICAbWzE7MzRtc3J2G1ttICAgICAgICAgG1sxOzM0
bXZhchtbbQ0KDQpbICAgNTEuNDY0NjE1XSBsfiAjIBtbNm5zICgxMDEpIHVzZWQgZ3JlYXRlc3Qg
c3RhY2sgZGVwdGg6IDEzMzkyIGJ5dGVzIGxlZnQNCg0KDQpUaGFua3MgZm9yIHVzaW5nIHBpY29j
b20NCnBpY29jb20gdjEuNw0KDQpwb3J0IGlzICAgICAgICA6IC9kZXYvc2VyaWFsL2J5LWlkL3Vz
Yi1Qcm9saWZpY19UZWNobm9sb2d5X0luYy5fVVNCLVNlcmlhbF9Db250cm9sbGVyLWlmMDAtcG9y
dDANCmZsb3djb250cm9sICAgIDogbm9uZQ0KYmF1ZHJhdGUgaXMgICAgOiA1NzYwMA0KcGFyaXR5
IGlzICAgICAgOiBub25lDQpkYXRhYml0cyBhcmUgICA6IDgNCmVzY2FwZSBpcyAgICAgIDogQy1h
DQpsb2NhbCBlY2hvIGlzICA6IG5vDQpub2luaXQgaXMgICAgICA6IG5vDQpub3Jlc2V0IGlzICAg
ICA6IG5vDQpub2xvY2sgaXMgICAgICA6IG5vDQpzZW5kX2NtZCBpcyAgICA6IHN6IC12dg0KcmVj
ZWl2ZV9jbWQgaXMgOiByeiAtdnYNCmltYXAgaXMgICAgICAgIDoNCm9tYXAgaXMgICAgICAgIDoN
CmVtYXAgaXMgICAgICAgIDogY3JjcmxmLGRlbGJzLA0K

--------------C0Y5u2RfkqdS1mr8M54JJ5RE--


From xen-devel-bounces@lists.xenproject.org Fri Apr 25 16:52:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 16:52:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.968404.1358007 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8MHe-0001py-ML; Fri, 25 Apr 2025 16:52:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 968404.1358007; Fri, 25 Apr 2025 16:52: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 1u8MHe-0001pr-Ic; Fri, 25 Apr 2025 16:52:14 +0000
Received: by outflank-mailman (input) for mailman id 968404;
 Fri, 25 Apr 2025 16:52: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=1RGh=XL=ariadne.space=ariadne@srs-se1.protection.inumbo.net>)
 id 1u8MHd-0001pl-S8
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 16:52:13 +0000
Received: from outbound.pv.icloud.com
 (p-west1-cluster2-host6-snip6-9.eps.apple.com [2a01:b747:3003:201::3e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a154a7c6-21f5-11f0-9ffb-bf95429c2676;
 Fri, 25 Apr 2025 18:52:11 +0200 (CEST)
Received: from localhost.localdomain (pv-asmtp-me-k8s.p00.prod.me.com
 [17.56.9.36])
 by outbound.pv.icloud.com (Postfix) with ESMTPSA id 4291618003CD;
 Fri, 25 Apr 2025 16:52: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: a154a7c6-21f5-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ariadne.space;
	s=sig1; bh=AqzuCv7+leJbc7/y3U+HHR7PKYTwzl5TYrhzClUu/M8=;
	h=From:To:Subject:Date:Message-Id:MIME-Version:x-icloud-hme;
	b=By6Pwu5UAqN3o6dCZpLQHR6dw2MIX3VpyTvCFCXwIntjo69dXfCSXTK7i6ck+6tes
	 gaAMyYl5TaAGIEGAPDCXaSaLnkSNPkpCco+BJ+Vzc/pLOwJuE1RFARK3CD+a160S2v
	 nNB4S3PnpdrSoyx6jhWIXDcmcdtFODyLhzHNeX8yoQ54PySl2lug6BMVjECAiXK0R7
	 2WuJaPEr2HIQGJG9yEzD8NFpD0bQVJFX8ClKXkG5VZaBlgnPhXXFgusX74f/9huLdf
	 +6g0DVHUUwYyZ/iCFexBEuXVGR9OWZLDufwKgrlMkAIInzPVMykuMEil4jTFVtGMBX
	 I6wd9RnfX5Srw==
From: Ariadne Conill <ariadne@ariadne.space>
To: xen-devel@lists.xenproject.org
Cc: Ariadne Conill <ariadne@ariadne.space>,
	Paul Durrant <paul@xen.org>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Alejandro Vallejo <agarciav@amd.com>,
	"Alexander M . Merritt" <alexander@edera.dev>
Subject: [PATCH] x86/hyperv: use dynamically allocated page for hypercalls
Date: Fri, 25 Apr 2025 09:51:48 -0700
Message-Id: <20250425165148.60408-1-ariadne@ariadne.space>
X-Mailer: git-send-email 2.39.5 (Apple Git-154)
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Proofpoint-GUID: 3K8K5Ww8Fd96YwjzHVva5w5J6pviM2be
X-Proofpoint-ORIG-GUID: 3K8K5Ww8Fd96YwjzHVva5w5J6pviM2be
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.272,Aquarius:18.0.1099,Hydra:6.0.736,FMLib:17.12.80.40
 definitions=2025-04-25_05,2025-04-24_02,2025-02-21_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 mlxscore=0 bulkscore=0
 phishscore=0 suspectscore=0 adultscore=0 mlxlogscore=795 clxscore=1030
 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.19.0-2308100000 definitions=main-2504250119

Previously Xen placed the hypercall page at the highest possible MFN,
but this caused problems on systems where there is more than 36 bits
of physical address space.

In general, it also seems unreliable to assume that the highest possible
MFN is not already reserved for some other purpose.

Fixes: 620fc734f854 ("x86/hyperv: setup hypercall page")
Cc: Alejandro Vallejo <agarciav@amd.com>
Cc: Alexander M. Merritt <alexander@edera.dev>
Signed-off-by: Ariadne Conill <ariadne@ariadne.space>
---
 xen/arch/x86/guest/hyperv/hyperv.c            | 39 ++++++++++---------
 xen/arch/x86/include/asm/fixmap.h             |  3 --
 xen/arch/x86/include/asm/guest/hyperv-hcall.h | 12 +++---
 xen/arch/x86/include/asm/guest/hyperv-tlfs.h  |  2 +
 xen/arch/x86/include/asm/guest/hyperv.h       |  3 --
 xen/arch/x86/xen.lds.S                        |  4 --
 6 files changed, 28 insertions(+), 35 deletions(-)

diff --git a/xen/arch/x86/guest/hyperv/hyperv.c b/xen/arch/x86/guest/hyperv/hyperv.c
index 6989af38f1..637b4bf335 100644
--- a/xen/arch/x86/guest/hyperv/hyperv.c
+++ b/xen/arch/x86/guest/hyperv/hyperv.c
@@ -16,6 +16,7 @@
 
 #include "private.h"
 
+void __read_mostly *hv_hcall_page;
 struct ms_hyperv_info __read_mostly ms_hyperv;
 DEFINE_PER_CPU_READ_MOSTLY(void *, hv_input_page);
 DEFINE_PER_CPU_READ_MOSTLY(void *, hv_vp_assist);
@@ -80,13 +81,11 @@ const struct hypervisor_ops *__init hyperv_probe(void)
     return &ops;
 }
 
-static void __init setup_hypercall_page(void)
+static int __init setup_hypercall_page(void)
 {
     union hv_x64_msr_hypercall_contents hypercall_msr;
     union hv_guest_os_id guest_id;
-    unsigned long mfn;
-
-    BUILD_BUG_ON(HV_HYP_PAGE_SHIFT != PAGE_SHIFT);
+    unsigned long mfn, start;
 
     rdmsrl(HV_X64_MSR_GUEST_OS_ID, guest_id.raw);
     if ( !guest_id.raw )
@@ -98,10 +97,22 @@ static void __init setup_hypercall_page(void)
     rdmsrl(HV_X64_MSR_HYPERCALL, hypercall_msr.as_uint64);
     if ( !hypercall_msr.enable )
     {
-        mfn = HV_HCALL_MFN;
+        hv_hcall_page = alloc_xenheap_page();
+        if ( !hv_hcall_page )
+        {
+            printk("Hyper-V: Failed to allocate hypercall trampoline page\n");
+            return -ENOMEM;
+        }
+
+        printk("Hyper-V: Allocated hypercall page @ %p.\n", hv_hcall_page);
+
+        mfn = virt_to_mfn(hv_hcall_page);
         hypercall_msr.enable = 1;
         hypercall_msr.guest_physical_address = mfn;
         wrmsrl(HV_X64_MSR_HYPERCALL, hypercall_msr.as_uint64);
+
+        start = (unsigned long) hv_hcall_page;
+        modify_xen_mappings(start, start + PAGE_SIZE, PAGE_HYPERVISOR_RX);
     }
     else
         mfn = hypercall_msr.guest_physical_address;
@@ -109,9 +120,9 @@ static void __init setup_hypercall_page(void)
     rdmsrl(HV_X64_MSR_HYPERCALL, hypercall_msr.as_uint64);
     BUG_ON(!hypercall_msr.enable);
 
-    set_fixmap_x(FIX_X_HYPERV_HCALL, mfn << PAGE_SHIFT);
-
     hcall_page_ready = true;
+
+    return 0;
 }
 
 static int setup_hypercall_pcpu_arg(void)
@@ -165,9 +176,8 @@ static int setup_vp_assist(void)
 
 static void __init cf_check setup(void)
 {
-    ASM_CONSTANT(HV_HCALL_PAGE, __fix_x_to_virt(FIX_X_HYPERV_HCALL));
-
-    setup_hypercall_page();
+    if ( setup_hypercall_page() )
+        panic("Hyper-V hypercall page setup failed\n");
 
     if ( setup_hypercall_pcpu_arg() )
         panic("Hyper-V hypercall percpu arg setup failed\n");
@@ -187,14 +197,6 @@ static int cf_check ap_setup(void)
     return setup_vp_assist();
 }
 
-static void __init cf_check e820_fixup(void)
-{
-    uint64_t s = HV_HCALL_MFN << PAGE_SHIFT;
-
-    if ( !e820_add_range(s, s + PAGE_SIZE, E820_RESERVED) )
-        panic("Unable to reserve Hyper-V hypercall range\n");
-}
-
 static int cf_check flush_tlb(
     const cpumask_t *mask, const void *va, unsigned int flags)
 {
@@ -211,7 +213,6 @@ static const struct hypervisor_ops __initconst_cf_clobber ops = {
     .name = "Hyper-V",
     .setup = setup,
     .ap_setup = ap_setup,
-    .e820_fixup = e820_fixup,
     .flush_tlb = flush_tlb,
 };
 
diff --git a/xen/arch/x86/include/asm/fixmap.h b/xen/arch/x86/include/asm/fixmap.h
index 516ec3fa6c..7384a2d07c 100644
--- a/xen/arch/x86/include/asm/fixmap.h
+++ b/xen/arch/x86/include/asm/fixmap.h
@@ -98,9 +98,6 @@ static inline unsigned long virt_to_fix(const unsigned long vaddr)
 enum fixed_addresses_x {
     /* Index 0 is reserved since fix_x_to_virt(0) == FIXADDR_X_TOP. */
     FIX_X_RESERVED,
-#ifdef CONFIG_HYPERV_GUEST
-    FIX_X_HYPERV_HCALL,
-#endif
     __end_of_fixed_addresses_x
 };
 
diff --git a/xen/arch/x86/include/asm/guest/hyperv-hcall.h b/xen/arch/x86/include/asm/guest/hyperv-hcall.h
index b76dbf9ccc..b73edca7c6 100644
--- a/xen/arch/x86/include/asm/guest/hyperv-hcall.h
+++ b/xen/arch/x86/include/asm/guest/hyperv-hcall.h
@@ -20,13 +20,13 @@ static inline uint64_t hv_do_hypercall(uint64_t control, paddr_t input_addr,
                                        paddr_t output_addr)
 {
     uint64_t status;
-    register unsigned long r8 asm ( "r8" ) = output_addr;
 
     /* See TLFS for volatile registers */
-    asm volatile ( "call hv_hcall_page"
+    asm volatile ( "mov %[output_addr], %%r8\n"
+                   "call *%[target_addr]"
                    : "=a" (status), "+c" (control),
                      "+d" (input_addr) ASM_CALL_CONSTRAINT
-                   : "r" (r8)
+                   : [output_addr] "r" (output_addr), [target_addr] "r" (hv_hcall_page)
                    : "memory" );
 
     return status;
@@ -37,13 +37,13 @@ static inline uint64_t hv_do_fast_hypercall(uint16_t code,
 {
     uint64_t status;
     uint64_t control = code | HV_HYPERCALL_FAST_BIT;
-    register unsigned long r8 asm ( "r8" ) = input2;
 
     /* See TLFS for volatile registers */
-    asm volatile ( "call hv_hcall_page"
+    asm volatile ( "mov %[input2], %%r8\n"
+                   "call *[target_addr]"
                    : "=a" (status), "+c" (control),
                      "+d" (input1) ASM_CALL_CONSTRAINT
-                   : "r" (r8) );
+                   : [input2] "r" (input2), [target_addr] "r" (hv_hcall_page) );
 
     return status;
 }
diff --git a/xen/arch/x86/include/asm/guest/hyperv-tlfs.h b/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
index 79cfc90dd8..01fc76f20c 100644
--- a/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
+++ b/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
@@ -13,6 +13,8 @@
 #include <xen/page-size.h>
 #include <xen/types.h>
 
+extern void *hv_hcall_page;
+
 /*
  * While not explicitly listed in the TLFS, Hyper-V always runs with a page size
  * of 4096. These definitions are used when communicating with Hyper-V using
diff --git a/xen/arch/x86/include/asm/guest/hyperv.h b/xen/arch/x86/include/asm/guest/hyperv.h
index c05efdce71..5792e77104 100644
--- a/xen/arch/x86/include/asm/guest/hyperv.h
+++ b/xen/arch/x86/include/asm/guest/hyperv.h
@@ -10,9 +10,6 @@
 
 #include <xen/types.h>
 
-/* Use top-most MFN for hypercall page */
-#define HV_HCALL_MFN   (((1ull << paddr_bits) - 1) >> HV_HYP_PAGE_SHIFT)
-
 /*
  * The specification says: "The partition reference time is computed
  * by the following formula:
diff --git a/xen/arch/x86/xen.lds.S b/xen/arch/x86/xen.lds.S
index 53bafc98a5..3d0c8e6ffc 100644
--- a/xen/arch/x86/xen.lds.S
+++ b/xen/arch/x86/xen.lds.S
@@ -359,10 +359,6 @@ SECTIONS
 
   DWARF2_DEBUG_SECTIONS
 
-#ifdef CONFIG_HYPERV_GUEST
-  hv_hcall_page = ABSOLUTE(HV_HCALL_PAGE - XEN_VIRT_START + __XEN_VIRT_START);
-#endif
-
   DISCARD_SECTIONS
 
 #ifndef EFI
-- 
2.39.5 (Apple Git-154)



From xen-devel-bounces@lists.xenproject.org Fri Apr 25 17:07:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 17:07:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.968418.1358016 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8MWW-00045J-Q7; Fri, 25 Apr 2025 17:07:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 968418.1358016; Fri, 25 Apr 2025 17:07: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 1u8MWW-00045C-N8; Fri, 25 Apr 2025 17:07:36 +0000
Received: by outflank-mailman (input) for mailman id 968418;
 Fri, 25 Apr 2025 17:07: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=snHQ=XL=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1u8MWV-000456-Ue
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 17:07:36 +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 c5d0e38b-21f7-11f0-9ffb-bf95429c2676;
 Fri, 25 Apr 2025 19:07:30 +0200 (CEST)
Received: by mail-ed1-x531.google.com with SMTP id
 4fb4d7f45d1cf-5f4b7211badso4134817a12.2
 for <xen-devel@lists.xenproject.org>; Fri, 25 Apr 2025 10:07:30 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-64-225.play-internet.pl.
 [109.243.64.225]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5f703831e8bsm1499964a12.66.2025.04.25.10.07.28
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 25 Apr 2025 10:07:28 -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: c5d0e38b-21f7-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1745600850; x=1746205650; darn=lists.xenproject.org;
        h=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=4uM6Rpe8YlwImMhpBkmOW2JNIIZDytxVZYYy+G8rxPc=;
        b=S+JLiZLR5r5/zea3fopzgBL/nyNuUS/RIs/7weBQBvG985qvhgYAWSG2YnyG3euC/X
         QXjRVnTj0QLriJBJMQpmK8dMAH0vAsnXqMIk7wVz1f5Mx5SKh4nni4bXq+JxMuqHJ4p1
         MUeSdPtgfBQv2LpnqPoUexrIL8QXtMXfuL4YZt1q0/+sch85M8G3y8/2o1RL2LzJQuZc
         5jmnwcmlsy/TX7igXix7MrkW8TOGnxjMMKYlNs8bsZuqdgCCgqGqSeYtsGAVGot048CC
         TQK29Qjq42klKRNzA3yNXeFuK2aL7qaywZd1Dxp5HPx5iO4xp2y15hKVm4xdKfzLRNlA
         VeqQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745600850; x=1746205650;
        h=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=4uM6Rpe8YlwImMhpBkmOW2JNIIZDytxVZYYy+G8rxPc=;
        b=eB3py5MNMXb/JPLDwlFuoE2RQySa+v2ZMihXC0h6kvHxqLYDXyKFfvnAExE2qz0jzN
         3Ze9+rpIl4eGF15PKdcbzy3KxBeyQrHrCpMw5WD527MGji2TSkvNpYks+AIZStsW6UoJ
         HWJO0+QPYaZp2js2Wgstyz0ED0ds/hlLV5ycbxOevBMyIcIkzTMRZMx55AuroSGg65ev
         hztABsHhttamsE3E634tpQFAynpDTfh05ihz8N1bVZ5wmexQBkBgqpsUDTXcyjuYEAy4
         mEi+CUdK7VBdLU5Z4xUd/6MP03DnjxtQkMpo5S2vQWnZm49xh8OH41CegYtFf7hWM379
         gi/g==
X-Forwarded-Encrypted: i=1; AJvYcCXsyxxvWYURhCoI/MuGpTxdqWWfopz5tUrCEJ9+RtF8IpANHCPEtmSvtng0h1NUc5tSCFm4e8epN/g=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxLaEZ0u7Djv3j4OxWN4LlLv/j7UZ1nxhGW24r4zXnAmqptsmj+
	kOcLzPbMIB4ggqVd6Tyar+X0+p7CFYvHxuOwt3djdk1uDrzaWzKW
X-Gm-Gg: ASbGncvdVZbl2S4EoEvoW2zALH0saTkOLsbNoiRmuC5+jHLO6KF0c8OSDPJVkKQH326
	uzl7nQCItX9g/1U/Hn7fmrSznLQKgh6ouyphOl/qFx5CbrYPYEMf91nKU0sQmYPDJ5alAJmq0BK
	r0eaXgYoiRBXIcu/RGOk6MZZIkUnCkzscgYidqKaHxnZZUwu1IfcGAWqCloY+5IiVdCjdUstf/A
	S8c+vEtd953hdJ2jOyYccK+5BK2gh2eJ722VBfRnKWGUvCr2GugXHt6nAWVPZO80saCSMsGprUh
	4eugnLIwBTNr8y+Sf+0pT7rzq1mbpVYtnnjL0gslxnC1jKeo4YGoVUIuBipRmmVtM7zWIiZaHPn
	WxzFWBHK87TnbfGGj
X-Google-Smtp-Source: AGHT+IFbt838hrsDsvy4Zzu7Yh/XAx9Q4KJRDYg8QoiiZbuitiKT9AQUz0gqQiySG4Xt7s46F52t6w==
X-Received: by 2002:a50:858c:0:b0:5f4:ca30:149f with SMTP id 4fb4d7f45d1cf-5f723a16471mr1903259a12.31.1745600849886;
        Fri, 25 Apr 2025 10:07:29 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------vKZiJYBFphQnFEdHbsm5hwUH"
Message-ID: <83fc1566-ad4f-489d-a432-01ec638cbc21@gmail.com>
Date: Fri, 25 Apr 2025 19:07:27 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 06/14] xen/riscv: riscv_of_processor_hartid()
 implementation
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1744126720.git.oleksii.kurochko@gmail.com>
 <ab592d50ad161ffed3950bdf58ade49ae90a3c0e.1744126720.git.oleksii.kurochko@gmail.com>
 <65f5952a-8d2a-499c-bd66-53e9e2fbfa9c@suse.com>
 <d10323b7-d95d-4b96-9bf1-7ae8edda153e@gmail.com>
 <859d0c87-dc90-44c2-ab30-5164eec0705c@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <859d0c87-dc90-44c2-ab30-5164eec0705c@suse.com>

This is a multi-part message in MIME format.
--------------vKZiJYBFphQnFEdHbsm5hwUH
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 4/15/25 3:45 PM, Jan Beulich wrote:
> On 15.04.2025 15:39, Oleksii Kurochko wrote:
>> On 4/10/25 5:53 PM, Jan Beulich wrote:
>>> On 08.04.2025 17:57, Oleksii Kurochko wrote:
>>>> +{
>>>> +    const __be32 *cell;
>>>> +    int ac;
>>>> +    uint32_t len;
>>>> +
>>>> +    ac = dt_n_addr_cells(cpun);
>>>> +    cell = dt_get_property(cpun, "reg", &len);
>>>> +    if ( !cell || !ac || ((sizeof(*cell) * ac * (thread + 1)) > len) )
>>>> +        return ~0ULL;
>>> I'm sorry for my lack of DT knowledge, but what's "thread" representing here?
>>> You only pass in 0 below, so it's unclear whether it's what one might expect
>>> (the thread number on a multi-threaded core).
>> Based on the DT specification alone, the|`reg`| value could refer to either a CPU or a thread ID:
>> ```
>> The value of reg is a <prop-encoded-array> that defines a unique CPU/thread id for
>> the CPU/threads represented by the CPU node. If a CPU supports more than one thread
>> (i.e. multiple streams of execution) the reg prop-erty is an array with 1 element
>> per thread.
>> ```
>>
>> My understanding is that the term/thread/ was used in the Linux kernel to cover both
>> cases.
>> When SMT isn't supported, the CPU can be considered to have a single thread.
>> For example, RISC-V uses the term/hardware thread/ to describe a hart (i.e., a CPU).
>>
>> Interestingly, the Linux kernel always uses|thread = 0|.
>>
>> We could potentially drop this ambiguity and introduce an|ASSERT()| to check that
>> the|`reg`| property contains only one entry, representing the HART (CPU) ID:
>> ```
>>     Software can determine the number of threads by dividing the size of reg by the parent
>>     node’s #address-cells. If `|reg`| has more than one entry, it would simply SMT support
>>     is required.
>> ```
>>
>> Does that approach make sense, or should we stick with the current implementation?
> If extra enabling is required to make multi-thread CPUs work, then panic()ing
> (not so much ASSERT()ing) may make sense, for the time being. Better would be
> if we could use all threads in a system right away.

Actually, this function is ready to be used for multi-thread CPUs. A caller can request hardware id
by passing `thread` argument (`thread` -> the local thread number to get the hardware ID for).
So by calling:
  dt_get_cpu_hwid(cpu0, 0) -> it will return hardware id of thread 0 of cpu0
  dt_get_cpu_hwid(cpu0, 1) -> it will return hardware id of thread 1 of cpu0
  ...

In our case we assume that SMP isn't supported so that is why it is used only dt_get_cpu_hwid(cpu0, 0).

If one day, SMP will be enabled then it will be needed to change a callers of dt_get_cpu_hwid().

I will add a check in the caller.

~ Oleksii

--------------vKZiJYBFphQnFEdHbsm5hwUH
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 4/15/25 3:45 PM, Jan Beulich wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:859d0c87-dc90-44c2-ab30-5164eec0705c@suse.com">
      <pre wrap="" class="moz-quote-pre">On 15.04.2025 15:39, Oleksii Kurochko wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">On 4/10/25 5:53 PM, Jan Beulich wrote:
</pre>
        <blockquote type="cite">
          <pre wrap="" class="moz-quote-pre">On 08.04.2025 17:57, Oleksii Kurochko wrote:
</pre>
          <blockquote type="cite">
            <pre wrap="" class="moz-quote-pre">+{
+    const __be32 *cell;
+    int ac;
+    uint32_t len;
+
+    ac = dt_n_addr_cells(cpun);
+    cell = dt_get_property(cpun, "reg", &amp;len);
+    if ( !cell || !ac || ((sizeof(*cell) * ac * (thread + 1)) &gt; len) )
+        return ~0ULL;
</pre>
          </blockquote>
          <pre wrap="" class="moz-quote-pre">I'm sorry for my lack of DT knowledge, but what's "thread" representing here?
You only pass in 0 below, so it's unclear whether it's what one might expect
(the thread number on a multi-threaded core).
</pre>
        </blockquote>
        <pre wrap="" class="moz-quote-pre">
Based on the DT specification alone, the|`reg`| value could refer to either a CPU or a thread ID:
```
The value of reg is a &lt;prop-encoded-array&gt; that defines a unique CPU/thread id for
the CPU/threads represented by the CPU node. If a CPU supports more than one thread
(i.e. multiple streams of execution) the reg prop-erty is an array with 1 element
per thread.
```

My understanding is that the term/thread/ was used in the Linux kernel to cover both
cases.
When SMT isn't supported, the CPU can be considered to have a single thread.
For example, RISC-V uses the term/hardware thread/ to describe a hart (i.e., a CPU).

Interestingly, the Linux kernel always uses|thread = 0|.

We could potentially drop this ambiguity and introduce an|ASSERT()| to check that
the|`reg`| property contains only one entry, representing the HART (CPU) ID:
```
   Software can determine the number of threads by dividing the size of reg by the parent
   node’s #address-cells. If `|reg`| has more than one entry, it would simply SMT support
   is required.
```

Does that approach make sense, or should we stick with the current implementation?
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
If extra enabling is required to make multi-thread CPUs work, then panic()ing
(not so much ASSERT()ing) may make sense, for the time being. Better would be
if we could use all threads in a system right away.</pre>
    </blockquote>
    <pre>Actually, this function is ready to be used for multi-thread CPUs. A caller can request hardware id
by passing `thread` argument (`thread` -&gt; the local thread number to get the hardware ID for).
So by calling:
 dt_get_cpu_hwid(cpu0, 0) -&gt; it will return hardware id of thread 0 of cpu0
 dt_get_cpu_hwid(cpu0, 1) -&gt; it will return hardware id of thread 1 of cpu0
 ...

In our case we assume that SMP isn't supported so that is why it is used only dt_get_cpu_hwid(cpu0, 0).

If one day, SMP will be enabled then it will be needed to change a callers of dt_get_cpu_hwid().

I will add a check in the caller.

~ Oleksii
</pre>
  </body>
</html>

--------------vKZiJYBFphQnFEdHbsm5hwUH--


From xen-devel-bounces@lists.xenproject.org Fri Apr 25 17:33:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 17:33:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.968432.1358026 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8MvF-0000ys-NF; Fri, 25 Apr 2025 17:33:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 968432.1358026; Fri, 25 Apr 2025 17:33: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 1u8MvF-0000yl-Kd; Fri, 25 Apr 2025 17:33:09 +0000
Received: by outflank-mailman (input) for mailman id 968432;
 Fri, 25 Apr 2025 17:33: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=dzCY=XL=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1u8MvD-0000yf-Uo
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 17:33:07 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on20602.outbound.protection.outlook.com
 [2a01:111:f403:2415::602])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 57c6433a-21fb-11f0-9ffb-bf95429c2676;
 Fri, 25 Apr 2025 19:33:05 +0200 (CEST)
Received: from CH0PR07CA0004.namprd07.prod.outlook.com (2603:10b6:610:32::9)
 by SA3PR12MB9107.namprd12.prod.outlook.com (2603:10b6:806:381::7) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.27; Fri, 25 Apr
 2025 17:32:59 +0000
Received: from CH2PEPF00000147.namprd02.prod.outlook.com
 (2603:10b6:610:32:cafe::cd) by CH0PR07CA0004.outlook.office365.com
 (2603:10b6:610:32::9) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.37 via Frontend Transport; Fri,
 25 Apr 2025 17:32:58 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CH2PEPF00000147.mail.protection.outlook.com (10.167.244.104) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Fri, 25 Apr 2025 17:32:58 +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, 25 Apr
 2025 12:32:32 -0500
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; Fri, 25 Apr
 2025 12:32:31 -0500
Received: from [192.168.223.33] (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, 25 Apr 2025 12:32:31 -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: 57c6433a-21fb-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=yGbakci1hw/Egy1sDgDa6noues6Q2IVPOL7BPHl+/qts9VFMq9862fwFeFaVNh734Y7F2el1mjwtagW6Tsjo9oTPlY/TIEeiGmD7MP2d8kMWYFxV6B4o7sJFhqbcX31GM2dURcM6SkEZK/UcrNX4XWOM9GfYLhAmP4nb+lrezNHkIcvFl56Ae7CJppsMdgug5CPxIZPLJmy2S7y4gr+yjB3Z0bH22f6sZ6SE952zk/lVU8ym92H8UKgKkMy9/sqinA6hSxbotROCNITazo9Ih9oWf0J75CDwqQ87aSvCCzfDcBjvuA6uDntCETyR1E90v94+kxCzHh8sZwq+P4/kqg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=eBlBCK9PLjRb8d98og+xLA73usRVW3jYMzlHqxm/rII=;
 b=Zmn8Sbcc5mh0MAxPQkdEibCpCKQxkM2fXKK7z7kMvIUqpbmf9e0wtgp3sVlC0r/K9/iMGnzB3KlDQg62MEG7KnHKeL3kSb7pQSSv93ucqaSvUvSDscVWKdANQ3a4gjhmIvGhBmWUO4UTzwFKbPto/MYbtG7zLUxPVxd1D/qt5IQoKwAFqErR3hdZu4xW0De2NB7kK88WedTA2Bw6nDiT3F+UsJrmo1KwJWKNoTXfQQSq024aRzyj+OWtQ9KD/XcplAkcNZiLUIKOOVW7OY2O2F2un2Zrjj274PFNbgb1ONbbu49BCje0L1uu0DJlFmJJclbUakgsCAGNaTUDZ0NHHA==
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=eBlBCK9PLjRb8d98og+xLA73usRVW3jYMzlHqxm/rII=;
 b=bwIjL//vp6RWMCYQ0AeHOcODgJ5ml1fZ2w4B1//KYEabu+weyWVbvw0VKfqq0PdDzMtbRawEV5oGoWg+ZoavsPhvrtHBho9ZKrWwuur5PxL/Ni5q+OmA91aVY3SSoo3ptlgell1R1whsmFViVrFHfNStbyiyeJqxedeMogIJdrE=
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: <e1e679d7-6578-4f8b-b61c-71a34230a98c@amd.com>
Date: Fri, 25 Apr 2025 13:32:31 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] x86: constrain sub-page access length in
 mmio_ro_emulated_write()
To: Jan Beulich <jbeulich@suse.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Marek Marczykowski
	<marmarek@invisiblethingslab.com>
References: <8e31896e-3603-4969-af7c-3175ceacff55@suse.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <8e31896e-3603-4969-af7c-3175ceacff55@suse.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH2PEPF00000147:EE_|SA3PR12MB9107:EE_
X-MS-Office365-Filtering-Correlation-Id: aa7ec899-f642-442d-c970-08dd841f38d0
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|82310400026|36860700013|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?dXhZVFRLOWxmVUh6blNpcURoQnhjMDBwMnBUeVZqYWw0RXh0OU5tdEhsRHd1?=
 =?utf-8?B?RVA1eWZvRVNOSDhOcnBtd0RucExUdyt0OTEvdkw0UmdLeExUQ25QbUdBODFz?=
 =?utf-8?B?ZEFLMnhmYityRnVVNnMxT1RTenJWaXcxMVRmRUVMemhqMmJLQnNHaktWdWMv?=
 =?utf-8?B?OWlnRk16RWx6VTlLWTRNZG5DZXJjYUpObWE3bTkrdlViNVdZWHFyUWJkVHJw?=
 =?utf-8?B?aXpMNFRyMVNrdjBnTmV4V09ZZkhsdlJ0VU8wdTgzdTNlWEljZWNLUWFpaGRK?=
 =?utf-8?B?U0lGWnZ3Q2R5ZDFKajFzSHkrbTg5NHF1TUJFQStKODI2d3RCem1yL1l2aG9T?=
 =?utf-8?B?M2tmV082KzNjVDJuWHhtb2dEcFlxb1Y3V1JaQkhSbjgrY2dPVlBTLzNnM1hW?=
 =?utf-8?B?UXA2bjBndzM4Wk13eVJlcCthNDZJYVdjZzdrYnNsOExtV0lwcUVJVzdoTmE3?=
 =?utf-8?B?ek9WM25yaTFOQm1paWNJVWRkNU1rMjlZM2FIYlZLM3NYNmtnZVlsRDRtYVJ3?=
 =?utf-8?B?enYweHRsUmNXM0dXdmxORjd1MXZMNThLWXhhRERSYXRIWUM2bThlN0VuTkFS?=
 =?utf-8?B?T0Nnbmw3clJTZE52TVRwTGsxQXdwZlBKVVhqTG5rNGx3MUswZzYwRzlycUZV?=
 =?utf-8?B?eU05VDg4TW1tVHh0T0VDRHhITUN2V2tFZ0pLK3M4R1luMmtWd1pOUUVncU1q?=
 =?utf-8?B?TklpUDdSdVJUYW5nUThGb3N1Rzc3SnpWaEZmOVpoQ09rMWVNVGZzbUl6STdp?=
 =?utf-8?B?SUJZWUc2clp0N1ZYOVdQcnZCUVZXak9rTk5mWUJoL0RxYnY0T2h3TVUwYWtZ?=
 =?utf-8?B?R0NKSlZqUGFGRmlVcVYxdy9VbmZqWjdCTkF1UzJmL2lxN3BlRHNXRjRUdU5w?=
 =?utf-8?B?bWhZaFRFeTJrOGJhWG5QY3B3T2IrUGo1UGdBd1A3UEVLSVhYQW1xSUZkVHQz?=
 =?utf-8?B?Y25BTkhMK2JtNWE4djJJejRReDFKK1lFWERQQi9FS2VmUWFPa2Q1V1dBQmly?=
 =?utf-8?B?Rk5JVTNyWmRxeEpVMnJFajM0L1ZtVDZKMFpia3hzMlEvOTFiTG1xb2huV2NY?=
 =?utf-8?B?b0tLOUR2d2JvVXpEZkF3ZHRlSVc4Szgvc2dWcVFjdEdCWWJuQnA4c0w5cDJC?=
 =?utf-8?B?K3kvdkd6N1Y2aEdMMS85NGZLNitrUWZJdHQyUHNnay8wVUZnUnBCS2JrLzBM?=
 =?utf-8?B?UGhqSjhzWmt3VmpnRDI0N1V4NUVkQ01Rem5GZDFpdjI1RHJJY1lyVHIvbmQv?=
 =?utf-8?B?QnNxRDNLYmwzcU5PU0kyTkVESzhUQXdlNElhOHgrQzBhWXV4QjFrWTE0dTdT?=
 =?utf-8?B?QzRpQXVLR2VTL1ZEdUhrd3pYanVHSnFYaUVFWml4MG5KejZMOVhhYUdRK2FS?=
 =?utf-8?B?Wkk3RGVnMEJ1ZytxcjdQOUFmNkhmaUxabnNaUnVzZkNTS3FRWndweGEycDBW?=
 =?utf-8?B?dCtPMldlN3AwTmJhTDFVSkx6ZVVsM0hYbVVzekhTUlNHTDlId1dENkpWWk5k?=
 =?utf-8?B?V2NYOVFUNjJtNnJ1c1JlU0VEcmRaMUtCNVpzTXVDNWFscGtlM2VSYUFmZTha?=
 =?utf-8?B?bSt4RzRHV2tzRHI2OG1pVmcwcU9LRlFLSTN2eno5UzdYYlFYNjZYV29MR3dK?=
 =?utf-8?B?QVRGZyszeVFkMTRMd0RuR3MyTDh1eENGakpZWGJ6QUJjZ0tReURzQzFMS0ZZ?=
 =?utf-8?B?c3lBb3FKeDJGOTJSQVZrclR1T1o0SXE2bkhvYUhVcXBGUW1NV1UyQUlyWU04?=
 =?utf-8?B?aENNd1I4NkJQU0lsSTZQY0lCY3pDT2ZrbVJlazZuZ3Y4QkZ3c1E0azdudktv?=
 =?utf-8?B?VEx3MVpXNnBPYmRIbWFyL1VUdDMrYnhIdjdiWEhHN3dEcDh0RXlYamloVE9a?=
 =?utf-8?B?SlRuL29Ldi9pYzlrWW1GcXdheEJ0VWJlZnI0VDFyRS9YRGk2UVAzNzcvQzNp?=
 =?utf-8?B?N05Uc1ZidWFwMVNmRHRyMUEyQkk1ZTdsUmJTTzZ6VkpwcGE4QW9WMjZTVm5V?=
 =?utf-8?B?cW1LRUV3YXJjdFB0ZFlWVHJvOGlGWmNhNzVaSkp3Vm9acEJjeWlWdE1yTFNM?=
 =?utf-8?Q?4taA2/?=
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)(82310400026)(36860700013)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Apr 2025 17:32:58.7905
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: aa7ec899-f642-442d-c970-08dd841f38d0
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:
	CH2PEPF00000147.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA3PR12MB9107

On 2025-04-25 10:57, Jan Beulich wrote:
> Without doing so we could trigger the ASSERT_UNREACHABLE() in
> subpage_mmio_write_emulate(). A comment there actually says this
> validation would already have been done ...
> 
> Fixes: 8847d6e23f97 ("x86/mm: add API for marking only part of a MMIO page read only")
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

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

Thanks,
Jason


From xen-devel-bounces@lists.xenproject.org Fri Apr 25 19:17:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 19:17:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.968467.1358037 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8OXX-0007SF-2k; Fri, 25 Apr 2025 19:16:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 968467.1358037; Fri, 25 Apr 2025 19:16: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 1u8OXW-0007S8-VS; Fri, 25 Apr 2025 19:16:46 +0000
Received: by outflank-mailman (input) for mailman id 968467;
 Fri, 25 Apr 2025 19:16: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=6c45=XL=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u8OXW-0007S1-1F
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 19:16:46 +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 d1bae5f4-2209-11f0-9ffb-bf95429c2676;
 Fri, 25 Apr 2025 21:16:42 +0200 (CEST)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-43cfa7e7f54so17618015e9.1
 for <xen-devel@lists.xenproject.org>; Fri, 25 Apr 2025 12:16:41 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4409d2e00d8sm64872665e9.35.2025.04.25.12.16.40
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 25 Apr 2025 12:16: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: d1bae5f4-2209-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745608601; x=1746213401; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=7yCl7Nxk5kW0l0lZ1snvne7fNXsybkzRk/jJxxXvIrE=;
        b=CC9uIEWnN9QF9B4Hq8GAHOBl4vR6MS7Elh4Tlf7OT5kIAnPrMeBjKPLrmRWZq8cbne
         EZf/lneim0xYoXE1u+VvZ2LkykPJlmMNPaR0VOn6ViuLfIMvzHnKEwbBrKaMhU3g8ukp
         oiFZGw5OeYRhQu85o78Ot4E5oQoS6ulDGrnsI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745608601; x=1746213401;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=7yCl7Nxk5kW0l0lZ1snvne7fNXsybkzRk/jJxxXvIrE=;
        b=bj/KYEFXPsNM1clYwBy6/jkgiZCLR/xL1ZQUFFp4ga3BdmBNgJJ0swUN6g76bPu7DL
         aeUvcvVn+UEqpnfnpOA19fqkktMoTcQ+ugG0OS0QhXdqJP2WX+6lvtff8IInwMaclmsS
         r2+crgBosN9kzDAjtmwMX1MC/Z+tjQF3Sc/SA007AoJMW6zSClWBWw5WU6OMr5DI4Yeq
         k3FnsAiLCeN9CZ3EqYak7orzpF5STbdddeI3H2GNcbISfOPTKUi5ZLxAlTVm7JUG7zKH
         b06wV4eGDk87JGRq5dgICRhuqa2nd4azPBSd5M6h1mJO1cQfU98z5Ho++Z1ddlGdjk4V
         PWtw==
X-Forwarded-Encrypted: i=1; AJvYcCXXYOyRCiwKaC0fjsOEplebdxikQ1B2Sbd0K2Uubd1Q6h4MPHUEfOt8vcT1vUzXPyOdHyFfEzIi5H0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxWaG7/o3FR4quW9KUyVPTcKxO/H0z2v1OY0t1JtJgjvc7BF/Oi
	4PIuJZWdZ1/U0yFWiNq64E/If75diwwQIVuiDqxuoJAFMStkZS3fLpSt/YC+GBc=
X-Gm-Gg: ASbGnct0tCzhlasXElgWqAnJOqm3aHaXPiuJ15XQi/JEQrAuvdMVpfOCWafQjlodGWR
	E6fA5AN+53/3Hs8k1oX2VZDWyytsvtI/idI7Z6pRNaBq3ieL1FirHyvq/RfuOmKrAcLeyzJ2J6C
	gWx1jYFGPzexJpfFoFysSg1y/4xMf7v/vTO20OB5wHnTJYp6HVTu+z0orwJl9irbUcGE5j3PCCz
	+CEnfVxj7gi5HeRu2UK1rLUQQEZcVpAIucQUBdY/+pX4aEkSjH8ZQi2eEgqUQLxa6sAYfAGKGxz
	YYt5AOgaBgz+UCbR2Lzj6S4WvqI9tJXCkxCGEJqBYFip1+pCNGOO+ZG+rP0p3QbiYQxNJXD/oHq
	xslt0zA==
X-Google-Smtp-Source: AGHT+IFl6xErE+Gz3Xytl5p8x5Qg/FbWKPXrmjM8yIfOfkwkEO6+4dEqj11qq5byorp3RVwQ7VWGfA==
X-Received: by 2002:a05:600c:5108:b0:43d:b33:679c with SMTP id 5b1f17b1804b1-440a66a1015mr27159335e9.14.1745608601229;
        Fri, 25 Apr 2025 12:16:41 -0700 (PDT)
Message-ID: <9d6af88c-1ee0-44a4-9907-ce56973f50ab@citrix.com>
Date: Fri, 25 Apr 2025 20:16:39 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/hyperv: use dynamically allocated page for hypercalls
To: Ariadne Conill <ariadne@ariadne.space>, xen-devel@lists.xenproject.org
Cc: Paul Durrant <paul@xen.org>, Jan Beulich <jbeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Alejandro Vallejo <agarciav@amd.com>,
 "Alexander M . Merritt" <alexander@edera.dev>
References: <20250425165148.60408-1-ariadne@ariadne.space>
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: <20250425165148.60408-1-ariadne@ariadne.space>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 25/04/2025 5:51 pm, Ariadne Conill wrote:
> diff --git a/xen/arch/x86/guest/hyperv/hyperv.c b/xen/arch/x86/guest/hyperv/hyperv.c
> index 6989af38f1..637b4bf335 100644
> --- a/xen/arch/x86/guest/hyperv/hyperv.c
> +++ b/xen/arch/x86/guest/hyperv/hyperv.c
> @@ -98,10 +97,22 @@ static void __init setup_hypercall_page(void)
>      rdmsrl(HV_X64_MSR_HYPERCALL, hypercall_msr.as_uint64);
>      if ( !hypercall_msr.enable )
>      {
> -        mfn = HV_HCALL_MFN;
> +        hv_hcall_page = alloc_xenheap_page();
> +        if ( !hv_hcall_page )
> +        {
> +            printk("Hyper-V: Failed to allocate hypercall trampoline page\n");
> +            return -ENOMEM;
> +        }
> +
> +        printk("Hyper-V: Allocated hypercall page @ %p.\n", hv_hcall_page);
> +
> +        mfn = virt_to_mfn(hv_hcall_page);

Up to here is ok; this is just choosing a different page, but...

>          hypercall_msr.enable = 1;
>          hypercall_msr.guest_physical_address = mfn;
>          wrmsrl(HV_X64_MSR_HYPERCALL, hypercall_msr.as_uint64);
> +
> +        start = (unsigned long) hv_hcall_page;
> +        modify_xen_mappings(start, start + PAGE_SIZE, PAGE_HYPERVISOR_RX);

... this and ...

>      }
>      else
>          mfn = hypercall_msr.guest_physical_address;
> @@ -109,9 +120,9 @@ static void __init setup_hypercall_page(void)
>      rdmsrl(HV_X64_MSR_HYPERCALL, hypercall_msr.as_uint64);
>      BUG_ON(!hypercall_msr.enable);
>  
> -    set_fixmap_x(FIX_X_HYPERV_HCALL, mfn << PAGE_SHIFT);

... this break the case where the overlay is already chosen and cannot move.

It really needs to stay using set_fixmap_x(), which in turn means you
can ...

> diff --git a/xen/arch/x86/include/asm/guest/hyperv-hcall.h b/xen/arch/x86/include/asm/guest/hyperv-hcall.h
> index b76dbf9ccc..b73edca7c6 100644
> --- a/xen/arch/x86/include/asm/guest/hyperv-hcall.h
> +++ b/xen/arch/x86/include/asm/guest/hyperv-hcall.h
> @@ -20,13 +20,13 @@ static inline uint64_t hv_do_hypercall(uint64_t control, paddr_t input_addr,
>                                         paddr_t output_addr)
>  {
>      uint64_t status;
> -    register unsigned long r8 asm ( "r8" ) = output_addr;
>  
>      /* See TLFS for volatile registers */
> -    asm volatile ( "call hv_hcall_page"
> +    asm volatile ( "mov %[output_addr], %%r8\n"
> +                   "call *%[target_addr]"
>                     : "=a" (status), "+c" (control),
>                       "+d" (input_addr) ASM_CALL_CONSTRAINT
> -                   : "r" (r8)
> +                   : [output_addr] "r" (output_addr), [target_addr] "r" (hv_hcall_page)
>                     : "memory" );

... undo this speculative security vulnerability you've got by not using
INDIRECT_CALL.

The point of FIXMAP_X is to provide a virtual address in the main 1G
range for .text/.data/.rodata/.bss, which can point to an arbitrary
location, and can be regularly CALL'd.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Apr 25 19:26:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 19:26:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.968484.1358047 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8Ogm-0000x5-UZ; Fri, 25 Apr 2025 19:26:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 968484.1358047; Fri, 25 Apr 2025 19:26: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 1u8Ogm-0000wy-Rr; Fri, 25 Apr 2025 19:26:20 +0000
Received: by outflank-mailman (input) for mailman id 968484;
 Fri, 25 Apr 2025 19:26: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=kyFG=XL=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u8Ogl-0000wq-SL
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 19:26:19 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 28bf6834-220b-11f0-9eb3-5ba50f476ded;
 Fri, 25 Apr 2025 21:26:18 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id C985E4AB4E;
 Fri, 25 Apr 2025 19:26:14 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6EA96C4CEE9;
 Fri, 25 Apr 2025 19:26:15 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 28bf6834-220b-11f0-9eb3-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1745609176;
	bh=ljStjEoWpGm0WSufAWVVtJm5j+hefQcxjnFFyz8KcgY=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=LT2WHXiS7x8kST+KvpcKjeiIby/zhVutCJErxMt2Nx3QNr/im8x+w5hNtSiFxOitR
	 5nX08cmWlZByoviT0y0fLkCTX60zymkAZ8vwFjUGRTezuITKMquwyRqlArkhooIIGt
	 tD3fgbdZReKcl/dhoFyc3jEIVUkzAjb2wifF4KCAO95k4HGCk7LixKfYp0kQ4oJ6++
	 fGgSjcDM979WERKy6tMbyWii80uTCARx96GqnESgkwOe7AER9zg+5NIXIfkJ11Xd77
	 eIiRvLYng5rLc5AutyprwjIGPUGsNYwtWohvrIWDAC1GkbRTkER57dIzhWmnOUnBVL
	 wDGcJVSSHGoAQ==
Date: Fri, 25 Apr 2025 12:26:14 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: "Edgar E. Iglesias" <edgar.iglesias@gmail.com>
cc: qemu-devel@nongnu.org, qemu-stable@nongnu.org, sstabellini@kernel.org, 
    anthony@xenproject.org, paul@xen.org, edgar.iglesias@amd.com, 
    xen-devel@lists.xenproject.org
Subject: Re: [PATCH v1 1/1] xen: mapcache: Split mapcache_grants by ro and
 rw
In-Reply-To: <20250425143156.204452-2-edgar.iglesias@gmail.com>
Message-ID: <alpine.DEB.2.22.394.2504251225270.785180@ubuntu-linux-20-04-desktop>
References: <20250425143156.204452-1-edgar.iglesias@gmail.com> <20250425143156.204452-2-edgar.iglesias@gmail.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Fri, 25 Apr 2025, Edgar E. Iglesias wrote:
> From: "Edgar E. Iglesias" <edgar.iglesias@amd.com>
> 
> Today, we don't track write-abiliy in the cache, if a user
> requests a readable mapping followed by a writeable mapping
> on the same page, the second lookup will incorrectly hit
> the readable entry.
> 
> Split mapcache_grants by ro and rw access. Grants will now
> have separate ways in the cache depending on writeability.
> 
> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@amd.com>

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


> ---
>  hw/xen/xen-mapcache.c | 26 +++++++++++++++++++-------
>  1 file changed, 19 insertions(+), 7 deletions(-)
> 
> diff --git a/hw/xen/xen-mapcache.c b/hw/xen/xen-mapcache.c
> index 2c8f861fdb..e31d379702 100644
> --- a/hw/xen/xen-mapcache.c
> +++ b/hw/xen/xen-mapcache.c
> @@ -75,7 +75,8 @@ typedef struct MapCache {
>  } MapCache;
>  
>  static MapCache *mapcache;
> -static MapCache *mapcache_grants;
> +static MapCache *mapcache_grants_ro;
> +static MapCache *mapcache_grants_rw;
>  static xengnttab_handle *xen_region_gnttabdev;
>  
>  static inline void mapcache_lock(MapCache *mc)
> @@ -176,9 +177,12 @@ void xen_map_cache_init(phys_offset_to_gaddr_t f, void *opaque)
>       * Grant mappings must use XC_PAGE_SIZE granularity since we can't
>       * map anything beyond the number of pages granted to us.
>       */
> -    mapcache_grants = xen_map_cache_init_single(f, opaque,
> -                                                XC_PAGE_SHIFT,
> -                                                max_mcache_size);
> +    mapcache_grants_ro = xen_map_cache_init_single(f, opaque,
> +                                                   XC_PAGE_SHIFT,
> +                                                   max_mcache_size);
> +    mapcache_grants_rw = xen_map_cache_init_single(f, opaque,
> +                                                   XC_PAGE_SHIFT,
> +                                                   max_mcache_size);
>  
>      setrlimit(RLIMIT_AS, &rlimit_as);
>  }
> @@ -456,9 +460,13 @@ uint8_t *xen_map_cache(MemoryRegion *mr,
>                         bool is_write)
>  {
>      bool grant = xen_mr_is_grants(mr);
> -    MapCache *mc = grant ? mapcache_grants : mapcache;
> +    MapCache *mc = mapcache;
>      uint8_t *p;
>  
> +    if (grant) {
> +        mc = is_write ? mapcache_grants_rw : mapcache_grants_ro;
> +    }
> +
>      if (grant && !lock) {
>          /*
>           * Grants are only supported via address_space_map(). Anything
> @@ -523,7 +531,10 @@ ram_addr_t xen_ram_addr_from_mapcache(void *ptr)
>  
>      addr = xen_ram_addr_from_mapcache_single(mapcache, ptr);
>      if (addr == RAM_ADDR_INVALID) {
> -        addr = xen_ram_addr_from_mapcache_single(mapcache_grants, ptr);
> +        addr = xen_ram_addr_from_mapcache_single(mapcache_grants_ro, ptr);
> +    }
> +    if (addr == RAM_ADDR_INVALID) {
> +        addr = xen_ram_addr_from_mapcache_single(mapcache_grants_rw, ptr);
>      }
>  
>      return addr;
> @@ -626,7 +637,8 @@ static void xen_invalidate_map_cache_entry_single(MapCache *mc, uint8_t *buffer)
>  static void xen_invalidate_map_cache_entry_all(uint8_t *buffer)
>  {
>      xen_invalidate_map_cache_entry_single(mapcache, buffer);
> -    xen_invalidate_map_cache_entry_single(mapcache_grants, buffer);
> +    xen_invalidate_map_cache_entry_single(mapcache_grants_ro, buffer);
> +    xen_invalidate_map_cache_entry_single(mapcache_grants_rw, buffer);
>  }
>  
>  static void xen_invalidate_map_cache_entry_bh(void *opaque)
> -- 
> 2.43.0
> 


From xen-devel-bounces@lists.xenproject.org Fri Apr 25 19:31:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 19:31:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.968496.1358056 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8Olp-0002so-GH; Fri, 25 Apr 2025 19:31:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 968496.1358056; Fri, 25 Apr 2025 19: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 1u8Olp-0002sh-DO; Fri, 25 Apr 2025 19:31:33 +0000
Received: by outflank-mailman (input) for mailman id 968496;
 Fri, 25 Apr 2025 19:31:32 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=snHQ=XL=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1u8Oln-0002sb-Vz
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 19:31:32 +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 e3a13282-220b-11f0-9eb3-5ba50f476ded;
 Fri, 25 Apr 2025 21:31:30 +0200 (CEST)
Received: by mail-ej1-x62e.google.com with SMTP id
 a640c23a62f3a-ac25d2b2354so389123766b.1
 for <xen-devel@lists.xenproject.org>; Fri, 25 Apr 2025 12:31:30 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-64-225.play-internet.pl.
 [109.243.64.225]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-ace6e4e7260sm178614566b.49.2025.04.25.12.31.28
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 25 Apr 2025 12:31:29 -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: e3a13282-220b-11f0-9eb3-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1745609490; x=1746214290; darn=lists.xenproject.org;
        h=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=TAe1kjc9XeQAvI8QbAKLI5idXVstovLCpXSu1HNW8e8=;
        b=NRnTXS2LFpOZltV3EGGvP5Us1ah61PghvtdKJT7uguOANcSk52D2PKw4OcZUgWFgUQ
         LMhXJMP+Es7LzK/V21CmfohxSZFtEpyDtqS5EzziKVrdPYOxgOPYGDcyV6cZwcI0vKUv
         RbI6tbRS2lBppra9/wErg7s0hzXc0aZRO+yTrFZDBSAikioMOOXnsBSc5/xM0I17mutO
         +cRjwE3N2n8v66DGVePm9oeGXKzVTBF2eBFV0XtvE5cQVa7gSE1L5ncOBaLjsvBUfcm+
         Daj5M5s6hbdmngFpM7Z+WBu2mXpz4w+4wqI3yDhqoKqPMjz8P9F41P2AxMCnWMatEMfn
         1Gww==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745609490; x=1746214290;
        h=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=TAe1kjc9XeQAvI8QbAKLI5idXVstovLCpXSu1HNW8e8=;
        b=ZDeBVGS+dU5Qj/O2Cc4poedaEqCGKLDnosXF3LHe1il2kHCskpFIGCwN7nBnAr9q6g
         2E0ijlkhBuOwVmXapyAjuFcwgEUygILUECO5BlRTCZBK0zOYSHS1Ue0Xa/+4qQ5DBbeg
         ISXQm31P/U6MAcbEUFc4++Gtd+StnMKEiZhPD35MZc7BgtF+UpjMa0KbXC5cy33B30Xs
         UxiSs2Oae/XosvVc858nPK0u+Gzl6BW8zYz5O75De78/x5pHgHvS+o6fewnzCWDpEvf2
         IFhT7LC48v4SshKFp/8UBPO2RSqSxZkaXG2T4+ZeJGNIQkgo5Vydqrfx1DYVbw+406+K
         JQZw==
X-Forwarded-Encrypted: i=1; AJvYcCWTwuXqxewp+mRq72HNAkFw40f2laS/0JxAsftEM6dAi5nJqvnbbZQM7/dMn8TJOwwG0DYqVKOEqkk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YykALQXwUkNZ64+AqYKm4wIlQN7iJtuZyd7w+Jg/hqkNFrDu2hn
	Jy1xypIXfWabulu+iLWauGlyP83gHkrHzHchuj7lgauh4X9dS09t
X-Gm-Gg: ASbGncsYoeCJRDs+7OChP4/gcJW64NTRyt4M9xMlfjt9CN10+Ej8ql+u2DiyZIeXXTQ
	kJCZcYiiO3zmXgofJ4CubkyyDtOUKdVoFMlaenLFmii9DwhIYrYR/aFfJt8OdXVHEX8xQ71TBip
	XHUPW3FzderDbf+W8bMUCUFzoA4m8v3/jq+b9PJbVsDbl7JrvnFNWgwNoeouEYQ/Q6hfFCOytuZ
	vrg/9pvAzqbLaYfk5KVIF7CB8dOXm4+d8DmG7DpckLsqdbK7IM6S/B7jt8VUHut7xr8p7e6gn9s
	t89yo8tXFLuLPL8rN1Ik/ZShAF32HuNmgX1ty8fFgM/EXYpP9WeTDSerszqHBWQm32uN0ZT21fB
	CYrBhygj5vJZYT54XZoliVfxwjYo=
X-Google-Smtp-Source: AGHT+IHZOCIsYf5tu+m5PcTHmT8CaTZOHRNXVIe6ur8yIe1Xp8vW8UTdD8rFh26hsZpS8vhsnRE1hA==
X-Received: by 2002:a17:907:7f26:b0:ac7:3817:d8da with SMTP id a640c23a62f3a-ace713fd0c6mr343200466b.52.1745609489954;
        Fri, 25 Apr 2025 12:31:29 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------QNxNomG2MzxUG3HCadje2v90"
Message-ID: <36eaf6df-4474-4252-bc82-054a7d00343a@gmail.com>
Date: Fri, 25 Apr 2025 21:31:28 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 10/14] xen/riscv: implementation of aplic and imsic
 operations
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Romain Caritey <Romain.Caritey@microchip.com>, xen-devel@lists.xenproject.org
References: <cover.1744126720.git.oleksii.kurochko@gmail.com>
 <74a07ed7c596bbcf581010685e01bfdfa19164f5.1744126720.git.oleksii.kurochko@gmail.com>
 <3426df1b-938a-4d20-a533-dd6695473db0@suse.com>
 <5f922b70-d4c2-4e6e-ad05-f91afc70ee73@gmail.com>
 <d63a6410-7053-4f75-aeda-6cd4e36bd302@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <d63a6410-7053-4f75-aeda-6cd4e36bd302@suse.com>

This is a multi-part message in MIME format.
--------------QNxNomG2MzxUG3HCadje2v90
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 4/22/25 9:02 AM, Jan Beulich wrote:
> On 18.04.2025 12:43, Oleksii Kurochko wrote:
>> On 4/15/25 4:53 PM, Jan Beulich wrote:
>>> On 08.04.2025 17:57, Oleksii Kurochko wrote:
>>>> --- a/xen/arch/riscv/imsic.c
>>>> +++ b/xen/arch/riscv/imsic.c
>>>> @@ -14,12 +14,68 @@
>>>>    #include <xen/errno.h>
>>>>    #include <xen/init.h>
>>>>    #include <xen/macros.h>
>>>> +#include <xen/spinlock.h>
>>>>    #include <xen/xmalloc.h>
>>>>    
>>>>    #include <asm/imsic.h>
>>>>    
>>>>    static struct imsic_config imsic_cfg;
>>>>    
>>>> +#define imsic_csr_set(c, v)     \
>>>> +do {                            \
>>>> +    csr_write(CSR_SISELECT, c); \
>>>> +    csr_set(CSR_SIREG, v);      \
>>>> +} while (0)
>>>> +
>>>> +#define imsic_csr_clear(c, v)   \
>>>> +do {                            \
>>>> +    csr_write(CSR_SISELECT, c); \
>>>> +    csr_clear(CSR_SIREG, v);    \
>>>> +} while (0)
>>> Coming back to these (the later patch adds one more here): How expensive are
>>> these CSR writes? IOW would it perhaps make sense to maintain a local cache
>>> of the last written SISELECT value, to avoid writing the same one again if
>>> the same windowed register needs accessing twice in a row?
>> CSRs belong to the HART, so access to them is very fast.
> Can you back this by any data? I view CSRs as somewhat similar to x86'es MSRs,
> and access (writes in particular) to some of them is rather slow.

CSR read 1 cycle, CSR write 7 cycles on Microchip platform. ~ Oleksii

--------------QNxNomG2MzxUG3HCadje2v90
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 4/22/25 9:02 AM, Jan Beulich wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:d63a6410-7053-4f75-aeda-6cd4e36bd302@suse.com">
      <pre wrap="" class="moz-quote-pre">On 18.04.2025 12:43, Oleksii Kurochko wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">
On 4/15/25 4:53 PM, Jan Beulich wrote:
</pre>
        <blockquote type="cite">
          <pre wrap="" class="moz-quote-pre">On 08.04.2025 17:57, Oleksii Kurochko wrote:
</pre>
          <blockquote type="cite">
            <pre wrap="" class="moz-quote-pre">--- a/xen/arch/riscv/imsic.c
+++ b/xen/arch/riscv/imsic.c
@@ -14,12 +14,68 @@
  #include &lt;xen/errno.h&gt;
  #include &lt;xen/init.h&gt;
  #include &lt;xen/macros.h&gt;
+#include &lt;xen/spinlock.h&gt;
  #include &lt;xen/xmalloc.h&gt;
  
  #include &lt;asm/imsic.h&gt;
  
  static struct imsic_config imsic_cfg;
  
+#define imsic_csr_set(c, v)     \
+do {                            \
+    csr_write(CSR_SISELECT, c); \
+    csr_set(CSR_SIREG, v);      \
+} while (0)
+
+#define imsic_csr_clear(c, v)   \
+do {                            \
+    csr_write(CSR_SISELECT, c); \
+    csr_clear(CSR_SIREG, v);    \
+} while (0)
</pre>
          </blockquote>
          <pre wrap="" class="moz-quote-pre">Coming back to these (the later patch adds one more here): How expensive are
these CSR writes? IOW would it perhaps make sense to maintain a local cache
of the last written SISELECT value, to avoid writing the same one again if
the same windowed register needs accessing twice in a row?
</pre>
        </blockquote>
        <pre wrap="" class="moz-quote-pre">
CSRs belong to the HART, so access to them is very fast.
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Can you back this by any data? I view CSRs as somewhat similar to x86'es MSRs,
and access (writes in particular) to some of them is rather slow.</pre>
    </blockquote>
    <pre><span data-teams="true">CSR read 1 cycle, CSR write 7 cycles on Microchip platform.

~ Oleksii</span></pre>
  </body>
</html>

--------------QNxNomG2MzxUG3HCadje2v90--


From xen-devel-bounces@lists.xenproject.org Fri Apr 25 19:36:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 19:36:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.968508.1358067 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8OqQ-0003SW-0c; Fri, 25 Apr 2025 19:36:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 968508.1358067; Fri, 25 Apr 2025 19:36: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 1u8OqP-0003SP-UE; Fri, 25 Apr 2025 19:36:17 +0000
Received: by outflank-mailman (input) for mailman id 968508;
 Fri, 25 Apr 2025 19:36: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=kyFG=XL=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u8OqO-0003SJ-Aj
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 19:36:16 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8c3a7fdf-220c-11f0-9eb3-5ba50f476ded;
 Fri, 25 Apr 2025 21:36:14 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 2A9D844857;
 Fri, 25 Apr 2025 19:36:11 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0DA8EC4CEE4;
 Fri, 25 Apr 2025 19:36: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: 8c3a7fdf-220c-11f0-9eb3-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1745609772;
	bh=Lk8VTNBjWeyLkREZOLErGRfXWb+jJuEIauNxzWVdEl4=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=vMnUinjKfsXGQgsoTUAGAi/jFPOXdIge3DZhDjZoMuQLaNT5uI+2jL5uY+cdg00sm
	 +/jxOdy68Vz/ioqvL+sx++xdV1Em7IETNXIE+JHHmIDKNKQmBkQDTZsxVLIlJ6UoSW
	 W4MAKGg3g/nhXNEC+JugOy1dm0FcwPalT3ST7yR1/kyQZsD3sM4RkZ4cNW0pha0kMv
	 iC9LJhVCCKZDBJA0Tgw4tzkJsE0QBvM5vCQFkT05Dwvwn8BN7U7FeZ8VRS3PdeDqqM
	 Vl97JPeH21A+cKiideHEbtq20VBTY7dYPIfMmsn4HtlEv8Msno+0IWlSarPfb6Fk3H
	 Z/Wl404nc39Xw==
Date: Fri, 25 Apr 2025 12:36:10 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: "Orzel, Michal" <michal.orzel@amd.com>
cc: Stefano Stabellini <sstabellini@kernel.org>, 
    xen-devel@lists.xenproject.org, andrei.cherechesu@oss.nxp.com, 
    jason.andryuk@amd.com
Subject: Re: [PATCH v5] uboot-script-gen: Dynamically compute addr and size
 when loading binaries
In-Reply-To: <b73c7dcc-278a-413c-addc-44aef753d1dd@amd.com>
Message-ID: <alpine.DEB.2.22.394.2504251228020.785180@ubuntu-linux-20-04-desktop>
References: <alpine.DEB.2.22.394.2504241808470.785180@ubuntu-linux-20-04-desktop> <b73c7dcc-278a-413c-addc-44aef753d1dd@amd.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Fri, 25 Apr 2025, Orzel, Michal wrote:
> On 25/04/2025 03:16, Stefano Stabellini wrote:
> > From: Andrei Cherechesu <andrei.cherechesu@oss.nxp.com>
> > 
> > Normally, the Imagebuilder would precompute the sizes of the loaded
> > binaries and addresses where they are loaded before generating the
> > script, and the sizes and addresses that needed to be provided to
> > Xen via /chosen would be hardcoded in the boot script.
> > 
> > Added an option via "-s" parameter to avoid hardcoding any
> > address in the boot script, and dynamically compute the
> > loading addresses for binaries. The first loading address is based
> > on the MEMORY_START parameter and after loading each binary,
> > the loading address and the size of the binary are stored in
> > variables with corresponding names. Then, the loading address
> > for the next binary is computed and aligned to 0x200000.
> > 
> > If the "-s" parameter is not used, the normal flow is executed,
> > where the loading addresses and sizes for each binaries are
> > precomputed and hardcoded inside the script, but the loading
> > addresses and sizes for each binary are now also stored for eventual
> > later use.
> > 
> > Reserved memory regions are left TBD in the -s case.
> > 
> > Link: https://lists.xenproject.org/archives/html/xen-devel/2022-09/msg01862.html
> > Signed-off-by: Andrei Cherechesu <andrei.cherechesu@nxp.com>
> > Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
> > ---
> > This patch adds quite a bit of complexity which is the reason why I
> > didn't originally commit it. Now that we are enabling ImageBuilder in
> > Yocto, it turns out this patch is required because Yocto invokes
> > ImageBuilder before all the binaries are ready and available.
> > 
> > Andrei, sorry for taking so long to realize why it is essential, but we
> > are getting there now.
> > 
> > The changes I made to the original patch are purely to make it simpler
> > to maintain.
> > ---
> > 
> > diff --git a/README.md b/README.md
> > index f8039ec..28c9e6b 100644
> > --- a/README.md
> > +++ b/README.md
> > @@ -356,6 +356,8 @@ Where:\
> >     can only be used  in combination with the -k option.  This adds the
> >     public key into the dtb.  Then one can add this dtb back into the
> >     u-boot bin or elf.\
> > +-s addresses and sizes are calculated dynamically from U-Boot, hence
> > +   binaries don't need to be available at the time of invocation.\
> >  
> >  ### Signed FIT images
> >  
> > diff --git a/scripts/uboot-script-gen b/scripts/uboot-script-gen
> > index 638154a..ee4af6c 100755
> > --- a/scripts/uboot-script-gen
> > +++ b/scripts/uboot-script-gen
> > @@ -1,8 +1,11 @@
> >  #!/bin/bash
> >  
> >  offset=$((2*1024*1024))
> > +PADDING_MASK=`printf "0x%X\n" $(($offset - 1))`
> > +PADDING_MASK_INV=`printf "0x%X\n" $((~$PADDING_MASK))`
> >  filesize=0
> >  prog_req=(mkimage file fdtput mktemp awk od)
> > +CALC=""
> >  
> >  function cleanup_and_return_err()
> >  {
> > @@ -100,17 +103,42 @@ function dt_set()
> >      fi
> >  }
> >  
> > +function dt_set_calc()
> > +{
> > +    local path=$1
> > +    local var=$2
> > +    local name_var=$3
> > + 
> > +    addr_var="$name_var"_addr
> > +    size_var="$name_var"_size
> > +
> > +    # Split data_addr_var into high/low
> > +    echo "setexpr addr_hi \${"$addr_var"} / 0x100000000" >> $UBOOT_SOURCE
> > +    echo "setexpr addr_lo \${"$addr_var"} \& 0xFFFFFFFF" >> $UBOOT_SOURCE
> > +    
> > +    # Split data_size_var into high/low
> > +    echo "setexpr size_hi \${"$size_var"} / 0x100000000" >> $UBOOT_SOURCE
> > +    echo "setexpr size_lo \${"$size_var"} \& 0xFFFFFFFF" >> $UBOOT_SOURCE
> > +    
> > +    echo "fdt set $path $var <0x\${addr_hi} 0x\${addr_lo} 0x\${size_hi} 0x\${size_lo}>" >> $UBOOT_SOURCE
> > +}
> > +
> >  function add_device_tree_kernel()
> >  {
> >      local path=$1
> > -    local addr=$2
> > -    local size=$3
> > -    local bootargs=$4
> > +    local name=$2
> > +    local addr=$3
> > +    local size=$4
> > +    local bootargs=$5
> >      local node_name="module@${addr#0x}"
> >  
> >      dt_mknode "$path" "$node_name"
> >      dt_set "$path/$node_name" "compatible" "str_a" "multiboot,kernel multiboot,module"
> > -    dt_set "$path/$node_name" "reg" "hex"  "$(split_addr_size $addr $size)"
> > +    if test "$CALC"; then
> > +        dt_set_calc "$path/$node_name" "reg" $name
> > +    else
> > +        dt_set "$path/$node_name" "reg" "hex"  "$(split_addr_size $addr $size)"
> > +    fi
> >      dt_set "$path/$node_name" "bootargs" "str" "$bootargs"
> >  }
> >  
> > @@ -118,26 +146,36 @@ function add_device_tree_kernel()
> >  function add_device_tree_ramdisk()
> >  {
> >      local path=$1
> > -    local addr=$2
> > -    local size=$3
> > +    local name=$2
> > +    local addr=$3
> > +    local size=$4
> >      local node_name="module@${addr#0x}"
> >  
> >      dt_mknode "$path"  "$node_name"
> >      dt_set "$path/$node_name" "compatible" "str_a" "multiboot,ramdisk multiboot,module"
> > -    dt_set "$path/$node_name" "reg" "hex"  "$(split_addr_size $addr $size)"
> > +    if test "$CALC"; then
> > +        dt_set_calc "$path/$node_name" "reg" $name
> > +    else
> > +        dt_set "$path/$node_name" "reg" "hex"  "$(split_addr_size $addr $size)"
> > +    fi
> >  }
> >  
> >  
> >  function add_device_tree_passthrough()
> >  {
> >      local path=$1
> > -    local addr=$2
> > -    local size=$3
> > +    local name=$2
> > +    local addr=$3
> > +    local size=$4
> >      local node_name="module@${addr#0x}"
> >  
> >      dt_mknode "$path"  "$node_name"
> >      dt_set "$path/$node_name" "compatible" "str_a" "multiboot,device-tree multiboot,module"
> > -    dt_set "$path/$node_name" "reg" "hex"  "$(split_addr_size $addr $size)"
> > +    if test "$CALC"; then
> > +        dt_set_calc "$path/$node_name" "reg" $name
> > +    else
> > +        dt_set "$path/$node_name" "reg" "hex"  "$(split_addr_size $addr $size)"
> > +    fi
> >  }
> >  
> >  function add_device_tree_mem()
> > @@ -358,7 +396,11 @@ function xen_device_tree_editing()
> >  
> >          dt_mknode "/chosen" "$node_name"
> >          dt_set "/chosen/$node_name" "compatible" "str_a" "xen,xsm-policy xen,multiboot-module multiboot,module"
> > -        dt_set "/chosen/$node_name" "reg" "hex" "$(split_addr_size $xen_policy_addr $xen_policy_size)"
> > +        if test "$CALC"; then
> > +            dt_set_calc "/chosen/$node_name" "reg" "xen_policy"
> > +        else
> > +            dt_set "/chosen/$node_name" "reg" "hex" "$(split_addr_size $xen_policy_addr $xen_policy_size)"
> > +        fi
> >      fi
> >  
> >      if test "$DOM0_KERNEL"
> > @@ -367,7 +409,11 @@ function xen_device_tree_editing()
> >  
> >          dt_mknode "/chosen" "$node_name"
> >          dt_set "/chosen/$node_name" "compatible" "str_a" "xen,linux-zimage xen,multiboot-module multiboot,module"
> > -        dt_set "/chosen/$node_name" "reg" "hex" "$(split_addr_size $dom0_kernel_addr $dom0_kernel_size)"
> > +        if test "$CALC"; then
> > +            dt_set_calc "/chosen/$node_name" "reg" "dom0_linux"
> > +        else
> > +            dt_set "/chosen/$node_name" "reg" "hex" "$(split_addr_size $dom0_kernel_addr $dom0_kernel_size)"
> > +        fi
> >          dt_set "/chosen" "xen,dom0-bootargs" "str" "$DOM0_CMD"
> >      fi
> >  
> > @@ -377,7 +423,11 @@ function xen_device_tree_editing()
> >  
> >          dt_mknode "/chosen" "$node_name"
> >          dt_set "/chosen/$node_name" "compatible" "str_a" "xen,linux-initrd xen,multiboot-module multiboot,module"
> > -        dt_set "/chosen/$node_name" "reg" "hex" "$(split_addr_size $ramdisk_addr $ramdisk_size)"
> > +        if test "$CALC"; then
> > +            dt_set_calc "/chosen/$node_name" "reg" "dom0_ramdisk"
> > +        else
> > +            dt_set "/chosen/$node_name" "reg" "hex" "$(split_addr_size $ramdisk_addr $ramdisk_size)"
> > +        fi
> >      fi
> >  
> >      i=0
> > @@ -464,14 +514,14 @@ function xen_device_tree_editing()
> >  
> >          xen_dt_domu_add_vcpu_nodes "/chosen/domU$i" $i ${DOMU_VCPUS[$i]}
> >  
> > -        add_device_tree_kernel "/chosen/domU$i" ${domU_kernel_addr[$i]} ${domU_kernel_size[$i]} "${DOMU_CMD[$i]}"
> > +        add_device_tree_kernel "/chosen/domU$i" "domU${i}_kernel" ${domU_kernel_addr[$i]} ${domU_kernel_size[$i]} "${DOMU_CMD[$i]}"
> >          if test "${domU_ramdisk_addr[$i]}"
> >          then
> > -            add_device_tree_ramdisk "/chosen/domU$i" ${domU_ramdisk_addr[$i]} ${domU_ramdisk_size[$i]}
> > +            add_device_tree_ramdisk "/chosen/domU$i" "domU${i}_ramdisk" ${domU_ramdisk_addr[$i]} ${domU_ramdisk_size[$i]}
> >          fi
> >          if test "${domU_passthrough_dtb_addr[$i]}"
> >          then
> > -            add_device_tree_passthrough "/chosen/domU$i" ${domU_passthrough_dtb_addr[$i]} ${domU_passthrough_dtb_size[$i]}
> > +            add_device_tree_passthrough "/chosen/domU$i" "domU${i}_fdt" ${domU_passthrough_dtb_addr[$i]} ${domU_passthrough_dtb_size[$i]}
> >          fi
> >          i=$(( $i + 1 ))
> >      done
> > @@ -504,7 +554,11 @@ function device_tree_editing()
> >  
> >      if test $UBOOT_SOURCE
> >      then
> > -        echo "fdt addr $device_tree_addr" >> $UBOOT_SOURCE
> > +        if test "$CALC"; then
> > +            echo "fdt addr \${host_fdt_addr}" >> $UBOOT_SOURCE
> > +        else
> > +            echo "fdt addr $device_tree_addr" >> $UBOOT_SOURCE
> > +        fi
> >          echo "fdt resize 1024" >> $UBOOT_SOURCE
> >  
> >          if test $NUM_DT_OVERLAY && test $NUM_DT_OVERLAY -gt 0
> > @@ -512,7 +566,11 @@ function device_tree_editing()
> >              i=0
> >              while test $i -lt $NUM_DT_OVERLAY
> >              do
> > -                echo "fdt apply ${dt_overlay_addr[$i]}" >> $UBOOT_SOURCE
> > +                if test "$CALC"; then
> > +                    echo "fdt apply \${host_fdto${i}_addr}" >> $UBOOT_SOURCE
> > +                else
> > +                    echo "fdt apply ${dt_overlay_addr[$i]}" >> $UBOOT_SOURCE
> > +                fi
> >                  i=$(( $i + 1 ))
> >              done
> >          fi
> > @@ -530,8 +588,12 @@ function fill_reserved_spaces_from_dtb()
> >  {
> >      if [ ! -f $DEVICE_TREE ]
> >      then
> > -        echo "File $DEVICE_TREE doesn't exist, exiting";
> > -        cleanup_and_return_err
> > +        if test "$CALC"; then
> > +            return
> > +        else
> > +            echo "File $DEVICE_TREE doesn't exist, exiting";
> > +            cleanup_and_return_err
> > +        fi
> >      fi
> >  
> >      # Check if reserved-memory node exists
> > @@ -613,7 +675,7 @@ function get_image_size()
> >      printf "%u" $effective_size
> >  }
> >  
> > -function add_size()
> > +function add_size_from_file()
> >  {
> >      local filename=$1
> >      local size=`stat -L --printf="%s" $filename`
> > @@ -645,6 +707,24 @@ function add_size()
> >      filesize=$size
> >  }
> >  
> > +function add_size_calculate()
> > +{
> > +    local fit_scr_name=$1
> > +
> > +    echo "setenv "$fit_scr_name"_addr \${memaddr}" >> $UBOOT_SOURCE
> > +    echo "setenv "$fit_scr_name"_size \${filesize}" >> $UBOOT_SOURCE
> > +    echo "setexpr memaddr \${memaddr} \+ \${filesize}" >> $UBOOT_SOURCE
> > +    echo "setexpr memaddr \${memaddr} \+ $PADDING_MASK" >> $UBOOT_SOURCE
> To save some lines, can the two additions be done in one line, i.e.:
> echo "setexpr memaddr \${memaddr} \+ \${filesize} \+ $PADDING_MASK" >> $UBOOT_SOURCE

I might be testing with an old version of U-Boot (2020.01), but this
syntax is not supported in my test environment. To retain wider
compatibility, I suggest to keep the two separate lines like in this
patch.


> > +    echo "setexpr memaddr \${memaddr} \& $PADDING_MASK_INV" >> $UBOOT_SOURCE
> > +
> > +    # TODO: missing ${RESERVED_MEM_SPACES[@]} check
> > +
> > +    # The following are updated to avoid collisions in node names, but
> > +    # they are not actively used.
> > +    memaddr=$((memaddr + offset))
> > +    filesize=$offset
> > +}
> > +
> >  function load_file()
> >  {
> >      local filename=$1
> > @@ -657,10 +737,16 @@ function load_file()
> >      if test "$FIT"
> >      then
> >          echo "imxtract \$fit_addr $fit_scr_name $memaddr" >> $UBOOT_SOURCE
> > +        add_size_from_file $filename
> >      else
> > -        echo "$LOAD_CMD $memaddr ${prepend_path:+$prepend_path/}$relative_path" >> $UBOOT_SOURCE
> > +        if test "$CALC"; then
> > +            echo "$LOAD_CMD \${memaddr} ${prepend_path:+$prepend_path/}$relative_path" >> $UBOOT_SOURCE
> > +            add_size_calculate $fit_scr_name
> > +        else
> > +            echo "$LOAD_CMD $memaddr ${prepend_path:+$prepend_path/}$relative_path" >> $UBOOT_SOURCE
> > +            add_size_from_file $filename
> > +        fi
> >      fi
> > -    add_size $filename
> >  }
> >  
> >  function check_file_type()
> > @@ -670,8 +756,13 @@ function check_file_type()
> >  
> >      if [ ! -f $filename ]
> >      then
> > -        echo "File $filename doesn't exist, exiting";
> > -        cleanup_and_return_err
> > +        if test "$CALC"
> > +        then
> > +            return
> > +        else
> > +            echo "File $filename doesn't exist, exiting";
> > +            cleanup_and_return_err
> > +        fi
> >      fi
> >  
> >      # if file doesn't know what it is, it outputs data, so include that
> > @@ -705,8 +796,13 @@ function check_compressed_file_type()
> >  
> >      if [ ! -f $filename ]
> >      then
> > -        echo "File $filename doesn't exist, exiting";
> > -        cleanup_and_return_err
> > +        if test "$CALC"
> > +        then
> > +            return
> > +        else
> > +            echo "File $filename doesn't exist, exiting";
> > +            cleanup_and_return_err
> > +        fi
> >      fi
> >  
> >      file_type=$( file -L $filename )
> > @@ -872,6 +968,12 @@ function linux_config()
> >  generate_uboot_images()
> >  {
> >      local arch=$(file -L $XEN | grep -E 'ARM64|Aarch64')
> > +    
> > +    if test "$CALC"
> > +    then
> > +        echo "bootm is not compatible with -s"
> > +        cleanup_and_return_err
> > +    fi
> >  
> >      if test "$arch"
> >      then
> > @@ -997,7 +1099,11 @@ bitstream_load_and_config()
> >          if test "$UBOOT_SOURCE"
> >          then
> >              # we assume the FPGA device is 0 here
> > -            echo "fpga load 0 $bitstream_addr $bitstream_size" >> "$UBOOT_SOURCE"
> > +            if test "$CALC"; then
> > +                echo "fpga load 0 \${fpga_bitstream_addr} \${fpga_bitstream_size}" >> "$UBOOT_SOURCE"
> > +            else
> > +                echo "fpga load 0 $bitstream_addr $bitstream_size" >> "$UBOOT_SOURCE"
> > +            fi
> >          fi
> >      fi
> >  }
> > @@ -1271,7 +1377,7 @@ function print_help
> >  {
> >      script=`basename "$0"`
> >      echo "usage:"
> > -    echo "	$script -c CONFIG_FILE -d DIRECTORY [-t LOAD_CMD] [-o FILE] [-k KEY_DIR/HINT [-u U-BOOT_DTB]] [-e] [-f] [-p PREPEND_PATH]"
> > +    echo "	$script -c CONFIG_FILE -d DIRECTORY [-t LOAD_CMD] [-o FILE] [-k KEY_DIR/HINT [-u U-BOOT_DTB]] [-e] [-f] [-p PREPEND_PATH] [-s]"
> >      echo "	$script -h"
> >      echo "where:"
> >      echo "	CONFIG_FILE - configuration file"
> > @@ -1288,6 +1394,7 @@ function print_help
> >      echo "	U-BOOT_DTB - u-boot control dtb so that the public key gets added to it"
> >      echo "	-f - enable generating a FIT image"
> >      echo "	PREPEND_PATH - path to be appended before file names to match deploy location within rootfs"
> > +    echo "	-s - enable dynamic loading of binaries by storing their addresses and sizes u-boot env variables"
> >      echo "	-h - prints out the help message and exits "
> >      echo "Defaults:"
> >      echo "	CONFIG_FILE=$cfg_file, UBOOT_TYPE=\"LOAD_CMD\" env var, DIRECTORY=$uboot_dir"
> > @@ -1295,7 +1402,7 @@ function print_help
> >      echo "	$script -c ../config -d ./build42 -t \"scsi load 1:1\""
> >  }
> >  
> > -while getopts ":c:t:d:ho:k:u:fp:" opt; do
> > +while getopts ":c:t:d:ho:k:u:fp:s" opt; do
> >      case ${opt} in
> >      t )
> >          case $OPTARG in
> > @@ -1340,6 +1447,9 @@ while getopts ":c:t:d:ho:k:u:fp:" opt; do
> >      p )
> >          prepend_path="$OPTARG"
> >          ;;
> > +    s )
> > +        CALC=y
> > +        ;;
> >      h )
> >          print_help
> >          exit 0
> > @@ -1533,6 +1643,7 @@ uboot_addr=$memaddr
> >  # 2MB are enough for a uboot script
> >  memaddr=$(( $memaddr + $offset ))
> >  memaddr=`printf "0x%X\n" $memaddr`
> > +echo "setenv memaddr $memaddr" >> $UBOOT_SOURCE
> Why is it here unconditionally?

Because it is harmless but you are right that it could be conditional. I
can make the change.


> >  
> >  fill_reserved_spaces_from_dtb
> >  
> > @@ -1583,7 +1694,11 @@ fi
> >  
> >  if [ "$BOOT_CMD" != "none" ]
> >  then
> > -    echo "$BOOT_CMD $kernel_addr $([ "$BOOT_CMD" = "bootefi" ] || echo '-') $device_tree_addr" >> $UBOOT_SOURCE
> > +    if test "$CALC"; then
> > +        echo "$BOOT_CMD \${host_kernel_addr} $([ "$BOOT_CMD" = "bootefi" ] || echo '-') \${host_fdt_addr}" >> $UBOOT_SOURCE
> > +    else
> > +        echo "$BOOT_CMD $kernel_addr $([ "$BOOT_CMD" = "bootefi" ] || echo '-') $device_tree_addr" >> $UBOOT_SOURCE
> > +    fi
> >  else
> >      # skip boot command but store load addresses to be used later
> >      echo "setenv host_kernel_addr $kernel_addr" >> $UBOOT_SOURCE
> 
> ~Michal
> 


From xen-devel-bounces@lists.xenproject.org Fri Apr 25 19:40:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 19:40:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.968527.1358076 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8Oul-0005Av-Jf; Fri, 25 Apr 2025 19:40:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 968527.1358076; Fri, 25 Apr 2025 19:40:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8Oul-0005Ao-H2; Fri, 25 Apr 2025 19:40:47 +0000
Received: by outflank-mailman (input) for mailman id 968527;
 Fri, 25 Apr 2025 19:40:46 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=kyFG=XL=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u8Ouk-0005Ai-Cu
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 19:40:46 +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 2d3dc0ec-220d-11f0-9eb3-5ba50f476ded;
 Fri, 25 Apr 2025 21:40:44 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id A23945C635A;
 Fri, 25 Apr 2025 19:38:25 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id B218EC4CEE9;
 Fri, 25 Apr 2025 19:40: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: 2d3dc0ec-220d-11f0-9eb3-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1745610042;
	bh=nK6PolRFB1Uz2Hr3s6XMTXKZ+0EPphxk5zErBZZzxbg=;
	h=Date:From:To:cc:Subject:From;
	b=WWwW4bhVYSB6lEUUJJHarzDpp3HfB3ZO609LYaaSFFMDecAoiP5uNmDXk6h9vyYC5
	 Z7bmeDoZ/6otN7iMQIWlfvPO8lDGlBLxn+hMqiKj8Ine9H4q+SlUgXaW2QRJdt4lP+
	 YnpbvzUj2JTZymuidrzK+cIqihnnmxS11zBFKgqO8qXvI7qqEZoxyGsURDWYwmJDxS
	 5oJRgQcUdv1DbZBAIfgzWGOgjclrfi6EKklUaF/1vx/qF9iZxx+jGxCs7rpxuWlF/k
	 jCYMNmi0Skh3eqV8o6ghHf9FLLtl005w4OYHCDjchrlb6HHvnUXULgWwV8RGcSV23B
	 0IGITSw9ii+1Q==
Date: Fri, 25 Apr 2025 12:40:40 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: xen-devel@lists.xenproject.org
cc: andrei.cherechesu@nxp.com, sstabellini@kernel.org, michal.orzel@amd.com, 
    jason.andryuk@amd.com
Subject: [PATCH v6] uboot-script-gen: Dynamically compute addr and size when
 loading binaries
Message-ID: <alpine.DEB.2.22.394.2504251239380.785180@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

From: Andrei Cherechesu <andrei.cherechesu@oss.nxp.com>

Normally, the Imagebuilder would precompute the sizes of the loaded
binaries and addresses where they are loaded before generating the
script, and the sizes and addresses that needed to be provided to
Xen via /chosen would be hardcoded in the boot script.

Added an option via "-s" parameter to avoid hardcoding any
address in the boot script, and dynamically compute the
loading addresses for binaries. The first loading address is based
on the MEMORY_START parameter and after loading each binary,
the loading address and the size of the binary are stored in
variables with corresponding names. Then, the loading address
for the next binary is computed and aligned to 0x200000.

If the "-s" parameter is not used, the normal flow is executed,
where the loading addresses and sizes for each binaries are
precomputed and hardcoded inside the script, but the loading
addresses and sizes for each binary are now also stored for eventual
later use.

Reserved memory regions are left TBD in the -s case.

Link: https://lists.xenproject.org/archives/html/xen-devel/2022-09/msg01862.html
Signed-off-by: Andrei Cherechesu <andrei.cherechesu@nxp.com>
Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
---
Changes in v6:
- make initial ${memaddr} setting depending on CALC

This patch adds quite a bit of complexity which is the reason why I
didn't originally commit it. Now that we are enabling ImageBuilder in
Yocto, it turns out this patch is required because Yocto invokes
ImageBuilder before all the binaries are ready and available.

Andrei, sorry for taking so long to realize why it is essential, but we
are getting there now.

The changes I made to the original patch are purely to make it simpler
to maintain.
---
 README.md                |   2 +
 scripts/uboot-script-gen | 180 ++++++++++++++++++++++++++++++++-------
 2 files changed, 151 insertions(+), 31 deletions(-)

diff --git a/README.md b/README.md
index f8039ec..28c9e6b 100644
--- a/README.md
+++ b/README.md
@@ -356,6 +356,8 @@ Where:\
    can only be used  in combination with the -k option.  This adds the
    public key into the dtb.  Then one can add this dtb back into the
    u-boot bin or elf.\
+-s addresses and sizes are calculated dynamically from U-Boot, hence
+   binaries don't need to be available at the time of invocation.\
 
 ### Signed FIT images
 
diff --git a/scripts/uboot-script-gen b/scripts/uboot-script-gen
index 638154a..9ec0e20 100755
--- a/scripts/uboot-script-gen
+++ b/scripts/uboot-script-gen
@@ -1,8 +1,11 @@
 #!/bin/bash
 
 offset=$((2*1024*1024))
+PADDING_MASK=`printf "0x%X\n" $(($offset - 1))`
+PADDING_MASK_INV=`printf "0x%X\n" $((~$PADDING_MASK))`
 filesize=0
 prog_req=(mkimage file fdtput mktemp awk od)
+CALC=""
 
 function cleanup_and_return_err()
 {
@@ -100,17 +103,42 @@ function dt_set()
     fi
 }
 
+function dt_set_calc()
+{
+    local path=$1
+    local var=$2
+    local name_var=$3
+ 
+    addr_var="$name_var"_addr
+    size_var="$name_var"_size
+
+    # Split data_addr_var into high/low
+    echo "setexpr addr_hi \${"$addr_var"} / 0x100000000" >> $UBOOT_SOURCE
+    echo "setexpr addr_lo \${"$addr_var"} \& 0xFFFFFFFF" >> $UBOOT_SOURCE
+    
+    # Split data_size_var into high/low
+    echo "setexpr size_hi \${"$size_var"} / 0x100000000" >> $UBOOT_SOURCE
+    echo "setexpr size_lo \${"$size_var"} \& 0xFFFFFFFF" >> $UBOOT_SOURCE
+    
+    echo "fdt set $path $var <0x\${addr_hi} 0x\${addr_lo} 0x\${size_hi} 0x\${size_lo}>" >> $UBOOT_SOURCE
+}
+
 function add_device_tree_kernel()
 {
     local path=$1
-    local addr=$2
-    local size=$3
-    local bootargs=$4
+    local name=$2
+    local addr=$3
+    local size=$4
+    local bootargs=$5
     local node_name="module@${addr#0x}"
 
     dt_mknode "$path" "$node_name"
     dt_set "$path/$node_name" "compatible" "str_a" "multiboot,kernel multiboot,module"
-    dt_set "$path/$node_name" "reg" "hex"  "$(split_addr_size $addr $size)"
+    if test "$CALC"; then
+        dt_set_calc "$path/$node_name" "reg" $name
+    else
+        dt_set "$path/$node_name" "reg" "hex"  "$(split_addr_size $addr $size)"
+    fi
     dt_set "$path/$node_name" "bootargs" "str" "$bootargs"
 }
 
@@ -118,26 +146,36 @@ function add_device_tree_kernel()
 function add_device_tree_ramdisk()
 {
     local path=$1
-    local addr=$2
-    local size=$3
+    local name=$2
+    local addr=$3
+    local size=$4
     local node_name="module@${addr#0x}"
 
     dt_mknode "$path"  "$node_name"
     dt_set "$path/$node_name" "compatible" "str_a" "multiboot,ramdisk multiboot,module"
-    dt_set "$path/$node_name" "reg" "hex"  "$(split_addr_size $addr $size)"
+    if test "$CALC"; then
+        dt_set_calc "$path/$node_name" "reg" $name
+    else
+        dt_set "$path/$node_name" "reg" "hex"  "$(split_addr_size $addr $size)"
+    fi
 }
 
 
 function add_device_tree_passthrough()
 {
     local path=$1
-    local addr=$2
-    local size=$3
+    local name=$2
+    local addr=$3
+    local size=$4
     local node_name="module@${addr#0x}"
 
     dt_mknode "$path"  "$node_name"
     dt_set "$path/$node_name" "compatible" "str_a" "multiboot,device-tree multiboot,module"
-    dt_set "$path/$node_name" "reg" "hex"  "$(split_addr_size $addr $size)"
+    if test "$CALC"; then
+        dt_set_calc "$path/$node_name" "reg" $name
+    else
+        dt_set "$path/$node_name" "reg" "hex"  "$(split_addr_size $addr $size)"
+    fi
 }
 
 function add_device_tree_mem()
@@ -358,7 +396,11 @@ function xen_device_tree_editing()
 
         dt_mknode "/chosen" "$node_name"
         dt_set "/chosen/$node_name" "compatible" "str_a" "xen,xsm-policy xen,multiboot-module multiboot,module"
-        dt_set "/chosen/$node_name" "reg" "hex" "$(split_addr_size $xen_policy_addr $xen_policy_size)"
+        if test "$CALC"; then
+            dt_set_calc "/chosen/$node_name" "reg" "xen_policy"
+        else
+            dt_set "/chosen/$node_name" "reg" "hex" "$(split_addr_size $xen_policy_addr $xen_policy_size)"
+        fi
     fi
 
     if test "$DOM0_KERNEL"
@@ -367,7 +409,11 @@ function xen_device_tree_editing()
 
         dt_mknode "/chosen" "$node_name"
         dt_set "/chosen/$node_name" "compatible" "str_a" "xen,linux-zimage xen,multiboot-module multiboot,module"
-        dt_set "/chosen/$node_name" "reg" "hex" "$(split_addr_size $dom0_kernel_addr $dom0_kernel_size)"
+        if test "$CALC"; then
+            dt_set_calc "/chosen/$node_name" "reg" "dom0_linux"
+        else
+            dt_set "/chosen/$node_name" "reg" "hex" "$(split_addr_size $dom0_kernel_addr $dom0_kernel_size)"
+        fi
         dt_set "/chosen" "xen,dom0-bootargs" "str" "$DOM0_CMD"
     fi
 
@@ -377,7 +423,11 @@ function xen_device_tree_editing()
 
         dt_mknode "/chosen" "$node_name"
         dt_set "/chosen/$node_name" "compatible" "str_a" "xen,linux-initrd xen,multiboot-module multiboot,module"
-        dt_set "/chosen/$node_name" "reg" "hex" "$(split_addr_size $ramdisk_addr $ramdisk_size)"
+        if test "$CALC"; then
+            dt_set_calc "/chosen/$node_name" "reg" "dom0_ramdisk"
+        else
+            dt_set "/chosen/$node_name" "reg" "hex" "$(split_addr_size $ramdisk_addr $ramdisk_size)"
+        fi
     fi
 
     i=0
@@ -464,14 +514,14 @@ function xen_device_tree_editing()
 
         xen_dt_domu_add_vcpu_nodes "/chosen/domU$i" $i ${DOMU_VCPUS[$i]}
 
-        add_device_tree_kernel "/chosen/domU$i" ${domU_kernel_addr[$i]} ${domU_kernel_size[$i]} "${DOMU_CMD[$i]}"
+        add_device_tree_kernel "/chosen/domU$i" "domU${i}_kernel" ${domU_kernel_addr[$i]} ${domU_kernel_size[$i]} "${DOMU_CMD[$i]}"
         if test "${domU_ramdisk_addr[$i]}"
         then
-            add_device_tree_ramdisk "/chosen/domU$i" ${domU_ramdisk_addr[$i]} ${domU_ramdisk_size[$i]}
+            add_device_tree_ramdisk "/chosen/domU$i" "domU${i}_ramdisk" ${domU_ramdisk_addr[$i]} ${domU_ramdisk_size[$i]}
         fi
         if test "${domU_passthrough_dtb_addr[$i]}"
         then
-            add_device_tree_passthrough "/chosen/domU$i" ${domU_passthrough_dtb_addr[$i]} ${domU_passthrough_dtb_size[$i]}
+            add_device_tree_passthrough "/chosen/domU$i" "domU${i}_fdt" ${domU_passthrough_dtb_addr[$i]} ${domU_passthrough_dtb_size[$i]}
         fi
         i=$(( $i + 1 ))
     done
@@ -504,7 +554,11 @@ function device_tree_editing()
 
     if test $UBOOT_SOURCE
     then
-        echo "fdt addr $device_tree_addr" >> $UBOOT_SOURCE
+        if test "$CALC"; then
+            echo "fdt addr \${host_fdt_addr}" >> $UBOOT_SOURCE
+        else
+            echo "fdt addr $device_tree_addr" >> $UBOOT_SOURCE
+        fi
         echo "fdt resize 1024" >> $UBOOT_SOURCE
 
         if test $NUM_DT_OVERLAY && test $NUM_DT_OVERLAY -gt 0
@@ -512,7 +566,11 @@ function device_tree_editing()
             i=0
             while test $i -lt $NUM_DT_OVERLAY
             do
-                echo "fdt apply ${dt_overlay_addr[$i]}" >> $UBOOT_SOURCE
+                if test "$CALC"; then
+                    echo "fdt apply \${host_fdto${i}_addr}" >> $UBOOT_SOURCE
+                else
+                    echo "fdt apply ${dt_overlay_addr[$i]}" >> $UBOOT_SOURCE
+                fi
                 i=$(( $i + 1 ))
             done
         fi
@@ -530,8 +588,12 @@ function fill_reserved_spaces_from_dtb()
 {
     if [ ! -f $DEVICE_TREE ]
     then
-        echo "File $DEVICE_TREE doesn't exist, exiting";
-        cleanup_and_return_err
+        if test "$CALC"; then
+            return
+        else
+            echo "File $DEVICE_TREE doesn't exist, exiting";
+            cleanup_and_return_err
+        fi
     fi
 
     # Check if reserved-memory node exists
@@ -613,7 +675,7 @@ function get_image_size()
     printf "%u" $effective_size
 }
 
-function add_size()
+function add_size_from_file()
 {
     local filename=$1
     local size=`stat -L --printf="%s" $filename`
@@ -645,6 +707,24 @@ function add_size()
     filesize=$size
 }
 
+function add_size_calculate()
+{
+    local fit_scr_name=$1
+
+    echo "setenv "$fit_scr_name"_addr \${memaddr}" >> $UBOOT_SOURCE
+    echo "setenv "$fit_scr_name"_size \${filesize}" >> $UBOOT_SOURCE
+    echo "setexpr memaddr \${memaddr} \+ \${filesize}" >> $UBOOT_SOURCE
+    echo "setexpr memaddr \${memaddr} \+ $PADDING_MASK" >> $UBOOT_SOURCE
+    echo "setexpr memaddr \${memaddr} \& $PADDING_MASK_INV" >> $UBOOT_SOURCE
+
+    # TODO: missing ${RESERVED_MEM_SPACES[@]} check
+
+    # The following are updated to avoid collisions in node names, but
+    # they are not actively used.
+    memaddr=$((memaddr + offset))
+    filesize=$offset
+}
+
 function load_file()
 {
     local filename=$1
@@ -657,10 +737,16 @@ function load_file()
     if test "$FIT"
     then
         echo "imxtract \$fit_addr $fit_scr_name $memaddr" >> $UBOOT_SOURCE
+        add_size_from_file $filename
     else
-        echo "$LOAD_CMD $memaddr ${prepend_path:+$prepend_path/}$relative_path" >> $UBOOT_SOURCE
+        if test "$CALC"; then
+            echo "$LOAD_CMD \${memaddr} ${prepend_path:+$prepend_path/}$relative_path" >> $UBOOT_SOURCE
+            add_size_calculate $fit_scr_name
+        else
+            echo "$LOAD_CMD $memaddr ${prepend_path:+$prepend_path/}$relative_path" >> $UBOOT_SOURCE
+            add_size_from_file $filename
+        fi
     fi
-    add_size $filename
 }
 
 function check_file_type()
@@ -670,8 +756,13 @@ function check_file_type()
 
     if [ ! -f $filename ]
     then
-        echo "File $filename doesn't exist, exiting";
-        cleanup_and_return_err
+        if test "$CALC"
+        then
+            return
+        else
+            echo "File $filename doesn't exist, exiting";
+            cleanup_and_return_err
+        fi
     fi
 
     # if file doesn't know what it is, it outputs data, so include that
@@ -705,8 +796,13 @@ function check_compressed_file_type()
 
     if [ ! -f $filename ]
     then
-        echo "File $filename doesn't exist, exiting";
-        cleanup_and_return_err
+        if test "$CALC"
+        then
+            return
+        else
+            echo "File $filename doesn't exist, exiting";
+            cleanup_and_return_err
+        fi
     fi
 
     file_type=$( file -L $filename )
@@ -872,6 +968,12 @@ function linux_config()
 generate_uboot_images()
 {
     local arch=$(file -L $XEN | grep -E 'ARM64|Aarch64')
+    
+    if test "$CALC"
+    then
+        echo "bootm is not compatible with -s"
+        cleanup_and_return_err
+    fi
 
     if test "$arch"
     then
@@ -997,7 +1099,11 @@ bitstream_load_and_config()
         if test "$UBOOT_SOURCE"
         then
             # we assume the FPGA device is 0 here
-            echo "fpga load 0 $bitstream_addr $bitstream_size" >> "$UBOOT_SOURCE"
+            if test "$CALC"; then
+                echo "fpga load 0 \${fpga_bitstream_addr} \${fpga_bitstream_size}" >> "$UBOOT_SOURCE"
+            else
+                echo "fpga load 0 $bitstream_addr $bitstream_size" >> "$UBOOT_SOURCE"
+            fi
         fi
     fi
 }
@@ -1271,7 +1377,7 @@ function print_help
 {
     script=`basename "$0"`
     echo "usage:"
-    echo "	$script -c CONFIG_FILE -d DIRECTORY [-t LOAD_CMD] [-o FILE] [-k KEY_DIR/HINT [-u U-BOOT_DTB]] [-e] [-f] [-p PREPEND_PATH]"
+    echo "	$script -c CONFIG_FILE -d DIRECTORY [-t LOAD_CMD] [-o FILE] [-k KEY_DIR/HINT [-u U-BOOT_DTB]] [-e] [-f] [-p PREPEND_PATH] [-s]"
     echo "	$script -h"
     echo "where:"
     echo "	CONFIG_FILE - configuration file"
@@ -1288,6 +1394,7 @@ function print_help
     echo "	U-BOOT_DTB - u-boot control dtb so that the public key gets added to it"
     echo "	-f - enable generating a FIT image"
     echo "	PREPEND_PATH - path to be appended before file names to match deploy location within rootfs"
+    echo "	-s - enable dynamic loading of binaries by storing their addresses and sizes u-boot env variables"
     echo "	-h - prints out the help message and exits "
     echo "Defaults:"
     echo "	CONFIG_FILE=$cfg_file, UBOOT_TYPE=\"LOAD_CMD\" env var, DIRECTORY=$uboot_dir"
@@ -1295,7 +1402,7 @@ function print_help
     echo "	$script -c ../config -d ./build42 -t \"scsi load 1:1\""
 }
 
-while getopts ":c:t:d:ho:k:u:fp:" opt; do
+while getopts ":c:t:d:ho:k:u:fp:s" opt; do
     case ${opt} in
     t )
         case $OPTARG in
@@ -1340,6 +1447,9 @@ while getopts ":c:t:d:ho:k:u:fp:" opt; do
     p )
         prepend_path="$OPTARG"
         ;;
+    s )
+        CALC=y
+        ;;
     h )
         print_help
         exit 0
@@ -1533,6 +1643,10 @@ uboot_addr=$memaddr
 # 2MB are enough for a uboot script
 memaddr=$(( $memaddr + $offset ))
 memaddr=`printf "0x%X\n" $memaddr`
+if test "$CALC"
+then
+    echo "setenv memaddr $memaddr" >> $UBOOT_SOURCE
+fi
 
 fill_reserved_spaces_from_dtb
 
@@ -1583,7 +1697,11 @@ fi
 
 if [ "$BOOT_CMD" != "none" ]
 then
-    echo "$BOOT_CMD $kernel_addr $([ "$BOOT_CMD" = "bootefi" ] || echo '-') $device_tree_addr" >> $UBOOT_SOURCE
+    if test "$CALC"; then
+        echo "$BOOT_CMD \${host_kernel_addr} $([ "$BOOT_CMD" = "bootefi" ] || echo '-') \${host_fdt_addr}" >> $UBOOT_SOURCE
+    else
+        echo "$BOOT_CMD $kernel_addr $([ "$BOOT_CMD" = "bootefi" ] || echo '-') $device_tree_addr" >> $UBOOT_SOURCE
+    fi
 else
     # skip boot command but store load addresses to be used later
     echo "setenv host_kernel_addr $kernel_addr" >> $UBOOT_SOURCE
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Fri Apr 25 20:13:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 20:13:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.968548.1358087 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8PQG-0002Ug-1z; Fri, 25 Apr 2025 20:13:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 968548.1358087; Fri, 25 Apr 2025 20:13: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 1u8PQF-0002UZ-UT; Fri, 25 Apr 2025 20:13:19 +0000
Received: by outflank-mailman (input) for mailman id 968548;
 Fri, 25 Apr 2025 20:13: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=tq29=XL=zytor.com=hpa@srs-se1.protection.inumbo.net>)
 id 1u8PQE-0002UQ-1B
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 20:13:18 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b72a13ea-2211-11f0-9ffb-bf95429c2676;
 Fri, 25 Apr 2025 22:13:15 +0200 (CEST)
Received: from [127.0.0.1] ([76.133.66.138]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53PKCYWU3252234
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NO);
 Fri, 25 Apr 2025 13:12:35 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b72a13ea-2211-11f0-9ffb-bf95429c2676
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53PKCYWU3252234
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745611957;
	bh=Pgn/TZ1ujuuwbnzguLrmQLLDyPec5k7g882M+f0Gsi8=;
	h=Date:From:To:CC:Subject:In-Reply-To:References:From;
	b=LoudM2O5Ggb8UKAE6BloQQgcPc3DDE93Uie4tiM2kEIfkYTDiUipcf8Neu/KvASRD
	 bE9VD4R7oFqzmvtHTCFXcREprEax191bGlgx7zIbx5omdo51jLm5RkfhQX4yDbIVRa
	 GVL5VijALlpGtEZskIkKxZJvEBt7FnMylbJIzjd/5nwjnzxaNo83Yy1fNK7XF6PF8t
	 DnRu+iOKDqlUdSjj+DZ7GCvEpBZIZH9XdMoGw1VbkegsrdCwgEQlt1Pl2oarHuisPj
	 gl4+pko/7dDkS+MuVeY76Vou/tfvTznub+Ylyb0SFF25MRCp2uGdpU5pdOUWL4jNE7
	 1qvVj2z6FqDTA==
Date: Fri, 25 Apr 2025 13:12:33 -0700
From: "H. Peter Anvin" <hpa@zytor.com>
To: =?ISO-8859-1?Q?J=FCrgen_Gro=DF?= <jgross@suse.com>,
        Peter Zijlstra <peterz@infradead.org>
CC: Xin Li <xin@zytor.com>, linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
        linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
        netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org,
        tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, acme@kernel.org,
        andrew.cooper3@citrix.com, namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com
Subject: =?US-ASCII?Q?Re=3A_=5BRFC_PATCH_v2_21/34=5D_x86/msr=3A_Utiliz?=
 =?US-ASCII?Q?e_the_alternatives_mechanism_to_write_MSR?=
User-Agent: K-9 Mail for Android
In-Reply-To: <35979102-2eb2-4566-b32a-f2b02ded8ae6@suse.com>
References: <20250422082216.1954310-1-xin@zytor.com> <20250422082216.1954310-22-xin@zytor.com> <b2624e84-6fab-44a3-affc-ce0847cd3da4@suse.com> <f7198308-e8f8-4cc5-b884-24bc5f408a2a@zytor.com> <37c88ea3-dd24-4607-9ee1-0f19025aaef3@suse.com> <20250425123317.GB22125@noisy.programming.kicks-ass.net> <35979102-2eb2-4566-b32a-f2b02ded8ae6@suse.com>
Message-ID: <D4ADDBA5-D9B8-4DD5-8D83-8CD482700E71@zytor.com>
MIME-Version: 1.0
Content-Type: text/plain;
 charset=utf-8
Content-Transfer-Encoding: quoted-printable

On April 25, 2025 5:51:27 AM PDT, "J=C3=BCrgen Gro=C3=9F" <jgross@suse=2Eco=
m> wrote:
>On 25=2E04=2E25 14:33, Peter Zijlstra wrote:
>> On Wed, Apr 23, 2025 at 06:05:19PM +0200, J=C3=BCrgen Gro=C3=9F wrote:
>>=20
>>>> It's not a major change, but when it is patched to use the immediate
>>>> form MSR write instruction, it's straightforwardly streamlined=2E
>>>=20
>>> It should be rather easy to switch the current wrmsr/rdmsr paravirt pa=
tching
>>> locations to use the rdmsr/wrmsr instructions instead of doing a call =
to
>>> native_*msr()=2E
>>=20
>> Right, just make the Xen functions asm stubs that expect the instructio=
n
>> registers instead of C-abi and ALT_NOT_XEN the thing=2E
>>=20
>> Shouldn't be hard at all=2E
>
>Correct=2E And for the new immediate form we can use ALTERNATIVE_3()=2E
>
>
>Juergen

Yes; in the ultimate case there are *four* alternatives, but the concept i=
s the same and again we have it implemented already=2E


From xen-devel-bounces@lists.xenproject.org Fri Apr 25 20:16:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 20:16:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.968560.1358098 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8PSp-00033i-EU; Fri, 25 Apr 2025 20:15:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 968560.1358098; Fri, 25 Apr 2025 20:15: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 1u8PSp-00033b-AS; Fri, 25 Apr 2025 20:15:59 +0000
Received: by outflank-mailman (input) for mailman id 968560;
 Fri, 25 Apr 2025 20:15:57 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=tq29=XL=zytor.com=hpa@srs-se1.protection.inumbo.net>)
 id 1u8PSn-00033V-Nu
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 20:15:57 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1762ef40-2212-11f0-9ffb-bf95429c2676;
 Fri, 25 Apr 2025 22:15:55 +0200 (CEST)
Received: from [127.0.0.1] ([76.133.66.138]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53PKFQDg3256787
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NO);
 Fri, 25 Apr 2025 13:15:27 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1762ef40-2212-11f0-9ffb-bf95429c2676
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53PKFQDg3256787
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745612128;
	bh=QJR+ymoSxhx0ygaS36CxYeriy9wPOBKoGiphuOc/xYA=;
	h=Date:From:To:CC:Subject:In-Reply-To:References:From;
	b=WlPgzDVgOvh/0/DFcOe5XvMF8cvfSpicLG3EPZT8AMttk1GaTl6jNj6ES6WfPTR68
	 /wWU89V8Qwj+O9E78AFFFUU6eJy1kkRMV6xfexWC7bAX3Bc0V7jqD9eNN0QRkhkkI5
	 EziKxByPLhsc++tIDRVYnZbSrWAnma9tJh9y/9AJvo/5s1sbgoJQmb9k55q41YazSd
	 hKfRYhop6s0UAF/DuvR4d/qrnx8GfOMSyYS2pYZjkvcz8Lok4x3GyYIB5frgJytZw+
	 2PFF5/JtlfLV8fXzKXntPUxJIcmIaKtaARWNiHF7P3QM2WfemqbJojqVOZWOt4eQs2
	 5y20v1j/VdOXQ==
Date: Fri, 25 Apr 2025 13:15:24 -0700
From: "H. Peter Anvin" <hpa@zytor.com>
To: Arnd Bergmann <arnd@arndb.de>, Arnd Bergmann <arnd@kernel.org>,
        Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>,
        Borislav Petkov <bp@alien8.de>,
        Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org
CC: Juergen Gross <jgross@suse.com>,
        Boris Ostrovsky <boris.ostrovsky@oracle.com>,
        Alexander Usyskin <alexander.usyskin@intel.com>,
        Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
        =?UTF-8?Q?Mateusz_Jo=C5=84czyk?= <mat.jonczyk@o2.pl>,
        Mike Rapoport <rppt@kernel.org>, Ard Biesheuvel <ardb@kernel.org>,
        Peter Zijlstra <peterz@infradead.org>, linux-kernel@vger.kernel.org,
        xen-devel@lists.xenproject.org
Subject: Re: [PATCH] [RFC] x86/cpu: rework instruction set selection
User-Agent: K-9 Mail for Android
In-Reply-To: <09e26f91-9a62-45c8-b94e-eddb307251f4@app.fastmail.com>
References: <20250425141740.734030-1-arnd@kernel.org> <7CEE8E85-D7B1-4066-AD4D-747CA4340F65@zytor.com> <09e26f91-9a62-45c8-b94e-eddb307251f4@app.fastmail.com>
Message-ID: <49675319-D30C-417C-9BE6-20D2AB8E259A@zytor.com>
MIME-Version: 1.0
Content-Type: text/plain;
 charset=utf-8
Content-Transfer-Encoding: quoted-printable

On April 25, 2025 9:13:31 AM PDT, Arnd Bergmann <arnd@arndb=2Ede> wrote:
>On Fri, Apr 25, 2025, at 17:34, H=2E Peter Anvin wrote:
>> On April 25, 2025 7:15:15 AM PDT, Arnd Bergmann <arnd@kernel=2Eorg> wro=
te:
>>
>> I really don't like testing an unrelated feature (CMOV for PAE);=20
>
>How about a new symbol with the opposite polarity, e=2Eg=2E CONFIG_CPU_58=
6?
>In that case, X86_HAVE_PAE and X86_CMOV could both depend on that
>not being set=2E
>
>I only picked the X86_CMOV symbol because it already exists in =2Econfig
>files, but that is not the important bit here=2E
>
>> furthermore, at least some old hypervisors were known to have
>> broken PAE=2E
>
>I'm not following=2E What does that have to do with my patch?
>
>     Arnd

This seems overly complex to me=2E


From xen-devel-bounces@lists.xenproject.org Fri Apr 25 20:19:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 20:19:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.968572.1358106 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8PWQ-0003d1-Rq; Fri, 25 Apr 2025 20:19:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 968572.1358106; Fri, 25 Apr 2025 20:19: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 1u8PWQ-0003cu-Ot; Fri, 25 Apr 2025 20:19:42 +0000
Received: by outflank-mailman (input) for mailman id 968572;
 Fri, 25 Apr 2025 20:19: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=kyFG=XL=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u8PWP-0003co-Iz
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 20:19:41 +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 9bd10f93-2212-11f0-9ffb-bf95429c2676;
 Fri, 25 Apr 2025 22:19:37 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id B97395C6C4D;
 Fri, 25 Apr 2025 20:17:18 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 70769C4CEE4;
 Fri, 25 Apr 2025 20:19: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: 9bd10f93-2212-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1745612375;
	bh=p/Wzr8PhLp5Oa6tZk8NPVtMv4XXoLGKUGVq5bRFCBXk=;
	h=Date:From:To:cc:Subject:From;
	b=fdgDG6pgtoVGmldUUVvV4lTSitRC2Cx/1dIP9fzydEfG+cqbJ6u81Ry2kiASdy3N3
	 sEPVuU0DwdBhcN9a0RQYk0RoOXB84pss13mUsDyJrpXVymfGVXF9VZHHPwRLD4KYsp
	 +rR756t+u/wg0eU9FUPcJfFC2StAZ8bMTXxLOPcW9sksepvGkPd2vrL1m4eTuPo9j4
	 Mr82/Ia50l1FRfLdjarUyXD5sJ2k4KuMJ8TV0+44L70gARkK2/uS1lde2h0wHhGljj
	 EjC2XqwZd8DwBqGq/ZiBNwxIwcPCdOitOygnsJWUDF+k4VHsDwPfF/EYoAbvS+ak1f
	 y9OHq4CCWkVPA==
Date: Fri, 25 Apr 2025 13:19:33 -0700 (PDT)
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, Jan Beulich <jbeulich@suse.com>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    "Ragiadakou, Xenia" <Xenia.Ragiadakou@amd.com>, jason.andryuk@amd.com, 
    agarciav@amd.com
Subject: [PATCH] xen/x86: allow Dom0 PVH to call XENMEM_exchange
Message-ID: <alpine.DEB.2.22.394.2504251314050.785180@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

From: Xenia Ragiadakou <Xenia.Ragiadakou@amd.com>

Dom0 PVH might need XENMEM_exchange when passing contiguous memory
addresses to firmware or co-processors not behind an IOMMU.

XENMEM_exchange was blocked for HVM/PVH DomUs, and accidentally it
impacted Dom0 PVH as well.

Permit Dom0 PVH to call XENMEM_exchange while leaving it blocked for
HVM/PVH DomUs.

Signed-off-by: Xenia Ragiadakou <Xenia.Ragiadakou@amd.com>
Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>

diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
index 1cf2365167..e995944333 100644
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -4401,7 +4401,7 @@ int steal_page(
     const struct domain *owner;
     int rc;
 
-    if ( paging_mode_external(d) )
+    if ( paging_mode_external(d) && !is_hardware_domain(d) )
         return -EOPNOTSUPP;
 
     /* Grab a reference to make sure the page doesn't change under our feet */
diff --git a/xen/common/memory.c b/xen/common/memory.c
index 8ca4e1a842..796eec081b 100644
--- a/xen/common/memory.c
+++ b/xen/common/memory.c
@@ -794,7 +794,7 @@ static long memory_exchange(XEN_GUEST_HANDLE_PARAM(xen_memory_exchange_t) arg)
             rc = guest_physmap_add_page(d, _gfn(gpfn), mfn,
                                         exch.out.extent_order) ?: rc;
 
-            if ( !paging_mode_translate(d) &&
+            if ( (!paging_mode_translate(d) || is_hardware_domain(d)) &&
                  __copy_mfn_to_guest_offset(exch.out.extent_start,
                                             (i << out_chunk_order) + j,
                                             mfn) )


From xen-devel-bounces@lists.xenproject.org Fri Apr 25 21:02:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 21:02:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.968593.1358117 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8QBv-0003Qb-20; Fri, 25 Apr 2025 21:02:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 968593.1358117; Fri, 25 Apr 2025 21:02: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 1u8QBu-0003QU-VF; Fri, 25 Apr 2025 21:02:34 +0000
Received: by outflank-mailman (input) for mailman id 968593;
 Fri, 25 Apr 2025 21:02: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=dzCY=XL=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1u8QBt-0003QO-Pp
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 21:02:33 +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 9a0a86f6-2218-11f0-9eb3-5ba50f476ded;
 Fri, 25 Apr 2025 23:02:31 +0200 (CEST)
Received: from SN6PR08CA0001.namprd08.prod.outlook.com (2603:10b6:805:66::14)
 by DM3PR12MB9350.namprd12.prod.outlook.com (2603:10b6:8:1ae::15) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.28; Fri, 25 Apr
 2025 21:02:26 +0000
Received: from SA2PEPF00001505.namprd04.prod.outlook.com
 (2603:10b6:805:66:cafe::79) by SN6PR08CA0001.outlook.office365.com
 (2603:10b6:805:66::14) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.35 via Frontend Transport; Fri,
 25 Apr 2025 21:02:26 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SA2PEPF00001505.mail.protection.outlook.com (10.167.242.37) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Fri, 25 Apr 2025 21:02:26 +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, 25 Apr
 2025 16:02:26 -0500
Received: from [192.168.223.33] (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, 25 Apr 2025 16:02:25 -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: 9a0a86f6-2218-11f0-9eb3-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=EBTjknYY0lLhc1gBswX1LKuNG0XEjcqqMQXaqoxx/TSPkGhjp10upV4NcmImp2sMJtmL+RUa8zYRi0j4anBSn/wLESU4sT7WriF/FNvQZbzjNshUs+4ektDOdgjzoOYg39FwbF7AVukB5FRY2Sv0gANh/rGj3CElCw2SNhD2vTTkcXWJFGhvdJg2xDcnijPmAnKlqSPQsNBemOBv5Jhxybp2pyk6vr77YgCePaQV0gTiFZ3bfWK010bfO6iKNM9SRjgbzymFoHJlkMQaMKC5iXPQQuNow5CpCdanB2EeV3Drglvv5LJe+c1j63DcHLaLfQ+doOVPUAyHga0uBwhvOA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=LGTN0utfgBIv/9NwYwZcICS+oitqUJmGyjrqMmu3XxM=;
 b=FLT3rFxPLXGLhDNvFuydzmna9UZsK1caEg5aHYQtRYLAG2dLZ4TSkGZm1Ek3Vnu6e7/uVwXuTjJuDgJaoSy/so2ZouPuBs6mVFS4+Be/e7VQtYxjYyP9KL5i8udzae+XhqzAmtbPeTE8u63rOUxVa0uGTSy0Gx5eGASRTWoH/iu3yW45xdW8NUrxojAUBQgHMCSRcPiBw5hcgvd5yrXha86pT/TAIyODJDAVSKuZRQKvD362SjMlwmhzzj7m5y/v30keU6ezlvWMnpks+7EMiiUeiHHFpm19sUW2fillZOw4PbyV1YBcqh+IXVRwSilQTbPWFxwkklgIaii+GxX2bA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=ariadne.space 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=LGTN0utfgBIv/9NwYwZcICS+oitqUJmGyjrqMmu3XxM=;
 b=0t7bavylRmRFjAQPmOFCks8K5RJ+gc0B4b3ePXwjvwPUZYdI4PK+36mMA9e/EJRD1ZPdmteQzEb+JL3yMBf7sZYURSq+Qqe5S9dujTDdpmxAlXk3Y3NcnbtsywhUdqh8IjY6PLmWpkO168+qvw4TZ0a9Rfc+FqxEYPpV+l9L9w8=
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: <9f7ffd79-7439-40f3-9349-4f9f4d2ee1dd@amd.com>
Date: Fri, 25 Apr 2025 17:02:25 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/hyperv: use dynamically allocated page for hypercalls
To: Ariadne Conill <ariadne@ariadne.space>, <xen-devel@lists.xenproject.org>
CC: Paul Durrant <paul@xen.org>, Jan Beulich <jbeulich@suse.com>, "Andrew
 Cooper" <andrew.cooper3@citrix.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>, Alejandro Vallejo <agarciav@amd.com>, "Alexander M .
 Merritt" <alexander@edera.dev>
References: <20250425165148.60408-1-ariadne@ariadne.space>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <20250425165148.60408-1-ariadne@ariadne.space>
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: SA2PEPF00001505:EE_|DM3PR12MB9350:EE_
X-MS-Office365-Filtering-Correlation-Id: 8353f28c-2cdb-4025-bd30-08dd843c7bdc
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|82310400026|36860700013|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?eDExdzBsYXlVS1MwYXJGeXZQUVliM2cxZ3Q3QmpPcHd6SzNONUVDUzBpRUZq?=
 =?utf-8?B?TnNTZmhnR3FaRGFRdXdsV2ZBQmtEZ0lZZE5VU1RpbkFqNmtIRW5aUVU4NTVv?=
 =?utf-8?B?dis2WEI2NlNtbHRnS0JjMWlHN3g4bStZOS83K0pwVVRlcDlMNmJQcHd5djB4?=
 =?utf-8?B?bkZSK2lZREk0WlVNMjdyRWNLeEJqRnVIOEhzeE9rVFhVajN4VUtMZ2REZjR2?=
 =?utf-8?B?MUptNHk3eVp0VCs0bjY5R3Z0ZzBqb3phRkxWeHp6SUw2VVRhZUN0L2VRNi9J?=
 =?utf-8?B?eXQ2UzROOEZMRCtpWk9mVFV6WDcyNTBpVEQ3WEowaDBrZXB1L1JSaFhmL2Ry?=
 =?utf-8?B?RU5OWXh4RzYyTzZVdHV2TEhVdlB6WVFhWUVOaUVFU2xpYmV1UjFWdm5uRTFG?=
 =?utf-8?B?eDk1eG5mWkJHa09XL3BDT2J1bC94MGRabWV6dFlraGlCMUd6RnV0WWNlRWNl?=
 =?utf-8?B?bnF0cFF1M3hmNDBEak04MVROVDlkREdrL1F4dmFwTTB3dHl4a3ZyK2dpVzhQ?=
 =?utf-8?B?NVVhWFBJZWFMaWFYRWwzR0xKUDJVK01mQU1FU0VTZXJ6d2grVVZxZVhXL011?=
 =?utf-8?B?cG9YY1NtYkkrY1dYU0x1T25HWGptcldXWXJ3Wk15Ujh6cWlnQ0tqMjJRUVht?=
 =?utf-8?B?aVM3QXpjTjN1czF5UDJvNjJMdGptZDBvNzFVZ29RamZUMVl1dHlPRFVpQ2Fp?=
 =?utf-8?B?YnA1bE5jcFlHTHNDUWlyS1NjV3AwaHp6NE8wbndhdzVweSt3dDFIMEVTTkhm?=
 =?utf-8?B?a0R1TmpxY1Yrdk1ZR2t5RnEvSFBoQ1hSZUlaWWdVdDkrSWVzalZDUEwwYjRF?=
 =?utf-8?B?YTcvSm9DbVc5VVZqRWZUSjNkTHkxYzROWWZvRE8wWm5MRzI3Q2RyV0ZCb3dP?=
 =?utf-8?B?b2E3ZFBPM0xyRHB4OU0wdGVGUks5eC9rclJlSWhnclgvMnNqN1JETUlIUDJ4?=
 =?utf-8?B?V0hvL3pIZkoyanV4bVg5dmx1RFRzS2NhWE90dzRzVThnSmNieFNjVDlsSU1n?=
 =?utf-8?B?d3p2ZFV3V3BIbzNPWUkzMmNyZWFScTgzYkkrSDRNWEluZUdFSzZKQys0WUw5?=
 =?utf-8?B?YnA0MmYvQ2lidklrZDF6bjB3Q3hsM1RCQ0taSWYzemZkTjVnYXp5TDdjNVBO?=
 =?utf-8?B?QnZRYkI0ekxYNVIzZlFsT29qajc5SFV1SzZZNkpxU3FuUUp3SXBhK3pZSkow?=
 =?utf-8?B?UW5RR3FGMThaWlUvQVA2dVZIaUZEL1JGVzJOMitXU2Y0aEVaRkxYQ1ZQZzEr?=
 =?utf-8?B?WnJEbzVwKzJXQytzYXVEYlZxcWFoMFBueVd6NzlwUXl4M1RFNTZkNzd3RjBJ?=
 =?utf-8?B?QkdMUm1adGQ5ZHAvdHpib2dHUHRBaHh3Y2ZjT21vVHFoa0hJOTlkbCs1Wjk4?=
 =?utf-8?B?UXpCc2UydHQrem9wdVMwdVZHQXFCR2JOeTVZaGRIWmY0VE5aVTJRbHN2RDVq?=
 =?utf-8?B?QnluSFg4SHpQVUVPOVJVRTdaVUkzYU0xdjFnWS9xbFk3ZWJMbklNdU85OE4z?=
 =?utf-8?B?UDhGWmtHM1lEeXpSamU4a1d5NXNWY0ovVFBjQUlpWkR0MkhjL0hkL0JneGlD?=
 =?utf-8?B?Z3IzOEdwdUpXQkwyUm54UE9ESlpqNE8wcmx2QXUxREtLSnRPdWxwemczMlFa?=
 =?utf-8?B?SXlMTXJNQkxJQzZKWWlYQlpWbWhBekQyWGJLd0dWdzcxWjUzd0s5NWZYRjlq?=
 =?utf-8?B?V0lSd1JJSmtIcVhCaU0zazRncWVNb3BXVnJXK0dPVEt0VDhKd09nR00wY2Q5?=
 =?utf-8?B?QjZwVjBNMmNWcmVZTHRrMGRudlhxN003eDd2SUFobHdnU2UwYjNGMFRpTTBX?=
 =?utf-8?B?OHZPVjhhLzc3WTh5bmk1TGpQd1k5UDRsNXlyWGJMUW5tSjNrcVpsbmJIaStK?=
 =?utf-8?B?Ukx1eHVDQ2VNUUhqeWRUc0RlRkRTeGo4dEQ0MDF5c2t2bHJYREFvRjliVHhS?=
 =?utf-8?B?TmRKdzRwS0o5Vk15ams1aUZMa0sydEJHSXduT1k5dlVkbE1SR0VMd0l1S2Fi?=
 =?utf-8?B?cEd0eWNVUDFKTU03TTBRV3AybkswTkhDd1hWcnhIbWJvK1B0M2xTc253L2R5?=
 =?utf-8?Q?vOseSz?=
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)(82310400026)(36860700013)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Apr 2025 21:02:26.6821
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 8353f28c-2cdb-4025-bd30-08dd843c7bdc
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:
	SA2PEPF00001505.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM3PR12MB9350

On 2025-04-25 12:51, Ariadne Conill wrote:
> Previously Xen placed the hypercall page at the highest possible MFN,
> but this caused problems on systems where there is more than 36 bits
> of physical address space.
> 
> In general, it also seems unreliable to assume that the highest possible
> MFN is not already reserved for some other purpose.
> 
> Fixes: 620fc734f854 ("x86/hyperv: setup hypercall page")
> Cc: Alejandro Vallejo <agarciav@amd.com>
> Cc: Alexander M. Merritt <alexander@edera.dev>
> Signed-off-by: Ariadne Conill <ariadne@ariadne.space>
> ---
>   xen/arch/x86/guest/hyperv/hyperv.c            | 39 ++++++++++---------
>   xen/arch/x86/include/asm/fixmap.h             |  3 --
>   xen/arch/x86/include/asm/guest/hyperv-hcall.h | 12 +++---
>   xen/arch/x86/include/asm/guest/hyperv-tlfs.h  |  2 +
>   xen/arch/x86/include/asm/guest/hyperv.h       |  3 --
>   xen/arch/x86/xen.lds.S                        |  4 --
>   6 files changed, 28 insertions(+), 35 deletions(-)
> 
> diff --git a/xen/arch/x86/guest/hyperv/hyperv.c b/xen/arch/x86/guest/hyperv/hyperv.c
> index 6989af38f1..637b4bf335 100644
> --- a/xen/arch/x86/guest/hyperv/hyperv.c
> +++ b/xen/arch/x86/guest/hyperv/hyperv.c

> @@ -98,10 +97,22 @@ static void __init setup_hypercall_page(void)
>       rdmsrl(HV_X64_MSR_HYPERCALL, hypercall_msr.as_uint64);
>       if ( !hypercall_msr.enable )
>       {
> -        mfn = HV_HCALL_MFN;
> +        hv_hcall_page = alloc_xenheap_page();
> +        if ( !hv_hcall_page )
> +        {
> +            printk("Hyper-V: Failed to allocate hypercall trampoline page\n");

Minor, but maybe panic() here and avoid changing the return type?

> +            return -ENOMEM;
> +        }
> +
> +        printk("Hyper-V: Allocated hypercall page @ %p.\n", hv_hcall_page);
> +
> +        mfn = virt_to_mfn(hv_hcall_page);
>           hypercall_msr.enable = 1;
>           hypercall_msr.guest_physical_address = mfn;
>           wrmsrl(HV_X64_MSR_HYPERCALL, hypercall_msr.as_uint64);
> +
> +        start = (unsigned long) hv_hcall_page;
> +        modify_xen_mappings(start, start + PAGE_SIZE, PAGE_HYPERVISOR_RX);
>       }
>       else
>           mfn = hypercall_msr.guest_physical_address;

> diff --git a/xen/arch/x86/include/asm/guest/hyperv-hcall.h b/xen/arch/x86/include/asm/guest/hyperv-hcall.h
> index b76dbf9ccc..b73edca7c6 100644
> --- a/xen/arch/x86/include/asm/guest/hyperv-hcall.h
> +++ b/xen/arch/x86/include/asm/guest/hyperv-hcall.h
> @@ -20,13 +20,13 @@ static inline uint64_t hv_do_hypercall(uint64_t control, paddr_t input_addr,
>                                          paddr_t output_addr)
>   {
>       uint64_t status;
> -    register unsigned long r8 asm ( "r8" ) = output_addr;
>   
>       /* See TLFS for volatile registers */
> -    asm volatile ( "call hv_hcall_page"
> +    asm volatile ( "mov %[output_addr], %%r8\n"

Don't you need to list r8 as clobbered?  Or maybe just retain the r8 
handling above and below to avoid this mov.

> +                   "call *%[target_addr]"

It might be preferable to retain a direct call which can still be 
installed with __set_fixmap_x.  Otherwise, __set_fixmap_x can be removed

Generally looks good.

Thanks,
Jason

>                      : "=a" (status), "+c" (control),
>                        "+d" (input_addr) ASM_CALL_CONSTRAINT
> -                   : "r" (r8)
> +                   : [output_addr] "r" (output_addr), [target_addr] "r" (hv_hcall_page)
>                      : "memory" );
>   
>       return status;



From xen-devel-bounces@lists.xenproject.org Fri Apr 25 21:09:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 21:09:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.968605.1358128 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8QI6-00041k-Ms; Fri, 25 Apr 2025 21:08:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 968605.1358128; Fri, 25 Apr 2025 21:08: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 1u8QI6-00041d-IT; Fri, 25 Apr 2025 21:08:58 +0000
Received: by outflank-mailman (input) for mailman id 968605;
 Fri, 25 Apr 2025 21:08:58 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Y3Op=XL=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u8QI5-00041X-3f
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 21:08:58 +0000
Received: from mail-24417.protonmail.ch (mail-24417.protonmail.ch
 [109.224.244.17]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7e522755-2219-11f0-9ffb-bf95429c2676;
 Fri, 25 Apr 2025 23:08:54 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7e522755-2219-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1745615331; x=1745874531;
	bh=ljd39QNg9pV4Ew9T3CAqOyTIjU0M6H1dFaQSOJTzn48=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=ijrP1e+Jc41LgslXhWUksjKYvrl7j5kahF3rnHoyaKmmgSzZ00wZmYzbSaVv5BouQ
	 dKezcG3UqqPPCGgIorSLQ5tq/seDgZncgq31A/gd4iZE2Y37Qe8uoHXw0QtUeJzINM
	 476LOelHfl/4GSH+FvorcReV3RjQwxP+4ty6S0pfU3+av50od0aoaAM2fJyOw1HSuG
	 sh9w6Epua+ysOf0WJIk101u9Q8MWla0zIrGKMDtdHOzj4nmMhl2qt4VvIf3zNtB80p
	 xs6Vt4d42Rf0vr044PpYw9y5v4L9n6xiFvZY9nlsUabR1egN5eGkLYltsqthkDyILd
	 9IgaRukcxWfWA==
Date: Fri, 25 Apr 2025 21:08:46 +0000
To: Stefano Stabellini <sstabellini@kernel.org>
From: dmkhn@proton.me
Cc: xen-devel@lists.xenproject.org, andrei.cherechesu@nxp.com, michal.orzel@amd.com, jason.andryuk@amd.com
Subject: Re: [PATCH v6] uboot-script-gen: Dynamically compute addr and size when loading binaries
Message-ID: <aAv52lhC+IaGIkgk@starscream>
In-Reply-To: <alpine.DEB.2.22.394.2504251239380.785180@ubuntu-linux-20-04-desktop>
References: <alpine.DEB.2.22.394.2504251239380.785180@ubuntu-linux-20-04-desktop>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 194edb483e8a598a74eeb14cda4ddc98e2360216
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Fri, Apr 25, 2025 at 12:40:40PM -0700, Stefano Stabellini wrote:
> From: Andrei Cherechesu <andrei.cherechesu@oss.nxp.com>
>=20
> Normally, the Imagebuilder would precompute the sizes of the loaded
> binaries and addresses where they are loaded before generating the
> script, and the sizes and addresses that needed to be provided to
> Xen via /chosen would be hardcoded in the boot script.
>=20
> Added an option via "-s" parameter to avoid hardcoding any
> address in the boot script, and dynamically compute the
> loading addresses for binaries. The first loading address is based
> on the MEMORY_START parameter and after loading each binary,
> the loading address and the size of the binary are stored in
> variables with corresponding names. Then, the loading address
> for the next binary is computed and aligned to 0x200000.
>=20
> If the "-s" parameter is not used, the normal flow is executed,
> where the loading addresses and sizes for each binaries are
> precomputed and hardcoded inside the script, but the loading
> addresses and sizes for each binary are now also stored for eventual
> later use.
>=20
> Reserved memory regions are left TBD in the -s case.
>=20
> Link: https://lists.xenproject.org/archives/html/xen-devel/2022-09/msg018=
62.html
> Signed-off-by: Andrei Cherechesu <andrei.cherechesu@nxp.com>
> Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
> ---
> Changes in v6:
> - make initial ${memaddr} setting depending on CALC
>=20
> This patch adds quite a bit of complexity which is the reason why I
> didn't originally commit it. Now that we are enabling ImageBuilder in
> Yocto, it turns out this patch is required because Yocto invokes
> ImageBuilder before all the binaries are ready and available.
>=20
> Andrei, sorry for taking so long to realize why it is essential, but we
> are getting there now.
>=20
> The changes I made to the original patch are purely to make it simpler
> to maintain.
> ---
>  README.md                |   2 +
>  scripts/uboot-script-gen | 180 ++++++++++++++++++++++++++++++++-------
>  2 files changed, 151 insertions(+), 31 deletions(-)
>=20
> diff --git a/README.md b/README.md
> index f8039ec..28c9e6b 100644
> --- a/README.md
> +++ b/README.md
> @@ -356,6 +356,8 @@ Where:\
>     can only be used  in combination with the -k option.  This adds the
>     public key into the dtb.  Then one can add this dtb back into the
>     u-boot bin or elf.\
> +-s addresses and sizes are calculated dynamically from U-Boot, hence
> +   binaries don't need to be available at the time of invocation.\
>=20
>  ### Signed FIT images
>=20
> diff --git a/scripts/uboot-script-gen b/scripts/uboot-script-gen
> index 638154a..9ec0e20 100755
> --- a/scripts/uboot-script-gen
> +++ b/scripts/uboot-script-gen
> @@ -1,8 +1,11 @@
>  #!/bin/bash

Unrelated, but I think it is worth adding `set -e` and `set -o pipefail`
to the script.

>=20
>  offset=3D$((2*1024*1024))
> +PADDING_MASK=3D`printf "0x%X\n" $(($offset - 1))`
> +PADDING_MASK_INV=3D`printf "0x%X\n" $((~$PADDING_MASK))`

I would use $(...) form for command substitution instead of `...` for
readability, although the script uses both styles already.

>  filesize=3D0
>  prog_req=3D(mkimage file fdtput mktemp awk od)
> +CALC=3D""
>=20
>  function cleanup_and_return_err()
>  {
> @@ -100,17 +103,42 @@ function dt_set()
>      fi
>  }
>=20
> +function dt_set_calc()
> +{
> +    local path=3D$1
> +    local var=3D$2
> +    local name_var=3D$3
> +
> +    addr_var=3D"$name_var"_addr
> +    size_var=3D"$name_var"_size

       ^ I think these two variables should be `local` too.

> +
> +    # Split data_addr_var into high/low
> +    echo "setexpr addr_hi \${"$addr_var"} / 0x100000000" >> $UBOOT_SOURC=
E
> +    echo "setexpr addr_lo \${"$addr_var"} \& 0xFFFFFFFF" >> $UBOOT_SOURC=
E
> +
> +    # Split data_size_var into high/low
> +    echo "setexpr size_hi \${"$size_var"} / 0x100000000" >> $UBOOT_SOURC=
E
> +    echo "setexpr size_lo \${"$size_var"} \& 0xFFFFFFFF" >> $UBOOT_SOURC=
E
> +
> +    echo "fdt set $path $var <0x\${addr_hi} 0x\${addr_lo} 0x\${size_hi} =
0x\${size_lo}>" >> $UBOOT_SOURCE

I think using heredoc will simplify the code a bit, e.g.:

       cat >> $UBOOT_SOURCE <<EOF
# Split data_addr_var into high/low
setexpr addr_hi \${"$addr_var"} / 0x100000000
setexpr addr_lo \${"$addr_var"} \& 0xFFFFFFFF

# Split data_size_var into high/low
setexpr size_hi \${"$size_var"} / 0x100000000
setexpr size_lo \${"$size_var"} \& 0xFFFFFFFF

fdt set $path $var <0x\${addr_hi} 0x\${addr_lo} 0x\${size_hi} 0x\${size_lo}=
>
EOF

> +}
> +
>  function add_device_tree_kernel()
>  {
>      local path=3D$1
> -    local addr=3D$2
> -    local size=3D$3
> -    local bootargs=3D$4
> +    local name=3D$2
> +    local addr=3D$3
> +    local size=3D$4
> +    local bootargs=3D$5
>      local node_name=3D"module@${addr#0x}"
>=20
>      dt_mknode "$path" "$node_name"
>      dt_set "$path/$node_name" "compatible" "str_a" "multiboot,kernel mul=
tiboot,module"
> -    dt_set "$path/$node_name" "reg" "hex"  "$(split_addr_size $addr $siz=
e)"
> +    if test "$CALC"; then
> +        dt_set_calc "$path/$node_name" "reg" $name
> +    else
> +        dt_set "$path/$node_name" "reg" "hex"  "$(split_addr_size $addr =
$size)"
> +    fi
>      dt_set "$path/$node_name" "bootargs" "str" "$bootargs"
>  }
>=20
> @@ -118,26 +146,36 @@ function add_device_tree_kernel()
>  function add_device_tree_ramdisk()
>  {
>      local path=3D$1
> -    local addr=3D$2
> -    local size=3D$3
> +    local name=3D$2
> +    local addr=3D$3
> +    local size=3D$4
>      local node_name=3D"module@${addr#0x}"
>=20
>      dt_mknode "$path"  "$node_name"
>      dt_set "$path/$node_name" "compatible" "str_a" "multiboot,ramdisk mu=
ltiboot,module"
> -    dt_set "$path/$node_name" "reg" "hex"  "$(split_addr_size $addr $siz=
e)"
> +    if test "$CALC"; then
> +        dt_set_calc "$path/$node_name" "reg" $name
> +    else
> +        dt_set "$path/$node_name" "reg" "hex"  "$(split_addr_size $addr =
$size)"
> +    fi
>  }
>=20
>=20
>  function add_device_tree_passthrough()
>  {
>      local path=3D$1
> -    local addr=3D$2
> -    local size=3D$3
> +    local name=3D$2
> +    local addr=3D$3
> +    local size=3D$4
>      local node_name=3D"module@${addr#0x}"
>=20
>      dt_mknode "$path"  "$node_name"
>      dt_set "$path/$node_name" "compatible" "str_a" "multiboot,device-tre=
e multiboot,module"
> -    dt_set "$path/$node_name" "reg" "hex"  "$(split_addr_size $addr $siz=
e)"
> +    if test "$CALC"; then
> +        dt_set_calc "$path/$node_name" "reg" $name
> +    else
> +        dt_set "$path/$node_name" "reg" "hex"  "$(split_addr_size $addr =
$size)"
> +    fi
>  }
>=20
>  function add_device_tree_mem()
> @@ -358,7 +396,11 @@ function xen_device_tree_editing()
>=20
>          dt_mknode "/chosen" "$node_name"
>          dt_set "/chosen/$node_name" "compatible" "str_a" "xen,xsm-policy=
 xen,multiboot-module multiboot,module"
> -        dt_set "/chosen/$node_name" "reg" "hex" "$(split_addr_size $xen_=
policy_addr $xen_policy_size)"
> +        if test "$CALC"; then
> +            dt_set_calc "/chosen/$node_name" "reg" "xen_policy"
> +        else
> +            dt_set "/chosen/$node_name" "reg" "hex" "$(split_addr_size $=
xen_policy_addr $xen_policy_size)"
> +        fi
>      fi
>=20
>      if test "$DOM0_KERNEL"
> @@ -367,7 +409,11 @@ function xen_device_tree_editing()
>=20
>          dt_mknode "/chosen" "$node_name"
>          dt_set "/chosen/$node_name" "compatible" "str_a" "xen,linux-zima=
ge xen,multiboot-module multiboot,module"
> -        dt_set "/chosen/$node_name" "reg" "hex" "$(split_addr_size $dom0=
_kernel_addr $dom0_kernel_size)"
> +        if test "$CALC"; then
> +            dt_set_calc "/chosen/$node_name" "reg" "dom0_linux"
> +        else
> +            dt_set "/chosen/$node_name" "reg" "hex" "$(split_addr_size $=
dom0_kernel_addr $dom0_kernel_size)"
> +        fi
>          dt_set "/chosen" "xen,dom0-bootargs" "str" "$DOM0_CMD"
>      fi
>=20
> @@ -377,7 +423,11 @@ function xen_device_tree_editing()
>=20
>          dt_mknode "/chosen" "$node_name"
>          dt_set "/chosen/$node_name" "compatible" "str_a" "xen,linux-init=
rd xen,multiboot-module multiboot,module"
> -        dt_set "/chosen/$node_name" "reg" "hex" "$(split_addr_size $ramd=
isk_addr $ramdisk_size)"
> +        if test "$CALC"; then
> +            dt_set_calc "/chosen/$node_name" "reg" "dom0_ramdisk"
> +        else
> +            dt_set "/chosen/$node_name" "reg" "hex" "$(split_addr_size $=
ramdisk_addr $ramdisk_size)"
> +        fi
>      fi
>=20
>      i=3D0
> @@ -464,14 +514,14 @@ function xen_device_tree_editing()
>=20
>          xen_dt_domu_add_vcpu_nodes "/chosen/domU$i" $i ${DOMU_VCPUS[$i]}
>=20
> -        add_device_tree_kernel "/chosen/domU$i" ${domU_kernel_addr[$i]} =
${domU_kernel_size[$i]} "${DOMU_CMD[$i]}"
> +        add_device_tree_kernel "/chosen/domU$i" "domU${i}_kernel" ${domU=
_kernel_addr[$i]} ${domU_kernel_size[$i]} "${DOMU_CMD[$i]}"
>          if test "${domU_ramdisk_addr[$i]}"
>          then
> -            add_device_tree_ramdisk "/chosen/domU$i" ${domU_ramdisk_addr=
[$i]} ${domU_ramdisk_size[$i]}
> +            add_device_tree_ramdisk "/chosen/domU$i" "domU${i}_ramdisk" =
${domU_ramdisk_addr[$i]} ${domU_ramdisk_size[$i]}
>          fi
>          if test "${domU_passthrough_dtb_addr[$i]}"
>          then
> -            add_device_tree_passthrough "/chosen/domU$i" ${domU_passthro=
ugh_dtb_addr[$i]} ${domU_passthrough_dtb_size[$i]}
> +            add_device_tree_passthrough "/chosen/domU$i" "domU${i}_fdt" =
${domU_passthrough_dtb_addr[$i]} ${domU_passthrough_dtb_size[$i]}
>          fi
>          i=3D$(( $i + 1 ))
>      done
> @@ -504,7 +554,11 @@ function device_tree_editing()
>=20
>      if test $UBOOT_SOURCE
>      then
> -        echo "fdt addr $device_tree_addr" >> $UBOOT_SOURCE
> +        if test "$CALC"; then
> +            echo "fdt addr \${host_fdt_addr}" >> $UBOOT_SOURCE
> +        else
> +            echo "fdt addr $device_tree_addr" >> $UBOOT_SOURCE
> +        fi
>          echo "fdt resize 1024" >> $UBOOT_SOURCE
>=20
>          if test $NUM_DT_OVERLAY && test $NUM_DT_OVERLAY -gt 0
> @@ -512,7 +566,11 @@ function device_tree_editing()
>              i=3D0
>              while test $i -lt $NUM_DT_OVERLAY
>              do
> -                echo "fdt apply ${dt_overlay_addr[$i]}" >> $UBOOT_SOURCE
> +                if test "$CALC"; then
> +                    echo "fdt apply \${host_fdto${i}_addr}" >> $UBOOT_SO=
URCE
> +                else
> +                    echo "fdt apply ${dt_overlay_addr[$i]}" >> $UBOOT_SO=
URCE
> +                fi
>                  i=3D$(( $i + 1 ))
>              done
>          fi
> @@ -530,8 +588,12 @@ function fill_reserved_spaces_from_dtb()
>  {
>      if [ ! -f $DEVICE_TREE ]
>      then
> -        echo "File $DEVICE_TREE doesn't exist, exiting";
> -        cleanup_and_return_err
> +        if test "$CALC"; then
> +            return
> +        else
> +            echo "File $DEVICE_TREE doesn't exist, exiting";
> +            cleanup_and_return_err
> +        fi
>      fi
>=20
>      # Check if reserved-memory node exists
> @@ -613,7 +675,7 @@ function get_image_size()
>      printf "%u" $effective_size
>  }
>=20
> -function add_size()
> +function add_size_from_file()
>  {
>      local filename=3D$1
>      local size=3D`stat -L --printf=3D"%s" $filename`
> @@ -645,6 +707,24 @@ function add_size()
>      filesize=3D$size
>  }
>=20
> +function add_size_calculate()
> +{
> +    local fit_scr_name=3D$1
> +
> +    echo "setenv "$fit_scr_name"_addr \${memaddr}" >> $UBOOT_SOURCE
> +    echo "setenv "$fit_scr_name"_size \${filesize}" >> $UBOOT_SOURCE
> +    echo "setexpr memaddr \${memaddr} \+ \${filesize}" >> $UBOOT_SOURCE
> +    echo "setexpr memaddr \${memaddr} \+ $PADDING_MASK" >> $UBOOT_SOURCE
> +    echo "setexpr memaddr \${memaddr} \& $PADDING_MASK_INV" >> $UBOOT_SO=
URCE
> +
> +    # TODO: missing ${RESERVED_MEM_SPACES[@]} check
> +
> +    # The following are updated to avoid collisions in node names, but
> +    # they are not actively used.
> +    memaddr=3D$((memaddr + offset))
> +    filesize=3D$offset
> +}
> +
>  function load_file()
>  {
>      local filename=3D$1
> @@ -657,10 +737,16 @@ function load_file()
>      if test "$FIT"
>      then
>          echo "imxtract \$fit_addr $fit_scr_name $memaddr" >> $UBOOT_SOUR=
CE
> +        add_size_from_file $filename
>      else
> -        echo "$LOAD_CMD $memaddr ${prepend_path:+$prepend_path/}$relativ=
e_path" >> $UBOOT_SOURCE
> +        if test "$CALC"; then
> +            echo "$LOAD_CMD \${memaddr} ${prepend_path:+$prepend_path/}$=
relative_path" >> $UBOOT_SOURCE
> +            add_size_calculate $fit_scr_name
> +        else
> +            echo "$LOAD_CMD $memaddr ${prepend_path:+$prepend_path/}$rel=
ative_path" >> $UBOOT_SOURCE
> +            add_size_from_file $filename
> +        fi
>      fi
> -    add_size $filename
>  }
>=20
>  function check_file_type()
> @@ -670,8 +756,13 @@ function check_file_type()
>=20
>      if [ ! -f $filename ]
>      then
> -        echo "File $filename doesn't exist, exiting";
> -        cleanup_and_return_err
> +        if test "$CALC"
> +        then
> +            return
> +        else
> +            echo "File $filename doesn't exist, exiting";
> +            cleanup_and_return_err
> +        fi
>      fi
>=20
>      # if file doesn't know what it is, it outputs data, so include that
> @@ -705,8 +796,13 @@ function check_compressed_file_type()
>=20
>      if [ ! -f $filename ]
>      then
> -        echo "File $filename doesn't exist, exiting";
> -        cleanup_and_return_err
> +        if test "$CALC"
> +        then
> +            return
> +        else
> +            echo "File $filename doesn't exist, exiting";
> +            cleanup_and_return_err
> +        fi
>      fi
>=20
>      file_type=3D$( file -L $filename )
> @@ -872,6 +968,12 @@ function linux_config()
>  generate_uboot_images()
>  {
>      local arch=3D$(file -L $XEN | grep -E 'ARM64|Aarch64')
> +
> +    if test "$CALC"
> +    then
> +        echo "bootm is not compatible with -s"
> +        cleanup_and_return_err
> +    fi
>=20
>      if test "$arch"
>      then
> @@ -997,7 +1099,11 @@ bitstream_load_and_config()
>          if test "$UBOOT_SOURCE"
>          then
>              # we assume the FPGA device is 0 here
> -            echo "fpga load 0 $bitstream_addr $bitstream_size" >> "$UBOO=
T_SOURCE"
> +            if test "$CALC"; then
> +                echo "fpga load 0 \${fpga_bitstream_addr} \${fpga_bitstr=
eam_size}" >> "$UBOOT_SOURCE"
> +            else
> +                echo "fpga load 0 $bitstream_addr $bitstream_size" >> "$=
UBOOT_SOURCE"
> +            fi
>          fi
>      fi
>  }
> @@ -1271,7 +1377,7 @@ function print_help
>  {
>      script=3D`basename "$0"`
>      echo "usage:"
> -    echo "=09$script -c CONFIG_FILE -d DIRECTORY [-t LOAD_CMD] [-o FILE]=
 [-k KEY_DIR/HINT [-u U-BOOT_DTB]] [-e] [-f] [-p PREPEND_PATH]"
> +    echo "=09$script -c CONFIG_FILE -d DIRECTORY [-t LOAD_CMD] [-o FILE]=
 [-k KEY_DIR/HINT [-u U-BOOT_DTB]] [-e] [-f] [-p PREPEND_PATH] [-s]"
>      echo "=09$script -h"
>      echo "where:"
>      echo "=09CONFIG_FILE - configuration file"
> @@ -1288,6 +1394,7 @@ function print_help
>      echo "=09U-BOOT_DTB - u-boot control dtb so that the public key gets=
 added to it"
>      echo "=09-f - enable generating a FIT image"
>      echo "=09PREPEND_PATH - path to be appended before file names to mat=
ch deploy location within rootfs"
> +    echo "=09-s - enable dynamic loading of binaries by storing their ad=
dresses and sizes u-boot env variables"

I would update description to something like:
 =20
  let U-Boot calculate binary images load addresses/sizes dynamically

?

Also, I would make all options sorted alphabetically.

>      echo "=09-h - prints out the help message and exits "
>      echo "Defaults:"
>      echo "=09CONFIG_FILE=3D$cfg_file, UBOOT_TYPE=3D\"LOAD_CMD\" env var,=
 DIRECTORY=3D$uboot_dir"
> @@ -1295,7 +1402,7 @@ function print_help
>      echo "=09$script -c ../config -d ./build42 -t \"scsi load 1:1\""
>  }
>=20
> -while getopts ":c:t:d:ho:k:u:fp:" opt; do
> +while getopts ":c:t:d:ho:k:u:fp:s" opt; do
>      case ${opt} in
>      t )
>          case $OPTARG in
> @@ -1340,6 +1447,9 @@ while getopts ":c:t:d:ho:k:u:fp:" opt; do
>      p )
>          prepend_path=3D"$OPTARG"
>          ;;
> +    s )
> +        CALC=3Dy
> +        ;;
>      h )
>          print_help
>          exit 0
> @@ -1533,6 +1643,10 @@ uboot_addr=3D$memaddr
>  # 2MB are enough for a uboot script
>  memaddr=3D$(( $memaddr + $offset ))
>  memaddr=3D`printf "0x%X\n" $memaddr`
> +if test "$CALC"
> +then
> +    echo "setenv memaddr $memaddr" >> $UBOOT_SOURCE
> +fi
>=20
>  fill_reserved_spaces_from_dtb
>=20
> @@ -1583,7 +1697,11 @@ fi
>=20
>  if [ "$BOOT_CMD" !=3D "none" ]
>  then
> -    echo "$BOOT_CMD $kernel_addr $([ "$BOOT_CMD" =3D "bootefi" ] || echo=
 '-') $device_tree_addr" >> $UBOOT_SOURCE
> +    if test "$CALC"; then
> +        echo "$BOOT_CMD \${host_kernel_addr} $([ "$BOOT_CMD" =3D "bootef=
i" ] || echo '-') \${host_fdt_addr}" >> $UBOOT_SOURCE
> +    else
> +        echo "$BOOT_CMD $kernel_addr $([ "$BOOT_CMD" =3D "bootefi" ] || =
echo '-') $device_tree_addr" >> $UBOOT_SOURCE
> +    fi
>  else
>      # skip boot command but store load addresses to be used later
>      echo "setenv host_kernel_addr $kernel_addr" >> $UBOOT_SOURCE
> --
> 2.25.1
>=20
>=20



From xen-devel-bounces@lists.xenproject.org Fri Apr 25 22:03:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 22:03:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.968639.1358136 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8R96-0004dX-NM; Fri, 25 Apr 2025 22:03:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 968639.1358136; Fri, 25 Apr 2025 22:03: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 1u8R96-0004dQ-Kn; Fri, 25 Apr 2025 22:03:44 +0000
Received: by outflank-mailman (input) for mailman id 968639;
 Fri, 25 Apr 2025 22:03: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=FJEZ=XL=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1u8R95-0004dJ-IN
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 22:03:43 +0000
Received: from sender4-of-o50.zoho.com (sender4-of-o50.zoho.com
 [136.143.188.50]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 25105ea8-2221-11f0-9eb3-5ba50f476ded;
 Sat, 26 Apr 2025 00:03:41 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 1745618612368821.5806116792763;
 Fri, 25 Apr 2025 15:03:32 -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: 25105ea8-2221-11f0-9eb3-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; t=1745618616; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=evI6MKSjsVsutlEu79e6ibX7crQgoy/JjRoy8N1JXZQtOmnMgbuoToMLD35OGYQGd287UbXORmYaIkgPe73d8jc7HsDyDNoBmTzzUs7Uak78T43oQZk1susSPWEzVXYcVXuqbpc2tdXixs+Q8g985TzZa0lRziFpuL8Q4rWhuD8=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1745618616; 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=17fOna45Vf4cdsQbeSDglIkcphxduibXtzgvkgQo3tM=; 
	b=Dwe9C8dcTRaLrjKmIrUOdTUZC0Zk2pkc0NvKzIn3HMCFfNbZyZfi9G4jic/Gd/smdH/uo5jmHGaIcpuG/HlGZgJCPxx0irn/OAsdUQQxyuKFKjhbvHhPSS8K0RJNsrcFQM2FCZRljodzR1ofsg0Yc1y8KuvDYhOQPKI1D1aDZ8M=
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=1745618616;
	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=17fOna45Vf4cdsQbeSDglIkcphxduibXtzgvkgQo3tM=;
	b=gXH2YDhWb9r5dQjqfUFx2i5aq6E+wy4CqwLDVnk8/UvtsH1xMBWMRipIjWVUY0AQ
	ow71lkj9gWYSLDjzvjgo+CZ9oExgldqHWC00sqyzTViGmeqpKbqCbA11nApL74ywTkR
	TSIuUeM4lVSoi10ICNjzR0xInnQOEXzG57EWj2bU=
Message-ID: <c7e8090b-6a48-4f08-87fb-64877e89b417@apertussolutions.com>
Date: Fri, 25 Apr 2025 18:03:30 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC 03/38] x86/hyperlaunch: convert max vcpu determination to
 domain builder
Content-Language: en-US
To: Jason Andryuk <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org
Cc: stefano.stabellini@amd.com, agarciav@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: <20250419220820.4234-1-dpsmith@apertussolutions.com>
 <20250419220820.4234-4-dpsmith@apertussolutions.com>
 <b3069950-ac03-4603-866c-27c6166bfecf@amd.com>
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
Autocrypt: addr=dpsmith@apertussolutions.com; keydata=
 xsJuBFYrueARCACPWL3r2bCSI6TrkIE/aRzj4ksFYPzLkJbWLZGBRlv7HQLvs6i/K4y/b4fs
 JDq5eL4e9BdfdnZm/b+K+Gweyc0Px2poDWwKVTFFRgxKWq9R7McwNnvuZ4nyXJBVn7PTEn/Z
 G7D08iZg94ZsnUdeXfgYdJrqmdiWA6iX9u84ARHUtb0K4r5WpLUMcQ8PVmnv1vVrs/3Wy/Rb
 foxebZNWxgUiSx+d02e3Ad0aEIur1SYXXv71mqKwyi/40CBSHq2jk9eF6zmEhaoFi5+MMMgX
 X0i+fcBkvmT0N88W4yCtHhHQds+RDbTPLGm8NBVJb7R5zbJmuQX7ADBVuNYIU8hx3dF3AQCm
 601w0oZJ0jGOV1vXQgHqZYJGHg5wuImhzhZJCRESIwf+PJxik7TJOgBicko1hUVOxJBZxoe0
 x+/SO6tn+s8wKlR1Yxy8gYN9ZRqV2I83JsWZbBXMG1kLzV0SAfk/wq0PAppA1VzrQ3JqXg7T
 MZ3tFgxvxkYqUP11tO2vrgys+InkZAfjBVMjqXWHokyQPpihUaW0a8mr40w9Qui6DoJj7+Gg
 DtDWDZ7Zcn2hoyrypuht88rUuh1JuGYD434Q6qwQjUDlY+4lgrUxKdMD8R7JJWt38MNlTWvy
 rMVscvZUNc7gxcmnFUn41NPSKqzp4DDRbmf37Iz/fL7i01y7IGFTXaYaF3nEACyIUTr/xxi+
 MD1FVtEtJncZNkRn7WBcVFGKMAf+NEeaeQdGYQ6mGgk++i/vJZxkrC/a9ZXme7BhWRP485U5
 sXpFoGjdpMn4VlC7TFk2qsnJi3yF0pXCKVRy1ukEls8o+4PF2JiKrtkCrWCimB6jxGPIG3lk
 3SuKVS/din3RHz+7Sr1lXWFcGYDENmPd/jTwr1A1FiHrSj+u21hnJEHi8eTa9029F1KRfocp
 ig+k0zUEKmFPDabpanI323O5Tahsy7hwf2WOQwTDLvQ+eqQu40wbb6NocmCNFjtRhNZWGKJS
 b5GrGDGu/No5U6w73adighEuNcCSNBsLyUe48CE0uTO7eAL6Vd+2k28ezi6XY4Y0mgASJslb
 NwW54LzSSM0uRGFuaWVsIFAuIFNtaXRoIDxkcHNtaXRoQGFwZXJ0dXNzb2x1dGlvbnMuY29t
 PsJ6BBMRCAAiBQJWK7ngAhsjBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRBTc6WbYpR8
 KrQ9AP94+xjtFfJ8gj5c7PVx06Zv9rcmFUqQspZ5wSEkvxOuQQEAg6qEsPYegI7iByLVzNEg
 7B7fUG7pqWIfMqFwFghYhQzOwU0EViu54BAIAL6MXXNlrJ5tRUf+KMBtVz1LJQZRt/uxWrCb
 T06nZjnbp2UcceuYNbISOVHGXTzu38r55YzpkEA8eURQf+5hjtvlrOiHxvpD+Z6WcpV6rrMB
 kcAKWiZTQihW2HoGgVB3gwG9dCh+n0X5OzliAMiGK2a5iqnIZi3o0SeW6aME94bSkTkuj6/7
 OmH9KAzK8UnlhfkoMg3tXW8L6/5CGn2VyrjbB/rcrbIR4mCQ+yCUlocuOjFCJhBd10AG1IcX
 OXUa/ux+/OAV9S5mkr5Fh3kQxYCTcTRt8RY7+of9RGBk10txi94dXiU2SjPbassvagvu/hEi
 twNHms8rpkSJIeeq0/cAAwUH/jV3tXpaYubwcL2tkk5ggL9Do+/Yo2WPzXmbp8vDiJPCvSJW
 rz2NrYkd/RoX+42DGqjfu8Y04F9XehN1zZAFmCDUqBMa4tEJ7kOT1FKJTqzNVcgeKNBGcT7q
 27+wsqbAerM4A0X/F/ctjYcKwNtXck1Bmd/T8kiw2IgyeOC+cjyTOSwKJr2gCwZXGi5g+2V8
 NhJ8n72ISPnOh5KCMoAJXmCF+SYaJ6hIIFARmnuessCIGw4ylCRIU/TiXK94soilx5aCqb1z
 ke943EIUts9CmFAHt8cNPYOPRd20pPu4VFNBuT4fv9Ys0iv0XGCEP+sos7/pgJ3gV3pCOric
 p15jV4PCYQQYEQgACQUCViu54AIbDAAKCRBTc6WbYpR8Khu7AP9NJrBUn94C/3PeNbtQlEGZ
 NV46Mx5HF0P27lH3sFpNrwD/dVdZ5PCnHQYBZ287ZxVfVr4Zuxjo5yJbRjT93Hl0vMY=
In-Reply-To: <b3069950-ac03-4603-866c-27c6166bfecf@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

On 4/22/25 16:36, Jason Andryuk wrote:
> On 2025-04-19 18:07, Daniel P. Smith wrote:
>> The domain configuration may request more vcpus than are present in 
>> the system.
>> For dom0, the function dom0_max_vcpus() was used to clamp down to 
>> physically
>> available vcpus. Here we are introducing a generalized version,
>> dom_max_vcpus(), that takes a boot domain and sets the max vcpus based 
>> on the
>> lesser of the requested max and the available vcpus.
>>
>> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
>> ---
> 
>> diff --git a/xen/arch/x86/domain-builder/domain.c b/xen/arch/x86/ 
>> domain-builder/domain.c
>> new file mode 100644
>> index 000000000000..f2277b9e3cf3
>> --- /dev/null
>> +++ b/xen/arch/x86/domain-builder/domain.c
>> @@ -0,0 +1,38 @@
>> +/* SPDX-License-Identifier: GPL-2.0-only */
>> +/*
>> + * Copyright (C) 2024, Apertus Solutions, LLC
>> + */
>> +
>> +#include <xen/cpumask.h>
>> +#include <xen/domain.h>
>> +#include <xen/init.h>
>> +#include <xen/sched.h>
>> +
>> +#include <asm/bootinfo.h>
>> +
>> +unsigned int __init dom_max_vcpus(struct boot_domain *bd)
>> +{
>> +    unsigned int limit = bd->mode & BUILD_MODE_PARAVIRT ?
>> +                                    MAX_VIRT_CPUS : HVM_MAX_VCPUS;
>> +
>> +    if ( bd->capabilities & BUILD_CAPS_CONTROL )
> 
> I added xen/include/public/bootfdt.h with DOMAIN_CAPS_CONTROL and the 
> other capabilities to provide common values.
> 
>> +        limit = dom0_max_vcpus();
> 
> dom0_max_vcpus() applies Xen's dom0_max_vcpus command line option.  That 
> is desirable for a traditional dom0.  For a disaggregated, Hyperlaunch 
> system, I'm not sure it's appropriate.  Considering there can multiple 
> control domains, it's more questionable.
> 
> Might it be better to only apply Xen "dom0" command line options to non- 
> hyperlaunch dom0?  Or a domain with all of BUILD_CAPS_CONTROL/HARDWARE/ 
> XENSTORE?
> 
> I guess it could stay as-is, but it seems unusual.

The larger issue is that the cmdline params are going to need to be 
addressed. I see three approaches, first would be to only apply the 
params when there is a single domain with ctrl/hw/xs all set, or the 
second approach would be to change the params to support multiple domain 
statements. Though the second approach has the issue of the need to 
decide how to support the legacy params

v/r,
dps


From xen-devel-bounces@lists.xenproject.org Fri Apr 25 22:04:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 22:04:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.968649.1358147 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8R9o-00055r-VR; Fri, 25 Apr 2025 22:04:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 968649.1358147; Fri, 25 Apr 2025 22:04:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8R9o-00055k-Sk; Fri, 25 Apr 2025 22:04:28 +0000
Received: by outflank-mailman (input) for mailman id 968649;
 Fri, 25 Apr 2025 22: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=FJEZ=XL=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1u8R9n-0004uQ-WA
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 22:04:28 +0000
Received: from sender4-of-o50.zoho.com (sender4-of-o50.zoho.com
 [136.143.188.50]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3f0c1d0c-2221-11f0-9ffb-bf95429c2676;
 Sat, 26 Apr 2025 00:04:25 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 174561865645622.734428437619954;
 Fri, 25 Apr 2025 15:04: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: 3f0c1d0c-2221-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; t=1745618659; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=myvkN7Dcp4E4gqAspoa9r5dF4Bc4GzarusLj6oV4p2AJCfsyZWS3MQcWeONrpTjld+NrtzXf7g7P/cl3dc1GTKIstx7EF07LSEcmJRQJII4kLNPbzc4zrKmppAFiuzkjz247Es9042LU3wddGun8B5klEFSIHjHxUORL6aUVqLw=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1745618659; 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=DQuEqIMPvJwNj6ekWcI94f0W6Kksnl9ZxVg8n0zm3uE=; 
	b=BFLMIoO1iKWL0dZKZr46DbszI6xvovURKUb79kyGR94LQ7KDTHFLpix7/VoaAxpdkQZ2tqWsg4IZxPMpkq2Yv1nLni6Xr/23MQrxUawH5dJWETHu8jbEVVAa7L6yoUDin4gNmBbt/11Auv39l95YmF8/sLwfvcaoqb4Ndw1OG1c=
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=1745618659;
	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=DQuEqIMPvJwNj6ekWcI94f0W6Kksnl9ZxVg8n0zm3uE=;
	b=rPzFSFQ/D2GFi8tkI3FPW1kyLGGAba70/DpcoLougQGTGwBc+zZb5nWsgxrAweMg
	wfurc4kog6gW/UYjPYrEbgpkKQx2jvloQweUSFN2sB/WHCbJeBYNUiSADXMMV/2a5c0
	n+5fJnvge2g5Ab85lW6qZSY/UPKUaucARLE/HLaQ=
Message-ID: <9cad677f-cfcd-4eec-b824-01d281cb7076@apertussolutions.com>
Date: Fri, 25 Apr 2025 18:04:14 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC 04/38] x86/hyperlaunch: convert vcpu0 creation to domain
 builder
Content-Language: en-US
To: Alejandro Vallejo <agarciav@amd.com>, xen-devel@lists.xenproject.org
Cc: jason.andryuk@amd.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: <20250419220820.4234-1-dpsmith@apertussolutions.com>
 <20250419220820.4234-5-dpsmith@apertussolutions.com>
 <D9FTMDQ501TU.1H73IHNYGWKZH@amd.com>
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
Autocrypt: addr=dpsmith@apertussolutions.com; keydata=
 xsJuBFYrueARCACPWL3r2bCSI6TrkIE/aRzj4ksFYPzLkJbWLZGBRlv7HQLvs6i/K4y/b4fs
 JDq5eL4e9BdfdnZm/b+K+Gweyc0Px2poDWwKVTFFRgxKWq9R7McwNnvuZ4nyXJBVn7PTEn/Z
 G7D08iZg94ZsnUdeXfgYdJrqmdiWA6iX9u84ARHUtb0K4r5WpLUMcQ8PVmnv1vVrs/3Wy/Rb
 foxebZNWxgUiSx+d02e3Ad0aEIur1SYXXv71mqKwyi/40CBSHq2jk9eF6zmEhaoFi5+MMMgX
 X0i+fcBkvmT0N88W4yCtHhHQds+RDbTPLGm8NBVJb7R5zbJmuQX7ADBVuNYIU8hx3dF3AQCm
 601w0oZJ0jGOV1vXQgHqZYJGHg5wuImhzhZJCRESIwf+PJxik7TJOgBicko1hUVOxJBZxoe0
 x+/SO6tn+s8wKlR1Yxy8gYN9ZRqV2I83JsWZbBXMG1kLzV0SAfk/wq0PAppA1VzrQ3JqXg7T
 MZ3tFgxvxkYqUP11tO2vrgys+InkZAfjBVMjqXWHokyQPpihUaW0a8mr40w9Qui6DoJj7+Gg
 DtDWDZ7Zcn2hoyrypuht88rUuh1JuGYD434Q6qwQjUDlY+4lgrUxKdMD8R7JJWt38MNlTWvy
 rMVscvZUNc7gxcmnFUn41NPSKqzp4DDRbmf37Iz/fL7i01y7IGFTXaYaF3nEACyIUTr/xxi+
 MD1FVtEtJncZNkRn7WBcVFGKMAf+NEeaeQdGYQ6mGgk++i/vJZxkrC/a9ZXme7BhWRP485U5
 sXpFoGjdpMn4VlC7TFk2qsnJi3yF0pXCKVRy1ukEls8o+4PF2JiKrtkCrWCimB6jxGPIG3lk
 3SuKVS/din3RHz+7Sr1lXWFcGYDENmPd/jTwr1A1FiHrSj+u21hnJEHi8eTa9029F1KRfocp
 ig+k0zUEKmFPDabpanI323O5Tahsy7hwf2WOQwTDLvQ+eqQu40wbb6NocmCNFjtRhNZWGKJS
 b5GrGDGu/No5U6w73adighEuNcCSNBsLyUe48CE0uTO7eAL6Vd+2k28ezi6XY4Y0mgASJslb
 NwW54LzSSM0uRGFuaWVsIFAuIFNtaXRoIDxkcHNtaXRoQGFwZXJ0dXNzb2x1dGlvbnMuY29t
 PsJ6BBMRCAAiBQJWK7ngAhsjBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRBTc6WbYpR8
 KrQ9AP94+xjtFfJ8gj5c7PVx06Zv9rcmFUqQspZ5wSEkvxOuQQEAg6qEsPYegI7iByLVzNEg
 7B7fUG7pqWIfMqFwFghYhQzOwU0EViu54BAIAL6MXXNlrJ5tRUf+KMBtVz1LJQZRt/uxWrCb
 T06nZjnbp2UcceuYNbISOVHGXTzu38r55YzpkEA8eURQf+5hjtvlrOiHxvpD+Z6WcpV6rrMB
 kcAKWiZTQihW2HoGgVB3gwG9dCh+n0X5OzliAMiGK2a5iqnIZi3o0SeW6aME94bSkTkuj6/7
 OmH9KAzK8UnlhfkoMg3tXW8L6/5CGn2VyrjbB/rcrbIR4mCQ+yCUlocuOjFCJhBd10AG1IcX
 OXUa/ux+/OAV9S5mkr5Fh3kQxYCTcTRt8RY7+of9RGBk10txi94dXiU2SjPbassvagvu/hEi
 twNHms8rpkSJIeeq0/cAAwUH/jV3tXpaYubwcL2tkk5ggL9Do+/Yo2WPzXmbp8vDiJPCvSJW
 rz2NrYkd/RoX+42DGqjfu8Y04F9XehN1zZAFmCDUqBMa4tEJ7kOT1FKJTqzNVcgeKNBGcT7q
 27+wsqbAerM4A0X/F/ctjYcKwNtXck1Bmd/T8kiw2IgyeOC+cjyTOSwKJr2gCwZXGi5g+2V8
 NhJ8n72ISPnOh5KCMoAJXmCF+SYaJ6hIIFARmnuessCIGw4ylCRIU/TiXK94soilx5aCqb1z
 ke943EIUts9CmFAHt8cNPYOPRd20pPu4VFNBuT4fv9Ys0iv0XGCEP+sos7/pgJ3gV3pCOric
 p15jV4PCYQQYEQgACQUCViu54AIbDAAKCRBTc6WbYpR8Khu7AP9NJrBUn94C/3PeNbtQlEGZ
 NV46Mx5HF0P27lH3sFpNrwD/dVdZ5PCnHQYBZ287ZxVfVr4Zuxjo5yJbRjT93Hl0vMY=
In-Reply-To: <D9FTMDQ501TU.1H73IHNYGWKZH@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ZohoMailClient: External

On 4/25/25 11:22, Alejandro Vallejo wrote:
> On Sat Apr 19, 2025 at 11:07 PM BST, Daniel P. Smith wrote:
>> Convert alloc_dom0_vcpu0() to dom0_set_affinity(), making it only set up the
>> node affinity based on command line parameters passed. At the same time,
>> introduce alloc_dom_vcpu0() as the replacement for alloc_dom0_vcpu(). Then have
>> alloc_dom_vcpu0() call dom0_set_affinity() when the boot domain is the control
>> domain, otherwise set the affinity to auto.
>>
>> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
>> ---
>>   xen/arch/x86/dom0_build.c                 |  4 +---
>>   xen/arch/x86/domain-builder/domain.c      | 11 +++++++++++
>>   xen/arch/x86/include/asm/dom0_build.h     |  2 ++
>>   xen/arch/x86/include/asm/domain-builder.h |  1 +
>>   xen/arch/x86/setup.c                      |  5 +++--
>>   5 files changed, 18 insertions(+), 5 deletions(-)
>>
>> diff --git a/xen/arch/x86/domain-builder/domain.c b/xen/arch/x86/domain-builder/domain.c
>> index f2277b9e3cf3..619d36ea0b87 100644
>> --- a/xen/arch/x86/domain-builder/domain.c
>> +++ b/xen/arch/x86/domain-builder/domain.c
>> @@ -9,6 +9,7 @@
>>   #include <xen/sched.h>
>>   
>>   #include <asm/bootinfo.h>
>> +#include <asm/dom0_build.h>
>>   
>>   unsigned int __init dom_max_vcpus(struct boot_domain *bd)
>>   {
>> @@ -27,6 +28,16 @@ unsigned int __init dom_max_vcpus(struct boot_domain *bd)
>>       return bd->max_vcpus;
>>   }
>>   
>> +struct vcpu *__init alloc_dom_vcpu0(struct boot_domain *bd)
>> +{
>> +    if ( bd->capabilities & BUILD_CAPS_CONTROL )
>> +        dom0_set_affinity(bd->d);
> 
> Similar as before, this probably wants to be DOMAIN_CAPS_HARDWARE?
> 
> I'll adjust while rebasing.

Does it?

v/r,
dps



From xen-devel-bounces@lists.xenproject.org Fri Apr 25 22:06:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 22:06:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.968661.1358157 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8RBU-0005gC-AC; Fri, 25 Apr 2025 22:06:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 968661.1358157; Fri, 25 Apr 2025 22:06:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8RBU-0005g5-6I; Fri, 25 Apr 2025 22:06:12 +0000
Received: by outflank-mailman (input) for mailman id 968661;
 Fri, 25 Apr 2025 22: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=FJEZ=XL=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1u8RBS-0005fx-Th
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 22:06:10 +0000
Received: from sender4-of-o50.zoho.com (sender4-of-o50.zoho.com
 [136.143.188.50]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7cfe1a68-2221-11f0-9eb3-5ba50f476ded;
 Sat, 26 Apr 2025 00:06:08 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 1745618750211742.4318936726262;
 Fri, 25 Apr 2025 15:05: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: 7cfe1a68-2221-11f0-9eb3-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; t=1745618754; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=aLlpM7GT/AMgDCq3tGJyacnTqXereql8ogUcHobbKx1gTFQGOOvUoICpAmX8nz0huZWS77pnA/4DmQ7viRuaJY3S/uMqwqtsTmie1JUDiK0PvkFimx275TYP0YZhS/Ue6RtVQOvg1u04387D5JP0lz0tY2CoLPUr4JBoK/I69PY=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1745618754; 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=gAEF+cJS4DQ+nr/rZLYPONWBy5P67V1ZinnvnYMktQU=; 
	b=OAGFgeHCKbSaYvBgB1BtgqU6Gb0TtF8g+qwzFOan8KFJzPHCU7fN8JnOSfSoM8h9ba/SUM3dVd+T2qOY3sPDARY3ei2dmjaVhvMpPE+SnFStOvHgqQVziJUHt7iu4iIUGAyMdppzfAsEUVqZXNhctpmUYJkcUPVaBoGhdRdGJZU=
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=1745618753;
	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=gAEF+cJS4DQ+nr/rZLYPONWBy5P67V1ZinnvnYMktQU=;
	b=E4aI/9svedYlBvWwbJ6vnpek4yZSCLKvOZhYd1oTquxk4UHTXlVX1TwZJk2D2Qgq
	9X4EWN6fhuXCZTtKSp2CTlDDqsLfIocSWLvmSQJddfXE5t+3292fpBoYgTr7YWdCCOx
	i9Mru6dKb5loYksk3XaHvi8vXEBDlJc5Zjw+V5Ko=
Message-ID: <e77fa4bd-da68-4cff-9f4d-9522d1704780@apertussolutions.com>
Date: Fri, 25 Apr 2025 18:05:48 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC 16/38] x86/boot: move and rename sched_setup_dom0_vcpus
Content-Language: en-US
To: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>,
 xen-devel@lists.xenproject.org
Cc: jason.andryuk@amd.com, stefano.stabellini@amd.com, agarciav@amd.com,
 Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Dario Faggioli <dfaggioli@suse.com>, George Dunlap <gwd@xenproject.org>
References: <20250419220820.4234-1-dpsmith@apertussolutions.com>
 <20250419220820.4234-17-dpsmith@apertussolutions.com>
 <382cd6a7-c91b-4bf8-a026-ef0d9e872fe6@suse.com>
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
Autocrypt: addr=dpsmith@apertussolutions.com; keydata=
 xsJuBFYrueARCACPWL3r2bCSI6TrkIE/aRzj4ksFYPzLkJbWLZGBRlv7HQLvs6i/K4y/b4fs
 JDq5eL4e9BdfdnZm/b+K+Gweyc0Px2poDWwKVTFFRgxKWq9R7McwNnvuZ4nyXJBVn7PTEn/Z
 G7D08iZg94ZsnUdeXfgYdJrqmdiWA6iX9u84ARHUtb0K4r5WpLUMcQ8PVmnv1vVrs/3Wy/Rb
 foxebZNWxgUiSx+d02e3Ad0aEIur1SYXXv71mqKwyi/40CBSHq2jk9eF6zmEhaoFi5+MMMgX
 X0i+fcBkvmT0N88W4yCtHhHQds+RDbTPLGm8NBVJb7R5zbJmuQX7ADBVuNYIU8hx3dF3AQCm
 601w0oZJ0jGOV1vXQgHqZYJGHg5wuImhzhZJCRESIwf+PJxik7TJOgBicko1hUVOxJBZxoe0
 x+/SO6tn+s8wKlR1Yxy8gYN9ZRqV2I83JsWZbBXMG1kLzV0SAfk/wq0PAppA1VzrQ3JqXg7T
 MZ3tFgxvxkYqUP11tO2vrgys+InkZAfjBVMjqXWHokyQPpihUaW0a8mr40w9Qui6DoJj7+Gg
 DtDWDZ7Zcn2hoyrypuht88rUuh1JuGYD434Q6qwQjUDlY+4lgrUxKdMD8R7JJWt38MNlTWvy
 rMVscvZUNc7gxcmnFUn41NPSKqzp4DDRbmf37Iz/fL7i01y7IGFTXaYaF3nEACyIUTr/xxi+
 MD1FVtEtJncZNkRn7WBcVFGKMAf+NEeaeQdGYQ6mGgk++i/vJZxkrC/a9ZXme7BhWRP485U5
 sXpFoGjdpMn4VlC7TFk2qsnJi3yF0pXCKVRy1ukEls8o+4PF2JiKrtkCrWCimB6jxGPIG3lk
 3SuKVS/din3RHz+7Sr1lXWFcGYDENmPd/jTwr1A1FiHrSj+u21hnJEHi8eTa9029F1KRfocp
 ig+k0zUEKmFPDabpanI323O5Tahsy7hwf2WOQwTDLvQ+eqQu40wbb6NocmCNFjtRhNZWGKJS
 b5GrGDGu/No5U6w73adighEuNcCSNBsLyUe48CE0uTO7eAL6Vd+2k28ezi6XY4Y0mgASJslb
 NwW54LzSSM0uRGFuaWVsIFAuIFNtaXRoIDxkcHNtaXRoQGFwZXJ0dXNzb2x1dGlvbnMuY29t
 PsJ6BBMRCAAiBQJWK7ngAhsjBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRBTc6WbYpR8
 KrQ9AP94+xjtFfJ8gj5c7PVx06Zv9rcmFUqQspZ5wSEkvxOuQQEAg6qEsPYegI7iByLVzNEg
 7B7fUG7pqWIfMqFwFghYhQzOwU0EViu54BAIAL6MXXNlrJ5tRUf+KMBtVz1LJQZRt/uxWrCb
 T06nZjnbp2UcceuYNbISOVHGXTzu38r55YzpkEA8eURQf+5hjtvlrOiHxvpD+Z6WcpV6rrMB
 kcAKWiZTQihW2HoGgVB3gwG9dCh+n0X5OzliAMiGK2a5iqnIZi3o0SeW6aME94bSkTkuj6/7
 OmH9KAzK8UnlhfkoMg3tXW8L6/5CGn2VyrjbB/rcrbIR4mCQ+yCUlocuOjFCJhBd10AG1IcX
 OXUa/ux+/OAV9S5mkr5Fh3kQxYCTcTRt8RY7+of9RGBk10txi94dXiU2SjPbassvagvu/hEi
 twNHms8rpkSJIeeq0/cAAwUH/jV3tXpaYubwcL2tkk5ggL9Do+/Yo2WPzXmbp8vDiJPCvSJW
 rz2NrYkd/RoX+42DGqjfu8Y04F9XehN1zZAFmCDUqBMa4tEJ7kOT1FKJTqzNVcgeKNBGcT7q
 27+wsqbAerM4A0X/F/ctjYcKwNtXck1Bmd/T8kiw2IgyeOC+cjyTOSwKJr2gCwZXGi5g+2V8
 NhJ8n72ISPnOh5KCMoAJXmCF+SYaJ6hIIFARmnuessCIGw4ylCRIU/TiXK94soilx5aCqb1z
 ke943EIUts9CmFAHt8cNPYOPRd20pPu4VFNBuT4fv9Ys0iv0XGCEP+sos7/pgJ3gV3pCOric
 p15jV4PCYQQYEQgACQUCViu54AIbDAAKCRBTc6WbYpR8Khu7AP9NJrBUn94C/3PeNbtQlEGZ
 NV46Mx5HF0P27lH3sFpNrwD/dVdZ5PCnHQYBZ287ZxVfVr4Zuxjo5yJbRjT93Hl0vMY=
In-Reply-To: <382cd6a7-c91b-4bf8-a026-ef0d9e872fe6@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

On 4/20/25 05:36, Jürgen Groß wrote:
> On 20.04.25 00:07, Daniel P. Smith wrote:
>> Relocated the function sched_setup_dom0_vcpus(), which was protected 
>> by an
>> ifdef CONFIG_X86, from common/sched to the hyperlaunch domain builder. 
>> Rename
>> it to alloc_dom_vcpus() to better reflect the purpose of the function.
> 
> I'd be in favor naming it domain_vcpus_create().

I would add that since that name came was based on the function name 
alloc_dom_vpcu0(), I have also switched it so that both follow that scheme.

v/r,
dps



From xen-devel-bounces@lists.xenproject.org Fri Apr 25 22:07:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 22:07:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.968670.1358167 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8RCH-0006CG-IM; Fri, 25 Apr 2025 22:07:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 968670.1358167; Fri, 25 Apr 2025 22: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 1u8RCH-0006C9-EQ; Fri, 25 Apr 2025 22:07:01 +0000
Received: by outflank-mailman (input) for mailman id 968670;
 Fri, 25 Apr 2025 22:06: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=FJEZ=XL=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1u8RCF-0005fx-Nr
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 22:06:59 +0000
Received: from sender4-of-o50.zoho.com (sender4-of-o50.zoho.com
 [136.143.188.50]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9ad181f8-2221-11f0-9eb3-5ba50f476ded;
 Sat, 26 Apr 2025 00:06:58 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 1745618812461587.6329446185744;
 Fri, 25 Apr 2025 15:06:52 -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: 9ad181f8-2221-11f0-9eb3-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; t=1745618814; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=CViaT6Yw0uR9GVzfeBxM+DdiO86bXh3AsY56sWHPN32ESMK0fJUiGnzbn4/Q4NoPzHwpYun25QaQOdoFnvt4VIRRTJQQv0MshfjFn6S1Hom7d2HMSLUcP6YcBzCrQm7S3g5WgXPhte3GuRWWs2C16NqeH7w41Yt1Suquyo9muVM=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1745618814; 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=zWV8KAI3GgZnrKPr1JBx123EB1XO3ZpFKc2fL8TcNdc=; 
	b=O/17+LMc5/H3qtVzGLCYxn5inq1bOhv6x2WgpUfAC9U3BIEdODl8Rq+M95oEupNIOK2msl1PIa0rryty/pX6R4uLj4Pq7kdDzlFHiqjPdifA+yT56DJxsgMzXN2lGpDKjTRUZ66GxGFg/UoZoeZAGqytRAS2IRF0FIRUKp+r6PM=
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=1745618814;
	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=zWV8KAI3GgZnrKPr1JBx123EB1XO3ZpFKc2fL8TcNdc=;
	b=OQgbyUxeQRrzi8MqEq0DlndunjnEReB1BpzjkVTUhm+Cv67DceYnA4QHOYMi43Rb
	agyGTjfw0rgtbLiOTwPQP62vjObGWalMrE3GpmNg9Tcg5FlQMv+sy2eCQi5JGsYFLce
	pXVH0fbGNOBPznlANMoK2QWftue1znSCI9hpC+YY=
Message-ID: <10ea3202-3ffe-49c8-b449-5d59abc81be1@apertussolutions.com>
Date: Fri, 25 Apr 2025 18:06:51 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC 32/38] x86/hyperlaunch: introduce concept of core domains
Content-Language: en-US
To: Jason Andryuk <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org
Cc: stefano.stabellini@amd.com, agarciav@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: <20250419220820.4234-1-dpsmith@apertussolutions.com>
 <20250419220820.4234-33-dpsmith@apertussolutions.com>
 <bb2aa95a-797c-4d33-86eb-28acfaef743c@amd.com>
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
Autocrypt: addr=dpsmith@apertussolutions.com; keydata=
 xsJuBFYrueARCACPWL3r2bCSI6TrkIE/aRzj4ksFYPzLkJbWLZGBRlv7HQLvs6i/K4y/b4fs
 JDq5eL4e9BdfdnZm/b+K+Gweyc0Px2poDWwKVTFFRgxKWq9R7McwNnvuZ4nyXJBVn7PTEn/Z
 G7D08iZg94ZsnUdeXfgYdJrqmdiWA6iX9u84ARHUtb0K4r5WpLUMcQ8PVmnv1vVrs/3Wy/Rb
 foxebZNWxgUiSx+d02e3Ad0aEIur1SYXXv71mqKwyi/40CBSHq2jk9eF6zmEhaoFi5+MMMgX
 X0i+fcBkvmT0N88W4yCtHhHQds+RDbTPLGm8NBVJb7R5zbJmuQX7ADBVuNYIU8hx3dF3AQCm
 601w0oZJ0jGOV1vXQgHqZYJGHg5wuImhzhZJCRESIwf+PJxik7TJOgBicko1hUVOxJBZxoe0
 x+/SO6tn+s8wKlR1Yxy8gYN9ZRqV2I83JsWZbBXMG1kLzV0SAfk/wq0PAppA1VzrQ3JqXg7T
 MZ3tFgxvxkYqUP11tO2vrgys+InkZAfjBVMjqXWHokyQPpihUaW0a8mr40w9Qui6DoJj7+Gg
 DtDWDZ7Zcn2hoyrypuht88rUuh1JuGYD434Q6qwQjUDlY+4lgrUxKdMD8R7JJWt38MNlTWvy
 rMVscvZUNc7gxcmnFUn41NPSKqzp4DDRbmf37Iz/fL7i01y7IGFTXaYaF3nEACyIUTr/xxi+
 MD1FVtEtJncZNkRn7WBcVFGKMAf+NEeaeQdGYQ6mGgk++i/vJZxkrC/a9ZXme7BhWRP485U5
 sXpFoGjdpMn4VlC7TFk2qsnJi3yF0pXCKVRy1ukEls8o+4PF2JiKrtkCrWCimB6jxGPIG3lk
 3SuKVS/din3RHz+7Sr1lXWFcGYDENmPd/jTwr1A1FiHrSj+u21hnJEHi8eTa9029F1KRfocp
 ig+k0zUEKmFPDabpanI323O5Tahsy7hwf2WOQwTDLvQ+eqQu40wbb6NocmCNFjtRhNZWGKJS
 b5GrGDGu/No5U6w73adighEuNcCSNBsLyUe48CE0uTO7eAL6Vd+2k28ezi6XY4Y0mgASJslb
 NwW54LzSSM0uRGFuaWVsIFAuIFNtaXRoIDxkcHNtaXRoQGFwZXJ0dXNzb2x1dGlvbnMuY29t
 PsJ6BBMRCAAiBQJWK7ngAhsjBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRBTc6WbYpR8
 KrQ9AP94+xjtFfJ8gj5c7PVx06Zv9rcmFUqQspZ5wSEkvxOuQQEAg6qEsPYegI7iByLVzNEg
 7B7fUG7pqWIfMqFwFghYhQzOwU0EViu54BAIAL6MXXNlrJ5tRUf+KMBtVz1LJQZRt/uxWrCb
 T06nZjnbp2UcceuYNbISOVHGXTzu38r55YzpkEA8eURQf+5hjtvlrOiHxvpD+Z6WcpV6rrMB
 kcAKWiZTQihW2HoGgVB3gwG9dCh+n0X5OzliAMiGK2a5iqnIZi3o0SeW6aME94bSkTkuj6/7
 OmH9KAzK8UnlhfkoMg3tXW8L6/5CGn2VyrjbB/rcrbIR4mCQ+yCUlocuOjFCJhBd10AG1IcX
 OXUa/ux+/OAV9S5mkr5Fh3kQxYCTcTRt8RY7+of9RGBk10txi94dXiU2SjPbassvagvu/hEi
 twNHms8rpkSJIeeq0/cAAwUH/jV3tXpaYubwcL2tkk5ggL9Do+/Yo2WPzXmbp8vDiJPCvSJW
 rz2NrYkd/RoX+42DGqjfu8Y04F9XehN1zZAFmCDUqBMa4tEJ7kOT1FKJTqzNVcgeKNBGcT7q
 27+wsqbAerM4A0X/F/ctjYcKwNtXck1Bmd/T8kiw2IgyeOC+cjyTOSwKJr2gCwZXGi5g+2V8
 NhJ8n72ISPnOh5KCMoAJXmCF+SYaJ6hIIFARmnuessCIGw4ylCRIU/TiXK94soilx5aCqb1z
 ke943EIUts9CmFAHt8cNPYOPRd20pPu4VFNBuT4fv9Ys0iv0XGCEP+sos7/pgJ3gV3pCOric
 p15jV4PCYQQYEQgACQUCViu54AIbDAAKCRBTc6WbYpR8Khu7AP9NJrBUn94C/3PeNbtQlEGZ
 NV46Mx5HF0P27lH3sFpNrwD/dVdZ5PCnHQYBZ287ZxVfVr4Zuxjo5yJbRjT93Hl0vMY=
In-Reply-To: <bb2aa95a-797c-4d33-86eb-28acfaef743c@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

On 4/23/25 15:50, Jason Andryuk wrote:
> On 2025-04-19 18:08, Daniel P. Smith wrote:
>> When constructing domU, and specifically the event channels for their 
>> console
>> and xenstore event channels, the domid for the backing domain must be 
>> known.
>> Therefore, the control, hardware, and xenstore domains are deemed as core
>> domains, and must be constructed before any of the other domains.
>>
>> This commit introduces the build_core_domains() function that will 
>> ensure the
>> core domains are constructed first.
>>
>> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
>> ---
>>   xen/arch/x86/domain-builder/core.c     | 68 ++++++++++++++++++++++++--
>>   xen/arch/x86/include/asm/boot-domain.h |  2 +
>>   2 files changed, 66 insertions(+), 4 deletions(-)
>>
>> diff --git a/xen/arch/x86/domain-builder/core.c b/xen/arch/x86/domain- 
>> builder/core.c
>> index 901efce62a61..f693aa46d278 100644
>> --- a/xen/arch/x86/domain-builder/core.c
>> +++ b/xen/arch/x86/domain-builder/core.c
>> @@ -103,18 +103,78 @@ void __init builder_init(struct boot_info *bi)
>>       }
>>   }
>> +static int  __init build_core_domains(struct boot_info *bi)
>> +{
>> +    int count = 0;
>> +    struct boot_domain *bd;
>> +    int hw, cd, xs;
>> +
>> +    cd = first_boot_domain_index(bi, BUILD_CAPS_CONTROL);
> 
>> +    hw = first_boot_domain_index(bi, BUILD_CAPS_HARDWARE);
> 
>> +    xs = first_boot_domain_index(bi, BUILD_CAPS_XENSTORE);
> 
> This order has issues if you actually have disaggregated domains.
> 
> Control and Hardware depend on Xenstore for Xenstore.
> 
> Control and Xenstore depend on Hardware for console support.
> 
> I re-worked the xenstore allocation to run after domain creation.  I've 
> upstreamed that for dom0less (and ARM doesn't have to deal with consoles).
> 
> So if xenstore allocation is moved later, Hardware, Xenstore, then 
> Control works.  But xenstore and console could both be handled after the 
> fact and then the construction order doesn't matter.  The backend domid 
> is needed to construct the event channel and grant entry.  With assigned 
> domids, alloc_store_evtchn()/alloc_console_evtchn() can operate on the 
> domids instead of expecting the domain to have been constructed.

Actually, there is a larger issue here and this is going to be reworked.

V/r,
dps


From xen-devel-bounces@lists.xenproject.org Fri Apr 25 22:16:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 22:16:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.968690.1358177 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8RLR-0008Nz-Fv; Fri, 25 Apr 2025 22:16:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 968690.1358177; Fri, 25 Apr 2025 22:16:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8RLR-0008Ns-Ct; Fri, 25 Apr 2025 22:16:29 +0000
Received: by outflank-mailman (input) for mailman id 968690;
 Fri, 25 Apr 2025 22:16:27 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=FJEZ=XL=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1u8RLP-0008Nm-7i
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 22:16:27 +0000
Received: from sender4-of-o50.zoho.com (sender4-of-o50.zoho.com
 [136.143.188.50]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ebbcfed5-2222-11f0-9ffb-bf95429c2676;
 Sat, 26 Apr 2025 00:16:24 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 1745619374713179.9886556327998;
 Fri, 25 Apr 2025 15:16: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: ebbcfed5-2222-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; t=1745619378; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=A0sY1mR5tqHNKPtOL+r8GDJY3jQ0ml7tGRwrQNVV+dMsTYaheZchwEVE7k00axLNhAsS6U237P1rBx866/uZBx0a08csH9bjYPOeAXaRuHzkayDDv1tcOBC3lDwX+aMnooYyDMsMKczcgEqwLEYiY7D9pTSb4D45opPX2S+jeEU=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1745619378; 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=Ttq38HvTskzJ2SQ59jHZkXUmMKOHtPyJY2psnXrCVU0=; 
	b=TKJHD1q1dbS1tnClYeLDyglI1TCLgTldPoXmLNpfcB6Mko2P5MVyvGUwEakO4h1ZzevHPuCgJD/CnBC3GcYWZbvNLsx6U2QiSxm4L3xpMtueIlmb1picrTlisa6raU45j+LZaN6zUo0lcjBPILTxdoketszDG1DVPaO0pei/Ri4=
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=1745619377;
	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=Ttq38HvTskzJ2SQ59jHZkXUmMKOHtPyJY2psnXrCVU0=;
	b=A9UdJJ7ddo33banBThuVHxw6blkIUJx6xWGP9LVOse1e+pAhQb8LwyknSK9+o4B3
	/p2XrJa4h8yrTOL38nsxZSkeUq9oJ4uLCmokKd/Lugp0Yh9x+6fETxfL6C320dzZQU6
	jpnlFnNkvjEupPHvMHN4d/6CNmS0cE8YyW9ng5q0=
Message-ID: <9614ad42-2188-4013-9aef-a2b9af60002d@apertussolutions.com>
Date: Fri, 25 Apr 2025 18:16:13 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC 33/38] x86/boot: refactor bzimage parser to be re-enterant
Content-Language: en-US
To: Jason Andryuk <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org
Cc: stefano.stabellini@amd.com, agarciav@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: <20250419220820.4234-1-dpsmith@apertussolutions.com>
 <20250419220820.4234-34-dpsmith@apertussolutions.com>
 <bba25fca-171a-47dd-881b-4746d76bd16a@amd.com>
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
Autocrypt: addr=dpsmith@apertussolutions.com; keydata=
 xsJuBFYrueARCACPWL3r2bCSI6TrkIE/aRzj4ksFYPzLkJbWLZGBRlv7HQLvs6i/K4y/b4fs
 JDq5eL4e9BdfdnZm/b+K+Gweyc0Px2poDWwKVTFFRgxKWq9R7McwNnvuZ4nyXJBVn7PTEn/Z
 G7D08iZg94ZsnUdeXfgYdJrqmdiWA6iX9u84ARHUtb0K4r5WpLUMcQ8PVmnv1vVrs/3Wy/Rb
 foxebZNWxgUiSx+d02e3Ad0aEIur1SYXXv71mqKwyi/40CBSHq2jk9eF6zmEhaoFi5+MMMgX
 X0i+fcBkvmT0N88W4yCtHhHQds+RDbTPLGm8NBVJb7R5zbJmuQX7ADBVuNYIU8hx3dF3AQCm
 601w0oZJ0jGOV1vXQgHqZYJGHg5wuImhzhZJCRESIwf+PJxik7TJOgBicko1hUVOxJBZxoe0
 x+/SO6tn+s8wKlR1Yxy8gYN9ZRqV2I83JsWZbBXMG1kLzV0SAfk/wq0PAppA1VzrQ3JqXg7T
 MZ3tFgxvxkYqUP11tO2vrgys+InkZAfjBVMjqXWHokyQPpihUaW0a8mr40w9Qui6DoJj7+Gg
 DtDWDZ7Zcn2hoyrypuht88rUuh1JuGYD434Q6qwQjUDlY+4lgrUxKdMD8R7JJWt38MNlTWvy
 rMVscvZUNc7gxcmnFUn41NPSKqzp4DDRbmf37Iz/fL7i01y7IGFTXaYaF3nEACyIUTr/xxi+
 MD1FVtEtJncZNkRn7WBcVFGKMAf+NEeaeQdGYQ6mGgk++i/vJZxkrC/a9ZXme7BhWRP485U5
 sXpFoGjdpMn4VlC7TFk2qsnJi3yF0pXCKVRy1ukEls8o+4PF2JiKrtkCrWCimB6jxGPIG3lk
 3SuKVS/din3RHz+7Sr1lXWFcGYDENmPd/jTwr1A1FiHrSj+u21hnJEHi8eTa9029F1KRfocp
 ig+k0zUEKmFPDabpanI323O5Tahsy7hwf2WOQwTDLvQ+eqQu40wbb6NocmCNFjtRhNZWGKJS
 b5GrGDGu/No5U6w73adighEuNcCSNBsLyUe48CE0uTO7eAL6Vd+2k28ezi6XY4Y0mgASJslb
 NwW54LzSSM0uRGFuaWVsIFAuIFNtaXRoIDxkcHNtaXRoQGFwZXJ0dXNzb2x1dGlvbnMuY29t
 PsJ6BBMRCAAiBQJWK7ngAhsjBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRBTc6WbYpR8
 KrQ9AP94+xjtFfJ8gj5c7PVx06Zv9rcmFUqQspZ5wSEkvxOuQQEAg6qEsPYegI7iByLVzNEg
 7B7fUG7pqWIfMqFwFghYhQzOwU0EViu54BAIAL6MXXNlrJ5tRUf+KMBtVz1LJQZRt/uxWrCb
 T06nZjnbp2UcceuYNbISOVHGXTzu38r55YzpkEA8eURQf+5hjtvlrOiHxvpD+Z6WcpV6rrMB
 kcAKWiZTQihW2HoGgVB3gwG9dCh+n0X5OzliAMiGK2a5iqnIZi3o0SeW6aME94bSkTkuj6/7
 OmH9KAzK8UnlhfkoMg3tXW8L6/5CGn2VyrjbB/rcrbIR4mCQ+yCUlocuOjFCJhBd10AG1IcX
 OXUa/ux+/OAV9S5mkr5Fh3kQxYCTcTRt8RY7+of9RGBk10txi94dXiU2SjPbassvagvu/hEi
 twNHms8rpkSJIeeq0/cAAwUH/jV3tXpaYubwcL2tkk5ggL9Do+/Yo2WPzXmbp8vDiJPCvSJW
 rz2NrYkd/RoX+42DGqjfu8Y04F9XehN1zZAFmCDUqBMa4tEJ7kOT1FKJTqzNVcgeKNBGcT7q
 27+wsqbAerM4A0X/F/ctjYcKwNtXck1Bmd/T8kiw2IgyeOC+cjyTOSwKJr2gCwZXGi5g+2V8
 NhJ8n72ISPnOh5KCMoAJXmCF+SYaJ6hIIFARmnuessCIGw4ylCRIU/TiXK94soilx5aCqb1z
 ke943EIUts9CmFAHt8cNPYOPRd20pPu4VFNBuT4fv9Ys0iv0XGCEP+sos7/pgJ3gV3pCOric
 p15jV4PCYQQYEQgACQUCViu54AIbDAAKCRBTc6WbYpR8Khu7AP9NJrBUn94C/3PeNbtQlEGZ
 NV46Mx5HF0P27lH3sFpNrwD/dVdZ5PCnHQYBZ287ZxVfVr4Zuxjo5yJbRjT93Hl0vMY=
In-Reply-To: <bba25fca-171a-47dd-881b-4746d76bd16a@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

On 4/23/25 15:27, Jason Andryuk wrote:
> On 2025-04-19 18:08, Daniel P. Smith wrote:
>> The bzimage logic uses the unit global orig_image_len to hold the 
>> original
>> module length for the kernel when the headroom is calculated. It then 
>> uses
>> orig_image_len to locate the start of the bzimage when the expansion 
>> is done.
>> This is an issue when more than one bzimage is processed by the headroom
>> calculation logic, as it will leave orig_image_len set to the length 
>> of the
>> last bzimage it processed.
>>
>> The boot module work introduced storing the headroom size on a per module
>> basis. By passing in the headroom from the boot module, orig_image_len 
>> is no
>> longer needed to locate the beginning of the bzimage after the allocated
>> headroom. The bzimage functions are reworked as such, allowing the 
>> removal of
>> orig_image_len and enabling them to be reused by multiple kernel boot 
>> modules.
>>
>> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
>> ---
>>   xen/arch/x86/bzimage.c             | 38 ++++++++++++++++++------------
>>   xen/arch/x86/hvm/dom_build.c       |  3 ++-
>>   xen/arch/x86/include/asm/bzimage.h |  5 ++--
>>   xen/arch/x86/pv/dom0_build.c       |  3 ++-
>>   4 files changed, 30 insertions(+), 19 deletions(-)
>>
>> diff --git a/xen/arch/x86/bzimage.c b/xen/arch/x86/bzimage.c
>> index 66f648f311e4..32f0360d25b4 100644
> 
>> @@ -103,13 +100,20 @@ unsigned long __init bzimage_headroom(void 
>> *image_start,
>>       return headroom;
>>   }
>> -int __init bzimage_parse(void *image_base, void **image_start,
>> -                         unsigned long *image_len)
>> +int __init bzimage_parse(
>> +    void *image_base, void **image_start, unsigned long headroom,
>> +    unsigned long *image_len)
>>   {
>>       struct setup_header *hdr = (struct setup_header *)(*image_start);
>>       int err = bzimage_check(hdr, *image_len);
>> -    unsigned long output_len;
>> -
>> +    unsigned long module_len = *image_len;
>> +
>> +    /*
>> +     * Variable err will have one of three values:
>> +     *   -  < 0: a error occurred trying to inspect the contents
>> +     *   -  > 0: the image is a bzImage
>> +     *   - == 0: not a bzImage, could be raw elf or elf.gz (vmlinuz.gz)
>> +     */
> 
> This comment seems a little independent of this change, so maybe it 
> should be submitted separately.  Also, I think a better placement would 
> be next to bzimage_check().
> 
>>       if ( err < 0 )
>>           return err;
>> @@ -118,21 +122,25 @@ int __init bzimage_parse(void *image_base, void 
>> **image_start,
>>           *image_start += (hdr->setup_sects + 1) * 512 + hdr- 
>> >payload_offset;
>>           *image_len = hdr->payload_length;
> 
> @here
> 
>>       }
>> -
>> -    if ( elf_is_elfbinary(*image_start, *image_len) )
>> -        return 0;
>> +    else
>> +    {
>> +        if ( elf_is_elfbinary(*image_start, *image_len) )
>> +            return 0;
>> +        else
>> +            *image_len = *image_len - headroom;
>> +    }
> 
> I don't like this extra indention which includes the return.  If you 
> retain orig_image_len as a local variable, and set it above at "@here", 
> you can have a smaller diff and leave cleaner logic.
> 
> orig_image_len previously was set as a static variable, so the correct
> value was set after bzimage_headroom.  Now that it is no longer static,
> we need to grab the hdr->payload_length value when we have a bzImage.
> Otherwise output_length will read past the end of the module.
> 
> Below is the diff for bzimage.c with the change I suggest.
> 

I will review it again when as I rebase it.

v/r,
dps


From xen-devel-bounces@lists.xenproject.org Fri Apr 25 22:18:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 22:18:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.968701.1358187 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8RNf-0000UW-RZ; Fri, 25 Apr 2025 22:18:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 968701.1358187; Fri, 25 Apr 2025 22:18:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8RNf-0000UP-Ov; Fri, 25 Apr 2025 22:18:47 +0000
Received: by outflank-mailman (input) for mailman id 968701;
 Fri, 25 Apr 2025 22:18: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=kyFG=XL=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u8RNe-0000UJ-DK
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 22:18:46 +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 400b1500-2223-11f0-9eb3-5ba50f476ded;
 Sat, 26 Apr 2025 00:18:45 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 5FE785C6DC3;
 Fri, 25 Apr 2025 22:16:26 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id AE68AC4CEE4;
 Fri, 25 Apr 2025 22:18: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: 400b1500-2223-11f0-9eb3-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1745619523;
	bh=VuVaJoIUfa4RNR/FRs0bjZySq0GLBBbJoCyO6opGUwo=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=g4bd5IUMqS5SRdFQd01dysc6rzYWgOELZlpe3yz/JsRD1AWGyOiERNMDMvA4NvfvC
	 Ice0Vp0v/4HhycYBfDXL1RtDJHgjn8alyKvnyXD0ek9gEiOVCeAEJIDtb8UB/xVlcB
	 qPxa5sgqddJN/jB4Ogjv/BMQ/2xknh7iQVFQnUpiyoan1Bzdz8EpuE7K5lMb2G053M
	 MpqYBQJJlI7226o06q66HA5xDao/lpLjuaB/BIKezAc2OTbXGGxX/JPwqZMb0O7Pzk
	 AtMUBFqHbYKp8u+kXn/1D3GutzqdFb//pQyLFFjP6izIdi9ZZ8UJpEU5Kyo502z/Ah
	 s9S5JpnNvnHZQ==
Date: Fri, 25 Apr 2025 15:18:40 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: dmkhn@proton.me
cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com, 
    anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org, 
    michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org, 
    dmukhin@ford.com
Subject: Re: [PATCH v1 1/3] xen/console: cleanup conring management
In-Reply-To: <20250403000604.169619-2-dmukhin@ford.com>
Message-ID: <alpine.DEB.2.22.394.2504251513480.785180@ubuntu-linux-20-04-desktop>
References: <20250403000604.169619-1-dmukhin@ford.com> <20250403000604.169619-2-dmukhin@ford.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Thu, 3 Apr 2025, dmkhn@proton.me wrote:
> From: Denis Mukhin <dmukhin@ford.com>
> 
> Move console_locks_busted handling inside conring_puts() to remove
> tasklet code duplication.
> 
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>

This patch is a good cleanup but makes one functional change: previously
guest_console_write would always call tasklet_schedule. Now, it only
calls tasklet_schedule if !console_locks_busted.

On ARM, we don't call console_force_unlock and never set
console_locks_busted. It makes no difference.

On x86, there are a few callers of console_force_unlock, so it would
make a difference. However, looking at the callers, it seems to me that
the change is for the better and better aligns the code with the
intention behind console_force_unlock.

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

but it would be good for an x86 maintainer to confirm


> ---
>  xen/drivers/char/console.c | 29 ++++++++++++++---------------
>  1 file changed, 14 insertions(+), 15 deletions(-)
> 
> diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
> index c3150fbdb7..aaa97088aa 100644
> --- a/xen/drivers/char/console.c
> +++ b/xen/drivers/char/console.c
> @@ -325,6 +325,17 @@ static void cf_check do_dec_thresh(unsigned char key, bool unused)
>   * ********************************************************
>   */
>  
> +static void cf_check notify_dom0_con_ring(void *unused)
> +{
> +    send_global_virq(VIRQ_CON_RING);
> +}
> +
> +static DECLARE_SOFTIRQ_TASKLET(notify_dom0_con_ring_tasklet,
> +                               notify_dom0_con_ring,
> +                               NULL);
> +
> +static bool console_locks_busted;
> +
>  static void conring_puts(const char *str, size_t len)
>  {
>      ASSERT(rspin_is_locked(&console_lock));
> @@ -334,6 +345,9 @@ static void conring_puts(const char *str, size_t len)
>  
>      if ( conringp - conringc > conring_size )
>          conringc = conringp - conring_size;
> +
> +    if ( !console_locks_busted )
> +        tasklet_schedule(&notify_dom0_con_ring_tasklet);
>  }
>  
>  long read_console_ring(struct xen_sysctl_readconsole *op)
> @@ -594,13 +608,6 @@ static void cf_check serial_rx(char c)
>      __serial_rx(c);
>  }
>  
> -static void cf_check notify_dom0_con_ring(void *unused)
> -{
> -    send_global_virq(VIRQ_CON_RING);
> -}
> -static DECLARE_SOFTIRQ_TASKLET(notify_dom0_con_ring_tasklet,
> -                               notify_dom0_con_ring, NULL);
> -
>  #ifdef CONFIG_X86
>  static inline void xen_console_write_debug_port(const char *buf, size_t len)
>  {
> @@ -648,10 +655,7 @@ static long guest_console_write(XEN_GUEST_HANDLE_PARAM(char) buffer,
>  #endif
>  
>              if ( opt_console_to_ring )
> -            {
>                  conring_puts(kbuf, kcount);
> -                tasklet_schedule(&notify_dom0_con_ring_tasklet);
> -            }
>  
>              nrspin_unlock_irq(&console_lock);
>          }
> @@ -753,8 +757,6 @@ long do_console_io(
>   * *****************************************************
>   */
>  
> -static bool console_locks_busted;
> -
>  static void __putstr(const char *str)
>  {
>      size_t len = strlen(str);
> @@ -775,9 +777,6 @@ static void __putstr(const char *str)
>  #endif
>  
>      conring_puts(str, len);
> -
> -    if ( !console_locks_busted )
> -        tasklet_schedule(&notify_dom0_con_ring_tasklet);
>  }
>  
>  static int printk_prefix_check(char *p, char **pp)
> -- 
> 2.34.1
> 
> 


From xen-devel-bounces@lists.xenproject.org Fri Apr 25 22:27:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 22:27:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.968716.1358196 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8RVY-0002hW-Gv; Fri, 25 Apr 2025 22:26:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 968716.1358196; Fri, 25 Apr 2025 22:26: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 1u8RVY-0002hP-ED; Fri, 25 Apr 2025 22:26:56 +0000
Received: by outflank-mailman (input) for mailman id 968716;
 Fri, 25 Apr 2025 22:26: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=1RGh=XL=ariadne.space=ariadne@srs-se1.protection.inumbo.net>)
 id 1u8RVX-0002hE-3f
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 22:26:55 +0000
Received: from outbound.pv.icloud.com
 (p-west1-cluster3-host5-snip4-3.eps.apple.com [57.103.66.6])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6045f3c3-2224-11f0-9eb3-5ba50f476ded;
 Sat, 26 Apr 2025 00:26:48 +0200 (CEST)
Received: from outbound.pv.icloud.com (localhost [127.0.0.1])
 by outbound.pv.icloud.com (Postfix) with ESMTPS id 969821800229;
 Fri, 25 Apr 2025 22:26:45 +0000 (UTC)
Received: from smtpclient.apple (unknown [17.56.9.36])
 by outbound.pv.icloud.com (Postfix) with ESMTPSA id 6A980180013F;
 Fri, 25 Apr 2025 22:26: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: 6045f3c3-2224-11f0-9eb3-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ariadne.space;
	s=sig1; bh=XUdcBDAnwcqAyZS7yjDAhKBctlhnqJD41jMG068jSwk=;
	h=From:Message-Id:Content-Type:Mime-Version:Subject:Date:To:x-icloud-hme;
	b=Xtp+YGx1etSTNgdAf1Tsr3qyQS/k4CelH+07+U/t55M87jMytYhJrKO87wZGmJAyu
	 y7XdGnJTn9LLZNuT2RrA5Uje4/DY50hLyBD2kKmPY6HavjB4XpP/0BDAW34dz2bJdV
	 D7BZIcM7P5B/sgILtoUb+F5+E0mDQB/SbnjBvuk1L3NgUl79j+brxPzalMcVapuJay
	 a7K4RJb8H4paAbjV3eC9Gfi77+HtrP9RpmLWj2m4gYz4K4veecZ+b0YsxokCoRmbWb
	 uzMnA8JAv7w0Xpa06+CeA2XtZibKG1Hz4InaURM1KnORbFJyWjnJc1S3Wz5IxDebMm
	 dAff5Km1pDu3w==
From: Ariadne Conill <ariadne@ariadne.space>
Message-Id: <0797C187-5814-4C29-B27F-6E74D98260DC@ariadne.space>
Content-Type: multipart/alternative;
	boundary="Apple-Mail=_4E344AD7-DF61-4E9B-87DE-DB2FFF9CBABE"
Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3826.200.121\))
Subject: Re: [PATCH] x86/hyperv: use dynamically allocated page for hypercalls
Date: Fri, 25 Apr 2025 15:26:33 -0700
In-Reply-To: <9f7ffd79-7439-40f3-9349-4f9f4d2ee1dd@amd.com>
Cc: xen-devel@lists.xenproject.org,
 Paul Durrant <paul@xen.org>,
 Jan Beulich <jbeulich@suse.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?utf-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Alejandro Vallejo <agarciav@amd.com>,
 "Alexander M . Merritt" <alexander@edera.dev>
To: Jason Andryuk <jason.andryuk@amd.com>
References: <20250425165148.60408-1-ariadne@ariadne.space>
 <9f7ffd79-7439-40f3-9349-4f9f4d2ee1dd@amd.com>
X-Mailer: Apple Mail (2.3826.200.121)


--Apple-Mail=_4E344AD7-DF61-4E9B-87DE-DB2FFF9CBABE
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=utf-8

Hi,

> On Apr 25, 2025, at 2:02=E2=80=AFPM, Jason Andryuk =
<jason.andryuk@amd.com> wrote:
>=20
> On 2025-04-25 12:51, Ariadne Conill wrote:
>> Previously Xen placed the hypercall page at the highest possible MFN,
>> but this caused problems on systems where there is more than 36 bits
>> of physical address space.
>> In general, it also seems unreliable to assume that the highest =
possible
>> MFN is not already reserved for some other purpose.
>> Fixes: 620fc734f854 ("x86/hyperv: setup hypercall page")
>> Cc: Alejandro Vallejo <agarciav@amd.com>
>> Cc: Alexander M. Merritt <alexander@edera.dev>
>> Signed-off-by: Ariadne Conill <ariadne@ariadne.space>
>> ---
>>  xen/arch/x86/guest/hyperv/hyperv.c            | 39 =
++++++++++---------
>>  xen/arch/x86/include/asm/fixmap.h             |  3 --
>>  xen/arch/x86/include/asm/guest/hyperv-hcall.h | 12 +++---
>>  xen/arch/x86/include/asm/guest/hyperv-tlfs.h  |  2 +
>>  xen/arch/x86/include/asm/guest/hyperv.h       |  3 --
>>  xen/arch/x86/xen.lds.S                        |  4 --
>>  6 files changed, 28 insertions(+), 35 deletions(-)
>> diff --git a/xen/arch/x86/guest/hyperv/hyperv.c =
b/xen/arch/x86/guest/hyperv/hyperv.c
>> index 6989af38f1..637b4bf335 100644
>> --- a/xen/arch/x86/guest/hyperv/hyperv.c
>> +++ b/xen/arch/x86/guest/hyperv/hyperv.c
>=20
>> @@ -98,10 +97,22 @@ static void __init setup_hypercall_page(void)
>>      rdmsrl(HV_X64_MSR_HYPERCALL, hypercall_msr.as_uint64);
>>      if ( !hypercall_msr.enable )
>>      {
>> -        mfn =3D HV_HCALL_MFN;
>> +        hv_hcall_page =3D alloc_xenheap_page();
>> +        if ( !hv_hcall_page )
>> +        {
>> +            printk("Hyper-V: Failed to allocate hypercall trampoline =
page\n");
>=20
> Minor, but maybe panic() here and avoid changing the return type?

Sure, can do that.

>=20
>> +            return -ENOMEM;
>> +        }
>> +
>> +        printk("Hyper-V: Allocated hypercall page @ %p.\n", =
hv_hcall_page);
>> +
>> +        mfn =3D virt_to_mfn(hv_hcall_page);
>>          hypercall_msr.enable =3D 1;
>>          hypercall_msr.guest_physical_address =3D mfn;
>>          wrmsrl(HV_X64_MSR_HYPERCALL, hypercall_msr.as_uint64);
>> +
>> +        start =3D (unsigned long) hv_hcall_page;
>> +        modify_xen_mappings(start, start + PAGE_SIZE, =
PAGE_HYPERVISOR_RX);
>>      }
>>      else
>>          mfn =3D hypercall_msr.guest_physical_address;
>=20
>> diff --git a/xen/arch/x86/include/asm/guest/hyperv-hcall.h =
b/xen/arch/x86/include/asm/guest/hyperv-hcall.h
>> index b76dbf9ccc..b73edca7c6 100644
>> --- a/xen/arch/x86/include/asm/guest/hyperv-hcall.h
>> +++ b/xen/arch/x86/include/asm/guest/hyperv-hcall.h
>> @@ -20,13 +20,13 @@ static inline uint64_t hv_do_hypercall(uint64_t =
control, paddr_t input_addr,
>>                                         paddr_t output_addr)
>>  {
>>      uint64_t status;
>> -    register unsigned long r8 asm ( "r8" ) =3D output_addr;
>>        /* See TLFS for volatile registers */
>> -    asm volatile ( "call hv_hcall_page"
>> +    asm volatile ( "mov %[output_addr], %%r8\n"
>=20
> Don't you need to list r8 as clobbered?  Or maybe just retain the r8 =
handling above and below to avoid this mov.

This can probably mostly be reverted if we get the fixmap working.

The issue we were facing before was a situation where calling =
hv_hcall_page directly resulted in a page fault due to NX-bit being set =
on the page.

>> +                   "call *%[target_addr]"
>=20
> It might be preferable to retain a direct call which can still be =
installed with __set_fixmap_x.  Otherwise, __set_fixmap_x can be removed

I think we should use fixmap, I just need to figure out what that looks =
like.

Will send v2 patch on Monday.

Ariadne=

--Apple-Mail=_4E344AD7-DF61-4E9B-87DE-DB2FFF9CBABE
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=utf-8

<html><head><meta http-equiv=3D"content-type" content=3D"text/html; =
charset=3Dutf-8"></head><body style=3D"overflow-wrap: break-word; =
-webkit-nbsp-mode: space; line-break: =
after-white-space;">Hi,<div><div><br><blockquote type=3D"cite"><div>On =
Apr 25, 2025, at 2:02=E2=80=AFPM, Jason Andryuk =
&lt;jason.andryuk@amd.com&gt; wrote:</div><br =
class=3D"Apple-interchange-newline"><div><meta charset=3D"UTF-8"><span =
style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: =
12px; font-style: normal; font-variant-caps: normal; font-weight: 400; =
letter-spacing: normal; text-align: start; text-indent: 0px; =
text-transform: none; white-space: normal; word-spacing: 0px; =
-webkit-text-stroke-width: 0px; text-decoration: none; float: none; =
display: inline !important;">On 2025-04-25 12:51, Ariadne Conill =
wrote:</span><br style=3D"caret-color: rgb(0, 0, 0); font-family: =
Helvetica; font-size: 12px; font-style: normal; font-variant-caps: =
normal; font-weight: 400; letter-spacing: normal; text-align: start; =
text-indent: 0px; text-transform: none; white-space: normal; =
word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: =
none;"><blockquote type=3D"cite" style=3D"font-family: Helvetica; =
font-size: 12px; font-style: normal; font-variant-caps: normal; =
font-weight: 400; letter-spacing: normal; orphans: auto; text-align: =
start; text-indent: 0px; text-transform: none; white-space: normal; =
widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
text-decoration: none;">Previously Xen placed the hypercall page at the =
highest possible MFN,<br>but this caused problems on systems where there =
is more than 36 bits<br>of physical address space.<br>In general, it =
also seems unreliable to assume that the highest possible<br>MFN is not =
already reserved for some other purpose.<br>Fixes: 620fc734f854 =
("x86/hyperv: setup hypercall page")<br>Cc: Alejandro Vallejo =
&lt;agarciav@amd.com&gt;<br>Cc: Alexander M. Merritt =
&lt;alexander@edera.dev&gt;<br>Signed-off-by: Ariadne Conill =
&lt;ariadne@ariadne.space&gt;<br>---<br>&nbsp;xen/arch/x86/guest/hyperv/hy=
perv.c =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;| 39 =
++++++++++---------<br>&nbsp;xen/arch/x86/include/asm/fixmap.h =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;| =
&nbsp;3 --<br>&nbsp;xen/arch/x86/include/asm/guest/hyperv-hcall.h | 12 =
+++---<br>&nbsp;xen/arch/x86/include/asm/guest/hyperv-tlfs.h &nbsp;| =
&nbsp;2 +<br>&nbsp;xen/arch/x86/include/asm/guest/hyperv.h =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;| &nbsp;3 =
--<br>&nbsp;xen/arch/x86/xen.lds.S =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;| =
&nbsp;4 --<br>&nbsp;6 files changed, 28 insertions(+), 35 =
deletions(-)<br>diff --git a/xen/arch/x86/guest/hyperv/hyperv.c =
b/xen/arch/x86/guest/hyperv/hyperv.c<br>index 6989af38f1..637b4bf335 =
100644<br>--- a/xen/arch/x86/guest/hyperv/hyperv.c<br>+++ =
b/xen/arch/x86/guest/hyperv/hyperv.c<br></blockquote><br =
style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: =
12px; font-style: normal; font-variant-caps: normal; font-weight: 400; =
letter-spacing: normal; text-align: start; text-indent: 0px; =
text-transform: none; white-space: normal; word-spacing: 0px; =
-webkit-text-stroke-width: 0px; text-decoration: none;"><blockquote =
type=3D"cite" style=3D"font-family: Helvetica; font-size: 12px; =
font-style: normal; font-variant-caps: normal; font-weight: 400; =
letter-spacing: normal; orphans: auto; text-align: start; text-indent: =
0px; text-transform: none; white-space: normal; widows: auto; =
word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: =
none;">@@ -98,10 +97,22 @@ static void __init =
setup_hypercall_page(void)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rdmsrl(HV_X64_=
MSR_HYPERCALL, =
hypercall_msr.as_uint64);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if ( =
!hypercall_msr.enable )<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>- =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mfn =3D HV_HCALL_MFN;<br>+ =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hv_hcall_page =3D =
alloc_xenheap_page();<br>+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if =
( !hv_hcall_page )<br>+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>+ =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printk("=
Hyper-V: Failed to allocate hypercall trampoline =
page\n");<br></blockquote><br style=3D"caret-color: rgb(0, 0, 0); =
font-family: Helvetica; font-size: 12px; font-style: normal; =
font-variant-caps: normal; font-weight: 400; letter-spacing: normal; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
text-decoration: none;"><span style=3D"caret-color: rgb(0, 0, 0); =
font-family: Helvetica; font-size: 12px; font-style: normal; =
font-variant-caps: normal; font-weight: 400; letter-spacing: normal; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
text-decoration: none; float: none; display: inline !important;">Minor, =
but maybe panic() here and avoid changing the return type?</span><br =
style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: =
12px; font-style: normal; font-variant-caps: normal; font-weight: 400; =
letter-spacing: normal; text-align: start; text-indent: 0px; =
text-transform: none; white-space: normal; word-spacing: 0px; =
-webkit-text-stroke-width: 0px; text-decoration: =
none;"></div></blockquote><div><br></div>Sure, can do =
that.</div><div><br><blockquote type=3D"cite"><div><br =
style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: =
12px; font-style: normal; font-variant-caps: normal; font-weight: 400; =
letter-spacing: normal; text-align: start; text-indent: 0px; =
text-transform: none; white-space: normal; word-spacing: 0px; =
-webkit-text-stroke-width: 0px; text-decoration: none;"><blockquote =
type=3D"cite" style=3D"font-family: Helvetica; font-size: 12px; =
font-style: normal; font-variant-caps: normal; font-weight: 400; =
letter-spacing: normal; orphans: auto; text-align: start; text-indent: =
0px; text-transform: none; white-space: normal; widows: auto; =
word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: =
none;">+ =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return =
-ENOMEM;<br>+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>+<br>+ =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printk("Hyper-V: Allocated =
hypercall page @ %p.\n", hv_hcall_page);<br>+<br>+ =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mfn =3D =
virt_to_mfn(hv_hcall_page);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;hypercall_msr.enable =3D =
1;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hypercall_msr.=
guest_physical_address =3D =
mfn;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wrmsrl(HV_X6=
4_MSR_HYPERCALL, hypercall_msr.as_uint64);<br>+<br>+ =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;start =3D (unsigned long) =
hv_hcall_page;<br>+ =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;modify_xen_mappings(start, =
start + PAGE_SIZE, =
PAGE_HYPERVISOR_RX);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;else<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;mfn =3D hypercall_msr.guest_physical_address;<br></blockquote><br =
style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: =
12px; font-style: normal; font-variant-caps: normal; font-weight: 400; =
letter-spacing: normal; text-align: start; text-indent: 0px; =
text-transform: none; white-space: normal; word-spacing: 0px; =
-webkit-text-stroke-width: 0px; text-decoration: none;"><blockquote =
type=3D"cite" style=3D"font-family: Helvetica; font-size: 12px; =
font-style: normal; font-variant-caps: normal; font-weight: 400; =
letter-spacing: normal; orphans: auto; text-align: start; text-indent: =
0px; text-transform: none; white-space: normal; widows: auto; =
word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: =
none;">diff --git a/xen/arch/x86/include/asm/guest/hyperv-hcall.h =
b/xen/arch/x86/include/asm/guest/hyperv-hcall.h<br>index =
b76dbf9ccc..b73edca7c6 100644<br>--- =
a/xen/arch/x86/include/asm/guest/hyperv-hcall.h<br>+++ =
b/xen/arch/x86/include/asm/guest/hyperv-hcall.h<br>@@ -20,13 +20,13 @@ =
static inline uint64_t hv_do_hypercall(uint64_t control, paddr_t =
input_addr,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;paddr_t =
output_addr)<br>&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uint64_t =
status;<br>- &nbsp;&nbsp;&nbsp;register unsigned long r8 asm ( "r8" ) =3D =
output_addr;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/* See TLFS =
for volatile registers */<br>- &nbsp;&nbsp;&nbsp;asm volatile ( "call =
hv_hcall_page"<br>+ &nbsp;&nbsp;&nbsp;asm volatile ( "mov =
%[output_addr], %%r8\n"<br></blockquote><br style=3D"caret-color: rgb(0, =
0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; =
font-variant-caps: normal; font-weight: 400; letter-spacing: normal; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
text-decoration: none;"><span style=3D"caret-color: rgb(0, 0, 0); =
font-family: Helvetica; font-size: 12px; font-style: normal; =
font-variant-caps: normal; font-weight: 400; letter-spacing: normal; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
text-decoration: none; float: none; display: inline !important;">Don't =
you need to list r8 as clobbered? &nbsp;Or maybe just retain the r8 =
handling above and below to avoid this mov.</span><br =
style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: =
12px; font-style: normal; font-variant-caps: normal; font-weight: 400; =
letter-spacing: normal; text-align: start; text-indent: 0px; =
text-transform: none; white-space: normal; word-spacing: 0px; =
-webkit-text-stroke-width: 0px; text-decoration: =
none;"></div></blockquote><div><br></div>This can probably mostly be =
reverted if we get the fixmap working.</div><div><br></div><div>The =
issue we were facing before was a situation where calling hv_hcall_page =
directly resulted in a page fault due to NX-bit being set on the =
page.</div><div><br><blockquote type=3D"cite"><div><blockquote =
type=3D"cite" style=3D"font-family: Helvetica; font-size: 12px; =
font-style: normal; font-variant-caps: normal; font-weight: 400; =
letter-spacing: normal; orphans: auto; text-align: start; text-indent: =
0px; text-transform: none; white-space: normal; widows: auto; =
word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: =
none;">+ =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"call =
*%[target_addr]"<br></blockquote><br style=3D"caret-color: rgb(0, 0, 0); =
font-family: Helvetica; font-size: 12px; font-style: normal; =
font-variant-caps: normal; font-weight: 400; letter-spacing: normal; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
text-decoration: none;"><span style=3D"caret-color: rgb(0, 0, 0); =
font-family: Helvetica; font-size: 12px; font-style: normal; =
font-variant-caps: normal; font-weight: 400; letter-spacing: normal; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
text-decoration: none; float: none; display: inline !important;">It =
might be preferable to retain a direct call which can still be installed =
with __set_fixmap_x. &nbsp;Otherwise, __set_fixmap_x can be =
removed</span><br style=3D"caret-color: rgb(0, 0, 0); font-family: =
Helvetica; font-size: 12px; font-style: normal; font-variant-caps: =
normal; font-weight: 400; letter-spacing: normal; text-align: start; =
text-indent: 0px; text-transform: none; white-space: normal; =
word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: =
none;"></div></blockquote><div><br></div>I think we should use fixmap, I =
just need to figure out what that looks =
like.</div><div><br></div><div>Will send v2 patch on =
Monday.</div><div><br></div><div>Ariadne</div></div></body></html>=

--Apple-Mail=_4E344AD7-DF61-4E9B-87DE-DB2FFF9CBABE--


From xen-devel-bounces@lists.xenproject.org Fri Apr 25 22:32:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 22:32:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.968732.1358207 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8RbE-0004wy-7A; Fri, 25 Apr 2025 22:32:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 968732.1358207; Fri, 25 Apr 2025 22: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 1u8RbE-0004wr-4E; Fri, 25 Apr 2025 22:32:48 +0000
Received: by outflank-mailman (input) for mailman id 968732;
 Fri, 25 Apr 2025 22:32: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=FJEZ=XL=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1u8RbC-0004wl-Fi
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 22:32:46 +0000
Received: from sender4-of-o50.zoho.com (sender4-of-o50.zoho.com
 [136.143.188.50]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 33dc716e-2225-11f0-9eb3-5ba50f476ded;
 Sat, 26 Apr 2025 00:32:44 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 1745620352081239.80620416230045;
 Fri, 25 Apr 2025 15:32:32 -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: 33dc716e-2225-11f0-9eb3-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; t=1745620355; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=buh0OfJbewPaveiRr4TXanXk54WRLkbIni7Qsb4gewx/KvKi+OgNGEHIB8Q/TZLKlQfS71oh0cXdfRmlx1hVZVjvG8KpY+izRxr3rP+4FHdsOFokWxVstolomKrYLW5bHA51nO/JiHgS4fNX1MBOrsvXJ3t3TKWFvvIHxpuS+zI=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1745620355; 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=eFlV5b2njNjufOlO07MaEi6D6dwi8/8CDWQ5e3NHaL0=; 
	b=ffgkMt1743jY2+QerVbNx+fD0A7LtlQZP8liO9RiAF90T2YpwpNSIV3GYCzAbrIRZfWmWqH4jHwKES3+CHrwNDVCON+s6FQvWR886yXzOot/LJlgWLAuUG77gUbt+d5S2pfvFKNejHBx6iUo5fRJF2+wX1f7RnvrJZXRo9q/bl4=
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=1745620355;
	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=eFlV5b2njNjufOlO07MaEi6D6dwi8/8CDWQ5e3NHaL0=;
	b=U9ijsq5+N9MFkDaGMF/Swc1bPJRkNatmBgSS7esif6SU4DkIw2YIM3X/2cKDh+pV
	p6rt30K8DelFKakln+ft/Ru25Y/XB3Wqspnvmy+wkZahT2Wlk49vbtmBYakZufG3p7D
	J3A266BSkhRfypsnxqBZuiCpU1yqlE8y3Og3DX9k=
Message-ID: <15e4ef59-183d-470b-b596-86f4b5e56bd4@apertussolutions.com>
Date: Fri, 25 Apr 2025 18:32:30 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 05/12] x86/hyperlaunch: locate dom0 kernel with
 hyperlaunch
Content-Language: en-US
To: Alejandro Vallejo <agarciav@amd.com>, xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>, Andrew Cooper
 <andrew.cooper3@citrix.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Jason Andryuk <jason.andryuk@amd.com>
References: <20250424161027.92942-1-agarciav@amd.com>
 <20250424161027.92942-6-agarciav@amd.com>
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
Autocrypt: addr=dpsmith@apertussolutions.com; keydata=
 xsJuBFYrueARCACPWL3r2bCSI6TrkIE/aRzj4ksFYPzLkJbWLZGBRlv7HQLvs6i/K4y/b4fs
 JDq5eL4e9BdfdnZm/b+K+Gweyc0Px2poDWwKVTFFRgxKWq9R7McwNnvuZ4nyXJBVn7PTEn/Z
 G7D08iZg94ZsnUdeXfgYdJrqmdiWA6iX9u84ARHUtb0K4r5WpLUMcQ8PVmnv1vVrs/3Wy/Rb
 foxebZNWxgUiSx+d02e3Ad0aEIur1SYXXv71mqKwyi/40CBSHq2jk9eF6zmEhaoFi5+MMMgX
 X0i+fcBkvmT0N88W4yCtHhHQds+RDbTPLGm8NBVJb7R5zbJmuQX7ADBVuNYIU8hx3dF3AQCm
 601w0oZJ0jGOV1vXQgHqZYJGHg5wuImhzhZJCRESIwf+PJxik7TJOgBicko1hUVOxJBZxoe0
 x+/SO6tn+s8wKlR1Yxy8gYN9ZRqV2I83JsWZbBXMG1kLzV0SAfk/wq0PAppA1VzrQ3JqXg7T
 MZ3tFgxvxkYqUP11tO2vrgys+InkZAfjBVMjqXWHokyQPpihUaW0a8mr40w9Qui6DoJj7+Gg
 DtDWDZ7Zcn2hoyrypuht88rUuh1JuGYD434Q6qwQjUDlY+4lgrUxKdMD8R7JJWt38MNlTWvy
 rMVscvZUNc7gxcmnFUn41NPSKqzp4DDRbmf37Iz/fL7i01y7IGFTXaYaF3nEACyIUTr/xxi+
 MD1FVtEtJncZNkRn7WBcVFGKMAf+NEeaeQdGYQ6mGgk++i/vJZxkrC/a9ZXme7BhWRP485U5
 sXpFoGjdpMn4VlC7TFk2qsnJi3yF0pXCKVRy1ukEls8o+4PF2JiKrtkCrWCimB6jxGPIG3lk
 3SuKVS/din3RHz+7Sr1lXWFcGYDENmPd/jTwr1A1FiHrSj+u21hnJEHi8eTa9029F1KRfocp
 ig+k0zUEKmFPDabpanI323O5Tahsy7hwf2WOQwTDLvQ+eqQu40wbb6NocmCNFjtRhNZWGKJS
 b5GrGDGu/No5U6w73adighEuNcCSNBsLyUe48CE0uTO7eAL6Vd+2k28ezi6XY4Y0mgASJslb
 NwW54LzSSM0uRGFuaWVsIFAuIFNtaXRoIDxkcHNtaXRoQGFwZXJ0dXNzb2x1dGlvbnMuY29t
 PsJ6BBMRCAAiBQJWK7ngAhsjBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRBTc6WbYpR8
 KrQ9AP94+xjtFfJ8gj5c7PVx06Zv9rcmFUqQspZ5wSEkvxOuQQEAg6qEsPYegI7iByLVzNEg
 7B7fUG7pqWIfMqFwFghYhQzOwU0EViu54BAIAL6MXXNlrJ5tRUf+KMBtVz1LJQZRt/uxWrCb
 T06nZjnbp2UcceuYNbISOVHGXTzu38r55YzpkEA8eURQf+5hjtvlrOiHxvpD+Z6WcpV6rrMB
 kcAKWiZTQihW2HoGgVB3gwG9dCh+n0X5OzliAMiGK2a5iqnIZi3o0SeW6aME94bSkTkuj6/7
 OmH9KAzK8UnlhfkoMg3tXW8L6/5CGn2VyrjbB/rcrbIR4mCQ+yCUlocuOjFCJhBd10AG1IcX
 OXUa/ux+/OAV9S5mkr5Fh3kQxYCTcTRt8RY7+of9RGBk10txi94dXiU2SjPbassvagvu/hEi
 twNHms8rpkSJIeeq0/cAAwUH/jV3tXpaYubwcL2tkk5ggL9Do+/Yo2WPzXmbp8vDiJPCvSJW
 rz2NrYkd/RoX+42DGqjfu8Y04F9XehN1zZAFmCDUqBMa4tEJ7kOT1FKJTqzNVcgeKNBGcT7q
 27+wsqbAerM4A0X/F/ctjYcKwNtXck1Bmd/T8kiw2IgyeOC+cjyTOSwKJr2gCwZXGi5g+2V8
 NhJ8n72ISPnOh5KCMoAJXmCF+SYaJ6hIIFARmnuessCIGw4ylCRIU/TiXK94soilx5aCqb1z
 ke943EIUts9CmFAHt8cNPYOPRd20pPu4VFNBuT4fv9Ys0iv0XGCEP+sos7/pgJ3gV3pCOric
 p15jV4PCYQQYEQgACQUCViu54AIbDAAKCRBTc6WbYpR8Khu7AP9NJrBUn94C/3PeNbtQlEGZ
 NV46Mx5HF0P27lH3sFpNrwD/dVdZ5PCnHQYBZ287ZxVfVr4Zuxjo5yJbRjT93Hl0vMY=
In-Reply-To: <20250424161027.92942-6-agarciav@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ZohoMailClient: External

On 4/24/25 12:10, Alejandro Vallejo wrote:
> From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
> 
> Look for a subnode of type `multiboot,kernel` within a domain node. If
> found, locate it using the multiboot module helper to generically ensure
> it lives in the module list. 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>
> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
> Signed-off-by: Alejandro Vallejo <agarciav@amd.com>
> ---
> v5:
>    * Add domain name to the error path on no-kernel.
> ---
>   xen/arch/x86/setup.c            |  1 +
>   xen/common/domain-builder/fdt.c | 64 +++++++++++++++++++++++++++++++--
>   2 files changed, 62 insertions(+), 3 deletions(-)
> 
> diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
> index bd13d9d196..7e756302ae 100644
> --- a/xen/arch/x86/setup.c
> +++ b/xen/arch/x86/setup.c
> @@ -1290,6 +1290,7 @@ void asmlinkage __init noreturn __start_xen(void)
>           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;
>           bi->hyperlaunch_enabled = false;
>       }
>   
> diff --git a/xen/common/domain-builder/fdt.c b/xen/common/domain-builder/fdt.c
> index 11f0436e85..662c715483 100644
> --- a/xen/common/domain-builder/fdt.c
> +++ b/xen/common/domain-builder/fdt.c
> @@ -99,9 +99,9 @@ static int __init fdt_prop_as_reg(const struct fdt_property *prop,
>    * @return              -EINVAL on malformed nodes, otherwise
>    *                      index inside `bi->mods`
>    */
> -int __init fdt_read_multiboot_module(const void *fdt, int node,
> -                                     int address_cells, int size_cells,
> -                                     struct boot_info *bi)
> +static int __init fdt_read_multiboot_module(const void *fdt, int node,
> +                                            int address_cells, int size_cells,
> +                                            struct boot_info *bi)

Shouldn't this belong to when the function was introduced? Though 
looking there, you push it out into the header? Guess the real question 
is it static or not?

>   {
>       const struct fdt_property *prop;
>       uint64_t addr, size;
> @@ -185,6 +185,52 @@ int __init fdt_read_multiboot_module(const void *fdt, int node,
>       return idx;
>   }
>   
> +static int __init process_domain_node(
> +    struct boot_info *bi, const 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) ?: "unknown";
> +    int address_cells = fdt_address_cells(fdt, dom_node);
> +    int size_cells = fdt_size_cells(fdt, dom_node);
> +
> +    fdt_for_each_subnode(node, fdt, dom_node)
> +    {
> +        if ( !fdt_node_check_compatible(fdt, node, "multiboot,kernel") )
> +        {
> +            int idx;
> +
> +            if ( bd->kernel )
> +            {
> +                printk(XENLOG_WARNING
> +                       "  duplicate kernel for domain %s\n", name);
> +                continue;
> +            }
> +
> +            idx = fdt_read_multiboot_module(fdt, node, address_cells,
> +                                            size_cells, bi);
> +            if ( idx < 0 )
> +            {
> +                printk(XENLOG_ERR
> +                       "  failed processing kernel for domain %s\n", name);
> +                return idx;
> +            }
> +
> +            printk(XENLOG_INFO "  kernel: multiboot-index=%d\n", idx);
> +            bi->mods[idx].type = BOOTMOD_KERNEL;
> +            bd->kernel = &bi->mods[idx];
> +        }
> +    }
> +
> +    if ( !bd->kernel )
> +    {
> +        printk(XENLOG_ERR "error: no kernel assigned to domain %s\n", name);
> +        return -ENODATA;
> +    }
> +
> +    return 0;
> +}
> +
>   static int __init find_hyperlaunch_node(const void *fdt)
>   {
>       int hv_node = fdt_path_offset(fdt, "/chosen/hypervisor");
> @@ -248,8 +294,20 @@ 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 "warning: only creating first %u domains\n",
> +                   MAX_NR_BOOTDOMS);
> +            break;
> +        }
> +
>           if ( !fdt_node_check_compatible(fdt, node, "xen,domain") )
> +        {
> +            if ( (ret = process_domain_node(bi, fdt, node)) < 0 )
> +                break;
> +
>               bi->nr_domains++;
> +        }
>       }
>   
>       /* Until multi-domain construction is added, throw an error */



From xen-devel-bounces@lists.xenproject.org Fri Apr 25 22:35:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 22:35:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.968744.1358217 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8Re2-0005Vm-Kb; Fri, 25 Apr 2025 22:35:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 968744.1358217; Fri, 25 Apr 2025 22: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 1u8Re2-0005Vf-Gb; Fri, 25 Apr 2025 22:35:42 +0000
Received: by outflank-mailman (input) for mailman id 968744;
 Fri, 25 Apr 2025 22: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=kyFG=XL=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u8Re1-0005VZ-Cy
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 22:35:41 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org
 [2600:3c0a:e001:78e:0:1991:8:25])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9c4f4d4c-2225-11f0-9ffb-bf95429c2676;
 Sat, 26 Apr 2025 00:35:39 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 7E0544ABFD;
 Fri, 25 Apr 2025 22:35:35 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id D7C4BC4CEE4;
 Fri, 25 Apr 2025 22:35: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: 9c4f4d4c-2225-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1745620537;
	bh=tuFWF+wkyAEf9ZS8PAUsWNEXafKzkNBvQx2bEzM70ks=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=TWpPeaRl9OU9QKbkeyPDgvvoOOeZFKKCvzTZ6mVruvN9eZPbTitYaeBhXnB25WaA4
	 nOw5Wek6A5vw6GkB2R3xNPHhj/6Q4aH0PNmn3tgmWVOc/f5q5TA4qma/DQXg2b7DNd
	 rluZElFLCIpjByJCWReMdYPXDT+4mj5BAXlxx5N6UGz2535MBmk3HxAdgCbSJ4o6IK
	 2PxNav+rbKtIKYbSHWJUkfDnzyrLgZgfdWliEc8ppmpMqWlWUsrYq+QknnM2wIUpHp
	 KZY6HFCVliS5H6u/qIKKXOSNcuN3TzRtVg56ox4k7/YaNYRQwLYCkpHwIeix+jHVB6
	 dTHZzZm8x5uEg==
Date: Fri, 25 Apr 2025 15:35:34 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: dmkhn@proton.me
cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com, 
    anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org, 
    michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org, 
    dmukhin@ford.com
Subject: Re: [PATCH v1 2/3] xen/console: introduce console_puts()
In-Reply-To: <20250403000604.169619-3-dmukhin@ford.com>
Message-ID: <alpine.DEB.2.22.394.2504251535230.785180@ubuntu-linux-20-04-desktop>
References: <20250403000604.169619-1-dmukhin@ford.com> <20250403000604.169619-3-dmukhin@ford.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Thu, 3 Apr 2025, dmkhn@proton.me wrote:
> From: Denis Mukhin <dmukhin@ford.com>
> 
> guest_console_write() duplicates the code from __putstr(), eliminate code
> duplication.
> 
> Introduce console_puts() for writing a buffer to console devices.
> 
> Also, introduce internal console flags to control which console devices
> should be used.
> 
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>

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




From xen-devel-bounces@lists.xenproject.org Fri Apr 25 22:42:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 22:42:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.968755.1358226 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8Rkg-0007j0-9I; Fri, 25 Apr 2025 22:42:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 968755.1358226; Fri, 25 Apr 2025 22:42: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 1u8Rkg-0007it-6m; Fri, 25 Apr 2025 22:42:34 +0000
Received: by outflank-mailman (input) for mailman id 968755;
 Fri, 25 Apr 2025 22:42: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=dbVn=XL=linaro.org=philmd@srs-se1.protection.inumbo.net>)
 id 1u8Rke-0007ik-26
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 22:42:32 +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 916b6eb1-2226-11f0-9ffb-bf95429c2676;
 Sat, 26 Apr 2025 00:42:29 +0200 (CEST)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-43ce71582e9so21179765e9.1
 for <xen-devel@lists.xenproject.org>; Fri, 25 Apr 2025 15:42:29 -0700 (PDT)
Received: from [192.168.69.169] (88-187-86-199.subs.proxad.net.
 [88.187.86.199]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3a073ca5219sm3545086f8f.27.2025.04.25.15.42.28
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 25 Apr 2025 15:42:28 -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: 916b6eb1-2226-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1745620949; x=1746225749; 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=2rbLStzN02M5iQRntjfJCOmskoQoKr2a9tppL9dGyE0=;
        b=N3f5oZA5ZwFUu3WyIMpUXUhi47xX9q3L+m066y5p7okRWm2vS8bW275K7CLD4OMEwz
         bjXL0n6FjmSu00fQilNIuFO8m15EF7l0btuqAKVWZqSVJvODPScZPPTegddU1MR5fw3d
         WnDKM9pzt4hSMc2LCTagRk4B1+IZwRMEwQ7ok5SvPiojZ17aKZQhwaRjJ51dw2PbAECt
         U62BLdyDYZnnIdmS+XQal/g6sGrMl7sabJx7EfqHt37L7cVE2OjAevx6caN43Nh2vWRO
         fsJbJjHJQLefIrShgq/GOj76xa1ifXtjMtPcx/BcLjCB2T8sI8o1sz8yHfJVY5a+5Ak0
         wZgw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745620949; x=1746225749;
        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=2rbLStzN02M5iQRntjfJCOmskoQoKr2a9tppL9dGyE0=;
        b=VzJ43oLstgPZPDc1C3kRKOWQEm3Mb9u3fYGkNdJLpMRX9hWllNr7k0xjUicA2OHp99
         /jdrYNbEbcFOD74SLBhauYLGgMs31qms4aBvD3RAMiwuO2M7P7zAHvpa+xZ7eB1Aft0o
         b2Jyb44dc81aTeiwTMmIX6inIZS++WmZAhpIpbtNMOjwpc9dhyY4t3xLKEcm6FCzUUIH
         jr8UW/Q66BVZHKmOAhQWm7/3zs8QKlXWPsu7tP5OsH09AHgXrnPv2OCkVoj+wp9t0Zqh
         AsPcxfaAjbQt+Rr4xbhqk1wqrBuwdyl15d1SsH+LcdoNUxNPNgYX0FhaVp8dFIftJP4z
         gSGA==
X-Forwarded-Encrypted: i=1; AJvYcCWHOYh3s/ejvolVlJnFCBAYXehkpxVRjZySLSGbekjg8JczNuiOrbqbKGAH1nBrEJ47AX9x3CSMxBg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwUI1YAYGagrpTFL5I4hJPmFNuTzxwkPsSALTsgOqhZeVCzO/w5
	ZQ13G6T0IemwvfJAEKcAbx5pHfcmz1i0Ym6iq6n7gD1J+v8aJytl0wAmpr7irhw=
X-Gm-Gg: ASbGncuDz1oO4NghCh7HiNcmhbdNxAo7SCJ/02iwMrwWcFta5IIgzQXoTo1vGYKUwcC
	ANwyHvUEdgkI8oNusgVvXAds2kkG5l1d6FnfbuDJVwcqwOYnX+xq7Atj6ABfV4yQUyqrK1vYXcX
	zSMVFnF/Ixq1qV5WSR67DxXckqCjB+yoGtnbI0m/Szj7LgHjilA3DMrmMtjauRth+w2FHqmMWck
	mmP5joKhgmVLppWI7+8qo8mbA+4tSlSMaUgWwnNll6OlC+Ry0UJ7Ylx4Wy9iGhjU3YRKfpL3Ez9
	Z4uq7yxTIP7GH/LXLcFEmZtNKRgnvgSNxpCn7mtYJOz6QKiNsdc0onQNaf5h1ksG553Dokw0q4W
	I2ZioFaTnyDxCj/3YlDo=
X-Google-Smtp-Source: AGHT+IHoi60J8kGJuJ4heN3is2CD0TZDRV+KjV20m/nS1r41fnVm46rDJa8MdeTOb/RHs7hxCM5gJg==
X-Received: by 2002:a05:6000:178f:b0:39e:cbf2:e23f with SMTP id ffacd0b85a97d-3a074d8f101mr3552075f8f.0.1745620949191;
        Fri, 25 Apr 2025 15:42:29 -0700 (PDT)
Message-ID: <8a93af10-e921-47b2-a051-e2df03929fe7@linaro.org>
Date: Sat, 26 Apr 2025 00:42:27 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 1/1] xen: mapcache: Split mapcache_grants by ro and rw
To: "Edgar E. Iglesias" <edgar.iglesias@gmail.com>, qemu-devel@nongnu.org,
 qemu-stable@nongnu.org
Cc: sstabellini@kernel.org, anthony@xenproject.org, paul@xen.org,
 edgar.iglesias@amd.com, xen-devel@lists.xenproject.org
References: <20250425143156.204452-1-edgar.iglesias@gmail.com>
 <20250425143156.204452-2-edgar.iglesias@gmail.com>
Content-Language: en-US
From: =?UTF-8?Q?Philippe_Mathieu-Daud=C3=A9?= <philmd@linaro.org>
In-Reply-To: <20250425143156.204452-2-edgar.iglesias@gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 25/4/25 16:31, Edgar E. Iglesias wrote:
> From: "Edgar E. Iglesias" <edgar.iglesias@amd.com>
> 
> Today, we don't track write-abiliy in the cache, if a user
> requests a readable mapping followed by a writeable mapping
> on the same page, the second lookup will incorrectly hit
> the readable entry.
> 
> Split mapcache_grants by ro and rw access. Grants will now
> have separate ways in the cache depending on writeability.
> 
> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@amd.com>
> ---
>   hw/xen/xen-mapcache.c | 26 +++++++++++++++++++-------
>   1 file changed, 19 insertions(+), 7 deletions(-)

Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>



From xen-devel-bounces@lists.xenproject.org Fri Apr 25 22:48:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 22:48:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.968767.1358237 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8Rpv-0008Iz-Sl; Fri, 25 Apr 2025 22:47:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 968767.1358237; Fri, 25 Apr 2025 22:47: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 1u8Rpv-0008Is-Pn; Fri, 25 Apr 2025 22:47:59 +0000
Received: by outflank-mailman (input) for mailman id 968767;
 Fri, 25 Apr 2025 22:47: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=kyFG=XL=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u8Rpv-0008Im-CC
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 22:47:59 +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 54de4543-2227-11f0-9eb3-5ba50f476ded;
 Sat, 26 Apr 2025 00:47:58 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 47FD05C6FD0;
 Fri, 25 Apr 2025 22:45:39 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id E033BC4CEE4;
 Fri, 25 Apr 2025 22:47: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: 54de4543-2227-11f0-9eb3-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1745621276;
	bh=4DyDDs99NXZezut37j9Az93ySzhfwA7FhvkGEOvQzW0=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=qvR3/UEaMc2Apwv5qgr64ERv6f1dVCTHMT4e2shb8VS3G0plqAnKspCThyYU7cW0g
	 aolDrZ7WecxQXqKK6H9zFe6WF66St7VTIX7QJXpqj4SKKxNdLjoWqntDsVlsBYb3jc
	 VhZkRacwq6P39x48DuyjvJebafLJRdVwNT31GhN5iZLc2hszL8g6rfm9EWundVJ4En
	 xK0eB8q79u+fXl3GA+LlNtRgQtjCB91p96UdI+20Ya03fULhc70caaLnV6qsYIiKXW
	 MQ10VWi8ip7IOtTxSNzBERjFJUi4dJjITjHj1KDxR/dac59p8XRftetTyMxkiroxr9
	 2ALoSiGwpGXcw==
Date: Fri, 25 Apr 2025 15:47:53 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: dmkhn@proton.me
cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com, 
    anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org, 
    michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org, 
    dmukhin@ford.com
Subject: Re: [PATCH v1 2/3] xen/console: introduce console_puts()
In-Reply-To: <20250403000604.169619-3-dmukhin@ford.com>
Message-ID: <alpine.DEB.2.22.394.2504251545480.785180@ubuntu-linux-20-04-desktop>
References: <20250403000604.169619-1-dmukhin@ford.com> <20250403000604.169619-3-dmukhin@ford.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Thu, 3 Apr 2025, dmkhn@proton.me wrote:
> From: Denis Mukhin <dmukhin@ford.com>
> 
> guest_console_write() duplicates the code from __putstr(), eliminate code
> duplication.
> 
> Introduce console_puts() for writing a buffer to console devices.
> 
> Also, introduce internal console flags to control which console devices
> should be used.
> 
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> ---
>  xen/drivers/char/console.c | 112 ++++++++++++++++++++++---------------
>  1 file changed, 66 insertions(+), 46 deletions(-)
> 
> diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
> index aaa97088aa..2618c2e47d 100644
> --- a/xen/drivers/char/console.c
> +++ b/xen/drivers/char/console.c
> @@ -41,6 +41,20 @@
>  #include <asm/vpl011.h>
>  #endif
>  
> +/* Internal console flags. */
> +enum {
> +    CONSOLE_SERIAL  = BIT(0, U),    /* Use serial device. */
> +    CONSOLE_PV      = BIT(1, U),    /* Use PV console. */
> +    CONSOLE_VIDEO   = BIT(2, U),    /* Use video device. */
> +    CONSOLE_DEBUG   = BIT(3, U),    /* Use debug device. */
> +    CONSOLE_RING    = BIT(4, U),    /* Use console ring. */
> +    CONSOLE_DEFAULT = CONSOLE_SERIAL | CONSOLE_PV | CONSOLE_VIDEO |
> +                      CONSOLE_DEBUG,
> +    CONSOLE_ALL     = CONSOLE_DEFAULT | CONSOLE_RING,
> +};
> +
> +static void console_puts(const char *str, size_t len, unsigned int flags);
> +
>  /* console: comma-separated list of console outputs. */
>  static char __initdata opt_console[30] = OPT_CONSOLE_STR;
>  string_param("console", opt_console);
> @@ -338,8 +352,6 @@ static bool console_locks_busted;
>  
>  static void conring_puts(const char *str, size_t len)
>  {
> -    ASSERT(rspin_is_locked(&console_lock));
> -
>      while ( len-- )
>          conring[CONRING_IDX_MASK(conringp++)] = *str++;
>  
> @@ -432,9 +444,6 @@ void console_serial_puts(const char *s, size_t nr)
>          serial_steal_fn(s, nr);
>      else
>          serial_puts(sercon_handle, s, nr);
> -
> -    /* Copy all serial output into PV console */
> -    pv_console_puts(s, nr);
>  }
>  
>  static void cf_check dump_console_ring_key(unsigned char key)
> @@ -468,8 +477,7 @@ static void cf_check dump_console_ring_key(unsigned char key)
>          c += len;
>      }
>  
> -    console_serial_puts(buf, sofar);
> -    video_puts(buf, sofar);
> +    console_puts(buf, sofar, CONSOLE_SERIAL | CONSOLE_VIDEO | CONSOLE_PV);

Actually I take back the R-b. It looks like this change is breaking
because console_puts now requires the console_lock to be held, while
here the console_lock is not held.

If I am not mistaken if you try to use the 'w' key with this patch
applied you'll hit the ASSERT at the beginning of console_puts


>      free_xenheap_pages(buf, order);
>  }
> @@ -618,11 +626,61 @@ static inline void xen_console_write_debug_port(const char *buf, size_t len)
>  }
>  #endif
>  
> +static inline void console_debug_puts(const char *str, size_t 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
> +}
> +
> +/*
> + * Write buffer to all enabled console devices.
> + *
> + * That will handle all possible scenarios working w/ console
> + * - physical console (serial console, VGA console (x86 only));
> + * - PV console;
> + * - debug console (x86 only): debug I/O port or __HYPERVISOR_console_io
> + *   hypercall;
> + * - console ring.
> + */
> +static void console_puts(const char *str, size_t len, unsigned int flags)
> +{
> +    ASSERT(rspin_is_locked(&console_lock));
> +
> +    if ( flags & CONSOLE_SERIAL )
> +        console_serial_puts(str, len);
> +
> +    if ( flags & CONSOLE_PV )
> +        pv_console_puts(str, len);
> +
> +    if ( flags & CONSOLE_VIDEO )
> +        video_puts(str, len);
> +
> +    if ( flags & CONSOLE_DEBUG )
> +        console_debug_puts(str, len);
> +
> +    if ( flags & CONSOLE_RING )
> +        conring_puts(str, len);
> +}
> +
> +static inline void __putstr(const char *str)
> +{
> +    console_puts(str, strlen(str), CONSOLE_ALL);
> +}
> +
>  static long guest_console_write(XEN_GUEST_HANDLE_PARAM(char) buffer,
>                                  unsigned int count)
>  {
>      char kbuf[128];
>      unsigned int kcount = 0;
> +    unsigned int flags = opt_console_to_ring
> +                         ? CONSOLE_ALL : CONSOLE_DEFAULT;
>      struct domain *cd = current->domain;
>  
>      while ( count > 0 )
> @@ -640,23 +698,7 @@ static long guest_console_write(XEN_GUEST_HANDLE_PARAM(char) buffer,
>          {
>              /* 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);
> -
> +            console_puts(kbuf, kcount, flags);
>              nrspin_unlock_irq(&console_lock);
>          }
>          else
> @@ -757,28 +799,6 @@ long do_console_io(
>   * *****************************************************
>   */
>  
> -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);
> -}
> -
>  static int printk_prefix_check(char *p, char **pp)
>  {
>      int loglvl = -1;
> -- 
> 2.34.1
> 
> 


From xen-devel-bounces@lists.xenproject.org Fri Apr 25 22:53:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 22:53:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.968779.1358246 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8Rv8-00025I-De; Fri, 25 Apr 2025 22:53:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 968779.1358246; Fri, 25 Apr 2025 22: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 1u8Rv8-00025B-B9; Fri, 25 Apr 2025 22:53:22 +0000
Received: by outflank-mailman (input) for mailman id 968779;
 Fri, 25 Apr 2025 22:53: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=kyFG=XL=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u8Rv7-000255-L5
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 22:53:21 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org
 [2600:3c04:e001:324:0:1991:8:25])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 103aa2cf-2228-11f0-9eb3-5ba50f476ded;
 Sat, 26 Apr 2025 00:53:12 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 4E98B61136;
 Fri, 25 Apr 2025 22:52:48 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 43A16C4CEE4;
 Fri, 25 Apr 2025 22:53: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: 103aa2cf-2228-11f0-9eb3-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1745621590;
	bh=yTtrrDaW1P20Qbv4JoXB9aTWanUig3L3OgoFL4bbTyY=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=oniAvwowpn/fS0qazRJu63/n3fNsAmWb6qTuWW1DkS4riMRWLGInd1RuHhkf7AEPr
	 jQlUTXtA/LeLUeMayQimyt5iRtvykFrwCJFw9rl1eJWcBXDVnT5URusZf9o41V32xu
	 meioYzVRUX+gOq0xwUCnv0xLbP5Uy3XJN9y8+BlHeqsQDRLI6BUwRdhR3O0eIi6hsZ
	 4hl+F5JSrLwjfgof7B690zTFmCgCD8m13YVL3ax0isrXdop2YWbA77TfNkHyEPm66i
	 fmOgm9Fosnkpg7PfqLdY9I9lclRnIXDF4lzZRWvGBY7qsXEI/rVaYZNcliXxsbVBZv
	 nzUlNexAESvRQ==
Date: Fri, 25 Apr 2025 15:53:07 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: dmkhn@proton.me
cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com, 
    anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org, 
    michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org, 
    dmukhin@ford.com
Subject: Re: [PATCH v1 3/3] xen/console: introduce conring_flush()
In-Reply-To: <20250403000604.169619-4-dmukhin@ford.com>
Message-ID: <alpine.DEB.2.22.394.2504251552180.785180@ubuntu-linux-20-04-desktop>
References: <20250403000604.169619-1-dmukhin@ford.com> <20250403000604.169619-4-dmukhin@ford.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Thu, 3 Apr 2025, dmkhn@proton.me wrote:
> From: Denis Mukhin <dmukhin@ford.com>
> 
> Introduce conring_flush() to ensure all messages kept in the internal
> console ring are sent to all physical consoles (serial, VGA (x86))
> after their initialization is completed.
> 
> Resolves: https://gitlab.com/xen-project/xen/-/issues/184
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> ---
> The patch conflicts with
>   https://lore.kernel.org/xen-devel/20250331230508.440198-7-dmukhin@ford.com/
> in console_init_preirq()
> ---
>  xen/drivers/char/console.c | 34 ++++++++++++++++++++++++----------
>  1 file changed, 24 insertions(+), 10 deletions(-)
> 
> diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
> index 2618c2e47d..18eb66df89 100644
> --- a/xen/drivers/char/console.c
> +++ b/xen/drivers/char/console.c
> @@ -446,24 +446,22 @@ void console_serial_puts(const char *s, size_t nr)
>          serial_puts(sercon_handle, s, nr);
>  }
>  
> -static void cf_check dump_console_ring_key(unsigned char key)
> +/*
> + * Flush contents of the conring to the physical console devices.
> + */
> +static int conring_flush(void)
>  {
>      uint32_t idx, len, sofar, c;
>      unsigned int order;
>      char *buf;
> +    unsigned long flags;
>  
> -    printk("'%c' pressed -> dumping console ring buffer (dmesg)\n", key);
> -
> -    /* create a buffer in which we'll copy the ring in the correct
> -       order and NUL terminate */
>      order = get_order_from_bytes(conring_size + 1);
>      buf = alloc_xenheap_pages(order, 0);
>      if ( buf == NULL )
> -    {
> -        printk("unable to allocate memory!\n");
> -        return;
> -    }
> +        return -ENOMEM;
>  
> +    flags = console_lock_recursive_irqsave();

This patch is OK but it looks like this bit might have to change to
rebase on top of a modified patch #2


>      c = conringc;
>      sofar = 0;
>      while ( (c != conringp) )
> @@ -478,8 +476,21 @@ static void cf_check dump_console_ring_key(unsigned char key)
>      }
>  
>      console_puts(buf, sofar, CONSOLE_SERIAL | CONSOLE_VIDEO | CONSOLE_PV);
> +    console_unlock_recursive_irqrestore(flags);
>  
>      free_xenheap_pages(buf, order);
> +
> +    return 0;
> +}
> +
> +static void cf_check conring_dump_keyhandler(unsigned char key)
> +{
> +    int rc;
> +
> +    printk("'%c' pressed -> dumping console ring buffer (dmesg)\n", key);
> +    rc = conring_flush();
> +    if ( rc )
> +        printk("failed to dump console ring buffer: %d\n", rc);
>  }
>  
>  /*
> @@ -1044,6 +1055,9 @@ void __init console_init_preirq(void)
>      serial_set_rx_handler(sercon_handle, serial_rx);
>      pv_console_set_rx_handler(serial_rx);
>  
> +    /* NB: send conring contents to all enabled physical consoles, if any */
> +    conring_flush();
> +
>      /* HELLO WORLD --- start-of-day banner text. */
>      nrspin_lock(&console_lock);
>      __putstr(xen_banner());
> @@ -1134,7 +1148,7 @@ void __init console_endboot(void)
>      if ( opt_conswitch[1] == 'x' )
>          console_rx = max_console_rx;
>  
> -    register_keyhandler('w', dump_console_ring_key,
> +    register_keyhandler('w', conring_dump_keyhandler,
>                          "synchronously dump console ring buffer (dmesg)", 0);
>      register_irq_keyhandler('+', &do_inc_thresh,
>                              "increase log level threshold", 0);
> -- 
> 2.34.1
> 
> 


From xen-devel-bounces@lists.xenproject.org Fri Apr 25 23:35:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 23:35:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.968801.1358257 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8SZe-00010Y-ID; Fri, 25 Apr 2025 23:35:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 968801.1358257; Fri, 25 Apr 2025 23: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 1u8SZe-00010R-Ep; Fri, 25 Apr 2025 23:35:14 +0000
Received: by outflank-mailman (input) for mailman id 968801;
 Fri, 25 Apr 2025 23:35: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=kyFG=XL=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u8SZd-00010K-9D
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 23:35:13 +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 ed075aeb-222d-11f0-9ffb-bf95429c2676;
 Sat, 26 Apr 2025 01:35:10 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 5905B5C6FAA;
 Fri, 25 Apr 2025 23:32:51 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 39D2CC4CEE4;
 Fri, 25 Apr 2025 23:35: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: ed075aeb-222d-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1745624108;
	bh=MjtOR4HaE3y9+hDtoXst6AVBJ2AUMDHy601qwGQt5MA=;
	h=Date:From:To:cc:Subject:From;
	b=steESDQCV19QFpMwAat4LgWYnzdmaIGsZmaAdSDHh35ZHGvkxl9xL2S5iwnCq31XO
	 1JJFgm15MNWyah7SleZGuLNn4rqkRWxghUZBGrTzu85OND+A4CP9+A7ZBzOrO8l65I
	 dQ+Eg4taw2HK0IUJRhlRPiAWG2keRYrOOXcHuxkk/YnkcYY250+fx34oK87cYDg+Zl
	 7zXU0LIKIwxTxPXZP9uLd5dF84k8337TYMul/0COeIUiGYpUdzFSttO/rgXDs0ecb5
	 J94Se/VtiLK0IzR16CnTQ9n391trw31Zx7aaHHSgAqLz8GuUytWA5/KoQkWF2uD0Si
	 ia+wWI2nTjE3Q==
Date: Fri, 25 Apr 2025 16:35:06 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: xen-devel@lists.xenproject.org
cc: Andrei Cherechesu <andrei.cherechesu@nxp.com>, sstabellini@kernel.org, 
    michal.orzel@amd.com, jason.andryuk@amd.com, dmkhn@proton.me
Subject: [PATCH v7] uboot-script-gen: Dynamically compute addr and size when
 loading binaries
Message-ID: <alpine.DEB.2.22.394.2504251631190.785180@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

From: Andrei Cherechesu <andrei.cherechesu@oss.nxp.com>

Normally, the Imagebuilder would precompute the sizes of the loaded
binaries and addresses where they are loaded before generating the
script, and the sizes and addresses that needed to be provided to
Xen via /chosen would be hardcoded in the boot script.

Added an option via "-s" parameter to avoid hardcoding any
address in the boot script, and dynamically compute the
loading addresses for binaries. The first loading address is based
on the MEMORY_START parameter and after loading each binary,
the loading address and the size of the binary are stored in
variables with corresponding names. Then, the loading address
for the next binary is computed and aligned to 0x200000.

If the "-s" parameter is not used, the normal flow is executed,
where the loading addresses and sizes for each binaries are
precomputed and hardcoded inside the script, but the loading
addresses and sizes for each binary are now also stored for eventual
later use.

Reserved memory regions are left TBD in the -s case.

Link: https://lists.xenproject.org/archives/html/xen-devel/2022-09/msg01862.html
Signed-off-by: Andrei Cherechesu <andrei.cherechesu@nxp.com>
Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
---
Changes in v7:
- use $()
- better description and alphabetical order
- use heredoc

Changes in v6:
- make initial ${memaddr} setting depending on CALC

This patch adds quite a bit of complexity which is the reason why I
didn't originally commit it. Now that we are enabling ImageBuilder in
Yocto, it turns out this patch is required because Yocto invokes
ImageBuilder before all the binaries are ready and available.

Andrei, sorry for taking so long to realize why it is essential, but we
are getting there now.

The changes I made to the original patch are purely to make it simpler
to maintain.
---

diff --git a/README.md b/README.md
index f8039ec..28c9e6b 100644
--- a/README.md
+++ b/README.md
@@ -356,6 +356,8 @@ Where:\
    can only be used  in combination with the -k option.  This adds the
    public key into the dtb.  Then one can add this dtb back into the
    u-boot bin or elf.\
+-s addresses and sizes are calculated dynamically from U-Boot, hence
+   binaries don't need to be available at the time of invocation.\
 
 ### Signed FIT images
 
diff --git a/scripts/uboot-script-gen b/scripts/uboot-script-gen
index 638154a..73d9600 100755
--- a/scripts/uboot-script-gen
+++ b/scripts/uboot-script-gen
@@ -1,8 +1,11 @@
 #!/bin/bash
 
 offset=$((2*1024*1024))
+PADDING_MASK=$(printf "0x%X\n" $(($offset - 1)))
+PADDING_MASK_INV=$(printf "0x%X\n" $((~$PADDING_MASK)))
 filesize=0
 prog_req=(mkimage file fdtput mktemp awk od)
+CALC=""
 
 function cleanup_and_return_err()
 {
@@ -100,17 +103,40 @@ function dt_set()
     fi
 }
 
+function dt_set_calc()
+{
+    local path=$1
+    local var=$2
+    local name_var=$3
+ 
+    local addr_var="$name_var"_addr
+    local size_var="$name_var"_size
+
+    cat >> $UBOOT_SOURCE <<- EOF
+	setexpr addr_hi \${$addr_var} / 0x100000000
+	setexpr addr_lo \${$addr_var} \& 0xFFFFFFFF
+	setexpr size_hi \${$size_var} / 0x100000000
+	setexpr size_lo \${$size_var} \& 0xFFFFFFFF
+	fdt set $path $var <0x\${addr_hi} 0x\${addr_lo} 0x\${size_hi} 0x\${size_lo}>
+	EOF
+}
+
 function add_device_tree_kernel()
 {
     local path=$1
-    local addr=$2
-    local size=$3
-    local bootargs=$4
+    local name=$2
+    local addr=$3
+    local size=$4
+    local bootargs=$5
     local node_name="module@${addr#0x}"
 
     dt_mknode "$path" "$node_name"
     dt_set "$path/$node_name" "compatible" "str_a" "multiboot,kernel multiboot,module"
-    dt_set "$path/$node_name" "reg" "hex"  "$(split_addr_size $addr $size)"
+    if test "$CALC"; then
+        dt_set_calc "$path/$node_name" "reg" $name
+    else
+        dt_set "$path/$node_name" "reg" "hex"  "$(split_addr_size $addr $size)"
+    fi
     dt_set "$path/$node_name" "bootargs" "str" "$bootargs"
 }
 
@@ -118,26 +144,36 @@ function add_device_tree_kernel()
 function add_device_tree_ramdisk()
 {
     local path=$1
-    local addr=$2
-    local size=$3
+    local name=$2
+    local addr=$3
+    local size=$4
     local node_name="module@${addr#0x}"
 
     dt_mknode "$path"  "$node_name"
     dt_set "$path/$node_name" "compatible" "str_a" "multiboot,ramdisk multiboot,module"
-    dt_set "$path/$node_name" "reg" "hex"  "$(split_addr_size $addr $size)"
+    if test "$CALC"; then
+        dt_set_calc "$path/$node_name" "reg" $name
+    else
+        dt_set "$path/$node_name" "reg" "hex"  "$(split_addr_size $addr $size)"
+    fi
 }
 
 
 function add_device_tree_passthrough()
 {
     local path=$1
-    local addr=$2
-    local size=$3
+    local name=$2
+    local addr=$3
+    local size=$4
     local node_name="module@${addr#0x}"
 
     dt_mknode "$path"  "$node_name"
     dt_set "$path/$node_name" "compatible" "str_a" "multiboot,device-tree multiboot,module"
-    dt_set "$path/$node_name" "reg" "hex"  "$(split_addr_size $addr $size)"
+    if test "$CALC"; then
+        dt_set_calc "$path/$node_name" "reg" $name
+    else
+        dt_set "$path/$node_name" "reg" "hex"  "$(split_addr_size $addr $size)"
+    fi
 }
 
 function add_device_tree_mem()
@@ -358,7 +394,11 @@ function xen_device_tree_editing()
 
         dt_mknode "/chosen" "$node_name"
         dt_set "/chosen/$node_name" "compatible" "str_a" "xen,xsm-policy xen,multiboot-module multiboot,module"
-        dt_set "/chosen/$node_name" "reg" "hex" "$(split_addr_size $xen_policy_addr $xen_policy_size)"
+        if test "$CALC"; then
+            dt_set_calc "/chosen/$node_name" "reg" "xen_policy"
+        else
+            dt_set "/chosen/$node_name" "reg" "hex" "$(split_addr_size $xen_policy_addr $xen_policy_size)"
+        fi
     fi
 
     if test "$DOM0_KERNEL"
@@ -367,7 +407,11 @@ function xen_device_tree_editing()
 
         dt_mknode "/chosen" "$node_name"
         dt_set "/chosen/$node_name" "compatible" "str_a" "xen,linux-zimage xen,multiboot-module multiboot,module"
-        dt_set "/chosen/$node_name" "reg" "hex" "$(split_addr_size $dom0_kernel_addr $dom0_kernel_size)"
+        if test "$CALC"; then
+            dt_set_calc "/chosen/$node_name" "reg" "dom0_linux"
+        else
+            dt_set "/chosen/$node_name" "reg" "hex" "$(split_addr_size $dom0_kernel_addr $dom0_kernel_size)"
+        fi
         dt_set "/chosen" "xen,dom0-bootargs" "str" "$DOM0_CMD"
     fi
 
@@ -377,7 +421,11 @@ function xen_device_tree_editing()
 
         dt_mknode "/chosen" "$node_name"
         dt_set "/chosen/$node_name" "compatible" "str_a" "xen,linux-initrd xen,multiboot-module multiboot,module"
-        dt_set "/chosen/$node_name" "reg" "hex" "$(split_addr_size $ramdisk_addr $ramdisk_size)"
+        if test "$CALC"; then
+            dt_set_calc "/chosen/$node_name" "reg" "dom0_ramdisk"
+        else
+            dt_set "/chosen/$node_name" "reg" "hex" "$(split_addr_size $ramdisk_addr $ramdisk_size)"
+        fi
     fi
 
     i=0
@@ -464,14 +512,14 @@ function xen_device_tree_editing()
 
         xen_dt_domu_add_vcpu_nodes "/chosen/domU$i" $i ${DOMU_VCPUS[$i]}
 
-        add_device_tree_kernel "/chosen/domU$i" ${domU_kernel_addr[$i]} ${domU_kernel_size[$i]} "${DOMU_CMD[$i]}"
+        add_device_tree_kernel "/chosen/domU$i" "domU${i}_kernel" ${domU_kernel_addr[$i]} ${domU_kernel_size[$i]} "${DOMU_CMD[$i]}"
         if test "${domU_ramdisk_addr[$i]}"
         then
-            add_device_tree_ramdisk "/chosen/domU$i" ${domU_ramdisk_addr[$i]} ${domU_ramdisk_size[$i]}
+            add_device_tree_ramdisk "/chosen/domU$i" "domU${i}_ramdisk" ${domU_ramdisk_addr[$i]} ${domU_ramdisk_size[$i]}
         fi
         if test "${domU_passthrough_dtb_addr[$i]}"
         then
-            add_device_tree_passthrough "/chosen/domU$i" ${domU_passthrough_dtb_addr[$i]} ${domU_passthrough_dtb_size[$i]}
+            add_device_tree_passthrough "/chosen/domU$i" "domU${i}_fdt" ${domU_passthrough_dtb_addr[$i]} ${domU_passthrough_dtb_size[$i]}
         fi
         i=$(( $i + 1 ))
     done
@@ -504,7 +552,11 @@ function device_tree_editing()
 
     if test $UBOOT_SOURCE
     then
-        echo "fdt addr $device_tree_addr" >> $UBOOT_SOURCE
+        if test "$CALC"; then
+            echo "fdt addr \${host_fdt_addr}" >> $UBOOT_SOURCE
+        else
+            echo "fdt addr $device_tree_addr" >> $UBOOT_SOURCE
+        fi
         echo "fdt resize 1024" >> $UBOOT_SOURCE
 
         if test $NUM_DT_OVERLAY && test $NUM_DT_OVERLAY -gt 0
@@ -512,7 +564,11 @@ function device_tree_editing()
             i=0
             while test $i -lt $NUM_DT_OVERLAY
             do
-                echo "fdt apply ${dt_overlay_addr[$i]}" >> $UBOOT_SOURCE
+                if test "$CALC"; then
+                    echo "fdt apply \${host_fdto${i}_addr}" >> $UBOOT_SOURCE
+                else
+                    echo "fdt apply ${dt_overlay_addr[$i]}" >> $UBOOT_SOURCE
+                fi
                 i=$(( $i + 1 ))
             done
         fi
@@ -530,8 +586,12 @@ function fill_reserved_spaces_from_dtb()
 {
     if [ ! -f $DEVICE_TREE ]
     then
-        echo "File $DEVICE_TREE doesn't exist, exiting";
-        cleanup_and_return_err
+        if test "$CALC"; then
+            return
+        else
+            echo "File $DEVICE_TREE doesn't exist, exiting";
+            cleanup_and_return_err
+        fi
     fi
 
     # Check if reserved-memory node exists
@@ -613,7 +673,7 @@ function get_image_size()
     printf "%u" $effective_size
 }
 
-function add_size()
+function add_size_from_file()
 {
     local filename=$1
     local size=`stat -L --printf="%s" $filename`
@@ -645,6 +705,26 @@ function add_size()
     filesize=$size
 }
 
+function add_size_calculate()
+{
+    local fit_scr_name=$1
+
+    cat >> $UBOOT_SOURCE <<- EOF
+	setenv "$fit_scr_name"_addr \${memaddr}
+	setenv "$fit_scr_name"_size \${filesize}
+	setexpr memaddr \${memaddr} \+ \${filesize}
+	setexpr memaddr \${memaddr} \+ $PADDING_MASK
+	setexpr memaddr \${memaddr} \& $PADDING_MASK_INV
+	EOF
+
+    # TODO: missing ${RESERVED_MEM_SPACES[@]} check
+
+    # The following are updated to avoid collisions in node names, but
+    # they are not actively used.
+    memaddr=$((memaddr + offset))
+    filesize=$offset
+}
+
 function load_file()
 {
     local filename=$1
@@ -657,10 +737,16 @@ function load_file()
     if test "$FIT"
     then
         echo "imxtract \$fit_addr $fit_scr_name $memaddr" >> $UBOOT_SOURCE
+        add_size_from_file $filename
     else
-        echo "$LOAD_CMD $memaddr ${prepend_path:+$prepend_path/}$relative_path" >> $UBOOT_SOURCE
+        if test "$CALC"; then
+            echo "$LOAD_CMD \${memaddr} ${prepend_path:+$prepend_path/}$relative_path" >> $UBOOT_SOURCE
+            add_size_calculate $fit_scr_name
+        else
+            echo "$LOAD_CMD $memaddr ${prepend_path:+$prepend_path/}$relative_path" >> $UBOOT_SOURCE
+            add_size_from_file $filename
+        fi
     fi
-    add_size $filename
 }
 
 function check_file_type()
@@ -670,8 +756,13 @@ function check_file_type()
 
     if [ ! -f $filename ]
     then
-        echo "File $filename doesn't exist, exiting";
-        cleanup_and_return_err
+        if test "$CALC"
+        then
+            return
+        else
+            echo "File $filename doesn't exist, exiting";
+            cleanup_and_return_err
+        fi
     fi
 
     # if file doesn't know what it is, it outputs data, so include that
@@ -705,8 +796,13 @@ function check_compressed_file_type()
 
     if [ ! -f $filename ]
     then
-        echo "File $filename doesn't exist, exiting";
-        cleanup_and_return_err
+        if test "$CALC"
+        then
+            return
+        else
+            echo "File $filename doesn't exist, exiting";
+            cleanup_and_return_err
+        fi
     fi
 
     file_type=$( file -L $filename )
@@ -872,6 +968,12 @@ function linux_config()
 generate_uboot_images()
 {
     local arch=$(file -L $XEN | grep -E 'ARM64|Aarch64')
+    
+    if test "$CALC"
+    then
+        echo "bootm is not compatible with -s"
+        cleanup_and_return_err
+    fi
 
     if test "$arch"
     then
@@ -997,7 +1099,11 @@ bitstream_load_and_config()
         if test "$UBOOT_SOURCE"
         then
             # we assume the FPGA device is 0 here
-            echo "fpga load 0 $bitstream_addr $bitstream_size" >> "$UBOOT_SOURCE"
+            if test "$CALC"; then
+                echo "fpga load 0 \${fpga_bitstream_addr} \${fpga_bitstream_size}" >> "$UBOOT_SOURCE"
+            else
+                echo "fpga load 0 $bitstream_addr $bitstream_size" >> "$UBOOT_SOURCE"
+            fi
         fi
     fi
 }
@@ -1271,7 +1377,7 @@ function print_help
 {
     script=`basename "$0"`
     echo "usage:"
-    echo "	$script -c CONFIG_FILE -d DIRECTORY [-t LOAD_CMD] [-o FILE] [-k KEY_DIR/HINT [-u U-BOOT_DTB]] [-e] [-f] [-p PREPEND_PATH]"
+    echo "	$script -c CONFIG_FILE -d DIRECTORY [-t LOAD_CMD] [-o FILE] [-k KEY_DIR/HINT [-u U-BOOT_DTB]] [-e] [-f] [-p PREPEND_PATH] [-s]"
     echo "	$script -h"
     echo "where:"
     echo "	CONFIG_FILE - configuration file"
@@ -1289,13 +1395,14 @@ function print_help
     echo "	-f - enable generating a FIT image"
     echo "	PREPEND_PATH - path to be appended before file names to match deploy location within rootfs"
     echo "	-h - prints out the help message and exits "
+    echo "	-s - let U-Boot calculate binary images load addresses/sizes dynamically"
     echo "Defaults:"
     echo "	CONFIG_FILE=$cfg_file, UBOOT_TYPE=\"LOAD_CMD\" env var, DIRECTORY=$uboot_dir"
     echo "Example:"
     echo "	$script -c ../config -d ./build42 -t \"scsi load 1:1\""
 }
 
-while getopts ":c:t:d:ho:k:u:fp:" opt; do
+while getopts ":c:t:d:ho:k:u:fp:s" opt; do
     case ${opt} in
     t )
         case $OPTARG in
@@ -1340,6 +1447,9 @@ while getopts ":c:t:d:ho:k:u:fp:" opt; do
     p )
         prepend_path="$OPTARG"
         ;;
+    s )
+        CALC=y
+        ;;
     h )
         print_help
         exit 0
@@ -1533,6 +1643,10 @@ uboot_addr=$memaddr
 # 2MB are enough for a uboot script
 memaddr=$(( $memaddr + $offset ))
 memaddr=`printf "0x%X\n" $memaddr`
+if test "$CALC"
+then
+    echo "setenv memaddr $memaddr" >> $UBOOT_SOURCE
+fi
 
 fill_reserved_spaces_from_dtb
 
@@ -1583,7 +1697,11 @@ fi
 
 if [ "$BOOT_CMD" != "none" ]
 then
-    echo "$BOOT_CMD $kernel_addr $([ "$BOOT_CMD" = "bootefi" ] || echo '-') $device_tree_addr" >> $UBOOT_SOURCE
+    if test "$CALC"; then
+        echo "$BOOT_CMD \${host_kernel_addr} $([ "$BOOT_CMD" = "bootefi" ] || echo '-') \${host_fdt_addr}" >> $UBOOT_SOURCE
+    else
+        echo "$BOOT_CMD $kernel_addr $([ "$BOOT_CMD" = "bootefi" ] || echo '-') $device_tree_addr" >> $UBOOT_SOURCE
+    fi
 else
     # skip boot command but store load addresses to be used later
     echo "setenv host_kernel_addr $kernel_addr" >> $UBOOT_SOURCE


From xen-devel-bounces@lists.xenproject.org Fri Apr 25 23:43:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 23:43:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.968816.1358267 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8Shl-0002y2-68; Fri, 25 Apr 2025 23:43:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 968816.1358267; Fri, 25 Apr 2025 23:43: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 1u8Shl-0002xv-3O; Fri, 25 Apr 2025 23:43:37 +0000
Received: by outflank-mailman (input) for mailman id 968816;
 Fri, 25 Apr 2025 23:43: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=/n1b=XL=amd.com=VictorM.Lira@srs-se1.protection.inumbo.net>)
 id 1u8Shj-0002xO-EK
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 23:43:35 +0000
Received: from NAM10-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam10on20611.outbound.protection.outlook.com
 [2a01:111:f403:2413::611])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 180f914f-222f-11f0-9eb3-5ba50f476ded;
 Sat, 26 Apr 2025 01:43:32 +0200 (CEST)
Received: from MW4PR02CA0021.namprd02.prod.outlook.com (2603:10b6:303:16d::31)
 by PH7PR12MB5653.namprd12.prod.outlook.com (2603:10b6:510:132::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.22; Fri, 25 Apr
 2025 23:43:27 +0000
Received: from CY4PEPF0000EE31.namprd05.prod.outlook.com
 (2603:10b6:303:16d:cafe::45) by MW4PR02CA0021.outlook.office365.com
 (2603:10b6:303:16d::31) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.40 via Frontend Transport; Fri,
 25 Apr 2025 23:43:27 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CY4PEPF0000EE31.mail.protection.outlook.com (10.167.242.37) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Fri, 25 Apr 2025 23:43:26 +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, 25 Apr
 2025 18:43:25 -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, 25 Apr
 2025 18:43:25 -0500
Received: from xsjstefanos51.xilinx.com (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; Fri, 25 Apr 2025 18:43:24 -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: 180f914f-222f-11f0-9eb3-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=hlOIj9rznXBaAV6/STA8DdCZy96od1IYBHYtotRxc/RyF1GQb602oHc90vh44fTZexmPYmMR4Ene+nv19Fj7ZJH1Jj3BLWuXjCpaaqdU8dJWRIH4m6qnh82jzeSOu1fj00MtGqMI3GF+iuNtWHqMl56gEBG5k+Hy0Xy5YL9lWkU0w708YZhNwXORK3y7xMs4RfLOhkEeA4DRhigII5LlNL8raTUMx3suWXJ0v5hFqcFdyZVPbu7OVH7FdDU9kLHAYW5CLnwolSY6Nw9PwXNIoloU9/xbW9UPLFYK3xkfh7DAMhbZQ02yigieAMFiEQ4XOgSVYqY49HN+dOXdjfli6Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=N7c+2iaVkAQtkWehQ13fcy/pOtZ7NzflbIurrJtmhsw=;
 b=ton7HMwRj3/sggU1/lzrgsD2JGC+6w6kZ0Rszu4sT+BxiuioO3MS37xG6dkE+lqqp39XfVvdZiM6+F48WE3AOoWqjp7xy3Qu+UnTNmUsxB3DkviWZ/QpbAX0gXRCqmoZyMTuJj0kCKQW3MuFToGxm13UMxQUZdz9LH1mGvxVWY6y9z5r09mAG3L1O+hf47RoukVBSZN2QQ/B0DEBa0gphHboJDVSCBX0eZZFYCIpyfhVcmDwAfD3O8EyPl6GiC4AKqG5awG15BIeQVsMnhASnpZeMvUDhV4R74aGrmMQFTOBKKPuXol8Wo89elg4titVuDVc2opgpeXKN3v7oBRdJQ==
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=N7c+2iaVkAQtkWehQ13fcy/pOtZ7NzflbIurrJtmhsw=;
 b=ounw14a1n8lhHrC7tV5HsGQmfMFOzBIiM/2FQ61KawAhDm6cAZgPl0NbgVIyd0ygXThReoCfzxKLYhA2tS2dc6d6K4VKOZfG3X9HodRoTmKWoua4gYGRlx9KnRmJiJyg3fqJQfRrfqvpAq6twRV/2EgPFZKQcVZ60aceYADxTc0=
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: <victorm.lira@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Nicola Vetrini <nicola.vetrini@bugseng.com>, Federico Serafini
	<federico.serafini@bugseng.com>, Victor Lira <victorm.lira@amd.com>, "Andrew
 Cooper" <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, "Stefano
 Stabellini" <sstabellini@kernel.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>
Subject: [PATCH v1 1/3] x86: x86_emulate: address violations of MISRA C Rule 19.1
Date: Fri, 25 Apr 2025 16:42:36 -0700
Message-ID: <c694069696dd428bc1719e36c378a573b03f74b9.1745624090.git.victorm.lira@amd.com>
X-Mailer: git-send-email 2.47.0
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
Received-SPF: None (SATLEXMB05.amd.com: victorm.lira@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CY4PEPF0000EE31:EE_|PH7PR12MB5653:EE_
X-MS-Office365-Filtering-Correlation-Id: 389ac9c0-8c85-4d12-389b-08dd8452f97b
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|376014|1800799024|36860700013|7416014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?L2gzK3Bvajk5TFVDdUpJTnNGakxtUTFZMVRlcEFHM3BNV1JoWFR5dFdELzRH?=
 =?utf-8?B?cndHZDN3a3oyeFNUNVErT05xaDNoNm1FdzhBdU90bE41L1p5R09jT1JzNU91?=
 =?utf-8?B?dUVGa3hTcjlWUmFKUGVqdXYzakQ5NXJKRnBVbElXL24yTGlLZUx1ODJwNmZu?=
 =?utf-8?B?MzZTdEpHZFVIaTR5RW5nUXZHS2FieGszdjkzdnY0SHRGNXl5OWhhZmRYTXEy?=
 =?utf-8?B?STFVT091Vm8rTWNGMmVEWWpsbFFMbHBPOFRhaHFRNzFWdm9jdXZkRnlDWW54?=
 =?utf-8?B?WlY2TTY3VFVtRFBsOWQvV2pYSzdXRHZGK3V0S3pRdlFGN1RwdUlWcjJYUHlW?=
 =?utf-8?B?MkNqSGNZSUxPd0dZNkVoU2xLR0g3OXRsR1hPZU5TcWtzR2RsbGFzMWN5TUZv?=
 =?utf-8?B?RjdESktFTFVVeEtwNk5aOXMzbWwxM2x0WlNFV25XaFhWTFlmSVdTQnNkMzlz?=
 =?utf-8?B?Vy82SkdkNzZRNXdIS1RpVTNjUU9FRlNFV3MxRSthY094VUdKK3A3cGdlOXJx?=
 =?utf-8?B?NGRUUjB3TldEM0ZrKzZzcGt1SXRrYzlMOXBqZ2ZjZVdyeWl3RzhCSGY2SGdW?=
 =?utf-8?B?aHl2TERMb0JMdkkvTHNSejV3TW1sZXRIcDVOR1FpV1RjRzdwVDNqZG9XMXQw?=
 =?utf-8?B?QkNzSmtUdHJjZTdjQ1JocTBRZ3hMRXdITTRGNGlmeUwreDFIUXJJVzVWa2Jm?=
 =?utf-8?B?MGZrVjNuZlNwMUkrbXpYcndmR1l2cll0RDI5bDA3TVdCU1M0UXAycFpGRVFK?=
 =?utf-8?B?emZxbzh1UFlEVk9aTWV2WEtEZ1RoZDlSZkJtOUQxNEszSWFZcm9HMVBPUU5C?=
 =?utf-8?B?RmV2aXJnZjJOSStBZlVqTFN5NGo2blNEckNvZWtnMGo4MDBTUytnOGJicVdE?=
 =?utf-8?B?SXI2UDhpM2N6R25jRktsQUlWOFJsU0l3MEt2OFlyV0Z2UjhVbGc3cEZtUXJ1?=
 =?utf-8?B?YUJ1NGZvQ0VCZXpTM2lhRlJheHNUN0lyZlZRc3VZS2s0KzFEelFUTkhJemZV?=
 =?utf-8?B?cnExNHJucjZ6SzBkeEdFWC8xRDdRWDFuTmhHUGxtZmtLMllmLzZnQUhZVExk?=
 =?utf-8?B?UHo3aHloeTVHS3NWVTJWalRhWFhPeFJlcjA0YkJtc21UblZTeVhLOEhjWnlL?=
 =?utf-8?B?aVNvU3FuWExYeXFHV0x1M3p0NW1FdENhNjhSMThWRkhpM21MUEtMcmF4QVN6?=
 =?utf-8?B?Vjh1SkRqNGQ0eW9oT2RCWUhGM2ZRZU1lTk0zdHh4ZUdZMko3TGZKcThqQTlp?=
 =?utf-8?B?L1hESm1LcG5aUnBuSGl4M0NJamZlTkFoSzFjcnZkSDllT04vYzl1TkpaMCtL?=
 =?utf-8?B?bzRBTzZ2dUNLaWxNb3FKZkxuMTgyZ3cveFN6SzE4aVo1MTdobDZiY3NKUWJH?=
 =?utf-8?B?aDBXZ3RCYnBGc2NKWkRwRnEyS2NHbk80UExxeXBpNklnaWIxaU1VbklKc212?=
 =?utf-8?B?U2V0c0UzTGNJNmE4QmZGL2ZneVE5VTByODY3RlorS2JpejVIcEF3SUZUMkpL?=
 =?utf-8?B?M2cvSkFLU0RyUVJPU2JwNHJhc1hyYk1sY1VHMldPQURCOEp5SHcraXF5eFhV?=
 =?utf-8?B?a2xhN3lJbVRZbnM3MDE2NHVOR2l0cUg3WkxWUmtCUms3VVNnRWlJdWNPSFBD?=
 =?utf-8?B?b3Fvaks2UzVnVExoVkxYZ1dpWGtyQzc2aS95QkJxRXpNa0wwRy9UTW9yTFJX?=
 =?utf-8?B?WE5IZXRhT29OakcxTXZVQTFBZXZGZ0FVY1pqQTc3dVRYaWpUd0E1NXZ1U3k5?=
 =?utf-8?B?THB5RU42MjdKR25Ba2J3QVlhZlJmbXg2QmtxSkNYUVNtWUZRaHBHLzk1U0Uz?=
 =?utf-8?B?bWlwbHJLRkdkT0Vza2l5ZUIyVXpTS2k4UlpEcHRCM3FaM01EOHpFOFVsemVo?=
 =?utf-8?B?d0pUbVJxYlZlM2xOVDFPV2U5NnJjaEdMd3cxODRpUzBmdjFsdy93MDg1MGJG?=
 =?utf-8?B?akh4NTdONXJ2U3JDRFdJcDZEOHhkd1pTWmMyckdtUUlxUU9pMjBxRm9WTDZO?=
 =?utf-8?B?UUsxUUR3QVdkS29EVEMyRCs4NW1qNEl4OGpZQm91aFdHNzlMajArWWo4bWhC?=
 =?utf-8?Q?JDy6Vg?=
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)(376014)(1800799024)(36860700013)(7416014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Apr 2025 23:43:26.2702
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 389ac9c0-8c85-4d12-389b-08dd8452f97b
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:
	CY4PEPF0000EE31.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB5653

From: Nicola Vetrini <nicola.vetrini@bugseng.com>

Rule 19.1 states: "An object shall not be assigned or copied
to an overlapping object". Since the "call" and "compat_call" are
fields of the same union, reading from one member and writing to
the other violates the rule, while not causing Undefined Behavior
due to their relative sizes. However, a dummy variables are used to
address the violations and prevent the future possibility of
incurring in UB.

No functional change.

Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
Signed-off-by: Victor Lira <victorm.lira@amd.com>
---
Cc: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>
Cc: Michal Orzel <michal.orzel@amd.com>
Cc: Jan Beulich <jbeulich@suse.com>
Cc: Julien Grall <julien@xen.org>
Cc: Roger Pau Monné <roger.pau@citrix.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>
Cc: Nicola Vetrini <nicola.vetrini@bugseng.com>
Cc: Federico Serafini <federico.serafini@bugseng.com>
Cc: Bertrand Marquis <bertrand.marquis@arm.com>
---
 xen/arch/x86/x86_emulate/x86_emulate.c | 21 ++++++++++++++++++---
 1 file changed, 18 insertions(+), 3 deletions(-)

diff --git a/xen/arch/x86/x86_emulate/x86_emulate.c b/xen/arch/x86/x86_emulate/x86_emulate.c
index 8e14ebb35b..44dc3039f3 100644
--- a/xen/arch/x86/x86_emulate/x86_emulate.c
+++ b/xen/arch/x86/x86_emulate/x86_emulate.c
@@ -526,9 +526,19 @@ static inline void put_loop_count(
          */                                                             \
         if ( !amd_like(ctxt) && mode_64bit() && ad_bytes == 4 )         \
         {                                                               \
+            uint64_t tmp;                                               \
+                                                                        \
             _regs.r(cx) = 0;                                            \
-            if ( extend_si ) _regs.r(si) = _regs.esi;                   \
-            if ( extend_di ) _regs.r(di) = _regs.edi;                   \
+            if ( extend_si )                                            \
+            {                                                           \
+                tmp = _regs.esi;                                        \
+                _regs.r(si) = tmp;                                      \
+            }                                                           \
+            if ( extend_di )                                            \
+            {                                                           \
+                tmp = _regs.edi;                                        \
+                _regs.r(di) = tmp;                                      \
+            }                                                           \
         }                                                               \
         goto complete_insn;                                             \
     }                                                                   \
@@ -2029,7 +2039,12 @@ x86_emulate(
         switch ( op_bytes )
         {
         case 2: _regs.ax = (int8_t)_regs.ax; break; /* cbw */
-        case 4: _regs.r(ax) = (uint32_t)(int16_t)_regs.ax; break; /* cwde */
+        case 4:
+            {
+                uint32_t tmp = (uint32_t)(int16_t)_regs.ax;
+                _regs.r(ax) = tmp;
+                break; /* cwde */
+            }
         case 8: _regs.r(ax) = (int32_t)_regs.r(ax); break; /* cdqe */
         }
         break;
--
2.47.0


From xen-devel-bounces@lists.xenproject.org Fri Apr 25 23:43:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 23:43:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.968818.1358279 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8Shl-000397-Qf; Fri, 25 Apr 2025 23:43:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 968818.1358279; Fri, 25 Apr 2025 23:43: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 1u8Shl-000384-Li; Fri, 25 Apr 2025 23:43:37 +0000
Received: by outflank-mailman (input) for mailman id 968818;
 Fri, 25 Apr 2025 23:43: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=/n1b=XL=amd.com=VictorM.Lira@srs-se1.protection.inumbo.net>)
 id 1u8Shk-0002xO-EW
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 23:43:36 +0000
Received: from NAM10-BN7-obe.outbound.protection.outlook.com
 (mail-bn7nam10on20615.outbound.protection.outlook.com
 [2a01:111:f403:2009::615])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 19f10889-222f-11f0-9eb3-5ba50f476ded;
 Sat, 26 Apr 2025 01:43:35 +0200 (CEST)
Received: from MW4PR02CA0020.namprd02.prod.outlook.com (2603:10b6:303:16d::26)
 by SA0PR12MB4415.namprd12.prod.outlook.com (2603:10b6:806:70::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.27; Fri, 25 Apr
 2025 23:43:28 +0000
Received: from CY4PEPF0000EE31.namprd05.prod.outlook.com
 (2603:10b6:303:16d:cafe::66) by MW4PR02CA0020.outlook.office365.com
 (2603:10b6:303:16d::26) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.36 via Frontend Transport; Fri,
 25 Apr 2025 23:43:28 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CY4PEPF0000EE31.mail.protection.outlook.com (10.167.242.37) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Fri, 25 Apr 2025 23:43:27 +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, 25 Apr
 2025 18:43:27 -0500
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; Fri, 25 Apr
 2025 18:43:27 -0500
Received: from xsjstefanos51.xilinx.com (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; Fri, 25 Apr 2025 18:43:26 -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: 19f10889-222f-11f0-9eb3-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Gvw63D85xjKc106Br8JOxYKmHCyGwJXkf2Ka5ZQNLHTuo0W16JHgcTd1rchCazA9zVzfoHlyYxM8B4PElMr7+1X5HpeEeNmWXaB6mfFrlgyIFr8G7yft2JuMXDcrjmF8HURDOPXdxJ6YihSAZET+vXKUkxWQcoSbvwgdnkuwQm2xOC5VqfppcNS3d6a5uLuoPMtATjJ7NbPH2UXBodI6YI21m7CO/cF57Vfzjx1bUpP7Xtsoads5GqUYYFRSvVTz6TG6pv2MUZda1RFf7c69GjacfSa8eKaFaLGQDyFImM4C9aCkGxjRKwzHCOzhHbs5UvCyw/bgRNT5XaouNEh4gw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=L83w0WtnYztYUarRr7gN54jKPlPoYHFz4od7vI6r2Es=;
 b=tUn1w9glVtC1MKvS+O7Mg2mQIfB6O02TiLTKGwg4yIAXoEKL9DcfNRxFYbflgNL+EuQCZF4tjQqM7/XXYIVho/oTU1hqcIw3rVNxUXYvdnuyyxIXbjMnZwrIyeEeoYnjRkyeK9CRpwpobPMq7amL6F9JCcYhDGitGpTMKJ5HpOifVZTfUrapFKqHQzpOfILCP3DNGQsIDi7meI1aZaqWGcmyrl/kM15UNSRWYEM3sHhG3neAjw41eYrGD1cm6wn6u79DzP3P5Zw4O/nI3TDg2VCEyhajbHIKQkruKAVBG5DYhfOdNgE+YP1UR15gHK1/+jX+iIuAHTJrjlcbSrg9aA==
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=L83w0WtnYztYUarRr7gN54jKPlPoYHFz4od7vI6r2Es=;
 b=epiFVASeQ7GnZkobLj6xo5g+Dig1nhICNMF0CFQh1xmm/xXa4odU9wRjJ79dOJFfUrcCucLkHwEbuYJ3Rpk1WJdB71UWHdMF99kKyNsGKh3yufroCV3U6tiiiK2/08FMHUdcQEObjmn/CCCMEisauSjbXNnKYtqapmsg+zMqH6c=
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: <victorm.lira@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Federico Serafini <federico.serafini@bugseng.com>, Victor Lira
	<victorm.lira@amd.com>, Andrew Cooper <andrew.cooper3@citrix.com>, "Anthony
 PERARD" <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Jan
 Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, "Stefano
 Stabellini" <sstabellini@kernel.org>, Nicola Vetrini
	<nicola.vetrini@bugseng.com>, Bertrand Marquis <bertrand.marquis@arm.com>
Subject: [PATCH v1 3/3] automation/eclair: tag Rule 19.1 as clean
Date: Fri, 25 Apr 2025 16:42:38 -0700
Message-ID: <7316cbef75cdd0726990bcb8b37cd10f3be62185.1745624090.git.victorm.lira@amd.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <c694069696dd428bc1719e36c378a573b03f74b9.1745624090.git.victorm.lira@amd.com>
References: <c694069696dd428bc1719e36c378a573b03f74b9.1745624090.git.victorm.lira@amd.com>
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: CY4PEPF0000EE31:EE_|SA0PR12MB4415:EE_
X-MS-Office365-Filtering-Correlation-Id: 101c96f9-7081-4aaa-b6a3-08dd8452fa7c
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|7416014|82310400026|36860700013|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?dkN2TFpOeU9Ua0pjaTE1bjVYaEpNQVMvSGZXbXRmUlIwVTByakxYcE5XZWFC?=
 =?utf-8?B?bGF2MWdCMDFubDBRNTVOYmd5YVlIaG0vdk9VM2phQ3ZoeUtKdCtXSDdpSlFn?=
 =?utf-8?B?cS9TeHhTbzFhalVqZm9ocFdpZitIZCt1bVk5U1B6WnhlOW5HMWFqZ2xkVW5P?=
 =?utf-8?B?QWlBT2R6WDU5Vzk2VDJhOFdDMTBlM2M4d3J3MjBiWDY3dWZEUjRQWFVJbWlD?=
 =?utf-8?B?VThuS1FYZU1aSXB6VUdUeExzYTRuSEluczlYTW9jUEZlVUcvODltY0htUEdq?=
 =?utf-8?B?enJyR3JJU3I5cDNRZnZZbGNHRzI0UTRlUXd0T2t2OXhiT2JhamNqQnJSaDFu?=
 =?utf-8?B?ek5SMGhiNGs2OG9TR0ZiRU1wNE8vc2Z0SllXRE02c3dYMjZlVEJrQXMxd0pm?=
 =?utf-8?B?cjJOdVM0RVM3WVhOdGJwNi9vV3R0V3pFRnVHN2xjbUsya1h1dEx1L3owcVdU?=
 =?utf-8?B?aElKdG95Y21RUk1rUE5QV1hMT0FBMWNJdmZiSCs4NFVlWm9yNkhUVjNhWFhZ?=
 =?utf-8?B?Qkh5R3hCU09tdXNnRm9KbkhzNHBIRHJpS09qOFpNSEk3VUxCbUJxenBWV0R5?=
 =?utf-8?B?aXpMSkZwR3Foa0tKZi8zb1k1QS9Nd09PbmZQY0NneXd2QlJORm1vMU94dE5C?=
 =?utf-8?B?QWs5WGNNQXJBbThmOG13OXdKMXFpWm5vQ1ZSdHZWZzBSVXQ3MDE0UHpWSExL?=
 =?utf-8?B?aUlMd04xSTVzb3NmUWd5ZHA2b1NjTFRqckIwNldCYUJCeWYvejlGRXVxdXNX?=
 =?utf-8?B?aEFYZEVTb0Jxay9WU2dGb0JKenovRldqYTVKU3BlQkFJV21JSGxRWjkrdmJu?=
 =?utf-8?B?MkRSRHMwd1ltTGRlWENGem8xV1JTOTdiUW5CeGJNQ2FLUXFMZmNqeDdhRUlY?=
 =?utf-8?B?Y0RhUkF4amFIOGMwT3k1MTlpckRQb0lkajMwaS9aQnJoRitTdzRTWEhyVUFN?=
 =?utf-8?B?ZnR3UkJia1RRcGcxeDAzSk40TEJzSC94elpqbSs5RlE1TzRRUlJJbE95NjIw?=
 =?utf-8?B?ZGp2elFVYVVhWUZaYW5FZU1ZNzdFQ1dyZGpJQnBqR3hkWEFRWU1oUS9hM1FK?=
 =?utf-8?B?TE5ka1hYM29rdUFLclhXM1IwWXErREhwZGRmMUpFN0UxdkhBbkU5U0Z4MFNW?=
 =?utf-8?B?QkduSkVnSkx2czM4R2R3eGxXMytJaFVyQ1F2VFR4NTNmckpId3FwOEplUTRq?=
 =?utf-8?B?U0xyT1QybVJaUG5YN055RGRwY0RzMDJzZ3k2ZEx3RVFucVh3T3dnbjdXdWsw?=
 =?utf-8?B?Y2NuR2d0TEkrNmdLYWVhZmFkdEFpMXl2dlFmUks5cFNoTHBIMXJ3T2pHRHIw?=
 =?utf-8?B?M0xwU3JhSkFIdlAxUjFTajZzZ3JyNVhNbWw4LzAyaitxeFFqSGsyWmxTTEd3?=
 =?utf-8?B?Nk9Zbkl3ekNIRnpmTGllTE9aa2NNekMzK3BvK3BOamtoTHllWWRHRFg3ZUh5?=
 =?utf-8?B?QWlCT1BtZTNyUnB1KzZnelpva3c5NUZFclZPdm1WQ1BGV0pEKytIRUNFN3RS?=
 =?utf-8?B?U3lmK053Q2FKSnMyRnlVSk9sYXBkR015bmtFYkc3VXBhRFVZbEcrZ2wwUVI3?=
 =?utf-8?B?NTJjbVJwdG5pa24yTkRoNDNkenBFTVZXOGd0QzBZQWFxbzZWcWZyU25WN1Ni?=
 =?utf-8?B?aHZGWkxBbGhDRUNOcmtGM28vNjc2cTdvek1aQmQwNVpTa0Nuem9ZdVBIMGtB?=
 =?utf-8?B?cGc0OGU4VWJHQVBZajZvbmxMZDd6Mlc1alU5a0hPYXg0aGVDSFJmd01YNTh2?=
 =?utf-8?B?WXlQaHk3OEdNTDdaTlI0aWhJa0EvSmcxWnBweHFtOFRNeFhKWjB2R1VnYk1l?=
 =?utf-8?B?WmVTbmZGS2c2WSt2UVRXSlFxUnR2cG9kUUlId0FVZzRIeW5HeklmRm1IYmxN?=
 =?utf-8?B?QWJEeWdpa1lwOUdBRkYrUW9vWkZEMXk4ZmEyaE1WOFc2SlZIckgySG84Vk1C?=
 =?utf-8?B?WVpROFd4aldsaklqLzdtdThRVEd5cnhNdU1mSDdTZDI3dE1qb2xPL2NCQ0Fy?=
 =?utf-8?B?eC9QNnEvUTUvU0hHbllsWlU5Ymlzd3dkMFFKWlRtaWhvZ2JYbWsxMFFuWmp2?=
 =?utf-8?Q?HJP7wS?=
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)(7416014)(82310400026)(36860700013)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Apr 2025 23:43:27.9577
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 101c96f9-7081-4aaa-b6a3-08dd8452fa7c
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:
	CY4PEPF0000EE31.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR12MB4415

From: Federico Serafini <federico.serafini@bugseng.com>

Tag MISRA C Rule 19.1 as clean to avoid regressions.

Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
Signed-off-by: Victor Lira <victorm.lira@amd.com>
---
Cc: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>
Cc: Michal Orzel <michal.orzel@amd.com>
Cc: Jan Beulich <jbeulich@suse.com>
Cc: Julien Grall <julien@xen.org>
Cc: Roger Pau Monné <roger.pau@citrix.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>
Cc: Nicola Vetrini <nicola.vetrini@bugseng.com>
Cc: Federico Serafini <federico.serafini@bugseng.com>
Cc: Bertrand Marquis <bertrand.marquis@arm.com>
---
 automation/eclair_analysis/ECLAIR/tagging.ecl | 1 +
 1 file changed, 1 insertion(+)

diff --git a/automation/eclair_analysis/ECLAIR/tagging.ecl b/automation/eclair_analysis/ECLAIR/tagging.ecl
index 1d078d8905..dab3c51faa 100644
--- a/automation/eclair_analysis/ECLAIR/tagging.ecl
+++ b/automation/eclair_analysis/ECLAIR/tagging.ecl
@@ -78,6 +78,7 @@ MC3A2.R17.5||
 MC3A2.R17.6||
 MC3A2.R18.6||
 MC3A2.R18.8||
+MC3A2.R19.1||
 MC3A2.R20.2||
 MC3A2.R20.3||
 MC3A2.R20.4||
--
2.47.0


From xen-devel-bounces@lists.xenproject.org Fri Apr 25 23:43:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 23:43:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.968817.1358272 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8Shl-00030j-FK; Fri, 25 Apr 2025 23:43:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 968817.1358272; Fri, 25 Apr 2025 23:43: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 1u8Shl-0002zx-AQ; Fri, 25 Apr 2025 23:43:37 +0000
Received: by outflank-mailman (input) for mailman id 968817;
 Fri, 25 Apr 2025 23:43:36 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=/n1b=XL=amd.com=VictorM.Lira@srs-se1.protection.inumbo.net>)
 id 1u8Shk-0002xk-0E
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 23:43:36 +0000
Received: from NAM02-SN1-obe.outbound.protection.outlook.com
 (mail-sn1nam02on20622.outbound.protection.outlook.com
 [2a01:111:f403:2406::622])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 18aab247-222f-11f0-9ffb-bf95429c2676;
 Sat, 26 Apr 2025 01:43:33 +0200 (CEST)
Received: from BN0PR08CA0024.namprd08.prod.outlook.com (2603:10b6:408:142::14)
 by IA1PR12MB6089.namprd12.prod.outlook.com (2603:10b6:208:3ef::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.27; Fri, 25 Apr
 2025 23:43:27 +0000
Received: from BN3PEPF0000B072.namprd04.prod.outlook.com
 (2603:10b6:408:142:cafe::31) by BN0PR08CA0024.outlook.office365.com
 (2603:10b6:408:142::14) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.40 via Frontend Transport; Fri,
 25 Apr 2025 23:43:27 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 BN3PEPF0000B072.mail.protection.outlook.com (10.167.243.117) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Fri, 25 Apr 2025 23:43:26 +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, 25 Apr
 2025 18:43:26 -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, 25 Apr
 2025 18:43:26 -0500
Received: from xsjstefanos51.xilinx.com (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; Fri, 25 Apr 2025 18:43:25 -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: 18aab247-222f-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=r6GRTe27VOvnE0t+MjpxBXTq/znf3G/QC/xw9bwMAkObbk4dFSeAJEhSB3u7/zX121LW2yr+vXY1E+790RYPww0rulnun/Zq2tMRJxRn8TxkmLA7Pff+D8jYGhZVQUR2UgKIlMNz1CDaTl8kshqGMM6yi+QA0upWtID4AyVdsuz+AVGjyfHfkJ2zC6jX3epTmRi+/R9QMw5+hRnjC6/XsUfqFUnyxaQSeZAh6I+zYsjsrCtlCa/GtuFZGBh7YygtOjV16tEMn5sIEqphO7QkMVtJynzMUJIw4h0In/40j3WzBh5w3EDogF3LEbanSmcNcjiE/95sn+0YC7E5juEc6Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=D8E/bPc0PJUR1517qnR2GX1GX93U2VDwCoULoW2ZQwk=;
 b=qjeq1utWZAbYlRljYxJ6D3oUOM/641N50WhOMX71xA5zc+woRz+Z6lmEga7WcEpU/APRWBTh4WJvSOBDtuuaGcUeJsEF2oj8DZ6PLmMl4ECuB41sfqTUBzP9/DzaBN9s1EDefFizoSsPMl+e000S5kB2uDI8D80uEWI1K2mUMYhffGiay4uihdJIV5cTpZcZROdlXVIG7dw3XvhtNwBJ4f+zhwCDEJSwyg6RuXxYc2ckZhny8vQzXIeXaX+6BVJasXG2l4ZSRKj+mgWqzKnBZxvYelnScE9Q9cmyS6rj7ic31LnLgVbOAkaRsPsEwiVnPfpmtDqX0+KdaB6+XPUBSA==
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=D8E/bPc0PJUR1517qnR2GX1GX93U2VDwCoULoW2ZQwk=;
 b=22bo6mk/NNPwb72hKcRyQHeH1F6Txsno1bGXs00jdQzVI+Ybc0XKy2vN0dBDjMU/bR/k7WwJzabJOynGyE6YaFQfffXOI0A3imXnRdue9/kcJ9QYI3sXxKgCdPCBIzIVdyDP1N0WjCXhfs+JDtXzXIdR8YVzzpPEE/IM/VeZb70=
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: <victorm.lira@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Nicola Vetrini <nicola.vetrini@bugseng.com>, Victor Lira
	<victorm.lira@amd.com>, Andrew Cooper <andrew.cooper3@citrix.com>, "Anthony
 PERARD" <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Jan
 Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, "Stefano
 Stabellini" <sstabellini@kernel.org>, Federico Serafini
	<federico.serafini@bugseng.com>, Bertrand Marquis <bertrand.marquis@arm.com>
Subject: [PATCH v1 2/3] compat: address violations of MISRA C Rule 19.1
Date: Fri, 25 Apr 2025 16:42:37 -0700
Message-ID: <74b0420ab20fc0204db14c0a1a4a68ed48b25a38.1745624090.git.victorm.lira@amd.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <c694069696dd428bc1719e36c378a573b03f74b9.1745624090.git.victorm.lira@amd.com>
References: <c694069696dd428bc1719e36c378a573b03f74b9.1745624090.git.victorm.lira@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
Received-SPF: None (SATLEXMB05.amd.com: victorm.lira@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN3PEPF0000B072:EE_|IA1PR12MB6089:EE_
X-MS-Office365-Filtering-Correlation-Id: 8acae5c2-15ce-43a2-df26-08dd8452f9c1
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|1800799024|82310400026|376014|7416014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?K1Jkc0xlNG5tblJIelA5eWhNVzdsZFBBSDFDUHlPUEt4c1pzUkdwcTk4Mzcx?=
 =?utf-8?B?Ty8ya3dKaFpObFFxM3RCM1YxVUZLM002dCtmaHBEam00OFYyN0MwbWtlWC9O?=
 =?utf-8?B?MXcrcjZlZ3VxRnZ4V0pWZCs2NStzemE2WEF4cEM2OE96WHJJNDkrT1Q5ZGx5?=
 =?utf-8?B?NDJnTFY3TGNMcTYwQkR1UmJSSVhPYitOQVNFTGJEU3VRUUpxbERYaUpzNjZx?=
 =?utf-8?B?YnlmSXp3MHhBSXBBc1ZEeUZpbTRQSDdnVUNZb0ZGR3NTTnpSRE0zck9rVFZK?=
 =?utf-8?B?YmdJWUZMRlY2d2dTVWVHU2M1K0Q0M2tXY2RTd3JKUFBSN2JRRC82YzY5SFRC?=
 =?utf-8?B?OU8zMUNMeENiYVRoYStTOGdYcWRUM2swbnlZKzRBN0dJMkFWc2JpYVB4NnZz?=
 =?utf-8?B?VEdoRXJQY1p6TEhJbDBiWEtxQ2pKS0hFaG91VC91bElaUS8xcksrcWF2bkFU?=
 =?utf-8?B?a2N2aHdxbzF4cGlXUE5UK2laYWhuMm9wRTQ3RjhwVGpTajdybXJBVzc0SDlv?=
 =?utf-8?B?TGZFQndETE1DTDdSVkJFR2swelU2N1d3clUzVFpFMk0yMlF4SVNIeWppdm91?=
 =?utf-8?B?ZjVWNnpaUUtIVnR4OVF1MEdUOVQ0M0RZOER3S0xNZDBZOVRYV0JQb2J5ZTFl?=
 =?utf-8?B?TENmNEJ3QlYzSkpWNVp6emhvc2QvN1hjaEZUYUlIUXdyZzNwdEhpN2t5RXMr?=
 =?utf-8?B?V1hTU2M4cEVBVndLOUpQYVg5b2I0WC9uYnlJOHdJSFhFbzRQeE5DMUQ2ZXMv?=
 =?utf-8?B?dkpXV25uMFB6Q3pqV1h3ZUhuTlEwWi9OaW9NL2REZDBuSGlZeVRpNXUyU204?=
 =?utf-8?B?dXdIYXhWcTduTy9BaXNLMXBMb1lYdGVCNnFNWUtSd2U0bE44RWNueE1zY3B1?=
 =?utf-8?B?L1dPWlJXbHA4bU9tbHAzYnRMRG1GMXE0aG1qcjlack9RMXlzUmZmM0NJOEUr?=
 =?utf-8?B?ZEJ1NGEvallmOGJpTzJGdWxzQjFPNm5MTVZzVXVvQUJUVTBlZEhlRmM2OUZM?=
 =?utf-8?B?aW13RjNkdFZqMVV4WWlEaE4rdng2NEE2T1crdm5Tc0Mrblhra1VHL1JwYlpV?=
 =?utf-8?B?azZzSW9oYzR4dDZwVEwvM1NpMzFxWXg4U0JOZWh2VFlIR1ZIVTNFSjV4WXhr?=
 =?utf-8?B?TXVwSU9xUm94NTNJOWVoWXQyQkZ0K1d1WWxlbTlUUUdNMWZzQUpQdEV5L1NR?=
 =?utf-8?B?K082T3FKTjdqSUZwR1ZZMDJZemtKbG9HMzEvRDI5QnVXOVZQREJkN1JRYWFV?=
 =?utf-8?B?WGNtdHBJYlUwSEwvaGxXNGV4REdpcWdMeWord0QrZG1scTdGRGFSK1dsQ2dz?=
 =?utf-8?B?RlpPb2dXOWJRU3YrMFlLSHh2bXNpUklJS2FiNmgzVXM1K3FBZTNtS05udHgw?=
 =?utf-8?B?ai92T3Z5L0diSWFPeFhZalNpS2c5UnFjdmIxRWk3OW0ybC9ySGFYU2RyaUky?=
 =?utf-8?B?SS9xSzl3K1RKVHVrOEJpTjNESWVkbThJeU5TeFZ5bEpjQTVXZ0x2K3UxdndW?=
 =?utf-8?B?MnlCMTVtUzNjclBqUjhiSjc3MisyeWdZbUNDQ0ZnWUZieWVwbys3WjR5bzhy?=
 =?utf-8?B?R3doS1pJMVkwTzlqOVM5QnQrVFNCNGg2cGZnMnNOdlArekZtdXBPWUNreE5E?=
 =?utf-8?B?WEQ5Ri8rWTJEMXZtY0c0blFRQ01rbklpZWc2OHBqMGlLeWZWWGxBSEppcmVz?=
 =?utf-8?B?T041N3lqMTZ2Z2dPWVJWYmlaVnNHMXR6WWFGTTJYeTQ5N0gzdWM4ZVJwWFN0?=
 =?utf-8?B?ZE5EUDhSUjNqZmxIY0dhcys4SkVHMWpwWnNNNW1mb3hHRmErTmxxbHdta1dD?=
 =?utf-8?B?cjIrZWR2eUpETGF3ZkVOMHJ6eFcxMEJMOE1pczMwQS93WTdxai83ZWg2aDcz?=
 =?utf-8?B?ekVHTWxaRWhZKzZYTFh1c2lTUk14Ymtoc281Yk5ETlV4a3JYKzdrUDVIUHlL?=
 =?utf-8?B?YzRQVUFTbktGczhrS2psUndTWEVJdnAvVEZHSXV4SFVQQWRsNTVBMW5OZXVB?=
 =?utf-8?B?eEZHaEpFbk1zVW03ZkZLUDRRMEVNSjY3bzd5RFlOTVMvTkJCSE1kUUxXREk5?=
 =?utf-8?Q?yUzmfm?=
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)(7416014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Apr 2025 23:43:26.8426
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 8acae5c2-15ce-43a2-df26-08dd8452f9c1
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:
	BN3PEPF0000B072.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB6089

From: Nicola Vetrini <nicola.vetrini@bugseng.com>

Rule 19.1 states: "An object shall not be assigned or copied
to an overlapping object". Since the "call" and "compat_call" are
fields of the same union, reading from one member and writing to
the other violates the rule, while not causing Undefined Behavior
due to their relative sizes. However, a dummy variable is used to
address the violation and prevent the future possibility of
incurring in UB.

No functional change.

Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
Signed-off-by: Victor Lira <victorm.lira@amd.com>
---
Cc: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>
Cc: Michal Orzel <michal.orzel@amd.com>
Cc: Jan Beulich <jbeulich@suse.com>
Cc: Julien Grall <julien@xen.org>
Cc: Roger Pau Monné <roger.pau@citrix.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>
Cc: Nicola Vetrini <nicola.vetrini@bugseng.com>
Cc: Federico Serafini <federico.serafini@bugseng.com>
Cc: Bertrand Marquis <bertrand.marquis@arm.com>
---
 xen/common/compat/multicall.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/xen/common/compat/multicall.c b/xen/common/compat/multicall.c
index b17739d218..1740fb2172 100644
--- a/xen/common/compat/multicall.c
+++ b/xen/common/compat/multicall.c
@@ -15,8 +15,13 @@ typedef int ret_t;
 static inline void xlat_multicall_entry(struct mc_state *mcs)
 {
     int i;
+    xen_ulong_t arg;
+
     for (i=0; i<6; i++)
-        mcs->compat_call.args[i] = mcs->call.args[i];
+    {
+        arg = mcs->call.args[i];
+        mcs->compat_call.args[i] = arg;
+    }
 }

 #define multicall_entry      compat_multicall_entry
--
2.47.0


From xen-devel-bounces@lists.xenproject.org Fri Apr 25 23:43:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Apr 2025 23:43:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.968822.1358297 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8Shy-0003sS-0n; Fri, 25 Apr 2025 23:43:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 968822.1358297; Fri, 25 Apr 2025 23:43: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 1u8Shx-0003sB-Te; Fri, 25 Apr 2025 23:43:49 +0000
Received: by outflank-mailman (input) for mailman id 968822;
 Fri, 25 Apr 2025 23:43: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=1RGh=XL=ariadne.space=ariadne@srs-se1.protection.inumbo.net>)
 id 1u8Shx-0002xk-39
 for xen-devel@lists.xenproject.org; Fri, 25 Apr 2025 23:43:49 +0000
Received: from outbound.pv.icloud.com
 (p-west1-cluster2-host11-snip4-10.eps.apple.com [57.103.64.161])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1f624b3f-222f-11f0-9ffb-bf95429c2676;
 Sat, 26 Apr 2025 01:43:44 +0200 (CEST)
Received: from localhost.localdomain (unknown [17.56.9.36])
 by outbound.pv.icloud.com (Postfix) with ESMTPSA id A36D71800386;
 Fri, 25 Apr 2025 23:43: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: 1f624b3f-222f-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ariadne.space;
	s=sig1; bh=WrHLjFWvrzfUqNQQfOkpQy6aR3OJ6DJQi4OTO3vSjJs=;
	h=From:To:Subject:Date:Message-Id:MIME-Version:x-icloud-hme;
	b=T7dtq+PVBSpO0rW/+tYxGYay8csiH376ubd77uI+tAw1mJgncG5RMlD3Uugi+R/A5
	 uYdNKc7xJESv8Z/adh3lEJU6KpP0dA8lSgLDKFNtDSQ0DfU37w8wydRlQemMmQ7qVn
	 ZwIa0s/Ia6uy67mdlMq2PerxlbJK8QEZ9s4khJgrJdgwTf0S+cfO1j54d6Js4hxGvl
	 /U6MxvrVe3tzPpX48sbYVTXZ0PGrWg9M9VoGXD+LrlRcCjTvheo2dCNEZRTi9nXQcl
	 zEO6SuIlvqUo3GIQORZCpdLGf66JpWaoYURe/b7M4A86uSIPWuEAkiyXkCh0jdl38f
	 WnmVepT/aS5Zw==
From: Ariadne Conill <ariadne@ariadne.space>
To: xen-devel@lists.xenproject.org
Cc: Ariadne Conill <ariadne@ariadne.space>,
	Paul Durrant <paul@xen.org>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Alejandro Vallejo <agarciav@amd.com>,
	"Alexander M . Merritt" <alexander@edera.dev>
Subject: [PATCH v2] x86/hyperv: use dynamically allocated page for hypercalls
Date: Fri, 25 Apr 2025 16:43:31 -0700
Message-Id: <20250425234331.65875-1-ariadne@ariadne.space>
X-Mailer: git-send-email 2.39.5 (Apple Git-154)
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Proofpoint-ORIG-GUID: iW6XCD6WDXn-nq0ocUMEoMboQ1uptbSx
X-Proofpoint-GUID: iW6XCD6WDXn-nq0ocUMEoMboQ1uptbSx
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.0.736,FMLib:17.12.80.40
 definitions=2025-04-25_07,2025-04-24_02,2025-02-21_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 clxscore=1030 phishscore=0
 malwarescore=0 mlxlogscore=855 bulkscore=0 suspectscore=0 mlxscore=0
 adultscore=0 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.19.0-2411120000 definitions=main-2504250172

Previously Xen placed the hypercall page at the highest possible MFN,
but this caused problems on systems where there is more than 36 bits
of physical address space.

In general, it also seems unreliable to assume that the highest possible
MFN is not already reserved for some other purpose.

Changes from v1:
- Continue to use fixmap infrastructure
- Use panic in Hyper-V setup() function instead of returning -ENOMEM
  on hypercall page allocation failure

Fixes: 620fc734f854 ("x86/hyperv: setup hypercall page")
Cc: Alejandro Vallejo <agarciav@amd.com>
Cc: Alexander M. Merritt <alexander@edera.dev>
Signed-off-by: Ariadne Conill <ariadne@ariadne.space>
---
 xen/arch/x86/guest/hyperv/hyperv.c      | 17 +++++++----------
 xen/arch/x86/include/asm/guest/hyperv.h |  3 ---
 2 files changed, 7 insertions(+), 13 deletions(-)

diff --git a/xen/arch/x86/guest/hyperv/hyperv.c b/xen/arch/x86/guest/hyperv/hyperv.c
index 6989af38f1..0305374a06 100644
--- a/xen/arch/x86/guest/hyperv/hyperv.c
+++ b/xen/arch/x86/guest/hyperv/hyperv.c
@@ -98,7 +98,13 @@ static void __init setup_hypercall_page(void)
     rdmsrl(HV_X64_MSR_HYPERCALL, hypercall_msr.as_uint64);
     if ( !hypercall_msr.enable )
     {
-        mfn = HV_HCALL_MFN;
+        void *hcall_page = alloc_xenheap_page();
+        if ( !hcall_page )
+            panic("Hyper-V: Failed to allocate hypercall trampoline page");
+
+        printk("Hyper-V: Allocated hypercall page @ %p.\n", hcall_page);
+
+        mfn = virt_to_mfn(hcall_page);
         hypercall_msr.enable = 1;
         hypercall_msr.guest_physical_address = mfn;
         wrmsrl(HV_X64_MSR_HYPERCALL, hypercall_msr.as_uint64);
@@ -187,14 +193,6 @@ static int cf_check ap_setup(void)
     return setup_vp_assist();
 }
 
-static void __init cf_check e820_fixup(void)
-{
-    uint64_t s = HV_HCALL_MFN << PAGE_SHIFT;
-
-    if ( !e820_add_range(s, s + PAGE_SIZE, E820_RESERVED) )
-        panic("Unable to reserve Hyper-V hypercall range\n");
-}
-
 static int cf_check flush_tlb(
     const cpumask_t *mask, const void *va, unsigned int flags)
 {
@@ -211,7 +209,6 @@ static const struct hypervisor_ops __initconst_cf_clobber ops = {
     .name = "Hyper-V",
     .setup = setup,
     .ap_setup = ap_setup,
-    .e820_fixup = e820_fixup,
     .flush_tlb = flush_tlb,
 };
 
diff --git a/xen/arch/x86/include/asm/guest/hyperv.h b/xen/arch/x86/include/asm/guest/hyperv.h
index c05efdce71..5792e77104 100644
--- a/xen/arch/x86/include/asm/guest/hyperv.h
+++ b/xen/arch/x86/include/asm/guest/hyperv.h
@@ -10,9 +10,6 @@
 
 #include <xen/types.h>
 
-/* Use top-most MFN for hypercall page */
-#define HV_HCALL_MFN   (((1ull << paddr_bits) - 1) >> HV_HYP_PAGE_SHIFT)
-
 /*
  * The specification says: "The partition reference time is computed
  * by the following formula:
-- 
2.39.5 (Apple Git-154)



From xen-devel-bounces@lists.xenproject.org Sat Apr 26 00:00:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 26 Apr 2025 00:00:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.968872.1358307 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8Sy8-0008NN-8n; Sat, 26 Apr 2025 00:00:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 968872.1358307; Sat, 26 Apr 2025 00: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 1u8Sy8-0008NG-5d; Sat, 26 Apr 2025 00:00:32 +0000
Received: by outflank-mailman (input) for mailman id 968872;
 Sat, 26 Apr 2025 00: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=P9o3=XM=amd.com=VictorM.Lira@srs-se1.protection.inumbo.net>)
 id 1u8Sy6-0008N4-67
 for xen-devel@lists.xenproject.org; Sat, 26 Apr 2025 00:00:30 +0000
Received: from NAM10-BN7-obe.outbound.protection.outlook.com
 (mail-bn7nam10on20623.outbound.protection.outlook.com
 [2a01:111:f403:2009::623])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7654b494-2231-11f0-9eb3-5ba50f476ded;
 Sat, 26 Apr 2025 02:00:28 +0200 (CEST)
Received: from BY5PR13CA0035.namprd13.prod.outlook.com (2603:10b6:a03:180::48)
 by SN7PR12MB7105.namprd12.prod.outlook.com (2603:10b6:806:2a0::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.35; Sat, 26 Apr
 2025 00:00:22 +0000
Received: from SJ1PEPF000023D2.namprd02.prod.outlook.com
 (2603:10b6:a03:180:cafe::b2) by BY5PR13CA0035.outlook.office365.com
 (2603:10b6:a03:180::48) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8678.23 via Frontend Transport; Sat,
 26 Apr 2025 00:00:21 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ1PEPF000023D2.mail.protection.outlook.com (10.167.244.9) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Sat, 26 Apr 2025 00:00:21 +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, 25 Apr
 2025 19:00:20 -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, 25 Apr
 2025 19:00:20 -0500
Received: from xsjstefanos51.xilinx.com (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; Fri, 25 Apr 2025 19:00:19 -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: 7654b494-2231-11f0-9eb3-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Y9Vjj4pRLr4AbkZ+vBgXHVROVamfD6C9k14D+PStgPPuVU5aYY7OnIs+n7zuFqchv2hg6rtJPagaEeoeTzhBwnGui609xiVOXvwYGMUGuGAN8yNwVXNcpzGyU7V4SKv93Z4ONdg/qUmDpJmytpB9cn8hcSesSny/u4Yw8CAmYFPMvZnN/0m+MJbAME3T13TMykVntMGicLlKva/ymfn4evJ7GYpRY830LhguBrkswoTs5USzqu1bN9qpalq672XQBAp5iodIkUDPI+xSiau4k66m9hKh2Ffa328kG2KV/CL46MTY1T+5+j8D93zpSc6JpkOazBQKWWvq3Bp9Ka/ZTg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=4TndO7wIwFF/vKgNqTIQTB7DHEhbWcGym70m5yHQmNg=;
 b=nH8brZMWPKvBj37cgii4wR6VjBPvt0AQRggvj+ZqjEEnXeu6SIRQ063qOwRjeM9eCxBhdflotF3Oh4rYxm4M16WjPu5Pr0CMAjeK9GoPCYrZiM6XYAUn8NwDVFQ5bAu7DgxtQ90yD5GyAXw+lp4NamntplWACQtoDQD9PVY9uYjQKorhstXs6yS9ii3pkE/YqbIlFrVXFMEiW2A8I93gXGi6sOeDHZn7OElsHl8I+BJ5fgv0CXwg3tX/Mke3hZiXqWlTs0KZ+7+qLUoaRKnddj5JrQLzdr30B2dm2xbi3bZYJ+yHt6Iy0qoSdff8pGO0R/zVKvJP4rpN2AyLvry/vg==
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=4TndO7wIwFF/vKgNqTIQTB7DHEhbWcGym70m5yHQmNg=;
 b=OPHxowU81KrpAWjaC0xepzREbL79qAfrs3PZKisE9W6tILoG4R3iu7Nvc6mSs6vvj5JoIAZ3voRGqR1of9WfpixiSG1p42VKRoMMwZLfRV0JUp4isX3NDCFPymV3fnbad7UBzBZmacHADakSkRm0rfFiDt8hKZCkXiPUHYEWCaQ=
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: <victorm.lira@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Federico Serafini <federico.serafini@bugseng.com>, Victor Lira
	<victorm.lira@amd.com>, Andrew Cooper <andrew.cooper3@citrix.com>, "Anthony
 PERARD" <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Jan
 Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, "Stefano
 Stabellini" <sstabellini@kernel.org>, Nicola Vetrini
	<nicola.vetrini@bugseng.com>, Bertrand Marquis <bertrand.marquis@arm.com>
Subject: [PATCH v1 1/2] xen/page_alloc: address violation of Rule 14.3
Date: Fri, 25 Apr 2025 17:00:09 -0700
Message-ID: <5f2e316aae4667d1fe851e68552eb881c4d5a015.1745625477.git.victorm.lira@amd.com>
X-Mailer: git-send-email 2.47.0
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
Received-SPF: None (SATLEXMB05.amd.com: victorm.lira@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF000023D2:EE_|SN7PR12MB7105:EE_
X-MS-Office365-Filtering-Correlation-Id: 8e2a541b-41f6-4eba-0c94-08dd8455567a
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|1800799024|82310400026|376014|7416014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?dHNISyt1VU1kOVJPVUtqaEY5cGVDVTVZZ0Vwb2thaTdtRmV2ekpZcGRqMEh5?=
 =?utf-8?B?SEFWRkVHaUNJdU8xTmNVVkpOR2w3Y0pNMTZYSVZOYldGL3RYeWRQSzVPZi9H?=
 =?utf-8?B?M2MvTm00QXlwVktDSjZnTnpuZXRZamdBVHV1UTVmZUNDN0hqTG9qRndvY0E5?=
 =?utf-8?B?QVFEanJab1V5aWlSM1ZOME95NkJCRXdEbSt6Q2hpS04vYlZXMGpTWmhtckFX?=
 =?utf-8?B?Q0FydWhVMjd2c0ZxOENJUC95dDA3a2ZKbytCQjJNbkN4bVpLTFI3RWhIejFX?=
 =?utf-8?B?QnREK3F6MGlVQUFSUTM1dXArK1V6WUQ2QnVKRkF4S3FBdm9Yem9GWkMzSW1i?=
 =?utf-8?B?SlhRRkdWd2YvbStwQnoxQ0JRS1Z2VGE1dlRnK0hYYlRiRnJNNVJBdU9iTm9W?=
 =?utf-8?B?WWYzS2did203QjZzaU9mTWt4c3JkdmF6U3NmNGZ3L0hOZjdRVjQ4dlRsQ3Fl?=
 =?utf-8?B?UExTWGpZVU4rR3MwS2pLMlJDcjdRZWxFOWVuZGplejBPWGVMWTBsMDFKS01p?=
 =?utf-8?B?YmwzZjhMSkEweFV5V1VPQzFxTFd2VjZiWTdGVXl6NWNWRFRNQ2wva00wT2hD?=
 =?utf-8?B?aUlWMmZta1dBTGNkbjJhMWxQVjhNeTNWUGRlN2ZjaEh3TjhIRlllRkRMOWpw?=
 =?utf-8?B?UjdnSGk2T0psREMzUUpEc2hjOUJGa0pISzZFQWx6UjJHMEdMMEduajNaOTVm?=
 =?utf-8?B?S21IUktFODF5c2d1RkNkSGUyakQxRHdwc3dwSmRaMFJlaWxJL3pNcDZYbDl3?=
 =?utf-8?B?TGlzRGZjdURuRE0zRE45UWNMYTZpd1A5NDRjSVp3VjIrWjA4QTFzcGFiTzRn?=
 =?utf-8?B?TGJpaHhWNzJvR2pINE8weVVBcHlaT1F3T1NvenZXT21WOG9qNGo0VmcvZVNx?=
 =?utf-8?B?aDM3OTk5L2orN0xWTjFvelV0VEM3V1JyaDZIbXpaNEFSOUZmekdZNm9PeXRI?=
 =?utf-8?B?eE1BdzZnSDIzTjFhNG9meGRsc3BsazhlMXo2WUUySjd0L2pKM2NlNEhKQWkv?=
 =?utf-8?B?d3dOaGtuOVFhQXhiYTNLdVZkdm1TanpuSGV0V0lyRWU0aTZwazFvbXYvNEdQ?=
 =?utf-8?B?NTF1bmx0MGhjNHk2ek5PeUhpeWxLNHNDTWlrUy9ETGRiNGtJWENVaHFjZk5D?=
 =?utf-8?B?K3dXcTJhQVArY3BNMFN6bzRKczM0NDZoWnl6cEZ1SUJnSnRUdWJscEJ3cEdH?=
 =?utf-8?B?cjd2bVN6bUZhWXljaTIxRjdveGNaOG5IOW1RQUZrdUJkem1UeG1EMGxYWEhh?=
 =?utf-8?B?dExHNFJERGlzem8yNFRNUjRxUWc2ZjhlM2FtWm9LamtWb0pQeXpTY2VpOHV6?=
 =?utf-8?B?N1VicmUxRWNRWEx0cmZvUFdPSjdvUWRKWkgxSE5EeU1XZDBKOHRJalRPTVpj?=
 =?utf-8?B?SENsQjVUUi9weW1KQkVGK1BEK0NhRG5HL0toQ2dtZHBudzBhTjl4UlpXdGh2?=
 =?utf-8?B?c1dHL083MldYbFRuZmVTQjVVQmswVzkrYTRhV29KY3FLOVdyUlpTTGp3UFpC?=
 =?utf-8?B?MEJCbHFocVA3M1BheW5yZXpmR0M0MXlNOHB1WExIakRYV09HcFovODVJNGdK?=
 =?utf-8?B?TjZDYTN5ZW4rMVZkTFBHaVhwK1hTSnQ0dFJHZGR1dXh4dHZOaVZyYVJ2RXlX?=
 =?utf-8?B?dFBxY05PWGt6VmcvMWtFUUdLRXZQL2FtV0pQejU1NThiT2VxOStNTHU4eWNG?=
 =?utf-8?B?WFppbWY3OHYrZkF1S1dsZ29xeDlPSHpzelVkeU81bmRVL0ZvRkppRWxvbklz?=
 =?utf-8?B?bGhaRGN2bm5OQWtVSXpwVjQ0WkdmZEhBM29TWWhNeXc0MVQ5VWVONnVycmho?=
 =?utf-8?B?ZjNaS25pRmphR01qVFNmKzhKWVNBWmIvL0JGRE1IU0k2cVpnVFltbmRmcjlD?=
 =?utf-8?B?MHRnMWpPejZsc2IxKzhnYURpUlZqY3pYa20wd2RpSmRXQjVNVlpzU3FwR3R6?=
 =?utf-8?B?b2x2eFFnWkg3UzNLNVdidEc4Z1kvZjdpZVJ1b2dob0lsdEg4bTZwRlJFVlcv?=
 =?utf-8?B?VXlQbXFKcDh4L0xuV3RTRVIrL3ZrUXpjUmVKTU1TMG9zWGpoVm5aeUt4aWhW?=
 =?utf-8?Q?kX5Ee1?=
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)(7416014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Apr 2025 00:00:21.2916
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 8e2a541b-41f6-4eba-0c94-08dd8455567a
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:
	SJ1PEPF000023D2.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR12MB7105

From: Federico Serafini <federico.serafini@bugseng.com>

MISRA C Rule 14.3 states that "Controlling expressions shall not be
invariant".

Add a SAF comment to deviate the rule for build configurations without
CONFIG_LLC_COLORING enabled.

Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
Signed-off-by: Victor Lira <victorm.lira@amd.com>
---
Cc: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>
Cc: Michal Orzel <michal.orzel@amd.com>
Cc: Jan Beulich <jbeulich@suse.com>
Cc: Julien Grall <julien@xen.org>
Cc: Roger Pau Monné <roger.pau@citrix.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>
Cc: Nicola Vetrini <nicola.vetrini@bugseng.com>
Cc: Federico Serafini <federico.serafini@bugseng.com>
Cc: Bertrand Marquis <bertrand.marquis@arm.com>
---

 docs/misra/safe.json    | 8 ++++++++
 xen/common/page_alloc.c | 1 +
 2 files changed, 9 insertions(+)

diff --git a/docs/misra/safe.json b/docs/misra/safe.json
index e3489dba8e..9438815d19 100644
--- a/docs/misra/safe.json
+++ b/docs/misra/safe.json
@@ -116,6 +116,14 @@
         },
         {
             "id": "SAF-14-safe",
+            "analyser": {
+                  "eclair": "MC3A2.R14.3"
+            },
+            "name": "Rule 14.3: loop controlling expression is invariant due to the build configuration",
+            "text": "The controlling expression of a loop can be invariant in a specific build configuration."
+        },
+        {
+            "id": "SAF-15-safe",
             "analyser": {},
             "name": "Sentinel",
             "text": "Next ID to be used"
diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c
index bd4538c28d..6d6ca7ca50 100644
--- a/xen/common/page_alloc.c
+++ b/xen/common/page_alloc.c
@@ -2038,6 +2038,7 @@ static struct page_info *alloc_color_heap_page(unsigned int memflags,

     spin_lock(&heap_lock);

+    /* SAF-14-safe MISRA C R14.3 condition always false without LLC_COLORING */
     for ( i = 0; i < domain_num_llc_colors(d); i++ )
     {
         unsigned long free = free_colored_pages[domain_llc_color(d, i)];
--
2.47.0


From xen-devel-bounces@lists.xenproject.org Sat Apr 26 00:00:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 26 Apr 2025 00:00:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.968873.1358317 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8Sy9-00009z-LD; Sat, 26 Apr 2025 00:00:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 968873.1358317; Sat, 26 Apr 2025 00:00:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8Sy9-00009p-HG; Sat, 26 Apr 2025 00:00:33 +0000
Received: by outflank-mailman (input) for mailman id 968873;
 Sat, 26 Apr 2025 00:00:31 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=P9o3=XM=amd.com=VictorM.Lira@srs-se1.protection.inumbo.net>)
 id 1u8Sy7-0008NA-A3
 for xen-devel@lists.xenproject.org; Sat, 26 Apr 2025 00:00:31 +0000
Received: from NAM10-BN7-obe.outbound.protection.outlook.com
 (mail-bn7nam10on2060d.outbound.protection.outlook.com
 [2a01:111:f403:2009::60d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7649bcd6-2231-11f0-9ffb-bf95429c2676;
 Sat, 26 Apr 2025 02:00:29 +0200 (CEST)
Received: from BY5PR13CA0010.namprd13.prod.outlook.com (2603:10b6:a03:180::23)
 by PH7PR12MB5925.namprd12.prod.outlook.com (2603:10b6:510:1d8::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.35; Sat, 26 Apr
 2025 00:00:24 +0000
Received: from SJ1PEPF000023D2.namprd02.prod.outlook.com
 (2603:10b6:a03:180:cafe::c4) by BY5PR13CA0010.outlook.office365.com
 (2603:10b6:a03:180::23) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.25 via Frontend Transport; Sat,
 26 Apr 2025 00:00:24 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ1PEPF000023D2.mail.protection.outlook.com (10.167.244.9) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8655.12 via Frontend Transport; Sat, 26 Apr 2025 00:00:24 +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, 25 Apr
 2025 19:00:21 -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, 25 Apr
 2025 19:00:21 -0500
Received: from xsjstefanos51.xilinx.com (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; Fri, 25 Apr 2025 19:00:20 -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: 7649bcd6-2231-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=w9XVeYu1MnPTvRTG5eU/utm1UahUPXfNQ+JRvEHy/1ErDd7KqbiOSIRAFT85OORTPeLXMRsZGGDKmPEdBBjj/1xLpDHEd0Aw8Ghas6oIiyRxU78z1LHqBOwiditJ9PAsYM6RROWZf3g+jNvXdHec0Pv9iEyhjs5utuK/HYS7j+4miUEyFIMS5/bHCMBLyNF/4jTvsj9EC570gcO2o9+VfrRy4Btl6RrVx/pB9S1iPsruqbOuYryc8tPvMsPoO25wIzS91aEjG4ZPJxJ1AxdSKJcjafuf1g85KoronLeWv858oAhlBjgR4DaX/maaw766FnKgqYm0jegSx/DTfzXk2A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=/9EL92AkaER7xWjfF8j3JdbDSsw+UUDA18EqCAWQYEo=;
 b=ZxcsktjbOQDUARP1BBnWFfJPLhc6979tMIeUt+puq1pl4mOa7jZ+f9CXHTlBHEMPTj0TDp1l01EobLJqYOhJ7mUof2zYIZ8pPFaUWBc1vKLi9DP76bnYTM7v7OSyw5092uHxgDsmGiA+Ypv1KGWfDK2sMnrm4k8R7VZdKq9J/J1+sNmSdwAITIn0jQI1AfM9fwwsbEZOXLWbV31bh/sUxmoKP7tqfbwvYXTJjbSwATeAnF36S1YhW1ipfgCbt6N842ztoxhXcanzG976ECiJ5HfcddyXxcPbsnbAqEgKj0vo9NYBQIs6NYlxq7jYogQA4PP1YYQz7UoTnYiOJMxFgw==
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=/9EL92AkaER7xWjfF8j3JdbDSsw+UUDA18EqCAWQYEo=;
 b=dzgUtO+FB384Dk1gEhMf8NXfHr5Jwiz2J4DQ0aTkSQsiZyZ3H6Guc1Mp095rkcBwN037BWrXMH0mjjLO0ZsxAjyKQPTY00VKAPYtQ+nJcNXS2v3z4bhK9IKtxOMKaNCxChQrmXsKYxfPj1fpGHwMmOLjjeNpa0sH2PMOXZpb3ww=
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: <victorm.lira@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Federico Serafini <federico.serafini@bugseng.com>, Victor Lira
	<victorm.lira@amd.com>, Andrew Cooper <andrew.cooper3@citrix.com>, "Anthony
 PERARD" <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Jan
 Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, "Stefano
 Stabellini" <sstabellini@kernel.org>, Nicola Vetrini
	<nicola.vetrini@bugseng.com>, Bertrand Marquis <bertrand.marquis@arm.com>
Subject: [PATCH v1 2/2] automation/eclair: add Rule 14.3 to the monitored set
Date: Fri, 25 Apr 2025 17:00:10 -0700
Message-ID: <d5e278584038bb8410bf81d0c67ebfbc5464caba.1745625477.git.victorm.lira@amd.com>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <5f2e316aae4667d1fe851e68552eb881c4d5a015.1745625477.git.victorm.lira@amd.com>
References: <5f2e316aae4667d1fe851e68552eb881c4d5a015.1745625477.git.victorm.lira@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
Received-SPF: None (SATLEXMB05.amd.com: victorm.lira@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF000023D2:EE_|PH7PR12MB5925:EE_
X-MS-Office365-Filtering-Correlation-Id: 91d026b6-f0c6-4526-539b-08dd84555852
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|7416014|376014|82310400026|36860700013|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?eWhwYWFYNktib3IzNVA5V3hxREpzcWorQnFDS3hzdElsSVZ3alh5NUlnWVVP?=
 =?utf-8?B?d3VFb0ZxNmp3c083Q20rNExQSVI1WEhTL1pyTGxub2MrTjB4R0FZWG15SGov?=
 =?utf-8?B?bEtqaWVUUlplR2lickdiN1Q1SlZWb3BvT3hQZlNUTjc2SVExekZ4cEFkY2xL?=
 =?utf-8?B?T1U0VlovVWNPRExLSC8zWERUbWNyVHJIUDdxSU0yNFpNZ3E5THhsUUJ2cks0?=
 =?utf-8?B?V3lXc0h4V3BGTEh3S3NmK2N6Ym9mQkYrOFprYS9jYmk2cVVQVWUxVlpZMUZE?=
 =?utf-8?B?R1VYZGh2RUZsVDNrdXlONGpIcTdpanVXZE9oRWxLbytGUEJvZ3Znam9YdU80?=
 =?utf-8?B?SmdpUG1RaWY4L3gyLzNjNGlweXBOY0NXeGVBR21XN3NpMThqRmhveU83T2dN?=
 =?utf-8?B?NkZNdUNjajZXbnVNVk9vWFpVVWF6MlZuSmxYT3MwY09wQnJVVDVHeWlmRWdn?=
 =?utf-8?B?MHFlK0NKa3pLaHFFOHRGUHVBUDRPTG03SEpRblkxc1Z5SE1aKzMzc2YrSnd2?=
 =?utf-8?B?UXpKa2F5MGNiMjdnc2RML2gwUTU1R2pRbGVoa1FvZ0I1SVVsZloxVzdrWExB?=
 =?utf-8?B?VWlkMUNuVFlURXl2TlNrMmdORm9RQTF6b0tBMUJ5bTk4bXBaU3habzdGRDZO?=
 =?utf-8?B?dkVoNW9jclpQMVRPSE43K1ZmZitJQ2ZZN2tZUkUzbCtWZmhCUm12SDM4d0ps?=
 =?utf-8?B?WEdYQS9keEs1bkVEeWpQWHE0dHZwcmRaT2hNTmFTUHJuZURodDZDcXZNSmN3?=
 =?utf-8?B?d2JSODlFUVMxTmRmYlZKZGtnYzBBQWcyK2ZBd25PS2VTR0xqcXRTN01PYTB6?=
 =?utf-8?B?WkN1cGVVcEpQajVIRHZxWCtjTE04cWl2V3J0MTB2TGF6SHhrTGo5bE9mQ1Z3?=
 =?utf-8?B?ZGlwREJ5bHFrUEhPelYvNUEzbk4wdjBtZXFxMkQreUdaQ2x5enFrR3lGUGZK?=
 =?utf-8?B?djkrRS91eUNjdHRNUW1XRUt2MWRCNmZubCs3TDBSNDYvWmtEeWZOOGhXUUtI?=
 =?utf-8?B?TVJVTmhvWGVacTNuOHAzUk5hMGpKcHhrQU13bC9QK3BxMGdIMi9iV085aE1Y?=
 =?utf-8?B?UWRMQ0srWm5wYlpUeFB2RkRqbndncEZiYmxnNUs2dFlnOUFGSHNya1AxQkFl?=
 =?utf-8?B?MXdubkxyOXcydDE5aHkyRTArY3Rwb0N4cEY5c3BKaDcvcHR2eVhjemlNazF3?=
 =?utf-8?B?S2N3a0JYYnBKUW1hREVaZTBqb3JmTHZhcmlaVUxBTTRxM1RNODFLL01nTEJH?=
 =?utf-8?B?NXFGSWpaSWs0a2d1dGRyU2NJRjRNVG1RY3lvakhoQ3cyQ2FKVHZkQVMzQVBz?=
 =?utf-8?B?VnNRRHdkS0ZuUGNFMlJLTWpDeGxjOVAyaTlHNVpoUU9GYWEyS2FJdFduSCtN?=
 =?utf-8?B?ZWhzU1lXN2syYWJteTVDMTJERThjaDFhUnkzUlhzWitCci9Ebkh1QVNyVUFQ?=
 =?utf-8?B?MGl0Zk1hK1Z3dDJ1eTdhZjNOYk14TWNjUTZWWTVObDQ5dXNNNkpMc2R0V1Rt?=
 =?utf-8?B?SDByRDltbzNJTzBZY2Y5MzhaNGt0MUY1Yk1MR1BwZUlpbE5uL2dYNEp4azlO?=
 =?utf-8?B?b2YvYUU0Z2N6Ri9CUjdSR0toZjNORmV0blRsdTN0ZzRRY2lpU05BVHM4STUz?=
 =?utf-8?B?cVNtTSsrdTVvN0dWU3ZSbktlZzIvZ21jcVYxS0tEd25RcmpSL0JKUmc2dHhQ?=
 =?utf-8?B?OGpyMkZIZnBQR2lhR3QrNVJSSGRnc3pqV0lpUFBmNEQzM3V6MjBiQkFuMkpz?=
 =?utf-8?B?N2tjMUVzWU05UTc2Z2ZrU2ZzeTFCQUZxOHZiUC94WnRLZ3FUSS9lRVdLV1E3?=
 =?utf-8?B?Z3JOWDh0MzhqeWl3eWFLRGJ3eS9ieHhoNHRraHZwTTZuSG1nWFpwR0lQeURy?=
 =?utf-8?B?cEkxbXZuSHJwTXpqdFRNaTQ2dmdiUm9iNSs5cWQ0cStacFdoZEZNQjRhN2Fx?=
 =?utf-8?B?eHBXeW5Ec2xoOUxDcUE2d1laRkdrYndZTzNTci9qQzhYSWgwWVQ0cis5RUFK?=
 =?utf-8?B?d2lPc1BxcmFIL2s4MUlSMkx3VVNoZ3l4c0ZKNjNIM1E3TEg4ZXVQOUFEVXNt?=
 =?utf-8?Q?xuOFAi?=
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)(7416014)(376014)(82310400026)(36860700013)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Apr 2025 00:00:24.3876
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 91d026b6-f0c6-4526-539b-08dd84555852
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:
	SJ1PEPF000023D2.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB5925

From: Federico Serafini <federico.serafini@bugseng.com>

MISRA C Rule 14.3 is already tagged as clean: add it to the
monitored set to avoid regressions.

Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
Signed-off-by: Victor Lira <victorm.lira@amd.com>
---
Cc: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>
Cc: Michal Orzel <michal.orzel@amd.com>
Cc: Jan Beulich <jbeulich@suse.com>
Cc: Julien Grall <julien@xen.org>
Cc: Roger Pau Monné <roger.pau@citrix.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>
Cc: Nicola Vetrini <nicola.vetrini@bugseng.com>
Cc: Federico Serafini <federico.serafini@bugseng.com>
Cc: Bertrand Marquis <bertrand.marquis@arm.com>
---

 automation/eclair_analysis/ECLAIR/monitored.ecl | 1 +
 1 file changed, 1 insertion(+)

diff --git a/automation/eclair_analysis/ECLAIR/monitored.ecl b/automation/eclair_analysis/ECLAIR/monitored.ecl
index 8351996ec8..ca2f5e3c7f 100644
--- a/automation/eclair_analysis/ECLAIR/monitored.ecl
+++ b/automation/eclair_analysis/ECLAIR/monitored.ecl
@@ -53,6 +53,7 @@
 -enable=MC3A2.R13.2
 -enable=MC3A2.R13.6
 -enable=MC3A2.R14.1
+-enable=MC3A2.R14.3
 -enable=MC3A2.R14.4
 -enable=MC3A2.R16.2
 -enable=MC3A2.R16.3
--
2.47.0


From xen-devel-bounces@lists.xenproject.org Sat Apr 26 01:54:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 26 Apr 2025 01:54:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.968913.1358327 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8Uk8-0000PM-C2; Sat, 26 Apr 2025 01:54:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 968913.1358327; Sat, 26 Apr 2025 01:54: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 1u8Uk8-0000PF-8w; Sat, 26 Apr 2025 01:54:12 +0000
Received: by outflank-mailman (input) for mailman id 968913;
 Sat, 26 Apr 2025 01:54: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=A0+o=XM=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1u8Uk6-0000P9-Mj
 for xen-devel@lists.xenproject.org; Sat, 26 Apr 2025 01:54:10 +0000
Received: from sender4-of-o50.zoho.com (sender4-of-o50.zoho.com
 [136.143.188.50]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 559da016-2241-11f0-9eb3-5ba50f476ded;
 Sat, 26 Apr 2025 03:54:08 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 1745632439777707.4674127985785;
 Fri, 25 Apr 2025 18:53: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: 559da016-2241-11f0-9eb3-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; t=1745632441; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=NGCXZI+PnLxpBS3Q9pDDWmpUi5bxUqmH+SaFyd+jXJLnSbdPUd31j1DAhVMvwlJYIQs3LqS/YBkxvM3lt+bu6rXvh9bRytmafuYu0fKFQU3vLjXHoAnx5ieKfTnYKgU3SsaPi7TuXjT/fIPmvaxK8YuUdPPflO8O5FmiAb6D42o=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1745632441; 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=obKdY4FQIvdJJNBhtdV9NmZsw75AY2aCjpc9JLtWZnY=; 
	b=LsSN7OJn51ot3B56Lw5U3EPBJeo372yPEEGC6cHT8mSshdhCXxzKoRINb1eWdeMYVDWPVc0SDiyXHONTCEQhzVAJWsuv3lqnnDlRctztLEKM7QO2g3vGN7mOu5BBaPCXNrWlfNkkHQeUEskKX3rWfQCexfGSnr9jykvqt+oizFE=
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=1745632441;
	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=obKdY4FQIvdJJNBhtdV9NmZsw75AY2aCjpc9JLtWZnY=;
	b=ezlVkC3UnxD/NMSiAgNa78KdmuU9fCVqwv3tMJU2FEN1EtTMLnz9cItO3IxEqcmM
	cNbbmAfMjqkDkYF18zGjVdvdI4vYZXAY42QPHKj3J5cpx97VuP2JXPa9IWw7eJhdT6m
	gxsDGXmaOFNKsVXim2xCZcnVu/WaGR8b9W2UJJGw=
Message-ID: <e7894126-d639-4a9c-b600-2287efe6666d@apertussolutions.com>
Date: Fri, 25 Apr 2025 21:53:58 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC 33/38] x86/boot: refactor bzimage parser to be re-enterant
Content-Language: en-US
To: Jason Andryuk <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org
Cc: stefano.stabellini@amd.com, agarciav@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: <20250419220820.4234-1-dpsmith@apertussolutions.com>
 <20250419220820.4234-34-dpsmith@apertussolutions.com>
 <bba25fca-171a-47dd-881b-4746d76bd16a@amd.com>
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
Autocrypt: addr=dpsmith@apertussolutions.com; keydata=
 xsJuBFYrueARCACPWL3r2bCSI6TrkIE/aRzj4ksFYPzLkJbWLZGBRlv7HQLvs6i/K4y/b4fs
 JDq5eL4e9BdfdnZm/b+K+Gweyc0Px2poDWwKVTFFRgxKWq9R7McwNnvuZ4nyXJBVn7PTEn/Z
 G7D08iZg94ZsnUdeXfgYdJrqmdiWA6iX9u84ARHUtb0K4r5WpLUMcQ8PVmnv1vVrs/3Wy/Rb
 foxebZNWxgUiSx+d02e3Ad0aEIur1SYXXv71mqKwyi/40CBSHq2jk9eF6zmEhaoFi5+MMMgX
 X0i+fcBkvmT0N88W4yCtHhHQds+RDbTPLGm8NBVJb7R5zbJmuQX7ADBVuNYIU8hx3dF3AQCm
 601w0oZJ0jGOV1vXQgHqZYJGHg5wuImhzhZJCRESIwf+PJxik7TJOgBicko1hUVOxJBZxoe0
 x+/SO6tn+s8wKlR1Yxy8gYN9ZRqV2I83JsWZbBXMG1kLzV0SAfk/wq0PAppA1VzrQ3JqXg7T
 MZ3tFgxvxkYqUP11tO2vrgys+InkZAfjBVMjqXWHokyQPpihUaW0a8mr40w9Qui6DoJj7+Gg
 DtDWDZ7Zcn2hoyrypuht88rUuh1JuGYD434Q6qwQjUDlY+4lgrUxKdMD8R7JJWt38MNlTWvy
 rMVscvZUNc7gxcmnFUn41NPSKqzp4DDRbmf37Iz/fL7i01y7IGFTXaYaF3nEACyIUTr/xxi+
 MD1FVtEtJncZNkRn7WBcVFGKMAf+NEeaeQdGYQ6mGgk++i/vJZxkrC/a9ZXme7BhWRP485U5
 sXpFoGjdpMn4VlC7TFk2qsnJi3yF0pXCKVRy1ukEls8o+4PF2JiKrtkCrWCimB6jxGPIG3lk
 3SuKVS/din3RHz+7Sr1lXWFcGYDENmPd/jTwr1A1FiHrSj+u21hnJEHi8eTa9029F1KRfocp
 ig+k0zUEKmFPDabpanI323O5Tahsy7hwf2WOQwTDLvQ+eqQu40wbb6NocmCNFjtRhNZWGKJS
 b5GrGDGu/No5U6w73adighEuNcCSNBsLyUe48CE0uTO7eAL6Vd+2k28ezi6XY4Y0mgASJslb
 NwW54LzSSM0uRGFuaWVsIFAuIFNtaXRoIDxkcHNtaXRoQGFwZXJ0dXNzb2x1dGlvbnMuY29t
 PsJ6BBMRCAAiBQJWK7ngAhsjBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRBTc6WbYpR8
 KrQ9AP94+xjtFfJ8gj5c7PVx06Zv9rcmFUqQspZ5wSEkvxOuQQEAg6qEsPYegI7iByLVzNEg
 7B7fUG7pqWIfMqFwFghYhQzOwU0EViu54BAIAL6MXXNlrJ5tRUf+KMBtVz1LJQZRt/uxWrCb
 T06nZjnbp2UcceuYNbISOVHGXTzu38r55YzpkEA8eURQf+5hjtvlrOiHxvpD+Z6WcpV6rrMB
 kcAKWiZTQihW2HoGgVB3gwG9dCh+n0X5OzliAMiGK2a5iqnIZi3o0SeW6aME94bSkTkuj6/7
 OmH9KAzK8UnlhfkoMg3tXW8L6/5CGn2VyrjbB/rcrbIR4mCQ+yCUlocuOjFCJhBd10AG1IcX
 OXUa/ux+/OAV9S5mkr5Fh3kQxYCTcTRt8RY7+of9RGBk10txi94dXiU2SjPbassvagvu/hEi
 twNHms8rpkSJIeeq0/cAAwUH/jV3tXpaYubwcL2tkk5ggL9Do+/Yo2WPzXmbp8vDiJPCvSJW
 rz2NrYkd/RoX+42DGqjfu8Y04F9XehN1zZAFmCDUqBMa4tEJ7kOT1FKJTqzNVcgeKNBGcT7q
 27+wsqbAerM4A0X/F/ctjYcKwNtXck1Bmd/T8kiw2IgyeOC+cjyTOSwKJr2gCwZXGi5g+2V8
 NhJ8n72ISPnOh5KCMoAJXmCF+SYaJ6hIIFARmnuessCIGw4ylCRIU/TiXK94soilx5aCqb1z
 ke943EIUts9CmFAHt8cNPYOPRd20pPu4VFNBuT4fv9Ys0iv0XGCEP+sos7/pgJ3gV3pCOric
 p15jV4PCYQQYEQgACQUCViu54AIbDAAKCRBTc6WbYpR8Khu7AP9NJrBUn94C/3PeNbtQlEGZ
 NV46Mx5HF0P27lH3sFpNrwD/dVdZ5PCnHQYBZ287ZxVfVr4Zuxjo5yJbRjT93Hl0vMY=
In-Reply-To: <bba25fca-171a-47dd-881b-4746d76bd16a@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

On 4/23/25 15:27, Jason Andryuk wrote:
> On 2025-04-19 18:08, Daniel P. Smith wrote:
>> The bzimage logic uses the unit global orig_image_len to hold the 
>> original
>> module length for the kernel when the headroom is calculated. It then 
>> uses
>> orig_image_len to locate the start of the bzimage when the expansion 
>> is done.
>> This is an issue when more than one bzimage is processed by the headroom
>> calculation logic, as it will leave orig_image_len set to the length 
>> of the
>> last bzimage it processed.
>>
>> The boot module work introduced storing the headroom size on a per module
>> basis. By passing in the headroom from the boot module, orig_image_len 
>> is no
>> longer needed to locate the beginning of the bzimage after the allocated
>> headroom. The bzimage functions are reworked as such, allowing the 
>> removal of
>> orig_image_len and enabling them to be reused by multiple kernel boot 
>> modules.
>>
>> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
>> ---
>>   xen/arch/x86/bzimage.c             | 38 ++++++++++++++++++------------
>>   xen/arch/x86/hvm/dom_build.c       |  3 ++-
>>   xen/arch/x86/include/asm/bzimage.h |  5 ++--
>>   xen/arch/x86/pv/dom0_build.c       |  3 ++-
>>   4 files changed, 30 insertions(+), 19 deletions(-)
>>
>> diff --git a/xen/arch/x86/bzimage.c b/xen/arch/x86/bzimage.c
>> index 66f648f311e4..32f0360d25b4 100644
> 
>> @@ -103,13 +100,20 @@ unsigned long __init bzimage_headroom(void 
>> *image_start,
>>       return headroom;
>>   }
>> -int __init bzimage_parse(void *image_base, void **image_start,
>> -                         unsigned long *image_len)
>> +int __init bzimage_parse(
>> +    void *image_base, void **image_start, unsigned long headroom,
>> +    unsigned long *image_len)
>>   {
>>       struct setup_header *hdr = (struct setup_header *)(*image_start);
>>       int err = bzimage_check(hdr, *image_len);
>> -    unsigned long output_len;
>> -
>> +    unsigned long module_len = *image_len;
>> +
>> +    /*
>> +     * Variable err will have one of three values:
>> +     *   -  < 0: a error occurred trying to inspect the contents
>> +     *   -  > 0: the image is a bzImage
>> +     *   - == 0: not a bzImage, could be raw elf or elf.gz (vmlinuz.gz)
>> +     */
> 
> This comment seems a little independent of this change, so maybe it 
> should be submitted separately.  Also, I think a better placement would 
> be next to bzimage_check().
> 
>>       if ( err < 0 )
>>           return err;
>> @@ -118,21 +122,25 @@ int __init bzimage_parse(void *image_base, void 
>> **image_start,
>>           *image_start += (hdr->setup_sects + 1) * 512 + hdr- 
>> >payload_offset;
>>           *image_len = hdr->payload_length;
> 
> @here
> 
>>       }
>> -
>> -    if ( elf_is_elfbinary(*image_start, *image_len) )
>> -        return 0;
>> +    else
>> +    {
>> +        if ( elf_is_elfbinary(*image_start, *image_len) )
>> +            return 0;
>> +        else
>> +            *image_len = *image_len - headroom;
>> +    }
> 
> I don't like this extra indention which includes the return.  If you 
> retain orig_image_len as a local variable, and set it above at "@here", 
> you can have a smaller diff and leave cleaner logic.

Right, but I find it sillier to be checking every kernel for elf when we 
know it's a bzImage. While the elf check is fairly simplistic, it is 
still multiple value checks.

> orig_image_len previously was set as a static variable, so the correct
> value was set after bzimage_headroom.  Now that it is no longer static,
> we need to grab the hdr->payload_length value when we have a bzImage.
> Otherwise output_length will read past the end of the module.

Yes, I am fully aware.

> Below is the diff for bzimage.c with the change I suggest.

I will provide an alternate version.

v/r,
dps


From xen-devel-bounces@lists.xenproject.org Sat Apr 26 06:45:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 26 Apr 2025 06:45:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.968947.1358336 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8ZIC-0000N7-Pb; Sat, 26 Apr 2025 06:45:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 968947.1358336; Sat, 26 Apr 2025 06: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 1u8ZIC-0000N0-Ms; Sat, 26 Apr 2025 06:45:40 +0000
Received: by outflank-mailman (input) for mailman id 968947;
 Sat, 26 Apr 2025 06:45: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=ssvg=XM=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u8ZIA-0000MM-3Y
 for xen-devel@lists.xenproject.org; Sat, 26 Apr 2025 06:45:39 +0000
Received: from mail-10628.protonmail.ch (mail-10628.protonmail.ch
 [79.135.106.28]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0e4bde2b-226a-11f0-9ffb-bf95429c2676;
 Sat, 26 Apr 2025 08:45:35 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0e4bde2b-226a-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1745649933; x=1745909133;
	bh=VENzbkyVPYR1Y5a3afq4GZqV1Qv8lIO0zeM/Sky7Qc8=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=GjM4MmCGOl3djT8HTZwBmYfMOUsR58uOXAivrU+4c/vsBj/h0pMFewi0fEm6RF7W/
	 IRNIIgbMcb8ZvIWIWY7LxFkyT0wZ8P80t42aTKgWnViSCgo9rfBeGriS4OhUx+zkf4
	 5i188Qa2ffYW9kEZYjtMDSCXzR4MOSu0HF0667Wi+OsCiSOrb25tddLoa2hVOqMdCG
	 7GBb9j0xOYSUhxfJJVIUFlTkhSBc9sFk3F5qIgvRGt6LF2lpQdHZuEGPKrLmFJ+PkV
	 bNfyiEgy8+aRy6E2tiiE2CFWQXT4UUMwMG0LHWlRQ963fAbFmslLAfn4vP6QBc/Rhn
	 lGfuWPzjm59fQ==
Date: Sat, 26 Apr 2025 06:45:28 +0000
To: Stefano Stabellini <sstabellini@kernel.org>
From: dmkhn@proton.me
Cc: xen-devel@lists.xenproject.org, Andrei Cherechesu <andrei.cherechesu@nxp.com>, michal.orzel@amd.com, jason.andryuk@amd.com
Subject: Re: [PATCH v7] uboot-script-gen: Dynamically compute addr and size when loading binaries
Message-ID: <aAyBBN1sqo/zppOT@starscream>
In-Reply-To: <alpine.DEB.2.22.394.2504251631190.785180@ubuntu-linux-20-04-desktop>
References: <alpine.DEB.2.22.394.2504251631190.785180@ubuntu-linux-20-04-desktop>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 84814b81e803b3bbb83cd24e02d3115e794a3b42
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Fri, Apr 25, 2025 at 04:35:06PM -0700, Stefano Stabellini wrote:
> From: Andrei Cherechesu <andrei.cherechesu@oss.nxp.com>
>=20
> Normally, the Imagebuilder would precompute the sizes of the loaded
> binaries and addresses where they are loaded before generating the
> script, and the sizes and addresses that needed to be provided to
> Xen via /chosen would be hardcoded in the boot script.
>=20
> Added an option via "-s" parameter to avoid hardcoding any
> address in the boot script, and dynamically compute the
> loading addresses for binaries. The first loading address is based
> on the MEMORY_START parameter and after loading each binary,
> the loading address and the size of the binary are stored in
> variables with corresponding names. Then, the loading address
> for the next binary is computed and aligned to 0x200000.
>=20
> If the "-s" parameter is not used, the normal flow is executed,
> where the loading addresses and sizes for each binaries are
> precomputed and hardcoded inside the script, but the loading
> addresses and sizes for each binary are now also stored for eventual
> later use.
>=20
> Reserved memory regions are left TBD in the -s case.
>=20
> Link: https://lists.xenproject.org/archives/html/xen-devel/2022-09/msg018=
62.html
> Signed-off-by: Andrei Cherechesu <andrei.cherechesu@nxp.com>
> Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>

Reviewed-by: Denis Mukhin <dmukhin@ford.com>

> ---
> Changes in v7:
> - use $()
> - better description and alphabetical order
> - use heredoc
>=20
> Changes in v6:
> - make initial ${memaddr} setting depending on CALC
>=20
> This patch adds quite a bit of complexity which is the reason why I
> didn't originally commit it. Now that we are enabling ImageBuilder in
> Yocto, it turns out this patch is required because Yocto invokes
> ImageBuilder before all the binaries are ready and available.
>=20
> Andrei, sorry for taking so long to realize why it is essential, but we
> are getting there now.
>=20
> The changes I made to the original patch are purely to make it simpler
> to maintain.
> ---
>=20
> diff --git a/README.md b/README.md
> index f8039ec..28c9e6b 100644
> --- a/README.md
> +++ b/README.md
> @@ -356,6 +356,8 @@ Where:\
>     can only be used  in combination with the -k option.  This adds the
>     public key into the dtb.  Then one can add this dtb back into the
>     u-boot bin or elf.\
> +-s addresses and sizes are calculated dynamically from U-Boot, hence
> +   binaries don't need to be available at the time of invocation.\
>=20
>  ### Signed FIT images
>=20
> diff --git a/scripts/uboot-script-gen b/scripts/uboot-script-gen
> index 638154a..73d9600 100755
> --- a/scripts/uboot-script-gen
> +++ b/scripts/uboot-script-gen
> @@ -1,8 +1,11 @@
>  #!/bin/bash
>=20
>  offset=3D$((2*1024*1024))
> +PADDING_MASK=3D$(printf "0x%X\n" $(($offset - 1)))
> +PADDING_MASK_INV=3D$(printf "0x%X\n" $((~$PADDING_MASK)))
>  filesize=3D0
>  prog_req=3D(mkimage file fdtput mktemp awk od)
> +CALC=3D""
>=20
>  function cleanup_and_return_err()
>  {
> @@ -100,17 +103,40 @@ function dt_set()
>      fi
>  }
>=20
> +function dt_set_calc()
> +{
> +    local path=3D$1
> +    local var=3D$2
> +    local name_var=3D$3
> +
> +    local addr_var=3D"$name_var"_addr
> +    local size_var=3D"$name_var"_size
> +
> +    cat >> $UBOOT_SOURCE <<- EOF
> +=09setexpr addr_hi \${$addr_var} / 0x100000000
> +=09setexpr addr_lo \${$addr_var} \& 0xFFFFFFFF
> +=09setexpr size_hi \${$size_var} / 0x100000000
> +=09setexpr size_lo \${$size_var} \& 0xFFFFFFFF
> +=09fdt set $path $var <0x\${addr_hi} 0x\${addr_lo} 0x\${size_hi} 0x\${si=
ze_lo}>
> +=09EOF
> +}
> +
>  function add_device_tree_kernel()
>  {
>      local path=3D$1
> -    local addr=3D$2
> -    local size=3D$3
> -    local bootargs=3D$4
> +    local name=3D$2
> +    local addr=3D$3
> +    local size=3D$4
> +    local bootargs=3D$5
>      local node_name=3D"module@${addr#0x}"
>=20
>      dt_mknode "$path" "$node_name"
>      dt_set "$path/$node_name" "compatible" "str_a" "multiboot,kernel mul=
tiboot,module"
> -    dt_set "$path/$node_name" "reg" "hex"  "$(split_addr_size $addr $siz=
e)"
> +    if test "$CALC"; then
> +        dt_set_calc "$path/$node_name" "reg" $name
> +    else
> +        dt_set "$path/$node_name" "reg" "hex"  "$(split_addr_size $addr =
$size)"
> +    fi
>      dt_set "$path/$node_name" "bootargs" "str" "$bootargs"
>  }
>=20
> @@ -118,26 +144,36 @@ function add_device_tree_kernel()
>  function add_device_tree_ramdisk()
>  {
>      local path=3D$1
> -    local addr=3D$2
> -    local size=3D$3
> +    local name=3D$2
> +    local addr=3D$3
> +    local size=3D$4
>      local node_name=3D"module@${addr#0x}"
>=20
>      dt_mknode "$path"  "$node_name"
>      dt_set "$path/$node_name" "compatible" "str_a" "multiboot,ramdisk mu=
ltiboot,module"
> -    dt_set "$path/$node_name" "reg" "hex"  "$(split_addr_size $addr $siz=
e)"
> +    if test "$CALC"; then
> +        dt_set_calc "$path/$node_name" "reg" $name
> +    else
> +        dt_set "$path/$node_name" "reg" "hex"  "$(split_addr_size $addr =
$size)"
> +    fi
>  }
>=20
>=20
>  function add_device_tree_passthrough()
>  {
>      local path=3D$1
> -    local addr=3D$2
> -    local size=3D$3
> +    local name=3D$2
> +    local addr=3D$3
> +    local size=3D$4
>      local node_name=3D"module@${addr#0x}"
>=20
>      dt_mknode "$path"  "$node_name"
>      dt_set "$path/$node_name" "compatible" "str_a" "multiboot,device-tre=
e multiboot,module"
> -    dt_set "$path/$node_name" "reg" "hex"  "$(split_addr_size $addr $siz=
e)"
> +    if test "$CALC"; then
> +        dt_set_calc "$path/$node_name" "reg" $name
> +    else
> +        dt_set "$path/$node_name" "reg" "hex"  "$(split_addr_size $addr =
$size)"
> +    fi
>  }
>=20
>  function add_device_tree_mem()
> @@ -358,7 +394,11 @@ function xen_device_tree_editing()
>=20
>          dt_mknode "/chosen" "$node_name"
>          dt_set "/chosen/$node_name" "compatible" "str_a" "xen,xsm-policy=
 xen,multiboot-module multiboot,module"
> -        dt_set "/chosen/$node_name" "reg" "hex" "$(split_addr_size $xen_=
policy_addr $xen_policy_size)"
> +        if test "$CALC"; then
> +            dt_set_calc "/chosen/$node_name" "reg" "xen_policy"
> +        else
> +            dt_set "/chosen/$node_name" "reg" "hex" "$(split_addr_size $=
xen_policy_addr $xen_policy_size)"
> +        fi
>      fi
>=20
>      if test "$DOM0_KERNEL"
> @@ -367,7 +407,11 @@ function xen_device_tree_editing()
>=20
>          dt_mknode "/chosen" "$node_name"
>          dt_set "/chosen/$node_name" "compatible" "str_a" "xen,linux-zima=
ge xen,multiboot-module multiboot,module"
> -        dt_set "/chosen/$node_name" "reg" "hex" "$(split_addr_size $dom0=
_kernel_addr $dom0_kernel_size)"
> +        if test "$CALC"; then
> +            dt_set_calc "/chosen/$node_name" "reg" "dom0_linux"
> +        else
> +            dt_set "/chosen/$node_name" "reg" "hex" "$(split_addr_size $=
dom0_kernel_addr $dom0_kernel_size)"
> +        fi
>          dt_set "/chosen" "xen,dom0-bootargs" "str" "$DOM0_CMD"
>      fi
>=20
> @@ -377,7 +421,11 @@ function xen_device_tree_editing()
>=20
>          dt_mknode "/chosen" "$node_name"
>          dt_set "/chosen/$node_name" "compatible" "str_a" "xen,linux-init=
rd xen,multiboot-module multiboot,module"
> -        dt_set "/chosen/$node_name" "reg" "hex" "$(split_addr_size $ramd=
isk_addr $ramdisk_size)"
> +        if test "$CALC"; then
> +            dt_set_calc "/chosen/$node_name" "reg" "dom0_ramdisk"
> +        else
> +            dt_set "/chosen/$node_name" "reg" "hex" "$(split_addr_size $=
ramdisk_addr $ramdisk_size)"
> +        fi
>      fi
>=20
>      i=3D0
> @@ -464,14 +512,14 @@ function xen_device_tree_editing()
>=20
>          xen_dt_domu_add_vcpu_nodes "/chosen/domU$i" $i ${DOMU_VCPUS[$i]}
>=20
> -        add_device_tree_kernel "/chosen/domU$i" ${domU_kernel_addr[$i]} =
${domU_kernel_size[$i]} "${DOMU_CMD[$i]}"
> +        add_device_tree_kernel "/chosen/domU$i" "domU${i}_kernel" ${domU=
_kernel_addr[$i]} ${domU_kernel_size[$i]} "${DOMU_CMD[$i]}"
>          if test "${domU_ramdisk_addr[$i]}"
>          then
> -            add_device_tree_ramdisk "/chosen/domU$i" ${domU_ramdisk_addr=
[$i]} ${domU_ramdisk_size[$i]}
> +            add_device_tree_ramdisk "/chosen/domU$i" "domU${i}_ramdisk" =
${domU_ramdisk_addr[$i]} ${domU_ramdisk_size[$i]}
>          fi
>          if test "${domU_passthrough_dtb_addr[$i]}"
>          then
> -            add_device_tree_passthrough "/chosen/domU$i" ${domU_passthro=
ugh_dtb_addr[$i]} ${domU_passthrough_dtb_size[$i]}
> +            add_device_tree_passthrough "/chosen/domU$i" "domU${i}_fdt" =
${domU_passthrough_dtb_addr[$i]} ${domU_passthrough_dtb_size[$i]}
>          fi
>          i=3D$(( $i + 1 ))
>      done
> @@ -504,7 +552,11 @@ function device_tree_editing()
>=20
>      if test $UBOOT_SOURCE
>      then
> -        echo "fdt addr $device_tree_addr" >> $UBOOT_SOURCE
> +        if test "$CALC"; then
> +            echo "fdt addr \${host_fdt_addr}" >> $UBOOT_SOURCE
> +        else
> +            echo "fdt addr $device_tree_addr" >> $UBOOT_SOURCE
> +        fi
>          echo "fdt resize 1024" >> $UBOOT_SOURCE
>=20
>          if test $NUM_DT_OVERLAY && test $NUM_DT_OVERLAY -gt 0
> @@ -512,7 +564,11 @@ function device_tree_editing()
>              i=3D0
>              while test $i -lt $NUM_DT_OVERLAY
>              do
> -                echo "fdt apply ${dt_overlay_addr[$i]}" >> $UBOOT_SOURCE
> +                if test "$CALC"; then
> +                    echo "fdt apply \${host_fdto${i}_addr}" >> $UBOOT_SO=
URCE
> +                else
> +                    echo "fdt apply ${dt_overlay_addr[$i]}" >> $UBOOT_SO=
URCE
> +                fi
>                  i=3D$(( $i + 1 ))
>              done
>          fi
> @@ -530,8 +586,12 @@ function fill_reserved_spaces_from_dtb()
>  {
>      if [ ! -f $DEVICE_TREE ]
>      then
> -        echo "File $DEVICE_TREE doesn't exist, exiting";
> -        cleanup_and_return_err
> +        if test "$CALC"; then
> +            return
> +        else
> +            echo "File $DEVICE_TREE doesn't exist, exiting";
> +            cleanup_and_return_err
> +        fi
>      fi
>=20
>      # Check if reserved-memory node exists
> @@ -613,7 +673,7 @@ function get_image_size()
>      printf "%u" $effective_size
>  }
>=20
> -function add_size()
> +function add_size_from_file()
>  {
>      local filename=3D$1
>      local size=3D`stat -L --printf=3D"%s" $filename`
> @@ -645,6 +705,26 @@ function add_size()
>      filesize=3D$size
>  }
>=20
> +function add_size_calculate()
> +{
> +    local fit_scr_name=3D$1
> +
> +    cat >> $UBOOT_SOURCE <<- EOF
> +=09setenv "$fit_scr_name"_addr \${memaddr}
> +=09setenv "$fit_scr_name"_size \${filesize}
> +=09setexpr memaddr \${memaddr} \+ \${filesize}
> +=09setexpr memaddr \${memaddr} \+ $PADDING_MASK
> +=09setexpr memaddr \${memaddr} \& $PADDING_MASK_INV
> +=09EOF
> +
> +    # TODO: missing ${RESERVED_MEM_SPACES[@]} check
> +
> +    # The following are updated to avoid collisions in node names, but
> +    # they are not actively used.
> +    memaddr=3D$((memaddr + offset))
> +    filesize=3D$offset
> +}
> +
>  function load_file()
>  {
>      local filename=3D$1
> @@ -657,10 +737,16 @@ function load_file()
>      if test "$FIT"
>      then
>          echo "imxtract \$fit_addr $fit_scr_name $memaddr" >> $UBOOT_SOUR=
CE
> +        add_size_from_file $filename
>      else
> -        echo "$LOAD_CMD $memaddr ${prepend_path:+$prepend_path/}$relativ=
e_path" >> $UBOOT_SOURCE
> +        if test "$CALC"; then
> +            echo "$LOAD_CMD \${memaddr} ${prepend_path:+$prepend_path/}$=
relative_path" >> $UBOOT_SOURCE
> +            add_size_calculate $fit_scr_name
> +        else
> +            echo "$LOAD_CMD $memaddr ${prepend_path:+$prepend_path/}$rel=
ative_path" >> $UBOOT_SOURCE
> +            add_size_from_file $filename
> +        fi
>      fi
> -    add_size $filename
>  }
>=20
>  function check_file_type()
> @@ -670,8 +756,13 @@ function check_file_type()
>=20
>      if [ ! -f $filename ]
>      then
> -        echo "File $filename doesn't exist, exiting";
> -        cleanup_and_return_err
> +        if test "$CALC"
> +        then
> +            return
> +        else
> +            echo "File $filename doesn't exist, exiting";
> +            cleanup_and_return_err
> +        fi
>      fi
>=20
>      # if file doesn't know what it is, it outputs data, so include that
> @@ -705,8 +796,13 @@ function check_compressed_file_type()
>=20
>      if [ ! -f $filename ]
>      then
> -        echo "File $filename doesn't exist, exiting";
> -        cleanup_and_return_err
> +        if test "$CALC"
> +        then
> +            return
> +        else
> +            echo "File $filename doesn't exist, exiting";
> +            cleanup_and_return_err
> +        fi
>      fi
>=20
>      file_type=3D$( file -L $filename )
> @@ -872,6 +968,12 @@ function linux_config()
>  generate_uboot_images()
>  {
>      local arch=3D$(file -L $XEN | grep -E 'ARM64|Aarch64')
> +
> +    if test "$CALC"
> +    then
> +        echo "bootm is not compatible with -s"
> +        cleanup_and_return_err
> +    fi
>=20
>      if test "$arch"
>      then
> @@ -997,7 +1099,11 @@ bitstream_load_and_config()
>          if test "$UBOOT_SOURCE"
>          then
>              # we assume the FPGA device is 0 here
> -            echo "fpga load 0 $bitstream_addr $bitstream_size" >> "$UBOO=
T_SOURCE"
> +            if test "$CALC"; then
> +                echo "fpga load 0 \${fpga_bitstream_addr} \${fpga_bitstr=
eam_size}" >> "$UBOOT_SOURCE"
> +            else
> +                echo "fpga load 0 $bitstream_addr $bitstream_size" >> "$=
UBOOT_SOURCE"
> +            fi
>          fi
>      fi
>  }
> @@ -1271,7 +1377,7 @@ function print_help
>  {
>      script=3D`basename "$0"`
>      echo "usage:"
> -    echo "=09$script -c CONFIG_FILE -d DIRECTORY [-t LOAD_CMD] [-o FILE]=
 [-k KEY_DIR/HINT [-u U-BOOT_DTB]] [-e] [-f] [-p PREPEND_PATH]"
> +    echo "=09$script -c CONFIG_FILE -d DIRECTORY [-t LOAD_CMD] [-o FILE]=
 [-k KEY_DIR/HINT [-u U-BOOT_DTB]] [-e] [-f] [-p PREPEND_PATH] [-s]"
>      echo "=09$script -h"
>      echo "where:"
>      echo "=09CONFIG_FILE - configuration file"
> @@ -1289,13 +1395,14 @@ function print_help
>      echo "=09-f - enable generating a FIT image"
>      echo "=09PREPEND_PATH - path to be appended before file names to mat=
ch deploy location within rootfs"
>      echo "=09-h - prints out the help message and exits "
> +    echo "=09-s - let U-Boot calculate binary images load addresses/size=
s dynamically"
>      echo "Defaults:"
>      echo "=09CONFIG_FILE=3D$cfg_file, UBOOT_TYPE=3D\"LOAD_CMD\" env var,=
 DIRECTORY=3D$uboot_dir"
>      echo "Example:"
>      echo "=09$script -c ../config -d ./build42 -t \"scsi load 1:1\""
>  }
>=20
> -while getopts ":c:t:d:ho:k:u:fp:" opt; do
> +while getopts ":c:t:d:ho:k:u:fp:s" opt; do
>      case ${opt} in
>      t )
>          case $OPTARG in
> @@ -1340,6 +1447,9 @@ while getopts ":c:t:d:ho:k:u:fp:" opt; do
>      p )
>          prepend_path=3D"$OPTARG"
>          ;;
> +    s )
> +        CALC=3Dy
> +        ;;
>      h )
>          print_help
>          exit 0
> @@ -1533,6 +1643,10 @@ uboot_addr=3D$memaddr
>  # 2MB are enough for a uboot script
>  memaddr=3D$(( $memaddr + $offset ))
>  memaddr=3D`printf "0x%X\n" $memaddr`
> +if test "$CALC"
> +then
> +    echo "setenv memaddr $memaddr" >> $UBOOT_SOURCE
> +fi
>=20
>  fill_reserved_spaces_from_dtb
>=20
> @@ -1583,7 +1697,11 @@ fi
>=20
>  if [ "$BOOT_CMD" !=3D "none" ]
>  then
> -    echo "$BOOT_CMD $kernel_addr $([ "$BOOT_CMD" =3D "bootefi" ] || echo=
 '-') $device_tree_addr" >> $UBOOT_SOURCE
> +    if test "$CALC"; then
> +        echo "$BOOT_CMD \${host_kernel_addr} $([ "$BOOT_CMD" =3D "bootef=
i" ] || echo '-') \${host_fdt_addr}" >> $UBOOT_SOURCE
> +    else
> +        echo "$BOOT_CMD $kernel_addr $([ "$BOOT_CMD" =3D "bootefi" ] || =
echo '-') $device_tree_addr" >> $UBOOT_SOURCE
> +    fi
>  else
>      # skip boot command but store load addresses to be used later
>      echo "setenv host_kernel_addr $kernel_addr" >> $UBOOT_SOURCE



From xen-devel-bounces@lists.xenproject.org Sat Apr 26 07:27:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 26 Apr 2025 07:27:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.968970.1358347 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8Zwa-00071s-Td; Sat, 26 Apr 2025 07:27:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 968970.1358347; Sat, 26 Apr 2025 07:27: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 1u8Zwa-00071l-QK; Sat, 26 Apr 2025 07:27:24 +0000
Received: by outflank-mailman (input) for mailman id 968970;
 Sat, 26 Apr 2025 07:27: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=ssvg=XM=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u8ZwY-00071f-IN
 for xen-devel@lists.xenproject.org; Sat, 26 Apr 2025 07:27:23 +0000
Received: from mail-10631.protonmail.ch (mail-10631.protonmail.ch
 [79.135.106.31]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e37b38f8-226f-11f0-9eb3-5ba50f476ded;
 Sat, 26 Apr 2025 09:27:20 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e37b38f8-226f-11f0-9eb3-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1745652438; x=1745911638;
	bh=VjAyQNIjtxK99AxpiwiswOvxpQEu4dQDUxS4qpU493s=;
	h=Date:To:From:Cc:Subject:Message-ID:Feedback-ID:From:To:Cc:Date:
	 Subject:Reply-To:Feedback-ID:Message-ID:BIMI-Selector:
	 List-Unsubscribe:List-Unsubscribe-Post;
	b=NTip1YwnTSs2DsekIYBYWGWs0S+GGXzxbETrFJ4lSOk2JEe44D8/6v9pGZ1T3pDQD
	 uTE7kaVkcpCK+i8JAr1wkT9LHRkciZ1xYPGjKcLNOdEGLkYR8/wdcJnp59neJg1b2X
	 FgA7qp6N295ORbrTlJ8mHt7g+gXK5zRPKZYOhgyOyTY6ICJeqyDD8qsWfXkV7hUTqD
	 SBbWLxDgv1T274oEsMIJYHpPaxlazz0T8kl5iUEITdwJULyqF14d5panXkBrK2Ux95
	 ZNgvDu9wQWoOIKwrFRHL0BgQTayxFP5vSbyWRKxZvkAWfSJWwYUcffjNkTlFvnFilx
	 Ot+gtktbb7RBg==
Date: Sat, 26 Apr 2025 07:27:12 +0000
To: xen-devel@lists.xenproject.org
From: dmkhn@proton.me
Cc: andrew.cooper3@citrix.com, jbeulich@suse.com, roger.pau@citrix.com, dmukhin@ford.com
Subject: [PATCH v4 0/3] x86/vmx: Update __vmread()
Message-ID: <20250426072656.39259-1-dmukhin@ford.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 8f0626220fdd2a9a758cd9019b9e1a281d9e25fa
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

The patch series reworks __vmread() by introducing a new cleaner API.

Patch 1 introduces a new vmread() call which will be a replacement for
__vmcall().
Patch 2 updates the type of arch_vcpu->dr7 field.
Patch 3 replaces __vmread() with vmread().

Link to v3: https://lore.kernel.org/xen-devel/20250422215833.522007-1-dmukh=
in@ford.com/
Link to CI: https://gitlab.com/xen-project/people/dmukhin/xen/-/pipelines/1=
787132005

Denis Mukhin (3):
  x86/vmx: Introduce vmread()
  x86/vmx: Update arch_vcpu->dr7 type
  x86/vmx: Replace __vmread() with vmread()

 docs/misra/function-macro-properties.json |   9 -
 xen/arch/x86/cpu/vpmu_intel.c             |   3 +-
 xen/arch/x86/hvm/vmx/intr.c               |  26 +--
 xen/arch/x86/hvm/vmx/realmode.c           |   2 +-
 xen/arch/x86/hvm/vmx/vmcs.c               |  11 +-
 xen/arch/x86/hvm/vmx/vmx.c                | 210 ++++++++++------------
 xen/arch/x86/hvm/vmx/vvmx.c               |  43 ++---
 xen/arch/x86/include/asm/domain.h         |   2 +-
 xen/arch/x86/include/asm/hvm/vmx/vmx.h    |  19 +-
 9 files changed, 134 insertions(+), 191 deletions(-)

--=20
2.34.1




From xen-devel-bounces@lists.xenproject.org Sat Apr 26 07:27:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 26 Apr 2025 07:27:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.968971.1358356 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8Zwo-0007IV-3E; Sat, 26 Apr 2025 07:27:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 968971.1358356; Sat, 26 Apr 2025 07:27:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8Zwo-0007IO-0d; Sat, 26 Apr 2025 07:27:38 +0000
Received: by outflank-mailman (input) for mailman id 968971;
 Sat, 26 Apr 2025 07:27: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=ssvg=XM=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u8Zwm-00071f-NN
 for xen-devel@lists.xenproject.org; Sat, 26 Apr 2025 07:27:36 +0000
Received: from mail-4316.protonmail.ch (mail-4316.protonmail.ch [185.70.43.16])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ece44583-226f-11f0-9eb3-5ba50f476ded;
 Sat, 26 Apr 2025 09:27:36 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ece44583-226f-11f0-9eb3-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1745652455; x=1745911655;
	bh=wuce2F8XhQtkwL25frhauUv7JiUBR5gDyh17uZrs2m0=;
	h=Date:To:From:Cc:Subject:Message-ID:Feedback-ID:From:To:Cc:Date:
	 Subject:Reply-To:Feedback-ID:Message-ID:BIMI-Selector:
	 List-Unsubscribe:List-Unsubscribe-Post;
	b=iQ111GOXT09mKcbkxGPjIIwYaS+w8//WWrVsQLAczZ/yTAldZA0LDBEGANvfCqdkR
	 ZFEaMdZvwm8B5TMgH+BMexgHkuMqNlbQtXII9A2/uPTF9R2qFgT/ZcESAanBm2ZqUH
	 EQwVZi+p5eRbzXkiHFmmhBW4/oSkkZnzWp90bQyVQsw5/0laAqEhM1H8iCjtNUe1XD
	 SAwmy/hEg/n0806fbqH6EpqUc85Teh7WJ1oDefiT76BHu1wDF5sEz09hk+F787sxzY
	 5biaTkr1/klk2vc7m4eKEXj6nFvyOLR/FiIhVqSp1ZpXO/ImZ/aKh3SIvj4VUQjQ+y
	 OmsIOKFHAYcnQ==
Date: Sat, 26 Apr 2025 07:27:29 +0000
To: xen-devel@lists.xenproject.org
From: dmkhn@proton.me
Cc: andrew.cooper3@citrix.com, jbeulich@suse.com, roger.pau@citrix.com, dmukhin@ford.com
Subject: [PATCH v4 1/3] x86/vmx: Introduce vmread()
Message-ID: <20250426072720.39317-1-dmukhin@ford.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 4740a4eca92b80fd0b2c2946a8de21d1667bc54f
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

From: Denis Mukhin <dmukhin@ford.com>

The current implementation of __vmread() returns the result via pointer
argument which leads to excess code in some places.

Introduce a new vmread() function as suggested in [1].

[1] https://lore.kernel.org/xen-devel/c452a1d7-4a57-4c5f-8a83-36a74ff228ec@=
citrix.com/

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
 xen/arch/x86/include/asm/hvm/vmx/vmx.h | 24 +++++++++++++++---------
 1 file changed, 15 insertions(+), 9 deletions(-)

diff --git a/xen/arch/x86/include/asm/hvm/vmx/vmx.h b/xen/arch/x86/include/=
asm/hvm/vmx/vmx.h
index 33d3d43a38..cc8c53fab1 100644
--- a/xen/arch/x86/include/asm/hvm/vmx/vmx.h
+++ b/xen/arch/x86/include/asm/hvm/vmx/vmx.h
@@ -320,16 +320,25 @@ static always_inline void __vmpclear(u64 addr)
     BUG();
 }
=20
-static always_inline void __vmread(unsigned long field, unsigned long *val=
ue)
+static always_inline unsigned long vmread(unsigned long field)
 {
-    asm volatile ( "vmread %1, %0\n\t"
+    unsigned long value;
+
+    asm volatile ( "vmread %[field], %[value]\n\t"
                    /* CF=3D=3D1 or ZF=3D=3D1 --> BUG() */
                    UNLIKELY_START(be, vmread)
                    _ASM_BUGFRAME_TEXT(0)
                    UNLIKELY_END_SECTION
-                   : "=3Drm" (*value)
-                   : "r" (field),
+                   : [value] "=3Drm" (value)
+                   : [field] "r" (field),
                      _ASM_BUGFRAME_INFO(BUGFRAME_bug, __LINE__, __FILE__, =
0) );
+
+    return value;
+}
+
+static always_inline void __vmread(unsigned long field, unsigned long *val=
ue)
+{
+    *value =3D vmread(field);
 }
=20
 static always_inline void __vmwrite(unsigned long field, unsigned long val=
ue)
@@ -363,7 +372,7 @@ static inline enum vmx_insn_errno vmread_safe(unsigned =
long field,
     if ( unlikely(fail_invalid) )
         ret =3D VMX_INSN_FAIL_INVALID;
     else if ( unlikely(fail_valid) )
-        __vmread(VM_INSTRUCTION_ERROR, &ret);
+        ret =3D vmread(VM_INSTRUCTION_ERROR);
=20
     return ret;
 }
@@ -371,8 +380,6 @@ static inline enum vmx_insn_errno vmread_safe(unsigned =
long field,
 static inline enum vmx_insn_errno vmwrite_safe(unsigned long field,
                                                unsigned long value)
 {
-    unsigned long ret;
-
     asm goto ( "vmwrite %[value], %[field]\n\t"
                "jc %l[vmfail_invalid]\n\t"
                "jz %l[vmfail_error]"
@@ -386,8 +393,7 @@ static inline enum vmx_insn_errno vmwrite_safe(unsigned=
 long field,
     return VMX_INSN_FAIL_INVALID;
=20
  vmfail_error:
-    __vmread(VM_INSTRUCTION_ERROR, &ret);
-    return ret;
+    return vmread(VM_INSTRUCTION_ERROR);
 }
=20
 static always_inline void __invept(unsigned long type, uint64_t eptp)
--=20
2.34.1




From xen-devel-bounces@lists.xenproject.org Sat Apr 26 07:27:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 26 Apr 2025 07:27:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.968978.1358367 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8Zx2-0007lI-Ai; Sat, 26 Apr 2025 07:27:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 968978.1358367; Sat, 26 Apr 2025 07: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 1u8Zx2-0007l8-7j; Sat, 26 Apr 2025 07:27:52 +0000
Received: by outflank-mailman (input) for mailman id 968978;
 Sat, 26 Apr 2025 07:27:50 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ssvg=XM=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u8Zx0-00071f-Nm
 for xen-devel@lists.xenproject.org; Sat, 26 Apr 2025 07:27:50 +0000
Received: from mail-4316.protonmail.ch (mail-4316.protonmail.ch [185.70.43.16])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f53e5b9f-226f-11f0-9eb3-5ba50f476ded;
 Sat, 26 Apr 2025 09:27:50 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f53e5b9f-226f-11f0-9eb3-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=u35343243rg35dyuekwrpevosy.protonmail; t=1745652469; x=1745911669;
	bh=HPfty69uBvTrq82vqiOmS6ersOWif3DTHgIUG7+hNJ8=;
	h=Date:To:From:Cc:Subject:Message-ID:Feedback-ID:From:To:Cc:Date:
	 Subject:Reply-To:Feedback-ID:Message-ID:BIMI-Selector:
	 List-Unsubscribe:List-Unsubscribe-Post;
	b=ZRIhWFPZBg/seUzg3BkcaRc3iPI8mdDe3+tYwuU3/qwnWtCoZ/0rB/72NTTHpgVrD
	 CP4ix9Zhq/L/s/YmiL5vjucW4eKI+4GWyF0xIL/6ZyTv98goQYQ9iKlkR4dxn87s5+
	 WFUhlThYzq/woQK+dOVcWSBxxnyxCgLrlAb723TIIfmN95nIYfjBR5E1SJObOWlQDb
	 2APZyxV+UlF5V8+0b/0o09N4tNNtXncyZiIzUC0N1bZl3nOtxLpf+giJ4oa4dKVwKl
	 bQ9iyq45OkGWYYECrSspgBuK+c/l4nNJTFIF/vsQPNNX0+wn3k8JD/MtMf3juTu907
	 0SaKD5yjB736g==
Date: Sat, 26 Apr 2025 07:27:44 +0000
To: xen-devel@lists.xenproject.org
From: dmkhn@proton.me
Cc: andrew.cooper3@citrix.com, jbeulich@suse.com, roger.pau@citrix.com, dmukhin@ford.com
Subject: [PATCH v4 2/3] x86/vmx: Update DR7 type
Message-ID: <20250426072739.39373-1-dmukhin@ford.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: b44d07f619a002cfab877a51c8b3ce4fabeaea88
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

From: Denis Mukhin <dmukhin@ford.com>

Convert the DR7 type to `unsigned int` and fix the accesses where necessary=
.

[1] https://lore.kernel.org/xen-devel/0d01646b-83e3-4a02-b365-d149d2664e73@=
citrix.com/

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
 xen/arch/x86/hvm/vmx/vmx.c        | 2 +-
 xen/arch/x86/include/asm/domain.h | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c
index 4883bd823d..75c6992172 100644
--- a/xen/arch/x86/hvm/vmx/vmx.c
+++ b/xen/arch/x86/hvm/vmx/vmx.c
@@ -926,7 +926,7 @@ static void vmx_save_dr(struct vcpu *v)
     v->arch.dr[3] =3D read_debugreg(3);
     v->arch.dr6   =3D read_debugreg(6);
     /* DR7 must be saved as it is used by vmx_restore_dr(). */
-    __vmread(GUEST_DR7, &v->arch.dr7);
+    v->arch.dr7 =3D vmread(GUEST_DR7);
 }
=20
 static void __restore_debug_registers(struct vcpu *v)
diff --git a/xen/arch/x86/include/asm/domain.h b/xen/arch/x86/include/asm/d=
omain.h
index 5fc1d1e5d0..a54ef3a8c1 100644
--- a/xen/arch/x86/include/asm/domain.h
+++ b/xen/arch/x86/include/asm/domain.h
@@ -595,7 +595,7 @@ struct arch_vcpu
=20
     /* Debug registers. */
     unsigned long dr[4];
-    unsigned long dr7; /* Ideally int, but __vmread() needs long. */
+    unsigned int dr7;
     unsigned int dr6;
=20
     /* other state */
--=20
2.34.1




From xen-devel-bounces@lists.xenproject.org Sat Apr 26 07:28:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 26 Apr 2025 07:28:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.968984.1358377 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8ZxG-0008Hq-Hy; Sat, 26 Apr 2025 07:28:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 968984.1358377; Sat, 26 Apr 2025 07:28: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 1u8ZxG-0008Hh-Es; Sat, 26 Apr 2025 07:28:06 +0000
Received: by outflank-mailman (input) for mailman id 968984;
 Sat, 26 Apr 2025 07:28: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=93tG=XM=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u8ZxE-00071f-7w
 for xen-devel@lists.xenproject.org; Sat, 26 Apr 2025 07:28:04 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fbb9c555-226f-11f0-9eb3-5ba50f476ded;
 Sat, 26 Apr 2025 09:28:02 +0200 (CEST)
Received: from [192.168.7.202] ([71.202.166.45]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53Q7RDlh4064371
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NO);
 Sat, 26 Apr 2025 00:27:14 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fbb9c555-226f-11f0-9eb3-5ba50f476ded
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53Q7RDlh4064371
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745652440;
	bh=9M1Htgas0CGK26R6ri7TrX3Gr2qZnASXeVTeX3rMiIs=;
	h=Date:Subject:To:Cc:References:From:In-Reply-To:From;
	b=RjCSEzfElpajKkgYYkV/+MBKINyow1AsiXOQ9t25nN80YY48sfqpaQzNKvS9wovLg
	 89fcrOmFuSALWEVhtziqyKoX4p5+bDKC5sOXnITQu0I9pzln1i6o6Kx+Zinny/P5J/
	 NtEGeb3UHVlgAvvXUqporCfcK2cJ/ScxE0e/jUuyshXzNKua/GrB89ci8uE7KvUwGr
	 Y+kiGMd8OPAUFViUOU2URxLWLLEYaoVuPqTFFCaZP8kPE0qL1U3xNnaxmiw3VuRSm3
	 mSAabdcMTMuBrPZX+0RkvM1HHS/HvGIAZaennDGAFdhkrlTWeAl7NP0whBGetXW0Sb
	 G0dkIqzJjgfFg==
Message-ID: <e62b81f3-1952-43e6-85fd-18c6f37d531d@zytor.com>
Date: Sat, 26 Apr 2025 00:27:12 -0700
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 01/14] x86/msr: Move rdtsc{,_ordered}() to <asm/tsc.h>
To: =?UTF-8?Q?Ilpo_J=C3=A4rvinen?= <ilpo.jarvinen@linux.intel.com>
Cc: LKML <linux-kernel@vger.kernel.org>, kvm@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
        linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
        Netdev <netdev@vger.kernel.org>, platform-driver-x86@vger.kernel.org,
        tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        acme@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com,
        peterz@infradead.org, namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com,
        dapeng1.mi@linux.intel.com
References: <20250425083442.2390017-1-xin@zytor.com>
 <20250425083442.2390017-2-xin@zytor.com>
 <42dc90e1-df2a-2324-d28c-d75fb525e4a2@linux.intel.com>
Content-Language: en-US
From: Xin Li <xin@zytor.com>
Autocrypt: addr=xin@zytor.com; keydata=
 xsDNBGUPz1cBDACS/9yOJGojBFPxFt0OfTWuMl0uSgpwk37uRrFPTTLw4BaxhlFL0bjs6q+0
 2OfG34R+a0ZCuj5c9vggUMoOLdDyA7yPVAJU0OX6lqpg6z/kyQg3t4jvajG6aCgwSDx5Kzg5
 Rj3AXl8k2wb0jdqRB4RvaOPFiHNGgXCs5Pkux/qr0laeFIpzMKMootGa4kfURgPhRzUaM1vy
 bsMsL8vpJtGUmitrSqe5dVNBH00whLtPFM7IbzKURPUOkRRiusFAsw0a1ztCgoFczq6VfAVu
 raTye0L/VXwZd+aGi401V2tLsAHxxckRi9p3mc0jExPc60joK+aZPy6amwSCy5kAJ/AboYtY
 VmKIGKx1yx8POy6m+1lZ8C0q9b8eJ8kWPAR78PgT37FQWKYS1uAroG2wLdK7FiIEpPhCD+zH
 wlslo2ETbdKjrLIPNehQCOWrT32k8vFNEMLP5G/mmjfNj5sEf3IOKgMTMVl9AFjsINLHcxEQ
 6T8nGbX/n3msP6A36FDfdSEAEQEAAc0WWGluIExpIDx4aW5Aenl0b3IuY29tPsLBDQQTAQgA
 NxYhBIUq/WFSDTiOvUIqv2u9DlcdrjdRBQJlD89XBQkFo5qAAhsDBAsJCAcFFQgJCgsFFgID
 AQAACgkQa70OVx2uN1HUpgv/cM2fsFCQodLArMTX5nt9yqAWgA5t1srri6EgS8W3F+3Kitge
 tYTBKu6j5BXuXaX3vyfCm+zajDJN77JHuYnpcKKr13VcZi1Swv6Jx1u0II8DOmoDYLb1Q2ZW
 v83W55fOWJ2g72x/UjVJBQ0sVjAngazU3ckc0TeNQlkcpSVGa/qBIHLfZraWtdrNAQT4A1fa
 sWGuJrChBFhtKbYXbUCu9AoYmmbQnsx2EWoJy3h7OjtfFapJbPZql+no5AJ3Mk9eE5oWyLH+
 QWqtOeJM7kKvn/dBudokFSNhDUw06e7EoVPSJyUIMbYtUO7g2+Atu44G/EPP0yV0J4lRO6EA
 wYRXff7+I1jIWEHpj5EFVYO6SmBg7zF2illHEW31JAPtdDLDHYcZDfS41caEKOQIPsdzQkaQ
 oW2hchcjcMPAfyhhRzUpVHLPxLCetP8vrVhTvnaZUo0xaVYb3+wjP+D5j/3+hwblu2agPsaE
 vgVbZ8Fx3TUxUPCAdr/p73DGg57oHjgezsDNBGUPz1gBDAD4Mg7hMFRQqlzotcNSxatlAQNL
 MadLfUTFz8wUUa21LPLrHBkUwm8RujehJrzcVbPYwPXIO0uyL/F///CogMNx7Iwo6by43KOy
 g89wVFhyy237EY76j1lVfLzcMYmjBoTH95fJC/lVb5Whxil6KjSN/R/y3jfG1dPXfwAuZ/4N
 cMoOslWkfZKJeEut5aZTRepKKF54T5r49H9F7OFLyxrC/uI9UDttWqMxcWyCkHh0v1Di8176
 jjYRNTrGEfYfGxSp+3jYL3PoNceIMkqM9haXjjGl0W1B4BidK1LVYBNov0rTEzyr0a1riUrp
 Qk+6z/LHxCM9lFFXnqH7KWeToTOPQebD2B/Ah5CZlft41i8L6LOF/LCuDBuYlu/fI2nuCc8d
 m4wwtkou1Y/kIwbEsE/6RQwRXUZhzO6llfoN96Fczr/RwvPIK5SVMixqWq4QGFAyK0m/1ap4
 bhIRrdCLVQcgU4glo17vqfEaRcTW5SgX+pGs4KIPPBE5J/ABD6pBnUUAEQEAAcLA/AQYAQgA
 JhYhBIUq/WFSDTiOvUIqv2u9DlcdrjdRBQJlD89ZBQkFo5qAAhsMAAoJEGu9DlcdrjdR4C0L
 /RcjolEjoZW8VsyxWtXazQPnaRvzZ4vhmGOsCPr2BPtMlSwDzTlri8BBG1/3t/DNK4JLuwEj
 OAIE3fkkm+UG4Kjud6aNeraDI52DRVCSx6xff3bjmJsJJMb12mWglN6LjdF6K+PE+OTJUh2F
 dOhslN5C2kgl0dvUuevwMgQF3IljLmi/6APKYJHjkJpu1E6luZec/lRbetHuNFtbh3xgFIJx
 2RpgVDP4xB3f8r0I+y6ua+p7fgOjDLyoFjubRGed0Be45JJQEn7A3CSb6Xu7NYobnxfkwAGZ
 Q81a2XtvNS7Aj6NWVoOQB5KbM4yosO5+Me1V1SkX2jlnn26JPEvbV3KRFcwV5RnDxm4OQTSk
 PYbAkjBbm+tuJ/Sm+5Yp5T/BnKz21FoCS8uvTiziHj2H7Cuekn6F8EYhegONm+RVg3vikOpn
 gao85i4HwQTK9/D1wgJIQkdwWXVMZ6q/OALaBp82vQ2U9sjTyFXgDjglgh00VRAHP7u1Rcu4
 l75w1xInsg==
In-Reply-To: <42dc90e1-df2a-2324-d28c-d75fb525e4a2@linux.intel.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 4/25/2025 8:45 AM, Ilpo Järvinen wrote:
> To me this looks really a random set of source files, maybe it helped some
> build success but it's hard for me to review this because there are still
> cases that depend on indirect include chains.
> 
> Could you just look into solving all missing msr.h includes instead
> as clearly some are still missing after 3 pre-existing ones and you adding
> it into 3 files:
> 
> $ git grep -e rdmsr -e wrmsr -l drivers/platform/x86/
> drivers/platform/x86/intel/ifs/core.c
> drivers/platform/x86/intel/ifs/load.c
> drivers/platform/x86/intel/ifs/runtest.c
> drivers/platform/x86/intel/pmc/cnp.c
> drivers/platform/x86/intel/pmc/core.c
> drivers/platform/x86/intel/speed_select_if/isst_if_common.c
> drivers/platform/x86/intel/speed_select_if/isst_if_mbox_msr.c
> drivers/platform/x86/intel/speed_select_if/isst_tpmi_core.c
> drivers/platform/x86/intel/tpmi_power_domains.c
> drivers/platform/x86/intel/turbo_max_3.c
> drivers/platform/x86/intel/uncore-frequency/uncore-frequency.c
> drivers/platform/x86/intel_ips.c
> 
> $ git grep -e 'msr.h' -l drivers/platform/x86/
> drivers/platform/x86/intel/pmc/core.c
> drivers/platform/x86/intel/tpmi_power_domains.c
> drivers/platform/x86/intel_ips.c

I think you want me to add all necessary direct inclusions, right?

This is the right thing to do, and I did try it but gave up later.

I will do it in the next iteration as you asked.  But I want to make my
points:

1) It's not just two patterns {rd,wr}msr, there are a lot of definitions
    in <asm/msr.h> and we need to cover all of them:

       struct msr_info
       struct msr_regs_info
       struct saved_msr
       struct saved_msrs
       {read,write}_msr
       rdpmc
       .*msr.*_on_cpu

2) Once all necessary direct inclusions are in place, it's easy to
    overlook adding a header inclusion in practice, especially if the
    build passes.  Besides we often forget to remove a header when a
    definition is removed.  In other words, direct inclusion is hard to
    maintain.

3) Some random kernel configuration combinations can cause the current
    kernel build to fail.  I hit one in x86 UML.


We all know Ingo is the best person to discuss this with :).  While my
understanding of the header inclusion issue may be inaccurate or
outdated.

So for me, using "make allyesconfig" is a practical method for a quick
local build check, plus I always send my patches to Intel LKP.


There probably wants a script that identifies all files that reference a
definition in a header thus need to include it explicitly.  And indirect
includes should be zapped.


> 
> I'd also prefer the patch(es) adding missing includes be in a different
> patch.

Great suggestion!  It clearly highlights the most significant changes.

Thanks!
     Xin


From xen-devel-bounces@lists.xenproject.org Sat Apr 26 07:30:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 26 Apr 2025 07:30:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.969011.1358387 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8Zzr-000211-VE; Sat, 26 Apr 2025 07:30:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 969011.1358387; Sat, 26 Apr 2025 07:30: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 1u8Zzr-00020u-SP; Sat, 26 Apr 2025 07:30:47 +0000
Received: by outflank-mailman (input) for mailman id 969011;
 Sat, 26 Apr 2025 07:30: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=ssvg=XM=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u8Zxk-00071f-PC
 for xen-devel@lists.xenproject.org; Sat, 26 Apr 2025 07:28:37 +0000
Received: from mail-24417.protonmail.ch (mail-24417.protonmail.ch
 [109.224.244.17]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 100d90e8-2270-11f0-9eb3-5ba50f476ded;
 Sat, 26 Apr 2025 09:28:35 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 100d90e8-2270-11f0-9eb3-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1745652513; x=1745911713;
	bh=2k8Mk3kc3F+0YvErEXnzgkBw6M5uw2wCq9kg770mwdw=;
	h=Date:To:From:Cc:Subject:Message-ID:Feedback-ID:From:To:Cc:Date:
	 Subject:Reply-To:Feedback-ID:Message-ID:BIMI-Selector:
	 List-Unsubscribe:List-Unsubscribe-Post;
	b=GhGmUdJVHPBxC+XQXwCRFdBhyx46MPAbYOCo17SRhzknN3WXqVVdeb5zWxUMrf9AO
	 6bjkQ4FFWC+isaAk359PfGYxUOBzWPJ2MWnCZNaJNvwEwjsX+Pw7uDcJf2FqFfHviL
	 ha+Q2CuGYzSypU0wEtrgfuvkSTxfJrxa5cEnqnjcU/PkjsCjC8rFqPqaq4o2O1LiTU
	 TC3HmqUHgBMYJtvAjXIiA2v7gBbrHvTCBoJIDYJM+sfXWGE7+ShdG7PgvbMDk/bu8r
	 Y1+ii1cRjAhJtWO4if/vFYuzItgI3/CRQwnnj+QPQBTEdA6Mo4GPfb4ud+G2lL09d7
	 n+l3trIg8cNPg==
Date: Sat, 26 Apr 2025 07:28:27 +0000
To: xen-devel@lists.xenproject.org
From: dmkhn@proton.me
Cc: andrew.cooper3@citrix.com, jbeulich@suse.com, roger.pau@citrix.com, nicola.vetrini@bugseng.com, consulting@bugseng.com, dmukhin@ford.com
Subject: [PATCH v4 3/3] x86/vmx: Replace __vmread() with vmread()
Message-ID: <20250426072819.39455-1-dmukhin@ford.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 2684f72b02a7e9379e664324772cbeae7103aa0b
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

From: Denis Mukhin <dmukhin@ford.com>

Use vmread() instead of __vmread() as per suggestion in [1] everywhere in t=
he
VT-x code.

Remove __vmread() and update ECLAIR configuration.

[1] https://lore.kernel.org/xen-devel/0d01646b-83e3-4a02-b365-d149d2664e73@=
citrix.com/

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
 docs/misra/function-macro-properties.json |   9 -
 xen/arch/x86/cpu/vpmu_intel.c             |   3 +-
 xen/arch/x86/hvm/vmx/intr.c               |  26 +--
 xen/arch/x86/hvm/vmx/realmode.c           |   2 +-
 xen/arch/x86/hvm/vmx/vmcs.c               |  11 +-
 xen/arch/x86/hvm/vmx/vmx.c                | 208 ++++++++++------------
 xen/arch/x86/hvm/vmx/vvmx.c               |  43 ++---
 xen/arch/x86/include/asm/hvm/vmx/vmx.h    |   5 -
 8 files changed, 122 insertions(+), 185 deletions(-)

diff --git a/docs/misra/function-macro-properties.json b/docs/misra/functio=
n-macro-properties.json
index 74058297b5..59ba63626e 100644
--- a/docs/misra/function-macro-properties.json
+++ b/docs/misra/function-macro-properties.json
@@ -152,15 +152,6 @@
             "taken": ""
          }
       },
-      {
-         "type": "function",
-         "value": "^__vmread.*$",
-         "properties":{
-            "pointee_write": "2=3Dalways",
-            "pointee_read": "2=3Dnever",
-            "taken": ""
-         }
-      },
       {
          "type": "function",
          "value": "^hvm_pci_decode_addr.*$",
diff --git a/xen/arch/x86/cpu/vpmu_intel.c b/xen/arch/x86/cpu/vpmu_intel.c
index 7ce98ee42e..7860b7c055 100644
--- a/xen/arch/x86/cpu/vpmu_intel.c
+++ b/xen/arch/x86/cpu/vpmu_intel.c
@@ -796,8 +796,7 @@ static int cf_check core2_vpmu_do_interrupt(void)
     else
     {
         /* No PMC overflow but perhaps a Trace Message interrupt. */
-        __vmread(GUEST_IA32_DEBUGCTL, &msr_content);
-        if ( !(msr_content & IA32_DEBUGCTLMSR_TR) )
+        if ( !(vmread(GUEST_IA32_DEBUGCTL) & IA32_DEBUGCTLMSR_TR) )
             return 0;
     }
=20
diff --git a/xen/arch/x86/hvm/vmx/intr.c b/xen/arch/x86/hvm/vmx/intr.c
index 91b407e6bc..07b0811fd5 100644
--- a/xen/arch/x86/hvm/vmx/intr.c
+++ b/xen/arch/x86/hvm/vmx/intr.c
@@ -63,9 +63,8 @@ static void vmx_enable_intr_window(struct vcpu *v, struct=
 hvm_intack intack)
=20
     if ( unlikely(tb_init_done) )
     {
-        unsigned long intr;
+        unsigned long intr =3D vmread(VM_ENTRY_INTR_INFO);
=20
-        __vmread(VM_ENTRY_INTR_INFO, &intr);
         TRACE(TRC_HVM_INTR_WINDOW, intack.vector, intack.source,
               (intr & INTR_INFO_VALID_MASK) ? intr & 0xff : -1);
     }
@@ -81,9 +80,8 @@ static void vmx_enable_intr_window(struct vcpu *v, struct=
 hvm_intack intack)
          * we may immediately vmexit and hance make no progress!
          * (see SDM 3B 21.3, "Other Causes of VM Exits").
          */
-        unsigned long intr_shadow;
+        unsigned long intr_shadow =3D vmread(GUEST_INTERRUPTIBILITY_INFO);
=20
-        __vmread(GUEST_INTERRUPTIBILITY_INFO, &intr_shadow);
         if ( intr_shadow & VMX_INTR_SHADOW_STI )
         {
             /* Having both STI-blocking and MOV-SS-blocking fails vmentry.=
 */
@@ -144,14 +142,8 @@ enum hvm_intblk cf_check nvmx_intr_blocked(struct vcpu=
 *v)
         if ( nvcpu->nv_vmexit_pending ||
              nvcpu->nv_vmswitch_in_progress )
             r =3D hvm_intblk_rflags_ie;
-        else
-        {
-            unsigned long intr_info;
-
-            __vmread(VM_ENTRY_INTR_INFO, &intr_info);
-            if ( intr_info & INTR_INFO_VALID_MASK )
-                r =3D hvm_intblk_rflags_ie;
-        }
+        else if ( vmread(VM_ENTRY_INTR_INFO) & INTR_INFO_VALID_MASK )
+            r =3D hvm_intblk_rflags_ie;
     }
     else if ( nvcpu->nv_vmentry_pending )
         r =3D hvm_intblk_rflags_ie;
@@ -253,8 +245,6 @@ void asmlinkage vmx_intr_assist(void)
     pt_vector =3D pt_update_irq(v);
=20
     do {
-        unsigned long intr_info;
-
         intack =3D hvm_vcpu_has_pending_irq(v);
         if ( likely(intack.source =3D=3D hvm_intsrc_none) )
             goto out;
@@ -275,8 +265,7 @@ void asmlinkage vmx_intr_assist(void)
                 goto out;
             }
=20
-            __vmread(VM_ENTRY_INTR_INFO, &intr_info);
-            if ( intr_info & INTR_INFO_VALID_MASK )
+            if ( vmread(VM_ENTRY_INTR_INFO) & INTR_INFO_VALID_MASK )
             {
                 if ( (intack.source =3D=3D hvm_intsrc_pic) ||
                      (intack.source =3D=3D hvm_intsrc_nmi) ||
@@ -299,8 +288,7 @@ void asmlinkage vmx_intr_assist(void)
         }
         else
         {
-            __vmread(VM_ENTRY_INTR_INFO, &intr_info);
-            if ( intr_info & INTR_INFO_VALID_MASK )
+            if ( vmread(VM_ENTRY_INTR_INFO) & INTR_INFO_VALID_MASK )
             {
                 vmx_enable_intr_window(v, intack);
                 goto out;
@@ -377,7 +365,7 @@ void asmlinkage vmx_intr_assist(void)
         }
=20
         /* we need update the RVI field */
-        __vmread(GUEST_INTR_STATUS, &status);
+        status =3D vmread(GUEST_INTR_STATUS);
         status &=3D ~VMX_GUEST_INTR_STATUS_SUBFIELD_BITMASK;
         status |=3D VMX_GUEST_INTR_STATUS_SUBFIELD_BITMASK &
                     intack.vector;
diff --git a/xen/arch/x86/hvm/vmx/realmode.c b/xen/arch/x86/hvm/vmx/realmod=
e.c
index ff44ddcfa6..40cbc273d0 100644
--- a/xen/arch/x86/hvm/vmx/realmode.c
+++ b/xen/arch/x86/hvm/vmx/realmode.c
@@ -159,7 +159,7 @@ void vmx_realmode(struct cpu_user_regs *regs)
     unsigned int emulations =3D 0;
=20
     /* Get-and-clear VM_ENTRY_INTR_INFO. */
-    __vmread(VM_ENTRY_INTR_INFO, &intr_info);
+    intr_info =3D vmread(VM_ENTRY_INTR_INFO);
     if ( intr_info & INTR_INFO_VALID_MASK )
         __vmwrite(VM_ENTRY_INTR_INFO, 0);
=20
diff --git a/xen/arch/x86/hvm/vmx/vmcs.c b/xen/arch/x86/hvm/vmx/vmcs.c
index a44475ae15..2386e67d28 100644
--- a/xen/arch/x86/hvm/vmx/vmcs.c
+++ b/xen/arch/x86/hvm/vmx/vmcs.c
@@ -1031,7 +1031,7 @@ u64 virtual_vmcs_vmread(const struct vcpu *v, u32 vmc=
s_encoding)
     u64 res;
=20
     virtual_vmcs_enter(v);
-    __vmread(vmcs_encoding, &res);
+    res =3D vmread(vmcs_encoding);
     virtual_vmcs_exit(v);
=20
     return res;
@@ -1691,7 +1691,7 @@ void vmx_vcpu_flush_pml_buffer(struct vcpu *v)
=20
     vmx_vmcs_enter(v);
=20
-    __vmread(GUEST_PML_INDEX, &pml_idx);
+    pml_idx =3D vmread(GUEST_PML_INDEX);
=20
     /* Do nothing if PML buffer is empty. */
     if ( pml_idx =3D=3D (NR_PML_ENTRIES - 1) )
@@ -1874,9 +1874,8 @@ void vmx_destroy_vmcs(struct vcpu *v)
 void vmx_vmentry_failure(void)
 {
     struct vcpu *curr =3D current;
-    unsigned long error;
+    unsigned long error =3D vmread(VM_INSTRUCTION_ERROR);
=20
-    __vmread(VM_INSTRUCTION_ERROR, &error);
     gprintk(XENLOG_ERR, "VM%s error: %#lx\n",
             curr->arch.hvm.vmx.launched ? "RESUME" : "LAUNCH", error);
=20
@@ -1905,7 +1904,6 @@ void cf_check vmx_do_resume(void)
 {
     struct vcpu *v =3D current;
     bool debug_state;
-    unsigned long host_cr4;
=20
     if ( v->arch.hvm.vmx.active_cpu =3D=3D smp_processor_id() )
         vmx_vmcs_reload(v);
@@ -1957,8 +1955,7 @@ void cf_check vmx_do_resume(void)
     hvm_do_resume(v);
=20
     /* Sync host CR4 in case its value has changed. */
-    __vmread(HOST_CR4, &host_cr4);
-    if ( host_cr4 !=3D read_cr4() )
+    if ( vmread(HOST_CR4) !=3D read_cr4() )
         __vmwrite(HOST_CR4, read_cr4());
=20
     reset_stack_and_jump(vmx_asm_do_vmentry);
diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c
index 75c6992172..272b3144d1 100644
--- a/xen/arch/x86/hvm/vmx/vmx.c
+++ b/xen/arch/x86/hvm/vmx/vmx.c
@@ -902,7 +902,7 @@ int cf_check vmx_guest_x86_mode(struct vcpu *v)
         return X86_MODE_REAL;
     if ( unlikely(guest_cpu_user_regs()->eflags & X86_EFLAGS_VM) )
         return X86_MODE_VM86;
-    __vmread(GUEST_CS_AR_BYTES, &cs_ar_bytes);
+    cs_ar_bytes =3D vmread(GUEST_CS_AR_BYTES);
     if ( hvm_long_mode_active(v) &&
          likely(cs_ar_bytes & X86_SEG_AR_CS_LM_ACTIVE) )
         return X86_MODE_64BIT;
@@ -952,7 +952,7 @@ static void __restore_debug_registers(struct vcpu *v)
  */
 static void vmx_restore_dr(struct vcpu *v)
 {
-    /* NB. __vmread() is not usable here, so we cannot read from the VMCS.=
 */
+    /* NB. vmread() is not usable here, so we cannot read from the VMCS. *=
/
     if ( unlikely(v->arch.dr7 & DR7_ACTIVE_MASK) )
         __restore_debug_registers(v);
 }
@@ -963,17 +963,17 @@ static void vmx_vmcs_save(struct vcpu *v, struct hvm_=
hw_cpu *c)
=20
     vmx_vmcs_enter(v);
=20
-    __vmread(GUEST_SYSENTER_CS, &c->sysenter_cs);
-    __vmread(GUEST_SYSENTER_ESP, &c->sysenter_esp);
-    __vmread(GUEST_SYSENTER_EIP, &c->sysenter_eip);
+    c->sysenter_cs =3D vmread(GUEST_SYSENTER_CS);
+    c->sysenter_esp =3D vmread(GUEST_SYSENTER_ESP);
+    c->sysenter_eip =3D vmread(GUEST_SYSENTER_EIP);
=20
-    __vmread(VM_ENTRY_INTR_INFO, &ev);
+    ev =3D vmread(VM_ENTRY_INTR_INFO);
     if ( (ev & INTR_INFO_VALID_MASK) &&
          hvm_event_needs_reinjection(MASK_EXTR(ev, INTR_INFO_INTR_TYPE_MAS=
K),
                                      ev & INTR_INFO_VECTOR_MASK) )
     {
         c->pending_event =3D ev;
-        __vmread(VM_ENTRY_EXCEPTION_ERROR_CODE, &ev);
+        ev =3D vmread(VM_ENTRY_EXCEPTION_ERROR_CODE);
         c->error_code =3D ev;
     }
=20
@@ -1197,11 +1197,7 @@ static void cf_check vmx_ctxt_switch_to(struct vcpu =
*v)
=20
 unsigned int vmx_get_cpl(void)
 {
-    unsigned long attr;
-
-    __vmread(GUEST_SS_AR_BYTES, &attr);
-
-    return MASK_EXTR(attr, X86_SEG_AR_DPL);
+    return MASK_EXTR(vmread(GUEST_SS_AR_BYTES), X86_SEG_AR_DPL);
 }
=20
 static unsigned int cf_check _vmx_get_cpl(struct vcpu *v)
@@ -1271,14 +1267,14 @@ static void cf_check vmx_get_segment_register(
         fallthrough;
=20
     case x86_seg_es ... x86_seg_gs:
-        __vmread(GUEST_SEG_SELECTOR(tmp_seg), &sel);
-        __vmread(GUEST_SEG_AR_BYTES(tmp_seg), &attr);
+        sel =3D vmread(GUEST_SEG_SELECTOR(tmp_seg));
+        attr =3D vmread(GUEST_SEG_AR_BYTES(tmp_seg));
         fallthrough;
=20
     case x86_seg_gdtr:
     case x86_seg_idtr:
-        __vmread(GUEST_SEG_LIMIT(tmp_seg),    &limit);
-        __vmread(GUEST_SEG_BASE(tmp_seg),     &reg->base);
+        limit =3D vmread(GUEST_SEG_LIMIT(tmp_seg));
+        reg->base =3D vmread(GUEST_SEG_BASE(tmp_seg));
         break;
=20
     default:
@@ -1436,7 +1432,7 @@ static int cf_check vmx_get_guest_pat(struct vcpu *v,=
 u64 *gpat)
         return 0;
=20
     vmx_vmcs_enter(v);
-    __vmread(GUEST_PAT, gpat);
+    *gpat =3D vmread(GUEST_PAT);
     vmx_vmcs_exit(v);
     return 1;
 }
@@ -1555,11 +1551,7 @@ static void cf_check vmx_init_hypercall_page(void *p=
)
=20
 static unsigned int cf_check vmx_get_interrupt_shadow(struct vcpu *v)
 {
-    unsigned long intr_shadow;
-
-    __vmread(GUEST_INTERRUPTIBILITY_INFO, &intr_shadow);
-
-    return intr_shadow;
+    return vmread(GUEST_INTERRUPTIBILITY_INFO);
 }
=20
 static void cf_check vmx_set_interrupt_shadow(
@@ -1573,12 +1565,12 @@ static void cf_check vmx_get_nonreg_state(struct vc=
pu *v,
 {
     vmx_vmcs_enter(v);
=20
-    __vmread(GUEST_ACTIVITY_STATE, &nrs->vmx.activity_state);
-    __vmread(GUEST_INTERRUPTIBILITY_INFO, &nrs->vmx.interruptibility_info)=
;
-    __vmread(GUEST_PENDING_DBG_EXCEPTIONS, &nrs->vmx.pending_dbg);
+    nrs->vmx.activity_state =3D vmread(GUEST_ACTIVITY_STATE);
+    nrs->vmx.interruptibility_info =3D vmread(GUEST_INTERRUPTIBILITY_INFO)=
;
+    nrs->vmx.pending_dbg =3D vmread(GUEST_PENDING_DBG_EXCEPTIONS);
=20
     if ( cpu_has_vmx_virtual_intr_delivery )
-        __vmread(GUEST_INTR_STATUS, &nrs->vmx.interrupt_status);
+        nrs->vmx.interrupt_status =3D vmread(GUEST_INTR_STATUS);
=20
     vmx_vmcs_exit(v);
 }
@@ -1896,7 +1888,7 @@ static void cf_check vmx_update_guest_efer(struct vcp=
u *v)
      * The intended guest running mode is derived from VM_ENTRY_IA32E_MODE=
,
      * which (architecturally) is the guest's LMA setting.
      */
-    __vmread(VM_ENTRY_CONTROLS, &entry_ctls);
+    entry_ctls =3D vmread(VM_ENTRY_CONTROLS);
=20
     entry_ctls &=3D ~VM_ENTRY_IA32E_MODE;
     if ( guest_efer & EFER_LMA )
@@ -2063,9 +2055,10 @@ static void cf_check vmx_inject_event(const struct x=
86_event *event)
         {
             unsigned long val;
=20
-            __vmread(GUEST_DR7, &val);
+            val =3D vmread(GUEST_DR7);
             __vmwrite(GUEST_DR7, val & ~DR_GENERAL_DETECT);
-            __vmread(GUEST_IA32_DEBUGCTL, &val);
+
+            val =3D vmread(GUEST_IA32_DEBUGCTL);
             __vmwrite(GUEST_IA32_DEBUGCTL, val & ~IA32_DEBUGCTLMSR_LBR);
         }
         if ( cpu_has_monitor_trap_flag )
@@ -2089,7 +2082,7 @@ static void cf_check vmx_inject_event(const struct x8=
6_event *event)
     if ( nestedhvm_vcpu_in_guestmode(curr) )
         intr_info =3D vcpu_2_nvmx(curr).intr.intr_info;
     else
-        __vmread(VM_ENTRY_INTR_INFO, &intr_info);
+        intr_info =3D vmread(VM_ENTRY_INTR_INFO);
=20
     if ( unlikely(intr_info & INTR_INFO_VALID_MASK) &&
          (MASK_EXTR(intr_info, INTR_INFO_INTR_TYPE_MASK) =3D=3D X86_ET_HW_=
EXC) )
@@ -2125,12 +2118,9 @@ static void cf_check vmx_inject_event(const struct x=
86_event *event)
=20
 static bool cf_check vmx_event_pending(const struct vcpu *v)
 {
-    unsigned long intr_info;
-
     ASSERT(v =3D=3D current);
-    __vmread(VM_ENTRY_INTR_INFO, &intr_info);
=20
-    return intr_info & INTR_INFO_VALID_MASK;
+    return vmread(VM_ENTRY_INTR_INFO) & INTR_INFO_VALID_MASK;
 }
=20
 static void cf_check vmx_set_info_guest(struct vcpu *v)
@@ -2149,7 +2139,7 @@ static void cf_check vmx_set_info_guest(struct vcpu *=
v)
      * to set the GUEST_PENDING_DBG_EXCEPTIONS.BS here incurs
      * immediately vmexit and hence make no progress.
      */
-    __vmread(GUEST_INTERRUPTIBILITY_INFO, &intr_shadow);
+    intr_shadow =3D vmread(GUEST_INTERRUPTIBILITY_INFO);
     if ( v->domain->debugger_attached &&
          (v->arch.user_regs.eflags & X86_EFLAGS_TF) &&
          (intr_shadow & VMX_INTR_SHADOW_STI) )
@@ -2178,7 +2168,7 @@ static u8 set_svi(int isr)
     if ( isr < 0 )
         isr =3D 0;
=20
-    __vmread(GUEST_INTR_STATUS, &status);
+    status =3D vmread(GUEST_INTR_STATUS);
     old =3D status >> VMX_GUEST_INTR_STATUS_SVI_OFFSET;
     if ( isr !=3D old )
     {
@@ -2518,9 +2508,9 @@ static bool cf_check vmx_vcpu_emulate_ve(struct vcpu =
*v)
     veinfo->eptp_index =3D vcpu_altp2m(v).p2midx;
=20
     vmx_vmcs_enter(v);
-    __vmread(EXIT_QUALIFICATION, &veinfo->exit_qualification);
-    __vmread(GUEST_LINEAR_ADDRESS, &veinfo->gla);
-    __vmread(GUEST_PHYSICAL_ADDRESS, &veinfo->gpa);
+    veinfo->exit_qualification =3D vmread(EXIT_QUALIFICATION);
+    veinfo->gla =3D vmread(GUEST_LINEAR_ADDRESS);
+    veinfo->gpa =3D vmread(GUEST_PHYSICAL_ADDRESS);
     vmx_vmcs_exit(v);
=20
     hvm_inject_hw_exception(X86_EXC_VE,
@@ -2541,8 +2531,8 @@ static bool cf_check vmx_get_pending_event(
     unsigned long intr_info, error_code;
=20
     vmx_vmcs_enter(v);
-    __vmread(VM_ENTRY_INTR_INFO, &intr_info);
-    __vmread(VM_ENTRY_EXCEPTION_ERROR_CODE, &error_code);
+    intr_info =3D vmread(VM_ENTRY_INTR_INFO);
+    error_code =3D vmread(VM_ENTRY_EXCEPTION_ERROR_CODE);
     vmx_vmcs_exit(v);
=20
     if ( !(intr_info & INTR_INFO_VALID_MASK) )
@@ -2739,11 +2729,11 @@ static uint64_t cf_check vmx_get_reg(struct vcpu *v=
, unsigned int reg)
     {
     case MSR_SPEC_CTRL:
         ASSERT(cpu_has_vmx_virt_spec_ctrl);
-        __vmread(SPEC_CTRL_SHADOW, &val);
+        val =3D vmread(SPEC_CTRL_SHADOW);
         break;
=20
     case MSR_IA32_BNDCFGS:
-        __vmread(GUEST_BNDCFGS, &val);
+        val =3D vmread(GUEST_BNDCFGS);
         break;
=20
     default:
@@ -3161,9 +3151,9 @@ void __init vmx_fill_funcs(void)
  */
 static int get_instruction_length(void)
 {
-    unsigned long len;
+    /* Safe: callers audited */
+    unsigned long len =3D vmread(VM_EXIT_INSTRUCTION_LEN);
=20
-    __vmread(VM_EXIT_INSTRUCTION_LEN, &len); /* Safe: callers audited */
     BUG_ON((len < 1) || (len > MAX_INST_LEN));
     return len;
 }
@@ -3176,7 +3166,7 @@ void update_guest_eip(void)
     regs->rip +=3D get_instruction_length(); /* Safe: callers audited */
     regs->eflags &=3D ~X86_EFLAGS_RF;
=20
-    __vmread(GUEST_INTERRUPTIBILITY_INFO, &x);
+    x =3D vmread(GUEST_INTERRUPTIBILITY_INFO);
     if ( x & (VMX_INTR_SHADOW_STI | VMX_INTR_SHADOW_MOV_SS) )
     {
         x &=3D ~(VMX_INTR_SHADOW_STI | VMX_INTR_SHADOW_MOV_SS);
@@ -3424,21 +3414,21 @@ static int cf_check vmx_msr_read_intercept(
     switch ( msr )
     {
     case MSR_IA32_SYSENTER_CS:
-        __vmread(GUEST_SYSENTER_CS, msr_content);
+        *msr_content =3D vmread(GUEST_SYSENTER_CS);
         break;
     case MSR_IA32_SYSENTER_ESP:
-        __vmread(GUEST_SYSENTER_ESP, msr_content);
+        *msr_content =3D vmread(GUEST_SYSENTER_ESP);
         break;
     case MSR_IA32_SYSENTER_EIP:
-        __vmread(GUEST_SYSENTER_EIP, msr_content);
+        *msr_content =3D vmread(GUEST_SYSENTER_EIP);
         break;
=20
     case MSR_FS_BASE:
-        __vmread(GUEST_FS_BASE, msr_content);
+        *msr_content =3D vmread(GUEST_FS_BASE);
         break;
=20
     case MSR_GS_BASE:
-        __vmread(GUEST_GS_BASE, msr_content);
+        *msr_content =3D vmread(GUEST_GS_BASE);
         break;
=20
     case MSR_SHADOW_GS_BASE:
@@ -3462,7 +3452,7 @@ static int cf_check vmx_msr_read_intercept(
         break;
=20
     case MSR_IA32_DEBUGCTLMSR:
-        __vmread(GUEST_IA32_DEBUGCTL, msr_content);
+        *msr_content =3D vmread(GUEST_IA32_DEBUGCTL);
         break;
=20
     case MSR_IA32_VMX_BASIC...MSR_IA32_VMX_VMFUNC:
@@ -3828,7 +3818,7 @@ static void vmx_do_extint(struct cpu_user_regs *regs)
 {
     unsigned long vector;
=20
-    __vmread(VM_EXIT_INTR_INFO, &vector);
+    vector =3D vmread(VM_EXIT_INTR_INFO);
     BUG_ON(!(vector & INTR_INFO_VALID_MASK));
=20
     vector &=3D INTR_INFO_VECTOR_MASK;
@@ -3893,7 +3883,7 @@ static void ept_handle_violation(ept_qual_t q, paddr_=
t gpa)
=20
     if ( q.gla_valid )
     {
-        __vmread(GUEST_LINEAR_ADDRESS, &gla);
+        gla =3D vmread(GUEST_LINEAR_ADDRESS);
         npfec.gla_valid =3D 1;
         if( q.gla_fault )
             npfec.kind =3D npfec_kind_with_gla;
@@ -3944,7 +3934,7 @@ static void vmx_failed_vmentry(unsigned int exit_reas=
on,
     struct vcpu *curr =3D current;
=20
     printk("%pv vmentry failure (reason %#x): ", curr, exit_reason);
-    __vmread(EXIT_QUALIFICATION, &exit_qualification);
+    exit_qualification =3D vmread(EXIT_QUALIFICATION);
     switch ( failed_vmentry_reason )
     {
     case EXIT_REASON_INVALID_GUEST_STATE:
@@ -4001,13 +3991,12 @@ void vmx_enter_realmode(struct cpu_user_regs *regs)
=20
 static int vmx_handle_eoi_write(void)
 {
-    unsigned long exit_qualification;
+    unsigned long exit_qualification =3D vmread(EXIT_QUALIFICATION);
=20
     /*
      * 1. Must be a linear access data write.
      * 2. Data write must be to the EOI register.
      */
-    __vmread(EXIT_QUALIFICATION, &exit_qualification);
     if ( (((exit_qualification >> 12) & 0xf) =3D=3D 1) &&
          ((exit_qualification & 0xfff) =3D=3D APIC_EOI) )
     {
@@ -4033,21 +4022,14 @@ static void vmx_propagate_intr(unsigned long intr)
         .vector =3D MASK_EXTR(intr, INTR_INFO_VECTOR_MASK),
         .type =3D MASK_EXTR(intr, INTR_INFO_INTR_TYPE_MASK),
     };
-    unsigned long tmp;
=20
     if ( intr & INTR_INFO_DELIVER_CODE_MASK )
-    {
-        __vmread(VM_EXIT_INTR_ERROR_CODE, &tmp);
-        event.error_code =3D tmp;
-    }
+        event.error_code =3D vmread(VM_EXIT_INTR_ERROR_CODE);
     else
         event.error_code =3D X86_EVENT_NO_EC;
=20
     if ( event.type >=3D X86_ET_SW_INT )
-    {
-        __vmread(VM_EXIT_INSTRUCTION_LEN, &tmp);
-        event.insn_len =3D tmp;
-    }
+        event.insn_len =3D vmread(VM_EXIT_INSTRUCTION_LEN);
     else
         event.insn_len =3D 0;
=20
@@ -4071,7 +4053,7 @@ static void vmx_idtv_reinject(unsigned long idtv_info=
)
             {
                 unsigned long ec;
=20
-                __vmread(IDT_VECTORING_ERROR_CODE, &ec);
+                ec =3D vmread(IDT_VECTORING_ERROR_CODE);
                 __vmwrite(VM_ENTRY_EXCEPTION_ERROR_CODE, ec);
             }
         }
@@ -4086,7 +4068,7 @@ static void vmx_idtv_reinject(unsigned long idtv_info=
)
         {
             unsigned long intr_info;
=20
-            __vmread(GUEST_INTERRUPTIBILITY_INFO, &intr_info);
+            intr_info =3D vmread(GUEST_INTERRUPTIBILITY_INFO);
             __vmwrite(GUEST_INTERRUPTIBILITY_INFO,
                       intr_info & ~VMX_INTR_SHADOW_NMI);
         }
@@ -4111,8 +4093,8 @@ static void vmx_handle_descriptor_access(uint32_t exi=
t_reason)
     uint64_t exit_qualification;
     unsigned int desc;
=20
-    __vmread(EXIT_QUALIFICATION, &exit_qualification);
-    __vmread(VMX_INSTRUCTION_INFO, &instr_info);
+    exit_qualification =3D vmread(EXIT_QUALIFICATION);
+    instr_info =3D vmread(VMX_INSTRUCTION_INFO);
=20
     if ( exit_reason =3D=3D EXIT_REASON_ACCESS_GDTR_OR_IDTR )
     {
@@ -4137,7 +4119,7 @@ static int vmx_handle_apic_write(void)
     unsigned long exit_qualification;
=20
     ASSERT(cpu_has_vmx_apic_reg_virt);
-    __vmread(EXIT_QUALIFICATION, &exit_qualification);
+    exit_qualification =3D vmread(EXIT_QUALIFICATION);
=20
     return vlapic_apicv_write(current, exit_qualification & 0xfff);
 }
@@ -4146,7 +4128,7 @@ static void undo_nmis_unblocked_by_iret(void)
 {
     unsigned long guest_info;
=20
-    __vmread(GUEST_INTERRUPTIBILITY_INFO, &guest_info);
+    guest_info =3D vmread(GUEST_INTERRUPTIBILITY_INFO);
     __vmwrite(GUEST_INTERRUPTIBILITY_INFO,
               guest_info | VMX_INTR_SHADOW_NMI);
 }
@@ -4159,12 +4141,12 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_=
regs *regs)
     struct vcpu *v =3D current;
     struct domain *currd =3D v->domain;
=20
-    __vmread(GUEST_RIP,    &regs->rip);
-    __vmread(GUEST_RSP,    &regs->rsp);
-    __vmread(GUEST_RFLAGS, &regs->rflags);
+    regs->rip =3D vmread(GUEST_RIP);
+    regs->rsp =3D vmread(GUEST_RSP);
+    regs->rflags =3D vmread(GUEST_RFLAGS);
=20
     if ( hvm_long_mode_active(v) )
-        __vmread(GUEST_CS_AR_BYTES, &cs_ar_bytes);
+        cs_ar_bytes =3D vmread(GUEST_CS_AR_BYTES);
=20
     hvm_sanitize_regs_fields(regs, !(cs_ar_bytes & X86_SEG_AR_CS_LM_ACTIVE=
));
=20
@@ -4174,17 +4156,17 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_=
regs *regs)
          * Xen allows the guest to modify some CR4 bits directly, update c=
ached
          * values to match.
          */
-        __vmread(GUEST_CR4, &v->arch.hvm.hw_cr[4]);
+        v->arch.hvm.hw_cr[4] =3D vmread(GUEST_CR4);
         v->arch.hvm.guest_cr[4] &=3D v->arch.hvm.vmx.cr4_host_mask;
         v->arch.hvm.guest_cr[4] |=3D (v->arch.hvm.hw_cr[4] &
                                     ~v->arch.hvm.vmx.cr4_host_mask);
=20
-        __vmread(GUEST_CR3, &v->arch.hvm.hw_cr[3]);
+        v->arch.hvm.hw_cr[3] =3D vmread(GUEST_CR3);
         if ( vmx_unrestricted_guest(v) || hvm_paging_enabled(v) )
             v->arch.hvm.guest_cr[3] =3D v->arch.hvm.hw_cr[3];
     }
=20
-    __vmread(VM_EXIT_REASON, &exit_reason);
+    exit_reason =3D vmread(VM_EXIT_REASON);
=20
     if ( hvm_long_mode_active(v) )
         TRACE_TIME(TRC_HVM_VMX_EXIT64, exit_reason, regs->rip, regs->rip >=
> 32);
@@ -4200,7 +4182,7 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_re=
gs *regs)
         vmx_do_extint(regs);
         break;
     case EXIT_REASON_EXCEPTION_NMI:
-        __vmread(VM_EXIT_INTR_INFO, &intr_info);
+        intr_info =3D vmread(VM_EXIT_INTR_INFO);
         BUG_ON(!(intr_info & INTR_INFO_VALID_MASK));
         vector =3D intr_info & INTR_INFO_VECTOR_MASK;
         if ( vector =3D=3D X86_EXC_MC )
@@ -4237,12 +4219,12 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_=
regs *regs)
=20
         if ( v->arch.hvm.vmx.secondary_exec_control &
             SECONDARY_EXEC_ENABLE_VIRT_EXCEPTIONS )
-            __vmread(EPTP_INDEX, &idx);
+        {
+            idx =3D vmread(EPTP_INDEX);
+        }
         else
         {
-            unsigned long eptp;
-
-            __vmread(EPT_POINTER, &eptp);
+            unsigned long eptp =3D vmread(EPT_POINTER);
=20
             if ( (idx =3D p2m_find_altp2m_by_eptp(v->domain, eptp)) =3D=3D
                  INVALID_ALTP2M )
@@ -4259,10 +4241,7 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_r=
egs *regs)
=20
     if ( unlikely(currd->arch.monitor.vmexit_enabled) )
     {
-        int rc;
-
-        __vmread(EXIT_QUALIFICATION, &exit_qualification);
-        rc =3D hvm_monitor_vmexit(exit_reason, exit_qualification);
+        int rc =3D hvm_monitor_vmexit(exit_reason, vmread(EXIT_QUALIFICATI=
ON));
         if ( rc < 0 )
             goto exit_and_crash;
         if ( rc )
@@ -4327,7 +4306,7 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_re=
gs *regs)
=20
     hvm_maybe_deassert_evtchn_irq();
=20
-    __vmread(IDT_VECTORING_INFO, &idtv_info);
+    idtv_info =3D vmread(IDT_VECTORING_INFO);
     if ( exit_reason !=3D EXIT_REASON_TASK_SWITCH )
         vmx_idtv_reinject(idtv_info);
=20
@@ -4362,7 +4341,7 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_re=
gs *regs)
              * Updates DR6 where debugger can peek (See 3B 23.2.1,
              * Table 23-1, "Exit Qualification for Debug Exceptions").
              */
-            __vmread(EXIT_QUALIFICATION, &exit_qualification);
+            exit_qualification =3D vmread(EXIT_QUALIFICATION);
             TRACE(TRC_HVM_TRAP_DEBUG, exit_qualification);
             __restore_debug_registers(v);
             write_debugreg(6, exit_qualification | DR_STATUS_RESERVED_ONE)=
;
@@ -4388,29 +4367,25 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_=
regs *regs)
              */
             if ( unlikely(regs->eflags & X86_EFLAGS_TF) )
             {
-                unsigned long int_info;
-
-                __vmread(GUEST_INTERRUPTIBILITY_INFO, &int_info);
+                unsigned long int_info =3D vmread(GUEST_INTERRUPTIBILITY_I=
NFO);
=20
                 if ( int_info & (VMX_INTR_SHADOW_STI | VMX_INTR_SHADOW_MOV=
_SS) )
                 {
-                    unsigned long pending_dbg;
+                    unsigned long exc =3D vmread(GUEST_PENDING_DBG_EXCEPTI=
ONS);
=20
-                    __vmread(GUEST_PENDING_DBG_EXCEPTIONS, &pending_dbg);
-                    __vmwrite(GUEST_PENDING_DBG_EXCEPTIONS,
-                              pending_dbg | DR_STEP);
+                    __vmwrite(GUEST_PENDING_DBG_EXCEPTIONS, exc | DR_STEP)=
;
                 }
             }
=20
             if ( !v->domain->debugger_attached )
             {
                 unsigned long insn_len =3D 0;
-                int rc;
                 unsigned long trap_type =3D MASK_EXTR(intr_info,
                                                     INTR_INFO_INTR_TYPE_MA=
SK);
+                int rc;
=20
                 if ( trap_type >=3D X86_ET_SW_INT )
-                    __vmread(VM_EXIT_INSTRUCTION_LEN, &insn_len);
+                    insn_len =3D vmread(VM_EXIT_INSTRUCTION_LEN);
=20
                 rc =3D hvm_monitor_debug(regs->rip,
                                        HVM_MONITOR_DEBUG_EXCEPTION,
@@ -4428,10 +4403,9 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_r=
egs *regs)
             TRACE(TRC_HVM_TRAP, vector);
             if ( !v->domain->debugger_attached )
             {
-                unsigned long insn_len;
+                unsigned long insn_len =3D vmread(VM_EXIT_INSTRUCTION_LEN)=
;
                 int rc;
=20
-                __vmread(VM_EXIT_INSTRUCTION_LEN, &insn_len);
                 rc =3D hvm_monitor_debug(regs->rip,
                                        HVM_MONITOR_SOFTWARE_BREAKPOINT,
                                        X86_ET_SW_EXC,
@@ -4454,8 +4428,8 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_re=
gs *regs)
             vmx_fpu_dirty_intercept();
             break;
         case X86_EXC_PF:
-            __vmread(EXIT_QUALIFICATION, &exit_qualification);
-            __vmread(VM_EXIT_INTR_ERROR_CODE, &ecode);
+            exit_qualification =3D vmread(EXIT_QUALIFICATION);
+            ecode =3D vmread(VM_EXIT_INTR_ERROR_CODE);
             regs->error_code =3D ecode;
=20
             HVM_DBG_LOG(DBG_LEVEL_VMMU,
@@ -4522,7 +4496,7 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_re=
gs *regs)
         };
         unsigned int inst_len, source;
=20
-        __vmread(EXIT_QUALIFICATION, &exit_qualification);
+        exit_qualification =3D vmread(EXIT_QUALIFICATION);
         source =3D (exit_qualification >> 30) & 3;
         /* Vectored event should fill in interrupt information. */
         WARN_ON((source =3D=3D 3) && !(idtv_info & INTR_INFO_VALID_MASK));
@@ -4536,9 +4510,9 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_re=
gs *regs)
                      > 3)) /* IntrType > 3? */
             ? get_instruction_length() /* Safe: SDM 3B 23.2.4 */ : 0;
         if ( (source =3D=3D 3) && (idtv_info & INTR_INFO_DELIVER_CODE_MASK=
) )
-            __vmread(IDT_VECTORING_ERROR_CODE, &ecode);
+            ecode =3D vmread(IDT_VECTORING_ERROR_CODE);
         else
-             ecode =3D -1;
+            ecode =3D -1;
=20
         hvm_task_switch(exit_qualification, reasons[source], ecode, inst_l=
en,
                         0 /* EFLAGS.RF already updated. */);
@@ -4565,7 +4539,7 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_re=
gs *regs)
         break;
     case EXIT_REASON_INVLPG:
         update_guest_eip(); /* Safe: INVLPG */
-        __vmread(EXIT_QUALIFICATION, &exit_qualification);
+        exit_qualification =3D vmread(EXIT_QUALIFICATION);
         vmx_invlpg_intercept(exit_qualification);
         break;
     case EXIT_REASON_RDTSCP:
@@ -4591,13 +4565,13 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_=
regs *regs)
=20
     case EXIT_REASON_CR_ACCESS:
     {
-        __vmread(EXIT_QUALIFICATION, &exit_qualification);
+        exit_qualification =3D vmread(EXIT_QUALIFICATION);
         if ( vmx_cr_access(exit_qualification) =3D=3D X86EMUL_OKAY )
             update_guest_eip(); /* Safe: MOV Cn, LMSW, CLTS */
         break;
     }
     case EXIT_REASON_DR_ACCESS:
-        __vmread(EXIT_QUALIFICATION, &exit_qualification);
+        exit_qualification =3D vmread(EXIT_QUALIFICATION);
         vmx_dr_access(exit_qualification, regs);
         break;
     case EXIT_REASON_MSR_READ:
@@ -4671,7 +4645,7 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_re=
gs *regs)
         break;
=20
     case EXIT_REASON_EOI_INDUCED:
-        __vmread(EXIT_QUALIFICATION, &exit_qualification);
+        exit_qualification =3D vmread(EXIT_QUALIFICATION);
=20
         ASSERT(cpu_has_vmx_virtual_intr_delivery);
=20
@@ -4695,7 +4669,7 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_re=
gs *regs)
         unsigned int bytes;
         int rc;
=20
-        __vmread(EXIT_QUALIFICATION, &io_qual.raw);
+        io_qual.raw =3D vmread(EXIT_QUALIFICATION);
         bytes =3D io_qual.size + 1;
=20
         rc =3D hvm_monitor_io(io_qual.port, bytes, io_qual.in, io_qual.str=
);
@@ -4728,10 +4702,9 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_r=
egs *regs)
=20
     case EXIT_REASON_EPT_VIOLATION:
     {
-        paddr_t gpa;
+        paddr_t gpa =3D vmread(GUEST_PHYSICAL_ADDRESS);
=20
-        __vmread(GUEST_PHYSICAL_ADDRESS, &gpa);
-        __vmread(EXIT_QUALIFICATION, &exit_qualification);
+        exit_qualification =3D vmread(EXIT_QUALIFICATION);
=20
         if ( unlikely(exit_qualification & INTR_INFO_NMI_UNBLOCKED_BY_IRET=
) &&
              !(idtv_info & INTR_INFO_VALID_MASK) )
@@ -4743,9 +4716,8 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_re=
gs *regs)
=20
     case EXIT_REASON_EPT_MISCONFIG:
     {
-        paddr_t gpa;
+        paddr_t gpa =3D vmread(GUEST_PHYSICAL_ADDRESS);
=20
-        __vmread(GUEST_PHYSICAL_ADDRESS, &gpa);
         if ( !ept_handle_misconfig(gpa) )
             goto exit_and_crash;
         break;
@@ -4781,7 +4753,7 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_re=
gs *regs)
         break;
=20
     case EXIT_REASON_PML_FULL:
-        __vmread(EXIT_QUALIFICATION, &exit_qualification);
+        exit_qualification =3D vmread(EXIT_QUALIFICATION);
=20
         if ( unlikely(exit_qualification & INTR_INFO_NMI_UNBLOCKED_BY_IRET=
) &&
              !(idtv_info & INTR_INFO_VALID_MASK) )
@@ -4804,7 +4776,7 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_re=
gs *regs)
         break;
=20
     case EXIT_REASON_NOTIFY:
-        __vmread(EXIT_QUALIFICATION, &exit_qualification);
+        exit_qualification =3D vmread(EXIT_QUALIFICATION);
=20
         if ( unlikely(exit_qualification & NOTIFY_VM_CONTEXT_INVALID) )
         {
diff --git a/xen/arch/x86/hvm/vmx/vvmx.c b/xen/arch/x86/hvm/vmx/vvmx.c
index ceb5e5a322..ab1c4631ab 100644
--- a/xen/arch/x86/hvm/vmx/vvmx.c
+++ b/xen/arch/x86/hvm/vmx/vvmx.c
@@ -400,8 +400,7 @@ static int decode_vmx_inst(struct cpu_user_regs *regs,
     unsigned long base, index, seg_base, disp, offset;
     int scale, size;
=20
-    __vmread(VMX_INSTRUCTION_INFO, &offset);
-    info.word =3D offset;
+    info.word =3D vmread(VMX_INSTRUCTION_INFO);
=20
     if ( info.fields.memreg ) {
         decode->type =3D VMX_INST_MEMREG_TYPE_REG;
@@ -428,7 +427,7 @@ static int decode_vmx_inst(struct cpu_user_regs *regs,
=20
         scale =3D 1 << info.fields.scaling;
=20
-        __vmread(EXIT_QUALIFICATION, &disp);
+        disp =3D vmread(EXIT_QUALIFICATION);
=20
         size =3D 1 << (info.fields.addr_size + 1);
=20
@@ -997,7 +996,7 @@ static void vvmcs_to_shadow_bulk(struct vcpu *v, unsign=
ed int n,
=20
     virtual_vmcs_enter(v);
     for ( i =3D 0; i < n; i++ )
-        __vmread(field[i], &value[i]);
+        value[i] =3D vmread(field[i]);
     virtual_vmcs_exit(v);
=20
     for ( i =3D 0; i < n; i++ )
@@ -1012,7 +1011,7 @@ fallback:
=20
 static inline void shadow_to_vvmcs(const struct vcpu *v, unsigned int fiel=
d)
 {
-    unsigned long value;
+    unsigned long value =3D 0;
=20
     if ( vmread_safe(field, &value) =3D=3D 0 )
         set_vvmcs(v, field, value);
@@ -1036,7 +1035,7 @@ static void shadow_to_vvmcs_bulk(struct vcpu *v, unsi=
gned int n,
     }
=20
     for ( i =3D 0; i < n; i++ )
-        __vmread(field[i], &value[i]);
+        value[i] =3D vmread(field[i]);
=20
     virtual_vmcs_enter(v);
     for ( i =3D 0; i < n; i++ )
@@ -1405,7 +1404,7 @@ static void nvmx_update_apicv(struct vcpu *v)
     }
     else
        /* Keep previous SVI if there's any. */
-       __vmread(GUEST_INTR_STATUS, &status);
+       status =3D vmread(GUEST_INTR_STATUS);
=20
     rvi =3D vlapic_has_pending_irq(v);
     if ( rvi !=3D -1 )
@@ -1687,7 +1686,6 @@ static int nvmx_handle_vmresume(struct cpu_user_regs =
*regs)
     bool launched;
     struct vcpu *v =3D current;
     struct nestedvmx *nvmx =3D &vcpu_2_nvmx(v);
-    unsigned long intr_shadow;
     int rc;
=20
     if ( !vvmcx_valid(v) )
@@ -1696,8 +1694,7 @@ static int nvmx_handle_vmresume(struct cpu_user_regs =
*regs)
         return X86EMUL_OKAY;       =20
     }
=20
-    __vmread(GUEST_INTERRUPTIBILITY_INFO, &intr_shadow);
-    if ( intr_shadow & VMX_INTR_SHADOW_MOV_SS )
+    if ( vmread(GUEST_INTERRUPTIBILITY_INFO) & VMX_INTR_SHADOW_MOV_SS )
     {
         vmfail_valid(regs, VMX_INSN_VMENTRY_BLOCKED_BY_MOV_SS);
         return X86EMUL_OKAY;
@@ -1723,7 +1720,6 @@ static int nvmx_handle_vmlaunch(struct cpu_user_regs =
*regs)
     bool launched;
     struct vcpu *v =3D current;
     struct nestedvmx *nvmx =3D &vcpu_2_nvmx(v);
-    unsigned long intr_shadow;
     int rc;
=20
     if ( !vvmcx_valid(v) )
@@ -1732,8 +1728,7 @@ static int nvmx_handle_vmlaunch(struct cpu_user_regs =
*regs)
         return X86EMUL_OKAY;
     }
=20
-    __vmread(GUEST_INTERRUPTIBILITY_INFO, &intr_shadow);
-    if ( intr_shadow & VMX_INTR_SHADOW_MOV_SS )
+    if ( vmread(GUEST_INTERRUPTIBILITY_INFO) & VMX_INTR_SHADOW_MOV_SS )
     {
         vmfail_valid(regs, VMX_INSN_VMENTRY_BLOCKED_BY_MOV_SS);
         return X86EMUL_OKAY;
@@ -2355,7 +2350,7 @@ int cf_check nvmx_hap_walk_L1_p2m(
=20
     vmx_vmcs_enter(v);
=20
-    __vmread(EXIT_QUALIFICATION, &exit_qual);
+    exit_qual =3D vmread(EXIT_QUALIFICATION);
     rc =3D nept_translate_l2ga(v, L2_gpa, page_order, rwx_rights, &gfn, p2=
m_acc,
                              &exit_qual, &exit_reason);
     switch ( rc )
@@ -2391,7 +2386,7 @@ void nvmx_idtv_handling(void)
     struct nestedvcpu *nvcpu =3D &vcpu_nestedhvm(v);
     unsigned long idtv_info, reason;
=20
-    __vmread(IDT_VECTORING_INFO, &idtv_info);
+    idtv_info =3D vmread(IDT_VECTORING_INFO);
     if ( likely(!(idtv_info & INTR_INFO_VALID_MASK)) )
         return;
=20
@@ -2399,7 +2394,7 @@ void nvmx_idtv_handling(void)
      * If L0 can solve the fault that causes idt vectoring, it should
      * be reinjected, otherwise, pass to L1.
      */
-    __vmread(VM_EXIT_REASON, &reason);
+    reason =3D vmread(VM_EXIT_REASON);
     if ( (uint16_t)reason !=3D EXIT_REASON_EPT_VIOLATION ?
          !(nvmx->intr.intr_info & INTR_INFO_VALID_MASK) :
          !nvcpu->nv_vmexit_pending )
@@ -2407,7 +2402,7 @@ void nvmx_idtv_handling(void)
         __vmwrite(VM_ENTRY_INTR_INFO, idtv_info & ~INTR_INFO_RESVD_BITS_MA=
SK);
         if ( idtv_info & INTR_INFO_DELIVER_CODE_MASK )
         {
-            __vmread(IDT_VECTORING_ERROR_CODE, &reason);
+            reason =3D vmread(IDT_VECTORING_ERROR_CODE);
             __vmwrite(VM_ENTRY_EXCEPTION_ERROR_CODE, reason);
         }
         /*
@@ -2418,7 +2413,7 @@ void nvmx_idtv_handling(void)
          * This means EXIT_INSTRUCTION_LEN is always valid here, for
          * software interrupts both injected by L1, and generated in L2.
          */
-        __vmread(VM_EXIT_INSTRUCTION_LEN, &reason);
+        reason =3D vmread(VM_EXIT_INSTRUCTION_LEN);
         __vmwrite(VM_ENTRY_INSTRUCTION_LEN, reason);
    }
 }
@@ -2452,7 +2447,7 @@ int nvmx_n2_vmexit_handler(struct cpu_user_regs *regs=
,
         u64 exec_bitmap;
         int vector;
=20
-        __vmread(VM_EXIT_INTR_INFO, &intr_info);
+        intr_info =3D vmread(VM_EXIT_INTR_INFO);
         vector =3D intr_info & INTR_INFO_VECTOR_MASK;
         /*
          * decided by L0 and L1 exception bitmap, if the vetor is set by
@@ -2531,7 +2526,7 @@ int nvmx_n2_vmexit_handler(struct cpu_user_regs *regs=
,
             unsigned long qual;
             u16 port, size;
=20
-            __vmread(EXIT_QUALIFICATION, &qual);
+            qual =3D vmread(EXIT_QUALIFICATION);
             port =3D qual >> 16;
             size =3D (qual & 7) + 1;
             do {
@@ -2638,7 +2633,7 @@ int nvmx_n2_vmexit_handler(struct cpu_user_regs *regs=
,
         cr_access_qual_t qual;
         u32 mask =3D 0;
=20
-        __vmread(EXIT_QUALIFICATION, &qual.raw);
+        qual.raw =3D vmread(EXIT_QUALIFICATION);
         /* also according to guest exec_control */
         ctrl =3D __n2_exec_control(v);
=20
@@ -2680,7 +2675,7 @@ int nvmx_n2_vmexit_handler(struct cpu_user_regs *regs=
,
                 {
                     u64 cr0_gh_mask =3D get_vvmcs(v, CR0_GUEST_HOST_MASK);
=20
-                    __vmread(CR0_READ_SHADOW, &old_val);
+                    old_val =3D vmread(CR0_READ_SHADOW);
                     changed_bits =3D old_val ^ val;
                     if ( changed_bits & cr0_gh_mask )
                         nvcpu->nv_vmexit_pending =3D 1;
@@ -2696,7 +2691,7 @@ int nvmx_n2_vmexit_handler(struct cpu_user_regs *regs=
,
                 {
                     u64 cr4_gh_mask =3D get_vvmcs(v, CR4_GUEST_HOST_MASK);
=20
-                    __vmread(CR4_READ_SHADOW, &old_val);
+                    old_val =3D vmread(CR4_READ_SHADOW);
                     changed_bits =3D old_val ^ val;
                     if ( changed_bits & cr4_gh_mask )
                         nvcpu->nv_vmexit_pending =3D 1;
@@ -2732,7 +2727,7 @@ int nvmx_n2_vmexit_handler(struct cpu_user_regs *regs=
,
             {
                 u64 cr0_gh_mask =3D get_vvmcs(v, CR0_GUEST_HOST_MASK);
=20
-                __vmread(CR0_READ_SHADOW, &old_val);
+                old_val =3D vmread(CR0_READ_SHADOW);
                 old_val &=3D X86_CR0_PE|X86_CR0_MP|X86_CR0_EM|X86_CR0_TS;
                 val =3D qual.lmsw_data &
                       (X86_CR0_PE|X86_CR0_MP|X86_CR0_EM|X86_CR0_TS);
diff --git a/xen/arch/x86/include/asm/hvm/vmx/vmx.h b/xen/arch/x86/include/=
asm/hvm/vmx/vmx.h
index cc8c53fab1..8bdb042988 100644
--- a/xen/arch/x86/include/asm/hvm/vmx/vmx.h
+++ b/xen/arch/x86/include/asm/hvm/vmx/vmx.h
@@ -336,11 +336,6 @@ static always_inline unsigned long vmread(unsigned lon=
g field)
     return value;
 }
=20
-static always_inline void __vmread(unsigned long field, unsigned long *val=
ue)
-{
-    *value =3D vmread(field);
-}
-
 static always_inline void __vmwrite(unsigned long field, unsigned long val=
ue)
 {
     asm goto ( "vmwrite %[value], %[field]\n\t"
--=20
2.34.1




From xen-devel-bounces@lists.xenproject.org Sat Apr 26 07:41:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 26 Apr 2025 07:41:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.969030.1358396 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8aA5-00042m-0g; Sat, 26 Apr 2025 07:41:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 969030.1358396; Sat, 26 Apr 2025 07: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 1u8aA4-00042f-UD; Sat, 26 Apr 2025 07:41:20 +0000
Received: by outflank-mailman (input) for mailman id 969030;
 Sat, 26 Apr 2025 07:41: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=93tG=XM=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u8aA3-00042Z-Vj
 for xen-devel@lists.xenproject.org; Sat, 26 Apr 2025 07:41:19 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d56f6656-2271-11f0-9ffb-bf95429c2676;
 Sat, 26 Apr 2025 09:41:17 +0200 (CEST)
Received: from [192.168.7.202] ([71.202.166.45]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53Q7eZXY4077669
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NO);
 Sat, 26 Apr 2025 00:40:36 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d56f6656-2271-11f0-9ffb-bf95429c2676
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53Q7eZXY4077669
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745653241;
	bh=EnzZeIbi73Uf9UHrFp1u6oVId+aFUuWUYzex7VH6YZ8=;
	h=Date:Subject:To:Cc:References:From:In-Reply-To:From;
	b=bvhYUcCCrcNPHPHMfra8pagGFHBS1eIdachPY1j/LcLKf75gVtMgjo4Z3lxW/Nwx8
	 K3abxiwtE5S6sAYo2Z6xAFmeJAbufNq9L8ADk5XuAUJ+H1tQ3G+X0J9m0VZjBLaA+s
	 5n4Z890DiCiOntXIwifwugz7hNqwSnsVHa6YIIwsPaR3Ir9ZolFZmCw+gTKQ62dE4J
	 YecUoTzxNgG+BOaBljb6+z0Do/A8o3VQ615cdunTjaM57EXYYspTWEBwIZzokrA2Wq
	 9fiFpIsxxWxYHBZiB5dJyiIoZFVhM3/ZEzW/zA5+lZDd3b8R/C+bYjqUDXonYDLCCo
	 u8/14ZBKTETHw==
Message-ID: <3a25ce15-f95c-41c9-8f8a-3b01cffc95e5@zytor.com>
Date: Sat, 26 Apr 2025 00:40:34 -0700
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 10/14] x86/xen/msr: Remove pmu_msr_{read,write}()
To: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>,
        linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
        linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
        netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        acme@kernel.org, andrew.cooper3@citrix.com, peterz@infradead.org,
        namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com,
        dapeng1.mi@linux.intel.com
References: <20250425083442.2390017-1-xin@zytor.com>
 <20250425083442.2390017-11-xin@zytor.com>
 <04d47f21-6183-42d5-bc18-f23a8c3c2009@suse.com>
Content-Language: en-US
From: Xin Li <xin@zytor.com>
Autocrypt: addr=xin@zytor.com; keydata=
 xsDNBGUPz1cBDACS/9yOJGojBFPxFt0OfTWuMl0uSgpwk37uRrFPTTLw4BaxhlFL0bjs6q+0
 2OfG34R+a0ZCuj5c9vggUMoOLdDyA7yPVAJU0OX6lqpg6z/kyQg3t4jvajG6aCgwSDx5Kzg5
 Rj3AXl8k2wb0jdqRB4RvaOPFiHNGgXCs5Pkux/qr0laeFIpzMKMootGa4kfURgPhRzUaM1vy
 bsMsL8vpJtGUmitrSqe5dVNBH00whLtPFM7IbzKURPUOkRRiusFAsw0a1ztCgoFczq6VfAVu
 raTye0L/VXwZd+aGi401V2tLsAHxxckRi9p3mc0jExPc60joK+aZPy6amwSCy5kAJ/AboYtY
 VmKIGKx1yx8POy6m+1lZ8C0q9b8eJ8kWPAR78PgT37FQWKYS1uAroG2wLdK7FiIEpPhCD+zH
 wlslo2ETbdKjrLIPNehQCOWrT32k8vFNEMLP5G/mmjfNj5sEf3IOKgMTMVl9AFjsINLHcxEQ
 6T8nGbX/n3msP6A36FDfdSEAEQEAAc0WWGluIExpIDx4aW5Aenl0b3IuY29tPsLBDQQTAQgA
 NxYhBIUq/WFSDTiOvUIqv2u9DlcdrjdRBQJlD89XBQkFo5qAAhsDBAsJCAcFFQgJCgsFFgID
 AQAACgkQa70OVx2uN1HUpgv/cM2fsFCQodLArMTX5nt9yqAWgA5t1srri6EgS8W3F+3Kitge
 tYTBKu6j5BXuXaX3vyfCm+zajDJN77JHuYnpcKKr13VcZi1Swv6Jx1u0II8DOmoDYLb1Q2ZW
 v83W55fOWJ2g72x/UjVJBQ0sVjAngazU3ckc0TeNQlkcpSVGa/qBIHLfZraWtdrNAQT4A1fa
 sWGuJrChBFhtKbYXbUCu9AoYmmbQnsx2EWoJy3h7OjtfFapJbPZql+no5AJ3Mk9eE5oWyLH+
 QWqtOeJM7kKvn/dBudokFSNhDUw06e7EoVPSJyUIMbYtUO7g2+Atu44G/EPP0yV0J4lRO6EA
 wYRXff7+I1jIWEHpj5EFVYO6SmBg7zF2illHEW31JAPtdDLDHYcZDfS41caEKOQIPsdzQkaQ
 oW2hchcjcMPAfyhhRzUpVHLPxLCetP8vrVhTvnaZUo0xaVYb3+wjP+D5j/3+hwblu2agPsaE
 vgVbZ8Fx3TUxUPCAdr/p73DGg57oHjgezsDNBGUPz1gBDAD4Mg7hMFRQqlzotcNSxatlAQNL
 MadLfUTFz8wUUa21LPLrHBkUwm8RujehJrzcVbPYwPXIO0uyL/F///CogMNx7Iwo6by43KOy
 g89wVFhyy237EY76j1lVfLzcMYmjBoTH95fJC/lVb5Whxil6KjSN/R/y3jfG1dPXfwAuZ/4N
 cMoOslWkfZKJeEut5aZTRepKKF54T5r49H9F7OFLyxrC/uI9UDttWqMxcWyCkHh0v1Di8176
 jjYRNTrGEfYfGxSp+3jYL3PoNceIMkqM9haXjjGl0W1B4BidK1LVYBNov0rTEzyr0a1riUrp
 Qk+6z/LHxCM9lFFXnqH7KWeToTOPQebD2B/Ah5CZlft41i8L6LOF/LCuDBuYlu/fI2nuCc8d
 m4wwtkou1Y/kIwbEsE/6RQwRXUZhzO6llfoN96Fczr/RwvPIK5SVMixqWq4QGFAyK0m/1ap4
 bhIRrdCLVQcgU4glo17vqfEaRcTW5SgX+pGs4KIPPBE5J/ABD6pBnUUAEQEAAcLA/AQYAQgA
 JhYhBIUq/WFSDTiOvUIqv2u9DlcdrjdRBQJlD89ZBQkFo5qAAhsMAAoJEGu9DlcdrjdR4C0L
 /RcjolEjoZW8VsyxWtXazQPnaRvzZ4vhmGOsCPr2BPtMlSwDzTlri8BBG1/3t/DNK4JLuwEj
 OAIE3fkkm+UG4Kjud6aNeraDI52DRVCSx6xff3bjmJsJJMb12mWglN6LjdF6K+PE+OTJUh2F
 dOhslN5C2kgl0dvUuevwMgQF3IljLmi/6APKYJHjkJpu1E6luZec/lRbetHuNFtbh3xgFIJx
 2RpgVDP4xB3f8r0I+y6ua+p7fgOjDLyoFjubRGed0Be45JJQEn7A3CSb6Xu7NYobnxfkwAGZ
 Q81a2XtvNS7Aj6NWVoOQB5KbM4yosO5+Me1V1SkX2jlnn26JPEvbV3KRFcwV5RnDxm4OQTSk
 PYbAkjBbm+tuJ/Sm+5Yp5T/BnKz21FoCS8uvTiziHj2H7Cuekn6F8EYhegONm+RVg3vikOpn
 gao85i4HwQTK9/D1wgJIQkdwWXVMZ6q/OALaBp82vQ2U9sjTyFXgDjglgh00VRAHP7u1Rcu4
 l75w1xInsg==
In-Reply-To: <04d47f21-6183-42d5-bc18-f23a8c3c2009@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 4/25/2025 3:08 AM, Jürgen Groß wrote:
> 
> Can you please remove the two "else" instances above? With directly 
> returning
> form the "if" clause they are no longer needed.

I thought about it but forgot to do it later.

> 
> With that you can add my:
> 
> Reviewed-by: Juergen Gross <jgross@suse.com>

Thanks a lot!


From xen-devel-bounces@lists.xenproject.org Sat Apr 26 09:08:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 26 Apr 2025 09:08:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.969096.1358407 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8bWP-0008W5-6x; Sat, 26 Apr 2025 09:08:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 969096.1358407; Sat, 26 Apr 2025 09: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 1u8bWP-0008Vt-1o; Sat, 26 Apr 2025 09:08:29 +0000
Received: by outflank-mailman (input) for mailman id 969096;
 Sat, 26 Apr 2025 09:08: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=pqNG=XM=kernel.org=mingo@srs-se1.protection.inumbo.net>)
 id 1u8bWN-0008Vn-Qt
 for xen-devel@lists.xenproject.org; Sat, 26 Apr 2025 09:08:27 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 021d63c7-227e-11f0-9ffb-bf95429c2676;
 Sat, 26 Apr 2025 11:08:25 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id E29DB4A5C9;
 Sat, 26 Apr 2025 09:08:21 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id D666CC4CEE2;
 Sat, 26 Apr 2025 09:08: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: 021d63c7-227e-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1745658503;
	bh=gtPGdDzl64Mz9Zx1cUzJOISLq2z3aPslFucPHuiO+fA=;
	h=Date:From:To:Cc:Subject:References:In-Reply-To:From;
	b=Sn/xHeda0Ce/B3kGA2mC+8qnGHbSm7nRkIFCRQ4wp1KtCf3BA5YM6ubsDrAxhrNE/
	 XpJz4rKh7lY7OmLGJ4j1ic0bQ3bO68Y/U4d7Q45XLE8O+Ey09zNZChO6EYE3AZZGKF
	 pGD0qSkvNVB+7dbncqBBE5v+UXk2OvCXzXYsTnsHF2uSwGmGj6pK0KMyYK1k0H82KI
	 2nfHXMnOetJXD0aNsSAiONei8f2sG6d5Uvnx4qqg18CPw7Cj4JwxcQZ5+E6tMa31nq
	 pBuE2iEPSKmxHIf1v0PjymHn5e/rOag3QbSAkdWmEHlNRehhau7oZ2HQSFoZgupLJd
	 /MBQc3+mu0reQ==
Date: Sat, 26 Apr 2025 11:08:17 +0200
From: Ingo Molnar <mingo@kernel.org>
To: Arnd Bergmann <arnd@kernel.org>
Cc: Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org,
	Arnd Bergmann <arnd@arndb.de>, "H. Peter Anvin" <hpa@zytor.com>,
	Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Alexander Usyskin <alexander.usyskin@intel.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Mateusz =?utf-8?Q?Jo=C5=84czyk?= <mat.jonczyk@o2.pl>,
	"Mike Rapoport (Microsoft)" <rppt@kernel.org>,
	Ard Biesheuvel <ardb@kernel.org>,
	Peter Zijlstra <peterz@infradead.org>, linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	Linus Torvalds <torvalds@linux-foundation.org>
Subject: Re: [PATCH] [RFC] x86/cpu: rework instruction set selection
Message-ID: <aAyiganPp_UsNlnZ@gmail.com>
References: <20250425141740.734030-1-arnd@kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20250425141740.734030-1-arnd@kernel.org>


* Arnd Bergmann <arnd@kernel.org> wrote:

> From: Arnd Bergmann <arnd@arndb.de>
> 
> With cx8 and tsc being mandatory features, the only important
> architectural features are now cmov and pae.
> 
> Change the large list of target CPUs to no longer pick the instruction set
> itself but only the mtune= optimization level and in-kernel optimizations
> that remain compatible with all cores.
> 
> The CONFIG_X86_CMOV instead becomes user-selectable and is now how
> Kconfig picks between 586-class (Pentium, Pentium MMX, K6, C3, GeodeGX)
> and 686-class (everything else) targets.
> 
> In order to allow running on late 32-bit cores (Athlon, Pentium-M,
> Pentium 4, ...), the X86_L1_CACHE_SHIFT can no longer be set to anything
> lower than 6 (i.e. 64 byte cache lines).
> 
> The optimization options now depend on X86_CMOV and X86_PAE instead
> of the other way round, while other compile-time conditionals that
> checked for MATOM/MGEODEGX1 instead now check for CPU_SUP_* options
> that enable support for a particular CPU family.
> 
> Link: https://lore.kernel.org/lkml/dd29df0c-0b4f-44e6-b71b-2a358ea76fb4@app.fastmail.com/
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---
> This is what I had in mind as mentioned in the earlier thread on
> cx8/tsc removal. I based this on top of the Ingo's [RFC 15/15]
> patch.
> ---
>  arch/x86/Kconfig                |   2 +-
>  arch/x86/Kconfig.cpu            | 100 ++++++++++++++------------------
>  arch/x86/Makefile_32.cpu        |  48 +++++++--------
>  arch/x86/include/asm/vermagic.h |  36 +-----------
>  arch/x86/kernel/tsc.c           |   2 +-
>  arch/x86/xen/Kconfig            |   1 -
>  drivers/misc/mei/Kconfig        |   2 +-
>  7 files changed, 74 insertions(+), 117 deletions(-)

While the simplification is nice on its face, this looks messy:

> diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
> index a9d717558972..1e33f88c9b97 100644
> --- a/arch/x86/Kconfig
> +++ b/arch/x86/Kconfig
> @@ -1438,7 +1438,7 @@ config HIGHMEM
>  
>  config X86_PAE
>  	bool "PAE (Physical Address Extension) Support"
> -	depends on X86_32 && X86_HAVE_PAE
> +	depends on X86_32 && X86_CMOV

Coupling CMOV to PAE ... :-/

> +config X86_CMOV
> +	bool "Require 686-class CMOV instructions" if X86_32
> +	default y
>  	help
> -	  This is the processor type of your CPU. This information is
> -	  used for optimizing purposes. In order to compile a kernel
> -	  that can run on all supported x86 CPU types (albeit not
> -	  optimally fast), you can specify "586" here.
> +	  Most x86-32 processor implementations are compatible with
> +	  the the CMOV instruction originally added in the Pentium Pro,
> +	  and they perform much better when using it.
> +
> +	  Disable this option to build for 586-class CPUs without this
> +	  instruction. This is only required for the original Intel
> +	  Pentium (P5, P54, P55), AMD K6/K6-II/K6-3D, Geode GX1 and Via
> +	  CyrixIII/C3 CPUs.

Very few users will know anything about CMOV.

I'd argue the right path forward is to just bite the bullet and remove 
non-CMOV support as well, that would be the outcome *anyway* in a few 
years. That would allow basically a single 'modern' 32-bit kernel that 
is supposed to boot on every supported CPU. People might even end up 
testing it ... ;-)

Thanks,

	Ingo


From xen-devel-bounces@lists.xenproject.org Sat Apr 26 13:18:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 26 Apr 2025 13:18:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.969174.1358418 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8fQO-0001Yy-75; Sat, 26 Apr 2025 13:18:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 969174.1358418; Sat, 26 Apr 2025 13:18: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 1u8fQO-0001Yr-2j; Sat, 26 Apr 2025 13:18:32 +0000
Received: by outflank-mailman (input) for mailman id 969174;
 Sat, 26 Apr 2025 13:18: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=Dw20=XM=zytor.com=hpa@srs-se1.protection.inumbo.net>)
 id 1u8fQM-0001Yl-OH
 for xen-devel@lists.xenproject.org; Sat, 26 Apr 2025 13:18:31 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f096882d-22a0-11f0-9eb3-5ba50f476ded;
 Sat, 26 Apr 2025 15:18:29 +0200 (CEST)
Received: from [127.0.0.1] ([76.133.66.138]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53QDHpWk258336
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NO);
 Sat, 26 Apr 2025 06:17:51 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f096882d-22a0-11f0-9eb3-5ba50f476ded
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53QDHpWk258336
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745673473;
	bh=Qv3GGTRjeWcaBJIwFfN0RXsQO5eLawdKPmX5aFVR03I=;
	h=Date:From:To:CC:Subject:In-Reply-To:References:From;
	b=V5W0NePqEB+f5hz/U3L86eTDhx7bq5IW0ix9OjeA0rqaCFagn7CgSQnvaYBKQRPR+
	 DRyjQ9n+Pw1DKxTdVmmeYO2fp2FzZSFD5ciM3iszYM0SQnB3FPv+fqHJtlKND+pN99
	 9f4XKCbxluMqfDrmJvOcC5yGKzw21/u4PFS4Y+XlNRpDEwXmexDxAwbnYrf+6PVpcc
	 ovkXUlO6lBk/cBTWwQSnB8JauHZf3O0iiug1d7HdDNK4BiM+eXCL3IPshWwyS/12pF
	 A246qrgnqTKgwSs7odcmxAeZ0SKVkn01loluJEelcymYWBurrZLUhm6DNBOj+Rewp0
	 WSPvnPNQENA+Q==
Date: Sat, 26 Apr 2025 06:17:50 -0700
From: "H. Peter Anvin" <hpa@zytor.com>
To: Ingo Molnar <mingo@kernel.org>, Arnd Bergmann <arnd@kernel.org>
CC: Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>,
        Borislav Petkov <bp@alien8.de>,
        Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org,
        Arnd Bergmann <arnd@arndb.de>, Juergen Gross <jgross@suse.com>,
        Boris Ostrovsky <boris.ostrovsky@oracle.com>,
        Alexander Usyskin <alexander.usyskin@intel.com>,
        Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
        =?UTF-8?Q?Mateusz_Jo=C5=84czyk?= <mat.jonczyk@o2.pl>,
        "Mike Rapoport (Microsoft)" <rppt@kernel.org>,
        Ard Biesheuvel <ardb@kernel.org>,
        Peter Zijlstra <peterz@infradead.org>, linux-kernel@vger.kernel.org,
        xen-devel@lists.xenproject.org,
        Linus Torvalds <torvalds@linux-foundation.org>
Subject: Re: [PATCH] [RFC] x86/cpu: rework instruction set selection
User-Agent: K-9 Mail for Android
In-Reply-To: <aAyiganPp_UsNlnZ@gmail.com>
References: <20250425141740.734030-1-arnd@kernel.org> <aAyiganPp_UsNlnZ@gmail.com>
Message-ID: <E130C6F4-5602-44E6-ABB0-B87B389C0026@zytor.com>
MIME-Version: 1.0
Content-Type: text/plain;
 charset=utf-8
Content-Transfer-Encoding: quoted-printable

On April 26, 2025 2:08:17 AM PDT, Ingo Molnar <mingo@kernel=2Eorg> wrote:
>
>* Arnd Bergmann <arnd@kernel=2Eorg> wrote:
>
>> From: Arnd Bergmann <arnd@arndb=2Ede>
>>=20
>> With cx8 and tsc being mandatory features, the only important
>> architectural features are now cmov and pae=2E
>>=20
>> Change the large list of target CPUs to no longer pick the instruction =
set
>> itself but only the mtune=3D optimization level and in-kernel optimizat=
ions
>> that remain compatible with all cores=2E
>>=20
>> The CONFIG_X86_CMOV instead becomes user-selectable and is now how
>> Kconfig picks between 586-class (Pentium, Pentium MMX, K6, C3, GeodeGX)
>> and 686-class (everything else) targets=2E
>>=20
>> In order to allow running on late 32-bit cores (Athlon, Pentium-M,
>> Pentium 4, =2E=2E=2E), the X86_L1_CACHE_SHIFT can no longer be set to a=
nything
>> lower than 6 (i=2Ee=2E 64 byte cache lines)=2E
>>=20
>> The optimization options now depend on X86_CMOV and X86_PAE instead
>> of the other way round, while other compile-time conditionals that
>> checked for MATOM/MGEODEGX1 instead now check for CPU_SUP_* options
>> that enable support for a particular CPU family=2E
>>=20
>> Link: https://lore=2Ekernel=2Eorg/lkml/dd29df0c-0b4f-44e6-b71b-2a358ea7=
6fb4@app=2Efastmail=2Ecom/
>> Signed-off-by: Arnd Bergmann <arnd@arndb=2Ede>
>> ---
>> This is what I had in mind as mentioned in the earlier thread on
>> cx8/tsc removal=2E I based this on top of the Ingo's [RFC 15/15]
>> patch=2E
>> ---
>>  arch/x86/Kconfig                |   2 +-
>>  arch/x86/Kconfig=2Ecpu            | 100 ++++++++++++++----------------=
--
>>  arch/x86/Makefile_32=2Ecpu        |  48 +++++++--------
>>  arch/x86/include/asm/vermagic=2Eh |  36 +-----------
>>  arch/x86/kernel/tsc=2Ec           |   2 +-
>>  arch/x86/xen/Kconfig            |   1 -
>>  drivers/misc/mei/Kconfig        |   2 +-
>>  7 files changed, 74 insertions(+), 117 deletions(-)
>
>While the simplification is nice on its face, this looks messy:
>
>> diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
>> index a9d717558972=2E=2E1e33f88c9b97 100644
>> --- a/arch/x86/Kconfig
>> +++ b/arch/x86/Kconfig
>> @@ -1438,7 +1438,7 @@ config HIGHMEM
>> =20
>>  config X86_PAE
>>  	bool "PAE (Physical Address Extension) Support"
>> -	depends on X86_32 && X86_HAVE_PAE
>> +	depends on X86_32 && X86_CMOV
>
>Coupling CMOV to PAE =2E=2E=2E :-/
>
>> +config X86_CMOV
>> +	bool "Require 686-class CMOV instructions" if X86_32
>> +	default y
>>  	help
>> -	  This is the processor type of your CPU=2E This information is
>> -	  used for optimizing purposes=2E In order to compile a kernel
>> -	  that can run on all supported x86 CPU types (albeit not
>> -	  optimally fast), you can specify "586" here=2E
>> +	  Most x86-32 processor implementations are compatible with
>> +	  the the CMOV instruction originally added in the Pentium Pro,
>> +	  and they perform much better when using it=2E
>> +
>> +	  Disable this option to build for 586-class CPUs without this
>> +	  instruction=2E This is only required for the original Intel
>> +	  Pentium (P5, P54, P55), AMD K6/K6-II/K6-3D, Geode GX1 and Via
>> +	  CyrixIII/C3 CPUs=2E
>
>Very few users will know anything about CMOV=2E
>
>I'd argue the right path forward is to just bite the bullet and remove=20
>non-CMOV support as well, that would be the outcome *anyway* in a few=20
>years=2E That would allow basically a single 'modern' 32-bit kernel that=
=20
>is supposed to boot on every supported CPU=2E People might even end up=20
>testing it =2E=2E=2E ;-)
>
>Thanks,
>
>	Ingo

Dropping CMOV would mean dropping P5 support=2E 


From xen-devel-bounces@lists.xenproject.org Sat Apr 26 13:45:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 26 Apr 2025 13:45:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.969186.1358426 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8fqp-0006IZ-6q; Sat, 26 Apr 2025 13:45:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 969186.1358426; Sat, 26 Apr 2025 13:45:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8fqp-0006IS-4H; Sat, 26 Apr 2025 13:45:51 +0000
Received: by outflank-mailman (input) for mailman id 969186;
 Sat, 26 Apr 2025 13:45:50 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=/J9Y=XM=linux.intel.com=ilpo.jarvinen@srs-se1.protection.inumbo.net>)
 id 1u8fqo-0006I3-1t
 for xen-devel@lists.xenproject.org; Sat, 26 Apr 2025 13:45:50 +0000
Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.21])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c0d008e8-22a4-11f0-9eb3-5ba50f476ded;
 Sat, 26 Apr 2025 15:45:47 +0200 (CEST)
Received: from fmviesa004.fm.intel.com ([10.60.135.144])
 by orvoesa113.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 26 Apr 2025 06:45:44 -0700
Received: from ijarvine-mobl1.ger.corp.intel.com (HELO localhost)
 ([10.245.245.235])
 by fmviesa004-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 26 Apr 2025 06:45:29 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c0d008e8-22a4-11f0-9eb3-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1745675147; x=1777211147;
  h=from:date:to:cc:subject:in-reply-to:message-id:
   references:mime-version;
  bh=I4nsA4r/Iu57UddEcOKuVuHTuSSaO7yRpZoDOY/Qp2U=;
  b=minQNd4PV8UvM6sS4XH470LF4gFoSwzIUdtxZBBvpXPTDa4i4ZR9inpC
   1lgGYgJLwYHgzcE6Qgs+wXV4aY04svzmCoQpUndxjQAe0GsCr6KiXfl2h
   hvlqsJzQMpHOhzBIR2mWg/j0yoVZ99OPbJyIzF8TvrEFtTKUluojB6M5H
   0XY0nU/TumYogcpvAOl+WYqNKoA5ehcIqetfcPNwDE87r3/mNePKg6n5c
   eu+tGOA0QlMt/4EGyeWvk/RPDDQ2WeaKCjXfq2xh4YqePtJxFrfg0XBCH
   oso7yNu6gZfgm+cOx0ouwyOEe0fT0Kd/jMOeGhH9j/fZzmdE1fxHa7LN9
   Q==;
X-CSE-ConnectionGUID: joVWRuThQpWSTAiBySOrqQ==
X-CSE-MsgGUID: awuDPgtGSYS3cylfsoBFzw==
X-IronPort-AV: E=McAfee;i="6700,10204,11415"; a="47229785"
X-IronPort-AV: E=Sophos;i="6.15,241,1739865600"; 
   d="scan'208";a="47229785"
X-CSE-ConnectionGUID: WMbNce1ORpCDbJZHWjGjpw==
X-CSE-MsgGUID: UaIR2HdjTjK095toUEDbGQ==
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="6.15,241,1739865600"; 
   d="scan'208";a="138223278"
From: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= <ilpo.jarvinen@linux.intel.com>
Date: Sat, 26 Apr 2025 16:45:26 +0300 (EEST)
To: Xin Li <xin@zytor.com>
cc: LKML <linux-kernel@vger.kernel.org>, kvm@vger.kernel.org, 
    linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org, 
    virtualization@lists.linux.dev, linux-pm@vger.kernel.org, 
    linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org, 
    linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org, 
    Netdev <netdev@vger.kernel.org>, platform-driver-x86@vger.kernel.org, 
    tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, 
    dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com, 
    acme@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com, 
    peterz@infradead.org, namhyung@kernel.org, mark.rutland@arm.com, 
    alexander.shishkin@linux.intel.com, jolsa@kernel.org, irogers@google.com, 
    adrian.hunter@intel.com, kan.liang@linux.intel.com, wei.liu@kernel.org, 
    ajay.kaher@broadcom.com, bcm-kernel-feedback-list@broadcom.com, 
    tony.luck@intel.com, pbonzini@redhat.com, vkuznets@redhat.com, 
    seanjc@google.com, luto@kernel.org, boris.ostrovsky@oracle.com, 
    kys@microsoft.com, haiyangz@microsoft.com, decui@microsoft.com, 
    dapeng1.mi@linux.intel.com
Subject: Re: [PATCH v3 01/14] x86/msr: Move rdtsc{,_ordered}() to
 <asm/tsc.h>
In-Reply-To: <e62b81f3-1952-43e6-85fd-18c6f37d531d@zytor.com>
Message-ID: <f8a5b080-b2a8-06f0-3d2d-d232ef0887a4@linux.intel.com>
References: <20250425083442.2390017-1-xin@zytor.com> <20250425083442.2390017-2-xin@zytor.com> <42dc90e1-df2a-2324-d28c-d75fb525e4a2@linux.intel.com> <e62b81f3-1952-43e6-85fd-18c6f37d531d@zytor.com>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="8323328-589040720-1745675126=:944"

  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

--8323328-589040720-1745675126=:944
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: QUOTED-PRINTABLE

On Sat, 26 Apr 2025, Xin Li wrote:

> On 4/25/2025 8:45 AM, Ilpo J=C3=A4rvinen wrote:
> > To me this looks really a random set of source files, maybe it helped s=
ome
> > build success but it's hard for me to review this because there are sti=
ll
> > cases that depend on indirect include chains.
> >=20
> > Could you just look into solving all missing msr.h includes instead
> > as clearly some are still missing after 3 pre-existing ones and you add=
ing
> > it into 3 files:
> >=20
> > $ git grep -e rdmsr -e wrmsr -l drivers/platform/x86/
> > drivers/platform/x86/intel/ifs/core.c
> > drivers/platform/x86/intel/ifs/load.c
> > drivers/platform/x86/intel/ifs/runtest.c
> > drivers/platform/x86/intel/pmc/cnp.c
> > drivers/platform/x86/intel/pmc/core.c
> > drivers/platform/x86/intel/speed_select_if/isst_if_common.c
> > drivers/platform/x86/intel/speed_select_if/isst_if_mbox_msr.c
> > drivers/platform/x86/intel/speed_select_if/isst_tpmi_core.c
> > drivers/platform/x86/intel/tpmi_power_domains.c
> > drivers/platform/x86/intel/turbo_max_3.c
> > drivers/platform/x86/intel/uncore-frequency/uncore-frequency.c
> > drivers/platform/x86/intel_ips.c
> >=20
> > $ git grep -e 'msr.h' -l drivers/platform/x86/
> > drivers/platform/x86/intel/pmc/core.c
> > drivers/platform/x86/intel/tpmi_power_domains.c
> > drivers/platform/x86/intel_ips.c
>=20
> I think you want me to add all necessary direct inclusions, right?

For asm/msr.h yes, as it seems you're altering the inclusion paths and all=
=20
non-direct includes have a chance of breaking so it seems prudent to just=
=20
convert them into direct includes.

> This is the right thing to do, and I did try it but gave up later.
>=20
> I will do it in the next iteration as you asked.  But I want to make my
> points:
>=20
> 1) It's not just two patterns {rd,wr}msr, there are a lot of definitions
>    in <asm/msr.h> and we need to cover all of them:

I know and I don't expect you to get it 100% perfect, but taking a major=20
step into the right direction would be way better than build testing one=20
configuration and see what blows up and fix only those.

In this particular case, the amount of includes seemed really subpar with=
=20
many users lacking the include.

>       struct msr_info
>       struct msr_regs_info
>       struct saved_msr
>       struct saved_msrs

Could be shortened to -e 'struct msr' -e 'struct saved_msr'.

>       {read,write}_msr
>       rdpmc
>       .*msr.*_on_cpu

Well, my pattern already caught rdmsr.*on_cpu and wrmsr.*on_cpu.

For the other patterns, I don't see those at all under=20
drivers/platform/x86/ but I think when one typically implies the=20
others tend appear as well so this might not be as hard as it seems.

> 2) Once all necessary direct inclusions are in place, it's easy to
>    overlook adding a header inclusion in practice, especially if the
>    build passes.  Besides we often forget to remove a header when a
>    definition is removed.  In other words, direct inclusion is hard to
>    maintain.

This is true as well but we should still try to move towards the right=20
state affairs even if we will not get it near 100% until there's a real=20
tool that relentlessly keeps exposing such human oversight.

And do I try to check also includes whenever I remember while reviewing=20
patches (which requires some effort as they are not visible in the code=20
context and might not appear in a patch at all).

> 3) Some random kernel configuration combinations can cause the current
>    kernel build to fail.  I hit one in x86 UML.

Yes, which why direct including is much better than relying on fragile=20
indirects.

> We all know Ingo is the best person to discuss this with :).  While my
> understanding of the header inclusion issue may be inaccurate or
> outdated.
>=20
> So for me, using "make allyesconfig" is a practical method for a quick
> local build check, plus I always send my patches to Intel LKP.

Even with LKP, randconfig builds may still require many tests to find=20
issues.

> There probably wants a script that identifies all files that reference a
> definition in a header thus need to include it explicitly.  And indirect
> includes should be zapped.

Sadly, the clang based include-what-you-use tool is not yet there for=20
the kernel AFAIK.

--=20
 i.

--8323328-589040720-1745675126=:944--


From xen-devel-bounces@lists.xenproject.org Sat Apr 26 18:50:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 26 Apr 2025 18:50:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.969283.1358446 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8kby-0001pW-2j; Sat, 26 Apr 2025 18:50:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 969283.1358446; Sat, 26 Apr 2025 18:50:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8kbx-0001pP-W3; Sat, 26 Apr 2025 18:50:49 +0000
Received: by outflank-mailman (input) for mailman id 969283;
 Sat, 26 Apr 2025 18:50: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=ssvg=XM=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u8kbw-0001Xu-RD
 for xen-devel@lists.xenproject.org; Sat, 26 Apr 2025 18:50:48 +0000
Received: from mail-10628.protonmail.ch (mail-10628.protonmail.ch
 [79.135.106.28]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5dffd455-22cf-11f0-9eb3-5ba50f476ded;
 Sat, 26 Apr 2025 20:50:48 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5dffd455-22cf-11f0-9eb3-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1745693446; x=1745952646;
	bh=iey7/TFInYOca1c5c+QCwD1da9aOSx54FLyeif0g//M=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=emMKyYH9GS+mZuU+sAyQdIS+asoVTPCYhuqtCfLUIcQD+r2a3SHLAk718EaKqM1MO
	 XLudeLW2WvG1ku7feIIAVT15MsL/fg7yb+VOAzxwOPQS0tvL9PhrBc2rcEOSO0dSsK
	 +1iw5qP+aFPnIgBUJ/L5k858rmxpxMg50BPXdvQN1x+XyCfpIQ4GdJ8iL9GmboS1iF
	 OIjlYTphJy/tJqr/MFpHewwPx3D41Oh3pLegYnEB7PCkFEEYaOaikWjsHVjL7UvlxZ
	 Koo7LOp2EJklE1fym6bWWaSxqWnZY7Di5r8PCxSRNxwopiNMKgRG7Lap3cXKZw1BFa
	 3CD4ISTQ1O8lQ==
Date: Sat, 26 Apr 2025 18:50:41 +0000
To: xen-devel@lists.xenproject.org
From: dmkhn@proton.me
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org, dmukhin@ford.com
Subject: [PATCH v2 1/3] xen/console: cleanup conring management
Message-ID: <20250426185021.100646-2-dmukhin@ford.com>
In-Reply-To: <20250426185021.100646-1-dmukhin@ford.com>
References: <20250426185021.100646-1-dmukhin@ford.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: c0842f0b4534ea8c129fd7ecc838092ce8bcf57b
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

From: Denis Mukhin <dmukhin@ford.com>

Move console_locks_busted handling inside conring_puts() to remove
tasklet code duplication.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
---
Changes v1->v2:
- added Stefano's R-b
---
 xen/drivers/char/console.c | 29 ++++++++++++++---------------
 1 file changed, 14 insertions(+), 15 deletions(-)

diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
index c3150fbdb7..aaa97088aa 100644
--- a/xen/drivers/char/console.c
+++ b/xen/drivers/char/console.c
@@ -325,6 +325,17 @@ static void cf_check do_dec_thresh(unsigned char key, =
bool unused)
  * ********************************************************
  */
=20
+static void cf_check notify_dom0_con_ring(void *unused)
+{
+    send_global_virq(VIRQ_CON_RING);
+}
+
+static DECLARE_SOFTIRQ_TASKLET(notify_dom0_con_ring_tasklet,
+                               notify_dom0_con_ring,
+                               NULL);
+
+static bool console_locks_busted;
+
 static void conring_puts(const char *str, size_t len)
 {
     ASSERT(rspin_is_locked(&console_lock));
@@ -334,6 +345,9 @@ static void conring_puts(const char *str, size_t len)
=20
     if ( conringp - conringc > conring_size )
         conringc =3D conringp - conring_size;
+
+    if ( !console_locks_busted )
+        tasklet_schedule(&notify_dom0_con_ring_tasklet);
 }
=20
 long read_console_ring(struct xen_sysctl_readconsole *op)
@@ -594,13 +608,6 @@ static void cf_check serial_rx(char c)
     __serial_rx(c);
 }
=20
-static void cf_check notify_dom0_con_ring(void *unused)
-{
-    send_global_virq(VIRQ_CON_RING);
-}
-static DECLARE_SOFTIRQ_TASKLET(notify_dom0_con_ring_tasklet,
-                               notify_dom0_con_ring, NULL);
-
 #ifdef CONFIG_X86
 static inline void xen_console_write_debug_port(const char *buf, size_t le=
n)
 {
@@ -648,10 +655,7 @@ static long guest_console_write(XEN_GUEST_HANDLE_PARAM=
(char) buffer,
 #endif
=20
             if ( opt_console_to_ring )
-            {
                 conring_puts(kbuf, kcount);
-                tasklet_schedule(&notify_dom0_con_ring_tasklet);
-            }
=20
             nrspin_unlock_irq(&console_lock);
         }
@@ -753,8 +757,6 @@ long do_console_io(
  * *****************************************************
  */
=20
-static bool console_locks_busted;
-
 static void __putstr(const char *str)
 {
     size_t len =3D strlen(str);
@@ -775,9 +777,6 @@ static void __putstr(const char *str)
 #endif
=20
     conring_puts(str, len);
-
-    if ( !console_locks_busted )
-        tasklet_schedule(&notify_dom0_con_ring_tasklet);
 }
=20
 static int printk_prefix_check(char *p, char **pp)
--=20
2.34.1




From xen-devel-bounces@lists.xenproject.org Sat Apr 26 18:50:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 26 Apr 2025 18:50:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.969282.1358436 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8kbt-0001aL-SV; Sat, 26 Apr 2025 18:50:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 969282.1358436; Sat, 26 Apr 2025 18:50: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 1u8kbt-0001aE-Pa; Sat, 26 Apr 2025 18:50:45 +0000
Received: by outflank-mailman (input) for mailman id 969282;
 Sat, 26 Apr 2025 18:50: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=ssvg=XM=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u8kbq-0001Xu-Fs
 for xen-devel@lists.xenproject.org; Sat, 26 Apr 2025 18:50:43 +0000
Received: from mail-4316.protonmail.ch (mail-4316.protonmail.ch [185.70.43.16])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 58f52527-22cf-11f0-9eb3-5ba50f476ded;
 Sat, 26 Apr 2025 20:50:39 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 58f52527-22cf-11f0-9eb3-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=eolfxri6h5cgdmjjvu67ry5lza.protonmail; t=1745693438; x=1745952638;
	bh=F15iZ35Qsjq2yg30u+SCY3vhRM+l1pt9zebJ9BbQoZ8=;
	h=Date:To:From:Cc:Subject:Message-ID:Feedback-ID:From:To:Cc:Date:
	 Subject:Reply-To:Feedback-ID:Message-ID:BIMI-Selector:
	 List-Unsubscribe:List-Unsubscribe-Post;
	b=R6q9dYcdFFW06bvc3Tyv258caOmHlUodpXTel/pqrzOTkEhGgs7Ug2dsWD47gL5VY
	 RX5C95HJjxgGpLQIplJIEMz5eFNcvYrXxu07pstf6oi5yl2mmlbc+7JfODvN7e+p3c
	 mLDlqH3lAeiLbkUm12tUs8ICYIENrQ3SbaSboAjCJ+h4XQhhoMpEEp1gXXR7cwxNB8
	 qpV+5mkfYgzy+apiZwNmqr4rq/fDFqjCgweWWT4Qv8zOPZmnbZd1m7JWVJmkCdno1V
	 u8cN1yqzFXcQj8F8xyLLU/t1OuQzxd+RGyp2aJQ4Xx0XCaoJ8jou+lXBR9L9mm93Lv
	 PT6iL5DlfaEiA==
Date: Sat, 26 Apr 2025 18:50:32 +0000
To: xen-devel@lists.xenproject.org
From: dmkhn@proton.me
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org, dmukhin@ford.com
Subject: [PATCH v2 0/3] xen/console: few cleanups in console driver
Message-ID: <20250426185021.100646-1-dmukhin@ford.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 7c987f9fde5f03d7e86c39b1cb5053dab23618e2
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

The patch series introduces a few cleanups aimed at reducing code duplicati=
on
in the console driver.

Originally, patches 2 and 3 were part of NS16550 emulator v3 series [1].

Patch 1 removes some code duplication for logging via conring facility.

Patch 2 (see [2]) removes code duplication between __putstr() and the rest =
of
the driver. It also introduces private flags to select console devices for
printout which simplifies some code paths.

Patch 3 (see [3]) adds conring_flush() to send contents of conring to all
currently available console devices.

[1] https://lore.kernel.org/xen-devel/20250103-vuart-ns8250-v3-v1-0-c5d36b3=
1d66c@ford.com/
[2] https://lore.kernel.org/xen-devel/20250103-vuart-ns8250-v3-v1-16-c5d36b=
31d66c@ford.com/
[3] https://lore.kernel.org/xen-devel/20250103-vuart-ns8250-v3-v1-17-c5d36b=
31d66c@ford.com/
[4] Link to v1: https://lore.kernel.org/xen-devel/20250403000604.169619-1-d=
mukhin@ford.com/
[5] Link to CI: https://gitlab.com/xen-project/people/dmukhin/xen/-/pipelin=
es/1787672882

Denis Mukhin (3):
  xen/console: cleanup conring management
  xen/console: introduce console_puts()
  xen/console: introduce conring_flush()

 xen/drivers/char/console.c | 177 ++++++++++++++++++++++---------------
 1 file changed, 106 insertions(+), 71 deletions(-)

--=20
2.34.1




From xen-devel-bounces@lists.xenproject.org Sat Apr 26 18:51:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 26 Apr 2025 18:51:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.969285.1358457 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8kc9-0002Go-AU; Sat, 26 Apr 2025 18:51:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 969285.1358457; Sat, 26 Apr 2025 18: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 1u8kc9-0002Gh-76; Sat, 26 Apr 2025 18:51:01 +0000
Received: by outflank-mailman (input) for mailman id 969285;
 Sat, 26 Apr 2025 18:51: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=ssvg=XM=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u8kc8-0002Ax-Ol
 for xen-devel@lists.xenproject.org; Sat, 26 Apr 2025 18:51:00 +0000
Received: from mail-24417.protonmail.ch (mail-24417.protonmail.ch
 [109.224.244.17]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6373d2e0-22cf-11f0-9ffb-bf95429c2676;
 Sat, 26 Apr 2025 20:50:57 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6373d2e0-22cf-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1745693455; x=1745952655;
	bh=X6uxeKFKMREBEvEwoljj8FTQK1jI1qMTSNY4thgCXGA=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=J2VsX2RvHNtBKOF1MWCr8P/vnZkDDYrpgkhzw504QjfI+bHJazcJTsU8AUtcKlV0b
	 b002yx9LYx8IqLi9kCpFZylE2QIRckFvOXCZjisLxEtoHTKhM1epkqJeqEfbPK2wPw
	 BBPb86bNVzhS/AZlMjlIZ1RXTkr0Wz6GYh9NOnXUMERROKz8IqVQLbCZrpdvV2+aED
	 TFny+QFVAwQQzhMxKIQKJY2H4CPT4pMgP17nRLGNh6Pl8ODTZgy7DeQlK6dCEvaFE9
	 H7pkue52KgkaHbrR1K33wff7PdlnGYco2R5WyL/gTedFNYEUrwLGg5DRN+FApyu+Te
	 Ne9Rgsrs0Ul9Q==
Date: Sat, 26 Apr 2025 18:50:49 +0000
To: xen-devel@lists.xenproject.org
From: dmkhn@proton.me
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org, dmukhin@ford.com
Subject: [PATCH v2 2/3] xen/console: introduce console_puts()
Message-ID: <20250426185021.100646-3-dmukhin@ford.com>
In-Reply-To: <20250426185021.100646-1-dmukhin@ford.com>
References: <20250426185021.100646-1-dmukhin@ford.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 0960ffa58a63e1250a63a949ef5df9fb8a6dbd79
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

From: Denis Mukhin <dmukhin@ford.com>

guest_console_write() duplicates the code from __putstr(), eliminate code
duplication.

Introduce console_puts() for writing a buffer to console devices.

Also, introduce internal console flags to control which console devices
should be used.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
Changes v1->v2:
- fixed locking in dump_console_ring_key()
---
 xen/drivers/char/console.c | 117 ++++++++++++++++++++++---------------
 1 file changed, 71 insertions(+), 46 deletions(-)

diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
index aaa97088aa..8f882a47d1 100644
--- a/xen/drivers/char/console.c
+++ b/xen/drivers/char/console.c
@@ -41,6 +41,20 @@
 #include <asm/vpl011.h>
 #endif
=20
+/* Internal console flags. */
+enum {
+    CONSOLE_SERIAL  =3D BIT(0, U),    /* Use serial device. */
+    CONSOLE_PV      =3D BIT(1, U),    /* Use PV console. */
+    CONSOLE_VIDEO   =3D BIT(2, U),    /* Use video device. */
+    CONSOLE_DEBUG   =3D BIT(3, U),    /* Use debug device. */
+    CONSOLE_RING    =3D BIT(4, U),    /* Use console ring. */
+    CONSOLE_DEFAULT =3D CONSOLE_SERIAL | CONSOLE_PV | CONSOLE_VIDEO |
+                      CONSOLE_DEBUG,
+    CONSOLE_ALL     =3D CONSOLE_DEFAULT | CONSOLE_RING,
+};
+
+static void console_puts(const char *str, size_t len, unsigned int flags);
+
 /* console: comma-separated list of console outputs. */
 static char __initdata opt_console[30] =3D OPT_CONSOLE_STR;
 string_param("console", opt_console);
@@ -338,8 +352,6 @@ static bool console_locks_busted;
=20
 static void conring_puts(const char *str, size_t len)
 {
-    ASSERT(rspin_is_locked(&console_lock));
-
     while ( len-- )
         conring[CONRING_IDX_MASK(conringp++)] =3D *str++;
=20
@@ -432,9 +444,6 @@ void console_serial_puts(const char *s, size_t nr)
         serial_steal_fn(s, nr);
     else
         serial_puts(sercon_handle, s, nr);
-
-    /* Copy all serial output into PV console */
-    pv_console_puts(s, nr);
 }
=20
 static void cf_check dump_console_ring_key(unsigned char key)
@@ -442,6 +451,7 @@ static void cf_check dump_console_ring_key(unsigned cha=
r key)
     uint32_t idx, len, sofar, c;
     unsigned int order;
     char *buf;
+    unsigned long flags;
=20
     printk("'%c' pressed -> dumping console ring buffer (dmesg)\n", key);
=20
@@ -455,6 +465,8 @@ static void cf_check dump_console_ring_key(unsigned cha=
r key)
         return;
     }
=20
+    flags =3D console_lock_recursive_irqsave();
+
     c =3D conringc;
     sofar =3D 0;
     while ( (c !=3D conringp) )
@@ -468,8 +480,9 @@ static void cf_check dump_console_ring_key(unsigned cha=
r key)
         c +=3D len;
     }
=20
-    console_serial_puts(buf, sofar);
-    video_puts(buf, sofar);
+    console_puts(buf, sofar, CONSOLE_SERIAL | CONSOLE_VIDEO | CONSOLE_PV);
+
+    console_unlock_recursive_irqrestore(flags);
=20
     free_xenheap_pages(buf, order);
 }
@@ -618,11 +631,61 @@ static inline void xen_console_write_debug_port(const=
 char *buf, size_t len)
 }
 #endif
=20
+static inline void console_debug_puts(const char *str, size_t 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
+}
+
+/*
+ * Write buffer to all enabled console devices.
+ *
+ * That will handle all possible scenarios working w/ console
+ * - physical console (serial console, VGA console (x86 only));
+ * - PV console;
+ * - debug console (x86 only): debug I/O port or __HYPERVISOR_console_io
+ *   hypercall;
+ * - console ring.
+ */
+static void console_puts(const char *str, size_t len, unsigned int flags)
+{
+    ASSERT(rspin_is_locked(&console_lock));
+
+    if ( flags & CONSOLE_SERIAL )
+        console_serial_puts(str, len);
+
+    if ( flags & CONSOLE_PV )
+        pv_console_puts(str, len);
+
+    if ( flags & CONSOLE_VIDEO )
+        video_puts(str, len);
+
+    if ( flags & CONSOLE_DEBUG )
+        console_debug_puts(str, len);
+
+    if ( flags & CONSOLE_RING )
+        conring_puts(str, len);
+}
+
+static inline void __putstr(const char *str)
+{
+    console_puts(str, strlen(str), CONSOLE_ALL);
+}
+
 static long guest_console_write(XEN_GUEST_HANDLE_PARAM(char) buffer,
                                 unsigned int count)
 {
     char kbuf[128];
     unsigned int kcount =3D 0;
+    unsigned int flags =3D opt_console_to_ring
+                         ? CONSOLE_ALL : CONSOLE_DEFAULT;
     struct domain *cd =3D current->domain;
=20
     while ( count > 0 )
@@ -640,23 +703,7 @@ static long guest_console_write(XEN_GUEST_HANDLE_PARAM=
(char) buffer,
         {
             /* 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);
-
+            console_puts(kbuf, kcount, flags);
             nrspin_unlock_irq(&console_lock);
         }
         else
@@ -757,28 +804,6 @@ long do_console_io(
  * *****************************************************
  */
=20
-static void __putstr(const char *str)
-{
-    size_t len =3D 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);
-}
-
 static int printk_prefix_check(char *p, char **pp)
 {
     int loglvl =3D -1;
--=20
2.34.1




From xen-devel-bounces@lists.xenproject.org Sat Apr 26 18:51:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 26 Apr 2025 18:51:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.969289.1358467 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8kcB-0002ba-K9; Sat, 26 Apr 2025 18:51:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 969289.1358467; Sat, 26 Apr 2025 18:51: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 1u8kcB-0002bR-GX; Sat, 26 Apr 2025 18:51:03 +0000
Received: by outflank-mailman (input) for mailman id 969289;
 Sat, 26 Apr 2025 18:51: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=ssvg=XM=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u8kcA-0001Xu-RJ
 for xen-devel@lists.xenproject.org; Sat, 26 Apr 2025 18:51:02 +0000
Received: from mail-4316.protonmail.ch (mail-4316.protonmail.ch [185.70.43.16])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 65ed2e56-22cf-11f0-9eb3-5ba50f476ded;
 Sat, 26 Apr 2025 20:51:01 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 65ed2e56-22cf-11f0-9eb3-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1745693460; x=1745952660;
	bh=2tSWIB/j3K1mPH/6nfOFSlv3PolnyH7aoGT1opO+DMs=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=gV7RmlORt0wUAM+lhrNTJP9lmdKoqI01ezCSZmKQmEwq598V0J0HPEFq7zyBuPQ/b
	 Y/sbW3AFFj71QYcHL8LZWzKj/GWWLnTjGpj1IYdQGcBhP8Vz/3MbQMS0wRdRGUaVzB
	 LFkgO6/n9l1H9VDUMCX6MeXFyI1wITMnmI5INymBh5z3HQf9xuRIfLl7oFaOwerPcV
	 RiyObNaVFun8rDqlD4YfhBFqlMJTWEh4GDk9r1gucY6dpbxkR1JhLFhNVdhX2y5rhD
	 GUwA7MVQLtFUyAoYE3DPoi2MaClSQoZTlMDIXmLwe9/irw0mZ+tr5NAuv5GpLE+P93
	 tJzRejX6UYf6w==
Date: Sat, 26 Apr 2025 18:50:55 +0000
To: xen-devel@lists.xenproject.org
From: dmkhn@proton.me
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org, dmukhin@ford.com
Subject: [PATCH v2 3/3] xen/console: introduce conring_flush()
Message-ID: <20250426185021.100646-4-dmukhin@ford.com>
In-Reply-To: <20250426185021.100646-1-dmukhin@ford.com>
References: <20250426185021.100646-1-dmukhin@ford.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 2c3e2e974058430ecb216114d79e1d55f82ae312
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

From: Denis Mukhin <dmukhin@ford.com>

Introduce conring_flush() to ensure all messages kept in the internal
console ring are sent to all physical consoles (serial, VGA (x86))
after their initialization is completed.

Resolves: https://gitlab.com/xen-project/xen/-/issues/184
Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
Changes v1->v2:
- rebased
---
 xen/drivers/char/console.c | 31 +++++++++++++++++++++----------
 1 file changed, 21 insertions(+), 10 deletions(-)

diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
index 8f882a47d1..8e5fc6c58c 100644
--- a/xen/drivers/char/console.c
+++ b/xen/drivers/char/console.c
@@ -446,24 +446,20 @@ void console_serial_puts(const char *s, size_t nr)
         serial_puts(sercon_handle, s, nr);
 }
=20
-static void cf_check dump_console_ring_key(unsigned char key)
+/*
+ * Flush contents of the conring to the physical console devices.
+ */
+static int conring_flush(void)
 {
     uint32_t idx, len, sofar, c;
     unsigned int order;
     char *buf;
     unsigned long flags;
=20
-    printk("'%c' pressed -> dumping console ring buffer (dmesg)\n", key);
-
-    /* create a buffer in which we'll copy the ring in the correct
-       order and NUL terminate */
     order =3D get_order_from_bytes(conring_size + 1);
     buf =3D alloc_xenheap_pages(order, 0);
     if ( buf =3D=3D NULL )
-    {
-        printk("unable to allocate memory!\n");
-        return;
-    }
+        return -ENOMEM;
=20
     flags =3D console_lock_recursive_irqsave();
=20
@@ -485,6 +481,18 @@ static void cf_check dump_console_ring_key(unsigned ch=
ar key)
     console_unlock_recursive_irqrestore(flags);
=20
     free_xenheap_pages(buf, order);
+
+    return 0;
+}
+
+static void cf_check conring_dump_keyhandler(unsigned char key)
+{
+    int rc;
+
+    printk("'%c' pressed -> dumping console ring buffer (dmesg)\n", key);
+    rc =3D conring_flush();
+    if ( rc )
+        printk("failed to dump console ring buffer: %d\n", rc);
 }
=20
 /*
@@ -1049,6 +1057,9 @@ void __init console_init_preirq(void)
     serial_set_rx_handler(sercon_handle, serial_rx);
     pv_console_set_rx_handler(serial_rx);
=20
+    /* NB: send conring contents to all enabled physical consoles, if any =
*/
+    conring_flush();
+
     /* HELLO WORLD --- start-of-day banner text. */
     nrspin_lock(&console_lock);
     __putstr(xen_banner());
@@ -1139,7 +1150,7 @@ void __init console_endboot(void)
     if ( opt_conswitch[1] =3D=3D 'x' )
         console_rx =3D max_console_rx;
=20
-    register_keyhandler('w', dump_console_ring_key,
+    register_keyhandler('w', conring_dump_keyhandler,
                         "synchronously dump console ring buffer (dmesg)", =
0);
     register_irq_keyhandler('+', &do_inc_thresh,
                             "increase log level threshold", 0);
--=20
2.34.1




From xen-devel-bounces@lists.xenproject.org Sat Apr 26 18:56:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 26 Apr 2025 18:56:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.969320.1358477 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8kh3-0003tV-5u; Sat, 26 Apr 2025 18:56:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 969320.1358477; Sat, 26 Apr 2025 18:56: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 1u8kh3-0003tO-3D; Sat, 26 Apr 2025 18:56:05 +0000
Received: by outflank-mailman (input) for mailman id 969320;
 Sat, 26 Apr 2025 18:56: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=pqNG=XM=kernel.org=mingo@srs-se1.protection.inumbo.net>)
 id 1u8kh1-0003tI-GL
 for xen-devel@lists.xenproject.org; Sat, 26 Apr 2025 18:56:03 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org
 [2600:3c04:e001:324:0:1991:8:25])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 167fe96f-22d0-11f0-9ffb-bf95429c2676;
 Sat, 26 Apr 2025 20:55:58 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id A4B2C6115D;
 Sat, 26 Apr 2025 18:55:33 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id AAC84C4CEE2;
 Sat, 26 Apr 2025 18:55: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: 167fe96f-22d0-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1745693756;
	bh=F0vG+nDcCONKZs4e6RtOitQ9n8Mz1fjCVmRW/ho89E4=;
	h=Date:From:To:Cc:Subject:References:In-Reply-To:From;
	b=C+3VZhA2rqQfpKTKP2m4yO0DolUCdMwEmkMYv15ph8vW2QWnr+dwsgrdPEDAa+XKU
	 cT+lBTivJUJbXq+YwDynrxuVGxxd7bxMoEAer2TcpR5Z/80KWu1DFGnJTMAWfaqwHp
	 Wt4Jx4tgNhuiLnQ6Uh2yFQ/qvjnnEMx6H4ogxz68sX4Wr+dcBgU5QN/U2h2Uj0/Z1G
	 PhGfSzqlUafQ7G0XaImHK804liJwS1k4ojK4L0zZghvVKYBfY33rV6LPviVBGb4Iu6
	 DYFyY1v4Quv3vP2Oe2ssiS64YmX/cVrSFbo0ye/YxMwYHLtMptqvYcMDxuiFBr260w
	 jjSeafo4hNDdA==
Date: Sat, 26 Apr 2025 20:55:50 +0200
From: Ingo Molnar <mingo@kernel.org>
To: "H. Peter Anvin" <hpa@zytor.com>
Cc: Arnd Bergmann <arnd@kernel.org>, Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org,
	Arnd Bergmann <arnd@arndb.de>, Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Alexander Usyskin <alexander.usyskin@intel.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Mateusz =?utf-8?Q?Jo=C5=84czyk?= <mat.jonczyk@o2.pl>,
	"Mike Rapoport (Microsoft)" <rppt@kernel.org>,
	Ard Biesheuvel <ardb@kernel.org>,
	Peter Zijlstra <peterz@infradead.org>, linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	Linus Torvalds <torvalds@linux-foundation.org>
Subject: Re: [PATCH] [RFC] x86/cpu: rework instruction set selection
Message-ID: <aA0sNu0gcjlvhlDT@gmail.com>
References: <20250425141740.734030-1-arnd@kernel.org>
 <aAyiganPp_UsNlnZ@gmail.com>
 <E130C6F4-5602-44E6-ABB0-B87B389C0026@zytor.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <E130C6F4-5602-44E6-ABB0-B87B389C0026@zytor.com>


* H. Peter Anvin <hpa@zytor.com> wrote:

> Dropping CMOV would mean dropping P5 support.

Yeah, I think we should make the cutoff at the 686 level. Is there any 
strong reason not to do that? Stable kernels will still exist for a 
very long time for ancient boards.

	Ingo


From xen-devel-bounces@lists.xenproject.org Sat Apr 26 18:59:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 26 Apr 2025 18:59:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.969334.1358487 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8kkU-0004RW-Kf; Sat, 26 Apr 2025 18:59:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 969334.1358487; Sat, 26 Apr 2025 18: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 1u8kkU-0004RP-HS; Sat, 26 Apr 2025 18:59:38 +0000
Received: by outflank-mailman (input) for mailman id 969334;
 Sat, 26 Apr 2025 18:59: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=Sv0y=XM=arndb.de=arnd@srs-se1.protection.inumbo.net>)
 id 1u8kkS-0004RF-Al
 for xen-devel@lists.xenproject.org; Sat, 26 Apr 2025 18:59:36 +0000
Received: from fout-b2-smtp.messagingengine.com
 (fout-b2-smtp.messagingengine.com [202.12.124.145])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 96b0e867-22d0-11f0-9ffb-bf95429c2676;
 Sat, 26 Apr 2025 20:59:33 +0200 (CEST)
Received: from phl-compute-05.internal (phl-compute-05.phl.internal
 [10.202.2.45])
 by mailfout.stl.internal (Postfix) with ESMTP id 6BBA61140176;
 Sat, 26 Apr 2025 14:59:31 -0400 (EDT)
Received: from phl-imap-11 ([10.202.2.101])
 by phl-compute-05.internal (MEProxy); Sat, 26 Apr 2025 14:59:31 -0400
Received: by mailuser.phl.internal (Postfix, from userid 501)
 id 835D42220073; Sat, 26 Apr 2025 14:59: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: 96b0e867-22d0-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arndb.de; 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=1745693971;
	 x=1745780371; bh=mEbM75b63b21fscrrKo8cY3IJYbVbEu6bJnC3sagJKU=; b=
	wLdLhHk9Qc/YVQ/LRpLy085dWwtnwfRkOL+RFJQzt0DALjXlCUyTfwJagoQ0hC9j
	q96aw+v6wloMZrw/5TK48KRJwfVZJPSWY8WenRIkC8fn77WtXRPCCVV9G7H1emu3
	MX5N+p4I7i4uArO3P2WHAnaDt0sJV02gXOIC6OlB0WNDCAS/i6ZwvYa/YO64kh5C
	Sk6gcXm6awBg2zQ7C+KrhCxB9UCR9wlKx8XuAd3ohtVZ54s5/ZPyyzLQLKF19CVw
	VUfYJoUk44qmcE0kneu/R4RbLhbNUzJ925AvGEAQIkfH3LxzP+FBofBt9CxpJ91L
	C+Lr+6FXGrVkbs72AoJvHg==
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=1745693971; x=
	1745780371; bh=mEbM75b63b21fscrrKo8cY3IJYbVbEu6bJnC3sagJKU=; b=c
	3gKUK/oYYU/xDCnCuX5xOv4Bm5TOJtFWPKLeQ0Sax5GGVJk8WK70LpoXhoZhFyth
	k4oUVMJrVF+APNynOeX3KxzwELSYFBNpCYDa46RZB0rGFPvC93jdLeExi0CuS56g
	/WGGcJF2tu3BbP7F/gzK3KqyRpOrF8YiWAVaEXNrxhbjGhESgs2TT+fyjHdxePlU
	mL2KrZr6Hxsg3ggQ9cFiLMR3u368RKx6C53w+N2ipJGzKRvRK+nv8GJkyYNhbLvx
	S2atg76dAYXbZAfBuJYqngIro1GCgVrG2cSxVdpVzID44U8RZEX2pz0/NweKpxfZ
	vQwkUe5lWe5X2yz0F6EBQ==
X-ME-Sender: <xms:ES0NaP-DXIPy1r8Rhpuma8P2vshaQilKA_cnY9l_PND_EolcZZWjmQ>
    <xme:ES0NaLtpBSbpRCo8pOsHdK6wejQgIeauuNsdHdYNr0J6v-U9jIsHsT6H9xwYCtccL
    8lbBFpoRIS9iaPpr8g>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvheehleekucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
    pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
    gvnhhtshculddquddttddmnecujfgurhepofggfffhvfevkfgjfhfutgfgsehtjeertder
    tddtnecuhfhrohhmpedftehrnhguuceuvghrghhmrghnnhdfuceorghrnhgusegrrhhnug
    gsrdguvgeqnecuggftrfgrthhtvghrnhephfdthfdvtdefhedukeetgefggffhjeeggeet
    fefggfevudegudevledvkefhvdeinecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrg
    hmpehmrghilhhfrhhomheprghrnhgusegrrhhnuggsrdguvgdpnhgspghrtghpthhtohep
    udelpdhmohguvgepshhmthhpohhuthdprhgtphhtthhopegsphesrghlihgvnhekrdguvg
    dprhgtphhtthhopehpvghtvghriiesihhnfhhrrgguvggrugdrohhrghdprhgtphhtthho
    pegrlhgvgigrnhguvghrrdhushihshhkihhnsehinhhtvghlrdgtohhmpdhrtghpthhtoh
    eprghruggssehkvghrnhgvlhdrohhrghdprhgtphhtthhopegrrhhnugeskhgvrhhnvghl
    rdhorhhgpdhrtghpthhtohepmhhinhhgoheskhgvrhhnvghlrdhorhhgpdhrtghpthhtoh
    eprhhpphhtsehkvghrnhgvlhdrohhrghdprhgtphhtthhopeigkeeisehkvghrnhgvlhdr
    ohhrghdprhgtphhtthhopehtghhlgieslhhinhhuthhrohhnihigrdguvg
X-ME-Proxy: <xmx:ES0NaNBeEKd0jec5yISSD9Q-uu9etGx1vwBKZ21jl4BMia77snVMBg>
    <xmx:ES0NaLeqyuNfkRQkv0vjERgVE973evWx3TaoQsn-F1qhBY-PHw2q4A>
    <xmx:ES0NaEPeomFD0FA824OTf3ZVX-xa1ooV371pZaJIiHJWfdL3gCaH1w>
    <xmx:ES0NaNlws2bH0MGanfOUbi8KFsRDyDFOIZ9ENqO2ZktogfDEYa5nKw>
    <xmx:Ey0NaAa8_vG03KGmkbKsDc9W0ff8iLcfzDomNo-IETQLfVCDLn1KMyyi>
Feedback-ID: i56a14606:Fastmail
X-Mailer: MessagingEngine.com Webmail Interface
MIME-Version: 1.0
X-ThreadId: T6ef4c78fde3bfaf8
Date: Sat, 26 Apr 2025 20:58:59 +0200
From: "Arnd Bergmann" <arnd@arndb.de>
To: "Ingo Molnar" <mingo@kernel.org>, "Arnd Bergmann" <arnd@kernel.org>
Cc: "Thomas Gleixner" <tglx@linutronix.de>, "Ingo Molnar" <mingo@redhat.com>,
 "Borislav Petkov" <bp@alien8.de>,
 "Dave Hansen" <dave.hansen@linux.intel.com>, x86@kernel.org,
 "H. Peter Anvin" <hpa@zytor.com>, "Juergen Gross" <jgross@suse.com>,
 "Boris Ostrovsky" <boris.ostrovsky@oracle.com>,
 "Alexander Usyskin" <alexander.usyskin@intel.com>,
 "Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
 =?UTF-8?Q?Mateusz_Jo=C5=84czyk?= <mat.jonczyk@o2.pl>,
 "Mike Rapoport" <rppt@kernel.org>, "Ard Biesheuvel" <ardb@kernel.org>,
 "Peter Zijlstra" <peterz@infradead.org>, linux-kernel@vger.kernel.org,
 xen-devel@lists.xenproject.org,
 "Linus Torvalds" <torvalds@linux-foundation.org>
Message-Id: <d2b0e71c-e79b-40d6-8693-3202cd894d66@app.fastmail.com>
In-Reply-To: <aAyiganPp_UsNlnZ@gmail.com>
References: <20250425141740.734030-1-arnd@kernel.org>
 <aAyiganPp_UsNlnZ@gmail.com>
Subject: Re: [PATCH] [RFC] x86/cpu: rework instruction set selection
Content-Type: text/plain
Content-Transfer-Encoding: 7bit

On Sat, Apr 26, 2025, at 11:08, Ingo Molnar wrote:
> * Arnd Bergmann <arnd@kernel.org> wrote:
>
> While the simplification is nice on its face, this looks messy:
>
>>  
>>  config X86_PAE
>>  	bool "PAE (Physical Address Extension) Support"
>> -	depends on X86_32 && X86_HAVE_PAE
>> +	depends on X86_32 && X86_CMOV
>
> Coupling CMOV to PAE ... :-/

Right. With the current set of features, CMOV is almost the
same as 686. My reasoning was that support for CMOV has a
very clear definition, with the instruction either being
available or not.

When the M686/MPENTIUMII/MK6/... options are just optimization
levels rather than selecting an instruction set, X86_PAE
can't depend on those any more. An easy answer here would be
to not have X86_PAE depend on anything, but instead make it
force X86_MINIMUM_CPU_FAMILY=6.

>> +config X86_CMOV
>> +	bool "Require 686-class CMOV instructions" if X86_32
>> +	default y
>>  	help
>> -	  This is the processor type of your CPU. This information is
>> -	  used for optimizing purposes. In order to compile a kernel
>> -	  that can run on all supported x86 CPU types (albeit not
>> -	  optimally fast), you can specify "586" here.
>> +	  Most x86-32 processor implementations are compatible with
>> +	  the the CMOV instruction originally added in the Pentium Pro,
>> +	  and they perform much better when using it.
>> +
>> +	  Disable this option to build for 586-class CPUs without this
>> +	  instruction. This is only required for the original Intel
>> +	  Pentium (P5, P54, P55), AMD K6/K6-II/K6-3D, Geode GX1 and Via
>> +	  CyrixIII/C3 CPUs.
>
> Very few users will know anything about CMOV.
>
> I'd argue the right path forward is to just bite the bullet and remove 
> non-CMOV support as well, that would be the outcome *anyway* in a few 
> years. That would allow basically a single 'modern' 32-bit kernel that 
> is supposed to boot on every supported CPU. People might even end up 
> testing it ... ;-)

That would be a much more drastic change than requiring CX8
and TSC, which were present on almost all Socket 7 CPUs and
all embedded cores other than Elan and Vortex86SX.

CMOV is missing not just on old Socket 5/7 CPUs (Pentium
MMX, AMD K6, Cyrix MII) but also newer embedded Via C3, Geode GX
and Vortex86DX/MX/EX/DX2. The replacement Nehemiah (2003), GeodeLX
(2005) and Vortex86DX3/EX2 (2015!) have CMOV, but the old ones
were sold alongside them for years, and some of the 586-class
Vortex86 products are still commercially available.

There is a good chance that we could just not use CMOV and only
build 586-compatible kernels without anyone caring about the
performance difference. There is not much to gain here either
though, as the cost of supporting both 586-class and 686-class
builds is rather small: there is a compiler flag, a boot time
check and microoptimziation in ffs/fls.

     Arnd


From xen-devel-bounces@lists.xenproject.org Sat Apr 26 19:10:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 26 Apr 2025 19:10:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.969372.1358497 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8kuX-0006bE-Gj; Sat, 26 Apr 2025 19:10:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 969372.1358497; Sat, 26 Apr 2025 19: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 1u8kuX-0006b7-Dl; Sat, 26 Apr 2025 19:10:01 +0000
Received: by outflank-mailman (input) for mailman id 969372;
 Sat, 26 Apr 2025 19:09: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=pqNG=XM=kernel.org=mingo@srs-se1.protection.inumbo.net>)
 id 1u8kuV-0006b1-8U
 for xen-devel@lists.xenproject.org; Sat, 26 Apr 2025 19:09:59 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0b2568ef-22d2-11f0-9eb3-5ba50f476ded;
 Sat, 26 Apr 2025 21:09:58 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 98CDB6115D;
 Sat, 26 Apr 2025 19:09:33 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 92973C4CEE2;
 Sat, 26 Apr 2025 19:09: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: 0b2568ef-22d2-11f0-9eb3-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1745694596;
	bh=07l3WctL9NqhfdN89XZmqkm5zTdk90Q/ztrcy/DErjg=;
	h=Date:From:To:Cc:Subject:References:In-Reply-To:From;
	b=NVfY67VWhCVqlpe7m2m9BJZW2pOZWxvq9m7gF6cpOJC+vZijOXds7YNWbZ8+8wBvK
	 v0gjXTJEl6up/BuqExzotOfQNrcXc/iSM12njyAUxBde+8Eggt3fT+zKp8fTm6tuJg
	 PqZcKEa/R/OEzNXAO+yXnU6NhDVPIpDthVGKhEvfVRk+4pGzH/5SzmMqyuTgw06Net
	 2QKbaK8Jk0J2yQtumpT3m2LmZs6und/oVXYc2A3uUnU4wd5IXdmNpOFcvbYSDKcFti
	 t0C5fSSHVbnxYk09jk/DjG8CzVR9FPjIaAhbJGXXFKVxVxysfDBpTOKlMWy2bDoXHd
	 +ZfFc3/gEW3qQ==
Date: Sat, 26 Apr 2025 21:09:50 +0200
From: Ingo Molnar <mingo@kernel.org>
To: Arnd Bergmann <arnd@arndb.de>
Cc: Arnd Bergmann <arnd@kernel.org>, Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>, Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Alexander Usyskin <alexander.usyskin@intel.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Mateusz =?utf-8?Q?Jo=C5=84czyk?= <mat.jonczyk@o2.pl>,
	Mike Rapoport <rppt@kernel.org>, Ard Biesheuvel <ardb@kernel.org>,
	Peter Zijlstra <peterz@infradead.org>, linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	Linus Torvalds <torvalds@linux-foundation.org>
Subject: Re: [PATCH] [RFC] x86/cpu: rework instruction set selection
Message-ID: <aA0vft1cPuvzdZvJ@gmail.com>
References: <20250425141740.734030-1-arnd@kernel.org>
 <aAyiganPp_UsNlnZ@gmail.com>
 <d2b0e71c-e79b-40d6-8693-3202cd894d66@app.fastmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <d2b0e71c-e79b-40d6-8693-3202cd894d66@app.fastmail.com>


* Arnd Bergmann <arnd@arndb.de> wrote:

> CMOV is missing not just on old Socket 5/7 CPUs (Pentium MMX, AMD K6, 
> Cyrix MII) but also newer embedded Via C3, Geode GX and 
> Vortex86DX/MX/EX/DX2. The replacement Nehemiah (2003), GeodeLX (2005) 
> and Vortex86DX3/EX2 (2015!) have CMOV, but the old ones were sold 
> alongside them for years, and some of the 586-class Vortex86 products 
> are still commercially available.

Very few (if any) of the commercially available products will run 
modern 6.16+ kernels, right?

Note that the real danger the 32-bit x86 kernel is going to be facing 
in 2-5 years is total removal due to lack of development interest, but 
I think we can support 686+ reasonably far into the future, and can 
keep it tested reasonably - while covering like 99%+ of the currently 
available 32-bit-only x86 products on the market. The fewer variants, 
the better.

Thanks,

	Ingo


From xen-devel-bounces@lists.xenproject.org Sat Apr 26 19:25:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 26 Apr 2025 19:25:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.969389.1358507 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8l95-0001hD-Nx; Sat, 26 Apr 2025 19:25:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 969389.1358507; Sat, 26 Apr 2025 19: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 1u8l95-0001h6-KI; Sat, 26 Apr 2025 19:25:03 +0000
Received: by outflank-mailman (input) for mailman id 969389;
 Sat, 26 Apr 2025 19:25: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=eGdt=XM=linuxfoundation.org=torvalds@srs-se1.protection.inumbo.net>)
 id 1u8l94-0001h0-C6
 for xen-devel@lists.xenproject.org; Sat, 26 Apr 2025 19:25:02 +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 234806ef-22d4-11f0-9ffb-bf95429c2676;
 Sat, 26 Apr 2025 21:24:57 +0200 (CEST)
Received: by mail-ed1-x52a.google.com with SMTP id
 4fb4d7f45d1cf-5e6f4b3ebe5so6253569a12.0
 for <xen-devel@lists.xenproject.org>; Sat, 26 Apr 2025 12:24:57 -0700 (PDT)
Received: from mail-ej1-f51.google.com (mail-ej1-f51.google.com.
 [209.85.218.51]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5f7013ff81dsm3179676a12.24.2025.04.26.12.24.54
 for <xen-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sat, 26 Apr 2025 12:24:54 -0700 (PDT)
Received: by mail-ej1-f51.google.com with SMTP id
 a640c23a62f3a-ac339f53df9so650351366b.1
 for <xen-devel@lists.xenproject.org>; Sat, 26 Apr 2025 12:24: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: 234806ef-22d4-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linux-foundation.org; s=google; t=1745695496; x=1746300296; darn=lists.xenproject.org;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:from:to:cc:subject:date:message-id:reply-to;
        bh=SAmZJnkixm3evgqXXEJgAXtv6B9uAHmojpNR8VdWt0M=;
        b=guXSM9aH6XdjH9VPD5I4t4YcCHK+15lR/MOTdaG8Lco0DECr9IIAIdL76tsHqewqQs
         MBJCMAcLbYFX9HerjKkBZm/nU2wDFk59hQnDIojKfRg3jBfFH3FdOX/uiiG2hbqX6lPf
         bc5MYNqIaApyel9pS50MX0bWnpPlILGh/Uxhk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745695496; x=1746300296;
        h=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=SAmZJnkixm3evgqXXEJgAXtv6B9uAHmojpNR8VdWt0M=;
        b=JAMuloTqI+LJPa1KHI454g6qrng7pgznZQ61EcasQ8zQxDaAIVHV/7sOOAM01w8uwl
         xDMueYWNeY7Uxu6RUw/B/U+AJnLjpe6X0x2l1FRAYwJjPcD99W84rfTO964GSC9L1pti
         cncqlWFC74k4+MDtcquBhg6Pdxm8Ay6ytc1ZKS76sPo5l8qR3Uo348tyOy6eoK932SeL
         N0eTsBbpB0CZ2rqjZw0OuX7vmJkaYXztPgXw42S2rZVYaAcRWk+G6ELVrAL5poJPvrRr
         KnYDmCDRZ7wK5lOCwA/dNrhWm9bzj8GiW7RAhaSSeF3ynmcpIJWG1TWQeuIvaJg/Kfir
         3cCg==
X-Forwarded-Encrypted: i=1; AJvYcCVxywhJ1sj7wdvy0GWNo3JcgsSAEks1sAYdU4C26bgHV+iZix/0BvYcIhk660DCiKj5236NUgLsmBw=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz0urkr5mhEXkBzA/WFGHU56ijVeoqNSm2cKQf6WBGslcV7DO/u
	+N805JvWQTG/zs5WLYwCUwlT4jq61J740Bqhu16GjFHjSBg0e4/dxN6Hn1EfOvbFlRL30ySxQ9N
	sb7g=
X-Gm-Gg: ASbGncuNLL8rud0/oL1L1oSGAqgTpx/42okFVlj3eQHVqNwdUgASU+PmCXQhOvSVZ22
	A8fFovJw5tyUKpxQcvCyi1CeRHiZ/Irlh3m2NSZT4j0dXy7ZCK0bVA/CGwjVmPPT7zxRwuVvZLi
	P3XbGtr7W9kLg5lnOnH5qpkFmygcJBielBuzfWy12F+/5vH3UAzBtrDMtLr0YzI6OA2RGNohwIS
	rpLCoMtkQijCWu/AJ+wgxY2hSXV59awY4qOS59FjCrJVSeBXMgj963u4yAgusRwNeXIEhNHDz9J
	qOS6zdmQAveST+XKO87gCnYPVR/uvGeCcsJ/5ywvpGBcC2c5X279HXnEJvW4tUwUEtJLOPG9D4S
	Z02ODganV2p5awIg=
X-Google-Smtp-Source: AGHT+IFOFPmelcPrfwpNsqoB9v+sKlD49/af72bM2dtGumQ7ZrmcO5B/pczB/L82m1ESdFI27Y4h3g==
X-Received: by 2002:a05:6402:5112:b0:5e6:14ac:30f with SMTP id 4fb4d7f45d1cf-5f739596703mr2868784a12.2.1745695496289;
        Sat, 26 Apr 2025 12:24:56 -0700 (PDT)
X-Forwarded-Encrypted: i=1; AJvYcCUgM+1jPyD21T/NQFOStqfgIvg/24ahqncSVInpI/hqrP4r4sE+7EQ/j4foaiPJBbtHavJkHsY5Rz0=@lists.xenproject.org
X-Received: by 2002:a17:907:7e95:b0:aca:a1d8:981f with SMTP id
 a640c23a62f3a-ace848c02e9mr293296866b.12.1745695493835; Sat, 26 Apr 2025
 12:24:53 -0700 (PDT)
MIME-Version: 1.0
References: <20250425141740.734030-1-arnd@kernel.org> <aAyiganPp_UsNlnZ@gmail.com>
 <d2b0e71c-e79b-40d6-8693-3202cd894d66@app.fastmail.com>
In-Reply-To: <d2b0e71c-e79b-40d6-8693-3202cd894d66@app.fastmail.com>
From: Linus Torvalds <torvalds@linux-foundation.org>
Date: Sat, 26 Apr 2025 12:24:37 -0700
X-Gmail-Original-Message-ID: <CAHk-=wh=TUsVv6xhtzYsWJwJggrjyOfYT3kBu+bHtoYLK0M9Xw@mail.gmail.com>
X-Gm-Features: ATxdqUEWPVpzwOGKhxkHhMGljegHuR82-vkbdZlf8siCRhETy-JGPbqLh9g70WQ
Message-ID: <CAHk-=wh=TUsVv6xhtzYsWJwJggrjyOfYT3kBu+bHtoYLK0M9Xw@mail.gmail.com>
Subject: Re: [PATCH] [RFC] x86/cpu: rework instruction set selection
To: Arnd Bergmann <arnd@arndb.de>
Cc: Ingo Molnar <mingo@kernel.org>, Arnd Bergmann <arnd@kernel.org>, 
	Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>, 
	Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, 
	"H. Peter Anvin" <hpa@zytor.com>, Juergen Gross <jgross@suse.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, 
	Alexander Usyskin <alexander.usyskin@intel.com>, 
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>, =?UTF-8?Q?Mateusz_Jo=C5=84czyk?= <mat.jonczyk@o2.pl>, 
	Mike Rapoport <rppt@kernel.org>, Ard Biesheuvel <ardb@kernel.org>, Peter Zijlstra <peterz@infradead.org>, 
	linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"

On Sat, 26 Apr 2025 at 11:59, Arnd Bergmann <arnd@arndb.de> wrote:
>
> Right. With the current set of features, CMOV is almost the
> same as 686. My reasoning was that support for CMOV has a
> very clear definition, with the instruction either being
> available or not.

Yeah, I don't think there's any reason to make CMOV a reason to drop support.

It has questionable performance impact - I doubt anybody can measure
it - and the "maintenance burden" is basically a single compiler flag.

(And yes, one use in a x86 header file that is pretty questionable
too: I think the reason for the cmov is actually i486-only behavior
and we could probably unify the 32-bit and 64-bit implementation)

Let's not drop Pentium support due to something as insignificant as that.

Particularly as the only half-way "modern" use of the Pentium core is
actually the embedded cores (ie old atoms and clones).

We have good reasons to drop i486 (and the "fake Pentium" cores that
weren't). We _don't_ have good reason to drop Pentium support, I
think.

>  An easy answer here would be
> to not have X86_PAE depend on anything, but instead make it
> force X86_MINIMUM_CPU_FAMILY=6.

Make it so.

          Linus


From xen-devel-bounces@lists.xenproject.org Sat Apr 26 19:55:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 26 Apr 2025 19:55:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.969403.1358517 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8lce-0006f7-1D; Sat, 26 Apr 2025 19:55:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 969403.1358517; Sat, 26 Apr 2025 19:55:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8lcd-0006f0-Ue; Sat, 26 Apr 2025 19:55:35 +0000
Received: by outflank-mailman (input) for mailman id 969403;
 Sat, 26 Apr 2025 19: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=eGdt=XM=linuxfoundation.org=torvalds@srs-se1.protection.inumbo.net>)
 id 1u8lcc-0006eu-HM
 for xen-devel@lists.xenproject.org; Sat, 26 Apr 2025 19:55:34 +0000
Received: from mail-ed1-x52c.google.com (mail-ed1-x52c.google.com
 [2a00:1450:4864:20::52c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 68e49b9f-22d8-11f0-9eb3-5ba50f476ded;
 Sat, 26 Apr 2025 21:55:32 +0200 (CEST)
Received: by mail-ed1-x52c.google.com with SMTP id
 4fb4d7f45d1cf-5e5e0caa151so6516495a12.0
 for <xen-devel@lists.xenproject.org>; Sat, 26 Apr 2025 12:55:32 -0700 (PDT)
Received: from mail-ej1-f51.google.com (mail-ej1-f51.google.com.
 [209.85.218.51]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-ace6edb1a48sm338332866b.179.2025.04.26.12.55.29
 for <xen-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sat, 26 Apr 2025 12:55:29 -0700 (PDT)
Received: by mail-ej1-f51.google.com with SMTP id
 a640c23a62f3a-ace94273f0dso82468866b.3
 for <xen-devel@lists.xenproject.org>; Sat, 26 Apr 2025 12:55:29 -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: 68e49b9f-22d8-11f0-9eb3-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linux-foundation.org; s=google; t=1745697331; x=1746302131; darn=lists.xenproject.org;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:from:to:cc:subject:date:message-id:reply-to;
        bh=aftG49fJm+Fa9LC9HlUDxoFYsWgicnJbWUzkp620LLU=;
        b=Ztq0G3R2LBCi3Bup6FgODQDKKnUiG+ow5AbQbThYSJNQAPx+Oq/mQx/wEh4K/nnD71
         z16w+nLrWTDuu7RiZrUJDLoj3GE/xhk4nY06KIHFc9zQGOE3dfn7hX0fSIvkMrglvSwy
         PQdzBNsP3q5x8QEd4P7gYQq7szPdiGgTyhI8M=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745697331; x=1746302131;
        h=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=aftG49fJm+Fa9LC9HlUDxoFYsWgicnJbWUzkp620LLU=;
        b=CPLmlkKk/3aB+c//sjOfaJWhlqcYJMAcs/BykGm2Dpg3ZKVhwVOugxSNNQoHkL8vWM
         vzSTFJAY+kT/5WO73nAPU1+K0YYMTcrQxvAXNDxlAWa8iS46Olso65SBVLknN/atML2y
         t99QwjeV64e0324KlfUlG/EVc0ZPXqijx7aAh53iHUXPjlObTvwNXAj+HLqZLu5f4Ora
         m5UHpLF2q+NFNBE3B1HfTzqI2aCsGVU7eKxMaaelsjZHnqzNCPZqRKaaH2I+lnZ1u9qG
         JijSvYCPIo8lyruDBX2q8Tv4hm9hFMYlfiOnLgoylZZcY2QwTFzaoBgcNhDYTj+h4EdG
         6MDA==
X-Forwarded-Encrypted: i=1; AJvYcCXNfuHN97N8SIsr1CxmHcilT+sC/205DVjCgPS7wltnZiNdr/0DqGt2bg1804UOon5PximthpT9XPM=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz3kq3/jyN+2rD1+utT30O0GHlBaghBgGXrCE3y1ziJyFKCThG2
	S5ho5wO0l6oSdByY0TfXo36hdrYJSfgzynBqU6uGVZisd+Emr2xq7dlQJlJq2Roa3U8+XVkFlqe
	cHY4=
X-Gm-Gg: ASbGncsLnfnUrNnKpapi0VfJEX5cUYf2XqPUHlNE/vyBNqaU/YGbpKDW3jkqaxeVNeK
	hsw+imKfqEcFIr+H53GpAVlO5lJ2g88+sSDc+t+r/Tuu6LsqABvYd5BOkUonffXcIlk01jbsUI0
	GJE0bwnclk9GfMENgTD/F+D/8O5E7NoZHOnDJ5N8ASOJ7BzBt6rZPH4x7GGp+gdnKNC56brD5Bs
	9aqqTFBfe2EEVuF+33YTN4nHqJeN4cm5t69+PwPrCJrgfTntv2xic54p+hV7pbfAnE4PvZnwZ8W
	56YpACFrDmylL61fGShJiHEU0UmdlvMCexVBwsQIwktETjrqbPDpPLQzh7bds2KXA7aPIuycYjs
	Kv2ZMutFGADApcPc=
X-Google-Smtp-Source: AGHT+IGPyTo0X5VCre6aOFDd8uCnH1/tGiAkVL1WuYM4oz3cctiozLO3X2prU3TJSSWPm8kiRp9DnQ==
X-Received: by 2002:a17:907:7255:b0:ace:3a72:25e8 with SMTP id a640c23a62f3a-ace713aadefmr594295666b.51.1745697330878;
        Sat, 26 Apr 2025 12:55:30 -0700 (PDT)
X-Forwarded-Encrypted: i=1; AJvYcCWbmj7eWl0P0IJrKncWy24NapNIa1ZvcVB0k4xDB2qp8aQAdfsTJAVCOCl7dkOAjgfmggtTv1UoBJg=@lists.xenproject.org
X-Received: by 2002:a17:906:dc8b:b0:ac3:26ff:11a0 with SMTP id
 a640c23a62f3a-ace7133c83emr662400166b.38.1745697329459; Sat, 26 Apr 2025
 12:55:29 -0700 (PDT)
MIME-Version: 1.0
References: <20250425141740.734030-1-arnd@kernel.org> <aAyiganPp_UsNlnZ@gmail.com>
 <d2b0e71c-e79b-40d6-8693-3202cd894d66@app.fastmail.com> <CAHk-=wh=TUsVv6xhtzYsWJwJggrjyOfYT3kBu+bHtoYLK0M9Xw@mail.gmail.com>
In-Reply-To: <CAHk-=wh=TUsVv6xhtzYsWJwJggrjyOfYT3kBu+bHtoYLK0M9Xw@mail.gmail.com>
From: Linus Torvalds <torvalds@linux-foundation.org>
Date: Sat, 26 Apr 2025 12:55:13 -0700
X-Gmail-Original-Message-ID: <CAHk-=wgfk69H-T-vMWR33xUpVsWJLrF34d0OwUXa2sHhtpSwZg@mail.gmail.com>
X-Gm-Features: ATxdqUHx162ag34plcJL88OxLQAR-HzI_SClvQLeiGcjSBwah8R9mtvrxHJPTzY
Message-ID: <CAHk-=wgfk69H-T-vMWR33xUpVsWJLrF34d0OwUXa2sHhtpSwZg@mail.gmail.com>
Subject: Re: [PATCH] [RFC] x86/cpu: rework instruction set selection
To: Arnd Bergmann <arnd@arndb.de>
Cc: Ingo Molnar <mingo@kernel.org>, Arnd Bergmann <arnd@kernel.org>, 
	Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>, 
	Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, 
	"H. Peter Anvin" <hpa@zytor.com>, Juergen Gross <jgross@suse.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, 
	Alexander Usyskin <alexander.usyskin@intel.com>, 
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>, =?UTF-8?Q?Mateusz_Jo=C5=84czyk?= <mat.jonczyk@o2.pl>, 
	Mike Rapoport <rppt@kernel.org>, Ard Biesheuvel <ardb@kernel.org>, Peter Zijlstra <peterz@infradead.org>, 
	linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"

On Sat, 26 Apr 2025 at 12:24, Linus Torvalds
<torvalds@linux-foundation.org> wrote:
>
> (And yes, one use in a x86 header file that is pretty questionable
> too: I think the reason for the cmov is actually i486-only behavior
> and we could probably unify the 32-bit and 64-bit implementation)

Actually, what we *should* do is to remove that manual use of 'cmov'
entirely - even if we decide that yes, that undefined zero case is
actually real.

We should probably change it to use CC_SET(), and the compiler will do
a much better job - and probably never use cmov anyway.

And yes, that will generate worse code if you have an old compiler
that doesn't do ASM_FLAG_OUTPUTS, but hey, that's true in general. If
you want good code, you need a good compiler.

And clang needs to learn the CC_SET() pattern anyway.

So I think that manual cmov pattern for x86-32 should be replaced with

        bool zero;

        asm("bsfl %[in],%[out]"
            CC_SET(z)
            : CC_OUT(z) (zero),
              [out]"=r" (r)
            : [in] "rm" (x));

        return zero ? 0 : r+1;

instead (that's ffs(), and fls() would need the same thing except with
bsrl insteadm, of course).

I bet that would actually improve code generation.

And I also bet it doesn't actually matter, of course.

           Linus


From xen-devel-bounces@lists.xenproject.org Sat Apr 26 23:49:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 26 Apr 2025 23:49:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.969454.1358527 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8pGQ-00058M-VC; Sat, 26 Apr 2025 23:48:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 969454.1358527; Sat, 26 Apr 2025 23:48: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 1u8pGQ-00058E-QC; Sat, 26 Apr 2025 23:48:54 +0000
Received: by outflank-mailman (input) for mailman id 969454;
 Sat, 26 Apr 2025 23:48: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=Dw20=XM=zytor.com=hpa@srs-se1.protection.inumbo.net>)
 id 1u8pGP-000588-4T
 for xen-devel@lists.xenproject.org; Sat, 26 Apr 2025 23:48:53 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ff253844-22f8-11f0-9ffb-bf95429c2676;
 Sun, 27 Apr 2025 01:48:49 +0200 (CEST)
Received: from [127.0.0.1] ([76.133.66.138]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53QNluFV1005984
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NO);
 Sat, 26 Apr 2025 16:47:56 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ff253844-22f8-11f0-9ffb-bf95429c2676
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53QNluFV1005984
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745711278;
	bh=Efb+Y8rvKueZmGY8ER6BRva8Iw8OWCsIsGFLE56vRl8=;
	h=Date:From:To:CC:Subject:In-Reply-To:References:From;
	b=P/Rt4kQ555chle4fd6u83fkO61mpaRrGHqm3uByh8N3lSMxZL/q460tfYdHlheP8D
	 zCd6F1t4iXrNqELKFnHXUCOQ/j/okZUtsZ+m1VvTuNl8RP6BakxW6AJMqLmqeP+PRX
	 WRWME5XpaX3pon4G6Gjgr5VwgN7q2kEhYXEJ2mkNQ1/tWXM2to1QTJ2dHmoSCFu9Fw
	 RYM+J+2G/74cxHOb37CJsFnYnT1MbeYVASdC4yzDxcjJq+7SlbM4Yh0gbwhPVVEfbi
	 IlCTiTr2iuwOGGe4BxrpiBB9hrwS4hIC/GM1d4ghRCf0ORnOHD5F39l8rB4RtlZmJx
	 Zd0khTJhmaBpw==
Date: Sat, 26 Apr 2025 16:47:55 -0700
From: "H. Peter Anvin" <hpa@zytor.com>
To: Linus Torvalds <torvalds@linux-foundation.org>,
        Arnd Bergmann <arnd@arndb.de>
CC: Ingo Molnar <mingo@kernel.org>, Arnd Bergmann <arnd@kernel.org>,
        Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>,
        Borislav Petkov <bp@alien8.de>,
        Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org,
        Juergen Gross <jgross@suse.com>,
        Boris Ostrovsky <boris.ostrovsky@oracle.com>,
        Alexander Usyskin <alexander.usyskin@intel.com>,
        Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
        =?UTF-8?Q?Mateusz_Jo=C5=84czyk?= <mat.jonczyk@o2.pl>,
        Mike Rapoport <rppt@kernel.org>, Ard Biesheuvel <ardb@kernel.org>,
        Peter Zijlstra <peterz@infradead.org>, linux-kernel@vger.kernel.org,
        xen-devel@lists.xenproject.org
Subject: Re: [PATCH] [RFC] x86/cpu: rework instruction set selection
User-Agent: K-9 Mail for Android
In-Reply-To: <CAHk-=wgfk69H-T-vMWR33xUpVsWJLrF34d0OwUXa2sHhtpSwZg@mail.gmail.com>
References: <20250425141740.734030-1-arnd@kernel.org> <aAyiganPp_UsNlnZ@gmail.com> <d2b0e71c-e79b-40d6-8693-3202cd894d66@app.fastmail.com> <CAHk-=wh=TUsVv6xhtzYsWJwJggrjyOfYT3kBu+bHtoYLK0M9Xw@mail.gmail.com> <CAHk-=wgfk69H-T-vMWR33xUpVsWJLrF34d0OwUXa2sHhtpSwZg@mail.gmail.com>
Message-ID: <9D1971C6-8C13-4526-8D2B-37A1D3B0B066@zytor.com>
MIME-Version: 1.0
Content-Type: text/plain;
 charset=utf-8
Content-Transfer-Encoding: quoted-printable

On April 26, 2025 12:55:13 PM PDT, Linus Torvalds <torvalds@linux-foundatio=
n=2Eorg> wrote:
>On Sat, 26 Apr 2025 at 12:24, Linus Torvalds
><torvalds@linux-foundation=2Eorg> wrote:
>>
>> (And yes, one use in a x86 header file that is pretty questionable
>> too: I think the reason for the cmov is actually i486-only behavior
>> and we could probably unify the 32-bit and 64-bit implementation)
>
>Actually, what we *should* do is to remove that manual use of 'cmov'
>entirely - even if we decide that yes, that undefined zero case is
>actually real=2E
>
>We should probably change it to use CC_SET(), and the compiler will do
>a much better job - and probably never use cmov anyway=2E
>
>And yes, that will generate worse code if you have an old compiler
>that doesn't do ASM_FLAG_OUTPUTS, but hey, that's true in general=2E If
>you want good code, you need a good compiler=2E
>
>And clang needs to learn the CC_SET() pattern anyway=2E
>
>So I think that manual cmov pattern for x86-32 should be replaced with
>
>        bool zero;
>
>        asm("bsfl %[in],%[out]"
>            CC_SET(z)
>            : CC_OUT(z) (zero),
>              [out]"=3Dr" (r)
>            : [in] "rm" (x));
>
>        return zero ? 0 : r+1;
>
>instead (that's ffs(), and fls() would need the same thing except with
>bsrl insteadm, of course)=2E
>
>I bet that would actually improve code generation=2E
>
>And I also bet it doesn't actually matter, of course=2E
>
>           Linus

The undefined zero case applies to family < 6 as far as I know=2E=2E=2E th=
e same platforms which don't have cmov=2E=2E=2E


From xen-devel-bounces@lists.xenproject.org Sun Apr 27 00:03:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 27 Apr 2025 00:03:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.969469.1358538 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8pUH-0000Vi-Us; Sun, 27 Apr 2025 00:03:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 969469.1358538; Sun, 27 Apr 2025 00:03: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 1u8pUH-0000Vb-QH; Sun, 27 Apr 2025 00:03:13 +0000
Received: by outflank-mailman (input) for mailman id 969469;
 Sun, 27 Apr 2025 00:03: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=ek1t=XN=zytor.com=hpa@srs-se1.protection.inumbo.net>)
 id 1u8pUG-0000VV-0w
 for xen-devel@lists.xenproject.org; Sun, 27 Apr 2025 00:03:12 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 00ae6b75-22fb-11f0-9eb3-5ba50f476ded;
 Sun, 27 Apr 2025 02:03:10 +0200 (CEST)
Received: from [127.0.0.1] ([76.133.66.138]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53R02fAD1021270
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NO);
 Sat, 26 Apr 2025 17:02:41 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 00ae6b75-22fb-11f0-9eb3-5ba50f476ded
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53R02fAD1021270
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745712163;
	bh=jlk0WySUzgwBSqt89FwWE6HuFZFIM3PirCQAzgIEfcA=;
	h=Date:From:To:CC:Subject:In-Reply-To:References:From;
	b=GUyFr7K2Ifwtz4UyT6aZbS1skxkjefr619W1KEmSvlIYIusEr8s2C5D/56D1S/gaj
	 5TIg5JaG2cI23TADG/Bsd+kXCKGboPeBrpMjXmOtBC0A/41RaH+c8Dp5bjiIZT9zr7
	 4JGSVevyBY0e+wYSYf2+bharQF9IOMt9JRGOYXsi1GFL+LCkjoNrZwcocIy66HQz37
	 9qZ8STeOk05F+fX/1GmMUejEYb4soCu0SkgLOdQRJe2GhWq+ZTPfr9xuib8WfJZRWv
	 lod+D8/4hNBdCeO1yair463GuclnA5ooNhp2eVTr2xpsX1fF40aHLA7M92L4ghUwlQ
	 bYOdRku2zWt7Q==
Date: Sat, 26 Apr 2025 17:02:41 -0700
From: "H. Peter Anvin" <hpa@zytor.com>
To: Linus Torvalds <torvalds@linux-foundation.org>,
        Arnd Bergmann <arnd@arndb.de>
CC: Ingo Molnar <mingo@kernel.org>, Arnd Bergmann <arnd@kernel.org>,
        Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>,
        Borislav Petkov <bp@alien8.de>,
        Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org,
        Juergen Gross <jgross@suse.com>,
        Boris Ostrovsky <boris.ostrovsky@oracle.com>,
        Alexander Usyskin <alexander.usyskin@intel.com>,
        Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
        =?UTF-8?Q?Mateusz_Jo=C5=84czyk?= <mat.jonczyk@o2.pl>,
        Mike Rapoport <rppt@kernel.org>, Ard Biesheuvel <ardb@kernel.org>,
        Peter Zijlstra <peterz@infradead.org>, linux-kernel@vger.kernel.org,
        xen-devel@lists.xenproject.org
Subject: Re: [PATCH] [RFC] x86/cpu: rework instruction set selection
User-Agent: K-9 Mail for Android
In-Reply-To: <CAHk-=wgfk69H-T-vMWR33xUpVsWJLrF34d0OwUXa2sHhtpSwZg@mail.gmail.com>
References: <20250425141740.734030-1-arnd@kernel.org> <aAyiganPp_UsNlnZ@gmail.com> <d2b0e71c-e79b-40d6-8693-3202cd894d66@app.fastmail.com> <CAHk-=wh=TUsVv6xhtzYsWJwJggrjyOfYT3kBu+bHtoYLK0M9Xw@mail.gmail.com> <CAHk-=wgfk69H-T-vMWR33xUpVsWJLrF34d0OwUXa2sHhtpSwZg@mail.gmail.com>
Message-ID: <F6CAB3B2-B8CB-4A66-AF4A-B2CD3767BE04@zytor.com>
MIME-Version: 1.0
Content-Type: text/plain;
 charset=utf-8
Content-Transfer-Encoding: quoted-printable

On April 26, 2025 12:55:13 PM PDT, Linus Torvalds <torvalds@linux-foundatio=
n=2Eorg> wrote:
>On Sat, 26 Apr 2025 at 12:24, Linus Torvalds
><torvalds@linux-foundation=2Eorg> wrote:
>>
>> (And yes, one use in a x86 header file that is pretty questionable
>> too: I think the reason for the cmov is actually i486-only behavior
>> and we could probably unify the 32-bit and 64-bit implementation)
>
>Actually, what we *should* do is to remove that manual use of 'cmov'
>entirely - even if we decide that yes, that undefined zero case is
>actually real=2E
>
>We should probably change it to use CC_SET(), and the compiler will do
>a much better job - and probably never use cmov anyway=2E
>
>And yes, that will generate worse code if you have an old compiler
>that doesn't do ASM_FLAG_OUTPUTS, but hey, that's true in general=2E If
>you want good code, you need a good compiler=2E
>
>And clang needs to learn the CC_SET() pattern anyway=2E
>
>So I think that manual cmov pattern for x86-32 should be replaced with
>
>        bool zero;
>
>        asm("bsfl %[in],%[out]"
>            CC_SET(z)
>            : CC_OUT(z) (zero),
>              [out]"=3Dr" (r)
>            : [in] "rm" (x));
>
>        return zero ? 0 : r+1;
>
>instead (that's ffs(), and fls() would need the same thing except with
>bsrl insteadm, of course)=2E
>
>I bet that would actually improve code generation=2E
>
>And I also bet it doesn't actually matter, of course=2E
>
>           Linus

It is unfortunate, if understandable, that we ended up using a convention =
other than what ended up becoming standard=2E (Return the size in bits if t=
he input is 0=2E)

This would let us use __builtin_ctz() > tzcnt which I believe is always in=
line on x86, and probably would help several other architectures too=2E

How much of a pain would it really be to fix this interface?


From xen-devel-bounces@lists.xenproject.org Sun Apr 27 00:36:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 27 Apr 2025 00:36:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.969484.1358547 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8q0Q-0005Dk-Eo; Sun, 27 Apr 2025 00:36:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 969484.1358547; Sun, 27 Apr 2025 00:36: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 1u8q0Q-0005Dd-Br; Sun, 27 Apr 2025 00:36:26 +0000
Received: by outflank-mailman (input) for mailman id 969484;
 Sun, 27 Apr 2025 00:36: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=ek1t=XN=zytor.com=hpa@srs-se1.protection.inumbo.net>)
 id 1u8q0O-0005DX-TJ
 for xen-devel@lists.xenproject.org; Sun, 27 Apr 2025 00:36:24 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a3d53639-22ff-11f0-9eb3-5ba50f476ded;
 Sun, 27 Apr 2025 02:36:22 +0200 (CEST)
Received: from [127.0.0.1] ([76.133.66.138]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53R0ZnmQ1060846
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NO);
 Sat, 26 Apr 2025 17:35:50 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a3d53639-22ff-11f0-9eb3-5ba50f476ded
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53R0ZnmQ1060846
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745714151;
	bh=3yZe2hwmc24kUcFIPymx5Z3oUOBzO0LqbFNLOvIXzcQ=;
	h=Date:From:To:CC:Subject:In-Reply-To:References:From;
	b=S7FC1CdY6cRjbRwEytSeLDATwwZ9wHLvvhEP/3tnIoYX9BGQlEKGe613A1caGwRvt
	 6+HINA28B/YnRsab8Kf9inZDgIcZsXoao8j51TzojBKYRN7mLl5wRdGKqPLyDEpFnx
	 FB3y7GhVgFQZ/v7aD3HZ70bYoTPHrnLY0cK95Skkow1po1sywILbWT6PEUXCTM9atw
	 hhn06XFBM20uWiXGIX3F2q/m6JTPfZKf+JMN+X1YNnLjBDruDRXX8S21MNOzGCXPtX
	 e1ZVOmQ6k86hzTupEuOQmIoAuvbONE1l89BnoJVjEuCWIukSo3rEGrqRj5zekdX0W/
	 U7oCxHWmg2VRw==
Date: Sat, 26 Apr 2025 17:35:49 -0700
From: "H. Peter Anvin" <hpa@zytor.com>
To: Ingo Molnar <mingo@kernel.org>
CC: Arnd Bergmann <arnd@kernel.org>, Thomas Gleixner <tglx@linutronix.de>,
        Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
        Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org,
        Arnd Bergmann <arnd@arndb.de>, Juergen Gross <jgross@suse.com>,
        Boris Ostrovsky <boris.ostrovsky@oracle.com>,
        Alexander Usyskin <alexander.usyskin@intel.com>,
        Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
        =?UTF-8?Q?Mateusz_Jo=C5=84czyk?= <mat.jonczyk@o2.pl>,
        "Mike Rapoport (Microsoft)" <rppt@kernel.org>,
        Ard Biesheuvel <ardb@kernel.org>,
        Peter Zijlstra <peterz@infradead.org>, linux-kernel@vger.kernel.org,
        xen-devel@lists.xenproject.org,
        Linus Torvalds <torvalds@linux-foundation.org>
Subject: Re: [PATCH] [RFC] x86/cpu: rework instruction set selection
User-Agent: K-9 Mail for Android
In-Reply-To: <aA0sNu0gcjlvhlDT@gmail.com>
References: <20250425141740.734030-1-arnd@kernel.org> <aAyiganPp_UsNlnZ@gmail.com> <E130C6F4-5602-44E6-ABB0-B87B389C0026@zytor.com> <aA0sNu0gcjlvhlDT@gmail.com>
Message-ID: <74EAE03C-2316-4590-B0A8-83DB46B786DE@zytor.com>
MIME-Version: 1.0
Content-Type: text/plain;
 charset=utf-8
Content-Transfer-Encoding: quoted-printable

On April 26, 2025 11:55:50 AM PDT, Ingo Molnar <mingo@kernel=2Eorg> wrote:
>
>* H=2E Peter Anvin <hpa@zytor=2Ecom> wrote:
>
>> Dropping CMOV would mean dropping P5 support=2E
>
>Yeah, I think we should make the cutoff at the 686 level=2E Is there any=
=20
>strong reason not to do that? Stable kernels will still exist for a=20
>very long time for ancient boards=2E
>
>	Ingo

I don't think some of the embedded 586-level ISA CPUs are ancient=2E


From xen-devel-bounces@lists.xenproject.org Sun Apr 27 09:21:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 27 Apr 2025 09:21:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.969573.1358634 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8yCY-0002mq-3E; Sun, 27 Apr 2025 09:21:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 969573.1358634; Sun, 27 Apr 2025 09:21: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 1u8yCX-0002ks-Mw; Sun, 27 Apr 2025 09:21:29 +0000
Received: by outflank-mailman (input) for mailman id 969573;
 Sun, 27 Apr 2025 09:21: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=hqWD=XN=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u8yCV-0001AF-Ob
 for xen-devel@lists.xenproject.org; Sun, 27 Apr 2025 09:21:27 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fb11d309-2348-11f0-9eb3-5ba50f476ded;
 Sun, 27 Apr 2025 11:21:22 +0200 (CEST)
Received: from terminus.zytor.com (terminus.zytor.com
 [IPv6:2607:7c80:54:3:0:0:0:136]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53R9KRS31598826
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Sun, 27 Apr 2025 02:20:44 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fb11d309-2348-11f0-9eb3-5ba50f476ded
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53R9KRS31598826
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745745646;
	bh=ww5dv1kvWZ0hKlTWKo3XMFLAAgaLDk8n8xkXdISYuaU=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=KWyRQEL66fAHV5eykZ+izg3lbpESUMtd68WZhhJwP14wWG/hgXkgGIvWv0ZXV/gOD
	 Mw8D+vKdE6Qskwm5qPFDUCPHnQ7ncyfk9wV5UaHbeMBo0b8YJSjBSb5+YWDgidWJb2
	 bskcxi6K7ytWT3S0BGqcFT7kelRsaDt4wCITFMW8vERo8a0GziQKM7YSO8CbBPc8L3
	 5eBh5oms9QnwzLqAzEhhBk5fgV1EPx0Frh5WjPHmbdwplf8X4aOym1U3sU58RMmE2E
	 bDNrkJzlL5ku6Y53PblHMjUL9I7Uskk38Od3ywKhjfyPrR93UZa4n29vPs87Rj31qa
	 8xhVQE6+v9+HA==
From: "Xin Li (Intel)" <xin@zytor.com>
To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
        linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
        netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        acme@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com,
        peterz@infradead.org, namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com,
        dapeng1.mi@linux.intel.com, ilpo.jarvinen@linux.intel.com
Subject: [PATCH v4 06/15] x86/xen/msr: Return u64 consistently in Xen PMC read functions
Date: Sun, 27 Apr 2025 02:20:18 -0700
Message-ID: <20250427092027.1598740-7-xin@zytor.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250427092027.1598740-1-xin@zytor.com>
References: <20250427092027.1598740-1-xin@zytor.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The pv_ops PMC read API is defined as:
        u64 (*read_pmc)(int counter);

But Xen PMC read functions return unsigned long long, make them
return u64 consistently.

Signed-off-by: Xin Li (Intel) <xin@zytor.com>
Reviewed-by: Juergen Gross <jgross@suse.com>
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
---
 arch/x86/xen/pmu.c     | 6 +++---
 arch/x86/xen/xen-ops.h | 2 +-
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/arch/x86/xen/pmu.c b/arch/x86/xen/pmu.c
index f06987b0efc3..9c1682af620a 100644
--- a/arch/x86/xen/pmu.c
+++ b/arch/x86/xen/pmu.c
@@ -346,7 +346,7 @@ bool pmu_msr_write(unsigned int msr, uint32_t low, uint32_t high, int *err)
 	return true;
 }
 
-static unsigned long long xen_amd_read_pmc(int counter)
+static u64 xen_amd_read_pmc(int counter)
 {
 	struct xen_pmu_amd_ctxt *ctxt;
 	uint64_t *counter_regs;
@@ -366,7 +366,7 @@ static unsigned long long xen_amd_read_pmc(int counter)
 	return counter_regs[counter];
 }
 
-static unsigned long long xen_intel_read_pmc(int counter)
+static u64 xen_intel_read_pmc(int counter)
 {
 	struct xen_pmu_intel_ctxt *ctxt;
 	uint64_t *fixed_counters;
@@ -396,7 +396,7 @@ static unsigned long long xen_intel_read_pmc(int counter)
 	return arch_cntr_pair[counter].counter;
 }
 
-unsigned long long xen_read_pmc(int counter)
+u64 xen_read_pmc(int counter)
 {
 	if (boot_cpu_data.x86_vendor != X86_VENDOR_INTEL)
 		return xen_amd_read_pmc(counter);
diff --git a/arch/x86/xen/xen-ops.h b/arch/x86/xen/xen-ops.h
index 63c13a2ccf55..735f58780704 100644
--- a/arch/x86/xen/xen-ops.h
+++ b/arch/x86/xen/xen-ops.h
@@ -277,7 +277,7 @@ static inline void xen_pmu_finish(int cpu) {}
 bool pmu_msr_read(unsigned int msr, uint64_t *val, int *err);
 bool pmu_msr_write(unsigned int msr, uint32_t low, uint32_t high, int *err);
 int pmu_apic_update(uint32_t reg);
-unsigned long long xen_read_pmc(int counter);
+u64 xen_read_pmc(int counter);
 
 #ifdef CONFIG_SMP
 
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Sun Apr 27 09:21:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 27 Apr 2025 09:21:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.969564.1358557 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8yCS-0001AT-Jz; Sun, 27 Apr 2025 09:21:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 969564.1358557; Sun, 27 Apr 2025 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 1u8yCS-0001AL-GB; Sun, 27 Apr 2025 09:21:24 +0000
Received: by outflank-mailman (input) for mailman id 969564;
 Sun, 27 Apr 2025 09: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=hqWD=XN=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u8yCQ-0001A9-Py
 for xen-devel@lists.xenproject.org; Sun, 27 Apr 2025 09:21:23 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fa202674-2348-11f0-9ffb-bf95429c2676;
 Sun, 27 Apr 2025 11:21:20 +0200 (CEST)
Received: from terminus.zytor.com (terminus.zytor.com
 [IPv6:2607:7c80:54:3:0:0:0:136]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53R9KRS01598826
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Sun, 27 Apr 2025 02:20:38 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fa202674-2348-11f0-9ffb-bf95429c2676
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53R9KRS01598826
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745745639;
	bh=lM6Xh3F6Lo/yPj1rM3I4OaRflD96nKu0SVSLsJxV00A=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=aHoFz+mICGp81O0KJOKAxa5iOLm4bZRUKpcOSFkpt035GtQEhfvwtzTohlmTTikyD
	 WIXhtMVyvJf2WpPakld45ClefSO5LDSiWZ5HbSvn13DMcewSQT7tmb5Pv9flgS8Ka+
	 PQksSV9DTZJsHmTO/zwvj0kzgxo3UhrI2kjGVmnahssYpxHNc53hdlrnK4sDGhkGju
	 77tmcIhGq7971egIkqWOFkXcUl8S6ClNqcGQ1osGc1XwmJzhYkdALbrN7E+uEKry15
	 ds4vg4dhJO96xA6Yu6iFFhgw46lbknedOlJc/41Vj9cS7XJOWOh7hRjXLXThx+xquP
	 5sgnO/GlUTDzQ==
From: "Xin Li (Intel)" <xin@zytor.com>
To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
        linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
        netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        acme@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com,
        peterz@infradead.org, namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com,
        dapeng1.mi@linux.intel.com, ilpo.jarvinen@linux.intel.com
Subject: [PATCH v4 03/15] x86/msr: Remove rdpmc()
Date: Sun, 27 Apr 2025 02:20:15 -0700
Message-ID: <20250427092027.1598740-4-xin@zytor.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250427092027.1598740-1-xin@zytor.com>
References: <20250427092027.1598740-1-xin@zytor.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

rdpmc() is not used anywhere, remove it.

Signed-off-by: Xin Li (Intel) <xin@zytor.com>
Acked-by: Dave Hansen <dave.hansen@linux.intel.com>
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
---
 arch/x86/include/asm/msr.h      | 7 -------
 arch/x86/include/asm/paravirt.h | 7 -------
 2 files changed, 14 deletions(-)

diff --git a/arch/x86/include/asm/msr.h b/arch/x86/include/asm/msr.h
index 2caa13830e11..e05466e486fc 100644
--- a/arch/x86/include/asm/msr.h
+++ b/arch/x86/include/asm/msr.h
@@ -234,13 +234,6 @@ static inline int rdmsrq_safe(u32 msr, u64 *p)
 	return err;
 }
 
-#define rdpmc(counter, low, high)			\
-do {							\
-	u64 _l = native_read_pmc((counter));		\
-	(low)  = (u32)_l;				\
-	(high) = (u32)(_l >> 32);			\
-} while (0)
-
 #define rdpmcl(counter, val) ((val) = native_read_pmc(counter))
 
 #endif	/* !CONFIG_PARAVIRT_XXL */
diff --git a/arch/x86/include/asm/paravirt.h b/arch/x86/include/asm/paravirt.h
index 86a77528792d..c4dedb984735 100644
--- a/arch/x86/include/asm/paravirt.h
+++ b/arch/x86/include/asm/paravirt.h
@@ -244,13 +244,6 @@ static inline u64 paravirt_read_pmc(int counter)
 	return PVOP_CALL1(u64, cpu.read_pmc, counter);
 }
 
-#define rdpmc(counter, low, high)		\
-do {						\
-	u64 _l = paravirt_read_pmc(counter);	\
-	low = (u32)_l;				\
-	high = _l >> 32;			\
-} while (0)
-
 #define rdpmcl(counter, val) ((val) = paravirt_read_pmc(counter))
 
 static inline void paravirt_alloc_ldt(struct desc_struct *ldt, unsigned entries)
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Sun Apr 27 09:21:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 27 Apr 2025 09:21:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.969575.1358646 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8yCZ-00031u-0e; Sun, 27 Apr 2025 09:21:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 969575.1358646; Sun, 27 Apr 2025 09:21: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 1u8yCY-00030X-Ob; Sun, 27 Apr 2025 09:21:30 +0000
Received: by outflank-mailman (input) for mailman id 969575;
 Sun, 27 Apr 2025 09: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=hqWD=XN=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u8yCW-0001AF-Ol
 for xen-devel@lists.xenproject.org; Sun, 27 Apr 2025 09:21:28 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id faa6e3a1-2348-11f0-9eb3-5ba50f476ded;
 Sun, 27 Apr 2025 11:21:22 +0200 (CEST)
Received: from terminus.zytor.com (terminus.zytor.com
 [IPv6:2607:7c80:54:3:0:0:0:136]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53R9KRS71598826
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Sun, 27 Apr 2025 02:20:52 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: faa6e3a1-2348-11f0-9eb3-5ba50f476ded
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53R9KRS71598826
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745745654;
	bh=pdtP6asm9ztLLUZuta3PkeJWqcBWx69UTCdKrdR5lK8=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=Idy4Kj9Oxty/fwGg34uerwQjbCQHhtxFLqYmwm1uyZS+rsq89z2XrrrW52/viWh/M
	 L7xa3xftOP9Dn7s640CwrQJxIU2/iYM97S6tvipf8b3JImnD42WLGksCM+Jk76/Drk
	 8aeSl2k7R0IgACELXGOmkw7lbcOmqyMtf9KiFrTT86BDo6zOKcTk2kEjCfn+wA4GU+
	 ogNhMOT+U4N7oqBNvqHH3lgk075u1s0giI9hlxUI5aZFJN5kGqJAPDuMmzv5bbgLHC
	 Uf0yvI7iMS3XjcSbBC1mMCPxzdjD0J4sLewNRPUu1K60ko52aFsnksnXpRwbFlsl4D
	 fiUc6d3ANsa0w==
From: "Xin Li (Intel)" <xin@zytor.com>
To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
        linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
        netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        acme@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com,
        peterz@infradead.org, namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com,
        dapeng1.mi@linux.intel.com, ilpo.jarvinen@linux.intel.com
Subject: [PATCH v4 10/15] x86/xen/msr: Remove calling native_{read,write}_msr{,_safe}() in pmu_msr_{read,write}()
Date: Sun, 27 Apr 2025 02:20:22 -0700
Message-ID: <20250427092027.1598740-11-xin@zytor.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250427092027.1598740-1-xin@zytor.com>
References: <20250427092027.1598740-1-xin@zytor.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

hpa found that pmu_msr_write() is actually a completely pointless
function [1]: all it does is shuffle some arguments, then calls
pmu_msr_chk_emulated() and if it returns true AND the emulated flag
is clear then does *exactly the same thing* that the calling code
would have done if pmu_msr_write() itself had returned true.  And
pmu_msr_read() does the equivalent stupidity.

Remove the calls to native_{read,write}_msr{,_safe}() within
pmu_msr_{read,write}().  Instead reuse the existing calling code
that decides whether to call native_{read,write}_msr{,_safe}() based
on the return value from pmu_msr_{read,write}().  Consequently,
eliminate the need to pass an error pointer to pmu_msr_{read,write}().

While at it, refactor pmu_msr_write() to take the MSR value as a u64
argument, replacing the current dual u32 arguments, because the dual
u32 arguments were only used to call native_write_msr{,_safe}(), which
has now been removed.

[1]: https://lore.kernel.org/lkml/0ec48b84-d158-47c6-b14c-3563fd14bcc4@zytor.com/

Suggested-by: H. Peter Anvin (Intel) <hpa@zytor.com>
Sign-off-by: Xin Li (Intel) <xin@zytor.com>
Reviewed-by: Juergen Gross <jgross@suse.com>
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
---

Change in v3:
*) Rename pmu_msr_{read,write}() to pmu_msr_{read,write}_emulated()
   (Dapeng Mi).
*) Fix a pmu_msr_read() callsite with wrong arguments (Dapeng Mi).
---
 arch/x86/xen/enlighten_pv.c |  8 ++++++--
 arch/x86/xen/pmu.c          | 27 ++++-----------------------
 arch/x86/xen/xen-ops.h      |  4 ++--
 3 files changed, 12 insertions(+), 27 deletions(-)

diff --git a/arch/x86/xen/enlighten_pv.c b/arch/x86/xen/enlighten_pv.c
index 846b5737d320..61e51a970f3c 100644
--- a/arch/x86/xen/enlighten_pv.c
+++ b/arch/x86/xen/enlighten_pv.c
@@ -1090,7 +1090,7 @@ static u64 xen_do_read_msr(unsigned int msr, int *err)
 {
 	u64 val = 0;	/* Avoid uninitialized value for safe variant. */
 
-	if (pmu_msr_read(msr, &val, err))
+	if (pmu_msr_read_emulated(msr, &val))
 		return val;
 
 	if (err)
@@ -1132,6 +1132,8 @@ static void set_seg(unsigned int which, unsigned int low, unsigned int high,
 static void xen_do_write_msr(unsigned int msr, unsigned int low,
 			     unsigned int high, int *err)
 {
+	u64 val;
+
 	switch (msr) {
 	case MSR_FS_BASE:
 		set_seg(SEGBASE_FS, low, high, err);
@@ -1158,7 +1160,9 @@ static void xen_do_write_msr(unsigned int msr, unsigned int low,
 		break;
 
 	default:
-		if (!pmu_msr_write(msr, low, high, err)) {
+		val = (u64)high << 32 | low;
+
+		if (!pmu_msr_write_emulated(msr, val)) {
 			if (err)
 				*err = native_write_msr_safe(msr, low, high);
 			else
diff --git a/arch/x86/xen/pmu.c b/arch/x86/xen/pmu.c
index 9c1682af620a..b6557f2d1a2e 100644
--- a/arch/x86/xen/pmu.c
+++ b/arch/x86/xen/pmu.c
@@ -313,37 +313,18 @@ static bool pmu_msr_chk_emulated(unsigned int msr, uint64_t *val, bool is_read,
 	return true;
 }
 
-bool pmu_msr_read(unsigned int msr, uint64_t *val, int *err)
+bool pmu_msr_read_emulated(u32 msr, u64 *val)
 {
 	bool emulated;
 
-	if (!pmu_msr_chk_emulated(msr, val, true, &emulated))
-		return false;
-
-	if (!emulated) {
-		*val = err ? native_read_msr_safe(msr, err)
-			   : native_read_msr(msr);
-	}
-
-	return true;
+	return pmu_msr_chk_emulated(msr, val, true, &emulated) && emulated;
 }
 
-bool pmu_msr_write(unsigned int msr, uint32_t low, uint32_t high, int *err)
+bool pmu_msr_write_emulated(u32 msr, u64 val)
 {
-	uint64_t val = ((uint64_t)high << 32) | low;
 	bool emulated;
 
-	if (!pmu_msr_chk_emulated(msr, &val, false, &emulated))
-		return false;
-
-	if (!emulated) {
-		if (err)
-			*err = native_write_msr_safe(msr, low, high);
-		else
-			native_write_msr(msr, low, high);
-	}
-
-	return true;
+	return pmu_msr_chk_emulated(msr, &val, false, &emulated) && emulated;
 }
 
 static u64 xen_amd_read_pmc(int counter)
diff --git a/arch/x86/xen/xen-ops.h b/arch/x86/xen/xen-ops.h
index 735f58780704..163e03e33089 100644
--- a/arch/x86/xen/xen-ops.h
+++ b/arch/x86/xen/xen-ops.h
@@ -274,8 +274,8 @@ void xen_pmu_finish(int cpu);
 static inline void xen_pmu_init(int cpu) {}
 static inline void xen_pmu_finish(int cpu) {}
 #endif
-bool pmu_msr_read(unsigned int msr, uint64_t *val, int *err);
-bool pmu_msr_write(unsigned int msr, uint32_t low, uint32_t high, int *err);
+bool pmu_msr_read_emulated(u32 msr, u64 *val);
+bool pmu_msr_write_emulated(u32 msr, u64 val);
 int pmu_apic_update(uint32_t reg);
 u64 xen_read_pmc(int counter);
 
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Sun Apr 27 09:21:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 27 Apr 2025 09:21:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.969578.1358679 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8yCc-0003nG-1J; Sun, 27 Apr 2025 09:21:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 969578.1358679; Sun, 27 Apr 2025 09:21: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 1u8yCb-0003lN-Fd; Sun, 27 Apr 2025 09:21:33 +0000
Received: by outflank-mailman (input) for mailman id 969578;
 Sun, 27 Apr 2025 09:21: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=hqWD=XN=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u8yCY-0001AF-PH
 for xen-devel@lists.xenproject.org; Sun, 27 Apr 2025 09:21:30 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fce84815-2348-11f0-9eb3-5ba50f476ded;
 Sun, 27 Apr 2025 11:21:24 +0200 (CEST)
Received: from terminus.zytor.com (terminus.zytor.com
 [IPv6:2607:7c80:54:3:0:0:0:136]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53R9KRS91598826
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Sun, 27 Apr 2025 02:20:57 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fce84815-2348-11f0-9eb3-5ba50f476ded
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53R9KRS91598826
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745745658;
	bh=poLuCOtMFQCl7P/FC7Lp5EQw98+Q3dUwMneiYGrrVc8=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=D0Z3JphR30AQW+3j6oRkGj/eZF9EDJwfOTUKrT6busV8ib1cm4rRHxVn8xnMn2dRi
	 4msTB2mg+Fyb7ivuH2KqHR9+Aez0rjMOvFOjl6MRfPD0NDiTt/EhkXcR/cYdMH0yE/
	 UURFhqyp8deXUeSzTNivEFL4k0UdAZNWB+G/DCGjkD2GQTPTbuq1jFZtJngGbKZw5/
	 SZlagdAbjZpUIIWdZnVXImCueJbTNHF9Zi+nnVvnxWqc5Fa8+a+8ZErMzXTJPVOOy1
	 YiPnW9YklNd0V7B62LnCJdQ6XcjQuBniinamKhUatno7C/H8ptJTOtaShyOxVU3pf0
	 Y7M6wIaYIlQug==
From: "Xin Li (Intel)" <xin@zytor.com>
To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
        linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
        netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        acme@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com,
        peterz@infradead.org, namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com,
        dapeng1.mi@linux.intel.com, ilpo.jarvinen@linux.intel.com
Subject: [PATCH v4 12/15] x86/xen/msr: Remove the error pointer argument from set_seg()
Date: Sun, 27 Apr 2025 02:20:24 -0700
Message-ID: <20250427092027.1598740-13-xin@zytor.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250427092027.1598740-1-xin@zytor.com>
References: <20250427092027.1598740-1-xin@zytor.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

set_seg() is used to write the following MSRs on Xen:

    MSR_FS_BASE
    MSR_KERNEL_GS_BASE
    MSR_GS_BASE

But none of these MSRs are written using any MSR write safe API.
Therefore there is no need to pass an error pointer argument to
set_seg() for returning an error code to be used in MSR safe APIs.

Remove the error pointer argument.

Signed-off-by: Xin Li (Intel) <xin@zytor.com>
Reviewed-by: Juergen Gross <jgross@suse.com>
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
---

Change in v3:
*) Fix a typo: set_reg() => set_seg() (Juergen Gross).
---
 arch/x86/xen/enlighten_pv.c | 16 +++++-----------
 1 file changed, 5 insertions(+), 11 deletions(-)

diff --git a/arch/x86/xen/enlighten_pv.c b/arch/x86/xen/enlighten_pv.c
index 528a2f4df050..c247e7689bc3 100644
--- a/arch/x86/xen/enlighten_pv.c
+++ b/arch/x86/xen/enlighten_pv.c
@@ -1110,17 +1110,11 @@ static u64 xen_do_read_msr(unsigned int msr, int *err)
 	return val;
 }
 
-static void set_seg(unsigned int which, unsigned int low, unsigned int high,
-		    int *err)
+static void set_seg(u32 which, u32 low, u32 high)
 {
 	u64 base = ((u64)high << 32) | low;
 
-	if (HYPERVISOR_set_segment_base(which, base) == 0)
-		return;
-
-	if (err)
-		*err = -EIO;
-	else
+	if (HYPERVISOR_set_segment_base(which, base))
 		WARN(1, "Xen set_segment_base(%u, %llx) failed\n", which, base);
 }
 
@@ -1136,15 +1130,15 @@ static void xen_do_write_msr(unsigned int msr, unsigned int low,
 
 	switch (msr) {
 	case MSR_FS_BASE:
-		set_seg(SEGBASE_FS, low, high, err);
+		set_seg(SEGBASE_FS, low, high);
 		break;
 
 	case MSR_KERNEL_GS_BASE:
-		set_seg(SEGBASE_GS_USER, low, high, err);
+		set_seg(SEGBASE_GS_USER, low, high);
 		break;
 
 	case MSR_GS_BASE:
-		set_seg(SEGBASE_GS_KERNEL, low, high, err);
+		set_seg(SEGBASE_GS_KERNEL, low, high);
 		break;
 
 	case MSR_STAR:
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Sun Apr 27 09:21:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 27 Apr 2025 09:21:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.969568.1358583 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8yCU-0001Za-LL; Sun, 27 Apr 2025 09:21:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 969568.1358583; Sun, 27 Apr 2025 09: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 1u8yCU-0001Xq-F7; Sun, 27 Apr 2025 09:21:26 +0000
Received: by outflank-mailman (input) for mailman id 969568;
 Sun, 27 Apr 2025 09:21: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=hqWD=XN=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u8yCS-0001A9-Rm
 for xen-devel@lists.xenproject.org; Sun, 27 Apr 2025 09:21:24 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fbb31d55-2348-11f0-9ffb-bf95429c2676;
 Sun, 27 Apr 2025 11:21:22 +0200 (CEST)
Received: from terminus.zytor.com (terminus.zytor.com
 [IPv6:2607:7c80:54:3:0:0:0:136]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53R9KRRv1598826
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Sun, 27 Apr 2025 02:20:31 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fbb31d55-2348-11f0-9ffb-bf95429c2676
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53R9KRRv1598826
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745745633;
	bh=qSfXCrg4qMgrCCN/nBzwbznIDzcGPiftIKltZswFgIE=;
	h=From:To:Cc:Subject:Date:From;
	b=KGPKbjRGgpHgFU0cY/ACUzxlHFjWDOeiPp9By/ChtzbJZIweuQ+iTo89wAU0iNihQ
	 SKEyvJHImJNQXBkUZWIdvyDCu6QoEPA8rITFD0DzOFnJQDU+Kzfi3F/wVVPJtaasOz
	 tp9WXAiFowdLbVcAn52sxpFAE0019Qh9Ohma3zzykO4s2ncruEhapesrBun7C7nbu/
	 4XCH6DGZYk0OeujJJD/cl152iPZUttGL/t3z+ARRTRK4pCAey7AUYR4wEKwxvjBg97
	 nHT/eL7JBioWUo9OkjJnkhRi5NlEgkrstADaj6ZDGDUs2C9E+9FUj4IM8BNmXhLIe2
	 IL5Z9UXy1PO/Q==
From: "Xin Li (Intel)" <xin@zytor.com>
To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
        linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
        netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        acme@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com,
        peterz@infradead.org, namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com,
        dapeng1.mi@linux.intel.com, ilpo.jarvinen@linux.intel.com
Subject: [PATCH v4 00/15] MSR code cleanup part one
Date: Sun, 27 Apr 2025 02:20:12 -0700
Message-ID: <20250427092027.1598740-1-xin@zytor.com>
X-Mailer: git-send-email 2.49.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This patch set is the first part of the patch set:

  MSR refactor with new MSR instructions support

@ https://lore.kernel.org/lkml/20250422082216.1954310-1-xin@zytor.com/T/#m5a34be7d4ed55f0baca965cb65452a08e9ad7c8a


It's getting *WAY* too big, and whether to zap the pv_ops MSR APIs is
still under argument.  Dave Hansen suggested to focus on rename stuff
first, most of which he acked.

Jürgen Groß also gave his RBs to the Xen MSR cleanup patches.

So here comes the first MSR cleanup patch set with version 4.


Changes in v4:
1) Add missing includes in a different patch (Ilpo Järvinen).
2) Add all necessary direct inclusions for msr.h (Ilpo Järvinen).
3) Remove two "else" that no longer make sense (Juergen Gross).
4) Collect RBs from Jürgen Groß and ABs from Peter Zijlstra.


Link to the previous v3 patch set:
https://lore.kernel.org/lkml/20250425083442.2390017-1-xin@zytor.com/


This patch series is based on:

  git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git x86/msr


Xin Li (Intel) (15):
  x86/msr: Add missing includes of <asm/msr.h>
  x86/msr: Move rdtsc{,_ordered}() to <asm/tsc.h>
  x86/msr: Remove rdpmc()
  x86/msr: Rename rdpmcl() to rdpmc()
  x86/msr: Convert the rdpmc() macro into an always inline function
  x86/xen/msr: Return u64 consistently in Xen PMC read functions
  x86/msr: Convert __wrmsr() uses to native_wrmsr{,q}() uses
  x86/msr: Add the native_rdmsrq() helper
  x86/msr: Convert __rdmsr() uses to native_rdmsrq() uses
  x86/xen/msr: Remove calling native_{read,write}_msr{,_safe}() in
    pmu_msr_{read,write}()
  x86/xen/msr: Remove pmu_msr_{read,write}()
  x86/xen/msr: Remove the error pointer argument from set_seg()
  x86/pvops/msr: refactor pv_cpu_ops.write_msr{,_safe}()
  x86/msr: Replace wrmsr(msr, low, 0) with wrmsrq(msr, low)
  x86/msr: Change the function type of native_read_msr_safe()

 arch/x86/coco/sev/core.c                      |   2 +-
 arch/x86/events/amd/brs.c                     |   4 +-
 arch/x86/events/amd/uncore.c                  |   2 +-
 arch/x86/events/core.c                        |   2 +-
 arch/x86/events/intel/core.c                  |   4 +-
 arch/x86/events/intel/ds.c                    |   2 +-
 arch/x86/events/msr.c                         |   3 +
 arch/x86/events/perf_event.h                  |   1 +
 arch/x86/events/probe.c                       |   2 +
 arch/x86/hyperv/hv_apic.c                     |   6 +-
 arch/x86/hyperv/hv_vtl.c                      |   4 +-
 arch/x86/hyperv/ivm.c                         |   3 +-
 arch/x86/include/asm/apic.h                   |   4 +-
 arch/x86/include/asm/fred.h                   |   1 +
 arch/x86/include/asm/microcode.h              |   2 +
 arch/x86/include/asm/mshyperv.h               |   3 +-
 arch/x86/include/asm/msr.h                    | 130 +++++-------------
 arch/x86/include/asm/paravirt.h               |  57 ++++----
 arch/x86/include/asm/paravirt_types.h         |  10 +-
 arch/x86/include/asm/suspend_32.h             |   1 +
 arch/x86/include/asm/suspend_64.h             |   1 +
 arch/x86/include/asm/switch_to.h              |   4 +-
 arch/x86/include/asm/tsc.h                    |  76 +++++++++-
 arch/x86/kernel/cpu/amd.c                     |   2 +-
 arch/x86/kernel/cpu/common.c                  |  10 +-
 arch/x86/kernel/cpu/mce/core.c                |   6 +-
 arch/x86/kernel/cpu/resctrl/pseudo_lock.c     |  25 ++--
 arch/x86/kernel/cpu/resctrl/rdtgroup.c        |   2 +-
 arch/x86/kernel/cpu/umwait.c                  |   4 +-
 arch/x86/kernel/fpu/xstate.h                  |   1 +
 arch/x86/kernel/hpet.c                        |   1 +
 arch/x86/kernel/kvm.c                         |   2 +-
 arch/x86/kernel/kvmclock.c                    |   2 +-
 arch/x86/kernel/process_64.c                  |   1 +
 arch/x86/kernel/trace_clock.c                 |   2 +-
 arch/x86/kernel/tsc_sync.c                    |   1 +
 arch/x86/kvm/svm/svm.c                        |  34 ++---
 arch/x86/kvm/vmx/vmx.c                        |   4 +-
 arch/x86/lib/kaslr.c                          |   2 +-
 arch/x86/mm/mem_encrypt_identity.c            |   5 +-
 arch/x86/realmode/init.c                      |   1 +
 arch/x86/xen/enlighten_pv.c                   |  58 ++++----
 arch/x86/xen/pmu.c                            |  72 +++-------
 arch/x86/xen/xen-ops.h                        |   5 +-
 drivers/acpi/acpi_extlog.c                    |   1 +
 drivers/acpi/processor_perflib.c              |   1 +
 drivers/acpi/processor_throttling.c           |   3 +-
 drivers/char/agp/nvidia-agp.c                 |   1 +
 drivers/cpufreq/amd-pstate-ut.c               |   2 +
 drivers/crypto/ccp/sev-dev.c                  |   1 +
 drivers/edac/amd64_edac.c                     |   1 +
 drivers/edac/ie31200_edac.c                   |   1 +
 drivers/edac/mce_amd.c                        |   1 +
 drivers/hwmon/hwmon-vid.c                     |   4 +
 drivers/idle/intel_idle.c                     |   1 +
 drivers/misc/cs5535-mfgpt.c                   |   1 +
 drivers/net/vmxnet3/vmxnet3_drv.c             |   4 +
 drivers/platform/x86/intel/ifs/core.c         |   1 +
 drivers/platform/x86/intel/ifs/load.c         |   1 +
 drivers/platform/x86/intel/ifs/runtest.c      |   1 +
 drivers/platform/x86/intel/pmc/cnp.c          |   1 +
 .../intel/speed_select_if/isst_if_common.c    |   1 +
 .../intel/speed_select_if/isst_if_mbox_msr.c  |   1 +
 .../intel/speed_select_if/isst_tpmi_core.c    |   1 +
 drivers/platform/x86/intel/turbo_max_3.c      |   1 +
 .../intel/uncore-frequency/uncore-frequency.c |   1 +
 drivers/powercap/intel_rapl_common.c          |   1 +
 drivers/powercap/intel_rapl_msr.c             |   1 +
 .../processor_thermal_device.c                |   1 +
 drivers/thermal/intel/intel_tcc_cooling.c     |   1 +
 drivers/thermal/intel/x86_pkg_temp_thermal.c  |   1 +
 drivers/video/fbdev/geode/display_gx.c        |   1 +
 drivers/video/fbdev/geode/gxfb_core.c         |   1 +
 drivers/video/fbdev/geode/lxfb_ops.c          |   1 +
 74 files changed, 308 insertions(+), 295 deletions(-)


base-commit: a5447e92e169dafaf02fd653500105c7186d7128
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Sun Apr 27 09:21:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 27 Apr 2025 09:21:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.969566.1358572 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8yCU-0001RT-2N; Sun, 27 Apr 2025 09:21:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 969566.1358572; Sun, 27 Apr 2025 09: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 1u8yCT-0001RG-UA; Sun, 27 Apr 2025 09:21:25 +0000
Received: by outflank-mailman (input) for mailman id 969566;
 Sun, 27 Apr 2025 09:21: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=hqWD=XN=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u8yCS-0001A9-HE
 for xen-devel@lists.xenproject.org; Sun, 27 Apr 2025 09:21:24 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fb914627-2348-11f0-9ffb-bf95429c2676;
 Sun, 27 Apr 2025 11:21:22 +0200 (CEST)
Received: from terminus.zytor.com (terminus.zytor.com
 [IPv6:2607:7c80:54:3:0:0:0:136]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53R9KRRw1598826
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Sun, 27 Apr 2025 02:20:33 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fb914627-2348-11f0-9ffb-bf95429c2676
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53R9KRRw1598826
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745745635;
	bh=BFab8Rp62MTx7q8P2trDG04ZRF3VDtEGraetT1LpgfI=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=N3K85yLKwlIzP3hBWOoogel+7Tmd2/Z8ipeM72kJLPdHXTB85i5jLIEgMEvigriCb
	 m43z3jgS0uGjdMrSJ7X95khmPgkSrwwel64BgjCimN2UPz0kvs8o6A5wTTxe9yDECP
	 ilgfy5cFCJL93YwGivSZjlIOk9Wb6iJkqUMR3xmuXhEN/Q1gG0DJZ6TJByKdRaYya6
	 xWHIPVw4+qkpquK2NndJ+WilmRTOY4kpGo3fFShc2onXL0GamRGvxelevAajavhIdS
	 dOF0cvRHolDm9JM2NaltGpgKtSk3xpinL0VuMr2w0XwFuCVroIioMBYV6/wX2CZoAf
	 5ottV1NZ5hScA==
From: "Xin Li (Intel)" <xin@zytor.com>
To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
        linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
        netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        acme@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com,
        peterz@infradead.org, namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com,
        dapeng1.mi@linux.intel.com, ilpo.jarvinen@linux.intel.com
Subject: [PATCH v4 01/15] x86/msr: Add missing includes of <asm/msr.h>
Date: Sun, 27 Apr 2025 02:20:13 -0700
Message-ID: <20250427092027.1598740-2-xin@zytor.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250427092027.1598740-1-xin@zytor.com>
References: <20250427092027.1598740-1-xin@zytor.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

For some reason, there are some TSC-related functions in the MSR
header even though there is a tsc.h header.

To facilitate the relocation of rdtsc{,_ordered}() from <asm/msr.h>
to <asm/tsc.h> and to eventually eliminate the inclusion of
<asm/msr.h> in <asm/tsc.h>, add <asm/msr.h> to the source files that
reference definitions from <asm/msr.h>.

Signed-off-by: Xin Li (Intel) <xin@zytor.com>
Acked-by: Dave Hansen <dave.hansen@linux.intel.com>
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
---

Change in v4:
*) Add missing includes in a different patch (Ilpo Järvinen).
*) Add all necessary direct inclusions for msr.h (Ilpo Järvinen).

Change in v3:
* Add a problem statement to the changelog (Dave Hansen).
---
 arch/x86/events/msr.c                                         | 3 +++
 arch/x86/events/perf_event.h                                  | 1 +
 arch/x86/events/probe.c                                       | 2 ++
 arch/x86/hyperv/ivm.c                                         | 1 +
 arch/x86/include/asm/fred.h                                   | 1 +
 arch/x86/include/asm/microcode.h                              | 2 ++
 arch/x86/include/asm/mshyperv.h                               | 1 +
 arch/x86/include/asm/msr.h                                    | 1 +
 arch/x86/include/asm/suspend_32.h                             | 1 +
 arch/x86/include/asm/suspend_64.h                             | 1 +
 arch/x86/include/asm/switch_to.h                              | 2 ++
 arch/x86/kernel/cpu/resctrl/pseudo_lock.c                     | 1 +
 arch/x86/kernel/fpu/xstate.h                                  | 1 +
 arch/x86/kernel/hpet.c                                        | 1 +
 arch/x86/kernel/process_64.c                                  | 1 +
 arch/x86/kernel/trace_clock.c                                 | 2 +-
 arch/x86/kernel/tsc_sync.c                                    | 1 +
 arch/x86/lib/kaslr.c                                          | 2 +-
 arch/x86/mm/mem_encrypt_identity.c                            | 1 +
 arch/x86/realmode/init.c                                      | 1 +
 drivers/acpi/acpi_extlog.c                                    | 1 +
 drivers/acpi/processor_perflib.c                              | 1 +
 drivers/acpi/processor_throttling.c                           | 3 ++-
 drivers/char/agp/nvidia-agp.c                                 | 1 +
 drivers/cpufreq/amd-pstate-ut.c                               | 2 ++
 drivers/crypto/ccp/sev-dev.c                                  | 1 +
 drivers/edac/amd64_edac.c                                     | 1 +
 drivers/edac/ie31200_edac.c                                   | 1 +
 drivers/edac/mce_amd.c                                        | 1 +
 drivers/hwmon/hwmon-vid.c                                     | 4 ++++
 drivers/idle/intel_idle.c                                     | 1 +
 drivers/misc/cs5535-mfgpt.c                                   | 1 +
 drivers/net/vmxnet3/vmxnet3_drv.c                             | 4 ++++
 drivers/platform/x86/intel/ifs/core.c                         | 1 +
 drivers/platform/x86/intel/ifs/load.c                         | 1 +
 drivers/platform/x86/intel/ifs/runtest.c                      | 1 +
 drivers/platform/x86/intel/pmc/cnp.c                          | 1 +
 drivers/platform/x86/intel/speed_select_if/isst_if_common.c   | 1 +
 drivers/platform/x86/intel/speed_select_if/isst_if_mbox_msr.c | 1 +
 drivers/platform/x86/intel/speed_select_if/isst_tpmi_core.c   | 1 +
 drivers/platform/x86/intel/turbo_max_3.c                      | 1 +
 .../platform/x86/intel/uncore-frequency/uncore-frequency.c    | 1 +
 drivers/powercap/intel_rapl_common.c                          | 1 +
 drivers/powercap/intel_rapl_msr.c                             | 1 +
 .../thermal/intel/int340x_thermal/processor_thermal_device.c  | 1 +
 drivers/thermal/intel/intel_tcc_cooling.c                     | 1 +
 drivers/thermal/intel/x86_pkg_temp_thermal.c                  | 1 +
 drivers/video/fbdev/geode/display_gx.c                        | 1 +
 drivers/video/fbdev/geode/gxfb_core.c                         | 1 +
 drivers/video/fbdev/geode/lxfb_ops.c                          | 1 +
 50 files changed, 63 insertions(+), 3 deletions(-)

diff --git a/arch/x86/events/msr.c b/arch/x86/events/msr.c
index 8970ecef87c5..c39e49cecace 100644
--- a/arch/x86/events/msr.c
+++ b/arch/x86/events/msr.c
@@ -3,6 +3,9 @@
 #include <linux/sysfs.h>
 #include <linux/nospec.h>
 #include <asm/cpu_device_id.h>
+#include <asm/msr.h>
+#include <asm/tsc.h>
+
 #include "probe.h"
 
 enum perf_msr_id {
diff --git a/arch/x86/events/perf_event.h b/arch/x86/events/perf_event.h
index a5166fa9339b..a8d4e82e3589 100644
--- a/arch/x86/events/perf_event.h
+++ b/arch/x86/events/perf_event.h
@@ -17,6 +17,7 @@
 #include <asm/fpu/xstate.h>
 #include <asm/intel_ds.h>
 #include <asm/cpu.h>
+#include <asm/msr.h>
 
 /* To enable MSR tracing please use the generic trace points. */
 
diff --git a/arch/x86/events/probe.c b/arch/x86/events/probe.c
index fda35cf25528..bb719d0d3f0b 100644
--- a/arch/x86/events/probe.c
+++ b/arch/x86/events/probe.c
@@ -2,6 +2,8 @@
 #include <linux/export.h>
 #include <linux/types.h>
 #include <linux/bits.h>
+
+#include <asm/msr.h>
 #include "probe.h"
 
 static umode_t
diff --git a/arch/x86/hyperv/ivm.c b/arch/x86/hyperv/ivm.c
index 1b8a2415183b..8209de792388 100644
--- a/arch/x86/hyperv/ivm.c
+++ b/arch/x86/hyperv/ivm.c
@@ -22,6 +22,7 @@
 #include <asm/realmode.h>
 #include <asm/e820/api.h>
 #include <asm/desc.h>
+#include <asm/msr.h>
 #include <uapi/asm/vmx.h>
 
 #ifdef CONFIG_AMD_MEM_ENCRYPT
diff --git a/arch/x86/include/asm/fred.h b/arch/x86/include/asm/fred.h
index 2a29e5216881..12b34d5b2953 100644
--- a/arch/x86/include/asm/fred.h
+++ b/arch/x86/include/asm/fred.h
@@ -9,6 +9,7 @@
 #include <linux/const.h>
 
 #include <asm/asm.h>
+#include <asm/msr.h>
 #include <asm/trapnr.h>
 
 /*
diff --git a/arch/x86/include/asm/microcode.h b/arch/x86/include/asm/microcode.h
index 263ea3dd0001..107a1aaa211b 100644
--- a/arch/x86/include/asm/microcode.h
+++ b/arch/x86/include/asm/microcode.h
@@ -2,6 +2,8 @@
 #ifndef _ASM_X86_MICROCODE_H
 #define _ASM_X86_MICROCODE_H
 
+#include <asm/msr.h>
+
 struct cpu_signature {
 	unsigned int sig;
 	unsigned int pf;
diff --git a/arch/x86/include/asm/mshyperv.h b/arch/x86/include/asm/mshyperv.h
index bab5ccfc60a7..15d00dace70f 100644
--- a/arch/x86/include/asm/mshyperv.h
+++ b/arch/x86/include/asm/mshyperv.h
@@ -8,6 +8,7 @@
 #include <linux/io.h>
 #include <asm/nospec-branch.h>
 #include <asm/paravirt.h>
+#include <asm/msr.h>
 #include <hyperv/hvhdk.h>
 
 /*
diff --git a/arch/x86/include/asm/msr.h b/arch/x86/include/asm/msr.h
index 2ccc78ebc3d7..72a9ebc99078 100644
--- a/arch/x86/include/asm/msr.h
+++ b/arch/x86/include/asm/msr.h
@@ -12,6 +12,7 @@
 #include <uapi/asm/msr.h>
 #include <asm/shared/msr.h>
 
+#include <linux/types.h>
 #include <linux/percpu.h>
 
 struct msr_info {
diff --git a/arch/x86/include/asm/suspend_32.h b/arch/x86/include/asm/suspend_32.h
index d8416b3bf832..e8e5aab06255 100644
--- a/arch/x86/include/asm/suspend_32.h
+++ b/arch/x86/include/asm/suspend_32.h
@@ -9,6 +9,7 @@
 
 #include <asm/desc.h>
 #include <asm/fpu/api.h>
+#include <asm/msr.h>
 
 /* image of the saved processor state */
 struct saved_context {
diff --git a/arch/x86/include/asm/suspend_64.h b/arch/x86/include/asm/suspend_64.h
index 54df06687d83..b512f9665f78 100644
--- a/arch/x86/include/asm/suspend_64.h
+++ b/arch/x86/include/asm/suspend_64.h
@@ -9,6 +9,7 @@
 
 #include <asm/desc.h>
 #include <asm/fpu/api.h>
+#include <asm/msr.h>
 
 /*
  * Image of the saved processor state, used by the low level ACPI suspend to
diff --git a/arch/x86/include/asm/switch_to.h b/arch/x86/include/asm/switch_to.h
index 75248546403d..4f21df7af715 100644
--- a/arch/x86/include/asm/switch_to.h
+++ b/arch/x86/include/asm/switch_to.h
@@ -52,6 +52,8 @@ do {									\
 } while (0)
 
 #ifdef CONFIG_X86_32
+#include <asm/msr.h>
+
 static inline void refresh_sysenter_cs(struct thread_struct *thread)
 {
 	/* Only happens when SEP is enabled, no need to test "SEP"arately: */
diff --git a/arch/x86/kernel/cpu/resctrl/pseudo_lock.c b/arch/x86/kernel/cpu/resctrl/pseudo_lock.c
index 2a82eb6a0376..26c354bdea07 100644
--- a/arch/x86/kernel/cpu/resctrl/pseudo_lock.c
+++ b/arch/x86/kernel/cpu/resctrl/pseudo_lock.c
@@ -25,6 +25,7 @@
 #include <asm/cpu_device_id.h>
 #include <asm/resctrl.h>
 #include <asm/perf_event.h>
+#include <asm/msr.h>
 
 #include "../../events/perf_event.h" /* For X86_CONFIG() */
 #include "internal.h"
diff --git a/arch/x86/kernel/fpu/xstate.h b/arch/x86/kernel/fpu/xstate.h
index 5e5d35027f13..f705bd355ea2 100644
--- a/arch/x86/kernel/fpu/xstate.h
+++ b/arch/x86/kernel/fpu/xstate.h
@@ -5,6 +5,7 @@
 #include <asm/cpufeature.h>
 #include <asm/fpu/xstate.h>
 #include <asm/fpu/xcr.h>
+#include <asm/msr.h>
 
 #ifdef CONFIG_X86_64
 DECLARE_PER_CPU(u64, xfd_state);
diff --git a/arch/x86/kernel/hpet.c b/arch/x86/kernel/hpet.c
index cc5d12232216..c9982a7c9536 100644
--- a/arch/x86/kernel/hpet.c
+++ b/arch/x86/kernel/hpet.c
@@ -12,6 +12,7 @@
 #include <asm/hpet.h>
 #include <asm/time.h>
 #include <asm/mwait.h>
+#include <asm/msr.h>
 
 #undef  pr_fmt
 #define pr_fmt(fmt) "hpet: " fmt
diff --git a/arch/x86/kernel/process_64.c b/arch/x86/kernel/process_64.c
index 24e1ccf22912..cfa9c031de91 100644
--- a/arch/x86/kernel/process_64.c
+++ b/arch/x86/kernel/process_64.c
@@ -57,6 +57,7 @@
 #include <asm/unistd.h>
 #include <asm/fsgsbase.h>
 #include <asm/fred.h>
+#include <asm/msr.h>
 #ifdef CONFIG_IA32_EMULATION
 /* Not included via unistd.h */
 #include <asm/unistd_32_ia32.h>
diff --git a/arch/x86/kernel/trace_clock.c b/arch/x86/kernel/trace_clock.c
index b8e7abe00b06..708d61743d15 100644
--- a/arch/x86/kernel/trace_clock.c
+++ b/arch/x86/kernel/trace_clock.c
@@ -4,7 +4,7 @@
  */
 #include <asm/trace_clock.h>
 #include <asm/barrier.h>
-#include <asm/msr.h>
+#include <asm/tsc.h>
 
 /*
  * trace_clock_x86_tsc(): A clock that is just the cycle counter.
diff --git a/arch/x86/kernel/tsc_sync.c b/arch/x86/kernel/tsc_sync.c
index f1c7a86dbf49..ec3aa340d351 100644
--- a/arch/x86/kernel/tsc_sync.c
+++ b/arch/x86/kernel/tsc_sync.c
@@ -21,6 +21,7 @@
 #include <linux/kernel.h>
 #include <linux/smp.h>
 #include <linux/nmi.h>
+#include <asm/msr.h>
 #include <asm/tsc.h>
 
 struct tsc_adjust {
diff --git a/arch/x86/lib/kaslr.c b/arch/x86/lib/kaslr.c
index a58f451a7dd3..b5893928d55c 100644
--- a/arch/x86/lib/kaslr.c
+++ b/arch/x86/lib/kaslr.c
@@ -8,7 +8,7 @@
  */
 #include <asm/asm.h>
 #include <asm/kaslr.h>
-#include <asm/msr.h>
+#include <asm/tsc.h>
 #include <asm/archrandom.h>
 #include <asm/e820/api.h>
 #include <asm/shared/io.h>
diff --git a/arch/x86/mm/mem_encrypt_identity.c b/arch/x86/mm/mem_encrypt_identity.c
index 5eecdd92da10..afda349db35b 100644
--- a/arch/x86/mm/mem_encrypt_identity.c
+++ b/arch/x86/mm/mem_encrypt_identity.c
@@ -44,6 +44,7 @@
 #include <asm/sections.h>
 #include <asm/coco.h>
 #include <asm/sev.h>
+#include <asm/msr.h>
 
 #include "mm_internal.h"
 
diff --git a/arch/x86/realmode/init.c b/arch/x86/realmode/init.c
index 263787b4800c..ed5c63c0b4e5 100644
--- a/arch/x86/realmode/init.c
+++ b/arch/x86/realmode/init.c
@@ -9,6 +9,7 @@
 #include <asm/realmode.h>
 #include <asm/tlbflush.h>
 #include <asm/crash.h>
+#include <asm/msr.h>
 #include <asm/sev.h>
 
 struct real_mode_header *real_mode_header;
diff --git a/drivers/acpi/acpi_extlog.c b/drivers/acpi/acpi_extlog.c
index 8465822b6672..f6b9562779de 100644
--- a/drivers/acpi/acpi_extlog.c
+++ b/drivers/acpi/acpi_extlog.c
@@ -15,6 +15,7 @@
 #include <acpi/ghes.h>
 #include <asm/cpu.h>
 #include <asm/mce.h>
+#include <asm/msr.h>
 
 #include "apei/apei-internal.h"
 #include <ras/ras_event.h>
diff --git a/drivers/acpi/processor_perflib.c b/drivers/acpi/processor_perflib.c
index 53996f1a2d80..64b8d1e19594 100644
--- a/drivers/acpi/processor_perflib.c
+++ b/drivers/acpi/processor_perflib.c
@@ -20,6 +20,7 @@
 #include <acpi/processor.h>
 #ifdef CONFIG_X86
 #include <asm/cpufeature.h>
+#include <asm/msr.h>
 #endif
 
 #define ACPI_PROCESSOR_FILE_PERFORMANCE	"performance"
diff --git a/drivers/acpi/processor_throttling.c b/drivers/acpi/processor_throttling.c
index 00d045e5f524..8482e9a8a7aa 100644
--- a/drivers/acpi/processor_throttling.c
+++ b/drivers/acpi/processor_throttling.c
@@ -18,9 +18,10 @@
 #include <linux/sched.h>
 #include <linux/cpufreq.h>
 #include <linux/acpi.h>
+#include <linux/uaccess.h>
 #include <acpi/processor.h>
 #include <asm/io.h>
-#include <linux/uaccess.h>
+#include <asm/asm.h>
 
 /* ignore_tpc:
  *  0 -> acpi processor driver doesn't ignore _TPC values
diff --git a/drivers/char/agp/nvidia-agp.c b/drivers/char/agp/nvidia-agp.c
index e424360fb4a1..4787391bb6b4 100644
--- a/drivers/char/agp/nvidia-agp.c
+++ b/drivers/char/agp/nvidia-agp.c
@@ -11,6 +11,7 @@
 #include <linux/page-flags.h>
 #include <linux/mm.h>
 #include <linux/jiffies.h>
+#include <asm/msr.h>
 #include "agp.h"
 
 /* NVIDIA registers */
diff --git a/drivers/cpufreq/amd-pstate-ut.c b/drivers/cpufreq/amd-pstate-ut.c
index 707fa81c749f..c8d031b297d2 100644
--- a/drivers/cpufreq/amd-pstate-ut.c
+++ b/drivers/cpufreq/amd-pstate-ut.c
@@ -31,6 +31,8 @@
 
 #include <acpi/cppc_acpi.h>
 
+#include <asm/msr.h>
+
 #include "amd-pstate.h"
 
 
diff --git a/drivers/crypto/ccp/sev-dev.c b/drivers/crypto/ccp/sev-dev.c
index bb8a25ef5b43..ec8b37a7f40c 100644
--- a/drivers/crypto/ccp/sev-dev.c
+++ b/drivers/crypto/ccp/sev-dev.c
@@ -33,6 +33,7 @@
 #include <asm/cacheflush.h>
 #include <asm/e820/types.h>
 #include <asm/sev.h>
+#include <asm/msr.h>
 
 #include "psp-dev.h"
 #include "sev-dev.h"
diff --git a/drivers/edac/amd64_edac.c b/drivers/edac/amd64_edac.c
index db758aa900b0..622385218735 100644
--- a/drivers/edac/amd64_edac.c
+++ b/drivers/edac/amd64_edac.c
@@ -4,6 +4,7 @@
 #include "amd64_edac.h"
 #include <asm/amd_nb.h>
 #include <asm/amd_node.h>
+#include <asm/msr.h>
 
 static struct edac_pci_ctl_info *pci_ctl;
 
diff --git a/drivers/edac/ie31200_edac.c b/drivers/edac/ie31200_edac.c
index 204834149579..5ddd83dc94ba 100644
--- a/drivers/edac/ie31200_edac.c
+++ b/drivers/edac/ie31200_edac.c
@@ -52,6 +52,7 @@
 
 #include <linux/io-64-nonatomic-lo-hi.h>
 #include <asm/mce.h>
+#include <asm/msr.h>
 #include "edac_module.h"
 
 #define EDAC_MOD_STR "ie31200_edac"
diff --git a/drivers/edac/mce_amd.c b/drivers/edac/mce_amd.c
index 50d74d3bf0f5..af3c12284a1e 100644
--- a/drivers/edac/mce_amd.c
+++ b/drivers/edac/mce_amd.c
@@ -3,6 +3,7 @@
 #include <linux/slab.h>
 
 #include <asm/cpu.h>
+#include <asm/msr.h>
 
 #include "mce_amd.h"
 
diff --git a/drivers/hwmon/hwmon-vid.c b/drivers/hwmon/hwmon-vid.c
index 6d1175a51832..2df4956296ed 100644
--- a/drivers/hwmon/hwmon-vid.c
+++ b/drivers/hwmon/hwmon-vid.c
@@ -15,6 +15,10 @@
 #include <linux/kernel.h>
 #include <linux/hwmon-vid.h>
 
+#ifdef CONFIG_X86
+#include <asm/msr.h>
+#endif
+
 /*
  * Common code for decoding VID pins.
  *
diff --git a/drivers/idle/intel_idle.c b/drivers/idle/intel_idle.c
index 517b28a85560..6a1712b50c7f 100644
--- a/drivers/idle/intel_idle.c
+++ b/drivers/idle/intel_idle.c
@@ -56,6 +56,7 @@
 #include <asm/intel-family.h>
 #include <asm/mwait.h>
 #include <asm/spec-ctrl.h>
+#include <asm/msr.h>
 #include <asm/tsc.h>
 #include <asm/fpu/api.h>
 #include <asm/smp.h>
diff --git a/drivers/misc/cs5535-mfgpt.c b/drivers/misc/cs5535-mfgpt.c
index 18fc1aaa5cdd..2b6778d8d166 100644
--- a/drivers/misc/cs5535-mfgpt.c
+++ b/drivers/misc/cs5535-mfgpt.c
@@ -16,6 +16,7 @@
 #include <linux/platform_device.h>
 #include <linux/cs5535.h>
 #include <linux/slab.h>
+#include <asm/msr.h>
 
 #define DRV_NAME "cs5535-mfgpt"
 
diff --git a/drivers/net/vmxnet3/vmxnet3_drv.c b/drivers/net/vmxnet3/vmxnet3_drv.c
index 3df6aabc7e33..7edd0b5e0e77 100644
--- a/drivers/net/vmxnet3/vmxnet3_drv.c
+++ b/drivers/net/vmxnet3/vmxnet3_drv.c
@@ -27,6 +27,10 @@
 #include <linux/module.h>
 #include <net/ip6_checksum.h>
 
+#ifdef CONFIG_X86
+#include <asm/msr.h>
+#endif
+
 #include "vmxnet3_int.h"
 #include "vmxnet3_xdp.h"
 
diff --git a/drivers/platform/x86/intel/ifs/core.c b/drivers/platform/x86/intel/ifs/core.c
index c4328a7ae083..b73e582128c9 100644
--- a/drivers/platform/x86/intel/ifs/core.c
+++ b/drivers/platform/x86/intel/ifs/core.c
@@ -8,6 +8,7 @@
 #include <linux/slab.h>
 
 #include <asm/cpu_device_id.h>
+#include <asm/msr.h>
 
 #include "ifs.h"
 
diff --git a/drivers/platform/x86/intel/ifs/load.c b/drivers/platform/x86/intel/ifs/load.c
index 0289391eccde..50f1fdf7dfed 100644
--- a/drivers/platform/x86/intel/ifs/load.c
+++ b/drivers/platform/x86/intel/ifs/load.c
@@ -5,6 +5,7 @@
 #include <linux/sizes.h>
 #include <asm/cpu.h>
 #include <asm/microcode.h>
+#include <asm/msr.h>
 
 #include "ifs.h"
 
diff --git a/drivers/platform/x86/intel/ifs/runtest.c b/drivers/platform/x86/intel/ifs/runtest.c
index 6b6ed7be461a..dfc119d7354d 100644
--- a/drivers/platform/x86/intel/ifs/runtest.c
+++ b/drivers/platform/x86/intel/ifs/runtest.c
@@ -7,6 +7,7 @@
 #include <linux/nmi.h>
 #include <linux/slab.h>
 #include <linux/stop_machine.h>
+#include <asm/msr.h>
 
 #include "ifs.h"
 
diff --git a/drivers/platform/x86/intel/pmc/cnp.c b/drivers/platform/x86/intel/pmc/cnp.c
index 547bdf1ab02d..efea4e1ba52b 100644
--- a/drivers/platform/x86/intel/pmc/cnp.c
+++ b/drivers/platform/x86/intel/pmc/cnp.c
@@ -10,6 +10,7 @@
 
 #include <linux/smp.h>
 #include <linux/suspend.h>
+#include <asm/msr.h>
 #include "core.h"
 
 /* Cannon Lake: PGD PFET Enable Ack Status Register(s) bitmap */
diff --git a/drivers/platform/x86/intel/speed_select_if/isst_if_common.c b/drivers/platform/x86/intel/speed_select_if/isst_if_common.c
index 44dcd165b4c0..8a5713593811 100644
--- a/drivers/platform/x86/intel/speed_select_if/isst_if_common.c
+++ b/drivers/platform/x86/intel/speed_select_if/isst_if_common.c
@@ -21,6 +21,7 @@
 
 #include <asm/cpu_device_id.h>
 #include <asm/intel-family.h>
+#include <asm/msr.h>
 
 #include "isst_if_common.h"
 
diff --git a/drivers/platform/x86/intel/speed_select_if/isst_if_mbox_msr.c b/drivers/platform/x86/intel/speed_select_if/isst_if_mbox_msr.c
index 78989f649aea..22745b217c6f 100644
--- a/drivers/platform/x86/intel/speed_select_if/isst_if_mbox_msr.c
+++ b/drivers/platform/x86/intel/speed_select_if/isst_if_mbox_msr.c
@@ -18,6 +18,7 @@
 #include <uapi/linux/isst_if.h>
 #include <asm/cpu_device_id.h>
 #include <asm/intel-family.h>
+#include <asm/msr.h>
 
 #include "isst_if_common.h"
 
diff --git a/drivers/platform/x86/intel/speed_select_if/isst_tpmi_core.c b/drivers/platform/x86/intel/speed_select_if/isst_tpmi_core.c
index 0b8ef0cfaf80..4d30d5360c8f 100644
--- a/drivers/platform/x86/intel/speed_select_if/isst_tpmi_core.c
+++ b/drivers/platform/x86/intel/speed_select_if/isst_tpmi_core.c
@@ -27,6 +27,7 @@
 #include <linux/kernel.h>
 #include <linux/minmax.h>
 #include <linux/module.h>
+#include <asm/msr.h>
 #include <uapi/linux/isst_if.h>
 
 #include "isst_tpmi_core.h"
diff --git a/drivers/platform/x86/intel/turbo_max_3.c b/drivers/platform/x86/intel/turbo_max_3.c
index 7e538bbd5b50..b5af3e91ba04 100644
--- a/drivers/platform/x86/intel/turbo_max_3.c
+++ b/drivers/platform/x86/intel/turbo_max_3.c
@@ -17,6 +17,7 @@
 
 #include <asm/cpu_device_id.h>
 #include <asm/intel-family.h>
+#include <asm/msr.h>
 
 #define MSR_OC_MAILBOX			0x150
 #define MSR_OC_MAILBOX_CMD_OFFSET	32
diff --git a/drivers/platform/x86/intel/uncore-frequency/uncore-frequency.c b/drivers/platform/x86/intel/uncore-frequency/uncore-frequency.c
index 6f873765d2d1..96f854c21bb5 100644
--- a/drivers/platform/x86/intel/uncore-frequency/uncore-frequency.c
+++ b/drivers/platform/x86/intel/uncore-frequency/uncore-frequency.c
@@ -21,6 +21,7 @@
 #include <linux/suspend.h>
 #include <asm/cpu_device_id.h>
 #include <asm/intel-family.h>
+#include <asm/msr.h>
 
 #include "uncore-frequency-common.h"
 
diff --git a/drivers/powercap/intel_rapl_common.c b/drivers/powercap/intel_rapl_common.c
index 5ab3feb29686..e3be40adc0d7 100644
--- a/drivers/powercap/intel_rapl_common.c
+++ b/drivers/powercap/intel_rapl_common.c
@@ -28,6 +28,7 @@
 #include <asm/cpu_device_id.h>
 #include <asm/intel-family.h>
 #include <asm/iosf_mbi.h>
+#include <asm/msr.h>
 
 /* bitmasks for RAPL MSRs, used by primitive access functions */
 #define ENERGY_STATUS_MASK      0xffffffff
diff --git a/drivers/powercap/intel_rapl_msr.c b/drivers/powercap/intel_rapl_msr.c
index 6d5853db17ad..8ad2115d65f6 100644
--- a/drivers/powercap/intel_rapl_msr.c
+++ b/drivers/powercap/intel_rapl_msr.c
@@ -24,6 +24,7 @@
 
 #include <asm/cpu_device_id.h>
 #include <asm/intel-family.h>
+#include <asm/msr.h>
 
 /* Local defines */
 #define MSR_PLATFORM_POWER_LIMIT	0x0000065C
diff --git a/drivers/thermal/intel/int340x_thermal/processor_thermal_device.c b/drivers/thermal/intel/int340x_thermal/processor_thermal_device.c
index b0249468b844..57cf46f69669 100644
--- a/drivers/thermal/intel/int340x_thermal/processor_thermal_device.c
+++ b/drivers/thermal/intel/int340x_thermal/processor_thermal_device.c
@@ -9,6 +9,7 @@
 #include <linux/module.h>
 #include <linux/pci.h>
 #include <linux/thermal.h>
+#include <asm/msr.h>
 #include "int340x_thermal_zone.h"
 #include "processor_thermal_device.h"
 #include "../intel_soc_dts_iosf.h"
diff --git a/drivers/thermal/intel/intel_tcc_cooling.c b/drivers/thermal/intel/intel_tcc_cooling.c
index 0394897e83cf..f352ecafbedf 100644
--- a/drivers/thermal/intel/intel_tcc_cooling.c
+++ b/drivers/thermal/intel/intel_tcc_cooling.c
@@ -11,6 +11,7 @@
 #include <linux/module.h>
 #include <linux/thermal.h>
 #include <asm/cpu_device_id.h>
+#include <asm/msr.h>
 
 #define TCC_PROGRAMMABLE	BIT(30)
 #define TCC_LOCKED		BIT(31)
diff --git a/drivers/thermal/intel/x86_pkg_temp_thermal.c b/drivers/thermal/intel/x86_pkg_temp_thermal.c
index 496abf8e55e0..4894a26b1e4e 100644
--- a/drivers/thermal/intel/x86_pkg_temp_thermal.c
+++ b/drivers/thermal/intel/x86_pkg_temp_thermal.c
@@ -20,6 +20,7 @@
 #include <linux/debugfs.h>
 
 #include <asm/cpu_device_id.h>
+#include <asm/msr.h>
 
 #include "thermal_interrupt.h"
 
diff --git a/drivers/video/fbdev/geode/display_gx.c b/drivers/video/fbdev/geode/display_gx.c
index b5f25dffd274..099322cefce0 100644
--- a/drivers/video/fbdev/geode/display_gx.c
+++ b/drivers/video/fbdev/geode/display_gx.c
@@ -13,6 +13,7 @@
 #include <asm/io.h>
 #include <asm/div64.h>
 #include <asm/delay.h>
+#include <asm/msr.h>
 #include <linux/cs5535.h>
 
 #include "gxfb.h"
diff --git a/drivers/video/fbdev/geode/gxfb_core.c b/drivers/video/fbdev/geode/gxfb_core.c
index 2b27d6540805..0105ecf92773 100644
--- a/drivers/video/fbdev/geode/gxfb_core.c
+++ b/drivers/video/fbdev/geode/gxfb_core.c
@@ -30,6 +30,7 @@
 #include <linux/cs5535.h>
 
 #include <asm/olpc.h>
+#include <asm/msr.h>
 
 #include "gxfb.h"
 
diff --git a/drivers/video/fbdev/geode/lxfb_ops.c b/drivers/video/fbdev/geode/lxfb_ops.c
index a27531b5de11..2e33da9849b0 100644
--- a/drivers/video/fbdev/geode/lxfb_ops.c
+++ b/drivers/video/fbdev/geode/lxfb_ops.c
@@ -11,6 +11,7 @@
 #include <linux/delay.h>
 #include <linux/cs5535.h>
 
+#include <asm/msr.h>
 #include "lxfb.h"
 
 /* TODO
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Sun Apr 27 09:21:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 27 Apr 2025 09:21:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.969565.1358566 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8yCT-0001OF-P3; Sun, 27 Apr 2025 09:21:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 969565.1358566; Sun, 27 Apr 2025 09: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 1u8yCT-0001O8-ML; Sun, 27 Apr 2025 09:21:25 +0000
Received: by outflank-mailman (input) for mailman id 969565;
 Sun, 27 Apr 2025 09:21: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=hqWD=XN=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u8yCS-0001AF-2K
 for xen-devel@lists.xenproject.org; Sun, 27 Apr 2025 09:21:24 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fb2cc44f-2348-11f0-9eb3-5ba50f476ded;
 Sun, 27 Apr 2025 11:21:22 +0200 (CEST)
Received: from terminus.zytor.com (terminus.zytor.com
 [IPv6:2607:7c80:54:3:0:0:0:136]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53R9KRS21598826
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Sun, 27 Apr 2025 02:20:42 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fb2cc44f-2348-11f0-9eb3-5ba50f476ded
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53R9KRS21598826
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745745644;
	bh=ksSIeWAVTacslihTdf7Zx49dtQ9Az+Y+aR8mjOcQqHA=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=D0ogFz8xK+U7+UDSUO9GSUMse1XC6Jyah0kmGFtpu5IzZEm46jWJ40rUrbGWi2csJ
	 9o6vLboUmczU+neAMTj74y44dFlbR92Grb53hWR0cR2b7H+o91aoHqaUwmQcyCKUJq
	 FwjqWWVhsgoqWlKjk24/r1/hHZ+ui4ceJrKMSvBGCCvkCUoyAk6LTtv3QrczwHQOpq
	 QY8tV47D00uLSMVryvI0jqkdTDmxmYJN5KYAnJQtq4BUwInkvj3e8YipxAb+9JCIhX
	 yqNBXqdUB81Htf6c+l0BmGUtvczcAzQQm6BiN5EfF9sCUa/yYFBoJHtTLn/u5pMZYg
	 7/vgd7gA2lURw==
From: "Xin Li (Intel)" <xin@zytor.com>
To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
        linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
        netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        acme@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com,
        peterz@infradead.org, namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com,
        dapeng1.mi@linux.intel.com, ilpo.jarvinen@linux.intel.com
Subject: [PATCH v4 05/15] x86/msr: Convert the rdpmc() macro into an always inline function
Date: Sun, 27 Apr 2025 02:20:17 -0700
Message-ID: <20250427092027.1598740-6-xin@zytor.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250427092027.1598740-1-xin@zytor.com>
References: <20250427092027.1598740-1-xin@zytor.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Functions offer type safety and better readability compared to macros.
Additionally, always inline functions can match the performance of
macros.  Converting the rdpmc() macro into an always inline function
is simple and straightforward, so just make the change.

Moreover, the read result is now the returned value, further enhancing
readability.

Signed-off-by: Xin Li (Intel) <xin@zytor.com>
Acked-by: Dave Hansen <dave.hansen@linux.intel.com>
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
---

Change in v3:
*) Add a changelog even it's obvious (Dave Hansen).
---
 arch/x86/events/amd/uncore.c              |  2 +-
 arch/x86/events/core.c                    |  2 +-
 arch/x86/events/intel/core.c              |  4 ++--
 arch/x86/events/intel/ds.c                |  2 +-
 arch/x86/include/asm/msr.h                |  5 ++++-
 arch/x86/include/asm/paravirt.h           |  4 +---
 arch/x86/kernel/cpu/resctrl/pseudo_lock.c | 12 ++++++------
 7 files changed, 16 insertions(+), 15 deletions(-)

diff --git a/arch/x86/events/amd/uncore.c b/arch/x86/events/amd/uncore.c
index 42c833cf9d98..13c4cea545c5 100644
--- a/arch/x86/events/amd/uncore.c
+++ b/arch/x86/events/amd/uncore.c
@@ -108,7 +108,7 @@ static void amd_uncore_read(struct perf_event *event)
 	if (hwc->event_base_rdpmc < 0)
 		rdmsrq(hwc->event_base, new);
 	else
-		rdpmc(hwc->event_base_rdpmc, new);
+		new = rdpmc(hwc->event_base_rdpmc);
 
 	local64_set(&hwc->prev_count, new);
 	delta = (new << COUNTER_SHIFT) - (prev << COUNTER_SHIFT);
diff --git a/arch/x86/events/core.c b/arch/x86/events/core.c
index ea618dd8a678..d8634446684e 100644
--- a/arch/x86/events/core.c
+++ b/arch/x86/events/core.c
@@ -134,7 +134,7 @@ u64 x86_perf_event_update(struct perf_event *event)
 	 */
 	prev_raw_count = local64_read(&hwc->prev_count);
 	do {
-		rdpmc(hwc->event_base_rdpmc, new_raw_count);
+		new_raw_count = rdpmc(hwc->event_base_rdpmc);
 	} while (!local64_try_cmpxchg(&hwc->prev_count,
 				      &prev_raw_count, new_raw_count));
 
diff --git a/arch/x86/events/intel/core.c b/arch/x86/events/intel/core.c
index 8ac7a03ae4e9..9fa94b6e4e74 100644
--- a/arch/x86/events/intel/core.c
+++ b/arch/x86/events/intel/core.c
@@ -2724,12 +2724,12 @@ static u64 intel_update_topdown_event(struct perf_event *event, int metric_end,
 
 	if (!val) {
 		/* read Fixed counter 3 */
-		rdpmc((3 | INTEL_PMC_FIXED_RDPMC_BASE), slots);
+		slots = rdpmc(3 | INTEL_PMC_FIXED_RDPMC_BASE);
 		if (!slots)
 			return 0;
 
 		/* read PERF_METRICS */
-		rdpmc(INTEL_PMC_FIXED_RDPMC_METRICS, metrics);
+		metrics = rdpmc(INTEL_PMC_FIXED_RDPMC_METRICS);
 	} else {
 		slots = val[0];
 		metrics = val[1];
diff --git a/arch/x86/events/intel/ds.c b/arch/x86/events/intel/ds.c
index be05e93b48e7..a093cb485278 100644
--- a/arch/x86/events/intel/ds.c
+++ b/arch/x86/events/intel/ds.c
@@ -2274,7 +2274,7 @@ intel_pmu_save_and_restart_reload(struct perf_event *event, int count)
 	WARN_ON(this_cpu_read(cpu_hw_events.enabled));
 
 	prev_raw_count = local64_read(&hwc->prev_count);
-	rdpmc(hwc->event_base_rdpmc, new_raw_count);
+	new_raw_count = rdpmc(hwc->event_base_rdpmc);
 	local64_set(&hwc->prev_count, new_raw_count);
 
 	/*
diff --git a/arch/x86/include/asm/msr.h b/arch/x86/include/asm/msr.h
index ae96d35e0621..73d44081e597 100644
--- a/arch/x86/include/asm/msr.h
+++ b/arch/x86/include/asm/msr.h
@@ -234,7 +234,10 @@ static inline int rdmsrq_safe(u32 msr, u64 *p)
 	return err;
 }
 
-#define rdpmc(counter, val) ((val) = native_read_pmc(counter))
+static __always_inline u64 rdpmc(int counter)
+{
+	return native_read_pmc(counter);
+}
 
 #endif	/* !CONFIG_PARAVIRT_XXL */
 
diff --git a/arch/x86/include/asm/paravirt.h b/arch/x86/include/asm/paravirt.h
index faa0713553b1..f272c4bd3d5b 100644
--- a/arch/x86/include/asm/paravirt.h
+++ b/arch/x86/include/asm/paravirt.h
@@ -239,13 +239,11 @@ static inline int rdmsrq_safe(unsigned msr, u64 *p)
 	return err;
 }
 
-static inline u64 paravirt_read_pmc(int counter)
+static __always_inline u64 rdpmc(int counter)
 {
 	return PVOP_CALL1(u64, cpu.read_pmc, counter);
 }
 
-#define rdpmc(counter, val) ((val) = paravirt_read_pmc(counter))
-
 static inline void paravirt_alloc_ldt(struct desc_struct *ldt, unsigned entries)
 {
 	PVOP_VCALL2(cpu.alloc_ldt, ldt, entries);
diff --git a/arch/x86/kernel/cpu/resctrl/pseudo_lock.c b/arch/x86/kernel/cpu/resctrl/pseudo_lock.c
index 15ff62d83bd8..61d762555a79 100644
--- a/arch/x86/kernel/cpu/resctrl/pseudo_lock.c
+++ b/arch/x86/kernel/cpu/resctrl/pseudo_lock.c
@@ -1019,8 +1019,8 @@ static int measure_residency_fn(struct perf_event_attr *miss_attr,
 	 * used in L1 cache, second to capture accurate value that does not
 	 * include cache misses incurred because of instruction loads.
 	 */
-	rdpmc(hit_pmcnum, hits_before);
-	rdpmc(miss_pmcnum, miss_before);
+	hits_before = rdpmc(hit_pmcnum);
+	miss_before = rdpmc(miss_pmcnum);
 	/*
 	 * From SDM: Performing back-to-back fast reads are not guaranteed
 	 * to be monotonic.
@@ -1028,8 +1028,8 @@ static int measure_residency_fn(struct perf_event_attr *miss_attr,
 	 * before proceeding.
 	 */
 	rmb();
-	rdpmc(hit_pmcnum, hits_before);
-	rdpmc(miss_pmcnum, miss_before);
+	hits_before = rdpmc(hit_pmcnum);
+	miss_before = rdpmc(miss_pmcnum);
 	/*
 	 * Use LFENCE to ensure all previous instructions are retired
 	 * before proceeding.
@@ -1051,8 +1051,8 @@ static int measure_residency_fn(struct perf_event_attr *miss_attr,
 	 * before proceeding.
 	 */
 	rmb();
-	rdpmc(hit_pmcnum, hits_after);
-	rdpmc(miss_pmcnum, miss_after);
+	hits_after = rdpmc(hit_pmcnum);
+	miss_after = rdpmc(miss_pmcnum);
 	/*
 	 * Use LFENCE to ensure all previous instructions are retired
 	 * before proceeding.
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Sun Apr 27 09:21:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 27 Apr 2025 09:21:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.969576.1358661 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8yCa-0003Sn-Cm; Sun, 27 Apr 2025 09:21:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 969576.1358661; Sun, 27 Apr 2025 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 1u8yCa-0003QB-2m; Sun, 27 Apr 2025 09:21:32 +0000
Received: by outflank-mailman (input) for mailman id 969576;
 Sun, 27 Apr 2025 09:21: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=hqWD=XN=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u8yCX-0001AF-P8
 for xen-devel@lists.xenproject.org; Sun, 27 Apr 2025 09:21:29 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fb2d5e15-2348-11f0-9eb3-5ba50f476ded;
 Sun, 27 Apr 2025 11:21:22 +0200 (CEST)
Received: from terminus.zytor.com (terminus.zytor.com
 [IPv6:2607:7c80:54:3:0:0:0:136]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53R9KRS11598826
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Sun, 27 Apr 2025 02:20:40 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fb2d5e15-2348-11f0-9eb3-5ba50f476ded
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53R9KRS11598826
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745745642;
	bh=p8ppX0g6LR5uDE4H5rP+F1T7auiPTWqUYddLIkJbPBw=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=Nqa5qcgm1xt2cbOzPOOE5NTQDSJVVDFWZs7ob5S90pzNOZfMWVzZfhzHCfPnW8k7H
	 zGpTUYIqhLXK8edV6yOy5p8PVMegfBJ1AMwHGn3Wa6T8BFhC5IEyjwLALmMZVQHZvj
	 FeAbywJiMCctZCYsrmeOmeRizPkCyPvpQqB4s20r9z+1KwReqSF0DU+LNVxkOYQyxN
	 AIOC2xb33NMVp462kdpe7gascdkGx9CtJomG+ik64uXcr/WH65c56t948uSi/JqPTJ
	 iYcnejO0EO5nB8HlBGaTzztJpKwC4CTb1LA+IrTBxA5vlEjmvH3lhGeW1IdF6DrQFD
	 0gDpuTZqKjvRQ==
From: "Xin Li (Intel)" <xin@zytor.com>
To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
        linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
        netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        acme@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com,
        peterz@infradead.org, namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com,
        dapeng1.mi@linux.intel.com, ilpo.jarvinen@linux.intel.com
Subject: [PATCH v4 04/15] x86/msr: Rename rdpmcl() to rdpmc()
Date: Sun, 27 Apr 2025 02:20:16 -0700
Message-ID: <20250427092027.1598740-5-xin@zytor.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250427092027.1598740-1-xin@zytor.com>
References: <20250427092027.1598740-1-xin@zytor.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Now that rdpmc() is gone, i.e. rdpmcl() is the sole PMC read helper,
simply rename rdpmcl() to rdpmc().

Signed-off-by: Xin Li (Intel) <xin@zytor.com>
Acked-by: Dave Hansen <dave.hansen@linux.intel.com>
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
---

Changes in v3:
*) Explain the reason of the renaming in the changelog (Dave Hansen).
*) Use shorter name rdpmc() instead of rdpmcq() as the name of the
   sole PMC read helper (Sean Christopherson).
---
 arch/x86/events/amd/uncore.c              |  2 +-
 arch/x86/events/core.c                    |  2 +-
 arch/x86/events/intel/core.c              |  4 ++--
 arch/x86/events/intel/ds.c                |  2 +-
 arch/x86/include/asm/msr.h                |  2 +-
 arch/x86/include/asm/paravirt.h           |  2 +-
 arch/x86/kernel/cpu/resctrl/pseudo_lock.c | 12 ++++++------
 7 files changed, 13 insertions(+), 13 deletions(-)

diff --git a/arch/x86/events/amd/uncore.c b/arch/x86/events/amd/uncore.c
index 2a3259df619a..42c833cf9d98 100644
--- a/arch/x86/events/amd/uncore.c
+++ b/arch/x86/events/amd/uncore.c
@@ -108,7 +108,7 @@ static void amd_uncore_read(struct perf_event *event)
 	if (hwc->event_base_rdpmc < 0)
 		rdmsrq(hwc->event_base, new);
 	else
-		rdpmcl(hwc->event_base_rdpmc, new);
+		rdpmc(hwc->event_base_rdpmc, new);
 
 	local64_set(&hwc->prev_count, new);
 	delta = (new << COUNTER_SHIFT) - (prev << COUNTER_SHIFT);
diff --git a/arch/x86/events/core.c b/arch/x86/events/core.c
index 85b55c1dc162..ea618dd8a678 100644
--- a/arch/x86/events/core.c
+++ b/arch/x86/events/core.c
@@ -134,7 +134,7 @@ u64 x86_perf_event_update(struct perf_event *event)
 	 */
 	prev_raw_count = local64_read(&hwc->prev_count);
 	do {
-		rdpmcl(hwc->event_base_rdpmc, new_raw_count);
+		rdpmc(hwc->event_base_rdpmc, new_raw_count);
 	} while (!local64_try_cmpxchg(&hwc->prev_count,
 				      &prev_raw_count, new_raw_count));
 
diff --git a/arch/x86/events/intel/core.c b/arch/x86/events/intel/core.c
index 394fa83b537b..8ac7a03ae4e9 100644
--- a/arch/x86/events/intel/core.c
+++ b/arch/x86/events/intel/core.c
@@ -2724,12 +2724,12 @@ static u64 intel_update_topdown_event(struct perf_event *event, int metric_end,
 
 	if (!val) {
 		/* read Fixed counter 3 */
-		rdpmcl((3 | INTEL_PMC_FIXED_RDPMC_BASE), slots);
+		rdpmc((3 | INTEL_PMC_FIXED_RDPMC_BASE), slots);
 		if (!slots)
 			return 0;
 
 		/* read PERF_METRICS */
-		rdpmcl(INTEL_PMC_FIXED_RDPMC_METRICS, metrics);
+		rdpmc(INTEL_PMC_FIXED_RDPMC_METRICS, metrics);
 	} else {
 		slots = val[0];
 		metrics = val[1];
diff --git a/arch/x86/events/intel/ds.c b/arch/x86/events/intel/ds.c
index 410a8975d1b9..be05e93b48e7 100644
--- a/arch/x86/events/intel/ds.c
+++ b/arch/x86/events/intel/ds.c
@@ -2274,7 +2274,7 @@ intel_pmu_save_and_restart_reload(struct perf_event *event, int count)
 	WARN_ON(this_cpu_read(cpu_hw_events.enabled));
 
 	prev_raw_count = local64_read(&hwc->prev_count);
-	rdpmcl(hwc->event_base_rdpmc, new_raw_count);
+	rdpmc(hwc->event_base_rdpmc, new_raw_count);
 	local64_set(&hwc->prev_count, new_raw_count);
 
 	/*
diff --git a/arch/x86/include/asm/msr.h b/arch/x86/include/asm/msr.h
index e05466e486fc..ae96d35e0621 100644
--- a/arch/x86/include/asm/msr.h
+++ b/arch/x86/include/asm/msr.h
@@ -234,7 +234,7 @@ static inline int rdmsrq_safe(u32 msr, u64 *p)
 	return err;
 }
 
-#define rdpmcl(counter, val) ((val) = native_read_pmc(counter))
+#define rdpmc(counter, val) ((val) = native_read_pmc(counter))
 
 #endif	/* !CONFIG_PARAVIRT_XXL */
 
diff --git a/arch/x86/include/asm/paravirt.h b/arch/x86/include/asm/paravirt.h
index c4dedb984735..faa0713553b1 100644
--- a/arch/x86/include/asm/paravirt.h
+++ b/arch/x86/include/asm/paravirt.h
@@ -244,7 +244,7 @@ static inline u64 paravirt_read_pmc(int counter)
 	return PVOP_CALL1(u64, cpu.read_pmc, counter);
 }
 
-#define rdpmcl(counter, val) ((val) = paravirt_read_pmc(counter))
+#define rdpmc(counter, val) ((val) = paravirt_read_pmc(counter))
 
 static inline void paravirt_alloc_ldt(struct desc_struct *ldt, unsigned entries)
 {
diff --git a/arch/x86/kernel/cpu/resctrl/pseudo_lock.c b/arch/x86/kernel/cpu/resctrl/pseudo_lock.c
index 26c354bdea07..15ff62d83bd8 100644
--- a/arch/x86/kernel/cpu/resctrl/pseudo_lock.c
+++ b/arch/x86/kernel/cpu/resctrl/pseudo_lock.c
@@ -1019,8 +1019,8 @@ static int measure_residency_fn(struct perf_event_attr *miss_attr,
 	 * used in L1 cache, second to capture accurate value that does not
 	 * include cache misses incurred because of instruction loads.
 	 */
-	rdpmcl(hit_pmcnum, hits_before);
-	rdpmcl(miss_pmcnum, miss_before);
+	rdpmc(hit_pmcnum, hits_before);
+	rdpmc(miss_pmcnum, miss_before);
 	/*
 	 * From SDM: Performing back-to-back fast reads are not guaranteed
 	 * to be monotonic.
@@ -1028,8 +1028,8 @@ static int measure_residency_fn(struct perf_event_attr *miss_attr,
 	 * before proceeding.
 	 */
 	rmb();
-	rdpmcl(hit_pmcnum, hits_before);
-	rdpmcl(miss_pmcnum, miss_before);
+	rdpmc(hit_pmcnum, hits_before);
+	rdpmc(miss_pmcnum, miss_before);
 	/*
 	 * Use LFENCE to ensure all previous instructions are retired
 	 * before proceeding.
@@ -1051,8 +1051,8 @@ static int measure_residency_fn(struct perf_event_attr *miss_attr,
 	 * before proceeding.
 	 */
 	rmb();
-	rdpmcl(hit_pmcnum, hits_after);
-	rdpmcl(miss_pmcnum, miss_after);
+	rdpmc(hit_pmcnum, hits_after);
+	rdpmc(miss_pmcnum, miss_after);
 	/*
 	 * Use LFENCE to ensure all previous instructions are retired
 	 * before proceeding.
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Sun Apr 27 09:21:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 27 Apr 2025 09:21:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.969577.1358670 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8yCb-0003cZ-4B; Sun, 27 Apr 2025 09:21:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 969577.1358670; Sun, 27 Apr 2025 09:21: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 1u8yCa-0003YI-PD; Sun, 27 Apr 2025 09:21:32 +0000
Received: by outflank-mailman (input) for mailman id 969577;
 Sun, 27 Apr 2025 09:21: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=hqWD=XN=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u8yCX-0001A9-Po
 for xen-devel@lists.xenproject.org; Sun, 27 Apr 2025 09:21:29 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fedaa3db-2348-11f0-9ffb-bf95429c2676;
 Sun, 27 Apr 2025 11:21:28 +0200 (CEST)
Received: from terminus.zytor.com (terminus.zytor.com
 [IPv6:2607:7c80:54:3:0:0:0:136]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53R9KRSB1598826
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Sun, 27 Apr 2025 02:21:01 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fedaa3db-2348-11f0-9ffb-bf95429c2676
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53R9KRSB1598826
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745745663;
	bh=R5oH7hH9xB+vS3S4ScU1HiCZ6NrM3meTLJvjPDW6mN0=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=GberkjOVDz5G8x5inS/+RdQuDnQCy6T+t1ejmse71fr7NmceV5Yi2ZuScqba25F91
	 yJM3du5ZAqqJvQlzrlHDon5OS2dZXqgmKxt+DkaprdRm378+9VCGiyJO9ECIZDba+M
	 XusJoo8RLRX2MKDP8xWCIEL2mtXQRQEy6iela4um1iecdhmjry9InpD74vB0sQ7Bos
	 NKWIt8mZy4gqjWrmMYLlLtlaltWzT+N8U4ZKABdwfYMGQQKQ/sMP1XDC4sjxaEFlR7
	 JJACjmedhYgQqucJ3f3sKgdwpFr9mj2SgIClxAaEuSej8rYsNgkudaK/eP7zuHI3S2
	 5TwSKypfSi8Ag==
From: "Xin Li (Intel)" <xin@zytor.com>
To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
        linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
        netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        acme@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com,
        peterz@infradead.org, namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com,
        dapeng1.mi@linux.intel.com, ilpo.jarvinen@linux.intel.com
Subject: [PATCH v4 14/15] x86/msr: Replace wrmsr(msr, low, 0) with wrmsrq(msr, low)
Date: Sun, 27 Apr 2025 02:20:26 -0700
Message-ID: <20250427092027.1598740-15-xin@zytor.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250427092027.1598740-1-xin@zytor.com>
References: <20250427092027.1598740-1-xin@zytor.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The third argument in wrmsr(msr, low, 0) is unnecessary.  Instead, use
wrmsrq(msr, low), which automatically sets the higher 32 bits of the
MSR value to 0.

Signed-off-by: Xin Li (Intel) <xin@zytor.com>
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
---
 arch/x86/hyperv/hv_apic.c                 | 6 +++---
 arch/x86/include/asm/apic.h               | 2 +-
 arch/x86/include/asm/switch_to.h          | 2 +-
 arch/x86/kernel/cpu/amd.c                 | 2 +-
 arch/x86/kernel/cpu/common.c              | 8 ++++----
 arch/x86/kernel/cpu/resctrl/pseudo_lock.c | 4 ++--
 arch/x86/kernel/cpu/resctrl/rdtgroup.c    | 2 +-
 arch/x86/kernel/cpu/umwait.c              | 4 ++--
 arch/x86/kernel/kvm.c                     | 2 +-
 9 files changed, 16 insertions(+), 16 deletions(-)

diff --git a/arch/x86/hyperv/hv_apic.c b/arch/x86/hyperv/hv_apic.c
index c450e67cb0a4..4d617ee59377 100644
--- a/arch/x86/hyperv/hv_apic.c
+++ b/arch/x86/hyperv/hv_apic.c
@@ -75,10 +75,10 @@ static void hv_apic_write(u32 reg, u32 val)
 {
 	switch (reg) {
 	case APIC_EOI:
-		wrmsr(HV_X64_MSR_EOI, val, 0);
+		wrmsrq(HV_X64_MSR_EOI, val);
 		break;
 	case APIC_TASKPRI:
-		wrmsr(HV_X64_MSR_TPR, val, 0);
+		wrmsrq(HV_X64_MSR_TPR, val);
 		break;
 	default:
 		native_apic_mem_write(reg, val);
@@ -92,7 +92,7 @@ static void hv_apic_eoi_write(void)
 	if (hvp && (xchg(&hvp->apic_assist, 0) & 0x1))
 		return;
 
-	wrmsr(HV_X64_MSR_EOI, APIC_EOI_ACK, 0);
+	wrmsrq(HV_X64_MSR_EOI, APIC_EOI_ACK);
 }
 
 static bool cpu_is_self(int cpu)
diff --git a/arch/x86/include/asm/apic.h b/arch/x86/include/asm/apic.h
index 0174dd548327..68e10e30fe9b 100644
--- a/arch/x86/include/asm/apic.h
+++ b/arch/x86/include/asm/apic.h
@@ -209,7 +209,7 @@ static inline void native_apic_msr_write(u32 reg, u32 v)
 	    reg == APIC_LVR)
 		return;
 
-	wrmsr(APIC_BASE_MSR + (reg >> 4), v, 0);
+	wrmsrq(APIC_BASE_MSR + (reg >> 4), v);
 }
 
 static inline void native_apic_msr_eoi(void)
diff --git a/arch/x86/include/asm/switch_to.h b/arch/x86/include/asm/switch_to.h
index 4f21df7af715..499b1c15cc8b 100644
--- a/arch/x86/include/asm/switch_to.h
+++ b/arch/x86/include/asm/switch_to.h
@@ -61,7 +61,7 @@ static inline void refresh_sysenter_cs(struct thread_struct *thread)
 		return;
 
 	this_cpu_write(cpu_tss_rw.x86_tss.ss1, thread->sysenter_cs);
-	wrmsr(MSR_IA32_SYSENTER_CS, thread->sysenter_cs, 0);
+	wrmsrq(MSR_IA32_SYSENTER_CS, thread->sysenter_cs);
 }
 #endif
 
diff --git a/arch/x86/kernel/cpu/amd.c b/arch/x86/kernel/cpu/amd.c
index 0bbe79862aa6..5e28ec2fe4e8 100644
--- a/arch/x86/kernel/cpu/amd.c
+++ b/arch/x86/kernel/cpu/amd.c
@@ -1200,7 +1200,7 @@ void amd_set_dr_addr_mask(unsigned long mask, unsigned int dr)
 	if (per_cpu(amd_dr_addr_mask, cpu)[dr] == mask)
 		return;
 
-	wrmsr(amd_msr_dr_addr_masks[dr], mask, 0);
+	wrmsrq(amd_msr_dr_addr_masks[dr], mask);
 	per_cpu(amd_dr_addr_mask, cpu)[dr] = mask;
 }
 
diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c
index cefc99990bde..ef9751d577c3 100644
--- a/arch/x86/kernel/cpu/common.c
+++ b/arch/x86/kernel/cpu/common.c
@@ -1982,9 +1982,9 @@ void enable_sep_cpu(void)
 	 */
 
 	tss->x86_tss.ss1 = __KERNEL_CS;
-	wrmsr(MSR_IA32_SYSENTER_CS, tss->x86_tss.ss1, 0);
-	wrmsr(MSR_IA32_SYSENTER_ESP, (unsigned long)(cpu_entry_stack(cpu) + 1), 0);
-	wrmsr(MSR_IA32_SYSENTER_EIP, (unsigned long)entry_SYSENTER_32, 0);
+	wrmsrq(MSR_IA32_SYSENTER_CS, tss->x86_tss.ss1);
+	wrmsrq(MSR_IA32_SYSENTER_ESP, (unsigned long)(cpu_entry_stack(cpu) + 1));
+	wrmsrq(MSR_IA32_SYSENTER_EIP, (unsigned long)entry_SYSENTER_32);
 
 	put_cpu();
 }
@@ -2198,7 +2198,7 @@ static inline void setup_getcpu(int cpu)
 	struct desc_struct d = { };
 
 	if (boot_cpu_has(X86_FEATURE_RDTSCP) || boot_cpu_has(X86_FEATURE_RDPID))
-		wrmsr(MSR_TSC_AUX, cpudata, 0);
+		wrmsrq(MSR_TSC_AUX, cpudata);
 
 	/* Store CPU and node number in limit. */
 	d.limit0 = cpudata;
diff --git a/arch/x86/kernel/cpu/resctrl/pseudo_lock.c b/arch/x86/kernel/cpu/resctrl/pseudo_lock.c
index 324bd4919300..1190c48a16b2 100644
--- a/arch/x86/kernel/cpu/resctrl/pseudo_lock.c
+++ b/arch/x86/kernel/cpu/resctrl/pseudo_lock.c
@@ -905,7 +905,7 @@ int resctrl_arch_measure_cycles_lat_fn(void *_plr)
 	 * Disable hardware prefetchers.
 	 */
 	rdmsr(MSR_MISC_FEATURE_CONTROL, saved_low, saved_high);
-	wrmsr(MSR_MISC_FEATURE_CONTROL, prefetch_disable_bits, 0x0);
+	wrmsrq(MSR_MISC_FEATURE_CONTROL, prefetch_disable_bits);
 	mem_r = READ_ONCE(plr->kmem);
 	/*
 	 * Dummy execute of the time measurement to load the needed
@@ -1001,7 +1001,7 @@ static int measure_residency_fn(struct perf_event_attr *miss_attr,
 	 * Disable hardware prefetchers.
 	 */
 	rdmsr(MSR_MISC_FEATURE_CONTROL, saved_low, saved_high);
-	wrmsr(MSR_MISC_FEATURE_CONTROL, prefetch_disable_bits, 0x0);
+	wrmsrq(MSR_MISC_FEATURE_CONTROL, prefetch_disable_bits);
 
 	/* Initialize rest of local variables */
 	/*
diff --git a/arch/x86/kernel/cpu/resctrl/rdtgroup.c b/arch/x86/kernel/cpu/resctrl/rdtgroup.c
index 26f4d820ee6e..2ec6d7d843c5 100644
--- a/arch/x86/kernel/cpu/resctrl/rdtgroup.c
+++ b/arch/x86/kernel/cpu/resctrl/rdtgroup.c
@@ -1707,7 +1707,7 @@ void resctrl_arch_mon_event_config_write(void *_config_info)
 		pr_warn_once("Invalid event id %d\n", config_info->evtid);
 		return;
 	}
-	wrmsr(MSR_IA32_EVT_CFG_BASE + index, config_info->mon_config, 0);
+	wrmsrq(MSR_IA32_EVT_CFG_BASE + index, config_info->mon_config);
 }
 
 static void mbm_config_write_domain(struct rdt_resource *r,
diff --git a/arch/x86/kernel/cpu/umwait.c b/arch/x86/kernel/cpu/umwait.c
index 0050eae153bb..933fcd7ff250 100644
--- a/arch/x86/kernel/cpu/umwait.c
+++ b/arch/x86/kernel/cpu/umwait.c
@@ -33,7 +33,7 @@ static DEFINE_MUTEX(umwait_lock);
 static void umwait_update_control_msr(void * unused)
 {
 	lockdep_assert_irqs_disabled();
-	wrmsr(MSR_IA32_UMWAIT_CONTROL, READ_ONCE(umwait_control_cached), 0);
+	wrmsrq(MSR_IA32_UMWAIT_CONTROL, READ_ONCE(umwait_control_cached));
 }
 
 /*
@@ -71,7 +71,7 @@ static int umwait_cpu_offline(unsigned int cpu)
 	 * the original control MSR value in umwait_init(). So there
 	 * is no race condition here.
 	 */
-	wrmsr(MSR_IA32_UMWAIT_CONTROL, orig_umwait_control_cached, 0);
+	wrmsrq(MSR_IA32_UMWAIT_CONTROL, orig_umwait_control_cached);
 
 	return 0;
 }
diff --git a/arch/x86/kernel/kvm.c b/arch/x86/kernel/kvm.c
index 44a45df7200a..bc9d21d7395f 100644
--- a/arch/x86/kernel/kvm.c
+++ b/arch/x86/kernel/kvm.c
@@ -399,7 +399,7 @@ static void kvm_disable_steal_time(void)
 	if (!has_steal_clock)
 		return;
 
-	wrmsr(MSR_KVM_STEAL_TIME, 0, 0);
+	wrmsrq(MSR_KVM_STEAL_TIME, 0);
 }
 
 static u64 kvm_steal_clock(int cpu)
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Sun Apr 27 09:21:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 27 Apr 2025 09:21:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.969570.1358613 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8yCW-0002ML-Hn; Sun, 27 Apr 2025 09:21:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 969570.1358613; Sun, 27 Apr 2025 09: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 1u8yCW-0002K0-9J; Sun, 27 Apr 2025 09:21:28 +0000
Received: by outflank-mailman (input) for mailman id 969570;
 Sun, 27 Apr 2025 09: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=hqWD=XN=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u8yCU-0001A9-0A
 for xen-devel@lists.xenproject.org; Sun, 27 Apr 2025 09:21:26 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fc8d8b95-2348-11f0-9ffb-bf95429c2676;
 Sun, 27 Apr 2025 11:21:24 +0200 (CEST)
Received: from terminus.zytor.com (terminus.zytor.com
 [IPv6:2607:7c80:54:3:0:0:0:136]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53R9KRS61598826
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Sun, 27 Apr 2025 02:20:50 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fc8d8b95-2348-11f0-9ffb-bf95429c2676
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53R9KRS61598826
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745745652;
	bh=96MYN68NJt8wFTIurIsjp/tKuKs+pZs6JdTIOMXstR0=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=bnNIe3ScYvjueYrWDqZUD8C/s3FUxlDMbWcnKbvvYV3qFHKV6juB2gRw4ChuBe22F
	 gZ2426c+8J3MKPtO83mhVLXky2bwa2P5c6/z4zzgq9rz6KPfWFG0mjm8QhHAVYCnMa
	 Dr9/R5cAIWRehyCDo0NOaEbp7VNp4KRLuQ87/AdlUf2F9NVOdszQ2USwuI5eXcLfGx
	 zczpJopfo/P9g+FcG6GpvyOgh7k/ISR+10fjIDi+PItN4Em2+bwm8soFSHjJJ8H3Y3
	 OlYn0FhGpRAU6sM4KCbMjxbaYSdsorZK6QMdD4g0XY67aiMBcz6fVaYiwR1Z1NbAra
	 4c8WchoA8KvVg==
From: "Xin Li (Intel)" <xin@zytor.com>
To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
        linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
        netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        acme@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com,
        peterz@infradead.org, namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com,
        dapeng1.mi@linux.intel.com, ilpo.jarvinen@linux.intel.com
Subject: [PATCH v4 09/15] x86/msr: Convert __rdmsr() uses to native_rdmsrq() uses
Date: Sun, 27 Apr 2025 02:20:21 -0700
Message-ID: <20250427092027.1598740-10-xin@zytor.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250427092027.1598740-1-xin@zytor.com>
References: <20250427092027.1598740-1-xin@zytor.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

__rdmsr() is the lowest level MSR write API, with native_rdmsr()
and native_rdmsrq() serving as higher-level wrappers around it.

  #define native_rdmsr(msr, val1, val2)                   \
  do {                                                    \
          u64 __val = __rdmsr((msr));                     \
          (void)((val1) = (u32)__val);                    \
          (void)((val2) = (u32)(__val >> 32));            \
  } while (0)

  static __always_inline u64 native_rdmsrq(u32 msr)
  {
          return __rdmsr(msr);
  }

However, __rdmsr() continues to be utilized in various locations.

MSR APIs are designed for different scenarios, such as native or
pvops, with or without trace, and safe or non-safe.  Unfortunately,
the current MSR API names do not adequately reflect these factors,
making it challenging to select the most appropriate API for
various situations.

To pave the way for improving MSR API names, convert __rdmsr()
uses to native_rdmsrq() to ensure consistent usage.  Later, these
APIs can be renamed to better reflect their implications, such as
native or pvops, with or without trace, and safe or non-safe.

No functional change intended.

Signed-off-by: Xin Li (Intel) <xin@zytor.com>
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
---
 arch/x86/coco/sev/core.c                  | 2 +-
 arch/x86/events/amd/brs.c                 | 2 +-
 arch/x86/hyperv/hv_vtl.c                  | 4 ++--
 arch/x86/hyperv/ivm.c                     | 2 +-
 arch/x86/include/asm/mshyperv.h           | 2 +-
 arch/x86/kernel/cpu/common.c              | 2 +-
 arch/x86/kernel/cpu/mce/core.c            | 4 ++--
 arch/x86/kernel/cpu/resctrl/pseudo_lock.c | 2 +-
 arch/x86/kvm/vmx/vmx.c                    | 4 ++--
 arch/x86/mm/mem_encrypt_identity.c        | 4 ++--
 10 files changed, 14 insertions(+), 14 deletions(-)

diff --git a/arch/x86/coco/sev/core.c b/arch/x86/coco/sev/core.c
index b18a33fe8dd3..c4137c94678d 100644
--- a/arch/x86/coco/sev/core.c
+++ b/arch/x86/coco/sev/core.c
@@ -276,7 +276,7 @@ static noinstr struct ghcb *__sev_get_ghcb(struct ghcb_state *state)
 
 static inline u64 sev_es_rd_ghcb_msr(void)
 {
-	return __rdmsr(MSR_AMD64_SEV_ES_GHCB);
+	return native_rdmsrq(MSR_AMD64_SEV_ES_GHCB);
 }
 
 static __always_inline void sev_es_wr_ghcb_msr(u64 val)
diff --git a/arch/x86/events/amd/brs.c b/arch/x86/events/amd/brs.c
index 3f5ecfd80d1e..06f35a6b58a5 100644
--- a/arch/x86/events/amd/brs.c
+++ b/arch/x86/events/amd/brs.c
@@ -49,7 +49,7 @@ static __always_inline void set_debug_extn_cfg(u64 val)
 
 static __always_inline u64 get_debug_extn_cfg(void)
 {
-	return __rdmsr(MSR_AMD_DBG_EXTN_CFG);
+	return native_rdmsrq(MSR_AMD_DBG_EXTN_CFG);
 }
 
 static bool __init amd_brs_detect(void)
diff --git a/arch/x86/hyperv/hv_vtl.c b/arch/x86/hyperv/hv_vtl.c
index 13242ed8ff16..c6343e699154 100644
--- a/arch/x86/hyperv/hv_vtl.c
+++ b/arch/x86/hyperv/hv_vtl.c
@@ -149,11 +149,11 @@ static int hv_vtl_bringup_vcpu(u32 target_vp_index, int cpu, u64 eip_ignored)
 	input->vp_context.rip = rip;
 	input->vp_context.rsp = rsp;
 	input->vp_context.rflags = 0x0000000000000002;
-	input->vp_context.efer = __rdmsr(MSR_EFER);
+	input->vp_context.efer = native_rdmsrq(MSR_EFER);
 	input->vp_context.cr0 = native_read_cr0();
 	input->vp_context.cr3 = __native_read_cr3();
 	input->vp_context.cr4 = native_read_cr4();
-	input->vp_context.msr_cr_pat = __rdmsr(MSR_IA32_CR_PAT);
+	input->vp_context.msr_cr_pat = native_rdmsrq(MSR_IA32_CR_PAT);
 	input->vp_context.idtr.limit = idt_ptr.size;
 	input->vp_context.idtr.base = idt_ptr.address;
 	input->vp_context.gdtr.limit = gdt_ptr.size;
diff --git a/arch/x86/hyperv/ivm.c b/arch/x86/hyperv/ivm.c
index 8209de792388..09a165a3c41e 100644
--- a/arch/x86/hyperv/ivm.c
+++ b/arch/x86/hyperv/ivm.c
@@ -111,7 +111,7 @@ u64 hv_ghcb_hypercall(u64 control, void *input, void *output, u32 input_size)
 
 static inline u64 rd_ghcb_msr(void)
 {
-	return __rdmsr(MSR_AMD64_SEV_ES_GHCB);
+	return native_rdmsrq(MSR_AMD64_SEV_ES_GHCB);
 }
 
 static inline void wr_ghcb_msr(u64 val)
diff --git a/arch/x86/include/asm/mshyperv.h b/arch/x86/include/asm/mshyperv.h
index 15d00dace70f..778444310cfb 100644
--- a/arch/x86/include/asm/mshyperv.h
+++ b/arch/x86/include/asm/mshyperv.h
@@ -305,7 +305,7 @@ void hv_set_non_nested_msr(unsigned int reg, u64 value);
 
 static __always_inline u64 hv_raw_get_msr(unsigned int reg)
 {
-	return __rdmsr(reg);
+	return native_rdmsrq(reg);
 }
 
 #else /* CONFIG_HYPERV */
diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c
index 079ded4eeb86..cefc99990bde 100644
--- a/arch/x86/kernel/cpu/common.c
+++ b/arch/x86/kernel/cpu/common.c
@@ -164,7 +164,7 @@ static void ppin_init(struct cpuinfo_x86 *c)
 
 	/* Is the enable bit set? */
 	if (val & 2UL) {
-		c->ppin = __rdmsr(info->msr_ppin);
+		c->ppin = native_rdmsrq(info->msr_ppin);
 		set_cpu_cap(c, info->feature);
 		return;
 	}
diff --git a/arch/x86/kernel/cpu/mce/core.c b/arch/x86/kernel/cpu/mce/core.c
index 1ae75ec7ac95..32286bad75e6 100644
--- a/arch/x86/kernel/cpu/mce/core.c
+++ b/arch/x86/kernel/cpu/mce/core.c
@@ -121,7 +121,7 @@ void mce_prep_record_common(struct mce *m)
 {
 	m->cpuid	= cpuid_eax(1);
 	m->cpuvendor	= boot_cpu_data.x86_vendor;
-	m->mcgcap	= __rdmsr(MSR_IA32_MCG_CAP);
+	m->mcgcap	= native_rdmsrq(MSR_IA32_MCG_CAP);
 	/* need the internal __ version to avoid deadlocks */
 	m->time		= __ktime_get_real_seconds();
 }
@@ -1298,7 +1298,7 @@ static noinstr bool mce_check_crashing_cpu(void)
 	    (crashing_cpu != -1 && crashing_cpu != cpu)) {
 		u64 mcgstatus;
 
-		mcgstatus = __rdmsr(MSR_IA32_MCG_STATUS);
+		mcgstatus = native_rdmsrq(MSR_IA32_MCG_STATUS);
 
 		if (boot_cpu_data.x86_vendor == X86_VENDOR_ZHAOXIN) {
 			if (mcgstatus & MCG_STATUS_LMCES)
diff --git a/arch/x86/kernel/cpu/resctrl/pseudo_lock.c b/arch/x86/kernel/cpu/resctrl/pseudo_lock.c
index 6e5edd76086e..324bd4919300 100644
--- a/arch/x86/kernel/cpu/resctrl/pseudo_lock.c
+++ b/arch/x86/kernel/cpu/resctrl/pseudo_lock.c
@@ -482,7 +482,7 @@ int resctrl_arch_pseudo_lock_fn(void *_plr)
 	 * the buffer and evict pseudo-locked memory read earlier from the
 	 * cache.
 	 */
-	saved_msr = __rdmsr(MSR_MISC_FEATURE_CONTROL);
+	saved_msr = native_rdmsrq(MSR_MISC_FEATURE_CONTROL);
 	native_wrmsrq(MSR_MISC_FEATURE_CONTROL, prefetch_disable_bits);
 	closid_p = this_cpu_read(pqr_state.cur_closid);
 	rmid_p = this_cpu_read(pqr_state.cur_rmid);
diff --git a/arch/x86/kvm/vmx/vmx.c b/arch/x86/kvm/vmx/vmx.c
index cd0d6c1fcf9c..68c8bb247fc4 100644
--- a/arch/x86/kvm/vmx/vmx.c
+++ b/arch/x86/kvm/vmx/vmx.c
@@ -380,7 +380,7 @@ static __always_inline void vmx_disable_fb_clear(struct vcpu_vmx *vmx)
 	if (!vmx->disable_fb_clear)
 		return;
 
-	msr = __rdmsr(MSR_IA32_MCU_OPT_CTRL);
+	msr = native_rdmsrq(MSR_IA32_MCU_OPT_CTRL);
 	msr |= FB_CLEAR_DIS;
 	native_wrmsrq(MSR_IA32_MCU_OPT_CTRL, msr);
 	/* Cache the MSR value to avoid reading it later */
@@ -7307,7 +7307,7 @@ void noinstr vmx_spec_ctrl_restore_host(struct vcpu_vmx *vmx,
 		return;
 
 	if (flags & VMX_RUN_SAVE_SPEC_CTRL)
-		vmx->spec_ctrl = __rdmsr(MSR_IA32_SPEC_CTRL);
+		vmx->spec_ctrl = native_rdmsrq(MSR_IA32_SPEC_CTRL);
 
 	/*
 	 * If the guest/host SPEC_CTRL values differ, restore the host value.
diff --git a/arch/x86/mm/mem_encrypt_identity.c b/arch/x86/mm/mem_encrypt_identity.c
index afda349db35b..32af1cc378e4 100644
--- a/arch/x86/mm/mem_encrypt_identity.c
+++ b/arch/x86/mm/mem_encrypt_identity.c
@@ -527,7 +527,7 @@ void __head sme_enable(struct boot_params *bp)
 	me_mask = 1UL << (ebx & 0x3f);
 
 	/* Check the SEV MSR whether SEV or SME is enabled */
-	RIP_REL_REF(sev_status) = msr = __rdmsr(MSR_AMD64_SEV);
+	RIP_REL_REF(sev_status) = msr = native_rdmsrq(MSR_AMD64_SEV);
 	feature_mask = (msr & MSR_AMD64_SEV_ENABLED) ? AMD_SEV_BIT : AMD_SME_BIT;
 
 	/*
@@ -558,7 +558,7 @@ void __head sme_enable(struct boot_params *bp)
 			return;
 
 		/* For SME, check the SYSCFG MSR */
-		msr = __rdmsr(MSR_AMD64_SYSCFG);
+		msr = native_rdmsrq(MSR_AMD64_SYSCFG);
 		if (!(msr & MSR_AMD64_SYSCFG_MEM_ENCRYPT))
 			return;
 	}
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Sun Apr 27 09:21:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 27 Apr 2025 09:21:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.969571.1358620 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8yCX-0002aF-5B; Sun, 27 Apr 2025 09:21:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 969571.1358620; Sun, 27 Apr 2025 09: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 1u8yCW-0002WC-V3; Sun, 27 Apr 2025 09:21:28 +0000
Received: by outflank-mailman (input) for mailman id 969571;
 Sun, 27 Apr 2025 09:21: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=uhAA=XN=linux.intel.com=dapeng1.mi@srs-se1.protection.inumbo.net>)
 id 1u8yCU-0001AF-Oa
 for xen-devel@lists.xenproject.org; Sun, 27 Apr 2025 09:21:26 +0000
Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.19])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fae94b65-2348-11f0-9eb3-5ba50f476ded;
 Sun, 27 Apr 2025 11:21:22 +0200 (CEST)
Received: from fmviesa006.fm.intel.com ([10.60.135.146])
 by orvoesa111.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 27 Apr 2025 02:21:20 -0700
Received: from dapengmi-mobl1.ccr.corp.intel.com (HELO [10.124.245.128])
 ([10.124.245.128])
 by fmviesa006-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 27 Apr 2025 02:21:12 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fae94b65-2348-11f0-9eb3-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1745745683; x=1777281683;
  h=message-id:date:mime-version:subject:to:cc:references:
   from:in-reply-to:content-transfer-encoding;
  bh=StjvexCO/8zLImAhby8WhuBY7Msfnw3+TtbfmBdURq4=;
  b=M1hRkHq0gZzpRkJvXbw7OzfYSaTIievLkoTclE9S2i3U/zwT+ebJokEI
   h9/pEX702EFcirSI/yWUIgFHn+Cx8tR5tw4FZ6PFKBXAlr9bxVfsdx6lg
   Um41D2icQI0faEyrmJ6ajLiTRHrzt/pq1dHh0bxQI4xZy3c0uTFfmB4Jh
   10jqXahGbVaCgm2dPFlYncFWFQMtEfpuYSxm31FhWjgL+s2LWNhHRS36a
   1/7MLBB791cBs3Wq1AQIWQr4HF6j0OPP3SFl8ihI3FzTinbIMgcATFSYZ
   CdKq0qwpQDQNF7ewviv8QOjMsqsQi8vJQqn6AOpJgwjeT56yvSJpUvZ/3
   g==;
X-CSE-ConnectionGUID: uj9BaNtdRL6cvZT+VrHw7g==
X-CSE-MsgGUID: R4TRi4O6QlGZE8ttA6XFPQ==
X-IronPort-AV: E=McAfee;i="6700,10204,11415"; a="47236483"
X-IronPort-AV: E=Sophos;i="6.15,243,1739865600"; 
   d="scan'208";a="47236483"
X-CSE-ConnectionGUID: JeWrP7m0Q8KAGkBMWvxeDQ==
X-CSE-MsgGUID: lIrEAOnkShqHlZAf/7h3KA==
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="6.15,243,1739865600"; 
   d="scan'208";a="133151304"
Message-ID: <d2bdd61d-cab6-401f-9b6a-17b28f3cd19c@linux.intel.com>
Date: Sun, 27 Apr 2025 17:21:08 +0800
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 09/14] x86/xen/msr: Remove calling
 native_{read,write}_msr{,_safe}() in pmu_msr_{read,write}()
To: "Xin Li (Intel)" <xin@zytor.com>, linux-kernel@vger.kernel.org,
 kvm@vger.kernel.org, linux-perf-users@vger.kernel.org,
 linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
 linux-pm@vger.kernel.org, linux-edac@vger.kernel.org,
 xen-devel@lists.xenproject.org, linux-acpi@vger.kernel.org,
 linux-hwmon@vger.kernel.org, netdev@vger.kernel.org,
 platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
 dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com, acme@kernel.org,
 jgross@suse.com, andrew.cooper3@citrix.com, peterz@infradead.org,
 namhyung@kernel.org, mark.rutland@arm.com,
 alexander.shishkin@linux.intel.com, jolsa@kernel.org, irogers@google.com,
 adrian.hunter@intel.com, kan.liang@linux.intel.com, wei.liu@kernel.org,
 ajay.kaher@broadcom.com, bcm-kernel-feedback-list@broadcom.com,
 tony.luck@intel.com, pbonzini@redhat.com, vkuznets@redhat.com,
 seanjc@google.com, luto@kernel.org, boris.ostrovsky@oracle.com,
 kys@microsoft.com, haiyangz@microsoft.com, decui@microsoft.com
References: <20250425083442.2390017-1-xin@zytor.com>
 <20250425083442.2390017-10-xin@zytor.com>
Content-Language: en-US
From: "Mi, Dapeng" <dapeng1.mi@linux.intel.com>
In-Reply-To: <20250425083442.2390017-10-xin@zytor.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit


On 4/25/2025 4:34 PM, Xin Li (Intel) wrote:
> hpa found that pmu_msr_write() is actually a completely pointless
> function [1]: all it does is shuffle some arguments, then calls
> pmu_msr_chk_emulated() and if it returns true AND the emulated flag
> is clear then does *exactly the same thing* that the calling code
> would have done if pmu_msr_write() itself had returned true.  And
> pmu_msr_read() does the equivalent stupidity.
>
> Remove the calls to native_{read,write}_msr{,_safe}() within
> pmu_msr_{read,write}().  Instead reuse the existing calling code
> that decides whether to call native_{read,write}_msr{,_safe}() based
> on the return value from pmu_msr_{read,write}().  Consequently,
> eliminate the need to pass an error pointer to pmu_msr_{read,write}().
>
> While at it, refactor pmu_msr_write() to take the MSR value as a u64
> argument, replacing the current dual u32 arguments, because the dual
> u32 arguments were only used to call native_write_msr{,_safe}(), which
> has now been removed.
>
> [1]: https://lore.kernel.org/lkml/0ec48b84-d158-47c6-b14c-3563fd14bcc4@zytor.com/
>
> Suggested-by: H. Peter Anvin (Intel) <hpa@zytor.com>
> Sign-off-by: Xin Li (Intel) <xin@zytor.com>
> ---
>
> Change in v3:
> *) Rename pmu_msr_{read,write}() to pmu_msr_{read,write}_emulated()
>    (Dapeng Mi).
> *) Fix a pmu_msr_read() callsite with wrong arguments (Dapeng Mi).
> ---
>  arch/x86/xen/enlighten_pv.c |  8 ++++++--
>  arch/x86/xen/pmu.c          | 27 ++++-----------------------
>  arch/x86/xen/xen-ops.h      |  4 ++--
>  3 files changed, 12 insertions(+), 27 deletions(-)
>
> diff --git a/arch/x86/xen/enlighten_pv.c b/arch/x86/xen/enlighten_pv.c
> index 846b5737d320..61e51a970f3c 100644
> --- a/arch/x86/xen/enlighten_pv.c
> +++ b/arch/x86/xen/enlighten_pv.c
> @@ -1090,7 +1090,7 @@ static u64 xen_do_read_msr(unsigned int msr, int *err)
>  {
>  	u64 val = 0;	/* Avoid uninitialized value for safe variant. */
>  
> -	if (pmu_msr_read(msr, &val, err))
> +	if (pmu_msr_read_emulated(msr, &val))
>  		return val;
>  
>  	if (err)
> @@ -1132,6 +1132,8 @@ static void set_seg(unsigned int which, unsigned int low, unsigned int high,
>  static void xen_do_write_msr(unsigned int msr, unsigned int low,
>  			     unsigned int high, int *err)
>  {
> +	u64 val;
> +
>  	switch (msr) {
>  	case MSR_FS_BASE:
>  		set_seg(SEGBASE_FS, low, high, err);
> @@ -1158,7 +1160,9 @@ static void xen_do_write_msr(unsigned int msr, unsigned int low,
>  		break;
>  
>  	default:
> -		if (!pmu_msr_write(msr, low, high, err)) {
> +		val = (u64)high << 32 | low;
> +
> +		if (!pmu_msr_write_emulated(msr, val)) {
>  			if (err)
>  				*err = native_write_msr_safe(msr, low, high);
>  			else
> diff --git a/arch/x86/xen/pmu.c b/arch/x86/xen/pmu.c
> index 9c1682af620a..b6557f2d1a2e 100644
> --- a/arch/x86/xen/pmu.c
> +++ b/arch/x86/xen/pmu.c
> @@ -313,37 +313,18 @@ static bool pmu_msr_chk_emulated(unsigned int msr, uint64_t *val, bool is_read,
>  	return true;
>  }
>  
> -bool pmu_msr_read(unsigned int msr, uint64_t *val, int *err)
> +bool pmu_msr_read_emulated(u32 msr, u64 *val)
>  {
>  	bool emulated;
>  
> -	if (!pmu_msr_chk_emulated(msr, val, true, &emulated))
> -		return false;
> -
> -	if (!emulated) {
> -		*val = err ? native_read_msr_safe(msr, err)
> -			   : native_read_msr(msr);
> -	}
> -
> -	return true;
> +	return pmu_msr_chk_emulated(msr, val, true, &emulated) && emulated;
>  }
>  
> -bool pmu_msr_write(unsigned int msr, uint32_t low, uint32_t high, int *err)
> +bool pmu_msr_write_emulated(u32 msr, u64 val)
>  {
> -	uint64_t val = ((uint64_t)high << 32) | low;
>  	bool emulated;
>  
> -	if (!pmu_msr_chk_emulated(msr, &val, false, &emulated))
> -		return false;
> -
> -	if (!emulated) {
> -		if (err)
> -			*err = native_write_msr_safe(msr, low, high);
> -		else
> -			native_write_msr(msr, low, high);
> -	}
> -
> -	return true;
> +	return pmu_msr_chk_emulated(msr, &val, false, &emulated) && emulated;
>  }
>  
>  static u64 xen_amd_read_pmc(int counter)
> diff --git a/arch/x86/xen/xen-ops.h b/arch/x86/xen/xen-ops.h
> index 735f58780704..163e03e33089 100644
> --- a/arch/x86/xen/xen-ops.h
> +++ b/arch/x86/xen/xen-ops.h
> @@ -274,8 +274,8 @@ void xen_pmu_finish(int cpu);
>  static inline void xen_pmu_init(int cpu) {}
>  static inline void xen_pmu_finish(int cpu) {}
>  #endif
> -bool pmu_msr_read(unsigned int msr, uint64_t *val, int *err);
> -bool pmu_msr_write(unsigned int msr, uint32_t low, uint32_t high, int *err);
> +bool pmu_msr_read_emulated(u32 msr, u64 *val);
> +bool pmu_msr_write_emulated(u32 msr, u64 val);
>  int pmu_apic_update(uint32_t reg);
>  u64 xen_read_pmc(int counter);
>  

Reviewed-by: Dapeng Mi <dapeng1.mi@linux.intel.com>




From xen-devel-bounces@lists.xenproject.org Sun Apr 27 09:21:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 27 Apr 2025 09:21:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.969572.1358629 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8yCX-0002hY-Jj; Sun, 27 Apr 2025 09:21:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 969572.1358629; Sun, 27 Apr 2025 09: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 1u8yCX-0002ep-Bp; Sun, 27 Apr 2025 09:21:29 +0000
Received: by outflank-mailman (input) for mailman id 969572;
 Sun, 27 Apr 2025 09: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=hqWD=XN=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u8yCV-0001A9-LF
 for xen-devel@lists.xenproject.org; Sun, 27 Apr 2025 09:21:27 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fd8bdb24-2348-11f0-9ffb-bf95429c2676;
 Sun, 27 Apr 2025 11:21:25 +0200 (CEST)
Received: from terminus.zytor.com (terminus.zytor.com
 [IPv6:2607:7c80:54:3:0:0:0:136]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53R9KRS81598826
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Sun, 27 Apr 2025 02:20:54 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fd8bdb24-2348-11f0-9ffb-bf95429c2676
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53R9KRS81598826
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745745656;
	bh=bzFeWw6MFKyWrGw0/gn3Z8aFXHMt/Uenz11b4dG3MDc=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=Qe7DdUyA6Vfc8M4QRIxa4Z9YkrXEdOqRRWeljkIsdUk3S4jQ0WofjiJl/3JtPZfRa
	 oqYLhNa9F2QGhF74XS4fySVpp8gUtxFi4eGGCFmiLuWoGJTzccCu6vKUJxTqaN1p/9
	 i/ooQbZ0h1EJW57gJwo9FzQk1GNeYSlypakueXANTztoi0o6vItHNEVUV01dWO9Uoa
	 eudFhhaYI3XxIT5LpI91SsbwdMc33b51+WdKFBmbeTLbM2d3b+o0fahMn0n17WD5RG
	 kWY/LYuOeuPBrl8OO2lTxqBNoHq+wD10METAdlfpDLmlGTBeOlSi18XTgg9dWCWVSt
	 ULCokpcBvc9vg==
From: "Xin Li (Intel)" <xin@zytor.com>
To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
        linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
        netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        acme@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com,
        peterz@infradead.org, namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com,
        dapeng1.mi@linux.intel.com, ilpo.jarvinen@linux.intel.com
Subject: [PATCH v4 11/15] x86/xen/msr: Remove pmu_msr_{read,write}()
Date: Sun, 27 Apr 2025 02:20:23 -0700
Message-ID: <20250427092027.1598740-12-xin@zytor.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250427092027.1598740-1-xin@zytor.com>
References: <20250427092027.1598740-1-xin@zytor.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

As pmu_msr_{read,write}() are now wrappers of pmu_msr_chk_emulated(),
remove them and use pmu_msr_chk_emulated() directly.

As pmu_msr_chk_emulated() could easily return false in the cases where
it would set *emul to false, remove the "emul" argument and use the
return value instead.

While at it, convert the data type of MSR index to u32 in functions
called in pmu_msr_chk_emulated().

Suggested-by: H. Peter Anvin (Intel) <hpa@zytor.com>
Suggested-by: Juergen Gross <jgross@suse.com>
Signed-off-by: Xin Li (Intel) <xin@zytor.com>
Reviewed-by: Juergen Gross <jgross@suse.com>
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
---

Change in v4:
*) Remove two "else" that no longer make sense (Juergen Gross).

Change in v3:
*) Remove the "emul" argument of pmu_msr_chk_emulated() (Juergen Gross).
---
 arch/x86/xen/enlighten_pv.c | 15 ++++++++-------
 arch/x86/xen/pmu.c          | 33 ++++++++-------------------------
 arch/x86/xen/xen-ops.h      |  3 +--
 3 files changed, 17 insertions(+), 34 deletions(-)

diff --git a/arch/x86/xen/enlighten_pv.c b/arch/x86/xen/enlighten_pv.c
index 61e51a970f3c..528a2f4df050 100644
--- a/arch/x86/xen/enlighten_pv.c
+++ b/arch/x86/xen/enlighten_pv.c
@@ -1090,7 +1090,7 @@ static u64 xen_do_read_msr(unsigned int msr, int *err)
 {
 	u64 val = 0;	/* Avoid uninitialized value for safe variant. */
 
-	if (pmu_msr_read_emulated(msr, &val))
+	if (pmu_msr_chk_emulated(msr, &val, true))
 		return val;
 
 	if (err)
@@ -1162,12 +1162,13 @@ static void xen_do_write_msr(unsigned int msr, unsigned int low,
 	default:
 		val = (u64)high << 32 | low;
 
-		if (!pmu_msr_write_emulated(msr, val)) {
-			if (err)
-				*err = native_write_msr_safe(msr, low, high);
-			else
-				native_write_msr(msr, low, high);
-		}
+		if (pmu_msr_chk_emulated(msr, &val, false))
+			return;
+
+		if (err)
+			*err = native_write_msr_safe(msr, low, high);
+		else
+			native_write_msr(msr, low, high);
 	}
 }
 
diff --git a/arch/x86/xen/pmu.c b/arch/x86/xen/pmu.c
index b6557f2d1a2e..5f3d2a6c70f1 100644
--- a/arch/x86/xen/pmu.c
+++ b/arch/x86/xen/pmu.c
@@ -128,7 +128,7 @@ static inline uint32_t get_fam15h_addr(u32 addr)
 	return addr;
 }
 
-static inline bool is_amd_pmu_msr(unsigned int msr)
+static bool is_amd_pmu_msr(u32 msr)
 {
 	if (boot_cpu_data.x86_vendor != X86_VENDOR_AMD &&
 	    boot_cpu_data.x86_vendor != X86_VENDOR_HYGON)
@@ -194,8 +194,7 @@ static bool is_intel_pmu_msr(u32 msr_index, int *type, int *index)
 	}
 }
 
-static bool xen_intel_pmu_emulate(unsigned int msr, u64 *val, int type,
-				  int index, bool is_read)
+static bool xen_intel_pmu_emulate(u32 msr, u64 *val, int type, int index, bool is_read)
 {
 	uint64_t *reg = NULL;
 	struct xen_pmu_intel_ctxt *ctxt;
@@ -257,7 +256,7 @@ static bool xen_intel_pmu_emulate(unsigned int msr, u64 *val, int type,
 	return false;
 }
 
-static bool xen_amd_pmu_emulate(unsigned int msr, u64 *val, bool is_read)
+static bool xen_amd_pmu_emulate(u32 msr, u64 *val, bool is_read)
 {
 	uint64_t *reg = NULL;
 	int i, off = 0;
@@ -298,33 +297,17 @@ static bool xen_amd_pmu_emulate(unsigned int msr, u64 *val, bool is_read)
 	return false;
 }
 
-static bool pmu_msr_chk_emulated(unsigned int msr, uint64_t *val, bool is_read,
-				 bool *emul)
+bool pmu_msr_chk_emulated(u32 msr, u64 *val, bool is_read)
 {
 	int type, index = 0;
 
 	if (is_amd_pmu_msr(msr))
-		*emul = xen_amd_pmu_emulate(msr, val, is_read);
-	else if (is_intel_pmu_msr(msr, &type, &index))
-		*emul = xen_intel_pmu_emulate(msr, val, type, index, is_read);
-	else
-		return false;
-
-	return true;
-}
-
-bool pmu_msr_read_emulated(u32 msr, u64 *val)
-{
-	bool emulated;
+		return xen_amd_pmu_emulate(msr, val, is_read);
 
-	return pmu_msr_chk_emulated(msr, val, true, &emulated) && emulated;
-}
+	if (is_intel_pmu_msr(msr, &type, &index))
+		return xen_intel_pmu_emulate(msr, val, type, index, is_read);
 
-bool pmu_msr_write_emulated(u32 msr, u64 val)
-{
-	bool emulated;
-
-	return pmu_msr_chk_emulated(msr, &val, false, &emulated) && emulated;
+	return false;
 }
 
 static u64 xen_amd_read_pmc(int counter)
diff --git a/arch/x86/xen/xen-ops.h b/arch/x86/xen/xen-ops.h
index 163e03e33089..fd7f845b83a3 100644
--- a/arch/x86/xen/xen-ops.h
+++ b/arch/x86/xen/xen-ops.h
@@ -274,8 +274,7 @@ void xen_pmu_finish(int cpu);
 static inline void xen_pmu_init(int cpu) {}
 static inline void xen_pmu_finish(int cpu) {}
 #endif
-bool pmu_msr_read_emulated(u32 msr, u64 *val);
-bool pmu_msr_write_emulated(u32 msr, u64 val);
+bool pmu_msr_chk_emulated(u32 msr, u64 *val, bool is_read);
 int pmu_apic_update(uint32_t reg);
 u64 xen_read_pmc(int counter);
 
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Sun Apr 27 09:21:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 27 Apr 2025 09:21:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.969569.1358591 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8yCV-0001hK-0x; Sun, 27 Apr 2025 09:21:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 969569.1358591; Sun, 27 Apr 2025 09: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 1u8yCU-0001da-MU; Sun, 27 Apr 2025 09:21:26 +0000
Received: by outflank-mailman (input) for mailman id 969569;
 Sun, 27 Apr 2025 09: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=hqWD=XN=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u8yCT-0001AF-OO
 for xen-devel@lists.xenproject.org; Sun, 27 Apr 2025 09:21:25 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fbeb6156-2348-11f0-9eb3-5ba50f476ded;
 Sun, 27 Apr 2025 11:21:23 +0200 (CEST)
Received: from terminus.zytor.com (terminus.zytor.com
 [IPv6:2607:7c80:54:3:0:0:0:136]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53R9KRS41598826
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Sun, 27 Apr 2025 02:20:46 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fbeb6156-2348-11f0-9eb3-5ba50f476ded
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53R9KRS41598826
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745745648;
	bh=JLxtRAmbQOgcf+M8hxrL2QlzJtGODft8UGEAzChuz28=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=fwYDpBGxLzic3FzktMZu088OT7qviO5RyC/sSXV9swDqg9u0JnEOY6gP9xd27UU6L
	 8fjDXB/+sr13tTQBMtui/nKBSyh6LgBbxNYR41Y0kmejN7K8U19iykP1H4HvDWR1bW
	 HUhr2EGWiPELwFcI2i3+QEGYcX80J7gG6IDB/sJ5cbtNqeVgoUpJwybjbmkTu8wY57
	 ATV4buqAHapa7PAYwwE1VPp+KBAPgwpY71DARYvEe+pKfgx6w7AMZwidH+QawtvXLs
	 3yVR2UkuiKUkY1pokl/y47pYxIH+lehWKhSxIjy8JXZM/lNvbWm317ieXxVArTA9UX
	 1n78tWsCn26Ww==
From: "Xin Li (Intel)" <xin@zytor.com>
To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
        linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
        netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        acme@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com,
        peterz@infradead.org, namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com,
        dapeng1.mi@linux.intel.com, ilpo.jarvinen@linux.intel.com
Subject: [PATCH v4 07/15] x86/msr: Convert __wrmsr() uses to native_wrmsr{,q}() uses
Date: Sun, 27 Apr 2025 02:20:19 -0700
Message-ID: <20250427092027.1598740-8-xin@zytor.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250427092027.1598740-1-xin@zytor.com>
References: <20250427092027.1598740-1-xin@zytor.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

__wrmsr() is the lowest level MSR write API, with native_wrmsr()
and native_wrmsrq() serving as higher-level wrappers around it:

  #define native_wrmsr(msr, low, high)                    \
          __wrmsr(msr, low, high)

  #define native_wrmsrl(msr, val)                         \
          __wrmsr((msr), (u32)((u64)(val)),               \
                         (u32)((u64)(val) >> 32))

However, __wrmsr() continues to be utilized in various locations.

MSR APIs are designed for different scenarios, such as native or
pvops, with or without trace, and safe or non-safe.  Unfortunately,
the current MSR API names do not adequately reflect these factors,
making it challenging to select the most appropriate API for
various situations.

To pave the way for improving MSR API names, convert __wrmsr()
uses to native_wrmsr{,q}() to ensure consistent usage.  Later,
these APIs can be renamed to better reflect their implications,
such as native or pvops, with or without trace, and safe or
non-safe.

No functional change intended.

Signed-off-by: Xin Li (Intel) <xin@zytor.com>
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
---

Change in v2:
* Use native_wrmsr() where natural [rmid_p, closid_p] high/lo parameters
  can be used, without the shift-uglification (Ingo).
---
 arch/x86/events/amd/brs.c                 | 2 +-
 arch/x86/include/asm/apic.h               | 2 +-
 arch/x86/include/asm/msr.h                | 6 ++++--
 arch/x86/kernel/cpu/mce/core.c            | 2 +-
 arch/x86/kernel/cpu/resctrl/pseudo_lock.c | 6 +++---
 5 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/arch/x86/events/amd/brs.c b/arch/x86/events/amd/brs.c
index ec4e8a4cace4..3f5ecfd80d1e 100644
--- a/arch/x86/events/amd/brs.c
+++ b/arch/x86/events/amd/brs.c
@@ -44,7 +44,7 @@ static inline unsigned int brs_to(int idx)
 static __always_inline void set_debug_extn_cfg(u64 val)
 {
 	/* bits[4:3] must always be set to 11b */
-	__wrmsr(MSR_AMD_DBG_EXTN_CFG, val | 3ULL << 3, val >> 32);
+	native_wrmsrq(MSR_AMD_DBG_EXTN_CFG, val | 3ULL << 3);
 }
 
 static __always_inline u64 get_debug_extn_cfg(void)
diff --git a/arch/x86/include/asm/apic.h b/arch/x86/include/asm/apic.h
index 1c136f54651c..0174dd548327 100644
--- a/arch/x86/include/asm/apic.h
+++ b/arch/x86/include/asm/apic.h
@@ -214,7 +214,7 @@ static inline void native_apic_msr_write(u32 reg, u32 v)
 
 static inline void native_apic_msr_eoi(void)
 {
-	__wrmsr(APIC_BASE_MSR + (APIC_EOI >> 4), APIC_EOI_ACK, 0);
+	native_wrmsrq(APIC_BASE_MSR + (APIC_EOI >> 4), APIC_EOI_ACK);
 }
 
 static inline u32 native_apic_msr_read(u32 reg)
diff --git a/arch/x86/include/asm/msr.h b/arch/x86/include/asm/msr.h
index 73d44081e597..82a908125b20 100644
--- a/arch/x86/include/asm/msr.h
+++ b/arch/x86/include/asm/msr.h
@@ -144,10 +144,12 @@ static inline u64 native_read_msr_safe(u32 msr, int *err)
 static inline void notrace
 native_write_msr(u32 msr, u32 low, u32 high)
 {
-	__wrmsr(msr, low, high);
+	u64 val = (u64)high << 32 | low;
+
+	native_wrmsrq(msr, val);
 
 	if (tracepoint_enabled(write_msr))
-		do_trace_write_msr(msr, ((u64)high << 32 | low), 0);
+		do_trace_write_msr(msr, val, 0);
 }
 
 /* Can be uninlined because referenced by paravirt */
diff --git a/arch/x86/kernel/cpu/mce/core.c b/arch/x86/kernel/cpu/mce/core.c
index 255927f0284e..1ae75ec7ac95 100644
--- a/arch/x86/kernel/cpu/mce/core.c
+++ b/arch/x86/kernel/cpu/mce/core.c
@@ -1306,7 +1306,7 @@ static noinstr bool mce_check_crashing_cpu(void)
 		}
 
 		if (mcgstatus & MCG_STATUS_RIPV) {
-			__wrmsr(MSR_IA32_MCG_STATUS, 0, 0);
+			native_wrmsrq(MSR_IA32_MCG_STATUS, 0);
 			return true;
 		}
 	}
diff --git a/arch/x86/kernel/cpu/resctrl/pseudo_lock.c b/arch/x86/kernel/cpu/resctrl/pseudo_lock.c
index 61d762555a79..6e5edd76086e 100644
--- a/arch/x86/kernel/cpu/resctrl/pseudo_lock.c
+++ b/arch/x86/kernel/cpu/resctrl/pseudo_lock.c
@@ -483,7 +483,7 @@ int resctrl_arch_pseudo_lock_fn(void *_plr)
 	 * cache.
 	 */
 	saved_msr = __rdmsr(MSR_MISC_FEATURE_CONTROL);
-	__wrmsr(MSR_MISC_FEATURE_CONTROL, prefetch_disable_bits, 0x0);
+	native_wrmsrq(MSR_MISC_FEATURE_CONTROL, prefetch_disable_bits);
 	closid_p = this_cpu_read(pqr_state.cur_closid);
 	rmid_p = this_cpu_read(pqr_state.cur_rmid);
 	mem_r = plr->kmem;
@@ -495,7 +495,7 @@ int resctrl_arch_pseudo_lock_fn(void *_plr)
 	 * pseudo-locked followed by reading of kernel memory to load it
 	 * into the cache.
 	 */
-	__wrmsr(MSR_IA32_PQR_ASSOC, rmid_p, plr->closid);
+	native_wrmsr(MSR_IA32_PQR_ASSOC, rmid_p, plr->closid);
 
 	/*
 	 * Cache was flushed earlier. Now access kernel memory to read it
@@ -532,7 +532,7 @@ int resctrl_arch_pseudo_lock_fn(void *_plr)
 	 * Critical section end: restore closid with capacity bitmask that
 	 * does not overlap with pseudo-locked region.
 	 */
-	__wrmsr(MSR_IA32_PQR_ASSOC, rmid_p, closid_p);
+	native_wrmsr(MSR_IA32_PQR_ASSOC, rmid_p, closid_p);
 
 	/* Re-enable the hardware prefetcher(s) */
 	wrmsrq(MSR_MISC_FEATURE_CONTROL, saved_msr);
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Sun Apr 27 09:21:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 27 Apr 2025 09:21:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.969567.1358579 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8yCU-0001Wq-EV; Sun, 27 Apr 2025 09:21:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 969567.1358579; Sun, 27 Apr 2025 09: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 1u8yCU-0001WL-7C; Sun, 27 Apr 2025 09:21:26 +0000
Received: by outflank-mailman (input) for mailman id 969567;
 Sun, 27 Apr 2025 09:21: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=hqWD=XN=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u8yCS-0001AF-OD
 for xen-devel@lists.xenproject.org; Sun, 27 Apr 2025 09:21:24 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fba69b1f-2348-11f0-9eb3-5ba50f476ded;
 Sun, 27 Apr 2025 11:21:22 +0200 (CEST)
Received: from terminus.zytor.com (terminus.zytor.com
 [IPv6:2607:7c80:54:3:0:0:0:136]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53R9KRS51598826
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Sun, 27 Apr 2025 02:20:48 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fba69b1f-2348-11f0-9eb3-5ba50f476ded
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53R9KRS51598826
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745745650;
	bh=Q9XVA2K/egT5rZBfVl63vVsaOIZf5aipFdvtobDcRfs=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=bC4rbd7Npt7uDPmLVAKvBmhK1SCPwNpnLTKiOwjeGhHnyAqix5yVkujXTOYSzhZlP
	 Qa54MsXV4KcT+UO/N0QhG5hy3b0J5d5R5QxcqjyVwoMDHWtMdQn2ttJP8YmQh7VshF
	 3oQAKAsKDIXpB7GJMY3+FP9gLC/a19jdYBy79f05LcgZQVAXCGzyH5Yk77DpdlqGsL
	 nb6GSt5+tZnG8d+dt0dPnh8GenMjTVEwbkSvLAGCB5G2b2WoFkDaOtBhXeHJUKZQX1
	 305LkAPpecGgDlM537MTZw+9m8iydr1ypLK50jyconDOSeu4PmadoQkIcJl4K7DAJ3
	 CbtsF1L9GUAFA==
From: "Xin Li (Intel)" <xin@zytor.com>
To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
        linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
        netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        acme@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com,
        peterz@infradead.org, namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com,
        dapeng1.mi@linux.intel.com, ilpo.jarvinen@linux.intel.com
Subject: [PATCH v4 08/15] x86/msr: Add the native_rdmsrq() helper
Date: Sun, 27 Apr 2025 02:20:20 -0700
Message-ID: <20250427092027.1598740-9-xin@zytor.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250427092027.1598740-1-xin@zytor.com>
References: <20250427092027.1598740-1-xin@zytor.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

__rdmsr() is the lowest-level primitive MSR read API, implemented in
assembly code and returning an MSR value in a u64 integer, on top of
which a convenience wrapper native_rdmsr() is defined to return an MSR
value in two u32 integers.  For some reason, native_rdmsrq() is not
defined and __rdmsr() is directly used when it needs to return an MSR
value in a u64 integer.

Add the native_rdmsrq() helper, which is simply an alias of __rdmsr(),
to make native_rdmsr() and native_rdmsrq() a pair of MSR read APIs.

Signed-off-by: Xin Li (Intel) <xin@zytor.com>
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
---

Change in v2:
* Split into two changes and add the native_rdmsrl() helper in the
  first one with a proper explanation (Ingo).
---
 arch/x86/include/asm/msr.h | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/arch/x86/include/asm/msr.h b/arch/x86/include/asm/msr.h
index 82a908125b20..7b9713a49d59 100644
--- a/arch/x86/include/asm/msr.h
+++ b/arch/x86/include/asm/msr.h
@@ -107,6 +107,11 @@ do {							\
 	(void)((val2) = (u32)(__val >> 32));		\
 } while (0)
 
+static __always_inline u64 native_rdmsrq(u32 msr)
+{
+	return __rdmsr(msr);
+}
+
 #define native_wrmsr(msr, low, high)			\
 	__wrmsr(msr, low, high)
 
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Sun Apr 27 09:21:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 27 Apr 2025 09:21:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.969574.1358643 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8yCY-0002ty-PF; Sun, 27 Apr 2025 09:21:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 969574.1358643; Sun, 27 Apr 2025 09:21: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 1u8yCY-0002s7-5B; Sun, 27 Apr 2025 09:21:30 +0000
Received: by outflank-mailman (input) for mailman id 969574;
 Sun, 27 Apr 2025 09:21: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=hqWD=XN=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u8yCW-0001A9-AC
 for xen-devel@lists.xenproject.org; Sun, 27 Apr 2025 09:21:28 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fdeccf77-2348-11f0-9ffb-bf95429c2676;
 Sun, 27 Apr 2025 11:21:26 +0200 (CEST)
Received: from terminus.zytor.com (terminus.zytor.com
 [IPv6:2607:7c80:54:3:0:0:0:136]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53R9KRSA1598826
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Sun, 27 Apr 2025 02:20:59 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fdeccf77-2348-11f0-9ffb-bf95429c2676
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53R9KRSA1598826
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745745661;
	bh=xSwvXgDX6OxaNo/5zNBmXsRwQ/88eQ44kA7lem5A6dQ=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=D0JUbxQQdbZCNLX3OKQu8A6eB6OZaD+NW2/MquqPBPq0nySaKbBd5haWdeFwCjcbL
	 48nG/DeH0VR6tg3lfosGvNIIZnow1Qc7IbkQZGYWFBtKkzmVdidOPgmlRnROE/OKP8
	 J1Skm6wu/LBIeAtXycYnjcj6fGliv6eMIGxXoz5gy8tT/ncdqThWrv/95hhjY7HSD9
	 kBT2J4VNQ0ZrdHTfRlTxtDrZzHu0mOdaF2diRqVWnAD9CdLLQ60qpzCLTAWM7EoWtV
	 Aj+H1l+tc2HfB2gaOXvcpVAY35MnutPbbZHkO1HCI/I9O6M6r50n8XkoDdMmZBnCYU
	 9cvpSWeBC7LyQ==
From: "Xin Li (Intel)" <xin@zytor.com>
To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
        linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
        netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        acme@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com,
        peterz@infradead.org, namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com,
        dapeng1.mi@linux.intel.com, ilpo.jarvinen@linux.intel.com
Subject: [PATCH v4 13/15] x86/pvops/msr: refactor pv_cpu_ops.write_msr{,_safe}()
Date: Sun, 27 Apr 2025 02:20:25 -0700
Message-ID: <20250427092027.1598740-14-xin@zytor.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250427092027.1598740-1-xin@zytor.com>
References: <20250427092027.1598740-1-xin@zytor.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

An MSR value is represented as a 64-bit unsigned integer, with existing
MSR instructions storing it in EDX:EAX as two 32-bit segments.

The new immediate form MSR instructions, however, utilize a 64-bit
general-purpose register to store the MSR value.  To unify the usage of
all MSR instructions, let the default MSR access APIs accept an MSR
value as a single 64-bit argument instead of two 32-bit segments.

The dual 32-bit APIs are still available as convenient wrappers over the
APIs that handle an MSR value as a single 64-bit argument.

The following illustrates the updated derivation of the MSR write APIs:

                 __wrmsrq(u32 msr, u64 val)
                   /                  \
                  /                    \
           native_wrmsrq(msr, val)    native_wrmsr(msr, low, high)
                 |
                 |
           native_write_msr(msr, val)
                /          \
               /            \
       wrmsrq(msr, val)    wrmsr(msr, low, high)

When CONFIG_PARAVIRT is enabled, wrmsrq() and wrmsr() are defined on top
of paravirt_write_msr():

            paravirt_write_msr(u32 msr, u64 val)
               /             \
              /               \
          wrmsrq(msr, val)    wrmsr(msr, low, high)

paravirt_write_msr() invokes cpu.write_msr(msr, val), an indirect layer
of pv_ops MSR write call:

    If on native:

            cpu.write_msr = native_write_msr

    If on Xen:

            cpu.write_msr = xen_write_msr

Therefore, refactor pv_cpu_ops.write_msr{_safe}() to accept an MSR value
in a single u64 argument, replacing the current dual u32 arguments.

No functional change intended.

Signed-off-by: Xin Li (Intel) <xin@zytor.com>
Reviewed-by: Juergen Gross <jgross@suse.com>
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
---

Change in v2:
* Spell out the reason why use a single u64 argument to pass the MSR
  value in the lowest level APIs (Andrew Cooper).
---
 arch/x86/include/asm/msr.h            | 35 ++++++++++++---------------
 arch/x86/include/asm/paravirt.h       | 27 +++++++++++----------
 arch/x86/include/asm/paravirt_types.h |  4 +--
 arch/x86/kernel/kvmclock.c            |  2 +-
 arch/x86/kvm/svm/svm.c                | 15 +++---------
 arch/x86/xen/enlighten_pv.c           | 30 +++++++++--------------
 6 files changed, 46 insertions(+), 67 deletions(-)

diff --git a/arch/x86/include/asm/msr.h b/arch/x86/include/asm/msr.h
index 7b9713a49d59..0392b9596107 100644
--- a/arch/x86/include/asm/msr.h
+++ b/arch/x86/include/asm/msr.h
@@ -92,12 +92,12 @@ static __always_inline u64 __rdmsr(u32 msr)
 	return EAX_EDX_VAL(val, low, high);
 }
 
-static __always_inline void __wrmsr(u32 msr, u32 low, u32 high)
+static __always_inline void __wrmsrq(u32 msr, u64 val)
 {
 	asm volatile("1: wrmsr\n"
 		     "2:\n"
 		     _ASM_EXTABLE_TYPE(1b, 2b, EX_TYPE_WRMSR)
-		     : : "c" (msr), "a"(low), "d" (high) : "memory");
+		     : : "c" (msr), "a" ((u32)val), "d" ((u32)(val >> 32)) : "memory");
 }
 
 #define native_rdmsr(msr, val1, val2)			\
@@ -113,11 +113,10 @@ static __always_inline u64 native_rdmsrq(u32 msr)
 }
 
 #define native_wrmsr(msr, low, high)			\
-	__wrmsr(msr, low, high)
+	__wrmsrq((msr), (u64)(high) << 32 | (low))
 
 #define native_wrmsrq(msr, val)				\
-	__wrmsr((msr), (u32)((u64)(val)),		\
-		       (u32)((u64)(val) >> 32))
+	__wrmsrq((msr), (val))
 
 static inline u64 native_read_msr(u32 msr)
 {
@@ -146,11 +145,8 @@ static inline u64 native_read_msr_safe(u32 msr, int *err)
 }
 
 /* Can be uninlined because referenced by paravirt */
-static inline void notrace
-native_write_msr(u32 msr, u32 low, u32 high)
+static inline void notrace native_write_msr(u32 msr, u64 val)
 {
-	u64 val = (u64)high << 32 | low;
-
 	native_wrmsrq(msr, val);
 
 	if (tracepoint_enabled(write_msr))
@@ -158,8 +154,7 @@ native_write_msr(u32 msr, u32 low, u32 high)
 }
 
 /* Can be uninlined because referenced by paravirt */
-static inline int notrace
-native_write_msr_safe(u32 msr, u32 low, u32 high)
+static inline int notrace native_write_msr_safe(u32 msr, u64 val)
 {
 	int err;
 
@@ -167,10 +162,10 @@ native_write_msr_safe(u32 msr, u32 low, u32 high)
 		     "2:\n\t"
 		     _ASM_EXTABLE_TYPE_REG(1b, 2b, EX_TYPE_WRMSR_SAFE, %[err])
 		     : [err] "=a" (err)
-		     : "c" (msr), "0" (low), "d" (high)
+		     : "c" (msr), "0" ((u32)val), "d" ((u32)(val >> 32))
 		     : "memory");
 	if (tracepoint_enabled(write_msr))
-		do_trace_write_msr(msr, ((u64)high << 32 | low), err);
+		do_trace_write_msr(msr, val, err);
 	return err;
 }
 
@@ -206,7 +201,7 @@ do {								\
 
 static inline void wrmsr(u32 msr, u32 low, u32 high)
 {
-	native_write_msr(msr, low, high);
+	native_write_msr(msr, (u64)high << 32 | low);
 }
 
 #define rdmsrq(msr, val)			\
@@ -214,13 +209,13 @@ static inline void wrmsr(u32 msr, u32 low, u32 high)
 
 static inline void wrmsrq(u32 msr, u64 val)
 {
-	native_write_msr(msr, (u32)(val & 0xffffffffULL), (u32)(val >> 32));
+	native_write_msr(msr, val);
 }
 
 /* wrmsr with exception handling */
-static inline int wrmsr_safe(u32 msr, u32 low, u32 high)
+static inline int wrmsrq_safe(u32 msr, u64 val)
 {
-	return native_write_msr_safe(msr, low, high);
+	return native_write_msr_safe(msr, val);
 }
 
 /* rdmsr with exception handling */
@@ -264,11 +259,11 @@ static __always_inline void wrmsrns(u32 msr, u64 val)
 }
 
 /*
- * 64-bit version of wrmsr_safe():
+ * Dual u32 version of wrmsrq_safe():
  */
-static inline int wrmsrq_safe(u32 msr, u64 val)
+static inline int wrmsr_safe(u32 msr, u32 low, u32 high)
 {
-	return wrmsr_safe(msr, (u32)val,  (u32)(val >> 32));
+	return wrmsrq_safe(msr, (u64)high << 32 | low);
 }
 
 struct msr __percpu *msrs_alloc(void);
diff --git a/arch/x86/include/asm/paravirt.h b/arch/x86/include/asm/paravirt.h
index f272c4bd3d5b..edf23bde367e 100644
--- a/arch/x86/include/asm/paravirt.h
+++ b/arch/x86/include/asm/paravirt.h
@@ -180,10 +180,9 @@ static inline u64 paravirt_read_msr(unsigned msr)
 	return PVOP_CALL1(u64, cpu.read_msr, msr);
 }
 
-static inline void paravirt_write_msr(unsigned msr,
-				      unsigned low, unsigned high)
+static inline void paravirt_write_msr(u32 msr, u64 val)
 {
-	PVOP_VCALL3(cpu.write_msr, msr, low, high);
+	PVOP_VCALL2(cpu.write_msr, msr, val);
 }
 
 static inline u64 paravirt_read_msr_safe(unsigned msr, int *err)
@@ -191,10 +190,9 @@ static inline u64 paravirt_read_msr_safe(unsigned msr, int *err)
 	return PVOP_CALL2(u64, cpu.read_msr_safe, msr, err);
 }
 
-static inline int paravirt_write_msr_safe(unsigned msr,
-					  unsigned low, unsigned high)
+static inline int paravirt_write_msr_safe(u32 msr, u64 val)
 {
-	return PVOP_CALL3(int, cpu.write_msr_safe, msr, low, high);
+	return PVOP_CALL2(int, cpu.write_msr_safe, msr, val);
 }
 
 #define rdmsr(msr, val1, val2)			\
@@ -204,22 +202,25 @@ do {						\
 	val2 = _l >> 32;			\
 } while (0)
 
-#define wrmsr(msr, val1, val2)			\
-do {						\
-	paravirt_write_msr(msr, val1, val2);	\
-} while (0)
+static __always_inline void wrmsr(u32 msr, u32 low, u32 high)
+{
+	paravirt_write_msr(msr, (u64)high << 32 | low);
+}
 
 #define rdmsrq(msr, val)			\
 do {						\
 	val = paravirt_read_msr(msr);		\
 } while (0)
 
-static inline void wrmsrq(unsigned msr, u64 val)
+static inline void wrmsrq(u32 msr, u64 val)
 {
-	wrmsr(msr, (u32)val, (u32)(val>>32));
+	paravirt_write_msr(msr, val);
 }
 
-#define wrmsr_safe(msr, a, b)	paravirt_write_msr_safe(msr, a, b)
+static inline int wrmsrq_safe(u32 msr, u64 val)
+{
+	return paravirt_write_msr_safe(msr, val);
+}
 
 /* rdmsr with exception handling */
 #define rdmsr_safe(msr, a, b)				\
diff --git a/arch/x86/include/asm/paravirt_types.h b/arch/x86/include/asm/paravirt_types.h
index 631c306ce1ff..78777b78da12 100644
--- a/arch/x86/include/asm/paravirt_types.h
+++ b/arch/x86/include/asm/paravirt_types.h
@@ -92,14 +92,14 @@ struct pv_cpu_ops {
 
 	/* Unsafe MSR operations.  These will warn or panic on failure. */
 	u64 (*read_msr)(unsigned int msr);
-	void (*write_msr)(unsigned int msr, unsigned low, unsigned high);
+	void (*write_msr)(u32 msr, u64 val);
 
 	/*
 	 * Safe MSR operations.
 	 * read sets err to 0 or -EIO.  write returns 0 or -EIO.
 	 */
 	u64 (*read_msr_safe)(unsigned int msr, int *err);
-	int (*write_msr_safe)(unsigned int msr, unsigned low, unsigned high);
+	int (*write_msr_safe)(u32 msr, u64 val);
 
 	u64 (*read_pmc)(int counter);
 
diff --git a/arch/x86/kernel/kvmclock.c b/arch/x86/kernel/kvmclock.c
index 0af797930ccb..ca0a49eeac4a 100644
--- a/arch/x86/kernel/kvmclock.c
+++ b/arch/x86/kernel/kvmclock.c
@@ -196,7 +196,7 @@ static void kvm_setup_secondary_clock(void)
 void kvmclock_disable(void)
 {
 	if (msr_kvm_system_time)
-		native_write_msr(msr_kvm_system_time, 0, 0);
+		native_write_msr(msr_kvm_system_time, 0);
 }
 
 static void __init kvmclock_init_mem(void)
diff --git a/arch/x86/kvm/svm/svm.c b/arch/x86/kvm/svm/svm.c
index 67657b3a36ce..4ef9978dce70 100644
--- a/arch/x86/kvm/svm/svm.c
+++ b/arch/x86/kvm/svm/svm.c
@@ -475,7 +475,6 @@ static void svm_inject_exception(struct kvm_vcpu *vcpu)
 
 static void svm_init_erratum_383(void)
 {
-	u32 low, high;
 	int err;
 	u64 val;
 
@@ -489,10 +488,7 @@ static void svm_init_erratum_383(void)
 
 	val |= (1ULL << 47);
 
-	low  = lower_32_bits(val);
-	high = upper_32_bits(val);
-
-	native_write_msr_safe(MSR_AMD64_DC_CFG, low, high);
+	native_write_msr_safe(MSR_AMD64_DC_CFG, val);
 
 	erratum_383_found = true;
 }
@@ -2167,17 +2163,12 @@ static bool is_erratum_383(void)
 
 	/* Clear MCi_STATUS registers */
 	for (i = 0; i < 6; ++i)
-		native_write_msr_safe(MSR_IA32_MCx_STATUS(i), 0, 0);
+		native_write_msr_safe(MSR_IA32_MCx_STATUS(i), 0);
 
 	value = native_read_msr_safe(MSR_IA32_MCG_STATUS, &err);
 	if (!err) {
-		u32 low, high;
-
 		value &= ~(1ULL << 2);
-		low    = lower_32_bits(value);
-		high   = upper_32_bits(value);
-
-		native_write_msr_safe(MSR_IA32_MCG_STATUS, low, high);
+		native_write_msr_safe(MSR_IA32_MCG_STATUS, value);
 	}
 
 	/* Flush tlb to evict multi-match entries */
diff --git a/arch/x86/xen/enlighten_pv.c b/arch/x86/xen/enlighten_pv.c
index c247e7689bc3..c067d1e8a39c 100644
--- a/arch/x86/xen/enlighten_pv.c
+++ b/arch/x86/xen/enlighten_pv.c
@@ -1110,10 +1110,8 @@ static u64 xen_do_read_msr(unsigned int msr, int *err)
 	return val;
 }
 
-static void set_seg(u32 which, u32 low, u32 high)
+static void set_seg(u32 which, u64 base)
 {
-	u64 base = ((u64)high << 32) | low;
-
 	if (HYPERVISOR_set_segment_base(which, base))
 		WARN(1, "Xen set_segment_base(%u, %llx) failed\n", which, base);
 }
@@ -1123,22 +1121,19 @@ static void set_seg(u32 which, u32 low, u32 high)
  * With err == NULL write_msr() semantics are selected.
  * Supplying an err pointer requires err to be pre-initialized with 0.
  */
-static void xen_do_write_msr(unsigned int msr, unsigned int low,
-			     unsigned int high, int *err)
+static void xen_do_write_msr(u32 msr, u64 val, int *err)
 {
-	u64 val;
-
 	switch (msr) {
 	case MSR_FS_BASE:
-		set_seg(SEGBASE_FS, low, high);
+		set_seg(SEGBASE_FS, val);
 		break;
 
 	case MSR_KERNEL_GS_BASE:
-		set_seg(SEGBASE_GS_USER, low, high);
+		set_seg(SEGBASE_GS_USER, val);
 		break;
 
 	case MSR_GS_BASE:
-		set_seg(SEGBASE_GS_KERNEL, low, high);
+		set_seg(SEGBASE_GS_KERNEL, val);
 		break;
 
 	case MSR_STAR:
@@ -1154,15 +1149,13 @@ static void xen_do_write_msr(unsigned int msr, unsigned int low,
 		break;
 
 	default:
-		val = (u64)high << 32 | low;
-
 		if (pmu_msr_chk_emulated(msr, &val, false))
 			return;
 
 		if (err)
-			*err = native_write_msr_safe(msr, low, high);
+			*err = native_write_msr_safe(msr, val);
 		else
-			native_write_msr(msr, low, high);
+			native_write_msr(msr, val);
 	}
 }
 
@@ -1171,12 +1164,11 @@ static u64 xen_read_msr_safe(unsigned int msr, int *err)
 	return xen_do_read_msr(msr, err);
 }
 
-static int xen_write_msr_safe(unsigned int msr, unsigned int low,
-			      unsigned int high)
+static int xen_write_msr_safe(u32 msr, u64 val)
 {
 	int err = 0;
 
-	xen_do_write_msr(msr, low, high, &err);
+	xen_do_write_msr(msr, val, &err);
 
 	return err;
 }
@@ -1188,11 +1180,11 @@ static u64 xen_read_msr(unsigned int msr)
 	return xen_do_read_msr(msr, xen_msr_safe ? &err : NULL);
 }
 
-static void xen_write_msr(unsigned int msr, unsigned low, unsigned high)
+static void xen_write_msr(u32 msr, u64 val)
 {
 	int err;
 
-	xen_do_write_msr(msr, low, high, xen_msr_safe ? &err : NULL);
+	xen_do_write_msr(msr, val, xen_msr_safe ? &err : NULL);
 }
 
 /* This is called once we have the cpu_possible_mask */
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Sun Apr 27 09:21:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 27 Apr 2025 09:21:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.969579.1358686 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8yCd-0004A6-Aa; Sun, 27 Apr 2025 09:21:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 969579.1358686; Sun, 27 Apr 2025 09:21: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 1u8yCc-00042a-S4; Sun, 27 Apr 2025 09:21:34 +0000
Received: by outflank-mailman (input) for mailman id 969579;
 Sun, 27 Apr 2025 09:21: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=hqWD=XN=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u8yCZ-0001AF-PY
 for xen-devel@lists.xenproject.org; Sun, 27 Apr 2025 09:21:31 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 005a92c7-2349-11f0-9eb3-5ba50f476ded;
 Sun, 27 Apr 2025 11:21:30 +0200 (CEST)
Received: from terminus.zytor.com (terminus.zytor.com
 [IPv6:2607:7c80:54:3:0:0:0:136]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53R9KRSC1598826
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Sun, 27 Apr 2025 02:21:03 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 005a92c7-2349-11f0-9eb3-5ba50f476ded
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53R9KRSC1598826
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745745665;
	bh=iRLOK69Mef4+A+S2gj/43H5GwXdynIeVCT6ycfI9j18=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=c1dcCL8yycJUuI1QDknvyiQoGu91h+bu3N+Rph9ep6kISU1bh63T/+FllB4DyX8UO
	 yyURbI4Y77d+dHN+Zqrhyou2De2xRRl3siSLfKXTUF8WX+bGVjOOWOt3Ei+rqBTkAq
	 VXY6Luh9+0YlsTHBhoxZZlIOsD7SvxBKxk686SsD3VhfWcsy1SECX5uMqX/8K6tRFC
	 Vm2IrEH/4mcXTZRnPbvEgOCcw7BD4EcMGVnELCpwLUmOlNCvQWs0VkCLF6QJ4f4SXv
	 Ji4EkwoQMvAMTShdrFoS/5wPxq7dMefQPYfDXCOLMRwWHuVFoadvhu7cCw7av2oDUu
	 J/L6YjvBl6/iQ==
From: "Xin Li (Intel)" <xin@zytor.com>
To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
        linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
        netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        acme@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com,
        peterz@infradead.org, namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com,
        dapeng1.mi@linux.intel.com, ilpo.jarvinen@linux.intel.com
Subject: [PATCH v4 15/15] x86/msr: Change the function type of native_read_msr_safe()
Date: Sun, 27 Apr 2025 02:20:27 -0700
Message-ID: <20250427092027.1598740-16-xin@zytor.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250427092027.1598740-1-xin@zytor.com>
References: <20250427092027.1598740-1-xin@zytor.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Modify the function type of native_read_msr_safe() to:

    int native_read_msr_safe(u32 msr, u64 *val)

This change makes the function return an error code instead of the
MSR value, aligning it with the type of native_write_msr_safe().
Consequently, their callers can check the results in the same way.

While at it, convert leftover MSR data type "unsigned int" to u32.

Signed-off-by: Xin Li (Intel) <xin@zytor.com>
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
---
 arch/x86/include/asm/msr.h            | 21 +++++++++++----------
 arch/x86/include/asm/paravirt.h       | 19 ++++++++-----------
 arch/x86/include/asm/paravirt_types.h |  6 +++---
 arch/x86/kvm/svm/svm.c                | 19 +++++++------------
 arch/x86/xen/enlighten_pv.c           | 13 ++++++++-----
 arch/x86/xen/pmu.c                    | 14 ++++++++------
 6 files changed, 45 insertions(+), 47 deletions(-)

diff --git a/arch/x86/include/asm/msr.h b/arch/x86/include/asm/msr.h
index 0392b9596107..e7ee51ccd82e 100644
--- a/arch/x86/include/asm/msr.h
+++ b/arch/x86/include/asm/msr.h
@@ -130,18 +130,22 @@ static inline u64 native_read_msr(u32 msr)
 	return val;
 }
 
-static inline u64 native_read_msr_safe(u32 msr, int *err)
+static inline int native_read_msr_safe(u32 msr, u64 *p)
 {
+	int err;
 	DECLARE_ARGS(val, low, high);
 
 	asm volatile("1: rdmsr ; xor %[err],%[err]\n"
 		     "2:\n\t"
 		     _ASM_EXTABLE_TYPE_REG(1b, 2b, EX_TYPE_RDMSR_SAFE, %[err])
-		     : [err] "=r" (*err), EAX_EDX_RET(val, low, high)
+		     : [err] "=r" (err), EAX_EDX_RET(val, low, high)
 		     : "c" (msr));
 	if (tracepoint_enabled(read_msr))
-		do_trace_read_msr(msr, EAX_EDX_VAL(val, low, high), *err);
-	return EAX_EDX_VAL(val, low, high);
+		do_trace_read_msr(msr, EAX_EDX_VAL(val, low, high), err);
+
+	*p = EAX_EDX_VAL(val, low, high);
+
+	return err;
 }
 
 /* Can be uninlined because referenced by paravirt */
@@ -221,8 +225,8 @@ static inline int wrmsrq_safe(u32 msr, u64 val)
 /* rdmsr with exception handling */
 #define rdmsr_safe(msr, low, high)				\
 ({								\
-	int __err;						\
-	u64 __val = native_read_msr_safe((msr), &__err);	\
+	u64 __val;						\
+	int __err = native_read_msr_safe((msr), &__val);	\
 	(*low) = (u32)__val;					\
 	(*high) = (u32)(__val >> 32);				\
 	__err;							\
@@ -230,10 +234,7 @@ static inline int wrmsrq_safe(u32 msr, u64 val)
 
 static inline int rdmsrq_safe(u32 msr, u64 *p)
 {
-	int err;
-
-	*p = native_read_msr_safe(msr, &err);
-	return err;
+	return native_read_msr_safe(msr, p);
 }
 
 static __always_inline u64 rdpmc(int counter)
diff --git a/arch/x86/include/asm/paravirt.h b/arch/x86/include/asm/paravirt.h
index edf23bde367e..03f680d1057a 100644
--- a/arch/x86/include/asm/paravirt.h
+++ b/arch/x86/include/asm/paravirt.h
@@ -175,7 +175,7 @@ static inline void __write_cr4(unsigned long x)
 	PVOP_VCALL1(cpu.write_cr4, x);
 }
 
-static inline u64 paravirt_read_msr(unsigned msr)
+static inline u64 paravirt_read_msr(u32 msr)
 {
 	return PVOP_CALL1(u64, cpu.read_msr, msr);
 }
@@ -185,9 +185,9 @@ static inline void paravirt_write_msr(u32 msr, u64 val)
 	PVOP_VCALL2(cpu.write_msr, msr, val);
 }
 
-static inline u64 paravirt_read_msr_safe(unsigned msr, int *err)
+static inline int paravirt_read_msr_safe(u32 msr, u64 *val)
 {
-	return PVOP_CALL2(u64, cpu.read_msr_safe, msr, err);
+	return PVOP_CALL2(int, cpu.read_msr_safe, msr, val);
 }
 
 static inline int paravirt_write_msr_safe(u32 msr, u64 val)
@@ -225,19 +225,16 @@ static inline int wrmsrq_safe(u32 msr, u64 val)
 /* rdmsr with exception handling */
 #define rdmsr_safe(msr, a, b)				\
 ({							\
-	int _err;					\
-	u64 _l = paravirt_read_msr_safe(msr, &_err);	\
+	u64 _l;						\
+	int _err = paravirt_read_msr_safe((msr), &_l);	\
 	(*a) = (u32)_l;					\
-	(*b) = _l >> 32;				\
+	(*b) = (u32)(_l >> 32);				\
 	_err;						\
 })
 
-static inline int rdmsrq_safe(unsigned msr, u64 *p)
+static __always_inline int rdmsrq_safe(u32 msr, u64 *p)
 {
-	int err;
-
-	*p = paravirt_read_msr_safe(msr, &err);
-	return err;
+	return paravirt_read_msr_safe(msr, p);
 }
 
 static __always_inline u64 rdpmc(int counter)
diff --git a/arch/x86/include/asm/paravirt_types.h b/arch/x86/include/asm/paravirt_types.h
index 78777b78da12..b08b9d3122d6 100644
--- a/arch/x86/include/asm/paravirt_types.h
+++ b/arch/x86/include/asm/paravirt_types.h
@@ -91,14 +91,14 @@ struct pv_cpu_ops {
 		      unsigned int *ecx, unsigned int *edx);
 
 	/* Unsafe MSR operations.  These will warn or panic on failure. */
-	u64 (*read_msr)(unsigned int msr);
+	u64 (*read_msr)(u32 msr);
 	void (*write_msr)(u32 msr, u64 val);
 
 	/*
 	 * Safe MSR operations.
-	 * read sets err to 0 or -EIO.  write returns 0 or -EIO.
+	 * Returns 0 or -EIO.
 	 */
-	u64 (*read_msr_safe)(unsigned int msr, int *err);
+	int (*read_msr_safe)(u32 msr, u64 *val);
 	int (*write_msr_safe)(u32 msr, u64 val);
 
 	u64 (*read_pmc)(int counter);
diff --git a/arch/x86/kvm/svm/svm.c b/arch/x86/kvm/svm/svm.c
index 4ef9978dce70..838606f784c9 100644
--- a/arch/x86/kvm/svm/svm.c
+++ b/arch/x86/kvm/svm/svm.c
@@ -475,15 +475,13 @@ static void svm_inject_exception(struct kvm_vcpu *vcpu)
 
 static void svm_init_erratum_383(void)
 {
-	int err;
 	u64 val;
 
 	if (!static_cpu_has_bug(X86_BUG_AMD_TLB_MMATCH))
 		return;
 
 	/* Use _safe variants to not break nested virtualization */
-	val = native_read_msr_safe(MSR_AMD64_DC_CFG, &err);
-	if (err)
+	if (native_read_msr_safe(MSR_AMD64_DC_CFG, &val))
 		return;
 
 	val |= (1ULL << 47);
@@ -648,13 +646,12 @@ static int svm_enable_virtualization_cpu(void)
 	 * erratum is present everywhere).
 	 */
 	if (cpu_has(&boot_cpu_data, X86_FEATURE_OSVW)) {
-		uint64_t len, status = 0;
+		u64 len, status = 0;
 		int err;
 
-		len = native_read_msr_safe(MSR_AMD64_OSVW_ID_LENGTH, &err);
+		err = native_read_msr_safe(MSR_AMD64_OSVW_ID_LENGTH, &len);
 		if (!err)
-			status = native_read_msr_safe(MSR_AMD64_OSVW_STATUS,
-						      &err);
+			err = native_read_msr_safe(MSR_AMD64_OSVW_STATUS, &status);
 
 		if (err)
 			osvw_status = osvw_len = 0;
@@ -2145,14 +2142,13 @@ static int ac_interception(struct kvm_vcpu *vcpu)
 
 static bool is_erratum_383(void)
 {
-	int err, i;
+	int i;
 	u64 value;
 
 	if (!erratum_383_found)
 		return false;
 
-	value = native_read_msr_safe(MSR_IA32_MC0_STATUS, &err);
-	if (err)
+	if (native_read_msr_safe(MSR_IA32_MC0_STATUS, &value))
 		return false;
 
 	/* Bit 62 may or may not be set for this mce */
@@ -2165,8 +2161,7 @@ static bool is_erratum_383(void)
 	for (i = 0; i < 6; ++i)
 		native_write_msr_safe(MSR_IA32_MCx_STATUS(i), 0);
 
-	value = native_read_msr_safe(MSR_IA32_MCG_STATUS, &err);
-	if (!err) {
+	if (!native_read_msr_safe(MSR_IA32_MCG_STATUS, &value)) {
 		value &= ~(1ULL << 2);
 		native_write_msr_safe(MSR_IA32_MCG_STATUS, value);
 	}
diff --git a/arch/x86/xen/enlighten_pv.c b/arch/x86/xen/enlighten_pv.c
index c067d1e8a39c..0b2f5e679026 100644
--- a/arch/x86/xen/enlighten_pv.c
+++ b/arch/x86/xen/enlighten_pv.c
@@ -1086,7 +1086,7 @@ static void xen_write_cr4(unsigned long cr4)
 	native_write_cr4(cr4);
 }
 
-static u64 xen_do_read_msr(unsigned int msr, int *err)
+static u64 xen_do_read_msr(u32 msr, int *err)
 {
 	u64 val = 0;	/* Avoid uninitialized value for safe variant. */
 
@@ -1094,7 +1094,7 @@ static u64 xen_do_read_msr(unsigned int msr, int *err)
 		return val;
 
 	if (err)
-		val = native_read_msr_safe(msr, err);
+		*err = native_read_msr_safe(msr, &val);
 	else
 		val = native_read_msr(msr);
 
@@ -1159,9 +1159,12 @@ static void xen_do_write_msr(u32 msr, u64 val, int *err)
 	}
 }
 
-static u64 xen_read_msr_safe(unsigned int msr, int *err)
+static int xen_read_msr_safe(u32 msr, u64 *val)
 {
-	return xen_do_read_msr(msr, err);
+	int err;
+
+	*val = xen_do_read_msr(msr, &err);
+	return err;
 }
 
 static int xen_write_msr_safe(u32 msr, u64 val)
@@ -1173,7 +1176,7 @@ static int xen_write_msr_safe(u32 msr, u64 val)
 	return err;
 }
 
-static u64 xen_read_msr(unsigned int msr)
+static u64 xen_read_msr(u32 msr)
 {
 	int err;
 
diff --git a/arch/x86/xen/pmu.c b/arch/x86/xen/pmu.c
index 5f3d2a6c70f1..d308147cd368 100644
--- a/arch/x86/xen/pmu.c
+++ b/arch/x86/xen/pmu.c
@@ -318,11 +318,12 @@ static u64 xen_amd_read_pmc(int counter)
 	uint8_t xenpmu_flags = get_xenpmu_flags();
 
 	if (!xenpmu_data || !(xenpmu_flags & XENPMU_IRQ_PROCESSING)) {
-		uint32_t msr;
-		int err;
+		u32 msr;
+		u64 val;
 
 		msr = amd_counters_base + (counter * amd_msr_step);
-		return native_read_msr_safe(msr, &err);
+		native_read_msr_safe(msr, &val);
+		return val;
 	}
 
 	ctxt = &xenpmu_data->pmu.c.amd;
@@ -339,15 +340,16 @@ static u64 xen_intel_read_pmc(int counter)
 	uint8_t xenpmu_flags = get_xenpmu_flags();
 
 	if (!xenpmu_data || !(xenpmu_flags & XENPMU_IRQ_PROCESSING)) {
-		uint32_t msr;
-		int err;
+		u32 msr;
+		u64 val;
 
 		if (counter & (1 << INTEL_PMC_TYPE_SHIFT))
 			msr = MSR_CORE_PERF_FIXED_CTR0 + (counter & 0xffff);
 		else
 			msr = MSR_IA32_PERFCTR0 + counter;
 
-		return native_read_msr_safe(msr, &err);
+		native_read_msr_safe(msr, &val);
+		return val;
 	}
 
 	ctxt = &xenpmu_data->pmu.c.intel;
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Sun Apr 27 09:27:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 27 Apr 2025 09:27:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.969656.1358716 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8yHp-00018Y-Vh; Sun, 27 Apr 2025 09:26:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 969656.1358716; Sun, 27 Apr 2025 09:26:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8yHp-00018R-Sn; Sun, 27 Apr 2025 09:26:57 +0000
Received: by outflank-mailman (input) for mailman id 969656;
 Sun, 27 Apr 2025 09:26: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=hqWD=XN=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u8yHp-00018L-0i
 for xen-devel@lists.xenproject.org; Sun, 27 Apr 2025 09:26:57 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c1bd673f-2349-11f0-9ffb-bf95429c2676;
 Sun, 27 Apr 2025 11:26:55 +0200 (CEST)
Received: from [192.168.7.202] ([71.202.166.45]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53R9QJ7P1607230
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NO);
 Sun, 27 Apr 2025 02:26:19 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c1bd673f-2349-11f0-9ffb-bf95429c2676
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53R9QJ7P1607230
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745745982;
	bh=MIEw6Uk+Yy3hODU6rwhHvIU2GjFINvMLe/ajDksnc7g=;
	h=Date:Subject:To:Cc:References:From:In-Reply-To:From;
	b=M//ALZ9Sj+luXQrDMRpV2wKmumbHvDVNiTfeqhmsOqEn27FbweEdRBGxeQudcHytg
	 mjZ0mzPUGKx3F/LVuWSdCk4ViQohkiMVOe6rMp1EIjc/BK+o1SZ+H9XVTS5+G+kSeO
	 zQ3NHolfCn7sahiOBdM1OBsESpcIUtcW9qo6sKNY60Vfxfvch+08cpnvAyLmXFnYsQ
	 93Y7Wskrdj3G6wb4UcX3Mz6aoc2egCpy0NZxMDGruB37nyn5jhzeGyVdMqPgshwSiv
	 6FXv61KqgGYM/rKMdEXcU26QtoBhaWUY+LA1ZxkaC+aC++GFPJfxtH4TbeC8zG4BPw
	 6m/0oO6Lz9THg==
Message-ID: <5a953dcc-96c1-4312-a8b5-25ca7ee4d0f7@zytor.com>
Date: Sun, 27 Apr 2025 02:26:18 -0700
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 09/14] x86/xen/msr: Remove calling
 native_{read,write}_msr{,_safe}() in pmu_msr_{read,write}()
To: "Mi, Dapeng" <dapeng1.mi@linux.intel.com>, linux-kernel@vger.kernel.org,
        kvm@vger.kernel.org, linux-perf-users@vger.kernel.org,
        linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
        linux-pm@vger.kernel.org, linux-edac@vger.kernel.org,
        xen-devel@lists.xenproject.org, linux-acpi@vger.kernel.org,
        linux-hwmon@vger.kernel.org, netdev@vger.kernel.org,
        platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        acme@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com,
        peterz@infradead.org, namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com
References: <20250425083442.2390017-1-xin@zytor.com>
 <20250425083442.2390017-10-xin@zytor.com>
 <d2bdd61d-cab6-401f-9b6a-17b28f3cd19c@linux.intel.com>
Content-Language: en-US
From: Xin Li <xin@zytor.com>
Autocrypt: addr=xin@zytor.com; keydata=
 xsDNBGUPz1cBDACS/9yOJGojBFPxFt0OfTWuMl0uSgpwk37uRrFPTTLw4BaxhlFL0bjs6q+0
 2OfG34R+a0ZCuj5c9vggUMoOLdDyA7yPVAJU0OX6lqpg6z/kyQg3t4jvajG6aCgwSDx5Kzg5
 Rj3AXl8k2wb0jdqRB4RvaOPFiHNGgXCs5Pkux/qr0laeFIpzMKMootGa4kfURgPhRzUaM1vy
 bsMsL8vpJtGUmitrSqe5dVNBH00whLtPFM7IbzKURPUOkRRiusFAsw0a1ztCgoFczq6VfAVu
 raTye0L/VXwZd+aGi401V2tLsAHxxckRi9p3mc0jExPc60joK+aZPy6amwSCy5kAJ/AboYtY
 VmKIGKx1yx8POy6m+1lZ8C0q9b8eJ8kWPAR78PgT37FQWKYS1uAroG2wLdK7FiIEpPhCD+zH
 wlslo2ETbdKjrLIPNehQCOWrT32k8vFNEMLP5G/mmjfNj5sEf3IOKgMTMVl9AFjsINLHcxEQ
 6T8nGbX/n3msP6A36FDfdSEAEQEAAc0WWGluIExpIDx4aW5Aenl0b3IuY29tPsLBDQQTAQgA
 NxYhBIUq/WFSDTiOvUIqv2u9DlcdrjdRBQJlD89XBQkFo5qAAhsDBAsJCAcFFQgJCgsFFgID
 AQAACgkQa70OVx2uN1HUpgv/cM2fsFCQodLArMTX5nt9yqAWgA5t1srri6EgS8W3F+3Kitge
 tYTBKu6j5BXuXaX3vyfCm+zajDJN77JHuYnpcKKr13VcZi1Swv6Jx1u0II8DOmoDYLb1Q2ZW
 v83W55fOWJ2g72x/UjVJBQ0sVjAngazU3ckc0TeNQlkcpSVGa/qBIHLfZraWtdrNAQT4A1fa
 sWGuJrChBFhtKbYXbUCu9AoYmmbQnsx2EWoJy3h7OjtfFapJbPZql+no5AJ3Mk9eE5oWyLH+
 QWqtOeJM7kKvn/dBudokFSNhDUw06e7EoVPSJyUIMbYtUO7g2+Atu44G/EPP0yV0J4lRO6EA
 wYRXff7+I1jIWEHpj5EFVYO6SmBg7zF2illHEW31JAPtdDLDHYcZDfS41caEKOQIPsdzQkaQ
 oW2hchcjcMPAfyhhRzUpVHLPxLCetP8vrVhTvnaZUo0xaVYb3+wjP+D5j/3+hwblu2agPsaE
 vgVbZ8Fx3TUxUPCAdr/p73DGg57oHjgezsDNBGUPz1gBDAD4Mg7hMFRQqlzotcNSxatlAQNL
 MadLfUTFz8wUUa21LPLrHBkUwm8RujehJrzcVbPYwPXIO0uyL/F///CogMNx7Iwo6by43KOy
 g89wVFhyy237EY76j1lVfLzcMYmjBoTH95fJC/lVb5Whxil6KjSN/R/y3jfG1dPXfwAuZ/4N
 cMoOslWkfZKJeEut5aZTRepKKF54T5r49H9F7OFLyxrC/uI9UDttWqMxcWyCkHh0v1Di8176
 jjYRNTrGEfYfGxSp+3jYL3PoNceIMkqM9haXjjGl0W1B4BidK1LVYBNov0rTEzyr0a1riUrp
 Qk+6z/LHxCM9lFFXnqH7KWeToTOPQebD2B/Ah5CZlft41i8L6LOF/LCuDBuYlu/fI2nuCc8d
 m4wwtkou1Y/kIwbEsE/6RQwRXUZhzO6llfoN96Fczr/RwvPIK5SVMixqWq4QGFAyK0m/1ap4
 bhIRrdCLVQcgU4glo17vqfEaRcTW5SgX+pGs4KIPPBE5J/ABD6pBnUUAEQEAAcLA/AQYAQgA
 JhYhBIUq/WFSDTiOvUIqv2u9DlcdrjdRBQJlD89ZBQkFo5qAAhsMAAoJEGu9DlcdrjdR4C0L
 /RcjolEjoZW8VsyxWtXazQPnaRvzZ4vhmGOsCPr2BPtMlSwDzTlri8BBG1/3t/DNK4JLuwEj
 OAIE3fkkm+UG4Kjud6aNeraDI52DRVCSx6xff3bjmJsJJMb12mWglN6LjdF6K+PE+OTJUh2F
 dOhslN5C2kgl0dvUuevwMgQF3IljLmi/6APKYJHjkJpu1E6luZec/lRbetHuNFtbh3xgFIJx
 2RpgVDP4xB3f8r0I+y6ua+p7fgOjDLyoFjubRGed0Be45JJQEn7A3CSb6Xu7NYobnxfkwAGZ
 Q81a2XtvNS7Aj6NWVoOQB5KbM4yosO5+Me1V1SkX2jlnn26JPEvbV3KRFcwV5RnDxm4OQTSk
 PYbAkjBbm+tuJ/Sm+5Yp5T/BnKz21FoCS8uvTiziHj2H7Cuekn6F8EYhegONm+RVg3vikOpn
 gao85i4HwQTK9/D1wgJIQkdwWXVMZ6q/OALaBp82vQ2U9sjTyFXgDjglgh00VRAHP7u1Rcu4
 l75w1xInsg==
In-Reply-To: <d2bdd61d-cab6-401f-9b6a-17b28f3cd19c@linux.intel.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 4/27/2025 2:21 AM, Mi, Dapeng wrote:
> Reviewed-by: Dapeng Mi<dapeng1.mi@linux.intel.com>

Thanks!

I just sent out v4, so unless a v5 is needed, leave it to our x86
maintainers.


From xen-devel-bounces@lists.xenproject.org Sun Apr 27 09:32:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 27 Apr 2025 09:32:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.969782.1358727 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8yNB-0004Ov-Im; Sun, 27 Apr 2025 09:32:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 969782.1358727; Sun, 27 Apr 2025 09: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 1u8yNB-0004Oo-FF; Sun, 27 Apr 2025 09:32:29 +0000
Received: by outflank-mailman (input) for mailman id 969782;
 Sun, 27 Apr 2025 09:32:27 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=hqWD=XN=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u8yCf-0001A9-56
 for xen-devel@lists.xenproject.org; Sun, 27 Apr 2025 09:21:37 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fa2031d8-2348-11f0-9ffb-bf95429c2676;
 Sun, 27 Apr 2025 11:21:20 +0200 (CEST)
Received: from terminus.zytor.com (terminus.zytor.com
 [IPv6:2607:7c80:54:3:0:0:0:136]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53R9KRRx1598826
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Sun, 27 Apr 2025 02:20:36 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fa2031d8-2348-11f0-9ffb-bf95429c2676
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53R9KRRx1598826
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745745637;
	bh=+pVPbNpNJhKlbxpDgv7RbZVuTFqKjEBhcRqOVxNg35M=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=VNmo3uiak1noYpKTG/jLw/iJPvxthCPJphOG7oNxfBB0fU/ujY4AM6rt1iCWNcVmB
	 PkVpItnEGcCeGnjVW5id6u8fewAPR6ih7c46JrOyu+ctmHJXDsx5VdOvDr14TGh/Lb
	 PgF26Pfs59jrRsEMvx/lql25UmR2CqpIshcSLlVH4fSW899RlSygMuGqkK3a74Z/tx
	 uGL4GxEX0OQ097TNxvCv7jEIzqA5H4lGqzh2IIybrBnLRjIlIfRghl6fcpAklhsDbS
	 7pEx8/ly1QrIWFMPItt5SnDpgkaS83vH3Hk/09/rsrMY16LPtDhd0EBO4KSIszK85N
	 GhEnY34L8vjHg==
From: "Xin Li (Intel)" <xin@zytor.com>
To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
        linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
        netdev@vger.kernel.org, platform-driver-x86@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        acme@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com,
        peterz@infradead.org, namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com,
        dapeng1.mi@linux.intel.com, ilpo.jarvinen@linux.intel.com
Subject: [PATCH v4 02/15] x86/msr: Move rdtsc{,_ordered}() to <asm/tsc.h>
Date: Sun, 27 Apr 2025 02:20:14 -0700
Message-ID: <20250427092027.1598740-3-xin@zytor.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250427092027.1598740-1-xin@zytor.com>
References: <20250427092027.1598740-1-xin@zytor.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

For some reason, there are some TSC-related functions in the MSR
header even though there is a tsc.h header.

Relocate rdtsc{,_ordered}() from <asm/msr.h> to <asm/tsc.h>, and
subsequently remove the inclusion of <asm/msr.h> in <asm/tsc.h>.

Signed-off-by: Xin Li (Intel) <xin@zytor.com>
Acked-by: Dave Hansen <dave.hansen@linux.intel.com>
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
---

Change in v4:
*) Add missing includes in a different patch (Ilpo Järvinen).

Change in v3:
* Add a problem statement to the changelog (Dave Hansen).
---
 arch/x86/include/asm/msr.h | 54 ---------------------------
 arch/x86/include/asm/tsc.h | 76 +++++++++++++++++++++++++++++++++++++-
 2 files changed, 75 insertions(+), 55 deletions(-)

diff --git a/arch/x86/include/asm/msr.h b/arch/x86/include/asm/msr.h
index 72a9ebc99078..2caa13830e11 100644
--- a/arch/x86/include/asm/msr.h
+++ b/arch/x86/include/asm/msr.h
@@ -170,60 +170,6 @@ native_write_msr_safe(u32 msr, u32 low, u32 high)
 extern int rdmsr_safe_regs(u32 regs[8]);
 extern int wrmsr_safe_regs(u32 regs[8]);
 
-/**
- * rdtsc() - returns the current TSC without ordering constraints
- *
- * rdtsc() returns the result of RDTSC as a 64-bit integer.  The
- * only ordering constraint it supplies is the ordering implied by
- * "asm volatile": it will put the RDTSC in the place you expect.  The
- * CPU can and will speculatively execute that RDTSC, though, so the
- * results can be non-monotonic if compared on different CPUs.
- */
-static __always_inline u64 rdtsc(void)
-{
-	DECLARE_ARGS(val, low, high);
-
-	asm volatile("rdtsc" : EAX_EDX_RET(val, low, high));
-
-	return EAX_EDX_VAL(val, low, high);
-}
-
-/**
- * rdtsc_ordered() - read the current TSC in program order
- *
- * rdtsc_ordered() returns the result of RDTSC as a 64-bit integer.
- * It is ordered like a load to a global in-memory counter.  It should
- * be impossible to observe non-monotonic rdtsc_unordered() behavior
- * across multiple CPUs as long as the TSC is synced.
- */
-static __always_inline u64 rdtsc_ordered(void)
-{
-	DECLARE_ARGS(val, low, high);
-
-	/*
-	 * The RDTSC instruction is not ordered relative to memory
-	 * access.  The Intel SDM and the AMD APM are both vague on this
-	 * point, but empirically an RDTSC instruction can be
-	 * speculatively executed before prior loads.  An RDTSC
-	 * immediately after an appropriate barrier appears to be
-	 * ordered as a normal load, that is, it provides the same
-	 * ordering guarantees as reading from a global memory location
-	 * that some other imaginary CPU is updating continuously with a
-	 * time stamp.
-	 *
-	 * Thus, use the preferred barrier on the respective CPU, aiming for
-	 * RDTSCP as the default.
-	 */
-	asm volatile(ALTERNATIVE_2("rdtsc",
-				   "lfence; rdtsc", X86_FEATURE_LFENCE_RDTSC,
-				   "rdtscp", X86_FEATURE_RDTSCP)
-			: EAX_EDX_RET(val, low, high)
-			/* RDTSCP clobbers ECX with MSR_TSC_AUX. */
-			:: "ecx");
-
-	return EAX_EDX_VAL(val, low, high);
-}
-
 static inline u64 native_read_pmc(int counter)
 {
 	DECLARE_ARGS(val, low, high);
diff --git a/arch/x86/include/asm/tsc.h b/arch/x86/include/asm/tsc.h
index 94408a784c8e..13335a130edf 100644
--- a/arch/x86/include/asm/tsc.h
+++ b/arch/x86/include/asm/tsc.h
@@ -7,7 +7,81 @@
 
 #include <asm/cpufeature.h>
 #include <asm/processor.h>
-#include <asm/msr.h>
+
+/*
+ * both i386 and x86_64 returns 64-bit value in edx:eax, but gcc's "A"
+ * constraint has different meanings. For i386, "A" means exactly
+ * edx:eax, while for x86_64 it doesn't mean rdx:rax or edx:eax. Instead,
+ * it means rax *or* rdx.
+ */
+#ifdef CONFIG_X86_64
+/* Using 64-bit values saves one instruction clearing the high half of low */
+#define DECLARE_ARGS(val, low, high)	unsigned long low, high
+#define EAX_EDX_VAL(val, low, high)	((low) | (high) << 32)
+#define EAX_EDX_RET(val, low, high)	"=a" (low), "=d" (high)
+#else
+#define DECLARE_ARGS(val, low, high)	u64 val
+#define EAX_EDX_VAL(val, low, high)	(val)
+#define EAX_EDX_RET(val, low, high)	"=A" (val)
+#endif
+
+/**
+ * rdtsc() - returns the current TSC without ordering constraints
+ *
+ * rdtsc() returns the result of RDTSC as a 64-bit integer.  The
+ * only ordering constraint it supplies is the ordering implied by
+ * "asm volatile": it will put the RDTSC in the place you expect.  The
+ * CPU can and will speculatively execute that RDTSC, though, so the
+ * results can be non-monotonic if compared on different CPUs.
+ */
+static __always_inline u64 rdtsc(void)
+{
+	DECLARE_ARGS(val, low, high);
+
+	asm volatile("rdtsc" : EAX_EDX_RET(val, low, high));
+
+	return EAX_EDX_VAL(val, low, high);
+}
+
+/**
+ * rdtsc_ordered() - read the current TSC in program order
+ *
+ * rdtsc_ordered() returns the result of RDTSC as a 64-bit integer.
+ * It is ordered like a load to a global in-memory counter.  It should
+ * be impossible to observe non-monotonic rdtsc_unordered() behavior
+ * across multiple CPUs as long as the TSC is synced.
+ */
+static __always_inline u64 rdtsc_ordered(void)
+{
+	DECLARE_ARGS(val, low, high);
+
+	/*
+	 * The RDTSC instruction is not ordered relative to memory
+	 * access.  The Intel SDM and the AMD APM are both vague on this
+	 * point, but empirically an RDTSC instruction can be
+	 * speculatively executed before prior loads.  An RDTSC
+	 * immediately after an appropriate barrier appears to be
+	 * ordered as a normal load, that is, it provides the same
+	 * ordering guarantees as reading from a global memory location
+	 * that some other imaginary CPU is updating continuously with a
+	 * time stamp.
+	 *
+	 * Thus, use the preferred barrier on the respective CPU, aiming for
+	 * RDTSCP as the default.
+	 */
+	asm volatile(ALTERNATIVE_2("rdtsc",
+				   "lfence; rdtsc", X86_FEATURE_LFENCE_RDTSC,
+				   "rdtscp", X86_FEATURE_RDTSCP)
+			: EAX_EDX_RET(val, low, high)
+			/* RDTSCP clobbers ECX with MSR_TSC_AUX. */
+			:: "ecx");
+
+	return EAX_EDX_VAL(val, low, high);
+}
+
+#undef DECLARE_ARGS
+#undef EAX_EDX_VAL
+#undef EAX_EDX_RET
 
 /*
  * Standard way to access the cycle counter.
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Sun Apr 27 09:50:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 27 Apr 2025 09:50:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.969798.1358737 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8yeJ-00006v-VJ; Sun, 27 Apr 2025 09:50:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 969798.1358737; Sun, 27 Apr 2025 09: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 1u8yeJ-00006o-SH; Sun, 27 Apr 2025 09:50:11 +0000
Received: by outflank-mailman (input) for mailman id 969798;
 Sun, 27 Apr 2025 09: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=mo7N=XN=kernel.org=mingo@srs-se1.protection.inumbo.net>)
 id 1u8yeI-0007cC-Dn
 for xen-devel@lists.xenproject.org; Sun, 27 Apr 2025 09:50:10 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 013f5cb5-234d-11f0-9eb3-5ba50f476ded;
 Sun, 27 Apr 2025 11:50:09 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 784E661157;
 Sun, 27 Apr 2025 09:49:44 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id E2390C4CEE3;
 Sun, 27 Apr 2025 09:50:03 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 013f5cb5-234d-11f0-9eb3-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1745747407;
	bh=8UYVrDmaKV6ZZ3qAklvl94/hVHJqh5GIwBuL4dIJJTU=;
	h=Date:From:To:Cc:Subject:References:In-Reply-To:From;
	b=LNUFh+HV+LRgnlPShS8rXS7sdSbnkm7jbQkvCdQsHl+SntI9iCfZu/sITsPyhbxQP
	 VxVG7pCTFrxhj2lsgxbjty+QQQUfryr9eRA9koIa29U19wCpHAhZZUoMF3g6dNaziW
	 Nv9RG226Cx91ZCmPX1xL1EB7VB9OTb3sTaIPT+9QrLCaJAjylLeH4tqzse919IMCEn
	 dLPiARw0uHyg45zc9QUJBD/RbN4rIYBlZ+o/PxX55rbbFkJciSe3Jau7DINL50lONy
	 6UzTYjOH4/st87qenWg4Mdd8Qo7nZjJlMjKVAK2vsoz6KgS/EbnH/Ea/txXkSFrGSP
	 8Wt7G1FYKHkCQ==
Date: Sun, 27 Apr 2025 11:50:01 +0200
From: Ingo Molnar <mingo@kernel.org>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Arnd Bergmann <arnd@arndb.de>, Arnd Bergmann <arnd@kernel.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>, Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Alexander Usyskin <alexander.usyskin@intel.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Mateusz =?utf-8?Q?Jo=C5=84czyk?= <mat.jonczyk@o2.pl>,
	Mike Rapoport <rppt@kernel.org>, Ard Biesheuvel <ardb@kernel.org>,
	Peter Zijlstra <peterz@infradead.org>, linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH] [RFC] x86/cpu: rework instruction set selection
Message-ID: <aA39ydJ7Spw-K8_1@gmail.com>
References: <20250425141740.734030-1-arnd@kernel.org>
 <aAyiganPp_UsNlnZ@gmail.com>
 <d2b0e71c-e79b-40d6-8693-3202cd894d66@app.fastmail.com>
 <CAHk-=wh=TUsVv6xhtzYsWJwJggrjyOfYT3kBu+bHtoYLK0M9Xw@mail.gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <CAHk-=wh=TUsVv6xhtzYsWJwJggrjyOfYT3kBu+bHtoYLK0M9Xw@mail.gmail.com>


* Linus Torvalds <torvalds@linux-foundation.org> wrote:

> On Sat, 26 Apr 2025 at 11:59, Arnd Bergmann <arnd@arndb.de> wrote:
> >
> > Right. With the current set of features, CMOV is almost the
> > same as 686. My reasoning was that support for CMOV has a
> > very clear definition, with the instruction either being
> > available or not.
> 
> Yeah, I don't think there's any reason to make CMOV a reason to drop support.
> 
> It has questionable performance impact - I doubt anybody can measure 
> it - and the "maintenance burden" is basically a single compiler 
> flag.
> 
> (And yes, one use in a x86 header file that is pretty questionable 
> too: I think the reason for the cmov is actually i486-only behavior 
> and we could probably unify the 32-bit and 64-bit implementation)
> 
> Let's not drop Pentium support due to something as insignificant as 
> that.

Agreed on that. Idea to require CMOV dropped.

Note that the outcome of 486 removal will likely be that the few 
remaining community distros that still offer x86-32 builds are either 
already 686-CMOV-only (Debian), or are going to drop their 486 builds 
and keep their 686-CMOV-only builds (Gentoo and Archlinux32) by way of 
simple inertia. (There's an off chance that they'll change their 486 
builds to 586, but I think dropping the extra complication and 
standardizing on 686 will be the most likely outcome.)

No commercial distro builds x86-32 with a modern v6.x series kernel 
AFAICS.

Anyway, I agree that the maintenance cost on the kernel side to build 
non-CMOV kernels is very low.

Thanks,

	Ingo


From xen-devel-bounces@lists.xenproject.org Sun Apr 27 10:18:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 27 Apr 2025 10:18:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.969815.1358747 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u8z5n-0006aY-QC; Sun, 27 Apr 2025 10:18:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 969815.1358747; Sun, 27 Apr 2025 10: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 1u8z5n-0006aR-NE; Sun, 27 Apr 2025 10:18:35 +0000
Received: by outflank-mailman (input) for mailman id 969815;
 Sun, 27 Apr 2025 10:18: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=mo7N=XN=kernel.org=mingo@srs-se1.protection.inumbo.net>)
 id 1u8z5m-0006aL-0w
 for xen-devel@lists.xenproject.org; Sun, 27 Apr 2025 10:18:34 +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 f5a1fa4f-2350-11f0-9ffb-bf95429c2676;
 Sun, 27 Apr 2025 12:18:28 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 3C3B55C365B;
 Sun, 27 Apr 2025 10:16:09 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6E785C4CEEF;
 Sun, 27 Apr 2025 10:18: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: f5a1fa4f-2350-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1745749106;
	bh=L7uhmgzdcPMMNpeCjXVtvKibb8+nFSEltpr8Sjv+mGw=;
	h=Date:From:To:Cc:Subject:References:In-Reply-To:From;
	b=RvCrjiybvTY0/WvL1ox/pY2ZElx88ZlFJXqTv22U0Yn7gwzaqmLmacBEfhQgvgrfL
	 8SI72doZ4zQQ2fTGluj2fPPRLSdBU1mQVPKKpB5lc3hS0YdF2CCIXnNBpGr3VSINjE
	 CHWysqhvkgob59ydkDUqfVBQ+mQSkUAfk/eyOhkb37d0UJRmy02DjlHSNY+jHSBp/x
	 njihO9Gof91jSkeg4Dtv0Vv6CXBm+U517/QysoHnszSSAZsN2VYrEATGNZ/cVCEiy0
	 duvXRbmEOmujKqCS8PutcLDaBQmi2b3QfVuFe48V/0H+YjxXirETLEIMUdYhwKcpIc
	 w+9GubMfHo3mw==
Date: Sun, 27 Apr 2025 12:18:20 +0200
From: Ingo Molnar <mingo@kernel.org>
To: "H. Peter Anvin" <hpa@zytor.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>,
	Arnd Bergmann <arnd@arndb.de>, Arnd Bergmann <arnd@kernel.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org,
	Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Alexander Usyskin <alexander.usyskin@intel.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Mateusz =?utf-8?Q?Jo=C5=84czyk?= <mat.jonczyk@o2.pl>,
	Mike Rapoport <rppt@kernel.org>, Ard Biesheuvel <ardb@kernel.org>,
	Peter Zijlstra <peterz@infradead.org>, linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH] [RFC] x86/cpu: rework instruction set selection
Message-ID: <aA4EbGhuHNUYlkp_@gmail.com>
References: <20250425141740.734030-1-arnd@kernel.org>
 <aAyiganPp_UsNlnZ@gmail.com>
 <d2b0e71c-e79b-40d6-8693-3202cd894d66@app.fastmail.com>
 <CAHk-=wh=TUsVv6xhtzYsWJwJggrjyOfYT3kBu+bHtoYLK0M9Xw@mail.gmail.com>
 <CAHk-=wgfk69H-T-vMWR33xUpVsWJLrF34d0OwUXa2sHhtpSwZg@mail.gmail.com>
 <9D1971C6-8C13-4526-8D2B-37A1D3B0B066@zytor.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <9D1971C6-8C13-4526-8D2B-37A1D3B0B066@zytor.com>


* H. Peter Anvin <hpa@zytor.com> wrote:

> The undefined zero case applies to family < 6 as far as I know... the 
> same platforms which don't have cmov...

So, technically, these are family 5 CPUs with CMOV support, if 
Kconfig.cpu can be believed:

  MGEODE_LX
  MCRUSOE

Right?

	Ingo


From xen-devel-bounces@lists.xenproject.org Sun Apr 27 13:25:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 27 Apr 2025 13:25:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.969862.1358757 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u920e-0001BW-JP; Sun, 27 Apr 2025 13:25:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 969862.1358757; Sun, 27 Apr 2025 13:25: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 1u920e-0001BP-G7; Sun, 27 Apr 2025 13:25:28 +0000
Received: by outflank-mailman (input) for mailman id 969862;
 Sun, 27 Apr 2025 13:25: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=uP8M=XN=arndb.de=arnd@srs-se1.protection.inumbo.net>)
 id 1u920d-0001BJ-MP
 for xen-devel@lists.xenproject.org; Sun, 27 Apr 2025 13:25:27 +0000
Received: from fout-a6-smtp.messagingengine.com
 (fout-a6-smtp.messagingengine.com [103.168.172.149])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 12929f05-236b-11f0-9ffb-bf95429c2676;
 Sun, 27 Apr 2025 15:25:23 +0200 (CEST)
Received: from phl-compute-05.internal (phl-compute-05.phl.internal
 [10.202.2.45])
 by mailfout.phl.internal (Postfix) with ESMTP id 345AE1380159;
 Sun, 27 Apr 2025 09:25:22 -0400 (EDT)
Received: from phl-imap-11 ([10.202.2.101])
 by phl-compute-05.internal (MEProxy); Sun, 27 Apr 2025 09:25:22 -0400
Received: by mailuser.phl.internal (Postfix, from userid 501)
 id 809422220073; Sun, 27 Apr 2025 09:25:20 -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: 12929f05-236b-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arndb.de; 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=1745760322;
	 x=1745846722; bh=rcRIwwGikN6rDFL8XQvl8eUL9IKcyXAXoLoaTF31pRE=; b=
	ji8UYBzOvICDLf9fpCKIsb9LzcCvjC1nYyB77xrxzQWv5eP+e2Wra8/TrMsOsOQv
	2HrbgZ86o0QF18nSXhGDAEPoVSsLMhs58A40fBb+VS51Y+rwZFEDlGbsnvAg13Fv
	Qmb+3ZRbNZWfswT50q/3A5g0ojmPZx3P8vL0AGVQmLVoPyyCq3L4Al/pqQXC+Yo+
	oLwIl+38FwHe22s64LwVrehIOQ3EYPf8neA0LBOB70U7ZAIg0xJmnxEy5KoxBjPF
	nxi+0k3UDHUSDX1tsLV3dV2D6Rt02FLAAqQ0ByZCuUNs+XonBdfgJKPFas7g9d8B
	dSLpRL4HpHk0et1YEqdp1Q==
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=1745760322; x=
	1745846722; bh=rcRIwwGikN6rDFL8XQvl8eUL9IKcyXAXoLoaTF31pRE=; b=p
	MNJ8qqe/h6wW7u+WICSImTekmwwgxS/BucapRnnhPUofEj6IWDjBGVQV3Mcw3UOc
	AwaaQeAXiJ5jlPX+qT5GwJFAantkZL7+LpipA7PC2Wx6Aom1dOCdyO8RQV0oz5w5
	V5KGV4Kz8DUhhEeGF+UHhAN6gxRfc17tVrE2AmkJU3mlqB28wZ5FIzp4WjXsGIlH
	8uc/XmLIBwMHwkVBL6zrVDroBy56pxpEbhkOhQOzrSdT2/hdMYyw8twKbGN7el1D
	pTRWlpBH47Cb3gQxc+D8NwTyka64EWMvivzC3ljrEXMggR81oMW99PNlppinpZJ0
	eSbGbRYhBEo0f35BoSUPA==
X-ME-Sender: <xms:QDAOaBfjyDbrjOq4KTgaAqG76tfcTDTOnfyQXgrGjCAU9ToSLQ3jCg>
    <xme:QDAOaPN2uWKOyqxn3SmGnBQ7wVIpuxqr1K9NdFi1_YCCqWVTnrd_8s8LTZc-yih_E
    bXjbJOfSCHVgwn11Hk>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvheekudekucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
    pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
    gvnhhtshculddquddttddmnecujfgurhepofggfffhvfevkfgjfhfutgfgsehtjeertder
    tddtnecuhfhrohhmpedftehrnhguuceuvghrghhmrghnnhdfuceorghrnhgusegrrhhnug
    gsrdguvgeqnecuggftrfgrthhtvghrnhephfdthfdvtdefhedukeetgefggffhjeeggeet
    fefggfevudegudevledvkefhvdeinecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrg
    hmpehmrghilhhfrhhomheprghrnhgusegrrhhnuggsrdguvgdpnhgspghrtghpthhtohep
    udelpdhmohguvgepshhmthhpohhuthdprhgtphhtthhopegsphesrghlihgvnhekrdguvg
    dprhgtphhtthhopehpvghtvghriiesihhnfhhrrgguvggrugdrohhrghdprhgtphhtthho
    pegrlhgvgigrnhguvghrrdhushihshhkihhnsehinhhtvghlrdgtohhmpdhrtghpthhtoh
    eprghruggssehkvghrnhgvlhdrohhrghdprhgtphhtthhopegrrhhnugeskhgvrhhnvghl
    rdhorhhgpdhrtghpthhtohepmhhinhhgoheskhgvrhhnvghlrdhorhhgpdhrtghpthhtoh
    eprhhpphhtsehkvghrnhgvlhdrohhrghdprhgtphhtthhopeigkeeisehkvghrnhgvlhdr
    ohhrghdprhgtphhtthhopehtghhlgieslhhinhhuthhrohhnihigrdguvg
X-ME-Proxy: <xmx:QDAOaKhPOgPU1cF7kXRj0K6BAV-NjYqPt2QC12cEFNKNXIZe45CaGg>
    <xmx:QDAOaK9GKCccyIXPuB1h8Kf6b9dVf7RBSBdYEuul3tGFRfjrCQlnJA>
    <xmx:QDAOaNsWPwNpJaqiq9ePfoQ5KndvyQyRCrxF3OLtM6a0kbHMnOLZfQ>
    <xmx:QDAOaJEZMI136cXoIF5aYkZ7hn8NjHqwJWDMBmNR788DGx1BNTk9sg>
    <xmx:QjAOaJ6NussH3fWrDag9b8dt8QSa-PFtZFBcVuJ8G-i4rKHsw1OehSpN>
Feedback-ID: i56a14606:Fastmail
X-Mailer: MessagingEngine.com Webmail Interface
MIME-Version: 1.0
X-ThreadId: T6ef4c78fde3bfaf8
Date: Sun, 27 Apr 2025 15:24:59 +0200
From: "Arnd Bergmann" <arnd@arndb.de>
To: "Ingo Molnar" <mingo@kernel.org>
Cc: "Arnd Bergmann" <arnd@kernel.org>, "Thomas Gleixner" <tglx@linutronix.de>,
 "Ingo Molnar" <mingo@redhat.com>, "Borislav Petkov" <bp@alien8.de>,
 "Dave Hansen" <dave.hansen@linux.intel.com>, x86@kernel.org,
 "H. Peter Anvin" <hpa@zytor.com>, "Juergen Gross" <jgross@suse.com>,
 "Boris Ostrovsky" <boris.ostrovsky@oracle.com>,
 "Alexander Usyskin" <alexander.usyskin@intel.com>,
 "Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
 =?UTF-8?Q?Mateusz_Jo=C5=84czyk?= <mat.jonczyk@o2.pl>,
 "Mike Rapoport" <rppt@kernel.org>, "Ard Biesheuvel" <ardb@kernel.org>,
 "Peter Zijlstra" <peterz@infradead.org>, linux-kernel@vger.kernel.org,
 xen-devel@lists.xenproject.org,
 "Linus Torvalds" <torvalds@linux-foundation.org>
Message-Id: <0fc64201-03cc-4c3e-af86-7ef11c3505a0@app.fastmail.com>
In-Reply-To: <aA0vft1cPuvzdZvJ@gmail.com>
References: <20250425141740.734030-1-arnd@kernel.org>
 <aAyiganPp_UsNlnZ@gmail.com>
 <d2b0e71c-e79b-40d6-8693-3202cd894d66@app.fastmail.com>
 <aA0vft1cPuvzdZvJ@gmail.com>
Subject: Re: [PATCH] [RFC] x86/cpu: rework instruction set selection
Content-Type: text/plain
Content-Transfer-Encoding: 7bit

On Sat, Apr 26, 2025, at 21:09, Ingo Molnar wrote:
> * Arnd Bergmann <arnd@arndb.de> wrote:
>
>> CMOV is missing not just on old Socket 5/7 CPUs (Pentium MMX, AMD K6, 
>> Cyrix MII) but also newer embedded Via C3, Geode GX and 
>> Vortex86DX/MX/EX/DX2. The replacement Nehemiah (2003), GeodeLX (2005) 
>> and Vortex86DX3/EX2 (2015!) have CMOV, but the old ones were sold 
>> alongside them for years, and some of the 586-class Vortex86 products 
>> are still commercially available.
>
> Very few (if any) of the commercially available products will run 
> modern 6.16+ kernels, right?

No, at least not in absolute numbers. As far as I can tell, the RDC
SoC family is the only one that is still around, after Quark, Geode
and Eden were all discontinued around 2019.

There are multiple known RDC licensees (DM&P/Vortex86, xlichip) and
probably a few more with custom chips. They lag behind Intel and AMD
by about one patent expiration time, and maybe a decade behind Arm
SoCs, so they only just arrived at quad-core SMP, LPDDR4, and SSSE3
instructions and have announced upcoming 64-bit chips.

They do have super-long support cycles, and there are a few markets
that absolutely require kernel updates for many years, so I would
still consider the 586-class embedded chips more relevant for future
kernels than 30 year old PCs, and the 686-class embedded chips
more relevant than 20 year old laptops.

> Note that the real danger the 32-bit x86 kernel is going to be facing 
> in 2-5 years is total removal due to lack of development interest, but 
> I think we can support 686+ reasonably far into the future, and can 
> keep it tested reasonably - while covering like 99%+ of the currently 
> available 32-bit-only x86 products on the market. The fewer variants, 
> the better.

I agree that this is the endgame for x86-32 and that eventually
the while thing will be remove, and every simplification helps, but
I still don't think that removing 586 earlier helps enough to
outweigh the cost here.

The situation is similar on 32-bit Arm, where we currently support
armv4, armv4t, armv5, armv6, armv6k, armv7, armv7ve and armv8-aarch32.
Removing armv3 a few years ago helped a lot, removing the extremely
rare armv6 will help as well, but there is little value in dropping
CPU support for v4 and v4t as long as v5 is there, or v6k and v7
as long as we have v7ve and v8-aarch32. My guess would be that we
can remove armv4/v4t/v5 at the same time as i586/i686 and
some other 32-bit targets, followed by armv7/v7ve/v8-aarch32
much later.

       Arnd


From xen-devel-bounces@lists.xenproject.org Sun Apr 27 19:17:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 27 Apr 2025 19:17:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.969917.1358767 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u97VI-0004vZ-Oo; Sun, 27 Apr 2025 19:17:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 969917.1358767; Sun, 27 Apr 2025 19: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 1u97VI-0004vS-LG; Sun, 27 Apr 2025 19:17:28 +0000
Received: by outflank-mailman (input) for mailman id 969917;
 Sun, 27 Apr 2025 19:17: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=xsIV=XN=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u97VH-0004vL-VU
 for xen-devel@lists.xenproject.org; Sun, 27 Apr 2025 19:17:27 +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 40c9a494-239c-11f0-9eb4-5ba50f476ded;
 Sun, 27 Apr 2025 21:17:25 +0200 (CEST)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-3913d129c1aso2620810f8f.0
 for <xen-devel@lists.xenproject.org>; Sun, 27 Apr 2025 12:17:25 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3a073cbed98sm8856912f8f.48.2025.04.27.12.17.23
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 27 Apr 2025 12:17: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: 40c9a494-239c-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745781445; x=1746386245; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=fgo1HhhwzN6JMUrp7rwymnKFHp8snUhIVeQypKZNvBA=;
        b=m24n4BVAn9CFwNDAAZFYuLtjwnilnRMGXCNRr6CA2Pkr3pyloTs6Ak4K6JYEcmBNeG
         ghRL3EK6Gv5bmFvhjqKGFcH7Y21dcABgyljFBpElh/dOEHgJDTTJ0vr0+SeubMXJhPEA
         mR0lnB4rvkKh/k7wDC1RxtpTSvXydEL9T9LfM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745781445; x=1746386245;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=fgo1HhhwzN6JMUrp7rwymnKFHp8snUhIVeQypKZNvBA=;
        b=vOu1pSatCrPFNE2aMorEiRh676qTW9XXC8iXn3UOauuCjPIB/FJY+zCVj3mhTgLDhX
         pZuZHVPpPcGctO2GSIB9+qL27HW9R/9RM4VoSz+796pBd9ONAeVrQ2+eUKPGVSthCt89
         Basdih78GOlutplCCgmENxJ0xj7bbOW91oHZ5jsiUqSwspcMMbovPzfr6u5O5I1/tbz5
         qCc7rR+VVXtZebmZf7tFh7NFVE4lPqAn6LY0omw8WbZu1Mz+LBMksxXj4UU9q09xZLub
         S2TzR2LM4yfum35PE75HnUS70jxmMB77NHdoqRJ0Qa0m554pGyl2bFl81AVhOSquD6TW
         wVgw==
X-Forwarded-Encrypted: i=1; AJvYcCWgEnmCRuU9U18X92ZuleBGz3jwfS3AeojSismIP8/DLTQ5QkQcG/MlmsKjt3GAMlvyh1J7GGYDtoY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyIA3+q2i6nUsRECRjP/8PftqyimY4bU+QholM4XRcYwR58fyVL
	7S5Vtwo9mwykYbNKAHF0hIvUjBpNInH3TKVAYiJMTsWmtHTY/quvvu7JqGVI5cA=
X-Gm-Gg: ASbGnctuIhnCJcHJMg/LthbiAkoyKzQRKPfGxXO8s+Y1NU4tsjuyWMo9313tjubwEzm
	Gqoh60frtV3EbLnQr2i8kjp/6XDmHKTNzl2gAzEihbrnIZl0Cp93FBsXYw6nDcR0m6jQoDzopOj
	2b1hsuPlimhgWHZw4Cy4UGg5Jrb8u0fVX/UJZ5NtvohUCxl651nyu6aiFmuQ11mcaJlYU/VOMwc
	lwSdYkFd0vJDcyey4lYUdZNUBq3s8u7t3MHLoCljhlJn/5M9C+dMjvKc2pCHRLvcARSTIkN+qak
	KC/HY7A0xLF9qk1js2ja0xj4xi3XWu6nHMOruEeoCnRa8eOySSB9UboyQ1OpdAlJKzwUH6Gvpua
	2dq4m9g==
X-Google-Smtp-Source: AGHT+IEhY5ybFGwjwKL2hzuwU29xJrgD8a5nx3iWjWsIG0Ko+irFEcz15VvGRESsIA9aEaOvT884qw==
X-Received: by 2002:a05:6000:186c:b0:39b:f44b:e176 with SMTP id ffacd0b85a97d-3a06d6dd50fmr10870062f8f.24.1745781445304;
        Sun, 27 Apr 2025 12:17:25 -0700 (PDT)
Message-ID: <e54f1943-e0ff-4f59-b24f-9b5a7a38becf@citrix.com>
Date: Sun, 27 Apr 2025 20:17:23 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] [RFC] x86/cpu: rework instruction set selection
To: Linus Torvalds <torvalds@linux-foundation.org>,
 Arnd Bergmann <arnd@arndb.de>
Cc: Ingo Molnar <mingo@kernel.org>, Arnd Bergmann <arnd@kernel.org>,
 Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>,
 Juergen Gross <jgross@suse.com>, Boris Ostrovsky
 <boris.ostrovsky@oracle.com>, Alexander Usyskin
 <alexander.usyskin@intel.com>,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
 =?UTF-8?Q?Mateusz_Jo=C5=84czyk?= <mat.jonczyk@o2.pl>,
 Mike Rapoport <rppt@kernel.org>, Ard Biesheuvel <ardb@kernel.org>,
 Peter Zijlstra <peterz@infradead.org>, linux-kernel@vger.kernel.org,
 xen-devel@lists.xenproject.org
References: <20250425141740.734030-1-arnd@kernel.org>
 <aAyiganPp_UsNlnZ@gmail.com>
 <d2b0e71c-e79b-40d6-8693-3202cd894d66@app.fastmail.com>
 <CAHk-=wh=TUsVv6xhtzYsWJwJggrjyOfYT3kBu+bHtoYLK0M9Xw@mail.gmail.com>
 <CAHk-=wgfk69H-T-vMWR33xUpVsWJLrF34d0OwUXa2sHhtpSwZg@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: <CAHk-=wgfk69H-T-vMWR33xUpVsWJLrF34d0OwUXa2sHhtpSwZg@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 26/04/2025 8:55 pm, Linus Torvalds wrote:
> So I think that manual cmov pattern for x86-32 should be replaced with
>
>         bool zero;
>
>         asm("bsfl %[in],%[out]"
>             CC_SET(z)
>             : CC_OUT(z) (zero),
>               [out]"=r" (r)
>             : [in] "rm" (x));
>
>         return zero ? 0 : r+1;
>
> instead (that's ffs(), and fls() would need the same thing except with
> bsrl insteadm, of course).
>
> I bet that would actually improve code generation.

It is possible to do better still.

ffs/fls are commonly found inside loops where x is the loop condition
too.  Therefore, using statically_true() to provide a form without the
zero compatibility turns out to be a win.

> And I also bet it doesn't actually matter, of course.

Something that neither Linux nor Xen had, which makes a reasonable
difference, is a for_each_set_bit() optimised over a scalar value.  The
existing APIs make it all too easy to spill the loop condition to memory.

~Andrew


From xen-devel-bounces@lists.xenproject.org Sun Apr 27 19:35:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 27 Apr 2025 19:35:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.969930.1358777 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u97mT-0007wj-4T; Sun, 27 Apr 2025 19:35:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 969930.1358777; Sun, 27 Apr 2025 19:35: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 1u97mT-0007wc-1f; Sun, 27 Apr 2025 19:35:13 +0000
Received: by outflank-mailman (input) for mailman id 969930;
 Sun, 27 Apr 2025 19:35: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=yb2U=XN=linuxfoundation.org=torvalds@srs-se1.protection.inumbo.net>)
 id 1u97mR-0007wW-Be
 for xen-devel@lists.xenproject.org; Sun, 27 Apr 2025 19:35: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 b999a301-239e-11f0-9eb4-5ba50f476ded;
 Sun, 27 Apr 2025 21:35:07 +0200 (CEST)
Received: by mail-ed1-x532.google.com with SMTP id
 4fb4d7f45d1cf-5e5c7d6b96fso7773683a12.3
 for <xen-devel@lists.xenproject.org>; Sun, 27 Apr 2025 12:35:07 -0700 (PDT)
Received: from mail-ej1-f44.google.com (mail-ej1-f44.google.com.
 [209.85.218.44]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5f7011fc469sm4529449a12.7.2025.04.27.12.35.03
 for <xen-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 27 Apr 2025 12:35:03 -0700 (PDT)
Received: by mail-ej1-f44.google.com with SMTP id
 a640c23a62f3a-ac2ab99e16eso870838366b.0
 for <xen-devel@lists.xenproject.org>; Sun, 27 Apr 2025 12:35: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: b999a301-239e-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linux-foundation.org; s=google; t=1745782507; x=1746387307; darn=lists.xenproject.org;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:from:to:cc:subject:date:message-id:reply-to;
        bh=5rN1yxa+VmayTbEeOUM6CUkhiAacZjPAguEXDsRJf1s=;
        b=dlg5nB/XfgzVooDLOKfNEEQBwm68blxl2y06bWoXmKvuPBcwpk7daSIzzh6UeK2lUR
         WBQP2I7V681mnjtzeBlOlg7bIyurwWr5G/SZzg//TwQHlHzskiYjR7lQnY+p1wDkiY57
         CBwcdnxkbXcJVaWQLQGCINh2hSCiM3B+aqBXw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745782507; x=1746387307;
        h=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=5rN1yxa+VmayTbEeOUM6CUkhiAacZjPAguEXDsRJf1s=;
        b=p8BX6oME7hWDD3H8nyHHdXOPOP/cLeaxpIA92cZB8CgaXTMjmeZfkS2eS9IYQg7XBR
         JGkKm70+Z4vnVnefEeR4zeAy2/eMI35VgZd5LiHuMXakEOB9hLVI43L/f1NaFk6e2vck
         NnENgggVcBwz+YCFSQZZGHcbfWfKNbP2OLkkLc4C/FJrkKHCARAXmJh8Z1SrZKOWqAoL
         pvom8KswtbzUKbm8bQgpC8LkbfLxPRGZ3ypVT8zNOZzZjaQ2obp0MYBCu0LeUl9qQHtn
         8BLZlK1w2GmZdxmG/6t5sNQmuMxe+TM3AXVUekCljFLN9N9bZ1lEx6S2Sw8IPKiw4xlJ
         wNtg==
X-Forwarded-Encrypted: i=1; AJvYcCWhf6uH24/6t8+PgTY30TR9um5sXfSqh12PPmow/kuHipVjOGzlYdbXxu7eV4fqkVvuxFvPy0AbBSU=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy1nLCpHnmpJCpM7/Mgy1lR5sWFsfOqyPKBWju4GtOWmHT1vjih
	ZqBwGV0nBPYJmq7Rz6CdnegGLZrOXDcle7Fzy9AfLSYIhDcX9zpY5m+4nDGDiEI4KvuXgFHFpoI
	xlc1lSA==
X-Gm-Gg: ASbGnctq/Ix0IBzK+2t+TzAWxj5XTD7L8CC5STSeJ+vJaFMLy2/wx9xZ9aXy/NQ4xC5
	a+rXX77hduH2sJzqYancuhY3/FHHCdi2hnpS6WFJBP3Ec2aB2FEhkROz+xLXyVD1hGgW0BJfePh
	UWeNm147oP4f8QAqh/ioto+PdhCZ/R7JyzzL0lQy1E9tp6ZGKdmU4uuwV9HkyOkTGhnG3gFsFDf
	fh9lBSTHKKJJAitaj0gHpurg1YTkzF5tu0umpY5VFC4qQYtP/SvscvMuCWIngtOFkU6/smebbz8
	Q4Y46gK1N1+kLWl4/ZsCXPq2LLXj209F+Y9YuB3MyuaMbnkndQfX+A6ow+7ln+VQORq/aSy2hW4
	rLeEhQmgx0QzaQyY=
X-Google-Smtp-Source: AGHT+IFSMVc2z4iqSY0FBMF1TcF2YZ3vDGsx2bbXrjPQ60FK/WDDeStPAfqIIaoxgQzHNOzpFw8c8Q==
X-Received: by 2002:a05:6402:5004:b0:5f4:d5c7:d6f7 with SMTP id 4fb4d7f45d1cf-5f72267b590mr6855576a12.8.1745782506795;
        Sun, 27 Apr 2025 12:35:06 -0700 (PDT)
X-Forwarded-Encrypted: i=1; AJvYcCWrB26mJZMk52JtQqhbupcvPiWU8PvSQkQ4mWzFHitsxO0/sohFBSC8K86ZS7QBbI7dfvzaZHyxE4s=@lists.xenproject.org
X-Received: by 2002:a17:907:7255:b0:ace:3be2:bde6 with SMTP id
 a640c23a62f3a-ace713ab817mr839196166b.56.1745782502956; Sun, 27 Apr 2025
 12:35:02 -0700 (PDT)
MIME-Version: 1.0
References: <20250425141740.734030-1-arnd@kernel.org> <aAyiganPp_UsNlnZ@gmail.com>
 <d2b0e71c-e79b-40d6-8693-3202cd894d66@app.fastmail.com> <CAHk-=wh=TUsVv6xhtzYsWJwJggrjyOfYT3kBu+bHtoYLK0M9Xw@mail.gmail.com>
 <CAHk-=wgfk69H-T-vMWR33xUpVsWJLrF34d0OwUXa2sHhtpSwZg@mail.gmail.com> <e54f1943-e0ff-4f59-b24f-9b5a7a38becf@citrix.com>
In-Reply-To: <e54f1943-e0ff-4f59-b24f-9b5a7a38becf@citrix.com>
From: Linus Torvalds <torvalds@linux-foundation.org>
Date: Sun, 27 Apr 2025 12:34:46 -0700
X-Gmail-Original-Message-ID: <CAHk-=wj0S2vWui0Y+1hpYMEhCiXKexbQ01h+Ckvww8hB29az_A@mail.gmail.com>
X-Gm-Features: ATxdqUG0Iakpe0wsIdSBOIf6OimwvL9XYTZUODPdBy5LQnvL_Hn8VAMvhzggDyc
Message-ID: <CAHk-=wj0S2vWui0Y+1hpYMEhCiXKexbQ01h+Ckvww8hB29az_A@mail.gmail.com>
Subject: Re: [PATCH] [RFC] x86/cpu: rework instruction set selection
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Arnd Bergmann <arnd@arndb.de>, Ingo Molnar <mingo@kernel.org>, Arnd Bergmann <arnd@kernel.org>, 
	Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>, 
	Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, 
	"H. Peter Anvin" <hpa@zytor.com>, Juergen Gross <jgross@suse.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, 
	Alexander Usyskin <alexander.usyskin@intel.com>, 
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>, =?UTF-8?Q?Mateusz_Jo=C5=84czyk?= <mat.jonczyk@o2.pl>, 
	Mike Rapoport <rppt@kernel.org>, Ard Biesheuvel <ardb@kernel.org>, Peter Zijlstra <peterz@infradead.org>, 
	linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org
Content-Type: multipart/mixed; boundary="000000000000f1ea350633c7a98d"

--000000000000f1ea350633c7a98d
Content-Type: text/plain; charset="UTF-8"

On Sun, 27 Apr 2025 at 12:17, Andrew Cooper <andrew.cooper3@citrix.com> wrote:
>
> ffs/fls are commonly found inside loops where x is the loop condition
> too.  Therefore, using statically_true() to provide a form without the
> zero compatibility turns out to be a win.

We already have the version without the zero capability - it's just
called "__ffs()" and "__fls()", and performance-critical code uses
those.

So fls/ffs are the "standard" library functions that have to handle
zero, and add that stupid "+1" because that interface was designed by
some Pascal person who doesn't understand that we start counting from
0.

Standards bodies: "companies aren't sending their best people".

But it's silly that we then spend effort on magic cmov in inline asm
on those things when it's literally the "don't use this version unless
you don't actually care about performance" case.

I don't think it would be wrong to just make the x86-32 code just do
the check against zero ahead of time - in C.

And yes, that will generate some extra code - you'll test for zero
before, and then the caller might also test for a zero result that
then results in another test for zero that can't actually happen (but
the compiler doesn't know that). But I suspect that on the whole, it
is likely to generate better code anyway just because the compiler
sees that first test and can DTRT.

UNTESTED patch applied in case somebody wants to play with this. It
removes 10 lines of silly code, and along with them that 'cmov' use.

Anybody?

              Linus

--000000000000f1ea350633c7a98d
Content-Type: text/x-patch; charset="US-ASCII"; name="patch.diff"
Content-Disposition: attachment; filename="patch.diff"
Content-Transfer-Encoding: base64
Content-ID: <f_ma01tdqy0>
X-Attachment-Id: f_ma01tdqy0

IGFyY2gveDg2L2luY2x1ZGUvYXNtL2JpdG9wcy5oIHwgMjIgKysrKysrLS0tLS0tLS0tLS0tLS0t
LQogMSBmaWxlIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgMTYgZGVsZXRpb25zKC0pCgpkaWZm
IC0tZ2l0IGEvYXJjaC94ODYvaW5jbHVkZS9hc20vYml0b3BzLmggYi9hcmNoL3g4Ni9pbmNsdWRl
L2FzbS9iaXRvcHMuaAppbmRleCAxMDA0MTNhZmY2NDAuLjYwNjFjODdmMTRhYyAxMDA2NDQKLS0t
IGEvYXJjaC94ODYvaW5jbHVkZS9hc20vYml0b3BzLmgKKysrIGIvYXJjaC94ODYvaW5jbHVkZS9h
c20vYml0b3BzLmgKQEAgLTMyMSwxNSArMzIxLDEwIEBAIHN0YXRpYyBfX2Fsd2F5c19pbmxpbmUg
aW50IHZhcmlhYmxlX2ZmcyhpbnQgeCkKIAlhc20oImJzZmwgJTEsJTAiCiAJICAgIDogIj1yIiAo
cikKIAkgICAgOiBBU01fSU5QVVRfUk0gKHgpLCAiMCIgKC0xKSk7Ci0jZWxpZiBkZWZpbmVkKENP
TkZJR19YODZfQ01PVikKLQlhc20oImJzZmwgJTEsJTBcblx0IgotCSAgICAiY21vdnpsICUyLCUw
IgotCSAgICA6ICI9JnIiIChyKSA6ICJybSIgKHgpLCAiciIgKC0xKSk7CiAjZWxzZQotCWFzbSgi
YnNmbCAlMSwlMFxuXHQiCi0JICAgICJqbnogMWZcblx0IgotCSAgICAibW92bCAkLTEsJTBcbiIK
LQkgICAgIjE6IiA6ICI9ciIgKHIpIDogInJtIiAoeCkpOworCWlmICgheCkKKwkJcmV0dXJuIDA7
CisJYXNtKCJic2ZsICUxLCUwIiA6ICI9ciIgKHIpIDogInJtIiAoeCkpOwogI2VuZGlmCiAJcmV0
dXJuIHIgKyAxOwogfQpAQCAtMzc4LDE1ICszNzMsMTAgQEAgc3RhdGljIF9fYWx3YXlzX2lubGlu
ZSBpbnQgZmxzKHVuc2lnbmVkIGludCB4KQogCWFzbSgiYnNybCAlMSwlMCIKIAkgICAgOiAiPXIi
IChyKQogCSAgICA6IEFTTV9JTlBVVF9STSAoeCksICIwIiAoLTEpKTsKLSNlbGlmIGRlZmluZWQo
Q09ORklHX1g4Nl9DTU9WKQotCWFzbSgiYnNybCAlMSwlMFxuXHQiCi0JICAgICJjbW92emwgJTIs
JTAiCi0JICAgIDogIj0mciIgKHIpIDogInJtIiAoeCksICJybSIgKC0xKSk7CiAjZWxzZQotCWFz
bSgiYnNybCAlMSwlMFxuXHQiCi0JICAgICJqbnogMWZcblx0IgotCSAgICAibW92bCAkLTEsJTBc
biIKLQkgICAgIjE6IiA6ICI9ciIgKHIpIDogInJtIiAoeCkpOworCWlmICgheCkKKwkJcmV0dXJu
IDA7CisJYXNtKCJic3JsICUxLCUwIiA6ICI9ciIgKHIpIDogInJtIiAoeCkpOwogI2VuZGlmCiAJ
cmV0dXJuIHIgKyAxOwogfQo=
--000000000000f1ea350633c7a98d--


From xen-devel-bounces@lists.xenproject.org Sun Apr 27 21:15:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 27 Apr 2025 21:15:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.969961.1358787 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u99L2-0004ZG-3L; Sun, 27 Apr 2025 21:15:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 969961.1358787; Sun, 27 Apr 2025 21:15: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 1u99L2-0004Z9-08; Sun, 27 Apr 2025 21:15:00 +0000
Received: by outflank-mailman (input) for mailman id 969961;
 Sun, 27 Apr 2025 21:14: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=ek1t=XN=zytor.com=hpa@srs-se1.protection.inumbo.net>)
 id 1u99L0-0004Z0-9R
 for xen-devel@lists.xenproject.org; Sun, 27 Apr 2025 21:14:58 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id aa4f72f6-23ac-11f0-9eb4-5ba50f476ded;
 Sun, 27 Apr 2025 23:14:56 +0200 (CEST)
Received: from [127.0.0.1] ([76.133.66.138]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53RLEA8k2362694
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NO);
 Sun, 27 Apr 2025 14:14:11 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: aa4f72f6-23ac-11f0-9eb4-5ba50f476ded
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53RLEA8k2362694
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745788453;
	bh=Ze1m1OgbxcZfPaCNHEsBfR0ywbk+v9kZ91CvQZouTMQ=;
	h=Date:From:To:CC:Subject:In-Reply-To:References:From;
	b=a2YmdlaIpllK835AsIbUOmmWXu+BdsjFA1bIjZtd1rmCRff4rMiC+tSkF8J24IgC9
	 9p/avXlujTKy0r9goDgxLmoif74E6xkCuwoxS2CcjD1XCvHudk4BFNG/s24W4ylej+
	 G0H1C/e9P+j65UBjqmqvvcDjFyOOpq5stU3gxzJLbn2immFU+9L/XBEU361oQW7Xp1
	 TuWbeKVswwCjnVuPOTaa+CHfw1ZhXxpXtxYO3Spsha0qWTX/bv85jbqIyAd4gnCEHN
	 +D6Wyj0SrnQeaJOeQSEo1r1ePHt9AAxAsTLsWmNfuHD9CrCOKX3DqE6MMHKnLUha3t
	 Ke7xCgh5ffqTQ==
Date: Sun, 27 Apr 2025 14:14:08 -0700
From: "H. Peter Anvin" <hpa@zytor.com>
To: Linus Torvalds <torvalds@linux-foundation.org>,
        Andrew Cooper <andrew.cooper3@citrix.com>
CC: Arnd Bergmann <arnd@arndb.de>, Ingo Molnar <mingo@kernel.org>,
        Arnd Bergmann <arnd@kernel.org>, Thomas Gleixner <tglx@linutronix.de>,
        Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
        Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org,
        Juergen Gross <jgross@suse.com>,
        Boris Ostrovsky <boris.ostrovsky@oracle.com>,
        Alexander Usyskin <alexander.usyskin@intel.com>,
        Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
        =?UTF-8?Q?Mateusz_Jo=C5=84czyk?= <mat.jonczyk@o2.pl>,
        Mike Rapoport <rppt@kernel.org>, Ard Biesheuvel <ardb@kernel.org>,
        Peter Zijlstra <peterz@infradead.org>, linux-kernel@vger.kernel.org,
        xen-devel@lists.xenproject.org
Subject: Re: [PATCH] [RFC] x86/cpu: rework instruction set selection
User-Agent: K-9 Mail for Android
In-Reply-To: <CAHk-=wj0S2vWui0Y+1hpYMEhCiXKexbQ01h+Ckvww8hB29az_A@mail.gmail.com>
References: <20250425141740.734030-1-arnd@kernel.org> <aAyiganPp_UsNlnZ@gmail.com> <d2b0e71c-e79b-40d6-8693-3202cd894d66@app.fastmail.com> <CAHk-=wh=TUsVv6xhtzYsWJwJggrjyOfYT3kBu+bHtoYLK0M9Xw@mail.gmail.com> <CAHk-=wgfk69H-T-vMWR33xUpVsWJLrF34d0OwUXa2sHhtpSwZg@mail.gmail.com> <e54f1943-e0ff-4f59-b24f-9b5a7a38becf@citrix.com> <CAHk-=wj0S2vWui0Y+1hpYMEhCiXKexbQ01h+Ckvww8hB29az_A@mail.gmail.com>
Message-ID: <D7FA06C2-119D-4405-9116-AC3203216406@zytor.com>
MIME-Version: 1.0
Content-Type: text/plain;
 charset=utf-8
Content-Transfer-Encoding: quoted-printable

On April 27, 2025 12:34:46 PM PDT, Linus Torvalds <torvalds@linux-foundatio=
n=2Eorg> wrote:
>On Sun, 27 Apr 2025 at 12:17, Andrew Cooper <andrew=2Ecooper3@citrix=2Eco=
m> wrote:
>>
>> ffs/fls are commonly found inside loops where x is the loop condition
>> too=2E  Therefore, using statically_true() to provide a form without th=
e
>> zero compatibility turns out to be a win=2E
>
>We already have the version without the zero capability - it's just
>called "__ffs()" and "__fls()", and performance-critical code uses
>those=2E
>
>So fls/ffs are the "standard" library functions that have to handle
>zero, and add that stupid "+1" because that interface was designed by
>some Pascal person who doesn't understand that we start counting from
>0=2E
>
>Standards bodies: "companies aren't sending their best people"=2E
>
>But it's silly that we then spend effort on magic cmov in inline asm
>on those things when it's literally the "don't use this version unless
>you don't actually care about performance" case=2E
>
>I don't think it would be wrong to just make the x86-32 code just do
>the check against zero ahead of time - in C=2E
>
>And yes, that will generate some extra code - you'll test for zero
>before, and then the caller might also test for a zero result that
>then results in another test for zero that can't actually happen (but
>the compiler doesn't know that)=2E But I suspect that on the whole, it
>is likely to generate better code anyway just because the compiler
>sees that first test and can DTRT=2E
>
>UNTESTED patch applied in case somebody wants to play with this=2E It
>removes 10 lines of silly code, and along with them that 'cmov' use=2E
>
>Anybody?
>
>              Linus

It's noteworthy that hardware implementations are now invariably using a d=
ifferent interface, which makes sense for the LSB case (tzcnt/ctz) but has =
its own drain bramage on for the MSB case (lzcnt/clz)=2E=2E=2E


From xen-devel-bounces@lists.xenproject.org Sun Apr 27 21:18:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 27 Apr 2025 21:18:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.969976.1358796 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u99OD-0005Cr-KU; Sun, 27 Apr 2025 21:18:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 969976.1358796; Sun, 27 Apr 2025 21:18: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 1u99OD-0005Ck-HZ; Sun, 27 Apr 2025 21:18:17 +0000
Received: by outflank-mailman (input) for mailman id 969976;
 Sun, 27 Apr 2025 21:18: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=ek1t=XN=zytor.com=hpa@srs-se1.protection.inumbo.net>)
 id 1u99OC-0005Ce-RZ
 for xen-devel@lists.xenproject.org; Sun, 27 Apr 2025 21:18:16 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2154e1d6-23ad-11f0-9eb4-5ba50f476ded;
 Sun, 27 Apr 2025 23:18:15 +0200 (CEST)
Received: from [127.0.0.1] ([76.133.66.138]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53RLHijD2366687
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NO);
 Sun, 27 Apr 2025 14:17:45 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2154e1d6-23ad-11f0-9eb4-5ba50f476ded
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53RLHijD2366687
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745788666;
	bh=Ef+g//iaW9SBhRKXRgfhdG7gKtyYpx61dluDthiBNSs=;
	h=Date:From:To:CC:Subject:In-Reply-To:References:From;
	b=GkFvbw7YIOrLDqxC8dr0MMnVn9SzT4F34CTnlxGX1qcHDO6jHfU+02Mm7CssRL1Aa
	 F9VROzOYsUKuUFtT+KA2MMRDxZkJyM9JllYxtKmZ41kApvJIHNa99YbajQ8UVMjkeO
	 I3QpXox8HpeQE6XvhBkFquJ7/gyExhh7MANSItFgrgwsMi6y/TTAkwRI05gqg7XiBD
	 RJ1LfjajQnxHE7jR2nLx3U2PIHFldZYe7n7QPyyjRPcRdqMPrwWOZNkX+CEUJStIs/
	 QMRoq5Xzof3PMtG5Lc8wFDBaX6N/OfBx3AMYF3X7KOHUvVmFj/kfOGNYLUJH2fMkdS
	 UGwfrYa8h3YTg==
Date: Sun, 27 Apr 2025 14:17:43 -0700
From: "H. Peter Anvin" <hpa@zytor.com>
To: Arnd Bergmann <arnd@arndb.de>, Ingo Molnar <mingo@kernel.org>
CC: Arnd Bergmann <arnd@kernel.org>, Thomas Gleixner <tglx@linutronix.de>,
        Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
        Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org,
        Juergen Gross <jgross@suse.com>,
        Boris Ostrovsky <boris.ostrovsky@oracle.com>,
        Alexander Usyskin <alexander.usyskin@intel.com>,
        Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
        =?UTF-8?Q?Mateusz_Jo=C5=84czyk?= <mat.jonczyk@o2.pl>,
        Mike Rapoport <rppt@kernel.org>, Ard Biesheuvel <ardb@kernel.org>,
        Peter Zijlstra <peterz@infradead.org>, linux-kernel@vger.kernel.org,
        xen-devel@lists.xenproject.org,
        Linus Torvalds <torvalds@linux-foundation.org>
Subject: Re: [PATCH] [RFC] x86/cpu: rework instruction set selection
User-Agent: K-9 Mail for Android
In-Reply-To: <0fc64201-03cc-4c3e-af86-7ef11c3505a0@app.fastmail.com>
References: <20250425141740.734030-1-arnd@kernel.org> <aAyiganPp_UsNlnZ@gmail.com> <d2b0e71c-e79b-40d6-8693-3202cd894d66@app.fastmail.com> <aA0vft1cPuvzdZvJ@gmail.com> <0fc64201-03cc-4c3e-af86-7ef11c3505a0@app.fastmail.com>
Message-ID: <E0609153-438F-4665-9291-CC848F3BE58B@zytor.com>
MIME-Version: 1.0
Content-Type: text/plain;
 charset=utf-8
Content-Transfer-Encoding: quoted-printable

On April 27, 2025 6:24:59 AM PDT, Arnd Bergmann <arnd@arndb=2Ede> wrote:
>On Sat, Apr 26, 2025, at 21:09, Ingo Molnar wrote:
>> * Arnd Bergmann <arnd@arndb=2Ede> wrote:
>>
>>> CMOV is missing not just on old Socket 5/7 CPUs (Pentium MMX, AMD K6,=
=20
>>> Cyrix MII) but also newer embedded Via C3, Geode GX and=20
>>> Vortex86DX/MX/EX/DX2=2E The replacement Nehemiah (2003), GeodeLX (2005=
)=20
>>> and Vortex86DX3/EX2 (2015!) have CMOV, but the old ones were sold=20
>>> alongside them for years, and some of the 586-class Vortex86 products=
=20
>>> are still commercially available=2E
>>
>> Very few (if any) of the commercially available products will run=20
>> modern 6=2E16+ kernels, right?
>
>No, at least not in absolute numbers=2E As far as I can tell, the RDC
>SoC family is the only one that is still around, after Quark, Geode
>and Eden were all discontinued around 2019=2E
>
>There are multiple known RDC licensees (DM&P/Vortex86, xlichip) and
>probably a few more with custom chips=2E They lag behind Intel and AMD
>by about one patent expiration time, and maybe a decade behind Arm
>SoCs, so they only just arrived at quad-core SMP, LPDDR4, and SSSE3
>instructions and have announced upcoming 64-bit chips=2E
>
>They do have super-long support cycles, and there are a few markets
>that absolutely require kernel updates for many years, so I would
>still consider the 586-class embedded chips more relevant for future
>kernels than 30 year old PCs, and the 686-class embedded chips
>more relevant than 20 year old laptops=2E
>
>> Note that the real danger the 32-bit x86 kernel is going to be facing=
=20
>> in 2-5 years is total removal due to lack of development interest, but=
=20
>> I think we can support 686+ reasonably far into the future, and can=20
>> keep it tested reasonably - while covering like 99%+ of the currently=
=20
>> available 32-bit-only x86 products on the market=2E The fewer variants,=
=20
>> the better=2E
>
>I agree that this is the endgame for x86-32 and that eventually
>the while thing will be remove, and every simplification helps, but
>I still don't think that removing 586 earlier helps enough to
>outweigh the cost here=2E
>
>The situation is similar on 32-bit Arm, where we currently support
>armv4, armv4t, armv5, armv6, armv6k, armv7, armv7ve and armv8-aarch32=2E
>Removing armv3 a few years ago helped a lot, removing the extremely
>rare armv6 will help as well, but there is little value in dropping
>CPU support for v4 and v4t as long as v5 is there, or v6k and v7
>as long as we have v7ve and v8-aarch32=2E My guess would be that we
>can remove armv4/v4t/v5 at the same time as i586/i686 and
>some other 32-bit targets, followed by armv7/v7ve/v8-aarch32
>much later=2E
>
>       Arnd

"Commercially available" doesn't mean "binary distribution=2E" There is a =
whold world beyond the desktop distros=2E

These kinds of systems run embedded stacks that are at least in part compi=
led by the appliance vendor to allow for higher configurability=2E



From xen-devel-bounces@lists.xenproject.org Mon Apr 28 01:48:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 01:48:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.970013.1358807 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9DbA-0004i0-N6; Mon, 28 Apr 2025 01:47:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 970013.1358807; Mon, 28 Apr 2025 01: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 1u9DbA-0004hs-IJ; Mon, 28 Apr 2025 01:47:56 +0000
Received: by outflank-mailman (input) for mailman id 970013;
 Mon, 28 Apr 2025 01: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=N2FI=XO=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u9Db8-0004hm-V0
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 01:47:55 +0000
Received: from mail-10631.protonmail.ch (mail-10631.protonmail.ch
 [79.135.106.31]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ca699850-23d2-11f0-9ffb-bf95429c2676;
 Mon, 28 Apr 2025 03:47:52 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ca699850-23d2-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1745804867; x=1746064067;
	bh=UMYjEXEuqWl7LjG6RLbe+r7fsYC4zyS9YbdfmdkFimU=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=F7G2FNK9gVT9I/FkVTSxarSNfdkmPbLxWLeK57BD66UeUiI3RUJF0GQauT7FID9oG
	 Ub4Sn19E3iAkJrpTlLggb9fiPjnb6F/r7/3KNvDgFIBGFGMMxUz+UNqP64no45tyIl
	 1n3ZRwykPRO+FtPy/YIwbnOcvDOMqncxwkqwrjltQ83kPJAtbzEju6IZebEi8vh9kn
	 wFmlMeAlPem8lkdDDANfOJxlNpBEQTUlQuT8Y8PAZfkzOncKfCP4Gk791xQtSBpbyr
	 PO2tUN090fapqwWy0efzVEZMw4mwbw4TuzR/aj94WK6l2PFbctsoXteFkAbIlZAJze
	 HOca2aHlgycPA==
Date: Mon, 28 Apr 2025 01:47:44 +0000
To: Stefano Stabellini <sstabellini@kernel.org>
From: dmkhn@proton.me
Cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com, dmukhin@ford.com
Subject: Re: [PATCH v1 2/3] xen/console: introduce console_puts()
Message-ID: <aA7ePF23LExpH9NW@kraken>
In-Reply-To: <alpine.DEB.2.22.394.2504251545480.785180@ubuntu-linux-20-04-desktop>
References: <20250403000604.169619-1-dmukhin@ford.com> <20250403000604.169619-3-dmukhin@ford.com> <alpine.DEB.2.22.394.2504251545480.785180@ubuntu-linux-20-04-desktop>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 33d94894bbf7cfdd3c4c08e9d53b2f45d63f4b2f
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Fri, Apr 25, 2025 at 03:47:53PM -0700, Stefano Stabellini wrote:
> On Thu, 3 Apr 2025, dmkhn@proton.me wrote:
> > From: Denis Mukhin <dmukhin@ford.com>
> >
> > guest_console_write() duplicates the code from __putstr(), eliminate co=
de
> > duplication.
> >
> > Introduce console_puts() for writing a buffer to console devices.
> >
> > Also, introduce internal console flags to control which console devices
> > should be used.
> >
> > Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> > ---
> >  xen/drivers/char/console.c | 112 ++++++++++++++++++++++---------------
> >  1 file changed, 66 insertions(+), 46 deletions(-)
> >
> > diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
> > index aaa97088aa..2618c2e47d 100644
> > --- a/xen/drivers/char/console.c
> > +++ b/xen/drivers/char/console.c
> > @@ -41,6 +41,20 @@
> >  #include <asm/vpl011.h>
> >  #endif
> >
> > +/* Internal console flags. */
> > +enum {
> > +    CONSOLE_SERIAL  =3D BIT(0, U),    /* Use serial device. */
> > +    CONSOLE_PV      =3D BIT(1, U),    /* Use PV console. */
> > +    CONSOLE_VIDEO   =3D BIT(2, U),    /* Use video device. */
> > +    CONSOLE_DEBUG   =3D BIT(3, U),    /* Use debug device. */
> > +    CONSOLE_RING    =3D BIT(4, U),    /* Use console ring. */
> > +    CONSOLE_DEFAULT =3D CONSOLE_SERIAL | CONSOLE_PV | CONSOLE_VIDEO |
> > +                      CONSOLE_DEBUG,
> > +    CONSOLE_ALL     =3D CONSOLE_DEFAULT | CONSOLE_RING,
> > +};
> > +
> > +static void console_puts(const char *str, size_t len, unsigned int fla=
gs);
> > +
> >  /* console: comma-separated list of console outputs. */
> >  static char __initdata opt_console[30] =3D OPT_CONSOLE_STR;
> >  string_param("console", opt_console);
> > @@ -338,8 +352,6 @@ static bool console_locks_busted;
> >
> >  static void conring_puts(const char *str, size_t len)
> >  {
> > -    ASSERT(rspin_is_locked(&console_lock));
> > -
> >      while ( len-- )
> >          conring[CONRING_IDX_MASK(conringp++)] =3D *str++;
> >
> > @@ -432,9 +444,6 @@ void console_serial_puts(const char *s, size_t nr)
> >          serial_steal_fn(s, nr);
> >      else
> >          serial_puts(sercon_handle, s, nr);
> > -
> > -    /* Copy all serial output into PV console */
> > -    pv_console_puts(s, nr);
> >  }
> >
> >  static void cf_check dump_console_ring_key(unsigned char key)
> > @@ -468,8 +477,7 @@ static void cf_check dump_console_ring_key(unsigned=
 char key)
> >          c +=3D len;
> >      }
> >
> > -    console_serial_puts(buf, sofar);
> > -    video_puts(buf, sofar);
> > +    console_puts(buf, sofar, CONSOLE_SERIAL | CONSOLE_VIDEO | CONSOLE_=
PV);
>=20
> Actually I take back the R-b. It looks like this change is breaking
> because console_puts now requires the console_lock to be held, while
> here the console_lock is not held.

Yes, the locking is wrong, thanks for the catch!
Lock adjustment from Patch 3 should be moved to Patch 2 (here).

>=20
> If I am not mistaken if you try to use the 'w' key with this patch
> applied you'll hit the ASSERT at the beginning of console_puts
>=20
>=20
> >      free_xenheap_pages(buf, order);
> >  }
> > @@ -618,11 +626,61 @@ static inline void xen_console_write_debug_port(c=
onst char *buf, size_t len)
> >  }
> >  #endif
> >
> > +static inline void console_debug_puts(const char *str, size_t 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
> > +}
> > +
> > +/*
> > + * Write buffer to all enabled console devices.
> > + *
> > + * That will handle all possible scenarios working w/ console
> > + * - physical console (serial console, VGA console (x86 only));
> > + * - PV console;
> > + * - debug console (x86 only): debug I/O port or __HYPERVISOR_console_=
io
> > + *   hypercall;
> > + * - console ring.
> > + */
> > +static void console_puts(const char *str, size_t len, unsigned int fla=
gs)
> > +{
> > +    ASSERT(rspin_is_locked(&console_lock));
> > +
> > +    if ( flags & CONSOLE_SERIAL )
> > +        console_serial_puts(str, len);
> > +
> > +    if ( flags & CONSOLE_PV )
> > +        pv_console_puts(str, len);
> > +
> > +    if ( flags & CONSOLE_VIDEO )
> > +        video_puts(str, len);
> > +
> > +    if ( flags & CONSOLE_DEBUG )
> > +        console_debug_puts(str, len);
> > +
> > +    if ( flags & CONSOLE_RING )
> > +        conring_puts(str, len);
> > +}
> > +
> > +static inline void __putstr(const char *str)
> > +{
> > +    console_puts(str, strlen(str), CONSOLE_ALL);
> > +}
> > +
> >  static long guest_console_write(XEN_GUEST_HANDLE_PARAM(char) buffer,
> >                                  unsigned int count)
> >  {
> >      char kbuf[128];
> >      unsigned int kcount =3D 0;
> > +    unsigned int flags =3D opt_console_to_ring
> > +                         ? CONSOLE_ALL : CONSOLE_DEFAULT;
> >      struct domain *cd =3D current->domain;
> >
> >      while ( count > 0 )
> > @@ -640,23 +698,7 @@ static long guest_console_write(XEN_GUEST_HANDLE_P=
ARAM(char) buffer,
> >          {
> >              /* 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);
> > -
> > +            console_puts(kbuf, kcount, flags);
> >              nrspin_unlock_irq(&console_lock);
> >          }
> >          else
> > @@ -757,28 +799,6 @@ long do_console_io(
> >   * *****************************************************
> >   */
> >
> > -static void __putstr(const char *str)
> > -{
> > -    size_t len =3D 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);
> > -}
> > -
> >  static int printk_prefix_check(char *p, char **pp)
> >  {
> >      int loglvl =3D -1;
> > --
> > 2.34.1
> >
> >



From xen-devel-bounces@lists.xenproject.org Mon Apr 28 06:15:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 06:15:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.970029.1358817 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9HmJ-00062N-NQ; Mon, 28 Apr 2025 06:15:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 970029.1358817; Mon, 28 Apr 2025 06: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 1u9HmJ-00062G-K0; Mon, 28 Apr 2025 06:15:43 +0000
Received: by outflank-mailman (input) for mailman id 970029;
 Mon, 28 Apr 2025 06:15:42 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=5hYN=XO=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u9HmI-00062A-FX
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 06:15:42 +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 3433a2d6-23f8-11f0-9eb4-5ba50f476ded;
 Mon, 28 Apr 2025 08:15:38 +0200 (CEST)
Received: by mail-wr1-x433.google.com with SMTP id
 ffacd0b85a97d-39ee623fe64so4305945f8f.1
 for <xen-devel@lists.xenproject.org>; Sun, 27 Apr 2025 23:15:38 -0700 (PDT)
Received: from [10.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-3a073bbeb5esm10092810f8f.0.2025.04.27.23.15.37
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 27 Apr 2025 23:15:37 -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: 3433a2d6-23f8-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745820938; x=1746425738; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=yJvfQki8gan86GKv7XwVCsTyZrKf/Z038F1BPF/KQZI=;
        b=PRxQ2j0JRDnoV4LOLfTnsDLH9JITpD2KXe6FA4cLgAZF+xRCnu78uSQIX+1nNR9qqE
         mh1Q5KaRMS7bdNtZL4/g6cA7qyHoZjC95tzAOQSUiHjXut/mO+qrAJnjaK4UcK0Oq6Uj
         uKsuFqy9p+/v77T2ijoZT/TKdvdXLZbTbTnfG1OXNxlVwfI3HYSuUFh4VpZ+JtrCihrk
         5G9oSCut/OlFg1/BmsOYAhWDywkX/UeMtXMphxNFNB9xPiFF8ts7TK0/GkyGXzgQk6Z1
         KScCfcm8SqFTWgxlRV2R0s0z8ZeiTUQvqNJX1GkRjBXSIW61eknjp3mu5NLFJIrCA+/F
         fUAQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745820938; x=1746425738;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=yJvfQki8gan86GKv7XwVCsTyZrKf/Z038F1BPF/KQZI=;
        b=ocX5Gg071JAVTKVl6KHnLvp3fzKbHMeShpehm1zvxB0OdxtB2YRq7HZ0W2sAtLITzu
         S4NTJ48H+BgcLiS1foUKlZ2fRemdhggBKPgKSdH1UDMV08/XToDc7RF+7tnrLiKJq7ps
         WxEcXuhOkzt15LNTPsKRJOw5RiNXP4EiVqpMQzhqNiQtICS+q8BwBcflRS0NJIqZnBMu
         3fP/WVHE9NRanOQuFkiyjfPCmBIS2GfibEAvLPnznfx6u6VnM/1uPZ+Av7oc63eBIvJ9
         vc0rT8ORq8qyOojRvoE1kjCu2UhvieqXVgKIJXcCnEhcoGvIT058ow1wf0ieJ1eHCurh
         IfPA==
X-Forwarded-Encrypted: i=1; AJvYcCUNI5hxPE+1VOqMN/mtHd+PgnTh5++YOiq2KJhAOYzPnNQL/wyW+yZhs3s/Z344HmOCX6ALdc7Bhqs=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwlAOQbJfqp0WIW8piuPt5rH+VusjrOmydLLP7qp5uVjR4rNYIT
	8h+p35P5EbmqnY4I4DEhu24Bg+MQUQi3mq4AxEC46sybGN7oNMw3YwJ/XFG1Ug==
X-Gm-Gg: ASbGnctwYOjFuenjOf/kbmtucqkOo55Fa45VBhVurPdTOgAiLfPNJhGh6qGTVfVUYel
	D6XHpvTa2M8X+cyBHuFcYTfdFVCoMwSjs6BMmq59XIn74p2bi+FLhX92yZNeTYUfoR7RAVnd2Nb
	M6z8M3EAACrKXQJgOG+aPDo9m7uPYeH2uZWszn7muy0Q0WnFZkGEGKXkwO3cVzFoS8pOPWSUsBu
	KkHxnRAlyZQRhPV8y2zQIYE/b59cb0dEZ8vbcX4quWAzDeYjTU4I8jfbbVs5ZdxvV3O7GnJtdGo
	OpZv/fY2FByXXW1lz2KBK4OfF8/qVYf+X6J2C9vvoPcfeq1VNQWrOFmgJcTtYEYLB7a8LXIEORZ
	flpciJ3HCQ3CzgRFPFCkVMQ/ANw==
X-Google-Smtp-Source: AGHT+IE+iK2pfWqyQ/6QhtAyQfIGiQMz6ciuNOkk8TkOxnhiHOFWWUsSgnrZCcdobvnHgKHO/gfjxg==
X-Received: by 2002:a05:6000:4310:b0:39c:dfa:c92a with SMTP id ffacd0b85a97d-3a074f11d2amr7798280f8f.36.1745820937858;
        Sun, 27 Apr 2025 23:15:37 -0700 (PDT)
Message-ID: <b7f7ab2b-baaa-416f-b390-5ed2229d34cb@suse.com>
Date: Mon, 28 Apr 2025 08:15:38 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1] misra: add deviation for rules 21.1 and 21.2
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, victorm.lira@amd.com,
 Federico Serafini <federico.serafini@bugseng.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>, xen-devel@lists.xenproject.org
References: <9e1210f2a9c794d68dcc6b897239b228b141296a.1745427770.git.victorm.lira@amd.com>
 <f5d35582-9270-4816-84c2-f078afeee711@suse.com>
 <alpine.DEB.2.22.394.2504241443550.785180@ubuntu-linux-20-04-desktop>
 <8d65ee65-ec6f-49a3-8954-d303b08dc2df@suse.com>
 <a9db045cff906a4b7db8730ad1095e4b@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: <a9db045cff906a4b7db8730ad1095e4b@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 25.04.2025 17:53, Nicola Vetrini wrote:
> On 2025-04-25 10:07, Jan Beulich wrote:
>> On 24.04.2025 23:45, Stefano Stabellini wrote:
>>> On Thu, 24 Apr 2025, Jan Beulich wrote:
>>>> On 23.04.2025 19:54, victorm.lira@amd.com wrote:
>>>>> From: Nicola Vetrini <nicola.vetrini@bugseng.com>
>>>>>
>>>>> MISRA C Rules 21.1 ("#define and #undef shall not be used on a
>>>>> reserved identifier or reserved macro name") and R21.2 ("A reserved
>>>>> identifier or reserved macro name shall not be declared") violations
>>>>> are not problematic for Xen, as it does not use the C or POSIX
>>>>> libraries.
>>>>>
>>>>> Xen uses -fno-builtin and -nostdinc to ensure this, but there are 
>>>>> still
>>>>> __builtin_* functions from the compiler that are available so
>>>>> a deviation is formulated for all identifiers not starting with
>>>>> "__builtin_".
>>>>>
>>>>> The missing text of a deviation for Rule 21.2 is added to
>>>>> docs/misra/deviations.rst.
>>>>>
>>>>> To avoid regressions, tag both rules as clean and add them to the
>>>>> monitored set.
>>>>>
>>>>> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
>>>>> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
>>>>> Signed-off-by: Victor Lira <victorm.lira@amd.com>
>>>>
>>>> While the rule is in the library section, ...
>>>>
>>>>> --- a/docs/misra/deviations.rst
>>>>> +++ b/docs/misra/deviations.rst
>>>>> @@ -587,7 +587,31 @@ Deviations related to MISRA C:2012 Rules:
>>>>>         construct is deviated only in Translation Units that present 
>>>>> a violation
>>>>>         of the Rule due to uses of this macro.
>>>>>       - Tagged as `deliberate` for ECLAIR.
>>>>> -
>>>>> +
>>>>> +   * - R21.1
>>>>> +     - Rule 21.1 reports identifiers reserved for the C and POSIX 
>>>>> standard
>>>>> +       libraries. Xen does not use such libraries and all 
>>>>> translation units
>>>>> +       are compiled with option '-nostdinc', therefore there is no 
>>>>> reason to
>>>>> +       avoid to use `#define` or `#undef` on such identifiers 
>>>>> except for those
>>>>> +       beginning with `__builtin_` for which compilers may perform 
>>>>> (wrong)
>>>>> +       optimizations.
>>>>> +     - Tagged as `safe` for ECLAIR.
>>>>
>>>> ... I'd like to ask that it be explicitly clarified here that it's 
>>>> solely
>>>> the library (and not e.g. the compiler itself) that are of concern 
>>>> here.
>>>
>>> The language can be clarified:
>>>
>>> - Rule 21.1 reports identifiers reserved for the C and POSIX standard
>>>   libraries. Xen does not use such libraries and all translation units
>>>   are compiled with option '-nostdinc', therefore there is no reason 
>>> to
>>>   avoid to use `#define` or `#undef` on C and POSIX standard libraries
>>>   identifiers except for those beginning with `__builtin_` for which
>>>   compilers may perform (wrong) optimizations.
>>
>> Which makes it more apparent that there is a gap: What about e.g. 
>> __x86_64__?
>> That falls within what the rules cover, is not a C or POSIX standard 
>> library
>> identifier, yet very clearly must not be fiddled with. Whereas the text
>> above deviates it.
> 
> that is true, even if unlikely: one approach could be to avoid deviating 
> predefined macros for all CUs as -nostdinc and -fno-builtins should take 
> care of the rest; this kind of deviation is not currently possible in 
> ECLAIR, but it might be in the future.

Is this perhaps because by "all pre-defined macros" you really mean _just_
those, and not the entire reserved (for that purpose) sub-namespace? Imo
we should not go by what a particular compiler may pre-define (we may even
overlook something if we did it this way).

Jan

> I think this could be 
> accomplished also via some gcc trickery on each CU, though I'm not sure 
> how valued that is for Xen.
> 



From xen-devel-bounces@lists.xenproject.org Mon Apr 28 06:31:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 06:31:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.970045.1358826 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9I1M-0000YQ-TL; Mon, 28 Apr 2025 06:31:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 970045.1358826; Mon, 28 Apr 2025 06: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 1u9I1M-0000YJ-Q7; Mon, 28 Apr 2025 06:31:16 +0000
Received: by outflank-mailman (input) for mailman id 970045;
 Mon, 28 Apr 2025 06: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=5hYN=XO=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u9I1L-0000XR-K4
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 06:31:15 +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 61f53f1a-23fa-11f0-9eb4-5ba50f476ded;
 Mon, 28 Apr 2025 08:31:14 +0200 (CEST)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-3913d129c1aso2830923f8f.0
 for <xen-devel@lists.xenproject.org>; Sun, 27 Apr 2025 23:31:14 -0700 (PDT)
Received: from [10.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-440a5310ad2sm112610985e9.21.2025.04.27.23.31.12
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 27 Apr 2025 23:31:13 -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: 61f53f1a-23fa-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745821873; x=1746426673; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=NmgTjCOMV7hXYMdO8AQvqhvP2h2pc8+EkMkEAv8tAi0=;
        b=IgnMAF3SPI+oi+MZC5pKBy9WbvX3bVAx5wgRvCR3Kz31E0pUfzUBLcVcLwyaSwqPvd
         nxh3bQZ+tdX2MJft/jGxLG66rLQmYNz8Lvjn9AKhJkohAQIFj2JZBrscOt/hL4sYOV9d
         VCHBjCTLQale9/5XYkZwboXW+d5W5YDNJ1rKTaccY4xQ6uojzeqtbbdTTxFTCMXxLJLU
         Skj+ssRlc64YNbnO8tQMgI1oa2kuIIXbh3jSw5m43eUWKNk835dkIXAf3sPIC7dMzYHv
         vN7r/Cnh6nLHutY4TwkgpqpXi+Ld6VfGDxnz9950OS2OsMf6IgV5VlvyMhj5cPEFEoSc
         5B/w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745821873; x=1746426673;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=NmgTjCOMV7hXYMdO8AQvqhvP2h2pc8+EkMkEAv8tAi0=;
        b=Cq1hPsIQj8DivWHWxgxGLECnAh5bV0SR6mQ3HlbCdJ3CMed1fcM0fnnI59jVvz+WZL
         MoL6wALuQ5kcgym/Mjw8d/bONk/qVUK+X02butdO1MPIigX3CKjua03AWWvf9nhi9/WS
         7/GTzS8blr13E+kN+afjEmMVShtXtkkA5x8NrrBj7l/Jfdmv6DQ78Ml4G69S8xmQdXQ5
         bQLFX5ReMy42xKMnWWqhGJ36Ce7pCFdSb32GijAGfC6aW2TlTjTOaBbDAXLRwojV3kcY
         icHQgn86ah1XuDPqZzjStIvsXCXgQEcLfaFR5grlS8+4v68NUaot4SkjakKOQZyim+WC
         hAkQ==
X-Forwarded-Encrypted: i=1; AJvYcCXT58kLXGX4IBKD3WyWtoeGbxchrpvksrgNf04IRRgvtM4Z8YA3rUttMi8Ns4UfHUWUs6d1Ct+rfKQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzsq74G5zHWzBwrWhC2ZscPJSI/v0intLq7zYR0N+xVSqiqBtyG
	yaZZ9/2h9GkM+KgfPDws8yvO8vOQTEFaWybgto5sIczWngpN78wiCHcCXdyRFw==
X-Gm-Gg: ASbGncvkTET4Q6xATr6bu58xAHMaay/8wZF4GtJWo6c14dHhwIc+t+t+acYVGF9PDtw
	qZFfIn+y1jMJRWyd44MtttvPksOQg1XE9XxzUbq7DyX3y/6/8PCHhDUP1n9e/MQe4zCo+FBXh31
	FEciP2n1Np5ZwuXwutGNmPcKvNcLWVgYiTTBgPjEMGZUrhPkP9PoVnB8+gGSjkIFUDAuYeP77cF
	sfPxOfJ3wWW+njx+2VV+dEO8tXajgUYv6jfd8j+IsPP8Vna+02ZDLqL1SQxIIl/PED831JeJZXw
	JAYzw4iTRvuSM0vdUKAICqnJ1N0YcLfDCnufk351V30xD7D5LIGYZeoEhzLDmZgcOnHnzFHPoq7
	M2knlxtImb5yN5DCo7iV0FqAv4A==
X-Google-Smtp-Source: AGHT+IEjRbK3ddf9QUR70nFZF6I8681/DRl4c8fbtidnVDhp6WpSS7ITaIaboLCrNertSTjtbsiKiQ==
X-Received: by 2002:a05:6000:188f:b0:39c:1258:d12c with SMTP id ffacd0b85a97d-3a06d6ffd55mr10513190f8f.28.1745821873566;
        Sun, 27 Apr 2025 23:31:13 -0700 (PDT)
Message-ID: <39f0a475-6eea-4c08-abb1-f3de25c5a549@suse.com>
Date: Mon, 28 Apr 2025 08:31:14 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 06/14] xen/riscv: riscv_of_processor_hartid()
 implementation
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1744126720.git.oleksii.kurochko@gmail.com>
 <ab592d50ad161ffed3950bdf58ade49ae90a3c0e.1744126720.git.oleksii.kurochko@gmail.com>
 <65f5952a-8d2a-499c-bd66-53e9e2fbfa9c@suse.com>
 <d10323b7-d95d-4b96-9bf1-7ae8edda153e@gmail.com>
 <859d0c87-dc90-44c2-ab30-5164eec0705c@suse.com>
 <83fc1566-ad4f-489d-a432-01ec638cbc21@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: <83fc1566-ad4f-489d-a432-01ec638cbc21@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 25.04.2025 19:07, Oleksii Kurochko wrote:
> 
> On 4/15/25 3:45 PM, Jan Beulich wrote:
>> On 15.04.2025 15:39, Oleksii Kurochko wrote:
>>> On 4/10/25 5:53 PM, Jan Beulich wrote:
>>>> On 08.04.2025 17:57, Oleksii Kurochko wrote:
>>>>> +{
>>>>> +    const __be32 *cell;
>>>>> +    int ac;
>>>>> +    uint32_t len;
>>>>> +
>>>>> +    ac = dt_n_addr_cells(cpun);
>>>>> +    cell = dt_get_property(cpun, "reg", &len);
>>>>> +    if ( !cell || !ac || ((sizeof(*cell) * ac * (thread + 1)) > len) )
>>>>> +        return ~0ULL;
>>>> I'm sorry for my lack of DT knowledge, but what's "thread" representing here?
>>>> You only pass in 0 below, so it's unclear whether it's what one might expect
>>>> (the thread number on a multi-threaded core).
>>> Based on the DT specification alone, the|`reg`| value could refer to either a CPU or a thread ID:
>>> ```
>>> The value of reg is a <prop-encoded-array> that defines a unique CPU/thread id for
>>> the CPU/threads represented by the CPU node. If a CPU supports more than one thread
>>> (i.e. multiple streams of execution) the reg prop-erty is an array with 1 element
>>> per thread.
>>> ```
>>>
>>> My understanding is that the term/thread/ was used in the Linux kernel to cover both
>>> cases.
>>> When SMT isn't supported, the CPU can be considered to have a single thread.
>>> For example, RISC-V uses the term/hardware thread/ to describe a hart (i.e., a CPU).

Note the terminology ("CPU") you used here.

>>> Interestingly, the Linux kernel always uses|thread = 0|.
>>>
>>> We could potentially drop this ambiguity and introduce an|ASSERT()| to check that
>>> the|`reg`| property contains only one entry, representing the HART (CPU) ID:
>>> ```
>>>     Software can determine the number of threads by dividing the size of reg by the parent
>>>     node’s #address-cells. If `|reg`| has more than one entry, it would simply SMT support
>>>     is required.
>>> ```
>>>
>>> Does that approach make sense, or should we stick with the current implementation?
>> If extra enabling is required to make multi-thread CPUs work, then panic()ing
>> (not so much ASSERT()ing) may make sense, for the time being. Better would be
>> if we could use all threads in a system right away.
> 
> Actually, this function is ready to be used for multi-thread CPUs. A caller can request hardware id
> by passing `thread` argument (`thread` -> the local thread number to get the hardware ID for).
> So by calling:
>   dt_get_cpu_hwid(cpu0, 0) -> it will return hardware id of thread 0 of cpu0
>   dt_get_cpu_hwid(cpu0, 1) -> it will return hardware id of thread 1 of cpu0
>   ...
> 
> In our case we assume that SMP isn't supported so that is why it is used only dt_get_cpu_hwid(cpu0, 0).
> 
> If one day, SMP will be enabled then it will be needed to change a callers of dt_get_cpu_hwid().

I assume you meant SMT in both places you wrote SMP? But my main point here is:
If enumeration gives you "thread <N> of core <M>" (using x86 terminology), you
need to be quite careful with what you call "CPU". Things need to be entirely
unambiguous, taking into account what internally in (common code) Xen we call a
"CPU". You certainly may call "CPU" what is a collection of threads / harts,
but you then need to clarify this in a prominent comment somewhere, and you
need to be entirely consistent throughout the RISC-V sub-tree.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Apr 28 06:36:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 06:36:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.970061.1358836 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9I64-0001Ap-HV; Mon, 28 Apr 2025 06:36:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 970061.1358836; Mon, 28 Apr 2025 06:36: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 1u9I64-0001Ai-Dv; Mon, 28 Apr 2025 06:36:08 +0000
Received: by outflank-mailman (input) for mailman id 970061;
 Mon, 28 Apr 2025 06:36: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=5hYN=XO=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u9I62-0001Ac-Cn
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 06:36:06 +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 06e17db0-23fb-11f0-9ffb-bf95429c2676;
 Mon, 28 Apr 2025 08:35:50 +0200 (CEST)
Received: by mail-wr1-x432.google.com with SMTP id
 ffacd0b85a97d-3914aba1ce4so3347901f8f.2
 for <xen-devel@lists.xenproject.org>; Sun, 27 Apr 2025 23:35:50 -0700 (PDT)
Received: from [10.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-3a073c8c95dsm9971401f8f.3.2025.04.27.23.35.49
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 27 Apr 2025 23:35: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: 06e17db0-23fb-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745822150; x=1746426950; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=JvQlf7d7ws5QQg8boRng+OFq9yx/9MvD4gaKrMnhkEY=;
        b=a59cYc0kW+84CoTEh5Sv8qfQfV4Po0tQLRp4oKMjFiSfbZCV0zBb9aEDLwOUrCRCrZ
         GhfBwMa7+pGkR6kO3hIdWxChc80Ie0PLdIPcPcj58LmTgnvurVrDkmiVyYo1cSYTWh2/
         58adZD0y/5mmrmDzUWmRp7kR0KpsBNlNzqJzUTUb4tOEyCfNAwbxt5wUsui/P3hGSDTN
         uf6K0kmYzBqffxs2ENIGCrq1rqenenGyIlVvKzuFCbslqf7fIee6Fv3PIDx9ZC5ulwg/
         MrjoGlnyER7j7S67LkJ/qJYYeNAMcU4XH8TAfcVCJrcirZJdsmT7HmU0j+MzjzvbgNdI
         JDaA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745822150; x=1746426950;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=JvQlf7d7ws5QQg8boRng+OFq9yx/9MvD4gaKrMnhkEY=;
        b=IYIB5nSp+B6WybAqBnJOvpTxzRqF1W+B1mWeKGQIPuNAhysrx+DIkiblGudR1lexqN
         bjP9eL4bWAZe8yNHZs/xkrFgxxa79kUyOy1W0+RhuAVN8HfgBAS3lQ960y2sDzEfGmHX
         XG3pqqUcJkubtO6hA5/MuGwuCuCS4Vjb/imUnku2OlEYYMh3Vjg6hetHqPa73qsi9o5Y
         idEey3cP/tY+oZ8LglMN4eHvrpgcRVNyHFarc34YP1WbJ6VjdPcBAM7wpGxf42xx8P70
         khxZyYxbMiupOycUtw/ehYaZ2pMd2K/rzJSs86yuOQ9kGBdvEYgjPY9ewLxsQoLqHFIR
         21zw==
X-Forwarded-Encrypted: i=1; AJvYcCW8VDZVRdDgOe9k4t0hKEszRxxGmf3HYPzqmywWhHVXX+sZ0uFcl0JnQPEsOi+oyQnvq2CMwlRSYfk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YylA7b0AN7EEMOaeoGmlUDS0kALJ4YBd2HA7bg+LrvETtjC3ra7
	H12tyAjhukk8dNQp+7CD/aAtfy87mRmCCClScO2Uu53o+Bz3ZDkm3D0I5CUDLg==
X-Gm-Gg: ASbGnctzx7QbZBLkkG19KkaW3VCQnVZ0Mp1+Vs0y1bSytzArN90JMFeF0tBfoxZ9CaZ
	0SUiaq3/C+V6m4C7Owsva3NV0y9oa3wb2Y3CioYR1P9Ln36hrglJ8ZOQdseM3Gu9xMVpIkiUt2s
	aRAdjy/YLSXCM30MHcXsWYRrQK4Hm50hJp2cp+zznRmYMZ1qyoKpw9JiYBBtVHuzzDZEctEOhsT
	/HjdNglesl4GgFy7jGkKGuLofnCBpamo57oSWlMXma4lVaJ9OahaozI3pBhhNti0DwpSZcIE3r4
	K2Hp3iCDRg1Y2pjwedu1iGJpEvFs6oixtfWvhVgYBJB43GpHTW1l/1ZOA9tPK0nQ/tT4zXcalSi
	UVOVBNY1Cg9f6wgTwXeABjh7EwQ==
X-Google-Smtp-Source: AGHT+IG3vnwsSAFbFujeNGTupttJLmVTFn+aI/sMKLCjDpBzqZuXAm/5xHH6FAoyLDL1yYMe4+fqXA==
X-Received: by 2002:a05:6000:430a:b0:3a0:8495:d66f with SMTP id ffacd0b85a97d-3a08495d6admr1555947f8f.23.1745822150376;
        Sun, 27 Apr 2025 23:35:50 -0700 (PDT)
Message-ID: <a70e8d12-ba4c-4eed-9298-d1d252a32860@suse.com>
Date: Mon, 28 Apr 2025 08:35:50 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 10/14] xen/riscv: implementation of aplic and imsic
 operations
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Romain Caritey <Romain.Caritey@microchip.com>, xen-devel@lists.xenproject.org
References: <cover.1744126720.git.oleksii.kurochko@gmail.com>
 <74a07ed7c596bbcf581010685e01bfdfa19164f5.1744126720.git.oleksii.kurochko@gmail.com>
 <3426df1b-938a-4d20-a533-dd6695473db0@suse.com>
 <5f922b70-d4c2-4e6e-ad05-f91afc70ee73@gmail.com>
 <d63a6410-7053-4f75-aeda-6cd4e36bd302@suse.com>
 <36eaf6df-4474-4252-bc82-054a7d00343a@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: <36eaf6df-4474-4252-bc82-054a7d00343a@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 25.04.2025 21:31, Oleksii Kurochko wrote:
> 
> On 4/22/25 9:02 AM, Jan Beulich wrote:
>> On 18.04.2025 12:43, Oleksii Kurochko wrote:
>>> On 4/15/25 4:53 PM, Jan Beulich wrote:
>>>> On 08.04.2025 17:57, Oleksii Kurochko wrote:
>>>>> --- a/xen/arch/riscv/imsic.c
>>>>> +++ b/xen/arch/riscv/imsic.c
>>>>> @@ -14,12 +14,68 @@
>>>>>    #include <xen/errno.h>
>>>>>    #include <xen/init.h>
>>>>>    #include <xen/macros.h>
>>>>> +#include <xen/spinlock.h>
>>>>>    #include <xen/xmalloc.h>
>>>>>    
>>>>>    #include <asm/imsic.h>
>>>>>    
>>>>>    static struct imsic_config imsic_cfg;
>>>>>    
>>>>> +#define imsic_csr_set(c, v)     \
>>>>> +do {                            \
>>>>> +    csr_write(CSR_SISELECT, c); \
>>>>> +    csr_set(CSR_SIREG, v);      \
>>>>> +} while (0)
>>>>> +
>>>>> +#define imsic_csr_clear(c, v)   \
>>>>> +do {                            \
>>>>> +    csr_write(CSR_SISELECT, c); \
>>>>> +    csr_clear(CSR_SIREG, v);    \
>>>>> +} while (0)
>>>> Coming back to these (the later patch adds one more here): How expensive are
>>>> these CSR writes? IOW would it perhaps make sense to maintain a local cache
>>>> of the last written SISELECT value, to avoid writing the same one again if
>>>> the same windowed register needs accessing twice in a row?
>>> CSRs belong to the HART, so access to them is very fast.
>> Can you back this by any data? I view CSRs as somewhat similar to x86'es MSRs,
>> and access (writes in particular) to some of them is rather slow.
> 
> CSR read 1 cycle, CSR write 7 cycles on Microchip platform. ~ Oleksii

And that's an in-order platform, i.e. cycle count being all that matters for
performance? No other (e.g. latency) effect on subsequent insns?

Further, how does this compare to the outlined alternative, especially if we
assumed that the respective cacheline would be hot and hence usually in L1
cache?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Apr 28 06:41:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 06:41:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.970074.1358847 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9IBT-00030Z-4L; Mon, 28 Apr 2025 06:41:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 970074.1358847; Mon, 28 Apr 2025 06:41: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 1u9IBT-00030S-1Y; Mon, 28 Apr 2025 06:41:43 +0000
Received: by outflank-mailman (input) for mailman id 970074;
 Mon, 28 Apr 2025 06:41: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=5hYN=XO=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u9IBS-00030M-Cs
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 06:41:42 +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 d786ad29-23fb-11f0-9eb4-5ba50f476ded;
 Mon, 28 Apr 2025 08:41:41 +0200 (CEST)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-43d0c18e84eso20319885e9.3
 for <xen-devel@lists.xenproject.org>; Sun, 27 Apr 2025 23:41:40 -0700 (PDT)
Received: from [10.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-4409d2e06d8sm148460075e9.39.2025.04.27.23.41.39
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 27 Apr 2025 23:41: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: d786ad29-23fb-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745822500; x=1746427300; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=sMzx2AI1AjHqyseW5Ep3Xvb3Z9jwIQZtti7TEMb+XJg=;
        b=JkyZI8pSnfdd14C1CyqHSCy/AzaRZi8pwFv/gRK+ZvF6i0SK9aRHoNASlTVDRLoZ1H
         P0oVNUqQtPUfaBAc5K2HRxnmmocYi8NHiTnyNO52tZ1bUtqR00r6MdLPZrao0KXx4MTo
         42liJaecrym/J+wkqqnNAnn52GTLR8rG+BIs70hb0WkUb70/jJNcoC9DsFfxa9zHTyPx
         cMCPYjrNM5T0IN2aKHMTJ5S9D6qN0LE9hrf+rSyB+g66hNJI3VV3fBl8Yj1uABZ2aMAm
         IK95UxsHDM1N+S9Tg8RqDXu9p6A0chf9xcoiKtOlKORTAEveTeBkT7/D5Lg6WLnJjlZS
         NLZQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745822500; x=1746427300;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=sMzx2AI1AjHqyseW5Ep3Xvb3Z9jwIQZtti7TEMb+XJg=;
        b=WYD3pSoCr/6La+KlWy3IhiKiO9k17x6lP/ualrkV0USXsrpHbXTgPrr22DA0hsQRpz
         HAsPZ2KnfWi7xEzPogcYHzVNi/6+9Zghlhcy7xXXa6hC++ZmkNiHz9Ec/rSP/WibhCZ1
         xJ19jDVH0ZJbZpDTBUjBDqanmNh1d7KdTxO+FM3U0+XQK4ZlI/KaNUC5gtivlcNdSJ+/
         n8JGk8akwhsv2wfy+ID/lDbMDRWl+HWHnUvha2cJedLPUyWr6zpCy+Pss65P3+SPu9sb
         uSWx4giD2qMOzi7irkn8GX1GZbUP+rx4zZw4kuKnQX/QqcE0zY0ii2+fvY1vARdti+lI
         8drQ==
X-Forwarded-Encrypted: i=1; AJvYcCXjge+kMBKJPKqwQBOzdV6+FwuSXPSeiRZaGu4Bh9HvaWwkLA3sft69BYV7+nFq5dfLYw6RuQifIt4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxgtXHIwo1ZCwtLRjipzlOeHiqE6kzlGnzoxeJQKFzB2sjA7G3G
	BLqTDSwiVkD2+0IN8zAUCnFy19mPf74BfpJ9cQp413a4fD2LXSlcyTCq8Nsssw==
X-Gm-Gg: ASbGncv3aO+j1UYQXzTRPEuw+KpzHpFMrmIV7xag8NgEyiZxIu7st5QFxYPKf0Wm4gG
	mOPL8yxqHbEOftytzBlExhDYLryjIWZ5kWSz4v6GT2N0kX7GhuISRCsqWWigjNjDBdt3KfmGUlL
	U5yXL0ccUmCMF8wSib74FllRgt+X4THftwXDNIgB0BtEklU5sHHH10xa44MVLqSy1udhFQJv6ZC
	hfCEB0Gz84PtIEtbTMZYgEf1icPLQSX9kZA4Z9sZyJDH5HGZsgZ7bkXZv/XEDJOp85ioeBq5Da4
	PPsAz3robNN82ntkZxdPB5jxhm5wRPZgxp+hSrinyJyld43bWHNqxAmXTi+rA+rn0qIdEwG/USW
	w1OcCEOpGTXVFHwzTuBsgsEboJQ==
X-Google-Smtp-Source: AGHT+IEyW5BiKqCESdQ9aYZfZxA5BjyDvmL2TBRtlmJARX329C6LJ0bLETQ5M7ilKts/vq3E8DeW7w==
X-Received: by 2002:a05:600c:154c:b0:43d:fa59:cc8f with SMTP id 5b1f17b1804b1-440a66ac6c9mr76958725e9.33.1745822500308;
        Sun, 27 Apr 2025 23:41:40 -0700 (PDT)
Message-ID: <f179661d-5487-421d-b033-41d5d51591c1@suse.com>
Date: Mon, 28 Apr 2025 08:41:40 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC 33/38] x86/boot: refactor bzimage parser to be re-enterant
To: "Daniel P. Smith" <dpsmith@apertussolutions.com>
Cc: stefano.stabellini@amd.com, agarciav@amd.com,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org
References: <20250419220820.4234-1-dpsmith@apertussolutions.com>
 <20250419220820.4234-34-dpsmith@apertussolutions.com>
 <bba25fca-171a-47dd-881b-4746d76bd16a@amd.com>
 <e7894126-d639-4a9c-b600-2287efe6666d@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: <e7894126-d639-4a9c-b600-2287efe6666d@apertussolutions.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 26.04.2025 03:53, Daniel P. Smith wrote:
> On 4/23/25 15:27, Jason Andryuk wrote:
>> On 2025-04-19 18:08, Daniel P. Smith wrote:
>>> The bzimage logic uses the unit global orig_image_len to hold the 
>>> original
>>> module length for the kernel when the headroom is calculated. It then 
>>> uses
>>> orig_image_len to locate the start of the bzimage when the expansion 
>>> is done.
>>> This is an issue when more than one bzimage is processed by the headroom
>>> calculation logic, as it will leave orig_image_len set to the length 
>>> of the
>>> last bzimage it processed.
>>>
>>> The boot module work introduced storing the headroom size on a per module
>>> basis. By passing in the headroom from the boot module, orig_image_len 
>>> is no
>>> longer needed to locate the beginning of the bzimage after the allocated
>>> headroom. The bzimage functions are reworked as such, allowing the 
>>> removal of
>>> orig_image_len and enabling them to be reused by multiple kernel boot 
>>> modules.
>>>
>>> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
>>> ---
>>>   xen/arch/x86/bzimage.c             | 38 ++++++++++++++++++------------
>>>   xen/arch/x86/hvm/dom_build.c       |  3 ++-
>>>   xen/arch/x86/include/asm/bzimage.h |  5 ++--
>>>   xen/arch/x86/pv/dom0_build.c       |  3 ++-
>>>   4 files changed, 30 insertions(+), 19 deletions(-)
>>>
>>> diff --git a/xen/arch/x86/bzimage.c b/xen/arch/x86/bzimage.c
>>> index 66f648f311e4..32f0360d25b4 100644
>>
>>> @@ -103,13 +100,20 @@ unsigned long __init bzimage_headroom(void 
>>> *image_start,
>>>       return headroom;
>>>   }
>>> -int __init bzimage_parse(void *image_base, void **image_start,
>>> -                         unsigned long *image_len)
>>> +int __init bzimage_parse(
>>> +    void *image_base, void **image_start, unsigned long headroom,
>>> +    unsigned long *image_len)
>>>   {
>>>       struct setup_header *hdr = (struct setup_header *)(*image_start);
>>>       int err = bzimage_check(hdr, *image_len);
>>> -    unsigned long output_len;
>>> -
>>> +    unsigned long module_len = *image_len;
>>> +
>>> +    /*
>>> +     * Variable err will have one of three values:
>>> +     *   -  < 0: a error occurred trying to inspect the contents
>>> +     *   -  > 0: the image is a bzImage
>>> +     *   - == 0: not a bzImage, could be raw elf or elf.gz (vmlinuz.gz)
>>> +     */
>>
>> This comment seems a little independent of this change, so maybe it 
>> should be submitted separately.  Also, I think a better placement would 
>> be next to bzimage_check().
>>
>>>       if ( err < 0 )
>>>           return err;
>>> @@ -118,21 +122,25 @@ int __init bzimage_parse(void *image_base, void 
>>> **image_start,
>>>           *image_start += (hdr->setup_sects + 1) * 512 + hdr- 
>>>> payload_offset;
>>>           *image_len = hdr->payload_length;
>>
>> @here
>>
>>>       }
>>> -
>>> -    if ( elf_is_elfbinary(*image_start, *image_len) )
>>> -        return 0;
>>> +    else
>>> +    {
>>> +        if ( elf_is_elfbinary(*image_start, *image_len) )
>>> +            return 0;
>>> +        else
>>> +            *image_len = *image_len - headroom;
>>> +    }
>>
>> I don't like this extra indention which includes the return.  If you 
>> retain orig_image_len as a local variable, and set it above at "@here", 
>> you can have a smaller diff and leave cleaner logic.
> 
> Right, but I find it sillier to be checking every kernel for elf when we 
> know it's a bzImage. While the elf check is fairly simplistic, it is 
> still multiple value checks.

Even without any extra local vars the above can be

    else if ( elf_is_elfbinary(*image_start, *image_len) )
        return 0;
    else
        *image_len = *image_len - headroom;

which would already address the "extra indentation" aspect.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Apr 28 06:47:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 06:47:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.970086.1358858 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9IGf-0003aH-PN; Mon, 28 Apr 2025 06:47:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 970086.1358858; Mon, 28 Apr 2025 06:47:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9IGf-0003aA-K8; Mon, 28 Apr 2025 06:47:05 +0000
Received: by outflank-mailman (input) for mailman id 970086;
 Mon, 28 Apr 2025 06:47: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=5hYN=XO=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u9IGe-0003a4-5Q
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 06:47: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 9665176d-23fc-11f0-9eb4-5ba50f476ded;
 Mon, 28 Apr 2025 08:47:01 +0200 (CEST)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-43cec5cd73bso21876695e9.3
 for <xen-devel@lists.xenproject.org>; Sun, 27 Apr 2025 23:47:01 -0700 (PDT)
Received: from [10.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-440a52f8794sm117636775e9.1.2025.04.27.23.46.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 27 Apr 2025 23:47: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: 9665176d-23fc-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745822820; x=1746427620; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=snKehniRr8gfgMJ+2FEo71p46Wm4wR8+OAy16mVmTik=;
        b=NW5yfeWx0ygV9uS7jSqS1JLd2qEuE8ZEV5dnU8w3KQsDTvXXeGCKVqTkb9i0qdwamb
         ez1ISBtBrettzAny+pUGs8now/Sn7nbU+TBeGQF8M0wxcCVLBGEupGgHKTyzPl/rtnBj
         vh5LXn79TU8HB+GYrYtwnDR1Ht/LSjArets/p0uZkAQHm1F99DNJdQZihSQYvYDIpbUm
         IFm073eFu5HlpnuPh2pgdHZ+AUpV0QFcR3qcIcW2i4yEpSVirc01wdV0pQG32QIEE/fC
         mUytDtaR+72xDsWMsQXtvLOD5CC8mn4zAMaIm+cEpc/m8r/p3Q74yLfG0u2Ncj8Pk51V
         IdZg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745822820; x=1746427620;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=snKehniRr8gfgMJ+2FEo71p46Wm4wR8+OAy16mVmTik=;
        b=Az4E0TbW5Gth/7u2JTkeUI9dao18MwLDXUDg3APJ18pB2Po6chT83hLUma6xKTdAPQ
         6HA/oL78YMS4eROyoeOAtbDkcYJt+fYfTZx5Yuw7h6g8v33GC7vwcvj2XotZ6KxXSYbb
         I8RNHv40LDF4fqnXwcA0/Dq8ehRfDQXZOd1zAQqLbhurmEbU8jfUQ9CQHwEQetcJ2Arq
         HMjfs5vtBedgzSvpjT+DgEUJntWTxaGJ6TvIthN+5QftiDueqfFkbaHDmzO+szm/WhYo
         pSvEBhQIicwxa6IdUHFqOB8V2mvFm/EGtq5Jo6rpOGRZkLqvOEt/wK2VgHBzuVoPsbHO
         NXkg==
X-Gm-Message-State: AOJu0Yy2rYXmWhz06nCj7IV2Z3Xwgi0yZupdniNkl61ngFuMrewnRbad
	Bh96rrpzy3KZllvs3M/QJIjtJZ665N0BLVbTkmaH/96w3NB+Fy1/GSxHUC66ew==
X-Gm-Gg: ASbGnctcx0mpwCdwUUQCWDNwp10Ju2aDBfetpqTUGMMzaZiHvamDYSO8GuC9pNQx1+1
	ued/cNNHpOAM14200yMi8y9IbIxNO2FA0Z81vx+mzMbSA1iHrt37y/ImZvDnMD5mmq/kqD7me2L
	vffudiOK3thvZC608JIjWtnChnXVigxNY8Gxk3M4mIzJtCvYqHa9WI0Cr7w1JJaVRpoAM0+3yWv
	SUkvxD6OdmoBOtbXL6HD2SKDzgTlwqKdHosRN4kdf6FTBsjHX59RvT82Velru0vTd7Gb4CgC01L
	TO8LbTV+XTF4IvYabZst6zMyJuf6Hgo+NJAc2QqlwkHkbbWmfgIrljD3NFlfK+kd8HdIGSpEDRg
	sKp3/JjOcMf6t34ox0XvQl7FKIQ==
X-Google-Smtp-Source: AGHT+IHpHxKRgKd7ZItFmoVV5jTNnKm4f0b3oISApHP2hqp9WZSeHgtV/CoPCZ08N94rzv0nUKtYdA==
X-Received: by 2002:a05:600c:870b:b0:43d:209:21fd with SMTP id 5b1f17b1804b1-440a66b7d39mr97831195e9.30.1745822820616;
        Sun, 27 Apr 2025 23:47:00 -0700 (PDT)
Message-ID: <fe9a99b2-e208-4171-ada0-c244bfab6559@suse.com>
Date: Mon, 28 Apr 2025 08:47:01 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 1/3] xen/console: cleanup conring management
To: dmkhn@proton.me
Cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com,
 anthony.perard@vates.tech, julien@xen.org, michal.orzel@amd.com,
 roger.pau@citrix.com, dmukhin@ford.com,
 Stefano Stabellini <sstabellini@kernel.org>
References: <20250403000604.169619-1-dmukhin@ford.com>
 <20250403000604.169619-2-dmukhin@ford.com>
 <alpine.DEB.2.22.394.2504251513480.785180@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.2504251513480.785180@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 26.04.2025 00:18, Stefano Stabellini wrote:
> On Thu, 3 Apr 2025, dmkhn@proton.me wrote:
>> From: Denis Mukhin <dmukhin@ford.com>
>>
>> Move console_locks_busted handling inside conring_puts() to remove
>> tasklet code duplication.
>>
>> Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> 
> This patch is a good cleanup but makes one functional change: previously
> guest_console_write would always call tasklet_schedule. Now, it only
> calls tasklet_schedule if !console_locks_busted.
> 
> On ARM, we don't call console_force_unlock and never set
> console_locks_busted. It makes no difference.
> 
> On x86, there are a few callers of console_force_unlock, so it would
> make a difference. However, looking at the callers, it seems to me that
> the change is for the better and better aligns the code with the
> intention behind console_force_unlock.

Denis, I see you submitted v2 without any adjustment to the description.
With Stefano having pointed out the aspect, it should have been pretty
clear that such a (kind of hidden) functional change wants justifying.

Furthermore, you added Stefano's R-b without any hint towards the extra
request he had put up above wrt x86.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Apr 28 06:50:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 06:50:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.970098.1358867 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9IKM-0005Jm-5d; Mon, 28 Apr 2025 06:50:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 970098.1358867; Mon, 28 Apr 2025 06: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 1u9IKM-0005Jf-35; Mon, 28 Apr 2025 06:50:54 +0000
Received: by outflank-mailman (input) for mailman id 970098;
 Mon, 28 Apr 2025 06: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=5hYN=XO=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u9IKL-0005IA-Cj
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 06:50:53 +0000
Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com
 [2a00:1450:4864:20::330])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 204ccff3-23fd-11f0-9eb4-5ba50f476ded;
 Mon, 28 Apr 2025 08:50:52 +0200 (CEST)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-43ea40a6e98so41798175e9.1
 for <xen-devel@lists.xenproject.org>; Sun, 27 Apr 2025 23:50:52 -0700 (PDT)
Received: from [10.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-3a073cbed98sm9983782f8f.48.2025.04.27.23.50.51
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 27 Apr 2025 23:50: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: 204ccff3-23fd-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745823052; x=1746427852; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=IyHkp5gRATiKumJtgIE2KJBpq3+lauuvvQ6VWuetA3w=;
        b=Q4m2xGyCbUfgkX0MfkcaiTmmpjVaTYxJCsuv95Prj16jgaJVDxax7MnxbqAMTgE6by
         eiQklR+NF8+35KP5SeVtdEWLgaFTbgU5VQRhoyWjP3ur50kXhYenUrke2xiEI092k+CP
         7F4wDn9xrm1BKRqQ5xp0BBTKpBamyv7W11/c9oUAFKs0DS9wPpYdgQbLo+gFm7bqeZR6
         MopUnqAJDioLMSwTNlzfe3au08YJ3F04v1H41/1G1ivhZhvRQbzu1oE/M2crS1uPMQr7
         oJGzt3eDBhUtrHLquBklo+v1p5SDi7B6WR7Qpgh320jKUiLAu+xrI2i0oQOACCHiYptK
         Momw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745823052; x=1746427852;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=IyHkp5gRATiKumJtgIE2KJBpq3+lauuvvQ6VWuetA3w=;
        b=FFbyNvlHQWrUn6WEcXIAB9iFR9MDZU/LmO9j3BSO1uuKb00aHFkJKm2vY8aM5PzkTo
         aaLLaBp21BGf8aNX9VGF6HQskTAsDHmjGL7RAvKPr7Ot3ylZjFZJLqdGe9M12hXrYBlq
         DJyn9Yy0PKrh3+800UpZ1FYBFMIaSbHtdXeVMo7SkG674WzYS9ak+hSlyDQIvKeyyM8l
         GeXVma222XRb54vWBXr44ZrwHnGHAvhHHIoMATe9C75CWycAl5j/Azd6N4FrLe0sU3Xg
         v93YwZCofJok7LaeOjjezXJFtvYFkO/XMaIYG42hRdkYYHB0LeCiaN78OGxYyPV7tXR9
         woQA==
X-Forwarded-Encrypted: i=1; AJvYcCWdzVsqLZU1/67T3ywkd8K08aetYQ44cGGfkzMWC5RG/Bg+lfYtgcHCsJicJ9nS9U4gYOtgW2q5xTQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzo8H2nHAjYqt8sGdUX9xK+Clag4aWp0k5mcisOqJaBx+B7OMPY
	M5u8XsljzEwr/Cmbp8gFpMJxwq6MJHkCcKCN9JXG2QCwBgRtC6Nv9xIxt458Pw==
X-Gm-Gg: ASbGncsU9l3+XUmvDZnEAbCDDqQnlt5gMd+WR1p8j/2kOyqLRgq8njkysnqzq2FW3lD
	3KcPehogbW6A31y1Sr3btG4zlnC6CCWIyrB58VMNL5dZbV/O713gfUUo8OVLrQSDQsRYYGLiiLT
	gkAuomaqle8phhjBACtCKAUSutPrQSMmCpMs517En5SaFJ39Z8qQVyGoozu+ag4zzVe0XyHke9s
	VGjnQ0C6SHNlk0glc2HHHBs2eMDehG+cCeZ4jtPQYPtIWopbCi5B8dnAaup38cxc1+btNrqp4wB
	mL/b1sSNbvPnUl475g8OZirl1/vNJemL5JUUKf2OqQQe2LIiomuVkLtPd0AUX/vnmWtQV1miq5r
	/vbLbqUQKDSUfv4rlbzkxzZAQjA==
X-Google-Smtp-Source: AGHT+IGoJl73UDGLD5e5sMwkrRhqsL+gaK4OgidPTzywd1ng1wrZvXqVJr8n/WJ6MyyWqi10g/Qh7A==
X-Received: by 2002:a5d:63d2:0:b0:39f:4d62:c5fc with SMTP id ffacd0b85a97d-3a074e43194mr5849601f8f.35.1745823052034;
        Sun, 27 Apr 2025 23:50:52 -0700 (PDT)
Message-ID: <cacff70d-5269-451d-b264-4d02b299e677@suse.com>
Date: Mon, 28 Apr 2025 08:50:52 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/3] xen/console: cleanup conring management
To: dmkhn@proton.me
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, julien@xen.org,
 michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org,
 dmukhin@ford.com, xen-devel@lists.xenproject.org
References: <20250426185021.100646-1-dmukhin@ford.com>
 <20250426185021.100646-2-dmukhin@ford.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20250426185021.100646-2-dmukhin@ford.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 26.04.2025 20:50, dmkhn@proton.me wrote:
> From: Denis Mukhin <dmukhin@ford.com>
> 
> Move console_locks_busted handling inside conring_puts() to remove
> tasklet code duplication.
> 
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
> ---
> Changes v1->v2:
> - added Stefano's R-b
> ---
>  xen/drivers/char/console.c | 29 ++++++++++++++---------------
>  1 file changed, 14 insertions(+), 15 deletions(-)
> 
> diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
> index c3150fbdb7..aaa97088aa 100644
> --- a/xen/drivers/char/console.c
> +++ b/xen/drivers/char/console.c
> @@ -325,6 +325,17 @@ static void cf_check do_dec_thresh(unsigned char key, bool unused)
>   * ********************************************************
>   */
>  
> +static void cf_check notify_dom0_con_ring(void *unused)
> +{
> +    send_global_virq(VIRQ_CON_RING);
> +}
> +
> +static DECLARE_SOFTIRQ_TASKLET(notify_dom0_con_ring_tasklet,
> +                               notify_dom0_con_ring,
> +                               NULL);
> +
> +static bool console_locks_busted;
> +
>  static void conring_puts(const char *str, size_t len)
>  {
>      ASSERT(rspin_is_locked(&console_lock));
> @@ -334,6 +345,9 @@ static void conring_puts(const char *str, size_t len)
>  
>      if ( conringp - conringc > conring_size )
>          conringc = conringp - conring_size;
> +
> +    if ( !console_locks_busted )
> +        tasklet_schedule(&notify_dom0_con_ring_tasklet);
>  }

As before I'm unconvinced it is a good idea to have tasklet scheduling here.
You also didn't address that v1 comment of mine verbally, iirc.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Apr 28 06:58:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 06:58:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.970114.1358878 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9IRv-00067n-0O; Mon, 28 Apr 2025 06:58:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 970114.1358878; Mon, 28 Apr 2025 06: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 1u9IRu-00067g-Sk; Mon, 28 Apr 2025 06:58:42 +0000
Received: by outflank-mailman (input) for mailman id 970114;
 Mon, 28 Apr 2025 06:58: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=C08U=XO=kernel.org=mingo@srs-se1.protection.inumbo.net>)
 id 1u9IRs-00067a-VB
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 06:58:40 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3614fbb3-23fe-11f0-9eb4-5ba50f476ded;
 Mon, 28 Apr 2025 08:58:39 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id A48E0435ED;
 Mon, 28 Apr 2025 06:58:35 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id E5CD1C4CEE4;
 Mon, 28 Apr 2025 06:58:33 +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: 3614fbb3-23fe-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1745823517;
	bh=pPJ8R19J2/szrRXylX5/tWCymsrUsn/Hl5OGFoBEBSY=;
	h=Date:From:To:Cc:Subject:References:In-Reply-To:From;
	b=dBwmuAg8gdgySu+Dso+50czrM27i9adBTCNGKbFopGertwGmXvg+EXHTGSC/LII3w
	 OOiQvXI6nmTe5mdAul07ryxnGeqbNKU2TJV55XvbjBOkhs+Sf0TAHsFtzzzAnN+El/
	 4zfWFWERnPei7BLat2VsFSYo3DGbPWaTo+XG1yMW31vZbiMjOMZr2igKVwaKxRwOCc
	 hA8L8g50+TPIGA6RNsgrXNeH8TuH33QJeDeOmpIszuvwc+j7gtFBgNJMyL3TZYFzE8
	 1UGB1hQLdXt52S3MeiHESNkgrVuaFhfLCbEgjghtIffhPpyD+KMZNihmVsINSybWxz
	 5Rin8vh5R2oig==
Date: Mon, 28 Apr 2025 08:58:31 +0200
From: Ingo Molnar <mingo@kernel.org>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Arnd Bergmann <arnd@arndb.de>, Arnd Bergmann <arnd@kernel.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>, Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Alexander Usyskin <alexander.usyskin@intel.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Mateusz =?utf-8?Q?Jo=C5=84czyk?= <mat.jonczyk@o2.pl>,
	Mike Rapoport <rppt@kernel.org>, Ard Biesheuvel <ardb@kernel.org>,
	Peter Zijlstra <peterz@infradead.org>, linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org
Subject: [PATCH] bitops/32: Convert variable_ffs() and fls() zero-case
 handling to C
Message-ID: <aA8nF0moBYOIgC5J@gmail.com>
References: <20250425141740.734030-1-arnd@kernel.org>
 <aAyiganPp_UsNlnZ@gmail.com>
 <d2b0e71c-e79b-40d6-8693-3202cd894d66@app.fastmail.com>
 <CAHk-=wh=TUsVv6xhtzYsWJwJggrjyOfYT3kBu+bHtoYLK0M9Xw@mail.gmail.com>
 <CAHk-=wgfk69H-T-vMWR33xUpVsWJLrF34d0OwUXa2sHhtpSwZg@mail.gmail.com>
 <e54f1943-e0ff-4f59-b24f-9b5a7a38becf@citrix.com>
 <CAHk-=wj0S2vWui0Y+1hpYMEhCiXKexbQ01h+Ckvww8hB29az_A@mail.gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <CAHk-=wj0S2vWui0Y+1hpYMEhCiXKexbQ01h+Ckvww8hB29az_A@mail.gmail.com>


* Linus Torvalds <torvalds@linux-foundation.org> wrote:

> On Sun, 27 Apr 2025 at 12:17, Andrew Cooper <andrew.cooper3@citrix.com> wrote:
> >
> > ffs/fls are commonly found inside loops where x is the loop condition
> > too.  Therefore, using statically_true() to provide a form without the
> > zero compatibility turns out to be a win.
> 
> We already have the version without the zero capability - it's just
> called "__ffs()" and "__fls()", and performance-critical code uses
> those.
> 
> So fls/ffs are the "standard" library functions that have to handle
> zero, and add that stupid "+1" because that interface was designed by
> some Pascal person who doesn't understand that we start counting from
> 0.
> 
> Standards bodies: "companies aren't sending their best people".
> 
> But it's silly that we then spend effort on magic cmov in inline asm
> on those things when it's literally the "don't use this version unless
> you don't actually care about performance" case.
> 
> I don't think it would be wrong to just make the x86-32 code just do
> the check against zero ahead of time - in C.
> 
> And yes, that will generate some extra code - you'll test for zero
> before, and then the caller might also test for a zero result that
> then results in another test for zero that can't actually happen (but
> the compiler doesn't know that). But I suspect that on the whole, it
> is likely to generate better code anyway just because the compiler
> sees that first test and can DTRT.
> 
> UNTESTED patch applied in case somebody wants to play with this. It
> removes 10 lines of silly code, and along with them that 'cmov' use.
> 
> Anybody?

Makes sense - it seems to boot here, but I only did some very light 
testing.

There's a minor text size increase on x86-32 defconfig, GCC 14.2.0:

      text       data        bss         dec        hex    filename
  16577728    7598826    1744896    25921450    18b87aa    vmlinux.before
  16577908    7598838    1744896    25921642    18b886a    vmlinux.after

bloatometer output:

  add/remove: 2/1 grow/shrink: 201/189 up/down: 5681/-3486 (2195)

Patch with changelog and your SOB added attached. Does it look good to 
you?

Thanks,

	Ingo

================>
From: Linus Torvalds <torvalds@linux-foundation.org>
Date: Mon, 28 Apr 2025 08:38:35 +0200
Subject: [PATCH] bitops/32: Convert variable_ffs() and fls() zero-case handling to C

Don't do the complicated and probably questionable BS*L+CMOVZL
asm() optimization in variable_ffs() and fls(): performance-critical
code is already using __ffs() and __fls() that use sane interfaces
close to the machine instruction ABI. Check ahead for zero in C.

There's a minor text size increase on x86-32 defconfig:

      text       data        bss         dec        hex    filename
  16577728    7598826    1744896    25921450    18b87aa    vmlinux.before
  16577908    7598838    1744896    25921642    18b886a    vmlinux.after

bloatometer output:

  add/remove: 2/1 grow/shrink: 201/189 up/down: 5681/-3486 (2195)

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
---
 arch/x86/include/asm/bitops.h | 22 ++++++----------------
 1 file changed, 6 insertions(+), 16 deletions(-)

diff --git a/arch/x86/include/asm/bitops.h b/arch/x86/include/asm/bitops.h
index 100413aff640..6061c87f14ac 100644
--- a/arch/x86/include/asm/bitops.h
+++ b/arch/x86/include/asm/bitops.h
@@ -321,15 +321,10 @@ static __always_inline int variable_ffs(int x)
 	asm("bsfl %1,%0"
 	    : "=r" (r)
 	    : ASM_INPUT_RM (x), "0" (-1));
-#elif defined(CONFIG_X86_CMOV)
-	asm("bsfl %1,%0\n\t"
-	    "cmovzl %2,%0"
-	    : "=&r" (r) : "rm" (x), "r" (-1));
 #else
-	asm("bsfl %1,%0\n\t"
-	    "jnz 1f\n\t"
-	    "movl $-1,%0\n"
-	    "1:" : "=r" (r) : "rm" (x));
+	if (!x)
+		return 0;
+	asm("bsfl %1,%0" : "=r" (r) : "rm" (x));
 #endif
 	return r + 1;
 }
@@ -378,15 +373,10 @@ static __always_inline int fls(unsigned int x)
 	asm("bsrl %1,%0"
 	    : "=r" (r)
 	    : ASM_INPUT_RM (x), "0" (-1));
-#elif defined(CONFIG_X86_CMOV)
-	asm("bsrl %1,%0\n\t"
-	    "cmovzl %2,%0"
-	    : "=&r" (r) : "rm" (x), "rm" (-1));
 #else
-	asm("bsrl %1,%0\n\t"
-	    "jnz 1f\n\t"
-	    "movl $-1,%0\n"
-	    "1:" : "=r" (r) : "rm" (x));
+	if (!x)
+		return 0;
+	asm("bsrl %1,%0" : "=r" (r) : "rm" (x));
 #endif
 	return r + 1;
 }


From xen-devel-bounces@lists.xenproject.org Mon Apr 28 07:00:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 07:00:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.970125.1358887 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9ITa-0007aD-A7; Mon, 28 Apr 2025 07:00:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 970125.1358887; Mon, 28 Apr 2025 07:00: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 1u9ITa-0007a6-6Q; Mon, 28 Apr 2025 07:00:26 +0000
Received: by outflank-mailman (input) for mailman id 970125;
 Mon, 28 Apr 2025 07:00: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=5hYN=XO=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u9ITY-0007Zy-R5
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 07:00: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 74275fd6-23fe-11f0-9ffb-bf95429c2676;
 Mon, 28 Apr 2025 09:00:22 +0200 (CEST)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-43ed8d32a95so38412325e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 28 Apr 2025 00:00:22 -0700 (PDT)
Received: from [10.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-3a073e4698csm10248437f8f.62.2025.04.28.00.00.21
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 28 Apr 2025 00:00:21 -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: 74275fd6-23fe-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745823622; x=1746428422; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Tl7f1khXY6RXWcosj6U0MjuBZORtZRYLyXuet1CM9hQ=;
        b=fxtAxERiiGenN0ASORW3V56DpCe6FuPWnlk9BrjNSO9Ad+pKro21zkypPHP6KAEKPR
         PHDEXGLf+CGVxMlfgtiaotGxcJL1gItUJj4jIMZf0Cbv2r0MpEHxfn35Ic3kFcLjf30Z
         /bVTi9q9KYX+yj7VBa4GhmDNxFy/eaILAIoPqMAv5zKT+6WcoruJP7b5U6f+elNlB4jN
         GCNBw73Fmetd4XgMUBuXkWInm+Sn/xskthl7QrHg8t3PDNUb8irvIsUlxXG1kIGjYjyv
         +651gCkSfgbNnVmoxRqIHuGyHJxmIzn0hB+QmpofhaULtj5f+nrk/6ZWbFGl4O83dNpf
         uR4w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745823622; x=1746428422;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Tl7f1khXY6RXWcosj6U0MjuBZORtZRYLyXuet1CM9hQ=;
        b=j6vRt4YhlHz9e6Kd53GBAdOBQrFUm3xFc1T6+uOfUY0OiF+9ht6uhsKVBpF2/OVO73
         Kt6lad3XGu+efkW0O2iXeHl8ArdPiBLDq3nVo5JJUkwGlRsZ7G5urpaziQXUTCDchHr8
         F8qpVAi7++DHGU2wZlXVjBUwIMbYxlH2wiUgiVSxZXWy+Dg+vEkrfZeV1twjvRL9kGPV
         ssQI77dBwDxK6xXuRwx7AZvv479VyQS7OzYQBIj9MOrHfACM54pxNnwSljCtSXKoQSVM
         ZuWABBOWVpdDpWT7/v0QUennPuLqNfv3ELccegRjqih1WI+nCl61w18qSb9n7haNkGlc
         zE2A==
X-Forwarded-Encrypted: i=1; AJvYcCWg7m1EVYGKSsqnPwsOBJrhXjcu56t4Gi5W1atl30I8Di6XG5QJ9YtBih+jGg8O736/rBg5nViu/iM=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz+D/Z9Z86Icue2z7HWDfLFtyXeNsow35BzAKiYSugpyTcPgp6n
	Rf+mkzK4Xep+bN30z57nn5jSRq3KtCwToViYyYIdSwqGQSljm9w4n5rIPy2TIA==
X-Gm-Gg: ASbGncsQWMdn6flRdut2W/alDFlNyf20UDlQeIyFZYs4/R1oMc8IotN2Qea1o/NLyVq
	exTYdXIHj1l/Q9rX6LB8vk95oYiKkTw/BC1Kw4YcPQaP0aybKrn+fGPvnOeNMSFZZAkeNuOX9OZ
	+VOA7Wb4ESQdraXmvizrKUewrFYPyedlvC96gRgAiT2aAVs1qGPtxZG6QdTr5+zh9i0NbYTVGs8
	3Sx0MgsVv92gjji4gZRuiq1foRldkCD0xfUjjos0ugzlLTkK1hGveAdX4NtlSWfkYRDxcdrtO9u
	8vTCYquBxMBeCoaQdxYhHa8V21127Gw+m52rFKoKh8AlzTd+0MeNuOtGZP/WgnYt4TZGWAJaIVd
	4t33/1QxpydlUvIwqd1R1zuF/HA==
X-Google-Smtp-Source: AGHT+IE1mmzE47C0Z2XHS0ITu1wwvi9B9C1EDcMziKCkZ4wHuPR3mg9sGjHrYwe2YM8/iYSbLsSmog==
X-Received: by 2002:a5d:59a7:0:b0:39f:efb:c2f6 with SMTP id ffacd0b85a97d-3a074e3e6a8mr9957738f8f.33.1745823622131;
        Mon, 28 Apr 2025 00:00:22 -0700 (PDT)
Message-ID: <a004a4e3-5ef1-43b3-a644-e3d3cbfcfe29@suse.com>
Date: Mon, 28 Apr 2025 09:00:22 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] x86/hyperv: use dynamically allocated page for
 hypercalls
To: Ariadne Conill <ariadne@ariadne.space>
Cc: Paul Durrant <paul@xen.org>, Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Alejandro Vallejo <agarciav@amd.com>,
 "Alexander M . Merritt" <alexander@edera.dev>, xen-devel@lists.xenproject.org
References: <20250425234331.65875-1-ariadne@ariadne.space>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20250425234331.65875-1-ariadne@ariadne.space>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 26.04.2025 01:43, Ariadne Conill wrote:
> Previously Xen placed the hypercall page at the highest possible MFN,
> but this caused problems on systems where there is more than 36 bits
> of physical address space.
> 
> In general, it also seems unreliable to assume that the highest possible
> MFN is not already reserved for some other purpose.
> 
> Changes from v1:
> - Continue to use fixmap infrastructure
> - Use panic in Hyper-V setup() function instead of returning -ENOMEM
>   on hypercall page allocation failure

Nit: This part wants to go ...

> Fixes: 620fc734f854 ("x86/hyperv: setup hypercall page")
> Cc: Alejandro Vallejo <agarciav@amd.com>
> Cc: Alexander M. Merritt <alexander@edera.dev>
> Signed-off-by: Ariadne Conill <ariadne@ariadne.space>
> ---

... somewhere below such a separator.

> --- a/xen/arch/x86/guest/hyperv/hyperv.c
> +++ b/xen/arch/x86/guest/hyperv/hyperv.c
> @@ -98,7 +98,13 @@ static void __init setup_hypercall_page(void)
>      rdmsrl(HV_X64_MSR_HYPERCALL, hypercall_msr.as_uint64);
>      if ( !hypercall_msr.enable )
>      {
> -        mfn = HV_HCALL_MFN;
> +        void *hcall_page = alloc_xenheap_page();
> +        if ( !hcall_page )

Nit (style): Blank line please between declaration(s) and statement(s). (Both
can probably be taken care of upon committing if no other need for a v3 arises.)

Jan


From xen-devel-bounces@lists.xenproject.org Mon Apr 28 07:05:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 07:05:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.970138.1358897 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9IYN-0000DP-Sq; Mon, 28 Apr 2025 07:05:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 970138.1358897; Mon, 28 Apr 2025 07:05: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 1u9IYN-0000DI-Of; Mon, 28 Apr 2025 07:05:23 +0000
Received: by outflank-mailman (input) for mailman id 970138;
 Mon, 28 Apr 2025 07:05: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=C08U=XO=kernel.org=mingo@srs-se1.protection.inumbo.net>)
 id 1u9IYM-0000DC-LW
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 07:05:22 +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 24cdfe03-23ff-11f0-9ffb-bf95429c2676;
 Mon, 28 Apr 2025 09:05:19 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by nyc.source.kernel.org (Postfix) with ESMTP id 1FF41A49D68;
 Mon, 28 Apr 2025 06:59:51 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id C4868C4CEE4;
 Mon, 28 Apr 2025 07:05: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: 24cdfe03-23ff-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1745823918;
	bh=ZR+51/a7SRTRGqwOHXRQQygxFCEZLSQcgVb51P3cI3M=;
	h=Date:From:To:Cc:Subject:References:In-Reply-To:From;
	b=Nn0CTW7mOuzrRxZANBCgZkQkHaRHLYrAdgAGn4DoDQIEzUJHMPgLbHjEoQ1u2gQa1
	 n0U1Gxbc4LOxpyQAlH2jGTbGvxi0D4T0bL9J4Alg+olwo6qCF6V3sv54uhNBGBXjQQ
	 8XJz69xiKZXFXNoyY52aCXZG/JPfpkMf0omtbRGxtjCUupqdLiCyrLwjR3e3Mp2VhN
	 Og5dbJzOwOo3hf3jDCmUUzo/FUMiLeNcfEv9ieVnwEdBWO28S2stAC54fxJSx5bYbT
	 odBHjud3aYX7F7kVQ2PYr6Wc6dNXzBHyxAkOpqNroqGgexyuhEsTKmKzmSI36hCL+l
	 7qw7NoFQPZBLA==
Date: Mon, 28 Apr 2025 09:05:12 +0200
From: Ingo Molnar <mingo@kernel.org>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Arnd Bergmann <arnd@arndb.de>, Arnd Bergmann <arnd@kernel.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>, Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Alexander Usyskin <alexander.usyskin@intel.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Mateusz =?utf-8?Q?Jo=C5=84czyk?= <mat.jonczyk@o2.pl>,
	Mike Rapoport <rppt@kernel.org>, Ard Biesheuvel <ardb@kernel.org>,
	Peter Zijlstra <peterz@infradead.org>, linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH] bitops/32: Convert variable_ffs() and fls() zero-case
 handling to C
Message-ID: <aA8oqKUaFU-0wb-D@gmail.com>
References: <20250425141740.734030-1-arnd@kernel.org>
 <aAyiganPp_UsNlnZ@gmail.com>
 <d2b0e71c-e79b-40d6-8693-3202cd894d66@app.fastmail.com>
 <CAHk-=wh=TUsVv6xhtzYsWJwJggrjyOfYT3kBu+bHtoYLK0M9Xw@mail.gmail.com>
 <CAHk-=wgfk69H-T-vMWR33xUpVsWJLrF34d0OwUXa2sHhtpSwZg@mail.gmail.com>
 <e54f1943-e0ff-4f59-b24f-9b5a7a38becf@citrix.com>
 <CAHk-=wj0S2vWui0Y+1hpYMEhCiXKexbQ01h+Ckvww8hB29az_A@mail.gmail.com>
 <aA8nF0moBYOIgC5J@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <aA8nF0moBYOIgC5J@gmail.com>


* Ingo Molnar <mingo@kernel.org> wrote:

> > UNTESTED patch applied in case somebody wants to play with this. It
> > removes 10 lines of silly code, and along with them that 'cmov' use.
> > 
> > Anybody?
> 
> Makes sense - it seems to boot here, but I only did some very light 
> testing.
> 
> There's a minor text size increase on x86-32 defconfig, GCC 14.2.0:
> 
>       text       data        bss         dec        hex    filename
>   16577728    7598826    1744896    25921450    18b87aa    vmlinux.before
>   16577908    7598838    1744896    25921642    18b886a    vmlinux.after
> 
> bloatometer output:
> 
>   add/remove: 2/1 grow/shrink: 201/189 up/down: 5681/-3486 (2195)

And once we remove 486, I think we can do the optimization below to 
just assume the output doesn't get clobbered by BS*L in the zero-case, 
right?

In the text size space it's a substantial optimization on x86-32 
defconfig:

        text	   data	       bss	     dec	    hex	filename
  16,577,728    7598826    1744896      25921450        18b87aa vmlinux.vanilla      # CMOV+BS*L
  16,577,908	7598838	   1744896	25921642	18b886a	vmlinux.linus_patch  # if()+BS*L
  16,573,568	7602922	   1744896	25921386	18b876a	vmlinux.noclobber    # BS*L

Thanks,

	Ingo

---
 arch/x86/include/asm/bitops.h | 20 ++------------------
 1 file changed, 2 insertions(+), 18 deletions(-)

diff --git a/arch/x86/include/asm/bitops.h b/arch/x86/include/asm/bitops.h
index 6061c87f14ac..e3e94a806656 100644
--- a/arch/x86/include/asm/bitops.h
+++ b/arch/x86/include/asm/bitops.h
@@ -308,24 +308,16 @@ static __always_inline int variable_ffs(int x)
 {
 	int r;
 
-#ifdef CONFIG_X86_64
 	/*
 	 * AMD64 says BSFL won't clobber the dest reg if x==0; Intel64 says the
 	 * dest reg is undefined if x==0, but their CPU architect says its
 	 * value is written to set it to the same as before, except that the
 	 * top 32 bits will be cleared.
-	 *
-	 * We cannot do this on 32 bits because at the very least some
-	 * 486 CPUs did not behave this way.
 	 */
 	asm("bsfl %1,%0"
 	    : "=r" (r)
 	    : ASM_INPUT_RM (x), "0" (-1));
-#else
-	if (!x)
-		return 0;
-	asm("bsfl %1,%0" : "=r" (r) : "rm" (x));
-#endif
+
 	return r + 1;
 }
 
@@ -360,24 +352,16 @@ static __always_inline int fls(unsigned int x)
 	if (__builtin_constant_p(x))
 		return x ? 32 - __builtin_clz(x) : 0;
 
-#ifdef CONFIG_X86_64
 	/*
 	 * AMD64 says BSRL won't clobber the dest reg if x==0; Intel64 says the
 	 * dest reg is undefined if x==0, but their CPU architect says its
 	 * value is written to set it to the same as before, except that the
 	 * top 32 bits will be cleared.
-	 *
-	 * We cannot do this on 32 bits because at the very least some
-	 * 486 CPUs did not behave this way.
 	 */
 	asm("bsrl %1,%0"
 	    : "=r" (r)
 	    : ASM_INPUT_RM (x), "0" (-1));
-#else
-	if (!x)
-		return 0;
-	asm("bsrl %1,%0" : "=r" (r) : "rm" (x));
-#endif
+
 	return r + 1;
 }
 



From xen-devel-bounces@lists.xenproject.org Mon Apr 28 07:14:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 07:14:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.970152.1358907 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9Igk-0002Lj-Kt; Mon, 28 Apr 2025 07:14:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 970152.1358907; Mon, 28 Apr 2025 07: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 1u9Igk-0002Lc-Hp; Mon, 28 Apr 2025 07:14:02 +0000
Received: by outflank-mailman (input) for mailman id 970152;
 Mon, 28 Apr 2025 07:14: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=5hYN=XO=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u9Igj-0002LV-HN
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 07:14:01 +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 5b7123cb-2400-11f0-9eb4-5ba50f476ded;
 Mon, 28 Apr 2025 09:14:00 +0200 (CEST)
Received: by mail-wr1-x436.google.com with SMTP id
 ffacd0b85a97d-39c1efc457bso3050475f8f.2
 for <xen-devel@lists.xenproject.org>; Mon, 28 Apr 2025 00:14:00 -0700 (PDT)
Received: from [10.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-3a073ca4cbcsm10082353f8f.25.2025.04.28.00.13.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 28 Apr 2025 00:13: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: 5b7123cb-2400-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745824440; x=1746429240; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=2XEIBbRIoqNu2tpdCNte9vOYYf+G/BnqTRXsCrf+q9Q=;
        b=f87rmzPQI3rFZmoCg0QAezi6GIXhlc1f6WkWm8KgB0erO27De4XiacM6Z2oq5O2Jc4
         ZaeVD0NrY3ZPuLJefr19v6FIovpBRSA7mta7kvResRDvdD9bOE5zmJwC499Rl7SO8IIZ
         iFMwFoOXXR3ORL7lDG2DTKCSGtAR19rV0JEJZ/l24IkyhptiC3uouoFHg9hQvUSKuoEM
         Pwh/M6VQ5RITPNp/MR6mysfQ5voDDiQQwqsVNmdQg27OtdJlWK+j5ZtYIC/dWZbdWHbG
         H85cKI4v6qHM5LYBBnnKx7V6i7SUK3WVj8HwruBOmUloFACSBH8c1hP+zp1nffLC3tf6
         4Kgw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745824440; x=1746429240;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=2XEIBbRIoqNu2tpdCNte9vOYYf+G/BnqTRXsCrf+q9Q=;
        b=S7av3x3WdK42ZwdqYAOBKIHlMZ6Ei0bJg6WQsi4SMQ3OkwOjawfffT60pycz5cMYXR
         5GQFegEiea04kyXeFdmyEjL/8hYQeg7do6YZczE9A7XClKJqNlnCs70nEuM1ubzL8olU
         8E+xIH9SE+tQ8eOw/MC04LGXQOqwi3TtSG/Ex1iZc0Q1SDv9ktWUoFM4rx8hl90YpUNX
         nn3ZAfZz0la3NIC3Ycw7eZE2bT42qZf9/UMzsD4byLXHVvhwP3EuH8R9FOqUxUvFdi5p
         EK+sIZt7hk0EfIk0Jd1PFrvW7/2L9BwpTu2fono8nilqCrCgUkcpI1TNpb5zaM3c6lJD
         yaQw==
X-Forwarded-Encrypted: i=1; AJvYcCWGranjN7ExkGavSTrekQadXmWCfVtNRrb8ds0Ocuv3ALewp1Pt+1JM/ztVgA4u3wowVDR//E6oa3o=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx0B/xpbHdcHQQAgkuPztcvC8zHl9VzWB6phCUqkozRxsZLEkth
	xzbfIUkwYoA8F6BFPSeqOnyUHn452UkXtL0rBPtIQwEAhc+ahNsYrTuz4Ktj6w==
X-Gm-Gg: ASbGncv6YRH/2vzZ7NQg8zFCcqJk12AFsEeM4+3SFmIYGTOKj8kJL0Wbq9iZtPj5+i8
	elZ1TAfyWKwq2OjsbHSPxKoaCZMay0kBhx/wn9w0pgacPV9Ph6WWe3NoSFpvmww/Oc7eMwmaNQz
	uY3iiBpB4wKNEffdlx6RTs6g/KGuNZX/MOAV1wWAg46pgALDTodzFKQcBZqk0sKi3KJFhW76Fb3
	3FNQPzG6D+KOZOUAUU0b6Hi7hbLdyfwrs5Hh+A8ejLnroVvRaUHxNxtlxe2w+Tnxr8xyQ8zPQF7
	q8w++cpKqJNDVBJAgrXw83fF2SJm35GUBhU5a8fY6IFckdSANsD9z8m6v7HxuQ+057qsGGJRKKH
	bLb/+LZWI/NCIEUUcZkzrgJweJQ==
X-Google-Smtp-Source: AGHT+IF/nhXAFY5Qt5UyTX3iBp7/bgCpEJr8PVEjJB6Ek1jMqF1jSDz0B9+D8pmFdZ1JNDviGXAgrw==
X-Received: by 2002:adf:e5c3:0:b0:39a:c467:a095 with SMTP id ffacd0b85a97d-3a07aa7545emr4319963f8f.24.1745824439634;
        Mon, 28 Apr 2025 00:13:59 -0700 (PDT)
Message-ID: <19d9aec4-c21a-47a9-9c58-6bfcadbd22e0@suse.com>
Date: Mon, 28 Apr 2025 09:14:00 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/x86: allow Dom0 PVH to call XENMEM_exchange
To: Stefano Stabellini <sstabellini@kernel.org>,
 "Ragiadakou, Xenia" <Xenia.Ragiadakou@amd.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 jason.andryuk@amd.com, agarciav@amd.com, xen-devel@lists.xenproject.org
References: <alpine.DEB.2.22.394.2504251314050.785180@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.2504251314050.785180@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 25.04.2025 22:19, Stefano Stabellini wrote:
> From: Xenia Ragiadakou <Xenia.Ragiadakou@amd.com>
> 
> Dom0 PVH might need XENMEM_exchange when passing contiguous memory
> addresses to firmware or co-processors not behind an IOMMU.

I definitely don't understand the firmware part: It's subject to the
same transparent P2M translations as the rest of the VM; it's just
another piece of software running there.

"Co-processors not behind an IOMMU" is also interesting; a more
concrete scenario might be nice, yet I realize you may be limited in
what you're allowed to say.

> XENMEM_exchange was blocked for HVM/PVH DomUs, and accidentally it
> impacted Dom0 PVH as well.

This wasn't accidental at all, I don't think.

> --- a/xen/arch/x86/mm.c
> +++ b/xen/arch/x86/mm.c
> @@ -4401,7 +4401,7 @@ int steal_page(
>      const struct domain *owner;
>      int rc;
>  
> -    if ( paging_mode_external(d) )
> +    if ( paging_mode_external(d) && !is_hardware_domain(d) )
>          return -EOPNOTSUPP;
>  
>      /* Grab a reference to make sure the page doesn't change under our feet */

Is this (in particular the code following below here) a safe thing to do
when we don't properly refcount page references from the P2M, yet? It's
Dom0, yes, but even there I might see potential security implications (as
top violating privacy of a guest).

Furthermore cleanup_page_mappings() (called later in the function) has a
PV-only aspect which would apparently need widening to PVH Dom0 then,
too.

> --- a/xen/common/memory.c
> +++ b/xen/common/memory.c
> @@ -794,7 +794,7 @@ static long memory_exchange(XEN_GUEST_HANDLE_PARAM(xen_memory_exchange_t) arg)
>              rc = guest_physmap_add_page(d, _gfn(gpfn), mfn,
>                                          exch.out.extent_order) ?: rc;
>  
> -            if ( !paging_mode_translate(d) &&
> +            if ( (!paging_mode_translate(d) || is_hardware_domain(d)) &&
>                   __copy_mfn_to_guest_offset(exch.out.extent_start,
>                                              (i << out_chunk_order) + j,
>                                              mfn) )

Wait, no: A PVH domain (Dom0 or not) can't very well make use of MFNs, can
it?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Apr 28 07:14:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 07:14:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.970163.1358916 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9IhX-0002u2-W8; Mon, 28 Apr 2025 07:14:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 970163.1358916; Mon, 28 Apr 2025 07:14: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 1u9IhX-0002tv-Th; Mon, 28 Apr 2025 07:14:51 +0000
Received: by outflank-mailman (input) for mailman id 970163;
 Mon, 28 Apr 2025 07:14: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=C08U=XO=kernel.org=mingo@srs-se1.protection.inumbo.net>)
 id 1u9IhW-0002ej-UW
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 07:14:50 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 780213f6-2400-11f0-9ffb-bf95429c2676;
 Mon, 28 Apr 2025 09:14:48 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 208226115B;
 Mon, 28 Apr 2025 07:14:23 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 74333C4CEEC;
 Mon, 28 Apr 2025 07:14:43 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 780213f6-2400-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1745824487;
	bh=HU7iY1werGlJ+QoJB51RFGwv+gbaO9ieC2TdEUyfC+E=;
	h=Date:From:To:Cc:Subject:References:In-Reply-To:From;
	b=XHPzu1paNX9zJyODrlzu6FElO4xhbEEZHYa20acxNqEtlqZF+nm4tKsTED6vEJvL8
	 yTvbrFIm2nCrPIIUVDcY6KSQapmLZfkO5RY1hpBE5A/4rh/d1OhBNxm+FCcxnddYtW
	 zrGxxT/iAqBcgX+g0nU6KKkNpaREP840N+xO2lkofe3/XyPCCkeUx1koDMsMSK9Hon
	 I+ZymKySOfDFK8DBZfF9HKimQmUDUIQAFmsb7vG+5xsR7XxsQ+gB1MdkoglzMR3GXW
	 3Qnrd6fTag/tIm9Obf/bxHu6QKnQUKfy65MVbupaRJc0jBWlC0zimT+7XGLduXjNH+
	 uaHdoy5OwgT+g==
Date: Mon, 28 Apr 2025 09:14:40 +0200
From: Ingo Molnar <mingo@kernel.org>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Arnd Bergmann <arnd@arndb.de>, Arnd Bergmann <arnd@kernel.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>, Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Alexander Usyskin <alexander.usyskin@intel.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Mateusz =?utf-8?Q?Jo=C5=84czyk?= <mat.jonczyk@o2.pl>,
	Mike Rapoport <rppt@kernel.org>, Ard Biesheuvel <ardb@kernel.org>,
	Peter Zijlstra <peterz@infradead.org>, linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH] bitops/32: Convert variable_ffs() and fls() zero-case
 handling to C
Message-ID: <aA8q4Ot-1zTzv_Kt@gmail.com>
References: <20250425141740.734030-1-arnd@kernel.org>
 <aAyiganPp_UsNlnZ@gmail.com>
 <d2b0e71c-e79b-40d6-8693-3202cd894d66@app.fastmail.com>
 <CAHk-=wh=TUsVv6xhtzYsWJwJggrjyOfYT3kBu+bHtoYLK0M9Xw@mail.gmail.com>
 <CAHk-=wgfk69H-T-vMWR33xUpVsWJLrF34d0OwUXa2sHhtpSwZg@mail.gmail.com>
 <e54f1943-e0ff-4f59-b24f-9b5a7a38becf@citrix.com>
 <CAHk-=wj0S2vWui0Y+1hpYMEhCiXKexbQ01h+Ckvww8hB29az_A@mail.gmail.com>
 <aA8nF0moBYOIgC5J@gmail.com>
 <aA8oqKUaFU-0wb-D@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <aA8oqKUaFU-0wb-D@gmail.com>


* Ingo Molnar <mingo@kernel.org> wrote:

> And once we remove 486, I think we can do the optimization below to 
> just assume the output doesn't get clobbered by BS*L in the 
> zero-case, right?
> 
> In the text size space it's a substantial optimization on x86-32 
> defconfig:
> 
>         text	   data	       bss	     dec	    hex	filename
>   16,577,728    7598826    1744896      25921450        18b87aa vmlinux.vanilla      # CMOV+BS*L
>   16,577,908	7598838	   1744896	25921642	18b886a	vmlinux.linus_patch  # if()+BS*L
>   16,573,568	7602922	   1744896	25921386	18b876a	vmlinux.noclobber    # BS*L

And BTW, *that* is a price that all of non-486 x86-32 was paying for 
486 support...

And, just out of intellectual curiosity, I also tried to measure the 
code generation price of the +1 standards-quirk in the fls()/ffs() 
interface as well:

         text	   data	       bss	     dec	    hex	filename
   16,577,728   7598826    1744896      25921450        18b87aa vmlinux.vanilla      # CMOV+BS*L
   16,577,908	7598838	   1744896	25921642	18b886a	vmlinux.linus_patch  # if()+BS*L
   16,573,568	7602922	   1744896	25921386	18b876a	vmlinux.noclobber    # BS*L
   ..........
   16,573,552	7602922	   1744896	25921370	18b875a	vmlinux.broken       # BROKEN: 0 baseline instead of 1

... and unless I messed up the patch, it seems to have a surprisingly 
low impact - maybe because the compiler can amortize its cost by 
adjusting all dependent code mostly at build time, so the +1 doesn't 
end up being generated most of the time?

Thanks,

	Ingo

===============================>

This broken patch is broken: it intentionally breaks the ffs()/fls() 
interface in an attempt to measure the code generation effects of 
interface details.

NOT-Signed-off-by: <anyone@anywhere.anytime>
---
 arch/x86/include/asm/bitops.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/x86/include/asm/bitops.h b/arch/x86/include/asm/bitops.h
index e3e94a806656..21707696bafe 100644
--- a/arch/x86/include/asm/bitops.h
+++ b/arch/x86/include/asm/bitops.h
@@ -318,7 +318,7 @@ static __always_inline int variable_ffs(int x)
 	    : "=r" (r)
 	    : ASM_INPUT_RM (x), "0" (-1));
 
-	return r + 1;
+	return r;
 }
 
 /**
@@ -362,7 +362,7 @@ static __always_inline int fls(unsigned int x)
 	    : "=r" (r)
 	    : ASM_INPUT_RM (x), "0" (-1));
 
-	return r + 1;
+	return r;
 }
 
 /**


From xen-devel-bounces@lists.xenproject.org Mon Apr 28 07:21:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 07:21:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.970180.1358926 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9Inq-0004ij-LI; Mon, 28 Apr 2025 07:21:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 970180.1358926; Mon, 28 Apr 2025 07:21:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9Inq-0004ic-ID; Mon, 28 Apr 2025 07:21:22 +0000
Received: by outflank-mailman (input) for mailman id 970180;
 Mon, 28 Apr 2025 07:21: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=5hYN=XO=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u9Inp-0004h8-1J
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 07:21:21 +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 61787933-2401-11f0-9eb4-5ba50f476ded;
 Mon, 28 Apr 2025 09:21:19 +0200 (CEST)
Received: by mail-wr1-x432.google.com with SMTP id
 ffacd0b85a97d-39c0dfba946so3175602f8f.3
 for <xen-devel@lists.xenproject.org>; Mon, 28 Apr 2025 00:21:19 -0700 (PDT)
Received: from [10.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-3a073c8ca72sm10048549f8f.4.2025.04.28.00.21.18
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 28 Apr 2025 00:21:18 -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: 61787933-2401-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745824879; x=1746429679; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=PQBQnTGS+avpIl3YD33ol1UgfO0f8ISsdtYtrlaMxjU=;
        b=boKZnpb8RvrKuZZWnrHVNxso+X0rktTi5mwwRnG6CqJejpBXbWOvTD359IuFy/8WAS
         ve/vhMSKka4hVWwc4ygC9Ne824lvCXSNQvfoM7C5Flb+ygIDecdPa9yOgOsJ9KgI10Q6
         BMxluUwceiYljoU3ETyjxIvkxeh4YohiSvR799QMJVRtNymDOXQfPY32QHnvparXZG39
         r2e2ElTm7D32nncUJ6li+hf42Q3spImJXE8L9XHLICsdotJUzwY0DaHDojLArqMRU3ND
         bI75p+C8UA1y/By79QBgg0pBswuJKevJI4XvE7yzQWDXNzGF8A/uuPn80R6t2YTdsYF0
         3BjQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745824879; x=1746429679;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=PQBQnTGS+avpIl3YD33ol1UgfO0f8ISsdtYtrlaMxjU=;
        b=Mm0a6mt9MMHWHsX808dO4YyGPOYX2ezTZet/1gIAoiyvRfFdeuuRDOsQ+9BeIVu1Fh
         W4zX8tld1daeidjUZBvXJE5c/JUStdfTDK52cRvyHf7TfIfCOHHNmmqsKIcERIUUyFHU
         qBGl71OGMhN6JnjDXUpDl4G2sbsndsRje6bcyAqbuUDlVqmc5yUQPX0UL9FuLlbEn2qk
         ro7qgP/3ji1zYj0qgjHRxTMdYwcdDs0GTRThPqC95Zo/uhIwjUes5BRFaOGCYWHamdIL
         BUIH3q0K1dAWRlwf2GNrtIUdRRlGLxMVGdqIGhNiP96VxoXuP50vr9wj6Drq2CUL+x6j
         Xv2A==
X-Forwarded-Encrypted: i=1; AJvYcCXsavGjkUqd+aWOfMw1IYyiY2g2eBShlMuVRVy4JmG951FT7o4ywADTXBtBDbdtjq5ryviSUgsBw3U=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzdYiKsReywEEE2Qgj5tQFBRY9E1ryFwjrRexswfIEkCTMzBM+h
	YJYPcViWYIZI48Fp5lK3Lc7RJTmGpelqD442Sbdk7Rr/SOXz+YgywWDmmocNqQ==
X-Gm-Gg: ASbGncvZeXrsW+4n47zgNYvTvHZZcrlZCigrKIHjlyuHMf7dMkVrUqBnXIW2zGwC1BT
	EFbMs61H+muCXRyJLIkNJ+nNLj5pbGH4O6DlxmjIO9o8/4sgZvK1Apd8OhGX/YWUkMwJ8UGlufF
	/c4mHfuXUD8ac29WWGd2s61FZtG0QCP9Kv8xSRaelH9NBIqiNBVCMXeKp+QBjyOzffIvmqSpQ+M
	TgeyZhYhZVlN6riQ2OCb4sRWsfac0+nkV91swOyC/FpbWfEy5xxWfsEKZoSzv0CD8YhiYq2POaT
	xOnN5BvC+pBVWmmnZ6uIerkR82w9Raq8C/lSZihkqj6djAutgWBYyJz7AbDD3tCpyxQdvUwZXjU
	Cu12K+OucAHleFoQk2FYpdgNRPA==
X-Google-Smtp-Source: AGHT+IGI9Fj1wXy0f5L5EC4YQ3nCdvQzXf1k6ISr5pKCfb81LSebMAnoRvJEOhcfgbb2sUYZKbOiaw==
X-Received: by 2002:a5d:4885:0:b0:39c:1404:312f with SMTP id ffacd0b85a97d-3a07aa67ab0mr3862983f8f.1.1745824879257;
        Mon, 28 Apr 2025 00:21:19 -0700 (PDT)
Message-ID: <914e3157-736a-4890-9c91-e93fcc260bb0@suse.com>
Date: Mon, 28 Apr 2025 09:21:19 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 1/3] x86: x86_emulate: address violations of MISRA C
 Rule 19.1
To: victorm.lira@amd.com
Cc: Nicola Vetrini <nicola.vetrini@bugseng.com>,
 Federico Serafini <federico.serafini@bugseng.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>, xen-devel@lists.xenproject.org
References: <c694069696dd428bc1719e36c378a573b03f74b9.1745624090.git.victorm.lira@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: <c694069696dd428bc1719e36c378a573b03f74b9.1745624090.git.victorm.lira@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 26.04.2025 01:42, victorm.lira@amd.com wrote:
> From: Nicola Vetrini <nicola.vetrini@bugseng.com>
> 
> Rule 19.1 states: "An object shall not be assigned or copied
> to an overlapping object". Since the "call" and "compat_call" are

Was this taken from patch 2 without editing?

> --- a/xen/arch/x86/x86_emulate/x86_emulate.c
> +++ b/xen/arch/x86/x86_emulate/x86_emulate.c
> @@ -526,9 +526,19 @@ static inline void put_loop_count(
>           */                                                             \
>          if ( !amd_like(ctxt) && mode_64bit() && ad_bytes == 4 )         \
>          {                                                               \
> +            uint64_t tmp;                                               \
> +                                                                        \
>              _regs.r(cx) = 0;                                            \
> -            if ( extend_si ) _regs.r(si) = _regs.esi;                   \
> -            if ( extend_di ) _regs.r(di) = _regs.edi;                   \
> +            if ( extend_si )                                            \
> +            {                                                           \
> +                tmp = _regs.esi;                                        \
> +                _regs.r(si) = tmp;                                      \
> +            }                                                           \
> +            if ( extend_di )                                            \
> +            {                                                           \
> +                tmp = _regs.edi;                                        \
> +                _regs.r(di) = tmp;                                      \
> +            }                                                           \

See commit 7225f13aef03 for how we chose to address similar issues elsewhere
in the emulator. I think we want to be consistent there. This will then also
eliminate ...

> @@ -2029,7 +2039,12 @@ x86_emulate(
>          switch ( op_bytes )
>          {
>          case 2: _regs.ax = (int8_t)_regs.ax; break; /* cbw */
> -        case 4: _regs.r(ax) = (uint32_t)(int16_t)_regs.ax; break; /* cwde */
> +        case 4:
> +            {
> +                uint32_t tmp = (uint32_t)(int16_t)_regs.ax;
> +                _regs.r(ax) = tmp;
> +                break; /* cwde */
> +            }

... the odd brace placement here, as well as the inconsistency in the types
you used for the temporary variables (both really could have been unsigned
int; no need for a fixed-width type).

Jan


From xen-devel-bounces@lists.xenproject.org Mon Apr 28 07:28:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 07:28:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.970193.1358938 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9Iv2-0005f4-Co; Mon, 28 Apr 2025 07:28:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 970193.1358938; Mon, 28 Apr 2025 07:28:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9Iv2-0005ex-8P; Mon, 28 Apr 2025 07:28:48 +0000
Received: by outflank-mailman (input) for mailman id 970193;
 Mon, 28 Apr 2025 07:28: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=5hYN=XO=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u9Iv0-0005er-Pd
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 07:28: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 6a49af6c-2402-11f0-9ffb-bf95429c2676;
 Mon, 28 Apr 2025 09:28:44 +0200 (CEST)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-4394a823036so42613455e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 28 Apr 2025 00:28:44 -0700 (PDT)
Received: from [10.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-440a52f8915sm118921685e9.7.2025.04.28.00.28.43
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 28 Apr 2025 00:28:43 -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: 6a49af6c-2402-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745825324; x=1746430124; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=KhEl+XJTa/JPCYXT6wWNqTNVJcpDja2+mTjwpNh1YHQ=;
        b=AwjMySvJaKGVf2g4NPj1ysckG/rXOpZqWYx2aqW5T/QJBQX6iNyqIuG3A2sPjtNUzx
         xvqAubGnzX1d8bJalEsknfOiF87rc3rWgTbrrYQOVU9fmJzP4gSt7LifjIjL6oH1dtLQ
         g1GzLEe3Ii0VLgTMVpTWgixnHcwwoQ3h2GDxjPQ8N6ln6d1b1aO9BJ1axYvG7EySCLnY
         +M3+osvRvXbTaOu+myIGE1d5oA6A7tfl2o9OGv7RR9skGTlCFtqwugGg4B6fDSZYj9pM
         v1ahpnZJUoXq9ufBQNAF5PnorXMCAatJ9FTQxSHh2jCgJx4JHPEtf7BOsZ6e7pp4YjJp
         5Akg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745825324; x=1746430124;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=KhEl+XJTa/JPCYXT6wWNqTNVJcpDja2+mTjwpNh1YHQ=;
        b=jCBH9MKoaqlvgO6SEjGKJoCzdyruBVK39YCRqm92AFViUYv3qkJToZA90RauHvyibG
         2ldN1If+k9toQ3DmimitQOOOTljiKxGlPUGGZIoEKevf6wh0AVFzHLBCASObPc+QZGh0
         1uB8SIjLVVXv3RPQMwT087mIbaLqHE75C8UXAnOXYXRRbdL628jCCJGShIrkjGb86ff+
         X6qEM1sk4BJsmO0jGZllooSUTSKw64omQ235G74O5x9WHSdDfzRZladNrqaXlTT2xzJq
         5HmfFIh7nCJo/3AISb+oXczB5IqyjzCjZWfv1V+3JrrKNdZK+0LXC6KK+NJeln6sIP2v
         PHZw==
X-Forwarded-Encrypted: i=1; AJvYcCW+hRg2YyqzkPyqI20I30+6dcleTAhiOjOKA3kz64wC23YA5lIiisP1jdGNnQSS94cErq+mLf0Jh14=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxX77pV1nFOOyCvKiMO4bpm5f/ipvdz40YXuNnskVOkeBwsG1Cw
	BU1T83J3mG/btDwpMB50aJXNZssRw/55HjyO0D2Y5UMGlUHo9CvBX0XyBYBV2A==
X-Gm-Gg: ASbGncvRbB7m0ralbfoorRVUSzkejCtX0eJvSXOnvU2yQd9Iiw1oFO3Le+fhdBFbFQw
	ybdiuhQE2ZY00xud/trX5906RGiqqJle9+fgR6PDq91zyDw0++Xmc/jSuUO5LFKUIil7caBGeyn
	gRkfskNwAjV7oEzuoafAn4VUb4bkjOA6/NG6Dgt2LbLPOLDZDGxE7z8jMTikklA3j0kJHgSlwtL
	4R7LxzOGKWHk5GIUkDdo78nRrsb0FZP7ulhhO/lF/NXrIVDYMfhJPuvsy8vjAAI+0fQvw7uAwaW
	IwLrMYcTDMjBzjsyb6eAActGXiSI5Z9Ay72oCCjttbo2957WYXvQHEmL5zYuYHRqzW1+8yZY49k
	1PeH80RXrmLn96ptSAqdHMTQCmpPfb/jtTeiX
X-Google-Smtp-Source: AGHT+IEzoOzK0yFoyMQ/vZmQYXkYG8Ebzr5ASv0tIGVVGG5C2kwnsTKI2dWwjUi97cgFn64ksqABkw==
X-Received: by 2002:a05:600c:a089:b0:43c:efed:733e with SMTP id 5b1f17b1804b1-440a65e3e7emr95498685e9.14.1745825324014;
        Mon, 28 Apr 2025 00:28:44 -0700 (PDT)
Message-ID: <cb1f8a8f-8834-4610-baab-c53bf5928b0c@suse.com>
Date: Mon, 28 Apr 2025 09:28:44 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 2/3] compat: address violations of MISRA C Rule 19.1
To: victorm.lira@amd.com, Nicola Vetrini <nicola.vetrini@bugseng.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Federico Serafini <federico.serafini@bugseng.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>, xen-devel@lists.xenproject.org
References: <c694069696dd428bc1719e36c378a573b03f74b9.1745624090.git.victorm.lira@amd.com>
 <74b0420ab20fc0204db14c0a1a4a68ed48b25a38.1745624090.git.victorm.lira@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: <74b0420ab20fc0204db14c0a1a4a68ed48b25a38.1745624090.git.victorm.lira@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 26.04.2025 01:42, victorm.lira@amd.com wrote:
> From: Nicola Vetrini <nicola.vetrini@bugseng.com>
> 
> Rule 19.1 states: "An object shall not be assigned or copied
> to an overlapping object". Since the "call" and "compat_call" are
> fields of the same union, reading from one member and writing to
> the other violates the rule, while not causing Undefined Behavior
> due to their relative sizes. However, a dummy variable is used to
> address the violation and prevent the future possibility of
> incurring in UB.

If there is such a concern, ...

> --- a/xen/common/compat/multicall.c
> +++ b/xen/common/compat/multicall.c
> @@ -15,8 +15,13 @@ typedef int ret_t;
>  static inline void xlat_multicall_entry(struct mc_state *mcs)
>  {
>      int i;
> +    xen_ulong_t arg;
> +
>      for (i=0; i<6; i++)
> -        mcs->compat_call.args[i] = mcs->call.args[i];
> +    {
> +        arg = mcs->call.args[i];
> +        mcs->compat_call.args[i] = arg;
> +    }
>  }

... wouldn't it be of concern as well that the alternating parts of
the union are still accessed in a flip-flop manner? IOW we continue to
rely on the relative placement properties of the individual array
elements. To eliminate such a concern, I think the resulting code would
also want to be correct if iteration was swapped to work downwards.

Also the scope of the temporary could certainly be the loop body rather
than the entire function. I also don't think it needs to be xen_ulong_t,
but maybe using unsigned int instead wouldn't make a difference in
generated code.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Apr 28 07:43:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 07:43:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.970207.1358947 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9J9V-0000q9-JJ; Mon, 28 Apr 2025 07:43:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 970207.1358947; Mon, 28 Apr 2025 07:43: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 1u9J9V-0000q2-GI; Mon, 28 Apr 2025 07:43:45 +0000
Received: by outflank-mailman (input) for mailman id 970207;
 Mon, 28 Apr 2025 07:43: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=5hYN=XO=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u9J9U-0000pw-8S
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 07:43:44 +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 81deef8b-2404-11f0-9eb4-5ba50f476ded;
 Mon, 28 Apr 2025 09:43:42 +0200 (CEST)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-43cfe63c592so45867725e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 28 Apr 2025 00:43:42 -0700 (PDT)
Received: from [10.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-4409d29ba29sm148947785e9.7.2025.04.28.00.43.41
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 28 Apr 2025 00:43: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: 81deef8b-2404-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745826222; x=1746431022; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=6coqWLi2TgHzMLlt5v+nz4yb1DsAqZd6VeM+WiOGb2M=;
        b=Ir2GpL4K5Ub1wgUzRu/orWfWBG+3FZ7wSRzIaU/4TkJDo7lybhLjJXqAXxAjz3WJ1G
         yT0z9NArshl4g1e96OO12W0B2yc5RW3eS3yau/AhnDnWG4sPnHS9U9VN1ZKWAcBQ3/sk
         yJ/oO8IkEbm+MHmcRM9rkoquBSNftLkyuNtcaRFTMIuT8+w8dZEczs685QdrAmBSI+5B
         kqrhKGbbGtz14o6eDYsFuVIZ5xAco0EZYN7msmvo2fsr7D7y4Vw+bkMGQP2sxfs5EKlX
         Mm3GCBjaeGVIA5hzF9zEe+GZlw/kYZaDbgbe3pleqXX3vK3LNBRas1O2Wqrgtw6f8Brg
         Yfhw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745826222; x=1746431022;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=6coqWLi2TgHzMLlt5v+nz4yb1DsAqZd6VeM+WiOGb2M=;
        b=MNY9Ug+bm2/Z9lxrMmn5rT3SjFVLQ7Geln0qhs/knXMxyfnAtGJiYVHBIcnoKHr70n
         VlVo8MU5jLU6asJUQl0uaWdsMCDfJ1OPNrmucYmuUhoDI7M8nH5RdCekMvBf15C5gtIs
         ggv7zRKaTCqEQd2yM6Za80OvAQpfqunPQsuLeW9OHn8MB6YDTZWG3A3lyllgJEnBqam2
         oICKjg2FHufkR3IKM/5YGsUPI/D3y7DO3VBmejByyxInD9Kj6MaZyfW+IVh/71X5E197
         gnhCFgza2w3WVDQX4/+aTfl8vNoH2g45uTOj7E/qhEx+1qIkPYhDz7g8n70BRLb5aDFs
         0Vzg==
X-Forwarded-Encrypted: i=1; AJvYcCVBUw2SVs/53RxC5SKYqRrQJ7g2kgZLp/e8M28dAvuj2zGts2Rr78AGjfpsAiPLiwvxDqC2wWP3LQ8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwmHgL/wQI9V9rWxbfsLvwqRM7OvwLvlCQxGgiP5BSvSD0w3TSR
	PE1jRhPg5FKivMgwXYd6ZpoA+fAyRdVIe6C9s4fD2upbfeKHXt8cEIcvllzFvA==
X-Gm-Gg: ASbGnctmxJYl6Gf90A3ZcAyyVf7Q3jdENrJiNfoiNPe1MzQUz2VTvOpBJmAAXl6Wyy9
	sX4R6s6deVu+RzpGY5YpwU7D4sA6x5irgi3933mwCJp1Hv4JHnYB7KWWAx1+uXejpgLPH/jAvMM
	xzbQcSc+w507NZWTAdOlzOFXUGad9G5v1HlobzHyi/a8aJj8F1zijGLdC7NVfXi4qk0wfKvQjY3
	n9tM5CS+gUp+N+E8BqwwbFbgO1+c1LNXoGdfFdNHk4EONqRD+gaxPQPZyWVK4YxCN+m7AdyUEtq
	9r8yw8y3N9FvzShMe1wrwek8FUk/WOqyAvQp4bd00zIfbRkvFjAELjpmYJC/krxIBNBq33IxHiI
	cunaN8PvuzlGFzf4BIpItWz40WA==
X-Google-Smtp-Source: AGHT+IHKymcv4A74sU73KKaYeIxU+buoshK9YKlT3ig0JkuxBjKlf/o9pg79eaYaEhza3R21OC8SiA==
X-Received: by 2002:a05:600c:3d08:b0:43c:fe5e:f03b with SMTP id 5b1f17b1804b1-440ab36222bmr73002075e9.30.1745826222032;
        Mon, 28 Apr 2025 00:43:42 -0700 (PDT)
Message-ID: <3146fbf3-2ff1-48a4-b05b-37477a9a5cc5@suse.com>
Date: Mon, 28 Apr 2025 09:43:42 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 1/2] xen/page_alloc: address violation of Rule 14.3
To: victorm.lira@amd.com, Federico Serafini <federico.serafini@bugseng.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Nicola Vetrini <nicola.vetrini@bugseng.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>, xen-devel@lists.xenproject.org
References: <5f2e316aae4667d1fe851e68552eb881c4d5a015.1745625477.git.victorm.lira@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: <5f2e316aae4667d1fe851e68552eb881c4d5a015.1745625477.git.victorm.lira@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 26.04.2025 02:00, victorm.lira@amd.com wrote:
> From: Federico Serafini <federico.serafini@bugseng.com>
> 
> MISRA C Rule 14.3 states that "Controlling expressions shall not be
> invariant".
> 
> Add a SAF comment to deviate the rule for build configurations without
> CONFIG_LLC_COLORING enabled.

I was surprised by this supposedly being the only violation. And indeed it
wasn't very hard to find more. For example, we have a number of
"while ( num_online_cpus() > 1 && ... )", which become compile-time
constant (false) when NR_CPUS=1.

> --- a/xen/common/page_alloc.c
> +++ b/xen/common/page_alloc.c
> @@ -2038,6 +2038,7 @@ static struct page_info *alloc_color_heap_page(unsigned int memflags,
> 
>      spin_lock(&heap_lock);
> 
> +    /* SAF-14-safe MISRA C R14.3 condition always false without LLC_COLORING */
>      for ( i = 0; i < domain_num_llc_colors(d); i++ )
>      {
>          unsigned long free = free_colored_pages[domain_llc_color(d, i)];

Hmm, this way the deviation applies even when LLC_COLORING=y.

As to the comment wording - looks like we're pretty inconsistent with that
right now. I, for one, don't think the Misra rule needs (re)stating there;
the SAF index points at all the data that's needed if one cares about the
specifics of the deviation.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Apr 28 08:03:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 08:03:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.970231.1358969 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9JSx-00057X-Fj; Mon, 28 Apr 2025 08:03:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 970231.1358969; Mon, 28 Apr 2025 08: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 1u9JSx-00057Q-Be; Mon, 28 Apr 2025 08:03:51 +0000
Received: by outflank-mailman (input) for mailman id 970231;
 Mon, 28 Apr 2025 08:03:49 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=EzXt=XO=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u9JSv-00057K-Ri
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 08:03:49 +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 4e399f88-2407-11f0-9ffb-bf95429c2676;
 Mon, 28 Apr 2025 10:03:44 +0200 (CEST)
Received: by mail-wr1-x42d.google.com with SMTP id
 ffacd0b85a97d-3913b539aabso2425597f8f.2
 for <xen-devel@lists.xenproject.org>; Mon, 28 Apr 2025 01:03:44 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 ffacd0b85a97d-3a073cbede5sm10233127f8f.49.2025.04.28.01.03.43
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 28 Apr 2025 01:03:43 -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: 4e399f88-2407-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745827424; x=1746432224; 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=UB3Zl1XmZkw3Ra9H0Zj8H2ScPxIBTUw8yS+6fsbcQTA=;
        b=T/igFf1QCXp4qjXHduMZZi/5s3qyjg2W0jRVWfmqfnn6ot5PZhxaWBS0SO+kt/xTVc
         fcGjeAcE/bdSQ9yKQoQTA16wDUGCH3zQC+nrNLWViWLnAaIXmI4H0iqgpmkN08zBM1fj
         dKywLeMEyfBkWYS9fgmwiHMaJb2FrSxPdrTDs=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745827424; x=1746432224;
        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=UB3Zl1XmZkw3Ra9H0Zj8H2ScPxIBTUw8yS+6fsbcQTA=;
        b=ONBIIbKH0jOHLzrOEpkG9kHDxlG6Ex+zaFFKG8SukQeZcYJw//O9UTAVhMSL+vnPxg
         LQngxOamdUZRKaKGr7EGbSUTKpJatuQBB5AKQIYKdo/a0BIGvb3JaJ40Z+VpNw6YRYti
         6NqXwEAB+XNjrDvLMvEepE0pWMa2JYjQihokKJQo7eT8uiLYbFA1yLtE05kdBh4uMDrL
         qCY8b/OrcILQJUK6HHYj9kSP/vtz8wPJKIpenECJy9I0EBWGgR2ZYz7XqQbmQgrvZSni
         lkvGC7jye6hdMBeKEll3tw5yei2AgD+yWvSqnDamFzNf6+lDkLkBkGxOn9CV4/pXJo73
         IBCA==
X-Gm-Message-State: AOJu0YxOC3s+0tL1afD+/NyGHxEqlAHgcyc36t/RLu8gnq7H6cl1Xeki
	9HUnpGNvv01TzCkSyKJajjubcj7eRcouuGIb5skcmOt0ILE37PHSGxwh+o6YSsc=
X-Gm-Gg: ASbGnctEJ43nhFBIXdlCTBddsfYBrKXbHQPCzyxOAq+z2r8sgJynPJlwxLn8pKGVXJj
	ISNEN+hYVpIjEi6fyvbleklke4MLHJJhnScxKPwUM3C3Xzn19JE0O/DLTh+//BRAL80DjqjwUF3
	MoPRd1B3bZnRH/jGGE/aAXV2h4AM7/a+ySBT6DU9EEEJ537DtgZ9kziaiULnCya07+dmPwydbp4
	pXq3rc1zN9dDklqHO58g12nrmIYGWc1w1x0q1odeX4ri8z6wuhqvOTqmYF085qXX+HsZUh1InYZ
	RYt/erOqK3xiAysljN5+yv49mOLBrKpT90z/19mPk+pxhw==
X-Google-Smtp-Source: AGHT+IExPZa9Bzy0MJ4vEvre3eiUFj5dVFynCBzmtsnJ9E+66Gt8OzzSGnDlHGhuwy6gr5xR2S3rFw==
X-Received: by 2002:a05:6000:2483:b0:39c:13fd:ea9c with SMTP id ffacd0b85a97d-3a07ab85d86mr6081871f8f.47.1745827424026;
        Mon, 28 Apr 2025 01:03:44 -0700 (PDT)
Date: Mon, 28 Apr 2025 10:03:42 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Marek Marczykowski <marmarek@invisiblethingslab.com>
Subject: Re: [PATCH v2] x86: constrain sub-page access length in
 mmio_ro_emulated_write()
Message-ID: <aA8zT3m8Q4__2SmX@macbook.lan>
References: <8e31896e-3603-4969-af7c-3175ceacff55@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <8e31896e-3603-4969-af7c-3175ceacff55@suse.com>

On Fri, Apr 25, 2025 at 04:57:18PM +0200, Jan Beulich wrote:
> Without doing so we could trigger the ASSERT_UNREACHABLE() in
> subpage_mmio_write_emulate(). A comment there actually says this
> validation would already have been done ...
> 
> Fixes: 8847d6e23f97 ("x86/mm: add API for marking only part of a MMIO page read only")
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>

> ---
> v2: Emit a warning message otherwise.
> 
> --- a/xen/arch/x86/mm.c
> +++ b/xen/arch/x86/mm.c
> @@ -5195,8 +5195,13 @@ int cf_check mmio_ro_emulated_write(
>          return X86EMUL_UNHANDLEABLE;
>      }
>  
> -    subpage_mmio_write_emulate(mmio_ro_ctxt->mfn, PAGE_OFFSET(offset),
> -                               p_data, bytes);
> +    if ( bytes <= 8 )
> +        subpage_mmio_write_emulate(mmio_ro_ctxt->mfn, PAGE_OFFSET(offset),
> +                                   p_data, bytes);
> +    else if ( subpage_mmio_find_page(mmio_ro_ctxt->mfn) )
> +        gprintk(XENLOG_WARNING,
> +                "unsupported %u-byte write to R/O MMIO 0x%"PRI_mfn"%03lx\n",
> +                bytes, mfn_x(mmio_ro_ctxt->mfn), PAGE_OFFSET(offset));

It feels more natural to me to use:

"unsupported %u-byte write to r/o MMIO %#lx\n",
bytes, mfn_to_maddr(mmio_ro_ctxt->mfn) + PAGE_OFFSET(offset)

As it simplifies the printf format string, but that's just my taste.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Apr 28 08:09:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 08:09:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.970243.1358978 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9JYl-0005hY-0x; Mon, 28 Apr 2025 08:09:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 970243.1358978; Mon, 28 Apr 2025 08:09: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 1u9JYk-0005hR-UJ; Mon, 28 Apr 2025 08:09:50 +0000
Received: by outflank-mailman (input) for mailman id 970243;
 Mon, 28 Apr 2025 08:09: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=jkfC=XO=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1u9JYj-0005hL-8T
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 08:09:49 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1de3ac95-2408-11f0-9ffb-bf95429c2676;
 Mon, 28 Apr 2025 10:09:33 +0200 (CEST)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id 073DC4EE3BF6;
 Mon, 28 Apr 2025 10:09:32 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1de3ac95-2408-11f0-9ffb-bf95429c2676
Authentication-Results: bugseng.com; arc=none smtp.remote-ip=162.55.131.47
ARC-Seal: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; cv=none; t=1745827772;
	b=zIccB85bktTzSnPDowmOWN4MSfqDRx6HZLnohJgUMyCmeXEtKkSdZM2tZqNcB1bAQTR2
	 Ec3iEzQU1+QyczApt+A3zhKb/e2jPIRNVvDDAER9yqt8o20srMctpjc1SrvMEqDxookKj
	 sg1Htp1ViK8kQXbxv80KvoA2yJYepJME01fMuV8vgJup+zk3OYVBRgTuoJ8OtBQqLkxNt
	 2EPYIKvAsbLcxgjFjD6E9oFtmsYNxgaumER9tOB8Gjtz3bx/tn22b6b86oc2dy2MffBwy
	 FQci3F1GV3M89Cad4C86+a478WtD8wiRs2DlPyDIEIEGoRree9dHqcStmGBRNJEHY0Km9
	 y3GLGAVYc0SorMbmmPasnfnDXWBcZiUil2bExfz7XqQZtFi62aOI/inOf1Uffw+ob6ZEE
	 tVkFemJwWZiiCiMy05NaieK/2pCZg/7SXcZZ2rNQPnwPa8eqoS+WhbpupLRqnZh//lWAi
	 yZ+ZueaprsbeLd4EEOMgY66yWzZ2eUzVwhpPyGbV3HK/aqEMLgwEO69+K+45L/v+JoMXR
	 eRCan+nCmcE4In8Smv9ddZxUpQpd3ck1sVoAvhleCe2dOAmlFASODelQUsg9C1rJbiFIm
	 ORKSwcGHLJVlwrTGWVNFKPPOfH+2Ko0KQTeTlz8I0zvjgnY10YwMQp7Vq3l/Mlw=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1745827772;
	h=DKIM-Signature:MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:
	 References:Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=5b9rIaHsBEMgET7/OtbvnYHK9PMh8spD8IAyFhEOSeI=;
	b=SOUQ5boc2VEPNH/6N3rkshlaIJpyolmdin9hi8VPHlPin+VHkGbZnKedKcnbE2jRteuL
	 k725seoLbbeC7YOwqk0AbJX7dqwsRic5Z+Ew95HgH1GprWLCcehyvQ16Rqha9oIg24xd3
	 v6v9aoHOwevRBltEvnJufudmRrldlvIbMImAWoqa8/A+1woGtQ6j3+ffxvKIvA/8y5XtD
	 QCH1AKFkOtFKImU7l40m5kLzcQJo3CJucT3HPHMMlP1MujMWgOca+2XByuYfU8yM6uqj4
	 +kUGbkUrhkAfUu5HzR6swg3yGzhW6sqvDYAxYmy94vwP99It8YxDO3txV62l4qkWdgQWM
	 /xtdHYY9hZEEFs47bKt/7DC5xwCa9i0TbO9+otY7il4OABlfxj1VUoaEWg8t81U/UV70d
	 xbPXuseRKNcrcPXaiZy8sXOi5getrMWwrWW+ZmrO/y+9kOFUPHc0KQVLMAESS5rpscn2t
	 27mlrdmpP6/ExcrN7rf5fosU17Kj19AE9wZ3IKzgrqKOOIDoa4UY2a7H0y+4SpkDjBI7d
	 4k4sqlk0tFcVzZG8+UDaVqLamGxO+eVTTiOctF13D2s2pT1g1pgUmZhbOvz4RPLWT8BGD
	 MCSQdVD8DMKmmohnCEEmqVUUm4vSOZs2zVV0MJ9xjPnpd42kvqVqRWCCG+pSDV8=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1745827772; bh=JzMJRDXX9cYzQSnQeMmypGV+wWv+n9FTx72bbJYFzsY=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=qpx1qZaPdIWAICJAvNPjaiTbZKH/KQkKkynEMklIs3yZ+WnacSR3TZX1zST4rFgfy
	 1hHfSYKI1TQULJR5kDoTboXr2ytQQcXz3V/VJlmtC4L4+KIR1ibBhKt0Wjmzy02L5y
	 Go9S71SWTwHNLBVqJb2+IEPWO3iiEH8WTWaKm2nC1bg0fseBoRhGtYAtbMrFzS3/RH
	 WRniJLIe/tX5LwjrNDS4UrzzobkhUnLG+1ijf42QFO8QejxdkSI+Cnn710UMpd7E8o
	 oaztC7xa3xBP7nwgijwOJM4PMk4Oq1Rfz0u/keWvzmYUSBrf4tcC+qz1CIJAJ1AgGs
	 hMixYUVHowSRQ==
MIME-Version: 1.0
Date: Mon, 28 Apr 2025 10:09:31 +0200
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, victorm.lira@amd.com,
 Federico Serafini <federico.serafini@bugseng.com>, Andrew Cooper
 <andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Bertrand Marquis
 <bertrand.marquis@arm.com>, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v1] misra: add deviation for rules 21.1 and 21.2
In-Reply-To: <b7f7ab2b-baaa-416f-b390-5ed2229d34cb@suse.com>
References: <9e1210f2a9c794d68dcc6b897239b228b141296a.1745427770.git.victorm.lira@amd.com>
 <f5d35582-9270-4816-84c2-f078afeee711@suse.com>
 <alpine.DEB.2.22.394.2504241443550.785180@ubuntu-linux-20-04-desktop>
 <8d65ee65-ec6f-49a3-8954-d303b08dc2df@suse.com>
 <a9db045cff906a4b7db8730ad1095e4b@bugseng.com>
 <b7f7ab2b-baaa-416f-b390-5ed2229d34cb@suse.com>
Message-ID: <4d21245edbd4949a0aec6ecdadea437c@bugseng.com>
X-Sender: nicola.vetrini@bugseng.com
Organization: BUGSENG s.r.l.
Content-Type: text/plain; charset=US-ASCII;
 format=flowed
Content-Transfer-Encoding: 7bit

On 2025-04-28 08:15, Jan Beulich wrote:
> On 25.04.2025 17:53, Nicola Vetrini wrote:
>> On 2025-04-25 10:07, Jan Beulich wrote:
>>> On 24.04.2025 23:45, Stefano Stabellini wrote:
>>>> On Thu, 24 Apr 2025, Jan Beulich wrote:
>>>>> On 23.04.2025 19:54, victorm.lira@amd.com wrote:
>>>>>> From: Nicola Vetrini <nicola.vetrini@bugseng.com>
>>>>>> 
>>>>>> MISRA C Rules 21.1 ("#define and #undef shall not be used on a
>>>>>> reserved identifier or reserved macro name") and R21.2 ("A 
>>>>>> reserved
>>>>>> identifier or reserved macro name shall not be declared") 
>>>>>> violations
>>>>>> are not problematic for Xen, as it does not use the C or POSIX
>>>>>> libraries.
>>>>>> 
>>>>>> Xen uses -fno-builtin and -nostdinc to ensure this, but there are
>>>>>> still
>>>>>> __builtin_* functions from the compiler that are available so
>>>>>> a deviation is formulated for all identifiers not starting with
>>>>>> "__builtin_".
>>>>>> 
>>>>>> The missing text of a deviation for Rule 21.2 is added to
>>>>>> docs/misra/deviations.rst.
>>>>>> 
>>>>>> To avoid regressions, tag both rules as clean and add them to the
>>>>>> monitored set.
>>>>>> 
>>>>>> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
>>>>>> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
>>>>>> Signed-off-by: Victor Lira <victorm.lira@amd.com>
>>>>> 
>>>>> While the rule is in the library section, ...
>>>>> 
>>>>>> --- a/docs/misra/deviations.rst
>>>>>> +++ b/docs/misra/deviations.rst
>>>>>> @@ -587,7 +587,31 @@ Deviations related to MISRA C:2012 Rules:
>>>>>>         construct is deviated only in Translation Units that 
>>>>>> present
>>>>>> a violation
>>>>>>         of the Rule due to uses of this macro.
>>>>>>       - Tagged as `deliberate` for ECLAIR.
>>>>>> -
>>>>>> +
>>>>>> +   * - R21.1
>>>>>> +     - Rule 21.1 reports identifiers reserved for the C and POSIX
>>>>>> standard
>>>>>> +       libraries. Xen does not use such libraries and all
>>>>>> translation units
>>>>>> +       are compiled with option '-nostdinc', therefore there is 
>>>>>> no
>>>>>> reason to
>>>>>> +       avoid to use `#define` or `#undef` on such identifiers
>>>>>> except for those
>>>>>> +       beginning with `__builtin_` for which compilers may 
>>>>>> perform
>>>>>> (wrong)
>>>>>> +       optimizations.
>>>>>> +     - Tagged as `safe` for ECLAIR.
>>>>> 
>>>>> ... I'd like to ask that it be explicitly clarified here that it's
>>>>> solely
>>>>> the library (and not e.g. the compiler itself) that are of concern
>>>>> here.
>>>> 
>>>> The language can be clarified:
>>>> 
>>>> - Rule 21.1 reports identifiers reserved for the C and POSIX 
>>>> standard
>>>>   libraries. Xen does not use such libraries and all translation 
>>>> units
>>>>   are compiled with option '-nostdinc', therefore there is no reason
>>>> to
>>>>   avoid to use `#define` or `#undef` on C and POSIX standard 
>>>> libraries
>>>>   identifiers except for those beginning with `__builtin_` for which
>>>>   compilers may perform (wrong) optimizations.
>>> 
>>> Which makes it more apparent that there is a gap: What about e.g.
>>> __x86_64__?
>>> That falls within what the rules cover, is not a C or POSIX standard
>>> library
>>> identifier, yet very clearly must not be fiddled with. Whereas the 
>>> text
>>> above deviates it.
>> 
>> that is true, even if unlikely: one approach could be to avoid 
>> deviating
>> predefined macros for all CUs as -nostdinc and -fno-builtins should 
>> take
>> care of the rest; this kind of deviation is not currently possible in
>> ECLAIR, but it might be in the future.
> 
> Is this perhaps because by "all pre-defined macros" you really mean 
> _just_
> those, and not the entire reserved (for that purpose) sub-namespace? 
> Imo
> we should not go by what a particular compiler may pre-define (we may 
> even
> overlook something if we did it this way).
> 
> Jan
> 

I think there is a slight misalignment here: maybe I'm interpreting your 
answer incorrectly. Let me try to restate the proposal: the following 
identifiers are not allowed to be #define'd or #undef'd:
- __builtin_*
- for each CU, all macro identifiers already defined upon preprocessing 
that CU by the compiler invocation for that CU. This set of identifiers 
is always a subset of all the reserved identifiers, but is also 
dependent on the compiler invocation that is used for that CU, (e.g. 
__x86_64__ for an Arm target is usually safe to define, as it's 
typically not a predefined macro introduced by the compiler for that 
invocation, while (re)defining __STDC_VERSION__ or __SIZEOF_INT__ will 
be a violation in any command line I can think of). Note that this is 
not a static set, but is based on what is determined to be predefined at 
the moment of the analysis, so it is not tied to what a particular 
compiler pre-defines.

>> I think this could be
>> accomplished also via some gcc trickery on each CU, though I'm not 
>> sure
>> how valued that is for Xen.
>> 

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


From xen-devel-bounces@lists.xenproject.org Mon Apr 28 08:11:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 08:11:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.970255.1358989 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9JaM-0007Xf-Bf; Mon, 28 Apr 2025 08:11:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 970255.1358989; Mon, 28 Apr 2025 08: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 1u9JaM-0007XW-8V; Mon, 28 Apr 2025 08:11:30 +0000
Received: by outflank-mailman (input) for mailman id 970255;
 Mon, 28 Apr 2025 08:11: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=1BrO=XO=bounce.vates.tech=bounce-md_30504962.680f382c.v1-8a41384c7644416789cc34f9b3a21e16@srs-se1.protection.inumbo.net>)
 id 1u9JaK-0007XQ-OJ
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 08:11:28 +0000
Received: from mail145-2.atl61.mandrillapp.com
 (mail145-2.atl61.mandrillapp.com [198.2.145.2])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 61256139-2408-11f0-9ffb-bf95429c2676;
 Mon, 28 Apr 2025 10:11:26 +0200 (CEST)
Received: from pmta06.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail145-2.atl61.mandrillapp.com (Mailchimp) with ESMTP id 4ZmGP909FFzQXmFy1
 for <xen-devel@lists.xenproject.org>; Mon, 28 Apr 2025 08:11:25 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 8a41384c7644416789cc34f9b3a21e16; Mon, 28 Apr 2025 08:11:24 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 61256139-2408-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1745827885; x=1746097885;
	bh=oef+M6oeicjGCGIqvpLf2Lb8tStQTOGORkRg6Ies/Cw=;
	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=qyT49auSjYbgkeSLjvvDwyD7my5w2u5h0ZFDz5qDAUvufxDuTxeK0SdCVhGO2VVem
	 ufUINq3EsUmJaG4J9zI9tq38WWxA7KMQkvRYrV5spXgB0AHrfbABQeqra1pLdx/Vdq
	 /ldaJx5t/dx3M5wr/io+JZfoR049wqkwfR5kxkIDzVD5eNlFFSvi8poWAvjAeQ1rgc
	 /JAuIwFJ3agqzyvrl396dXg3meuuNxv/W5ZFo5vCrF2pdak7+oyBbjL8kIa4AWCysH
	 apast5asYYqF5YetVsA50iplkEGPuhQdmJC23GeobnbrXSvhWk3ygvMzb+Zu4hrAnH
	 0vC7sRkqNyQWQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1745827885; x=1746088385; i=teddy.astie@vates.tech;
	bh=oef+M6oeicjGCGIqvpLf2Lb8tStQTOGORkRg6Ies/Cw=;
	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=DTQ57+2CtXJyiUQUG19/3C5HTZW8VYEpwMI80vE7fgkkH459CAs6TsitHe8Sfh8ps
	 6N1jPqkT7MyRqrhUfXN1F1vb1uA0d+Qq8mHrZI/IZ3Y4sPlsEO3wmaC/2vbXTjGqfQ
	 7aaav78rdBiHy2AFklhuqBM0/jEy36+UXbVHvaUHzTnZHvNUQcGFibUbJ9AaY6tj/H
	 Ft2HH3+mBunG321bbO8ThRNIji5lhXbU09pi54d7EPkM1S+CPk+s6Vg+ek1a8PvhiE
	 rb4ycxLOWSmtRdDaN/KoQ6k/7DyHwGGwyZ6SOk/1QoX89GQqyfoj7bGi0gk7ZirYm1
	 BN2wloimJ6CtA==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH]=20xen/x86:=20allow=20Dom0=20PVH=20to=20call=20XENMEM=5Fexchange?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1745827881934
Message-Id: <f315a128-ce68-42be-9f0c-044ad0c5320c@vates.tech>
To: "Stefano Stabellini" <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
Cc: "Jan Beulich" <jbeulich@suse.com>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Ragiadakou, Xenia" <Xenia.Ragiadakou@amd.com>, jason.andryuk@amd.com, agarciav@amd.com
References: <alpine.DEB.2.22.394.2504251314050.785180@ubuntu-linux-20-04-desktop>
In-Reply-To: <alpine.DEB.2.22.394.2504251314050.785180@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.8a41384c7644416789cc34f9b3a21e16?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250428:md
Date: Mon, 28 Apr 2025 08:11:24 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Hello Stefano,

Le 25/04/2025 =C3=A0 22:21, Stefano Stabellini a =C3=A9crit=C2=A0:
> From: Xenia Ragiadakou <Xenia.Ragiadakou@amd.com>
> 
> Dom0 PVH might need XENMEM_exchange when passing contiguous memory
> addresses to firmware or co-processors not behind an IOMMU.
> 
> XENMEM_exchange was blocked for HVM/PVH DomUs, and accidentally it
> impacted Dom0 PVH as well.
> 
> Permit Dom0 PVH to call XENMEM_exchange while leaving it blocked for
> HVM/PVH DomUs.
> 

In addition to Jan's remarks, I think it wants some additional 
clarifications on the hypercall interface. public/memory.h indicates 
"only PV guests can use this operation", so the interface is actually 
unspecified about HVM guests (e.g what are MFN/GMFN in this case ?).

> Signed-off-by: Xenia Ragiadakou <Xenia.Ragiadakou@amd.com>
> Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
> 
> diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
> index 1cf2365167..e995944333 100644
> --- a/xen/arch/x86/mm.c
> +++ b/xen/arch/x86/mm.c
> @@ -4401,7 +4401,7 @@ int steal_page(
>       const struct domain *owner;
>       int rc;
>   
> -    if ( paging_mode_external(d) )
> +    if ( paging_mode_external(d) && !is_hardware_domain(d) )
>           return -EOPNOTSUPP;
>   
>       /* Grab a reference to make sure the page doesn't change under our =
feet */
> diff --git a/xen/common/memory.c b/xen/common/memory.c
> index 8ca4e1a842..796eec081b 100644
> --- a/xen/common/memory.c
> +++ b/xen/common/memory.c
> @@ -794,7 +794,7 @@ static long memory_exchange(XEN_GUEST_HANDLE_PARAM(xe=
n_memory_exchange_t) arg)
>               rc =3D guest_physmap_add_page(d, _gfn(gpfn), mfn,
>                                           exch.out.extent_order) ?: rc;
>   
> -            if ( !paging_mode_translate(d) &&
> +            if ( (!paging_mode_translate(d) || is_hardware_domain(d)) &&
>                    __copy_mfn_to_guest_offset(exch.out.extent_start,
>                                               (i << out_chunk_order) + j,
>                                               mfn) )
> 

Teddy


 | Vates

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Mon Apr 28 08:12:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 08:12:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.970265.1358999 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9Jb3-00082A-IL; Mon, 28 Apr 2025 08:12:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 970265.1358999; Mon, 28 Apr 2025 08: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 1u9Jb3-000823-Fd; Mon, 28 Apr 2025 08:12:13 +0000
Received: by outflank-mailman (input) for mailman id 970265;
 Mon, 28 Apr 2025 08: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=eVdf=XO=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1u9Jb1-0007XQ-7V
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 08:12:11 +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 7aca9d27-2408-11f0-9ffb-bf95429c2676;
 Mon, 28 Apr 2025 10:12:08 +0200 (CEST)
Received: by mail-ed1-x52d.google.com with SMTP id
 4fb4d7f45d1cf-5e5e8274a74so6997997a12.1
 for <xen-devel@lists.xenproject.org>; Mon, 28 Apr 2025 01:12:08 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-64-225.play-internet.pl.
 [109.243.64.225]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5f7014007f2sm5441666a12.32.2025.04.28.01.12.06
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 28 Apr 2025 01:12: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: 7aca9d27-2408-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1745827928; x=1746432728; darn=lists.xenproject.org;
        h=in-reply-to:content-language:references:cc:to:subject:from
         :user-agent:mime-version:date:message-id:from:to:cc:subject:date
         :message-id:reply-to;
        bh=5J6ibBKRANgVt4TzfvTSnuHqDdoSNGXNapQU9emDdJ0=;
        b=gyhHGh7T0uUW78znWOJcCmLmBEF+beHjOkHS7GrmPmsPXxF4adIs0shSARadhHaOnQ
         hk4dDiBwIvBawE7pnxRtWm/Pliv2emaNggT+iLaLk0aVMyeW+EofV2ZOvLwxy+vf5ikI
         6seK+zqxr+pEeGDHx3Xj+3SsK/Z8afD9wFGWTmEV8uD80nZm7qFwwi+ZLgJL9CdkMyfZ
         MEo35OlTrvtfu1Hjzj+JVmoEjuJiENrCvgtIkGiwTyiqyxsvWOQxpQe6+Ngb+d7qiNlg
         eCwY31rEqp+ez1fhS9sQ8Q3z4rCZ3XA1z1upNJggCaPOgq9L6Ef0VTlrHibB1Cqq/CRF
         J2Qg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745827928; x=1746432728;
        h=in-reply-to: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=5J6ibBKRANgVt4TzfvTSnuHqDdoSNGXNapQU9emDdJ0=;
        b=uhkHbikLmK6I/VcFpgrgRPMYQ7/dtCQm4gHqC2YtOSAiaOBfzCRNHoAooNZ6QHKQLK
         UsXc6VkxdPrn42Ku/xmdPepV9Jq77OZAnatyhRxcxRZ6j3bCzG9Gv6PtGJpoLE77p5yB
         Yp4Up0MeQbJQlhEs7HFoHKxVU2aspP9sDA9JGY/DSPu9QflZC85J8ynx88aKEfM4W3OF
         5+IxFpcnM5dXTVvn3xfuWq8M2nklzRq9SLpmhId6NoefY8NQqpOEi++2pkqyObtDaKp7
         3svC9t4vBiA2KtaZ21eRCpWFZsunJC+y5arKLwxPWnvkNyLgFkoo8faQZBgRHjtz0JR8
         K8mg==
X-Forwarded-Encrypted: i=1; AJvYcCVOM1xD364dQvx9fk4xhEQDIjYgboWhwiUJw71qgKFpN1P2+WPKtYbN79D0OIwSqCaTF5Reh2UVaTA=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx5DrATaa1Dum6WVJduDc0IdSZldpJNmY5mV+4vmIQBYjsXubQC
	XUqheWmc+CiO8ZSN4BtIRFX9OzE07sfrkcbaGKW1Dpk78aWtBTmO
X-Gm-Gg: ASbGncsY391XETsFGRQBNsj2w5c/3sR09lg+zbLJKBXrIcF593e/E9YFp/Mq6M28f3h
	g9yAlPGzz+KaR8/RnQ0fPBosm++5eQKT64eAsSPFIy7HPZRXGaS50FU8fOZqJfFKD6bqKTcXKS8
	AAtBhs7xTnJBiIvGNcRsPma/7VhR6QwY0Ox8LdM4xMfS13cg+/7zsnULPBx4BWMLkPzcnrXozBi
	HMJerS+dZtCNPWK54PJHawHfZ5QvZWSnBS3ZwSifPe60lR7zeew+ZxSoibhxBq9VZOmH1VrAJl7
	uU60FqzxxigeRvbjCS+J3QPdmOI4sFVgBtWHxTT5cUGOJQ2Q3MkmsKpOrlN3bDTNOIeYfACjDR+
	Kj/jF/53AXQTS5HgP
X-Google-Smtp-Source: AGHT+IHyq0wKtTrc0JMmzZ/TTDnCgC5YTAN52J6xj0Dqg4VqUmUWnii/yZGjz5xIMwXEW5/R9andgg==
X-Received: by 2002:a05:6402:3486:b0:5f5:7c7a:94df with SMTP id 4fb4d7f45d1cf-5f739594cc7mr5926222a12.1.1745827927736;
        Mon, 28 Apr 2025 01:12:07 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------yZT03Y0VkaFdViHPEYVhrO5A"
Message-ID: <231e9f4e-a044-49b7-b3a5-26ff2f7f9612@gmail.com>
Date: Mon, 28 Apr 2025 10:12:05 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Re: [PATCH v1 10/14] xen/riscv: implementation of aplic and imsic
 operations
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Romain Caritey <Romain.Caritey@microchip.com>, xen-devel@lists.xenproject.org
References: <cover.1744126720.git.oleksii.kurochko@gmail.com>
 <74a07ed7c596bbcf581010685e01bfdfa19164f5.1744126720.git.oleksii.kurochko@gmail.com>
 <35075d73-ec3c-4e8f-b7ed-657b604904bd@suse.com>
 <9bee5d4e-cad1-4fc1-8b4c-b4a4bab4b76c@gmail.com>
 <c0bcc9e7-26a6-4a67-8f18-787364b530e4@suse.com>
Content-Language: en-US
In-Reply-To: <c0bcc9e7-26a6-4a67-8f18-787364b530e4@suse.com>

This is a multi-part message in MIME format.
--------------yZT03Y0VkaFdViHPEYVhrO5A
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 4/17/25 8:25 AM, Jan Beulich wrote:
> On 16.04.2025 21:05, Oleksii Kurochko wrote:
>> On 4/15/25 2:46 PM, Jan Beulich wrote:
>>> On 08.04.2025 17:57, Oleksii Kurochko wrote:
>>>> Introduce interrupt controller descriptor for host APLIC to describe
>>>> the low-lovel hardare. It includes implementation of the following functions:
>>>>    - aplic_irq_startup()
>>>>    - aplic_irq_shutdown()
>>>>    - aplic_irq_enable()
>>>>    - aplic_irq_disable()
>>>>    - aplic_irq_ack()
>>>>    - aplic_host_irq_end()
>>>>    - aplic_set_irq_affinity()
>>>>
>>>> As APLIC is used in MSI mode it requires to enable/disable interrupts not
>>>> only for APLIC but also for IMSIC. Thereby for the purpose of
>>>> aplic_irq_{enable,disable}() it is introduced imsic_irq_{enable,disable)().
>>>>
>>>> For the purpose of aplic_set_irq_affinity() aplic_get_cpu_from_mask() is
>>>> introduced to get hart id.
>>>>
>>>> Also, introduce additional interrupt controller h/w operations and
>>>> host_irq_type for APLIC:
>>>>    - aplic_host_irq_type
>>>>    - aplic_set_irq_priority()
>>>>    - aplic_set_irq_type()
>>> Yet these two functions nor the hooks they're used to populate are entirely
>>> unused here. Since they're also outside of the common IRQ handling machinery,
>>> it's unclear how one would sanely ack such a change.
>> They will be called by intc_route_irq_to_xen() from setup_irq() during firt time
>> the IRQ is setup.
> Perhaps move their introduction to there then? We don't do any Misra checking
> yet lon RISC-V, but imo it's still good practice to avoid introducing new
> violations, even if only temporarily.

Okay, I will move their introduction to there.

Btw, what is needed to add Misra checking for RISC-V? I started to think that, probably,
it will make sense to do that from the start.

>>>> --- a/xen/arch/riscv/aplic.c
>>>> +++ b/xen/arch/riscv/aplic.c
>>>> @@ -15,6 +15,7 @@
>>>>    #include <xen/irq.h>
>>>>    #include <xen/mm.h>
>>>>    #include <xen/sections.h>
>>>> +#include <xen/spinlock.h>
>>>>    #include <xen/types.h>
>>>>    #include <xen/vmap.h>
>>>>    
>>>> @@ -110,9 +111,173 @@ static int __init aplic_init(void)
>>>>        return 0;
>>>>    }
>>>>    
>>>> -static const struct intc_hw_operations __ro_after_init aplic_ops = {
>>>> +static void aplic_set_irq_type(struct irq_desc *desc, unsigned int type)
>>>> +{
>>>> +    unsigned int irq = desc->irq - 1;
>>> Why this adjustment by 1 (and yet both items being named "irq")?
>> Interrupt 0 isn't possible based on the spec:
>> ```
>> Each of an APLIC’s interrupt sources has a fixed unique identity number
>> in the range 1 to N, where N is the total number of sources at the
>> APLIC. The number zero is not a valid interrupt identity number at an
>> APLIC. The maximum number of interrupt sources an APLIC may support is
>> 1023. ``` and interrupt 1 will correspond to bit 0 in sourcecfg[] register, interrupt
>> 2 ->sourcecfg[1] and so on. And that is the reason why we need -1.
> Okay, fine. But what about the part of the question in parentheses?

Sorry, missed to write that I'll change irq to irq_bit or something like that.

>>>> +            aplic.regs->sourcecfg[irq] = APLIC_SOURCECFG_SM_EDGE_FALL;
>>>> +            break;
>>>> +        case IRQ_TYPE_LEVEL_HIGH:
>>>> +            aplic.regs->sourcecfg[irq] = APLIC_SOURCECFG_SM_LEVEL_HIGH;
>>>> +            break;
>>>> +        case IRQ_TYPE_LEVEL_LOW:
>>>> +            aplic.regs->sourcecfg[irq] = APLIC_SOURCECFG_SM_LEVEL_LOW;
>>>> +            break;
>>>> +        default:
>>>> +            aplic.regs->sourcecfg[irq] = APLIC_SOURCECFG_SM_INACTIVE;
>>>> +            break;
>>> Is the default: label legitimate to be reached?
>>   From the spec:
>> ```
>> 0 Inactive Inactive in this domain (and not delegated) 1 Detached
>> Active, detached from the source wire 2–3 — Reserved 4 Edge1 Active,
>> edge-sensitive; interrupt asserted on rising edge 5 Edge0 Active,
>> edge-sensitive; interrupt asserted on falling edge 6 Level1 Active,
>> level-sensitive; interrupt asserted when high 7 Level0 Active,
>> level-sensitive; interrupt asserted when low ``` It seems to me like
>> APLIC_SOURCECFG_SM_INACTIVE just covers cases (0-3) and inactive IRQ
>> pretty safe to as a default value.
> I fear this doesn't answer my question, which is to a large part related
> to the Xen code, and only to some degree to the spec.

 From Xen code point of view, I am not sure if it legitimate or not. I've not any
issue, at the moment, with such implementation, but to be on a safe side I'll
implement default case as panic("...").

>>>> +static void aplic_set_irq_priority(struct irq_desc *desc,
>>>> +                                   unsigned int priority)
>>>> +{
>>>> +    /* No priority, do nothing */
>>>> +}
>>> Since the function dopes nothing, wouldn't it be better to omit it and have
>>> the (future) caller check for a NULL pointer ahead of making the (indirect)
>>> call? Same remark for other handlers (below) which also do nothing.
>> I thought about that too, but it could be some cases when the stub is introduced
>> with temporary BUG_ON("unimplemented") inside just to not miss to implement it
>> when it will be necessary.
>> If we will have only the caller check then we could miss to implement such stubs.
> I guess I don't understand the concern.

for example, if we will have the following code:
   void some_caller(struct irq_desc *desc)
   {
       if ( desc->handler->set_affinity )
           desc->handler->set_affinity(desc, cpu_mask);
   }

Then we will skip the call of handler->set_affinity() (if it was just initialized with
.set_affinity = NULL) without any notification. And it is fine specifically in this
case as aplic_set_irq_priority() does nothing.

But what about the cases if it is a function which will have some implementation in the
future but doesn't have implementation for now. Then without notification that this
function is unimplemented we could skip something what really matters.

But I think that your initial comment was just about the function which basically
does nothing. Am i right?

>>>> +static void aplic_irq_enable(struct irq_desc *desc)
>>>> +{
>>>> +    unsigned long flags;
>>>> +
>>>> +    /*
>>>> +     * TODO: Currently, APLIC is supported only with MSI interrupts.
>>>> +     *       If APLIC without MSI interrupts is required in the future,
>>>> +     *       this function will need to be updated accordingly.
>>>> +     */
>>>> +    ASSERT(aplic.imsic_cfg->is_used);
>>> Such an extra field, used only for assertions, is pretty odd. Can't you
>>> use any of the other fields to achieve the same effect?
>> in aplic_init() there is:
>>       /* check for associated imsic node */
>>       rc = dt_property_read_u32(node, "msi-parent", &imsic_phandle);
>>       if ( !rc )
>>           panic("%s: IDC mode not supported\n", node->full_name);
>>
>> So we will have panic() anyway if MSI mode isn't supported. As an option we
>> can just drop the ASSERT.
> Since they serve primarily as a reminder where changes would need making,
> I'd prefer if they could be kept.
>
>> Or introduce static variable in aplic.c `aplic_mode`, init it in aplic_init()
>> and use it in ASSERT().
> This would then again be used solely for assertions, aiui? As said, I
> think it would be preferable if some already existing indicator could be
> used for this purpose.

I think that not solely, for example, if IMSIC isn't available then we should skip
the calls of imsic_irq_enable(), at least, and this variable could be used for that
purpose.

But I will double check if we have better indicator. At the moment, I don't think
we have better, probably, except checking of aplic.regs->domaincfg if bit APLIC_DOMAINCFG_DM
is set.

>>>> +    ASSERT(spin_is_locked(&desc->lock));
>>> If this lock (which is an IRQ-safe one) is necessarily held, ...
>>>
>>>> +    spin_lock_irqsave(&aplic.lock, flags);
>>> ... you can use just spin_lock() here.
>>>
>>>> +    clear_bit(_IRQ_DISABLED, &desc->status);
>>> Why an atomic bitop when desc is locked? (And yes, I ought to raise the same
>>> question on Arm code also doing so.)
>> I haven't thought about that. Likely non-atomic bitop could be used here.
> And then - does it need to be a bitop? Aiui that's what Arm uses, while x86
> doesn't. And I see no reason to use other than plain C operators here. If
> Arm was switched, presumably all the redundant (and misnamed) _IRQ_*
> constants could go away, with just the IRQ_* ones left.

The reason for a bitop in Arm is explained in this commithttps://gitlab.com/xen-project/xen/-/commit/50d8fe8fcbab2440cfeeb65c4765868398652473
but all the places where plain C operators were changed to bitops are actually executed under|spin_lock_irqsave(&desc->lock, flags). By quick look I found only two 
places one in __setup_irq() but it is called by the functions which do ||spin_lock_irqsave(&desc->lock, flags) and in vgic_v2_fold_lr_state(). 
Maybe, I'm missing something.|
|RISC-V won't have something similar to ||vgic_v2_fold_lr_state|(), but __setup_irq() is used in a similar way. It can be added ASSERT(spin_is_lock(&desc->lock))
and then it will also safe to use non-bitop function.
Probably, it is a little bit safer to use always bitops for desc->status.
||

>>> I'm uncertain about this bit setting anyway - on x86 we would only fiddle
>>> with it for IRQs not in use, not while enabling/disabling one.
> What about this part?

As I understand, based on Arm, code then Xen enables interrupts corresponding to devices assigned
to dom0/domU before booting dom0/domU, resulting in the possibility of receiving an interrupt
and not knowing what to do with it. So it is needed for enablement of IRQs when the guest
requests it and not unconditionally at boot time.

>>>> +    spin_unlock_irqrestore(&aplic.lock, flags);
>>>> +}
>>>> +
>>>> +static void aplic_irq_disable(struct irq_desc *desc)
>>>> +{
>>>> +    unsigned long flags;
>>>> +
>>>> +    /*
>>>> +     * TODO: Currently, APLIC is supported only with MSI interrupts.
>>>> +     *       If APLIC without MSI interrupts is required in the future,
>>>> +     *       this function will need to be updated accordingly.
>>>> +     */
>>>> +    ASSERT(aplic.imsic_cfg->is_used);
>>>> +
>>>> +    ASSERT(spin_is_locked(&desc->lock));
>>>> +
>>>> +    spin_lock_irqsave(&aplic.lock, flags);
>>>> +
>>>> +    set_bit(_IRQ_DISABLED, &desc->status);
>>>> +
>>>> +    /* disable interrupt in APLIC */
>>>> +    aplic.regs->clrienum = desc->irq;
>>>> +
>>>> +    /* disable interrupt in IMSIC */
>>>> +    imsic_irq_disable(desc->irq);
>>>> +
>>>> +    spin_unlock_irqrestore(&aplic.lock, flags);
>>>> +}
>>>> +
>>>> +static unsigned int aplic_irq_startup(struct irq_desc *desc)
>>>> +{
>>>> +    aplic_irq_enable(desc);
>>>> +
>>>> +    return 0;
>>>> +}
>>>> +
>>>> +static void aplic_irq_shutdown(struct irq_desc *desc)
>>>> +{
>>>> +    aplic_irq_disable(desc);
>>>> +}
>>> You don't really need a separate hook function here, do you?
>> With such implementation it is really not needed to have a hook so
>> I will drop it.
>>
>>>> +static void aplic_irq_ack(struct irq_desc *desc)
>>>> +{
>>>> +    /* nothing to do */
>>>> +}
>>>> +
>>>> +static void aplic_host_irq_end(struct irq_desc *desc)
>>> What's the "host" in the identifier about?
>> It was copied that from Arm and my understanding that it means
>> Xen-related IRQ as they also have:
>> ```
>> /* XXX different for level vs edge */
>> static hw_irq_controller gicv2_host_irq_type = {
>> ...
>>       .end          = gicv2_host_irq_end,
>> ...
>> };
>>
>> static hw_irq_controller gicv2_guest_irq_type = {
>> ...
>>       .end          = gicv2_guest_irq_end,
>> ...
>> };
>> ```
> And you expect to end up with a similar distinction on RISC-V? There's
> nothing like that on x86, just to mention it.

Yes, if one day support for guest interrupts without IMSIC support will be added for APLIC.
(at the moment, we are planning only to have APLIC+IMSIC support as this way is hypervisor-aware)

>>>> +static void aplic_set_irq_affinity(struct irq_desc *desc, const cpumask_t *mask)
>>>> +{
>>>> +    unsigned int cpu;
>>>> +    uint64_t group_index, base_ppn;
>>>> +    uint32_t hhxw, lhxw ,hhxs, value;
>>>> +    const struct imsic_config *imsic = aplic.imsic_cfg;
>>>> +
>>>> +    /*
>>>> +     * TODO: Currently, APLIC is supported only with MSI interrupts.
>>>> +     *       If APLIC without MSI interrupts is required in the future,
>>>> +     *       this function will need to be updated accordingly.
>>>> +     */
>>>> +    ASSERT(aplic.imsic_cfg->is_used);
>>> Use the local variable you have made yourself?
>> What do you mean by local here?
> Just a few lines up you latch aplic.imsic_cfg into the local "imsic".

Oh, sure, if *->is_used will still present in the next patch series then I'll re-use here "imsic".

~ Oleksii

--------------yZT03Y0VkaFdViHPEYVhrO5A
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 4/17/25 8:25 AM, Jan Beulich wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:c0bcc9e7-26a6-4a67-8f18-787364b530e4@suse.com">
      <pre wrap="" class="moz-quote-pre">On 16.04.2025 21:05, Oleksii Kurochko wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">On 4/15/25 2:46 PM, Jan Beulich wrote:
</pre>
        <blockquote type="cite">
          <pre wrap="" class="moz-quote-pre">On 08.04.2025 17:57, Oleksii Kurochko wrote:
</pre>
          <blockquote type="cite">
            <pre wrap="" class="moz-quote-pre">Introduce interrupt controller descriptor for host APLIC to describe
the low-lovel hardare. It includes implementation of the following functions:
  - aplic_irq_startup()
  - aplic_irq_shutdown()
  - aplic_irq_enable()
  - aplic_irq_disable()
  - aplic_irq_ack()
  - aplic_host_irq_end()
  - aplic_set_irq_affinity()

As APLIC is used in MSI mode it requires to enable/disable interrupts not
only for APLIC but also for IMSIC. Thereby for the purpose of
aplic_irq_{enable,disable}() it is introduced imsic_irq_{enable,disable)().

For the purpose of aplic_set_irq_affinity() aplic_get_cpu_from_mask() is
introduced to get hart id.

Also, introduce additional interrupt controller h/w operations and
host_irq_type for APLIC:
  - aplic_host_irq_type
  - aplic_set_irq_priority()
  - aplic_set_irq_type()
</pre>
          </blockquote>
          <pre wrap="" class="moz-quote-pre">Yet these two functions nor the hooks they're used to populate are entirely
unused here. Since they're also outside of the common IRQ handling machinery,
it's unclear how one would sanely ack such a change.
</pre>
        </blockquote>
        <pre wrap="" class="moz-quote-pre">They will be called by intc_route_irq_to_xen() from setup_irq() during firt time
the IRQ is setup.
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">Perhaps move their introduction to there then? We don't do any Misra checking
yet lon RISC-V, but imo it's still good practice to avoid introducing new
violations, even if only temporarily.</pre>
    </blockquote>
    <pre>Okay, I will move their introduction to there.

Btw, what is needed to add Misra checking for RISC-V? I started to think that, probably,
it will make sense to do that from the start.

</pre>
    <blockquote type="cite"
      cite="mid:c0bcc9e7-26a6-4a67-8f18-787364b530e4@suse.com">
      <blockquote type="cite">
        <blockquote type="cite">
          <blockquote type="cite">
            <pre wrap="" class="moz-quote-pre">--- a/xen/arch/riscv/aplic.c
+++ b/xen/arch/riscv/aplic.c
@@ -15,6 +15,7 @@
  #include &lt;xen/irq.h&gt;
  #include &lt;xen/mm.h&gt;
  #include &lt;xen/sections.h&gt;
+#include &lt;xen/spinlock.h&gt;
  #include &lt;xen/types.h&gt;
  #include &lt;xen/vmap.h&gt;
  
@@ -110,9 +111,173 @@ static int __init aplic_init(void)
      return 0;
  }
  
-static const struct intc_hw_operations __ro_after_init aplic_ops = {
+static void aplic_set_irq_type(struct irq_desc *desc, unsigned int type)
+{
+    unsigned int irq = desc-&gt;irq - 1;
</pre>
          </blockquote>
          <pre wrap="" class="moz-quote-pre">Why this adjustment by 1 (and yet both items being named "irq")?
</pre>
        </blockquote>
        <pre wrap="" class="moz-quote-pre">Interrupt 0 isn't possible based on the spec:
```
Each of an APLIC’s interrupt sources has a fixed unique identity number 
in the range 1 to N, where N is the total number of sources at the 
APLIC. The number zero is not a valid interrupt identity number at an 
APLIC. The maximum number of interrupt sources an APLIC may support is 
1023. ``` and interrupt 1 will correspond to bit 0 in sourcecfg[] register, interrupt 
2 -&gt;sourcecfg[1] and so on. And that is the reason why we need -1.
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">Okay, fine. But what about the part of the question in parentheses?</pre>
    </blockquote>
    <pre>Sorry, missed to write that I'll change irq to irq_bit or something like that.

</pre>
    <blockquote type="cite"
      cite="mid:c0bcc9e7-26a6-4a67-8f18-787364b530e4@suse.com">
      <blockquote type="cite">
        <blockquote type="cite">
          <blockquote type="cite">
            <pre wrap="" class="moz-quote-pre">+            aplic.regs-&gt;sourcecfg[irq] = APLIC_SOURCECFG_SM_EDGE_FALL;
+            break;
+        case IRQ_TYPE_LEVEL_HIGH:
+            aplic.regs-&gt;sourcecfg[irq] = APLIC_SOURCECFG_SM_LEVEL_HIGH;
+            break;
+        case IRQ_TYPE_LEVEL_LOW:
+            aplic.regs-&gt;sourcecfg[irq] = APLIC_SOURCECFG_SM_LEVEL_LOW;
+            break;
+        default:
+            aplic.regs-&gt;sourcecfg[irq] = APLIC_SOURCECFG_SM_INACTIVE;
+            break;
</pre>
          </blockquote>
          <pre wrap="" class="moz-quote-pre">Is the default: label legitimate to be reached?
</pre>
        </blockquote>
        <pre wrap="" class="moz-quote-pre"> From the spec:
```
0 Inactive Inactive in this domain (and not delegated) 1 Detached 
Active, detached from the source wire 2–3 — Reserved 4 Edge1 Active, 
edge-sensitive; interrupt asserted on rising edge 5 Edge0 Active, 
edge-sensitive; interrupt asserted on falling edge 6 Level1 Active, 
level-sensitive; interrupt asserted when high 7 Level0 Active, 
level-sensitive; interrupt asserted when low ``` It seems to me like 
APLIC_SOURCECFG_SM_INACTIVE just covers cases (0-3) and inactive IRQ 
pretty safe to as a default value.
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">I fear this doesn't answer my question, which is to a large part related
to the Xen code, and only to some degree to the spec.</pre>
    </blockquote>
    <pre>From Xen code point of view, I am not sure if it legitimate or not. I've not any
issue, at the moment, with such implementation, but to be on a safe side I'll
implement default case as panic("...").
</pre>
    <blockquote type="cite"
      cite="mid:c0bcc9e7-26a6-4a67-8f18-787364b530e4@suse.com">
      <blockquote type="cite">
        <blockquote type="cite">
          <blockquote type="cite">
            <pre wrap="" class="moz-quote-pre">+static void aplic_set_irq_priority(struct irq_desc *desc,
+                                   unsigned int priority)
+{
+    /* No priority, do nothing */
+}
</pre>
          </blockquote>
          <pre wrap="" class="moz-quote-pre">Since the function dopes nothing, wouldn't it be better to omit it and have
the (future) caller check for a NULL pointer ahead of making the (indirect)
call? Same remark for other handlers (below) which also do nothing.
</pre>
        </blockquote>
        <pre wrap="" class="moz-quote-pre">I thought about that too, but it could be some cases when the stub is introduced
with temporary BUG_ON("unimplemented") inside just to not miss to implement it
when it will be necessary.
If we will have only the caller check then we could miss to implement such stubs.
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">I guess I don't understand the concern.</pre>
    </blockquote>
    <pre>for example, if we will have the following code:
  void some_caller(struct irq_desc *desc)
  {
      if ( desc-&gt;handler-&gt;set_affinity )
          desc-&gt;handler-&gt;set_affinity(desc, cpu_mask);
  }

Then we will skip the call of handler-&gt;set_affinity() (if it was just initialized with
.set_affinity = NULL) without any notification. And it is fine specifically in this
case as aplic_set_irq_priority() does nothing.

But what about the cases if it is a function which will have some implementation in the
future but doesn't have implementation for now. Then without notification that this
function is unimplemented we could skip something what really matters.

But I think that your initial comment was just about the function which basically
does nothing. Am i right?</pre>
    <blockquote type="cite"
      cite="mid:c0bcc9e7-26a6-4a67-8f18-787364b530e4@suse.com">
      <blockquote type="cite">
        <blockquote type="cite">
          <blockquote type="cite">
            <pre wrap="" class="moz-quote-pre">+static void aplic_irq_enable(struct irq_desc *desc)
+{
+    unsigned long flags;
+
+    /*
+     * TODO: Currently, APLIC is supported only with MSI interrupts.
+     *       If APLIC without MSI interrupts is required in the future,
+     *       this function will need to be updated accordingly.
+     */
+    ASSERT(aplic.imsic_cfg-&gt;is_used);
</pre>
          </blockquote>
          <pre wrap="" class="moz-quote-pre">Such an extra field, used only for assertions, is pretty odd. Can't you
use any of the other fields to achieve the same effect?
</pre>
        </blockquote>
        <pre wrap="" class="moz-quote-pre">in aplic_init() there is:
     /* check for associated imsic node */
     rc = dt_property_read_u32(node, "msi-parent", &amp;imsic_phandle);
     if ( !rc )
         panic("%s: IDC mode not supported\n", node-&gt;full_name);

So we will have panic() anyway if MSI mode isn't supported. As an option we
can just drop the ASSERT.
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">Since they serve primarily as a reminder where changes would need making,
I'd prefer if they could be kept.

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">Or introduce static variable in aplic.c `aplic_mode`, init it in aplic_init()
and use it in ASSERT().
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">This would then again be used solely for assertions, aiui? As said, I
think it would be preferable if some already existing indicator could be
used for this purpose.</pre>
    </blockquote>
    <pre>I think that not solely, for example, if IMSIC isn't available then we should skip
the calls of imsic_irq_enable(), at least, and this variable could be used for that
purpose.

But I will double check if we have better indicator. At the moment, I don't think
we have better, probably, except checking of aplic.regs-&gt;domaincfg if bit APLIC_DOMAINCFG_DM
is set.

</pre>
    <blockquote type="cite"
      cite="mid:c0bcc9e7-26a6-4a67-8f18-787364b530e4@suse.com">
      <blockquote type="cite">
        <blockquote type="cite">
          <blockquote type="cite">
            <pre wrap="" class="moz-quote-pre">+    ASSERT(spin_is_locked(&amp;desc-&gt;lock));
</pre>
          </blockquote>
          <pre wrap="" class="moz-quote-pre">If this lock (which is an IRQ-safe one) is necessarily held, ...

</pre>
          <blockquote type="cite">
            <pre wrap="" class="moz-quote-pre">+    spin_lock_irqsave(&amp;aplic.lock, flags);
</pre>
          </blockquote>
          <pre wrap="" class="moz-quote-pre">... you can use just spin_lock() here.

</pre>
          <blockquote type="cite">
            <pre wrap="" class="moz-quote-pre">+    clear_bit(_IRQ_DISABLED, &amp;desc-&gt;status);
</pre>
          </blockquote>
          <pre wrap="" class="moz-quote-pre">Why an atomic bitop when desc is locked? (And yes, I ought to raise the same
question on Arm code also doing so.)
</pre>
        </blockquote>
        <pre wrap="" class="moz-quote-pre">I haven't thought about that. Likely non-atomic bitop could be used here.
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">And then - does it need to be a bitop? Aiui that's what Arm uses, while x86
doesn't. And I see no reason to use other than plain C operators here. If
Arm was switched, presumably all the redundant (and misnamed) _IRQ_*
constants could go away, with just the IRQ_* ones left.</pre>
    </blockquote>
    <pre>The reason for a bitop in Arm is explained in this commit <a
    class="moz-txt-link-freetext"
href="https://gitlab.com/xen-project/xen/-/commit/50d8fe8fcbab2440cfeeb65c4765868398652473">https://gitlab.com/xen-project/xen/-/commit/50d8fe8fcbab2440cfeeb65c4765868398652473</a>
but all the places where plain C operators were changed to bitops are actually executed under <code><span
    class="n">spin_lock_irqsave</span><span class="p">(</span><span
    class="o">&amp;</span><span class="n">desc</span><span class="o">-&gt;</span><span
    class="n">lock</span><span class="p">,</span> <span class="n">flags</span><span
    class="p">).
By quick look I found only two places one in __setup_irq() but it is called by the functions which do </span></code><code><span
    class="n">spin_lock_irqsave</span><span class="p">(</span><span
    class="o">&amp;</span><span class="n">desc</span><span class="o">-&gt;</span><span
    class="n">lock</span><span class="p">,</span> <span class="n">flags</span><span
    class="p">)
and in vgic_v2_fold_lr_state(). Maybe, I'm missing something.</span></code>
<code><span class="p">
RISC-V won't have something similar to </span></code><code><span
    class="p">vgic_v2_fold_lr_state</span></code>(), but __setup_irq() is used in a similar way. It can be added ASSERT(spin_is_lock(&amp;desc-&gt;lock))
and then it will also safe to use non-bitop function.
Probably, it is a little bit safer to use always bitops for desc-&gt;status.
<code><span class="p">
</span></code>
</pre>
    <blockquote type="cite"
      cite="mid:c0bcc9e7-26a6-4a67-8f18-787364b530e4@suse.com">
      <blockquote type="cite">
        <blockquote type="cite">
          <pre wrap="" class="moz-quote-pre">I'm uncertain about this bit setting anyway - on x86 we would only fiddle
with it for IRQs not in use, not while enabling/disabling one.
</pre>
        </blockquote>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">What about this part?</pre>
    </blockquote>
    <pre>As I understand, based on Arm, code then Xen enables interrupts corresponding to devices assigned
to dom0/domU before booting dom0/domU, resulting in the possibility of receiving an interrupt
and not knowing what to do with it. So it is needed for enablement of IRQs when the guest
requests it and not unconditionally at boot time.

</pre>
    <blockquote type="cite"
      cite="mid:c0bcc9e7-26a6-4a67-8f18-787364b530e4@suse.com">
      <blockquote type="cite">
        <blockquote type="cite">
          <blockquote type="cite">
            <pre wrap="" class="moz-quote-pre">+    spin_unlock_irqrestore(&amp;aplic.lock, flags);
+}
+
+static void aplic_irq_disable(struct irq_desc *desc)
+{
+    unsigned long flags;
+
+    /*
+     * TODO: Currently, APLIC is supported only with MSI interrupts.
+     *       If APLIC without MSI interrupts is required in the future,
+     *       this function will need to be updated accordingly.
+     */
+    ASSERT(aplic.imsic_cfg-&gt;is_used);
+
+    ASSERT(spin_is_locked(&amp;desc-&gt;lock));
+
+    spin_lock_irqsave(&amp;aplic.lock, flags);
+
+    set_bit(_IRQ_DISABLED, &amp;desc-&gt;status);
+
+    /* disable interrupt in APLIC */
+    aplic.regs-&gt;clrienum = desc-&gt;irq;
+
+    /* disable interrupt in IMSIC */
+    imsic_irq_disable(desc-&gt;irq);
+
+    spin_unlock_irqrestore(&amp;aplic.lock, flags);
+}
+
+static unsigned int aplic_irq_startup(struct irq_desc *desc)
+{
+    aplic_irq_enable(desc);
+
+    return 0;
+}
+
+static void aplic_irq_shutdown(struct irq_desc *desc)
+{
+    aplic_irq_disable(desc);
+}
</pre>
          </blockquote>
          <pre wrap="" class="moz-quote-pre">You don't really need a separate hook function here, do you?
</pre>
        </blockquote>
        <pre wrap="" class="moz-quote-pre">With such implementation it is really not needed to have a hook so
I will drop it.

</pre>
        <blockquote type="cite">
          <blockquote type="cite">
            <pre wrap="" class="moz-quote-pre">+static void aplic_irq_ack(struct irq_desc *desc)
+{
+    /* nothing to do */
+}
+
+static void aplic_host_irq_end(struct irq_desc *desc)
</pre>
          </blockquote>
          <pre wrap="" class="moz-quote-pre">What's the "host" in the identifier about?
</pre>
        </blockquote>
        <pre wrap="" class="moz-quote-pre">It was copied that from Arm and my understanding that it means
Xen-related IRQ as they also have:
```
/* XXX different for level vs edge */
static hw_irq_controller gicv2_host_irq_type = {
...
     .end          = gicv2_host_irq_end,
...
};

static hw_irq_controller gicv2_guest_irq_type = {
...
     .end          = gicv2_guest_irq_end,
...
};
```
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">And you expect to end up with a similar distinction on RISC-V? There's
nothing like that on x86, just to mention it.</pre>
    </blockquote>
    <pre>Yes, if one day support for guest interrupts without IMSIC support will be added for APLIC.
(at the moment, we are planning only to have APLIC+IMSIC support as this way is hypervisor-aware)

</pre>
    <blockquote type="cite"
      cite="mid:c0bcc9e7-26a6-4a67-8f18-787364b530e4@suse.com">
      <blockquote type="cite">
        <blockquote type="cite">
          <blockquote type="cite">
            <pre wrap="" class="moz-quote-pre">+static void aplic_set_irq_affinity(struct irq_desc *desc, const cpumask_t *mask)
+{
+    unsigned int cpu;
+    uint64_t group_index, base_ppn;
+    uint32_t hhxw, lhxw ,hhxs, value;
+    const struct imsic_config *imsic = aplic.imsic_cfg;
+
+    /*
+     * TODO: Currently, APLIC is supported only with MSI interrupts.
+     *       If APLIC without MSI interrupts is required in the future,
+     *       this function will need to be updated accordingly.
+     */
+    ASSERT(aplic.imsic_cfg-&gt;is_used);
</pre>
          </blockquote>
          <pre wrap="" class="moz-quote-pre">Use the local variable you have made yourself?
</pre>
        </blockquote>
        <pre wrap="" class="moz-quote-pre">What do you mean by local here?
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">Just a few lines up you latch aplic.imsic_cfg into the local "imsic".</pre>
    </blockquote>
    <pre>Oh, sure, if *-&gt;is_used will still present in the next patch series then I'll re-use here "imsic".

</pre>
    <pre>~ Oleksii
</pre>
  </body>
</html>

--------------yZT03Y0VkaFdViHPEYVhrO5A--


From xen-devel-bounces@lists.xenproject.org Mon Apr 28 08:21:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 08:21:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.970285.1359008 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9Jk4-0001iM-Ao; Mon, 28 Apr 2025 08:21:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 970285.1359008; Mon, 28 Apr 2025 08: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 1u9Jk4-0001iF-7r; Mon, 28 Apr 2025 08:21:32 +0000
Received: by outflank-mailman (input) for mailman id 970285;
 Mon, 28 Apr 2025 08:21: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=MVu+=XO=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1u9Jk3-0001i9-N9
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 08:21:31 +0000
Received: from EUR02-AM0-obe.outbound.protection.outlook.com
 (mail-am0eur02on20605.outbound.protection.outlook.com
 [2a01:111:f403:2606::605])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c92b4945-2409-11f0-9eb4-5ba50f476ded;
 Mon, 28 Apr 2025 10:21:29 +0200 (CEST)
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by AM7PR03MB6167.eurprd03.prod.outlook.com
 (2603:10a6:20b:139::24) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.31; Mon, 28 Apr
 2025 08:21:23 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::35ac:8893:c31c:b971]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::35ac:8893:c31c:b971%4]) with mapi id 15.20.8678.027; Mon, 28 Apr 2025
 08:21: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: c92b4945-2409-11f0-9eb4-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=nnwkVUTh3CdmJqem8fCowdYhXL7OWFY+fsD/9an+K1jsvJvrjljMsjo1jO3JYTDfkFXADiXjWI6jltVxASk0qH132MN3mDQrLzlu4GfTC76gNO5+jP5RlfpVY8OpPHCN3QYq3bysTUmfK9zkwAFlmS89RUlg0dge0Kux1UIs8kU2BNQkWUgPSOcSoBVEnE0xJ/QJnjmSz1jTJb0NfYObita430GavBnbf2/zHBV5onNfLvbn2mvAWhPbrnbITmFZrILzNzk/QPH4O6x45CtYjX17g6PGHqxbEPNjO0y3gRFX8E8L3JUGG3swKAx2X31/GgqqH5OcU2b6hvDfYDK2bw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=kLFjJXWNZROyJttk8awDXM7dPrlSy432qPpUh0s+Av8=;
 b=ZR5Ao6OoOg4RpQUnfAntFCh0ksVxB/n5HxmKvzJB8vrb7gUmRo9VKRwvuIZtXo32eG9rAT7ZqhP94Pd5dZ9g3cfNS8wb3d6kTfhw7WZhGOYGbjh0RClWCm0iI12mpf0u+LdlE0A4MYcwgGjgDqP85N6lwZUF6/oSI9OXSF6LdqV2UuBFsxIohhDj46UWc3VGIowgHDtgoHNArq9F2Gr52CBXDW7LUeKxAL4zt80VC/U/EqVGZHB6on2kdfviBmgip3vfgcnNDLhb+QHoEK1nJij6Y6fbDsfqIylYSwknKcKQ8v0jzcXhPDdDuQhVJozUPwXWxbdrZKjVrIfD2ppmuw==
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=kLFjJXWNZROyJttk8awDXM7dPrlSy432qPpUh0s+Av8=;
 b=DCjJRYytiPmqSQuXBILk0OKRiajvHFW4YI7JQMXhPFPpZdyfpVkJ8b4cIGh+sS+TO7t0EoEqFc9mTZm0Nr82HqOKDQikssyfBXkqBGl/nP9DTfI0+lkOlFZ3DbcA5TWYQZ93/aczaIzsdCWlnvs82hpJrgGi6hVxyzPtKu3+G1yK3guw5h9CHbZBkEQ5cZ+EQlZAk8afgvGtoSlV7JW2oQRs4cRVkeSze5Wa6KrH+KKn17gjoF2V1DXGUGdOFPT/kbDRfkAEQN6kUF+Uv84CQ19w5fU2XPIhQ1853PqxoHOceLMcGC40h+JT22+G6QPCuC6PiG62+qbpAN0yHp1JSQ==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Stewart Hildebrand <stewart.hildebrand@amd.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v9 7/8] xen/arm: enable dom0 to use PCI devices with
 pci-passthrough=no
Thread-Topic: [PATCH v9 7/8] xen/arm: enable dom0 to use PCI devices with
 pci-passthrough=no
Thread-Index: AQHblOXdxbIbbkNtn0WSg/9tW2OJ47N3cuWAgEGQWoA=
Date: Mon, 28 Apr 2025 08:21:22 +0000
Message-ID: <c33b906f-f9cb-45e5-ac84-28dc687a6f7a@epam.com>
References: <cover.1741958647.git.mykyta_poturai@epam.com>
 <132afbca390edd6e9fd7b1ffacf6c5aff0d29aa7.1741958647.git.mykyta_poturai@epam.com>
 <7fa0bde7-3aa9-48f4-a0ed-d03216edcc4e@suse.com>
In-Reply-To: <7fa0bde7-3aa9-48f4-a0ed-d03216edcc4e@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_|AM7PR03MB6167:EE_
x-ms-office365-filtering-correlation-id: bf923264-8ea4-4110-628f-08dd862da93e
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|376014|7416014|366016|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?cU42TGovT2FScXUwdVVWckVYb1diVDFER3RWcVdOcVdWZ2dWbGdZeXRKbFAw?=
 =?utf-8?B?VjRDSlRLVWFKNHQ5Y0lDMXV5RWJFeng0a3JCeTNETWVWV1F5S25mTmVWTXB6?=
 =?utf-8?B?NzVHcG1WL2pWcThaRWZhMHhnZE1UWC9jY3poTTJmcHFhUHFUcWQ2QkwzV2VZ?=
 =?utf-8?B?bDJabm9aSHpzZ21DcnNGNktWWmdIRm83RzdadXZPUmlpYmU4MmtOY1JRVmts?=
 =?utf-8?B?bCtZb1o0bXhHLzBuSUFYcElWMzZjSWpEa0hLRllvMTlqdXVHV0dSdHM1RzZH?=
 =?utf-8?B?ajNPQlhCY1piaHgzQkdMNzFEZ2JnZ0pZZ3ZKd3BRVitwQlh5WndNYURqZ3JJ?=
 =?utf-8?B?VXlWcUlJMVhkTUE5cUR6Q2ZOREZVQzZLci9aeDFGVDgvTkUwcmVWSVZTbDhO?=
 =?utf-8?B?T1JPYkczYUJDaWl2cEpnK0x4V2xHTzFpSTBBQlZQWEEyQUFxa0ZZMk90VzVS?=
 =?utf-8?B?M2hWbnNSUUVNMnB6QVRCQkNZaFdvcWtxeFREZ0FGcjlUejJQRVFNN2FhRHZI?=
 =?utf-8?B?V1VqOGQvZ1ZMV0hpazJoN0VYdmFzVnlMZ0tJd256TUoxVXdOWXg4ZDF2eS9W?=
 =?utf-8?B?UHcxS1drZG41clRFTmV6YVdNc2FMQmtQMjIxSjlUNEZ4NENNVE5vcytDZGVt?=
 =?utf-8?B?T2xGSVFpZkxURW5Wb2Zycld1b2NEekM3L2gwcXNzWXpuNmZhamhKZjR0K29S?=
 =?utf-8?B?Q2taeVpHVUIrYUtFS0FNOWVUV3duSW1oVU45cSthQkRwSWdubmttclBpajdl?=
 =?utf-8?B?b2hzamdINFpjaDJOUnlHWWZMNWFTWDNrZWJ2b0FZbzJUMTRRYmw4VEgxenB1?=
 =?utf-8?B?TFdZWENwM1FPZGZvdFBOVW1OZXkza1lkbU44bDlZT3QxdlVIb1RvY0gxZU96?=
 =?utf-8?B?U1U2K29HU2VycUF5UmhUVFFmNHNpNlBMWVgwNkFLY2tRNVJpOEl2N3VDWkVn?=
 =?utf-8?B?YlNoQzZsTWZTU0RIQ0tmUk5KOGVLak1SR3NzWGdtc1B3ci84VGtEclVwNWZo?=
 =?utf-8?B?cVhHUE1QOFBrS2t5eEtvNzNzYURTcHV3V3JLOWhxV08yZmtRU29EVXU3c3kr?=
 =?utf-8?B?SlpWS1JwVFhtVUh5WTgyeUE0Z0FpTmpIS29RdjZ0NXNvTnV5Uzd6ZGFpUUtH?=
 =?utf-8?B?QUVuUFNpQlozYUlLVnd0TjUxSnVtZy9nSjhlS3JMK0Rsamd5L2h4WDlmUDU1?=
 =?utf-8?B?cldDTzJiZGl1em10Y3JWeTBEWmw4TmNSWm1lMm4rcmVESWlnZU5tMERCUzJF?=
 =?utf-8?B?MWMwYk1uRzl5Rm5OQ1JQRCtMQlM2Tm9lWTFRRlV5U2QyemRUcEIvNG44UU42?=
 =?utf-8?B?YmRMb3hYeHNMdzFhZjJMRFJoMGR1T0w2cEZmSkdFclZZL3YrYkdTSXd5N0Zu?=
 =?utf-8?B?Ym9reExFSVE4MC9aQWR2Kzl6U2pINk9iTFl3Z2RyN2wxb0l0Wk9OYTRTWGdq?=
 =?utf-8?B?emVlMmZPYXpELzdqcDU2MHkrdG5SL2NpTzAvMWE2NnFuN25tWE9ydlROVjRZ?=
 =?utf-8?B?OE1RbHYzMmd0STNMYjJpVWN1NERSbndkYWhVTkRJODFoVVlNSWhyYVkyZ1FX?=
 =?utf-8?B?VXFXWnQzYTJOM2dieWU4OExWL1pYcWY0Y0Z6VXhJeCtsUzcyRXgwdHVMOHIy?=
 =?utf-8?B?MStET3RNZEhSNFBObzI0dnRJL3RRbjJaRjZYRFdWTHI4RXVackFBU3ordHlr?=
 =?utf-8?B?ZlVSWS9QelpFSEpaVkwyZVVNdXBuSThmcEU0RGJLZytRZ0YrQVA0bS9ES2RR?=
 =?utf-8?B?SmVMdEZvMUlRdkIzc2JpbWpSeDhJUmNzQjh0OGhQVE5wZ0hQejF1UitvMW5m?=
 =?utf-8?B?SHhRTzVzZW03R0c2ZTQ3bHAwU3NFVUlEeUU1bFQwS0lNdExscFdhVjNqZHF3?=
 =?utf-8?B?R0gyMk9DdDV5UDRIL0JEWnJsdVpIVmFuSEFRVWRDTWoyQm81eDZUNTdXUXNk?=
 =?utf-8?B?MGp0RVo2T25nTnpOcU93S3dFVXlNNGRkaGc3dGdZTERwR3BITnU0T0ZpcXk4?=
 =?utf-8?B?T2VkZC9zb2R3PT0=?=
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)(1800799024)(376014)(7416014)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?Y3Z2SE8xalpUeGJNVHJzQUFkYzlueVhmdEdsRklWK0QvTUZqeHRnUTlTK2d2?=
 =?utf-8?B?bHVIajhKaHZYK2wwdEY4ZG5jY0V3RklnRHVDVTJ4V0ZEdDBseTcvV2V4dHl6?=
 =?utf-8?B?YStaUzVFMno4Z0xIRWpwMUQvVkR0MUlCYVpEWDNVeVJ5SE5nQU4rdlEwWnpU?=
 =?utf-8?B?S3cremtaT0FqaVhKckxHdTFzVDN4amVyem15NzJoRlFKazR0MU1VcXY0czhn?=
 =?utf-8?B?cmo4amtVaG8vbHNXMVUxV0Z0bGZXUHBSSkdqM0dJVnVqek1UbkwxNWtCYko1?=
 =?utf-8?B?Ym9CdVJTUzU3MXBmUkw3cWRFSXAxM0htVWQ1MEo3bzB0KzVSTENwK1JVdDlG?=
 =?utf-8?B?aU5OMis4aEloTUFmQnVjY1hyUHR6Vks1SGpHdGIvUXZTMUowdnJ5NDI3Y3V1?=
 =?utf-8?B?TFhtYnMwVldJTkFVcnNTN2VuaXgyb3JZWUxjblpoOWIxUmFSZnZ0TVBTcWRU?=
 =?utf-8?B?c21HTGtLR2RPQk83Y3A4eStoSllXZjI2ZmpGMlJRNDJvODUvMTgyRTdVbSs2?=
 =?utf-8?B?SU1OeG14UENEc2IwYUdhUFFoMnB3bHRpOUtBWGNoVFNZdEJZZjlobWt6WXNo?=
 =?utf-8?B?bjFVdEdWbzEzZDE2S2NSalcyQnVoSUlIUTBXbnJjRklvZk90QUlYcFMvV0RI?=
 =?utf-8?B?THVLYU5Ccm1IQXRDTk5DUDNhYTFwT3IzdURMY0ZGZm1RdVliaXdzeVIyQlRz?=
 =?utf-8?B?ckVucjJMejllNHJHT3hhdU1rQUdkOVVjbEovclcyM005ckpnc3BjLytpRHJm?=
 =?utf-8?B?QzVaUEFjdG1HbW5HTTVRbDkzZFNiM1BDQmlmbTNLSEtvODUxYUtxOTdnOEV6?=
 =?utf-8?B?emVLSXdTeldFTVJqamxLUk1OcXVsL2lvQUFXcGlxVmNadXNpSVc5TjVmeHFZ?=
 =?utf-8?B?aUk4RExaNGV0NzVOQmpSNi95OFRsU0pjZ1hPZDNiQk1idStQMHpMQU04ZnNt?=
 =?utf-8?B?d2dNSU1URlp4WmtoV1JIb3BEa29odU53aENNUVozTlB2WnpzZ1FmQXp5OTlm?=
 =?utf-8?B?REp0cDRhUVB0N05FS3ZYYkd5end2QXRLUVFjV01HQ25TaFdRWW9QalZTQlNu?=
 =?utf-8?B?VFlreFFNSnJ1MFdlcWdyQWRlY3d3SjZVYklFT3Q0aWtJY1lrbGRmN3hsNHYx?=
 =?utf-8?B?ZGZjd0xITmlod1pMZE5mU0hjWUQ4ZUZrMmRKOGErNVdIQ1AzK0ZoaXRmWkc5?=
 =?utf-8?B?WEtMOEVNMkFkZ2lsWnZoRXJVZ0hMenFJSmIrSm85V1czb1lpQmRZZ0hTbnZV?=
 =?utf-8?B?YlVLN0dqR2pqRlhST1YzazJoQlVGa1I1eHJQNG12eDVWcndDKzAyRHMyVDRN?=
 =?utf-8?B?WjJOMU1HYlJvV2RyTy8vUytVaW8xRUxNci9VOGFWdlJBQVlma3RoQnRuZ2lr?=
 =?utf-8?B?ZEhOYmFDb3AvWm16YVh0TEVoL0srYURhaEFLaXJFMmppbHVxdUZMNTh0dW11?=
 =?utf-8?B?ZXZRN080K1czTFJJV25PNmtjd1EvNUthWDd3aXhubGJVbjBRR1VSYzVkTWtJ?=
 =?utf-8?B?ZGY4UTVReFgzNmwvcVdVQmR5dFEyY3pUbnBieUNRWkllb25HNlhKUnVsTzlt?=
 =?utf-8?B?Y01ldEVMMDVhYlNLSVNzNnpsTU1WUnkwYWExWEpoc01pOGhFbUlnajJLaXFE?=
 =?utf-8?B?bGxJRU82Q09ERnZMUDdGMWhBRkNGZm5Bcm4vQ3E5YklpcThhS2Q4VkRVdFVB?=
 =?utf-8?B?VkdVWkMrWEhiM2JhSlp6TlhFTjJ0VXRLRkxGN1UxSWZ5SjF3TDNrTWkrd0Qr?=
 =?utf-8?B?RHdJZnNTR1NTZ21kdzNQd2lCRWpSVzBZc2ZmWWJMYjg4bE54Tm1pTVVWNVFO?=
 =?utf-8?B?T0ltci9LWTkvZXNPeC9ZejJzU2ZFcm1KWTFaUmRleE1oYVBpMHhXUnMrUkpB?=
 =?utf-8?B?dWxqTHNLR0Q1RWZKeDdYQ1dOM2l6aUtUaEJEYytoclJIdlEySTIvSFR3U0ZD?=
 =?utf-8?B?UlFTb3gzQUNNVU8wOEZsQnczQUZQNlNTczZyNzZEOXZrUXBaNVhJemp1ZS82?=
 =?utf-8?B?T1J3LzV3TldyT3dyQjJMakN0VGZkSG94bmMvL2V1d2hNaVJqUkcxbEVtUElx?=
 =?utf-8?B?YzBQd0hjZjBoN25DZW9IWUV5bm9TejJHRjdLSmtrQXRYZHRsYzF1RDR3a0lu?=
 =?utf-8?B?aldMN0ZQRkpLR25uQStoMW9EMkJjS3p2YWVseFE5cnhYOExMT0ppaDZ0VzFy?=
 =?utf-8?B?OHc9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <5D1B1EA721D45345B8BC6DC6AD181B8B@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: bf923264-8ea4-4110-628f-08dd862da93e
X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Apr 2025 08:21:22.6844
 (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: Jw/qrFB5l6bbElteBlkDnlKU8zXDlAGwP+4zO1sEmn/+SVocVM+uXMplOkJFfhbO/ayBjQOA6Bm1a3nGZUDJGQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR03MB6167

T24gMTcuMDMuMjUgMTc6MDcsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAxNC4wMy4yMDI1IDE0
OjM0LCBNeWt5dGEgUG90dXJhaSB3cm90ZToNCj4+IC0tLSBhL3hlbi9hcmNoL2FybS9wY2kvcGNp
LmMNCj4+ICsrKyBiL3hlbi9hcmNoL2FybS9wY2kvcGNpLmMNCj4+IEBAIC0xNiw5ICsxNiwxOCBA
QA0KPj4gICAjaW5jbHVkZSA8eGVuL2RldmljZV90cmVlLmg+DQo+PiAgICNpbmNsdWRlIDx4ZW4v
ZXJybm8uaD4NCj4+ICAgI2luY2x1ZGUgPHhlbi9pbml0Lmg+DQo+PiArI2luY2x1ZGUgPHhlbi9p
b21tdS5oPg0KPj4gICAjaW5jbHVkZSA8eGVuL3BhcmFtLmg+DQo+PiAgICNpbmNsdWRlIDx4ZW4v
cGNpLmg+DQo+PiAgIA0KPj4gK2Jvb2wgaXNfcGNpX3Bhc3N0aHJvdWdoX2VuYWJsZWQoYm9vbCBk
b20wKQ0KPj4gK3sNCj4+ICsgICAgaWYgKCBkb20wICkNCj4+ICsgICAgICAgIHJldHVybiBwY2lf
cGFzc3Rocm91Z2hfZW5hYmxlZCB8fCBpb21tdV9lbmFibGVkOw0KPiANCj4gQXMgSSB0aGluayBJ
IHNhaWQgYmVmb3JlIC0gdGhlIGZ1bmN0aW9uJ3MgbmFtZSBub3cgbm8gbG9uZ2VyIGV4cHJlc3Nl
cw0KPiB3aGF0IGl0IHJlYWxseSBjaGVja3MuIFRoYXQgKGltbyBoZWF2aWx5KSBtaXNsZWFkaW5n
IGF0IHRoZSB1c2Ugc2l0ZXMNCj4gb2YgdGhpcyBmdW5jdGlvbi4NCg0KSGkgSmFuLA0KDQpJJ3Zl
IHNwZW50IHNvbWUgbW9yZSB0aW1lIHRoaW5raW5nIGFib3V0IGhvdyB0byBiZXR0ZXIgZGVhbCB3
aXRoIHRoaXMuIA0KSW4gdGhlIGVuZCwgSSB0aGluayB5b3VyIGVhcmxpZXIgc3VnZ2VzdGlvbiBh
Ym91dCBpbnRyb2R1Y2luZyBhIG5ldyBhcmNoIA0Kc3BlY2lmaWMgZnVuY3Rpb24gaXMgdGhlIGJl
c3QgYXBwcm9hY2gsIGJ1dCBJIHdhbnQgdG8gYWdyZWUgb24gdGhlIA0KbmFtaW5nIGJlZm9yZSBz
ZW5kaW5nIG5ldyBwYXRjaGVzLiBXb3VsZCAiYXJjaF9yZXF1aXJlc19wY2lfcGh5c2RldiIgYmUg
DQphbiBhcHByb3ByaWF0ZSBuYW1lIGluIHlvdXIgb3Bpbmlvbj8NCg0KQXQgdGhlIGNhbGwgc2l0
ZXMgaXQgd2lsbCBsb29rIGxpa2UgdGhpczoNCiAgICAgY2FzZSBQSFlTREVWT1BfcGNpX2Rldmlj
ZV9yZW1vdmU6IHsNCiAgICAgICAgIHN0cnVjdCBwaHlzZGV2X3BjaV9kZXZpY2UgZGV2Ow0KDQog
ICAgICAgICBpZiAoICFpc19wY2lfcGFzc3Rocm91Z2hfZW5hYmxlZCgpICYmICFhcmNoX3JlcXVp
cmVzX3BjaV9waHlzZGV2KCkpDQogICAgICAgICAgICAgcmV0dXJuIC1FT1BOT1RTVVBQOw0KDQoN
Ci0tIA0KTXlreXRh


From xen-devel-bounces@lists.xenproject.org Mon Apr 28 08:54:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 08:54:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.970297.1359018 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9KFb-0006QX-Nq; Mon, 28 Apr 2025 08:54:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 970297.1359018; Mon, 28 Apr 2025 08:54: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 1u9KFb-0006QQ-L4; Mon, 28 Apr 2025 08:54:07 +0000
Received: by outflank-mailman (input) for mailman id 970297;
 Mon, 28 Apr 2025 08:54: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 1u9KFa-0006QK-HN
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 08:54: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 1u9KFZ-00AL7V-2U;
 Mon, 28 Apr 2025 08:54:05 +0000
Received: from [2a02:8012:3a1:0:8834:9d13:966f:8422]
 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 1u9KFZ-003MMB-1T;
 Mon, 28 Apr 2025 08:54: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>
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=1JY+WAgZjCKLSVfKt125XadmdUzQSBGwqEunCiAp7/k=; b=oeshhK2bxOhweTHcknYtPTTFk7
	9kobrN4UPFteKxwvcy9XO0jJ4FL+wZFqy/o0PHB1xb6s2QnJUL5Y00bKR0gJUckOh/fu64O736ER/
	kXEj1yotIf0LfmRhx4MuN2nQ4qmbN4MZuVUuiW7ufsPf9Rk/wqZPc1IsXMpxC0jxbCRA=;
Message-ID: <7d376741-ff23-4618-83bd-415c8d8fa24e@xen.org>
Date: Mon, 28 Apr 2025 09:54:03 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v9 7/8] xen/arm: enable dom0 to use PCI devices with
 pci-passthrough=no
To: Mykyta Poturai <Mykyta_Poturai@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Stewart Hildebrand <stewart.hildebrand@amd.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>,
 Anthony PERARD <anthony.perard@vates.tech>, Jan Beulich <jbeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <cover.1741958647.git.mykyta_poturai@epam.com>
 <132afbca390edd6e9fd7b1ffacf6c5aff0d29aa7.1741958647.git.mykyta_poturai@epam.com>
Content-Language: en-GB
From: Julien Grall <julien@xen.org>
In-Reply-To: <132afbca390edd6e9fd7b1ffacf6c5aff0d29aa7.1741958647.git.mykyta_poturai@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Mykyta,

On 14/03/2025 13:34, Mykyta Poturai wrote:
> From: Stewart Hildebrand <stewart.hildebrand@amd.com>
> 
> Enable the use of IOMMU + PCI in dom0 without having to specify
> "pci-passthrough=yes". We rely on dom0 to initialize the PCI controller
> and perform a PHYSDEVOP_pci_device_add call to add each device to SMMU.

It would be good to explain why Xen cannot initialize the PCI 
controller. Asking, because the reason is the PCI controller is too 
complex, then you will likely need the same approach for PCI passthrough...

> 
> Enable pci_init() for initializing Xen's internal PCI subsystem, and
> allow PHYSDEVOP_pci_device_add when pci-passthrough is disabled.

Effectively, wouldn't this mean dom0 always *have* to call 
PHYSDEVOP_pci_device_add? Otherwise, how would dom0 know whether it 
needs to call PHSYDEVOP_pci_device_add?

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Mon Apr 28 08:54:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 08:54:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.970304.1359030 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9KGC-0006rq-13; Mon, 28 Apr 2025 08:54:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 970304.1359030; Mon, 28 Apr 2025 08:54: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 1u9KGB-0006ri-Sh; Mon, 28 Apr 2025 08:54:43 +0000
Received: by outflank-mailman (input) for mailman id 970304;
 Mon, 28 Apr 2025 08:54: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=5hYN=XO=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u9KGA-0006iy-Ns
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 08:54:42 +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 6bcd63f5-240e-11f0-9ffb-bf95429c2676;
 Mon, 28 Apr 2025 10:54:40 +0200 (CEST)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-43ce70f9afbso35740045e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 28 Apr 2025 01:54:40 -0700 (PDT)
Received: from [10.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-440a5310a1csm116105405e9.20.2025.04.28.01.54.39
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 28 Apr 2025 01:54:39 -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: 6bcd63f5-240e-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745830480; x=1746435280; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=iFZANYcCynztpdGLETVzDg3VnC5RXmNyXfGXwWR5kGU=;
        b=POpR/YrLtl180oGcnLvtuiZqt0nnWvQFxsUC/hk6+6tzFZ9NfS83MHQlHbrwbYOtEA
         Cp1RdiC4ODTCw0BKxriJzx8k5EmFJGdO04dopEuToZi+mDlzWFYG4seGmwvfjNm64ZLv
         IxFEwvaDQTd0IwWpM3eu58oodlqcBEKKUy8NLVBbRHzzFjczfvMePSQbiK5k/CkEJWmG
         H/T29ByXT79ata8SNHZE6Dc1qm2KQt341U8G3JDdnYt/KUDcIQMA5hOLRiccJwlBmbio
         gS8HeRvInhDRRW6oV3e6VG9pEweI80xxbzi2mb++ebxsVnBLEQ+SPl2I2Z/79/iz/f+L
         08Sg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745830480; x=1746435280;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=iFZANYcCynztpdGLETVzDg3VnC5RXmNyXfGXwWR5kGU=;
        b=PLhJzmnUNft54hcSYxcQSN+VAbVECx6GHVqUMogJ3Dxg/s7JxanwBJtjdMgf3uDXh2
         t/kuKw74Pf9ds2PezWjqHSdp+33NtGdVh0bGVOToKaSjaaCqSQFrtlORm/PMjTdneIGu
         fmOhTS/UxcQtfFd7J4vTvGwoFz+D2Re3E05+OsAMH9NlkSzNYj1QZCb62M3VNtakPz17
         ZKxqKSaRTGYkbaTB5Xow+KkZt5yvkL6z3lKwTaP6zl9Q/9l5phDGXG5hcN4D+RF1Fo98
         7O38iG3r1H32qqJMIgc6lRBLG/0gA7pmvmPGizoSU+SiurrgabM+MuV9Bo2Tti6xBvSn
         Dvqg==
X-Forwarded-Encrypted: i=1; AJvYcCVgncCNWajViTtEgiuJkbxv81BmklhkKlmVQBKgyN1j0DtBUXNZe1nlwUe0exivD1uxyj9KrsSJaI8=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy1JBDhXLOal8rfi9gCzpyi/N52vKdZceaH4maHEwy7ArX1jMgL
	a+UBzItbV4icsTtsSLH3RmsZ9hfh1EKnAIE1/t/TtiIhBytm9qZIqaTGc6biSg==
X-Gm-Gg: ASbGnctJlK85YX61jfzQnhAFXpDdztRLmgRSgpteFu8TaAHMuPaRjfR0ZJJ4wOn4A/p
	67AJvB2i7xuBoBgv7U5j1Y8jEaZOihOoCzl0w9e3UWqVqPlZqDd1LVv1usK4If2BdeLoKgA3SlU
	sFNhwR3o+Qo3uZCbLUM9JNwcJBvoiAzA05U9mRSjFz/hueEWqm4iASnb35l9KKRCRGUZ6zNUoVO
	V+JsEluKtpUjTyf5SuHCBlBRlBnAY4iBgd9Aa9zPW/KIOAnaBx1tw9plQMNgMQC5pMxKNUUfI98
	nOT17omh/Fmr90VP91W6gfcpv9S8RnoT36zSjFkD/vWtiV63o6aSq5If53HmF3aicdjx3CZ5I5Z
	9kcRhh9RVw9T9dEe9zgX5ArR8Dg==
X-Google-Smtp-Source: AGHT+IH0Y5QzbBPFYtOKLSmq7Ej0MzPHjCLw36xeBRHYZB8yDhIBuY+W2UPXsN2OgVVAbV6P6entVA==
X-Received: by 2002:a05:600c:1d0e:b0:43d:9f2:6274 with SMTP id 5b1f17b1804b1-440a65e4994mr97102795e9.14.1745830480153;
        Mon, 28 Apr 2025 01:54:40 -0700 (PDT)
Message-ID: <d00fca13-617b-4687-9a15-131bba352ea1@suse.com>
Date: Mon, 28 Apr 2025 10:54:40 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 10/14] xen/riscv: implementation of aplic and imsic
 operations
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Romain Caritey <Romain.Caritey@microchip.com>, xen-devel@lists.xenproject.org
References: <cover.1744126720.git.oleksii.kurochko@gmail.com>
 <74a07ed7c596bbcf581010685e01bfdfa19164f5.1744126720.git.oleksii.kurochko@gmail.com>
 <35075d73-ec3c-4e8f-b7ed-657b604904bd@suse.com>
 <9bee5d4e-cad1-4fc1-8b4c-b4a4bab4b76c@gmail.com>
 <c0bcc9e7-26a6-4a67-8f18-787364b530e4@suse.com>
 <231e9f4e-a044-49b7-b3a5-26ff2f7f9612@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: <231e9f4e-a044-49b7-b3a5-26ff2f7f9612@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 28.04.2025 10:12, Oleksii Kurochko wrote:
> On 4/17/25 8:25 AM, Jan Beulich wrote:
>> On 16.04.2025 21:05, Oleksii Kurochko wrote:
>>> On 4/15/25 2:46 PM, Jan Beulich wrote:
>>>> On 08.04.2025 17:57, Oleksii Kurochko wrote:
>>>>> Introduce interrupt controller descriptor for host APLIC to describe
>>>>> the low-lovel hardare. It includes implementation of the following functions:
>>>>>    - aplic_irq_startup()
>>>>>    - aplic_irq_shutdown()
>>>>>    - aplic_irq_enable()
>>>>>    - aplic_irq_disable()
>>>>>    - aplic_irq_ack()
>>>>>    - aplic_host_irq_end()
>>>>>    - aplic_set_irq_affinity()
>>>>>
>>>>> As APLIC is used in MSI mode it requires to enable/disable interrupts not
>>>>> only for APLIC but also for IMSIC. Thereby for the purpose of
>>>>> aplic_irq_{enable,disable}() it is introduced imsic_irq_{enable,disable)().
>>>>>
>>>>> For the purpose of aplic_set_irq_affinity() aplic_get_cpu_from_mask() is
>>>>> introduced to get hart id.
>>>>>
>>>>> Also, introduce additional interrupt controller h/w operations and
>>>>> host_irq_type for APLIC:
>>>>>    - aplic_host_irq_type
>>>>>    - aplic_set_irq_priority()
>>>>>    - aplic_set_irq_type()
>>>> Yet these two functions nor the hooks they're used to populate are entirely
>>>> unused here. Since they're also outside of the common IRQ handling machinery,
>>>> it's unclear how one would sanely ack such a change.
>>> They will be called by intc_route_irq_to_xen() from setup_irq() during firt time
>>> the IRQ is setup.
>> Perhaps move their introduction to there then? We don't do any Misra checking
>> yet lon RISC-V, but imo it's still good practice to avoid introducing new
>> violations, even if only temporarily.
> 
> Okay, I will move their introduction to there.
> 
> Btw, what is needed to add Misra checking for RISC-V? I started to think that, probably,
> it will make sense to do that from the start.

Best I can do is point you at what is done for Arm and x86. You may want to
ask people more familiar with the CI aspects involved here.

>>>>> +static void aplic_set_irq_priority(struct irq_desc *desc,
>>>>> +                                   unsigned int priority)
>>>>> +{
>>>>> +    /* No priority, do nothing */
>>>>> +}
>>>> Since the function dopes nothing, wouldn't it be better to omit it and have
>>>> the (future) caller check for a NULL pointer ahead of making the (indirect)
>>>> call? Same remark for other handlers (below) which also do nothing.
>>> I thought about that too, but it could be some cases when the stub is introduced
>>> with temporary BUG_ON("unimplemented") inside just to not miss to implement it
>>> when it will be necessary.
>>> If we will have only the caller check then we could miss to implement such stubs.
>> I guess I don't understand the concern.
> 
> for example, if we will have the following code:
>    void some_caller(struct irq_desc *desc)
>    {
>        if ( desc->handler->set_affinity )
>            desc->handler->set_affinity(desc, cpu_mask);
>    }
> 
> Then we will skip the call of handler->set_affinity() (if it was just initialized with
> .set_affinity = NULL) without any notification. And it is fine specifically in this
> case as aplic_set_irq_priority() does nothing.
> 
> But what about the cases if it is a function which will have some implementation in the
> future but doesn't have implementation for now. Then without notification that this
> function is unimplemented we could skip something what really matters.
> 
> But I think that your initial comment was just about the function which basically
> does nothing. Am i right?

Since indirect calls are not only more expensive (often; not sure about
RISC-V) but also pose speculative concerns, having such just to do nothing
simply seems like moving in the wrong direction.

>>>>> +    ASSERT(spin_is_locked(&desc->lock));
>>>> If this lock (which is an IRQ-safe one) is necessarily held, ...
>>>>
>>>>> +    spin_lock_irqsave(&aplic.lock, flags);
>>>> ... you can use just spin_lock() here.
>>>>
>>>>> +    clear_bit(_IRQ_DISABLED, &desc->status);
>>>> Why an atomic bitop when desc is locked? (And yes, I ought to raise the same
>>>> question on Arm code also doing so.)
>>> I haven't thought about that. Likely non-atomic bitop could be used here.
>> And then - does it need to be a bitop? Aiui that's what Arm uses, while x86
>> doesn't. And I see no reason to use other than plain C operators here. If
>> Arm was switched, presumably all the redundant (and misnamed) _IRQ_*
>> constants could go away, with just the IRQ_* ones left.
> 
> The reason for a bitop in Arm is explained in this commithttps://gitlab.com/xen-project/xen/-/commit/50d8fe8fcbab2440cfeeb65c4765868398652473
> but all the places where plain C operators were changed to bitops are actually executed under|spin_lock_irqsave(&desc->lock, flags). By quick look I found only two 
> places one in __setup_irq() but it is called by the functions which do ||spin_lock_irqsave(&desc->lock, flags) and in vgic_v2_fold_lr_state(). 
> Maybe, I'm missing something.|
> |RISC-V won't have something similar to ||vgic_v2_fold_lr_state|(), but __setup_irq() is used in a similar way. It can be added ASSERT(spin_is_lock(&desc->lock))
> and then it will also safe to use non-bitop function.
> Probably, it is a little bit safer to use always bitops for desc->status.
> ||

I question that. If any accesses outside of locked regions were needed (as the
description of that commit suggests), then the situation would be different.

Btw, you not wrapping lines and you adding strange | instances doesn't help
readability of your replies.

>>>> I'm uncertain about this bit setting anyway - on x86 we would only fiddle
>>>> with it for IRQs not in use, not while enabling/disabling one.
>> What about this part?
> 
> As I understand, based on Arm, code then Xen enables interrupts corresponding to devices assigned
> to dom0/domU before booting dom0/domU, resulting in the possibility of receiving an interrupt
> and not knowing what to do with it. So it is needed for enablement of IRQs when the guest
> requests it and not unconditionally at boot time.

I fear I don't understand this. The way we do things on x86 doesn't leave us
in such a situation.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Apr 28 09:01:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 09:01:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.970325.1359039 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9KMg-0000U1-RV; Mon, 28 Apr 2025 09:01:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 970325.1359039; Mon, 28 Apr 2025 09:01: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 1u9KMg-0000Tu-O6; Mon, 28 Apr 2025 09:01:26 +0000
Received: by outflank-mailman (input) for mailman id 970325;
 Mon, 28 Apr 2025 09: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=5hYN=XO=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u9KMe-0000Tm-UF
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 09:01:24 +0000
Received: from mail-wm1-x331.google.com (mail-wm1-x331.google.com
 [2a00:1450:4864:20::331])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5bec4b8d-240f-11f0-9eb4-5ba50f476ded;
 Mon, 28 Apr 2025 11:01:23 +0200 (CEST)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-43d0359b1fcso28203745e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 28 Apr 2025 02:01:23 -0700 (PDT)
Received: from [10.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-4409d2ac079sm149652055e9.18.2025.04.28.02.01.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 28 Apr 2025 02:01:22 -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: 5bec4b8d-240f-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745830883; x=1746435683; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=kIn2I/imRUJcWf2136sPowlWU/VZ8af3YxX4p7cyuyQ=;
        b=LaX7nKUsB8QvOc2srasKnu1IBZeFu+of8U4lDcCCv7lj3ntSWdpWUbmjS3WvkBk4QP
         4avf0ze+EJujpVYOkXoNBZI1yrHLdG2eqc7LILIIlL0clNR8CFFs1f28gG9jEuJopxDc
         KrP9hVP5XqIEJOAPdTqgtEhhvAKJdao1p7Jl90JvjwTPs7Ob/29dyLYz/eT8l3XsHV3W
         ROXnDvmZbsAvdxMaHPMXeCtzl3Y/aoQqAKVTabxUD61AXi8AwYv2SNBa4YHXAje+LF8a
         tfClU9P9k+RvjEr1ChhdG6y8cvnCbypNpTx9jd1Z1tLL2jR6id7xMC0d1WQe6MSbyy6i
         NHTg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745830883; x=1746435683;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=kIn2I/imRUJcWf2136sPowlWU/VZ8af3YxX4p7cyuyQ=;
        b=celvild3WghmUHlE6P4yFDXcei3+mwQW8sIC+e0NPMgAegveY0wrLjYvftF+2nVtxc
         nWgh2fV1l2bOJHpc58aupABMgjhMsh6U4FElpT0acf5aydLxKC5XyEW+1CnXq8mfGLCH
         B+qjFScq0Jd+paxxgD148+CXgIj4T6UBwKporDqOmc+86YIOc1gd5elf4EwmH+KsJH0o
         9CwGn6rm3qyRwoM6nlGVcFygqYyQAaiFNJ9ckeA76o7EhSMxb+WvKx38wI34CR21P8ni
         KkiViRtiKpnQkM4tjN7QKaI4JPGjiUbQ/43y1GdCPhU4/bxeCULUheMixjzeLCAlKT8m
         p3mQ==
X-Forwarded-Encrypted: i=1; AJvYcCWoJyTpe0Gh3+2xpT82xMDG7DVAtGt9u6s9Rpuvh9xObyBIK+soFd1It3ui9it5uhjIpf7EL2p4atI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwnK9VQRhZwiMxpKUmGGLU0e9uh3nqNyHNYS4L2gnj7K5Jq+Pgh
	mSEBeiN9hmuJq3IYPhYIg7Aule5KaMUF8zhuXhqlal5l8fxWFHl66f6CsSnmwA==
X-Gm-Gg: ASbGncuUq1EPnCyMiGINoXzSqlIRayqOyYL/l1OkoYv5rZsaASCfAj0rgpNvhegR65w
	1TH9jrUSocaGePXbNEZM6411wfJpwiondXP5gOUIchXPlMw9dt5UsZKx65hgfVqRyQaS9MwlKh3
	+Kgx0DJYgu7P9AWzA4JRH3DMFtsrGkGdtkWntwNZyWPFps3ZuYvlTkbym+vsRapXpumzJTGOa9J
	Jns8t7VDGA16ludOV62atep0pmU3G6eahqaTb/HkzlPmIEAYFRVCORsAT/Hqi1jwSGbQ0urr6Z+
	TNpLTYkxMf0PLxeGAQkzeVes3QCkv0lVFVjFMfFMV3KE6Zko4v8+8PO2LHZt3kNp0gV42cVT0Mh
	meEplOhbdNeFoNx+lCw0+csUO2w==
X-Google-Smtp-Source: AGHT+IFn4eGo0QDnYRBOgmpjY2eamob9w6Dvs86/4IDP5ZooTzyHlWaBxbo5pMGbPFGOz2LCqnzysQ==
X-Received: by 2002:a05:600c:138f:b0:439:9737:675b with SMTP id 5b1f17b1804b1-440a65e81e6mr80974275e9.7.1745830882911;
        Mon, 28 Apr 2025 02:01:22 -0700 (PDT)
Message-ID: <b4baad49-f751-42e6-9785-6d71aac3ebc3@suse.com>
Date: Mon, 28 Apr 2025 11:01:23 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v9 7/8] xen/arm: enable dom0 to use PCI devices with
 pci-passthrough=no
To: Mykyta Poturai <Mykyta_Poturai@epam.com>
Cc: Stewart Hildebrand <stewart.hildebrand@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <cover.1741958647.git.mykyta_poturai@epam.com>
 <132afbca390edd6e9fd7b1ffacf6c5aff0d29aa7.1741958647.git.mykyta_poturai@epam.com>
 <7fa0bde7-3aa9-48f4-a0ed-d03216edcc4e@suse.com>
 <c33b906f-f9cb-45e5-ac84-28dc687a6f7a@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: <c33b906f-f9cb-45e5-ac84-28dc687a6f7a@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 28.04.2025 10:21, Mykyta Poturai wrote:
> On 17.03.25 17:07, Jan Beulich wrote:
>> On 14.03.2025 14:34, Mykyta Poturai wrote:
>>> --- a/xen/arch/arm/pci/pci.c
>>> +++ b/xen/arch/arm/pci/pci.c
>>> @@ -16,9 +16,18 @@
>>>   #include <xen/device_tree.h>
>>>   #include <xen/errno.h>
>>>   #include <xen/init.h>
>>> +#include <xen/iommu.h>
>>>   #include <xen/param.h>
>>>   #include <xen/pci.h>
>>>   
>>> +bool is_pci_passthrough_enabled(bool dom0)
>>> +{
>>> +    if ( dom0 )
>>> +        return pci_passthrough_enabled || iommu_enabled;
>>
>> As I think I said before - the function's name now no longer expresses
>> what it really checks. That (imo heavily) misleading at the use sites
>> of this function.
> 
> I've spent some more time thinking about how to better deal with this. 
> In the end, I think your earlier suggestion about introducing a new arch 
> specific function is the best approach, but I want to agree on the 
> naming before sending new patches. Would "arch_requires_pci_physdev" be 
> an appropriate name in your opinion?
> 
> At the call sites it will look like this:
>      case PHYSDEVOP_pci_device_remove: {
>          struct physdev_pci_device dev;
> 
>          if ( !is_pci_passthrough_enabled() && !arch_requires_pci_physdev())
>              return -EOPNOTSUPP;

There are several questions that affect naming: Is it really "requires"? Is
it really all PCI-related physdevops? Is the ordering of naming elements in
line with what we use elsewhere (arch_ first is, but perhaps either pci or
physdevop wants to move earlier)?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Apr 28 09:04:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 09:04:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.970337.1359048 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9KPS-00013l-86; Mon, 28 Apr 2025 09:04:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 970337.1359048; Mon, 28 Apr 2025 09:04: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 1u9KPS-00013e-5T; Mon, 28 Apr 2025 09:04:18 +0000
Received: by outflank-mailman (input) for mailman id 970337;
 Mon, 28 Apr 2025 09:04: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=5hYN=XO=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u9KPQ-00013X-Vh
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 09:04: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 c2b2d6db-240f-11f0-9eb4-5ba50f476ded;
 Mon, 28 Apr 2025 11:04:16 +0200 (CEST)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-43d04dc73b7so40954645e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 28 Apr 2025 02:04:15 -0700 (PDT)
Received: from [10.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-4409d2d8479sm154342235e9.29.2025.04.28.02.04.14
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 28 Apr 2025 02:04: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: c2b2d6db-240f-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745831055; x=1746435855; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=shifrSgTksc5mBL9UdLz927Li754XErdqiBhtpb4NM0=;
        b=UKGmr/DjUOVyzo9PgM02EJ9aROFmC9ikrRHC0Wttr3UwUCwdM0ict//yiu9RvVmP1O
         bVpPL1vnFi6zHGAoFt8R4xSBdTg7fMRvfItb+j2252l4ybBiU8+u0Z4D0HVyep2mAkvm
         Z58GI1CWiqJq3WRIAPuyEsD/3XIo6TDR7SlLkZPKxcshM7QWc4Nr5tffWkU5HtULTJYu
         X/j29mRry61pKEw5xFxYxjVtrMrh/qMsNxpmdkICplIk5YSa0LhdR9Hax85HyyJLXAIL
         WBpQsQjGodyrvr7G90bSDSUU0jzCdsWRDNu4RfTJEkrv4E6it00P2oKgl9HI8ZlMuULF
         mQYw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745831055; x=1746435855;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=shifrSgTksc5mBL9UdLz927Li754XErdqiBhtpb4NM0=;
        b=VWfeI5nxfK362V9p09azs9ggEtdMkSRGPlz/AKfypZHLH9n9XNUri9Q0bH0KVaco4r
         tx685/ffNR3FDMZ6Ua/yJABrWoUDalupU9HHI4SUvxyf1nOScdUBfPV8+9dtwRugY3Ji
         YmSpQCDkEGDX5zU6jA7QhDY23XjuXka/EP20vbjYWCgE+i0MK4UsOarFTbroCcuK1DAE
         kNxHgAwv6HPySLH+vIypOyHb7n5TYiAu0RoqYqN2x26DVJfQgglcrW+LdrIoDN4nO3Lp
         cyIWMyKvxzyE43AAj/ZfGRBFrrvT/pO/ZkI9KfQHnDBdurqIPOArsqEimxh9s/eBJGcC
         ELmA==
X-Forwarded-Encrypted: i=1; AJvYcCWNFrwT5c/w6mueGKowDJ12MVPIji8OOg/gSXbhkOmomldg2bkyhPEU3f3OKXnk8Ksu9XYnO8unr3A=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw66KfH57VnlF3Zvkuic0iNjqYSWPdtVU4L0+szXLyIfOGf3O8y
	y5tPXxl//p4zo/57XDME4Z9M4ZJV6GuQUiMfNsA+J/YMOyt05+eNBOVU4j/RnQ==
X-Gm-Gg: ASbGnctd8I3l8MzZ3LC3guGCjE8EuLHI9lJQtE1x5JHiOsvhyV9UW9sy9ioBR/QpIlI
	el0MaMSzhixL7GWgzZofK3YEJlp+qzeYGVBzqC28JUX7DwxMX/T0gwqKFhhUrpzvfI7Ud7mFd+T
	RJ1w05SiEBy9QGoXXlZFxLLPDsZKnS+ERul9kl+DpT7Bm9a7nAPxlY9pKGBYRqlfi5mkNdQHWx6
	gn5TDKqx7Eemb1CIVbiiKz9xPqPXNmB5z0IaKlCiAvoPlDWIYL1lgT4MswzdJviFDQ83HL7NZvD
	u8irsMRxsaYLu68pkpHfR3bqqZ7JCEKIbtqgX2TmO+IIUNvfAM4h7w4rL1qE0WeDZC+gTg7F0Fq
	k/Zd8uIbNAwOY+pFhyCkhYUi7XJNPZXnKPdCb
X-Google-Smtp-Source: AGHT+IF/FWLZ+TDmpSrZxjci23lLi4o8C2DBUQNWIWLGCEpb4mbKeapqxYEuSUCW3yeZz5BJ3ri+ug==
X-Received: by 2002:a05:600c:3491:b0:43b:ce3c:19d0 with SMTP id 5b1f17b1804b1-440a66b6fb1mr94580895e9.29.1745831055345;
        Mon, 28 Apr 2025 02:04:15 -0700 (PDT)
Message-ID: <35ac0856-7a96-4f91-a76d-989bcebfb911@suse.com>
Date: Mon, 28 Apr 2025 11:04:15 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1] misra: add deviation for rules 21.1 and 21.2
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, victorm.lira@amd.com,
 Federico Serafini <federico.serafini@bugseng.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>, xen-devel@lists.xenproject.org
References: <9e1210f2a9c794d68dcc6b897239b228b141296a.1745427770.git.victorm.lira@amd.com>
 <f5d35582-9270-4816-84c2-f078afeee711@suse.com>
 <alpine.DEB.2.22.394.2504241443550.785180@ubuntu-linux-20-04-desktop>
 <8d65ee65-ec6f-49a3-8954-d303b08dc2df@suse.com>
 <a9db045cff906a4b7db8730ad1095e4b@bugseng.com>
 <b7f7ab2b-baaa-416f-b390-5ed2229d34cb@suse.com>
 <4d21245edbd4949a0aec6ecdadea437c@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: <4d21245edbd4949a0aec6ecdadea437c@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 28.04.2025 10:09, Nicola Vetrini wrote:
> On 2025-04-28 08:15, Jan Beulich wrote:
>> On 25.04.2025 17:53, Nicola Vetrini wrote:
>>> On 2025-04-25 10:07, Jan Beulich wrote:
>>>> On 24.04.2025 23:45, Stefano Stabellini wrote:
>>>>> On Thu, 24 Apr 2025, Jan Beulich wrote:
>>>>>> On 23.04.2025 19:54, victorm.lira@amd.com wrote:
>>>>>>> From: Nicola Vetrini <nicola.vetrini@bugseng.com>
>>>>>>>
>>>>>>> MISRA C Rules 21.1 ("#define and #undef shall not be used on a
>>>>>>> reserved identifier or reserved macro name") and R21.2 ("A 
>>>>>>> reserved
>>>>>>> identifier or reserved macro name shall not be declared") 
>>>>>>> violations
>>>>>>> are not problematic for Xen, as it does not use the C or POSIX
>>>>>>> libraries.
>>>>>>>
>>>>>>> Xen uses -fno-builtin and -nostdinc to ensure this, but there are
>>>>>>> still
>>>>>>> __builtin_* functions from the compiler that are available so
>>>>>>> a deviation is formulated for all identifiers not starting with
>>>>>>> "__builtin_".
>>>>>>>
>>>>>>> The missing text of a deviation for Rule 21.2 is added to
>>>>>>> docs/misra/deviations.rst.
>>>>>>>
>>>>>>> To avoid regressions, tag both rules as clean and add them to the
>>>>>>> monitored set.
>>>>>>>
>>>>>>> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
>>>>>>> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
>>>>>>> Signed-off-by: Victor Lira <victorm.lira@amd.com>
>>>>>>
>>>>>> While the rule is in the library section, ...
>>>>>>
>>>>>>> --- a/docs/misra/deviations.rst
>>>>>>> +++ b/docs/misra/deviations.rst
>>>>>>> @@ -587,7 +587,31 @@ Deviations related to MISRA C:2012 Rules:
>>>>>>>         construct is deviated only in Translation Units that 
>>>>>>> present
>>>>>>> a violation
>>>>>>>         of the Rule due to uses of this macro.
>>>>>>>       - Tagged as `deliberate` for ECLAIR.
>>>>>>> -
>>>>>>> +
>>>>>>> +   * - R21.1
>>>>>>> +     - Rule 21.1 reports identifiers reserved for the C and POSIX
>>>>>>> standard
>>>>>>> +       libraries. Xen does not use such libraries and all
>>>>>>> translation units
>>>>>>> +       are compiled with option '-nostdinc', therefore there is 
>>>>>>> no
>>>>>>> reason to
>>>>>>> +       avoid to use `#define` or `#undef` on such identifiers
>>>>>>> except for those
>>>>>>> +       beginning with `__builtin_` for which compilers may 
>>>>>>> perform
>>>>>>> (wrong)
>>>>>>> +       optimizations.
>>>>>>> +     - Tagged as `safe` for ECLAIR.
>>>>>>
>>>>>> ... I'd like to ask that it be explicitly clarified here that it's
>>>>>> solely
>>>>>> the library (and not e.g. the compiler itself) that are of concern
>>>>>> here.
>>>>>
>>>>> The language can be clarified:
>>>>>
>>>>> - Rule 21.1 reports identifiers reserved for the C and POSIX 
>>>>> standard
>>>>>   libraries. Xen does not use such libraries and all translation 
>>>>> units
>>>>>   are compiled with option '-nostdinc', therefore there is no reason
>>>>> to
>>>>>   avoid to use `#define` or `#undef` on C and POSIX standard 
>>>>> libraries
>>>>>   identifiers except for those beginning with `__builtin_` for which
>>>>>   compilers may perform (wrong) optimizations.
>>>>
>>>> Which makes it more apparent that there is a gap: What about e.g.
>>>> __x86_64__?
>>>> That falls within what the rules cover, is not a C or POSIX standard
>>>> library
>>>> identifier, yet very clearly must not be fiddled with. Whereas the 
>>>> text
>>>> above deviates it.
>>>
>>> that is true, even if unlikely: one approach could be to avoid 
>>> deviating
>>> predefined macros for all CUs as -nostdinc and -fno-builtins should 
>>> take
>>> care of the rest; this kind of deviation is not currently possible in
>>> ECLAIR, but it might be in the future.
>>
>> Is this perhaps because by "all pre-defined macros" you really mean 
>> _just_
>> those, and not the entire reserved (for that purpose) sub-namespace? 
>> Imo
>> we should not go by what a particular compiler may pre-define (we may 
>> even
>> overlook something if we did it this way).
>>
>> Jan
>>
> 
> I think there is a slight misalignment here: maybe I'm interpreting your 
> answer incorrectly. Let me try to restate the proposal: the following 
> identifiers are not allowed to be #define'd or #undef'd:
> - __builtin_*
> - for each CU, all macro identifiers already defined upon preprocessing 
> that CU by the compiler invocation for that CU. This set of identifiers 
> is always a subset of all the reserved identifiers, but is also 
> dependent on the compiler invocation that is used for that CU, (e.g. 
> __x86_64__ for an Arm target is usually safe to define, as it's 
> typically not a predefined macro introduced by the compiler for that 
> invocation,

No, it's not - elsewhere in the tree we may use this to distinguish
architectures. Plus isn't Misra heavily about avoiding developer
confusion? Defining __x86_64__ on Arm code is, imo, a pretty confusing
thing to do.

> while (re)defining __STDC_VERSION__ or __SIZEOF_INT__ will 
> be a violation in any command line I can think of). Note that this is 
> not a static set, but is based on what is determined to be predefined at 
> the moment of the analysis, so it is not tied to what a particular 
> compiler pre-defines.

Right. Yet what I'm trying to get to is that we disallow _all_ such
reserved identifiers, not just a subset.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Apr 28 09:08:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 09:08:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.970349.1359059 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9KTt-0001ek-Oj; Mon, 28 Apr 2025 09:08:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 970349.1359059; Mon, 28 Apr 2025 09:08: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 1u9KTt-0001ed-Lg; Mon, 28 Apr 2025 09:08:53 +0000
Received: by outflank-mailman (input) for mailman id 970349;
 Mon, 28 Apr 2025 09:08: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=5hYN=XO=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u9KTs-0001eW-T2
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 09:08:52 +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 670ddc2d-2410-11f0-9eb4-5ba50f476ded;
 Mon, 28 Apr 2025 11:08:51 +0200 (CEST)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-43cfa7e7f54so29890335e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 28 Apr 2025 02:08:51 -0700 (PDT)
Received: from [10.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-4409d2a152csm153185745e9.12.2025.04.28.02.08.50
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 28 Apr 2025 02:08: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: 670ddc2d-2410-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745831331; x=1746436131; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=THrPKfXVo3yRJrsQLJx4fYAZP2gYeIlqIljcSutaSao=;
        b=KFevRymRHVfNA9tgTG1kxQxLK3GNnUQzEvJIn+/ihjmqkC/tgBCWowBkqd5FkFAwaf
         X3nym74cxeS10BESWHNMx6f8+NxMyFB+F6SukvwgtaxDuTMqLHFW9dEQVGvgBvjc+4Ci
         2nXcVC4tDotGmtMEGiaKgplwyOqEi4W3ro/juvT3lXBG5O2ddSMoFUdwkwrT+/Ub6twR
         eCzJI1fFv0HAuUSIpN5KTrTg4GEoRhGj+AzdIOIOGYGremyxOgAC2gCjO12gOUwt0Hqh
         39huy2SSrPhW04BQTInlUSRGWO93gQpFHpyOXo4ycNWmAfFXEeYBI3JfzZqDRCvWiG6/
         F+vw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745831331; x=1746436131;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=THrPKfXVo3yRJrsQLJx4fYAZP2gYeIlqIljcSutaSao=;
        b=AC34mssVE9wsE98DKonLzaUETE/97XHI2/oaUntIB7hLKYwBfvKieXDcWc7cm1QRr/
         TFSPepemqkCD8jxyYXoWu/yLcOkteyBsxmMDaztvSNkfh14f49v/Za8SRTrRVBEeDub1
         Jixe39pucA6WKvkmJUtmYfMGiBOEnP4pHD1jXKBJt3/k3rvwfrIfhSt/kVinwt8bUTQO
         yB1xh/sURWgJdCtBdjMFv2bnga7NSF+JXskfJZZv9AUU3nw5ehP3EKtCE0g6r0skUMSa
         9gDv9S8DxERd3hbrkMqSWxuxZotimGt8wnKOIflQPePHICM9W6WHEEdilAC2amIx26m0
         SLcA==
X-Forwarded-Encrypted: i=1; AJvYcCXMjgBAueTZpXy8Z7UYbqXff8yhTOGOLF74SLHz0JvRXJJ8P2tnykHQeRS1GClM1Am5Oefa8qI5f0o=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzUf5k4glIYt2ecvpCr5kPqB8Df5FNDlSzZjgBQW+sOMqJWVPBv
	DtY/Ud+Pgt2T2EJT4Vz25fDOscQfOCel7GmNwZOMVVge6uYIzH5mNunaNELeiQ==
X-Gm-Gg: ASbGncvzUj0YWLNPigkn8A7dDiepwh9dmZAg6p7puTss3r/4gevmJuVW1IikWB5L4el
	BdORq3ShtTvV4Rm/K7HYXl8IK5GDQ59AgcyiIaS+M6UInX8Ts4qSGYQisJnNiN3dEHgwe+ihLme
	Gk/F1XHsFEgPjpPJrCLBhDD6oOEKxSHPcMYMWbkl4P1urXSDWhSND7/QitUqH9c4IR6o4vMxIWO
	/CDy8f0rrEWKn9hZUKpcgmTNwI8KIM9AlEzHd40u8ow/xUiN5dfZvSWheALiIAwcwP5e2OQNDiU
	uGKopdlnnQHliZ76HLGYqMQG7/WOh/l3AEjRSKEs5FSFFfXvd0q2y02mvq0YRYPQib5OOEimObO
	TPUWThvcKD/NXsjPF2udNsENCcw==
X-Google-Smtp-Source: AGHT+IFGSxJDBsu91y8RFS0QiCZfI4NtrRCzx5xAK6fLjpF8bPwILT5lHDOPqFhLjenTJghs56OFhg==
X-Received: by 2002:a7b:c048:0:b0:440:69f5:f179 with SMTP id 5b1f17b1804b1-4409c48b23dmr103299175e9.7.1745831331025;
        Mon, 28 Apr 2025 02:08:51 -0700 (PDT)
Message-ID: <eec15acd-49d7-4ac8-8472-1f3385bbb05d@suse.com>
Date: Mon, 28 Apr 2025 11:08:51 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4] xen/domain: unify domain ID allocation
To: Julien Grall <julien@xen.org>
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech,
 michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org,
 dmukhin@ford.com, dmkhn@proton.me, xen-devel@lists.xenproject.org
References: <20250422215322.521464-1-dmukhin@ford.com>
 <f0f159e6-ad79-4c1a-a61e-0272615754d6@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: <f0f159e6-ad79-4c1a-a61e-0272615754d6@xen.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 23.04.2025 13:22, Julien Grall wrote:
> On 22/04/2025 22:54, dmkhn@proton.me wrote:
>> --- a/xen/common/domain.c
>> +++ b/xen/common/domain.c
>> @@ -66,6 +66,57 @@ DEFINE_RCU_READ_LOCK(domlist_read_lock);
>>   static struct domain *domain_hash[DOMAIN_HASH_SIZE];
>>   struct domain *domain_list;
>>   
>> +/* Domain ID allocator */
>> +static unsigned int domid_last;
>> +
>> +static inline bool is_free_domid(domid_t dom)
>> +{
>> +    struct domain *d = rcu_lock_domain_by_id(dom);
>> +
>> +    if ( d )
>> +        rcu_unlock_domain(d);
>> +
>> +    return !d;
>> +}
>> +
>> +/*
>> + * Allocate new domain ID based on the hint.
> 
> Maybe clarify this should not be used for system domains?

But those don't have their IDs allocated; they're pre-determined and outside
of the range available for allocation.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Apr 28 09:14:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 09:14:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.970363.1359081 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9KZS-0003ie-Eo; Mon, 28 Apr 2025 09:14:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 970363.1359081; Mon, 28 Apr 2025 09:14: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 1u9KZS-0003iX-C6; Mon, 28 Apr 2025 09:14:38 +0000
Received: by outflank-mailman (input) for mailman id 970363;
 Mon, 28 Apr 2025 09: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=5hYN=XO=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u9KZQ-0003iR-MD
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 09:14:36 +0000
Received: from mail-wm1-x32f.google.com (mail-wm1-x32f.google.com
 [2a00:1450:4864:20::32f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2e6f48c1-2411-11f0-9ffb-bf95429c2676;
 Mon, 28 Apr 2025 11:14:26 +0200 (CEST)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-43cf628cb14so39665085e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 28 Apr 2025 02:14:26 -0700 (PDT)
Received: from [10.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-4409d2ad112sm149173605e9.24.2025.04.28.02.14.24
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 28 Apr 2025 02:14: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: 2e6f48c1-2411-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745831666; x=1746436466; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=1EYo2AiIT3qbT7CK0uDRHACAazbH5QViWpYJFODduDk=;
        b=d+kO/1u9C0s/vjV2tjX9zCRKzraSwSpTS454fJ8G+IB1YTd6WJd2wACgmkN9pWmPhC
         M/sUdM1YRThdz8U/E3rIGZYD/SDHh0ch7/TrUfpyJtvM1sU88m73uevwXremHi3rYlPN
         Oqk6OoKvrGC6ZWaDWjOeNq7fOzpL3WSlZiauu76yuxdFXNXEYEfw/B6RkyJrBjM32RxA
         QJjuKPffb2ZZE09Wb0uaTBDuXAnZgUc41pU0gEdG1ihCWzZJANnq1MiBIUdfx1r5lady
         lq5WsUTniPKAVoeLJTR8gjL2Vihit8TZxFvRCjWDUzqVaWlzpv0Nn/+xcyVkEO4lvTmX
         WD4w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745831666; x=1746436466;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=1EYo2AiIT3qbT7CK0uDRHACAazbH5QViWpYJFODduDk=;
        b=lDH/2IfHs15o6ai0vJaxqXF6Qp/RkaaPzwwXp0FTRV+G+w47Axbf5tOOWlojWHPGsP
         gyMYsyC69zsUTQEs4Oww7P07C7Rf+QtjUrcfkWoPPYKpRFsGIl5jbuGzkrQozRQZkz08
         ZSdXhuKJJuUNOtQrrTrBMNdpN688P0reIb7V0j8FzUHlrmuKYp2z1zhqBSfsqXxNsndt
         1nimSSHowuhkhIwH+QV59x5BOWG+ey2rZ1xTbGpZsZYY13+PDQ8tzQ33Mpex61lc3WVw
         INuYm/sCn1tvtCRzgjTP8Py/hqaOzyNZz5AE0YxtbnfAQ+z1GAlk87BW6WUKXnDraqyL
         PINg==
X-Forwarded-Encrypted: i=1; AJvYcCUFgMwWX+IAwKD8T5bwkDuCKKs6td8pv2VJmXh+fyMe5VkCAAwoyt6gFtmoQJc2axAbIiER+kmAYdc=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw83xEC/xQ204xO+mc5SoP9C+KB+J2sHkdEFpxaxaU0QsRNNkkn
	DwXbbttPO9E7pGhlrUeDNW5jMwcmNqYJ6AtMxO9qLtqzxrE4BFUJaPD7CKEb2w==
X-Gm-Gg: ASbGncuSH5+l+memNSkQCmCbnffb3lxE5PSgYkDpfX7S4VBLX2jqy0VN8jz3NzHdi+5
	/oaYQBHMEs6k3DZyzYhBfIL4JjEscatvnuFm2FmH2NBEvT94sJz+dVjKwXOz/gxTLRa1RVH9WVH
	18gemFSKL9pNh7YMiVZ0lomGVX9gnTfBFnbvZ52AyR/eJXT/BmDeYaXSR62pv4gVm22/OngvlIp
	DIJF0gjI1xJ61f3YOxSY1JD1vgHGaRaKYm803g5ew1vtmW50Iam0IuIU4b6YcqMAnkJHYRobZHx
	3FaToeiw13S8q7jX60amXW8CzFb9vWyO3kS1FraL/bUdgXzqT1Cw676f789znZBH+vWEoh1jVAs
	FGbqZBV9f6gdnkA2ubgklEACl3Q==
X-Google-Smtp-Source: AGHT+IGQbGzPEw5YvEKdpWA3OpLBbOtEW602Bf2tejLfJfUivpCUEpKAVbY5yi4Njlfc3cIMgX8YRw==
X-Received: by 2002:a05:600c:55c7:b0:43b:4829:8067 with SMTP id 5b1f17b1804b1-4409c4615e0mr107966385e9.6.1745831665544;
        Mon, 28 Apr 2025 02:14:25 -0700 (PDT)
Message-ID: <f8be084a-e259-456b-b30d-677b128978e3@suse.com>
Date: Mon, 28 Apr 2025 11:14:25 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4] xen/domain: unify domain ID allocation
To: dmkhn@proton.me
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, julien@xen.org,
 michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org,
 dmukhin@ford.com, xen-devel@lists.xenproject.org
References: <20250422215322.521464-1-dmukhin@ford.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20250422215322.521464-1-dmukhin@ford.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 22.04.2025 23:54, dmkhn@proton.me wrote:
> --- a/xen/common/domain.c
> +++ b/xen/common/domain.c
> @@ -66,6 +66,57 @@ DEFINE_RCU_READ_LOCK(domlist_read_lock);
>  static struct domain *domain_hash[DOMAIN_HASH_SIZE];
>  struct domain *domain_list;
>  
> +/* Domain ID allocator */
> +static unsigned int domid_last;
> +
> +static inline bool is_free_domid(domid_t dom)
> +{
> +    struct domain *d = rcu_lock_domain_by_id(dom);
> +
> +    if ( d )
> +        rcu_unlock_domain(d);
> +
> +    return !d;
> +}
> +
> +/*
> + * Allocate new domain ID based on the hint.
> + *
> + * If hint is outside of valid [0..DOMID_FIRST_RESERVED - 1] range of IDs,
> + * perform an exhaustive search starting from the end of the used domain ID
> + * range, excluding hardware_domid.
> + */
> +domid_t domid_alloc(domid_t hint)
> +{
> +    domid_t domid = DOMID_INVALID;
> +
> +    if ( hint < DOMID_FIRST_RESERVED )
> +    {
> +        /* Exact match. */
> +        if ( is_free_domid(hint) )
> +            domid = hint;
> +    }
> +    else
> +    {
> +        for ( domid = domid_last + 1; domid != domid_last; domid++ )
> +        {
> +            if ( domid == DOMID_FIRST_RESERVED )
> +                domid = 0;
> +
> +            if ( domid == hardware_domid )
> +                continue;
> +
> +            if ( is_free_domid(domid) )
> +                break;
> +        }
> +
> +        if ( domid != domid_last )
> +            domid_last = domid;
> +    }
> +
> +    return domid;
> +}

The function name suggests the ID returned is firmly allocated by the time
the caller gets to see / use it. Yet that's not the case. Two back-to-back
calls here with the same argument will yield the same result, afaict. This
supports my prior statement that I don't think it is a good idea to
"centralize" things like this.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Apr 28 09:18:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 09:18:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.970379.1359091 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9Kcr-0004Mm-2L; Mon, 28 Apr 2025 09:18:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 970379.1359091; Mon, 28 Apr 2025 09:18: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 1u9Kcq-0004Mf-Uk; Mon, 28 Apr 2025 09:18:08 +0000
Received: by outflank-mailman (input) for mailman id 970379;
 Mon, 28 Apr 2025 09:18: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=5hYN=XO=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u9Kco-0004MZ-Uz
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 09:18:06 +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 b1663413-2411-11f0-9eb4-5ba50f476ded;
 Mon, 28 Apr 2025 11:18:05 +0200 (CEST)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-43cfdc2c8c9so23392865e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 28 Apr 2025 02:18:05 -0700 (PDT)
Received: from [10.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-4409d2a1544sm153213475e9.11.2025.04.28.02.18.04
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 28 Apr 2025 02:18:04 -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: b1663413-2411-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745831885; x=1746436685; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=eU535nLgarq31uT7ifyaQ4E66eUkdn1uDhnoKHZOstk=;
        b=IMVr68Y0jQax8oMMyoFlG1r3MNDI6X2d/NEfgB7qLJ+2Q0DouYlXiK6gBCXTadpTt6
         zKy0noyAfohOhRnNIpR9HsBEyHagN6eeq5G3LJVuRyI5wu1fP0Qco4LDon3D80t/SQ9c
         WD5k8mDRsiwG4/hmMbLR4ZPkPof6BJonwF+zCsgB+uePccNmTERrLBiNdZ7z/ggRODX9
         RuLyvwhwENQxdmf/fSX97gCxJZ7pL0XWpbVx3VzexVPjRRrT2h5xfcaPonGYe15GuS0d
         N3767sO1Ak6TyjFj2ey2czosQq+5b2qcMulVegcICbdv8n6qVFrI9AJalZilyrIn4Gbi
         ww4Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745831885; x=1746436685;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=eU535nLgarq31uT7ifyaQ4E66eUkdn1uDhnoKHZOstk=;
        b=ChJXIoMeRcQiyqvHjAHQ8NyIn5FlAHsMBfe01/bAsc03lr3Ck5Kb9sgqMFWKOl1lTK
         p+rE//OyDfGhSGT9vPhBL7vjOGvXODkGKVcd+r6+z+xw+DHi4VHkrKqUz5fP8gAhkGc7
         PLAXCErzgd0ti7dDacHGBWAmimtd0tiRmtBOtbGHC0EgvPwzjmnDz1XCIHUrwfDmGCQn
         Q+/mpNYIpxhT3m8B+1yQIAjD964o57keCWiVsDuWISXfeJ7jV9SfpR8nXUWMZEsdZjuH
         J17XRU1b/HuTH7LdN0oAPKm8k0xuF3/Bmhnvb2WIdzicboTVH30tXJStFaBXbggFZGmb
         cgiw==
X-Forwarded-Encrypted: i=1; AJvYcCXHeuE99fiu+1ckbm4cSZbVWLEUpX+n0WkzjfZFBsr/IVJB0gFm1RfhIL7C0h8jfT7aHGJrViznRCY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwZqR+8TtS1k7wFgvZthWz1OMz1xiXINldxlder7GaBQa3KX00z
	7O4iu2JuObPa3KszFoLNZhKkl7IWNWplv62tojdWwKwCHvHfryinYbjofwlq4Q==
X-Gm-Gg: ASbGncvrstUrf4t7dCUlrAW70PNPpnuls2yAW3Pn3KbsImHBDN9gXgYeyLLa8lkGlQe
	EP/hzqSpVjzvTmvAwnVVe54po1d227KWmUjsewCm0KraSLrJQ1WaUri1v/UOavZ7drJvd25J4VY
	sPkmhTdxn82zRRJt3kS+M4vJW6Q0RSMT4/fmEUmXhEwRna6IO2lPob2pOn8Zl1tNHl8p6heAROb
	MQ/B7ugPOX6w3gglUcW7IiPP5hMN0KWgbdvWeTREaGzDuFfIac4uQSOYuAKJjV0S3BNtGA/wE3h
	SywsjJcC939C8Bqd7p9hGlsEoPXOCE9sTvaLkYLI1iMqvVbtiSoE5Bk+Jzpbk/vRZNu7EwhWApw
	R51b0Rsok0RzyxW8UjW70WhgBpl2ie5qgDyWW
X-Google-Smtp-Source: AGHT+IGQyVzicKqqLmRiWYXjWY50j4VYFsu8faydFZgGMysCJj4KqEwLDPn4FrZjktcetOvu37F+FA==
X-Received: by 2002:a05:600c:8109:b0:43d:7413:cb3f with SMTP id 5b1f17b1804b1-440a65ce030mr91160535e9.5.1745831885234;
        Mon, 28 Apr 2025 02:18:05 -0700 (PDT)
Message-ID: <a77e92a8-a7b4-4b22-8fab-e3093258b2d2@suse.com>
Date: Mon, 28 Apr 2025 11:18:05 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 1/3] x86/vmx: Introduce vmread()
To: dmkhn@proton.me
Cc: andrew.cooper3@citrix.com, roger.pau@citrix.com, dmukhin@ford.com,
 xen-devel@lists.xenproject.org
References: <20250426072720.39317-1-dmukhin@ford.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20250426072720.39317-1-dmukhin@ford.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 26.04.2025 09:27, dmkhn@proton.me wrote:
> From: Denis Mukhin <dmukhin@ford.com>
> 
> The current implementation of __vmread() returns the result via pointer
> argument which leads to excess code in some places.
> 
> Introduce a new vmread() function as suggested in [1].
> 
> [1] https://lore.kernel.org/xen-devel/c452a1d7-4a57-4c5f-8a83-36a74ff228ec@citrix.com/
> 
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>

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




From xen-devel-bounces@lists.xenproject.org Mon Apr 28 09:19:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 09:19:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.970387.1359101 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9Kdi-0004rn-Ac; Mon, 28 Apr 2025 09:19:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 970387.1359101; Mon, 28 Apr 2025 09:19: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 1u9Kdi-0004rg-7B; Mon, 28 Apr 2025 09:19:02 +0000
Received: by outflank-mailman (input) for mailman id 970387;
 Mon, 28 Apr 2025 09:19: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=5hYN=XO=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u9Kdh-0004rY-Ub
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 09:19:01 +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 d2463fa5-2411-11f0-9eb4-5ba50f476ded;
 Mon, 28 Apr 2025 11:19:01 +0200 (CEST)
Received: by mail-wr1-x432.google.com with SMTP id
 ffacd0b85a97d-3a07a7b4ac7so1013570f8f.2
 for <xen-devel@lists.xenproject.org>; Mon, 28 Apr 2025 02:19:01 -0700 (PDT)
Received: from [10.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-3a073e5c82fsm10445042f8f.85.2025.04.28.02.19.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 28 Apr 2025 02:19: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: d2463fa5-2411-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745831940; x=1746436740; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=fFwInLV3vfUWJEXGGnwWSOA44SsiGe7kNheiiCGGNjk=;
        b=ZpWj8vK6uicIX3rFk1vlYSsU4pl2jEQmtKNtMtB63L9aNW5MEMiWOYpYqio039HgGe
         nkG+WjZp1h6P1oPm+VXlyCXCN5OHaz2W/9VvTbXELSNeUFmSFzPwGmlv7d1BXQBvT3Qp
         X4QJp/xQq1thgCppP5myZCR86nlPI9Z3u93tY4+28haG3hduILVc/K7tsdKNLHDJGnAe
         lZ4DimqrmvzodhmWyAsPURZ+mDVzLiT3EchC/zNPFqW/i9fnDd89UsXmF3Un+m2nifWd
         sqaur5pyr4hXjgwnXsdvooogiPJZj5liZ4JYsVdHp7kwyhoZYUzvMdkP3Y9Befa/YdU1
         WVAg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745831940; x=1746436740;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=fFwInLV3vfUWJEXGGnwWSOA44SsiGe7kNheiiCGGNjk=;
        b=UDE0bsX1sMzKkia5PM3NKf0s4M0sEyO9JcZGMeOQ2bqfcGXDW3PSQR0Q8Gjk4ciC7f
         ys3g9vICLEMU2tfa7Qpojbvch2qfnN+66FHxv4HhRgwsLiLvd636MXrWLYHT3Y6AC5Ki
         V7itRqXwqzLWtP1UescDUPPx7EXYmwuc/I1zhttZClwng2AtuaV3jY2D9gQ1+79+XkPl
         veA34SbYmueqq1hZeh6Bc8Ni2s9dFA4BXpoGDcnPAWwFgWba7e7aA/8ITp6rFmw4qDqC
         5SPIPQ4YipC+IFakD00EWGBs0TzexFC+nRe2eeWuVh6PeaSHgBHjkIjRetbiMDKXwxT1
         5Q+w==
X-Forwarded-Encrypted: i=1; AJvYcCU0YRZl1NefvJU/S4yr6NtCEEpj4qOBQhF7LIh5lSPrINGJiTOTPwSyIjUk6by6a6md0PazMxL8dFg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxRbrkWLUw7lN3Lag39/pGhdbYT78uMUNUaM65pqisEkSL/TPmv
	cDPNH5ro8bI1VhodwG3aKXellcd+4z6cUmNWaxASDzsJ3VPeJLP7iQMz7upqpg==
X-Gm-Gg: ASbGncu8UlcjBe4UEnaonY3kuXF6daNqlxWdvEaEwrVBG31gx5NdH+yQba67WgboETt
	bPrvPWF+X8UgNqcA5JWyApgoSF4CNJj7Y8Mg47gcM0rbX0r0nvvDaEtIOz6FV9S7UOLweVwTpzb
	MYjbhL/WBC+fIEAM6mMd8S5XmwPHunew1d6QLFwM/T+Zd3Witv4asiTrFiLJ+FBHxRQP4PEGIKl
	FAQmrPvQdgIwRWSTcPerzrZXZZcOwTFuH1ZjGpIFYpSANW7DEFo5RvBkwKxenwojJDD9xpp4dKF
	mjmMPFm21EzuGlE7Ftyr4lc3hIs14X2w7O65TwW9b81S5NzMKrTQZSOgpEz/2D5L0IIHKnNdvt3
	2ENeWrOCu5+zjrBeZHC+uJMZymQ==
X-Google-Smtp-Source: AGHT+IEBvQtFy71m1vMq0GiTuJ7TWxhnNOxKlb9xSizM0qfFqVVmEqEzRhzWxJ7u6jzb2c3f/07IAg==
X-Received: by 2002:a05:6000:220f:b0:390:f738:246b with SMTP id ffacd0b85a97d-3a074e1f11fmr8969627f8f.15.1745831940527;
        Mon, 28 Apr 2025 02:19:00 -0700 (PDT)
Message-ID: <b843908e-2cfb-4797-9be8-f4d2f0463e92@suse.com>
Date: Mon, 28 Apr 2025 11:19:01 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 2/3] x86/vmx: Update DR7 type
To: dmkhn@proton.me
Cc: andrew.cooper3@citrix.com, roger.pau@citrix.com, dmukhin@ford.com,
 xen-devel@lists.xenproject.org
References: <20250426072739.39373-1-dmukhin@ford.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20250426072739.39373-1-dmukhin@ford.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 26.04.2025 09:27, dmkhn@proton.me wrote:
> From: Denis Mukhin <dmukhin@ford.com>
> 
> Convert the DR7 type to `unsigned int` and fix the accesses where necessary.
> 
> [1] https://lore.kernel.org/xen-devel/0d01646b-83e3-4a02-b365-d149d2664e73@citrix.com/
> 
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>

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




From xen-devel-bounces@lists.xenproject.org Mon Apr 28 09:41:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 09:41:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.970406.1359111 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9Kz7-0001Jq-Vd; Mon, 28 Apr 2025 09:41:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 970406.1359111; Mon, 28 Apr 2025 09: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 1u9Kz7-0001Jj-St; Mon, 28 Apr 2025 09:41:09 +0000
Received: by outflank-mailman (input) for mailman id 970406;
 Mon, 28 Apr 2025 09: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=EzXt=XO=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u9Kz6-0001Jd-VK
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 09:41:09 +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 e846f93d-2414-11f0-9ffb-bf95429c2676;
 Mon, 28 Apr 2025 11:41:06 +0200 (CEST)
Received: by mail-ed1-x534.google.com with SMTP id
 4fb4d7f45d1cf-5e677f59438so6850000a12.2
 for <xen-devel@lists.xenproject.org>; Mon, 28 Apr 2025 02:41:06 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 4fb4d7f45d1cf-5f7016f5acdsm5536622a12.38.2025.04.28.02.41.05
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 28 Apr 2025 02:41: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: e846f93d-2414-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745833266; x=1746438066; 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=9CBhCXkr8158RMaR3b8OB6n2UjnrAgIUceMjhNvsh2E=;
        b=p2aNEtXK0onSjZT13q8+g4RWYmm9aFeK6cEr+dNaw4RJ/DogM0FLZl3IFHVEsYP4nZ
         6DZtAEYa4ZLHKeZouHO2hnq/BheYc83PGFv/JGuUV+5Na2aGDpN+CbtkKvIaZaJcS9bf
         t3gWcSbrjErnPzwPLmD9IO2SK4hK1wXGdTQI4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745833266; x=1746438066;
        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=9CBhCXkr8158RMaR3b8OB6n2UjnrAgIUceMjhNvsh2E=;
        b=FWUqQoQmLHWXCkW7Cs21kLILXygZ7QK5B2bZkgEZwQUt4E/lsGOos0KSJF98R/2COJ
         uW73X+H4RUXVnEazwKGF7eK5//BRm5RO5m6d9Xg9n8ZyvlL/ApvqR6H7zwYQRF2jbJDU
         LzetY3c34+vlFgHacyWOjFdZbhyJ6Z4XbAjkiejhRtzx4kJDxNChrZYDMTN0mlvRBdoA
         fseyzyC3EGozBkpPdGDV0qnYij3G+ge10vS5iN/1Lk+m1gfMkWaHhKclC2gAQd8w4bj8
         IjlOJWJvF7HVFv1kypI5NREzz7v/JTwfabR7nS8e7IrFNQR4f9POzMz8oMIUC1LHXt5m
         91Gw==
X-Gm-Message-State: AOJu0YzGrprBHLg8h30Yk59JEqrduEuUfYm05E9vZdsXPfQZPoDerGTd
	6eaEqB8wgAt6TvhY6nEoGi1m/ZLoRv8lWWpywCbdRySXaF3ZNJCX07aUnAvApQA=
X-Gm-Gg: ASbGncs8QxlNYZrS0Q/Xj/b7jDKJvlVyNBo0mKE8RTqHx4oQicCeHYKyoZ8CmF92+KO
	5rn41tgmQ9f2+IThnMU1YTXD0l7Twm3g1mmnKI7ejzArzjNAz5dJk9bhcCQYiGKQIUKslXo+sUn
	z91JjNpqdAN9iO/FQVZ/H0J8L2Cpqx3jouoabPa+pxgJs/jbbbz+jYkLlLzOilhCqoUBOQuY7AW
	axN9sQpmrCI/6QhT85YLWxakiJz6rjNpR0XN7X+bv3Rur/rVnyplwoStwp5x4N/RLc644kUZGaw
	Xd7ng9wYB0l7srY8REqDiexX+87L7IFExjGeqjP/GfYfSeV83yXVvFgN
X-Google-Smtp-Source: AGHT+IEGHAFQx8F0UGhURNrZPpamKptHf3MPAiDrOCk9JtIrbvxUHBo2lJQKrHR5kriwkviMPMvdaQ==
X-Received: by 2002:a05:6402:2749:b0:5f8:30c2:8652 with SMTP id 4fb4d7f45d1cf-5f830c28831mr91858a12.7.1745833265992;
        Mon, 28 Apr 2025 02:41:05 -0700 (PDT)
Date: Mon, 28 Apr 2025 11:41:04 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Ariadne Conill <ariadne@ariadne.space>
Cc: xen-devel@lists.xenproject.org, Paul Durrant <paul@xen.org>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Alejandro Vallejo <agarciav@amd.com>,
	"Alexander M . Merritt" <alexander@edera.dev>
Subject: Re: [PATCH v2] x86/hyperv: use dynamically allocated page for
 hypercalls
Message-ID: <aA9NMJVbyXeMOOY-@macbook.lan>
References: <20250425234331.65875-1-ariadne@ariadne.space>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <20250425234331.65875-1-ariadne@ariadne.space>

On Fri, Apr 25, 2025 at 04:43:31PM -0700, Ariadne Conill wrote:
> Previously Xen placed the hypercall page at the highest possible MFN,
> but this caused problems on systems where there is more than 36 bits
> of physical address space.
> 
> In general, it also seems unreliable to assume that the highest possible
> MFN is not already reserved for some other purpose.
> 
> Changes from v1:
> - Continue to use fixmap infrastructure
> - Use panic in Hyper-V setup() function instead of returning -ENOMEM
>   on hypercall page allocation failure
> 
> Fixes: 620fc734f854 ("x86/hyperv: setup hypercall page")
> Cc: Alejandro Vallejo <agarciav@amd.com>
> Cc: Alexander M. Merritt <alexander@edera.dev>
> Signed-off-by: Ariadne Conill <ariadne@ariadne.space>
> ---
>  xen/arch/x86/guest/hyperv/hyperv.c      | 17 +++++++----------
>  xen/arch/x86/include/asm/guest/hyperv.h |  3 ---
>  2 files changed, 7 insertions(+), 13 deletions(-)
> 
> diff --git a/xen/arch/x86/guest/hyperv/hyperv.c b/xen/arch/x86/guest/hyperv/hyperv.c
> index 6989af38f1..0305374a06 100644
> --- a/xen/arch/x86/guest/hyperv/hyperv.c
> +++ b/xen/arch/x86/guest/hyperv/hyperv.c
> @@ -98,7 +98,13 @@ static void __init setup_hypercall_page(void)
>      rdmsrl(HV_X64_MSR_HYPERCALL, hypercall_msr.as_uint64);
>      if ( !hypercall_msr.enable )
>      {
> -        mfn = HV_HCALL_MFN;
> +        void *hcall_page = alloc_xenheap_page();
> +        if ( !hcall_page )
> +            panic("Hyper-V: Failed to allocate hypercall trampoline page");
> +
> +        printk("Hyper-V: Allocated hypercall page @ %p.\n", hcall_page);

This likely wants to be a dprintk, and possibly also print the
physical address of the used page?  And no period at the end of the
sentence IMO.

I think Xen might have used the last page in the physical address
range to prevent HyperV from possibly shattering a superpage in the
second stage translation page-tables if normal RAM was used?

However I don't know whether HyperV will shatter super-pages if a
sub-page of it is used to contain the hypercall page (I don't think it
should?)

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Apr 28 10:33:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 10:33:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.970426.1359121 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9Lo4-0000SN-LY; Mon, 28 Apr 2025 10:33:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 970426.1359121; Mon, 28 Apr 2025 10:33:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9Lo4-0000SG-Ic; Mon, 28 Apr 2025 10:33:48 +0000
Received: by outflank-mailman (input) for mailman id 970426;
 Mon, 28 Apr 2025 10:33: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=A+1Z=XO=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u9Lo3-0000SA-4z
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 10:33:47 +0000
Received: from NAM02-BN1-obe.outbound.protection.outlook.com
 (mail-bn1nam02on2062d.outbound.protection.outlook.com
 [2a01:111:f403:2407::62d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4266d230-241c-11f0-9eb4-5ba50f476ded;
 Mon, 28 Apr 2025 12:33:44 +0200 (CEST)
Received: from DSZP220CA0006.NAMP220.PROD.OUTLOOK.COM (2603:10b6:5:280::14) by
 LV8PR12MB9643.namprd12.prod.outlook.com (2603:10b6:408:297::11) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.31; Mon, 28 Apr
 2025 10:33:41 +0000
Received: from DS2PEPF00003441.namprd04.prod.outlook.com
 (2603:10b6:5:280:cafe::96) by DSZP220CA0006.outlook.office365.com
 (2603:10b6:5:280::14) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.41 via Frontend Transport; Mon,
 28 Apr 2025 10:33:41 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 DS2PEPF00003441.mail.protection.outlook.com (10.167.17.68) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8678.33 via Frontend Transport; Mon, 28 Apr 2025 10:33:41 +0000
Received: from localhost (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; Mon, 28 Apr
 2025 05:33:39 -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: 4266d230-241c-11f0-9eb4-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=T9DCKZvAemCNhXa3RvOPKErxkGm0GM/9fmrE9CGCg2H763xzxQjbBuZSdrkz9F1O1K1vsRhETc1leKEEtn7bjoZNGmR6eUL44biVCyqYHBOSFvwhycTWdvPcEvKw1ubRhhoEkiBmgFsc9EGghi3KsX8/LCG5+FqX3ZFe5T+GZPOhTGGjh1nK2Cq9d3X5aAd9uf1HO9vEuM9zBD87SIHH/xbwjFS5vohWg0IP2QkbKWhMVrj51ArDQ5OGL2z3ZCDGxEWD2dO0toTei3J5djIbCr3jElNcSLFeF6VJ3Bb/fswFMfQyMVT/dJGP8AxCxRqULaYqkstMlxna8iti5Eb3ug==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=eIsKUkfbKSTxHHoBW0hOVaLIBXvHJnqewMVM0szoZic=;
 b=erJlmTnq2aWlzTweW5rPcwVgdMv1xRlUMus43oMqD91iEnW7921gadxslvrDuykFwv9H4ZklzhCWap0yy6colcxZGhLPT3Z5CJ0ALJ8Zs81mDycW8dsA5PbAnGBhlKblhwgGrgbuls+aizFT2hiFqGvt/J0v/qNNGOc4R4LU/UoQ+k4JVZqRzdDumC1kdqae17MmRHBn3IACcrfwxhnJxi9cBPVI309gKH9t4U8GpV/dzR+/59RamoFbmam2eSWTgqx17MHa+AmUi483tyeNiZ4R6O4MlWyntoE1F685bzYfH5hILWiV5pPvyDwL00/blTUUtcsHIaAUWqfYKIS09A==
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=eIsKUkfbKSTxHHoBW0hOVaLIBXvHJnqewMVM0szoZic=;
 b=JjLb5xC2ElzdqvtZkYruxtfW8wCDw+8zzqUCep2+mOG7JSFWJ63V4Git+hsFWWVF8GFBM0PCSNRKnWUemqGg0HyxaeHTglAq+bTN9sjZLLJqwPK1b4JPV7U9QHO+WzCJsYUJDs2M+DXf0ZvNdESPrtcgNkO8R7ZsACj0g+Au94o=
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
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Mon, 28 Apr 2025 11:33:38 +0100
Message-ID: <D9I7CYQG59BZ.2GZ9CJ27Z7KX7@amd.com>
CC: <jason.andryuk@amd.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>
Subject: Re: [RFC 04/38] x86/hyperlaunch: convert vcpu0 creation to domain
 builder
From: Alejandro Vallejo <agarciav@amd.com>
To: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	<xen-devel@lists.xenproject.org>
X-Mailer: aerc 0.20.1
References: <20250419220820.4234-1-dpsmith@apertussolutions.com>
 <20250419220820.4234-5-dpsmith@apertussolutions.com>
 <D9FTMDQ501TU.1H73IHNYGWKZH@amd.com>
 <9cad677f-cfcd-4eec-b824-01d281cb7076@apertussolutions.com>
In-Reply-To: <9cad677f-cfcd-4eec-b824-01d281cb7076@apertussolutions.com>
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: DS2PEPF00003441:EE_|LV8PR12MB9643:EE_
X-MS-Office365-Filtering-Correlation-Id: f5be1516-ba9a-416d-c2a8-08dd864024fd
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?NXpEb3dia3ArR2o2a2tiSGVkaVVFc1dsMUd5ZFAyL3RTZEMrN1NvYTFrQkps?=
 =?utf-8?B?UlhOZ3dpZ1hZbXlySFhyQTJGSE81d3BPM283WEFySWR5bDJlTSs3UCs1REVv?=
 =?utf-8?B?cHFIUmd3KzVBQzRtOFc0UGZIMGtTeGlsWnhYUFZBeVNDZ3UyUzhzcDQybXNF?=
 =?utf-8?B?QTRkbzBWdkx0cVVoNXg3ek9vdGFRWTM0WnN6RFpIQXFSbVZmREVEb1Bqd0dT?=
 =?utf-8?B?aSt3eDc1TlBtUlVaSXdXQlptWERyS09sN0FDS3JRN1JlNkI4UmRaRk9oKzFs?=
 =?utf-8?B?K2crZDI4ckRHVEM2a2xmdzF4bWkyVEp2OVZraW1ldFp1TWs5WWhBY2d1WWxJ?=
 =?utf-8?B?NitJZnZPc09YRkNoT0VPaXZPMXJic3FaN2pJT2d4Y0ZDMCtGb09wdW80cXl4?=
 =?utf-8?B?RlZVeWJjejNHM3h6cHhBck9KRGRoM0g0Z2JvNVRQY2NOY3dwdzhScnNSM0FD?=
 =?utf-8?B?ZEpFeVJQNEExaW81SEVmTkY4QSs3SzUvTDJrYXd0SUxoUndCTFMxU1M2WmJC?=
 =?utf-8?B?QWd2bzZvVlRUeTdtUENER1VpWXI1RTBuYjA0UW1HU2RXbU9wOTNXVElvclVS?=
 =?utf-8?B?SVJBTFUrSXE2a28zYU1tcUNlbm0rdW5YVGk5SWJGMlN5aUdhL3pkWWQyby83?=
 =?utf-8?B?aU5sbFNsaEhvelcwVVg1ODdBMEFhSVZhek9UNWxGeDQ4WXdDc05JRHJqZWFn?=
 =?utf-8?B?UGdZL1ovNTVuakV1eWxyUS80Q2NNSVhiTTlmemE2NlQxZFBqdWpwTzZRWWxN?=
 =?utf-8?B?ZklJeE54dFgrWGd1Sk8zbEVQNE1vS1o1WWk5aUJ4U3kwbGt2cFhXeFRLNE1E?=
 =?utf-8?B?aXl2eEI4VVRmMXh6VmFWNk9uMXA4OGd4WWtub21iNGExSE9UTk5hUjV2ZlpP?=
 =?utf-8?B?R2pxK0UwVHVXL0QwSHJEY1dFb3lYdXA0MVkvM25tL2JCUFdrNDErWXFIWW5m?=
 =?utf-8?B?RTZuQk5sWmVQWmY1dFBBSnM1cHZVd09QaW1qQWdYb0g3RjlZWlMvb2lGNWs2?=
 =?utf-8?B?cXRhM2R6NC9PL25PN1Z3RlNLa01IZnhZbXFvWWltdU1ERDZUdmVObmxMcFFV?=
 =?utf-8?B?L1R0M3p6N2laZjNwdnhjTFRaVXlHR0dkRDR1NjJUS0lldFZ5eVh5NDEvM3JW?=
 =?utf-8?B?MUFNWEZsZWxHNm5vaU9MTXhmaUwyaVBiLzZNakw4SHdETDV1U0VUbXNnQmE5?=
 =?utf-8?B?djludWFXLzZ1K1BtODVBdCtHZmpVSnJHQ3QvWEl4YzVVSFFIMldmdXpQODlD?=
 =?utf-8?B?VkpOVTFnUXIxUGZmSk9JQW9rRzE4RWQ2OTdzbjFoTzhINnZDdURxbUpYcmZO?=
 =?utf-8?B?NzFrbGNYQVNQOVUrb21rbXNjM2ltUE9QVTRyZzZxZC9ieDhMbVg1QTJqeFFq?=
 =?utf-8?B?NE5iNW9OVGVlb043VFM1OUpCZVptNFl4cG1WcEFXMVhmSC8wVWVNbkpIblpp?=
 =?utf-8?B?WDk5ejVHRTdnRjNpYVNKdlI0a1VTaGd1d2ZEZ2pxaFNJYXU4NVZsYWp6Y0py?=
 =?utf-8?B?Qk81Q1NaR0FYR3dPcTVMVTE3anQrM3ZnUGsyVTJUMlllNDhFcVpXVUFKb0h0?=
 =?utf-8?B?WlJ5TkNCbDY5dVJhTUVzTDMzSVREc25SbnYzK21mZm8zTEl5RXJndVhYVU9l?=
 =?utf-8?B?R1Z4VGphZVZSMzVWbnY5TEdRYmpDNmtkcTN2d0pIUFN1RkRvNURLQlNSVlN2?=
 =?utf-8?B?LzYxSGg3TXF6V05qU3BnbmNlYzJOOXJMY1d1QjZUbXBXOVBMWThBRkY3MGl3?=
 =?utf-8?B?MTMzOHozckk0OFdZbEg1Mm9RcERxWUtLOW9lT1M3WnJnUDZCL0thQUVidFlB?=
 =?utf-8?B?RnZXRDE0UHN1V2RtUzM2UlF6MlliL3FoYXVKcEZ3bTBrQTBUVFk1aVJ3Vlk4?=
 =?utf-8?B?K0dJNlV1UUpsWU5nSnZZZGNMMlBoVUNaeUhEWnNQVFdWUkkxQVRNN2ZqWkRr?=
 =?utf-8?B?MVU2VHh0THUzblRRekdEUE81OXptKzc1cWVSWWt3VmdqTUxiaGVIN2M2Vysy?=
 =?utf-8?B?bVR0MWo5ZkFpRTYzWXMyRER4MEx5ZmhWcXlSakJwak5aZ054cWQrR2hkZEwr?=
 =?utf-8?Q?X9qNVa?=
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)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Apr 2025 10:33:41.2220
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: f5be1516-ba9a-416d-c2a8-08dd864024fd
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:
	DS2PEPF00003441.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR12MB9643

On Fri Apr 25, 2025 at 11:04 PM BST, Daniel P. Smith wrote:
> On 4/25/25 11:22, Alejandro Vallejo wrote:
>> On Sat Apr 19, 2025 at 11:07 PM BST, Daniel P. Smith wrote:
>>> Convert alloc_dom0_vcpu0() to dom0_set_affinity(), making it only set u=
p the
>>> node affinity based on command line parameters passed. At the same time=
,
>>> introduce alloc_dom_vcpu0() as the replacement for alloc_dom0_vcpu(). T=
hen have
>>> alloc_dom_vcpu0() call dom0_set_affinity() when the boot domain is the =
control
>>> domain, otherwise set the affinity to auto.
>>>
>>> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
>>> ---
>>>   xen/arch/x86/dom0_build.c                 |  4 +---
>>>   xen/arch/x86/domain-builder/domain.c      | 11 +++++++++++
>>>   xen/arch/x86/include/asm/dom0_build.h     |  2 ++
>>>   xen/arch/x86/include/asm/domain-builder.h |  1 +
>>>   xen/arch/x86/setup.c                      |  5 +++--
>>>   5 files changed, 18 insertions(+), 5 deletions(-)
>>>
>>> diff --git a/xen/arch/x86/domain-builder/domain.c b/xen/arch/x86/domain=
-builder/domain.c
>>> index f2277b9e3cf3..619d36ea0b87 100644
>>> --- a/xen/arch/x86/domain-builder/domain.c
>>> +++ b/xen/arch/x86/domain-builder/domain.c
>>> @@ -9,6 +9,7 @@
>>>   #include <xen/sched.h>
>>>  =20
>>>   #include <asm/bootinfo.h>
>>> +#include <asm/dom0_build.h>
>>>  =20
>>>   unsigned int __init dom_max_vcpus(struct boot_domain *bd)
>>>   {
>>> @@ -27,6 +28,16 @@ unsigned int __init dom_max_vcpus(struct boot_domain=
 *bd)
>>>       return bd->max_vcpus;
>>>   }
>>>  =20
>>> +struct vcpu *__init alloc_dom_vcpu0(struct boot_domain *bd)
>>> +{
>>> +    if ( bd->capabilities & BUILD_CAPS_CONTROL )
>>> +        dom0_set_affinity(bd->d);
>>=20
>> Similar as before, this probably wants to be DOMAIN_CAPS_HARDWARE?
>>=20
>> I'll adjust while rebasing.
>
> Does it?
>
> v/r,
> dps

The situation is similar later on when choosing a CPU policy. Why
mustn't the hardware domain get the same treatment as the control
domains? Using (DOMAIN_CAPS_CONTROL | DOMAIN_CAPS_HARDWARE) at the
very least seems warranted.

All these cases single-out dom0 when dom0 is both a control and a
hardware domain, but as Jason mentioned how is Xen meant to deal with
dom0_X arguments when dom0 is disaggregated? Either it applies to all
its constituents (with the plausible exception of a xenstore domain), or
just one (the hardware domain), or none. Only applying to control
domains and not the hardware domain doesn't look right (to me).

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Mon Apr 28 10:41:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 10:41:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.970444.1359131 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9LvN-0002Gu-GU; Mon, 28 Apr 2025 10:41:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 970444.1359131; Mon, 28 Apr 2025 10:41: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 1u9LvN-0002Gn-Cs; Mon, 28 Apr 2025 10:41:21 +0000
Received: by outflank-mailman (input) for mailman id 970444;
 Mon, 28 Apr 2025 10:41: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=A+1Z=XO=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u9LvL-0002Es-L8
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 10:41:19 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on20624.outbound.protection.outlook.com
 [2a01:111:f403:2418::624])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 50df160b-241d-11f0-9eb4-5ba50f476ded;
 Mon, 28 Apr 2025 12:41:18 +0200 (CEST)
Received: from MN2PR11CA0001.namprd11.prod.outlook.com (2603:10b6:208:23b::6)
 by CH3PR12MB9170.namprd12.prod.outlook.com (2603:10b6:610:199::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.30; Mon, 28 Apr
 2025 10:41:13 +0000
Received: from BN1PEPF00004680.namprd03.prod.outlook.com
 (2603:10b6:208:23b:cafe::6b) by MN2PR11CA0001.outlook.office365.com
 (2603:10b6:208:23b::6) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.41 via Frontend Transport; Mon,
 28 Apr 2025 10:41:13 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BN1PEPF00004680.mail.protection.outlook.com (10.167.243.85) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8678.33 via Frontend Transport; Mon, 28 Apr 2025 10:41:13 +0000
Received: from localhost (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; Mon, 28 Apr
 2025 05:41: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: 50df160b-241d-11f0-9eb4-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=J7Z06qoHn0T/of+I5DVqQrwC+j1AV/8QAK4Lymscf40Xnpr+te9APShmYZ8X+AHNBhEAW9SSsTN0VlIlNSNga1/Z9p4H1fKQnLtkj2ow6eMEFBQrS6OeqVpSZRC84XFWHetTlP5Tb72LKKbMI61cH3yZpCFXVUuZtEZPDvYH22gwj0MzS9VPvbGkrwHHrZK+4tC1iWYO3Zdnrq5f7ohDI4Ii1+Xz8Ranc0dil+I5s51F2NBv8XqW8+worqC/XzX+LvZTRPNNn0TNTPkNnfY96FplN5wi2JHxFwYyRCh4oTFq+iF9uYuhRawyL7yRULzhqv7TY2rjJ6r7H/iph2Zteg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=O3kAo3AB5BRNQwYpw3S9KJQOTJGWIFugK5OLFFCeLtY=;
 b=j7AujUsnShZTd5EItxs0ASsTB+JwP1wYUbx/6/dqwKhtafkOVj4nbKP7bSS6bk/EpDX659OI5NViexbpuE4dPeeLJwa3jWDrIQWTWBMEgvbbmqOUnFY7ZNz/9iZ6c9VleenP7+Lz12Ve9OwU8kDPd+8N2fSdzKqzKCbsVv5zZxK60ZAWCSwSvuBO9ORiNBAjNMW60TuJjjLQ72kaE4MdCjcyqmHw5jzDmjpiIDyFVBjMKF/1eDUYxPrs7ikeYFgLpvi/5HQRAqiqkCsRE5OX+rKUFLQnWHFSSqxsKdgMq9uNVjOXI0eG9g2Cu2Ler2m6V2xgdzSI2dFwhr5WX5vvDw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=ariadne.space 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=O3kAo3AB5BRNQwYpw3S9KJQOTJGWIFugK5OLFFCeLtY=;
 b=vZu1PjY/1cjW+dIZn26/bihwQdfJzedHxMPxW3p8CMLSjrdOmfgubIQcaiDsyPQCIjZ5c0npy8W9LZ6HvNBJY6dsidkXPlHZXzHNv1Ql5RPp/XOzyR7lMAzMzclatGAlFd84vtdxFSoP7LiBoFkkX3Zi6f16x6d+h2hB9Y1s52I=
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
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Mon, 28 Apr 2025 11:41:09 +0100
Message-ID: <D9I7IPTW9O0K.2OCSEF8GXP3K7@amd.com>
From: Alejandro Vallejo <agarciav@amd.com>
To: Ariadne Conill <ariadne@ariadne.space>, <xen-devel@lists.xenproject.org>
CC: Paul Durrant <paul@xen.org>, Jan Beulich <jbeulich@suse.com>, Andrew
 Cooper <andrew.cooper3@citrix.com>, =?utf-8?q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>, "Alexander M . Merritt" <alexander@edera.dev>
Subject: Re: [PATCH v2] x86/hyperv: use dynamically allocated page for
 hypercalls
X-Mailer: aerc 0.20.1
References: <20250425234331.65875-1-ariadne@ariadne.space>
In-Reply-To: <20250425234331.65875-1-ariadne@ariadne.space>
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: BN1PEPF00004680:EE_|CH3PR12MB9170:EE_
X-MS-Office365-Filtering-Correlation-Id: d83b120d-b799-4cbe-d979-08dd8641326b
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|376014|1800799024|82310400026|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?ZHFZNWlaYzZVaEszNlZtaHBQZUp4K3BuYWkwVldaL0lsMzhVL3QybVYwVmk2?=
 =?utf-8?B?U2J1bmJpUG12VHlHNU02V2tPdkJLWXdKckNqQUV2QjVVamk1cFpaWERjeW9K?=
 =?utf-8?B?U3FrRmpqbzI4bWJEZ2hlV2d1b0xNQlRPaHpHb25zZnZ5TFZFdzVUcEM3TXJ6?=
 =?utf-8?B?dDlMTVdORHNoRlVLRWlBZ2JxZi95L2U0Q3hDRW10VElvYnZ4aVczN2V0aXFX?=
 =?utf-8?B?K3dLSW1aaG4xSVVBY2lrRjkyOGlFVFFHT3paeHlFSThXeEEzU1lIcTl4eFZy?=
 =?utf-8?B?cVdJZUJFZ2REejJmdktic3pHSDVSR0RPWG9oWFlkMjlFZmd6c09hdnp6TUw1?=
 =?utf-8?B?c3ZSY0Y5aWVqc3Uvdng2ZFdBN2JidEV6R0M5aU1lQlhWVTB2b0NSNzVsMDJq?=
 =?utf-8?B?MkUyMUk2YmtxT093MG0wYkFLTW1ROVhFUExoUVFYbjJKRzNFQkUycmNrYUpZ?=
 =?utf-8?B?S1NkbGRFT3U4ckwza1BYR3FoN0tMUGFsaGY5c0pyZDMvUmd3Uk0wMmtUaXZh?=
 =?utf-8?B?VUlKK3B6dmJZbkdUUXZSZTZPUTREOUVGbC9rMk5Bb1pVMERTSHZyempqMVhT?=
 =?utf-8?B?QjJJZ3JJamhxYjFJVWRvVWRiNWNwblRRaXlvMkg0eHc5dThtNGhpSEJ1UzA4?=
 =?utf-8?B?YVYwaFZVZy9JdEtROTB6NGphS2ROWUoxQ09SbFlwMXZtTjZ2SFlqWDViWFVV?=
 =?utf-8?B?SGpqSU9WQllBWElwQVdzYnRrOUc5S3JUbzFFaVBvc1lhcWtMZzJnbjlPTkpY?=
 =?utf-8?B?c1J0dGlab2JqUXR5eUd1cmJNMnVlN1FpT1R4dmQwandJaEl3RGlSTHRIQU5B?=
 =?utf-8?B?ajZqQU1nMHY5dWorM3p5ZXREZGZtYUp4TlNkNzJZVjJhOGNGMXRGQXIxL2NU?=
 =?utf-8?B?dEZKZU1ITk10WmE4VEVVd21Jb2IyUFUxVExWeU56RE5DSG5pTUZ1Sm1CYW5h?=
 =?utf-8?B?b2FzSnRFT083UitjK2kvWStDU3htYVlGVk9vRXE4UDJRV2sybVpXNHdNQ1lr?=
 =?utf-8?B?MDVqNit0NnhVV1N3ZytaTzZvald2YWRFNSs2ZFZueENxZTFJb1RFOWszeWhk?=
 =?utf-8?B?Z0taNUlKZXpQVWFFY1h2VVVaMCtVcWxjdEtmRHBkT1ZLeDEvaFY1U0c1WWgw?=
 =?utf-8?B?N1JVU1NTZjlxMUpaOGlKblZxUHMzWmFGc2c5RmNXZGxaY2VzYnNrSDFwT09R?=
 =?utf-8?B?UlFzeHBEYWNsUGZTcFo5QTBTMjFxLzErUmVLRVB3Y1krMWlmKzZDYnpXbWxl?=
 =?utf-8?B?dWNKWVN4QWx5TysrT296dXV2QzBNWndoTGxiTFowbWNzY3VVVnJVenBhVURZ?=
 =?utf-8?B?bHJudDBTMmx1TGJWTDJZL3ErVEZSVENQRlZwTmNoeDJoNU1ZUytHTjBMNXpo?=
 =?utf-8?B?eVVSS0xwMlhsMnBBTWdaRDRpV21zeTJjYVJzUzd3b2ozcUZ4MVNRNnVyWmpS?=
 =?utf-8?B?VndZYVA2MXF1RHBNOTdMOGpxelNtdTdvQ1JHTENJWlZCNm9TMGFkSTZSclZY?=
 =?utf-8?B?eWtBTWI1ZkhtYVQvcUFnQTNNcDRhV1dPZ0lVaUxILys5bU0xdkFZQjBkTWI1?=
 =?utf-8?B?QXZJR3RHTFR1Y1hPVWJvRGF6WVY1aUVPNGkrRlJRNldhMWRnWUhoLzk2dGxL?=
 =?utf-8?B?UVRsNXdQRTQzRDNzYlBGbjc1bXh6ZmtyMzFkZmRpTjFsOG5oaU5ZZXpscExU?=
 =?utf-8?B?RUF5Q1I2SE9hWDBWbEo0a2NGV3RmeGNCODE1cVBZMHMwa1BVTDkrVmtDMFhH?=
 =?utf-8?B?VVcrNEMyRnFqd08rcWRRbXhXbXZoRXpTWC9ZNGpnSExCQ3NsTHA3U0JOdTVH?=
 =?utf-8?B?azczQWpBZmQyZG5kdUdzZmFvSTFoSHVKUjUzTFFjZGxnaGxZbHRkcVZJdHhz?=
 =?utf-8?B?VzBqRG9QcDJkN0Q5WVIzUkJRc2k0YkxjMHZqSmJmbWNkWlphWDlWc1FrUXMz?=
 =?utf-8?B?eThmK0tVdnZneTFRR3U0V0xlUzczd1U2L1lDcVZ3Zkp6Sjh1L1phQVMwbFV3?=
 =?utf-8?B?YUpFb281eVZxNlVZbUVXR2ZzcmE1Nitkc1N6REswNXVLemRONkVTMEpSUGJv?=
 =?utf-8?Q?mZOetO?=
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)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Apr 2025 10:41:13.2949
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: d83b120d-b799-4cbe-d979-08dd8641326b
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:
	BN1PEPF00004680.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB9170

On Sat Apr 26, 2025 at 12:43 AM BST, Ariadne Conill wrote:
> Previously Xen placed the hypercall page at the highest possible MFN,
> but this caused problems on systems where there is more than 36 bits
> of physical address space.
>
> In general, it also seems unreliable to assume that the highest possible
> MFN is not already reserved for some other purpose.

Thanks for sending this!

Just one more thing on top of what Jan mentioned.

>
> Changes from v1:
> - Continue to use fixmap infrastructure
> - Use panic in Hyper-V setup() function instead of returning -ENOMEM
>   on hypercall page allocation failure
>
> Fixes: 620fc734f854 ("x86/hyperv: setup hypercall page")
> Cc: Alejandro Vallejo <agarciav@amd.com>
> Cc: Alexander M. Merritt <alexander@edera.dev>
> Signed-off-by: Ariadne Conill <ariadne@ariadne.space>
> ---
>  xen/arch/x86/guest/hyperv/hyperv.c      | 17 +++++++----------
>  xen/arch/x86/include/asm/guest/hyperv.h |  3 ---
>  2 files changed, 7 insertions(+), 13 deletions(-)
>
> diff --git a/xen/arch/x86/guest/hyperv/hyperv.c b/xen/arch/x86/guest/hype=
rv/hyperv.c
> index 6989af38f1..0305374a06 100644
> --- a/xen/arch/x86/guest/hyperv/hyperv.c
> +++ b/xen/arch/x86/guest/hyperv/hyperv.c
> @@ -98,7 +98,13 @@ static void __init setup_hypercall_page(void)
>      rdmsrl(HV_X64_MSR_HYPERCALL, hypercall_msr.as_uint64);
>      if ( !hypercall_msr.enable )
>      {
> -        mfn =3D HV_HCALL_MFN;
> +        void *hcall_page =3D alloc_xenheap_page();
> +        if ( !hcall_page )
> +            panic("Hyper-V: Failed to allocate hypercall trampoline page=
");
> +
> +        printk("Hyper-V: Allocated hypercall page @ %p.\n", hcall_page);

We should be printing the mfn (or maddr) rather than the virtual address
out of the allocator, IMO. Especially since we need to remap it anyway.

With that:

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

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Mon Apr 28 10:43:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 10:43:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.970455.1359140 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9Lxo-0002pO-RI; Mon, 28 Apr 2025 10:43:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 970455.1359140; Mon, 28 Apr 2025 10:43: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 1u9Lxo-0002pH-Ok; Mon, 28 Apr 2025 10:43:52 +0000
Received: by outflank-mailman (input) for mailman id 970455;
 Mon, 28 Apr 2025 10:43: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=eVdf=XO=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1u9Lxn-0002p7-LV
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 10:43:51 +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 abc99375-241d-11f0-9eb4-5ba50f476ded;
 Mon, 28 Apr 2025 12:43:50 +0200 (CEST)
Received: by mail-ej1-x62d.google.com with SMTP id
 a640c23a62f3a-ac339f53df9so885044066b.1
 for <xen-devel@lists.xenproject.org>; Mon, 28 Apr 2025 03:43:50 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-64-225.play-internet.pl.
 [109.243.64.225]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-ace6ed701eesm612694366b.140.2025.04.28.03.43.48
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 28 Apr 2025 03:43: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: abc99375-241d-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1745837030; x=1746441830; darn=lists.xenproject.org;
        h=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=dKYHVlsYAn/u6PbxnH1eTgKymTUjTDlYUpThEPg7TZI=;
        b=EyQQ8LYu4qOJe0HRe4aVIDK52zSSU0x2vaA45CvleOV2pjIEr4k8baVZ1ocGyYcXzU
         UpaFRPQS2fGYGY0qc326FubcBeVoi9VIrCbHlDrZkQB4wwtJTD31h/uvU7Nce1Zu2wlH
         xl+rU0nO2W0iFndSOk7/uOvXHUKGALTopBw7tcCAg7GtnnnPdpYANFewRJwg23l2Qppm
         /fxUAIud+8ynjsPhUR00+r0N2q601lOdZUWw2uwb0SmZ+FNrzv+HybV3v3B/uj/yReIa
         HvAAecM6KGvkvLajDdL5sorSmWMPFFtIpwxIS8gqzlC3jKTKP2x368u8bXPG0IMLLhGs
         IwUg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745837030; x=1746441830;
        h=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=dKYHVlsYAn/u6PbxnH1eTgKymTUjTDlYUpThEPg7TZI=;
        b=AwmuEx3zh72D0IP3sLFsw2OvNok+rVGYC/HAp7Zj8P/haVikSpZbzEnDQ7VtICzjOl
         ivI5plZKOkBx5oLNzy1OqfApK2e1YRrScIXbD9WRWDu8p2kW2vDqo6PZgsXsUUxChHpH
         WDioBbPQSlwXl5g7xvBOFG+jZHy4w9JsbMYO0TU8elGhb5lJO1Qr5Zpapl/iZPDM5rha
         7dDugKiyGUWfHfM8qLLv0tJjVyChMCAIrrzj3gOqdZF6HJDlGJyVGQxNB5KiqmoQe5rW
         rXGtArJdedcWEDdgXh0CWPm3gi8ij8pZSD8Dt8IzMBpj/Q4pfNqXNQ/AXwmU8b+tF+YS
         O8Sw==
X-Forwarded-Encrypted: i=1; AJvYcCVkqlSbg39Hd3KeEsp6xquvyP2Pxgu3jDcmmwCKcwZHgyZSAlSQxHIhs1qy05kUMNW63bhDZIZpH8k=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxsfYgmLWCigOJWsiT8suXQT+bWwajQX9g2TMCAHj1dcmZbetSU
	AHrT35/FS9tZ5S74eaduX1MpPmBVzKC6/8Nxavqp7yglto/NI4x5
X-Gm-Gg: ASbGncvcaq6bCqH2OQ+SeX7nZdXU5e6Jw9fv5PlABas+wf3r1YrchsgUgOMOBtbzQDg
	qZTwGxgkuUr6l/KXegklR0g/EjSDo3kZrsV++Zx04THFr0Xo5EIVx1hmgsiOShZxelKN7XW2aU5
	bkYAHhHHEsV6oqmkCwRL1wnLYKHn/Bc/pTp2cJFtVDnuf+Tc6NwL7P8lBmwNsYkVB4Kq/qX7saA
	6s4BT4G3zgPIjmRAAsPMLgU4Uy4rmDKO1shoUKsGorhAdDiBCLaWi0tN5L0J2woiX98xLYQw62m
	9uIo9qXiv3XuYi7IVQ2QnUuw4eHeKYJEuNFOE36LlT61p39d8KEwBn3aVuEjHVP1M/dIyq4wtX+
	pXyFJD6QYhvHQz6tf
X-Google-Smtp-Source: AGHT+IFdmSMsvWaGqIZWr3IH8leNia5KI+pwv58bsgcQETH8KRBI5DglKBbuK/TIPztrMgqGp+H6mQ==
X-Received: by 2002:a17:907:86ac:b0:abf:19ac:771 with SMTP id a640c23a62f3a-ace848c03c8mr748130566b.2.1745837029392;
        Mon, 28 Apr 2025 03:43:49 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------0vhNBwspiOB0Ac0cD0ngl8cE"
Message-ID: <e5884aac-1b55-44c8-aa51-c275f6eed828@gmail.com>
Date: Mon, 28 Apr 2025 12:43:47 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 06/14] xen/riscv: riscv_of_processor_hartid()
 implementation
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1744126720.git.oleksii.kurochko@gmail.com>
 <ab592d50ad161ffed3950bdf58ade49ae90a3c0e.1744126720.git.oleksii.kurochko@gmail.com>
 <65f5952a-8d2a-499c-bd66-53e9e2fbfa9c@suse.com>
 <d10323b7-d95d-4b96-9bf1-7ae8edda153e@gmail.com>
 <859d0c87-dc90-44c2-ab30-5164eec0705c@suse.com>
 <83fc1566-ad4f-489d-a432-01ec638cbc21@gmail.com>
 <39f0a475-6eea-4c08-abb1-f3de25c5a549@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <39f0a475-6eea-4c08-abb1-f3de25c5a549@suse.com>

This is a multi-part message in MIME format.
--------------0vhNBwspiOB0Ac0cD0ngl8cE
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 4/28/25 8:31 AM, Jan Beulich wrote:
> On 25.04.2025 19:07, Oleksii Kurochko wrote:
>> On 4/15/25 3:45 PM, Jan Beulich wrote:
>>> On 15.04.2025 15:39, Oleksii Kurochko wrote:
>>>> On 4/10/25 5:53 PM, Jan Beulich wrote:
>>>>> On 08.04.2025 17:57, Oleksii Kurochko wrote:
>>>>>> +{
>>>>>> +    const __be32 *cell;
>>>>>> +    int ac;
>>>>>> +    uint32_t len;
>>>>>> +
>>>>>> +    ac = dt_n_addr_cells(cpun);
>>>>>> +    cell = dt_get_property(cpun, "reg", &len);
>>>>>> +    if ( !cell || !ac || ((sizeof(*cell) * ac * (thread + 1)) > len) )
>>>>>> +        return ~0ULL;
>>>>> I'm sorry for my lack of DT knowledge, but what's "thread" representing here?
>>>>> You only pass in 0 below, so it's unclear whether it's what one might expect
>>>>> (the thread number on a multi-threaded core).
>>>> Based on the DT specification alone, the|`reg`| value could refer to either a CPU or a thread ID:
>>>> ```
>>>> The value of reg is a <prop-encoded-array> that defines a unique CPU/thread id for
>>>> the CPU/threads represented by the CPU node. If a CPU supports more than one thread
>>>> (i.e. multiple streams of execution) the reg prop-erty is an array with 1 element
>>>> per thread.
>>>> ```
>>>>
>>>> My understanding is that the term/thread/ was used in the Linux kernel to cover both
>>>> cases.
>>>> When SMT isn't supported, the CPU can be considered to have a single thread.
>>>> For example, RISC-V uses the term/hardware thread/ to describe a hart (i.e., a CPU).
> Note the terminology ("CPU") you used here.
>
>>>> Interestingly, the Linux kernel always uses|thread = 0|.
>>>>
>>>> We could potentially drop this ambiguity and introduce an|ASSERT()| to check that
>>>> the|`reg`| property contains only one entry, representing the HART (CPU) ID:
>>>> ```
>>>>      Software can determine the number of threads by dividing the size of reg by the parent
>>>>      node’s #address-cells. If `|reg`| has more than one entry, it would simply SMT support
>>>>      is required.
>>>> ```
>>>>
>>>> Does that approach make sense, or should we stick with the current implementation?
>>> If extra enabling is required to make multi-thread CPUs work, then panic()ing
>>> (not so much ASSERT()ing) may make sense, for the time being. Better would be
>>> if we could use all threads in a system right away.
>> Actually, this function is ready to be used for multi-thread CPUs. A caller can request hardware id
>> by passing `thread` argument (`thread` -> the local thread number to get the hardware ID for).
>> So by calling:
>>    dt_get_cpu_hwid(cpu0, 0) -> it will return hardware id of thread 0 of cpu0
>>    dt_get_cpu_hwid(cpu0, 1) -> it will return hardware id of thread 1 of cpu0
>>    ...
>>
>> In our case we assume that SMP isn't supported so that is why it is used only dt_get_cpu_hwid(cpu0, 0).
>>
>> If one day, SMP will be enabled then it will be needed to change a callers of dt_get_cpu_hwid().
> I assume you meant SMT in both places you wrote SMP?

Yes, it should be SMT.

>   But my main point here is:
> If enumeration gives you "thread <N> of core <M>" (using x86 terminology), you
> need to be quite careful with what you call "CPU". Things need to be entirely
> unambiguous, taking into account what internally in (common code) Xen we call a
> "CPU". You certainly may call "CPU" what is a collection of threads / harts,
> but you then need to clarify this in a prominent comment somewhere, and you
> need to be entirely consistent throughout the RISC-V sub-tree.

╭────────────────────╮
│        CPU          │  ← 1 physical processor (chip)
│ ┌───────┬─────────┐ │
│ │ Core 0│ Core 1  │ │  ← 2 cores (for example)
│ │ ┌──┬──┐ ┌──┬──┐ │ │
│ │Thr0 Thr1 Thr0 Thr1│ ← 2 threads on each core (SMT)
│ └───────┴─────────┘ │
╰────────────────────╯
I want to double check what Xen call a "CPU". I thought that Xen uses word
CPU to describe a core, right?

What you wrote above "thread <N> of core <M> (using x86 terminology)" is also correlated
with RISC-V terminology:
   A component is termed a core if it contains an independent instruction fetch unit.
   A RISC-V-compatible core might support multiple RISC-V-compatible hardware threads,
   or harts, through multithreading

I checked RISC-V's DTS binding and it seems it is a little bit contradictory to DTS spec,
where it is mentioned that reg property is used to describe how many threads a cpu  has
when SMP is used, but in RISC-V's dts binding they are describing a hardware execution
context:
   This document uses some terminology common to the RISC-V community
   that is not widely used, the definitions of which are listed here:

   hart: A hardware execution context, which contains all the state
   mandated by the RISC-V ISA: a PC and some registers.  This
   terminology is designed to disambiguate software's view of execution
   contexts from any particular microarchitectural implementation
   strategy.  For example, an Intel laptop containing one socket with
   two cores, each of which has two hyperthreads, could be described as
   having four harts.

So in RISC-V's DTS binding they are describing only hardware threads what makes things more
confusing in terms what kind terminology from Xen point of view should be used.

And based on what is written in RISC-V's dts binding:
  For example, an Intel laptop containing one socket with
  two cores, each of which has two hyperthreads, could be described as
  having four harts.
It would be more logical to drop 'thread' argument of riscv_of_get_cpu_hwid(const struct dt_device_node *cpun).
And then the question is what to do with the name of variable cpun? As it could be still confusing. Or, at least,
I can add the comment that CPUn in terms of RISC-V means hart (hardware thread). And then will it be needed to
add such comment for each usage of word "CPU"?

~ Oleksii



--------------0vhNBwspiOB0Ac0cD0ngl8cE
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 4/28/25 8:31 AM, Jan Beulich wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:39f0a475-6eea-4c08-abb1-f3de25c5a549@suse.com">
      <pre wrap="" class="moz-quote-pre">On 25.04.2025 19:07, Oleksii Kurochko wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">
On 4/15/25 3:45 PM, Jan Beulich wrote:
</pre>
        <blockquote type="cite">
          <pre wrap="" class="moz-quote-pre">On 15.04.2025 15:39, Oleksii Kurochko wrote:
</pre>
          <blockquote type="cite">
            <pre wrap="" class="moz-quote-pre">On 4/10/25 5:53 PM, Jan Beulich wrote:
</pre>
            <blockquote type="cite">
              <pre wrap="" class="moz-quote-pre">On 08.04.2025 17:57, Oleksii Kurochko wrote:
</pre>
              <blockquote type="cite">
                <pre wrap="" class="moz-quote-pre">+{
+    const __be32 *cell;
+    int ac;
+    uint32_t len;
+
+    ac = dt_n_addr_cells(cpun);
+    cell = dt_get_property(cpun, "reg", &amp;len);
+    if ( !cell || !ac || ((sizeof(*cell) * ac * (thread + 1)) &gt; len) )
+        return ~0ULL;
</pre>
              </blockquote>
              <pre wrap="" class="moz-quote-pre">I'm sorry for my lack of DT knowledge, but what's "thread" representing here?
You only pass in 0 below, so it's unclear whether it's what one might expect
(the thread number on a multi-threaded core).
</pre>
            </blockquote>
            <pre wrap="" class="moz-quote-pre">Based on the DT specification alone, the|`reg`| value could refer to either a CPU or a thread ID:
```
The value of reg is a &lt;prop-encoded-array&gt; that defines a unique CPU/thread id for
the CPU/threads represented by the CPU node. If a CPU supports more than one thread
(i.e. multiple streams of execution) the reg prop-erty is an array with 1 element
per thread.
```

My understanding is that the term/thread/ was used in the Linux kernel to cover both
cases.
When SMT isn't supported, the CPU can be considered to have a single thread.
For example, RISC-V uses the term/hardware thread/ to describe a hart (i.e., a CPU).
</pre>
          </blockquote>
        </blockquote>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Note the terminology ("CPU") you used here.

</pre>
      <blockquote type="cite">
        <blockquote type="cite">
          <blockquote type="cite">
            <pre wrap="" class="moz-quote-pre">Interestingly, the Linux kernel always uses|thread = 0|.

We could potentially drop this ambiguity and introduce an|ASSERT()| to check that
the|`reg`| property contains only one entry, representing the HART (CPU) ID:
```
    Software can determine the number of threads by dividing the size of reg by the parent
    node’s #address-cells. If `|reg`| has more than one entry, it would simply SMT support
    is required.
```

Does that approach make sense, or should we stick with the current implementation?
</pre>
          </blockquote>
          <pre wrap="" class="moz-quote-pre">If extra enabling is required to make multi-thread CPUs work, then panic()ing
(not so much ASSERT()ing) may make sense, for the time being. Better would be
if we could use all threads in a system right away.
</pre>
        </blockquote>
        <pre wrap="" class="moz-quote-pre">
Actually, this function is ready to be used for multi-thread CPUs. A caller can request hardware id
by passing `thread` argument (`thread` -&gt; the local thread number to get the hardware ID for).
So by calling:
  dt_get_cpu_hwid(cpu0, 0) -&gt; it will return hardware id of thread 0 of cpu0
  dt_get_cpu_hwid(cpu0, 1) -&gt; it will return hardware id of thread 1 of cpu0
  ...

In our case we assume that SMP isn't supported so that is why it is used only dt_get_cpu_hwid(cpu0, 0).

If one day, SMP will be enabled then it will be needed to change a callers of dt_get_cpu_hwid().
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
I assume you meant SMT in both places you wrote SMP?</pre>
    </blockquote>
    <pre>Yes, it should be SMT.
</pre>
    <blockquote type="cite"
      cite="mid:39f0a475-6eea-4c08-abb1-f3de25c5a549@suse.com">
      <pre wrap="" class="moz-quote-pre"> But my main point here is:
If enumeration gives you "thread &lt;N&gt; of core &lt;M&gt;" (using x86 terminology), you
need to be quite careful with what you call "CPU". Things need to be entirely
unambiguous, taking into account what internally in (common code) Xen we call a
"CPU". You certainly may call "CPU" what is a collection of threads / harts,
but you then need to clarify this in a prominent comment somewhere, and you
need to be entirely consistent throughout the RISC-V sub-tree.</pre>
    </blockquote>
    <pre>╭────────────────────╮
│        CPU          │  ← 1 physical processor (chip)
│ ┌───────┬─────────┐ │
│ │ Core 0│ Core 1  │ │  ← 2 cores (for example)
│ │ ┌──┬──┐ ┌──┬──┐ │ │
│ │Thr0 Thr1 Thr0 Thr1│ ← 2 threads on each core (SMT)
│ └───────┴─────────┘ │
╰────────────────────╯
I want to double check what Xen call a "CPU". I thought that Xen uses word
CPU to describe a core, right?

What you wrote above "thread &lt;N&gt; of core &lt;M&gt; (using x86 terminology)" is also correlated
with RISC-V terminology:
  A component is termed a core if it contains an independent instruction fetch unit.
  A RISC-V-compatible core might support multiple RISC-V-compatible hardware threads,
  or harts, through multithreading

I checked RISC-V's DTS binding and it seems it is a little bit contradictory to DTS spec,
where it is mentioned that reg property is used to describe how many threads a cpu  has
when SMP is used, but in RISC-V's dts binding they are describing a hardware execution
context:
  This document uses some terminology common to the RISC-V community
  that is not widely used, the definitions of which are listed here:

  hart: A hardware execution context, which contains all the state
  mandated by the RISC-V ISA: a PC and some registers.  This
  terminology is designed to disambiguate software's view of execution
  contexts from any particular microarchitectural implementation
  strategy.  For example, an Intel laptop containing one socket with
  two cores, each of which has two hyperthreads, could be described as
  having four harts.

So in RISC-V's DTS binding they are describing only hardware threads what makes things more
confusing in terms what kind terminology from Xen point of view should be used.

And based on what is written in RISC-V's dts binding:
 For example, an Intel laptop containing one socket with
 two cores, each of which has two hyperthreads, could be described as
 having four harts.
It would be more logical to drop 'thread' argument of riscv_of_get_cpu_hwid(const struct dt_device_node *cpun).
And then the question is what to do with the name of variable cpun? As it could be still confusing. Or, at least,
I can add the comment that CPUn in terms of RISC-V means hart (hardware thread). And then will it be needed to
add such comment for each usage of word "CPU"?
</pre>
    <pre>
~ Oleksii



</pre>
  </body>
</html>

--------------0vhNBwspiOB0Ac0cD0ngl8cE--


From xen-devel-bounces@lists.xenproject.org Mon Apr 28 10:55:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 10:55:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.970470.1359151 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9M9G-0004jw-RY; Mon, 28 Apr 2025 10:55:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 970470.1359151; Mon, 28 Apr 2025 10:55: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 1u9M9G-0004jp-OW; Mon, 28 Apr 2025 10:55:42 +0000
Received: by outflank-mailman (input) for mailman id 970470;
 Mon, 28 Apr 2025 10: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=A+1Z=XO=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u9M9G-0004jj-Az
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 10:55:42 +0000
Received: from NAM04-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam04on20630.outbound.protection.outlook.com
 [2a01:111:f403:2409::630])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 523f6d34-241f-11f0-9eb4-5ba50f476ded;
 Mon, 28 Apr 2025 12:55:40 +0200 (CEST)
Received: from CH2PR05CA0057.namprd05.prod.outlook.com (2603:10b6:610:38::34)
 by SA1PR12MB6776.namprd12.prod.outlook.com (2603:10b6:806:25b::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.31; Mon, 28 Apr
 2025 10:55:35 +0000
Received: from CH2PEPF000000A0.namprd02.prod.outlook.com
 (2603:10b6:610:38:cafe::ff) by CH2PR05CA0057.outlook.office365.com
 (2603:10b6:610:38::34) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.25 via Frontend Transport; Mon,
 28 Apr 2025 10:55:35 +0000
Received: from SATLEXMB04.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.8678.33 via Frontend Transport; Mon, 28 Apr 2025 10:55:35 +0000
Received: from localhost (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; Mon, 28 Apr
 2025 05:55:32 -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: 523f6d34-241f-11f0-9eb4-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ZeRqPJeYdHXYfj0C73rB1bko4bZcFmo9ZVNa5SjSsmjQE9M7KQGy2umvbKMSwbvcPEBrSCZVdVWgbb7WI6uuQA8Wh7Q1xbgcdlhej+JZ5YvIFo75YCjmZXS8tFCKTud2HFTJuaR4TMhhPnFY5dABprXnPeZDiWcGr5wyBZn2PDpyAS7oNOQioODRudhZo37/PqK27ghVYzf1rr/Y5LB1LHC+xO9F1fapDKxx8RDmQjkH9R62J0NE4yLcCxVfwGeQ0U879dDAdNhZDh4M2ByBmn3YY7bttPvQNRbgFWYaepqt2lzvTO5cPvdQwZod+4KO6CP8LaiKnpiGTQZHO5mGvQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=GeVSj8Toeugrd8LwPFHvqKGuQ6AYaqOfbxEjmhlPk9A=;
 b=V8dt5OeZv1ZAcs/SjPpA9cwtwcaHcCBL8wnX+UkygIgKQGiI4C+qkWNsSj8F3sqSIixCO/rMuq7OiWnEUi2VRvbnFxQ5QI7hTwjewG2e8cU/Te6B4kCG81jA5utbb6jrr7pzkcI12Dja+ri0qYYN0CWBYIfTUai35D9BT5Hn1yT72S7nwq05pn4dy7IbGfRfBwPGcDT+ji0y0T9Hxjap+HQ+7YEcWvYGNXsuBwD1S2HUvF89VwlQS5PiXKRdjBSgB5hZPM4uuA4mW3B2MLTdZHLfBmQsA5kObjbuimxDlBhNtsnRWlpl1quvhVF0+4TUqIWfgwEZtFozC9cFIH1xIA==
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=GeVSj8Toeugrd8LwPFHvqKGuQ6AYaqOfbxEjmhlPk9A=;
 b=pYDm1C8P1pyamBGUsUboE/AhRRGqjyBNbxx5tCnz4IEwrTFmaqS7499fvR5kUhoSkqcC9498gSJb5tIqU5DPzkjR6R/R2iLr8txVwD0NOGHtcSv7oPBi7EU0N3jmEz9jU83e2DVN4v7rxMEWki66D1dPuL6NASskWZzh9tQ4Xbw=
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
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Mon, 28 Apr 2025 11:55:31 +0100
Message-ID: <D9I7TPLT0EJD.3F5P95H69CT5K@amd.com>
To: =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, "Ariadne Conill"
	<ariadne@ariadne.space>
CC: <xen-devel@lists.xenproject.org>, Paul Durrant <paul@xen.org>, "Jan
 Beulich" <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	"Alexander M . Merritt" <alexander@edera.dev>
Subject: Re: [PATCH v2] x86/hyperv: use dynamically allocated page for
 hypercalls
From: Alejandro Vallejo <agarciav@amd.com>
X-Mailer: aerc 0.20.1
References: <20250425234331.65875-1-ariadne@ariadne.space>
 <aA9NMJVbyXeMOOY-@macbook.lan>
In-Reply-To: <aA9NMJVbyXeMOOY-@macbook.lan>
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: CH2PEPF000000A0:EE_|SA1PR12MB6776:EE_
X-MS-Office365-Filtering-Correlation-Id: 24765bab-92dc-408e-0008-08dd86433414
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?cnY5N1hycEZyN0lYS0F4M2xCWDJwYjU2SnpTWW9zTkoxbkpBc1UyVGlHZkJS?=
 =?utf-8?B?T1ZXNWNDWWR5VnpROHg0YmdxNDRaai9KWU5mamljcURINExJcXF2Y1VDdllN?=
 =?utf-8?B?OVB5RnJ1bjI0bWljWjlzdDNxOWdqQ3BjY2JxY1ZkT0Z4ZFZ0SlQwMzY0S0Nl?=
 =?utf-8?B?SFNmWVA5MEh0UmIxM2F0OVRFbVg2ZGRoZi90dGNrd0JHNXNmVlUyMDVNNmhN?=
 =?utf-8?B?VVFLSEowZHFVVGFieWxKdXdwaU13ZjRNL1VUZmU3WjFIOXhueTRIU25TU3Z4?=
 =?utf-8?B?eDNmMElvR0pvUHRITXhLQlJ6a1hhMUZZb2REMEtyOTRzWHYxTVc1R3g2ZHBJ?=
 =?utf-8?B?TjRCdXVCZmdKbEZkT0xxZVN3N0xtb1Z3U3AwbXlkMUpUWkxHMFE3MkVwSUJ6?=
 =?utf-8?B?M1cycGJ4c3ZZZ2RZRGtRRjcyU1hXTXNWK2ZESGk5R1BLWk14OVEyMVBGdnlX?=
 =?utf-8?B?ZTRiS2pSTmRURWdVN0F3TU11WURoM09KQldSVUMxYlVIWnc3N1dNaWVvcms1?=
 =?utf-8?B?WlYwUmpoR21QT0V4blI4bVJ4MHpxR2sxTnA0NHZ1VjFFaFZjOFJ2VEdBRTdt?=
 =?utf-8?B?cUoycmpISTlHOUkwYURkcmVCQWtwd0ZSdnMvSmxySHV6elNnQU44TDBtWFJn?=
 =?utf-8?B?Rm5wdjd2VERXS1IxcnpXYmlGZmNGcDJvb0RPclFKSW9KVUNYbkw4cG9VY1dR?=
 =?utf-8?B?YmZkbVRyNGNwUllUN3hxOW94UTIwRHFhSEVXRHhzQWlUYThxTVlBMGFndFM1?=
 =?utf-8?B?NWRsV3ZkUUE2RmxIVm9OMDJjVXhFR0c3VVZYMEUzMmFQOTRIeUpRcHJCZm5n?=
 =?utf-8?B?VmFrbUdxMlZtbW0zdzUrMk5QMkZpM0pKQVV3NXNhQ0FSR2tBODUwdHpObUlN?=
 =?utf-8?B?WkNKWk5OVXA1OGwwbVJXOVBnNUhqMDBkTXJNeE50NlQ1NzdwMFlxSHVkajE0?=
 =?utf-8?B?Y3k0d2ZpVGNTRk9DZkFBNXNHOStwK2J2ZWV4Q2cybGlicWdIUEFXSHQ4TG5l?=
 =?utf-8?B?U2pqMzgwZnZVRnNIeFgyWWdJTEtnRVd2YWRXU0wwV3dKNWJLTVZtSzkrMVJU?=
 =?utf-8?B?N3BOVk5tY1NzVnJFQnh3eWNVOHU4eWFxajkvOGVUdlJlVXcrc0pmam4rMDBh?=
 =?utf-8?B?UytGSEZLN0Jhd1BVaDNYbzlqL1EyQWxTV2lURTNQUHA3RDJUZnBQTWc4TE1K?=
 =?utf-8?B?R1F2eUgrMko4WExUMW05UVVWNVlZam55S1pZelpvLzZiL0lxaEt2Nlo4WGw1?=
 =?utf-8?B?NVJrcitYZWl1a0JMSDFYdEpCWlpmZFpudWZRcFd5SWJJbWhqeEVYa1NtcWJV?=
 =?utf-8?B?dGw2c1pubkljN09FeWthYzRidTAvdzBZZDJzZE80TmQ4VmEvZDdwWW1ab3M0?=
 =?utf-8?B?ZG95VytXL0RiR2JMaEZIZ2htamMzYmlZZHRZQzRFUHF4dmpoSGxsU25rUlVT?=
 =?utf-8?B?SEVUamd6dUNSVDZpTFFkbXlkVnoybEVIYXd6TUh3R1NieVRhOElTMHpHOHhp?=
 =?utf-8?B?RjRkVmFrSEt5YlJpK2EwQ1ZZZGVZV1pVR1E4RTR2Z0FkZEF0RlkwNndNSEZG?=
 =?utf-8?B?Y241S1V1RnNDZ3Roa3lUeVpWT0lmNWNNMDliTUdqc0xjbFJNTkNjNFBLMmZR?=
 =?utf-8?B?OHhYZFNqTkwzZDRITUhsRVlkMmVjZGlCTnBSb3FzV3pQV2Rlb25nY1hBQkZ4?=
 =?utf-8?B?YTViYy9iT1VibnRSL1V6UXcvMDZYL1BtcldvWWxPYVZiNE9IWE5nNFdHK2Ew?=
 =?utf-8?B?YkJ0Z3k4Y1RZdFlDdUFISlExRG5ickZOdjF5ZDJMNVIrczFKT2FpVWtuSUNo?=
 =?utf-8?B?eXRIcDhsZnVXcDlUbzh6eDlDb25WaVpDSTNrOFUwOU83UXpmUlNCT04rTlFI?=
 =?utf-8?B?Zys4NDhnQ3ZQcGFNWUhjYXNqRmlpeDJpYVVpSktneG5QWlJzUmhUTnRHQWRl?=
 =?utf-8?B?S0pTQzIrTTlwQ3JWZFV4UktablpYZHhpRm1PbVJTTDQrTHVxamNsNjA0b0Rz?=
 =?utf-8?B?cHlFMkdwdlFnUm10SE1Obm91RHVmLzVVRHNHRzFFL01FNkI1T1VhNXU4WnFW?=
 =?utf-8?Q?0eiUYf?=
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)(1800799024)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Apr 2025 10:55:35.0496
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 24765bab-92dc-408e-0008-08dd86433414
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:
	CH2PEPF000000A0.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB6776

On Mon Apr 28, 2025 at 10:41 AM BST, Roger Pau Monn=C3=A9 wrote:
> On Fri, Apr 25, 2025 at 04:43:31PM -0700, Ariadne Conill wrote:
>> Previously Xen placed the hypercall page at the highest possible MFN,
>> but this caused problems on systems where there is more than 36 bits
>> of physical address space.
>>=20
>> In general, it also seems unreliable to assume that the highest possible
>> MFN is not already reserved for some other purpose.
>>=20
>> Changes from v1:
>> - Continue to use fixmap infrastructure
>> - Use panic in Hyper-V setup() function instead of returning -ENOMEM
>>   on hypercall page allocation failure
>>=20
>> Fixes: 620fc734f854 ("x86/hyperv: setup hypercall page")
>> Cc: Alejandro Vallejo <agarciav@amd.com>
>> Cc: Alexander M. Merritt <alexander@edera.dev>
>> Signed-off-by: Ariadne Conill <ariadne@ariadne.space>
>> ---
>>  xen/arch/x86/guest/hyperv/hyperv.c      | 17 +++++++----------
>>  xen/arch/x86/include/asm/guest/hyperv.h |  3 ---
>>  2 files changed, 7 insertions(+), 13 deletions(-)
>>=20
>> diff --git a/xen/arch/x86/guest/hyperv/hyperv.c b/xen/arch/x86/guest/hyp=
erv/hyperv.c
>> index 6989af38f1..0305374a06 100644
>> --- a/xen/arch/x86/guest/hyperv/hyperv.c
>> +++ b/xen/arch/x86/guest/hyperv/hyperv.c
>> @@ -98,7 +98,13 @@ static void __init setup_hypercall_page(void)
>>      rdmsrl(HV_X64_MSR_HYPERCALL, hypercall_msr.as_uint64);
>>      if ( !hypercall_msr.enable )
>>      {
>> -        mfn =3D HV_HCALL_MFN;
>> +        void *hcall_page =3D alloc_xenheap_page();
>> +        if ( !hcall_page )
>> +            panic("Hyper-V: Failed to allocate hypercall trampoline pag=
e");
>> +
>> +        printk("Hyper-V: Allocated hypercall page @ %p.\n", hcall_page)=
;
>
> This likely wants to be a dprintk, and possibly also print the
> physical address of the used page?  And no period at the end of the
> sentence IMO.
>
> I think Xen might have used the last page in the physical address
> range to prevent HyperV from possibly shattering a superpage in the
> second stage translation page-tables if normal RAM was used?
>
> However I don't know whether HyperV will shatter super-pages if a
> sub-page of it is used to contain the hypercall page (I don't think it
> should?)

I think it's quite unlikely. Seeing how Linux simply vmalloc()s and
Microsoft seems to genuinely care about Linux in this day and age. It
seems fair to assume Hyper-V might just copy the old memory out and
rewrite it with the trampoline contents when enabling the MSR, thereby
keeping superpages together in their p2m.

>
> Thanks, Roger.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Mon Apr 28 11:01:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 11:01:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.970487.1359161 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9MEv-0006bI-HI; Mon, 28 Apr 2025 11:01:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 970487.1359161; Mon, 28 Apr 2025 11:01: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 1u9MEv-0006bB-EC; Mon, 28 Apr 2025 11:01:33 +0000
Received: by outflank-mailman (input) for mailman id 970487;
 Mon, 28 Apr 2025 11:01: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=5hYN=XO=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u9MEu-0006b5-0V
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 11:01:32 +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 23cec534-2420-11f0-9eb4-5ba50f476ded;
 Mon, 28 Apr 2025 13:01:30 +0200 (CEST)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-43cfba466b2so44215415e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 28 Apr 2025 04:01:30 -0700 (PDT)
Received: from [10.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-3a073e46a25sm10919704f8f.69.2025.04.28.04.01.29
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 28 Apr 2025 04:01:29 -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: 23cec534-2420-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745838090; x=1746442890; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Au0ncdSq27XtX8N+TtDQODXL7lO7f/qQFMcBhE8ULHg=;
        b=gbDMTss/HHas8fY7iYxXWKG1ZZydP4l7p6W32MAPwqPetbg1H0d83E8S2sJGKDGfHS
         PH0fx2Uzux9Epwq9Ih9MVtJGhyfwiRza7/NJb4Ai8W+z5//TQeVPQbh6JgrzY83yNlw4
         VRsu/zO+hDNUWkEWgz7uq/S2JwsrLzpWDFJwwzM6Q3miVunapJJs0EmgaztNt+SN3kUZ
         ADOYZlUqtxsvvrmXcyJ8TMZTp8ps4+5sZ3sViKk+uqR1flcsfOEq0DwRb9uolyGi1Y1X
         JsuY5yS43AfV+vb8+8vRsb3tQBEByf6t5NGG4nvKl6HEQYuh08d4IuBL4Gxa/7CPP48A
         JqOA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745838090; x=1746442890;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Au0ncdSq27XtX8N+TtDQODXL7lO7f/qQFMcBhE8ULHg=;
        b=TNeNPYZ7yVgEovaxBX2OCYCB0oq0aeicbzPRJwZy74TmpfPOgr+JkLc34jjE1/TML0
         wt1A9d6BpgUdLq4e14byTxpDIZAXdwViSwuP1Eo5NGrHhvihOuZXnaDOFgnmWL4nCSBj
         GHc7UEbd1S3KjTdAbhMSzZnsQvx9WxViPLUIbF0UmVapGUcjw41S1d4g+CkbatNQykf3
         mzMXQK6v5TCTgSnOr2x+3zBTxG9oEliuffWMCdG3AQoYsGYQ8PhZJPaeCzKc8QZPDp7K
         Lx80Kw/N+gJcabfO50Z0Nda52UIr96JqCM6Kl2pLMtbKzFRA1Sx4kfqtBwOE4hxZ6xOM
         26Fw==
X-Forwarded-Encrypted: i=1; AJvYcCWjQlgZXT6Xs3sn0MZiHvuYh4OMD6LrKrgd0naJxy/ZhQHGPi2L+xIXMxcKbPq/+gTSzK0z6D9T7qY=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz2TADLJXyCiuPdhH+xoDCCHAEYx1yo3cDd9a7yM4x5ae8fSU0R
	bCh2AvKQO9Hs5r/9vKoWelbaKEdR7H8QCQobwCxx8LRY7OBkq3JnRYI37xV+zw==
X-Gm-Gg: ASbGncvAXXYYG9l3mmlH/62kE61rxXC046UqXIggHDT5IDTKS2B217jz+dCy6DOzJVx
	pEOolmA/zcGvZnhuYllyLxcyPKb1kUS1vS4kMltVEpCXxRPEb17s9yBt520fLy+GwmQsEmI/JCU
	dMyECqW0oOId2ky/3qvoiCFZSpooAG8SZVam10d62vgq7ux5RyeqbiKSpWkkhaHCwtWc/SF5SOM
	rypzTqYRQcCHqyc5rcXoqY+sUYxIPSB6bqkOrqs8sSFWkv6zrKFCn8zmdQOp7WVoGWazmA48jsn
	KGfn5P2qKhmr5DX+udzI2XvWGRvV5reyTjEJ5HJsKAD/ML6OvYI+Ys2aCd1NIFnmRmKaw3D+JXp
	enHC/cOOASk+rD2qIxUhtBUHJsA==
X-Google-Smtp-Source: AGHT+IG5iXxYJP2rhjGwJOuQzTegx1ReXv8ot9prFkVLlT4qMIMKv8zeJ5a0Q/iJoPiTqgv04Id4Iw==
X-Received: by 2002:a05:6000:1ac9:b0:39e:e438:8e32 with SMTP id ffacd0b85a97d-3a07ab8a919mr6902232f8f.55.1745838090154;
        Mon, 28 Apr 2025 04:01:30 -0700 (PDT)
Message-ID: <78ee3436-706b-45ba-aacb-3c3f5f2a4ac7@suse.com>
Date: Mon, 28 Apr 2025 13:01:29 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC 04/38] x86/hyperlaunch: convert vcpu0 creation to domain
 builder
To: Alejandro Vallejo <agarciav@amd.com>
Cc: jason.andryuk@amd.com, stefano.stabellini@amd.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>,
 xen-devel@lists.xenproject.org
References: <20250419220820.4234-1-dpsmith@apertussolutions.com>
 <20250419220820.4234-5-dpsmith@apertussolutions.com>
 <D9FTMDQ501TU.1H73IHNYGWKZH@amd.com>
 <9cad677f-cfcd-4eec-b824-01d281cb7076@apertussolutions.com>
 <D9I7CYQG59BZ.2GZ9CJ27Z7KX7@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: <D9I7CYQG59BZ.2GZ9CJ27Z7KX7@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 28.04.2025 12:33, Alejandro Vallejo wrote:
> On Fri Apr 25, 2025 at 11:04 PM BST, Daniel P. Smith wrote:
>> On 4/25/25 11:22, Alejandro Vallejo wrote:
>>> On Sat Apr 19, 2025 at 11:07 PM BST, Daniel P. Smith wrote:
>>>> Convert alloc_dom0_vcpu0() to dom0_set_affinity(), making it only set up the
>>>> node affinity based on command line parameters passed. At the same time,
>>>> introduce alloc_dom_vcpu0() as the replacement for alloc_dom0_vcpu(). Then have
>>>> alloc_dom_vcpu0() call dom0_set_affinity() when the boot domain is the control
>>>> domain, otherwise set the affinity to auto.
>>>>
>>>> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
>>>> ---
>>>>   xen/arch/x86/dom0_build.c                 |  4 +---
>>>>   xen/arch/x86/domain-builder/domain.c      | 11 +++++++++++
>>>>   xen/arch/x86/include/asm/dom0_build.h     |  2 ++
>>>>   xen/arch/x86/include/asm/domain-builder.h |  1 +
>>>>   xen/arch/x86/setup.c                      |  5 +++--
>>>>   5 files changed, 18 insertions(+), 5 deletions(-)
>>>>
>>>> diff --git a/xen/arch/x86/domain-builder/domain.c b/xen/arch/x86/domain-builder/domain.c
>>>> index f2277b9e3cf3..619d36ea0b87 100644
>>>> --- a/xen/arch/x86/domain-builder/domain.c
>>>> +++ b/xen/arch/x86/domain-builder/domain.c
>>>> @@ -9,6 +9,7 @@
>>>>   #include <xen/sched.h>
>>>>   
>>>>   #include <asm/bootinfo.h>
>>>> +#include <asm/dom0_build.h>
>>>>   
>>>>   unsigned int __init dom_max_vcpus(struct boot_domain *bd)
>>>>   {
>>>> @@ -27,6 +28,16 @@ unsigned int __init dom_max_vcpus(struct boot_domain *bd)
>>>>       return bd->max_vcpus;
>>>>   }
>>>>   
>>>> +struct vcpu *__init alloc_dom_vcpu0(struct boot_domain *bd)
>>>> +{
>>>> +    if ( bd->capabilities & BUILD_CAPS_CONTROL )
>>>> +        dom0_set_affinity(bd->d);
>>>
>>> Similar as before, this probably wants to be DOMAIN_CAPS_HARDWARE?
>>>
>>> I'll adjust while rebasing.
>>
>> Does it?
>>
>> v/r,
>> dps
> 
> The situation is similar later on when choosing a CPU policy. Why
> mustn't the hardware domain get the same treatment as the control
> domains? Using (DOMAIN_CAPS_CONTROL | DOMAIN_CAPS_HARDWARE) at the
> very least seems warranted.
> 
> All these cases single-out dom0 when dom0 is both a control and a
> hardware domain, but as Jason mentioned how is Xen meant to deal with
> dom0_X arguments when dom0 is disaggregated? Either it applies to all
> its constituents (with the plausible exception of a xenstore domain),

This one-fits-all seems very unlikely to me to make sense, while

> or just one (the hardware domain), or none.

... either of these would. "None" in particular might if all config
information is coming from e.g. DT anyway in such an setup.

> Only applying to control
> domains and not the hardware domain doesn't look right (to me).

+1

Jan


From xen-devel-bounces@lists.xenproject.org Mon Apr 28 11:05:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 11:05:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.970499.1359170 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9MIY-0007IY-Vm; Mon, 28 Apr 2025 11:05:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 970499.1359170; Mon, 28 Apr 2025 11: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 1u9MIY-0007IR-Ss; Mon, 28 Apr 2025 11:05:18 +0000
Received: by outflank-mailman (input) for mailman id 970499;
 Mon, 28 Apr 2025 11:05: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=A+1Z=XO=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u9MIX-0007IL-Iy
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 11:05:17 +0000
Received: from NAM12-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam12on20604.outbound.protection.outlook.com
 [2a01:111:f403:2417::604])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a94c3c4f-2420-11f0-9eb4-5ba50f476ded;
 Mon, 28 Apr 2025 13:05:16 +0200 (CEST)
Received: from BL0PR0102CA0039.prod.exchangelabs.com (2603:10b6:208:25::16) by
 BN3PR12MB9596.namprd12.prod.outlook.com (2603:10b6:408:2cb::12) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.33; Mon, 28 Apr
 2025 11:05:11 +0000
Received: from BL6PEPF00020E61.namprd04.prod.outlook.com
 (2603:10b6:208:25:cafe::86) by BL0PR0102CA0039.outlook.office365.com
 (2603:10b6:208:25::16) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.37 via Frontend Transport; Mon,
 28 Apr 2025 11:05:15 +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.8678.33 via Frontend Transport; Mon, 28 Apr 2025 11:05:11 +0000
Received: from localhost (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; Mon, 28 Apr
 2025 06:05:08 -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: a94c3c4f-2420-11f0-9eb4-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=S2/G5O0qcSrHofL5elr+6oFqcEB/6Lr8PKTxtvdW4yaQmPvEI1mcEFEtDKzsVT1XYdRJ7cjwqj4NV09vJmDtg2oNNFVyPp4dCyp6TcIoEQ+QggTXVH8v+z+LStkyFxfxWT4HhdXe8UnjSv7ihFM6Rl3hBzeQ+AgULvrh8OA6CW6aFmQGQ2VZ5fK5G/5Rew9egAa4qTuSr64K/Melj3NgFzhztk/EuuG9ZMK9yHAG06oAUM0aqeDyujyCRSFnuYXJwOb6AosWO1iHXP5DJcDBLrY2vn89vu6xEgoPR6oNR13vOq2IBOO7rzrAxWWtO4bBotMv5V+VoNAuOmM/257Xdg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=bXu+t5vUw61xUGHFnAnZGPvjNSCX7BwA+lRXLFPTy0A=;
 b=s9hcOZs6VroCkXxYCc4ol9PKTrtLbPxotM9k+mGQ9/ELYb+YbIKOEB3NNI+49PT4WPSa1iIHFzEdlLS3RVD8mGAljwOQ7HTqeqBAkJyiffDJbVa6FXfFAQVYGb2c37My7zAb//F4uQWhbSLUprEOoWOkGq+PTUPKWJa5OaT/2rh/idlOVLIm8V/LrpHH3gdoG8hB/DGu3UPMsC57rRHQVwqJK8knXTW4KTPmJM+cloj57kTyN2NCSQwIdN32jQ2g3gannRCvjiQ04xJxiDKThko1baKsHdiugIxx5n9b+tTdY6fKLtSo/na6qtx1MkkdMY1G/MNBIbcg1EqbRZZQrg==
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=bXu+t5vUw61xUGHFnAnZGPvjNSCX7BwA+lRXLFPTy0A=;
 b=axtu221n2p5DCmP3fAlBs06hD1x0BT92JQ4umGsFFrKtzmSbDz35ypleeGHRyN2VHZZDsFSCxXJsJ9MjHHsw833cxE9u4raEW8ipxSqKdQHFV+ywmUq5rEYA3VYqJFUaNz4PQ3JLzlKicp9fUTVtrQ4R33/4AaCRo7H8514Rj9M=
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
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Mon, 28 Apr 2025 12:05:07 +0100
Message-ID: <D9I8127P22HG.1K10R2IU0VPO8@amd.com>
CC: Jan Beulich <jbeulich@suse.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, =?utf-8?q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, "Michal
 Orzel" <michal.orzel@amd.com>, Julien Grall <julien@xen.org>, "Stefano
 Stabellini" <sstabellini@kernel.org>, Jason Andryuk <jason.andryuk@amd.com>
Subject: Re: [PATCH v5 05/12] x86/hyperlaunch: locate dom0 kernel with
 hyperlaunch
From: Alejandro Vallejo <agarciav@amd.com>
To: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	<xen-devel@lists.xenproject.org>
X-Mailer: aerc 0.20.1
References: <20250424161027.92942-1-agarciav@amd.com>
 <20250424161027.92942-6-agarciav@amd.com>
 <15e4ef59-183d-470b-b596-86f4b5e56bd4@apertussolutions.com>
In-Reply-To: <15e4ef59-183d-470b-b596-86f4b5e56bd4@apertussolutions.com>
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: BL6PEPF00020E61:EE_|BN3PR12MB9596:EE_
X-MS-Office365-Filtering-Correlation-Id: e841ce06-e4d0-4c88-53d3-08dd86448ba1
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|82310400026|1800799024|36860700013|13003099007|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?NCs1NitUbTFvcGRERmR2RXh3Z1VlVnJkTTJpVzdENjR4Ky9JZnJxOUxHMjZI?=
 =?utf-8?B?N09WWWx3b3ljb2lHZ2xDbWZOMFE4MmNISmZ1c0cyWDh5ZllncnpOWWNWTlJa?=
 =?utf-8?B?akNvRU8yYVBneUROdkptKzlxNjNnTUlnZGViRktud1BkSVRLZ2FYTXBLZ2xu?=
 =?utf-8?B?MW5vVU1GVHhRRTM4VUdUekpOU2tyS0hhU0EwakVHNHBEbGVRMkZtTHEyemhY?=
 =?utf-8?B?UDRDd0Q4Tkx2eUFxNk8xdHc4U1ZxaE16YlJMZ3pCMWo3bDNDejJjdDlWbzQr?=
 =?utf-8?B?VXZ4WG9rKzlkMU5EVDRFSWRzaXEvNjJEUDVrMXgrVzVZMk9FTU5qWDc0UGNJ?=
 =?utf-8?B?NUhmSEROOThzaEUzdDFaTnhYNGp2MEpHRzdhak0wOUx4d1YvRkUzVEw2WkFP?=
 =?utf-8?B?aEJvdStHQ01kdmZ0SkNrMnN3ZGQzcGpXMk50QWg4ZmJnNCtrd2JST1JrUDNF?=
 =?utf-8?B?VHN2eFQ3cGIyTm9VU3RqTkZuWUFZQU9VZHAyK2hrazU1TitrNms3bmFZd0pC?=
 =?utf-8?B?RlozNlhUa2ZDTkgwdnpXQ0xqemtYOE5mSHBmYzUzRU9KOHE4VUZjWkk3bzdV?=
 =?utf-8?B?dEYraHptRDRxcENRSXI4aGJoL0RPM0xMWGZoY3ZCcjFTaExZblRScGZCWE9B?=
 =?utf-8?B?WUxwUjFSaW90Ykpyd2YwVFhzQnUzcnQrcC9xS2VOYmtwUkpzbW1iWmZKZm9p?=
 =?utf-8?B?b2F0eVdmclVSaXlVeGpIUXBGcVVOQnNKcXpDbEwrQ1V3eWpxZ3hLYkJNYnZF?=
 =?utf-8?B?RWlxWFR2NXBXT3pDd2hleE94NUZIcWs3K3R4WjR1T3doYkZrZzVVSUUyMXV1?=
 =?utf-8?B?eTlpL0ZZSFlyMmd3YStLdXU3dTZYNUE2N0t1R3h5SlBacm8xMjBnKy91VnJB?=
 =?utf-8?B?cndIa1pnN1FnTWtidVZHZ1VoMDdTVWhiTyt2bVE0YzhaWDNqM3FlZWsvNTh2?=
 =?utf-8?B?Wldqdzk0TmJPRVBORWIzZ2pHdW5EYWEya01YanlLMUg1bHp1ZzBhZjY4VmZy?=
 =?utf-8?B?TnJWcHVGU2E0blV2b2ZWOTFNYXk3Q042cllUczJDUXdYUmNkd3lvVGdiMmh0?=
 =?utf-8?B?VUZ1ZXVTOGVBa1NDZUxUWCtGYWtGWDFEMWkrYWVseENsazNnK1NqWmR6ZEIz?=
 =?utf-8?B?NTZ5RDYxeGs5TlgzbXRodkNub2kxOHA4Q0NYTGMzRlI0UTB1S1h1ZUJBdTNE?=
 =?utf-8?B?MnlTNEMvTnRpNVpUUm85NUlNMXg1TE0xSUsrcUZPR2x2akFxQ0RBRkNjVUg0?=
 =?utf-8?B?ZENrakxsRWxiaFcwNlBZS1JhRmxDYmJPaHpoNDZ1bk1KQklHbTFkbTQ2blpi?=
 =?utf-8?B?YjJESmphOUoxaDNtejQ2cjJ5U2JpeVVDaTdLWmpNY3hzWEFFNEMvRmxNUXpn?=
 =?utf-8?B?aHRtNXFrbC9ZRXVQV0U4RlduYXBDSVBOYms4aWNVdjJjYTQ3Q2Zoa2hHVEo3?=
 =?utf-8?B?OTQrdWxyajJOVWxMcE5MTGloNGJWL0E5QkJaa25paDE2VzJrQjgvY09JakpD?=
 =?utf-8?B?VnRhZFRYMFlOVWRRUFJudFhyMThMS1I3dXFhZCs2TSs3Nkg5Nk1PZVhWUlRY?=
 =?utf-8?B?K2NFQmJnSXlVNHFWZ1VhRXRtdTNHYTllci9XZXdwUHZaVDRqRDlLaUZBNzA5?=
 =?utf-8?B?bXgvcy9TUS90dUQxWGkwcEF1YjdDWFlJWk1oZlNQQ00yMmQ5QllWa1Rvalc0?=
 =?utf-8?B?QXhIVkV3QU5ESjA4TUZjR1hsZytaMFd5VHdPRjNJazhUd0JGODV0ZDgxOVFm?=
 =?utf-8?B?V2s3aG8rOWphRXFqZEVvSnJnM2Q3dmVlV2UxV0l1REZDa3lKR0FJczRxelJn?=
 =?utf-8?B?NkdmT1JUWVJZTFdaYlRMdExmY2lKRWxXVW9oMmQ2TFEzVDZqS2M3ZUVDU3dp?=
 =?utf-8?B?bFZBM1hzbDNsaUxPaDJXQ1hEK3huZlFXcjE1M3JKQzhQTEozRWNuUUMzTWJT?=
 =?utf-8?B?bEhsNXUycDVyVTU3MUpqZ2l3L3VGMWpQL3NhYnMyT1FoNlQvWGhGU2dMSVho?=
 =?utf-8?B?MXF3YytzY2Y3MXZWZnJtVTVEa1FRcVhIRTJwYnF2QThCb2ZVT0xsZTRXUUZm?=
 =?utf-8?B?RFcyU2k3U2tMZmhaUGVHUGlnWEJFWHk5UTBsQT09?=
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)(13003099007)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Apr 2025 11:05:11.4547
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: e841ce06-e4d0-4c88-53d3-08dd86448ba1
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: BN3PR12MB9596

On Fri Apr 25, 2025 at 11:32 PM BST, Daniel P. Smith wrote:
> On 4/24/25 12:10, Alejandro Vallejo wrote:
>> From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
>>=20
>> Look for a subnode of type `multiboot,kernel` within a domain node. If
>> found, locate it using the multiboot module helper to generically ensure
>> it lives in the module list. If the bootargs property is present and
>> there was not an MB1 string, then use the command line from the device
>> tree definition.
>>=20
>> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
>> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
>> Signed-off-by: Alejandro Vallejo <agarciav@amd.com>
>> ---
>> v5:
>>    * Add domain name to the error path on no-kernel.
>> ---
>>   xen/arch/x86/setup.c            |  1 +
>>   xen/common/domain-builder/fdt.c | 64 +++++++++++++++++++++++++++++++--
>>   2 files changed, 62 insertions(+), 3 deletions(-)
>>=20
>> diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
>> index bd13d9d196..7e756302ae 100644
>> --- a/xen/arch/x86/setup.c
>> +++ b/xen/arch/x86/setup.c
>> @@ -1290,6 +1290,7 @@ void asmlinkage __init noreturn __start_xen(void)
>>           i =3D first_boot_module_index(bi, BOOTMOD_UNKNOWN);
>>           bi->mods[i].type =3D BOOTMOD_KERNEL;
>>           bi->domains[0].kernel =3D &bi->mods[i];
>> +        bi->nr_domains =3D 1;
>>           bi->hyperlaunch_enabled =3D false;
>>       }
>>  =20
>> diff --git a/xen/common/domain-builder/fdt.c b/xen/common/domain-builder=
/fdt.c
>> index 11f0436e85..662c715483 100644
>> --- a/xen/common/domain-builder/fdt.c
>> +++ b/xen/common/domain-builder/fdt.c
>> @@ -99,9 +99,9 @@ static int __init fdt_prop_as_reg(const struct fdt_pro=
perty *prop,
>>    * @return              -EINVAL on malformed nodes, otherwise
>>    *                      index inside `bi->mods`
>>    */
>> -int __init fdt_read_multiboot_module(const void *fdt, int node,
>> -                                     int address_cells, int size_cells,
>> -                                     struct boot_info *bi)
>> +static int __init fdt_read_multiboot_module(const void *fdt, int node,
>> +                                            int address_cells, int size=
_cells,
>> +                                            struct boot_info *bi)
>
> Shouldn't this belong to when the function was introduced? Though=20
> looking there, you push it out into the header? Guess the real question=
=20
> is it static or not?

It's to ensure MISRA compliance on the previous commit. See:

  https://lore.kernel.org/xen-devel/173f7129e82958a9737627129ac3c5be@bugsen=
g.com/

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Mon Apr 28 11:07:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 11:07:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.970510.1359180 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9MKZ-0007r2-BC; Mon, 28 Apr 2025 11:07:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 970510.1359180; Mon, 28 Apr 2025 11:07: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 1u9MKZ-0007qv-8Y; Mon, 28 Apr 2025 11:07:23 +0000
Received: by outflank-mailman (input) for mailman id 970510;
 Mon, 28 Apr 2025 11:07: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=1Olx=XO=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u9MKX-0007ql-8r
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 11:07:21 +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 f413b010-2420-11f0-9eb4-5ba50f476ded;
 Mon, 28 Apr 2025 13:07:20 +0200 (CEST)
Received: by mail-wr1-x42f.google.com with SMTP id
 ffacd0b85a97d-3914aba1ce4so3570027f8f.2
 for <xen-devel@lists.xenproject.org>; Mon, 28 Apr 2025 04:07:20 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3a073e46a54sm11031140f8f.67.2025.04.28.04.07.18
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 28 Apr 2025 04:07: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: f413b010-2420-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745838440; x=1746443240; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=3gM4It4SMK59v/8vza29ClPE0i0OYfYk8Sh8ifgnFdc=;
        b=VWBgjJr0OIhCsqyq89EMmxgfy5Pk4lSjh3AS4at2DzIogPcB//PkAm+zhY1yKVs+Dd
         hJntHRsrCuTx1VqvOmIl4F5pehd1kS+t3HiCYPtl+bDrbMMrmh9y4qmypCfA0pMmDLEA
         ADqjfY9BNNJ6cpZo94Z3iMMSWV64lFuLlvIYY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745838440; x=1746443240;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=3gM4It4SMK59v/8vza29ClPE0i0OYfYk8Sh8ifgnFdc=;
        b=QMAXK2UBGfcmMzqkIrWm3zdiD/kDAkhvZqCk1h/6Lbf06qwHux2PFUUCEA/OtvYk/3
         8hwsx7aMnIZKjVymmKLAGbSJ3qqJcPTJKKFjjnA7oWqfmdgxu0m4srq+T1NW6dovHAAC
         UoH9lg/D5tG8Nl80pJ2C4YaBxONkEPWh/vYJgjslgt7mvEo9SMGEik/nqroMydfgY13E
         uek5rnTygFI/T9fXrvaAAGRuc5FYsMJjfZfWkwiVFpu5qzcpzcSrQIrku015x31lV1Q+
         mJrm/UDinEJV6GYzubAELkHO7GHAe9jIZRa7oOppJd+Vhg8vLDUkhsdSTq6cG4aTHj0F
         hshw==
X-Gm-Message-State: AOJu0YxY0WApPRIY5rsxM1roCelamUtuK+zwxCkCoERGRSGX4fJ3UCkX
	A+p4mkBRBaurzfCSmBpP3tYQfX115bIyITKfHcJbWQGYhDReUFPXC3JHt+gUumw=
X-Gm-Gg: ASbGncuRY8ADMzTKXPAqDcK0itLSdpW7K9d0vt/G7JyphOfk6NSE33Q9EG2gi72H7E6
	VjSbEFvAvVVkTCn/7+K43bX8/gAuWHkcbj8LKYdJheXMsb7H7JqVYXgAh4eNKo4xnowBEDpHt2Y
	+wWwlv4q+VPdTb692NWM0Q9KiWe8CvZikYW1CYdbGOpts0WVB0aZd2NyDVfs7iY/epc0G5wSZcG
	XI9GcNmc7KmVSDDbfYHMdCNs3MVNty4oMcZd5/XPuP6q3tLMkl09VaaSCWeSLiazntHxL5Uvn+d
	iIMDD4sX+RLpK5/aGAZed3AM8g8e62puN1YP+k+JalXwt2hgMmzmq5guI5clAK9Np5uu1VGc53d
	LdP8CDyO5wb//jvfO
X-Google-Smtp-Source: AGHT+IFMfCcKZRq59thsDM7q4TREyc/++JPCEcfXlS3WXiSZ8OBLVWbb3R2yLdSVNoCnf1Kl7dLpkQ==
X-Received: by 2002:a05:6000:4212:b0:38f:2ddd:a1bb with SMTP id ffacd0b85a97d-3a074e144a6mr8508007f8f.8.1745838439491;
        Mon, 28 Apr 2025 04:07:19 -0700 (PDT)
Message-ID: <97d28edb-4274-408f-a825-d09fa771e21d@citrix.com>
Date: Mon, 28 Apr 2025 12:07:18 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] x86/hyperv: use dynamically allocated page for
 hypercalls
To: Alejandro Vallejo <agarciav@amd.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Ariadne Conill <ariadne@ariadne.space>, Wei Liu <wl@xen.org>
Cc: xen-devel@lists.xenproject.org, Paul Durrant <paul@xen.org>,
 Jan Beulich <jbeulich@suse.com>, "Alexander M . Merritt"
 <alexander@edera.dev>
References: <20250425234331.65875-1-ariadne@ariadne.space>
 <aA9NMJVbyXeMOOY-@macbook.lan> <D9I7TPLT0EJD.3F5P95H69CT5K@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: <D9I7TPLT0EJD.3F5P95H69CT5K@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 28/04/2025 11:55 am, Alejandro Vallejo wrote:
> On Mon Apr 28, 2025 at 10:41 AM BST, Roger Pau Monné wrote:
>> On Fri, Apr 25, 2025 at 04:43:31PM -0700, Ariadne Conill wrote:
>>> Previously Xen placed the hypercall page at the highest possible MFN,
>>> but this caused problems on systems where there is more than 36 bits
>>> of physical address space.
>>>
>>> In general, it also seems unreliable to assume that the highest possible
>>> MFN is not already reserved for some other purpose.
>>>
>>> Changes from v1:
>>> - Continue to use fixmap infrastructure
>>> - Use panic in Hyper-V setup() function instead of returning -ENOMEM
>>>   on hypercall page allocation failure
>>>
>>> Fixes: 620fc734f854 ("x86/hyperv: setup hypercall page")
>>> Cc: Alejandro Vallejo <agarciav@amd.com>
>>> Cc: Alexander M. Merritt <alexander@edera.dev>
>>> Signed-off-by: Ariadne Conill <ariadne@ariadne.space>
>>> ---
>>>  xen/arch/x86/guest/hyperv/hyperv.c      | 17 +++++++----------
>>>  xen/arch/x86/include/asm/guest/hyperv.h |  3 ---
>>>  2 files changed, 7 insertions(+), 13 deletions(-)
>>>
>>> diff --git a/xen/arch/x86/guest/hyperv/hyperv.c b/xen/arch/x86/guest/hyperv/hyperv.c
>>> index 6989af38f1..0305374a06 100644
>>> --- a/xen/arch/x86/guest/hyperv/hyperv.c
>>> +++ b/xen/arch/x86/guest/hyperv/hyperv.c
>>> @@ -98,7 +98,13 @@ static void __init setup_hypercall_page(void)
>>>      rdmsrl(HV_X64_MSR_HYPERCALL, hypercall_msr.as_uint64);
>>>      if ( !hypercall_msr.enable )
>>>      {
>>> -        mfn = HV_HCALL_MFN;
>>> +        void *hcall_page = alloc_xenheap_page();
>>> +        if ( !hcall_page )
>>> +            panic("Hyper-V: Failed to allocate hypercall trampoline page");
>>> +
>>> +        printk("Hyper-V: Allocated hypercall page @ %p.\n", hcall_page);
>> This likely wants to be a dprintk, and possibly also print the
>> physical address of the used page?  And no period at the end of the
>> sentence IMO.
>>
>> I think Xen might have used the last page in the physical address
>> range to prevent HyperV from possibly shattering a superpage in the
>> second stage translation page-tables if normal RAM was used?
>>
>> However I don't know whether HyperV will shatter super-pages if a
>> sub-page of it is used to contain the hypercall page (I don't think it
>> should?)
> I think it's quite unlikely.

It will shatter superpages.

The overlay is not part of guest memory, and will hide whatever is
behind it while it is mapped, which will force a 4k PTE in EPT/NPT.

Thinking about it, a better position would be adjacent to the APIC MMIO
window, so at 0xfee01000.  The APIC MMIO window is forced to be a 4k
mapping too, and the rest of the 2M window is normally empty.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Apr 28 11:09:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 11:09:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.970527.1359190 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9MMN-0008Rj-Pu; Mon, 28 Apr 2025 11:09:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 970527.1359190; Mon, 28 Apr 2025 11:09: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 1u9MMN-0008Rc-NG; Mon, 28 Apr 2025 11:09:15 +0000
Received: by outflank-mailman (input) for mailman id 970527;
 Mon, 28 Apr 2025 11:09: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=1Olx=XO=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u9MMM-0008RW-VR
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 11:09:14 +0000
Received: from mail-wr1-x42c.google.com (mail-wr1-x42c.google.com
 [2a00:1450:4864:20::42c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 374debe6-2421-11f0-9ffb-bf95429c2676;
 Mon, 28 Apr 2025 13:09:13 +0200 (CEST)
Received: by mail-wr1-x42c.google.com with SMTP id
 ffacd0b85a97d-39d83782ef6so3921382f8f.0
 for <xen-devel@lists.xenproject.org>; Mon, 28 Apr 2025 04:09:13 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3a073ca56d5sm10940294f8f.32.2025.04.28.04.09.11
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 28 Apr 2025 04:09: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: 374debe6-2421-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745838552; x=1746443352; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=S1NY60bvctsPrKwpYhtExbVQ+qryrxMit8VBWB0Yd5k=;
        b=emfioHBgtMIVb3km9HVJF3R+ZaIa2KBmmM6M460nkldIhiIKhXEZGJjlETFA7Gzmnh
         95MzrWUp2OP/1FQNCE1eq7+apwFVtVh+eut9SXhRiNDXiJPv6cgTLvolRKDi0kmDwEc3
         sg/3Cn6nWeSooMd9rfsmk5ONgB7XjNNrD6Z6U=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745838552; x=1746443352;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=S1NY60bvctsPrKwpYhtExbVQ+qryrxMit8VBWB0Yd5k=;
        b=MX+BcYfTI2OIsS1qQXLsPll8JBbIAj9v1EWIUVyjbFHAIqhMCcneimXlZaTDbHIPKn
         PmEFM93ebm9IsNLnCiaII9mwrPiKXCKu5evoiF3EJ94cCGx2faPVJQb+dU78nZORCmD4
         7d3WAfm/Hj5i7Bgv+98h2L9djjPUGtqtjLIxac0l61dP8VWR6SK/O9EYf+cy7orO4k1S
         FiosGd8ieAlNQc3niiUXbqOyxg8hfzExXbrCU6gPO1y/yxCIXAG8y3WL3tKBwmZwEDkd
         +jbyNTgSMVCfkMCxWEzopOg2rk+2JoiuuQICsarouH//sirqbrRP9BZuqYqZOWeHC8Zg
         692g==
X-Forwarded-Encrypted: i=1; AJvYcCW7JTqAiDwZC/KaggKyNuGjXj6w7MGySVZFsskrybW9vaVOrG7zSMEaWzM0rkod9KqcjLFgAoWoiwg=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yyi1Q05RzVH+2YOfSpoz/KgvGyEFxgAgC++/laTEK+rIyHdWd6N
	kxlb/IEamp16JNhdKg0lVkfdXSppw0GQlUR8FqBE1BUetX+hSWHq7srOQCvqUHA=
X-Gm-Gg: ASbGncumHIfX8eJki7zXopWVFzjf1hoplcB+LyI/LAyAOr+B88O6OnynZ72V2l3o47T
	yVR4TyyEhE5hq/Rii1yzyyzBcilJT3wqxevC2Wep9qb0aS8ENOluuyoQ1NwDtFIxK0X3bFB6FBH
	AVfnmVpKFo3psOYFRi1b42K0axIvztf/LUJgamr3jvnDCvhKZie4UCccfbFD8wyrlxOz5aiQSPb
	o9bPNKnQ9dJzIRGVJwiQhBqUXaICG9yJ0D79q0GLWapBhiOZS9v1Ri3izRY0385gNmbdOlVjlQ4
	6Xk+NMXuF5zrrrA8RKt8pknAupF2zCxaIqq+VVmun4Uz/UZYxNlWHjaIKhosLxpjkzs2ujJeWYF
	pVZwCmA==
X-Google-Smtp-Source: AGHT+IGPMGGqkxVbJpZDRRUwIdKcvcZYGnx67AbXfna85HzHFppMBnp36zExfM0knaNzNPC//a19PA==
X-Received: by 2002:a05:6000:43c6:20b0:3a0:6f3b:79f0 with SMTP id ffacd0b85a97d-3a06f3b7a21mr8358553f8f.21.1745838552536;
        Mon, 28 Apr 2025 04:09:12 -0700 (PDT)
Message-ID: <c9bd33a1-712a-489d-a887-fa4cdc0cb516@citrix.com>
Date: Mon, 28 Apr 2025 12:09:11 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] x86/hyperv: use dynamically allocated page for
 hypercalls
To: Ariadne Conill <ariadne@ariadne.space>, xen-devel@lists.xenproject.org
Cc: Paul Durrant <paul@xen.org>, Jan Beulich <jbeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Alejandro Vallejo <agarciav@amd.com>,
 "Alexander M . Merritt" <alexander@edera.dev>
References: <20250425234331.65875-1-ariadne@ariadne.space>
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: <20250425234331.65875-1-ariadne@ariadne.space>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 26/04/2025 12:43 am, Ariadne Conill wrote:
> diff --git a/xen/arch/x86/guest/hyperv/hyperv.c b/xen/arch/x86/guest/hyperv/hyperv.c
> index 6989af38f1..0305374a06 100644
> --- a/xen/arch/x86/guest/hyperv/hyperv.c
> +++ b/xen/arch/x86/guest/hyperv/hyperv.c
> @@ -98,7 +98,13 @@ static void __init setup_hypercall_page(void)
>      rdmsrl(HV_X64_MSR_HYPERCALL, hypercall_msr.as_uint64);
>      if ( !hypercall_msr.enable )
>      {
> -        mfn = HV_HCALL_MFN;
> +        void *hcall_page = alloc_xenheap_page();
> +        if ( !hcall_page )
> +            panic("Hyper-V: Failed to allocate hypercall trampoline page");

\n

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Apr 28 11:10:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 11:10:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.970537.1359202 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9MN8-0000WN-4W; Mon, 28 Apr 2025 11:10:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 970537.1359202; Mon, 28 Apr 2025 11: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 1u9MN7-0000WD-Vg; Mon, 28 Apr 2025 11:10:01 +0000
Received: by outflank-mailman (input) for mailman id 970537;
 Mon, 28 Apr 2025 11: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=5hYN=XO=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u9MN7-0000NS-9V
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 11:10:01 +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 53a0e357-2421-11f0-9eb4-5ba50f476ded;
 Mon, 28 Apr 2025 13:10:00 +0200 (CEST)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-43cfe574976so31603085e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 28 Apr 2025 04:10:00 -0700 (PDT)
Received: from [10.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-4409d2a2e59sm151410985e9.16.2025.04.28.04.09.58
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 28 Apr 2025 04:09: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: 53a0e357-2421-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745838600; x=1746443400; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=dcJj5RrOoVKLc2Qw1zHCCpi3RJlCZMbrAmQlhoeKf5Q=;
        b=BNrG8oLY353Rt0rND6PXS7ecc9CKvJGetkRZv7FGcepfAov3C/x11jEo7DdnZ0K1Bn
         SNVFWPfzONJQDJ1f8pCPMTCxzX3zzLeHAUagEA/VPRhvO9mBPy7WLaU2Pxj5QxDuaFSA
         aTjyvD/PaBl4s9dW1exdoMS/jVRKtF7wnK/WQCJh6bh7I7ZLM/Qg5RQvr2BI6NU6GpUY
         rl/wscE5yET3eAbFe1RIU+COKvSjUduVjYWbmapmhj0hTyAY8bNvFHZ7Ck2lKh+y6l45
         72FU6YKtwoMo+MosPtBEbFKjlWd5tm9lTFFRIP8O2t7O/CmeBRxfXl0A/o2fQWGal+Hs
         XO4A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745838600; x=1746443400;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=dcJj5RrOoVKLc2Qw1zHCCpi3RJlCZMbrAmQlhoeKf5Q=;
        b=lNI/cwI4/2w4RQ8zz1r5OLyR+DnJgszY0WNwYxfHtW/uOWdarJdmAqtl2xLW3rfAk7
         +GFx+hOaGBmIERoGadIZqBqHhJKFBap1KoaE94P4bF0OWYoHfNlQHmt0xXQD4240flHo
         13lc59nHmXZvPQzREhPYyNnSGiT+LBeVV5Q8B5UpYewuweBRmW11vT20HQJsWZaxl0cV
         O58X6kVFet8i5nJNlrfiAFNzcEXvecLS4RKkbQ1YYA9ct9WjA6Bbn5c7yHc8bOIeeEg5
         ZBJjfFqYBW/tfgwKsjyXVcZb5/BrFDTKvZ8d7EgAso72ehLh4oIGxokA/Aw6NtSPL044
         9KIQ==
X-Forwarded-Encrypted: i=1; AJvYcCXWgEd8pm9Dpb91W5NPjSe8UgYKnXEEhBYqWRBVC57+KmKzx/Xm7q1U+JHPkV1lhjaIj5zNj6WKHo8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxWczpJlByjHbgSx2r8v7dTq0pwx/NeXi3p1/P36oMzYnbWA3ga
	OqMIvzel76IdSCoFE8JUfrvDFjJb1FPbQw/jsk74qIvVVipCHA3Gi+4n+w0RkA==
X-Gm-Gg: ASbGncvYBjMASKNo5JdsMcFI57GnGPpTKA4E5/6F9NV+AdZ7JahW4z3UFZ44rvav+BC
	rV04LecnDxqwX3Uwb90bU4D9KndOPV6/Fj0/YuPLHXavI+9b9ZB8poeNDKBeV19IdVuaaXZkov3
	XcSBgx45nbGV2B3ebhGNvLPmGpzHom2dNG1YD7MqdnvUp5hEtsi9ujS9ozh1mww/mvfEpFzzWjp
	9EBk6KEQWLscsD44Bkml4dVWAwzhm8iMqAeXZ9eEfC2zuxXP1XAqjPwy1LAUqNkaGiYPsEP5UpQ
	yI1rCFKVJ1hQBy23rAH1Rwha23yaxJOhffjDW+44XE1dlYC7m3R79mUpRk0z8uoSi125BFASgok
	jenrZ9cf5kWPR4r3LK931McclmQ==
X-Google-Smtp-Source: AGHT+IFC4rIw9p4zSnEwKJMEW8la2Mu4f+fe1EMSGzEvV8QS90VqL9HNO4yOyQsMtfsnV6qjzer4zQ==
X-Received: by 2002:a05:600c:1d15:b0:43c:fa24:8721 with SMTP id 5b1f17b1804b1-440a660b293mr103883065e9.17.1745838599906;
        Mon, 28 Apr 2025 04:09:59 -0700 (PDT)
Message-ID: <69ac6840-7dc1-4e88-a12d-43fe295ac7a8@suse.com>
Date: Mon, 28 Apr 2025 13:09:58 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 06/14] xen/riscv: riscv_of_processor_hartid()
 implementation
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1744126720.git.oleksii.kurochko@gmail.com>
 <ab592d50ad161ffed3950bdf58ade49ae90a3c0e.1744126720.git.oleksii.kurochko@gmail.com>
 <65f5952a-8d2a-499c-bd66-53e9e2fbfa9c@suse.com>
 <d10323b7-d95d-4b96-9bf1-7ae8edda153e@gmail.com>
 <859d0c87-dc90-44c2-ab30-5164eec0705c@suse.com>
 <83fc1566-ad4f-489d-a432-01ec638cbc21@gmail.com>
 <39f0a475-6eea-4c08-abb1-f3de25c5a549@suse.com>
 <e5884aac-1b55-44c8-aa51-c275f6eed828@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: <e5884aac-1b55-44c8-aa51-c275f6eed828@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 28.04.2025 12:43, Oleksii Kurochko wrote:
> 
> On 4/28/25 8:31 AM, Jan Beulich wrote:
>> On 25.04.2025 19:07, Oleksii Kurochko wrote:
>>> On 4/15/25 3:45 PM, Jan Beulich wrote:
>>>> On 15.04.2025 15:39, Oleksii Kurochko wrote:
>>>>> On 4/10/25 5:53 PM, Jan Beulich wrote:
>>>>>> On 08.04.2025 17:57, Oleksii Kurochko wrote:
>>>>>>> +{
>>>>>>> +    const __be32 *cell;
>>>>>>> +    int ac;
>>>>>>> +    uint32_t len;
>>>>>>> +
>>>>>>> +    ac = dt_n_addr_cells(cpun);
>>>>>>> +    cell = dt_get_property(cpun, "reg", &len);
>>>>>>> +    if ( !cell || !ac || ((sizeof(*cell) * ac * (thread + 1)) > len) )
>>>>>>> +        return ~0ULL;
>>>>>> I'm sorry for my lack of DT knowledge, but what's "thread" representing here?
>>>>>> You only pass in 0 below, so it's unclear whether it's what one might expect
>>>>>> (the thread number on a multi-threaded core).
>>>>> Based on the DT specification alone, the|`reg`| value could refer to either a CPU or a thread ID:
>>>>> ```
>>>>> The value of reg is a <prop-encoded-array> that defines a unique CPU/thread id for
>>>>> the CPU/threads represented by the CPU node. If a CPU supports more than one thread
>>>>> (i.e. multiple streams of execution) the reg prop-erty is an array with 1 element
>>>>> per thread.
>>>>> ```
>>>>>
>>>>> My understanding is that the term/thread/ was used in the Linux kernel to cover both
>>>>> cases.
>>>>> When SMT isn't supported, the CPU can be considered to have a single thread.
>>>>> For example, RISC-V uses the term/hardware thread/ to describe a hart (i.e., a CPU).
>> Note the terminology ("CPU") you used here.
>>
>>>>> Interestingly, the Linux kernel always uses|thread = 0|.
>>>>>
>>>>> We could potentially drop this ambiguity and introduce an|ASSERT()| to check that
>>>>> the|`reg`| property contains only one entry, representing the HART (CPU) ID:
>>>>> ```
>>>>>      Software can determine the number of threads by dividing the size of reg by the parent
>>>>>      node’s #address-cells. If `|reg`| has more than one entry, it would simply SMT support
>>>>>      is required.
>>>>> ```
>>>>>
>>>>> Does that approach make sense, or should we stick with the current implementation?
>>>> If extra enabling is required to make multi-thread CPUs work, then panic()ing
>>>> (not so much ASSERT()ing) may make sense, for the time being. Better would be
>>>> if we could use all threads in a system right away.
>>> Actually, this function is ready to be used for multi-thread CPUs. A caller can request hardware id
>>> by passing `thread` argument (`thread` -> the local thread number to get the hardware ID for).
>>> So by calling:
>>>    dt_get_cpu_hwid(cpu0, 0) -> it will return hardware id of thread 0 of cpu0
>>>    dt_get_cpu_hwid(cpu0, 1) -> it will return hardware id of thread 1 of cpu0
>>>    ...
>>>
>>> In our case we assume that SMP isn't supported so that is why it is used only dt_get_cpu_hwid(cpu0, 0).
>>>
>>> If one day, SMP will be enabled then it will be needed to change a callers of dt_get_cpu_hwid().
>> I assume you meant SMT in both places you wrote SMP?
> 
> Yes, it should be SMT.
> 
>>   But my main point here is:
>> If enumeration gives you "thread <N> of core <M>" (using x86 terminology), you
>> need to be quite careful with what you call "CPU". Things need to be entirely
>> unambiguous, taking into account what internally in (common code) Xen we call a
>> "CPU". You certainly may call "CPU" what is a collection of threads / harts,
>> but you then need to clarify this in a prominent comment somewhere, and you
>> need to be entirely consistent throughout the RISC-V sub-tree.
> 
> ╭────────────────────╮
> │        CPU          │  ← 1 physical processor (chip)
> │ ┌───────┬─────────┐ │
> │ │ Core 0│ Core 1  │ │  ← 2 cores (for example)
> │ │ ┌──┬──┐ ┌──┬──┐ │ │
> │ │Thr0 Thr1 Thr0 Thr1│ ← 2 threads on each core (SMT)
> │ └───────┴─────────┘ │
> ╰────────────────────╯
> I want to double check what Xen call a "CPU". I thought that Xen uses word
> CPU to describe a core, right?

No, see e.g. cpumask.h - it's a hart (as per below) that we internally describe
as CPU (leaving aside potentially ambiguous comments here and there, which is
what I'd like to prevent from the start for RISC-V).

> What you wrote above "thread <N> of core <M> (using x86 terminology)" is also correlated
> with RISC-V terminology:
>    A component is termed a core if it contains an independent instruction fetch unit.
>    A RISC-V-compatible core might support multiple RISC-V-compatible hardware threads,
>    or harts, through multithreading
> 
> I checked RISC-V's DTS binding and it seems it is a little bit contradictory to DTS spec,
> where it is mentioned that reg property is used to describe how many threads a cpu  has
> when SMP is used, but in RISC-V's dts binding they are describing a hardware execution
> context:
>    This document uses some terminology common to the RISC-V community
>    that is not widely used, the definitions of which are listed here:
> 
>    hart: A hardware execution context, which contains all the state
>    mandated by the RISC-V ISA: a PC and some registers.  This
>    terminology is designed to disambiguate software's view of execution
>    contexts from any particular microarchitectural implementation
>    strategy.  For example, an Intel laptop containing one socket with
>    two cores, each of which has two hyperthreads, could be described as
>    having four harts.
> 
> So in RISC-V's DTS binding they are describing only hardware threads what makes things more
> confusing in terms what kind terminology from Xen point of view should be used.
> 
> And based on what is written in RISC-V's dts binding:
>   For example, an Intel laptop containing one socket with
>   two cores, each of which has two hyperthreads, could be described as
>   having four harts.
> It would be more logical to drop 'thread' argument of riscv_of_get_cpu_hwid(const struct dt_device_node *cpun).
> And then the question is what to do with the name of variable cpun? As it could be still confusing. Or, at least,
> I can add the comment that CPUn in terms of RISC-V means hart (hardware thread).

If it's the normal thing you call a CPU, I don't think much commentary is
necessary. Then please just make sure you don't call anything else "CPU",
especially in identifiers.

> And then will it be needed to
> add such comment for each usage of word "CPU"?

No, that would go too far in any event. Hence why I said "clarify this in
a prominent comment somewhere".

Jan


From xen-devel-bounces@lists.xenproject.org Mon Apr 28 11:26:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 11:26:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.970552.1359211 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9MdG-0004Fq-G7; Mon, 28 Apr 2025 11:26:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 970552.1359211; Mon, 28 Apr 2025 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 1u9MdG-0004Fh-BL; Mon, 28 Apr 2025 11:26:42 +0000
Received: by outflank-mailman (input) for mailman id 970552;
 Mon, 28 Apr 2025 11:26: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=MVu+=XO=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1u9MdE-0004Fb-H7
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 11:26:40 +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 a63ac8ee-2423-11f0-9ffb-bf95429c2676;
 Mon, 28 Apr 2025 13:26:38 +0200 (CEST)
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by PA4PR03MB7040.eurprd03.prod.outlook.com
 (2603:10a6:102:ee::6) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.33; Mon, 28 Apr
 2025 11:26:36 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::35ac:8893:c31c:b971]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::35ac:8893:c31c:b971%4]) with mapi id 15.20.8678.027; Mon, 28 Apr 2025
 11:26: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: a63ac8ee-2423-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=GTzdWJg+X4OmxfAyAhHyLFmjZqwNP8Y2QDdLMHgteQuua+vNEttX8WBYvfrO5YcZWRCpSZRSh1D4/M1ZJg2F2SUBxVmEcDS0Su+S+woLrgR2vWj6VHDAR04rE3vi+YwmRlkjalvt856fEG3uiL1vzOjeq8W9rLkTzATxudiJj/SInyNMUFEPfItD2NWJ5m6SHd9qVXMGV5NN7eFslH4ETHx28Oe8lrcP/tLmtqzxzDeokx3IEPM9KvJmKLZQyABMjH9lyGOCK1zl9NWwcDb9bvd6tIAHHDz3lvdW5Qwd4t+A4nCO4d5v+SpA+VT9hppVfDAQRB6PId/Bl/ZIqbjrRw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=oWTZUHTUNSksE3Mi3uAag9yO7rRK5QRgVVSak58N4lE=;
 b=IWF7aRJCokG60oroNN5g9HrBQGxQ/bRFzW43OZs95tXQZubnB/BZbutXSEoGN1fyt4MKH/mnOdGAHImmFs3ms1vFeWWh2qzYGIpOnCMO4gQH+GIwA8hygOtXR24UWbTSDKEqfkFlkKRWMAh8jCV0woplgiy5o578XvpgDeAUaG1XsAPgHASFc76I9vF9s9hf821RIib/o2VcMqsUyYk0GfV2zC3gIgqVSyjeXOx9y/dd1SemIBM5LJm2RXmrBCQGXzBjOjRBPeqraUj3y/xCUiu7D0wFIDX8U+Db4g+eNlO3MM6tfbPDWHzk+iNfOpKOjlGy7YDeKH8ikZz/taxERA==
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=oWTZUHTUNSksE3Mi3uAag9yO7rRK5QRgVVSak58N4lE=;
 b=hSFcGNsut+crjbPKyDugVYr9nd3xyB+3dr5CRSwypIJKn+WETaLJysxAwlmpclDgBP9Sph1LSTZw5sNzad/zFri/l/qQL2Evrq0Mk40YVyAEfTO9ZfM75IQDSfgf7GxkAmV667aq7kzh1l870s36gbwE5Tfv8174rXr1R6UzyHs5j5QH0om6Uj3OEa8Bv53LJMiQJyuqeQBKx3Wl6M6WrXf7/Gkgj3ykp9XqbkRjmzMFU8ZdqPiWghVeU05loT7I2nYnCzm9durJ+1hen+IfFhmEdDtT3/2ZKzPPSCAsgrdD3Z3SAIKheUfLYQgspgu1gg7nXS5qaiFLknaeYAiwKA==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Stewart Hildebrand <stewart.hildebrand@amd.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v9 7/8] xen/arm: enable dom0 to use PCI devices with
 pci-passthrough=no
Thread-Topic: [PATCH v9 7/8] xen/arm: enable dom0 to use PCI devices with
 pci-passthrough=no
Thread-Index: AQHblOXdxbIbbkNtn0WSg/9tW2OJ47N3cuWAgEGQWoCAAAswgIAAKJGA
Date: Mon, 28 Apr 2025 11:26:36 +0000
Message-ID: <4b5c5c57-2d7a-41ef-8ab8-caf9f2593b2c@epam.com>
References: <cover.1741958647.git.mykyta_poturai@epam.com>
 <132afbca390edd6e9fd7b1ffacf6c5aff0d29aa7.1741958647.git.mykyta_poturai@epam.com>
 <7fa0bde7-3aa9-48f4-a0ed-d03216edcc4e@suse.com>
 <c33b906f-f9cb-45e5-ac84-28dc687a6f7a@epam.com>
 <b4baad49-f751-42e6-9785-6d71aac3ebc3@suse.com>
In-Reply-To: <b4baad49-f751-42e6-9785-6d71aac3ebc3@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_|PA4PR03MB7040:EE_
x-ms-office365-filtering-correlation-id: be8cbbc4-82a1-4da7-f4a2-08dd86478974
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|376014|7416014|366016|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?cXVKVGRpRXlCT3Y2dTlSamNQK0RKcWsvWk5IUHArUXVILzlwbWxxcmw2MHdX?=
 =?utf-8?B?T1R6NkdLakN1cyttTmdxTWhLQTZyYjBBNHFZUVdaZEVFeFZ3NDBFdTJuNGZP?=
 =?utf-8?B?SlVhTEJBYmZ0V3c3UTQ2RmEzWEswTVJzTUZBV1Fta0ZZdXFVQUlwK2VCdHlu?=
 =?utf-8?B?R3VRZFRxSG1yRjZ6QUNIL0MwcUNaUm5QampxTFZGRW1yNDhBK2VMcFNZQ2Zu?=
 =?utf-8?B?MnBjRUJXc1VPQlo5TTI2WU5wM0RSNUhoRnFMbkVwZERPNkk1bWZEME5lOGRw?=
 =?utf-8?B?RkNsNDlXakNqVUY4V3pKMlRIV2RaSU0zd1drUVl4d1ZtTUVwQ0Vxb0Z6eE9Z?=
 =?utf-8?B?YTVISmgweGtVU0o3eHB1RkQ1VkM4V1dnRXg3MFdmRHR2NVdkbTAraXVRZis5?=
 =?utf-8?B?RysxelpjSU1Za1duak53MFJZbFcyL2RxNGpCVXp5OEczakg0VjdKb3VVUWRh?=
 =?utf-8?B?VXlGNHo5RFFJT3lMNy8vVnNJSW1oZHZOOTBwQzhxeno4YTI4SVNhWWFUZzMv?=
 =?utf-8?B?NjVsWVpiWVBjOWl3c2hFRHNvYTRJSTVoSzdCUTRlRlc0ZDJGSmhGbnpMaVZZ?=
 =?utf-8?B?c3NFMzVHR3djRjRkT0ZpRk1vNmNjSWM2UFNDeW9wZlQ3TXhLUzBSTENFSXlm?=
 =?utf-8?B?T0tqell5L2dYTWxCcXZQUVpGY0xhZCtJbElrUnNNakE2aU1rR3ZOQmpUYmpp?=
 =?utf-8?B?bTZLeHF6M0hqVDFyanR3cktUckVOMmJmTkp4S1N5TWNIOHlSL3RmV29rL2g2?=
 =?utf-8?B?VmpxcGxvZFdSa0Y3b1ZMYXNnc1F3QXZlclNrbTFoZU1HY3J4ektuc0NwZkVH?=
 =?utf-8?B?VFJzMnZxVWN1RFVENDF4WmR4NkpFOGR6bWZZL3dVdFBFZmxCL0FBa3lxS2Fp?=
 =?utf-8?B?cnRSMGdjYWUwczhQU0o0ZzNhNDBsSWNpUjhueGp1V2k5T2k2VC8xVzFIdnN4?=
 =?utf-8?B?a2dYSm13S1dlZmhwNHpWcmJ2WHRxQkg3cFhEMHlSOENUeGlNdExJVDg2SGlk?=
 =?utf-8?B?aTdBZlY4Tnl0YWVWNitaZitrbldYMmNIVWpzdHBkcnQ3UzEvVllkWlVEcUVw?=
 =?utf-8?B?WnNrSW9mbytKVmF2VkwwVGg2ZzE0aUtxbFdaU2xBMmovVUVhd3YvVFN6MjF2?=
 =?utf-8?B?WTdpc05GZXhsWEZDMSt1NFpTTXBlYkpYdE40WlBxUDE3bWl2Uy9sdXFJNlhM?=
 =?utf-8?B?YnN2VjJTeW84amU1MmdlMWhxZEw5YXdkVmhHQ28xSngxSjNrbEhBb2JZNzFG?=
 =?utf-8?B?R0JpbWtnZisvVVAzVWlGRDZHY0ZITFozRVVPRWM5UUhjd2t0U0NDVk9lMDl2?=
 =?utf-8?B?Y3lIekFicUFFVzdTOGJUdzg3aHpNdHhDN3pBY1c0L3Zld3dHWU9FeTlocDFW?=
 =?utf-8?B?RUpLUWEyenlqTTUwWmZMNjY2SDdxNFlpd3hXa3J3c2JkTFBQamRhUlNIaTRk?=
 =?utf-8?B?WDZNWTNsUThDQ0pPMzF5RFNsVENFRE51aFIwcXoxSm9JMnlZUFdTSVhMRXJQ?=
 =?utf-8?B?ZEN4dVR6NlVtUDBBT2x2alh0SkJ2SXF5a0tHZjNERnpvUHVZK1JnZW14UWMx?=
 =?utf-8?B?b0U0Smw2ak4rOXNuNXJzUWJ4MlFFOWJGaWUrd3ZMOVg3cXlxb1VwSEl4TnZG?=
 =?utf-8?B?My81N1IzODlzWDZOeHVDZURpTHBSdU9PYUdlckRhTC83ZGNGenQ1dlVYVW1n?=
 =?utf-8?B?UFFDbXVqQWFseTZTT2xVK1lQcVkyaU96bE4rNUIyb1RyakpTSWFqcjJCWjRB?=
 =?utf-8?B?d1NYeklVbDUzamxTeG9vYnMxWVZ0NE5kbHN4ZUFoQ0oyZ2VBN1BkOFNZbDVX?=
 =?utf-8?B?ajZGQUZTUnJ4WHpEK2lVRUY5aG16a0krZmloYnhyNmlMOGNLM1hoOXBMeUh5?=
 =?utf-8?B?aVR4MnM1SFdjY1pZeDhxY0RkQWxUMXRucXJSdzNnTUVac0hxTDVCVm9SMmhE?=
 =?utf-8?B?ZW9reUhYZjN6Q1o4V1JBM2xzeFBVWWcraTU3OTFOa0NWVTdIUUE3czVLVEFn?=
 =?utf-8?B?cWYyWDNNYi9BPT0=?=
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)(1800799024)(376014)(7416014)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?VGlNKy9kUzdsRy9mUWpxaTdqbTZDRlc0QkxiUlprVHdCbkUvUDBsRlk4OUxk?=
 =?utf-8?B?V1VHYVlFT1BZWlVPL3EvVzVMWEQyM2ticGpVdlM4cEcyYjVFU1JoTlJQSFBQ?=
 =?utf-8?B?c0Zsam9yOEZZdmlBenRVcEgzWjg3cEZnZTJJWjBwcEZPck0xdU5uTjVvczVl?=
 =?utf-8?B?OVlpZ0hUY1pCT090SUhXKzZhNnJrZnliZGY4NW9TaTlhNjFBcklOWWFQOEpV?=
 =?utf-8?B?TTRBcFYxZTNsTmR1RCs1R25WSFZaenRjUUZmTEduYW9zektxTDRzUXlyWVJh?=
 =?utf-8?B?NE5HRWlSZzhPcFZNQWsyWVUrOTVMUlphdGN3RkVVQWwvMGdWc2JpL2FZN2kw?=
 =?utf-8?B?a2ZMeWJ1T1R1UnVuV2pJcTUwbm5uQ3VXb3dZcDM4eUFuSGYwTGZPVUNEZ0lC?=
 =?utf-8?B?MFJQemNpeEdIcnhsRmFSbVVVT2ZHMXJTZlFUU1VCOGd0OUdCcVBUZllqQ0dD?=
 =?utf-8?B?aFBzVGdienB6QjZXYVpPeHVkRGU5N21hclA5R0lWVHFFUm02R0F2ZTVRSlU5?=
 =?utf-8?B?T3gwamRVUnpIWERadlJaVXRPU2doS0dYanBTVlJzNjJjS1ovTjJMUDVUWjd0?=
 =?utf-8?B?bEo4eGViTDRBMWt6TkJDdFAzdHNTSUkzMjFnOVEveDZzSE5sWlJIWFdJeHRK?=
 =?utf-8?B?UzlQNHNrK0drVWoyKzY3YUFGY0xUdVlnbGpjNWdvQmlrMVcwMnVKcFdnY0FC?=
 =?utf-8?B?MWdYZ2hocmFmczdSd09sNzczTHh0ekdiUW5OMjN2RjNscWhIMW9sZVV0WVFY?=
 =?utf-8?B?cisxR0ZOMkNIT2dKQ0R3Wkk0eWY2SEdta3FNbGdCMGJaTzBsYTIvNWp6OTE4?=
 =?utf-8?B?RXJ1d0tZQ01nVHFrUjBKMnE2dHo4aUlpMlBxdTN2VUVmR05yclJBL3J1WVBO?=
 =?utf-8?B?cnRCaGVjU1NENVMxZ3RVYzE2anp4YUx6eTV0L1EwTzdUUmUreGJYei8yc2VN?=
 =?utf-8?B?STJoT0ZPZGNhb1kvbkw5OVJodUhRMndFVGxVc1Z5U2hFQ1FHWXpTNHk4UUJR?=
 =?utf-8?B?enpKMDVRQWwyaW02dkRrVkdEVnpNMHl1QjJOMk9GWHdvZTR2T2E2NEJONTBD?=
 =?utf-8?B?Rlh6Z1c5RVpBK1lxM2JucVpkR3VjUFBKc2gxY2lXZDVxUHlxUk54NEcySHQr?=
 =?utf-8?B?WHdveFZuMExLZDNwaXQwcnYvQUROOUtKSkxkcUQ5UytnT3FOdjNRVExYNjYv?=
 =?utf-8?B?cmxnelYzQnB6SHBVNUJyeFN1aDlFVDl0SEhIN2U5VmhzUHZQUm9RQ2loSU91?=
 =?utf-8?B?SHFwVHRqYThNQUhRb1NjNGsybHJMTVY1WU5oMndORENGNDF3RnZSV3hhSVdY?=
 =?utf-8?B?cG81ek13dUFkUFJPSGdLMG5jWjJidzNwNUFwN2llSW9LN0tUTGJUMThINlRt?=
 =?utf-8?B?Z1ZDMXRZeEhYdjJ2cFM0bmQxOFh5NHVBY1J5UFA4K2hNQlRjcm1rQW1KNUZY?=
 =?utf-8?B?SVJWdnZDK0tma2NPZjlKZUNGbUd2Ujl1ZWhPZkwyZC9HV2cxcWdORHd6Qm1t?=
 =?utf-8?B?cDAzMFNhN01DQURrQmFKU1gwV1lTeWlWd1RMbjFrdzdvc3dqT0JnVFd2Y2hH?=
 =?utf-8?B?cU9KN0VsSjFnNVF0aGdwSVJjeXQzT05KblVza0xWWmdFejJSNnhHVVBSK0Ey?=
 =?utf-8?B?Si80VC9mZ0tUbTN3MnBBUlMrYW9vMzNMOC9IT2s5UUJHS29Takt5aWNYNUwx?=
 =?utf-8?B?MjVJUzRaL0doZHFmdUdFMXczTFBqV29VVFlBZytMa05tV05sM1RYVU9tUzBL?=
 =?utf-8?B?NmVPK245eXlIVmVTbmRDNUwrQkNYcGZSQXJIY3RzcmNPNWJQSWNQUWlJaXIx?=
 =?utf-8?B?dFZmYmtqdmtWUDI5SmVEd1lvMWhWT0JKbDBEWHVVWDNjQ05rQnVzL2g5RWVq?=
 =?utf-8?B?bi9yTFhaYklFdUF2bURqSDdWL2U3ZWd0WWUrSVQzVklQK1dlMytTY3V5eDRC?=
 =?utf-8?B?cEsyV1dzT3JaQzVNeGdVLzY0SWFoZkJzM1BxTUh2cnZCeUhjeEFWOU0yeFlP?=
 =?utf-8?B?V3JGeVBpSXpDaXdiY1A5TTVCVXdEeHNPY09XQ09JZXBzbmg4TTdUYVlndkRS?=
 =?utf-8?B?Wm5TMWhWNFFUWHA3SXF5SzhqUWpYTXVkZ0xkbmoyR2p1Z2tSNkpkOHdiRU95?=
 =?utf-8?B?Y1NRUGVPKzc3ek90b1VCWldvbytxbDRVRUR6MWh2TXRQd3pVeTdicm1oMUFj?=
 =?utf-8?B?R0E9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <1A5E1E8380321E4CA9F3D082A36103FF@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: be8cbbc4-82a1-4da7-f4a2-08dd86478974
X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Apr 2025 11:26:36.3264
 (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: GxyCdFE4oFs8WwAXVbRgXEyfiQD1VTAWRf1XntT/KzkoIIeJXVDMNIL8A02nWnybaj1jPcNI+lOavMG/kqu20Q==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR03MB7040

T24gMjguMDQuMjUgMTI6MDEsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAyOC4wNC4yMDI1IDEw
OjIxLCBNeWt5dGEgUG90dXJhaSB3cm90ZToNCj4+IE9uIDE3LjAzLjI1IDE3OjA3LCBKYW4gQmV1
bGljaCB3cm90ZToNCj4+PiBPbiAxNC4wMy4yMDI1IDE0OjM0LCBNeWt5dGEgUG90dXJhaSB3cm90
ZToNCj4+Pj4gLS0tIGEveGVuL2FyY2gvYXJtL3BjaS9wY2kuYw0KPj4+PiArKysgYi94ZW4vYXJj
aC9hcm0vcGNpL3BjaS5jDQo+Pj4+IEBAIC0xNiw5ICsxNiwxOCBAQA0KPj4+PiAgICAjaW5jbHVk
ZSA8eGVuL2RldmljZV90cmVlLmg+DQo+Pj4+ICAgICNpbmNsdWRlIDx4ZW4vZXJybm8uaD4NCj4+
Pj4gICAgI2luY2x1ZGUgPHhlbi9pbml0Lmg+DQo+Pj4+ICsjaW5jbHVkZSA8eGVuL2lvbW11Lmg+
DQo+Pj4+ICAgICNpbmNsdWRlIDx4ZW4vcGFyYW0uaD4NCj4+Pj4gICAgI2luY2x1ZGUgPHhlbi9w
Y2kuaD4NCj4+Pj4gICAgDQo+Pj4+ICtib29sIGlzX3BjaV9wYXNzdGhyb3VnaF9lbmFibGVkKGJv
b2wgZG9tMCkNCj4+Pj4gK3sNCj4+Pj4gKyAgICBpZiAoIGRvbTAgKQ0KPj4+PiArICAgICAgICBy
ZXR1cm4gcGNpX3Bhc3N0aHJvdWdoX2VuYWJsZWQgfHwgaW9tbXVfZW5hYmxlZDsNCj4+Pg0KPj4+
IEFzIEkgdGhpbmsgSSBzYWlkIGJlZm9yZSAtIHRoZSBmdW5jdGlvbidzIG5hbWUgbm93IG5vIGxv
bmdlciBleHByZXNzZXMNCj4+PiB3aGF0IGl0IHJlYWxseSBjaGVja3MuIFRoYXQgKGltbyBoZWF2
aWx5KSBtaXNsZWFkaW5nIGF0IHRoZSB1c2Ugc2l0ZXMNCj4+PiBvZiB0aGlzIGZ1bmN0aW9uLg0K
Pj4NCj4+IEkndmUgc3BlbnQgc29tZSBtb3JlIHRpbWUgdGhpbmtpbmcgYWJvdXQgaG93IHRvIGJl
dHRlciBkZWFsIHdpdGggdGhpcy4NCj4+IEluIHRoZSBlbmQsIEkgdGhpbmsgeW91ciBlYXJsaWVy
IHN1Z2dlc3Rpb24gYWJvdXQgaW50cm9kdWNpbmcgYSBuZXcgYXJjaA0KPj4gc3BlY2lmaWMgZnVu
Y3Rpb24gaXMgdGhlIGJlc3QgYXBwcm9hY2gsIGJ1dCBJIHdhbnQgdG8gYWdyZWUgb24gdGhlDQo+
PiBuYW1pbmcgYmVmb3JlIHNlbmRpbmcgbmV3IHBhdGNoZXMuIFdvdWxkICJhcmNoX3JlcXVpcmVz
X3BjaV9waHlzZGV2IiBiZQ0KPj4gYW4gYXBwcm9wcmlhdGUgbmFtZSBpbiB5b3VyIG9waW5pb24/
DQo+Pg0KPj4gQXQgdGhlIGNhbGwgc2l0ZXMgaXQgd2lsbCBsb29rIGxpa2UgdGhpczoNCj4+ICAg
ICAgIGNhc2UgUEhZU0RFVk9QX3BjaV9kZXZpY2VfcmVtb3ZlOiB7DQo+PiAgICAgICAgICAgc3Ry
dWN0IHBoeXNkZXZfcGNpX2RldmljZSBkZXY7DQo+Pg0KPj4gICAgICAgICAgIGlmICggIWlzX3Bj
aV9wYXNzdGhyb3VnaF9lbmFibGVkKCkgJiYgIWFyY2hfcmVxdWlyZXNfcGNpX3BoeXNkZXYoKSkN
Cj4+ICAgICAgICAgICAgICAgcmV0dXJuIC1FT1BOT1RTVVBQOw0KPiANCj4gVGhlcmUgYXJlIHNl
dmVyYWwgcXVlc3Rpb25zIHRoYXQgYWZmZWN0IG5hbWluZzogSXMgaXQgcmVhbGx5ICJyZXF1aXJl
cyI/IElzDQo+IGl0IHJlYWxseSBhbGwgUENJLXJlbGF0ZWQgcGh5c2Rldm9wcz8gSXMgdGhlIG9y
ZGVyaW5nIG9mIG5hbWluZyBlbGVtZW50cyBpbg0KPiBsaW5lIHdpdGggd2hhdCB3ZSB1c2UgZWxz
ZXdoZXJlIChhcmNoXyBmaXJzdCBpcywgYnV0IHBlcmhhcHMgZWl0aGVyIHBjaSBvcg0KPiBwaHlz
ZGV2b3Agd2FudHMgdG8gbW92ZSBlYXJsaWVyKT8NCj4gDQo+IEphbg0KDQpJIHVuZGVyc3RhbmQg
dGhlIGlzc3VlIHdpdGggdGhlIG9yZGVyaW5nLCB3aWxsIA0KImFyY2hfcGNpX3JlcXVpcmVzX3Bo
eXNkZXZfb3BzIiBvciAiYXJjaF9waHlzZGV2X3BjaV91cGRhdGVfcmVxdWlyZWQiIGJlIA0KYmV0
dGVyPyBSZWdhcmRpbmcgdGhlIHNwZWNpZmljIG9wcywgb25seSBhZGQvcmVtb3ZlIGFyZSBuZWVk
ZWQsIGJ1dCBJIGFtIA0Kbm90IHN1cmUgaG93IHRvIGVsZWdhbnRseSBlbmNvZGUgdGhpcyBpbiB0
aGUgbmFtZS4gTWF5YmUgeW91IGNhbiBzdWdnZXN0IA0Kc29tZXRoaW5nIGJldHRlciBpZiB5b3Ug
aGF2ZSBzb21ldGhpbmcgc3BlY2lmaWMgaW4gbWluZD8NCg0KLS0gDQpNeWt5dGE=


From xen-devel-bounces@lists.xenproject.org Mon Apr 28 11:29:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 11:29:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.970567.1359220 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9Mfh-0004rA-UT; Mon, 28 Apr 2025 11:29:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 970567.1359220; Mon, 28 Apr 2025 11:29: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 1u9Mfh-0004r3-Rg; Mon, 28 Apr 2025 11:29:13 +0000
Received: by outflank-mailman (input) for mailman id 970567;
 Mon, 28 Apr 2025 11:29: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=5hYN=XO=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u9Mff-0004qq-Qd
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 11:29:11 +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 007d2ee7-2424-11f0-9ffb-bf95429c2676;
 Mon, 28 Apr 2025 13:29:09 +0200 (CEST)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-39c1efc457bso3283278f8f.2
 for <xen-devel@lists.xenproject.org>; Mon, 28 Apr 2025 04:29:09 -0700 (PDT)
Received: from [10.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-3a073e5c68esm10768925f8f.82.2025.04.28.04.29.08
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 28 Apr 2025 04:29: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: 007d2ee7-2424-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745839749; x=1746444549; 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=mN3gNNgsaWkJoaA7AforPMWrjwvk0E5HAamOs0gAg/Y=;
        b=OIqtEo9SLBsF1XNs6WkjA3DKDnZlVUSH3QXwTYD9n12Yi4TgP35QiLxCKB7OEyS07n
         b7D7R65ulOM8hmb2fDDftvw1tWWvXaueXzl2p6NlBNUcP3J/BcEkSK3fc2YT6OJ3OLih
         VXILvVojefQ7u0fzn5s1loNbevZnGjpfQbmqshvoqtcpp0RFk5eUI9T1vm90MVySznS+
         omp7qygygDEW6FWyOTomTvWM0U2aHo2c0v6RhH1IXbGyEJ6B0Lyw6jQ05E54aa7YCX5d
         Gm2wOD08rOTUAIQ1Ld51T9LldW/0jBJGbyhHxsfEr85Ux2cfkITHq+TUbBfI5o4oMqJY
         hTfA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745839749; x=1746444549;
        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=mN3gNNgsaWkJoaA7AforPMWrjwvk0E5HAamOs0gAg/Y=;
        b=r3D/JUns1NANpSqSJCGf0qDH1mw4JvGBrFQAm49ey0sEeHf616DcdiKobkScEw5w/e
         l+K+B1U7VBqZRhIT8awYIqbBF4HAvt6zxw3Oyf5h2RHyarRfkvvt+gbPbjNg5s6fSEby
         QkbAueeL10WaZi/qvrwd1PlaF90oJZ3ykjpf0nT3pp7BXp6OKHedI2x1Ohitl0aiwBub
         cJy13V4I4jePZoSkXN/p88sXSvKLvDX4wcSEKTXHbFQ5QF8KKN7jXZQMRPNeUUFYwrMR
         go0P+CQOXe9GWyuBULsF5QN+8Hu8dOgQbFKVc1sg1MiPw94/lI5tJKAoy+dQGK364FhM
         /AAQ==
X-Gm-Message-State: AOJu0YwCPv9DboKu/SwCpyDzm4H/JhbZNQCGP7guge/799WlhdQcOTjv
	dmpouFKLFSmeW+68XQiN6FRaorpRzok70dZz3VU0OFOtPHVBBiNBFlBcf0YPL2Ri96gKqh5M4ao
	=
X-Gm-Gg: ASbGnctaDk7ckNKTPm4M2jV4oXO7rJilpppYnx7gJxRdUUjqk2SHDR3N/zFu1vMA734
	g4MrxA3VfkSJ2aygMnxmbH/6Kv9ZRirSGa3lygGjdERrGl1a2tAxN/hl1Jgb2c2ix8l5QnUKkWk
	oeETz5L2+iOCbjKqREnvyYcGnL1zTmsTAFSU9ejlz2CliBuOSZkehq4ThsrdS5/QNV8VyQm3EoO
	1Dljfl4o0JZsbPe4BZdxAb4eSA1tEPlRGHszkJaPLvJD0Q/RN/n4MDIOOHh0d5LOKj3aiW4T1up
	QYEJ91O3fAMZz5j3mw3Roe7unsHC24NVy5ZP1g1FEHf5Vmllca7QYlaViapH3UZenVpMPT5I2as
	+c5MGIU9IMoMGUoUs9DICyLOyIg==
X-Google-Smtp-Source: AGHT+IGF9RPUny99dJc5Lj9TPw36yCnwMnSIlvrPZkwN8T53DmLQZTIK3maTImuhR/FaAqPwSZKGkg==
X-Received: by 2002:a05:6000:1a8e:b0:391:3b11:d604 with SMTP id ffacd0b85a97d-3a07adb1d30mr6994175f8f.54.1745839749085;
        Mon, 28 Apr 2025 04:29:09 -0700 (PDT)
Message-ID: <c8eaa6aa-d63d-471c-b66f-6a8c00e03ba1@suse.com>
Date: Mon, 28 Apr 2025 13:29:08 +0200
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>,
 Fabian Specht <f.specht@tum.de>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH] x86emul: avoid UB shifts in FLDENV/FRSTOR handling
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+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

16-bit quantities, no matter whether expressed as uint16_t or as
bitfield, will be promoted to plain int before doing any arithmetic on
them. Shifting such values by 16 will therefore shift into the sign bit,
which is UB if that bit becomes set. To account for all reads and all
writes accessing opposite members of the same union, introduce yet more
local variables to reduce the shift counts to 12.

Fixes: be55ed744ed8 ("x86emul: support FLDENV and FRSTOR")
Reported-by: Fabian Specht <f.specht@tum.de>
Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/xen/arch/x86/x86_emulate/blk.c
+++ b/xen/arch/x86/x86_emulate/blk.c
@@ -81,17 +81,19 @@ int x86_emul_blk(
             if ( !s->rex_prefix )
             {
                 /* Convert 32-bit real/vm86 to 32-bit prot format. */
-                unsigned int fip = fpstate.env.mode.real.fip_lo +
-                                   (fpstate.env.mode.real.fip_hi << 16);
-                unsigned int fdp = fpstate.env.mode.real.fdp_lo +
-                                   (fpstate.env.mode.real.fdp_hi << 16);
+                unsigned int fip = fpstate.env.mode.real.fip_lo & 0xf;
+                unsigned int fcs = (fpstate.env.mode.real.fip_lo >> 4) |
+                                   (fpstate.env.mode.real.fip_hi << 12);
+                unsigned int fdp = fpstate.env.mode.real.fdp_lo & 0xf;
+                unsigned int fds = (fpstate.env.mode.real.fdp_lo >> 4) |
+                                   (fpstate.env.mode.real.fdp_hi << 12);
                 unsigned int fop = fpstate.env.mode.real.fop;
 
-                fpstate.env.mode.prot.fip = fip & 0xf;
-                fpstate.env.mode.prot.fcs = fip >> 4;
+                fpstate.env.mode.prot.fip = fip;
+                fpstate.env.mode.prot.fcs = fcs;
                 fpstate.env.mode.prot.fop = fop;
-                fpstate.env.mode.prot.fdp = fdp & 0xf;
-                fpstate.env.mode.prot.fds = fdp >> 4;
+                fpstate.env.mode.prot.fdp = fdp;
+                fpstate.env.mode.prot.fds = fds;
             }
 
             if ( bytes == sizeof(fpstate.env) )
@@ -121,17 +123,19 @@ int x86_emul_blk(
             else
             {
                 /* Convert 16-bit real/vm86 to 32-bit prot format. */
-                unsigned int fip = env->mode.real.fip_lo +
-                                   (env->mode.real.fip_hi << 16);
-                unsigned int fdp = env->mode.real.fdp_lo +
-                                   (env->mode.real.fdp_hi << 16);
+                unsigned int fip = env->mode.real.fip_lo & 0xf;
+                unsigned int fcs = (env->mode.real.fip_lo >> 4) |
+                                   (env->mode.real.fip_hi << 12);
+                unsigned int fdp = env->mode.real.fdp_lo & 0xf;
+                unsigned int fds = (env->mode.real.fdp_lo >> 4) |
+                                   (env->mode.real.fdp_hi << 12);
                 unsigned int fop = env->mode.real.fop;
 
-                fpstate.env.mode.prot.fip = fip & 0xf;
-                fpstate.env.mode.prot.fcs = fip >> 4;
+                fpstate.env.mode.prot.fip = fip;
+                fpstate.env.mode.prot.fcs = fcs;
                 fpstate.env.mode.prot.fop = fop;
-                fpstate.env.mode.prot.fdp = fdp & 0xf;
-                fpstate.env.mode.prot.fds = fdp >> 4;
+                fpstate.env.mode.prot.fdp = fdp;
+                fpstate.env.mode.prot.fds = fds;
             }
 
             if ( bytes == sizeof(*env) )


From xen-devel-bounces@lists.xenproject.org Mon Apr 28 11:36:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 11:36:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.970580.1359231 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9Mmi-000709-LI; Mon, 28 Apr 2025 11:36:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 970580.1359231; Mon, 28 Apr 2025 11:36:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9Mmi-000702-If; Mon, 28 Apr 2025 11:36:28 +0000
Received: by outflank-mailman (input) for mailman id 970580;
 Mon, 28 Apr 2025 11:36: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=5hYN=XO=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u9Mmh-0006zw-ND
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 11:36:27 +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 0337c792-2425-11f0-9ffb-bf95429c2676;
 Mon, 28 Apr 2025 13:36:23 +0200 (CEST)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-43cfecdd8b2so28806485e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 28 Apr 2025 04:36:23 -0700 (PDT)
Received: from [10.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-4409d1e19e1sm152179965e9.0.2025.04.28.04.36.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 28 Apr 2025 04:36:22 -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: 0337c792-2425-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745840183; x=1746444983; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt: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/VEjH8Mc2rJbHbL8+rjku2zwWptdjvvKxW5xxcn4t0=;
        b=a3wgJwwndxxzzsu9xsPm4crtPkm2mAUnHTKrppgM7zj+E1xfeQu15tbqeqllHt1QjQ
         Jv3kgpBfxoU6j5GCqOTJ4K4evaQ8DOdstuzZ4+e2aBpURVNgd3vOMYv7KLAAea6/OoAZ
         1Xom7epZEYfTDH8vVgbl4MZpJ1UtyEzQw4ff+ELK+9lGi3LxwrVTug9FxP2IrAAA16EI
         OfOdWOQ+MtrsHjC+he8ALdwy5qNVkBfk82ufhOy7MEmY1x+hiDeBUXVRZyxTa6adCyFg
         6Yyk7M52+6OcY1JPH0qeMu0jdX7mKFS1N7CbuKv72cxQ45/EFfmqq3dpdqxO7Y78+TSJ
         oEuQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745840183; x=1746444983;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references: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/VEjH8Mc2rJbHbL8+rjku2zwWptdjvvKxW5xxcn4t0=;
        b=Plq2myfS7I1nVGZaYeVjTZsUCBnnTy0dGLAOQYbMcfsdXwmZiNmqGZStCjQN+MVFIe
         P75RhtQcUL7pd16au5tSZZwuvuosWRaB4RRNVnWQ3YLgrt/xVDQFPPvdp99OxeufYW29
         ZyLRmOt/7F8jhTrvcm2c7p9ua+YCOssI2FnGRYZCQZ/xD9cbD0F+q7GXRUJr2IR/1bkb
         0FkjTJtRonJZswP0NvZa0LZvzt6JqY0fNMuo+RPwPKbtN4VevTxA2zisOoCrTFrZzWRZ
         SXKt1EJuHGmCTi+v4ttyH7834BITbQ55x7VDusZxQZZraGkSKWRasa8QpLTZB5dhxgd0
         hTLw==
X-Forwarded-Encrypted: i=1; AJvYcCX8YqG+6AcsiK9TVOLWzpz/MJ9pdbccg8j+iZ01kjUcLyP/CT8PA5a2bBgisBrkdezBOUyZWvUJpx0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwvKsNhToq49hJE2PE8T+vYH03DDZ7s7VZRdh0OdrVbociaVuFw
	QeK7UDBnw+6dT1u/WiQyRSy0+wmPC833sk+sHBNRlyiSlokoju5M61tt4n2nHg==
X-Gm-Gg: ASbGncsE0/54bW8k0YMXjJcPrNpKdofahzRjzfZc5G5o0byks13dp/ZCNTg5mYPMWWH
	J24jXfuiNpyzI9awPo3x6dki0AZIM9q5DRI+/R1gdn0/QBHDvs26CaMaBSHqfbKcMaPdvVqrV0y
	3kIQtq56cnt2M5Dl0X/kmz8x8Q0NKamX54cXlifFGRLF3ev1e8yFTCpQ9S8vukzW8D8XqJVj9CE
	lQzF59mcoavDCH0nCSAaf4Sf9DtPOhYcQTSxpASKczzGaHhc02DKm1zTjWtTAoBYuyjisDQA+ss
	taCsKBu3qP694gpTYrGby9JGAaAnMRxoQi3TG5JWf1iNpIxBKkyAMEoGgLexYWhFqo/vJAn3OBo
	MOYw2YcCpR2pF4DoPcVRstCZO1g==
X-Google-Smtp-Source: AGHT+IGZngNmxfjlOcIVuckB06bsG3ff4LX2Eu1RYrVZlFgZSinlZuAxw7ZKBhi+Nw9ezkBlp53Qig==
X-Received: by 2002:a05:600c:1395:b0:43d:878c:7c40 with SMTP id 5b1f17b1804b1-440a65e4642mr129508715e9.10.1745840183062;
        Mon, 28 Apr 2025 04:36:23 -0700 (PDT)
Message-ID: <49ef6503-59c4-4802-931b-cfbc5a3b213f@suse.com>
Date: Mon, 28 Apr 2025 13:36:21 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v9 7/8] xen/arm: enable dom0 to use PCI devices with
 pci-passthrough=no
To: Mykyta Poturai <Mykyta_Poturai@epam.com>
Cc: Stewart Hildebrand <stewart.hildebrand@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <cover.1741958647.git.mykyta_poturai@epam.com>
 <132afbca390edd6e9fd7b1ffacf6c5aff0d29aa7.1741958647.git.mykyta_poturai@epam.com>
 <7fa0bde7-3aa9-48f4-a0ed-d03216edcc4e@suse.com>
 <c33b906f-f9cb-45e5-ac84-28dc687a6f7a@epam.com>
 <b4baad49-f751-42e6-9785-6d71aac3ebc3@suse.com>
 <4b5c5c57-2d7a-41ef-8ab8-caf9f2593b2c@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: <4b5c5c57-2d7a-41ef-8ab8-caf9f2593b2c@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 28.04.2025 13:26, Mykyta Poturai wrote:
> On 28.04.25 12:01, Jan Beulich wrote:
>> On 28.04.2025 10:21, Mykyta Poturai wrote:
>>> On 17.03.25 17:07, Jan Beulich wrote:
>>>> On 14.03.2025 14:34, Mykyta Poturai wrote:
>>>>> --- a/xen/arch/arm/pci/pci.c
>>>>> +++ b/xen/arch/arm/pci/pci.c
>>>>> @@ -16,9 +16,18 @@
>>>>>    #include <xen/device_tree.h>
>>>>>    #include <xen/errno.h>
>>>>>    #include <xen/init.h>
>>>>> +#include <xen/iommu.h>
>>>>>    #include <xen/param.h>
>>>>>    #include <xen/pci.h>
>>>>>    
>>>>> +bool is_pci_passthrough_enabled(bool dom0)
>>>>> +{
>>>>> +    if ( dom0 )
>>>>> +        return pci_passthrough_enabled || iommu_enabled;
>>>>
>>>> As I think I said before - the function's name now no longer expresses
>>>> what it really checks. That (imo heavily) misleading at the use sites
>>>> of this function.
>>>
>>> I've spent some more time thinking about how to better deal with this.
>>> In the end, I think your earlier suggestion about introducing a new arch
>>> specific function is the best approach, but I want to agree on the
>>> naming before sending new patches. Would "arch_requires_pci_physdev" be
>>> an appropriate name in your opinion?
>>>
>>> At the call sites it will look like this:
>>>       case PHYSDEVOP_pci_device_remove: {
>>>           struct physdev_pci_device dev;
>>>
>>>           if ( !is_pci_passthrough_enabled() && !arch_requires_pci_physdev())
>>>               return -EOPNOTSUPP;
>>
>> There are several questions that affect naming: Is it really "requires"? Is
>> it really all PCI-related physdevops? Is the ordering of naming elements in
>> line with what we use elsewhere (arch_ first is, but perhaps either pci or
>> physdevop wants to move earlier)?
> 
> I understand the issue with the ordering, will 
> "arch_pci_requires_physdev_ops" or "arch_physdev_pci_update_required" be 
> better? Regarding the specific ops, only add/remove are needed, but I am 
> not sure how to elegantly encode this in the name. Maybe you can suggest 
> something better if you have something specific in mind?

Simply arch_pci_device_physdevop()? This would also avoid the question if
it's "requires", "wants", or yet something else. (I'm not going to insist
that the verb be omitted, though. If it's included, I'd ask though that
it match in tense the "enabled" in the other predicate.) And it would cover
PHYSDEVOP_pci_device_reset as well, which sooner or later I expect you'll
discover you want/need Dom0 to issue, too.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Apr 28 11:39:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 11:39:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.970592.1359240 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9Mpp-0007Xd-3K; Mon, 28 Apr 2025 11:39:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 970592.1359240; Mon, 28 Apr 2025 11:39: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 1u9Mpp-0007XW-0H; Mon, 28 Apr 2025 11:39:41 +0000
Received: by outflank-mailman (input) for mailman id 970592;
 Mon, 28 Apr 2025 11:39: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=1Olx=XO=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u9Mpo-0007XQ-DL
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 11:39:40 +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 771cb681-2425-11f0-9ffb-bf95429c2676;
 Mon, 28 Apr 2025 13:39:38 +0200 (CEST)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-391342fc0b5so3514506f8f.3
 for <xen-devel@lists.xenproject.org>; Mon, 28 Apr 2025 04:39:38 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3a073cbe386sm10745519f8f.42.2025.04.28.04.39.36
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 28 Apr 2025 04:39:37 -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: 771cb681-2425-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745840377; x=1746445177; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=nPKO/xNIYefnPKOouXiCqcAbJj0eh0MSPZil9ZG/Io8=;
        b=OqoMwzAJrkvvl9U47OhqfZcuwiiS2lz+eMuItoSkkmFY4myS/rN90olOZEoDRxt5JU
         E72zJ19upmUucwC7vImqji9QhWYuMNRCtcb6PA9ne7+WrvApD4U2FKvNjUVgH4QXxnEY
         Kv1BPmB69GGm3hvaV96fy14AX3bNeFP+SHNzU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745840377; x=1746445177;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=nPKO/xNIYefnPKOouXiCqcAbJj0eh0MSPZil9ZG/Io8=;
        b=HffjxPb5zX1jPANxr+dCr2p5krXYGN4y59RjYsZsvwcp/bDpiqjWqn7wtJJuBoTco/
         GncenTdvLIpd9sop8mGptYdojt3zu34ZIf5aS3c4p21wubnL8Xz3/InSqT3yvXYiNGre
         Z/0a8JdkofWlT3+xLeWC7XOYZ4OXQFcawQnfFvY6UylD2pLcHtC0Ux40pEWkRUpHmta2
         0DdvfB6cckACH+RFS73I60WmK8LeUdCLy0aV28xowG2aygdpkHDAVMq9pn2FtvGXMZTU
         spowhn2kLXwIsWP0+oITSnvSn9Vqv9mQnVSNzOIMe3qUSe8OdoSYoa/GDzQeP2zql7Xz
         BsPQ==
X-Forwarded-Encrypted: i=1; AJvYcCVVSnW+/HazZ07u/hE+2mKsx5O9RxOpRWr73d1PnmcHEfVoUtw/Qgw0TvszHDYKi4Zd0Mcm09Huk44=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwJJIN6RoLl+G78aLt7KmPttfqUG1wbkhVW2xIoTlK7LyNxrmM8
	b92M7nFL0K1NZIo6Et6nvXJVcp7PDY9Lh5xAyVGR5EPwTxXJUhCtkhqJ8caheYM=
X-Gm-Gg: ASbGncu3IF92x3Bb71NldSePUsVFDmztgf7+nwvZRcGzcBUPsaRJx/7aP+HAzwtY6y9
	lP5Q7UmY89Q6ceo7URa4H42MMVZ25E8vbvH7cCr3FFHjMaE+tiIuUgsTZcYjYBbRS4A5nxg/hHx
	h9za0Avk9l1taGGmCFJdpCGmn6FCjABvUg1eDqmko5mC+XlQhiXemduLfVqLgBUVLqEbt2lv8qi
	vlkhNGynHwZz/0RV+u2lNCxsSn0tmw0JDnouiaW5t4BaSPD84HuvEitazh6ZdvLuLgoFF10sSxj
	vLgV3hCRqXajP8m0zO7p0b9LkMqtOGMHfcfrwz/BRLSpcRg9r1w6OK0RGvSb7I1sJzaC5nwGfG9
	XLAHRIw==
X-Google-Smtp-Source: AGHT+IGe7ERBMii86zEn87NNl2LpZi2E3A9RXM6Fym0C6OAhksFEUmzcvJagdUFZFNbtz/tOgDGOJA==
X-Received: by 2002:a05:6000:4382:b0:39c:2665:2c13 with SMTP id ffacd0b85a97d-3a07ab8a510mr6595213f8f.54.1745840377605;
        Mon, 28 Apr 2025 04:39:37 -0700 (PDT)
Message-ID: <0b47b52c-e998-430a-90f6-e95bda74524d@citrix.com>
Date: Mon, 28 Apr 2025 12:39:36 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 1/3] x86/vmx: Introduce vmread()
To: dmkhn@proton.me, xen-devel@lists.xenproject.org
Cc: jbeulich@suse.com, roger.pau@citrix.com, dmukhin@ford.com
References: <20250426072720.39317-1-dmukhin@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: <20250426072720.39317-1-dmukhin@ford.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 26/04/2025 8:27 am, dmkhn@proton.me wrote:
> From: Denis Mukhin <dmukhin@ford.com>
>
> The current implementation of __vmread() returns the result via pointer
> argument which leads to excess code in some places.
>
> Introduce a new vmread() function as suggested in [1].
>
> [1] https://lore.kernel.org/xen-devel/c452a1d7-4a57-4c5f-8a83-36a74ff228ec@citrix.com/

Usually for this, we use

Suggested-by: whoever

rather than links to emails.  I can fix on commit.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Apr 28 11:48:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 11:48:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.970603.1359251 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9Myb-0001F1-TW; Mon, 28 Apr 2025 11:48:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 970603.1359251; Mon, 28 Apr 2025 11:48: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 1u9Myb-0001Eu-QA; Mon, 28 Apr 2025 11:48:45 +0000
Received: by outflank-mailman (input) for mailman id 970603;
 Mon, 28 Apr 2025 11:48: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=1Olx=XO=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u9Mya-0001Eo-Nd
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 11:48:44 +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 bc5b29ce-2426-11f0-9eb4-5ba50f476ded;
 Mon, 28 Apr 2025 13:48:43 +0200 (CEST)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-43cfebc343dso31206245e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 28 Apr 2025 04:48:43 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4409d2a13bdsm153202605e9.9.2025.04.28.04.48.42
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 28 Apr 2025 04:48:42 -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: bc5b29ce-2426-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745840923; x=1746445723; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=PZ2km4WSA94Aa5syuvQrVCCUr79cfWp8AV8VMfZTCGk=;
        b=Ay1VwIOLMRvtb3zMh3ny/FEhz3ICzUI2lS70yD792xQJTCeAbu3jYGzhbb2kQuOf7o
         yTFxbEOs6IBBV5ocv4us6jorT7jJKbasDBCtfOTFju99I12WUCbaHzcn2R51XDZ1ofsz
         Qq4OtoSTlUMPHAKgZHx3Bq1a70BPTA/eB+vU4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745840923; x=1746445723;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=PZ2km4WSA94Aa5syuvQrVCCUr79cfWp8AV8VMfZTCGk=;
        b=vB2JemD+xnPg4ksuspFvobrw41jc4vWSQ8nA2tpsf0QWBdEjk5fU8pQimb/RLXIuN1
         gUTF+9YrSIQRT2ZqUu2NYctd40U60OTdOFKZ84jAbLVZjDJlOQX1iLWyqE6LmEbTHiHC
         fNHSEc+xOksyNod+g4jVek/BkU1nitNTOLvIIpYSs4mhitUML9NTgY+JDbGJHWYop+oI
         adsNjf8wcg0Ww0z6a9bdtj3NznGDL0pjqfLK1KGRUhij4oSfOnCUCiFtHK/czV/EiDhD
         z8oyvUswyedl5kbunHSpovHlWNKveXEFUhM69533t/rOnRhzVCSZC9u1KpB677+s0QVh
         Bw5Q==
X-Forwarded-Encrypted: i=1; AJvYcCWvS+IwJj8UcAZWfkIfNPqQbT2Jy547BsduNCNl6dNHTzzEZj+I3XI50P+RxjwvrUsJ3Rq5jI0cEaE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxKTYoe9Kd/21eKTaUDj1fbUvSRJvlI0Ceydw0Y7RJfe2c4njFr
	Gn3DX5eOBnyWw9NDAe+0jD1vSBEx1SDYg8ixEgTBvuw6OMCb0xXRcymUpj+h8hQ=
X-Gm-Gg: ASbGnctHYlZ1vC0VZhrGzDQGgdZRuALNjzCwomcVSY3lisLYnRXR+6PLdB2Ce8JimC4
	Yj0WoZLI0EoLwgNQJVFc+lWPXPHddIla3qN3STvX4R39n4i+V72p/uq0Y/j8hNA2m0iA6mJMq46
	NaSa4YYtSqIvXg81bR4vrF8n2B25Jno4kzZ/U+xUEyC0T2ZLkHNQP7wCTNKV52gW/jONDVD8Hdu
	Z4Q/egS08YcOf6eLb/wfB4Siytjf+lj9NF58kD/LdVUu5Dz4JCkbupleaoXe6MFibBeULI8kl9T
	hTQHeW60eEuzZMMZIH3fhzJUAo2PFnAzI1XM357zti8RRApNSNKza4cyVuOguogXKwQmb8ufcAd
	BvibGPH192U8lZnTN
X-Google-Smtp-Source: AGHT+IEQyq+CCqEmndNHbRbpnGXLAZ4saxOHmkFuK5TkVdz3dbsb5dMWVbtinWVSYoQqR6Mdx9gLgA==
X-Received: by 2002:a05:600c:3b18:b0:43c:f050:fee8 with SMTP id 5b1f17b1804b1-440a669ea55mr79399765e9.20.1745840923165;
        Mon, 28 Apr 2025 04:48:43 -0700 (PDT)
Message-ID: <27800fcd-76e3-429c-921d-72bf7670686d@citrix.com>
Date: Mon, 28 Apr 2025 12:48:42 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 2/3] x86/vmx: Update DR7 type
To: dmkhn@proton.me, xen-devel@lists.xenproject.org
Cc: jbeulich@suse.com, roger.pau@citrix.com, dmukhin@ford.com
References: <20250426072739.39373-1-dmukhin@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: <20250426072739.39373-1-dmukhin@ford.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 26/04/2025 8:27 am, dmkhn@proton.me wrote:
> From: Denis Mukhin <dmukhin@ford.com>
>
> Convert the DR7 type to `unsigned int` and fix the accesses where necessary.
>
> [1] https://lore.kernel.org/xen-devel/0d01646b-83e3-4a02-b365-d149d2664e73@citrix.com/
>
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> ---
>  xen/arch/x86/hvm/vmx/vmx.c        | 2 +-
>  xen/arch/x86/include/asm/domain.h | 2 +-
>  2 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c
> index 4883bd823d..75c6992172 100644
> --- a/xen/arch/x86/hvm/vmx/vmx.c
> +++ b/xen/arch/x86/hvm/vmx/vmx.c
> @@ -926,7 +926,7 @@ static void vmx_save_dr(struct vcpu *v)
>      v->arch.dr[3] = read_debugreg(3);
>      v->arch.dr6   = read_debugreg(6);
>      /* DR7 must be saved as it is used by vmx_restore_dr(). */
> -    __vmread(GUEST_DR7, &v->arch.dr7);
> +    v->arch.dr7 = vmread(GUEST_DR7);

Two minor points.  The = wants lining up for vertical tabulation, and ...

>  }
>  
>  static void __restore_debug_registers(struct vcpu *v)
> diff --git a/xen/arch/x86/include/asm/domain.h b/xen/arch/x86/include/asm/domain.h
> index 5fc1d1e5d0..a54ef3a8c1 100644
> --- a/xen/arch/x86/include/asm/domain.h
> +++ b/xen/arch/x86/include/asm/domain.h
> @@ -595,7 +595,7 @@ struct arch_vcpu
>  
>      /* Debug registers. */
>      unsigned long dr[4];
> -    unsigned long dr7; /* Ideally int, but __vmread() needs long. */
> +    unsigned int dr7;
>      unsigned int dr6;

... these fields want switching back around now that dr7 is unsigned int.

We always access in numeric order, and they're only out-of-order for
packing reasons.

Can fix on commit.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Apr 28 11:51:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 11:51:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.970618.1359262 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9N0z-0002tI-E5; Mon, 28 Apr 2025 11:51:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 970618.1359262; Mon, 28 Apr 2025 11: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 1u9N0z-0002tB-91; Mon, 28 Apr 2025 11:51:13 +0000
Received: by outflank-mailman (input) for mailman id 970618;
 Mon, 28 Apr 2025 11:51: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=A+1Z=XO=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u9N0x-0002sy-Ck
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 11:51:11 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on2061c.outbound.protection.outlook.com
 [2a01:111:f403:2418::61c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 12e3247c-2427-11f0-9eb4-5ba50f476ded;
 Mon, 28 Apr 2025 13:51:09 +0200 (CEST)
Received: from BL0PR05CA0026.namprd05.prod.outlook.com (2603:10b6:208:91::36)
 by MN0PR12MB6221.namprd12.prod.outlook.com (2603:10b6:208:3c3::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.30; Mon, 28 Apr
 2025 11:51:03 +0000
Received: from MN1PEPF0000ECDB.namprd02.prod.outlook.com
 (2603:10b6:208:91:cafe::12) by BL0PR05CA0026.outlook.office365.com
 (2603:10b6:208:91::36) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.33 via Frontend Transport; Mon,
 28 Apr 2025 11:51:03 +0000
Received: from SATLEXMB04.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.8678.33 via Frontend Transport; Mon, 28 Apr 2025 11:51:02 +0000
Received: from localhost (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; Mon, 28 Apr
 2025 06:50:57 -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: 12e3247c-2427-11f0-9eb4-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Gx9M+9+kbP12dS3FN2ML1wBzOfIHYea74vFuSvlXFwps0CRQtWTy33TtXaGpfF93K9oem/7Yy/TBFXr2PrI/Azc5eH+ciVKELvqxp3PxU/TX3jk8OFqUKmCWIDmOrKsSHzxc5YEC41YUv5bYJ4wRKefWhmKUJgfzWsks2l8JEFuTNtzxLPHJ6KRgTcNNWC5WfcwQRnWQBs/zAEJILzNrnAN2dsx9I5A2hyBA9zo5K0rbmRKThxBi82Ztjlku8SnWLGNhO3Trzzi+33JP44qzpfs431ch10BOV/PJEcOzZ9mEvk4wjvf45Otmcqqahk4KD3fDk+CcZy81aywX9456GQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=LS8fdUWWkq7VZacX2yGgRBM51zTyE/wsYy1jqPyvOzE=;
 b=w+WpuWh3PDY1UALlMy3/bsOCNT5Vvt3aO+KTxSdzE8JAOeJ2/WndQ99nHqZjm+MrO1AhNSRgteoXYZI+4U7LX1R4PyloFk+BGYCw4rNaLvKNfSVtsG0KtC/1zNrwIP19NRXR/mlOgff7E5wRstX0jtuyK8OIENBX+X98zYsvQ9UjY+d55v/Um+9tmKA7M2dkfZ0esdQgoAfQoo6aTyzd76eK3fu6uMpaUSP6JUJ/dPEnWbSnGsjNi3jbkVHkZDT56KuA5/A0W8bP9Rf1mr6l7c5taJ2N0z6/22kcWCs0WxtBkZ53AMijOWVQ1abZHy/I31hVcP+Z7UYlW4nesEvFPg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=temperror (sender ip
 is 165.204.84.17) smtp.rcpttodomain=citrix.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=LS8fdUWWkq7VZacX2yGgRBM51zTyE/wsYy1jqPyvOzE=;
 b=AudjcOD+LJhApBlTA6i68Mwufw1IlLMbAF3ZvkEMsAD4lUQCrT24MSJbfIhgc6uSHG2k+qr2RW3hdKM2yAGwAzGhoXwPgRg0CiKgi1AJlQisaJz7Fn1cbu1RmYTEvR7oC34piv5qkPM/4EXVTx+jE9/CAXnCllthD4cR8oomS30=
X-MS-Exchange-Authentication-Results: spf=temperror (sender IP is
 165.204.84.17) 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)
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Mon, 28 Apr 2025 12:50:55 +0100
Message-ID: <D9I904ZOCMVN.31C4DUMXROGDK@amd.com>
CC: <xen-devel@lists.xenproject.org>, Paul Durrant <paul@xen.org>, "Jan
 Beulich" <jbeulich@suse.com>, "Alexander M . Merritt" <alexander@edera.dev>
Subject: Re: [PATCH v2] x86/hyperv: use dynamically allocated page for
 hypercalls
From: Alejandro Vallejo <agarciav@amd.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>,
	=?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Ariadne Conill
	<ariadne@ariadne.space>, Wei Liu <wl@xen.org>
X-Mailer: aerc 0.20.1
References: <20250425234331.65875-1-ariadne@ariadne.space>
 <aA9NMJVbyXeMOOY-@macbook.lan> <D9I7TPLT0EJD.3F5P95H69CT5K@amd.com>
 <97d28edb-4274-408f-a825-d09fa771e21d@citrix.com>
In-Reply-To: <97d28edb-4274-408f-a825-d09fa771e21d@citrix.com>
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: MN1PEPF0000ECDB:EE_|MN0PR12MB6221:EE_
X-MS-Office365-Filtering-Correlation-Id: 70942c3b-ce4e-44bc-aee6-08dd864af333
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?QSt3SFJiZk94d3A0Z2k5SzZhUWthUjcxZlJycStKOXUvMUZvRC81cU1TUFh0?=
 =?utf-8?B?TktkYVQxUzh3SUk2NUNkZElUSmVmdk9wVVY3UGgyL0dsNUhJU21zRU9vc3NL?=
 =?utf-8?B?amN5UjlwNU9iTWg1RVRiV0M5QjhTbGhaeVFyNzd1RUNOSHozQTVkclZDM1lw?=
 =?utf-8?B?UVpxODVWMFI3UkNkSGRGNWpSRlFkS3hsMnlQMWNla1B2b2ZrTklQcm4wc0lR?=
 =?utf-8?B?WTRueFQ2Ly9udXZEc2VYT0I5NXRKTytFZ0lEMmU2RjRpMzZ3VG1pZDdKZXhw?=
 =?utf-8?B?VC96T2hQZUNZaFVibzJ6anBSb0JUSEdDU3JUSERJaXhoVWE2N1ZzZXp5TlNh?=
 =?utf-8?B?RlhoZWFybFBrNzVlTVlDbjVDQ054SVJyK3hhaUhUZjd0VDFGMFFDdHN4S1Uw?=
 =?utf-8?B?VTFrNUR6bFFTcUR4aEdQWWVYQ2o5NDJEYnV0TUdFandSM3k5ZEsyMEExaHJv?=
 =?utf-8?B?em9wMXRWd3NwdWdNMDMza01GWEpZMHdjTkkxZXpIM21MY05yKzcyaE8zVGE0?=
 =?utf-8?B?MksyWm1EdGlDUVd6UHphWFlyMVFWZ3B5b2haOWIyNG9kUFBRZ05Gc29MYkkw?=
 =?utf-8?B?N1poenhLM3FwS0x5a0xPMXJCczRWbVVhNll2eHhSQ2VmNnJ6ZkFqcERCUjdw?=
 =?utf-8?B?eENaYitLOEV2SDhxVHphWk9MK2Y5dFlzbFpsMTQ3VEhsTlplSE9Bc01MeVNw?=
 =?utf-8?B?U0RJdEFzL3dnTXQweVJ6MmRFZUEzNitNa3BwK1hIUVdIWmVmUEt5MjB0NE1C?=
 =?utf-8?B?WElKTkIvc1hkV2dWdWR3MVd6SnBOdk91OGJHTEIrMHdCQnJ6cnFYUTE3Zk42?=
 =?utf-8?B?VmpUVytQV2VYTU1lZzB0Y2d3ODdkcUxCeG80UHkvK0NBT245VkZxVzZweXNH?=
 =?utf-8?B?Q2ppY1BFRGRoWE5IUzB3OVVFQnRYSU9jSVJxTkVIbzVaUXNxdSt6bURPcXp5?=
 =?utf-8?B?WHJhVHF2ZWRHNmxzMDVlQlhnS1BRZUJYcEpuY0NyYlBtdDhtVHBUSWdTNXBv?=
 =?utf-8?B?S3lHRjJMK0UvUit1OTd0eERjWENPdzc1U0NIZWJHYXY0KzlRVUUxL1dlQnh1?=
 =?utf-8?B?YnlDTVFYdUxWSEthSGl1ZkxzbTZVeG1aS2t5bkNSY3ExNHJpK3BkR1lQMS92?=
 =?utf-8?B?Z3QvNzFFMkdhYmlYYTJuZGRVcFRFUHFYYlY1K3piYTg5VWpQWFVqM3J5U1Uw?=
 =?utf-8?B?cDMwYjQ2aEtQZVhoUGRVWFpkMnIvVmEvSHVBUHd6cjJtK1NVYXZlYy9BYjlO?=
 =?utf-8?B?anJSblpaT0l6YUtTVWYvSUhodjRKVVlINWNOdEd1TmF1b3lMWFhlb1Npb2Iv?=
 =?utf-8?B?aVUyRFhvMWNpTlFXV1puSVZlQzIwUkNnVkN0T1ROOG9hRHBPeFBUNnE1eCtD?=
 =?utf-8?B?VUp2bXZENWdyb29PcXRQSjlOVlNaV2t6ajQ4MzhVaHRqdWlZZ2Z6bW1HYzdI?=
 =?utf-8?B?WTY4NHlZU2c4dFRVQTlhQXIyWFNNRzIzQ3I3NGJmWjNyZFNZaWk0NXdKcmwx?=
 =?utf-8?B?VHpvaFJKUEp1YnorVHV5R2p2SDNPMWNjR0ZhbVRRaTluamI1N0tWbGJ6ZFVY?=
 =?utf-8?B?YkF1ZHUxNmpvekdKUlNaQnF1eHJqMnc3WE9QREFORkNhcmZXcFBVYkNJS3Uw?=
 =?utf-8?B?R251VXNHZ2JKWmcvelZHWmxIcktBblducDJHeWRSY3NrZ2YrNVpZV0hvOWJw?=
 =?utf-8?B?dkhLcWpjWlBvYUdhdy8vSTFmay83WnhjaVFvNlFYZ3p3WndjWnAwSytRSFdo?=
 =?utf-8?B?UlI2bFMwSnY0TDg0T2J0Y3liU0NhcGNOR0lVL2ZLMXNITnRCbTZ1VXBneE1Z?=
 =?utf-8?B?dThHdm5HK2ZHQWh6dVRiSmFoYTlHMDZLVEFDc0tyaXVHY0hkK1RlcmhmWTdv?=
 =?utf-8?B?emFLS3UzUU0rT09vWWg3THpiUm8wU0d3QklCalJNc21pb2RnNzNVcGs2WGtz?=
 =?utf-8?B?WFdROTYrRFNnRFU1akM4MFR4eXIvWC90bWo0d0NScDhNWG0xMTBDSXBzS1Ey?=
 =?utf-8?B?U1JKMC9MTTdObG0wN1JIWmxKOW0xTFZtNnRjQTljVktYeVhlZ2o4QlZZYVM1?=
 =?utf-8?Q?269XRf?=
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: 28 Apr 2025 11:51:02.1998
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 70942c3b-ce4e-44bc-aee6-08dd864af333
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:
	MN1PEPF0000ECDB.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN0PR12MB6221

On Mon Apr 28, 2025 at 12:07 PM BST, Andrew Cooper wrote:
> On 28/04/2025 11:55 am, Alejandro Vallejo wrote:
>> On Mon Apr 28, 2025 at 10:41 AM BST, Roger Pau Monn=C3=A9 wrote:
>>> On Fri, Apr 25, 2025 at 04:43:31PM -0700, Ariadne Conill wrote:
>>>> Previously Xen placed the hypercall page at the highest possible MFN,
>>>> but this caused problems on systems where there is more than 36 bits
>>>> of physical address space.
>>>>
>>>> In general, it also seems unreliable to assume that the highest possib=
le
>>>> MFN is not already reserved for some other purpose.
>>>>
>>>> Changes from v1:
>>>> - Continue to use fixmap infrastructure
>>>> - Use panic in Hyper-V setup() function instead of returning -ENOMEM
>>>>   on hypercall page allocation failure
>>>>
>>>> Fixes: 620fc734f854 ("x86/hyperv: setup hypercall page")
>>>> Cc: Alejandro Vallejo <agarciav@amd.com>
>>>> Cc: Alexander M. Merritt <alexander@edera.dev>
>>>> Signed-off-by: Ariadne Conill <ariadne@ariadne.space>
>>>> ---
>>>>  xen/arch/x86/guest/hyperv/hyperv.c      | 17 +++++++----------
>>>>  xen/arch/x86/include/asm/guest/hyperv.h |  3 ---
>>>>  2 files changed, 7 insertions(+), 13 deletions(-)
>>>>
>>>> diff --git a/xen/arch/x86/guest/hyperv/hyperv.c b/xen/arch/x86/guest/h=
yperv/hyperv.c
>>>> index 6989af38f1..0305374a06 100644
>>>> --- a/xen/arch/x86/guest/hyperv/hyperv.c
>>>> +++ b/xen/arch/x86/guest/hyperv/hyperv.c
>>>> @@ -98,7 +98,13 @@ static void __init setup_hypercall_page(void)
>>>>      rdmsrl(HV_X64_MSR_HYPERCALL, hypercall_msr.as_uint64);
>>>>      if ( !hypercall_msr.enable )
>>>>      {
>>>> -        mfn =3D HV_HCALL_MFN;
>>>> +        void *hcall_page =3D alloc_xenheap_page();
>>>> +        if ( !hcall_page )
>>>> +            panic("Hyper-V: Failed to allocate hypercall trampoline p=
age");
>>>> +
>>>> +        printk("Hyper-V: Allocated hypercall page @ %p.\n", hcall_pag=
e);
>>> This likely wants to be a dprintk, and possibly also print the
>>> physical address of the used page?  And no period at the end of the
>>> sentence IMO.
>>>
>>> I think Xen might have used the last page in the physical address
>>> range to prevent HyperV from possibly shattering a superpage in the
>>> second stage translation page-tables if normal RAM was used?
>>>
>>> However I don't know whether HyperV will shatter super-pages if a
>>> sub-page of it is used to contain the hypercall page (I don't think it
>>> should?)
>> I think it's quite unlikely.
>
> It will shatter superpages.
>
> The overlay is not part of guest memory, and will hide whatever is
> behind it while it is mapped, which will force a 4k PTE in EPT/NPT.

That's an implementation detail. They can very well copy the trampoline
to guest memory when there is such (and save the previous contents
elsewhere) and restore them when disabling the trampoline. It's a
trivial optimisation that would prevent shattering while being fully
compliant with the TLFS.

The actual physical location of the trampoline is fully undefined. It
is defined to be an overlay; but that's a specification, not an
implementation.

>
> Thinking about it, a better position would be adjacent to the APIC MMIO
> window, so at 0xfee01000.=C2=A0 The APIC MMIO window is forced to be a 4k
> mapping too, and the rest of the 2M window is normally empty.
>

Sounds like an assumption waiting to be broken. Just like the last page
of guest-physical was.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Mon Apr 28 11:59:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 11:59:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.970633.1359271 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9N8Y-0003yD-2l; Mon, 28 Apr 2025 11:59:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 970633.1359271; Mon, 28 Apr 2025 11: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 1u9N8Y-0003y6-0B; Mon, 28 Apr 2025 11:59:02 +0000
Received: by outflank-mailman (input) for mailman id 970633;
 Mon, 28 Apr 2025 11:59: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=5hYN=XO=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u9N8W-0003xy-G5
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 11:59:00 +0000
Received: from mail-wm1-x336.google.com (mail-wm1-x336.google.com
 [2a00:1450:4864:20::336])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2a931fbb-2428-11f0-9ffb-bf95429c2676;
 Mon, 28 Apr 2025 13:58:58 +0200 (CEST)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-43edb40f357so30923555e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 28 Apr 2025 04:58:58 -0700 (PDT)
Received: from [10.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-4409d2a152csm157862695e9.12.2025.04.28.04.58.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 28 Apr 2025 04:58:57 -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: 2a931fbb-2428-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745841538; x=1746446338; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=vmhRNVAo9gZ5GwBpEL3qhchuUVmzAjhTeUioubQCWNY=;
        b=DEo7XdOdYyZHQ/mINnq8xGw7tvJcPHPvl8/U6zA3HxhMUs3ctau/z+ygBawNHg3f6l
         XJNo1QjBZ+ce9mM9wu6b7vKHxFPzQ8wKnETkE0yhXXJ1KBYca0tLnVMqhAcE2jFGCYfp
         ziC/9skeskcqDq7T5WApr4p8E9eqOSKGUG6D3LnT7mBBzW6/cdqPERi1MeQM4GfFAW9C
         3XK+/f+ryxDTZzJjdNnsOlYb3rxpe3af9ZMK1eKWc96sZzrRTpANRQnBG58AvW12V/+S
         ntc9mOWQudEEibqTrc9g70Ed/TgMayk+h02qGf3Scrl/g7qb4HrLCTh86+b2x/3OvqSp
         cZxg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745841538; x=1746446338;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=vmhRNVAo9gZ5GwBpEL3qhchuUVmzAjhTeUioubQCWNY=;
        b=YCn+FI7qFk4y0ctNup6mfa7eW4xOhzrzjOg8rQM+TMt9Iryf3Xsf/Pu522gUeN5Zwr
         253hIP40JkSXnc92k6dziLWrBGTr0SAxg60EUnmwZpWvczTxNe+jEjqsFpeUPgpJRn+z
         VrGR5FNyQFqPZUHO0M7MpRzwHYcqCv+2NNDEOwlHEdTqoo4kP3RW8zmBI/p+jhjfHmSk
         /xxCjytnoLCZPG72oN5h/qNXgsNLywijmJNew8gOyS8l8jU0YNiW9fQwRa0jUSBC9kLM
         0FuOE6FwRSh6UxVe0P9JnCSPJStCD6T0VodIZuL/01TuQqjXfa13tTABN2yIYVUL0Ndm
         abfQ==
X-Forwarded-Encrypted: i=1; AJvYcCXeJl7WktbzmPnvmJN0AtzRAITF5wS8Jp/7CzIAhEi6ypfEt/4FpGjAlHo09uyeHeWGxmL94yoWRto=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzrzOjAE5+scWQo0G9sxXDRQidATcY9gz6jYl0Uh0ric+uHhy+u
	gt32a479xtbnVJidhyucZbNDIO9Ed4xfZt09d0twSW3sGwPR7VtQfTOkTL2NXw==
X-Gm-Gg: ASbGncvXAka8LQ2RoPTXcJvotwQTlgqHHAGT+9c0522hR1u3vVHNN9tndk2FvHn4WmZ
	TktjBTY0hXYbHLs/O78u2a8u/BVkW2jOWDArsri7S/bW1OgBdYpPWppgn9lqlONGwNmFuOMClKp
	06ulJMhJUiaQhmHzwZ8Xq+6mZslBia61A7Ga0/Ri21WOd0daDVtzCNL36jzobKNVxx96NHpPIFE
	XwILqd/5CIYLeGklI/f676fFTF1szu8hrH3O9wLahKycGuqzb/kXrJTQM2Sn439nuCSXysCG6bv
	zydFW/5J6DfoINpjW2pJ7X5ci6/yQlTnBzlgWocfuyLlgY7MoyqXrs88ypB0PeBMG0SP1L4K3Sg
	b/Qtca7h9Y4vygJ/DHVG9Q8LAvd1PbH9ExVfV
X-Google-Smtp-Source: AGHT+IHeeJRFOo+JbBZ3fgVGWwDjSoYQckNEbOMNWc30i+OEB4EF/OSi3LFdRqyxNx5AD+nL+fiPSw==
X-Received: by 2002:a05:600c:46c5:b0:43d:ac5:11ed with SMTP id 5b1f17b1804b1-440a66abe30mr83265355e9.24.1745841537642;
        Mon, 28 Apr 2025 04:58:57 -0700 (PDT)
Message-ID: <badaead4-7eba-4796-8e96-96a95b36145a@suse.com>
Date: Mon, 28 Apr 2025 13:58:56 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 3/3] x86/vmx: Replace __vmread() with vmread()
To: dmkhn@proton.me
Cc: andrew.cooper3@citrix.com, roger.pau@citrix.com,
 nicola.vetrini@bugseng.com, consulting@bugseng.com, dmukhin@ford.com,
 xen-devel@lists.xenproject.org
References: <20250426072819.39455-1-dmukhin@ford.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20250426072819.39455-1-dmukhin@ford.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 26.04.2025 09:28, dmkhn@proton.me wrote:
> @@ -1957,8 +1955,7 @@ void cf_check vmx_do_resume(void)
>      hvm_do_resume(v);
>  
>      /* Sync host CR4 in case its value has changed. */
> -    __vmread(HOST_CR4, &host_cr4);
> -    if ( host_cr4 != read_cr4() )
> +    if ( vmread(HOST_CR4) != read_cr4() )

It's unclear to me whether this constitutes a violation of Misra rule 13.2.
There are two function calls in this expression. Both funcs are inline, and
vmread() is even always_inline, but they're still function calls, which can
be carried out in either order. And neither can plausibly be pure, let
alone const.

> @@ -1573,12 +1565,12 @@ static void cf_check vmx_get_nonreg_state(struct vcpu *v,
>  {
>      vmx_vmcs_enter(v);
>  
> -    __vmread(GUEST_ACTIVITY_STATE, &nrs->vmx.activity_state);
> -    __vmread(GUEST_INTERRUPTIBILITY_INFO, &nrs->vmx.interruptibility_info);
> -    __vmread(GUEST_PENDING_DBG_EXCEPTIONS, &nrs->vmx.pending_dbg);
> +    nrs->vmx.activity_state = vmread(GUEST_ACTIVITY_STATE);

This struct field can now also shrink down to unsigned int (or uit32_t if need
be). Likely there are others (and maybe also plain variables). Which in turn
is an indication that, as was suggested before, this patch wants further
splitting up. That'll also help with overall progress, as then what's
uncontroversial and not in need of further adjustment can go in right away.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Apr 28 12:31:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 12:31:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.970654.1359284 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9Ndk-0001x8-MW; Mon, 28 Apr 2025 12:31:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 970654.1359284; Mon, 28 Apr 2025 12: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 1u9Ndk-0001x1-JI; Mon, 28 Apr 2025 12:31:16 +0000
Received: by outflank-mailman (input) for mailman id 970654;
 Mon, 28 Apr 2025 12:31: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=orHk=XO=arndb.de=arnd@srs-se1.protection.inumbo.net>)
 id 1u9Ndi-0001wv-Un
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 12:31:15 +0000
Received: from fout-b3-smtp.messagingengine.com
 (fout-b3-smtp.messagingengine.com [202.12.124.146])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a6a73640-242c-11f0-9ffb-bf95429c2676;
 Mon, 28 Apr 2025 14:31:05 +0200 (CEST)
Received: from phl-compute-05.internal (phl-compute-05.phl.internal
 [10.202.2.45])
 by mailfout.stl.internal (Postfix) with ESMTP id 5131D114025B;
 Mon, 28 Apr 2025 08:31:03 -0400 (EDT)
Received: from phl-imap-11 ([10.202.2.101])
 by phl-compute-05.internal (MEProxy); Mon, 28 Apr 2025 08:31:03 -0400
Received: by mailuser.phl.internal (Postfix, from userid 501)
 id BEC902220075; Mon, 28 Apr 2025 08:31:01 -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: a6a73640-242c-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arndb.de; 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=1745843463;
	 x=1745929863; bh=l85d+c/VTG74vQy/NEAzc1LT42PJmdxc2NSt71v6MF8=; b=
	SuqVfhJw+Y3Ur7fgmVIU3Rp0m+MvJO5yJrvKVuxiNbJpYoA5ZEpGjdlX1ipnT/Uq
	NRYfNwBXA9MFNp/2YTmNVPIrlZsADnE43RAQu8DIvotj6dGLQFFIjZcXmSqx7maz
	reA3azZRDFIFZ6Znv9YmXzQKivfZbG8sd7c0O0tjNyKsdmOOe6yYGC/oWq1TQxqD
	qIjuiGOPH4XBkAETKoHOmx2QOYR0pwTUQ6U9zw3L5ss06in4+OQmiw9JFGGohkgs
	vux+Ypr3DDuPI0KnlM6VlTFbNXO+yVJNSGPf2CXBQzQXXAlywvIfrTxsoUpflgmD
	WdSfsaEUO5/rvtm+PmQYdA==
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=1745843463; x=
	1745929863; bh=l85d+c/VTG74vQy/NEAzc1LT42PJmdxc2NSt71v6MF8=; b=P
	e7cUy/ED4IPc+xS8XIUNFU+UA3mshvlZb8hAp88inYhPsvwBdXKBlae+RASnNxOh
	ELbsgfJhdc3Ow6lmm5bW6BCRWfHgW6NXXWPT5Z+tiZ0VrDahHGAkjRFRjxcu5lSg
	z/kTZ0JKsKE4UsMuScKG6w9WwOXijYVyMQaPa+MQTJIfQKla7V5bDlu8XtBxNwJz
	r/tIgrynqylLOXFu48utceWn0XXwmQtBNhVxGPegR2kCozc1O7uL5adxi6hexcK4
	I2K5hW851mZBhfHH/qfa/QbDGDbzt45oJYDqFlQUxMDgRNMuBpLHc90kDx6RWvgX
	LLl6o3rpLa8stUhXQWFZA==
X-ME-Sender: <xms:BXUPaDezTL1TN0-r_UEi_3XH69IDfnAXbjZUMVi4L7KGDhMvh5n1pA>
    <xme:BXUPaJPUVbNa1w2G92w8YZiV4Kq3KYhgrgj2EtSthgqLLX11iquLFAGOlvOhDN2cj
    nxt_vO5eaIAIQ9rwO0>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddviedtleehucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
    pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
    gvnhhtshculddquddttddmnecujfgurhepofggfffhvfevkfgjfhfutgfgsehtjeertder
    tddtnecuhfhrohhmpedftehrnhguuceuvghrghhmrghnnhdfuceorghrnhgusegrrhhnug
    gsrdguvgeqnecuggftrfgrthhtvghrnhephfdthfdvtdefhedukeetgefggffhjeeggeet
    fefggfevudegudevledvkefhvdeinecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrg
    hmpehmrghilhhfrhhomheprghrnhgusegrrhhnuggsrdguvgdpnhgspghrtghpthhtohep
    vddtpdhmohguvgepshhmthhpohhuthdprhgtphhtthhopegsphesrghlihgvnhekrdguvg
    dprhgtphhtthhopegrnhgurhgvfidrtghoohhpvghrfeestghithhrihigrdgtohhmpdhr
    tghpthhtohepphgvthgvrhiisehinhhfrhgruggvrggurdhorhhgpdhrtghpthhtoheprg
    hlvgigrghnuggvrhdruhhshihskhhinhesihhnthgvlhdrtghomhdprhgtphhtthhopegr
    rhgusgeskhgvrhhnvghlrdhorhhgpdhrtghpthhtoheprghrnhgusehkvghrnhgvlhdroh
    hrghdprhgtphhtthhopehmihhnghhosehkvghrnhgvlhdrohhrghdprhgtphhtthhopehr
    phhptheskhgvrhhnvghlrdhorhhgpdhrtghpthhtohepgiekieeskhgvrhhnvghlrdhorh
    hg
X-ME-Proxy: <xmx:BXUPaMjsa-EdZVMkQozKoOZL5CsDf8FrJh6sGT2tsVxuSqi-cmsThw>
    <xmx:BXUPaE_t8u4Cp2aH4korOXy6tG5ARYegDCcuV2jQc6HeF5mUiGPPUg>
    <xmx:BXUPaPvIu4EkBpVC3vhm9XNZJObQFKjQgmO3NLcyWmyguuNXP0cRNA>
    <xmx:BXUPaDGx0GUBpjL7k75UIGpdtm5e3wHXRVo_Sy41bRu4EZGL8EINug>
    <xmx:B3UPaLkozNo8AMc5E-AbMwXx-fMoG20mUaw5xfVSxqUuoRLHQfgAgDjy>
Feedback-ID: i56a14606:Fastmail
X-Mailer: MessagingEngine.com Webmail Interface
MIME-Version: 1.0
X-ThreadId: T1abce48479718f0e
Date: Mon, 28 Apr 2025 14:30:41 +0200
From: "Arnd Bergmann" <arnd@arndb.de>
To: "Ingo Molnar" <mingo@kernel.org>,
 "Linus Torvalds" <torvalds@linux-foundation.org>
Cc: "Andrew Cooper" <andrew.cooper3@citrix.com>,
 "Arnd Bergmann" <arnd@kernel.org>, "Thomas Gleixner" <tglx@linutronix.de>,
 "Ingo Molnar" <mingo@redhat.com>, "Borislav Petkov" <bp@alien8.de>,
 "Dave Hansen" <dave.hansen@linux.intel.com>, x86@kernel.org,
 "H. Peter Anvin" <hpa@zytor.com>, "Juergen Gross" <jgross@suse.com>,
 "Boris Ostrovsky" <boris.ostrovsky@oracle.com>,
 "Alexander Usyskin" <alexander.usyskin@intel.com>,
 "Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
 =?UTF-8?Q?Mateusz_Jo=C5=84czyk?= <mat.jonczyk@o2.pl>,
 "Mike Rapoport" <rppt@kernel.org>, "Ard Biesheuvel" <ardb@kernel.org>,
 "Peter Zijlstra" <peterz@infradead.org>, linux-kernel@vger.kernel.org,
 xen-devel@lists.xenproject.org
Message-Id: <acc95bb8-f277-4e5c-9647-3c034748ed2c@app.fastmail.com>
In-Reply-To: <aA8q4Ot-1zTzv_Kt@gmail.com>
References: <20250425141740.734030-1-arnd@kernel.org>
 <aAyiganPp_UsNlnZ@gmail.com>
 <d2b0e71c-e79b-40d6-8693-3202cd894d66@app.fastmail.com>
 <CAHk-=wh=TUsVv6xhtzYsWJwJggrjyOfYT3kBu+bHtoYLK0M9Xw@mail.gmail.com>
 <CAHk-=wgfk69H-T-vMWR33xUpVsWJLrF34d0OwUXa2sHhtpSwZg@mail.gmail.com>
 <e54f1943-e0ff-4f59-b24f-9b5a7a38becf@citrix.com>
 <CAHk-=wj0S2vWui0Y+1hpYMEhCiXKexbQ01h+Ckvww8hB29az_A@mail.gmail.com>
 <aA8nF0moBYOIgC5J@gmail.com> <aA8oqKUaFU-0wb-D@gmail.com>
 <aA8q4Ot-1zTzv_Kt@gmail.com>
Subject: Re: [PATCH] bitops/32: Convert variable_ffs() and fls() zero-case handling to
 C
Content-Type: text/plain
Content-Transfer-Encoding: 7bit

On Mon, Apr 28, 2025, at 09:14, Ingo Molnar wrote:
>
> ... and unless I messed up the patch, it seems to have a surprisingly 
> low impact - maybe because the compiler can amortize its cost by 
> adjusting all dependent code mostly at build time, so the +1 doesn't 
> end up being generated most of the time?

Is there any reason we can't just use the compiler-builtins directly
like we do on other architectures, at least for 32-bit?

Looking at a couple of vmlinux objects confirms the  findings from
fdb6649ab7c1 ("x86/asm/bitops: Use __builtin_ctzl() to evaluate
constant expressions") from looking at the object file that using
the built-in helpers is slightly better than the current asm code
for all 32-bit targets with both gcc and clang. It's also better
for 64-bit targets with clang, but not with gcc, where the inline
asm often saves a cmov but in other cases the compiler finds an
even better instruction sequence.

     Arnd

diff --git a/arch/x86/include/asm/bitops.h b/arch/x86/include/asm/bitops.h
index eebbc8889e70..bdeae9a497e5 100644
--- a/arch/x86/include/asm/bitops.h
+++ b/arch/x86/include/asm/bitops.h
@@ -246,184 +246,18 @@ arch_test_bit_acquire(unsigned long nr, const volatile unsigned long *addr)
 					  variable_test_bit(nr, addr);
 }
 
-static __always_inline unsigned long variable__ffs(unsigned long word)
-{
-	asm("tzcnt %1,%0"
-		: "=r" (word)
-		: ASM_INPUT_RM (word));
-	return word;
-}
-
-/**
- * __ffs - find first set bit in word
- * @word: The word to search
- *
- * Undefined if no bit exists, so code should check against 0 first.
- */
-#define __ffs(word)				\
-	(__builtin_constant_p(word) ?		\
-	 (unsigned long)__builtin_ctzl(word) :	\
-	 variable__ffs(word))
-
-static __always_inline unsigned long variable_ffz(unsigned long word)
-{
-	return variable__ffs(~word);
-}
-
-/**
- * ffz - find first zero bit in word
- * @word: The word to search
- *
- * Undefined if no zero exists, so code should check against ~0UL first.
- */
-#define ffz(word)				\
-	(__builtin_constant_p(word) ?		\
-	 (unsigned long)__builtin_ctzl(~word) :	\
-	 variable_ffz(word))
-
-/*
- * __fls: find last set bit in word
- * @word: The word to search
- *
- * Undefined if no set bit exists, so code should check against 0 first.
- */
-static __always_inline unsigned long __fls(unsigned long word)
-{
-	if (__builtin_constant_p(word))
-		return BITS_PER_LONG - 1 - __builtin_clzl(word);
-
-	asm("bsr %1,%0"
-	    : "=r" (word)
-	    : ASM_INPUT_RM (word));
-	return word;
-}
-
 #undef ADDR
 
-#ifdef __KERNEL__
-static __always_inline int variable_ffs(int x)
-{
-	int r;
-
-#ifdef CONFIG_X86_64
-	/*
-	 * AMD64 says BSFL won't clobber the dest reg if x==0; Intel64 says the
-	 * dest reg is undefined if x==0, but their CPU architect says its
-	 * value is written to set it to the same as before, except that the
-	 * top 32 bits will be cleared.
-	 *
-	 * We cannot do this on 32 bits because at the very least some
-	 * 486 CPUs did not behave this way.
-	 */
-	asm("bsfl %1,%0"
-	    : "=r" (r)
-	    : ASM_INPUT_RM (x), "0" (-1));
-#elif defined(CONFIG_X86_CMOV)
-	asm("bsfl %1,%0\n\t"
-	    "cmovzl %2,%0"
-	    : "=&r" (r) : "rm" (x), "r" (-1));
-#else
-	asm("bsfl %1,%0\n\t"
-	    "jnz 1f\n\t"
-	    "movl $-1,%0\n"
-	    "1:" : "=r" (r) : "rm" (x));
-#endif
-	return r + 1;
-}
-
-/**
- * ffs - find first set bit in word
- * @x: the word to search
- *
- * This is defined the same way as the libc and compiler builtin ffs
- * routines, therefore differs in spirit from the other bitops.
- *
- * ffs(value) returns 0 if value is 0 or the position of the first
- * set bit if value is nonzero. The first (least significant) bit
- * is at position 1.
- */
-#define ffs(x) (__builtin_constant_p(x) ? __builtin_ffs(x) : variable_ffs(x))
-
-/**
- * fls - find last set bit in word
- * @x: the word to search
- *
- * This is defined in a similar way as the libc and compiler builtin
- * ffs, but returns the position of the most significant set bit.
- *
- * fls(value) returns 0 if value is 0 or the position of the last
- * set bit if value is nonzero. The last (most significant) bit is
- * at position 32.
- */
-static __always_inline int fls(unsigned int x)
-{
-	int r;
-
-	if (__builtin_constant_p(x))
-		return x ? 32 - __builtin_clz(x) : 0;
-
-#ifdef CONFIG_X86_64
-	/*
-	 * AMD64 says BSRL won't clobber the dest reg if x==0; Intel64 says the
-	 * dest reg is undefined if x==0, but their CPU architect says its
-	 * value is written to set it to the same as before, except that the
-	 * top 32 bits will be cleared.
-	 *
-	 * We cannot do this on 32 bits because at the very least some
-	 * 486 CPUs did not behave this way.
-	 */
-	asm("bsrl %1,%0"
-	    : "=r" (r)
-	    : ASM_INPUT_RM (x), "0" (-1));
-#elif defined(CONFIG_X86_CMOV)
-	asm("bsrl %1,%0\n\t"
-	    "cmovzl %2,%0"
-	    : "=&r" (r) : "rm" (x), "rm" (-1));
-#else
-	asm("bsrl %1,%0\n\t"
-	    "jnz 1f\n\t"
-	    "movl $-1,%0\n"
-	    "1:" : "=r" (r) : "rm" (x));
-#endif
-	return r + 1;
-}
-
-/**
- * fls64 - find last set bit in a 64-bit word
- * @x: the word to search
- *
- * This is defined in a similar way as the libc and compiler builtin
- * ffsll, but returns the position of the most significant set bit.
- *
- * fls64(value) returns 0 if value is 0 or the position of the last
- * set bit if value is nonzero. The last (most significant) bit is
- * at position 64.
- */
-#ifdef CONFIG_X86_64
-static __always_inline int fls64(__u64 x)
-{
-	int bitpos = -1;
-
-	if (__builtin_constant_p(x))
-		return x ? 64 - __builtin_clzll(x) : 0;
-	/*
-	 * AMD64 says BSRQ won't clobber the dest reg if x==0; Intel64 says the
-	 * dest reg is undefined if x==0, but their CPU architect says its
-	 * value is written to set it to the same as before.
-	 */
-	asm("bsrq %1,%q0"
-	    : "+r" (bitpos)
-	    : ASM_INPUT_RM (x));
-	return bitpos + 1;
-}
-#else
+#include <asm-generic/bitops/__ffs.h>
+#include <asm-generic/bitops/ffz.h>
+#include <asm-generic/bitops/builtin-fls.h>
+#include <asm-generic/bitops/__fls.h>
 #include <asm-generic/bitops/fls64.h>
-#endif
 
-#include <asm-generic/bitops/sched.h>
 
+#include <asm-generic/bitops/sched.h>
+#include <asm-generic/bitops/builtin-ffs.h>
 #include <asm/arch_hweight.h>
-
 #include <asm-generic/bitops/const_hweight.h>
 
 #include <asm-generic/bitops/instrumented-atomic.h>
@@ -434,5 +268,4 @@ static __always_inline int fls64(__u64 x)
 
 #include <asm-generic/bitops/ext2-atomic-setbit.h>
 
-#endif /* __KERNEL__ */
 #endif /* _ASM_X86_BITOPS_H */


From xen-devel-bounces@lists.xenproject.org Mon Apr 28 12:31:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 12:31:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.970659.1359294 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9Ne7-0002M5-Tf; Mon, 28 Apr 2025 12:31:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 970659.1359294; Mon, 28 Apr 2025 12:31: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 1u9Ne7-0002Ly-Qo; Mon, 28 Apr 2025 12:31:39 +0000
Received: by outflank-mailman (input) for mailman id 970659;
 Mon, 28 Apr 2025 12:31: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=MVu+=XO=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1u9Ne6-0001wv-5v
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 12:31:38 +0000
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 (mail-am6eur05on20608.outbound.protection.outlook.com
 [2a01:111:f403:2612::608])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b4fa0f9a-242c-11f0-9ffb-bf95429c2676;
 Mon, 28 Apr 2025 14:31:28 +0200 (CEST)
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by AS8PR03MB7571.eurprd03.prod.outlook.com
 (2603:10a6:20b:34a::24) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.30; Mon, 28 Apr
 2025 12:31:26 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::35ac:8893:c31c:b971]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::35ac:8893:c31c:b971%4]) with mapi id 15.20.8678.027; Mon, 28 Apr 2025
 12:31: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: b4fa0f9a-242c-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=iIOoD2UFsRRgGS1K/hO4fYaKrBbE3kTMxSqp2+KX/ZoEhO3rfHVQVKkdpJbtVLbauqfd/yz+zMEkLu8Dhj/ZJGZx9nlP+GkTheE8qeh177sTiEWWFnFNp0TdoqGn1OCB528m1GFTOZe1DLaUoXWRHL8M08fWU6Dp3RROBqvlCaOzVuvegSO8TIVz7ZyFF4ojx4v8Pn18FuS1kPyCj/XsKKuLGduPlH/M2v+fSX1kjPmMI0NrW+GyaaunMG25N3Bs7epYTGuOsVatwyiyPvhD1MPNWIgO6MBtYegNVnLH6U0+2xX9MoiO0Zok4JrF8CHTKyhY3D4mqVovUxb+Fr3BGg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=YSfS/nSVwbcHXz+/paH3aLyOFemEgtrEVVHwb3u4g40=;
 b=bu5OJMb3979EHZ+2bnxarEAToRKU01xQoWv6DyNJFB35w8XGVqkoLSalsQSUVFg4dTaY5OHF9moMFepyXxx7uG3OsV/lxd1K6AcArkK0EkTWlyf6cbgdgtvw0UBwxl64pIFeSCwSvueh80g0HZeWUFaoxGd85ePQMH8a006lLsceqRvtQPZLwYpZgEgtSx9zE33apE4CJ0rijWBkfjY3pIZxU8Y10l4j1wzg5OvoylpDq8YkvKpiZnX5Vv/l4OfODyjTXjAJ8XtPeXYkS+mpEaoJWFqnFlXP16dbptnodQ2km08jWX/BHdTMymhTcK6CPlUlaCON7F0r6jHRpOShBg==
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=YSfS/nSVwbcHXz+/paH3aLyOFemEgtrEVVHwb3u4g40=;
 b=dlWsfumkMFqByq4IzGo3ZF4/w2n5+nIXZpmIDrayG7BA8BQnBS26Hn0qAQgsx/8GeZ7FQbbwz8cKOZmHuLtTFNq4IOPFvQYDKz9BmfRH/1rQqoNzDyjlaBZlq6FHrEcH7e7iisB1zrfkHzwUPtlwjJbjV9SuTTpe3VVjjPGrY1V2pBIlOJBtoMUgeNNMHpzGuWgoirbRzHETdsGZ9g9ven5qiOsPIy+9aRjbFeQiAIetd8Dn7hMJvmPoEGO+EgKBi4piTAPO0BSg4F79eUlyCCCFsO3DYbmbGTvTGVbEIxT7hh4ioy8dK7LDSEUJxUACaohBkHWypXC9RD+i7fw/Sw==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: Julien Grall <julien@xen.org>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
CC: Stewart Hildebrand <stewart.hildebrand@amd.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>, Anthony PERARD
	<anthony.perard@vates.tech>, Jan Beulich <jbeulich@suse.com>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>
Subject: Re: [PATCH v9 7/8] xen/arm: enable dom0 to use PCI devices with
 pci-passthrough=no
Thread-Topic: [PATCH v9 7/8] xen/arm: enable dom0 to use PCI devices with
 pci-passthrough=no
Thread-Index: AQHblOXdxbIbbkNtn0WSg/9tW2OJ47O5DGKAgAA8u4A=
Date: Mon, 28 Apr 2025 12:31:26 +0000
Message-ID: <ae2c8d37-e350-4125-921f-3d320c28d6cd@epam.com>
References: <cover.1741958647.git.mykyta_poturai@epam.com>
 <132afbca390edd6e9fd7b1ffacf6c5aff0d29aa7.1741958647.git.mykyta_poturai@epam.com>
 <7d376741-ff23-4618-83bd-415c8d8fa24e@xen.org>
In-Reply-To: <7d376741-ff23-4618-83bd-415c8d8fa24e@xen.org>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: PAVPR03MB10102:EE_|AS8PR03MB7571:EE_
x-ms-office365-filtering-correlation-id: bb048c86-afdb-4356-2c40-08dd86509821
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|376014|7416014|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?ZkVvem5Pazh5R3JVZ2c3dHBMd3p6VnZUTUppL1lRU0l2akIyYjBRSTlEMldZ?=
 =?utf-8?B?YStRWkhHSE1xNVJzaHhkeUNQSVRsbGwwVjFoODRoaFA4QUJEbzc1YlJTL1JC?=
 =?utf-8?B?bW9TbE9SNjV1ODkzVGpiTVRVMjRUa21ydHRKNWJHdFoyWStIZkFKaXRaSE1s?=
 =?utf-8?B?VTRyc0VXaGJhWkhKSkJwZWRkbjY2N1JwSWlCQ3pOeVlEM0pURFVyNkpRMFl2?=
 =?utf-8?B?TllUenp6WmZiUFFYQXNPOWpzMkpFek5RcmwvaThpMWlSUUJac2VhRXNQOVpY?=
 =?utf-8?B?V2pVRUI1bmtCYzA2ZEtPV3piNnFncFRzb2NUN3NQM2FEZ0ptcUlELzlpalRO?=
 =?utf-8?B?YzE4RXpJcS8vY3FMN29ISXF3Q25lckdyZkNtV1VTd2U0cHFSeGFDcW45VGJV?=
 =?utf-8?B?ZktzQWZKaUpxY2RSQTVXdDJKY0VwRTlnWXcxSUcrdW5EdnhWc2dUNUNpaVQ0?=
 =?utf-8?B?UnVETkxjS0ZhT0pNdDJCQ0dONWRDOCtRRGw5UGN0aWpkRzJjMStVVW9KOE5C?=
 =?utf-8?B?WkltTTF6UjJtazZ3cmQ4TXIyVGUrMXlFUDFsOTdVL2xUR3BhbHIxNUJiemxP?=
 =?utf-8?B?UjdTM1MzbkUxYjY3YzlxVUNwUmE3em81RlB3OUN6Qk1qSVY1a0tZa3BFVHl0?=
 =?utf-8?B?M0s2ekdnS1JhWnI2d01HMHFqOHJ3UHdjbFRFdDlNL01HWVFvc0ZhY3JNQ1Y1?=
 =?utf-8?B?b1FUbDFtbURRUkVaK3pwWEM0N2U4VDY1S1BmZGU5b1RqS1p0Vk0zQ0dsNHAy?=
 =?utf-8?B?Qk9QUng3bnRZSEJsZ0R2T1FsckhyVmxQQUw5UGlKait2a21VNXZvVU1LMG5s?=
 =?utf-8?B?Mkk3TEhhNGVnUHhQeE5IeTdBNXN5dWk5cnlmaEFKMCs4VTRDMGJHbFA1cXVH?=
 =?utf-8?B?cWZzVUlqSEd1Qnh1eWVJWmx2MlhpUWt2dXNoNUNodUlpVUdtV0xYLzRaMUI5?=
 =?utf-8?B?RnliTWk1UlduRGJrbEM1c25nVmhOS1NHM2NtVkxEclRFSndySFNwcndtNThh?=
 =?utf-8?B?SWF1Ym9IMGRrYzJkR0tyaUdYeWREV0ZxdmhsOERQUUEzMVFGTFNlY3M0cGNR?=
 =?utf-8?B?YmdjQlZwVHdsVndocjZxSURTcjZYajh6WTZzUnhwMUcvNHlyeTRuVVhzNnQ5?=
 =?utf-8?B?TDJLSHczNmwrODkyNS9ZdWw0anpiV3IyaE91UElzRnkycnZNaGZkVDE2aloy?=
 =?utf-8?B?dE1aNldnN3lMTVZVRUJuUW91Z3VPZklQdkpTSm1IMlVKa0VxWWs3Q2FGZ0dj?=
 =?utf-8?B?aU1OdyswYU10RUdHWUpSNHkyVEZac0krNGpmRGV4UWV4bE5QN0wreHUwYXEv?=
 =?utf-8?B?czdJM3FKNVdmN1ZWZ243a25UTnFWYWt5QllFaUtmUGhUaTBzNlVTWG9MWU50?=
 =?utf-8?B?Q2xTMlhzanZVc0RqeVBhai9ycVR3ajlrSUd4cFo3TjdzNURaUGI3Z05NZk5a?=
 =?utf-8?B?djhQTzZBWlNEZlhHWm40NjFtTVA5aDNFeXVaUHgwYmhoMmNWQm5kMGhldDZn?=
 =?utf-8?B?UTQ2Z1poVmpzTlFWaGtOWHV6cTRQWFJiTkRHdDJsbXc0T3BaSmpqMExyZjFh?=
 =?utf-8?B?YXp0aXM2SDNrQVZPdDNkeTNOLzRXSFJBK1dFN2RoRTlaU3NPOFZJendETmc0?=
 =?utf-8?B?cmtOZjUxMnd1VjRKNlM2cUJsbGkzV0RGYWltWW8wc3ZsaFVEYTRvaDlad0s2?=
 =?utf-8?B?YmNTcDl3djFlOUNRWVlFV0hscG9OSkhZM2pVdzhzZmNUMVByeC9YczV4SFBu?=
 =?utf-8?B?UjV2T2NkNUtWVVFtSGpoNDg2Nmh4RXhvRVBTbGswaENkNHMyakFsNEE2bFdx?=
 =?utf-8?B?UE5VTUxvM0JWZG1MWDhubzlGVkFzQTJFeCtLL29UK2FPenMvajkzUElmaHNu?=
 =?utf-8?B?VXpVREF4bDluRkVubHA2MHVudmNKYlhaeUNqK1dEMEpWTjlMYjhTanNHemQ0?=
 =?utf-8?B?MmFLSXJPVEFTUjg2Qk5vck02NEZKR0wyQTZnTldobDRlbXA4Wk5seWd1N08x?=
 =?utf-8?B?b0dnMjFTU2l3PT0=?=
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)(7416014)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?aE1haGVvQWZqRTZBYy93ZXJoWlRxYjViVkFGNVFDR093SGNaUG1HVjRLVmNr?=
 =?utf-8?B?TmRiVEZYUi9rcWF5aitWZ1c1TXdKU0hZRVZjM3UvblFoYm5GT2tSdVN5ZVEy?=
 =?utf-8?B?RFZPTm9OeE1QZVk5S1ZVNUd6R1IxRzhNd0tRRllYY1ZZTDVDRDMrQXF0V3Ev?=
 =?utf-8?B?aEFvbXRVTExIa1AwcTNyNDkvMzcxcU1XY2FUNi9RRDJpMGRNWFlJYmtNSldQ?=
 =?utf-8?B?UWpNczFqcUo1MmZOMUt1QnpDWnNCTFliNzJWQ2loTVIzZTJDUE1TQk1IL0NY?=
 =?utf-8?B?bjNCL0sxcUlzeTVzQkdoVE1LTHVVMzlESlBEdVZPZjVPczNBVWV1Y3pCS1Na?=
 =?utf-8?B?UUNCeDd1dTFDUTgvVkVyMDI5MURrOWRVYU5jald5YkoxYWd6MnB0bDIxZkxE?=
 =?utf-8?B?SDhyTnAvQUVFOGI1LzBYblFDSWRoYkNEN2g1eXNmM3BFNkRyOWpKdnNCK3NM?=
 =?utf-8?B?Y1BoV1V5ZXNWZ0p3a2lBaUpQa3JzZ3pJNFBoYzFwU0YrTG5ncmFUejRmNUpP?=
 =?utf-8?B?THdoTlZHTVRuU0Y5UlBzajg4N3lxV0R0bDA2Y2JUNXVqb1ExNWRXbjg5bUE3?=
 =?utf-8?B?TDNXTG14VUFGMkFoL2hiSXFvQWtmcFRSYnV0UG9aZHJuZS9OU0xvV1FKZVNH?=
 =?utf-8?B?QnIzQm0vaVh0ZlUzVFdCWk44aGhBRUsvNXBvYWRyTjNtVEdoRjAxNDFFNUkv?=
 =?utf-8?B?eVBzVlNYVmM4L0ZaeklhRFhpS1Qwa0liVEIyakJuTjZiZkZZYnVpMldUWXVu?=
 =?utf-8?B?ZjdIVjhnR2k4NDAzUVAvRVZQdGJ2cHcvVWFlem1PRzQrOEd2dVVETVR0eEFU?=
 =?utf-8?B?NmdKbG54OHFTRitqejQwemU5TStKcHQvK0hhMEEwenNYTnMwKzRmK1E0VnhG?=
 =?utf-8?B?VzFNVnBRUm10S0p1VVYwMmQyM0llRkxvQURpVWNlUlM5OTJ4NmM1TVluUnpJ?=
 =?utf-8?B?SjNPNGJEK2dZaWludzZGQUNrdG5DQjI4d1Jnb29MYkQ3MklPc2lVZ3hzS2NH?=
 =?utf-8?B?YzlaZUE5V0Z4eWxmSk1DUWUrL2E4YnFUY0t6QTZ5eEs4TEoxS3ZsMU5VQjFt?=
 =?utf-8?B?UktvT21FN0FnNkVjbi9TNW9yZU93dUJ4MWV0WE5yYzlTbndlK1I1bEc0aENM?=
 =?utf-8?B?Ylk5VmtNVE53Z1NDc1VRbXVVR1FBVUZYbkJ5aGVRaXNOVGZwRGRacS9tYlNN?=
 =?utf-8?B?NVhHdUNFdGtlM2MwUjFOSzMza3lNMDRUY2pyQm5ldGhVOEZvKzY2cDBCekxx?=
 =?utf-8?B?SjVCMnp0bzEvSzhBWUU3Sm5rcVcrb2J1MFdDVUpYUlFCWS9zODhDV08vNjAy?=
 =?utf-8?B?dzR4eFVqcjFmOGdkWEt0d1Fyc2YyQ2dqYXZ6aTNzT0JJdVJDbVhsVG9MMFNJ?=
 =?utf-8?B?MkZSNEs0UVdjZ0FDTjc0a01rNFNjMVVCTWdHNjIzSkdvd0NWbXE0azkrcjRU?=
 =?utf-8?B?YVl6TFp4VGxFNVI0dHNURUs0N2Vka2t3TVFERmNBREIrNVlHckRJTzlyS2Vo?=
 =?utf-8?B?TExKcHZFTzQyMkZtc3ZlOTdoRmg4V24vRXMzUDFWVi9ZWFBubkN6c2h0WmtO?=
 =?utf-8?B?a3hTVmw0cmoyeG9ZcnRiTTZFNmxDbFg3QitHcHlncHhSZ3NBNXlFSW1oRWRt?=
 =?utf-8?B?Ymg0aW4zWTFxYjB5RjdnNGd4K21uYzZpcldtU1V4MUFFcG1SMXgvUjUyNzFP?=
 =?utf-8?B?SHlJb0Zrd3A0UDJ4M21IWDh4L01YRS9NSVVFV0xyNkYrbmJGYzdNc0lrazBu?=
 =?utf-8?B?Wm41Ykg5U0hyT0JKOERERzA5Ymd4ODhINmZwbnFRTVpmWkhjR0twMjU2bE82?=
 =?utf-8?B?MlVoalROUWd1NGFMRVZMV2xKTEpEQnJMSHNsVnN1L1p2MDFld1hPM1RDNkg3?=
 =?utf-8?B?cDNPckRkSjM0alo1d3N1UTQxY2o5RDZxWWlxcmFCVHdUanVqdXZRZUYrSHJ0?=
 =?utf-8?B?cGRmajd2Y1JZdDdpT1BVMmhTY2xzTkRBN290WEoxVTBhN1NmNlQ0aVp5UjBV?=
 =?utf-8?B?ZTdydW5JL0lJR3lERkk1M2luQmZDYThvTUlaeExMYlVmSGZleEJhOTVjTjZ1?=
 =?utf-8?B?SWprSHNoVXVGVnlBV3k3bjVycDJod2Z1SCtWVkFENFdJVkZSODBxcmJaTUxW?=
 =?utf-8?B?Wk5vblltQVRUQ2k5VDlxQUJHcHg3aFR3ZUErK1YzNXNjN04yOVpycENnN1Zu?=
 =?utf-8?B?eHc9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <09994C174DAC2440BF09F992DB9AA7D5@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: bb048c86-afdb-4356-2c40-08dd86509821
X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Apr 2025 12:31:26.3726
 (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: gSx4sZnTSbRYyv4SpKISdHLfIegvz3QfaN5B0gG2uAxliK+jo246d9X9uaEv8crOiwRy8au2T+c1Ga7K4vPCJg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB7571

T24gMjguMDQuMjUgMTE6NTQsIEp1bGllbiBHcmFsbCB3cm90ZToNCj4gSGkgTXlreXRhLA0KPiAN
Cj4gT24gMTQvMDMvMjAyNSAxMzozNCwgTXlreXRhIFBvdHVyYWkgd3JvdGU6DQo+PiBGcm9tOiBT
dGV3YXJ0IEhpbGRlYnJhbmQgPHN0ZXdhcnQuaGlsZGVicmFuZEBhbWQuY29tPg0KPj4NCj4+IEVu
YWJsZSB0aGUgdXNlIG9mIElPTU1VICsgUENJIGluIGRvbTAgd2l0aG91dCBoYXZpbmcgdG8gc3Bl
Y2lmeQ0KPj4gInBjaS1wYXNzdGhyb3VnaD15ZXMiLiBXZSByZWx5IG9uIGRvbTAgdG8gaW5pdGlh
bGl6ZSB0aGUgUENJIGNvbnRyb2xsZXINCj4+IGFuZCBwZXJmb3JtIGEgUEhZU0RFVk9QX3BjaV9k
ZXZpY2VfYWRkIGNhbGwgdG8gYWRkIGVhY2ggZGV2aWNlIHRvIFNNTVUuDQo+IA0KPiBJdCB3b3Vs
ZCBiZSBnb29kIHRvIGV4cGxhaW4gd2h5IFhlbiBjYW5ub3QgaW5pdGlhbGl6ZSB0aGUgUENJIA0K
PiBjb250cm9sbGVyLiBBc2tpbmcsIGJlY2F1c2UgdGhlIHJlYXNvbiBpcyB0aGUgUENJIGNvbnRy
b2xsZXIgaXMgdG9vIA0KPiBjb21wbGV4LCB0aGVuIHlvdSB3aWxsIGxpa2VseSBuZWVkIHRoZSBz
YW1lIGFwcHJvYWNoIGZvciBQQ0kgcGFzc3Rocm91Z2guLi4NCg0KSSB0aGluayB0aGUgbWFpbiBy
ZWFzb24gZm9yIHRoaXMgaXMgY29tcGxleGl0eSBhbmQgdGhlIHBvc3NpYmlsaXR5IG9mIA0KYWRk
aXRpb25hbCBkZXBlbmRlbmNpZXM6IHRoZXJlIGNvdWxkIGJlIGV4dGVybmFsIGNsb2NrcyBvciBy
ZXNldCBwaW5zIA0KdGhhdCB0aGUgUENJIGhvc3QgZGVwZW5kcyBvbiBmb3Igd29ya2luZyBjb3Jy
ZWN0bHkuIEkgd2lsbCBhZGQgdGhpcyB0byANCnRoZSBjb21taXQgbWVzc2FnZS4gUmVnYXJkaW5n
IFBDSSBwYXNzdGhyb3VnaCwgaXQgaXMgYWxyZWFkeSB1c2luZyB0aGUgDQpzYW1lIGFwcHJvYWNo
IChhdCBsZWFzdCBvbiBBcm0pLiBUaGVyZSBhcmUgcGF0Y2hlcyBmb3IgZW5hYmxpbmcgWGVuIG9u
IA0KQXJtIHRvIHBlcmZvcm0gYnVzIGVudW1lcmF0aW9uIGJ5IGl0c2VsZiBieSBMdWNhIEZhbmNl
bGx1LCBidXQgSSBoYXZlbid0IA0KeWV0IGdvdCB0byB0ZXN0IHRoZW0gaW4gYSBtZWFuaW5nZnVs
IHdheS4NCg0KPj4NCj4+IEVuYWJsZSBwY2lfaW5pdCgpIGZvciBpbml0aWFsaXppbmcgWGVuJ3Mg
aW50ZXJuYWwgUENJIHN1YnN5c3RlbSwgYW5kDQo+PiBhbGxvdyBQSFlTREVWT1BfcGNpX2Rldmlj
ZV9hZGQgd2hlbiBwY2ktcGFzc3Rocm91Z2ggaXMgZGlzYWJsZWQuDQo+IA0KPiBFZmZlY3RpdmVs
eSwgd291bGRuJ3QgdGhpcyBtZWFuIGRvbTAgYWx3YXlzICpoYXZlKiB0byBjYWxsIA0KPiBQSFlT
REVWT1BfcGNpX2RldmljZV9hZGQ/IE90aGVyd2lzZSwgaG93IHdvdWxkIGRvbTAga25vdyB3aGV0
aGVyIGl0IA0KPiBuZWVkcyB0byBjYWxsIFBIU1lERVZPUF9wY2lfZGV2aWNlX2FkZD8NCj4gDQo+
IENoZWVycywNCj4gDQoNClllcywgSSBjYW4ndCBzYXkgZm9yIGV2ZXJ5IHN5c3RlbSBidXQgd2l0
aCBQQ0kgaG9zdCBiZWhpbmQgU01NVSB0aGUgDQpQSFlTREVWT1BfcGNpX2RldmljZV9hZGQgY2Fs
bCBpcyByZXF1aXJlZCB0byB1c2UgRE1BLg0KDQotLSANCk15a3l0YQ==


From xen-devel-bounces@lists.xenproject.org Mon Apr 28 12:50:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 12:50:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.970680.1359304 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9NwS-0005U6-DL; Mon, 28 Apr 2025 12:50:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 970680.1359304; Mon, 28 Apr 2025 12: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 1u9NwS-0005Tz-AT; Mon, 28 Apr 2025 12:50:36 +0000
Received: by outflank-mailman (input) for mailman id 970680;
 Mon, 28 Apr 2025 12: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=WylS=XO=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1u9NwR-0005Tp-4H
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 12:50:35 +0000
Received: from mail-ed1-x544.google.com (mail-ed1-x544.google.com
 [2a00:1450:4864:20::544])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5fdacaaf-242f-11f0-9eb4-5ba50f476ded;
 Mon, 28 Apr 2025 14:50:34 +0200 (CEST)
Received: by mail-ed1-x544.google.com with SMTP id
 4fb4d7f45d1cf-5e5cded3e2eso7280399a12.0
 for <xen-devel@lists.xenproject.org>; Mon, 28 Apr 2025 05:50:34 -0700 (PDT)
Received: from ?IPV6:2003:e5:870f:e000:6c64:75fd:2c51:3fef?
 (p200300e5870fe0006c6475fd2c513fef.dip0.t-ipconnect.de.
 [2003:e5:870f:e000:6c64:75fd:2c51:3fef])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-ace6edb1580sm629590766b.175.2025.04.28.05.50.32
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 28 Apr 2025 05:50:33 -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: 5fdacaaf-242f-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745844633; x=1746449433; 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=Ipd2QVSUL3iE7j/leKmDmpOS3TiZmbagecg2Ot21l1M=;
        b=TQ0j8wbIZPTwfPBJXoxAs3bgaGFOwNjxkrgCzxfsYqFQrqmU9DAclv7NRTs7j7IAJu
         43Yh5+yPXcrVi+dy7KK2yUZ2OovAInPUhUMW3XZ5G/3tp2b+HmmkNvkJXVgqYhUcZI5b
         rbF0Q9MWKqi9y4AYFubMTLek5xokep2/qRlXnGEttXkFEnGHcqxkkqR0KItWmdtzcOaT
         1cGZqiBDrU+4stlcDoPTagdntCzevtJOyzkZufN6vlbkGYYS39qPDrvWp03doEzVdiV3
         T7whJi7kmwFOGAUXYkdzVra2P/G4w16z5mR7TlJKr1jSlirXQLtflXSJ56Yeo/Fpuuuj
         JJIg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745844633; x=1746449433;
        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=Ipd2QVSUL3iE7j/leKmDmpOS3TiZmbagecg2Ot21l1M=;
        b=kHBotuo3u7rFcKP25yiOtO2NaZgpVGAnokgHBRRtFeoMJSgLAW1+aQX3Z4ZzrPhWN+
         U2PXheb6CBgJWsraH9iFzmp7Xlqkq8akDK+s5/8XeObBjzPGX0jPE/eqV7w8Rbzjijak
         i2i00rIwYuk2PU9tkiHnfhQ0Gp2wqCT6JBaQH2HE021sIyPg/6j9hmhyNggBCrbmlTRV
         cmlXWo/YAlGKy45nPmafWNzY+Pl3sTcjBWx/tOTg807lUYwtXUNwwEHaegyfftnMuJDk
         wsQp2cY7opIJqwSY0TPntvGBHvuyrxuotmRQZ35PYOYRs7ljt4p2lgoBHfUf/AOxbo0Y
         rY8A==
X-Gm-Message-State: AOJu0YxVlkvWrO9LnevnNE1gzuOieMR/qzpYO7DzMoNM4DNpUpstVhJW
	Zs66WETbdoPtlM1+xbA7W7+gh4tcYM6MJT1m4636OKnO0Z/Vx+NrSXbE7Um6MNU=
X-Gm-Gg: ASbGnctcFtXzCsSO+rpi4euk3KK32qH8HNDQtlSiDso7wKiJFOrAcy+AITx7wBjEHvg
	2Je68cEi/Kh6E92MwwSuJXi51DGLI+et+w3QGQ8tXQAb7ywuqdjhKmrVBnWav4oLOQD3fwqXpok
	LhyF8nMiLU/fB/pOm22tg3L9TDBw4/738E0NMIaCe109l+q7YQCfxfYSFtVmvj1NrHre2zkxGTx
	jnEg54vdtdiIjjhZI8ibgIgMwJflGVLoSyrDWDtTtiCcGgOa5VgcJuSR/kyWYCQvoXnC5Hy4zrb
	znHAjESnUJD/lhKL0iJ+VuL7nqMXbvQ25W0EzsUhRbINldWKuM8m0Cd5wxMhsej+yEHY2WDjYUO
	wxuWq3vIZF6Eb+x0xa6hDFiSe1aFZoiUr3+yytLWFt7Hyiv5lAa9CWxM2Tn0GtQ2mhg==
X-Google-Smtp-Source: AGHT+IGSZX97CGZlVE1t/NJ3ip31dgQNdK432mmun6cZ3exO2Edb9nEq8Hk7NN1nHg4SdYmg6KhyKg==
X-Received: by 2002:a17:906:d54a:b0:ac8:179a:42f5 with SMTP id a640c23a62f3a-ace7108a276mr1169116766b.14.1745844633329;
        Mon, 28 Apr 2025 05:50:33 -0700 (PDT)
Message-ID: <70667513-4035-4fb1-aca3-4c7017bbfa72@suse.com>
Date: Mon, 28 Apr 2025 14:50:32 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/6] docs: remove qemu-traditional support from
 documentation
To: Anthony PERARD <anthony@xenproject.org>
Cc: xen-devel@lists.xenproject.org, Anthony PERARD
 <anthony.perard@vates.tech>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
References: <20250408123526.14613-1-jgross@suse.com>
 <20250408123526.14613-3-jgross@suse.com> <aAoHOrcZ5LlhEObL@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: <aAoHOrcZ5LlhEObL@l14>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------oHFKOKzTnd4Acmx1NPfpkuDQ"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------oHFKOKzTnd4Acmx1NPfpkuDQ
Content-Type: multipart/mixed; boundary="------------PQLNfs0wUZBwXS9igmNOilke";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Anthony PERARD <anthony@xenproject.org>
Cc: xen-devel@lists.xenproject.org, Anthony PERARD
 <anthony.perard@vates.tech>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
Message-ID: <70667513-4035-4fb1-aca3-4c7017bbfa72@suse.com>
Subject: Re: [PATCH v2 2/6] docs: remove qemu-traditional support from
 documentation
References: <20250408123526.14613-1-jgross@suse.com>
 <20250408123526.14613-3-jgross@suse.com> <aAoHOrcZ5LlhEObL@l14>
In-Reply-To: <aAoHOrcZ5LlhEObL@l14>
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=

--------------PQLNfs0wUZBwXS9igmNOilke
Content-Type: multipart/mixed; boundary="------------2p6zo03RuHEnk6Zz9viN9wx3"

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

T24gMjQuMDQuMjUgMTE6NDEsIEFudGhvbnkgUEVSQVJEIHdyb3RlOg0KPiBPbiBUdWUsIEFw
ciAwOCwgMjAyNSBhdCAwMjozNToyMFBNICswMjAwLCBKdWVyZ2VuIEdyb3NzIHdyb3RlOg0K
Pj4gZGlmZiAtLWdpdCBhL2RvY3MvbWFuL3hsLmNmZy41LnBvZC5pbiBiL2RvY3MvbWFuL3hs
LmNmZy41LnBvZC5pbg0KPj4gaW5kZXggNzMzOWM0NGVmZC4uY2NmMGM1ODg5NSAxMDA2NDQN
Cj4+IC0tLSBhL2RvY3MvbWFuL3hsLmNmZy41LnBvZC5pbg0KPj4gKysrIGIvZG9jcy9tYW4v
eGwuY2ZnLjUucG9kLmluDQo+PiBAQCAtODk1LDEyICs4OTUsNiBAQCBpcyB1c2VkLg0KPj4g
ICBTcGVjaWZpZXMgdGhlIHBhdGggdG8gdGhlIFggYXV0aG9yaXR5IGZpbGUgdGhhdCBzaG91
bGQgYmUgdXNlZCB0bw0KPj4gICBjb25uZWN0IHRvIHRoZSBYIHNlcnZlciB3aGVuIHRoZSBC
PHNkbD4gb3B0aW9uIGlzIHVzZWQuDQo+PiAgIA0KPj4gLT1pdGVtIEI8b3BlbmdsPUJPT0xF
QU4+DQo+IA0KPiBUaGlzIGBvcGVuZ2xgIHN1Yi1vcHRpb24gaXMgYWxzbyBtZW50aW9uIGFi
b3ZlLCBmb3IgdGhlIGB2ZmJgIG9wdGlvbi4NCg0KUmlnaHQsIEknbGwgZHJvcCB0aGlzIHJl
ZmVyZW5jZS4NCg0KPiANCj4+IC0NCj4+IC1FbmFibGUgT3BlbkdMIGFjY2VsZXJhdGlvbiBv
ZiB0aGUgU0RMIGRpc3BsYXkuIE9ubHkgZWZmZWN0cyBtYWNoaW5lcw0KPj4gLXVzaW5nIEI8
ZGV2aWNlX21vZGVsX3ZlcnNpb249InFlbXUteGVuLXRyYWRpdGlvbmFsIj4gYW5kIG9ubHkg
aWYgdGhlDQo+PiAtZGV2aWNlLW1vZGVsIHdhcyBjb21waWxlZCB3aXRoIE9wZW5HTCBzdXBw
b3J0LiBUaGUgZGVmYXVsdCBpcyAwIChkaXNhYmxlZCkuDQo+PiAtDQo+PiAgID1pdGVtIEI8
a2V5bWFwPUxBTkc+DQo+PiAgIA0KPj4gICBDb25maWd1cmUgdGhlIGtleW1hcCB0byB1c2Ug
Zm9yIHRoZSBrZXlib2FyZCBhc3NvY2lhdGVkIHdpdGggdGhpcw0KPj4gQEAgLTEyMTUsMTcg
KzEyMDksMTQgQEAgd29ya2luZyBncmFwaGljcyBwYXNzdGhyb3VnaC4gU2VlIHRoZSBYZW5W
R0FQYXNzdGhyb3VnaFRlc3RlZEFkYXB0ZXJzDQo+PiAgIEw8aHR0cHM6Ly93aWtpLnhlbnBy
b2plY3Qub3JnL3dpa2kvWGVuVkdBUGFzc3Rocm91Z2hUZXN0ZWRBZGFwdGVycz4gd2lraSBw
YWdlDQo+PiAgIGZvciBncmFwaGljcyBjYXJkcyBjdXJyZW50bHkgc3VwcG9ydGVkIGJ5IEI8
Z2Z4X3Bhc3N0aHJ1Pi4NCj4+ICAgDQo+PiAtQjxnZnhfcGFzc3RocnU+IGlzIGN1cnJlbnRs
eSBzdXBwb3J0ZWQgYm90aCB3aXRoIHRoZSBxZW11LXhlbi10cmFkaXRpb25hbA0KPj4gLWRl
dmljZS1tb2RlbCBhbmQgdXBzdHJlYW0gcWVtdS14ZW4gZGV2aWNlLW1vZGVsLg0KPj4gK0I8
Z2Z4X3Bhc3N0aHJ1PiBpcyBjdXJyZW50bHkgc3VwcG9ydGVkIHdpdGggdGhlIHVwc3RyZWFt
IHFlbXUteGVuIGRldmljZS1tb2RlbC4NCj4gDQo+IEkgZG9uJ3QgdW5kZXJzdGFuZCB3aHkg
dGhpcyBpcyB3cml0dGVuIGluIHRoZSBkb2MgOi0oLCB3aGVyZSBpcyBpdCBub3QNCj4gc3Vw
cG9ydGVkPyBQcmV2aW91cyByZXZpc2lvbiBoYWQ6ICJvbmx5IHN1cHBvcnRlZCBvbiBxZW11
LXRyYWQsIG5vDQo+IHN1cHBvcnQgZm9yIHFlbXUteGVuIiB3aGljaCB3YXMgdXNlZnVsIGlu
Zm9ybWF0aW9uLCBhbmQgd2FzIGNoYW5nZWQNCj4gbGF0ZXIgd2hlbiBxZW11LXhlbiBnYWlu
IHN1cHBvcnQuIEkgd291bGQgcmVtb3ZlIHRoZSBzZW50ZW5jZS4NCg0KQWdyZWVkLg0KDQo+
IA0KPj4gICBXaGVuIGdpdmVuIGFzIGEgYm9vbGVhbiB0aGUgQjxnZnhfcGFzc3RocnU+IG9w
dGlvbiBlaXRoZXIgZGlzYWJsZXMgZ3JhcGhpY3MNCj4+ICAgY2FyZCBwYXNzdGhyb3VnaCBv
ciBlbmFibGVzIGF1dG9kZXRlY3Rpb24uDQo+PiAgIA0KPj4gICBXaGVuIGdpdmVuIGFzIGEg
c3RyaW5nIHRoZSBCPGdmeF9wYXNzdGhydT4gb3B0aW9uIGRlc2NyaWJlcyB0aGUgdHlwZQ0K
Pj4gICBvZiBkZXZpY2UgdG8gZW5hYmxlLiBOb3RlIHRoYXQgdGhpcyBiZWhhdmlvciBpcyBv
bmx5IHN1cHBvcnRlZCB3aXRoIHRoZQ0KPj4gLXVwc3RyZWFtIHFlbXUteGVuIGRldmljZS1t
b2RlbC4gV2l0aCBxZW11LXhlbi10cmFkaXRpb25hbCBJR0QgKEludGVsIEdyYXBoaWNzDQo+
PiAtRGV2aWNlKSBpcyBhbHdheXMgYXNzdW1lZCBhbmQgb3B0aW9ucyBvdGhlciB0aGFuIGF1
dG9kZXRlY3Qgb3IgZXhwbGljaXQgSUdEDQo+PiAtd2lsbCByZXN1bHQgaW4gYW4gZXJyb3Iu
DQo+PiArdXBzdHJlYW0gcWVtdS14ZW4gZGV2aWNlLW1vZGVsLg0KPiANCj4gSGVyZSwgd2Ug
Y2FuIHJlbW92ZSB0aGUgIk5vdGUgdGhhdCB0aGlzIGJlaGF2aW9yIGlzIG9ubHkgc3VwcG9y
dGVkIHdpdGgNCj4gcWVtdS14ZW4gZG0iLCB0aGlzIGlzIHRoZSBvbmx5IGRldmljZSBtb2Rl
bCBzdXBwb3J0ZWQgc28gSSBob3BlIHRoZQ0KPiBiZWhhdmlvciBpcyBzdXBwb3J0ZWQgaW4g
dGhpcyBjYXNlLi4uDQoNClllcy4NCg0KPiANCj4+ICAgDQo+PiAgIEN1cnJlbnRseSwgdmFs
aWQgdmFsdWVzIGZvciB0aGUgb3B0aW9uIGFyZToNCj4+ICAgDQo+PiBAQCAtMTkwMywxMCAr
MTg5NCw3IEBAIGl0IG1heSBiZSB1c2VmdWwgdG8gcmVxdWVzdCBhIGRpZmZlcmVudCBvbmUs
IGxpa2UgVUVGSS4NCj4+ICAgDQo+PiAgID1pdGVtIEI8cm9tYmlvcz4NCj4+ICAgDQo+PiAt
TG9hZHMgUk9NQklPUywgYSAxNi1iaXQgeDg2IGNvbXBhdGlibGUgQklPUy4gVGhpcyBpcyB1
c2VkIGJ5IGRlZmF1bHQNCj4+IC13aGVuIEI8ZGV2aWNlX21vZGVsX3ZlcnNpb249cWVtdS14
ZW4tdHJhZGl0aW9uYWw+LiBUaGlzIGlzIHRoZSBvbmx5IEJJT1MNCj4+IC1vcHRpb24gc3Vw
cG9ydGVkIHdoZW4gQjxkZXZpY2VfbW9kZWxfdmVyc2lvbj1xZW11LXhlbi10cmFkaXRpb25h
bD4uIFRoaXMgaXMNCj4+IC10aGUgQklPUyB1c2VkIGJ5IGFsbCBwcmV2aW91cyBYZW4gdmVy
c2lvbnMuDQo+PiArTG9hZHMgUk9NQklPUywgYSAxNi1iaXQgeDg2IGNvbXBhdGlibGUgQklP
Uy4NCj4gDQo+IFRoaXMgb3B0aW9uIGlzIG5vdCB2YWxpZCBhbnltb3JlLCBsaWJ4bCB3aWxs
IGNvbXBsYWluIHdpdGg6DQo+ICAgICAgInFlbXUteGVuIGRvZXMgbm90IHN1cHBvcnQgYmlv
cz1yb21iaW9zLiINCj4gDQo+IEFuZCBJIGhhdmUgbm8gaWRlYSBpZiBpdCBjYW4gd29yayBv
biBub3QsIEkganVzdCBrbm93IHRoYXQgWGVuU2VydmVyDQo+IHN0aWxsIHVzZSBSb21CSU9T
IHdpdGggYSBwYXRjaGVkIFFFTVUuDQoNCkkgZXhwbGljaXRseSBkaWRuJ3QgcmVtb3ZlIFJv
bUJJT1Mgc3VwcG9ydCBkdWUgdG8gYSByZW1hcmsgYnkgQW5kcmV3IHRoYXQNClhlblNlcnZl
ciBpcyBzdGlsbCB1c2luZyBpdC4NCg0KQW55IHN1Z2dlc3Rpb25zIHdoYXQgdG8gZG8/DQoN
Cj4gDQo+PiAgID1pdGVtIEI8c2VhYmlvcz4NCj4+ICAgDQo+PiBAQCAtMTkyNiw4ICsxOTE0
LDcgQEAgT3ZlcnJpZGUgdGhlIHBhdGggdG8gdGhlIGJsb2IgdG8gYmUgdXNlZCBhcyBCSU9T
LiBUaGUgYmxvYiBwcm92aWRlZCBoZXJlIE1VU1QNCj4+ICAgYmUgY29uc2lzdGVudCB3aXRo
IHRoZSBCPGJpb3M9PiB3aGljaCB5b3UgaGF2ZSBzcGVjaWZpZWQuIFlvdSBzaG91bGQgbm90
DQo+PiAgIG5vcm1hbGx5IG5lZWQgdG8gc3BlY2lmeSB0aGlzIG9wdGlvbi4NCj4+ICAgDQo+
PiAtVGhpcyBvcHRpb24gZG9lcyBub3QgaGF2ZSBhbnkgZWZmZWN0IGlmIHVzaW5nIEI8Ymlv
cz0icm9tYmlvcyI+IG9yDQo+PiAtQjxkZXZpY2VfbW9kZWxfdmVyc2lvbj0icWVtdS14ZW4t
dHJhZGl0aW9uYWwiPi4NCj4+ICtUaGlzIG9wdGlvbiBkb2VzIG5vdCBoYXZlIGFueSBlZmZl
Y3QgaWYgdXNpbmcgQjxiaW9zPSJyb21iaW9zIj4uDQo+IA0KPiBUaGlzIGRvZXNuJ3Qgc2Vl
bXMgdG8gYmUgdHJ1ZS4gSSB0aGluayB0aGUgb25seSB3YXkgY3VycmVudGx5IHRvIGhhdmUN
Cj4gYGJpb3NfcGF0aF9vdmVycmlkZWAgYmVlbiBlZmZlY3RpdmUgaXMgdG8gc3RhcnQgYSBn
dWVzdCB3aXRoIHR5cGU9aHZtDQo+IGFuZCBkZXZpY2VfbW9kZWxfdmVyc2lvbj1xZW11LXhl
bi4NCj4gDQo+IFNvIG1heWJlIGluc3RlYWQgd2Ugc2hvdWxkIHdyaXRlICJSZXF1aXJlcw0K
PiBCPGRldmljZV9tb2RlbF92ZXJzaW9uPSJxZW11LXhlbiI+LiIgbGlrZSB3ZSBoYXZlIGZv
ciB0aGUgYmlvcz1vdm1mIG9wdGlvbi4NCg0KRmluZSB3aXRoIG1lLg0KDQoNCkp1ZXJnZW4N
Cg==
--------------2p6zo03RuHEnk6Zz9viN9wx3
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-----

--------------2p6zo03RuHEnk6Zz9viN9wx3--

--------------PQLNfs0wUZBwXS9igmNOilke--

--------------oHFKOKzTnd4Acmx1NPfpkuDQ
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/Ey8FAmgPeZgFAwAAAAAACgkQsN6d1ii/Ey+Z
0gf/WoNfyTRD73OO9qhvIhHnm0tEzDye3Ygwo2yoST+B51wTBoF3CPypiGNQH424WFrKBxq8kaCN
ROeAi1xVb0sWkK0T5ZcDf/k4B26xINtjU3zmT/Tx2lMbJaZM2aACIW7SjN1wkO3PD0s+pDMnrcbA
K6m12bi71mDPw/aOJq83X+8DJbdp0Gyyn2e8bVek80+BOaAvmVez2hC/QMTmsZZMtKtcMAIu6CT/
oqmudXxu9D0J4GgePVPgQFWHwm1Ckj+fOMP90UHe553DsuYoVB/YinuK9C3kx3/JiVLsbNVZe/k4
r/uub2XcOB1PDf3wdveLkiWSoYE3toCceoZPCF3EhQ==
=AdoM
-----END PGP SIGNATURE-----

--------------oHFKOKzTnd4Acmx1NPfpkuDQ--


From xen-devel-bounces@lists.xenproject.org Mon Apr 28 12:56:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 12:56:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.970697.1359314 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9O1c-0006RR-1G; Mon, 28 Apr 2025 12:55:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 970697.1359314; Mon, 28 Apr 2025 12:55:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9O1b-0006RK-UJ; Mon, 28 Apr 2025 12:55:55 +0000
Received: by outflank-mailman (input) for mailman id 970697;
 Mon, 28 Apr 2025 12:55:55 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1u9O1b-0006RE-Ex
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 12:55:55 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1u9O1a-00ASYh-2C;
 Mon, 28 Apr 2025 12:55:54 +0000
Received: from [2a02:8012:3a1:0:8834:9d13:966f:8422]
 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 1u9O1a-0065AB-1P;
 Mon, 28 Apr 2025 12:55:54 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=uuJHzQhZovTg4802SQSYYH7n+CIAA3BfigGhLTOZHh8=; b=jKT+MYC2VRqqA66/Rty2MWZUg5
	7eRLjY5VjSmvyUfnFnfXTN0E/cvjs1ORZu2LDvm3Xg0hEZXw7twA+2qimzy8Tyg7rzUzj5VNLGOM3
	c17ckLvGwXZsUd+5zzv6VXhgQ5IkVc9P+hFo3tVtC3CIbg4XTjPB5q7Hp178Jx92AG/8=;
Message-ID: <a1715315-f4c8-4062-89db-e2df7b22865b@xen.org>
Date: Mon, 28 Apr 2025 13:55:52 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v9 7/8] xen/arm: enable dom0 to use PCI devices with
 pci-passthrough=no
Content-Language: en-GB
To: Mykyta Poturai <Mykyta_Poturai@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Stewart Hildebrand <stewart.hildebrand@amd.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>,
 Anthony PERARD <anthony.perard@vates.tech>, Jan Beulich <jbeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <cover.1741958647.git.mykyta_poturai@epam.com>
 <132afbca390edd6e9fd7b1ffacf6c5aff0d29aa7.1741958647.git.mykyta_poturai@epam.com>
 <7d376741-ff23-4618-83bd-415c8d8fa24e@xen.org>
 <ae2c8d37-e350-4125-921f-3d320c28d6cd@epam.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <ae2c8d37-e350-4125-921f-3d320c28d6cd@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

On 28/04/2025 13:31, Mykyta Poturai wrote:
> On 28.04.25 11:54, Julien Grall wrote:
>> Hi Mykyta,
>>
>> On 14/03/2025 13:34, Mykyta Poturai wrote:
>>> From: Stewart Hildebrand <stewart.hildebrand@amd.com>
>>>
>>> Enable the use of IOMMU + PCI in dom0 without having to specify
>>> "pci-passthrough=yes". We rely on dom0 to initialize the PCI controller
>>> and perform a PHYSDEVOP_pci_device_add call to add each device to SMMU.
>>
>> It would be good to explain why Xen cannot initialize the PCI
>> controller. Asking, because the reason is the PCI controller is too
>> complex, then you will likely need the same approach for PCI passthrough...
> 
> I think the main reason for this is complexity and the possibility of
> additional dependencies: there could be external clocks or reset pins
> that the PCI host depends on for working correctly. I will add this to
> the commit message. Regarding PCI passthrough, it is already using the
> same approach (at least on Arm). There are patches for enabling Xen on
> Arm to perform bus enumeration by itself by Luca Fancellu, but I haven't
> yet got to test them in a meaningful way.

Can you provide a link to the series? I would like to make sure we have 
a coherent approach. In particular, it is not clear to me how Dom0 and 
Xen will be able to coordinate the access to the PCI controller. Are we 
going to have a mediator?

> 
>>>
>>> Enable pci_init() for initializing Xen's internal PCI subsystem, and
>>> allow PHYSDEVOP_pci_device_add when pci-passthrough is disabled.
>>
>> Effectively, wouldn't this mean dom0 always *have* to call
>> PHYSDEVOP_pci_device_add? Otherwise, how would dom0 know whether it
>> needs to call PHSYDEVOP_pci_device_add?
>>
>> Cheers,
>>
> 
> Yes, I can't say for every system but with PCI host behind SMMU the
> PHYSDEVOP_pci_device_add call is required to use DMA.

Dom0 will not be able to know whether a device is protected by an IOMMU. 
So I guess it means the OS will need to be able to cope with an error 
(like on x86).

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Mon Apr 28 13:05:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 13:05:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.970710.1359324 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9OAJ-0008Qt-Qt; Mon, 28 Apr 2025 13:04:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 970710.1359324; Mon, 28 Apr 2025 13: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 1u9OAJ-0008Qm-Np; Mon, 28 Apr 2025 13:04:55 +0000
Received: by outflank-mailman (input) for mailman id 970710;
 Mon, 28 Apr 2025 13: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=WylS=XO=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1u9OAI-0008Qg-7G
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 13:04:54 +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 5ed97e09-2431-11f0-9ffb-bf95429c2676;
 Mon, 28 Apr 2025 15:04:51 +0200 (CEST)
Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org
 [IPv6:2a07:de40:b281:104:10:150:64:97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out1.suse.de (Postfix) with ESMTPS id B075921180;
 Mon, 28 Apr 2025 13:04:50 +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 42EE613A25;
 Mon, 28 Apr 2025 13:04:50 +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 sBe8DvJ8D2g5WwAAD6G6ig
 (envelope-from <jgross@suse.com>); Mon, 28 Apr 2025 13:04: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: 5ed97e09-2431-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1745845490; 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=od72QRd6he/8HO9xdVfGZbrrZCYflBPPHkV3MHPViJQ=;
	b=o6jV9m27IhXKky192XyzBihctLmYe2LvkMq35kcJ7AggpPg75gP1EEphqEd1VwA34u5p7K
	+dxWKlSOx2eTvi6sAIMpLFfiKsQOrv09lZqrVbBGHonnAkqNVKBYAD/YvsrS2nSQgHH61p
	/SOKjVJ4FDiCpTcuYFoLazoEYaZy8vo=
Authentication-Results: smtp-out1.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=o6jV9m27
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1745845490; 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=od72QRd6he/8HO9xdVfGZbrrZCYflBPPHkV3MHPViJQ=;
	b=o6jV9m27IhXKky192XyzBihctLmYe2LvkMq35kcJ7AggpPg75gP1EEphqEd1VwA34u5p7K
	+dxWKlSOx2eTvi6sAIMpLFfiKsQOrv09lZqrVbBGHonnAkqNVKBYAD/YvsrS2nSQgHH61p
	/SOKjVJ4FDiCpTcuYFoLazoEYaZy8vo=
Message-ID: <25f7db75-c608-47f7-bdf5-98fe0946a232@suse.com>
Date: Mon, 28 Apr 2025 15:04:49 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 3/6] tools: remove support for running a guest with
 qemu-traditional
To: Anthony PERARD <anthony@xenproject.org>
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Nick Rosbrook <rosbrookn@gmail.com>, George Dunlap <gwd@xenproject.org>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
References: <20250408123526.14613-1-jgross@suse.com>
 <20250408123526.14613-4-jgross@suse.com> <aAo_kQKhjRMqRNhO@l14>
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: <aAo_kQKhjRMqRNhO@l14>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------0oGuNtKhi7i18Hsenmve0CiL"
X-Rspamd-Queue-Id: B075921180
X-Spam-Score: -5.41
X-Rspamd-Action: no action
X-Spamd-Result: default: False [-5.41 / 50.00];
	BAYES_HAM(-3.00)[100.00%];
	SIGNED_PGP(-2.00)[];
	MIME_BASE64_TEXT_BOGUS(1.00)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain];
	R_DKIM_ALLOW(-0.20)[suse.com:s=susede1];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	MIME_UNKNOWN(0.10)[application/pgp-keys];
	MIME_BASE64_TEXT(0.10)[];
	MX_GOOD(-0.01)[];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	FREEMAIL_ENVRCPT(0.00)[gmail.com];
	FUZZY_BLOCKED(0.00)[rspamd.com];
	RBL_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	TO_DN_SOME(0.00)[];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	ARC_NA(0.00)[];
	RCVD_TLS_ALL(0.00)[];
	DKIM_TRACE(0.00)[suse.com:+];
	SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	RCVD_COUNT_TWO(0.00)[2];
	DNSWL_BLOCKED(0.00)[2a07:de40:b281:104:10:150:64:97:from,2a07:de40:b281:106:10:150:64:167:received];
	FROM_EQ_ENVFROM(0.00)[];
	FROM_HAS_DN(0.00)[];
	FREEMAIL_CC(0.00)[lists.xenproject.org,suse.com,citrix.com,vates.tech,gmail.com,xenproject.org,invisiblethingslab.com];
	MID_RHS_MATCH_FROM(0.00)[];
	RECEIVED_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:106:10:150:64:167:received];
	HAS_ATTACHMENT(0.00)[];
	RCPT_COUNT_SEVEN(0.00)[9];
	ASN(0.00)[asn:25478, ipnet:::/0, country:RU];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[imap1.dmz-prg2.suse.org:rdns,imap1.dmz-prg2.suse.org:helo]
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)
--------------0oGuNtKhi7i18Hsenmve0CiL
Content-Type: multipart/mixed; boundary="------------ZI3bj1zPUjGanSkZwWnBbhJ6";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Anthony PERARD <anthony@xenproject.org>
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Nick Rosbrook <rosbrookn@gmail.com>, George Dunlap <gwd@xenproject.org>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Message-ID: <25f7db75-c608-47f7-bdf5-98fe0946a232@suse.com>
Subject: Re: [PATCH v2 3/6] tools: remove support for running a guest with
 qemu-traditional
References: <20250408123526.14613-1-jgross@suse.com>
 <20250408123526.14613-4-jgross@suse.com> <aAo_kQKhjRMqRNhO@l14>
In-Reply-To: <aAo_kQKhjRMqRNhO@l14>
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=

--------------ZI3bj1zPUjGanSkZwWnBbhJ6
Content-Type: multipart/mixed; boundary="------------dfWRolGXnNe81uOWLkY0iOI3"

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

T24gMjQuMDQuMjUgMTU6NDEsIEFudGhvbnkgUEVSQVJEIHdyb3RlOg0KPiBPbiBUdWUsIEFw
ciAwOCwgMjAyNSBhdCAwMjozNToyMVBNICswMjAwLCBKdWVyZ2VuIEdyb3NzIHdyb3RlOg0K
Pj4gZGlmZiAtLWdpdCBhL3Rvb2xzL2Zpcm13YXJlL2h2bWxvYWRlci9wY2kuYyBiL3Rvb2xz
L2Zpcm13YXJlL2h2bWxvYWRlci9wY2kuYw0KPj4gaW5kZXggYzNjNjFjYTA2MC4uYTAwYWNk
ZDQ1YiAxMDA2NDQNCj4+IC0tLSBhL3Rvb2xzL2Zpcm13YXJlL2h2bWxvYWRlci9wY2kuYw0K
Pj4gKysrIGIvdG9vbHMvZmlybXdhcmUvaHZtbG9hZGVyL3BjaS5jDQo+PiBAQCAtMTEzLDE5
ICsxMTMsOSBAQCB2b2lkIHBjaV9zZXR1cCh2b2lkKQ0KPj4gICAgICAgICogaW5jcmVhc2Ug
dGhlIHNpemUgb2YgdGhlIGxvd21lbSBNTUlPIGhvbGU/ICBEZWZhdWx0aW5nIHRvIDENCj4g
DQo+IFRoaXMgc2F5ICJkZWZhdWx0IHRvIDEiLCBidXQgdGhlIGRlZmF1bHQgaXMgY2hhbmdp
bmcgdG8gMCBpbnN0ZWFkLg0KDQpObywgaXQgZXhwbGFpbnMgdGhlIGNvbnNlcXVlbmNlcyBp
biBjYXNlIHRoZSBkZWZhdWx0IHdvdWxkIGJlIDEuDQoNCj4gDQo+PiAgICAgICAgKiBoZXJl
IHdpbGwgbWVhbiB0aGF0IG5vbi1saWJ4bCB0b29sc3RhY2tzIChpbmNsdWRpbmcgeGVuZCBh
bmQNCj4+ICAgICAgICAqIGhvbWUtZ3Jvd24gb25lcykgbWVhbnMgdGhhdCB0aG9zZSB1c2lu
ZyBxZW11LXhlbiB3aWxsIHN0aWxsDQo+PiAtICAgICAqIGV4cGVyaWVuY2UgdGhlIG1lbW9y
eSByZWxvY2F0aW9uIGJ1ZyBkZXNjcmliZWQgYmVsb3c7IGJ1dCBpdA0KPj4gLSAgICAgKiBh
bHNvIG1lYW5zIHRoYXQgdGhvc2UgdXNpbmcgcWVtdS10cmFkaXRpb25hbCB3aWxsICpub3Qq
DQo+PiAtICAgICAqIGV4cGVyaWVuY2UgYW55IGNoYW5nZTsgYW5kIGl0IGFsc28gbWVhbnMg
dGhhdCB0aGVyZSBpcyBhDQo+PiAtICAgICAqIHdvcmstYXJvdW5kIGZvciB0aG9zZSB1c2lu
ZyBxZW11LXhlbiwgbmFtZWx5IHN3aXRjaGluZyB0bw0KPj4gLSAgICAgKiBxZW11LXRyYWRp
dGlvbmFsLg0KPj4gLSAgICAgKg0KPj4gLSAgICAgKiBJZiB3ZSBkZWZhdWx0ZWQgdG8gMCwg
YW5kIGZhaWxpbmcgdG8gcmVzaXplIHRoZSBob2xlIGNhdXNlZCBhbnkNCj4+IC0gICAgICog
cHJvYmxlbXMgd2l0aCBxZW11LXRyYWRpdGlvbmFsLCB0aGVuIHRoZXJlIGlzIG5vIHdvcmst
YXJvdW5kLg0KPj4gLSAgICAgKg0KPj4gLSAgICAgKiBTaW5jZSB4ZW5kIGNhbiBvbmx5IHVz
ZSBxZW11LXRyYWRpdGlvbmFsLCBJIHRoaW5rIHRoaXMgaXMgdGhlDQo+PiAtICAgICAqIG9w
dGlvbiB0aGF0IHdpbGwgaGF2ZSB0aGUgbGVhc3QgaW1wYWN0Lg0KPj4gKyAgICAgKiBleHBl
cmllbmNlIHRoZSBtZW1vcnkgcmVsb2NhdGlvbiBidWcgZGVzY3JpYmVkIGJlbG93Lg0KPj4g
ICAgICAgICovDQo+PiAtICAgIGJvb2wgYWxsb3dfbWVtb3J5X3JlbG9jYXRlID0gMTsNCj4+
ICsgICAgYm9vbCBhbGxvd19tZW1vcnlfcmVsb2NhdGUgPSAwOw0KPiANCj4gSSB3b3VsZCBr
ZWVwIHRoaXMgYXMgMS4gbGlieGwgZG9lcyBzZXQgaXQgdG8gMCBzbyB0aGVyZSdzIG5vIG5l
ZWQgdG8NCj4gY2hhbmdlIHRoZSBkZWZhdWx0IGhlcmUuIEkgZG9uJ3Qga25vdyBpZiBub24t
bGlieGwgdG9vbHN0YWNrIHdpbGwgc2V0DQo+IHRoZSB4ZW5zdG9yZSBlbnRyeSAiaHZtbG9h
ZGVyL2FsbG93LW1lbW9yeS1yZWxvY2F0ZSIgd2l0aCAiMSIgaWYgdGhleQ0KPiBuZWVkIGl0
Lg0KDQpGYWlyIGVub3VnaC4NCg0KPiANCj4+ICAgDQo+PiAgICAgICBCVUlMRF9CVUdfT04o
KHR5cGVvZigqcGNpX2RldmZuX2RlY29kZV90eXBlKSlQQ0lfQ09NTUFORF9JTyAhPQ0KPj4g
ICAgICAgICAgICAgICAgICAgIFBDSV9DT01NQU5EX0lPKTsNCj4+IEBAIC0zNDcsMTAgKzMz
Nyw3IEBAIHZvaWQgcGNpX3NldHVwKHZvaWQpDQo+PiAgICAgICB7DQo+PiAgICAgICAgICAg
LyoNCj4+ICAgICAgICAgICAgKiBBdCB0aGUgbW9tZW50IHFlbXUteGVuIGNhbid0IGRlYWwg
d2l0aCByZWxvY2F0ZWQgbWVtb3J5IHJlZ2lvbnMuDQo+PiAtICAgICAgICAgKiBJdCdzIHRv
byBjbG9zZSB0byB0aGUgcmVsZWFzZSB0byBtYWtlIGEgcHJvcGVyIGZpeDsgZm9yIG5vdywN
Cj4+IC0gICAgICAgICAqIG9ubHkgYWxsb3cgdGhlIE1NSU8gaG9sZSB0byBncm93IGxhcmdl
IGVub3VnaCB0byBtb3ZlIGd1ZXN0IG1lbW9yeQ0KPj4gLSAgICAgICAgICogaWYgd2UncmUg
cnVubmluZyBxZW11LXRyYWRpdGlvbmFsLiAgSXRlbXMgdGhhdCBkb24ndCBmaXQgd2lsbCBi
ZQ0KPj4gLSAgICAgICAgICogcmVsb2NhdGVkIGludG8gdGhlIDY0LWJpdCBhZGRyZXNzIHNw
YWNlLg0KPj4gKyAgICAgICAgICogSXQncyB0b28gY2xvc2UgdG8gdGhlIHJlbGVhc2UgdG8g
bWFrZSBhIHByb3BlciBmaXguDQo+IA0KPiBJIGZlZWwgbGlrZSB0aGlzIGlzIHJlbW92aW5n
IHRvbyBtdWNoIGluZm9ybWF0aW9uLiBNYXliZSBpbnN0ZWFkIG9mICJpZg0KPiB3ZSBhcmUg
cnVubmluZyBxZW11LXRyYWRpdGlvbmFsIiwgd2UgY291bGQgaGF2ZSAiaWYNCj4gYWxsb3df
bWVtb3J5X3JlbG9jYXRlIGlzIHRydWUiLg0KDQpGaW5lIHdpdGggbWUsIGJ1dCBJIHRoaW5r
IGl0IGlzIHRpbWUgdG8gcmVtb3ZlIHRoZSByZWZlcmVuY2UgdG8gdGhlIHJlbGVhc2UNCmJl
aW5nIHRvbyBjbG9zZS4NCg0KPiANCj4+ICAgICAgICAgICAgKg0KPj4gICAgICAgICAgICAq
IFRoaXMgbG9vcCBub3cgZG9lcyB0aGUgZm9sbG93aW5nOg0KPj4gICAgICAgICAgICAqIC0g
SWYgYWxsb3dfbWVtb3J5X3JlbG9jYXRlLCBpbmNyZWFzZSB0aGUgTU1JTyBob2xlIHVudGls
IGl0J3MNCj4+IGRpZmYgLS1naXQgYS90b29scy9maXJtd2FyZS9odm1sb2FkZXIvdXRpbC5j
IGIvdG9vbHMvZmlybXdhcmUvaHZtbG9hZGVyL3V0aWwuYw0KPj4gaW5kZXggMmQwN2NlMTI5
MC4uNzljMGU2YmQ0YSAxMDA2NDQNCj4+IC0tLSBhL3Rvb2xzL2Zpcm13YXJlL2h2bWxvYWRl
ci91dGlsLmMNCj4+ICsrKyBiL3Rvb2xzL2Zpcm13YXJlL2h2bWxvYWRlci91dGlsLmMNCj4+
IEBAIC04NDMsMTQgKzg0Myw3IEBAIHZvaWQgaHZtbG9hZGVyX2FjcGlfYnVpbGRfdGFibGVz
KHN0cnVjdCBhY3BpX2NvbmZpZyAqY29uZmlnLA0KPj4gICANCj4+ICAgICAgIC8qIElmIHRo
ZSBkZXZpY2UgbW9kZWwgaXMgc3BlY2lmaWVkIHN3aXRjaCB0byB0aGUgY29ycmVzcG9uZGlu
ZyB0YWJsZXMgKi8NCj4+ICAgICAgIHMgPSB4ZW5zdG9yZV9yZWFkKCJwbGF0Zm9ybS9kZXZp
Y2UtbW9kZWwiLCAiIik7DQo+PiAtICAgIGlmICggIXN0cm5jbXAocywgInFlbXVfeGVuX3Ry
YWRpdGlvbmFsIiwgMjEpICkNCj4+IC0gICAgew0KPj4gLSAgICAgICAgY29uZmlnLT5kc2R0
X2FueWNwdSA9IGRzZHRfYW55Y3B1Ow0KPj4gLSAgICAgICAgY29uZmlnLT5kc2R0X2FueWNw
dV9sZW4gPSBkc2R0X2FueWNwdV9sZW47DQo+PiAtICAgICAgICBjb25maWctPmRzZHRfMTVj
cHUgPSBkc2R0XzE1Y3B1Ow0KPj4gLSAgICAgICAgY29uZmlnLT5kc2R0XzE1Y3B1X2xlbiA9
IGRzZHRfMTVjcHVfbGVuOw0KPiANCj4gVGhvc2UgYGRzZHRfYW55Y3B1YCBhbmQgYGRzZHRf
MTVjcHVgIGJsb2IgYXJlIHN0aWxsIGJ1aWx0IGluLiBUaGUgYXJlDQo+IGJvdGggYXNzb2Np
YXRlZCB3aXRoIHFlbXUtdHJhZCBzbyBzaG91bGQgbm90IGJlIGluY2x1ZGVkIGluIGh2bWxv
YWRlcg0KPiBhbnltb3JlLg0KDQpPa2F5LCBJJ2xsIHJlbW92ZSB0aGVtLg0KDQo+IA0KPj4g
LSAgICB9DQo+PiAtICAgIGVsc2UgaWYgKCAhc3RybmNtcChzLCAicWVtdV94ZW4iLCA5KSAp
DQo+PiArICAgIGlmICggIXN0cm5jbXAocywgInFlbXVfeGVuIiwgOSkgKQ0KPj4gICAgICAg
ew0KPj4gICAgICAgICAgIGNvbmZpZy0+ZHNkdF9hbnljcHUgPSBkc2R0X2FueWNwdV9xZW11
X3hlbjsNCj4+ICAgICAgICAgICBjb25maWctPmRzZHRfYW55Y3B1X2xlbiA9IGRzZHRfYW55
Y3B1X3FlbXVfeGVuX2xlbjsNCj4+IGRpZmYgLS1naXQgYS90b29scy9nb2xhbmcveGVubGln
aHQvdHlwZXMuZ2VuLmdvIGIvdG9vbHMvZ29sYW5nL3hlbmxpZ2h0L3R5cGVzLmdlbi5nbw0K
Pj4gaW5kZXggZTc2NjdmMWNlMy4uMDJjNGQ4ZDEyMyAxMDA2NDQNCj4+IC0tLSBhL3Rvb2xz
L2dvbGFuZy94ZW5saWdodC90eXBlcy5nZW4uZ28NCj4+ICsrKyBiL3Rvb2xzL2dvbGFuZy94
ZW5saWdodC90eXBlcy5nZW4uZ28NCj4+IEBAIC03MCw3ICs3MCw2IEBAIENoYW5uZWxDb25u
ZWN0aW9uU29ja2V0IENoYW5uZWxDb25uZWN0aW9uID0gMg0KPj4gICB0eXBlIERldmljZU1v
ZGVsVmVyc2lvbiBpbnQNCj4+ICAgY29uc3QoDQo+PiAgIERldmljZU1vZGVsVmVyc2lvblVu
a25vd24gRGV2aWNlTW9kZWxWZXJzaW9uID0gMA0KPj4gLURldmljZU1vZGVsVmVyc2lvblFl
bXVYZW5UcmFkaXRpb25hbCBEZXZpY2VNb2RlbFZlcnNpb24gPSAxDQo+PiAgIERldmljZU1v
ZGVsVmVyc2lvblFlbXVYZW4gRGV2aWNlTW9kZWxWZXJzaW9uID0gMg0KPj4gICApDQo+PiAg
IA0KPj4gZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYmFjcGkvbWtfZHNkdC5jIGIvdG9vbHMvbGli
YWNwaS9ta19kc2R0LmMNCj4+IGluZGV4IDM0ZjY3NTNmNjEuLjM5NmUzZTAxZTIgMTAwNjQ0
DQo+PiAtLS0gYS90b29scy9saWJhY3BpL21rX2RzZHQuYw0KPj4gKysrIGIvdG9vbHMvbGli
YWNwaS9ta19kc2R0LmMNCj4+IEBAIC0xMDUsNyArODAsNyBAQCBpbnQgbWFpbihpbnQgYXJn
YywgY2hhciAqKmFyZ3YpDQo+PiAgIHsNCj4+ICAgICAgIHVuc2lnbmVkIGludCBjcHUsIG1h
eF9jcHVzOw0KPj4gICAjaWYgZGVmaW5lZChDT05GSUdfWDg2KQ0KPj4gLSAgICBkbV92ZXJz
aW9uIGRtX3ZlcnNpb24gPSBRRU1VX1hFTl9UUkFESVRJT05BTDsNCj4+ICsgICAgZG1fdmVy
c2lvbiBkbV92ZXJzaW9uID0gUUVNVV9YRU47DQo+IA0KPiBUaGlzIGNoYW5nZSBtZWFucyB0
aGF0IHdlIGFyZSBnb2luZyB0byBoYXZlICJkc2R0X2FueWNwdSIgKC5hc2wgYW5kIGJsb2Ip
DQo+IGJlZW4gdGhlIHNhbWUgYXMgImRzZHRfYW55Y3B1X3FlbXVfeGVuIi4gSW5zdGVhZCBv
ZiBjaGFuZ2luZyB0aGUNCj4gZGVmYXVsdCwgY291bGQgeW91IGVuc3VyZSB0aGF0IGAtLWRt
LXZlcnNpb25gIGlzIHByb3ZpZGVkIG9uIHRoZSBjb21tYW5kDQo+IGxpbmUgb3IgcmV0dXJu
IGFuIGVycm9yPyBObyBtb3JlIGRlZmF1bHQgYGRtX3ZlcnNpb25gLg0KDQpPa2F5Lg0KDQo+
IA0KPj4gICAgICAgdW5zaWduZWQgaW50IHNsb3QsIGRldiwgaW50eCwgbGluazsNCj4+ICAg
DQo+PiAgICAgICBtYXhfY3B1cyA9IEhWTV9NQVhfVkNQVVM7DQo+PiBkaWZmIC0tZ2l0IGEv
dG9vbHMvbGlicy9saWdodC9saWJ4bF9jcmVhdGUuYyBiL3Rvb2xzL2xpYnMvbGlnaHQvbGli
eGxfY3JlYXRlLmMNCj4+IGluZGV4IGUwMzU5OWVhOTkuLjljNTZjNGM5ZTUgMTAwNjQ0DQo+
PiAtLS0gYS90b29scy9saWJzL2xpZ2h0L2xpYnhsX2NyZWF0ZS5jDQo+PiArKysgYi90b29s
cy9saWJzL2xpZ2h0L2xpYnhsX2NyZWF0ZS5jDQo+PiBAQCAtMTAwLDEyICsxMDAsNyBAQCBp
bnQgbGlieGxfX2RvbWFpbl9idWlsZF9pbmZvX3NldGRlZmF1bHQobGlieGxfX2djICpnYywN
Cj4+ICAgDQo+PiAgICAgICBpZiAoIWJfaW5mby0+ZGV2aWNlX21vZGVsX3ZlcnNpb24pIHsN
Cj4gDQo+IEEgbG90IG1vcmUgY2FuIGJlIHJlbW92ZWQgaW4gdGhpcyBibG9ja3MuIEluIGFs
bCBjYXNlcywgd2Ugc2V0DQo+IGRldmljZV9tb2RlbF92ZXJzaW9uPXFlbXUteGVuLiBXaGlj
aCBtZWFuIGl0J3MgcWVtdS14ZW4gaW4gdGhlIGNvbmRpdGlvbg0KPiBqdXN0IGFmdGVyLg0K
DQpSaWdodC4gSSdsbCBzaW1wbGlmeSB0aGF0Lg0KDQo+IA0KPj4gICAgICAgICAgIGlmIChi
X2luZm8tPnR5cGUgPT0gTElCWExfRE9NQUlOX1RZUEVfSFZNKSB7DQo+PiAtICAgICAgICAg
ICAgaWYgKGxpYnhsX2RlZmJvb2xfdmFsKGJfaW5mby0+ZGV2aWNlX21vZGVsX3N0dWJkb21h
aW4pKSB7DQo+PiAtICAgICAgICAgICAgICAgIGJfaW5mby0+ZGV2aWNlX21vZGVsX3ZlcnNp
b24gPQ0KPj4gLSAgICAgICAgICAgICAgICAgICAgTElCWExfREVWSUNFX01PREVMX1ZFUlNJ
T05fUUVNVV9YRU5fVFJBRElUSU9OQUw7DQo+PiAtICAgICAgICAgICAgfSBlbHNlIHsNCj4+
IC0gICAgICAgICAgICAgICAgYl9pbmZvLT5kZXZpY2VfbW9kZWxfdmVyc2lvbiA9IExJQlhM
X0RFVklDRV9NT0RFTF9WRVJTSU9OX1FFTVVfWEVOOw0KPj4gLSAgICAgICAgICAgIH0NCj4+
ICsgICAgICAgICAgICBiX2luZm8tPmRldmljZV9tb2RlbF92ZXJzaW9uID0gTElCWExfREVW
SUNFX01PREVMX1ZFUlNJT05fUUVNVV9YRU47DQo+PiAgICAgICAgICAgfSBlbHNlIHsNCj4+
ICAgICAgICAgICAgICAgYl9pbmZvLT5kZXZpY2VfbW9kZWxfdmVyc2lvbiA9DQo+PiAgICAg
ICAgICAgICAgICAgICBMSUJYTF9ERVZJQ0VfTU9ERUxfVkVSU0lPTl9RRU1VX1hFTjsNCj4+
IEBAIC0xMTcsMTYgKzExMiw4IEBAIGludCBsaWJ4bF9fZG9tYWluX2J1aWxkX2luZm9fc2V0
ZGVmYXVsdChsaWJ4bF9fZ2MgKmdjLA0KPj4gICAgICAgICAgICAgICBkbSA9IGxpYnhsX19k
b21haW5fZGV2aWNlX21vZGVsKGdjLCBiX2luZm8pOw0KPj4gICAgICAgICAgICAgICByYyA9
IGFjY2VzcyhkbSwgWF9PSyk7DQo+PiAgICAgICAgICAgICAgIGlmIChyYyA8IDApIHsNCj4+
IC0gICAgICAgICAgICAgICAgLyogcWVtdS14ZW4gdW5hdmFpbGFibGUsIHVzZSBxZW11LXhl
bi10cmFkaXRpb25hbCAqLw0KPj4gLSAgICAgICAgICAgICAgICBpZiAoZXJybm8gPT0gRU5P
RU5UKSB7DQo+PiAtICAgICAgICAgICAgICAgICAgICBMT0dFKElORk8sICJxZW11LXhlbiBp
cyB1bmF2YWlsYWJsZSINCj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgIiwgdXNpbmcg
cWVtdS14ZW4tdHJhZGl0aW9uYWwgaW5zdGVhZCIpOw0KPj4gLSAgICAgICAgICAgICAgICAg
ICAgYl9pbmZvLT5kZXZpY2VfbW9kZWxfdmVyc2lvbiA9DQo+PiAtICAgICAgICAgICAgICAg
ICAgICAgICAgTElCWExfREVWSUNFX01PREVMX1ZFUlNJT05fUUVNVV9YRU5fVFJBRElUSU9O
QUw7DQo+PiAtICAgICAgICAgICAgICAgIH0gZWxzZSB7DQo+PiAtICAgICAgICAgICAgICAg
ICAgICBMT0dFKEVSUk9SLCAicWVtdS14ZW4gYWNjZXNzIGVycm9yIik7DQo+PiAtICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gRVJST1JfRkFJTDsNCj4+IC0gICAgICAgICAgICAgICAg
fQ0KPj4gKyAgICAgICAgICAgICAgICBMT0dFKEVSUk9SLCAicWVtdS14ZW4gYWNjZXNzIGVy
cm9yIik7DQo+PiArICAgICAgICAgICAgICAgIHJldHVybiBFUlJPUl9GQUlMOw0KPj4gICAg
ICAgICAgICAgICB9DQo+PiAgICAgICAgICAgfQ0KPj4gICAgICAgfQ0KPj4gZGlmZiAtLWdp
dCBhL3Rvb2xzL2xpYnMvbGlnaHQvbGlieGxfZG0uYyBiL3Rvb2xzL2xpYnMvbGlnaHQvbGli
eGxfZG0uYw0KPj4gaW5kZXggYjE5M2E1ZGMzNy4uNDE0NmVlMGVhMSAxMDA2NDQNCj4+IC0t
LSBhL3Rvb2xzL2xpYnMvbGlnaHQvbGlieGxfZG0uYw0KPj4gKysrIGIvdG9vbHMvbGlicy9s
aWdodC9saWJ4bF9kbS5jDQo+PiBAQCAtMjQyOSwxNiArMjE1NSwxMSBAQCB2b2lkIGxpYnhs
X19zcGF3bl9zdHViX2RtKGxpYnhsX19lZ2MgKmVnYywgbGlieGxfX3N0dWJfZG1fc3Bhd25f
c3RhdGUgKnNkc3MpDQo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICIlcyIsDQo+PiAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX2Jpb3NfdHlwZV90b19zdHJpbmcoZ3Vl
c3RfY29uZmlnLT5iX2luZm8udS5odm0uYmlvcykpOw0KPj4gICAgICAgfQ0KPj4gLSAgICAv
KiBEaXNhYmxlIHJlbG9jYXRpbmcgbWVtb3J5IHRvIG1ha2UgdGhlIE1NSU8gaG9sZSBsYXJn
ZXINCj4+IC0gICAgICogdW5sZXNzIHdlJ3JlIHJ1bm5pbmcgcWVtdS10cmFkaXRpb25hbCBh
bmQgdk5VTUEgaXMgbm90DQo+PiAtICAgICAqIGNvbmZpZ3VyZWQuICovDQo+PiArICAgIC8q
IERpc2FibGUgcmVsb2NhdGluZyBtZW1vcnkgdG8gbWFrZSB0aGUgTU1JTyBob2xlIGxhcmdl
ci4gKi8NCj4gDQo+IEkgZG9uJ3QgdGhpbmsgdGhpcyBzZW50ZW5jZSBhcyB0aGUgcmlnaHQg
bWVhbmluZyA6LSkuIEkgZmVlbCBsaWtlIHRoaXMNCj4gcmVhZCBhcyAiIHRoZSBmb2xsb3dp
bmcgbWFrZSB0aGUgTU1JTyBob2xlIGxhcmdlciIsIGJ1dCBJIHRoaW5rIGl0IGlzDQo+IGp1
c3QgYW4gZXhwbGFuYXRpb24gb2Ygd2hhdCAicmVsb2NhdGluZyBtZW1vcnkiIG1lYW4sIGFu
ZCB3aGF0IGlzDQo+IG1lc3NpbmcuDQo+IA0KPiBXZSBtaWdodCB3YW50IHRvIHJld3JpdGUg
dGhlIGNvbW1lbnQsICJkaXNhYmxlIHJlbG9jYXRpbmcgbWVtb3J5LCBzZWUNCj4gY29tbWVu
dCBpbiBodm1sb2FkZXIgYWJvdXQgdGhlIG1lYW5pbmciLiBPciAiZGlzYWJsZSByZWxvY2F0
aW5nIG1lbW9yeSwNCj4gaGF2aW5nIGEgbGFnZXIgTU1JTyBob2xlIGlzbid0IGltcGxlbWVu
dGVkIHdpdGggcWVtdS14ZW4iLiBPciBzb21ldGhpbmcNCj4gbGlrZSB0aGF0Lg0KDQpJIGxp
a2UgdGhlIHNlY29uZCB2YXJpYW50IGJldHRlci4NCg0KPiANCj4gVGhlcmUncyB0aGUgc2Ft
ZSBjb21tZW50IGluIHRoZSBub24tc3R1YmRvbSBjb2RlIHBhdGgNCj4gKGRldmljZV9tb2Rl
bF9sYXVuY2gpIGp1c3QgYmVsb3cuLg0KPiANCj4+ICAgICAgIGxpYnhsX194c19wcmludGYo
Z2MsIFhCVF9OVUxMLA0KPj4gICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9fc3ByaW50
ZihnYywgIiVzL2h2bWxvYWRlci9hbGxvdy1tZW1vcnktcmVsb2NhdGUiLA0KPj4gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9feHNfZ2V0X2RvbXBhdGgo
Z2MsIGd1ZXN0X2RvbWlkKSksDQo+PiAtICAgICAgICAgICAgICAgICAgICAgIiVkIiwNCj4+
IC0gICAgICAgICAgICAgICAgICAgICBndWVzdF9jb25maWctPmJfaW5mby5kZXZpY2VfbW9k
ZWxfdmVyc2lvbg0KPj4gLSAgICAgICAgICAgICAgICAgICAgICAgID09IExJQlhMX0RFVklD
RV9NT0RFTF9WRVJTSU9OX1FFTVVfWEVOX1RSQURJVElPTkFMICYmDQo+PiAtICAgICAgICAg
ICAgICAgICAgICAgIWxpYnhsX192bnVtYV9jb25maWd1cmVkKCZndWVzdF9jb25maWctPmJf
aW5mbykpOw0KPj4gKyAgICAgICAgICAgICAgICAgICAgICIwIik7DQo+PiAgICAgICByZXQg
PSB4Y19kb21haW5fc2V0X3RhcmdldChjdHgtPnhjaCwgZG1fZG9taWQsIGd1ZXN0X2RvbWlk
KTsNCj4+ICAgICAgIGlmIChyZXQ8MCkgew0KPj4gICAgICAgICAgIExPR0VEKEVSUk9SLCBn
dWVzdF9kb21pZCwgInNldHRpbmcgdGFyZ2V0IGRvbWFpbiAlZCAtPiAlZCIsDQo+PiBAQCAt
MzE2MiwyNiArMjg3OSwxNiBAQCBzdGF0aWMgdm9pZCBkZXZpY2VfbW9kZWxfbGF1bmNoKGxp
YnhsX19lZ2MgKmVnYywNCj4+ICAgICAgICAgICBsaWJ4bF9feHNfcHJpbnRmKGdjLCBYQlRf
TlVMTCwNCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdDU1BSSU5URigiJXMvaHZt
bG9hZGVyL2Jpb3MiLCBwYXRoKSwNCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICIl
cyIsIGxpYnhsX2Jpb3NfdHlwZV90b19zdHJpbmcoYl9pbmZvLT51Lmh2bS5iaW9zKSk7DQo+
PiAtICAgICAgICAvKiBEaXNhYmxlIHJlbG9jYXRpbmcgbWVtb3J5IHRvIG1ha2UgdGhlIE1N
SU8gaG9sZSBsYXJnZXINCj4+IC0gICAgICAgICAqIHVubGVzcyB3ZSdyZSBydW5uaW5nIHFl
bXUtdHJhZGl0aW9uYWwgYW5kIHZOVU1BIGlzIG5vdA0KPj4gLSAgICAgICAgICogY29uZmln
dXJlZC4gKi8NCj4+ICsgICAgICAgIC8qIERpc2FibGUgcmVsb2NhdGluZyBtZW1vcnkgdG8g
bWFrZSB0aGUgTU1JTyBob2xlIGxhcmdlci4gKi8NCj4+ICAgICAgICAgICBsaWJ4bF9feHNf
cHJpbnRmKGdjLCBYQlRfTlVMTCwNCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdD
U1BSSU5URigiJXMvaHZtbG9hZGVyL2FsbG93LW1lbW9yeS1yZWxvY2F0ZSIsIHBhdGgpLA0K
Pj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAiJWQiLA0KPj4gLSAgICAgICAgICAgICAg
ICAgICAgICAgICBiX2luZm8tPmRldmljZV9tb2RlbF92ZXJzaW9uPT1MSUJYTF9ERVZJQ0Vf
TU9ERUxfVkVSU0lPTl9RRU1VX1hFTl9UUkFESVRJT05BTCAmJg0KPj4gLSAgICAgICAgICAg
ICAgICAgICAgICAgICAhbGlieGxfX3ZudW1hX2NvbmZpZ3VyZWQoYl9pbmZvKSk7DQo+PiAr
ICAgICAgICAgICAgICAgICAgICAgICAgICIwIik7DQo+PiAgICAgICAgICAgZnJlZShwYXRo
KTsNCj4+ICAgICAgIH0NCj4+ICAgDQo+PiBkaWZmIC0tZ2l0IGEvdG9vbHMvbGlicy9saWdo
dC9saWJ4bF9kb21fc3VzcGVuZC5jIGIvdG9vbHMvbGlicy9saWdodC9saWJ4bF9kb21fc3Vz
cGVuZC5jDQo+PiBpbmRleCA2MDkxYTVmM2Y2Li5mMGE3NGZjODJjIDEwMDY0NA0KPj4gLS0t
IGEvdG9vbHMvbGlicy9saWdodC9saWJ4bF9kb21fc3VzcGVuZC5jDQo+PiArKysgYi90b29s
cy9saWJzL2xpZ2h0L2xpYnhsX2RvbV9zdXNwZW5kLmMNCj4+IEBAIC04NSwxNSArODUsOCBA
QCB2b2lkIGxpYnhsX19kb21haW5fc3VzcGVuZF9kZXZpY2VfbW9kZWwobGlieGxfX2VnYyAq
ZWdjLA0KPj4gICAgICAgU1RBVEVfQU9fR0MoZHNwcy0+YW8pOw0KPj4gICAgICAgaW50IHJj
ID0gMDsNCj4+ICAgICAgIHVpbnQzMl90IGNvbnN0IGRvbWlkID0gZHNwcy0+ZG9taWQ7DQo+
PiAtICAgIGNvbnN0IGNoYXIgKmNvbnN0IGZpbGVuYW1lID0gZHNwcy0+ZG1fc2F2ZWZpbGU7
DQo+PiAgIA0KPj4gICAgICAgc3dpdGNoIChsaWJ4bF9fZGV2aWNlX21vZGVsX3ZlcnNpb25f
cnVubmluZyhnYywgZG9taWQpKSB7DQo+PiAtICAgIGNhc2UgTElCWExfREVWSUNFX01PREVM
X1ZFUlNJT05fUUVNVV9YRU5fVFJBRElUSU9OQUw6IHsNCj4+IC0gICAgICAgIExPR0QoREVC
VUcsIGRvbWlkLCAiU2F2aW5nIGRldmljZSBtb2RlbCBzdGF0ZSB0byAlcyIsIGZpbGVuYW1l
KTsNCj4+IC0gICAgICAgIGxpYnhsX19xZW11X3RyYWRpdGlvbmFsX2NtZChnYywgZG9taWQs
ICJzYXZlIik7DQo+PiAtICAgICAgICBsaWJ4bF9fd2FpdF9mb3JfZGV2aWNlX21vZGVsX2Rl
cHJlY2F0ZWQoZ2MsIGRvbWlkLCAicGF1c2VkIiwgTlVMTCwgTlVMTCwgTlVMTCk7DQo+IA0K
PiBUaGF0IGZ1bmN0aW9uIGlzbid0IHVzZWQgYW55bW9yZSwgYW5kIGNhbiBiZSByZW1vdmVk
IGZyb20gbGlieGwuIFNhbWUNCj4gZm9yIGxpYnhsX194ZW5zdG9yZV9jaGlsZF93YWl0X2Rl
cHJlY2F0ZWQoKSB3aGljaCBpcyB1c2VkIGJ5IGl0Lg0KDQpJJ2xsIHJlbW92ZSB0aG9zZS4N
Cg0KPiANCj4+IC0gICAgICAgIGJyZWFrOw0KPj4gLSAgICB9DQo+PiAgICAgICBjYXNlIExJ
QlhMX0RFVklDRV9NT0RFTF9WRVJTSU9OX1FFTVVfWEVOOg0KPj4gICAgICAgICAgIC8qIGNh
bGxzIGRzcHMtPmNhbGxiYWNrX2RldmljZV9tb2RlbF9kb25lIHdoZW4gZG9uZSAqLw0KPj4g
ICAgICAgICAgIGxpYnhsX19xbXBfc3VzcGVuZF9zYXZlKGVnYywgZHNwcyk7IC8qIG11c3Qg
YmUgbGFzdCAqLw0KPj4gZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnMvbGlnaHQvbGlieGxfc3Ry
ZWFtX3dyaXRlLmMgYi90b29scy9saWJzL2xpZ2h0L2xpYnhsX3N0cmVhbV93cml0ZS5jDQo+
PiBpbmRleCA2MzRmMzI0MGQxLi45OGQ0NDU5N2E3IDEwMDY0NA0KPj4gLS0tIGEvdG9vbHMv
bGlicy9saWdodC9saWJ4bF9zdHJlYW1fd3JpdGUuYw0KPj4gKysrIGIvdG9vbHMvbGlicy9s
aWdodC9saWJ4bF9zdHJlYW1fd3JpdGUuYw0KPj4gQEAgLTI1MiwxMCArMjUyLDYgQEAgdm9p
ZCBsaWJ4bF9fc3RyZWFtX3dyaXRlX3N0YXJ0KGxpYnhsX19lZ2MgKmVnYywNCj4+ICAgICAg
ICAgICBzdHJlYW0tPmRldmljZV9tb2RlbF92ZXJzaW9uID0NCj4+ICAgICAgICAgICAgICAg
bGlieGxfX2RldmljZV9tb2RlbF92ZXJzaW9uX3J1bm5pbmcoZ2MsIGRzcy0+ZG9taWQpOw0K
Pj4gICAgICAgICAgIHN3aXRjaCAoc3RyZWFtLT5kZXZpY2VfbW9kZWxfdmVyc2lvbikgew0K
Pj4gLSAgICAgICAgY2FzZSBMSUJYTF9ERVZJQ0VfTU9ERUxfVkVSU0lPTl9RRU1VX1hFTl9U
UkFESVRJT05BTDoNCj4+IC0gICAgICAgICAgICBzdHJlYW0tPmVtdV9zdWJfaGRyLmlkID0g
RU1VTEFUT1JfUUVNVV9UUkFESVRJT05BTDsNCj4gDQo+IEVNVUxBVE9SX1FFTVVfVFJBRElU
SU9OQUwgaXMgc3RpbGwgZGVmaW5lZCBpbiBsaWJ4bF9zcl9zdHJlYW1fZm9ybWF0LmgsDQo+
IHdlIHByb2JhYmx5IHdoYXQgdG8gY29tbWVudCBpdCBvdXQuDQoNCldvdWxkbid0IGl0IGJl
IGJldHRlciB0byBhZGQgYSBjb21tZW50IGxpa2UgIm5vIGxvbmdlciBzdXBwb3J0ZWQgZnJv
bSBYZW4gNC4yMQ0Kb253YXJkcyI/DQoNCj4gDQo+PiAtICAgICAgICAgICAgYnJlYWs7DQo+
PiAtDQo+PiAgICAgICAgICAgY2FzZSBMSUJYTF9ERVZJQ0VfTU9ERUxfVkVSU0lPTl9RRU1V
X1hFTjoNCj4+ICAgICAgICAgICAgICAgc3RyZWFtLT5lbXVfc3ViX2hkci5pZCA9IEVNVUxB
VE9SX1FFTVVfVVBTVFJFQU07DQo+PiAgICAgICAgICAgICAgIGJyZWFrOw0KPj4gZGlmZiAt
LWdpdCBhL3Rvb2xzL2xpYnMvbGlnaHQvbGlieGxfdHlwZXMuaWRsIGIvdG9vbHMvbGlicy9s
aWdodC9saWJ4bF90eXBlcy5pZGwNCj4+IGluZGV4IDliYjI5Njk5MzEuLjI0NmJiM2RkZDIg
MTAwNjQ0DQo+PiAtLS0gYS90b29scy9saWJzL2xpZ2h0L2xpYnhsX3R5cGVzLmlkbA0KPj4g
KysrIGIvdG9vbHMvbGlicy9saWdodC9saWJ4bF90eXBlcy5pZGwNCj4+IEBAIC0xMDQsNyAr
MTA0LDYgQEAgbGlieGxfY2hhbm5lbF9jb25uZWN0aW9uID0gRW51bWVyYXRpb24oImNoYW5u
ZWxfY29ubmVjdGlvbiIsIFsNCj4+ICAgDQo+PiAgIGxpYnhsX2RldmljZV9tb2RlbF92ZXJz
aW9uID0gRW51bWVyYXRpb24oImRldmljZV9tb2RlbF92ZXJzaW9uIiwgWw0KPj4gICAgICAg
KDAsICJVTktOT1dOIiksDQo+PiAtICAgICgxLCAiUUVNVV9YRU5fVFJBRElUSU9OQUwiKSwg
IyBIaXN0b3JpY2FsIHFlbXUteGVuIGRldmljZSBtb2RlbCAocWVtdS1kbSkNCj4gDQo+IEkg
dGhpbmsgd2UgbmVlZCB0byBrZWVwIHRoYXQsIHNvIGFwcGxpY2F0aW9uIHVzaW5nIGxpYnhs
IGFuZCB1c2luZyB0aGlzDQo+IHZhbHVlIGRvbid0IG5lZWQgdG8gYmUgY2hhbmdlZC4gQXQg
bGVhc3QsIHRoYXQncyBhIHByb21pc2UgbWFkZSBpbg0KPiBsaWJ4bC5oIGFib3V0IHRoZSBB
UEkuDQoNCkluIHRoYXQgSSBjYXMgSSdsbCBhZGQgIihubyBsb25nZXIgc3VwcG9ydGVkKSIu
DQoNCj4gDQo+PiAgICAgICAoMiwgIlFFTVVfWEVOIiksICAgICAgICAgICAgICMgVXBzdHJl
YW0gYmFzZWQgcWVtdS14ZW4gZGV2aWNlIG1vZGVsDQo+PiAgICAgICBdKQ0KPj4gICANCj4+
IGRpZmYgLS1naXQgYS90b29scy9weXRob24veGVuL21pZ3JhdGlvbi9saWJ4bC5weSBiL3Rv
b2xzL3B5dGhvbi94ZW4vbWlncmF0aW9uL2xpYnhsLnB5DQo+PiBpbmRleCA1ZGNiNTBmZTAy
Li5kYzVjN2FjMzU1IDEwMDY0NA0KPj4gLS0tIGEvdG9vbHMvcHl0aG9uL3hlbi9taWdyYXRp
b24vbGlieGwucHkNCj4+ICsrKyBiL3Rvb2xzL3B5dGhvbi94ZW4vbWlncmF0aW9uL2xpYnhs
LnB5DQo+PiBAQCAtNTEsMTIgKzUxLDEwIEBAIHJlY190eXBlX3RvX3N0ciA9IHsNCj4+ICAg
RU1VTEFUT1JfSEVBREVSX0ZPUk1BVCA9ICJJSSINCj4+ICAgDQo+PiAgIEVNVUxBVE9SX0lE
X3Vua25vd24gICAgICAgPSAweDAwMDAwMDAwDQo+PiAtRU1VTEFUT1JfSURfcWVtdV90cmFk
ICAgICA9IDB4MDAwMDAwMDENCj4gDQo+IFNob3VsZCB3ZSBrZWVwIHRoaXMgdmFsdWUgYXMg
YSBjb21tZW50PyBPciBtYXliZSB0aGUgaW5mb3JtYXRpb24gaW4NCj4gImRvY3Mvc3BlY3Mv
bGlieGwtbWlncmF0aW9uLXN0cmVhbS5wYW5kb2MiIGlzIGVub3VnaC4NCg0KSSBkb24ndCB0
aGluayBrZWVwaW5nIGl0IHdpbGwgaGF2ZSBhbnkgcmVhbCBhZHZhbnRhZ2UuDQoNCj4gDQo+
PiAgIEVNVUxBVE9SX0lEX3FlbXVfdXBzdHJlYW0gPSAweDAwMDAwMDAyDQo+PiAgIA0KPj4g
ICBlbXVsYXRvcl9pZF90b19zdHIgPSB7DQo+PiAgICAgICBFTVVMQVRPUl9JRF91bmtub3du
ICAgICAgIDogIlVua25vd24iLA0KPj4gLSAgICBFTVVMQVRPUl9JRF9xZW11X3RyYWQgICAg
IDogIlFlbXUgVHJhZGl0aW9uYWwiLA0KPj4gICAgICAgRU1VTEFUT1JfSURfcWVtdV91cHN0
cmVhbSA6ICJRZW11IFVwc3RyZWFtIiwNCj4+ICAgfQ0KDQoNCkp1ZXJnZW4NCg==
--------------dfWRolGXnNe81uOWLkY0iOI3
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-----

--------------dfWRolGXnNe81uOWLkY0iOI3--

--------------ZI3bj1zPUjGanSkZwWnBbhJ6--

--------------0oGuNtKhi7i18Hsenmve0CiL
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/Ey8FAmgPfPEFAwAAAAAACgkQsN6d1ii/Ey91
uwf9G7x0z9DdT0qAyfm8MXRuPo50Vdb7Qs/5w5A5lwdfgsoQbjUZArd9Vp6sGQ7Jlc12x/1HtlQc
/wqVcRGxnbAEBtK7Po/9eIFHsIdSIvvUTj7qPF+CL4cctxazYAMHWR01fI5Fbvs+ok+4BQP5hFeZ
WgH8SNHRz6Np3+waNhA5UpLfvPuBiQhtvfFy9rTOBpZkpxx1uqtGni7lfBzBPNcitDBcJogDiEi1
gFZwwPIe3sWQwe5d10TlTuoGbcXmeF2TbIHcXa2C+Fll5z60jiZv0vInhbC24kumvICtnfZwmJ0m
IZ7SaiePdSDkFvL/Xf3CxrP7Rg2Mxzk8BPIsZ/Txyw==
=UulM
-----END PGP SIGNATURE-----

--------------0oGuNtKhi7i18Hsenmve0CiL--


From xen-devel-bounces@lists.xenproject.org Mon Apr 28 13:07:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 13:07:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.970725.1359333 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9OCJ-0000bj-9a; Mon, 28 Apr 2025 13:06:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 970725.1359333; Mon, 28 Apr 2025 13:06:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9OCJ-0000bc-6i; Mon, 28 Apr 2025 13:06:59 +0000
Received: by outflank-mailman (input) for mailman id 970725;
 Mon, 28 Apr 2025 13:06: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=WylS=XO=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1u9OCI-0000bW-0C
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 13:06:58 +0000
Received: from mail-ed1-x544.google.com (mail-ed1-x544.google.com
 [2a00:1450:4864:20::544])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a9aff0df-2431-11f0-9eb4-5ba50f476ded;
 Mon, 28 Apr 2025 15:06:56 +0200 (CEST)
Received: by mail-ed1-x544.google.com with SMTP id
 4fb4d7f45d1cf-5f5bef591d6so9101892a12.1
 for <xen-devel@lists.xenproject.org>; Mon, 28 Apr 2025 06:06:56 -0700 (PDT)
Received: from ?IPV6:2003:e5:870f:e000:6c64:75fd:2c51:3fef?
 (p200300e5870fe0006c6475fd2c513fef.dip0.t-ipconnect.de.
 [2003:e5:870f:e000:6c64:75fd:2c51:3fef])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-ace6ecfa33csm615649366b.119.2025.04.28.06.06.55
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 28 Apr 2025 06:06: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: a9aff0df-2431-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745845616; x=1746450416; 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=i1otkBvX6s6P7ghiGqSQrQtJoTk6xxrhReO+s5Wi9SI=;
        b=T3On4Nuk7Tis2yRbP2nzwq18asdbcYJcIGrQaZT7wrBP8qAomZB0HlLLnyReLRoNUV
         oLmsovw6sOXdOWWpp1sTgCS5gs+bGXmzVJtWbyaqAKtyIsi6Jaf4a7L4o+/ET5tpC5Et
         PYC8WkMc2wVVhAKz+/czNbmzxpQXFMZujl961LexCqp41tbAxsdNsdcaFdW4BA0fGxtG
         FPVibqJTDUvLTm08QAB+G7chi0Ms8NNzXRmMz9zPYQ6hmZYS7bBR/YnEH+PHdr5DjAx6
         3hgmUFspfiQ6nZgONlcgPKXUhmWxx8W3rcqZCASqg0PrNf1fiNWX0Sao8u1/fVgdkD3Z
         JKpA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745845616; x=1746450416;
        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=i1otkBvX6s6P7ghiGqSQrQtJoTk6xxrhReO+s5Wi9SI=;
        b=Hy3u+EoAgevcz1tMEdw7b5K25TB/++IEoTPzX4ZQVXbThiVa5p/8ROXoyx4G1Dgdr8
         hdkj6dRKconrd5dVqyqX1FD0jfNokA/Sk5HgROHjtE6l4S/Q8qXmQGpOHsAcZYlc6p/e
         GgUHCOvuiteqgcG71i9/UPhvmgbTOMQunCHVKDJWW4+b54C7eKw3iZ7naRTwfGw7eSQd
         IEd8zb7RfpwUlyBnQda13qaOaplNrcZA7ZjQptEPT/TZri1A9CzEcR4af1R/z6K12AJ8
         3uQ15Q3QAbiGqOFN+1B3n+wFo/vrXpkblWY1hfWbo7jG2bEGgP8FgCPtVISo29a6cpYr
         joEw==
X-Gm-Message-State: AOJu0YwvriWBsKrKEqhZt0SWMM7gfQiAbBNpXTHNgQD7fWO5uvM6wFON
	GTY12MW9obX9nTTElkZ3aj2TUgl5rQY6C0HaRkIVp9UzsFlWwV7qHSqqT484mCo=
X-Gm-Gg: ASbGnct8PfVPDg5eIDRzOn2WABNNJE6fMWkvv3TOLlVs32gHL0Hc1pZsO9sPrVdS/L6
	T41AZxulTupR5+eY13QqAvJg1FqrlhkvzoTL580jcrNUsdPt1ff1Sf/L3HVrOwNLSxmaHvINNrY
	iW4gWY+j41UBiF36NleYSlgrWZe/zbsriXSY2bBOVWL20abte9hP2bj+R85J2osyVTy3QZ9I8ul
	E+3PPk6DKE7P8/lYfymwF5q0xMbi0VB1GqKu9Qn4sCEIKCIlN9k9+T/vP97kSCAr6UuPbgXMqPR
	hVde0E2e+Yn1JzKCNl/hcl82lk+OsdAZrhQJAuBsjAzmtM7xh8gCF62YpGJ37znBqjuiXkmZ5fH
	r9Ceg4ww4VRlVzav1lQbRIq9tnxOGxb9ix69kPm7FNnlAQtYOnIiSgaQeANntsEvuyQ==
X-Google-Smtp-Source: AGHT+IFTT5dgJbZEqBH7xmLW4Z9cJRq/4hGEfTJKSFGyQpKj3p0ftX0CXbNv25PheYnIN+CRAx0cTA==
X-Received: by 2002:a17:907:6e90:b0:ac3:bd68:24f0 with SMTP id a640c23a62f3a-ace739dd0a4mr1027802166b.7.1745845616154;
        Mon, 28 Apr 2025 06:06:56 -0700 (PDT)
Message-ID: <18555bd2-393f-4b1d-8e0e-e2b6df17b602@suse.com>
Date: Mon, 28 Apr 2025 15:06:54 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 4/6] tools: remove qemu-traditional
To: Anthony PERARD <anthony@xenproject.org>
Cc: xen-devel@lists.xenproject.org, Andrew Cooper
 <andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Community Manager <community.manager@xenproject.org>,
 Samuel Thibault <samuel.thibault@ens-lyon.org>
References: <20250408123526.14613-1-jgross@suse.com>
 <20250408123526.14613-5-jgross@suse.com> <aApOBsLtGWQ0qjK0@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: <aApOBsLtGWQ0qjK0@l14>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------xc3tEgFHMVMpv40rU1GWS6MI"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------xc3tEgFHMVMpv40rU1GWS6MI
Content-Type: multipart/mixed; boundary="------------rrawwUM1obu8TTrdxQ027Rmm";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Anthony PERARD <anthony@xenproject.org>
Cc: xen-devel@lists.xenproject.org, Andrew Cooper
 <andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Community Manager <community.manager@xenproject.org>,
 Samuel Thibault <samuel.thibault@ens-lyon.org>
Message-ID: <18555bd2-393f-4b1d-8e0e-e2b6df17b602@suse.com>
Subject: Re: [PATCH v2 4/6] tools: remove qemu-traditional
References: <20250408123526.14613-1-jgross@suse.com>
 <20250408123526.14613-5-jgross@suse.com> <aApOBsLtGWQ0qjK0@l14>
In-Reply-To: <aApOBsLtGWQ0qjK0@l14>
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=

--------------rrawwUM1obu8TTrdxQ027Rmm
Content-Type: multipart/mixed; boundary="------------ggii0TiHZEEjr6K4rbsm21RX"

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

T24gMjQuMDQuMjUgMTY6NDMsIEFudGhvbnkgUEVSQVJEIHdyb3RlOg0KPiBPbiBUdWUsIEFw
ciAwOCwgMjAyNSBhdCAwMjozNToyMlBNICswMjAwLCBKdWVyZ2VuIEdyb3NzIHdyb3RlOg0K
Pj4gZGlmZiAtLWdpdCBhL0lOU1RBTEwgYi9JTlNUQUxMDQo+PiBpbmRleCA4OGMxNDY0ODE2
Li43ODZlM2RhOTk2IDEwMDY0NA0KPj4gLS0tIGEvSU5TVEFMTA0KPj4gKysrIGIvSU5TVEFM
TA0KPiANCj4gVGhlcmUncyBvbmUgIi0tZW5hYmxlLWlvZW11LXN0dWJkb20iIGxlZnQgaW4g
dGhpcyBmaWxlLg0KDQpPaCwgdGhhbmtzIGZvciBub3RpY2luZy4NCg0KPiANCj4+IGRpZmYg
LS1naXQgYS9zdHViZG9tL01ha2VmaWxlIGIvc3R1YmRvbS9NYWtlZmlsZQ0KPj4gaW5kZXgg
NzI0Y2U0MDM2NS4uODJmYzFlOTBmOCAxMDA2NDQNCj4+IC0tLSBhL3N0dWJkb20vTWFrZWZp
bGUNCj4+ICsrKyBiL3N0dWJkb20vTWFrZWZpbGUNCj4+IEBAIC01NDQsMTMgKzQ3OCw2IEBA
IGVsc2UNCj4+ICAgaW5zdGFsbDogJChTVFVCRE9NUEFUSCkNCj4+ICAgZW5kaWYNCj4+ICAg
DQo+PiAtaW5zdGFsbC1pb2VtdTogaW9lbXUtc3R1YmRvbQ0KPj4gLQkkKElOU1RBTExfRElS
KSAiJChERVNURElSKSQoTElCRVhFQ19CSU4pIg0KPj4gLQkkKElOU1RBTExfUFJPRykgc3R1
YmRvbS1kbSAiJChERVNURElSKSQoTElCRVhFQ19CSU4pIg0KPj4gLQkkKElOU1RBTExfREFU
QSkgc3R1YmRvbXBhdGguc2ggIiQoREVTVERJUikkKExJQkVYRUNfQklOKSINCj4gDQo+IElm
IHdlIGRvbid0IGluc3RhbGwgInN0dWJkb21wYXRoLnNoIiwgd2UgZG9uJ3QgbmVlZCB0byBt
YWtlIGl0DQo+IGFueW1vcmUsIHRoYXQgaXMgJChTVFVCRE9NUEFUSCkgcnVsZSBhbmQgYXMg
cHJlcmVxdWlzaXRlIGlzbid0IG5lZWRlZA0KPiBhbnltb3JlLg0KPiANCj4gSSB0aGluayAi
c3R1YmRvbXBhdGguc2giIGlzIG9ubHkgdXNlZCBieSAic3R1YmRvbS1kbSIsIHNvIHdlIGNh
biByZW1vdmUNCj4gYWxsIG1lbnRpb24gb2YgInN0dWJkb21wYXRoLnNoIiBvciAiJChTVFVC
RE9NUEFUSCkiLCBoZXJlIG9yIGluIHRoZSBuZXh0DQo+IHBhdGNoLg0KPiANCj4gQW5kIHdp
dGggJChTVFVCRE9NUEFUSCkgcGF0aCBnb25lLCB0aGlzIHdpbGwgYmUgdGhlIHVzZXIgb2Yg
dGhlIG1ha2UNCj4gbWFjcm8gJChidWlsZG1ha2V2YXJzMmZpbGUpIGFuZCAkKEJVSUxEX01B
S0VfVkFSUyksIHNvIEkgdGhpbmsgdGhlIGNvdWxkDQo+IGJlIGJvdGggcmVtb3ZlZCBhcyB3
ZWxsLg0KDQpXaWxsIGRvIHNvLg0KDQo+IA0KPj4gLQkkKElOU1RBTExfRElSKSAiJChERVNU
RElSKSQoWEVORklSTVdBUkVESVIpIg0KPj4gLQkkKElOU1RBTExfREFUQSkgbWluaS1vcy0k
KFhFTl9UQVJHRVRfQVJDSCktaW9lbXUvbWluaS1vcy5neiAiJChERVNURElSKSQoWEVORklS
TVdBUkVESVIpL2lvZW11LXN0dWJkb20uZ3oiDQo+PiAtDQo+PiAgIGluc3RhbGwtZ3J1Yjog
cHYtZ3J1Yg0KPj4gICAJJChJTlNUQUxMX0RJUikgIiQoREVTVERJUikkKFhFTkZJUk1XQVJF
RElSKSINCj4+ICAgCSQoSU5TVEFMTF9EQVRBKSBtaW5pLW9zLSQoWEVOX1RBUkdFVF9BUkNI
KS1ncnViL21pbmktb3MuZ3ogIiQoREVTVERJUikkKFhFTkZJUk1XQVJFRElSKS9wdi1ncnVi
LSQoWEVOX1RBUkdFVF9BUkNIKS5neiINCj4+IGRpZmYgLS1naXQgYS90b29scy9NYWtlZmls
ZSBiL3Rvb2xzL01ha2VmaWxlDQo+PiBpbmRleCBlOWUxY2RhMzA1Li42ZWNmN2MwZGE4IDEw
MDY0NA0KPj4gLS0tIGEvdG9vbHMvTWFrZWZpbGUNCj4+ICsrKyBiL3Rvb2xzL01ha2VmaWxl
DQo+PiBAQCAtMTM2LDU0ICsxMjksNiBAQCBlbmRpZg0KPj4gLQ0KPj4gLXFlbXUtdHJhZGl0
aW9uYWwtcmVjdXJzZSA9IFwNCj4+IC0Jc2V0IC1lOyBcDQo+PiAtCQkkKGJ1aWxkbWFrZXZh
cnMyc2hlbGx2YXJzKTsgXA0KPiANCj4gVGhlc2UgYXJlIHRoZSBsYXN0IG1lbnRpb24gb2Yg
dGhlIG1ha2UgbWFjcm8gJChidWlsZG1ha2V2YXJzMnNoZWxsdmFycyksDQo+IHNvIHdlIGNh
biByZW1vdmUgaXQgZnJvbSBDb25maWcubWsuDQoNCkFncmVlZC4NCg0KDQpKdWVyZ2VuDQo=

--------------ggii0TiHZEEjr6K4rbsm21RX
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-----

--------------ggii0TiHZEEjr6K4rbsm21RX--

--------------rrawwUM1obu8TTrdxQ027Rmm--

--------------xc3tEgFHMVMpv40rU1GWS6MI
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/Ey8FAmgPfW8FAwAAAAAACgkQsN6d1ii/Ey9i
0gf+PhkJ75iiQvPMxMFZhCKwIEzcGY482WJI5gj9PMZBR9qaKQSAIo5S6eAQQ8jS9ebsHY6VcFwu
YTvZqh4Q97ER/YPg68dwnWeZRAifnCEN4ZI4hQ6VVlthieT6sFMpyvK1mCc/aN+dk7xEnLZnGjLZ
+/aqL95oGltxEsI7p76YTVGS9wS8aIk3mDEetjW8AZeJpMXaWEXAtLID/Ux/+WneagCwYzbLDqll
r6MRxLDdxlCVusKh5onoPUNckgr4NzAiJ7nLBmFQjj9rfrTGN1ePxIJG8+mEuvOlHbs9AhTSNcDm
2WlOrI7iicfK/6T4fVjyO165BAGFfs4qVKv98RGbdg==
=3QtO
-----END PGP SIGNATURE-----

--------------xc3tEgFHMVMpv40rU1GWS6MI--


From xen-devel-bounces@lists.xenproject.org Mon Apr 28 13:41:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 13:41:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.970741.1359344 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9Ok5-0006dX-SK; Mon, 28 Apr 2025 13:41:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 970741.1359344; Mon, 28 Apr 2025 13:41: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 1u9Ok5-0006dQ-Pj; Mon, 28 Apr 2025 13:41:53 +0000
Received: by outflank-mailman (input) for mailman id 970741;
 Mon, 28 Apr 2025 13:41: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=0nMS=XO=zytor.com=hpa@srs-se1.protection.inumbo.net>)
 id 1u9Ok3-0006dI-JV
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 13:41:51 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 880d9c5a-2436-11f0-9eb4-5ba50f476ded;
 Mon, 28 Apr 2025 15:41:49 +0200 (CEST)
Received: from [127.0.0.1] ([76.133.66.138]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53SDfBUB3511020
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NO);
 Mon, 28 Apr 2025 06:41:12 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 880d9c5a-2436-11f0-9eb4-5ba50f476ded
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53SDfBUB3511020
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745847673;
	bh=3fiGytVgsyIVAVWo//vH0oNLU1kTYSiRQ5TfaW8qnQE=;
	h=Date:From:To:CC:Subject:In-Reply-To:References:From;
	b=d5coOTOb40CjM5j3IjHJXijGHQ0hfWuJeFrZwI3hcyWuQbSQVQp6mGhhACmu/uRXU
	 lKV3NMeTU/CvOXmxYu+o1kPJ9lt+/eXDXE0O5pntTxNltYkJGcgYRuPeTicyR8y+hE
	 wwbc35YWb4az+82gOXbk+SyxUgH/gJfOJ4flelYDLMyTJ11X+e6T6zI8xyMldqJM0V
	 AV3rS5lFI23vazOqZKGjj9M9lkYUYAhFx/II5GFWBnA+g0RxDgaowN95jjrnva39go
	 mPWCSIlCKCOb3MkX1vYlQD0mzhkQ8aMeJKvG1Owl2cbvpHXfWRttAx0rKwRb/rP/ZN
	 zd8yxPBa8VWmQ==
Date: Mon, 28 Apr 2025 06:41:09 -0700
From: "H. Peter Anvin" <hpa@zytor.com>
To: Ingo Molnar <mingo@kernel.org>,
        Linus Torvalds <torvalds@linux-foundation.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Arnd Bergmann <arnd@arndb.de>,
        Arnd Bergmann <arnd@kernel.org>, Thomas Gleixner <tglx@linutronix.de>,
        Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
        Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org,
        Juergen Gross <jgross@suse.com>,
        Boris Ostrovsky <boris.ostrovsky@oracle.com>,
        Alexander Usyskin <alexander.usyskin@intel.com>,
        Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
        =?UTF-8?Q?Mateusz_Jo=C5=84czyk?= <mat.jonczyk@o2.pl>,
        Mike Rapoport <rppt@kernel.org>, Ard Biesheuvel <ardb@kernel.org>,
        Peter Zijlstra <peterz@infradead.org>, linux-kernel@vger.kernel.org,
        xen-devel@lists.xenproject.org
Subject: =?US-ASCII?Q?Re=3A_=5BPATCH=5D_bitops/32=3A_Convert_variable?=
 =?US-ASCII?Q?=5Fffs=28=29_and_fls=28=29_zero-case_handling_to_C?=
User-Agent: K-9 Mail for Android
In-Reply-To: <aA8q4Ot-1zTzv_Kt@gmail.com>
References: <20250425141740.734030-1-arnd@kernel.org> <aAyiganPp_UsNlnZ@gmail.com> <d2b0e71c-e79b-40d6-8693-3202cd894d66@app.fastmail.com> <CAHk-=wh=TUsVv6xhtzYsWJwJggrjyOfYT3kBu+bHtoYLK0M9Xw@mail.gmail.com> <CAHk-=wgfk69H-T-vMWR33xUpVsWJLrF34d0OwUXa2sHhtpSwZg@mail.gmail.com> <e54f1943-e0ff-4f59-b24f-9b5a7a38becf@citrix.com> <CAHk-=wj0S2vWui0Y+1hpYMEhCiXKexbQ01h+Ckvww8hB29az_A@mail.gmail.com> <aA8nF0moBYOIgC5J@gmail.com> <aA8oqKUaFU-0wb-D@gmail.com> <aA8q4Ot-1zTzv_Kt@gmail.com>
Message-ID: <8E8C8B78-2D92-4D34-BA89-909F7F2FEA55@zytor.com>
MIME-Version: 1.0
Content-Type: text/plain;
 charset=utf-8
Content-Transfer-Encoding: quoted-printable

On April 28, 2025 12:14:40 AM PDT, Ingo Molnar <mingo@kernel=2Eorg> wrote:
>
>* Ingo Molnar <mingo@kernel=2Eorg> wrote:
>
>> And once we remove 486, I think we can do the optimization below to=20
>> just assume the output doesn't get clobbered by BS*L in the=20
>> zero-case, right?
>>=20
>> In the text size space it's a substantial optimization on x86-32=20
>> defconfig:
>>=20
>>         text	   data	       bss	     dec	    hex	filename
>>   16,577,728    7598826    1744896      25921450        18b87aa vmlinux=
=2Evanilla      # CMOV+BS*L
>>   16,577,908	7598838	   1744896	25921642	18b886a	vmlinux=2Elinus_patch =
 # if()+BS*L
>>   16,573,568	7602922	   1744896	25921386	18b876a	vmlinux=2Enoclobber   =
 # BS*L
>
>And BTW, *that* is a price that all of non-486 x86-32 was paying for=20
>486 support=2E=2E=2E
>
>And, just out of intellectual curiosity, I also tried to measure the=20
>code generation price of the +1 standards-quirk in the fls()/ffs()=20
>interface as well:
>
>         text	   data	       bss	     dec	    hex	filename
>   16,577,728   7598826    1744896      25921450        18b87aa vmlinux=
=2Evanilla      # CMOV+BS*L
>   16,577,908	7598838	   1744896	25921642	18b886a	vmlinux=2Elinus_patch  =
# if()+BS*L
>   16,573,568	7602922	   1744896	25921386	18b876a	vmlinux=2Enoclobber    =
# BS*L
>   =2E=2E=2E=2E=2E=2E=2E=2E=2E=2E
>   16,573,552	7602922	   1744896	25921370	18b875a	vmlinux=2Ebroken       =
# BROKEN: 0 baseline instead of 1
>
>=2E=2E=2E and unless I messed up the patch, it seems to have a surprising=
ly=20
>low impact - maybe because the compiler can amortize its cost by=20
>adjusting all dependent code mostly at build time, so the +1 doesn't=20
>end up being generated most of the time?
>
>Thanks,
>
>	Ingo
>
>=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=3D=3D>
>
>This broken patch is broken: it intentionally breaks the ffs()/fls()=20
>interface in an attempt to measure the code generation effects of=20
>interface details=2E
>
>NOT-Signed-off-by: <anyone@anywhere=2Eanytime>
>---
> arch/x86/include/asm/bitops=2Eh | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
>diff --git a/arch/x86/include/asm/bitops=2Eh b/arch/x86/include/asm/bitop=
s=2Eh
>index e3e94a806656=2E=2E21707696bafe 100644
>--- a/arch/x86/include/asm/bitops=2Eh
>+++ b/arch/x86/include/asm/bitops=2Eh
>@@ -318,7 +318,7 @@ static __always_inline int variable_ffs(int x)
> 	    : "=3Dr" (r)
> 	    : ASM_INPUT_RM (x), "0" (-1));
>=20
>-	return r + 1;
>+	return r;
> }
>=20
> /**
>@@ -362,7 +362,7 @@ static __always_inline int fls(unsigned int x)
> 	    : "=3Dr" (r)
> 	    : ASM_INPUT_RM (x), "0" (-1));
>=20
>-	return r + 1;
>+	return r;
> }
>=20
> /**

My recollection was that you can't assume that even for 586; that it is on=
ly safe for 686, but it has been a long time=2E=2E=2E


From xen-devel-bounces@lists.xenproject.org Mon Apr 28 14:16:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 14:16:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.970758.1359354 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9PHd-0003Fo-Ei; Mon, 28 Apr 2025 14:16:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 970758.1359354; Mon, 28 Apr 2025 14:16: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 1u9PHd-0003Fh-Bt; Mon, 28 Apr 2025 14:16:33 +0000
Received: by outflank-mailman (input) for mailman id 970758;
 Mon, 28 Apr 2025 14:16: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=DEkc=XO=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1u9PHc-0003Fa-NT
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 14:16:32 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on20600.outbound.protection.outlook.com
 [2a01:111:f403:2414::600])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6093e9c5-243b-11f0-9ffb-bf95429c2676;
 Mon, 28 Apr 2025 16:16:30 +0200 (CEST)
Received: from CH0PR13CA0011.namprd13.prod.outlook.com (2603:10b6:610:b1::16)
 by MN2PR12MB4269.namprd12.prod.outlook.com (2603:10b6:208:1d4::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.27; Mon, 28 Apr
 2025 14:16:22 +0000
Received: from DS2PEPF00003444.namprd04.prod.outlook.com
 (2603:10b6:610:b1:cafe::18) by CH0PR13CA0011.outlook.office365.com
 (2603:10b6:610:b1::16) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8678.23 via Frontend Transport; Mon,
 28 Apr 2025 14:16:22 +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.8678.33 via Frontend Transport; Mon, 28 Apr 2025 14:16:22 +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, 28 Apr
 2025 09:16:21 -0500
Received: from [172.25.248.240] (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, 28 Apr 2025 09:16:19 -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: 6093e9c5-243b-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Ic5yw7cPMEeMqAB2p7Nq07EoA7kqDVoC6EhUS8tcWifQnYB0528vDM/PuQcxq5Xq5958gAO5GQkEleGBX158g1lZLIlS0n//6RPdq+hdUjLNPRcjdvPwFOt67mWY+dfCzlA2rv8vAhLSgRjd1XMzaI00K63LjLXhOMwhXs0hzJpNx8LGPUJBzRwdYJKmAXDWNdYzz3tx+GqgYlhiRLPImCPNNdbI3yui0cSTDNYgbpwD/WF3EQVMasmVPke0iIBnwqENBrjad50YB8ui8QQ8oYI8qnGrIYbcszNPA5TOWwN96wCT7PgYwBRj4Xs5fjjfKyy0hu1l7F0nTDlOoqWoNg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=/D0fFafS/kw76rFV9iiHuOE1eGpvm0wG2hji52nqB1g=;
 b=A3t6aY2zMlYSHssHkbngFiciQkYlgOYmEJFgqYfBfaXlcdpUNc5y7t3k8TTAFkovspYuABK4CjUooK3qRTjxMYLv092MuCQmCkdIAq0EAIiBFyrohIa0lrGnhmWV32k3J7rOfjAsuUGwn6zctqGEocI+ZCzKlS8KKzzQO3FLCDkBQ/7zvlv8GdETvrUYob016q72CVRdAdClsQWSTMZu9qTKbEnYeY3YLwiYhju5wzKJKlk8L3fqUUctVLvgYyd2ZYRUOs9dHVrUug0Jz9t0DwM7HDJdsatpxwFXSHph5XBTP5rQbn0yLdE8zFRO1AQ9gZpLdApZx4GXw9x2gI4SIg==
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=/D0fFafS/kw76rFV9iiHuOE1eGpvm0wG2hji52nqB1g=;
 b=bbYy2GHE9unRrGF9obO2o/mZYA7s4O0PRTJxBwn9isHUR1GUIpP3xX5DAaQP06XthfzsPWYw25IyNSZe7kOctO9axcp7IsgNNslw3qbkcZu0qi5yiXEn+2d7lKuQFOnfYAuBZFICF0l7Zp7nZeeHf0C81U4t0PI4yv3QGYB9VBk=
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: <780b34b6-c23f-4e43-a3c6-6630b397e664@amd.com>
Date: Mon, 28 Apr 2025 10:16:19 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC 33/38] x86/boot: refactor bzimage parser to be re-enterant
To: Jan Beulich <jbeulich@suse.com>, "Daniel P. Smith"
	<dpsmith@apertussolutions.com>
CC: <stefano.stabellini@amd.com>, <agarciav@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: <20250419220820.4234-1-dpsmith@apertussolutions.com>
 <20250419220820.4234-34-dpsmith@apertussolutions.com>
 <bba25fca-171a-47dd-881b-4746d76bd16a@amd.com>
 <e7894126-d639-4a9c-b600-2287efe6666d@apertussolutions.com>
 <f179661d-5487-421d-b033-41d5d51591c1@suse.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <f179661d-5487-421d-b033-41d5d51591c1@suse.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 8bit
Received-SPF: None (SATLEXMB03.amd.com: jason.andryuk@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS2PEPF00003444:EE_|MN2PR12MB4269:EE_
X-MS-Office365-Filtering-Correlation-Id: 2c736f63-0919-48f7-d96b-08dd865f40d2
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|376014|36860700013|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?ZDQ0elMzN091eFJFblN3YnU4U0xxaS9GM3doNkt6TUVDVzV0OXFHaEdHeWtn?=
 =?utf-8?B?bzNuUXhXcHRnVENGaDhENGRNdU1uL2dPbTJJTk56b2ZFOENsbCtzZDhSZk1u?=
 =?utf-8?B?bVd4UlZkbGhkNEtDNlNRUDBqdm0veDJVQnR5SGZ4M3ZlcmREMVVnd2czMUpj?=
 =?utf-8?B?MlY0TkJZd1NhT3lJMDVTRzBYbG5QQllOZzcrTGNyMnplZWN4cGZaemVPUGs0?=
 =?utf-8?B?U2kxZEpSa2ppY1ovLys1dVhYeFlkNU1KQ1lYcFNOeE9Hekx0Q3VKa3RHcHJM?=
 =?utf-8?B?NHMvM2hvdWcvRUR3amxkOFlySHVxWXA2NGFPSGRHNWtNdmNPVVdIZHlSODcr?=
 =?utf-8?B?dlpPa3dWUjN1dktMQXpGbk9Ic3VZYjU2RlpDZkp2dkVialVBbDZkeHRscDVt?=
 =?utf-8?B?QURpaGtvQ1Z3MXZMVHJ5amdwSzVGM2lTNXpMR1VwWktCR2pDbnh1YVFWQzJ0?=
 =?utf-8?B?enZLNVFWMlZjWlpGOEJTL1U5TGJCMlBkWFJZQmx3d1JRZXY3ZmloS3MyQWo2?=
 =?utf-8?B?amRkVmNualVOSXV1OHBiVmdQNWJBZHg5d0JvL25Ld0JzNmxiRE5LT0xDdHNF?=
 =?utf-8?B?b2U5M3ZUNVhUWWNGZ2JqNk1TcUZLaUJQZkk0MzE4RVZXcThvYUZPOEdVaXVQ?=
 =?utf-8?B?M3BKbjlrdTJhRVJUcE5rNjMxTnQrZG1FdkZwbitTTGtVUXJxK0cwSWdNNDJK?=
 =?utf-8?B?dkRERFo3OWtQM2JQMXlITEhYcmlSZkFvb2VKZkhpNkZrZGczUWNLRVNXa0w5?=
 =?utf-8?B?TTQzRnBsbWNXK2o4WmJvSi9GdW9oQUhxQTFYemI2amZwNzhvUFhSRElwS08v?=
 =?utf-8?B?RHRISUtiNk9QR2piM1k1U09GblRrd1p0bFl5RTE5T3FwNTJIK3d0c01tZ3U3?=
 =?utf-8?B?cVFDdVhBUW9lS1JnNkRGV1ZNeHJhQTlpbkZyZncrMFN0MzljVlArNHBVU2dH?=
 =?utf-8?B?REZ3TlQvYmpjR1Iwb0ViSERuUzQ1Ty85RnBuZGJMVjhBeXRvM1g1eW9DTWo2?=
 =?utf-8?B?MnBML2JkM2pzMk1zcTFhK1Yxbi8xNyt3NTdIWm5TZE1DNHA0OThzcXorSkNW?=
 =?utf-8?B?NW1DcmYwZU13S2JUbW9pbURpeGZlUkRHMFkyQ1FKN0VIbzE4QmdKOXRGcUlh?=
 =?utf-8?B?WVBlMXowNUorakdOVlRxUjlmZU5QOXlzZmpIMUdIdHFHMmJjeW9UK3QwQ01M?=
 =?utf-8?B?M3BLZU1SaE1PR2VDUG5COXFndnFaRmdwa0gxWXJzb0l6cjk4MnZLSGtsVm5k?=
 =?utf-8?B?Q2dJeWVmZjhlQmNZODZEMzBmN1JXL2RWZklHVjJKajRYWUk4TUdwcmJXUHY1?=
 =?utf-8?B?RG9SNm4zdEVid05uS0FLMmNzVmYyaUNkTGVNRVl5TU0xRVA1NG05YTkwdG16?=
 =?utf-8?B?SXE4MGVjWktNQVBjS0lUeXlHM3cveXVoaDdRbjFYNGlaUFFHNzhwbTFvSXVm?=
 =?utf-8?B?WC9mWWkxNjNNS0UvODNWbllna3lJUTRxd014YjQ4TGJrdGNXdDlxY2VZWEl4?=
 =?utf-8?B?MUdNOEhSbzczT1FJQ096WkJWaWtqbkZPcFB0MjNJbVZvcHR3b2VtNmxHZGxF?=
 =?utf-8?B?Z3NMMFdNZnk4NDcrTFB1dExLSDE0QnExWkRhN3ZhUzJGUlF5WlR1Vis3c2RT?=
 =?utf-8?B?VHRDbitiNUcvN1dhOHNLZjltd1dEclNYWXNFNUlnK1hBZDhWdnNXMDhLbVZL?=
 =?utf-8?B?Ly93cDl2VjFSU2dQc0FnYTByeXBxV09FOEp0WkY4WW5QbmFib3NlakkzTHRO?=
 =?utf-8?B?Z2lpZ1lLSlUvYVVaZzhyZjdQOVppQ3ZnSTUrNVQwSFRpMmN6YVZwME8vZW1y?=
 =?utf-8?B?dnk2Zm8zZDBFQ3FUQkUvL0YvZG9KNk9nWjZZVXhtNGlJQzliMm91dVQvOXdh?=
 =?utf-8?B?Sjdkam53RHFMdHczeExWUjhyaW05MUxBV0xBV3JjRlpFZDlNVlN0ekQ1M2I5?=
 =?utf-8?B?K1J3VEUrM2N4a3ZURWFmaDYxUTlmQVh6Z0V0RFFtaXQyZFIxT2h4WE1lL1pi?=
 =?utf-8?B?MEVWdndFVHgwRVg5Tk92Q1VvY0t2djZSbG9hUFQ3cm42VWlwVDI5ZzNPcmNn?=
 =?utf-8?Q?huH/oi?=
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)(376014)(36860700013)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Apr 2025 14:16:22.3226
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 2c736f63-0919-48f7-d96b-08dd865f40d2
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: MN2PR12MB4269



On 2025-04-28 02:41, Jan Beulich wrote:
> On 26.04.2025 03:53, Daniel P. Smith wrote:
>> On 4/23/25 15:27, Jason Andryuk wrote:
>>> On 2025-04-19 18:08, Daniel P. Smith wrote:
>>>> The bzimage logic uses the unit global orig_image_len to hold the
>>>> original
>>>> module length for the kernel when the headroom is calculated. It then
>>>> uses
>>>> orig_image_len to locate the start of the bzimage when the expansion
>>>> is done.
>>>> This is an issue when more than one bzimage is processed by the headroom
>>>> calculation logic, as it will leave orig_image_len set to the length
>>>> of the
>>>> last bzimage it processed.
>>>>
>>>> The boot module work introduced storing the headroom size on a per module
>>>> basis. By passing in the headroom from the boot module, orig_image_len
>>>> is no
>>>> longer needed to locate the beginning of the bzimage after the allocated
>>>> headroom. The bzimage functions are reworked as such, allowing the
>>>> removal of
>>>> orig_image_len and enabling them to be reused by multiple kernel boot
>>>> modules.
>>>>
>>>> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
>>>> ---
>>>>    xen/arch/x86/bzimage.c             | 38 ++++++++++++++++++------------
>>>>    xen/arch/x86/hvm/dom_build.c       |  3 ++-
>>>>    xen/arch/x86/include/asm/bzimage.h |  5 ++--
>>>>    xen/arch/x86/pv/dom0_build.c       |  3 ++-
>>>>    4 files changed, 30 insertions(+), 19 deletions(-)
>>>>
>>>> diff --git a/xen/arch/x86/bzimage.c b/xen/arch/x86/bzimage.c
>>>> index 66f648f311e4..32f0360d25b4 100644
>>>
>>>> @@ -103,13 +100,20 @@ unsigned long __init bzimage_headroom(void
>>>> *image_start,
>>>>        return headroom;
>>>>    }
>>>> -int __init bzimage_parse(void *image_base, void **image_start,
>>>> -                         unsigned long *image_len)
>>>> +int __init bzimage_parse(
>>>> +    void *image_base, void **image_start, unsigned long headroom,
>>>> +    unsigned long *image_len)
>>>>    {
>>>>        struct setup_header *hdr = (struct setup_header *)(*image_start);
>>>>        int err = bzimage_check(hdr, *image_len);
>>>> -    unsigned long output_len;
>>>> -
>>>> +    unsigned long module_len = *image_len;
>>>> +
>>>> +    /*
>>>> +     * Variable err will have one of three values:
>>>> +     *   -  < 0: a error occurred trying to inspect the contents
>>>> +     *   -  > 0: the image is a bzImage
>>>> +     *   - == 0: not a bzImage, could be raw elf or elf.gz (vmlinuz.gz)
>>>> +     */
>>>
>>> This comment seems a little independent of this change, so maybe it
>>> should be submitted separately.  Also, I think a better placement would
>>> be next to bzimage_check().
>>>
>>>>        if ( err < 0 )
>>>>            return err;
>>>> @@ -118,21 +122,25 @@ int __init bzimage_parse(void *image_base, void
>>>> **image_start,
>>>>            *image_start += (hdr->setup_sects + 1) * 512 + hdr-
>>>>> payload_offset;
>>>>            *image_len = hdr->payload_length;
>>>
>>> @here
>>>
>>>>        }
>>>> -
>>>> -    if ( elf_is_elfbinary(*image_start, *image_len) )
>>>> -        return 0;
>>>> +    else
>>>> +    {
>>>> +        if ( elf_is_elfbinary(*image_start, *image_len) )
>>>> +            return 0;
>>>> +        else
>>>> +            *image_len = *image_len - headroom;
>>>> +    }
>>>
>>> I don't like this extra indention which includes the return.  If you
>>> retain orig_image_len as a local variable, and set it above at "@here",
>>> you can have a smaller diff and leave cleaner logic.
>>
>> Right, but I find it sillier to be checking every kernel for elf when we
>> know it's a bzImage. While the elf check is fairly simplistic, it is
>> still multiple value checks.

bzimage_parse() needs to handle:
ELF
compressed ELF
bzImage

bzimage_check just returns
+     * Variable err will have one of three values:
+     *   -  < 0: a error occurred trying to inspect the contents
+     *   -  > 0: the image is a bzImage
+     *   - == 0: not a bzImage, could be raw elf or elf.gz (vmlinuz.gz)

The elf_is_elfbinary() check is needed to detect plain ELF files and 
skip decompression.

> Even without any extra local vars the above can be
> 
>      else if ( elf_is_elfbinary(*image_start, *image_len) )
>          return 0;
>      else
>          *image_len = *image_len - headroom;
> 
> which would already address the "extra indentation" aspect.

Yes.  Thanks, but this actually helps illustrate how Dan's change is 
incorrect.  Well, Dan's elimination of orig_image_len makes *image_len 
correct later, but I think there are further issues.

     if ( err > 0 ) <--- bzImage case
     {
         *image_start += (hdr->setup_sects + 1) * 512 + hdr->payload_offset;
         *image_len = hdr->payload_length;
     }
     else if ( elf_is_elfbinary(*image_start, *image_len) ) <--- ELF
         return 0;
     else <--- compressed ELF
         *image_len = *image_len - headroom;

My addition is to the bzImage case, since that is what I saw breaking 
and fixed.  Setting orig_image_len in the else of the bzImage case would 
not fix it.

Later changes:

 > -    output_len = output_length(*image_start, orig_image_len);

You drop output_len...

 > -
 > -    if ( (err = perform_gunzip(image_base, *image_start, 
orig_image_len)) > 0 )
 > -        err = decompress(*image_start, orig_image_len, image_base);
 > +    if ( (err = perform_gunzip(image_base, *image_start, 
*image_len)) > 0 )
 > +        err = decompress(*image_start, *image_len, image_base);
 >
 >       if ( !err )
 >       {
 > +        printk(XENLOG_ERR "%s(%d): decompression failed, reseting 
image start and len\n",
 > +               __func__, err);

... but this is actually the success case...

 >           *image_start = image_base;
 > -        *image_len = output_len;
 > +        *image_len = module_len;

... it should be writing output_len.

 >       }

Again, please just use the minimal change from the other email.  It is 
what I've been using, so tested and working.  That is your original 
conversion with the one line fixup and much easier to review.

Regards,
Jason


From xen-devel-bounces@lists.xenproject.org Mon Apr 28 14:29:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 14:29:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.970774.1359363 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9PTo-00058H-Kc; Mon, 28 Apr 2025 14:29:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 970774.1359363; Mon, 28 Apr 2025 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 1u9PTo-00058A-Ho; Mon, 28 Apr 2025 14:29:08 +0000
Received: by outflank-mailman (input) for mailman id 970774;
 Mon, 28 Apr 2025 14:29: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=MVu+=XO=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1u9PTn-000584-IN
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 14:29:07 +0000
Received: from EUR03-AM7-obe.outbound.protection.outlook.com
 (mail-am7eur03on2060b.outbound.protection.outlook.com
 [2a01:111:f403:260e::60b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1adb9a23-243d-11f0-9ffb-bf95429c2676;
 Mon, 28 Apr 2025 16:28:51 +0200 (CEST)
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by DB9PR03MB7499.eurprd03.prod.outlook.com
 (2603:10a6:10:22e::5) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.29; Mon, 28 Apr
 2025 14:28:48 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::35ac:8893:c31c:b971]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::35ac:8893:c31c:b971%4]) with mapi id 15.20.8678.027; Mon, 28 Apr 2025
 14:28: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: 1adb9a23-243d-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=mVjwlBX69q0RCqOF52AYmHlIeaGZuLF8K7EdXVHWjNtT8oUmSiAtEFS7VzMZiifbinPEEvLl2u4+qbTUH9Ar5fNFlIfJv6g7/rEYHcunjRD4s8NQ/vOHtI4BLnCCIU1NAngionIuQcg/pvIj4SrK69rWeCm3ww4jpYCdcX/Kz2PleoSiWvW2FeNKgtDIWL1xKrgfem2swlOz7jfxEnAgKHWnFyPVbbl1W2gzrpyhLIHV+pdN4S7Uy4nZ0CBQvuKc2iP7Haz6HcQDuFxYg95g1JhBynvEJZQReTzmjNHdsxBOrEBhLV9B/KFRBgW5dV190i98bzmkNg5DIeKVbaP9yw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=unOwEfd28qiN6Jt4Zc1O3QUcdvMaQ7KLkAs5W77BYJk=;
 b=Br4lyyC2A7FTic9T0qsLwLQVWdh9Lj20RR6RN8Bq3LJX7zT1tLU4OXMXscV2okHyqwQza4KPJDaxBK3WqRWx1pyVHLWvl1+7ZmFK7qBdmruknjEyTbfuToPVPyt1mC7eswSVQFO7elKCo2qegXdYLMev18kJsrqmjn6w6cuggoSxAo1tZeKCrlZRJDwumXGYI6hVZ42Ul78sWVhuwLHvcuTL7wQSb+mfj2Sj3WLAPbdHLTtwDfTsUP5Bz0Nmp3sgXHb8ao0tzOci+CkwLhelh0mggV40OuVTSODteukdfpeIjsxJOEXXLiPn2uy3eXzVEWQdNatriMk3YriilKlOhA==
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=unOwEfd28qiN6Jt4Zc1O3QUcdvMaQ7KLkAs5W77BYJk=;
 b=pRN2+pcdktc7kufMrpqTIsu1w/pzbGaIH52qbp5VXnbrViaESWzZ4ckWxj1OGq/q0kAqKo7xdx1w3LKrCJUEoIkMyg28JtYcziMHhePziuBtqk8ek0L9D4nxW4qaG1zMpQ+CulXGKUj7P3OklBkfQ5UpXYlDi71aBCqTHBgSyS5Tmwmv2+fBoo8q91xR4Z8klfjJnFOB/aC9iRVzzS7AohoDB2v/WcIUgn4OHQ+25I1AFDGefsBVeNVWRS5CH9/8lnmY8SxLNvi2tMAwhAEvThlvNeLlbjhR8Mt6OlyySN1NdimSqZFuLoTwhddVl28LDgB7Uz6ED3enEy3AekjxDg==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: Julien Grall <julien@xen.org>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
CC: Stewart Hildebrand <stewart.hildebrand@amd.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>, Anthony PERARD
	<anthony.perard@vates.tech>, Jan Beulich <jbeulich@suse.com>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>
Subject: Re: [PATCH v9 7/8] xen/arm: enable dom0 to use PCI devices with
 pci-passthrough=no
Thread-Topic: [PATCH v9 7/8] xen/arm: enable dom0 to use PCI devices with
 pci-passthrough=no
Thread-Index: AQHblOXdxbIbbkNtn0WSg/9tW2OJ47O5DGKAgAA8u4CAAAbVAIAAGfaA
Date: Mon, 28 Apr 2025 14:28:48 +0000
Message-ID: <c61acb06-4770-434d-8158-d7e0b4b32f04@epam.com>
References: <cover.1741958647.git.mykyta_poturai@epam.com>
 <132afbca390edd6e9fd7b1ffacf6c5aff0d29aa7.1741958647.git.mykyta_poturai@epam.com>
 <7d376741-ff23-4618-83bd-415c8d8fa24e@xen.org>
 <ae2c8d37-e350-4125-921f-3d320c28d6cd@epam.com>
 <a1715315-f4c8-4062-89db-e2df7b22865b@xen.org>
In-Reply-To: <a1715315-f4c8-4062-89db-e2df7b22865b@xen.org>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: PAVPR03MB10102:EE_|DB9PR03MB7499:EE_
x-ms-office365-filtering-correlation-id: 31f7146d-6a27-4081-2f2a-08dd8660fd4c
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|7416014|366016|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?UHhFYmg2UUM3RUZyNG5rcEJtZGhTaEFXc3JFWmtPbEEzSEJ1anFFdTBibzFU?=
 =?utf-8?B?ZnB2MlVhcUg2VndqZ2VrYk9yYm10UVZYRDRmWmhCamxIUXhpRTQ3TzgwZnB5?=
 =?utf-8?B?SXBOaEIvUU9XUExxRWJad1FPTlQ2T1MvNW9xbUVudW95Szg3aHR6VWdoZU9x?=
 =?utf-8?B?TFh3dE5qWVZzbFV0WU8rZXp1a2lmVXBOaFlSVExoUmtseWpVUEdsNTJta0hY?=
 =?utf-8?B?dWFIVE1ZR29MOW9WbWtyTUhXS0dyUkFTbnBVVTQzVFRGVHZtMUZDaUtqQjdv?=
 =?utf-8?B?NzBCdUJLSHNISGc4UWl4d2pmdG1NYmlwSHNVYVFSb3JGQUJzNXJ4RURETjU2?=
 =?utf-8?B?aSs0SmNINmNJZkxhRXBjTXhHdGtrQUxzb1VYUXF1UHFDOVV4ZjlVeEV2R21p?=
 =?utf-8?B?aGpvQk90WUcvbUttVDFPaG1zZThpS1pXT3BJL2FwNGROQjhqckZzTzhUSncw?=
 =?utf-8?B?K2tSRnZjakNDSGZjbzQzaU9UelZMQVczUE5RODRHVUpqRjhLcnpONStaN1cx?=
 =?utf-8?B?UDF4MEFvaWc3WGhWRjg1bkFET2ZnUlhwakhnYzA4TU5CbG5WQlkyS2VNNXB6?=
 =?utf-8?B?UVpNVjBRM2hIN2toS0lRQU13cU55N0VJSWdlNnJCVHNNWllQeWh6enN5eVRC?=
 =?utf-8?B?VWErTi9RYTBvZWVrRjN6SWRBcXA4SFlOOXBFZWplR2lkNWVsYWlXZXNYdmt1?=
 =?utf-8?B?TUxTSGQrTmExOHVtbEpLMW1QbEZjZThQOUZqMzNNcnZCZDRKQmxicjZYVjZ1?=
 =?utf-8?B?ZWJDOCt3dG5lTGtsOHMvRWN6dERYNm8vUXMzKzl2M2M1OHJROFliOEFnRXp4?=
 =?utf-8?B?RlRKNTE4L0xVSE1kV2cyTUFabnZrUHZleEZIS3hROGI4WUZpRVk3My82czhy?=
 =?utf-8?B?bUYvU0xtYWdRRFVVNjBPQi92RFdoRVdMNGJtZTFWMjV3eVdPNnJrUVlSeFhC?=
 =?utf-8?B?VHRlUVlsUE0rMkgvYnhIcDlIUkVWU2l0OW1rNnFnSlNJd3pTb0krZEYrc1RF?=
 =?utf-8?B?K3FEdmc1NU52RWt4M1RNVU5OYUhQbkQrOWFLekZlOEo0bHlJOE5aY09sMzY4?=
 =?utf-8?B?RnZ6Z2ZLS01pN2NMNEo3NTRiVmNmem5hRzBrQzZKWENSazA1aUYyVkxteVlx?=
 =?utf-8?B?Ukp4QmtTQ21JRTFraitxbTlMelRSK1ZhdUI0UVhsdVJHY1pkM2NmSS9NN2tO?=
 =?utf-8?B?TzN6TEwvQVpiQ3NmNEM0aVdJbmhwNGtpcnBBcVpvK1pZRzllT3hDdURiWlUr?=
 =?utf-8?B?UEJFN0RRSEhzMjQ0RmdHM1V1eWVxUnlyVVZLYllPV0dyTUJkblpkTE9sekx5?=
 =?utf-8?B?M2NZSEVFNDA1OWp5a2V2QTZrT0RMcUw3TDV0SUJLdW5Fc2c5bGwxOXhsb0JI?=
 =?utf-8?B?dlVheXFxOS9oKzhxTnRjUEk4TlduZnB2NTNDYmlDajR6YlNuTFJrV2ZlRFNW?=
 =?utf-8?B?OXpYdXllZGppSnBTRk1qRG9wS3MxQWRmVG1PWHlMaHJrcjNHVUYwU25QSTdH?=
 =?utf-8?B?eUcxZVdCS3NsM3BpRmtpQkFLRCtYNUNjTUlmM291VVBWM3hPdm9BM3UwTllY?=
 =?utf-8?B?V0FGV0c0bTBSTmRDamJ4Z3RuZXFrU0lLTEtIK0R4YTJNSG5pQTdqcmwzdmFN?=
 =?utf-8?B?bE1jVDdEUjBYczIrd2M5b2Z0STRrdE9oTVp3MTI0T0FNNENVTDFaZHJIeVlR?=
 =?utf-8?B?em1TWmovZXlQeWpXcEFzaEM4ZThNZXlsQWRDbURYQUpEeWVZTjRIeEtmc3Nw?=
 =?utf-8?B?Nk5WQXlkSzQrbDk3bWdXV3gxbG9NT1p0SzhyWVhZOUo2cU4zN0J0QXFTNm43?=
 =?utf-8?B?RUZGaXlUbWlIWGc4RXpoTGs2RWZleUhvaC9mMFBHV0YrVnc4REVWYVFvYUhJ?=
 =?utf-8?B?TlNZZjd1ZktUTnBiWmUxYXlacUNaTWkvWVhCZXJZaXFQN1RoVVpyM2l1Vy9R?=
 =?utf-8?B?cWdaRklzYXdkOHhRYW5lRmFmY1lxWGx1TVhKZEluRlV0UWYzN3J3MWM1RWk5?=
 =?utf-8?Q?+TNQtl9Zl4AFfJ60gh9gHqqc37j7Fg=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)(7416014)(366016)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?V1pJenBNSnF4VGRYQzBOZTk4N1VGbkh0WXpNZlBKSUJKWVNIbmNycXU2QXBS?=
 =?utf-8?B?dTI0SkdLWUo2SE9CSjRHMXpqNjlCbll5aGFldWErc1h6UExlRGlzb0p3NXlF?=
 =?utf-8?B?bm9jWFRMQThqVUU5VmwwYjZWNEpSd2FEby9QU1dDUkhDUFFUUGZhTmwvUU5P?=
 =?utf-8?B?Q0d1REVISGU1ZkZob2p1YkJoU3c4TGJYNW9vTnh1aW13YXRRVG5rSWNvVjNi?=
 =?utf-8?B?alRTa1B2bXE2OU1COGFTdUlydUEybHJ6b282c2szZkFib0FjWGt0YXRlcUVm?=
 =?utf-8?B?Q1RYSUwwNU9CeDVUTGRkT2UxcldqZDAwL1dOUFo1dFFBNHVBbTB3Qk8xY0tN?=
 =?utf-8?B?aGNpc2RZWDhEcHRkaTAvZ3pVcy9Oc1B5T01SNWs1dVVESmN2NTZKczRsZ0lo?=
 =?utf-8?B?TGFnd0VqbFVGY21hMXFUcVB4czNHVE8relVtcmw1VEJTWmx2L2tnSUdqOEVB?=
 =?utf-8?B?T01CU2tESE1tQTB2aDlDMWJleERMV1Q5MkpuSGRyNGZBWXZVczZENWgrSWx6?=
 =?utf-8?B?VTNjbGNHbUM5SnhRU2JiNWlBYWpwczB0NXh4UHlNRy81RGZDNFcxNTl3Qytr?=
 =?utf-8?B?TXJ4b2dqcGpqRlhQanBpNUtuTTlhK1h5eGNnakEvUFNxNWh0NlY4RWxHOTFC?=
 =?utf-8?B?MnhkZUxNbXJjbUtNckU5czl4MXlYOWZxcTNPY0I2c1o1cmdzYkVOLzFlZXpQ?=
 =?utf-8?B?S0V5TmYxZlM1aXhjdEgySXpBOGx4OWFocUpOckhSbTBOQ2tScXZOeVlvZElz?=
 =?utf-8?B?WEhOdktoNUgzdU92dHQ0aDQ5Nnh5bEFrNmwvT3ZhT05RdWxwR21qNlNRckVh?=
 =?utf-8?B?V28rK2w1V1FaclZNUk1vdXhNSWRWcmNzcXVrQ0tXK1pib1p6NThzREVGY0JL?=
 =?utf-8?B?WXhtV0Fkc080aWFiVk1maGdHN2t4aFhMMXcyNlliK0F3UHRXM0hXcXY3bW9r?=
 =?utf-8?B?c29PMEZoWjFDV3c5WlpiMnJ5WFlZeTNWK09MNDNLOHRxaHpmbVN4TTFHZ1N1?=
 =?utf-8?B?ZWR2dFJuUzhQdXJ6QjNXY0prVWJpQmtKY1AvTzREOG9STUo0cDE0OVU4S2pD?=
 =?utf-8?B?Y3Z1Nkx5SWU0cHhVdE51QVQxcXFpYnI5VjFOcUhiRit4TW5ydE9NbVcvZ05U?=
 =?utf-8?B?Y3B5WHNaelFIMHU3TjAyWDQ0YUFEci90ZUF0cElKWTNtayt2RHNUMHdZVC85?=
 =?utf-8?B?Nk5SMUhnbFUya1Bnb25OeHZNRXJ4QVpPQ3RpdWQxb3ZnOGtlZk1pemlUMVFj?=
 =?utf-8?B?Z1BXM1VJeEZFdGFZS0h5NWJHUlVzTFFoOG9sVWhDemwvZ2pmejE1eTEwWExB?=
 =?utf-8?B?Y0hzMGNpYTBsa3FEeFV0REQvb25KUTBuZndDVEdvRHVqNFRwTUhoTGNObUtZ?=
 =?utf-8?B?a05xQ1ZmQ1ZqY2J4VDJuMW5KWWlGRTN1WDJpU1h5UVhENU90VW9SWHB6OHU0?=
 =?utf-8?B?a3dtVDhZeTJEQU9YSnhjNmp2bS9zeDBNam1HQUtKYkRXMzQ4UlRPNWFrNFFI?=
 =?utf-8?B?dXhyNEJ4VGxFVEUrTzhvZGFQaEMvdVVyYVJaeTZ1L1Y4U0NGTGdjbytmcGZS?=
 =?utf-8?B?ZXN2YjNtelZGaHAzeWVTRko0eFExL3lmZUhaRmRIK1I3NFExOG9BSHFzYzRS?=
 =?utf-8?B?b3NMUVNTcWg0MHI0R245dm1tejg5UzNGc3luL1VOUjlqcHkyUm9xYXVnWFZk?=
 =?utf-8?B?Rit6MXBRaUtJSE9IUzJFcHZlK2pVV2F6ekxTamJkMmtjemZSUkNIMUx3NmFz?=
 =?utf-8?B?WWdlbU1BcmlrQVMyOHJ3bWVDTWl1Q1JwYllpWGRaWnFqc0dlTk5KR00rN3FF?=
 =?utf-8?B?VlZadWJQMThsTzRrNWx2emZ6YVE2aE4vWEJTeURBZzdycHVFSERsZmRyTWlk?=
 =?utf-8?B?S3hZbzJUTWFiTTFNSmVXMUM4Qm9YVGVDdnZiSjFUTlpoZ3p6VnR2SGxIUXJS?=
 =?utf-8?B?NjhqZ3Y4V3hiRTVSc1gwa1NyVXIya1pCZGxtK1Y2Zk9uOTlML2xQQ1pqMGxN?=
 =?utf-8?B?Zm0vcHgzR0lhc1FvbGE4NmFTQjRZQXNoekljY29RMFlyQk9EZ25WVkJ2NnY0?=
 =?utf-8?B?SlJmOG9ZZC9KcVhuczVFaVJOR3BJMkJMSEpuQjNNU3k0My9jQVZOTW1sdkpV?=
 =?utf-8?B?ajhvZVNjVmtEaHQ4V1k3dDBrYktoRTM3cU9wUks1Q2JFL0Y5ZkhlVkVsTzMy?=
 =?utf-8?B?T0E9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <CEDB39782BFBD84D91A2F35D0C2230EF@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: 31f7146d-6a27-4081-2f2a-08dd8660fd4c
X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Apr 2025 14:28:48.0585
 (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: arIxoXGUStXS7G1n7rRyzaGkVvYwce1kO/o9MqD9bx9YWVi6ovs27NLd0n50A5b3HPNaC5y/wljC3xI6KGWCDw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR03MB7499

T24gMjguMDQuMjUgMTU6NTUsIEp1bGllbiBHcmFsbCB3cm90ZToNCj4gSGksDQo+IA0KPiBPbiAy
OC8wNC8yMDI1IDEzOjMxLCBNeWt5dGEgUG90dXJhaSB3cm90ZToNCj4+IE9uIDI4LjA0LjI1IDEx
OjU0LCBKdWxpZW4gR3JhbGwgd3JvdGU6DQo+Pj4gSGkgTXlreXRhLA0KPj4+DQo+Pj4gT24gMTQv
MDMvMjAyNSAxMzozNCwgTXlreXRhIFBvdHVyYWkgd3JvdGU6DQo+Pj4+IEZyb206IFN0ZXdhcnQg
SGlsZGVicmFuZCA8c3Rld2FydC5oaWxkZWJyYW5kQGFtZC5jb20+DQo+Pj4+DQo+Pj4+IEVuYWJs
ZSB0aGUgdXNlIG9mIElPTU1VICsgUENJIGluIGRvbTAgd2l0aG91dCBoYXZpbmcgdG8gc3BlY2lm
eQ0KPj4+PiAicGNpLXBhc3N0aHJvdWdoPXllcyIuIFdlIHJlbHkgb24gZG9tMCB0byBpbml0aWFs
aXplIHRoZSBQQ0kgY29udHJvbGxlcg0KPj4+PiBhbmQgcGVyZm9ybSBhIFBIWVNERVZPUF9wY2lf
ZGV2aWNlX2FkZCBjYWxsIHRvIGFkZCBlYWNoIGRldmljZSB0byBTTU1VLg0KPj4+DQo+Pj4gSXQg
d291bGQgYmUgZ29vZCB0byBleHBsYWluIHdoeSBYZW4gY2Fubm90IGluaXRpYWxpemUgdGhlIFBD
SQ0KPj4+IGNvbnRyb2xsZXIuIEFza2luZywgYmVjYXVzZSB0aGUgcmVhc29uIGlzIHRoZSBQQ0kg
Y29udHJvbGxlciBpcyB0b28NCj4+PiBjb21wbGV4LCB0aGVuIHlvdSB3aWxsIGxpa2VseSBuZWVk
IHRoZSBzYW1lIGFwcHJvYWNoIGZvciBQQ0kgDQo+Pj4gcGFzc3Rocm91Z2guLi4NCj4+DQo+PiBJ
IHRoaW5rIHRoZSBtYWluIHJlYXNvbiBmb3IgdGhpcyBpcyBjb21wbGV4aXR5IGFuZCB0aGUgcG9z
c2liaWxpdHkgb2YNCj4+IGFkZGl0aW9uYWwgZGVwZW5kZW5jaWVzOiB0aGVyZSBjb3VsZCBiZSBl
eHRlcm5hbCBjbG9ja3Mgb3IgcmVzZXQgcGlucw0KPj4gdGhhdCB0aGUgUENJIGhvc3QgZGVwZW5k
cyBvbiBmb3Igd29ya2luZyBjb3JyZWN0bHkuIEkgd2lsbCBhZGQgdGhpcyB0bw0KPj4gdGhlIGNv
bW1pdCBtZXNzYWdlLiBSZWdhcmRpbmcgUENJIHBhc3N0aHJvdWdoLCBpdCBpcyBhbHJlYWR5IHVz
aW5nIHRoZQ0KPj4gc2FtZSBhcHByb2FjaCAoYXQgbGVhc3Qgb24gQXJtKS4gVGhlcmUgYXJlIHBh
dGNoZXMgZm9yIGVuYWJsaW5nIFhlbiBvbg0KPj4gQXJtIHRvIHBlcmZvcm0gYnVzIGVudW1lcmF0
aW9uIGJ5IGl0c2VsZiBieSBMdWNhIEZhbmNlbGx1LCBidXQgSSBoYXZlbid0DQo+PiB5ZXQgZ290
IHRvIHRlc3QgdGhlbSBpbiBhIG1lYW5pbmdmdWwgd2F5Lg0KPiANCj4gQ2FuIHlvdSBwcm92aWRl
IGEgbGluayB0byB0aGUgc2VyaWVzPyBJIHdvdWxkIGxpa2UgdG8gbWFrZSBzdXJlIHdlIGhhdmUg
DQo+IGEgY29oZXJlbnQgYXBwcm9hY2guIEluIHBhcnRpY3VsYXIsIGl0IGlzIG5vdCBjbGVhciB0
byBtZSBob3cgRG9tMCBhbmQgDQo+IFhlbiB3aWxsIGJlIGFibGUgdG8gY29vcmRpbmF0ZSB0aGUg
YWNjZXNzIHRvIHRoZSBQQ0kgY29udHJvbGxlci4gQXJlIHdlIA0KPiBnb2luZyB0byBoYXZlIGEg
bWVkaWF0b3I/DQo+IA0KDQpIZXJlIGlzIGEgbGluayB0byBteSBXSVAgYnJhbmNoDQpodHRwczov
L2dpdGh1Yi5jb20vRGVlZG9uZS94ZW4vdHJlZS9wY2lfcGFzc3Rocm91Z2hfd2lwDQpBbHRob3Vn
aCBpdCBpcyBzbGlnaHRseSBvdXRkYXRlZCBkdWUgdG8gcmVjZW50IHJldmlldyBhY3Rpdml0eSwg
SSB3aWxsIA0KdXBkYXRlZCBpdCBzb29uIHdpdGggYWxsIG9mIHRoZSByZWNlbnQgY2hhbmdlcy4N
Cg0KTHVjYSdzIGNvbW1pdHMgYmVnaW4gZnJvbSBjNjhhNWNiYjFhN2QxNzkwNzU1MTE1OWM5OWFi
NWM4N2NlMGRlZGY5DQoNCkkgd2Fzbid0IGFibGUgdG8gZmluZCB0aGVtIHNlbnQgdG8gYW55IG1h
aWxpbmcgbGlzdHMsIGJ1dCBJIHBsYW4gdG8gYWxzbyANCnNlbmQgdGhlbSBhZnRlciB0aGUgYmFz
ZSBjYXNlIHdpdGggRG9tMCBlbnVtZXJhdGlvbiBzdGFiaWxpemVzLg0KDQpUaGVyZSBpcyBubyBt
ZWRpYXRvciwgRG9tMCBjb25maWd1cmVzIHRoZSBob3N0IGNvbnRyb2xsZXIsIGVudW1lcmF0ZXMg
DQpjaGlsZCBkZXZpY2VzLCBhbmQgdGhlbiBnaXZlcyBjb21wbGV0ZSBhY2Nlc3MgdG8gc29tZSBv
ZiB0aGVtIHRvIFhlbi4gDQpYZW4gb25seSBkb2VzICJsb2dpY2FsIiBvcGVyYXRpb25zIHdpdGgg
Y2hpbGQgZGV2aWNlcyBhbmQgZG9lcyBub3QgDQpjaGFuZ2UgYW55IG9mIHRoZSBob3N0IGNvbnRy
b2xsZXIgYmFzZSBzZXR0aW5ncy4gVG8gZW5zdXJlIHRoYXQgRG9tMCANCndpbGwgbm90IG1lc3Mg
d2l0aCB0aGUgY2hpbGQgZGV2aWNlcywgdG9vbHMgYmluZCB0aGVtIHRvIHRoZSBzdHViIA0KZHJp
dmVyLiBUaGVvcmV0aWNhbGx5LCBEb20wIGNhbiBiaW5kIHRvIHRob3NlIGRldmljZXMgYWdhaW4g
YW5kIGJyZWFrIA0Kc29tZXRoaW5nLCBidXQgaXQgY2FuIGFsc28gZG8gYSBsb3Qgb2Ygb3RoZXIg
YnJlYWtpbmcgc3R1ZmYgc28gSSBkb24ndCANCnRoaW5rIHRoZXJlIGlzIGEgZ29vZCByZWFzb24g
dG8gaW52ZW50IHNvbWUgZm9ybXMgb2YgcHJvdGVjdGlvbiBmcm9tIGl0Lg0KDQpBZnRlciBzb21l
IHRpbWUgd2l0aCBwY2ktc2NhbiBjaGFuZ2VzIG1lcmdlZCBpdCBzaG91bGQgYmVjb21lIHBvc3Np
YmxlIA0KdG8gbWFrZSBYZW4gZG8gdGhlIGVudW1lcmF0aW9uLCBhbmQgb25seSBnaXZlIERvbTAg
dGhlIHZpcnR1YWwgUENJIGJ1cywgDQp3aGljaCB3b3VsZCBwcmV2ZW50IGl0IGZyb20gYWNjZXNz
aW5nIG5vbi1vd25lZCBkZXZpY2VzLg0KDQotLSANCk15a3l0YQ==


From xen-devel-bounces@lists.xenproject.org Mon Apr 28 15:12:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 15:12:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.970795.1359373 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9Q9j-0003XR-NX; Mon, 28 Apr 2025 15:12:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 970795.1359373; Mon, 28 Apr 2025 15:12: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 1u9Q9j-0003XK-L1; Mon, 28 Apr 2025 15:12:27 +0000
Received: by outflank-mailman (input) for mailman id 970795;
 Mon, 28 Apr 2025 15:12: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=A+1Z=XO=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u9Q9i-0003X9-CZ
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 15:12:26 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on2062e.outbound.protection.outlook.com
 [2a01:111:f403:2418::62e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2e246af9-2443-11f0-9ffb-bf95429c2676;
 Mon, 28 Apr 2025 17:12:21 +0200 (CEST)
Received: from SJ0PR13CA0219.namprd13.prod.outlook.com (2603:10b6:a03:2c1::14)
 by DM4PR12MB6471.namprd12.prod.outlook.com (2603:10b6:8:ba::10) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.34; Mon, 28 Apr
 2025 15:12:16 +0000
Received: from BY1PEPF0001AE1B.namprd04.prod.outlook.com
 (2603:10b6:a03:2c1:cafe::6f) by SJ0PR13CA0219.outlook.office365.com
 (2603:10b6:a03:2c1::14) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.25 via Frontend Transport; Mon,
 28 Apr 2025 15:12:16 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BY1PEPF0001AE1B.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.8678.33 via Frontend Transport; Mon, 28 Apr 2025 15:12:15 +0000
Received: from localhost (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; Mon, 28 Apr
 2025 10:12:13 -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: 2e246af9-2443-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=uldKffMKeVb+c04wF4xrCrMLVjxSpo2kSKJqQHaZl86T3sy+hvVcR6tX7YcmBKS1PxBKIg2EdecBGQ/CDYCy8z8z3cE2GhcJHDdrYhecjMbYBubA+HNxA+J99otM0MOoEXAH/3aBtOrxG+TpTYgtMxoRiBToXFa3W3Jmk5G/UJmpNsUrwUMXbNqrRwYMRGNDWaTck3F6CFp1Hnciwc+DUZi+lyBSceXyzmlYgm6XGg5hPMi8RDgTSQ6DT8l74Pwsibe0LvB2N8Nz1ESqtZjx2lbD6+VroOdEExh8Vr3Wxj84kohHyE625YUhRNHZd3cX6qTqShabAUButv6Ziu4pdw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=kbFeJiscs6mnjRSre8iH3XAgzgdPZbzmpEiXk7Xoy9w=;
 b=V+A6Zer9zrUukSQO3ioR41VvYsIZkIQKMw0TAs4p3QY5K5lwpmct4IBEpO9S1tweVBLEFjl/KhjsHllNrtiQ4lNs2YrJlKeVt7/luBG3m3Bw5AmaVQsLmlTChQd6lbBkIePHQdN6OxkFy1pnhD0JyPH3AGcPSEKj/0L7q8lWD3ptjvsBYbY5psd3WlCCW9mbhb5vCw5lP6kTqDLryGwxVnvR39j7bE493Jro/g04nLcokIF3u5nEEm8L5fxfBryCsMgSk8OQRW8iubVN79dEWOd33AWQRX30E29mEItBLqBx+2L2nbzaE4UPr52D2pVvEhpUqjA+GW/RtZsM/pCSLg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=xenproject.org smtp.mailfrom=amd.com;
 dmarc=pass (p=quarantine sp=quarantine pct=100) action=none
 header.from=amd.com; dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=kbFeJiscs6mnjRSre8iH3XAgzgdPZbzmpEiXk7Xoy9w=;
 b=oKaimCeHbD41Fh1j5YuKmtNf161KtMa6V3QctmwwebuW2WGAWPfc+IWDNaynKlHhyQucXVwl5CbCzGWAn3ozaZq7kSRvCWwOmr/AugiYuEyZf03cLxfwgR99i8xdhjYGOyF5pTBqokwbVd3piKhchjJxS1OkSqE3z+ou2WqvgFY=
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
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Mon, 28 Apr 2025 16:12:12 +0100
Message-ID: <D9IDA8NYNZUG.2Z1IGCDV4YI5Y@amd.com>
CC: <xen-devel@lists.xenproject.org>, Anthony PERARD
	<anthony.perard@vates.tech>, Andrew Cooper <andrew.cooper3@citrix.com>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, "Julien
 Grall" <julien@xen.org>, =?utf-8?q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Xen-devel <xen-devel-bounces@lists.xenproject.org>
Subject: Re: [PATCH v2 2/6] docs: remove qemu-traditional support from
 documentation
From: Alejandro Vallejo <agarciav@amd.com>
To: Anthony PERARD <anthony@xenproject.org>, Juergen Gross <jgross@suse.com>
X-Mailer: aerc 0.20.1
References: <20250408123526.14613-1-jgross@suse.com>
 <20250408123526.14613-3-jgross@suse.com> <aAoHOrcZ5LlhEObL@l14>
In-Reply-To: <aAoHOrcZ5LlhEObL@l14>
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: BY1PEPF0001AE1B:EE_|DM4PR12MB6471:EE_
X-MS-Office365-Filtering-Correlation-Id: 3d695a31-bc0f-44c8-abf1-08dd86670f8e
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|7416014|376014|36860700013|1800799024|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?VVFUY3ZFT2tTYmdITFZ2UnpQaWJEVXdrbTZGQnJSMzR1QkNlcG1mUGpPQlZM?=
 =?utf-8?B?TS9kTEMrbWRCbmtURHE4WFl4L1dVeVY5dTd6bUU4Q1lidHREc3pwUHUyY0hy?=
 =?utf-8?B?K0xQSERyZWhVVEJVbm5HcStSejFaOTBuVk9tbElEellyMENNQ1lyOEFhaGxq?=
 =?utf-8?B?NEZOcVpKRHRadW4xbUpqUHRHVUFQQXRoeU45c3JOMzBpUlhyenpycE51S3dH?=
 =?utf-8?B?UFdlTWZTUTM0NU9WaHNLa29ZdldDRmZFbnNCeERZdVRkMHVodkw1ODJ3R2lQ?=
 =?utf-8?B?L1JiNjRiRnc5R1lwZldYK3JKVmw4NnJFRVkzMTNCa3l1NVRwVk15S256V1RS?=
 =?utf-8?B?RFdzNFlZL2FnOWJFdzBheWJESStTdzQ0YVAxNnE2ODhzMEl5amNIRjFqUGlD?=
 =?utf-8?B?cUR4YitaSUlmWFB4d1Y4ZkZrYi9GQitqaUlSUm9sVm8wQ3YvbURPT1JjbFdp?=
 =?utf-8?B?RmJJY3RUWWoxUks2U1VYejhTREcyQ0g2N0J3cnBKNklJQUgvU1N0T3B5dXNo?=
 =?utf-8?B?NGJZMGpnSXhnaWJaajNIK2I3aUtkc2hpa3c3TzF2TElDVTE5bURwVVlyWkFu?=
 =?utf-8?B?aDBOMS9Wa2h6YmRTTDdhSzFoSGxDL3lWYkszS1UxVms4cUpTcjVqVFczaWlO?=
 =?utf-8?B?cDVkN3RsT0xtWUNkK2hMcEtzSTljNzhFd3lHQ2Q5TTNmNm9SaGtYdUR1bjY3?=
 =?utf-8?B?TWF4Zk4xNEloQjQvTkRYcUh5Zm1RVFV4elp5RXUxV2dDeDIzZndxVStKZW95?=
 =?utf-8?B?RlNIaFdUMmxwNjV4VmRZOWVTcit0SnlJODJXakthTFlScGNQdFVRZXhHZElC?=
 =?utf-8?B?OWlBbUsrVmlXUXdPcjR0THdTLzYwOHNuOTdBWEswMzRtZy91cXkyOE43ZHA5?=
 =?utf-8?B?aFhML1hPS09uZHhNeEJhcitxL2JZeExLSkowRFZpNStwSjlhV1YrMkNiMjQ2?=
 =?utf-8?B?WjU1ZEU3MzZ6R2pZQk53czR6U2hXYUxyS0VFUXFmS1hnV1pSSGtxYXBDZEJ4?=
 =?utf-8?B?V2FVam81TXR0SWNsTDlieVNueTN1TG9KZkZHMmpSYVdBRkkwQmEyUlJyQnN2?=
 =?utf-8?B?SHRsTU1zTWVlZDc4aFRURTlERkxaS0x0Y2ozMWFtelNablNyanA5RGxKTU9y?=
 =?utf-8?B?N2RBUmJvRXV3a0dlVjAzUkdJTDNRc05rMG8yYVV2RWw4bTZIeC9mQ2xrQkdI?=
 =?utf-8?B?RGY0aU8xN0hKMGFzdS9EcXdGK3cwR3dXbmQ3dzNyajE1RlJ0N1oxaGRkL0VQ?=
 =?utf-8?B?aU1MbFRBLzJHeTVpMTNuZmNRZXBvNXVxdjNYUnNROTROdGVWYTJjR2Zjd1VQ?=
 =?utf-8?B?eVBkZGxQRUhwNVh0TWVMZWFHUThQRTFDWk1hWEhzRWtTbGZWdlRqa0ViMFdw?=
 =?utf-8?B?NFRHTlppcERtL0cvblVJTTg4UFM0V2VGZ1doYnpXQmZYK09HVnNhS3VVQkd0?=
 =?utf-8?B?NGZ4Rk9JS05yTGpzZndpdDhXMUIvd1k1ZlBLYURPWVF1UmlBZ1hpUWVvMmVZ?=
 =?utf-8?B?SFRUUHpYa05rajk2VE9VdXdoaklzeGU4dEoyTmtESkg5UkhTVjl1MkpTQml4?=
 =?utf-8?B?eGpranlSeHVPNVpUZDNOL3NiME10UmdILzB4ZjM0UmpvdlFRbGJlTWdmVjVU?=
 =?utf-8?B?cTl0OEY5cDgwcCtwc3FKaHhvbTJndzN4MnlQT0RvbzJUVHNJV1daaXRjcVNO?=
 =?utf-8?B?TEpWa3AwcVNlc05sMDY3alBMWUlxc3orcGdJc1VvSmpDRWNBTUIrZ0ozUXdR?=
 =?utf-8?B?OFF1aG5NNjhBMlM1Um80cDM5dDVIZHRaaXU2TFR1eGx2OHBYQ25oOXZWY0xp?=
 =?utf-8?B?Z2NkczIvZGxLbi9vQzBKZTIxWnVIZmE0dTNnTVBaNjVLdmtZWmk2bTZncjRT?=
 =?utf-8?B?MzhmbDlXSDRiVEpDUGJXeWFTbXdMSG9ldVZYb29UUU5oN1RzV1k0Vjc5WXBM?=
 =?utf-8?B?TkExZzd2SEZqdWQ1UFBMQUxPZlA1aWZubnc0ZG0xNDY4TXZxME1uM1VSRVdy?=
 =?utf-8?B?NGFQOFNGQzBuN3M1QWNUMnVpK2ROTTZJaHovSmMvV1NzSFVjY0l5MXhCUlN5?=
 =?utf-8?Q?/BEr5R?=
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)(7416014)(376014)(36860700013)(1800799024)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Apr 2025 15:12:15.5826
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 3d695a31-bc0f-44c8-abf1-08dd86670f8e
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:
	BY1PEPF0001AE1B.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB6471

On Thu Apr 24, 2025 at 10:41 AM BST, Anthony PERARD wrote:
> On Tue, Apr 08, 2025 at 02:35:20PM +0200, Juergen Gross wrote:
>> @@ -1903,10 +1894,7 @@ it may be useful to request a different one, like=
 UEFI.
>> =20
>>  =3Ditem B<rombios>
>> =20
>> -Loads ROMBIOS, a 16-bit x86 compatible BIOS. This is used by default
>> -when B<device_model_version=3Dqemu-xen-traditional>. This is the only B=
IOS
>> -option supported when B<device_model_version=3Dqemu-xen-traditional>. T=
his is
>> -the BIOS used by all previous Xen versions.
>> +Loads ROMBIOS, a 16-bit x86 compatible BIOS.
>
> This option is not valid anymore, libxl will complain with:
>     "qemu-xen does not support bios=3Drombios."

Sounds like a good time to remove bios=3Drombios altogether and strictly
support bios=3Dseabios only (plus the override).

>
> And I have no idea if it can work on not, I just know that XenServer
> still use RomBIOS with a patched QEMU.

Not XCP-ng? Regardless, none of them do so via xl or libxl.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Mon Apr 28 15:15:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 15:15:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.970807.1359383 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9QCe-00044a-57; Mon, 28 Apr 2025 15:15:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 970807.1359383; Mon, 28 Apr 2025 15:15: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 1u9QCe-00044T-2R; Mon, 28 Apr 2025 15:15:28 +0000
Received: by outflank-mailman (input) for mailman id 970807;
 Mon, 28 Apr 2025 15:15: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=WylS=XO=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1u9QCc-00044I-T0
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 15:15: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 9647bea1-2443-11f0-9ffb-bf95429c2676;
 Mon, 28 Apr 2025 17:15:15 +0200 (CEST)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-ace98258d4bso285141566b.1
 for <xen-devel@lists.xenproject.org>; Mon, 28 Apr 2025 08:15:15 -0700 (PDT)
Received: from ?IPV6:2003:e5:870f:e000:6c64:75fd:2c51:3fef?
 (p200300e5870fe0006c6475fd2c513fef.dip0.t-ipconnect.de.
 [2003:e5:870f:e000:6c64:75fd:2c51:3fef])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-ace6ecf8f3dsm625384566b.110.2025.04.28.08.15.13
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 28 Apr 2025 08:15: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: 9647bea1-2443-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745853315; x=1746458115; 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=bacVE9/OrhxlPoWqA2TQ2cLpPUSmkdlr6FpjXGtTg1A=;
        b=SNMMgy2/H1XaagReTQ7zpR77LQ1LUgkXWAwqugobkAs2zaU+HxfUSEVic+VbU30tHC
         I0MMSZEqA8BMbqWSF20k6RJh6+pD8FcNIpSdYUZapIAlUykNpZh2jW/uJWT3bvMaWYL6
         MTTuZXa1YyGZXzmUYqoOZCi3rn1QB7SJHtdV1JZ/pPE9nRULwN9+/YSQ+I5qL9feoLDU
         DKXnmQA/y2JgXCbzFTcUxgVNLwCVx9sCvGgj2gHD1Bi8xwDJotFf/AnbFFG85EjPvYZe
         6tU94vBCX6IDZWyMH8jbBJtqPLjmD+3+7BNMou13Oe8m6Hl3ciEma/sXuzdJu0uavYRV
         vd3g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745853315; x=1746458115;
        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=bacVE9/OrhxlPoWqA2TQ2cLpPUSmkdlr6FpjXGtTg1A=;
        b=OizAx8wi1WY/U/Cetee8rGuJe1cmZOWH7gE0hO3adzq/HMdJcuzj3O/A4HknSkHi85
         0O4t2f3060XtjGU1o6eJvQICkhEUs0gHFraO30qa9swxYAi8WXj+mIMlUZuY/BnVrayT
         4K4J/3RuUKVJSPVmC+jToKvBXdYkyfXC7vhg8zo/RBPMgU5jMNd/Nd4BYcrjTG7twh42
         37cBZsFcTjpvFFaH4Jn4MDV1hjQyWyQ6EEdB6omMhkg6VUK9NxN+HXS2PJWPZmndnYUx
         dkmToHJCMoBxeyDPNZQvVGVNBkYxDgjwnjtp2MummK97gMhkodg0lZDCrVtDLL+93MC4
         Zdiw==
X-Gm-Message-State: AOJu0Yx3BZEcgSjjjuvlzbEiAkADh/DUWAkDlWqojwhUkC/9HuxHN02W
	x9n4ZkeS88BJDvnpbwfumujkhtSbhvMrLm+dbrhKoa42phLUPwbQjMlSONc7ogc=
X-Gm-Gg: ASbGncutjiVAiFct/YT6/JQE2/o7lak7LZ0gsDRPzzBTI7S5EIhz89NPzOEmef63ZqA
	8lrOJKpgnVXTxhnXhL7NVVNrlJoe+jbeKYs0AOBbv9dJkpavPbI67ehMUbpXdiIOhV0MsiLnr34
	ky7wG9Ua/T87SMqsXfYxVZwpRbEfH0IBcpS22GHJDQLDLguRMjyA+OhiquKByX6jinrnAyCygIu
	ZSAQNySXwZYeO8NmGhIVEdTjKLP32MXy2DPO+w4DH6Vlal6EONyWegzlo+HfQCXZ38R77qlSIk2
	teFUM8A09qBKBkxE8DheglNOSnNdYbMer69hvFD7lm2QK/oVqgKHdBM1EbdkJ3fy5jTpQmb1fUy
	dEPVSC9W60itlwexXTwfYXOtR8qVPIhIsoiLwvetJKxN7v1wuJydvakHF0U6cDQNsVg==
X-Google-Smtp-Source: AGHT+IHh50gHZvUcOFF0n8DCbzyVUYvqWA9D7Y5fz1urpLPdKzMxQTxT96Oo09xZAEHFu4oDiDT9mw==
X-Received: by 2002:a17:907:7208:b0:ace:3c0b:1965 with SMTP id a640c23a62f3a-acec4eadb28mr9721266b.39.1745853314572;
        Mon, 28 Apr 2025 08:15:14 -0700 (PDT)
Message-ID: <198ec36e-15e3-491a-bd15-d440d9d578da@suse.com>
Date: Mon, 28 Apr 2025 17:15:13 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/6] docs: remove qemu-traditional support from
 documentation
To: Alejandro Vallejo <agarciav@amd.com>,
 Anthony PERARD <anthony@xenproject.org>
Cc: xen-devel@lists.xenproject.org, Anthony PERARD
 <anthony.perard@vates.tech>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Xen-devel <xen-devel-bounces@lists.xenproject.org>
References: <20250408123526.14613-1-jgross@suse.com>
 <20250408123526.14613-3-jgross@suse.com> <aAoHOrcZ5LlhEObL@l14>
 <D9IDA8NYNZUG.2Z1IGCDV4YI5Y@amd.com>
Content-Language: en-US
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
Autocrypt: addr=jgross@suse.com; keydata=
 xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOB
 ycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJve
 dYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJ
 NwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvx
 XP3FAp2pkW0xqG7/377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEB
 AAHNH0p1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT7CwHkEEwECACMFAlOMcK8CGwMH
 CwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRCw3p3WKL8TL8eZB/9G0juS/kDY9LhEXseh
 mE9U+iA1VsLhgDqVbsOtZ/S14LRFHczNd/Lqkn7souCSoyWsBs3/wO+OjPvxf7m+Ef+sMtr0
 G5lCWEWa9wa0IXx5HRPW/ScL+e4AVUbL7rurYMfwCzco+7TfjhMEOkC+va5gzi1KrErgNRHH
 kg3PhlnRY0Udyqx++UYkAsN4TQuEhNN32MvN0Np3WlBJOgKcuXpIElmMM5f1BBzJSKBkW0Jc
 Wy3h2Wy912vHKpPV/Xv7ZwVJ27v7KcuZcErtptDevAljxJtE7aJG6WiBzm+v9EswyWxwMCIO
 RoVBYuiocc51872tRGywc03xaQydB+9R7BHPzsBNBFOMcBYBCADLMfoA44MwGOB9YT1V4KCy
 vAfd7E0BTfaAurbG+Olacciz3yd09QOmejFZC6AnoykydyvTFLAWYcSCdISMr88COmmCbJzn
 sHAogjexXiif6ANUUlHpjxlHCCcELmZUzomNDnEOTxZFeWMTFF9Rf2k2F0Tl4E5kmsNGgtSa
 aMO0rNZoOEiD/7UfPP3dfh8JCQ1VtUUsQtT1sxos8Eb/HmriJhnaTZ7Hp3jtgTVkV0ybpgFg
 w6WMaRkrBh17mV0z2ajjmabB7SJxcouSkR0hcpNl4oM74d2/VqoW4BxxxOD1FcNCObCELfIS
 auZx+XT6s+CE7Qi/c44ibBMR7hyjdzWbABEBAAHCwF8EGAECAAkFAlOMcBYCGwwACgkQsN6d
 1ii/Ey9D+Af/WFr3q+bg/8v5tCknCtn92d5lyYTBNt7xgWzDZX8G6/pngzKyWfedArllp0Pn
 fgIXtMNV+3t8Li1Tg843EXkP7+2+CQ98MB8XvvPLYAfW8nNDV85TyVgWlldNcgdv7nn1Sq8g
 HwB2BHdIAkYce3hEoDQXt/mKlgEGsLpzJcnLKimtPXQQy9TxUaLBe9PInPd+Ohix0XOlY+Uk
 QFEx50Ki3rSDl2Zt2tnkNYKUCvTJq7jvOlaPd6d/W0tZqpyy7KVay+K4aMobDsodB3dvEAs6
 ScCnh03dDAFgIq5nsB11j3KPKdVoPlfucX2c7kGNH+LUMbzqV6beIENfNexkOfxHfw==
In-Reply-To: <D9IDA8NYNZUG.2Z1IGCDV4YI5Y@amd.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------a2dnIdEuwvnhRyiQxP9xf8t3"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------a2dnIdEuwvnhRyiQxP9xf8t3
Content-Type: multipart/mixed; boundary="------------x07PnmailfT0AMP9Nqa3zTMo";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Alejandro Vallejo <agarciav@amd.com>,
 Anthony PERARD <anthony@xenproject.org>
Cc: xen-devel@lists.xenproject.org, Anthony PERARD
 <anthony.perard@vates.tech>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Xen-devel <xen-devel-bounces@lists.xenproject.org>
Message-ID: <198ec36e-15e3-491a-bd15-d440d9d578da@suse.com>
Subject: Re: [PATCH v2 2/6] docs: remove qemu-traditional support from
 documentation
References: <20250408123526.14613-1-jgross@suse.com>
 <20250408123526.14613-3-jgross@suse.com> <aAoHOrcZ5LlhEObL@l14>
 <D9IDA8NYNZUG.2Z1IGCDV4YI5Y@amd.com>
In-Reply-To: <D9IDA8NYNZUG.2Z1IGCDV4YI5Y@amd.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=

--------------x07PnmailfT0AMP9Nqa3zTMo
Content-Type: multipart/mixed; boundary="------------TS7orJfXgfY00xjsobxt25EX"

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

T24gMjguMDQuMjUgMTc6MTIsIEFsZWphbmRybyBWYWxsZWpvIHdyb3RlOg0KPiBPbiBUaHUg
QXByIDI0LCAyMDI1IGF0IDEwOjQxIEFNIEJTVCwgQW50aG9ueSBQRVJBUkQgd3JvdGU6DQo+
PiBPbiBUdWUsIEFwciAwOCwgMjAyNSBhdCAwMjozNToyMFBNICswMjAwLCBKdWVyZ2VuIEdy
b3NzIHdyb3RlOg0KPj4+IEBAIC0xOTAzLDEwICsxODk0LDcgQEAgaXQgbWF5IGJlIHVzZWZ1
bCB0byByZXF1ZXN0IGEgZGlmZmVyZW50IG9uZSwgbGlrZSBVRUZJLg0KPj4+ICAgDQo+Pj4g
ICA9aXRlbSBCPHJvbWJpb3M+DQo+Pj4gICANCj4+PiAtTG9hZHMgUk9NQklPUywgYSAxNi1i
aXQgeDg2IGNvbXBhdGlibGUgQklPUy4gVGhpcyBpcyB1c2VkIGJ5IGRlZmF1bHQNCj4+PiAt
d2hlbiBCPGRldmljZV9tb2RlbF92ZXJzaW9uPXFlbXUteGVuLXRyYWRpdGlvbmFsPi4gVGhp
cyBpcyB0aGUgb25seSBCSU9TDQo+Pj4gLW9wdGlvbiBzdXBwb3J0ZWQgd2hlbiBCPGRldmlj
ZV9tb2RlbF92ZXJzaW9uPXFlbXUteGVuLXRyYWRpdGlvbmFsPi4gVGhpcyBpcw0KPj4+IC10
aGUgQklPUyB1c2VkIGJ5IGFsbCBwcmV2aW91cyBYZW4gdmVyc2lvbnMuDQo+Pj4gK0xvYWRz
IFJPTUJJT1MsIGEgMTYtYml0IHg4NiBjb21wYXRpYmxlIEJJT1MuDQo+Pg0KPj4gVGhpcyBv
cHRpb24gaXMgbm90IHZhbGlkIGFueW1vcmUsIGxpYnhsIHdpbGwgY29tcGxhaW4gd2l0aDoN
Cj4+ICAgICAgInFlbXUteGVuIGRvZXMgbm90IHN1cHBvcnQgYmlvcz1yb21iaW9zLiINCj4g
DQo+IFNvdW5kcyBsaWtlIGEgZ29vZCB0aW1lIHRvIHJlbW92ZSBiaW9zPXJvbWJpb3MgYWx0
b2dldGhlciBhbmQgc3RyaWN0bHkNCj4gc3VwcG9ydCBiaW9zPXNlYWJpb3Mgb25seSAocGx1
cyB0aGUgb3ZlcnJpZGUpLg0KDQpGaW5lIHdpdGggbWUuDQoNCkJ1dCBwcm9iYWJseSB3ZSBz
aG91bGQgTk9UIGRyb3AgYnVpbGRpbmcgUm9tQklPUywgcmlnaHQ/DQoNCj4+IEFuZCBJIGhh
dmUgbm8gaWRlYSBpZiBpdCBjYW4gd29yayBvbiBub3QsIEkganVzdCBrbm93IHRoYXQgWGVu
U2VydmVyDQo+PiBzdGlsbCB1c2UgUm9tQklPUyB3aXRoIGEgcGF0Y2hlZCBRRU1VLg0KPiAN
Cj4gTm90IFhDUC1uZz8gUmVnYXJkbGVzcywgbm9uZSBvZiB0aGVtIGRvIHNvIHZpYSB4bCBv
ciBsaWJ4bC4NCg0KUmlnaHQuDQoNCg0KSnVlcmdlbg0K
--------------TS7orJfXgfY00xjsobxt25EX
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-----

--------------TS7orJfXgfY00xjsobxt25EX--

--------------x07PnmailfT0AMP9Nqa3zTMo--

--------------a2dnIdEuwvnhRyiQxP9xf8t3
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/Ey8FAmgPm4EFAwAAAAAACgkQsN6d1ii/Ey+x
QwgAhPuecb4+6alra5ON4XwGQaCjT/mNfS8ieLv19U8cM7QYiBQb7gTk3pvN/ezhnodBuIxIa/s+
OXTaCLJuN1MZCdRDq3s7okfkwO5lxZIuN42x/GQ4dXSPS5GTr9Okf+AvJqMqondnJvYbEq+fRV6E
518z+EIm7H4j5fNZeK5w6CM7z/OW00shYNOk1agaUeRY5AS7lL6lAwHgtSe9QO+wccmLfWJOHIYf
9L5f/mWr7x2fg7yQhckBmx/nB2W3BazcbnJcUxcy0Wpxq33I49LAtQd9ezM1R7DcXISgpwweyVy1
XoGr8lYy6y3cuZ4CmC3nlkviIAkoYWEH7Cgz24vhqg==
=4Tte
-----END PGP SIGNATURE-----

--------------a2dnIdEuwvnhRyiQxP9xf8t3--


From xen-devel-bounces@lists.xenproject.org Mon Apr 28 15:32:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 15:32:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.970826.1359394 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9QSg-0007K7-J8; Mon, 28 Apr 2025 15:32:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 970826.1359394; Mon, 28 Apr 2025 15:32: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 1u9QSg-0007K0-GR; Mon, 28 Apr 2025 15:32:02 +0000
Received: by outflank-mailman (input) for mailman id 970826;
 Mon, 28 Apr 2025 15: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=5hYN=XO=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u9QSg-0007Jt-7w
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 15:32:02 +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 ed71cf34-2445-11f0-9eb4-5ba50f476ded;
 Mon, 28 Apr 2025 17:32:00 +0200 (CEST)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-ace98258d4bso288014466b.1
 for <xen-devel@lists.xenproject.org>; Mon, 28 Apr 2025 08:32:00 -0700 (PDT)
Received: from [10.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-5f7011fc36dsm6033481a12.4.2025.04.28.08.31.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 28 Apr 2025 08:31: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: ed71cf34-2445-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745854320; x=1746459120; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=/EVK4aeeAU5wketDzzKeZDkcBBqBvF7vK69nq50GIzs=;
        b=VZ5KPPPbtYV4/kWidlnSG5rCYjwSq0hi3EHNFz814iJ2M/hyuyX6kl6fTgblIfuuFk
         SC3LpdMOPRkFk4SfOEofA+x9RFmeOyenEwFzSYj43jUeufQ33xz6nD9V9iKfewdlJvwi
         O81RXJGxAQapvCOvXX5wcFp0Gf+hj63fBo2sL8oJuQs1R0CEoFrVdt4SbxwSb0Xvz8A5
         rDpIkI8JGBgBR1kFf3EVBjx+1wAOj+w1avnffk8GDlfuPPKSqCJ1F5m4E2QwW6epkW7+
         fpxcQMU+zxL/Lb9O22fdcINWKHkPfM3W506y0Fw8P9n4cQkw6PQKykpBKwxzJrHEEETP
         6m7w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745854320; x=1746459120;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=/EVK4aeeAU5wketDzzKeZDkcBBqBvF7vK69nq50GIzs=;
        b=Xdee/+d4uneqStUtmCiXE7Et8pXdsdzc82wO9jQrIwpAvw22d+2/3d7tcfNw+K76jO
         4ZLSYEnOALhOk8ivZKX1QwU45YeaPYRcgG4KPl0qC3XbLK/xbWYIJNfOPGsmxzxmSel5
         PuP9xP82rnuDz2scl9ZpYn1mLDqH0FUNTkrIPEiRtGB2WnWWWF/nTSeKjq4kptjyPpEv
         B5JdwQTw5lHRiZern3n80rlgeAJbfe6UM6MKS256RW0U8mki+hco+KGOAhvyBParcmMu
         4LU72J1FgMdq/lO3bm7RN4DBGlZyE83h+ZfQBCzNEsiqzYiK5uY+0FkqxlcFf9s6fGhT
         FkaQ==
X-Forwarded-Encrypted: i=1; AJvYcCW5vS3gH59Hp+U5IYFgv75K8zj64RYdBDmtXY5XcuKpF54lbujCAHcZOKKZmsrklyvnCz+a7M0NH00=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz8XJceR/qso4HsyVENZbuGRMi0PuijPvzxXrIPvKGZdy4N9Bwf
	JyUkAOYP5mQlmplPbFwRSyYQRAoh8wbdU5vGvgzKqkalHtdAQMw7aOxWpMQ/FzTCUHxbdsjJJdg
	=
X-Gm-Gg: ASbGncu4xgcX8jBjVzrmAOitBH1lIcCMXefaVIUJIlacgTtZyEwF40T9ioPOJ6S0mUe
	Crb6zrEb7VLlYdcVINLDlxjUdy20pe6gCAnBo/S0cR1T9i2vRMoGRlqQSgVnigtPk7S5GdMam4i
	bMDMPsdJIqwq7rTEJg19ZlExL/FmZ1p+qldjwjnotlGQZKqUZD4poG0hoHLJVdiAvn6/DDcFkbM
	Kfp8POP2wWs+JW17wewwjMyFLxbJedLdNJJiaPUzQisr2K8fKBd3EdOvQrHXTd/Cvi36Hivog9I
	W/iDcVPl6Z1ojqy5LqSUC/d7ZvDrB9uqNbhW5hzEq9AEoqUtvPGXdKFKTehjO6GXY7ZlDXr6ZM9
	XZsUMHdCCV7I/uSWruqizOGGlpA==
X-Google-Smtp-Source: AGHT+IFF1+KeWvQtRcAKdNNxrWF+kPJC2HgYYMNoq20EzlITiOvjeWiptEa2bumAChqEMRJtYVNx4A==
X-Received: by 2002:a17:906:71c9:b0:ace:c50a:f87 with SMTP id a640c23a62f3a-acec50a0fefmr9341666b.46.1745854320016;
        Mon, 28 Apr 2025 08:32:00 -0700 (PDT)
Message-ID: <829e710d-d257-455a-b4fc-1746119609ef@suse.com>
Date: Mon, 28 Apr 2025 17:31:58 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 02/15] xen/cpufreq: extract _PSD info from "struct
 xen_processor_performance"
To: Penny Zheng <Penny.Zheng@amd.com>
Cc: ray.huang@amd.com, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20250414074056.3696888-1-Penny.Zheng@amd.com>
 <20250414074056.3696888-3-Penny.Zheng@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20250414074056.3696888-3-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 14.04.2025 09:40, Penny Zheng wrote:
> --- a/xen/drivers/cpufreq/cpufreq.c
> +++ b/xen/drivers/cpufreq/cpufreq.c
> @@ -191,9 +191,31 @@ int cpufreq_limit_change(unsigned int cpu)
>      return __cpufreq_set_policy(data, &policy);
>  }
>  
> -int cpufreq_add_cpu(unsigned int cpu)
> +static int get_psd_info(uint32_t init, unsigned int cpu,

The 1st parameter seems unnecessary: You access processor_pminfo[cpu]
below anyway, so you could as well use ...

> +                        uint32_t *shared_type,
> +                        struct xen_psd_package *domain_info)
>  {
>      int ret = 0;
> +
> +    switch ( init )

... processor_pminfo[cpu]->init here.

> +    {
> +    case XEN_PX_INIT:
> +        if ( shared_type )
> +            *shared_type = processor_pminfo[cpu]->perf.shared_type;
> +        if ( domain_info )
> +            *domain_info = processor_pminfo[cpu]->perf.domain_info;

Does this need to be a structure copy? Can't you hand back just a pointer,
with the function parameter being const struct xen_psd_package **?

> +        break;
> +    default:

Nit: Blank line please between non-fall-through case blocks.

> --- a/xen/include/public/platform.h
> +++ b/xen/include/public/platform.h
> @@ -440,6 +440,11 @@ struct xen_psd_package {
>      uint64_t num_processors;
>  };
>  
> +/* Coordination type value */
> +#define XEN_CPUPERF_SHARED_TYPE_HW   1 /* HW does needed coordination */
> +#define XEN_CPUPERF_SHARED_TYPE_ALL  2 /* All dependent CPUs should set freq */
> +#define XEN_CPUPERF_SHARED_TYPE_ANY  3 /* Freq can be set from any dependent CPU */
> +
>  struct xen_processor_performance {
>      uint32_t flags;     /* flag for Px sub info type */
>      uint32_t platform_limit;  /* Platform limitation on freq usage */
> @@ -449,10 +454,7 @@ struct xen_processor_performance {
>      XEN_GUEST_HANDLE(xen_processor_px_t) states;
>      struct xen_psd_package domain_info;
>      /* Coordination type of this processor */
> -#define XEN_CPUPERF_SHARED_TYPE_HW   1 /* HW does needed coordination */
> -#define XEN_CPUPERF_SHARED_TYPE_ALL  2 /* All dependent CPUs should set freq */
> -#define XEN_CPUPERF_SHARED_TYPE_ANY  3 /* Freq can be set from any dependent CPU */
> -    uint32_t shared_type;
> +    uint32_t shared_type; /* XEN_CPUPERF_SHARED_TYPE_xxx */
>  };
>  typedef struct xen_processor_performance xen_processor_performance_t;
>  DEFINE_XEN_GUEST_HANDLE(xen_processor_performance_t);

What's this movement about? In the public interface nothing changes?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Apr 28 15:32:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 15:32:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.970828.1359404 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9QSu-0007cP-Qx; Mon, 28 Apr 2025 15:32:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 970828.1359404; Mon, 28 Apr 2025 15:32:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9QSu-0007cG-OJ; Mon, 28 Apr 2025 15:32:16 +0000
Received: by outflank-mailman (input) for mailman id 970828;
 Mon, 28 Apr 2025 15:32:15 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=A+1Z=XO=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u9QSt-0007bQ-GD
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 15:32:15 +0000
Received: from NAM11-CO1-obe.outbound.protection.outlook.com
 (mail-co1nam11on20629.outbound.protection.outlook.com
 [2a01:111:f403:2416::629])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f38ea1e4-2445-11f0-9ffb-bf95429c2676;
 Mon, 28 Apr 2025 17:32:12 +0200 (CEST)
Received: from MW2PR16CA0043.namprd16.prod.outlook.com (2603:10b6:907:1::20)
 by SN7PR12MB6885.namprd12.prod.outlook.com (2603:10b6:806:263::8) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.29; Mon, 28 Apr
 2025 15:32:07 +0000
Received: from CY4PEPF0000EDD6.namprd03.prod.outlook.com
 (2603:10b6:907:1:cafe::a6) by MW2PR16CA0043.outlook.office365.com
 (2603:10b6:907:1::20) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.33 via Frontend Transport; Mon,
 28 Apr 2025 15:32:06 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CY4PEPF0000EDD6.mail.protection.outlook.com (10.167.241.202) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8678.33 via Frontend Transport; Mon, 28 Apr 2025 15:32:06 +0000
Received: from localhost (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; Mon, 28 Apr
 2025 10:32:01 -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: f38ea1e4-2445-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=aUjpN+RjZUnnM+b0Ye57E7ipDxZQS4egQKDxPzAoveOLYJ2PUnDDiZcj5mC4MZ+102rmtRfoDEf5++cAIM+1msx/uRtdVNMMOJrmY6hgNhghE/j6lpcMradednfcTQi862FiL+PzXrLcOmdwfZa1ba37UdM6mUAxCdfPe4X2EwmHJTX+ELSUvyydYbsbQjdYn4IjBUBQEDaU7AdpTt+5rQbO8TEA/Iv+Njl7qOWVP7Fpz0+Hu8rQVOY0uWdmxjfP4d+C5ZZvs8jDACbOkPr2O7sFWxvqmJKSkcqn6LAsTNgF4H5xkSENPtcWbjqvbFvHYjru9j2+0wKHJvRvsnH9ow==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=F1MvL+yIuix3zjIxsZ59EzJqGTka7oPPVDHjEUjSTg8=;
 b=nPaYgfBbE2HZ8+0vXib8HbIE/WlcBgQelDnowGcDI2V6mJr1ZUwTUaFQMw8Y+pUD4F6pUFo1bGfdMY9BlPu1ByVeEIlVGSLI0filZsc2X/xP6YF1Jx9dZ28QvhGgxtEA00GVyS8nQXiUomaXJtmxw1QL2PbssErCH1AMD5aH5gwMPxGuL4qRzG+lRoOxn4wnWfz2oX9lxewdWuBDfRgbl0+FfIe21kctH154KRRbqAqa+nc2eH2ZGqMDEAkX1vdl4s4nru7ZQ0ZRNfOrE3pAd7/dlN9wboySRLo4K0ZmXXJS8h0vD/bzJYnFa313i54lLeskdFMcjBut0uMpDZsdJg==
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=F1MvL+yIuix3zjIxsZ59EzJqGTka7oPPVDHjEUjSTg8=;
 b=Ncq1mUA6m4BLEbp/IMDrbjjgKI6wrs8mREtM0TEEyAseUac+9UH3QG4Twi7dvnFTRhkTDHWB2BvrZAJwPnzCdLWTS69CEa4d7Q5SPX/1rfJ0eUFEA6XZ9GcBtBO81mcqlUL8QjDhpHgK0c8njb5A7y6EeYyScSeQukf9zWOK2zg=
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
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Mon, 28 Apr 2025 16:31:59 +0100
Message-ID: <D9IDPE8Q5XKK.2CSC9N1BMSU2Y@amd.com>
To: =?utf-8?q?J=C3=BCrgen_Gro=C3=9F?= <jgross@suse.com>, Anthony PERARD
	<anthony@xenproject.org>
CC: <xen-devel@lists.xenproject.org>, Anthony PERARD
	<anthony.perard@vates.tech>, Andrew Cooper <andrew.cooper3@citrix.com>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, "Julien
 Grall" <julien@xen.org>, =?utf-8?q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Xen-devel <xen-devel-bounces@lists.xenproject.org>
Subject: Re: [PATCH v2 2/6] docs: remove qemu-traditional support from
 documentation
From: Alejandro Vallejo <agarciav@amd.com>
X-Mailer: aerc 0.20.1
References: <20250408123526.14613-1-jgross@suse.com>
 <20250408123526.14613-3-jgross@suse.com> <aAoHOrcZ5LlhEObL@l14>
 <D9IDA8NYNZUG.2Z1IGCDV4YI5Y@amd.com>
 <198ec36e-15e3-491a-bd15-d440d9d578da@suse.com>
In-Reply-To: <198ec36e-15e3-491a-bd15-d440d9d578da@suse.com>
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: CY4PEPF0000EDD6:EE_|SN7PR12MB6885:EE_
X-MS-Office365-Filtering-Correlation-Id: c9e3969d-f7f0-47f7-d906-08dd8669d586
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|36860700013|376014|7416014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?L3I1cTl2SmxFTXUyRjZvN3cxNmZxUDdMMEdsMTBRREQ4SUY5dVJ0ZDNxdUZJ?=
 =?utf-8?B?NGMzdHZnN3BKOFQ3RUdnVXUzNWNtcms3RXE1bExlMmZmdzZvTjVqU0F5dG5O?=
 =?utf-8?B?bGFQbDVZZ2ZBNER2aE9MQlliVFBJeFhVK0dLdFkxMUl4aGtWeUEwWEhJUEZO?=
 =?utf-8?B?b2VHRXNkcVZMaVhsWGJ4eGVhTVhZVE5aMGREZnpscllwUGFYNkZKMEtHeUpj?=
 =?utf-8?B?NUIzazdFc2NOaXIxL1pWbkphelVFcm82WFF5Y0lPSEpQTmNkNHdzeWV3aGha?=
 =?utf-8?B?dnJ2eXlpaW93Y0RRbTBlOUpxb283UXcvcnlCQUJSR2VybHY4R3V0M2RDZy9Z?=
 =?utf-8?B?S1Yrc0U1M2lvRzNQSGxZWTNadmM4MVZrWmpJbjVhY0pBbHFlQ2pQQ1VqbTZI?=
 =?utf-8?B?dnpJNVRLTFA0VXhWZ1Y2WFBoTDMxN1pxNUtvRit5WWNqdmR6TnBqT0RxZE5O?=
 =?utf-8?B?OTBhekh0dXRybmlLYUpNOGRUOG1rLzNxSXdIU2NwaVZ0UG91cDdQUmNzUU5G?=
 =?utf-8?B?MVJ5QmlLc0tPbDJ1U2VvMDVZVXl0My9CTm8yVVBkamhmZmhsZW4vQmVscGpT?=
 =?utf-8?B?bDJ0NE5nKzB6UVF3enlURGRMVmZrcVVzZ1FqaVYxclUwQ01jMS9RTTVpRTQx?=
 =?utf-8?B?TURhTk9TbHZzMmpXVUJwb3QwZjRWVE1oYktiN3lCUlhkSm51NlNvTUt3Yk1V?=
 =?utf-8?B?UGwyK1BjME1FSkh6Qkc4cmU2eXk0OExPeWRDNTVQMm9NaktQSEdVTkJnbkxk?=
 =?utf-8?B?bno5aGVTOXFGT1B2d3BMSGpnOXBWMXFEOFhjSThtUTV4c0tKOXh5SnJYU0lF?=
 =?utf-8?B?WmZpc1dvYTM4VW96ZnQ3SzU0MkgzZmFYOWIvcGYycWpNbHhFSXRxQ1pDOTEz?=
 =?utf-8?B?d2dIc0t5cXpVa2FuelFNbjY3VUF2dVF1YkxxWVM4d253OS9oM1NYaUJLN1Vz?=
 =?utf-8?B?Y2FYWVo3ckszSUVDaDlTbUo4eDBZbGhkYTNnRGVZRXZ2M3FDQmQxV29yaGF0?=
 =?utf-8?B?dHQ0ajhHU2h2dGpFM3V2TkN3aXNETjlOeHoxYlBienRBeUU3QnB1dW5BTEND?=
 =?utf-8?B?OWRBYnRWTTViVW5pdFdWNnhFekNIMUlRa29nQXJaVE5Nb1dFTm1GUi9NT1pU?=
 =?utf-8?B?N01XaXRIVy9neVQvcURiU3FDdUlmbENKQ0xHZDdBNmY0ZDRaOU12YUxTbTNm?=
 =?utf-8?B?R3pWV1N3TDJCek55ZGN4QkF4bVQ2bDEzK21yU21YQ2lUczE0UnZHQy82YU9B?=
 =?utf-8?B?L3N0YzhRT1IwaHp0V2s2VVFVeTVFOFI1L01NbTVDSGpiL2ZGR00zVHBVdWhU?=
 =?utf-8?B?SmNrWEtocUo0WGZTQlhld25tanZOOXV2cnhjZEtocnJJYkhmSmI3OXB4NGpp?=
 =?utf-8?B?WlBzK3dNL3RQZ3ZGTXJnYUVPTVlidXJSM1YxV3N4WDZYVWhQVWNPdU5Sd3V0?=
 =?utf-8?B?bTdFK1d1VWJNZkEzdHVQaVljRnBnU0ZocUdYcFZvMVF4ZkN6THBzdCt5ZnM1?=
 =?utf-8?B?clBPNjFGV2hINUo0SW5PdnJVb2FYa2ZkdFZ1eWx4WVUyRUlycStnT2t4MnFi?=
 =?utf-8?B?aTFwdnB6UHlPQmJ3Ry82K25JVGpvRmYrc0Z6aG9ycnd3QzNLZ0t4dkMyendF?=
 =?utf-8?B?aUZhUlJQdnN4cmpKY1BwU1dERnRLME5pc1cvN1pESFNVbVlIbG9zaTE0cDBB?=
 =?utf-8?B?NDRQZG5xNDdkZE9tQ0doWWx0NUtyVG5Wem92SnVnSlJEMVpDc1QrZE1GUnFH?=
 =?utf-8?B?V09RNTM1Z3duU0wycDZzNUQyWnVOY3JBdC8yL2dyeXhOYUdyeUt1WUhPZ0dG?=
 =?utf-8?B?QnVzaTFMWnI3WkIrUDJhYkQ5WWlJd3hBM3V1UExIeDhXUE81L1VOYndvblFB?=
 =?utf-8?B?V1dBdUpxQmZnMkhUa3UyT0diQjdIRyszTWJocGpsT25XQ2dzT0NzV3VEYkw3?=
 =?utf-8?B?UWo4aDdnemhqOUtGRklwQjkvRzVYUklhSkRuYzJkZndwYzBJZUQ5K0JzR283?=
 =?utf-8?B?YnpwSVNTZ3loWThvY1ZZN1VCdWxHZ2d6S1BNZm1DUGliZnNUb1FMeGd1SGpV?=
 =?utf-8?Q?MfH9LL?=
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)(7416014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Apr 2025 15:32:06.6990
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: c9e3969d-f7f0-47f7-d906-08dd8669d586
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:
	CY4PEPF0000EDD6.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR12MB6885

On Mon Apr 28, 2025 at 4:15 PM BST, J=C3=BCrgen Gro=C3=9F wrote:
> On 28.04.25 17:12, Alejandro Vallejo wrote:
>> On Thu Apr 24, 2025 at 10:41 AM BST, Anthony PERARD wrote:
>>> On Tue, Apr 08, 2025 at 02:35:20PM +0200, Juergen Gross wrote:
>>>> @@ -1903,10 +1894,7 @@ it may be useful to request a different one, li=
ke UEFI.
>>>>  =20
>>>>   =3Ditem B<rombios>
>>>>  =20
>>>> -Loads ROMBIOS, a 16-bit x86 compatible BIOS. This is used by default
>>>> -when B<device_model_version=3Dqemu-xen-traditional>. This is the only=
 BIOS
>>>> -option supported when B<device_model_version=3Dqemu-xen-traditional>.=
 This is
>>>> -the BIOS used by all previous Xen versions.
>>>> +Loads ROMBIOS, a 16-bit x86 compatible BIOS.
>>>
>>> This option is not valid anymore, libxl will complain with:
>>>      "qemu-xen does not support bios=3Drombios."
>>=20
>> Sounds like a good time to remove bios=3Drombios altogether and strictly
>> support bios=3Dseabios only (plus the override).
>
> Fine with me.
>
> But probably we should NOT drop building RomBIOS, right?

On staging/master? I don't think we ought to waste cycles rebuilding it.
It'd only be a dependency for stable trees, so shouldn't it be built
there instead? Then by the time we don't support it in stable either
(because they all went EOL) it'd naturally just stop being built.

The mechanics of how that would work I'm not sure. We have per
stable-tree pipelines. Do they build everything, Anthony?

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Mon Apr 28 15:36:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 15:36:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.970852.1359414 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9QWn-0008OA-Aa; Mon, 28 Apr 2025 15:36:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 970852.1359414; Mon, 28 Apr 2025 15:36: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 1u9QWn-0008O3-71; Mon, 28 Apr 2025 15:36:17 +0000
Received: by outflank-mailman (input) for mailman id 970852;
 Mon, 28 Apr 2025 15:36: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=WylS=XO=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1u9QWl-0008Ns-RK
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 15:36:15 +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 84086b7f-2446-11f0-9eb4-5ba50f476ded;
 Mon, 28 Apr 2025 17:36:13 +0200 (CEST)
Received: by mail-ej1-x634.google.com with SMTP id
 a640c23a62f3a-acbb48bad09so916827266b.0
 for <xen-devel@lists.xenproject.org>; Mon, 28 Apr 2025 08:36:13 -0700 (PDT)
Received: from ?IPV6:2003:e5:870f:e000:6c64:75fd:2c51:3fef?
 (p200300e5870fe0006c6475fd2c513fef.dip0.t-ipconnect.de.
 [2003:e5:870f:e000:6c64:75fd:2c51:3fef])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-ace6ecf9a27sm646515666b.109.2025.04.28.08.36.12
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 28 Apr 2025 08:36: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: 84086b7f-2446-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745854573; x=1746459373; 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=XMH7+Ss3l1t5Ls+cH3/cseOt9piC4sPKG8qdQbIfRmM=;
        b=KzjXFyjwOCpP977X+2J+z99HN/wt48Xz1W6H2liYHKJyK2ZUXv9k6fy4VvOCSk0svX
         jo3+uXLj94m00Mslk1/LEiqVaB5KZ/gCyDKt4Bo7DkNYPn8eGopnyKujGmScL77I8jAo
         EHaiQQ+f7xZuEoYQNTpEBLk7XW7JayxKZl3AgRE/cP1Etgx0EzoAws+S33BlDvkhR7pL
         wJ8NWAUAx9aonmYJAjb0sb/773DzqyfbSRLMFzWMpqltPok0sFGrQkSudrTNFk+BCbCW
         gpgQubQx6p48Ot4XqT5wRqX+IR5oV2atWBuN9CIoyyX2hdS9becb2NnwvRJdLUCpso3S
         Q+0g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745854573; x=1746459373;
        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=XMH7+Ss3l1t5Ls+cH3/cseOt9piC4sPKG8qdQbIfRmM=;
        b=jmTz7B+Fw2G5a/LCgQqXQyn8GE3jPmzSXzT3ZzaWvQtYcV5joMwTsKvRi+GT6VFdR3
         3OXMjsnnrtNaOThJBPpeealR1RW5SoeC2NRage2gtmQqte8oRlux8pEcriudfC9+wkfg
         zRqj93675MyhjzFAmiGDGXLrVpUUqrNd61Q/UMXI7nRl4g+jp+mERAi5mPl9DNov76Yb
         pVM4J5euLtiygMITPY9NTkB5WM0UclztKCARVYAqs+3Y6flXDN9rY9sGKB08H1nCunkA
         QTg9cxRQXL/TqUptnZKdKxHqMJFEfFHK/tG+UzyGsyl6cOnGkYC23donZz2rLY70KZg2
         RCLA==
X-Gm-Message-State: AOJu0YzgHR8OHH3QW5bYN7JwMulXfaCioGNmpM+RhMC/hnkaB3WPM0tA
	SVAI5N3n3A+gY/yFTfwNcTZDLqAkI1Wo0ecdoo96L9UckHXSIu1T+78E6uEwL+0=
X-Gm-Gg: ASbGncuQ6PJ8qf4X6NuFj69ewF1UZ3YVFOKevTBcv1VF54w6wEyBdRyOP331llZuQtv
	xiK4QF6wffLxdPt+5GLzpmURw1lKoeOqZiiLi9uv08JZXGzz9hsLcA0IBu6OisTa3N1seyXK7yh
	pgxz+7zDEsnBomuZ/rHl23h+//F1FK/w+7SPIawy2hLzdo3HEw0Iqw2w2IeG2v3cnEYYXHaByXF
	s4PQfN7VrAG5buM+p+qRk/7bUNZ0Q8uemeT5p8a+AcGsq4fMj5ZG7BSuRrXc9prU7jGPAQRDEoO
	T0DVeq5d15/j8c74JilhXdyV25NMTGMx5W+W04GKpAiIeBnAAIXJs3aWSkiNrHabQfXnMiy1FHF
	JjgEPemMDlMHoWwTESSOEFE3uvx1t5tJpHsB67zro8qh25KWk3pAWgpjrzW7Htl9KjA==
X-Google-Smtp-Source: AGHT+IEeJP3jc5S78SdNB8IkcDgM4viBTdONcQGNIAXKyGd8YrbSXzdNcY/BCiePr50ptTVKq1+3hg==
X-Received: by 2002:a17:907:724f:b0:acb:893:8c40 with SMTP id a640c23a62f3a-ace84901512mr951285266b.19.1745854572543;
        Mon, 28 Apr 2025 08:36:12 -0700 (PDT)
Message-ID: <37697ba6-ea59-410a-abe4-c64173596110@suse.com>
Date: Mon, 28 Apr 2025 17:36:11 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/6] docs: remove qemu-traditional support from
 documentation
To: Alejandro Vallejo <agarciav@amd.com>,
 Anthony PERARD <anthony@xenproject.org>
Cc: xen-devel@lists.xenproject.org, Anthony PERARD
 <anthony.perard@vates.tech>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Xen-devel <xen-devel-bounces@lists.xenproject.org>
References: <20250408123526.14613-1-jgross@suse.com>
 <20250408123526.14613-3-jgross@suse.com> <aAoHOrcZ5LlhEObL@l14>
 <D9IDA8NYNZUG.2Z1IGCDV4YI5Y@amd.com>
 <198ec36e-15e3-491a-bd15-d440d9d578da@suse.com>
 <D9IDPE8Q5XKK.2CSC9N1BMSU2Y@amd.com>
Content-Language: en-US
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
Autocrypt: addr=jgross@suse.com; keydata=
 xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOB
 ycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJve
 dYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJ
 NwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvx
 XP3FAp2pkW0xqG7/377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEB
 AAHNH0p1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT7CwHkEEwECACMFAlOMcK8CGwMH
 CwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRCw3p3WKL8TL8eZB/9G0juS/kDY9LhEXseh
 mE9U+iA1VsLhgDqVbsOtZ/S14LRFHczNd/Lqkn7souCSoyWsBs3/wO+OjPvxf7m+Ef+sMtr0
 G5lCWEWa9wa0IXx5HRPW/ScL+e4AVUbL7rurYMfwCzco+7TfjhMEOkC+va5gzi1KrErgNRHH
 kg3PhlnRY0Udyqx++UYkAsN4TQuEhNN32MvN0Np3WlBJOgKcuXpIElmMM5f1BBzJSKBkW0Jc
 Wy3h2Wy912vHKpPV/Xv7ZwVJ27v7KcuZcErtptDevAljxJtE7aJG6WiBzm+v9EswyWxwMCIO
 RoVBYuiocc51872tRGywc03xaQydB+9R7BHPzsBNBFOMcBYBCADLMfoA44MwGOB9YT1V4KCy
 vAfd7E0BTfaAurbG+Olacciz3yd09QOmejFZC6AnoykydyvTFLAWYcSCdISMr88COmmCbJzn
 sHAogjexXiif6ANUUlHpjxlHCCcELmZUzomNDnEOTxZFeWMTFF9Rf2k2F0Tl4E5kmsNGgtSa
 aMO0rNZoOEiD/7UfPP3dfh8JCQ1VtUUsQtT1sxos8Eb/HmriJhnaTZ7Hp3jtgTVkV0ybpgFg
 w6WMaRkrBh17mV0z2ajjmabB7SJxcouSkR0hcpNl4oM74d2/VqoW4BxxxOD1FcNCObCELfIS
 auZx+XT6s+CE7Qi/c44ibBMR7hyjdzWbABEBAAHCwF8EGAECAAkFAlOMcBYCGwwACgkQsN6d
 1ii/Ey9D+Af/WFr3q+bg/8v5tCknCtn92d5lyYTBNt7xgWzDZX8G6/pngzKyWfedArllp0Pn
 fgIXtMNV+3t8Li1Tg843EXkP7+2+CQ98MB8XvvPLYAfW8nNDV85TyVgWlldNcgdv7nn1Sq8g
 HwB2BHdIAkYce3hEoDQXt/mKlgEGsLpzJcnLKimtPXQQy9TxUaLBe9PInPd+Ohix0XOlY+Uk
 QFEx50Ki3rSDl2Zt2tnkNYKUCvTJq7jvOlaPd6d/W0tZqpyy7KVay+K4aMobDsodB3dvEAs6
 ScCnh03dDAFgIq5nsB11j3KPKdVoPlfucX2c7kGNH+LUMbzqV6beIENfNexkOfxHfw==
In-Reply-To: <D9IDPE8Q5XKK.2CSC9N1BMSU2Y@amd.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------6aU92H0hM755FqMg01KRAJUR"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------6aU92H0hM755FqMg01KRAJUR
Content-Type: multipart/mixed; boundary="------------a0Lh8OLuPcpQZ2BrTEvNngJh";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Alejandro Vallejo <agarciav@amd.com>,
 Anthony PERARD <anthony@xenproject.org>
Cc: xen-devel@lists.xenproject.org, Anthony PERARD
 <anthony.perard@vates.tech>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Xen-devel <xen-devel-bounces@lists.xenproject.org>
Message-ID: <37697ba6-ea59-410a-abe4-c64173596110@suse.com>
Subject: Re: [PATCH v2 2/6] docs: remove qemu-traditional support from
 documentation
References: <20250408123526.14613-1-jgross@suse.com>
 <20250408123526.14613-3-jgross@suse.com> <aAoHOrcZ5LlhEObL@l14>
 <D9IDA8NYNZUG.2Z1IGCDV4YI5Y@amd.com>
 <198ec36e-15e3-491a-bd15-d440d9d578da@suse.com>
 <D9IDPE8Q5XKK.2CSC9N1BMSU2Y@amd.com>
In-Reply-To: <D9IDPE8Q5XKK.2CSC9N1BMSU2Y@amd.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=

--------------a0Lh8OLuPcpQZ2BrTEvNngJh
Content-Type: multipart/mixed; boundary="------------udC0z1u6uIsH99H1NhPqV9Yc"

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

T24gMjguMDQuMjUgMTc6MzEsIEFsZWphbmRybyBWYWxsZWpvIHdyb3RlOg0KPiBPbiBNb24g
QXByIDI4LCAyMDI1IGF0IDQ6MTUgUE0gQlNULCBKw7xyZ2VuIEdyb8OfIHdyb3RlOg0KPj4g
T24gMjguMDQuMjUgMTc6MTIsIEFsZWphbmRybyBWYWxsZWpvIHdyb3RlOg0KPj4+IE9uIFRo
dSBBcHIgMjQsIDIwMjUgYXQgMTA6NDEgQU0gQlNULCBBbnRob255IFBFUkFSRCB3cm90ZToN
Cj4+Pj4gT24gVHVlLCBBcHIgMDgsIDIwMjUgYXQgMDI6MzU6MjBQTSArMDIwMCwgSnVlcmdl
biBHcm9zcyB3cm90ZToNCj4+Pj4+IEBAIC0xOTAzLDEwICsxODk0LDcgQEAgaXQgbWF5IGJl
IHVzZWZ1bCB0byByZXF1ZXN0IGEgZGlmZmVyZW50IG9uZSwgbGlrZSBVRUZJLg0KPj4+Pj4g
ICAgDQo+Pj4+PiAgICA9aXRlbSBCPHJvbWJpb3M+DQo+Pj4+PiAgICANCj4+Pj4+IC1Mb2Fk
cyBST01CSU9TLCBhIDE2LWJpdCB4ODYgY29tcGF0aWJsZSBCSU9TLiBUaGlzIGlzIHVzZWQg
YnkgZGVmYXVsdA0KPj4+Pj4gLXdoZW4gQjxkZXZpY2VfbW9kZWxfdmVyc2lvbj1xZW11LXhl
bi10cmFkaXRpb25hbD4uIFRoaXMgaXMgdGhlIG9ubHkgQklPUw0KPj4+Pj4gLW9wdGlvbiBz
dXBwb3J0ZWQgd2hlbiBCPGRldmljZV9tb2RlbF92ZXJzaW9uPXFlbXUteGVuLXRyYWRpdGlv
bmFsPi4gVGhpcyBpcw0KPj4+Pj4gLXRoZSBCSU9TIHVzZWQgYnkgYWxsIHByZXZpb3VzIFhl
biB2ZXJzaW9ucy4NCj4+Pj4+ICtMb2FkcyBST01CSU9TLCBhIDE2LWJpdCB4ODYgY29tcGF0
aWJsZSBCSU9TLg0KPj4+Pg0KPj4+PiBUaGlzIG9wdGlvbiBpcyBub3QgdmFsaWQgYW55bW9y
ZSwgbGlieGwgd2lsbCBjb21wbGFpbiB3aXRoOg0KPj4+PiAgICAgICAicWVtdS14ZW4gZG9l
cyBub3Qgc3VwcG9ydCBiaW9zPXJvbWJpb3MuIg0KPj4+DQo+Pj4gU291bmRzIGxpa2UgYSBn
b29kIHRpbWUgdG8gcmVtb3ZlIGJpb3M9cm9tYmlvcyBhbHRvZ2V0aGVyIGFuZCBzdHJpY3Rs
eQ0KPj4+IHN1cHBvcnQgYmlvcz1zZWFiaW9zIG9ubHkgKHBsdXMgdGhlIG92ZXJyaWRlKS4N
Cj4+DQo+PiBGaW5lIHdpdGggbWUuDQo+Pg0KPj4gQnV0IHByb2JhYmx5IHdlIHNob3VsZCBO
T1QgZHJvcCBidWlsZGluZyBSb21CSU9TLCByaWdodD8NCj4gDQo+IE9uIHN0YWdpbmcvbWFz
dGVyPyBJIGRvbid0IHRoaW5rIHdlIG91Z2h0IHRvIHdhc3RlIGN5Y2xlcyByZWJ1aWxkaW5n
IGl0Lg0KPiBJdCdkIG9ubHkgYmUgYSBkZXBlbmRlbmN5IGZvciBzdGFibGUgdHJlZXMsIHNv
IHNob3VsZG4ndCBpdCBiZSBidWlsdA0KPiB0aGVyZSBpbnN0ZWFkPyBUaGVuIGJ5IHRoZSB0
aW1lIHdlIGRvbid0IHN1cHBvcnQgaXQgaW4gc3RhYmxlIGVpdGhlcg0KPiAoYmVjYXVzZSB0
aGV5IGFsbCB3ZW50IEVPTCkgaXQnZCBuYXR1cmFsbHkganVzdCBzdG9wIGJlaW5nIGJ1aWx0
Lg0KPiANCj4gVGhlIG1lY2hhbmljcyBvZiBob3cgdGhhdCB3b3VsZCB3b3JrIEknbSBub3Qg
c3VyZS4gV2UgaGF2ZSBwZXINCj4gc3RhYmxlLXRyZWUgcGlwZWxpbmVzLiBEbyB0aGV5IGJ1
aWxkIGV2ZXJ5dGhpbmcsIEFudGhvbnk/DQoNClNvcnJ5LCBJIHBocmFzZWQgdGhhdCB3cm9u
Zy4NCg0KSSBtZWFudCB3ZSBzaG91bGRuJ3QgcmVtb3ZlIFJvbUJJT1MgZnJvbSB0aGUgdHJl
ZS4NCg0KDQpKdWVyZ2VuDQo=
--------------udC0z1u6uIsH99H1NhPqV9Yc
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-----

--------------udC0z1u6uIsH99H1NhPqV9Yc--

--------------a0Lh8OLuPcpQZ2BrTEvNngJh--

--------------6aU92H0hM755FqMg01KRAJUR
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/Ey8FAmgPoGsFAwAAAAAACgkQsN6d1ii/Ey+R
QAf/UMIZtDkjwENyq452YKbqavSkXLiahlPIwoG+VPst/AdVUj86L+TuypCFPbghXn+LoeEYBafe
pRNa5hmqCpv8DPx/jWzz6OPKkUNOZ/UyOyco+ZC81FmSmd3TVTEZ4+neDHjywqV5v+DbMc+WOEYn
wJ2q+Au6QLkDGIpncubnXnqXRThwFp/TgNTHEsqeV9pKooyKHQLC+Vpcgolup9g57dfeJa7FC9pj
s2QY3sb+lF5OBXkORdBUNmJz64iNBoYnp0B2pjpGdAXpQbWlCFjBoApNaSj0v9tsnEXZBhJt1pZe
R8wcC31KUsO0W+8BBfQqTR+xpI0E5eEUL09Wng3D9w==
=QziJ
-----END PGP SIGNATURE-----

--------------6aU92H0hM755FqMg01KRAJUR--


From xen-devel-bounces@lists.xenproject.org Mon Apr 28 15:43:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 15:43:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.970868.1359423 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9QdU-0001zX-47; Mon, 28 Apr 2025 15:43:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 970868.1359423; Mon, 28 Apr 2025 15:43: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 1u9QdU-0001zQ-1A; Mon, 28 Apr 2025 15:43:12 +0000
Received: by outflank-mailman (input) for mailman id 970868;
 Mon, 28 Apr 2025 15:43:11 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <cody.zuschlag@xenproject.org>) id 1u9QdT-0001zK-16
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 15:43:11 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <cody.zuschlag@xenproject.org>) id 1u9QdS-00AYKk-2V
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 15:43:10 +0000
Received: from mail-vk1-f173.google.com ([209.85.221.173])
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96)
 (envelope-from <cody.zuschlag@xenproject.org>) id 1u9QdS-007lsh-2M
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 15:43:10 +0000
Received: by mail-vk1-f173.google.com with SMTP id
 71dfb90a1353d-52934f4fb23so4931707e0c.1
 for <xen-devel@lists.xenproject.org>; Mon, 28 Apr 2025 08:43: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Content-Type:Cc:To:Subject:Message-ID:
	Date:From:MIME-Version; bh=HhK/iltj1k0/ZvD6Fj3ztKY3hSS9y9+djRL+jiYNMjA=; b=1M
	0SdpJiiYgjejrXxp36XXn01ovJp0h7gwlv++pRB2gc6GpJ5gZX0GVdUdECttZ1OO5VkWFuFTaEKbN
	/wqAPYtpWtpWr0vi29nL6NJ62YMK6Mdm4K/ZBfm5BAdC7lhxY1IR5c4Ars6rVBHOS0buah5veGZ1g
	+L3KnGplf8YcusY=;
X-Gm-Message-State: AOJu0YziIGOv1XHMct+P1BaOrg8AGDdYf395c2SW0Hup85xRwx4uyR+A
	IHUR/GEtauCLHPmRU+1/D6/yUE+qNdbLYZ1KNcdbg2dHbZ7PTj4drM96+6OMNV8Q0BdxnLVAqWd
	pTyGIFGAHcMHKUqMdfiQVLc/Fww8=
X-Google-Smtp-Source: AGHT+IHNJsohIT102MEYUSinlWxsgAAS/1fnJnQcnMtvTL7gGKm1qGXEVUc1t6beoEAc3DYNdtsjJOUgidRUJotWmmo=
X-Received: by 2002:a05:6122:4693:b0:523:dd87:fe95 with SMTP id
 71dfb90a1353d-52a89f1714amr8930192e0c.9.1745854990253; Mon, 28 Apr 2025
 08:43:10 -0700 (PDT)
MIME-Version: 1.0
From: Cody Zuschlag <cody.zuschlag@xenproject.org>
Date: Mon, 28 Apr 2025 17:42:58 +0200
X-Gmail-Original-Message-ID: <CAJbE=KyLMFsuHTP8Pb2wT5LcL=_uYma-RBA_Ho9tJMGPznxuHg@mail.gmail.com>
X-Gm-Features: ATxdqUGhmzk-XJ0KfdHaIpw4xSATUbhUTXu76NlrVMbdc-3p0emydrFSZytQCfE
Message-ID: <CAJbE=KyLMFsuHTP8Pb2wT5LcL=_uYma-RBA_Ho9tJMGPznxuHg@mail.gmail.com>
Subject: [ANNOUNCE] [NEW TIME] Call for agenda items for May 7, 2025 Community
 Call @ 15:00 UTC
To: xen-devel@lists.xenproject.org
Cc: Tamas K Lengyel <tamas.k.lengyel@gmail.com>, "intel-xen@intel.com" <intel-xen@intel.com>, 
	"daniel.kiper@oracle.com" <daniel.kiper@oracle.com>, Roger Pau Monne <roger.pau@citrix.com>, 
	Christopher Clark <christopher.w.clark@gmail.com>, Rich Persaud <persaur@gmail.com>, 
	Kevin Pearson <kevin.pearson@ortmanconsulting.com>, Juergen Gross <jgross@suse.com>, 
	Paul Durrant <pdurrant@amazon.com>, Ji John <john.ji@intel.com>, 
	"robin.randhawa@arm.com" <robin.randhawa@arm.com>, Artem Mygaiev <Artem_Mygaiev@epam.com>, 
	Matt Spencer <Matt.Spencer@arm.com>, Stewart Hildebrand <Stewart.Hildebrand@amd.com>, 
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Jeff Kubascik <Jeff.Kubascik@dornerworks.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
	Rian Quinn <rianquinn@gmail.com>, "Daniel P. Smith" <dpsmith@apertussolutions.com>, 
	=?UTF-8?B?4oCL4oCL4oCL4oCL4oCL4oCL4oCLRG91ZyBHb2xkc3RlaW4=?= <cardoe@cardoe.com>, 
	George Dunlap <george.dunlap@citrix.com>, David Woodhouse <dwmw@amazon.co.uk>, 
	=?UTF-8?B?4oCL4oCL4oCL4oCL4oCL4oCL4oCLQW1pdCBTaGFo?= <amit@infradead.org>, 
	=?UTF-8?B?4oCL4oCL4oCL4oCL4oCL4oCL4oCLVmFyYWQgR2F1dGFt?= <varadgautam@gmail.com>, 
	Brian Woods <brian.woods@xilinx.com>, Robert Townley <rob.townley@gmail.com>, 
	Bobby Eshleman <bobby.eshleman@gmail.com>, 
	=?UTF-8?B?4oCL4oCL4oCL4oCL4oCL4oCL4oCLQ29yZXkgTWlueWFyZA==?= <cminyard@mvista.com>, 
	Olivier Lambert <olivier.lambert@vates.fr>, Andrew Cooper <andrew.cooper3@citrix.com>, 
	Ash Wilding <ash.j.wilding@gmail.com>, Rahul Singh <Rahul.Singh@arm.com>, 
	=?UTF-8?Q?Piotr_Kr=C3=B3l?= <piotr.krol@3mdeb.com>, 
	Brendan Kerrigan <brendank310@gmail.com>, Thierry Laurion <thierry.laurion@gmail.com>, 
	Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>, 
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>, Scott Davis <scottwd@gmail.com>, 
	Anthony PERARD <anthony.perard@citrix.com>, Michal Orzel <michal.orzel@amd.com>, 
	Marc Ungeschikts <marc.ungeschikts@vates.fr>, Zhiming Shen <zshen@exotanium.io>, 
	Xenia Ragiadakou <burzalodowa@gmail.com>, 
	=?UTF-8?B?4oCL4oCL4oCL4oCL4oCL4oCL4oCLSGVucnkgV2FuZw==?= <Henry.Wang@arm.com>, 
	Samuel Verschelde <stormi-xcp@ylix.fr>, Andrei Semenov <andrei.semenov@vates.fr>, 
	Yann Dirson <yann.dirson@vates.fr>, Bernhard Kaindl <bernhard.kaindl@cloud.com>, 
	=?UTF-8?B?4oCL4oCL4oCL4oCL4oCL4oCL4oCLTHVjYSBGYW5jZWxsdQ==?= <luca.fancellu@arm.com>, 
	=?UTF-8?Q?Marek_Marczykowski=2DG=C3=B3recki?= <marmarek@invisiblethingslab.com>, 
	Vikram Garhwal <vikram.garhwal@amd.com>, Ayan Kumar Halder <ayan.kumar.halder@amd.com>, 
	Kelly Choi <kelly.choi@cloud.com>, Thierry Escande <thierry.escande@vates.tech>, 
	Guillaume Thouvenin <guillaume.thouvenin@vates.tech>, 
	Andrei Cherechesu <andrei.cherechesu@oss.nxp.com>, =?UTF-8?B?UmFmYcOrbCBLb29p?= <rafael_andreas@hotmail.com>, 
	Mathieu Labourier <mathieu.labourier@vates.tech>, 
	Demi Marie Obenour <demi@invisiblethingslab.com>, Cody Zuschlag <cody.zuschlag@vates.tech>, 
	Alejandro Vallejo <agarciav@amd.com>
Content-Type: multipart/alternative; boundary="0000000000008613d60633d88a76"

--0000000000008613d60633d88a76
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi everyone,

*IMPORTANT: Due to public holidays in several countries, May's community
call has been moved to Wednesday, 7 May 2025.*

We=E2=80=99re getting ready for May's Xen Project Community Call on *Wednes=
day, 7
May 2025* at *15:00 UTC* (4 pm UK time). We=E2=80=99d love for you to join.=
 Feel
free to just observe or jump in! This call is a great opportunity to see
what the community is working on, align our various efforts, and share
updates. Everyone is welcome!

*Preparation:*

   - Add any proposed agenda items or missing action items:
   https://cryptpad.fr/pad/#/2/pad/edit/1cT4oJhJZAnJk9CbAogFYchM/
   - If any action items have been resolved or are no longer relevant, feel
   free to remove them from the doc.

*Call Details:*

   - *Date:* Wednesday, 7 May 2025
   - *Time:* 15:00 UTC (agenda begins at 15:05 UTC)
      - Find your local timezone here
      <https://www.worldtimebuddy.com/?qm=3D1&lid=3D100,2653941,2988507,536=
8361,5128581,1850147,123&h=3D2988507&date=3D2025-5-7&sln=3D17-17.5&hf=3Dund=
efined&c=3D1578>
   - *Link to Join the Call:* https://meet.jit.si/XenProjectCommunityCall

We plan to open the meeting room at 15:00 UTC, but to allow time for
switching between meetings and handling any technical issues, we=E2=80=99ll
officially start discussing the agenda at 15:05 UTC.

*Want to be CC=E2=80=99d on future calls?*

Add or remove yourself from our Sign-up Sheet
<https://cryptpad.fr/pad/#/2/pad/edit/D9vGzihPxxAOe6RFPz0sRCf+/>.


See you next week!


Cody Zuschlag
Xen Project - Community Manager

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

<div dir=3D"ltr"><div><div>Hi everyone,</div><div><div><p><b>IMPORTANT: Due=
 to public holidays in several countries, May&#39;s community call has been=
 moved to Wednesday, 7 May 2025.</b></p></div><p>We=E2=80=99re getting read=
y for May&#39;s Xen Project Community Call on=C2=A0<b>Wednesday, 7 May 2025=
</b>=C2=A0at=C2=A0<b>15:00 UTC</b>=C2=A0(4 pm UK time). We=E2=80=99d love f=
or you to join. Feel free to just observe or jump in! This call is a great =
opportunity to see what the community is working on, align our various effo=
rts, and share updates. Everyone is welcome!</p><p><b>Preparation:</b></p><=
/div><div><ul><li style=3D"margin-left:15px">Add any proposed agenda items =
or missing action items:=C2=A0<a href=3D"https://cryptpad.fr/pad/#/2/pad/ed=
it/1cT4oJhJZAnJk9CbAogFYchM/">https://cryptpad.fr/pad/#/2/pad/edit/1cT4oJhJ=
ZAnJk9CbAogFYchM/</a></li><li style=3D"margin-left:15px">If any action item=
s have been resolved or are no longer relevant, feel free to remove them fr=
om the doc.=C2=A0</li></ul></div><div><b>Call Details:</b></div><div><ul><l=
i style=3D"margin-left:15px"><b>Date:</b>=C2=A0Wednesday, 7 May 2025</li><l=
i style=3D"margin-left:15px"><b>Time:</b>=C2=A015:00 UTC (agenda begins at =
15:05 UTC)</li><ul><li style=3D"margin-left:15px"><a href=3D"https://www.wo=
rldtimebuddy.com/?qm=3D1&amp;lid=3D100,2653941,2988507,5368361,5128581,1850=
147,123&amp;h=3D2988507&amp;date=3D2025-5-7&amp;sln=3D17-17.5&amp;hf=3Dunde=
fined&amp;c=3D1578" target=3D"_blank">Find your local timezone here</a></li=
></ul><li style=3D"margin-left:15px"><b>Link to Join the Call:</b>=C2=A0<a =
href=3D"https://meet.jit.si/XenProjectCommunityCall" target=3D"_blank">http=
s://meet.jit.si/XenProjectCommunityCall</a></li></ul></div><div><p>We plan =
to open the meeting room at 15:00 UTC, but to allow time for switching betw=
een meetings and handling any technical issues, we=E2=80=99ll officially st=
art discussing the agenda at 15:05 UTC.</p><p><b>Want to be CC=E2=80=99d on=
 future calls?</b><b></b></p><p>Add or remove yourself from our=C2=A0<a hre=
f=3D"https://cryptpad.fr/pad/#/2/pad/edit/D9vGzihPxxAOe6RFPz0sRCf+/" target=
=3D"_blank">Sign-up Sheet</a>.</p><ul></ul><div>See you next week!</div></d=
iv></div><div><br></div><div><div dir=3D"ltr" class=3D"gmail_signature" dat=
a-smartmail=3D"gmail_signature"><div dir=3D"ltr"><img src=3D"https://ci3.go=
ogleusercontent.com/mail-sig/AIorK4x5nkRDCOFJDJAv9aMXdZ0mghItsp3D36JrwBCQti=
tBSW_0NeDS6mBmJ2F4vZVE2oBOqnY6IaJUrl12"><br><div>Cody Zuschlag</div><div>Xe=
n Project - Community Manager</div></div></div></div></div>

--0000000000008613d60633d88a76--


From xen-devel-bounces@lists.xenproject.org Mon Apr 28 15:55:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 15:55:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.970881.1359434 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9Qou-0003wN-2k; Mon, 28 Apr 2025 15:55:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 970881.1359434; Mon, 28 Apr 2025 15:55: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 1u9Qou-0003wG-07; Mon, 28 Apr 2025 15:55:00 +0000
Received: by outflank-mailman (input) for mailman id 970881;
 Mon, 28 Apr 2025 15:54: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=jkfC=XO=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1u9Qos-0003wA-8b
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 15:54:58 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 20e08edd-2449-11f0-9eb4-5ba50f476ded;
 Mon, 28 Apr 2025 17:54:55 +0200 (CEST)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id 5FFBF4EE7BD1;
 Mon, 28 Apr 2025 17:54:54 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 20e08edd-2449-11f0-9eb4-5ba50f476ded
Authentication-Results: bugseng.com; arc=none smtp.remote-ip=162.55.131.47
ARC-Seal: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; cv=none; t=1745855694;
	b=eipt02gPBxoFpPiUizlAIu453Rq+9O50h9bUvZM75rwDVcud2gOcX4WqleeOI6+XdXyE
	 SeSepUJDMvVlPdW5S5sXY+9faSbOr/s5Os/sQsjzuD+qwcMzwzHAwoerLeV95Vhz/Kg39
	 Rb7kF1zNQ5L9pbaiC0oB9VyWJ+cmasjrGgBzt3iU8XCxOxjbaN5bvcd7DtEoofO/to6BD
	 rOhAcFIQ1IsIcLZG9C42t4Q/xzOhoN9Xbe4fM8qIWS60AukGED9luwWFvv7mFtyXDF0ti
	 9OX2ts0vvVREnaU+hlPXPXmuPMUcPk+fNzpDCmQL8stPVC+KHYcBsYIJv7YTX501GDbYo
	 L9A9qQNV4gQfF54OtgxY1YX1JSuqdK8dKYIkREZ5q3L1elKmWPaROtTcvMaBiVN3ZD5uu
	 v/m0/KEAwtu27VoHvTnflCyBh9DyqDvW/ebMBooqZMMCZciEsI82p/fvTwD5lVisVex3O
	 5fU6BvbU099YhmUpTvfA2BwImR6Qc7E6zFYSnIoptJTjfPlWCrT+EJy2aYBsg1TkRGGGo
	 0iLa9fDz6ydxDvDuSZi5KHLR+y3ent/XHEtx07v9O+16V4kqNp96tRdz0L/rxjjdKzzvy
	 NY1Tg7QF61aivuN/JLXNJgc9bevGEaZiS+AgR7ddijgmi1pd8XBSrAjlG5sKwcI=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1745855694;
	h=DKIM-Signature:MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:
	 References:Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=huJVLdjXQrj/mQLDDbls7v4qsqBT56+HBzHEtpiM9yY=;
	b=0OdyNWWkDOfVfEeRd9Xm9AjtlegVe/gxPXFP8sLunNT92cqWQeR5+HTF0twcetEoWSp3
	 Hbw2DXVIhTP0msp3T/5vK4WWifCnAHDN8UNfkFdE82snOVSpXx+0coWzIiLItYdG3PKev
	 P49fT8qsHrBAs0FxUvQX0uLiuCZrcsHQcOdIUoP/CZZYYxieqxqcJ8eXXLDaD5seOhP0I
	 zwcwErnc+Sp1dGu48k3wYvLS+G4myFscgjyVfqkgrUfeD3vy9T3hRkKFixktq/tYbajDW
	 1YteLeJa9+IbhQCFmmw+ndYFELqewj5LnhgGsBMXJj1tXSfV9DEr5OwavtmaIVGZNSOXq
	 bE2JErXgYYUhEWDfUcsPpDOSmMxSfhrhcJ2+ta5pk4+SZF0fIa8lc0sc/t+6zIIrtlfpu
	 3K8JaeGSa2OeGBsArUPSSZo4wVj0hr2uG1VDmwtScacgL4AFPu0+QnV1FlH0Xobw1ufGK
	 xeRkFZ4BpBcIP7sgfg3Rjx0KwRacxNL6EflopV6eYaLrWdzmiRapYTvbyC40vittV8D18
	 ByFcYMGcY+pt4Kgjyxdrm6wj0kqKRijlIShdJeV/A3SxV7rEunRdNPqd+CNjS0NWAL118
	 vB2UEryMtTbYTbED5KHA/E5hbXhNbEQtPthfl0V+jNP7VgVnzE/s0yDHzLSktNk=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1745855694; bh=oH9I9/X/vUyXzwbHS/DzNriPaSfhdN76xWGpAd4Fao0=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=uLJMkUn/1R8vw81dhMsOT2LILi4Vr3TstsQKnloyX7cIMlEALYt24butG1bhkVZ5S
	 yRzMZT7VvfcD4FoU2mBmUuz3hB7YcgEw6D7FBmikZaVrx3BfY0wI17h06tOejanknL
	 t37Y0V7wPD+XfM0XvM77nepeDOAgs11tCC3vi9CP0NiwcCmYKhhk6EBjzLUBpRJ46K
	 nAwJgfuNkv/HBA4iY/2oLckGh3l6CCRFO0ALqXLCaq3gyn4nYOUPGMyT2BYMWErLrC
	 Qk6K+4bu2Q8XS+TYt5XAiRqzxs6VD004VVcTsEumhj4zcUVbEM9oejODBuEMcMWDZ4
	 4u4WYTcZV++4A==
MIME-Version: 1.0
Date: Mon, 28 Apr 2025 17:54:54 +0200
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, victorm.lira@amd.com,
 Federico Serafini <federico.serafini@bugseng.com>, Andrew Cooper
 <andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Bertrand Marquis
 <bertrand.marquis@arm.com>, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v1] misra: add deviation for rules 21.1 and 21.2
In-Reply-To: <35ac0856-7a96-4f91-a76d-989bcebfb911@suse.com>
References: <9e1210f2a9c794d68dcc6b897239b228b141296a.1745427770.git.victorm.lira@amd.com>
 <f5d35582-9270-4816-84c2-f078afeee711@suse.com>
 <alpine.DEB.2.22.394.2504241443550.785180@ubuntu-linux-20-04-desktop>
 <8d65ee65-ec6f-49a3-8954-d303b08dc2df@suse.com>
 <a9db045cff906a4b7db8730ad1095e4b@bugseng.com>
 <b7f7ab2b-baaa-416f-b390-5ed2229d34cb@suse.com>
 <4d21245edbd4949a0aec6ecdadea437c@bugseng.com>
 <35ac0856-7a96-4f91-a76d-989bcebfb911@suse.com>
Message-ID: <776e518b51ac40973207fc2efed6a460@bugseng.com>
X-Sender: nicola.vetrini@bugseng.com
Organization: BUGSENG s.r.l.
Content-Type: text/plain; charset=US-ASCII;
 format=flowed
Content-Transfer-Encoding: 7bit

On 2025-04-28 11:04, Jan Beulich wrote:
> On 28.04.2025 10:09, Nicola Vetrini wrote:
>> On 2025-04-28 08:15, Jan Beulich wrote:
>>> On 25.04.2025 17:53, Nicola Vetrini wrote:
>>>> On 2025-04-25 10:07, Jan Beulich wrote:
>>>>> On 24.04.2025 23:45, Stefano Stabellini wrote:
>>>>>> On Thu, 24 Apr 2025, Jan Beulich wrote:
>>>>>>> On 23.04.2025 19:54, victorm.lira@amd.com wrote:
>>>>>>>> From: Nicola Vetrini <nicola.vetrini@bugseng.com>
>>>>>>>> 
>>>>>>>> MISRA C Rules 21.1 ("#define and #undef shall not be used on a
>>>>>>>> reserved identifier or reserved macro name") and R21.2 ("A
>>>>>>>> reserved
>>>>>>>> identifier or reserved macro name shall not be declared")
>>>>>>>> violations
>>>>>>>> are not problematic for Xen, as it does not use the C or POSIX
>>>>>>>> libraries.
>>>>>>>> 
>>>>>>>> Xen uses -fno-builtin and -nostdinc to ensure this, but there 
>>>>>>>> are
>>>>>>>> still
>>>>>>>> __builtin_* functions from the compiler that are available so
>>>>>>>> a deviation is formulated for all identifiers not starting with
>>>>>>>> "__builtin_".
>>>>>>>> 
>>>>>>>> The missing text of a deviation for Rule 21.2 is added to
>>>>>>>> docs/misra/deviations.rst.
>>>>>>>> 
>>>>>>>> To avoid regressions, tag both rules as clean and add them to 
>>>>>>>> the
>>>>>>>> monitored set.
>>>>>>>> 
>>>>>>>> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
>>>>>>>> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
>>>>>>>> Signed-off-by: Victor Lira <victorm.lira@amd.com>
>>>>>>> 
>>>>>>> While the rule is in the library section, ...
>>>>>>> 
>>>>>>>> --- a/docs/misra/deviations.rst
>>>>>>>> +++ b/docs/misra/deviations.rst
>>>>>>>> @@ -587,7 +587,31 @@ Deviations related to MISRA C:2012 Rules:
>>>>>>>>         construct is deviated only in Translation Units that
>>>>>>>> present
>>>>>>>> a violation
>>>>>>>>         of the Rule due to uses of this macro.
>>>>>>>>       - Tagged as `deliberate` for ECLAIR.
>>>>>>>> -
>>>>>>>> +
>>>>>>>> +   * - R21.1
>>>>>>>> +     - Rule 21.1 reports identifiers reserved for the C and 
>>>>>>>> POSIX
>>>>>>>> standard
>>>>>>>> +       libraries. Xen does not use such libraries and all
>>>>>>>> translation units
>>>>>>>> +       are compiled with option '-nostdinc', therefore there is
>>>>>>>> no
>>>>>>>> reason to
>>>>>>>> +       avoid to use `#define` or `#undef` on such identifiers
>>>>>>>> except for those
>>>>>>>> +       beginning with `__builtin_` for which compilers may
>>>>>>>> perform
>>>>>>>> (wrong)
>>>>>>>> +       optimizations.
>>>>>>>> +     - Tagged as `safe` for ECLAIR.
>>>>>>> 
>>>>>>> ... I'd like to ask that it be explicitly clarified here that 
>>>>>>> it's
>>>>>>> solely
>>>>>>> the library (and not e.g. the compiler itself) that are of 
>>>>>>> concern
>>>>>>> here.
>>>>>> 
>>>>>> The language can be clarified:
>>>>>> 
>>>>>> - Rule 21.1 reports identifiers reserved for the C and POSIX
>>>>>> standard
>>>>>>   libraries. Xen does not use such libraries and all translation
>>>>>> units
>>>>>>   are compiled with option '-nostdinc', therefore there is no 
>>>>>> reason
>>>>>> to
>>>>>>   avoid to use `#define` or `#undef` on C and POSIX standard
>>>>>> libraries
>>>>>>   identifiers except for those beginning with `__builtin_` for 
>>>>>> which
>>>>>>   compilers may perform (wrong) optimizations.
>>>>> 
>>>>> Which makes it more apparent that there is a gap: What about e.g.
>>>>> __x86_64__?
>>>>> That falls within what the rules cover, is not a C or POSIX 
>>>>> standard
>>>>> library
>>>>> identifier, yet very clearly must not be fiddled with. Whereas the
>>>>> text
>>>>> above deviates it.
>>>> 
>>>> that is true, even if unlikely: one approach could be to avoid
>>>> deviating
>>>> predefined macros for all CUs as -nostdinc and -fno-builtins should
>>>> take
>>>> care of the rest; this kind of deviation is not currently possible 
>>>> in
>>>> ECLAIR, but it might be in the future.
>>> 
>>> Is this perhaps because by "all pre-defined macros" you really mean
>>> _just_
>>> those, and not the entire reserved (for that purpose) sub-namespace?
>>> Imo
>>> we should not go by what a particular compiler may pre-define (we may
>>> even
>>> overlook something if we did it this way).
>>> 
>>> Jan
>>> 
>> 
>> I think there is a slight misalignment here: maybe I'm interpreting 
>> your
>> answer incorrectly. Let me try to restate the proposal: the following
>> identifiers are not allowed to be #define'd or #undef'd:
>> - __builtin_*
>> - for each CU, all macro identifiers already defined upon 
>> preprocessing
>> that CU by the compiler invocation for that CU. This set of 
>> identifiers
>> is always a subset of all the reserved identifiers, but is also
>> dependent on the compiler invocation that is used for that CU, (e.g.
>> __x86_64__ for an Arm target is usually safe to define, as it's
>> typically not a predefined macro introduced by the compiler for that
>> invocation,
> 
> No, it's not - elsewhere in the tree we may use this to distinguish
> architectures. Plus isn't Misra heavily about avoiding developer
> confusion? Defining __x86_64__ on Arm code is, imo, a pretty confusing
> thing to do.
> 

Indeed it is confusing, but likely safe from the perspective of 
preventing UB, which is the main rationale of this rule. For the 
purposes of distinguishing architectures I'd expect a #ifdef __x86_64__ 
or #if defined(__x86_64__) and those are fine, as this only applies to 
#define or #undef.

>> while (re)defining __STDC_VERSION__ or __SIZEOF_INT__ will
>> be a violation in any command line I can think of). Note that this is
>> not a static set, but is based on what is determined to be predefined 
>> at
>> the moment of the analysis, so it is not tied to what a particular
>> compiler pre-defines.
> 
> Right. Yet what I'm trying to get to is that we disallow _all_ such
> reserved identifiers, not just a subset.
> 

I understand now. There are thousands of locations to be touched to 
remove all uses of reserved identifiers, since they are used quite 
extensively in Xen (A rough estimation is around 1.5k such identifiers, 
with ~900 violations on Arm and ~1000 on x86, without counting their 
occurrences). That is a very disruptive change, even if split very 
finely.

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


From xen-devel-bounces@lists.xenproject.org Mon Apr 28 15:57:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 15:57:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.970892.1359444 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9QrN-0004VT-F9; Mon, 28 Apr 2025 15:57:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 970892.1359444; Mon, 28 Apr 2025 15:57:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9QrN-0004VM-CB; Mon, 28 Apr 2025 15:57:33 +0000
Received: by outflank-mailman (input) for mailman id 970892;
 Mon, 28 Apr 2025 15:57:31 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=5hYN=XO=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u9QrL-0004VC-9K
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 15:57: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 7ca336d7-2449-11f0-9ffb-bf95429c2676;
 Mon, 28 Apr 2025 17:57:29 +0200 (CEST)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-abec8b750ebso823850566b.0
 for <xen-devel@lists.xenproject.org>; Mon, 28 Apr 2025 08:57:29 -0700 (PDT)
Received: from [10.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-ace6dee6ec6sm644005466b.0.2025.04.28.08.57.27
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 28 Apr 2025 08:57:28 -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: 7ca336d7-2449-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745855848; x=1746460648; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=b++uVKJkqErDmnya/SJFm/yjmfLDjx7iRvKe+DeeKsI=;
        b=JtcSADBdhIEm3KQHiCWIJ2ra8kIzXMqg5+xSB16CCDVtTw2CrU0P5aJjC2Ul8u8SNK
         PlRFOm3Y2l8otIn1U2hkwQggTCpkHhZx3kcZprKyhEfNpVVKH1euaalS6Ejo5oLNLYzn
         F1SSvxbtPutlpxRTtyKKfSZeCByvxCnqcmSG4zSX+L6KwW1QttnFQhQgwWHrKk8u6kXC
         blIecPUnb9tG7khKshi8NEs9Ah7CKEf+2iSR/7maeHgi8Kz/JhIg4iYzCn/qxEMobKxU
         A6dRH8TAt8IiLIXgu7tvSfZ7zq2FhhGcwxCVfhDlwXblFrLpEytuYY6xFmtNvw4hzD/N
         e0VA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745855848; x=1746460648;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=b++uVKJkqErDmnya/SJFm/yjmfLDjx7iRvKe+DeeKsI=;
        b=RiHAMOn114El4YhWqzox1ssosz4FhQ00CdOUPqU+SUNfoLk3fZikkJVc67m9JtE3fM
         181L1d6kMp34rRSofxrX6wMmUD/UrttnPQvC+Pv5xg2oR31MNGEp2sF1Ze1BuWsFwb4e
         JSMK/vrh2qkiRXGfU5d5iUoxkJSolv5TUKSVV5Q7kUpMdQ5PbYeTf72mX5gVu4v0BRhw
         H2c36cM874KfMXEaYHGbCF6BW9rjUqTOv0rHSeZjwJDs7iwpyWkmy8MnrS5dyc53DGuH
         1ew8S8VuQosowTiglu3IU92oKGwEJo4Jb/s318CE4iFYjva8L3HbxhEaJSRR7HBKnGKG
         A5BA==
X-Forwarded-Encrypted: i=1; AJvYcCWwt7+iAf5TFSGBEc4PglRyITzIZMUgNtj5ET1Aviyk1EjiDSBn8LU0JOPdCdI7un+sKSMgQHEhRfk=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy72dWUDnMVDIuvg+q9P32JzWSnsFdNkNU8yExbXWXmDgPlf8me
	qoBx7dTukV42LFax9403Sr4qu59hbbvIQNKoqu7qFL8hnXqZZe7N3e4uuoquaQ==
X-Gm-Gg: ASbGncsdSQz1MS/ijROgCrM9sy84lf9kBzd6Q5k+biNgHUeErhrEbRQgTjoMO+RoqDr
	WtZG6IJybuArSQMJxDmjV6Af4FxyK9DCfHx/PZAtK3gBvSTSEzQU6I+/ofvsdtPZjEEeBpq4/tp
	7FHaCAdTZuKzvHU/xd4bhqkEd65ztuXpaL0Y7TLJbcUVr5rxKD+1BmG6nV2MlzwpqT1iV3JmmFP
	VGFR7kNNqEpRIqmMVZlD/625e3bLGRCAQFYL62JkWQGOxg0tCcxv6EB+fUD4Z7eIUj6XOhloHV3
	UUW1vOvcat/E1sJT5n5zK7i2AzN+Ucyyno0HLxGvN8LLPcPsuMqG0AiGrKzT3LJnitTwglslE8R
	IFi5bB0ztaYIIFWhOFW4ziHhjWRIsPuv6yiqP
X-Google-Smtp-Source: AGHT+IHMFtVMMJ0N5Sp5WL2wnqfJyEVGhCqdSrFbuYOKrTPXixP+0LFQcvfRVPPr+lw2NhXuwhwqXg==
X-Received: by 2002:a17:907:d1b:b0:ac3:991:a631 with SMTP id a640c23a62f3a-ace71177f36mr972539666b.34.1745855848504;
        Mon, 28 Apr 2025 08:57:28 -0700 (PDT)
Message-ID: <2e1de23f-cc79-4d37-8667-0afd07736db3@suse.com>
Date: Mon, 28 Apr 2025 17:57:27 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 03/15] xen/x86: introduce new sub-hypercall to
 propagate CPPC data
To: Penny Zheng <Penny.Zheng@amd.com>
Cc: ray.huang@amd.com, Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20250414074056.3696888-1-Penny.Zheng@amd.com>
 <20250414074056.3696888-4-Penny.Zheng@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20250414074056.3696888-4-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 14.04.2025 09:40, Penny Zheng wrote:
> In order to provide backward compatibility with existing governors
> that represent performance as frequency, like ondemand, the _CPC
> table can optionally provide processor frequency range values, Lowest
> frequency and Norminal frequency, to let OS use Lowest Frequency/

Nit: Nominal

> @@ -497,12 +504,19 @@ static void print_PPC(unsigned int platform_limit)
>      printk("\t_PPC: %d\n", platform_limit);
>  }
>  
> -static int check_psd_pminfo(const struct xen_processor_performance *perf)
> +static int check_psd_pminfo(const struct xen_processor_performance *perf,
> +                            const struct xen_processor_cppc *cppc_data)
>  {
> +    uint32_t shared_type;
> +
> +    if ( !perf && !cppc_data )
> +        return -EINVAL;
> +
> +    shared_type = perf ? perf->shared_type : cppc_data->shared_type;

Why don't you have the caller pass in shared_type? The two pointers aren't
used ...

>      /* check domain coordination */
> -    if ( perf->shared_type != CPUFREQ_SHARED_TYPE_ALL &&
> -         perf->shared_type != CPUFREQ_SHARED_TYPE_ANY &&
> -         perf->shared_type != CPUFREQ_SHARED_TYPE_HW )
> +    if ( shared_type != CPUFREQ_SHARED_TYPE_ALL &&
> +         shared_type != CPUFREQ_SHARED_TYPE_ANY &&
> +         shared_type != CPUFREQ_SHARED_TYPE_HW )
>          return -EINVAL;
>  
>      return 0;

... for anything else.

> @@ -627,6 +641,109 @@ out:
>      return ret;
>  }
>  
> +static void print_CPPC(const struct xen_processor_cppc *cppc_data)
> +{
> +    printk("\t_CPC: highest_perf=%u, lowest_perf=%u, "
> +           "nominal_perf=%u, lowest_nonlinear_perf=%u, "
> +           "nominal_mhz=%uMHz, lowest_mhz=%uMHz\n",
> +           cppc_data->cpc.highest_perf, cppc_data->cpc.lowest_perf,
> +           cppc_data->cpc.nominal_perf, cppc_data->cpc.lowest_nonlinear_perf,
> +           cppc_data->cpc.nominal_mhz, cppc_data->cpc.lowest_mhz);
> +}
> +
> +int set_cppc_pminfo(unsigned int acpi_id,
> +                    const struct xen_processor_cppc *cppc_data)
> +{
> +    int ret = 0, cpuid;
> +    struct processor_pminfo *pm_info;
> +
> +    cpuid = get_cpu_id(acpi_id);
> +    if ( cpuid < 0 || !cppc_data )
> +    {
> +        ret = -EINVAL;
> +        goto out;
> +    }
> +    if ( cpufreq_verbose )
> +        printk("Set CPU acpi_id(%u) cpuid(%d) CPPC State info:\n",
> +               acpi_id, cpuid);
> +
> +    pm_info = processor_pminfo[cpuid];
> +    if ( !pm_info )
> +    {
> +        pm_info = xvzalloc(struct processor_pminfo);
> +        if ( !pm_info )
> +        {
> +            ret = -ENOMEM;
> +            goto out;
> +        }
> +        processor_pminfo[cpuid] = pm_info;
> +    }
> +    pm_info->acpi_id = acpi_id;
> +    pm_info->id = cpuid;
> +
> +    if ( cppc_data->flags & XEN_CPPC_PSD )
> +    {
> +        ret = check_psd_pminfo(NULL, cppc_data);
> +        if ( ret )
> +            goto out;
> +    }
> +
> +    if ( cppc_data->flags & XEN_CPPC_CPC )
> +    {
> +        if ( cppc_data->cpc.highest_perf == 0 ||
> +             cppc_data->cpc.highest_perf > UINT8_MAX ||
> +             cppc_data->cpc.nominal_perf == 0 ||
> +             cppc_data->cpc.nominal_perf > UINT8_MAX ||
> +             cppc_data->cpc.lowest_nonlinear_perf == 0 ||
> +             cppc_data->cpc.lowest_nonlinear_perf > UINT8_MAX ||
> +             cppc_data->cpc.lowest_perf == 0 ||
> +             cppc_data->cpc.lowest_perf > UINT8_MAX ||
> +             cppc_data->cpc.lowest_perf >
> +                cppc_data->cpc.lowest_nonlinear_perf ||

Where's this ordering spelled out in the spec?

> +             cppc_data->cpc.lowest_nonlinear_perf >
> +                cppc_data->cpc.nominal_perf ||
> +             cppc_data->cpc.nominal_perf > cppc_data->cpc.highest_perf )
> +            /*
> +             * Right now, Xen doesn't actually use perf values
> +             * in ACPI _CPC table, warning is enough.
> +             */
> +            printk(XENLOG_WARNING
> +                   "Broken CPPC perf values: lowest(%u), nonlinear_lowest(%u), nominal(%u), highest(%u)\n",
> +                   cppc_data->cpc.lowest_perf,
> +                   cppc_data->cpc.lowest_nonlinear_perf,
> +                   cppc_data->cpc.nominal_perf,
> +                   cppc_data->cpc.highest_perf);

If this warning was to ever surface, it would likely surface for every CPU.
That's unnecessarily verbose, I guess. Please consider using printk_once()
here.

Also, is "right now" (as the comment says) still going to be true by the
end of the series? Didn't I see you use the values in earlier versions?

> +        /* lowest_mhz and nominal_mhz are optional value */
> +        if ( (cppc_data->cpc.lowest_mhz && cppc_data->cpc.nominal_mhz) &&
> +             cppc_data->cpc.lowest_mhz > cppc_data->cpc.nominal_mhz )

The 1st of the three checks is redundant with the 3rd one. There's also no
point parenthesizing one && against another.

> +            printk(XENLOG_WARNING
> +                   "Broken CPPC freq values: lowest(%u), nominal(%u)\n",
> +                   cppc_data->cpc.lowest_mhz,
> +                   cppc_data->cpc.nominal_mhz);
> +    }
> +
> +    if ( cppc_data->flags == (XEN_CPPC_PSD | XEN_CPPC_CPC) )

If either flag may be clear, ...

> +    {
> +        pm_info->cppc_data = *cppc_data;
> +        if ( cpufreq_verbose )
> +        {
> +            print_PSD(&pm_info->cppc_data.domain_info);
> +            print_CPPC(&pm_info->cppc_data);

... why unconditionally loog both?

> +        }
> +
> +        pm_info->init = XEN_CPPC_INIT;

Plus is it correct to set this flag if either of the incoming flags was clear?

> +        ret = cpufreq_cpu_init(cpuid);
> +#ifndef NDEBUG

Instead of this, ...

> +        if ( ret )
> +            printk(XENLOG_WARNING "No fallback scheme could be replaced now");

... did you perhaps mean to use dprintk()? Also, the wording isn't meaningful
at all. Seeing the message, about everyone will need to go and find the text
in source code in order to stand a chance of gaining even basic understanding
of what's going on.

> @@ -459,6 +464,26 @@ struct xen_processor_performance {
>  typedef struct xen_processor_performance xen_processor_performance_t;
>  DEFINE_XEN_GUEST_HANDLE(xen_processor_performance_t);
>  
> +struct xen_processor_cppc {
> +    uint8_t flags; /* flag for CPPC sub info type */
> +    /*
> +     * Subset _CPC fields useful for CPPC-compatible cpufreq
> +     * driver's initialization
> +     */
> +    struct {
> +        uint32_t highest_perf;
> +        uint32_t nominal_perf;
> +        uint32_t lowest_nonlinear_perf;
> +        uint32_t lowest_perf;
> +        uint32_t lowest_mhz;
> +        uint32_t nominal_mhz;
> +    } cpc;
> +    struct xen_psd_package domain_info; /* _PSD */

This being a member of the new type, ...

> --- a/xen/include/xlat.lst
> +++ b/xen/include/xlat.lst
> @@ -168,6 +168,7 @@
>  !	processor_performance		platform.h
>  !	processor_power			platform.h
>  ?	processor_px			platform.h
> +?	processor_cppc			platform.h

... how can it be ? here when it's ...

>  !	psd_package			platform.h

... ! here? And with it being ?, you're lacking a place where you invoke the
resulting checking macro (which I assume would cause a build failure).

Also when laying out struct xen_processor_cppc, please avoid unnecessary
gaps or tail padding - it looks like "shared_type" would better move up. I
think it would also be a good idea to make padding fields explicit, and
check them to be zero. This way they can be assigned meaning later (if need
be) without breaking backwards compatibility.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Apr 28 16:15:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 16:15:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.970912.1359454 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9R8P-0008N7-V0; Mon, 28 Apr 2025 16:15:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 970912.1359454; Mon, 28 Apr 2025 16:15:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9R8P-0008N0-SO; Mon, 28 Apr 2025 16:15:09 +0000
Received: by outflank-mailman (input) for mailman id 970912;
 Mon, 28 Apr 2025 16:15: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=pDhf=XO=linuxfoundation.org=torvalds@srs-se1.protection.inumbo.net>)
 id 1u9R8O-0008Mu-OH
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 16:15:08 +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 f0f13d50-244b-11f0-9ffb-bf95429c2676;
 Mon, 28 Apr 2025 18:15:03 +0200 (CEST)
Received: by mail-ed1-x52f.google.com with SMTP id
 4fb4d7f45d1cf-5f62d3ed994so9098684a12.2
 for <xen-devel@lists.xenproject.org>; Mon, 28 Apr 2025 09:15:03 -0700 (PDT)
Received: from mail-ed1-f53.google.com (mail-ed1-f53.google.com.
 [209.85.208.53]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5f7035464e6sm6023046a12.64.2025.04.28.09.15.02
 for <xen-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 28 Apr 2025 09:15:02 -0700 (PDT)
Received: by mail-ed1-f53.google.com with SMTP id
 4fb4d7f45d1cf-5e6c18e2c7dso9568041a12.3
 for <xen-devel@lists.xenproject.org>; Mon, 28 Apr 2025 09:15: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: f0f13d50-244b-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linux-foundation.org; s=google; t=1745856903; x=1746461703; darn=lists.xenproject.org;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:from:to:cc:subject:date:message-id:reply-to;
        bh=AF1KZ463/zoTgYMZNz+2yImgi273kMcd/qUiFYdEgdw=;
        b=bg9gmzjLIjMX7NwabE3tnttbelxiNv4XIvlxQiiOfKdgilC+HP43Y4tdUWHyanFx0C
         +5u933jVvS/WTx/fxO/jFcQWt0X7p3RcwWQi8xA0UnWiBXesPS6fRKfeBXTVqvXNq/DX
         h5gaADbadpTFO86V2xC+MY/6YOs4G+koCZrQY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745856903; x=1746461703;
        h=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=AF1KZ463/zoTgYMZNz+2yImgi273kMcd/qUiFYdEgdw=;
        b=WFkvpzUmVcZbxUYPfJmORocgp5wsIhOCr4NwWyF8IC8mLp4UsWz+wzGHOsWRil73In
         lRrw48H5iEmCt8AoQS3UvtqbGcsRLHKOQ9OqqQz6TUQt4ovfLJKB3bvm1ZG+mQu+pQqd
         TqhCGuI4asEdyQN5pT0H7kZlZ44f6ODhFXV3GH66CR0BSS27cQyNXmuD5vjsXlq6P1H8
         lvnVGkwbOP3ClMy2qimuSpOpGdZ3ljj6k8D+pI7pkohR9efUj6KYbcW/JeUcoaprH9nj
         9NrvXt2dbeO6rBnz1rbEz8YhjrKeaY9U7FQBroM36vL8KVNhzUUiavJkpb8eiZzPTcB2
         2zxw==
X-Forwarded-Encrypted: i=1; AJvYcCW102zFnrgaSoZ1/UuGG+/VgVzmCiYx/jvUmNFZMM4rbRxUFbitZy+rtfzIiN72c8kckSoGhiIb2IE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwBTVM2+ggwPws7HM+/WqY74Qepp5yi3qwzfIYy/TsXXDmkWvrw
	s5yKcZB8XaZDY298dcgjA7X+EyoV92gUlmWdKF/bs8E7T/rfjukCqscbO4sQwh/BG3J2epyQ0jx
	/eWQ=
X-Gm-Gg: ASbGncvRBdRCRG/DA+q76VnV9rN4xxqVwCne6h8S47PoDWPiU+C67lpOiMLxlks8E7y
	1jLQtIcY5mZbv7mSlgcCsebRiQ/JuVKdNkBqfRetPg41GKHRIVNwgqwRuZ3DeHAmPIzS37BZU3w
	8mQU42oFMPnqWVyLXze8idz7qsto1Md6pn0EL5z2PEae1V7VEvegkMUPtACC1+iPWFhukgUKVaz
	1X6AzuGDF3s6a1J7WEQB08iMTMv3v7OCIUH0QJ6EmNZmozWP3g/PeoCMHMy/nYeOAwjnQ6q7Iqb
	XjUVYv3q9ieLI4hPo2EaaVSx6ANcF/oU8vVKY2swiaT6Bv5R/EkcpKW6BvyuNzkKjSga8fX8DH7
	qCuXQWy0uRe0zAp8=
X-Google-Smtp-Source: AGHT+IEBTP6c/98Gzm4U+uAdj8cxwwHiIRmmwVnXITAlgjdP6lDB1lTzseXsK8xpEJ40zKDWIZ26Qg==
X-Received: by 2002:a05:6402:35cc:b0:5e7:b081:7870 with SMTP id 4fb4d7f45d1cf-5f72278deb5mr10140883a12.9.1745856902710;
        Mon, 28 Apr 2025 09:15:02 -0700 (PDT)
X-Forwarded-Encrypted: i=1; AJvYcCU+87oI8xdG/LxhZA9u5eRmJZli1PjV7gyNYQptYldde6y7BeDbNSFlsIONHr63njLG5IoZhLEHaK8=@lists.xenproject.org
X-Received: by 2002:a17:906:9fd1:b0:ace:3a3d:7e35 with SMTP id
 a640c23a62f3a-ace713deef8mr1136725066b.53.1745856902085; Mon, 28 Apr 2025
 09:15:02 -0700 (PDT)
MIME-Version: 1.0
References: <20250425141740.734030-1-arnd@kernel.org> <aAyiganPp_UsNlnZ@gmail.com>
 <d2b0e71c-e79b-40d6-8693-3202cd894d66@app.fastmail.com> <CAHk-=wh=TUsVv6xhtzYsWJwJggrjyOfYT3kBu+bHtoYLK0M9Xw@mail.gmail.com>
 <CAHk-=wgfk69H-T-vMWR33xUpVsWJLrF34d0OwUXa2sHhtpSwZg@mail.gmail.com>
 <e54f1943-e0ff-4f59-b24f-9b5a7a38becf@citrix.com> <CAHk-=wj0S2vWui0Y+1hpYMEhCiXKexbQ01h+Ckvww8hB29az_A@mail.gmail.com>
 <aA8nF0moBYOIgC5J@gmail.com> <aA8oqKUaFU-0wb-D@gmail.com>
In-Reply-To: <aA8oqKUaFU-0wb-D@gmail.com>
From: Linus Torvalds <torvalds@linux-foundation.org>
Date: Mon, 28 Apr 2025 09:14:45 -0700
X-Gmail-Original-Message-ID: <CAHk-=wgJfWfWa2NTiTmev+Xr=e8Uo=aFkrXujLAQBVAVN-VigQ@mail.gmail.com>
X-Gm-Features: ATxdqUGS9kvWc-L4SzJnxgACgdDJk4h_LSvRVKtfYkcRU-1jXGpVN9caYxF5bEk
Message-ID: <CAHk-=wgJfWfWa2NTiTmev+Xr=e8Uo=aFkrXujLAQBVAVN-VigQ@mail.gmail.com>
Subject: Re: [PATCH] bitops/32: Convert variable_ffs() and fls() zero-case
 handling to C
To: Ingo Molnar <mingo@kernel.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Arnd Bergmann <arnd@arndb.de>, 
	Arnd Bergmann <arnd@kernel.org>, Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>, 
	Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, 
	"H. Peter Anvin" <hpa@zytor.com>, Juergen Gross <jgross@suse.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, 
	Alexander Usyskin <alexander.usyskin@intel.com>, 
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>, =?UTF-8?Q?Mateusz_Jo=C5=84czyk?= <mat.jonczyk@o2.pl>, 
	Mike Rapoport <rppt@kernel.org>, Ard Biesheuvel <ardb@kernel.org>, Peter Zijlstra <peterz@infradead.org>, 
	linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"

On Mon, 28 Apr 2025 at 00:05, Ingo Molnar <mingo@kernel.org> wrote:
>
> And once we remove 486, I think we can do the optimization below to
> just assume the output doesn't get clobbered by BS*L in the zero-case,
> right?

We probably can't, because who knows what "Pentium" CPU's are out there.

Or even if Pentium really does get it right. I doubt we have any
developers with an original Pentium around.

So just leave the "we don't know what the CPU result is for zero"
unless we get some kind of official confirmation.

          Linus


From xen-devel-bounces@lists.xenproject.org Mon Apr 28 16:24:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 16:24:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.970930.1359463 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9RH6-0001mm-P3; Mon, 28 Apr 2025 16:24:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 970930.1359463; Mon, 28 Apr 2025 16: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 1u9RH6-0001mf-MK; Mon, 28 Apr 2025 16:24:08 +0000
Received: by outflank-mailman (input) for mailman id 970930;
 Mon, 28 Apr 2025 16:24: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=pDhf=XO=linuxfoundation.org=torvalds@srs-se1.protection.inumbo.net>)
 id 1u9RH5-0001mZ-Vq
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 16:24:08 +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 33dd549d-244d-11f0-9ffb-bf95429c2676;
 Mon, 28 Apr 2025 18:24:05 +0200 (CEST)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-acbb48bad09so927657666b.0
 for <xen-devel@lists.xenproject.org>; Mon, 28 Apr 2025 09:24:05 -0700 (PDT)
Received: from mail-ej1-f43.google.com (mail-ej1-f43.google.com.
 [209.85.218.43]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-ace6e41c736sm660697366b.12.2025.04.28.09.24.02
 for <xen-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 28 Apr 2025 09:24:02 -0700 (PDT)
Received: by mail-ej1-f43.google.com with SMTP id
 a640c23a62f3a-ac289147833so887616666b.2
 for <xen-devel@lists.xenproject.org>; Mon, 28 Apr 2025 09:24: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: 33dd549d-244d-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linux-foundation.org; s=google; t=1745857444; x=1746462244; darn=lists.xenproject.org;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:from:to:cc:subject:date:message-id:reply-to;
        bh=Z+Gzk3UbpCetRBDPUBxjg4HZ9NaakRevcBnLrmR9rpY=;
        b=CNyo7fhR6uVknFgAYDQAYuqPTMO4u7X63RzVihsnLZvvjxadSyzy5VENsO2ocWqs4f
         KsxAWa/+u025pnDGaR/QaqKyMEN7Q9QI6eVY5NhC7C6k40FCr5rgSEUmH/+O2FafrDxS
         K++0QHDCxbuYKQp75+WEzPnQPbcL9SXQAQ9p8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745857444; x=1746462244;
        h=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=Z+Gzk3UbpCetRBDPUBxjg4HZ9NaakRevcBnLrmR9rpY=;
        b=G/VC/Xxis20IqyZYYI8GmaJFjzutBaXD1Q6xnfyadLMD+YuI+7y9CaOWgU/ViK3P43
         ynNQ2QNHXkTFzuxHbq3E+EOTXSgIf13RRQxe1w07IsO3gE38JW1ptO17VX/sFIrDatDO
         me05pGewV73mNZC6Hlolkj60OmAcdOP5kKOSI76C5S/MStzX4en19/faPUAjIYC32TaC
         XyZ1tAT2NSZV4TUpvnvh/7r8X/w4JnM2Kj4pJHPMpxUnwbyNWYky+UPVWcEK1OeSf3m3
         E24O45LDN7JOWaWBUVNQZ/GGh4YVgZSe9hWpsNa4PVYUcLijApeu5FOY+8MVaaJz0DBC
         oihw==
X-Forwarded-Encrypted: i=1; AJvYcCWkfHcUTYiJythuqUW2srftAgMOHrSo7FlYSiftiOMQWBR/gEUGQLe1uKlE0wzdMRGNFLQp1g3UMX0=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx7Z8XeQzWmEIStPlxpZ0PgA3aYSfr/mJHtn1I3lc5tLnUDWjy7
	gJeU8l+i9VmSYNgnQNOvTxkB5JmnwcJEqBP6Jx4Zo7QHtgFmRwg+JwUZASNi5g/GNKTJ6Ms7igO
	D2BCHLQ==
X-Gm-Gg: ASbGncsFhazc5vyPB4sMSXluN9tUktEJn4VOyqJaxVMnk5hCStwsdvQdjDCZCmqohN9
	nCKxF7+m0uQOe2CVx8s+ff6Ql6X6tYzba269i/YlFB0QvrHxWRoL5Lm8lC8k/hgDq2usuVdTbbD
	PDootzN/7AVSXgj9He7R8FiBipqWorBNVzlpLeSDg4GSEwP4OyQpds1L73JmlqLt//3vSTFSrPM
	HVsNtDGC/Sr4Yh8yE07nJ+AgsK5Cf/8CNtonmKw7fncW0PTbsDzUIUWEGOemDOOM4GzhtT9hgvn
	/QF1SsFSDaeusYNzvmR0cM7Iw3FdJWbNEou0LkDg0mjbWtNVMu9VbrAN7MiSzv/Ta1bbJyB1cLb
	IC79hua70MJ7fuwc=
X-Google-Smtp-Source: AGHT+IEV8JaDwL18uIZZH0aUn4tNrbTxjwIXewo/wmOFPKX3/Ih3zvsh98+4Q49ZNoNuAF+GX/QyIA==
X-Received: by 2002:a17:907:97c7:b0:ace:4ed4:d428 with SMTP id a640c23a62f3a-ace84b3b270mr967276066b.57.1745857444280;
        Mon, 28 Apr 2025 09:24:04 -0700 (PDT)
X-Forwarded-Encrypted: i=1; AJvYcCWlSja1020Hgkg3cgrzTp5ACVmZzT0Z28fJhffGc3ZTR4Z8oj/3J1IAIe31IWvcm1lLBfSGNocyi64=@lists.xenproject.org
X-Received: by 2002:a17:907:608c:b0:ac3:3f11:b49d with SMTP id
 a640c23a62f3a-ace84618fafmr831890066b.0.1745857442337; Mon, 28 Apr 2025
 09:24:02 -0700 (PDT)
MIME-Version: 1.0
References: <20250425141740.734030-1-arnd@kernel.org> <aAyiganPp_UsNlnZ@gmail.com>
 <d2b0e71c-e79b-40d6-8693-3202cd894d66@app.fastmail.com> <CAHk-=wh=TUsVv6xhtzYsWJwJggrjyOfYT3kBu+bHtoYLK0M9Xw@mail.gmail.com>
 <CAHk-=wgfk69H-T-vMWR33xUpVsWJLrF34d0OwUXa2sHhtpSwZg@mail.gmail.com>
 <e54f1943-e0ff-4f59-b24f-9b5a7a38becf@citrix.com> <CAHk-=wj0S2vWui0Y+1hpYMEhCiXKexbQ01h+Ckvww8hB29az_A@mail.gmail.com>
 <aA8nF0moBYOIgC5J@gmail.com> <aA8oqKUaFU-0wb-D@gmail.com> <aA8q4Ot-1zTzv_Kt@gmail.com>
In-Reply-To: <aA8q4Ot-1zTzv_Kt@gmail.com>
From: Linus Torvalds <torvalds@linux-foundation.org>
Date: Mon, 28 Apr 2025 09:23:44 -0700
X-Gmail-Original-Message-ID: <CAHk-=wh5DUS+nhfTxPEEbaB9dsFib39gWatrX4NoFq_MpdOzGw@mail.gmail.com>
X-Gm-Features: ATxdqUEOHobK07xK1eZcXrNUILKYEsYxFZLSsdb8bVPG3MlGNjXDMTRVJr7bMKY
Message-ID: <CAHk-=wh5DUS+nhfTxPEEbaB9dsFib39gWatrX4NoFq_MpdOzGw@mail.gmail.com>
Subject: Re: [PATCH] bitops/32: Convert variable_ffs() and fls() zero-case
 handling to C
To: Ingo Molnar <mingo@kernel.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Arnd Bergmann <arnd@arndb.de>, 
	Arnd Bergmann <arnd@kernel.org>, Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>, 
	Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, 
	"H. Peter Anvin" <hpa@zytor.com>, Juergen Gross <jgross@suse.com>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, 
	Alexander Usyskin <alexander.usyskin@intel.com>, 
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>, =?UTF-8?Q?Mateusz_Jo=C5=84czyk?= <mat.jonczyk@o2.pl>, 
	Mike Rapoport <rppt@kernel.org>, Ard Biesheuvel <ardb@kernel.org>, Peter Zijlstra <peterz@infradead.org>, 
	linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"

On Mon, 28 Apr 2025 at 00:14, Ingo Molnar <mingo@kernel.org> wrote:
>
> And, just out of intellectual curiosity, I also tried to measure the
> code generation price of the +1 standards-quirk in the fls()/ffs()
> interface as well:
>
> ... and unless I messed up the patch, it seems to have a surprisingly
> low impact - maybe because the compiler can amortize its cost by
> adjusting all dependent code mostly at build time, so the +1 doesn't
> end up being generated most of the time?

No, I think one issue is that most users actually end up subtracting
one from the return value of 'ffs()', because the "bit #0 returns 1"
semantics of the standard ffs() function really is insane.

It's not just that it doesn't match sane hardware, it's also that it
doesn't match sane *users*. If bit #0 is set, people want '0', so they
typically subtract 1.

So when you stop adding one, you aren't actually removing code -
you're often adding it.

Just see how many hits you get from

    git grep '\<ffs(.*).*-.*1'

which is obviously not a very precise pattern, but just look at the
output and see just *how* common that "subtract one" thing is.

I really don't understand how anybody *ever* thought that the whole
"return one bigger" was a good idea for ffs().

Sure, I understand that zero is special and needs a special return
value, but returning a negative value would have been pretty simple
(or just do what our bitops finding functions do, which is to return
past the end, which is often convenient but does tend to make the
error condition check a bit more complex).

Anyway, the fact that so many users subtract one means that your "look
at the size of the binary" model doesn't work. You're counting both
the wins (when that addition doesn't happen) and the losses (when the
"subtract one in the user" happens).

So the "+1" doesn't cause much code generation - as long as it's done
by the compiler that can also undo it - but it's just a horrid user
interface.

But maybe people really were poisoned by the Pascal mindset. Or maybe
it was invented by some ancient Roman who hadn't heard of the concept
of zero. Who knows?

               Linus


From xen-devel-bounces@lists.xenproject.org Mon Apr 28 16:50:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 16:50:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.970947.1359474 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9Rgc-00060P-Pk; Mon, 28 Apr 2025 16:50:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 970947.1359474; Mon, 28 Apr 2025 16: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 1u9Rgc-00060I-MT; Mon, 28 Apr 2025 16:50:30 +0000
Received: by outflank-mailman (input) for mailman id 970947;
 Mon, 28 Apr 2025 16:50: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=/bS6=XO=oss.nxp.com=andrei.cherechesu@srs-se1.protection.inumbo.net>)
 id 1u9Rga-00060B-UR
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 16:50:29 +0000
Received: from AM0PR83CU005.outbound.protection.outlook.com
 (mail-westeuropeazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c201::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e2e1a526-2450-11f0-9eb4-5ba50f476ded;
 Mon, 28 Apr 2025 18:50:27 +0200 (CEST)
Received: from PA4PR04MB9565.eurprd04.prod.outlook.com (2603:10a6:102:26b::13)
 by AS8PR04MB8372.eurprd04.prod.outlook.com (2603:10a6:20b:3b3::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.33; Mon, 28 Apr
 2025 16:50:25 +0000
Received: from PA4PR04MB9565.eurprd04.prod.outlook.com
 ([fe80::d8ae:2e16:5a97:1709]) by PA4PR04MB9565.eurprd04.prod.outlook.com
 ([fe80::d8ae:2e16:5a97:1709%7]) with mapi id 15.20.8678.028; Mon, 28 Apr 2025
 16:50: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: e2e1a526-2450-11f0-9eb4-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=OtfLo8U2ei12t795PWmIX8cPci12ypzHapgol0qpMrKX7RLGT34hZu/nEpbXJDG0+soP9IrAOlJXJcdCqyfzhYmB4j1u9lM/uBp54Mse2r0hhfHeOIInTIovui8Gc8yhb5jtlDZ2NNmkoVYYyTMf9vGRYrmZ+vgJSKFiMEZWrUge5X2lGhqWWUqmRvZ7SF93lrXClHx7x1RlWdk/9i6O6h1yD8ThP3KfHvPVgNyD4852giYfzPHjhZiVwdLEqFNzW64ZC76B/lG0C+SAz72U/vStMttOzskq10ln3Mo0q+IPqEK+xwL3MftbutVQOgANJseYlcsZWG4OoMMoU84wGg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=8BraKVSYmOZ7JsglOf9Iv6k7FUr2eg/0tl+hpXWXBFg=;
 b=piF2RT0pfH0futarNfRp8eM4ffOs1yDeJ5bxwNJPM3owkBoePFoDulhOWw9yKdlWWq4Ch+aHkwLGfXr8BAXuW6/w/i6qGf81v+UMnSqAjQRtwLMLQeWA5GagZMpsEJtoge9mtMN73/TKNt5+A3yYQVDihUnSCP3yquTLxVPrcaMBDZAnh7+G/LqvQi7/PE8gIwC17iQpEWXutdpqI8OsKexuoNnXxIKFUTsfdQ14MFCMerwzIpPQmyfrR+jSLBoXPHmQE27WbE8VrtieeN/Bz+pobN9e2l0BPh3PZUNeiLImlqjINjFqbY9vdX2E714gQ5+zqEHdTICnPfMILBKtYQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com;
 dkim=pass header.d=oss.nxp.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com;
 s=selector1-NXP1-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=8BraKVSYmOZ7JsglOf9Iv6k7FUr2eg/0tl+hpXWXBFg=;
 b=SME/EFYYyKc5vuosvgSJlmG9tZ7aWp4UjLzJTOrX3t3Vk1qNC4PuJokZ5UhmN6wxFMdsf3xHD1C//jMfQHVSvUavbPKww8nQEIOQLg6is0pjrDRL5WbDCly2tWdccZyU9pXp355fiBW/1pkBsIvJyz1/90knBZXT/3ROKZlFckKUvt7+hTI+lJwTTjfwLRlszAMLskD1PNh2ywvpmME8XYxmDu1aq5LE6/TxORa0DwYj1Im/Sfn+17Ld+YZlWPX+elc71Yckt4ASopig3BbOyL53b9vmwa5o/TsOYdzgQ3Wgzh8tuz4wnXjtNL+Av44Y48Rj2c8U1GL4HgCUwtIgjw==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=oss.nxp.com;
Message-ID: <d819d5e2-39ac-4542-a6e5-9a2ad1d94149@oss.nxp.com>
Date: Mon, 28 Apr 2025 19:49:56 +0300
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v7] uboot-script-gen: Dynamically compute addr and size
 when loading binaries
To: Stefano Stabellini <sstabellini@kernel.org>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <alpine.DEB.2.22.394.2504251631190.785180@ubuntu-linux-20-04-desktop>
 <PA4PR04MB9565F823E4231F7A27557C93F9812@PA4PR04MB9565.eurprd04.prod.outlook.com>
Content-Language: en-US
From: Andrei Cherechesu <andrei.cherechesu@oss.nxp.com>
Cc: Michal Orzel <michal.orzel@amd.com>, jason.andryuk@amd.com,
 dmkhn@proton.me, Andrei Cherechesu <andrei.cherechesu@nxp.com>,
 "S32@nxp.com" <S32@nxp.com>
In-Reply-To: <PA4PR04MB9565F823E4231F7A27557C93F9812@PA4PR04MB9565.eurprd04.prod.outlook.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: AS4P195CA0019.EURP195.PROD.OUTLOOK.COM
 (2603:10a6:20b:5d6::6) To PA4PR04MB9565.eurprd04.prod.outlook.com
 (2603:10a6:102:26b::13)
MIME-Version: 1.0
X-MS-Exchange-MessageSentRepresentingType: 1
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: PA4PR04MB9565:EE_|AS8PR04MB8372:EE_
X-MS-Office365-Filtering-Correlation-Id: 44d8cc63-a434-434c-dc23-08dd8674c5a6
X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True
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?cFNKdHJGYkNoQ3VPcVpJdU5WQ3Z0YnVuUWxxVEVRUGpGeGpEdXRPMU5kM2Ex?=
 =?utf-8?B?a2VNSVhhdTZwTHNnVElqVTN0LzZqSTNhMkZQWHJSaEpWS0JMbUY1U3NRSTFX?=
 =?utf-8?B?T21QVktFSC9XZktsQUo0ZDlZY094bm5LUk1idmU2UEFxaVJoVk55dDZCUjdU?=
 =?utf-8?B?dDVJeXN5TnNBcmFtaWtQbytrNFFnWnlrenVqOTNKZ2ozSm5hVWRnRHNKWTda?=
 =?utf-8?B?ZmFlU0FBU2JWdFhVTWpLZHBCcXlRWVJaMy9BczJ1MjRNUFVxME00YjRBcytK?=
 =?utf-8?B?M1dGODZzbW9XQWR6a2RrQlNMUk1sZTNWakF6TlZ3WjhhU2xxMnBIMTJOOWRs?=
 =?utf-8?B?NUdoR25hQUxnK0wvdmNoWDJzZVlhd2ZyQ1o0VWRxcHRobHZZREdYNytBWlR0?=
 =?utf-8?B?amFDNlhHYWpMb1pqUXJUZ3Jja1ZuUytiMFdieEtmdjZZTDNKQVhGcDBGTjQw?=
 =?utf-8?B?UStsQSs4RTBtVXk4L0FyL1E3T2RUWVIxaE9ka1hjcWVNaGJkUUo2Z3BqUXgr?=
 =?utf-8?B?S3ZCU0Q4WmVEUW93MVhENjlxalZPSEo4NXNvenVDSE1ONjZIMnpqZDhrUEo4?=
 =?utf-8?B?ZDk2aHZIejNuUjkxNGw0RWV4bHhSRGJlbjdES0xqUmJYS2lTQWhybzlvN0F6?=
 =?utf-8?B?VHE0czIrQTN4NExhQWZTNW9oZ3pqMWxTZlltN0wzMFE2ejdZYXp2MHFFOGI3?=
 =?utf-8?B?cmkwTk52WnEwQUpPY09pUnJuQStoNDh2R0xVZk42a2FyVWdwa214N0NmdVZV?=
 =?utf-8?B?cDNVajlVODZoTG1QT3hPWERPNU5hMU14a1NIMkFTS1hhdVNtMkN4REFnWDBp?=
 =?utf-8?B?cnlPTnA1MmZhclRSdFJKcDZMVWdJSWpSNHorWnM0OFUvVU81VWdOcXo4RitT?=
 =?utf-8?B?WGhUQ0EyQUpxdklBcng4dmhXMVZ2RXdFN0JNR0R6SjY4WWZIamY1Y1Fqc0NV?=
 =?utf-8?B?Mkc3MkI4OWdsbUI5VzlNenNSMzhjOVo1WHBoMnU5bE9zcFRDM0FiWDNJSlZl?=
 =?utf-8?B?MVEwUzMzV0FXSTM1dWtkWVV2RVRab1RKci84U0hFY0xDUG40bCtrNnc3ZkV0?=
 =?utf-8?B?RTdoU0JobmFnMXNyWUNCT3VjYlQ1b3picFBQVWRMRG5HMVZBWnBTc1lVUnVI?=
 =?utf-8?B?N3M5ZlBPNWMvYks1aGRmdGdTRUdlMFY5NW05Wk5pSUNDbXlyK2NibXlFc3E2?=
 =?utf-8?B?d0g1N010UVl3VWhKVkt3WHJHbDRsMEFjUlcxcEZYYjI1ZlJuY04wQkpmU2FK?=
 =?utf-8?B?NitOU04wZUF5MEVzY0FhTVBsNzlCN0dlNGpnVWhZQVBJNytrd0VoemhLendy?=
 =?utf-8?B?R3lXZGllRU1CVlpuQlRzd2JIQzgzRzdxNVlBSGFGZE43ckNwUkU0RlZoak1C?=
 =?utf-8?B?UkdzYUZJNVo5a2VqSjdXdHRrN3BIUXJFVjB4aVdJaDh4bnVQdXFkdThNUWVu?=
 =?utf-8?B?cy9mZjU1ckRIR0xWSFNNOWlTNUZJanVrUThJN2NveVJsVmxZeVVEbkhaRjJa?=
 =?utf-8?B?TEh2RVZlYWFUTFc5aFZmSnQwSnRyeU94eUhDSFN5eURQZE1lb0RRZ1h4YjAr?=
 =?utf-8?B?alJPc3p6NlFIUjhCZW1vOFZGVURuY2JMdmRYZys2NUR5NUs2QmhWNW5ZNGtp?=
 =?utf-8?B?dnU3dkM0QjBMNlRTajZSN0tVZW5NaDV4cW0raEh6K25INkFOZlROQUNpS1Ju?=
 =?utf-8?B?Q3FTNVlyOUFrSDNGbjhVMEowcFNUdUx5Qi9ubTd4OHloUkk2Smx6eWJVUjFE?=
 =?utf-8?B?TXUyM1FPNGZtNFNzNzlJRXY1Y2xYZTlyQXFXZUN1citsR29BWFhaWEh4bnky?=
 =?utf-8?Q?M84JHayZSycYABzw+heL1g7O+hKkxaQPmMD0w=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PA4PR04MB9565.eurprd04.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?aVg5NWJ4SGxKYjhMbDJKUndweDhnRkxZWGdqUStCcXorMU1GM3l3akxCUnNy?=
 =?utf-8?B?OSs5ajVOMHNSR1BHSVA5endNdTZ0c3kxVFVFNUpsYVZsY3BEemp1UTdPZjli?=
 =?utf-8?B?L012UlFZSFpJS3NCOGMxN3ZOd0NlRDI0dTZaaTZMcUlnWU12NWZuRzNRc0FN?=
 =?utf-8?B?endKWWJTV2pncXA5Wmg3MzBuTnVqeDF6Nk03d2dvRnduTGRvRlZxVkpZZWlU?=
 =?utf-8?B?YXROaE0rVzBPczFPSlVnK3dqSmFhcUVSNkxWaGpUSGFjeDRHZlFTUVl5MjNF?=
 =?utf-8?B?aG1EM3hTUHdRSkFBb3k4L3Z0bWhtUlA0WlNRcThsTUk5TmRBZVJwTkpSWnBL?=
 =?utf-8?B?Uk5yRTBEOWg5NnNHR0Rzb05sS241SHY3cGNWYTR0SnlzRENPb0Q4K2kzTmNt?=
 =?utf-8?B?NHVjZFZXbVFmeGhaSS9Sb245c1NnMmxOZ2ZabWJFcUhaU3hjZEhMaUdLd2h4?=
 =?utf-8?B?NGxacTZXeUEvM2g3UkhSdUxRZEdWZ3hla0JZYVdUbDNmck9Xc3gzMHA5TEVx?=
 =?utf-8?B?QUFiRXBxTytyTjlmYzRucGhjTG1pWERGYmI0YmFYOXNpUEdsdjhHWVNkemdq?=
 =?utf-8?B?dGdFS2daTG9ud2FSUGd0cDhYZ2w2aGNXUHJKY2ZKOU5KZzl6cXVZdUdmcjFK?=
 =?utf-8?B?SHAzd1NUMHhGcDJvbFBOemdHcTlKVFVPVjEzTGxpbEVQc0wwR1dSNURUeGww?=
 =?utf-8?B?T090YktncDVPTVpGUkxFVU0zSGEwRWZuVUt5ZnFJYnl4LzFaYXJjd0dwY1h3?=
 =?utf-8?B?TmpqWVFCT0tRN2FjeEJJc3VFL2MyUkRYNnlFVnliR1VJOGh3azZQUGRsR3Yy?=
 =?utf-8?B?MFBVMm1PcXBxVXh4RldzOTBrMDljOVo3cTUwSE1ncnpBNW1TQzVGanl2QnRn?=
 =?utf-8?B?MWhzZWhXVVdSbVVmMFA5ZXZ5NHVydEVKQUJkM0pJSzRka3VmVWtWRnFEU1pu?=
 =?utf-8?B?bHRhREJxMVVDYmprSlIvRnVEWDlldVd2YkNQZ1Fack9jb2t4eVkxTFd4T085?=
 =?utf-8?B?Z3lYY2Y3dEhTeVNJaXhncGxaaW4yaHB5RStseGovSHk5Uzg2WjkxZTlDYXRX?=
 =?utf-8?B?b1I5aGc4TzhIbTJyRUR4Z0FPM0JoLzQyUTVmZFRpWXI0VXZLL09IdVV5S0FY?=
 =?utf-8?B?VWw3SW5Ma0hnWmlGVytTM2plZUEyTW9vUjdIV1V0TjJCb29MMHdZdVQ3ckJP?=
 =?utf-8?B?azFzdHZmSGg5WFV1ZEx6L0VaUHpjMlk1U2FkYlB0bmdDVzFneXM1Yi95ZWZK?=
 =?utf-8?B?TFM4amZTazJvQnNrQzlpcjVJc1NvMWluSzQ1VHhhQnhMTDZhWEdFUVNqZHZn?=
 =?utf-8?B?ajZKTjBybE5mWjRxbXVwTnBPN095Z1pDMzdzT3VlVGQ2aWZSVWp3Sys5d28z?=
 =?utf-8?B?Njl0L2d3T0tYVGVpeWRMMldKM3FjRkZXK0ZmalFDK2pld2Q4VjVNYk9PaEpY?=
 =?utf-8?B?QWU1cEV6VXh3c1VuRnVWbWpMZktYSC9iZFNERElxTnFLY0tYTytFdmNwbG5i?=
 =?utf-8?B?ODZ5SjJsN3phY3R5eDJLUzVnRHYzVnRRVUdNSHdMOXNUeVlJVzhmUklzNGxN?=
 =?utf-8?B?VEt5U1JUb2V1Rnp6MDZVYmZXM3FwSjNDMUM5WHcwM3V0V2Fqb0c4Z1lDcVJQ?=
 =?utf-8?B?OUVqaXFTSFlGdTdpUGhsSkdZMXhiK1l3MFk2ZUlCQ1dlTURpL3VPbXNtN1E1?=
 =?utf-8?B?b3JwWkxnQ3ZWOEsyZW40blpKSEJmYjJaekpVbkRSdHZvSVowZm5uOWpjQ05B?=
 =?utf-8?B?ckZBZ3M3amxFQlpvNVJyUVFvM3NSZXhJajZISzRWcndXZkt4b3QrQm9TUjhQ?=
 =?utf-8?B?aXNVVmsvMHV3djhDVWoyMjFPbzIwWGVqaXU1SHpBdENnL3ZsS2djbm1WVnJH?=
 =?utf-8?B?UzFkV1JZSm51WFg3SUh2NTJla3VZOHVYOUdtTFRJRTVtNCt6eW15anJJVWtq?=
 =?utf-8?B?MmdCd1NYaFhTbXVPUnlqdXY1QTFGc0xyOGhEVmxEbjBhUzBrdkxIYW9HNWxP?=
 =?utf-8?B?N1p5Z1hGc0RyWkJpU1prUm4vdmF1cXI2NjROVHlIclJXRXRkTkQ1V09JeU9L?=
 =?utf-8?B?TkJqZFgzN3N2ckhQVStYRjIyTmZXK3FDUkx1UmNMT0tUM3ZBS0RFRWZYVHpu?=
 =?utf-8?B?MG1ZV2N5Y3h3UUF0QnBKNkh0OHpHRDlsWnVoNXdnQ1VQWTZYMElqcGhjbG1Q?=
 =?utf-8?B?cVE9PQ==?=
X-OriginatorOrg: oss.nxp.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 44d8cc63-a434-434c-dc23-08dd8674c5a6
X-MS-Exchange-CrossTenant-AuthSource: PA4PR04MB9565.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Apr 2025 16:50:25.0936
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 5UtDAzTrBYlWYUfEENL/LSy08YG7iXQUMvQV7fdqIM90daPqhZhIXieRzFvPQyryiLbXEK2sYo6RToWROAft976nc2jwytDsQwPy2WNmb70=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB8372

Hi Stefano,

On 26/04/2025 02:35, Stefano Stabellini wrote:
> From: Andrei Cherechesu <andrei.cherechesu@oss.nxp.com>
>
> Normally, the Imagebuilder would precompute the sizes of the loaded binaries and addresses where they are loaded before generating the script, and the sizes and addresses that needed to be provided to Xen via /chosen would be hardcoded in the boot script.
>
> Added an option via "-s" parameter to avoid hardcoding any address in the boot script, and dynamically compute the loading addresses for binaries. The first loading address is based on the MEMORY_START parameter and after loading each binary, the loading address and the size of the binary are stored in variables with corresponding names. Then, the loading address for the next binary is computed and aligned to 0x200000.
>
> If the "-s" parameter is not used, the normal flow is executed, where the loading addresses and sizes for each binaries are precomputed and hardcoded inside the script, but the loading addresses and sizes for each binary are now also stored for eventual later use.
>
> Reserved memory regions are left TBD in the -s case.
>
> Link: https://lists.xenproject.org/archives/html/xen-devel/2022-09/msg01862.html
> Signed-off-by: Andrei Cherechesu <andrei.cherechesu@nxp.com>
> Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
> ---
> Changes in v7:
> - use $()
> - better description and alphabetical order
> - use heredoc
>
> Changes in v6:
> - make initial ${memaddr} setting depending on CALC
>
> This patch adds quite a bit of complexity which is the reason why I didn't originally commit it. Now that we are enabling ImageBuilder in Yocto, it turns out this patch is required because Yocto invokes ImageBuilder before all the binaries are ready and available.
>
> Andrei, sorry for taking so long to realize why it is essential, but we are getting there now.

I'm very glad that you're finding it useful too now!

The original problem for us was not related to building with
Imagebuilder from Yocto, but this was rather done to help users
have more flexibility with the actual binaries they're
deploying on target (more specifically, with their sizes).

In other words, as long as the same file names are used, their
corresponding sizes do not need to be hard-coded too in the
script, since we can dynamically figure them out and write them
to /chosen. As such, the binaries (xen, kernel image, fdt,
ramdisks) can be replaced without regenerating the boot script
and caring about their sizes.

Regarding building from Yocto, in our case, we're invoking
Imagebuilder from some separate recipe after everything has
been built. The only situation that comes to mind where it's a
bit more tricky to wait for the artifacts to be ready is for the
ramdisk/initramfs ones, but it can be done too. So it can work
both with precomputed and dynamic addresses.

>
> The changes I made to the original patch are purely to make it simpler to maintain.

Thank you for taking the time to refactor and resend it!
Please also see my comments below.

> ---
>
> diff --git a/README.md b/README.md
> index f8039ec..28c9e6b 100644
> --- a/README.md
> +++ b/README.md
> @@ -356,6 +356,8 @@ Where:\
>     can only be used  in combination with the -k option.  This adds the
>     public key into the dtb.  Then one can add this dtb back into the
>     u-boot bin or elf.\
> +-s addresses and sizes are calculated dynamically from U-Boot, hence
> +   binaries don't need to be available at the time of invocation.\
>
>  ### Signed FIT images
>
> diff --git a/scripts/uboot-script-gen b/scripts/uboot-script-gen index 638154a..73d9600 100755
> --- a/scripts/uboot-script-gen
> +++ b/scripts/uboot-script-gen
> @@ -1,8 +1,11 @@
>  #!/bin/bash
>
>  offset=$((2*1024*1024))
> +PADDING_MASK=$(printf "0x%X\n" $(($offset - 1)))
> +PADDING_MASK_INV=$(printf "0x%X\n" $((~$PADDING_MASK)))
>  filesize=0
>  prog_req=(mkimage file fdtput mktemp awk od)
> +CALC=""
>
>  function cleanup_and_return_err()
>  {
> @@ -100,17 +103,40 @@ function dt_set()
>      fi
>  }
>
> +function dt_set_calc()
> +{
> +    local path=$1
> +    local var=$2
> +    local name_var=$3
> +
> +    local addr_var="$name_var"_addr
> +    local size_var="$name_var"_size
> +
> +    cat >> $UBOOT_SOURCE <<- EOF
> +       setexpr addr_hi \${$addr_var} / 0x100000000
> +       setexpr addr_lo \${$addr_var} \& 0xFFFFFFFF
> +       setexpr size_hi \${$size_var} / 0x100000000
> +       setexpr size_lo \${$size_var} \& 0xFFFFFFFF
> +       fdt set $path $var <0x\${addr_hi} 0x\${addr_lo} 0x\${size_hi} 0x\${size_lo}>
> +       EOF
> +}
> +
>  function add_device_tree_kernel()
>  {
>      local path=$1
> -    local addr=$2
> -    local size=$3
> -    local bootargs=$4
> +    local name=$2
> +    local addr=$3
> +    local size=$4
> +    local bootargs=$5
>      local node_name="module@${addr#0x}"
>
>      dt_mknode "$path" "$node_name"
>      dt_set "$path/$node_name" "compatible" "str_a" "multiboot,kernel multiboot,module"
> -    dt_set "$path/$node_name" "reg" "hex"  "$(split_addr_size $addr $size)"
> +    if test "$CALC"; then
> +        dt_set_calc "$path/$node_name" "reg" $name
> +    else
> +        dt_set "$path/$node_name" "reg" "hex"  "$(split_addr_size $addr $size)"
> +    fi
>      dt_set "$path/$node_name" "bootargs" "str" "$bootargs"
>  }
>
> @@ -118,26 +144,36 @@ function add_device_tree_kernel()  function add_device_tree_ramdisk()  {
>      local path=$1
> -    local addr=$2
> -    local size=$3
> +    local name=$2
> +    local addr=$3
> +    local size=$4
>      local node_name="module@${addr#0x}"
>
>      dt_mknode "$path"  "$node_name"
>      dt_set "$path/$node_name" "compatible" "str_a" "multiboot,ramdisk multiboot,module"
> -    dt_set "$path/$node_name" "reg" "hex"  "$(split_addr_size $addr $size)"
> +    if test "$CALC"; then
> +        dt_set_calc "$path/$node_name" "reg" $name
> +    else
> +        dt_set "$path/$node_name" "reg" "hex"  "$(split_addr_size $addr $size)"
> +    fi
>  }
>
>
>  function add_device_tree_passthrough()
>  {
>      local path=$1
> -    local addr=$2
> -    local size=$3
> +    local name=$2
> +    local addr=$3
> +    local size=$4
>      local node_name="module@${addr#0x}"
>
>      dt_mknode "$path"  "$node_name"
>      dt_set "$path/$node_name" "compatible" "str_a" "multiboot,device-tree multiboot,module"
> -    dt_set "$path/$node_name" "reg" "hex"  "$(split_addr_size $addr $size)"
> +    if test "$CALC"; then
> +        dt_set_calc "$path/$node_name" "reg" $name
> +    else
> +        dt_set "$path/$node_name" "reg" "hex"  "$(split_addr_size $addr $size)"
> +    fi
>  }
>
>  function add_device_tree_mem()
> @@ -358,7 +394,11 @@ function xen_device_tree_editing()
>
>          dt_mknode "/chosen" "$node_name"
>          dt_set "/chosen/$node_name" "compatible" "str_a" "xen,xsm-policy xen,multiboot-module multiboot,module"
> -        dt_set "/chosen/$node_name" "reg" "hex" "$(split_addr_size $xen_policy_addr $xen_policy_size)"
> +        if test "$CALC"; then
> +            dt_set_calc "/chosen/$node_name" "reg" "xen_policy"
> +        else
> +            dt_set "/chosen/$node_name" "reg" "hex" "$(split_addr_size $xen_policy_addr $xen_policy_size)"
> +        fi
>      fi
>
>      if test "$DOM0_KERNEL"
> @@ -367,7 +407,11 @@ function xen_device_tree_editing()
>
>          dt_mknode "/chosen" "$node_name"
>          dt_set "/chosen/$node_name" "compatible" "str_a" "xen,linux-zimage xen,multiboot-module multiboot,module"
> -        dt_set "/chosen/$node_name" "reg" "hex" "$(split_addr_size $dom0_kernel_addr $dom0_kernel_size)"
> +        if test "$CALC"; then
> +            dt_set_calc "/chosen/$node_name" "reg" "dom0_linux"
> +        else
> +            dt_set "/chosen/$node_name" "reg" "hex" "$(split_addr_size $dom0_kernel_addr $dom0_kernel_size)"
> +        fi
>          dt_set "/chosen" "xen,dom0-bootargs" "str" "$DOM0_CMD"
>      fi
>
> @@ -377,7 +421,11 @@ function xen_device_tree_editing()
>
>          dt_mknode "/chosen" "$node_name"
>          dt_set "/chosen/$node_name" "compatible" "str_a" "xen,linux-initrd xen,multiboot-module multiboot,module"
> -        dt_set "/chosen/$node_name" "reg" "hex" "$(split_addr_size $ramdisk_addr $ramdisk_size)"
> +        if test "$CALC"; then
> +            dt_set_calc "/chosen/$node_name" "reg" "dom0_ramdisk"
> +        else
> +            dt_set "/chosen/$node_name" "reg" "hex" "$(split_addr_size $ramdisk_addr $ramdisk_size)"
> +        fi
>      fi
>
>      i=0
> @@ -464,14 +512,14 @@ function xen_device_tree_editing()
>
>          xen_dt_domu_add_vcpu_nodes "/chosen/domU$i" $i ${DOMU_VCPUS[$i]}
>
> -        add_device_tree_kernel "/chosen/domU$i" ${domU_kernel_addr[$i]} ${domU_kernel_size[$i]} "${DOMU_CMD[$i]}"
> +        add_device_tree_kernel "/chosen/domU$i" "domU${i}_kernel" ${domU_kernel_addr[$i]} ${domU_kernel_size[$i]} "${DOMU_CMD[$i]}"
>          if test "${domU_ramdisk_addr[$i]}"
>          then
> -            add_device_tree_ramdisk "/chosen/domU$i" ${domU_ramdisk_addr[$i]} ${domU_ramdisk_size[$i]}
> +            add_device_tree_ramdisk "/chosen/domU$i" "domU${i}_ramdisk"
> + ${domU_ramdisk_addr[$i]} ${domU_ramdisk_size[$i]}
>          fi
>          if test "${domU_passthrough_dtb_addr[$i]}"
>          then
> -            add_device_tree_passthrough "/chosen/domU$i" ${domU_passthrough_dtb_addr[$i]} ${domU_passthrough_dtb_size[$i]}
> +            add_device_tree_passthrough "/chosen/domU$i" "domU${i}_fdt"
> + ${domU_passthrough_dtb_addr[$i]} ${domU_passthrough_dtb_size[$i]}
>          fi
>          i=$(( $i + 1 ))
>      done
> @@ -504,7 +552,11 @@ function device_tree_editing()
>
>      if test $UBOOT_SOURCE
>      then
> -        echo "fdt addr $device_tree_addr" >> $UBOOT_SOURCE
> +        if test "$CALC"; then
> +            echo "fdt addr \${host_fdt_addr}" >> $UBOOT_SOURCE
> +        else
> +            echo "fdt addr $device_tree_addr" >> $UBOOT_SOURCE
> +        fi
>          echo "fdt resize 1024" >> $UBOOT_SOURCE
>
>          if test $NUM_DT_OVERLAY && test $NUM_DT_OVERLAY -gt 0 @@ -512,7 +564,11 @@ function device_tree_editing()
>              i=0
>              while test $i -lt $NUM_DT_OVERLAY
>              do
> -                echo "fdt apply ${dt_overlay_addr[$i]}" >> $UBOOT_SOURCE
> +                if test "$CALC"; then
> +                    echo "fdt apply \${host_fdto${i}_addr}" >> $UBOOT_SOURCE
> +                else
> +                    echo "fdt apply ${dt_overlay_addr[$i]}" >> $UBOOT_SOURCE
> +                fi
>                  i=$(( $i + 1 ))
>              done
>          fi
> @@ -530,8 +586,12 @@ function fill_reserved_spaces_from_dtb()  {
>      if [ ! -f $DEVICE_TREE ]
>      then
> -        echo "File $DEVICE_TREE doesn't exist, exiting";
> -        cleanup_and_return_err
> +        if test "$CALC"; then
> +            return
> +        else
> +            echo "File $DEVICE_TREE doesn't exist, exiting";
> +            cleanup_and_return_err
> +        fi
>      fi
>
>      # Check if reserved-memory node exists @@ -613,7 +673,7 @@ function get_image_size()
>      printf "%u" $effective_size
>  }
>
> -function add_size()
> +function add_size_from_file()
>  {
>      local filename=$1
>      local size=`stat -L --printf="%s" $filename` @@ -645,6 +705,26 @@ function add_size()
>      filesize=$size
>  }
>
> +function add_size_calculate()
> +{
> +    local fit_scr_name=$1
> +
> +    cat >> $UBOOT_SOURCE <<- EOF
> +       setenv "$fit_scr_name"_addr \${memaddr}
> +       setenv "$fit_scr_name"_size \${filesize}

The quotes here should also be removed, since quotes are literals
in heredoc:
    setenv ${fit_scr_name}_addr \${memaddr}
    setenv ${fit_scr_name}_size \${filesize}

Otherwise, we'll be getting this in the actual boot script
    setenv "dom0_linux"_addr ${memaddr}
    setenv "dom0_linux"_size ${filesize}

instead of
    setenv dom0_linux_addr ${memaddr}
    setenv dom0_linux_size ${filesize}

> +       setexpr memaddr \${memaddr} \+ \${filesize}
> +       setexpr memaddr \${memaddr} \+ $PADDING_MASK
> +       setexpr memaddr \${memaddr} \& $PADDING_MASK_INV
> +       EOF
> +
> +    # TODO: missing ${RESERVED_MEM_SPACES[@]} check
> +
> +    # The following are updated to avoid collisions in node names, but
> +    # they are not actively used.
> +    memaddr=$((memaddr + offset))

I know you want to make this patch less complicated and I agree
with that, since there was originally some more logic here which
was not necessarily needed and was complicating things.

But even though this variable is only needed for 'module@..."
node names, I think we should at least convert it to hex, to
avoid getting confusing node names, like:
    fdt mknod /chosen/domU0 module@2239758336

Keeping this here should be enough:
    memaddr=$(printf "0x%X\n" $memaddr)

> +    filesize=$offset
> +}
> +
>  function load_file()
>  {
>      local filename=$1
> @@ -657,10 +737,16 @@ function load_file()
>      if test "$FIT"
>      then
>          echo "imxtract \$fit_addr $fit_scr_name $memaddr" >> $UBOOT_SOURCE
> +        add_size_from_file $filename
>      else
> -        echo "$LOAD_CMD $memaddr ${prepend_path:+$prepend_path/}$relative_path" >> $UBOOT_SOURCE
> +        if test "$CALC"; then
> +            echo "$LOAD_CMD \${memaddr} ${prepend_path:+$prepend_path/}$relative_path" >> $UBOOT_SOURCE
> +            add_size_calculate $fit_scr_name
> +        else
> +            echo "$LOAD_CMD $memaddr ${prepend_path:+$prepend_path/}$relative_path" >> $UBOOT_SOURCE
> +            add_size_from_file $filename
> +        fi
>      fi
> -    add_size $filename
>  }
>
>  function check_file_type()
> @@ -670,8 +756,13 @@ function check_file_type()
>
>      if [ ! -f $filename ]
>      then
> -        echo "File $filename doesn't exist, exiting";
> -        cleanup_and_return_err
> +        if test "$CALC"
> +        then
> +            return
> +        else
> +            echo "File $filename doesn't exist, exiting";
> +            cleanup_and_return_err
> +        fi
>      fi
>
>      # if file doesn't know what it is, it outputs data, so include that @@ -705,8 +796,13 @@ function check_compressed_file_type()
>
>      if [ ! -f $filename ]
>      then
> -        echo "File $filename doesn't exist, exiting";
> -        cleanup_and_return_err
> +        if test "$CALC"
> +        then
> +            return
> +        else
> +            echo "File $filename doesn't exist, exiting";
> +            cleanup_and_return_err
> +        fi
>      fi
>
>      file_type=$( file -L $filename )
> @@ -872,6 +968,12 @@ function linux_config()
>  generate_uboot_images()
>  {
>      local arch=$(file -L $XEN | grep -E 'ARM64|Aarch64')
> +
> +    if test "$CALC"
> +    then
> +        echo "bootm is not compatible with -s"
> +        cleanup_and_return_err
> +    fi
>
>      if test "$arch"
>      then
> @@ -997,7 +1099,11 @@ bitstream_load_and_config()
>          if test "$UBOOT_SOURCE"
>          then
>              # we assume the FPGA device is 0 here
> -            echo "fpga load 0 $bitstream_addr $bitstream_size" >> "$UBOOT_SOURCE"
> +            if test "$CALC"; then
> +                echo "fpga load 0 \${fpga_bitstream_addr} \${fpga_bitstream_size}" >> "$UBOOT_SOURCE"
> +            else
> +                echo "fpga load 0 $bitstream_addr $bitstream_size" >> "$UBOOT_SOURCE"
> +            fi
>          fi
>      fi
>  }
> @@ -1271,7 +1377,7 @@ function print_help  {
>      script=`basename "$0"`
>      echo "usage:"
> -    echo "     $script -c CONFIG_FILE -d DIRECTORY [-t LOAD_CMD] [-o FILE] [-k KEY_DIR/HINT [-u U-BOOT_DTB]] [-e] [-f] [-p PREPEND_PATH]"
> +    echo "     $script -c CONFIG_FILE -d DIRECTORY [-t LOAD_CMD] [-o FILE] [-k KEY_DIR/HINT [-u U-BOOT_DTB]] [-e] [-f] [-p PREPEND_PATH] [-s]"
>      echo "     $script -h"
>      echo "where:"
>      echo "     CONFIG_FILE - configuration file"
> @@ -1289,13 +1395,14 @@ function print_help
>      echo "     -f - enable generating a FIT image"
>      echo "     PREPEND_PATH - path to be appended before file names to match deploy location within rootfs"
>      echo "     -h - prints out the help message and exits "
> +    echo "     -s - let U-Boot calculate binary images load addresses/sizes dynamically"
>      echo "Defaults:"
>      echo "     CONFIG_FILE=$cfg_file, UBOOT_TYPE=\"LOAD_CMD\" env var, DIRECTORY=$uboot_dir"
>      echo "Example:"
>      echo "     $script -c ../config -d ./build42 -t \"scsi load 1:1\""
>  }
>
> -while getopts ":c:t:d:ho:k:u:fp:" opt; do
> +while getopts ":c:t:d:ho:k:u:fp:s" opt; do
>      case ${opt} in
>      t )
>          case $OPTARG in
> @@ -1340,6 +1447,9 @@ while getopts ":c:t:d:ho:k:u:fp:" opt; do
>      p )
>          prepend_path="$OPTARG"
>          ;;
> +    s )
> +        CALC=y
> +        ;;
>      h )
>          print_help
>          exit 0
> @@ -1533,6 +1643,10 @@ uboot_addr=$memaddr  # 2MB are enough for a uboot script  memaddr=$(( $memaddr + $offset ))  memaddr=`printf "0x%X\n" $memaddr`
> +if test "$CALC"
> +then
> +    echo "setenv memaddr $memaddr" >> $UBOOT_SOURCE fi
>
>  fill_reserved_spaces_from_dtb
>
> @@ -1583,7 +1697,11 @@ fi
>
>  if [ "$BOOT_CMD" != "none" ]
>  then
> -    echo "$BOOT_CMD $kernel_addr $([ "$BOOT_CMD" = "bootefi" ] || echo '-') $device_tree_addr" >> $UBOOT_SOURCE
> +    if test "$CALC"; then
> +        echo "$BOOT_CMD \${host_kernel_addr} $([ "$BOOT_CMD" = "bootefi" ] || echo '-') \${host_fdt_addr}" >> $UBOOT_SOURCE
> +    else
> +        echo "$BOOT_CMD $kernel_addr $([ "$BOOT_CMD" = "bootefi" ] || echo '-') $device_tree_addr" >> $UBOOT_SOURCE
> +    fi
>  else
>      # skip boot command but store load addresses to be used later
>      echo "setenv host_kernel_addr $kernel_addr" >> $UBOOT_SOURCE

With the above changes,

Reviewed-by: Andrei Cherechesu <andrei.cherechesu@nxp.com>


Thank you!

Regards,
Andrei Cherechesu



From xen-devel-bounces@lists.xenproject.org Mon Apr 28 18:16:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 18:16:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.970969.1359483 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9T1I-0000FH-PQ; Mon, 28 Apr 2025 18:15:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 970969.1359483; Mon, 28 Apr 2025 18:15: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 1u9T1I-0000FA-Mf; Mon, 28 Apr 2025 18:15:56 +0000
Received: by outflank-mailman (input) for mailman id 970969;
 Mon, 28 Apr 2025 18:15:56 +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 1u9T1I-0000F4-6A
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 18:15:56 +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 1u9T1H-00Aevw-1P;
 Mon, 28 Apr 2025 18:15:55 +0000
Received: from [2a02:8012:3a1:0:8834:9d13:966f:8422]
 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 1u9T0z-009HEx-1S;
 Mon, 28 Apr 2025 18: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>
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=CGsjptbbwc60DbYw4GwHm0zOz8DnBV1eXKDU05rOr+0=; b=IzDlst2Lb9ZgZRFU3Kf9mqzS38
	ypovxfOcrBTTdvRlgjuVE37qxdgeMBZ/Xcv0nMjLTEPbFwtHZ/pDar81FdIo/2fZPQSLbPuBZ4sAa
	YYMauY9ve7IT4J5zMe+XL07l8dKtqzAiD1WLz/B+eMgmPcmPNCJZDAJbm2z6noHpzGvg=;
Message-ID: <ac7fe0d4-dc3b-4322-9df6-01adac02de4a@xen.org>
Date: Mon, 28 Apr 2025 19:15:02 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v9 7/8] xen/arm: enable dom0 to use PCI devices with
 pci-passthrough=no
Content-Language: en-GB
To: Mykyta Poturai <Mykyta_Poturai@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Stewart Hildebrand <stewart.hildebrand@amd.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>,
 Anthony PERARD <anthony.perard@vates.tech>, Jan Beulich <jbeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <cover.1741958647.git.mykyta_poturai@epam.com>
 <132afbca390edd6e9fd7b1ffacf6c5aff0d29aa7.1741958647.git.mykyta_poturai@epam.com>
 <7d376741-ff23-4618-83bd-415c8d8fa24e@xen.org>
 <ae2c8d37-e350-4125-921f-3d320c28d6cd@epam.com>
 <a1715315-f4c8-4062-89db-e2df7b22865b@xen.org>
 <c61acb06-4770-434d-8158-d7e0b4b32f04@epam.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <c61acb06-4770-434d-8158-d7e0b4b32f04@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Mykyta,

On 28/04/2025 15:28, Mykyta Poturai wrote:
> On 28.04.25 15:55, Julien Grall wrote:
>> Hi,
>>
>> On 28/04/2025 13:31, Mykyta Poturai wrote:
>>> On 28.04.25 11:54, Julien Grall wrote:
>>>> Hi Mykyta,
>>>>
>>>> On 14/03/2025 13:34, Mykyta Poturai wrote:
>>>>> From: Stewart Hildebrand <stewart.hildebrand@amd.com>
>>>>>
>>>>> Enable the use of IOMMU + PCI in dom0 without having to specify
>>>>> "pci-passthrough=yes". We rely on dom0 to initialize the PCI controller
>>>>> and perform a PHYSDEVOP_pci_device_add call to add each device to SMMU.
>>>>
>>>> It would be good to explain why Xen cannot initialize the PCI
>>>> controller. Asking, because the reason is the PCI controller is too
>>>> complex, then you will likely need the same approach for PCI
>>>> passthrough...
>>>
>>> I think the main reason for this is complexity and the possibility of
>>> additional dependencies: there could be external clocks or reset pins
>>> that the PCI host depends on for working correctly. I will add this to
>>> the commit message. Regarding PCI passthrough, it is already using the
>>> same approach (at least on Arm). There are patches for enabling Xen on
>>> Arm to perform bus enumeration by itself by Luca Fancellu, but I haven't
>>> yet got to test them in a meaningful way.
>>
>> Can you provide a link to the series? I would like to make sure we have
>> a coherent approach. In particular, it is not clear to me how Dom0 and
>> Xen will be able to coordinate the access to the PCI controller. Are we
>> going to have a mediator?
>>
> 
> Here is a link to my WIP branch
> https://github.com/Deedone/xen/tree/pci_passthrough_wip
> Although it is slightly outdated due to recent review activity, I will
> updated it soon with all of the recent changes.
> 
> Luca's commits begin from c68a5cbb1a7d17907551159c99ab5c87ce0dedf9
> 
> I wasn't able to find them sent to any mailing lists, but I plan to also
> send them after the base case with Dom0 enumeration stabilizes.

I don't think you can stabilize one without the other. I am worry the 
interface may not work properly for PCI passthrough. So until then, I 
would say this should be marked as unsupported (maybe protected by 
CONFIG_UNSUPPORTED).

> 
> There is no mediator, Dom0 configures the host controller, enumerates
> child devices, and then gives complete access to some of them to Xen.
> Xen only does "logical" operations with child devices and does not
> change any of the host controller base settings.

I am not sure I fully understanding this. Both dom0 will need to access 
the configuration space. So you would need to ensure there is only one 
accessing the configuration space at a give time.

> To ensure that Dom0
> will not mess with the child devices, tools bind them to the stub
> driver. Theoretically, Dom0 can bind to those devices again and break
> something, but it can also do a lot of other breaking stuff so I don't
> think there is a good reason to invent some forms of protection from it.

We should not trust dom0 to do the right thing. But reading ...

> 
> After some time with pci-scan changes merged it should become possible
> to make Xen do the enumeration, and only give Dom0 the virtual PCI bus,
> which would prevent it from accessing non-owned devices.

... this it sounds like this would be temporary. Do you have patches 
already on the mailing list?

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Mon Apr 28 19:05:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 19:05:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.970988.1359498 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9Tn2-0007Cw-E2; Mon, 28 Apr 2025 19:05:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 970988.1359498; Mon, 28 Apr 2025 19: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 1u9Tn2-0007Cp-AW; Mon, 28 Apr 2025 19:05:16 +0000
Received: by outflank-mailman (input) for mailman id 970988;
 Mon, 28 Apr 2025 19:05: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=Ud9o=XO=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1u9Tn0-0007Ci-F8
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 19:05:14 +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 b58045ca-2463-11f0-9ffb-bf95429c2676;
 Mon, 28 Apr 2025 21:05:11 +0200 (CEST)
Received: from AM9P192CA0012.EURP192.PROD.OUTLOOK.COM (2603:10a6:20b:21d::17)
 by PAWPR08MB9066.eurprd08.prod.outlook.com (2603:10a6:102:342::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.33; Mon, 28 Apr
 2025 19:05:07 +0000
Received: from AM4PEPF00027A67.eurprd04.prod.outlook.com
 (2603:10a6:20b:21d:cafe::5b) by AM9P192CA0012.outlook.office365.com
 (2603:10a6:20b:21d::17) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.40 via Frontend Transport; Mon,
 28 Apr 2025 19:05:06 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AM4PEPF00027A67.mail.protection.outlook.com (10.167.16.84) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8678.33
 via Frontend Transport; Mon, 28 Apr 2025 19:05:05 +0000
Received: from DB7PR08MB2987.eurprd08.prod.outlook.com (2603:10a6:5:1c::25) by
 AS8PR08MB6040.eurprd08.prod.outlook.com (2603:10a6:20b:296::7) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.8678.31; Mon, 28 Apr 2025 19:04:33 +0000
Received: from DB7PR08MB2987.eurprd08.prod.outlook.com
 ([fe80::d53f:b16d:70a5:8668]) by DB7PR08MB2987.eurprd08.prod.outlook.com
 ([fe80::d53f:b16d:70a5:8668%5]) with mapi id 15.20.8678.028; Mon, 28 Apr 2025
 19:04: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: b58045ca-2463-11f0-9ffb-bf95429c2676
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=oo6Qvt7uxp8esTObambZxOUW0w/3KIhJFZq7sRFzzw/en2S2FLrBja8Hniw6n/F2qEZ4ahscW+2F3gIK4e6vIR0muT+VqjsH6pPfk5eUjHKAHahiHsi/gcisjvaA6MeJ5hS+CSqvBiZ2AU2TRV+j15LDYBqaNyrRxWKXGxsIW3pSkz+DgfjpkMdGSq9rabwZU5Xx+hMB6w3EXAhw6qu+qsKzJIgWjKeqtcGknqD2ZpiGTP4qXoICpxTRmCrmOziYm5jvLOCKM8HldwOpbef9lk21KqvMzti6z2Ob8uvU79HAhSDTxKR3iHlKRhBSomao0CONH8lA0oBcCoOTghpmlg==
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=Y0Kc3cMjXD/rixMDFuiEt41JY/62/l+nRDhpR+MnBKU=;
 b=ELmiBs03166uLX6uDvWEygs287A4xTygs6a4LrpsYJWOxtso5zlP7vfyU6HQ0dsjhLdYCZ1xhRul+aEvYhJAtCJ6kxEI8USKp8vX6QNdDKPMqszPyd+1uwJAVS3FFQ09vIbbLzlFuoWk1brK30MvwDVr5qMfR6DLPs0+fnwq+MT4FBEenpMRzwQxOI2rqwjKp0IFKls6mVPIoUAW1+wvbIQqhA6Kpm+9CJ5wNX+ZVk2SWaI9XVnPfh+4mg7et5GKl5U+Y1ybba552lIquk1cIe546MaVyE3o4uDvxR4mazKbCd5bTZDoz9+o7Xkdx/rH7WXsimTnYRV++vPJ/UIRzA==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=amd.com smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Y0Kc3cMjXD/rixMDFuiEt41JY/62/l+nRDhpR+MnBKU=;
 b=E0bHzavYeC3nvQ8hHN0DGx/y5HUhvVOMdHKgOU1uVIpOTWOXVfRJgdA1ai4uVIjajMnVdbOpBMIJWBFX/1uqslnhJVbn6ECYib8yCLW0BxaVAqVpud83az3bbREWLFXrilJLrx0rIJmuKLNmp8dv3UugS6J+0yt+9g7jU/kjrqI=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=B8WryDXDj/seW7PthhITvNNG43FGip+tLvvyoNTYjt4qqYNH02oo3+vjrxEaRT5xVi5VcbSoRibSfgS7N6ZkJXDKCyAlpMiG53qI0GD6/1C3Miu1qCiMLwD5ewqYinj5hMAQjVrzPXvrldxydbopVHBQF2Ww5KVhyQS8Hr8WnOK3X/XOIw4NfgqcFLouOmB1B8gHijttss0hZuzPUgWN6vXiax/kdDXVMdEgVfL5mD4YiZHWpLUV0AVR5zdyOc59Zc/p4e7GFd/e3VuKDwvhWfGUlMbmgvDfHDmi/2OqhH53s+d/KifaNCTWOcNTTft65aYSA95wbp7aTKEWEd6PJw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Y0Kc3cMjXD/rixMDFuiEt41JY/62/l+nRDhpR+MnBKU=;
 b=tC5Y76DOnqqn9HgfROAeRiWGOUQXFONEsJvBIUwrpNr5OOVR2rkohq9Na9OkztkUaJqA9e/OPACXd02UAIwcQwo6dOCFzwh2IedAOOf8TcRhe4LEpXX3yJU1d6zbsNrqKXLvUtULSaqF7fyVkBCivjbu0C/Kx3qqWbbAPLK0UdtAgAhtEjf83b6ql7J1NtmKA5DMTNBti+4IQcsmTWHHyJUG24/OSFyQdDnWyKLOV6fDHiD431rUz721utL2olNw0yeZht2kChYzfG7a5t7Y42ulyrmxTq/rvmuov68y4l3zRGQcsh35J4bcjaBhp42JlhEUaowVjYVurSc24gojtQ==
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=Y0Kc3cMjXD/rixMDFuiEt41JY/62/l+nRDhpR+MnBKU=;
 b=E0bHzavYeC3nvQ8hHN0DGx/y5HUhvVOMdHKgOU1uVIpOTWOXVfRJgdA1ai4uVIjajMnVdbOpBMIJWBFX/1uqslnhJVbn6ECYib8yCLW0BxaVAqVpud83az3bbREWLFXrilJLrx0rIJmuKLNmp8dv3UugS6J+0yt+9g7jU/kjrqI=
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>, 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 v1] xen/arm: AArch32-V8R: Add MPU register definitions
Thread-Topic: [PATCH v1] xen/arm: AArch32-V8R: Add MPU register definitions
Thread-Index: AQHbr7FEzJkzCX7IxEuG28e/+R7zurOo3KoAgAt3HYCABS1xgA==
Date: Mon, 28 Apr 2025 19:04:32 +0000
Message-ID: <2697BC06-8A78-42B4-9977-07907BBBDC3D@arm.com>
References: <20250417155511.1854081-1-ayan.kumar.halder@amd.com>
 <306e5414-1552-4605-86d6-b23b89d00bc9@xen.org>
 <cebb0020-531f-467c-bc81-54d2ba1aa8e0@amd.com>
In-Reply-To: <cebb0020-531f-467c-bc81-54d2ba1aa8e0@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.400.131.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DB7PR08MB2987:EE_|AS8PR08MB6040:EE_|AM4PEPF00027A67:EE_|PAWPR08MB9066:EE_
X-MS-Office365-Filtering-Correlation-Id: ff797cb6-e935-48a8-1a65-08dd8687962b
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?UkxPaWlmRGV5SjVXdzJXRUVYbCtpWm42TW9jVllzQWs5OHdzZitZa0p4T0ds?=
 =?utf-8?B?TjRaYjhHam1halZBcjZNbDM2MXM2RzhtVGZzbGIvdWhDejdRUHVGdnBCWTZ1?=
 =?utf-8?B?OSt2ZWkwTU9heDV0RGlPN2RhNGxWOURlM081YVJQZWRLQXdaaGY5UVorSzg3?=
 =?utf-8?B?WVRKNUxoNDJOT3pEWWRWUXlzbURkL290anlVY0p2eUJnODd5S1ZIVXphSWlX?=
 =?utf-8?B?TlFCMWd3c3dOaXQvdGdYUUlGcmN1cVUrSWxYTEt4M1o2Q2hMeXVqL3Yyc1JY?=
 =?utf-8?B?ZlovbEQzN3RSWk9LeDN1Z0RlczN2YU51ZnJlUGZrZlpzWXZtc3h1VjlGQXNy?=
 =?utf-8?B?bjhHLzB3VkRBaG5vVFZKMXZCTzl6NHV4VzJybWE0TDIvVVc1QXp4QzVOTEg3?=
 =?utf-8?B?YlRQNGJjS0hSblpxem9yT2ZMZ2hPTkt6eE1mNHpRa0VxNXByaHpaTXNmNG9k?=
 =?utf-8?B?VlNEc3FDYVZXZWdCQ01abVZpeXNyc0Q0ZUROd1JLVnZoZVRXSzNrL1hPR3g5?=
 =?utf-8?B?VE5UVllKNUt0MHZxTzNVSkVrenVoR043b1I2d0ZjMGpIdnAzSmpUcSsyTHNB?=
 =?utf-8?B?WUltQm00NWhhRHVHK01xQVowbnVTa2I3M2JIT28vTW9pTGtiQUdQd1ZtRjhO?=
 =?utf-8?B?a2g2ZkRVTmF0aE1OOSthV0VtM29EOVJNQzRpaTF0ZVUwbTR5bGhaSWkwYU1H?=
 =?utf-8?B?alZMRzlWdHhySGxEc2E5TnIyeCtpcVF6aXE1OWt5Y29VVnhlcy9yZUFCZ2FT?=
 =?utf-8?B?MlhrZSsrVFpocVZlOWZxanlscGlJdG83RVpsUW10ZzdDYmVUTHF4V3RUUUtD?=
 =?utf-8?B?dER0bkZleGFlU29hSjV5YkM2V3dmdzlFQzFlK0VPV2xmY2x2UDRJRENGUVRN?=
 =?utf-8?B?SjFTYU9CWmJDRTRWNndFRWtnT1lZN1J0KzFHTGR4WkVVeFlWMVhtNGkraWFU?=
 =?utf-8?B?cWJVWVlxL3VBay9hWGlFZHN2WlIwNmJTbXBEdjk2UEZiSTJmNm9ycW04clVa?=
 =?utf-8?B?NlFwR3hPOTJCK2RPSHFSRTlha3dZUTQrcTN1MzNRNnRWckN4UGhCM3JaUE50?=
 =?utf-8?B?bkVTNjBTdnlpWHV5WGVoYnpnemlKVTJ1SDE2SnhtRnNTUWtUNFp3WHYxcTY2?=
 =?utf-8?B?Q1ZqYy8xWWxQZFpUS1pia0FzZUt2ZC9vWk83MFZ4YzNxZmJKMFM3Y3ppZ21R?=
 =?utf-8?B?Q2NvTUpnTittTmxoVEpPSGxTSHArenZBMFpyU2JrL3AvbG9KWjN6SDFMOVh4?=
 =?utf-8?B?K1VrTHNkZ2Y3Z21XdVZFUjEzOElibjV3cjJ0ajJiM1lNbmR2SU1ZOTlrQm9j?=
 =?utf-8?B?R1l6eEhGbjFQT3pEdWZFanBLS0xoUmZpYTN3TzFLNVM4dGhEWWlEOE5XTFRp?=
 =?utf-8?B?bVFjaGRYeHMyRWIzQ01NZUx5RytCVEtOakVrNURKaG5yRUJNbTY3cmUzTit3?=
 =?utf-8?B?T3pNVmNybmpxbWF4dThwQjJreWx2bFlveFBXb3hUNnZEVklVMmJyNUtEOXc1?=
 =?utf-8?B?cXNzZm4yUXFGck9rUlVOR1ErTy85RjhCU1J0VGFoVnRKTWk4K0NpUlg2Vzlz?=
 =?utf-8?B?NjNJVHlTcks4Y0JtYzh2UHJlUWdWUmZLeFZweFJUVVYxSlIvZEdLTTFxZjBr?=
 =?utf-8?B?U1MvRFFDSDYwOVhIYlVuKzRhOVRrUFBlbTh1ZGtSbG10Z3diS1N2Y0wzS3Vl?=
 =?utf-8?B?dFNkb085VDVBZzJESzlhdDVYUjVQamduRm1yRDd1TkdpWk9EMHdmOVdTcFc0?=
 =?utf-8?B?YlZWclJ2eEYvdHpVcHNlNW1WTFJLTzFUcDgzanJzMFZCTldTUVJsTGJZU0Fv?=
 =?utf-8?B?dG1kbE04MHFSUlg4b0lyZVl1dlJBWEhZVXdUSWF6c2piTXdaVk1lWWlJRitJ?=
 =?utf-8?B?YnFhRUgzYzNQV3R4dVZOV3RtczZsRCt6Q2lrV251VmJ4R3IzeXozay9ZUHpV?=
 =?utf-8?B?Sk96Z09XWFlNQnhzWlF0bVROZnRKTWNpS3pPQ0dncXFYbzhkTWhqblg5RmVT?=
 =?utf-8?B?aXMyd1REVUJBPT0=?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB7PR08MB2987.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: <02DBF0D4A8C1604C82C286F2A870D3EA@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB6040
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AM4PEPF00027A67.eurprd04.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	cdbeeb81-50c3-4b40-eeb7-08dd86878293
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|35042699022|1800799024|376014|82310400026|14060799003|36860700013|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?bGpPV3dqRDBxVkVLS01SSi9vTTRJalZNdWJ1Y0NIZWVhcFJ5NXJqMmJNZjl3?=
 =?utf-8?B?VS96Qy9HTXJxTGsyVGtsdXprOFZnbVZMRUJIeHpJa245V3p5V2EyT216T0E1?=
 =?utf-8?B?M2NrelF4SmQyUUhmZjIvSzVqQW5RcHNVY1lCZ05jbm5HWjlKRWRsRWx1Rmcz?=
 =?utf-8?B?Z2FETXpUTFZCT3JYNmM3M3hmcWtDVEZMTGNHdjZiMUhObVJyMEVvZlRDTDJF?=
 =?utf-8?B?cDlvcW8zUWtnUVRncmRMaEoyakNHWnhrT29UUG1FQllibHNuY0NCMmdocDVK?=
 =?utf-8?B?UTNzUFZ6MVZtTlZqeVpvemphc1B0eGcvS0FwaFBtc0V1amtvMm9vb21xMzRi?=
 =?utf-8?B?a3g2cGRGYzZzaDJvVElnNmxmWW5kendTck1xMVVPOWs3aWtJSk9oTmphNEVU?=
 =?utf-8?B?dnFaT1BNMC8zU2xmRmc2RDk4MnJPWmU4SHlmS3UzYzJjZkJrMkZXdG9aVFVR?=
 =?utf-8?B?Wk5SaHFwL0hsdHRUVUlndkd3QkYwVzdSU2VFUVhJQzhVaVpZR1pRaFRvdkFU?=
 =?utf-8?B?Y2FtKy95WHNhOTl2UDRsTmdSeVNQOEcxUURtMjgxTXRQUHlsMU9UWWNSWGdz?=
 =?utf-8?B?dklVMXcvalRCbUNFZ0hBSUNtV1BNTk9VZGNUczQ3QTJwazkzYzZpK09KY29W?=
 =?utf-8?B?MElIWGhnUGFrZHh2cWtrQys1ZGpOdGVCNjdVanliUGtZZzRRV3htZi9ZRWZl?=
 =?utf-8?B?Z1hGUTFzOWE0WnpuTmZ3bTluemhwWWhzTlN0bmozWVVlS3hlQWU2SklwT212?=
 =?utf-8?B?YUZDaFY1dHpUYnpXQWltUjFNc3YxbXYvK0p5RTlGeStDWTNzTVZDREJ1OERO?=
 =?utf-8?B?MlYrb3psMVhqTlcvWUxlMllqUkFqVm1uV2YzdFg3Tk5KNDhxSVkyYU4zWlBM?=
 =?utf-8?B?SkUrbHdLc0JNWE03a2lSck5UaHllZVVxQ1pqd0RIdHcvOUxwVVRmQWZzSzVE?=
 =?utf-8?B?K3laTlRNWUdYbE1yYit1UmVjaEhQTlJRZnM2bytmUGpTL1F4YStienpPbGgv?=
 =?utf-8?B?V0ZuRUttazdTRjhFeXpzc1pGa0tOcGhsMmNrTHBkRllQWFJXN0hUejc0Ykwx?=
 =?utf-8?B?TzF0aWJUR1NsMzVkUnZLSDJMd3hvbEVsZnpVQTRPUjg4VWFPTkMyVDVSNDdV?=
 =?utf-8?B?c0RKRVJuME5maXRQbXFmZTgzNEJoVk5sNnd5ZDdSbmNYOE5SclFLZDdFbUJN?=
 =?utf-8?B?N0JKTmwzOFFib3lvM0w5N01nOFM0emprNEtWUFl0OTV4RGozOFBQZGRCNGJj?=
 =?utf-8?B?eHFxVzBlNVJEV2pYT2dSek5tZVIzZFVCbkEwSi9aNVdmWTEra3IwOVFadDZZ?=
 =?utf-8?B?TVk3bUR0NXRNdlFnL3N4eHcycXRBdk1aYjFqZWw5QmJ0ZUlCU1pJTEtzbDBz?=
 =?utf-8?B?SzN5SVlXVVFKMjNKNVc2YitzamxsV2hNajRrbk1raTRUcFUvaVVHK3puYlVD?=
 =?utf-8?B?N2lSRm5yOE5heVl1a01jTW12Uis3UFVubWZwQzdONDAzc3IxdDJkNDU4VnVD?=
 =?utf-8?B?QUt3YjI4N3VjU3E4cjFpbkZVaDc3UnpkekVJOFpVYnduL2txQWFtclJCZmZN?=
 =?utf-8?B?NzE0ZHVFUlZ3TUFBcmJoYVdNTDRlT3dCWCtSYlRnM2JLTk9hMm5KOStaZlNY?=
 =?utf-8?B?QW1CZXhlSzV5NGR1b09WU1RCVmt0VnJ3SU9kWGZ1aUFPWitmUHVTQ2hJUkpZ?=
 =?utf-8?B?eW4yb293Kzlpc3lJcFZsdFBQRXZ3OTVWK3d5eVJlRm8rTTNaYVVQdS93NVds?=
 =?utf-8?B?ektEZ245S3hWalJhdCs3NUIzVjFXR3U4UE50N0VNaTExdllzRmJIdXoxWnl1?=
 =?utf-8?B?WHFMMThDK3hlTUV6bSt5QkVPOFJaUnlNYktyUC9QVzAwV21BeElhdXd5dm9D?=
 =?utf-8?B?QkxJaEFsTWJiN2IyVmdpcm1vR0pqbDlJOWpOTis4TVpWb2YwU0gzS2Jyc0N3?=
 =?utf-8?B?NzhGS1JrWEo5bUZsVEIrbTlUQ3kzeGxuR1V5aVFhZ0J6blROcVltVHRlZFlj?=
 =?utf-8?B?QkFWbWV6Q3BzNEY3eTFmYTEvaHZQYWNlQ1RqZDRtUE9NaFBRYlcyOG55MkFK?=
 =?utf-8?Q?VBYV/S?=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(35042699022)(1800799024)(376014)(82310400026)(14060799003)(36860700013)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Apr 2025 19:05:05.3602
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: ff797cb6-e935-48a8-1a65-08dd8687962b
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AM4PEPF00027A67.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR08MB9066

SGkgQXlhbiwNCg0KPiBPbiAyNSBBcHIgMjAyNSwgYXQgMTM6MDAsIEF5YW4gS3VtYXIgSGFsZGVy
IDxheWFua3VtYUBhbWQuY29tPiB3cm90ZToNCj4gDQo+IEhpIEp1bGllbiwNCj4gDQo+IGNjLWVk
IEx1Y2EgZm9yIGZlZWRiYWNrIG9uIHNwZWNpZmljIHBvaW50cy4NCj4gDQo+IE9uIDE4LzA0LzIw
MjUgMDU6NTQsIEp1bGllbiBHcmFsbCB3cm90ZToNCj4+IEhpIEF5YW4sDQo+PiANCj4+IE9uIDE4
LzA0LzIwMjUgMDA6NTUsIEF5YW4gS3VtYXIgSGFsZGVyIHdyb3RlOg0KPj4+IEFkZCB0aGUgZGVm
aW5pdGlvbnMgZm9yIEhQUkJBUjwwLi4zMT4sIEhQUkxBUjwwLi4zMT4gYW5kIEhQUkVOUi4NCj4+
PiBUaGUgZGVmaW5pdGlvbnMgYXJlIHRha2VuIGZyb20gQVJNIERESSAwNTY4QS5jIElEMTEwNTIw
LCBFMi4yLjMgSFBSQkFSPG4+LA0KPj4+IEUyLjIuNCBIUFJFTlIgYW5kIEUyLjIuNiBIUFJMQVI8
bj4uDQo+Pj4gDQo+Pj4gSW50cm9kdWNlIHByX3QgdHlwZWRlZiB3aGljaCBpcyBhIHN0cnVjdHVy
ZSBoYXZpbmcgdGhlIHByYmFyIGFuZCBwcmxhciBtZW1iZXJzLA0KPj4+IGVhY2ggYmVpbmcgc3Ry
dWN0dXJlZCBhcyB0aGUgcmVnaXN0ZXJzIG9mIHRoZSBBQXJjaDMyLVY4UiBhcmNoaXRlY3R1cmUu
DQo+Pj4gVGhpcyBpcyB0aGUgYXJtMzIgZXF1aXZhbGVudCBvZg0KPj4+ICJhcm0vbXB1OiBJbnRy
b2R1Y2UgTVBVIG1lbW9yeSByZWdpb24gbWFwIHN0cnVjdHVyZSIuDQo+Pj4gDQo+Pj4gU2lnbmVk
LW9mZi1ieTogQXlhbiBLdW1hciBIYWxkZXIgPGF5YW4ua3VtYXIuaGFsZGVyQGFtZC5jb20+DQo+
Pj4gLS0tDQo+Pj4gVGhpcyBwYXRjaCBzaG91bGQgYmUgYXBwbGllZCBhZnRlcg0KPj4+ICJbUEFU
Q0ggdjMgMC83XSBGaXJzdCBjaHVuayBmb3IgQXJtIFI4MiBhbmQgTVBVIHN1cHBvcnQiIGluIG9y
ZGVyIHRvIGVuYWJsZQ0KPj4+IGNvbXBpbGF0aW9uIGZvciBBQXJjaDMyLg0KPj4+IA0KPj4+ICAg
eGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL2FybTMyL21wdS5oICB8ICA1OSArKysrKysrKysrKw0K
Pj4+ICAgeGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL21wdS5oICAgICAgICB8ICAgNCArDQo+Pj4g
ICB4ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vbXB1L2NwcmVncy5oIHwgMTM1ICsrKysrKysrKysr
KysrKysrKysrKysrKysrDQo+Pj4gICAzIGZpbGVzIGNoYW5nZWQsIDE5OCBpbnNlcnRpb25zKCsp
DQo+Pj4gICBjcmVhdGUgbW9kZSAxMDA2NDQgeGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL2FybTMy
L21wdS5oDQo+Pj4gDQo+Pj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9h
cm0zMi9tcHUuaCBiL3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9hcm0zMi9tcHUuaA0KPj4+IG5l
dyBmaWxlIG1vZGUgMTAwNjQ0DQo+Pj4gaW5kZXggMDAwMDAwMDAwMC4uNGFhYmQ5MzQ3OQ0KPj4+
IC0tLSAvZGV2L251bGwNCj4+PiArKysgYi94ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vYXJtMzIv
bXB1LmgNCj4+PiBAQCAtMCwwICsxLDU5IEBADQo+Pj4gKy8qIFNQRFgtTGljZW5zZS1JZGVudGlm
aWVyOiBHUEwtMi4wLW9ubHkgKi8NCj4+PiArLyoNCj4+PiArICogbXB1Lmg6IEFybSBNZW1vcnkg
UHJvdGVjdGlvbiBVbml0IGRlZmluaXRpb25zIGZvciBhYXJjaDY0Lg0KPj4+ICsgKi8NCj4+PiAr
DQo+Pj4gKyNpZm5kZWYgX19BUk1fQVJNMzJfTVBVX0gNCj4+PiArI2RlZmluZSBfX0FSTV9BUk0z
Ml9NUFVfSA0KPj4+ICsNCj4+PiArI2RlZmluZSBYTl9FTDJfRU5BQkxFRCAgMHgxDQo+PiANCj4+
IEkgdW5kZXJzdGFuZCB0aGUgZGVmaW5lIGlzIGludHJvZHVjZWQgaW4gTHVjYSdzIHBhdGNoLCBi
dXQgdGhpcyBhIGJpdCBub24tZGVzY3JpcHRpdmUuLi4gQ2FuIHdlIGZpbmQgYSBiZXR0ZXIgbmFt
ZT8gTWF5YmUgYnkgYWRkaW5nIHRoZSBuYW1lIG9mIHRoZSByZWdpc3RlciBhbmQgc29tZSBkb2N1
bWVudGF0aW9uPw0KPiANCj4gV2UgY2FuIHJlbmFtZSB0aGlzIGFzIFBSQkFSX0VMMl9YTiBpZiB0
aGlzIHNvdW5kcyBiZXR0ZXIgKGNjIEBMdWNhKSBpbiBMdWNhJ3MgcGF0Y2gNCg0Kd2hhdCBhYm91
dCBQUkJBUl9FTDJfWE5fRU5BQkxFRD8gSSBjYW4gY2hhbmdlIGl0IGluIG15IHNlcmllDQoNCj4g
DQo+IFRoZSBkZXNjcmlwdGlvbiBjYW4gYmUNCj4gDQo+IFJlZmVyIEFSTSBEREkgMDU2OEEuYyAg
SUQxMTA1MjAgLCBFMi4yLjINCj4gDQo+IEhQUkJBUiBbMDoxXSBFeGVjdXRlIE5ldmVyDQo+IA0K
Pj4gDQo+Pj4gKw0KPj4+ICsjaWZuZGVmIF9fQVNTRU1CTFlfXw0KPj4+ICsNCj4+PiArLyogSHlw
ZXJ2aXNvciBQcm90ZWN0aW9uIFJlZ2lvbiBCYXNlIEFkZHJlc3MgUmVnaXN0ZXIgKi8NCj4+PiAr
dHlwZWRlZiB1bmlvbiB7DQo+Pj4gKyAgICBzdHJ1Y3Qgew0KPj4+ICsgICAgICAgIHVuc2lnbmVk
IGludCB4bjoxOyAgICAgICAvKiBFeGVjdXRlLU5ldmVyICovDQo+Pj4gKyAgICAgICAgdW5zaWdu
ZWQgaW50IGFwOjI7ICAgICAgIC8qIEFjZXNzIFBlcm1pc3Npb24gKi8NCj4+PiArICAgICAgICB1
bnNpZ25lZCBpbnQgc2g6MjsgICAgICAgLyogU2hhcmViaWxpdHkgKi8NCj4+PiArICAgICAgICB1
bnNpZ25lZCBpbnQgcmVzMDoxOyAgICAgLyogUmVzZXJ2ZWQgYXMgMCAqLw0KPj4+ICsgICAgICAg
IHVuc2lnbmVkIGludCBiYXNlOjI2OyAgICAvKiBCYXNlIEFkZHJlc3MgKi8NCj4+PiArICAgIH0g
cmVnOw0KPj4+ICsgICAgdWludDMyX3QgYml0czsNCj4+PiArfSBwcmJhcl90Ow0KPj4+ICsNCj4+
PiArLyogSHlwZXJ2aXNvciBQcm90ZWN0aW9uIFJlZ2lvbiBMaW1pdCBBZGRyZXNzIFJlZ2lzdGVy
ICovDQo+Pj4gK3R5cGVkZWYgdW5pb24gew0KPj4+ICsgICAgc3RydWN0IHsNCj4+PiArICAgICAg
ICB1bnNpZ25lZCBpbnQgZW46MTsgICAgIC8qIFJlZ2lvbiBlbmFibGUgKi8NCj4+PiArICAgICAg
ICB1bnNpZ25lZCBpbnQgYWk6MzsgICAgIC8qIE1lbW9yeSBBdHRyaWJ1dGUgSW5kZXggKi8NCj4+
PiArICAgICAgICAvKg0KPj4+ICsgICAgICAgICAqIFRoZXJlIGlzIG5vIGFjdHVhbCBucyBiaXQg
aW4gaGFyZHdhcmUuIEl0IGlzIHVzZWQgaGVyZSBmb3INCj4+PiArICAgICAgICAgKiBjb21wYXRp
YmlsaXR5IHdpdGggQXJtcjY0IGNvZGUuIFRodXMsIHdlIGFyZSByZXVzaW5nIGEgcmVzMCBiaXQg
Zm9yIG5zLg0KPj4gDQo+PiB0eXBvOiBBcm02NC4NCj4gQWNrDQo+PiANCj4+PiArICAgICAgICAg
Ki8NCj4+IA0KPj4gSG1tbW0sIHRoaXMgd291bGQgbWVhbiBzb21lb25lIG1heSBtaXN0YWtlbmx5
IHNldCB0aGUgYml0IHRvIDAgYnkgbWlzdGFrZS4gSWYgdGhlIGZpZWxkIGlzIGFsd2F5cyBtZWFu
dCB0byBiZSAwIG9uIGFybTY0LCB0aGVuIEkgd291bGQgY29uc2lkZXIgdG8gbmFtZSBpcyByZXMw
IG9uIGFybTY0IHdpdGggYW4gZXhwbGFuYXRpb24uDQo+PiANCj4+IFRoaXMgd291bGQgbWFrZSBj
bGVhciB0aGUgYml0IGlzIG5vdCBzdXBwb3NlZCB0byBoYXZlIGEgdmFsdWUgb3RoZXIgdGhhbiAw
Lg0KPiANCj4gT24gQXJtNjQsIG5zID09IDAgYXMgaXQgY2FuIG9ubHkgc3VwcG9ydCBzZWN1cmUg
bW9kZS4NCj4gDQo+IFNvIHdlIGNhbiBjaGFuZ2UgdGhpcyBvbiBBcm02NCBhcyB3ZWxsIDotDQo+
IA0KPiB1bnNpZ25lZCBpbnQgcmVzMDoyOyAvKiBucyA9PSAwIGFzIG9ubHkgc2VjdXJlIG1vZGUg
aXMgc3VwcG9ydGVkICovDQo+IA0KPiBATHVjYSB0byBjbGFyaWZ5DQoNCkZyb20gdGhlIHNwZWNp
ZmljYXRpb25zOiAiTm9uLXNlY3VyZSBiaXQuIFNwZWNpZmllcyB3aGV0aGVyIHRoZSBvdXRwdXQg
YWRkcmVzcyBpcyBpbiB0aGUgU2VjdXJlIG9yIE5vbi1zZWN1cmUgbWVtb3J54oCdLCBJ4oCZbSBu
b3Qgc3VyZQ0KdGhhdCB3ZSBzaG91bGQgcmVtb3ZlIGl0IGZyb20gQXJtNjQsIHNvIEkgZG9u4oCZ
dCB0aGluayB5b3Ugc2hvdWxkIGhhdmUgc29tZXRoaW5nIG9ubHkgZm9yIGNvbXBhdGliaWxpdHks
IG1heWJlIHRoZSBjb2RlIGFjY2Vzc2luZyAubnMNCmNhbiBiZSBjb21waWxlZCBvdXQgZm9yIEFy
bTMyIG9yIHdlIGNhbiBoYXZlIGFyY2gtc3BlY2lmaWMgaW1wbGVtZW50YXRpb24uIEkgdGhpbmsg
eW91IGFyZSByZWZlcnJpbmcgdG8gcHJfb2ZfeGVuYWRkciB3aGVuIHlvdSBzYXkNCuKAnGNvbXBh
dGliaWxpdHkgd2l0aCBBcm02NCBjb2RlIg0KDQo+IA0KPj4gDQo+Pj4gKyAgICAgICAgdW5zaWdu
ZWQgaW50IG5zOjE7ICAgICAvKiBSZXNlcnZlZCAwIGJ5IGhhcmR3YXJlICovDQo+Pj4gKyAgICAg
ICAgdW5zaWduZWQgaW50IHJlczA6MTsgICAvKiBSZXNlcnZlZCAwIGJ5IGhhcmR3YXJlICovDQo+
IFRoZW4sIHdlIGNhbiBjaGFuZ2UgdGhpcyBvbiBBcm0zMiBhcyB3ZWxsLg0KPj4+ICsgICAgICAg
IHVuc2lnbmVkIGludCBsaW1pdDoyNjsgIC8qIExpbWl0IEFkZHJlc3MgKi8NCj4+IA0KPj4gTklU
OiBDYW4gd2UgYWxpZ24gdGhlIGNvbW1lbnRzPw0KPiBBY2suDQo+PiANCj4+PiArICAgIH0gcmVn
Ow0KPj4+ICsgICAgdWludDMyX3QgYml0czsNCj4+PiArfSBwcmxhcl90Ow0KPj4+ICsNCj4+PiAr
LyogUHJvdGVjdGlvbiBSZWdpb24gKi8NCj4+PiArdHlwZWRlZiBzdHJ1Y3Qgew0KPj4+ICsgICAg
cHJiYXJfdCBwcmJhcjsNCj4+PiArICAgIHBybGFyX3QgcHJsYXI7DQo+Pj4gKyAgICB1aW50NjRf
dCBwMm1fdHlwZTsgICAgICAgICAgLyogVXNlZCB0byBzdG9yZSBwMm0gdHlwZXMuICovDQo+Pj4g
K30gcHJfdDsNCj4+IA0KPj4gVGhpcyBsb29rcyB0byBiZSBjb21tb24gd2l0aCBhcm02NC4gSWYg
c28sIEkgd291bGQgcHJlZmVyIGlmIHRoZSBzdHJ1Y3R1cmUgaXMgaW4gYSBjb21tb24gaGVhZGVy
Lg0KPiANCj4gTm8sIGluIGFybTY0IHRoaXMgaXMNCj4gDQo+IHR5cGVkZWYgc3RydWN0IHsNCj4g
ICAgICBwcmJhcl90IHByYmFyOw0KPiAgICAgIHBybGFyX3QgcHJsYXI7DQo+IH0gcHJfdDsNCj4g
DQo+IFRoZSByZWFzb24gYmVpbmcgQXJtNjQgdXNlcyB1bnVzZWQgYml0cyAoaWUgJ3BhZCcpIHRv
IHN0b3JlIHRoZSB0eXBlLg0KPiANCj4+IA0KPj4+ICsNCj4+PiArI2VuZGlmIC8qIF9fQVNTRU1C
TFlfXyAqLw0KPj4+ICsNCj4+PiArI2VuZGlmIC8qIF9fQVJNX0FSTTMyX01QVV9IICovDQo+Pj4g
Kw0KPj4+ICsvKg0KPj4+ICsgKiBMb2NhbCB2YXJpYWJsZXM6DQo+Pj4gKyAqIG1vZGU6IEMNCj4+
PiArICogYy1maWxlLXN0eWxlOiAiQlNEIg0KPj4+ICsgKiBjLWJhc2ljLW9mZnNldDogNA0KPj4+
ICsgKiBpbmRlbnQtdGFicy1tb2RlOiBuaWwNCj4+PiArICogRW5kOg0KPj4+ICsgKi8NCj4+PiBk
aWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL21wdS5oIGIveGVuL2FyY2gvYXJt
L2luY2x1ZGUvYXNtL21wdS5oDQo+Pj4gaW5kZXggNzdkMDU2NmY5Ny4uNjcxMjcxNDljMCAxMDA2
NDQNCj4+PiAtLS0gYS94ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vbXB1LmgNCj4+PiArKysgYi94
ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vbXB1LmgNCj4+PiBAQCAtOCw4ICs4LDEyIEBADQo+Pj4g
ICAgICNpZiBkZWZpbmVkKENPTkZJR19BUk1fNjQpDQo+Pj4gICAjIGluY2x1ZGUgPGFzbS9hcm02
NC9tcHUuaD4NCj4+PiArI2VsaWYgZGVmaW5lZChDT05GSUdfQVJNXzMyKQ0KPj4+ICsjIGluY2x1
ZGUgPGFzbS9hcm0zMi9tcHUuaD4NCj4+PiAgICNlbmRpZg0KPj4+ICAgKyNkZWZpbmUgUFJFTlJf
TUFTSyAgR0VOTUFTSygzMSwgMCkNCj4+PiArDQo+Pj4gICAjZGVmaW5lIE1QVV9SRUdJT05fU0hJ
RlQgIDYNCj4+PiAgICNkZWZpbmUgTVBVX1JFR0lPTl9BTElHTiAgKF9BQygxLCBVTCkgPDwgTVBV
X1JFR0lPTl9TSElGVCkNCj4+PiAgICNkZWZpbmUgTVBVX1JFR0lPTl9NQVNLICAgKH4oTVBVX1JF
R0lPTl9BTElHTiAtIDEpKQ0KPj4+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vaW5jbHVkZS9h
c20vbXB1L2NwcmVncy5oIGIveGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL21wdS9jcHJlZ3MuaA0K
Pj4+IGluZGV4IGQ1Y2QwZTA0ZDUuLjdjZjUyYWEwOWEgMTAwNjQ0DQo+Pj4gLS0tIGEveGVuL2Fy
Y2gvYXJtL2luY2x1ZGUvYXNtL21wdS9jcHJlZ3MuaA0KPj4+ICsrKyBiL3hlbi9hcmNoL2FybS9p
bmNsdWRlL2FzbS9tcHUvY3ByZWdzLmgNCj4+PiBAQCAtNiwxOCArNiwxNTMgQEANCj4+PiAgIC8q
IENQMTUgQ1IwOiBNUFUgVHlwZSBSZWdpc3RlciAqLw0KPj4+ICAgI2RlZmluZSBITVBVSVIgICAg
ICAgICAgcDE1LDQsYzAsYzAsNA0KPj4+ICAgKy8qIENQMTUgQ1I2OiBQcm90ZWN0aW9uIFJlZ2lv
biBFbmFibGUgUmVnaXN0ZXIgKi8NCj4+PiArI2RlZmluZSBIUFJFTlIgICAgICAgICAgcDE1LDQs
YzYsYzEsMQ0KPj4+ICsNCj4+PiAgIC8qIENQMTUgQ1I2OiBNUFUgUHJvdGVjdGlvbiBSZWdpb24g
QmFzZS9MaW1pdC9TZWxlY3QgQWRkcmVzcyBSZWdpc3RlciAqLw0KPj4+ICAgI2RlZmluZSBIUFJT
RUxSICAgICAgICAgcDE1LDQsYzYsYzIsMQ0KPj4+ICAgI2RlZmluZSBIUFJCQVIgICAgICAgICAg
cDE1LDQsYzYsYzMsMA0KPj4+ICAgI2RlZmluZSBIUFJMQVIgICAgICAgICAgcDE1LDQsYzYsYzgs
MQ0KPj4+ICAgKy8qIENQMTUgQ1I2OiBNUFUgUHJvdGVjdGlvbiBSZWdpb24gQmFzZS9MaW1pdCBB
ZGRyZXNzIFJlZ2lzdGVyICovDQo+Pj4gKyNkZWZpbmUgSFBSQkFSMCAgICAgICAgIHAxNSw0LGM2
LGM4LDANCj4+PiArI2RlZmluZSBIUFJMQVIwICAgICAgICAgcDE1LDQsYzYsYzgsMQ0KPj4+ICsj
ZGVmaW5lIEhQUkJBUjEgICAgICAgICBwMTUsNCxjNixjOCw0DQo+Pj4gKyNkZWZpbmUgSFBSTEFS
MSAgICAgICAgIHAxNSw0LGM2LGM4LDUNCj4+PiArI2RlZmluZSBIUFJCQVIyICAgICAgICAgcDE1
LDQsYzYsYzksMA0KPj4+ICsjZGVmaW5lIEhQUkxBUjIgICAgICAgICBwMTUsNCxjNixjOSwxDQo+
Pj4gKyNkZWZpbmUgSFBSQkFSMyAgICAgICAgIHAxNSw0LGM2LGM5LDQNCj4+PiArI2RlZmluZSBI
UFJMQVIzICAgICAgICAgcDE1LDQsYzYsYzksNQ0KPj4+ICsjZGVmaW5lIEhQUkJBUjQgICAgICAg
ICBwMTUsNCxjNixjMTAsMA0KPj4+ICsjZGVmaW5lIEhQUkxBUjQgICAgICAgICBwMTUsNCxjNixj
MTAsMQ0KPj4+ICsjZGVmaW5lIEhQUkJBUjUgICAgICAgICBwMTUsNCxjNixjMTAsNA0KPj4+ICsj
ZGVmaW5lIEhQUkxBUjUgICAgICAgICBwMTUsNCxjNixjMTAsNQ0KPj4+ICsjZGVmaW5lIEhQUkJB
UjYgICAgICAgICBwMTUsNCxjNixjMTEsMA0KPj4+ICsjZGVmaW5lIEhQUkxBUjYgICAgICAgICBw
MTUsNCxjNixjMTEsMQ0KPj4+ICsjZGVmaW5lIEhQUkJBUjcgICAgICAgICBwMTUsNCxjNixjMTEs
NA0KPj4+ICsjZGVmaW5lIEhQUkxBUjcgICAgICAgICBwMTUsNCxjNixjMTEsNQ0KPj4+ICsjZGVm
aW5lIEhQUkJBUjggICAgICAgICBwMTUsNCxjNixjMTIsMA0KPj4+ICsjZGVmaW5lIEhQUkxBUjgg
ICAgICAgICBwMTUsNCxjNixjMTIsMQ0KPj4+ICsjZGVmaW5lIEhQUkJBUjkgICAgICAgICBwMTUs
NCxjNixjMTIsNA0KPj4+ICsjZGVmaW5lIEhQUkxBUjkgICAgICAgICBwMTUsNCxjNixjMTIsNQ0K
Pj4+ICsjZGVmaW5lIEhQUkJBUjEwICAgICAgICBwMTUsNCxjNixjMTMsMA0KPj4+ICsjZGVmaW5l
IEhQUkxBUjEwICAgICAgICBwMTUsNCxjNixjMTMsMQ0KPj4+ICsjZGVmaW5lIEhQUkJBUjExICAg
ICAgICBwMTUsNCxjNixjMTMsNA0KPj4+ICsjZGVmaW5lIEhQUkxBUjExICAgICAgICBwMTUsNCxj
NixjMTMsNQ0KPj4+ICsjZGVmaW5lIEhQUkJBUjEyICAgICAgICBwMTUsNCxjNixjMTQsMA0KPj4+
ICsjZGVmaW5lIEhQUkxBUjEyICAgICAgICBwMTUsNCxjNixjMTQsMQ0KPj4+ICsjZGVmaW5lIEhQ
UkJBUjEzICAgICAgICBwMTUsNCxjNixjMTQsNA0KPj4+ICsjZGVmaW5lIEhQUkxBUjEzICAgICAg
ICBwMTUsNCxjNixjMTQsNQ0KPj4+ICsjZGVmaW5lIEhQUkJBUjE0ICAgICAgICBwMTUsNCxjNixj
MTUsMA0KPj4+ICsjZGVmaW5lIEhQUkxBUjE0ICAgICAgICBwMTUsNCxjNixjMTUsMQ0KPj4+ICsj
ZGVmaW5lIEhQUkJBUjE1ICAgICAgICBwMTUsNCxjNixjMTUsNA0KPj4+ICsjZGVmaW5lIEhQUkxB
UjE1ICAgICAgICBwMTUsNCxjNixjMTUsNQ0KPj4+ICsjZGVmaW5lIEhQUkJBUjE2ICAgICAgICBw
MTUsNSxjNixjOCwwDQo+Pj4gKyNkZWZpbmUgSFBSTEFSMTYgICAgICAgIHAxNSw1LGM2LGM4LDEN
Cj4+PiArI2RlZmluZSBIUFJCQVIxNyAgICAgICAgcDE1LDUsYzYsYzgsNA0KPj4+ICsjZGVmaW5l
IEhQUkxBUjE3ICAgICAgICBwMTUsNSxjNixjOCw1DQo+Pj4gKyNkZWZpbmUgSFBSQkFSMTggICAg
ICAgIHAxNSw1LGM2LGM5LDANCj4+PiArI2RlZmluZSBIUFJMQVIxOCAgICAgICAgcDE1LDUsYzYs
YzksMQ0KPj4+ICsjZGVmaW5lIEhQUkJBUjE5ICAgICAgICBwMTUsNSxjNixjOSw0DQo+Pj4gKyNk
ZWZpbmUgSFBSTEFSMTkgICAgICAgIHAxNSw1LGM2LGM5LDUNCj4+PiArI2RlZmluZSBIUFJCQVIy
MCAgICAgICAgcDE1LDUsYzYsYzEwLDANCj4+PiArI2RlZmluZSBIUFJMQVIyMCAgICAgICAgcDE1
LDUsYzYsYzEwLDENCj4+PiArI2RlZmluZSBIUFJCQVIyMSAgICAgICAgcDE1LDUsYzYsYzEwLDQN
Cj4+PiArI2RlZmluZSBIUFJMQVIyMSAgICAgICAgcDE1LDUsYzYsYzEwLDUNCj4+PiArI2RlZmlu
ZSBIUFJCQVIyMiAgICAgICAgcDE1LDUsYzYsYzExLDANCj4+PiArI2RlZmluZSBIUFJMQVIyMiAg
ICAgICAgcDE1LDUsYzYsYzExLDENCj4+PiArI2RlZmluZSBIUFJCQVIyMyAgICAgICAgcDE1LDUs
YzYsYzExLDQNCj4+PiArI2RlZmluZSBIUFJMQVIyMyAgICAgICAgcDE1LDUsYzYsYzExLDUNCj4+
PiArI2RlZmluZSBIUFJCQVIyNCAgICAgICAgcDE1LDUsYzYsYzEyLDANCj4+PiArI2RlZmluZSBI
UFJMQVIyNCAgICAgICAgcDE1LDUsYzYsYzEyLDENCj4+PiArI2RlZmluZSBIUFJCQVIyNSAgICAg
ICAgcDE1LDUsYzYsYzEyLDQNCj4+PiArI2RlZmluZSBIUFJMQVIyNSAgICAgICAgcDE1LDUsYzYs
YzEyLDUNCj4+PiArI2RlZmluZSBIUFJCQVIyNiAgICAgICAgcDE1LDUsYzYsYzEzLDANCj4+PiAr
I2RlZmluZSBIUFJMQVIyNiAgICAgICAgcDE1LDUsYzYsYzEzLDENCj4+PiArI2RlZmluZSBIUFJC
QVIyNyAgICAgICAgcDE1LDUsYzYsYzEzLDQNCj4+PiArI2RlZmluZSBIUFJMQVIyNyAgICAgICAg
cDE1LDUsYzYsYzEzLDUNCj4+PiArI2RlZmluZSBIUFJCQVIyOCAgICAgICAgcDE1LDUsYzYsYzE0
LDANCj4+PiArI2RlZmluZSBIUFJMQVIyOCAgICAgICAgcDE1LDUsYzYsYzE0LDENCj4+PiArI2Rl
ZmluZSBIUFJCQVIyOSAgICAgICAgcDE1LDUsYzYsYzE0LDQNCj4+PiArI2RlZmluZSBIUFJMQVIy
OSAgICAgICAgcDE1LDUsYzYsYzE0LDUNCj4+PiArI2RlZmluZSBIUFJCQVIzMCAgICAgICAgcDE1
LDUsYzYsYzE1LDANCj4+PiArI2RlZmluZSBIUFJMQVIzMCAgICAgICAgcDE1LDUsYzYsYzE1LDEN
Cj4+PiArI2RlZmluZSBIUFJCQVIzMSAgICAgICAgcDE1LDUsYzYsYzE1LDQNCj4+PiArI2RlZmlu
ZSBIUFJMQVIzMSAgICAgICAgcDE1LDUsYzYsYzE1LDUNCj4+IA0KPj4gTklUOiBJcyB0aGVyZSBh
bnkgd2F5IHdlIGNvdWxkIGdlbmVyYXRlIHRoZSB2YWx1ZXMgdXNpbmcgbWFjcm9zPw0KPiBUaGlz
IGxvb2tzIHRyaWNreS4gU28gSSB3aWxsIHByZWZlciB0byBrZWVwIHRoaXMgYXMgaXQgaXMuDQo+
PiANCj4+PiArDQo+Pj4gICAvKiBBbGlhc2VzIG9mIEFBcmNoNjQgbmFtZXMgZm9yIHVzZSBpbiBj
b21tb24gY29kZSAqLw0KPj4+ICAgI2lmZGVmIENPTkZJR19BUk1fMzINCj4+PiAgIC8qIEFscGhh
YmV0aWNhbGx5Li4uICovDQo+Pj4gICAjZGVmaW5lIE1QVUlSX0VMMiAgICAgICBITVBVSVINCj4+
PiAgICNkZWZpbmUgUFJCQVJfRUwyICAgICAgIEhQUkJBUg0KPj4+ICsjZGVmaW5lIFBSQkFSMF9F
TDIgICAgICBIUFJCQVIwDQo+PiANCj4+IEFGQUlVLCB0aGUgYWxpYXMgd2lsbCBiZSBtYWlubHkg
dXNlZCBpbiB0aGUgbWFjcm8gZ2VuZXJhdGUNCj4+IHRoZSBzd2l0Y2guIFJhdGhlciB0aGFuIG9w
ZW4tY29kaW5nIGFsbCB0aGUgUFIqQVJfRUwyLCBjYW4gd2UNCj4+IHByb3ZpZGUgdHdvIG1hY3Jv
cyBQUntCLCBMfUFSX04gdGhhdCB3aWxsIGJlIGltcGxlbWVudGVkIGFzDQo+PiBIUFJ7QixMfUFS
IyNuIGZvciBhcm0zMiBhbmQgUFJ7QixMfUFSIyNuIGZvciBhcm02ND8NCj4gDQo+IFllcyAsIHdl
IGNhbiBoYXZlDQo+IA0KPiAjZGVmaW5lIFBSe0IsTH1BUl9FTDJfKG4pICAgICAgICAgIEhQUntC
LEx9QVIjI24gZm9yIGFybTMyDQo+IA0KPiAjZGVmaW5lIFBSe0IsTH1BUl9FTDJfKG4pICAgICAg
ICAgIFBSe0IsTH1BUiMjbiMjX0VMMg0KDQp3ZSBjb3VsZCBoYXZlIHRoZW0gaW4gbW0uYywgSSBz
ZWUgaW4geW91ciB2MiB5b3XigJl2ZSBwdXQgdGhlbSBpbiBjcHJlZ3MuaCwNCmJ1dCBzaW5jZSB0
aGV5IGFyZSBvbmx5IHVzZWQgYnkgdGhlIGdlbmVyYXRvciwgSSB3b3VsZCBwdXQgdGhlbSB0aGVy
ZS4NCg0KDQoNCg==


From xen-devel-bounces@lists.xenproject.org Mon Apr 28 19:11:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 19:11:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.971004.1359508 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9TtP-0000bW-1y; Mon, 28 Apr 2025 19:11:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 971004.1359508; Mon, 28 Apr 2025 19:11: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 1u9TtO-0000bP-Vc; Mon, 28 Apr 2025 19:11:50 +0000
Received: by outflank-mailman (input) for mailman id 971004;
 Mon, 28 Apr 2025 19:11: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=Ud9o=XO=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1u9TtN-0000bH-Hv
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 19:11:49 +0000
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 (mail-am6eur05on20624.outbound.protection.outlook.com
 [2a01:111:f403:2612::624])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a16878a2-2464-11f0-9ffb-bf95429c2676;
 Mon, 28 Apr 2025 21:11:47 +0200 (CEST)
Received: from DU2PR04CA0161.eurprd04.prod.outlook.com (2603:10a6:10:2b0::16)
 by PA4PR08MB7434.eurprd08.prod.outlook.com (2603:10a6:102:2a5::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.30; Mon, 28 Apr
 2025 19:11:41 +0000
Received: from DB3PEPF00008860.eurprd02.prod.outlook.com
 (2603:10a6:10:2b0:cafe::6) by DU2PR04CA0161.outlook.office365.com
 (2603:10a6:10:2b0::16) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.40 via Frontend Transport; Mon,
 28 Apr 2025 19:11:41 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) 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.8678.33
 via Frontend Transport; Mon, 28 Apr 2025 19:11:41 +0000
Received: from DB7PR08MB2987.eurprd08.prod.outlook.com (2603:10a6:5:1c::25) by
 GV2PR08MB8097.eurprd08.prod.outlook.com (2603:10a6:150:75::22) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.8678.31; Mon, 28 Apr 2025 19:11:06 +0000
Received: from DB7PR08MB2987.eurprd08.prod.outlook.com
 ([fe80::d53f:b16d:70a5:8668]) by DB7PR08MB2987.eurprd08.prod.outlook.com
 ([fe80::d53f:b16d:70a5:8668%5]) with mapi id 15.20.8678.028; Mon, 28 Apr 2025
 19: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>
X-Inumbo-ID: a16878a2-2464-11f0-9ffb-bf95429c2676
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=xcCnlJcH9gW4bzzcwRd3WJLwNHfqrSpnBUpG641UDl6UBVzCH/H3Krg3h1FFBAOgAKFyFYL4/gYsIdKASg2RVXH7B0jMEQM83Op5Nx+X1HX0d5GsTrYqQhGxHDKhes8lqIgyn9yGT4mtMUZFtlz6ER4b+lEQ7nxBurUCAJNM/9SLJgRSwE20bbam0l+YvjomXxOfEj/2MAbpi7s3J3F1dennxaK8/ndrrqtRFmeb9C3hvNprAUSj/joJc0BX2T0488xD6IbOrnSGwynKzbSSFyjt0ptyvLvGAr6E9hPwOzEak55PJCNmVXThyS0slVzP9300/Kp7OSa7AvvmeAnHrA==
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=HseMuBUfqlWWSPOghP252rN34H3643z5JiS/QPYM9y4=;
 b=LE4l9Xt8GVU1UAoArw24M7YpxeSH9vxfJ4n5Stg6zYWDqBhDm/QsEWyo8aL09lf0WFaisN57klBIHKXj6p2KnrktzJM8eLANfbiZ8jNvigpJcaMjasbSR6P7B11HQr1I/8jNtKC40xqBSyEINp7Q6d0MAOJ1MwLBRfL3ASKIqAE3CymkR5xA3GuqeSzoG0TG7/zbU90JCDkroXf2xGBnFGV4zI8BaIzw6D8C2+g+dQxBUiKGdX4DVR+lf6vSb8h5fsBoHolDjyB1vj2N13t5BOE7eEjGdHHtQ4ZIT/THUNvNbE1dZ65FgsYzCkk+uAbei/go0cQ4DHPhkMvose/8Hg==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=xen.org smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=HseMuBUfqlWWSPOghP252rN34H3643z5JiS/QPYM9y4=;
 b=QqNh1nTNyeuS2cXTZGqN0/oju9V/3OCKPKwjwfFfsjBLj9aZcmiigiH1hvNY7AynnPb/bC2ZaghxiC2mNWWuSlV6NtnuOg8Mp0xuBT7b7D8f+DHIxv9tiud9GgrJaGDBbPC9hGGxGdzMLrD+6klEUA7CrxAg1/Ax/5LL944yTcs=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=GcOEiWEYbPanz/6kQ7fGtzQkx8Az/awND4JhP0yMruBwSYEBmf4HQY7gYyFFqKKrCce8BEbtP2DC/iiPRuhJ4ygho39bxK6wfyqgomLY59F3u80/dhv41WKN6MKvqGYSXOYRNGG6AT5fAgo6KrDKziiF1k/Q/b8qXBHfbI7ku6wrzo7lNB9OmwjXdf7Q/myANj7HjZzApkAxKTwDhtnYI75kbiWGXh8WnQllo4NEvrSpc7BO1ZERc8k8l3npvK5+K10UeLUPkGm1Tua1EmHFz5E+aI3Z6JOscVMxWTaFtYEBaXbZKaUKxB2E9URxj5Ia6V4K0/Mm2F1vjPx5Wa2P6A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=HseMuBUfqlWWSPOghP252rN34H3643z5JiS/QPYM9y4=;
 b=tnRpw0/0nMo3Rj+G2IXtLscspHiRVUthiGVVAO7kxBoVt8TzKmNL6gyuK/Zbj+nxyifk95uBeAdBuFIcOnqfZebxrm8RJ3WNSy0wJL0jQmCF8XZwQFLITtFQwkSoJ3pnsvspEWmVvJA/+kMOkGEnUqsBr4kMPr+x+fbrDxjOUdGC3BM6fuvF6cKpDmcJCQiIg5+tx44O7m6R0x4NRnuMGUWLwYwXKswVt3YeE3uYYqm+vjxeB6s9/3UyjT5QtxZqy7r4FKaQukjMqpGf6qZJXjgh9d2wvDv3dmvbnf0sMu40C4HFrDW1mR2Vugy20eXFypYyPE17jiOgJhdk9ZMK7Q==
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=HseMuBUfqlWWSPOghP252rN34H3643z5JiS/QPYM9y4=;
 b=QqNh1nTNyeuS2cXTZGqN0/oju9V/3OCKPKwjwfFfsjBLj9aZcmiigiH1hvNY7AynnPb/bC2ZaghxiC2mNWWuSlV6NtnuOg8Mp0xuBT7b7D8f+DHIxv9tiud9GgrJaGDBbPC9hGGxGdzMLrD+6klEUA7CrxAg1/Ax/5LL944yTcs=
From: Luca Fancellu <Luca.Fancellu@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>, 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 v1] xen/arm: AArch32-V8R: Add MPU register definitions
Thread-Topic: [PATCH v1] xen/arm: AArch32-V8R: Add MPU register definitions
Thread-Index: AQHbr7FEzJkzCX7IxEuG28e/+R7zurOo3KoAgAt3HYCAABnBAIAFFYYA
Date: Mon, 28 Apr 2025 19:11:06 +0000
Message-ID: <0301958D-EC51-4084-9FCB-69E47376704A@arm.com>
References: <20250417155511.1854081-1-ayan.kumar.halder@amd.com>
 <306e5414-1552-4605-86d6-b23b89d00bc9@xen.org>
 <cebb0020-531f-467c-bc81-54d2ba1aa8e0@amd.com>
 <f2a55c19-4a8b-44a3-be9e-bdf3fb554b7d@xen.org>
In-Reply-To: <f2a55c19-4a8b-44a3-be9e-bdf3fb554b7d@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.400.131.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DB7PR08MB2987:EE_|GV2PR08MB8097:EE_|DB3PEPF00008860:EE_|PA4PR08MB7434:EE_
X-MS-Office365-Filtering-Correlation-Id: b49fe040-f9f4-4217-b48a-08dd86888221
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?OVVLYzNRWjZ0OEd1V1N6Y2NLdTVja1d4dGdmcHhDUDloWU5ueUI3ZWN0cEVD?=
 =?utf-8?B?Y2U5UWZSZzI2cTZNbXFyQmFLSld4cHlGajJ6TUdYZ3BQMzFHeUIxbWJlU080?=
 =?utf-8?B?RUN5dFBRZzFTYXN1WGdMTStvR0dvbEx1aFRnMEF4bm5LN1hSUXFrVmdDdzIy?=
 =?utf-8?B?L3FVV1E2ajE5RjJCZ1pYUVJscHZoaUdMMEEvamZ4RGlmWnVtTnlTaFZrZ2I3?=
 =?utf-8?B?RmU4TmFqa3NVbnR5MXl3dmJKVTZjdmJGeVpIUVlPSCtqbGlnNW53SStGN2lV?=
 =?utf-8?B?ekFzNml0eDVmclRwWW1CVGN4U0lhMTR4QlIwaXFjRW1SclhWWFk0c2VHbVIr?=
 =?utf-8?B?VTJzOXZBN0ozVmFHaDRHR3ArMW82UnVwdUlpVUdaN0IreW51SUtNVlNaeWx1?=
 =?utf-8?B?MTJzNkVnNGw3QWdVd3NRUHR3QmtUMXBkd3p3a1AxdElpbmt5WXl3RUJ1dU12?=
 =?utf-8?B?bTk3T0ZXOFh6aitNY0dRNW1MWWtWQ1l3WUhPWXFWZ2NLRzNiU1JoVTFpZzFZ?=
 =?utf-8?B?ZHJqY3cxcXJoWWQ4SjJ1T2dVcThaZ2ZZMm1NS3JiWnBXNFRxbnNlNUJ2Uldt?=
 =?utf-8?B?RHVTVzJraEpCSkpEZ21oVXN6YUJ4QmhIR2hqQWI5elRaRUMrN2Fid2pYRVJ5?=
 =?utf-8?B?aWs3aWo0enVrUlEraG4zdHNwZGJraGlJZG5sU3RUT3JTNTlQcTNxaGRibmZz?=
 =?utf-8?B?NDlEeFp1MVNUUHNVVlZieGVWRTNIU040M1QrNXJXbE15RlE4dldpSFlxZXNB?=
 =?utf-8?B?VmVsZWx0Z2hWNjhmUVdJK0xwblpMZytqU1hwSlJjaVlyS2g1SXp2eWxnR3NZ?=
 =?utf-8?B?c05ESEZNeEFYZDlTVC9ETFJLcTR2TGxtc1FUTzhnVEFuVGd5MTVpWlk3dWlV?=
 =?utf-8?B?Yk44djUzOEVMQ1BOeURWdGJmOFNzckorQTF1Z09zMGNGNWRiR1BSVWFpa0I2?=
 =?utf-8?B?eEtzc1hwcmVNOFlPWUd1MHdPMzNuUTNSekhpeDdaWW55K1h3V01DL1NFd2Jv?=
 =?utf-8?B?UHQwVEZPbVhQSFM1WEF4MW5YUDBWSjFGc1lRWTRuM1ZkK2hjOWw5eDRlN3NH?=
 =?utf-8?B?M2E5RmN3L21QQnVvQmpjTTcyYkZYR2JjeEpndE10Njc4SVhGRGY0d2xhaDA0?=
 =?utf-8?B?VTV0SUM5ZDI4NVVLcXpMdkhaSUM4SXdmamZIS3lBdTEyd1d2VlN6eVB2MDZO?=
 =?utf-8?B?NHFpdnVoUU91ZGVNZk1nL0tXQmJhL1gvM0ovdFJTSTMrTk1YTXRTdmpYeVdV?=
 =?utf-8?B?WmgzaThIK2xRakV5S2RwRytCcjV5YXlMWkg2QXJrbS9xbXAxbW5scVh6a2tu?=
 =?utf-8?B?TGdUMlhVNThsTEMzTlVXNmd5ek5KWWRPZ0hNRzJpc2ZleEl1MEVPZFVEMExB?=
 =?utf-8?B?c3NoRjVSOTRKeWNqVmlvM2ZGMHJBYy95RUpNNm00RHhvL1dkbGduQnRqbEJY?=
 =?utf-8?B?WnVWVm1uQzNJRFEyMEs1WlVEVDNKZFA4RTRyc1JteGNseGZETGVhNDRLc0tV?=
 =?utf-8?B?L3hTRFk3UVpQSHVwY0Rjc1pLbDQ3VlREaXNrRmZHeVlmY2R3UjQxaFJwOVIx?=
 =?utf-8?B?UGsyMkhySUVlNHVnSXVwVnpmclIzSEJTdjdtZ0hzZld3WU9JWTJvbFdXZUZh?=
 =?utf-8?B?bTRIL0o2ck9zYXByUjNwV0NNMWVkSm9xeDc1SGRGMVpXcTlsMmlXcE1pVFh4?=
 =?utf-8?B?bTRCWTZrKzNhWVNjNnN5dkRBZnd5QWxZZlkrOTBCN2JTMWlKclJNOUJSNW1o?=
 =?utf-8?B?aHdkSnV2RXJ0NCt3N0o4c2wxRHpVRnNrbHNabVFicGdzdGFsMmYxVUM5dnhD?=
 =?utf-8?B?N2pmVzdOdGM5R09CZjUzT3NtZjBLRFhrQTRMVTQwR2VYR1ZhR3RNTlJOVmY5?=
 =?utf-8?B?Ukd6OGFNM2RwanpiUE1mM1lRSjliVGo1VTRtK1drbDg0bzFVd0xlVFVpQnZL?=
 =?utf-8?B?ZmJ0TFY2SEhteHBqdWhGQ2tzY0VDaml6TWlHcVdBRVpGbTJjZGQ0enlNMS9p?=
 =?utf-8?B?T0cxUjd4cldnPT0=?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB7PR08MB2987.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: <75CEB62E6DBE844FBCED74BC776682F1@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV2PR08MB8097
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB3PEPF00008860.eurprd02.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	742e8f5d-15ce-4ac7-c89b-08dd86886d61
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|14060799003|82310400026|36860700013|376014|35042699022|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?UDIybDFFdldSdWpqcmZjcnpNZWxKczhES1llc2RwOTVPeVBMcVRKeWxMQTRj?=
 =?utf-8?B?aWNYS3BwOERSZW1LSnUwamNUczI2bzFnM0tTSVJpTnNnZ3E2OXBBdXhTUXVa?=
 =?utf-8?B?OG5VU2ErNXhlYXVsb3VCS01RWkcyRWZ6WEdQWiswUTBIdjg2NE44NlF4S2x6?=
 =?utf-8?B?NlpFNk1GNSsxUlFrczU1SXMzWVpxaWpIY2RIMnR1U1F0enBYWXlVbk5FV0gx?=
 =?utf-8?B?TjBjV2JqZDg5M0N0M25aN1ZxR2UrMkJ4cndzUTRzU0p5RkpmbHo5ZUhTWkxz?=
 =?utf-8?B?Ym5nMktYcWc5ZnVERGlmak1Ycy9LTzl3aUhFaEhsV2d4c2pOaEQreHVLNTZF?=
 =?utf-8?B?MXYvZFFlTTAyM1dQWkhlbHJtZXBzcmQ2cFBXeUdZWFRUMmlOZXZRaVZVdTA1?=
 =?utf-8?B?ZWhVenlMaHV5aGpTWXVqWUxtRVhTYW40S0VwNTFPMlUvRm9NaGZabVJFVXVi?=
 =?utf-8?B?V1ZjTGI5WnBsbzlRM3UwSDhTcEJwMFM5Yks5RVdoOENIR2cxNVprZ0NiUWxw?=
 =?utf-8?B?S1RaMzl6K3o3RDBtL21ENHZDNmlBQ1l0RjhpU1BwYlI1RW5vcHRLZmREeDBh?=
 =?utf-8?B?UGJQUTFvRlNwRTZDUUVSVjhhUUpkbFFQd2FDUW9NYXlZd0VwWTFaNVpnem5I?=
 =?utf-8?B?VTJXTk9jY1RHSzZaMmd5OUgxTVRJUGNKNmRLbHpNYnZuL2VuTXVWZjVJNVVm?=
 =?utf-8?B?QlJyMURqQjc3WmJFR09FcE5veU5LZmprZ1BmM2UzQ2dmREMzK2RLY21TVDZ5?=
 =?utf-8?B?bVlDS2xYb0xZdnNtTHZIUk1OdzV3L1dlN2JGRDZkQ3JrWnN3SnBlMFR3MGVo?=
 =?utf-8?B?NStrVXdFN2U0TThENE16TlR2V3kzb251RmtOUjZQdkRjdnJtWDNLN1BaOU9F?=
 =?utf-8?B?S25QWWo4V1dUN1NmNzlkWFNGNFZZWFozSzB6cWN1RDlGSHU2UnUwWG5XWmNK?=
 =?utf-8?B?alJxd2szZExNZmU2eExQT2dKSDZhUytxR3NqVVZMTGU5a3RmQjU0UmZIUUNw?=
 =?utf-8?B?dWg3Z0J5ZUFlbE5hOCt2UncwR3E0eDVNMThGSElnQnlETTk0em9ZVDE3ckJ4?=
 =?utf-8?B?Mkt2ZE1rcUdwNzBuMmtoNFdiUUVFZ2I2TG1wS1AxREsyY1RadURJTzBJbXBs?=
 =?utf-8?B?QlVsSGxpempmZURyOUhwRG1ML2JWNWJRQnJsRjlHL2FNTkV4ZWFPMER4V1k4?=
 =?utf-8?B?eTF3Z1ZXZXVDQmE4OHdaY0V4aFk0NC9KM3dYWjBSYVAyemJtUy93enBJdDBs?=
 =?utf-8?B?M2IrVnA3anJKdEJRUDlnUDF6WXJRWXFib093ZkZKUU1EMm1ZeWcxYVNidktt?=
 =?utf-8?B?ck5sVHNBT0g2bDkya0tKWERwMHQ3R0t2YVVFKzhDQjJucnVDV2FkVGF2RDhv?=
 =?utf-8?B?Y05oRGJ2RHdFUkdyS2x4RG1EaUNLV1U1d0J4aVFpMEFYY0luOUtlM2lwd214?=
 =?utf-8?B?MWNYZ2VaUzlHOVN2MDNXZm5ZU3hIMWZXd2pwRVVRSnp1RUlpUy9IbkkzbGJN?=
 =?utf-8?B?bWhtTzdEZlFPVy95RkIydTQwNVV1ck1LamNCekNaUlNDaFFRZ1ZJTG55SGNQ?=
 =?utf-8?B?K2I1T25YdnJzd1pGWTV2UEhubzdQQlJ4R25Zemd2ZzZPa0lEZFdIcHVCWVpF?=
 =?utf-8?B?d2xWMDZRQXZFTGJneFNGRHlPU0J3NGFIdERzSlBZcDlIUFduZm13TS9IRXVH?=
 =?utf-8?B?blJuVlN6ZUJKNTNQM1dzd2FkY1NocU5nWTlqRGU0YlZxMUI5OW1sS1VsNURK?=
 =?utf-8?B?R3VjNVRqd0U4WUJZOVpBdy93N09sN09KNnovelF5OTVqVGowdFRNSTZRNUU3?=
 =?utf-8?B?a0xmNmxuekhETlB6MjM1Q0lVQjBJYVowMjRaOFJpLzlYRzNTMFlSbFRFYW1i?=
 =?utf-8?B?aVQrRHlwVER3MG9XQnlyTFI0ZnNadkpWTGdCandvWmtwMVkwOXhiUDdiU1N3?=
 =?utf-8?B?cWZ2b21ZWUROdFVtUFFsRERWQXByNmhUT3lIL24xMkxKS2dCU1ZSWG5CMXNE?=
 =?utf-8?B?MHlJUUw0czQvZkhmVTlwbkt0N0w5bVc5S2M5TFFyU1FWVUplVEttRlg0SFpB?=
 =?utf-8?Q?j6282b?=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(14060799003)(82310400026)(36860700013)(376014)(35042699022)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Apr 2025 19:11:41.2383
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: b49fe040-f9f4-4217-b48a-08dd86888221
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DB3PEPF00008860.eurprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR08MB7434

DQoNCj4gT24gMjUgQXByIDIwMjUsIGF0IDE0OjMyLCBKdWxpZW4gR3JhbGwgPGp1bGllbkB4ZW4u
b3JnPiB3cm90ZToNCj4gDQo+IEhpIEF5YW4NCj4gDQo+IE9uIDI1LzA0LzIwMjUgMTM6MDAsIEF5
YW4gS3VtYXIgSGFsZGVyIHdyb3RlOg0KPj4+PiArICAgICAgICB1bnNpZ25lZCBpbnQgbnM6MTsg
ICAgIC8qIFJlc2VydmVkIDAgYnkgaGFyZHdhcmUgKi8NCj4+Pj4gKyAgICAgICAgdW5zaWduZWQg
aW50IHJlczA6MTsgICAvKiBSZXNlcnZlZCAwIGJ5IGhhcmR3YXJlICovDQo+PiBUaGVuLCB3ZSBj
YW4gY2hhbmdlIHRoaXMgb24gQXJtMzIgYXMgd2VsbC4NCj4+Pj4gKyAgICAgICAgdW5zaWduZWQg
aW50IGxpbWl0OjI2OyAgLyogTGltaXQgQWRkcmVzcyAqLw0KPj4+IA0KPj4+IE5JVDogQ2FuIHdl
IGFsaWduIHRoZSBjb21tZW50cz8NCj4+IEFjay4NCj4+PiANCj4+Pj4gKyAgICB9IHJlZzsNCj4+
Pj4gKyAgICB1aW50MzJfdCBiaXRzOw0KPj4+PiArfSBwcmxhcl90Ow0KPj4+PiArDQo+Pj4+ICsv
KiBQcm90ZWN0aW9uIFJlZ2lvbiAqLw0KPj4+PiArdHlwZWRlZiBzdHJ1Y3Qgew0KPj4+PiArICAg
IHByYmFyX3QgcHJiYXI7DQo+Pj4+ICsgICAgcHJsYXJfdCBwcmxhcjsNCj4+Pj4gKyAgICB1aW50
NjRfdCBwMm1fdHlwZTsgICAgICAgICAgLyogVXNlZCB0byBzdG9yZSBwMm0gdHlwZXMuICovDQo+
Pj4+ICt9IHByX3Q7DQo+Pj4gDQo+Pj4gVGhpcyBsb29rcyB0byBiZSBjb21tb24gd2l0aCBhcm02
NC4gSWYgc28sIEkgd291bGQgcHJlZmVyIGlmIHRoZSBzdHJ1Y3R1cmUgaXMgaW4gYSBjb21tb24g
aGVhZGVyLg0KPj4gTm8sIGluIGFybTY0IHRoaXMgaXMNCj4+IHR5cGVkZWYgc3RydWN0IHsNCj4+
ICAgICAgcHJiYXJfdCBwcmJhcjsNCj4+ICAgICAgcHJsYXJfdCBwcmxhcjsNCj4+IH0gcHJfdDsN
Cj4+IFRoZSByZWFzb24gYmVpbmcgQXJtNjQgdXNlcyB1bnVzZWQgYml0cyAoaWUgJ3BhZCcpIHRv
IHN0b3JlIHRoZSB0eXBlLg0KPiANCj4gSG1tbS4uLiBUaGV5IGFyZSBiaXRzIGZyb20gdGhlIHN5
c3RlbSByZWdpc3RlciAocHJiYXIpLCByaWdodD8gSWYgc28sIHlvdSBjYW4ndCB1c2UgdGhlbSBm
b3Igc3RvcmluZyB0aGUgcDJtX3R5cGUgYXMgQUZBSUNUIHRoZXkgYXJlIFJFUzAuDQo+IA0KPiBZ
b3UgY291bGQgcG9zc2libHkgbWFzayB0aGUgYml0cyBiZWZvcmUgd3JpdGluZyB0aGVtLg0KDQpU
aGlzIHdhcyB0aGUgYXBwcm9hY2ggdGFrZW4gaW4gdGhlIEFybTY0LCBJIHRoaW5rIHRoZSByZWFz
b24gd2FzIGJlY2F1c2UgaW4gdGhpcyB3YXkgdGhlIG92ZXJhbGwgbWF4aW11bSBzdHJ1Y3R1cmUg
d2FzIGxlc3MgdGhhbiBhIHBhZ2UNCmFuZCBpdCB3YXMgZWFzaWVyIHRvIG1hbmFnZSBzb21ldGhp
bmcsIEnigJlsbCBzZWUgaWYgSSBjYW4gZmluZCB3aGF0LCBJIHRoaW5rIGl0IHdhcyByZWxhdGVk
IHRvIHAybS4uLg0KDQo+IEJ1dCB0aGVuLCBpdCB3aWxsIGJlY29tZSByaXNreSBpZiB0aGUgZmll
bGRzIGFyZSBkZWZpbmVkLg0KPiANCj4gQWxzbywgdGhlIG51bWJlciBvZiBNUFUgcmVnaW9ucyBp
cyBmYWlybHkgc21hbGwuIFNvLCBJIGRvbid0IHRoaW5rIGl0IGlzIHdvcnRoIGl0IHRvIHN0b3Jl
IHAybV90eXBlLg0KPiANCj4gUmVnYXJkbGVzcyB0aGF0LCBJIHRoaW5rIGl0IHdvdWxkIGJlIGJl
dHRlciB0byBkZWZlciB0aGUgaW50cm9kdWN0aW9uIG9mIHAybV90eXBlIHVudGlsIGd1ZXN0IHN1
cHBvcnQgaXMgYWRkZWQuIFNvIGl0IHdpbGwgYmUgZWFzaWVyIHRvIHVuZGVyc3RhbmQgaG93IHRo
aXMgaXMgZ29pbmcgdG8gYmUgdXNlZCBhbmQgdGhlIHNpemUgKGZvciBpbnN0YW5jZSwgSSBkb3Vi
dCA2NC1iaXQgaXMgbmVjZXNzYXJ5Li4uKS4NCj4gDQo+IENoZWVycywNCj4gDQo+IC0tIA0KPiBK
dWxpZW4gR3JhbGwNCj4gDQoNCg==


From xen-devel-bounces@lists.xenproject.org Mon Apr 28 19:43:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 19:43:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.971017.1359518 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9UNu-00054C-Cm; Mon, 28 Apr 2025 19:43:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 971017.1359518; Mon, 28 Apr 2025 19:43: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 1u9UNu-000545-9k; Mon, 28 Apr 2025 19:43:22 +0000
Received: by outflank-mailman (input) for mailman id 971017;
 Mon, 28 Apr 2025 19:43: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=N2FI=XO=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u9UNr-00053z-Tq
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 19:43:21 +0000
Received: from mail-4322.protonmail.ch (mail-4322.protonmail.ch [185.70.43.22])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0800f6be-2469-11f0-9eb4-5ba50f476ded;
 Mon, 28 Apr 2025 21:43:17 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0800f6be-2469-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=og4lo4ssrzgzfbcrpvzyrmv7fu.protonmail; t=1745869396; x=1746128596;
	bh=wRgkXbc2yl05GK2B9vL5f3uMltGm6Th/xvyUhONdStM=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=KiZX3VHNsNgysqk9qPmysAJad4Z30FYuzAlZ1S4Ibf77ZBdBo8rubyRXiUJCclDmu
	 pnwr2DkZcptHBf+pfCYtkKfDpzy3q8a3Yn3Xze7mlGltHXJqpLdUMkhxM78tGRgmJt
	 zzFOL7nt/FL+PAbTdPuR3/gmtHrDsF5ljkrsyj7qMBf599ExkWJqcUv44MBcJie1Dp
	 0bdSeDnpa/SbDUj33hp0sOOTEHumvCvSy3rroVzbVm9Za9EN18SVKUVzsZ+Tu5C83K
	 QwFvVb3pyQEmNeJYyC4V4vnkI3aX8CSjnRSaoFCHS5fXLLFNbGO0BYVBSlFoAD81WR
	 7S3/rRyAiJCeg==
Date: Mon, 28 Apr 2025 19:43:11 +0000
To: Andrew Cooper <andrew.cooper3@citrix.com>
From: dmkhn@proton.me
Cc: xen-devel@lists.xenproject.org, jbeulich@suse.com, roger.pau@citrix.com, dmukhin@ford.com
Subject: Re: [PATCH v4 2/3] x86/vmx: Update DR7 type
Message-ID: <aA/aSwHbr6V3qoF/@kraken>
In-Reply-To: <27800fcd-76e3-429c-921d-72bf7670686d@citrix.com>
References: <20250426072739.39373-1-dmukhin@ford.com> <27800fcd-76e3-429c-921d-72bf7670686d@citrix.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 794d04614d3ca427c51bdd25b9fd407b2f708bd5
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Mon, Apr 28, 2025 at 12:48:42PM +0100, Andrew Cooper wrote:
> On 26/04/2025 8:27 am, dmkhn@proton.me wrote:
> > From: Denis Mukhin <dmukhin@ford.com>
> >
> > Convert the DR7 type to `unsigned int` and fix the accesses where neces=
sary.
> >
> > [1] https://lore.kernel.org/xen-devel/0d01646b-83e3-4a02-b365-d149d2664=
e73@citrix.com/
> >
> > Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> > ---
> >  xen/arch/x86/hvm/vmx/vmx.c        | 2 +-
> >  xen/arch/x86/include/asm/domain.h | 2 +-
> >  2 files changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c
> > index 4883bd823d..75c6992172 100644
> > --- a/xen/arch/x86/hvm/vmx/vmx.c
> > +++ b/xen/arch/x86/hvm/vmx/vmx.c
> > @@ -926,7 +926,7 @@ static void vmx_save_dr(struct vcpu *v)
> >      v->arch.dr[3] =3D read_debugreg(3);
> >      v->arch.dr6   =3D read_debugreg(6);
> >      /* DR7 must be saved as it is used by vmx_restore_dr(). */
> > -    __vmread(GUEST_DR7, &v->arch.dr7);
> > +    v->arch.dr7 =3D vmread(GUEST_DR7);
>=20
> Two minor points.=C2=A0 The =3D wants lining up for vertical tabulation, =
and ...
>=20
> >  }
> >
> >  static void __restore_debug_registers(struct vcpu *v)
> > diff --git a/xen/arch/x86/include/asm/domain.h b/xen/arch/x86/include/a=
sm/domain.h
> > index 5fc1d1e5d0..a54ef3a8c1 100644
> > --- a/xen/arch/x86/include/asm/domain.h
> > +++ b/xen/arch/x86/include/asm/domain.h
> > @@ -595,7 +595,7 @@ struct arch_vcpu
> >
> >      /* Debug registers. */
> >      unsigned long dr[4];
> > -    unsigned long dr7; /* Ideally int, but __vmread() needs long. */
> > +    unsigned int dr7;
> >      unsigned int dr6;
>=20
> ... these fields want switching back around now that dr7 is unsigned int.
>=20
> We always access in numeric order, and they're only out-of-order for
> packing reasons.
>=20
> Can fix on commit.

Thanks!

>=20
> ~Andrew



From xen-devel-bounces@lists.xenproject.org Mon Apr 28 19:45:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 19:45:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.971027.1359529 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9UPw-0005Zt-Ob; Mon, 28 Apr 2025 19:45:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 971027.1359529; Mon, 28 Apr 2025 19:45: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 1u9UPw-0005Zm-KH; Mon, 28 Apr 2025 19:45:28 +0000
Received: by outflank-mailman (input) for mailman id 971027;
 Mon, 28 Apr 2025 19:45: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=N2FI=XO=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u9UPv-0005Zg-Lo
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 19:45:27 +0000
Received: from mail-10630.protonmail.ch (mail-10630.protonmail.ch
 [79.135.106.30]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5485b7f2-2469-11f0-9eb4-5ba50f476ded;
 Mon, 28 Apr 2025 21:45:25 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5485b7f2-2469-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1745869524; x=1746128724;
	bh=bc7Ndy3JrkpE0Y/Bizs8QiSkvloKDOrkgGRDVzrn52Q=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=a081DLwTrGg+lyvskID9rm+R7BF4oeL+hhWBq/MEgQSMBb3a3jchycoD3kzbx53bT
	 VqCOPRYeQYYgjaJKkirqTyFEMHxCGboWK/+N9xq3JuMSP4JzS8cbv5/u1cAtdgOuw4
	 kF7oF0qkeNjTN0BGfF/444UapsQj0z0LvRzV4rWRe8bDxLuHZrYTwglMuYkxYBb7Bn
	 jBBv4USFjQOdXUfNoo8Cy+EmhAdiuCQlmz3G4UuepmTP4+LSP4pGm8XIIrRKcEANbt
	 qXlb0bLj019CzQSUNDkOYO1EzulPBF3OTifIThX7bWXPVRsnpEkDjXKYRWEV0CaD8M
	 Mb6QeoTE1KV0A==
Date: Mon, 28 Apr 2025 19:45:19 +0000
To: Andrew Cooper <andrew.cooper3@citrix.com>
From: dmkhn@proton.me
Cc: xen-devel@lists.xenproject.org, jbeulich@suse.com, roger.pau@citrix.com, dmukhin@ford.com
Subject: Re: [PATCH v4 1/3] x86/vmx: Introduce vmread()
Message-ID: <aA/azHrc2W7ICQ41@kraken>
In-Reply-To: <0b47b52c-e998-430a-90f6-e95bda74524d@citrix.com>
References: <20250426072720.39317-1-dmukhin@ford.com> <0b47b52c-e998-430a-90f6-e95bda74524d@citrix.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 9cfb06204fec801e2636169f51587eefbcb3464b
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Mon, Apr 28, 2025 at 12:39:36PM +0100, Andrew Cooper wrote:
> On 26/04/2025 8:27 am, dmkhn@proton.me wrote:
> > From: Denis Mukhin <dmukhin@ford.com>
> >
> > The current implementation of __vmread() returns the result via pointer
> > argument which leads to excess code in some places.
> >
> > Introduce a new vmread() function as suggested in [1].
> >
> > [1] https://lore.kernel.org/xen-devel/c452a1d7-4a57-4c5f-8a83-36a74ff22=
8ec@citrix.com/
>=20
> Usually for this, we use
>=20
> Suggested-by: whoever
>=20
> rather than links to emails.=C2=A0 I can fix on commit.

OK, noted for the future.
Thanks!

>=20
> ~Andrew



From xen-devel-bounces@lists.xenproject.org Mon Apr 28 19:50:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 19:50:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.971038.1359537 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9UUn-00075y-7v; Mon, 28 Apr 2025 19:50:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 971038.1359537; Mon, 28 Apr 2025 19: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 1u9UUn-00075r-5N; Mon, 28 Apr 2025 19:50:29 +0000
Received: by outflank-mailman (input) for mailman id 971038;
 Mon, 28 Apr 2025 19:50: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=N2FI=XO=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u9UUm-00075l-4g
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 19:50:28 +0000
Received: from mail-10631.protonmail.ch (mail-10631.protonmail.ch
 [79.135.106.31]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 08150c84-246a-11f0-9eb4-5ba50f476ded;
 Mon, 28 Apr 2025 21:50:27 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 08150c84-246a-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1745869825; x=1746129025;
	bh=hn9xYnlQ4v+FxkuFOSAzLhJBKFCTWbY/Zna7O1RcDf4=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=HVsnCQtbUfyShHa4KBnu+5eq3wvd2u2H8e084woQ/ZgK3g++5Q2XGU3Vq+g6nJ1Hl
	 4hW6JtibgIdAsqSBYzA3dY5qp9MkasJlqVOGXo9TVq9Dzqhrp2TlMJpUEzQyVydEUn
	 1nDjoCm/OP0GHn66u/WLjlUdqsPBTnYJmEQuaNkcyueaBB6pz7E08iJBGXeTZCYSr7
	 a/R1l0uVK5oNaTpDvWKt+6ZAZgQtMyZy5CSTMr3aWg3Ir5epfjSYqQj2yj0lSQ4CAn
	 8AKa6Hcja39LMvd74eypkPgsYBrGvEXBGOP15hsFRLb2YDreA0+yaW2O+id1Pg/zYy
	 rp+ShFBxkAZgQ==
Date: Mon, 28 Apr 2025 19:50:20 +0000
To: Jan Beulich <jbeulich@suse.com>
From: dmkhn@proton.me
Cc: andrew.cooper3@citrix.com, roger.pau@citrix.com, nicola.vetrini@bugseng.com, consulting@bugseng.com, dmukhin@ford.com, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v4 3/3] x86/vmx: Replace __vmread() with vmread()
Message-ID: <aA/b+XVsKYMkc50/@kraken>
In-Reply-To: <badaead4-7eba-4796-8e96-96a95b36145a@suse.com>
References: <20250426072819.39455-1-dmukhin@ford.com> <badaead4-7eba-4796-8e96-96a95b36145a@suse.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: a12e34076fcb398df8d7a8fcf1b7a1a26cfc4b94
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Mon, Apr 28, 2025 at 01:58:56PM +0200, Jan Beulich wrote:
> On 26.04.2025 09:28, dmkhn@proton.me wrote:
> > @@ -1957,8 +1955,7 @@ void cf_check vmx_do_resume(void)
> >      hvm_do_resume(v);
> >
> >      /* Sync host CR4 in case its value has changed. */
> > -    __vmread(HOST_CR4, &host_cr4);
> > -    if ( host_cr4 !=3D read_cr4() )
> > +    if ( vmread(HOST_CR4) !=3D read_cr4() )
>=20
> It's unclear to me whether this constitutes a violation of Misra rule 13.=
2.
> There are two function calls in this expression. Both funcs are inline, a=
nd
> vmread() is even always_inline, but they're still function calls, which c=
an
> be carried out in either order. And neither can plausibly be pure, let
> alone const.

Thanks, I will revert that hunk.

>=20
> > @@ -1573,12 +1565,12 @@ static void cf_check vmx_get_nonreg_state(struc=
t vcpu *v,
> >  {
> >      vmx_vmcs_enter(v);
> >
> > -    __vmread(GUEST_ACTIVITY_STATE, &nrs->vmx.activity_state);
> > -    __vmread(GUEST_INTERRUPTIBILITY_INFO, &nrs->vmx.interruptibility_i=
nfo);
> > -    __vmread(GUEST_PENDING_DBG_EXCEPTIONS, &nrs->vmx.pending_dbg);
> > +    nrs->vmx.activity_state =3D vmread(GUEST_ACTIVITY_STATE);
>=20
> This struct field can now also shrink down to unsigned int (or uit32_t if=
 need
> be). Likely there are others (and maybe also plain variables). Which in t=
urn
> is an indication that, as was suggested before, this patch wants further
> splitting up. That'll also help with overall progress, as then what's
> uncontroversial and not in need of further adjustment can go in right awa=
y.

I'll will minimize the churn more in next iteration.

>=20
> Jan



From xen-devel-bounces@lists.xenproject.org Mon Apr 28 19:58:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 19:58:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.971050.1359552 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9Uc1-0007yf-Vv; Mon, 28 Apr 2025 19:57:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 971050.1359552; Mon, 28 Apr 2025 19:57:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9Uc1-0007yY-T1; Mon, 28 Apr 2025 19:57:57 +0000
Received: by outflank-mailman (input) for mailman id 971050;
 Mon, 28 Apr 2025 19:57:56 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=s+tr=XO=ariadne.space=ariadne@srs-se1.protection.inumbo.net>)
 id 1u9Uc0-0007yS-DN
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 19:57:56 +0000
Received: from outbound.pv.icloud.com
 (p-west1-cluster5-host11-snip4-1.eps.apple.com [57.103.66.212])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 11edcb19-246b-11f0-9ffb-bf95429c2676;
 Mon, 28 Apr 2025 21:57:53 +0200 (CEST)
Received: from localhost.localdomain (pv-asmtp-me-k8s.p00.prod.me.com
 [17.56.9.36])
 by outbound.pv.icloud.com (Postfix) with ESMTPSA id 84DF71800104;
 Mon, 28 Apr 2025 19:57: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: 11edcb19-246b-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ariadne.space;
	s=sig1; bh=K0UfcYv3WTxscxADpnQTE6dbrKfwyxSj8fcNiZp5ugY=;
	h=From:To:Subject:Date:Message-Id:MIME-Version:x-icloud-hme;
	b=F8LQiHpkmcozGsUIVn0NIxyofOPJWv//v7r9N5BL+Sudz3AqKGZZqH2exQohR0+e4
	 VaGy+Gd3dwXx2YGtXGG9Q2qBF6b+DtM8GIS5Ba1tXS9Km3K9rOawH2/L9mHACDrRVy
	 i1yq0ufi+Asv1W4Kb///+CoYUEGNbpVqhqwl8w1Tq1wSiYxYtq0Ks9CgfjlVufgsw3
	 3fITBz1OzcrLaz82KZSNrqUwpZXg/Alsz64ANpOWiqLDKxY5QUKgSpFleLhNzuhW9J
	 Bv6a2T0vTK+hy8OT9DojJCArqMR7epyZyPdFp9GnUS0mX3ZIudz9lBm+CBKMqaSWmH
	 hCXBfUF16dXeA==
From: Ariadne Conill <ariadne@ariadne.space>
To: xen-devel@lists.xenproject.org
Cc: Ariadne Conill <ariadne@ariadne.space>,
	Paul Durrant <paul@xen.org>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Alejandro Vallejo <agarciav@amd.com>,
	"Alexander M . Merritt" <alexander@edera.dev>
Subject: [PATCH v3] x86/hyperv: use dynamically allocated page for hypercalls
Date: Mon, 28 Apr 2025 12:57:36 -0700
Message-Id: <20250428195736.2516-1-ariadne@ariadne.space>
X-Mailer: git-send-email 2.39.5 (Apple Git-154)
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Proofpoint-GUID: gHF_yi7tNRx97wpQoDcPOQrznhtP2YMB
X-Proofpoint-ORIG-GUID: gHF_yi7tNRx97wpQoDcPOQrznhtP2YMB
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.0.736,FMLib:17.12.80.40
 definitions=2025-04-28_07,2025-04-24_02,2025-02-21_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0
 bulkscore=0 spamscore=0 phishscore=0 mlxscore=0 mlxlogscore=843 clxscore=1030
 adultscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.22.0-2503100000 definitions=main-2504280161

Previously Xen placed the hypercall page at the highest possible MFN,
but this caused problems on systems where there is more than 36 bits
of physical address space.

In general, it also seems unreliable to assume that the highest possible
MFN is not already reserved for some other purpose.

Fixes: 620fc734f854 ("x86/hyperv: setup hypercall page")
Cc: Alejandro Vallejo <agarciav@amd.com>
Cc: Alexander M. Merritt <alexander@edera.dev>
Signed-off-by: Ariadne Conill <ariadne@ariadne.space>
---
Changes from v2:
- Style fixes
- Change hypercall page notice to print the MFN instead, and use
  dprintk

Changes from v1:
- Continue to use fixmap infrastructure
- Use panic in Hyper-V setup() function instead of returning -ENOMEM
  on hypercall page allocation failure

 xen/arch/x86/guest/hyperv/hyperv.c      | 19 +++++++++----------
 xen/arch/x86/include/asm/guest/hyperv.h |  3 ---
 2 files changed, 9 insertions(+), 13 deletions(-)

diff --git a/xen/arch/x86/guest/hyperv/hyperv.c b/xen/arch/x86/guest/hyperv/hyperv.c
index 6989af38f1..f69f596441 100644
--- a/xen/arch/x86/guest/hyperv/hyperv.c
+++ b/xen/arch/x86/guest/hyperv/hyperv.c
@@ -98,10 +98,18 @@ static void __init setup_hypercall_page(void)
     rdmsrl(HV_X64_MSR_HYPERCALL, hypercall_msr.as_uint64);
     if ( !hypercall_msr.enable )
     {
-        mfn = HV_HCALL_MFN;
+        void *hcall_page = alloc_xenheap_page();
+
+        if ( !hcall_page )
+            panic("Hyper-V: Failed to allocate hypercall trampoline page\n");
+
+        mfn = virt_to_mfn(hcall_page);
         hypercall_msr.enable = 1;
         hypercall_msr.guest_physical_address = mfn;
         wrmsrl(HV_X64_MSR_HYPERCALL, hypercall_msr.as_uint64);
+
+        dprintk(XENLOG_INFO,
+                "Hyper-V: Allocated hypercall page at MFN %lx\n", mfn);
     }
     else
         mfn = hypercall_msr.guest_physical_address;
@@ -187,14 +195,6 @@ static int cf_check ap_setup(void)
     return setup_vp_assist();
 }
 
-static void __init cf_check e820_fixup(void)
-{
-    uint64_t s = HV_HCALL_MFN << PAGE_SHIFT;
-
-    if ( !e820_add_range(s, s + PAGE_SIZE, E820_RESERVED) )
-        panic("Unable to reserve Hyper-V hypercall range\n");
-}
-
 static int cf_check flush_tlb(
     const cpumask_t *mask, const void *va, unsigned int flags)
 {
@@ -211,7 +211,6 @@ static const struct hypervisor_ops __initconst_cf_clobber ops = {
     .name = "Hyper-V",
     .setup = setup,
     .ap_setup = ap_setup,
-    .e820_fixup = e820_fixup,
     .flush_tlb = flush_tlb,
 };
 
diff --git a/xen/arch/x86/include/asm/guest/hyperv.h b/xen/arch/x86/include/asm/guest/hyperv.h
index c05efdce71..5792e77104 100644
--- a/xen/arch/x86/include/asm/guest/hyperv.h
+++ b/xen/arch/x86/include/asm/guest/hyperv.h
@@ -10,9 +10,6 @@
 
 #include <xen/types.h>
 
-/* Use top-most MFN for hypercall page */
-#define HV_HCALL_MFN   (((1ull << paddr_bits) - 1) >> HV_HYP_PAGE_SHIFT)
-
 /*
  * The specification says: "The partition reference time is computed
  * by the following formula:
-- 
2.39.5 (Apple Git-154)



From xen-devel-bounces@lists.xenproject.org Mon Apr 28 20:00:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 20:00:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.971065.1359562 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9Ue9-000186-DC; Mon, 28 Apr 2025 20:00:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 971065.1359562; Mon, 28 Apr 2025 20: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 1u9Ue9-00017z-Ac; Mon, 28 Apr 2025 20:00:09 +0000
Received: by outflank-mailman (input) for mailman id 971065;
 Mon, 28 Apr 2025 20:00: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=u4d+=XO=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u9Ue8-00012R-5q
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 20:00:08 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 609bd679-246b-11f0-9ffb-bf95429c2676;
 Mon, 28 Apr 2025 22:00:05 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 0B24A614AE;
 Mon, 28 Apr 2025 19:59:39 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id C0C49C4CEE4;
 Mon, 28 Apr 2025 20:00: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: 609bd679-246b-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1745870403;
	bh=Wa5tKhRRN1izRUWp1i89VyOnRgoGFkrfdNOAHRCPg7s=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=F0O945RvgKukt99zLEtvYdRW97mDBH+opgH2FGXu0XE+ze7JyDqFF0ygxkBfg51Ou
	 YiMIcXgUA4cwaEa19N2YkOBoEDcx2AMOyrO7zKPvBys0qvfbX0YngVgCrtgggteQwW
	 1drdumIYWw861+Q31okVInGlfEKOqQS0UIz/Wz2nyDvbSHr0CK1uUQOsIDcBJ+rX1B
	 9apcD+V+z86wGB+GBAoi190TRu9rkoE8gt/j4bZii/g4elgQQR2IaOAg8tVjgSFgeq
	 deyKbE0c+jiRsVFENHwh0vJaoAHm39VfGuoYfiLa3mobu287p161BfmQn7L1TladLJ
	 sfR6+xrbu4D/Q==
Date: Mon, 28 Apr 2025 13:00:01 -0700 (PDT)
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>, 
    "Ragiadakou, Xenia" <Xenia.Ragiadakou@amd.com>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    jason.andryuk@amd.com, agarciav@amd.com, xen-devel@lists.xenproject.org
Subject: Re: [PATCH] xen/x86: allow Dom0 PVH to call XENMEM_exchange
In-Reply-To: <19d9aec4-c21a-47a9-9c58-6bfcadbd22e0@suse.com>
Message-ID: <alpine.DEB.2.22.394.2504281242240.785180@ubuntu-linux-20-04-desktop>
References: <alpine.DEB.2.22.394.2504251314050.785180@ubuntu-linux-20-04-desktop> <19d9aec4-c21a-47a9-9c58-6bfcadbd22e0@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, 28 Apr 2025, Jan Beulich wrote:
> On 25.04.2025 22:19, Stefano Stabellini wrote:
> > From: Xenia Ragiadakou <Xenia.Ragiadakou@amd.com>
> > 
> > Dom0 PVH might need XENMEM_exchange when passing contiguous memory
> > addresses to firmware or co-processors not behind an IOMMU.
> 
> I definitely don't understand the firmware part: It's subject to the
> same transparent P2M translations as the rest of the VM; it's just
> another piece of software running there.
> 
> "Co-processors not behind an IOMMU" is also interesting; a more
> concrete scenario might be nice, yet I realize you may be limited in
> what you're allowed to say.

Sure. On AMD x86 platforms there is a co-processor called PSP running
TEE firmware. The PSP is not behind an IOMMU. Dom0 needs occasionally to
pass addresses to it.  See drivers/tee/amdtee/ and
include/linux/psp-tee.h in Linux.

This is not a new problem. On ARM we have been dealing with this kind of
issues for more than a decade and it is the reason why originally the
decision was to run Dom0 1:1 mapped on ARM. I am not suggesting to map
Dom0 PVH 1:1; I am only providing context and highlighting that we
have been lucky on x86 :-)


> > XENMEM_exchange was blocked for HVM/PVH DomUs, and accidentally it
> > impacted Dom0 PVH as well.
> 
> This wasn't accidental at all, I don't think.

You as the original author of the patch (fae7d5be8bb) in question would
surely know better. But the way the commit message was written was
pointing toward a Dom0/DeviceModel problem:

"The operation's success can't be controlled by the guest, as the device
model may have an active mapping of the page."


> > --- a/xen/arch/x86/mm.c
> > +++ b/xen/arch/x86/mm.c
> > @@ -4401,7 +4401,7 @@ int steal_page(
> >      const struct domain *owner;
> >      int rc;
> >  
> > -    if ( paging_mode_external(d) )
> > +    if ( paging_mode_external(d) && !is_hardware_domain(d) )
> >          return -EOPNOTSUPP;
> >  
> >      /* Grab a reference to make sure the page doesn't change under our feet */
> 
> Is this (in particular the code following below here) a safe thing to do
> when we don't properly refcount page references from the P2M, yet? It's
> Dom0, yes, but even there I might see potential security implications (as
> top violating privacy of a guest).

I don't think I am following, could you please elaborate more? The
change I am proposing is to allow Dom0 to share its own pages to the
co-processor. DomUs are not in the picture. I would be happy to add
further restriction to that effect. Is there something else you have in
mind?


> Furthermore cleanup_page_mappings() (called later in the function) has a
> PV-only aspect which would apparently need widening to PVH Dom0 then,
> too.

You are referring to:

        if ( d && unlikely(need_iommu_pt_sync(d)) && is_pv_domain(d) )
            rc = iommu_legacy_unmap(d, _dfn(mfn), 1u << PAGE_ORDER_4K);

is that correct?


> > --- a/xen/common/memory.c
> > +++ b/xen/common/memory.c
> > @@ -794,7 +794,7 @@ static long memory_exchange(XEN_GUEST_HANDLE_PARAM(xen_memory_exchange_t) arg)
> >              rc = guest_physmap_add_page(d, _gfn(gpfn), mfn,
> >                                          exch.out.extent_order) ?: rc;
> >  
> > -            if ( !paging_mode_translate(d) &&
> > +            if ( (!paging_mode_translate(d) || is_hardware_domain(d)) &&
> >                   __copy_mfn_to_guest_offset(exch.out.extent_start,
> >                                              (i << out_chunk_order) + j,
> >                                              mfn) )
> 
> Wait, no: A PVH domain (Dom0 or not) can't very well make use of MFNs, can
> it?

One way or another Dom0 PVH needs to know the MFN to pass it to the
co-processor.


From xen-devel-bounces@lists.xenproject.org Mon Apr 28 20:00:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 20:00:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.971074.1359572 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9Uel-0001pD-LI; Mon, 28 Apr 2025 20:00:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 971074.1359572; Mon, 28 Apr 2025 20:00:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9Uel-0001p6-IR; Mon, 28 Apr 2025 20:00:47 +0000
Received: by outflank-mailman (input) for mailman id 971074;
 Mon, 28 Apr 2025 20:00:46 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=N2FI=XO=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u9Uek-0001NN-EJ
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 20:00:46 +0000
Received: from mail-24418.protonmail.ch (mail-24418.protonmail.ch
 [109.224.244.18]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7896a3f3-246b-11f0-9eb4-5ba50f476ded;
 Mon, 28 Apr 2025 22:00:45 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7896a3f3-246b-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1745870444; x=1746129644;
	bh=xFEF3v3nqpLnblIDTmNpviGHSKggOJi+9sVUtsOeU+g=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=iaCUf53/mHF+qikLRTALCyXb/SKRjRQ5y9N2GXB+GuT4gcVveGmpjtr8/1ioc1APT
	 H7BWQ1GVW9j2uXT5R/9eKpvbKpijafAjobxDyrpWxBZ4JLnr9+0wCviIMX3pDIBWSl
	 kpzXkwtZi+8Co7M1ZFMINy0+i75FdTznvbSM0d5n50VY2uv3KwlJqpTDwEWfDAOBpL
	 DYgogDmBXmvfVlDiNv52Dicsb+GZMQSF2sFRGikn6T264d3TQ5IWPoCWFh1hdFvAXf
	 ufgeRqBdOhBOi0LEAMPkGdN5aaUhMsC31TQTcChGayF/NhWykDWbP8ZV98T9fgFGS+
	 yMKHuxjX4OQmA==
Date: Mon, 28 Apr 2025 20:00:39 +0000
To: Jan Beulich <jbeulich@suse.com>
From: dmkhn@proton.me
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org, dmukhin@ford.com, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v4] xen/domain: unify domain ID allocation
Message-ID: <aA/eZCg797KkhuiC@kraken>
In-Reply-To: <f8be084a-e259-456b-b30d-677b128978e3@suse.com>
References: <20250422215322.521464-1-dmukhin@ford.com> <f8be084a-e259-456b-b30d-677b128978e3@suse.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 9533e020d63796825240beb92b9349899a1c81bb
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Mon, Apr 28, 2025 at 11:14:25AM +0200, Jan Beulich wrote:
> On 22.04.2025 23:54, dmkhn@proton.me wrote:
> > --- a/xen/common/domain.c
> > +++ b/xen/common/domain.c
> > @@ -66,6 +66,57 @@ DEFINE_RCU_READ_LOCK(domlist_read_lock);
> >  static struct domain *domain_hash[DOMAIN_HASH_SIZE];
> >  struct domain *domain_list;
> >
> > +/* Domain ID allocator */
> > +static unsigned int domid_last;
> > +
> > +static inline bool is_free_domid(domid_t dom)
> > +{
> > +    struct domain *d =3D rcu_lock_domain_by_id(dom);
> > +
> > +    if ( d )
> > +        rcu_unlock_domain(d);
> > +
> > +    return !d;
> > +}
> > +
> > +/*
> > + * Allocate new domain ID based on the hint.
> > + *
> > + * If hint is outside of valid [0..DOMID_FIRST_RESERVED - 1] range of =
IDs,
> > + * perform an exhaustive search starting from the end of the used doma=
in ID
> > + * range, excluding hardware_domid.
> > + */
> > +domid_t domid_alloc(domid_t hint)
> > +{
> > +    domid_t domid =3D DOMID_INVALID;
> > +
> > +    if ( hint < DOMID_FIRST_RESERVED )
> > +    {
> > +        /* Exact match. */
> > +        if ( is_free_domid(hint) )
> > +            domid =3D hint;
> > +    }
> > +    else
> > +    {
> > +        for ( domid =3D domid_last + 1; domid !=3D domid_last; domid++=
 )
> > +        {
> > +            if ( domid =3D=3D DOMID_FIRST_RESERVED )
> > +                domid =3D 0;
> > +
> > +            if ( domid =3D=3D hardware_domid )
> > +                continue;
> > +
> > +            if ( is_free_domid(domid) )
> > +                break;
> > +        }
> > +
> > +        if ( domid !=3D domid_last )
> > +            domid_last =3D domid;
> > +    }
> > +
> > +    return domid;
> > +}
>=20
> The function name suggests the ID returned is firmly allocated by the tim=
e
> the caller gets to see / use it. Yet that's not the case. Two back-to-bac=
k
> calls here with the same argument will yield the same result, afaict. Thi=
s
> supports my prior statement that I don't think it is a good idea to
> "centralize" things like this.

I agree, back-to-back call requirement is not implemented, I will fix that.

I think a library service for domain ID allocation will be useful since the=
re
are 2 users of it already and there's one more user of similar functionalit=
y is
on review (hyperlauch DT parsing).

>=20
> Jan



From xen-devel-bounces@lists.xenproject.org Mon Apr 28 20:02:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 20:02:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.971087.1359582 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9Ugl-0002T0-0g; Mon, 28 Apr 2025 20:02:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 971087.1359582; Mon, 28 Apr 2025 20:02: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 1u9Ugk-0002St-TJ; Mon, 28 Apr 2025 20:02:50 +0000
Received: by outflank-mailman (input) for mailman id 971087;
 Mon, 28 Apr 2025 20:02: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=u4d+=XO=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u9Ugk-0002Sn-G6
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 20:02:50 +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 c1710d48-246b-11f0-9ffb-bf95429c2676;
 Mon, 28 Apr 2025 22:02:48 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 2E54A5C5799;
 Mon, 28 Apr 2025 20:00:29 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id E174DC4CEE4;
 Mon, 28 Apr 2025 20:02: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: c1710d48-246b-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1745870566;
	bh=ituXsXj7h50AOQZhQuN/SH6ienDPrbu4eLUM75uBstw=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=TuGCCz2YlsVbZqX9xn0om3ueaI9WfCvtMqC3Gt9+z/6PmMyov22ggB7uRKhK0wNfH
	 7hNaEkaB8lZpQ9qt1KhTduNqctkkPAhRSaO+aFQPgRXuDtqDu6nGkl6sEfiRd6uRYw
	 zYVhTgbii+/BzeqhMm2jaK8+9Kco7TGhCsaL/HDyOCawqtD1X16rOw3U+/PQWDE26e
	 +mtTPquro1yH4mWNCbERSsWx7DwKEMENQgBFi3JhVD3n95zitkTKQOpjBfOgUS5Efw
	 tDVUBvtYoSwE5U/8+0YbaYgSIGBiedbfRtb+Qrg4+s35OSzw8IfiuMN1TgBxoS0nuJ
	 eqTH6eXVCzh/A==
Date: Mon, 28 Apr 2025 13:02:43 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Teddy Astie <teddy.astie@vates.tech>
cc: Stefano Stabellini <sstabellini@kernel.org>, 
    xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    "Ragiadakou, Xenia" <Xenia.Ragiadakou@amd.com>, jason.andryuk@amd.com, 
    agarciav@amd.com
Subject: Re: [PATCH] xen/x86: allow Dom0 PVH to call XENMEM_exchange
In-Reply-To: <f315a128-ce68-42be-9f0c-044ad0c5320c@vates.tech>
Message-ID: <alpine.DEB.2.22.394.2504281300340.785180@ubuntu-linux-20-04-desktop>
References: <alpine.DEB.2.22.394.2504251314050.785180@ubuntu-linux-20-04-desktop> <f315a128-ce68-42be-9f0c-044ad0c5320c@vates.tech>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; BOUNDARY="8323329-1131418842-1745870495=:785180"
Content-ID: <alpine.DEB.2.22.394.2504281301430.785180@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-1131418842-1745870495=:785180
Content-Type: text/plain; CHARSET=UTF-8
Content-Transfer-Encoding: 8BIT
Content-ID: <alpine.DEB.2.22.394.2504281301431.785180@ubuntu-linux-20-04-desktop>

On Mon, 28 Apr 2025, Teddy Astie wrote:
> Hello Stefano,
> 
> Le 25/04/2025 à 22:21, Stefano Stabellini a écrit :
> > From: Xenia Ragiadakou <Xenia.Ragiadakou@amd.com>
> >
> > Dom0 PVH might need XENMEM_exchange when passing contiguous memory
> > addresses to firmware or co-processors not behind an IOMMU.
> >
> > XENMEM_exchange was blocked for HVM/PVH DomUs, and accidentally it
> > impacted Dom0 PVH as well.
> >
> > Permit Dom0 PVH to call XENMEM_exchange while leaving it blocked for
> > HVM/PVH DomUs.
> >
> 
> In addition to Jan's remarks, I think it wants some additional
> clarifications on the hypercall interface. public/memory.h indicates
> "only PV guests can use this operation", so the interface is actually
> unspecified about HVM guests (e.g what are MFN/GMFN in this case ?).

That is a new addition from c08a11ab98c. If you see fae7d5be8bb, there
is a statement that "we permitted this operation".


> > Signed-off-by: Xenia Ragiadakou <Xenia.Ragiadakou@amd.com>
> > Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
> >
> > diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
> > index 1cf2365167..e995944333 100644
> > --- a/xen/arch/x86/mm.c
> > +++ b/xen/arch/x86/mm.c
> > @@ -4401,7 +4401,7 @@ int steal_page(
> >       const struct domain *owner;
> >       int rc;
> >
> > -    if ( paging_mode_external(d) )
> > +    if ( paging_mode_external(d) && !is_hardware_domain(d) )
> >           return -EOPNOTSUPP;
> >
> >       /* Grab a reference to make sure the page doesn't change under our feet */
> > diff --git a/xen/common/memory.c b/xen/common/memory.c
> > index 8ca4e1a842..796eec081b 100644
> > --- a/xen/common/memory.c
> > +++ b/xen/common/memory.c
> > @@ -794,7 +794,7 @@ static long memory_exchange(XEN_GUEST_HANDLE_PARAM(xen_memory_exchange_t) arg)
> >               rc = guest_physmap_add_page(d, _gfn(gpfn), mfn,
> >                                           exch.out.extent_order) ?: rc;
> >
> > -            if ( !paging_mode_translate(d) &&
> > +            if ( (!paging_mode_translate(d) || is_hardware_domain(d)) &&
> >                    __copy_mfn_to_guest_offset(exch.out.extent_start,
> >                                               (i << out_chunk_order) + j,
> >                                               mfn) )
--8323329-1131418842-1745870495=:785180--


From xen-devel-bounces@lists.xenproject.org Mon Apr 28 20:07:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 20:07:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.971101.1359593 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9Ukw-00032Z-Hi; Mon, 28 Apr 2025 20:07:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 971101.1359593; Mon, 28 Apr 2025 20:07: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 1u9Ukw-00032S-Cv; Mon, 28 Apr 2025 20:07:10 +0000
Received: by outflank-mailman (input) for mailman id 971101;
 Mon, 28 Apr 2025 20:07: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=N2FI=XO=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u9Uku-00030n-AV
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 20:07:09 +0000
Received: from mail-10629.protonmail.ch (mail-10629.protonmail.ch
 [79.135.106.29]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5ba99be6-246c-11f0-9eb4-5ba50f476ded;
 Mon, 28 Apr 2025 22:07:06 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5ba99be6-246c-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1745870825; x=1746130025;
	bh=syyr0ZTMJnjDywzOybdBLaYWDsgPjabS8M3+vZFWaXc=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=WQxj9l3Ywlr/4M6mwVg//zV23ICRlv9bWSfZXyt/x5hE2Knf5k1IIKGDVc5s754Fu
	 BPvdkzPB8SnyslPIpmP/u0qzo6MmN8vnL9E2A+hbVwQtTU2+PMSzzSRZ6lurO7Xp6r
	 MeI1LH2MIbfybd8qTseGMygXeUdZKIWx+s+rUwYlpm85WtM/9E+PKJxx6JdYvatHlw
	 MtCzlwZ2MmBEtko252PkEeIa9pApHZT71awoHHBxwFWVnqOYhDXpAB45HDQD3WMr5n
	 AFxCPKD3Yph5aeTzUDTKxjGdjCGb5sZZ93A3kt26WU6oKYVUJ9zyeffSa+cB96gILZ
	 O6O6KmawH8z6w==
Date: Mon, 28 Apr 2025 20:06:59 +0000
To: Jan Beulich <jbeulich@suse.com>
From: dmkhn@proton.me
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org, dmukhin@ford.com, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v2 1/3] xen/console: cleanup conring management
Message-ID: <aA/f3+QEBhVlIVPF@kraken>
In-Reply-To: <cacff70d-5269-451d-b264-4d02b299e677@suse.com>
References: <20250426185021.100646-1-dmukhin@ford.com> <20250426185021.100646-2-dmukhin@ford.com> <cacff70d-5269-451d-b264-4d02b299e677@suse.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 4ac16eb9bc11de67ba0ee100acc73861059c6ac0
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Mon, Apr 28, 2025 at 08:50:52AM +0200, Jan Beulich wrote:
> On 26.04.2025 20:50, dmkhn@proton.me wrote:
> > From: Denis Mukhin <dmukhin@ford.com>
> >
> > Move console_locks_busted handling inside conring_puts() to remove
> > tasklet code duplication.
> >
> > Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> > Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
> > ---
> > Changes v1->v2:
> > - added Stefano's R-b
> > ---
> >  xen/drivers/char/console.c | 29 ++++++++++++++---------------
> >  1 file changed, 14 insertions(+), 15 deletions(-)
> >
> > diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
> > index c3150fbdb7..aaa97088aa 100644
> > --- a/xen/drivers/char/console.c
> > +++ b/xen/drivers/char/console.c
> > @@ -325,6 +325,17 @@ static void cf_check do_dec_thresh(unsigned char k=
ey, bool unused)
> >   * ********************************************************
> >   */
> >
> > +static void cf_check notify_dom0_con_ring(void *unused)
> > +{
> > +    send_global_virq(VIRQ_CON_RING);
> > +}
> > +
> > +static DECLARE_SOFTIRQ_TASKLET(notify_dom0_con_ring_tasklet,
> > +                               notify_dom0_con_ring,
> > +                               NULL);
> > +
> > +static bool console_locks_busted;
> > +
> >  static void conring_puts(const char *str, size_t len)
> >  {
> >      ASSERT(rspin_is_locked(&console_lock));
> > @@ -334,6 +345,9 @@ static void conring_puts(const char *str, size_t le=
n)
> >
> >      if ( conringp - conringc > conring_size )
> >          conringc =3D conringp - conring_size;
> > +
> > +    if ( !console_locks_busted )
> > +        tasklet_schedule(&notify_dom0_con_ring_tasklet);
> >  }
>=20
> As before I'm unconvinced it is a good idea to have tasklet scheduling he=
re.
> You also didn't address that v1 comment of mine verbally, iirc.

Sorry, I did not mean to ignore the v1 comment.
I am preparing another iteration, which, I think looks better.

>=20
> Jan



From xen-devel-bounces@lists.xenproject.org Mon Apr 28 20:10:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 20:10:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.971112.1359601 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9Unq-0004Uu-S8; Mon, 28 Apr 2025 20:10:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 971112.1359601; Mon, 28 Apr 2025 20: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 1u9Unq-0004Un-Ph; Mon, 28 Apr 2025 20:10:10 +0000
Received: by outflank-mailman (input) for mailman id 971112;
 Mon, 28 Apr 2025 20:10: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=N2FI=XO=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1u9Unq-0004Ue-1I
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 20:10:10 +0000
Received: from mail-24416.protonmail.ch (mail-24416.protonmail.ch
 [109.224.244.16]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c7dd63c5-246c-11f0-9ffb-bf95429c2676;
 Mon, 28 Apr 2025 22:10:07 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c7dd63c5-246c-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1745871006; x=1746130206;
	bh=zQctQcbUNW4pA0ODgaUynPIG+OD9VV+Bp+3OWUIcH7s=;
	h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
	b=NlIL/C8EUFxDqAjvTo58okB/7YB67bhQf9OVZda+VYxAAX55P2CSKkW7ARXAbiEg7
	 SHmGJPuwcxx8Sw4llvuXeSrnbF61uvkWvvQiunvq+k9Zeg/9XwbOhboBbGHlDqR3Nw
	 gkf9vDm5ArgD7otIYOerOjxxzWUKFfPQ75pmolD8lStjpxRr0oGuYD5MpA8DxSxZy8
	 QG0stQyg0xjM7fcRrLjkcb3jIRLUYGmr0sSP4CZA2bkGiIv4MrRLsnAST9737cS5/w
	 Bazwd8eKmxJ578uCvamW0KF0qCbQ3OrEZl/v/un2FF8pWUiK+wGKNgOoxOI+sBrNL+
	 GIa+ftFihpLFQ==
Date: Mon, 28 Apr 2025 20:10:02 +0000
To: Jan Beulich <jbeulich@suse.com>
From: dmkhn@proton.me
Cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com, anthony.perard@vates.tech, julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com, dmukhin@ford.com, Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH v1 1/3] xen/console: cleanup conring management
Message-ID: <aA/glq9zB1phFcAf@kraken>
In-Reply-To: <fe9a99b2-e208-4171-ada0-c244bfab6559@suse.com>
References: <20250403000604.169619-1-dmukhin@ford.com> <20250403000604.169619-2-dmukhin@ford.com> <alpine.DEB.2.22.394.2504251513480.785180@ubuntu-linux-20-04-desktop> <fe9a99b2-e208-4171-ada0-c244bfab6559@suse.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: cdcf3323710d52b78a2b5685c3a3bd829b02f7e7
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Mon, Apr 28, 2025 at 08:47:01AM +0200, Jan Beulich wrote:
> On 26.04.2025 00:18, Stefano Stabellini wrote:
> > On Thu, 3 Apr 2025, dmkhn@proton.me wrote:
> >> From: Denis Mukhin <dmukhin@ford.com>
> >>
> >> Move console_locks_busted handling inside conring_puts() to remove
> >> tasklet code duplication.
> >>
> >> Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> >
> > This patch is a good cleanup but makes one functional change: previousl=
y
> > guest_console_write would always call tasklet_schedule. Now, it only
> > calls tasklet_schedule if !console_locks_busted.
> >
> > On ARM, we don't call console_force_unlock and never set
> > console_locks_busted. It makes no difference.
> >
> > On x86, there are a few callers of console_force_unlock, so it would
> > make a difference. However, looking at the callers, it seems to me that
> > the change is for the better and better aligns the code with the
> > intention behind console_force_unlock.
>=20
> Denis, I see you submitted v2 without any adjustment to the description.
> With Stefano having pointed out the aspect, it should have been pretty
> clear that such a (kind of hidden) functional change wants justifying.
>=20
> Furthermore, you added Stefano's R-b without any hint towards the extra
> request he had put up above wrt x86.

Sorry for that, I will update the descriptions in the next iteration.
I am preparing the update, which reverts the locking part completely.=20

>=20
> Jan



From xen-devel-bounces@lists.xenproject.org Mon Apr 28 20:11:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 20:11:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.971122.1359613 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9UpO-0005L9-8j; Mon, 28 Apr 2025 20:11:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 971122.1359613; Mon, 28 Apr 2025 20:11: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 1u9UpO-0005L2-3j; Mon, 28 Apr 2025 20:11:46 +0000
Received: by outflank-mailman (input) for mailman id 971122;
 Mon, 28 Apr 2025 20:11: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=u4d+=XO=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u9UpM-0005Ku-Fn
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 20:11:44 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 001f1127-246d-11f0-9eb4-5ba50f476ded;
 Mon, 28 Apr 2025 22:11:42 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 4274B614AF;
 Mon, 28 Apr 2025 20:11:16 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3AA8FC4CEED;
 Mon, 28 Apr 2025 20:11: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: 001f1127-246d-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1745871101;
	bh=1RgCJ2Dmcc6X6OB7Y6gzrNyROaWxnsR/OZypIr04YYA=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=dedvdZHv2nlIJnxit47LQIixByeB47fUDqj3qxLe8y5+BAzLsODL4gw0liHlnvbkt
	 HcZzYl4LHSfPOn7jZnqAlOrhPPeh8CKPC5e6DvdmDBrD5BmudROlvfHh5tIklN8o/h
	 wJs0evIdMawEML1ACcq16Dk4v7fJBEqJ1Hm+Ac3uP66eiWXoGZ8h63NuAvGcJ1eumS
	 Xd/9pFIZXvl+P0x1ZnnsT73I5VG7fcaoF64P5AhjrOmReiqufOgrIOolqVSFgEmcNp
	 zPnSexS5u7YBH24faTBdtwR1DGUIeIO0dOFuHiuODc81ehNbMahvep7FqjH+bYJGHd
	 u0A6mxNBSH48g==
Date: Mon, 28 Apr 2025 13:11:38 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: dmkhn@proton.me
cc: Stefano Stabellini <sstabellini@kernel.org>, 
    xen-devel@lists.xenproject.org, 
    Andrei Cherechesu <andrei.cherechesu@nxp.com>, michal.orzel@amd.com, 
    jason.andryuk@amd.com
Subject: Re: [PATCH v7] uboot-script-gen: Dynamically compute addr and size
 when loading binaries
In-Reply-To: <aAyBBN1sqo/zppOT@starscream>
Message-ID: <alpine.DEB.2.22.394.2504281311120.785180@ubuntu-linux-20-04-desktop>
References: <alpine.DEB.2.22.394.2504251631190.785180@ubuntu-linux-20-04-desktop> <aAyBBN1sqo/zppOT@starscream>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Sat, 26 Apr 2025, dmkhn@proton.me wrote:
> On Fri, Apr 25, 2025 at 04:35:06PM -0700, Stefano Stabellini wrote:
> > From: Andrei Cherechesu <andrei.cherechesu@oss.nxp.com>
> > 
> > Normally, the Imagebuilder would precompute the sizes of the loaded
> > binaries and addresses where they are loaded before generating the
> > script, and the sizes and addresses that needed to be provided to
> > Xen via /chosen would be hardcoded in the boot script.
> > 
> > Added an option via "-s" parameter to avoid hardcoding any
> > address in the boot script, and dynamically compute the
> > loading addresses for binaries. The first loading address is based
> > on the MEMORY_START parameter and after loading each binary,
> > the loading address and the size of the binary are stored in
> > variables with corresponding names. Then, the loading address
> > for the next binary is computed and aligned to 0x200000.
> > 
> > If the "-s" parameter is not used, the normal flow is executed,
> > where the loading addresses and sizes for each binaries are
> > precomputed and hardcoded inside the script, but the loading
> > addresses and sizes for each binary are now also stored for eventual
> > later use.
> > 
> > Reserved memory regions are left TBD in the -s case.
> > 
> > Link: https://lists.xenproject.org/archives/html/xen-devel/2022-09/msg01862.html
> > Signed-off-by: Andrei Cherechesu <andrei.cherechesu@nxp.com>
> > Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
> 
> Reviewed-by: Denis Mukhin <dmukhin@ford.com>

Thanks Denis! I'll keep your R-b even if I made a couple of changes to
address Andrei's comment


> > ---
> > Changes in v7:
> > - use $()
> > - better description and alphabetical order
> > - use heredoc
> > 
> > Changes in v6:
> > - make initial ${memaddr} setting depending on CALC
> > 
> > This patch adds quite a bit of complexity which is the reason why I
> > didn't originally commit it. Now that we are enabling ImageBuilder in
> > Yocto, it turns out this patch is required because Yocto invokes
> > ImageBuilder before all the binaries are ready and available.
> > 
> > Andrei, sorry for taking so long to realize why it is essential, but we
> > are getting there now.
> > 
> > The changes I made to the original patch are purely to make it simpler
> > to maintain.
> > ---
> > 
> > diff --git a/README.md b/README.md
> > index f8039ec..28c9e6b 100644
> > --- a/README.md
> > +++ b/README.md
> > @@ -356,6 +356,8 @@ Where:\
> >     can only be used  in combination with the -k option.  This adds the
> >     public key into the dtb.  Then one can add this dtb back into the
> >     u-boot bin or elf.\
> > +-s addresses and sizes are calculated dynamically from U-Boot, hence
> > +   binaries don't need to be available at the time of invocation.\
> > 
> >  ### Signed FIT images
> > 
> > diff --git a/scripts/uboot-script-gen b/scripts/uboot-script-gen
> > index 638154a..73d9600 100755
> > --- a/scripts/uboot-script-gen
> > +++ b/scripts/uboot-script-gen
> > @@ -1,8 +1,11 @@
> >  #!/bin/bash
> > 
> >  offset=$((2*1024*1024))
> > +PADDING_MASK=$(printf "0x%X\n" $(($offset - 1)))
> > +PADDING_MASK_INV=$(printf "0x%X\n" $((~$PADDING_MASK)))
> >  filesize=0
> >  prog_req=(mkimage file fdtput mktemp awk od)
> > +CALC=""
> > 
> >  function cleanup_and_return_err()
> >  {
> > @@ -100,17 +103,40 @@ function dt_set()
> >      fi
> >  }
> > 
> > +function dt_set_calc()
> > +{
> > +    local path=$1
> > +    local var=$2
> > +    local name_var=$3
> > +
> > +    local addr_var="$name_var"_addr
> > +    local size_var="$name_var"_size
> > +
> > +    cat >> $UBOOT_SOURCE <<- EOF
> > +	setexpr addr_hi \${$addr_var} / 0x100000000
> > +	setexpr addr_lo \${$addr_var} \& 0xFFFFFFFF
> > +	setexpr size_hi \${$size_var} / 0x100000000
> > +	setexpr size_lo \${$size_var} \& 0xFFFFFFFF
> > +	fdt set $path $var <0x\${addr_hi} 0x\${addr_lo} 0x\${size_hi} 0x\${size_lo}>
> > +	EOF
> > +}
> > +
> >  function add_device_tree_kernel()
> >  {
> >      local path=$1
> > -    local addr=$2
> > -    local size=$3
> > -    local bootargs=$4
> > +    local name=$2
> > +    local addr=$3
> > +    local size=$4
> > +    local bootargs=$5
> >      local node_name="module@${addr#0x}"
> > 
> >      dt_mknode "$path" "$node_name"
> >      dt_set "$path/$node_name" "compatible" "str_a" "multiboot,kernel multiboot,module"
> > -    dt_set "$path/$node_name" "reg" "hex"  "$(split_addr_size $addr $size)"
> > +    if test "$CALC"; then
> > +        dt_set_calc "$path/$node_name" "reg" $name
> > +    else
> > +        dt_set "$path/$node_name" "reg" "hex"  "$(split_addr_size $addr $size)"
> > +    fi
> >      dt_set "$path/$node_name" "bootargs" "str" "$bootargs"
> >  }
> > 
> > @@ -118,26 +144,36 @@ function add_device_tree_kernel()
> >  function add_device_tree_ramdisk()
> >  {
> >      local path=$1
> > -    local addr=$2
> > -    local size=$3
> > +    local name=$2
> > +    local addr=$3
> > +    local size=$4
> >      local node_name="module@${addr#0x}"
> > 
> >      dt_mknode "$path"  "$node_name"
> >      dt_set "$path/$node_name" "compatible" "str_a" "multiboot,ramdisk multiboot,module"
> > -    dt_set "$path/$node_name" "reg" "hex"  "$(split_addr_size $addr $size)"
> > +    if test "$CALC"; then
> > +        dt_set_calc "$path/$node_name" "reg" $name
> > +    else
> > +        dt_set "$path/$node_name" "reg" "hex"  "$(split_addr_size $addr $size)"
> > +    fi
> >  }
> > 
> > 
> >  function add_device_tree_passthrough()
> >  {
> >      local path=$1
> > -    local addr=$2
> > -    local size=$3
> > +    local name=$2
> > +    local addr=$3
> > +    local size=$4
> >      local node_name="module@${addr#0x}"
> > 
> >      dt_mknode "$path"  "$node_name"
> >      dt_set "$path/$node_name" "compatible" "str_a" "multiboot,device-tree multiboot,module"
> > -    dt_set "$path/$node_name" "reg" "hex"  "$(split_addr_size $addr $size)"
> > +    if test "$CALC"; then
> > +        dt_set_calc "$path/$node_name" "reg" $name
> > +    else
> > +        dt_set "$path/$node_name" "reg" "hex"  "$(split_addr_size $addr $size)"
> > +    fi
> >  }
> > 
> >  function add_device_tree_mem()
> > @@ -358,7 +394,11 @@ function xen_device_tree_editing()
> > 
> >          dt_mknode "/chosen" "$node_name"
> >          dt_set "/chosen/$node_name" "compatible" "str_a" "xen,xsm-policy xen,multiboot-module multiboot,module"
> > -        dt_set "/chosen/$node_name" "reg" "hex" "$(split_addr_size $xen_policy_addr $xen_policy_size)"
> > +        if test "$CALC"; then
> > +            dt_set_calc "/chosen/$node_name" "reg" "xen_policy"
> > +        else
> > +            dt_set "/chosen/$node_name" "reg" "hex" "$(split_addr_size $xen_policy_addr $xen_policy_size)"
> > +        fi
> >      fi
> > 
> >      if test "$DOM0_KERNEL"
> > @@ -367,7 +407,11 @@ function xen_device_tree_editing()
> > 
> >          dt_mknode "/chosen" "$node_name"
> >          dt_set "/chosen/$node_name" "compatible" "str_a" "xen,linux-zimage xen,multiboot-module multiboot,module"
> > -        dt_set "/chosen/$node_name" "reg" "hex" "$(split_addr_size $dom0_kernel_addr $dom0_kernel_size)"
> > +        if test "$CALC"; then
> > +            dt_set_calc "/chosen/$node_name" "reg" "dom0_linux"
> > +        else
> > +            dt_set "/chosen/$node_name" "reg" "hex" "$(split_addr_size $dom0_kernel_addr $dom0_kernel_size)"
> > +        fi
> >          dt_set "/chosen" "xen,dom0-bootargs" "str" "$DOM0_CMD"
> >      fi
> > 
> > @@ -377,7 +421,11 @@ function xen_device_tree_editing()
> > 
> >          dt_mknode "/chosen" "$node_name"
> >          dt_set "/chosen/$node_name" "compatible" "str_a" "xen,linux-initrd xen,multiboot-module multiboot,module"
> > -        dt_set "/chosen/$node_name" "reg" "hex" "$(split_addr_size $ramdisk_addr $ramdisk_size)"
> > +        if test "$CALC"; then
> > +            dt_set_calc "/chosen/$node_name" "reg" "dom0_ramdisk"
> > +        else
> > +            dt_set "/chosen/$node_name" "reg" "hex" "$(split_addr_size $ramdisk_addr $ramdisk_size)"
> > +        fi
> >      fi
> > 
> >      i=0
> > @@ -464,14 +512,14 @@ function xen_device_tree_editing()
> > 
> >          xen_dt_domu_add_vcpu_nodes "/chosen/domU$i" $i ${DOMU_VCPUS[$i]}
> > 
> > -        add_device_tree_kernel "/chosen/domU$i" ${domU_kernel_addr[$i]} ${domU_kernel_size[$i]} "${DOMU_CMD[$i]}"
> > +        add_device_tree_kernel "/chosen/domU$i" "domU${i}_kernel" ${domU_kernel_addr[$i]} ${domU_kernel_size[$i]} "${DOMU_CMD[$i]}"
> >          if test "${domU_ramdisk_addr[$i]}"
> >          then
> > -            add_device_tree_ramdisk "/chosen/domU$i" ${domU_ramdisk_addr[$i]} ${domU_ramdisk_size[$i]}
> > +            add_device_tree_ramdisk "/chosen/domU$i" "domU${i}_ramdisk" ${domU_ramdisk_addr[$i]} ${domU_ramdisk_size[$i]}
> >          fi
> >          if test "${domU_passthrough_dtb_addr[$i]}"
> >          then
> > -            add_device_tree_passthrough "/chosen/domU$i" ${domU_passthrough_dtb_addr[$i]} ${domU_passthrough_dtb_size[$i]}
> > +            add_device_tree_passthrough "/chosen/domU$i" "domU${i}_fdt" ${domU_passthrough_dtb_addr[$i]} ${domU_passthrough_dtb_size[$i]}
> >          fi
> >          i=$(( $i + 1 ))
> >      done
> > @@ -504,7 +552,11 @@ function device_tree_editing()
> > 
> >      if test $UBOOT_SOURCE
> >      then
> > -        echo "fdt addr $device_tree_addr" >> $UBOOT_SOURCE
> > +        if test "$CALC"; then
> > +            echo "fdt addr \${host_fdt_addr}" >> $UBOOT_SOURCE
> > +        else
> > +            echo "fdt addr $device_tree_addr" >> $UBOOT_SOURCE
> > +        fi
> >          echo "fdt resize 1024" >> $UBOOT_SOURCE
> > 
> >          if test $NUM_DT_OVERLAY && test $NUM_DT_OVERLAY -gt 0
> > @@ -512,7 +564,11 @@ function device_tree_editing()
> >              i=0
> >              while test $i -lt $NUM_DT_OVERLAY
> >              do
> > -                echo "fdt apply ${dt_overlay_addr[$i]}" >> $UBOOT_SOURCE
> > +                if test "$CALC"; then
> > +                    echo "fdt apply \${host_fdto${i}_addr}" >> $UBOOT_SOURCE
> > +                else
> > +                    echo "fdt apply ${dt_overlay_addr[$i]}" >> $UBOOT_SOURCE
> > +                fi
> >                  i=$(( $i + 1 ))
> >              done
> >          fi
> > @@ -530,8 +586,12 @@ function fill_reserved_spaces_from_dtb()
> >  {
> >      if [ ! -f $DEVICE_TREE ]
> >      then
> > -        echo "File $DEVICE_TREE doesn't exist, exiting";
> > -        cleanup_and_return_err
> > +        if test "$CALC"; then
> > +            return
> > +        else
> > +            echo "File $DEVICE_TREE doesn't exist, exiting";
> > +            cleanup_and_return_err
> > +        fi
> >      fi
> > 
> >      # Check if reserved-memory node exists
> > @@ -613,7 +673,7 @@ function get_image_size()
> >      printf "%u" $effective_size
> >  }
> > 
> > -function add_size()
> > +function add_size_from_file()
> >  {
> >      local filename=$1
> >      local size=`stat -L --printf="%s" $filename`
> > @@ -645,6 +705,26 @@ function add_size()
> >      filesize=$size
> >  }
> > 
> > +function add_size_calculate()
> > +{
> > +    local fit_scr_name=$1
> > +
> > +    cat >> $UBOOT_SOURCE <<- EOF
> > +	setenv "$fit_scr_name"_addr \${memaddr}
> > +	setenv "$fit_scr_name"_size \${filesize}
> > +	setexpr memaddr \${memaddr} \+ \${filesize}
> > +	setexpr memaddr \${memaddr} \+ $PADDING_MASK
> > +	setexpr memaddr \${memaddr} \& $PADDING_MASK_INV
> > +	EOF
> > +
> > +    # TODO: missing ${RESERVED_MEM_SPACES[@]} check
> > +
> > +    # The following are updated to avoid collisions in node names, but
> > +    # they are not actively used.
> > +    memaddr=$((memaddr + offset))
> > +    filesize=$offset
> > +}
> > +
> >  function load_file()
> >  {
> >      local filename=$1
> > @@ -657,10 +737,16 @@ function load_file()
> >      if test "$FIT"
> >      then
> >          echo "imxtract \$fit_addr $fit_scr_name $memaddr" >> $UBOOT_SOURCE
> > +        add_size_from_file $filename
> >      else
> > -        echo "$LOAD_CMD $memaddr ${prepend_path:+$prepend_path/}$relative_path" >> $UBOOT_SOURCE
> > +        if test "$CALC"; then
> > +            echo "$LOAD_CMD \${memaddr} ${prepend_path:+$prepend_path/}$relative_path" >> $UBOOT_SOURCE
> > +            add_size_calculate $fit_scr_name
> > +        else
> > +            echo "$LOAD_CMD $memaddr ${prepend_path:+$prepend_path/}$relative_path" >> $UBOOT_SOURCE
> > +            add_size_from_file $filename
> > +        fi
> >      fi
> > -    add_size $filename
> >  }
> > 
> >  function check_file_type()
> > @@ -670,8 +756,13 @@ function check_file_type()
> > 
> >      if [ ! -f $filename ]
> >      then
> > -        echo "File $filename doesn't exist, exiting";
> > -        cleanup_and_return_err
> > +        if test "$CALC"
> > +        then
> > +            return
> > +        else
> > +            echo "File $filename doesn't exist, exiting";
> > +            cleanup_and_return_err
> > +        fi
> >      fi
> > 
> >      # if file doesn't know what it is, it outputs data, so include that
> > @@ -705,8 +796,13 @@ function check_compressed_file_type()
> > 
> >      if [ ! -f $filename ]
> >      then
> > -        echo "File $filename doesn't exist, exiting";
> > -        cleanup_and_return_err
> > +        if test "$CALC"
> > +        then
> > +            return
> > +        else
> > +            echo "File $filename doesn't exist, exiting";
> > +            cleanup_and_return_err
> > +        fi
> >      fi
> > 
> >      file_type=$( file -L $filename )
> > @@ -872,6 +968,12 @@ function linux_config()
> >  generate_uboot_images()
> >  {
> >      local arch=$(file -L $XEN | grep -E 'ARM64|Aarch64')
> > +
> > +    if test "$CALC"
> > +    then
> > +        echo "bootm is not compatible with -s"
> > +        cleanup_and_return_err
> > +    fi
> > 
> >      if test "$arch"
> >      then
> > @@ -997,7 +1099,11 @@ bitstream_load_and_config()
> >          if test "$UBOOT_SOURCE"
> >          then
> >              # we assume the FPGA device is 0 here
> > -            echo "fpga load 0 $bitstream_addr $bitstream_size" >> "$UBOOT_SOURCE"
> > +            if test "$CALC"; then
> > +                echo "fpga load 0 \${fpga_bitstream_addr} \${fpga_bitstream_size}" >> "$UBOOT_SOURCE"
> > +            else
> > +                echo "fpga load 0 $bitstream_addr $bitstream_size" >> "$UBOOT_SOURCE"
> > +            fi
> >          fi
> >      fi
> >  }
> > @@ -1271,7 +1377,7 @@ function print_help
> >  {
> >      script=`basename "$0"`
> >      echo "usage:"
> > -    echo "	$script -c CONFIG_FILE -d DIRECTORY [-t LOAD_CMD] [-o FILE] [-k KEY_DIR/HINT [-u U-BOOT_DTB]] [-e] [-f] [-p PREPEND_PATH]"
> > +    echo "	$script -c CONFIG_FILE -d DIRECTORY [-t LOAD_CMD] [-o FILE] [-k KEY_DIR/HINT [-u U-BOOT_DTB]] [-e] [-f] [-p PREPEND_PATH] [-s]"
> >      echo "	$script -h"
> >      echo "where:"
> >      echo "	CONFIG_FILE - configuration file"
> > @@ -1289,13 +1395,14 @@ function print_help
> >      echo "	-f - enable generating a FIT image"
> >      echo "	PREPEND_PATH - path to be appended before file names to match deploy location within rootfs"
> >      echo "	-h - prints out the help message and exits "
> > +    echo "	-s - let U-Boot calculate binary images load addresses/sizes dynamically"
> >      echo "Defaults:"
> >      echo "	CONFIG_FILE=$cfg_file, UBOOT_TYPE=\"LOAD_CMD\" env var, DIRECTORY=$uboot_dir"
> >      echo "Example:"
> >      echo "	$script -c ../config -d ./build42 -t \"scsi load 1:1\""
> >  }
> > 
> > -while getopts ":c:t:d:ho:k:u:fp:" opt; do
> > +while getopts ":c:t:d:ho:k:u:fp:s" opt; do
> >      case ${opt} in
> >      t )
> >          case $OPTARG in
> > @@ -1340,6 +1447,9 @@ while getopts ":c:t:d:ho:k:u:fp:" opt; do
> >      p )
> >          prepend_path="$OPTARG"
> >          ;;
> > +    s )
> > +        CALC=y
> > +        ;;
> >      h )
> >          print_help
> >          exit 0
> > @@ -1533,6 +1643,10 @@ uboot_addr=$memaddr
> >  # 2MB are enough for a uboot script
> >  memaddr=$(( $memaddr + $offset ))
> >  memaddr=`printf "0x%X\n" $memaddr`
> > +if test "$CALC"
> > +then
> > +    echo "setenv memaddr $memaddr" >> $UBOOT_SOURCE
> > +fi
> > 
> >  fill_reserved_spaces_from_dtb
> > 
> > @@ -1583,7 +1697,11 @@ fi
> > 
> >  if [ "$BOOT_CMD" != "none" ]
> >  then
> > -    echo "$BOOT_CMD $kernel_addr $([ "$BOOT_CMD" = "bootefi" ] || echo '-') $device_tree_addr" >> $UBOOT_SOURCE
> > +    if test "$CALC"; then
> > +        echo "$BOOT_CMD \${host_kernel_addr} $([ "$BOOT_CMD" = "bootefi" ] || echo '-') \${host_fdt_addr}" >> $UBOOT_SOURCE
> > +    else
> > +        echo "$BOOT_CMD $kernel_addr $([ "$BOOT_CMD" = "bootefi" ] || echo '-') $device_tree_addr" >> $UBOOT_SOURCE
> > +    fi
> >  else
> >      # skip boot command but store load addresses to be used later
> >      echo "setenv host_kernel_addr $kernel_addr" >> $UBOOT_SOURCE
> 


From xen-devel-bounces@lists.xenproject.org Mon Apr 28 20:12:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 20:12:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.971135.1359623 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9UqA-0005w4-Js; Mon, 28 Apr 2025 20:12:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 971135.1359623; Mon, 28 Apr 2025 20: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 1u9UqA-0005vx-FX; Mon, 28 Apr 2025 20:12:34 +0000
Received: by outflank-mailman (input) for mailman id 971135;
 Mon, 28 Apr 2025 20:12: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=u4d+=XO=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u9Uq8-0005gn-CZ
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 20:12:32 +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 1a58c949-246d-11f0-9ffb-bf95429c2676;
 Mon, 28 Apr 2025 22:12:26 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 049585C644E;
 Mon, 28 Apr 2025 20:10:08 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id AD5ACC4CEE4;
 Mon, 28 Apr 2025 20:12:23 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1a58c949-246d-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1745871144;
	bh=e20spNMTLXl/AweleV1C6OSxkeUTu+hkUzJq8CFWH6A=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=SObia9suaseDe/0zYbRx5eMuuNNPao81v5BFE+20xNu7MKvVIooAMgWLEraHt6NJb
	 9ANargUUbQZsDZiZh00GaC+5Qc+d76XHe0vRtss/iULOSWTHNRyOtpaMZLHvXHEfRR
	 xlUJ7xJ9/cUctrksanEe/Z3WcWce5EO/OjKuwf3eGwyYsVMrKRos5mVXEgIHIPYZ5F
	 dMWE91mutR5AkhQ457rukD95HVNHYnf8s5CGaiuZDGP8VuRdCXwHUTqicxBRnB6ofz
	 CO1DjGTxNzAdIP0nzmPJsIdLmQ38q7mwWrU/+GeJJca15ktQAPHBozyqER0/D62wv+
	 EQE700lyv1L0Q==
Date: Mon, 28 Apr 2025 13:12:22 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Andrei Cherechesu <andrei.cherechesu@oss.nxp.com>
cc: Stefano Stabellini <sstabellini@kernel.org>, 
    Xen-devel <xen-devel@lists.xenproject.org>, 
    Michal Orzel <michal.orzel@amd.com>, jason.andryuk@amd.com, 
    dmkhn@proton.me, Andrei Cherechesu <andrei.cherechesu@nxp.com>, 
    "S32@nxp.com" <S32@nxp.com>
Subject: Re: [PATCH v7] uboot-script-gen: Dynamically compute addr and size
 when loading binaries
In-Reply-To: <d819d5e2-39ac-4542-a6e5-9a2ad1d94149@oss.nxp.com>
Message-ID: <alpine.DEB.2.22.394.2504281311460.785180@ubuntu-linux-20-04-desktop>
References: <alpine.DEB.2.22.394.2504251631190.785180@ubuntu-linux-20-04-desktop> <PA4PR04MB9565F823E4231F7A27557C93F9812@PA4PR04MB9565.eurprd04.prod.outlook.com> <d819d5e2-39ac-4542-a6e5-9a2ad1d94149@oss.nxp.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="8323329-1474602063-1745871144=:785180"

  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-1474602063-1745871144=:785180
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8BIT

On Mon, 28 Apr 2025, Andrei Cherechesu wrote:
> Hi Stefano,
> 
> On 26/04/2025 02:35, Stefano Stabellini wrote:
> > From: Andrei Cherechesu <andrei.cherechesu@oss.nxp.com>
> >
> > Normally, the Imagebuilder would precompute the sizes of the loaded binaries and addresses where they are loaded before generating the script, and the sizes and addresses that needed to be provided to Xen via /chosen would be hardcoded in the boot script.
> >
> > Added an option via "-s" parameter to avoid hardcoding any address in the boot script, and dynamically compute the loading addresses for binaries. The first loading address is based on the MEMORY_START parameter and after loading each binary, the loading address and the size of the binary are stored in variables with corresponding names. Then, the loading address for the next binary is computed and aligned to 0x200000.
> >
> > If the "-s" parameter is not used, the normal flow is executed, where the loading addresses and sizes for each binaries are precomputed and hardcoded inside the script, but the loading addresses and sizes for each binary are now also stored for eventual later use.
> >
> > Reserved memory regions are left TBD in the -s case.
> >
> > Link: https://lists.xenproject.org/archives/html/xen-devel/2022-09/msg01862.html
> > Signed-off-by: Andrei Cherechesu <andrei.cherechesu@nxp.com>
> > Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
> > ---
> > Changes in v7:
> > - use $()
> > - better description and alphabetical order
> > - use heredoc
> >
> > Changes in v6:
> > - make initial ${memaddr} setting depending on CALC
> >
> > This patch adds quite a bit of complexity which is the reason why I didn't originally commit it. Now that we are enabling ImageBuilder in Yocto, it turns out this patch is required because Yocto invokes ImageBuilder before all the binaries are ready and available.
> >
> > Andrei, sorry for taking so long to realize why it is essential, but we are getting there now.
> 
> I'm very glad that you're finding it useful too now!
> 
> The original problem for us was not related to building with
> Imagebuilder from Yocto, but this was rather done to help users
> have more flexibility with the actual binaries they're
> deploying on target (more specifically, with their sizes).
> 
> In other words, as long as the same file names are used, their
> corresponding sizes do not need to be hard-coded too in the
> script, since we can dynamically figure them out and write them
> to /chosen. As such, the binaries (xen, kernel image, fdt,
> ramdisks) can be replaced without regenerating the boot script
> and caring about their sizes.
> 
> Regarding building from Yocto, in our case, we're invoking
> Imagebuilder from some separate recipe after everything has
> been built. The only situation that comes to mind where it's a
> bit more tricky to wait for the artifacts to be ready is for the
> ramdisk/initramfs ones, but it can be done too. So it can work
> both with precomputed and dynamic addresses.
> 
> >
> > The changes I made to the original patch are purely to make it simpler to maintain.
> 
> Thank you for taking the time to refactor and resend it!
> Please also see my comments below.
> 
> > ---
> >
> > diff --git a/README.md b/README.md
> > index f8039ec..28c9e6b 100644
> > --- a/README.md
> > +++ b/README.md
> > @@ -356,6 +356,8 @@ Where:\
> >     can only be used  in combination with the -k option.  This adds the
> >     public key into the dtb.  Then one can add this dtb back into the
> >     u-boot bin or elf.\
> > +-s addresses and sizes are calculated dynamically from U-Boot, hence
> > +   binaries don't need to be available at the time of invocation.\
> >
> >  ### Signed FIT images
> >
> > diff --git a/scripts/uboot-script-gen b/scripts/uboot-script-gen index 638154a..73d9600 100755
> > --- a/scripts/uboot-script-gen
> > +++ b/scripts/uboot-script-gen
> > @@ -1,8 +1,11 @@
> >  #!/bin/bash
> >
> >  offset=$((2*1024*1024))
> > +PADDING_MASK=$(printf "0x%X\n" $(($offset - 1)))
> > +PADDING_MASK_INV=$(printf "0x%X\n" $((~$PADDING_MASK)))
> >  filesize=0
> >  prog_req=(mkimage file fdtput mktemp awk od)
> > +CALC=""
> >
> >  function cleanup_and_return_err()
> >  {
> > @@ -100,17 +103,40 @@ function dt_set()
> >      fi
> >  }
> >
> > +function dt_set_calc()
> > +{
> > +    local path=$1
> > +    local var=$2
> > +    local name_var=$3
> > +
> > +    local addr_var="$name_var"_addr
> > +    local size_var="$name_var"_size
> > +
> > +    cat >> $UBOOT_SOURCE <<- EOF
> > +       setexpr addr_hi \${$addr_var} / 0x100000000
> > +       setexpr addr_lo \${$addr_var} \& 0xFFFFFFFF
> > +       setexpr size_hi \${$size_var} / 0x100000000
> > +       setexpr size_lo \${$size_var} \& 0xFFFFFFFF
> > +       fdt set $path $var <0x\${addr_hi} 0x\${addr_lo} 0x\${size_hi} 0x\${size_lo}>
> > +       EOF
> > +}
> > +
> >  function add_device_tree_kernel()
> >  {
> >      local path=$1
> > -    local addr=$2
> > -    local size=$3
> > -    local bootargs=$4
> > +    local name=$2
> > +    local addr=$3
> > +    local size=$4
> > +    local bootargs=$5
> >      local node_name="module@${addr#0x}"
> >
> >      dt_mknode "$path" "$node_name"
> >      dt_set "$path/$node_name" "compatible" "str_a" "multiboot,kernel multiboot,module"
> > -    dt_set "$path/$node_name" "reg" "hex"  "$(split_addr_size $addr $size)"
> > +    if test "$CALC"; then
> > +        dt_set_calc "$path/$node_name" "reg" $name
> > +    else
> > +        dt_set "$path/$node_name" "reg" "hex"  "$(split_addr_size $addr $size)"
> > +    fi
> >      dt_set "$path/$node_name" "bootargs" "str" "$bootargs"
> >  }
> >
> > @@ -118,26 +144,36 @@ function add_device_tree_kernel()  function add_device_tree_ramdisk()  {
> >      local path=$1
> > -    local addr=$2
> > -    local size=$3
> > +    local name=$2
> > +    local addr=$3
> > +    local size=$4
> >      local node_name="module@${addr#0x}"
> >
> >      dt_mknode "$path"  "$node_name"
> >      dt_set "$path/$node_name" "compatible" "str_a" "multiboot,ramdisk multiboot,module"
> > -    dt_set "$path/$node_name" "reg" "hex"  "$(split_addr_size $addr $size)"
> > +    if test "$CALC"; then
> > +        dt_set_calc "$path/$node_name" "reg" $name
> > +    else
> > +        dt_set "$path/$node_name" "reg" "hex"  "$(split_addr_size $addr $size)"
> > +    fi
> >  }
> >
> >
> >  function add_device_tree_passthrough()
> >  {
> >      local path=$1
> > -    local addr=$2
> > -    local size=$3
> > +    local name=$2
> > +    local addr=$3
> > +    local size=$4
> >      local node_name="module@${addr#0x}"
> >
> >      dt_mknode "$path"  "$node_name"
> >      dt_set "$path/$node_name" "compatible" "str_a" "multiboot,device-tree multiboot,module"
> > -    dt_set "$path/$node_name" "reg" "hex"  "$(split_addr_size $addr $size)"
> > +    if test "$CALC"; then
> > +        dt_set_calc "$path/$node_name" "reg" $name
> > +    else
> > +        dt_set "$path/$node_name" "reg" "hex"  "$(split_addr_size $addr $size)"
> > +    fi
> >  }
> >
> >  function add_device_tree_mem()
> > @@ -358,7 +394,11 @@ function xen_device_tree_editing()
> >
> >          dt_mknode "/chosen" "$node_name"
> >          dt_set "/chosen/$node_name" "compatible" "str_a" "xen,xsm-policy xen,multiboot-module multiboot,module"
> > -        dt_set "/chosen/$node_name" "reg" "hex" "$(split_addr_size $xen_policy_addr $xen_policy_size)"
> > +        if test "$CALC"; then
> > +            dt_set_calc "/chosen/$node_name" "reg" "xen_policy"
> > +        else
> > +            dt_set "/chosen/$node_name" "reg" "hex" "$(split_addr_size $xen_policy_addr $xen_policy_size)"
> > +        fi
> >      fi
> >
> >      if test "$DOM0_KERNEL"
> > @@ -367,7 +407,11 @@ function xen_device_tree_editing()
> >
> >          dt_mknode "/chosen" "$node_name"
> >          dt_set "/chosen/$node_name" "compatible" "str_a" "xen,linux-zimage xen,multiboot-module multiboot,module"
> > -        dt_set "/chosen/$node_name" "reg" "hex" "$(split_addr_size $dom0_kernel_addr $dom0_kernel_size)"
> > +        if test "$CALC"; then
> > +            dt_set_calc "/chosen/$node_name" "reg" "dom0_linux"
> > +        else
> > +            dt_set "/chosen/$node_name" "reg" "hex" "$(split_addr_size $dom0_kernel_addr $dom0_kernel_size)"
> > +        fi
> >          dt_set "/chosen" "xen,dom0-bootargs" "str" "$DOM0_CMD"
> >      fi
> >
> > @@ -377,7 +421,11 @@ function xen_device_tree_editing()
> >
> >          dt_mknode "/chosen" "$node_name"
> >          dt_set "/chosen/$node_name" "compatible" "str_a" "xen,linux-initrd xen,multiboot-module multiboot,module"
> > -        dt_set "/chosen/$node_name" "reg" "hex" "$(split_addr_size $ramdisk_addr $ramdisk_size)"
> > +        if test "$CALC"; then
> > +            dt_set_calc "/chosen/$node_name" "reg" "dom0_ramdisk"
> > +        else
> > +            dt_set "/chosen/$node_name" "reg" "hex" "$(split_addr_size $ramdisk_addr $ramdisk_size)"
> > +        fi
> >      fi
> >
> >      i=0
> > @@ -464,14 +512,14 @@ function xen_device_tree_editing()
> >
> >          xen_dt_domu_add_vcpu_nodes "/chosen/domU$i" $i ${DOMU_VCPUS[$i]}
> >
> > -        add_device_tree_kernel "/chosen/domU$i" ${domU_kernel_addr[$i]} ${domU_kernel_size[$i]} "${DOMU_CMD[$i]}"
> > +        add_device_tree_kernel "/chosen/domU$i" "domU${i}_kernel" ${domU_kernel_addr[$i]} ${domU_kernel_size[$i]} "${DOMU_CMD[$i]}"
> >          if test "${domU_ramdisk_addr[$i]}"
> >          then
> > -            add_device_tree_ramdisk "/chosen/domU$i" ${domU_ramdisk_addr[$i]} ${domU_ramdisk_size[$i]}
> > +            add_device_tree_ramdisk "/chosen/domU$i" "domU${i}_ramdisk"
> > + ${domU_ramdisk_addr[$i]} ${domU_ramdisk_size[$i]}
> >          fi
> >          if test "${domU_passthrough_dtb_addr[$i]}"
> >          then
> > -            add_device_tree_passthrough "/chosen/domU$i" ${domU_passthrough_dtb_addr[$i]} ${domU_passthrough_dtb_size[$i]}
> > +            add_device_tree_passthrough "/chosen/domU$i" "domU${i}_fdt"
> > + ${domU_passthrough_dtb_addr[$i]} ${domU_passthrough_dtb_size[$i]}
> >          fi
> >          i=$(( $i + 1 ))
> >      done
> > @@ -504,7 +552,11 @@ function device_tree_editing()
> >
> >      if test $UBOOT_SOURCE
> >      then
> > -        echo "fdt addr $device_tree_addr" >> $UBOOT_SOURCE
> > +        if test "$CALC"; then
> > +            echo "fdt addr \${host_fdt_addr}" >> $UBOOT_SOURCE
> > +        else
> > +            echo "fdt addr $device_tree_addr" >> $UBOOT_SOURCE
> > +        fi
> >          echo "fdt resize 1024" >> $UBOOT_SOURCE
> >
> >          if test $NUM_DT_OVERLAY && test $NUM_DT_OVERLAY -gt 0 @@ -512,7 +564,11 @@ function device_tree_editing()
> >              i=0
> >              while test $i -lt $NUM_DT_OVERLAY
> >              do
> > -                echo "fdt apply ${dt_overlay_addr[$i]}" >> $UBOOT_SOURCE
> > +                if test "$CALC"; then
> > +                    echo "fdt apply \${host_fdto${i}_addr}" >> $UBOOT_SOURCE
> > +                else
> > +                    echo "fdt apply ${dt_overlay_addr[$i]}" >> $UBOOT_SOURCE
> > +                fi
> >                  i=$(( $i + 1 ))
> >              done
> >          fi
> > @@ -530,8 +586,12 @@ function fill_reserved_spaces_from_dtb()  {
> >      if [ ! -f $DEVICE_TREE ]
> >      then
> > -        echo "File $DEVICE_TREE doesn't exist, exiting";
> > -        cleanup_and_return_err
> > +        if test "$CALC"; then
> > +            return
> > +        else
> > +            echo "File $DEVICE_TREE doesn't exist, exiting";
> > +            cleanup_and_return_err
> > +        fi
> >      fi
> >
> >      # Check if reserved-memory node exists @@ -613,7 +673,7 @@ function get_image_size()
> >      printf "%u" $effective_size
> >  }
> >
> > -function add_size()
> > +function add_size_from_file()
> >  {
> >      local filename=$1
> >      local size=`stat -L --printf="%s" $filename` @@ -645,6 +705,26 @@ function add_size()
> >      filesize=$size
> >  }
> >
> > +function add_size_calculate()
> > +{
> > +    local fit_scr_name=$1
> > +
> > +    cat >> $UBOOT_SOURCE <<- EOF
> > +       setenv "$fit_scr_name"_addr \${memaddr}
> > +       setenv "$fit_scr_name"_size \${filesize}
> 
> The quotes here should also be removed, since quotes are literals
> in heredoc:
>     setenv ${fit_scr_name}_addr \${memaddr}
>     setenv ${fit_scr_name}_size \${filesize}
> 
> Otherwise, we'll be getting this in the actual boot script
>     setenv "dom0_linux"_addr ${memaddr}
>     setenv "dom0_linux"_size ${filesize}
> 
> instead of
>     setenv dom0_linux_addr ${memaddr}
>     setenv dom0_linux_size ${filesize}
> 
> > +       setexpr memaddr \${memaddr} \+ \${filesize}
> > +       setexpr memaddr \${memaddr} \+ $PADDING_MASK
> > +       setexpr memaddr \${memaddr} \& $PADDING_MASK_INV
> > +       EOF
> > +
> > +    # TODO: missing ${RESERVED_MEM_SPACES[@]} check
> > +
> > +    # The following are updated to avoid collisions in node names, but
> > +    # they are not actively used.
> > +    memaddr=$((memaddr + offset))
> 
> I know you want to make this patch less complicated and I agree
> with that, since there was originally some more logic here which
> was not necessarily needed and was complicating things.
> 
> But even though this variable is only needed for 'module@..."
> node names, I think we should at least convert it to hex, to
> avoid getting confusing node names, like:
>     fdt mknod /chosen/domU0 module@2239758336
> 
> Keeping this here should be enough:
>     memaddr=$(printf "0x%X\n" $memaddr)

Both great suggestions, I'll do that


> > +    filesize=$offset
> > +}
> > +
> >  function load_file()
> >  {
> >      local filename=$1
> > @@ -657,10 +737,16 @@ function load_file()
> >      if test "$FIT"
> >      then
> >          echo "imxtract \$fit_addr $fit_scr_name $memaddr" >> $UBOOT_SOURCE
> > +        add_size_from_file $filename
> >      else
> > -        echo "$LOAD_CMD $memaddr ${prepend_path:+$prepend_path/}$relative_path" >> $UBOOT_SOURCE
> > +        if test "$CALC"; then
> > +            echo "$LOAD_CMD \${memaddr} ${prepend_path:+$prepend_path/}$relative_path" >> $UBOOT_SOURCE
> > +            add_size_calculate $fit_scr_name
> > +        else
> > +            echo "$LOAD_CMD $memaddr ${prepend_path:+$prepend_path/}$relative_path" >> $UBOOT_SOURCE
> > +            add_size_from_file $filename
> > +        fi
> >      fi
> > -    add_size $filename
> >  }
> >
> >  function check_file_type()
> > @@ -670,8 +756,13 @@ function check_file_type()
> >
> >      if [ ! -f $filename ]
> >      then
> > -        echo "File $filename doesn't exist, exiting";
> > -        cleanup_and_return_err
> > +        if test "$CALC"
> > +        then
> > +            return
> > +        else
> > +            echo "File $filename doesn't exist, exiting";
> > +            cleanup_and_return_err
> > +        fi
> >      fi
> >
> >      # if file doesn't know what it is, it outputs data, so include that @@ -705,8 +796,13 @@ function check_compressed_file_type()
> >
> >      if [ ! -f $filename ]
> >      then
> > -        echo "File $filename doesn't exist, exiting";
> > -        cleanup_and_return_err
> > +        if test "$CALC"
> > +        then
> > +            return
> > +        else
> > +            echo "File $filename doesn't exist, exiting";
> > +            cleanup_and_return_err
> > +        fi
> >      fi
> >
> >      file_type=$( file -L $filename )
> > @@ -872,6 +968,12 @@ function linux_config()
> >  generate_uboot_images()
> >  {
> >      local arch=$(file -L $XEN | grep -E 'ARM64|Aarch64')
> > +
> > +    if test "$CALC"
> > +    then
> > +        echo "bootm is not compatible with -s"
> > +        cleanup_and_return_err
> > +    fi
> >
> >      if test "$arch"
> >      then
> > @@ -997,7 +1099,11 @@ bitstream_load_and_config()
> >          if test "$UBOOT_SOURCE"
> >          then
> >              # we assume the FPGA device is 0 here
> > -            echo "fpga load 0 $bitstream_addr $bitstream_size" >> "$UBOOT_SOURCE"
> > +            if test "$CALC"; then
> > +                echo "fpga load 0 \${fpga_bitstream_addr} \${fpga_bitstream_size}" >> "$UBOOT_SOURCE"
> > +            else
> > +                echo "fpga load 0 $bitstream_addr $bitstream_size" >> "$UBOOT_SOURCE"
> > +            fi
> >          fi
> >      fi
> >  }
> > @@ -1271,7 +1377,7 @@ function print_help  {
> >      script=`basename "$0"`
> >      echo "usage:"
> > -    echo "     $script -c CONFIG_FILE -d DIRECTORY [-t LOAD_CMD] [-o FILE] [-k KEY_DIR/HINT [-u U-BOOT_DTB]] [-e] [-f] [-p PREPEND_PATH]"
> > +    echo "     $script -c CONFIG_FILE -d DIRECTORY [-t LOAD_CMD] [-o FILE] [-k KEY_DIR/HINT [-u U-BOOT_DTB]] [-e] [-f] [-p PREPEND_PATH] [-s]"
> >      echo "     $script -h"
> >      echo "where:"
> >      echo "     CONFIG_FILE - configuration file"
> > @@ -1289,13 +1395,14 @@ function print_help
> >      echo "     -f - enable generating a FIT image"
> >      echo "     PREPEND_PATH - path to be appended before file names to match deploy location within rootfs"
> >      echo "     -h - prints out the help message and exits "
> > +    echo "     -s - let U-Boot calculate binary images load addresses/sizes dynamically"
> >      echo "Defaults:"
> >      echo "     CONFIG_FILE=$cfg_file, UBOOT_TYPE=\"LOAD_CMD\" env var, DIRECTORY=$uboot_dir"
> >      echo "Example:"
> >      echo "     $script -c ../config -d ./build42 -t \"scsi load 1:1\""
> >  }
> >
> > -while getopts ":c:t:d:ho:k:u:fp:" opt; do
> > +while getopts ":c:t:d:ho:k:u:fp:s" opt; do
> >      case ${opt} in
> >      t )
> >          case $OPTARG in
> > @@ -1340,6 +1447,9 @@ while getopts ":c:t:d:ho:k:u:fp:" opt; do
> >      p )
> >          prepend_path="$OPTARG"
> >          ;;
> > +    s )
> > +        CALC=y
> > +        ;;
> >      h )
> >          print_help
> >          exit 0
> > @@ -1533,6 +1643,10 @@ uboot_addr=$memaddr  # 2MB are enough for a uboot script  memaddr=$(( $memaddr + $offset ))  memaddr=`printf "0x%X\n" $memaddr`
> > +if test "$CALC"
> > +then
> > +    echo "setenv memaddr $memaddr" >> $UBOOT_SOURCE fi
> >
> >  fill_reserved_spaces_from_dtb
> >
> > @@ -1583,7 +1697,11 @@ fi
> >
> >  if [ "$BOOT_CMD" != "none" ]
> >  then
> > -    echo "$BOOT_CMD $kernel_addr $([ "$BOOT_CMD" = "bootefi" ] || echo '-') $device_tree_addr" >> $UBOOT_SOURCE
> > +    if test "$CALC"; then
> > +        echo "$BOOT_CMD \${host_kernel_addr} $([ "$BOOT_CMD" = "bootefi" ] || echo '-') \${host_fdt_addr}" >> $UBOOT_SOURCE
> > +    else
> > +        echo "$BOOT_CMD $kernel_addr $([ "$BOOT_CMD" = "bootefi" ] || echo '-') $device_tree_addr" >> $UBOOT_SOURCE
> > +    fi
> >  else
> >      # skip boot command but store load addresses to be used later
> >      echo "setenv host_kernel_addr $kernel_addr" >> $UBOOT_SOURCE
> 
> With the above changes,
> 
> Reviewed-by: Andrei Cherechesu <andrei.cherechesu@nxp.com>

I'll send v8 with your R-b, please have a quick look that everything
checks out, thanks!
--8323329-1474602063-1745871144=:785180--


From xen-devel-bounces@lists.xenproject.org Mon Apr 28 20:13:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 20:13:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.971149.1359633 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9UrJ-0006ST-TG; Mon, 28 Apr 2025 20:13:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 971149.1359633; Mon, 28 Apr 2025 20: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 1u9UrJ-0006SM-Oe; Mon, 28 Apr 2025 20:13:45 +0000
Received: by outflank-mailman (input) for mailman id 971149;
 Mon, 28 Apr 2025 20:13: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=u4d+=XO=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u9UrI-0006SE-QT
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 20:13:44 +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 4716fd2a-246d-11f0-9ffb-bf95429c2676;
 Mon, 28 Apr 2025 22:13:42 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id A763B5C04FC;
 Mon, 28 Apr 2025 20:11:23 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7CF61C4CEE4;
 Mon, 28 Apr 2025 20:13: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: 4716fd2a-246d-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1745871220;
	bh=0vOekQTbls2azYaGMx2HD/SDFkWASciwYaUBpMUArow=;
	h=Date:From:To:cc:Subject:From;
	b=tlhIYiDdym941cBD1oA5eVNvufHCt8x7cKmtQ4lSAF4EHvFgzP3Y0lIzdonBv4Z7P
	 JiqDBzRuOeEm+Wpze6UoSBqlzjdkcqPI//oGQse4qEShlE3yqLjvQOWrwwuH/r0etR
	 p8kCoPPtCEVWYeXhwhMDvUKp6wAdB4UK1MVi5iunwaVh/kDb947zxRaMYtM876LFoZ
	 Ptfk5nf/h76sZuQft4GAbEEEpmX9R2gVi9cqXZYzWrh7khmc+Hpi5e5Q4YlvrhsbBG
	 K3BzoY9II7dS+zroWt0LYkCEVroTJX5fq5icaMy4rTxCXknBD1N9ZEG6BFQ/Zg2peK
	 JGSUmEJX4swaw==
Date: Mon, 28 Apr 2025 13:13:38 -0700 (PDT)
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, andrei.cherechesu@nxp.com, dmukhin@ford.com, 
    michal.orzel@amd.com, jason.andryuk@amd.com, S32@nxp.com
Subject: [PATCH v8] uboot-script-gen: Dynamically compute addr and size when
 loading binaries
Message-ID: <alpine.DEB.2.22.394.2504281312280.785180@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

From: Andrei Cherechesu <andrei.cherechesu@oss.nxp.com>

Normally, the Imagebuilder would precompute the sizes of the loaded
binaries and addresses where they are loaded before generating the
script, and the sizes and addresses that needed to be provided to
Xen via /chosen would be hardcoded in the boot script.

Added an option via "-s" parameter to avoid hardcoding any
address in the boot script, and dynamically compute the
loading addresses for binaries. The first loading address is based
on the MEMORY_START parameter and after loading each binary,
the loading address and the size of the binary are stored in
variables with corresponding names. Then, the loading address
for the next binary is computed and aligned to 0x200000.

If the "-s" parameter is not used, the normal flow is executed,
where the loading addresses and sizes for each binaries are
precomputed and hardcoded inside the script, but the loading
addresses and sizes for each binary are now also stored for eventual
later use.

Reserved memory regions are left TBD in the -s case.

Link: https://lists.xenproject.org/archives/html/xen-devel/2022-09/msg01862.html
Signed-off-by: Andrei Cherechesu <andrei.cherechesu@nxp.com>
Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
Reviewed-by: Andrei Cherechesu <andrei.cherechesu@nxp.com>
Reviewed-by: Denis Mukhin <dmukhin@ford.com>
---
Changes in v8:
- remove quotes in heredoc
- change memaddr to hex for readability

Changes in v7:
- use $()
- better description and alphabetical order
- use heredoc

Changes in v6:
- make initial ${memaddr} setting depending on CALC

This patch adds quite a bit of complexity which is the reason why I
didn't originally commit it. Now that we are enabling ImageBuilder in
Yocto, it turns out this patch is required because Yocto invokes
ImageBuilder before all the binaries are ready and available.

Andrei, sorry for taking so long to realize why it is essential, but we
are getting there now.

The changes I made to the original patch are purely to make it simpler
to maintain.
---
 README.md                |   2 +
 scripts/uboot-script-gen | 181 ++++++++++++++++++++++++++++++++-------
 2 files changed, 152 insertions(+), 31 deletions(-)

diff --git a/README.md b/README.md
index f8039ec..28c9e6b 100644
--- a/README.md
+++ b/README.md
@@ -356,6 +356,8 @@ Where:\
    can only be used  in combination with the -k option.  This adds the
    public key into the dtb.  Then one can add this dtb back into the
    u-boot bin or elf.\
+-s addresses and sizes are calculated dynamically from U-Boot, hence
+   binaries don't need to be available at the time of invocation.\
 
 ### Signed FIT images
 
diff --git a/scripts/uboot-script-gen b/scripts/uboot-script-gen
index 638154a..dfa154e 100755
--- a/scripts/uboot-script-gen
+++ b/scripts/uboot-script-gen
@@ -1,8 +1,11 @@
 #!/bin/bash
 
 offset=$((2*1024*1024))
+PADDING_MASK=$(printf "0x%X\n" $(($offset - 1)))
+PADDING_MASK_INV=$(printf "0x%X\n" $((~$PADDING_MASK)))
 filesize=0
 prog_req=(mkimage file fdtput mktemp awk od)
+CALC=""
 
 function cleanup_and_return_err()
 {
@@ -100,17 +103,40 @@ function dt_set()
     fi
 }
 
+function dt_set_calc()
+{
+    local path=$1
+    local var=$2
+    local name_var=$3
+ 
+    local addr_var="$name_var"_addr
+    local size_var="$name_var"_size
+
+    cat >> $UBOOT_SOURCE <<- EOF
+	setexpr addr_hi \${$addr_var} / 0x100000000
+	setexpr addr_lo \${$addr_var} \& 0xFFFFFFFF
+	setexpr size_hi \${$size_var} / 0x100000000
+	setexpr size_lo \${$size_var} \& 0xFFFFFFFF
+	fdt set $path $var <0x\${addr_hi} 0x\${addr_lo} 0x\${size_hi} 0x\${size_lo}>
+	EOF
+}
+
 function add_device_tree_kernel()
 {
     local path=$1
-    local addr=$2
-    local size=$3
-    local bootargs=$4
+    local name=$2
+    local addr=$3
+    local size=$4
+    local bootargs=$5
     local node_name="module@${addr#0x}"
 
     dt_mknode "$path" "$node_name"
     dt_set "$path/$node_name" "compatible" "str_a" "multiboot,kernel multiboot,module"
-    dt_set "$path/$node_name" "reg" "hex"  "$(split_addr_size $addr $size)"
+    if test "$CALC"; then
+        dt_set_calc "$path/$node_name" "reg" $name
+    else
+        dt_set "$path/$node_name" "reg" "hex"  "$(split_addr_size $addr $size)"
+    fi
     dt_set "$path/$node_name" "bootargs" "str" "$bootargs"
 }
 
@@ -118,26 +144,36 @@ function add_device_tree_kernel()
 function add_device_tree_ramdisk()
 {
     local path=$1
-    local addr=$2
-    local size=$3
+    local name=$2
+    local addr=$3
+    local size=$4
     local node_name="module@${addr#0x}"
 
     dt_mknode "$path"  "$node_name"
     dt_set "$path/$node_name" "compatible" "str_a" "multiboot,ramdisk multiboot,module"
-    dt_set "$path/$node_name" "reg" "hex"  "$(split_addr_size $addr $size)"
+    if test "$CALC"; then
+        dt_set_calc "$path/$node_name" "reg" $name
+    else
+        dt_set "$path/$node_name" "reg" "hex"  "$(split_addr_size $addr $size)"
+    fi
 }
 
 
 function add_device_tree_passthrough()
 {
     local path=$1
-    local addr=$2
-    local size=$3
+    local name=$2
+    local addr=$3
+    local size=$4
     local node_name="module@${addr#0x}"
 
     dt_mknode "$path"  "$node_name"
     dt_set "$path/$node_name" "compatible" "str_a" "multiboot,device-tree multiboot,module"
-    dt_set "$path/$node_name" "reg" "hex"  "$(split_addr_size $addr $size)"
+    if test "$CALC"; then
+        dt_set_calc "$path/$node_name" "reg" $name
+    else
+        dt_set "$path/$node_name" "reg" "hex"  "$(split_addr_size $addr $size)"
+    fi
 }
 
 function add_device_tree_mem()
@@ -358,7 +394,11 @@ function xen_device_tree_editing()
 
         dt_mknode "/chosen" "$node_name"
         dt_set "/chosen/$node_name" "compatible" "str_a" "xen,xsm-policy xen,multiboot-module multiboot,module"
-        dt_set "/chosen/$node_name" "reg" "hex" "$(split_addr_size $xen_policy_addr $xen_policy_size)"
+        if test "$CALC"; then
+            dt_set_calc "/chosen/$node_name" "reg" "xen_policy"
+        else
+            dt_set "/chosen/$node_name" "reg" "hex" "$(split_addr_size $xen_policy_addr $xen_policy_size)"
+        fi
     fi
 
     if test "$DOM0_KERNEL"
@@ -367,7 +407,11 @@ function xen_device_tree_editing()
 
         dt_mknode "/chosen" "$node_name"
         dt_set "/chosen/$node_name" "compatible" "str_a" "xen,linux-zimage xen,multiboot-module multiboot,module"
-        dt_set "/chosen/$node_name" "reg" "hex" "$(split_addr_size $dom0_kernel_addr $dom0_kernel_size)"
+        if test "$CALC"; then
+            dt_set_calc "/chosen/$node_name" "reg" "dom0_linux"
+        else
+            dt_set "/chosen/$node_name" "reg" "hex" "$(split_addr_size $dom0_kernel_addr $dom0_kernel_size)"
+        fi
         dt_set "/chosen" "xen,dom0-bootargs" "str" "$DOM0_CMD"
     fi
 
@@ -377,7 +421,11 @@ function xen_device_tree_editing()
 
         dt_mknode "/chosen" "$node_name"
         dt_set "/chosen/$node_name" "compatible" "str_a" "xen,linux-initrd xen,multiboot-module multiboot,module"
-        dt_set "/chosen/$node_name" "reg" "hex" "$(split_addr_size $ramdisk_addr $ramdisk_size)"
+        if test "$CALC"; then
+            dt_set_calc "/chosen/$node_name" "reg" "dom0_ramdisk"
+        else
+            dt_set "/chosen/$node_name" "reg" "hex" "$(split_addr_size $ramdisk_addr $ramdisk_size)"
+        fi
     fi
 
     i=0
@@ -464,14 +512,14 @@ function xen_device_tree_editing()
 
         xen_dt_domu_add_vcpu_nodes "/chosen/domU$i" $i ${DOMU_VCPUS[$i]}
 
-        add_device_tree_kernel "/chosen/domU$i" ${domU_kernel_addr[$i]} ${domU_kernel_size[$i]} "${DOMU_CMD[$i]}"
+        add_device_tree_kernel "/chosen/domU$i" "domU${i}_kernel" ${domU_kernel_addr[$i]} ${domU_kernel_size[$i]} "${DOMU_CMD[$i]}"
         if test "${domU_ramdisk_addr[$i]}"
         then
-            add_device_tree_ramdisk "/chosen/domU$i" ${domU_ramdisk_addr[$i]} ${domU_ramdisk_size[$i]}
+            add_device_tree_ramdisk "/chosen/domU$i" "domU${i}_ramdisk" ${domU_ramdisk_addr[$i]} ${domU_ramdisk_size[$i]}
         fi
         if test "${domU_passthrough_dtb_addr[$i]}"
         then
-            add_device_tree_passthrough "/chosen/domU$i" ${domU_passthrough_dtb_addr[$i]} ${domU_passthrough_dtb_size[$i]}
+            add_device_tree_passthrough "/chosen/domU$i" "domU${i}_fdt" ${domU_passthrough_dtb_addr[$i]} ${domU_passthrough_dtb_size[$i]}
         fi
         i=$(( $i + 1 ))
     done
@@ -504,7 +552,11 @@ function device_tree_editing()
 
     if test $UBOOT_SOURCE
     then
-        echo "fdt addr $device_tree_addr" >> $UBOOT_SOURCE
+        if test "$CALC"; then
+            echo "fdt addr \${host_fdt_addr}" >> $UBOOT_SOURCE
+        else
+            echo "fdt addr $device_tree_addr" >> $UBOOT_SOURCE
+        fi
         echo "fdt resize 1024" >> $UBOOT_SOURCE
 
         if test $NUM_DT_OVERLAY && test $NUM_DT_OVERLAY -gt 0
@@ -512,7 +564,11 @@ function device_tree_editing()
             i=0
             while test $i -lt $NUM_DT_OVERLAY
             do
-                echo "fdt apply ${dt_overlay_addr[$i]}" >> $UBOOT_SOURCE
+                if test "$CALC"; then
+                    echo "fdt apply \${host_fdto${i}_addr}" >> $UBOOT_SOURCE
+                else
+                    echo "fdt apply ${dt_overlay_addr[$i]}" >> $UBOOT_SOURCE
+                fi
                 i=$(( $i + 1 ))
             done
         fi
@@ -530,8 +586,12 @@ function fill_reserved_spaces_from_dtb()
 {
     if [ ! -f $DEVICE_TREE ]
     then
-        echo "File $DEVICE_TREE doesn't exist, exiting";
-        cleanup_and_return_err
+        if test "$CALC"; then
+            return
+        else
+            echo "File $DEVICE_TREE doesn't exist, exiting";
+            cleanup_and_return_err
+        fi
     fi
 
     # Check if reserved-memory node exists
@@ -613,7 +673,7 @@ function get_image_size()
     printf "%u" $effective_size
 }
 
-function add_size()
+function add_size_from_file()
 {
     local filename=$1
     local size=`stat -L --printf="%s" $filename`
@@ -645,6 +705,27 @@ function add_size()
     filesize=$size
 }
 
+function add_size_calculate()
+{
+    local fit_scr_name=$1
+
+    cat >> $UBOOT_SOURCE <<- EOF
+	setenv ${fit_scr_name}_addr \${memaddr}
+	setenv ${fit_scr_name}_size \${filesize}
+	setexpr memaddr \${memaddr} \+ \${filesize}
+	setexpr memaddr \${memaddr} \+ $PADDING_MASK
+	setexpr memaddr \${memaddr} \& $PADDING_MASK_INV
+	EOF
+
+    # TODO: missing ${RESERVED_MEM_SPACES[@]} check
+
+    # The following are updated to avoid collisions in node names, but
+    # they are not actively used.
+    memaddr=$((memaddr + offset))
+    memaddr=$(printf "0x%X\n" $memaddr)
+    filesize=$offset
+}
+
 function load_file()
 {
     local filename=$1
@@ -657,10 +738,16 @@ function load_file()
     if test "$FIT"
     then
         echo "imxtract \$fit_addr $fit_scr_name $memaddr" >> $UBOOT_SOURCE
+        add_size_from_file $filename
     else
-        echo "$LOAD_CMD $memaddr ${prepend_path:+$prepend_path/}$relative_path" >> $UBOOT_SOURCE
+        if test "$CALC"; then
+            echo "$LOAD_CMD \${memaddr} ${prepend_path:+$prepend_path/}$relative_path" >> $UBOOT_SOURCE
+            add_size_calculate $fit_scr_name
+        else
+            echo "$LOAD_CMD $memaddr ${prepend_path:+$prepend_path/}$relative_path" >> $UBOOT_SOURCE
+            add_size_from_file $filename
+        fi
     fi
-    add_size $filename
 }
 
 function check_file_type()
@@ -670,8 +757,13 @@ function check_file_type()
 
     if [ ! -f $filename ]
     then
-        echo "File $filename doesn't exist, exiting";
-        cleanup_and_return_err
+        if test "$CALC"
+        then
+            return
+        else
+            echo "File $filename doesn't exist, exiting";
+            cleanup_and_return_err
+        fi
     fi
 
     # if file doesn't know what it is, it outputs data, so include that
@@ -705,8 +797,13 @@ function check_compressed_file_type()
 
     if [ ! -f $filename ]
     then
-        echo "File $filename doesn't exist, exiting";
-        cleanup_and_return_err
+        if test "$CALC"
+        then
+            return
+        else
+            echo "File $filename doesn't exist, exiting";
+            cleanup_and_return_err
+        fi
     fi
 
     file_type=$( file -L $filename )
@@ -872,6 +969,12 @@ function linux_config()
 generate_uboot_images()
 {
     local arch=$(file -L $XEN | grep -E 'ARM64|Aarch64')
+    
+    if test "$CALC"
+    then
+        echo "bootm is not compatible with -s"
+        cleanup_and_return_err
+    fi
 
     if test "$arch"
     then
@@ -997,7 +1100,11 @@ bitstream_load_and_config()
         if test "$UBOOT_SOURCE"
         then
             # we assume the FPGA device is 0 here
-            echo "fpga load 0 $bitstream_addr $bitstream_size" >> "$UBOOT_SOURCE"
+            if test "$CALC"; then
+                echo "fpga load 0 \${fpga_bitstream_addr} \${fpga_bitstream_size}" >> "$UBOOT_SOURCE"
+            else
+                echo "fpga load 0 $bitstream_addr $bitstream_size" >> "$UBOOT_SOURCE"
+            fi
         fi
     fi
 }
@@ -1271,7 +1378,7 @@ function print_help
 {
     script=`basename "$0"`
     echo "usage:"
-    echo "	$script -c CONFIG_FILE -d DIRECTORY [-t LOAD_CMD] [-o FILE] [-k KEY_DIR/HINT [-u U-BOOT_DTB]] [-e] [-f] [-p PREPEND_PATH]"
+    echo "	$script -c CONFIG_FILE -d DIRECTORY [-t LOAD_CMD] [-o FILE] [-k KEY_DIR/HINT [-u U-BOOT_DTB]] [-e] [-f] [-p PREPEND_PATH] [-s]"
     echo "	$script -h"
     echo "where:"
     echo "	CONFIG_FILE - configuration file"
@@ -1289,13 +1396,14 @@ function print_help
     echo "	-f - enable generating a FIT image"
     echo "	PREPEND_PATH - path to be appended before file names to match deploy location within rootfs"
     echo "	-h - prints out the help message and exits "
+    echo "	-s - let U-Boot calculate binary images load addresses/sizes dynamically"
     echo "Defaults:"
     echo "	CONFIG_FILE=$cfg_file, UBOOT_TYPE=\"LOAD_CMD\" env var, DIRECTORY=$uboot_dir"
     echo "Example:"
     echo "	$script -c ../config -d ./build42 -t \"scsi load 1:1\""
 }
 
-while getopts ":c:t:d:ho:k:u:fp:" opt; do
+while getopts ":c:t:d:ho:k:u:fp:s" opt; do
     case ${opt} in
     t )
         case $OPTARG in
@@ -1340,6 +1448,9 @@ while getopts ":c:t:d:ho:k:u:fp:" opt; do
     p )
         prepend_path="$OPTARG"
         ;;
+    s )
+        CALC=y
+        ;;
     h )
         print_help
         exit 0
@@ -1533,6 +1644,10 @@ uboot_addr=$memaddr
 # 2MB are enough for a uboot script
 memaddr=$(( $memaddr + $offset ))
 memaddr=`printf "0x%X\n" $memaddr`
+if test "$CALC"
+then
+    echo "setenv memaddr $memaddr" >> $UBOOT_SOURCE
+fi
 
 fill_reserved_spaces_from_dtb
 
@@ -1583,7 +1698,11 @@ fi
 
 if [ "$BOOT_CMD" != "none" ]
 then
-    echo "$BOOT_CMD $kernel_addr $([ "$BOOT_CMD" = "bootefi" ] || echo '-') $device_tree_addr" >> $UBOOT_SOURCE
+    if test "$CALC"; then
+        echo "$BOOT_CMD \${host_kernel_addr} $([ "$BOOT_CMD" = "bootefi" ] || echo '-') \${host_fdt_addr}" >> $UBOOT_SOURCE
+    else
+        echo "$BOOT_CMD $kernel_addr $([ "$BOOT_CMD" = "bootefi" ] || echo '-') $device_tree_addr" >> $UBOOT_SOURCE
+    fi
 else
     # skip boot command but store load addresses to be used later
     echo "setenv host_kernel_addr $kernel_addr" >> $UBOOT_SOURCE
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Mon Apr 28 21:10:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 21:10:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.971169.1359651 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9Vk7-0006aC-93; Mon, 28 Apr 2025 21:10:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 971169.1359651; Mon, 28 Apr 2025 21:10: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 1u9Vk7-0006a5-6Z; Mon, 28 Apr 2025 21:10:23 +0000
Received: by outflank-mailman (input) for mailman id 971169;
 Mon, 28 Apr 2025 21:10: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=DEkc=XO=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1u9Vk5-0006Zo-MO
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 21:10:21 +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 2ff817ef-2475-11f0-9eb4-5ba50f476ded;
 Mon, 28 Apr 2025 23:10:19 +0200 (CEST)
Received: from CH2PR05CA0032.namprd05.prod.outlook.com (2603:10b6:610::45) by
 MW3PR12MB4410.namprd12.prod.outlook.com (2603:10b6:303:5b::24) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.8678.33; Mon, 28 Apr 2025 21:10:16 +0000
Received: from CH1PEPF0000A347.namprd04.prod.outlook.com
 (2603:10b6:610:0:cafe::90) by CH2PR05CA0032.outlook.office365.com
 (2603:10b6:610::45) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8678.13 via Frontend Transport; Mon,
 28 Apr 2025 21:10:15 +0000
Received: from SATLEXMB03.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.8678.33 via Frontend Transport; Mon, 28 Apr 2025 21:10:15 +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, 28 Apr
 2025 16:10:14 -0500
Received: from [172.25.248.240] (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, 28 Apr 2025 16:10:13 -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: 2ff817ef-2475-11f0-9eb4-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=QpsCo50aYompCQ8K6Wz6ZyPueCLS55e9wdCNLOVIvqZ1PaSyghF1Uj9TnAQAGSyXwaUU+ZpK8g/KK9AaZ7sW4eFXs4bPqmmt7zLf+bc+0wbF4V6sL3wIpEGIaC4W4IWVDGOAFeTLCi2OTAJiT9GSjyq0w7hWckLDaofkTWOB2+ikZ5/bIBvSu7CarjtTQsUQbX19M6zhvoWmRs1Hd9LnrBSsG039kmP3j7wgftCwwma/DbPgg3zHhsIjCkCZfE+6UCKLozWpcJ5QbCQIL+Bzu4pRSsF2NX9Xhei8O7a/RUt4czySIsVB27ylEXb9BxF7av3N4XC7nfSCHWwqhBbFdw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=T59YqtMA9cSf61s0uNZ5bSB4OwxVG3dB8QJcEEDd30s=;
 b=ourS2DeT7Mzl2KuJdH+5Alof3v7WP2Wl7hgyKZOrO/11rqxRkByQdgSxyx070nFiujGKpyFP7gFCJOSCRgM/4di24xa+w5LX+T0iu0vmBK8RbL3eguF0DJKIuqoscd/YYzG+aPIMng2182D0AtcjTuWd3uHhlPO+dF9UwlGTldt57VS4gVO7L8EnEnPJK9zdmKi1W7+UEsb32FqlFpWzGfMEMLlxcxXzHExS1eyQ65X9KaoXQCmK5EnD0giKjDaIUvvp71hIHT0b4l4hXGPxXHWdQRTLP8g2386vz5uWQBvNQ4YCVYyKt8Jk/8l0Dci2UAjWdGD1LbdMP9y08ccVyQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=ariadne.space 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=T59YqtMA9cSf61s0uNZ5bSB4OwxVG3dB8QJcEEDd30s=;
 b=sx1jhAZYpIOAZMMWR1yvkiWeHPvCA077zAY3dhHTaS9gBdWLGlXCWCErAWQh5QWzoXDcTVS0pqndG4typquwkG0806hOWAYfSniso1NHDc6wskbYOH7QxHvFpoqeR2fqUX7MoxbOgQsa6wGpFPu8KVcDgDwLGGX1eOkKIcgi6Bg=
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: <3aa95fa2-eb10-4d97-bff0-dce96688a4cf@amd.com>
Date: Mon, 28 Apr 2025 17:10:13 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3] x86/hyperv: use dynamically allocated page for
 hypercalls
To: Ariadne Conill <ariadne@ariadne.space>, <xen-devel@lists.xenproject.org>
CC: Paul Durrant <paul@xen.org>, Jan Beulich <jbeulich@suse.com>, "Andrew
 Cooper" <andrew.cooper3@citrix.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>, Alejandro Vallejo <agarciav@amd.com>, "Alexander M .
 Merritt" <alexander@edera.dev>
References: <20250428195736.2516-1-ariadne@ariadne.space>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <20250428195736.2516-1-ariadne@ariadne.space>
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: CH1PEPF0000A347:EE_|MW3PR12MB4410:EE_
X-MS-Office365-Filtering-Correlation-Id: 2e649379-62cf-48c6-75fa-08dd86991277
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?U2RxSVM1NzJucmxHc3VpYk9YTFNDSVdNRGRXeERSbHpaYjJvbGtWdUI0ZmEv?=
 =?utf-8?B?aWx5emhxVXRQUjZ2dmNEOVA1WTNUb1VYYjJOZnR1ODh4RTFlYkp2b3hVTWp1?=
 =?utf-8?B?ajkyTTFESlIyUTNibnpCdjBySFA2VHo3Qm9DL0lRTzUxWjZ5aHdCUVJwUGRj?=
 =?utf-8?B?V3R1MWxCZCtJR043UjIrZkNjRGpJc2NaSWNpL0lRbGIwZHNGMDFrZXIvUnNS?=
 =?utf-8?B?UFI2ZEZIcGRaZDhzeGVaQ1NlWGJveFUreStvMDFJMkcxWHN5TWJmR3hDL2FZ?=
 =?utf-8?B?SWVkTUwrdWJLSEpocUJZd3Mxb0ZBOXFqdnpJMFZhZlh5NUZLTWhVUWZnWjJP?=
 =?utf-8?B?emVMaEhZc0RxVnUrbEMyaHA4NEc0bDNac0puY3RxL21BQU5pRUVFWWc4WW9o?=
 =?utf-8?B?eEdOSU9oSUNKMklXZDBzTHh3U3JWSkZlajc0NVUvOXhnRHB0R3QyZk5NWk01?=
 =?utf-8?B?SVd4MnRhWWIvZjNIbWpzTElyOERrMTBsNWluWDdITVNsOWxWQzB0RmJFSzVF?=
 =?utf-8?B?RUlJcjBvRHpQcTJHK0pyazB1a1FXV2Y0NUxMQkNiRTdZU3JMYWE0T01VbCsw?=
 =?utf-8?B?UXhubUVPQ0MzRkwxSGJNVWFQeFJBczRKaitWeitYTXdzRWdKNWdHZWtFZHk3?=
 =?utf-8?B?NFI0VlBNN3ZaQkdvY00vNXBEbHBBaWhybEJHSGJ0YUl1T20xM25BWUc4SElV?=
 =?utf-8?B?NE9yQmRUOTRvSjlXODVqSWdERWFaaWs4SWtSd2Y3aHpmdDZQV3FvUDRuTmJw?=
 =?utf-8?B?Y0ZLTFhweVZCVEZGblhOMG5idjNYZHM1WStBcm9zOTBqd0R2aXhkV0RFbENu?=
 =?utf-8?B?ZFVvQ2NmNTk4c28wc01DU0xhSnVKTEp2N2hUbWF2OFBmRldDZGhnNmNnNHl2?=
 =?utf-8?B?TEdGOXRYWUFtU0R2MzRxcG5jWk1UWFgzckJ2MldRVXhlb3hScTRkbERjS01w?=
 =?utf-8?B?WUFYSWREUThocUUzckJjUGNNYmJVd0NUajRyRHE4cmtpeFUzUGZ0OCtaSTZx?=
 =?utf-8?B?bnJGRkJWcXJPcklpcEdrNFdyN2JOTTR3Ni8wczgwdjdTczJQdEt4Z1hZN0M4?=
 =?utf-8?B?OHQwRitpVDJSclkzaUZpTlR2ck5semFQN2gvQ3N5WUNBcWU0anhGVXc5cWl6?=
 =?utf-8?B?VENJWUFZb2thcTVuU1Q2RjdXeDY2azVxdENjUXI1dkd3STFKQzJ4VW9oMUI0?=
 =?utf-8?B?UkttNmZzZEx3ZGF1R1doL3pEem5yYm1UWjBQandEUURSOG1JMVBTa29uRUE3?=
 =?utf-8?B?cWVKMEc2SDhsREkxMDBmNWkzN1NwTXJwZnUrQkxRQWNWYXV1dmZ4ejVPUjc4?=
 =?utf-8?B?U2pkK0FzMkJFNEt3QUtSY2c4YXRvLzB4VDNTUjBWeXhLYnQ2U0kvVVdMWU41?=
 =?utf-8?B?ZUkwUFJqOVA4QnpUbGF4dklhTVhqUHg3Tk5zV3VFd3U0WTBjOEgyckVVNjN1?=
 =?utf-8?B?b0JsbnlwOGR2MUxaUEVDOWZORnVtdnhFN0FMU1h5K0NBeVdReGlmRDhKR25O?=
 =?utf-8?B?eWgvRy9NZmdzSjNVQVBvRG1BYnNQSHdSV3R3UE1uZS96M045MmZIc25QbUM1?=
 =?utf-8?B?OVdQY0haRko2SVhVY1NsdEV1bzJmUTE5Tm5RUlE4eTRUZ3JNZHhHYkprQjFp?=
 =?utf-8?B?eEI5eE1YVUM1RzBvZjBWVzVQZVFHOUZNd2l2K1F1M3hhSmVhZkZwQlVVVkxi?=
 =?utf-8?B?UlZBRzBiOXZkWjl2VWc0Qmk0bXJ6bXQ0U0g2WmpDWjZaRlNnL2NjM2pudWhM?=
 =?utf-8?B?WUFKNFNmT2hTRVBWeHhSSlNHaHNEMlhSbS9NZkZDTDdjRjVRb2NhL2ZPZitq?=
 =?utf-8?B?T05VbkRKYzVhTEJFVEp4eDlJb1pzbFRzWnorU0FYMWJqWG1TK0wweUl0WlpW?=
 =?utf-8?B?V2VaUHdYQ1dQUXhwK21uMG5HNytVWG82Z1lESWdFeHFxcUQxeG84LzFRR0ZS?=
 =?utf-8?B?eUNOejhyZmxkYmo5WkpTSWtBSWFkSHp3WUozMWpYSlpKeit6NGMzcWwxcE1S?=
 =?utf-8?B?MHVDQ3JxaTBsWjZGVjJScjVqdzJ6dDVlVE9uLzkxTFIxRmF6eEZ0RjJpTFIy?=
 =?utf-8?Q?sqAGbj?=
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)(36860700013)(376014)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Apr 2025 21:10:15.3770
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 2e649379-62cf-48c6-75fa-08dd86991277
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:
	CH1PEPF0000A347.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW3PR12MB4410

On 2025-04-28 15:57, Ariadne Conill wrote:
> Previously Xen placed the hypercall page at the highest possible MFN,
> but this caused problems on systems where there is more than 36 bits
> of physical address space.
> 
> In general, it also seems unreliable to assume that the highest possible
> MFN is not already reserved for some other purpose.
> 
> Fixes: 620fc734f854 ("x86/hyperv: setup hypercall page")
> Cc: Alejandro Vallejo <agarciav@amd.com>
> Cc: Alexander M. Merritt <alexander@edera.dev>
> Signed-off-by: Ariadne Conill <ariadne@ariadne.space>

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

Thanks,
Jason


From xen-devel-bounces@lists.xenproject.org Mon Apr 28 21:10:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 21:10:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.971168.1359641 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9Vk4-0006MN-1v; Mon, 28 Apr 2025 21:10:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 971168.1359641; Mon, 28 Apr 2025 21:10: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 1u9Vk3-0006MG-Vd; Mon, 28 Apr 2025 21:10:19 +0000
Received: by outflank-mailman (input) for mailman id 971168;
 Mon, 28 Apr 2025 21:10:18 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=/bS6=XO=oss.nxp.com=andrei.cherechesu@srs-se1.protection.inumbo.net>)
 id 1u9Vk2-0006MA-Hs
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 21:10:18 +0000
Received: from AS8PR04CU009.outbound.protection.outlook.com
 (mail-westeuropeazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c201::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2d834e32-2475-11f0-9ffb-bf95429c2676;
 Mon, 28 Apr 2025 23:10:14 +0200 (CEST)
Received: from PA4PR04MB9565.eurprd04.prod.outlook.com (2603:10a6:102:26b::13)
 by PAXPR04MB8592.eurprd04.prod.outlook.com (2603:10a6:102:21b::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.33; Mon, 28 Apr
 2025 21:10:11 +0000
Received: from PA4PR04MB9565.eurprd04.prod.outlook.com
 ([fe80::d8ae:2e16:5a97:1709]) by PA4PR04MB9565.eurprd04.prod.outlook.com
 ([fe80::d8ae:2e16:5a97:1709%7]) with mapi id 15.20.8678.028; Mon, 28 Apr 2025
 21:10: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: 2d834e32-2475-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=wvtIAoCFgK4Ew3QK++2gKa5bxqrtbKSszpkGY+sLePCVKb2qwLxpbx/09Qs5n4dQrUncepZ67QsdKzMdfG2cq0ePAXREYN4QTy+0KdhxULXTuHynmhNTiRTzdwmrdfkhaalr0V78VfYh6rq/ewxgQMZlbuHsk2rwx9Ugavl89EL9/wzqKFa7RgW/hqzB4xCqB6DmN03G5VhbFUFp8t4kq0Q+E3HAg4Pr2kmluK8wkUCznFzZVagToljDcEhKPuv6DW+DBRsNXAi3y7tCbVFxNPzjN0d1RcxGQIUynIhP+rbo5WSz6aPe09ktbRc6wSH3dUEEWDKkJk9vyy5it8KTpw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=FGWSsNNXV7CjdiC8jqKdZ7OZwAbLCfgHq6W3XM6odE4=;
 b=q/qwRjLcPlkl/MlK3Mg2O17rTV+ufSUUj11uX+4twyJmpfBpmpd4gnuhsIbQFEtSeTpAtRbHVg3/svVuMd7GcGqrDM8gsLBtWnT8M8vwRVuHiqBDSZzQPrPZM0XFymZ23d13dvz7yp/hx15TDRhD6q46RqAQ0gXhdPnYmiCGUlgHkwtYhxulMZ9hdGvOYHJ415ZV4NrXDLwAdWnooBQWjKna+B21xx0LO+e0lgnazNHdNM87Ze194sRP67uQaW211hWkxHiCvE09WPvtYOrxcBNVPGeWfPWvUEQ4lNzm3Oo5faipjJOS14zZ640FjZz8stYm18/01cBnHZHkaVHFbg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com;
 dkim=pass header.d=oss.nxp.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com;
 s=selector1-NXP1-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=FGWSsNNXV7CjdiC8jqKdZ7OZwAbLCfgHq6W3XM6odE4=;
 b=LQWanBi7WeVMiVMpAmD/EygK1jlLQKsyFZckiGUEDEPN72rrZCesDoTvws0aJIk3Pt1g9wxJ313GL9LbGwReLvbfjw4qEDWRc1drzSC2VNcf/T6J9ubFmnUyUXEzEKonLVIuKbjPTT7m2/uy8YK+XSfnImkPNWG2iUGNdOG1agd59vPWMyHs42kXsj5azsO50k2z3Mcsjw6QLbgKZehaZ7lzTuzNVjP0p5MpQET1NfV0pTcdodXYVYQga42TIc1UFLOpdlI9nnKFs8u6+CvDYFwiXQwiJGSSw3WaQv9mXhATdGFpBNLn4BminIMnZlXxeBT8pR1+xA9jwLfApHDb+Q==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=oss.nxp.com;
Message-ID: <f4cbcb7a-cc60-40f6-84dd-96d0d7d008ea@oss.nxp.com>
Date: Tue, 29 Apr 2025 00:10:09 +0300
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v8] uboot-script-gen: Dynamically compute addr and size
 when loading binaries
To: Stefano Stabellini <sstabellini@kernel.org>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <alpine.DEB.2.22.394.2504281312280.785180@ubuntu-linux-20-04-desktop>
 <PA4PR04MB956574A1DD21388CB1632481F9812@PA4PR04MB9565.eurprd04.prod.outlook.com>
Content-Language: en-US
Cc: Andrei Cherechesu <andrei.cherechesu@nxp.com>, dmukhin@ford.com,
 Michal Orzel <michal.orzel@amd.com>, jason.andryuk@amd.com,
 "S32@nxp.com" <S32@nxp.com>
From: Andrei Cherechesu <andrei.cherechesu@oss.nxp.com>
In-Reply-To: <PA4PR04MB956574A1DD21388CB1632481F9812@PA4PR04MB9565.eurprd04.prod.outlook.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AS4PR10CA0026.EURPRD10.PROD.OUTLOOK.COM
 (2603:10a6:20b:5d8::20) To PA4PR04MB9565.eurprd04.prod.outlook.com
 (2603:10a6:102:26b::13)
MIME-Version: 1.0
X-MS-Exchange-MessageSentRepresentingType: 1
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: PA4PR04MB9565:EE_|PAXPR04MB8592:EE_
X-MS-Office365-Filtering-Correlation-Id: b3a6aa4a-b3d4-4a92-1c57-08dd8699102f
X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True
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?KzgvdVpKcGZ4dDdsYWZCR2NUQkdVbnhBa2IvTXg2b0U1b1R4aWs3M3g3eWR0?=
 =?utf-8?B?b200aStaM25iMlN6bDdKaER0TERwNitJL3pYY0RjKzdwL3dXUkFENnA0Rkxm?=
 =?utf-8?B?ZjgwZ25QY1BLOUZFeWNnOVduMGorNVJEa3c0VVFZN0VGSGhiUlVvdEhuMXpl?=
 =?utf-8?B?blo0ZHZUTVViT2pIU2tCT1NrMnc0U2wwa1E2cmlkYkpvSzRrWnR1RFhOT2tO?=
 =?utf-8?B?U1BUUmtVMkQ0TWIwVTEycnh4ck5sMFdLc3UvcEJXUmJBSjBIT1FGZTlxWXZh?=
 =?utf-8?B?eWVOaGRiWlV0UnNmSkIrbllPL2xzaWh6bW5Wa2J4ZEJ4UWNOVVo2dUVUQkti?=
 =?utf-8?B?SGYwL2FLR1NBcm90bEFBbURUbXk0KzdjQ3lPSFIrM1lYaHpaekZ0VExDRHNO?=
 =?utf-8?B?RWlQK282ZXBwejY2bWNTU1hQdHNLdTBXY29uWXJBVFI5MG5iZm84dEEzcTlp?=
 =?utf-8?B?YmhKai9oWE1CeFliNE5neE9ocXJqMXo5dlRuZnVSVnBJcGpkdC8zTmVJaG8r?=
 =?utf-8?B?T2VrTkVKcDNlb1F5TXk4ajB4RWRWcmxiZ1BDYm5CRlhQdGhEejhoNVpreFFZ?=
 =?utf-8?B?QkNEVUt6amUxdE5wTk1VM2JEMnFRMmxhdzdSTFpHc2RHeUx3K3NxZXVjYkZP?=
 =?utf-8?B?bVZwbnU3TnNyci84WDJtL0hWREJVOWk4UkxRTml6RWhlS0RxNWxkZ1ExaC9u?=
 =?utf-8?B?MW9tVXVnSXNkZDdsVllSRTJOMFNnOCttaTZmaFdGcXBEY1lLcWE3cWdDdFFm?=
 =?utf-8?B?Sk9Gd1JEN0lleG9nNTBQRkJ0SEFoWTZMOEpUakVJM1NzaDFxNDZEYVhVOU55?=
 =?utf-8?B?dUtOczJMcFlucW54TFc2dUNFWDhsaFRWNHBrdlkrUENWWVpkQ1RVTUFla01S?=
 =?utf-8?B?M3RPaVRlTWVQSGViNUh5SE1HaExRdk9yQmhvQWhQMWx2dUZQT2JGWStXMXFT?=
 =?utf-8?B?NjR0M3NzeVpjR1RyOHh4RzB4L05WY29sakVmcDF2eXd5VGJQeTlWclVPWWJq?=
 =?utf-8?B?RGNFd21kdHVoUkNKcGU1QS9pNHcrMTFYSmtCRmY1M3VyeWluKzJ3Yk45YUFH?=
 =?utf-8?B?VkFvUngrRlFzaVRsczhlSDBmdDlxekxXWGdMdDJNQy96bDVkcm5HU1RudUoz?=
 =?utf-8?B?WlhGZ0RWd1NFaWVSTmlaNVFoK3NHWHdCSW1PNkd2WGJnK3l0RHBxVkdVUE5I?=
 =?utf-8?B?WEt1QlhXOWdsSnNPVHdGSVEyZEh1dmxENS94QlV4RGJKOER2cjR5aThjeCtZ?=
 =?utf-8?B?aHViRll4RXdKVXJKZUlJeklSMHoxR3IzdEcrWjhWMzZXUjVLZ1U1cWRBS3Rz?=
 =?utf-8?B?V2pyQUc0b25KN2s5bmRFS3M5eUVkeEswSHJRQUwrVHdhWXVtTDJ4bmFUeG1z?=
 =?utf-8?B?THBweE05eXNHbGRBb1hQSWxxc1dhZ1FSdEl3MTR6QjU0RmdlTUNnZ2dCVkwy?=
 =?utf-8?B?NExoelo3cldIR0IzTXRzSk9VNjlkY3RndUlaS1RYZzJRZzVyQ0VoYk02eWVi?=
 =?utf-8?B?TXU1UTU3Mk80WlZIRjdUakMvYU5rWFNlclIvQWVNZ2tNRW1YR05yNjNjTW9i?=
 =?utf-8?B?djVUTDArQ0lMU0FKMzA1NUVNRTBsWTdZU3B3R0Y0U2JQSU1oNmd5RmFQdzhF?=
 =?utf-8?B?dVlHZzVYY3dIdlVPOENHM3JPWWNmbFRDd3NZNUVQaGIxdStxVG13MFMwdHhr?=
 =?utf-8?B?UGl4TmJiODJndXhneXhYSVdUR2IyT05PQ0ZxblRDb1JMRDR6RVgrL3NFVXZX?=
 =?utf-8?B?QWRURXB6OG1TcndDTXZnQ2p3YzVkUjduR0JMcVliVHJXWHFuMkxiRnJrbGdk?=
 =?utf-8?Q?QeeUCO4eXfKMLMy/JOJM2aB+1ZxEa/V8PUvEc=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PA4PR04MB9565.eurprd04.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?aGJ6M3ZuNnByN0ZJcmwwc2lraTdOTjgxRXkvUncvS1lRNnlJbFk4MmZ1ZTRm?=
 =?utf-8?B?bm1lek5Ic012TTU5eVJxZWRHak5sSnZVOEhBMWh1dHdNcFUwQ0x6eVdtSzlK?=
 =?utf-8?B?NzRPbnhIMzBmZ0NRL3kzdHY0MXRTeVBFRTQwZW9rRjZsam5mRmcvenpwb09S?=
 =?utf-8?B?NWRMZVlscFpSRHVpN2xibVdXc3pjUXVyZXZ2c3J5bDA0bUtSN0w1ZG9pSUlk?=
 =?utf-8?B?TVMrZmZRYmZQNU9lb2lmanZmamNOcVFlQSs3UFFHUGhxcmQ1TXk5aWxIQ0lt?=
 =?utf-8?B?UjB5OHl0cCtEZUNPZ2IwaDM1cUFmdHlDM3VxWjlCbXFPb1FsS0J2Z3M0MVQ3?=
 =?utf-8?B?T2dha2hBY2dQVDFsa0pERW1QNlpySno2NkZraEJ4U2Vud0lBTHIyWlE1eDlT?=
 =?utf-8?B?Sks5QVMrb2lQWk5Fc0tyTWJxczFUYXdTWHdlY3d0RHptRFE2bjBIbVhJRS83?=
 =?utf-8?B?UXFMUk5FamRFWG1MbEJTd2xZdGZEK1N1NGxVOGx0M3k0c0d3QVRyMFQrTFFN?=
 =?utf-8?B?ellwdzdYWDFseGFTZzFIMmNhZEpubCtwQTRKbktmb0xIRm5GZGxkWThUeTUz?=
 =?utf-8?B?K1dQWVNhc0drT0NXOFYxZVlzYjRjblJPRkFMck94aWFGaCtFZG90VnJad2tk?=
 =?utf-8?B?UFBCTUI4ZTB6Um1MOWE3ci9YS0VWSEYxVklMT1M3V0V1WlE0T250cGs4eHRK?=
 =?utf-8?B?QnQrNWJGYnRWRGVma0xQUlZFKzlPdFgvZE5rNDFKcmNFZHFwcG4rTm9sdWcz?=
 =?utf-8?B?Z1lTazNBV3N6d1BpdHAwWTlRRjc5UFBSSDJqaHdLempZbjd3Q1E2Yk5ER1Jn?=
 =?utf-8?B?VHFrWWRYU0ZWRUNKK1VTKzR4T2VJZEQ4UkpvNlpwbjZwUXhtRnRiM3Y4RzQv?=
 =?utf-8?B?bkcxOVBTbm5yZjNwRkNvYzlMTENGTVpTV3ZkZ0h6dEZVM1MvNHpZcVZTZnlE?=
 =?utf-8?B?SWtxZ2xhaDB1VzM4Vm5CcUw5Z3VvWURjMGRhK2NpVjh0dDJMeVY4NjNHS2pl?=
 =?utf-8?B?KzEzODhHeW5iUU5pUVpCY3JoVmtvQkdDMW1mcXdzVUk1bWpzN0FPVm4wRzZ4?=
 =?utf-8?B?S1NtVFBmUkJqN3EyMTdZUU93OEVxbHdhNFpXYlNaRHIzek1yNTZHRXJLQlds?=
 =?utf-8?B?clNKSkc3WUxxc29vbGFveFdpdlg2QVZoQ1NWZDJCVnMzWEZrU2JJeHdjVXlI?=
 =?utf-8?B?enBUeUxBWHQ2K0ovb2pVeHNrZ0FxODJNalhqZU40dUpzN24vSzl3UWJHMlN4?=
 =?utf-8?B?QkVzYm9JcXNhRlQ4c2U1QkQxN0dvK09JaERoUUdEcjh5MzVqUVB5QTJIN3Ja?=
 =?utf-8?B?NG8xQnZmdmpOMmNTdCtLUHFKY2wwd0pKK3lQcnIwd0dhalNEZEFlU05uUGFn?=
 =?utf-8?B?d04vczk0NmZ6YUpQKzVlcnRzTnJ4alZvazdsL1lra1ljcmdOTVY4aFcvamVL?=
 =?utf-8?B?Z25Gb1RkR0syWTBpeWY4VWowcEtXN2RMdTExNU9JcVBPMUN1cWpURW5veGhM?=
 =?utf-8?B?K0dxL3dKS0tKMWJaYmFBTkpqWi9qcWk3VktxQ24xVFhnNDgrSmFSc0NJYi9B?=
 =?utf-8?B?eURsUlN6SlpiT21oZmQ1YUp2bndxdzNDdU5FQVpNbmh4UmJGalBpcktMeXJm?=
 =?utf-8?B?anhVMXRGQTRPa3orRHd4TEhGRWFJY3lsN1VVUjVneDZKeUR3Q05xd2RKbWE1?=
 =?utf-8?B?b1cyaDhmUEsxV0ZUZ3RoMDkvT1Z5TWF4VVoycU1idVlWQ1Ewa01JT3k0THZR?=
 =?utf-8?B?aGYzcTVvV21tZ3paR1dWNEZqb1JYc0FsNzFNZHlPQjlsL2prUEdWL1BjN0Nu?=
 =?utf-8?B?TXR1b1FlMlFmRGRJeXc4QXMvUXZpdmxYV1ZsSnArV3AxOWhNTXdLWTY3MHpu?=
 =?utf-8?B?ZjFyVnlkSFEyRXA5bG55bGFDSFpLSlYxczRvcWFHRlkyeGg3VFR2ejBYdG0r?=
 =?utf-8?B?Nlg4akRya2RHNkIrb09nUnhvRlhOeVNsempueHNlVVJSS3ZqanNIOUk5VUFy?=
 =?utf-8?B?SHhIakozRjU1cXljVVBWbjBPQlRzaFNQVm5idDZXK1kwc2didjFTenJKRFhG?=
 =?utf-8?B?ZEdNOHd1SkFDVkt0T3hjVENGK05kVVJHWkNHRlJTQkVvdWhYbXJNNG9HU00y?=
 =?utf-8?B?aW5ESkhQckZzdFJZd1VDN1hFZzdJV1NlcUc1a3lTZ1BVS2oxK0VNRnpINmVX?=
 =?utf-8?B?SEE9PQ==?=
X-OriginatorOrg: oss.nxp.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b3a6aa4a-b3d4-4a92-1c57-08dd8699102f
X-MS-Exchange-CrossTenant-AuthSource: PA4PR04MB9565.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Apr 2025 21:10:11.7686
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: i7nmq6hbpiw/w2K/LhuSUnznRa7JzRfJ6tMxM1X3v2wTb4GLm0cl5FBzO8CnCp91Visn4WeOX4rTGcGgUCUYKkhp6uZI938zqsCkyAOSDPQ=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR04MB8592

Hi Stefano,

On 28/04/2025 23:55, Andrei Cherechesu wrote:
> From: Andrei Cherechesu <andrei.cherechesu@oss.nxp.com>
>
> Normally, the Imagebuilder would precompute the sizes of the loaded
> binaries and addresses where they are loaded before generating the
> script, and the sizes and addresses that needed to be provided to
> Xen via /chosen would be hardcoded in the boot script.
>
> Added an option via "-s" parameter to avoid hardcoding any
> address in the boot script, and dynamically compute the
> loading addresses for binaries. The first loading address is based
> on the MEMORY_START parameter and after loading each binary,
> the loading address and the size of the binary are stored in
> variables with corresponding names. Then, the loading address
> for the next binary is computed and aligned to 0x200000.
>
> If the "-s" parameter is not used, the normal flow is executed,
> where the loading addresses and sizes for each binaries are
> precomputed and hardcoded inside the script, but the loading
> addresses and sizes for each binary are now also stored for eventual
> later use.
>
> Reserved memory regions are left TBD in the -s case.
>
> Link: https://lists.xenproject.org/archives/html/xen-devel/2022-09/msg01862.html
> Signed-off-by: Andrei Cherechesu <andrei.cherechesu@nxp.com>
> Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
> Reviewed-by: Andrei Cherechesu <andrei.cherechesu@nxp.com>
> Reviewed-by: Denis Mukhin <dmukhin@ford.com>
> ---
> Changes in v8:
> - remove quotes in heredoc
> - change memaddr to hex for readability
>
> Changes in v7:
> - use $()
> - better description and alphabetical order
> - use heredoc
>
> Changes in v6:
> - make initial ${memaddr} setting depending on CALC
>
> This patch adds quite a bit of complexity which is the reason why I
> didn't originally commit it. Now that we are enabling ImageBuilder in
> Yocto, it turns out this patch is required because Yocto invokes
> ImageBuilder before all the binaries are ready and available.
>
> Andrei, sorry for taking so long to realize why it is essential, but we
> are getting there now.
>
> The changes I made to the original patch are purely to make it simpler
> to maintain.
> ---
>  README.md                |   2 +
>  scripts/uboot-script-gen | 181 ++++++++++++++++++++++++++++++++-------
>  2 files changed, 152 insertions(+), 31 deletions(-)

Everything looks good to me, briefly tested it locally as well.

Regards,
Andrei Cherechesu




From xen-devel-bounces@lists.xenproject.org Mon Apr 28 21:24:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 21:24:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.971197.1359669 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9Vxm-0000nY-FA; Mon, 28 Apr 2025 21:24:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 971197.1359669; Mon, 28 Apr 2025 21:24: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 1u9Vxm-0000nR-CC; Mon, 28 Apr 2025 21:24:30 +0000
Received: by outflank-mailman (input) for mailman id 971197;
 Mon, 28 Apr 2025 21:24: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=DEkc=XO=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1u9Vxk-0000nI-Hc
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 21:24:28 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on20617.outbound.protection.outlook.com
 [2a01:111:f403:2412::617])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 27c1a025-2477-11f0-9ffb-bf95429c2676;
 Mon, 28 Apr 2025 23:24:25 +0200 (CEST)
Received: from SN7PR04CA0074.namprd04.prod.outlook.com (2603:10b6:806:121::19)
 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.8678.34; Mon, 28 Apr
 2025 21:24:19 +0000
Received: from SN1PEPF0002BA4B.namprd03.prod.outlook.com
 (2603:10b6:806:121:cafe::6) by SN7PR04CA0074.outlook.office365.com
 (2603:10b6:806:121::19) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.36 via Frontend Transport; Mon,
 28 Apr 2025 21:24:19 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 SN1PEPF0002BA4B.mail.protection.outlook.com (10.167.242.68) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8678.33 via Frontend Transport; Mon, 28 Apr 2025 21:24:18 +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, 28 Apr
 2025 16:24:17 -0500
Received: from [172.25.248.240] (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, 28 Apr 2025 16:24:17 -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: 27c1a025-2477-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Z74swt1c2HTYw7aHxsFkaLteri5r12cLDvJhBbd6ksO2HGetYB1dohNrgsVbUPU3HLLsyrKvYj4JilzApur/lAOqd4FbwzGcSEKILLkPbMMYHLWI72kj1ek+SY5UNUtZ/ceIPBQHs+BPBVgynVXZOmS39LKnFSRxgc2StV1z/n+LOs2Zl8VhAU6UKQRmugj7Iq416UiSkHnhD2f8z4zpFil75QMT3t7YEFlHbG6uo7QbE+iFH2fhvf4LHyjEutp317lOu065Wx1QXlo45SXZm/Y7kZAYk4hRb7VmqEcSAbmsfhNsbW564aLYxdfmdyq+lzUy1Delofb2C+G/cb0hkQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Y3byd3yNyi0rP6Vcx1i8DXhRwYJnAy64H5JrqmQiWUQ=;
 b=B9FT533++skF0EYLOO7wRh/MsBWeXBUVIhB6y80k6WJNjZflWmbUyQu3hiu4OfPtXwoPhXcimGlJkDZ6Ypox40Z27xwaD/tO4/618iSblPJE/rk7LBrfcGWr0vRkkl4Y9ICMi5R0Q7qw79IecOamAALq2D+0YZMz2PbffWQPev8yVA5TRJbe5nTpBuUNEc0HQ64ot752p+xqUap+3eHSM0suyLBQPmWifB8f5Q5Wp6VtjK2WuS3/us17Iz5kKLUAywjqu1fhZKtPDrn0PtHzpO9ODi7DroCfLsd27yW98HJfL4sjcjGFMnJqeNMtfY+Fuo+TYq252jN7XHSOjfO7Hg==
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=Y3byd3yNyi0rP6Vcx1i8DXhRwYJnAy64H5JrqmQiWUQ=;
 b=okRHPSaLnN3ZYnqbxhSLjMxelea5GFck0jrm0GO8LSGQJZg0FOgERk/X0T79GAMSn3iZYkrS6AvA/Cf9aVpnsU/HKKzQjERK7//bboG5Idzy6FnbmFqnfVMkdk9ZsNCL2qKJw79mlQ/J6V189Wrw1Rk4kjeBCsslpTU3VBM527g=
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: <7e9e0624-f684-444f-8b87-41bf423a91c6@amd.com>
Date: Mon, 28 Apr 2025 17:24:16 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86emul: avoid UB shifts in FLDENV/FRSTOR handling
To: Jan Beulich <jbeulich@suse.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Fabian Specht
	<f.specht@tum.de>
References: <c8eaa6aa-d63d-471c-b66f-6a8c00e03ba1@suse.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <c8eaa6aa-d63d-471c-b66f-6a8c00e03ba1@suse.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: SN1PEPF0002BA4B:EE_|DM4PR12MB8475:EE_
X-MS-Office365-Filtering-Correlation-Id: 228ec1b9-bbab-4684-8331-08dd869b08f6
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|36860700013|1800799024|82310400026|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?a3dURDFtOXZvZzNrcnp0NlA0NkZUSjdkYlRaNGJleTdCWW9aTTZYSHRiSEI0?=
 =?utf-8?B?aG50djR6M05Pd2FZeVRhck5tOSttMEhpa28rVVdjNWUyczRCTW9Fb1JSV2F2?=
 =?utf-8?B?MlRqL1k4M3dSUk5wRHhwY3ZhbDF1OC9GdDlVSGJYMktwTjZSQ0FmQklTV25D?=
 =?utf-8?B?UWhnM2VaZGJMWkdLTlFvTFpoZldmUE1XZ2JBdEhPc25RT3NldUU5QVZtL0l4?=
 =?utf-8?B?MUhRVUk5K2JkOTR3NGlkWkdnMnZpYm8xSE5wdWt6NHhZeTRVVkl3OFVEYmw0?=
 =?utf-8?B?dFAxdXlJY1ovOEx2L3FUY2U0Yk83a1ZyQnB6VXVNYm5GTnAySlFuQ0RzaG1F?=
 =?utf-8?B?RlNkTXpHNHNhTExpMlBlcGlRNWdzb1E1MlRidEhyQlh3TWYzbW80WE5yZzk0?=
 =?utf-8?B?ald6anM0d3F3QWkrZ3hhWnllSzFreGExSGY1NWRNODdyRGs2NTYzbSsvQ2g3?=
 =?utf-8?B?VjFOTWJ6cDBpam1sVGFZclpHZGZMbDlSdGkzOVEzbjBhaEIrdGFUTGk0RGFI?=
 =?utf-8?B?Q1d2ZVdQYVloNXhjZ05EeFlhSE9jZ0UwYjBFMTRFWVAyc1Z5Z2RlTlVGVytB?=
 =?utf-8?B?azVqcXVSL09Va0dwKzc3MFlUZFRyL2w4KzZlQmZGZVRMUWFCRVNOTXRkbDdY?=
 =?utf-8?B?NEtPWGJ5NUJSYlh3L3pRQitldlRhRFRsdXdSNFYzUTM1SFU4UEZudlpDejZO?=
 =?utf-8?B?QnZta0dqdkRHVEZGUy9uZWhTdG8yelV0VHdJZk1HN1V0b29BTUVmTHR4eWY1?=
 =?utf-8?B?Qi90QzBjd1ZtRFJSaDgxUUdPM0xtZTNnQ0NiYy90Y25iYTV4S3FLcEF5NmtY?=
 =?utf-8?B?Q01tMzFlVnFXWEYxc2ZYeldsN1UzRGpxdHZXNVpEbHViNWJ6MndBZ1MwSndJ?=
 =?utf-8?B?Y2htaXJ5VGxEMUlVY0YxRGdUd1VHZTBRWG1ROC9LVHlLa3NKZUhCWnoybzZR?=
 =?utf-8?B?bHE4YmxvL21BaU50WisxTHZiV29qenJoR21FQkRjdjlDSm5ubVdhUWNhNEtj?=
 =?utf-8?B?Tlpma2FPSUZBZUFGOWJQUXgrMEVNOWNBVUlXU0toU1BrQzNhdlN4U1RRUS9o?=
 =?utf-8?B?Z1ZrUzhaTy9OV0Z1UzBPN0pYdC9rMU1Mdlh1RW1IYzMvYTU2V1V2Qi8zcE94?=
 =?utf-8?B?YkNGTi9sZWNBN3hXbUx2enF3U2JINlJhYXV5WFREdmI5akxGclA3Zkc5VCto?=
 =?utf-8?B?S2trM3RJdG4vMWt1Sk9INVI3RlgyZDJqY3hiMnlkZkFoUHk0VXgyQjYxaC9u?=
 =?utf-8?B?QnJFMC9NbFlTOEFPR09INW0yZzdzYXRDQnI5cktCYTkrRHNKUm0rdjJobTZx?=
 =?utf-8?B?cjk5bG9oY3BLeWRsQUhsVlRoN2RhNFhldGpiWi9pZk55TXZubXQzaGlaKzBV?=
 =?utf-8?B?UjBpaUlHZUNSSXVqUmpMU0MxM0MxSXBXOEg4aU1nYS9EOGdOeG56TVRRd1Fs?=
 =?utf-8?B?OFZ5bTYvajdjUkNMTCsyL3N4dzcxTndSc0FOWHVwMUt0UVB2MVpuSnIwa3hJ?=
 =?utf-8?B?bVZLKzU0MFNCWGJxbGgwc0hJdXBpbmFSd0htZmdTQlhEQmNhSjBxSEp5WUJB?=
 =?utf-8?B?TU1kODl6dHpqTVYwNG1JZm1mdlRpMC9zYk5XQkpKMmNrLzF0N3ZldFM0Y29t?=
 =?utf-8?B?OGlEOW5vMTVuVWpOY3YzM0VvT0JpbzlMa2RPZlRpRWEzdko2eWVFcWVud1B3?=
 =?utf-8?B?Y3A2ZHdieDFDczgwWDE0eTg0UVFBWEZOcHAwS2hpK0xMTWhLQ01nK1l3VFVT?=
 =?utf-8?B?cklOZlYyR2I1S2prRG5SQm9LUWJydDNDdzdvYWhrRU43ZzhwdjNWek1MZU5t?=
 =?utf-8?B?ZHBHQ0dueWNSN0V4ejFZeC9WTFZBUEl5N3M4WS9jRG82TS9hOXF2UHV5SXA0?=
 =?utf-8?B?ZGRyWEJkbjFGRGdjSVF1d3ZES3Z1aFFYcW9aY3RiNEFBY3BLY3pMN0lSekpG?=
 =?utf-8?B?RVlNN3NGdkpHMVNGSjlhRXA0QzlvbVYzaDVVZnkrU1dNVE4xUEhXQklFSEJE?=
 =?utf-8?B?RnNUWFdjYjdYcktIQUNKM1hMcEp0bVNpcG95TGlLd2pkcThHK1YzaTlLRU9H?=
 =?utf-8?Q?ZUaPh3?=
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)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Apr 2025 21:24:18.4196
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 228ec1b9-bbab-4684-8331-08dd869b08f6
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:
	SN1PEPF0002BA4B.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB8475

On 2025-04-28 07:29, Jan Beulich wrote:
> 16-bit quantities, no matter whether expressed as uint16_t or as
> bitfield, will be promoted to plain int before doing any arithmetic on
> them. Shifting such values by 16 will therefore shift into the sign bit,
> which is UB if that bit becomes set. To account for all reads and all
> writes accessing opposite members of the same union, introduce yet more
> local variables to reduce the shift counts to 12.
> 
> Fixes: be55ed744ed8 ("x86emul: support FLDENV and FRSTOR")
> Reported-by: Fabian Specht<f.specht@tum.de>
> Signed-off-by: Jan Beulich<jbeulich@suse.com>

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

Thanks,
Jason


From xen-devel-bounces@lists.xenproject.org Mon Apr 28 21:39:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 21:39:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.971214.1359679 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9WCR-0002og-QP; Mon, 28 Apr 2025 21:39:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 971214.1359679; Mon, 28 Apr 2025 21:39: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 1u9WCR-0002oZ-Ns; Mon, 28 Apr 2025 21:39:39 +0000
Received: by outflank-mailman (input) for mailman id 971214;
 Mon, 28 Apr 2025 21: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=0nMS=XO=zytor.com=hpa@srs-se1.protection.inumbo.net>)
 id 1u9WCQ-0002oR-1Y
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 21:39:38 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4620e172-2479-11f0-9ffb-bf95429c2676;
 Mon, 28 Apr 2025 23:39:35 +0200 (CEST)
Received: from [IPv6:::1] ([172.59.161.110]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53SLcqMl4064505
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NO);
 Mon, 28 Apr 2025 14:38:53 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4620e172-2479-11f0-9ffb-bf95429c2676
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53SLcqMl4064505
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745876335;
	bh=sQ20RzlhTI2OdKKrz143XBlONGa/0jFWo7zJXCXWAL0=;
	h=Date:From:To:CC:Subject:In-Reply-To:References:From;
	b=Y6dnSHnXkUStIgQVLFjFl/WxtubC4hEnVTp85eiu8hU/NXH7XMpJhcipi75ddaUXx
	 /NgJZdBwG4YGgALW2ZBuc2ItVhSmmt6hLAaLrXrgK/va0SIroYA/dZXlbfOC88E16n
	 ZH57S0ih6uCYhIIjqdhcg+zm2QALg0xS6Kn/ggUeXIpGMR1N1n6nxRZAXeLwRcS2PU
	 +3eg0CL929Iy9x67h00wm229TzSUPUuBOjliEmd4xzgnb3s0obM8+coBaCMVyUcIqF
	 bFChKrimnVYWirmjS9R+wtq1Tvf6r8kViKzsT3/5clVBlgSfFshY1zVI64ghckqW/p
	 qvLCC7ylrKxUw==
Date: Mon, 28 Apr 2025 14:38:46 -0700
From: "H. Peter Anvin" <hpa@zytor.com>
To: Linus Torvalds <torvalds@linux-foundation.org>,
        Ingo Molnar <mingo@kernel.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Arnd Bergmann <arnd@arndb.de>,
        Arnd Bergmann <arnd@kernel.org>, Thomas Gleixner <tglx@linutronix.de>,
        Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
        Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org,
        Juergen Gross <jgross@suse.com>,
        Boris Ostrovsky <boris.ostrovsky@oracle.com>,
        Alexander Usyskin <alexander.usyskin@intel.com>,
        Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
        =?UTF-8?Q?Mateusz_Jo=C5=84czyk?= <mat.jonczyk@o2.pl>,
        Mike Rapoport <rppt@kernel.org>, Ard Biesheuvel <ardb@kernel.org>,
        Peter Zijlstra <peterz@infradead.org>, linux-kernel@vger.kernel.org,
        xen-devel@lists.xenproject.org
Subject: =?US-ASCII?Q?Re=3A_=5BPATCH=5D_bitops/32=3A_Convert_variable?=
 =?US-ASCII?Q?=5Fffs=28=29_and_fls=28=29_zero-case_handling_to_C?=
User-Agent: K-9 Mail for Android
In-Reply-To: <CAHk-=wgJfWfWa2NTiTmev+Xr=e8Uo=aFkrXujLAQBVAVN-VigQ@mail.gmail.com>
References: <20250425141740.734030-1-arnd@kernel.org> <aAyiganPp_UsNlnZ@gmail.com> <d2b0e71c-e79b-40d6-8693-3202cd894d66@app.fastmail.com> <CAHk-=wh=TUsVv6xhtzYsWJwJggrjyOfYT3kBu+bHtoYLK0M9Xw@mail.gmail.com> <CAHk-=wgfk69H-T-vMWR33xUpVsWJLrF34d0OwUXa2sHhtpSwZg@mail.gmail.com> <e54f1943-e0ff-4f59-b24f-9b5a7a38becf@citrix.com> <CAHk-=wj0S2vWui0Y+1hpYMEhCiXKexbQ01h+Ckvww8hB29az_A@mail.gmail.com> <aA8nF0moBYOIgC5J@gmail.com> <aA8oqKUaFU-0wb-D@gmail.com> <CAHk-=wgJfWfWa2NTiTmev+Xr=e8Uo=aFkrXujLAQBVAVN-VigQ@mail.gmail.com>
Message-ID: <B364FF6D-DFCC-42A7-ACA1-6A74E27EE57E@zytor.com>
MIME-Version: 1.0
Content-Type: text/plain;
 charset=utf-8
Content-Transfer-Encoding: quoted-printable

On April 28, 2025 9:14:45 AM PDT, Linus Torvalds <torvalds@linux-foundation=
=2Eorg> wrote:
>On Mon, 28 Apr 2025 at 00:05, Ingo Molnar <mingo@kernel=2Eorg> wrote:
>>
>> And once we remove 486, I think we can do the optimization below to
>> just assume the output doesn't get clobbered by BS*L in the zero-case,
>> right?
>
>We probably can't, because who knows what "Pentium" CPU's are out there=
=2E
>
>Or even if Pentium really does get it right=2E I doubt we have any
>developers with an original Pentium around=2E
>
>So just leave the "we don't know what the CPU result is for zero"
>unless we get some kind of official confirmation=2E
>
>          Linus

If anyone knows for sure, it is probably Christian Ludloff=2E However, the=
re was a *huge* tightening of the formal ISA when the i686 was introduced (=
family=3D6) and I really believe this was part of it=2E

I also really don't trust that family=3D5 really means conforms to undocum=
ented P5 behavior, e=2Eg=2E for Quark=2E


From xen-devel-bounces@lists.xenproject.org Mon Apr 28 22:19:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 22:19:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.971230.1359698 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9Wog-0000GX-No; Mon, 28 Apr 2025 22:19:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 971230.1359698; Mon, 28 Apr 2025 22: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 1u9Wog-0000GQ-LM; Mon, 28 Apr 2025 22:19:10 +0000
Received: by outflank-mailman (input) for mailman id 971230;
 Mon, 28 Apr 2025 22:19: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=u4d+=XO=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u9Wof-0000GK-Ae
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 22:19:09 +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 ccc7b453-247e-11f0-9eb4-5ba50f476ded;
 Tue, 29 Apr 2025 00:19:07 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by nyc.source.kernel.org (Postfix) with ESMTP id 9EBE3A4B81E;
 Mon, 28 Apr 2025 22:13:38 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 20138C4CEE4;
 Mon, 28 Apr 2025 22:19:05 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ccc7b453-247e-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1745878746;
	bh=opO4jp48O5uNHfVcbX4oUeAEz+raeEudFiS8ybjk8bk=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=YEku2TpEc4rVbSAWz22fM5Fpm0+AtwLyHnnYXVBU9qSLUpLvlLdjRaZ/uWKgvUkLl
	 652NGpb5yFzN5vPQWeW0eCt9pCYf2Gll9DUfvQ+LD1MLrckAgEL3ZVvHwxS3+stncD
	 vS6mtFicysV4Nr3+be1vgixJzEA0nzE2zhcVSw42fbHJ8PHN21UuSVbupHBpIuuWRM
	 CbfSO8Ek9scwIeKaHZxIIXvXGROdOfiX22YGL3sFAmBR3d6bK4RsTmlHG9AacfmLeq
	 +dxVqaT8+eGUXuA/zT4ZQU8nqtCkAPZI8fF+er/OFJa7a37UehM4PgFptm5ebSj8+Y
	 pi7SltVBL+jSA==
Date: Mon, 28 Apr 2025 15:19:03 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Andrei Cherechesu <andrei.cherechesu@oss.nxp.com>
cc: Stefano Stabellini <sstabellini@kernel.org>, 
    Xen-devel <xen-devel@lists.xenproject.org>, 
    Andrei Cherechesu <andrei.cherechesu@nxp.com>, dmukhin@ford.com, 
    Michal Orzel <michal.orzel@amd.com>, jason.andryuk@amd.com, 
    "S32@nxp.com" <S32@nxp.com>
Subject: Re: [PATCH v8] uboot-script-gen: Dynamically compute addr and size
 when loading binaries
In-Reply-To: <f4cbcb7a-cc60-40f6-84dd-96d0d7d008ea@oss.nxp.com>
Message-ID: <alpine.DEB.2.22.394.2504281518580.785180@ubuntu-linux-20-04-desktop>
References: <alpine.DEB.2.22.394.2504281312280.785180@ubuntu-linux-20-04-desktop> <PA4PR04MB956574A1DD21388CB1632481F9812@PA4PR04MB9565.eurprd04.prod.outlook.com> <f4cbcb7a-cc60-40f6-84dd-96d0d7d008ea@oss.nxp.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Tue, 29 Apr 2025, Andrei Cherechesu wrote:
> Everything looks good to me, briefly tested it locally as well.

Thank you! Committed.


From xen-devel-bounces@lists.xenproject.org Mon Apr 28 22:47:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 22:47:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.971243.1359708 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9XGD-0004gH-S4; Mon, 28 Apr 2025 22:47:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 971243.1359708; Mon, 28 Apr 2025 22: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 1u9XGD-0004gA-PA; Mon, 28 Apr 2025 22:47:37 +0000
Received: by outflank-mailman (input) for mailman id 971243;
 Mon, 28 Apr 2025 22: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=u4d+=XO=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u9XGC-0004g4-5q
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 22:47:36 +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 c5491aa0-2482-11f0-9ffb-bf95429c2676;
 Tue, 29 Apr 2025 00:47:33 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id A65DE5C63F5;
 Mon, 28 Apr 2025 22:45:14 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id E1084C4CEE4;
 Mon, 28 Apr 2025 22:47:29 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c5491aa0-2482-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1745880451;
	bh=lVB+zbkL6tNab2bg5504SQvzXNn0GlEGb7EWxDuiTIw=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=kLZNSwiRkBOrBHjrpJeNBeX8BuFKktnb7f28y4hd3DtvCJkZ27+msnt4/DV5ylMMS
	 xZzBExKgDL/jHnEqNS4/QWv8lZp8Cc52iYO9HBRlTcVzWD2AarbmBHUwsvScWCClYb
	 Oi9EctH3qMye/DEZhv4oIDHb1Vs7kcTD6JlawqfBsYusmfiiIU5W+A46+KzprMn3v5
	 NJVfEx1irZLB/oKJqxQDujy/YdbMlhsU6vt6/zwkqIesMADb30v/FwsYzl/NGZVfvN
	 QCoyHikT0kWZaDfLJmOlLCsQBnjt3esmYsoBBNGqfgCgnrwuClhKvxrS8XzwGLD9cw
	 iusmRKdvnb9/w==
Date: Mon, 28 Apr 2025 15:47:28 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Victor Lira <victorm.lira@amd.com>
cc: xen-devel@lists.xenproject.org, 
    Federico Serafini <federico.serafini@bugseng.com>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    Anthony PERARD <anthony.perard@vates.tech>, 
    Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, 
    Julien Grall <julien@xen.org>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Nicola Vetrini <nicola.vetrini@bugseng.com>, 
    Bertrand Marquis <bertrand.marquis@arm.com>
Subject: Re: [PATCH v1 2/2] automation/eclair: add Rule 14.3 to the monitored
 set
In-Reply-To: <d5e278584038bb8410bf81d0c67ebfbc5464caba.1745625477.git.victorm.lira@amd.com>
Message-ID: <alpine.DEB.2.22.394.2504281547090.785180@ubuntu-linux-20-04-desktop>
References: <5f2e316aae4667d1fe851e68552eb881c4d5a015.1745625477.git.victorm.lira@amd.com> <d5e278584038bb8410bf81d0c67ebfbc5464caba.1745625477.git.victorm.lira@amd.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="8323329-92807636-1745880451=:785180"

  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-92807636-1745880451=:785180
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8BIT

On Fri, 25 Apr 2025, victorm.lira@amd.com wrote:
> From: Federico Serafini <federico.serafini@bugseng.com>
> 
> MISRA C Rule 14.3 is already tagged as clean: add it to the
> monitored set to avoid regressions.
> 
> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
> Signed-off-by: Victor Lira <victorm.lira@amd.com>

Assuming the previous patch gets accepted:

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

> ---
> Cc: Andrew Cooper <andrew.cooper3@citrix.com>
> Cc: Anthony PERARD <anthony.perard@vates.tech>
> Cc: Michal Orzel <michal.orzel@amd.com>
> Cc: Jan Beulich <jbeulich@suse.com>
> Cc: Julien Grall <julien@xen.org>
> Cc: Roger Pau Monné <roger.pau@citrix.com>
> Cc: Stefano Stabellini <sstabellini@kernel.org>
> Cc: Nicola Vetrini <nicola.vetrini@bugseng.com>
> Cc: Federico Serafini <federico.serafini@bugseng.com>
> Cc: Bertrand Marquis <bertrand.marquis@arm.com>
> ---
> 
>  automation/eclair_analysis/ECLAIR/monitored.ecl | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/automation/eclair_analysis/ECLAIR/monitored.ecl b/automation/eclair_analysis/ECLAIR/monitored.ecl
> index 8351996ec8..ca2f5e3c7f 100644
> --- a/automation/eclair_analysis/ECLAIR/monitored.ecl
> +++ b/automation/eclair_analysis/ECLAIR/monitored.ecl
> @@ -53,6 +53,7 @@
>  -enable=MC3A2.R13.2
>  -enable=MC3A2.R13.6
>  -enable=MC3A2.R14.1
> +-enable=MC3A2.R14.3
>  -enable=MC3A2.R14.4
>  -enable=MC3A2.R16.2
>  -enable=MC3A2.R16.3
> --
> 2.47.0
> 
--8323329-92807636-1745880451=:785180--


From xen-devel-bounces@lists.xenproject.org Mon Apr 28 23:04:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 23:04:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.971255.1359717 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9XWk-0007uL-6R; Mon, 28 Apr 2025 23:04:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 971255.1359717; Mon, 28 Apr 2025 23:04: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 1u9XWk-0007uE-3T; Mon, 28 Apr 2025 23:04:42 +0000
Received: by outflank-mailman (input) for mailman id 971255;
 Mon, 28 Apr 2025 23:04: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=u4d+=XO=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u9XWi-0007u8-DX
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 23:04:40 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 289f6803-2485-11f0-9eb4-5ba50f476ded;
 Tue, 29 Apr 2025 01:04:38 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 1DC7E614AE;
 Mon, 28 Apr 2025 23:04:12 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9BE1CC4CEE4;
 Mon, 28 Apr 2025 23:04: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: 289f6803-2485-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1745881477;
	bh=LN0RaTRhK7QbAaiAIJcsUoQhSypONR/v7H0Mc+tlrpM=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=dKw3t3bC9RISOxwN862bdLB1SL7u6TiKBvbw1QXERAJKL9k2DvIEgv4FFi5r9gCin
	 WsiNHPTTQtE6AYVvh14bUEicSY4855lq2PbCjaeV1PHXA1NHzJTg2uLEH1P6plUPAR
	 S9tqXeMFKzR+QREf0XLFWavNEN7RTfhWCR6dGANtKesvb+qEtgWnnWiDpbAkfRLucX
	 Vy+XyuOmVkGLXN0LhKMpZB8P0MERkor7K1cPN1YfOUeu6DqqbMYagWtiLJ9keB2S/i
	 F/NDvagxzlS9+Okq0nP2rmlDhLeqTM6echB0U4Xot0Q7FsaUbOq4Dup31Kq8Zt2Ljg
	 ic4m4MCD0YtYQ==
Date: Mon, 28 Apr 2025 16:04:34 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Victor Lira <victorm.lira@amd.com>
cc: xen-devel@lists.xenproject.org, 
    Federico Serafini <federico.serafini@bugseng.com>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    Anthony PERARD <anthony.perard@vates.tech>, 
    Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, 
    Julien Grall <julien@xen.org>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Nicola Vetrini <nicola.vetrini@bugseng.com>, 
    Bertrand Marquis <bertrand.marquis@arm.com>
Subject: Re: [PATCH v1 3/3] automation/eclair: tag Rule 19.1 as clean
In-Reply-To: <7316cbef75cdd0726990bcb8b37cd10f3be62185.1745624090.git.victorm.lira@amd.com>
Message-ID: <alpine.DEB.2.22.394.2504281604100.785180@ubuntu-linux-20-04-desktop>
References: <c694069696dd428bc1719e36c378a573b03f74b9.1745624090.git.victorm.lira@amd.com> <7316cbef75cdd0726990bcb8b37cd10f3be62185.1745624090.git.victorm.lira@amd.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="8323329-482499094-1745881476=:785180"

  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-482499094-1745881476=:785180
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8BIT

On Fri, 25 Apr 2025, victorm.lira@amd.com wrote:
> From: Federico Serafini <federico.serafini@bugseng.com>
> 
> Tag MISRA C Rule 19.1 as clean to avoid regressions.
> 
> Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
> Signed-off-by: Victor Lira <victorm.lira@amd.com>

Assuming the other patches get committed and the rule is clean

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


> ---
> Cc: Andrew Cooper <andrew.cooper3@citrix.com>
> Cc: Anthony PERARD <anthony.perard@vates.tech>
> Cc: Michal Orzel <michal.orzel@amd.com>
> Cc: Jan Beulich <jbeulich@suse.com>
> Cc: Julien Grall <julien@xen.org>
> Cc: Roger Pau Monné <roger.pau@citrix.com>
> Cc: Stefano Stabellini <sstabellini@kernel.org>
> Cc: Nicola Vetrini <nicola.vetrini@bugseng.com>
> Cc: Federico Serafini <federico.serafini@bugseng.com>
> Cc: Bertrand Marquis <bertrand.marquis@arm.com>
> ---
>  automation/eclair_analysis/ECLAIR/tagging.ecl | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/automation/eclair_analysis/ECLAIR/tagging.ecl b/automation/eclair_analysis/ECLAIR/tagging.ecl
> index 1d078d8905..dab3c51faa 100644
> --- a/automation/eclair_analysis/ECLAIR/tagging.ecl
> +++ b/automation/eclair_analysis/ECLAIR/tagging.ecl
> @@ -78,6 +78,7 @@ MC3A2.R17.5||
>  MC3A2.R17.6||
>  MC3A2.R18.6||
>  MC3A2.R18.8||
> +MC3A2.R19.1||
>  MC3A2.R20.2||
>  MC3A2.R20.3||
>  MC3A2.R20.4||
> --
> 2.47.0
> 
--8323329-482499094-1745881476=:785180--


From xen-devel-bounces@lists.xenproject.org Mon Apr 28 23:21:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 23:21:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.971267.1359727 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9Xms-0002ey-GG; Mon, 28 Apr 2025 23:21:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 971267.1359727; Mon, 28 Apr 2025 23:21:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9Xms-0002er-DX; Mon, 28 Apr 2025 23:21:22 +0000
Received: by outflank-mailman (input) for mailman id 971267;
 Mon, 28 Apr 2025 23:21: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=u4d+=XO=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u9Xms-0002el-4e
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 23:21:22 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7ceece68-2487-11f0-9eb4-5ba50f476ded;
 Tue, 29 Apr 2025 01:21:19 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 887CA4346A;
 Mon, 28 Apr 2025 23:21:15 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 05BCEC4CEE4;
 Mon, 28 Apr 2025 23:21:15 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7ceece68-2487-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1745882477;
	bh=5uJgr/+NgwFzpTwPQ6nSbDSxu2IgRBYLztjHzOFx9r8=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=JSWqSoZFGA9nyUY9s0VBgZP6r1CRD+ykglyC29sRIcFWLNPUguiGCkzR63GRGqv5l
	 pvn4vhR9McErK+D2PGSdI4vfqLvx78EEKW7mshKtF8KZZwkjBP/9tFUgp3oPeNxSjk
	 6g5l6xh8BxNB4ZErao5NfbGgrjPXWEvCNwuBK3ZhBlEp8+yFhoqxf7DH9FrBH9rLmr
	 20cDVYZ3NufLtqV+hnRaVEqbEaGpdQkSaW0iOSbRrTvrHl5AJGJqZuMUGHjHn2HV5D
	 gp5hhVuMvGzGvDw5FDGH54FByBfvahlWrpkLN+IjM+iXBt7nGb56USKCUq6G6GJDUW
	 bjRZnG/ohdlcw==
Date: Mon, 28 Apr 2025 16:21:14 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jan Beulich <jbeulich@suse.com>
cc: victorm.lira@amd.com, Nicola Vetrini <nicola.vetrini@bugseng.com>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    Anthony PERARD <anthony.perard@vates.tech>, 
    Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Federico Serafini <federico.serafini@bugseng.com>, 
    Bertrand Marquis <bertrand.marquis@arm.com>, 
    xen-devel@lists.xenproject.org
Subject: Re: [PATCH v1 2/3] compat: address violations of MISRA C Rule 19.1
In-Reply-To: <cb1f8a8f-8834-4610-baab-c53bf5928b0c@suse.com>
Message-ID: <alpine.DEB.2.22.394.2504281614020.785180@ubuntu-linux-20-04-desktop>
References: <c694069696dd428bc1719e36c378a573b03f74b9.1745624090.git.victorm.lira@amd.com> <74b0420ab20fc0204db14c0a1a4a68ed48b25a38.1745624090.git.victorm.lira@amd.com> <cb1f8a8f-8834-4610-baab-c53bf5928b0c@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, 28 Apr 2025, Jan Beulich wrote:
> On 26.04.2025 01:42, victorm.lira@amd.com wrote:
> > From: Nicola Vetrini <nicola.vetrini@bugseng.com>
> > 
> > Rule 19.1 states: "An object shall not be assigned or copied
> > to an overlapping object". Since the "call" and "compat_call" are
> > fields of the same union, reading from one member and writing to
> > the other violates the rule, while not causing Undefined Behavior
> > due to their relative sizes. However, a dummy variable is used to
> > address the violation and prevent the future possibility of
> > incurring in UB.
> 
> If there is such a concern, ...
> 
> > --- a/xen/common/compat/multicall.c
> > +++ b/xen/common/compat/multicall.c
> > @@ -15,8 +15,13 @@ typedef int ret_t;
> >  static inline void xlat_multicall_entry(struct mc_state *mcs)
> >  {
> >      int i;
> > +    xen_ulong_t arg;
> > +
> >      for (i=0; i<6; i++)
> > -        mcs->compat_call.args[i] = mcs->call.args[i];
> > +    {
> > +        arg = mcs->call.args[i];
> > +        mcs->compat_call.args[i] = arg;
> > +    }
> >  }
> 
> ... wouldn't it be of concern as well that the alternating parts of
> the union are still accessed in a flip-flop manner? IOW we continue to
> rely on the relative placement properties of the individual array
> elements. To eliminate such a concern, I think the resulting code would
> also want to be correct if iteration was swapped to work downwards.
> 
> Also the scope of the temporary could certainly be the loop body rather
> than the entire function.

Wouldn't be safer to do this then?

static inline void xlat_multicall_entry(struct mc_state *mcs)
{
    int i;
    xen_ulong_t args[6];

    for ( i = 0; i < 6; i++ )
    {
        args[i] = mcs->call.args[i];
    }
    for ( i = 0; i < 6; i++ )
    {
        mcs->compat_call.args[i] = args[i];
    }
}

If you have any specific suggestions I think C code would be easier to
understand than English.


> I also don't think it needs to be xen_ulong_t,
> but maybe using unsigned int instead wouldn't make a difference in
> generated code.

Keeping the same type as mcs->call.args[i] would seem more obviously
correct? Not to mention that unsigned long is what we defined as
register type? If we really want to avoid xen_ulong_t, then it should
be uintptr_t?

We should stick to one type to be used as register type. On ARM, we
defined register_t.


From xen-devel-bounces@lists.xenproject.org Mon Apr 28 23:21:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 23:21:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.971276.1359738 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9XnR-00037S-Os; Mon, 28 Apr 2025 23:21:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 971276.1359738; Mon, 28 Apr 2025 23:21: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 1u9XnR-00037L-M0; Mon, 28 Apr 2025 23:21:57 +0000
Received: by outflank-mailman (input) for mailman id 971276;
 Mon, 28 Apr 2025 23:21: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=u4d+=XO=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u9XnQ-0002el-Ug
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 23:21:56 +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 932dd3e6-2487-11f0-9eb4-5ba50f476ded;
 Tue, 29 Apr 2025 01:21:56 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by nyc.source.kernel.org (Postfix) with ESMTP id 86CFCA4B877;
 Mon, 28 Apr 2025 23:16:27 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7CCFFC4CEE4;
 Mon, 28 Apr 2025 23:21: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: 932dd3e6-2487-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1745882515;
	bh=tyEKy65het3f4/jPpILrbXXTn6gWicBYwTt2DVxo+so=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=f4F2ELuQzDjlRd4c66JHO/Vo9jEwRjWmc107aCt3k+Eh3KbgE9k9LIjdoUUw9RAkI
	 UBhF+nRIWlhPA/HsvZlJfbaeh0NhQXcmoUEvYHLj+h01mCpz1rL3jBSh3Z1AO1qETF
	 ukD1qfrk4KJHU3RcyElRNwuknLstl4lTYzweMp+yutWYhkjCV27il1khU2IsTpL8Zy
	 kdmEU5Xa0yi3d25ZAIMj55HQzlFGSIKkAq32toFNSwAuzeWwXkfh/UbPbZE1u8SV9W
	 fMcoHpPx2RJgqTN8BCtPUWQuAWAuziDyyv4VZ6TWYgG2i6LfIOS1icwhg1Ud9ZSceI
	 7tPDaT3w5kKEA==
Date: Mon, 28 Apr 2025 16:21:52 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jan Beulich <jbeulich@suse.com>
cc: victorm.lira@amd.com, Federico Serafini <federico.serafini@bugseng.com>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    Anthony PERARD <anthony.perard@vates.tech>, 
    Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Nicola Vetrini <nicola.vetrini@bugseng.com>, 
    Bertrand Marquis <bertrand.marquis@arm.com>, 
    xen-devel@lists.xenproject.org
Subject: Re: [PATCH v1 1/2] xen/page_alloc: address violation of Rule 14.3
In-Reply-To: <3146fbf3-2ff1-48a4-b05b-37477a9a5cc5@suse.com>
Message-ID: <alpine.DEB.2.22.394.2504281551530.785180@ubuntu-linux-20-04-desktop>
References: <5f2e316aae4667d1fe851e68552eb881c4d5a015.1745625477.git.victorm.lira@amd.com> <3146fbf3-2ff1-48a4-b05b-37477a9a5cc5@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, 28 Apr 2025, Jan Beulich wrote:
> On 26.04.2025 02:00, victorm.lira@amd.com wrote:
> > From: Federico Serafini <federico.serafini@bugseng.com>
> > 
> > MISRA C Rule 14.3 states that "Controlling expressions shall not be
> > invariant".
> > 
> > Add a SAF comment to deviate the rule for build configurations without
> > CONFIG_LLC_COLORING enabled.
> 
> I was surprised by this supposedly being the only violation. And indeed it
> wasn't very hard to find more. For example, we have a number of
> "while ( num_online_cpus() > 1 && ... )", which become compile-time
> constant (false) when NR_CPUS=1.

Uhm, I did run a special scan for this and I can confirm no other
violations are detected.


> > --- a/xen/common/page_alloc.c
> > +++ b/xen/common/page_alloc.c
> > @@ -2038,6 +2038,7 @@ static struct page_info *alloc_color_heap_page(unsigned int memflags,
> > 
> >      spin_lock(&heap_lock);
> > 
> > +    /* SAF-14-safe MISRA C R14.3 condition always false without LLC_COLORING */
> >      for ( i = 0; i < domain_num_llc_colors(d); i++ )
> >      {
> >          unsigned long free = free_colored_pages[domain_llc_color(d, i)];
> 
> Hmm, this way the deviation applies even when LLC_COLORING=y.

Yes but in the LLC_COLORING=y case it is harmless. Do you have something
else in mind?


> As to the comment wording - looks like we're pretty inconsistent with that
> right now. I, for one, don't think the Misra rule needs (re)stating there;
> the SAF index points at all the data that's needed if one cares about the
> specifics of the deviation.

Do you prefer:

/* SAF-14-safe */

?


From xen-devel-bounces@lists.xenproject.org Mon Apr 28 23:32:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 23:32:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.971291.1359748 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9Xxl-0005CD-MQ; Mon, 28 Apr 2025 23:32:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 971291.1359748; Mon, 28 Apr 2025 23:32: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 1u9Xxl-0005C6-JE; Mon, 28 Apr 2025 23:32:37 +0000
Received: by outflank-mailman (input) for mailman id 971291;
 Mon, 28 Apr 2025 23:32: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=u4d+=XO=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u9Xxk-0005By-1w
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 23:32:36 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0f332e08-2489-11f0-9eb4-5ba50f476ded;
 Tue, 29 Apr 2025 01:32:33 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 50744614AE;
 Mon, 28 Apr 2025 23:32:07 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id E50BDC4CEE4;
 Mon, 28 Apr 2025 23:32:30 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0f332e08-2489-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1745883152;
	bh=9agsQy7PpzKI1uD0DLWtZbEGAstvnzVTkHiGr2/7os8=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=mOJlBRGKKOyIQ/rxYujlhrJkN+Jxm5e09cYAnoobwo+2Jw8wvU4nDTgFCyzIxq4tv
	 rgO8h5mAhQkH+aP0ivsGly9rPxTZyV0ubyoh1o+TK/u+9n1KOLHNmNUGcwGm2PnxpT
	 J71+QJAQ1S+XRM6+Q3taEe42/4mWDYki2BXz0MvxQRpS8IydxfYYcuQSdKX+6cCqnr
	 tK7qRFKhbFaH8bzcPb7nd94T8IyOih8a2D3BKOrCGJwTN0SSW4uH8uKgJ03ETJ77Jh
	 XLWRK8JYW34eD4MnVfS6F1dKmRp/jwFfXExtH2moVKqyXkilEAgmF88/o2LpdI034X
	 z3gIDeShXVCNA==
Date: Mon, 28 Apr 2025 16:32:29 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: dmkhn@proton.me
cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com, 
    anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org, 
    michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org, 
    dmukhin@ford.com
Subject: Re: [PATCH v2 2/3] xen/console: introduce console_puts()
In-Reply-To: <20250426185021.100646-3-dmukhin@ford.com>
Message-ID: <alpine.DEB.2.22.394.2504281632200.785180@ubuntu-linux-20-04-desktop>
References: <20250426185021.100646-1-dmukhin@ford.com> <20250426185021.100646-3-dmukhin@ford.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Sat, 26 Apr 2025, dmkhn@proton.me wrote:
> From: Denis Mukhin <dmukhin@ford.com>
> 
> guest_console_write() duplicates the code from __putstr(), eliminate code
> duplication.
> 
> Introduce console_puts() for writing a buffer to console devices.
> 
> Also, introduce internal console flags to control which console devices
> should be used.
> 
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>

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


> ---
> Changes v1->v2:
> - fixed locking in dump_console_ring_key()
> ---
>  xen/drivers/char/console.c | 117 ++++++++++++++++++++++---------------
>  1 file changed, 71 insertions(+), 46 deletions(-)
> 
> diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
> index aaa97088aa..8f882a47d1 100644
> --- a/xen/drivers/char/console.c
> +++ b/xen/drivers/char/console.c
> @@ -41,6 +41,20 @@
>  #include <asm/vpl011.h>
>  #endif
>  
> +/* Internal console flags. */
> +enum {
> +    CONSOLE_SERIAL  = BIT(0, U),    /* Use serial device. */
> +    CONSOLE_PV      = BIT(1, U),    /* Use PV console. */
> +    CONSOLE_VIDEO   = BIT(2, U),    /* Use video device. */
> +    CONSOLE_DEBUG   = BIT(3, U),    /* Use debug device. */
> +    CONSOLE_RING    = BIT(4, U),    /* Use console ring. */
> +    CONSOLE_DEFAULT = CONSOLE_SERIAL | CONSOLE_PV | CONSOLE_VIDEO |
> +                      CONSOLE_DEBUG,
> +    CONSOLE_ALL     = CONSOLE_DEFAULT | CONSOLE_RING,
> +};
> +
> +static void console_puts(const char *str, size_t len, unsigned int flags);
> +
>  /* console: comma-separated list of console outputs. */
>  static char __initdata opt_console[30] = OPT_CONSOLE_STR;
>  string_param("console", opt_console);
> @@ -338,8 +352,6 @@ static bool console_locks_busted;
>  
>  static void conring_puts(const char *str, size_t len)
>  {
> -    ASSERT(rspin_is_locked(&console_lock));
> -
>      while ( len-- )
>          conring[CONRING_IDX_MASK(conringp++)] = *str++;
>  
> @@ -432,9 +444,6 @@ void console_serial_puts(const char *s, size_t nr)
>          serial_steal_fn(s, nr);
>      else
>          serial_puts(sercon_handle, s, nr);
> -
> -    /* Copy all serial output into PV console */
> -    pv_console_puts(s, nr);
>  }
>  
>  static void cf_check dump_console_ring_key(unsigned char key)
> @@ -442,6 +451,7 @@ static void cf_check dump_console_ring_key(unsigned char key)
>      uint32_t idx, len, sofar, c;
>      unsigned int order;
>      char *buf;
> +    unsigned long flags;
>  
>      printk("'%c' pressed -> dumping console ring buffer (dmesg)\n", key);
>  
> @@ -455,6 +465,8 @@ static void cf_check dump_console_ring_key(unsigned char key)
>          return;
>      }
>  
> +    flags = console_lock_recursive_irqsave();
> +
>      c = conringc;
>      sofar = 0;
>      while ( (c != conringp) )
> @@ -468,8 +480,9 @@ static void cf_check dump_console_ring_key(unsigned char key)
>          c += len;
>      }
>  
> -    console_serial_puts(buf, sofar);
> -    video_puts(buf, sofar);
> +    console_puts(buf, sofar, CONSOLE_SERIAL | CONSOLE_VIDEO | CONSOLE_PV);
> +
> +    console_unlock_recursive_irqrestore(flags);
>  
>      free_xenheap_pages(buf, order);
>  }
> @@ -618,11 +631,61 @@ static inline void xen_console_write_debug_port(const char *buf, size_t len)
>  }
>  #endif
>  
> +static inline void console_debug_puts(const char *str, size_t 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
> +}
> +
> +/*
> + * Write buffer to all enabled console devices.
> + *
> + * That will handle all possible scenarios working w/ console
> + * - physical console (serial console, VGA console (x86 only));
> + * - PV console;
> + * - debug console (x86 only): debug I/O port or __HYPERVISOR_console_io
> + *   hypercall;
> + * - console ring.
> + */
> +static void console_puts(const char *str, size_t len, unsigned int flags)
> +{
> +    ASSERT(rspin_is_locked(&console_lock));
> +
> +    if ( flags & CONSOLE_SERIAL )
> +        console_serial_puts(str, len);
> +
> +    if ( flags & CONSOLE_PV )
> +        pv_console_puts(str, len);
> +
> +    if ( flags & CONSOLE_VIDEO )
> +        video_puts(str, len);
> +
> +    if ( flags & CONSOLE_DEBUG )
> +        console_debug_puts(str, len);
> +
> +    if ( flags & CONSOLE_RING )
> +        conring_puts(str, len);
> +}
> +
> +static inline void __putstr(const char *str)
> +{
> +    console_puts(str, strlen(str), CONSOLE_ALL);
> +}
> +
>  static long guest_console_write(XEN_GUEST_HANDLE_PARAM(char) buffer,
>                                  unsigned int count)
>  {
>      char kbuf[128];
>      unsigned int kcount = 0;
> +    unsigned int flags = opt_console_to_ring
> +                         ? CONSOLE_ALL : CONSOLE_DEFAULT;
>      struct domain *cd = current->domain;
>  
>      while ( count > 0 )
> @@ -640,23 +703,7 @@ static long guest_console_write(XEN_GUEST_HANDLE_PARAM(char) buffer,
>          {
>              /* 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);
> -
> +            console_puts(kbuf, kcount, flags);
>              nrspin_unlock_irq(&console_lock);
>          }
>          else
> @@ -757,28 +804,6 @@ long do_console_io(
>   * *****************************************************
>   */
>  
> -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);
> -}
> -
>  static int printk_prefix_check(char *p, char **pp)
>  {
>      int loglvl = -1;
> -- 
> 2.34.1
> 
> 


From xen-devel-bounces@lists.xenproject.org Mon Apr 28 23:34:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 28 Apr 2025 23:34:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.971306.1359757 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9XzR-0005lv-2O; Mon, 28 Apr 2025 23:34:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 971306.1359757; Mon, 28 Apr 2025 23:34: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 1u9XzQ-0005lo-W2; Mon, 28 Apr 2025 23:34:20 +0000
Received: by outflank-mailman (input) for mailman id 971306;
 Mon, 28 Apr 2025 23:34: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=u4d+=XO=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u9XzP-0005lh-5G
 for xen-devel@lists.xenproject.org; Mon, 28 Apr 2025 23:34:19 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4ce49060-2489-11f0-9ffb-bf95429c2676;
 Tue, 29 Apr 2025 01:34:17 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id EEACE614AE;
 Mon, 28 Apr 2025 23:33:50 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 912EFC4CEE4;
 Mon, 28 Apr 2025 23:34: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: 4ce49060-2489-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1745883255;
	bh=fdWBd7jSJHZHFUkZHAbfiAt4NmveuRO6oOnK5BFyFtc=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=AU7B79t7w1PB2PpjPQKREJx6vWe2n1wR9WrW+kDiu0631C1W60GfvahkMgZkUHPj7
	 0i6Ux50Kh1HUf+NstE/B4tFxuIv0AXvcZfI4I37UHBTmK3xnMfYU8DXWw61+BpAUtX
	 n+8Eg0k8eQlsrRM12yT9WVRN4++/6b/F5T3L8TD1U5rK1st8entCjMuNh4YmJhsoMu
	 Htwcz5Ekqne8l8mb3TlN1DQcLgibblq099tumNMRBSri1asBeptQirLbS5yQ72ifaX
	 fw+wGDHPedwB53iKnUAPTaD+k3LCrQ/A1HpHgLGW6k6Hj+IyFZoJf2ecFwybAmcvfH
	 i9S0eymRbYgiw==
Date: Mon, 28 Apr 2025 16:34:13 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: dmkhn@proton.me
cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com, 
    anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org, 
    michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org, 
    dmukhin@ford.com
Subject: Re: [PATCH v2 3/3] xen/console: introduce conring_flush()
In-Reply-To: <20250426185021.100646-4-dmukhin@ford.com>
Message-ID: <alpine.DEB.2.22.394.2504281634050.785180@ubuntu-linux-20-04-desktop>
References: <20250426185021.100646-1-dmukhin@ford.com> <20250426185021.100646-4-dmukhin@ford.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Sat, 26 Apr 2025, dmkhn@proton.me wrote:
> From: Denis Mukhin <dmukhin@ford.com>
> 
> Introduce conring_flush() to ensure all messages kept in the internal
> console ring are sent to all physical consoles (serial, VGA (x86))
> after their initialization is completed.
> 
> Resolves: https://gitlab.com/xen-project/xen/-/issues/184
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>

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



From xen-devel-bounces@lists.xenproject.org Tue Apr 29 00:12:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 00:12:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.971319.1359767 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9YaB-0004CI-1Y; Tue, 29 Apr 2025 00:12:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 971319.1359767; Tue, 29 Apr 2025 00:12: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 1u9YaA-0004CB-Us; Tue, 29 Apr 2025 00:12:18 +0000
Received: by outflank-mailman (input) for mailman id 971319;
 Tue, 29 Apr 2025 00:12: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=yPhw=XP=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u9Ya9-0004C3-9i
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 00:12:17 +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 9b325f47-248e-11f0-9eb4-5ba50f476ded;
 Tue, 29 Apr 2025 02:12:16 +0200 (CEST)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-4394a823036so51920225e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 28 Apr 2025 17:12:15 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3a073e5d479sm12748482f8f.92.2025.04.28.17.12.13
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 28 Apr 2025 17:12: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: 9b325f47-248e-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745885535; x=1746490335; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Amcfkn8zReFn2jmKD+nL9EVc7tiRKBur/YRCF07k0as=;
        b=EBDu2KnuitLM3cbO5fCcMMuhy8Hm9eAh8vss7ziAgoH99kPxv9XakO2rDEqWfMyKPH
         GE63rigemRWROjUV1vEoP/oC85FeEjHNf1ivIy5IiuVF/FJpnsrXAP0+lxiz0/W/5QnV
         dXqL6r+nrVFxNNzH8Vbms9lfOpSqFbuGr7nCE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745885535; x=1746490335;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Amcfkn8zReFn2jmKD+nL9EVc7tiRKBur/YRCF07k0as=;
        b=B7wY3QYG7rdJEIt6nUUdeoJuUCxc/ZKudz8gSNX7hL/ilGlbeVcQ2h69s/6p5TaciE
         kSH5dzQsxOREZpcdgOLBNdZQxHwFrqmPQQqBsCT6r624u3P+P0g4XyHn4yCXgHi4/OFC
         pHxpnXMOI9pU0E+xtHVuZzuGqcqGCWgDgIA3Fmji5ep7XJBtt77M+GElQP2uteQPf4c9
         aDoqelCGaHtMew9IGRGfWdX8sNJZglTaB6kjCZ3e649X6F92NbVbmhknIyhVjvd/Ca2p
         Fe4LJgLUQeQFAP04yoqhj0l7rMuViDFoWX+mB6VHAvCA2Efol1YTsRfOmhr961XN2GRZ
         H9wA==
X-Forwarded-Encrypted: i=1; AJvYcCWBOvIdy1XuluaZT75pUc1uWJ8ToXdmkQ7UXZH4EX/ynAjOtNYI91sjC7DMRs3RcwrJpuWT7HN0D+4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwoN5v06rylim2Xh3oyOjIHedBJbu11TJUZcxaOejHcfDWf1CEL
	/KhfqDKP/K5PlzU5x/ZyvkJomygjEsZxI+0OCMU71djnUcGVzaF8nAKf5mi9ZAU=
X-Gm-Gg: ASbGncs6uCitP0opKPq2h3XV1b4ZjS5V3CV1ecIgnTMWRa+9mniUQzoaJ6HTqRqU3F1
	tkWSU8V2IAlg48A0SHuhifjIiw3by2Cq9W09QddCPCp32pBvQHTrSD8hjh9uhNquvDQCFoTqkbu
	C6g1dzzPq64XaGIr30YE++6aMUfYtIvHeMQZ8fQZhWqUjdhy9dQVcgL+SQ5unO48I/J190onUz2
	pVR80BTYm+fmnntms4gV9o/w4G0e7DNTMFDSkIIGj7BVdPrKQd/0qSkkKteFQQeZ+G/ycR24dda
	GafLrNtNzqx0c5wAss4Tel6fenwjlkp/AAXfRKxbYSlqJPif1E1aKv3U2e/sA/DKpmrSqMCdly9
	0/uGcBQ==
X-Google-Smtp-Source: AGHT+IHujlww7PcwMsMCaoUhF+sQKXj7JL0fU8k9ecGXvmu8XCXjepMuhaKKdmE3Wbwi9kv7OgjOXA==
X-Received: by 2002:a05:6000:40dd:b0:3a0:8331:3380 with SMTP id ffacd0b85a97d-3a08ad2b565mr434631f8f.8.1745885535140;
        Mon, 28 Apr 2025 17:12:15 -0700 (PDT)
Message-ID: <67be5eee-b67b-409a-8309-829f891b9944@citrix.com>
Date: Tue, 29 Apr 2025 01:12:13 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] bitops/32: Convert variable_ffs() and fls() zero-case
 handling to C
To: "H. Peter Anvin" <hpa@zytor.com>,
 Linus Torvalds <torvalds@linux-foundation.org>,
 Ingo Molnar <mingo@kernel.org>
Cc: Arnd Bergmann <arnd@arndb.de>, Arnd Bergmann <arnd@kernel.org>,
 Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 x86@kernel.org, Juergen Gross <jgross@suse.com>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 Alexander Usyskin <alexander.usyskin@intel.com>,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
 =?UTF-8?Q?Mateusz_Jo=C5=84czyk?= <mat.jonczyk@o2.pl>,
 Mike Rapoport <rppt@kernel.org>, Ard Biesheuvel <ardb@kernel.org>,
 Peter Zijlstra <peterz@infradead.org>, linux-kernel@vger.kernel.org,
 xen-devel@lists.xenproject.org
References: <20250425141740.734030-1-arnd@kernel.org>
 <aAyiganPp_UsNlnZ@gmail.com>
 <d2b0e71c-e79b-40d6-8693-3202cd894d66@app.fastmail.com>
 <CAHk-=wh=TUsVv6xhtzYsWJwJggrjyOfYT3kBu+bHtoYLK0M9Xw@mail.gmail.com>
 <CAHk-=wgfk69H-T-vMWR33xUpVsWJLrF34d0OwUXa2sHhtpSwZg@mail.gmail.com>
 <e54f1943-e0ff-4f59-b24f-9b5a7a38becf@citrix.com>
 <CAHk-=wj0S2vWui0Y+1hpYMEhCiXKexbQ01h+Ckvww8hB29az_A@mail.gmail.com>
 <aA8nF0moBYOIgC5J@gmail.com> <aA8oqKUaFU-0wb-D@gmail.com>
 <CAHk-=wgJfWfWa2NTiTmev+Xr=e8Uo=aFkrXujLAQBVAVN-VigQ@mail.gmail.com>
 <B364FF6D-DFCC-42A7-ACA1-6A74E27EE57E@zytor.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: <B364FF6D-DFCC-42A7-ACA1-6A74E27EE57E@zytor.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 28/04/2025 10:38 pm, H. Peter Anvin wrote:
> On April 28, 2025 9:14:45 AM PDT, Linus Torvalds <torvalds@linux-foundation.org> wrote:
>> On Mon, 28 Apr 2025 at 00:05, Ingo Molnar <mingo@kernel.org> wrote:
>>> And once we remove 486, I think we can do the optimization below to
>>> just assume the output doesn't get clobbered by BS*L in the zero-case,
>>> right?
>> We probably can't, because who knows what "Pentium" CPU's are out there.
>>
>> Or even if Pentium really does get it right. I doubt we have any
>> developers with an original Pentium around.
>>
>> So just leave the "we don't know what the CPU result is for zero"
>> unless we get some kind of official confirmation.
>>
>>          Linus
> If anyone knows for sure, it is probably Christian Ludloff. However, there was a *huge* tightening of the formal ISA when the i686 was introduced (family=6) and I really believe this was part of it.
>
> I also really don't trust that family=5 really means conforms to undocumented P5 behavior, e.g. for Quark.

https://www.sandpile.org/x86/flags.htm

That's a lot of "can't even characterise the result" in the P5.

Looking at P4 column, that is clearly what the latest SDM has
retroactively declared to be architectural.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Apr 29 01:27:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 01:27:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.971333.1359777 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9Zl3-0005MZ-7c; Tue, 29 Apr 2025 01:27:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 971333.1359777; Tue, 29 Apr 2025 01: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 1u9Zl3-0005MS-4l; Tue, 29 Apr 2025 01:27:37 +0000
Received: by outflank-mailman (input) for mailman id 971333;
 Tue, 29 Apr 2025 01:27: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=ZtOk=XP=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u9Zl2-0005MM-7b
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 01:27:36 +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 2013d9b6-2499-11f0-9eb4-5ba50f476ded;
 Tue, 29 Apr 2025 03:27:34 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by nyc.source.kernel.org (Postfix) with ESMTP id 350A4A4B8DC;
 Tue, 29 Apr 2025 01:22:05 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id E8FDFC4CEE4;
 Tue, 29 Apr 2025 01:27:30 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2013d9b6-2499-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1745890052;
	bh=YTzPsRYYoFP05hjTbkygTPgGb0wiq5NwEppj5vOP3x0=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=Eph7AMvSWLc0q5WPBpIXCj5/VNi3EtURgh3Sk7LmG2VCBFE//iiuMz7izhXeLGKHP
	 8P6WW3VFYwVuFdArMh+n/0XwAgEpOgEViY4psS5zCCNi/nBDD4immOUJDl1nuEQoD4
	 8/cwsOy/nslS9c9b1jNYgKm2aBRJCDK1cceZ5Fr6fkslOAhDq9FtYb1sAXu0+3aTQ+
	 8IYj+IZW7iCRSIK0icbw4IFIEC2EBUUSXKdVM4Il83AGllYhzU4fpq4MrtS/5AR00Q
	 loBwRSXV/z0qHlPjgHTpHvlkgvkzqGFqVX70IBorQ/+qXDYZFFZOsxmsoKMpLbV0Ny
	 zSQIXKJRwwltQ==
Date: Mon, 28 Apr 2025 18:27:29 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jan Beulich <jbeulich@suse.com>
cc: victorm.lira@amd.com, Nicola Vetrini <nicola.vetrini@bugseng.com>, 
    Federico Serafini <federico.serafini@bugseng.com>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    Anthony PERARD <anthony.perard@vates.tech>, 
    Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Bertrand Marquis <bertrand.marquis@arm.com>, 
    xen-devel@lists.xenproject.org
Subject: Re: [PATCH v1 1/3] x86: x86_emulate: address violations of MISRA C
 Rule 19.1
In-Reply-To: <914e3157-736a-4890-9c91-e93fcc260bb0@suse.com>
Message-ID: <alpine.DEB.2.22.394.2504281625240.785180@ubuntu-linux-20-04-desktop>
References: <c694069696dd428bc1719e36c378a573b03f74b9.1745624090.git.victorm.lira@amd.com> <914e3157-736a-4890-9c91-e93fcc260bb0@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, 28 Apr 2025, Jan Beulich wrote:
> On 26.04.2025 01:42, victorm.lira@amd.com wrote:
> > From: Nicola Vetrini <nicola.vetrini@bugseng.com>
> > 
> > Rule 19.1 states: "An object shall not be assigned or copied
> > to an overlapping object". Since the "call" and "compat_call" are
> 
> Was this taken from patch 2 without editing?
> 
> > --- a/xen/arch/x86/x86_emulate/x86_emulate.c
> > +++ b/xen/arch/x86/x86_emulate/x86_emulate.c
> > @@ -526,9 +526,19 @@ static inline void put_loop_count(
> >           */                                                             \
> >          if ( !amd_like(ctxt) && mode_64bit() && ad_bytes == 4 )         \
> >          {                                                               \
> > +            uint64_t tmp;                                               \
> > +                                                                        \
> >              _regs.r(cx) = 0;                                            \
> > -            if ( extend_si ) _regs.r(si) = _regs.esi;                   \
> > -            if ( extend_di ) _regs.r(di) = _regs.edi;                   \
> > +            if ( extend_si )                                            \
> > +            {                                                           \
> > +                tmp = _regs.esi;                                        \
> > +                _regs.r(si) = tmp;                                      \
> > +            }                                                           \
> > +            if ( extend_di )                                            \
> > +            {                                                           \
> > +                tmp = _regs.edi;                                        \
> > +                _regs.r(di) = tmp;                                      \
> > +            }                                                           \
> 
> See commit 7225f13aef03 for how we chose to address similar issues elsewhere
> in the emulator. I think we want to be consistent there. This will then also
> eliminate ...
> 
> > @@ -2029,7 +2039,12 @@ x86_emulate(
> >          switch ( op_bytes )
> >          {
> >          case 2: _regs.ax = (int8_t)_regs.ax; break; /* cbw */
> > -        case 4: _regs.r(ax) = (uint32_t)(int16_t)_regs.ax; break; /* cwde */
> > +        case 4:
> > +            {
> > +                uint32_t tmp = (uint32_t)(int16_t)_regs.ax;
> > +                _regs.r(ax) = tmp;
> > +                break; /* cwde */
> > +            }
> 
> ... the odd brace placement here, as well as the inconsistency in the types
> you used for the temporary variables (both really could have been unsigned
> int; no need for a fixed-width type).

Is this what you have in mind?


diff --git a/xen/arch/x86/x86_emulate/x86_emulate.c b/xen/arch/x86/x86_emulate/x86_emulate.c
index 8e14ebb35b..394c96e1f2 100644
--- a/xen/arch/x86/x86_emulate/x86_emulate.c
+++ b/xen/arch/x86/x86_emulate/x86_emulate.c
@@ -527,8 +527,8 @@ static inline void put_loop_count(
         if ( !amd_like(ctxt) && mode_64bit() && ad_bytes == 4 )         \
         {                                                               \
             _regs.r(cx) = 0;                                            \
-            if ( extend_si ) _regs.r(si) = _regs.esi;                   \
-            if ( extend_di ) _regs.r(di) = _regs.edi;                   \
+            if ( extend_si ) _regs.r(si) = (uint64_t)_regs.esi;         \
+            if ( extend_di ) _regs.r(di) = (uint64_t)_regs.edi;         \
         }                                                               \
         goto complete_insn;                                             \
     }                                                                   \
@@ -2029,7 +2029,7 @@ x86_emulate(
         switch ( op_bytes )
         {
         case 2: _regs.ax = (int8_t)_regs.ax; break; /* cbw */
-        case 4: _regs.r(ax) = (uint32_t)(int16_t)_regs.ax; break; /* cwde */
+        case 4: _regs.r(ax) = (int16_t)_regs.ax; break; /* cwde */
         case 8: _regs.r(ax) = (int32_t)_regs.r(ax); break; /* cdqe */
         }
         break;

Unfortunately it doesn't work. The first hunk (put_loop_count) seems to
be the problem. Neither uint32_t nor unsigned long work, so I am
probably heading in the wrong direction. Any idea what did I do wrong?



From xen-devel-bounces@lists.xenproject.org Tue Apr 29 02:01:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 02:01:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.971345.1359787 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9aHH-0002t0-Kz; Tue, 29 Apr 2025 02:00:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 971345.1359787; Tue, 29 Apr 2025 02:00: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 1u9aHH-0002st-IR; Tue, 29 Apr 2025 02:00:55 +0000
Received: by outflank-mailman (input) for mailman id 971345;
 Tue, 29 Apr 2025 02:00: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=k9ft=XP=zytor.com=hpa@srs-se1.protection.inumbo.net>)
 id 1u9aHG-0002sn-2d
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 02:00:54 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c66262fb-249d-11f0-9eb4-5ba50f476ded;
 Tue, 29 Apr 2025 04:00:52 +0200 (CEST)
Received: from [127.0.0.1] ([76.133.66.138]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53T20D5e084945
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NO);
 Mon, 28 Apr 2025 19:00:14 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c66262fb-249d-11f0-9eb4-5ba50f476ded
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53T20D5e084945
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745892015;
	bh=Sa3174tDwufid9lYtjnyXVpiRUMqmxxt9iXJ7zEmUGw=;
	h=Date:From:To:CC:Subject:In-Reply-To:References:From;
	b=a/V8ZtRSqlR1/BTFZqcrwJRErwApyt0cYqkrfh2z+Y4mu9L5CE5/z/brCDx7IZzHv
	 6JvXaeOjTLJ5lRiQXf1uUMWrsan6raPI66bYVqHA/ogzrNk2rFeAY/fU9UeCuwSISy
	 4M2dYVdYZ0/QswbcmPcS3vmpM+IH4Qywv7KacDjPN7voCmNLWeYZnnOC6y9atCR9o9
	 Pb6q9VWcB/JPm13r0lQrSg3wXo+6S28SWaR76gPs5CSv8gCN7pS9LeXwKi3lMcia6J
	 efQdlKuuHNceK3YKrJrr+ltxXwZFZWk/E5iUbSS/o/oh636eYfed322wFtf7whVNNz
	 WWkABNEDI7OZQ==
Date: Mon, 28 Apr 2025 19:00:12 -0700
From: "H. Peter Anvin" <hpa@zytor.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>,
        Linus Torvalds <torvalds@linux-foundation.org>,
        Ingo Molnar <mingo@kernel.org>
CC: Arnd Bergmann <arnd@arndb.de>, Arnd Bergmann <arnd@kernel.org>,
        Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>,
        Borislav Petkov <bp@alien8.de>,
        Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org,
        Juergen Gross <jgross@suse.com>,
        Boris Ostrovsky <boris.ostrovsky@oracle.com>,
        Alexander Usyskin <alexander.usyskin@intel.com>,
        Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
        =?UTF-8?Q?Mateusz_Jo=C5=84czyk?= <mat.jonczyk@o2.pl>,
        Mike Rapoport <rppt@kernel.org>, Ard Biesheuvel <ardb@kernel.org>,
        Peter Zijlstra <peterz@infradead.org>, linux-kernel@vger.kernel.org,
        xen-devel@lists.xenproject.org
Subject: =?US-ASCII?Q?Re=3A_=5BPATCH=5D_bitops/32=3A_Convert_variable?=
 =?US-ASCII?Q?=5Fffs=28=29_and_fls=28=29_zero-case_handling_to_C?=
User-Agent: K-9 Mail for Android
In-Reply-To: <67be5eee-b67b-409a-8309-829f891b9944@citrix.com>
References: <20250425141740.734030-1-arnd@kernel.org> <aAyiganPp_UsNlnZ@gmail.com> <d2b0e71c-e79b-40d6-8693-3202cd894d66@app.fastmail.com> <CAHk-=wh=TUsVv6xhtzYsWJwJggrjyOfYT3kBu+bHtoYLK0M9Xw@mail.gmail.com> <CAHk-=wgfk69H-T-vMWR33xUpVsWJLrF34d0OwUXa2sHhtpSwZg@mail.gmail.com> <e54f1943-e0ff-4f59-b24f-9b5a7a38becf@citrix.com> <CAHk-=wj0S2vWui0Y+1hpYMEhCiXKexbQ01h+Ckvww8hB29az_A@mail.gmail.com> <aA8nF0moBYOIgC5J@gmail.com> <aA8oqKUaFU-0wb-D@gmail.com> <CAHk-=wgJfWfWa2NTiTmev+Xr=e8Uo=aFkrXujLAQBVAVN-VigQ@mail.gmail.com> <B364FF6D-DFCC-42A7-ACA1-6A74E27EE57E@zytor.com> <67be5eee-b67b-409a-8309-829f891b9944@citrix.com>
Message-ID: <916BD58C-E6A7-495E-9A60-722E130AC7A7@zytor.com>
MIME-Version: 1.0
Content-Type: text/plain;
 charset=utf-8
Content-Transfer-Encoding: quoted-printable

On April 28, 2025 5:12:13 PM PDT, Andrew Cooper <andrew=2Ecooper3@citrix=2E=
com> wrote:
>On 28/04/2025 10:38 pm, H=2E Peter Anvin wrote:
>> On April 28, 2025 9:14:45 AM PDT, Linus Torvalds <torvalds@linux-founda=
tion=2Eorg> wrote:
>>> On Mon, 28 Apr 2025 at 00:05, Ingo Molnar <mingo@kernel=2Eorg> wrote:
>>>> And once we remove 486, I think we can do the optimization below to
>>>> just assume the output doesn't get clobbered by BS*L in the zero-case=
,
>>>> right?
>>> We probably can't, because who knows what "Pentium" CPU's are out ther=
e=2E
>>>
>>> Or even if Pentium really does get it right=2E I doubt we have any
>>> developers with an original Pentium around=2E
>>>
>>> So just leave the "we don't know what the CPU result is for zero"
>>> unless we get some kind of official confirmation=2E
>>>
>>>          Linus
>> If anyone knows for sure, it is probably Christian Ludloff=2E However, =
there was a *huge* tightening of the formal ISA when the i686 was introduce=
d (family=3D6) and I really believe this was part of it=2E
>>
>> I also really don't trust that family=3D5 really means conforms to undo=
cumented P5 behavior, e=2Eg=2E for Quark=2E
>
>https://www=2Esandpile=2Eorg/x86/flags=2Ehtm
>
>That's a lot of "can't even characterise the result" in the P5=2E
>
>Looking at P4 column, that is clearly what the latest SDM has
>retroactively declared to be architectural=2E
>
>~Andrew

Yes, but it wasn't about flags here=2E=20

Now, question: can we just use __builtin_*() for these? I think gcc should=
 always generate inline code for these on x86=2E


From xen-devel-bounces@lists.xenproject.org Tue Apr 29 02:25:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 02:25:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.971358.1359797 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9aew-000643-GS; Tue, 29 Apr 2025 02:25:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 971358.1359797; Tue, 29 Apr 2025 02:25:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9aew-00063w-Dx; Tue, 29 Apr 2025 02:25:22 +0000
Received: by outflank-mailman (input) for mailman id 971358;
 Tue, 29 Apr 2025 02:25: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=yPhw=XP=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u9aeu-00063q-TX
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 02:25:20 +0000
Received: from mail-wm1-x331.google.com (mail-wm1-x331.google.com
 [2a00:1450:4864:20::331])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 31dcbb39-24a1-11f0-9eb4-5ba50f476ded;
 Tue, 29 Apr 2025 04:25:19 +0200 (CEST)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-43cf3192f3bso51911905e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 28 Apr 2025 19:25:19 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4409d2abf73sm172928625e9.20.2025.04.28.19.25.17
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 28 Apr 2025 19:25:18 -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: 31dcbb39-24a1-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745893519; x=1746498319; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=logGtVu+7IT0r/51fYLuRIbXnsRggGmi2FqqOlrz5h4=;
        b=kc/njLp8zVNvO0Irar1ReioGkbIQJfZaBUD9bacXmoj4ZTyTZ3OK09oEXE5SNT2DI3
         gv+uCGm3zX8N+Igp2nFeGhWRBz8LsSZDn2guV99wzwne0a0Ii6ffTJLOtYnswEa9tUcR
         bZR50/Eac/r9tY1PlidAZMSB7Xx78bhYz8TOM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745893519; x=1746498319;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=logGtVu+7IT0r/51fYLuRIbXnsRggGmi2FqqOlrz5h4=;
        b=xHbj9rC1tl7tMM20KV4K5PQ4Svgr2ErlkddcNXFI9Uy2L5tVv0x20pYkzcJhLo9uQu
         RJVdz0HotUu47FQ+y5LA40gP14Lcl8UIqu5ZmLW13nlwDZDDE74VTmduTvUmxfE6D5sX
         sKPbTd+XYeIfEMf2jwBKFA+LriWyjVX/oVC+osZjPWNvYeUvcEDOvf+Nwd1dB6Ro6qnJ
         154J+hug+pi3NV3V8p13BOajURbe/GNFYHWqWKTuhpr5HnlcioqNgjw1pV28Tm2EeyJK
         GOO+zGfCOzQfwApc6/Ahc9HWfguYSXqIWiNkPU81iLEnDnYRhWhP7/zNRynT4HoZgF2t
         v5EQ==
X-Forwarded-Encrypted: i=1; AJvYcCW4sWYNtFHhoD2fSMEWnI+nNLWlV03OXiIQBCw+beTXOSsxuSNCqinERSAQrE0IEJ97xaRyq/iOQ18=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzmcsmx9YwEEyGHPlmA7dznxP8GNefRt0MXiNzYfmo/6GG+XEj9
	mluPj8VLCVXRqTJZTkt4WWv3lU32S/wU6+HC5vqNfJf9Od9ksKiRwBewk5lOBUg=
X-Gm-Gg: ASbGncsbdZpzZeDgSuIssLbsOfLXZ2obfybAEoHs7eLY47UTLEeubLtyS5IjPgyHdnQ
	22CPl+NK+S6ftgSW3mFwcE7CkznLUXPJLjKDLo7529aMCaecCJxbbX/kcN7VcRzNoLQSre7QZdS
	rXTilGvyXfp8oHlwQLIHNWrlGcbWdIzEKge2/19kxL0N+bVphx3a6neDyhgD6pPd/y+93eskijj
	8rVGpLGrv92CwMBLzUbFU9dyOtUxbnKed/7sjh7iWCj82EEkCyWXtxdpkctraE4XAwcCp/xJNBM
	w9z0gjzFIYOazcyH+fCbQ8bXTVfxVlZSryAAxmYLHrlkFSY1ek8/YfcDAY1IuAW1XDGsetECMIK
	UrzSHRw==
X-Google-Smtp-Source: AGHT+IFiy/yhIU/mxQaqPdQVeUobhwf07A5N4rQG91TwFqvD7lyrojMQY0WpnRjmIrNN+QjB0m4YYQ==
X-Received: by 2002:a05:600c:4fd0:b0:43c:ee3f:2c3 with SMTP id 5b1f17b1804b1-441ac84b469mr9380965e9.7.1745893518863;
        Mon, 28 Apr 2025 19:25:18 -0700 (PDT)
Message-ID: <e5e97ff8-9670-40d1-a0fa-69504d34c4c4@citrix.com>
Date: Tue, 29 Apr 2025 03:25:17 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] bitops/32: Convert variable_ffs() and fls() zero-case
 handling to C
To: "H. Peter Anvin" <hpa@zytor.com>,
 Linus Torvalds <torvalds@linux-foundation.org>,
 Ingo Molnar <mingo@kernel.org>
Cc: Arnd Bergmann <arnd@arndb.de>, Arnd Bergmann <arnd@kernel.org>,
 Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 x86@kernel.org, Juergen Gross <jgross@suse.com>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 Alexander Usyskin <alexander.usyskin@intel.com>,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
 =?UTF-8?Q?Mateusz_Jo=C5=84czyk?= <mat.jonczyk@o2.pl>,
 Mike Rapoport <rppt@kernel.org>, Ard Biesheuvel <ardb@kernel.org>,
 Peter Zijlstra <peterz@infradead.org>, linux-kernel@vger.kernel.org,
 xen-devel@lists.xenproject.org
References: <20250425141740.734030-1-arnd@kernel.org>
 <aAyiganPp_UsNlnZ@gmail.com>
 <d2b0e71c-e79b-40d6-8693-3202cd894d66@app.fastmail.com>
 <CAHk-=wh=TUsVv6xhtzYsWJwJggrjyOfYT3kBu+bHtoYLK0M9Xw@mail.gmail.com>
 <CAHk-=wgfk69H-T-vMWR33xUpVsWJLrF34d0OwUXa2sHhtpSwZg@mail.gmail.com>
 <e54f1943-e0ff-4f59-b24f-9b5a7a38becf@citrix.com>
 <CAHk-=wj0S2vWui0Y+1hpYMEhCiXKexbQ01h+Ckvww8hB29az_A@mail.gmail.com>
 <aA8nF0moBYOIgC5J@gmail.com> <aA8oqKUaFU-0wb-D@gmail.com>
 <CAHk-=wgJfWfWa2NTiTmev+Xr=e8Uo=aFkrXujLAQBVAVN-VigQ@mail.gmail.com>
 <B364FF6D-DFCC-42A7-ACA1-6A74E27EE57E@zytor.com>
 <67be5eee-b67b-409a-8309-829f891b9944@citrix.com>
 <916BD58C-E6A7-495E-9A60-722E130AC7A7@zytor.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: <916BD58C-E6A7-495E-9A60-722E130AC7A7@zytor.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 29/04/2025 3:00 am, H. Peter Anvin wrote:
> On April 28, 2025 5:12:13 PM PDT, Andrew Cooper <andrew.cooper3@citrix.com> wrote:
>> On 28/04/2025 10:38 pm, H. Peter Anvin wrote:
>>> On April 28, 2025 9:14:45 AM PDT, Linus Torvalds <torvalds@linux-foundation.org> wrote:
>>>> On Mon, 28 Apr 2025 at 00:05, Ingo Molnar <mingo@kernel.org> wrote:
>>>>> And once we remove 486, I think we can do the optimization below to
>>>>> just assume the output doesn't get clobbered by BS*L in the zero-case,
>>>>> right?
>>>> We probably can't, because who knows what "Pentium" CPU's are out there.
>>>>
>>>> Or even if Pentium really does get it right. I doubt we have any
>>>> developers with an original Pentium around.
>>>>
>>>> So just leave the "we don't know what the CPU result is for zero"
>>>> unless we get some kind of official confirmation.
>>>>
>>>>          Linus
>>> If anyone knows for sure, it is probably Christian Ludloff. However, there was a *huge* tightening of the formal ISA when the i686 was introduced (family=6) and I really believe this was part of it.
>>>
>>> I also really don't trust that family=5 really means conforms to undocumented P5 behavior, e.g. for Quark.
>> https://www.sandpile.org/x86/flags.htm
>>
>> That's a lot of "can't even characterise the result" in the P5.
>>
>> Looking at P4 column, that is clearly what the latest SDM has
>> retroactively declared to be architectural.
>>
>> ~Andrew
> Yes, but it wasn't about flags here. 
>
> Now, question: can we just use __builtin_*() for these? I think gcc should always generate inline code for these on x86.

Yes it does generate inline code.  https://godbolt.org/z/M45oo5rqT

GCC does it branchlessly, but cannot optimise based on context.

Clang can optimise based on context, except the 0 case it seems.

Moving to -march=i686 causes both GCC and Clang to switch to CMOV and
create branchless code, but is still GCC still can't optimise out the
CMOV based on context.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Apr 29 02:28:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 02:28:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.971374.1359809 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9ai2-0006h5-43; Tue, 29 Apr 2025 02:28:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 971374.1359809; Tue, 29 Apr 2025 02:28: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 1u9ai2-0006gy-02; Tue, 29 Apr 2025 02:28:34 +0000
Received: by outflank-mailman (input) for mailman id 971374;
 Tue, 29 Apr 2025 02:28: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=rc0E=XP=linuxfoundation.org=torvalds@srs-se1.protection.inumbo.net>)
 id 1u9ai0-0006gs-NZ
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 02:28:32 +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 a3de6a93-24a1-11f0-9eb4-5ba50f476ded;
 Tue, 29 Apr 2025 04:28:30 +0200 (CEST)
Received: by mail-ej1-x636.google.com with SMTP id
 a640c23a62f3a-ac289147833so976873066b.2
 for <xen-devel@lists.xenproject.org>; Mon, 28 Apr 2025 19:28:30 -0700 (PDT)
Received: from mail-ed1-f44.google.com (mail-ed1-f44.google.com.
 [209.85.208.44]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-ace6ecf9a17sm715045766b.99.2025.04.28.19.28.29
 for <xen-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 28 Apr 2025 19:28:29 -0700 (PDT)
Received: by mail-ed1-f44.google.com with SMTP id
 4fb4d7f45d1cf-5eb92df4fcbso10538749a12.0
 for <xen-devel@lists.xenproject.org>; Mon, 28 Apr 2025 19:28:29 -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: a3de6a93-24a1-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linux-foundation.org; s=google; t=1745893710; x=1746498510; darn=lists.xenproject.org;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:from:to:cc:subject:date:message-id:reply-to;
        bh=OnBKvw2kgpkCx0VRoBE8FRrW9svaRVFdZx7JKWWKbs4=;
        b=HjbktJYKai1Tl0y592BbG2PdQHyv9L7Uj0rmL2SkZvadCCza3iJrlzuHnpKn28og8F
         axBkcrc5PbOBMCFiQiS3ehyBhVmJrDuR47CjrFOMeuiE1IE3wdu37vYkqn+X93f0PjFS
         81XlQv5gTtjNgk6UvuEVGM4yCZ5YUKaPcgkRM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745893710; x=1746498510;
        h=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=OnBKvw2kgpkCx0VRoBE8FRrW9svaRVFdZx7JKWWKbs4=;
        b=A20YbWevHW+gfHzoBVuFBqkWQNqrqcvA58xqgk61N0ZGhDhHIMgYN24v5p533GGhWe
         zA3MVzJB36bsIgdWMenOa5AUpKdRB4F8uPAXWSSO3K0WvmR5RdH1Yn0I4TdnQnNR2xYy
         RUsZgrmO4NdlGPTBNx5MNtof0ynHixZhg6/ziDwK2gDOO5L9t0ldCunXG+EeLo7LRhv/
         sMnQUkBIKHWkrNStPZqSAgCZT0vBOCVjTlcC40CIrJaLrLSEKelimnNStcCKi+Ug9YGh
         c7TVpFqI9ji8RVm7KMDRKYgHGOuP8SpMfuO8VCMicXwuQiAeO0Psc5jcxLHnr4qHSFVs
         4wCg==
X-Forwarded-Encrypted: i=1; AJvYcCXNrcdRo/k+JFmGVF8wr6o5G2SWmXdIGRoRePYfX46OnIryWjZGQk6VF7kSRJxDS/ignMIF3/feAdA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyZqt7Uf8kPAEPgnWFezfYExmeeddJymmEhp/HphFwV+Je1FdYL
	aHlHRJEBMUVNAiXHz+P68TeG5SeEc93qoAGGmD7E9n0OEJGlO2aTPSpvMkUESdDVMIIIOs8cYEy
	+su4b/g==
X-Gm-Gg: ASbGnct7W3QJZn5xfqgvxA1uAFhkrEk3Q4maBKn1pqaA7fTTkEkn3pR6rmL/cu+ayKc
	yjGAlE+X878h8jJ9yVOw0bwj+4jaYgKZBJUJEwSEgc2QUxHjvYzvCSdRajSLjHDlQ3k6ERHQhEy
	mNRpNMyqmXp6JH0WcMNxfyN5tH9KMeKRz0GpH1/1WLOhvn0lb84d6YbsmX09YbdnTwYzoRureZz
	4sxiu/mMYXax6cqk/rNzCPXOFRuxn/d5my3rORVWwtMW8OjKkOPW1teyRTKUU4Ahrj2ZmOrKoRM
	35/UFnqkRLL/lzGpImjh5JLvml/epqGhF2/SNkPhFFi9KdB0vUodf+oeujRF4WhY+Zbuzjc+9ny
	7zrzZ6gJgozxGNIc=
X-Google-Smtp-Source: AGHT+IFNTbJ88Vebt7uPcpDrx7uH1q4vhWtFyl9Fuj0b2JIGWmWfDNTwWMmM+SJiALLpD59ClMjuYQ==
X-Received: by 2002:a17:907:724f:b0:acb:893:8c40 with SMTP id a640c23a62f3a-ace84901512mr1102831066b.19.1745893709993;
        Mon, 28 Apr 2025 19:28:29 -0700 (PDT)
X-Forwarded-Encrypted: i=1; AJvYcCXFdOdrq4KSHscEvuZt4Vts+OFT82AlUpaUWapB23xk+2AYQAozmjeF0Oj4kN60Iq0zTMRD8P+SPR4=@lists.xenproject.org
X-Received: by 2002:a17:907:94d3:b0:ac3:446d:141 with SMTP id
 a640c23a62f3a-ace84aacbabmr901645166b.47.1745893395747; Mon, 28 Apr 2025
 19:23:15 -0700 (PDT)
MIME-Version: 1.0
References: <20250425141740.734030-1-arnd@kernel.org> <aAyiganPp_UsNlnZ@gmail.com>
 <d2b0e71c-e79b-40d6-8693-3202cd894d66@app.fastmail.com> <CAHk-=wh=TUsVv6xhtzYsWJwJggrjyOfYT3kBu+bHtoYLK0M9Xw@mail.gmail.com>
 <CAHk-=wgfk69H-T-vMWR33xUpVsWJLrF34d0OwUXa2sHhtpSwZg@mail.gmail.com>
 <e54f1943-e0ff-4f59-b24f-9b5a7a38becf@citrix.com> <CAHk-=wj0S2vWui0Y+1hpYMEhCiXKexbQ01h+Ckvww8hB29az_A@mail.gmail.com>
 <aA8nF0moBYOIgC5J@gmail.com> <aA8oqKUaFU-0wb-D@gmail.com> <CAHk-=wgJfWfWa2NTiTmev+Xr=e8Uo=aFkrXujLAQBVAVN-VigQ@mail.gmail.com>
 <B364FF6D-DFCC-42A7-ACA1-6A74E27EE57E@zytor.com> <67be5eee-b67b-409a-8309-829f891b9944@citrix.com>
 <916BD58C-E6A7-495E-9A60-722E130AC7A7@zytor.com>
In-Reply-To: <916BD58C-E6A7-495E-9A60-722E130AC7A7@zytor.com>
From: Linus Torvalds <torvalds@linux-foundation.org>
Date: Mon, 28 Apr 2025 19:22:59 -0700
X-Gmail-Original-Message-ID: <CAHk-=wg34q=Mp7abB1zgL1GnXJ9Z_dOoZiBxqyXRtHipCpuyiQ@mail.gmail.com>
X-Gm-Features: ATxdqUG_ghGMO55z_hupmo__0S_CBd8urm2dTp6Qs-e2EcpEWp5VhXjCeavjAEY
Message-ID: <CAHk-=wg34q=Mp7abB1zgL1GnXJ9Z_dOoZiBxqyXRtHipCpuyiQ@mail.gmail.com>
Subject: Re: [PATCH] bitops/32: Convert variable_ffs() and fls() zero-case
 handling to C
To: "H. Peter Anvin" <hpa@zytor.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Ingo Molnar <mingo@kernel.org>, 
	Arnd Bergmann <arnd@arndb.de>, Arnd Bergmann <arnd@kernel.org>, Thomas Gleixner <tglx@linutronix.de>, 
	Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>, 
	Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, 
	Juergen Gross <jgross@suse.com>, Boris Ostrovsky <boris.ostrovsky@oracle.com>, 
	Alexander Usyskin <alexander.usyskin@intel.com>, 
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>, =?UTF-8?Q?Mateusz_Jo=C5=84czyk?= <mat.jonczyk@o2.pl>, 
	Mike Rapoport <rppt@kernel.org>, Ard Biesheuvel <ardb@kernel.org>, Peter Zijlstra <peterz@infradead.org>, 
	linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"

On Mon, 28 Apr 2025 at 19:00, H. Peter Anvin <hpa@zytor.com> wrote:
>
> Now, question: can we just use __builtin_*() for these? I think gcc should always generate inline code for these on x86.

Yeah, I think we can just use __builtin_ffs() directly and get rid of
all the games.

Not all gcc builtins are great: I did a bugzilla about gcc ctzl some time ago:

    https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106471

but for ffs() that does sound like it's the simplest thing to do.

               Linus


From xen-devel-bounces@lists.xenproject.org Tue Apr 29 03:14:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 03:14:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.971385.1359817 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9bQY-0005FT-7R; Tue, 29 Apr 2025 03:14:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 971385.1359817; Tue, 29 Apr 2025 03:14: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 1u9bQY-0005FM-4u; Tue, 29 Apr 2025 03:14:34 +0000
Received: by outflank-mailman (input) for mailman id 971385;
 Tue, 29 Apr 2025 03:14: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=k9ft=XP=zytor.com=hpa@srs-se1.protection.inumbo.net>)
 id 1u9bQW-0005FE-6U
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 03:14:32 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0f640f41-24a8-11f0-9ffb-bf95429c2676;
 Tue, 29 Apr 2025 05:14:29 +0200 (CEST)
Received: from [127.0.0.1] ([76.133.66.138]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53T3DrjB119020
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NO);
 Mon, 28 Apr 2025 20:13:53 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0f640f41-24a8-11f0-9ffb-bf95429c2676
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53T3DrjB119020
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745896436;
	bh=peb82vM6bSNuZo6/KMKmNAvnzerA3MQBiRKI7q+5xfw=;
	h=Date:From:To:CC:Subject:In-Reply-To:References:From;
	b=a++ELqym3lrpZPy7ffY5Gnnq0aNebWAwsQMnZAleLodLhRw9gdz5sbqMpSGZxWLZS
	 /9za6Nyp1KexgNB7nXFXpN81dXKkHrxa1ti2HZylvJxMQTBsneVlMxj6hdeA6HgciA
	 tOwW0eu+NpafDEOYGpD/0HvlLtjP9WIrk2gAy8t6jg6hlHtJQF/hd8pd5fCPqLolIX
	 hx2rCTFcGPCM3TtOmG7U2KmdSt2WHoJeIWlDrJpdGMnuXqQiEcGsr4bievYSlRz9wq
	 vj77sXGyLSXoYKTA2EWk6M4qRon8YrQ8jrBfjBbkBVizg6LoYfoLnMe5Em6X49Kisx
	 gYDsmYl7YHsaA==
Date: Mon, 28 Apr 2025 20:13:52 -0700
From: "H. Peter Anvin" <hpa@zytor.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>,
        Linus Torvalds <torvalds@linux-foundation.org>,
        Ingo Molnar <mingo@kernel.org>
CC: Arnd Bergmann <arnd@arndb.de>, Arnd Bergmann <arnd@kernel.org>,
        Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>,
        Borislav Petkov <bp@alien8.de>,
        Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org,
        Juergen Gross <jgross@suse.com>,
        Boris Ostrovsky <boris.ostrovsky@oracle.com>,
        Alexander Usyskin <alexander.usyskin@intel.com>,
        Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
        =?UTF-8?Q?Mateusz_Jo=C5=84czyk?= <mat.jonczyk@o2.pl>,
        Mike Rapoport <rppt@kernel.org>, Ard Biesheuvel <ardb@kernel.org>,
        Peter Zijlstra <peterz@infradead.org>, linux-kernel@vger.kernel.org,
        xen-devel@lists.xenproject.org
Subject: =?US-ASCII?Q?Re=3A_=5BPATCH=5D_bitops/32=3A_Convert_variable?=
 =?US-ASCII?Q?=5Fffs=28=29_and_fls=28=29_zero-case_handling_to_C?=
User-Agent: K-9 Mail for Android
In-Reply-To: <e5e97ff8-9670-40d1-a0fa-69504d34c4c4@citrix.com>
References: <20250425141740.734030-1-arnd@kernel.org> <aAyiganPp_UsNlnZ@gmail.com> <d2b0e71c-e79b-40d6-8693-3202cd894d66@app.fastmail.com> <CAHk-=wh=TUsVv6xhtzYsWJwJggrjyOfYT3kBu+bHtoYLK0M9Xw@mail.gmail.com> <CAHk-=wgfk69H-T-vMWR33xUpVsWJLrF34d0OwUXa2sHhtpSwZg@mail.gmail.com> <e54f1943-e0ff-4f59-b24f-9b5a7a38becf@citrix.com> <CAHk-=wj0S2vWui0Y+1hpYMEhCiXKexbQ01h+Ckvww8hB29az_A@mail.gmail.com> <aA8nF0moBYOIgC5J@gmail.com> <aA8oqKUaFU-0wb-D@gmail.com> <CAHk-=wgJfWfWa2NTiTmev+Xr=e8Uo=aFkrXujLAQBVAVN-VigQ@mail.gmail.com> <B364FF6D-DFCC-42A7-ACA1-6A74E27EE57E@zytor.com> <67be5eee-b67b-409a-8309-829f891b9944@citrix.com> <916BD58C-E6A7-495E-9A60-722E130AC7A7@zytor.com> <e5e97ff8-9670-40d1-a0fa-69504d34c4c4@citrix.com>
Message-ID: <956DB0ED-F3DB-456D-8D06-6F40DBDB815A@zytor.com>
MIME-Version: 1.0
Content-Type: text/plain;
 charset=utf-8
Content-Transfer-Encoding: quoted-printable

On April 28, 2025 7:25:17 PM PDT, Andrew Cooper <andrew=2Ecooper3@citrix=2E=
com> wrote:
>On 29/04/2025 3:00 am, H=2E Peter Anvin wrote:
>> On April 28, 2025 5:12:13 PM PDT, Andrew Cooper <andrew=2Ecooper3@citri=
x=2Ecom> wrote:
>>> On 28/04/2025 10:38 pm, H=2E Peter Anvin wrote:
>>>> On April 28, 2025 9:14:45 AM PDT, Linus Torvalds <torvalds@linux-foun=
dation=2Eorg> wrote:
>>>>> On Mon, 28 Apr 2025 at 00:05, Ingo Molnar <mingo@kernel=2Eorg> wrote=
:
>>>>>> And once we remove 486, I think we can do the optimization below to
>>>>>> just assume the output doesn't get clobbered by BS*L in the zero-ca=
se,
>>>>>> right?
>>>>> We probably can't, because who knows what "Pentium" CPU's are out th=
ere=2E
>>>>>
>>>>> Or even if Pentium really does get it right=2E I doubt we have any
>>>>> developers with an original Pentium around=2E
>>>>>
>>>>> So just leave the "we don't know what the CPU result is for zero"
>>>>> unless we get some kind of official confirmation=2E
>>>>>
>>>>>          Linus
>>>> If anyone knows for sure, it is probably Christian Ludloff=2E However=
, there was a *huge* tightening of the formal ISA when the i686 was introdu=
ced (family=3D6) and I really believe this was part of it=2E
>>>>
>>>> I also really don't trust that family=3D5 really means conforms to un=
documented P5 behavior, e=2Eg=2E for Quark=2E
>>> https://www=2Esandpile=2Eorg/x86/flags=2Ehtm
>>>
>>> That's a lot of "can't even characterise the result" in the P5=2E
>>>
>>> Looking at P4 column, that is clearly what the latest SDM has
>>> retroactively declared to be architectural=2E
>>>
>>> ~Andrew
>> Yes, but it wasn't about flags here=2E=20
>>
>> Now, question: can we just use __builtin_*() for these? I think gcc sho=
uld always generate inline code for these on x86=2E
>
>Yes it does generate inline code=2E=C2=A0 https://godbolt=2Eorg/z/M45oo5r=
qT
>
>GCC does it branchlessly, but cannot optimise based on context=2E
>
>Clang can optimise based on context, except the 0 case it seems=2E
>
>Moving to -march=3Di686 causes both GCC and Clang to switch to CMOV and
>create branchless code, but is still GCC still can't optimise out the
>CMOV based on context=2E
>
>~Andrew

Maybe a gcc bug report would be better than trying to hack around this in =
the kernel?


From xen-devel-bounces@lists.xenproject.org Tue Apr 29 06:14:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 06:14:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.971417.1359828 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9eEN-0003ez-Rk; Tue, 29 Apr 2025 06:14:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 971417.1359828; Tue, 29 Apr 2025 06:14: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 1u9eEN-0003es-OL; Tue, 29 Apr 2025 06:14:11 +0000
Received: by outflank-mailman (input) for mailman id 971417;
 Tue, 29 Apr 2025 06:14: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=qXnC=XP=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u9eEM-0003em-RX
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 06:14:10 +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 296772e8-24c1-11f0-9eb4-5ba50f476ded;
 Tue, 29 Apr 2025 08:14:09 +0200 (CEST)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-ac2ab99e16eso1211742566b.0
 for <xen-devel@lists.xenproject.org>; Mon, 28 Apr 2025 23:14:09 -0700 (PDT)
Received: from [10.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-ace6e4fb5ecsm728919466b.71.2025.04.28.23.14.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 28 Apr 2025 23:14: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: 296772e8-24c1-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745907248; x=1746512048; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=CEHyaoDMFKGRU1E2AmIUNeNgLo2ACJqKO89ucJ4zOd0=;
        b=A5eV6+mMFMz5NQAv7ndTyFQ67ZpcUB7zuUNqB004m4ldQ91Pxj7cZmPuiibnDB6gi6
         gN6zDEfeJoifryk6wJZtxgi55tH+eItthhbLuDB18G5nY1mzs++4FUZYgrsdT9qQL1OZ
         PAnr+rjfJWNXPzfGr6TTqSkS/6rjMGEHrVY9TS9+vMRBc3wfgzXtT12fnpA6j4WR+hjq
         hp0s7zYu7VobwK9hbUhQgusqLMlricE1x1lvkbpeWPxQlzclHnqvy2reBM5IahB6U6Nm
         yN1s9e4g34Vu25iaXuC90r5clQR6TGxH1po6BRkObfCAZLpQDr9aLPN4pnBBd58EaH5Z
         dFQQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745907248; x=1746512048;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=CEHyaoDMFKGRU1E2AmIUNeNgLo2ACJqKO89ucJ4zOd0=;
        b=E4CcxbKM5XAj4iirUx9ZhFT6fP2f/E9ttLdhQxCQeCvB+0I0zJKvvE/cntldlEaWf+
         IFE3T7g1Pfk+FepZkW14Ey3i9tN7wJLBZ4ab57zTAnS34FHx6CzdhUaYrlB/NGIQqO7L
         qGhHO+sPtga5nBokgkJfInLlplWVXGn+kFLMMhOKAvTmq+xVEvPdkZV61VjYSQ+zGOtR
         iJs6SISrptZUOR85kxojMTQmb6l5G0xaRyrniY/YaT9mq7HLfbXcjhnMslEYQm9irpJW
         iJ/p00jn/kPg92R9HDwYa5+yH07RPkQofuJpb637JqNF9u7ZJaiqZxBdL03948tVxO56
         YD7g==
X-Forwarded-Encrypted: i=1; AJvYcCUakra2o1Ezo2Cx2l2H+creodQMDTtXpriZI2R723lVKJhysUyM7h1PGJCYXHfyDPKdwKhhIDEzyZk=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywa2k7VEb4FTcghHV2pEXpYTN/QyW+8+DZ2qCgY8NOgzEQM9AOG
	DnC+dRU0s+HE/9624pBlQNyodidEJXWqAQdNdA2siVqoNrkKWkuqeJ887qMjUw==
X-Gm-Gg: ASbGncvvLl/mM0VnV/oVLj277U6q2010/IZl/VmzJApAtYKaWXCnXiem3vVX3ynnMiH
	fX1p0JZY3FxzOCbjsOzeZqifDDuHYF75By8avOcsQSApcZGauxYkrvzq5k04Vo8DXl6kaJKeTsz
	tMneaGZplVEAME8FBBPQZ36qpc2VD31FbMtA6d+1DRGgxI9QF6WIC+0PC3gU1UErPqOORiI0CzT
	MzL+xGpqknr535WAiwTasqoLnOpBEPZyTBJecB/8IwxjXP/uKIkDrVslbsyiTAvKQm5iytxITEk
	jNdFQFgyA1X9NqxpQi6/vPSuuW+IrXQc+fOAHf+BJUJx4XyF7sft2bBDGsUEfXCYRhiXYcj2HSy
	7qECnZCfO23d/enz6xAliQlbodA==
X-Google-Smtp-Source: AGHT+IFfWFULhOwajRgdME0/ajfWYODSGgBwirsnHCHfUlUpp6FRPM3ai8a3L00HehzthyC/J8sY2g==
X-Received: by 2002:a17:907:7244:b0:ac7:322d:779c with SMTP id a640c23a62f3a-acec4f749e0mr219030066b.50.1745907248518;
        Mon, 28 Apr 2025 23:14:08 -0700 (PDT)
Message-ID: <f2b6396c-c933-4fb9-ba4b-c90170540955@suse.com>
Date: Tue, 29 Apr 2025 08:14:07 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 1/2] xen/page_alloc: address violation of Rule 14.3
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: victorm.lira@amd.com, Federico Serafini <federico.serafini@bugseng.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Nicola Vetrini <nicola.vetrini@bugseng.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>, xen-devel@lists.xenproject.org
References: <5f2e316aae4667d1fe851e68552eb881c4d5a015.1745625477.git.victorm.lira@amd.com>
 <3146fbf3-2ff1-48a4-b05b-37477a9a5cc5@suse.com>
 <alpine.DEB.2.22.394.2504281551530.785180@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.2504281551530.785180@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 29.04.2025 01:21, Stefano Stabellini wrote:
> On Mon, 28 Apr 2025, Jan Beulich wrote:
>> On 26.04.2025 02:00, victorm.lira@amd.com wrote:
>>> From: Federico Serafini <federico.serafini@bugseng.com>
>>>
>>> MISRA C Rule 14.3 states that "Controlling expressions shall not be
>>> invariant".
>>>
>>> Add a SAF comment to deviate the rule for build configurations without
>>> CONFIG_LLC_COLORING enabled.
>>
>> I was surprised by this supposedly being the only violation. And indeed it
>> wasn't very hard to find more. For example, we have a number of
>> "while ( num_online_cpus() > 1 && ... )", which become compile-time
>> constant (false) when NR_CPUS=1.
> 
> Uhm, I did run a special scan for this and I can confirm no other
> violations are detected.

Because of it being only one single configuration that's being scanned. I did
point out before that this is a problem for anyone wanting to certify the
hypervisor in a (perhaps just slightly) different configuration.

>>> --- a/xen/common/page_alloc.c
>>> +++ b/xen/common/page_alloc.c
>>> @@ -2038,6 +2038,7 @@ static struct page_info *alloc_color_heap_page(unsigned int memflags,
>>>
>>>      spin_lock(&heap_lock);
>>>
>>> +    /* SAF-14-safe MISRA C R14.3 condition always false without LLC_COLORING */
>>>      for ( i = 0; i < domain_num_llc_colors(d); i++ )
>>>      {
>>>          unsigned long free = free_colored_pages[domain_llc_color(d, i)];
>>
>> Hmm, this way the deviation applies even when LLC_COLORING=y.
> 
> Yes but in the LLC_COLORING=y case it is harmless. Do you have something
> else in mind?

What if, perhaps by mistake, domain_num_llc_colors() becomes constant 0 in
yet another configuration? (I don't expect this would work, but in principle
the comment ought to be inside an #ifdef.)

>> As to the comment wording - looks like we're pretty inconsistent with that
>> right now. I, for one, don't think the Misra rule needs (re)stating there;
>> the SAF index points at all the data that's needed if one cares about the
>> specifics of the deviation.
> 
> Do you prefer:
> 
> /* SAF-14-safe */

That's too short. All I'm asking for is to drop the (imprecise) rule
reference. Noticing only now: It being imprecise may make the comment go
stale if we move to a newer Misra spec, as the rule number may be different
then.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 29 06:24:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 06:24:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.971429.1359838 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9eOQ-0005Ro-P1; Tue, 29 Apr 2025 06:24:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 971429.1359838; Tue, 29 Apr 2025 06:24: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 1u9eOQ-0005Rh-L3; Tue, 29 Apr 2025 06:24:34 +0000
Received: by outflank-mailman (input) for mailman id 971429;
 Tue, 29 Apr 2025 06:24: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=qXnC=XP=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u9eOP-0005Rb-Mh
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 06:24:33 +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 9c51fd7d-24c2-11f0-9ffb-bf95429c2676;
 Tue, 29 Apr 2025 08:24:31 +0200 (CEST)
Received: by mail-ed1-x52c.google.com with SMTP id
 4fb4d7f45d1cf-5f5bef591d6so10774148a12.1
 for <xen-devel@lists.xenproject.org>; Mon, 28 Apr 2025 23:24:31 -0700 (PDT)
Received: from [10.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-5f701400565sm7051142a12.26.2025.04.28.23.24.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 28 Apr 2025 23:24: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: 9c51fd7d-24c2-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745907871; x=1746512671; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=QU6KR1YCqqkt4ZtbdPgZPAuqHqCzoFWZnGvVxGCK7Es=;
        b=D+WL8PwZ2pR7sRC521SkQc1LBtl50wRnQAVk5zBZtDnxUH050rbY+vRqpqbJdPFceE
         VS7fAgb1iLHtCXttUpdd9cx370E18RfmRa3LM6bpRtTQtjHH1mfowmSHZyLUZ06YpodN
         2HlR2TdqGVftqyPbd4LI7NtmzmjEov2RlqbocdVe7JZ/daSR2scVl0W+tyf5uD6xZGld
         LL+OP453pONm4DwYPEt1O/O0e/P2qr2DZhTEcWHH8qnGu444aXcJcP1tVX4hgzDNMUkM
         0vsbN64kfqzzpGNSfolozK5pCXSK+ulOPhjxffTiUwCP3u3ZC/Ky9ASlH7T9G6VT4VLQ
         LM1Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745907871; x=1746512671;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=QU6KR1YCqqkt4ZtbdPgZPAuqHqCzoFWZnGvVxGCK7Es=;
        b=AMTT1f8bPvwDz5Rd/36yLOMciD9rN7M3KBj4EJOnObEfjAAPz5C903f+hdkRJpmTSM
         LW3IrQf/pE/2I2CcntKNGE27OhCzXzKieltmQLrO5J3bZbzG1WWbOLPPkhPDJzobSXzH
         +d/Sqdyu2KZ6kJO3X/sTDjVD5mFJC5xefR+v0td3uPhpQz38mgNLeN3ESQotQJT5erQ8
         J5AW1ZW5i8LY3QIgYK6BQCZsFNRC1LWuEpdC6Mc/25MuqY9mPcEjKqYSYCP/ozuskmAZ
         MQTYxqMP5YY3vkozWl11Av8fnO7l0ohuz7rcfe/vf7JgEKZjX4M3Jgjn+QIYkdSL/yqm
         g5EQ==
X-Gm-Message-State: AOJu0Yw0US4RBFof/rVbbWKGt6W6wVjuhPjV459+mJPL4bQpBuKFiowm
	s4WRsWWWs6Djf3rCEHk/kc5K5GpAm31UWFNl/ge3OVfl6r1d5M/UAaJrWuWNAg==
X-Gm-Gg: ASbGncsieb9cTPxtCzUSRHdAbWIiy8Yo1WJ6EvYIgLJFjp4RUrJhsCrt//SPr85DjYV
	/9Qm8zo1FuhLhkIBN7pup11yeunL7qpmmdLks1uolnPhRAELL8/giiPid772amCcU2+6A41kJ5R
	qy7pM6vPlWchVMnUo+IR7nBqqxwt5ibnl3Q+He+BJIHNm/2NyNHjiy7Bni2wZtw+UVI7XDFLPab
	BSDrTo4R6qodaiAawvFwayuQ0h0yOH4EgKje0yj51FwLSoX0HEXpKQMmJax4ZXCiyzixb4J/dN6
	B+nYj3uAJt+O1faFFItC0grCUoeiRlmfS0FnCj1Iubq1XUvx3ypgYwo2XEUBONZZodOHKjgahCu
	/jGQZD0e+TDSHly4aX1QNLAjFVA==
X-Google-Smtp-Source: AGHT+IGe8rFc3WgZ4vnk27HtedbG8H9qmLwB63qtaJdSSIu7e8rtacdyTEOOrU4UwWvrKGHD7xa65Q==
X-Received: by 2002:a05:6402:510b:b0:5f6:d53f:cb9d with SMTP id 4fb4d7f45d1cf-5f83b27dcb4mr1485727a12.30.1745907870873;
        Mon, 28 Apr 2025 23:24:30 -0700 (PDT)
Message-ID: <c9ed2626-6353-4e4e-add8-e06ffff54427@suse.com>
Date: Tue, 29 Apr 2025 08:24:29 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/x86: allow Dom0 PVH to call XENMEM_exchange
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: xen-devel@lists.xenproject.org, Andrew Cooper
 <andrew.cooper3@citrix.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, "Ragiadakou, Xenia" <Xenia.Ragiadakou@amd.com>,
 jason.andryuk@amd.com, agarciav@amd.com, Teddy Astie <teddy.astie@vates.tech>
References: <alpine.DEB.2.22.394.2504251314050.785180@ubuntu-linux-20-04-desktop>
 <f315a128-ce68-42be-9f0c-044ad0c5320c@vates.tech>
 <alpine.DEB.2.22.394.2504281300340.785180@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.2504281300340.785180@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 28.04.2025 22:02, Stefano Stabellini wrote:
> On Mon, 28 Apr 2025, Teddy Astie wrote:
>> Hello Stefano,
>>
>> Le 25/04/2025 à 22:21, Stefano Stabellini a écrit :
>>> From: Xenia Ragiadakou <Xenia.Ragiadakou@amd.com>
>>>
>>> Dom0 PVH might need XENMEM_exchange when passing contiguous memory
>>> addresses to firmware or co-processors not behind an IOMMU.
>>>
>>> XENMEM_exchange was blocked for HVM/PVH DomUs, and accidentally it
>>> impacted Dom0 PVH as well.
>>>
>>> Permit Dom0 PVH to call XENMEM_exchange while leaving it blocked for
>>> HVM/PVH DomUs.
>>>
>>
>> In addition to Jan's remarks, I think it wants some additional
>> clarifications on the hypercall interface. public/memory.h indicates
>> "only PV guests can use this operation", so the interface is actually
>> unspecified about HVM guests (e.g what are MFN/GMFN in this case ?).
> 
> That is a new addition from c08a11ab98c.

Later addition or not, I agree with Teddy that it wants amending.

Jan

> If you see fae7d5be8bb, there
> is a statement that "we permitted this operation".



From xen-devel-bounces@lists.xenproject.org Tue Apr 29 06:33:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 06:33:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.971405.1359871 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9eX9-0007c5-NG; Tue, 29 Apr 2025 06:33:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 971405.1359871; Tue, 29 Apr 2025 06: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 1u9eX9-0007Z2-Fn; Tue, 29 Apr 2025 06:33:35 +0000
Received: by outflank-mailman (input) for mailman id 971405;
 Tue, 29 Apr 2025 04:06: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=WGTB=XP=kernel.org=devnull+chenlinxuan.uniontech.com@srs-se1.protection.inumbo.net>)
 id 1u9cEo-0003mv-IB
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 04:06:30 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4d53a7f5-24af-11f0-9ffb-bf95429c2676;
 Tue, 29 Apr 2025 06:06:19 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id D24B068429;
 Tue, 29 Apr 2025 04:05:51 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPS id CD555C4CEF1;
 Tue, 29 Apr 2025 04:06:16 +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 BD4A1C3ABA6;
 Tue, 29 Apr 2025 04:06:16 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4d53a7f5-24af-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1745899576;
	bh=pJ9VpLz2vL2PDt7J0K2cXMYeDKnStbQajileR/wxzK8=;
	h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From;
	b=FyUVqYls/+KqU5DpInz9ZWqZ/4CAAzIPkLtTAq2+9vTbtkfDvRR2CjebexTY9QBGl
	 a18CtmbbDxF0tvb3AcYhTkIyRG0rGmIkJvOQyXGZmREvsxGc9clSCgXVDMI44bfCOB
	 RwUBZ5vLAptbw96/QZcz10zYj2Ww1cjxiuhaCIV1kmi57bliowHPSI7urlxZe9vKEG
	 oDldZTQDIsI86OtD5RmJoGS5Kqw98y9Y2hrIZWtmhbDW+Op3bNrJJxNcoQ6l/9xD1A
	 sZMVPjVE+TJH9Zf+qU8izf83pAhbghYD3h20CeX6p7lBgVhUV7G4DchS76qQNbjUfj
	 iEE1ouz0ZXZDA==
From: Chen Linxuan via B4 Relay <devnull+chenlinxuan.uniontech.com@kernel.org>
Date: Tue, 29 Apr 2025 12:06:06 +0800
Subject: [PATCH RFC v3 2/8] mm: add __always_inline for
 page_contains_unaccepted
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20250429-noautoinline-v3-2-4c49f28ea5b5@uniontech.com>
References: <20250429-noautoinline-v3-0-4c49f28ea5b5@uniontech.com>
In-Reply-To: <20250429-noautoinline-v3-0-4c49f28ea5b5@uniontech.com>
To: Keith Busch <kbusch@kernel.org>, Jens Axboe <axboe@kernel.dk>, 
 Christoph Hellwig <hch@lst.de>, Sagi Grimberg <sagi@grimberg.me>, 
 Andrew Morton <akpm@linux-foundation.org>, 
 Yishai Hadas <yishaih@nvidia.com>, Jason Gunthorpe <jgg@ziepe.ca>, 
 Shameer Kolothum <shameerali.kolothum.thodi@huawei.com>, 
 Kevin Tian <kevin.tian@intel.com>, 
 Alex Williamson <alex.williamson@redhat.com>, 
 Peter Huewe <peterhuewe@gmx.de>, Jarkko Sakkinen <jarkko@kernel.org>, 
 Masahiro Yamada <masahiroy@kernel.org>, 
 Nathan Chancellor <nathan@kernel.org>, 
 Nicolas Schier <nicolas.schier@linux.dev>, 
 Nick Desaulniers <nick.desaulniers+lkml@gmail.com>, 
 Bill Wendling <morbo@google.com>, Justin Stitt <justinstitt@google.com>, 
 Vlastimil Babka <vbabka@suse.cz>, Suren Baghdasaryan <surenb@google.com>, 
 Michal Hocko <mhocko@suse.com>, Brendan Jackman <jackmanb@google.com>, 
 Johannes Weiner <hannes@cmpxchg.org>, Zi Yan <ziy@nvidia.com>, 
 Mathieu Desnoyers <mathieu.desnoyers@efficios.com>, 
 Peter Zijlstra <peterz@infradead.org>, 
 "Paul E. McKenney" <paulmck@kernel.org>, Boqun Feng <boqun.feng@gmail.com>, 
 Dmitry Vyukov <dvyukov@google.com>, Andrey Konovalov <andreyknvl@gmail.com>, 
 Juergen Gross <jgross@suse.com>, 
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, 
 Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>, 
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, 
 x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>
Cc: linux-nvme@lists.infradead.org, linux-kernel@vger.kernel.org, 
 linux-mm@kvack.org, kvm@vger.kernel.org, virtualization@lists.linux.dev, 
 linux-integrity@vger.kernel.org, linux-kbuild@vger.kernel.org, 
 llvm@lists.linux.dev, Winston Wen <wentao@uniontech.com>, 
 kasan-dev@googlegroups.com, xen-devel@lists.xenproject.org, 
 Chen Linxuan <chenlinxuan@uniontech.com>, 
 Changbin Du <changbin.du@intel.com>
X-Mailer: b4 0.14.2
X-Developer-Signature: v=1; a=openpgp-sha256; l=2614;
 i=chenlinxuan@uniontech.com; h=from:subject:message-id;
 bh=+y8wKlsn55GLtsirs4Essnozl8lVGDb1RUHKRb3UGRw=;
 b=owEBbQKS/ZANAwAKAXYe5hQ5ma6LAcsmYgBoEFAvQHTkSNXJxyOgEHVD9PhzBBGToDo54ToKB
 JTzQ3Bt13uJAjMEAAEKAB0WIQTO1VElAk6xdvy0ZVp2HuYUOZmuiwUCaBBQLwAKCRB2HuYUOZmu
 i2wDD/94Tikof0KqTbmGNltSJN0BkZfS5swTBN23SRIvCigAsJMsSAEE8+hsOfF5ug0IHuwNOI/
 1Qnd48PesFnCihU7hm3JfucE304u3ikq3JpHS8byjD3Iq2171RsPQwl30uxz+vEZ8hzs0TpTQBL
 tbOgvO5HS5tVi2N8UEoiRrD/AIGE1AKJx646BKh7BWEfqlVn8Piwh3FS7UZcthV+4LqoV/TILJ5
 CqwIUJDj8ZerV5DorB5SDBkZEPqwYLdujwzVjj9cp8vZwKMj+w/cFPS+07AzMtQNZybB8QumHsU
 DHQmASWQEn05ggN/6NnlkKJvxaDxaREGdoSN4rVPnwenoh7XG44AwW+NWt2oRVUae7CdZaTJ02f
 UozQggCd6pQA5H1c2SG9aalj7diOg0zrkq7srXqL9aVnJGeGkbSHAIxpmoG3bA+uXmBJSKWtr2+
 7DF6eO6UhF2ql4ur4skO7HIRADaqOFdEcIXMoQ8iutz4ml3kKwVIMhsOOAXwoXgNTZw6dPFvTUK
 oOGrXVNKLy/fJX/0x7AiWVUMQSMsG/Kuios2R+atYaJYgzNmP+h2IF2Il+UfCg1zti1vGWy17fO
 jFSai1Av+dm6o4iuFeMJx4Tgo52MAnqfyksIfcNlB+/tDcM4IwZn3C7WTQp9uxdiHyZV0edPtRS
 Z2AKjqx+hU/5gsw==
X-Developer-Key: i=chenlinxuan@uniontech.com; a=openpgp;
 fpr=D818ACDD385CAE92D4BAC01A6269794D24791D21
X-Endpoint-Received: by B4 Relay for chenlinxuan@uniontech.com/default with
 auth_id=380
X-Original-From: Chen Linxuan <chenlinxuan@uniontech.com>
Reply-To: chenlinxuan@uniontech.com

From: Winston Wen <wentao@uniontech.com>

On x86_64 with gcc version 13.3.0, I compile mm/page_alloc.c with:

  make defconfig
  make KCFLAGS="-fno-inline-small-functions -fno-inline-functions-called-once" \
    mm/page_alloc.o

Then I get a compile error:

    CALL    scripts/checksyscalls.sh
    DESCEND objtool
    INSTALL libsubcmd_headers
    CC      mm/page_alloc.o
  In file included from <command-line>:
  mm/page_alloc.c: In function '__free_unaccepted.isra':
  ././include/linux/compiler_types.h:557:45: error: call to '__compiletime_assert_1013' declared with attribute error: BUILD_BUG failed
    557 |         _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
        |                                             ^
  ././include/linux/compiler_types.h:538:25: note: in definition of macro '__compiletime_assert'
    538 |                         prefix ## suffix();                             \
        |                         ^~~~~~
  ././include/linux/compiler_types.h:557:9: note: in expansion of macro '_compiletime_assert'
    557 |         _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
        |         ^~~~~~~~~~~~~~~~~~~
  ./include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert'
     39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
        |                                     ^~~~~~~~~~~~~~~~~~
  ./include/linux/build_bug.h:59:21: note: in expansion of macro 'BUILD_BUG_ON_MSG'
     59 | #define BUILD_BUG() BUILD_BUG_ON_MSG(1, "BUILD_BUG failed")
        |                     ^~~~~~~~~~~~~~~~
  mm/page_alloc.c:7301:9: note: in expansion of macro 'BUILD_BUG'
   7301 |         BUILD_BUG();
        |         ^~~~~~~~~

Marking page_contains_unaccepted with __always_inline and let dead code
elimination remove reference to __free_unaccepted() here.

Co-developed-by: Chen Linxuan <chenlinxuan@uniontech.com>
Signed-off-by: Chen Linxuan <chenlinxuan@uniontech.com>
Signed-off-by: Winston Wen <wentao@uniontech.com>
---
 mm/page_alloc.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index 5669baf2a6fea75c17b2be426443a6cf29051f52..433dc1936114469a323c8f3659730747965b2c3d 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -7346,7 +7346,7 @@ static bool __free_unaccepted(struct page *page)
 
 #else
 
-static bool page_contains_unaccepted(struct page *page, unsigned int order)
+static __always_inline bool page_contains_unaccepted(struct page *page, unsigned int order)
 {
 	return false;
 }

-- 
2.43.0




From xen-devel-bounces@lists.xenproject.org Tue Apr 29 06:33:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 06:33:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.971407.1359888 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9eXA-0007t8-JA; Tue, 29 Apr 2025 06:33:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 971407.1359888; Tue, 29 Apr 2025 06:33:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9eXA-0007pz-7S; Tue, 29 Apr 2025 06:33:36 +0000
Received: by outflank-mailman (input) for mailman id 971407;
 Tue, 29 Apr 2025 04:06: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=WGTB=XP=kernel.org=devnull+chenlinxuan.uniontech.com@srs-se1.protection.inumbo.net>)
 id 1u9cEp-0003lQ-Pm
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 04:06:31 +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 4d6b6cd6-24af-11f0-9eb4-5ba50f476ded;
 Tue, 29 Apr 2025 06:06:19 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by nyc.source.kernel.org (Postfix) with ESMTP id CDFCCA4BB08;
 Tue, 29 Apr 2025 04:00:49 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPS id 58FE1C4CEFF;
 Tue, 29 Apr 2025 04:06:17 +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 4C8CFC3ABA8;
 Tue, 29 Apr 2025 04:06: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: 4d6b6cd6-24af-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1745899577;
	bh=I3qZ450wr0Q9CAPbI9DMJdfFZ5c1+02YMYdsGYpKCO4=;
	h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From;
	b=JE0vEjoKdI3aoLXySgz46sIqLxGHS10+ctvdryhzIzUS4HhXuF3Tl298hubpjKFM/
	 w6TK/WAFgLyiSvmTT0C7btzFR8/sJwuEVJ7dvhLp/FopZjfp4F38JZxjFbjWToxx+2
	 ZOs3hbeOeMzuD9W/l6w5BjAZ2TP8rnJk5mpj6qfsfebVTmp5WeguGbLar2dJg+54Ta
	 BQeBNnkwOGxnWBYdRi+L77qoR8Ib+Sgt4uGR4FMtkCWkIFE7JcS9361sDdnaf8uzpI
	 5PpYZSpLvvidhBYF+z1LHu2vN47VszMgmkxuY95ZwPxZ0LohS1hnrc8xtucx7pzmvs
	 64lF44iLXmi+w==
From: Chen Linxuan via B4 Relay <devnull+chenlinxuan.uniontech.com@kernel.org>
Date: Tue, 29 Apr 2025 12:06:12 +0800
Subject: [PATCH RFC v3 8/8] lib/Kconfig.debug: introduce
 CONFIG_NO_AUTO_INLINE
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20250429-noautoinline-v3-8-4c49f28ea5b5@uniontech.com>
References: <20250429-noautoinline-v3-0-4c49f28ea5b5@uniontech.com>
In-Reply-To: <20250429-noautoinline-v3-0-4c49f28ea5b5@uniontech.com>
To: Keith Busch <kbusch@kernel.org>, Jens Axboe <axboe@kernel.dk>, 
 Christoph Hellwig <hch@lst.de>, Sagi Grimberg <sagi@grimberg.me>, 
 Andrew Morton <akpm@linux-foundation.org>, 
 Yishai Hadas <yishaih@nvidia.com>, Jason Gunthorpe <jgg@ziepe.ca>, 
 Shameer Kolothum <shameerali.kolothum.thodi@huawei.com>, 
 Kevin Tian <kevin.tian@intel.com>, 
 Alex Williamson <alex.williamson@redhat.com>, 
 Peter Huewe <peterhuewe@gmx.de>, Jarkko Sakkinen <jarkko@kernel.org>, 
 Masahiro Yamada <masahiroy@kernel.org>, 
 Nathan Chancellor <nathan@kernel.org>, 
 Nicolas Schier <nicolas.schier@linux.dev>, 
 Nick Desaulniers <nick.desaulniers+lkml@gmail.com>, 
 Bill Wendling <morbo@google.com>, Justin Stitt <justinstitt@google.com>, 
 Vlastimil Babka <vbabka@suse.cz>, Suren Baghdasaryan <surenb@google.com>, 
 Michal Hocko <mhocko@suse.com>, Brendan Jackman <jackmanb@google.com>, 
 Johannes Weiner <hannes@cmpxchg.org>, Zi Yan <ziy@nvidia.com>, 
 Mathieu Desnoyers <mathieu.desnoyers@efficios.com>, 
 Peter Zijlstra <peterz@infradead.org>, 
 "Paul E. McKenney" <paulmck@kernel.org>, Boqun Feng <boqun.feng@gmail.com>, 
 Dmitry Vyukov <dvyukov@google.com>, Andrey Konovalov <andreyknvl@gmail.com>, 
 Juergen Gross <jgross@suse.com>, 
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, 
 Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>, 
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, 
 x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>
Cc: linux-nvme@lists.infradead.org, linux-kernel@vger.kernel.org, 
 linux-mm@kvack.org, kvm@vger.kernel.org, virtualization@lists.linux.dev, 
 linux-integrity@vger.kernel.org, linux-kbuild@vger.kernel.org, 
 llvm@lists.linux.dev, Winston Wen <wentao@uniontech.com>, 
 kasan-dev@googlegroups.com, xen-devel@lists.xenproject.org, 
 Chen Linxuan <chenlinxuan@uniontech.com>, 
 Changbin Du <changbin.du@intel.com>
X-Mailer: b4 0.14.2
X-Developer-Signature: v=1; a=openpgp-sha256; l=4279;
 i=chenlinxuan@uniontech.com; h=from:subject:message-id;
 bh=Bd93x7WuEFeV0iOsS3dMjqDGQS+n9awf6aimsKD9UOk=;
 b=owEBbQKS/ZANAwAKAXYe5hQ5ma6LAcsmYgBoEFA1dN0rUHGv15CSgUAacYmKqLp9Xxxon6yon
 c7TiGmprM+JAjMEAAEKAB0WIQTO1VElAk6xdvy0ZVp2HuYUOZmuiwUCaBBQNQAKCRB2HuYUOZmu
 i55nD/9Z3vTJGmV0EjUhmeI4qXKmcdAMAq1X/bMvCKKqJb8nDqxr3XzOsrgtlGbWtGbSRpAcMRC
 kIBZwz/EFrXdSky2mgTEfswE2JzuHKo+Mt434POfvbTmTZzfhinHk2rveNLn14K6QQxOZNTHzoq
 DY3XtiBsr5/6XiSk58sFs0UB2do+v1RDxbRgPVRbwakBRf2EpGtYK+ZkSVPourJzkqG7PrIvHKY
 FyKSLRcxh2ehQ+zdjfMyhxbXKMW3rLF6KyReLohSbuPnAZH9vBG07d85cT+hlqayZ2VFrTJWayX
 ogvHBmQbs0jd6kEOOcqxulI9+HLWeFHpLWXkscXCbtKYFnN3of88CFc5dM1NBfTsa2bE/5c69eS
 TXaS9CEvSaJLZP2bguKxeYXuKMcX7aCIEmkb5ywt+zXQ2sBHHXVo62B2vH+ZEPTvJ0JBvREoDHA
 Z07bh3e0yi+U/gCk96uDLgnOmSkQUjen6r/WDp03CqP8r46lIU2aWAN8mPN0/bL6Leb+yx3Y5Gf
 MfHerWdPEqYeBh6stf8GRI22HdoAjnaigM4iGlYaLrvgjiuVjR2tHFFGtnPEviP7O+74W7AnPTn
 n9vHmKNe5H9AurNLXL/K7j5eRYSPpaBVROMuUUngVLHw7qljfnSQMwRNYonB6pGCO3WTd5AnIHj
 tq2/DJ+5MgngDcg==
X-Developer-Key: i=chenlinxuan@uniontech.com; a=openpgp;
 fpr=D818ACDD385CAE92D4BAC01A6269794D24791D21
X-Endpoint-Received: by B4 Relay for chenlinxuan@uniontech.com/default with
 auth_id=380
X-Original-From: Chen Linxuan <chenlinxuan@uniontech.com>
Reply-To: chenlinxuan@uniontech.com

From: Chen Linxuan <chenlinxuan@uniontech.com>

Add a new kernel hacking option CONFIG_NO_AUTO_INLINE that prevents the
compiler from auto-inlining functions not explicitly marked with the
'inline' keyword.

This enhancement improves function tracer capabilities as it can only
trace functions that haven't been inlined by the compiler.

Previous discussions:

Link: https://lore.kernel.org/all/20181028130945.23581-3-changbin.du@gmail.com/

This patch is modified from commit 917fad29febd ("kernel hacking: add a
config option to disable compiler auto-inlining") which can be founded
in linux-next-history:

Link: https://web.git.kernel.org/pub/scm/linux/kernel/git/next/linux-next-history.git/commit/?id=917fad29febd

Cc: Changbin Du <changbin.du@gmail.com>
Co-developed-by: Winston Wen <wentao@uniontech.com>
Signed-off-by: Winston Wen <wentao@uniontech.com>
Signed-off-by: Chen Linxuan <chenlinxuan@uniontech.com>
---
 Makefile          | 16 ++++++++++++++++
 lib/Kconfig.debug | 21 +++++++++++++++++++++
 lib/Makefile      |  3 +++
 3 files changed, 40 insertions(+)

diff --git a/Makefile b/Makefile
index 5aa9ee52a765b7aed27f44028cdcc34a90979acb..60dec6c123543150a3332a9a819fa6933e94db4f 100644
--- a/Makefile
+++ b/Makefile
@@ -1073,6 +1073,22 @@ endif
 # Ensure compilers do not transform certain loops into calls to wcslen()
 KBUILD_CFLAGS += -fno-builtin-wcslen
 
+ifdef CONFIG_NO_AUTO_INLINE
+# -fno-inline-functions behaves differently between gcc and clang.
+# With gcc, it prevents auto-inlining of functions but still considers functions
+# explicitly marked with "inline" for inlining. However, with clang, the flag
+# prevents inlining of all functions, including those explicitly marked with
+# inline. Clang provides the "-finline-hint-functions" option, which
+# specifically allows inlining of functions marked with "inline".
+#
+# In summary, to achieve equivalent behavior across compilers:
+# -fno-inline-functions (gcc) = -fno-inline-functions + -finline-hint-functions (clang)
+KBUILD_CFLAGS   += -fno-inline-functions \
+		   $(call cc-option, -finline-hint-functions) \
+		   $(call cc-option, -fno-inline-small-functions) \
+		   $(call cc-option, -fno-inline-functions-called-once)
+endif
+
 # change __FILE__ to the relative path to the source directory
 ifdef building_out_of_srctree
 KBUILD_CPPFLAGS += $(call cc-option,-ffile-prefix-map=$(srcroot)/=)
diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
index f9051ab610d54358b21d61c141b737bb345b4cee..56530f0145c885e9846dae1d2f8c6125c610d25b 100644
--- a/lib/Kconfig.debug
+++ b/lib/Kconfig.debug
@@ -436,8 +436,29 @@ config GDB_SCRIPTS
 	  instance. See Documentation/process/debugging/gdb-kernel-debugging.rst
 	  for further details.
 
+
 endif # DEBUG_INFO
 
+config NO_AUTO_INLINE
+	bool "Disable compiler auto-inline optimizations (EXPERIMENTAL)"
+	default n
+	help
+	  This will prevent the compiler from optimizing the kernel by
+	  auto-inlining functions not marked with the inline keyword.
+	  With this option, only functions explicitly marked with
+	  "inline" will be inlined. This will allow the function tracer
+	  to trace more functions because it only traces functions that
+	  the compiler has not inlined.
+
+	  Note that Clang with -O2 optimization does not fully support
+	  disabling all inline-related optimizations,
+	  as Clang does not support options like
+	  -fno-inline-small-functions and -fno-inline-functions-called-once
+	  that gcc does.
+	  Some functions without the inline keyword may still be inlined.
+
+	  If unsure, select N.
+
 config FRAME_WARN
 	int "Warn for stack frames larger than"
 	range 0 8192
diff --git a/lib/Makefile b/lib/Makefile
index f07b24ce1b3f8db28796e461db1324d97133fdd5..2ac97f0856a12f66e6c3825af6aabafa61869262 100644
--- a/lib/Makefile
+++ b/lib/Makefile
@@ -87,6 +87,9 @@ obj-$(CONFIG_TEST_BITMAP) += test_bitmap.o
 ifeq ($(CONFIG_CC_IS_CLANG)$(CONFIG_KASAN),yy)
 # FIXME: Clang breaks test_bitmap_const_eval when KASAN and GCOV are enabled
 GCOV_PROFILE_test_bitmap.o := n
+# FIXME:
+# Clang breaks test_bitmap_const_eval when NO_AUTO_INLINE and KASAN are enabled
+CFLAGS_test_bitmap.o += -finline-functions
 endif
 
 obj-$(CONFIG_TEST_UUID) += test_uuid.o

-- 
2.43.0




From xen-devel-bounces@lists.xenproject.org Tue Apr 29 06:33:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 06:33:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.971410.1359899 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9eXB-00084i-5P; Tue, 29 Apr 2025 06:33:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 971410.1359899; Tue, 29 Apr 2025 06:33: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 1u9eXA-00082x-OI; Tue, 29 Apr 2025 06:33:36 +0000
Received: by outflank-mailman (input) for mailman id 971410;
 Tue, 29 Apr 2025 04:06: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=WGTB=XP=kernel.org=devnull+chenlinxuan.uniontech.com@srs-se1.protection.inumbo.net>)
 id 1u9cEq-0003mv-0b
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 04:06:32 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4d6fd96e-24af-11f0-9ffb-bf95429c2676;
 Tue, 29 Apr 2025 06:06:19 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 3DF6D4A286;
 Tue, 29 Apr 2025 04:06:15 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPS id 0B92EC113CF;
 Tue, 29 Apr 2025 04:06:17 +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 F4210C369D1;
 Tue, 29 Apr 2025 04:06:16 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4d6fd96e-24af-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1745899577;
	bh=3PdF33JBq1nyxsd62zvfFmuPbfAnSnsdpa3r3ouJFOo=;
	h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From;
	b=ImSxOhegHftYhReRG8oW+oM6LY5yoKLWrzrGW2V//kVusiY4KJ6C0HKApYqiV/umZ
	 jZDui8NpjNYOGK5MqF5aClgT+4pvtjZWMb3AgQxuqqCOAz00C0Lpow4dLS8fVmD8AE
	 Ew5h7vn3uiwE1AvsN5M2//c/5JyZpQKKbX7Q2uuKJzjHODfOAkvLYlkfv/lDyfol63
	 jo+QK5Rd1p+0TMQoBTMEsNJWU3r3jcXOzCGrBtNYQaJBhwRFYH8Og+3Yvb56e+MIWk
	 lrqdTOn18f4raKMikcfbZmVYGUzYJPzipTeU+RQml6v6GlEpxvCZhUZyn6fyKdVLbn
	 3BOR5syl/U+lg==
From: Chen Linxuan via B4 Relay <devnull+chenlinxuan.uniontech.com@kernel.org>
Date: Tue, 29 Apr 2025 12:06:08 +0800
Subject: [PATCH RFC v3 4/8] tpm: add __always_inline for
 tpm_is_hwrng_enabled
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20250429-noautoinline-v3-4-4c49f28ea5b5@uniontech.com>
References: <20250429-noautoinline-v3-0-4c49f28ea5b5@uniontech.com>
In-Reply-To: <20250429-noautoinline-v3-0-4c49f28ea5b5@uniontech.com>
To: Keith Busch <kbusch@kernel.org>, Jens Axboe <axboe@kernel.dk>, 
 Christoph Hellwig <hch@lst.de>, Sagi Grimberg <sagi@grimberg.me>, 
 Andrew Morton <akpm@linux-foundation.org>, 
 Yishai Hadas <yishaih@nvidia.com>, Jason Gunthorpe <jgg@ziepe.ca>, 
 Shameer Kolothum <shameerali.kolothum.thodi@huawei.com>, 
 Kevin Tian <kevin.tian@intel.com>, 
 Alex Williamson <alex.williamson@redhat.com>, 
 Peter Huewe <peterhuewe@gmx.de>, Jarkko Sakkinen <jarkko@kernel.org>, 
 Masahiro Yamada <masahiroy@kernel.org>, 
 Nathan Chancellor <nathan@kernel.org>, 
 Nicolas Schier <nicolas.schier@linux.dev>, 
 Nick Desaulniers <nick.desaulniers+lkml@gmail.com>, 
 Bill Wendling <morbo@google.com>, Justin Stitt <justinstitt@google.com>, 
 Vlastimil Babka <vbabka@suse.cz>, Suren Baghdasaryan <surenb@google.com>, 
 Michal Hocko <mhocko@suse.com>, Brendan Jackman <jackmanb@google.com>, 
 Johannes Weiner <hannes@cmpxchg.org>, Zi Yan <ziy@nvidia.com>, 
 Mathieu Desnoyers <mathieu.desnoyers@efficios.com>, 
 Peter Zijlstra <peterz@infradead.org>, 
 "Paul E. McKenney" <paulmck@kernel.org>, Boqun Feng <boqun.feng@gmail.com>, 
 Dmitry Vyukov <dvyukov@google.com>, Andrey Konovalov <andreyknvl@gmail.com>, 
 Juergen Gross <jgross@suse.com>, 
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, 
 Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>, 
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, 
 x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>
Cc: linux-nvme@lists.infradead.org, linux-kernel@vger.kernel.org, 
 linux-mm@kvack.org, kvm@vger.kernel.org, virtualization@lists.linux.dev, 
 linux-integrity@vger.kernel.org, linux-kbuild@vger.kernel.org, 
 llvm@lists.linux.dev, Winston Wen <wentao@uniontech.com>, 
 kasan-dev@googlegroups.com, xen-devel@lists.xenproject.org, 
 Chen Linxuan <chenlinxuan@uniontech.com>, 
 Changbin Du <changbin.du@intel.com>
X-Mailer: b4 0.14.2
X-Developer-Signature: v=1; a=openpgp-sha256; l=3942;
 i=chenlinxuan@uniontech.com; h=from:subject:message-id;
 bh=kxFAxUbcgxKFCXw3/ErTxJwPqpRyvp2FJuqCBA7VzuY=;
 b=owEBbQKS/ZANAwAKAXYe5hQ5ma6LAcsmYgBoEFAxPbGcLXiOi/dV/SoVEXm3HRnbi5/8nSvZh
 +e82+25uS6JAjMEAAEKAB0WIQTO1VElAk6xdvy0ZVp2HuYUOZmuiwUCaBBQMQAKCRB2HuYUOZmu
 i+71D/9hbbS4WFdBy9iBvtGFu5uSk9QxvEUgVVEszHz05+5HiG4ksE8wbutqqbHRzodOZ4fTRqw
 FBgWQudMTfmZ9Fzj2OyQSpBDCrM8FsKFEp555qc9ICcP/+NEGCSsRMIq6JHxaZziOrAUiqsMpl7
 PDahCNl1FroL8m5qLyTgyojpMOANxIr1af/VNJ8bPL6C+kt3UbvxE1BQxJaGaFWwu4tuA6W2H6P
 99dM27ARBneT1Ci6a8VKJuN083PUS0DxYveGnH1FdDIjWVzoNOuccgzNF0F8v4/nl2tP84KxlLQ
 oPDVasKXAZJN0tEcMKQIwEAC+r1bcpKYHpMRVEYDYmBa264Q5nFxMISnjvLEJCKf83yqHDECcUe
 tggtJisUCNA23s3fRH1vFO5aVh1wasktvWFK0rezqWKiiSOynNsUWjQButCpUZofWo4wTHmJihb
 Ia2GiI8yLBpkdorp4xsf4SL4zvcLOzgirApNORHtHhkb9txKJ20L2WHS1VhiW7xpl3ejCcR9CpP
 YW9L2nkVmlDG0qngRaNtWv3EZCV/wN9/811wqZzwMQLNekcn/t8lq9fv9RB/bPjq7aCVZESyGER
 OBAzAGQDg3kym5GaVrbjje99pIap2zj0QwO9eZHif/0av9uHNFusDMAZGbKPHCqaEevUMehhBGq
 Eom+AMw7eNH7lTQ==
X-Developer-Key: i=chenlinxuan@uniontech.com; a=openpgp;
 fpr=D818ACDD385CAE92D4BAC01A6269794D24791D21
X-Endpoint-Received: by B4 Relay for chenlinxuan@uniontech.com/default with
 auth_id=380
X-Original-From: Chen Linxuan <chenlinxuan@uniontech.com>
Reply-To: chenlinxuan@uniontech.com

From: Winston Wen <wentao@uniontech.com>

Presume that kernel is compiled for x86_64 with gcc version 13.3.0:

  make defconfig
  ./scripts/kconfig/merge_config.sh .config <(
    echo CONFIG_TCG_TPM=y
    echo CONFIG_HW_RANDOM=m
  )
  make KCFLAGS="-fno-inline-small-functions -fno-inline-functions-called-once"

This results a link error:

  ld: vmlinux.o: in function `tpm_add_hwrng':
  tpm-chip.c:(.text+0x6c5924): undefined reference to `hwrng_register'
  ld: vmlinux.o: in function `tpm_chip_unregister':
  (.text+0x6c5bc9): undefined reference to `hwrng_unregister'
  ld: vmlinux.o: in function `tpm_chip_register':
  (.text+0x6c5c9b): undefined reference to `hwrng_unregister'

With `CONFIG_TCG_TPM=y` and `CONFIG_HW_RANDOM=m`,
the functions `tpm_add_hwrng`, `tpm_chip_unregister`, and
`tpm_chip_register` are compiled into `vmlinux.o`
and reference the symbols `hwrng_register` and `hwrng_unregister`.
These symbols, however, are compiled into `rng-core.ko`, which results
in the linking error.

I am not sure but I think this weird linking error only arises when
auto inlining is disabled because of some dead code elimination.

`CONFIG_TCG_TPM=y` and `CONFIG_HW_RANDOM=m` set `CONFIG_HW_RANDOM_TPM=n`.
This causes the function `tpm_is_hwrng_enabled` to always return
`false`, as shown below:

  static bool tpm_is_hwrng_enabled(struct tpm_chip *chip)
  {
      if (!IS_ENABLED(CONFIG_HW_RANDOM_TPM))
          return false;
      if (tpm_is_firmware_upgrade(chip))
          return false;
      if (chip->flags & TPM_CHIP_FLAG_HWRNG_DISABLED)
          return false;
      return true;
  }

When `tpm_is_hwrng_enabled` is inlined, dead code elimination
optimizations are applied and the reference to the `hwrng_*` functions
will been removed.
For instance, in the `tpm_chip_unregister` function:

  void tpm_chip_unregister(struct tpm_chip *chip)
  {
  #ifdef CONFIG_TCG_TPM2_HMAC
      int rc;

      rc = tpm_try_get_ops(chip);
      if (!rc) {
          tpm2_end_auth_session(chip);
          tpm_put_ops(chip);
      }
  #endif

      tpm_del_legacy_sysfs(chip);
      if (tpm_is_hwrng_enabled(chip))
          hwrng_unregister(&chip->hwrng);
      tpm_bios_log_teardown(chip);
      if (chip->flags & TPM_CHIP_FLAG_TPM2 && !tpm_is_firmware_upgrade(chip))
          tpm_devs_remove(chip);
      tpm_del_char_device(chip);
  }

When `tpm_is_hwrng_enabled` is inlined and always returns `false`,
the call to `hwrng_unregister` is effectively part of a `if (false)`
block, which I guess that will be then optimized out.

However, when the `-fno-inline-small-functions` and
`-fno-inline-functions-called-once` flags are used,
tpm_is_hwrng_enabled is not inline.

And this optimization some how cannot occur,
leading to the undefined reference errors during linking.

Adding the `__always_inline` attribute ensures that
`tpm_is_hwrng_enabled` is inlined regardless of the compiler flags.
This allows the dead code elimination to proceed as expected,
resolving the linking issue.

Co-developed-by: Chen Linxuan <chenlinxuan@uniontech.com>
Signed-off-by: Chen Linxuan <chenlinxuan@uniontech.com>
Signed-off-by: Winston Wen <wentao@uniontech.com>
Reviewed-by: Jarkko Sakkinen <jarkko@kernel.org>
---
 drivers/char/tpm/tpm-chip.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/char/tpm/tpm-chip.c b/drivers/char/tpm/tpm-chip.c
index e25daf2396d37bcaeae8a96267764df0861ad1be..48cc74d84247e258a39f2118e03aa10d0cbb066a 100644
--- a/drivers/char/tpm/tpm-chip.c
+++ b/drivers/char/tpm/tpm-chip.c
@@ -534,7 +534,7 @@ static int tpm_hwrng_read(struct hwrng *rng, void *data, size_t max, bool wait)
 	return tpm_get_random(chip, data, max);
 }
 
-static bool tpm_is_hwrng_enabled(struct tpm_chip *chip)
+static __always_inline bool tpm_is_hwrng_enabled(struct tpm_chip *chip)
 {
 	if (!IS_ENABLED(CONFIG_HW_RANDOM_TPM))
 		return false;

-- 
2.43.0




From xen-devel-bounces@lists.xenproject.org Tue Apr 29 06:33:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 06:33:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.971406.1359879 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9eXA-0007j9-1z; Tue, 29 Apr 2025 06:33:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 971406.1359879; Tue, 29 Apr 2025 06:33:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9eX9-0007gw-RR; Tue, 29 Apr 2025 06:33:35 +0000
Received: by outflank-mailman (input) for mailman id 971406;
 Tue, 29 Apr 2025 04: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=WGTB=XP=kernel.org=devnull+chenlinxuan.uniontech.com@srs-se1.protection.inumbo.net>)
 id 1u9cEp-0003mv-0I
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 04:06:31 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4d6fe4cb-24af-11f0-9ffb-bf95429c2676;
 Tue, 29 Apr 2025 06:06:19 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 557A94A2B1;
 Tue, 29 Apr 2025 04:06:15 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPS id 1D9C1C4CEF4;
 Tue, 29 Apr 2025 04:06:17 +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 13BE0C3ABA8;
 Tue, 29 Apr 2025 04:06: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: 4d6fe4cb-24af-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1745899577;
	bh=xaBPg6MMzZtyI5BynxGLu2CWzfYAh0y0igpwIukNl4w=;
	h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From;
	b=rRQ75lu00znvBITjVyrAMVKtCn2AtPLSrSuYcoZf125A63zHSdMhkAi/HFUGNCNeK
	 J7X1yl7r0rN29gdmq5SsHcGn/T7CmDF/ID2Uvi7mvr0PFwvdGJmCpdOIysf5LfRnjC
	 1w21Gx6IhBsNzjDnYjd6ko75qTravedUuRFoDbjzIS1z9I6hCFuD3mi0z2GXS1i4t6
	 27AUHJ9cCIxoiAkllQIMQpLiz/s3c9V6KCvxFG9I9FzO5D6fpDGPZSi6DGeJKkmgmX
	 LtIjdVeuyd+wIT4KgskYvFdzQ7diMBplESrWTHBJv/Ah47o30uQF/CA+9DkHa7pT6h
	 70djD7BzAwDPA==
From: Chen Linxuan via B4 Relay <devnull+chenlinxuan.uniontech.com@kernel.org>
Date: Tue, 29 Apr 2025 12:06:09 +0800
Subject: [PATCH RFC v3 5/8] rseq: add __always_inline for
 rseq_kernel_fields
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20250429-noautoinline-v3-5-4c49f28ea5b5@uniontech.com>
References: <20250429-noautoinline-v3-0-4c49f28ea5b5@uniontech.com>
In-Reply-To: <20250429-noautoinline-v3-0-4c49f28ea5b5@uniontech.com>
To: Keith Busch <kbusch@kernel.org>, Jens Axboe <axboe@kernel.dk>, 
 Christoph Hellwig <hch@lst.de>, Sagi Grimberg <sagi@grimberg.me>, 
 Andrew Morton <akpm@linux-foundation.org>, 
 Yishai Hadas <yishaih@nvidia.com>, Jason Gunthorpe <jgg@ziepe.ca>, 
 Shameer Kolothum <shameerali.kolothum.thodi@huawei.com>, 
 Kevin Tian <kevin.tian@intel.com>, 
 Alex Williamson <alex.williamson@redhat.com>, 
 Peter Huewe <peterhuewe@gmx.de>, Jarkko Sakkinen <jarkko@kernel.org>, 
 Masahiro Yamada <masahiroy@kernel.org>, 
 Nathan Chancellor <nathan@kernel.org>, 
 Nicolas Schier <nicolas.schier@linux.dev>, 
 Nick Desaulniers <nick.desaulniers+lkml@gmail.com>, 
 Bill Wendling <morbo@google.com>, Justin Stitt <justinstitt@google.com>, 
 Vlastimil Babka <vbabka@suse.cz>, Suren Baghdasaryan <surenb@google.com>, 
 Michal Hocko <mhocko@suse.com>, Brendan Jackman <jackmanb@google.com>, 
 Johannes Weiner <hannes@cmpxchg.org>, Zi Yan <ziy@nvidia.com>, 
 Mathieu Desnoyers <mathieu.desnoyers@efficios.com>, 
 Peter Zijlstra <peterz@infradead.org>, 
 "Paul E. McKenney" <paulmck@kernel.org>, Boqun Feng <boqun.feng@gmail.com>, 
 Dmitry Vyukov <dvyukov@google.com>, Andrey Konovalov <andreyknvl@gmail.com>, 
 Juergen Gross <jgross@suse.com>, 
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, 
 Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>, 
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, 
 x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>
Cc: linux-nvme@lists.infradead.org, linux-kernel@vger.kernel.org, 
 linux-mm@kvack.org, kvm@vger.kernel.org, virtualization@lists.linux.dev, 
 linux-integrity@vger.kernel.org, linux-kbuild@vger.kernel.org, 
 llvm@lists.linux.dev, Winston Wen <wentao@uniontech.com>, 
 kasan-dev@googlegroups.com, xen-devel@lists.xenproject.org, 
 Chen Linxuan <chenlinxuan@uniontech.com>, 
 Changbin Du <changbin.du@intel.com>
X-Mailer: b4 0.14.2
X-Developer-Signature: v=1; a=openpgp-sha256; l=1064;
 i=chenlinxuan@uniontech.com; h=from:subject:message-id;
 bh=yuauFI3DVy8k9g1XQ1OrB7eESWm7f+B3/2pt9syGKzM=;
 b=owEBbQKS/ZANAwAKAXYe5hQ5ma6LAcsmYgBoEFAyanc3Cwc7HAg/63YHY6NNSEBN2RhZfPBtP
 dtxoPOqXNeJAjMEAAEKAB0WIQTO1VElAk6xdvy0ZVp2HuYUOZmuiwUCaBBQMgAKCRB2HuYUOZmu
 i7aID/44sv/mzy4WT2GTGw2LDhzFHfM+7rL13wS9xt+G7CMG4l6A0rduPv9Kj1+aTi8eOVMJft5
 5TiNxVdcrGKSr3zwVOY/PNRlc66oIZlthPkrupbFv0SD5r0m5xlYv9Q9WAMMOLU1a+CKw7KXlIK
 zUkQ0dGZaFEhfFS3giTzwyMqJS6nvmjb5iRc4Zz/XOtdtIIBsD6qlLRwQDdV4KuiKgfabOvMbeX
 C/d2ZrlzN8bw8uBY9bJS4LF4cptR+kay58eEnIn86mc9en18eq/l2Y01BEqmDWaad6N+FJDodwI
 pMr/+GVr6bsXlGZJ+sULeKleGffl4G1zIhAoz7H8I0oNmr/nSGd3Wn6BKIxuLhtVppnLY1KsvGa
 yf2RsSmPzJHLCXkfpLhDD/oicoxFl43gpHqaND1YU47v6537LXhTaUC1wslQX7j/d1+ujI4YwtF
 vOr8GQoQM+gOCkSVJLMdhN73NjDBDQByqvsYdot/uoc2GscYToCLN6G8w6S/yE1iwgbv9J0upsK
 hCjXyMYy0yLyfeIMCV/s3OTjYIs2fkUTwhR/5ByE/gU+4GGrFSrBbZP1FArrKKo834SUQ98QfUi
 V+gTyYTxvmL/HMhC3LP7oMkp9BWNsUvbCEi3F0KTEm/YPo52etQ+1LPa6z6VqhkHXnGwZSJcPtW
 crGc2BctRQzKvsw==
X-Developer-Key: i=chenlinxuan@uniontech.com; a=openpgp;
 fpr=D818ACDD385CAE92D4BAC01A6269794D24791D21
X-Endpoint-Received: by B4 Relay for chenlinxuan@uniontech.com/default with
 auth_id=380
X-Original-From: Chen Linxuan <chenlinxuan@uniontech.com>
Reply-To: chenlinxuan@uniontech.com

From: Chen Linxuan <chenlinxuan@uniontech.com>

Presume that kernel is compiled for x86_64 with gcc version 13.3.0:

  make allmodconfig
  make KCFLAGS="-fno-inline-small-functions -fno-inline-functions-called-once"

This results some objtool warnings:

  vmlinux.o: warning: objtool: rseq_update_cpu_node_id+0x14c: call to rseq_kernel_fields() with UACCESS enabled
  vmlinux.o: warning: objtool: rseq_reset_rseq_cpu_node_id+0xef: call to rseq_kernel_fields() with UACCESS enabled

Signed-off-by: Chen Linxuan <chenlinxuan@uniontech.com>
---
 kernel/rseq.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/kernel/rseq.c b/kernel/rseq.c
index b7a1ec327e8117b47e353cab92d62111dd261520..7a4b6c211359714087a753047581bc8ff0c6c76b 100644
--- a/kernel/rseq.c
+++ b/kernel/rseq.c
@@ -27,7 +27,7 @@
 				  RSEQ_CS_FLAG_NO_RESTART_ON_MIGRATE)
 
 #ifdef CONFIG_DEBUG_RSEQ
-static struct rseq *rseq_kernel_fields(struct task_struct *t)
+static __always_inline struct rseq *rseq_kernel_fields(struct task_struct *t)
 {
 	return (struct rseq *) t->rseq_fields;
 }

-- 
2.43.0




From xen-devel-bounces@lists.xenproject.org Tue Apr 29 06:33:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 06:33:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.971404.1359867 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9eX9-0007VU-EM; Tue, 29 Apr 2025 06:33:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 971404.1359867; Tue, 29 Apr 2025 06: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 1u9eX9-0007Tn-77; Tue, 29 Apr 2025 06:33:35 +0000
Received: by outflank-mailman (input) for mailman id 971404;
 Tue, 29 Apr 2025 04:06: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=WGTB=XP=kernel.org=devnull+chenlinxuan.uniontech.com@srs-se1.protection.inumbo.net>)
 id 1u9cEo-0003mv-BC
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 04:06:30 +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 4d076249-24af-11f0-9ffb-bf95429c2676;
 Tue, 29 Apr 2025 06:06:18 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by nyc.source.kernel.org (Postfix) with ESMTP id 77AD9A4BA30;
 Tue, 29 Apr 2025 04:00:49 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPS id BF675C4CEEE;
 Tue, 29 Apr 2025 04:06:16 +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 AC846C369D1;
 Tue, 29 Apr 2025 04:06:16 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4d076249-24af-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1745899576;
	bh=94UzipiV219n1Nsds3GgUffrYhVWmSEuqNwCotvgHTg=;
	h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From;
	b=umnHgPjx/uswvCkSmQAtfNXwh0J1RgCPXPtU15EJ3BJrGMr9TeAkv+02Hx8/aJrZP
	 B9pids9hDCCRiksaveqMrCaUIPjjT40xeYtCj3KLeve1mYRGk57NEeo0YsYHn7kloJ
	 Wb5lXlJ1ICFfjMDI7QXO7ihYek6tuetYOzZNrzvuaGAxSxtzS6wFaDjCD1KHmLlOpd
	 mGs+bcfHf0EcMQwc5GWPCv3Q+hydECGq09BD3DqCK5uZZKY6iXbfQpCANImiozP2H4
	 ry6PlbZas22d5KF1Q/sW5U8JGsO3qzDZZJpJ9Sos51pOgukjAw6CGW4cOv/pPGGvJh
	 2wpUI2Qi0eYHg==
From: Chen Linxuan via B4 Relay <devnull+chenlinxuan.uniontech.com@kernel.org>
Date: Tue, 29 Apr 2025 12:06:05 +0800
Subject: [PATCH RFC v3 1/8] nvme: add __always_inline for
 nvme_pci_npages_prp
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20250429-noautoinline-v3-1-4c49f28ea5b5@uniontech.com>
References: <20250429-noautoinline-v3-0-4c49f28ea5b5@uniontech.com>
In-Reply-To: <20250429-noautoinline-v3-0-4c49f28ea5b5@uniontech.com>
To: Keith Busch <kbusch@kernel.org>, Jens Axboe <axboe@kernel.dk>, 
 Christoph Hellwig <hch@lst.de>, Sagi Grimberg <sagi@grimberg.me>, 
 Andrew Morton <akpm@linux-foundation.org>, 
 Yishai Hadas <yishaih@nvidia.com>, Jason Gunthorpe <jgg@ziepe.ca>, 
 Shameer Kolothum <shameerali.kolothum.thodi@huawei.com>, 
 Kevin Tian <kevin.tian@intel.com>, 
 Alex Williamson <alex.williamson@redhat.com>, 
 Peter Huewe <peterhuewe@gmx.de>, Jarkko Sakkinen <jarkko@kernel.org>, 
 Masahiro Yamada <masahiroy@kernel.org>, 
 Nathan Chancellor <nathan@kernel.org>, 
 Nicolas Schier <nicolas.schier@linux.dev>, 
 Nick Desaulniers <nick.desaulniers+lkml@gmail.com>, 
 Bill Wendling <morbo@google.com>, Justin Stitt <justinstitt@google.com>, 
 Vlastimil Babka <vbabka@suse.cz>, Suren Baghdasaryan <surenb@google.com>, 
 Michal Hocko <mhocko@suse.com>, Brendan Jackman <jackmanb@google.com>, 
 Johannes Weiner <hannes@cmpxchg.org>, Zi Yan <ziy@nvidia.com>, 
 Mathieu Desnoyers <mathieu.desnoyers@efficios.com>, 
 Peter Zijlstra <peterz@infradead.org>, 
 "Paul E. McKenney" <paulmck@kernel.org>, Boqun Feng <boqun.feng@gmail.com>, 
 Dmitry Vyukov <dvyukov@google.com>, Andrey Konovalov <andreyknvl@gmail.com>, 
 Juergen Gross <jgross@suse.com>, 
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, 
 Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>, 
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, 
 x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>
Cc: linux-nvme@lists.infradead.org, linux-kernel@vger.kernel.org, 
 linux-mm@kvack.org, kvm@vger.kernel.org, virtualization@lists.linux.dev, 
 linux-integrity@vger.kernel.org, linux-kbuild@vger.kernel.org, 
 llvm@lists.linux.dev, Winston Wen <wentao@uniontech.com>, 
 kasan-dev@googlegroups.com, xen-devel@lists.xenproject.org, 
 Chen Linxuan <chenlinxuan@uniontech.com>, 
 Changbin Du <changbin.du@intel.com>
X-Mailer: b4 0.14.2
X-Developer-Signature: v=1; a=openpgp-sha256; l=2975;
 i=chenlinxuan@uniontech.com; h=from:subject:message-id;
 bh=Z0QiTYLHzEeebaywUqCSW16Ny4EMqCsjjX+KS5KBMNU=;
 b=owEBbQKS/ZANAwAKAXYe5hQ5ma6LAcsmYgBoEFAukhIgTV0U3xfinuIjd2L0FB1AExqdCchlv
 A3ri9QFLWiJAjMEAAEKAB0WIQTO1VElAk6xdvy0ZVp2HuYUOZmuiwUCaBBQLgAKCRB2HuYUOZmu
 i9PbD/0bxMLZB/tZ4Ta8gMq1WIv38DYhUP3aWnHRrfHrBmcZmF3pYKgj7U3bQhz1rGgW21/5jLf
 O6iQHC8JkszMXt7z43locXuD3D2XLaMzfIjJ4SYSBJJCUhLDwTO0hXO+SgM8VdRdhmjZUc1WhnK
 MotrwNb7+YScOJV7UKO27QZ4mEX9QtP1og5KDtG4fX2A4elJ/oUz5VyPu1ZVWaZIPGpR6UfQu2W
 3V96onZcmtcYOTu7m+Q4YYn57iocabwdiYGXp9u6+muG1V36fqjgCWLFdJ87b10fBGpqSdLd78K
 Np/ZrE3r79VyFTS10nLQwcH5emDVtRsUooPidOTFB5RbtCiWZVwNXbzPXeUAOlpo1fud6r4VWu6
 qQumY8DgxrRS5yYkJuqNuYsyMje5EqNF0cT9ACHUWaiTx2mc4D4GMZxmlK0Gb/i6H6b5Nn2r2Xj
 wAaoImxclHPRalFdhXU+KjoIiAQ+6sz9E+8WePUUrBdVGKfCKQPnIoZrmz83bxpZtjB8fQ0tEQM
 iAAaovwAWgBfxfbUHIa8VeSzTs5I5aHhO+aY/5Sd1k2ttkBswHZJumET7aNiQoPsJoewmJYilGQ
 jL21aH2TLLnbAvvZ8tf8QpXJtxzRSYrmcdb8wsQqvI0rVPoHUhioggOtX3jm+SKC+ApmPIpQr8u
 b//ZkECSNX3jkKQ==
X-Developer-Key: i=chenlinxuan@uniontech.com; a=openpgp;
 fpr=D818ACDD385CAE92D4BAC01A6269794D24791D21
X-Endpoint-Received: by B4 Relay for chenlinxuan@uniontech.com/default with
 auth_id=380
X-Original-From: Chen Linxuan <chenlinxuan@uniontech.com>
Reply-To: chenlinxuan@uniontech.com

From: Winston Wen <wentao@uniontech.com>

On x86_64 with gcc version 13.3.0, I build drivers/nvme/host/pci.c
with:

  make defconfig
  ./scripts/kconfig/merge_config.sh .config <(
    echo CONFIG_BLK_DEV_NVME=m
  )
  make KCFLAGS="-fno-inline-small-functions -fno-inline-functions-called-once" \
    drivers/nvme/host/pci.o

Then I get a compile error:

    CALL    scripts/checksyscalls.sh
    DESCEND objtool
    INSTALL libsubcmd_headers
    CC      drivers/nvme/host/pci.o
  In file included from <command-line>:
  drivers/nvme/host/pci.c: In function 'nvme_init':
  ././include/linux/compiler_types.h:557:45: error: call to '__compiletime_assert_878' declared with attribute error: BUILD_BUG_ON failed: nvme_pci_npages_prp() > NVME_MAX_NR_ALLOCATIONS
    557 |         _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
        |                                             ^
  ././include/linux/compiler_types.h:538:25: note: in definition of macro '__compiletime_assert'
    538 |                         prefix ## suffix();                             \
        |                         ^~~~~~
  ././include/linux/compiler_types.h:557:9: note: in expansion of macro '_compiletime_assert'
    557 |         _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
        |         ^~~~~~~~~~~~~~~~~~~
  ./include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert'
     39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
        |                                     ^~~~~~~~~~~~~~~~~~
  ./include/linux/build_bug.h:50:9: note: in expansion of macro 'BUILD_BUG_ON_MSG'
     50 |         BUILD_BUG_ON_MSG(condition, "BUILD_BUG_ON failed: " #condition)
        |         ^~~~~~~~~~~~~~~~
  drivers/nvme/host/pci.c:3804:9: note: in expansion of macro 'BUILD_BUG_ON'
   3804 |         BUILD_BUG_ON(nvme_pci_npages_prp() > NVME_MAX_NR_ALLOCATIONS);
        |         ^~~~~~~~~~~~

Mark nvme_pci_npages_prp() with __always_inline make it can be computed
at compile time.

Co-developed-by: Chen Linxuan <chenlinxuan@uniontech.com>
Signed-off-by: Chen Linxuan <chenlinxuan@uniontech.com>
Signed-off-by: Winston Wen <wentao@uniontech.com>
---
 drivers/nvme/host/pci.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/nvme/host/pci.c b/drivers/nvme/host/pci.c
index b178d52eac1b7f7286e217226b9b3686d07b7b6c..9ab070a9f0372bc6595c29a884ee9f2ffe5ae8e9 100644
--- a/drivers/nvme/host/pci.c
+++ b/drivers/nvme/host/pci.c
@@ -390,7 +390,7 @@ static bool nvme_dbbuf_update_and_check_event(u16 value, __le32 *dbbuf_db,
  * as it only leads to a small amount of wasted memory for the lifetime of
  * the I/O.
  */
-static int nvme_pci_npages_prp(void)
+static __always_inline int nvme_pci_npages_prp(void)
 {
 	unsigned max_bytes = (NVME_MAX_KB_SZ * 1024) + NVME_CTRL_PAGE_SIZE;
 	unsigned nprps = DIV_ROUND_UP(max_bytes, NVME_CTRL_PAGE_SIZE);

-- 
2.43.0




From xen-devel-bounces@lists.xenproject.org Tue Apr 29 06:33:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 06:33:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.971400.1359859 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9eX9-0007Oy-4J; Tue, 29 Apr 2025 06:33:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 971400.1359859; Tue, 29 Apr 2025 06: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 1u9eX8-0007MZ-Ty; Tue, 29 Apr 2025 06:33:34 +0000
Received: by outflank-mailman (input) for mailman id 971400;
 Tue, 29 Apr 2025 04:06:23 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=WGTB=XP=kernel.org=devnull+chenlinxuan.uniontech.com@srs-se1.protection.inumbo.net>)
 id 1u9cEh-0003lQ-Aq
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 04:06:23 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4dbd5f53-24af-11f0-9eb4-5ba50f476ded;
 Tue, 29 Apr 2025 06:06:20 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 637724A2F1;
 Tue, 29 Apr 2025 04:06:15 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPS id 469C7C4CEF3;
 Tue, 29 Apr 2025 04:06:17 +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 3A16FC369CB;
 Tue, 29 Apr 2025 04:06: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: 4dbd5f53-24af-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1745899577;
	bh=puwaWg0YW0DjsEBEYIoY8x/bLms2MxI/ob3ZfklRDPw=;
	h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From;
	b=c0NlFGD/nhB9z6/D4xtydBdI9lJs5L3xbB+eo5cTRMg4n9RpEdjaAhdvc2frC/XoC
	 5Lj5jHazpgfih7eU9Ip8zL87n2W5/Y7Xl7J5MUrNvUFI2sb3RB4BqU5pWTALmAZxrL
	 regj0Ag6HkRUHS3xBvMdE2pb2vrLgesn1qt2AbGY8HXFnjIdmTVcNrNrmloKS1de70
	 gu28EB9CLlaP68ai4PHXtKJqNUO/eYwYJM4vU8DspesAceo2GgBqak5RBzqxLyJenI
	 KBmESNyXPRuCOOdoZcRlGFtuk67AXj0qsy35tYZK+DJvG69bCPTNEcNR9Ad1mpMaJl
	 Y5LlZLpxc/FHA==
From: Chen Linxuan via B4 Relay <devnull+chenlinxuan.uniontech.com@kernel.org>
Date: Tue, 29 Apr 2025 12:06:11 +0800
Subject: [PATCH RFC v3 7/8] x86/xen: add __init for xen_pgd_walk
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20250429-noautoinline-v3-7-4c49f28ea5b5@uniontech.com>
References: <20250429-noautoinline-v3-0-4c49f28ea5b5@uniontech.com>
In-Reply-To: <20250429-noautoinline-v3-0-4c49f28ea5b5@uniontech.com>
To: Keith Busch <kbusch@kernel.org>, Jens Axboe <axboe@kernel.dk>, 
 Christoph Hellwig <hch@lst.de>, Sagi Grimberg <sagi@grimberg.me>, 
 Andrew Morton <akpm@linux-foundation.org>, 
 Yishai Hadas <yishaih@nvidia.com>, Jason Gunthorpe <jgg@ziepe.ca>, 
 Shameer Kolothum <shameerali.kolothum.thodi@huawei.com>, 
 Kevin Tian <kevin.tian@intel.com>, 
 Alex Williamson <alex.williamson@redhat.com>, 
 Peter Huewe <peterhuewe@gmx.de>, Jarkko Sakkinen <jarkko@kernel.org>, 
 Masahiro Yamada <masahiroy@kernel.org>, 
 Nathan Chancellor <nathan@kernel.org>, 
 Nicolas Schier <nicolas.schier@linux.dev>, 
 Nick Desaulniers <nick.desaulniers+lkml@gmail.com>, 
 Bill Wendling <morbo@google.com>, Justin Stitt <justinstitt@google.com>, 
 Vlastimil Babka <vbabka@suse.cz>, Suren Baghdasaryan <surenb@google.com>, 
 Michal Hocko <mhocko@suse.com>, Brendan Jackman <jackmanb@google.com>, 
 Johannes Weiner <hannes@cmpxchg.org>, Zi Yan <ziy@nvidia.com>, 
 Mathieu Desnoyers <mathieu.desnoyers@efficios.com>, 
 Peter Zijlstra <peterz@infradead.org>, 
 "Paul E. McKenney" <paulmck@kernel.org>, Boqun Feng <boqun.feng@gmail.com>, 
 Dmitry Vyukov <dvyukov@google.com>, Andrey Konovalov <andreyknvl@gmail.com>, 
 Juergen Gross <jgross@suse.com>, 
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, 
 Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>, 
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, 
 x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>
Cc: linux-nvme@lists.infradead.org, linux-kernel@vger.kernel.org, 
 linux-mm@kvack.org, kvm@vger.kernel.org, virtualization@lists.linux.dev, 
 linux-integrity@vger.kernel.org, linux-kbuild@vger.kernel.org, 
 llvm@lists.linux.dev, Winston Wen <wentao@uniontech.com>, 
 kasan-dev@googlegroups.com, xen-devel@lists.xenproject.org, 
 Chen Linxuan <chenlinxuan@uniontech.com>, 
 Changbin Du <changbin.du@intel.com>
X-Mailer: b4 0.14.2
X-Developer-Signature: v=1; a=openpgp-sha256; l=1213;
 i=chenlinxuan@uniontech.com; h=from:subject:message-id;
 bh=lLv+eC36iR+BfXD2pJvuB8T7k1wRLfuYuYg6Rtr4yeI=;
 b=owEBbQKS/ZANAwAKAXYe5hQ5ma6LAcsmYgBoEFA0cu56sCmDMkf/pntxUHuMuekP/XRkxukwU
 9g4TyNMqLaJAjMEAAEKAB0WIQTO1VElAk6xdvy0ZVp2HuYUOZmuiwUCaBBQNAAKCRB2HuYUOZmu
 i6oqEACNTdOu+wT9VWzDqaJxYPJzTDzhyaDgOrIaxGP72CExKq84a645B1Jl3TWZN1v4YEQN+Ex
 U4BBfSuuQ9Yh0TKak7F0oJPgeJp4PeTVBP15tbocmZJmYUHXdJX5kcB6+MgIe90/7/tlKRXQlN5
 uY8GMIazOdRrWgafA6k6G+0lJvn3E3R5v7129rFXvHWCYC7Nvp2Vr8gyxE2IYJVHEfZx/+ua0oe
 z4a0WQgFS0t6W9PacgGnUTntuj/TGKVYb500Jwut0dBDJITdWXpackuvyCzviwumgxcGnbW66J/
 sPOW9GIhrql6r3JIF1vU1iTJ1wxWyv8Al2Yy2Y7j9ypL0F07+xTB5euDs2A9h8HHd2x+0MwnqRD
 4T62VOpuvuHAy1CMHBv75g1GHhwTGMN1KwfuI0Pf0TXrf9JM01deVHQ7vjI5kZhyeYMl537pJVJ
 0itemi/gfnvcGViZ8usYXjp9yKtWO3JsSCn31sNT7BwsAtjyIUQl+DeQyQADc9wUchfIkTRw2AT
 nXmGd9l2kspY+Bd3KtnokiL1Gm1q49EmDFnwJw+FvsjxRdcZ56x9pI1MXcoOzCJNGSxYn35Witw
 vt49LNms8G/08qnrm3qBl6k+q0+gMBVS+JCmJst68knEU97MDg5chkLEEiEkEAzZLrlhGHN4eU8
 gFY2uFKRqDDEdqA==
X-Developer-Key: i=chenlinxuan@uniontech.com; a=openpgp;
 fpr=D818ACDD385CAE92D4BAC01A6269794D24791D21
X-Endpoint-Received: by B4 Relay for chenlinxuan@uniontech.com/default with
 auth_id=380
X-Original-From: Chen Linxuan <chenlinxuan@uniontech.com>
Reply-To: chenlinxuan@uniontech.com

From: Chen Linxuan <chenlinxuan@uniontech.com>

Presume that kernel is compiled for x86_64 with gcc version 13.3.0:

  make allmodconfig
  make KCFLAGS="-fno-inline-small-functions -fno-inline-functions-called-once"

This results a modpost warning:

  WARNING: modpost: vmlinux: section mismatch in reference: xen_pgd_walk+0x42 (section: .text) -> xen_mark_pinned (section: .init.text)

As xen_pgd_walk is only referenced in xen_after_bootmem(void) which is
also in .init.text, I add __init for xen_pgd_walk to fix this issue.

Signed-off-by: Chen Linxuan <chenlinxuan@uniontech.com>
---
 arch/x86/xen/mmu_pv.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/x86/xen/mmu_pv.c b/arch/x86/xen/mmu_pv.c
index 38971c6dcd4b78b6b14f51bc69c4bf6b70ebd622..53650888be0a7b1dba170a5b7ba9c654244b5125 100644
--- a/arch/x86/xen/mmu_pv.c
+++ b/arch/x86/xen/mmu_pv.c
@@ -696,7 +696,7 @@ static void __xen_pgd_walk(struct mm_struct *mm, pgd_t *pgd,
 	(*func)(mm, virt_to_page(pgd), PT_PGD);
 }
 
-static void xen_pgd_walk(struct mm_struct *mm,
+static void __init xen_pgd_walk(struct mm_struct *mm,
 			 void (*func)(struct mm_struct *mm, struct page *,
 				      enum pt_level),
 			 unsigned long limit)

-- 
2.43.0




From xen-devel-bounces@lists.xenproject.org Tue Apr 29 06:33:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 06:33:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.971399.1359854 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9eX8-0007Jb-S3; Tue, 29 Apr 2025 06:33:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 971399.1359854; Tue, 29 Apr 2025 06:33:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9eX8-0007Ic-MI; Tue, 29 Apr 2025 06:33:34 +0000
Received: by outflank-mailman (input) for mailman id 971399;
 Tue, 29 Apr 2025 04:06: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=WGTB=XP=kernel.org=devnull+chenlinxuan.uniontech.com@srs-se1.protection.inumbo.net>)
 id 1u9cEg-0003lQ-Iy
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 04:06:22 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4d93bd99-24af-11f0-9eb4-5ba50f476ded;
 Tue, 29 Apr 2025 06:06:19 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 5FDD04A2BA;
 Tue, 29 Apr 2025 04:06:15 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPS id 32BAAC16AAE;
 Tue, 29 Apr 2025 04:06:17 +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 25755C3ABA5;
 Tue, 29 Apr 2025 04:06: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: 4d93bd99-24af-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1745899577;
	bh=k2PRcTC3BnKrnGtxiZbpr39EydncBfZx8pWBXCBrn+o=;
	h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From;
	b=sl1R/QSSKs05tUYWMQq/uiCadkREGBOU5tVJHGA66P2EkOFGfCC1JLNOssSpJjpfv
	 i1N3YAK7hTIvrT9evYzjPTpMtl9av07WHvpZFrJXHyBHKvQWjn/JhigCD6fkfMAGPH
	 JkY8VguW7fzhxvQAMEhDofx3SSxc7yjIqdbHjB9Zr5KEaqG9hWmkcjzjao55vtZ/NI
	 q8WnG0Bz6jZ+4e+KKoj5E4dzgyIM5z1gqx+F00UJmhuUlydMRP5jx4WNva+ZnwM6YJ
	 EGWX7EYVTkC+hr3arTlEqZN+KPB4ASUlbCDvZNZIqqfe80t6+0KxhgB0ir2HqOqYyq
	 ONp6bMmilIzFA==
From: Chen Linxuan via B4 Relay <devnull+chenlinxuan.uniontech.com@kernel.org>
Date: Tue, 29 Apr 2025 12:06:10 +0800
Subject: [PATCH RFC v3 6/8] kcov: add __always_inline for canonicalize_ip
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20250429-noautoinline-v3-6-4c49f28ea5b5@uniontech.com>
References: <20250429-noautoinline-v3-0-4c49f28ea5b5@uniontech.com>
In-Reply-To: <20250429-noautoinline-v3-0-4c49f28ea5b5@uniontech.com>
To: Keith Busch <kbusch@kernel.org>, Jens Axboe <axboe@kernel.dk>, 
 Christoph Hellwig <hch@lst.de>, Sagi Grimberg <sagi@grimberg.me>, 
 Andrew Morton <akpm@linux-foundation.org>, 
 Yishai Hadas <yishaih@nvidia.com>, Jason Gunthorpe <jgg@ziepe.ca>, 
 Shameer Kolothum <shameerali.kolothum.thodi@huawei.com>, 
 Kevin Tian <kevin.tian@intel.com>, 
 Alex Williamson <alex.williamson@redhat.com>, 
 Peter Huewe <peterhuewe@gmx.de>, Jarkko Sakkinen <jarkko@kernel.org>, 
 Masahiro Yamada <masahiroy@kernel.org>, 
 Nathan Chancellor <nathan@kernel.org>, 
 Nicolas Schier <nicolas.schier@linux.dev>, 
 Nick Desaulniers <nick.desaulniers+lkml@gmail.com>, 
 Bill Wendling <morbo@google.com>, Justin Stitt <justinstitt@google.com>, 
 Vlastimil Babka <vbabka@suse.cz>, Suren Baghdasaryan <surenb@google.com>, 
 Michal Hocko <mhocko@suse.com>, Brendan Jackman <jackmanb@google.com>, 
 Johannes Weiner <hannes@cmpxchg.org>, Zi Yan <ziy@nvidia.com>, 
 Mathieu Desnoyers <mathieu.desnoyers@efficios.com>, 
 Peter Zijlstra <peterz@infradead.org>, 
 "Paul E. McKenney" <paulmck@kernel.org>, Boqun Feng <boqun.feng@gmail.com>, 
 Dmitry Vyukov <dvyukov@google.com>, Andrey Konovalov <andreyknvl@gmail.com>, 
 Juergen Gross <jgross@suse.com>, 
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, 
 Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>, 
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, 
 x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>
Cc: linux-nvme@lists.infradead.org, linux-kernel@vger.kernel.org, 
 linux-mm@kvack.org, kvm@vger.kernel.org, virtualization@lists.linux.dev, 
 linux-integrity@vger.kernel.org, linux-kbuild@vger.kernel.org, 
 llvm@lists.linux.dev, Winston Wen <wentao@uniontech.com>, 
 kasan-dev@googlegroups.com, xen-devel@lists.xenproject.org, 
 Chen Linxuan <chenlinxuan@uniontech.com>, 
 Changbin Du <changbin.du@intel.com>
X-Mailer: b4 0.14.2
X-Developer-Signature: v=1; a=openpgp-sha256; l=999;
 i=chenlinxuan@uniontech.com; h=from:subject:message-id;
 bh=bu46wuQGrDj6kBvEdZGeSh/hu1kfUprs2xtOHC9YvDM=;
 b=owEBbQKS/ZANAwAKAXYe5hQ5ma6LAcsmYgBoEFAzBVNZPkSl6Omnu5oU34AQK+1mpqi/WLkNr
 0NEvxK8dUyJAjMEAAEKAB0WIQTO1VElAk6xdvy0ZVp2HuYUOZmuiwUCaBBQMwAKCRB2HuYUOZmu
 i8g1D/40bhkDUMn5ZsiK4TnuOugcii2OnZKhTkti9V/LWWRvgzRyIsQwQx4FtXYSoLWNriV0VjO
 CyBhHFDEFDn9Qz/M965AcIUUmKLR5grVtMB9zo5zCc6a91HPJy6GMCb7vQWZAzb4+pWGKnhvAMx
 Ov0wOqEkIfqqFMjOVcO8Vm4hfpv/gUj81gfM3GBjvGd2OHSGu5Pij0pZYLJpk1zPwPTmvDqrsz4
 oYuo8iGnQFrGPoCp8bulBU2twHYxidXZqedbEM/1LtFaKcmn/lXQC7zQRnMoVVJw/VWRJEm3H/r
 ZAZEvQW29nAzq7hH4vvQnts2FtjI834A3qFtxQn63CS2Sfr4r+Cq1EuVsao/7MSVIED9IWykpk7
 4zxistnA1wTl+9FGo+ICJdWpP4NFZYJXYzFIo2tProekWZDMySQIIR8PlepBYAhmPBM4brAn4p+
 6EeroMTKyY8ruNjdDNz7d2T4eCWNT79QPnCWQnqqQnu6en7oxsQ2nWq0yCWUgq6PiInxlG1IrOp
 ws0NDutFTcctb93F/sUKWR8fxwjFNCr2kJf2YNiq9h6vsJ5kJf0v5kwbgfSvV4AJmDUqbWsjulX
 AA7Pwu8V0FCWq4C/mflHXRlVyt5MBdGeteRJDx/xMeppywk4M4UANlKUX+SDfpwBq2fbdtOztNl
 do0e6Yl/yQUEHnA==
X-Developer-Key: i=chenlinxuan@uniontech.com; a=openpgp;
 fpr=D818ACDD385CAE92D4BAC01A6269794D24791D21
X-Endpoint-Received: by B4 Relay for chenlinxuan@uniontech.com/default with
 auth_id=380
X-Original-From: Chen Linxuan <chenlinxuan@uniontech.com>
Reply-To: chenlinxuan@uniontech.com

From: Chen Linxuan <chenlinxuan@uniontech.com>

Presume that kernel is compiled for x86_64 with gcc version 13.3.0:

  make allmodconfig
  make KCFLAGS="-fno-inline-small-functions -fno-inline-functions-called-once"

This results a objtool warning:

  vmlinux.o: warning: objtool: __sanitizer_cov_trace_pc+0xc: call to canonicalize_ip() with UACCESS enabled

Signed-off-by: Chen Linxuan <chenlinxuan@uniontech.com>
---
 kernel/kcov.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/kernel/kcov.c b/kernel/kcov.c
index 187ba1b80bda169d2f7efead5c6076b8829522ca..a2e2d3c655406b5a1f53e4855c782727b0541935 100644
--- a/kernel/kcov.c
+++ b/kernel/kcov.c
@@ -194,7 +194,7 @@ static notrace bool check_kcov_mode(enum kcov_mode needed_mode, struct task_stru
 	return mode == needed_mode;
 }
 
-static notrace unsigned long canonicalize_ip(unsigned long ip)
+static __always_inline notrace unsigned long canonicalize_ip(unsigned long ip)
 {
 #ifdef CONFIG_RANDOMIZE_BASE
 	ip -= kaslr_offset();

-- 
2.43.0




From xen-devel-bounces@lists.xenproject.org Tue Apr 29 06:33:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 06:33:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.971398.1359848 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9eX8-0007H1-Ib; Tue, 29 Apr 2025 06:33:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 971398.1359848; Tue, 29 Apr 2025 06:33:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9eX8-0007Gu-Ff; Tue, 29 Apr 2025 06:33:34 +0000
Received: by outflank-mailman (input) for mailman id 971398;
 Tue, 29 Apr 2025 04:06: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=WGTB=XP=kernel.org=devnull+chenlinxuan.uniontech.com@srs-se1.protection.inumbo.net>)
 id 1u9cEg-0003lQ-Ao
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 04:06:22 +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 4d1f72a8-24af-11f0-9eb4-5ba50f476ded;
 Tue, 29 Apr 2025 06:06:18 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by nyc.source.kernel.org (Postfix) with ESMTP id 894DBA4BAEE;
 Tue, 29 Apr 2025 04:00:49 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPS id EE095C4CEF8;
 Tue, 29 Apr 2025 04:06:16 +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 E278EC369CB;
 Tue, 29 Apr 2025 04:06:16 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4d1f72a8-24af-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1745899577;
	bh=/prxRR17A4AUb6KENZNu6wyfYJfvM5OCsGMmrdX+6/8=;
	h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From;
	b=lG9VsAzybNMbTnUEEHKSZoytPudEOxylRsU+yA6SDAHUs3Vk7juqULDjS6C9O5LhB
	 floTcFwObWWgd9Qy9P+MsJCS+3gFOAKzAAOH7m0u/4KWl+qdSjhZU9WQHFKvNXdN8W
	 BSe3ulfFjmdzCAMY/eCXZehkexHdlwS5pZrZjTrqFgqJT72FDN8uZXwL8SBxJ7riwk
	 AI428EO6T1lPUaWRb0VGqUy9vaGQ4WcwBN3SKW2NraiH6KEL9CXGwiRwCQCvt5x0qw
	 YvgmY7X/yDpGTRvRh8Zxgu/GQZGWWwyBUifBfdMWpSe5cOyf5FDSzF4WkOsKwik//K
	 Pr92s9YBYEgyA==
From: Chen Linxuan via B4 Relay <devnull+chenlinxuan.uniontech.com@kernel.org>
Date: Tue, 29 Apr 2025 12:06:07 +0800
Subject: [PATCH RFC v3 3/8] vfio/virtio: add __always_inline for
 virtiovf_get_device_config_size
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20250429-noautoinline-v3-3-4c49f28ea5b5@uniontech.com>
References: <20250429-noautoinline-v3-0-4c49f28ea5b5@uniontech.com>
In-Reply-To: <20250429-noautoinline-v3-0-4c49f28ea5b5@uniontech.com>
To: Keith Busch <kbusch@kernel.org>, Jens Axboe <axboe@kernel.dk>, 
 Christoph Hellwig <hch@lst.de>, Sagi Grimberg <sagi@grimberg.me>, 
 Andrew Morton <akpm@linux-foundation.org>, 
 Yishai Hadas <yishaih@nvidia.com>, Jason Gunthorpe <jgg@ziepe.ca>, 
 Shameer Kolothum <shameerali.kolothum.thodi@huawei.com>, 
 Kevin Tian <kevin.tian@intel.com>, 
 Alex Williamson <alex.williamson@redhat.com>, 
 Peter Huewe <peterhuewe@gmx.de>, Jarkko Sakkinen <jarkko@kernel.org>, 
 Masahiro Yamada <masahiroy@kernel.org>, 
 Nathan Chancellor <nathan@kernel.org>, 
 Nicolas Schier <nicolas.schier@linux.dev>, 
 Nick Desaulniers <nick.desaulniers+lkml@gmail.com>, 
 Bill Wendling <morbo@google.com>, Justin Stitt <justinstitt@google.com>, 
 Vlastimil Babka <vbabka@suse.cz>, Suren Baghdasaryan <surenb@google.com>, 
 Michal Hocko <mhocko@suse.com>, Brendan Jackman <jackmanb@google.com>, 
 Johannes Weiner <hannes@cmpxchg.org>, Zi Yan <ziy@nvidia.com>, 
 Mathieu Desnoyers <mathieu.desnoyers@efficios.com>, 
 Peter Zijlstra <peterz@infradead.org>, 
 "Paul E. McKenney" <paulmck@kernel.org>, Boqun Feng <boqun.feng@gmail.com>, 
 Dmitry Vyukov <dvyukov@google.com>, Andrey Konovalov <andreyknvl@gmail.com>, 
 Juergen Gross <jgross@suse.com>, 
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, 
 Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>, 
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, 
 x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>
Cc: linux-nvme@lists.infradead.org, linux-kernel@vger.kernel.org, 
 linux-mm@kvack.org, kvm@vger.kernel.org, virtualization@lists.linux.dev, 
 linux-integrity@vger.kernel.org, linux-kbuild@vger.kernel.org, 
 llvm@lists.linux.dev, Winston Wen <wentao@uniontech.com>, 
 kasan-dev@googlegroups.com, xen-devel@lists.xenproject.org, 
 Chen Linxuan <chenlinxuan@uniontech.com>, 
 Changbin Du <changbin.du@intel.com>
X-Mailer: b4 0.14.2
X-Developer-Signature: v=1; a=openpgp-sha256; l=3264;
 i=chenlinxuan@uniontech.com; h=from:subject:message-id;
 bh=xG7js8JRxRjbFUIGcKi60xVgk95Kd+hLnEeuvHk0cSk=;
 b=owEBbQKS/ZANAwAKAXYe5hQ5ma6LAcsmYgBoEFAwmuPV3ACiHfIboeRqguBq0EhDlCeY2gJxc
 awVBFVX6dWJAjMEAAEKAB0WIQTO1VElAk6xdvy0ZVp2HuYUOZmuiwUCaBBQMAAKCRB2HuYUOZmu
 i/7eD/9hIYexsn7L7GF/snRnakoE8V20CWkBNi/mt9lRdndsCiW2OdR1Ihha5YAXqecwmxRnfIk
 Emq8Rre/zUQpqoY7eJyR2xDIWhTnkwkCyfEyTsfGHJLEwQpKTt6VJJ194lzRgNJrsRGkdhoJgPI
 YVf5pd6n5+4vBUJ/2hfI/Wqt3KqqPR6vu9hUhNnSvGaEfJr67namCj1dKTEwipm+iyXGN7sYjwk
 snpKKFC8f1CyrsuOK1huwKroAFyXxK4bO9wRbSoE6Gt/WzfA3AIzffrZ/aMgOYpKOZs6Ing6PD3
 JJtFMLXppoFpuxaeXTedKMV2BuZ+QBRT8o4qDbJfIlRShfkM7nmkNgwKfyWdeXJVC/xO2NpbaXw
 oP4yE1mGjdBOkSpdcza79ucV0LSYANd8QnYJp5U0wRF5sJzj2Nll37E/9/W1L6yc4KSM3WdsvwP
 RsV1dnU8iFNZu61T95iCwa1GRo9dBbiQkjhkOvrBKEnM4ASeS1O0D2PdUlpWE7vO5rmS4F+3XCa
 Y/P1rp+j9DMaFuEPisA/6hp+L1E2HvBW5Md/Z6qu10+dwT1kPXvMWF0HUIgHhAppENa897twV7b
 6F9KYT4mFmdKNtZU6HSx6NzlGP2GxiJ1qZQP6mSPk+y5h2cOxYVABAdoN0CT/1P2jyc5Gq7LZo4
 ETnYNoxJgZ1iw4Q==
X-Developer-Key: i=chenlinxuan@uniontech.com; a=openpgp;
 fpr=D818ACDD385CAE92D4BAC01A6269794D24791D21
X-Endpoint-Received: by B4 Relay for chenlinxuan@uniontech.com/default with
 auth_id=380
X-Original-From: Chen Linxuan <chenlinxuan@uniontech.com>
Reply-To: chenlinxuan@uniontech.com

From: Winston Wen <wentao@uniontech.com>

Presume that kernel is compiled for x86_64 with gcc version 13.3.0:

  make defconfig
  ./scripts/kconfig/merge_config.sh .config <(
    echo CONFIG_VFIO=m
    echo CONFIG_VIRTIO_PCI=y
    echo CONFIG_VIRTIO_PCI_LIB_LEGACY=y
    echo CONFIG_VIRTIO_VFIO_PCI=m
    echo CONFIG_VIRTIO_VFIO_PCI_ADMIN_LEGACY=y
  )
  make KCFLAGS="-fno-inline-small-functions -fno-inline-functions-called-once" \
    drivers/vfio/pci/virtio/legacy_io.o

This results a compile error:

    CALL    scripts/checksyscalls.sh
    DESCEND objtool
    INSTALL libsubcmd_headers
    CC      drivers/vfio/pci/virtio/legacy_io.o
  In file included from <command-line>:
  drivers/vfio/pci/virtio/legacy_io.c: In function 'virtiovf_init_legacy_io':
  ././include/linux/compiler_types.h:557:45: error: call to '__compiletime_assert_889' declared with attribute error: BUILD_BUG_ON failed: !is_power_of_2(virtvdev->bar0_virtual_buf_size)
    557 |         _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
        |                                             ^
  ././include/linux/compiler_types.h:538:25: note: in definition of macro '__compiletime_assert'
    538 |                         prefix ## suffix();                             \
        |                         ^~~~~~
  ././include/linux/compiler_types.h:557:9: note: in expansion of macro '_compiletime_assert'
    557 |         _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
        |         ^~~~~~~~~~~~~~~~~~~
  ./include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert'
     39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
        |                                     ^~~~~~~~~~~~~~~~~~
  ./include/linux/build_bug.h:50:9: note: in expansion of macro 'BUILD_BUG_ON_MSG'
     50 |         BUILD_BUG_ON_MSG(condition, "BUILD_BUG_ON failed: " #condition)
        |         ^~~~~~~~~~~~~~~~
  drivers/vfio/pci/virtio/legacy_io.c:401:9: note: in expansion of macro 'BUILD_BUG_ON'
    401 |         BUILD_BUG_ON(!is_power_of_2(virtvdev->bar0_virtual_buf_size));
        |         ^~~~~~~~~~~~

BUILD_BUG_ON needs virtvdev->bar0_virtual_buf_size to be computed at
compile time. So we should mark virtiovf_get_device_config_size() with
__always_inline here.

Co-developed-by: Chen Linxuan <chenlinxuan@uniontech.com>
Signed-off-by: Chen Linxuan <chenlinxuan@uniontech.com>
Signed-off-by: Winston Wen <wentao@uniontech.com>
---
 drivers/vfio/pci/virtio/legacy_io.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/vfio/pci/virtio/legacy_io.c b/drivers/vfio/pci/virtio/legacy_io.c
index 832af5ba267c49a079009cfe0fa93c15ba7a490f..b6871d50b9f9e278ef3c49a9cb2baf474b8271c6 100644
--- a/drivers/vfio/pci/virtio/legacy_io.c
+++ b/drivers/vfio/pci/virtio/legacy_io.c
@@ -350,7 +350,7 @@ int virtiovf_open_legacy_io(struct virtiovf_pci_core_device *virtvdev)
 	return virtiovf_set_notify_addr(virtvdev);
 }
 
-static int virtiovf_get_device_config_size(unsigned short device)
+static __always_inline int virtiovf_get_device_config_size(unsigned short device)
 {
 	/* Network card */
 	return offsetofend(struct virtio_net_config, status);

-- 
2.43.0




From xen-devel-bounces@lists.xenproject.org Tue Apr 29 06:33:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 06:33:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.971414.1359906 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9eXB-0008FD-OZ; Tue, 29 Apr 2025 06:33:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 971414.1359906; Tue, 29 Apr 2025 06:33: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 1u9eXB-0008At-8X; Tue, 29 Apr 2025 06:33:37 +0000
Received: by outflank-mailman (input) for mailman id 971414;
 Tue, 29 Apr 2025 04:06: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=WGTB=XP=kernel.org=devnull+chenlinxuan.uniontech.com@srs-se1.protection.inumbo.net>)
 id 1u9cEr-0003mv-Oe
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 04:06:33 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4d1e5c05-24af-11f0-9ffb-bf95429c2676;
 Tue, 29 Apr 2025 06:06:18 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 841A6615EF;
 Tue, 29 Apr 2025 04:05:51 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPS id AF344C4CEE3;
 Tue, 29 Apr 2025 04:06:16 +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 98151C369CB;
 Tue, 29 Apr 2025 04:06:16 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4d1e5c05-24af-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1745899576;
	bh=V+YDfvUyGy5qM6nqWNSGKKulp2fwuDLB1gLxIkj/Hno=;
	h=From:Subject:Date:To:Cc:Reply-To:From;
	b=JrpjRytRVQqTzmvDN6tW8YwWy5LZEcqe6LwvOCY/SquzF6mxh4RHWz4fLI7DHh+Q6
	 OIk1xHUupRbL7YZJ6VPBb5I/Cqe1L8DRA43HCUDBtHqFaVGf0cAm9sPKUqLs5nmFys
	 hcjlxVCHe61nmaW0bNMqcoYxGsf/Gj0KWmWjwk0jnsS7P81OWOSUTyOHasEJpPtzsT
	 WkB3ojGfh670XtC3ltZq9dxNP1wwvpx6uNHneQD55VGNpzCOJIw3LaE9t8IR8WsOAz
	 HhVjN8ByZI/ZAVMh+pwvU8yzJR+3XjfSUGjQ9ENcQzkgQOmbRX7izujoWnKPklrAFY
	 eiZ7yDwkQxZpw==
From: Chen Linxuan via B4 Relay <devnull+chenlinxuan.uniontech.com@kernel.org>
Subject: [PATCH RFC v3 0/8] kernel-hacking: introduce CONFIG_NO_AUTO_INLINE
Date: Tue, 29 Apr 2025 12:06:04 +0800
Message-Id: <20250429-noautoinline-v3-0-4c49f28ea5b5@uniontech.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
X-B4-Tracking: v=1; b=H4sIACxQEGgC/22OzQ6CMBCEX4X0qiXdpQXqyQTCA3g1HhBXaaKt4
 S8YwrtbG0/G48xkvpmF9dQZ6tkuWlhHk+mNs14k24g1bW1vxM3Fa4YClZCQcuvqcXDG3o0lnpM
 +a1KJkgqZrzw7upo54I7sUBXs5M3W9IPrXmFighAlUEksc5BQlCWWYvPFAwgFEuNco0458Kalz
 9A81nY/Wn9toKaNG/cI4AkD7P+1CbnglOoaM8hUIq6/gHVd37l4dtL+AAAA
X-Change-ID: 20250416-noautoinline-8e9b9e535452
To: Keith Busch <kbusch@kernel.org>, Jens Axboe <axboe@kernel.dk>, 
 Christoph Hellwig <hch@lst.de>, Sagi Grimberg <sagi@grimberg.me>, 
 Andrew Morton <akpm@linux-foundation.org>, 
 Yishai Hadas <yishaih@nvidia.com>, Jason Gunthorpe <jgg@ziepe.ca>, 
 Shameer Kolothum <shameerali.kolothum.thodi@huawei.com>, 
 Kevin Tian <kevin.tian@intel.com>, 
 Alex Williamson <alex.williamson@redhat.com>, 
 Peter Huewe <peterhuewe@gmx.de>, Jarkko Sakkinen <jarkko@kernel.org>, 
 Masahiro Yamada <masahiroy@kernel.org>, 
 Nathan Chancellor <nathan@kernel.org>, 
 Nicolas Schier <nicolas.schier@linux.dev>, 
 Nick Desaulniers <nick.desaulniers+lkml@gmail.com>, 
 Bill Wendling <morbo@google.com>, Justin Stitt <justinstitt@google.com>, 
 Vlastimil Babka <vbabka@suse.cz>, Suren Baghdasaryan <surenb@google.com>, 
 Michal Hocko <mhocko@suse.com>, Brendan Jackman <jackmanb@google.com>, 
 Johannes Weiner <hannes@cmpxchg.org>, Zi Yan <ziy@nvidia.com>, 
 Mathieu Desnoyers <mathieu.desnoyers@efficios.com>, 
 Peter Zijlstra <peterz@infradead.org>, 
 "Paul E. McKenney" <paulmck@kernel.org>, Boqun Feng <boqun.feng@gmail.com>, 
 Dmitry Vyukov <dvyukov@google.com>, Andrey Konovalov <andreyknvl@gmail.com>, 
 Juergen Gross <jgross@suse.com>, 
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, 
 Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>, 
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, 
 x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>
Cc: linux-nvme@lists.infradead.org, linux-kernel@vger.kernel.org, 
 linux-mm@kvack.org, kvm@vger.kernel.org, virtualization@lists.linux.dev, 
 linux-integrity@vger.kernel.org, linux-kbuild@vger.kernel.org, 
 llvm@lists.linux.dev, Winston Wen <wentao@uniontech.com>, 
 kasan-dev@googlegroups.com, xen-devel@lists.xenproject.org, 
 Chen Linxuan <chenlinxuan@uniontech.com>, 
 Changbin Du <changbin.du@intel.com>
X-Mailer: b4 0.14.2
X-Developer-Signature: v=1; a=openpgp-sha256; l=2639;
 i=chenlinxuan@uniontech.com; h=from:subject:message-id;
 bh=V+YDfvUyGy5qM6nqWNSGKKulp2fwuDLB1gLxIkj/Hno=;
 b=owEBbQKS/ZANAwAKAXYe5hQ5ma6LAcsmYgBoEFAt1A5qQ0LESAzipTR7awHbnQPj78n5atow0
 tiwIctZ69yJAjMEAAEKAB0WIQTO1VElAk6xdvy0ZVp2HuYUOZmuiwUCaBBQLQAKCRB2HuYUOZmu
 ixgVD/9iV08f+Vs6eS/LbQDJ7q+zM9yfQ97NvSrbN+MQtFOdOOX/B9DDWjz07bMvwZeoSrnuWD8
 Hp2NCMdUMvn/XAg8tY/cC0FeuznQPAg5DIqOw8e+jaILOgWNROimjgixLuhTr6WiaM0KrcZDHBL
 OCFiXr8cJEoV5nmHDZpwmsRyfhwIkYxKUiqVZvxYPnX5Mq0jdE9cE129yrf++c0rJHV7tiA9m3m
 3Dgfo4EYCqhLMhujPTgQnqrtD260ZB/BDOIDT/4pmvjfuO7SVexQMqaZ6VD9Zv6g3IpgG//tHdW
 YqgmY8n2rOMhJaDXULwLGpK32HY5uEPSykT3U8ytrJs1vPonlNQ+Yl1jBUOMiJd28s6gMWhAfNF
 7DhrCdUVPQITzQ3hp7+hMavCnibw1bsO70Q1Jyoe/HbpVw+jgqinhhqNY/q95Z3kUEjgZ70wbQz
 J4+fpvQceoLTw3aPUBwT4AgmFYItGhMG/oWciNlmNPDr/PkMdez2OuxVUBnKvMvmy4yNtOyF82f
 vhAi9OSPoii6ldf1OcZLCU7qEMXlU9dM1KhX437xOQ4ZbW31J0vPnuqxW9b5BE8+hsNfWWLyt/z
 sTJSwkwcY3PBvFzx6dDyI4Q7JC83rCdQ6Bpw8f+o9IgK2kSIMrG0t4mrxG3OSfZB8NXalFg40yK
 bumZ9NWzca7x0hA==
X-Developer-Key: i=chenlinxuan@uniontech.com; a=openpgp;
 fpr=D818ACDD385CAE92D4BAC01A6269794D24791D21
X-Endpoint-Received: by B4 Relay for chenlinxuan@uniontech.com/default with
 auth_id=380
X-Original-From: Chen Linxuan <chenlinxuan@uniontech.com>
Reply-To: chenlinxuan@uniontech.com

This series introduces a new kernel configuration option NO_AUTO_INLINE,
which can be used to disable the automatic inlining of functions.

This will allow the function tracer to trace more functions
because it only traces functions that the compiler has not inlined.

Previous discussions can be found at

Link: https://lore.kernel.org/all/20181028130945.23581-3-changbin.du@gmail.com/

This patch depends on

  [PATCH] drm/i915/pxp: fix undefined reference to
          `intel_pxp_gsccs_is_ready_for_sessions'

which can be found at

  https://lore.kernel.org/all/20250415090616.2649889-1-jani.nikula@intel.com/

as well as

  [RFC PATCH 5/7] RDMA/hns: initialize db in update_srq_db()

which can be found at

  https://lore.kernel.org/all/FF922C77946229B6+20250411105459.90782-5-chenlinxuan@uniontech.com/

Signed-off-by: Chen Linxuan <chenlinxuan@uniontech.com>
---
Changes in v3:
- Fix some modpost and objtool warnings
- Try support clang as Bart Van Assche suggested.
- Remove architecture depends as Bart Van Assche suggested.
- Link to v2: https://lore.kernel.org/r/20250416-noautoinline-v2-0-e69a2717530f@uniontech.com

Changes in v2:
- Resend via b4 to correct Message-ID and recipients.
- Update commit message following suggestions from Jarkko Sakkinen 
- Link to v1: https://lore.kernel.org/r/31F42D8141CDD2D0+20250411105142.89296-1-chenlinxuan@uniontech.com

---
Chen Linxuan (4):
      rseq: add __always_inline for rseq_kernel_fields
      kcov: add __always_inline for canonicalize_ip
      x86/xen: add __init for xen_pgd_walk
      lib/Kconfig.debug: introduce CONFIG_NO_AUTO_INLINE

Winston Wen (4):
      nvme: add __always_inline for nvme_pci_npages_prp
      mm: add __always_inline for page_contains_unaccepted
      vfio/virtio: add __always_inline for virtiovf_get_device_config_size
      tpm: add __always_inline for tpm_is_hwrng_enabled

 Makefile                            | 16 ++++++++++++++++
 arch/x86/xen/mmu_pv.c               |  2 +-
 drivers/char/tpm/tpm-chip.c         |  2 +-
 drivers/nvme/host/pci.c             |  2 +-
 drivers/vfio/pci/virtio/legacy_io.c |  2 +-
 kernel/kcov.c                       |  2 +-
 kernel/rseq.c                       |  2 +-
 lib/Kconfig.debug                   | 21 +++++++++++++++++++++
 lib/Makefile                        |  3 +++
 mm/page_alloc.c                     |  2 +-
 10 files changed, 47 insertions(+), 7 deletions(-)
---
base-commit: ca91b9500108d4cf083a635c2e11c884d5dd20ea
change-id: 20250416-noautoinline-8e9b9e535452

Best regards,
-- 
Chen Linxuan <chenlinxuan@uniontech.com>




From xen-devel-bounces@lists.xenproject.org Tue Apr 29 06:43:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 06:43:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.971553.1359938 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9eh7-0005Vx-Hb; Tue, 29 Apr 2025 06:43:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 971553.1359938; Tue, 29 Apr 2025 06:43: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 1u9eh7-0005Vq-EK; Tue, 29 Apr 2025 06:43:53 +0000
Received: by outflank-mailman (input) for mailman id 971553;
 Tue, 29 Apr 2025 06:43: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=qXnC=XP=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u9eh5-0005Vk-SL
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 06:43:51 +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 4eae1748-24c5-11f0-9ffb-bf95429c2676;
 Tue, 29 Apr 2025 08:43:49 +0200 (CEST)
Received: by mail-ej1-x634.google.com with SMTP id
 a640c23a62f3a-ac2a81e41e3so1007341566b.1
 for <xen-devel@lists.xenproject.org>; Mon, 28 Apr 2025 23:43:49 -0700 (PDT)
Received: from [10.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-acecf27a79esm31848266b.24.2025.04.28.23.43.48
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 28 Apr 2025 23:43: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: 4eae1748-24c5-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745909029; x=1746513829; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=7q4chUH5I+4nZEOXH93nWk0410fMjJNFOvlmK30f50s=;
        b=D8ny6aFGUF2RSTHiGJag3nRGRyk4/ulMIWFWXpDBIix3nZpMZU8EoAZd+FDa//uXGG
         l20BKXQAopZD5YQKf69r81Jl0YjRhIW+tszpHX081F28+4dKHCRRHVhoGH0BgCTUC8p9
         r506wRNF2kHC5DoeYYCoFvku1FZn8tJ8SpuxHwjQdizWr5wQF1wh9J3wiMwJht4czHOm
         Z8SV/QvkWXwenHmxxm2RTj3BgFDXWlyrqXWW9sVF+DxRHMf72guTGClj+uRX2fGczPWx
         IOXk3tDP66efv6A2Ti7ULDiafzGE0Jh1nfGdbf/S2NeN/HjK/n8Jr2cQKoDnEpSb3pP5
         lTJA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745909029; x=1746513829;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=7q4chUH5I+4nZEOXH93nWk0410fMjJNFOvlmK30f50s=;
        b=fyVXxWR2RMnHOD6B9e970Y0dY5cLg0YeKV39AoBomhyOk38KElfWoBLpNjLCwSZEBq
         Tf2yzn9gtph20fN9xhDRXXcVcvLi+wjlL8YAQIFt0RaYn2LD0fpvSJxXNYjERXwG1xAJ
         hlSbdMlsNhY1psTdnfSlXUFGBERM/cA6kDv+7hWThWp1VSFq9VJwwND/MQ+2x28MjSkf
         QNttYZEI/CdAf49+0usAFRnJb1CeIORNoG5+u4l+FNWKVIJLlwAj60NC/EN9AFmxZB52
         JuJKepcPmXwauWVRxIPQfSkcC0DI7gJRagloiV1OPrShDMU1HuL8tKWREAdYTrbK/GFY
         edFQ==
X-Forwarded-Encrypted: i=1; AJvYcCVVEF/s2ydVGfw7VUgK2SdMomYiP48fBCyCeU1Ke4Bi+S5+SfIkChv51jf8aPD4yN0z7Hk7nyVNgv4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YztjFUoLjg9H0FECiZwlL7xFGOzrqClkBVyRlqgoC5VRZZNc9VH
	md/MSMj0BE6yo+mGm8+BvipfvwxMo7O5RsRy6gqOBX+dT9PrdiFm5l3afg5uqQ==
X-Gm-Gg: ASbGncs8xYmgNb7iDGgkAfi2Ll09Z4DsOiGHj48Kkaq2nJ2+ZC6S64aEwn2oj5Q3v9V
	2LbKHEs+iBAGeJi4nz3ajzmcE5VYFIXathxmYXpjCtKaSC3IWF0w2U519e7SdRFmVgPjpBRxn//
	8dAYITJfyOB/ALj2eXAANuB8GFlFyJkJFoeSJtGoPV6AmdP21EGgB+6MeoJQAORk5O6at+3RJKk
	cHUZl5puyzVXN6PnnaWeR+pMnm/LA2uAYew4QuBNabm/ZhYbKlenejWL+DJmiZXLd8RPCjYpXVo
	I0DIBS/xfZnMTrIdtUSMez2uiYhIIIP+gl1T1FRYNHZScVC9gIAbDlVdcxQ6gHycWOwMXuvMe+0
	OMfw53Z0vH2YkTYjvsNCZOrwmrQ==
X-Google-Smtp-Source: AGHT+IG4OR2kDFhOLFS2O+wHvGmX+OKfbxswYM9s9gYOQ+Sfzhg5lQStSidPC2oR8YKqRQTfJqFAYQ==
X-Received: by 2002:a17:907:72d0:b0:acb:b08c:76ae with SMTP id a640c23a62f3a-acec84d2cb7mr136739266b.16.1745909029000;
        Mon, 28 Apr 2025 23:43:49 -0700 (PDT)
Message-ID: <06b66971-d8db-456f-8e83-a20ff7df8f5e@suse.com>
Date: Tue, 29 Apr 2025 08:43:47 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/x86: allow Dom0 PVH to call XENMEM_exchange
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: "Ragiadakou, Xenia" <Xenia.Ragiadakou@amd.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 jason.andryuk@amd.com, agarciav@amd.com, xen-devel@lists.xenproject.org
References: <alpine.DEB.2.22.394.2504251314050.785180@ubuntu-linux-20-04-desktop>
 <19d9aec4-c21a-47a9-9c58-6bfcadbd22e0@suse.com>
 <alpine.DEB.2.22.394.2504281242240.785180@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.2504281242240.785180@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 28.04.2025 22:00, Stefano Stabellini wrote:
> On Mon, 28 Apr 2025, Jan Beulich wrote:
>> On 25.04.2025 22:19, Stefano Stabellini wrote:
>>> From: Xenia Ragiadakou <Xenia.Ragiadakou@amd.com>
>>>
>>> Dom0 PVH might need XENMEM_exchange when passing contiguous memory
>>> addresses to firmware or co-processors not behind an IOMMU.
>>
>> I definitely don't understand the firmware part: It's subject to the
>> same transparent P2M translations as the rest of the VM; it's just
>> another piece of software running there.
>>
>> "Co-processors not behind an IOMMU" is also interesting; a more
>> concrete scenario might be nice, yet I realize you may be limited in
>> what you're allowed to say.
> 
> Sure. On AMD x86 platforms there is a co-processor called PSP running
> TEE firmware. The PSP is not behind an IOMMU. Dom0 needs occasionally to
> pass addresses to it.  See drivers/tee/amdtee/ and
> include/linux/psp-tee.h in Linux.
> 
> This is not a new problem. On ARM we have been dealing with this kind of
> issues for more than a decade and it is the reason why originally the
> decision was to run Dom0 1:1 mapped on ARM. I am not suggesting to map
> Dom0 PVH 1:1; I am only providing context and highlighting that we
> have been lucky on x86 :-)
> 
> 
>>> XENMEM_exchange was blocked for HVM/PVH DomUs, and accidentally it
>>> impacted Dom0 PVH as well.
>>
>> This wasn't accidental at all, I don't think.
> 
> You as the original author of the patch (fae7d5be8bb) in question would
> surely know better. But the way the commit message was written was
> pointing toward a Dom0/DeviceModel problem:
> 
> "The operation's success can't be controlled by the guest, as the device
> model may have an active mapping of the page."

It's the problem mentioned at the bottom: MFNs (in principle) are entirely
meaningless to HVM and PVH domains. With, as you point out there, an
apparently important exception.

>>> --- a/xen/arch/x86/mm.c
>>> +++ b/xen/arch/x86/mm.c
>>> @@ -4401,7 +4401,7 @@ int steal_page(
>>>      const struct domain *owner;
>>>      int rc;
>>>  
>>> -    if ( paging_mode_external(d) )
>>> +    if ( paging_mode_external(d) && !is_hardware_domain(d) )
>>>          return -EOPNOTSUPP;
>>>  
>>>      /* Grab a reference to make sure the page doesn't change under our feet */
>>
>> Is this (in particular the code following below here) a safe thing to do
>> when we don't properly refcount page references from the P2M, yet? It's
>> Dom0, yes, but even there I might see potential security implications (as
>> top violating privacy of a guest).
> 
> I don't think I am following, could you please elaborate more? The
> change I am proposing is to allow Dom0 to share its own pages to the
> co-processor. DomUs are not in the picture. I would be happy to add
> further restriction to that effect. Is there something else you have in
> mind?

Once "shared" with the PSP, how would Xen know that this sharing has stopped?
Without knowing, how could it safely give the same page to a DomU later on?
("Safely" in both directions: Without compromising privacy of the DomU and
without compromising host safety / security.)

>> Furthermore cleanup_page_mappings() (called later in the function) has a
>> PV-only aspect which would apparently need widening to PVH Dom0 then,
>> too.
> 
> You are referring to:
> 
>         if ( d && unlikely(need_iommu_pt_sync(d)) && is_pv_domain(d) )
>             rc = iommu_legacy_unmap(d, _dfn(mfn), 1u << PAGE_ORDER_4K);
> 
> is that correct?

Yes, that's what immediately caught my eye. I didn't look carefully whether
there might be more.

>>> --- a/xen/common/memory.c
>>> +++ b/xen/common/memory.c
>>> @@ -794,7 +794,7 @@ static long memory_exchange(XEN_GUEST_HANDLE_PARAM(xen_memory_exchange_t) arg)
>>>              rc = guest_physmap_add_page(d, _gfn(gpfn), mfn,
>>>                                          exch.out.extent_order) ?: rc;
>>>  
>>> -            if ( !paging_mode_translate(d) &&
>>> +            if ( (!paging_mode_translate(d) || is_hardware_domain(d)) &&
>>>                   __copy_mfn_to_guest_offset(exch.out.extent_start,
>>>                                              (i << out_chunk_order) + j,
>>>                                              mfn) )
>>
>> Wait, no: A PVH domain (Dom0 or not) can't very well make use of MFNs, can
>> it?
> 
> One way or another Dom0 PVH needs to know the MFN to pass it to the
> co-processor.

I see. That's pretty odd, though. I'm then further concerned of the order of
the chunks. At present we're rather lax, in permitting PVH and PV Dom0 the
same upper bound. With both CPU and I/O side translation there is, in
principle, no reason to permit any kind of contiguity. Of course there's a
performance aspect, but that hardly matters in the specific case here. Yet at
the same time, once we expose MFNs, contiguity will start mattering as soon
as any piece of memory needs to be larger than PAGE_SIZE. Which means it will
make tightening of the presently lax handling prone to regressions in this
new behavior you're introducing. What chunk size does the PSP driver require?

One further thought here: Is it really the hardware domain which is most
logical to drive the PSP? Interaction is (just guessing) perhaps needed
primarily when creating / managing guests? Then having the control domain
talk to a driver in the hardware domain would make the overall picture more
complicated.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 29 06:48:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 06:48:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.971566.1359949 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9eld-00065M-2g; Tue, 29 Apr 2025 06:48:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 971566.1359949; Tue, 29 Apr 2025 06:48: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 1u9elc-00065F-Uw; Tue, 29 Apr 2025 06:48:32 +0000
Received: by outflank-mailman (input) for mailman id 971566;
 Tue, 29 Apr 2025 06:48: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=qXnC=XP=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u9elb-000659-Ly
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 06:48:31 +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 f628967a-24c5-11f0-9eb4-5ba50f476ded;
 Tue, 29 Apr 2025 08:48:30 +0200 (CEST)
Received: by mail-ej1-x62a.google.com with SMTP id
 a640c23a62f3a-acbb85ce788so1088633566b.3
 for <xen-devel@lists.xenproject.org>; Mon, 28 Apr 2025 23:48:30 -0700 (PDT)
Received: from [10.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-ace6ed6fc25sm735438966b.132.2025.04.28.23.48.29
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 28 Apr 2025 23:48:29 -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: f628967a-24c5-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745909310; x=1746514110; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Zh8fXfdEy0ung0RkzV6wSql/dzQEHSRxarD60SXNHEU=;
        b=XB3qciUem2kV7vQb6alAFqH5Gm3p3CKIlHJvB1hIxQ0ht5tra2gLYQFCKoATVEOQdc
         Fvh1Cd1JZlFVkqrmpbJZSg5byZXoo338po0IWrXS9E8xUp+n5Ypadm45rnerafJmMkZB
         DnRRPE6rVJuckQ4h3A7JPoOZrf0TPIWTX4V2xuuZU3jYtWLt2MG3POLhZNxEJxbMoUeD
         /tuAs0ibhbEvMQB86glBz4ovh6M4Is82ja5C1IUoV+tPAud3uX1b3xg7ZqYu5wuIiFYd
         i30TQuPrdNmhY8+gipmYMLiBv73NGdCfBOwYhVR00ZBbe1ww+s///Lzfev01gIc3+fwe
         qDjQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745909310; x=1746514110;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Zh8fXfdEy0ung0RkzV6wSql/dzQEHSRxarD60SXNHEU=;
        b=mSBzO2fDqOSIF1b1gTzAHgQb/gRaxuGjZ+ntRqz1HtV5g4ZV8MoYrd/AOoFgkNFQ87
         WOMzF7xHgR4esDn3Eax89d8QyM0njWU1dvYjLnovpzcr76SUyDpjCYW1TK4bPKI32eI2
         RLTP8Kr/xLKrn5YUmWO6oiNcNumMt1PoEC/gjmJeefP8EklDn9HiRPb/FSDvwZ3nniRF
         alvkAYHmken1jUNSUGTSjEYYnDOoq10wz5duXu6vV0JXGlxhvv69Yfh97htPjmvBFGj0
         ynjoYW/p0DRqTLjUFA+bxr8CSasVwBddnmoaQlg4pcp/xksFwOR3L+Ua9R5k/aMRDWiZ
         yyTQ==
X-Forwarded-Encrypted: i=1; AJvYcCU5Q+4VRuFck0HF8W3fRojFjJ6QEU0PHwx/0dbBg/K+Ow6rM8b3rBjXk8tHNSSa1cDdKUhQyI34v0I=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxiKZVUPLysCp5soPlFRigZxS3UCOeOzrln3DzobkyBpaGtJPGH
	KQ/xfvvufcTn8JZnpanKEg/8f3Up15ScOuzsPD4TDXbRHR/AqA2jhpAUDkqQ+g==
X-Gm-Gg: ASbGncvYbdEoyXsfp4+Mdp+CW1Aa41qSrrN8x3rUXSEJSqKVg4zixNtI/ve3G0QK/Dx
	DLEwU+OQD3kS9sGMWy1fe1K5/KQUCSGjLKbR3ZnmgixFI7b0Qx/Lyu30E7hqBDfEuOksXYGYuVv
	XVIZ+tWTx0iCDdE5mJITkekuSpZzgz9jNp7CZVx7eO0+xrzhmRnccZck1aIbEDaflsdflx6ALMX
	yYpWKvYslS/PU3RmsmAtSGLh1Ve6KHsc9G7LnnfTNKcNiK9yHGR8ZMu+TUSIQwz+1pARUmnE6T+
	Gva0fTp30UiYz/dNQcYV3GF4WOHgF1jF+zAWAZKwc7/W0BL3HHQpClF78e3Q64t9OQKHWYLxkhi
	7ZUQauSn+6LhaAd4JITYVyBiZSQ==
X-Google-Smtp-Source: AGHT+IF1QRq/4pd2TkNuM5NDgzLS9HMCM1lbOkNjK+I5FdeR84gJ4enSi3iwxCH18di7BOUT2W77Fg==
X-Received: by 2002:a17:907:d8c:b0:ac1:f003:be08 with SMTP id a640c23a62f3a-acec849b8fdmr145768666b.12.1745909310087;
        Mon, 28 Apr 2025 23:48:30 -0700 (PDT)
Message-ID: <350d447e-7316-4d54-8468-68f78675cc8d@suse.com>
Date: Tue, 29 Apr 2025 08:48:28 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 1/3] x86: x86_emulate: address violations of MISRA C
 Rule 19.1
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: victorm.lira@amd.com, Nicola Vetrini <nicola.vetrini@bugseng.com>,
 Federico Serafini <federico.serafini@bugseng.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>, xen-devel@lists.xenproject.org
References: <c694069696dd428bc1719e36c378a573b03f74b9.1745624090.git.victorm.lira@amd.com>
 <914e3157-736a-4890-9c91-e93fcc260bb0@suse.com>
 <alpine.DEB.2.22.394.2504281625240.785180@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.2504281625240.785180@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 29.04.2025 03:27, Stefano Stabellini wrote:
> On Mon, 28 Apr 2025, Jan Beulich wrote:
>> On 26.04.2025 01:42, victorm.lira@amd.com wrote:
>>> From: Nicola Vetrini <nicola.vetrini@bugseng.com>
>>>
>>> Rule 19.1 states: "An object shall not be assigned or copied
>>> to an overlapping object". Since the "call" and "compat_call" are
>>
>> Was this taken from patch 2 without editing?
>>
>>> --- a/xen/arch/x86/x86_emulate/x86_emulate.c
>>> +++ b/xen/arch/x86/x86_emulate/x86_emulate.c
>>> @@ -526,9 +526,19 @@ static inline void put_loop_count(
>>>           */                                                             \
>>>          if ( !amd_like(ctxt) && mode_64bit() && ad_bytes == 4 )         \
>>>          {                                                               \
>>> +            uint64_t tmp;                                               \
>>> +                                                                        \
>>>              _regs.r(cx) = 0;                                            \
>>> -            if ( extend_si ) _regs.r(si) = _regs.esi;                   \
>>> -            if ( extend_di ) _regs.r(di) = _regs.edi;                   \
>>> +            if ( extend_si )                                            \
>>> +            {                                                           \
>>> +                tmp = _regs.esi;                                        \
>>> +                _regs.r(si) = tmp;                                      \
>>> +            }                                                           \
>>> +            if ( extend_di )                                            \
>>> +            {                                                           \
>>> +                tmp = _regs.edi;                                        \
>>> +                _regs.r(di) = tmp;                                      \
>>> +            }                                                           \
>>
>> See commit 7225f13aef03 for how we chose to address similar issues elsewhere
>> in the emulator. I think we want to be consistent there. This will then also
>> eliminate ...
>>
>>> @@ -2029,7 +2039,12 @@ x86_emulate(
>>>          switch ( op_bytes )
>>>          {
>>>          case 2: _regs.ax = (int8_t)_regs.ax; break; /* cbw */
>>> -        case 4: _regs.r(ax) = (uint32_t)(int16_t)_regs.ax; break; /* cwde */
>>> +        case 4:
>>> +            {
>>> +                uint32_t tmp = (uint32_t)(int16_t)_regs.ax;
>>> +                _regs.r(ax) = tmp;
>>> +                break; /* cwde */
>>> +            }
>>
>> ... the odd brace placement here, as well as the inconsistency in the types
>> you used for the temporary variables (both really could have been unsigned
>> int; no need for a fixed-width type).
> 
> Is this what you have in mind?

No, and that's also not what the referenced commit did in a similar situation.

> --- a/xen/arch/x86/x86_emulate/x86_emulate.c
> +++ b/xen/arch/x86/x86_emulate/x86_emulate.c
> @@ -527,8 +527,8 @@ static inline void put_loop_count(
>          if ( !amd_like(ctxt) && mode_64bit() && ad_bytes == 4 )         \
>          {                                                               \
>              _regs.r(cx) = 0;                                            \
> -            if ( extend_si ) _regs.r(si) = _regs.esi;                   \
> -            if ( extend_di ) _regs.r(di) = _regs.edi;                   \
> +            if ( extend_si ) _regs.r(si) = (uint64_t)_regs.esi;         \
> +            if ( extend_di ) _regs.r(di) = (uint64_t)_regs.edi;         \

            if ( extend_si ) _regs.r(si) = (uint32_t)_regs.r(si);       \
            if ( extend_di ) _regs.r(di) = (uint32_t)_regs.r(di);       \

After all what the rule requires is that we use _the same_ field on both sides.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 29 07:06:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 07:06:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.971579.1359959 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9f3A-0001ol-Hr; Tue, 29 Apr 2025 07:06:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 971579.1359959; Tue, 29 Apr 2025 07:06:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9f3A-0001oe-DS; Tue, 29 Apr 2025 07:06:40 +0000
Received: by outflank-mailman (input) for mailman id 971579;
 Tue, 29 Apr 2025 07:06: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=qXnC=XP=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u9f39-0001oY-3C
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 07:06:39 +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 7d379de3-24c8-11f0-9ffb-bf95429c2676;
 Tue, 29 Apr 2025 09:06:36 +0200 (CEST)
Received: by mail-ej1-x62e.google.com with SMTP id
 a640c23a62f3a-ac339f53df9so1079853266b.1
 for <xen-devel@lists.xenproject.org>; Tue, 29 Apr 2025 00:06:36 -0700 (PDT)
Received: from [10.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-ace6e4e699esm736062266b.39.2025.04.29.00.06.35
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 29 Apr 2025 00:06:35 -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: 7d379de3-24c8-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745910396; x=1746515196; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=mYNYtrCkK+42NGLSjpl4eAsXP2XrUSMuSGxOV8Aylpc=;
        b=NikVEVvmb7PAizYnr5s36vyY8Fpb8zFzfykP9zjLQGp4tKXW2vPDetlO/b0/m3S8f4
         fkVIGKQQawIocPwC3ErihAOQ5cErfuvhexQVYO1GHvx6FSh26FFqZlgUPFB9EfI6KDWO
         I8/HB9kQGhm9g6ZwDWk7c2ivZpCqxXGfgEfgNrTvSezdrROLUpb55U3r2oa2qsncmho7
         fbjYs4oNtiYAajvkWFLbx8Tr9o095Jnxc8i3G7x1FuT/plyaMFeym9+it0ED+taizudW
         Z4CAzIGEFbWI9YNNNF5FJmU3d27mjuSe7xhlJX3dqPj78XQRkvMK07YMectZiq2eNOMg
         hhRw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745910396; x=1746515196;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=mYNYtrCkK+42NGLSjpl4eAsXP2XrUSMuSGxOV8Aylpc=;
        b=pv5169PqjA0kOnHyo18dsUB5Wy41tzml7AhI+K2dgY+7CWIQCTNoVPZUqD04LRlHMM
         znBdJG9yzmDfrgySxyQOjNks4PjnkTU+Omjtp/5nIfewm4zW/cviOA1cG3C+36iLuNbI
         8gATMExfhC+RGUjASzBh7uuZey7O0bXhuK2FDR3f4NDT0WpAjSZYq1gQPNlMho0mMpOe
         uUVMFXW7udQW3oHvVhA3lrYa7nGXbUQ9FyseMmCv+37bbGkCw4I4KJuJ+uCWPqw9P/wc
         NRZp0qiy5hLjjx0EXroMW8Spj7KA6x7UbAKlhDwL6kNkS5w1DILCfvs7IIoORwaqZuql
         +PAA==
X-Forwarded-Encrypted: i=1; AJvYcCUShLHM++yETk/ioa3/NcE/uaGIAoRWmnJX2zAfMdfoi0qVK/aaX1rqw8Z1GIz0mIlnLe7YqZhoSoA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwzYNaD8JkS8LsfDCUhsDwD9ThtzA2y0QicpEk5tZCzi95i424M
	BNs12v+/LlFXIitejK9Edu9bHCeA5GkxIfWJATyX9zIF9F6IEpLe2IJB79cX/elbkrXwObKnzvU
	=
X-Gm-Gg: ASbGnctE67f5Mb7hGjcfLwUy49EnCzziOnNFTfumVFXJ1mufA9d+MJqCJdR71FnU/Gv
	+F+rA6aaIO/obKQ1PmY4KpeOrUhWk/v59PApTdIqK9f9ymKuP/h5q/gPZU10C9OOp3QXW/VEauG
	40REgziJV8ITNijvgKQHxsT5IzNjMPfc0qo0oi/Fgq/51i9XCkedTQki7nLUbcYCoME+TkChDh1
	tbPghecl06Nvuz/PHIcE5G0IEv66S11vPONDDICdPCN4xZH2EIi19/rZnYCY4ltmMZJhQxnNu8k
	r5KU0nzshQNosNxAtwOr5+ZKd+zexGCyEaOi1et3DN7lLnaCjkKs/KhK4WIWQQrK6dMmnxTt/Xf
	8Yr3uMMovn4AOW1uKZN5G4Y3wwg==
X-Google-Smtp-Source: AGHT+IFctKkKZDsWsIiOn2YRf5v+ET3OgJLStKEj705bdBdCe/xIBh5Gyaj2HCAUi+lwwTQ3X94uJw==
X-Received: by 2002:a17:907:72ca:b0:ac8:197f:3ff6 with SMTP id a640c23a62f3a-ace8493ad90mr1131587366b.28.1745910396326;
        Tue, 29 Apr 2025 00:06:36 -0700 (PDT)
Message-ID: <dc55282f-f9a1-470b-8126-ca347d44efbc@suse.com>
Date: Tue, 29 Apr 2025 09:06:34 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 2/3] compat: address violations of MISRA C Rule 19.1
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: victorm.lira@amd.com, Nicola Vetrini <nicola.vetrini@bugseng.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Federico Serafini <federico.serafini@bugseng.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>, xen-devel@lists.xenproject.org
References: <c694069696dd428bc1719e36c378a573b03f74b9.1745624090.git.victorm.lira@amd.com>
 <74b0420ab20fc0204db14c0a1a4a68ed48b25a38.1745624090.git.victorm.lira@amd.com>
 <cb1f8a8f-8834-4610-baab-c53bf5928b0c@suse.com>
 <alpine.DEB.2.22.394.2504281614020.785180@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.2504281614020.785180@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 29.04.2025 01:21, Stefano Stabellini wrote:
> On Mon, 28 Apr 2025, Jan Beulich wrote:
>> On 26.04.2025 01:42, victorm.lira@amd.com wrote:
>>> From: Nicola Vetrini <nicola.vetrini@bugseng.com>
>>>
>>> Rule 19.1 states: "An object shall not be assigned or copied
>>> to an overlapping object". Since the "call" and "compat_call" are
>>> fields of the same union, reading from one member and writing to
>>> the other violates the rule, while not causing Undefined Behavior
>>> due to their relative sizes. However, a dummy variable is used to
>>> address the violation and prevent the future possibility of
>>> incurring in UB.
>>
>> If there is such a concern, ...
>>
>>> --- a/xen/common/compat/multicall.c
>>> +++ b/xen/common/compat/multicall.c
>>> @@ -15,8 +15,13 @@ typedef int ret_t;
>>>  static inline void xlat_multicall_entry(struct mc_state *mcs)
>>>  {
>>>      int i;
>>> +    xen_ulong_t arg;
>>> +
>>>      for (i=0; i<6; i++)
>>> -        mcs->compat_call.args[i] = mcs->call.args[i];
>>> +    {
>>> +        arg = mcs->call.args[i];
>>> +        mcs->compat_call.args[i] = arg;
>>> +    }
>>>  }
>>
>> ... wouldn't it be of concern as well that the alternating parts of
>> the union are still accessed in a flip-flop manner? IOW we continue to
>> rely on the relative placement properties of the individual array
>> elements. To eliminate such a concern, I think the resulting code would
>> also want to be correct if iteration was swapped to work downwards.
>>
>> Also the scope of the temporary could certainly be the loop body rather
>> than the entire function.
> 
> Wouldn't be safer to do this then?
> 
> static inline void xlat_multicall_entry(struct mc_state *mcs)
> {
>     int i;
>     xen_ulong_t args[6];
> 
>     for ( i = 0; i < 6; i++ )
>     {
>         args[i] = mcs->call.args[i];
>     }
>     for ( i = 0; i < 6; i++ )
>     {
>         mcs->compat_call.args[i] = args[i];
>     }
> }
> 
> If you have any specific suggestions I think C code would be easier to
> understand than English.

Kind of the above, yes, with the further remark below also taken care of.
So ...

>> I also don't think it needs to be xen_ulong_t,
>> but maybe using unsigned int instead wouldn't make a difference in
>> generated code.
> 
> Keeping the same type as mcs->call.args[i] would seem more obviously
> correct? Not to mention that unsigned long is what we defined as
> register type? If we really want to avoid xen_ulong_t, then it should
> be uintptr_t?
> 
> We should stick to one type to be used as register type. On ARM, we
> defined register_t.

... with both taken into account e.g.:

    typeof(mcs->compat_call.args[0]) args[ARRAY_SIZE(mcs->call.args)];

    for ( i = 0; i < ARRAY_SIZE(args); i++ )
        args[i] = mcs->call.args[i];

    memcpy(mcs->compat_call.args, args, sizeof(args));

Of course there are variations possible. There also may want to be a
BUILD_BUG_ON() to "document" both array sizes match, even if the compat
form is auto-generated from the native one.

Tangential: As of 2f531c122e95 ("x86: limit number of hypercall parameters
to 5") it's kind of bogus that we process 6 array elements here. This even
extends to an assertion in hypercall_xlat_continuation() and to some of
the handling in hypercall_create_continuation(). I guess I will want to
make a patch there, which of course I could make cover the Misra aspect
here as well.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 29 07:10:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 07:10:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.971595.1359968 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9f6h-0003Mn-2q; Tue, 29 Apr 2025 07:10:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 971595.1359968; Tue, 29 Apr 2025 07:10:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9f6h-0003Mg-0B; Tue, 29 Apr 2025 07:10:19 +0000
Received: by outflank-mailman (input) for mailman id 971595;
 Tue, 29 Apr 2025 07:10: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=FoC1=XP=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1u9f6f-0003Ma-H4
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 07:10:17 +0000
Received: from NAM02-DM3-obe.outbound.protection.outlook.com
 (mail-dm3nam02on20623.outbound.protection.outlook.com
 [2a01:111:f403:2405::623])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ff295839-24c8-11f0-9eb4-5ba50f476ded;
 Tue, 29 Apr 2025 09:10:15 +0200 (CEST)
Received: from BL1PR12MB5849.namprd12.prod.outlook.com (2603:10b6:208:384::18)
 by DS7PR12MB6310.namprd12.prod.outlook.com (2603:10b6:8:95::21) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.34; Tue, 29 Apr
 2025 07:10:11 +0000
Received: from BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::b77f:9333:3a5a:d285]) by BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::b77f:9333:3a5a:d285%4]) with mapi id 15.20.8678.028; Tue, 29 Apr 2025
 07:10: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: ff295839-24c8-11f0-9eb4-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=s6MZ2jV2uEMi8hCjBGoYWSeaH8YOwukuLQdkYM+kSpatd/utmzICfwn5mMMoh9wuvQN/+L8lxdjOcdP5kVeFQc7N6ckVe0szU558FIBLOeermMIgK6LNBfFgZXXV9JfoGcxNA4uTQw2Ox8RwUEh011hw1ZoSMtG/INhP2pP8h6N2c0GcqycBnhVhq0yEPwkm/Ntga2EDCh4hB9O3cFBRxby4xHqJjhuspkWjJoWMoCJsD9j0IbuNeZzOJ7uw3FaM9f/glbYGH91dlv/AImWj4b2/cKepoCIYkmnrdI/0vtSYUlRl+tlDFcpYntA8EJHd41YqNDIHfO0W8o6QT8dGxQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=5RYtE1v+Pm24tssHRfkwpPmEb0TXu0iA2BHQjvQn4g0=;
 b=BglhS1rKuWsbtVcr5p1p1i3E02NNairNuhhfSCZe3QH0sYut2DXGiqhyyD7J2Y4YvcWvilHJ5ezzbnLDogGaADV2oRMXnaCWlUBhcZyG90+mJhTJ9dq8ifHRs7OO+pEQqEcsrI94MlO42C/qQAFT11DjdzOLTqGjwa/umOgdy4oz2nmsFzODlXNKxiQHMkPzexNmSEJ21XZoJytOBBdTACyu0cGeqxuUmdgzm3YIEU5kGu17+9DVv2ABjRe/j7tKFSqTWftIE9C0MTCX5sYeVgUz4y0X1WeEKNKv2fPt0oo+dXnp5/CmwT9OKtgZqoftyyhGtkwDFXwIKJ67hWA37g==
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=5RYtE1v+Pm24tssHRfkwpPmEb0TXu0iA2BHQjvQn4g0=;
 b=OayS0VUmDtlYr1dU0CQr2BLBLqwJjFKX17t1qfBej6NxgfgA/Z2ZSsjvoJK6sxpzQoOKwx+Hn74BHpDelfj+e0MxLvzGT6wmV5OX/K58pyz2s+0Z0kuuTuYfbQ5Py1PyxmDAmR4Y04PD6MbBiqRd+F2ZFTjL8IdAe0aK2oErA+k=
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>, "Huang,
 Ray" <Ray.Huang@amd.com>, "Chen, Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [PATCH v3 01/11] vpci/header: Move emulating cap list logic into
 new function
Thread-Topic: [PATCH v3 01/11] vpci/header: Move emulating cap list logic into
 new function
Thread-Index: AQHbsoVV57sSVRwNUkGPSUHVh/53fbO6yliA
Date: Tue, 29 Apr 2025 07:10:11 +0000
Message-ID:
 <BL1PR12MB5849D680C293F8398B8D5704E7802@BL1PR12MB5849.namprd12.prod.outlook.com>
References: <20250421061903.1542652-1-Jiqian.Chen@amd.com>
 <20250421061903.1542652-2-Jiqian.Chen@amd.com>
In-Reply-To: <20250421061903.1542652-2-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.8678.027)
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_|DS7PR12MB6310:EE_
x-ms-office365-filtering-correlation-id: ee9d3c58-be1c-48e4-f349-08dd86ece1c4
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?OXJac28zdUpuNEZBQVhEMDQwdkhRK3pKcFFxa29SNUdnYWxETXhlbCtzMExm?=
 =?utf-8?B?a2FWR2dHalpsYkJsTFhOd0V3WHhiVi84QXN0a2cxTTZMd2J2NlRvZGt2VU5K?=
 =?utf-8?B?UVNVem9mbEprUlVhTEJ0QzM5dVJhSlcwNWZPOG01VmxEem5lZE9ONnM4TnBz?=
 =?utf-8?B?SDdRZGM1bzcyVVAvaTJ1blhYVUZ0V3ord1p5KzdrRVJ0TWhwbUsyekgvbHhu?=
 =?utf-8?B?bDFxdkc5M29XbUQzM1FSZHFaNkJ1VEJzRzRuc2dmNk9xVUQwNWpHVHpCU0Za?=
 =?utf-8?B?eGZqWGRqcUYvSHNkT0c1YkJ0cmZkdVRtZU9mditYYXVTSzBJTW5PVzg2OWRU?=
 =?utf-8?B?T0kxYkZPeUQ0TUZqTzJSQ1lzcWhsMWZIM2t1Tm5SS0p4Y1VsWVRFS2p5UTNY?=
 =?utf-8?B?V0xZZGVMdjVUTVBoNkZRR2Uyb3M5bWRwSHhVSStSUG9uWWc1NVJPS2FRNTRB?=
 =?utf-8?B?Q1UxZXJnMUFQNGVXL1dITE81U3dvQWxlYlBjcWdWQjFIWVZ4M3RMcFFzQkZ3?=
 =?utf-8?B?L3pzc3hWQUh4OWpDR1dsSVQrOUhwZk9vWW0xVG9jbmtjc015SGxmbkc0cC9s?=
 =?utf-8?B?TXp6RldVbktlVklKamZyWTBJRTRHanE5S3kzaEhGU0E1c21OVjdsYms2YTBO?=
 =?utf-8?B?M25aeGhCZFBSWmJlVWRQQlY4WStMa09rY3ZiRWF3UWFqUEc1dklaaFVZRjNi?=
 =?utf-8?B?WmVJeEJtK3FSaTFwUHZqMkVRODBaZlduUzFEVC9lQklMaGsyWkFCNXNSMVJW?=
 =?utf-8?B?MWgrZERHL1k5LzduMG93OU84R2tidGFzdUZ6TGxhL0k0bUxVVzBabHdoRXFu?=
 =?utf-8?B?UGZNSHo5UDJvQXAvVHRycGxCckFDd3QyaWFnaWdMeG4ybWJncDRYUUxOdm5R?=
 =?utf-8?B?TldaREo2c3hLNzVxTlRQNVMxZ1c1YmFqTjYzZGRybXM0cVF5WjNZdStsazNU?=
 =?utf-8?B?WkgwSG9qMFpma3pQNkh1NmU3Nkt6bGcySEFuc2l5enExMmpDeDN2NzdNSG8v?=
 =?utf-8?B?Ri92OVNTelJFTVorWUhELzdGc05NS3BSU2Vua1UvYmEyYUZSM3ZIZG9zdnZl?=
 =?utf-8?B?UTk2NVJsbjZsc1VITDVjYjcyL1hvQzJpVnUwMC94elYwa0h1UDI5aE1obVND?=
 =?utf-8?B?Zk1pRlJ2VHg3YkVYUk1MZWl2b1QvZGF1OTQ1cW1BZWI3dlIwQ3pXenJnL3JX?=
 =?utf-8?B?ZGdnRHNXZEJqVjZTVGZPNXlQRmtkSDVYcE13R1p3Q2ZYYXp4VHVkcXovdUNJ?=
 =?utf-8?B?OTlmQjdSV1NyMHN0ZnV1SnJsUlVuSGVwRTJFSHZCNUdON0hHQk1xMFd5c040?=
 =?utf-8?B?V1k0cVhVYVhJTkJDOEVacCtEajdNTEFuQXlUVjRqQ1IzN1lzR0JZLzlQT3Uz?=
 =?utf-8?B?bi9NVTNZOE5sSTdGQ0ZXTVMwSTY4TmcrOXpBa0FYOHlXSktTTFN6Zmx5TU5D?=
 =?utf-8?B?MEMvcEt6RHF2V3U4aFZvK0hQVDdBN3N6ei9aY1NYSlU1SW9KNy9YRkdRU2No?=
 =?utf-8?B?aFdQRUFaeWg4aFpKbWViTnJ3eTU4MDdmWUpia0lCN3FyMlNHd1VWTlhVN2p4?=
 =?utf-8?B?c3JqaTRXV2xFTDJxTU1jNXJoMlp0eVR1NnRyYzYzNlZJY3F3SGJkM0JQeVpm?=
 =?utf-8?B?bnV0UWF2ODhmazhvL3E0U0NSZmR5b2h4cTZGUnBMYkhMYWhnTy84NzlmUXRH?=
 =?utf-8?B?ZjFDVkV2Z3ZmaVYrVGd2S2hSWWxyTkVuVGlETlFrWWlTaFQrUmU1cmFxMlFj?=
 =?utf-8?B?TlBsdHIwOWlsOU4wYzVhNityZnVMaEpma3hDSElCeUdFZzVpMDBBUFczOFhq?=
 =?utf-8?B?azFHUUJVOXM2bGJLNlNmdGRPeHdScE1LMXVubGR2bXhPczRvaFdqSmcvMWFX?=
 =?utf-8?B?Vmd0S2hpU0gvV3M0NmJ3TGM3Q1NEVEFWb2VBZWhHVEw0Z2ozRkdvNlg3Qkxx?=
 =?utf-8?B?QjYwaWdCazV2QkcyR0pQZTF3VDY3dXpZZXBmb3JRWGcvVUwybnlaSitxZFdJ?=
 =?utf-8?Q?ov0h3fSuNypEasS3l+i7ntS2J4zQKg=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?WjZaV0NrcGdmaWtmUkNsY2tPTW05alc2eXFlc21IUUVnNXZVWWt1bXVkQy9l?=
 =?utf-8?B?ZU42dXk1dkFEUWdya05yZkQ0ZWpBRlM4SHhhS0tkSnFGZUIwci9YU1NIYWRl?=
 =?utf-8?B?WXU1RFRqelhqL0pva0VFTHVMOVZiOWlSQS9YeWdYT3N6SHdUZksrZVd6SHU0?=
 =?utf-8?B?UytVWkdDVmZhZUhlaFVhallPMys2MmgrTmNiRmh4dE1VZUFJUE1QMytDY05O?=
 =?utf-8?B?Q090VlV0LzZ5WEVhNmpUMnA5OWo5aUo2ckt3WGtBK1NFYkJxdWZFaXd1RTRX?=
 =?utf-8?B?T0R5NTJWamlMVUtRQlROT0l4MXk1UW5NSU9rcU9OYXdreW9MOElGM2tKZWFO?=
 =?utf-8?B?R1hSemw4YnhLakVSNWpnY3JHTnVOZGdkTkV0M0hkVUZpWWY2OFcxemJJZThI?=
 =?utf-8?B?ZHZ5OVM1Y3Rma0RNY2ZjT3RlbmNCa2ZmZTVES1JaTk9UTTZZRFhCOGEzL3Bh?=
 =?utf-8?B?ejgvSXZVYVIwN1hVdTZZY1AvaDdrWExubXRRekNmL2NiLzNubmVyUm1XNTBj?=
 =?utf-8?B?dmJ2N0dYSGY1VXRVQjFpUEkrVWtTbWNURGJIUFJQWWo1REdQK2xJSFVhUlZn?=
 =?utf-8?B?eWw1dFk5Z2FDVEZZSEdzbnhCT0ozSnVrUUpMQ2F2QVgrWTI0OVltTmw3eFM4?=
 =?utf-8?B?N1lDYzRPVmVrUjE4TXRTOXhCOEgxbFE0UmFaL1J3UGwzRmVVck1oTHFWQ2NO?=
 =?utf-8?B?VW1rVW05ekwzVm1BUWU1U2FCTFFPTjVLTXVlbE05R3k3NjY2Z1Y5UGo0Qy93?=
 =?utf-8?B?QzNXTUFLajJ6ai83cU51UjJ4RXVESGVYVkJ3elBqc3F4RTZVZEt0TlJxcEVU?=
 =?utf-8?B?Z0g4TGpORjRNSzdOditwSUQ3U3FXZWZpcUlXVjQ5dmVLQlRwRllzZWh6Q3E4?=
 =?utf-8?B?MTZrMXBuM2ZZTStoTnlJNDBlNFZZdFZvNG5TRWxBc0xNZ2N4aTB2bUc1V043?=
 =?utf-8?B?TS9QUVdlMzYvRWVDRWtmSC80WnFCK3dNcU9oRDR4VVYxcDIxQ3pNZWpHMXY0?=
 =?utf-8?B?aS9kN09QYithcmJxZkZtVnNvWCs4L2Y5SWU5UlBlV3hNLzdYMXJRVXlhdDd5?=
 =?utf-8?B?a0NLWGc4SEtFSnFUN2NEanl0RjNKbGJ0OXo3anJVbytweUcvTG1GR3BSaGJF?=
 =?utf-8?B?Q3d0ZHUxekcrem9LbGd5RmcyTUg0MG80ZUhpYUFKWVBaUkViNWxxOC9qbjNz?=
 =?utf-8?B?WFQ2V0dwRXNldXZPVHhMemhmcEhSZGZDN3dUNmorelFUNnRhWDBPYnJOZmd2?=
 =?utf-8?B?SGdSVG1JSkcxOXJpQWk2Wmt0NDNnajlTZ2thelpMT2QzQzdqcnhLMFg1TGtq?=
 =?utf-8?B?VmxqdW9nQTl1c2hESVlrK3lsckdjUnFCVTFIYlZxaStUb1UrUi9XakFocUtX?=
 =?utf-8?B?WXcyUzV6clpHM3FMOVF5WW9KTEdQbEhOd0tYS2JFNXlSNDQ3R3BwQUxkR3dG?=
 =?utf-8?B?S2IzRVZ5MDVPYUJ0YzREZUlKTUFPQmxPeXZnU2ZBQ2RaMTBaK0dSQ1hHVDNv?=
 =?utf-8?B?bjZTZDlveHVMV1ZCRXdXU2FxRWdERjBUQVp1RW9sMFoycHdLRFJDdU1MMDF5?=
 =?utf-8?B?bVJ4MUZVL3Z6d2F3N1pQY1o5WG1ETGpHS3NOWjRuN3NEd0E4MHhJeXdIQjJs?=
 =?utf-8?B?NGhEZTB1WGdRRW43RmllRlJrUG82R2RxMHBISkpGRlZmZDBxVEc3d2FEVEEr?=
 =?utf-8?B?ZERMRWxMWG1TYUJ6bCs0OTlvSy9YTEV1SlllZ3diWGgrbFBUNlRPakVtditp?=
 =?utf-8?B?ekIzaUp1c0ZjeVR3VHNoYXBqM2gxamZ6Si9EcHdKb29oQzJNbVhmeTRHQVRD?=
 =?utf-8?B?aVh3eXNIWGJTenBIbzM3amV5RGV3Rmdqa0REMUN2Vm03SVBTYjIrK0k2Vno1?=
 =?utf-8?B?QWxTenE5SGFsZXJwcXhDSS90MCtDTTFOMmdWTjJFR0pwc1ErMExEOHltbVR1?=
 =?utf-8?B?T3JENzV5aldnOFl4T285eW51djZKNFk4SzVyR3M5VjFJakM2Z1dPNU4zc1F1?=
 =?utf-8?B?elRLaUlCWmx2cnE0d1ViRHQ5ZTNaVlJEeG1QSzlnazJueDhobjZXMWtJNGdW?=
 =?utf-8?B?eXY0ZEVPVFJoMTVxNmllbGpaQVdmNkdkc09ydWVYcWdJVU9GNUJNNytOU2RB?=
 =?utf-8?Q?ylgw=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <AFEB7AAC2E50764CA082A2367D3DF9BD@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: ee9d3c58-be1c-48e4-f349-08dd86ece1c4
X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Apr 2025 07:10:11.4112
 (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: ZvWVmoVp45DgJhKXDW73a7T7jmyzDLza/SW/2wxtxKNxiuFzWb2xl/inU9MWXE6gLJUK4xYOqxJR4LFcm34TxQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB6310

SGksDQoNCk9uIDIwMjUvNC8yMSAxNDoxOCwgSmlxaWFuIENoZW4gd3JvdGU6DQo+IE5vIGZ1bmN0
aW9uYWwgY2hhbmdlcy4NCj4gRm9sbG93LW9uIGNoYW5nZXMgd2lsbCBiZW5pZml0IGZyb20gdGhp
cy4NCj4gDQo+IFNpZ25lZC1vZmYtYnk6IEppcWlhbiBDaGVuIDxKaXFpYW4uQ2hlbkBhbWQuY29t
Pg0KPiAtLS0NCj4gY2M6ICJSb2dlciBQYXUgTW9ubsOpIiA8cm9nZXIucGF1QGNpdHJpeC5jb20+
DQo+IC0tLQ0KPiB2Mi0+djMgY2hhbmdlczoNCj4gbmV3IHBhdGNoLg0KQXJlIHRoZXJlIGFueSBv
dGhlciBjaGFuZ2VzIHRoYXQgbmVlZCB0byBiZSBtYWRlIHRvIHRoaXMgc2VyaWVzIG9mIHBhdGNo
ZXM/DQpJZiBoYXZlLCBJIGNhbiBtb2RpZnkgdGhlbSBpbiBteSB1cGNvbWluZyBuZXcgdmVyc2lv
bi4NCg0KPiANCj4gQmVzdCByZWdhcmRzLA0KPiBKaXFpYW4gQ2hlbi4NCj4gLS0tDQo+ICB4ZW4v
ZHJpdmVycy92cGNpL2hlYWRlci5jIHwgMTM4ICsrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0t
LS0tLS0tLS0tDQo+ICAxIGZpbGUgY2hhbmdlZCwgNzMgaW5zZXJ0aW9ucygrKSwgNjUgZGVsZXRp
b25zKC0pDQo+IA0KPiBkaWZmIC0tZ2l0IGEveGVuL2RyaXZlcnMvdnBjaS9oZWFkZXIuYyBiL3hl
bi9kcml2ZXJzL3ZwY2kvaGVhZGVyLmMNCj4gaW5kZXggZWY2Yzk2NWMwODFjLi4zZTliNDQ0NTRi
NDMgMTAwNjQ0DQo+IC0tLSBhL3hlbi9kcml2ZXJzL3ZwY2kvaGVhZGVyLmMNCj4gKysrIGIveGVu
L2RyaXZlcnMvdnBjaS9oZWFkZXIuYw0KPiBAQCAtNzQ1LDYgKzc0NSw3NSBAQCBzdGF0aWMgaW50
IGJhcl9hZGRfcmFuZ2VzZXQoY29uc3Qgc3RydWN0IHBjaV9kZXYgKnBkZXYsIHN0cnVjdCB2cGNp
X2JhciAqYmFyLA0KPiAgICAgIHJldHVybiAhYmFyLT5tZW0gPyAtRU5PTUVNIDogMDsNCj4gIH0N
Cj4gIA0KPiArc3RhdGljIGludCB2cGNpX2luaXRfY2FwYWJpbGl0eV9saXN0KHN0cnVjdCBwY2lf
ZGV2ICpwZGV2KQ0KPiArew0KPiArICAgIGludCByYzsNCj4gKyAgICBib29sIG1hc2tfY2FwX2xp
c3QgPSBmYWxzZTsNCj4gKw0KPiArICAgIGlmICggIWlzX2hhcmR3YXJlX2RvbWFpbihwZGV2LT5k
b21haW4pICYmDQo+ICsgICAgICAgICBwY2lfY29uZl9yZWFkMTYocGRldi0+c2JkZiwgUENJX1NU
QVRVUykgJiBQQ0lfU1RBVFVTX0NBUF9MSVNUICkNCj4gKyAgICB7DQo+ICsgICAgICAgIC8qIE9u
bHkgZXhwb3NlIGNhcGFiaWxpdGllcyB0byB0aGUgZ3Vlc3QgdGhhdCB2UENJIGNhbiBoYW5kbGUu
ICovDQo+ICsgICAgICAgIHVuc2lnbmVkIGludCBuZXh0LCB0dGwgPSA0ODsNCj4gKyAgICAgICAg
c3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBzdXBwb3J0ZWRfY2Fwc1tdID0gew0KPiArICAgICAg
ICAgICAgUENJX0NBUF9JRF9NU0ksDQo+ICsgICAgICAgICAgICBQQ0lfQ0FQX0lEX01TSVgsDQo+
ICsgICAgICAgIH07DQo+ICsNCj4gKyAgICAgICAgbmV4dCA9IHBjaV9maW5kX25leHRfY2FwX3R0
bChwZGV2LT5zYmRmLCBQQ0lfQ0FQQUJJTElUWV9MSVNULA0KPiArICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHN1cHBvcnRlZF9jYXBzLA0KPiArICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEFSUkFZX1NJWkUoc3VwcG9ydGVkX2NhcHMpLCAmdHRsKTsNCj4g
Kw0KPiArICAgICAgICByYyA9IHZwY2lfYWRkX3JlZ2lzdGVyKHBkZXYtPnZwY2ksIHZwY2lfcmVh
ZF92YWwsIE5VTEwsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUENJX0NBUEFC
SUxJVFlfTElTVCwgMSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodm9pZCAq
KSh1aW50cHRyX3QpbmV4dCk7DQo+ICsgICAgICAgIGlmICggcmMgKQ0KPiArICAgICAgICAgICAg
cmV0dXJuIHJjOw0KPiArDQo+ICsgICAgICAgIG5leHQgJj0gfjM7DQo+ICsNCj4gKyAgICAgICAg
aWYgKCAhbmV4dCApDQo+ICsgICAgICAgICAgICAvKg0KPiArICAgICAgICAgICAgICogSWYgd2Ug
ZG9uJ3QgaGF2ZSBhbnkgc3VwcG9ydGVkIGNhcGFiaWxpdGllcyB0byBleHBvc2UgdG8gdGhlDQo+
ICsgICAgICAgICAgICAgKiBndWVzdCwgbWFzayB0aGUgUENJX1NUQVRVU19DQVBfTElTVCBiaXQg
aW4gdGhlIHN0YXR1cw0KPiArICAgICAgICAgICAgICogcmVnaXN0ZXIuDQo+ICsgICAgICAgICAg
ICAgKi8NCj4gKyAgICAgICAgICAgIG1hc2tfY2FwX2xpc3QgPSB0cnVlOw0KPiArDQo+ICsgICAg
ICAgIHdoaWxlICggbmV4dCAmJiB0dGwgKQ0KPiArICAgICAgICB7DQo+ICsgICAgICAgICAgICB1
bnNpZ25lZCBpbnQgcG9zID0gbmV4dDsNCj4gKw0KPiArICAgICAgICAgICAgbmV4dCA9IHBjaV9m
aW5kX25leHRfY2FwX3R0bChwZGV2LT5zYmRmLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwb3MgKyBQQ0lfQ0FQX0xJU1RfTkVYVCwNCj4gKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VwcG9ydGVkX2NhcHMsDQo+ICsgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFSUkFZX1NJWkUoc3VwcG9ydGVkX2Nh
cHMpLCAmdHRsKTsNCj4gKw0KPiArICAgICAgICAgICAgcmMgPSB2cGNpX2FkZF9yZWdpc3Rlcihw
ZGV2LT52cGNpLCB2cGNpX2h3X3JlYWQ4LCBOVUxMLA0KPiArICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwb3MgKyBQQ0lfQ0FQX0xJU1RfSUQsIDEsIE5VTEwpOw0KPiArICAgICAg
ICAgICAgaWYgKCByYyApDQo+ICsgICAgICAgICAgICAgICAgcmV0dXJuIHJjOw0KPiArDQo+ICsg
ICAgICAgICAgICByYyA9IHZwY2lfYWRkX3JlZ2lzdGVyKHBkZXYtPnZwY2ksIHZwY2lfcmVhZF92
YWwsIE5VTEwsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcyArIFBD
SV9DQVBfTElTVF9ORVhULCAxLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAodm9pZCAqKSh1aW50cHRyX3QpbmV4dCk7DQo+ICsgICAgICAgICAgICBpZiAoIHJjICkNCj4g
KyAgICAgICAgICAgICAgICByZXR1cm4gcmM7DQo+ICsNCj4gKyAgICAgICAgICAgIG5leHQgJj0g
fjM7DQo+ICsgICAgICAgIH0NCj4gKyAgICB9DQo+ICsNCj4gKyAgICAvKiBVdGlsaXplIHJzdmRw
X21hc2sgdG8gaGlkZSBQQ0lfU1RBVFVTX0NBUF9MSVNUIGZyb20gdGhlIGd1ZXN0LiAqLw0KPiAr
ICAgIHJldHVybiB2cGNpX2FkZF9yZWdpc3Rlcl9tYXNrKHBkZXYtPnZwY2ksIHZwY2lfaHdfcmVh
ZDE2LCB2cGNpX2h3X3dyaXRlMTYsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgUENJX1NUQVRVUywgMiwgTlVMTCwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBQQ0lfU1RBVFVTX1JPX01BU0sgJg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfihtYXNrX2NhcF9saXN0ID8gUENJX1NUQVRVU19DQVBfTElTVCA6IDApLA0KPiAr
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBDSV9TVEFUVVNfUlcxQ19NQVNLLA0K
PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hc2tfY2FwX2xpc3QgPyBQQ0lf
U1RBVFVTX0NBUF9MSVNUIDogMCwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBQQ0lfU1RBVFVTX1JTVkRaX01BU0spOw0KPiArfQ0KPiArDQo+ICBzdGF0aWMgaW50IGNmX2No
ZWNrIGluaXRfaGVhZGVyKHN0cnVjdCBwY2lfZGV2ICpwZGV2KQ0KPiAgew0KPiAgICAgIHVpbnQx
Nl90IGNtZDsNCj4gQEAgLTc1Myw3ICs4MjIsNiBAQCBzdGF0aWMgaW50IGNmX2NoZWNrIGluaXRf
aGVhZGVyKHN0cnVjdCBwY2lfZGV2ICpwZGV2KQ0KPiAgICAgIHN0cnVjdCB2cGNpX2hlYWRlciAq
aGVhZGVyID0gJnBkZXYtPnZwY2ktPmhlYWRlcjsNCj4gICAgICBzdHJ1Y3QgdnBjaV9iYXIgKmJh
cnMgPSBoZWFkZXItPmJhcnM7DQo+ICAgICAgaW50IHJjOw0KPiAtICAgIGJvb2wgbWFza19jYXBf
bGlzdCA9IGZhbHNlOw0KPiAgICAgIGJvb2wgaXNfaHdkb20gPSBpc19oYXJkd2FyZV9kb21haW4o
cGRldi0+ZG9tYWluKTsNCj4gIA0KPiAgICAgIEFTU0VSVChyd19pc193cml0ZV9sb2NrZWQoJnBk
ZXYtPmRvbWFpbi0+cGNpX2xvY2spKTsNCj4gQEAgLTc5NCw2MSArODYyLDEyIEBAIHN0YXRpYyBp
bnQgY2ZfY2hlY2sgaW5pdF9oZWFkZXIoc3RydWN0IHBjaV9kZXYgKnBkZXYpDQo+ICAgICAgaWYg
KCByYyApDQo+ICAgICAgICAgIHJldHVybiByYzsNCj4gIA0KPiArICAgIHJjID0gdnBjaV9pbml0
X2NhcGFiaWxpdHlfbGlzdChwZGV2KTsNCj4gKyAgICBpZiAoIHJjICkNCj4gKyAgICAgICAgcmV0
dXJuIHJjOw0KPiArDQo+ICAgICAgaWYgKCAhaXNfaHdkb20gKQ0KPiAgICAgIHsNCj4gLSAgICAg
ICAgaWYgKCBwY2lfY29uZl9yZWFkMTYocGRldi0+c2JkZiwgUENJX1NUQVRVUykgJiBQQ0lfU1RB
VFVTX0NBUF9MSVNUICkNCj4gLSAgICAgICAgew0KPiAtICAgICAgICAgICAgLyogT25seSBleHBv
c2UgY2FwYWJpbGl0aWVzIHRvIHRoZSBndWVzdCB0aGF0IHZQQ0kgY2FuIGhhbmRsZS4gKi8NCj4g
LSAgICAgICAgICAgIHVuc2lnbmVkIGludCBuZXh0LCB0dGwgPSA0ODsNCj4gLSAgICAgICAgICAg
IHN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgc3VwcG9ydGVkX2NhcHNbXSA9IHsNCj4gLSAgICAg
ICAgICAgICAgICBQQ0lfQ0FQX0lEX01TSSwNCj4gLSAgICAgICAgICAgICAgICBQQ0lfQ0FQX0lE
X01TSVgsDQo+IC0gICAgICAgICAgICB9Ow0KPiAtDQo+IC0gICAgICAgICAgICBuZXh0ID0gcGNp
X2ZpbmRfbmV4dF9jYXBfdHRsKHBkZXYtPnNiZGYsIFBDSV9DQVBBQklMSVRZX0xJU1QsDQo+IC0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1cHBvcnRlZF9jYXBzLA0K
PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUlJBWV9TSVpFKHN1
cHBvcnRlZF9jYXBzKSwgJnR0bCk7DQo+IC0NCj4gLSAgICAgICAgICAgIHJjID0gdnBjaV9hZGRf
cmVnaXN0ZXIocGRldi0+dnBjaSwgdnBjaV9yZWFkX3ZhbCwgTlVMTCwNCj4gLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgUENJX0NBUEFCSUxJVFlfTElTVCwgMSwNCj4gLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQgKikodWludHB0cl90KW5leHQpOw0K
PiAtICAgICAgICAgICAgaWYgKCByYyApDQo+IC0gICAgICAgICAgICAgICAgcmV0dXJuIHJjOw0K
PiAtDQo+IC0gICAgICAgICAgICBuZXh0ICY9IH4zOw0KPiAtDQo+IC0gICAgICAgICAgICBpZiAo
ICFuZXh0ICkNCj4gLSAgICAgICAgICAgICAgICAvKg0KPiAtICAgICAgICAgICAgICAgICAqIElm
IHdlIGRvbid0IGhhdmUgYW55IHN1cHBvcnRlZCBjYXBhYmlsaXRpZXMgdG8gZXhwb3NlIHRvIHRo
ZQ0KPiAtICAgICAgICAgICAgICAgICAqIGd1ZXN0LCBtYXNrIHRoZSBQQ0lfU1RBVFVTX0NBUF9M
SVNUIGJpdCBpbiB0aGUgc3RhdHVzDQo+IC0gICAgICAgICAgICAgICAgICogcmVnaXN0ZXIuDQo+
IC0gICAgICAgICAgICAgICAgICovDQo+IC0gICAgICAgICAgICAgICAgbWFza19jYXBfbGlzdCA9
IHRydWU7DQo+IC0NCj4gLSAgICAgICAgICAgIHdoaWxlICggbmV4dCAmJiB0dGwgKQ0KPiAtICAg
ICAgICAgICAgew0KPiAtICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBwb3MgPSBuZXh0Ow0K
PiAtDQo+IC0gICAgICAgICAgICAgICAgbmV4dCA9IHBjaV9maW5kX25leHRfY2FwX3R0bChwZGV2
LT5zYmRmLA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cG9zICsgUENJX0NBUF9MSVNUX05FWFQsDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzdXBwb3J0ZWRfY2FwcywNCj4gLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEFSUkFZX1NJWkUoc3VwcG9ydGVkX2NhcHMpLCAmdHRs
KTsNCj4gLQ0KPiAtICAgICAgICAgICAgICAgIHJjID0gdnBjaV9hZGRfcmVnaXN0ZXIocGRldi0+
dnBjaSwgdnBjaV9od19yZWFkOCwgTlVMTCwNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHBvcyArIFBDSV9DQVBfTElTVF9JRCwgMSwgTlVMTCk7DQo+IC0gICAgICAg
ICAgICAgICAgaWYgKCByYyApDQo+IC0gICAgICAgICAgICAgICAgICAgIHJldHVybiByYzsNCj4g
LQ0KPiAtICAgICAgICAgICAgICAgIHJjID0gdnBjaV9hZGRfcmVnaXN0ZXIocGRldi0+dnBjaSwg
dnBjaV9yZWFkX3ZhbCwgTlVMTCwNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHBvcyArIFBDSV9DQVBfTElTVF9ORVhULCAxLA0KPiAtICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKHZvaWQgKikodWludHB0cl90KW5leHQpOw0KPiAtICAgICAg
ICAgICAgICAgIGlmICggcmMgKQ0KPiAtICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmM7DQo+
IC0NCj4gLSAgICAgICAgICAgICAgICBuZXh0ICY9IH4zOw0KPiAtICAgICAgICAgICAgfQ0KPiAt
ICAgICAgICB9DQo+IC0NCj4gICAgICAgICAgLyogRXh0ZW5kZWQgY2FwYWJpbGl0aWVzIHJlYWQg
YXMgemVybywgd3JpdGUgaWdub3JlICovDQo+ICAgICAgICAgIHJjID0gdnBjaV9hZGRfcmVnaXN0
ZXIocGRldi0+dnBjaSwgdnBjaV9yZWFkX3ZhbCwgTlVMTCwgMHgxMDAsIDQsDQo+ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQgKikwKTsNCj4gQEAgLTg1NiwxNyArODc1LDYg
QEAgc3RhdGljIGludCBjZl9jaGVjayBpbml0X2hlYWRlcihzdHJ1Y3QgcGNpX2RldiAqcGRldikN
Cj4gICAgICAgICAgICAgIHJldHVybiByYzsNCj4gICAgICB9DQo+ICANCj4gLSAgICAvKiBVdGls
aXplIHJzdmRwX21hc2sgdG8gaGlkZSBQQ0lfU1RBVFVTX0NBUF9MSVNUIGZyb20gdGhlIGd1ZXN0
LiAqLw0KPiAtICAgIHJjID0gdnBjaV9hZGRfcmVnaXN0ZXJfbWFzayhwZGV2LT52cGNpLCB2cGNp
X2h3X3JlYWQxNiwgdnBjaV9od193cml0ZTE2LA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBQQ0lfU1RBVFVTLCAyLCBOVUxMLA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBQQ0lfU1RBVFVTX1JPX01BU0sgJg0KPiAtICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfihtYXNrX2NhcF9saXN0ID8gUENJX1NUQVRVU19DQVBfTElTVCA6IDApLA0K
PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQ0lfU1RBVFVTX1JXMUNfTUFTSywN
Cj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFza19jYXBfbGlzdCA/IFBDSV9T
VEFUVVNfQ0FQX0xJU1QgOiAwLA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQ
Q0lfU1RBVFVTX1JTVkRaX01BU0spOw0KPiAtICAgIGlmICggcmMgKQ0KPiAtICAgICAgICByZXR1
cm4gcmM7DQo+IC0NCj4gICAgICBpZiAoIHBkZXYtPmlnbm9yZV9iYXJzICkNCj4gICAgICAgICAg
cmV0dXJuIDA7DQo+ICANCg0KLS0gDQpCZXN0IHJlZ2FyZHMsDQpKaXFpYW4gQ2hlbi4NCg==


From xen-devel-bounces@lists.xenproject.org Tue Apr 29 07:51:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 07:51:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.971611.1359978 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9fjr-0001zu-T0; Tue, 29 Apr 2025 07:50:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 971611.1359978; Tue, 29 Apr 2025 07: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 1u9fjr-0001zn-P4; Tue, 29 Apr 2025 07:50:47 +0000
Received: by outflank-mailman (input) for mailman id 971611;
 Tue, 29 Apr 2025 07:50: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=xSZn=XP=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1u9fjq-0001zf-0y
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 07:50:46 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9e7a6fd0-24ce-11f0-9ffb-bf95429c2676;
 Tue, 29 Apr 2025 09:50:29 +0200 (CEST)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id F0C294EE7DBB;
 Tue, 29 Apr 2025 09:50:28 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9e7a6fd0-24ce-11f0-9ffb-bf95429c2676
Authentication-Results: bugseng.com; arc=none smtp.remote-ip=162.55.131.47
ARC-Seal: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; cv=none; t=1745913029;
	b=wYLfzK+NGu6oI0rPoXMmmmyqpfvxxMSUSL7lDVkE16OdZX18yY8Gw8nVE+quOVaSKxU/
	 OKBHDCTyQyrSathGcG7S5p4JZvl7kh6A00I1SpWDL2//QD7Dl9Fc2LiBeY2FYPoDneMfw
	 QsKGW8K11Yp+PPIUt8v79Gcwry5GFz6aNfIcJY016uPZZU9kQFPCIo3KpyE6XYzwRPBs2
	 bkFDLi8vy6HNu7X21sUIvhKqk/Mq7mF6VXjTj/yZoHIXeIBOEV97NOZj93xe4TEKkD2ul
	 oyXd9kzPyRED6FEwwzJAsDH9bfp/2blqW4pG545gteyRE5CGMzaSSR/cB9f7WdzOzhFBo
	 MEcgPxF+U4ntaoO+XT5/M0ghvNIVl34mlp+ippWe081cNctVGhQDtQusI1RVkxuYrpS+P
	 MaYNJneMiILPYtO+lbQKXBJHqClCFnNPKQghvyITifoSp9RYiNKqVToN3zbI6VVJuuHy+
	 pguCZdesxfLL3G04Ffl1xcb0NVZ4+HQdL5ryvtwOJnITwIuGDM4O021TrSA6OayC0xtAu
	 3FkFb5b671Ud7kJ/mldej9JyWUy0Xk7Pz1eH4l3VTA3gwK++EfQkXqqa8kkeQMDkq/4Qr
	 qLzf6ntzaEtlvfuFY7hIFiuG3lbCw9kWWbsp8t+JxScx8FKZiC6B5C/ihKZRhJg=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1745913029;
	h=DKIM-Signature:MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:
	 References:Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=dfQkVeQtYBR6c6mjprnMsWp4BBYQ4wtaicbiZTIhdfM=;
	b=mnr/JRtoy8qWTc9/eRIwhBW9smNqhgDdW/a8amCLEOQy0RNbI3/PXtbChXif3bg3pp/U
	 Gh5WozrdZAKoqtnK74EU8gBrpMPFbYqYC0XYddTBSdlYitIhz9jJURO/TUuiR47geA6rk
	 xev2ByxZFVkcS8JKXtJWmb5hC4DlIZPEy1zCfOgUGM+695jWq3mmGtuhC98ykUtlVP0GR
	 WG3YpLt9tA/8rw2GatEqm7dW1bf8pyZRsm8IbmJHt0qZH9zWzNB6o1YC3jaMWf9M80v5D
	 tpt3BFmvnORDvFwlBumbtmhAdnKaAuQ/o1XK2tO4ZXxZ53bQK8Ma7wvfTNNg+mx8Dv78z
	 dVpkO/QMzq1NSUzVg45ml1OI4iIL8Fo7oTK8bLY+Ka7r1yo/UQcqixxnV445zgKrzRk+L
	 yrwWZRfYHrHmfWpLbU5L8wWbamaXoO/axNoWYOu3XWNhpBs362WUgieD2VTl/ifMzkINI
	 JAsFcH6KSJ4Qs4iQ092oiMsFEdQxWNRm8FfOCg9mjm49Wxzl760DTVX8h5KHEwyrsYDSe
	 +wcYhV70/L+0DOXLT8TsALarrnNfaxUC3sHNsEaBOByg4kpqYqD4RTZ3pymRig/rsrVNV
	 jRyqA1erDa4vQWxD8lBSUqeit8ZcP5/ohWa4CCXfUYNUJvz7beWfSsOCG35xIOg=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1745913029; bh=MNT792OGS7D4sRl6D+yIBxg/CLXU9bB9FPndNVr1uIs=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=FW4Glfufex+S7rP7yEUuasDkRgplwu3OKqKvqkQw/iwzFoEmTZdNwg/u4EDhbs694
	 OLLWcd9+u3s1VTVV8k4dziebFmLdrJvrUWERj1EDVM99gCGEhJaiuxPsrtWSkDukl7
	 9fLACpp9epEuZ6M5F4KYGWAUDzvXbm0GzOC0bp4xwi+qmzxROK0QQMcH7AdBkDIChv
	 +B3C91v2BX/DAccOaXAF2jaHXE0tfuwAjk+G5cwZT6ozKgwiTd++DF22mr+re4S+4z
	 tYoGF+8Uqxw0VJjuV2mYUyCW6ucqJP5xL84t5OCs3zdIyOJm3EgrayJF9eJO5va6wX
	 g4X4ZNKO57DXg==
MIME-Version: 1.0
Date: Tue, 29 Apr 2025 09:50:28 +0200
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, victorm.lira@amd.com,
 Federico Serafini <federico.serafini@bugseng.com>, Andrew Cooper
 <andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Bertrand Marquis
 <bertrand.marquis@arm.com>, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v1 1/2] xen/page_alloc: address violation of Rule 14.3
In-Reply-To: <f2b6396c-c933-4fb9-ba4b-c90170540955@suse.com>
References: <5f2e316aae4667d1fe851e68552eb881c4d5a015.1745625477.git.victorm.lira@amd.com>
 <3146fbf3-2ff1-48a4-b05b-37477a9a5cc5@suse.com>
 <alpine.DEB.2.22.394.2504281551530.785180@ubuntu-linux-20-04-desktop>
 <f2b6396c-c933-4fb9-ba4b-c90170540955@suse.com>
Message-ID: <975094a1494f45d188e09f47d89ef6c9@bugseng.com>
X-Sender: nicola.vetrini@bugseng.com
Organization: BUGSENG s.r.l.
Content-Type: text/plain; charset=US-ASCII;
 format=flowed
Content-Transfer-Encoding: 7bit

On 2025-04-29 08:14, Jan Beulich wrote:
> On 29.04.2025 01:21, Stefano Stabellini wrote:
>> On Mon, 28 Apr 2025, Jan Beulich wrote:
>>> On 26.04.2025 02:00, victorm.lira@amd.com wrote:
>>>> From: Federico Serafini <federico.serafini@bugseng.com>
>>>> 
>>>> MISRA C Rule 14.3 states that "Controlling expressions shall not be
>>>> invariant".
>>>> 
>>>> Add a SAF comment to deviate the rule for build configurations 
>>>> without
>>>> CONFIG_LLC_COLORING enabled.
>>> 
>>> I was surprised by this supposedly being the only violation. And 
>>> indeed it
>>> wasn't very hard to find more. For example, we have a number of
>>> "while ( num_online_cpus() > 1 && ... )", which become compile-time
>>> constant (false) when NR_CPUS=1.
>> 
>> Uhm, I did run a special scan for this and I can confirm no other
>> violations are detected.
> 
> Because of it being only one single configuration that's being scanned. 
> I did
> point out before that this is a problem for anyone wanting to certify 
> the
> hypervisor in a (perhaps just slightly) different configuration.
> 
>>>> --- a/xen/common/page_alloc.c
>>>> +++ b/xen/common/page_alloc.c
>>>> @@ -2038,6 +2038,7 @@ static struct page_info 
>>>> *alloc_color_heap_page(unsigned int memflags,
>>>> 
>>>>      spin_lock(&heap_lock);
>>>> 
>>>> +    /* SAF-14-safe MISRA C R14.3 condition always false without 
>>>> LLC_COLORING */
>>>>      for ( i = 0; i < domain_num_llc_colors(d); i++ )
>>>>      {
>>>>          unsigned long free = free_colored_pages[domain_llc_color(d, 
>>>> i)];
>>> 
>>> Hmm, this way the deviation applies even when LLC_COLORING=y.
>> 
>> Yes but in the LLC_COLORING=y case it is harmless. Do you have 
>> something
>> else in mind?
> 
> What if, perhaps by mistake, domain_num_llc_colors() becomes constant 0 
> in
> yet another configuration? (I don't expect this would work, but in 
> principle
> the comment ought to be inside an #ifdef.)
> 
>>> As to the comment wording - looks like we're pretty inconsistent with 
>>> that
>>> right now. I, for one, don't think the Misra rule needs (re)stating 
>>> there;
>>> the SAF index points at all the data that's needed if one cares about 
>>> the
>>> specifics of the deviation.
>> 
>> Do you prefer:
>> 
>> /* SAF-14-safe */
> 
> That's too short. All I'm asking for is to drop the (imprecise) rule
> reference. Noticing only now: It being imprecise may make the comment 
> go
> stale if we move to a newer Misra spec, as the rule number may be 
> different
> then.
> 

There is a guarantee by the MISRA committee to never reuse rule ids, and 
the SAF mechanism offers a centralized place where the actual rule ID 
for each tool is specified, so I don't foresee problems in that regard. 
In practical terms, I think it is very unlikely that this rule will 
change in any way (e.g. it is identical up until MISRA C:2025, published 
in March).

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


From xen-devel-bounces@lists.xenproject.org Tue Apr 29 08:15:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 08:15:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.971626.1359987 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9g85-0006JS-Pj; Tue, 29 Apr 2025 08:15:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 971626.1359987; Tue, 29 Apr 2025 08:15: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 1u9g85-0006JL-Mq; Tue, 29 Apr 2025 08:15:49 +0000
Received: by outflank-mailman (input) for mailman id 971626;
 Tue, 29 Apr 2025 08:15: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=b72w=XP=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u9g84-0006JF-0f
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 08:15:48 +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 26f2f2ab-24d2-11f0-9eb4-5ba50f476ded;
 Tue, 29 Apr 2025 10:15:46 +0200 (CEST)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-43cf06eabdaso50304125e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 29 Apr 2025 01:15:46 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 5b1f17b1804b1-4409d2ac079sm180769485e9.18.2025.04.29.01.15.45
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 29 Apr 2025 01:15: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: 26f2f2ab-24d2-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745914546; x=1746519346; 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=mt/hBtYcqb8jtbnsfP7wWhfKvH9xH3CJMA9BbdB5H2c=;
        b=dAMtzNyMEPvEZFww8gOb3RA8tpFnHiKi1MB3/hEtqRXa/KCPs9icpjQkfP/uujs3Hr
         D8wVDkY8vE+U5IGqqlqf5TYVVWJkvHIDcC5/ClbQ2ImN1kPp20rG6sUKrHZI/2VFWNCV
         /N/CAsRyonXywdImfUCr/2cXRpTPt2rRFOBQU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745914546; x=1746519346;
        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=mt/hBtYcqb8jtbnsfP7wWhfKvH9xH3CJMA9BbdB5H2c=;
        b=MttmOlo0VHlX/mt+B9+OueO4nSvc+U85LVdLjUI89V1hrmbMp6c6wjJK7yMh5hL+AE
         ZeM1a1W/FYUlNpuqZy7kXmFhzeUmjfuxuRGopChJiaZp/NgquIASchN1oKuyGIkX+xDj
         39MbTuci4XPsT+iGgBK94dBwXQtSneUFbMBLSRGOkDFnKnuFVANEr6tQPDUXS26kGtU+
         DRjpGZ68BSUOPXv9QrnwDbSjQEpBKIHYe8pHOSS6n115Kj44xnAJ5IVX4wsnbOBPG+xj
         7K0Vl2KKGt7GkaYloLbj4kMXzzfXsYdpeaXtdrMttx0equAEuMDTIuxfNUhNJ7//pRd2
         tKAw==
X-Forwarded-Encrypted: i=1; AJvYcCW5lAisOXSdzbt6kuTVwvAIwEtl9Cs8fHkUQBC7YWYYZS57LNBhe88uELzfhfIf6nR3eeJglTnAC0M=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwTZy8bAQahZjGXbQaq5LzzfyRd3g8sS1cM0iwdEOds+Uu3RGdt
	xSUeWZHwU60a+dVmpEczk7yi7dugHtziplcEp8GQqZd31gmMPesV/dCi6IGqRXA=
X-Gm-Gg: ASbGncuP4QLgFdOOpHuOQWAit7qP+LEZ8/kl9Ey2O83+O9sIuNjIjZtUuJeg0G0ZmxR
	tRGGhPr5/RJIpo8T8ZGt+B7CDgq/NOW2coR+qtveXjJZw02/Yc9vkbxKc2renzDfXD7m98lAbCi
	0Z4waZFwFiERTnqVlG7xN8hJpU8MFBSNkQT6rdnhEk047I9XGtT6NeIWFk0XpJyeHwp8Q+2JM9M
	pnbRSfKdDX5b2+6XGZ2yfFEL8FSPcTySuqFAVl46JoO/DX1jecVljc9jug9KJo07xGZd0ytGSUE
	oJ9sOTvV0LcLk37yxeOneASErfFyClxvQ1R3cxuTUgDUaA==
X-Google-Smtp-Source: AGHT+IG6FmMrBiOmcA27X7h8iXp74P4QNyIxzImad7cBVXSsHNg5mAYXDn9H/vjX+ZnVhZ307LKNbg==
X-Received: by 2002:a05:600c:46cf:b0:439:9424:1b70 with SMTP id 5b1f17b1804b1-440ab871770mr108740695e9.30.1745914545836;
        Tue, 29 Apr 2025 01:15:45 -0700 (PDT)
Date: Tue, 29 Apr 2025 10:15:44 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Alejandro Vallejo <agarciav@amd.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Ariadne Conill <ariadne@ariadne.space>, Wei Liu <wl@xen.org>,
	xen-devel@lists.xenproject.org, Paul Durrant <paul@xen.org>,
	Jan Beulich <jbeulich@suse.com>,
	"Alexander M . Merritt" <alexander@edera.dev>
Subject: Re: [PATCH v2] x86/hyperv: use dynamically allocated page for
 hypercalls
Message-ID: <aBCKsI4qhHWq4Iiz@macbook.lan>
References: <20250425234331.65875-1-ariadne@ariadne.space>
 <aA9NMJVbyXeMOOY-@macbook.lan>
 <D9I7TPLT0EJD.3F5P95H69CT5K@amd.com>
 <97d28edb-4274-408f-a825-d09fa771e21d@citrix.com>
 <D9I904ZOCMVN.31C4DUMXROGDK@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <D9I904ZOCMVN.31C4DUMXROGDK@amd.com>

On Mon, Apr 28, 2025 at 12:50:55PM +0100, Alejandro Vallejo wrote:
> On Mon Apr 28, 2025 at 12:07 PM BST, Andrew Cooper wrote:
> > On 28/04/2025 11:55 am, Alejandro Vallejo wrote:
> >> On Mon Apr 28, 2025 at 10:41 AM BST, Roger Pau Monné wrote:
> >>> On Fri, Apr 25, 2025 at 04:43:31PM -0700, Ariadne Conill wrote:
> >>>> Previously Xen placed the hypercall page at the highest possible MFN,
> >>>> but this caused problems on systems where there is more than 36 bits
> >>>> of physical address space.
> >>>>
> >>>> In general, it also seems unreliable to assume that the highest possible
> >>>> MFN is not already reserved for some other purpose.
> >>>>
> >>>> Changes from v1:
> >>>> - Continue to use fixmap infrastructure
> >>>> - Use panic in Hyper-V setup() function instead of returning -ENOMEM
> >>>>   on hypercall page allocation failure
> >>>>
> >>>> Fixes: 620fc734f854 ("x86/hyperv: setup hypercall page")
> >>>> Cc: Alejandro Vallejo <agarciav@amd.com>
> >>>> Cc: Alexander M. Merritt <alexander@edera.dev>
> >>>> Signed-off-by: Ariadne Conill <ariadne@ariadne.space>
> >>>> ---
> >>>>  xen/arch/x86/guest/hyperv/hyperv.c      | 17 +++++++----------
> >>>>  xen/arch/x86/include/asm/guest/hyperv.h |  3 ---
> >>>>  2 files changed, 7 insertions(+), 13 deletions(-)
> >>>>
> >>>> diff --git a/xen/arch/x86/guest/hyperv/hyperv.c b/xen/arch/x86/guest/hyperv/hyperv.c
> >>>> index 6989af38f1..0305374a06 100644
> >>>> --- a/xen/arch/x86/guest/hyperv/hyperv.c
> >>>> +++ b/xen/arch/x86/guest/hyperv/hyperv.c
> >>>> @@ -98,7 +98,13 @@ static void __init setup_hypercall_page(void)
> >>>>      rdmsrl(HV_X64_MSR_HYPERCALL, hypercall_msr.as_uint64);
> >>>>      if ( !hypercall_msr.enable )
> >>>>      {
> >>>> -        mfn = HV_HCALL_MFN;
> >>>> +        void *hcall_page = alloc_xenheap_page();
> >>>> +        if ( !hcall_page )
> >>>> +            panic("Hyper-V: Failed to allocate hypercall trampoline page");
> >>>> +
> >>>> +        printk("Hyper-V: Allocated hypercall page @ %p.\n", hcall_page);
> >>> This likely wants to be a dprintk, and possibly also print the
> >>> physical address of the used page?  And no period at the end of the
> >>> sentence IMO.
> >>>
> >>> I think Xen might have used the last page in the physical address
> >>> range to prevent HyperV from possibly shattering a superpage in the
> >>> second stage translation page-tables if normal RAM was used?
> >>>
> >>> However I don't know whether HyperV will shatter super-pages if a
> >>> sub-page of it is used to contain the hypercall page (I don't think it
> >>> should?)
> >> I think it's quite unlikely.
> >
> > It will shatter superpages.
> >
> > The overlay is not part of guest memory, and will hide whatever is
> > behind it while it is mapped, which will force a 4k PTE in EPT/NPT.
> 
> That's an implementation detail. They can very well copy the trampoline
> to guest memory when there is such (and save the previous contents
> elsewhere) and restore them when disabling the trampoline. It's a
> trivial optimisation that would prevent shattering while being fully
> compliant with the TLFS.

It's an implementation detail relevant from a guest perspective, as it
impacts guest performance.  IOW: we care about the specific (current)
implementation, as it's meaningful to how the guest-side should be
implemented.

> The actual physical location of the trampoline is fully undefined. It
> is defined to be an overlay; but that's a specification, not an
> implementation.
> 
> >
> > Thinking about it, a better position would be adjacent to the APIC MMIO
> > window, so at 0xfee01000.  The APIC MMIO window is forced to be a 4k
> > mapping too, and the rest of the 2M window is normally empty.
> >
> 
> Sounds like an assumption waiting to be broken. Just like the last page
> of guest-physical was.

As a compromise - could we try to allocate from < 4GB first, and
resort to high memory if that doesn't work?  That would at least limit
shattering (if done) to the low 4GB, which is quite likely fragmented
already:

hcall_page = alloc_xenheap_pages(0, MEMF_bits(32));
if ( !hcall_page )
    hcall_page = alloc_xenheap_page();
if ( !hcall_page )
    panic(...);

That will need a comment to describe what's going on.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Apr 29 08:17:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 08:17:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.971639.1359998 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9g9I-0006rx-6N; Tue, 29 Apr 2025 08:17:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 971639.1359998; Tue, 29 Apr 2025 08: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 1u9g9I-0006rq-2b; Tue, 29 Apr 2025 08:17:04 +0000
Received: by outflank-mailman (input) for mailman id 971639;
 Tue, 29 Apr 2025 08: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=qXnC=XP=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u9g9G-0006rX-9g
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 08:17:02 +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 52d0fb49-24d2-11f0-9ffb-bf95429c2676;
 Tue, 29 Apr 2025 10:17:00 +0200 (CEST)
Received: by mail-ed1-x535.google.com with SMTP id
 4fb4d7f45d1cf-5ed43460d6bso8427855a12.0
 for <xen-devel@lists.xenproject.org>; Tue, 29 Apr 2025 01:17:00 -0700 (PDT)
Received: from [10.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-5f7016f48ebsm7030399a12.33.2025.04.29.01.16.58
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 29 Apr 2025 01:16: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: 52d0fb49-24d2-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745914619; x=1746519419; 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=7JN7/LYznS6CrtVaGt2tE6QAB/n2kbSOMLlSYtCS/Q8=;
        b=SzaHXM0Les0xbn8xjfiXQm0j5lSeheU1DVOcteQh62MbEuFkgxAymBvFD/O/0WJyzo
         3fYo5sziDlK0WwgzAngr/DizAtQT7amJahni03ODJc7iZWsyXAXLtaiEwg/4mBSsbTgG
         74FEVpSmKDBVDFwwlYLZrgWh3IkbUHEH9u5zDCuh9QW53eKXEW4l3vPj1q3HlJjovxOY
         KI80jpPKaUZBnfxe/ZUqorM+4WdycXmbS2l117S+cp2F/C5gu7OAr69YZOUZWSAgHyR4
         xnjzJN40S0gZ4upRVB5PQvRnJFOfekgKCUWr6xG0eHOdguzQjAi76HaUMqF2+5C/qg4q
         A4OA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745914619; x=1746519419;
        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=7JN7/LYznS6CrtVaGt2tE6QAB/n2kbSOMLlSYtCS/Q8=;
        b=vAArBGL8tNSIhS0peeB4etPzDGODaFDe/GGdynVUKrp/Uxq9UW052U1AVAZMuq8nE4
         UgJxxejZnSCEaPel0kgNLg75lwa6Hh+6wgpLAsmf9XQoASsN4wEwC0MmmOYBGdE62p4t
         mJJV1Zaq9PV0+fELr22OZRohsSRiGkddj/qCgAITkvoyV8pVqxricaLjQWsS/MgF4rHd
         H7O0wBqhqUs69nzWjVCV64uaEBj9cCF+eiH5lb6lWXURMayGS2FKUO6gpUhTD9Ofhws0
         JosyEZQU00E7xdxV0EmiEcQV7F6C5Q17HschxfQ1JrJ+xf63wuCFN6fNxvrOqMnl73j3
         i9pA==
X-Gm-Message-State: AOJu0YxFuV/a5wSu7q5KRy0ilhRv1a4X+SI34N6HQACZHqrQSaOqKkIM
	ZC9LXphBtwbaxzdf68Q9KH+Q9Qai/XeAYeNPY+B33QDRRi+nZoV8mM2ciOaDzeK/XoFs+hpKAJg
	=
X-Gm-Gg: ASbGncsWWe0ClYRpPMxVd9pbWB9pjT1ckHNEYzhtZnH9R83qSyV/D2ABwgKQ23YP6oh
	DeqATSC9oDIdfQF4ETzTbE6AcVaUQ5l5D+Od8V9M15wWcnoaX+NPCnN4K6IJ2iGAQO40JHZu25Y
	Ts3AkPKkCF4D+S7NO/5zIFejM1TJ/qGkWEdrCt9hXqJ+Kqc1oglpDGJDKx55BUWGDKkuCEonJXs
	JDG0M3GLsvvYSxjAw/AMI/hNuwS7KkDRcqoXyAJqSP9+YyAIYDRhFN3XbTF50Dhxl4ahZk4ji7P
	4KK52lHX+SbDx7VIgx69BLXtHBo3EzFG2TkN8MbEVynNJIrEdZQE9r+6LyBGno3xUvx2DmgX+0J
	8rfBGwEkq6jTqWPKte6W8EX3IXQ==
X-Google-Smtp-Source: AGHT+IEts6C4Iyl7Vwm7umpTqRyz1Fr2E2/06rGtVFHI/Vhlt8F2sRVEwUAMvEQ221jbPIPlICVaeg==
X-Received: by 2002:a05:6402:40d1:b0:5e5:b388:29f9 with SMTP id 4fb4d7f45d1cf-5f83809e247mr2234161a12.5.1745914619530;
        Tue, 29 Apr 2025 01:16:59 -0700 (PDT)
Message-ID: <5020c491-2037-4955-99ce-e6ba02b44aef@suse.com>
Date: Tue, 29 Apr 2025 10:16:58 +0200
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>,
 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>,
 Anthony PERARD <anthony.perard@vates.tech>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH] {hyper,multi}call: further limit arguments to just 5
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+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

Multicall compat translation and hypercall continuation handling can
also be shrunk to the processing of just (up to) 5 arguments.

Take the opportunity to
- make exceeding the limit noisy in hypercall_create_continuation(),
- use speculation-safe array access in hypercall_create_continuation(),
- avoid a Misra C:2012 Rule 19.1 violation in xlat_multicall_entry(),
- further tidy xlat_multicall_entry() and __trace_multicall_call()
  style-wise.

Amends: 2f531c122e95 ("x86: limit number of hypercall parameters to 5")
Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
hypercall_xlat_continuation() uses BUG() when encountering too large an
argument count in release builds, but I think that's too harsh. Hence in
hypercall_create_continuation() I'm re-using the existing error path.
Interestingly the multicall part of hypercall_xlat_continuation() has no
check at all which would cover release builds.

With gcc14 code size grows according to my observation, due to the loops
in xlat_multicall_entry() and __trace_multicall_call() both being
unrolled now.

--- a/xen/arch/arm/domain.c
+++ b/xen/arch/arm/domain.c
@@ -392,7 +392,11 @@ unsigned long hypercall_create_continuat
     if ( mcs->flags & MCSF_in_multicall )
     {
         for ( i = 0; *p != '\0'; i++ )
-            mcs->call.args[i] = NEXT_ARG(p, args);
+        {
+            if ( i >= ARRAY_SIZE(mcs->call.args) )
+                goto bad_fmt;
+            array_access_nospec(mcs->call.args, i) = NEXT_ARG(p, args);
+        }
 
         /* Return value gets written back to mcs->call.result */
         rc = mcs->call.result;
@@ -417,7 +421,7 @@ unsigned long hypercall_create_continuat
                 case 2: regs->x2 = arg; break;
                 case 3: regs->x3 = arg; break;
                 case 4: regs->x4 = arg; break;
-                case 5: regs->x5 = arg; break;
+                default: goto bad_fmt;
                 }
             }
 
@@ -440,7 +444,7 @@ unsigned long hypercall_create_continuat
                 case 2: regs->r2 = arg; break;
                 case 3: regs->r3 = arg; break;
                 case 4: regs->r4 = arg; break;
-                case 5: regs->r5 = arg; break;
+                default: goto bad_fmt;
                 }
             }
 
--- a/xen/arch/x86/hypercall.c
+++ b/xen/arch/x86/hypercall.c
@@ -41,7 +41,11 @@ unsigned long hypercall_create_continuat
     if ( mcs->flags & MCSF_in_multicall )
     {
         for ( i = 0; *p != '\0'; i++ )
-            mcs->call.args[i] = NEXT_ARG(p, args);
+        {
+            if ( i >= ARRAY_SIZE(mcs->call.args) )
+                goto bad_fmt;
+            array_access_nospec(mcs->call.args, i) = NEXT_ARG(p, args);
+        }
     }
     else
     {
@@ -65,7 +69,7 @@ unsigned long hypercall_create_continuat
                 case 2: regs->rdx = arg; break;
                 case 3: regs->r10 = arg; break;
                 case 4: regs->r8  = arg; break;
-                case 5: regs->r9  = arg; break;
+                default: goto bad_fmt;
                 }
             }
         }
@@ -81,7 +85,7 @@ unsigned long hypercall_create_continuat
                 case 2: regs->rdx = arg; break;
                 case 3: regs->rsi = arg; break;
                 case 4: regs->rdi = arg; break;
-                case 5: regs->rbp = arg; break;
+                default: goto bad_fmt;
                 }
             }
         }
@@ -177,7 +181,6 @@ int hypercall_xlat_continuation(unsigned
             case 2: reg = &regs->rdx; break;
             case 3: reg = &regs->rsi; break;
             case 4: reg = &regs->rdi; break;
-            case 5: reg = &regs->rbp; break;
             default: BUG(); reg = NULL; break;
             }
             if ( (mask & 1) )
--- a/xen/common/compat/multicall.c
+++ b/xen/common/compat/multicall.c
@@ -14,9 +14,13 @@ typedef int ret_t;
 
 static inline void xlat_multicall_entry(struct mc_state *mcs)
 {
-    int i;
-    for (i=0; i<6; i++)
-        mcs->compat_call.args[i] = mcs->call.args[i];
+    unsigned int i;
+    typeof(mcs->compat_call.args[0]) args[ARRAY_SIZE(mcs->call.args)];
+
+    for ( i = 0; i < ARRAY_SIZE(args); i++ )
+        args[i] = mcs->call.args[i];
+
+    memcpy(mcs->compat_call.args, args, sizeof(args));
 }
 
 #define multicall_entry      compat_multicall_entry
@@ -29,8 +33,8 @@ static inline void xlat_multicall_entry(
 
 static void __trace_multicall_call(multicall_entry_t *call)
 {
-    xen_ulong_t args[6];
-    int i;
+    xen_ulong_t args[ARRAY_SIZE(call->args)];
+    unsigned int i;
 
     for ( i = 0; i < ARRAY_SIZE(args); i++ )
         args[i] = call->args[i];
--- a/xen/include/public/xen.h
+++ b/xen/include/public/xen.h
@@ -640,7 +640,11 @@ DEFINE_XEN_GUEST_HANDLE(mmu_update_t);
  */
 struct multicall_entry {
     xen_ulong_t op, result;
+#ifndef __XEN__
     xen_ulong_t args[6];
+#else /* Only 5 arguments are supported in reality. */
+    xen_ulong_t args[5], unused;
+#endif
 };
 typedef struct multicall_entry multicall_entry_t;
 DEFINE_XEN_GUEST_HANDLE(multicall_entry_t);


From xen-devel-bounces@lists.xenproject.org Tue Apr 29 08:24:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 08:24:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.971654.1360007 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9gGl-0000R2-TR; Tue, 29 Apr 2025 08:24:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 971654.1360007; Tue, 29 Apr 2025 08:24: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 1u9gGl-0000Qv-Qb; Tue, 29 Apr 2025 08:24:47 +0000
Received: by outflank-mailman (input) for mailman id 971654;
 Tue, 29 Apr 2025 08:24: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=anwM=XP=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1u9gGk-0000Qp-IU
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 08:24:46 +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 68336aca-24d3-11f0-9eb4-5ba50f476ded;
 Tue, 29 Apr 2025 10:24:45 +0200 (CEST)
Received: by mail-ed1-x52a.google.com with SMTP id
 4fb4d7f45d1cf-5f5bef591d6so10961810a12.1
 for <xen-devel@lists.xenproject.org>; Tue, 29 Apr 2025 01:24:45 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-64-225.play-internet.pl.
 [109.243.64.225]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-acec5d0d74esm96230666b.117.2025.04.29.01.24.43
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 29 Apr 2025 01:24:44 -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: 68336aca-24d3-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1745915085; x=1746519885; darn=lists.xenproject.org;
        h=in-reply-to:from:cc:content-language:references:to:subject
         :user-agent:mime-version:date:message-id:from:to:cc:subject:date
         :message-id:reply-to;
        bh=IcRA9B58EQ4yRq0UrvtW1zz7O2QCmd28q/7mPCxeMbA=;
        b=IWXuOBoogMq3C7p8nMQhdj3ic0abkd15nP5mqIm1mUp+aOeXnEJ8CKMMiDlfCjGfEI
         G8pw9t2E74otIl2FDdL0F2hGg6VPz7TKX3cRXamOIxWYT6Lx36Oho2PMezAAHQSz07DZ
         swON8VqqWkAB1r6R/yYCUFwuvCHtLpnHT//L6zNa+hYgpMiPk7+z1araTjjV5cAyNdid
         WRCq/bqivlYQhDb8a5X3PLiMwhDOk/pDYa8OGcRcZetuSrAAW49nHbn9tkzLS09bKtnh
         jTPsto1tChD384BwC4z/scwsOejsCn1ZgO6pLW1wUHPWJS6YdoxbjLd+yJ+w8kVc1byw
         SdYA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745915085; x=1746519885;
        h=in-reply-to: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=IcRA9B58EQ4yRq0UrvtW1zz7O2QCmd28q/7mPCxeMbA=;
        b=tQUdAsZXiwwlgjS12dTuT7cEQ9DXWbg+JaMtNE01IfOsa2ko9OuV13MuQ3En16sY36
         ujXmNPepQCqQdLPNXmvzWI4NYVfH6aYQHk+ze9PQs0dvmEeQCTIJT41skwDOXgAlmFd2
         +0afBhhlpzyr/WAbVQIDq128dOsNC7DcM7IL2+e8eiM8zJ2K/PdlwatGeEc/ou+fKM0G
         vSbf3Uya/U6b1my+OgiqJ5PMK1lg0TFEsaYx7Bw30dGF4tc2qIm0FXZozCRjOb1TTAXe
         whmFNezqwY6ki/UcvXZS2TiG7/J9cNMoLTZIYOLfghLB6NTBKabIaPrfvtDJsbSJ/qFN
         vfyQ==
X-Forwarded-Encrypted: i=1; AJvYcCWJ95BaNJMvPX8M01lgB8QG7+xuWDoPLf+bpsT8j1/WB4hN1EpT8Kv4YUIxzILKZPKRKZrnkCeMScw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwG63iIFXiUi1XYE979oUk1AL2nhsYzHzHypCUbEDkGx2XJdt/S
	V8x00DnAj2OyPW/DPoM6cPw1/0lFIPpZUQt4WgfgDbUr8O7bMkMY
X-Gm-Gg: ASbGncsnugWMU2gRgKbfon264CaRU2pyhnadHOWFkIa0iWCoTgP2J67wewDSeNhAFI4
	OSPgl49dnL+K/NVvFwXeqmSOfTOb5nrY4wi2j0O39+E9S+mSGBf9BWpbsqoT5KZblYe3LFRZjss
	KK+2nOOEAJzJaREzu1hbf1x4Y9OlHZBgChC4eJr7nmYuvOziuv+iTImiNzLjhAQ1z5qnlAHpk4z
	QBGEFQHm5Z3FlxdjrJs+o1V+lQ28yYUpQWvE+efq5abKMfWAQi8HKPk4yCuwznJN3XUjYQnIb6o
	O+/1X2D6vLRYlWHwqrfjP+utBMwL7wToh13FabxJF3ftWYM9qVlkpQKbJ7Xb8MxrfUQTNBakHbk
	ciNF9iM5E8CEheM9i
X-Google-Smtp-Source: AGHT+IEMxg/ug54EnEgtwuNJIkzOtnOiT9SwOL0cBdt3supRcUX1+utufoWkvAjPsWkzT6HPpSXy8Q==
X-Received: by 2002:a17:907:971b:b0:ac6:ba4e:e769 with SMTP id a640c23a62f3a-acec69b1f38mr198847066b.35.1745915084429;
        Tue, 29 Apr 2025 01:24:44 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------2pwKTKzVRn1xx9TkCB6ChiH7"
Message-ID: <30f3cce3-60b9-480d-b89e-f9992f19cd5e@gmail.com>
Date: Tue, 29 Apr 2025 10:24:43 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 08/14] xen/riscv: imsic_init() implementation
To: Jan Beulich <jbeulich@suse.com>
References: <cover.1744126720.git.oleksii.kurochko@gmail.com>
 <09e0fcd64f97062441a68102ead520b818150fe9.1744126720.git.oleksii.kurochko@gmail.com>
 <78fa2ed0-57a2-4990-bc9c-8fa52e41420a@suse.com>
 <aadd8ccf-94f4-407e-8510-3640c6d43b31@gmail.com>
 <9a13c625-cd33-485d-a91f-9f005522b5a4@suse.com>
Content-Language: en-US
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Xen-devel <xen-devel@lists.xenproject.org>,
 Romain Caritey <Romain.Caritey@microchip.com>
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <9a13c625-cd33-485d-a91f-9f005522b5a4@suse.com>

This is a multi-part message in MIME format.
--------------2pwKTKzVRn1xx9TkCB6ChiH7
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 4/16/25 8:31 AM, Jan Beulich wrote:
>>>> --- /dev/null
>>>> +++ b/xen/arch/riscv/include/asm/imsic.h
>>>> @@ -0,0 +1,66 @@
>>>> +/* SPDX-License-Identifier: MIT */
>>>> +
>>>> +/*
>>>> + * xen/arch/riscv/imsic.h
>>>> + *
>>>> + * RISC-V Incoming MSI Controller support
>>>> + *
>>>> + * (c) 2023 Microchip Technology Inc.
>>>> + */
>>>> +
>>>> +#ifndef ASM__RISCV__IMSIC_H
>>>> +#define ASM__RISCV__IMSIC_H
>>>> +
>>>> +#include <xen/types.h>
>>>> +
>>>> +#define IMSIC_MMIO_PAGE_SHIFT   12
>>>> +#define IMSIC_MMIO_PAGE_SZ      (1UL << IMSIC_MMIO_PAGE_SHIFT)
>>>> +
>>>> +#define IMSIC_MIN_ID            63
>>>> +#define IMSIC_MAX_ID            2048
>>>> +
>>>> +struct imsic_msi {
>>>> +    paddr_t base_addr;
>>>> +    unsigned long offset;
>>>> +};
>>>> +
>>>> +struct imsic_mmios {
>>>> +    paddr_t base_addr;
>>>> +    unsigned long size;
>>>> +    bool harts[NR_CPUS];
>>> An array of bool - won't a bitmap do here? Even then I wouldn't be overly
>>> happy to see it dimensioned by NR_CPUS.
>> Bitmap will fit here well. But for DECLARE_BITMAP() is necessary the size
>> of bitmap so NR_CPUS should be used again.
>> Could you please remind me why it isn't good to use it?
>> Because NR_CPUS not always equal to an amount of physical cpus?
> "Not equal" wouldn't be overly problematic. But NR_CPUS=4000 and the actual
> number of CPUs being 4 would be wasteful in general. More when its wider
> than a bit that's needed per CPU, but where would you draw the line if you
> permitted use of NR_CPUS here?
>
>> Should I use non-static version of bitmap declaration? (if we have such...)
> That's simply "unsigned long *" then, or - at the tail of a dynamically
> allocated struct - possibly unsigned long[].
>
>>>> +};
>>>> +
>>>> +struct imsic_config {
>>>> +    /* base address */
>>>> +    paddr_t base_addr;
>>>> +
>>>> +    /* Bits representing Guest index, HART index, and Group index */
>>>> +    unsigned int guest_index_bits;
>>>> +    unsigned int hart_index_bits;
>>>> +    unsigned int group_index_bits;
>>>> +    unsigned int group_index_shift;
>>>> +
>>>> +    /* imsic phandle */
>>>> +    unsigned int phandle;
>>>> +
>>>> +    /* number of parent irq */
>>>> +    unsigned int nr_parent_irqs;
>>>> +
>>>> +    /* number off interrupt identities */
>>>> +    unsigned int nr_ids;
>>>> +
>>>> +    /* mmios */
>>>> +    unsigned int nr_mmios;
>>>> +    struct imsic_mmios *mmios;
>>>> +
>>>> +    /* MSI */
>>>> +    struct imsic_msi msi[NR_CPUS];
>>> You surely can avoid wasting perhaps a lot of memory by allocating this
>>> based on the number of CPUs in use?
>> It make sense. I'll allocate then this dynamically.
> Or, as per above, when put at the tail and the struct itself is
> dynamically allocated, use struct imsic_msi[]. We even have dedicated
> xmalloc() flavors for this kind of allocation.

Do you mean xzalloc_flex_struct()?

I think, I can't use for both of the cases (allocation of mmios and msi).
For msi[] then it is needed to allocate imsic_config also dynamically, isn't it?
So something like:
  imsic_config = xzalloc_flex_struct(struct imsic_config, msi, NR_CPUS).
But now it is allocated statically.

For *mmios and harts[] (a member inside struct imsic_mmios):
   mmios = xzalloc_flex_struct(struct imsic_mmios, harts, NR_CPUS); // NR_CPUs just for example...
It will allocate only one mmios, but it is needed mmios[nr_mmios].
Maybe, something like _xmalloc((offsetof(struct imsic_mmios, harts[NR_CPUS])) * NR_CPUS, sizeof(struct imsic_mmios)) will work.

Am I missing something?

~ Oleksii

--------------2pwKTKzVRn1xx9TkCB6ChiH7
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 4/16/25 8:31 AM, Jan Beulich wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:9a13c625-cd33-485d-a91f-9f005522b5a4@suse.com">
      <pre class="moz-quote-pre" wrap=""><blockquote type="cite"
      style="color: #007cff;"><blockquote type="cite"
      style="color: #007cff;"><blockquote type="cite"
      style="color: #007cff;"><pre wrap="" class="moz-quote-pre">--- /dev/null
+++ b/xen/arch/riscv/include/asm/imsic.h
@@ -0,0 +1,66 @@
+/* SPDX-License-Identifier: MIT */
+
+/*
+ * xen/arch/riscv/imsic.h
+ *
+ * RISC-V Incoming MSI Controller support
+ *
+ * (c) 2023 Microchip Technology Inc.
+ */
+
+#ifndef ASM__RISCV__IMSIC_H
+#define ASM__RISCV__IMSIC_H
+
+#include &lt;xen/types.h&gt;
+
+#define IMSIC_MMIO_PAGE_SHIFT   12
+#define IMSIC_MMIO_PAGE_SZ      (1UL &lt;&lt; IMSIC_MMIO_PAGE_SHIFT)
+
+#define IMSIC_MIN_ID            63
+#define IMSIC_MAX_ID            2048
+
+struct imsic_msi {
+    paddr_t base_addr;
+    unsigned long offset;
+};
+
+struct imsic_mmios {
+    paddr_t base_addr;
+    unsigned long size;
+    bool harts[NR_CPUS];
</pre></blockquote><pre wrap="" class="moz-quote-pre">An array of bool - won't a bitmap do here? Even then I wouldn't be overly
happy to see it dimensioned by NR_CPUS.
</pre></blockquote><pre wrap="" class="moz-quote-pre">Bitmap will fit here well. But for DECLARE_BITMAP() is necessary the size
of bitmap so NR_CPUS should be used again.
Could you please remind me why it isn't good to use it?
Because NR_CPUS not always equal to an amount of physical cpus?
</pre></blockquote><pre wrap="" class="moz-quote-pre">"Not equal" wouldn't be overly problematic. But NR_CPUS=4000 and the actual
number of CPUs being 4 would be wasteful in general. More when its wider
than a bit that's needed per CPU, but where would you draw the line if you
permitted use of NR_CPUS here?

</pre><blockquote type="cite" style="color: #007cff;"><pre wrap=""
      class="moz-quote-pre">Should I use non-static version of bitmap declaration? (if we have such...)
</pre></blockquote><pre wrap="" class="moz-quote-pre">That's simply "unsigned long *" then, or - at the tail of a dynamically
allocated struct - possibly unsigned long[].

</pre><blockquote type="cite" style="color: #007cff;"><blockquote
      type="cite" style="color: #007cff;"><blockquote type="cite"
      style="color: #007cff;"><pre wrap="" class="moz-quote-pre">+};
+
+struct imsic_config {
+    /* base address */
+    paddr_t base_addr;
+
+    /* Bits representing Guest index, HART index, and Group index */
+    unsigned int guest_index_bits;
+    unsigned int hart_index_bits;
+    unsigned int group_index_bits;
+    unsigned int group_index_shift;
+
+    /* imsic phandle */
+    unsigned int phandle;
+
+    /* number of parent irq */
+    unsigned int nr_parent_irqs;
+
+    /* number off interrupt identities */
+    unsigned int nr_ids;
+
+    /* mmios */
+    unsigned int nr_mmios;
+    struct imsic_mmios *mmios;
+
+    /* MSI */
+    struct imsic_msi msi[NR_CPUS];
</pre></blockquote><pre wrap="" class="moz-quote-pre">You surely can avoid wasting perhaps a lot of memory by allocating this
based on the number of CPUs in use?
</pre></blockquote><pre wrap="" class="moz-quote-pre">It make sense. I'll allocate then this dynamically.
</pre></blockquote><pre wrap="" class="moz-quote-pre">Or, as per above, when put at the tail and the struct itself is
dynamically allocated, use struct imsic_msi[]. We even have dedicated
xmalloc() flavors for this kind of allocation.</pre></pre>
    </blockquote>
    <pre><pre>Do you mean xzalloc_flex_struct()?
</pre><pre>I think, I can't use for both of the cases (allocation of mmios and msi).
For msi[] then it is needed to allocate imsic_config also dynamically, isn't it?
So something like:
 imsic_config = xzalloc_flex_struct(struct imsic_config, msi, NR_CPUS).
But now it is allocated statically.

For *mmios and harts[] (a member inside struct imsic_mmios):
  mmios = xzalloc_flex_struct(struct imsic_mmios, harts, NR_CPUS); // NR_CPUs just for example...
It will allocate only one mmios, but it is needed mmios[nr_mmios].
Maybe, something like _xmalloc((offsetof(struct imsic_mmios, harts[NR_CPUS])) * NR_CPUS, sizeof(struct imsic_mmios)) will work.

Am I missing something?

~ Oleksii</pre></pre>
  </body>
</html>

--------------2pwKTKzVRn1xx9TkCB6ChiH7--


From xen-devel-bounces@lists.xenproject.org Tue Apr 29 08:28:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 08:28:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.971666.1360017 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9gKT-00010b-BU; Tue, 29 Apr 2025 08:28:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 971666.1360017; Tue, 29 Apr 2025 08:28: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 1u9gKT-00010U-8Y; Tue, 29 Apr 2025 08:28:37 +0000
Received: by outflank-mailman (input) for mailman id 971666;
 Tue, 29 Apr 2025 08:28: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=qXnC=XP=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u9gKS-00010O-5E
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 08:28:36 +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 f0686591-24d3-11f0-9ffb-bf95429c2676;
 Tue, 29 Apr 2025 10:28:34 +0200 (CEST)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-ac2c663a3daso1123322266b.2
 for <xen-devel@lists.xenproject.org>; Tue, 29 Apr 2025 01:28:34 -0700 (PDT)
Received: from [10.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-ace6e41c898sm740997366b.7.2025.04.29.01.28.32
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 29 Apr 2025 01:28:33 -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: f0686591-24d3-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745915313; x=1746520113; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=kRtJrXRtQNjq41zHKBZdk2VUStOrxT5x02bWzd+spPw=;
        b=Yvy0Qrir9m4ZNS7aKfX6qZLd79cFmF6SBgJmgkmAoqudTnY573jVXilRC99ydXw5zR
         3UTWMhw/WybsADeEbqnb3IXUmKXs5NSeyMtM+m+5oLyx6bUhyivWl1iJgcs2Gq2FmWgC
         K2LIH7ldgTGC8/5SpjcT10RmQr6HG4Vku3S27VDkwC+vyC8Gdmv121VwGzXUoRTlNppR
         tSKzhVTcxR+M/YykJbNq9KbF/B2YoKrdJ4sSHFQMGmu3xE5ChC8MqBxI4Fj26VVIAuAH
         acdOmwoKy3mPeq0UOxzOryib1mlupHYKgXGm5c6/50PtkG1H3SeiHQKHMwy16+n0sL/I
         KatQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745915313; x=1746520113;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=kRtJrXRtQNjq41zHKBZdk2VUStOrxT5x02bWzd+spPw=;
        b=rUWLGvIYmbgDGckUYYQQqrMHP4J1Bx26bIOJkSQYY+LqWV4+0SYjS9R1nwBNS8/a8d
         i+sKtIzsjEpDIdHwAWtrKRMr4UutTzahzeo2Vp3aWKheP4iwpxN8wGttce18I6KiNog3
         jeXYAT+fVR91zljoNZawOiU745FrwbEw1IsuLEAl71nqVoMLAhw5Sbj7NF/mlODuhpD+
         lZE3Ys35aVwsTnBWsHtzj00INTvLxtvl316oL5ajBU4zUO8PlMKZgMX7LTgAOugY5Ku0
         F3YgS2F49o3EbR/2+oP8KXrZef9KUEcTt/SSzXBPk6lwNtCX4hINLCEFZirRFBKXQsGn
         SZeQ==
X-Forwarded-Encrypted: i=1; AJvYcCX/zPC36gn38pYCCdrH1z+6dQYBMVgVzfIlK3hszxiCaMWDw8XWkHSuhvDr15NvCpC4j6JF+SEwIkI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyXfIJVYuJzuIS6hjfaJQfcysOpV5Wud6LLBWPgMCYD1LV0Mkt8
	uygxvvo4XzQm+VUmpy3VAgk/2J1sirLzf7vgGl2AGe/KNki+930UvKZk0lKNww==
X-Gm-Gg: ASbGncuzqznSnMlZnZRwUIxiPvXSm18JrsJG/NKvkM6jx9MhI17bWTQZFKoINs6CLdi
	Y6Off5sHgSKHpPJcx5TRO3dK/pR6Pl1IU+It7RhF9iTe8hjsDPsqwWjMFbrcuZACCjc0ET5HxPC
	ZAwDPQRmWeFKzQB9wMevRry8kQLWRWeWZuycTRULk0LDHvR74ob0zMHxSTKFvXF40OVs/deqmeS
	im1NEHjMbkHxTmaMCvhIrPuZXUBxv7hCBg0ye9bxvWgqn49Y5xtaEKg0dCYNj98aP+RHR4T2iwP
	PJph12MywIYJ58KvdIQ80WacHZQo1hkMbrVEfGIUxifzCmEKxZaiGrtqsOfe4zodKbEcMAYuMRV
	lIXa2UDcLXVRSeavLPZIb1kGZow==
X-Google-Smtp-Source: AGHT+IFlEDN+Ki0/yXOLa0FDjv2ebvA8TC/yfuPmrOLkSpmyHSw/U4nS07Rwz9GTpO6U0BdghczHTQ==
X-Received: by 2002:a17:906:280c:b0:ace:bf94:2d2c with SMTP id a640c23a62f3a-acebf942f30mr346872366b.54.1745915313505;
        Tue, 29 Apr 2025 01:28:33 -0700 (PDT)
Message-ID: <77c9529e-8353-479f-994f-d6d668788374@suse.com>
Date: Tue, 29 Apr 2025 10:28:32 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3] x86/hyperv: use dynamically allocated page for
 hypercalls
To: Ariadne Conill <ariadne@ariadne.space>
Cc: Paul Durrant <paul@xen.org>, Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Alejandro Vallejo <agarciav@amd.com>,
 "Alexander M . Merritt" <alexander@edera.dev>, xen-devel@lists.xenproject.org
References: <20250428195736.2516-1-ariadne@ariadne.space>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20250428195736.2516-1-ariadne@ariadne.space>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 28.04.2025 21:57, Ariadne Conill wrote:
> Previously Xen placed the hypercall page at the highest possible MFN,
> but this caused problems on systems where there is more than 36 bits
> of physical address space.

Hmm, I should have asked already on the earlier version: What kinds of
problems are these, beyond ...

> In general, it also seems unreliable to assume that the highest possible
> MFN is not already reserved for some other purpose.

... this particular aspect? I find it puzzling that such problems would
depend on the number of physical address bits.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 29 08:54:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 08:54:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.971697.1360029 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9gjQ-0005zk-DS; Tue, 29 Apr 2025 08:54:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 971697.1360029; Tue, 29 Apr 2025 08:54:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9gjQ-0005zd-8h; Tue, 29 Apr 2025 08:54:24 +0000
Received: by outflank-mailman (input) for mailman id 971697;
 Tue, 29 Apr 2025 08:54: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=qXnC=XP=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u9gjO-0005zX-Q0
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 08:54:22 +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 8a948045-24d7-11f0-9eb4-5ba50f476ded;
 Tue, 29 Apr 2025 10:54:21 +0200 (CEST)
Received: by mail-ej1-x62b.google.com with SMTP id
 a640c23a62f3a-ac2a81e41e3so1026293266b.1
 for <xen-devel@lists.xenproject.org>; Tue, 29 Apr 2025 01:54:21 -0700 (PDT)
Received: from [10.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-ace6e41c91csm745504866b.37.2025.04.29.01.54.20
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 29 Apr 2025 01:54:20 -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: 8a948045-24d7-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745916860; x=1746521660; 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=rZ2IEDCdQpVj/BnrH+neE7AO4mqlMQn3f43kpeF75LQ=;
        b=Eg7ddiPLfVtBqLwiD2fxCT0mLdjErlKotfoj3OiEVCgiq4Ov1EUB4o5MOoPumyCzpu
         8njGUoRyd1r8oAIj+0v2SUkCii0HpNmdFlXu+D2K7lun/PRSBuZDofWOVYfBRKIX+lOF
         40rXT+4o+UZybWoKYcfKHXo2u75wMWAbom3UNCT5cw4X1UGbYfg3wmoF58WBja8ZQ9N8
         9wy3zVxpQP15U75HRtzWekFGEoEYCxoNmJMrUhj0TVFc430tuu3HpHfv9zz+d4EU25ZF
         NflhzkbZ5K26Px2KUWMcKwSAS6EfrHTEpkN0M3H3wzWeMwfM/TOjs9WJlUgt1G2ZSZpE
         WIhA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745916860; x=1746521660;
        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=rZ2IEDCdQpVj/BnrH+neE7AO4mqlMQn3f43kpeF75LQ=;
        b=R5I2Wi/KeVCcciwhfG77qHjSWnw/GvYCTw6jFzjIiY7F5awbrT8u4vdlvNIcGSA905
         k5WpyfJYDJEuUSoDRBfv5XkqGJE87yDD0Ezw+GWITQafh26b3n9R6rcuw9JfNG1SE5Eb
         gXNB5i6iBID+TD++MOZthrVxpPqE6grUq2GUXt7QiIkYSlS9+hipdm+xuvWKg/qBOIR1
         BM2MiDqPrpdFXCkc6QuLsNIrcsVyQEv9OsRD0AOzVHz3lSKDHpKfYaJNsM/OZu17eM02
         kjPdFquzxK5qBSboVePvqGTVgfep9q90/TPNx5aklGpe2KB+HRmtVP5M83Bvy9qs+Sd3
         XAOg==
X-Gm-Message-State: AOJu0YycA+vsu5CqMfNVsT/D9aQrVPW3nOtzeKCK939SZaMdX+8jBcAQ
	cdO0bp99kW72HhwKVXdWbTZV0ZAmH0VDNgB0/12xrKII16AtFaAwsW74/temqONd4j4dkiIK+Ng
	=
X-Gm-Gg: ASbGncvB6qOWClee5AbYdvZvC6vnhdMowXN/HNdAQxfPDk+tCfr9Jz2qUdAJhDFGtqy
	3+gpveND4mbiqj+ku4N6GaOn3fwDdI9g58M/S/Zq7RR00JQOrHXQwZ4IUmnDjNgEuufMFIuoPr3
	QTM0xFChe1t5Q3XbwlMqhgSMYC0GvUm4e8X93S97p+djcFQ7VWpl/rFkt9jHQZjPj/ay9R4Ugoj
	fdlmdFYSXr/k5dYP6x44FFctD+8mLRuxB1/cCj8TJFsJ4iThQV3jvcIuaVESsgs5YQ+mNSDF+mE
	WDMAh2mbm3pPeT2IoJ6b5pihB4f2acFFc7zA31vt5OVWyM3s1w2dVmggzp0NsxLbWemG7Q2nhWM
	LyryAvhiCy+fSYWaTm9ZpblwvXtLDEPS0ZOcj
X-Google-Smtp-Source: AGHT+IFIJOlHeQwhphjNY31OKcAvbVtk+A7qIzf/yw4TbN6ZkIr/kG8KKdkc18ZIzcMtMwZIMSCJiQ==
X-Received: by 2002:a17:907:3e9e:b0:aca:d54d:a1f8 with SMTP id a640c23a62f3a-acec8525c8emr220080666b.31.1745916860470;
        Tue, 29 Apr 2025 01:54:20 -0700 (PDT)
Message-ID: <09ac878a-fcbf-479a-9628-1cb08ff77a9e@suse.com>
Date: Tue, 29 Apr 2025 10:54:19 +0200
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: drop underscore-prefixed {maddr,virt} <=> page
 conversion macros
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+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

Unlike the ones converting to/from frame numbers, these don't have type-
safe overrides, and they also can't gain any within our present type
system. Unsurprisingly we also don't have any uses of the underscore-
prefixed variants.

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

--- a/xen/arch/x86/include/asm/mm.h
+++ b/xen/arch/x86/include/asm/mm.h
@@ -342,7 +342,7 @@ void init_frametable(void);
 #define PDX_GROUP_SHIFT L2_PAGETABLE_SHIFT
 
 /* Convert between Xen-heap virtual addresses and page-info structures. */
-static inline struct page_info *__virt_to_page(const void *v)
+static inline struct page_info *virt_to_page(const void *v)
 {
     unsigned long va = (unsigned long)v;
 
@@ -355,7 +355,7 @@ static inline struct page_info *__virt_t
     return frame_table + ((va - DIRECTMAP_VIRT_START) >> PAGE_SHIFT);
 }
 
-static inline void *__page_to_virt(const struct page_info *pg)
+static inline void *page_to_virt(const struct page_info *pg)
 {
     ASSERT((unsigned long)pg - FRAMETABLE_VIRT_START < FRAMETABLE_SIZE);
     /*
--- a/xen/arch/x86/include/asm/page.h
+++ b/xen/arch/x86/include/asm/page.h
@@ -238,8 +238,8 @@ void scrub_page_cold(void *);
 #define page_to_mfn(pg)     pdx_to_mfn((unsigned long)((pg) - frame_table))
 
 /* Convert between machine addresses and page-info structures. */
-#define __maddr_to_page(ma) mfn_to_page(maddr_to_mfn(ma))
-#define __page_to_maddr(pg) mfn_to_maddr(page_to_mfn(pg))
+#define maddr_to_page(ma)   mfn_to_page(maddr_to_mfn(ma))
+#define page_to_maddr(pg)   mfn_to_maddr(page_to_mfn(pg))
 
 /* Convert between frame number and address formats.  */
 #define __pfn_to_paddr(pfn) ((paddr_t)(pfn) << PAGE_SHIFT)
@@ -256,10 +256,6 @@ void scrub_page_cold(void *);
 #define mfn_valid(mfn)      __mfn_valid(mfn_x(mfn))
 #define virt_to_mfn(va)     __virt_to_mfn(va)
 #define mfn_to_virt(mfn)    __mfn_to_virt(mfn)
-#define maddr_to_page(ma)   __maddr_to_page(ma)
-#define page_to_maddr(pg)   __page_to_maddr(pg)
-#define virt_to_page(va)    __virt_to_page(va)
-#define page_to_virt(pg)    __page_to_virt(pg)
 #define pfn_to_paddr(pfn)   __pfn_to_paddr(pfn)
 #define paddr_to_pfn(pa)    __paddr_to_pfn(pa)
 #define paddr_to_pdx(pa)    pfn_to_pdx(paddr_to_pfn(pa))


From xen-devel-bounces@lists.xenproject.org Tue Apr 29 09:46:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 09:46:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.971726.1360038 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9hXZ-0004uw-4a; Tue, 29 Apr 2025 09:46:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 971726.1360038; Tue, 29 Apr 2025 09:46: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 1u9hXZ-0004up-1z; Tue, 29 Apr 2025 09:46:13 +0000
Received: by outflank-mailman (input) for mailman id 971726;
 Tue, 29 Apr 2025 09:46: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=ZqH3=XP=linux.intel.com=ilpo.jarvinen@srs-se1.protection.inumbo.net>)
 id 1u9hXY-0004uj-GH
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 09:46:12 +0000
Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.16])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c5d2ee22-24de-11f0-9ffb-bf95429c2676;
 Tue, 29 Apr 2025 11:46:08 +0200 (CEST)
Received: from orviesa009.jf.intel.com ([10.64.159.149])
 by fmvoesa110.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 29 Apr 2025 02:46:06 -0700
Received: from ijarvine-mobl1.ger.corp.intel.com (HELO localhost)
 ([10.245.244.205])
 by orviesa009-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 29 Apr 2025 02:45:52 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c5d2ee22-24de-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1745919968; x=1777455968;
  h=from:date:to:cc:subject:in-reply-to:message-id:
   references:mime-version:content-id;
  bh=OEmsROS2dzbLzqVvteqA+LjMNAwHbDGb3LITSHjMruA=;
  b=PFamFGETz37XcllzBS7R4osfxXK572/3+ciyYO743f3F10uFG8ukpFjd
   lRz+HmHVqW5UzbFyARbccE/xhMCSBGcxmolrZ/H/wSewVMQZu0OqI7244
   CkjSB7wJEID7+pFnqjdnUtlod49IDDDtZUd69lWdry2vdZuiGtNAhcspm
   kV3+ZYeWfWBfW6fNIZZszJPtz8iMNYAk7dzjOZV4tQQZ/CvyN/g/6Jtie
   pxRTa80p6gku9gtZbfZWxDlO02xWux626oNRyTA8LPhxF2t1qWOwTeJU8
   pNsF/syvVe1CvsIezIiOfIHWpLAdgeeQ4kgaGG45Cb/71mcBVfrAbCOp8
   w==;
X-CSE-ConnectionGUID: PtKI+hezSlGu3/+Se1yx1w==
X-CSE-MsgGUID: 8xUPTIIQQdeJkXEYOf7U7Q==
X-IronPort-AV: E=McAfee;i="6700,10204,11417"; a="35143901"
X-IronPort-AV: E=Sophos;i="6.15,248,1739865600"; 
   d="scan'208";a="35143901"
X-CSE-ConnectionGUID: chXqGONbRG+KNhUajc2ULw==
X-CSE-MsgGUID: 8lVzqi8rRgSKGWTaNKThpQ==
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="6.15,248,1739865600"; 
   d="scan'208";a="133495412"
From: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= <ilpo.jarvinen@linux.intel.com>
Date: Tue, 29 Apr 2025 12:45:49 +0300 (EEST)
To: "Xin Li (Intel)" <xin@zytor.com>
cc: LKML <linux-kernel@vger.kernel.org>, kvm@vger.kernel.org, 
    linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org, 
    virtualization@lists.linux.dev, linux-pm@vger.kernel.org, 
    linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org, 
    linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org, 
    Netdev <netdev@vger.kernel.org>, platform-driver-x86@vger.kernel.org, 
    tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, 
    dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com, 
    acme@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com, 
    peterz@infradead.org, namhyung@kernel.org, mark.rutland@arm.com, 
    alexander.shishkin@linux.intel.com, jolsa@kernel.org, irogers@google.com, 
    adrian.hunter@intel.com, kan.liang@linux.intel.com, wei.liu@kernel.org, 
    ajay.kaher@broadcom.com, bcm-kernel-feedback-list@broadcom.com, 
    tony.luck@intel.com, pbonzini@redhat.com, vkuznets@redhat.com, 
    seanjc@google.com, luto@kernel.org, boris.ostrovsky@oracle.com, 
    kys@microsoft.com, haiyangz@microsoft.com, decui@microsoft.com, 
    dapeng1.mi@linux.intel.com
Subject: Re: [PATCH v4 01/15] x86/msr: Add missing includes of <asm/msr.h>
In-Reply-To: <20250427092027.1598740-2-xin@zytor.com>
Message-ID: <a1917b37-e41e-d303-749b-4007cda01605@linux.intel.com>
References: <20250427092027.1598740-1-xin@zytor.com> <20250427092027.1598740-2-xin@zytor.com>
MIME-Version: 1.0
Content-Type: multipart/mixed; BOUNDARY="8323328-666243473-1745919726=:938"
Content-ID: <1b5519eb-241d-dec5-af5a-fc9378cf96ec@linux.intel.com>

  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

--8323328-666243473-1745919726=:938
Content-Type: text/plain; CHARSET=ISO-8859-15
Content-Transfer-Encoding: QUOTED-PRINTABLE
Content-ID: <6ad7f337-7709-3cca-3ccd-80f11d3e8d38@linux.intel.com>

On Sun, 27 Apr 2025, Xin Li (Intel) wrote:

> For some reason, there are some TSC-related functions in the MSR
> header even though there is a tsc.h header.
>=20
> To facilitate the relocation of rdtsc{,_ordered}() from <asm/msr.h>
> to <asm/tsc.h> and to eventually eliminate the inclusion of
> <asm/msr.h> in <asm/tsc.h>, add <asm/msr.h> to the source files that
> reference definitions from <asm/msr.h>.
>=20
> Signed-off-by: Xin Li (Intel) <xin@zytor.com>
> Acked-by: Dave Hansen <dave.hansen@linux.intel.com>
> Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
> ---
>=20
> Change in v4:
> *) Add missing includes in a different patch (Ilpo J=E4rvinen).
> *) Add all necessary direct inclusions for msr.h (Ilpo J=E4rvinen).
>=20
> Change in v3:
> * Add a problem statement to the changelog (Dave Hansen).
> ---
>  arch/x86/events/msr.c                                         | 3 +++
>  arch/x86/events/perf_event.h                                  | 1 +
>  arch/x86/events/probe.c                                       | 2 ++

Under arch/x86/events/ a few files seem to be missing the include?

>  arch/x86/hyperv/ivm.c                                         | 1 +

Also under hyperv/ not all files are covered but I'm a bit hesitant to=20
suggest a change there since I'm not sure if they (hypervisors) do=20
something special w.r.t. msr.

>  arch/x86/include/asm/fred.h                                   | 1 +
>  arch/x86/include/asm/microcode.h                              | 2 ++
>  arch/x86/include/asm/mshyperv.h                               | 1 +
>  arch/x86/include/asm/msr.h                                    | 1 +
>  arch/x86/include/asm/suspend_32.h                             | 1 +
>  arch/x86/include/asm/suspend_64.h                             | 1 +
>  arch/x86/include/asm/switch_to.h                              | 2 ++

arch/x86/kernel/acpi/ ?
acrh/x86/kernel/cet.c ?
=2E..

There seem to be quite many under arch/x86/ that still don't have it, I=20
didn't list them all as there were so many after this point.

But that's up to x86 maintainers how throughout they want you to be.

This command may be helpful to exclude the files which already have the=20
include so you can focus on the ones that may still be missing it:

git grep -l -e rdmsr -e wrmsr | grep -v -f <(git grep -l -e 'asm/msr\.h')

>  arch/x86/kernel/cpu/resctrl/pseudo_lock.c                     | 1 +
>  arch/x86/kernel/fpu/xstate.h                                  | 1 +
>  arch/x86/kernel/hpet.c                                        | 1 +
>  arch/x86/kernel/process_64.c                                  | 1 +
>  arch/x86/kernel/trace_clock.c                                 | 2 +-
>  arch/x86/kernel/tsc_sync.c                                    | 1 +
>  arch/x86/lib/kaslr.c                                          | 2 +-
>  arch/x86/mm/mem_encrypt_identity.c                            | 1 +
>  arch/x86/realmode/init.c                                      | 1 +
>  drivers/acpi/acpi_extlog.c                                    | 1 +
>  drivers/acpi/processor_perflib.c                              | 1 +
>  drivers/acpi/processor_throttling.c                           | 3 ++-
>  drivers/char/agp/nvidia-agp.c                                 | 1 +
>  drivers/cpufreq/amd-pstate-ut.c                               | 2 ++
>  drivers/crypto/ccp/sev-dev.c                                  | 1 +
>  drivers/edac/amd64_edac.c                                     | 1 +
>  drivers/edac/ie31200_edac.c                                   | 1 +
>  drivers/edac/mce_amd.c                                        | 1 +
>  drivers/hwmon/hwmon-vid.c                                     | 4 ++++
>  drivers/idle/intel_idle.c                                     | 1 +
>  drivers/misc/cs5535-mfgpt.c                                   | 1 +
>  drivers/net/vmxnet3/vmxnet3_drv.c                             | 4 ++++
>  drivers/platform/x86/intel/ifs/core.c                         | 1 +
>  drivers/platform/x86/intel/ifs/load.c                         | 1 +
>  drivers/platform/x86/intel/ifs/runtest.c                      | 1 +
>  drivers/platform/x86/intel/pmc/cnp.c                          | 1 +
>  drivers/platform/x86/intel/speed_select_if/isst_if_common.c   | 1 +
>  drivers/platform/x86/intel/speed_select_if/isst_if_mbox_msr.c | 1 +
>  drivers/platform/x86/intel/speed_select_if/isst_tpmi_core.c   | 1 +
>  drivers/platform/x86/intel/turbo_max_3.c                      | 1 +
>  .../platform/x86/intel/uncore-frequency/uncore-frequency.c    | 1 +
>  drivers/powercap/intel_rapl_common.c                          | 1 +
>  drivers/powercap/intel_rapl_msr.c                             | 1 +
>  .../thermal/intel/int340x_thermal/processor_thermal_device.c  | 1 +
>  drivers/thermal/intel/intel_tcc_cooling.c                     | 1 +
>  drivers/thermal/intel/x86_pkg_temp_thermal.c                  | 1 +
>  drivers/video/fbdev/geode/display_gx.c                        | 1 +
>  drivers/video/fbdev/geode/gxfb_core.c                         | 1 +
>  drivers/video/fbdev/geode/lxfb_ops.c                          | 1 +

Under drivers/ this looked pretty complete. Nice work.

Acked-by: Ilpo J=E4rvinen <ilpo.jarvinen@linux.intel.com> # for pdx86

I also noticed these files might not need to include msr.h:

drivers/cpufreq/elanfreq.c
drivers/cpufreq/sc520_freq.c
drivers/accel/habanalabs/common/habanalabs_ioctl.c

=2E..so if you want, you may consider optionally adding a cleanup patch to=
=20
remove the include from them.

> --- a/drivers/video/fbdev/geode/gxfb_core.c
> +++ b/drivers/video/fbdev/geode/gxfb_core.c
> @@ -30,6 +30,7 @@
>  #include <linux/cs5535.h>
> =20
>  #include <asm/olpc.h>
> +#include <asm/msr.h>

In wrong order.
> =20
>  #include "gxfb.h"

--
 i.
--8323328-666243473-1745919726=:938--


From xen-devel-bounces@lists.xenproject.org Tue Apr 29 10:08:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 10:08:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.971756.1360112 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9hsu-0000Th-GF; Tue, 29 Apr 2025 10:08:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 971756.1360112; Tue, 29 Apr 2025 10:08:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9hsu-0000Ta-DB; Tue, 29 Apr 2025 10:08:16 +0000
Received: by outflank-mailman (input) for mailman id 971756;
 Tue, 29 Apr 2025 10:08:14 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=G2DP=XP=kernel.org=mingo@srs-se1.protection.inumbo.net>)
 id 1u9hss-0000TU-H8
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 10:08: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 daf36215-24e1-11f0-9ffb-bf95429c2676;
 Tue, 29 Apr 2025 12:08:11 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id C5BAF5C2953;
 Tue, 29 Apr 2025 10:05:52 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id C9E22C4CEE3;
 Tue, 29 Apr 2025 10:08: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: daf36215-24e1-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1745921289;
	bh=FNkyaJGp8MfoVlpMeJugXq0KnLpj/jBe07Y8pBAACqE=;
	h=Date:From:To:Cc:Subject:References:In-Reply-To:From;
	b=VZKOu799+4V5pW/WeIPX/qMOLrBUca2dqVJr++ECXW2r6WG/1H+svFEldDbiX7Oo/
	 DY94o1FtmcdGss/70ZUqk4LKljL1SvgzZ16Pvv24LIf9hBcyY3/XJyf68AQiZDjjnH
	 L59TxFlHG20sFn7drQpXUlPUJ8ThkOni004ozQLvINNZUhpm+KdEjz3/Qpbg7khDuH
	 I3DrOfWwhOeomddlNJ2qQxoiV/uAX1X4erXjcI2/wTWBJc2z9ALHBdlzAJpLs36VLl
	 yOaXD0OWQbj4s1mQ1vUixWVu+yj/43QylJFIKx1Vy87I6Ai25BDi8HqaBo91TVBiwI
	 exBh1/FcloI/Q==
Date: Tue, 29 Apr 2025 12:08:03 +0200
From: Ingo Molnar <mingo@kernel.org>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Arnd Bergmann <arnd@arndb.de>, Arnd Bergmann <arnd@kernel.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>, Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Alexander Usyskin <alexander.usyskin@intel.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Mateusz =?utf-8?Q?Jo=C5=84czyk?= <mat.jonczyk@o2.pl>,
	Mike Rapoport <rppt@kernel.org>, Ard Biesheuvel <ardb@kernel.org>,
	Peter Zijlstra <peterz@infradead.org>, linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH] bitops/32: Convert variable_ffs() and fls() zero-case
 handling to C
Message-ID: <aBClAy837xcLnVpp@gmail.com>
References: <aAyiganPp_UsNlnZ@gmail.com>
 <d2b0e71c-e79b-40d6-8693-3202cd894d66@app.fastmail.com>
 <CAHk-=wh=TUsVv6xhtzYsWJwJggrjyOfYT3kBu+bHtoYLK0M9Xw@mail.gmail.com>
 <CAHk-=wgfk69H-T-vMWR33xUpVsWJLrF34d0OwUXa2sHhtpSwZg@mail.gmail.com>
 <e54f1943-e0ff-4f59-b24f-9b5a7a38becf@citrix.com>
 <CAHk-=wj0S2vWui0Y+1hpYMEhCiXKexbQ01h+Ckvww8hB29az_A@mail.gmail.com>
 <aA8nF0moBYOIgC5J@gmail.com>
 <aA8oqKUaFU-0wb-D@gmail.com>
 <aA8q4Ot-1zTzv_Kt@gmail.com>
 <CAHk-=wh5DUS+nhfTxPEEbaB9dsFib39gWatrX4NoFq_MpdOzGw@mail.gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <CAHk-=wh5DUS+nhfTxPEEbaB9dsFib39gWatrX4NoFq_MpdOzGw@mail.gmail.com>


* Linus Torvalds <torvalds@linux-foundation.org> wrote:

> On Mon, 28 Apr 2025 at 00:14, Ingo Molnar <mingo@kernel.org> wrote:
> >
> > And, just out of intellectual curiosity, I also tried to measure the
> > code generation price of the +1 standards-quirk in the fls()/ffs()
> > interface as well:
> >
> > ... and unless I messed up the patch, it seems to have a surprisingly
> > low impact - maybe because the compiler can amortize its cost by
> > adjusting all dependent code mostly at build time, so the +1 doesn't
> > end up being generated most of the time?
> 
> No, I think one issue is that most users actually end up subtracting
> one from the return value of 'ffs()', because the "bit #0 returns 1"
> semantics of the standard ffs() function really is insane.
> 
> It's not just that it doesn't match sane hardware, it's also that it
> doesn't match sane *users*. If bit #0 is set, people want '0', so they
> typically subtract 1.
> 
> So when you stop adding one, you aren't actually removing code -
> you're often adding it.
> 
> Just see how many hits you get from
> 
>     git grep '\<ffs(.*).*-.*1'
> 
> which is obviously not a very precise pattern, but just look at the
> output and see just *how* common that "subtract one" thing is.
> 
> I really don't understand how anybody *ever* thought that the whole
> "return one bigger" was a good idea for ffs().

Yeah. No argument from me that it's a badly thought out interface - I 
was just surprised that it doesn't seem to impact performance as badly 
as I expected. I have to add that a lot of work went into absorbing the 
negative effects of the ffs()/fls() interfaces:

  starship:~/tip> git grep -Ee '__ffs\(|__fls\(' | wc -l
  1055

So it impacts code quality negatively, which is arguably the worse side 
effect.

> But maybe people really were poisoned by the Pascal mindset. Or maybe 
> it was invented by some ancient Roman who hadn't heard of the concept 
> of zero. Who knows?

Hey, ancient Romans didn't even have the concept of *whitespaces* and 
punctuation to begin with:

    https://historyofinformation.com/images/Vergilius_Augusteus,_Georgica_121.jpg

Lazy stonemasons the lot of them.

Romans were the worst ever coders too I suspect. What have the Romans 
ever done for us??

	Ingo


From xen-devel-bounces@lists.xenproject.org Tue Apr 29 10:13:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 10:13:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.971781.1360169 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9hxV-0002lW-F6; Tue, 29 Apr 2025 10:13:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 971781.1360169; Tue, 29 Apr 2025 10:13:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9hxV-0002lP-CP; Tue, 29 Apr 2025 10:13:01 +0000
Received: by outflank-mailman (input) for mailman id 971781;
 Tue, 29 Apr 2025 10:13: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=b72w=XP=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u9hxU-0002lF-Nj
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 10:13: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 872c7894-24e2-11f0-9eb4-5ba50f476ded;
 Tue, 29 Apr 2025 12:12:59 +0200 (CEST)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-39ee5ac4321so6250886f8f.1
 for <xen-devel@lists.xenproject.org>; Tue, 29 Apr 2025 03:12:59 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 ffacd0b85a97d-3a073e5cffasm13694881f8f.96.2025.04.29.03.12.58
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 29 Apr 2025 03:12:58 -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: 872c7894-24e2-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745921579; x=1746526379; 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=5L+6d2q8Wk9MF3nhIfwH6850QZ4KjtnLngGsQnw0sNI=;
        b=uh/Smm7lNfA2NOkMjbWdDGqSYLYw3kK/tSVZg4JhLrONB+qYTxPE61HqVPR0C3Y5vl
         HuCwWIHQQJvaDt/QWjUBPznhiXfaqdUFEFVSEFyN0xG0KbAIXL2nK8WizVR/YfUUQndB
         RsY2HI3BeISag1ntPIpsKYVpxyl5JpmSSsdzg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745921579; x=1746526379;
        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=5L+6d2q8Wk9MF3nhIfwH6850QZ4KjtnLngGsQnw0sNI=;
        b=Y7bQrfFC2P+ayl59YhjL67GgPiasmi5nV+Iw5LUjCcWfXOcrW0Ne0XSAwuVj1pL+eP
         iiC7q+oToqhm6b0x475AIAbwq2aHZIwOEogOcVoBri4xKQvQRNRi4172v9x6zJlw6kq0
         QZMpCcyjUe10hjhPS5JOSI/e49AneEHRYi+ez7IDi3h3kDFeoT6SAgNqIoLcER6zxbrb
         tpvVGMaORJrx5KeqNRFpqgV+AvOEXXUrFhd0jVYUn3oiUZNmNY1r84P/EQBZxodPVT4Y
         qsOXG9HJojT6S5PhHTZRdp62T6pqoEKK8FZ7zbzxjmIKgKvKF60OM1kdwRDqW0GrunQN
         DZzQ==
X-Gm-Message-State: AOJu0Yz7C7WMOJcjlSFs0n+QLWJBnIHuc3B0nKwA3JUI921JACUmJ04V
	fKI6CsRaIg3Rx5hjY/nB4fS9810RPyCanzK6cdFRmOJzOI80+S5JgxS0CdwVLz++B34seukibWp
	I
X-Gm-Gg: ASbGncs6erE6YqdoVC/QPh524Ipy/Lp2mY8atpagyJUmjBZTkbhZSf6JEVXh6vHasyt
	rMb9H9wxw/XWfGWzJBYHG4hOGhboWX+d+uF8admPjTHhKEyfK/VszDqE/1kVdAx2wBQRdWtHbp7
	za/dmAzhdGEfs7A6yXvkDs5X552/BV9WV5kybZhEi5fIVO7AeC0vSKX5jNLHADs1cgfApBp+Ji+
	4wnBLgcHZBZojdk6Zgxr1lEh45gYF33JxNBhnZm5GAoeHZUq7U5DcI8fzzpVt2osz/oEQcYHLpO
	7PyzjkWHfIgqMIHvjSrgcWVPkNDQ6faTmqqHnLfx+GRIww==
X-Google-Smtp-Source: AGHT+IGToBnPY9o5JSj/yUw2DnvFQzlwSTb6uC328F6EkbagHdVaK9h7wAvZ6vDRC01kA3+KCtgXog==
X-Received: by 2002:a05:6000:22c3:b0:39a:ca05:54a9 with SMTP id ffacd0b85a97d-3a0891b809dmr2060790f8f.29.1745921578998;
        Tue, 29 Apr 2025 03:12:58 -0700 (PDT)
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>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v4 0/4] xen/x86: fix implementation of subpage r/o MMIO
Date: Tue, 29 Apr 2025 12:12:48 +0200
Message-ID: <20250429101252.50071-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.48.1
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Hello,

Following series include some bugfixes and improvements to the handling
of subpage r/o MMIO accesses.

Patch 1 introduces a helper to reduce code duplication when performing
MMIO accesses.

Patch 2 is a bugfix for using subpage in HVM guest, and patch 3 is an
optimization to only register the HVM subpage handler when needed.

Finally patch 4 moves some PV only code to a PV specific file.

Thanks, Roger.

Roger Pau Monne (4):
  xen/io: provide helpers for multi size MMIO accesses
  x86/hvm: fix handling of accesses to partial r/o MMIO pages
  x86/hvm: only register the r/o subpage ops when needed
  x86/mm: move mmio_ro_emulated_write() to PV only file

 xen/arch/x86/hvm/Makefile              |   1 +
 xen/arch/x86/hvm/emulate.c             |  54 ++---------
 xen/arch/x86/hvm/hvm.c                 |  18 ++--
 xen/arch/x86/hvm/mmio.c                | 125 +++++++++++++++++++++++++
 xen/arch/x86/hvm/vmsi.c                |  47 +---------
 xen/arch/x86/include/asm/hvm/emulate.h |   1 -
 xen/arch/x86/include/asm/hvm/io.h      |   3 +
 xen/arch/x86/include/asm/mm.h          |  21 +++--
 xen/arch/x86/mm.c                      | 106 +++++----------------
 xen/arch/x86/pv/ro-page-fault.c        |  41 ++++++++
 xen/drivers/vpci/msix.c                |  47 +---------
 xen/include/xen/io.h                   |  70 ++++++++++++++
 12 files changed, 296 insertions(+), 238 deletions(-)
 create mode 100644 xen/arch/x86/hvm/mmio.c
 create mode 100644 xen/include/xen/io.h

-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Tue Apr 29 10:13:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 10:13:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.971782.1360180 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9hxW-0002zw-Ph; Tue, 29 Apr 2025 10:13:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 971782.1360180; Tue, 29 Apr 2025 10:13: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 1u9hxW-0002zo-Mi; Tue, 29 Apr 2025 10:13:02 +0000
Received: by outflank-mailman (input) for mailman id 971782;
 Tue, 29 Apr 2025 10:13: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=b72w=XP=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u9hxW-0002lF-01
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 10:13:02 +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 883c51b5-24e2-11f0-9eb4-5ba50f476ded;
 Tue, 29 Apr 2025 12:13:01 +0200 (CEST)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-43edecbfb94so54300835e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 29 Apr 2025 03:13:01 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 5b1f17b1804b1-441ad81c19fsm11819825e9.0.2025.04.29.03.12.59
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 29 Apr 2025 03:12: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: 883c51b5-24e2-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745921580; x=1746526380; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Ri4wmQ14jFAaQdVruW8LmHQFglkscs4x372ajXNwYuk=;
        b=kjOvnWNmVROXeImcp2cztIiTVgWUn3Uk5h+wkckU2L4fxEMiIv8FrGsEtoYFN1d5yD
         P239A8P1GrJN8ZhkyOJ9yNFGZPH8ldevSO6GWMlRayaIgWtKfW5rqNzSHCQzu/xTcJxy
         X0ogxdyIBv3lSIS/2oIm9AsasOJLh51qh9R3k=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745921580; x=1746526380;
        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=Ri4wmQ14jFAaQdVruW8LmHQFglkscs4x372ajXNwYuk=;
        b=Pul3xI7d7Igo9GblNC7kK8EeNr53jNiPOQGz86mdCfbM4vMQVnUTdFLjBPddBylUbR
         X4x/M+t4OO/jJ8x7MyGAhw+P0AiXH7FVe+dgQUjkwwBaZ4yErUZ8FCMqxeDdXG6SpSHp
         43dEcwiJmChrENQplwcyciVTI9Ro6IlIVX5Q2paQxiK1hPmqcm7dgASf44sVdKhQrsMT
         IVQ0wcxLhq+sOL25TGXtwjq/FT+h0aC2OUWMJO3SLSKb0q6BZl9ZhWi4Mc2yWPcbTN+G
         /zAfZO9Jh7x2vPUVZiJ19lG1NYZqG9Jzji4V62KahUubZ502bvaW2SDz9+LG8iASRfft
         d5pw==
X-Gm-Message-State: AOJu0Ywh95CzOPOoCh5XaZ3fFbO+ZOyApt7dDJkA9hNdJDWaK6WlPWl3
	AC2kQ9DvsC0dvWLxt9rYE5uuKshgt5WF6B0GSIPcR4u3Y7XkgKVzuswhtCpEmIbTffJcNh1F9FP
	e
X-Gm-Gg: ASbGncsg+WXzKNPPBkbz1KwaWpTjjz/H+uPtNUku2LlQlCXSUUrxoANrlZVtSHzNTer
	0GKo0l70ys4CouB8iDhBZU3zjyCi4W+T6vRsE1N1Te+1KI8LR6arSKF26KB5N58nluHDNbn6FNi
	rEdRHxSDp29oB/6NQk1XN/Zjt45c/0XJ9S+m+ReE6cMP3H4IV5aVh5d5EkbRWlqQl5FrLozgO1w
	vVVjY4ygIRljp8Ju1sEieha1PcQA8LOrPEKJZKRJ1c0tGqWU6CmU0l+V6Y1BtHRdGS0+UOqlJ01
	FYwGh6l4rTH7dRwzoF8ayN34bTBOUeNEJfLzSFAy3pGNUA==
X-Google-Smtp-Source: AGHT+IHgXp+/R0LpuIdMsyNrEQcDMzkWjxDQlbrc35ABQreyke2WHfj270jhEweqbBy9adnfizgq9w==
X-Received: by 2002:a05:600c:1912:b0:43d:7588:6688 with SMTP id 5b1f17b1804b1-441ac857271mr29144405e9.12.1745921580280;
        Tue, 29 Apr 2025 03:13:00 -0700 (PDT)
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>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v4 1/4] xen/io: provide helpers for multi size MMIO accesses
Date: Tue, 29 Apr 2025 12:12:49 +0200
Message-ID: <20250429101252.50071-2-roger.pau@citrix.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <20250429101252.50071-1-roger.pau@citrix.com>
References: <20250429101252.50071-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Several handlers have the same necessity of reading or writing from or to
an MMIO region using 1, 2, 4 or 8 bytes accesses.  So far this has been
open-coded in the function itself.  Instead provide a new set of handlers
that encapsulate the accesses.

Since the added helpers are not architecture specific, introduce a new
generic io.h header.

No functional change intended.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
Changes since v3:
 - Rebase on top of Jan's fix to mmio_ro_emulated_write().
---
 xen/arch/x86/hvm/vmsi.c | 47 ++-------------------------
 xen/arch/x86/mm.c       | 32 ++++++-------------
 xen/drivers/vpci/msix.c | 47 ++-------------------------
 xen/include/xen/io.h    | 70 +++++++++++++++++++++++++++++++++++++++++
 4 files changed, 85 insertions(+), 111 deletions(-)
 create mode 100644 xen/include/xen/io.h

diff --git a/xen/arch/x86/hvm/vmsi.c b/xen/arch/x86/hvm/vmsi.c
index fd83abb929ec..61b89834d97d 100644
--- a/xen/arch/x86/hvm/vmsi.c
+++ b/xen/arch/x86/hvm/vmsi.c
@@ -24,6 +24,7 @@
  * Will be merged it with virtual IOAPIC logic, since most is the same
 */
 
+#include <xen/io.h>
 #include <xen/types.h>
 #include <xen/mm.h>
 #include <xen/xmalloc.h>
@@ -304,28 +305,7 @@ static void adjacent_read(
 
     hwaddr = fix_to_virt(fixmap_idx) + PAGE_OFFSET(address);
 
-    switch ( len )
-    {
-    case 1:
-        *pval = readb(hwaddr);
-        break;
-
-    case 2:
-        *pval = readw(hwaddr);
-        break;
-
-    case 4:
-        *pval = readl(hwaddr);
-        break;
-
-    case 8:
-        *pval = readq(hwaddr);
-        break;
-
-    default:
-        ASSERT_UNREACHABLE();
-        break;
-    }
+    *pval = read_mmio(hwaddr, len);
 }
 
 static void adjacent_write(
@@ -344,28 +324,7 @@ static void adjacent_write(
 
     hwaddr = fix_to_virt(fixmap_idx) + PAGE_OFFSET(address);
 
-    switch ( len )
-    {
-    case 1:
-        writeb(val, hwaddr);
-        break;
-
-    case 2:
-        writew(val, hwaddr);
-        break;
-
-    case 4:
-        writel(val, hwaddr);
-        break;
-
-    case 8:
-        writeq(val, hwaddr);
-        break;
-
-    default:
-        ASSERT_UNREACHABLE();
-        break;
-    }
+    write_mmio(hwaddr, val, len);
 }
 
 static int cf_check msixtbl_read(
diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
index ac5b51d17aca..732ca1366f33 100644
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -95,6 +95,7 @@
 #include <xen/guest_access.h>
 #include <xen/hypercall.h>
 #include <xen/init.h>
+#include <xen/io.h>
 #include <xen/iocap.h>
 #include <xen/ioreq.h>
 #include <xen/irq.h>
@@ -116,7 +117,6 @@
 #include <asm/flushtlb.h>
 #include <asm/guest.h>
 #include <asm/idt.h>
-#include <asm/io.h>
 #include <asm/io_apic.h>
 #include <asm/ldt.h>
 #include <asm/mem_sharing.h>
@@ -5102,7 +5102,7 @@ static void __iomem *subpage_mmio_map_page(
 static void subpage_mmio_write_emulate(
     mfn_t mfn,
     unsigned int offset,
-    const void *data,
+    unsigned long data,
     unsigned int len)
 {
     struct subpage_ro_range *entry;
@@ -5131,26 +5131,8 @@ static void subpage_mmio_write_emulate(
         return;
     }
 
-    addr += offset;
-    switch ( len )
-    {
-    case 1:
-        writeb(*(const uint8_t*)data, addr);
-        break;
-    case 2:
-        writew(*(const uint16_t*)data, addr);
-        break;
-    case 4:
-        writel(*(const uint32_t*)data, addr);
-        break;
-    case 8:
-        writeq(*(const uint64_t*)data, addr);
-        break;
-    default:
-        /* mmio_ro_emulated_write() already validated the size */
-        ASSERT_UNREACHABLE();
+    if ( !write_mmio(addr + offset, data, len) )
         goto write_ignored;
-    }
 }
 
 #ifdef CONFIG_HVM
@@ -5185,6 +5167,7 @@ int cf_check mmio_ro_emulated_write(
     struct x86_emulate_ctxt *ctxt)
 {
     struct mmio_ro_emulate_ctxt *mmio_ro_ctxt = ctxt->data;
+    unsigned long data = 0;
 
     /* Only allow naturally-aligned stores at the original %cr2 address. */
     if ( ((bytes | offset) & (bytes - 1)) || !bytes ||
@@ -5195,9 +5178,12 @@ int cf_check mmio_ro_emulated_write(
         return X86EMUL_UNHANDLEABLE;
     }
 
-    if ( bytes <= 8 )
+    if ( bytes <= sizeof(data) )
+    {
+        memcpy(&data, p_data, bytes);
         subpage_mmio_write_emulate(mmio_ro_ctxt->mfn, PAGE_OFFSET(offset),
-                                   p_data, bytes);
+                                   data, bytes);
+    }
     else if ( subpage_mmio_find_page(mmio_ro_ctxt->mfn) )
         gprintk(XENLOG_WARNING,
                 "unsupported %u-byte write to R/O MMIO 0x%"PRI_mfn"%03lx\n",
diff --git a/xen/drivers/vpci/msix.c b/xen/drivers/vpci/msix.c
index 3568f2a65183..74211301ba10 100644
--- a/xen/drivers/vpci/msix.c
+++ b/xen/drivers/vpci/msix.c
@@ -17,6 +17,7 @@
  * License along with this program; If not, see <http://www.gnu.org/licenses/>.
  */
 
+#include <xen/io.h>
 #include <xen/sched.h>
 #include <xen/vpci.h>
 
@@ -338,28 +339,7 @@ static int adjacent_read(const struct domain *d, const struct vpci_msix *msix,
         return X86EMUL_OKAY;
     }
 
-    switch ( len )
-    {
-    case 1:
-        *data = readb(mem + PAGE_OFFSET(addr));
-        break;
-
-    case 2:
-        *data = readw(mem + PAGE_OFFSET(addr));
-        break;
-
-    case 4:
-        *data = readl(mem + PAGE_OFFSET(addr));
-        break;
-
-    case 8:
-        *data = readq(mem + PAGE_OFFSET(addr));
-        break;
-
-    default:
-        ASSERT_UNREACHABLE();
-        break;
-    }
+    *data = read_mmio(mem + PAGE_OFFSET(addr), len);
     spin_unlock(&vpci->lock);
 
     return X86EMUL_OKAY;
@@ -487,28 +467,7 @@ static int adjacent_write(const struct domain *d, const struct vpci_msix *msix,
         return X86EMUL_OKAY;
     }
 
-    switch ( len )
-    {
-    case 1:
-        writeb(data, mem + PAGE_OFFSET(addr));
-        break;
-
-    case 2:
-        writew(data, mem + PAGE_OFFSET(addr));
-        break;
-
-    case 4:
-        writel(data, mem + PAGE_OFFSET(addr));
-        break;
-
-    case 8:
-        writeq(data, mem + PAGE_OFFSET(addr));
-        break;
-
-    default:
-        ASSERT_UNREACHABLE();
-        break;
-    }
+    write_mmio(mem + PAGE_OFFSET(addr), data, len);
     spin_unlock(&vpci->lock);
 
     return X86EMUL_OKAY;
diff --git a/xen/include/xen/io.h b/xen/include/xen/io.h
new file mode 100644
index 000000000000..164a20c5d7b5
--- /dev/null
+++ b/xen/include/xen/io.h
@@ -0,0 +1,70 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * IO related routines.
+ *
+ * Copyright (c) 2025 Cloud Software Group
+ */
+#ifndef XEN_IO_H
+#define XEN_IO_H
+
+#include <xen/bug.h>
+
+#include <asm/io.h>
+
+static inline unsigned long read_mmio(const volatile void __iomem *mem,
+                                      unsigned int size)
+{
+    switch ( size )
+    {
+    case 1:
+        return readb(mem);
+
+    case 2:
+        return readw(mem);
+
+    case 4:
+        return readl(mem);
+
+#ifdef CONFIG_64BIT
+    case 8:
+        return readq(mem);
+#endif
+
+    default:
+        ASSERT_UNREACHABLE();
+        return ~0UL;
+    }
+}
+
+static inline bool write_mmio(volatile void __iomem *mem, unsigned long data,
+                              unsigned int size)
+{
+    switch ( size )
+    {
+    case 1:
+        writeb(data, mem);
+        break;
+
+    case 2:
+        writew(data, mem);
+        break;
+
+    case 4:
+        writel(data, mem);
+        break;
+
+#ifdef CONFIG_64BIT
+    case 8:
+        writeq(data, mem);
+        break;
+#endif
+
+    default:
+        ASSERT_UNREACHABLE();
+        return false;
+    }
+
+    return true;
+}
+
+#endif /* XEN_IO_H */
-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Tue Apr 29 10:13:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 10:13:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.971783.1360189 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9hxZ-0003Fe-0R; Tue, 29 Apr 2025 10:13:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 971783.1360189; Tue, 29 Apr 2025 10:13: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 1u9hxY-0003FS-TZ; Tue, 29 Apr 2025 10:13:04 +0000
Received: by outflank-mailman (input) for mailman id 971783;
 Tue, 29 Apr 2025 10:13: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=b72w=XP=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u9hxX-0002lF-8Z
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 10:13:03 +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 88ed6266-24e2-11f0-9eb4-5ba50f476ded;
 Tue, 29 Apr 2025 12:13:02 +0200 (CEST)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-43cec5cd73bso28446945e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 29 Apr 2025 03:13:02 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 ffacd0b85a97d-3a073e5d52bsm13894300f8f.90.2025.04.29.03.13.00
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 29 Apr 2025 03:13:01 -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: 88ed6266-24e2-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745921582; x=1746526382; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=3qDnZhkRYsd1U3ruM3uE3iPm911quTZ0Y+raFmRmVYE=;
        b=Bp8+EC38jzQ/4RdQJMDGyx1VLYUHS+QM0SnwJ2QoA6pmvsDCF564kSHYxa/anbgMoR
         pSXOlu0YXrT6JHLwppenJT/dEA6EYbS4+lXzpMFxpuNLzYn5TTHtXV04lBWO+cV6x69i
         LOdoCVYowoMtaHrUGYkb7bOHihdtZw3U4jM5U=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745921582; x=1746526382;
        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=3qDnZhkRYsd1U3ruM3uE3iPm911quTZ0Y+raFmRmVYE=;
        b=Z2YPh/djuaRZvTa7QBhkKym8OI5sEPChkEyesMVvxBeVAFUURTgV0Jleps0b1EqZM1
         8GFrTMjZUdWwMgZjlUwS8lT1x6RdQwMBdPb3Z65RaClgHYdMwKIn0D8V0pzazkucidpv
         e5Ku8FHF7FsqqwhkAw0F0sXwDMp6HjYMpf64f6HHTaX3YQkMvyTo96AyShSFMeIh17Hn
         3XwRIOlyjjFUp96hNA8A/Jih0hbxWEkZDkRk8TtLCOXlnRY6Eyatz5YvLSlCmBpQ3i1P
         ii8fzA8XBZyzcZhspadnBDhHxxYEWj+d2jOY5n6oQWjxB4Z/DjcIxeLQ6yeqqODnCSk6
         gOHw==
X-Gm-Message-State: AOJu0YwF/5ApiVkHXQCcH0h7gCx1L6G7zR3yV7FuSUYzN5voQJydWzmB
	dGWpi7wxC75pbTt9ASaDtfIEVcZ1h04m9D3GXynTMjyLhTeoXpuk0czbyipwImp2VDIJvHLcAzg
	s
X-Gm-Gg: ASbGncuqME0IkX8jSEVX2AGwRRuOxCYVNIZO+YtNQMad/f2lIc7sHQY0TYa7wfDrJuo
	yKKzb6ooUwSC+zrwg4qbDPI7J79a20j3f76vyaBkP/MEItfZITsg/bNzpFRmR9P/RYLYd8pBDSu
	CrRH5mqS177GdwrlEFo5U5AHC+xuTeMB+FvwVMsXdAJ2WqZix4E0DEwjaWops1jXPTAPLCXZDi0
	Nt1R8UxvpVWhLU/xXcxd+bd5fUDlkcdU3WiVaPSOqFfvkkqGiUmD22RaZ7dFkYvbMD1HPMF5ZWE
	Ceh1jKCSlnCbwWJOUE1ioPwt23tv4VwDEzUMLE1xmCzGpcg508Ns0LOG
X-Google-Smtp-Source: AGHT+IGFy1rbgvQrefp2JREBWfAhk9rbMlRPVXbpV5Xb1x8PJwNWWUNxwZh9BGNQuUKMyL+AwR4qdw==
X-Received: by 2002:a05:6000:310d:b0:391:2f2f:818 with SMTP id ffacd0b85a97d-3a08ad282e0mr1675319f8f.9.1745921581806;
        Tue, 29 Apr 2025 03:13:01 -0700 (PDT)
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 v4 2/4] x86/hvm: fix handling of accesses to partial r/o MMIO pages
Date: Tue, 29 Apr 2025 12:12:50 +0200
Message-ID: <20250429101252.50071-3-roger.pau@citrix.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <20250429101252.50071-1-roger.pau@citrix.com>
References: <20250429101252.50071-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The current logic to handle accesses to MMIO pages partially read-only is
based on the (now removed) logic used to handle accesses to the r/o MMCFG
region(s) for PVH v1 dom0.  However that has issues when running on AMD
hardware, as in that case the guest linear address that triggered the fault
is not provided as part of the VM exit.  This caused
mmio_ro_emulated_write() to always fail before calling
subpage_mmio_write_emulate() when running on AMD and called from an HVM
context.

Take a different approach and convert the handling of partial read-only
MMIO page accesses into an HVM MMIO ops handler, as that's the more natural
way to handle this kind of emulation for HVM domains.

This allows getting rid of hvm_emulate_one_mmio() and it's single call site
in hvm_hap_nested_page_fault().  As part of the fix r/o MMIO accesses are
now handled by handle_mmio_with_translation(), re-using the same logic that
was used for other read-only types part of p2m_is_discard_write().  The
usage of emulation for faulting p2m_mmio_direct types is limited to
addresses in the r/o MMIO range. The page present check is dropped as type
p2m_mmio_direct must have the present bit set in the PTE.

Note a small adjustment is needed to the `pf-fixup` dom0 PVH logic: avoid
attempting to fixup faults resulting from write accesses to read-only MMIO
regions, as handling of those accesses is now done by handle_mmio().

Fixes: 33c19df9a5a0 ('x86/PCI: intercept accesses to RO MMIO from dom0s in HVM containers')
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
Changes since v3:
 - Fix usage of addr vs gfn.
 - Fix order of checks in hvmemul_do_io().

Changes since v2:
 - Attempt to fixup read access to r/o MMIO regions for dom0 PVH.
 - Use PFN_DOWN() with get_gfn_query().
 - Reject unaligned accesses.
 - Add comment about the need to handle reads.

Changes since v1:
 - Introduce hvm/mmio.c to place the r/o MMIO handlers.
 - Add comment about pf-fixup and r/o MMIO range checking.
 - Expand commit message about dropping the PTE present check and usage of
   the emulator.
 - Return X86EMUL_OKAY in the read handler if the MMIO region is not found.
 - Check the faulting address is in the mmio_ro_ranges before sending for
   emulation.
---
 xen/arch/x86/hvm/Makefile              |   1 +
 xen/arch/x86/hvm/emulate.c             |  54 ++---------
 xen/arch/x86/hvm/hvm.c                 |  17 ++--
 xen/arch/x86/hvm/mmio.c                | 125 +++++++++++++++++++++++++
 xen/arch/x86/include/asm/hvm/emulate.h |   1 -
 xen/arch/x86/include/asm/hvm/io.h      |   3 +
 xen/arch/x86/include/asm/mm.h          |  12 +++
 xen/arch/x86/mm.c                      |  37 +-------
 8 files changed, 160 insertions(+), 90 deletions(-)
 create mode 100644 xen/arch/x86/hvm/mmio.c

diff --git a/xen/arch/x86/hvm/Makefile b/xen/arch/x86/hvm/Makefile
index 4c1fa5c6c2bf..6ec2c8f2db56 100644
--- a/xen/arch/x86/hvm/Makefile
+++ b/xen/arch/x86/hvm/Makefile
@@ -15,6 +15,7 @@ obj-y += intercept.o
 obj-y += io.o
 obj-y += ioreq.o
 obj-y += irq.o
+obj-y += mmio.o
 obj-y += monitor.o
 obj-y += mtrr.o
 obj-y += nestedhvm.o
diff --git a/xen/arch/x86/hvm/emulate.c b/xen/arch/x86/hvm/emulate.c
index 79c180b408ac..91f004d23394 100644
--- a/xen/arch/x86/hvm/emulate.c
+++ b/xen/arch/x86/hvm/emulate.c
@@ -370,7 +370,15 @@ static int hvmemul_do_io(
         /* If there is no suitable backing DM, just ignore accesses */
         if ( !s )
         {
-            if ( is_mmio && is_hardware_domain(currd) )
+            if ( is_mmio && is_hardware_domain(currd) &&
+                 /*
+                  * Do not attempt to fixup write accesses to r/o MMIO regions,
+                  * they are expected to be terminated by the null handler
+                  * below.
+                  */
+                 (dir == IOREQ_READ ||
+                  !rangeset_contains_singleton(mmio_ro_ranges,
+                                               PFN_DOWN(addr))) )
             {
                 /*
                  * PVH dom0 is likely missing MMIO mappings on the p2m, due to
@@ -2859,50 +2867,6 @@ int hvm_emulate_one(
     return _hvm_emulate_one(hvmemul_ctxt, &hvm_emulate_ops, completion);
 }
 
-int hvm_emulate_one_mmio(unsigned long mfn, unsigned long gla)
-{
-    static const struct x86_emulate_ops hvm_ro_emulate_ops_mmio = {
-        .read       = x86emul_unhandleable_rw,
-        .insn_fetch = hvmemul_insn_fetch,
-        .write      = mmio_ro_emulated_write,
-        .validate   = hvmemul_validate,
-    };
-    struct mmio_ro_emulate_ctxt mmio_ro_ctxt = { .cr2 = gla, .mfn = _mfn(mfn) };
-    struct hvm_emulate_ctxt ctxt;
-    unsigned int seg, bdf;
-    int rc;
-
-    if ( pci_ro_mmcfg_decode(mfn, &seg, &bdf) )
-    {
-        /* Should be always handled by vPCI for PVH dom0. */
-        gdprintk(XENLOG_ERR, "unhandled MMCFG access for %pp\n",
-                 &PCI_SBDF(seg, bdf));
-        ASSERT_UNREACHABLE();
-        return X86EMUL_UNHANDLEABLE;
-    }
-
-    hvm_emulate_init_once(&ctxt, x86_insn_is_mem_write,
-                          guest_cpu_user_regs());
-    ctxt.ctxt.data = &mmio_ro_ctxt;
-
-    switch ( rc = _hvm_emulate_one(&ctxt, &hvm_ro_emulate_ops_mmio,
-                                   VIO_no_completion) )
-    {
-    case X86EMUL_UNHANDLEABLE:
-    case X86EMUL_UNIMPLEMENTED:
-        hvm_dump_emulation_state(XENLOG_G_WARNING, "r/o MMIO", &ctxt, rc);
-        break;
-    case X86EMUL_EXCEPTION:
-        hvm_inject_event(&ctxt.ctxt.event);
-        /* fallthrough */
-    default:
-        hvm_emulate_writeback(&ctxt);
-        break;
-    }
-
-    return rc;
-}
-
 void hvm_emulate_one_vm_event(enum emul_kind kind, unsigned int trapnr,
     unsigned int errcode)
 {
diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index 6f1174c5127e..6b998387e3d8 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -8,6 +8,7 @@
  */
 
 #include <xen/init.h>
+#include <xen/io.h>
 #include <xen/ioreq.h>
 #include <xen/lib.h>
 #include <xen/trace.h>
@@ -35,7 +36,6 @@
 #include <asm/current.h>
 #include <asm/debugreg.h>
 #include <asm/e820.h>
-#include <asm/io.h>
 #include <asm/regs.h>
 #include <asm/cpufeature.h>
 #include <asm/processor.h>
@@ -692,6 +692,8 @@ int hvm_domain_initialise(struct domain *d,
 
     register_portio_handler(d, XEN_HVM_DEBUGCONS_IOPORT, 1, hvm_print_line);
 
+    register_subpage_ro_handler(d);
+
     if ( hvm_tsc_scaling_supported )
         d->arch.hvm.tsc_scaling_ratio = hvm_default_tsc_scaling_ratio;
 
@@ -1981,7 +1983,10 @@ int hvm_hap_nested_page_fault(paddr_t gpa, unsigned long gla,
      */
     if ( (p2mt == p2m_mmio_dm) ||
          (npfec.write_access &&
-          (p2m_is_discard_write(p2mt) || (p2mt == p2m_ioreq_server))) )
+          (p2m_is_discard_write(p2mt) || (p2mt == p2m_ioreq_server) ||
+           /* MMIO entries can be r/o if the target mfn is in mmio_ro_ranges. */
+           (p2mt == p2m_mmio_direct &&
+            rangeset_contains_singleton(mmio_ro_ranges, mfn_x(mfn))))) )
     {
         if ( !handle_mmio_with_translation(gla, gfn, npfec) )
             hvm_inject_hw_exception(X86_EXC_GP, 0);
@@ -2033,14 +2038,6 @@ int hvm_hap_nested_page_fault(paddr_t gpa, unsigned long gla,
         goto out_put_gfn;
     }
 
-    if ( (p2mt == p2m_mmio_direct) && npfec.write_access && npfec.present &&
-         (is_hardware_domain(currd) || subpage_mmio_write_accept(mfn, gla)) &&
-         (hvm_emulate_one_mmio(mfn_x(mfn), gla) == X86EMUL_OKAY) )
-    {
-        rc = 1;
-        goto out_put_gfn;
-    }
-
     /* If we fell through, the vcpu will retry now that access restrictions have
      * been removed. It may fault again if the p2m entry type still requires so.
      * Otherwise, this is an error condition. */
diff --git a/xen/arch/x86/hvm/mmio.c b/xen/arch/x86/hvm/mmio.c
new file mode 100644
index 000000000000..32a520caac12
--- /dev/null
+++ b/xen/arch/x86/hvm/mmio.c
@@ -0,0 +1,125 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * MMIO related routines.
+ *
+ * Copyright (c) 2025 Cloud Software Group
+ */
+
+#include <xen/io.h>
+#include <xen/mm.h>
+
+#include <asm/p2m.h>
+
+static int cf_check subpage_mmio_accept(struct vcpu *v, unsigned long addr)
+{
+    p2m_type_t t;
+    mfn_t mfn = get_gfn_query_unlocked(v->domain, PFN_DOWN(addr), &t);
+
+    return !mfn_eq(mfn, INVALID_MFN) && t == p2m_mmio_direct &&
+           subpage_mmio_find_page(mfn);
+}
+
+/*
+ * The guest has read access to those regions, and consequently read accesses
+ * shouldn't fault.  However read-modify-write operations may take this path,
+ * so handling of reads is necessary.
+ */
+static int cf_check subpage_mmio_read(
+    struct vcpu *v, unsigned long addr, unsigned int len, unsigned long *data)
+{
+    struct domain *d = v->domain;
+    unsigned long gfn = PFN_DOWN(addr);
+    p2m_type_t t;
+    mfn_t mfn;
+    struct subpage_ro_range *entry;
+    volatile void __iomem *mem;
+
+    *data = ~0UL;
+
+    if ( !len || len > 8 || len & (len - 1) || !IS_ALIGNED(addr, len) )
+    {
+        gprintk(XENLOG_ERR,
+                "ignoring unaligned read to r/o MMIO subpage %#lx size %u\n",
+                addr, len);
+        return X86EMUL_OKAY;
+    }
+
+    mfn = get_gfn_query(d, gfn, &t);
+    if ( mfn_eq(mfn, INVALID_MFN) || t != p2m_mmio_direct )
+    {
+        put_gfn(d, gfn);
+        return X86EMUL_RETRY;
+    }
+
+    entry = subpage_mmio_find_page(mfn);
+    if ( !entry )
+    {
+        put_gfn(d, gfn);
+        return X86EMUL_OKAY;
+    }
+
+    mem = subpage_mmio_map_page(entry);
+    if ( !mem )
+    {
+        put_gfn(d, gfn);
+        gprintk(XENLOG_ERR,
+                "Failed to map page for MMIO read at %#lx -> %#lx\n",
+                addr, mfn_to_maddr(mfn) + PAGE_OFFSET(addr));
+        return X86EMUL_OKAY;
+    }
+
+    *data = read_mmio(mem + PAGE_OFFSET(addr), len);
+
+    put_gfn(d, gfn);
+    return X86EMUL_OKAY;
+}
+
+static int cf_check subpage_mmio_write(
+    struct vcpu *v, unsigned long addr, unsigned int len, unsigned long data)
+{
+    struct domain *d = v->domain;
+    unsigned long gfn = PFN_DOWN(addr);
+    p2m_type_t t;
+    mfn_t mfn;
+
+    if ( !len || len > 8 || len & (len - 1) || !IS_ALIGNED(addr, len) )
+    {
+        gprintk(XENLOG_ERR,
+                "ignoring unaligned write to r/o MMIO subpage %#lx size %u\n",
+                addr, len);
+        return X86EMUL_OKAY;
+    }
+
+    mfn = get_gfn_query(d, gfn, &t);
+    if ( mfn_eq(mfn, INVALID_MFN) || t != p2m_mmio_direct )
+    {
+        put_gfn(d, gfn);
+        return X86EMUL_RETRY;
+    }
+
+    subpage_mmio_write_emulate(mfn, PAGE_OFFSET(addr), data, len);
+
+    put_gfn(d, gfn);
+    return X86EMUL_OKAY;
+}
+
+void register_subpage_ro_handler(struct domain *d)
+{
+    static const struct hvm_mmio_ops subpage_mmio_ops = {
+        .check = subpage_mmio_accept,
+        .read = subpage_mmio_read,
+        .write = subpage_mmio_write,
+    };
+
+    register_mmio_handler(d, &subpage_mmio_ops);
+}
+
+/*
+ * 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/hvm/emulate.h b/xen/arch/x86/include/asm/hvm/emulate.h
index c7a2d2a5be4e..178ac32e151f 100644
--- a/xen/arch/x86/include/asm/hvm/emulate.h
+++ b/xen/arch/x86/include/asm/hvm/emulate.h
@@ -86,7 +86,6 @@ void hvmemul_cancel(struct vcpu *v);
 struct segment_register *hvmemul_get_seg_reg(
     enum x86_segment seg,
     struct hvm_emulate_ctxt *hvmemul_ctxt);
-int hvm_emulate_one_mmio(unsigned long mfn, unsigned long gla);
 
 static inline bool handle_mmio(void)
 {
diff --git a/xen/arch/x86/include/asm/hvm/io.h b/xen/arch/x86/include/asm/hvm/io.h
index 565bad300d20..c12f099a037c 100644
--- a/xen/arch/x86/include/asm/hvm/io.h
+++ b/xen/arch/x86/include/asm/hvm/io.h
@@ -135,6 +135,9 @@ void destroy_vpci_mmcfg(struct domain *d);
 /* Remove MMCFG regions from a domain ->iomem_caps. */
 int vpci_mmcfg_deny_access(struct domain *d);
 
+/* r/o MMIO subpage access handler. */
+void register_subpage_ro_handler(struct domain *d);
+
 #endif /* __ASM_X86_HVM_IO_H__ */
 
 
diff --git a/xen/arch/x86/include/asm/mm.h b/xen/arch/x86/include/asm/mm.h
index a1bc8cc27451..c2e9ef6e5023 100644
--- a/xen/arch/x86/include/asm/mm.h
+++ b/xen/arch/x86/include/asm/mm.h
@@ -554,6 +554,18 @@ int cf_check mmio_ro_emulated_write(
     enum x86_segment seg, unsigned long offset, void *p_data,
     unsigned int bytes, struct x86_emulate_ctxt *ctxt);
 
+/* r/o MMIO subpage access handlers. */
+struct subpage_ro_range {
+    struct list_head list;
+    mfn_t mfn;
+    void __iomem *mapped;
+    DECLARE_BITMAP(ro_elems, PAGE_SIZE / MMIO_RO_SUBPAGE_GRAN);
+};
+struct subpage_ro_range *subpage_mmio_find_page(mfn_t mfn);
+void __iomem *subpage_mmio_map_page(struct subpage_ro_range *entry);
+void subpage_mmio_write_emulate(
+    mfn_t mfn, unsigned int offset, unsigned long data, unsigned int len);
+
 int audit_adjust_pgtables(struct domain *d, int dir, int noisy);
 
 extern int pagefault_by_memadd(unsigned long addr, struct cpu_user_regs *regs);
diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
index 732ca1366f33..7ead2db3cb72 100644
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -157,13 +157,6 @@ struct rangeset *__read_mostly mmio_ro_ranges;
 static uint32_t __ro_after_init base_disallow_mask;
 
 /* Handling sub-page read-only MMIO regions */
-struct subpage_ro_range {
-    struct list_head list;
-    mfn_t mfn;
-    void __iomem *mapped;
-    DECLARE_BITMAP(ro_elems, PAGE_SIZE / MMIO_RO_SUBPAGE_GRAN);
-};
-
 static LIST_HEAD_RO_AFTER_INIT(subpage_ro_ranges);
 static DEFINE_SPINLOCK(subpage_ro_lock);
 
@@ -4929,7 +4922,7 @@ long arch_memory_op(unsigned long cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
     return rc;
 }
 
-static struct subpage_ro_range *subpage_mmio_find_page(mfn_t mfn)
+struct subpage_ro_range *subpage_mmio_find_page(mfn_t mfn)
 {
     struct subpage_ro_range *entry;
 
@@ -5074,7 +5067,7 @@ int __init subpage_mmio_ro_add(
     return rc;
 }
 
-static void __iomem *subpage_mmio_map_page(
+void __iomem *subpage_mmio_map_page(
     struct subpage_ro_range *entry)
 {
     void __iomem *mapped_page;
@@ -5099,7 +5092,7 @@ static void __iomem *subpage_mmio_map_page(
     return entry->mapped;
 }
 
-static void subpage_mmio_write_emulate(
+void subpage_mmio_write_emulate(
     mfn_t mfn,
     unsigned int offset,
     unsigned long data,
@@ -5135,30 +5128,6 @@ static void subpage_mmio_write_emulate(
         goto write_ignored;
 }
 
-#ifdef CONFIG_HVM
-bool subpage_mmio_write_accept(mfn_t mfn, unsigned long gla)
-{
-    unsigned int offset = PAGE_OFFSET(gla);
-    const struct subpage_ro_range *entry;
-
-    entry = subpage_mmio_find_page(mfn);
-    if ( !entry )
-        return false;
-
-    if ( !test_bit(offset / MMIO_RO_SUBPAGE_GRAN, entry->ro_elems) )
-    {
-        /*
-         * We don't know the write size at this point yet, so it could be
-         * an unaligned write, but accept it here anyway and deal with it
-         * later.
-         */
-        return true;
-    }
-
-    return false;
-}
-#endif
-
 int cf_check mmio_ro_emulated_write(
     enum x86_segment seg,
     unsigned long offset,
-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Tue Apr 29 10:13:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 10:13:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.971785.1360205 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9hxa-0003Vr-JD; Tue, 29 Apr 2025 10:13:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 971785.1360205; Tue, 29 Apr 2025 10: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 1u9hxa-0003VX-As; Tue, 29 Apr 2025 10:13:06 +0000
Received: by outflank-mailman (input) for mailman id 971785;
 Tue, 29 Apr 2025 10:13: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=b72w=XP=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u9hxY-0002lF-Fc
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 10:13:04 +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 89953c43-24e2-11f0-9eb4-5ba50f476ded;
 Tue, 29 Apr 2025 12:13:04 +0200 (CEST)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-43ede096d73so39259445e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 29 Apr 2025 03:13:04 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 5b1f17b1804b1-440a53108f2sm150572995e9.19.2025.04.29.03.13.02
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 29 Apr 2025 03:13: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: 89953c43-24e2-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745921583; x=1746526383; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=7CJ1GLjFyCNm9vFKPLq5u51w/wTBpAsdbN9G66Tv51c=;
        b=SQyP7R89jWcMAVcIkv/JqhTjjRpjrbgbhUYoBvOsdwdD3Wh6OiQaMu/Hm8eLpjtkWk
         N6rMt7bwv0Wkftn2YPZ/B3IClRYJZX6F78PAKwo8I4DHkWGxhC4GxRJfaOKGJIfkb3bQ
         qErjOZOGksI7wlijJjyBpuwrJzQJXR3JIi/TI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745921583; x=1746526383;
        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=7CJ1GLjFyCNm9vFKPLq5u51w/wTBpAsdbN9G66Tv51c=;
        b=B7pukYyTtyCrjEKRab7UwYziQW/ynzCd8vrPP4UtTO0G0juqCXjUuieJSR7L+ywie2
         9oVEbpOiGJW+JCAsZ4F4mGuf3w4faE0f6zx36DZT22U1jtcTNNJ/HIuFJCxubQJTOaeG
         SnLq+ZeDX1ar3Q5xAxzs29DWUmU7tCazTwyXzsYreOz8KXnsYXERvt72jPjC+H2WcogP
         h28yiyvWlkJ2BeegOnJfzjda7xG+mVKDQTslLz6qgSNv4GK60vyTN7nYUxijQRZa3q98
         CaNJqnk1PkY18J7lJfkIiSM3hBRdtP9yJdv7EwTP6eBC9v6vcMqIy9XMhbvopxfU2/yI
         f/Og==
X-Gm-Message-State: AOJu0YwCq66bQFvgfRdHVRrFI+e2QeJXgSpSuc9ElBXNyTU9taE7qp4p
	Bg6iKVp5I76y3818kVeZhIs7oGmVge5wLFbxhcfyS0KSwu1kkf+aN4qxuyplD0+FesNH/sm8Z3V
	N
X-Gm-Gg: ASbGncsuTXC/Fa7srhN60k7Ezxk/0WNZzFMtXh98cpZ2zWK5nTKPO4Q8Ntcs+xQbWEv
	Njsmzn3FSI9WOO2tqGWXz5M8qQbXBzekn7VedDNBV5FSQGbyqXKvY4D4vxqD/kL6/8sBqM72PgU
	RQVYw7RNwAJpHv5HxOpVCuw4moPzeI02JKCUsCPWhV1ADfbB7/PtefXyVtZhbyqftiNly2rgrPK
	QpxMiZnmTEbMR2BhQQn4Eqf0BRLzA4CPRq/kT6gAVHEhOlGyESnfJPl+kh56NhyIcv208bRoOwC
	2W5WzNuF2vzfS52iDwe/JT6BndwOdj/7RDn+gNQKeNb9YQ==
X-Google-Smtp-Source: AGHT+IEOJ/wfcryri+UbOqfRiNzGC0pauT7wSOakZOHefUanQmRnJPgvW2y8PUSCV9XJ1ox1hpvLqg==
X-Received: by 2002:a05:600c:4ec8:b0:43d:36c:f24 with SMTP id 5b1f17b1804b1-441ac858518mr27540835e9.13.1745921582977;
        Tue, 29 Apr 2025 03:13:02 -0700 (PDT)
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 v4 3/4] x86/hvm: only register the r/o subpage ops when needed
Date: Tue, 29 Apr 2025 12:12:51 +0200
Message-ID: <20250429101252.50071-4-roger.pau@citrix.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <20250429101252.50071-1-roger.pau@citrix.com>
References: <20250429101252.50071-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

MMIO operation handlers can be expensive to process, hence attempt to
register only those that will be needed by the domain.

Subpage r/o MMIO regions are added exclusively at boot, further limit their
addition to strictly before the initial domain gets created, so by the time
initial domain creation happens Xen knows whether subpage is required or
not.  This allows only registering the MMIO handler when there are
subpage regions to handle.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
---
Could possibly be part of the previous patch, but strictly speaking is an
improvement, as even before the previous patch subpage r/o was always
called even when no subpage regions are registered.
---
 xen/arch/x86/hvm/hvm.c        |  3 ++-
 xen/arch/x86/include/asm/mm.h |  1 +
 xen/arch/x86/mm.c             | 16 ++++++++++++++++
 3 files changed, 19 insertions(+), 1 deletion(-)

diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index 6b998387e3d8..4cb2e13046d1 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -692,7 +692,8 @@ int hvm_domain_initialise(struct domain *d,
 
     register_portio_handler(d, XEN_HVM_DEBUGCONS_IOPORT, 1, hvm_print_line);
 
-    register_subpage_ro_handler(d);
+    if ( subpage_ro_active() )
+        register_subpage_ro_handler(d);
 
     if ( hvm_tsc_scaling_supported )
         d->arch.hvm.tsc_scaling_ratio = hvm_default_tsc_scaling_ratio;
diff --git a/xen/arch/x86/include/asm/mm.h b/xen/arch/x86/include/asm/mm.h
index c2e9ef6e5023..aeb8ebcf2d56 100644
--- a/xen/arch/x86/include/asm/mm.h
+++ b/xen/arch/x86/include/asm/mm.h
@@ -561,6 +561,7 @@ struct subpage_ro_range {
     void __iomem *mapped;
     DECLARE_BITMAP(ro_elems, PAGE_SIZE / MMIO_RO_SUBPAGE_GRAN);
 };
+bool subpage_ro_active(void);
 struct subpage_ro_range *subpage_mmio_find_page(mfn_t mfn);
 void __iomem *subpage_mmio_map_page(struct subpage_ro_range *entry);
 void subpage_mmio_write_emulate(
diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
index 7ead2db3cb72..6697984507bf 100644
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -4922,6 +4922,11 @@ long arch_memory_op(unsigned long cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
     return rc;
 }
 
+bool subpage_ro_active(void)
+{
+    return !list_empty(&subpage_ro_ranges);
+}
+
 struct subpage_ro_range *subpage_mmio_find_page(mfn_t mfn)
 {
     struct subpage_ro_range *entry;
@@ -5011,6 +5016,17 @@ int __init subpage_mmio_ro_add(
          !IS_ALIGNED(size, MMIO_RO_SUBPAGE_GRAN) )
         return -EINVAL;
 
+    /*
+     * Force all r/o subregions to be registered before initial domain
+     * creation, so that the emulation handlers can be added only when there
+     * are pages registered.
+     */
+    if ( system_state >= SYS_STATE_smp_boot )
+    {
+        ASSERT_UNREACHABLE();
+        return -EILSEQ;
+    }
+
     if ( !size )
         return 0;
 
-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Tue Apr 29 10:13:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 10:13:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.971786.1360209 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9hxa-0003dH-W5; Tue, 29 Apr 2025 10:13:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 971786.1360209; Tue, 29 Apr 2025 10: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 1u9hxa-0003b9-R9; Tue, 29 Apr 2025 10:13:06 +0000
Received: by outflank-mailman (input) for mailman id 971786;
 Tue, 29 Apr 2025 10:13: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=b72w=XP=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u9hxZ-0002lF-Gm
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 10:13:05 +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 8a5280d6-24e2-11f0-9eb4-5ba50f476ded;
 Tue, 29 Apr 2025 12:13:05 +0200 (CEST)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-43d04dc73b7so51827965e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 29 Apr 2025 03:13:05 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 5b1f17b1804b1-440a5369cc1sm149831235e9.32.2025.04.29.03.13.03
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 29 Apr 2025 03: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: 8a5280d6-24e2-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745921584; x=1746526384; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=4j1Fs93O6tjqerfgJEMn6A5AQPD2o+Vigwy9v3Ww7I8=;
        b=gJEmhmKeLLhGMa+0s45tCYde3oHenqR2jSFAOuxOem26R6EH8Wi0Ldl7qlJwh7WmqT
         zsc8QagnSXDhzMT5+f3NeuYGPQltnnleflLprWtoPxpCAo7mM0klfPakeMBfvcgqIW2g
         EEDnkUtfQdJ3w2pWqFfGs7OspQOCHjWzTiKq4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745921584; x=1746526384;
        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=4j1Fs93O6tjqerfgJEMn6A5AQPD2o+Vigwy9v3Ww7I8=;
        b=wHfpUtw/pGcBJQF6UhJPKFDGVWyvN3OCcDg0YTpIJno+ZgM2sOeU2psJsla9HwtNSf
         4kjpne+Mz36BOiYa3kXrbXCigm8+7GUkR9IfaYOoJB0vrfrPUZF/BCTGSD3Fu+S3qU9Y
         Plq/4cx+Ut0V2+DERLALNUXdXW/UEG4q9ycUEwiYQEd0RkooVkCn0u9Kt85csQex5RYD
         uyb3M8WYW6+NNEhBU27M6Rab/BTUMH/952Dg8mzpqADq9cBGCvPnBC43ZPhKne5jDL2F
         AouYmiZHKffO7vLga2DlT4IVe38aRcp67TlARHlVa44UQSGvN+B219akUiWfchndSQ1J
         nCwg==
X-Gm-Message-State: AOJu0YwomaHhTPbPZxM2GjLyMO7EmUD6YT/PWlLsgKRIZc94HcK1bm/b
	L86m5w9BjY8fbYH4ArzJ3QmxDGYYmACeIv39WIPO0NVGyFhgIjWPFpYKZzllWc7Knjm39n+DYkJ
	E
X-Gm-Gg: ASbGncuKXoAEyFu5C5OFyRI2zGbQVV8qGUA9a2vasLtfApTcdhZgjpP6Du93b5lXTxe
	k+0sa7tV1DFwih6dsH4hTTbn6wbGBVJo6tQMuTdSbqhVm9nz6FgLu4D6IQnt4QVifPZAejywubY
	kPJVL2mkIESlREnkSqQvR/pjVqJrPj3HZmmwoaoPcgvDmuTUxYhoML5QuoVal5C748NjVMn8uDG
	uQV8yJVbyW6U/0SycOGAttVBoPINsPKGQWaRrFk1tkD8S1kORClowGg+rYjRdekSx9FFXK6kNIf
	3qSCqMJiM8ZPjutxly4FDeasonn6ZI3ip86WhY8rl8kOYnoBHkViXAaJ
X-Google-Smtp-Source: AGHT+IH9EpLHSMnxzvfs7gUApSUQ4BoJHuVuCGeqO6Q3MSGTP5KFGG3OIRWOMVxoCBH7u9boNgFPLg==
X-Received: by 2002:a05:600c:1d1d:b0:43b:ce3c:19d0 with SMTP id 5b1f17b1804b1-441ac892162mr23054155e9.29.1745921584208;
        Tue, 29 Apr 2025 03:13:04 -0700 (PDT)
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 v4 4/4] x86/mm: move mmio_ro_emulated_write() to PV only file
Date: Tue, 29 Apr 2025 12:12:52 +0200
Message-ID: <20250429101252.50071-5-roger.pau@citrix.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <20250429101252.50071-1-roger.pau@citrix.com>
References: <20250429101252.50071-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

mmio_ro_emulated_write() is only used in pv/ro-page-fault.c, move the
function to that file and make it static.

No functional change intended.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
---
 xen/arch/x86/include/asm/mm.h   | 12 ----------
 xen/arch/x86/mm.c               | 33 --------------------------
 xen/arch/x86/pv/ro-page-fault.c | 41 +++++++++++++++++++++++++++++++++
 3 files changed, 41 insertions(+), 45 deletions(-)

diff --git a/xen/arch/x86/include/asm/mm.h b/xen/arch/x86/include/asm/mm.h
index aeb8ebcf2d56..2665daa6f74f 100644
--- a/xen/arch/x86/include/asm/mm.h
+++ b/xen/arch/x86/include/asm/mm.h
@@ -542,18 +542,6 @@ void memguard_unguard_stack(void *p);
 int subpage_mmio_ro_add(paddr_t start, size_t size);
 bool subpage_mmio_write_accept(mfn_t mfn, unsigned long gla);
 
-struct mmio_ro_emulate_ctxt {
-        unsigned long cr2;
-        /* Used only for mmcfg case */
-        unsigned int seg, bdf;
-        /* Used only for non-mmcfg case */
-        mfn_t mfn;
-};
-
-int cf_check mmio_ro_emulated_write(
-    enum x86_segment seg, unsigned long offset, void *p_data,
-    unsigned int bytes, struct x86_emulate_ctxt *ctxt);
-
 /* r/o MMIO subpage access handlers. */
 struct subpage_ro_range {
     struct list_head list;
diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
index 6697984507bf..9ac855f998dc 100644
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -5144,39 +5144,6 @@ void subpage_mmio_write_emulate(
         goto write_ignored;
 }
 
-int cf_check mmio_ro_emulated_write(
-    enum x86_segment seg,
-    unsigned long offset,
-    void *p_data,
-    unsigned int bytes,
-    struct x86_emulate_ctxt *ctxt)
-{
-    struct mmio_ro_emulate_ctxt *mmio_ro_ctxt = ctxt->data;
-    unsigned long data = 0;
-
-    /* Only allow naturally-aligned stores at the original %cr2 address. */
-    if ( ((bytes | offset) & (bytes - 1)) || !bytes ||
-         offset != mmio_ro_ctxt->cr2 )
-    {
-        gdprintk(XENLOG_WARNING, "bad access (cr2=%lx, addr=%lx, bytes=%u)\n",
-                mmio_ro_ctxt->cr2, offset, bytes);
-        return X86EMUL_UNHANDLEABLE;
-    }
-
-    if ( bytes <= sizeof(data) )
-    {
-        memcpy(&data, p_data, bytes);
-        subpage_mmio_write_emulate(mmio_ro_ctxt->mfn, PAGE_OFFSET(offset),
-                                   data, bytes);
-    }
-    else if ( subpage_mmio_find_page(mmio_ro_ctxt->mfn) )
-        gprintk(XENLOG_WARNING,
-                "unsupported %u-byte write to R/O MMIO 0x%"PRI_mfn"%03lx\n",
-                bytes, mfn_x(mmio_ro_ctxt->mfn), PAGE_OFFSET(offset));
-
-    return X86EMUL_OKAY;
-}
-
 /*
  * For these PTE APIs, the caller must follow the alloc-map-unmap-free
  * lifecycle, which means explicitly mapping the PTE pages before accessing
diff --git a/xen/arch/x86/pv/ro-page-fault.c b/xen/arch/x86/pv/ro-page-fault.c
index 11b01c479e43..5ae77080772d 100644
--- a/xen/arch/x86/pv/ro-page-fault.c
+++ b/xen/arch/x86/pv/ro-page-fault.c
@@ -298,6 +298,14 @@ static int ptwr_do_page_fault(struct x86_emulate_ctxt *ctxt,
  * fault handling for read-only MMIO pages
  */
 
+struct mmio_ro_emulate_ctxt {
+    unsigned long cr2;
+    /* Used only for mmcfg case */
+    unsigned int seg, bdf;
+    /* Used only for non-mmcfg case */
+    mfn_t mfn;
+};
+
 static int cf_check mmcfg_intercept_write(
     enum x86_segment seg,
     unsigned long offset,
@@ -329,6 +337,39 @@ static int cf_check mmcfg_intercept_write(
     return X86EMUL_OKAY;
 }
 
+int cf_check mmio_ro_emulated_write(
+    enum x86_segment seg,
+    unsigned long offset,
+    void *p_data,
+    unsigned int bytes,
+    struct x86_emulate_ctxt *ctxt)
+{
+    struct mmio_ro_emulate_ctxt *mmio_ro_ctxt = ctxt->data;
+    unsigned long data = 0;
+
+    /* Only allow naturally-aligned stores at the original %cr2 address. */
+    if ( ((bytes | offset) & (bytes - 1)) || !bytes ||
+         offset != mmio_ro_ctxt->cr2 )
+    {
+        gdprintk(XENLOG_WARNING, "bad access (cr2=%lx, addr=%lx, bytes=%u)\n",
+                mmio_ro_ctxt->cr2, offset, bytes);
+        return X86EMUL_UNHANDLEABLE;
+    }
+
+    if ( bytes <= sizeof(data) )
+    {
+        memcpy(&data, p_data, bytes);
+        subpage_mmio_write_emulate(mmio_ro_ctxt->mfn, PAGE_OFFSET(offset),
+                                   data, bytes);
+    }
+    else if ( subpage_mmio_find_page(mmio_ro_ctxt->mfn) )
+        gprintk(XENLOG_WARNING,
+                "unsupported %u-byte write to R/O MMIO 0x%"PRI_mfn"%03lx\n",
+                bytes, mfn_x(mmio_ro_ctxt->mfn), PAGE_OFFSET(offset));
+
+    return X86EMUL_OKAY;
+}
+
 static const struct x86_emulate_ops mmio_ro_emulate_ops = {
     .read       = x86emul_unhandleable_rw,
     .insn_fetch = ptwr_emulated_insn_fetch,
-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Tue Apr 29 10:17:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 10:17:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.971827.1360224 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9i1Q-0005X8-Gk; Tue, 29 Apr 2025 10:17:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 971827.1360224; Tue, 29 Apr 2025 10: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 1u9i1Q-0005X1-Du; Tue, 29 Apr 2025 10:17:04 +0000
Received: by outflank-mailman (input) for mailman id 971827;
 Tue, 29 Apr 2025 10:17: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=qXnC=XP=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u9i1P-0005Ws-C5
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 10:17:03 +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 16fedb3e-24e3-11f0-9ffb-bf95429c2676;
 Tue, 29 Apr 2025 12:17:01 +0200 (CEST)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-ac339f53df9so1114138966b.1
 for <xen-devel@lists.xenproject.org>; Tue, 29 Apr 2025 03:17:01 -0700 (PDT)
Received: from [10.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-ace6edb1580sm768372066b.175.2025.04.29.03.17.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 29 Apr 2025 03:17: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: 16fedb3e-24e3-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745921821; x=1746526621; 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=rN3GflvUnGY4OfqsVWVon5csRcxWvoII9uJg/IA1kSg=;
        b=c2So+8vuv55NY3Giew2ii5m7aTDogrQ4blCCxSpBdPhKeJtCduFVpibWSZF+kXs7jT
         tBjlLeezW5IedqW5zTBsupuIjTXiHFslTTeLG8dKGF8gl1uK9OLoyvpzkLcbJb87hh2d
         6HYP1j+H2PmlrCOqZtoburAjF6JHLUIWG0KpfKrwsD0GNCHCkqRzQDXpYRxOk7a/2y3p
         /7sHVOpobN12l8uUEgZDka5S/Y+jPG65p0pvniBwkgnXw2+Ya2n7k8Xp0T9sdf5JmSVj
         HzSQU6fTQCf0N/pk+YBDBe5UfK9AjnRXTInh8/xMrVsIs9v9qrDAjn0ZT4+ng0t4JMcY
         517Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745921821; x=1746526621;
        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=rN3GflvUnGY4OfqsVWVon5csRcxWvoII9uJg/IA1kSg=;
        b=Xa/Yf/mk7DZVfQSO+JiRUE6yb87PLAoyXdmEdbfjiMW4kq21Tn3eyV+eGeifo8RMAB
         xqdCAZpIWEGCtFEl4Ol03Mimhmm2DDC11RTyTdv+qgRCYhQ5EqOweOIug+LRQ7HC2CL1
         SAN1M8o9qP04mzH7Ltws7hG1yKRfWy7anHIB8gpNDRKsBthYq+8NLlixFsvdtdPMdLo/
         ysFZtNN0w8f2AYbK13/v1VP96rVMwlHNGlShMKLZlL7dT2Hrf9mkr8MSgQdg8jvjCVIS
         +NrEsWxC1+3QOfAld0gAygQEkJmcJRfisIDRFStdXrvPqH+LaYwV8Cbbl+2ercg5oW4o
         /ciA==
X-Gm-Message-State: AOJu0YwKkk5q7iNADCXMsWmIvMp9KWl48Dz972xQ0v2cLDy2OvBc6EFX
	J+yJ2WNxL327KA15MgvbmqGzBtZpbYSJGEhViWLGvKtwvVu6FDYFRMGLT0UP+kKIoPFtATY7ee8
	=
X-Gm-Gg: ASbGncsnJZYxlPyfFWFQZmRNU/BwQ34JQsUZ1fahJD4OmLUzvxSmFFhSOfbFS9eGOuo
	MqxXUmO6ajasZMcLVFwK6QGFIah8bVvgVYkX6FYm0PmBhV9i7VIJrrw261lpIB6ICYGXhOdQO6q
	29rNbqVvTMMq7Negc4LcEmOpgUWk3e2RfUxDFQjzbHAArThMbUOltsj6cbHgO6taopurg9cyMnp
	G7CX0W79Wzl0eQaSJT23NJtw8S7dnOcVJcEK7cJQPs75XRtLE/n8v+awiJcsFsBq1bIU9A9CjzY
	ORM0g1NYGEspdrkisgd+wjBfgJppG8OIUGNQmLhACV+pkQac/tEq7T78kbaevAKo/Iw3DE1dYyX
	CqMAV07vbYB3zCZSsdOXNUJ/O4TgsKz2ju3dl
X-Google-Smtp-Source: AGHT+IFMdBCJcus3s2S+6mMOkpspXljNCuj/JAiuW0xyPE89aQUbUAzwdRU6kMXtBHsA2ghsD3Rqvg==
X-Received: by 2002:a17:907:1c8d:b0:ac7:efed:3ab with SMTP id a640c23a62f3a-ace848f745dmr1135124866b.21.1745921820617;
        Tue, 29 Apr 2025 03:17:00 -0700 (PDT)
Message-ID: <9742416e-b698-4d31-956f-9214955cecb4@suse.com>
Date: Tue, 29 Apr 2025 12:16:59 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Jan Beulich <jbeulich@suse.com>
Subject: preparations for 4.18.5
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@xenproject.org>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

All,

the release intended to be cut in about two weeks. Please point out backports you
find missing from the respective staging branches, but which you consider relevant.
This one I have queued already:

a88b99300aed	xen/link: Include .debug_str_offsets in DWARF2_DEBUG_SECTIONS

Note that 4.18.5 is going to be the last Xen Project coordinated ordinary bugfixing
release from the 4.18 branch; the branch will move into security-only support mode
afterwards.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 29 10:23:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 10:23:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.971852.1360266 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9i7R-0007fm-F9; Tue, 29 Apr 2025 10:23:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 971852.1360266; Tue, 29 Apr 2025 10: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 1u9i7R-0007ff-Bc; Tue, 29 Apr 2025 10:23:17 +0000
Received: by outflank-mailman (input) for mailman id 971852;
 Tue, 29 Apr 2025 10: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=qXnC=XP=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u9i7Q-0007fC-IS
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 10:23: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 f1120688-24e3-11f0-9eb4-5ba50f476ded;
 Tue, 29 Apr 2025 12:23:07 +0200 (CEST)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-aca99fc253bso877272266b.0
 for <xen-devel@lists.xenproject.org>; Tue, 29 Apr 2025 03:23:07 -0700 (PDT)
Received: from [10.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-ace6edafbb3sm765185566b.173.2025.04.29.03.23.05
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 29 Apr 2025 03:23: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: f1120688-24e3-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745922186; x=1746526986; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=K8NoPCwcNzLhmODUTSy7Op7dzjgkswj0YyGKBc81Xbk=;
        b=SxSXbNMNTaBsQN2MvzAMmky7iquhyK+y9OmbcayjgyOGR5ljajdXzvJqpJI+UE2Kd+
         FlUU1Og4J4c8Ms1zIUkKGUmuCdN9lYxK3oOzncNnCgweMDxBA5VbQ4wLyqUqP/ADoiBU
         ZJAaZb6D8fRBXoYU49AgYG3ZTHwudnzjCJCJ8LLlQYt+0XuIquht8NY0zh4aHYcICxHD
         2pF0iLe5RLz53WPZj09GTrlVcWgBaDIIvk/hfsMRSKTfRa8f9zT6NhbvYtxq/0WPjIi6
         HEFVYwaPe3ZD9m/SqW/JTQH5AJDtUt+yIwGQ2EFeWfs2jkUF1HMdwGsHl7DrWIMvU9MW
         ilzA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745922186; x=1746526986;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=K8NoPCwcNzLhmODUTSy7Op7dzjgkswj0YyGKBc81Xbk=;
        b=QiSZApqkNqvFYFo+hnJWk8ru3vt+ls0FT4nsxKF5jgjLoXd/xH7Lf9hQ02Ia5W/SEB
         WPcb6mawOm0U4r5ZbJNbJShEitdqic8wrMsYQvbxIxsgEIvmTfPY49yaOJx2BHdWdQdQ
         rD7DgKKm+QT1NpssQ+T2K3DnblXp0M8BSJRm7iimb53K/8l/iNHQ+4YOD1USp+DTzmom
         noxRbHNKZfxFmOKSIbcNbYFk3ln6yYVAItY2fix8rEFlT9GW9cDTGD4j7W+AZcYain34
         OxDP/vP9CDELw2D+9jXVR4gl0+SQctawiyKwu+Fusi2xrRWp6+UpiBEvkfpnSZBO14dL
         BTVQ==
X-Forwarded-Encrypted: i=1; AJvYcCX2M9cFXoNh9bcZyio8MCyo0+W6IjKCemw0y0AtQj1QIXvXHfV3bTZ+HBN1AHG/FGcnrLU38TZKGuI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzHrrp/OoNsn60AqxWJ99sai/qQC2qHdbBAmk2PHwuwqHL6mfPp
	AkBTxLiNvsCREwXS6WM7RB0OPEM1oCxUk3UnwApw+0/h7kxsdn364lvPWqZGLA==
X-Gm-Gg: ASbGncvQB9b2RNJBzyzsceQQ8k53UZvysZuxDVovXYq1EqMKkMjXwbd6btoaiQ2/Ybr
	rwQULlXiUDNJbzbHm097FJ/xducLLPbqAxfgmG6rppkO+NuIkeC2eH6Ql1g/ErMeqkm6gHS4qOl
	+FTtrOiafNIZGyI5LYH2FLsPUkwO3zyqkPVXAmkF64N+6LDCVKUex2od/z69kWZ+r2Cb9pTAPBk
	fSfBridpOMVfzdbBu8bNOAVRxiYiTHY6gZvVRsX4jBPrHuYNX1kzXmOlW2AUdhFWoE+Rr8r+4Vx
	7mvcprP4UdeEKaPLMa5wq2KcwYV234wOzZK1X1ltw0WrAknZ8BwvK/az+zTWm/0g3WBcxYbC5JZ
	NrocR3qozph4OPtJPAMJMcRnw3g==
X-Google-Smtp-Source: AGHT+IF4ZHcmOgXDd4/a1/Bcn/HfCAeiFkwtT0FzXViCgfFffwbm4AkHoExxPJReZttaTPbe3RtOSA==
X-Received: by 2002:a17:906:9fcc:b0:ac3:4373:e8bf with SMTP id a640c23a62f3a-ace848c0212mr1208355666b.10.1745922186525;
        Tue, 29 Apr 2025 03:23:06 -0700 (PDT)
Message-ID: <08d550d4-2283-4177-b812-fd87c0fa511d@suse.com>
Date: Tue, 29 Apr 2025 12:23:05 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 1/4] xen/io: provide helpers for multi size MMIO
 accesses
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20250429101252.50071-1-roger.pau@citrix.com>
 <20250429101252.50071-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: <20250429101252.50071-2-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 29.04.2025 12:12, Roger Pau Monne wrote:
> Several handlers have the same necessity of reading or writing from or to
> an MMIO region using 1, 2, 4 or 8 bytes accesses.  So far this has been
> open-coded in the function itself.  Instead provide a new set of handlers
> that encapsulate the accesses.
> 
> Since the added helpers are not architecture specific, introduce a new
> generic io.h header.
> 
> No functional change intended.
> 
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>

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

> @@ -5185,6 +5167,7 @@ int cf_check mmio_ro_emulated_write(
>      struct x86_emulate_ctxt *ctxt)
>  {
>      struct mmio_ro_emulate_ctxt *mmio_ro_ctxt = ctxt->data;
> +    unsigned long data = 0;


... this moved ...

> @@ -5195,9 +5178,12 @@ int cf_check mmio_ro_emulated_write(
>          return X86EMUL_UNHANDLEABLE;
>      }
>  
> -    if ( bytes <= 8 )
> +    if ( bytes <= sizeof(data) )
> +    {
> +        memcpy(&data, p_data, bytes);
>          subpage_mmio_write_emulate(mmio_ro_ctxt->mfn, PAGE_OFFSET(offset),
> -                                   p_data, bytes);
> +                                   data, bytes);
> +    }

... into this more narrow scope.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 29 10:29:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 10:29:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.971887.1360288 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9iDC-0000My-9C; Tue, 29 Apr 2025 10:29:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 971887.1360288; Tue, 29 Apr 2025 10: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 1u9iDC-0000Mr-6C; Tue, 29 Apr 2025 10:29:14 +0000
Received: by outflank-mailman (input) for mailman id 971887;
 Tue, 29 Apr 2025 10:29: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=qXnC=XP=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u9iDB-0000Ml-02
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 10:29:13 +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 c9d7dd8a-24e4-11f0-9ffb-bf95429c2676;
 Tue, 29 Apr 2025 12:29:10 +0200 (CEST)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-ac28e66c0e1so674963666b.0
 for <xen-devel@lists.xenproject.org>; Tue, 29 Apr 2025 03:29:10 -0700 (PDT)
Received: from [10.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-ace6ed70939sm769434266b.141.2025.04.29.03.29.09
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 29 Apr 2025 03:29: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: c9d7dd8a-24e4-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745922550; x=1746527350; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=PK0RB/lOrvQ1cHv+stbf3EsCejDVH1AQ938YN+2BZiE=;
        b=DckFjtYRjCvYV+eYu1cBojicbKrp49i2dGZijb1jvsFaAXo5pA6vbkj16hB5hb39k5
         HEUA3CvH5t5WszDYxqcBzLNpm6BSqc+7oMzvkkag+YQq/Dw5AtqSD/1RB4pNP3Dv3LIU
         EEBM2RI6TDycIL9Phmhl35n8PkLsyithZLoNpo9hGam70dIeer2dE8YTqclYaqppy5yD
         NYuUkko4T2Vqws6SKk7v3jpF18SwNiiVeoH+AQiIxHTDNbv5hfNMVi4vbyfp0zS9h0pA
         yWaN/TEqmFw63QciX8Q5mS1kZkqZWWt+oSL3Oj2fENnMjZjBMUz3vl4Ouft0L/2nirgq
         Dx5w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745922550; x=1746527350;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=PK0RB/lOrvQ1cHv+stbf3EsCejDVH1AQ938YN+2BZiE=;
        b=CBaqtNW+Ekzojst+cjdoNF3Wmft+6vHE5+779t7fSfdaJLyXH3XndR4MQUTXF2tqnD
         TKueHSGsQ6FLZKONnIFAVPF/g3QDz+Ho4AE5baq+QbKI0PveeT4MhG0+NxlVgiJI5Exo
         d0t1eeBVnJtk1ml4JrAySrkT/wWM6WxbUY/oAJx39FHvwvspHQgbQyp9yJe5untkSvQ+
         922JE11yI2goi69ZNXaVt45HPZT+rW1oNNO7Ol4f790LQsugW9z1HBah3figLZ+M8kVW
         S6eqHdbz1OFvQlE0PzRBvFNQKZ5zbj/4XWlNOULe/5Hw3fezNogViUyYdYnbp0AIo94J
         xayg==
X-Forwarded-Encrypted: i=1; AJvYcCWvpLcyc37jQE5t4xd1mAD2kyx4rbJrmFXKrck9lkpht527KS/5qxc6lB2vnno0bV1QaFBGFZe18Ms=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz4rRKL13xUCbqxo2fKSbzSehEMnB+SutTLxaK2XcArCX0v7V16
	/Wyh03U6dGuPmJu2p0yvehDjKqXFI+4rV+VpMHLBxAFVF3pjLC3PJ55i2RBE2g==
X-Gm-Gg: ASbGnctvLmhDEsI+9mYd+DZjtsZOOZPPCmaI3F0RB0HZz7NwY+D0BEMxPc7tGXP+7Cf
	pRJ4U7rWZI5NOKVD3YPq3NLaSvuUyVLRqs0SBaP7T4PG+pwYPRHkfra42ZN5euekrrS3FaLLFS2
	LdnFp8EuPT6au7fFKzFUGTbN9TcUwJwYrasLeoY62DWy3VUpvRD2nPGy5gHbMiT45B89GbE6Tk5
	MP/w0fGCXjmBu5eCbQUY0yrh4KNPnWP1q8t/WzVxDEkSDnXqvKY3cN4fqY2WYvOBIxB0qMoeUad
	hAfV7yMZz1CliWQyfNdZjxnZ3FHae4ewUbU5rv94dUFa4gHKxc+SwZXsos5gtY3fA2kG14o4lIw
	v6/0rGJg0eW8CZTL9uKtPql2msw==
X-Google-Smtp-Source: AGHT+IGmMDHAlfawGLIOLRYXhJ0yJiIqc6kSZ3L7jowlp2jGfsdPqS4NYxTAtuQsPtFGwvJ4WX8ZtA==
X-Received: by 2002:a17:907:26ce:b0:ac7:cfcb:c3e3 with SMTP id a640c23a62f3a-acec4eae46fmr268922166b.45.1745922550082;
        Tue, 29 Apr 2025 03:29:10 -0700 (PDT)
Message-ID: <42b052b7-535b-4697-86d1-bae857f6ccad@suse.com>
Date: Tue, 29 Apr 2025 12:29:08 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 2/4] x86/hvm: fix handling of accesses to partial r/o
 MMIO pages
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20250429101252.50071-1-roger.pau@citrix.com>
 <20250429101252.50071-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: <20250429101252.50071-3-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 29.04.2025 12:12, Roger Pau Monne wrote:
> The current logic to handle accesses to MMIO pages partially read-only is
> based on the (now removed) logic used to handle accesses to the r/o MMCFG
> region(s) for PVH v1 dom0.  However that has issues when running on AMD
> hardware, as in that case the guest linear address that triggered the fault
> is not provided as part of the VM exit.  This caused
> mmio_ro_emulated_write() to always fail before calling
> subpage_mmio_write_emulate() when running on AMD and called from an HVM
> context.
> 
> Take a different approach and convert the handling of partial read-only
> MMIO page accesses into an HVM MMIO ops handler, as that's the more natural
> way to handle this kind of emulation for HVM domains.
> 
> This allows getting rid of hvm_emulate_one_mmio() and it's single call site
> in hvm_hap_nested_page_fault().  As part of the fix r/o MMIO accesses are
> now handled by handle_mmio_with_translation(), re-using the same logic that
> was used for other read-only types part of p2m_is_discard_write().  The
> usage of emulation for faulting p2m_mmio_direct types is limited to
> addresses in the r/o MMIO range. The page present check is dropped as type
> p2m_mmio_direct must have the present bit set in the PTE.
> 
> Note a small adjustment is needed to the `pf-fixup` dom0 PVH logic: avoid
> attempting to fixup faults resulting from write accesses to read-only MMIO
> regions, as handling of those accesses is now done by handle_mmio().
> 
> Fixes: 33c19df9a5a0 ('x86/PCI: intercept accesses to RO MMIO from dom0s in HVM containers')
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>

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

> --- /dev/null
> +++ b/xen/arch/x86/hvm/mmio.c
> @@ -0,0 +1,125 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +/*
> + * MMIO related routines.
> + *
> + * Copyright (c) 2025 Cloud Software Group
> + */
> +
> +#include <xen/io.h>
> +#include <xen/mm.h>
> +
> +#include <asm/p2m.h>
> +
> +static int cf_check subpage_mmio_accept(struct vcpu *v, unsigned long addr)
> +{
> +    p2m_type_t t;
> +    mfn_t mfn = get_gfn_query_unlocked(v->domain, PFN_DOWN(addr), &t);
> +
> +    return !mfn_eq(mfn, INVALID_MFN) && t == p2m_mmio_direct &&
> +           subpage_mmio_find_page(mfn);
> +}
> +
> +/*
> + * The guest has read access to those regions, and consequently read accesses
> + * shouldn't fault.  However read-modify-write operations may take this path,
> + * so handling of reads is necessary.
> + */
> +static int cf_check subpage_mmio_read(
> +    struct vcpu *v, unsigned long addr, unsigned int len, unsigned long *data)
> +{
> +    struct domain *d = v->domain;
> +    unsigned long gfn = PFN_DOWN(addr);
> +    p2m_type_t t;
> +    mfn_t mfn;
> +    struct subpage_ro_range *entry;
> +    volatile void __iomem *mem;
> +
> +    *data = ~0UL;
> +
> +    if ( !len || len > 8 || len & (len - 1) || !IS_ALIGNED(addr, len) )

The & expression wants parenthesizing against the ||s.

> +    {
> +        gprintk(XENLOG_ERR,
> +                "ignoring unaligned read to r/o MMIO subpage %#lx size %u\n",

It's not just unaligned, but also oversized or zero-size now. Maybe better
drop the word?

Both similarly applicable to the write path.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 29 10:36:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 10:36:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.971900.1360297 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9iKa-0002Yl-VL; Tue, 29 Apr 2025 10:36:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 971900.1360297; Tue, 29 Apr 2025 10:36:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9iKa-0002Ye-Sn; Tue, 29 Apr 2025 10:36:52 +0000
Received: by outflank-mailman (input) for mailman id 971900;
 Tue, 29 Apr 2025 10:36:51 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=qXnC=XP=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u9iKZ-0002YY-7E
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 10:36:51 +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 dae86b36-24e5-11f0-9ffb-bf95429c2676;
 Tue, 29 Apr 2025 12:36:49 +0200 (CEST)
Received: by mail-ej1-x62b.google.com with SMTP id
 a640c23a62f3a-ac2ab99e16eso1261693666b.0
 for <xen-devel@lists.xenproject.org>; Tue, 29 Apr 2025 03:36:49 -0700 (PDT)
Received: from [10.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-ace6e586bc6sm757305566b.75.2025.04.29.03.36.47
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 29 Apr 2025 03:36: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: dae86b36-24e5-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745923008; x=1746527808; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=pEnMhvYC2y5Xde25PeIv/2HXomTWF2wg5hYhKb9897U=;
        b=LLv01DxQG7Kh+QmPz8bR3UkL4pljJbbvo27qh3GoHDsljK43iO1RVevo34ozALvmbd
         aKsagYtWUte1jYetCim2ApjxkL26d5iiDtHM9b9YRlZxTU0bJ+NuN4wdACcyHW5M69LM
         +bNH3g4qncJNPfMig5r3Wp+ZZvjJZeEsmKgtW6Sz3pVbomT6K9fxRujEpds0XSKvztL4
         /l0IaUe6lwk4CSrXnV++NdDPU9/E5Jf+tAIjODp9cN+cFfnkwCtXr4maFcW470nrGGO3
         QLMlI06AQxw409safOXQPchm1mpoSptHPOX0DJTNdoxmbzd4VAKm1S7160blKuKpNi9N
         b3iQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745923008; x=1746527808;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=pEnMhvYC2y5Xde25PeIv/2HXomTWF2wg5hYhKb9897U=;
        b=EvWQJqJblGL1J/zxIndBUcCLOmY30k0KK6yt0x7mhOEi3RyltMsTs7y/oUjqPUTZWZ
         cQvAgY1ODzI2WOKBb0eK+559A2UEq1Q1ZHdz8vz/c6BluiXGb3JLJsTA6vEy5uXpbEj8
         H05cUIyjGvrkP0K6W0iWKpU5v1ZjKUNf5lgxDoIZHnmyTdZvg8o841t4YeQU9pNosL1m
         pxQthExc3J7qbreybTY1FBwP0Rr4MKmhz1Iz96zz2XtuPmL+dCInAK0av9DMyaoIIA1e
         ZRWSSNbtcJNxKNugI20UKw49bIYmeh/tY3x7Is4czXpFMv9bP4z9V1nfjRTr0ZPIB52H
         xqcA==
X-Forwarded-Encrypted: i=1; AJvYcCVWmSoVjMnMYdN5qE951LEo8hrkaeF9G6OA+NdmF5J36kZ5ZWPLHi/a8XSRbXgz3DKuKDBVG+tJrIM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyIxsaW9kn64m7xWUV/mhl3QfiX2K2lE737GOAZg8enumV1rIf1
	1wUWC1wTxXnfhj72rwWCnWCen4lzzW4feqpjSuzcqm/kbNvnDI61ibdn3mS4LS9KDSUzjvWUH8w
	=
X-Gm-Gg: ASbGncuRdfFQbTM6vaKedgrTPAafWGhFL+0/DLssU+OQaOUyGkvGj7yVtY6v6OGc347
	Xh7QWEo48yN7hfs7UFNneS1gYiA1IsECvwvbFmH4r6ktX8VsX1YB2XHEG4GYlkIr3vh7DaSLP0N
	QUztJwTSMVTYVyCIPfz3yfzyR/AteSzhh7H0zTcx042Y1FSdftMIHBUoKY6knaNuSHcHw3hJyuV
	uMjCE9l3MkAOXT/GO8Zk90t9ercMoJaBXIjUbpMKYmPwm9mW7Fx889GIrJbePnLOp5nuuQD2HbF
	nThqD5mfWK45Q5QdNv5NoO1YKUTzozdWKr7VPByNIUZlN1nJ3yWMmdlt/0+/UDyJSjKeb9CwIWu
	gRtsScCrtTikgwbNOeaDzM3+lTA==
X-Google-Smtp-Source: AGHT+IGDV05kPKmwu/NB27C3nS0lvoW7hvVyaDanbyzHMSXdQisx5G0jMELo4unMsZjagCZwPqTZsg==
X-Received: by 2002:a17:907:7b9d:b0:acb:107c:7aed with SMTP id a640c23a62f3a-acec4f812d1mr308691766b.55.1745923008317;
        Tue, 29 Apr 2025 03:36:48 -0700 (PDT)
Message-ID: <2f3702f3-a46b-4161-a890-7aad9bbbcac4@suse.com>
Date: Tue, 29 Apr 2025 12:36:46 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 04/15] xen/cpufreq: refactor cmdline "cpufreq=xxx"
To: Penny Zheng <Penny.Zheng@amd.com>
Cc: ray.huang@amd.com, xen-devel@lists.xenproject.org
References: <20250414074056.3696888-1-Penny.Zheng@amd.com>
 <20250414074056.3696888-5-Penny.Zheng@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20250414074056.3696888-5-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 14.04.2025 09:40, Penny Zheng wrote:
> --- a/xen/drivers/cpufreq/cpufreq.c
> +++ b/xen/drivers/cpufreq/cpufreq.c
> @@ -71,6 +71,49 @@ unsigned int __initdata cpufreq_xen_cnt = 1;
>  
>  static int __init cpufreq_cmdline_parse(const char *s, const char *e);
>  
> +static bool __init cpufreq_opts_contain(enum cpufreq_xen_opt option)
> +{
> +    unsigned int count = cpufreq_xen_cnt;
> +
> +    while ( count )
> +    {
> +        if ( cpufreq_xen_opts[--count] == option )
> +            return true;
> +    }
> +
> +    return false;
> +}
> +
> +static int __init handle_cpufreq_cmdline(enum cpufreq_xen_opt option)
> +{
> +    int ret = 0;
> +
> +    if ( cpufreq_opts_contain(option) )
> +    {
> +        const char *cpufreq_opts_str[] = { "CPUFREQ_xen", "CPUFREQ_hwp" };

        const char *const __initconstrel cpufreq_opts_str[] = { "CPUFREQ_xen", "CPUFREQ_hwp" };

(line wrapped suitably, of course) Or maybe even better

        const char __initconst cpufreq_opts_str[][12] = { "CPUFREQ_xen", "CPUFREQ_hwp" };

for the string literals to also end up in .init.rodata.

However, the CPUFREQ_ prefixes want dropping, as they're an internal of the
implementation, and ...

> +
> +        printk(XENLOG_WARNING
> +               "Duplicate cpufreq driver option: %s",
> +               cpufreq_opts_str[option - 1]);

... aren't necessarily meaningful when presented this way to the user; the user
specified "xen" or "hwp", after all.

> +        return 0;
> +    }
> +
> +    cpufreq_controller = FREQCTL_xen;
> +    cpufreq_xen_opts[cpufreq_xen_cnt++] = option;
> +    switch ( option )
> +    {
> +    case CPUFREQ_hwp:
> +    case CPUFREQ_xen:
> +        xen_processor_pmbits |= XEN_PROCESSOR_PM_PX;
> +        break;
> +    default:

Blank line please between non-fall-through case blocks.

With all of the adjustments:
Reviewed-by: Jan Beulich <jbeulich@suse.com>

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 29 10:46:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 10:46:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.971913.1360314 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9iTf-0004tb-Uc; Tue, 29 Apr 2025 10:46:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 971913.1360314; Tue, 29 Apr 2025 10: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 1u9iTf-0004tU-QO; Tue, 29 Apr 2025 10:46:15 +0000
Received: by outflank-mailman (input) for mailman id 971913;
 Tue, 29 Apr 2025 10:46:13 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=b72w=XP=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u9iTd-0004tO-Ru
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 10:46:13 +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 2af51409-24e7-11f0-9eb4-5ba50f476ded;
 Tue, 29 Apr 2025 12:46:13 +0200 (CEST)
Received: by mail-ed1-x52e.google.com with SMTP id
 4fb4d7f45d1cf-5f4d28d9fd8so7325261a12.3
 for <xen-devel@lists.xenproject.org>; Tue, 29 Apr 2025 03:46:13 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 4fb4d7f45d1cf-5f703545234sm7195662a12.56.2025.04.29.03.46.11
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 29 Apr 2025 03:46: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: 2af51409-24e7-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745923572; x=1746528372; 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=rdwaRWqtsUshNHH/xFTuq2hAx+HT+DO/6OQW20JAeEQ=;
        b=Lu8QGPg8NrGTBc0toOq44h4VUIxZjP105hb0MgTmyGNCdPbXQP1CTsoMjmd6jRr9wY
         BTJxlZmmY8GCeKL0aRPJ5P2A/slvbKeKk/0yHWF1d97guzwf9IF1VVVJiAUpruhVtnL3
         sRIKfok65vnBEynDSwE7p1jxMcvGUVoTPZxA8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745923572; x=1746528372;
        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=rdwaRWqtsUshNHH/xFTuq2hAx+HT+DO/6OQW20JAeEQ=;
        b=lzCf9JJXbyTZil+qNvm2EGdTYCMdzB4dkHM4/Cv0BPLX2bty+JYAaOmxu3ccCiLUch
         U2OF8WC8m9Oqau5KYWN+k/QFRmJs1QKn2UPybZuJ02hIV6OHejvjjxArwxsWyirZVsmq
         ZlE/r5NgTLun0YYGGqBa/OT9OTx4/KkLdV0qVTz90hnLeSpZvFltnL0O1r+QwXyOZmQ2
         lEMyqvlZ+GkvbjiyMuwALOGMQoXFZaejUmKEzKmrjuJ3vljjmbgoUSEX6qYQcZtSoMpf
         VJUrPUB6cj1U+Gp7mS7Ivk4tdhGMo1yEID9MWBdYuDnJgvcYtNgpDNCy7jL1kYFy5AyI
         f+bg==
X-Forwarded-Encrypted: i=1; AJvYcCVgvrirrUlEu0vRp/jJmgeXFw8IFCTPpBVtpP1JA2JgrurmnhpKoyFzFp0lxnXJ2b6jb1F7lAWmW/A=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz0m7ZuArGUxE6OApmMq71kdr4jFyV8MZYl2gxFDo3nT7bXhX1p
	g50kFn+s3f6bGGt3r2uTUX8XS0ZVo6dZ2raCRxQQMSOz+Lcz17AR5gJhO1S2PqE=
X-Gm-Gg: ASbGncuR0qz7bHRO0xm9CeovDMRPa4RD967Mnn4qILtjtySYGJ5NR5uXk9LSVRbyA7n
	4kpi/wv850ZT+Uay+iSXt+gTwfOPtruk0lDtDZWCMj1mLnmH+QisKd/ufzAzeUs74+5HTWbiCtF
	yAAGt4LXwUOdRdFkqCT4D0hjui0jh1+NR55/KjjqkrDLREu6HrVqQDbCU45s4wD3/gY7lLTEMdM
	fZ9D2eYT4bT3OATlDuRTDisxG661aXiaKKjNWLhEB1IOLs5JAjiYsKOthtsHkNneEqvSFVDdlOH
	mE1v4FclZqvNfVTM3u9hDFeAaaKNAlSDpMK4ELP1HJuZkl68aZmwXJ8i
X-Google-Smtp-Source: AGHT+IFVQb6LRpiA3zAa7O0byxvOIa677tRpq2SJ/FSNj0cMvOi2zlMP62YUsA34R/g6jCvLCFzKkg==
X-Received: by 2002:a05:6402:5245:b0:5f6:c5e3:fab8 with SMTP id 4fb4d7f45d1cf-5f7398341f0mr9393260a12.21.1745923572072;
        Tue, 29 Apr 2025 03:46:12 -0700 (PDT)
Date: Tue, 29 Apr 2025 12:46:10 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v4 1/4] xen/io: provide helpers for multi size MMIO
 accesses
Message-ID: <aBCt8lb-2X75-wqF@macbook.lan>
References: <20250429101252.50071-1-roger.pau@citrix.com>
 <20250429101252.50071-2-roger.pau@citrix.com>
 <08d550d4-2283-4177-b812-fd87c0fa511d@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <08d550d4-2283-4177-b812-fd87c0fa511d@suse.com>

On Tue, Apr 29, 2025 at 12:23:05PM +0200, Jan Beulich wrote:
> On 29.04.2025 12:12, Roger Pau Monne wrote:
> > Several handlers have the same necessity of reading or writing from or to
> > an MMIO region using 1, 2, 4 or 8 bytes accesses.  So far this has been
> > open-coded in the function itself.  Instead provide a new set of handlers
> > that encapsulate the accesses.
> > 
> > Since the added helpers are not architecture specific, introduce a new
> > generic io.h header.
> > 
> > No functional change intended.
> > 
> > Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> 
> Reviewed-by: Jan Beulich <jbeulich@suse.com>
> preferably with ...
> 
> > @@ -5185,6 +5167,7 @@ int cf_check mmio_ro_emulated_write(
> >      struct x86_emulate_ctxt *ctxt)
> >  {
> >      struct mmio_ro_emulate_ctxt *mmio_ro_ctxt = ctxt->data;
> > +    unsigned long data = 0;
> 
> 
> ... this moved ...
> 
> > @@ -5195,9 +5178,12 @@ int cf_check mmio_ro_emulated_write(
> >          return X86EMUL_UNHANDLEABLE;
> >      }
> >  
> > -    if ( bytes <= 8 )
> > +    if ( bytes <= sizeof(data) )
> > +    {
> > +        memcpy(&data, p_data, bytes);
> >          subpage_mmio_write_emulate(mmio_ro_ctxt->mfn, PAGE_OFFSET(offset),
> > -                                   p_data, bytes);
> > +                                   data, bytes);
> > +    }
> 
> ... into this more narrow scope.

Hm, but if I move it I can no longer use sizeof(data) in the condition
check, that's why data is defined in the outside.

Let me know if you are OK with this.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Apr 29 10:48:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 10:48:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.971925.1360322 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9iVO-0005Tl-6t; Tue, 29 Apr 2025 10:48:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 971925.1360322; Tue, 29 Apr 2025 10:48: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 1u9iVO-0005Te-4N; Tue, 29 Apr 2025 10:48:02 +0000
Received: by outflank-mailman (input) for mailman id 971925;
 Tue, 29 Apr 2025 10:48: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=b72w=XP=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u9iVN-0005TW-Gm
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 10:48:01 +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 6b518ef9-24e7-11f0-9eb4-5ba50f476ded;
 Tue, 29 Apr 2025 12:48:00 +0200 (CEST)
Received: by mail-ej1-x62d.google.com with SMTP id
 a640c23a62f3a-ace3b03c043so900385866b.2
 for <xen-devel@lists.xenproject.org>; Tue, 29 Apr 2025 03:48:00 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 a640c23a62f3a-ace6e4e6a05sm768483566b.57.2025.04.29.03.47.59
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 29 Apr 2025 03:47: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: 6b518ef9-24e7-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745923680; x=1746528480; 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=fpUPeXQ39OaPBBilG6YqHmYqtMU/zIZTpYEJL/AXnao=;
        b=nOw5opQRWWL0vZR2CtNyL2nJ/UQ2TsgkGEVdZGHSo/tSQ/tob8/FOqmHZbkY9KJWVa
         FvX9cIRGKViDOOmm+H4pIfk72J/1itvvAoz33IYQulAZsqdHyq2Ru+tsHaANF21vmo/w
         O+ru+r3at+s3Pk49E72U8dxXv0TDrWzZIesrU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745923680; x=1746528480;
        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=fpUPeXQ39OaPBBilG6YqHmYqtMU/zIZTpYEJL/AXnao=;
        b=eh6CZeBfr563OfkjDLsClsT2EYNZHWAG3OZeHYRALhvtDMQH3+QagxPQXJdK8DwObM
         /1BIk4UvL3D2OJk1cSzoRKNNQk2702IYcfnpvcm/TUlBxHaOuOxXqVkSJGVsGKBjioLc
         IFe6GjJtELtt3y0V0U0c9PSRc/09IsII4xppHzoKpg37UMMynXQRvh88Pz8MVVbYZxlY
         mmMqQIi/fr40hXEpZEGMlnpD/hGqZRnSWJdvBZEoWYlJ3Ca3qTdz734LOpS9VWu2I4GS
         ILvJk8P8A85m+Ri0xtoWqCkyJfW7SdsQhpSAwY322WCiQsUTWUY0mrfJuUNEgnGQ4LOa
         h69g==
X-Forwarded-Encrypted: i=1; AJvYcCVEWS7V3MZt5+RwKzZLaelYPw8+dvJoLUHi3hp/Xb7BPLKYXBO2czQqLszXmSBZK4ROhTRe+BpLkKI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzHfYpOyH+StSSirrh6bflFOmPJnJIb6YWRhJxcjvaSPw+VYzP7
	qnySUdswbfxnAZrgI326OgrMqX4aFy7dRY+lq8jWw1NqltzezYA79TjP8P9j0BBxrUE9XbFbmp8
	f
X-Gm-Gg: ASbGncvtXGVtPMsL96jMShqZR2nlQudKj95exvROmyvSpyOlLAy0qPpmP6bms8w32VF
	bQMwjqXh9xZsC0OqewiJoPty0o7KDkOXcQ0RwscX9mw+MHkkMHqIvWq6PygoL6nz6CgpqzAlDJ1
	cVIBIky7PGuXS9140kn9n4/vKbu9bdGevNzsi9cccBHo0v3HowTqc3RQuK9zLIdz/L0Q2NCnqiU
	u2yk1kaDT3vij3Rz6py8q6oS60/EN+JA7ateg6yp1GG9i0mDiP2OfTR49xnUCDe9NRhu56mxlyY
	tcIKHEHo08ytu0xoyT+OfMgU9pTatFWZlRq4AveYHviw2SauiWQ2uZaw
X-Google-Smtp-Source: AGHT+IF/rItJaKXqEquV9gU9YwM3ZYy4hPl/V8fGTs5masnP1DL2BHrNexx4ZMrkIAk0jYWbnLp8wA==
X-Received: by 2002:a17:907:7f0f:b0:ac3:446d:142 with SMTP id a640c23a62f3a-acec84b8840mr225568866b.2.1745923680017;
        Tue, 29 Apr 2025 03:48:00 -0700 (PDT)
Date: Tue, 29 Apr 2025 12:47:58 +0200
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 v4 2/4] x86/hvm: fix handling of accesses to partial r/o
 MMIO pages
Message-ID: <aBCuXtIqR_HLL1mu@macbook.lan>
References: <20250429101252.50071-1-roger.pau@citrix.com>
 <20250429101252.50071-3-roger.pau@citrix.com>
 <42b052b7-535b-4697-86d1-bae857f6ccad@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <42b052b7-535b-4697-86d1-bae857f6ccad@suse.com>

On Tue, Apr 29, 2025 at 12:29:08PM +0200, Jan Beulich wrote:
> On 29.04.2025 12:12, Roger Pau Monne wrote:
> > The current logic to handle accesses to MMIO pages partially read-only is
> > based on the (now removed) logic used to handle accesses to the r/o MMCFG
> > region(s) for PVH v1 dom0.  However that has issues when running on AMD
> > hardware, as in that case the guest linear address that triggered the fault
> > is not provided as part of the VM exit.  This caused
> > mmio_ro_emulated_write() to always fail before calling
> > subpage_mmio_write_emulate() when running on AMD and called from an HVM
> > context.
> > 
> > Take a different approach and convert the handling of partial read-only
> > MMIO page accesses into an HVM MMIO ops handler, as that's the more natural
> > way to handle this kind of emulation for HVM domains.
> > 
> > This allows getting rid of hvm_emulate_one_mmio() and it's single call site
> > in hvm_hap_nested_page_fault().  As part of the fix r/o MMIO accesses are
> > now handled by handle_mmio_with_translation(), re-using the same logic that
> > was used for other read-only types part of p2m_is_discard_write().  The
> > usage of emulation for faulting p2m_mmio_direct types is limited to
> > addresses in the r/o MMIO range. The page present check is dropped as type
> > p2m_mmio_direct must have the present bit set in the PTE.
> > 
> > Note a small adjustment is needed to the `pf-fixup` dom0 PVH logic: avoid
> > attempting to fixup faults resulting from write accesses to read-only MMIO
> > regions, as handling of those accesses is now done by handle_mmio().
> > 
> > Fixes: 33c19df9a5a0 ('x86/PCI: intercept accesses to RO MMIO from dom0s in HVM containers')
> > Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> 
> Reviewed-by: Jan Beulich <jbeulich@suse.com>
> with two nits:
> 
> > --- /dev/null
> > +++ b/xen/arch/x86/hvm/mmio.c
> > @@ -0,0 +1,125 @@
> > +/* SPDX-License-Identifier: GPL-2.0-only */
> > +/*
> > + * MMIO related routines.
> > + *
> > + * Copyright (c) 2025 Cloud Software Group
> > + */
> > +
> > +#include <xen/io.h>
> > +#include <xen/mm.h>
> > +
> > +#include <asm/p2m.h>
> > +
> > +static int cf_check subpage_mmio_accept(struct vcpu *v, unsigned long addr)
> > +{
> > +    p2m_type_t t;
> > +    mfn_t mfn = get_gfn_query_unlocked(v->domain, PFN_DOWN(addr), &t);
> > +
> > +    return !mfn_eq(mfn, INVALID_MFN) && t == p2m_mmio_direct &&
> > +           subpage_mmio_find_page(mfn);
> > +}
> > +
> > +/*
> > + * The guest has read access to those regions, and consequently read accesses
> > + * shouldn't fault.  However read-modify-write operations may take this path,
> > + * so handling of reads is necessary.
> > + */
> > +static int cf_check subpage_mmio_read(
> > +    struct vcpu *v, unsigned long addr, unsigned int len, unsigned long *data)
> > +{
> > +    struct domain *d = v->domain;
> > +    unsigned long gfn = PFN_DOWN(addr);
> > +    p2m_type_t t;
> > +    mfn_t mfn;
> > +    struct subpage_ro_range *entry;
> > +    volatile void __iomem *mem;
> > +
> > +    *data = ~0UL;
> > +
> > +    if ( !len || len > 8 || len & (len - 1) || !IS_ALIGNED(addr, len) )
> 
> The & expression wants parenthesizing against the ||s.
> 
> > +    {
> > +        gprintk(XENLOG_ERR,
> > +                "ignoring unaligned read to r/o MMIO subpage %#lx size %u\n",
> 
> It's not just unaligned, but also oversized or zero-size now. Maybe better
> drop the word?
> 
> Both similarly applicable to the write path.

Hm, yes, I've failed to update this when expanding the checks, thanks
for noticing.  I agree that dropping "unaligned" seems like the best
option.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Apr 29 10:48:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 10:48:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.971930.1360333 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9iVi-0005vS-Hu; Tue, 29 Apr 2025 10:48:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 971930.1360333; Tue, 29 Apr 2025 10:48: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 1u9iVi-0005vL-FH; Tue, 29 Apr 2025 10:48:22 +0000
Received: by outflank-mailman (input) for mailman id 971930;
 Tue, 29 Apr 2025 10:48: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=PDgl=XP=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u9iVg-0005TW-UG
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 10:48:21 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on20629.outbound.protection.outlook.com
 [2a01:111:f403:2415::629])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 75fa51f6-24e7-11f0-9eb4-5ba50f476ded;
 Tue, 29 Apr 2025 12:48:19 +0200 (CEST)
Received: from PH8PR15CA0015.namprd15.prod.outlook.com (2603:10b6:510:2d2::23)
 by MW4PR12MB7013.namprd12.prod.outlook.com (2603:10b6:303:218::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.31; Tue, 29 Apr
 2025 10:48:15 +0000
Received: from CY4PEPF0000E9D1.namprd03.prod.outlook.com
 (2603:10b6:510:2d2:cafe::b9) by PH8PR15CA0015.outlook.office365.com
 (2603:10b6:510:2d2::23) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.40 via Frontend Transport; Tue,
 29 Apr 2025 10:48:14 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CY4PEPF0000E9D1.mail.protection.outlook.com (10.167.241.136) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8699.20 via Frontend Transport; Tue, 29 Apr 2025 10:48:14 +0000
Received: from localhost (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, 29 Apr
 2025 05:48:12 -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: 75fa51f6-24e7-11f0-9eb4-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=VMQKR4LHtvr4M13atWuzMA+DRXHYFKeVY4H2yHpWGMqN+f0z57husT7g54PfBtKMNqWng1mgdkngmsIds4y35QmrA2pQvSs+T5MTuLOuDVYLblH4MavAKdsJx3f5HvADsjIVHCHeFFqeFuxdLCZ6ZtXKQ2juU4G/F8RIy5m48C7XytRGreBOFocGnMjZjMLTkZmaTAwweNlOfnBIIzuLNTFMcg6ZhS4WcfNbedZAd5WyqEcuRmAnb6cOYokesbH1J1e84Txpq5GwbU5yZbJa9bU836z6vbQTI/qEF1ghOJeZDrEtiQecGdamZrW4RyRbEduyK3ELX15agIV/24yOtg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Sttm8s1uGCTttkHZMDDpjqYWTyRVWRUuSomde1IFgaQ=;
 b=AJTrB2pjOq+t6g6uHKey1SCWRRJ6VSk5FMIe+q0Jn8xHyTbJzxH3djyDYL7SkZesVlhG1O78zssRDSBOvpQE2S+Orj+g0BWKUA1kRRoJisMjz/7mK/JooA9rmxOr617PZxfFtpx4B0vo7bu6n/lyMl1JX+uMg1xZgqLm9HWkdDN33peNGgTbWPvNxcwNe+GvBZ5JjOVtqvxLuKYuZa1U+igs/C091by2xTKXt0VA5GILZXF8LbLL+yvjsgoZ0DFlQJGJBdgEtGuhS0AInd9RgaHs2LoN+T1hkHZ2XCcgCxgQDIIAzICF3odK2qfxDps+bZUhkPXpqndI3sGivlg6uQ==
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=Sttm8s1uGCTttkHZMDDpjqYWTyRVWRUuSomde1IFgaQ=;
 b=4U1RupvA+uugAVg1qD88CkOdU4kdh4g+v9Orp/i33U/pI9zWhy5v991j4DMS4TO9Bifo3GGcIGDP8GSTaNln2tDfQ/3q3leYgorQMLHipBZ16arrNF83+JH9BAwPL9XOinudbIp/4RuHbGYu31WUEpPeQysARS1vvrx8lnR86R8=
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
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Tue, 29 Apr 2025 11:48:14 +0100
Message-ID: <D9J2AOMDX4QZ.2ZN0F028I3QIT@amd.com>
From: Alejandro Vallejo <agarciav@amd.com>
To: Jan Beulich <jbeulich@suse.com>, Ariadne Conill <ariadne@ariadne.space>
CC: Paul Durrant <paul@xen.org>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, "Alexander M .
 Merritt" <alexander@edera.dev>, <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v3] x86/hyperv: use dynamically allocated page for
 hypercalls
X-Mailer: aerc 0.20.1
References: <20250428195736.2516-1-ariadne@ariadne.space>
 <77c9529e-8353-479f-994f-d6d668788374@suse.com>
In-Reply-To: <77c9529e-8353-479f-994f-d6d668788374@suse.com>
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: CY4PEPF0000E9D1:EE_|MW4PR12MB7013:EE_
X-MS-Office365-Filtering-Correlation-Id: 68fe5ac4-859d-4a88-d579-08dd870b57fe
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?aDlUeWdQY09zUXJjZEhmUWkrU0pZMjl0YzFSbzRrUVFZbk9yQ2hkeS8rV0dM?=
 =?utf-8?B?ZmZWR0R0MFM5NDVnMlpHdlp5TXl0Tk1RVnd4bFNSS2xEc25MNlZuZ3psSndK?=
 =?utf-8?B?dmtoZ3JlWGlDNUpUSEREWEpxOWRCNzdPTlJhQlJYUzN0K1RBNnpaMTMrOEp4?=
 =?utf-8?B?WkNxSDdqbjlwZmZJWG5rMUhyQTNTNFQ2K0U5eU1ybFR3enkrbkdoNVc2MExO?=
 =?utf-8?B?YWVhNWplbXlEak01aSsvM0NvTVdaSkQ0b3RJODJqWm1kZm10NWdLYUlYeVlH?=
 =?utf-8?B?Wmt2T2sxeWQ1aEN6KzBxakFhUjlZQ05uN1JFQ2xDTGQ0S1JjS1hSNVVNSTdP?=
 =?utf-8?B?MjJidHNvcFRjdzU0K2NFWFpIZDhONnMyVjEzN2RoWTdKSTBRMDVhZFV1ZFRE?=
 =?utf-8?B?OHR1MTBzTHg1R29QSFFKOWdPVElZTTZGRUtndjVER2ZkUUMvZnl5cXRiSjQ0?=
 =?utf-8?B?VDU0RUkzN1FsdTdraGxwRi9FNWREc2d1NjlBMU5HWkNxOGhvaFhZWDJWVVdh?=
 =?utf-8?B?VGhUbWZZcld6TGM3Z1pmS2R4M2s5ZERmamhtK1VxVXBuTmxuc3Z1bmg3Tm9P?=
 =?utf-8?B?YUFKdzJGNzc4ZEM2NGtXdXluY01JRWVCYVlvNlp1ekprV3AvRWZwSWpSTVU4?=
 =?utf-8?B?b2hhUlU5M0VQOXpKd3p3ZGJYRG9hQ2JvWmZlYlJ1LzM4SGg3WlJlbzdDRk1h?=
 =?utf-8?B?SEdOakgwUTNQaWh6L29kSUFZai9tcHFVS0VGeUZXMmUvam1Sa2RBTzhxWXhE?=
 =?utf-8?B?RmpmbTVBMWRveG4zNWt5VkZkdC9FTW13eHlLQ3RNNDB0WFZQdEJQa3JPRlNt?=
 =?utf-8?B?TlcyanRyZFJNa1hPdVZ1OTUyd09HcEprUjNvVjdJUGIwbWRKQXFFMkJxQmZV?=
 =?utf-8?B?TUl0ZE9QeDdFa3hqWGhJbjFiQ2F2SlU3bWQxeDRQWGpEVUtEREV3djFwblJX?=
 =?utf-8?B?eDFSRDBzei9PVDEwdHg0ZUtObThDQTlyK2duMFVPZnlhVnBjcnNTeDErTWhu?=
 =?utf-8?B?cXJKQkJDa3p5d2l1YkhDeHpFRS9KUHhPTFJSMGJXdkhqRGZSeVpsNktPV3d0?=
 =?utf-8?B?YzVnelk0cFIveVNiSnlQMVlvemc4WDdXZHFMQXB0MGtDbHhxWXlQS3gzZGhv?=
 =?utf-8?B?WlBSeXZVeUdQam4rS1J2YWx2akcxQmdDSHBCQmdiZUpqS1RPajV1NGRmRG9C?=
 =?utf-8?B?N2hoTm9EQjFxMFVEeUxnNDI4ZENEVjRZMm4ySVlsdk11YVVQK1FsckhIOTBE?=
 =?utf-8?B?TkFMbnVWRDFXSnZjLzBXazdJN3hoSGM5M25iRlArWnpObDgzNWtkYldMV0Ez?=
 =?utf-8?B?SlBnSXVEejhTUGhqN1prcEZ0OFhidmxIYWwxZFRucnFuSTNPZ25XS3ZBaE1L?=
 =?utf-8?B?MVJ4OFpldC9sTFRGOEZXWnQrczFnTWkvaHlCOEhKejBWVHUyYmhJaTlnenYw?=
 =?utf-8?B?TmlSZXZ5M2svRUNERmUxZEdNR1lLOVRFeGhmTlRlS3VzN0NoSXprSWJJOFh1?=
 =?utf-8?B?bTF0Yks0ZnhFUVg5WGkvdTVYc0xGR2VSbi9JSDF4TDI1d1RLTUVyakUxNENp?=
 =?utf-8?B?M1podE41NW5BUzdiUW1EYThhWktpd2hUTVBGcHYzZWw5dFRvclVwRnJOeEFO?=
 =?utf-8?B?MnA3dGhkYytraW1ZdWdiVnRWUXhweTQzbW14eDI0TWhSUitPYWRCc3NrdXk5?=
 =?utf-8?B?ZkJnRStPRi9GUU95THJJejNTN0pTSy94dW1NM1lSUm5aL3k4MW5JMXlYNEpQ?=
 =?utf-8?B?OHhqLzZjNVpuR2dGY0F5ZS9NKzV6SDFVWThCWmVtTlBoOGxkRnFmZmRBbEt1?=
 =?utf-8?B?ZGdwV2NRZ3pTc3JOUGtVU1JrbG90MEVDU0Y3RFVLM0lYV1ZKQ3lMZGRDTWRB?=
 =?utf-8?B?YllwTDJUVEFyN1FzZmJYWlRmbHVRMS9PMVJCVmJ2Rlh5WXFiY2UyQnZaRHVk?=
 =?utf-8?B?eTBKcXlxMmk2ZnltU1pUNXVDZmZoVGVOUGVyaDVpczQ5YmMvZTE1aENyTnh0?=
 =?utf-8?B?ZVJGZXdmdkF5dEZzRXBEbUZrRjZmbG9uQWx1WE9QY1pWd0pTRS9IeExtc0xz?=
 =?utf-8?Q?hL84Yc?=
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: 29 Apr 2025 10:48:14.5788
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 68fe5ac4-859d-4a88-d579-08dd870b57fe
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:
	CY4PEPF0000E9D1.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR12MB7013

On Tue Apr 29, 2025 at 9:28 AM BST, Jan Beulich wrote:
> On 28.04.2025 21:57, Ariadne Conill wrote:
>> Previously Xen placed the hypercall page at the highest possible MFN,
>> but this caused problems on systems where there is more than 36 bits
>> of physical address space.
>
> Hmm, I should have asked already on the earlier version: What kinds of
> problems are these, beyond ...
>
>> In general, it also seems unreliable to assume that the highest possible
>> MFN is not already reserved for some other purpose.
>
> ... this particular aspect? I find it puzzling that such problems would
> depend on the number of physical address bits.
>
> Jan

Pagefault on access (due to reserved bits being set) on access to the
hypercall page. The available guest-physical address space doesn't seem
to be as wide as advertised, though I didn't carry enough tests to
single this as the only explanation. Seeing how we don't really know
what's already on the last mfn this seems like a strict improvement
irrespective of the actual cause of the fault.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Tue Apr 29 11:06:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 11:06:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.971955.1360342 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9inR-0001XV-Va; Tue, 29 Apr 2025 11:06:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 971955.1360342; Tue, 29 Apr 2025 11:06: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 1u9inR-0001XO-Sj; Tue, 29 Apr 2025 11:06:41 +0000
Received: by outflank-mailman (input) for mailman id 971955;
 Tue, 29 Apr 2025 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=Cjpo=XP=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1u9inQ-0001XI-U3
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 11:06:41 +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 0601776a-24ea-11f0-9eb4-5ba50f476ded;
 Tue, 29 Apr 2025 13:06:39 +0200 (CEST)
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 8AC531F7BA;
 Tue, 29 Apr 2025 11:06:38 +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 2274C13A8B;
 Tue, 29 Apr 2025 11:06:38 +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 xofSBr6yEGgBOwAAD6G6ig
 (envelope-from <jgross@suse.com>); Tue, 29 Apr 2025 11:06:38 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0601776a-24ea-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1745924798; 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=3mpScZKwUqZ2AmCBpuL0+mLL4bmvGRnF/S8OMI568B4=;
	b=kXpqVXYvjo0VbKeIEsi0fFFWm2UU6ZaMq2+PO1X4w7qMP2tCfiUXJypU2TzQRgh2blJ0Om
	oxITtQMcTA2+ALHniKpO1niQ2PR44Vvfjhy5mGSrioqNKg8YB0MFz3D+w2dnfbZ1KeEzBa
	XxoA9KQuR+TKHQzAiL7CkRgguILjSHA=
Authentication-Results: smtp-out2.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=kXpqVXYv
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1745924798; 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=3mpScZKwUqZ2AmCBpuL0+mLL4bmvGRnF/S8OMI568B4=;
	b=kXpqVXYvjo0VbKeIEsi0fFFWm2UU6ZaMq2+PO1X4w7qMP2tCfiUXJypU2TzQRgh2blJ0Om
	oxITtQMcTA2+ALHniKpO1niQ2PR44Vvfjhy5mGSrioqNKg8YB0MFz3D+w2dnfbZ1KeEzBa
	XxoA9KQuR+TKHQzAiL7CkRgguILjSHA=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Community Manager <community.manager@xenproject.org>,
	Samuel Thibault <samuel.thibault@ens-lyon.org>
Subject: [PATCH v3 0/4] remove qemu-traditional
Date: Tue, 29 Apr 2025 13:06:30 +0200
Message-ID: <20250429110636.30518-1-jgross@suse.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Rspamd-Queue-Id: 8AC531F7BA
X-Spam-Score: -1.51
X-Rspamd-Action: no action
X-Spamd-Result: default: False [-1.51 / 50.00];
	BAYES_HAM(-3.00)[100.00%];
	SUSPICIOUS_RECIPS(1.50)[];
	MID_CONTAINS_FROM(1.00)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	R_MISSING_CHARSET(0.50)[];
	R_DKIM_ALLOW(-0.20)[suse.com:s=susede1];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	MIME_GOOD(-0.10)[text/plain];
	MX_GOOD(-0.01)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[imap1.dmz-prg2.suse.org:rdns,imap1.dmz-prg2.suse.org:helo,suse.com:mid,suse.com:dkim];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	FUZZY_BLOCKED(0.00)[rspamd.com];
	RBL_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	ARC_NA(0.00)[];
	MIME_TRACE(0.00)[0:+];
	SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	RCPT_COUNT_TWELVE(0.00)[13];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	FROM_HAS_DN(0.00)[];
	FROM_EQ_ENVFROM(0.00)[];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	TAGGED_RCPT(0.00)[];
	DNSWL_BLOCKED(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	RCVD_COUNT_TWO(0.00)[2];
	DKIM_TRACE(0.00)[suse.com:+];
	FREEMAIL_CC(0.00)[suse.com,vates.tech,citrix.com,amd.com,xen.org,kernel.org,invisiblethingslab.com,gmail.com,xenproject.org,ens-lyon.org];
	RCVD_TLS_ALL(0.00)[];
	TO_DN_SOME(0.00)[];
	FREEMAIL_ENVRCPT(0.00)[gmail.com]
X-Rspamd-Server: rspamd1.dmz-prg2.suse.org
X-Spam-Flag: NO
X-Spam-Level: 

Remove the qemu-traditional support. This includes the Mini-OS
based ioemu-stubdom.

Don't remove ROMBIOS for now, as it can be used with qemu (XenServer
is doing that).

After adding the series a run of autoconf should be done.

Changes in V2:
- addressed comments

Changes in V3:
- patches 1 and 5 of V2 have been applied already
- addressed comments

Juergen Gross (4):
  docs: remove qemu-traditional support from documentation
  tools: remove support for running a guest with qemu-traditional
  tools: remove qemu-traditional
  build: don't require full tools build for building stubdoms

 .gitignore                                    |   3 -
 CHANGELOG.md                                  |   1 +
 Config.mk                                     |  38 --
 INSTALL                                       |  13 -
 MAINTAINERS                                   |   4 -
 Makefile                                      |   2 +-
 README                                        |   2 +-
 SUPPORT.md                                    |  16 -
 config/Paths.mk.in                            |   3 +-
 config/Tools.mk.in                            |   1 -
 docs/man/xl-pci-configuration.5.pod           |   4 +-
 docs/man/xl.cfg.5.pod.in                      |  49 +--
 docs/misc/stubdom.txt                         |  52 ---
 docs/misc/xenstore-paths.pandoc               |   3 +-
 docs/process/branching-checklist.txt          |   4 -
 docs/process/release-technician-checklist.txt |   3 -
 docs/process/xen-release-management.pandoc    |   2 +-
 stubdom/.gitignore                            |   3 -
 stubdom/Makefile                              |  97 +-----
 stubdom/configure                             |  89 -----
 stubdom/configure.ac                          |  15 -
 stubdom/ioemu-minios.cfg                      |   6 -
 tools/Makefile                                |  58 ----
 tools/Rules.mk                                |   3 -
 tools/config.h.in                             |   3 -
 tools/configure                               |  42 +--
 tools/configure.ac                            |  21 +-
 tools/firmware/hvmloader/Makefile             |   3 +-
 tools/firmware/hvmloader/pci.c                |  17 +-
 tools/firmware/hvmloader/util.c               |   9 +-
 tools/libacpi/mk_dsdt.c                       | 183 +++-------
 tools/libs/light/libxl_create.c               |  78 +----
 tools/libs/light/libxl_device.c               |  19 -
 tools/libs/light/libxl_disk.c                 |   7 -
 tools/libs/light/libxl_dm.c                   | 327 +-----------------
 tools/libs/light/libxl_dom.c                  |  10 -
 tools/libs/light/libxl_dom_save.c             | 140 --------
 tools/libs/light/libxl_dom_suspend.c          |  65 ----
 tools/libs/light/libxl_domain.c               |  15 -
 tools/libs/light/libxl_exec.c                 |  75 ----
 tools/libs/light/libxl_internal.c             |   6 +-
 tools/libs/light/libxl_internal.h             |  68 +---
 tools/libs/light/libxl_pci.c                  | 183 ----------
 tools/libs/light/libxl_sr_stream_format.h     |   2 +-
 tools/libs/light/libxl_stream_write.c         |   4 -
 tools/libs/light/libxl_types.idl              |   2 +-
 tools/python/xen/migration/libxl.py           |   2 -
 tools/xl/xl_parse.c                           |   5 +-
 48 files changed, 103 insertions(+), 1654 deletions(-)
 delete mode 100644 stubdom/ioemu-minios.cfg

-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 29 11:06:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 11:06:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.971956.1360353 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9inZ-0001ma-61; Tue, 29 Apr 2025 11:06:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 971956.1360353; Tue, 29 Apr 2025 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 1u9inZ-0001mP-3V; Tue, 29 Apr 2025 11:06:49 +0000
Received: by outflank-mailman (input) for mailman id 971956;
 Tue, 29 Apr 2025 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=Cjpo=XP=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1u9inY-0001lr-1W
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 11:06:48 +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 093b7c7d-24ea-11f0-9ffb-bf95429c2676;
 Tue, 29 Apr 2025 13:06:44 +0200 (CEST)
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 4CA0421199;
 Tue, 29 Apr 2025 11:06:44 +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 F068D13A8B;
 Tue, 29 Apr 2025 11:06:43 +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 Qu7uOMOyEGgNOwAAD6G6ig
 (envelope-from <jgross@suse.com>); Tue, 29 Apr 2025 11:06: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: 093b7c7d-24ea-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1745924804; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=pmW3Z8PxhY68j0KGzwNsOgL5CZUZko1PJrOiOnKvPqw=;
	b=sJ3FmXh5ti0nWyTBhLLCatLPMsOZ9sqjmCf/U7WfwScO1b9BK9kMGBF1X4Q4esTg6XqBqe
	pVNpBENbJ8yJ5EXlySTkQfGGEQyKYVBaRxoF+6xgRbcgCT3YAXptyk04eeTAfdL5ZHGY/y
	+FEkRqbr5zBWqU3lhO/aLgkSfOZa9hY=
Authentication-Results: smtp-out1.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1745924804; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=pmW3Z8PxhY68j0KGzwNsOgL5CZUZko1PJrOiOnKvPqw=;
	b=sJ3FmXh5ti0nWyTBhLLCatLPMsOZ9sqjmCf/U7WfwScO1b9BK9kMGBF1X4Q4esTg6XqBqe
	pVNpBENbJ8yJ5EXlySTkQfGGEQyKYVBaRxoF+6xgRbcgCT3YAXptyk04eeTAfdL5ZHGY/y
	+FEkRqbr5zBWqU3lhO/aLgkSfOZa9hY=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v3 1/4] docs: remove qemu-traditional support from documentation
Date: Tue, 29 Apr 2025 13:06:31 +0200
Message-ID: <20250429110636.30518-2-jgross@suse.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20250429110636.30518-1-jgross@suse.com>
References: <20250429110636.30518-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Level: 
X-Spamd-Result: default: False [-2.80 / 50.00];
	BAYES_HAM(-3.00)[100.00%];
	MID_CONTAINS_FROM(1.00)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	R_MISSING_CHARSET(0.50)[];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	MIME_GOOD(-0.10)[text/plain];
	RCPT_COUNT_SEVEN(0.00)[9];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	MIME_TRACE(0.00)[0:+];
	ARC_NA(0.00)[];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	FUZZY_BLOCKED(0.00)[rspamd.com];
	FROM_EQ_ENVFROM(0.00)[];
	FROM_HAS_DN(0.00)[];
	TO_DN_SOME(0.00)[];
	RCVD_COUNT_TWO(0.00)[2];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[imap1.dmz-prg2.suse.org:helo,suse.com:email,suse.com:mid];
	RCVD_TLS_ALL(0.00)[]
X-Spam-Score: -2.80
X-Spam-Flag: NO

In preparation to no longer support qemu-traditional (including
qemu-stubdom), remove it from documentation.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
V2:
- mention "qemu_xen_traditional" in xenstore-paths.pandoc as a removed
  device model variant (Andrew Cooper)
- don't drop Config.mk related documentation for QEMU_TRADITIONAL_REVISION
  (Jan Beulich)
V3:
- drop another opengl reference (Anthony Perard)
- drop 2 superfluous sentences for gfx_passthru (Anthony Perard)
- reword a bios_path_override note (Anthony Perard)
---
 docs/man/xl-pci-configuration.5.pod           |  4 +-
 docs/man/xl.cfg.5.pod.in                      | 49 +++--------------
 docs/misc/stubdom.txt                         | 52 -------------------
 docs/misc/xenstore-paths.pandoc               |  3 +-
 docs/process/branching-checklist.txt          |  3 --
 docs/process/release-technician-checklist.txt |  2 -
 docs/process/xen-release-management.pandoc    |  2 +-
 7 files changed, 13 insertions(+), 102 deletions(-)

diff --git a/docs/man/xl-pci-configuration.5.pod b/docs/man/xl-pci-configuration.5.pod
index ec76f590b7..0691f06ad3 100644
--- a/docs/man/xl-pci-configuration.5.pod
+++ b/docs/man/xl-pci-configuration.5.pod
@@ -111,8 +111,8 @@ if this parameter is not specified.
 =item Description
 
 By default pciback only allows PV guests to write "known safe" values
-into PCI configuration space, likewise QEMU (both qemu-xen and
-qemu-xen-traditional) imposes the same constraint on HVM guests.
+into PCI configuration space, likewise QEMU imposes the same constraint
+on HVM guests.
 However, many devices require writes to other areas of the configuration space
 in order to operate properly.  This option tells the backend (pciback or QEMU)
 to allow all writes to the PCI configuration space of this device by this
diff --git a/docs/man/xl.cfg.5.pod.in b/docs/man/xl.cfg.5.pod.in
index 7339c44efd..c388899306 100644
--- a/docs/man/xl.cfg.5.pod.in
+++ b/docs/man/xl.cfg.5.pod.in
@@ -841,7 +841,7 @@ This option does not control the emulated graphics card presented to
 an HVM guest. See B<Emulated VGA Graphics Device> below for how to
 configure the emulated device. If B<Emulated VGA Graphics Device> options
 are used in a PV guest configuration, B<xl> will pick up B<vnc>, B<vnclisten>,
-B<vncpasswd>, B<vncdisplay>, B<vncunused>, B<sdl>, B<opengl> and
+B<vncpasswd>, B<vncdisplay>, B<vncunused>, B<sdl> and
 B<keymap> to construct the paravirtual framebuffer device for the guest.
 
 Each B<VFB_SPEC_STRING> is a comma-separated list of C<KEY=VALUE>
@@ -895,12 +895,6 @@ is used.
 Specifies the path to the X authority file that should be used to
 connect to the X server when the B<sdl> option is used.
 
-=item B<opengl=BOOLEAN>
-
-Enable OpenGL acceleration of the SDL display. Only effects machines
-using B<device_model_version="qemu-xen-traditional"> and only if the
-device-model was compiled with OpenGL support. The default is 0 (disabled).
-
 =item B<keymap=LANG>
 
 Configure the keymap to use for the keyboard associated with this
@@ -1215,17 +1209,11 @@ working graphics passthrough. See the XenVGAPassthroughTestedAdapters
 L<https://wiki.xenproject.org/wiki/XenVGAPassthroughTestedAdapters> wiki page
 for graphics cards currently supported by B<gfx_passthru>.
 
-B<gfx_passthru> is currently supported both with the qemu-xen-traditional
-device-model and upstream qemu-xen device-model.
-
 When given as a boolean the B<gfx_passthru> option either disables graphics
 card passthrough or enables autodetection.
 
 When given as a string the B<gfx_passthru> option describes the type
-of device to enable. Note that this behavior is only supported with the
-upstream qemu-xen device-model. With qemu-xen-traditional IGD (Intel Graphics
-Device) is always assumed and options other than autodetect or explicit IGD
-will result in an error.
+of device to enable.
 
 Currently, valid values for the option are:
 
@@ -1903,10 +1891,7 @@ it may be useful to request a different one, like UEFI.
 
 =item B<rombios>
 
-Loads ROMBIOS, a 16-bit x86 compatible BIOS. This is used by default
-when B<device_model_version=qemu-xen-traditional>. This is the only BIOS
-option supported when B<device_model_version=qemu-xen-traditional>. This is
-the BIOS used by all previous Xen versions.
+Loads ROMBIOS, a 16-bit x86 compatible BIOS.
 
 =item B<seabios>
 
@@ -1926,8 +1911,7 @@ Override the path to the blob to be used as BIOS. The blob provided here MUST
 be consistent with the B<bios=> which you have specified. You should not
 normally need to specify this option.
 
-This option does not have any effect if using B<bios="rombios"> or
-B<device_model_version="qemu-xen-traditional">.
+Requires B<device_model_version="qemu-xen">.
 
 =item B<pae=BOOLEAN>
 
@@ -2516,15 +2500,10 @@ Sets the amount of RAM which the emulated video card will contain,
 which in turn limits the resolutions and bit depths which will be
 available.
 
-When using the qemu-xen-traditional device-model, the default as well as
-minimum amount of video RAM for stdvga is 8 MB, which is sufficient for e.g.
-1600x1200 at 32bpp. For the upstream qemu-xen device-model, the default and
-minimum is 16 MB.
+When using stdvga, the default and minimum is 16 MB.
 
-When using the emulated Cirrus graphics card (B<vga="cirrus">) and the
-qemu-xen-traditional device-model, the amount of video RAM is fixed at 4 MB,
-which is sufficient for 1024x768 at 32 bpp. For the upstream qemu-xen
-device-model, the default and minimum is 8 MB.
+When using the emulated Cirrus graphics card (B<vga="cirrus">), the
+default and minimum is 8 MB.
 
 For QXL vga, both the default and minimal are 128MB.
 If B<videoram> is set less than 128MB, an error will be triggered.
@@ -2590,12 +2569,6 @@ B<qemu(1)> manpage. The default is B<en-us>.
 Specifies that the display should be presented via an X window (using
 Simple DirectMedia Layer). The default is (0) not enabled.
 
-=item B<opengl=BOOLEAN>
-
-Enable OpenGL acceleration of the SDL display. Only effects machines
-using B<device_model_version="qemu-xen-traditional"> and only if the
-device-model was compiled with OpenGL support. Default is (0) false.
-
 =item B<nographic=BOOLEAN>
 
 Enable or disable the virtual graphics device.  The default is to
@@ -2925,11 +2898,6 @@ Valid values are:
 Use the device-model merged into the upstream QEMU project.
 This device-model is the default for Linux dom0.
 
-=item B<qemu-xen-traditional>
-
-Use the device-model based upon the historical Xen fork of QEMU.
-This device-model is still the default for NetBSD dom0.
-
 =back
 
 It is recommended to accept the default value for new guests.  If
@@ -2949,8 +2917,7 @@ to specify this option.
 Override the path to the kernel image used as device-model stubdomain.
 The binary provided here MUST be consistent with the
 B<device_model_version> which you have specified.
-In case of B<qemu-xen-traditional> it is expected to be MiniOS-based stubdomain
-image, in case of B<qemu-xen> it is expected to be Linux-based stubdomain
+In case of B<qemu-xen> it is expected to be Linux-based stubdomain
 kernel.
 
 =item B<stubdomain_cmdline="STRING">
diff --git a/docs/misc/stubdom.txt b/docs/misc/stubdom.txt
index 64c220db20..cfcba4ba96 100644
--- a/docs/misc/stubdom.txt
+++ b/docs/misc/stubdom.txt
@@ -23,58 +23,6 @@ and https://wiki.xen.org/wiki/Device_Model_Stub_Domains for more
 information on device model stub domains
 
 
-Toolstack to MiniOS ioemu stubdomain protocol
----------------------------------------------
-
-This section describe communication protocol between toolstack and
-qemu-traditional running in MiniOS stubdomain. The protocol include
-expectations of both qemu and stubdomain itself.
-
-Setup (done by toolstack, expected by stubdomain):
- - Block devices for target domain are connected as PV disks to stubdomain,
-   according to configuration order, starting with xvda
- - Network devices for target domain are connected as PV nics to stubdomain,
-   according to configuration order, starting with 0
- - if graphics output is expected, VFB and VKB devices are set for stubdomain
-   (its backend is responsible for exposing them using appropriate protocol
-   like VNC or Spice)
- - other target domain's devices are not connected at this point to stubdomain
-   (may be hot-plugged later)
- - QEMU command line (space separated arguments) is stored in
-   /vm/<target-uuid>/image/dmargs xenstore path
- - target domain id is stored in /local/domain/<stubdom-id>/target xenstore path
-?? - bios type is stored in /local/domain/<target-id>/hvmloader/bios
- - stubdomain's console 0 is connected to qemu log file
- - stubdomain's console 1 is connected to qemu save file (for saving state)
- - stubdomain's console 2 is connected to qemu save file (for restoring state)
- - next consoles are connected according to target guest's serial console configuration
-
-Startup:
-1. PV stubdomain is started with ioemu-stubdom.gz kernel and no initrd
-2. stubdomain initialize relevant devices
-3. stubdomain signal readiness by writing "running" to /local/domain/<stubdom-id>/device-model/<target-id>/state xenstore path
-4. now stubdomain is considered running
-
-Runtime control (hotplug etc):
-Toolstack can issue command through xenstore. The sequence is (from toolstack POV):
-1. Write parameter to /local/domain/<stubdom-id>/device-model/<target-id>/parameter.
-2. Write command to /local/domain/<stubdom-id>/device-model/<target-id>/command.
-3. Wait for command result in /local/domain/<stubdom-id>/device-model/<target-id>/state (command specific value).
-4. Write "running" back to /local/domain/<stubdom-id>/device-model/<target-id>/state.
-
-Defined commands:
- - "pci-ins" - PCI hot plug, results:
-   - "pci-inserted" - success
-   - "pci-insert-failed" - failure
- - "pci-rem" - PCI hot remove, results:
-   - "pci-removed" - success
-   - ??
- - "save" - save domain state to console 1, results:
-   - "paused" - success
- - "continue" - resume domain execution, after loading state from console 2 (require -loadvm command argument), results:
-   - "running" - success
-
-
 Toolstack to Linux ioemu stubdomain protocol
 --------------------------------------------
 
diff --git a/docs/misc/xenstore-paths.pandoc b/docs/misc/xenstore-paths.pandoc
index a604f6b1c6..01a340fafc 100644
--- a/docs/misc/xenstore-paths.pandoc
+++ b/docs/misc/xenstore-paths.pandoc
@@ -636,7 +636,8 @@ Trustworthy copy of /local/domain/$DOMID/backend/$KIND/$DEVID/$NODE.
 
 #### /libxl/$DOMID/dm-version ("qemu_xen"|"qemu_xen_traditional") = [n,INTERNAL]
 
-The device model version for a domain.
+The device model version for a domain. Note that "qemu_xen_traditional" is
+a device model variant which has been removed from Xen.
 
 #### /libxl/$DOMID/remus/netbuf/$DEVID/ifb = STRING [n,INTERNAL]
 
diff --git a/docs/process/branching-checklist.txt b/docs/process/branching-checklist.txt
index 3dfa8ec257..aa7a27eed5 100644
--- a/docs/process/branching-checklist.txt
+++ b/docs/process/branching-checklist.txt
@@ -14,8 +14,6 @@ ov=4.0
     cd ~/git/qemu-xen.git
     git branch staging-$v staging
     git branch stable-$v master
-    cd ~/git/qemu-xen-traditional.git
-    git branch stable-$v master
 
 # make branch in libvirt
     ssh xen@xenbits.xen.org
@@ -63,7 +61,6 @@ ov=4.0
     cp xen--staging.patchbot-reported-heads xen--staging-$v.patchbot-reported-heads
     cp qemu-xen--master.patchbot-reported-heads  qemu-xen--stable-$v.patchbot-reported-heads
     cp qemu-xen--staging.patchbot-reported-heads  qemu-xen--staging-$v.patchbot-reported-heads
-    cp qemu-xen-traditional--master.patchbot-reported-heads qemu-xen-traditional--stable-$v.patchbot-reported-heads
 
     #emacs versions
     perl -i~ -pe 'next unless m/\b\Q'$ov'\E\b/; $x=$_; $x=~ s/\b\Q'$ov'\E\b/'$v'/g; print $x;' versions
diff --git a/docs/process/release-technician-checklist.txt b/docs/process/release-technician-checklist.txt
index 7bbe7c1489..829e8ec47b 100644
--- a/docs/process/release-technician-checklist.txt
+++ b/docs/process/release-technician-checklist.txt
@@ -32,8 +32,6 @@ t=RELEASE-$r
   git show # should show appropriate intended commit
   git-tag -u 'Xen.org Xen tree code signing' -m "Xen $v" xen-$v
 
-  git-push xenbits.xen.org:/home/xen/git/qemu-xen-traditional.git $s:stable-$x xen-$v
-
 # consider making tag in minios, and updating xen.git Config.mk
   git checkout SOMETHING
   git show # should show appropriate intended commit
diff --git a/docs/process/xen-release-management.pandoc b/docs/process/xen-release-management.pandoc
index 7826419dad..5da18f6da1 100644
--- a/docs/process/xen-release-management.pandoc
+++ b/docs/process/xen-release-management.pandoc
@@ -193,7 +193,7 @@ from the last RC:
 
 1. Send out commit moratorium emails to committers@.
 
-2. Check all the trees (mini-os, qemu-trad, qemu-xen, seabios, ovmf etc).
+2. Check all the trees (mini-os, qemu-xen, seabios, ovmf etc).
 They have the correct commits and all security patches applied. There will be
 tools provided.
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 29 11:06:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 11:06:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.971958.1360363 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9ine-00024p-IY; Tue, 29 Apr 2025 11:06:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 971958.1360363; Tue, 29 Apr 2025 11: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 1u9ine-00024i-FI; Tue, 29 Apr 2025 11:06:54 +0000
Received: by outflank-mailman (input) for mailman id 971958;
 Tue, 29 Apr 2025 11:06: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=Cjpo=XP=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1u9ind-0001lr-GQ
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 11:06:53 +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 0cdbdee4-24ea-11f0-9ffb-bf95429c2676;
 Tue, 29 Apr 2025 13:06:50 +0200 (CEST)
Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org
 [IPv6:2a07:de40:b281:104:10:150:64:97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out1.suse.de (Postfix) with ESMTPS id 1BC8121197;
 Tue, 29 Apr 2025 11:06:50 +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 C31E613A8B;
 Tue, 29 Apr 2025 11:06:49 +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 v8oaLsmyEGgWOwAAD6G6ig
 (envelope-from <jgross@suse.com>); Tue, 29 Apr 2025 11:06: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: 0cdbdee4-24ea-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1745924810; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=wjUL+yGjDzm2rO9iqke3eqrtGHODHyghz9UUviT9mvA=;
	b=ePg24WTHxENaP1EfvJxesn2grxrDFdO8MNiUoj3vJSIJJnYgwGIRXO9Jf+uHUktxIZxo10
	tQHKi7MLetBLVDQ8dsCsAL8wwRG3jIu0dQiSgLBlyxmrgOlCSTCobMSDbazQqBsVkQQ71q
	D3tUVbPlptyu0rMveiM5QcYoy28Lhlw=
Authentication-Results: smtp-out1.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=ePg24WTH
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1745924810; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=wjUL+yGjDzm2rO9iqke3eqrtGHODHyghz9UUviT9mvA=;
	b=ePg24WTHxENaP1EfvJxesn2grxrDFdO8MNiUoj3vJSIJJnYgwGIRXO9Jf+uHUktxIZxo10
	tQHKi7MLetBLVDQ8dsCsAL8wwRG3jIu0dQiSgLBlyxmrgOlCSTCobMSDbazQqBsVkQQ71q
	D3tUVbPlptyu0rMveiM5QcYoy28Lhlw=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.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>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH v3 2/4] tools: remove support for running a guest with qemu-traditional
Date: Tue, 29 Apr 2025 13:06:32 +0200
Message-ID: <20250429110636.30518-3-jgross@suse.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20250429110636.30518-1-jgross@suse.com>
References: <20250429110636.30518-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Rspamd-Queue-Id: 1BC8121197
X-Spam-Score: -3.01
X-Rspamd-Action: no action
X-Spamd-Result: default: False [-3.01 / 50.00];
	BAYES_HAM(-3.00)[100.00%];
	MID_CONTAINS_FROM(1.00)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	R_MISSING_CHARSET(0.50)[];
	R_DKIM_ALLOW(-0.20)[suse.com:s=susede1];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	MIME_GOOD(-0.10)[text/plain];
	MX_GOOD(-0.01)[];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	MIME_TRACE(0.00)[0:+];
	ARC_NA(0.00)[];
	TO_DN_SOME(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];
	RCVD_TLS_ALL(0.00)[];
	DKIM_TRACE(0.00)[suse.com:+];
	RCVD_COUNT_TWO(0.00)[2];
	FROM_EQ_ENVFROM(0.00)[];
	FROM_HAS_DN(0.00)[];
	SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	DNSWL_BLOCKED(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	RECEIVED_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:106:10:150:64:167:received];
	RCPT_COUNT_SEVEN(0.00)[7];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[imap1.dmz-prg2.suse.org:rdns,imap1.dmz-prg2.suse.org:helo,suse.com:dkim,suse.com:mid,suse.com:email,roms.inc:url]
X-Rspamd-Server: rspamd1.dmz-prg2.suse.org
X-Spam-Flag: NO
X-Spam-Level: 

Remove the code in tools for running a guest with qemu-traditional.
This covers xl, libxl, libacpi, hvmloader and the related python and
go bindings.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
V2:
- Keep most of the removed comment in hvmloader, while removing parts
  of another one (Jan Beulich)
V3:
- keep the default of allow_memory_relocate = 1; (Anthony Perard)
- expand a comment in hvmloader's pci_setup() (Anthony Perard)
- don't build in dsdt_anycpu and dsdt_15cpu if not needed (Anthony Perard)
- make --dm_version a mandatory mk_dsdt parameter (Anthony Perard)
- simplify code in libxl__domain_build_info_setdefault() (Anthony Perard)
- make comments in libxl_dm.c more clear (Anthony Perard)
- remove some more no longer used libxl functions (Anthony Perard)
- keep QEMU_XEN_TRADITIONAL define (Anthony Perard)

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 tools/firmware/hvmloader/Makefile         |   3 +-
 tools/firmware/hvmloader/pci.c            |  17 +-
 tools/firmware/hvmloader/util.c           |   9 +-
 tools/libacpi/mk_dsdt.c                   | 183 +++---------
 tools/libs/light/libxl_create.c           |  78 +-----
 tools/libs/light/libxl_device.c           |  19 --
 tools/libs/light/libxl_disk.c             |   7 -
 tools/libs/light/libxl_dm.c               | 327 +---------------------
 tools/libs/light/libxl_dom.c              |  10 -
 tools/libs/light/libxl_dom_save.c         | 140 ---------
 tools/libs/light/libxl_dom_suspend.c      |  65 -----
 tools/libs/light/libxl_domain.c           |  15 -
 tools/libs/light/libxl_exec.c             |  75 -----
 tools/libs/light/libxl_internal.c         |   6 +-
 tools/libs/light/libxl_internal.h         |  68 +----
 tools/libs/light/libxl_pci.c              | 183 ------------
 tools/libs/light/libxl_sr_stream_format.h |   2 +-
 tools/libs/light/libxl_stream_write.c     |   4 -
 tools/libs/light/libxl_types.idl          |   2 +-
 tools/python/xen/migration/libxl.py       |   2 -
 tools/xl/xl_parse.c                       |   5 +-
 21 files changed, 74 insertions(+), 1146 deletions(-)

diff --git a/tools/firmware/hvmloader/Makefile b/tools/firmware/hvmloader/Makefile
index cc5dc00498..c94c439277 100644
--- a/tools/firmware/hvmloader/Makefile
+++ b/tools/firmware/hvmloader/Makefile
@@ -59,6 +59,7 @@ OBJS += optionroms.o 32bitbios_support.o rombios.o
 CFLAGS += -DENABLE_ROMBIOS
 ROMBIOS_ROM := $(ROMBIOS_DIR)/BIOS-bochs-latest
 ROMS += $(ROMBIOS_ROM) $(STDVGA_ROM) $(CIRRUSVGA_ROM)
+DSDT_FILES = dsdt_anycpu.c dsdt_15cpu.c
 endif
 
 # Suppress the warning about LOAD segments with RWX permissions, as what we
@@ -76,7 +77,7 @@ rombios.o: roms.inc
 smbios.o: CFLAGS += -D__SMBIOS_DATE__="\"$(SMBIOS_REL_DATE)\""
 
 ACPI_PATH = ../../libacpi
-DSDT_FILES = dsdt_anycpu.c dsdt_15cpu.c dsdt_anycpu_qemu_xen.c
+DSDT_FILES += dsdt_anycpu_qemu_xen.c
 ACPI_OBJS = $(patsubst %.c,%.o,$(DSDT_FILES)) build.o static_tables.o
 $(ACPI_OBJS): CFLAGS += -iquote . -DLIBACPI_STDUTILS=\"$(CURDIR)/util.h\"
 CFLAGS += -I$(ACPI_PATH)
diff --git a/tools/firmware/hvmloader/pci.c b/tools/firmware/hvmloader/pci.c
index c3c61ca060..cc67b18c03 100644
--- a/tools/firmware/hvmloader/pci.c
+++ b/tools/firmware/hvmloader/pci.c
@@ -113,17 +113,7 @@ void pci_setup(void)
      * increase the size of the lowmem MMIO hole?  Defaulting to 1
      * here will mean that non-libxl toolstacks (including xend and
      * home-grown ones) means that those using qemu-xen will still
-     * experience the memory relocation bug described below; but it
-     * also means that those using qemu-traditional will *not*
-     * experience any change; and it also means that there is a
-     * work-around for those using qemu-xen, namely switching to
-     * qemu-traditional.
-     *
-     * If we defaulted to 0, and failing to resize the hole caused any
-     * problems with qemu-traditional, then there is no work-around.
-     *
-     * Since xend can only use qemu-traditional, I think this is the
-     * option that will have the least impact.
+     * experience the memory relocation bug described below.
      */
     bool allow_memory_relocate = 1;
 
@@ -347,9 +337,8 @@ void pci_setup(void)
     {
         /*
          * At the moment qemu-xen can't deal with relocated memory regions.
-         * It's too close to the release to make a proper fix; for now,
-         * only allow the MMIO hole to grow large enough to move guest memory
-         * if we're running qemu-traditional.  Items that don't fit will be
+         * Only allow the MMIO hole to grow large enough to move guest memory
+         * if allow_memory_relocate is true.  Items that don't fit will be
          * relocated into the 64-bit address space.
          *
          * This loop now does the following:
diff --git a/tools/firmware/hvmloader/util.c b/tools/firmware/hvmloader/util.c
index 2d07ce1290..79c0e6bd4a 100644
--- a/tools/firmware/hvmloader/util.c
+++ b/tools/firmware/hvmloader/util.c
@@ -843,14 +843,7 @@ void hvmloader_acpi_build_tables(struct acpi_config *config,
 
     /* If the device model is specified switch to the corresponding tables */
     s = xenstore_read("platform/device-model", "");
-    if ( !strncmp(s, "qemu_xen_traditional", 21) )
-    {
-        config->dsdt_anycpu = dsdt_anycpu;
-        config->dsdt_anycpu_len = dsdt_anycpu_len;
-        config->dsdt_15cpu = dsdt_15cpu;
-        config->dsdt_15cpu_len = dsdt_15cpu_len;
-    }
-    else if ( !strncmp(s, "qemu_xen", 9) )
+    if ( !strncmp(s, "qemu_xen", 9) )
     {
         config->dsdt_anycpu = dsdt_anycpu_qemu_xen;
         config->dsdt_anycpu_len = dsdt_anycpu_qemu_xen_len;
diff --git a/tools/libacpi/mk_dsdt.c b/tools/libacpi/mk_dsdt.c
index 34f6753f61..227b5ceafb 100644
--- a/tools/libacpi/mk_dsdt.c
+++ b/tools/libacpi/mk_dsdt.c
@@ -19,8 +19,8 @@ static bool debug = false;
 
 typedef enum dm_version {
     QEMU_NONE,
-    QEMU_XEN_TRADITIONAL,
     QEMU_XEN,
+    QEMU_INVALID
 } dm_version;
 
 static void indent(void)
@@ -68,30 +68,6 @@ static void pop_block(void)
     printf("}\n");
 }
 
-#ifdef CONFIG_X86
-static void pci_hotplug_notify(unsigned int slt)
-{
-    stmt("Notify", "\\_SB.PCI0.S%02X, EVT", slt);
-}
-
-static void decision_tree(
-    unsigned int s, unsigned int e, char *var, void (*leaf)(unsigned int))
-{
-    if ( s == (e-1) )
-    {
-        (*leaf)(s);
-        return;
-    }
-
-    push_block("If", "And(%s, 0x%02x)", var, (e-s)/2);
-    decision_tree((s+e)/2, e, var, leaf);
-    pop_block();
-    push_block("Else", NULL);
-    decision_tree(s, (s+e)/2, var, leaf);
-    pop_block();
-}
-#endif
-
 static struct option options[] = {
     { "maxcpu", 1, 0, 'c' },
 #ifdef CONFIG_X86
@@ -105,7 +81,7 @@ int main(int argc, char **argv)
 {
     unsigned int cpu, max_cpus;
 #if defined(CONFIG_X86)
-    dm_version dm_version = QEMU_XEN_TRADITIONAL;
+    dm_version dm_version = QEMU_INVALID;
     unsigned int slot, dev, intx, link;
 
     max_cpus = HVM_MAX_VCPUS;
@@ -141,8 +117,6 @@ int main(int argc, char **argv)
         case 'q':
             if (strcmp(optarg, "qemu-xen") == 0) {
                 dm_version = QEMU_XEN;
-            } else if (strcmp(optarg, "qemu-xen-traditional") == 0) {
-                dm_version = QEMU_XEN_TRADITIONAL;
             } else if (strcmp(optarg, "none") == 0) {
                 dm_version = QEMU_NONE;
             } else {
@@ -160,6 +134,11 @@ int main(int argc, char **argv)
         }
     }
 
+    if (dm_version == QEMU_INVALID) {
+        fprintf(stderr, "--dm_version is a mandatory parameter.\n");
+        return -1;
+    }
+
     /**** DSDT DefinitionBlock start ****/
     /* (we append to existing DSDT definition block) */
     indent_level++;
@@ -278,9 +257,7 @@ int main(int argc, char **argv)
 
     /* Define GPE control method. */
     push_block("Scope", "\\_GPE");
-    push_block("Method",
-               dm_version == QEMU_XEN_TRADITIONAL ? "_L%02d" : "_E%02d",
-               XEN_ACPI_GPE0_CPUHP_BIT);
+    push_block("Method", "_E%02d", XEN_ACPI_GPE0_CPUHP_BIT);
     stmt("\\_SB.PRSC ()", NULL);
     pop_block();
     pop_block();
@@ -302,17 +279,10 @@ int main(int argc, char **argv)
      */
     push_block("Device", "HP0"); {
         stmt("Name", "_HID, EISAID(\"PNP0C02\")");
-        if (dm_version == QEMU_XEN_TRADITIONAL) {
-            stmt("Name", "_CRS, ResourceTemplate() {"
-                 "  IO (Decode16, 0x10c0, 0x10c0, 0x00, 0x82)"
-                 "  IO (Decode16, 0xb044, 0xb044, 0x00, 0x04)"
-                 "}");
-        } else {
-            stmt("Name", "_CRS, ResourceTemplate() {"
-                 "  IO (Decode16, 0xae00, 0xae00, 0x00, 0x10)"
-                 "  IO (Decode16, 0xb044, 0xb044, 0x00, 0x04)"
-                 "}");
-        }
+        stmt("Name", "_CRS, ResourceTemplate() {"
+             "  IO (Decode16, 0xae00, 0xae00, 0x00, 0x10)"
+             "  IO (Decode16, 0xb044, 0xb044, 0x00, 0x04)"
+             "}");
     } pop_block();
 
     /*** PCI-ISA link definitions ***/
@@ -397,60 +367,27 @@ int main(int argc, char **argv)
      * QEMU provides a simple hotplug controller with some I/O to handle
      * the hotplug action and status, which is beyond the ACPI scope.
      */
-    if (dm_version == QEMU_XEN_TRADITIONAL) {
-        for ( slot = 0; slot < 0x100; slot++ )
-        {
-            push_block("Device", "S%02X", slot);
-            /* _ADR == dev:fn (16:16) */
-            stmt("Name", "_ADR, 0x%08x", ((slot & ~7) << 13) | (slot & 7));
-            /* _SUN == dev */
-            stmt("Name", "_SUN, 0x%08x", slot >> 3);
-            push_block("Method", "_EJ0, 1");
-            if (debug)
-            {
-                stmt("Store", "0x%02x, \\_GPE.DPT1", slot);
-                stmt("Store", "0x88, \\_GPE.DPT2");
-            }
-            stmt("Store", "0x%02x, \\_GPE.PH%02X", /* eject */
-                 (slot & 1) ? 0x10 : 0x01, slot & ~1);
-            pop_block();
-            push_block("Method", "_STA, 0");
-            if (debug)
-            {
-                stmt("Store", "0x%02x, \\_GPE.DPT1", slot);
-                stmt("Store", "0x89, \\_GPE.DPT2");
-            }
-            if ( slot & 1 )
-                stmt("ShiftRight", "\\_GPE.PH%02X, 0x04, Local1", slot & ~1);
-            else
-                stmt("And", "\\_GPE.PH%02X, 0x0f, Local1", slot & ~1);
-            stmt("Return", "Local1"); /* IN status as the _STA */
-            pop_block();
-            pop_block();
-        }
-    } else {
-        stmt("OperationRegion", "SEJ, SystemIO, 0xae08, 0x08");
-        push_block("Field", "SEJ, DWordAcc, NoLock, WriteAsZeros");
-        indent(); printf("B0EJ, 32,\n");
-        indent(); printf("B0RM, 32,\n");
-        pop_block();
+    stmt("OperationRegion", "SEJ, SystemIO, 0xae08, 0x08");
+    push_block("Field", "SEJ, DWordAcc, NoLock, WriteAsZeros");
+    indent(); printf("B0EJ, 32,\n");
+    indent(); printf("B0RM, 32,\n");
+    pop_block();
 
-        /* hotplug_slot */
-        for (slot = 1; slot <= 31; slot++) {
-            push_block("Device", "S%i", slot); {
-                stmt("Name", "_ADR, %#06x0000", slot);
-                push_block("Method", "_EJ0,1"); {
-                    stmt("Store", "%#010x, B0EJ", 1 << slot);
-                } pop_block();
-                stmt("Name", "_SUN, %i", slot);
-                push_block("Method", "_STA, 0"); {
-                    push_block("If", "And(B0RM, ShiftLeft(1, %i))", slot);
-                    stmt("Return", "0xF");
-                    pop_block();
-                    stmt("Return", "0x0");
-                } pop_block();
+    /* hotplug_slot */
+    for (slot = 1; slot <= 31; slot++) {
+        push_block("Device", "S%i", slot); {
+            stmt("Name", "_ADR, %#06x0000", slot);
+            push_block("Method", "_EJ0,1"); {
+                stmt("Store", "%#010x, B0EJ", 1 << slot);
             } pop_block();
-        }
+            stmt("Name", "_SUN, %i", slot);
+            push_block("Method", "_STA, 0"); {
+                push_block("If", "And(B0RM, ShiftLeft(1, %i))", slot);
+                stmt("Return", "0xF");
+                pop_block();
+                stmt("Return", "0x0");
+            } pop_block();
+        } pop_block();
     }
 
     pop_block();
@@ -460,26 +397,11 @@ int main(int argc, char **argv)
     /**** GPE start ****/
     push_block("Scope", "\\_GPE");
 
-    if (dm_version == QEMU_XEN_TRADITIONAL) {
-        stmt("OperationRegion", "PHP, SystemIO, 0x10c0, 0x82");
-
-        push_block("Field", "PHP, ByteAcc, NoLock, Preserve");
-        indent(); printf("PSTA, 8,\n"); /* hotplug controller event reg */
-        indent(); printf("PSTB, 8,\n"); /* hotplug controller slot reg */
-        for ( slot = 0; slot < 0x100; slot += 2 )
-        {
-            indent();
-            /* Each hotplug control register manages a pair of pci functions. */
-            printf("PH%02X, 8,\n", slot);
-        }
-        pop_block();
-    } else {
-        stmt("OperationRegion", "PCST, SystemIO, 0xae00, 0x08");
-        push_block("Field", "PCST, DWordAcc, NoLock, WriteAsZeros");
-        indent(); printf("PCIU, 32,\n");
-        indent(); printf("PCID, 32,\n");
-        pop_block();
-    }
+    stmt("OperationRegion", "PCST, SystemIO, 0xae00, 0x08");
+    push_block("Field", "PCST, DWordAcc, NoLock, WriteAsZeros");
+    indent(); printf("PCIU, 32,\n");
+    indent(); printf("PCID, 32,\n");
+    pop_block();
 
     stmt("OperationRegion", "DG1, SystemIO, 0xb044, 0x04");
 
@@ -487,35 +409,16 @@ int main(int argc, char **argv)
     indent(); printf("DPT1, 8, DPT2, 8\n");
     pop_block();
 
-    if (dm_version == QEMU_XEN_TRADITIONAL) {
-        push_block("Method", "_L03, 0, Serialized");
-        /* Detect slot and event (remove/add). */
-        stmt("Name", "SLT, 0x0");
-        stmt("Name", "EVT, 0x0");
-        stmt("Store", "PSTA, Local1");
-        stmt("And", "Local1, 0xf, EVT");
-        stmt("Store", "PSTB, Local1"); /* XXX: Store (PSTB, SLT) ? */
-        stmt("And", "Local1, 0xff, SLT");
-        if (debug)
-        {
-            stmt("Store", "SLT, DPT1");
-            stmt("Store", "EVT, DPT2");
-        }
-        /* Decision tree */
-        decision_tree(0x00, 0x100, "SLT", pci_hotplug_notify);
+    push_block("Method", "_E01");
+    for (slot = 1; slot <= 31; slot++) {
+        push_block("If", "And(PCIU, ShiftLeft(1, %i))", slot);
+        stmt("Notify", "\\_SB.PCI0.S%i, 1", slot);
         pop_block();
-    } else {
-        push_block("Method", "_E01");
-        for (slot = 1; slot <= 31; slot++) {
-            push_block("If", "And(PCIU, ShiftLeft(1, %i))", slot);
-            stmt("Notify", "\\_SB.PCI0.S%i, 1", slot);
-            pop_block();
-            push_block("If", "And(PCID, ShiftLeft(1, %i))", slot);
-            stmt("Notify", "\\_SB.PCI0.S%i, 3", slot);
-            pop_block();
-        }
+        push_block("If", "And(PCID, ShiftLeft(1, %i))", slot);
+        stmt("Notify", "\\_SB.PCI0.S%i, 3", slot);
         pop_block();
     }
+    pop_block();
 
     pop_block();
     /**** GPE end ****/
diff --git a/tools/libs/light/libxl_create.c b/tools/libs/light/libxl_create.c
index e03599ea99..8bc768b515 100644
--- a/tools/libs/light/libxl_create.c
+++ b/tools/libs/light/libxl_create.c
@@ -99,35 +99,14 @@ int libxl__domain_build_info_setdefault(libxl__gc *gc,
         b_info->device_model_ssidref = SECINITSID_DOMDM;
 
     if (!b_info->device_model_version) {
-        if (b_info->type == LIBXL_DOMAIN_TYPE_HVM) {
-            if (libxl_defbool_val(b_info->device_model_stubdomain)) {
-                b_info->device_model_version =
-                    LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL;
-            } else {
-                b_info->device_model_version = LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN;
-            }
-        } else {
-            b_info->device_model_version =
-                LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN;
-        }
-        if (b_info->device_model_version
-                == LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN) {
-            const char *dm;
-
-            dm = libxl__domain_device_model(gc, b_info);
-            rc = access(dm, X_OK);
-            if (rc < 0) {
-                /* qemu-xen unavailable, use qemu-xen-traditional */
-                if (errno == ENOENT) {
-                    LOGE(INFO, "qemu-xen is unavailable"
-                         ", using qemu-xen-traditional instead");
-                    b_info->device_model_version =
-                        LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL;
-                } else {
-                    LOGE(ERROR, "qemu-xen access error");
-                    return ERROR_FAIL;
-                }
-            }
+        const char *dm;
+
+        b_info->device_model_version = LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN;
+        dm = libxl__domain_device_model(gc, b_info);
+        rc = access(dm, X_OK);
+        if (rc < 0) {
+            LOGE(ERROR, "qemu-xen access error");
+            return ERROR_FAIL;
         }
     }
 
@@ -137,8 +116,6 @@ int libxl__domain_build_info_setdefault(libxl__gc *gc,
     if (b_info->type == LIBXL_DOMAIN_TYPE_HVM) {
         if (!b_info->u.hvm.bios)
             switch (b_info->device_model_version) {
-            case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL:
-                b_info->u.hvm.bios = LIBXL_BIOS_TYPE_ROMBIOS; break;
             case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN:
                 b_info->u.hvm.bios = LIBXL_BIOS_TYPE_SEABIOS; break;
             default:
@@ -148,12 +125,6 @@ int libxl__domain_build_info_setdefault(libxl__gc *gc,
 
         /* Enforce BIOS<->Device Model version relationship */
         switch (b_info->device_model_version) {
-        case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL:
-            if (b_info->u.hvm.bios != LIBXL_BIOS_TYPE_ROMBIOS) {
-                LOG(ERROR, "qemu-xen-traditional requires bios=rombios.");
-                return ERROR_INVAL;
-            }
-            break;
         case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN:
             if (b_info->u.hvm.bios == LIBXL_BIOS_TYPE_ROMBIOS) {
                 LOG(ERROR, "qemu-xen does not support bios=rombios.");
@@ -176,10 +147,6 @@ int libxl__domain_build_info_setdefault(libxl__gc *gc,
         libxl_defbool_val(b_info->device_model_stubdomain)) {
         if (!b_info->stubdomain_kernel) {
             switch (b_info->device_model_version) {
-                case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL:
-                    b_info->stubdomain_kernel =
-                        libxl__abs_path(NOGC, "ioemu-stubdom.gz", libxl__xenfirmwaredir_path());
-                    break;
                 case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN:
                     b_info->stubdomain_kernel =
                         libxl__abs_path(NOGC,
@@ -192,8 +159,6 @@ int libxl__domain_build_info_setdefault(libxl__gc *gc,
         }
         if (!b_info->stubdomain_ramdisk) {
             switch (b_info->device_model_version) {
-                case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL:
-                    break;
                 case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN:
                     b_info->stubdomain_ramdisk =
                         libxl__abs_path(NOGC,
@@ -299,33 +264,6 @@ int libxl__domain_build_info_setdefault(libxl__gc *gc,
             b_info->u.hvm.hdtype = LIBXL_HDTYPE_IDE;
 
         switch (b_info->device_model_version) {
-        case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL:
-            switch (b_info->u.hvm.vga.kind) {
-            case LIBXL_VGA_INTERFACE_TYPE_NONE:
-                if (b_info->video_memkb == LIBXL_MEMKB_DEFAULT)
-                    b_info->video_memkb = 0;
-                break;
-            case LIBXL_VGA_INTERFACE_TYPE_QXL:
-                LOG(ERROR,"qemu upstream required for qxl vga");
-                return ERROR_INVAL;
-                break;
-            case LIBXL_VGA_INTERFACE_TYPE_STD:
-                if (b_info->video_memkb == LIBXL_MEMKB_DEFAULT)
-                    b_info->video_memkb = 8 * 1024;
-                if (b_info->video_memkb < 8 * 1024) {
-                    LOG(ERROR, "videoram must be at least 8 MB for STDVGA on QEMU_XEN_TRADITIONAL");
-                    return ERROR_INVAL;
-                }
-                break;
-            case LIBXL_VGA_INTERFACE_TYPE_CIRRUS:
-            default:
-                if (b_info->video_memkb == LIBXL_MEMKB_DEFAULT)
-                    b_info->video_memkb = 4 * 1024;
-                if (b_info->video_memkb != 4 * 1024)
-                    LOG(WARN, "ignoring videoram other than 4 MB for CIRRUS on QEMU_XEN_TRADITIONAL");
-                break;
-            }
-            break;
         case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN:
         default:
             switch (b_info->u.hvm.vga.kind) {
diff --git a/tools/libs/light/libxl_device.c b/tools/libs/light/libxl_device.c
index 4faa5fa3bd..42d71c17bc 100644
--- a/tools/libs/light/libxl_device.c
+++ b/tools/libs/light/libxl_device.c
@@ -1440,25 +1440,6 @@ static void devices_remove_callback(libxl__egc *egc,
     return;
 }
 
-int libxl__wait_for_device_model_deprecated(libxl__gc *gc,
-                                 uint32_t domid, char *state,
-                                 libxl__spawn_starting *spawning,
-                                 int (*check_callback)(libxl__gc *gc,
-                                                       uint32_t domid,
-                                                       const char *state,
-                                                       void *userdata),
-                                 void *check_callback_userdata)
-{
-    char *path;
-    uint32_t dm_domid = libxl_get_stubdom_id(CTX, domid);
-
-    path = DEVICE_MODEL_XS_PATH(gc, dm_domid, domid, "/state");
-    return libxl__xenstore_child_wait_deprecated(gc, domid,
-                                     LIBXL_DEVICE_MODEL_START_TIMEOUT,
-                                     "Device Model", path, state, spawning,
-                                     check_callback, check_callback_userdata);
-}
-
 int libxl__wait_for_backend(libxl__gc *gc, const char *be_path,
                             const char *state)
 {
diff --git a/tools/libs/light/libxl_disk.c b/tools/libs/light/libxl_disk.c
index 6a0b6e06fe..456b5450ca 100644
--- a/tools/libs/light/libxl_disk.c
+++ b/tools/libs/light/libxl_disk.c
@@ -1007,13 +1007,6 @@ int libxl_cdrom_insert(libxl_ctx *ctx, uint32_t domid, libxl_device_disk *disk,
         disk->backend = LIBXL_DISK_BACKEND_PHY;
     }
 
-    if (cis->dm_ver == LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL &&
-        stubdomid) {
-        LOGD(ERROR, domid, "cdrom-insert doesn't work for Mini-OS stubdoms");
-        rc = ERROR_INVAL;
-        goto out;
-    }
-
     disks = libxl__device_list(gc, &libxl__disk_devtype, cis->disk_domid, &num);
     for (i = 0; i < num; i++) {
         if (disks[i].is_cdrom && !strcmp(disk->vdev, disks[i].vdev))
diff --git a/tools/libs/light/libxl_dm.c b/tools/libs/light/libxl_dm.c
index 4627564c0d..645119b65a 100644
--- a/tools/libs/light/libxl_dm.c
+++ b/tools/libs/light/libxl_dm.c
@@ -328,9 +328,6 @@ const char *libxl__domain_device_model(libxl__gc *gc,
         dm = libxl__strdup(gc, info->device_model);
     } else {
         switch (info->device_model_version) {
-        case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL:
-            dm = libxl__abs_path(gc, "qemu-dm", libxl__private_bindir_path());
-            break;
         case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN: {
             const char *configured_dm = qemu_xen_path(gc);
             if (configured_dm[0] == '/')
@@ -704,272 +701,6 @@ static const char *dm_keymap(const libxl_domain_config *guest_config)
         return NULL;
 }
 
-static int libxl__build_device_model_args_old(libxl__gc *gc,
-                                        const char *dm, int domid,
-                                        const libxl_domain_config *guest_config,
-                                        char ***args, char ***envs,
-                                        const libxl__domain_build_state *state)
-{
-    const libxl_domain_create_info *c_info = &guest_config->c_info;
-    const libxl_domain_build_info *b_info = &guest_config->b_info;
-    const libxl_device_nic *nics = guest_config->nics;
-    const libxl_vnc_info *vnc = libxl__dm_vnc(guest_config);
-    const libxl_sdl_info *sdl = dm_sdl(guest_config);
-    const int num_nics = guest_config->num_nics;
-    const char *keymap = dm_keymap(guest_config);
-    int i;
-    flexarray_t *dm_args, *dm_envs;
-    dm_args = flexarray_make(gc, 16, 1);
-    dm_envs = flexarray_make(gc, 16, 1);
-
-    assert(state->dm_monitor_fd == -1);
-
-    flexarray_vappend(dm_args, dm,
-                      "-d", GCSPRINTF("%d", domid), NULL);
-
-    if (c_info->name)
-        flexarray_vappend(dm_args, "-domain-name", c_info->name, NULL);
-
-    if (vnc) {
-        char *vncarg = NULL;
-
-        flexarray_append(dm_args, "-vnc");
-
-        /*
-         * If vnc->listen is present and contains a :, and
-         *  - vnc->display is 0, use vnc->listen
-         *  - vnc->display is non-zero, be confused
-         * If vnc->listen is present but doesn't, use vnc->listen:vnc->display.
-         * If vnc->listen is not present, use 127.0.0.1:vnc->display
-         * (Remembering that vnc->display already defaults to 0.)
-         */
-        if (vnc->listen) {
-            if (strchr(vnc->listen, ':') != NULL) {
-                if (vnc->display) {
-                    LOGD(ERROR, domid, "vncdisplay set, vnclisten contains display");
-                    return ERROR_INVAL;
-                }
-                vncarg = vnc->listen;
-            } else {
-                vncarg = GCSPRINTF("%s:%d", vnc->listen, vnc->display);
-            }
-        } else
-            vncarg = GCSPRINTF("127.0.0.1:%d", vnc->display);
-
-        if (vnc->passwd && vnc->passwd[0]) {
-            vncarg = GCSPRINTF("%s,password", vncarg);
-        }
-
-        flexarray_append(dm_args, vncarg);
-
-        if (libxl_defbool_val(vnc->findunused)) {
-            flexarray_append(dm_args, "-vncunused");
-        }
-    } else if (!sdl) {
-        /*
-         * VNC is not enabled by default by qemu-xen-traditional,
-         * however skipping -vnc causes SDL to be
-         * (unexpectedly) enabled by default. If undesired, disable graphics at
-         * all.
-         */
-        flexarray_append(dm_args, "-nographic");
-    }
-
-    if (sdl) {
-        flexarray_append(dm_args, "-sdl");
-        if (!libxl_defbool_val(sdl->opengl)) {
-            flexarray_append(dm_args, "-disable-opengl");
-        }
-        if (sdl->display)
-            flexarray_append_pair(dm_envs, "DISPLAY", sdl->display);
-        if (sdl->xauthority)
-            flexarray_append_pair(dm_envs, "XAUTHORITY", sdl->xauthority);
-    }
-    if (keymap) {
-        flexarray_vappend(dm_args, "-k", keymap, NULL);
-    }
-    if (b_info->type == LIBXL_DOMAIN_TYPE_HVM) {
-        int ioemu_nics = 0;
-        int nr_set_cpus = 0;
-        char *s;
-
-        flexarray_append_pair(dm_envs, "XEN_DOMAIN_ID", GCSPRINTF("%d", domid));
-
-        if (b_info->kernel) {
-            LOGD(ERROR, domid, "HVM direct kernel boot is not supported by "
-                 "qemu-xen-traditional");
-            return ERROR_INVAL;
-        }
-
-        if (b_info->u.hvm.serial || b_info->u.hvm.serial_list) {
-            if ( b_info->u.hvm.serial && b_info->u.hvm.serial_list )
-            {
-                LOGD(ERROR, domid, "Both serial and serial_list set");
-                return ERROR_INVAL;
-            }
-            if (b_info->u.hvm.serial) {
-                flexarray_vappend(dm_args,
-                                  "-serial", b_info->u.hvm.serial, NULL);
-            } else if (b_info->u.hvm.serial_list) {
-                char **p;
-                for (p = b_info->u.hvm.serial_list;
-                     *p;
-                     p++) {
-                    flexarray_vappend(dm_args,
-                                      "-serial",
-                                      *p, NULL);
-                }
-            }
-        }
-
-        if (libxl_defbool_val(b_info->u.hvm.nographic) && (!sdl && !vnc)) {
-            flexarray_append(dm_args, "-nographic");
-        }
-
-        if (b_info->video_memkb) {
-            flexarray_vappend(dm_args, "-videoram",
-                    GCSPRINTF("%d", libxl__sizekb_to_mb(b_info->video_memkb)),
-                    NULL);
-        }
-
-        switch (b_info->u.hvm.vga.kind) {
-        case LIBXL_VGA_INTERFACE_TYPE_STD:
-            flexarray_append(dm_args, "-std-vga");
-            break;
-        case LIBXL_VGA_INTERFACE_TYPE_CIRRUS:
-            break;
-        case LIBXL_VGA_INTERFACE_TYPE_NONE:
-            flexarray_append_pair(dm_args, "-vga", "none");
-            break;
-        case LIBXL_VGA_INTERFACE_TYPE_QXL:
-            break;
-        default:
-            LOGD(ERROR, domid, "Invalid emulated video card specified");
-            return ERROR_INVAL;
-        }
-
-        if (b_info->u.hvm.boot) {
-            flexarray_vappend(dm_args, "-boot", b_info->u.hvm.boot, NULL);
-        }
-        if (libxl_defbool_val(b_info->u.hvm.usb)
-            || b_info->u.hvm.usbdevice
-            || libxl_string_list_length(&b_info->u.hvm.usbdevice_list)) {
-            if (b_info->u.hvm.usbdevice
-                && libxl_string_list_length(&b_info->u.hvm.usbdevice_list)) {
-                LOGD(ERROR, domid, "Both usbdevice and usbdevice_list set");
-                return ERROR_INVAL;
-            }
-            flexarray_append(dm_args, "-usb");
-            if (b_info->u.hvm.usbdevice) {
-                flexarray_vappend(dm_args,
-                                  "-usbdevice", b_info->u.hvm.usbdevice, NULL);
-            } else if (b_info->u.hvm.usbdevice_list) {
-                char **p;
-                for (p = b_info->u.hvm.usbdevice_list;
-                     *p;
-                     p++) {
-                    flexarray_vappend(dm_args,
-                                      "-usbdevice",
-                                      *p, NULL);
-                }
-            }
-        }
-        if (b_info->u.hvm.soundhw) {
-            flexarray_vappend(dm_args, "-soundhw", b_info->u.hvm.soundhw, NULL);
-        }
-        if (libxl__acpi_defbool_val(b_info)) {
-            flexarray_append(dm_args, "-acpi");
-        }
-        if (b_info->max_vcpus > 1) {
-            flexarray_vappend(dm_args, "-vcpus",
-                              GCSPRINTF("%d", b_info->max_vcpus),
-                              NULL);
-        }
-
-        nr_set_cpus = libxl_bitmap_count_set(&b_info->avail_vcpus);
-        s = libxl_bitmap_to_hex_string(CTX, &b_info->avail_vcpus);
-        flexarray_vappend(dm_args, "-vcpu_avail",
-                              GCSPRINTF("%s", s), NULL);
-        free(s);
-
-        for (i = 0; i < num_nics; i++) {
-            if (nics[i].nictype == LIBXL_NIC_TYPE_VIF_IOEMU) {
-                char *smac = GCSPRINTF(
-                                   LIBXL_MAC_FMT, LIBXL_MAC_BYTES(nics[i].mac));
-                const char *ifname = libxl__device_nic_devname(gc,
-                                                domid, nics[i].devid,
-                                                LIBXL_NIC_TYPE_VIF_IOEMU);
-                flexarray_vappend(dm_args,
-                                  "-net",
-                                  GCSPRINTF(
-                                      "nic,vlan=%d,macaddr=%s,model=%s",
-                                      nics[i].devid, smac, nics[i].model),
-                                  "-net",
-                                  GCSPRINTF(
-                                      "tap,vlan=%d,ifname=%s,bridge=%s,"
-                                      "script=%s,downscript=%s",
-                                      nics[i].devid, ifname, nics[i].bridge,
-                                      libxl_tapif_script(gc),
-                                      libxl_tapif_script(gc)),
-                                  NULL);
-                ioemu_nics++;
-            }
-        }
-        /* If we have no emulated nics, tell qemu not to create any */
-        if ( ioemu_nics == 0 ) {
-            flexarray_vappend(dm_args, "-net", "none", NULL);
-        }
-        if (libxl_defbool_val(b_info->u.hvm.gfx_passthru)) {
-            switch (b_info->u.hvm.gfx_passthru_kind) {
-            case LIBXL_GFX_PASSTHRU_KIND_DEFAULT:
-            case LIBXL_GFX_PASSTHRU_KIND_IGD:
-                flexarray_append(dm_args, "-gfx_passthru");
-                break;
-            default:
-                LOGD(ERROR, domid, "unsupported gfx_passthru_kind.");
-                return ERROR_INVAL;
-            }
-        }
-    } else {
-        if (!sdl && !vnc)
-            flexarray_append(dm_args, "-nographic");
-    }
-
-    if (libxl_defbool_val(b_info->dm_restrict)) {
-        LOGD(ERROR, domid,
-             "dm_restrict not supported by qemu-xen-traditional");
-        return ERROR_INVAL;
-    }
-
-    if (state->saved_state) {
-        flexarray_vappend(dm_args, "-loadvm", state->saved_state, NULL);
-    }
-    for (i = 0; b_info->extra && b_info->extra[i] != NULL; i++)
-        flexarray_append(dm_args, b_info->extra[i]);
-    flexarray_append(dm_args, "-M");
-    switch (b_info->type) {
-    case LIBXL_DOMAIN_TYPE_PVH:
-    case LIBXL_DOMAIN_TYPE_PV:
-        flexarray_append(dm_args, "xenpv");
-        for (i = 0; b_info->extra_pv && b_info->extra_pv[i] != NULL; i++)
-            flexarray_append(dm_args, b_info->extra_pv[i]);
-        break;
-    case LIBXL_DOMAIN_TYPE_HVM:
-        flexarray_append(dm_args, "xenfv");
-        for (i = 0; b_info->extra_hvm && b_info->extra_hvm[i] != NULL; i++)
-            flexarray_append(dm_args, b_info->extra_hvm[i]);
-        break;
-    default:
-        abort();
-    }
-    flexarray_append(dm_args, NULL);
-    *args = (char **) flexarray_contents(dm_args);
-    flexarray_append(dm_envs, NULL);
-    if (envs)
-        *envs = (char **) flexarray_contents(dm_envs);
-    return 0;
-}
-
 static char *dm_spice_options(libxl__gc *gc,
                                     const libxl_spice_info *spice)
 {
@@ -2096,11 +1827,6 @@ static int libxl__build_device_model_args(libxl__gc *gc,
  * and therefore will be passing a filename rather than a fd. */
 {
     switch (guest_config->b_info.device_model_version) {
-    case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL:
-        return libxl__build_device_model_args_old(gc, dm,
-                                                  guest_domid, guest_config,
-                                                  args, envs,
-                                                  state);
     case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN:
         if (!libxl_defbool_val(guest_config->b_info.device_model_stubdomain)) {
             assert(dm_state_fd != NULL);
@@ -2463,16 +2189,15 @@ void libxl__spawn_stub_dm(libxl__egc *egc, libxl__stub_dm_spawn_state *sdss)
                         "%s",
                         libxl_bios_type_to_string(guest_config->b_info.u.hvm.bios));
     }
-    /* Disable relocating memory to make the MMIO hole larger
-     * unless we're running qemu-traditional and vNUMA is not
-     * configured. */
+
+    /*
+     * Disable relocating memory, having a lager MMIO hole isn't
+     * implemented with qemu-xen.
+     */
     libxl__xs_printf(gc, XBT_NULL,
                      libxl__sprintf(gc, "%s/hvmloader/allow-memory-relocate",
                                     libxl__xs_get_dompath(gc, guest_domid)),
-                     "%d",
-                     guest_config->b_info.device_model_version
-                        == LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL &&
-                     !libxl__vnuma_configured(&guest_config->b_info));
+                     "0");
     ret = xc_domain_set_target(ctx->xch, dm_domid, guest_domid);
     if (ret<0) {
         LOGED(ERROR, guest_domid, "setting target domain %d -> %d",
@@ -3156,13 +2881,9 @@ static void device_model_launch(libxl__egc *egc,
     libxl_domain_config *guest_config = dmss->guest_config;
     const libxl_domain_create_info *c_info = &guest_config->c_info;
     const libxl_domain_build_info *b_info = &guest_config->b_info;
-    const libxl_vnc_info *vnc = libxl__dm_vnc(guest_config);
     char *path;
     int logfile_w, null;
     char **args, **arg, **envs;
-    xs_transaction_t t;
-    char *vm_path;
-    char **pass_stuff;
     int dm_state_fd = -1;
 
     /* convenience aliases */
@@ -3196,26 +2917,19 @@ static void device_model_launch(libxl__egc *egc,
         libxl__xs_printf(gc, XBT_NULL,
                          GCSPRINTF("%s/hvmloader/bios", path),
                          "%s", libxl_bios_type_to_string(b_info->u.hvm.bios));
-        /* Disable relocating memory to make the MMIO hole larger
-         * unless we're running qemu-traditional and vNUMA is not
-         * configured. */
+        /*
+         * Disable relocating memory, having a lager MMIO hole isn't
+         * implemented with qemu-xen.
+         */
         libxl__xs_printf(gc, XBT_NULL,
                          GCSPRINTF("%s/hvmloader/allow-memory-relocate", path),
-                         "%d",
-                         b_info->device_model_version==LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL &&
-                         !libxl__vnuma_configured(b_info));
+                         "0");
         free(path);
     }
 
     path = DEVICE_MODEL_XS_PATH(gc, LIBXL_TOOLSTACK_DOMID, domid, "");
     xs_mkdir(ctx->xsh, XBT_NULL, path);
 
-    if (b_info->type == LIBXL_DOMAIN_TYPE_HVM &&
-        b_info->device_model_version
-        == LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL)
-        libxl__xs_printf(gc, XBT_NULL, GCSPRINTF("%s/disable_pf", path),
-                         "%d", !libxl_defbool_val(b_info->u.hvm.xen_platform_pci));
-
     logfile_w = libxl__create_qemu_logfile(gc, GCSPRINTF("qemu-dm-%s",
                                                          c_info->name));
     if (logfile_w < 0) {
@@ -3240,25 +2954,6 @@ static void device_model_launch(libxl__egc *egc,
                          GCSPRINTF("%s/image/device-model-kill-uid", dom_path),
                          "%s", state->dm_kill_uid);
 
-    if (vnc && vnc->passwd) {
-        /* This xenstore key will only be used by qemu-xen-traditionnal.
-         * The code to supply vncpasswd to qemu-xen is later. */
-retry_transaction:
-        /* Find uuid and the write the vnc password to xenstore for qemu. */
-        t = xs_transaction_start(ctx->xsh);
-        vm_path = libxl__xs_read(gc,t,GCSPRINTF("%s/vm", dom_path));
-        if (vm_path) {
-            /* Now write the vncpassword into it. */
-            pass_stuff = libxl__calloc(gc, 3, sizeof(char *));
-            pass_stuff[0] = "vncpasswd";
-            pass_stuff[1] = vnc->passwd;
-            libxl__xs_writev(gc,t,vm_path,pass_stuff);
-            if (!xs_transaction_end(ctx->xsh, t, 0))
-                if (errno == EAGAIN)
-                    goto retry_transaction;
-        }
-    }
-
     LOGD(DEBUG, domid, "Spawning device-model %s with arguments:", dm);
     for (arg = args; *arg; arg++)
         LOGD(DEBUG, domid, "  %s", *arg);
diff --git a/tools/libs/light/libxl_dom.c b/tools/libs/light/libxl_dom.c
index 94fef37401..4d67b0d282 100644
--- a/tools/libs/light/libxl_dom.c
+++ b/tools/libs/light/libxl_dom.c
@@ -881,7 +881,6 @@ static int libxl__domain_firmware(libxl__gc *gc,
             switch (info->device_model_version)
             {
             case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN:
-            case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL:
                 firmware = "hvmloader";
                 break;
             default:
@@ -1212,15 +1211,6 @@ out:
     return rc;
 }
 
-int libxl__qemu_traditional_cmd(libxl__gc *gc, uint32_t domid,
-                                const char *cmd)
-{
-    char *path = NULL;
-    uint32_t dm_domid = libxl_get_stubdom_id(CTX, domid);
-    path = DEVICE_MODEL_XS_PATH(gc, dm_domid, domid, "/command");
-    return libxl__xs_printf(gc, XBT_NULL, path, "%s", cmd);
-}
-
 /*==================== Miscellaneous ====================*/
 
 char *libxl__uuid2string(libxl__gc *gc, const libxl_uuid uuid)
diff --git a/tools/libs/light/libxl_dom_save.c b/tools/libs/light/libxl_dom_save.c
index 32e3cb5a13..d64fd64f2e 100644
--- a/tools/libs/light/libxl_dom_save.c
+++ b/tools/libs/light/libxl_dom_save.c
@@ -28,19 +28,6 @@ static void domain_save_done(libxl__egc *egc,
 
 /*----- complicated callback, called by xc_domain_save -----*/
 
-/*
- * We implement the other end of protocol for controlling qemu-dm's
- * logdirty.  There is no documentation for this protocol, but our
- * counterparty's implementation is in
- * qemu-xen-traditional.git:xenstore.c in the function
- * xenstore_process_logdirty_event
- */
-
-static void domain_suspend_switch_qemu_xen_traditional_logdirty
-                               (libxl__egc *egc, int domid, unsigned enable,
-                                libxl__logdirty_switch *lds);
-static void switch_logdirty_xswatch(libxl__egc *egc, libxl__ev_xswatch*,
-                            const char *watch_path, const char *event_path);
 static void domain_suspend_switch_qemu_xen_logdirty
                                (libxl__egc *egc, int domid, unsigned enable,
                                 libxl__logdirty_switch *lds);
@@ -69,10 +56,6 @@ void libxl__domain_common_switch_qemu_logdirty(libxl__egc *egc,
     STATE_AO_GC(lds->ao);
 
     switch (libxl__device_model_version_running(gc, domid)) {
-    case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL:
-        domain_suspend_switch_qemu_xen_traditional_logdirty(egc, domid, enable,
-                                                            lds);
-        break;
     case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN:
         domain_suspend_switch_qemu_xen_logdirty(egc, domid, enable, lds);
         break;
@@ -83,129 +66,6 @@ void libxl__domain_common_switch_qemu_logdirty(libxl__egc *egc,
     }
 }
 
-static void domain_suspend_switch_qemu_xen_traditional_logdirty
-                               (libxl__egc *egc, int domid, unsigned enable,
-                                libxl__logdirty_switch *lds)
-{
-    STATE_AO_GC(lds->ao);
-    int rc;
-    xs_transaction_t t = 0;
-    const char *got;
-
-    if (!lds->cmd_path) {
-        uint32_t dm_domid = libxl_get_stubdom_id(CTX, domid);
-        lds->cmd_path = DEVICE_MODEL_XS_PATH(gc, dm_domid, domid,
-                                             "/logdirty/cmd");
-        lds->ret_path = DEVICE_MODEL_XS_PATH(gc, dm_domid, domid,
-                                             "/logdirty/ret");
-    }
-    lds->cmd = enable ? "enable" : "disable";
-
-    rc = libxl__ev_xswatch_register(gc, &lds->watch,
-                                switch_logdirty_xswatch, lds->ret_path);
-    if (rc) goto out;
-
-    rc = libxl__ev_time_register_rel(ao, &lds->timeout,
-                                switch_logdirty_timeout, 10*1000);
-    if (rc) goto out;
-
-    for (;;) {
-        rc = libxl__xs_transaction_start(gc, &t);
-        if (rc) goto out;
-
-        rc = libxl__xs_read_checked(gc, t, lds->cmd_path, &got);
-        if (rc) goto out;
-
-        if (got) {
-            const char *got_ret;
-            rc = libxl__xs_read_checked(gc, t, lds->ret_path, &got_ret);
-            if (rc) goto out;
-
-            if (!got_ret || strcmp(got, got_ret)) {
-                LOGD(ERROR, domid, "controlling logdirty: qemu was already sent"
-                     " command `%s' (xenstore path `%s') but result is `%s'",
-                     got, lds->cmd_path, got_ret ? got_ret : "<none>");
-                rc = ERROR_FAIL;
-                goto out;
-            }
-            rc = libxl__xs_rm_checked(gc, t, lds->cmd_path);
-            if (rc) goto out;
-        }
-
-        rc = libxl__xs_rm_checked(gc, t, lds->ret_path);
-        if (rc) goto out;
-
-        rc = libxl__xs_write_checked(gc, t, lds->cmd_path, lds->cmd);
-        if (rc) goto out;
-
-        rc = libxl__xs_transaction_commit(gc, &t);
-        if (!rc) break;
-        if (rc<0) goto out;
-    }
-
-    /* OK, wait for some callback */
-    return;
-
- out:
-    LOGD(ERROR, domid, "logdirty switch failed (rc=%d), abandoning suspend",rc);
-    libxl__xs_transaction_abort(gc, &t);
-    switch_logdirty_done(egc,lds,rc);
-}
-
-static void switch_logdirty_xswatch(libxl__egc *egc, libxl__ev_xswatch *watch,
-                            const char *watch_path, const char *event_path)
-{
-    libxl__logdirty_switch *lds = CONTAINER_OF(watch, *lds, watch);
-    STATE_AO_GC(lds->ao);
-    const char *got;
-    xs_transaction_t t = 0;
-    int rc;
-
-    for (;;) {
-        rc = libxl__xs_transaction_start(gc, &t);
-        if (rc) goto out;
-
-        rc = libxl__xs_read_checked(gc, t, lds->ret_path, &got);
-        if (rc) goto out;
-
-        if (!got) {
-            rc = +1;
-            goto out;
-        }
-
-        if (strcmp(got, lds->cmd)) {
-            LOG(ERROR,"logdirty switch: sent command `%s' but got reply `%s'"
-                " (xenstore paths `%s' / `%s')", lds->cmd, got,
-                lds->cmd_path, lds->ret_path);
-            rc = ERROR_FAIL;
-            goto out;
-        }
-
-        rc = libxl__xs_rm_checked(gc, t, lds->cmd_path);
-        if (rc) goto out;
-
-        rc = libxl__xs_rm_checked(gc, t, lds->ret_path);
-        if (rc) goto out;
-
-        rc = libxl__xs_transaction_commit(gc, &t);
-        if (!rc) break;
-        if (rc<0) goto out;
-    }
-
- out:
-    /* rc < 0: error
-     * rc == 0: ok, we are done
-     * rc == +1: need to keep waiting
-     */
-    libxl__xs_transaction_abort(gc, &t);
-
-    if (rc <= 0) {
-        if (rc < 0)
-            LOG(ERROR,"logdirty switch: failed (rc=%d)",rc);
-        switch_logdirty_done(egc,lds,rc);
-    }
-}
-
 static void domain_suspend_switch_qemu_xen_logdirty
                                (libxl__egc *egc, int domid, unsigned enable,
                                 libxl__logdirty_switch *lds)
diff --git a/tools/libs/light/libxl_dom_suspend.c b/tools/libs/light/libxl_dom_suspend.c
index 6091a5f3f6..f0a74fc82c 100644
--- a/tools/libs/light/libxl_dom_suspend.c
+++ b/tools/libs/light/libxl_dom_suspend.c
@@ -85,15 +85,8 @@ void libxl__domain_suspend_device_model(libxl__egc *egc,
     STATE_AO_GC(dsps->ao);
     int rc = 0;
     uint32_t const domid = dsps->domid;
-    const char *const filename = dsps->dm_savefile;
 
     switch (libxl__device_model_version_running(gc, domid)) {
-    case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL: {
-        LOGD(DEBUG, domid, "Saving device model state to %s", filename);
-        libxl__qemu_traditional_cmd(gc, domid, "save");
-        libxl__wait_for_device_model_deprecated(gc, domid, "paused", NULL, NULL, NULL);
-        break;
-    }
     case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN:
         /* calls dsps->callback_device_model_done when done */
         libxl__qmp_suspend_save(egc, dsps); /* must be last */
@@ -420,21 +413,7 @@ static void domain_suspend_callback_common_done(libxl__egc *egc,
 
 int libxl__domain_resume_device_model_deprecated(libxl__gc *gc, uint32_t domid)
 {
-    const char *path, *state;
-
     switch (libxl__device_model_version_running(gc, domid)) {
-    case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL: {
-        uint32_t dm_domid = libxl_get_stubdom_id(CTX, domid);
-
-        path = DEVICE_MODEL_XS_PATH(gc, dm_domid, domid, "/state");
-        state = libxl__xs_read(gc, XBT_NULL, path);
-        if (state != NULL && !strcmp(state, "paused")) {
-            libxl__qemu_traditional_cmd(gc, domid, "continue");
-            libxl__wait_for_device_model_deprecated(gc, domid, "running",
-                                                    NULL, NULL, NULL);
-        }
-        break;
-    }
     case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN:
         if (libxl__qmp_resume(gc, domid))
             return ERROR_FAIL;
@@ -493,8 +472,6 @@ static void dm_resume_dispose(libxl__gc *gc,
     libxl__ev_xswatch_deregister(gc, &dmrs->watch);
 }
 
-static void dm_resume_xswatch_cb(libxl__egc *egc,
-    libxl__ev_xswatch *, const char *watch_path, const char *);
 static void dm_resume_qmp_done(libxl__egc *egc,
     libxl__ev_qmp *qmp, const libxl__json_object *, int rc);
 static void dm_resume_timeout(libxl__egc *egc,
@@ -521,27 +498,6 @@ void libxl__dm_resume(libxl__egc *egc,
     if (rc) goto out;
 
     switch (libxl__device_model_version_running(gc, domid)) {
-    case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL: {
-        uint32_t dm_domid = libxl_get_stubdom_id(CTX, domid);
-        const char *path, *state;
-
-        path = DEVICE_MODEL_XS_PATH(gc, dm_domid, domid, "/state");
-        rc = libxl__xs_read_checked(gc, XBT_NULL, path, &state);
-        if (rc) goto out;
-        if (!state || strcmp(state, "paused")) {
-            /* already running */
-            rc = 0;
-            goto out;
-        }
-
-        rc = libxl__qemu_traditional_cmd(gc, domid, "continue");
-        if (rc) goto out;
-        rc = libxl__ev_xswatch_register(gc, &dmrs->watch,
-                                        dm_resume_xswatch_cb,
-                                        path);
-        if (rc) goto out;
-        break;
-    }
     case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN:
         qmp->ao = dmrs->ao;
         qmp->domid = domid;
@@ -561,27 +517,6 @@ out:
     dm_resume_done(egc, dmrs, rc);
 }
 
-static void dm_resume_xswatch_cb(libxl__egc *egc,
-                                 libxl__ev_xswatch *xsw,
-                                 const char *watch_path,
-                                 const char *event_path)
-{
-    EGC_GC;
-    libxl__dm_resume_state *dmrs = CONTAINER_OF(xsw, *dmrs, watch);
-    int rc;
-    const char *value;
-
-    rc = libxl__xs_read_checked(gc, XBT_NULL, watch_path, &value);
-    if (rc) goto out;
-
-    if (!value || strcmp(value, "running"))
-        return;
-
-    rc = 0;
-out:
-    dm_resume_done(egc, dmrs, rc);
-}
-
 static void dm_resume_qmp_done(libxl__egc *egc,
                                libxl__ev_qmp *qmp,
                                const libxl__json_object *response,
diff --git a/tools/libs/light/libxl_domain.c b/tools/libs/light/libxl_domain.c
index 6751fc785f..dd2e5e9a19 100644
--- a/tools/libs/light/libxl_domain.c
+++ b/tools/libs/light/libxl_domain.c
@@ -1877,8 +1877,6 @@ int libxl_set_vcpuonline(libxl_ctx *ctx, uint32_t domid,
     switch (libxl__domain_type(gc, domid)) {
     case LIBXL_DOMAIN_TYPE_HVM:
         switch (libxl__device_model_version_running(gc, domid)) {
-        case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL:
-            break;
         case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN:
             rc = libxl__ev_time_register_rel(ao, &svos->timeout,
                                              set_vcpuonline_timeout,
@@ -2116,7 +2114,6 @@ static void domain_s3_resume(libxl__ao *ao, libxl__egc *egc, int domid)
     AO_GC;
     libxl__ev_qmp *qmp;
     int rc = 0;
-    int r;
 
     GCNEW(qmp);
     libxl__ev_qmp_init(qmp);
@@ -2128,14 +2125,6 @@ static void domain_s3_resume(libxl__ao *ao, libxl__egc *egc, int domid)
     switch (libxl__domain_type(gc, domid)) {
     case LIBXL_DOMAIN_TYPE_HVM:
         switch (libxl__device_model_version_running(gc, domid)) {
-        case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL:
-            r = xc_hvm_param_set(CTX->xch, domid, HVM_PARAM_ACPI_S_STATE, 0);
-            if (r) {
-                LOGED(ERROR, domid, "Send trigger '%s' failed",
-                      libxl_trigger_to_string(LIBXL_TRIGGER_S3RESUME));
-                rc = ERROR_FAIL;
-            }
-            break;
         case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN:
             rc = libxl__ev_qmp_send(egc, qmp, "system_wakeup", NULL);
             if (rc) goto out;
@@ -2481,10 +2470,6 @@ static void retrieve_domain_configuration_end(libxl__egc *egc,
             case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN:
                 libxl_bitmap_copy(CTX, map, &rdcs->qemuu_cpus);
                 break;
-            case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL:
-                rc = libxl__update_avail_vcpus_xenstore(gc, domid,
-                                                        max_vcpus, map);
-                break;
             default:
                 abort();
             }
diff --git a/tools/libs/light/libxl_exec.c b/tools/libs/light/libxl_exec.c
index a8b949b193..7a59c050b2 100644
--- a/tools/libs/light/libxl_exec.c
+++ b/tools/libs/light/libxl_exec.c
@@ -157,81 +157,6 @@ out:
     return rc ? SIGTERM : 0;
 }
 
-int libxl__xenstore_child_wait_deprecated(libxl__gc *gc,
-                                 uint32_t domid,
-                                 uint32_t timeout, char *what,
-                                 char *path, char *state,
-                                 libxl__spawn_starting *spawning,
-                                 int (*check_callback)(libxl__gc *gc,
-                                                       uint32_t domid,
-                                                       const char *state,
-                                                       void *userdata),
-                                 void *check_callback_userdata)
-{
-    char *p;
-    unsigned int len;
-    int rc = 0;
-    struct xs_handle *xsh;
-    int nfds;
-    fd_set rfds;
-    struct timeval tv;
-    unsigned int num;
-    char **l = NULL;
-
-    xsh = xs_open(0);
-    if (xsh == NULL) {
-        LOG(ERROR, "Unable to open xenstore connection");
-        goto err;
-    }
-
-    xs_watch(xsh, path, path);
-    tv.tv_sec = timeout;
-    tv.tv_usec = 0;
-    nfds = xs_fileno(xsh) + 1;
-    assert(!spawning);
-
-    while (rc > 0 || (!rc && tv.tv_sec > 0)) {
-        p = xs_read(xsh, XBT_NULL, path, &len);
-        if ( NULL == p )
-            goto again;
-
-        if ( NULL != state && strcmp(p, state) )
-            goto again;
-
-        if ( NULL != check_callback ) {
-            rc = (*check_callback)(gc, domid, p, check_callback_userdata);
-            if ( rc > 0 )
-                goto again;
-        }
-
-        free(p);
-        xs_unwatch(xsh, path, path);
-        xs_close(xsh);
-        return rc;
-again:
-        free(p);
-        FD_ZERO(&rfds);
-        FD_SET(xs_fileno(xsh), &rfds);
-        rc = select(nfds, &rfds, NULL, NULL, &tv);
-        if (rc > 0) {
-            if (FD_ISSET(xs_fileno(xsh), &rfds)) {
-                l = xs_read_watch(xsh, &num);
-                if (l != NULL)
-                    free(l);
-                else
-                    goto again;
-            }
-        }
-    }
-    LOG(ERROR, "%s not ready", what);
-
-    xs_unwatch(xsh, path, path);
-    xs_close(xsh);
-err:
-    return -1;
-}
-
-
 /*----- spawn implementation -----*/
 
 /*
diff --git a/tools/libs/light/libxl_internal.c b/tools/libs/light/libxl_internal.c
index c95624933f..2941ca0bbd 100644
--- a/tools/libs/light/libxl_internal.c
+++ b/tools/libs/light/libxl_internal.c
@@ -387,11 +387,9 @@ int libxl__device_model_version_running(libxl__gc *gc, uint32_t domid)
     path = libxl__xs_libxl_path(gc, domid);
     path = GCSPRINTF("%s/dm-version", path);
     dm_version = libxl__xs_read(gc, XBT_NULL, path);
-    if (!dm_version) {
-        return LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL;
-    }
 
-    if (libxl_device_model_version_from_string(dm_version, &value) < 0) {
+    if (!dm_version ||
+        libxl_device_model_version_from_string(dm_version, &value) < 0) {
         LOGD(ERROR, domid, "fatal: %s contain a wrong value (%s)", path, dm_version);
         return -1;
     }
diff --git a/tools/libs/light/libxl_internal.h b/tools/libs/light/libxl_internal.h
index 408a771310..75bb0b94cf 100644
--- a/tools/libs/light/libxl_internal.h
+++ b/tools/libs/light/libxl_internal.h
@@ -1423,8 +1423,6 @@ _hidden int libxl__build_hvm(libxl__gc *gc, uint32_t domid,
               libxl_domain_config *d_config,
               libxl__domain_build_state *state);
 
-_hidden int libxl__qemu_traditional_cmd(libxl__gc *gc, uint32_t domid,
-                                        const char *cmd);
 _hidden int libxl__domain_rename(libxl__gc *gc, uint32_t domid,
                                  const char *old_name, const char *new_name,
                                  xs_transaction_t trans);
@@ -1914,50 +1912,6 @@ static inline int libxl__spawn_inuse(const libxl__spawn_state *ss)
 _hidden int libxl__spawn_record_pid(libxl__gc*, libxl__spawn_state*,
                                     pid_t innerchild);
 
-/*
- * libxl__xenstore_child_wait_deprecated - Wait for daemonic child IPC
- *
- * This is a NOT function for waiting for ordinary child processes.
- * If you want to run (fork/exec/wait) subprocesses from libxl:
- *  - Make your libxl entrypoint use the ao machinery
- *  - Use libxl__ev_child_fork, and use the callback programming style
- *
- * This function is intended for interprocess communication with a
- * service process.  If the service process does not respond quickly,
- * the whole caller may be blocked.  Therefore this function is
- * deprecated.  This function is currently used only by
- * libxl__wait_for_device_model_deprecated.
- *
- * gc: allocation pool
- * domid: guest to work with
- * timeout: how many seconds to wait for the state to appear
- * what: string describing the spawned process
- * path: path to the state file in xenstore
- * state: expected string to wait for in path (optional)
- * spawning: malloc'd pointer to libxl__spawn_starting (optional)
- * check_callback: (optional)
- * check_callback_userdata: data to pass to the callback function
- *
- * Returns 0 on success, and < 0 on error.
- *
- * This function waits the given timeout for the given path to appear
- * in xenstore, and optionally for state in path.
- * If path appears and state matches, check_callback is called.
- * If check_callback returns > 0, waiting for path or state continues.
- * Otherwise libxl__xenstore_child_wait_deprecated returns.
- */
-_hidden int libxl__xenstore_child_wait_deprecated(libxl__gc *gc,
-                                 uint32_t domid,
-                                 uint32_t timeout, char *what,
-                                 char *path, char *state,
-                                 libxl__spawn_starting *spawning,
-                                 int (*check_callback)(libxl__gc *gc,
-                                                       uint32_t domid,
-                                                       const char *state,
-                                                       void *userdata),
-                                 void *check_callback_userdata);
-
-
  /* low-level stuff, for synchronous subprocesses etc. */
 
 /*
@@ -2022,25 +1976,6 @@ _hidden int libxl__domain_device_construct_rdm(libxl__gc *gc,
                                    uint64_t rdm_mem_guard,
                                    struct xc_dom_image *dom);
 
-/*
- * This function will cause the whole libxl process to hang
- * if the device model does not respond.  It is deprecated.
- *
- * Instead of calling this function:
- *  - Make your libxl entrypoint use the ao machinery
- *  - Use libxl__ev_xswatch_register, and use the callback programming
- *    style
- */
-_hidden int libxl__wait_for_device_model_deprecated(libxl__gc *gc,
-                                uint32_t domid, char *state,
-                                libxl__spawn_starting *spawning
-                                                    /* NULL allowed */,
-                                int (*check_callback)(libxl__gc *gc,
-                                                      uint32_t domid,
-                                                      const char *state,
-                                                      void *userdata),
-                                void *check_callback_userdata);
-
 _hidden const libxl_vnc_info *libxl__dm_vnc(const libxl_domain_config *g_cfg);
 
 _hidden char *libxl__abs_path(libxl__gc *gc, const char *s, const char *path);
@@ -2315,8 +2250,7 @@ _hidden char *libxl__json_object_to_json(libxl__gc *gc,
 #define JSON(o) \
     (libxl__json_object_to_json(gc, (o)) ? : "<invalid-json-object>")
 
-  /* Based on /local/domain/$domid/dm-version xenstore key
-   * default is qemu xen traditional */
+  /* Based on /local/domain/$domid/dm-version xenstore key */
 _hidden int libxl__device_model_version_running(libxl__gc *gc, uint32_t domid);
 
 static inline
diff --git a/tools/libs/light/libxl_pci.c b/tools/libs/light/libxl_pci.c
index a8460fb3ec..2ea2caeb66 100644
--- a/tools/libs/light/libxl_pci.c
+++ b/tools/libs/light/libxl_pci.c
@@ -1023,82 +1023,6 @@ static int pci_multifunction_check(libxl__gc *gc, libxl_device_pci *pci, unsigne
     return 0;
 }
 
-static int pci_ins_check(libxl__gc *gc, uint32_t domid, const char *state, void *priv)
-{
-    char *orig_state = priv;
-
-    if ( !strcmp(state, "pci-insert-failed") )
-        return -1;
-    if ( !strcmp(state, "pci-inserted") )
-        return 0;
-    if ( !strcmp(state, orig_state) )
-        return 1;
-
-    return 1;
-}
-
-static int qemu_pci_add_xenstore(libxl__gc *gc, uint32_t domid,
-                                 libxl_device_pci *pci)
-{
-    libxl_ctx *ctx = libxl__gc_owner(gc);
-    int rc = 0;
-    char *path;
-    char *state, *vdevfn;
-    uint32_t dm_domid;
-
-    dm_domid = libxl_get_stubdom_id(CTX, domid);
-    path = DEVICE_MODEL_XS_PATH(gc, dm_domid, domid, "/state");
-    state = libxl__xs_read(gc, XBT_NULL, path);
-    path = DEVICE_MODEL_XS_PATH(gc, dm_domid, domid, "/parameter");
-    if (pci->vdevfn) {
-        libxl__xs_printf(gc, XBT_NULL, path, PCI_BDF_VDEVFN","PCI_OPTIONS,
-                         pci->domain, pci->bus, pci->dev,
-                         pci->func, pci->vdevfn, pci->msitranslate,
-                         pci->power_mgmt);
-    } else {
-        libxl__xs_printf(gc, XBT_NULL, path, PCI_BDF","PCI_OPTIONS,
-                         pci->domain,  pci->bus, pci->dev,
-                         pci->func, pci->msitranslate, pci->power_mgmt);
-    }
-
-    libxl__qemu_traditional_cmd(gc, domid, "pci-ins");
-    rc = libxl__wait_for_device_model_deprecated(gc, domid, NULL, NULL,
-                                      pci_ins_check, state);
-    path = DEVICE_MODEL_XS_PATH(gc, dm_domid, domid, "/parameter");
-    vdevfn = libxl__xs_read(gc, XBT_NULL, path);
-    path = DEVICE_MODEL_XS_PATH(gc, dm_domid, domid, "/state");
-    if ( rc < 0 )
-        LOGD(ERROR, domid, "qemu refused to add device: %s", vdevfn);
-    else if ( sscanf(vdevfn, "0x%x", &pci->vdevfn) != 1 ) {
-        LOGD(ERROR, domid, "wrong format for the vdevfn: '%s'", vdevfn);
-        rc = -1;
-    }
-    xs_write(ctx->xsh, XBT_NULL, path, state, strlen(state));
-
-    return rc;
-}
-
-static int check_qemu_running(libxl__gc *gc,
-                              libxl_domid domid,
-                              libxl__xswait_state *xswa,
-                              int rc,
-                              const char *state)
-{
-    if (rc) {
-        if (rc == ERROR_TIMEDOUT) {
-            LOGD(ERROR, domid, "%s not ready", xswa->what);
-        }
-        goto out;
-    }
-
-    if (!state || strcmp(state, "running"))
-        return ERROR_NOT_READY;
-
-out:
-    libxl__xswait_stop(gc, xswa);
-    return rc;
-}
-
 typedef struct pci_add_state {
     /* filled by user of do_pci_add */
     libxl__ao_device *aodev;
@@ -1119,8 +1043,6 @@ typedef struct pci_add_state {
     int retries;
 } pci_add_state;
 
-static void pci_add_qemu_trad_watch_state_cb(libxl__egc *egc,
-    libxl__xswait_state *xswa, int rc, const char *state);
 static void pci_add_qmp_device_add(libxl__egc *, pci_add_state *);
 static void pci_add_qmp_device_add_cb(libxl__egc *,
     libxl__ev_qmp *, const libxl__json_object *, int rc);
@@ -1156,16 +1078,6 @@ static void do_pci_add(libxl__egc *egc,
 
     if (type == LIBXL_DOMAIN_TYPE_HVM) {
         switch (libxl__device_model_version_running(gc, domid)) {
-            case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL:
-                pas->xswait.ao = ao;
-                pas->xswait.what = "Device Model";
-                pas->xswait.path = DEVICE_MODEL_XS_PATH(gc,
-                    libxl_get_stubdom_id(CTX, domid), domid, "/state");
-                pas->xswait.timeout_ms = LIBXL_DEVICE_MODEL_START_TIMEOUT * 1000;
-                pas->xswait.callback = pci_add_qemu_trad_watch_state_cb;
-                rc = libxl__xswait_start(gc, &pas->xswait);
-                if (rc) goto out;
-                return;
             case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN:
                 rc = libxl__ev_time_register_rel(ao, &pas->timeout,
                                                  pci_add_timeout,
@@ -1186,29 +1098,6 @@ out:
     pci_add_dm_done(egc, pas, rc); /* must be last */
 }
 
-static void pci_add_qemu_trad_watch_state_cb(libxl__egc *egc,
-                                             libxl__xswait_state *xswa,
-                                             int rc,
-                                             const char *state)
-{
-    pci_add_state *pas = CONTAINER_OF(xswa, *pas, xswait);
-    STATE_AO_GC(pas->aodev->ao);
-
-    /* Convenience aliases */
-    libxl_domid domid = pas->domid;
-    libxl_device_pci *pci = &pas->pci;
-
-    rc = check_qemu_running(gc, domid, xswa, rc, state);
-    if (rc == ERROR_NOT_READY)
-        return;
-    if (rc)
-        goto out;
-
-    rc = qemu_pci_add_xenstore(gc, domid, pci);
-out:
-    pci_add_dm_done(egc, pas, rc); /* must be last */
-}
-
 static void pci_add_qmp_device_add(libxl__egc *egc, pci_add_state *pas)
 {
     STATE_AO_GC(pas->aodev->ao);
@@ -1882,42 +1771,6 @@ static void add_pcis_done(libxl__egc *egc, libxl__multidev *multidev,
     aodev->callback(egc, aodev);
 }
 
-static int qemu_pci_remove_xenstore(libxl__gc *gc, uint32_t domid,
-                                    libxl_device_pci *pci, int force)
-{
-    libxl_ctx *ctx = libxl__gc_owner(gc);
-    char *state;
-    char *path;
-    uint32_t dm_domid;
-
-    dm_domid = libxl_get_stubdom_id(CTX, domid);
-
-    path = DEVICE_MODEL_XS_PATH(gc, dm_domid, domid, "/state");
-    state = libxl__xs_read(gc, XBT_NULL, path);
-    path = DEVICE_MODEL_XS_PATH(gc, dm_domid, domid, "/parameter");
-    libxl__xs_printf(gc, XBT_NULL, path, PCI_BDF, pci->domain,
-                     pci->bus, pci->dev, pci->func);
-
-    /* Remove all functions at once atomically by only signalling
-     * device-model for function 0 */
-    if ( !force && (pci->vdevfn & 0x7) == 0 ) {
-        libxl__qemu_traditional_cmd(gc, domid, "pci-rem");
-        if (libxl__wait_for_device_model_deprecated(gc, domid, "pci-removed",
-                                         NULL, NULL, NULL) < 0) {
-            LOGD(ERROR, domid, "Device Model didn't respond in time");
-            /* This depends on guest operating system acknowledging the
-             * SCI, if it doesn't respond in time then we may wish to
-             * force the removal.
-             */
-            return ERROR_FAIL;
-        }
-    }
-    path = DEVICE_MODEL_XS_PATH(gc, dm_domid, domid, "/state");
-    xs_write(ctx->xsh, XBT_NULL, path, state, strlen(state));
-
-    return 0;
-}
-
 typedef struct pci_remove_state {
     libxl__ao_device *aodev;
     libxl_domid domid;
@@ -1940,8 +1793,6 @@ static void libxl__device_pci_remove_common(libxl__egc *egc,
 static void device_pci_remove_common_next(libxl__egc *egc,
     pci_remove_state *prs, int rc);
 
-static void pci_remove_qemu_trad_watch_state_cb(libxl__egc *egc,
-    libxl__xswait_state *xswa, int rc, const char *state);
 static void pci_remove_qmp_device_del(libxl__egc *egc,
     pci_remove_state *prs);
 static void pci_remove_qmp_device_del_cb(libxl__egc *egc,
@@ -1987,16 +1838,6 @@ static void do_pci_remove(libxl__egc *egc, pci_remove_state *prs)
     if (type == LIBXL_DOMAIN_TYPE_HVM) {
         prs->hvm = true;
         switch (libxl__device_model_version_running(gc, domid)) {
-        case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL:
-            prs->xswait.ao = ao;
-            prs->xswait.what = "Device Model";
-            prs->xswait.path = DEVICE_MODEL_XS_PATH(gc,
-                libxl_get_stubdom_id(CTX, domid), domid, "/state");
-            prs->xswait.timeout_ms = LIBXL_DEVICE_MODEL_START_TIMEOUT * 1000;
-            prs->xswait.callback = pci_remove_qemu_trad_watch_state_cb;
-            rc = libxl__xswait_start(gc, &prs->xswait);
-            if (rc) goto out_fail;
-            return;
         case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN:
             pci_remove_qmp_device_del(egc, prs); /* must be last */
             return;
@@ -2010,30 +1851,6 @@ out_fail:
     pci_remove_detached(egc, prs, rc); /* must be last */
 }
 
-static void pci_remove_qemu_trad_watch_state_cb(libxl__egc *egc,
-                                                libxl__xswait_state *xswa,
-                                                int rc,
-                                                const char *state)
-{
-    pci_remove_state *prs = CONTAINER_OF(xswa, *prs, xswait);
-    STATE_AO_GC(prs->aodev->ao);
-
-    /* Convenience aliases */
-    libxl_domid domid = prs->domid;
-    libxl_device_pci *const pci = &prs->pci;
-
-    rc = check_qemu_running(gc, domid, xswa, rc, state);
-    if (rc == ERROR_NOT_READY)
-        return;
-    if (rc)
-        goto out;
-
-    rc = qemu_pci_remove_xenstore(gc, domid, pci, prs->force);
-
-out:
-    pci_remove_detached(egc, prs, rc);
-}
-
 static void pci_remove_qmp_device_del(libxl__egc *egc,
                                       pci_remove_state *prs)
 {
diff --git a/tools/libs/light/libxl_sr_stream_format.h b/tools/libs/light/libxl_sr_stream_format.h
index 75f5190886..f8f4723c2e 100644
--- a/tools/libs/light/libxl_sr_stream_format.h
+++ b/tools/libs/light/libxl_sr_stream_format.h
@@ -45,7 +45,7 @@ typedef struct libxl__sr_emulator_hdr
 } libxl__sr_emulator_hdr;
 
 #define EMULATOR_UNKNOWN             0x00000000U
-#define EMULATOR_QEMU_TRADITIONAL    0x00000001U
+#define EMULATOR_QEMU_TRADITIONAL    0x00000001U /* Dropped in Xen 4.21 */
 #define EMULATOR_QEMU_UPSTREAM       0x00000002U
 
 typedef struct libxl_sr_checkpoint_state
diff --git a/tools/libs/light/libxl_stream_write.c b/tools/libs/light/libxl_stream_write.c
index 634f3240d1..98d44597a7 100644
--- a/tools/libs/light/libxl_stream_write.c
+++ b/tools/libs/light/libxl_stream_write.c
@@ -252,10 +252,6 @@ void libxl__stream_write_start(libxl__egc *egc,
         stream->device_model_version =
             libxl__device_model_version_running(gc, dss->domid);
         switch (stream->device_model_version) {
-        case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL:
-            stream->emu_sub_hdr.id = EMULATOR_QEMU_TRADITIONAL;
-            break;
-
         case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN:
             stream->emu_sub_hdr.id = EMULATOR_QEMU_UPSTREAM;
             break;
diff --git a/tools/libs/light/libxl_types.idl b/tools/libs/light/libxl_types.idl
index 9bb2969931..1985153830 100644
--- a/tools/libs/light/libxl_types.idl
+++ b/tools/libs/light/libxl_types.idl
@@ -104,7 +104,7 @@ libxl_channel_connection = Enumeration("channel_connection", [
 
 libxl_device_model_version = Enumeration("device_model_version", [
     (0, "UNKNOWN"),
-    (1, "QEMU_XEN_TRADITIONAL"), # Historical qemu-xen device model (qemu-dm)
+    (1, "QEMU_XEN_TRADITIONAL"), # Historical dm (qemu-dm, no longer supported)
     (2, "QEMU_XEN"),             # Upstream based qemu-xen device model
     ])
 
diff --git a/tools/python/xen/migration/libxl.py b/tools/python/xen/migration/libxl.py
index 5dcb50fe02..dc5c7ac355 100644
--- a/tools/python/xen/migration/libxl.py
+++ b/tools/python/xen/migration/libxl.py
@@ -51,12 +51,10 @@ rec_type_to_str = {
 EMULATOR_HEADER_FORMAT = "II"
 
 EMULATOR_ID_unknown       = 0x00000000
-EMULATOR_ID_qemu_trad     = 0x00000001
 EMULATOR_ID_qemu_upstream = 0x00000002
 
 emulator_id_to_str = {
     EMULATOR_ID_unknown       : "Unknown",
-    EMULATOR_ID_qemu_trad     : "Qemu Traditional",
     EMULATOR_ID_qemu_upstream : "Qemu Upstream",
 }
 
diff --git a/tools/xl/xl_parse.c b/tools/xl/xl_parse.c
index 089a88935a..219e924779 100644
--- a/tools/xl/xl_parse.c
+++ b/tools/xl/xl_parse.c
@@ -2733,10 +2733,7 @@ skip_usbdev:
     xlu_cfg_replace_string (config, "device_model_override",
                             &b_info->device_model, 0);
     if (!xlu_cfg_get_string (config, "device_model_version", &buf, 0)) {
-        if (!strcmp(buf, "qemu-xen-traditional")) {
-            b_info->device_model_version
-                = LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL;
-        } else if (!strcmp(buf, "qemu-xen")) {
+        if (!strcmp(buf, "qemu-xen")) {
             b_info->device_model_version
                 = LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN;
         } else {
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 29 11:06:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 11:06:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.971960.1360373 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9ini-0002Q7-UH; Tue, 29 Apr 2025 11:06:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 971960.1360373; Tue, 29 Apr 2025 11: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 1u9ini-0002Py-RT; Tue, 29 Apr 2025 11:06:58 +0000
Received: by outflank-mailman (input) for mailman id 971960;
 Tue, 29 Apr 2025 11:06: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=Cjpo=XP=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1u9ini-0001XI-1Y
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 11:06:58 +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 105baaf9-24ea-11f0-9eb4-5ba50f476ded;
 Tue, 29 Apr 2025 13:06:56 +0200 (CEST)
Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org
 [IPv6:2a07:de40:b281:104:10:150:64:97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out1.suse.de (Postfix) with ESMTPS id E54FF21197;
 Tue, 29 Apr 2025 11:06:55 +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 813F513A8B;
 Tue, 29 Apr 2025 11:06:55 +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 6U4gHs+yEGggOwAAD6G6ig
 (envelope-from <jgross@suse.com>); Tue, 29 Apr 2025 11:06: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: 105baaf9-24ea-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1745924816; h=from:from:reply-to: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=kMNpv8uYKhYM959nCNtSxOZtBZr44762EPL1Y4mLrUI=;
	b=jENMQNGlVARPhO3XELst3l7yZFLh+zvuBvJ9wUTJMWnER1v2ZQro/CbuaNztrQGEP0GvOB
	lotl2gTJ37+Fm3DkdwserbJ9z1crKIl+3TKZzP+L1d5pRCswtwwKbJex9Kujas3YRiclCn
	VTmXuYjloeVrjcHEJ3I5O/C/b2wxfno=
Authentication-Results: smtp-out1.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=XytPj0xd
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1745924815; h=from:from:reply-to: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=kMNpv8uYKhYM959nCNtSxOZtBZr44762EPL1Y4mLrUI=;
	b=XytPj0xdeTSgdEOtdDzalMfR/CDd0Lv5H1o48u/SD/DBdzqH2HPKVzKJ/xeecZ+KUFyCGt
	nYKE38bK5sV/Lg3Ndar0INodpDOa4Zlm2Pq1Or3uuAuL1+DR9NYazWav59YK2gq9VtQ1f2
	erHs3ChN2IZbK8rxAXhV77fl5nEpCVQ=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Community Manager <community.manager@xenproject.org>,
	Samuel Thibault <samuel.thibault@ens-lyon.org>
Subject: [PATCH v3 3/4] tools: remove qemu-traditional
Date: Tue, 29 Apr 2025 13:06:33 +0200
Message-ID: <20250429110636.30518-4-jgross@suse.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20250429110636.30518-1-jgross@suse.com>
References: <20250429110636.30518-1-jgross@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Rspamd-Queue-Id: E54FF21197
X-Spam-Level: 
X-Spamd-Result: default: False [-2.01 / 50.00];
	BAYES_HAM(-3.00)[100.00%];
	SUSPICIOUS_RECIPS(1.50)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	MID_CONTAINS_FROM(1.00)[];
	R_DKIM_ALLOW(-0.20)[suse.com:s=susede1];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	MIME_GOOD(-0.10)[text/plain];
	MX_GOOD(-0.01)[];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	FUZZY_BLOCKED(0.00)[rspamd.com];
	MIME_TRACE(0.00)[0:+];
	ARC_NA(0.00)[];
	RCPT_COUNT_TWELVE(0.00)[12];
	RBL_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	FREEMAIL_ENVRCPT(0.00)[gmail.com];
	FREEMAIL_CC(0.00)[suse.com,citrix.com,vates.tech,amd.com,xen.org,kernel.org,gmail.com,xenproject.org,ens-lyon.org];
	RCVD_COUNT_TWO(0.00)[2];
	FROM_EQ_ENVFROM(0.00)[];
	FROM_HAS_DN(0.00)[];
	TO_DN_SOME(0.00)[];
	DNSWL_BLOCKED(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	TAGGED_RCPT(0.00)[];
	RCVD_TLS_ALL(0.00)[];
	DKIM_TRACE(0.00)[suse.com:+];
	DBL_BLOCKED_OPENRESOLVER(0.00)[imap1.dmz-prg2.suse.org:helo,imap1.dmz-prg2.suse.org:rdns]
X-Rspamd-Server: rspamd2.dmz-prg2.suse.org
X-Rspamd-Action: no action
X-Spam-Score: -2.01
X-Spam-Flag: NO

Remove qemu traditional from the tree.

Signed-off-by: Juergen Gross <jgross@suse.com>
Acked-by: Oleksii Kurochko <oleksii.kurochko@gmail.com> # CHANGELOG.md
---
V3:
- remove another ioemu reference in INSTALL (Anthony Perard)
- remove generating stubdompath.sh and related makefile helpers
  (Anthony Perard)
---
 .gitignore                                    |  3 -
 CHANGELOG.md                                  |  1 +
 Config.mk                                     | 38 --------
 INSTALL                                       | 13 ---
 MAINTAINERS                                   |  4 -
 README                                        |  2 +-
 SUPPORT.md                                    | 16 ---
 config/Paths.mk.in                            |  3 +-
 config/Tools.mk.in                            |  1 -
 docs/process/branching-checklist.txt          |  1 -
 docs/process/release-technician-checklist.txt |  1 -
 stubdom/.gitignore                            |  3 -
 stubdom/Makefile                              | 97 ++-----------------
 stubdom/configure                             | 89 -----------------
 stubdom/configure.ac                          | 15 ---
 stubdom/ioemu-minios.cfg                      |  6 --
 tools/Makefile                                | 58 -----------
 tools/Rules.mk                                |  3 -
 tools/config.h.in                             |  3 -
 tools/configure                               | 42 +-------
 tools/configure.ac                            | 21 +---
 21 files changed, 15 insertions(+), 405 deletions(-)
 delete mode 100644 stubdom/ioemu-minios.cfg

diff --git a/.gitignore b/.gitignore
index 53f5df0003..ccc0bebee6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -255,9 +255,6 @@ LibVNCServer*
 tools/qemu-xen-dir-remote
 tools/qemu-xen-dir
 
-tools/qemu-xen-traditional-dir-remote
-tools/qemu-xen-traditional-dir
-
 tools/firmware/seabios-dir-remote
 tools/firmware/seabios-dir
 
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 1ea06524db..c6e8ff09ba 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -24,6 +24,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
     - Ability to enable stack protector
 
 ### Removed
+ - Support of qemu-traditional has been removed.
 
 ## [4.20.0](https://xenbits.xenproject.org/gitweb/?p=xen.git;a=shortlog;h=RELEASE-4.20.0) - 2025-03-05
 
diff --git a/Config.mk b/Config.mk
index 8be7733d9e..3ebc9ac125 100644
--- a/Config.mk
+++ b/Config.mk
@@ -165,20 +165,6 @@ define move-if-changed
 	if ! cmp -s $(1) $(2); then mv -f $(1) $(2); else rm -f $(1); fi
 endef
 
-BUILD_MAKE_VARS := sbindir bindir LIBEXEC LIBEXEC_BIN libdir SHAREDIR \
-                   XENFIRMWAREDIR XEN_CONFIG_DIR XEN_SCRIPT_DIR XEN_LOCK_DIR \
-                   XEN_RUN_DIR XEN_PAGING_DIR XEN_DUMP_DIR XEN_LOG_DIR \
-                   XEN_LIB_DIR XEN_RUN_STORED
-
-buildmakevars2file = $(eval $(call buildmakevars2file-closure,$(1)))
-define buildmakevars2file-closure
-    $(1): .phony
-	rm -f $(1).tmp; \
-	$(foreach var, $(BUILD_MAKE_VARS), \
-	          echo "$(var)=\"$($(var))\"" >>$(1).tmp;) \
-	$(call move-if-changed,$(1).tmp,$(1))
-endef
-
 CFLAGS += -fno-strict-aliasing
 
 CFLAGS += -std=gnu99
@@ -208,22 +194,12 @@ XEN_EXTFILES_URL ?= https://xenbits.xen.org/xen-extfiles
 
 # Where to look for inlined subtrees (for example, from a tarball)
 QEMU_UPSTREAM_INTREE ?= $(XEN_ROOT)/tools/qemu-xen
-QEMU_TRADITIONAL_INTREE ?= $(XEN_ROOT)/tools/qemu-xen-traditional
 
 
 # Handle legacy options
 ifneq (,$(SEABIOS_UPSTREAM_TAG))
 SEABIOS_UPSTREAM_REVISION ?= $(SEABIOS_UPSTREAM_TAG)
 endif
-ifneq (,$(QEMU_REMOTE))
-QEMU_TRADITIONAL_URL ?= $(QEMU_REMOTE)
-endif
-ifneq (,$(CONFIG_QEMU))
-QEMU_TRADITIONAL_LOC ?= $(CONFIG_QEMU)
-endif
-ifneq (,$(QEMU_TAG))
-QEMU_TRADITIONAL_REVISION ?= $(QEMU_TAG)
-endif
 
 OVMF_UPSTREAM_URL ?= https://xenbits.xen.org/git-http/ovmf.git
 OVMF_UPSTREAM_REVISION ?= ba91d0292e593df8528b66f99c1b0b14fadc8e16
@@ -239,20 +215,6 @@ SEABIOS_UPSTREAM_REVISION ?= rel-1.16.3
 
 ETHERBOOT_NICS ?= rtl8139 8086100e
 
-
-QEMU_TRADITIONAL_URL ?= https://xenbits.xen.org/git-http/qemu-xen-traditional.git
-QEMU_TRADITIONAL_REVISION ?= 3d273dd05e51e5a1ffba3d98c7437ee84e8f8764
-# Wed Jul 15 10:01:40 2020 +0100
-# qemu-trad: remove Xen path dependencies
-
-# Specify which qemu-dm to use. This may be `ioemu' to use the old
-# Mercurial in-tree version, or a local directory, or a git URL.
-# QEMU_UPSTREAM_LOC ?= `pwd`/$(XEN_ROOT)/../qemu-xen.git
-
-# Defaults for subtree locations
-QEMU_TRADITIONAL_LOC ?= $(call or,$(wildcard $(QEMU_TRADITIONAL_INTREE)),\
-                                  $(QEMU_TRADITIONAL_URL))
-
 QEMU_UPSTREAM_LOC ?= $(call or,$(wildcard $(QEMU_UPSTREAM_INTREE)),\
                                $(QEMU_UPSTREAM_URL))
 
diff --git a/INSTALL b/INSTALL
index 88c1464816..eadf108aa5 100644
--- a/INSTALL
+++ b/INSTALL
@@ -113,15 +113,6 @@ Build a private copy of SeaBIOS.
 Use the given SeaBIOS binary instead of compiling a private copy.
   --with-system-seabios=PATH
 
-Build the old qemu used by xm/xend. This is required if existing domUs
-should be migrated to this host, or if existing domU snapshots should be
-started with this version of the tools. Only if all domUs used the new
-upstream qemu during initial start it is safe to disable this option.
-The old qemu requires rombios, which can be disable along with
-qemu-traditional.
-  --enable-qemu-traditional
-  --enable-rombios
-
 The libxl toolstack uses the upstream qemu per default. A private copy
 will be built. If desired this private copy can be configured with
 additional options passed to its configure script.
@@ -161,7 +152,6 @@ this detection and the sysv runlevel scripts have to be used.
 
 Build various stubom components, some are only example code. Its usually
 enough to specify just --enable-stubdom and leave these options alone.
-  --enable-ioemu-stubdom
   --enable-c-stubdom
   --disable-pv-grub
   --disable-xenstore-stubdom
@@ -245,7 +235,6 @@ locations.
 XEN_EXTFILES_URL=
 OVMF_UPSTREAM_URL=
 QEMU_UPSTREAM_URL=
-QEMU_TRADITIONAL_URL=
 SEABIOS_UPSTREAM_URL=
 MINIOS_UPSTREAM_URL=
 
@@ -253,7 +242,6 @@ Using additional CFLAGS to build tools which will run in dom0 is
 required when building distro packages. These variables can be used to
 pass RPM_OPT_FLAGS.
 EXTRA_CFLAGS_XEN_TOOLS=
-EXTRA_CFLAGS_QEMU_TRADITIONAL=
 EXTRA_CFLAGS_QEMU_XEN=
 
 Additional CFLAGS may be supplied to the build of the hypervisor by
@@ -340,7 +328,6 @@ sudo make install BOOT_DIR=/ood/path/boot EFI_DIR=/odd/path/efi
 export WGET=$(type -P false)
 export GIT=$(type -P false)
 export EXTRA_CFLAGS_XEN_TOOLS="$RPM_OPT_FLAGS"
-export EXTRA_CFLAGS_QEMU_TRADITIONAL="$RPM_OPT_FLAGS"
 export EXTRA_CFLAGS_QEMU_XEN="$RPM_OPT_FLAGS"
 %configure \
         --with-initddir=%{_initddir}
diff --git a/MAINTAINERS b/MAINTAINERS
index c11b82eca9..7d1b3b8641 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -466,10 +466,6 @@ M:	Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
 S:	Supported
 F:	tools/python
 
-QEMU-DM
-S:	Supported
-T:	git https://xenbits.xenproject.org/git-http/qemu-xen-traditional.git
-
 QEMU UPSTREAM
 M:	Stefano Stabellini <sstabellini@kernel.org>
 M:	Anthony Perard <anthony.perard@vates.tech>
diff --git a/README b/README
index be90be3910..6ee58f7b35 100644
--- a/README
+++ b/README
@@ -80,7 +80,7 @@ disabled at compile time:
       libnl-3-dev, etc).  Required if network buffering is desired
       when using Remus with libxl.  See docs/README.remus for detailed
       information.
-    * 16-bit x86 assembler, loader and compiler for qemu-traditional / rombios
+    * 16-bit x86 assembler, loader and compiler for rombios
       (dev86 rpm or bin86 & bcc debs)
     * Development install of liblzma for rombios
     * Development install of libbz2, liblzma, liblzo2, and libzstd for DomU
diff --git a/SUPPORT.md b/SUPPORT.md
index e8fd0c251e..5eecf1dcbc 100644
--- a/SUPPORT.md
+++ b/SUPPORT.md
@@ -998,21 +998,6 @@ See the section **Blkback** for image formats supported by QEMU.
 
     Status: Supported, not security supported
 
-### qemu-xen-traditional ###
-
-The Xen Project provides an old version of qemu with modifications
-which enable use as a device model stub domain.  The old version is
-normally selected by default only in a stub dm configuration, but it
-can be requested explicitly in other configurations, for example in
-`xl` with `device_model_version="QEMU_XEN_TRADITIONAL"`.
-
-    Status, Device Model Stub Domains: Supported, with caveats
-    Status, as host process device model: No security support, not recommended
-
-qemu-xen-traditional is security supported only for those available
-devices which are supported for mainstream QEMU (see above), with
-trusted driver domains (see Device Model Stub Domains).
-
 ## Virtual Firmware
 
 ### x86/HVM iPXE
@@ -1031,7 +1016,6 @@ as the guest itself.
 Booting a guest via guest BIOS firmware
 
     Status, SeaBIOS (qemu-xen): Supported
-    Status, ROMBIOS (qemu-xen-traditional): Supported
 
 ### x86/HVM OVMF
 
diff --git a/config/Paths.mk.in b/config/Paths.mk.in
index 38b1bb6b1f..bc42748b7a 100644
--- a/config/Paths.mk.in
+++ b/config/Paths.mk.in
@@ -5,8 +5,7 @@
 # because of this these variables are defined on one master input source file
 # and is generated after running ./configure. The master source is located
 # on the xen source tree at under config/Paths.mk.in and it is used to
-# generate shell or header files by the build system upon demand through the
-# use of the helper makefile helper buildmakevars2file().
+# generate shell or header files by the build system upon demand.
 #
 # For more documentation you can refer to the wiki:
 #
diff --git a/config/Tools.mk.in b/config/Tools.mk.in
index 37c071961e..463ab75965 100644
--- a/config/Tools.mk.in
+++ b/config/Tools.mk.in
@@ -43,7 +43,6 @@ CONFIG_OVMF         := @ovmf@
 CONFIG_ROMBIOS      := @rombios@
 CONFIG_SEABIOS      := @seabios@
 CONFIG_IPXE         := @ipxe@
-CONFIG_QEMU_TRAD    := @qemu_traditional@
 CONFIG_QEMU_XEN     := @qemu_xen@
 CONFIG_QEMUU_EXTRA_ARGS:= @EXTRA_QEMUU_CONFIGURE_ARGS@
 CONFIG_LIBNL        := @libnl@
diff --git a/docs/process/branching-checklist.txt b/docs/process/branching-checklist.txt
index aa7a27eed5..9632888a56 100644
--- a/docs/process/branching-checklist.txt
+++ b/docs/process/branching-checklist.txt
@@ -71,7 +71,6 @@ ov=4.0
 Ensure references to qemu trees and Mini-OS in xen.git's Config.mk are updated.
 The variables and there content should be:
   * QEMU_UPSTREAM_REVISION: qemu-xen-X.Y.0
-  * QEMU_TRADITIONAL_REVISION: xen-X.Y.0
   * MINIOS_UPSTREAM_REVISION: xen-RELEASE-X.Y.0
 Where X.Y is the release version (e.g. 4.17).
 
diff --git a/docs/process/release-technician-checklist.txt b/docs/process/release-technician-checklist.txt
index 829e8ec47b..64ed9fd5b2 100644
--- a/docs/process/release-technician-checklist.txt
+++ b/docs/process/release-technician-checklist.txt
@@ -56,7 +56,6 @@ t=RELEASE-$r
 
 * change xen-unstable Config.mk
 #   QEMU_UPSTREAM_REVISION,
-#   QEMU_TRADITIONAL_REVISION
 #   MINIOS_UPSTREAM_REVISION
 #     (drop any references to the specific commits, e.g. date or title)
 * change SUPPORT.md heading version number; -unstable or -rc tag
diff --git a/stubdom/.gitignore b/stubdom/.gitignore
index 23350446b9..1b69656d45 100644
--- a/stubdom/.gitignore
+++ b/stubdom/.gitignore
@@ -11,8 +11,6 @@
 /gmp-*
 /grub-*
 /include
-/ioemu
-/ioemu/
 /libs-*
 /libxencall-*
 /libxenevtchn-*
@@ -29,7 +27,6 @@
 /pciutils-*
 /pkg-config/*
 /polarssl-*
-/stubdompath.sh
 /tpm_emulator-*
 /vtpm/vtpm_manager.h
 /xenstore
diff --git a/stubdom/Makefile b/stubdom/Makefile
index 724ce40365..666c3221dc 100644
--- a/stubdom/Makefile
+++ b/stubdom/Makefile
@@ -7,7 +7,6 @@ export PKG_CONFIG_DIR = $(CURDIR)/pkg-config
 
 # Remove flags which are meant for tools, e.g. "-m64"
 export EXTRA_CFLAGS_XEN_TOOLS=
-export EXTRA_CFLAGS_QEMU_TRADITIONAL=
 
 export stubdom=y
 export debug=y
@@ -71,16 +70,12 @@ TARGET_LDFLAGS += -nostdlib -L$(CROSS_PREFIX)/$(GNU_TARGET_ARCH)-xen-elf/lib
 
 TARGETS=$(STUBDOM_TARGETS)
 
-STUBDOMPATH="stubdompath.sh"
-genpath-target = $(call buildmakevars2file,$(STUBDOMPATH))
-$(eval $(genpath-target))
-
 .PHONY: all
 all: build
 ifeq ($(STUBDOM_SUPPORTED),1)
-build: $(STUBDOMPATH) $(STUBDOM_BUILD)
+build: $(STUBDOM_BUILD)
 else
-build: $(STUBDOMPATH)
+build:
 endif
 
 ##############
@@ -267,43 +262,6 @@ cross-tpmemu: $(TPMEMU_STAMPFILE)
 .PHONY: $(CROSS_ROOT)
 $(CROSS_ROOT): cross-newlib cross-zlib cross-libpci
 
-QEMU_ROOT := $(shell if [ -d "$(QEMU_TRADITIONAL_LOC)" ]; then echo "$(QEMU_TRADITIONAL_LOC)"; else echo .; fi)
-
-ifneq ($(filter ioemu,$(STUBDOM_TARGETS)),)
-IOEMU_LINKFARM_TARGET := ioemu/linkfarm.stamp
-endif
-
-ifeq ($(QEMU_ROOT),.)
-$(XEN_ROOT)/tools/qemu-xen-traditional-dir:
-	$(MAKE) DESTDIR= -C $(XEN_ROOT)/tools qemu-xen-traditional-dir-find
-
-ioemu/linkfarm.stamp: $(XEN_ROOT)/tools/qemu-xen-traditional-dir
-	mkdir -p ioemu
-	set -e;									\
-	$(buildmakevars2shellvars);						\
-	cd ioemu;								\
-	src="$$XEN_ROOT/tools/qemu-xen-traditional-dir"; export src;		\
-	(cd $$src && find * -type d						\
-		$(addprefix ! -path , '*-softmmu*' '*-linux-user*') -print)	\
-		| xargs mkdir -p;						\
-	(cd $$src && find *	! -type l  -type f  $(addprefix ! -path ,	\
-			'*.[oda1]' 'config-*' config.mak qemu-dm qemu-img-xen	\
-			'*.html' '*.pod' '*-softmmu*' '*-linux-user*'		\
-			)) >linkfarm.stamp.tmp;				\
-	cmp -s linkfarm.stamp.tmp linkfarm.stamp &&			\
-		rm linkfarm.stamp.tmp || {				\
-		mv linkfarm.stamp.tmp linkfarm.stamp;			\
-		cat linkfarm.stamp | while read f;			\
-			do rm -f "$$f"; ln -s "$$src/$$f" "$$f"; done;	\
-	}
-else
-export QEMU_ROOT
-
-ioemu/linkfarm.stamp:
-	mkdir -p ioemu
-	touch ioemu/linkfarm.stamp
-endif
-
 #######
 # libraries under tools/libs
 #######
@@ -380,29 +338,6 @@ $(TARGETS_MINIOS): mini-os-%:
                 mkdir -p $@/$$i ; \
 	done
 
-#######
-# ioemu
-#######
-
-ioemu-minios.gen.cfg: APP_LIBS = evtchn gnttab ctrl guest
-ioemu-minios.gen.cfg: ioemu-minios.cfg Makefile
-	$(GEN_config) >$@
-
-ioemu-minios-config.mk: ioemu-minios.gen.cfg
-	MINIOS_CONFIG="$(CURDIR)/$<" CONFIG_FILE="$(CURDIR)/$@" $(MAKE) DESTDIR= -C $(MINI_OS) config
-
-.PHONY: ioemu
-ioemu: cross-zlib cross-libpci libxenguest ioemu-minios-config.mk
-	[ -f ioemu/config-host.mak ] || \
-	  ( $(buildmakevars2shellvars); \
-	    cd ioemu ; \
-	    LWIPDIR=$(CURDIR)/lwip-$(XEN_TARGET_ARCH) \
-	    TARGET_CPPFLAGS="$(TARGET_CPPFLAGS) $(shell cat ioemu-minios-config.mk)" \
-	    TARGET_CFLAGS="$(TARGET_CFLAGS)" \
-	    TARGET_LDFLAGS="$(TARGET_LDFLAGS)" \
-	    $(QEMU_ROOT)/xen-setup-stubdom )
-	$(MAKE) DESTDIR= -C ioemu -f $(QEMU_ROOT)/Makefile
-
 ###
 # C
 ###
@@ -496,11 +431,6 @@ xenstorepvh: $(CROSS_ROOT) xenstorepvh-minios-config.mk
 # minios
 ########
 
-.PHONY: ioemu-stubdom
-ioemu-stubdom: APP_OBJS=$(CURDIR)/ioemu/i386-stubdom/qemu.a $(CURDIR)/ioemu/i386-stubdom/libqemu.a $(CURDIR)/ioemu/libqemu_common.a
-ioemu-stubdom: mini-os-$(XEN_TARGET_ARCH)-ioemu lwip-$(XEN_TARGET_ARCH) libxenguest ioemu
-	DEF_CPPFLAGS="$(TARGET_CPPFLAGS)" DEF_CFLAGS="$(TARGET_CFLAGS)" DEF_LDFLAGS="$(TARGET_LDFLAGS)" MINIOS_CONFIG="$(CURDIR)/ioemu-minios.gen.cfg" $(MAKE) DESTDIR= -C $(MINI_OS) OBJ_DIR=$(CURDIR)/$< LWIPDIR=$(CURDIR)/lwip-$(XEN_TARGET_ARCH) APP_OBJS="$(APP_OBJS)"
-
 .PHONY: c-stubdom
 c-stubdom: mini-os-$(XEN_TARGET_ARCH)-c lwip-$(XEN_TARGET_ARCH) libxenguest c
 	DEF_CPPFLAGS="$(TARGET_CPPFLAGS)" DEF_CFLAGS="$(TARGET_CFLAGS)" DEF_LDFLAGS="$(TARGET_LDFLAGS)" MINIOS_CONFIG="$(CURDIR)/c/minios.cfg" $(MAKE) DESTDIR= -C $(MINI_OS) OBJ_DIR=$(CURDIR)/$< LWIPDIR=$(CURDIR)/lwip-$(XEN_TARGET_ARCH) APP_OBJS=$(CURDIR)/c/main.a
@@ -539,18 +469,11 @@ xenstorepvh-stubdom: mini-os-$(XEN_TARGET_ARCH)-xenstorepvh $(XENSTORE_DEPS) xen
 #########
 
 ifeq ($(STUBDOM_SUPPORTED),1)
-install: $(STUBDOMPATH) $(STUBDOM_INSTALL)
+install: $(STUBDOM_INSTALL)
 else
-install: $(STUBDOMPATH)
+install:
 endif
 
-install-ioemu: ioemu-stubdom
-	$(INSTALL_DIR) "$(DESTDIR)$(LIBEXEC_BIN)"
-	$(INSTALL_PROG) stubdom-dm "$(DESTDIR)$(LIBEXEC_BIN)"
-	$(INSTALL_DATA) stubdompath.sh "$(DESTDIR)$(LIBEXEC_BIN)"
-	$(INSTALL_DIR) "$(DESTDIR)$(XENFIRMWAREDIR)"
-	$(INSTALL_DATA) mini-os-$(XEN_TARGET_ARCH)-ioemu/mini-os.gz "$(DESTDIR)$(XENFIRMWAREDIR)/ioemu-stubdom.gz"
-
 install-grub: pv-grub
 	$(INSTALL_DIR) "$(DESTDIR)$(XENFIRMWAREDIR)"
 	$(INSTALL_DATA) mini-os-$(XEN_TARGET_ARCH)-grub/mini-os.gz "$(DESTDIR)$(XENFIRMWAREDIR)/pv-grub-$(XEN_TARGET_ARCH).gz"
@@ -593,11 +516,6 @@ else
 uninstall:
 endif
 
-uninstall-ioemu:
-	rm -f $(DESTDIR)$(LIBEXEC_BIN)/stubdom-dm
-	rm -f $(DESTDIR)$(LIBEXEC_BIN)/stubdompath.sh
-	rm -f $(DESTDIR)$(XENFIRMWAREDIR)/ioemu-stubdom.gz
-
 uninstall-grub:
 	rm -f $(DESTDIR)$(XENFIRMWAREDIR)/pv-grub-$(XEN_TARGET_ARCH).gz
 
@@ -617,11 +535,10 @@ uninstall-vtpmmgr:
 # clean
 #######
 
-# Only clean the libxc/ioemu/mini-os part
+# Only clean the libxc/mini-os part
 .PHONY: clean
 clean: $(foreach lib,$(STUB_LIBS),clean-libxen$(lib))
 clean:
-	rm -fr mini-os-$(XEN_TARGET_ARCH)-ioemu
 	rm -fr mini-os-$(XEN_TARGET_ARCH)-c
 	rm -fr mini-os-$(XEN_TARGET_ARCH)-grub
 	rm -fr mini-os-$(XEN_TARGET_ARCH)-xenstore
@@ -632,11 +549,9 @@ clean:
 	$(MAKE) -C vtpm clean
 	$(MAKE) -C vtpmmgr clean
 	rm -fr grub-$(XEN_TARGET_ARCH)
-	rm -f $(STUBDOMPATH)
 	rm -f *-minios-config.mk
 	rm -f *.gen.cfg
 	rm -fr pkg-config
-	-[ ! -d ioemu ] || $(MAKE) DESTDIR= -C ioemu clean
 	-[ ! -d xenstore ] || $(MAKE) -f $(CURDIR)/xenlibs.mk -C xenstore clean
 	-[ ! -d xenstorepvh ] || $(MAKE) -f $(CURDIR)/xenlibs.mk -C xenstorepvh clean
 
@@ -647,7 +562,7 @@ crossclean: clean
 	rm -fr newlib-$(XEN_TARGET_ARCH)
 	rm -fr zlib-$(XEN_TARGET_ARCH) pciutils-$(XEN_TARGET_ARCH)
 	rm -fr libs-$(XEN_TARGET_ARCH)
-	rm -fr ioemu xenstore xenstorepvh
+	rm -fr xenstore xenstorepvh
 	rm -fr gmp-$(XEN_TARGET_ARCH)
 	rm -fr polarssl-$(XEN_TARGET_ARCH)
 	rm -fr tpm_emulator-$(XEN_TARGET_ARCH)
diff --git a/stubdom/configure b/stubdom/configure
index 08cacf764c..9dd0e7c796 100755
--- a/stubdom/configure
+++ b/stubdom/configure
@@ -622,7 +622,6 @@ STUBDOM_UNINSTALL
 STUBDOM_INSTALL
 STUBDOM_BUILD
 STUBDOM_TARGETS
-ioemu
 vtpmmgr
 vtpm
 TPMEMU_VERSION
@@ -713,14 +712,12 @@ SHELL'
 ac_subst_files=''
 ac_user_opts='
 enable_option_checking
-enable_ioemu_stubdom
 enable_c_stubdom
 enable_pv_grub
 enable_xenstore_stubdom
 enable_xenstorepvh_stubdom
 enable_vtpm_stubdom
 enable_vtpmmgr_stubdom
-enable_qemu_traditional
 enable_debug
 enable_extfiles
 '
@@ -1363,7 +1360,6 @@ Optional Features:
   --disable-option-checking  ignore unrecognized --enable/--with options
   --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
   --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
-  --enable-ioemu-stubdom  Build and install ioemu-stubdom
   --enable-c-stubdom      Build and install c-stubdom (default is DISABLED)
   --enable-pv-grub        Build and install pv-grub (default is DISABLED)
   --disable-xenstore-stubdom
@@ -1375,7 +1371,6 @@ Optional Features:
   --enable-vtpm-stubdom   Build and install vtpm-stubdom
   --enable-vtpmmgr-stubdom
                           Build and install vtpmmgr-stubdom
-
   --disable-debug         Disable debug build of stubdom (default is ENABLED)
   --disable-extfiles      Use xen extfiles repository for libraries (default
                           is ENABLED)
@@ -2411,40 +2406,6 @@ case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
 
 # Enable/disable stub domains
 
-# Check whether --enable-ioemu-stubdom was given.
-if test ${enable_ioemu_stubdom+y}
-then :
-  enableval=$enable_ioemu_stubdom;
-
-if test "x$enableval" = "xyes"
-then :
-
-
-ioemu=y
-STUBDOM_TARGETS="$STUBDOM_TARGETS ioemu"
-STUBDOM_BUILD="$STUBDOM_BUILD ioemu-stubdom"
-STUBDOM_INSTALL="$STUBDOM_INSTALL install-ioemu"
-STUBDOM_UNINSTALL="$STUBDOM_UNINSTALL install-ioemu"
-
-
-else $as_nop
-
-if test "x$enableval" = "xno"
-then :
-
-
-ioemu=n
-
-
-fi
-
-fi
-
-
-fi
-
-
-
 # Check whether --enable-c-stubdom was given.
 if test ${enable_c_stubdom+y}
 then :
@@ -2685,35 +2646,6 @@ fi
 
 
 
-# Check whether --enable-qemu-traditional was given.
-if test ${enable_qemu_traditional+y}
-then :
-  enableval=$enable_qemu_traditional;
-fi
-
-if test "x$enable_qemu_traditional" = "xyes"
-then :
-
-    qemu_traditional=y
-else $as_nop
-
-    qemu_traditional=n
-
-fi
-if test "x$ioemu" = "x"
-then :
-
-    ioemu=$qemu_traditional
-
-fi
-echo "x$ioemu$qemu_traditional"
-if test "x$ioemu$qemu_traditional" = "xyn"
-then :
-
-    as_fn_error $? "IOEMU stubdomain requires qemu-traditional" "$LINENO" 5
-
-fi
-
 
 # Check whether --enable-debug was given.
 if test ${enable_debug+y}
@@ -4358,27 +4290,6 @@ fi
 
 
 
-if test "x$ioemu" = "xy" || test "x$ioemu" = "x"
-then :
-
-
-ioemu=y
-STUBDOM_TARGETS="$STUBDOM_TARGETS ioemu"
-STUBDOM_BUILD="$STUBDOM_BUILD ioemu-stubdom"
-STUBDOM_INSTALL="$STUBDOM_INSTALL install-ioemu"
-STUBDOM_UNINSTALL="$STUBDOM_UNINSTALL install-ioemu"
-
-
-else $as_nop
-
-
-ioemu=n
-
-
-fi
-
-
-
 
 
 
diff --git a/stubdom/configure.ac b/stubdom/configure.ac
index fc736c0387..f07b08c5b3 100644
--- a/stubdom/configure.ac
+++ b/stubdom/configure.ac
@@ -18,7 +18,6 @@ m4_include([../m4/depends.m4])
 m4_include([../m4/fetcher.m4])
 
 # Enable/disable stub domains
-AX_STUBDOM_CONDITIONAL([ioemu-stubdom], [ioemu])
 AX_STUBDOM_DEFAULT_DISABLE([c-stubdom], [c])
 AX_STUBDOM_DEFAULT_DISABLE([pv-grub], [grub])
 AX_STUBDOM_DEFAULT_ENABLE([xenstore-stubdom], [xenstore])
@@ -26,19 +25,6 @@ AX_STUBDOM_DEFAULT_ENABLE([xenstorepvh-stubdom], [xenstorepvh])
 AX_STUBDOM_CONDITIONAL([vtpm-stubdom], [vtpm])
 AX_STUBDOM_CONDITIONAL([vtpmmgr-stubdom], [vtpmmgr])
 
-AC_ARG_ENABLE([qemu-traditional])
-AS_IF([test "x$enable_qemu_traditional" = "xyes"], [
-    qemu_traditional=y],[
-    qemu_traditional=n
-])
-AS_IF([test "x$ioemu" = "x"], [
-    ioemu=$qemu_traditional
-])
-echo "x$ioemu$qemu_traditional"
-AS_IF([test "x$ioemu$qemu_traditional" = "xyn"], [
-    AC_MSG_ERROR(IOEMU stubdomain requires qemu-traditional)
-])
-
 AX_ARG_DEFAULT_ENABLE([debug], [Disable debug build of stubdom])
 AX_ARG_DEFAULT_ENABLE([extfiles], [Use xen extfiles repository for libraries])
 
@@ -69,7 +55,6 @@ AX_STUBDOM_AUTO_DEPENDS([vtpmmgr], [vtpm])
 #Conditionally enable these stubdoms based on the presense of dependencies
 AX_STUBDOM_CONDITIONAL_FINISH([vtpm-stubdom], [vtpm])
 AX_STUBDOM_CONDITIONAL_FINISH([vtpmmgr-stubdom], [vtpmmgr])
-AX_STUBDOM_CONDITIONAL_FINISH([ioemu-stubdom], [ioemu])
 
 AX_STUBDOM_FINISH
 AC_OUTPUT()
diff --git a/stubdom/ioemu-minios.cfg b/stubdom/ioemu-minios.cfg
deleted file mode 100644
index 6153ae05f8..0000000000
--- a/stubdom/ioemu-minios.cfg
+++ /dev/null
@@ -1,6 +0,0 @@
-CONFIG_LIBC=y
-CONFIG_LWIP=y
-CONFIG_START_NETWORK=n
-CONFIG_QEMU_XS_ARGS=y
-CONFIG_PCIFRONT=y
-XEN_INTERFACE_VERSION=__XEN_LATEST_INTERFACE_VERSION__
diff --git a/tools/Makefile b/tools/Makefile
index e9e1cda305..6ecf7c0da8 100644
--- a/tools/Makefile
+++ b/tools/Makefile
@@ -24,7 +24,6 @@ SUBDIRS-$(CONFIG_Linux) += vchan
 
 # do not recurse in to a dir we are about to delete
 ifneq "$(MAKECMDGOALS)" "distclean"
-SUBDIRS-$(CONFIG_QEMU_TRAD) += qemu-xen-traditional-dir
 SUBDIRS-$(CONFIG_QEMU_XEN) += qemu-xen-dir
 endif
 
@@ -79,7 +78,6 @@ clean: subdirs-clean
 
 .PHONY: distclean
 distclean: subdirs-distclean clean
-	rm -rf qemu-xen-traditional-dir qemu-xen-traditional-dir-remote
 	rm -rf qemu-xen-dir qemu-xen-dir-remote qemu-xen-build
 	rm -rf ../config/Tools.mk config.h config.log config.status \
 		config.cache autom4te.cache
@@ -97,11 +95,6 @@ QEMU_UPSTREAM_RPATH := -Wl,-rpath,$(LIBEXEC_LIB)
 IOEMU_EXTRA_LDFLAGS :=
 endif
 
-QEMU_ROOT := $(shell if [ -d "$(QEMU_TRADITIONAL_LOC)" ]; then echo "$(QEMU_TRADITIONAL_LOC)"; else echo .; fi)
-ifneq ($(QEMU_ROOT),.)
-export QEMU_ROOT
-endif
-
 # Targets for external trees:
 #  ${target}-dir-find
 #    See if the directory exists and check it out if not.
@@ -136,54 +129,6 @@ endif
 #   ${TARGET}_LOC
 #     The ultimate location of the source (either a local dir or remote URL)
 
-# External target: qemu-xen-traditional
-qemu-xen-traditional-dir-find:
-	set -ex; \
-	if test -d $(QEMU_TRADITIONAL_LOC); then \
-		mkdir -p qemu-xen-traditional-dir; \
-	else \
-		export GIT=$(GIT); \
-		$(XEN_ROOT)/scripts/git-checkout.sh $(QEMU_TRADITIONAL_LOC) $(QEMU_TRADITIONAL_REVISION) qemu-xen-traditional-dir; \
-	fi
-
-.PHONY: qemu-xen-traditional-dir-force-update
-qemu-xen-traditional-dir-force-update: qemu-xen-traditional-dir-find
-	set -ex; \
-	if [ "$(QEMU_TRADITIONAL_REVISION)" ]; then \
-		cd qemu-xen-traditional-dir-remote; \
-		$(GIT) fetch origin; \
-		$(GIT) reset --hard $(QEMU_TRADITIONAL_REVISION); \
-	fi
-
-qemu-traditional-recurse = \
-	set -e; \
-		$(buildmakevars2shellvars); \
-		export CONFIG_BLKTAP1=n; \
-		export BUILDING_QEMU_TRAD=y; \
-		cd qemu-xen-traditional-dir; \
-		$(1)
-
-subdir-all-qemu-xen-traditional-dir: qemu-xen-traditional-dir-find
-	$(call qemu-traditional-recurse,\
-		$(QEMU_ROOT)/xen-setup \
-		--extra-cflags="-D__XEN_TOOLS__ $(EXTRA_CFLAGS_QEMU_TRADITIONAL)" \
-		$(IOEMU_EXTRA_LDFLAGS) \
-		--cpu=$(IOEMU_CPU_ARCH) \
-		$(IOEMU_CONFIGURE_CROSS); \
-		$(MAKE) all \
-	)
-
-subdir-install-qemu-xen-traditional-dir: subdir-all-qemu-xen-traditional-dir
-	$(call qemu-traditional-recurse,$(MAKE) install)
-
-subdir-clean-qemu-xen-traditional-dir:
-	set -e; if test -d qemu-xen-traditional-dir/.; then \
-		$(MAKE) -C qemu-xen-traditional-dir clean; \
-	fi
-subdir-uninstall-qemu-xen-traditional-dir:
-	rm -f $(D)$(bindir)/qemu-nbd*
-	rm -f $(D)$(bindir)/qemu-img*
-
 # External target: qemu-xen
 qemu-xen-dir-find:
 	if test -d $(QEMU_UPSTREAM_LOC) ; then \
@@ -276,9 +221,6 @@ subtree-force-update:
 ifeq ($(CONFIG_QEMU_XEN),y)
 	$(MAKE) qemu-xen-dir-force-update
 endif
-ifeq ($(CONFIG_QEMU_TRAD),y)
-	$(MAKE) qemu-xen-traditional-dir-force-update
-endif
 ifeq ($(CONFIG_X86),y)
 	$(MAKE) -C firmware subtree-force-update
 endif
diff --git a/tools/Rules.mk b/tools/Rules.mk
index 6bd636709f..725c3c32e9 100644
--- a/tools/Rules.mk
+++ b/tools/Rules.mk
@@ -134,12 +134,9 @@ endif
 
 CFLAGS_libxenlight += $(CFLAGS_libxenctrl)
 
-# Don't add -Werror if we are used by qemu-trad build system.
-ifndef BUILDING_QEMU_TRAD
 ifeq ($(CONFIG_WERROR),y)
 CFLAGS += -Werror
 endif
-endif
 
 ifeq ($(debug),y)
 # Use -Og if available, -O0 otherwise
diff --git a/tools/config.h.in b/tools/config.h.in
index 0bab3cb136..fe2a94cfc4 100644
--- a/tools/config.h.in
+++ b/tools/config.h.in
@@ -42,9 +42,6 @@
 /* pygrub enabled */
 #undef HAVE_PYGRUB
 
-/* Qemu traditional enabled */
-#undef HAVE_QEMU_TRADITIONAL
-
 /* ROMBIOS enabled */
 #undef HAVE_ROMBIOS
 
diff --git a/tools/configure b/tools/configure
index e1f6ea6bf5..27ae7c52fb 100755
--- a/tools/configure
+++ b/tools/configure
@@ -726,7 +726,6 @@ BCC
 LD86
 AS86
 ipxe
-qemu_traditional
 LINUX_BACKEND_MODULES
 pygrub
 golang
@@ -835,7 +834,6 @@ enable_seabios
 enable_golang
 enable_pygrub
 with_linux_backend_modules
-enable_qemu_traditional
 enable_ipxe
 with_system_ipxe
 enable_rombios
@@ -1518,13 +1516,10 @@ Optional Features:
   --disable-seabios       Disable SeaBIOS (default is ENABLED)
   --disable-golang        Disable Go tools (default is ENABLED)
   --disable-pygrub        Disable pygrub (default is ENABLED)
-  --enable-qemu-traditional
-                          Enable qemu traditional device model, (DEFAULT is
-                          off)
   --enable-ipxe           Enable in-tree IPXE, (DEFAULT is off, see also
                           --with-system-ipxe)
-  --enable-rombios        Enable ROMBIOS, (DEFAULT is on if qemu-traditional
-                          or ipxe is enabled, otherwise off)
+  --enable-rombios        Enable ROMBIOS, (DEFAULT is on if ipxe is enabled,
+                          otherwise off)
   --enable-libfsimage     Enable libfsimage, (DEFAULT is on if pygrub is
                           enabled, otherwise off)
   --enable-systemd        Enable systemd support (default is DISABLED)
@@ -4838,45 +4833,16 @@ fi
 LINUX_BACKEND_MODULES="`eval echo $LINUX_BACKEND_MODULES`"
 
 
-# Check whether --enable-qemu-traditional was given.
-if test ${enable_qemu_traditional+y}
-then :
-  enableval=$enable_qemu_traditional;
-fi
-
-if test "x$enable_qemu_traditional" = "xyes"
-then :
-
-
-printf "%s\n" "#define HAVE_QEMU_TRADITIONAL 1" >>confdefs.h
-
-    qemu_traditional=y
-else $as_nop
-
-    qemu_traditional=n
-
-fi
-
-
 # Check whether --enable-ipxe was given.
 if test ${enable_ipxe+y}
 then :
   enableval=$enable_ipxe;
-else $as_nop
-
-    if test "x$enable_qemu_traditional" = "xyes"
-then :
-
-        enable_ipxe="yes"
-
 else $as_nop
 
         enable_ipxe="no"
 
 fi
 
-fi
-
 if test "x$enable_ipxe" = "xno"
 then :
   ipxe=n
@@ -4912,7 +4878,7 @@ then :
   enableval=$enable_rombios;
 else $as_nop
 
-    if test "x$enable_qemu_traditional" = "xyes" -o "x$enable_ipxe" = "xyes"
+    if test "x$enable_ipxe" = "xyes"
 then :
 
         enable_rombios="yes"
@@ -4928,7 +4894,7 @@ fi
 if test "x$enable_rombios" = "xyes"
 then :
 
-                # Extract the first word of "as86", so it can be a program name with args.
+    # Extract the first word of "as86", so it can be a program name with args.
 set dummy as86; ac_word=$2
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 printf %s "checking for $ac_word... " >&6; }
diff --git a/tools/configure.ac b/tools/configure.ac
index 0dd6d747ab..dada1c3b15 100644
--- a/tools/configure.ac
+++ b/tools/configure.ac
@@ -121,25 +121,11 @@ esac])
 LINUX_BACKEND_MODULES="`eval echo $LINUX_BACKEND_MODULES`"
 AC_SUBST(LINUX_BACKEND_MODULES)
 
-AC_ARG_ENABLE([qemu-traditional],
-    AS_HELP_STRING([--enable-qemu-traditional],
-                   [Enable qemu traditional device model, (DEFAULT is off)]))
-AS_IF([test "x$enable_qemu_traditional" = "xyes"], [
-AC_DEFINE([HAVE_QEMU_TRADITIONAL], [1], [Qemu traditional enabled])
-    qemu_traditional=y],[
-    qemu_traditional=n
-])
-AC_SUBST(qemu_traditional)
-
 AC_ARG_ENABLE([ipxe],
     AS_HELP_STRING([--enable-ipxe],
                    [Enable in-tree IPXE,
                     (DEFAULT is off, see also --with-system-ipxe)]),,[
-    AS_IF([test "x$enable_qemu_traditional" = "xyes"], [
-        enable_ipxe="yes"
-    ], [
         enable_ipxe="no"
-    ])
 ])
 AS_IF([test "x$enable_ipxe" = "xno"], [ipxe=n], [ipxe=y])
 AC_ARG_WITH([system-ipxe],
@@ -162,18 +148,15 @@ AC_SUBST(ipxe)
 
 AC_ARG_ENABLE([rombios],
     AS_HELP_STRING([--enable-rombios],
-                   [Enable ROMBIOS, (DEFAULT is on if qemu-traditional or ipxe is enabled,
+                   [Enable ROMBIOS, (DEFAULT is on if ipxe is enabled,
                     otherwise off)]),,[
-    AS_IF([test "x$enable_qemu_traditional" = "xyes" -o "x$enable_ipxe" = "xyes"], [
+    AS_IF([test "x$enable_ipxe" = "xyes"], [
         enable_rombios="yes"
     ], [
         enable_rombios="no"
     ])
 ])
 AS_IF([test "x$enable_rombios" = "xyes"], [
-    dnl as86, ld86, and bcc are only required when building rombios. They
-    dnl are only needed when the host system is x86 but that check is done
-    dnl for us above when checking if we should build with qemu-traditional.
     AX_PATH_PROG_OR_FAIL([AS86], [as86])
     AX_PATH_PROG_OR_FAIL([LD86], [ld86])
     AX_PATH_PROG_OR_FAIL([BCC], [bcc])
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 29 11:07:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 11:07:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.971965.1360383 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9ino-0002oi-BF; Tue, 29 Apr 2025 11:07:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 971965.1360383; Tue, 29 Apr 2025 11:07: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 1u9ino-0002oX-6o; Tue, 29 Apr 2025 11:07:04 +0000
Received: by outflank-mailman (input) for mailman id 971965;
 Tue, 29 Apr 2025 11:07: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=Cjpo=XP=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1u9inn-0001XI-2e
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 11:07:03 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 13aab7f3-24ea-11f0-9eb4-5ba50f476ded;
 Tue, 29 Apr 2025 13:07:02 +0200 (CEST)
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 B588C1F391;
 Tue, 29 Apr 2025 11:07:01 +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 557EC13A8B;
 Tue, 29 Apr 2025 11:07:01 +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 vZJkE9WyEGglOwAAD6G6ig
 (envelope-from <jgross@suse.com>); Tue, 29 Apr 2025 11:07: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: 13aab7f3-24ea-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1745924821; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=Z9A+fu0CkA24A42L4jKEcCYh+ApxXI6+jMZ38aW5FWI=;
	b=qzpDOqPV7ZLdtVuIMN8r5d5Bp6LAecEtmWNGMYk6p1vBaP3pPt6yw8R/TbSlhhecxqUpvJ
	EIgltJD/XLdYlGFpds5nltSztWmsGVnumggBG85FdyLDrsfMTHJmEJJABDGxKY5ou9cK73
	JiAONNC4fIJ9Rj6ZWDkO8EB+vh83F7c=
Authentication-Results: smtp-out2.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=qzpDOqPV
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1745924821; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=Z9A+fu0CkA24A42L4jKEcCYh+ApxXI6+jMZ38aW5FWI=;
	b=qzpDOqPV7ZLdtVuIMN8r5d5Bp6LAecEtmWNGMYk6p1vBaP3pPt6yw8R/TbSlhhecxqUpvJ
	EIgltJD/XLdYlGFpds5nltSztWmsGVnumggBG85FdyLDrsfMTHJmEJJABDGxKY5ou9cK73
	JiAONNC4fIJ9Rj6ZWDkO8EB+vh83F7c=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v3 4/4] build: don't require full tools build for building stubdoms
Date: Tue, 29 Apr 2025 13:06:34 +0200
Message-ID: <20250429110636.30518-5-jgross@suse.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20250429110636.30518-1-jgross@suse.com>
References: <20250429110636.30518-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Rspamd-Queue-Id: B588C1F391
X-Spam-Score: -3.01
X-Rspamd-Action: no action
X-Spamd-Result: default: False [-3.01 / 50.00];
	BAYES_HAM(-3.00)[99.99%];
	MID_CONTAINS_FROM(1.00)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	R_MISSING_CHARSET(0.50)[];
	R_DKIM_ALLOW(-0.20)[suse.com:s=susede1];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	MIME_GOOD(-0.10)[text/plain];
	MX_GOOD(-0.01)[];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	MIME_TRACE(0.00)[0:+];
	ARC_NA(0.00)[];
	TO_DN_SOME(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];
	RCVD_TLS_ALL(0.00)[];
	DKIM_TRACE(0.00)[suse.com:+];
	RCVD_COUNT_TWO(0.00)[2];
	FROM_EQ_ENVFROM(0.00)[];
	FROM_HAS_DN(0.00)[];
	SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	DNSWL_BLOCKED(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	RECEIVED_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:106:10:150:64:167:received];
	RCPT_COUNT_SEVEN(0.00)[9];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:dkim,suse.com:mid,suse.com:email,imap1.dmz-prg2.suse.org:rdns,imap1.dmz-prg2.suse.org:helo]
X-Rspamd-Server: rspamd1.dmz-prg2.suse.org
X-Spam-Flag: NO
X-Spam-Level: 

With the drop of qemu-traditional "make stubdom" no longer requires
"make tools" to have finished.

It is enough to add "install-tools-public-headers" as a prereq of
"install-stubdom".

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Makefile b/Makefile
index c9d80a6dc6..67b71ac3d4 100644
--- a/Makefile
+++ b/Makefile
@@ -147,7 +147,7 @@ install-tools: install-tools-public-headers
 	$(MAKE) -C tools install
 
 .PHONY: install-stubdom
-install-stubdom: mini-os-dir install-tools
+install-stubdom: mini-os-dir install-tools-public-headers
 	$(MAKE) -C stubdom install
 ifeq (x86_64,$(XEN_TARGET_ARCH))
 	XEN_TARGET_ARCH=x86_32 $(MAKE) -C stubdom install-grub-if-enabled
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 29 11:14:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 11:14:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.972044.1360456 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9iub-0006iC-MD; Tue, 29 Apr 2025 11:14:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 972044.1360456; Tue, 29 Apr 2025 11:14: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 1u9iub-0006i5-Jb; Tue, 29 Apr 2025 11:14:05 +0000
Received: by outflank-mailman (input) for mailman id 972044;
 Tue, 29 Apr 2025 11:14: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=PDgl=XP=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u9iua-0006hy-MM
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 11:14:04 +0000
Received: from NAM04-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam04on2060b.outbound.protection.outlook.com
 [2a01:111:f403:2409::60b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0d261673-24eb-11f0-9ffb-bf95429c2676;
 Tue, 29 Apr 2025 13:14:01 +0200 (CEST)
Received: from MW4PR04CA0210.namprd04.prod.outlook.com (2603:10b6:303:86::35)
 by PH8PR12MB7136.namprd12.prod.outlook.com (2603:10b6:510:22b::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.33; Tue, 29 Apr
 2025 11:13:57 +0000
Received: from MWH0EPF000A6734.namprd04.prod.outlook.com
 (2603:10b6:303:86:cafe::e) by MW4PR04CA0210.outlook.office365.com
 (2603:10b6:303:86::35) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.36 via Frontend Transport; Tue,
 29 Apr 2025 11:13:56 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 MWH0EPF000A6734.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.8699.20 via Frontend Transport; Tue, 29 Apr 2025 11:13:56 +0000
Received: from localhost (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, 29 Apr
 2025 06:13:54 -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: 0d261673-24eb-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=uoSfW31U5F+br87+d2zaCuwCeA5DOuMEm63s+uZZ9+zUA1+Bra+3cWShSglXHY0caXy4QohCL/8VKOZjeH2mIMdmuw57HiVX/kUddPkEb9FklbRbuHduyz/Z1MB33hu58pC3D3n4DC4C3YUpV+tW5KZ+VtCxb/t1hG0SxTrN7v9jYZURenYph24iIMqZ82h+VQj8UKjWvjdVxN4Ii4tEqT9gXOw2zkhMX9I66y8VbKR1aZmhTVl72/Na0KKMSYGJOc5F1dlL87M0IiRkqY6bQJlcB+DvwRWRLb3j/XlX6nOOnHxs8JuAmqZSYwz8JaUWObr0mypY1h/tWjrebZ2ZWg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=AupN6ieuL+06yRgtfvU4DU+GH8vYdBa1fXIFCXwZnrY=;
 b=n8j+bGIsUTOIiPT59wzXGpis4coihdHbzH0jn4ModIAltKtK0kgSXniF3V54orqa3KlS4ZKeaZlakpBhjhGmNW9gtVzf8t8ok09nAcesTNp0ufz2imBQuxqv3l6R5rhbAsTFlestF8+yPk3xxJMkbhzdhq1PwJZc6BTpjysupPfeCL9iczN12rbCTod/eO4w7VwjaHH+iSKK8L4nPuCTbjS7wDqGQ1I648827rM2mVp2jH1mwSqBFTDr8x8sJ//dxybQkQIZw0jHZMZXt7tiNcaUF7Qrk6vStG4rxD7lhEyjLxDIPEbXQ41NcU+QBfSxB3f3Gag+HZKGp82WYX/Oqw==
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=AupN6ieuL+06yRgtfvU4DU+GH8vYdBa1fXIFCXwZnrY=;
 b=Ob0hS8KJDr8e8ajW3hrocdk3unOR08gW2lRw7+zSQqWUsw6udMnOXNO6MNhRI+5LGRkAugMspz8N2A31/q2hA6wEo5fEjIGinOcUnexYd3Tf5Lqc/Zt6eckgaawlD3QYOzM2RPMdErlyZAHfiLRSXk4ra641AAZGUr30C3nje74=
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
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Tue, 29 Apr 2025 12:13:51 +0100
Message-ID: <D9J2UATLKGFN.2SPPU3A77VJHE@amd.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Ariadne Conill
	<ariadne@ariadne.space>, Wei Liu <wl@xen.org>,
	<xen-devel@lists.xenproject.org>, Paul Durrant <paul@xen.org>, "Jan Beulich"
	<jbeulich@suse.com>, "Alexander M . Merritt" <alexander@edera.dev>
Subject: Re: [PATCH v2] x86/hyperv: use dynamically allocated page for
 hypercalls
From: Alejandro Vallejo <agarciav@amd.com>
To: =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
X-Mailer: aerc 0.20.1
References: <20250425234331.65875-1-ariadne@ariadne.space>
 <aA9NMJVbyXeMOOY-@macbook.lan> <D9I7TPLT0EJD.3F5P95H69CT5K@amd.com>
 <97d28edb-4274-408f-a825-d09fa771e21d@citrix.com>
 <D9I904ZOCMVN.31C4DUMXROGDK@amd.com> <aBCKsI4qhHWq4Iiz@macbook.lan>
In-Reply-To: <aBCKsI4qhHWq4Iiz@macbook.lan>
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: MWH0EPF000A6734:EE_|PH8PR12MB7136:EE_
X-MS-Office365-Filtering-Correlation-Id: c64f45f9-7455-41da-0335-08dd870eef2d
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?eXBHTXFNaWJyUEJDNkcxQzUvSndoUmVLcll4RG9KeEI1OWFGUW5vOS9Ycngx?=
 =?utf-8?B?SnkwMEtKTkljRU1Lek8rMytWRiswZVo3UWtrQVB2NUhiajVKUkVBUVRMdW9F?=
 =?utf-8?B?ZmJBR085Y2tzUDFoeGswK2p2QmVhVUIwQXBYVjZtb3BBVUtCdUljQTVURTJN?=
 =?utf-8?B?M0JRelZRcFJFMVJaVHJ3d1VraC85eVpzUnQ0Nyt1eFBLbzN1MlBFMVg0RU1E?=
 =?utf-8?B?WHZldDh3VEQzS3NhSVRjS1VtdUNHczJkYklOdDU3NlZiTGF5djFLUW0vNzM0?=
 =?utf-8?B?QTl0TG9mVTdqZTNaaVJiU1ZiY1l2dkJLT1FDOUVaSUZYby9vUmoyeHhiODNt?=
 =?utf-8?B?SUV1aHVwaFJrWjNvVlJFNGRTTlpVM3BsSVEwSWcxZFBLQmkzVHZXeURTUWZG?=
 =?utf-8?B?SUdlMVFrSk4vaVlMSG93ZTc0VjJDYWlGVVZweC9lVXR6TDhEUVZucXQ5OHpK?=
 =?utf-8?B?UnpETjI1eGV4TTJPTGk0eWdoRDNyOU1rWTlKSmtoMzFVMW5NZmFBa1Q2R2d3?=
 =?utf-8?B?eHlMVHhCb01yNmF2NVpBaDlsR3NFM2lmODNBQVM2WUt2OTQ1WG12enQ0Z3Fr?=
 =?utf-8?B?NVVMZ1RFTU05ZTVFdVlGb3dtUG0ya0JzTXRhb0dTT3hpQkFaV2pBUmUrQnVr?=
 =?utf-8?B?U3hlS29LMnY4TGZySWtmdlo4NTQyVy9NUTg5MTg2UjkxQkFuUGxkd3JXRGtX?=
 =?utf-8?B?VlkwNTcrOUJINTlPRWQyMUlROE1FdEVsNGFQeWxGL2xvUGRwNEFJd001SzBM?=
 =?utf-8?B?WUtPKzYvd3lXekFSdEU5aDExUHlDbUdMd21BNlJUMm4vTklMeU93dkc4Y0d3?=
 =?utf-8?B?Ri96NlA5RTcvcWY5aGNzeWhQV2VGTlJlOVhuZ3hHSG8xdU9LdlF1cnVjR0tq?=
 =?utf-8?B?YklYT3R0TDBWRHpMVSszQk1FYTZIMjBWaGFqb01iYlR2Zi9DZnc0eTBHaXNS?=
 =?utf-8?B?SGhmT2hDUGtrUlhQelFJMFN1UnM1dkJMd1VlSklrdHFFU1BTYjNHS3VLYkRz?=
 =?utf-8?B?MEtCNUV2WllHNjN4cTdBR25lZDVoU05adzhoNnZXeXFxT2VlSEtDTkZ4dkR0?=
 =?utf-8?B?a3oyTGN6NEJkVXhtbytyUUdHQjJRY3NVcVFEV0Z1VnFSTEtpV3BDUUZXdnEy?=
 =?utf-8?B?bmhkU2NDQlhBRFRpRHpDWFdZcTBRamFWSnNsK20xa3orR2Exd0IzWjhmOXhH?=
 =?utf-8?B?elM4Yldua2UwK3hPTjZFMHpENHRVWjZCUHlPWmNWcXU3bkgrTGhKQWdOMWJt?=
 =?utf-8?B?TlFwZEV6V3o2cW9Lb2xNSFdVQTNhMmh2SUtEZElKaTN1NmRCZ1FSNEZ6SXlw?=
 =?utf-8?B?RnQ3d1FDdFlhbnJIUkZ0Rm1pNWtzWG4rYkNGQ3E3eVA3YndDbmhMdE1oNnBN?=
 =?utf-8?B?UXc5QklLNEY3WFpNdGVDZ0NKOW80NEh1ZlBkTjJnSzZFM3BpWHUwMGY3SkFT?=
 =?utf-8?B?YXBBbDRSMWhhU2FGdTNHakUyNFBETFR0RnZmMUVieXZuN2FEMnEzL1VpMXF0?=
 =?utf-8?B?MFRIQjRlWENtV2k4V3RmaHFQenRNenc1THhWRm9iU1ZPMlEvOE9FMC9DaWhn?=
 =?utf-8?B?NGlYZTRoRzBVYlM4S2hQbVZGS3d2aTBpRlEyYzYybTMydWdCS2hHdkd1QWQ4?=
 =?utf-8?B?SVRJRFFweGp6VlFqNUlKcFYwcDMyVnBDYkhyU3JhZkFvT3hQY1RqNjNHTWty?=
 =?utf-8?B?cU1wT1gvaGhIaGhHODd1L0tIdkM2OUJ2MlFsY0g3TWMvdS91N1hzWFNhZTdG?=
 =?utf-8?B?bWFxb2R0RDhnYWFURHhWYVVCYjZOL05FTnIrWUZyRnM5VUoyU2k2bnJSNGJD?=
 =?utf-8?B?ZnRYRVdIa2s5N3JlWEliWnZpVyt5WW5FMlVBWmM0L3FBZTg1Y0dkR29TRkJt?=
 =?utf-8?B?ZjdsNG1wVVJSZnlVeE9RV0RHbzE1Y004ZG5nY1JoZVdHYmtoTVB2SlBQMG5N?=
 =?utf-8?B?NzBLNExnTlFzTlpMTSs0M2g3aTl5MVIyY3A1TllpeDVkaDZWaEJmTm9vUHJo?=
 =?utf-8?B?dGtZd1pQUXhvNGViM2hQSUR0ZjAwS2drOEwzbVNvaUFQMVh2cDNtT05qVW9i?=
 =?utf-8?Q?2Ei+nz?=
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)(1800799024)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Apr 2025 11:13:56.7061
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: c64f45f9-7455-41da-0335-08dd870eef2d
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:
	MWH0EPF000A6734.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH8PR12MB7136

On Tue Apr 29, 2025 at 9:15 AM BST, Roger Pau Monn=C3=A9 wrote:
> On Mon, Apr 28, 2025 at 12:50:55PM +0100, Alejandro Vallejo wrote:
>> On Mon Apr 28, 2025 at 12:07 PM BST, Andrew Cooper wrote:
>> > On 28/04/2025 11:55 am, Alejandro Vallejo wrote:
>> >> On Mon Apr 28, 2025 at 10:41 AM BST, Roger Pau Monn=C3=A9 wrote:
>> >>> On Fri, Apr 25, 2025 at 04:43:31PM -0700, Ariadne Conill wrote:
>> >>>> Previously Xen placed the hypercall page at the highest possible MF=
N,
>> >>>> but this caused problems on systems where there is more than 36 bit=
s
>> >>>> of physical address space.
>> >>>>
>> >>>> In general, it also seems unreliable to assume that the highest pos=
sible
>> >>>> MFN is not already reserved for some other purpose.
>> >>>>
>> >>>> Changes from v1:
>> >>>> - Continue to use fixmap infrastructure
>> >>>> - Use panic in Hyper-V setup() function instead of returning -ENOME=
M
>> >>>>   on hypercall page allocation failure
>> >>>>
>> >>>> Fixes: 620fc734f854 ("x86/hyperv: setup hypercall page")
>> >>>> Cc: Alejandro Vallejo <agarciav@amd.com>
>> >>>> Cc: Alexander M. Merritt <alexander@edera.dev>
>> >>>> Signed-off-by: Ariadne Conill <ariadne@ariadne.space>
>> >>>> ---
>> >>>>  xen/arch/x86/guest/hyperv/hyperv.c      | 17 +++++++----------
>> >>>>  xen/arch/x86/include/asm/guest/hyperv.h |  3 ---
>> >>>>  2 files changed, 7 insertions(+), 13 deletions(-)
>> >>>>
>> >>>> diff --git a/xen/arch/x86/guest/hyperv/hyperv.c b/xen/arch/x86/gues=
t/hyperv/hyperv.c
>> >>>> index 6989af38f1..0305374a06 100644
>> >>>> --- a/xen/arch/x86/guest/hyperv/hyperv.c
>> >>>> +++ b/xen/arch/x86/guest/hyperv/hyperv.c
>> >>>> @@ -98,7 +98,13 @@ static void __init setup_hypercall_page(void)
>> >>>>      rdmsrl(HV_X64_MSR_HYPERCALL, hypercall_msr.as_uint64);
>> >>>>      if ( !hypercall_msr.enable )
>> >>>>      {
>> >>>> -        mfn =3D HV_HCALL_MFN;
>> >>>> +        void *hcall_page =3D alloc_xenheap_page();
>> >>>> +        if ( !hcall_page )
>> >>>> +            panic("Hyper-V: Failed to allocate hypercall trampolin=
e page");
>> >>>> +
>> >>>> +        printk("Hyper-V: Allocated hypercall page @ %p.\n", hcall_=
page);
>> >>> This likely wants to be a dprintk, and possibly also print the
>> >>> physical address of the used page?  And no period at the end of the
>> >>> sentence IMO.
>> >>>
>> >>> I think Xen might have used the last page in the physical address
>> >>> range to prevent HyperV from possibly shattering a superpage in the
>> >>> second stage translation page-tables if normal RAM was used?
>> >>>
>> >>> However I don't know whether HyperV will shatter super-pages if a
>> >>> sub-page of it is used to contain the hypercall page (I don't think =
it
>> >>> should?)
>> >> I think it's quite unlikely.
>> >
>> > It will shatter superpages.
>> >
>> > The overlay is not part of guest memory, and will hide whatever is
>> > behind it while it is mapped, which will force a 4k PTE in EPT/NPT.
>>=20
>> That's an implementation detail. They can very well copy the trampoline
>> to guest memory when there is such (and save the previous contents
>> elsewhere) and restore them when disabling the trampoline. It's a
>> trivial optimisation that would prevent shattering while being fully
>> compliant with the TLFS.
>
> It's an implementation detail relevant from a guest perspective, as it
> impacts guest performance.  IOW: we care about the specific (current)
> implementation, as it's meaningful to how the guest-side should be
> implemented.

Indeed, I didn't mean otherwise.

My reply had more to do with the assertiveness of "it will shatter". The
reality is that we can't know, short of microbenching a read into the
trampoline after a TLB flush. And even then it may very well be
version-dependent (where old did, and newer doesn't, for instance).

>
>> The actual physical location of the trampoline is fully undefined. It
>> is defined to be an overlay; but that's a specification, not an
>> implementation.
>>=20
>> >
>> > Thinking about it, a better position would be adjacent to the APIC MMI=
O
>> > window, so at 0xfee01000.=C2=A0 The APIC MMIO window is forced to be a=
 4k
>> > mapping too, and the rest of the 2M window is normally empty.
>> >
>>=20
>> Sounds like an assumption waiting to be broken. Just like the last page
>> of guest-physical was.
>
> As a compromise - could we try to allocate from < 4GB first, and
> resort to high memory if that doesn't work?  That would at least limit
> shattering (if done) to the low 4GB, which is quite likely fragmented
> already:
>
> hcall_page =3D alloc_xenheap_pages(0, MEMF_bits(32));
> if ( !hcall_page )
>     hcall_page =3D alloc_xenheap_page();
> if ( !hcall_page )
>     panic(...);
>
> That will need a comment to describe what's going on.

Sounds far more resilient to me. I could get behind that, sure.

Ariadne, thoughts?

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Tue Apr 29 11:23:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 11:23:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.972060.1360466 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9j3c-0000Yb-Fv; Tue, 29 Apr 2025 11:23:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 972060.1360466; Tue, 29 Apr 2025 11:23: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 1u9j3c-0000YU-DG; Tue, 29 Apr 2025 11:23:24 +0000
Received: by outflank-mailman (input) for mailman id 972060;
 Tue, 29 Apr 2025 11:23: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=PDgl=XP=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u9j3a-0000YM-J3
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 11:23:22 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on2060c.outbound.protection.outlook.com
 [2a01:111:f403:2415::60c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5a4b3d30-24ec-11f0-9eb4-5ba50f476ded;
 Tue, 29 Apr 2025 13:23:20 +0200 (CEST)
Received: from DS7PR03CA0211.namprd03.prod.outlook.com (2603:10b6:5:3ba::6) by
 IA1PR12MB7590.namprd12.prod.outlook.com (2603:10b6:208:42a::5) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.8699.19; Tue, 29 Apr 2025 11:23:16 +0000
Received: from DS3PEPF000099D4.namprd04.prod.outlook.com
 (2603:10b6:5:3ba:cafe::e5) by DS7PR03CA0211.outlook.office365.com
 (2603:10b6:5:3ba::6) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.36 via Frontend Transport; Tue,
 29 Apr 2025 11:23:16 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 DS3PEPF000099D4.mail.protection.outlook.com (10.167.17.5) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8699.20 via Frontend Transport; Tue, 29 Apr 2025 11:23:16 +0000
Received: from localhost (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, 29 Apr
 2025 06:23:14 -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: 5a4b3d30-24ec-11f0-9eb4-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=xy6cQ7xDhyIJGgn2LtsrAu1JdrTSby/UqIAdMsUWiOqBr/9fUgov2YJ1Jki0eIapue8OEKV8xy8oxB7QoM7g8VB0fiVW85Ax3Rj156TJ20EfgePwAPW/2rXO5vkcQ6aQHOWncAsVG5d396tt+OYjxR4cSrzkoq77tIT77hUHY0guvKH+JBvbQrUMmMt6ufjY7LifSRwIKUQrcmpgHz9e1MS1XnK0SpjzgN4BLphIm/91yx3ZBVdKZhrenvv7R77D3rLz2HQXgBjhsbj5VBOlmKb//ti5c0TE/AzdF3bKVLA1tdRj1LeebQMcs0DL+jAHY2ce47j4YOMfsFT447u73w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=hxngcqNyQFoCyXhRaLSUeeJ3ReN4p9F/M7ziXji+s+8=;
 b=jLvRRS1XDHZbNeIAgTBv/sQzopiT5FViCWKcGKsMI/+1yKT8SYVMk1r9Q2UlvJGXtVg6rgZQD5F4p70PdetbdFn8gGGuyUbu4TGf2Jtep+TJXoLWLrFMWvH8ptfhxTlmrYCvz+kQKnH5Kcde8Ib6amn0jSPk/fPswZ7z2xmOw0iQb5oJFRQJIdrgcV0tIcy501Iqt283hgO14EI3gV+pTfKU/PT1GkOHEQQIQ6W8vA5BZGpwN5r/1ghdSliCPYHhm5pYZvcSdo+XK+RtQkBoczlLh+MXY4n0GE3TWSJcCTFDPXnmXqC8FbD44EmOrUdv3AXtqUuVZ72UCxKqJ2Yk7A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=ariadne.space 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=hxngcqNyQFoCyXhRaLSUeeJ3ReN4p9F/M7ziXji+s+8=;
 b=niUE91hMxp7sbYelvsTGJ6UiRR8Xt7zKW/D9GNAMFc3Z/IAd+mLcRoJD6zvdLlyBucDZtQGK/h7fl/9KyvAoH37RrgDBa5ouNgnixsslV3HaF5bxk9TCRVZp32p6HCA4aKvy+Vr/KQymCJIWP3hsN1+4QjE/GP97c8RsQnDDh9k=
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
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Tue, 29 Apr 2025 12:23:13 +0100
Message-ID: <D9J31GQHZWX2.3TMGJW5VZ3S4T@amd.com>
CC: Paul Durrant <paul@xen.org>, Jan Beulich <jbeulich@suse.com>, Andrew
 Cooper <andrew.cooper3@citrix.com>, =?utf-8?q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>, "Alexander M . Merritt" <alexander@edera.dev>
Subject: Re: [PATCH v3] x86/hyperv: use dynamically allocated page for
 hypercalls
From: Alejandro Vallejo <agarciav@amd.com>
To: Ariadne Conill <ariadne@ariadne.space>, <xen-devel@lists.xenproject.org>
X-Mailer: aerc 0.20.1
References: <20250428195736.2516-1-ariadne@ariadne.space>
In-Reply-To: <20250428195736.2516-1-ariadne@ariadne.space>
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: DS3PEPF000099D4:EE_|IA1PR12MB7590:EE_
X-MS-Office365-Filtering-Correlation-Id: 5de08383-9952-49c6-97a9-08dd87103c8e
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|36860700013|82310400026|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?VkRBaFlRUnp3RkluYkFqN3lJOGUyT3hpdnExTHQxZnBaWjJqamVPelF2ZGdk?=
 =?utf-8?B?eFJpWStOeDZaNkx6RWRjVGVtK1BaZzlmOEs4d0RROHJtSDFtRVBhT2F5cFdH?=
 =?utf-8?B?QnJYRis3SjZ3VlB3RFU2VGJvQ1dsSlc2d1J6TThpQkVFNzJBVVQzQmpPSjFK?=
 =?utf-8?B?c29LM1VoeTR1QXJkdXZXQmt0SEJmN3o0dkh1cWJiRVpGNU43bDllQUt5SVJm?=
 =?utf-8?B?eVpCMkpyMGkxNnpCVHN6NHN1djMvUjRZTXZkVW9mL0VRTW5IdnpDbjhXVnRr?=
 =?utf-8?B?NHFkQ1lRSXlsNFZ4NHVhdldpSFJWbTF6cVc4dm80SHliMkF6R2pkTVZtMWJs?=
 =?utf-8?B?cTdzK3BOb25mdkVhb0xiZHdNZG5uRzZyM1ZzV2RXU1FyR3dzV3Y1amE2eWNp?=
 =?utf-8?B?Wm4wR0k5aFR2RWhzcEhxYkVkdXcyYUF5NzVZQVdwdTF0OS91bytqNFErblUr?=
 =?utf-8?B?UjJtRnFoZm1iZHVaK2VBejFwb2dnaE5vUkRDQmNRS0V6eDZ3N2ZKRXh5U2gz?=
 =?utf-8?B?a2dhSld4L2tWOVUvakk2RUJoVnlpRjNyN0lZeGlMMjY4cmhyV3Ftd3F4dnBy?=
 =?utf-8?B?ek8ycldWL0tZdXZya2Nha0loZFB3cmVJQWZLK2llMGJTYzFwcnVqaS9XYUlT?=
 =?utf-8?B?QWJialJ4VlNoNW91Vld5c0sxY3JqdG5JdnZuVGllTFlydTc5S2xGMys0aFZ0?=
 =?utf-8?B?M1l0Nzg4UzRQak1sekpVelg3MlJBVitEVnROWVd5ejE3RVg3MXlZK2lrOWEx?=
 =?utf-8?B?MCtEaFpXQ3p4RWtaMEZ1MFdvN1RWSVhITERmQ0ZBOTJsK3VrR2FRTUZCMEtZ?=
 =?utf-8?B?SjZBNXI3c241ZTRwV1RjaUdDQ0lsR1E3TWJ1Q2dyVTBuNEZyU01nYTU1TTFn?=
 =?utf-8?B?S1N5NXJ2WGZMZXh0UWs3azZkaVROQzN6eDdwVjNKcTdLR21ZVnY3N0Q5TmtL?=
 =?utf-8?B?WU13eU5OWGxnSEYvenpkSnZyNk5rVEVOQ1ZGV3YxSEJqdjUvUDhoczEvalYy?=
 =?utf-8?B?ZFlmUUE0VU96bFhwUGxFTTM5MWdlc1AxN1FPa2pmVjlQWHBDRUlBeG9wc0du?=
 =?utf-8?B?WDltanhRQ3d5aG4yV1orUVRFTDJtV2t6M1RqWkdRRnpFenF1OS8vc1pqMjhF?=
 =?utf-8?B?cFhwRFZ4YjVJZFBrRzR5bUx3dFUva054NGdIYkZWUUxtc2dRWmNpZDhoZ3RL?=
 =?utf-8?B?TEpFOGx5NkhwcGcxTFNRVTRKTzIxMy9GZGE3UXBmZnhtTmNGNUV3ekZXK0ZS?=
 =?utf-8?B?c3EvcnZ1eEhSVWtRaTlMaDdMWFNBdlpPR0NkamxrWFN1VndaLzZ1S1lJMDJD?=
 =?utf-8?B?RW0xNk9mMzZnblFsSlpxSWFqQUpHaFRZQVp6eDdmK3RwbmxZTEJLV2RQZ3Qy?=
 =?utf-8?B?bHN0VGNrUUZOQXg2aHo4Z3FBRWNOWThCZG8rcHpTczhVK3dIYWgyTWZ5Tnpr?=
 =?utf-8?B?eGpVNHJyYk0wTDdmT3RnRlFRcS90OHNnWHJHaGNvTllMYzVLZWU4Wkt2NWti?=
 =?utf-8?B?aDVMWVc4K0hVVDBDb1l6UEtVd21Na3ZoWWVubER3UEZBZGFsWUVvV0pyclNO?=
 =?utf-8?B?YzU5cXpNeUZtTWR5L0txZmdjR25nZXdJT2dJa3hldW5oVmNzUWtQeXBhSkkw?=
 =?utf-8?B?dWJjR0pGeWFkOXNUaWVDZk5PaTg1LzVycW0vbHYzZE9TZ2lDeHR3TnVyb2ps?=
 =?utf-8?B?blJzMlpjcGd5OEZFWXRzTTdra0R0ZXJ1cXpJWFl5YStnNXRBV3UwTTdzeUFv?=
 =?utf-8?B?ajRjNlQ5bjA0U01XcDI0Rll4WnlOVlJRcWNudWJweHhxMThrOU5zZmhXbzhu?=
 =?utf-8?B?LzhXR0xEUDB1SkJQN3ZMYjdUZTdyOVgyUGJIYndBWmlJMXdHWkh5RGdic1lz?=
 =?utf-8?B?OU1lZjV1aGpKVjdibGlUMU55LzFOVVV5elhVK3BZclcvZ0tWSGowMHpHNThy?=
 =?utf-8?B?QVpLSlNGR2xydkR3UXpXQWVMVTB3c01DSHFkeGxQYjhHU3lFcXRrYjBYeFBK?=
 =?utf-8?B?MnRsK3l4VzhXSTg3aWYyZnltaGo1RXdVMnhicGdvT0Q4M2VkS3ExeGJwM2dB?=
 =?utf-8?Q?g2XN1E?=
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)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Apr 2025 11:23:16.0837
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 5de08383-9952-49c6-97a9-08dd87103c8e
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:
	DS3PEPF000099D4.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB7590

On Mon Apr 28, 2025 at 8:57 PM BST, Ariadne Conill wrote:
> Previously Xen placed the hypercall page at the highest possible MFN,
> but this caused problems on systems where there is more than 36 bits
> of physical address space.
>
> In general, it also seems unreliable to assume that the highest possible
> MFN is not already reserved for some other purpose.
>
> Fixes: 620fc734f854 ("x86/hyperv: setup hypercall page")
> Cc: Alejandro Vallejo <agarciav@amd.com>
> Cc: Alexander M. Merritt <alexander@edera.dev>
> Signed-off-by: Ariadne Conill <ariadne@ariadne.space>

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

I'm happy with the patch as-is, and I'm equally happy...

> diff --git a/xen/arch/x86/guest/hyperv/hyperv.c b/xen/arch/x86/guest/hype=
rv/hyperv.c
> index 6989af38f1..f69f596441 100644
> --- a/xen/arch/x86/guest/hyperv/hyperv.c
> +++ b/xen/arch/x86/guest/hyperv/hyperv.c
> @@ -98,10 +98,18 @@ static void __init setup_hypercall_page(void)
>      rdmsrl(HV_X64_MSR_HYPERCALL, hypercall_msr.as_uint64);
>      if ( !hypercall_msr.enable )
>      {
> -        mfn =3D HV_HCALL_MFN;
> +        void *hcall_page =3D alloc_xenheap_page();
> +
> +        if ( !hcall_page )
> +            panic("Hyper-V: Failed to allocate hypercall trampoline page=
\n");

... with Roger's suggestion to probe <4G first with MEMF(32) here.

> +
> +        mfn =3D virt_to_mfn(hcall_page);
>          hypercall_msr.enable =3D 1;
>          hypercall_msr.guest_physical_address =3D mfn;
>          wrmsrl(HV_X64_MSR_HYPERCALL, hypercall_msr.as_uint64);
> +
> +        dprintk(XENLOG_INFO,
> +                "Hyper-V: Allocated hypercall page at MFN %lx\n", mfn);

nit: This is a personal preference thing, but I find %lx is very
unhelpful when the variable is something like 0x123, as 123 might be
misinterpreted to be in decimal. An mfn is not nearly as problematic as
an error code, but %#lx avoids the ambiguity altogether.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Tue Apr 29 11:47:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 11:47:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.972097.1360520 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9jQV-0004yx-RC; Tue, 29 Apr 2025 11:47:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 972097.1360520; Tue, 29 Apr 2025 11: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 1u9jQV-0004yq-Of; Tue, 29 Apr 2025 11:47:03 +0000
Received: by outflank-mailman (input) for mailman id 972097;
 Tue, 29 Apr 2025 11: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=qXnC=XP=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u9jQU-0004yk-AH
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 11:47:02 +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 a9a8d631-24ef-11f0-9eb4-5ba50f476ded;
 Tue, 29 Apr 2025 13:47:01 +0200 (CEST)
Received: by mail-ed1-x532.google.com with SMTP id
 4fb4d7f45d1cf-5eb92df4fcbso11417746a12.0
 for <xen-devel@lists.xenproject.org>; Tue, 29 Apr 2025 04:47:01 -0700 (PDT)
Received: from [10.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-5f7016f6418sm7514894a12.40.2025.04.29.04.46.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 29 Apr 2025 04:46: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: a9a8d631-24ef-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745927221; x=1746532021; 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=tc+niupRHkYFRLjY4KEJGAyJRfidDOGzQCo0i8IsPs8=;
        b=bztqOMrg2z/hGEIDfXNNZBh2FM5teKiFVw4q6ybQPgH/KvMMcf4YevW8pOLabZJuEC
         KKU0zgPrjhZi3gXgz8tVQxSyL4K8/RnndLijVC9bgP+QLW/RYHfNcxvibZUQa56gPrPn
         kzfTLY6BdBtACTjhHV8OapHVIKIa0YdT8ZcAtXTBaeUtWQh1Hb3eKBn1Q6ZlKM3xiSfN
         edZ40JchMiv4Iy1Zo5/UEG4t+tkNjPPu3mitBpVb60SDVwz9qhvdUMM0WQ+THD+3GB7V
         ONF/hUfnMMwN8ipxVbb6qiXk9XtJE23r5tCj7moSScD/eEqhkb/tBvsPAbCyKTwQBuIq
         WO9w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745927221; x=1746532021;
        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=tc+niupRHkYFRLjY4KEJGAyJRfidDOGzQCo0i8IsPs8=;
        b=NHoCnPljEK2q+s+pw+ErjWisSf950WX1QPno0BkG9ev4im3blul1C+G+xF5CtARnGt
         HkU/Fj/pvpgBqj5qdT9c7x7URfX23FN8gUhm4SHmujNQPaDMGHj76pHqgLBlMnHWqLLp
         0sorGjMp/9BJnbMTpbiJO6wqI/g+7iQGsj9uGljqLlOMspGF45jqp0FY2BzEsFi4XFGJ
         nrVufVWOdcrs2zbctr1G8oBVbcI+kD+7anxDo/rhS4ZxUjoF7IEYo1RL4vUn7csaQjrt
         VEOs8jNWOq2fyj/yFxLDeqDYLuUlXWaytxno94Er06pMhaymc/GYiMBXPYd86YF4NUXL
         v8Fw==
X-Forwarded-Encrypted: i=1; AJvYcCW8lkFDJBLdgUP7SM797rAF4FTY77/O9HeJBoTKGA7SbhqYl2WvplrWGWf5yyf7rcaomcNBd15fj9M=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz0hqamyyGMLVAu+WFJQ3PVXJWQlQFdGPPWe7Enu7Ma+Ba/AAB2
	LSNZBsd14hq1JFyqgHDgyW6EMhjaaZLVxycypDQA+zdBO2t/I29005T0OYool4hpGmzKUctprjw
	=
X-Gm-Gg: ASbGncsQXp+158ZJyNISeTBvFe3KNnYBmWkIhFzC/z3xy0FWa/E/BREUMDo9udfxtQ3
	+fkmqnmzICg4NsbBnq76JZDOs2H4efUuE8c+NwIVeAPbt1BNPwSHt/3dk1sK8jnGEYzg8R42oUV
	/sPCpm1DCrXlCHofnw+owfUONahujeedjYDnbZD4XobL2PlzMlXoHLTMR+LjoIhqPc/9QQNhXZv
	7txp4tLhE2sN4+gD3JmdMoKvIxzpbVxCzw5WBfwGNInSwjkxf53rV03cNlbX0RBBS9KC0fFj7uI
	v+EGc/cbvPdJ3gAC3N8bsvEw828Ew2rpob7Tg5vWEtVtOTEXZJjw+Y2uqOel/gbnLW+WSx7a/54
	EZyUaZFuUv90CofliY+TkVTukubEAbLErgYHF
X-Google-Smtp-Source: AGHT+IGRfiXaviz9ArCc8fV4o6SpRwL+1USsfAhxUjEPdM6Pi8JSijTRhDx0RpNBe2qXBJhl45VUow==
X-Received: by 2002:a05:6402:1ed2:b0:5f6:23b1:ab4b with SMTP id 4fb4d7f45d1cf-5f73984e636mr10874611a12.30.1745927219822;
        Tue, 29 Apr 2025 04:46:59 -0700 (PDT)
Message-ID: <889d2b2b-db42-43d2-9da0-dcd130d64d9c@suse.com>
Date: Tue, 29 Apr 2025 13:46:58 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 04/15] xen/cpufreq: refactor cmdline "cpufreq=xxx"
From: Jan Beulich <jbeulich@suse.com>
To: Penny Zheng <Penny.Zheng@amd.com>
Cc: ray.huang@amd.com, xen-devel@lists.xenproject.org
References: <20250414074056.3696888-1-Penny.Zheng@amd.com>
 <20250414074056.3696888-5-Penny.Zheng@amd.com>
 <2f3702f3-a46b-4161-a890-7aad9bbbcac4@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: <2f3702f3-a46b-4161-a890-7aad9bbbcac4@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 29.04.2025 12:36, Jan Beulich wrote:
> On 14.04.2025 09:40, Penny Zheng wrote:
>> --- a/xen/drivers/cpufreq/cpufreq.c
>> +++ b/xen/drivers/cpufreq/cpufreq.c
>> @@ -71,6 +71,49 @@ unsigned int __initdata cpufreq_xen_cnt = 1;
>>  
>>  static int __init cpufreq_cmdline_parse(const char *s, const char *e);
>>  
>> +static bool __init cpufreq_opts_contain(enum cpufreq_xen_opt option)
>> +{
>> +    unsigned int count = cpufreq_xen_cnt;
>> +
>> +    while ( count )
>> +    {
>> +        if ( cpufreq_xen_opts[--count] == option )
>> +            return true;
>> +    }
>> +
>> +    return false;
>> +}
>> +
>> +static int __init handle_cpufreq_cmdline(enum cpufreq_xen_opt option)
>> +{
>> +    int ret = 0;
>> +
>> +    if ( cpufreq_opts_contain(option) )
>> +    {
>> +        const char *cpufreq_opts_str[] = { "CPUFREQ_xen", "CPUFREQ_hwp" };
> 
>         const char *const __initconstrel cpufreq_opts_str[] = { "CPUFREQ_xen", "CPUFREQ_hwp" };
> 
> (line wrapped suitably, of course) Or maybe even better
> 
>         const char __initconst cpufreq_opts_str[][12] = { "CPUFREQ_xen", "CPUFREQ_hwp" };
> 
> for the string literals to also end up in .init.rodata.

Actually, it didn't even occur to me that there might be a "static" missing
here, too. Plus I'm missing any arrangement for the array slots to remain in
sync with the corresponding enumerators. With that ...

> With all of the adjustments:
> Reviewed-by: Jan Beulich <jbeulich@suse.com>

I'm sorry, but I need to take this back. There are just too many issues.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 29 11:48:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 11:48:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.972107.1360531 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9jRS-0005Vj-4M; Tue, 29 Apr 2025 11:48:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 972107.1360531; Tue, 29 Apr 2025 11:48: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 1u9jRS-0005Vc-14; Tue, 29 Apr 2025 11:48:02 +0000
Received: by outflank-mailman (input) for mailman id 972107;
 Tue, 29 Apr 2025 11:48: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=qXnC=XP=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u9jRQ-0005Fs-OF
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 11:48:00 +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 ca278d35-24ef-11f0-9ffb-bf95429c2676;
 Tue, 29 Apr 2025 13:47:55 +0200 (CEST)
Received: by mail-ej1-x62c.google.com with SMTP id
 a640c23a62f3a-ac2963dc379so866408966b.2
 for <xen-devel@lists.xenproject.org>; Tue, 29 Apr 2025 04:47:55 -0700 (PDT)
Received: from [10.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-ace6e4f8835sm780031566b.67.2025.04.29.04.47.54
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 29 Apr 2025 04:47: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: ca278d35-24ef-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745927275; x=1746532075; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=x5IK1acPueM5diAUBx9pbIJZ6U+uTKNqCif5bhHu28s=;
        b=MmCNtlK1rTQkKM3/I0LJl7PBKc/46pK5lS+HFdpychTEESnNPPJ7C4tZmH165plLHe
         n+6AXWWkGziCN+sZLgQa8d29qMDSxSu8tW/37zeY/6IdDVWN6dt8iAaxQ0Yourn/wx5g
         OaBVQyuEQsK7WkyBcvr7tfZifyntyL1EzuabhI6lmkZO2bO7ZLzxjLgkI5Tiyx0yratE
         1g60J3LM34nnlm8fllujvWJyIUrPzRu+P7ho2XHs+OR5ubzgFc/YX4xWwu9bjOejhFPd
         y90vdD4QAnUcOeVL5ROrEvQa/iQBmo52M1aH13d6kGSS9gdjA392G3slfLFvlvpUPKZq
         yoWQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745927275; x=1746532075;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=x5IK1acPueM5diAUBx9pbIJZ6U+uTKNqCif5bhHu28s=;
        b=vQmqINBZJUyXKAqrASwYbBdz6uF7KlD9s6FtNmQK0iMN5O8qj4gtlT6uHNMLjFbFK9
         P+xSc8k2DL/C2vCpw6qyqx3ozHZxARd6xtb4f9L+fBsB2IkKwQiJ7itf9UVSABMSwIcv
         v5yKw9vGpMhz7UduRI9bVcQd6+uNk9dZ2i7R6L8H6PMVBY4bpikoADXfTMSh7eS8y9x1
         K3PxcL8qK5e8XCKdrGMkGJeNcmMVK6Vp7dTIqoj9W9BCHoU1vwv+szmN1Iqh09MGM68R
         jtvqp1PuCWafBwtO11IQYDr/q7vBtZioaqXXcfISAWED/LIcrfSssKWDfdaLmxfwfjMy
         h5CA==
X-Forwarded-Encrypted: i=1; AJvYcCUyvzJzPM5OStCv/A7gPBMSqGCg8dXHVkoeIH/rmqPAQ5o5Yd4w7TIvaKxBo0ptB2YVI+zb//oAdeM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwjZFr9jpCtu5sOn8yiRH2ydY5fdb30xxKRLpS0+luM9JSL6Oy/
	iTGjsjxYIWdApZaZrW21BX9+7Uy/vCAgTfhCFuUYxBC0B0PeuNu8Xt+LXECGPQ==
X-Gm-Gg: ASbGncvilwiCYCMvsFAkWVyJe3E43BktxdQSAHHcLBWp6u1wN3C+r5zXXreaF6TN5+i
	+S+jcXnv6eNMqlp4g9BAUozC+ZnhlEyayBNHrXub8F0CoxxbgAbxIpPa3O4JuAIODmfg3HaO8h9
	9RM/WeO+b+tVw610LubSEXZqb5ndKqi6SgymvTE7W2eAbuRBu7mPdVvusRbc6zDJcHI+iOrEg5e
	pOH1FUBjKDD7utYisHrB+RNdpK7bLpt/k93/+I1g0tRnZltj/cMpCCdVCqwrBJ6pPpZdxDMKPJt
	jKUJhb6sj+8U4lO5LPFS1pGyTG4r/eLu+w4W+dWLioEFylUS4OOecu8eZoP9+/gMxGRCMwytMi3
	X6z7etbYsMrDrldC4KZq+NQCGRXLOdazt6L0p
X-Google-Smtp-Source: AGHT+IENpQ+fNHEFuEvEeIazG+f8/yTD1nJebgQxzNGY6BsYfbuAMp4qnvhNaTDLvGFmBCmR6a8LFQ==
X-Received: by 2002:a17:907:6d21:b0:abf:7636:3cab with SMTP id a640c23a62f3a-ace8493b5damr1238084466b.29.1745927275287;
        Tue, 29 Apr 2025 04:47:55 -0700 (PDT)
Message-ID: <d508e514-6900-4c1d-a14d-bae68c4ba61e@suse.com>
Date: Tue, 29 Apr 2025 13:47:54 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 1/4] xen/io: provide helpers for multi size MMIO
 accesses
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20250429101252.50071-1-roger.pau@citrix.com>
 <20250429101252.50071-2-roger.pau@citrix.com>
 <08d550d4-2283-4177-b812-fd87c0fa511d@suse.com>
 <aBCt8lb-2X75-wqF@macbook.lan>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <aBCt8lb-2X75-wqF@macbook.lan>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 29.04.2025 12:46, Roger Pau Monné wrote:
> On Tue, Apr 29, 2025 at 12:23:05PM +0200, Jan Beulich wrote:
>> On 29.04.2025 12:12, Roger Pau Monne wrote:
>>> Several handlers have the same necessity of reading or writing from or to
>>> an MMIO region using 1, 2, 4 or 8 bytes accesses.  So far this has been
>>> open-coded in the function itself.  Instead provide a new set of handlers
>>> that encapsulate the accesses.
>>>
>>> Since the added helpers are not architecture specific, introduce a new
>>> generic io.h header.
>>>
>>> No functional change intended.
>>>
>>> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
>>
>> Reviewed-by: Jan Beulich <jbeulich@suse.com>
>> preferably with ...
>>
>>> @@ -5185,6 +5167,7 @@ int cf_check mmio_ro_emulated_write(
>>>      struct x86_emulate_ctxt *ctxt)
>>>  {
>>>      struct mmio_ro_emulate_ctxt *mmio_ro_ctxt = ctxt->data;
>>> +    unsigned long data = 0;
>>
>>
>> ... this moved ...
>>
>>> @@ -5195,9 +5178,12 @@ int cf_check mmio_ro_emulated_write(
>>>          return X86EMUL_UNHANDLEABLE;
>>>      }
>>>  
>>> -    if ( bytes <= 8 )
>>> +    if ( bytes <= sizeof(data) )
>>> +    {
>>> +        memcpy(&data, p_data, bytes);
>>>          subpage_mmio_write_emulate(mmio_ro_ctxt->mfn, PAGE_OFFSET(offset),
>>> -                                   p_data, bytes);
>>> +                                   data, bytes);
>>> +    }
>>
>> ... into this more narrow scope.
> 
> Hm, but if I move it I can no longer use sizeof(data) in the condition
> check, that's why data is defined in the outside.

Oh, I didn't pay attention to that. Yes - please keep as you have it.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 29 11:48:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 11:48:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.972109.1360541 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9jRb-0005nf-D1; Tue, 29 Apr 2025 11:48:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 972109.1360541; Tue, 29 Apr 2025 11:48: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 1u9jRb-0005nU-8g; Tue, 29 Apr 2025 11:48:11 +0000
Received: by outflank-mailman (input) for mailman id 972109;
 Tue, 29 Apr 2025 11:48: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=/zRN=XP=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1u9jRZ-0005Fs-Fn
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 11:48:09 +0000
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 (mail-am6eur05on2061e.outbound.protection.outlook.com
 [2a01:111:f403:2612::61e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id cf76c316-24ef-11f0-9ffb-bf95429c2676;
 Tue, 29 Apr 2025 13:48:04 +0200 (CEST)
Received: from AS2PR03MB10110.eurprd03.prod.outlook.com
 (2603:10a6:20b:57a::22) by AS2PR03MB9148.eurprd03.prod.outlook.com
 (2603:10a6:20b:5fd::18) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.33; Tue, 29 Apr
 2025 11:48:02 +0000
Received: from AS2PR03MB10110.eurprd03.prod.outlook.com
 ([fe80::52f0:1815:60c9:8873]) by AS2PR03MB10110.eurprd03.prod.outlook.com
 ([fe80::52f0:1815:60c9:8873%4]) with mapi id 15.20.8678.028; Tue, 29 Apr 2025
 11:48: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: cf76c316-24ef-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=MaBsdXn9ZsG61+tNXAmi7rwAG+xiMCb5Wl8tXjoPTZ/alBrRQIbCLHVVkpA1UvI+tLQsc1HS1PXsyEXrAZfm2aCTjD3XJEs4nJEGSDj/j131kmix7AntZ+ma05ANku7rFUB9WP4hwfgemRoqXPuxEbaRamWskk+v9aPp7uf+7O8wlfwZf9QDwWxRs7XlZlusJKm2lUlwWDiaRJ9gKWepjHu6pRGUT+ISnDsSe73Yx2dCH30p8eIvRO1++0uJ3N7Rsy6MLQzsiYilhYmfQumPuTexn7/sof+/ae93XTIStLTJrIFyhlSVj62X4hVI1/HXoEzOJwRbk+6Zbju0JjKF+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=XlxYyYip9nHA2X/fXv4hmMQLPbM9ZDnOdi/2QG00vsc=;
 b=Gx1PNNadkGJGsy6F2hGzqBSCWwNwFTVOIekwmqCAtDNmIgQFMQsWX4e36pDaFQVjVwFDzfeyu82hZ4MRfoyMcWlp+WeJFr8o8uBVLECkifR6JTi2+UPM1OtJUky4SUwSfDrr/lc9SefTjyccwJSpw6u++e48p6Qv7Q0x8BuJKodVzAlxhxiIkNR7CLtrk7Pddb610I63b5feV0sXnSjgGsmFLThvrlrzrgXIYETJj7UECnWSy5mY9A6DLeRpfAmEbigjzegcuwAe2YaTFr78t+KCf/GYTGZ1WWPqLo54lclQ0jMfX1q8gMMZgeXV/MVmLQHwr6eVNtbT7OOQowWSTg==
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=XlxYyYip9nHA2X/fXv4hmMQLPbM9ZDnOdi/2QG00vsc=;
 b=iTzc839oJzKid9R0qVVP5RzLg5MPkmls91Frl3nK92BNb+HnHamA2ykO6DY8f2khp/BSkpoqishp5Jbx0zS76KBBCUN9WzUMVOHdofMGqP0Rmx5SfSNhYoFkQFioq3BV+AR+0PwaQbZnjJkDH2yZhhjgDvUi2BgPXoaJInRZVTyrolvQmAw9bE0Gu1Dl3QBTgeStfzwzi5U/A5d38aU5g86u0ZyVHIF1cj3UgrcMbAJA2LaQvrEu8PmoGeb3zomlHRuHyssE57yKA6+DRpRKquDC/h1XHb6DkZFPL+BP/yfDAl8YxSIqQmZOfe30TFDlO5FKLrK/sM+ayFaGpKwxMA==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: Julien Grall <julien@xen.org>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
CC: Stewart Hildebrand <stewart.hildebrand@amd.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>, Anthony PERARD
	<anthony.perard@vates.tech>, Jan Beulich <jbeulich@suse.com>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>
Subject: Re: [PATCH v9 7/8] xen/arm: enable dom0 to use PCI devices with
 pci-passthrough=no
Thread-Topic: [PATCH v9 7/8] xen/arm: enable dom0 to use PCI devices with
 pci-passthrough=no
Thread-Index:
 AQHblOXdxbIbbkNtn0WSg/9tW2OJ47O5DGKAgAA8u4CAAAbVAIAAGfaAgAA/NwCAASYyAA==
Date: Tue, 29 Apr 2025 11:48:02 +0000
Message-ID: <b0f2e456-4fd1-4f95-935c-7f4fe154bf82@epam.com>
References: <cover.1741958647.git.mykyta_poturai@epam.com>
 <132afbca390edd6e9fd7b1ffacf6c5aff0d29aa7.1741958647.git.mykyta_poturai@epam.com>
 <7d376741-ff23-4618-83bd-415c8d8fa24e@xen.org>
 <ae2c8d37-e350-4125-921f-3d320c28d6cd@epam.com>
 <a1715315-f4c8-4062-89db-e2df7b22865b@xen.org>
 <c61acb06-4770-434d-8158-d7e0b4b32f04@epam.com>
 <ac7fe0d4-dc3b-4322-9df6-01adac02de4a@xen.org>
In-Reply-To: <ac7fe0d4-dc3b-4322-9df6-01adac02de4a@xen.org>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AS2PR03MB10110:EE_|AS2PR03MB9148:EE_
x-ms-office365-filtering-correlation-id: f2549836-4abf-4f98-130c-08dd8713b256
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|376014|366016|7416014|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?TXVrbGFFWXZUbWdIRVlSUXBhVjFjRzVvMXR3OVE5L25sSnRjT0pvdVhBRFd6?=
 =?utf-8?B?d21HUEtiOWhpcGVxdFBINlZ1aCtYQ05Vc0FwdHVVUUtsa3JVK1BXNDF6Mmc4?=
 =?utf-8?B?TzJ3RTJxYjhmUTlyRThxalRZUUgrZmExNDBQOTduNDRyRHdubG1HS0FVWmM3?=
 =?utf-8?B?aE02ZUhBeVJMQUlRckpXdnFYZW03N0hSek5ZRm5TY24vUGdpU3A2WGZIb2tR?=
 =?utf-8?B?MmpmSUI1ZTZVbTlxLzZYdWp5UnY2V1VGdm0wOGtWUGhVejJ3ekZONUZCMitC?=
 =?utf-8?B?Y2p2REgrSHJ6M3lCUEEyQkJMM01zRTdDdnRaRjI3SWlxbE83WDcvbSsybUwv?=
 =?utf-8?B?WllrdStWVnRnMXUxVk9XU0NSTVd2L2VNMHJQT1U2TktldVVoSkdRTUNpYTd3?=
 =?utf-8?B?am1NWHMzTURaZUl3TlljZm1pWWhLNTAvSDhVWnptdys2UlBQSC9KNDFoZy9m?=
 =?utf-8?B?cjRDK1RtQjE2WTZ4ZHFiVWo1Tnc2Y3RIZEVHQko2MUkwMzU1ejlSb0VJU1Ez?=
 =?utf-8?B?Z1dSaDdWcFFxRzhITlBwUlFycVVKTTFLd2xFQkc3QlpsOENPTWNtZUxnelhH?=
 =?utf-8?B?V0ZsTTNET2tZK1hrdURRWENXcmJFMUZWRStZODVnSDRPMFlORDlaRE4yNmsw?=
 =?utf-8?B?UThHT3RmT0FhV3VKaFp2MGJmNWlaUDNlY2ptUExCOW8wRlRqZmJMT1pKRGsx?=
 =?utf-8?B?c0RmSURzRWk3K3dqcG15cDB1M3NFL1FrOTFBaFJNaG5DTnZpTW11QWhZN0I0?=
 =?utf-8?B?ZkJ0NUlJQVM5ZEZKakpoYk8xNDdzWlRTajZtTGhSc0p2YUNPUlBsV0NSblRi?=
 =?utf-8?B?c0w4akZEWmVjMkczd2RLUGJRMGVLUU9WS0xneDZFUWttaGczM25SOXdLaCt1?=
 =?utf-8?B?N1QrYzlucEFIemZYM3dkcUo3Y0lDWnRqamxCMWxma1I5L2ZKWlhhREdxOFZU?=
 =?utf-8?B?ZnlUL1ZmN2FyMWVDcnBrZmt1b0toYmVLOUgrbnkxRld3dU56cmRIcEl4Lzdp?=
 =?utf-8?B?a2pRVTRLMzJuN29ua2JqOTQrUXhZMjZlYUQxZ1Z6M1NLR3pUeFFZQklBdk9S?=
 =?utf-8?B?eG9LVW5hYjArQnkwVmpUZ3ZSM3dRdUZUS0FZalYxMXRablNKSmdmRkwzV0Fn?=
 =?utf-8?B?ZlNpOCsrOGZNWGhCckhhVlZ6Q08wK1VmRHNDY1NJWTVSYzdGTGdTYkd5OWZO?=
 =?utf-8?B?WkhlZlF0bW0vc0tKRmg5SGJWc0l6YmlRWFNWZndKY2ZTNDhLaVlzVWVDM2tr?=
 =?utf-8?B?Q05ZUzVXSzNCZ2ZaTk11TlNYUU5rWVNZaUdsUEVQeUpSWkFHL1N1TjVRVGpt?=
 =?utf-8?B?UHpLVFM4T3BkcHNWQWQvbEZHRW1oRXc5ZzQ2MUhSSjIzUUFSR2xLRWswTFla?=
 =?utf-8?B?cHNjOWdLMVFRY2NiYUh2eS9teGtndDBNWVg4dG1EdEw0M1hNTHY0eDM4aG1Q?=
 =?utf-8?B?c2ppdHdoTGtTbkhMU25kbzcyZXlJVzNGQmxKa2h5ZHJNU2JjU1B3bUZ3ZytD?=
 =?utf-8?B?eTFuMXhhRGpZTjZUUVZSakNsYU50V3A2UDZiK0w5MDRKeEZxVjBJM0FQblpX?=
 =?utf-8?B?R1FrdE95eE01eTNjTDVIQno5MkVTMGtVam1hN0grZ3JmK2NVVDVvNFU4SjJz?=
 =?utf-8?B?UXYyMjRDUFlxUzA4cXpmQzkxTUl3dlJGMjFjM1YvcFZjSGRSK1cvMld6RDEz?=
 =?utf-8?B?ZXprYm5nRHY3YXpNVDd1ZmlJQlZCT1E5OFkwWUx6blBUVWlKbysrVE4vZS93?=
 =?utf-8?B?bzZ1Vy8zcDRFZDBBVExGNTd0YWVZVU5VSnNKMWt2cHgvSDJtVHRLdWZBdWxm?=
 =?utf-8?B?MTdESGpsTlRyaWtBVnRxOS8xaFFDaXNySDhhVi94ajQ3MU9PSENwKzNpbXVo?=
 =?utf-8?B?dXAwK2ErUGtwcmJCYVZPMkFiWXN4bWRySVdzOXJ1OWVEVFoxcGpWS01PYW4x?=
 =?utf-8?Q?Ximgl4/JTcOAajTc5Pj3GfaIMGqHYtYr?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB10110.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(7416014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?ZWZuN3k3cThlNzFrbXRVVVcwOFBBVUlBZkFCSEpMNHhBYm8yNjcybkVWZHZW?=
 =?utf-8?B?YnlhWTZTeUV2c1RSSFpvSWovNys4Q0xZMUl0UTVyYWZHcHhCTFJPU3Rnb01a?=
 =?utf-8?B?TzNWckhkS1M3bGQrL0JEZ20wTjQ2WFlXaWhPWmVFUElHQ292dU1ZREQ0amhT?=
 =?utf-8?B?WVdJME9FYUsxUndGZGhjaWRlWm1YNFBMTHlWVldpVyt2eldCamlncUpGTDky?=
 =?utf-8?B?djU4MzVkbDEvaWxPb2xnTVhoQUcxamFQQUxJazQ0cXpidlhXcjlQSjRGbVRj?=
 =?utf-8?B?UkhZVmZBYnd6ZFNaT3VwQkFxS2dicnNTS2RGK0xHbTFQY05ha0VUSG81a1BU?=
 =?utf-8?B?MXkxWjlEU2grK3psSC8xdFdqcW1JYlVKMDlMV1QxSjhnMU5JM01zK0VOQS9I?=
 =?utf-8?B?MncyZWlKZVRLTzB0dWZCd2pwTlFpc3o5dmg5UnhYUzAvUU9ZUDJRYnJjdWVh?=
 =?utf-8?B?TTc4aXozNVVtdEdCbHB5OFNNS003aVErMk92M3Vsb3p2M09oTSt5NFI0RkRC?=
 =?utf-8?B?aXFFQ09LREE5WW41dWMxLzlUTFJ3NU9IZUxGSVVZZkYwNm9TVitZNW9jejJj?=
 =?utf-8?B?RUhiWWpmR3ozWGxEeWpCUmFPTU8xWm1SWk16dnNTZTlPeWtyUmI3aXNKRnJa?=
 =?utf-8?B?V3pPeGJsK29EZC9aWnRiTWMvdjFjdVNsR2Y2aVNXL1IzOTk0b0NLLzRsb2dF?=
 =?utf-8?B?czVXUURrY3pXcUJCRnhWNmRLWWxObk1yOTFmUmdjbzJTUm56cWc2cTBXQTNs?=
 =?utf-8?B?aTBTVGRkMVl1YkpZNzNNWjdpSnFaYW10TmJqT1VpbU5aS1djd2NqKzBmNXJX?=
 =?utf-8?B?UUI1bUFNOFBMRE5DdGgvOWEvc25PUkhKMGJoejE4RGxpdHhoa2ViUHJmNU9m?=
 =?utf-8?B?OTZTNmU4YlNXMk80RGpmZHFBUTVmTzRGK0lNRyt4K0lCRTBqNWFndVF2QWNP?=
 =?utf-8?B?bllNZ3pZai9NVUVCbjZHMTVjbTVGeHdjdHlVNlBwdjgySFljWWlXUmVJSVRz?=
 =?utf-8?B?dUJzOURaLzRGOFFIZTVLSE5DM2Y2MGpTT1dNQ3dYY2I1MzJUenhDbnNTN0lq?=
 =?utf-8?B?WEhIa1VkTjFtMTd4c0hDY3pNOVg1eXp0a0RHQTJMTlVMa0o0Z3NaQTRMNW5o?=
 =?utf-8?B?MTE2ejVxOEFBbmR5QVZhSlBmNDduZUtVRzJNdmQ5dURrYktlRldHNTd1WGtD?=
 =?utf-8?B?cDNVSjB3elI3UlpiUkpJUGYvQ3hnejF0OHI4YTA2M25neW9icm1FRlkzVUtJ?=
 =?utf-8?B?VzA0d1pKbFJhT0VLNzgwYzZkU2VYREVPZjd0Wjd0T2tDMi9qZ3A4d1k2TldX?=
 =?utf-8?B?UmdrOXBlRmVvcGI0T3VhcEd6VlVRN2lvM05Ocm9oYWZhQzJMcEdsUVplOGhU?=
 =?utf-8?B?ZnBLblRrZjZMYm9wdnpiZ1IrakRPbzZyQW4wZkpPcG5MMGt2dVc5K2tha0Ro?=
 =?utf-8?B?Nnh5bDBFbVdTK0RodUVlZW45R09QQndMUEZWWWdQS1BSY3plVThScE1NWEJm?=
 =?utf-8?B?WExCSGhtR0ZPcGx6RHlRS2pRNmVzOEROVCtIREM1alh2TFoyQ25pTVlISDBJ?=
 =?utf-8?B?dDFDVEJMT2JtN29nbDRnaE9RYjVjNktjaEhLOHplaFpUV1BudndiYldzLy8y?=
 =?utf-8?B?ZTBmU1ZBM2NGQ1Budkp5YngzSGRNamdLUlNvUlYzM1FRL09HVHRpZXBXeWpW?=
 =?utf-8?B?V05CRDkyMlFycWJ5MXUxb2tLV3JHYVpsWE5MV2hIajJHSi9sbVAwN2x2UGRn?=
 =?utf-8?B?aXg4QUhXRnQvSHlqWUFpZWw5Z1BhcURRVHVrUnZ3d1k0eFhNSms5eHd4cXBJ?=
 =?utf-8?B?SnUvdm53TFozUjN3aUl1SHk0WVhpdzhwaG0rSlRId1k1RXFGMEZXZWV4RnI3?=
 =?utf-8?B?bDdYQnVYUmFXd3JxWlFrWkh3S1duTEVPTVpKSUR0a0lldWpMaVo5S1pBZm5F?=
 =?utf-8?B?V1BXSEI3eklDTXdsc09rL3dZeHk4cjlraTFEYzI1QnRVeUxtd2VpTTZiRVd1?=
 =?utf-8?B?d09EdXM0YnRYT3p1enFlMFh0ZWN3SExkcWJKWm0yNHd3RGtSNGlOMURqUGUv?=
 =?utf-8?B?R20zZU1CaXB2cmd2anlPc042eEVCZ1JqV2ZuTkNMZysyTUF6OEF3eWxObTFS?=
 =?utf-8?B?QzNRVTA4Z0o3SFd3UmdWSUF3THZjOFNOSjM5d2tOTUF4eHBsVVFEeFE1WDZO?=
 =?utf-8?B?T1E9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <9E8934ED3BBD994CBAD19C3E87DA5B26@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AS2PR03MB10110.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f2549836-4abf-4f98-130c-08dd8713b256
X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Apr 2025 11:48:02.2031
 (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: /eG2YNKPF1aHSeLajX7/Z+YxGJInAb8d4eliiaXN2ELE/Id6MjZAexP9ww+naWvcU5UhdGx6SnpYF8lbFKDtaA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR03MB9148

T24gMjguMDQuMjUgMjE6MTUsIEp1bGllbiBHcmFsbCB3cm90ZToNCj4gSGkgTXlreXRhLA0KPiAN
Cj4gT24gMjgvMDQvMjAyNSAxNToyOCwgTXlreXRhIFBvdHVyYWkgd3JvdGU6DQo+PiBPbiAyOC4w
NC4yNSAxNTo1NSwgSnVsaWVuIEdyYWxsIHdyb3RlOg0KPj4+IEhpLA0KPj4+DQo+Pj4gT24gMjgv
MDQvMjAyNSAxMzozMSwgTXlreXRhIFBvdHVyYWkgd3JvdGU6DQo+Pj4+IE9uIDI4LjA0LjI1IDEx
OjU0LCBKdWxpZW4gR3JhbGwgd3JvdGU6DQo+Pj4+PiBIaSBNeWt5dGEsDQo+Pj4+Pg0KPj4+Pj4g
T24gMTQvMDMvMjAyNSAxMzozNCwgTXlreXRhIFBvdHVyYWkgd3JvdGU6DQo+Pj4+Pj4gRnJvbTog
U3Rld2FydCBIaWxkZWJyYW5kIDxzdGV3YXJ0LmhpbGRlYnJhbmRAYW1kLmNvbT4NCj4+Pj4+Pg0K
Pj4+Pj4+IEVuYWJsZSB0aGUgdXNlIG9mIElPTU1VICsgUENJIGluIGRvbTAgd2l0aG91dCBoYXZp
bmcgdG8gc3BlY2lmeQ0KPj4+Pj4+ICJwY2ktcGFzc3Rocm91Z2g9eWVzIi4gV2UgcmVseSBvbiBk
b20wIHRvIGluaXRpYWxpemUgdGhlIFBDSSANCj4+Pj4+PiBjb250cm9sbGVyDQo+Pj4+Pj4gYW5k
IHBlcmZvcm0gYSBQSFlTREVWT1BfcGNpX2RldmljZV9hZGQgY2FsbCB0byBhZGQgZWFjaCBkZXZp
Y2UgdG8gDQo+Pj4+Pj4gU01NVS4NCj4+Pj4+DQo+Pj4+PiBJdCB3b3VsZCBiZSBnb29kIHRvIGV4
cGxhaW4gd2h5IFhlbiBjYW5ub3QgaW5pdGlhbGl6ZSB0aGUgUENJDQo+Pj4+PiBjb250cm9sbGVy
LiBBc2tpbmcsIGJlY2F1c2UgdGhlIHJlYXNvbiBpcyB0aGUgUENJIGNvbnRyb2xsZXIgaXMgdG9v
DQo+Pj4+PiBjb21wbGV4LCB0aGVuIHlvdSB3aWxsIGxpa2VseSBuZWVkIHRoZSBzYW1lIGFwcHJv
YWNoIGZvciBQQ0kNCj4+Pj4+IHBhc3N0aHJvdWdoLi4uDQo+Pj4+DQo+Pj4+IEkgdGhpbmsgdGhl
IG1haW4gcmVhc29uIGZvciB0aGlzIGlzIGNvbXBsZXhpdHkgYW5kIHRoZSBwb3NzaWJpbGl0eSBv
Zg0KPj4+PiBhZGRpdGlvbmFsIGRlcGVuZGVuY2llczogdGhlcmUgY291bGQgYmUgZXh0ZXJuYWwg
Y2xvY2tzIG9yIHJlc2V0IHBpbnMNCj4+Pj4gdGhhdCB0aGUgUENJIGhvc3QgZGVwZW5kcyBvbiBm
b3Igd29ya2luZyBjb3JyZWN0bHkuIEkgd2lsbCBhZGQgdGhpcyB0bw0KPj4+PiB0aGUgY29tbWl0
IG1lc3NhZ2UuIFJlZ2FyZGluZyBQQ0kgcGFzc3Rocm91Z2gsIGl0IGlzIGFscmVhZHkgdXNpbmcg
dGhlDQo+Pj4+IHNhbWUgYXBwcm9hY2ggKGF0IGxlYXN0IG9uIEFybSkuIFRoZXJlIGFyZSBwYXRj
aGVzIGZvciBlbmFibGluZyBYZW4gb24NCj4+Pj4gQXJtIHRvIHBlcmZvcm0gYnVzIGVudW1lcmF0
aW9uIGJ5IGl0c2VsZiBieSBMdWNhIEZhbmNlbGx1LCBidXQgSSANCj4+Pj4gaGF2ZW4ndA0KPj4+
PiB5ZXQgZ290IHRvIHRlc3QgdGhlbSBpbiBhIG1lYW5pbmdmdWwgd2F5Lg0KPj4+DQo+Pj4gQ2Fu
IHlvdSBwcm92aWRlIGEgbGluayB0byB0aGUgc2VyaWVzPyBJIHdvdWxkIGxpa2UgdG8gbWFrZSBz
dXJlIHdlIGhhdmUNCj4+PiBhIGNvaGVyZW50IGFwcHJvYWNoLiBJbiBwYXJ0aWN1bGFyLCBpdCBp
cyBub3QgY2xlYXIgdG8gbWUgaG93IERvbTAgYW5kDQo+Pj4gWGVuIHdpbGwgYmUgYWJsZSB0byBj
b29yZGluYXRlIHRoZSBhY2Nlc3MgdG8gdGhlIFBDSSBjb250cm9sbGVyLiBBcmUgd2UNCj4+PiBn
b2luZyB0byBoYXZlIGEgbWVkaWF0b3I/DQo+Pj4NCj4+DQo+PiBIZXJlIGlzIGEgbGluayB0byBt
eSBXSVAgYnJhbmNoDQo+PiBodHRwczovL2dpdGh1Yi5jb20vRGVlZG9uZS94ZW4vdHJlZS9wY2lf
cGFzc3Rocm91Z2hfd2lwDQo+PiBBbHRob3VnaCBpdCBpcyBzbGlnaHRseSBvdXRkYXRlZCBkdWUg
dG8gcmVjZW50IHJldmlldyBhY3Rpdml0eSwgSSB3aWxsDQo+PiB1cGRhdGVkIGl0IHNvb24gd2l0
aCBhbGwgb2YgdGhlIHJlY2VudCBjaGFuZ2VzLg0KPj4NCj4+IEx1Y2EncyBjb21taXRzIGJlZ2lu
IGZyb20gYzY4YTVjYmIxYTdkMTc5MDc1NTExNTljOTlhYjVjODdjZTBkZWRmOQ0KPj4NCj4+IEkg
d2Fzbid0IGFibGUgdG8gZmluZCB0aGVtIHNlbnQgdG8gYW55IG1haWxpbmcgbGlzdHMsIGJ1dCBJ
IHBsYW4gdG8gYWxzbw0KPj4gc2VuZCB0aGVtIGFmdGVyIHRoZSBiYXNlIGNhc2Ugd2l0aCBEb20w
IGVudW1lcmF0aW9uIHN0YWJpbGl6ZXMuDQo+IA0KPiBJIGRvbid0IHRoaW5rIHlvdSBjYW4gc3Rh
YmlsaXplIG9uZSB3aXRob3V0IHRoZSBvdGhlci4gSSBhbSB3b3JyeSB0aGUgDQo+IGludGVyZmFj
ZSBtYXkgbm90IHdvcmsgcHJvcGVybHkgZm9yIFBDSSBwYXNzdGhyb3VnaC4gU28gdW50aWwgdGhl
biwgSSANCj4gd291bGQgc2F5IHRoaXMgc2hvdWxkIGJlIG1hcmtlZCBhcyB1bnN1cHBvcnRlZCAo
bWF5YmUgcHJvdGVjdGVkIGJ5IA0KPiBDT05GSUdfVU5TVVBQT1JURUQpLg0KDQpJdCBpcyBjdXJy
ZW50bHkgbm90IHBvc3NpYmxlIHRvIGVuYWJsZSBIQVNfUENJIG9uIEFybSBhdCBhbGwuIEkgd2ls
bCBhZGQgDQp0aGUgVU5TVVBQT1JURUQgZ3VhcmQgYWxvbmcgd2l0aCB0aGUgZnV0dXJlIGNoYW5n
ZXMgdG8gS2NvbmZpZyB0aGF0IHdpbGwgDQptYWtlIGVuYWJsaW5nIEhBU19QQ0kgb24gQXJtIHBv
c3NpYmxlLg0KDQo+Pg0KPj4gVGhlcmUgaXMgbm8gbWVkaWF0b3IsIERvbTAgY29uZmlndXJlcyB0
aGUgaG9zdCBjb250cm9sbGVyLCBlbnVtZXJhdGVzDQo+PiBjaGlsZCBkZXZpY2VzLCBhbmQgdGhl
biBnaXZlcyBjb21wbGV0ZSBhY2Nlc3MgdG8gc29tZSBvZiB0aGVtIHRvIFhlbi4NCj4+IFhlbiBv
bmx5IGRvZXMgImxvZ2ljYWwiIG9wZXJhdGlvbnMgd2l0aCBjaGlsZCBkZXZpY2VzIGFuZCBkb2Vz
IG5vdA0KPj4gY2hhbmdlIGFueSBvZiB0aGUgaG9zdCBjb250cm9sbGVyIGJhc2Ugc2V0dGluZ3Mu
DQo+IA0KPiBJIGFtIG5vdCBzdXJlIEkgZnVsbHkgdW5kZXJzdGFuZGluZyB0aGlzLiBCb3RoIGRv
bTAgd2lsbCBuZWVkIHRvIGFjY2VzcyANCj4gdGhlIGNvbmZpZ3VyYXRpb24gc3BhY2UuIFNvIHlv
dSB3b3VsZCBuZWVkIHRvIGVuc3VyZSB0aGVyZSBpcyBvbmx5IG9uZSANCj4gYWNjZXNzaW5nIHRo
ZSBjb25maWd1cmF0aW9uIHNwYWNlIGF0IGEgZ2l2ZSB0aW1lLg0KPiANCg0KSWYgYSBjb250cm9s
bGVyIGRvZXNuJ3QgcmVxdWlyZSBzcGVjaWZpYyBjb25maWd1cmF0aW9uIGZvciBtYXBwaW5nIGNo
aWxkIA0KYnVzIHRoZW4gWGVuIHNob3VsZCBhY2Nlc3Mgb25seSBjaGlsZCdzIGNvbmZpZyBzcGFj
ZSBhbmQgaWYgRG9tMCBpZ25vcmVzIA0KdGhpcyBkZXZpY2UgdGhlcmUgd2lsbCBiZSBubyBjb25m
bGljdHMuIEZvciBtb3JlIGNvbXBsZXggY29udHJvbGxlcnMgDQpsaWtlIHRoZSBvbmVzIG9uIFIt
Q2FyIGJvYXJkcyBpdCBpcyBwb3NzaWJsZSB0byBpbXBsZW1lbnQgc2FmZXIgd2F5cyBvZiANCm1h
cHBpbmcgY29uZmlnIHNwYWNlIHZpYSBYZW4sIGV4YW1wbGUgcGF0Y2ggaGVyZVsxXSBhcyB0ZW1w
b3Jhcnkgc29sdXRpb24uDQoNCj4+IFRvIGVuc3VyZSB0aGF0IERvbTANCj4+IHdpbGwgbm90IG1l
c3Mgd2l0aCB0aGUgY2hpbGQgZGV2aWNlcywgdG9vbHMgYmluZCB0aGVtIHRvIHRoZSBzdHViDQo+
PiBkcml2ZXIuIFRoZW9yZXRpY2FsbHksIERvbTAgY2FuIGJpbmQgdG8gdGhvc2UgZGV2aWNlcyBh
Z2FpbiBhbmQgYnJlYWsNCj4+IHNvbWV0aGluZywgYnV0IGl0IGNhbiBhbHNvIGRvIGEgbG90IG9m
IG90aGVyIGJyZWFraW5nIHN0dWZmIHNvIEkgZG9uJ3QNCj4+IHRoaW5rIHRoZXJlIGlzIGEgZ29v
ZCByZWFzb24gdG8gaW52ZW50IHNvbWUgZm9ybXMgb2YgcHJvdGVjdGlvbiBmcm9tIGl0Lg0KPiAN
Cj4gV2Ugc2hvdWxkIG5vdCB0cnVzdCBkb20wIHRvIGRvIHRoZSByaWdodCB0aGluZy4gQnV0IHJl
YWRpbmcgLi4uDQo+IA0KPj4NCj4+IEFmdGVyIHNvbWUgdGltZSB3aXRoIHBjaS1zY2FuIGNoYW5n
ZXMgbWVyZ2VkIGl0IHNob3VsZCBiZWNvbWUgcG9zc2libGUNCj4+IHRvIG1ha2UgWGVuIGRvIHRo
ZSBlbnVtZXJhdGlvbiwgYW5kIG9ubHkgZ2l2ZSBEb20wIHRoZSB2aXJ0dWFsIFBDSSBidXMsDQo+
PiB3aGljaCB3b3VsZCBwcmV2ZW50IGl0IGZyb20gYWNjZXNzaW5nIG5vbi1vd25lZCBkZXZpY2Vz
Lg0KPiANCj4gLi4uIHRoaXMgaXQgc291bmRzIGxpa2UgdGhpcyB3b3VsZCBiZSB0ZW1wb3Jhcnku
IERvIHlvdSBoYXZlIHBhdGNoZXMgDQo+IGFscmVhZHkgb24gdGhlIG1haWxpbmcgbGlzdD8NCj4g
ID4gQ2hlZXJzLA0KPiANCg0KTm90IHlldCwgSSBhbSBwbGFubmluZyB0byBzdGFydCB3b3JraW5n
IG9uIHRoZW0gYWZ0ZXIgZGVhbGluZyB3aXRoIE1TSSANCnN1cHBvcnQgb24gQXJtLg0KDQpbMV06
IA0KaHR0cHM6Ly9naXRodWIuY29tL3hlbi10cm9vcHMvbWV0YS14dC1wcm9kLWRldmVsLXJjYXIt
Z2VuNC9ibG9iL21hc3Rlci9sYXllcnMvbWV0YS14dC1kb21kLWdlbjQvcmVjaXBlcy1rZXJuZWwv
bGludXgvbGludXgtcmVuZXNhcy8wMDA1LUhBQ0stcGNpZS1yZW5lc2FzLWVtdWxhdGUtcmVhZGlu
Zy1mcm9tLUVDQU0tdW5kZXItWGUucGF0Y2gNCi0tIA0KTXlreXRh


From xen-devel-bounces@lists.xenproject.org Tue Apr 29 11:52:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 11:52:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.972141.1360579 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9jVZ-0000M9-GW; Tue, 29 Apr 2025 11:52:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 972141.1360579; Tue, 29 Apr 2025 11:52: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 1u9jVZ-0000Jg-B7; Tue, 29 Apr 2025 11:52:17 +0000
Received: by outflank-mailman (input) for mailman id 972141;
 Tue, 29 Apr 2025 11:52: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=/zRN=XP=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1u9jVY-0008Cw-5j
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 11:52:16 +0000
Received: from DU2PR03CU002.outbound.protection.outlook.com
 (mail-northeuropeazlp170120003.outbound.protection.outlook.com
 [2a01:111:f403:c200::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 646d14fe-24f0-11f0-9ffb-bf95429c2676;
 Tue, 29 Apr 2025 13:52:14 +0200 (CEST)
Received: from AS2PR03MB10110.eurprd03.prod.outlook.com
 (2603:10a6:20b:57a::22) by DU0PR03MB8809.eurprd03.prod.outlook.com
 (2603:10a6:10:412::18) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8699.19; Tue, 29 Apr
 2025 11:52:09 +0000
Received: from AS2PR03MB10110.eurprd03.prod.outlook.com
 ([fe80::52f0:1815:60c9:8873]) by AS2PR03MB10110.eurprd03.prod.outlook.com
 ([fe80::52f0:1815:60c9:8873%4]) with mapi id 15.20.8678.028; Tue, 29 Apr 2025
 11:52: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: 646d14fe-24f0-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=iqwap8XhFjQgDuZjlrq7wfp7cOC4lPBphSaLvF+CqCcoiTIyVHIvUvVG5dyj8kww9Huj1Jz91vJBpcofh5wkXYNK3wrhO9hovEb70T/a+68tMO+LPxObcVMdsXm/oaHvWXLnl5DzJILszSLejLTHNtWxlQJGFpwVawwo3TotFG3lq58WxF0V7HUKtIhxcRbgv88KhNkkvUDQ0WbnBGV5D+1r0sbYQXxt2qBK4SqFLjAoMA5aXF5A6M40q88OlVXAM4JrWq+hDkhTwjZmuakbTCJ9c+l0454HM9jnHG4ilaWhIrMBRl7NiJ/jEGNWH+CqiDf/YR2Q3DvFFtXVetQ1rw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=kfSP0ijPoUJ0zOanbfEnGTkKZRccDFaPxR3SPywojbA=;
 b=aZB6ALHsolm0dGeetQbkkwbeD9/91ZBxfexfLgqGTMbP/Geh7mJvyBF5PChS2V/iRuf4ChgbpSsKQmtWD8Ynpt1mL5vgeEuRW8p8Iq66PMAg35+wm5dlUTaC4wANxPo7gkVjkoYlsjHiG3hwu6Cq5dor4AxsidLQmpfWyx4p6GiQh1Fq38ayDn9I4+LN1cimbGiF/Cw1Dxl4j1xgeO8aHOltLDJqq4blAi3cWM40JAYhWayvRwQIPGSrIGHIh2jjfEp8zQdwT5LYxCjT4WkOyso+fW445Nymn2qkBjCUHQoI5t9M9XClBv42BPAtLgXfenKoEv3Ixpr05vL2ap6IfQ==
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=kfSP0ijPoUJ0zOanbfEnGTkKZRccDFaPxR3SPywojbA=;
 b=vV0OpZwt0H9E09rs8AKgbGOC8iRUuxpCvuWxLahVhJ0EkaxHjE/VTkAv92vvmXApMP2v6cWxEHs+UxapAq23FqMNg16Hc86oxYCnLEqJM4lGrRJ8nzOXtKOWhIAiphH4QzbKWHCugX1JrzjgR+r6EEBe2MwEX0IhrguO9od1itfd0Onl0YjMJ2y92h4l5UFgMDdQrB+gOITH5VUfgxHyXW/rTP3gE3+Efwqx6eQG2eufo3wzW8eGdnNil7IxVR2D/OBQgB9FDmqm80CH9QoGccaOIMMDSJuasHLBhWzlFzPSxdMzs1Y0glo4i+J+vrUwMlg9XrSEB9urB50DZ7sFQw==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Stewart Hildebrand <stewart.hildebrand@amd.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH v10 2/7] iommu/arm: iommu_add_dt_pci_sideband_ids phantom
 handling
Thread-Topic: [PATCH v10 2/7] iommu/arm: iommu_add_dt_pci_sideband_ids phantom
 handling
Thread-Index: AQHbuP0jzg3DGv9AAEa6MkzlniNuUw==
Date: Tue, 29 Apr 2025 11:52:09 +0000
Message-ID:
 <d4f10994cdfc202689b2978434d0d50b85fbdb7f.1745918678.git.mykyta_poturai@epam.com>
References: <cover.1745918678.git.mykyta_poturai@epam.com>
In-Reply-To: <cover.1745918678.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: AS2PR03MB10110:EE_|DU0PR03MB8809:EE_
x-ms-office365-filtering-correlation-id: b34aea09-1a8f-4890-cfe5-08dd871445d4
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|376014|366016|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?A/oSPDQd28u1QpECkHAh1BU1dDePLfeI6gr37j30m0Nn7I/hG6CbRSEXAE?=
 =?iso-8859-1?Q?tm8cUN9aiGjlnbqnOHj+5P5JdBYazUg1VTmWPl2oHtYs+7kbEkNIr+gKaf?=
 =?iso-8859-1?Q?YHwrw1XdbpJ89jQxcSNgPrlJtCrxN6pI1hgoYvJMkOWCRePX/bKH7o4KsU?=
 =?iso-8859-1?Q?jfoXZQUlnVZy8Wnpqr+weRMfrpSTMpEcQRQytkAhs96bC3MOI1gkiOH/rA?=
 =?iso-8859-1?Q?zidwWvEXqCLgPdG/cymrzD8DOOYRtISnGh0gsmK58OHvRt9CQrMT73g0WD?=
 =?iso-8859-1?Q?ZG6p7uTwvtyp5w5jPiUQyxdQHZ4BgRRetm6TqVDKaFub8XEv8hMDQyUL+0?=
 =?iso-8859-1?Q?KZEeUoruHg+B2hMs2tVzDHgc/W9AHdIv2MBKBJ12lZqG5CDM/smLh5BPei?=
 =?iso-8859-1?Q?W7agkJW8WuXu9jUHqrMAFutEa6xb8vKh+JTA/jWqHOjzlDyT+r0Vziq7Fm?=
 =?iso-8859-1?Q?q6JA/pWrhnjku8FlfdPSiDNZgY8EMXiiHmotFx2Td995DxW7uffz3ShNGr?=
 =?iso-8859-1?Q?c4W6fOvgyJGjZau4xFxtsQTTZLpYov+CgXWFzfrfyL9AzHxQoPeDTJSBnA?=
 =?iso-8859-1?Q?sCCU2+5oqh+ds3E5oo97ado+g7sRs/qlhRCpCrkUTbOfRRN0ZrT/AsvSIh?=
 =?iso-8859-1?Q?iWt8qBPCPokNxAo5BoK7KRbSm1oud31yENnZZsJE2xQripbxLEC3Gc6SIN?=
 =?iso-8859-1?Q?vXaeIsqJdGcS9n8WjHkONYNiX+jd8Q1C+8IG5d+l2UPlw7PtL95GrrKXtV?=
 =?iso-8859-1?Q?HkZnP2o8f6IwRWbiBdPWeAxa6Lzad3r1MvVApzb85ZQO31qSNHVuY/f5BS?=
 =?iso-8859-1?Q?HfOfJq5L3c8OVrkwGUQteLEIGGh4KHH5QZsYosamtrHnAEbCiwW5MZjO4h?=
 =?iso-8859-1?Q?FQwnPomxwqZ/cIh2tDlO5OB8M0I6ODqHqNJbdzPx1yv0QhVe65G3Hk87nS?=
 =?iso-8859-1?Q?1Arzz4ReoSmu3dbF7FjrHW5e06L70NjEp1gpEqGPTxGfJlLWRQ0r+sGXUb?=
 =?iso-8859-1?Q?Dq+pB2wIsRiB7Mz09I+8waP6g54NW4IlQYeHiOgENAHe3IKYWYM6Z7N3im?=
 =?iso-8859-1?Q?HXPkAtxYi91OoC6chViY10AfOuRV/d+rUCCw9NPcmVe+nY6H3h7eiFk0fP?=
 =?iso-8859-1?Q?18jcIOzqNfWCEaNQBGTsQ+N1Gib/Ol24fpFBExO7Td1Cg1d3kktsi1joEj?=
 =?iso-8859-1?Q?1Kn2pI9e/g7cLZTOs5YkbAKLku1e+nKBVH1aNgM1NFnDWbea4z3hidcvEG?=
 =?iso-8859-1?Q?eFQpUZ/tVime5BGyAeMOuy3DLovaeMPMfRU9PHfxPJSu2SOWxYIcODWvAT?=
 =?iso-8859-1?Q?I4Lo25qHf575vRBZ75Dv3fyL6JuwJA6lKQRhjV/aet8VvUdg0tpfKZxZ9v?=
 =?iso-8859-1?Q?EiHkg6k8emkLlfoe/Agz3pZZ2+DmW06fZbIXE+3gpuuOzbvKnT4yA3Avof?=
 =?iso-8859-1?Q?0CuQ6Mf55wVyyyR1FQ0D3jWatj8OdNn6dJqLKIznk/9FBw5d042yK6LHLo?=
 =?iso-8859-1?Q?EyyRliowckTj8iGxcYqvYM2QPsAvGLrzvEqjLJ3D42eGbkviftKGw8Vo3Y?=
 =?iso-8859-1?Q?of2MNXs=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB10110.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?tq5sxX6OmrIizEhNVhX3e4xjG5/kUKyteF4TJCAK2pA9KVxjgnLqkVTVF1?=
 =?iso-8859-1?Q?lCzuRLkXPCYCDJ5rTHxkKU8TJCnM+kHfmA7VQPIkHdW4ZRcUlPno6b9SzS?=
 =?iso-8859-1?Q?SP9ScQ9Zys4KEQlEMhjzBaWM3g2sDUdDTCwZeKBriwN+0aup9x6N1Olv+B?=
 =?iso-8859-1?Q?+jn9aErb+L4kzt7VaaAimTaD2pqS0py3l6kkaSOgLaay0SVdni6K/W/Fa7?=
 =?iso-8859-1?Q?PFDjG+z9IUiFRxS3K1IhywmNHiLqxa5TBwddkvND1SoxBatpN0ZPzInmyv?=
 =?iso-8859-1?Q?Tg2TJniNuRsLbdiqQrIuZFQaTiEeobLySKMGCKPLhAcqtUPUU4PHI1UfU7?=
 =?iso-8859-1?Q?zMfotHWrFE6YeSSx3LvtqAnDdiWxJG4APuFw2XP9ENRx0m3DeUhPv4yQIj?=
 =?iso-8859-1?Q?GwImncaMHJw/AeH7yQcEOj/x6a+U5p4tROhJuErTzqyq6uIeyWzSTEkffq?=
 =?iso-8859-1?Q?TleQGXSGRyncncascEVAdFhGx/kU87U0PfoKvSlirZ+7O0ykfdrdPbLBtX?=
 =?iso-8859-1?Q?9Ac3eK0leQ09yqL26aSvksQqAtbHIDhXY0sq1Q14jRwTP9xhxidE26BVeQ?=
 =?iso-8859-1?Q?xdVFdPWZLMzJ9fK9WjxBAEYSK/ZdCpHubddHytRcGypwHoFTnhORPlqNmf?=
 =?iso-8859-1?Q?+GZn4fU0BadIUZ+rkmau9g33YiQit7qLsD7CwnD+MUYU3eWIUON3tm8OMJ?=
 =?iso-8859-1?Q?0sah+zw9NY333POpQB/KtSTr+a7gVhVXZde6Dy8rqsH4wr1jsj/EQxuV/w?=
 =?iso-8859-1?Q?ry1S/Abb6khke6DVI9xGH/iSnZpH/oMrnuvdw2AkckK8C5OdIyRcTapJY3?=
 =?iso-8859-1?Q?OUNpryJnCMmgEgptqZmITCchdL2cM30AVS4Iyda0NcR+l49r/mnXzlmu5d?=
 =?iso-8859-1?Q?0AfM/L06uLvjCFuQ3CDCUfBIV1t1BOnBDzcrFAbUvzD3KNaaEJsZkbUUlG?=
 =?iso-8859-1?Q?Pgt9Dj3hymBrtJIonD0kBkSlcpcVuHrII4gXQuzqqV7X7xKmeHshTw2zJJ?=
 =?iso-8859-1?Q?3iLnGh5G4xDFRHVlUu8ynrFjg4oMNwZQFAzTUtjsLPH2Kb0Uxk+rU9BrUG?=
 =?iso-8859-1?Q?7Qpc/6lkO7QGcRmEjWVU54JCH0x2D4wSZSla2rvnDu/yYYhWAoJNLKruNJ?=
 =?iso-8859-1?Q?t1xot+aaab077Ci038YocaefdQWHpOL4nVgju74NqQ2ic9Gg+4/KerECFb?=
 =?iso-8859-1?Q?FdOtoUAKxAE4abKm7FGm+jKpu0jNAtX2vlEsUZFJ8vObPEGROF7i8j1uK0?=
 =?iso-8859-1?Q?VaHmddDDwwUQAnvYcr4lbS5Xrp4F6cUvLlrKcrbhsSYysKWTuwee2ZVGYk?=
 =?iso-8859-1?Q?d0KGHFnQIyZgBww0/eK5x7zpZDu9WJUTf+IqTqKoXWZMGRKIeNTbq+KxCj?=
 =?iso-8859-1?Q?dYDXrI5wIYakgCutX0cTcDJWEMCVzTna8Wx8+1h5izy2Eu/GNKg8H+k9B/?=
 =?iso-8859-1?Q?rGL+gcFfVb02zrFW8z8XdvsLgVez0asGNNq/Rq695xx9K6ur3NnO7OB29V?=
 =?iso-8859-1?Q?XNsGTMh4CICVzjRgZGEvdbwdPEZADv38GK/K4v6GpWl1oZ4uUDmOGR6FMZ?=
 =?iso-8859-1?Q?tjkIidiHgDnnOUwfdTaBV/ZPVsMYDiYnKD1QTUL51+q1KPQsoUFDnluTk8?=
 =?iso-8859-1?Q?7zEpHuUfRwIl7KU2Plcv49Kx9Nnw/TPZjT5ZLPQundoIPVdEFunTOGdw?=
 =?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: AS2PR03MB10110.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b34aea09-1a8f-4890-cfe5-08dd871445d4
X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Apr 2025 11:52:09.4957
 (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: z9UJ9JfM90TEdUB4WakmdVQTK1sk+nUMkeraBaMUtXAUnY+y5OrFvlU1KlaanHsuUFJL3+HvVOWNeLbZbNJtZA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR03MB8809

From: Stewart Hildebrand <stewart.hildebrand@amd.com>

Handle phantom functions in iommu_add_dt_pci_sideband_ids(). Each phantom
function will have a unique requestor ID (RID)/BDF. On ARM, we need to
map/translate the RID/BDF to an AXI stream ID for each phantom function
according to the pci-iommu device tree mapping [1]. The RID/BDF -> AXI stre=
am ID
mapping in DT could allow phantom devices (i.e. devices with phantom functi=
ons)
to use different AXI stream IDs based on the (phantom) function.

[1] https://www.kernel.org/doc/Documentation/devicetree/bindings/pci/pci-io=
mmu.txt

Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
---
v9->v10:
* Add Stefano's RB

v8->v9:
* replace DT_NO_IOMMU with 1

v7->v8:
* no change

v6->v7:
* no change

v5->v6:
* no change

v4->v5:
* no change

v3->v4:
* s/iommu_dt_pci_map_id/dt_map_id/

v2->v3:
* new patch title (was: iommu/arm: iommu_add_dt_pci_device phantom handling=
)
* rework loop to reduce duplication
* s/iommu_fwspec_free(pci_to_dev(pdev))/iommu_fwspec_free(dev)/

v1->v2:
* new patch

---
TODO: investigate Jan's comment [2]
[2] https://lore.kernel.org/xen-devel/806a2978-19fb-4d31-ab6a-35ea7317c8de@=
suse.com/
---
 xen/drivers/passthrough/device_tree.c | 33 ++++++++++++++++-----------
 1 file changed, 20 insertions(+), 13 deletions(-)

diff --git a/xen/drivers/passthrough/device_tree.c b/xen/drivers/passthroug=
h/device_tree.c
index 37e1437b65..f5850a2607 100644
--- a/xen/drivers/passthrough/device_tree.c
+++ b/xen/drivers/passthrough/device_tree.c
@@ -169,6 +169,7 @@ int iommu_add_dt_pci_sideband_ids(struct pci_dev *pdev)
     struct device *dev =3D pci_to_dev(pdev);
     const struct dt_device_node *np;
     int rc;
+    unsigned int devfn =3D pdev->devfn;
=20
     if ( !iommu_enabled )
         return 1;
@@ -183,21 +184,27 @@ int iommu_add_dt_pci_sideband_ids(struct pci_dev *pde=
v)
     if ( !np )
         return -ENODEV;
=20
-    /*
-     * According to the Documentation/devicetree/bindings/pci/pci-iommu.tx=
t
-     * from Linux.
-     */
-    rc =3D dt_map_id(np, PCI_BDF(pdev->bus, pdev->devfn), "iommu-map",
-                   "iommu-map-mask", &iommu_spec.np, iommu_spec.args);
-    if ( rc )
-        return (rc =3D=3D -ENODEV) ? 1 : rc;
+    do {
+        /*
+         * According to the Documentation/devicetree/bindings/pci/pci-iomm=
u.txt
+         * from Linux.
+         */
+        rc =3D dt_map_id(np, PCI_BDF(pdev->bus, devfn), "iommu-map",
+                       "iommu-map-mask", &iommu_spec.np, iommu_spec.args);
+        if ( rc )
+            return (rc =3D=3D -ENODEV) ? 1 : rc;
=20
-    rc =3D iommu_dt_xlate(dev, &iommu_spec, ops);
-    if ( rc < 0 )
-    {
-        iommu_fwspec_free(dev);
-        return -EINVAL;
+        rc =3D iommu_dt_xlate(dev, &iommu_spec, ops);
+        if ( rc < 0 )
+        {
+            iommu_fwspec_free(dev);
+            return -EINVAL;
+        }
+
+        devfn +=3D pdev->phantom_stride;
     }
+    while ( (devfn !=3D pdev->devfn) &&
+            (PCI_SLOT(devfn) =3D=3D PCI_SLOT(pdev->devfn)) );
=20
     return rc;
 }
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Tue Apr 29 11:52:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 11:52:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.972142.1360590 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9jVa-0000TT-4g; Tue, 29 Apr 2025 11:52:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 972142.1360590; Tue, 29 Apr 2025 11:52: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 1u9jVZ-0000RL-QD; Tue, 29 Apr 2025 11:52:17 +0000
Received: by outflank-mailman (input) for mailman id 972142;
 Tue, 29 Apr 2025 11:52: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=/zRN=XP=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1u9jVY-0008D2-FQ
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 11:52:16 +0000
Received: from EUR02-DB5-obe.outbound.protection.outlook.com
 (mail-db5eur02on2060f.outbound.protection.outlook.com
 [2a01:111:f403:2608::60f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 64bc7b41-24f0-11f0-9eb4-5ba50f476ded;
 Tue, 29 Apr 2025 13:52:15 +0200 (CEST)
Received: from AS2PR03MB10110.eurprd03.prod.outlook.com
 (2603:10a6:20b:57a::22) by VI2PR03MB10907.eurprd03.prod.outlook.com
 (2603:10a6:800:270::15) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.31; Tue, 29 Apr
 2025 11:52:11 +0000
Received: from AS2PR03MB10110.eurprd03.prod.outlook.com
 ([fe80::52f0:1815:60c9:8873]) by AS2PR03MB10110.eurprd03.prod.outlook.com
 ([fe80::52f0:1815:60c9:8873%4]) with mapi id 15.20.8678.028; Tue, 29 Apr 2025
 11:52: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: 64bc7b41-24f0-11f0-9eb4-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=PD5uXbC+8LnLQbINB2f4GFmldUGUM65nluF+d656m/HHfTKvpRGGEdcylB7vI87CEQIC5l8sAOI93JilVgPWwPSdgnM2O/IdSyubDzaFZn5y4C0VlKVoz1J2lTDxHv/0ujbsl9eZuxutBbXHDcAdYE1MbYJpnUtX3Ot29VRk3o4L/5jZ8IMlS7xv72h5VIylNMac5xsGCzG84aSbu6kRIjm6Yr4WTuJxh7FD+PWtn9uCGYeU9VR9yenBHRV4Swqb8tURonNe5XWlBsPKpXE3lpWtAZv+Z+XuG3rthFiGyiDxFcb1cKH1BXfHrF45dW7SFiUieeKv6k92HlKMnilxXA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=IcCLV9RnODRe2WDtRiKZ4qVK9p8GiRJduvEBRCUTL2s=;
 b=FHi7d3KIwNhFvS8hMYlGbm7158tiGenvCbLiodp4X/jBOlOOkIdGEIEG2VJuaYD0AGs6VhIhShwepG3oFHfatlSN7Bxj6mAiOqt/UtFvXjbeYrGKklBOWMVWP4X9aK8/o8NdaV46GjTG6GToq/Mu3IZ2rcLu5zDeQQBFkIoAl/ITdIh0jyOcyjh95n/9RYSh4jXllpROp5PaF0Zj+6hsiMswHWYoli60kMEeD6b/iohd5kDGtbx65MT7JwBWHYLA1HPZlEUcWHxNRGANjToVahmyjwxDdkioSlXJUYTfnXPjfnNzDBwQv1j7Z26VXswXBtICvkdJ6Wq6mliVezWqlg==
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=IcCLV9RnODRe2WDtRiKZ4qVK9p8GiRJduvEBRCUTL2s=;
 b=DNvziR0avhYmSlopeVUIIHN14i+2JPSkzuHIUMgFC9Qv9o2F5B2vOixQfBDGWvsAAu3zgtglJQ5+G88WYLo5VboDXy99Ybttch+SRZZhHuawiYCJDVSMm2/JcrsS77W4H9+nZLPDsOGA9Hv+qhKsZ0tHQQA2e/GKi0ljn6Go4nRhVdwpiQfbGwO4cP/vqDyshY2u4XkCM4Yf1GQgMnJcZR/z+fP0qKLqx/4XYjKTTYT5hyGjxWEt0YU1R/Ql7V49rNfMj32QCaf79QYFgogH5Ig994Bn1KjGvnUOERVGwtPWbF54XpNBycsPzCgW3NvbHwkMVr47ztVarFIlBwrduA==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Stewart Hildebrand <stewart.hildebrand@amd.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, Jan
 Beulich <jbeulich@suse.com>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>, Mykyta Poturai <Mykyta_Poturai@epam.com>
Subject: [PATCH v10 6/7] xen/arm: enable dom0 to use PCI devices with
 pci-passthrough=no
Thread-Topic: [PATCH v10 6/7] xen/arm: enable dom0 to use PCI devices with
 pci-passthrough=no
Thread-Index: AQHbuP0k0QR8aqz5V029F3Jm2fq6qg==
Date: Tue, 29 Apr 2025 11:52:11 +0000
Message-ID:
 <ef583aaae0a311ac8fec8fe4f18e76e9d62432ca.1745918678.git.mykyta_poturai@epam.com>
References: <cover.1745918678.git.mykyta_poturai@epam.com>
In-Reply-To: <cover.1745918678.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: AS2PR03MB10110:EE_|VI2PR03MB10907:EE_
x-ms-office365-filtering-correlation-id: 86e439ca-6162-459a-87ac-08dd871446b9
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|7416014|376014|366016|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?CZVlF8uFIQyE2eamKD8iN116g0YTpHGBGLd8KydLyab8nPBTihqmI5yo2K?=
 =?iso-8859-1?Q?usWwo761mLZS7Q35Y+fWvwAY2f2T3guRDmBsHByL4WoMH1MHYSIBB8PDXf?=
 =?iso-8859-1?Q?1qBGSalskT0DyE+rT2VIbUBk1Mt9zkgfUOuHb5tEF3nuZLVhKRzT2f4HZj?=
 =?iso-8859-1?Q?aLdJK4mqjL0ehFYFyfviUcyLlrHSD5mKG5MozkUq5fyEl6iWC3OBgU63at?=
 =?iso-8859-1?Q?H9k6InEglwZyg3tBM1YBq47uLnecupPZs88csvqAa3XruAybNbQn1V4AYk?=
 =?iso-8859-1?Q?Rz2ynjml99vKFm7alrt4xOn8W9pGuPYjyEjK2TVB8tFDMtJmnF3RheXm1+?=
 =?iso-8859-1?Q?/7deQj5RLMv1ONN7YJPgkqb7iKew3PSZqhPKW8QJ37h40O7v9V7+RvZFp3?=
 =?iso-8859-1?Q?1Bkn/xlfR2JRiGznYsBJ0JX19oNeQyagzDkFmplPzx/0E3YKXDCHEKWLlR?=
 =?iso-8859-1?Q?IYvc2V4dwTmgnNaSlQV4A5OlgV7g69TYdNr13UrT7gT2YR3x8bGizhF7Fw?=
 =?iso-8859-1?Q?T21gEk040iFtc4GLKGWwoJ6XmMq/jCUjpn9dOOm1p1OQHETAXQfmm7q/Mo?=
 =?iso-8859-1?Q?wgmTd9ojtoVrF26+nKFZ8vfvCOdCnQ1ZdpnwWJDBfq0AGgEz5RsJKpM38K?=
 =?iso-8859-1?Q?WTkvGWotSV57y78kIgsmDxzTvXpp+LDwCXQs4vSrDAYDET/4BtrYbpuuFP?=
 =?iso-8859-1?Q?44k+0IWSMXDa8dhHksl1WryQnDTIR1LtXXuba2CtvlXwALrcSlZadBxmUe?=
 =?iso-8859-1?Q?wkbTcK7Iitbttzu25Zly5qIA32bYu9HRdJb52mt8uL7cuAhSHKGPipJryl?=
 =?iso-8859-1?Q?RK4cjIeuszaqFtwY1eOHk4SZyJqw9rQ8EkxUI4ulvivBG78KhYSoW7torN?=
 =?iso-8859-1?Q?mpbQkmS1JPonBZ3SU0t7Mk4jjiZAU4hT2Syu5HToUvOWiXvA9xSxvdaEAp?=
 =?iso-8859-1?Q?njdCfoJE5rz/X6wK/Ee2ioPnIbggEB6RipUhnTWjRawMbfd0PlR3mlFDw6?=
 =?iso-8859-1?Q?T4LXK7mnAMwlkhAaRiClF24E85F8jcH7Y7OhXrwPtrwVtAmJmBUoo1ouRc?=
 =?iso-8859-1?Q?Zg12/8A9pMDZiSVAfAsEBbHsAM7xMYE9RnzO8hUKKlpT9d03RIfSKVVPaG?=
 =?iso-8859-1?Q?f7UxlsGITQ9Nly4V4ofZs/UHFuN8UHQoocM/jbh6zJBIxmeSAhxcP79522?=
 =?iso-8859-1?Q?vO8ziMhPyhFAB/CLDjHIflbLApVPuefHeEpGbsMT5KoEaV8NAvDyJPOzOh?=
 =?iso-8859-1?Q?EWmNED/pK2vE2Ye35ndI6SkTaNaysCHFi8LyZYoPajkAaphuyMgwIgvTB9?=
 =?iso-8859-1?Q?hql1Lp/7RP1quBZQxhJezGgLoMH6qZfcP2c65g0uGXTUvFKSgjbE3rllDF?=
 =?iso-8859-1?Q?8O1G+8aD4WK/yQ7qTd9WzU+f1UFQp+Gwr61hBxcbQPjB1Z/QyMREWMbX3N?=
 =?iso-8859-1?Q?nVMkFfat20leLsLqNgFTQL0ypNrhwWxLULjcWfcwEEA17s18n0EUL45KQq?=
 =?iso-8859-1?Q?9Qq4HR4jIdkoQHvlz+Yo4tUI5g0+erjYKkcpLTJBI8tA=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB10110.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(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?6AouvNVKpYaxfirmxHtdRcKBXFBi/y/HudsNz0eJXhtuJr5Yb2QJ8/q4H5?=
 =?iso-8859-1?Q?7tto43R35LvOkCCwwKIWU5beg7FOLoC9hm5nKwtA+wAuNpbXkaM19HdcHn?=
 =?iso-8859-1?Q?IIJHM3QVVILNa4fYl8rjUeSv5DKeiCQLb3sduQ/FYqyWt2p3BZCFBp4WrX?=
 =?iso-8859-1?Q?4vi4hnWAxb7sIy4EZ3Xvr9UhdDYkwqtnimLWNrtKnHBL2thpK2rL4SuIG6?=
 =?iso-8859-1?Q?bHiesttSptM8JPe/rVA70ZvnCR/TFFJ3HlqWTufZeb7JTU5pZQmfTbS/VZ?=
 =?iso-8859-1?Q?SZwsbDZd9jv44KGixuMljC+9bjfhiBkA9rOx/DrxCfYBUhjg2i4wTRxsn2?=
 =?iso-8859-1?Q?AtvCCxhH7a8kVFrtnEDT4TODlTKJ8C0AvFagTlSPhhzmWYCWGoIie+91n2?=
 =?iso-8859-1?Q?JLZBJI4k9STb/uPOwunQ9vkGrnhpn6O5prA0ZiwyH6zr4ILTRU2ptTV54n?=
 =?iso-8859-1?Q?E2d0tnLcw8uqYVUot9mTrpOasUQ2XOCEsKrGkgkzSXO8dIkU/lC00pARS+?=
 =?iso-8859-1?Q?YWTAHzpIm/682WW5jhkyckMWWlxw3oXWLc4pX2LM3iOjAnT7xB/s6Mh1OT?=
 =?iso-8859-1?Q?5LWDgzhWp6dFkeNWPokkApij1Vvi8W5ytRgZMlsI+59XBC05AUiA7LeDTn?=
 =?iso-8859-1?Q?kUJshertmmV3HMGuQCXEJdquUkhKIVONKaieqjV8kfQ1Sr2SA8/DdvuBhT?=
 =?iso-8859-1?Q?fchRMeFzNU+NsQqy4vYn6L6wRp+0z9NlTkIS5mflXBPyKBRaBazhEbKCEH?=
 =?iso-8859-1?Q?KG8olmK3JQz4Q0LkOi+r9hcGig/wFfhLE6hFD+m1wbun+E731LQCVffR/e?=
 =?iso-8859-1?Q?NoyEfo93fs9D3hb1Y23VzyvWyD0f1EfsnZV71rMXY+vs2kVF7Mz1tuHi1z?=
 =?iso-8859-1?Q?ds3iMRjvwXohEttlLSzR7xprwNOLoJIg2k8h3+P4LBPycMcMKfqwx41bEt?=
 =?iso-8859-1?Q?+mjR1o0QaRYt5niyHCFuyFQe0MmUcjz2F+w5QepaEjVyJ/UjHbaeV6S0Zd?=
 =?iso-8859-1?Q?xNbmL3UT9tsXOG62cjS9Ill9xh8gXRKPzZWM/CtUVzjG4szkqbgXtZxbsl?=
 =?iso-8859-1?Q?3c/hZWqWkbvMDtRonxw8DZbDyqRfNgWw59geZ7pUwozfOG13ETqN1qWiCL?=
 =?iso-8859-1?Q?p2jYjTDUPqTt/VB47hElXql+f8a3N19tPyTx3924bcSpLsa8j1ubvWCge7?=
 =?iso-8859-1?Q?kYJPcHsTxp7ZmdWHIstx6+0vH2vXV3GS+cW0DXIffbEnaB9tqCMUw651Ve?=
 =?iso-8859-1?Q?HPIlQh9GTHPbprxuIzzv7o/FERW3wq7lSXRwjBDWdguWuOFRnEDxHqhlKT?=
 =?iso-8859-1?Q?ANvv7ZdFKYdBr40gdDbinPy8crqEkuK9V94HU6LxZ1plhjjvFv6oeHMnEi?=
 =?iso-8859-1?Q?FmuAx26kGVFKgCKKqRMMsM9ulgHeFdyBnzHpvgBSeyzn9BOsd3R/j0toPZ?=
 =?iso-8859-1?Q?vUIq+8DUjTOhsg916HlQ98jVwILrQ0cVOHVbFrPtAgGcgd8YIPm4zveiBg?=
 =?iso-8859-1?Q?WZLkvvwhXqr1e6kAyu8eG34us3p4SZX4gU/glwfXdQAPnQDvv+laZvOI2t?=
 =?iso-8859-1?Q?G9ta4ox1OagwVqBlM5jtZt4ZLUlyA+dZDyRTCwn9z0HIR3w0HLTKA8k7st?=
 =?iso-8859-1?Q?G3hBZX2jP/ao2WA7/Ux8FvIXC7szGXNSjzf4UrIfoqb5ESwn6XflI0Xw?=
 =?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: AS2PR03MB10110.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 86e439ca-6162-459a-87ac-08dd871446b9
X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Apr 2025 11:52:11.1341
 (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: ecMvwhWxpRPsDFo2beWOejlNTAuilud1mbD2OeMTVsu62RrmaTTS8kfuww9HEVJ9kqyguIuD2Joe/5cYIDiJGg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI2PR03MB10907

From: Stewart Hildebrand <stewart.hildebrand@amd.com>

Enable the use of IOMMU + PCI in dom0 without having to specify
"pci-passthrough=3Dyes". Due to possible platform specific dependencies
of the PCI host, we rely on dom0 to initialize it and perform
a PHYSDEVOP_pci_device_add call to add each device to SMMU.

Because pci_passthrough is not always enabled on all architectures, add
a new function arch_pci_device_physdevop that checks if we need to enable
a subset of the PCI subsystem related to managing IOMMU configuration
for PCI devices.

Enable pci_init() for initializing Xen's internal PCI subsystem, and
allow PHYSDEVOP_pci_device_add when pci-passthrough is disabled.

Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
---
hmm. Since
  dec9e02f3190 ("xen: avoid generation of stub <asm/pci.h> header")
Should we also move is_pci_passthrough_enabled() back to xen/arch/arm/inclu=
de/asm/pci.h ?
Not sure if PPC/RISC-V will plan on using this check.

v9->v10:
* move iommu_enabled check in a separate arch function
* add Stefano's RB

v8->v9:
* move iommu_enabled check inside is_pci_passthrough_enabled()

v7->v8:
* bring back x86 definition of is_pci_passthrough_enabled()

v6->v7:
* remove x86 definition of is_pci_passthrough_enabled()
* update comments
* make pci_physdev_op checks stricter

v5->v6:
* new patch - this effectively replaces
  ("Revert "xen/arm: Add cmdline boot option "pci-passthrough =3D <boolean>=
""")
---
 xen/arch/arm/include/asm/pci.h | 2 ++
 xen/arch/arm/pci/pci.c         | 8 +++++++-
 xen/arch/x86/include/asm/pci.h | 5 +++++
 xen/drivers/pci/physdev.c      | 4 ++--
 xen/include/xen/pci.h          | 5 +++++
 5 files changed, 21 insertions(+), 3 deletions(-)

diff --git a/xen/arch/arm/include/asm/pci.h b/xen/arch/arm/include/asm/pci.=
h
index 7f77226c9b..d6e05f16b0 100644
--- a/xen/arch/arm/include/asm/pci.h
+++ b/xen/arch/arm/include/asm/pci.h
@@ -128,6 +128,8 @@ int pci_host_bridge_mappings(struct domain *d);
=20
 bool pci_check_bar(const struct pci_dev *pdev, mfn_t start, mfn_t end);
=20
+bool arch_pci_device_physdevop(void);
+
 #else   /*!CONFIG_HAS_PCI*/
=20
 struct pci_dev;
diff --git a/xen/arch/arm/pci/pci.c b/xen/arch/arm/pci/pci.c
index 8d9692c92e..78e9ef28d5 100644
--- a/xen/arch/arm/pci/pci.c
+++ b/xen/arch/arm/pci/pci.c
@@ -16,6 +16,7 @@
 #include <xen/device_tree.h>
 #include <xen/errno.h>
 #include <xen/init.h>
+#include <xen/iommu.h>
 #include <xen/param.h>
 #include <xen/pci.h>
=20
@@ -75,6 +76,11 @@ static int __init acpi_pci_init(void)
 }
 #endif
=20
+bool arch_pci_device_physdevop(void)
+{
+    return iommu_enabled;
+}
+
 /* By default pci passthrough is disabled. */
 bool __read_mostly pci_passthrough_enabled;
 boolean_param("pci-passthrough", pci_passthrough_enabled);
@@ -85,7 +91,7 @@ static int __init pci_init(void)
      * Enable PCI passthrough when has been enabled explicitly
      * (pci-passthrough=3Don).
      */
-    if ( !pci_passthrough_enabled )
+    if ( !is_pci_passthrough_enabled() && !arch_pci_device_physdevop() )
         return 0;
=20
     if ( pci_add_segment(0) )
diff --git a/xen/arch/x86/include/asm/pci.h b/xen/arch/x86/include/asm/pci.=
h
index fd5480d67d..1d59437147 100644
--- a/xen/arch/x86/include/asm/pci.h
+++ b/xen/arch/x86/include/asm/pci.h
@@ -67,4 +67,9 @@ static inline bool pci_check_bar(const struct pci_dev *pd=
ev,
     return is_memory_hole(start, end);
 }
=20
+static always_inline bool arch_pci_device_physdevop(void)
+{
+    return false;
+}
+
 #endif /* __X86_PCI_H__ */
diff --git a/xen/drivers/pci/physdev.c b/xen/drivers/pci/physdev.c
index 0161a85e1e..21c8a3a90e 100644
--- a/xen/drivers/pci/physdev.c
+++ b/xen/drivers/pci/physdev.c
@@ -19,7 +19,7 @@ ret_t pci_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void=
) arg)
         struct pci_dev_info pdev_info;
         nodeid_t node =3D NUMA_NO_NODE;
=20
-        if ( !is_pci_passthrough_enabled() )
+        if ( !is_pci_passthrough_enabled() && !arch_pci_device_physdevop()=
)
             return -EOPNOTSUPP;
=20
         ret =3D -EFAULT;
@@ -57,7 +57,7 @@ ret_t pci_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void=
) arg)
     case PHYSDEVOP_pci_device_remove: {
         struct physdev_pci_device dev;
=20
-        if ( !is_pci_passthrough_enabled() )
+        if ( !is_pci_passthrough_enabled() && !arch_pci_device_physdevop()=
)
             return -EOPNOTSUPP;
=20
         ret =3D -EFAULT;
diff --git a/xen/include/xen/pci.h b/xen/include/xen/pci.h
index ef60196653..130c2a8c1a 100644
--- a/xen/include/xen/pci.h
+++ b/xen/include/xen/pci.h
@@ -79,6 +79,11 @@ static inline bool is_pci_passthrough_enabled(void)
     return false;
 }
=20
+static inline bool arch_pci_device_physdevop(void)
+{
+    return false;
+}
+
 #endif
=20
 struct pci_dev_info {
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Tue Apr 29 11:52:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 11:52:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.972139.1360566 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9jVY-0008Sw-Hw; Tue, 29 Apr 2025 11:52:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 972139.1360566; Tue, 29 Apr 2025 11:52: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 1u9jVY-0008S6-Ao; Tue, 29 Apr 2025 11:52:16 +0000
Received: by outflank-mailman (input) for mailman id 972139;
 Tue, 29 Apr 2025 11:52: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=/zRN=XP=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1u9jVW-0008D2-QE
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 11:52:14 +0000
Received: from EUR02-DB5-obe.outbound.protection.outlook.com
 (mail-db5eur02on2060f.outbound.protection.outlook.com
 [2a01:111:f403:2608::60f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 63c76802-24f0-11f0-9eb4-5ba50f476ded;
 Tue, 29 Apr 2025 13:52:13 +0200 (CEST)
Received: from AS2PR03MB10110.eurprd03.prod.outlook.com
 (2603:10a6:20b:57a::22) by VI2PR03MB10907.eurprd03.prod.outlook.com
 (2603:10a6:800:270::15) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.31; Tue, 29 Apr
 2025 11:52:10 +0000
Received: from AS2PR03MB10110.eurprd03.prod.outlook.com
 ([fe80::52f0:1815:60c9:8873]) by AS2PR03MB10110.eurprd03.prod.outlook.com
 ([fe80::52f0:1815:60c9:8873%4]) with mapi id 15.20.8678.028; Tue, 29 Apr 2025
 11:52: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: 63c76802-24f0-11f0-9eb4-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=k+4jxDNnlgUmHkwyA+rsXko6Pu+qgrSu8lijtGpGuStuil1VQHgI5RmYPcIgQi0v6k5uZ4mV2rGFiUEDQ/EJNK1lCYepLgkTwz45m9fsAlN6zVlPV/8SfTUNeaHJb/h/LQUDc8wmuCzI4uCMyhxZAFGal2/Hlr/SMNn3jpvE03urAmhc/ctqfa9vqjVFmfrsJbZCsKGBZKYXW2rFD8u99+kdyG0+YT10wmotXmwNdtkpJ/61rqcA/S3FPlHQCRRhXo2BkMUDbmXZenr1gYqY/WkjisIxxryWEjhowzYMmtVW3OqLlEn28sGUXSC7iyuFAUoIgMvZSPSwiSI+v8ij7w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=6O5dJjmsCdPEIdQTN5iHCPldfvnxP7ufNvJm0uKmLwk=;
 b=BDC8lBKO6mjHi7ZJDAefK2CdrSTPUcELFxK3UIa8SUbSLpsLxZhd2W+dsDGYDPfXi/DE24OWcVa7pzDl6n6jVufDhNTB6IWcVYijNa0gl4jBBjVuqEPZoUqSNDAOYmjIVIrgwwFYr5gITqg9HcgpfLkmvMfrLhFChYlAD/bL4IZ1uMmuFRnqo5SLGtRXZqJa642czcZ8xNT9LuALSmCRVcHEAqvd/CphJMeguPADACOAYwSaqDl+Mb2EUcMgTHyM60YJM81wbHI98PpJVA0mRD8JCZRNQBE8AokXcY3VUnsBB7Hrhl66vWD/NS+/6AyVR3DYvCwQPeirOZT6sQlplQ==
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=6O5dJjmsCdPEIdQTN5iHCPldfvnxP7ufNvJm0uKmLwk=;
 b=H2wowjOotr6iGgdXysWsAvDbjeYI9xrWazLAYtlD1CGTTHfViAdFx0zKnn8QcakFI/XlRDGP2r3X5h7EUrV5QaobSvwyIRI2omXqlRe7pFmHCxXxqP/TS9ZzrBE4jDb7S4j8SFW8gqc68PHVyo2cwJdUMpQ0JrCCXtCrRT0iS0DIDnQtws8HLKrua0og898l7MdIPDRuBHGJ6IaoKSZVo8kV+8QmcxK7NhFCkwMJr0tvpV06n2sqbZET4FpsXX1Qxzd1UETCncd8WgrhJl1PSQJQyY53HQ5ioJoV2xgk81Yha8kufzB0v7S55Jn3jS31jbleQ5zutmaioE1/4T0X7A==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Rahul Singh <rahul.singh@arm.com>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Stewart Hildebrand
	<stewart.hildebrand@amd.com>, Mykyta Poturai <Mykyta_Poturai@epam.com>
Subject: [PATCH v10 4/7] xen/arm: smmuv3: Add PCI devices support for SMMUv3
Thread-Topic: [PATCH v10 4/7] xen/arm: smmuv3: Add PCI devices support for
 SMMUv3
Thread-Index: AQHbuP0jUlr4M+QGW0mRuMiNDm9maQ==
Date: Tue, 29 Apr 2025 11:52:10 +0000
Message-ID:
 <993c2ffc7ab57bb883eb2066b7d55ebe07adc280.1745918678.git.mykyta_poturai@epam.com>
References: <cover.1745918678.git.mykyta_poturai@epam.com>
In-Reply-To: <cover.1745918678.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: AS2PR03MB10110:EE_|VI2PR03MB10907:EE_
x-ms-office365-filtering-correlation-id: 9c9cdac7-ec6d-4edf-1db2-08dd8714464c
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|376014|366016|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?2Mh2ug4qR4Cmaxtc1xfE9kyTXWH2AYf/vRLjxRfaon+VAPFrRBFWqaT9+u?=
 =?iso-8859-1?Q?2/exBgAXmuIwdxwuJL5s++Yi1zZIdJ071xSMo9zPBV5YdK2S6U3wctggvr?=
 =?iso-8859-1?Q?xcXkur40U63dLsor5VWOH81KNL9oxTt0tMaxJUn1I7oEkyjh0J/PDGVSXX?=
 =?iso-8859-1?Q?ox0YzxgVbGP+PEhECXxjnoVTrh8ZOCJsjxlnkEWJOxLz6PywF+lcWe3XRI?=
 =?iso-8859-1?Q?THjvEVnJ6sCy475Ms5pvpUNo0Q4VOGQCJSa1DAoSeG5IwO0XtKNvssF2MP?=
 =?iso-8859-1?Q?f589L9v9+Gw5WNi6AvwvM7ky56w5tTq52ZqOf7y8XSCNfcMDxraD+ILEiV?=
 =?iso-8859-1?Q?oBTbEhIUXzPwMd5NEapLhRrTaoH5e1AIUY5tMmwcigzg/Uiqp75GtT768c?=
 =?iso-8859-1?Q?nMMuzsH0/FxLGHi/spMUMinL88qAl3y0df9Zcvq10Y1skrinn8ByfMHdGu?=
 =?iso-8859-1?Q?zlLrdGBa3QG26T/UC4qtqu+zN3jDO5uG1q2NQrgphSHemaYQ3q9sS4EcRD?=
 =?iso-8859-1?Q?0IEuDEmpvowo4isaEkU9PZ+sinzG0+FGbJSRg2IzWZTwnbOdRkfQLwqkxe?=
 =?iso-8859-1?Q?fH5e/EqLAhFwlj7PO833MEMIfR6MkcSizlvQVpT+cRiX1PPvkIYZzT5mMN?=
 =?iso-8859-1?Q?BK4H6MiM5PpEivUECcv4l7m+/Lbxthz1nAObhti99LLCP4NDur+8sAiddE?=
 =?iso-8859-1?Q?Xwq9W2GqyBJ6gi1W41DOPFoeP63njdPA57f+AJh2Btcbrv+srlGV1mXZ5K?=
 =?iso-8859-1?Q?gLmR+3z/NsyoownDpLYwQkHMq8B835SC0Foq2fyJBExCTlnmN+MPy1G78Q?=
 =?iso-8859-1?Q?5GgcQRKvItLvmckeug5pKQkQOptksvvI9BLyV3tRT8k29cuTCgZw1ou4Li?=
 =?iso-8859-1?Q?zbxXUh47WhcaC1XO8ICEOqmIWWnZpJ1VP16vEmESmL0woS7q6zxSVfDxLO?=
 =?iso-8859-1?Q?AZ8+qC5ibVANgdfmx1NVYtnptcY5Zn/RhmTiZtijI9T9Si5USIFpzRb6uA?=
 =?iso-8859-1?Q?a7IidI4cOyFud5uxAr95np99rG0AGtKivZWVMWLLMTR52aeSLszEWdb8rv?=
 =?iso-8859-1?Q?Jd9scvL3wUeUSxnN2lDKcC+8c7f2NGdkvU/Wo9SU6qf2efQ/IwBeSjNPlv?=
 =?iso-8859-1?Q?LJfyRBFU1/TCkRDEcKL79kUswygfihXlh+DoihPwlE3e4U5HQ43p1b8xK5?=
 =?iso-8859-1?Q?m7aKRuAAdjtgbKtbxSHaVp3nC/uNu7Z+LNlljmbii/PJrIKo2+OHhTZrfY?=
 =?iso-8859-1?Q?XmEp5Pw5/+D4WJ0IF5KYpvix16bGv2y4zBOfpliXXl55fmfR7kp6qBEFKl?=
 =?iso-8859-1?Q?5g8zgNjt9ckbYshXfxpnH9fjBY9s1c+DnLT/eGL/uTtnybn2YHfvSNjV6Q?=
 =?iso-8859-1?Q?uEV59Yioy2iZ3m3VAfgUXARzi29mAxOf+dtw9tuQIpxdJ1audwwTe68cjs?=
 =?iso-8859-1?Q?UuJyASxcJCv7ywb3ztP+qC/hBVj3BGT908dPjFelOKzQ6DPMSwnzT9cvNY?=
 =?iso-8859-1?Q?LNeZMGnuFSpz2wOH5mRgBXHxXIlx6tuTgerd/JRbgKxa+qj9J35Ibpj/WD?=
 =?iso-8859-1?Q?YbKxGIY=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB10110.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?fMk5lcRAFJIbw+DC1WuMmplw4SYX4N6Go44KcKFn9ZtVqDwSm7nbvgJO/Y?=
 =?iso-8859-1?Q?yKYTaDlPCpBSgy8kNp/hKyXOTyvzRVmg9S53zWZRq6tGyhjgR1j6z09WTV?=
 =?iso-8859-1?Q?BYFlbflsbaiJw4M0ZVeu7FrVi/E6Vro1pGkYZz9w2IIqNAXGg0nPftMN5m?=
 =?iso-8859-1?Q?Kuo8RiKW9ZKPNCmJZ+e+AlEEfnp67AsLa1aEq7JM1n1V1Wz8g0KCMDNrOi?=
 =?iso-8859-1?Q?3+mY9lFQlOPmq0eWLIDRn6GasOjo0sVjaOCJUqcwtasFC0S9aQM3J+EJb+?=
 =?iso-8859-1?Q?lUtDBOxleJEj/HicLCgrk5NBoDlsLx2P640zr8yG5BhMg/kHRQy5aTVpe7?=
 =?iso-8859-1?Q?R6p+hMKL8E2hzIIbOdc+dn/cmySPwfmYI3YPzvPQL26Oyh8vKVWBviBw42?=
 =?iso-8859-1?Q?1LrbjcZeEcN/q0UuxTBm6vzmmCbx79iy5QGQcNAaVSxG5D+ORO9RQBJJ2F?=
 =?iso-8859-1?Q?XAiGat19sf+mc/y5OHygk8kKOZ7DDexaWdFSqIqpBYxYCnnNN+XHuF5ePp?=
 =?iso-8859-1?Q?hlLCgg67dPuM+U9K3MSleHNj1Wa1IkYGWu9S3K7/sIyP2uPEUch/3ZpJl/?=
 =?iso-8859-1?Q?lkb9ZC4aESMiQTTPqM97vTtH3TP1y/nbV13qYIyb0M7AamAJA5eVVcwnKj?=
 =?iso-8859-1?Q?BUH9S+6RDqSSWrpu2PkJbpcqlbdnQFi33Ve3KazMuzs8/aAGcLxmBtksui?=
 =?iso-8859-1?Q?KdVeK5HG1mqslbIgJRFBIFDe7NkcWMDl+b2gBEdPpGwlbFOGtofeGg4K4L?=
 =?iso-8859-1?Q?muN0EAYrCC5Rrh1F+hz5zi7pBQ1os6aVyzhve+dKPp/fUxoqC33kI2K3iI?=
 =?iso-8859-1?Q?5OoIplbg96hDIe3xyMu6lOuof8msOlJOKPn0itSlBQo+aIoSJTkb+dxjjV?=
 =?iso-8859-1?Q?PbDcdsbVdJbhwMdAG5Ul0S9T41FFiSLgRvzqWCzRb9HldJoOS8mtbPjRVk?=
 =?iso-8859-1?Q?N2AES4VI+0rLLTK61bqXq2UUFEQ29KG2XOzq+2Fh7VUKCOCggQcCoZQunm?=
 =?iso-8859-1?Q?5bxRsBusx4zTkSaJKJX6aE6JoT06wjJi3PJsxXETvT7hyP/hTSMd9wimiB?=
 =?iso-8859-1?Q?nYlx1/5i9lmc2VuI09O/x//MKD4GbSJF5GvpX+ZARRwHB4u91s7Rjd+ha4?=
 =?iso-8859-1?Q?6tKerrpUMsAOsQrp3rRut2NDi685vzner1lp4MBJtlY7f0iuGozxU5WvOs?=
 =?iso-8859-1?Q?YC4Y0bY986n2LSG5gLw2roe7ZlZN2LCqhRbMrcCu4r0+pQYROmYcMzfQSy?=
 =?iso-8859-1?Q?KRbta/l/oUmbfWbShkQHufWf9EInKtv9o1/z12LKUuMM4Ao+q9IFk4K4uh?=
 =?iso-8859-1?Q?WQoFWhekDiIWK9wx4N3ZAchZNf7H+/RbA7y1hxBzL/liD+WuFivEkwIFbB?=
 =?iso-8859-1?Q?wTuKoa52cLTBVrHSQEIzGubCb7Pr9lKoJSizlBMCGP5+odhbT1/DnEmjCe?=
 =?iso-8859-1?Q?1g9LL1+h2C0EuferCGb/vyaZ7YpC1aAlrQl7VtpeCydPrd00mvxZuKkqvt?=
 =?iso-8859-1?Q?BKSHKeG34RF3mqt4Wcd0LqfM45i8xTvtaQKyN2Z/0dIFiMveOVd3sJgMKy?=
 =?iso-8859-1?Q?ryxwNDBOmtaolarGEdtKhgE1eRVEMOs+FgW0wqY7LhMXMskQo6qBEtXU59?=
 =?iso-8859-1?Q?9AHZl98lWCX/cRKvl/PRb1pylNai5KRvfFTkj+wf3D+RDpY2oQhgoD1w?=
 =?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: AS2PR03MB10110.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9c9cdac7-ec6d-4edf-1db2-08dd8714464c
X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Apr 2025 11:52:10.4529
 (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: is8SPiehvsZJuudQisc+Ysq3vfPAqUOCOdc+89WE9Aj1SyUm4rlEzkEWCPUVgHzmHhR2yHnQHoGif30H5MjO6A==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI2PR03MB10907

From: Rahul Singh <rahul.singh@arm.com>

Implement support for PCI devices in the SMMU driver. Trigger iommu-map
parsing when new PCI device is added. Add checks to assign/deassign
functions to ensure PCI devices are handled correctly. Implement basic
quarantining.

All pci devices are automatically assigned to hardware domain if it exists
to ensure it can probe them.

TODO:
Implement scratch page quarantining support.

Signed-off-by: Rahul Singh <rahul.singh@arm.com>
Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
---
v9->v10:
* return if iommu_add_pci_sidband_ids fails

v8->v9:
* no change

v7->v8:
* no change

v6->v7:
* address TODO: use d->pci_lock in arm_smmu_assign_dev()
* remove !is_hardware_domain and pdev->domain =3D=3D d checks in assign to
  support future dom0less use case when dom0 is using vPCI
* check if pdev->domain exists before assigning to it
* don't print ""
* change assign logic to remove reassign reimplementation
* explain pdev->devfn check
* make reassign check stricter and update comment

v5->v6:
* check for hardware_domain =3D=3D NULL (dom0less test case)
* locking: assign pdev->domain before list_add()

v4->v5:
* deassign from hwdom
* add TODO regarding locking
* fixup after dropping ("xen/arm: Move is_protected flag to struct device")

v3->v4:
* no change

v2->v3:
* rebase
* invoke iommu_add_pci_sideband_ids() from add_device hook

v1->v2:
* ignore add_device/assign_device/reassign_device calls for phantom functio=
ns
  (i.e. devfn !=3D pdev->devfn)

downstream->v1:
* rebase
* move 2 replacements of s/dt_device_set_protected(dev_to_dt(dev))/device_s=
et_protected(dev)/
  from this commit to ("xen/arm: Move is_protected flag to struct device")
  so as to not break ability to bisect
* adjust patch title (remove stray space)
* arm_smmu_(de)assign_dev: return error instead of crashing system
* remove arm_smmu_remove_device() stub
* update condition in arm_smmu_reassign_dev
* style fixup

(cherry picked from commit 7ed6c3ab250d899fe6e893a514278e406a2893e8 from
 the downstream branch poc/pci-passthrough from
 https://gitlab.com/xen-project/people/bmarquis/xen-arm-poc.git)
---
 xen/drivers/passthrough/arm/smmu-v3.c | 119 +++++++++++++++++++++++---
 1 file changed, 108 insertions(+), 11 deletions(-)

diff --git a/xen/drivers/passthrough/arm/smmu-v3.c b/xen/drivers/passthroug=
h/arm/smmu-v3.c
index df16235057..a3bbfda993 100644
--- a/xen/drivers/passthrough/arm/smmu-v3.c
+++ b/xen/drivers/passthrough/arm/smmu-v3.c
@@ -1469,14 +1469,37 @@ static bool arm_smmu_sid_in_range(struct arm_smmu_d=
evice *smmu, u32 sid)
 }
 /* Forward declaration */
 static struct arm_smmu_device *arm_smmu_get_by_dev(const struct device *de=
v);
+static int arm_smmu_assign_dev(struct domain *d, u8 devfn, struct device *=
dev,
+			       u32 flag);
+static int arm_smmu_deassign_dev(struct domain *d, uint8_t devfn,
+				 struct device *dev);
=20
 static int arm_smmu_add_device(u8 devfn, struct device *dev)
 {
 	int i, ret;
 	struct arm_smmu_device *smmu;
 	struct arm_smmu_master *master;
-	struct iommu_fwspec *fwspec =3D dev_iommu_fwspec_get(dev);
+	struct iommu_fwspec *fwspec;
+
+#ifdef CONFIG_HAS_PCI
+	if ( dev_is_pci(dev) )
+	{
+		struct pci_dev *pdev =3D dev_to_pci(dev);
+		int ret;
+			=09
+		/* Ignore calls for phantom functions */
+		if ( devfn !=3D pdev->devfn )
+			return 0;
+
+		ret =3D iommu_add_pci_sideband_ids(pdev);
+		if ( ret < 0 ) {
+			iommu_fwspec_free(dev);
+			return ret;
+		}
+	}
+#endif
=20
+	fwspec =3D dev_iommu_fwspec_get(dev);
 	if (!fwspec)
 		return -ENODEV;
=20
@@ -1521,17 +1544,38 @@ static int arm_smmu_add_device(u8 devfn, struct dev=
ice *dev)
 	 */
 	arm_smmu_enable_pasid(master);
=20
-	if (dt_device_is_protected(dev_to_dt(dev))) {
-		dev_err(dev, "Already added to SMMUv3\n");
-		return -EEXIST;
-	}
+	if ( !dev_is_pci(dev) )
+	{
+		if (dt_device_is_protected(dev_to_dt(dev))) {
+			dev_err(dev, "Already added to SMMUv3\n");
+			return -EEXIST;
+		}
=20
-	/* Let Xen know that the master device is protected by an IOMMU. */
-	dt_device_set_protected(dev_to_dt(dev));
+		/* Let Xen know that the master device is protected by an IOMMU. */
+		dt_device_set_protected(dev_to_dt(dev));
+	}
=20
 	dev_info(dev, "Added master device (SMMUv3 %s StreamIds %u)\n",
 			dev_name(fwspec->iommu_dev), fwspec->num_ids);
=20
+#ifdef CONFIG_HAS_PCI
+	if ( dev_is_pci(dev) )
+	{
+		struct pci_dev *pdev =3D dev_to_pci(dev);
+
+		/*
+		 * During PHYSDEVOP_pci_device_add, Xen does not assign the
+		 * device, so we must do it here.
+		 */
+		if ( pdev->domain )
+		{
+			ret =3D arm_smmu_assign_dev(pdev->domain, devfn, dev, 0);
+			if (ret)
+				goto err_free_master;
+		}
+	}
+#endif
+
 	return 0;
=20
 err_free_master:
@@ -2624,6 +2668,42 @@ static int arm_smmu_assign_dev(struct domain *d, u8 =
devfn,
 	struct arm_smmu_domain *smmu_domain;
 	struct arm_smmu_xen_domain *xen_domain =3D dom_iommu(d)->arch.priv;
=20
+#ifdef CONFIG_HAS_PCI
+	if ( dev_is_pci(dev) )
+	{
+		struct pci_dev *pdev =3D dev_to_pci(dev);
+
+		/* Ignore calls for phantom functions */
+		if ( devfn !=3D pdev->devfn )
+			return 0;
+
+		ASSERT(pcidevs_locked());
+
+		write_lock(&pdev->domain->pci_lock);
+		list_del(&pdev->domain_list);
+		write_unlock(&pdev->domain->pci_lock);
+
+		pdev->domain =3D d;
+
+		write_lock(&d->pci_lock);
+		list_add(&pdev->domain_list, &d->pdev_list);
+		write_unlock(&d->pci_lock);
+
+		/* dom_io is used as a sentinel for quarantined devices */
+		if ( d =3D=3D dom_io )
+		{
+			struct arm_smmu_master *master =3D dev_iommu_priv_get(dev);
+			if ( !iommu_quarantine )
+				return 0;
+
+			if ( master && master->domain )
+				arm_smmu_deassign_dev(master->domain->d, devfn, dev);
+
+			return 0;
+		}
+	}
+#endif
+
 	spin_lock(&xen_domain->lock);
=20
 	/*
@@ -2657,7 +2737,7 @@ out:
 	return ret;
 }
=20
-static int arm_smmu_deassign_dev(struct domain *d, struct device *dev)
+static int arm_smmu_deassign_dev(struct domain *d, uint8_t devfn, struct d=
evice *dev)
 {
 	struct iommu_domain *io_domain =3D arm_smmu_get_domain(d, dev);
 	struct arm_smmu_xen_domain *xen_domain =3D dom_iommu(d)->arch.priv;
@@ -2669,6 +2749,21 @@ static int arm_smmu_deassign_dev(struct domain *d, s=
truct device *dev)
 		return -ESRCH;
 	}
=20
+#ifdef CONFIG_HAS_PCI
+	if ( dev_is_pci(dev) )
+	{
+		struct pci_dev *pdev =3D dev_to_pci(dev);
+
+		/* Ignore calls for phantom functions */
+		if ( devfn !=3D pdev->devfn )
+			return 0;
+
+		/* dom_io is used as a sentinel for quarantined devices */
+		if ( d =3D=3D dom_io )
+			return 0;
+	}
+#endif
+
 	spin_lock(&xen_domain->lock);
=20
 	arm_smmu_detach_dev(master);
@@ -2687,14 +2782,16 @@ static int arm_smmu_reassign_dev(struct domain *s, =
struct domain *t,
 {
 	int ret =3D 0;
=20
-	/* Don't allow remapping on other domain than hwdom */
-	if ( t && !is_hardware_domain(t) )
+	/* Don't allow remapping on other domain than hwdom
+	 * or dom_io for PCI devices
+	 */
+	if ( t && !is_hardware_domain(t) && (t !=3D dom_io || !dev_is_pci(dev)) )
 		return -EPERM;
=20
 	if (t =3D=3D s)
 		return 0;
=20
-	ret =3D arm_smmu_deassign_dev(s, dev);
+	ret =3D arm_smmu_deassign_dev(s, devfn, dev);
 	if (ret)
 		return ret;
=20
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Tue Apr 29 11:52:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 11:52:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.972137.1360551 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9jVX-0008DE-0V; Tue, 29 Apr 2025 11:52:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 972137.1360551; Tue, 29 Apr 2025 11:52: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 1u9jVW-0008D7-Se; Tue, 29 Apr 2025 11:52:14 +0000
Received: by outflank-mailman (input) for mailman id 972137;
 Tue, 29 Apr 2025 11:52: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=/zRN=XP=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1u9jVV-0008Cw-6M
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 11:52:13 +0000
Received: from DU2PR03CU002.outbound.protection.outlook.com
 (mail-northeuropeazlp170120003.outbound.protection.outlook.com
 [2a01:111:f403:c200::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 62582cdd-24f0-11f0-9ffb-bf95429c2676;
 Tue, 29 Apr 2025 13:52:11 +0200 (CEST)
Received: from AS2PR03MB10110.eurprd03.prod.outlook.com
 (2603:10a6:20b:57a::22) by DU0PR03MB8809.eurprd03.prod.outlook.com
 (2603:10a6:10:412::18) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8699.19; Tue, 29 Apr
 2025 11:52:08 +0000
Received: from AS2PR03MB10110.eurprd03.prod.outlook.com
 ([fe80::52f0:1815:60c9:8873]) by AS2PR03MB10110.eurprd03.prod.outlook.com
 ([fe80::52f0:1815:60c9:8873%4]) with mapi id 15.20.8678.028; Tue, 29 Apr 2025
 11:52:08 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 62582cdd-24f0-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=V6PAdfWSdMrKPKdtKD72+7Eidx+wYUkVYivWYZpbV1mlVYs89TysLID/xTrBoQcOU4NE2Wb7EWGW4zCHF/3itaIndloCgzUCG5updw0Q1wLR6sS5otbUsOp5a161O+5lpI42o1TknbklTFuIjHAqyKSargNG7Ev78reS1doLzPmY7D4ZOOYzrbUsrPAqCHsJDFAK4LPtOnzO/tXPVt3nnc7ikPMrRVUiiskjERYS6toxDARUA6LMo0Q+tqNX7VQCsW3IReQOPfL48rTJ7QvDmrZfj0ZnPxu2s8frQKmsqUkqKlBm1b+tWMKrY+46zvnHR50+e6zqqZmvSWZ5MdjPsA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=MbymJd2v8pKE7Wy+pVe1MuqXU5YBZUw3zuvnql8GLBo=;
 b=s2sKrMQvirdao/qWg6j/5HAWHvRC1vGn/roWCr1c/JdPvgv8jU24G8GvbnfJ14bYdtTgZl+Yo1T/DufT81hiGrqp7GRyoHg0UoQ7ciaM2MIth8NExPUDSql6NOL3U8rQ2yAabeap7D9CbVCFP2dWyqh7DVpf3KX/Bp9KvQyQ3nOKrcAlMlG8S53pY/DunLhodp5SMI/pBZ9a0uxlUX80cDUiuCi2kwofS1HrUd8Cw2vlp6Gx0lbSmtf7fx9cFAC6zybWG++ycqLFLE5aMMZq/ZhkHLTdqyzJIoYRiLgyc8cyGJ80q1AJzXVOsCEmBoi9uS/voTxbR6I00bnhsu0Qyg==
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=MbymJd2v8pKE7Wy+pVe1MuqXU5YBZUw3zuvnql8GLBo=;
 b=GyJHscwvP4gsTKOhPCrtMiaiZwA5kyuEWPE6ebvQUSwLDS/atm1nBy7hVrm9lUoE7S6ipRSfAOrSgEeUx80soOTN2aK4dFHDR1iiZUHXeEKfQfkbVyzV0rkMNHdrIBLHP1G5UoVzvpgTP9/vCWPzdYJojiEoZLDicBhmXu5s+s9mdnk29FyGNgJmfKgsrD3ZIl1JMJXxsGYlmu0S/kw8BmiLI9Mo1SRqRttDaC6v1X7KjMlV7iKKOIJd9yVT6pbSCgeRgk4jJCsl3HgYdut9pY2gSUOzBDjzJsJ0K6BrXGUJ1CJmQwq09q9R0BYGzRSo3NovhRQLsBFZ1pA7oa4a4g==
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>, 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>,
	=?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>, Rahul Singh
	<rahul.singh@arm.com>, Andrew Cooper <andrew.cooper3@citrix.com>, Anthony
 PERARD <anthony.perard@vates.tech>
Subject: [PATCH v10 0/7] SMMU handling for PCIe Passthrough on ARM
Thread-Topic: [PATCH v10 0/7] SMMU handling for PCIe Passthrough on ARM
Thread-Index: AQHbuP0ibykvWQwu2keuk1l3+BHLgw==
Date: Tue, 29 Apr 2025 11:52:08 +0000
Message-ID: <cover.1745918678.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: AS2PR03MB10110:EE_|DU0PR03MB8809:EE_
x-ms-office365-filtering-correlation-id: c75fd7ca-b3ae-4e33-7471-08dd87144537
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|376014|7416014|366016|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?Y+nVSp//O5/PbOCsJ5BsqKYSZWxE8LOqCWXRUCcvbFOB+KOlbJXkFkGMNS?=
 =?iso-8859-1?Q?eAUY7mStys1dUTW3LgHFE1HrqK0GbC8X7/f/BT2XUG7bCSEnANXAmKsG4J?=
 =?iso-8859-1?Q?2hZCKAytwZ0iTeEvYHkP9yl8wqidgxFxUAr76xhiY6iVQHkCQGPGWf3cx1?=
 =?iso-8859-1?Q?keMNsGBqjMLiH5CF7c0x/HP7AVbUrLBLYqwSY7MiESCH2ZwBeOzhTPcdm5?=
 =?iso-8859-1?Q?LPUJjVsFr3XUEnidxPOrLbgJeE2/FspgyJ/4tKoXpZyrO1YceZxEc0FDyO?=
 =?iso-8859-1?Q?TuxhXUjZNwiQ4D8SqH969eERv4wKgIR07vFi2XPf9Px8UMN4Xy9hU1S1Sz?=
 =?iso-8859-1?Q?EkmfveJhiUcHtp+HQ5GlJSBAmCWoWwCsUSEf66yLLdRj1CSZQJbIN1z38p?=
 =?iso-8859-1?Q?rL2kCbBKycL3ObqN+PUaQ6WsXTqA4camliDfVcJ0bM4eOGQFzJYcDPFmt3?=
 =?iso-8859-1?Q?4BpnfRuBcvi896ktCmzNkmn9wWl1pVfnGiH7og2VJubbnV/wV5UI1xEsiZ?=
 =?iso-8859-1?Q?86MUW9IMckfNYVOnvDgEFxbIxuMysCK0Gj+w1FXFgIZMxMzJK/ZHZfMByI?=
 =?iso-8859-1?Q?19Os/nzwMTjD6PpmjO2hthQUuHTLlUJXpDC3m3eV8o8brhuf1RRoPkXXP6?=
 =?iso-8859-1?Q?6Mf2FgvY56fjFW77tyDtX8mhZuO9rPhQSsk1GWKcyC/paZa3JnaqLj/lT8?=
 =?iso-8859-1?Q?aVmiX7GxeEn4EDK9XVMMJyF4kyObYWzur2cJrHqGuA3Y/2SYe28WTd0C1B?=
 =?iso-8859-1?Q?BaX68VVlhBuNMknGf7OQ43mWNPCXDaODbUBl8M2uQbX7K4PigbxTCn+VYF?=
 =?iso-8859-1?Q?bfUk6TBDxJUpTfHvbtStr8um/qxOQIPkGFfK9YQcG1XqoZ2jtkED3gjTzq?=
 =?iso-8859-1?Q?6La0fOr8ZmTUcOi08lE9WXAVwrKR5S17WWtMT66iaRfWY0GrdhK4xNpe84?=
 =?iso-8859-1?Q?SouGgJJf19J+79eDH1IAo20Qqp9v46jTaO9b6b8Kau3/aOjduYA97YAJ8L?=
 =?iso-8859-1?Q?Fd6ZD9R7KXth5Bn5i59aDg6h0o4LrWOn+CkNtiSixqOTJukhIKbPtYPzdV?=
 =?iso-8859-1?Q?gcFEMZw8vRJC6zkEGqhDPSFzLbHN3pryr1zNAYAGK9W/t3FHvznbnJF2Hy?=
 =?iso-8859-1?Q?y1HmpKxaMbiATKbi1IR2p7MYwtocmByrjbRpnRXSSXqA59F5os4h8HTjSe?=
 =?iso-8859-1?Q?VbuSbIQY401OFQwf2suea0p0uDpRl4ZViWPDaqsr/PykOYeH/mlT3BCvTx?=
 =?iso-8859-1?Q?b5hiEhafJpRT+X9nsmxHdtGjcZVkgcdWWTkWIC1szNV/DfrgGWbwAXKVFY?=
 =?iso-8859-1?Q?GKSW59+gY/ap/qdpBggYqIgmcDQf911/Ab+2YyaKG1IiPk6Un/9UD35Pa3?=
 =?iso-8859-1?Q?Nyo88yDhaqtuQ2uL5RJQpCyPVyesnVmRk87Osf2MJNP7c/Ewr5qJYU1agR?=
 =?iso-8859-1?Q?hnaR8o9ztdEjWnAn/abHkAWkfiWbzmkULJdMxo7PYBuHlqD3FYeQ3gdz17?=
 =?iso-8859-1?Q?s=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB10110.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(7416014)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?2Zm1pI943hTDb1sBlxbw1l2c6Sjp8YEF+DbkrOF99DZh2HLzxI2btYp1Go?=
 =?iso-8859-1?Q?NBIHyaiSDoiXkose8JL0SoP610u9ZZRvjFYYO9lyEl5D7rlwP8VsBBO2qT?=
 =?iso-8859-1?Q?5xw3rLUXFVkkxa7NEM/qfyLDHQ6c+f8xTFbezh/bTixh9cMvy/OiB6JuLR?=
 =?iso-8859-1?Q?onIndL8vKlcy4CjsMNvswNwze80iDvnoKlNwhQEi/muj2iNQ1WGbT35BJF?=
 =?iso-8859-1?Q?a2vjmXOUd9kvyOv6RI+nCgY11AMLzfkdO5sX0nYdnxF1QGKs/xm4tPAZBN?=
 =?iso-8859-1?Q?I6gziQ8Uf7oJvK4g+gegG+0cblVzxWfSlUMO2+1Mmwx8LanCI4IY9vE5Bw?=
 =?iso-8859-1?Q?w4jNqBL3K7ygAGtmv5q0+8uPM7iXitTUNIXYmeIzJL4guCT3O/5F3fNYWq?=
 =?iso-8859-1?Q?6P7bVqY1vaYjVgi+2/37I164E39Ckay4H9PL5VS/hmMFWU8rNduP+24obF?=
 =?iso-8859-1?Q?KvOv0VwGDRlMPjDkT44UXE7CosdBr0gLobuKEuBqiztm2Nu820w/IAzLXN?=
 =?iso-8859-1?Q?gnIYcYttU6618hha9PQvoJguT+EYXuOTIHP5Z51ZAucpn2K6srT05BrawY?=
 =?iso-8859-1?Q?EUr4rp9hcjJojQ/u/7iIEYZb2VQ6r7LaKf2UkgVQdvcpakVVfMCa37ee9e?=
 =?iso-8859-1?Q?I3jY/WHgXZkXhyAu6ML/QIx50onJ9E1ERE0i8vH2874+9+JRNDS4UkqIcr?=
 =?iso-8859-1?Q?Ej+TIQE0sBN6MDfp/SwYG9m84hzLmo3GiYcB7sFJFq+5Lsxyih2TfXTwR6?=
 =?iso-8859-1?Q?X1wf5Rl6I2xoalcCF9CpAxHNjA386gq6zdget/Ngl1YQ00xv+nJnMDPk1m?=
 =?iso-8859-1?Q?mFmCmmDBAXBdPqFNlXmmKeK/ZTNf/Dn8y9MgUN6AMhjxGHNp99Vze+mhQJ?=
 =?iso-8859-1?Q?dr8pdj01RUGGU4SvUh9LK2L0DcFATdYc7XeWw6zTVu9BDP2Kf/D0+/vZxC?=
 =?iso-8859-1?Q?v7QvL+PeiFjrQAC9uEzgK12x9Q4ekpsNFlHlEU/RoaBiEg3OJQeYNajJDL?=
 =?iso-8859-1?Q?bu15pKIoQdxo8MIPqK0zGzWdoBU6Gga+ulGC2aFD3yhUYD7wdlwR4cbmbH?=
 =?iso-8859-1?Q?A1cdHjIwWEQjuYiEAyqnJhRgMEfJZpo1VByRFsEpPaYHli1ONSe0bdZHb1?=
 =?iso-8859-1?Q?UkKuYiBXnAn0QrIwtaUqX3KQ8hLk2jk3uh6qPzelEW348QkwCJxYBERfWf?=
 =?iso-8859-1?Q?sYrsxLu8ImfL5ImnSSic+IEHlh4ONt/ywx7R/KFxOuuRQqpKtZeLHDankp?=
 =?iso-8859-1?Q?pGh4b61A1a9V7gOlNp/U52fzN9ICVvSl2Ny1mb8W5eU/s5lupZbMTxj0Pl?=
 =?iso-8859-1?Q?Q9zDVN+8oMVnWVruvFtOPz34Jd1dsUdHoZcIYLbHOq/HF+INMsC4p7Yx+e?=
 =?iso-8859-1?Q?oC/HoJ/JeTWVhlU3J89hKgDEFONi1Tjb22rOwCMvG7XvmroZnhWIZhoGJ4?=
 =?iso-8859-1?Q?QcbNNSDN6fQUynfjIg0OsFufy5vn1PGIl0ggISe78ikEBU8WwxUTeUNaMv?=
 =?iso-8859-1?Q?1zo4WvJA0+5Lx4soiliHlCW9meOkC15ywyR5Y6l3MjwcykQleNwXLShpCq?=
 =?iso-8859-1?Q?+Xy0V9lfAgGjCyjwOgCWAYCkhWNckFPDM7+VQZlAYBJeL5JhL2L6g+koD1?=
 =?iso-8859-1?Q?6MUjIT607nW7mLXXsXnk9/BdEAgVhFBgdOE/UtaBrZFR9ytCl0ufU0Qw?=
 =?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: AS2PR03MB10110.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c75fd7ca-b3ae-4e33-7471-08dd87144537
X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Apr 2025 11:52:08.6328
 (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: YZzgY7SReckeoWcW4a5eTLFoRFAtIbZ+UdR5cWnrdKMW8XdXzIYRznWs6cUqfKxTJLgrPmkJh96+DpVzECFq+w==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR03MB8809

This series introduces SMMU handling for PCIe passthrough on ARM. These pat=
ches
should be able to be upstreamed independently from the vPCI series [1]. See=
 [2]
for notes about test cases.

[1] https://lists.xenproject.org/archives/html/xen-devel/2023-10/msg00660.h=
tml
[2] https://lists.xenproject.org/archives/html/xen-devel/2023-06/msg01135.h=
tml

v9->v10:
* drop iommu/arm: Add iommu_dt_xlate()
* see individual patches

v8->v9:
* see individual patches

v7->v8:
* no changes

v6->v7:
* drop ("xen/arm: don't pass iommu properties to hwdom for iommu-map")

v5->v6:
* don't revert ("xen/arm: Add cmdline boot option "pci-passthrough =3D <boo=
lean>"")
* add ("xen/arm: enable dom0 to use PCI devices with pci-passthrough=3Dno")

v4->v5:
* drop ("xen/arm: Improve readability of check for registered devices")
* drop ("xen/arm: Move is_protected flag to struct device")
* add ("xen/arm: don't pass iommu properties to hwdom for iommu-map")
* add ("xen/arm: Fix mapping for PCI bridge mmio region")
* revert ("xen/arm: Add cmdline boot option "pci-passthrough =3D <boolean>"=
")
* add ("xen/arm: Map ITS doorbell register to IOMMU page tables.")
* fix test case #1 with PCI device in dom0

v3->v4:
* split a change from ("xen/arm: Move is_protected flag to struct device") =
into
  a new separate patch
* see individual patches for further details

v2->v3:
* drop "pci/arm: Use iommu_add_dt_pci_device()"
* drop "RFC: pci/arm: don't do iommu call for phantom functions"
* move invocation of sideband ID mapping function to add_device()
  platform_ops/iommu_ops hook
*** BLURB HERE ***

Oleksandr Andrushchenko (1):
  xen/arm: smmuv2: Add PCI devices support for SMMUv2

Oleksandr Tyshchenko (1):
  iommu/arm: Introduce iommu_add_dt_pci_sideband_ids API

Rahul Singh (3):
  xen/arm: smmuv3: Add PCI devices support for SMMUv3
  xen/arm: Fix mapping for PCI bridge mmio region
  xen/arm: Map ITS doorbell register to IOMMU page tables

Stewart Hildebrand (2):
  iommu/arm: iommu_add_dt_pci_sideband_ids phantom handling
  xen/arm: enable dom0 to use PCI devices with pci-passthrough=3Dno

 xen/arch/arm/device.c                 |   2 +-
 xen/arch/arm/include/asm/iommu.h      |  15 ++
 xen/arch/arm/include/asm/pci.h        |   2 +
 xen/arch/arm/pci/pci.c                |   8 +-
 xen/arch/arm/vgic-v3-its.c            |  24 ++-
 xen/arch/x86/include/asm/pci.h        |   5 +
 xen/common/device-tree/device-tree.c  |  91 +++++++++++
 xen/drivers/passthrough/arm/iommu.c   |  13 ++
 xen/drivers/passthrough/arm/smmu-v3.c | 119 ++++++++++++--
 xen/drivers/passthrough/arm/smmu.c    | 224 ++++++++++++++++----------
 xen/drivers/passthrough/device_tree.c |  49 ++++++
 xen/drivers/pci/physdev.c             |   4 +-
 xen/include/xen/device_tree.h         |  23 +++
 xen/include/xen/iommu.h               |  21 ++-
 xen/include/xen/pci.h                 |   5 +
 15 files changed, 507 insertions(+), 98 deletions(-)

--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Tue Apr 29 11:52:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 11:52:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.972138.1360561 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9jVY-0008R1-6t; Tue, 29 Apr 2025 11:52:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 972138.1360561; Tue, 29 Apr 2025 11:52: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 1u9jVY-0008Qu-3Y; Tue, 29 Apr 2025 11:52:16 +0000
Received: by outflank-mailman (input) for mailman id 972138;
 Tue, 29 Apr 2025 11:52: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=/zRN=XP=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1u9jVW-0008Cw-Ma
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 11:52:14 +0000
Received: from DU2PR03CU002.outbound.protection.outlook.com
 (mail-northeuropeazlp170120003.outbound.protection.outlook.com
 [2a01:111:f403:c200::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 63573085-24f0-11f0-9ffb-bf95429c2676;
 Tue, 29 Apr 2025 13:52:12 +0200 (CEST)
Received: from AS2PR03MB10110.eurprd03.prod.outlook.com
 (2603:10a6:20b:57a::22) by DU0PR03MB8809.eurprd03.prod.outlook.com
 (2603:10a6:10:412::18) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8699.19; Tue, 29 Apr
 2025 11:52:09 +0000
Received: from AS2PR03MB10110.eurprd03.prod.outlook.com
 ([fe80::52f0:1815:60c9:8873]) by AS2PR03MB10110.eurprd03.prod.outlook.com
 ([fe80::52f0:1815:60c9:8873%4]) with mapi id 15.20.8678.028; Tue, 29 Apr 2025
 11:52: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: 63573085-24f0-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=YaWoh7ehH5XWvxkDybaCsuuGLMB6k0r6kxUk8GzDdqQuRK4GOWGsX5+AXXsmC2J/tl3dbKzA9637ndMs4Zb+1G6XmhNulVnYc3O55sWSgub9v7FCuQtC23gM/aZxoEV/xjf1rhfqHrKJkqNtb0cGWe0M8btD/qmtviFzRrdICd8amItMB6xumFHjmwgLZlJ7uWy1rIuXNyvk4UzXXhOofnuyx7rRzInNR0qEer7Wnrw0iW/pARGIMZWivy0cJg4m1pnz/AMqwsGVV+FsdEKQ7ui7iTCypQsX5u2KgfGk6+bwHP9nc/DqZ15evsI8bJ/Jd1rvAGb7K07uxfJ0J9ELpw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=mrO4OIfRnVJFdWhv9XYhfSEcjG/O9DDjqyM9atO2eXk=;
 b=IXMXMdEN4cZwjPNuHtxJWv4qHArQfbjlDYM9lPMfl/D7SoS1WPv/XVbvd8fN+lcich27L1nDuINy2wVfraQow7BinDxfOaxCsksAWAn/i/ESpCwqJEIR3YGq5DTpVF/wrlotZ56qv1n6ZVE91EmNKKqFJnizP/l4CHFcYH/0+wdtfHnCEB8+ddLGeC6Gj6CVeyTHLHbMNkUySWtfc+AsKO2EL1Cg3xG8HtfMi4gD5vbzVimcH8che2CbHTdYjzwjtxYVsM8rmV0/WkZ9qIiWygZyPR7h0CBCCfRFwTU+HhtY1lz67tUrMpMzSWFo9Llgpw6naOttq8wnXtzkt9NQxg==
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=mrO4OIfRnVJFdWhv9XYhfSEcjG/O9DDjqyM9atO2eXk=;
 b=tEEpxooqtBuOPCnMWze4eCP2TkyRZnWUPVeRJcHs1EnRjqEvoWCrGREsFME9h4DqhEd7cPkQVUzJ9OQ7bBfwc4YrRoIJe1ogdNoXpzoxmWbURCZrw4w8WlXtrlMwlC02HxJEX6vvUXyXZJFJgvmou6BOfxXxiHIVahqfrv1+Tm338oBqqlKD5ff4EeMh3bpVzHYuJglge365CtsLqohLavuduABJbE8iXsqrFjzZXV6v21afHfuvb3Te01ZND5SJsalrym8BtAMCbwchkNTKZmnzsm9982XQ44MLnYxskyAqTH1YCTzqXvH6fBGGP/egCDGeyQM4WzSfjfkDQgRfcg==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Oleksandr Tyshchenko <Oleksandr_Tyshchenko@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>, Jan Beulich <jbeulich@suse.com>,
	=?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>, Stewart Hildebrand
	<stewart.hildebrand@amd.com>, Mykyta Poturai <Mykyta_Poturai@epam.com>
Subject: [PATCH v10 1/7] iommu/arm: Introduce iommu_add_dt_pci_sideband_ids
 API
Thread-Topic: [PATCH v10 1/7] iommu/arm: Introduce
 iommu_add_dt_pci_sideband_ids API
Thread-Index: AQHbuP0idLqgFikNiEOYLl4hPTxlpQ==
Date: Tue, 29 Apr 2025 11:52:09 +0000
Message-ID:
 <8110a8fd8648b1e40a47c51d68bf5cab5a46468d.1745918678.git.mykyta_poturai@epam.com>
References: <cover.1745918678.git.mykyta_poturai@epam.com>
In-Reply-To: <cover.1745918678.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: AS2PR03MB10110:EE_|DU0PR03MB8809:EE_
x-ms-office365-filtering-correlation-id: 3cf3f62c-ddf0-49f7-3523-08dd871445a7
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|376014|366016|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?jw3vkIRINinU/20nmqhknX6MSsvAdrglxJwyCFdzEGLlEpYVlVYrJWfSWM?=
 =?iso-8859-1?Q?6m9epIRz8/IRb7uieerAd47cCnxQug/EpTQbyDUWOHCd1D/WBNH3oKPDNx?=
 =?iso-8859-1?Q?I+mKvCnX3Qmb/172uhhsSKuHqJCr5QfPHAcBd2S0LD7i0LXmYNOuzVyq7y?=
 =?iso-8859-1?Q?+2k3LCKO2ptU8G5kO8ANsoWuHzkXa2nNBIaVHhryg+RM5zzlMoeH8kluiQ?=
 =?iso-8859-1?Q?g+gARddMV6b64PrmX/zmCdpKX86p1ZSpbvNtD78HO/do1ljOp6IWZ70JvM?=
 =?iso-8859-1?Q?HUtfjv6bZsmOj/kOTKYIANK11z1NQjYYAZOr4Zxb/ap/I3itvmjBuVOl7B?=
 =?iso-8859-1?Q?EY1Z0nD9Wsmo72NwrpXM+392Lw3WzsUpF1QUV5MXJzQcTAonw7MDaPNcA8?=
 =?iso-8859-1?Q?xUqNEQetSx0o8LxFLLZ1HKIsubz7GyFpmj0DuojsXK+8hTzq6vWXPa+ay0?=
 =?iso-8859-1?Q?/fbugOzn3uJ5BK3zTlFYv3nff5WrP7LTSXJNZNfL7ePTqqUEFgoWdMEMOX?=
 =?iso-8859-1?Q?bh5dMct4eFChlVThFnLpy0rYXf4HtmedDS4GExR/LqToSK5A/wtGdBi8DK?=
 =?iso-8859-1?Q?5yK28HO39d4X2jgpPi+zmFo7KXrW7s7ZIc7HyGjHx1wioOXxQ3iZ90WZYB?=
 =?iso-8859-1?Q?2dPUg59ViWkxZoj+bbLs7QyMBCbWIS6O7huMohODIV14yPt8HQm5jZBaBJ?=
 =?iso-8859-1?Q?ao6RCBesL6uTONUz2HvSo2KxDg2YLpQa7y1E3tDlcvAqDB7OtH+NHlO/Aa?=
 =?iso-8859-1?Q?TKJZmf1KLTSR0p/+o9OMkYUmfs+ZBWwwK18w/wCYBoK6lau6s87VS5p4ho?=
 =?iso-8859-1?Q?zYMUIEIMvOS3VO15KTl6rJfYY5J5QYKIBLRyI+Sej1r1qI4A6+lz8+WETp?=
 =?iso-8859-1?Q?WqUSbDBS1WKIV4hs9pRdwVuC8eSdNklcuDRFA+XYOGRAcQSZFc5713TAot?=
 =?iso-8859-1?Q?kn2O7NrLUPzLx3Lz0XMgb/YROgwmqNbaw9hkw3R8vTSvlRjB6cfQRkO4oM?=
 =?iso-8859-1?Q?yPtmzTBdflwovFz6NHPbi/IkIVw15o+kyhtH5IzsZ4NbaviLJd6WCOirj/?=
 =?iso-8859-1?Q?E/fV9+Bx0SZUhZHVKRSrfFeneUEb8O+7AoEbVGlr/uEvi/wcwGDr7GMrHS?=
 =?iso-8859-1?Q?iDkrP77TRQo4geWvfrF0yQsfwu80jLf6taDOpMklwc17B8xiwV96XoBZIa?=
 =?iso-8859-1?Q?Uf9HHO/ps1AjUUQjWKs7XIZam3yG5y4fzCDss+YWt2FEyhObBSydwIHKkq?=
 =?iso-8859-1?Q?voqPLdJM2GvklX7NoocxgRwBOBEivmPX+AetEYVD2sIi1mJWV2UGeiCKGM?=
 =?iso-8859-1?Q?/9TzvJCW+gqaJzJ+hHirc4DzMXCDkCQLXcUTrVIy5arWnvgxEXM+xu6Xre?=
 =?iso-8859-1?Q?pBl81YX6b+USWyDnNPvNQVLM5BdE4nzOZSACaPIbRYRDECgeyaf8pv2Qtp?=
 =?iso-8859-1?Q?YMQrUQMIgkkhiE9hfbhVMS8zufdrUs7/UwC3+PdNpEgR/JdlOyN0G9Uy3r?=
 =?iso-8859-1?Q?aJGYUjGY1n6M95HkpyOOdTYvRLOXvAVXuShIAUsdRQXZ2EDaa6Yxd6G9QY?=
 =?iso-8859-1?Q?92bp1+4=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB10110.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?slshPao/Nrxw3bqcYUfX1tai00n027caQKbaYE0AIle9IGldQEzGdnUmWI?=
 =?iso-8859-1?Q?CxykcAf1/O1yc6WiHxgpX40xWEFphs61QGT78NoZsFHGPCCh1rjQKLSuKO?=
 =?iso-8859-1?Q?lhNSbZgY+XB2md2Dw3c0Vf669PK7lbcBntcyqsc3jdMtsQUFdLpNVQTfRH?=
 =?iso-8859-1?Q?GhjgBkNmzULbdrrZKE0DxsRY5JpZYeewFbwbKxI/d6ztyZkBKAdE9hHGdw?=
 =?iso-8859-1?Q?9yLERNme889gtJ6gYgXyfTfsEJ8JQRmrP5HZ2AJUYwGUccQ0YHx+Is553m?=
 =?iso-8859-1?Q?9HA2g6pqbgTJdZcO7xsdz/OtDNiPhHB5kaTwufkK13O6CkXdqZZ9Jk0Snw?=
 =?iso-8859-1?Q?2D19i7fGpwffGwyfIbqwgiSwBupgaziEMtzZMreggBkTwI2yffbQdtMC7V?=
 =?iso-8859-1?Q?78qh0ut89ljWxP4tQ8CUyCtoc/f6pJRB10bdHO+cdy2rADO5Tr7T0e1nd6?=
 =?iso-8859-1?Q?9Xq7NzhyMJSDLQ1Zeu7leb81Qm+K1QrAWwVwjVLFS3cI3ez9wB60Am1CRR?=
 =?iso-8859-1?Q?3Nwf1bLo3jaHk09/2rltaVLJ3amiDFRPIK+855PDXVkWoFB1mIKewVidv6?=
 =?iso-8859-1?Q?+5Z+GWy0eC/y3f/NiYeCZaabqfPc6vopIUDmuzcmiK+rjabLyfpph6cbt8?=
 =?iso-8859-1?Q?2aonuy8D0cmh5as90+MDhH6Dkg06LM4522DksIY9mjGnSwqckIlXAZyGlF?=
 =?iso-8859-1?Q?sR3dLT6lSIYeVUJYrQIWBi/RWZrv8oylUMZjjoQS4vxNCRyJr7YkTCMCdt?=
 =?iso-8859-1?Q?U1g9JEx3vOWXaHbMBgzR78BBmuD3S9nOxW6yjp3cYUd/4lObfBnk26XwRJ?=
 =?iso-8859-1?Q?JI+Sx9BhBn1Yr9sC5hsvYQbPkFWLxwqZ9Hq8yMXf7kGwWbDL/6pgHL4Yc0?=
 =?iso-8859-1?Q?kgLVvzC7r+DqeK4ZgtBtf2crObbCZLJsM6eJGWnHe4TVcnhtWpBgxSyC5I?=
 =?iso-8859-1?Q?+ADpKkdxzoqNsqKQbQ+aAwJQZIFtKAUxqf21rNUQrpdEDcpPeVN5A+RXkG?=
 =?iso-8859-1?Q?oNUAB56b6jqtxNDktGzvUFydQ/U6WUDaKdwsV+SK8Y2/eEDUTj8of4B5L0?=
 =?iso-8859-1?Q?LJ40IOVNGxDJUEjK0I8PULfF4YnLyRd6uqMGimVX746pF8R5M0lHyXUlaB?=
 =?iso-8859-1?Q?LJ00I4HQJwGia7mRtSWHWaptcAnMR6dw+d+YLpoxtPyERzeXX7iTPlLVO9?=
 =?iso-8859-1?Q?WQfV4VNf88bNgOBPu+bAybYKxfDVu0xh2VvwTBsOHJt0FaoaG8J07Oserl?=
 =?iso-8859-1?Q?RvhnHpClUVVL565gaH63/fFXhu5fCbx8b1srQDoDnYWDrWsuDiDV6dNZZY?=
 =?iso-8859-1?Q?voT6R9ha05YXq3AaHKew0FblSm9VbQe2y4Gankte4Ol24JipzUMxHrJfWf?=
 =?iso-8859-1?Q?2GUBhxpPlRXI7X+ogF2NNnUfF46GQIf0KQGp6+5c7gH0dZWTJpDbVoM+Uv?=
 =?iso-8859-1?Q?WjQQMVL3LFGm9RFOeCDXrtv36HyAPdid3hBRj8YVWiaCMJZE7RIdXJl26V?=
 =?iso-8859-1?Q?ubK33KAvdLMOz3VwV56ezPrWqSbeaXwrLo11xjh2DQQt0g0HIJs1O8oPSj?=
 =?iso-8859-1?Q?kOYDJS+Aixi3FmeJEE103iL0fvllN4OkcxM81GeZaDGIW50PBelPGAfGbt?=
 =?iso-8859-1?Q?wN6oAUXAF3tDQ7Ocvjn17MPF5Nj9FeLr24olMDKWsRK9jck4yyBh8pGg?=
 =?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: AS2PR03MB10110.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 3cf3f62c-ddf0-49f7-3523-08dd871445a7
X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Apr 2025 11:52:09.0936
 (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: BPPuWgBrwShg2hu/QS+bFk75/YFuTc2kKrTXQPtTxe4AthG+uLy1335f+E397iPZ7dJ617BVcta0QAxrx9XJ3Q==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR03MB8809

From: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>

The main purpose of this patch is to add a way to register PCI device
(which is behind the IOMMU) using the generic PCI-IOMMU DT bindings [1]
before assigning that device to a domain.

This behaves similarly to the existing iommu_add_dt_device API, except it
handles PCI devices, and it is to be invoked from the add_device hook in th=
e
SMMU driver.

The function dt_map_id to translate an ID through a downstream mapping
(which is also suitable for mapping Requester ID) was borrowed from Linux
(v5.10-rc6) and updated according to the Xen code base.

[1] https://www.kernel.org/doc/Documentation/devicetree/bindings/pci/pci-io=
mmu.txt

Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
---
Regarding pci_for_each_dma_alias question: getting host bridge node
directly seems like a simpler solution with the same result. AFAIU
with pci_for_each_dma_alias in linux we would arrive to the host brige
node anyway, but also try to call dt_map_id for each device along the
way. I am not sure why exactly it is done this way in linux, as
according to the pci-iommu.txt, iommu-map node can only be present in
the PCI root.

v9->v10:
* move iommu_add_pci_sidebands_ids to arm/iommu.c
* replace be32_to_cpup with be32_to_cpu

v8->v9:
* replace DT_NO_IOMMU with 1
* guard iommu_add_pci_sideband_ids with CONFIG_ARM

v7->v8:
* ENOSYS->EOPNOTSUPP
* move iommu_add_pci_sideband_ids to iommu.c to fix x86 build
* simplify iommu_add_pci_sideband_ids
* add docstrings to iommu_add_{dt_}pci_sideband_ids

v6->v7:
* put iommu_add_pci_sideband_ids under ifdef
* remove ifdef CONFIG_APCI
* style: add newline for symmetry

v5->v6:
* pass ops to iommu_dt_xlate()

v4->v5:
* style: add newlines after variable declarations and before return in iomm=
u.h
* drop device_is_protected() check in iommu_add_dt_pci_sideband_ids()
* rebase on top of ("dynamic node programming using overlay dtbo") series
* fix typo in commit message
* remove #ifdef around dt_map_id() prototype
* move dt_map_id() to xen/common/device_tree.c
* add function name in error prints
* use dprintk for debug prints
* use GENMASK and #include <xen/bitops.h>
* fix typo in comment
* remove unnecessary (int) cast in loop condition
* assign *id_out and return success in case of no translation in dt_map_id(=
)
* don't initialize local variable unnecessarily
* return error in case of ACPI/no DT in iommu_add_{dt_}pci_sideband_ids()

v3->v4:
* wrap #include <asm/acpi.h> and if ( acpi_disabled ) in #ifdef CONFIG_ACPI
* fix Michal's remarks about style, parenthesis, and print formats
* remove !ops->dt_xlate check since it is already in iommu_dt_xlate helper
* rename s/iommu_dt_pci_map_id/dt_map_id/ because it is generic, not specif=
ic
  to iommu
* update commit description

v2->v3:
* new patch title (was: iommu/arm: Introduce iommu_add_dt_pci_device API)
* renamed function
  from: iommu_add_dt_pci_device
  to: iommu_add_dt_pci_sideband_ids
* removed stale ops->add_device check
* iommu.h: add empty stub iommu_add_dt_pci_sideband_ids for !HAS_DEVICE_TRE=
E
* iommu.h: add iommu_add_pci_sideband_ids helper
* iommu.h: don't wrap prototype in #ifdef CONFIG_HAS_PCI
* s/iommu_fwspec_free(pci_to_dev(pdev))/iommu_fwspec_free(dev)/

v1->v2:
* remove extra devfn parameter since pdev fully describes the device
* remove ops->add_device() call from iommu_add_dt_pci_device(). Instead, re=
ly on
  the existing iommu call in iommu_add_device().
* move the ops->add_device and ops->dt_xlate checks earlier

downstream->v1:
* rebase
* add const qualifier to struct dt_device_node *np arg in dt_map_id()
* add const qualifier to struct dt_device_node *np declaration in iommu_add=
_pci_device()
* use stdint.h types instead of u8/u32/etc...
* rename functions:
  s/dt_iommu_xlate/iommu_dt_xlate/
  s/dt_map_id/iommu_dt_pci_map_id/
  s/iommu_add_pci_device/iommu_add_dt_pci_device/
* add device_is_protected check in iommu_add_dt_pci_device
* wrap prototypes in CONFIG_HAS_PCI

(cherry picked from commit 734e3bf6ee77e7947667ab8fa96c25b349c2e1da from
 the downstream branch poc/pci-passthrough from
 https://gitlab.com/xen-project/people/bmarquis/xen-arm-poc.git)
---
 xen/arch/arm/include/asm/iommu.h      | 15 +++++
 xen/common/device-tree/device-tree.c  | 91 +++++++++++++++++++++++++++
 xen/drivers/passthrough/arm/iommu.c   | 13 ++++
 xen/drivers/passthrough/device_tree.c | 42 +++++++++++++
 xen/include/xen/device_tree.h         | 23 +++++++
 xen/include/xen/iommu.h               | 21 ++++++-
 6 files changed, 204 insertions(+), 1 deletion(-)

diff --git a/xen/arch/arm/include/asm/iommu.h b/xen/arch/arm/include/asm/io=
mmu.h
index d57bd8a38c..ad15477e24 100644
--- a/xen/arch/arm/include/asm/iommu.h
+++ b/xen/arch/arm/include/asm/iommu.h
@@ -34,6 +34,21 @@ int __must_check arm_iommu_unmap_page(struct domain *d, =
dfn_t dfn,
                                       unsigned int order,
                                       unsigned int *flush_flags);
=20
+/*
+ * This function is not strictly ARM-specific, but it is only used by ARM
+ * as of now. So put it here to avoid creating dead code on other
+ * architectures. When usage is extended to other architectures, it should
+ * be moved to the generic header.
+ *
+ *
+ * Fills out the device's IOMMU fwspec with IOMMU ids.
+ *
+ * Return values:
+ *  0 : iommu_fwspec is filled out successfully.
+ * <0 : error while filling out the iommu_fwspec.
+ * >0 : IOMMU is not enabled/present or device is not connected to it.
+ */
+int iommu_add_pci_sideband_ids(struct pci_dev *pdev);
 #endif /* __ARCH_ARM_IOMMU_H__ */
=20
 /*
diff --git a/xen/common/device-tree/device-tree.c b/xen/common/device-tree/=
device-tree.c
index 90fee2ba03..08f6ce6761 100644
--- a/xen/common/device-tree/device-tree.c
+++ b/xen/common/device-tree/device-tree.c
@@ -10,6 +10,7 @@
  * published by the Free Software Foundation.
  */
=20
+#include <xen/bitops.h>
 #include <xen/types.h>
 #include <xen/init.h>
 #include <xen/guest_access.h>
@@ -2224,6 +2225,96 @@ int dt_get_pci_domain_nr(struct dt_device_node *node=
)
     return (u16)domain;
 }
=20
+int dt_map_id(const struct dt_device_node *np, uint32_t id,
+              const char *map_name, const char *map_mask_name,
+              struct dt_device_node **target, uint32_t *id_out)
+{
+    uint32_t map_mask, masked_id, map_len;
+    const __be32 *map =3D NULL;
+
+    if ( !np || !map_name || (!target && !id_out) )
+        return -EINVAL;
+
+    map =3D dt_get_property(np, map_name, &map_len);
+    if ( !map )
+    {
+        if ( target )
+            return -ENODEV;
+
+        /* Otherwise, no map implies no translation */
+        *id_out =3D id;
+        return 0;
+    }
+
+    if ( !map_len || (map_len % (4 * sizeof(*map))) )
+    {
+        printk(XENLOG_ERR "%s(): %s: Error: Bad %s length: %u\n", __func__=
,
+               np->full_name, map_name, map_len);
+        return -EINVAL;
+    }
+
+    /* The default is to select all bits. */
+    map_mask =3D GENMASK(31, 0);
+
+    /*
+     * Can be overridden by "{iommu,msi}-map-mask" property.
+     * If dt_property_read_u32() fails, the default is used.
+     */
+    if ( map_mask_name )
+        dt_property_read_u32(np, map_mask_name, &map_mask);
+
+    masked_id =3D map_mask & id;
+    for ( ; map_len > 0; map_len -=3D 4 * sizeof(*map), map +=3D 4 )
+    {
+        struct dt_device_node *phandle_node;
+        uint32_t id_base =3D be32_to_cpu(*(map + 0));
+        uint32_t phandle =3D be32_to_cpu(*(map + 1));
+        uint32_t out_base =3D be32_to_cpu(*(map + 2));
+        uint32_t id_len =3D be32_to_cpu(*(map + 3));
+
+        if ( id_base & ~map_mask )
+        {
+            printk(XENLOG_ERR "%s(): %s: Invalid %s translation - %s-mask =
(0x%"PRIx32") ignores id-base (0x%"PRIx32")\n",
+                   __func__, np->full_name, map_name, map_name, map_mask,
+                   id_base);
+            return -EFAULT;
+        }
+
+        if ( (masked_id < id_base) || (masked_id >=3D (id_base + id_len)) =
)
+            continue;
+
+        phandle_node =3D dt_find_node_by_phandle(phandle);
+        if ( !phandle_node )
+            return -ENODEV;
+
+        if ( target )
+        {
+            if ( !*target )
+                *target =3D phandle_node;
+
+            if ( *target !=3D phandle_node )
+                continue;
+        }
+
+        if ( id_out )
+            *id_out =3D masked_id - id_base + out_base;
+
+        dprintk(XENLOG_DEBUG, "%s: %s, using mask %08"PRIx32", id-base: %0=
8"PRIx32", out-base: %08"PRIx32", length: %08"PRIx32", id: %08"PRIx32" -> %=
08"PRIx32"\n",
+               np->full_name, map_name, map_mask, id_base, out_base, id_le=
n, id,
+               masked_id - id_base + out_base);
+        return 0;
+    }
+
+    dprintk(XENLOG_DEBUG, "%s: no %s translation for id 0x%"PRIx32" on %s\=
n",
+           np->full_name, map_name, id,
+           (target && *target) ? (*target)->full_name : NULL);
+
+    if ( id_out )
+        *id_out =3D id;
+
+    return 0;
+}
+
 /*
  * Local variables:
  * mode: C
diff --git a/xen/drivers/passthrough/arm/iommu.c b/xen/drivers/passthrough/=
arm/iommu.c
index fc453180f0..100545e23f 100644
--- a/xen/drivers/passthrough/arm/iommu.c
+++ b/xen/drivers/passthrough/arm/iommu.c
@@ -15,6 +15,7 @@
  * GNU General Public License for more details.
  */
=20
+#include <xen/acpi.h>
 #include <xen/device_tree.h>
 #include <xen/iommu.h>
 #include <xen/lib.h>
@@ -151,3 +152,15 @@ bool arch_iommu_use_permitted(const struct domain *d)
 {
     return true;
 }
+
+int iommu_add_pci_sideband_ids(struct pci_dev *pdev)
+{
+    int ret =3D -EOPNOTSUPP;
+
+#ifdef CONFIG_HAS_PCI
+    if ( acpi_disabled )
+        ret =3D iommu_add_dt_pci_sideband_ids(pdev);
+#endif
+
+    return ret;
+}
diff --git a/xen/drivers/passthrough/device_tree.c b/xen/drivers/passthroug=
h/device_tree.c
index 4a1971c3fc..37e1437b65 100644
--- a/xen/drivers/passthrough/device_tree.c
+++ b/xen/drivers/passthrough/device_tree.c
@@ -161,6 +161,48 @@ static int iommu_dt_xlate(struct device *dev,
     return ops->dt_xlate(dev, iommu_spec);
 }
=20
+#ifdef CONFIG_HAS_PCI
+int iommu_add_dt_pci_sideband_ids(struct pci_dev *pdev)
+{
+    const struct iommu_ops *ops =3D iommu_get_ops();
+    struct dt_phandle_args iommu_spec =3D { .args_count =3D 1 };
+    struct device *dev =3D pci_to_dev(pdev);
+    const struct dt_device_node *np;
+    int rc;
+
+    if ( !iommu_enabled )
+        return 1;
+
+    if ( !ops )
+        return -EINVAL;
+
+    if ( dev_iommu_fwspec_get(dev) )
+        return -EEXIST;
+
+    np =3D pci_find_host_bridge_node(pdev);
+    if ( !np )
+        return -ENODEV;
+
+    /*
+     * According to the Documentation/devicetree/bindings/pci/pci-iommu.tx=
t
+     * from Linux.
+     */
+    rc =3D dt_map_id(np, PCI_BDF(pdev->bus, pdev->devfn), "iommu-map",
+                   "iommu-map-mask", &iommu_spec.np, iommu_spec.args);
+    if ( rc )
+        return (rc =3D=3D -ENODEV) ? 1 : rc;
+
+    rc =3D iommu_dt_xlate(dev, &iommu_spec, ops);
+    if ( rc < 0 )
+    {
+        iommu_fwspec_free(dev);
+        return -EINVAL;
+    }
+
+    return rc;
+}
+#endif /* CONFIG_HAS_PCI */
+
 int iommu_remove_dt_device(struct dt_device_node *np)
 {
     const struct iommu_ops *ops =3D iommu_get_ops();
diff --git a/xen/include/xen/device_tree.h b/xen/include/xen/device_tree.h
index 6dc1fb5159..3de7ff9085 100644
--- a/xen/include/xen/device_tree.h
+++ b/xen/include/xen/device_tree.h
@@ -947,6 +947,29 @@ int dt_count_phandle_with_args(const struct dt_device_=
node *np,
  */
 int dt_get_pci_domain_nr(struct dt_device_node *node);
=20
+/**
+ * dt_map_id - Translate an ID through a downstream mapping.
+ * @np: root complex device node.
+ * @id: device ID to map.
+ * @map_name: property name of the map to use.
+ * @map_mask_name: optional property name of the mask to use.
+ * @target: optional pointer to a target device node.
+ * @id_out: optional pointer to receive the translated ID.
+ *
+ * Given a device ID, look up the appropriate implementation-defined
+ * platform ID and/or the target device which receives transactions on tha=
t
+ * ID, as per the "iommu-map" and "msi-map" bindings. Either of @target or
+ * @id_out may be NULL if only the other is required. If @target points to
+ * a non-NULL device node pointer, only entries targeting that node will b=
e
+ * matched; if it points to a NULL value, it will receive the device node =
of
+ * the first matching target phandle, with a reference held.
+ *
+ * Return: 0 on success or a standard error code on failure.
+ */
+int dt_map_id(const struct dt_device_node *np, uint32_t id,
+              const char *map_name, const char *map_mask_name,
+              struct dt_device_node **target, uint32_t *id_out);
+
 struct dt_device_node *dt_find_node_by_phandle(dt_phandle handle);
=20
 #ifdef CONFIG_DEVICE_TREE_DEBUG
diff --git a/xen/include/xen/iommu.h b/xen/include/xen/iommu.h
index 832775754b..ebfada1d88 100644
--- a/xen/include/xen/iommu.h
+++ b/xen/include/xen/iommu.h
@@ -241,7 +241,8 @@ int iommu_dt_domain_init(struct domain *d);
 int iommu_release_dt_devices(struct domain *d);
=20
 /*
- * Helper to add master device to the IOMMU using generic IOMMU DT binding=
s.
+ * Helpers to add master device to the IOMMU using generic (PCI-)IOMMU
+ * DT bindings.
  *
  * Return values:
  *  0 : device is protected by an IOMMU
@@ -251,6 +252,19 @@ int iommu_release_dt_devices(struct domain *d);
  */
 int iommu_add_dt_device(struct dt_device_node *np);
=20
+/*
+ * Fills out the device's IOMMU fwspec with IOMMU ids from the DT.
+ * Ids are specified in the iommu-map property in the host bridge node.
+ * More information on the iommu-map property format can be found in
+ * Documentation/devicetree/bindings/pci/pci-iommu.txt from Linux.
+ *
+ * Return values:
+ *  0 : iommu_fwspec is filled out successfully.
+ * <0 : error while filling out the iommu_fwspec.
+ * >0 : IOMMU is not enabled/present or device is not connected to it.
+ */
+int iommu_add_dt_pci_sideband_ids(struct pci_dev *pdev);
+
 int iommu_do_dt_domctl(struct xen_domctl *domctl, struct domain *d,
                        XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl);
=20
@@ -286,6 +300,11 @@ static inline int iommu_release_dt_devices(struct doma=
in *d)
     return 0;
 }
=20
+static inline int iommu_add_dt_pci_sideband_ids(struct pci_dev *pdev)
+{
+    return -EOPNOTSUPP;
+}
+
 #endif /* HAS_PASSTHROUGH */
=20
 #endif /* HAS_DEVICE_TREE */
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Tue Apr 29 11:52:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 11:52:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.972140.1360571 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9jVY-0008W9-UD; Tue, 29 Apr 2025 11:52:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 972140.1360571; Tue, 29 Apr 2025 11:52: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 1u9jVY-0008UT-Il; Tue, 29 Apr 2025 11:52:16 +0000
Received: by outflank-mailman (input) for mailman id 972140;
 Tue, 29 Apr 2025 11:52: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=/zRN=XP=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1u9jVX-0008D2-FF
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 11:52:15 +0000
Received: from EUR02-DB5-obe.outbound.protection.outlook.com
 (mail-db5eur02on2060f.outbound.protection.outlook.com
 [2a01:111:f403:2608::60f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6467fffb-24f0-11f0-9eb4-5ba50f476ded;
 Tue, 29 Apr 2025 13:52:14 +0200 (CEST)
Received: from AS2PR03MB10110.eurprd03.prod.outlook.com
 (2603:10a6:20b:57a::22) by VI2PR03MB10907.eurprd03.prod.outlook.com
 (2603:10a6:800:270::15) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.31; Tue, 29 Apr
 2025 11:52:11 +0000
Received: from AS2PR03MB10110.eurprd03.prod.outlook.com
 ([fe80::52f0:1815:60c9:8873]) by AS2PR03MB10110.eurprd03.prod.outlook.com
 ([fe80::52f0:1815:60c9:8873%4]) with mapi id 15.20.8678.028; Tue, 29 Apr 2025
 11:52: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: 6467fffb-24f0-11f0-9eb4-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=s93HuYsABjg4jG/b5FGliZ5tAkj4MFZGwjBIYXcQxkQgaLMdzPtQjFkCHThSm92MLJqRJjkS4CdMJUuZ5cY6t3Xl1sg6zBB9fAA0rIeuIuY5bkg0wgY8qgiCD3lqVmKy72E0iCMFvbQGsS+7U/KjuwedwMV1Gnc1won/E/AeHle3aTkPXKP2ge5c/Qrl7y4tR+C2J5g/3OBUoTFF6YoJ3HbAUVjSQ7J/3+ihD7CtdKocQ7l0M5IEiJcYO3wH8RzDAHokG3zIKwCSm9KGYraqbVwvR8EV7ezlYwl8tO+OPBOs57ibID15kiJkRoIpMMUM9+uebqcUwsqPFZHLm/LGiw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=UsK+NDcogxQ4tQa4AM8elaoQkhxa4D6CDx3Ped4aQy8=;
 b=llGEaKpEaC0LrLOqq+tZfYwgc2SgRngBKKpuBSwPg0LSCMBr8RnZRZnGbxROflEWZsDm9lPth1rm5cFyTDGSx5q+cdA1iATKIVnMUOpFGryN2vmKmIfnvtuBczZib9bhfCeZSdElaqkHgU4ChYt+u2dCnsP2dQoIbVb2LnQgCDjPn7m3orH7ZE3GGIzTOfLV9N/nvUySLhWhz5Uws98AwOeVQ+/STJ7kQIRbGziZEv3ntdXFRacnR/Ge8OiEV0QyGHylJ/d+bYTTIGhzv4g7plhmy2xZrM9XEF1t5GQOfILtQK9arXUiICioy6ysfv50gzu6NzMWj5y5VgS8yOZh3Q==
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=UsK+NDcogxQ4tQa4AM8elaoQkhxa4D6CDx3Ped4aQy8=;
 b=Od46jul1vBUH9OT99nXRjwTcYM8m0v6vMxbJ/j6R541dzTYLoRrd0lmC+hsTmEIzNugVLfrWIdyh7qdO2irnmgMZbiHmiqMGrh8QNC6TnJr8phcc8iWQw2ks7ZMDTRgfJdQ1+/HRzQ6qVped+9M1IJTYp5jKfPNjjZwjmr7/+dSo5L+0cyss2mQyjtleRa0onkQ/kvVFbOKOeQEjmJ50swFu6K/V6rXGRJ3M9pdwLoF09qfl2mlYF7UJ8Tk0+cVku5D82gGMksOQwq7oWMQAvISVYxj0+xb6WDByz2WQ5UV9cfwFtyDgrvgJ/VoB+JmMaf2+2N+ikRQv1fsxm6waJQ==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Rahul Singh <rahul.singh@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>, Stewart Hildebrand
	<stewart.hildebrand@amd.com>, Mykyta Poturai <Mykyta_Poturai@epam.com>
Subject: [PATCH v10 7/7] xen/arm: Map ITS doorbell register to IOMMU page
 tables
Thread-Topic: [PATCH v10 7/7] xen/arm: Map ITS doorbell register to IOMMU page
 tables
Thread-Index: AQHbuP0kTLZqYRB+4keNMzg1ePGW7w==
Date: Tue, 29 Apr 2025 11:52:11 +0000
Message-ID:
 <c425567d767e30a7750c0f93cb618d3e3381e039.1745918678.git.mykyta_poturai@epam.com>
References: <cover.1745918678.git.mykyta_poturai@epam.com>
In-Reply-To: <cover.1745918678.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: AS2PR03MB10110:EE_|VI2PR03MB10907:EE_
x-ms-office365-filtering-correlation-id: c694266e-9722-4b48-2c34-08dd871446ed
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|376014|366016|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?lfj00ehfPkdbkxk9OoK9tepM8oAdvSyAhEYwytnYg2vsa1SBkXXqPXtTlV?=
 =?iso-8859-1?Q?7PetecgDRtF1PrZ0MMLYSi0cUfHmceJgmArquygdrqoHt0neClKHBXzMEH?=
 =?iso-8859-1?Q?LlxnmFbW2QxNlzWFyBh+dxNus4zhMHgsZ2uWyG3cDrDln8FRo+ZOgdYKX/?=
 =?iso-8859-1?Q?L0SYSwv2WB2UfnnkxhqY65V64Pf5LGpHBT/xWMbdQbEL5guObPd+ODkWRX?=
 =?iso-8859-1?Q?dxvHjdloH/7AlqvwO90DlNLgVQq7zPFZqd/Jmaw4NE8xtg++Ybhh9/xbst?=
 =?iso-8859-1?Q?mdXEy2bpzrVBxooQbeWPD6jnvp9/SnVLD6XzGMXu93sYgOfdCfrVMgJFys?=
 =?iso-8859-1?Q?p1SEGVee1IeF6Ab0kMf0gE/Gp1Uv92ZcWpOBkO0wfF6zODTIZhQh25ZN4P?=
 =?iso-8859-1?Q?fC2txtLDOwHKPaGfZp17dDgr3kb1dOKmJU15RirwjKGfyuRel9t94/Ewbg?=
 =?iso-8859-1?Q?WA24aB60TIBI8ORBhRjlzKr7VW41H8WI2dSQ9YFKOzyusJoRkUv5gHaq5c?=
 =?iso-8859-1?Q?NeI6A2vv6QfOwLfcqFU/Mpmijx9Nb2szUUhOUWsaf0yh9uVDwXDbA8OgY1?=
 =?iso-8859-1?Q?s4BBGYh0G1ckmkUygaXv1sAOLX3falvnwpJMxwwWCexslyMU9xE11wUZSx?=
 =?iso-8859-1?Q?iT3vCsw2Cl0vKP396wBbhnrpL2CtFcLGj4ygP1NPFhyO3U+N3llkMsM0UI?=
 =?iso-8859-1?Q?BEDxWAuvimT93ZziY4TG6Nnt9MODEOZsxerwnpFRbsz/KLK4CA6kpc7Yxp?=
 =?iso-8859-1?Q?AYomHF4n3/x6/04IMBT73QTmQdpuegv19VrcLF6iCfdJiOfAltkfwXt0pf?=
 =?iso-8859-1?Q?n5ziTU7Lj8jkunr45YLrEkpFVUtr181yDduqViYAiEhC1FSxdyeIbqptIr?=
 =?iso-8859-1?Q?Wj1UVbkoi6aik7iDbIMkb7wB0ql5VnQzLRvCu5+FBBUlhTABH06COqNoiS?=
 =?iso-8859-1?Q?xVHA4W5uij6LG8aU0ywfNC4ht9w2XL3FxhyVgLTmrDp/Dd72xX7sBYi09y?=
 =?iso-8859-1?Q?gmsf2zr54CiufMiSxBiDu93vxzSd8+FYadjXv1KT7pvqcLCXrppDy92Dqz?=
 =?iso-8859-1?Q?aT9LRsAWcbAyKu55Ge9987IXFD2Qmvk65dXsYFojPD0cMrBzapv6i3GmnN?=
 =?iso-8859-1?Q?VGLIOmu88lzCwZ7BoUoCHkDMioN+1uRkSjOUUPiEJWSmh/1fHDS71c0oeU?=
 =?iso-8859-1?Q?bHh0odOQr3eNdzzq3CDh531GvPjlJQw5h6cAXDs/AvvMyxIyLQH1L7szmM?=
 =?iso-8859-1?Q?LmxpdkE44/HAme6RwKSfj74eyVGlX1+YLt1R+NocXI7lCt8qB/OpE0NtQ1?=
 =?iso-8859-1?Q?KCCPDhWymQu4b83WdZz5Q1cxbVQetoQEgi2YWIkwoSPGy/0gr2yD3n8fGA?=
 =?iso-8859-1?Q?5sDImpAHRoB6wTXfzurmDlvSwljA6gkphjvlrMT0GK6pOFMiE2fVuVKw2H?=
 =?iso-8859-1?Q?L7xjl0F4XwPQx8f+W/GhjgKriv6Wy6cBrOf8QIkVCcB8LzWGtL9BCjFCet?=
 =?iso-8859-1?Q?I=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB10110.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?4wiCZH4DDf78jH5kt17khRWc+9BlmIaI/zuHQXHhoHoqhxfAcxwjJT7reQ?=
 =?iso-8859-1?Q?z7dp/g/ZJs4iZwXVz0UBoPww4m1Zi2zi+fVxy3FVcHVVg7TX/yB6gR8HD7?=
 =?iso-8859-1?Q?sGFzRXx3XlvDCd0JqpkXg74yuKcVQNvBHLZvqwroLmtVJz4C+9W9SItmw2?=
 =?iso-8859-1?Q?fe1qA4ioC0dnMPM+SxrkOmt2OQ3rRERm173wLROZt5d6Z32zhD7q1DrYAS?=
 =?iso-8859-1?Q?2mp5dHLPXkXWrL4d71z6P25VmQboqCD/pmFdZ8AV41t+RG1YqB+0NY9js9?=
 =?iso-8859-1?Q?SyoC1uYJrk0bD6fNFH1jS6Yc/z4YMhGWsQj7e83Xl9HWXGjMvwfRWY1UP/?=
 =?iso-8859-1?Q?h0F33DNC6CHF4635pdYJmJLgr9WQz8zkMatq5/iAHbyOnmrhCJFBy9rTgj?=
 =?iso-8859-1?Q?GP2M+5sm43hF8ihEl6GfgN7D7y0v0SjCDiAhLA7HuXjPMreoiSAX901lzK?=
 =?iso-8859-1?Q?uS7QVNtURJQMTECD+W4dhYoJO1yAhf87zjG4hcYG684STtXNbrD0G0Iy4j?=
 =?iso-8859-1?Q?sidEAVUGyCT3evnKk2J0uYKUjIyJ4hel06s4IKkZaKLCMu7W22oFdODT3L?=
 =?iso-8859-1?Q?PgdaoaFjerZ37kpPQeZn97nDgrNdc5gnxk5K9OYhkYxIJ2N3z7Ha5mN2mH?=
 =?iso-8859-1?Q?gC1Nf6Ymq/Reup+auYOfHY3RAlQRMyJgfYz8HhWqJ781zMG2G6BRRMs2cp?=
 =?iso-8859-1?Q?W8wt6e4PKwletk/F70mxE0HHEbbzRllnWgXHTE/AICnuitNZgPFJB3Kanj?=
 =?iso-8859-1?Q?JHqJ+69rDkgeBlNwjVrS57Q4HNHFNjgRnVCnWSRHiI0c88KyUyDK1Y4UBe?=
 =?iso-8859-1?Q?VXTySjqKam/ztBduqccl0QhFU1CC6HW1b46CnT9yhR8R191dbOpt2uZY3D?=
 =?iso-8859-1?Q?nfVsZyZITUXF3yHjwHRpgNYWm+rLmWf+F6B4XFIJMzfgQFPq7VmlVIvYsp?=
 =?iso-8859-1?Q?dgdeRvuqtDPB4DjbHfJuocdNzDsLpGJJ0lKGTwLp5VIZwomHxn4q53a+Qh?=
 =?iso-8859-1?Q?hdNfAioipUcms+JZ8CSDkiFZ0Vt5sWQ9Gd76wbMBND71H699dsEK3gdgSk?=
 =?iso-8859-1?Q?3poeLBMfatVxJBQOcBS1QJv8h1WTiVGarPEAkNjXZgU5FUzOE4AUDKnlAW?=
 =?iso-8859-1?Q?7DOwz5WqAnu7ATjYX5we3ys9AxDsD0cbEP2YDi+xQe3xb7zmAJhNGTfdtm?=
 =?iso-8859-1?Q?u9NMV3z2/UTOn2fY1WrC4VAgvaF/GobFuqS8PKRny2yUDqBs5GH8nwlHuM?=
 =?iso-8859-1?Q?e8+7vHDFiOc9CFsTSfistmR/hHUL3CmhJcDBm1J7PTJZdl1VdyUKkCivmP?=
 =?iso-8859-1?Q?JfUq3RVfW9YA8SP/a5qj+HRiocyyUgE/1I3NkZICN2MyNKHQsZ+CtNor+O?=
 =?iso-8859-1?Q?3gW65Hyj93+qRRrcI6RwjCeQ8KMyAKPozdIejQ9ONOP/5Nyy2nOG8Pp0DL?=
 =?iso-8859-1?Q?LEZofVk73/Dto6BUFw/H578n3nsm4YWlWy4xr75FbSvseLX5E9YbmGq5XJ?=
 =?iso-8859-1?Q?uCd4bFU5MTCMip/aEYMY1ry0HKE/4+/Zom3L7p9HGKC0zt18R8i9oRj42M?=
 =?iso-8859-1?Q?FmMaWa3cRJ6WsRFUY3GlZYyGrAew2WDMBd9rCcxlidr2pdjBYlvSMLV8Cu?=
 =?iso-8859-1?Q?VQRBNH7e+dWACOoeJhhQ61H7zr7go9cwmuM3KZHpGbJf+D3k4aC1d2Vg?=
 =?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: AS2PR03MB10110.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c694266e-9722-4b48-2c34-08dd871446ed
X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Apr 2025 11:52:11.4879
 (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: dR1Cawb0c3rYDcZZByDieUPVksrWZC/SQHaymI6y2mx2nB/qrg0qzs1asFH3fPHZ575fSY9YBFxgIxrSClgI8A==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI2PR03MB10907

From: Rahul Singh <rahul.singh@arm.com>

When ITS is enabled and PCI devices that are behind an SMMU generate an
MSI interrupt, SMMU fault will be observed as there is currently no
mapping in p2m table for the ITS translation register (GITS_TRANSLATER).

A mapping is required in the iommu page tables so that the device can
generate the MSI interrupt writing to the GITS_TRANSLATER register.

The GITS_TRANSLATER register is a 32-bit register, and there is nothing
else in a page containing it, so map that page.

Add new host_addr parameter to vgic_v3_its_init_virtual to prepare the
foundation for DomU MSI support where guest doorbell address can differ
for the host's. Note that the 1:1 check in arm_iommu_map_page remains
for now, as virtual ITSes are currently only created for hwdom where the
doorbell mapping is always 1:1.

Signed-off-by: Rahul Singh <rahul.singh@arm.com>
Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
---
This patch was originally picked up from [1], and commit description
loosely borrowed from [2].

Example SMMUv3 fault (qemu-system-aarch64 virt model), ITS base 0x8080000:

(XEN) SMMUv3: /smmuv3@9050000: event 0x10 received:
(XEN) SMMUv3: /smmuv3@9050000:  0x0000000800000010
(XEN) SMMUv3: /smmuv3@9050000:  0x0000008000000000
(XEN) SMMUv3: /smmuv3@9050000:  0x0000000008090040
(XEN) SMMUv3: /smmuv3@9050000:  0x0000000000000000

Example SMMUv2 fault (AMD/Xilinx Versal), ITS base 0xf9020000:

(XEN) smmu: /axi/smmu@fd800000: Unhandled context fault: fsr=3D0x402, iova=
=3D0xf9030040, fsynr=3D0x12, cb=3D0

v9->v10:
* map vITS doorbell to host ITS doorbell instead of always 1:1
* use simpler addr to dfn conversion

v8->v9:
* no changes

v7->v8:
* no changes

v6->v7:
* add tlb flush after mapping
* style: update formatting
* revert back to printk with XENLOG_G_ERR

v5->v6:
* switch to iommu_map() interface
* fix page_count argument
* style fixup
* use gprintk instead of printk
* add my Signed-off-by
* move to vgic_v3_its_init_virtual()

v4->v5:
* new patch

[1] https://lists.xenproject.org/archives/html/xen-devel/2023-07/msg00483.h=
tml
[2] https://gitlab.com/xen-project/people/bmarquis/xen-arm-poc/-/commit/623=
2a0d53377009bb7fbc3c3ab81d0153734be6b
---
 xen/arch/arm/vgic-v3-its.c | 24 +++++++++++++++++++++++-
 1 file changed, 23 insertions(+), 1 deletion(-)

diff --git a/xen/arch/arm/vgic-v3-its.c b/xen/arch/arm/vgic-v3-its.c
index c65c1dbf52..bc738614bb 100644
--- a/xen/arch/arm/vgic-v3-its.c
+++ b/xen/arch/arm/vgic-v3-its.c
@@ -1445,11 +1445,13 @@ static const struct mmio_handler_ops vgic_its_mmio_=
handler =3D {
 };
=20
 static int vgic_v3_its_init_virtual(struct domain *d, paddr_t guest_addr,
+                                    paddr_t host_addr,
                                     unsigned int devid_bits,
                                     unsigned int evid_bits)
 {
     struct virt_its *its;
     uint64_t base_attr;
+    paddr_t host_doorbell_addr =3D host_addr + ITS_DOORBELL_OFFSET;
=20
     its =3D xzalloc(struct virt_its);
     if ( !its )
@@ -1478,6 +1480,26 @@ static int vgic_v3_its_init_virtual(struct domain *d=
, paddr_t guest_addr,
=20
     register_mmio_handler(d, &vgic_its_mmio_handler, guest_addr, SZ_64K, i=
ts);
=20
+    if ( is_iommu_enabled(its->d) )
+    {
+        mfn_t mfn =3D maddr_to_mfn(host_doorbell_addr);
+        unsigned int flush_flags =3D 0;
+        int ret =3D iommu_map(its->d, _dfn(PFN_DOWN(its->doorbell_address)=
),
+                            mfn, 1, IOMMUF_writable, &flush_flags);
+
+        if ( ret < 0 )
+        {
+            printk(XENLOG_G_ERR
+                    "GICv3: Map ITS translation register for %pd failed.\n=
",
+                    its->d);
+            return ret;
+        }
+
+        ret =3D iommu_iotlb_flush(its->d, _dfn(PFN_DOWN(its->doorbell_addr=
ess)), 1, flush_flags);
+        if ( ret < 0 )
+            return ret;
+    }
+
     /* Register the virtual ITS to be able to clean it up later. */
     list_add_tail(&its->vits_list, &d->arch.vgic.vits_list);
=20
@@ -1522,7 +1544,7 @@ int vgic_v3_its_init_domain(struct domain *d)
              * base and thus doorbell address.
              * Use the same number of device ID and event ID bits as the h=
ost.
              */
-            ret =3D vgic_v3_its_init_virtual(d, hw_its->addr,
+            ret =3D vgic_v3_its_init_virtual(d, hw_its->addr, hw_its->addr=
,
                                            hw_its->devid_bits,
                                            hw_its->evid_bits);
             if ( ret )
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Tue Apr 29 11:52:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 11:52:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.972143.1360605 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9jVb-0000xq-F3; Tue, 29 Apr 2025 11:52:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 972143.1360605; Tue, 29 Apr 2025 11:52: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 1u9jVb-0000wH-8k; Tue, 29 Apr 2025 11:52:19 +0000
Received: by outflank-mailman (input) for mailman id 972143;
 Tue, 29 Apr 2025 11:52: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=/zRN=XP=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1u9jVZ-0008D2-Fe
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 11:52:17 +0000
Received: from EUR02-DB5-obe.outbound.protection.outlook.com
 (mail-db5eur02on2060f.outbound.protection.outlook.com
 [2a01:111:f403:2608::60f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6512c97b-24f0-11f0-9eb4-5ba50f476ded;
 Tue, 29 Apr 2025 13:52:15 +0200 (CEST)
Received: from AS2PR03MB10110.eurprd03.prod.outlook.com
 (2603:10a6:20b:57a::22) by VI2PR03MB10907.eurprd03.prod.outlook.com
 (2603:10a6:800:270::15) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.31; Tue, 29 Apr
 2025 11:52:10 +0000
Received: from AS2PR03MB10110.eurprd03.prod.outlook.com
 ([fe80::52f0:1815:60c9:8873]) by AS2PR03MB10110.eurprd03.prod.outlook.com
 ([fe80::52f0:1815:60c9:8873%4]) with mapi id 15.20.8678.028; Tue, 29 Apr 2025
 11:52: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: 6512c97b-24f0-11f0-9eb4-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Yvu+grspmGk5NrikJD4CTRXT9bVrCnfgXSGhCTNxCW4tWYLZlYxT0YGYR92x41blqudHIDc/6Ef/LXxmVVaHIfr4vabop6yPlbrj1CIk0DAfJAzkDBeyUgRcnixLZj9GixpKISBvLOWl8st2uw0RcnOmEs4quJC2j7GXQ+BbDbpoaxmue60q9Gtc65sGz/LhtF6AY+Wb9ckXvep+s/hjVlVHa/qzXomNzcyO9Qcjrx+yr7QNImi7CAPg1NPKgUpz0yyiR1BSZUm63dZYG2hmJlEe9ulEHNguu/XTcYWovx6E8Fa6Ea0F8a7gnJeoRgt8LrMbPsFVkAlYhiO7kBRE8Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=+9uJ62LiIUebfjmXvSn7Ffx03Ltqv8K5A3eIk0fgEV4=;
 b=IyMAkHF5AsEmboehvmFMAbEw4b/U8qA++Yab48sz+ceGNOV5mnSlKklZEmOT8VLzYnRQyMLdTy2ctGA2MWjB9PekRxtyw6zguAKnuSlBrT2VahBW6rWo9rcr4hmqo1G6pnl/cvnhxPZrq1g/Uu1X6BG6kmCRmWRRHxhL5Q3oj38CK/SiHbWsYPUQOaZIUpLVb0CR6LAhdloqgwmoHYqFeqZiVrIE/x6d+cJBrH4Z72z2iTLx+87/yZtNiUKMD/lrPxk6CpY7HhF+AtMPlSsy6OEX57Jd71csp81JPlQJMPmFGuYoBBd3i/q9/WwgMoGqJ03YopMEGAAVTzgH18ALNA==
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=+9uJ62LiIUebfjmXvSn7Ffx03Ltqv8K5A3eIk0fgEV4=;
 b=YsQYmEOIXeW2TPYz9m496Uigbx48+A0Sin9H9kpLLWVfi2EypoueNPLZSqoxsBgZUyg7Pa5yJ7RxBdUcxm55mp2rqJ+ngu3w5ZKuVtjlEaIoZ+pYTnjisoF9RnFNpGwtftdCojRzbbt49hbK8u7MqQgUNkaNdeB3htmlWGdn1Uip0RNo4Ywsq4WKKF+liVajIw8FcVsyUoCjcTb0KHQdjQuEfNBZQDqCRMleiVa1LdcsS4wkO96bs9bt+VJ139SGhRG8glrk/IKxcH3h3zFF8Pt5s2gnxNMtJgOhvOCshMdJpfWMUWrlrXA7LpsOEs0FXzbBDs2F66ZsMTioFtzE0g==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Rahul Singh <rahul.singh@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>, Stewart Hildebrand
	<stewart.hildebrand@amd.com>, Julien Grall <jgrall@amazon.com>
Subject: [PATCH v10 5/7] xen/arm: Fix mapping for PCI bridge mmio region
Thread-Topic: [PATCH v10 5/7] xen/arm: Fix mapping for PCI bridge mmio region
Thread-Index: AQHbuP0jWajlCsZZMkaNMgMdfvsIkQ==
Date: Tue, 29 Apr 2025 11:52:10 +0000
Message-ID:
 <bddde6fdccf7921e90b116edc53c6d57e1adad62.1745918678.git.mykyta_poturai@epam.com>
References: <cover.1745918678.git.mykyta_poturai@epam.com>
In-Reply-To: <cover.1745918678.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: AS2PR03MB10110:EE_|VI2PR03MB10907:EE_
x-ms-office365-filtering-correlation-id: 3d371cdf-bf66-4bab-fad0-08dd87144684
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|376014|366016|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?Mfc/s7ntL55RrDxs7YuuB/7i7U5mgmJeWw/iz4hALAkHJ+thYwlC/X8zgH?=
 =?iso-8859-1?Q?bW4PKNRG31qkARv6YIdAHAAHbJAyfYQuoroMMkvP5t/N3fWu9y1HiWPU0q?=
 =?iso-8859-1?Q?GFmrUvCy+nQ6V1PHsDHGVrVB9eGj49awzIL15oWG6BIDYRfHtPvQ4I0Xzv?=
 =?iso-8859-1?Q?9SKqZ9GdOFDKQKYdP6dOxcjz7C+W6+ymAmvxAOGg+9slqvwHM+XLNtFvpn?=
 =?iso-8859-1?Q?cIzSxAHLYgNljHuVgUrkv/z7iCD74X3O7RPqXDwNXICItM4ePuz1IXQolc?=
 =?iso-8859-1?Q?QkfAOEM4diqZc0kYBfO64JScmx+5JMgbi2h9mP6uHmgCOxKwhW0yF0QwEL?=
 =?iso-8859-1?Q?0F2BX3MTBMw0q0KFvVJERpWc3aKIEWKNQKuff4OXHv5pt68oHPHJQDtiiL?=
 =?iso-8859-1?Q?mKmd+98c7d6ULuK8uIDvGLnaJT0UBQrqeVNFip2omOSq1dpl5YzW8c+LlQ?=
 =?iso-8859-1?Q?3mJyz5JA0brsVNniVt8Y1atRTMsEAXKcMq1JktjtBIddckDcgN84vfGZnr?=
 =?iso-8859-1?Q?smR9JaN98mYw8tHKpFZroWXX9inZfee/ulKaRBG+EQJ9K1utN8GEdOqwfN?=
 =?iso-8859-1?Q?Q79Hp5YzEjPp4BLAhLjqrIphq7JAmkOlRyCErSQ7CimcS5MbvSK9T2+CMY?=
 =?iso-8859-1?Q?ia9OWJOAcg7L0JOhqn0BFsmNCWzbnmbRdW+pognT+PqOcdZqGWjDm4+m5p?=
 =?iso-8859-1?Q?mS6V+8fGT1oVTyItCsvEIEwiLQA+BK/o/joaEyDkLqEBhcXSWqw//BjIgZ?=
 =?iso-8859-1?Q?NeIPXN/cPxI2N+4HapbDtd1Vp91UhdTeQDpY3jS3UggG0lSi+rp4rlvnPO?=
 =?iso-8859-1?Q?xOjZEXDU8c1/qm910MH6rPyXL8G4xWNM+dXt7bIyddra6rr1l1d792wJ+3?=
 =?iso-8859-1?Q?DbyDWQsL68lanN+avmU032W4iF1x1fVU9Vi+fmI/XOaru1o/ab6M2snBy3?=
 =?iso-8859-1?Q?++eW/hPaVZ/rnH6cKAGk2BMimHhrCbe3EFw/ZjlaUNzA+4WyhmiOq2pUj3?=
 =?iso-8859-1?Q?XnSI5R4yhseu8bpPXH300MCm+vs59czDLECx6EVDkxnIB5zXqKAAZnjx4p?=
 =?iso-8859-1?Q?jDiBajR3iCTYbGrJ9VoTtB+7jDK7sx+OFOvgTxKoOXva+TaK/yopy/88dB?=
 =?iso-8859-1?Q?hW49M+vlYW4n1J7fVv4fLomuu2uTsiuxDuZpsu+g3a7d6ATr5u5c3wBY6a?=
 =?iso-8859-1?Q?O4JX9OLDmXtIuZzyxXXu3fZLrPapGo31r0s0YIAfB1R+HLxl/xYTi4WJ4c?=
 =?iso-8859-1?Q?n+R1kVNVq3JBKoqzQLMS/A+fR2ZvM1Q254v52QUq48Zo29Z8T8kObNkPmQ?=
 =?iso-8859-1?Q?ZenCysbiV5BXdSmTYXRyIwYvW+QMan5X2pH3/0aDq9zWOEirP4Opi7L+9P?=
 =?iso-8859-1?Q?1+No6ppZJ2LD5roL/Sk6KC6lIc3Yb2mkNzvnJidwhVig7x6qHRAJTEQwGC?=
 =?iso-8859-1?Q?yJE0udc/wHjYr4zi6uP4HgTeoYUVI1db2cjcCCwR6rK4EeMPAcjjdl640a?=
 =?iso-8859-1?Q?Y=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB10110.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?3oaxvxop5igNHiVmAbRqcKvDLupcg/nS+7NFpNVEKWngHRoPhEFMMc20AO?=
 =?iso-8859-1?Q?Ackw6KqrDrVZkkIvQvj+gGhc7qQCR+UYbtrX3T2jP1k3OEGjggRan1bMJa?=
 =?iso-8859-1?Q?MXQpMtVtYjNOFPPuxxdDEtXpuDtduck+wqA28/asVXqUv0HKeTblWzQk6s?=
 =?iso-8859-1?Q?tf4+C7HF4eeLQnOwqr71I8EODFlFay2rsmLSTOIPYCSNBBn87aGuMeYAxM?=
 =?iso-8859-1?Q?knYXoXBWXFWSH6n+Eix1p7qr/efFcRfl+XC0T01Bn129nYH1UIzcOMDuxE?=
 =?iso-8859-1?Q?SX41czFoSK2VSlCAYOtYicfinSGiItOSdqZnY8i7LysxteE33PKXMUOVST?=
 =?iso-8859-1?Q?vNSvoiiGKvGo568OoG/Ft/yLloM3B3Y4x9JriBkpNlwePJ3mOp8MEbtOOq?=
 =?iso-8859-1?Q?0z1oNvk1jSxrb1oatQhJBZQVMay7ghZaStmvtNORNS8b+76y5JHWUlivFJ?=
 =?iso-8859-1?Q?UFBoNzMpV8lhPPYVMpePonAJXKetlFzZHgacWJ7KnjhK+DLR5uctn3G+xj?=
 =?iso-8859-1?Q?fnitcSpcRtj+9mXO4J17B57QRa24xrruN4ml4/KXfoYgLlHY1g/e0VeiKs?=
 =?iso-8859-1?Q?zGcSxzM5AZa+66VHm7J1Da9T1EJp80mdPp9AKy9E2cGvNkiHd6Xt8skMvk?=
 =?iso-8859-1?Q?S1hCI4A+Li2x9FPQFc1S0NPzqo/l047U458uJvhWAgybR2PcxxL9WwYKSV?=
 =?iso-8859-1?Q?gh2KddV6DGoDqyMbEURg/5+AQnrFpS2vVNyIuFw49LbQu9/3Gb5PL4DyHf?=
 =?iso-8859-1?Q?CyTH77xkmrQqSVxBiB59K6E8V0M/bNrwy5EAyOko1rIZsHFTJNwt1KhM1S?=
 =?iso-8859-1?Q?TomNu0vHJXzqLrwL14T/8AxWtmg2ktrN2RHAhQxwxLdgWnMnb04Mgx7/Tv?=
 =?iso-8859-1?Q?oYJ4gR65bivpRsVZcOI59M/L2cO6ojrys3j5YkRxdOivHCWiuQAMOa3jqW?=
 =?iso-8859-1?Q?PQkvb3exzF9AQJAEW4u2AYEv3jadM7N3bXK3aYtks/gSHdDRasZ/uNp5UQ?=
 =?iso-8859-1?Q?9E/mGAIfdWXVkRR3G5YLlKK3ZiQZ2vDLlnXKDjlAZFPmTm4G+qy5pjkQT6?=
 =?iso-8859-1?Q?uqIKlBN4NIFBO3g1qD7oqiBGKn355NogabN5A0ylBiAID7nyRDm9Jpu8qp?=
 =?iso-8859-1?Q?W/CJ3uTfBu8eWOGc/eSiXoAhpfMzwuTfFb4pUdfiCUX5TK3M8F1YwRPjB2?=
 =?iso-8859-1?Q?T0eQSjGEL9v9szUk+SLqLEsfiOhfL5+zalpGGwvvGRcU5CznjeFzUTFT4F?=
 =?iso-8859-1?Q?oA/48ym2o8R8mjPK1OV0uPvj0tZWOtaqSg7RRX7lVsyKyv7yTGOVx2iP0O?=
 =?iso-8859-1?Q?We1fcUQJozJ4e6wAklf5UEHyZ/ymYjBEyfsrQqRXnd2I/zuMExIQgid5I5?=
 =?iso-8859-1?Q?8TadM1uuUl8PxI8Rq24aPx+PCgYLEhwzSoZaQqjmro5XdKZcF8AD2029FK?=
 =?iso-8859-1?Q?GC/tGq5v6nhgAoC8hwFh6+J+sOQH6q0x3qTMnhZ6XOi1+t3ewUPlGSesKQ?=
 =?iso-8859-1?Q?o8Y1L7WLFBNpngB4+8KWANSwiJl7sRvkEkVo6hr+EIBbADCBmTGSrgwajB?=
 =?iso-8859-1?Q?vG+ZFrU9OvW2YJrUtdNcngYQRlUY1YYXxb+9nLY8Cv1yCkRg1QsgLTAr/m?=
 =?iso-8859-1?Q?WGzu7A81LndoSo4i/t8ndAGMdQV5uogipRALtvcqTJ4deKF7AO2MPPYA?=
 =?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: AS2PR03MB10110.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 3d371cdf-bf66-4bab-fad0-08dd87144684
X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Apr 2025 11:52:10.8140
 (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: FagB5fBgoS8ZD0hczyJsI+lzhMoDQyMAYI90x9BWVGggDb9asw+77fYmysRQ9J48lGx7k/nsPziTnHxcHP0NHg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI2PR03MB10907

From: Rahul Singh <rahul.singh@arm.com>

Current code skip the mapping for PCI bridge MMIO region to dom0 when
pci_passthrough_enabled flag is set. Mapping should be skip when
has_vpci(d) is enabled for the domain, as we need to skip the mapping
only when VPCI handler are registered for ECAM.

Signed-off-by: Rahul Singh <rahul.singh@arm.com>
Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
Acked-by: Julien Grall <jgrall@amazon.com>
---
This patch was originally picked up from [1]
v9->v10:
* no change

v8->v9:
* no change

v7->v8:
* no change

v6->v7:
* add Julien's A-b

v5->v6:
* drop unrelated change in xen/arch/arm/domain_build.c:handle_linux_pci_dom=
ain()

v4->v5:
* new patch

changes since picking up from [1]:
* rebase on top of "dynamic node programming using overlay dtbo" series
* replace !is_pci_passthrough_enabled() check with !IS_ENABLED(CONFIG_HAS_P=
CI)
  instead of removing

[1] https://lists.xenproject.org/archives/html/xen-devel/2023-07/msg00483.h=
tml
---
 xen/arch/arm/device.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/arch/arm/device.c b/xen/arch/arm/device.c
index 5e1c1cc326..11523750ae 100644
--- a/xen/arch/arm/device.c
+++ b/xen/arch/arm/device.c
@@ -268,7 +268,7 @@ int handle_device(struct domain *d, struct dt_device_no=
de *dev, p2m_type_t p2mt,
         .d =3D d,
         .p2mt =3D p2mt,
         .skip_mapping =3D !own_device ||
-                        (is_pci_passthrough_enabled() &&
+                        (has_vpci(d) &&
                         (device_get_class(dev) =3D=3D DEVICE_PCI_HOSTBRIDG=
E)),
         .iomem_ranges =3D iomem_ranges,
         .irq_ranges =3D irq_ranges
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Tue Apr 29 11:52:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 11:52:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.972144.1360615 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9jVc-0001ET-Ev; Tue, 29 Apr 2025 11:52:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 972144.1360615; Tue, 29 Apr 2025 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 1u9jVc-0001C7-2t; Tue, 29 Apr 2025 11:52:20 +0000
Received: by outflank-mailman (input) for mailman id 972144;
 Tue, 29 Apr 2025 11:52: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=/zRN=XP=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1u9jVa-0008D2-G1
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 11:52:18 +0000
Received: from EUR02-DB5-obe.outbound.protection.outlook.com
 (mail-db5eur02on2060f.outbound.protection.outlook.com
 [2a01:111:f403:2608::60f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 655d2a86-24f0-11f0-9eb4-5ba50f476ded;
 Tue, 29 Apr 2025 13:52:16 +0200 (CEST)
Received: from AS2PR03MB10110.eurprd03.prod.outlook.com
 (2603:10a6:20b:57a::22) by VI2PR03MB10907.eurprd03.prod.outlook.com
 (2603:10a6:800:270::15) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.31; Tue, 29 Apr
 2025 11:52:10 +0000
Received: from AS2PR03MB10110.eurprd03.prod.outlook.com
 ([fe80::52f0:1815:60c9:8873]) by AS2PR03MB10110.eurprd03.prod.outlook.com
 ([fe80::52f0:1815:60c9:8873%4]) with mapi id 15.20.8678.028; Tue, 29 Apr 2025
 11:52: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: 655d2a86-24f0-11f0-9eb4-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=weL9sdx/oslpPBb0TbLETZJkAj/szeMQ1kPGn9iQZeHQcS4WPM/66JL2BVDx4blGDnodcCobuF0Npzk5264zHWZTQCcQTV9A3KfaYlFnS055criCFC8/sn6iAbw8jUCs4CPGuwY7v9bEAwaFKLN8s+VRugT7bnz8GvzfxhILcs4J8WJGlB8snRZ8Ajt8pmtdziP7JlQzILUY+txrO/M8fkcMI0qrhiMBESwkXaPjogjps8o5gsWbQQqIVD0vsxXblp/dHBwRpp4zZJ24qFb7AX4pqAk8FkCqAvxFgH9HSIADO/Tq49aTBcmwr/a7aQCJVNHs/F46HSYGtbpY7ccZTA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=v+0XDP9MZSidacSS96rHnJtqZQG1BjZP+hiM8PBTD6s=;
 b=QMEOebATYopj0K9u60XKK8Veoh6yYok4TVfJvY21t3IzWB/dFsnYFoIybNFAiEG3S7Uq1Hg3iKvSExuOLX5O9V4MB2NCGq60kDp1f1ehlVR1wUzjtG7IHatyXn+ThaNwUKClGvt5npLN9bNKGv3DG78AIjrpTNLFKO2lZ7WYXOTS1hFjXI3WKYeBu8/BwiJ/P5H6cG2dPlKsvLfgh2jAPgCGD0yQeEZI2WKNjXMhnDNSA2Sbj8Slk4J+s2bqtgmZjv0rrGbSZ5XXmWoTJBnytwoCBOP5eOBeQC1ePLaWem019P6HdYv/kvAW6rwsbrDHb1fjcMY9rjzRXG2pog0+7w==
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=v+0XDP9MZSidacSS96rHnJtqZQG1BjZP+hiM8PBTD6s=;
 b=FS8UcOZLkqOyv4ubeidHCbGwnu8FIAfKodVm8nj1kWWpGfY/a48zmucIVtBe1YAjkDI7brC1YExI5uPonS0xBuinnTM9ajsVWZhBFp7pleYK4wlUY5IPNFAV6q5ZgiEdTZ9KCb/1iJ95VKQwefCOgk34ARjy5ZA6Utz6AVwGbdPTDwJjcehiSl7A5Y1IbZCzFdks+Nb69LBWI4IdRqkOo/qhKSZb/WyLgI0028nbk7BEFWTfaeEcBpLrvalS01YIAy1XyPf+iQ3nxjGERWAdsH/+jlIGGNy4H3/Cy7Ox/K+qKaEkdIfp1B/DeHAT41H0970UpCC4yHxCyN7PSGnekw==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>, Julien Grall
	<julien@xen.org>, Rahul Singh <rahul.singh@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>,
	Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>, Stewart Hildebrand
	<stewart.hildebrand@amd.com>, Mykyta Poturai <Mykyta_Poturai@epam.com>
Subject: [PATCH v10 3/7] xen/arm: smmuv2: Add PCI devices support for SMMUv2
Thread-Topic: [PATCH v10 3/7] xen/arm: smmuv2: Add PCI devices support for
 SMMUv2
Thread-Index: AQHbuP0jnTAzHmn7sUu9THz0sjqD/g==
Date: Tue, 29 Apr 2025 11:52:09 +0000
Message-ID:
 <4874d41630f6bb3e7b688bfa332004558bb543b9.1745918678.git.mykyta_poturai@epam.com>
References: <cover.1745918678.git.mykyta_poturai@epam.com>
In-Reply-To: <cover.1745918678.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: AS2PR03MB10110:EE_|VI2PR03MB10907:EE_
x-ms-office365-filtering-correlation-id: 18bd39b7-49d0-49b3-5638-08dd8714460c
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|376014|366016|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?ac6pgiJiWknPCQW4Zctksl+mEInLgjFwtzA5nXhLHKT74MsGuK5MEuHBi8?=
 =?iso-8859-1?Q?IZIE45VwqzmbIItOAMTLkRcZceZXj6uqoDs7FucOYhlzBxSj/uS5Lrg7g+?=
 =?iso-8859-1?Q?MybK9ilaSvQytR6Ij04E2BC06jmZZ9I/2hueUQ9jch+X7x4z/77Q4Lw+7y?=
 =?iso-8859-1?Q?qCqft8E13qQN5392Eo8ZAjk0gi6X7MqoznfFhwvGACMVaHdL0BXm1NP2vq?=
 =?iso-8859-1?Q?s3DUoQuaxywDaAdWFms0RG3zGXiz/tyKaUpPyyTJLDelqYDfJut1Ku/vkO?=
 =?iso-8859-1?Q?9Jp8jZS/aUo6hf00e0ofUEAPxdtYkP/gCqKgmkc10G78QzlGUoaC6w9HEN?=
 =?iso-8859-1?Q?rvk4466fkMbfk89c70AEKXBySQpywWYoS+qIEWsRqkb+7SSVE47G2kSV+M?=
 =?iso-8859-1?Q?HuABX6q7xIZiQk+HTK7OT9srvg+q17QNpjpAR7jVfs/h46kNbFiHot2tF5?=
 =?iso-8859-1?Q?gdGmWNt2xh8KBhuLRFRDbwqVmB1kBiek+Gi6lHC4ZGOJtZ4fydlSMmcf1h?=
 =?iso-8859-1?Q?fJ17NRFIpBUVEYSO+QA8A9jtGUTxqaYh2vns89YpLCG3ztZsi7uhdtaBtv?=
 =?iso-8859-1?Q?LmMH8LNTYFKV5gI9ieUmJwn7sHgTfrW4/52mYDAt5ybftyBE93l9fpLHY9?=
 =?iso-8859-1?Q?2PPJKV/nkcK6o4cdVqUoNlZjleheYJHlXsOsNqxjkHptdufvNiofBtT8ke?=
 =?iso-8859-1?Q?IOrv64ftonCaQ9PSN+z74tUITF0p5ey+1kSjNOHySZsNUxe3GCkydotqKQ?=
 =?iso-8859-1?Q?hg5AuIHy4jKI3eKJTMbIJdz75ipwV3Dh6ZxGImj7Ekbtws0s8247xJpy6n?=
 =?iso-8859-1?Q?LvMjOXiZ0DQzvaDBbQqgtDJCGrDdGQ4SB1D6zeLo2WAiAaY/FJQJaLGlFC?=
 =?iso-8859-1?Q?v5x8PPgiOBuHgucGP19HL6hkeMbFZ40wfds/kMRXdcp0cCN4BnoN1BmVxr?=
 =?iso-8859-1?Q?8P5EXcWGGOpuz6ePkTi7Xy2yQdGhsmZmBYXTGoOcMF1eImYy3Lm2tsvgG3?=
 =?iso-8859-1?Q?iHyuLqHis+ZEsV9HzXLnXyhkUXmDxt5362gI+Qd+VcZ8IwrQKtjNA1xPs4?=
 =?iso-8859-1?Q?DolT3jsZ5njvLTp0S2K/p72Ldgm/PPlINUqc0WTfjEvLqz/SHwW9nWcjb5?=
 =?iso-8859-1?Q?awAizI4XY6k6LD09jYm9egRFcxcyFJwfG/AkmccQC03FDf1L+Da5a2L78K?=
 =?iso-8859-1?Q?iDaJ1YWhGRfmE39TE4zb2sH3EpY+4u1VLWmPT88SiZEuzqucpdwo2a0hDA?=
 =?iso-8859-1?Q?9UHfMSxgJxwA1D8bLaygMW+P6l1TlM9OZtde5XKQ780DTCtrD0gDpHcRsm?=
 =?iso-8859-1?Q?HE3Aaf6ysBrGdeavlhdizdlG2LvSQb2ntRXwFCcmx4qI7Jc+9VHFKbPzVR?=
 =?iso-8859-1?Q?KARgufDXLp19J//5mWVXeLwlQM43Ysmh+rBx1p5r9wA87rShw92tYbrCy5?=
 =?iso-8859-1?Q?+LvSeR9SG9/3ri5OXJLjZXHCo3zzOC+xMeGYfXSpjpmzTnubtDklDcp/eE?=
 =?iso-8859-1?Q?vqWRWcxWf9ZqeVWXlsddpo?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB10110.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?VeUGyN4IxkWvb7h2hhV9OnsU0cUOo03q+yxsQ2S+0yRlN+3j1dXhMFFqND?=
 =?iso-8859-1?Q?6xM5DoCvqAf2P3zKzOJzjF5b+LsfyPp/NlS9DywD/yS8NxGPZwKq/9LOC9?=
 =?iso-8859-1?Q?UAijr2JW+8N6MWBqRX16OgoMZ/AZnygMjtfG8e5gzwVV/OwMJLW8JZmN69?=
 =?iso-8859-1?Q?nzmJbZW/X40eG4IZltQ4Q1sz4epuJOCwhq1iUtzGPsAXBlWZxkhCcsK3f1?=
 =?iso-8859-1?Q?rigj9v//tOTSDjDjdI0sARuXPu1xt1zpxDlS1H56Yy3exsvvFWMTuvM6Hm?=
 =?iso-8859-1?Q?rBoVEqQhQtpHmnzht2k1e+YIainOKbnZuiX1EmLzRdzAEqj/AbAAGM2eYu?=
 =?iso-8859-1?Q?vB13QIUqjTzsuXhujAgqGC4NqlZbBvF2Mm9XUOQBOLvoyXOSo23b3DAZH1?=
 =?iso-8859-1?Q?hwXuIbLxN4ZNnOLxBZOZbvVtc7XPP9QJ5JAQRdFQLeqdG2JPfpBHg8Z/mP?=
 =?iso-8859-1?Q?HZ/GKXkNh3HCge3zggaplFzMB4uIgZes6JKdCaHt6tO2X5nJZl1swRZjP6?=
 =?iso-8859-1?Q?IOqr4I8hHL7555CWVsJZXvzHSIiUIbbVxM63fwJEwmDzUf/B3ulTs8vG+L?=
 =?iso-8859-1?Q?5euEzWBWjEIhvBDdNHV5F3RT7eDFg09kIwtncbYX6sNdtwaZPgzXcRSn1A?=
 =?iso-8859-1?Q?fdG/5fosthwzP6sEfwQGsDhTlI5nCx56KIpk/QOldDCyoT7hIs83GwJBXY?=
 =?iso-8859-1?Q?8/A/wqb7NqZWJNgQut0BE7/MnCPjIzDfRtrke1bu9yz7ijG7wpRzVMDS/1?=
 =?iso-8859-1?Q?geMar5MaFj2lRlqdM8hN5uUzkBqadKR04unyVOwKBB+lsNMFFKDBkIHjha?=
 =?iso-8859-1?Q?vVtK/XfXiUHTeRzwvipXkYBZhusKB0guB6uv7iSVBqMINHtceYBAqbCizj?=
 =?iso-8859-1?Q?XxZwIQgzMUwEmmX8uvkmjX79cbHcMda/44Ay725/rOOAmAxUqI59W1sGG2?=
 =?iso-8859-1?Q?ZTFFavnKh79YW0A0dqGYuRMI9KlLRi8kf2sD6ObhrAlGqwQP0RSfDQjuJ2?=
 =?iso-8859-1?Q?NBtBoV5GS01ztq+Gxqd9A5MT/ECwybePU3u0aq1Cwtu8hdxD1G1TTRlRS8?=
 =?iso-8859-1?Q?1J0+UM6Se5ycZMke7gDLxblsThoi1yAMazxKRcAh8GvuiTMXTdPv5w5GFM?=
 =?iso-8859-1?Q?UEAOxaLHklMCq9EK1h1NTV5gtcOGbOog0qGST3f40bIC0HclT5+puD9ElA?=
 =?iso-8859-1?Q?hAzB5lvfnN1SzrEAB/kPIvu5Z6/BSjZdBgWRmGXo8GQdhOXgkYp4HveFWQ?=
 =?iso-8859-1?Q?PKWK58xZgk2eJOTuGLYFWkktlZJPTJZWHtfcuJ1+Sabyt8o/OTKTHyMMZ2?=
 =?iso-8859-1?Q?JSWmdzUSB1mZkuSjjUWd1IJBl9GXZ78J7y7A4WMIcUA+Tf/W2DoRIlSBgy?=
 =?iso-8859-1?Q?IBbroey+ILzi2qkZGMLjpUQdGiKnR+aLVwX1vQQXp6RPyVXNRtm6IG8LFy?=
 =?iso-8859-1?Q?84zLgIPsECMRMxXKJgOL/YtWdLdOI12Hwrj9+ZNV1o858G0uwNkeQ46DIR?=
 =?iso-8859-1?Q?gQuCoLQaCWZjjA298pB234KMs0a0DBTcRSaWoRF9F6kRLsNfsyhzudH/v7?=
 =?iso-8859-1?Q?O0XfDD5eLSWAqhAKZSIAQYRA6Bri2HunCOkkfDJ+bmjB/OiQbQFEMykRjx?=
 =?iso-8859-1?Q?bYCtB+qZvSSiwMTPUmUU1dESPaOBCWrlR09G80x98OCPenRH/hv4oRsA?=
 =?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: AS2PR03MB10110.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 18bd39b7-49d0-49b3-5638-08dd8714460c
X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Apr 2025 11:52:10.0307
 (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: FCeNlNjInwvdps9ErRDL/7cCl6ZkNzI0yPNcbh2Ecr/nuf9KG1znejiDg14+7F8sZ8URcSsn9TShZ+eCEIDSYQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI2PR03MB10907

From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

Implement support for PCI devices in the SMMU driver. Make arm_smmu_master
structure to hold a pointer to the device to allow it to hold PCI devices.
Trigger iommu-map parsing when new PCI device is added. Add checks to
assign/deassign functions to ensure PCI devices are handled correctly.
Implement basic quarantining.

All pci devices are automatically assigned to hardware domain if it exists
to ensure it can probe them.

TODO:
Implement scratch page quarantining support.

Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
---
v9->v10:
* remove unused code
* return on error in arm_smmu_dt_add_device_generic

v8->v9:
* no change

v7->v8:
* no change

v6->v7:
* use d->pci_lock in arm_smmu_assign_dev()
* remove !is_hardware_domain and pdev->domain =3D=3D d checks in assign to
  support future dom0less use case when dom0 is using vPCI
* remove stale todo in dev_get_dev_node
* don't print ""
* remove redundant dt_device_is_protected check
* remove assign/deassing prints
* change assign logic to remove reassign reimplementation
* check if pdev->domain exists before assigning to it
* explain pdev->devfn check
* make reassign check stricter and update comment

v5->v6:
* check for hardware_domain =3D=3D NULL (dom0less test case)
* locking: assign pdev->domain before list_add()

v4->v5:
* assign device to pdev->domain (usually dom0) by default in add_device() h=
ook
* deassign from hwdom
* rebase on top of ("dynamic node programming using overlay dtbo") series
* remove TODO in comment about device prints
* add TODO regarding locking
* fixup after dropping ("xen/arm: Move is_protected flag to struct device")

v3->v4:
* add new device_is_protected check in add_device hook to match SMMUv3 and
  IPMMU-VMSA drivers

v2->v3:
* invoke iommu_add_pci_sideband_ids() from add_device hook

v1->v2:
* ignore add_device/assign_device/reassign_device calls for phantom functio=
ns
  (i.e. devfn !=3D pdev->devfn)

downstream->v1:
* wrap unused function in #ifdef 0
* remove the remove_device() stub since it was submitted separately to the =
list
  [XEN][PATCH v6 12/19] xen/smmu: Add remove_device callback for smmu_iommu=
 ops
  https://lists.xenproject.org/archives/html/xen-devel/2023-05/msg00204.htm=
l
* arm_smmu_(de)assign_dev: return error instead of crashing system
* update condition in arm_smmu_reassign_dev
* style fixup
* add && !is_hardware_domain(d) into condition in arm_smmu_assign_dev()

(cherry picked from commit 0c11a7f65f044c26d87d1e27ac6283ef1f9cfb7a from
 the downstream branch spider-master from
 https://github.com/xen-troops/xen.git)
---
 xen/drivers/passthrough/arm/smmu.c | 224 ++++++++++++++++++-----------
 1 file changed, 143 insertions(+), 81 deletions(-)

diff --git a/xen/drivers/passthrough/arm/smmu.c b/xen/drivers/passthrough/a=
rm/smmu.c
index 0f8d47dc98..b9f2a33815 100644
--- a/xen/drivers/passthrough/arm/smmu.c
+++ b/xen/drivers/passthrough/arm/smmu.c
@@ -120,11 +120,21 @@ enum irqreturn {
=20
 typedef enum irqreturn irqreturn_t;
=20
-/* Device logger functions
- * TODO: Handle PCI
- */
-#define dev_print(dev, lvl, fmt, ...)						\
-	 printk(lvl "smmu: %s: " fmt, dt_node_full_name(dev_to_dt(dev)), ## __VA_=
ARGS__)
+/* Device logger functions */
+#ifndef CONFIG_HAS_PCI
+#define dev_print(dev, lvl, fmt, ...)    \
+    printk(lvl "smmu: %s: " fmt, dev_name(dev), ## __VA_ARGS__)
+#else
+#define dev_print(dev, lvl, fmt, ...) ({                                \
+    if ( !dev_is_pci((dev)) )                                           \
+        printk(lvl "smmu: %s: " fmt, dev_name((dev)), ## __VA_ARGS__);  \
+    else                                                                \
+    {                                                                   \
+        struct pci_dev *pdev =3D dev_to_pci((dev));                       =
\
+        printk(lvl "smmu: %pp: " fmt, &pdev->sbdf, ## __VA_ARGS__);     \
+    }                                                                   \
+})
+#endif
=20
 #define dev_dbg(dev, fmt, ...) dev_print(dev, XENLOG_DEBUG, fmt, ## __VA_A=
RGS__)
 #define dev_notice(dev, fmt, ...) dev_print(dev, XENLOG_INFO, fmt, ## __VA=
_ARGS__)
@@ -172,20 +182,6 @@ static void __iomem *devm_ioremap_resource(struct devi=
ce *dev,
 #define IOMMU_FAULT_READ	0
 #define IOMMU_FAULT_WRITE	1
=20
-/*
- * Xen: PCI functions
- * TODO: It should be implemented when PCI will be supported
- */
-#define to_pci_dev(dev)	(NULL)
-static inline int pci_for_each_dma_alias(struct pci_dev *pdev,
-					 int (*fn) (struct pci_dev *pdev,
-						    u16 alias, void *data),
-					 void *data)
-{
-	BUG();
-	return 0;
-}
-
 /* Xen: misc */
 #define PHYS_MASK_SHIFT		PADDR_BITS
=20
@@ -619,7 +615,7 @@ struct arm_smmu_master_cfg {
 	for (i =3D 0; idx =3D (cfg)->smendx[i], (i) < (num); ++(i))
=20
 struct arm_smmu_master {
-	struct device_node		*of_node;
+	struct device			*dev;
 	struct rb_node			node;
 	struct arm_smmu_master_cfg	cfg;
 };
@@ -711,7 +707,7 @@ arm_smmu_get_fwspec(struct arm_smmu_master_cfg *cfg)
 {
 	struct arm_smmu_master *master =3D container_of(cfg,
 			                                      struct arm_smmu_master, cfg);
-	return dev_iommu_fwspec_get(&master->of_node->dev);
+	return dev_iommu_fwspec_get(master->dev);
 }
=20
 static void parse_driver_options(struct arm_smmu_device *smmu)
@@ -730,21 +726,11 @@ static void parse_driver_options(struct arm_smmu_devi=
ce *smmu)
=20
 static struct device_node *dev_get_dev_node(struct device *dev)
 {
-#if 0 /* Xen: TODO: Add support for PCI */
-	if (dev_is_pci(dev)) {
-		struct pci_bus *bus =3D to_pci_dev(dev)->bus;
-
-		while (!pci_is_root_bus(bus))
-			bus =3D bus->parent;
-		return bus->bridge->parent->of_node;
-	}
-#endif
-
 	return dev->of_node;
 }
=20
 static struct arm_smmu_master *find_smmu_master(struct arm_smmu_device *sm=
mu,
-						struct device_node *dev_node)
+						struct device *dev)
 {
 	struct rb_node *node =3D smmu->masters.rb_node;
=20
@@ -753,9 +739,9 @@ static struct arm_smmu_master *find_smmu_master(struct =
arm_smmu_device *smmu,
=20
 		master =3D container_of(node, struct arm_smmu_master, node);
=20
-		if (dev_node < master->of_node)
+		if (dev < master->dev)
 			node =3D node->rb_left;
-		else if (dev_node > master->of_node)
+		else if (dev > master->dev)
 			node =3D node->rb_right;
 		else
 			return master;
@@ -790,9 +776,9 @@ static int insert_smmu_master(struct arm_smmu_device *s=
mmu,
 			=3D container_of(*new, struct arm_smmu_master, node);
=20
 		parent =3D *new;
-		if (master->of_node < this->of_node)
+		if (master->dev < this->dev)
 			new =3D &((*new)->rb_left);
-		else if (master->of_node > this->of_node)
+		else if (master->dev > this->dev)
 			new =3D &((*new)->rb_right);
 		else
 			return -EEXIST;
@@ -824,28 +810,30 @@ static int arm_smmu_dt_add_device_legacy(struct arm_s=
mmu_device *smmu,
 	struct arm_smmu_master *master;
 	struct device_node *dev_node =3D dev_get_dev_node(dev);
=20
-	master =3D find_smmu_master(smmu, dev_node);
+	master =3D find_smmu_master(smmu, dev);
 	if (master) {
 		dev_err(dev,
-			"rejecting multiple registrations for master device %s\n",
-			dev_node->name);
+			"rejecting multiple registrations for master device\n");
 		return -EBUSY;
 	}
=20
 	master =3D devm_kzalloc(dev, sizeof(*master), GFP_KERNEL);
 	if (!master)
 		return -ENOMEM;
-	master->of_node =3D dev_node;
+	master->dev =3D dev;
=20
-	/* Xen: Let Xen know that the device is protected by an SMMU */
-	dt_device_set_protected(dev_node);
+	if ( !dev_is_pci(dev) )
+	{
+		/* Xen: Let Xen know that the device is protected by an SMMU */
+		dt_device_set_protected(dev_node);
+	}
=20
 	for (i =3D 0; i < fwspec->num_ids; ++i) {
 		if (!(smmu->features & ARM_SMMU_FEAT_STREAM_MATCH) &&
 		     (fwspec->ids[i] >=3D smmu->num_mapping_groups)) {
 			dev_err(dev,
-				"stream ID for master device %s greater than maximum allowed (%d)\n",
-				dev_node->name, smmu->num_mapping_groups);
+				"SMMU stream ID %d is greater than maximum allowed (%d)\n",
+				fwspec->ids[i], smmu->num_mapping_groups);
 			return -ERANGE;
 		}
 		master->cfg.smendx[i] =3D INVALID_SMENDX;
@@ -860,7 +848,7 @@ static int arm_smmu_dt_remove_device_legacy(struct arm_=
smmu_device *smmu,
 	struct device_node *dev_node =3D dev_get_dev_node(dev);
 	int ret;
=20
-	master =3D find_smmu_master(smmu, dev_node);
+	master =3D find_smmu_master(smmu, dev);
 	if (master =3D=3D NULL) {
 		dev_err(dev,
 			"No registrations found for master device %s\n",
@@ -872,8 +860,9 @@ static int arm_smmu_dt_remove_device_legacy(struct arm_=
smmu_device *smmu,
 	if (ret)
 		return ret;
=20
-	/* Protected by dt_host_lock and dtdevs_lock as caller holds these locks.=
 */
-	dev_node->is_protected =3D false;
+	if ( !dev_is_pci(dev) )
+		/* Protected by dt_host_lock and dtdevs_lock as caller holds these locks=
. */
+		dev_node->is_protected =3D false;
=20
 	kfree(master);
 	return 0;
@@ -902,6 +891,12 @@ static int register_smmu_master(struct arm_smmu_device=
 *smmu,
 					     fwspec);
 }
=20
+/* Forward declaration */
+static int arm_smmu_assign_dev(struct domain *d, u8 devfn,
+			       struct device *dev, u32 flag);
+static int arm_smmu_deassign_dev(struct domain *d, uint8_t devfn,
+				 struct device *dev);
+
 /*
  * The driver which supports generic IOMMU DT bindings must have this
  * callback implemented.
@@ -926,6 +921,25 @@ static int arm_smmu_dt_add_device_generic(u8 devfn, st=
ruct device *dev)
 {
 	struct arm_smmu_device *smmu;
 	struct iommu_fwspec *fwspec;
+	int ret;
+
+#ifdef CONFIG_HAS_PCI
+	if ( dev_is_pci(dev) )
+	{
+		struct pci_dev *pdev =3D dev_to_pci(dev);
+		int ret;
+
+		/* Ignore calls for phantom functions */
+		if ( devfn !=3D pdev->devfn )
+			return 0;
+
+		ret =3D iommu_add_pci_sideband_ids(pdev);
+		if ( ret < 0 ) {
+			iommu_fwspec_free(dev);
+			return ret;
+		}
+	}
+#endif
=20
 	fwspec =3D dev_iommu_fwspec_get(dev);
 	if (fwspec =3D=3D NULL)
@@ -935,7 +949,25 @@ static int arm_smmu_dt_add_device_generic(u8 devfn, st=
ruct device *dev)
 	if (smmu =3D=3D NULL)
 		return -ENXIO;
=20
-	return arm_smmu_dt_add_device_legacy(smmu, dev, fwspec);
+	ret =3D arm_smmu_dt_add_device_legacy(smmu, dev, fwspec);
+	if ( ret )
+		return ret;
+
+#ifdef CONFIG_HAS_PCI
+	if ( dev_is_pci(dev) )
+	{
+		struct pci_dev *pdev =3D dev_to_pci(dev);
+
+		/*
+		 * During PHYSDEVOP_pci_device_add, Xen does not assign the
+		 * device, so we must do it here.
+		 */
+		if ( pdev->domain )
+			ret =3D arm_smmu_assign_dev(pdev->domain, devfn, dev, 0);
+	}
+#endif
+
+	return ret;
 }
=20
 static int arm_smmu_dt_xlate_generic(struct device *dev,
@@ -958,11 +990,10 @@ static struct arm_smmu_device *find_smmu_for_device(s=
truct device *dev)
 {
 	struct arm_smmu_device *smmu;
 	struct arm_smmu_master *master =3D NULL;
-	struct device_node *dev_node =3D dev_get_dev_node(dev);
=20
 	spin_lock(&arm_smmu_devices_lock);
 	list_for_each_entry(smmu, &arm_smmu_devices, list) {
-		master =3D find_smmu_master(smmu, dev_node);
+		master =3D find_smmu_master(smmu, dev);
 		if (master)
 			break;
 	}
@@ -2054,6 +2085,7 @@ static bool arm_smmu_capable(enum iommu_cap cap)
 }
 #endif
=20
+#if 0 /* Not used */
 static int __arm_smmu_get_pci_sid(struct pci_dev *pdev, u16 alias, void *d=
ata)
 {
 	*((u16 *)data) =3D alias;
@@ -2064,6 +2096,7 @@ static void __arm_smmu_release_pci_iommudata(void *da=
ta)
 {
 	kfree(data);
 }
+#endif
=20
 static int arm_smmu_add_device(struct device *dev)
 {
@@ -2071,40 +2104,15 @@ static int arm_smmu_add_device(struct device *dev)
 	struct arm_smmu_master_cfg *cfg;
 	struct iommu_group *group;
 	void (*releasefn)(void *data) =3D NULL;
-	int ret;
=20
 	smmu =3D find_smmu_for_device(dev);
 	if (!smmu)
 		return -ENODEV;
=20
-	if (dev_is_pci(dev)) {
-		struct pci_dev *pdev =3D to_pci_dev(dev);
-		struct iommu_fwspec *fwspec;
-
-		cfg =3D kzalloc(sizeof(*cfg), GFP_KERNEL);
-		if (!cfg) {
-			return -ENOMEM;
-		}
-
-		ret =3D iommu_fwspec_init(dev, smmu->dev);
-		if (ret) {
-			kfree(cfg);
-			return ret;
-		}
-		fwspec =3D dev_iommu_fwspec_get(dev);
-
-		/*
-		 * Assume Stream ID =3D=3D Requester ID for now.
-		 * We need a way to describe the ID mappings in FDT.
-		 */
-		pci_for_each_dma_alias(pdev, __arm_smmu_get_pci_sid,
-				       &fwspec->ids[0]);
-		releasefn =3D __arm_smmu_release_pci_iommudata;
-		cfg->smmu =3D smmu;
-	} else {
+	{
 		struct arm_smmu_master *master;
=20
-		master =3D find_smmu_master(smmu, dev->of_node);
+		master =3D find_smmu_master(smmu, dev);
 		if (!master) {
 			return -ENODEV;
 		}
@@ -2772,6 +2780,42 @@ static int arm_smmu_assign_dev(struct domain *d, u8 =
devfn,
 			return -ENOMEM;
 	}
=20
+#ifdef CONFIG_HAS_PCI
+	if ( dev_is_pci(dev) )
+	{
+		struct pci_dev *pdev =3D dev_to_pci(dev);
+
+		/* Ignore calls for phantom functions */
+		if ( devfn !=3D pdev->devfn )
+			return 0;
+
+		ASSERT(pcidevs_locked());
+
+		write_lock(&pdev->domain->pci_lock);
+		list_del(&pdev->domain_list);
+		write_unlock(&pdev->domain->pci_lock);
+
+		pdev->domain =3D d;
+
+		write_lock(&d->pci_lock);
+		list_add(&pdev->domain_list, &d->pdev_list);
+		write_unlock(&d->pci_lock);
+
+		/* dom_io is used as a sentinel for quarantined devices */
+		if ( d =3D=3D dom_io )
+		{
+			struct iommu_domain *domain =3D dev_iommu_domain(dev);
+			if ( !iommu_quarantine )
+				return 0;
+
+			if ( domain && domain->priv )
+				arm_smmu_deassign_dev(domain->priv->cfg.domain, devfn, dev);
+
+			return 0;
+		}
+	}
+#endif
+
 	if (!dev_iommu_group(dev)) {
 		ret =3D arm_smmu_add_device(dev);
 		if (ret)
@@ -2821,11 +2865,27 @@ out:
 	return ret;
 }
=20
-static int arm_smmu_deassign_dev(struct domain *d, struct device *dev)
+static int arm_smmu_deassign_dev(struct domain *d, uint8_t devfn,
+				 struct device *dev)
 {
 	struct iommu_domain *domain =3D dev_iommu_domain(dev);
 	struct arm_smmu_xen_domain *xen_domain;
=20
+#ifdef CONFIG_HAS_PCI
+	if ( dev_is_pci(dev) )
+	{
+		struct pci_dev *pdev =3D dev_to_pci(dev);
+
+		/* Ignore calls for phantom functions */
+		if ( devfn !=3D pdev->devfn )
+			return 0;
+
+		/* dom_io is used as a sentinel for quarantined devices */
+		if ( d =3D=3D dom_io )
+			return 0;
+	}
+#endif
+
 	xen_domain =3D dom_iommu(d)->arch.priv;
=20
 	if (!domain || domain->priv->cfg.domain !=3D d) {
@@ -2852,14 +2912,16 @@ static int arm_smmu_reassign_dev(struct domain *s, =
struct domain *t,
 {
 	int ret =3D 0;
=20
-	/* Don't allow remapping on other domain than hwdom */
-	if ( t && !is_hardware_domain(t) )
+	/* Don't allow remapping on other domain than hwdom
+	 * or dom_io for PCI devices
+	 */
+	if ( t && !is_hardware_domain(t) && (t !=3D dom_io || !dev_is_pci(dev)) )
 		return -EPERM;
=20
 	if (t =3D=3D s)
 		return 0;
=20
-	ret =3D arm_smmu_deassign_dev(s, dev);
+	ret =3D arm_smmu_deassign_dev(s, devfn, dev);
 	if (ret)
 		return ret;
=20
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Tue Apr 29 11:56:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 11:56:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.972192.1360630 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9jZd-000431-NG; Tue, 29 Apr 2025 11:56:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 972192.1360630; Tue, 29 Apr 2025 11:56:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9jZd-00042u-Ke; Tue, 29 Apr 2025 11:56:29 +0000
Received: by outflank-mailman (input) for mailman id 972192;
 Tue, 29 Apr 2025 11:56: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=qXnC=XP=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u9jZb-00042o-W9
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 11:56:28 +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 fa53e4aa-24f0-11f0-9ffb-bf95429c2676;
 Tue, 29 Apr 2025 13:56:26 +0200 (CEST)
Received: by mail-ed1-x532.google.com with SMTP id
 4fb4d7f45d1cf-5e8be1c6ff8so9940489a12.1
 for <xen-devel@lists.xenproject.org>; Tue, 29 Apr 2025 04:56:26 -0700 (PDT)
Received: from [10.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-acec4a84247sm138404366b.55.2025.04.29.04.56.24
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 29 Apr 2025 04:56: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: fa53e4aa-24f0-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745927785; x=1746532585; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Al7jbHKfCWHbWetquYQqKZ92sBbetNU/z8lJJK9x6yc=;
        b=HqAK3cjk8tMov16lRKmtxVrRaul1hTHrc2yh5YFjJQFIYwVh94B/TrUdLEcdOVUPKw
         46p76cqyqLMX14azexa2eg0uZll3M9vV46Z67WetMwTXG+xyIfwLoi0qmIdSJ/C+OyC8
         Fmf9IgUOHjx35wk/YPDNMssLzEp6r4TlH+LZ0JIfw5d4zrNBJsncxF13fbrKm1nZ4Lq4
         jRF8oaN1C2chNd0IAI5XOGlCKE4aj3hySZRsa3VEsVC1gyHh6DzNSnE5b2vffNGl6+2K
         oGYPDiQ1SJq9fGzAG8cmN6E9DjmHLNkUwSvOGxgJc/b2YO6/+4JT4fcFaTwu9IphvAsH
         swng==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745927785; x=1746532585;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Al7jbHKfCWHbWetquYQqKZ92sBbetNU/z8lJJK9x6yc=;
        b=Pfs5sMgbHfwhFOH9HvVR5xT18ULt4iLJHGAEH/fxZU4Et86eV2fwdsJCrQWtFR2kJd
         VDyB1XXaHmA8nQxczZhkQwMoc1ArUe1GCwwUPQ/bJvR5R2RpbQRc6FsAFybZYxlOvYcZ
         SLKvhikY1puiopIlvO65ysw6fc6H+tVMpavZxpWu2LEuIGZpUPB555+25mC3lzQjKphj
         Bm8iDgRd5zFOnvcJlbPwDiscpXmdI2jxFhGKjUW/CZO6mEICsA8V/sE6A/7wULF84WsX
         8CsojNiCg6i3zsu6WBOKcvm61FbledRJY5hlsZrIrBOHYaY8QB6ZOsFtY8AS0tlWe4pe
         akcg==
X-Forwarded-Encrypted: i=1; AJvYcCVag7rn95+ePS0PGRz+aWAkH9Ht+O8p6AghD8VXJjHnDNWSFElql2gwJaVTHfcLJjLz4kGS9eSP3ME=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwXUFl/3RdZGryYyh/2qOyP5qeyrOdtlbr+fqJzr3Ruwn3UUYyA
	AROv9+rE5a0j9LKZYNMwSzqA6Yn8Keuy0AmoFHICorYvVKX3ww5n21NalGAZMQ==
X-Gm-Gg: ASbGncsOtuxDD0vY9hN8w0cPKrRhpEXJmhtFu3p4rVBec9S7fae7Nhbv77nWledztge
	J5At+pQg1lfcaXZkNhf+39IGFMeZjyvpxJd7SP6Bmgqrea6tKJSHs2dXWv25D8v/3baHwjFrbbt
	x96/xNRZyewGEe1TkXTd4h+vOgqZeAy5CqPpmqgTqKOIVO7Fll9cvmNqqVgHCiAPWNHp4pwyhLE
	OGXe4xAliXlelnWUhpAVKAXM+C2ZW69aPojPSMCc7F75Ay39LHtVqQLUsN05KVD+dr0prEBEqFU
	thb7DARu1HS0B5exrA6IHAzuQjCCeObrWG6VLg4NKbGc8/r88hIRDeXZJH3S00mbzKs42oI5+hM
	kHOfa7a6N66u8SQK4V5Peq5jL3tLMa8uLqXy9
X-Google-Smtp-Source: AGHT+IGDE09spnIoGG3w926hJkRZ1a2/uHHB9nOp8v3DeXBhVrH6EKc0960kA6vpcsMPsXIkBZNmEw==
X-Received: by 2002:a17:907:970c:b0:ace:3952:c375 with SMTP id a640c23a62f3a-acec4f35d10mr313281366b.42.1745927785451;
        Tue, 29 Apr 2025 04:56:25 -0700 (PDT)
Message-ID: <df18f775-79ff-4509-a10a-cb742762d8b3@suse.com>
Date: Tue, 29 Apr 2025 13:56:24 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3] x86/hyperv: use dynamically allocated page for
 hypercalls
To: Alejandro Vallejo <agarciav@amd.com>,
 Ariadne Conill <ariadne@ariadne.space>
Cc: Paul Durrant <paul@xen.org>, Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "Alexander M . Merritt" <alexander@edera.dev>, xen-devel@lists.xenproject.org
References: <20250428195736.2516-1-ariadne@ariadne.space>
 <77c9529e-8353-479f-994f-d6d668788374@suse.com>
 <D9J2AOMDX4QZ.2ZN0F028I3QIT@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: <D9J2AOMDX4QZ.2ZN0F028I3QIT@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 29.04.2025 12:48, Alejandro Vallejo wrote:
> On Tue Apr 29, 2025 at 9:28 AM BST, Jan Beulich wrote:
>> On 28.04.2025 21:57, Ariadne Conill wrote:
>>> Previously Xen placed the hypercall page at the highest possible MFN,
>>> but this caused problems on systems where there is more than 36 bits
>>> of physical address space.
>>
>> Hmm, I should have asked already on the earlier version: What kinds of
>> problems are these, beyond ...
>>
>>> In general, it also seems unreliable to assume that the highest possible
>>> MFN is not already reserved for some other purpose.
>>
>> ... this particular aspect? I find it puzzling that such problems would
>> depend on the number of physical address bits.
> 
> Pagefault on access (due to reserved bits being set) on access to the
> hypercall page. The available guest-physical address space doesn't seem
> to be as wide as advertised, though I didn't carry enough tests to
> single this as the only explanation. Seeing how we don't really know
> what's already on the last mfn this seems like a strict improvement
> irrespective of the actual cause of the fault.

No question there, yet the first paragraph is a little too vague for my
taste. It'll also not help people later finding this commit and wondering
what the issue was.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 29 12:01:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 12:01:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.972221.1360641 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9jeO-0005nq-Fx; Tue, 29 Apr 2025 12:01:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 972221.1360641; Tue, 29 Apr 2025 12:01: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 1u9jeO-0005nj-Cg; Tue, 29 Apr 2025 12:01:24 +0000
Received: by outflank-mailman (input) for mailman id 972221;
 Tue, 29 Apr 2025 12:01: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=qXnC=XP=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u9jeN-0005mG-Id
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 12:01:23 +0000
Received: from mail-ed1-x52c.google.com (mail-ed1-x52c.google.com
 [2a00:1450:4864:20::52c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ab094230-24f1-11f0-9eb4-5ba50f476ded;
 Tue, 29 Apr 2025 14:01:22 +0200 (CEST)
Received: by mail-ed1-x52c.google.com with SMTP id
 4fb4d7f45d1cf-5e5bc066283so10526909a12.0
 for <xen-devel@lists.xenproject.org>; Tue, 29 Apr 2025 05:01:22 -0700 (PDT)
Received: from [10.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-5f70354632bsm7261240a12.57.2025.04.29.05.01.20
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 29 Apr 2025 05:01:20 -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: ab094230-24f1-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745928082; x=1746532882; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=zP9+7bCC+w4gqi+QE6Bg1Rwd6ocdr+MM4e/OlpnSnxo=;
        b=PGzMxXnInUA0fE6g+W8OT+HoBAatkb7JnB1JKc0oP04J7XcW1HMMl47y/3bnhiC+fm
         K6mjYQ1H3MaBhR9CG1GjSgcHVkifSEmk8t5KvI2dzMZ2afvBCHBUdYa/urdC+SbuRZnS
         b8RXmRo9fcYHK5Ro2jOfHo9saIfiUee7khYgC6IxvN2z6NwJk1Di0HsUuNh5JBs24mgr
         dOOwkafCCHedBI8GHpIz0nAKt8Bt118S5lYa6bDVtfWfa37eLeDGmNlz4gYmC8Pwe/FF
         LL2u9/4pZllKiGP4J/8MqOe8b1OqwwWdbP/FhFNI0QkMe7bTvWDRospAqEJIsnfuPCMp
         cvjg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745928082; x=1746532882;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=zP9+7bCC+w4gqi+QE6Bg1Rwd6ocdr+MM4e/OlpnSnxo=;
        b=FC8kbHI1MjnVYqO6MGfaZeCfocD7oMMoInFWE8dRAbn3PV+zk/JjsAJM/96PkWELZe
         Uq/Rz4MZP6MzqFzDTJVnSQZeuy5pXyI1y1u3o6m495sK1S6qnyDPdqcZJZ+HCvWsr6Jt
         SdrSObrz8QyORDKJg6mnAoa8b5+3nwXhvYVfEiuHeVmjrMFnTwsmg/LNO9oJysxb2E8K
         4CFtCBOz1osxFVBJ6So/gYwXTktRHiX9x/pvV9Woul9xUA8vBF9KViWzkNAcY2LxTDyo
         1h0I3Ra6UA8A85RxcZdTCaF8/YfRQED+smimq6puH9loEEKThKNqhjpfT45n0UP3FDN3
         Nu5Q==
X-Forwarded-Encrypted: i=1; AJvYcCVwPueKFhb7lr1z+ZmJgsYGxp+KKFaQLa/AotC6ZuLfeo7m/xwZd65zVXzvdKgTh5jHrKkngwVZZSE=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy9WEsZuxMohG0lgkJLI3Bz0I+HMbI/MnuV5pcR4VeBXJ58CNhT
	XNXe3JMIim1mwNcfdn+JDo/o31ualBv6HJt0e2FVaXYNw+aYWV66P3lBhX/s6w==
X-Gm-Gg: ASbGncuzFzCK4pkenh43+SBMpVRl6YgyE5qrSC8NBCx60/cm8ujxmDL56ZbSWYpCuDD
	Q595lgxSQNFzG5vo8i7kKTnew7JDMo92y0/t8uUIgKN/tndM3Q+lkmQuZ92kiZhKwpGub2I9+JC
	ydMOXxiv1Ab9i0OkeHZDkSmGskDdpzayxdcGUodqGJ9o5h73ebQblQ2KhaVV7+xsA/qezZrDjfi
	gweTvBEulZZEiFuQ2/e1urYViq0gWDhekWcae2V3iC/W5MCqgf12dZ3drLU1LKY699rDa/f9jW7
	13e9wG1YoYmUUH6J3EgYqZ75+MOH1GKAnRhakDZWph3e7YCE8XBrolLTMh+Y0xfYJ0524Vp8q6t
	MYPbl4lcy1h/ccz816+HYmIPnng==
X-Google-Smtp-Source: AGHT+IFK7WmynnrU0mYPHUFJjCnKxm5QO+IrHy/2KkAVjTMz66Ce0YXNhZ+9wEihrGP2r8iIcEuoCQ==
X-Received: by 2002:a05:6402:5243:b0:5f4:d5d2:dd47 with SMTP id 4fb4d7f45d1cf-5f8388909b8mr3295561a12.25.1745928080590;
        Tue, 29 Apr 2025 05:01:20 -0700 (PDT)
Message-ID: <b51b142f-d534-48f3-b506-c949ed535623@suse.com>
Date: Tue, 29 Apr 2025 14:01:19 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 2/4] tools: remove support for running a guest with
 qemu-traditional
To: Juergen Gross <jgross@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, xen-devel@lists.xenproject.org
References: <20250429110636.30518-1-jgross@suse.com>
 <20250429110636.30518-3-jgross@suse.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20250429110636.30518-3-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 29.04.2025 13:06, Juergen Gross wrote:
> --- a/tools/firmware/hvmloader/Makefile
> +++ b/tools/firmware/hvmloader/Makefile
> @@ -59,6 +59,7 @@ OBJS += optionroms.o 32bitbios_support.o rombios.o
>  CFLAGS += -DENABLE_ROMBIOS
>  ROMBIOS_ROM := $(ROMBIOS_DIR)/BIOS-bochs-latest
>  ROMS += $(ROMBIOS_ROM) $(STDVGA_ROM) $(CIRRUSVGA_ROM)
> +DSDT_FILES = dsdt_anycpu.c dsdt_15cpu.c
>  endif

To be resilient to a random DSDT_FILES in the environment, I think you want to
use += here as well, just like ...

> @@ -76,7 +77,7 @@ rombios.o: roms.inc
>  smbios.o: CFLAGS += -D__SMBIOS_DATE__="\"$(SMBIOS_REL_DATE)\""
>  
>  ACPI_PATH = ../../libacpi
> -DSDT_FILES = dsdt_anycpu.c dsdt_15cpu.c dsdt_anycpu_qemu_xen.c
> +DSDT_FILES += dsdt_anycpu_qemu_xen.c

... you have it here, and set the variable to nothing yet further up.
Then
Acked-by: Jan Beulich <jbeulich@suse.com> # hvmloader

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 29 12:03:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 12:03:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.972262.1360651 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9jgb-0006mr-Rt; Tue, 29 Apr 2025 12:03:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 972262.1360651; Tue, 29 Apr 2025 12:03:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9jgb-0006mk-OI; Tue, 29 Apr 2025 12:03:41 +0000
Received: by outflank-mailman (input) for mailman id 972262;
 Tue, 29 Apr 2025 12:03: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=Cjpo=XP=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1u9jga-0006me-7C
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 12:03:40 +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 fbcf53af-24f1-11f0-9ffb-bf95429c2676;
 Tue, 29 Apr 2025 14:03:38 +0200 (CEST)
Received: by mail-ed1-x535.google.com with SMTP id
 4fb4d7f45d1cf-5f6222c6c4cso9232878a12.1
 for <xen-devel@lists.xenproject.org>; Tue, 29 Apr 2025 05:03:38 -0700 (PDT)
Received: from ?IPV6:2003:e5:870f:e000:6c64:75fd:2c51:3fef?
 (p200300e5870fe0006c6475fd2c513fef.dip0.t-ipconnect.de.
 [2003:e5:870f:e000:6c64:75fd:2c51:3fef])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-acec4186fd3sm141807066b.82.2025.04.29.05.03.36
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 29 Apr 2025 05:03:36 -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: fbcf53af-24f1-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745928217; x=1746533017; 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=tWXjCEn9PiseYTn3909SgiiZVnVb4NCLZrhDySo1B8U=;
        b=WSfRytsZgr3HE7HXJib2bwxM4D+RhLeRUOQbuCUpeC/oBfGaUuKHOjqJZj8ywZjFtP
         By2zW8R/7IQ6hGxWCLtupJdLFCLkM7gJTx0xhBoDtAFXQJHUOAn2+7+XgC0RXXzb/5Tz
         Ltkrv+sD0eY0robuF4+a6wlGlhVJ3VZNe+wcWS83eoFCJy/JaD3d+Oz0aTk2ikhmhvSl
         SAI6kcBIk5O9j8hTtkac3U0k9q5/sepD2MH4iU3ShjKvOkv+qMcNPANdu6OzNIULYGw3
         dFG50MxZgvXANONjXSwyAN5Z5W3qAGwTjROi1vCPVmYkqFhhDyo6bKp8qug2TdvcFhR3
         Y27g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745928217; x=1746533017;
        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=tWXjCEn9PiseYTn3909SgiiZVnVb4NCLZrhDySo1B8U=;
        b=HTmIZtgKiJoJYTizgZwwkxXIM7LVEVKJP0ecDtePnX4XHFF8zqBme6ICaH4IvYAYf9
         mxBVytKUybN+F4o2HwBZgXTHZOYQw67w6fEKdJp50Tw3upQOqMaU+gMnhbzA1HoIvQFh
         2+5IKQ4IVe2LR58FpCMwWSd5gMT+HUB2HITu+HVWBTEKKsqN19wWzqJIz1yIIkCPI4dk
         eFzQTPDp27g8BLRCIbCo5lqbbZJUdac1h4Ede2cAEDR3UFbzRFWmcPlfoebnGkvGBegH
         WmD4bTqg/q4n6D1ld162x94S/AHjskQ7U2dbX5EBkuA2rzOBO3hNpW9QNbggAHiPWkRD
         QhCg==
X-Forwarded-Encrypted: i=1; AJvYcCU8U8kFVvVjdkkEcI2lgbGXeS9E5CDVVA2xCLjl+rcmJuRH2bB9C3KbP+z/jWQB8QBYxaJIEQ+cbug=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyiO7RPz7QDHeWq70grZDqFOzoWunzURHimDRFcKyYZiCJuOU0+
	1RNRr3NH45d441v3z1Ts7gbNTnRhTh/3YvccxGVtmC6rmCwFnbhF3SEA826KUQ4=
X-Gm-Gg: ASbGncses+8AqKrMB/0e9d8LEluZIZySQxqyyJxAdCzHidLz/mIjm3KB9GxMMaRnrku
	pT+HSbyN1Yo43t8rVeHIviDLjbAXn6Vu927rMjUajsjiaTIK5E1FJOfJqnouvVCmrheo2a8ZaZE
	fyeZzgk8hKslY3jeVM7sV0oRuxvvebotgyLJuJjmb0uEvLlMTs3SDvtdN0IBKiyjRSiEDjvC9Dt
	PiOWeVk1DvpCP2h5UpBYf0AEW7WRGtECSfWS4YBcisZqgcrwgyR+TOSeyTu15msN++2Z7XN06CY
	tw/mxYv/qEfyDeqBjzaVSnsdnnMsWxAkE5kYq04Ri6x5j2e3lBUwf5l5ANJe6BZ6Z6Oid9cbRZ+
	NbtvTKpkAqkC2Y74FgLVunjxRZcZ09wuuq1YW463VIB8owsOlIe7MdeH7YWo//86p9A==
X-Google-Smtp-Source: AGHT+IEokryXB2GYaD6tgtEkjtV6oZQlcQ33iLoZeWv21Bb6GFTYwRXC8MIxBJedwj0OdIvOhPYeBw==
X-Received: by 2002:a17:907:3d93:b0:ace:c3b9:c710 with SMTP id a640c23a62f3a-acec4dffc67mr341266666b.36.1745928217315;
        Tue, 29 Apr 2025 05:03:37 -0700 (PDT)
Message-ID: <50800903-3ade-4cc5-bed3-93c19f605907@suse.com>
Date: Tue, 29 Apr 2025 14:03:36 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 2/4] tools: remove support for running a guest with
 qemu-traditional
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, xen-devel@lists.xenproject.org
References: <20250429110636.30518-1-jgross@suse.com>
 <20250429110636.30518-3-jgross@suse.com>
 <b51b142f-d534-48f3-b506-c949ed535623@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: <b51b142f-d534-48f3-b506-c949ed535623@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------FjzEPPCgNIMk0EnbGwYXHRCf"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------FjzEPPCgNIMk0EnbGwYXHRCf
Content-Type: multipart/mixed; boundary="------------p2okPk0vb0dU0SbNqZqa8Cq0";
 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>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, xen-devel@lists.xenproject.org
Message-ID: <50800903-3ade-4cc5-bed3-93c19f605907@suse.com>
Subject: Re: [PATCH v3 2/4] tools: remove support for running a guest with
 qemu-traditional
References: <20250429110636.30518-1-jgross@suse.com>
 <20250429110636.30518-3-jgross@suse.com>
 <b51b142f-d534-48f3-b506-c949ed535623@suse.com>
In-Reply-To: <b51b142f-d534-48f3-b506-c949ed535623@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=

--------------p2okPk0vb0dU0SbNqZqa8Cq0
Content-Type: multipart/mixed; boundary="------------KITpn2ECuWijIoVTx0e08Cnj"

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

T24gMjkuMDQuMjUgMTQ6MDEsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAyOS4wNC4yMDI1
IDEzOjA2LCBKdWVyZ2VuIEdyb3NzIHdyb3RlOg0KPj4gLS0tIGEvdG9vbHMvZmlybXdhcmUv
aHZtbG9hZGVyL01ha2VmaWxlDQo+PiArKysgYi90b29scy9maXJtd2FyZS9odm1sb2FkZXIv
TWFrZWZpbGUNCj4+IEBAIC01OSw2ICs1OSw3IEBAIE9CSlMgKz0gb3B0aW9ucm9tcy5vIDMy
Yml0Ymlvc19zdXBwb3J0Lm8gcm9tYmlvcy5vDQo+PiAgIENGTEFHUyArPSAtREVOQUJMRV9S
T01CSU9TDQo+PiAgIFJPTUJJT1NfUk9NIDo9ICQoUk9NQklPU19ESVIpL0JJT1MtYm9jaHMt
bGF0ZXN0DQo+PiAgIFJPTVMgKz0gJChST01CSU9TX1JPTSkgJChTVERWR0FfUk9NKSAkKENJ
UlJVU1ZHQV9ST00pDQo+PiArRFNEVF9GSUxFUyA9IGRzZHRfYW55Y3B1LmMgZHNkdF8xNWNw
dS5jDQo+PiAgIGVuZGlmDQo+IA0KPiBUbyBiZSByZXNpbGllbnQgdG8gYSByYW5kb20gRFNE
VF9GSUxFUyBpbiB0aGUgZW52aXJvbm1lbnQsIEkgdGhpbmsgeW91IHdhbnQgdG8NCj4gdXNl
ICs9IGhlcmUgYXMgd2VsbCwganVzdCBsaWtlIC4uLg0KPiANCj4+IEBAIC03Niw3ICs3Nyw3
IEBAIHJvbWJpb3Mubzogcm9tcy5pbmMNCj4+ICAgc21iaW9zLm86IENGTEFHUyArPSAtRF9f
U01CSU9TX0RBVEVfXz0iXCIkKFNNQklPU19SRUxfREFURSlcIiINCj4+ICAgDQo+PiAgIEFD
UElfUEFUSCA9IC4uLy4uL2xpYmFjcGkNCj4+IC1EU0RUX0ZJTEVTID0gZHNkdF9hbnljcHUu
YyBkc2R0XzE1Y3B1LmMgZHNkdF9hbnljcHVfcWVtdV94ZW4uYw0KPj4gK0RTRFRfRklMRVMg
Kz0gZHNkdF9hbnljcHVfcWVtdV94ZW4uYw0KPiANCj4gLi4uIHlvdSBoYXZlIGl0IGhlcmUs
IGFuZCBzZXQgdGhlIHZhcmlhYmxlIHRvIG5vdGhpbmcgeWV0IGZ1cnRoZXIgdXAuDQoNCk9r
YXkuDQoNCj4gVGhlbg0KPiBBY2tlZC1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2Uu
Y29tPiAjIGh2bWxvYWRlcg0KDQpUaGFua3MsDQoNCg0KSnVlcmdlbg0K
--------------KITpn2ECuWijIoVTx0e08Cnj
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-----

--------------KITpn2ECuWijIoVTx0e08Cnj--

--------------p2okPk0vb0dU0SbNqZqa8Cq0--

--------------FjzEPPCgNIMk0EnbGwYXHRCf
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/Ey8FAmgQwBgFAwAAAAAACgkQsN6d1ii/Ey8E
bgf9E3hASRrFvG+9fFHJjj0gnkQXM9GqA0qGQvYxXudT77vWqTHiHdkqWqz8+ynPK8ksP4c5HVnH
24q6x+zL3cd2CYgLFqAWZwlutiSwA8JJYBVqmstHoAtX1bSXxuh1agPQyV+qqrC5XgIVj3xLeCXD
yJernwlRx0Vuk25ktCG0vuLdU4g+kj7zD8Qw5qhe7TZxoypHyQpBB7MdY/+DIqlSeHCxGb0D9lvU
mP9wFbNhnv5TaZ+kISf0ZLerf0s2VYyl8wKwugifndNQpSAXdkl5dXVERNSR2+VY68U0SyNBZLVH
mxP0ESUPtdysFNB+Yug8qi8883NYhZs1mOTOZ7BN0w==
=m0fC
-----END PGP SIGNATURE-----

--------------FjzEPPCgNIMk0EnbGwYXHRCf--


From xen-devel-bounces@lists.xenproject.org Tue Apr 29 12:04:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 12:04:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.972278.1360661 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9jhm-0007Tt-43; Tue, 29 Apr 2025 12:04:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 972278.1360661; Tue, 29 Apr 2025 12: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 1u9jhm-0007Tm-1U; Tue, 29 Apr 2025 12:04:54 +0000
Received: by outflank-mailman (input) for mailman id 972278;
 Tue, 29 Apr 2025 12:04: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=r0hc=XP=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1u9jhk-0007Te-2z
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 12:04:52 +0000
Received: from NAM04-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam04on2060f.outbound.protection.outlook.com
 [2a01:111:f403:2408::60f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2628e1c0-24f2-11f0-9eb4-5ba50f476ded;
 Tue, 29 Apr 2025 14:04:50 +0200 (CEST)
Received: from PH8PR12MB7326.namprd12.prod.outlook.com (2603:10b6:510:216::7)
 by DM4PR12MB5890.namprd12.prod.outlook.com (2603:10b6:8:66::20) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.33; Tue, 29 Apr
 2025 12:04:46 +0000
Received: from PH8PR12MB7326.namprd12.prod.outlook.com
 ([fe80::6d76:9c33:d230:8264]) by PH8PR12MB7326.namprd12.prod.outlook.com
 ([fe80::6d76:9c33:d230:8264%2]) with mapi id 15.20.8678.025; Tue, 29 Apr 2025
 12:04: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: 2628e1c0-24f2-11f0-9eb4-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=GhPdyxHf/BRudvYBK3lm91RhWvX/ynujEoX4eIzPRK3ddGmch0/SO/gqxMqbdtW/xdvKOpRm5ZSlLfcG6NtvLx2b2eM906TzaIrhPSIMGUWpvodT7B7n3NP5WyWe9Bj+CKQg3o4yADpjI4XepsBISt4nCbIQJcc6wJuCwRxn3X0q94tsGfjs4o2DIyhgxAHjTmzT6FP5IK6ZpQiwlHDc2nZaQIuu6i0C282Efk2KlPWtjNd0A2FlFo3SHQ4gs4VHsEOALEMI4PCPrEVqKanMgBqz0FvINNlOLHX1krjhWYcjQwbjPfSx5XBoPhY6kGHLZe3xAI6nv1UpRj9dLaXKsg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=EOCkHerxvDxmbeBQR30NNEMstB8L6draFAV62NRgmMM=;
 b=A+GGVZFAifOoYwcecCL49bpisitW29LSf5gOGkOhRP/AS/tJImSzLhz0qu1JZ5Jlhtiy7dj4ln4sxA67gvFv0x+uoo5ueJbV9ScQxw/G9lccVKAR+Lsk02dd3TToed+gFQJPAfZqIZqQFcx4mXL1peb2QkVxGIlUpr0kgL9+r6PaA8z8SCejbcfqAgAGu8zF+M/WbvbJ7vianyrHsaSqgrHxHQR5UytBZfPgnrKR+wf/knfHt0C6oxQJH5EdNp6wSMkqYlJXXlvjpNU9YHGG2C5ghT6b/8zcjFGIKhReD41vQLPjJL8IewOTJ8UXnsJc6PVJx6LMBR1qkxp1x8s/0Q==
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=EOCkHerxvDxmbeBQR30NNEMstB8L6draFAV62NRgmMM=;
 b=OI07XPn2HhEwy25pnToK+J8XheUvm3Ng2jF2Xj+a4TmTMjcUPasc7N+cLgbz+dYp28ucv7OJzTAGFWhxdsXl5hyrP2rSPcXzIWTFlAcWmF9cTZ7lt0YJ8F3gExewGJcsX+gDy9G94nQ7Uz+JD86a6J1CintA2bOVU+7QKp+dSXY=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <388f39ad-6aa6-4b95-9941-334b434ff400@amd.com>
Date: Tue, 29 Apr 2025 13:04:41 +0100
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1] xen/arm: AArch32-V8R: Add MPU register definitions
Content-Language: en-GB
To: Luca Fancellu <Luca.Fancellu@arm.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>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <Bertrand.Marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <20250417155511.1854081-1-ayan.kumar.halder@amd.com>
 <306e5414-1552-4605-86d6-b23b89d00bc9@xen.org>
 <cebb0020-531f-467c-bc81-54d2ba1aa8e0@amd.com>
 <2697BC06-8A78-42B4-9977-07907BBBDC3D@arm.com>
From: Ayan Kumar Halder <ayankuma@amd.com>
In-Reply-To: <2697BC06-8A78-42B4-9977-07907BBBDC3D@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO3P265CA0032.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:387::15) To PH8PR12MB7326.namprd12.prod.outlook.com
 (2603:10b6:510:216::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: PH8PR12MB7326:EE_|DM4PR12MB5890:EE_
X-MS-Office365-Filtering-Correlation-Id: 8c2c478b-8be8-446b-14e3-08dd87160856
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?V1I0enV6WXBqcTQ4aUFPL09XYUM5cUMrcFRCMkMyYWFHZFV6SWhaTDBGNXNS?=
 =?utf-8?B?M0wvK3FpY0JPd3J4TG1oMEt1VWU3Ui81bUpUUGVqaHh6TGgxbnpjcVNVc0hK?=
 =?utf-8?B?MURvQ0EwOFMrL0ZxSkJaNkZPN2VWQm9ndmJGSFltdVRLd1NSamJNQmRoeHA1?=
 =?utf-8?B?eXNZbitvYU9HZjRDejhCc1pGazVoaml3M0JnV0VLOURlWTVyWFVFWDU2bFNv?=
 =?utf-8?B?ZjRnUGtFRGVCSExxaUpmMTlMWERlMVB5SXpHYTB5QmxOb2JhdlZsR0Yzcml1?=
 =?utf-8?B?V0hjV2p1L2dPek1YT1U4R2xwRWlrQ2VtZEYveHVhcm1USGRGVExtQkN1RE5N?=
 =?utf-8?B?SDFrZGFWaXBwbXdjU1N3VjNqMWwyenBFUWJjUktQdUpHM2lBekFJOWVZQUFW?=
 =?utf-8?B?YVR1T2k1bVU0ZEdtSGp3NVJzbm43OWMxeXVGWUw4eTVHOU5LN2NBR0hBL0RN?=
 =?utf-8?B?MHh6Sjh3SUNqM1ZZb1o2eDBNb1VHYUVXblV2c25USWZYUnZFc3R0Nnd4dUZx?=
 =?utf-8?B?WitENnljOVpCR1VTSjJXRllRclBQWTFxZ2czTUJEbVMzMkdhSlBudC9rVGJ4?=
 =?utf-8?B?MWllVkp6Z1czdGIwZmVOYmlBdjhON29sZGc4b1R4QkJwVy9SVXQ5bmQ3bXpH?=
 =?utf-8?B?eXcwU2hKRUQydXhZanlhNjVBZlgyZytZUERiM0ZyRHVMSGtqdERlT2JjWTYx?=
 =?utf-8?B?YmRkYXY2SW9BQnJqVGNyQ041NmtMY0ZWTXF5NDJZS2s2ai9qYWkzUk03UUl6?=
 =?utf-8?B?clAvWGtHallnSXRTV1Y5NUdoL05sTG55QlJ1ZGhBZkprdjg2dWlmNkhJYmNP?=
 =?utf-8?B?WFVoc3hTYW5TSHVZUm9lejNMMDcxeC9CVXJRUGE0MkRSV05VS0RHeWZieWk1?=
 =?utf-8?B?RjlSWjNVK0lWZGl4S2h2czhTSktNcGNXQ0JyVTQ4NHNwam14eUpVeiswa0pm?=
 =?utf-8?B?c1JmeVlxcnNZQk9oRXM3RUR5cWpyTjl2bGlrczBSODJBbGlOOXZpMWtWUWVH?=
 =?utf-8?B?RWV6Mkt5UlBOY3ZieUVHMkYwd2w1ck9GZ0NzbVZjaXV0S2hnQVU3L1dKOWkr?=
 =?utf-8?B?TTY3LzFyUkljU2hMSWV3RzhaMUVkL0NUMURvV0orc1hYY1hUempHM0VnWTQ2?=
 =?utf-8?B?RVNZWXEyZU9sUFh6eWszN2o0SEpjNzV6VGNHQnFmSUc0aW5FeTBBRDJtNzFk?=
 =?utf-8?B?YTZQVkg4ckNnV1pFTUJ4UFpkUXVXL0tvRnZUK0crWEJjK0VnK3JFL1d4RkQ1?=
 =?utf-8?B?ZWRxdHpCYzNlbDh6THJFa3dwK1BVa3pqdklQQWZOR1E3TkdRNUpWa1c3RktR?=
 =?utf-8?B?cytQUmh1UGQ2RDdka2hCMGVUU1ppZldsbW5jMzFwTXNjK2E4aVlzSG9HMnJH?=
 =?utf-8?B?UDRuZll5ditmZ21rakJhZklPY3JoMnZ3Y1J4SkNSRHJmeVdHUEMxd2J1QlJI?=
 =?utf-8?B?Tm5pSDdHbU52M2tvSzF5QlhjbEFoWHpQdUJRb3RxZzYyTzl3MDA3NjRJaTlD?=
 =?utf-8?B?ZWtFK2IzVW5QU3BuRmZXK2k4d01CVUQ4ZEZHNWY0TC92MTU5OFpIb3BOY2VW?=
 =?utf-8?B?V2h5YnVseTJxVXd5ZUxiM3F6TEo1SFR4UzBnc0hoekEvb1FMNGtTTm9lTVMy?=
 =?utf-8?B?bnQwOTRGVS9MNEt4d2xBaEUveE1Zc29lVFVMdFM5dVBBVVN1OS8zdWxzV2lZ?=
 =?utf-8?B?TEZwTkRtYnk3SDZhR0VOSzI3R0c3MXhwRHdaV3MxZ1RhSjJHdXFJZjlZNDl3?=
 =?utf-8?B?MXJzYXpEMzM2bmtCdVBhTHRtcW9nbXdQdzZzbzZES3NmK29kcDJ6UGxEUlUw?=
 =?utf-8?B?YzAwMXpva2N3OGZKY3FYcE9qTUI2TzJmYk5FQVpVWnNidEMzQVN6d3lTbnZD?=
 =?utf-8?B?WmIya3RyV2JSeXVtNkJpYUNTWnlJNTlPNXZCM2ttSkJreC9QeUpZRXpudlUv?=
 =?utf-8?Q?lK158gkNHW8=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)(376014)(1800799024)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?MHFwQWN1Rld2cWpDVk1XQXY3UFpOVGQxOFR4MmVEeG1HaWN2WURvdytWdVB3?=
 =?utf-8?B?Z2hnajZ3RDBPQzV2RFROL3pidXpGamJzVnFsNHJKR1FCOXlpRjF6dVo3U0Zi?=
 =?utf-8?B?MFpqTFN3ekFUQlU5aEZvaUpZbTRaRkp1cUtSQnpHSEdEMSs5QmRKcGFnYmZh?=
 =?utf-8?B?SHJJQ05VRkxoM2FNbkprQkN1R3IwUlFoUjVFU3h3eFUzZHZidm11K1NTK3d4?=
 =?utf-8?B?dkpoWUV6U0FseXFCbVV5NkQxbXpMUXdROVZOUk8wZWFvMlN3WHhJdFJPaEEr?=
 =?utf-8?B?akxBR1ZxbGRtemZ5dldERXZSS3hyblhWelFWY2NQdGtnRUxoUVVlaXBuK3pa?=
 =?utf-8?B?K1ljQ0tpbGdaUHlZWDNRT0FURHF3YmRpbWhvdGVLU1MyNFc3S0JGNGl1THoy?=
 =?utf-8?B?VVowOTZzUzArRkhwVlo1OHVDWVptWHFGUzIrNFpNZm14V25idy9PQVFoODUr?=
 =?utf-8?B?NVhVYlB1ZXYyOEpBOTFXMU03TkR5dG5LZERzRE5VRmFNV3hya1lWV3JxOU5n?=
 =?utf-8?B?OG9xNTVmeEh3bGNlUXArVHhFNzNrK0M1SElHc3R5VDlPdGVkQnJNVmgvdXVh?=
 =?utf-8?B?ZG1VRk9uNkMwcVpMTUZOT0gyaWRTcGpuUUVycExzTHJaU3YrOTBBSWpmdDVk?=
 =?utf-8?B?aHlHQTVQSHEzNnVTU1BGZXlVcEx6YTd6VXQ0R3ZqL3ZjMWJ0TEFVanQyQUtX?=
 =?utf-8?B?TmkyWUpWQm16SVQrQlU2WWRLcXBqVlRrcm9JZXVzQy9jRkRGVlFwdUhJZUNx?=
 =?utf-8?B?aEljMTFaQ3VrUkF3SENnS0w1RW1HM252UFd6Z1ZYWkluQmtMaks2UXNkZ1lx?=
 =?utf-8?B?UjlBT2xPeUdzVnFzNVJUSSt5YWFCRjlWY0lPK3RtVDZJQllkYnNiRjNka0N1?=
 =?utf-8?B?NUs1NmpkTUNQcXdNMzFWb2d3dUZ5VmQwRlNUS040ZFVseXBoa05nSmNtU0I1?=
 =?utf-8?B?VDFHWEIxSHVkenRpdkFkcmVEc2JUcytFNm1JTGE3ZzVXQm9YTWhLWHIyVGN3?=
 =?utf-8?B?TlFkcDhadzJ4aEQxTDIyeXFMMlpNVTZXdXIvQkc5elRIM09nWDNrZU5QSGNv?=
 =?utf-8?B?RmNPWE40YmpOcCtIblpja2U2amV0UkFwNnZHcUNRa0lvWkt0R3Bub245N29P?=
 =?utf-8?B?cUdkeUZhS3BwY0RKdnpDYWFmMURtRDRtSzg0U1REZ0FJSjlXeS9udTZENVVi?=
 =?utf-8?B?R2Vad0hrRUhUYnE2MTErcFRMU1hGQjg2MVJnNW0xYjh0N3p0N2ZjSTZYdnBP?=
 =?utf-8?B?cW45TXFjTjgwaVBjdzM3cXdYVkVFUmVYM2FzRVRtQnJsbUQvSkVsU1k3Yjhw?=
 =?utf-8?B?cWlyYXcvMzgxWFpVSGVWZSs2NFZidjB6WnY3dnhZdENQa1Fsek0yTUE0cDdu?=
 =?utf-8?B?bVNNLzZGaWY2azBHR1NNaGFzT05BeEZtUnYwWmxHb2pCR3MzMGZVS1pQQUIv?=
 =?utf-8?B?cWNUQnF5UkxFVjN3NmxJVkdoMUp0eEhJYTk0UW1uZCtNNVVxOGRBcjBubFNR?=
 =?utf-8?B?Q2tBQkxwSEFGcUU4OUVKSC8xRHhpOVN6dGNLczJxdmhEbE45Z25jclR0TUw0?=
 =?utf-8?B?VFFDcXdoYld3UkRacGJiMVIxS1crMkZFc3J3RFo5aHlRK0JLZ0ZKVXNNR0o4?=
 =?utf-8?B?ZklzYXA4YzQreE03cTM0eFd0UzlXak9XRXRPWlZnYkRNTGtaMG12Zmk4dU1i?=
 =?utf-8?B?RWFEZlBtUUo5RlZ1QzFVMkFMem9sMUZNRHBHdk5RMVpVVVFKcHRBOGhFWFN6?=
 =?utf-8?B?OGE4dFZpR1k3ZHRzcE1rd0pzS0QzWWhSNkZwejNNcTF5aXR6WVZaNjZQcU1r?=
 =?utf-8?B?VnYwUGYwY3V3MVdhb0pld1ZXbFNHcStZZFREQ3RqVmpNMWk4dnpUZjhxdWpN?=
 =?utf-8?B?aE9iQm1OUG5MOXBveWowZnBSd1FOSVVJYWtGV0dGZkFVemEveTAwQXdQYS9v?=
 =?utf-8?B?VmpYdWRLUGFyMzYrMThPZUtMcWd0K3dlSjNrOXFzOUtLOCtuUTJqRlYrSnBY?=
 =?utf-8?B?cTJrekhOZTlrRXZDSGlraExEWmVJNzFqQ3RJRjlSV1ZteVdWV3NZWVRSSk9H?=
 =?utf-8?B?YW5SbFRvcEVncmdQRHZGbVpLb1BXS0MxL1JIZkpsL3gwdUpnc1ZZWUk5Vklz?=
 =?utf-8?Q?7RobBjKk9SLzBIYhvINExL0uD?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 8c2c478b-8be8-446b-14e3-08dd87160856
X-MS-Exchange-CrossTenant-AuthSource: PH8PR12MB7326.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Apr 2025 12:04:45.9930
 (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: 3TVzsBzp2qj9ejN2pqv7UJcsdRficB6YOLZ5qyqoTBgTFPEqYzS5pfJEKq5JBLJC+1jarq36BodPMN66l+/u1w==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB5890


On 28/04/2025 20:04, Luca Fancellu wrote:
> Hi Ayan,
Hi Luca,
>
>> On 25 Apr 2025, at 13:00, Ayan Kumar Halder <ayankuma@amd.com> wrote:
>>
>> Hi Julien,
>>
>> cc-ed Luca for feedback on specific points.
>>
>> On 18/04/2025 05:54, Julien Grall wrote:
>>> Hi Ayan,
>>>
>>> On 18/04/2025 00:55, Ayan Kumar Halder wrote:
>>>> Add the definitions for HPRBAR<0..31>, HPRLAR<0..31> and HPRENR.
>>>> The definitions are taken from ARM DDI 0568A.c ID110520, E2.2.3 HPRBAR<n>,
>>>> E2.2.4 HPRENR and E2.2.6 HPRLAR<n>.
>>>>
>>>> Introduce pr_t typedef which is a structure having the prbar and prlar members,
>>>> each being structured as the registers of the AArch32-V8R architecture.
>>>> This is the arm32 equivalent of
>>>> "arm/mpu: Introduce MPU memory region map structure".
>>>>
>>>> Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
>>>> ---
>>>> This patch should be applied after
>>>> "[PATCH v3 0/7] First chunk for Arm R82 and MPU support" in order to enable
>>>> compilation for AArch32.
>>>>
>>>>    xen/arch/arm/include/asm/arm32/mpu.h  |  59 +++++++++++
>>>>    xen/arch/arm/include/asm/mpu.h        |   4 +
>>>>    xen/arch/arm/include/asm/mpu/cpregs.h | 135 ++++++++++++++++++++++++++
>>>>    3 files changed, 198 insertions(+)
>>>>    create mode 100644 xen/arch/arm/include/asm/arm32/mpu.h
>>>>
>>>> diff --git a/xen/arch/arm/include/asm/arm32/mpu.h b/xen/arch/arm/include/asm/arm32/mpu.h
>>>> new file mode 100644
>>>> index 0000000000..4aabd93479
>>>> --- /dev/null
>>>> +++ b/xen/arch/arm/include/asm/arm32/mpu.h
>>>> @@ -0,0 +1,59 @@
>>>> +/* SPDX-License-Identifier: GPL-2.0-only */
>>>> +/*
>>>> + * mpu.h: Arm Memory Protection Unit definitions for aarch64.
>>>> + */
>>>> +
>>>> +#ifndef __ARM_ARM32_MPU_H
>>>> +#define __ARM_ARM32_MPU_H
>>>> +
>>>> +#define XN_EL2_ENABLED  0x1
>>> I understand the define is introduced in Luca's patch, but this a bit non-descriptive... Can we find a better name? Maybe by adding the name of the register and some documentation?
>> We can rename this as PRBAR_EL2_XN if this sounds better (cc @Luca) in Luca's patch
> what about PRBAR_EL2_XN_ENABLED? I can change it in my serie
I am ok with the name.
>
>> The description can be
>>
>> Refer ARM DDI 0568A.c  ID110520 , E2.2.2
>>
>> HPRBAR [0:1] Execute Never
>>
>>>> +
>>>> +#ifndef __ASSEMBLY__
>>>> +
>>>> +/* Hypervisor Protection Region Base Address Register */
>>>> +typedef union {
>>>> +    struct {
>>>> +        unsigned int xn:1;       /* Execute-Never */
>>>> +        unsigned int ap:2;       /* Acess Permission */
>>>> +        unsigned int sh:2;       /* Sharebility */
>>>> +        unsigned int res0:1;     /* Reserved as 0 */
>>>> +        unsigned int base:26;    /* Base Address */
>>>> +    } reg;
>>>> +    uint32_t bits;
>>>> +} prbar_t;
>>>> +
>>>> +/* Hypervisor Protection Region Limit Address Register */
>>>> +typedef union {
>>>> +    struct {
>>>> +        unsigned int en:1;     /* Region enable */
>>>> +        unsigned int ai:3;     /* Memory Attribute Index */
>>>> +        /*
>>>> +         * There is no actual ns bit in hardware. It is used here for
>>>> +         * compatibility with Armr64 code. Thus, we are reusing a res0 bit for ns.
>>> typo: Arm64.
>> Ack
>>>> +         */
>>> Hmmmm, this would mean someone may mistakenly set the bit to 0 by mistake. If the field is always meant to be 0 on arm64, then I would consider to name is res0 on arm64 with an explanation.
>>>
>>> This would make clear the bit is not supposed to have a value other than 0.
>> On Arm64, ns == 0 as it can only support secure mode.
>>
>> So we can change this on Arm64 as well :-
>>
>> unsigned int res0:2; /* ns == 0 as only secure mode is supported */
>>
>> @Luca to clarify
>  From the specifications: "Non-secure bit. Specifies whether the output address is in the Secure or Non-secure memory”, I’m not sure
> that we should remove it from Arm64, so I don’t think you should have something only for compatibility, maybe the code accessing .ns
> can be compiled out for Arm32 or we can have arch-specific implementation. I think you are referring to pr_of_xenaddr when you say
> “compatibility with Arm64 code"

Yes, that is correct. So are you saying that we should have an "ifdef" 
in the function.

+++ b/xen/arch/arm/mpu/mm.c
@@ -221,7 +221,9 @@ pr_t pr_of_xenaddr(paddr_t base, paddr_t limit, 
unsigned attr)
      /* Build up value for PRLAR_EL2. */
      prlar = (prlar_t) {
          .reg = {
+#ifdef CONFIG_ARM_64
              .ns = 0,        /* Hyp mode is in secure world */
+#endif
              .ai = attr,
              .en = 1,        /* Region enabled */
          }};

I am ok with this. I just want to know if you and Julien are aligned as 
well.

>
>>>> +        unsigned int ns:1;     /* Reserved 0 by hardware */
>>>> +        unsigned int res0:1;   /* Reserved 0 by hardware */
>> Then, we can change this on Arm32 as well.
>>>> +        unsigned int limit:26;  /* Limit Address */
>>> NIT: Can we align the comments?
>> Ack.
>>>> +    } reg;
>>>> +    uint32_t bits;
>>>> +} prlar_t;
>>>> +
>>>> +/* Protection Region */
>>>> +typedef struct {
>>>> +    prbar_t prbar;
>>>> +    prlar_t prlar;
>>>> +    uint64_t p2m_type;          /* Used to store p2m types. */
>>>> +} pr_t;
>>> This looks to be common with arm64. If so, I would prefer if the structure is in a common header.
>> No, in arm64 this is
>>
>> typedef struct {
>>       prbar_t prbar;
>>       prlar_t prlar;
>> } pr_t;
>>
>> The reason being Arm64 uses unused bits (ie 'pad') to store the type.
>>
>>>> +
>>>> +#endif /* __ASSEMBLY__ */
>>>> +
>>>> +#endif /* __ARM_ARM32_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/mpu.h b/xen/arch/arm/include/asm/mpu.h
>>>> index 77d0566f97..67127149c0 100644
>>>> --- a/xen/arch/arm/include/asm/mpu.h
>>>> +++ b/xen/arch/arm/include/asm/mpu.h
>>>> @@ -8,8 +8,12 @@
>>>>      #if defined(CONFIG_ARM_64)
>>>>    # include <asm/arm64/mpu.h>
>>>> +#elif defined(CONFIG_ARM_32)
>>>> +# include <asm/arm32/mpu.h>
>>>>    #endif
>>>>    +#define PRENR_MASK  GENMASK(31, 0)
>>>> +
>>>>    #define MPU_REGION_SHIFT  6
>>>>    #define MPU_REGION_ALIGN  (_AC(1, UL) << MPU_REGION_SHIFT)
>>>>    #define MPU_REGION_MASK   (~(MPU_REGION_ALIGN - 1))
>>>> diff --git a/xen/arch/arm/include/asm/mpu/cpregs.h b/xen/arch/arm/include/asm/mpu/cpregs.h
>>>> index d5cd0e04d5..7cf52aa09a 100644
>>>> --- a/xen/arch/arm/include/asm/mpu/cpregs.h
>>>> +++ b/xen/arch/arm/include/asm/mpu/cpregs.h
>>>> @@ -6,18 +6,153 @@
>>>>    /* CP15 CR0: MPU Type Register */
>>>>    #define HMPUIR          p15,4,c0,c0,4
>>>>    +/* CP15 CR6: Protection Region Enable Register */
>>>> +#define HPRENR          p15,4,c6,c1,1
>>>> +
>>>>    /* CP15 CR6: MPU Protection Region Base/Limit/Select Address Register */
>>>>    #define HPRSELR         p15,4,c6,c2,1
>>>>    #define HPRBAR          p15,4,c6,c3,0
>>>>    #define HPRLAR          p15,4,c6,c8,1
>>>>    +/* CP15 CR6: MPU Protection Region Base/Limit Address Register */
>>>> +#define HPRBAR0         p15,4,c6,c8,0
>>>> +#define HPRLAR0         p15,4,c6,c8,1
>>>> +#define HPRBAR1         p15,4,c6,c8,4
>>>> +#define HPRLAR1         p15,4,c6,c8,5
>>>> +#define HPRBAR2         p15,4,c6,c9,0
>>>> +#define HPRLAR2         p15,4,c6,c9,1
>>>> +#define HPRBAR3         p15,4,c6,c9,4
>>>> +#define HPRLAR3         p15,4,c6,c9,5
>>>> +#define HPRBAR4         p15,4,c6,c10,0
>>>> +#define HPRLAR4         p15,4,c6,c10,1
>>>> +#define HPRBAR5         p15,4,c6,c10,4
>>>> +#define HPRLAR5         p15,4,c6,c10,5
>>>> +#define HPRBAR6         p15,4,c6,c11,0
>>>> +#define HPRLAR6         p15,4,c6,c11,1
>>>> +#define HPRBAR7         p15,4,c6,c11,4
>>>> +#define HPRLAR7         p15,4,c6,c11,5
>>>> +#define HPRBAR8         p15,4,c6,c12,0
>>>> +#define HPRLAR8         p15,4,c6,c12,1
>>>> +#define HPRBAR9         p15,4,c6,c12,4
>>>> +#define HPRLAR9         p15,4,c6,c12,5
>>>> +#define HPRBAR10        p15,4,c6,c13,0
>>>> +#define HPRLAR10        p15,4,c6,c13,1
>>>> +#define HPRBAR11        p15,4,c6,c13,4
>>>> +#define HPRLAR11        p15,4,c6,c13,5
>>>> +#define HPRBAR12        p15,4,c6,c14,0
>>>> +#define HPRLAR12        p15,4,c6,c14,1
>>>> +#define HPRBAR13        p15,4,c6,c14,4
>>>> +#define HPRLAR13        p15,4,c6,c14,5
>>>> +#define HPRBAR14        p15,4,c6,c15,0
>>>> +#define HPRLAR14        p15,4,c6,c15,1
>>>> +#define HPRBAR15        p15,4,c6,c15,4
>>>> +#define HPRLAR15        p15,4,c6,c15,5
>>>> +#define HPRBAR16        p15,5,c6,c8,0
>>>> +#define HPRLAR16        p15,5,c6,c8,1
>>>> +#define HPRBAR17        p15,5,c6,c8,4
>>>> +#define HPRLAR17        p15,5,c6,c8,5
>>>> +#define HPRBAR18        p15,5,c6,c9,0
>>>> +#define HPRLAR18        p15,5,c6,c9,1
>>>> +#define HPRBAR19        p15,5,c6,c9,4
>>>> +#define HPRLAR19        p15,5,c6,c9,5
>>>> +#define HPRBAR20        p15,5,c6,c10,0
>>>> +#define HPRLAR20        p15,5,c6,c10,1
>>>> +#define HPRBAR21        p15,5,c6,c10,4
>>>> +#define HPRLAR21        p15,5,c6,c10,5
>>>> +#define HPRBAR22        p15,5,c6,c11,0
>>>> +#define HPRLAR22        p15,5,c6,c11,1
>>>> +#define HPRBAR23        p15,5,c6,c11,4
>>>> +#define HPRLAR23        p15,5,c6,c11,5
>>>> +#define HPRBAR24        p15,5,c6,c12,0
>>>> +#define HPRLAR24        p15,5,c6,c12,1
>>>> +#define HPRBAR25        p15,5,c6,c12,4
>>>> +#define HPRLAR25        p15,5,c6,c12,5
>>>> +#define HPRBAR26        p15,5,c6,c13,0
>>>> +#define HPRLAR26        p15,5,c6,c13,1
>>>> +#define HPRBAR27        p15,5,c6,c13,4
>>>> +#define HPRLAR27        p15,5,c6,c13,5
>>>> +#define HPRBAR28        p15,5,c6,c14,0
>>>> +#define HPRLAR28        p15,5,c6,c14,1
>>>> +#define HPRBAR29        p15,5,c6,c14,4
>>>> +#define HPRLAR29        p15,5,c6,c14,5
>>>> +#define HPRBAR30        p15,5,c6,c15,0
>>>> +#define HPRLAR30        p15,5,c6,c15,1
>>>> +#define HPRBAR31        p15,5,c6,c15,4
>>>> +#define HPRLAR31        p15,5,c6,c15,5
>>> NIT: Is there any way we could generate the values using macros?
>> This looks tricky. So I will prefer to keep this as it is.
>>>> +
>>>>    /* Aliases of AArch64 names for use in common code */
>>>>    #ifdef CONFIG_ARM_32
>>>>    /* Alphabetically... */
>>>>    #define MPUIR_EL2       HMPUIR
>>>>    #define PRBAR_EL2       HPRBAR
>>>> +#define PRBAR0_EL2      HPRBAR0
>>> AFAIU, the alias will be mainly used in the macro generate
>>> the switch. Rather than open-coding all the PR*AR_EL2, can we
>>> provide two macros PR{B, L}AR_N that will be implemented as
>>> HPR{B,L}AR##n for arm32 and PR{B,L}AR##n for arm64?
>> Yes , we can have
>>
>> #define PR{B,L}AR_EL2_(n)          HPR{B,L}AR##n for arm32
>>
>> #define PR{B,L}AR_EL2_(n)          PR{B,L}AR##n##_EL2
> we could have them in mm.c, I see in your v2 you’ve put them in cpregs.h,
> but since they are only used by the generator, I would put them there.

You mean the above two macros should be moved to mm.c. I am ok with that.

Just 2 more things to be aligned :-

1. Are we ok to use PRBAR_EL2_(num) and PRLAR_EL2_(num) in the common 
code (ie mpu/mm.c) ?

2. Are you ok to introduce ifdef in prepare_selector() ?

Please have a look at my v2 for reference.

- Ayan

>
>
>


From xen-devel-bounces@lists.xenproject.org Tue Apr 29 12:12:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 12:12:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.972305.1360671 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9jot-0001eI-0P; Tue, 29 Apr 2025 12:12:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 972305.1360671; Tue, 29 Apr 2025 12:12: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 1u9jos-0001eB-Tu; Tue, 29 Apr 2025 12:12:14 +0000
Received: by outflank-mailman (input) for mailman id 972305;
 Tue, 29 Apr 2025 12:12: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=mkRs=XP=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1u9joq-0001cY-TL
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 12:12:13 +0000
Received: from AM0PR02CU008.outbound.protection.outlook.com
 (mail-westeuropeazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c201::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2ced8407-24f3-11f0-9eb4-5ba50f476ded;
 Tue, 29 Apr 2025 14:12:10 +0200 (CEST)
Received: from AM0PR10CA0092.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:208:15::45)
 by DU5PR08MB10611.eurprd08.prod.outlook.com (2603:10a6:10:519::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8699.19; Tue, 29 Apr
 2025 12:12:06 +0000
Received: from AMS1EPF00000046.eurprd04.prod.outlook.com
 (2603:10a6:208:15:cafe::e8) by AM0PR10CA0092.outlook.office365.com
 (2603:10a6:208:15::45) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.41 via Frontend Transport; Tue,
 29 Apr 2025 12:12:05 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AMS1EPF00000046.mail.protection.outlook.com (10.167.16.43) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8678.33
 via Frontend Transport; Tue, 29 Apr 2025 12:12:05 +0000
Received: from DB7PR08MB2987.eurprd08.prod.outlook.com (2603:10a6:5:1c::25) by
 AS8PR08MB5877.eurprd08.prod.outlook.com (2603:10a6:20b:291::13) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.33; Tue, 29 Apr
 2025 12:11:32 +0000
Received: from DB7PR08MB2987.eurprd08.prod.outlook.com
 ([fe80::d53f:b16d:70a5:8668]) by DB7PR08MB2987.eurprd08.prod.outlook.com
 ([fe80::d53f:b16d:70a5:8668%5]) with mapi id 15.20.8678.028; Tue, 29 Apr 2025
 12:11: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: 2ced8407-24f3-11f0-9eb4-5ba50f476ded
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=Ii0rA+AdmgGnaCSvWw6vJMgWeMhzxs0ZRlKaUHanXZdl+NAtdi5ANq+ERNoSMCji7z7D4TCx72evTNaBuzjz6uAhkLAIEXMNvUDu50p1g9bUqZwMyC8rOqiwzuPbTx8mO2QhyKDAzRVfYT2ilwK5LS/uj2i+PIsGoq1emU6gOBR0h1Hec+A1Y8uqEerfvKI+gFxTpjUWZcaQ+Vfx6b0hRNS7zPm24LsAJpEwdn1b5VR0w+5TdLIE/Tih3a3MWApU0abUjpM3CBEoebNaXG+1V4B77dA/e1nRxa40ScYUqUnq2iRxe7r/9Dh0qNa7nlYJbtAyaop01yv+obQly/woKA==
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=mowOPD5oIW5OewRgMIrVTFCwYQi6n9pxGWenuRl0O8g=;
 b=U7WkCuMXdj7pmrLSPtPVmia4gyCFYW3SBcJp6H5GFggmNjs2iVZ7NRVFUcHDVwQThHn01gSbvZnHL9aqiVNmsPCgombd/MwfOGej4Gn9SxL/I1IOwf5h4BfUjbsAXI31HBLOZwxZ67fC+Evxca/uA9EOmiJYQkYOfo+DyMjphmbZkCHQUzNO060a3Kq+bIZBftmWD1QL+JM0UN3ZLsxotY2EIpcUfXvIvNdwdHUI0lE1F5alfARe5ZPHBxEshVGrYOElgNZ9dyQfjm8dYKbTdiaAh4R2jFduIHkvooBRop7gQqDhhz34cdmTMz7ygCr7Y/1XaKmfYZPq2BOdWLigxw==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=amd.com smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=mowOPD5oIW5OewRgMIrVTFCwYQi6n9pxGWenuRl0O8g=;
 b=SOdzIBcG5HiB1PdYlRhe59NtnYE6I+Y77zw5zzEL1/z4HiQ9aMb3pW/fAk4V8D11r8Vf2dEzxPffCHkgPy8yJqEQlXkub8GzkKIt+doIfjXjXWUpsG1KjHtGbHOOlNoPxgZ65ctV934n/5ac2Z1x4FDz5QT57Pf2p42ZtS5bQeo=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=gaNv6qEx7vTZ1y2yYd9Bvsti/imAw/Hz/6jK0T1JEukF7iSzFPCKjSwu0OmezdPinGhwn+0KmtKEfpIM3Z59CInAyDjUS+CCJk+ocflOfToOhXOGkAjjsiRpwpmrNhwpa4z2k1nXxJdQovg28Ld6DYUZyBh/fZgAZVejUKq1rMK316Vu7Bk03U8bby2IZkpkbYL9esRzrpwsgp8+A5jjRx52YEZ4bi1DbhskqU2MNQEWw/D89I7/BuBs0QLvLpsUuXyDkAYvRHBw1kiyIPCIyAov/gui2Y+OtxNu6bsYYLc6xOKEXn2I0zBJmYT+gLmnSRPzUE2BtOaB7p6K9Eh9Tg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=mowOPD5oIW5OewRgMIrVTFCwYQi6n9pxGWenuRl0O8g=;
 b=nNGcTz6egwDsZ3OKJ0JTDzDQJ7JwAk4wJndW2aX1xQIq5DY+gvBGVohzpiS6q1oYzGZeyAMw3ryDiNpRyNUOd23ODUYNk5VgknTTlKeV/IpXvtsaebVvBbbsNnoI8nCuNjz8kUAu3Tz1Zv8twzu1JLVlpL16VRWYFK5ps4krCteTNh4gN805xt1aPYsZeNBW5vzUSXqh7MjMeKNPi/J7YyMDuil+U/1KKwrHCQZBgVruqz5JZp+kuSHrVMhSf8BSzE/bPO97Ma69bXVPODJoPRdEGHhZSNZ203hGSBWOFnFTtZ0PKduqTk6j870HzsPiuF1Pt3Fl2SNmlBnIwlrVFw==
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=mowOPD5oIW5OewRgMIrVTFCwYQi6n9pxGWenuRl0O8g=;
 b=SOdzIBcG5HiB1PdYlRhe59NtnYE6I+Y77zw5zzEL1/z4HiQ9aMb3pW/fAk4V8D11r8Vf2dEzxPffCHkgPy8yJqEQlXkub8GzkKIt+doIfjXjXWUpsG1KjHtGbHOOlNoPxgZ65ctV934n/5ac2Z1x4FDz5QT57Pf2p42ZtS5bQeo=
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>, 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 v1] xen/arm: AArch32-V8R: Add MPU register definitions
Thread-Topic: [PATCH v1] xen/arm: AArch32-V8R: Add MPU register definitions
Thread-Index: AQHbr7FEzJkzCX7IxEuG28e/+R7zurOo3KoAgAt3HYCABS1xgIABHSuAgAABxgA=
Date: Tue, 29 Apr 2025 12:11:32 +0000
Message-ID: <DD4D78CC-511F-4F72-B512-1DC181446E0F@arm.com>
References: <20250417155511.1854081-1-ayan.kumar.halder@amd.com>
 <306e5414-1552-4605-86d6-b23b89d00bc9@xen.org>
 <cebb0020-531f-467c-bc81-54d2ba1aa8e0@amd.com>
 <2697BC06-8A78-42B4-9977-07907BBBDC3D@arm.com>
 <388f39ad-6aa6-4b95-9941-334b434ff400@amd.com>
In-Reply-To: <388f39ad-6aa6-4b95-9941-334b434ff400@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.400.131.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DB7PR08MB2987:EE_|AS8PR08MB5877:EE_|AMS1EPF00000046:EE_|DU5PR08MB10611:EE_
X-MS-Office365-Filtering-Correlation-Id: e86de927-38be-490e-2b77-08dd87170e78
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?NWRkTWEwSGVqazdFZGdMczNXQlJmSEh2K3BTai9QQU94NVdiWTdWVFlCVEx4?=
 =?utf-8?B?aWRxdk5qVjBCS01TR0xFU1R4OExjREFPZ0xONFV6bnVXMDRKakpUK0dVazl0?=
 =?utf-8?B?emdMZlJSLzE5dXlnV2VpR0V1YmNBSlFVVjZqVk0xWVU0RnB1QzdBbmlJeDQ3?=
 =?utf-8?B?RlZJaHFWV0RLc3lzOGJLbXVwVFdyeXpUcU1RYVdvUmVIVk1MaDBlN0hHL3NW?=
 =?utf-8?B?U1lFbHNyU1A5MEFZcGxlN3hPNFZkN09ES1RWaEFnRDFUY2hJclZEZUZ6OEZj?=
 =?utf-8?B?eisyc2RUUXZsMmJhbVFJVWVEVEorL1BXd1lab2JOQTNCVk5scFdkSjA1VEJH?=
 =?utf-8?B?KzdqNFZMdnpRVE5VeDJrOGtmV2hONjd4YWZ5WUtMcEZpK2dQdld4NjVkMlAy?=
 =?utf-8?B?cmtzT3gzVDBrT1dWRWRmS2tnRGcvT2hCb0ljZkttbW0zVGRTNDR1RnVTblY2?=
 =?utf-8?B?eHF2SXRsa1Z6cnlYQTFESVBzVVhLcGF6QStvYzl2anRBcTA1MmI4WVRQeG1S?=
 =?utf-8?B?Y1ZzdEFObmozT2x0anFyUDVzVFJMMXpiTUNsWW9GNjVnRnZoVXJ2SHVGMnJO?=
 =?utf-8?B?QmptdXYvSnJVUlZNUGJCVERNc256NHdjY2ltUm5pQkdjdGpLZVNaaHZoZFBp?=
 =?utf-8?B?Tk1IYmJ1ckovemxFeU15SEttaVVzR2tNOFVESWNZSzNUT3d5UGUyYnVOVC9t?=
 =?utf-8?B?Zk9UUlJaK2JFOUg1UUdXdjV0dzJzMkJIQUYxbCtjelFDL0t6SzhSS2xORC9M?=
 =?utf-8?B?VlY1RnNtVExKRTZud3czdDdIWXdnbUVGV1pVVmpndXNLcmpGYiszRUVxem80?=
 =?utf-8?B?WWYyYUdTSUpqYTFuZ2VIVXJqWGpjOFRPMXNucHQvNWI2T2pjbXBCdmZxbXZa?=
 =?utf-8?B?TndRbzdxbCtHOW55dTBlYldJdWFvZ0ltTUViS08zUENRREl0eDZBVG5hWlVT?=
 =?utf-8?B?SDVqSXVucGsxYWNLaSs5bDg0eU9uZGo2Q2tKOFFyTFlaMVM3QlByeHZSZ3FJ?=
 =?utf-8?B?K0s0MW9odk4vUlc5dzNUTnBXbUg4cEs4Qy9yYXdPeW9hVUVmL2Jkdi9hM3Nt?=
 =?utf-8?B?ajVuWkhPMnBVTGlEaCsyNEVDcWNOL1pZN0FZQ2cvZlAveW9QK2IzZmRsYUts?=
 =?utf-8?B?bWhUWUQvR1R1YUFFN3dPK3V5UWhrbC9ycVR2T3A5ckxRZDdrMFFHK09TSzBQ?=
 =?utf-8?B?dFhIdlRhNG5oRFlCYmRwNHRwWFBUTE96cXNyODhGbmZyN3UvUEdiTVRRMXZF?=
 =?utf-8?B?L2dyM0oyWENzblIxZVBpaENRVmNjVE1FWEZ3N09YZllqbXhjNTlCbU1jSllq?=
 =?utf-8?B?Y0pWVnRsSGtQcnJ6YU5wbVplTWI2WTg4cUtxTXpBK3gzMVN1a3VNd01jYmlV?=
 =?utf-8?B?Vk1ROVBPUy90dUtMTENKRFNoRjVDa0kxZ01TaXo3UjFFM210djhwcjd1dSsv?=
 =?utf-8?B?SlZ6TkdoamtaQk5kYThiVEEvb3h4T0habXpSd2JIdE9Bc1orKzQ0UkRvd3Jy?=
 =?utf-8?B?SmxMNmZZMll0ZHhmdFdnVVlGc2Q5NHZTcU5YdCtpNmdaVkNnTkRtOUZDV2R2?=
 =?utf-8?B?TWpjUXJPcTFkT1Y3K3VRUWtjejI4TlhaMVQ2azJqUzlyb0NuS1ZFWlZ5RWxC?=
 =?utf-8?B?Um9tWXgvZWpLQ0tuZ2xvanE1VUR1MDJqR1F2NjNUY1M0YmdwaG1abjkyQWFt?=
 =?utf-8?B?U3NYMTc0dmpkZHZVelNvQk9abGI4VlEvSTB1Z0FJY3c4S0trRy9OaGZ6bzEv?=
 =?utf-8?B?WGlTMmFyTFBNSkhjYWhBdXhBWFZ1MTIzUTBBSlB6UHFETWZlSGVBWmg5UllG?=
 =?utf-8?B?L05wU0hEb2JZWUJvL1lFWEhseE1UQ1p4RXk2N0lTbytnNHlhbkc3RHZPSXV5?=
 =?utf-8?B?ZldQNlZNRUM0UTVWckt3ZGlHbmdXOTlSazNsVEtvblFhWURnMGhkTzBzWUJa?=
 =?utf-8?B?SnRvdTdTbDZTSnJ3cDQzcGNITTgzWGhFV3NydTlZbmRHY3E0TjhSeFFQNEkv?=
 =?utf-8?B?Nml5ZjZveG93PT0=?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB7PR08MB2987.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: <D9D28F8791561C44BCA54BB1E57020EF@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB5877
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AMS1EPF00000046.eurprd04.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	5c3f0bf7-25e8-43b9-8813-08dd8716faee
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|14060799003|35042699022|36860700013|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?TW9mRmY2UVF6a29PSDZwZmZveUtOT1F5T0p2SDFVZytMRWRrUGh1TU1JcTQv?=
 =?utf-8?B?N0Z1K2ZIcXJGYjYxai9nOGFxRjU2L1FoN3hRalV6alhBU21ZZmFLcWJkYU9k?=
 =?utf-8?B?OG1mYjl1eHgrZ1VJQkVrNEc3ejRoZ0lhSEU4cWQrYytZV0l4dWh6Z1ZEUzk3?=
 =?utf-8?B?bDNUSjQzNFdOQkQvOEpSV3pkUzdqZFhQVUdXc2cwZVEvUStKejJleStRYzNx?=
 =?utf-8?B?K3RRQ3hRZTEwWkptMmdsL0tzNG5ha2Fjc0NDV2FlOTdJUU5vWkd0ZUhVYWQ5?=
 =?utf-8?B?QzlTeTBQQ2tEVUgwbFlZWHF3RUhWVkNxNG11NXpacEFXSEJobHFDUVd2T2dX?=
 =?utf-8?B?dk8rUlZZNm8rT0JGMjRIaUxiQVRyYUhad2JrcFluOVE0cTl1YTZITWYrUnZO?=
 =?utf-8?B?SWpDV3NFWmRRRk1YNjVlaHp3dm9aOWNUc0xlYS9qS05oUmFPMUdCWWlNL0pR?=
 =?utf-8?B?TWhjN3VRaWtyMDZHYzJ6QXhqd2QySVllWkJtS0l4bVcvbGovdnFtdjJRNlRx?=
 =?utf-8?B?VStCTC9sTGY4clMvMlZSNWJlazAyVVlZZEk0dEJmelEvVFZycjVaTFFERFpW?=
 =?utf-8?B?QlZXa0U4YUZyWHprUExzbDI3aXlWeGRFOVFYNUhCU2tvUTNmT1RvQzNQRDZK?=
 =?utf-8?B?bHVNZjN6SXEvOHROb0JYZ0VsOWpvUVpYemxBcHBZUE1tYytjRWZwZHdUMjhE?=
 =?utf-8?B?QUNLV2lGR21nRzVCRSs0VWJQUXdsV0F3aS9xTTFtSXUrR21RUjF0YS9UaENx?=
 =?utf-8?B?enNlbUNWOHZGcGF0WVJPK2xacWVTWldtNzEySklkZk5heHBGSU1lYXlaNmw5?=
 =?utf-8?B?Tkc4WVhFYTJGMjdhcWt4aE1PQmYxYXJmNjNlYXc3RG1YeklJandvUllWMDFK?=
 =?utf-8?B?ekxSRFlZeTUwZ1FYa2JqQW1sSk1NdFVmM0tJSSsxMDhEYUQwWXBrZHFRYUhp?=
 =?utf-8?B?Vko1c2ZyeDB1bXNaNnU0blZTWkJxNGc1ckQvTVJRcHRxdEFvZUQ4a0VtSWpB?=
 =?utf-8?B?bnJTdk1yNzZvcjZaaVdTN2VVbkNWTmxSbVRRRmgwNEthSlpuYXVQdTl6dEFY?=
 =?utf-8?B?UWxiTmRVdXU1aG5xL2FPVXlRRHIrcXQ0dkJZVGZNeWh0b2FwYWFFa01JZTBM?=
 =?utf-8?B?Ly9BdmZ6NWxWRUNNVnJmSEFkbEIyYXR2djNJb3VWMExhZW0yeW1DcS9iMjk2?=
 =?utf-8?B?cE5ZSURrMGE4Z0dFNHFYUFJoa2NteFdpeW5rSnZIZzJnVWZWRTZvNXFaQ1Jx?=
 =?utf-8?B?QVRzOEpGQkN0ak8wQUM1d0dOYW1rVmdRYlpqK0J5TVZyWDU4aWt1a05jWGdG?=
 =?utf-8?B?KzZzaEV2UU4zblVuUW9vaWJMR0N2RnUxZ0pvZEFvSmE1ZURDUUphZlpxTDAw?=
 =?utf-8?B?YmZqTUltRXVscWlMbjg0VVU5YVBJUk5nbEZKVG0zMnFBcFRlUXI5R1pnYTBQ?=
 =?utf-8?B?VE8rTW1HSm4xTTJEbUNiVWxyZjN2Z3RHa0hIa0c1cm1jT0dSeTdUNElPa09j?=
 =?utf-8?B?N0YrRDJydnVDdGQ3STl0ZkVPZzMyZnAzaUhSLzRrNFp1YVhjUUxFaWlRQklp?=
 =?utf-8?B?OUpYVS9HL0hGN2UvQ1NKeGJJUlpGaTJNNi9HQ2JlL0FxSkZsK1lsbzZSSGVz?=
 =?utf-8?B?TVByOGFFeExOK1R6YVBDMVp1TjhYdlc0NFhSS3Q3endvUVRXV1c4SmRNTmNE?=
 =?utf-8?B?VmE2S2NDM1IvbWJIM3hOYm9aMGxlbXBsTmprV01IdVhvS2FDWXNDc1BYTUxr?=
 =?utf-8?B?VitHbWVkb2xncXFmdWNNSWNjSDI4VVo5NkZCSFhuQXRuS0JpRTBaRUpwcVRh?=
 =?utf-8?B?NHpVbUFBMWRlc3JZbDR0bWMzTUFqTkZ3eXlGQmVwZU5KZTlScjhqSHppWC85?=
 =?utf-8?B?S0VocVZDa1cxcVBFTXpqdDByNTd6SkxkT0U5VHJIRDY0T1VqQUM3R2dUQm55?=
 =?utf-8?B?ZCtacjJrR1ZWWmlUemVRVWpoMHFXTWZLR296STVsMUNTYkRGRnlNSmNxWndD?=
 =?utf-8?B?VkFUTjZDK2JONW5La01iUDhDYXRSQlA2VnM1NzROcjF2ZndtbzVVMSt4MGxV?=
 =?utf-8?Q?X361+d?=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(376014)(14060799003)(35042699022)(36860700013)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Apr 2025 12:12:05.2164
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: e86de927-38be-490e-2b77-08dd87170e78
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AMS1EPF00000046.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU5PR08MB10611

SGkgQXlhbiwNCg0KPj4+Pj4gKyAgICAgICAgLyoNCj4+Pj4+ICsgICAgICAgICAqIFRoZXJlIGlz
IG5vIGFjdHVhbCBucyBiaXQgaW4gaGFyZHdhcmUuIEl0IGlzIHVzZWQgaGVyZSBmb3INCj4+Pj4+
ICsgICAgICAgICAqIGNvbXBhdGliaWxpdHkgd2l0aCBBcm1yNjQgY29kZS4gVGh1cywgd2UgYXJl
IHJldXNpbmcgYSByZXMwIGJpdCBmb3IgbnMuDQo+Pj4+IHR5cG86IEFybTY0Lg0KPj4+IEFjaw0K
Pj4+Pj4gKyAgICAgICAgICovDQo+Pj4+IEhtbW1tLCB0aGlzIHdvdWxkIG1lYW4gc29tZW9uZSBt
YXkgbWlzdGFrZW5seSBzZXQgdGhlIGJpdCB0byAwIGJ5IG1pc3Rha2UuIElmIHRoZSBmaWVsZCBp
cyBhbHdheXMgbWVhbnQgdG8gYmUgMCBvbiBhcm02NCwgdGhlbiBJIHdvdWxkIGNvbnNpZGVyIHRv
IG5hbWUgaXMgcmVzMCBvbiBhcm02NCB3aXRoIGFuIGV4cGxhbmF0aW9uLg0KPj4+PiANCj4+Pj4g
VGhpcyB3b3VsZCBtYWtlIGNsZWFyIHRoZSBiaXQgaXMgbm90IHN1cHBvc2VkIHRvIGhhdmUgYSB2
YWx1ZSBvdGhlciB0aGFuIDAuDQo+Pj4gT24gQXJtNjQsIG5zID09IDAgYXMgaXQgY2FuIG9ubHkg
c3VwcG9ydCBzZWN1cmUgbW9kZS4NCj4+PiANCj4+PiBTbyB3ZSBjYW4gY2hhbmdlIHRoaXMgb24g
QXJtNjQgYXMgd2VsbCA6LQ0KPj4+IA0KPj4+IHVuc2lnbmVkIGludCByZXMwOjI7IC8qIG5zID09
IDAgYXMgb25seSBzZWN1cmUgbW9kZSBpcyBzdXBwb3J0ZWQgKi8NCj4+PiANCj4+PiBATHVjYSB0
byBjbGFyaWZ5DQo+PiBGcm9tIHRoZSBzcGVjaWZpY2F0aW9uczogIk5vbi1zZWN1cmUgYml0LiBT
cGVjaWZpZXMgd2hldGhlciB0aGUgb3V0cHV0IGFkZHJlc3MgaXMgaW4gdGhlIFNlY3VyZSBvciBO
b24tc2VjdXJlIG1lbW9yeeKAnSwgSeKAmW0gbm90IHN1cmUNCj4+IHRoYXQgd2Ugc2hvdWxkIHJl
bW92ZSBpdCBmcm9tIEFybTY0LCBzbyBJIGRvbuKAmXQgdGhpbmsgeW91IHNob3VsZCBoYXZlIHNv
bWV0aGluZyBvbmx5IGZvciBjb21wYXRpYmlsaXR5LCBtYXliZSB0aGUgY29kZSBhY2Nlc3Npbmcg
Lm5zDQo+PiBjYW4gYmUgY29tcGlsZWQgb3V0IGZvciBBcm0zMiBvciB3ZSBjYW4gaGF2ZSBhcmNo
LXNwZWNpZmljIGltcGxlbWVudGF0aW9uLiBJIHRoaW5rIHlvdSBhcmUgcmVmZXJyaW5nIHRvIHBy
X29mX3hlbmFkZHIgd2hlbiB5b3Ugc2F5DQo+PiDigJxjb21wYXRpYmlsaXR5IHdpdGggQXJtNjQg
Y29kZSINCj4gDQo+IFllcywgdGhhdCBpcyBjb3JyZWN0LiBTbyBhcmUgeW91IHNheWluZyB0aGF0
IHdlIHNob3VsZCBoYXZlIGFuICJpZmRlZiIgaW4gdGhlIGZ1bmN0aW9uLg0KPiANCj4gKysrIGIv
eGVuL2FyY2gvYXJtL21wdS9tbS5jDQo+IEBAIC0yMjEsNyArMjIxLDkgQEAgcHJfdCBwcl9vZl94
ZW5hZGRyKHBhZGRyX3QgYmFzZSwgcGFkZHJfdCBsaW1pdCwgdW5zaWduZWQgYXR0cikNCj4gICAg
ICAvKiBCdWlsZCB1cCB2YWx1ZSBmb3IgUFJMQVJfRUwyLiAqLw0KPiAgICAgIHBybGFyID0gKHBy
bGFyX3QpIHsNCj4gICAgICAgICAgLnJlZyA9IHsNCj4gKyNpZmRlZiBDT05GSUdfQVJNXzY0DQo+
ICAgICAgICAgICAgICAubnMgPSAwLCAgICAgICAgLyogSHlwIG1vZGUgaXMgaW4gc2VjdXJlIHdv
cmxkICovDQo+ICsjZW5kaWYNCj4gICAgICAgICAgICAgIC5haSA9IGF0dHIsDQo+ICAgICAgICAg
ICAgICAuZW4gPSAxLCAgICAgICAgLyogUmVnaW9uIGVuYWJsZWQgKi8NCj4gICAgICAgICAgfX07
DQo+IA0KPiBJIGFtIG9rIHdpdGggdGhpcy4gSSBqdXN0IHdhbnQgdG8ga25vdyBpZiB5b3UgYW5k
IEp1bGllbiBhcmUgYWxpZ25lZCBhcyB3ZWxsLg0KDQp0aGlzIGlzIG15IHByb3Bvc2FsLCB5ZXMN
Cg0KPj4+Pj4gDQo+Pj4+IE5JVDogSXMgdGhlcmUgYW55IHdheSB3ZSBjb3VsZCBnZW5lcmF0ZSB0
aGUgdmFsdWVzIHVzaW5nIG1hY3Jvcz8NCj4+PiBUaGlzIGxvb2tzIHRyaWNreS4gU28gSSB3aWxs
IHByZWZlciB0byBrZWVwIHRoaXMgYXMgaXQgaXMuDQo+Pj4+PiArDQo+Pj4+PiAgIC8qIEFsaWFz
ZXMgb2YgQUFyY2g2NCBuYW1lcyBmb3IgdXNlIGluIGNvbW1vbiBjb2RlICovDQo+Pj4+PiAgICNp
ZmRlZiBDT05GSUdfQVJNXzMyDQo+Pj4+PiAgIC8qIEFscGhhYmV0aWNhbGx5Li4uICovDQo+Pj4+
PiAgICNkZWZpbmUgTVBVSVJfRUwyICAgICAgIEhNUFVJUg0KPj4+Pj4gICAjZGVmaW5lIFBSQkFS
X0VMMiAgICAgICBIUFJCQVINCj4+Pj4+ICsjZGVmaW5lIFBSQkFSMF9FTDIgICAgICBIUFJCQVIw
DQo+Pj4+IEFGQUlVLCB0aGUgYWxpYXMgd2lsbCBiZSBtYWlubHkgdXNlZCBpbiB0aGUgbWFjcm8g
Z2VuZXJhdGUNCj4+Pj4gdGhlIHN3aXRjaC4gUmF0aGVyIHRoYW4gb3Blbi1jb2RpbmcgYWxsIHRo
ZSBQUipBUl9FTDIsIGNhbiB3ZQ0KPj4+PiBwcm92aWRlIHR3byBtYWNyb3MgUFJ7QiwgTH1BUl9O
IHRoYXQgd2lsbCBiZSBpbXBsZW1lbnRlZCBhcw0KPj4+PiBIUFJ7QixMfUFSIyNuIGZvciBhcm0z
MiBhbmQgUFJ7QixMfUFSIyNuIGZvciBhcm02ND8NCj4+PiBZZXMgLCB3ZSBjYW4gaGF2ZQ0KPj4+
IA0KPj4+ICNkZWZpbmUgUFJ7QixMfUFSX0VMMl8obikgICAgICAgICAgSFBSe0IsTH1BUiMjbiBm
b3IgYXJtMzINCj4+PiANCj4+PiAjZGVmaW5lIFBSe0IsTH1BUl9FTDJfKG4pICAgICAgICAgIFBS
e0IsTH1BUiMjbiMjX0VMMg0KPj4gd2UgY291bGQgaGF2ZSB0aGVtIGluIG1tLmMsIEkgc2VlIGlu
IHlvdXIgdjIgeW914oCZdmUgcHV0IHRoZW0gaW4gY3ByZWdzLmgsDQo+PiBidXQgc2luY2UgdGhl
eSBhcmUgb25seSB1c2VkIGJ5IHRoZSBnZW5lcmF0b3IsIEkgd291bGQgcHV0IHRoZW0gdGhlcmUu
DQo+IA0KPiBZb3UgbWVhbiB0aGUgYWJvdmUgdHdvIG1hY3JvcyBzaG91bGQgYmUgbW92ZWQgdG8g
bW0uYy4gSSBhbSBvayB3aXRoIHRoYXQuDQo+IA0KPiBKdXN0IDIgbW9yZSB0aGluZ3MgdG8gYmUg
YWxpZ25lZCA6LQ0KPiANCj4gMS4gQXJlIHdlIG9rIHRvIHVzZSBQUkJBUl9FTDJfKG51bSkgYW5k
IFBSTEFSX0VMMl8obnVtKSBpbiB0aGUgY29tbW9uIGNvZGUgKGllIG1wdS9tbS5jKSA/DQo+IA0K
PiAyLiBBcmUgeW91IG9rIHRvIGludHJvZHVjZSBpZmRlZiBpbiBwcmVwYXJlX3NlbGVjdG9yKCkg
Pw0KPiANCj4gUGxlYXNlIGhhdmUgYSBsb29rIGF0IG15IHYyIGZvciByZWZlcmVuY2UuDQoNCkkg
d2lsbCBjaGFuZ2UgbXkgaW1wbGVtZW50YXRpb24gdG8gaW50cm9kdWNlIG9uIEFybTY0IFBSe0Is
TH1BUl9FTDJfKG51bSkgLT4gUFJ7QixMfUFSIyNudW0jI19FTDIsDQpJIHdpbGwgdGhlbiBwcm90
ZWN0IGV2ZXJ5dGhpbmcgd2l0aCBDT05GSUdfQVJNXzY0LCB0aGlzIHdpbGwgZW5zdXJlIHByb3Bl
ciBjb21waWxhdGlvbiBvbiBib3RoIGFyY2hpdGVjdHVyZS4NCg0KV2hlbiB5b3Ugd2lsbCBpbnRy
b2R1Y2UgeW91ciBjaGFuZ2VzLCB5b3Ugd2lsbCBoYXZlIG9ubHkgdG8gcmV2ZXJ0IHRoZSAjaWZk
ZWYgQ09ORklHX0FSTV82NCB0aGF0IHByb3RlY3RzDQp0aGUgY29tbW9uIGNvZGUgYW5kIGltcGxl
bWVudCB0aGUgY2hhbmdlcyB0byBidWlsZCBvbiBBcm0zMi4NCg0KSSB0aGluayB0aGlzIGlzIHRo
ZSBiZXN0IHdheSB0byBlbnN1cmUgd2UgYXJlIG5vdCBibG9ja2VkIGJ5IGVhY2ggb3RoZXIgd2hp
bGUga2VlcGluZyB0aGUgY2h1cm4gYXMgbG93IGFzIHBvc3NpYmxlLg0KDQpQbGVhc2UgQGp1bGll
biBhbmQvb3Igb3RoZXIgbWFpbnRhaW5lcnMgbGV0IG1lIGtub3cgeW91ciBvcGluaW9uIG9uIHRo
aXMuDQoNCkNoZWVycywNCkx1Y2E=


From xen-devel-bounces@lists.xenproject.org Tue Apr 29 12:20:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 12:20:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.972319.1360681 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9jwY-0003VP-Rd; Tue, 29 Apr 2025 12:20:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 972319.1360681; Tue, 29 Apr 2025 12: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 1u9jwY-0003VI-Nu; Tue, 29 Apr 2025 12:20:10 +0000
Received: by outflank-mailman (input) for mailman id 972319;
 Tue, 29 Apr 2025 12: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=qXnC=XP=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u9jwX-0003V9-P8
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 12:20:09 +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 4a393824-24f4-11f0-9eb4-5ba50f476ded;
 Tue, 29 Apr 2025 14:20:08 +0200 (CEST)
Received: by mail-ed1-x52b.google.com with SMTP id
 4fb4d7f45d1cf-5efe8d9eb1eso6305800a12.0
 for <xen-devel@lists.xenproject.org>; Tue, 29 Apr 2025 05:20:08 -0700 (PDT)
Received: from [10.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-5f703833d98sm7337842a12.73.2025.04.29.05.20.06
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 29 Apr 2025 05:20: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: 4a393824-24f4-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745929208; x=1746534008; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=BD1pZB0ueDrOOb/kwa74vUwysl7rN4XMxeOX8a800qE=;
        b=fv+Ms9bRI/41ykYMtRLMmw9GFkEMVWMYs8BydnG+eDTmxOXo8M5kLgSTFfqQuaQObh
         MD2KF+gMvk3BxqVE9VwNofI3SjeVqmhoDuduYIlglhUor4pL7XaJP4luMZev0ZhN0e7/
         tHfQsJGwWoHWYFW2youYBdUxD37eQ3jDJCyqg20yir+axq30yrlLgQy/GSwXPzfbdmmv
         PxGtPiQCRn/wIGRNFZaumSfbJ1YOJzTxQgR7X45TOPb9sbXzHNvoBD6GIpTdL1bkn+Fm
         K/NLl2XrjUEfTYlQpwmLMZLLfRGUsCSHF02dJ8Zun75/s15RYaH4RGHlty0MHBDscf+x
         LIRQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745929208; x=1746534008;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=BD1pZB0ueDrOOb/kwa74vUwysl7rN4XMxeOX8a800qE=;
        b=iHWp1KM767vdI7+hkmmeI8PamIztvJl0v3Efdg9MprZayQAppFvUysMHdcBW4zYORq
         wmpa0KN+7r1jP463uLUhUeRkn8Z6dtp4G57m9IKeaQKfwcKJOB5rZ3L0nPwIlWfTHGJb
         yHBkm8OUJeQJLZyVBh5nrnLXBv22Yu/D8U1TRU9ZlNuN2+6cvlyvH+SLZTzpmaq6Xa6o
         PY2oCqci2LegpFb8ZgidUHH+PamWoERBoMsGqfmkAYHOg/upb5lg/btdI4PmcqlI0Bx4
         rZGnpNkRk/Ggsbh4ptkfl1X/DX8mPGgUSJNBEDILAvCfOYgZoVbONLT8Re1wfd3lJ4r/
         rLzA==
X-Forwarded-Encrypted: i=1; AJvYcCVFsocERFFxjKlNYCNYf5xJZ8A4dXN+Zs7hun8RtUVBpmmmd0OEKftpsldIzAj0ED+Ab+51x1hVnI8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyZSRy7BFzkoC/lmHtgj2Q1+FMlmzlwVAcRCuzNKNrJN0EVhZGD
	2d1L7de1p8gbdZHx71/w/0F0Bm7SmDkarO17znVsSjgx+jkfe9v4RNeB31ZC9g==
X-Gm-Gg: ASbGncs2TtfDRA+WIIaEUEcmHNPF3duBmKHgc7NN2F7WRex69pilrcE/rCIosI0Hsr8
	15SX1RYWhnvauSxDrFX6Uim3gEdzbQiTJCHtmO6sJ6IF04u8AzOaX0PKKj2js1lHn/VSLdxofXr
	r0CAVpl2KajiDmWLLTqezXOrLjrlqTTkENjG22CyXTBjLpriYsutm3eU7Cjpq4FvZYpJDwGrrlH
	Q+t35/vKIyJO1WUEd4fjPqc6+4cVx0BQmJFcBY9wJxse28ETuW2zCTQ0vtCsuAHohvh8YzJrSbK
	dniit1eUIYlhZjAy6bXNpUZx/NuPeyKZf6muKV7hk+pQ/bDeGdFNLdZIqAePxU8PTNyzaO3Aojo
	Z5I4MCMwFhAwIx0rAIO+tZkGFkQ==
X-Google-Smtp-Source: AGHT+IFGqVKnJ42PsxRoy2LdUbhdBUz50/HqI9MQHRskhvX4VfjZ2opLpXwvW7eVMehNcU+EbGA3Vg==
X-Received: by 2002:a05:6402:4553:b0:5f8:3a9f:fdca with SMTP id 4fb4d7f45d1cf-5f83a9ffe17mr2398694a12.9.1745929208038;
        Tue, 29 Apr 2025 05:20:08 -0700 (PDT)
Message-ID: <c40af488-b706-472b-ba89-50b856ccce37@suse.com>
Date: Tue, 29 Apr 2025 14:20:05 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v10 6/7] xen/arm: enable dom0 to use PCI devices with
 pci-passthrough=no
To: Mykyta Poturai <Mykyta_Poturai@epam.com>
Cc: Stewart Hildebrand <stewart.hildebrand@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <cover.1745918678.git.mykyta_poturai@epam.com>
 <ef583aaae0a311ac8fec8fe4f18e76e9d62432ca.1745918678.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: <ef583aaae0a311ac8fec8fe4f18e76e9d62432ca.1745918678.git.mykyta_poturai@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 29.04.2025 13:52, Mykyta Poturai wrote:
> @@ -75,6 +76,11 @@ static int __init acpi_pci_init(void)
>  }
>  #endif
>  
> +bool arch_pci_device_physdevop(void)
> +{
> +    return iommu_enabled;
> +}

I'm not an Arm maintainer, but if I was, I'd demand that a clarifying comment
was added here.

> --- a/xen/arch/x86/include/asm/pci.h
> +++ b/xen/arch/x86/include/asm/pci.h
> @@ -67,4 +67,9 @@ static inline bool pci_check_bar(const struct pci_dev *pdev,
>      return is_memory_hole(start, end);
>  }
>  
> +static always_inline bool arch_pci_device_physdevop(void)

I see not particular reason to use always_inline here; you don't do so ...

> --- a/xen/include/xen/pci.h
> +++ b/xen/include/xen/pci.h
> @@ -79,6 +79,11 @@ static inline bool is_pci_passthrough_enabled(void)
>      return false;
>  }
>  
> +static inline bool arch_pci_device_physdevop(void)

... here either.

I further notice that you didn't adjust the "reset" sub-op handling, despite
my earlier hint in that direction. Looking at the commit message, you only
mention PHYSDEVOP_pci_device_add anyway. I think all three need mentioning
there, which would then (hopefully) clarify what the deal is with
PHYSDEVOP_pci_device_reset.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 29 12:35:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 12:35:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.972332.1360690 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9kBC-0006l1-0b; Tue, 29 Apr 2025 12:35:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 972332.1360690; Tue, 29 Apr 2025 12:35:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9kBB-0006ku-UE; Tue, 29 Apr 2025 12:35:17 +0000
Received: by outflank-mailman (input) for mailman id 972332;
 Tue, 29 Apr 2025 12:35: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=+w+n=XP=lst.de=hch@srs-se1.protection.inumbo.net>)
 id 1u9kBB-0006ko-8u
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 12:35:17 +0000
Received: from verein.lst.de (verein.lst.de [213.95.11.211])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 640292a9-24f6-11f0-9ffb-bf95429c2676;
 Tue, 29 Apr 2025 14:35:11 +0200 (CEST)
Received: by verein.lst.de (Postfix, from userid 2407)
 id DBA7F68AA6; Tue, 29 Apr 2025 14:35:04 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 640292a9-24f6-11f0-9ffb-bf95429c2676
Date: Tue, 29 Apr 2025 14:35:04 +0200
From: Christoph Hellwig <hch@lst.de>
To: chenlinxuan@uniontech.com
Cc: Keith Busch <kbusch@kernel.org>, Jens Axboe <axboe@kernel.dk>,
	Christoph Hellwig <hch@lst.de>, Sagi Grimberg <sagi@grimberg.me>,
	Andrew Morton <akpm@linux-foundation.org>,
	Yishai Hadas <yishaih@nvidia.com>, Jason Gunthorpe <jgg@ziepe.ca>,
	Shameer Kolothum <shameerali.kolothum.thodi@huawei.com>,
	Kevin Tian <kevin.tian@intel.com>,
	Alex Williamson <alex.williamson@redhat.com>,
	Peter Huewe <peterhuewe@gmx.de>,
	Jarkko Sakkinen <jarkko@kernel.org>,
	Masahiro Yamada <masahiroy@kernel.org>,
	Nathan Chancellor <nathan@kernel.org>,
	Nicolas Schier <nicolas.schier@linux.dev>,
	Nick Desaulniers <nick.desaulniers+lkml@gmail.com>,
	Bill Wendling <morbo@google.com>,
	Justin Stitt <justinstitt@google.com>,
	Vlastimil Babka <vbabka@suse.cz>,
	Suren Baghdasaryan <surenb@google.com>,
	Michal Hocko <mhocko@suse.com>,
	Brendan Jackman <jackmanb@google.com>,
	Johannes Weiner <hannes@cmpxchg.org>, Zi Yan <ziy@nvidia.com>,
	Mathieu Desnoyers <mathieu.desnoyers@efficios.com>,
	Peter Zijlstra <peterz@infradead.org>,
	"Paul E. McKenney" <paulmck@kernel.org>,
	Boqun Feng <boqun.feng@gmail.com>,
	Dmitry Vyukov <dvyukov@google.com>,
	Andrey Konovalov <andreyknvl@gmail.com>,
	Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>, linux-nvme@lists.infradead.org,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	kvm@vger.kernel.org, virtualization@lists.linux.dev,
	linux-integrity@vger.kernel.org, linux-kbuild@vger.kernel.org,
	llvm@lists.linux.dev, Winston Wen <wentao@uniontech.com>,
	kasan-dev@googlegroups.com, xen-devel@lists.xenproject.org,
	Changbin Du <changbin.du@intel.com>,
	Linus Torvalds <torvalds@linux-foundation.org>
Subject: Re: [PATCH RFC v3 0/8] kernel-hacking: introduce
 CONFIG_NO_AUTO_INLINE
Message-ID: <20250429123504.GA13093@lst.de>
References: <20250429-noautoinline-v3-0-4c49f28ea5b5@uniontech.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20250429-noautoinline-v3-0-4c49f28ea5b5@uniontech.com>
User-Agent: Mutt/1.5.17 (2007-11-01)

On Tue, Apr 29, 2025 at 12:06:04PM +0800, Chen Linxuan via B4 Relay wrote:
> This series introduces a new kernel configuration option NO_AUTO_INLINE,
> which can be used to disable the automatic inlining of functions.
> 
> This will allow the function tracer to trace more functions
> because it only traces functions that the compiler has not inlined.

This still feels like a bad idea because it is extremely fragile.



From xen-devel-bounces@lists.xenproject.org Tue Apr 29 12:36:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 12:36:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.972346.1360701 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9kCi-0007LO-ET; Tue, 29 Apr 2025 12:36:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 972346.1360701; Tue, 29 Apr 2025 12:36:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9kCi-0007LH-Az; Tue, 29 Apr 2025 12:36:52 +0000
Received: by outflank-mailman (input) for mailman id 972346;
 Tue, 29 Apr 2025 12:36:51 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=yPhw=XP=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u9kCh-0007L9-9O
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 12:36:51 +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 9c2c4c3a-24f6-11f0-9ffb-bf95429c2676;
 Tue, 29 Apr 2025 14:36:45 +0200 (CEST)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-43d04dc73b7so53363925e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 29 Apr 2025 05:36:45 -0700 (PDT)
Received: from localhost.localdomain (host-92-26-98-202.as13285.net.
 [92.26.98.202]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3a073ca5467sm13613882f8f.28.2025.04.29.05.36.44
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 29 Apr 2025 05:36:44 -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: 9c2c4c3a-24f6-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745930205; x=1746535005; 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=SG3XByK8O/rE2KJ3fe819/e/kESRXNZtyTnahhTihHw=;
        b=XM9x7jZmcrOqo8IsqWhsVazw4DNIpLu5Ip/97nLrzvmLxnm0OjJ7ipNfJuTvLSBkAe
         xxyP5nbpdqd0RtaPjBnRQem/tWG8FHULCTR41FiElj1kPLsu8FwBc5CX31DJwpLCw5O5
         3SyibxImTOLs/vjuR5tnlysIO7ZU4HbwLmIEg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745930205; x=1746535005;
        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=SG3XByK8O/rE2KJ3fe819/e/kESRXNZtyTnahhTihHw=;
        b=Ro2sm1F2yGkOVDclsYbIaAKY9VAynv2SC87f8Q8G1SijkfLgR9DnuKV9IViviGbzLY
         M/NaI42XZseH52In3yALdDEuwf3Giy5XFt+v0MmgO4HtRDK7Ou10bshUiwK2ftjnFYww
         oYe/IdqpWQTQqxjXvm+OtxCJmH5+QolUaWv+/wXPWpbeVWEwBQut4a0eNbpYL/HiKrzb
         F147YG1BklC7waOOrI3BUFX9ijguXv0ktqbMb71YFQD4H/56/FnjBPuY03TIdz6n0zQ+
         8MCwd9HDRH+njZYE5Vx+bC+ZZR7bTKnR1kgshU9yCq+wPOGCg1AiPpdDj2T8A7MHGQxe
         Me8g==
X-Gm-Message-State: AOJu0Yzmwt7k5PUcMsQi27sI71PQyGBS/+vHT6B1PTuWbMPx6z7/z2A3
	QDhSdGibV2hegz5v7YrCNOsRojHKx0mwPLMEkbscbyhvthanwXc3pEGbNEmwjXz4cUX9AD/8Efl
	Q
X-Gm-Gg: ASbGncvwJqKwBa+rgRw2GtOm4kNqcgyQOl7vbD6H/CBaDdaR5pAFrxiQa0EftcZgh7O
	CBeZMRbxgPDeuSDG77xcjdDbqtqA9lqg0wE2s9iYRKqblhle2KPLhkYH3zIhxly3+X4yiZWT0Sj
	mAjBgAf7CFafnb7GYj0HU7kamkpg7Oh3cj2vOjlmVHQz5lAFKnV2RPFOmny0WbgEwDJL2mhZS3f
	QPOFwK2sbFaPcAG+iZZM7CHVTf5Kzl7CbXi5HNd6I5MJq8tLxnmKzLP54F7LQlHG8Yv0juRBaI0
	FwQWacvZsCD5qHIQJG+WN9j6lxvczFcyzkDG54byi9dpvnv9YPEn7FnskC869RnMLSnLaDeRyE6
	zTbdV/SOSi1TWCgov6k8trhSY
X-Google-Smtp-Source: AGHT+IFRYcwMBlrnXG6mGsIy2iZYIPAs374JJsrsfiQn6huWz5TkebNfnU51/H/jRJzXjlCjlk0egA==
X-Received: by 2002:a05:6000:4212:b0:39e:cbd2:9129 with SMTP id ffacd0b85a97d-3a0890a5178mr3180600f8f.10.1745930205129;
        Tue, 29 Apr 2025 05:36:45 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <JBeulich@suse.com>
Subject: [PATCH TEST-ARTEFACTS] (Re)add libgcc to alpine rootfs
Date: Tue, 29 Apr 2025 13:36:43 +0100
Message-Id: <20250429123643.230423-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 turns out that QEMU built in staging-4.19 (only) depends on it.

But, GCC can emit libgcc calls for arbitrary reasons, so include it
unconditionally.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Jan Beulich <JBeulich@suse.com>
---
 scripts/alpine-rootfs.sh | 1 +
 1 file changed, 1 insertion(+)

diff --git a/scripts/alpine-rootfs.sh b/scripts/alpine-rootfs.sh
index 4d9da9c6fb4c..13d39e8846e7 100755
--- a/scripts/alpine-rootfs.sh
+++ b/scripts/alpine-rootfs.sh
@@ -10,6 +10,7 @@ apk --no-cache upgrade
 
 PKGS=(
     # System
+    libgcc
     openrc
     udev
     util-linux

base-commit: 036ffcafc8388d48f840815dd05e255042185d3d
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Tue Apr 29 12:36:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 12:36:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.972347.1360710 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9kCm-0007aS-Kv; Tue, 29 Apr 2025 12:36:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 972347.1360710; Tue, 29 Apr 2025 12:36:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9kCm-0007aJ-II; Tue, 29 Apr 2025 12:36:56 +0000
Received: by outflank-mailman (input) for mailman id 972347;
 Tue, 29 Apr 2025 12:36: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=PDgl=XP=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u9kCk-0007KK-Nw
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 12:36:54 +0000
Received: from NAM10-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam10on20625.outbound.protection.outlook.com
 [2a01:111:f403:2413::625])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a0866cb7-24f6-11f0-9eb4-5ba50f476ded;
 Tue, 29 Apr 2025 14:36:53 +0200 (CEST)
Received: from MN2PR14CA0029.namprd14.prod.outlook.com (2603:10b6:208:23e::34)
 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.8678.33; Tue, 29 Apr
 2025 12:36:48 +0000
Received: from MN1PEPF0000ECD9.namprd02.prod.outlook.com
 (2603:10b6:208:23e:cafe::d3) by MN2PR14CA0029.outlook.office365.com
 (2603:10b6:208:23e::34) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.41 via Frontend Transport; Tue,
 29 Apr 2025 12:36:48 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 MN1PEPF0000ECD9.mail.protection.outlook.com (10.167.242.138) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8699.20 via Frontend Transport; Tue, 29 Apr 2025 12:36:47 +0000
Received: from xcbagarciav01.xilinx.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; Tue, 29 Apr
 2025 07:36:43 -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: a0866cb7-24f6-11f0-9eb4-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=uf5sFunsl2bpCTwOmsbV33pGp3SYgSY+mcvr8ZCdnhdsw+WKslTFlyjWkvfvFQEj6iIXlj6fzSkIxZRYBoe+R+E4FhPnVYp+zknHOV48M4z3YTBOETLF0Zi+c6c8f6L33i6Vf33a4N78ooUIpVbevuRNXpHhDlMmxJULVQ9pG598DfzEoE8V/4JjfODcbA3YJNC1c2A102acCDRsX46K0mUc87vwB+/4E2uiy30qUFKnDhNmD+vNIOeEk4eH46yrIfSVBvWjmlbf8MEUl4E14yoLjGJaMTsJcSngk49Dlp3kEwGgRGEepJilXNhbSv6hfnBv5SuNKiyD6Z8H/XlBLw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=r2ERm30HNqsLuUEeF2BN4t8qTw3Ir0KzuIydX11Ts2I=;
 b=KCafysQebyn0kOjl0zNCnLyYx6AYMgAkTmULXtEXpBWVek0CKn35lTT2tOihXSUfR5/L62TZlDok8pOWlYeqswfNA2qrMEUKNdiyxlMnhp5fY2WgGzNaG+2gMBX4jREX/+7lxcSrjUoGmyo+XwHwIbYELF19KAHLx4BP+AqNR53nbYtmk6eTvzF5updOHHKB2jKdaSLopOHsl1VOYkzgfs8kyTohHclSZcTM7l+zZHF5C6qPh68c88hgFM8ffUFoKhtadZzUL7ZIuUq25EZC53KkCHNeJkznNLkk3ufyICshBDJ0uyNayRYv1jVzM9N3qZ6U1lLVCqo41z9mmLftnw==
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=r2ERm30HNqsLuUEeF2BN4t8qTw3Ir0KzuIydX11Ts2I=;
 b=DsaQIVcHQeZXnNwi8LKcRxsv2utiC33J1fflEIryrXTzctOEo054qsWlSQApvj74hl6/+t45nKQTlX8/iU42hvMULvDHCbHph408lgO1JlItQsxY9bCGG+x9efsf5x9v+oCkiCC8vkailiAibhEppocKZBGFP8Ye31bi95zRkIA=
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: Alejandro Vallejo <agarciav@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Alejandro Vallejo <agarciav@amd.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, "Julien
 Grall" <julien@xen.org>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
	"Bertrand Marquis" <bertrand.marquis@arm.com>
Subject: [PATCH v6 00/12] Hyperlaunch device tree for dom0
Date: Tue, 29 Apr 2025 13:36:11 +0100
Message-ID: <20250429123629.20839-1-agarciav@amd.com>
X-Mailer: git-send-email 2.43.0
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: MN1PEPF0000ECD9:EE_|BN5PR12MB9462:EE_
X-MS-Office365-Filtering-Correlation-Id: 47ce9c05-2b8a-451f-e12d-08dd871a820e
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|1800799024|36860700013|376014|13003099007;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?1hlODJgSqWHhQ9D+C40MrnMq0Wgdi1tC6xV/lAYx62XmsMtNFjjHbZyUsNsM?=
 =?us-ascii?Q?2hVp0EJ0/d5CRZjakxqxOCpf60+08wQoLqxJlZnqsktSkmgEGuCBiUIZT3mC?=
 =?us-ascii?Q?q9M+ewKnbXYMjqKMUJFq2tfWA8zfroRkp7euvpUWfguKwr3Q24iEC2HSuuPu?=
 =?us-ascii?Q?kMu4ZBuXhWXnHNJyy7QxRgarDDvuZb8IuYlhQs6QDwkcl7e74iKhg2ZL1f+T?=
 =?us-ascii?Q?BtrM++T7CaP7MzSrJNO1byVrK9dsMTJnQhkxUGWykJcP8U/GTBZURKB6BF3K?=
 =?us-ascii?Q?vzJUGhOdjfUI3EX+ZxgNSSYOZXslrKbvbSzKouHqaLh/SqgISKzgzqO0SWyj?=
 =?us-ascii?Q?o1hZLisrfYo0rI/CgomZSYQHUTg0uqLWz4f/cuQyKpeeF6uUiP+yQJqHAt7G?=
 =?us-ascii?Q?E/JDqQi8fESSrjSSsKKSIqTwSw9nnNwMvN2c3kET3UCXrCuMbs4HjBAfruL+?=
 =?us-ascii?Q?N4Yh/9pf4f1Q5PIiMgzNJPKJ04cXsTo6AjS8CUxR0KBzVqcQU2FjYy7ujcos?=
 =?us-ascii?Q?G1UMtV0d57SBbfrj4D79rYAtIomzAItOTPClEfNwX/gY4MK7KoFj+fdM5hFw?=
 =?us-ascii?Q?oJzK9HPv6G+MbSm3m3DUTw6kBa4xqZgPZhUvB5Zg1KQfrbn+d+c4X1ewoxiO?=
 =?us-ascii?Q?ea5iPfnJaqit/Z1nV86ErHtZVIrkxFwth6lAP/ioLwGxyiOQJKv1yLkx8chB?=
 =?us-ascii?Q?/mPkNorRPAcyMdcGv5Yb5FK1wlwMuWt/u7yGVOOJ4tATiW1zzYHbsUra/zCm?=
 =?us-ascii?Q?CuzjGqGTtTH6JlDj3MKg5yCSBry21wnCY4J57cr2JMUDgid+RFVhZEgJeWEp?=
 =?us-ascii?Q?QC2/mRJ1eSa829kavDHPeuZwNHz7Zl1tXeN474+SfcTyu9psNLbCvEz1sP9m?=
 =?us-ascii?Q?+8dtOdy1vZ2lefIFM+5EsjGt05+MqFJL4ccOPAVLTkuJrS73TwFwViWregbI?=
 =?us-ascii?Q?qOpuf5Xdv4+iukNzcPEQd6sZWN3tBKQ8TWy64/pABEVTR6IdGFzj4T3qwUxp?=
 =?us-ascii?Q?BGCxz4srzBVHFFz2dKi9jDJLx3uOenVNgxNG2W78GiALgP1Ab3mk7GSpAIgW?=
 =?us-ascii?Q?Oyq6kW9gL423Xz8hTgUN/ijKjXBBV1ef/k7tdP2FgZiFcSNxpUQu+Wz02xHu?=
 =?us-ascii?Q?aVlHYm7ITZUDSkC1pGEocYXPJ01yzKEemQkOEMpJzzXjNoDDveQqIyNf0908?=
 =?us-ascii?Q?yGxF8vqzqjLdP57S2G1k20MKiveC8T4YhNpHuqlAnLk3bZcVsbuh/jY20t5e?=
 =?us-ascii?Q?bW9TdITq5fna22JGaiGrtG8+NEae97BRTZyzOMUHJGBcteszQh4nuEfWfxf/?=
 =?us-ascii?Q?i/4OX+E5DL0XfBjgSGDTVCvpS7e2pdkuF5lQ7ZbosKXSTYe5r8eO+jsl7QWi?=
 =?us-ascii?Q?QS+oZ7YY+I1zqwzxNJtPV8ZONhG8y+6mTxXrobIM7DsTxyBlj87atdhQpndm?=
 =?us-ascii?Q?b5AwA3GzYZOh+vVuI9RuC1PNUSLVgS0XngzbWoEK2fOTDtuLE2zgszliFeOJ?=
 =?us-ascii?Q?0UINQWbea8GCklGtZeM9VY1peP2BTFBgPb0vqKkAEAvCeAHviKFVsCdI8Q?=
 =?us-ascii?Q?=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)(82310400026)(1800799024)(36860700013)(376014)(13003099007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Apr 2025 12:36:47.6950
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 47ce9c05-2b8a-451f-e12d-08dd871a820e
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:
	MN1PEPF0000ECD9.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN5PR12MB9462

Hi,

Not very many changes here. Just:

v5->v6:
  * Denis' suggestion to rename a few helpers to fdt_*
  * Change to last patch to only pass CDF_iommu to domains with
    DOMAIN_CAPS_HARDWARE.

I _think_ this addresses all feedback I got so far and I don't expect
anything major remaining before commit. If there's something I was asked
and I haven't delivered yet, please bring it up again.

v5: https://lore.kernel.org/xen-devel/20250424161027.92942-1-agarciav@amd.com/
v4: https://lore.kernel.org/xen-devel/20250417124844.11143-1-agarciav@amd.com/
v3: https://lore.kernel.org/xen-devel/20250408160802.49870-1-agarciav@amd.com/
v2: https://lore.kernel.org/xen-devel/20241226165740.29812-1-dpsmith@apertussolutions.com/
v1: https://lore.kernel.org/xen-devel/20241123182044.30687-1-dpsmith@apertussolutions.com/

========= Original cover letter:

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.

Alejandro Vallejo (1):
  x86/hyperlaunch: Add helpers to locate multiboot modules

Daniel P. Smith (11):
  kconfig: introduce CONFIG_DOMAIN_BUILDER
  common/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/dom0_build.c              |  11 +
 xen/arch/x86/include/asm/boot-domain.h |  14 +
 xen/arch/x86/include/asm/bootinfo.h    |  10 +-
 xen/arch/x86/setup.c                   |  66 +++-
 xen/common/Kconfig                     |   2 +
 xen/common/Makefile                    |   1 +
 xen/common/domain-builder/Kconfig      |  15 +
 xen/common/domain-builder/Makefile     |   2 +
 xen/common/domain-builder/core.c       |  86 +++++
 xen/common/domain-builder/fdt.c        | 512 +++++++++++++++++++++++++
 xen/common/domain-builder/fdt.h        |  40 ++
 xen/include/xen/domain-builder.h       |  37 ++
 xen/include/xen/libfdt/libfdt-xen.h    |  23 ++
 13 files changed, 801 insertions(+), 18 deletions(-)
 create mode 100644 xen/common/domain-builder/Kconfig
 create mode 100644 xen/common/domain-builder/Makefile
 create mode 100644 xen/common/domain-builder/core.c
 create mode 100644 xen/common/domain-builder/fdt.c
 create mode 100644 xen/common/domain-builder/fdt.h
 create mode 100644 xen/include/xen/domain-builder.h

-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 29 12:37:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 12:37:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.972348.1360721 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9kCq-0007sN-S2; Tue, 29 Apr 2025 12:37:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 972348.1360721; Tue, 29 Apr 2025 12:37:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9kCq-0007sG-Oy; Tue, 29 Apr 2025 12:37:00 +0000
Received: by outflank-mailman (input) for mailman id 972348;
 Tue, 29 Apr 2025 12: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=PDgl=XP=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u9kCp-0007KK-6X
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 12:36:59 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on2062a.outbound.protection.outlook.com
 [2a01:111:f403:2414::62a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a4400458-24f6-11f0-9eb4-5ba50f476ded;
 Tue, 29 Apr 2025 14:36:58 +0200 (CEST)
Received: from BL1PR13CA0305.namprd13.prod.outlook.com (2603:10b6:208:2c1::10)
 by CYYPR12MB8872.namprd12.prod.outlook.com (2603:10b6:930:c8::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.31; Tue, 29 Apr
 2025 12:36:53 +0000
Received: from MN1PEPF0000ECD5.namprd02.prod.outlook.com
 (2603:10b6:208:2c1:cafe::8a) by BL1PR13CA0305.outlook.office365.com
 (2603:10b6:208:2c1::10) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8699.17 via Frontend Transport; Tue,
 29 Apr 2025 12:36:52 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 MN1PEPF0000ECD5.mail.protection.outlook.com (10.167.242.133) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8699.20 via Frontend Transport; Tue, 29 Apr 2025 12:36:51 +0000
Received: from xcbagarciav01.xilinx.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; Tue, 29 Apr
 2025 07:36:47 -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: a4400458-24f6-11f0-9eb4-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=sq+LJCWF7DZ8Bh0bneBWq9jqBaaVzk83Kk65C8kV6npkGXmLJJNYfZT7VYazrYHSbRNptaIGc8e15w+3ctQ3j6hVsyni/wwUrk888TlNcAGnTyXHACVHLSvQZnaNp9x5/1IGFU8P+1GaEGGNN3ltckZ+qhuiAWeHtIyv/6l6t0K5UeMoaPiM7/CtR+1fRfsZ3y9YEd+RHrBh1gwTs3dL2MFKA2nscPiB8LzgUM0dxLI1f8wRdVkotIohFONtm+slYtmpKouyQMn1lGqf0fcNS2zT+XjI7ixiyFkK7dsp7S1qmFeVTFZxcLCN59FUvJCz/V88sVIVUQ51t/SCwU4omQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=jgu5x27Qay+e+Aam2Lc6rwal+aKJVBVdZe6PlDDiYms=;
 b=Q1ahSUBVoeiMrl96V2+YFFNDZeIRt0T217leaZC721l0FiKJDESw4Xki39AKk8z9VoTmEvYLRwDh8Ls1PmthPNQvV37tqcLQsBvDLjrv3eQrTU/IFYgCweNHJZMxtA/tvO2NPnSP7iATJkqW8kE3BNvgb4iylEsaIJ7SYHXbu/QFeLJWQVTpExEddpkPSDw3l9PBWe4GemUFSx+ISV4xaBWwwixSwitIBqMh7dFtEXFXBKv9cTNtPTP8I91n5JUnAJNiPz2DOfNr4pCVDN/Bq679rnjjeEDMNEz+8b9tn0axdwTzd2dSGTszbe2X/cn5+DRC5o+KJcBrUSR3oHvN5g==
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=jgu5x27Qay+e+Aam2Lc6rwal+aKJVBVdZe6PlDDiYms=;
 b=pYtbuTzeV2HqvsLBRZM5fiv/E3gG8XpblVjxIfwpV5YDcEf8oQKKhqFBe2/U9JNbF7ICb2ybr3Z1X8xmnA31DTo3EKG12fepSbsXo9dSfIcry3yw2eusMcIrJwHetzQlZwMFI7gECb6C9JvnfqgriwFGje+ry8ixiOrR6NXreAg=
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: Alejandro Vallejo <agarciav@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: "Daniel P. Smith" <dpsmith@apertussolutions.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, "Julien
 Grall" <julien@xen.org>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Alejandro Vallejo <agarciav@amd.com>, Denis Mukhin <dmukhin@ford.com>, "Jason
 Andryuk" <jason.andryuk@amd.com>
Subject: [PATCH v6 01/12] kconfig: introduce CONFIG_DOMAIN_BUILDER
Date: Tue, 29 Apr 2025 13:36:12 +0100
Message-ID: <20250429123629.20839-2-agarciav@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20250429123629.20839-1-agarciav@amd.com>
References: <20250429123629.20839-1-agarciav@amd.com>
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: MN1PEPF0000ECD5:EE_|CYYPR12MB8872:EE_
X-MS-Office365-Filtering-Correlation-Id: 26c7a079-5d78-4454-bbdd-08dd871a8488
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|376014|36860700013|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?QqIFw1ez2hhEUNMppwSZo9npba0HNsihh6IXQfpzFDwwUUwTEAwJ3gSN67ZP?=
 =?us-ascii?Q?TNpwBnkdi9CKSI3LQSdxOUqW8m4NrAubjG6G9O5H6zACKvBF8u5OahVfxJtV?=
 =?us-ascii?Q?ZSe0rx7Wn+LmKx65OIBrH+5R5y7zDiHbId/gKqgPnNxlB9604NMlKmBVTmZC?=
 =?us-ascii?Q?vTnh3+NUcdmYM7JeymACQsEAV6W/QCVQP2+hlHxK1nou7qW3gH7vj0bWQjVm?=
 =?us-ascii?Q?5Scdji/XAgOaJ6RfX7jhnXsCRDZNJJhxGVydaivbNrROOr8E4EPhlUI+Njl6?=
 =?us-ascii?Q?wiH95woTPfdAfjN+nUYdOHWblQRKZvnVmUDM1IOTBPA7B9FecZ0CNE1dIEax?=
 =?us-ascii?Q?jrX0euM4ts6PSvfZ7JvjCiWrJKyd+hM8R1SbxFMx/iz/S++lb9f5cuHCDBCT?=
 =?us-ascii?Q?j9odgtSaHphynA01sEWtjFz9SgxYrYir7BLvqDa5+QqrIohOizWHVj4Yq08r?=
 =?us-ascii?Q?PvowjKZLxcOQlLofvl8YqZ+4anNRfVTUhH03KUrbH3anCaQF4c2clceWI/VT?=
 =?us-ascii?Q?Dv2mc4v131/8t0rHAwsn4mZ+6GBi6cNuyAEn84gt9Jy4oa7nK81j3ImI7guX?=
 =?us-ascii?Q?/10RGh5qw7ZF2gWAY8UWa2zS921JVTCAY5oO/fxzPCIhwCvwPlDlDtpoPoC0?=
 =?us-ascii?Q?rZII8l36NkhWdSaBcPowpX78lweHTeyx4aCFSdxApd0lAaaCKq4/AiX3QgoF?=
 =?us-ascii?Q?HOuPQdFJg4Fl2tnbjro9ABl9PCG0ZpAuxUdTSDelZmDa/UxTqIjkalOE83sk?=
 =?us-ascii?Q?YpSsL2FjzEIV3ujoUseblG4fgbg20rwNOQ454uyQFOBc/oiGy5xc5+DzGkCe?=
 =?us-ascii?Q?yPN7pH8NK9OvnPDnZ6h7uTfpGgFK+74gi0CwhQd0MNW+8uh4HzyoCqvIj8LK?=
 =?us-ascii?Q?7opkNx7Mk8XXEEJaSBqoQHcTeTrsi44feRHw0YKWyrydDlPqPXoQpAb6BIEq?=
 =?us-ascii?Q?yhM4W/pBbeupYIcN/tSm5kZnmgvaD2ohRbNpu5/bqfba9CEygnF6VW6EFATJ?=
 =?us-ascii?Q?ssmKS6HLn10aCI2hAUksberhlSBueTsIOUKqfwQn+GnPXpJlA7iwBNtcoJQ6?=
 =?us-ascii?Q?9E1O1+DK4Xp1SHt3ZpfStqmRpegrBQ7pcM5tjkmtW7A6cNQFVnub2PK8D/nu?=
 =?us-ascii?Q?eHoE74UzTMqe1L+GLVQo2JvEJwmUg2hsAb1IUs7IDhIv9RMQ4iCgWTcgWsx3?=
 =?us-ascii?Q?1XxQkYB+HMOtx7cuArGjmN16qIHeGZxPAO2+f0b+LyEy/d3ID0aMp8EfP8Ia?=
 =?us-ascii?Q?/wjY2agjoktQ5ZaxqGgcyuy0qp7r3TcYT1+uCayPPE8gvPoxYpRAOK8kCZ7i?=
 =?us-ascii?Q?xvubyIky1nJsXyL2eaHqeZp1SNZb2zdqByVWXdJreYRS3WgRDAGKS6XSmmSL?=
 =?us-ascii?Q?4vcqxzL+QiQVFp2uHoqYhrb3HMhx3UW7w3Ls42hyfrhpwUZmDIRhNpK9zNZQ?=
 =?us-ascii?Q?J0Z9ZTRwglKrxYqawhUh5fkG75vVHOPgdl1o7eamPTy+snvNb6tr6Dmctsn8?=
 =?us-ascii?Q?ei+q6lOztE329GpjvlMzqUX1QBM24JGF57Tz?=
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)(376014)(36860700013)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Apr 2025 12:36:51.8481
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 26c7a079-5d78-4454-bbdd-08dd871a8488
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:
	MN1PEPF0000ECD5.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CYYPR12MB8872

From: "Daniel P. Smith" <dpsmith@apertussolutions.com>

Hyperlaunch domain builder will be the consolidated boot time domain
building logic framework. Introduce the config option to enable this
domain builder to eventually turn on the ability to load the domain
configuration via a flattened device tree.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
Signed-off-by: Alejandro Vallejo <agarciav@amd.com>
Reviewed-by: Denis Mukhin <dmukhin@ford.com>
Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>
---
 xen/common/Kconfig                |  2 ++
 xen/common/domain-builder/Kconfig | 15 +++++++++++++++
 2 files changed, 17 insertions(+)
 create mode 100644 xen/common/domain-builder/Kconfig

diff --git a/xen/common/Kconfig b/xen/common/Kconfig
index be28060716..e025fbe257 100644
--- a/xen/common/Kconfig
+++ b/xen/common/Kconfig
@@ -144,6 +144,8 @@ config STATIC_MEMORY
 
 	  If unsure, say N.
 
+source "common/domain-builder/Kconfig"
+
 menu "Speculative hardening"
 
 config INDIRECT_THUNK
diff --git a/xen/common/domain-builder/Kconfig b/xen/common/domain-builder/Kconfig
new file mode 100644
index 0000000000..44b8351af8
--- /dev/null
+++ b/xen/common/domain-builder/Kconfig
@@ -0,0 +1,15 @@
+menu "Domain Builder Features"
+
+config DOMAIN_BUILDER
+	bool "Domain builder (UNSUPPORTED)" if UNSUPPORTED && X86
+	select LIBFDT
+	help
+	  Support for constructing predefined domains described by a flattened
+	  device tree. This allows constructing multiple domains at boot time
+	  instead of being limited to a single dom0.
+
+	  This feature is currently experimental.
+
+	  If unsure, say N.
+
+endmenu
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 29 12:37:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 12:37:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.972351.1360731 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9kCw-0008DY-4M; Tue, 29 Apr 2025 12:37:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 972351.1360731; Tue, 29 Apr 2025 12: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 1u9kCv-0008DR-Vz; Tue, 29 Apr 2025 12:37:05 +0000
Received: by outflank-mailman (input) for mailman id 972351;
 Tue, 29 Apr 2025 12:37: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=PDgl=XP=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u9kCu-0007L9-J3
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 12:37:04 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on20630.outbound.protection.outlook.com
 [2a01:111:f403:2418::630])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a523b03c-24f6-11f0-9ffb-bf95429c2676;
 Tue, 29 Apr 2025 14:37:01 +0200 (CEST)
Received: from BL1PR13CA0318.namprd13.prod.outlook.com (2603:10b6:208:2c1::23)
 by PH7PR12MB9150.namprd12.prod.outlook.com (2603:10b6:510:2eb::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8699.19; Tue, 29 Apr
 2025 12:36:57 +0000
Received: from MN1PEPF0000ECD5.namprd02.prod.outlook.com
 (2603:10b6:208:2c1:cafe::22) by BL1PR13CA0318.outlook.office365.com
 (2603:10b6:208:2c1::23) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.34 via Frontend Transport; Tue,
 29 Apr 2025 12:36:57 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 MN1PEPF0000ECD5.mail.protection.outlook.com (10.167.242.133) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8699.20 via Frontend Transport; Tue, 29 Apr 2025 12:36:57 +0000
Received: from xcbagarciav01.xilinx.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; Tue, 29 Apr
 2025 07:36:51 -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: a523b03c-24f6-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=gclvPge5z79WCmTbvkkXjEvOiONJvxGOZxW9WnK8WK8Q4OWgfEB1RjQ5X9PA5en5onxt9BtcdTtEQST59VyWjNA7u+CeRnrwzuTXg/W4deIQ2oNOM6BQYpYi+wa90j5cWGwKz803wkodu0CvI6NPeYEmuOvNedlaKBfupayDzomW5eGo/H3TELjV5FYlLarBEWKCDcOhA1KLpoDjLGgZkpaLRh1wyCkOf2i47tM9SLW2YKoCV3nrBLbxb0U+OGUtn8fmwDMHCOMmakqWW43zN7QSRZlRwjhFC7I28CZtn3gikZ5UlupeINRhGO5D/2vn1HTnTEzlIOwuOFS1yKf5Rg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=T5SS7pgcQrdIr//vyH9w44IWF1ZtlLdCSEKlz/+agP0=;
 b=HmqMG9WAT1eo8/uuuGqJIIWnCZzSs16YINWr3Bj0LuNH+8MpXM/ygmGWUGGIyxBw55jhlNOYv43d2y1hNVVjc5ROG2/fHohZD6/I/DDmrhRlzC3RP4/ej6+ZjEMpCw5fXQzn3M+cg//EDislVDe20y3vQY4rHKqTAi+4ED0WSZa+muasvF9dEK/AOvIpvsPWR0IhQqP8/QRv/pPjpnrMqfFVcRxP82VCsceTubGzlC3sK7tCGIJ6mAdlDIhzilubsNDTHBOIwjSlH+we/nn/uHXSw78OdAPETuoaSU4GOHdWlnoTCIDkVsdQYKgm7oFpv6qJk+XloloOiTjJijenGQ==
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=T5SS7pgcQrdIr//vyH9w44IWF1ZtlLdCSEKlz/+agP0=;
 b=t1KNDnAvQFxXUUm1Y26D2xVWyps4vltqgjyglFIM74obuKCT+QzLfciznDgxarDzZDuF7b/fZFpNlE3oibImTQQZyg94rshGvA8ruZO90M/1PuTF+2ryOXLT3nsLm35aWJfJ6YsyJyN1StwRc7/mXZ1qWsAVVUnCIIPJn0St/no=
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: Alejandro Vallejo <agarciav@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: "Daniel P. Smith" <dpsmith@apertussolutions.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, "Julien
 Grall" <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, "Jason
 Andryuk" <jason.andryuk@amd.com>, Alejandro Vallejo <agarciav@amd.com>,
	"Denis Mukhin" <dmukhin@ford.com>
Subject: [PATCH v6 02/12] common/hyperlaunch: introduce the domain builder
Date: Tue, 29 Apr 2025 13:36:13 +0100
Message-ID: <20250429123629.20839-3-agarciav@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20250429123629.20839-1-agarciav@amd.com>
References: <20250429123629.20839-1-agarciav@amd.com>
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: MN1PEPF0000ECD5:EE_|PH7PR12MB9150:EE_
X-MS-Office365-Filtering-Correlation-Id: e1411532-8015-4d3c-c413-08dd871a87db
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?rrLs3QveamfIW0dE/u0KRMp6gVYG+zVhUGmc+Pd+MdhAutfj71XvmCVuvOwB?=
 =?us-ascii?Q?klNGkZJxnZkoh0iea/qFnfQdZmPIu9MGEXawejYNhbzi18FLwsSF/bngdQjx?=
 =?us-ascii?Q?BzSc549VwBJsFmN/ecKvD+nUjYc4bK5oyQkk43/oXQJXWE21t2026JCnhHsq?=
 =?us-ascii?Q?J9AIR/WDwpXdIahDe6C/q4pp/rW2CCUjTPYLd9WB4p8TLi6saBvFTIHZEIe5?=
 =?us-ascii?Q?BoUL3tbV9LGeO2iW8jWy17Useo+JX/LcAMxRz9nM1j1c3Jj7lNhkqh8AB9Gu?=
 =?us-ascii?Q?W3ypPs+TOGzsRWYb8Y4yGobC0rRRRV8ACO4zw6iDREpYqOsG/D0ekUgckSuK?=
 =?us-ascii?Q?Jjb3QEs85mSBLtBnmNgJytFC25L4g8B/fj/TA9+cR5BKtKCew3qgmhbldYmk?=
 =?us-ascii?Q?PjmyvLRf5K/J4RMG/liFtolyCbgRWAmD4dsMWhFSP0nSe8Co7su6I3zySqfD?=
 =?us-ascii?Q?B3AgyxkCIkJVaMnkCyIb7P6WWHJWgYqbewYNgS+/QgzBKnSVGn5iPQ3b02zV?=
 =?us-ascii?Q?L5PNP574GeTGpSQUWyS7oR2Jp66zOVDSdT8n9ZDIpmjFvF2PEadmp1mJS5pI?=
 =?us-ascii?Q?fdtFuoZhGIfieYOHfJqHWn32BbpQLnt31wJMwsazNvtNeQLymJMqVDZEciaI?=
 =?us-ascii?Q?k5EpRUjjx3dvyciQJgYK55YnWTWqTRoUPES8rscgRj7974wc8hvFOC6T+Zty?=
 =?us-ascii?Q?uUdg+7mMi0Vk5seQzA2fOa/ZzsT9pVSHK47EQdI8rcZ1DPRpqCUxc4o7jva2?=
 =?us-ascii?Q?0t3iL/mFBsWvS2OgxuEvueeme0a79QdEnzGX6ujfBT6glpFe2lXmbhKJD3zr?=
 =?us-ascii?Q?dZjpC/GHNT+1aFN4FoZuJJ/eMjluahKjS7nxDVzRLui1N7VPUMRtXcpTsErz?=
 =?us-ascii?Q?NqoHiX6UOjeFTahS7VAvRMcZ8gRsfMjxqUnVLkn9O0br+FTGk028RTvrpP9E?=
 =?us-ascii?Q?iDcKBPS90//UsM3oTPTA1j/sJtgDD6D7BV6mZq2hAQtyNe2PITwXWKR4o+dp?=
 =?us-ascii?Q?Lr8T32QF8CD8IUvA5T3ScsQiRwZ6ArCPxYUXgnU2w2KD6qq0YZ0p41z4x8p1?=
 =?us-ascii?Q?u8GEj6PTGny2LXkza1cqBRYJ8Zn+7qy2obPevkWnBVUSBDotKOHe79YQYb/K?=
 =?us-ascii?Q?sroq1D/wv9NHdWMFu4+XvXJricwiDQWm2VxCUgM0drxO9CTQBFMtb2BVOu8k?=
 =?us-ascii?Q?YY/JOs/4woG02hboMPr1aZ+aRRnmOfdNk9805AB8pICdtQqyYPq0GguNF4M3?=
 =?us-ascii?Q?f412tahuYhS6TI08tLFL0xEt6KPrWh6rjsfONkKHYOexf1i4hUCUcl8OcokC?=
 =?us-ascii?Q?mUsSbEbDADL0t4fPWW+qDa/DYFzFXPU7YMwIPrdG/ucehm429zYk4mm6IiK0?=
 =?us-ascii?Q?IWP7t4pu1jUpzEFqEr2XXmOjjNnpX468sUxhNo9gfjcwDBEtzPjEjeD6IOJe?=
 =?us-ascii?Q?3ADzrjNINjZ+oxeywZx0SdmXSV3EdfLZ51WqnxqAcab3Ll2MsLnapkIsNEiy?=
 =?us-ascii?Q?8c42f77TnGc2QEdpCzMXhGnNJ0jRDzntFJIK?=
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: 29 Apr 2025 12:36:57.4253
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: e1411532-8015-4d3c-c413-08dd871a87db
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:
	MN1PEPF0000ECD5.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB9150

From: "Daniel P. Smith" <dpsmith@apertussolutions.com>

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>
Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
Signed-off-by: Alejandro Vallejo <agarciav@amd.com>
Reviewed-by: Denis Mukhin <dmukhin@ford.com>
---
 xen/arch/x86/include/asm/bootinfo.h |  3 ++
 xen/arch/x86/setup.c                | 19 ++++++++----
 xen/common/Makefile                 |  1 +
 xen/common/domain-builder/Makefile  |  2 ++
 xen/common/domain-builder/core.c    | 45 +++++++++++++++++++++++++++++
 xen/common/domain-builder/fdt.c     | 39 +++++++++++++++++++++++++
 xen/common/domain-builder/fdt.h     | 14 +++++++++
 xen/include/xen/domain-builder.h    | 29 +++++++++++++++++++
 8 files changed, 146 insertions(+), 6 deletions(-)
 create mode 100644 xen/common/domain-builder/Makefile
 create mode 100644 xen/common/domain-builder/core.c
 create mode 100644 xen/common/domain-builder/fdt.c
 create mode 100644 xen/common/domain-builder/fdt.h
 create mode 100644 xen/include/xen/domain-builder.h

diff --git a/xen/arch/x86/include/asm/bootinfo.h b/xen/arch/x86/include/asm/bootinfo.h
index 3afc214c17..82c2650fcf 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/setup.c b/xen/arch/x86/setup.c
index 2518954124..f3b5c83a3c 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -6,6 +6,7 @@
 #include <xen/cpuidle.h>
 #include <xen/dmi.h>
 #include <xen/domain.h>
+#include <xen/domain-builder.h>
 #include <xen/domain_page.h>
 #include <xen/efi.h>
 #include <xen/err.h>
@@ -1284,9 +1285,14 @@ 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];
+    if ( builder_init(bi) == FDT_KIND_NONE )
+    {
+        /* 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];
+        bi->hyperlaunch_enabled = false;
+    }
 
     if ( pvh_boot )
     {
@@ -1469,8 +1475,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);
+    bi->domains[0].kernel->headroom =
+        bzimage_headroom(bootstrap_map_bm(bi->domains[0].kernel),
+                         bi->domains[0].kernel->size);
     bootstrap_unmap();
 
 #ifndef highmem_start
@@ -1594,7 +1601,7 @@ void asmlinkage __init noreturn __start_xen(void)
 #endif
     }
 
-    if ( bi->mods[0].headroom && !bi->mods[0].relocated )
+    if ( bi->domains[0].kernel->headroom && !bi->domains[0].kernel->relocated )
         panic("Not enough memory to relocate the dom0 kernel image\n");
     for ( i = 0; i < bi->nr_modules; ++i )
     {
diff --git a/xen/common/Makefile b/xen/common/Makefile
index 98f0873056..e42af71e3f 100644
--- a/xen/common/Makefile
+++ b/xen/common/Makefile
@@ -11,6 +11,7 @@ obj-$(filter-out $(CONFIG_X86),$(CONFIG_ACPI)) += device.o
 obj-$(CONFIG_HAS_DEVICE_TREE) += device-tree/
 obj-$(CONFIG_IOREQ_SERVER) += dm.o
 obj-y += domain.o
+obj-$(CONFIG_DOMAIN_BUILDER) += domain-builder/
 obj-y += event_2l.o
 obj-y += event_channel.o
 obj-$(CONFIG_EVTCHN_FIFO) += event_fifo.o
diff --git a/xen/common/domain-builder/Makefile b/xen/common/domain-builder/Makefile
new file mode 100644
index 0000000000..bfd2f6267e
--- /dev/null
+++ b/xen/common/domain-builder/Makefile
@@ -0,0 +1,2 @@
+obj-y += fdt.init.o
+obj-y += core.init.o
diff --git a/xen/common/domain-builder/core.c b/xen/common/domain-builder/core.c
new file mode 100644
index 0000000000..97c92db571
--- /dev/null
+++ b/xen/common/domain-builder/core.c
@@ -0,0 +1,45 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Copyright (C) 2024, Apertus Solutions, LLC
+ */
+#include <xen/bug.h>
+#include <xen/err.h>
+#include <xen/init.h>
+#include <xen/kconfig.h>
+#include <xen/domain-builder.h>
+#include <xen/lib.h>
+
+#include <asm/bootinfo.h>
+
+#include "fdt.h"
+
+enum fdt_kind __init builder_init(struct boot_info *bi)
+{
+    enum fdt_kind kind;
+
+    bi->hyperlaunch_enabled = false;
+    switch ( (kind = fdt_detect_kind(bi)) )
+    {
+    case FDT_KIND_NONE:
+        /* No DT found */
+        return kind;
+
+    case FDT_KIND_UNKNOWN:
+        printk(XENLOG_DEBUG "DT found: non-hyperlaunch\n");
+        bi->mods[0].type = BOOTMOD_FDT;
+        return kind;
+
+    default:
+        BUG();
+    }
+}
+
+/*
+ * 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/domain-builder/fdt.c b/xen/common/domain-builder/fdt.c
new file mode 100644
index 0000000000..4b07bd22c8
--- /dev/null
+++ b/xen/common/domain-builder/fdt.c
@@ -0,0 +1,39 @@
+/* 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 <asm/bootinfo.h>
+#include <asm/page.h>
+#include <asm/setup.h>
+
+#include "fdt.h"
+
+enum fdt_kind __init fdt_detect_kind(const struct boot_info *bi)
+{
+    enum fdt_kind kind;
+    const void *fdt = bootstrap_map_bm(&bi->mods[HYPERLAUNCH_MODULE_IDX]);
+
+    if ( !fdt || fdt_check_header(fdt) < 0 )
+        kind = FDT_KIND_NONE;
+    else
+        kind = FDT_KIND_UNKNOWN;
+
+    bootstrap_unmap();
+
+    return kind;
+}
+
+/*
+ * 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/domain-builder/fdt.h b/xen/common/domain-builder/fdt.h
new file mode 100644
index 0000000000..ef897fc412
--- /dev/null
+++ b/xen/common/domain-builder/fdt.h
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+#ifndef __XEN_DOMAIN_BUILDER_FDT_H__
+#define __XEN_DOMAIN_BUILDER_FDT_H__
+
+#include <xen/domain-builder.h>
+
+struct boot_info;
+
+/* hyperlaunch fdt is required to be module 0 */
+#define HYPERLAUNCH_MODULE_IDX 0
+
+enum fdt_kind fdt_detect_kind(const struct boot_info *bi);
+
+#endif /* __XEN_DOMAIN_BUILDER_FDT_H__ */
diff --git a/xen/include/xen/domain-builder.h b/xen/include/xen/domain-builder.h
new file mode 100644
index 0000000000..b9702db735
--- /dev/null
+++ b/xen/include/xen/domain-builder.h
@@ -0,0 +1,29 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+#ifndef __XEN_DOMAIN_BUILDER_H__
+#define __XEN_DOMAIN_BUILDER_H__
+
+struct boot_info;
+
+/* Return status of builder_init(). Shows which boot mechanism was detected */
+enum fdt_kind
+{
+    /* FDT not found. Skipped builder. */
+    FDT_KIND_NONE,
+    /* Found an FDT that wasn't hyperlaunch. */
+    FDT_KIND_UNKNOWN,
+};
+
+/*
+ * Initialises `bi` if it detects a compatible FDT. Otherwise returns
+ * FDT_KIND_NONE and leaves initialisation up to the caller.
+ */
+#if IS_ENABLED(CONFIG_DOMAIN_BUILDER)
+enum fdt_kind builder_init(struct boot_info *bi);
+#else
+static inline enum fdt_kind builder_init(struct boot_info *bi)
+{
+    return FDT_KIND_NONE;
+}
+#endif /* !IS_ENABLED(CONFIG_DOMAIN_BUILDER) */
+
+#endif /* __XEN_DOMAIN_BUILDER_H__ */
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 29 12:37:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 12:37:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.972364.1360741 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9kD7-0000Rt-KQ; Tue, 29 Apr 2025 12:37:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 972364.1360741; Tue, 29 Apr 2025 12:37: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 1u9kD7-0000Rk-Ha; Tue, 29 Apr 2025 12:37:17 +0000
Received: by outflank-mailman (input) for mailman id 972364;
 Tue, 29 Apr 2025 12:37: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=PDgl=XP=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u9kD6-0007L9-40
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 12:37:16 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on20602.outbound.protection.outlook.com
 [2a01:111:f403:2418::602])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ac624906-24f6-11f0-9ffb-bf95429c2676;
 Tue, 29 Apr 2025 14:37:13 +0200 (CEST)
Received: from BL1PR13CA0334.namprd13.prod.outlook.com (2603:10b6:208:2c6::9)
 by MW4PR12MB6683.namprd12.prod.outlook.com (2603:10b6:303:1e2::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.30; Tue, 29 Apr
 2025 12:37:07 +0000
Received: from MN1PEPF0000ECD8.namprd02.prod.outlook.com
 (2603:10b6:208:2c6:cafe::1f) by BL1PR13CA0334.outlook.office365.com
 (2603:10b6:208:2c6::9) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.23 via Frontend Transport; Tue,
 29 Apr 2025 12:37:07 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 MN1PEPF0000ECD8.mail.protection.outlook.com (10.167.242.137) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8699.20 via Frontend Transport; Tue, 29 Apr 2025 12:37:06 +0000
Received: from xcbagarciav01.xilinx.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; Tue, 29 Apr
 2025 07:37:00 -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: ac624906-24f6-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ib40iy9n9pbR3M87Ho4i3sy0KfCOSqOt7KvVYec6+/SmThMfpOji27vqEHU7fatfErdqtt36/QPZqTgxiH0actPs9T3pXp2D/JfzAbsnF0lJw/Fs93MjqPHGtuI1yIgbb0SWBoNIub0eHHtgjCIjTSZhtM8APdFm7j0O34MJZdjJqJ9xInd3ooRbfl9vlKutcQ/6cZRjFIJiqiCqQ5AjYTQu6AcFuwOhjD7vHd0AymLZ432bE5i78N8rfFbUn/WBcdRQgN7pOGsVy89RDGcNC8Zr9+u8rFCxK9YRaggxpOVPRnbm+xRIwXYOQZp8m5M6QV4PxJC8ek8hkX+2GpyILg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=kzlDcDxGuBna1NjqeyuBWXITlGSX+G2YYWsKMdoIvyU=;
 b=xpbwj+g8LIEnbLeZIVBW/q4TYlXAmTlGzKRBPFrDJBDCJk6j8xAXuFyRmQwsspSF7Q9fr/NPPbqfoIlamE/hjXxf0nOs2Ng3aRkEfKGOESWSP9lEhxazzoBpTDBLfWt+uU6wg7zX2WvAz76Rqn/PCbYegNkn7uHqCkZW71Lvlx8aEVQ5+RFL70E2s6iYSh0jY8h/ft6MCHPm6iLCuGAP95QMJxRRBZZCx1cMDOq3jrHC3IZ6ZVO7rRNC2yn+BPFuANVEg2eqUSAMt4WFUHJSBB4srcokRU0n4UQrFzCMkGe9tKx64UeaFDoUfiu4lei1zANOuH5S51WS3EgW6Y3FrQ==
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=kzlDcDxGuBna1NjqeyuBWXITlGSX+G2YYWsKMdoIvyU=;
 b=3cRwrxbXpBaQa8RVHsbnrYvcydG7VQUld8VxZgNg7lHhXUE1AUTcZ0N53BhEOJl+yFGMGeKTilFBtAdvv7nV2XR8wENyjOuKEPFelg827i5twnBwF04nWIcpdkB2kOIx2YuFSY/khjv9AMTHv/QD6iGdyqbHT69k7k93OykOzSs=
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: Alejandro Vallejo <agarciav@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: "Daniel P. Smith" <dpsmith@apertussolutions.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, "Julien
 Grall" <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, "Jason
 Andryuk" <jason.andryuk@amd.com>, Alejandro Vallejo <agarciav@amd.com>,
	"Denis Mukhin" <dmukhin@ford.com>
Subject: [PATCH v6 03/12] x86/hyperlaunch: initial support for hyperlaunch device tree
Date: Tue, 29 Apr 2025 13:36:14 +0100
Message-ID: <20250429123629.20839-4-agarciav@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20250429123629.20839-1-agarciav@amd.com>
References: <20250429123629.20839-1-agarciav@amd.com>
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: MN1PEPF0000ECD8:EE_|MW4PR12MB6683:EE_
X-MS-Office365-Filtering-Correlation-Id: e0564233-3571-40ba-612e-08dd871a8d71
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?75Uj1T9g9GpXOMH0eujD0H+CJzvVxhV08wglyLMi3P4MdjUAJwsFeHUJd66a?=
 =?us-ascii?Q?DS3TygVfXRTW1Xc/H6fYsqjfaAlGE7D+JFoqK/j0Q4Nlaf8Jb2D67L43s2bq?=
 =?us-ascii?Q?EvicItJiQUyr4vAZniP+Ra2TovTfuesLlcFgMW8sbVbpCJxOAzaJ6mOOonWA?=
 =?us-ascii?Q?EwbCa0xD7AHMhaMJ5xpu144TUVRjmtdTD/aPrl+C34c3Ut80nwDc4NLqDlAi?=
 =?us-ascii?Q?V263WotQ+579fb0KVsP5l5Pak2ws9UsgaJRgZH7G8xvnV/LtEC6ItM++GZ9B?=
 =?us-ascii?Q?/PFtPsyO5Ee1vtA2CG3LY+JVZTme4NUbG8JK2XW6JbAHuLqWYHxWIBQYsr7q?=
 =?us-ascii?Q?QzJ+oSSF0uYs/7nUubPOUJg9og0Y2y9xGUjkU2BXH/yzRt3oO16uDsIdIa9j?=
 =?us-ascii?Q?JnzmBgzf3J9Wg7f+B9+0FRKkVWVd0YJB/l57Yf7wggdMFe+b7U5jFEJztZTi?=
 =?us-ascii?Q?QMk9dpN5W+EvRLbfL+RsmLOwaR1d1Ypz0yg8dPi/MQREHjvMP/5ABxioCx5B?=
 =?us-ascii?Q?zu/gIGFe3xQKFvMNNS0wZEAWPEVX8YA6Lj4pOcwt7tFS4J57LdxSNAR63mWA?=
 =?us-ascii?Q?OC4s9izvnYnvFVfkQd6eJ3kokFSgjRy9M25CJIte7UrndXB3c7yRE0bSs1za?=
 =?us-ascii?Q?oewkzlZbtR7H92p56iMWxxu6ig9l2YFUScy7Xcm6YlRwPFPl+95SDpmzLMfF?=
 =?us-ascii?Q?s8OlGVQUIraCXTc2RvzZIzp4ShP/RBABbdUGkwX7ys2g54y0XLl1psrjeFrq?=
 =?us-ascii?Q?lORWchk7ztTNXkR9O6hboGG+y+Q8v/18B/k5lEPSiMXZJkww6tntt1n1nUZa?=
 =?us-ascii?Q?8RiCnolPz0COXfHIj/KQcsIU0Y7yiJuXpKudGVvh2Guq7Sw+rN4D9qG3LEVc?=
 =?us-ascii?Q?4s3L5y3LQPigNJMIr2oiUfD6Cpu3CMMqh7pVyDYK/oPHmLeZMhLnZG4HuJr3?=
 =?us-ascii?Q?k+hZBwunPp4tiVyC4u8FrSfIljlhOT0DTghp5bu+5Iw1jZdUM5PhkwAE4pZA?=
 =?us-ascii?Q?5Dn3yoW/tQzdmzXzFZi19xnKcwemhnYWzZksNQ5UPT8JSP80RLCv1efvcb98?=
 =?us-ascii?Q?wC/DV6x3kx7i82qzCWqnm7YKNikcBDYDEcsKc2w7sOPv0wQadzMtPRUbpUis?=
 =?us-ascii?Q?9qAa4ele+SIUSCbAMs5w6LhXiseEn/9x1EdBn6IVmY7Hb8ZLKKjB44k4kjGa?=
 =?us-ascii?Q?JThCv3P8Weaq83iojocoDEyyo5s+RDMz79k1m3nI8nlppO6NSt7AD97NY92s?=
 =?us-ascii?Q?H3SqVjJRAfq+D15Geri3dUmm/BnJ+XuAPhgv0AbnMPnJK5USn2s/2XnuWT8i?=
 =?us-ascii?Q?J3NPayClj4rGDk7QyY1C9wnVaT5vFH4UD2rvXJfSLyHlfGyXAl2dupsMJw0E?=
 =?us-ascii?Q?E7sCnMrKQeq//d1fXlwU3/x+naeU+lJ7JS6stbHri6bR0YiHOtEJCGpk1FHu?=
 =?us-ascii?Q?hfpYOJJ9AXb6FG5j1iQZfHYNSW18Bn88CtxjlHDmYdbJr2UZomRO9IxzRl4j?=
 =?us-ascii?Q?lgD+TIGsw/E/h1D81QacJik8ReM7GR45zq51?=
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: 29 Apr 2025 12:37:06.7947
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: e0564233-3571-40ba-612e-08dd871a8d71
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:
	MN1PEPF0000ECD8.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR12MB6683

From: "Daniel P. Smith" <dpsmith@apertussolutions.com>

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 an error if more than one is found.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
Signed-off-by: Alejandro Vallejo <agarciav@amd.com>
Reviewed-by: Denis Mukhin <dmukhin@ford.com>
---
 xen/arch/x86/include/asm/bootinfo.h |  1 +
 xen/common/domain-builder/core.c    | 15 +++++++
 xen/common/domain-builder/fdt.c     | 62 +++++++++++++++++++++++++++++
 xen/common/domain-builder/fdt.h     |  1 +
 xen/include/xen/domain-builder.h    |  2 +
 5 files changed, 81 insertions(+)

diff --git a/xen/arch/x86/include/asm/bootinfo.h b/xen/arch/x86/include/asm/bootinfo.h
index 82c2650fcf..1e3d582e45 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];
 };
diff --git a/xen/common/domain-builder/core.c b/xen/common/domain-builder/core.c
index 97c92db571..c6917532be 100644
--- a/xen/common/domain-builder/core.c
+++ b/xen/common/domain-builder/core.c
@@ -16,10 +16,17 @@
 enum fdt_kind __init builder_init(struct boot_info *bi)
 {
     enum fdt_kind kind;
+    int ret;
 
     bi->hyperlaunch_enabled = false;
     switch ( (kind = fdt_detect_kind(bi)) )
     {
+    case FDT_KIND_HYPERLAUNCH:
+        printk(XENLOG_DEBUG "DT found: hyperlaunch\n");
+        bi->hyperlaunch_enabled = true;
+        bi->mods[0].type = BOOTMOD_FDT;
+        break;
+
     case FDT_KIND_NONE:
         /* No DT found */
         return kind;
@@ -32,6 +39,14 @@ enum fdt_kind __init builder_init(struct boot_info *bi)
     default:
         BUG();
     }
+
+    printk(XENLOG_INFO "Hyperlaunch configuration:\n");
+    if ( (ret = fdt_walk_hyperlaunch(bi)) < 0 )
+        panic("Walk of device tree failed (%d)\n", ret);
+
+    printk(XENLOG_INFO "  number of domains: %u\n", bi->nr_domains);
+
+    return FDT_KIND_HYPERLAUNCH;
 }
 
 /*
diff --git a/xen/common/domain-builder/fdt.c b/xen/common/domain-builder/fdt.c
index 4b07bd22c8..94ccff61e2 100644
--- a/xen/common/domain-builder/fdt.c
+++ b/xen/common/domain-builder/fdt.c
@@ -13,6 +13,36 @@
 
 #include "fdt.h"
 
+static int __init find_hyperlaunch_node(const 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;
+
+        return hv_node;
+    }
+    else
+    {
+        /* Look 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") )
+                return chosen_node;
+        }
+    }
+
+    return -ENODATA;
+}
+
 enum fdt_kind __init fdt_detect_kind(const struct boot_info *bi)
 {
     enum fdt_kind kind;
@@ -20,6 +50,8 @@ enum fdt_kind __init fdt_detect_kind(const struct boot_info *bi)
 
     if ( !fdt || fdt_check_header(fdt) < 0 )
         kind = FDT_KIND_NONE;
+    else if ( find_hyperlaunch_node(fdt) >= 0 )
+        kind = FDT_KIND_HYPERLAUNCH;
     else
         kind = FDT_KIND_UNKNOWN;
 
@@ -28,6 +60,36 @@ enum fdt_kind __init fdt_detect_kind(const struct boot_info *bi)
     return kind;
 }
 
+int __init fdt_walk_hyperlaunch(struct boot_info *bi)
+{
+    int ret = 0, hv_node, node;
+    const void *fdt = bootstrap_map_bm(&bi->mods[HYPERLAUNCH_MODULE_IDX]);
+
+    BUG_ON(!fdt);
+
+    hv_node = find_hyperlaunch_node(fdt);
+    if ( hv_node < 0 )
+    {
+        ret = hv_node;
+        goto err_out;
+    }
+
+    fdt_for_each_subnode(node, fdt, hv_node)
+    {
+        if ( !fdt_node_check_compatible(fdt, node, "xen,domain") )
+            bi->nr_domains++;
+    }
+
+    /* Until multi-domain construction is added, throw an error */
+    if ( bi->nr_domains != 1 )
+        printk(XENLOG_ERR "hyperlaunch only supports dom0 construction\n");
+
+ err_out:
+    bootstrap_unmap();
+
+    return ret;
+}
+
 /*
  * Local variables:
  * mode: C
diff --git a/xen/common/domain-builder/fdt.h b/xen/common/domain-builder/fdt.h
index ef897fc412..d1bcc23fa2 100644
--- a/xen/common/domain-builder/fdt.h
+++ b/xen/common/domain-builder/fdt.h
@@ -10,5 +10,6 @@ struct boot_info;
 #define HYPERLAUNCH_MODULE_IDX 0
 
 enum fdt_kind fdt_detect_kind(const struct boot_info *bi);
+int fdt_walk_hyperlaunch(struct boot_info *bi);
 
 #endif /* __XEN_DOMAIN_BUILDER_FDT_H__ */
diff --git a/xen/include/xen/domain-builder.h b/xen/include/xen/domain-builder.h
index b9702db735..cbb3cbea7c 100644
--- a/xen/include/xen/domain-builder.h
+++ b/xen/include/xen/domain-builder.h
@@ -9,6 +9,8 @@ enum fdt_kind
 {
     /* FDT not found. Skipped builder. */
     FDT_KIND_NONE,
+    /* Found Hyperlaunch FDT */
+    FDT_KIND_HYPERLAUNCH,
     /* Found an FDT that wasn't hyperlaunch. */
     FDT_KIND_UNKNOWN,
 };
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 29 12:37:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 12:37:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.972369.1360751 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9kDE-0000wI-Sp; Tue, 29 Apr 2025 12:37:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 972369.1360751; Tue, 29 Apr 2025 12:37:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9kDE-0000wB-Os; Tue, 29 Apr 2025 12:37:24 +0000
Received: by outflank-mailman (input) for mailman id 972369;
 Tue, 29 Apr 2025 12:37: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=PDgl=XP=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u9kDC-0007L9-Nd
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 12:37:22 +0000
Received: from NAM11-CO1-obe.outbound.protection.outlook.com
 (mail-co1nam11on20629.outbound.protection.outlook.com
 [2a01:111:f403:2416::629])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id afeee676-24f6-11f0-9ffb-bf95429c2676;
 Tue, 29 Apr 2025 14:37:19 +0200 (CEST)
Received: from BL1PR13CA0307.namprd13.prod.outlook.com (2603:10b6:208:2c1::12)
 by SN7PR12MB6716.namprd12.prod.outlook.com (2603:10b6:806:270::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.31; Tue, 29 Apr
 2025 12:37:13 +0000
Received: from MN1PEPF0000ECD5.namprd02.prod.outlook.com
 (2603:10b6:208:2c1:cafe::1d) by BL1PR13CA0307.outlook.office365.com
 (2603:10b6:208:2c1::12) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.25 via Frontend Transport; Tue,
 29 Apr 2025 12:37:12 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 MN1PEPF0000ECD5.mail.protection.outlook.com (10.167.242.133) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8699.20 via Frontend Transport; Tue, 29 Apr 2025 12:37:12 +0000
Received: from xcbagarciav01.xilinx.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; Tue, 29 Apr
 2025 07:37: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: afeee676-24f6-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=jxX4f/TIxoU+7wN/2speL4gTXowFpKB+url1kZBGoGFbhQABEeyiFZx2W76hbDfHpxSHBAKrYjm2TSWDkRVZf/SObXKRYWzhj+oZ9eXZnIv+7q2Zp/bqecJOlpo9g7GohpR31Y+pzY9LXQ1kGSwdPwQLCbxyoqaFHz2Rl5pyb/03fNqVmuQY+RVqNSsakmdYG3zjgavU358Mtjwpe2sKzz3Q81gQeY0vNtgVAwsLGgGTI5uulqOO8WqSmgqTsn3XVKeIffFLMKPbAzJkhBIZ4Dwp2U2FmynO7F79Z2K1OPx0wjk9UupfR5rgJ8QJJ4weJqs3Vwp/z0DVtRV2A3gzwg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=iGykJQZXA0HQnaAnFulQBRBoOR4WtonCUdL5Fcu7eLY=;
 b=to0pDMyR5anAa3BKTM8D8zUbIE5Pibc5vcHf5ol4YJuFkJ6DUKpibcdu/3hAtV2KqPGU8Ab3zeV3VleiY1Hrr8NHkQt0h2lK3w6w4v+rDrOa97eVGnbQosAnoLi5CPgm3wXrIh0qcPDvPH6i9Z/0TnUhDtf6KDh9z5ERProF+yrg729BMonqH7AspqR4fq1zwz8t3eD5pO/M0X1avEm5hC79LAORH4KIY7Tq1amYX7kje3RaUnbtnBwCw5u1ce7oLikD94n1KwmYD6XTq5yrtGmavWz3n06X9PQ8WBjugzxwkKI/DQg5BjAc3/z2DSuEEU/bfcUq9MSy4aY+iZuH5Q==
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=iGykJQZXA0HQnaAnFulQBRBoOR4WtonCUdL5Fcu7eLY=;
 b=VJ19/Kmt05W+xmYJwwNntqXPmY47+/5Oireookxw0zha6rIWvpbs67gsEvk3BhIaBmL4Ov3sOvkrpzBDKbndoZ/+HEY0RVOwQBHxQ+lpPn+BFRqILquimK4ge0d+qUJ6T7c9CyLwEbHiSRVKZ+Yi9z0q4/+nuXMt3VwqqngJbKI=
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: Alejandro Vallejo <agarciav@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Alejandro Vallejo <agarciav@amd.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, "Julien
 Grall" <julien@xen.org>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>, "Jason
 Andryuk" <jason.andryuk@amd.com>, Denis Mukhin <dmukhin@ford.com>
Subject: [PATCH v6 04/12] x86/hyperlaunch: Add helpers to locate multiboot modules
Date: Tue, 29 Apr 2025 13:36:15 +0100
Message-ID: <20250429123629.20839-5-agarciav@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20250429123629.20839-1-agarciav@amd.com>
References: <20250429123629.20839-1-agarciav@amd.com>
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: MN1PEPF0000ECD5:EE_|SN7PR12MB6716:EE_
X-MS-Office365-Filtering-Correlation-Id: 633be678-8083-4dc2-4a89-08dd871a9104
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?EqkAaI7bxKQSI0Vq3StOWNmqaCvttiX4LzfcpghTtJGMUxV56en21dNV44X3?=
 =?us-ascii?Q?O1ru2GzjU7qqsjux7jjrRTBXzPUMScKHsIzx2Di2tmRROl7o6mGOiIYCrOPw?=
 =?us-ascii?Q?VwRReiZ3QoEx7Uc3rBcQrXGCa8kcGctq+duUkmBmYVYUz7Zm4pKKf/skS/Lj?=
 =?us-ascii?Q?Se2SCcUFy7EHlBr9OYPxOa6u71K03QZhBaqeb6v/0oI95WmWtNFeRr5fiF5L?=
 =?us-ascii?Q?GhaT5G9NQFSn7fj2c8RxR5AXJG3EhvW/eZQcEIq4UMTHLhkQzbvAM8xZDffS?=
 =?us-ascii?Q?wx5ghKyvJU8uBad5PMbjCaKCZyltXX9T0+/oxT8SYlcC08kz4OljWnEsYP7Q?=
 =?us-ascii?Q?ofyEdoKRbp2VTQd1sXZ7OamgvVyXBXr8Z5w5264Wh/WbRVUwBVT0J+f/JhCX?=
 =?us-ascii?Q?1q+PeD4aOOxDb2ohukolVGmF1zeqbkKDUDPBtS+8QW7OgItggB+1lcktb/De?=
 =?us-ascii?Q?bNfW5GgamVWtqA2gu/c6NNq+Ei1doa6m4IyJavzKt2a6hjzQs1uyr0tvHUsZ?=
 =?us-ascii?Q?BFi+iw/zIkiw1g64Eqa97bQC86njyUDWOFdu4aJOn3/vuWIAb829tdovSmuy?=
 =?us-ascii?Q?2g+Hfg52I6MlAN8/qpZmzcQKiSblNO1Y7HoNy+YYagx3f41P8fRuhxsvYgL6?=
 =?us-ascii?Q?PdunDIi/es82+TozIrDHUsa4NTQwT9WLldPTv/FuXKrQja44ijhGW3EjGPqo?=
 =?us-ascii?Q?g0mTERRECYve0Gu6MkfbEMsY50eYNDn6SSxJN5RTqG32j1dWbu9J5hWOdVGB?=
 =?us-ascii?Q?ChuoQxs3FsTOeERiGtS9FM1tg6JT2I4vMpMCOKFkoWJ/2SsRmH63yTqClJ8e?=
 =?us-ascii?Q?Xa4WtkUMKGb1VLooqf++SKBum8rxo893+ULSO7KJeJME3iVmXcpSteR6102Q?=
 =?us-ascii?Q?AEIs7FDCHQUTI2sMkQ99ZNyeVJAfIJ8yy4BrG9u84aFeYofT2KAj7N1Nqv/P?=
 =?us-ascii?Q?i/rjZM7FiHdjYzI+8CvFhoHg8uAeO5eXZAgsul7MIkUdHvRtHC6X43vWwYHE?=
 =?us-ascii?Q?zbzExuis7anCF1fb3UaT8MXOd/jPrBwl25uMfRwK9YbY0/LUyRnK5GxA5laY?=
 =?us-ascii?Q?MzkPqaY8VmEB/CV4Ls8NwQYf1+ZZUNH2NJ5c0LKHt3MnQ2gg72cflKOPz2V/?=
 =?us-ascii?Q?rIrcqYofEwFcM0bCTxHtcqiw7Y0Uo3WH6NwKhcEqPRwhIRBkWAsqL2iYo8ZC?=
 =?us-ascii?Q?B6FZs3dqIly/fNXQ1HGGGg30t0+v0h74GlC1hfxiqopcpK5gQNp+GB938ZZj?=
 =?us-ascii?Q?AzS9Ti4uMQ4bsBJY9rntUzWvo8KdDjd97ew8V511ahrnaz26jm+q/1WzvPpo?=
 =?us-ascii?Q?PqL3CejELNpGGrJ5Ag8VY33MDg+pby6YtD/71qyffmT1y8QWhnKtN23Fu6lG?=
 =?us-ascii?Q?RSkJwWPoFqZxpII7F3bUNOovNH8Vy21wXCNng2kz8mhxW+DAthIV3+YTa8zM?=
 =?us-ascii?Q?+cSko2PPKJGAdesF6/pSRxtjClOMwstXlosQaVIcHZGgBvEVlMqTU12WQR9K?=
 =?us-ascii?Q?lheRLz0eCwA5xNthgxV5oP9r7d1FRM/yOKbV?=
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: 29 Apr 2025 12:37:12.7927
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 633be678-8083-4dc2-4a89-08dd871a9104
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:
	MN1PEPF0000ECD5.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR12MB6716

Hyperlaunch mandates either a reg or module-index DT prop on nodes that
contain `multiboot,module" under their "compatible" prop. This patch
introduces a helper to generically find such index, appending the module
to the list of modules if it wasn't already (i.e: because it's given via
the "reg" prop).

Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
Signed-off-by: Alejandro Vallejo <agarciav@amd.com>
Reviewed-by: Denis Mukhin <dmukhin@ford.com>
---
 xen/common/domain-builder/fdt.c  | 172 +++++++++++++++++++++++++++++++
 xen/common/domain-builder/fdt.h  |   1 +
 xen/include/xen/domain-builder.h |   4 +
 3 files changed, 177 insertions(+)

diff --git a/xen/common/domain-builder/fdt.c b/xen/common/domain-builder/fdt.c
index 94ccff61e2..05ac3647cf 100644
--- a/xen/common/domain-builder/fdt.c
+++ b/xen/common/domain-builder/fdt.c
@@ -13,6 +13,178 @@
 
 #include "fdt.h"
 
+static 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;
+
+    *val = fdt32_to_cpu(*(const fdt32_t *)prop->data);
+    return 0;
+}
+
+/*
+ * Unpacks a "reg" property into its address and size constituents.
+ *
+ * @param prop          Pointer to an FDT "reg" property.
+ * @param address_cells Number of 4-octet cells that make up an "address".
+ * @param size_cells    Number of 4-octet cells that make up a "size".
+ * @param p_addr[out]   Address encoded in the property.
+ * @param p_size[out]   Size encoded in the property.
+ * @returns             -EINVAL on malformed property, 0 otherwise.
+ */
+static int __init fdt_prop_as_reg(const struct fdt_property *prop,
+                                  int address_cells, int size_cells,
+                                  uint64_t *p_addr, uint64_t *p_size)
+{
+    const fdt32_t *cell = (const fdt32_t *)prop->data;
+    uint64_t addr, size;
+
+    if ( fdt32_to_cpu(prop->len) !=
+         (address_cells + size_cells) * sizeof(*cell) )
+    {
+        printk(XENLOG_ERR "  cannot read reg %lu+%lu from prop len %u\n",
+            address_cells * sizeof(*cell), size_cells * sizeof(*cell),
+            fdt32_to_cpu(prop->len));
+        return -EINVAL;
+    }
+
+    switch ( address_cells )
+    {
+    case 1:
+        addr = fdt32_to_cpu(*cell);
+        break;
+    case 2:
+        addr = fdt64_to_cpu(*(const fdt64_t *)cell);
+        break;
+    default:
+        printk(XENLOG_ERR "  unsupported address_cells=%d\n", address_cells);
+        return -EINVAL;
+    }
+
+    cell += address_cells;
+    switch ( size_cells )
+    {
+    case 1:
+        size = fdt32_to_cpu(*cell);
+        break;
+    case 2:
+        size = fdt64_to_cpu(*(const fdt64_t *)cell);
+        break;
+    default:
+        printk(XENLOG_ERR "  unsupported size_cells=%d\n", size_cells);
+        return -EINVAL;
+    }
+
+    *p_addr = addr;
+    *p_size = size;
+
+    return 0;
+}
+
+/*
+ * Locate a multiboot module given its node offset in the FDT.
+ *
+ * The module location may be given via either FDT property:
+ *     * reg = <address, size>
+ *         * Mutates `bi` to append the module.
+ *     * module-index = <idx>
+ *         * Leaves `bi` unchanged.
+ *
+ * @param fdt           Pointer to the full FDT.
+ * @param node          Offset for the module node.
+ * @param address_cells Number of 4-octet cells that make up an "address".
+ * @param size_cells    Number of 4-octet cells that make up a "size".
+ * @param bi[inout]     Xen's representation of the boot parameters.
+ * @return              -EINVAL on malformed nodes, otherwise
+ *                      index inside `bi->mods`
+ */
+int __init fdt_read_multiboot_module(const void *fdt, int node,
+                                     int address_cells, int size_cells,
+                                     struct boot_info *bi)
+{
+    const struct fdt_property *prop;
+    uint64_t addr, size;
+    int ret;
+    uint32_t idx;
+
+    if ( fdt_node_check_compatible(fdt, node, "multiboot,module") )
+    {
+        printk(XENLOG_ERR "  bad module. multiboot,module not found");
+        return -ENODATA;
+    }
+
+    /* Location given as a `module-index` property. */
+    if ( (prop = fdt_get_property(fdt, node, "module-index", NULL)) )
+    {
+        if ( fdt_get_property(fdt, node, "reg", NULL) )
+        {
+            printk(XENLOG_ERR "  found both reg and module-index for module\n");
+            return -EINVAL;
+        }
+        if ( (ret = fdt_prop_as_u32(prop, &idx)) )
+        {
+            printk(XENLOG_ERR "  bad module-index prop\n");
+            return ret;
+        }
+        if ( idx >= MAX_NR_BOOTMODS )
+        {
+            printk(XENLOG_ERR "  module-index overflow. %s=%u\n",
+                   STR(MAX_NR_BOOTMODS), MAX_NR_BOOTMODS);
+            return -EINVAL;
+        }
+
+        return idx;
+    }
+
+    /* Otherwise location given as a `reg` property. */
+    if ( !(prop = fdt_get_property(fdt, node, "reg", NULL)) )
+    {
+        printk(XENLOG_ERR "  no location for multiboot,module\n");
+        return -EINVAL;
+    }
+    if ( fdt_get_property(fdt, node, "module-index", NULL) )
+    {
+        printk(XENLOG_ERR "  found both reg and module-index for module\n");
+        return -EINVAL;
+    }
+
+    ret = fdt_prop_as_reg(prop, address_cells, size_cells, &addr, &size);
+    if ( ret < 0 )
+    {
+        printk(XENLOG_ERR "  failed reading reg for multiboot,module\n");
+        return -EINVAL;
+    }
+
+    idx = bi->nr_modules;
+    if ( idx > MAX_NR_BOOTMODS )
+    {
+        /*
+         * MAX_NR_BOOTMODS must fit in 31 bits so it's representable in the
+         * positive side of an int; for the return value.
+         */
+        BUILD_BUG_ON(MAX_NR_BOOTMODS > (uint64_t)INT_MAX);
+        printk(XENLOG_ERR "  idx=%u exceeds len=%u\n", idx, MAX_NR_BOOTMODS);
+        return -EINVAL;
+    }
+
+    /*
+     * Append new module to the existing list
+     *
+     * Note that bi->nr_modules points to Xen itself, so we must shift it first
+     */
+    bi->nr_modules++;
+    bi->mods[bi->nr_modules] = bi->mods[idx];
+    bi->mods[idx] = (struct boot_module){
+        .start = addr,
+        .size = size,
+    };
+
+    printk(XENLOG_INFO "  module[%u]: addr %lx size %lx\n", idx, addr, size);
+
+    return idx;
+}
+
 static int __init find_hyperlaunch_node(const void *fdt)
 {
     int hv_node = fdt_path_offset(fdt, "/chosen/hypervisor");
diff --git a/xen/common/domain-builder/fdt.h b/xen/common/domain-builder/fdt.h
index d1bcc23fa2..5570fb7a9c 100644
--- a/xen/common/domain-builder/fdt.h
+++ b/xen/common/domain-builder/fdt.h
@@ -3,6 +3,7 @@
 #define __XEN_DOMAIN_BUILDER_FDT_H__
 
 #include <xen/domain-builder.h>
+#include <xen/libfdt/libfdt-xen.h>
 
 struct boot_info;
 
diff --git a/xen/include/xen/domain-builder.h b/xen/include/xen/domain-builder.h
index cbb3cbea7c..3ac3a0ab84 100644
--- a/xen/include/xen/domain-builder.h
+++ b/xen/include/xen/domain-builder.h
@@ -28,4 +28,8 @@ static inline enum fdt_kind builder_init(struct boot_info *bi)
 }
 #endif /* !IS_ENABLED(CONFIG_DOMAIN_BUILDER) */
 
+int fdt_read_multiboot_module(const void *fdt, int node,
+                              int address_cells, int size_cells,
+                              struct boot_info *bi)
+
 #endif /* __XEN_DOMAIN_BUILDER_H__ */
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 29 12:40:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 12:40:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.972392.1360760 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9kGY-00038e-EK; Tue, 29 Apr 2025 12:40:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 972392.1360760; Tue, 29 Apr 2025 12: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 1u9kGY-00038X-Bi; Tue, 29 Apr 2025 12:40:50 +0000
Received: by outflank-mailman (input) for mailman id 972392;
 Tue, 29 Apr 2025 12: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=PDgl=XP=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u9kDj-0007KK-9v
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 12:37:55 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on2061e.outbound.protection.outlook.com
 [2a01:111:f403:2415::61e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c5076f2d-24f6-11f0-9eb4-5ba50f476ded;
 Tue, 29 Apr 2025 14:37:54 +0200 (CEST)
Received: from BN0PR03CA0057.namprd03.prod.outlook.com (2603:10b6:408:e7::32)
 by SJ2PR12MB8158.namprd12.prod.outlook.com (2603:10b6:a03:4f7::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8699.19; Tue, 29 Apr
 2025 12:37:51 +0000
Received: from MN1PEPF0000ECDA.namprd02.prod.outlook.com
 (2603:10b6:408:e7:cafe::23) by BN0PR03CA0057.outlook.office365.com
 (2603:10b6:408:e7::32) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.41 via Frontend Transport; Tue,
 29 Apr 2025 12:37:51 +0000
Received: from SATLEXMB04.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.8699.20 via Frontend Transport; Tue, 29 Apr 2025 12:37:51 +0000
Received: from xcbagarciav01.xilinx.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; Tue, 29 Apr
 2025 07:37:44 -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: c5076f2d-24f6-11f0-9eb4-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=XsbgbhUkv5vsQD2xtrpUjKMtb9yDj6Im4oTD/xEZSRflUI2Xpnl+BQYeqviTNKSnlkGe4ux2715QgvI8iZYwxqrPbCJ5xb+bPEWwoKxRtSdvfNsFb+sWfLOXhtAccQP5dMTneYjch/9DrXMNs98Fg80TaU/ThxczwYHmkY//nKlTkrR0xp9up2/OZOwsRQ8lf5akFBff6skL+jZ3pGyi1otUQUhFCsDjVNJAaM9Og6ouhhRlh6EXOXkNgqyBMJ7so9XOuaDaJyUa2Zo/L7hVphv7jWxA/H9tUZZ9tj+dNLchoLM8GGFcwkoNnrCU8rKS++AMZz1PwFBFHHFUf14r4w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Pk+0cuFaL4PjlqZuXO8kAMll1JDmXXUosf54xaUN2m0=;
 b=VOGqBqzl7TmKDHSYlY4JrWb1pCdxGxOspayJHZhLFaKP3r6+7VHf9Thv8GKl7YPv1+TRGzF0FNNj6Q4i59tArFwiixRPutvVVEc4eC4GJH8EkOPFrDhl/pIPcZnZFrfTk5l/xMp6M5M3zsF7xie+skK8qwOlZQNN9vd8erMyu/zftFsdTGHpaDDGaV7aWoXq371MqJQ7tQEDPlnGctJkDkkrGdWe6iSLaoWZ8uG+StGXqU0xzHfYuA9uI5TlFLj9N0uu8uGEUnFnmyL3BpdN4lSfnT+jWQO8BaJfP1KWntcIFRrDCiw7MbgrRuQvNWz92Ia4gEWNAtlWCTqGpI3amw==
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=Pk+0cuFaL4PjlqZuXO8kAMll1JDmXXUosf54xaUN2m0=;
 b=MwrzTOV1SHVFiiC7YZWudKG2pwjEleoOe9ptqNyHEp8DKxn/TLoqS6vLgqGr5jQOfFYcS5SX20hG+Sei1/MpHgClcsIbXFFfEYmmME0rSsf6+0YRozzlZ2RI8e3PRIBe8L1JOs7qH9Z6p9rraeyWz5Bogb8ABC37ANW3LUNt8UI=
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: Alejandro Vallejo <agarciav@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: "Daniel P. Smith" <dpsmith@apertussolutions.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, "Julien
 Grall" <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, "Jason
 Andryuk" <jason.andryuk@amd.com>, Alejandro Vallejo <agarciav@amd.com>,
	"Denis Mukhin" <dmukhin@ford.com>
Subject: [PATCH v6 10/12] x86/hyperlaunch: add memory parsing to domain config
Date: Tue, 29 Apr 2025 13:36:21 +0100
Message-ID: <20250429123629.20839-11-agarciav@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20250429123629.20839-1-agarciav@amd.com>
References: <20250429123629.20839-1-agarciav@amd.com>
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: MN1PEPF0000ECDA:EE_|SJ2PR12MB8158:EE_
X-MS-Office365-Filtering-Correlation-Id: b9882f07-ffc9-454f-5147-08dd871aa7de
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|36860700013|376014|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?mNGGpBFI/t7n3Hydf9kVCo3j26iQqfl5Q5uT/FctcnUnj7IQV95e3xDhNJM5?=
 =?us-ascii?Q?RgTRLgRExM6m9khvNBTc70iH7TGAdJ7AWPP5Vypr531iO/Fig2v1z9PW1Hus?=
 =?us-ascii?Q?RtjNy34i2kZ0iJ3FRC5NwF//MajMtke5OpR50oaIbknm3w42DxgKIqLinvAE?=
 =?us-ascii?Q?+rhk7LYWrTjIUaf/pEAJnGBj9RWaHgH95fH8G7YhcpJbdYqf7ASDiXgDEYQx?=
 =?us-ascii?Q?G4uWK0OxEd/KOyANCYwTrgGqViPQRt8/oa91DZ4bseakHjaH3Lmymc+DrA00?=
 =?us-ascii?Q?wODj7+yCmlNZ/hMZL/Lwx1tTxu2tlWqapXSVT2L3QTsPBSNszSj5r1InRMzJ?=
 =?us-ascii?Q?HDQLKW3Gp+SwLD4mGVEhnYh+OufOVG6t9DWfBYHvgWZzLygRVMO4YeyXsCbO?=
 =?us-ascii?Q?5r5NpajGw4di2EVyi+JUs7vT6X+HE0zXGLC5zbfy/laV4sfEBw/ddjasGOeL?=
 =?us-ascii?Q?1b8Ilzi7DeWD8KNKHeGFh78Fp87BCGoAXoGqOZmgeyd25wOPIZujpjKp0lss?=
 =?us-ascii?Q?DoEBF8R+5FiKmHQ1zP43WpF9mpV32JhkEU0giJd8eP1n4T5KlmQwd6IH+4RH?=
 =?us-ascii?Q?sAzq+BA/6gRcaK3SW728zitJ18WzP4HhPSmeWSMKuxa+5SCTRRui8B8U4k3z?=
 =?us-ascii?Q?hFUqOxhpjDPuqB/bkGCRw7DrJ0sGQKW/OaA30sAYOkYSL993cpoWnyp+yD1F?=
 =?us-ascii?Q?zjNV5LUQVy6GzPpxNr3cTZSo7b3uL5gCqqoBuaac73WbB44Y9oRfPWT+haJi?=
 =?us-ascii?Q?S/VySYQfaMbLlu4QuNhyfzz130Nsc3lJ0akSr3nmY1+HfpMmIDsIowG0nf0L?=
 =?us-ascii?Q?efZ8uWLDv/G/ZlTLbLMQ+0DHrGuCwtnrvGhaPkbVR00WXo4FvZcT2I0updJm?=
 =?us-ascii?Q?LJnYieGn1pF2wETXaPcGHYgJeWcKvPa9WupYN8s/UBm39dwzNFt6/6QWES3g?=
 =?us-ascii?Q?sszygl1kD2yrd3wvMDkpuI4Koprc1/QXhRmi/3Bu1aSY33YBr/ly47ovf8yc?=
 =?us-ascii?Q?2IgU378lEk2vUGpsulnwTvuIqIjNgZE8mhgqpF7D83JPDDFDUyJKY+VUSoX/?=
 =?us-ascii?Q?oOL3P+TH4GFkp/uA1dWwnsJtluLqvxU0arANbJxsFxSEwkkXmbosv11X6lTT?=
 =?us-ascii?Q?7Y6uBuG2FFwAaiD2ZWE/UwZk2jOBTWqB9uIAKTrYH6X0kakL+6GcefB5rmcX?=
 =?us-ascii?Q?XjuiVjEeatoHJTJ2wEva+bKwVJnEYPw7wJMPE/TIKflhs7ekQCw+aUozAyWS?=
 =?us-ascii?Q?m6Q2uCet01sia3qaCDH0fYMessBm94zd1LvSZ0q4dHe0Qt8tJhrSpgHr19Ne?=
 =?us-ascii?Q?ZOjL8b+fv+ti52vPphIazRh7LCrHobH1G/K6IPFp5xF4VhMuhyXBrbyoql3F?=
 =?us-ascii?Q?MGAh+8xwzp938if8ZleE0TVmN5ZodGDvNLnsET0KOuTBlO5ja37qozngigdJ?=
 =?us-ascii?Q?zDjffE0W/aet1P1WmN/0D4IVjW/xdDef0F0MLyLSNYh7fd+7DrwD04r2Turm?=
 =?us-ascii?Q?OJ/guqS0NoFWAC+1dm2BUeHp7x0g1y0QnQjG?=
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: 29 Apr 2025 12:37:51.1290
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: b9882f07-ffc9-454f-5147-08dd871aa7de
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:
	MN1PEPF0000ECDA.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR12MB8158

From: "Daniel P. Smith" <dpsmith@apertussolutions.com>

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>
Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>
Signed-off-by: Alejandro Vallejo <agarciav@amd.com>
Reviewed-by: Denis Mukhin <dmukhin@ford.com>
---
 xen/arch/x86/dom0_build.c              |  8 +++++
 xen/arch/x86/include/asm/boot-domain.h |  4 +++
 xen/arch/x86/setup.c                   |  5 ++-
 xen/common/domain-builder/fdt.c        | 46 ++++++++++++++++++++++++++
 4 files changed, 62 insertions(+), 1 deletion(-)

diff --git a/xen/arch/x86/dom0_build.c b/xen/arch/x86/dom0_build.c
index 0b467fd4a4..8db24dbc0a 100644
--- a/xen/arch/x86/dom0_build.c
+++ b/xen/arch/x86/dom0_build.c
@@ -627,6 +627,14 @@ int __init construct_dom0(const 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, ULONG_MAX) && bd->mem_pages )
+        dom0_size.nr_pages = bd->mem_pages;
+    if ( !get_memsize(&dom0_min_size, ULONG_MAX) && bd->min_pages )
+        dom0_min_size.nr_pages = bd->min_pages;
+    if ( !get_memsize(&dom0_max_size, ULONG_MAX) && bd->max_pages )
+        dom0_max_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/include/asm/boot-domain.h b/xen/arch/x86/include/asm/boot-domain.h
index e316d4bcde..fa8ea1cc66 100644
--- a/xen/arch/x86/include/asm/boot-domain.h
+++ b/xen/arch/x86/include/asm/boot-domain.h
@@ -18,6 +18,10 @@ struct boot_domain {
 #define BUILD_MODE_ENABLE_DM     (1 << 1) /* HVM    | PVH     */
     uint32_t mode;
 
+    unsigned long mem_pages;
+    unsigned long min_pages;
+    unsigned long max_pages;
+
     struct boot_module *kernel;
     struct boot_module *module;
     const char *cmdline;
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 343f87ee9d..4a3c41ad71 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -297,7 +297,10 @@ static const char *cmdline_cook(const char *p, const char *loader_name);
 struct boot_info __initdata xen_boot_info = {
     .loader = "unknown",
     .cmdline = "",
-    .domains = { [0 ... MAX_NR_BOOTDOMS - 1] = { .domid = DOMID_INVALID } },
+    .domains = { [0 ... MAX_NR_BOOTDOMS - 1] = {
+        .domid = DOMID_INVALID,
+        .max_pages = ULONG_MAX,
+    }},
 };
 
 static struct boot_info *__init multiboot_fill_boot_info(
diff --git a/xen/common/domain-builder/fdt.c b/xen/common/domain-builder/fdt.c
index aadca11dfa..d9babe9d56 100644
--- a/xen/common/domain-builder/fdt.c
+++ b/xen/common/domain-builder/fdt.c
@@ -7,6 +7,7 @@
 #include <xen/init.h>
 #include <xen/lib.h>
 #include <xen/libfdt/libfdt.h>
+#include <xen/sizes.h>
 
 #include <asm/bootinfo.h>
 #include <asm/page.h>
@@ -24,6 +25,16 @@ static int __init fdt_prop_as_u32(const struct fdt_property *prop,
     return 0;
 }
 
+static int __init fdt_prop_as_u64(const struct fdt_property *prop,
+                                  uint64_t *val)
+{
+    if ( !prop || fdt32_to_cpu(prop->len) < sizeof(uint64_t) )
+        return -EINVAL;
+
+    *val = fdt64_to_cpu(*(const fdt64_t *)prop->data);
+    return 0;
+}
+
 /*
  * Unpacks a "reg" property into its address and size constituents.
  *
@@ -256,6 +267,41 @@ static int __init fdt_process_domain_node(
                    (bd->mode & BUILD_MODE_ENABLE_DM) ? "hvm" :
                                                        "pvh");
         }
+        else if ( !strncmp(prop_name, "memory", name_len) )
+        {
+            uint64_t kb;
+            if ( (rc = fdt_prop_as_u64(prop, &kb)) )
+            {
+                printk(XENLOG_ERR "  bad \"memory\" prop on domain %s\n", name);
+                return rc;
+            }
+            bd->mem_pages = PFN_DOWN(kb * SZ_1K);
+            printk(XENLOG_ERR "  memory: %lu KiB\n", kb);
+        }
+        else if ( !strncmp(prop_name, "mem-min", name_len) )
+        {
+            uint64_t kb;
+            if ( (rc = fdt_prop_as_u64(prop, &kb)) )
+            {
+                printk(XENLOG_ERR
+                       "  bad \"mem-min\" prop on domain %s\n", name);
+                return rc;
+            }
+            bd->min_pages = PFN_DOWN(kb * SZ_1K);
+            printk(XENLOG_INFO "  min memory: %lu kb\n", kb);
+        }
+        else if ( !strncmp(prop_name, "mem-max", name_len) )
+        {
+            uint64_t kb;
+            if ( (rc = fdt_prop_as_u64(prop, &kb)) )
+            {
+                printk(XENLOG_ERR
+                       "  bad \"mem-max\" prop on domain %s\n", name);
+                return rc;
+            }
+            bd->max_pages = PFN_DOWN(kb * SZ_1K);
+            printk(XENLOG_INFO "  max memory: %lu KiB\n", kb);
+        }
     }
 
     fdt_for_each_subnode(node, fdt, dom_node)
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 29 12:41:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 12:41:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.972396.1360771 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9kGs-0003ho-Lz; Tue, 29 Apr 2025 12:41:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 972396.1360771; Tue, 29 Apr 2025 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 1u9kGs-0003hf-Ia; Tue, 29 Apr 2025 12:41:10 +0000
Received: by outflank-mailman (input) for mailman id 972396;
 Tue, 29 Apr 2025 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=PDgl=XP=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u9kDV-0007L9-1s
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 12:37:41 +0000
Received: from NAM11-CO1-obe.outbound.protection.outlook.com
 (mail-co1nam11on20614.outbound.protection.outlook.com
 [2a01:111:f403:2416::614])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bb26705b-24f6-11f0-9ffb-bf95429c2676;
 Tue, 29 Apr 2025 14:37:38 +0200 (CEST)
Received: from BN0PR03CA0040.namprd03.prod.outlook.com (2603:10b6:408:e7::15)
 by SA3PR12MB7999.namprd12.prod.outlook.com (2603:10b6:806:312::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8699.19; Tue, 29 Apr
 2025 12:37:33 +0000
Received: from MN1PEPF0000ECDA.namprd02.prod.outlook.com
 (2603:10b6:408:e7:cafe::83) by BN0PR03CA0040.outlook.office365.com
 (2603:10b6:408:e7::15) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.37 via Frontend Transport; Tue,
 29 Apr 2025 12:37:33 +0000
Received: from SATLEXMB04.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.8699.20 via Frontend Transport; Tue, 29 Apr 2025 12:37:33 +0000
Received: from xcbagarciav01.xilinx.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; Tue, 29 Apr
 2025 07:37:29 -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: bb26705b-24f6-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=m9e8D8gpduj48qds7TjH9dOPn8ZgbAZN+R++qowLZ0cydbgbp11dBKUYy2f1KmOZ43A7MfLX7i1C2V1Mx243wOsdfJrH/iYvLG1zNmSBvIIitDwbtlxqvaR4KdIf4z0Hz0axiWaVuT6+mdQKnrl7QVLrtnOykyUquy2HbacWO+5JkSTDdRQTdGQ1eVhb1XzFe6RMPz67z8RJ91fwIQ3BVQ9C1Q9rgxvJL4n48rxfklMYc7fFbDXY/dOXO5PMl8HucNJIZVYOmQHmN3jBxkj+qmYitGtYhpI9Z4Ox265epHqHpwZknG97lBvBps+AWbXN0B4bJln/ZfUCUrazz0g0UA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=xDrFG98ghx3Lb9O56CXpByERjFCHM6cxhmOuzmZVC7s=;
 b=pPfuc3cYrLFuvJue9vocA455JOec3CKRX8ATNYkg5OIQg0o8ClrxeB3q2tP3+4pSpWVssmlgtAmt+9UuhBFO/IwqHfN2qJbrutP/EzLGpWO4aTfFf3R7SJ2gUCZm2HckX6sGwunLCdDcWK0MgjXPrHBnVqDhfLbF+9IOsxLAJVFE+EZkeYVO8HpWoezHjRaZBI887cn4F5UTWZDZ36KxdD18tc/ma8KGXs2N7MmxzO4ain9WW9NVPDxGIz3EOYXOAEwg+eKMq7eRLf1u/IKzuejPdk5x6hvtnlTmS85ZfBLkWTpVuGtPxQJv+Q9pYsE++i1oIYJYsz8BpY7zBJHJZg==
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=xDrFG98ghx3Lb9O56CXpByERjFCHM6cxhmOuzmZVC7s=;
 b=fIPzAOqgOwM+tlIoXYbBQc7pG+74Z5MmOakPImu0dNsPva3tYqrLjBmzGqVMZ1EvJjdrmEu/+XbiKGq2ztvw9U6n/sDe6S0WGSrAFPdSgEzEbOIu7DuIPAmEBOnSh4KoLj9cQnXv3+1D1ULb8waitPvymxuNFbabskGtHbEDiAo=
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: Alejandro Vallejo <agarciav@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: "Daniel P. Smith" <dpsmith@apertussolutions.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, "Julien
 Grall" <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, "Jason
 Andryuk" <jason.andryuk@amd.com>, Alejandro Vallejo <agarciav@amd.com>,
	"Denis Mukhin" <dmukhin@ford.com>
Subject: [PATCH v6 07/12] x86/hyperlaunch: locate dom0 initrd with hyperlaunch
Date: Tue, 29 Apr 2025 13:36:18 +0100
Message-ID: <20250429123629.20839-8-agarciav@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20250429123629.20839-1-agarciav@amd.com>
References: <20250429123629.20839-1-agarciav@amd.com>
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: MN1PEPF0000ECDA:EE_|SA3PR12MB7999:EE_
X-MS-Office365-Filtering-Correlation-Id: 2900730e-0f8a-4ce0-3d73-08dd871a9d30
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|36860700013|376014|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?cuXTN9+ozAk+/y+9Y0Mn7+e41jQNNu6AjVeO4xkQnQWnytv6hrplu+ZxTi61?=
 =?us-ascii?Q?bHXQbYwLDDCcH/EgSmT9P6C+L7CDyvvWgwheAc8ZYgtw9rouHui1V31tdENR?=
 =?us-ascii?Q?pvjMhDRYA3FCMeZ1pjwO8jGU1gTIaunyXelPiZhznoTVJAYRIOJbo8qgJWqR?=
 =?us-ascii?Q?umLCFd4HpiFumAzXqxtqbP6QerOSy7rIplqfWvencGk7d+WK/+2OPsIfzovm?=
 =?us-ascii?Q?YvkIZMPU2YRlgpFRCv99rI6GH7RWw5r71z9mPT3KxAJOa14BCmuR6Ed+9pTA?=
 =?us-ascii?Q?GyWnhtx+ks+sUOat3d6ppzGI/c3PiPNJhaLFu/49HKBojX1aIgFXkCOvyB6e?=
 =?us-ascii?Q?vKEQzxw5IB7jNOzliTMAtkvfRJuVLd9/d8zLed/OpcrVPHHgQdJe3FgQIfsM?=
 =?us-ascii?Q?NTeBfPeOVabssfH9H7jdDQiZNSq/RYynJJK488adr5gb9u1gPqC6pXWanswa?=
 =?us-ascii?Q?yFJBTBKE09SPTcvSw6onUwUkFGJBip5A6qYcVtMKLIVrb+djf+/M2/nfWyPs?=
 =?us-ascii?Q?I40glzER5NsSXXYwJopT6mLDDAMRbOZBNOcoYOCKSddVspHYEd5Y9NWe2HTo?=
 =?us-ascii?Q?hN7dGYfqf0TBDTCjgi30CUbccuRlrMwk2AK0DuQwOoCMLOMTBVJ86B1oYUn9?=
 =?us-ascii?Q?NlpXkUMp949Cmu/EW3Usji0kruEiJ1jII65JGFyUYAMPfDxODdDaGn9Yd1JU?=
 =?us-ascii?Q?0wRoDNg/6Z+DQ0fmliomt5fmn0WZhotdS0Jo5rjeTnpBqt6zN40QJgt9g7GB?=
 =?us-ascii?Q?kJAM3c4hcCfdoFlRhL6jOUH+FUxlXchMCc+oiqxThwvFZiI/obYevMv+RBW8?=
 =?us-ascii?Q?GcR1PPjzKumjDKMVeQFjNhcQ24BsCbATgurp+c/XFvn8J1KQuhuavxHNXrnP?=
 =?us-ascii?Q?cbXlxjO5uljdEo2yATM9z4iI+cLXvfD7o2wmXHm9gKGSBYGO7ZpXbpzP4RPD?=
 =?us-ascii?Q?8103XfSmYK0pXC6IXOO4w8UVAgdKmw0y/UOSFA75y7O81WqP+USZpqsYeiuI?=
 =?us-ascii?Q?jvQsgGCgsSY7aToU7CIh8/DrD/66OclIVj2x4QwTBb/dTtFuJRZjml8GbDDy?=
 =?us-ascii?Q?US8y7OOPaLPlmig5MFlW1DNxQbYDnjtE656/Q+Ggw9FEBf7L/3nM18flAYsG?=
 =?us-ascii?Q?hxMM7BOc4bg4y+jBG7iY6x1vFIk+Am3BvHXor27+VtfR5P63roSqEUY64h/Q?=
 =?us-ascii?Q?tgwvKt3gWQYttnx6Q8Fu13X43KoeW3biu4pJSVK0jNgejXBUu2lWq3gKSXa3?=
 =?us-ascii?Q?riQMEKs0ZrCb0UZ85W1nAPC9ACHbZNYCvtmdy1jvV2CG1EhzN17Ph4SUAkev?=
 =?us-ascii?Q?sbbSx0CyqvYIbQFx/vpmbi6cKCsanfmucVnBSFHJmg6pdbYta4dz82CAMijT?=
 =?us-ascii?Q?zx1h7Jxkr+0LpNfBT/1GDuMn0hqkYJLxsM/hcKJz1xfzD5u6K/NIJFjBEm8L?=
 =?us-ascii?Q?sD5gbjB1OZ8kc4BDYcmL8/MnKijiQ2r5vXtIacTgwZQNC7+ZvgVSKTkf1dvn?=
 =?us-ascii?Q?mOvEzUXhAM9hgy0UGqpvS4UR+gQ0vyeAmEvt?=
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: 29 Apr 2025 12:37:33.2122
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 2900730e-0f8a-4ce0-3d73-08dd871a9d30
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:
	MN1PEPF0000ECDA.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA3PR12MB7999

From: "Daniel P. Smith" <dpsmith@apertussolutions.com>

Look for a subnode of type `multiboot,ramdisk` within a domain node and
parse via the fdt_read_multiboot_module() helper. After a successful
helper call, the module index is returned and the module is guaranteed
to be in the module list.

Fix unused typo in adjacent comment.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
Signed-off-by: Alejandro Vallejo <agarciav@amd.com>
Reviewed-by: Denis Mukhin <dmukhin@ford.com>
---
 xen/arch/x86/setup.c            |  4 ++--
 xen/common/domain-builder/fdt.c | 24 ++++++++++++++++++++++++
 2 files changed, 26 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 765b690c41..c8de028439 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -2172,11 +2172,11 @@ void asmlinkage __init noreturn __start_xen(void)
      * 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
+     * any remaining unclaimed boot modules, and report them as unused initrd
      * candidates.
      */
     initrdidx = first_boot_module_index(bi, BOOTMOD_UNKNOWN);
-    if ( initrdidx < MAX_NR_BOOTMODS )
+    if ( !bi->hyperlaunch_enabled && initrdidx < MAX_NR_BOOTMODS )
     {
         bi->mods[initrdidx].type = BOOTMOD_RAMDISK;
         bi->domains[0].module = &bi->mods[initrdidx];
diff --git a/xen/common/domain-builder/fdt.c b/xen/common/domain-builder/fdt.c
index dabe201b04..507f383f8e 100644
--- a/xen/common/domain-builder/fdt.c
+++ b/xen/common/domain-builder/fdt.c
@@ -226,6 +226,30 @@ static int __init fdt_process_domain_node(
                 bd->kernel->fdt_cmdline = fdt_get_prop_offset(
                     fdt, node, "bootargs", &bd->kernel->cmdline_pa);
         }
+        else if ( !fdt_node_check_compatible(fdt, node, "multiboot,ramdisk") )
+        {
+            int idx;
+
+            if ( bd->module )
+            {
+                printk(XENLOG_WARNING
+                       "Duplicate module for domain %s\n", name);
+                continue;
+            }
+
+            idx = fdt_read_multiboot_module(fdt, node, address_cells,
+                                            size_cells, bi);
+            if ( idx < 0 )
+            {
+                printk(XENLOG_ERR "  failed processing module for domain %s\n",
+                       name);
+                return idx;
+            }
+
+            printk(XENLOG_INFO "  module: multiboot-index=%d\n", idx);
+            bi->mods[idx].type = BOOTMOD_RAMDISK;
+            bd->module = &bi->mods[idx];
+        }
     }
 
     if ( !bd->kernel )
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 29 12:41:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 12:41:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.972418.1360781 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9kHD-0004NJ-Ub; Tue, 29 Apr 2025 12:41:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 972418.1360781; Tue, 29 Apr 2025 12:41: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 1u9kHD-0004NC-RF; Tue, 29 Apr 2025 12:41:31 +0000
Received: by outflank-mailman (input) for mailman id 972418;
 Tue, 29 Apr 2025 12:41: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=PDgl=XP=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u9kDi-0007L9-6U
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 12:37:54 +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 c15bbb54-24f6-11f0-9ffb-bf95429c2676;
 Tue, 29 Apr 2025 14:37:48 +0200 (CEST)
Received: from MN2PR14CA0009.namprd14.prod.outlook.com (2603:10b6:208:23e::14)
 by SA1PR12MB8844.namprd12.prod.outlook.com (2603:10b6:806:378::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.34; Tue, 29 Apr
 2025 12:37:45 +0000
Received: from MN1PEPF0000ECD9.namprd02.prod.outlook.com
 (2603:10b6:208:23e:cafe::8d) by MN2PR14CA0009.outlook.office365.com
 (2603:10b6:208:23e::14) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.37 via Frontend Transport; Tue,
 29 Apr 2025 12:37:44 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 MN1PEPF0000ECD9.mail.protection.outlook.com (10.167.242.138) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8699.20 via Frontend Transport; Tue, 29 Apr 2025 12:37:44 +0000
Received: from xcbagarciav01.xilinx.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; Tue, 29 Apr
 2025 07:37:38 -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: c15bbb54-24f6-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=qKY6d7qUdjWCXXp4sPcMpQn+ypy1VohlOBGabRj97oHZdXEJCgIQqmQXdY0ADfF8tEcdQvczoTXv9iHBQfy6Zbir19yEkvbgZR74Buk49KdRpKeGTKUNM2LmO4QLW3qpMVFscH4546HKQwQjdnLMq0wzBQ6a06iCUwYKp6si1eskN/YJ398hSNno9UUANZBxYf39qj9fX+buP1z7o323cksgdxd0HjijV0jh5z4eON0Lv/q8E6I7YPrVFHWHZQ5JKB3ntom2leNUwBwp/9Cxj0MDh24yiNdJx/jW61maE8YEr8olix5OTmoTtiN4fn7RSqKaXxOtyLAqSzdulJkD3g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=OWJmF8J3I0L8/d+4QMX42T2JCCUmBXzaxaMVzbsl3mk=;
 b=Gr4U4qEXs2iPbBD+5sBco5uXW68DSq2n7jkcXyUpckuGbAv2XBWwdO6+7V1zaGbk0bQtB4RLCuuBcPdrrEvSqFVp/20ZnBdOu45mxFtir4ZmNcsWoqhmEyi4g1RFVBido6dRIJxHxjWmFRTAKpIZCOeSDeDcCMQLOHagluTRrqFpvbBFh/WFZsxhSfPalx7bCACGxV4iNTzHqSCPdp7nHDF3fayEVlBRnd0NbvBab1dsT3T1lrCidCnbT4YAaG0O878TIya7qY4iHONWfLWNcdIfxN5mDH+q9TiBzQByj13UyBLCRev3G+Y0h5cf71dXc+Jlt99boEm9flpqVMbqvA==
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=OWJmF8J3I0L8/d+4QMX42T2JCCUmBXzaxaMVzbsl3mk=;
 b=Gf8f8Nod3SC2lLGSnD/pkP1bsOurYSEBsC8ZmEhiRFNZL1Pq6DYnO7KbmJAM9H5tPr5OZSzesQn7iHjjb5Vaj2zx/SLbtDqsFugibZ9fNk6U8zGJwpDzayIhof1ln322oT0Ez6+0zUKbk3rH2uYsXWvzaMS9IGycbBF7MdmzNVw=
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: Alejandro Vallejo <agarciav@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: "Daniel P. Smith" <dpsmith@apertussolutions.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, "Julien
 Grall" <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, "Jason
 Andryuk" <jason.andryuk@amd.com>, Alejandro Vallejo <agarciav@amd.com>,
	"Denis Mukhin" <dmukhin@ford.com>
Subject: [PATCH v6 09/12] x86/hyperlaunch: specify dom0 mode with device tree
Date: Tue, 29 Apr 2025 13:36:20 +0100
Message-ID: <20250429123629.20839-10-agarciav@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20250429123629.20839-1-agarciav@amd.com>
References: <20250429123629.20839-1-agarciav@amd.com>
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: MN1PEPF0000ECD9:EE_|SA1PR12MB8844:EE_
X-MS-Office365-Filtering-Correlation-Id: 551c868e-1a01-42e0-77f6-08dd871aa411
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|36860700013|376014|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?AKwx6ZHWVZUgbJxSO2TeTuSDoN+7M1Nfs7AjTdpL7uIppYS6wPwCREyFU9BZ?=
 =?us-ascii?Q?BLMHikTWLb1bGCPAJW9Bj9QApR3XvtPpCBFcZQpb1ynP/NeN8wFZGtL1ORoi?=
 =?us-ascii?Q?V+qvEjWOupTw5o2NF5yHPwUeO6FnskTC7CAEmvbRpsl2cVXSEEZ+kzihjONr?=
 =?us-ascii?Q?S0AQFkjxkHpmaGPj+QA6fsb3MFpz0gbLFXEmbvJOe5jbmeg0rF92CuQWJl7U?=
 =?us-ascii?Q?hJovHr9rnt8MR4rdm2sUjMyXJiFHi/5RjugrdByVwOnXOE2AK5wWe99buQh8?=
 =?us-ascii?Q?XqwZeeFB2s42EUG6sMYwL4GJVOmGWgl/2cHrRqHZlUzK1qiWM2mvB0D8t9aR?=
 =?us-ascii?Q?KLxF5Q2VrflcAj4bzsbBXo05kIqb9Ay+nGF5MS5P9alLuBEL0ZfjhRPZxhR9?=
 =?us-ascii?Q?tnClwXwWZLby6hlkjknEndiH/ZtWznNWAt3Cf2epXnlG3TGEQbOdD0+xW+Iq?=
 =?us-ascii?Q?JpbDl1OEw0wv79oqv88TiWWsANaXvmFb7oiaziOgLMpeC9rn4pHzWFA1YBrp?=
 =?us-ascii?Q?Z3n9dsLTb6Cz/QIjs7NF5DMunaMk0VVCsBqlxix0NNyrtbURvh6jhyPmKoVQ?=
 =?us-ascii?Q?EasqZeDzVdFjG9t2KU9zLVMOf4TQh+diZwyLYzBhnHLyCdT78B3Qi7K7o8lS?=
 =?us-ascii?Q?FXJ181ntv53HwqmkikxhRBZ6/cMm+U9ojqdqbcFpgt/gRNXTCdx8+wsOTP1D?=
 =?us-ascii?Q?I3OhZuN9QAKqV+O8RmfT4gCQVMiiaPUXs1+NTyblpECUkJ836mKMxJBX7TQy?=
 =?us-ascii?Q?ebr7DD+e0iP/Ex5ckpk+Jgh7wtEB+bNqnB3ytwDJqAlLpbXEKpu7PkxYOYAn?=
 =?us-ascii?Q?X2RwBmGy44LcL1FD421GNeCq/KoIxIesTS0F1qNIZa3l5ekLWq516Pvt1dVa?=
 =?us-ascii?Q?gP8Kkqo7ws+7l5Q3/0tjJ6LDzxl77hYoVT7G94Bj+d6bTBmRdp0YZ/qSqzpp?=
 =?us-ascii?Q?iMX8BD4VqpjHTxvdBbgNgejXMOEXor33dnG1/M1j8ejctvmxxan9B8NA/Tp/?=
 =?us-ascii?Q?NBFeb14GEaCsn6tlSVPsfvcFgcgi723sPcLYtm3SYU+bckXPM43V7dUuiwDa?=
 =?us-ascii?Q?rD73Wt2y/Umcry/qlyrqTO3aG8AsP5nzWfe6qRrA3e6LA8gqiMnUfcQg2oAB?=
 =?us-ascii?Q?ZvINcjG8UDp6c4xNhjdzLx2dUsagdBza/IjB4b3a9VOMA9rcenyE96VPV73v?=
 =?us-ascii?Q?ElsqIEXx+ufQ+8I9yxTj1JdKnBuPrz0Alf2CebaldAf8dGB34TYtMZm44Buj?=
 =?us-ascii?Q?4rLjqttXs1HVZQxXLtutwVcU51ira3gdJegdwffA+BsSlQ7laozM6zflEqx8?=
 =?us-ascii?Q?YLzmA2Sy9KCryzW4ZNzECZxwSnjrFm6YrsX4o2+SwEDroD4KfiNJDGiinJxb?=
 =?us-ascii?Q?noabOCvXrw/XceRNSoIfAwONn3SYAQu6c8bTer8YeaLWy/JHWwYMUjxjYfCO?=
 =?us-ascii?Q?V5zR6Q6SfLZ+ytI26q8CjmlRF53mazyvZrb/pTQGiwxwVH9S3esH6tJAOlK2?=
 =?us-ascii?Q?SANHydmW8xv/yJk45dmX3LZQVVwKPZjgiKAc?=
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: 29 Apr 2025 12:37:44.7150
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 551c868e-1a01-42e0-77f6-08dd871aa411
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:
	MN1PEPF0000ECD9.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB8844

From: "Daniel P. Smith" <dpsmith@apertussolutions.com>

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>
Signed-off-by: Alejandro Vallejo <agarciav@amd.com>
Reviewed-by: Denis Mukhin <dmukhin@ford.com>
---
 xen/arch/x86/include/asm/boot-domain.h |  5 +++++
 xen/arch/x86/setup.c                   |  3 ++-
 xen/common/domain-builder/fdt.c        | 21 +++++++++++++++++++++
 3 files changed, 28 insertions(+), 1 deletion(-)

diff --git a/xen/arch/x86/include/asm/boot-domain.h b/xen/arch/x86/include/asm/boot-domain.h
index d7c6042e25..e316d4bcde 100644
--- a/xen/arch/x86/include/asm/boot-domain.h
+++ b/xen/arch/x86/include/asm/boot-domain.h
@@ -13,6 +13,11 @@
 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     */
+    uint32_t mode;
+
     struct boot_module *kernel;
     struct boot_module *module;
     const char *cmdline;
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 10ff67ac37..343f87ee9d 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -1030,7 +1030,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) ?
diff --git a/xen/common/domain-builder/fdt.c b/xen/common/domain-builder/fdt.c
index 2c05b0a22d..aadca11dfa 100644
--- a/xen/common/domain-builder/fdt.c
+++ b/xen/common/domain-builder/fdt.c
@@ -235,6 +235,27 @@ static int __init fdt_process_domain_node(
             bd->domid = val;
             printk(XENLOG_INFO "  domid: %d\n", bd->domid);
         }
+        else if ( !strncmp(prop_name, "mode", name_len) )
+        {
+            if ( (rc = fdt_prop_as_u32(prop, &bd->mode)) )
+            {
+                printk(XENLOG_ERR
+                       "  failed processing mode for domain %s\n", name);
+                return rc;
+            }
+
+            if ( (bd->mode & BUILD_MODE_PARAVIRT)  &&
+                 (bd->mode & BUILD_MODE_ENABLE_DM) )
+            {
+                printk(XENLOG_ERR "  mode: invalid (pv+hvm)\n");
+                return -EINVAL;
+            }
+
+            printk(XENLOG_INFO "  mode: %s\n",
+                   (bd->mode & BUILD_MODE_PARAVIRT)  ? "pv"  :
+                   (bd->mode & BUILD_MODE_ENABLE_DM) ? "hvm" :
+                                                       "pvh");
+        }
     }
 
     fdt_for_each_subnode(node, fdt, dom_node)
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 29 12:42:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 12:42:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.972437.1360791 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9kHk-0005HL-8q; Tue, 29 Apr 2025 12:42:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 972437.1360791; Tue, 29 Apr 2025 12: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 1u9kHk-0005HE-69; Tue, 29 Apr 2025 12:42:04 +0000
Received: by outflank-mailman (input) for mailman id 972437;
 Tue, 29 Apr 2025 12: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=PDgl=XP=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u9kDr-0007KK-HX
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 12:38:03 +0000
Received: from NAM12-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam12on2060c.outbound.protection.outlook.com
 [2a01:111:f403:200a::60c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c9608161-24f6-11f0-9eb4-5ba50f476ded;
 Tue, 29 Apr 2025 14:38:02 +0200 (CEST)
Received: from BN9PR03CA0710.namprd03.prod.outlook.com (2603:10b6:408:ef::25)
 by IA0PR12MB7776.namprd12.prod.outlook.com (2603:10b6:208:430::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.33; Tue, 29 Apr
 2025 12:37:55 +0000
Received: from MN1PEPF0000ECD7.namprd02.prod.outlook.com
 (2603:10b6:408:ef:cafe::b5) by BN9PR03CA0710.outlook.office365.com
 (2603:10b6:408:ef::25) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.37 via Frontend Transport; Tue,
 29 Apr 2025 12:37:55 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 MN1PEPF0000ECD7.mail.protection.outlook.com (10.167.242.136) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8699.20 via Frontend Transport; Tue, 29 Apr 2025 12:37:55 +0000
Received: from xcbagarciav01.xilinx.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; Tue, 29 Apr
 2025 07:37:51 -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: c9608161-24f6-11f0-9eb4-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=kTHqwIOhPC0UkysD4e4F4bzbQoYqlfwaE78RmKwAZ7yEE61Wk5AKRL63VAZgyt2Ud+ifwtURbSF0ux54OM86iSlr3fPvkA94LOW5rTFZQ3mybc8bxoOuiZL3H+w2O7ABJXvD9CH6hbijuWsMrcysZacrefmYMeuoOe4UyMBF6rFjDkG85J29a25tWUy+b59yugbqPJ05pBn6Llu4no762p58kJ1IhTlLnvQ0Ww5yrEbwCaoY+xD8HuT2LpFBwqHXt5IFmfmwvQbxUFH4jpFzjbu/DAekwAN+nnTYX0nWQ6C3BA5oK3UVW2J68jNkQOAjRsmVySuPQuO1fSIqBHEoxg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=/ohQ5gUwvFY4l0X5A4KS0w190NIPE0tD/1TucyppGhs=;
 b=F1mOHv3nWNnK/5zyaopk9gBgJ2PdYGxiAGO0ZNte4vh6uUkCsmQ1PjFOGW8ZpJ7ngwb3ISyw/TLk47es45O9mS1zmxV9l7Xu19rQXitbwxBykLkBwy+Ef0vS3XEU7jYxd1qK2a0pUlaWSaZve8P9qJS/7xod7Tq7Q0vLZJ+MO3Alvz0cRk5qub5oZopeJdXq9uhJLlA2qJhrDe63HI0EVTPU6JtFoL/ZYm8pjxim7HDniLzTgctLlr3QI411aSy1UzpBNr+xvQ3RTaOZoZ825V9T+bbJJG4KXFEQbEd1f434N/rxpreF0XjLe8xMqMIQv2W2U+r6YjwY8sAd1ks0bw==
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=/ohQ5gUwvFY4l0X5A4KS0w190NIPE0tD/1TucyppGhs=;
 b=1gkawsEwHaB7AMAQ4JnDNu3RZyOobYaEncIzZjxd3J1g2clZsZCtfSQdwKzz2KivmDxKXgYpHs7retSJ+sdSJgkDkDlfOTPX292Qb+dePusjxRHmzbv0uVLfKq2gHZU8zywSsYP7fQF+dfe5x0vwdAsV9w34M9Or2aZw1ISwChg=
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: Alejandro Vallejo <agarciav@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: "Daniel P. Smith" <dpsmith@apertussolutions.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, "Julien
 Grall" <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, "Jason
 Andryuk" <jason.andryuk@amd.com>, Alejandro Vallejo <agarciav@amd.com>,
	"Denis Mukhin" <dmukhin@ford.com>
Subject: [PATCH v6 11/12] x86/hyperlaunch: add max vcpu parsing of hyperlaunch device tree
Date: Tue, 29 Apr 2025 13:36:22 +0100
Message-ID: <20250429123629.20839-12-agarciav@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20250429123629.20839-1-agarciav@amd.com>
References: <20250429123629.20839-1-agarciav@amd.com>
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: MN1PEPF0000ECD7:EE_|IA0PR12MB7776:EE_
X-MS-Office365-Filtering-Correlation-Id: 6bc510ad-5d17-4a9f-af65-08dd871aaa71
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?32lbXCbMnPXdxiXOweGvN1k6BOhaH5ijsJQYqoTB02YpDpOLiSAMGs8dsTi9?=
 =?us-ascii?Q?qBoJb2xfJcctAZtaEym+diOp2INXuNQ+7KABeP2c2gXLG7is+zmYcKKDQkMe?=
 =?us-ascii?Q?9G+NabSm3pWAt3oumFn3YVIL50pyfsEKNWPjBITybKpQRwEsyCOISSXTlwYE?=
 =?us-ascii?Q?Dm9BAPm5iWdgN2ri5UlooUzRH4A3KrC0eBnjb7J49m08recuczb0cAkYRDXl?=
 =?us-ascii?Q?VOXDgel/ZylLOB6/+7qDIi8NPKG44HURABRxUdlK2w7Zalpq8zlHk8cz6NlR?=
 =?us-ascii?Q?xaO5I43nSvJI2k4uqTpMwnQxcc37qG2AlZV3ogrq6dmPyZIRCfiw5aDIA2ZJ?=
 =?us-ascii?Q?/XsUyZiLv27hAdbVmVkALOGKhQOzFfSkoj2DaYCtenyf0xEPz31ibxxa8fyX?=
 =?us-ascii?Q?JrLPulOgdWuyNjCPpM6u3jYX8ow34hxFdkLl0XeDAYDvr7B7h5vOFJA/hQtS?=
 =?us-ascii?Q?Avt5SpWrLU+KrUVsn8AnBwQ8nhEjW5WeXWdivboWShZbQXWsi5OqxFaAOXQ8?=
 =?us-ascii?Q?4V1FoGgryqUudR5N0z4R3xBjt2aC/RBmnH+EUw4s/SUSBHgMBTjXW4+jPcQ8?=
 =?us-ascii?Q?m+PYK/K9U7IzE+E2TCczGwbX2TGbw/i2rLCXt5PLOZoY5yYGnfuZ33Lz2nOT?=
 =?us-ascii?Q?5lKEJD/I3basDB1JgyY+VXYStF/Vnbaex4Rl2YanHpxP69AQGEXRXt3Pfp2a?=
 =?us-ascii?Q?miaQdMwmqhLPBcwXF55ahXChAm9Y01eRBRUeGr5wbJzkqf4jIl3ffvuMupVR?=
 =?us-ascii?Q?vGz6oejnp8DShygBRRUjqtDncNKJrOxI2fin6ZBU3Per98tp2otB7fdVANcp?=
 =?us-ascii?Q?yjHCIy6LNyr9gMS5MA3MSG3JV/pP0A8mwNrRjRvOrLLfsVR2TFLJlW80XOY2?=
 =?us-ascii?Q?ZJZXQ7afSU3j4Z6dHcJv6oFCk5a68dZbTfJPi5lVqQj+3w+QVWt7eIu+5eVr?=
 =?us-ascii?Q?u58Hm7qjgsm4QPvdqfUIHzkZ6zhKKgjUP2Wp64M3U8eZhUuvknwsHHzNMkJV?=
 =?us-ascii?Q?LBAZRWqAUSGuEgv3dx9DS7HQ6EjuMXn+Sf5IZlpHVHyMySbSTkwIc0cE5Z/x?=
 =?us-ascii?Q?npvq4VN2Vg3OYLWhmVT9LwF3FQMMir9oNGWGJEhF9SGNFHBy3vQ6AJA+nCVq?=
 =?us-ascii?Q?vTU3KhRXXj+0mlmmI8WRQvZUzoGKF1uXjrsbnt0d/n4q5EDbMqdn17VfA297?=
 =?us-ascii?Q?bU3WB2u030ztkfO71vkCJDOVcD2BxES9ay07vdy5gYl2Kqcm30/DQ4CHc8zI?=
 =?us-ascii?Q?1AKmLYndvxRDdX7QnXtsBHVuxZsiBCRiS/ZljgYmWHhrfEY9p40Nbd2MPLAF?=
 =?us-ascii?Q?X/C+MV1nkAgqNoyKy4MIp3y2np5nZPsqF1GIzsMEWgtUwUheD3iEckjnIkxH?=
 =?us-ascii?Q?fgyaGFJwZN0PFpM5RM8FxygpzlXfnZyf/Xqx9w5TvKqbe2L3mDby9hQ05q0e?=
 =?us-ascii?Q?O1zY79nKebm6EViSdI7Jeg4Ck6ZHg7+i1Hvqrec++bHCju/CiMNux7j6ql9F?=
 =?us-ascii?Q?c/IDWHyoo6b9SMvIQnz+PD12Up3lEBe8+0Xg?=
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: 29 Apr 2025 12:37:55.4516
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 6bc510ad-5d17-4a9f-af65-08dd871aaa71
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:
	MN1PEPF0000ECD7.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PR12MB7776

From: "Daniel P. Smith" <dpsmith@apertussolutions.com>

Introduce the `cpus` property, named as such for dom0less compatibility, that
represents the maximum number of vcpus 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>
Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>
Signed-off-by: Alejandro Vallejo <agarciav@amd.com>
Reviewed-by: Denis Mukhin <dmukhin@ford.com>
---
 xen/arch/x86/dom0_build.c              |  3 +++
 xen/arch/x86/include/asm/boot-domain.h |  2 ++
 xen/common/domain-builder/fdt.c        | 11 +++++++++++
 3 files changed, 16 insertions(+)

diff --git a/xen/arch/x86/dom0_build.c b/xen/arch/x86/dom0_build.c
index 8db24dbc0a..f734104c74 100644
--- a/xen/arch/x86/dom0_build.c
+++ b/xen/arch/x86/dom0_build.c
@@ -635,6 +635,9 @@ int __init construct_dom0(const struct boot_domain *bd)
     if ( !get_memsize(&dom0_max_size, ULONG_MAX) && bd->max_pages )
         dom0_max_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/include/asm/boot-domain.h b/xen/arch/x86/include/asm/boot-domain.h
index fa8ea1cc66..969c02a6ea 100644
--- a/xen/arch/x86/include/asm/boot-domain.h
+++ b/xen/arch/x86/include/asm/boot-domain.h
@@ -22,6 +22,8 @@ struct boot_domain {
     unsigned long min_pages;
     unsigned long max_pages;
 
+    unsigned int max_vcpus;
+
     struct boot_module *kernel;
     struct boot_module *module;
     const char *cmdline;
diff --git a/xen/common/domain-builder/fdt.c b/xen/common/domain-builder/fdt.c
index d9babe9d56..02cfe8085d 100644
--- a/xen/common/domain-builder/fdt.c
+++ b/xen/common/domain-builder/fdt.c
@@ -302,6 +302,17 @@ static int __init fdt_process_domain_node(
             bd->max_pages = PFN_DOWN(kb * SZ_1K);
             printk(XENLOG_INFO "  max memory: %lu KiB\n", kb);
         }
+        else if ( !strncmp(prop_name, "cpus", name_len) )
+        {
+            uint32_t val = UINT32_MAX;
+            if ( (rc = fdt_prop_as_u32(prop, &val)) )
+            {
+                printk(XENLOG_ERR "  bad \"cpus\" prop on domain %s\n", name);
+                return rc;
+            }
+            bd->max_vcpus = val;
+            printk(XENLOG_INFO "  cpus: %d\n", bd->max_vcpus);
+        }
     }
 
     fdt_for_each_subnode(node, fdt, dom_node)
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 29 12:42:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 12:42:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.972446.1360801 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9kHs-0005eM-HE; Tue, 29 Apr 2025 12:42:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 972446.1360801; Tue, 29 Apr 2025 12:42: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 1u9kHs-0005eE-CZ; Tue, 29 Apr 2025 12:42:12 +0000
Received: by outflank-mailman (input) for mailman id 972446;
 Tue, 29 Apr 2025 12:42: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=PDgl=XP=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u9kDC-0007KK-KZ
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 12:37:22 +0000
Received: from NAM10-BN7-obe.outbound.protection.outlook.com
 (mail-bn7nam10on20625.outbound.protection.outlook.com
 [2a01:111:f403:2009::625])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b1b183d3-24f6-11f0-9eb4-5ba50f476ded;
 Tue, 29 Apr 2025 14:37:21 +0200 (CEST)
Received: from BL1PR13CA0349.namprd13.prod.outlook.com (2603:10b6:208:2c6::24)
 by LV8PR12MB9110.namprd12.prod.outlook.com (2603:10b6:408:18b::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.33; Tue, 29 Apr
 2025 12:37:17 +0000
Received: from MN1PEPF0000ECD8.namprd02.prod.outlook.com
 (2603:10b6:208:2c6:cafe::9) by BL1PR13CA0349.outlook.office365.com
 (2603:10b6:208:2c6::24) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8678.23 via Frontend Transport; Tue,
 29 Apr 2025 12:37:16 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 MN1PEPF0000ECD8.mail.protection.outlook.com (10.167.242.137) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8699.20 via Frontend Transport; Tue, 29 Apr 2025 12:37:16 +0000
Received: from xcbagarciav01.xilinx.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; Tue, 29 Apr
 2025 07:37:12 -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: b1b183d3-24f6-11f0-9eb4-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=gBGEbhvg/2H+IYmF5bWjNdNFl+MMNng4bogNLFCCuTa38DdbKDlw9gpHrAd87vtgZdsZBF8PhB4ivmyGSPYZpRxzOhE0AH66KnLCOmFaLg70j4yrs1c7cP1I+eKKoadm97J9fRk+f0ALZdi+HodH7VtaFWvjNOziLVnciFCqyNlChk7t9+LzoCGDJvJh5oz9Sa9FAW/8RhmECLrA23gC4Zf82T1xJ6r9y+Gz32/XkDHHLJ4l7Srpq+NSQC/Ttgv8Ca9Oa8xgqmrxSysNB6o3LE1Ta0VvAiHG46gVX3kGCCNNcZ85AL0EAGuDBy/Mlu8X1gUpzqotXjMJC2JspgHJhA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=EE4YsDHXTzpV3ycmzVUl1WwygqCvp1QDjKtcwqrOQCs=;
 b=V21je4UlVU/DRWLZmcRi5g/ydf9v6k+uGvysQBi0XE24ugnfeGUyBuPGxzmTFj3tf0jMbLWN0LyRUkqInun4R7TRpdmkkEvn7P4YojvjhlIFohKsCETA9X1jA60SXJCAgWCnuQ7+O04fV3fAsSXy/DuWr6d3eRrxsPq0N/jA0pFHLCnQPE430NKWfkWxUIfr4OTWBXGFU59MHevQ6KwHek3BGdMP8sLA39UeMEIUpXlqCaO4EoNWQ6oLg13gIHRGbP9t9kXrI7wfBxnFM70ossKg9vWn/Fzo/LpAHNVzyC+YkXHY/kOHe64gMbZnZE0ZB6OMjAiEjZkc2RNTTn+4pQ==
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=EE4YsDHXTzpV3ycmzVUl1WwygqCvp1QDjKtcwqrOQCs=;
 b=J62f2rptCbxkzGRlEN/UAEVIUbzoLC8qn30m7FTHzOK04gaQ+XhH2FP9GweLupQPBmozXQSzi2YvVtQ2+y0Wx8fDhV/HExVL1SWRbqjJlt0EvXIgFPdTJkojSpIHqQG2CIoAtlGg4eCRpUeRxL4UzDw5Sbz8pKgIA66OOQl7f2c=
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: Alejandro Vallejo <agarciav@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: "Daniel P. Smith" <dpsmith@apertussolutions.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, "Julien
 Grall" <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, "Jason
 Andryuk" <jason.andryuk@amd.com>, Alejandro Vallejo <agarciav@amd.com>,
	"Denis Mukhin" <dmukhin@ford.com>
Subject: [PATCH v6 05/12] x86/hyperlaunch: locate dom0 kernel with hyperlaunch
Date: Tue, 29 Apr 2025 13:36:16 +0100
Message-ID: <20250429123629.20839-6-agarciav@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20250429123629.20839-1-agarciav@amd.com>
References: <20250429123629.20839-1-agarciav@amd.com>
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: MN1PEPF0000ECD8:EE_|LV8PR12MB9110:EE_
X-MS-Office365-Filtering-Correlation-Id: 204d6e0c-e199-41ad-9312-08dd871a9377
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|82310400026|1800799024|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?ZiHQ2J0lqCvTECYYb5Td88Kz3nMSog65+dgdzATxy9Vjnu+e6gueaYCiBDqb?=
 =?us-ascii?Q?d++2kuSN/STI6hNUC9f0lMSH3+9iTAVelMEKwb1BC9X6u72XkquuV78RhP6G?=
 =?us-ascii?Q?qP++ne7UmjpKr/81FYAJJGXJvKL1RcT5gVVWIYmVQExWeqD702eSKAD+Q2jO?=
 =?us-ascii?Q?sKOVr/2jFVRDN+KU1QvUtyPHtuEE2SDcFXmAsdWDxVD1p3BE7NsXb5IjqSWs?=
 =?us-ascii?Q?V9BegJz5hpsRrgt247GZm74SqRv4fRUWXqg6snHd0Bwbxs0knRU9cvrheci1?=
 =?us-ascii?Q?5pu83aCWfU1OvyPBX2HGsE23dyMYa9l7g8zXJB6vESgaX2v42JhmGJto/BL0?=
 =?us-ascii?Q?FqlMre34M4mlguBc6JjAyi81fCghpohiPn8PRl1GnxQ7ElRcyDrcE6UJNClI?=
 =?us-ascii?Q?39Rt9qBLB91HOopEaOFw9/hM1Ht1BsrwX1QgAgxFL7PRjhOw9jqW5YG5PayJ?=
 =?us-ascii?Q?ARwK3aTJX+sju1U+/RGH3pKratWJD4zZs8RdJKPfyeimn/mxL2XIP1jx88zv?=
 =?us-ascii?Q?RHLik/M+ORPE39GkuRp4V7jiTiQEy2ETjHkE0zmn/WdIRC5FuCOG4Y9i+BsL?=
 =?us-ascii?Q?5ULDlEv+XJDKGQV34bHJ1RigK9ecwfPC5aJ5rSDJGoQsMQs5CyccXHFWIMbx?=
 =?us-ascii?Q?Tt7X6WyrICXWlgwL8jm/0uNJ7677jHjSq2uamass4OFf61MBfw1ASyfpMWyA?=
 =?us-ascii?Q?DquLNSk2MZuseGu6mAQ3zGLAsML+gz1HQj8xLRg7xxgI1VtQQm6Q2MTH1UMD?=
 =?us-ascii?Q?Il2LiZ56tTDI7b1hUsIOGPXeN3lPVv8luGEHmsxe4elQIXSM8jmF7rC9EHY0?=
 =?us-ascii?Q?fZZNnNkXQg2rdky54yZpz4LqhO1Zw3L8rTOyTLfLu3kCWxMjnQ16EQ4KNAvJ?=
 =?us-ascii?Q?T4GanJiU2P0cL9N4maFmS4WNNImkORUzNLkQErk6dkS62SdTlV3TK2XdiGgp?=
 =?us-ascii?Q?vZBk0ZluPBPatXzBH5IW8T8VhQH8FfUL1PrsJzyC+Uk3TSzsaq9msGNbEYad?=
 =?us-ascii?Q?uhqir3TGKS07b7KRSuliZKRNz/he/kd4UFo/NMxbc1UwrG6/NLqEQtCh1HjX?=
 =?us-ascii?Q?44IQzGnoYD7effxwXer/eedegr+xI7/NuuFS2uz503uUJDpdmNbF/0eLZA8R?=
 =?us-ascii?Q?CCC1s67LnWetBKCrxG1P7u2WBj45X+7z1lBWdCOiVZer8y3AHpzmfm0yOd4A?=
 =?us-ascii?Q?uPfr4hf6mZAEcNL9pYIHPUeAoJnhBIlqJUGYRQLQ08iQGWpiVIm/mV+CDUYh?=
 =?us-ascii?Q?K8kG2ETezxLyuSV9CZG74Cf4XSXId0Nm1pghIl+N5wtP6iEG4t0Ln1+HMUYT?=
 =?us-ascii?Q?aPUoa3XQx5jwhIgFEePMtokoNQKMA4pUoJuKmY0RLqC+cUXFagisZsprfaaZ?=
 =?us-ascii?Q?qoBIiuviukVNdc2WPGl1aqvO+tfTmuBdkWMnmYXL26kG9rp0XZ54/mS6D/0m?=
 =?us-ascii?Q?PJ0ShGqRMUNef7iBZIbs2zqLizecby9+pxbP1mTX3nT4K1Rgo87eszY5NHXU?=
 =?us-ascii?Q?4y8uCu+Aw0bx1wkXQmuJTI062MC1UgVTSNyd?=
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: 29 Apr 2025 12:37:16.9029
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 204d6e0c-e199-41ad-9312-08dd871a9377
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:
	MN1PEPF0000ECD8.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR12MB9110

From: "Daniel P. Smith" <dpsmith@apertussolutions.com>

Look for a subnode of type `multiboot,kernel` within a domain node. If
found, locate it using the multiboot module helper to generically ensure
it lives in the module list. 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>
Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
Signed-off-by: Alejandro Vallejo <agarciav@amd.com>
Reviewed-by: Denis Mukhin <dmukhin@ford.com>
---
 xen/arch/x86/setup.c            |  1 +
 xen/common/domain-builder/fdt.c | 64 +++++++++++++++++++++++++++++++--
 2 files changed, 62 insertions(+), 3 deletions(-)

diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index f3b5c83a3c..f8193f2c1c 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -1291,6 +1291,7 @@ void asmlinkage __init noreturn __start_xen(void)
         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;
         bi->hyperlaunch_enabled = false;
     }
 
diff --git a/xen/common/domain-builder/fdt.c b/xen/common/domain-builder/fdt.c
index 05ac3647cf..cbb0ed30a2 100644
--- a/xen/common/domain-builder/fdt.c
+++ b/xen/common/domain-builder/fdt.c
@@ -99,9 +99,9 @@ static int __init fdt_prop_as_reg(const struct fdt_property *prop,
  * @return              -EINVAL on malformed nodes, otherwise
  *                      index inside `bi->mods`
  */
-int __init fdt_read_multiboot_module(const void *fdt, int node,
-                                     int address_cells, int size_cells,
-                                     struct boot_info *bi)
+static int __init fdt_read_multiboot_module(const void *fdt, int node,
+                                            int address_cells, int size_cells,
+                                            struct boot_info *bi)
 {
     const struct fdt_property *prop;
     uint64_t addr, size;
@@ -185,6 +185,52 @@ int __init fdt_read_multiboot_module(const void *fdt, int node,
     return idx;
 }
 
+static int __init fdt_process_domain_node(
+    struct boot_info *bi, const 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) ?: "unknown";
+    int address_cells = fdt_address_cells(fdt, dom_node);
+    int size_cells = fdt_size_cells(fdt, dom_node);
+
+    fdt_for_each_subnode(node, fdt, dom_node)
+    {
+        if ( !fdt_node_check_compatible(fdt, node, "multiboot,kernel") )
+        {
+            int idx;
+
+            if ( bd->kernel )
+            {
+                printk(XENLOG_WARNING
+                       "  duplicate kernel for domain %s\n", name);
+                continue;
+            }
+
+            idx = fdt_read_multiboot_module(fdt, node, address_cells,
+                                            size_cells, bi);
+            if ( idx < 0 )
+            {
+                printk(XENLOG_ERR
+                       "  failed processing kernel for domain %s\n", name);
+                return idx;
+            }
+
+            printk(XENLOG_INFO "  kernel: multiboot-index=%d\n", idx);
+            bi->mods[idx].type = BOOTMOD_KERNEL;
+            bd->kernel = &bi->mods[idx];
+        }
+    }
+
+    if ( !bd->kernel )
+    {
+        printk(XENLOG_ERR "error: no kernel assigned to domain %s\n", name);
+        return -ENODATA;
+    }
+
+    return 0;
+}
+
 static int __init find_hyperlaunch_node(const void *fdt)
 {
     int hv_node = fdt_path_offset(fdt, "/chosen/hypervisor");
@@ -248,8 +294,20 @@ int __init fdt_walk_hyperlaunch(struct boot_info *bi)
 
     fdt_for_each_subnode(node, fdt, hv_node)
     {
+        if ( bi->nr_domains >= MAX_NR_BOOTDOMS )
+        {
+            printk(XENLOG_WARNING "warning: only creating first %u domains\n",
+                   MAX_NR_BOOTDOMS);
+            break;
+        }
+
         if ( !fdt_node_check_compatible(fdt, node, "xen,domain") )
+        {
+            if ( (ret = fdt_process_domain_node(bi, fdt, node)) < 0 )
+                break;
+
             bi->nr_domains++;
+        }
     }
 
     /* Until multi-domain construction is added, throw an error */
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 29 12:42:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 12:42:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.972448.1360806 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9kHs-0005gc-Qc; Tue, 29 Apr 2025 12:42:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 972448.1360806; Tue, 29 Apr 2025 12:42: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 1u9kHs-0005fw-Kl; Tue, 29 Apr 2025 12:42:12 +0000
Received: by outflank-mailman (input) for mailman id 972448;
 Tue, 29 Apr 2025 12:42: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=PDgl=XP=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u9kDe-0007KK-Lg
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 12:37:50 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on20602.outbound.protection.outlook.com
 [2a01:111:f403:2414::602])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c1fdbeb4-24f6-11f0-9eb4-5ba50f476ded;
 Tue, 29 Apr 2025 14:37:50 +0200 (CEST)
Received: from BN9PR03CA0353.namprd03.prod.outlook.com (2603:10b6:408:f6::28)
 by LV3PR12MB9410.namprd12.prod.outlook.com (2603:10b6:408:212::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.33; Tue, 29 Apr
 2025 12:37:39 +0000
Received: from MN1PEPF0000ECD6.namprd02.prod.outlook.com
 (2603:10b6:408:f6:cafe::8b) by BN9PR03CA0353.outlook.office365.com
 (2603:10b6:408:f6::28) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.36 via Frontend Transport; Tue,
 29 Apr 2025 12:37:39 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 MN1PEPF0000ECD6.mail.protection.outlook.com (10.167.242.135) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8699.20 via Frontend Transport; Tue, 29 Apr 2025 12:37:38 +0000
Received: from xcbagarciav01.xilinx.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; Tue, 29 Apr
 2025 07:37:33 -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: c1fdbeb4-24f6-11f0-9eb4-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=AANoegKma5VKluTCMCNgIW07SLA3uV6GgMAXQWPqEm0plsXiuhacSJIaRFlKBHCCPbMHckP0Qs9a1muIdqhltofOC3BtA9kUJYYGnEool2Q5fZvD9TqvWT4guplU1NTUaLCyDL7NqoqAaB3rkKT9D/pUu3jdcUsWlGla6lvSrd5kaAoLL9eRdvUQv17DFpjjrj/FTD3m8+N6hWTOAmk3Nbd4G36HO3etySgoqiIzM/NO2hbiM4+3n6N83qgXb17sEsuaGStj0LmtKukiVOVEIberhXoN3hBYXm9jn0xp0bry4uGxkorYU555/pQgU39842441+eK4XXkfin6GPTuPA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=tCIp0SvGgKMTJckyMieSwQqF1Ax5pTMnvlnYTe9ZbcM=;
 b=lCPtiVw1qFiHmn+2Q54B/wr6php7K2jdbxwlV2L0dsMiwwev2g3ou1BR/ZG4PadamZWvS+tODsTCR1sOHY1+ZL7SBbzisPrG2DXH1NoIPUHOTrlX+bRMtQNT4vES4Kew6HASdg+XZzzJx3QDK2sP7CnHtZy7dnmAk2IOMXH/UQxaA2S41t/giqN+v/ujpcH9RdqlIlfIcQiEdS+wq3j0SYPiI5ixBuXy6UDYvTVLH3M3pJ1kjDY1+YJWnOkOawrLRVpKrFaC64L3XwecVGJ1uZgaonPlyasjqbPi9s5fYqDQboPmWkgGHzgEzjCbTZMsQjWccZwy3a8IzOThIz+4PQ==
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=tCIp0SvGgKMTJckyMieSwQqF1Ax5pTMnvlnYTe9ZbcM=;
 b=5F+OS8w4G1Q40tT+TFpPTfKV7UiA2eLHbNLJk0vdyV6yeXOCCAO0q5pFFdtt/aSIIJVuGycb/8EUIYq/C5R1Qyk0p1qlT0S6qAa03UBSnQtd5stYcW80Z/5W0bagSqYMeZmHq/agT7mGhUU0vhuVLt2crmdPcetWv2jRt/iCPrY=
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: Alejandro Vallejo <agarciav@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: "Daniel P. Smith" <dpsmith@apertussolutions.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, "Julien
 Grall" <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
	Alejandro Vallejo <agarciav@amd.com>, Denis Mukhin <dmukhin@ford.com>, "Jason
 Andryuk" <jason.andryuk@amd.com>
Subject: [PATCH v6 08/12] x86/hyperlaunch: add domain id parsing to domain config
Date: Tue, 29 Apr 2025 13:36:19 +0100
Message-ID: <20250429123629.20839-9-agarciav@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20250429123629.20839-1-agarciav@amd.com>
References: <20250429123629.20839-1-agarciav@amd.com>
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: MN1PEPF0000ECD6:EE_|LV3PR12MB9410:EE_
X-MS-Office365-Filtering-Correlation-Id: df1abd05-6c69-4c5c-1764-08dd871aa09c
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?t3R6lYRxqbajRvIeY+OZdEze7LqvI+4PlWYeU2B/NLlQkO/hQ/GeKl7nLjKY?=
 =?us-ascii?Q?2AXmExKAFXsHq/el3VEG23ZV3bKOJQDQvmi3udX+WG3v3S4zJSi7BQMg3R9Z?=
 =?us-ascii?Q?CxOI1GbvOfVa+9Qr3pxd+R6pPfw/5ORL895w+gc2ohj9e139pC1rYQ6jjgQw?=
 =?us-ascii?Q?ESPw1NIzMihkHH0DJcIOJFhCSQeKSxT0W290+YrzI2zYNqAVet2DPcVuIV6u?=
 =?us-ascii?Q?IbOUO6hHg86XipKx9LFoPs6JDYulwVIXxAQqgeWveCOHeYzPnCPoN80R3D+T?=
 =?us-ascii?Q?oHs5XLY8OdISyxpp5rwqwE5hp1hB61c5vV41t5Ttjgf9ZEU0aO/ju7xt6zmw?=
 =?us-ascii?Q?1O6sL1rGM0bTXuZaYxPCIM2svjplQ69QMpgQzV6WdRRv0DkyMYlzoPzQa7AG?=
 =?us-ascii?Q?OsoJdZ4p7rQpnyXxnqv+XZh6jHPpKFNhEHd7G+sNfOuDNFcampaZLraHUoIm?=
 =?us-ascii?Q?anQcWxWS7wwE6wTkD+OXdhe1+kqK16nUI90kQ/7DN6k8yBbs49YAA+aUtSiz?=
 =?us-ascii?Q?2Xy3gtQurP/z9BCk/iR65gQRpqk+WAvAupvrV9MEsH+/eXYazMLiNVWMh2kz?=
 =?us-ascii?Q?lfnyGzeukIolJFyDUhevKLXl9fDoAF6DR5o1gGtTMDipl5q/bq7HqmK7wEpi?=
 =?us-ascii?Q?8bzC5TkkoyA6KV+qzCjDDQVG2wOlaf72jKRQdVHRJ3QivXOxtEKjmtxsjIpb?=
 =?us-ascii?Q?vq5W6dz9hCsFe6C/qCT82V1lY7R96lKyDvTAkLpHpyXzkBZAzGxvA1mqd+pB?=
 =?us-ascii?Q?5Bb/AYQHFm7SOFctONm5KWDeaQ1wb4QA1k1W1bAozcpwgURb75uZ6Awq4hnT?=
 =?us-ascii?Q?mTzUxe8HtTDiqFgl4BtwYlHKysgKBVZQ1iKjGAAhOIdKYVj8fZ1RLgJiUvQr?=
 =?us-ascii?Q?xhfA/91J6j0qL9usUZOStFlFgcvWtGNX2f3rA9lGkmPLM95xwzDo0nZhaiM7?=
 =?us-ascii?Q?tIe6jCaCXtfwSyeulbh9CgMCS9KgbpxoSxTkfSuXFIjHhu+xPqaAUkghzIKA?=
 =?us-ascii?Q?IcJDylPOjuQhJ/fQGcb4wPvhGv9DNsPHQ2P8bnoLUsf96UTUBIPrbuhW1kzd?=
 =?us-ascii?Q?+HiBvR2OIxJ/h8mqbw/4diIwmhfKHIfdLgPXxNgTYclexLmeEoCk6YR5VQeV?=
 =?us-ascii?Q?/xOPUm5a/JwJe1GmKY9yRWqxbSmFZ5OkUwPlFJcI8FbubRPJhKgWNZG8Qsti?=
 =?us-ascii?Q?3RaMao3pw1auzuin+U/Dr7ALifkxxDHUGakNcznbQWjjZ7ei5ScBiuzErRwx?=
 =?us-ascii?Q?INfAOSaId2VatLa+OvhwpVtFbwStC67FBXWNfQJJJUecQAX/VG7cTf02aevl?=
 =?us-ascii?Q?A2bXi0+phyYbI4DoW9TZFqJO8KcYxuM85q7/+3RPTk+V2YPKq3qJocBI8h4D?=
 =?us-ascii?Q?vsT97q4FyUNj3WjIFzZpKwzXF7mDF47jL1QC45xde+soAOl0LDWpBjSRxL98?=
 =?us-ascii?Q?36VvhSIuMKjU+c9YaT//8qaNu/llcZLz1xQ7H0grgH5vyYK5f3RK/ex/iMU/?=
 =?us-ascii?Q?2k3my97ohGdrFFhBEPlotsL/sOfj5HuGcoH9?=
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: 29 Apr 2025 12:37:38.9521
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: df1abd05-6c69-4c5c-1764-08dd871aa09c
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:
	MN1PEPF0000ECD6.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV3PR12MB9410

From: "Daniel P. Smith" <dpsmith@apertussolutions.com>

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>
Signed-off-by: Alejandro Vallejo <agarciav@amd.com>
Reviewed-by: Denis Mukhin <dmukhin@ford.com>
Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>
---
 xen/arch/x86/setup.c            |  5 ++--
 xen/common/domain-builder/fdt.c | 52 ++++++++++++++++++++++++++++++++-
 2 files changed, 54 insertions(+), 3 deletions(-)

diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index c8de028439..10ff67ac37 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -1043,8 +1043,9 @@ static struct domain *__init create_dom0(struct boot_info *bi)
     if ( iommu_enabled )
         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 )
+        /* Create initial domain.  Not d0 for pvshim. */
+        bd->domid = get_initial_domain_id();
     d = domain_create(bd->domid, &dom0_cfg,
                       pv_shim ? 0 : CDF_privileged | CDF_hardware);
     if ( IS_ERR(d) )
diff --git a/xen/common/domain-builder/fdt.c b/xen/common/domain-builder/fdt.c
index 507f383f8e..2c05b0a22d 100644
--- a/xen/common/domain-builder/fdt.c
+++ b/xen/common/domain-builder/fdt.c
@@ -2,6 +2,7 @@
 /*
  * Copyright (C) 2024, Apertus Solutions, LLC
  */
+#include <xen/domain.h>
 #include <xen/err.h>
 #include <xen/init.h>
 #include <xen/lib.h>
@@ -188,12 +189,54 @@ static int __init fdt_read_multiboot_module(const void *fdt, int node,
 static int __init fdt_process_domain_node(
     struct boot_info *bi, const 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) ?: "unknown";
     int address_cells = fdt_address_cells(fdt, dom_node);
     int size_cells = fdt_size_cells(fdt, dom_node);
 
+    fdt_for_each_property_offset(property, fdt, dom_node)
+    {
+        const struct fdt_property *prop;
+        const char *prop_name;
+        int name_len, rc;
+
+        prop = fdt_get_property_by_offset(fdt, property, NULL);
+        if ( !prop )
+            continue; /* silently skip */
+
+        prop_name = fdt_get_string(fdt, fdt32_to_cpu(prop->nameoff), &name_len);
+        if ( !strncmp(prop_name, "domid", name_len) )
+        {
+            uint32_t val = DOMID_INVALID;
+
+            if ( (rc = fdt_prop_as_u32(prop, &val)) )
+            {
+                printk(XENLOG_ERR
+                       "  failed processing domain id for domain %s\n", name);
+                return rc;
+            }
+
+            if ( val >= DOMID_FIRST_RESERVED )
+            {
+                printk(XENLOG_ERR "  invalid domain id for domain %s\n", name);
+                return -EINVAL;
+            }
+
+            for ( unsigned int i = 0; i < bi->nr_domains; i++ )
+            {
+                if ( bi->domains[i].domid == val )
+                {
+                    printk(XENLOG_ERR "  duplicate id for domain %s\n", name);
+                    return -EINVAL;
+                }
+            }
+
+            bd->domid = val;
+            printk(XENLOG_INFO "  domid: %d\n", bd->domid);
+        }
+    }
+
     fdt_for_each_subnode(node, fdt, dom_node)
     {
         if ( !fdt_node_check_compatible(fdt, node, "multiboot,kernel") )
@@ -258,6 +301,13 @@ static int __init fdt_process_domain_node(
         return -ENODATA;
     }
 
+    if ( bd->domid == DOMID_INVALID )
+        bd->domid = get_initial_domain_id();
+    else if ( bd->domid != get_initial_domain_id() )
+        printk(XENLOG_WARNING
+               "warning: d%u is not the expected initial domain (d%u)\n",
+               bd->domid, get_initial_domain_id());
+
     return 0;
 }
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 29 12:42:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 12:42:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.972449.1360811 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9kHt-0005lf-5U; Tue, 29 Apr 2025 12:42:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 972449.1360811; Tue, 29 Apr 2025 12:42: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 1u9kHs-0005js-Ty; Tue, 29 Apr 2025 12:42:12 +0000
Received: by outflank-mailman (input) for mailman id 972449;
 Tue, 29 Apr 2025 12:42: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=PDgl=XP=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u9kDO-0007L9-OV
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 12:37:34 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on20623.outbound.protection.outlook.com
 [2a01:111:f403:2418::623])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b82aef14-24f6-11f0-9ffb-bf95429c2676;
 Tue, 29 Apr 2025 14:37:32 +0200 (CEST)
Received: from BN9PR03CA0720.namprd03.prod.outlook.com (2603:10b6:408:ef::35)
 by PH7PR12MB6666.namprd12.prod.outlook.com (2603:10b6:510:1a8::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8699.19; Tue, 29 Apr
 2025 12:37:29 +0000
Received: from MN1PEPF0000ECD7.namprd02.prod.outlook.com
 (2603:10b6:408:ef:cafe::b4) by BN9PR03CA0720.outlook.office365.com
 (2603:10b6:408:ef::35) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.37 via Frontend Transport; Tue,
 29 Apr 2025 12:37:29 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 MN1PEPF0000ECD7.mail.protection.outlook.com (10.167.242.136) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8699.20 via Frontend Transport; Tue, 29 Apr 2025 12:37:29 +0000
Received: from xcbagarciav01.xilinx.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; Tue, 29 Apr
 2025 07:37:16 -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: b82aef14-24f6-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=azYy27eo3ea0QS4BdXr0jKlFQ+WTKlyHJLSgCVbzBq/dO42plEpy6EAo4T150aSLByMNfwslYCfPvRtjDhCMBMplIr/npzfoDXAJtpGSjIKP56uGhLmJlxzTTqVCfbAmhSya2WksUKprdQ7QV3RUnNrD2ghAh/D2vSROGnZUc+23p2eG3Vkz35Dkkb+rAR5b2iVg3yb2+DDvJHUhIbif2vzHNvIs5QgsInfooax8hkZhBgXihI6gxcWuQCUJBGvKTgKDOfApU6lYHEJJXrV58uum/Rqrncx58lQMNyx3Ev5lo9qqlJESP9P8sf4+PJ7ghojmg/J/YzMON95FkL5ifQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=2pwwrn+w0PJVnEiP+Trq+bIH21nPCkOjD9aybGcH0RE=;
 b=Tx1gWkVZobOaobM0AnZe/OjJvfbQd0HWoMu2sTs3ZhmgsZRfwCkDuTmTmYBH/gysO+Yy/oyZJ16IsJfd9LJjRLjCLySi15qv8bhiYYKU2NtRIVcYnWhf6oODaAHjIgIu6ZzCBqHERSP2mEVGNxcvipp02dGyKiQ7ZlangZZxklspe5I24yoRt8FP0b15C7maM+S+71WaRE8Dd/hVGVpiPPJsQMzFOPp1bAlnqzC4Eev0Wcg9m7y8CB7XOZTFoo5QEZAyBUqksjuDml7OC5AxqbbdG4OSFfTIFzMAyv2M7DzrEjfVYBsoIoO+sz7nU6CqkbUFxmbrTIs7XMGNTFxQvA==
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=2pwwrn+w0PJVnEiP+Trq+bIH21nPCkOjD9aybGcH0RE=;
 b=ISiMhyphyTmGwqHrBIfH6x3aPYuU0GwulrQOYtIJtamTrSUsFMrSbckmMbYkQQxcoK0u5El8pzLvzU/8ss8HRyUvKL+DHEoKrrFXnlqhiZrYyZ74mSY7V7G7AI+Zx3BnWVVgskOuW5Ggvr1MiaUfy+YUCsr85CFppKO/qTAk0wY=
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: Alejandro Vallejo <agarciav@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: "Daniel P. Smith" <dpsmith@apertussolutions.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, "Julien
 Grall" <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
	"Bertrand Marquis" <bertrand.marquis@arm.com>, Jason Andryuk
	<jason.andryuk@amd.com>, Alejandro Vallejo <agarciav@amd.com>, Denis Mukhin
	<dmukhin@ford.com>
Subject: [PATCH v6 06/12] x86/hyperlaunch: obtain cmdline from device tree
Date: Tue, 29 Apr 2025 13:36:17 +0100
Message-ID: <20250429123629.20839-7-agarciav@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20250429123629.20839-1-agarciav@amd.com>
References: <20250429123629.20839-1-agarciav@amd.com>
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: MN1PEPF0000ECD7:EE_|PH7PR12MB6666:EE_
X-MS-Office365-Filtering-Correlation-Id: f7375450-34f9-4b47-c3a9-08dd871a9b02
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|7416014|376014|36860700013|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?K1RsAPPAzAuRe7FRVFSsnO5dbQ06TYATC5wSfo4ovhtEp3w6HwYO2Obi1SOE?=
 =?us-ascii?Q?RgxAcmRMAaEQPGz9AEIOQqVVEDeHjFrC911Zna5sy7AWKgRhTVoLXS2BtyYq?=
 =?us-ascii?Q?JGxbeP91V7mHJ5wAIfabh0bjGIAPydl+3yhEO0uXx70X40oLoT+WRMHg0tlh?=
 =?us-ascii?Q?jzmg8zBtjbV667nAQX+i8oChBiUw4yi1UMVd95bvP3v2eMwkaRa4UVJLdZjp?=
 =?us-ascii?Q?G30++ZVG8jw7kpMXsL7evJbjiKSFVIw9SzJcHm0BXAH/o3raJlfWidfEwoXO?=
 =?us-ascii?Q?p/JXLp68ERzvb3I25VD6o3G5RQgi+Bti9XHuiigdcemEz12QWDr2nGUhMmYQ?=
 =?us-ascii?Q?HDhsqhYST1UjdIL6NJZWNRoneuoS6yySApnjx508ZYtkBUszTT/lclkt8x+G?=
 =?us-ascii?Q?oot5cRtnICXomOzWjl9ifWtbGFHIrOpBe5HKDw2/0KBHHBVnvsOXjd0ptHUc?=
 =?us-ascii?Q?5R2AJYT5a+ZHEV2i6YAZh8+QbJ9fumqaffvehc84tsymYzYDx1BV/Wr6W8zK?=
 =?us-ascii?Q?symw7mV+sdYwZJqu7soD1JF/MnYDzktqC5Fi1oom5+0+mhFP8zeaOcxT3N5i?=
 =?us-ascii?Q?mkeGRUp6p5VveV5NGRZnFDW+iGcC8FDP5WgPXvZ82Er8jkqbikdM50eWkzZv?=
 =?us-ascii?Q?Rcgvp6O4exQ/tzqy3qJtHrFdH08BQBytigfeCo89+ZpM8ETey87vGG1TLdn9?=
 =?us-ascii?Q?UdXFfrVGURPgzJpzu0NzTwfx2esWT9m9bCi9rmtrjFxiRGLy1Nh8GpoxTBeR?=
 =?us-ascii?Q?2nqmH/Z2pR/gTxGkGxTBthEV5mDBRwkVS6qRvWd3SZlw245yw7AM9WQRNSiz?=
 =?us-ascii?Q?g4c0glFBfgJrloJcyX1AVg6U0GcfSsqHl812kcMUcVC7OqI+lFtJPE342jJw?=
 =?us-ascii?Q?5jxtq5LaRhD8180FOzWS9NXiVEo/LbNOTYPAKf1TboG/5PSUNlk0ziKT+3O1?=
 =?us-ascii?Q?LoLJKitxmORyBkkeRm1NTewp1clXxb22xTsKX9Jhlx2xI1UKrTteYRFHTgQX?=
 =?us-ascii?Q?NGxequix+8iWvfZvKG27Cvr1+wRUJWAzmPsG/lUUn8oexsXmorr2BYB5jD9n?=
 =?us-ascii?Q?PO8mkRbZhXfm/puV92p6nadRfZwKcxoVSha6cGynx9edZByfI5kaAre7w988?=
 =?us-ascii?Q?Os5M7SLIuECegqtUzHMCB87GHTtGR8sRJssXhLwDnKpTLkyIbUiqDm+rGyW1?=
 =?us-ascii?Q?A9eWmhSBDK/VbfZTe6uPZiHe8A0vG+fjNuQP09OWKsOUan5avqSgD/Z3EbTA?=
 =?us-ascii?Q?73+es4XLpEuF97Ux+Y/0F0W9705vqDqd2qzd/BkR9/FyGqy1MogpMDo6zhJL?=
 =?us-ascii?Q?VYelndI2/MuZP+RAYMysThb+wXpNZxSeffpuz1caj9TThKAYF/TgAxJCjr08?=
 =?us-ascii?Q?Np3crcU6/kdT/ckbo8G8kq/kl6sgc1GtsrGuODlVohzyBv0cXOPjrGlwhHjG?=
 =?us-ascii?Q?Z0h6rd3ncPhYX/34EsuQp9rsGnc6DKMeOWk5RnMMBivZ8q9jfbVtUDkAtxJe?=
 =?us-ascii?Q?sAPQa/lYHtpNPoAfaWEgnFv9U1FIUT4nuqkP?=
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)(7416014)(376014)(36860700013)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Apr 2025 12:37:29.5582
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: f7375450-34f9-4b47-c3a9-08dd871a9b02
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:
	MN1PEPF0000ECD7.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB6666

From: "Daniel P. Smith" <dpsmith@apertussolutions.com>

Add support to read the command line from the hyperlaunch device tree.
The device tree command line is located in the "bootargs" property of the
"multiboot,kernel" node.

A boot loader command line, e.g. a grub module string field, takes
precendence over the device tree one since it is easier to modify.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
Signed-off-by: Alejandro Vallejo <agarciav@amd.com>
Reviewed-by: Denis Mukhin <dmukhin@ford.com>
---
 xen/arch/x86/include/asm/bootinfo.h |  6 ++++--
 xen/arch/x86/setup.c                | 22 ++++++++++++++++++++--
 xen/common/domain-builder/core.c    | 26 ++++++++++++++++++++++++++
 xen/common/domain-builder/fdt.c     |  6 ++++++
 xen/common/domain-builder/fdt.h     | 24 ++++++++++++++++++++++++
 xen/include/xen/domain-builder.h    |  8 +++++---
 xen/include/xen/libfdt/libfdt-xen.h | 23 +++++++++++++++++++++++
 7 files changed, 108 insertions(+), 7 deletions(-)

diff --git a/xen/arch/x86/include/asm/bootinfo.h b/xen/arch/x86/include/asm/bootinfo.h
index 1e3d582e45..5b2c93b1ef 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/setup.c b/xen/arch/x86/setup.c
index f8193f2c1c..765b690c41 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -985,7 +985,19 @@ static size_t __init domain_cmdline_size(const struct boot_info *bi,
 {
     size_t s = bi->kextra ? strlen(bi->kextra) : 0;
 
-    s += bd->kernel->cmdline_pa ? strlen(__va(bd->kernel->cmdline_pa)) : 0;
+
+    /*
+     * Bootloader cmdline takes precedence and replaces the DT provided one.
+     *
+     * In that case, fdt_cmdline is not be populated at all.
+     */
+    if ( bd->kernel->fdt_cmdline )
+    {
+        BUG_ON(!IS_ENABLED(CONFIG_DOMAIN_BUILDER));
+        s += builder_get_cmdline_size(bi, bd->kernel->cmdline_pa);
+    }
+    else if ( bd->kernel->cmdline_pa )
+        s += strlen(__va(bd->kernel->cmdline_pa));
 
     if ( s == 0 )
         return s;
@@ -1049,7 +1061,13 @@ 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 )
+        {
+            BUG_ON(!IS_ENABLED(CONFIG_DOMAIN_BUILDER));
+            builder_get_cmdline(
+                bi, bd->kernel->cmdline_pa, cmdline, cmdline_size);
+        }
+        else if ( bd->kernel->cmdline_pa )
             strlcpy(cmdline,
                     cmdline_cook(__va(bd->kernel->cmdline_pa), bi->loader),
                     cmdline_size);
diff --git a/xen/common/domain-builder/core.c b/xen/common/domain-builder/core.c
index c6917532be..b2f49bb17b 100644
--- a/xen/common/domain-builder/core.c
+++ b/xen/common/domain-builder/core.c
@@ -10,9 +10,35 @@
 #include <xen/lib.h>
 
 #include <asm/bootinfo.h>
+#include <asm/setup.h>
 
 #include "fdt.h"
 
+size_t __init builder_get_cmdline_size(const struct boot_info *bi, int offset)
+{
+    const void *fdt;
+    int size;
+
+    fdt = bootstrap_map_bm(&bi->mods[HYPERLAUNCH_MODULE_IDX]);
+    size = fdt_cmdline_prop_size(fdt, offset);
+    bootstrap_unmap();
+
+    return max(0, size);
+}
+
+int __init builder_get_cmdline(const struct boot_info *bi,
+                               int offset, char *cmdline, size_t size)
+{
+    const void *fdt;
+    int ret;
+
+    fdt = bootstrap_map_bm(&bi->mods[HYPERLAUNCH_MODULE_IDX]);
+    ret = fdt_cmdline_prop_copy(fdt, offset, cmdline, size);
+    bootstrap_unmap();
+
+    return ret;
+}
+
 enum fdt_kind __init builder_init(struct boot_info *bi)
 {
     enum fdt_kind kind;
diff --git a/xen/common/domain-builder/fdt.c b/xen/common/domain-builder/fdt.c
index cbb0ed30a2..dabe201b04 100644
--- a/xen/common/domain-builder/fdt.c
+++ b/xen/common/domain-builder/fdt.c
@@ -219,6 +219,12 @@ static int __init fdt_process_domain_node(
             printk(XENLOG_INFO "  kernel: multiboot-index=%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] )
+                bd->kernel->fdt_cmdline = fdt_get_prop_offset(
+                    fdt, node, "bootargs", &bd->kernel->cmdline_pa);
         }
     }
 
diff --git a/xen/common/domain-builder/fdt.h b/xen/common/domain-builder/fdt.h
index 5570fb7a9c..68cbc42674 100644
--- a/xen/common/domain-builder/fdt.h
+++ b/xen/common/domain-builder/fdt.h
@@ -10,6 +10,30 @@ struct boot_info;
 /* hyperlaunch fdt is required to be module 0 */
 #define HYPERLAUNCH_MODULE_IDX 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);
+}
+
 enum fdt_kind fdt_detect_kind(const struct boot_info *bi);
 int fdt_walk_hyperlaunch(struct boot_info *bi);
 
diff --git a/xen/include/xen/domain-builder.h b/xen/include/xen/domain-builder.h
index 3ac3a0ab84..350e2eb2af 100644
--- a/xen/include/xen/domain-builder.h
+++ b/xen/include/xen/domain-builder.h
@@ -2,6 +2,8 @@
 #ifndef __XEN_DOMAIN_BUILDER_H__
 #define __XEN_DOMAIN_BUILDER_H__
 
+#include <xen/types.h>
+
 struct boot_info;
 
 /* Return status of builder_init(). Shows which boot mechanism was detected */
@@ -28,8 +30,8 @@ static inline enum fdt_kind builder_init(struct boot_info *bi)
 }
 #endif /* !IS_ENABLED(CONFIG_DOMAIN_BUILDER) */
 
-int fdt_read_multiboot_module(const void *fdt, int node,
-                              int address_cells, int size_cells,
-                              struct boot_info *bi)
+size_t builder_get_cmdline_size(const struct boot_info *bi, int offset);
+int builder_get_cmdline(const struct boot_info *bi, int offset,
+                        char *cmdline, size_t size);
 
 #endif /* __XEN_DOMAIN_BUILDER_H__ */
diff --git a/xen/include/xen/libfdt/libfdt-xen.h b/xen/include/xen/libfdt/libfdt-xen.h
index a5340bc9f4..9c20a26a35 100644
--- a/xen/include/xen/libfdt/libfdt-xen.h
+++ b/xen/include/xen/libfdt/libfdt-xen.h
@@ -13,6 +13,29 @@
 
 #include <xen/libfdt/libfdt.h>
 
+static inline bool __init fdt_get_prop_offset(
+    const void *fdt, int node, const char *pname, unsigned long *poffset)
+{
+    int ret, offset;
+    const char *name;
+
+    fdt_for_each_property_offset(offset, fdt, node)
+    {
+        fdt_getprop_by_offset(fdt, offset, &name, &ret);
+
+        if ( ret < 0 )
+            continue;
+
+        if ( !strcmp(name, pname) )
+        {
+            *poffset = offset;
+            return true;
+        }
+    }
+
+    return false;
+}
+
 static inline int fdt_get_mem_rsv_paddr(const void *fdt, int n,
                                         paddr_t *address,
                                         paddr_t *size)
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 29 12:42:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 12:42:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.972458.1360831 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9kI9-0006x0-Gg; Tue, 29 Apr 2025 12:42:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 972458.1360831; Tue, 29 Apr 2025 12:42: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 1u9kI9-0006wr-Dp; Tue, 29 Apr 2025 12:42:29 +0000
Received: by outflank-mailman (input) for mailman id 972458;
 Tue, 29 Apr 2025 12:42: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=PDgl=XP=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u9kE0-0007L9-Rk
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 12:38:12 +0000
Received: from NAM10-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam10on20631.outbound.protection.outlook.com
 [2a01:111:f403:2413::631])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id cef6e47f-24f6-11f0-9ffb-bf95429c2676;
 Tue, 29 Apr 2025 14:38:10 +0200 (CEST)
Received: from BN9PR03CA0695.namprd03.prod.outlook.com (2603:10b6:408:ef::10)
 by DS0PR12MB6608.namprd12.prod.outlook.com (2603:10b6:8:d0::10) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.32; Tue, 29 Apr
 2025 12:38:02 +0000
Received: from MN1PEPF0000ECD7.namprd02.prod.outlook.com
 (2603:10b6:408:ef:cafe::20) by BN9PR03CA0695.outlook.office365.com
 (2603:10b6:408:ef::10) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.37 via Frontend Transport; Tue,
 29 Apr 2025 12:38:02 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 MN1PEPF0000ECD7.mail.protection.outlook.com (10.167.242.136) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8699.20 via Frontend Transport; Tue, 29 Apr 2025 12:38:02 +0000
Received: from xcbagarciav01.xilinx.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; Tue, 29 Apr
 2025 07:37:55 -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: cef6e47f-24f6-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Oe/2NEjmfmHomz83XHK0zJVSu4ZQ7WXuIjnJWiZgQEDieBBv8oQyQ7Rg4cpgUOHfGkdKf4w6MbCQFSBjXj/j754KH6GkQewUwx7ozA/AG3ZncKfX8ndFmIzkZuLt1EowXtfKDV2WS1C4XFUgMwn7aT8l8aiLxAhu8S6ykjNLa2GLjP8rN/xrQJsRJij6S0cSh1DECQCqshvj55qvX607uDJ8ueESzelTg6ELSEepWdJgFgzaDym+2Q8tXDylHtDcaDLGkrN65IwtHzZdn81kYxV+S4uzxue1VCzEdlv6DA0mNPvMTdy8Qd3g68qfdL7qTtX1smYb82NickxkorO2Ag==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=bdrPcd9zoT/BI4gBU0jIi7gC5wzisujq/d8JbDCHFRU=;
 b=Hn5gzArXqE8lMrkJkPn+XG6XJtWeHnel5IVA2Yf4cPzs3IhSAZL+QW2ES+3oSXUnot/N5EZK3BKXbuhhShwafn3nKR56b8pGUoCLVpSwB3kqH0HynSe7OuR0RDBNeSVL19ON2iuUC9m+FzeKYMjpkSIlS+ptA7JWDhuo1jB26pjQKUH8I3DgviVpZAwN26bcIZdfDThYOeJig0KjpKhO+J7wyEt3DUVj3o72fn5Up42KarfP62/LM0a5mrfvYn7Z7PlYejWepYOLMfUeqxFQAQvDfEjJ+Pwpmv6B3S00eM4oFrMuDcpLekNteL4UuQVlF5+05lLv6tpR1r42CYBxUw==
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=bdrPcd9zoT/BI4gBU0jIi7gC5wzisujq/d8JbDCHFRU=;
 b=Wgj61LudpQdUMZtjz3/qmMF+3KNlgzVhroi7nlhPkQAGJaS2vIL3tSQAjf915jEEc9yCbW+DXK68W3tn+SzSC/zy232yC2lZ6KcSkjGV0bViF0x4dqBxV4rwrsDS/bTygr19wMBlQwMXDF6Dmc1URS6Tn4sUfe9f/RC8DexxFtY=
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: Alejandro Vallejo <agarciav@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: "Daniel P. Smith" <dpsmith@apertussolutions.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, "Julien
 Grall" <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, "Jason
 Andryuk" <jason.andryuk@amd.com>, Alejandro Vallejo <agarciav@amd.com>,
	"Denis Mukhin" <dmukhin@ford.com>
Subject: [PATCH v6 12/12] x86/hyperlaunch: add capabilities to boot domain
Date: Tue, 29 Apr 2025 13:36:23 +0100
Message-ID: <20250429123629.20839-13-agarciav@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20250429123629.20839-1-agarciav@amd.com>
References: <20250429123629.20839-1-agarciav@amd.com>
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: MN1PEPF0000ECD7:EE_|DS0PR12MB6608:EE_
X-MS-Office365-Filtering-Correlation-Id: af00c7bb-24b6-4137-1092-08dd871aaebb
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?jVSdnhJkxZWgGakZn0rvXHBy3lGgw7KMi99+07pIhDSMFLDDbANsVADi7TcI?=
 =?us-ascii?Q?kS5eJA1Erp/s4mvFKLldTCEzFWBPikUtuVhWKFRNCliCYp4DOqjuKWlbfC3U?=
 =?us-ascii?Q?dYGUUXZL9g/A2j5FPGvOkNNDOOuKeVCwrcFTC0winI+OeL3YIX5CVvz5zDSg?=
 =?us-ascii?Q?8LUskrfQovlLUn7w8QOcsUo9++brUCpmrn3IS1MJcDUP2UDM1vhhy7zrQLX7?=
 =?us-ascii?Q?EOez2zlyzHh5EghqE9ZsYDdk3Q/uk6Up/jwYE4O9tDxrax81NrIH7ezwGZRI?=
 =?us-ascii?Q?ESLW8590E6cuWMSrgsZCwyNXfjph0oZ1RBJbBnrjHI3/ie0Tj9en5OJuewNm?=
 =?us-ascii?Q?ybbgjPCS+BySo2ep8AFWsk6k4UG5OeTe68zZMZMwwRucMG0cyt+X58/2W96p?=
 =?us-ascii?Q?oZys8bR2GrgLL8X6n8ktSLeUM4QcjqMBE87rQvM2/gzjMxzD0FEVbWXl5d3G?=
 =?us-ascii?Q?eFPZ5BQXRnkXYVsyq9SojzZSMLVjA+UXELCwWZQI+kikDlPXRxqadt5FPQLB?=
 =?us-ascii?Q?PxSXB5ExBFloAHDxjIYj6Usik1NMEdsi419pZNhxs1aBZqauBUComxqYz4SF?=
 =?us-ascii?Q?0/plLRup+q7zfMvpbdUOAdOhZ9TBVILxXzab3BKzuktIz5Yy0IiHXTaflyye?=
 =?us-ascii?Q?ZS7H/z0Hm/umQHLfvzQOZIwJXTmyr+uxP6tM1t0BJ6nacwQ6enc4FyshpkdN?=
 =?us-ascii?Q?r/Dp0Ila+Pb5hM1H7I45aGlTzLbJrX1vcdz0xIYghUCN1nzwBTB+A6LcNaTV?=
 =?us-ascii?Q?Fb9Z0b5Qw+4VvDbkMXXcJbWxuMmTy7XcBO5dzXCN20oF1LTT8ZaW380ZDkSW?=
 =?us-ascii?Q?RSS8hrv7HxFzBX4xbSkuFWujYdFSd5d9gUXz35CqTiVR041VU01RW8XyC5Ne?=
 =?us-ascii?Q?I1m4gtHkKw4R+cg63sxWVlTvHtcBNxqXPgTwGNjMxZk+53PEriS/b218LQoc?=
 =?us-ascii?Q?Slx8Sui8Zd0qGJPH73xo7r0+YZ96c3VGlZffudUpkpec6XX/6g98x4Uj32/6?=
 =?us-ascii?Q?j+tqkmsQyBrS+N5Vblh9Jm6eero9Buj1TO9WDFl0KNO9xB1YjvhrCp1E8EMW?=
 =?us-ascii?Q?/Exj7Dyz9C2h6QT3FvGO1nFccOeEiQnxhLOm03S1fePW6vpoVLBynh5P5dx5?=
 =?us-ascii?Q?8vMCBlcGJat7LHZVOUafsPJitB+sCsQWwi/njvDn03wSkQCzxAVnimur6A+C?=
 =?us-ascii?Q?qncuch+UkchAldkMfaKY9ogqYqMZLOCdBNe+fOXNovdReftCaVDadAKTpVTu?=
 =?us-ascii?Q?qNfFCfHcDEkt97Tbt9bCjg+T+qwFInQFqvcnBrIs4L15itd5pHObWfyLsV5i?=
 =?us-ascii?Q?Xi0PGpgpFFaC3NsQxIDr+PYyWnr9dFx9GT7SBtWd9CQqfkIQ2YTdCTvNCTpu?=
 =?us-ascii?Q?iZ7qGeiUG+DMJXG+TYfQXuaBEFChV21AwffCemi92PMCt00OActZlEb7iowr?=
 =?us-ascii?Q?UAYbHiVQQss+Jy1DWCxZq7/ZLVmEvBJ95w1PbcIfEJXPMxt3MXGfS+hqf4Eu?=
 =?us-ascii?Q?1BWmTBT5febpw+z3Ky6RJuADTR7zSabKtnPs?=
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: 29 Apr 2025 12:38:02.6428
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: af00c7bb-24b6-4137-1092-08dd871aaebb
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:
	MN1PEPF0000ECD7.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB6608

From: "Daniel P. Smith" <dpsmith@apertussolutions.com>

Introduce the ability to assign capabilities to a domain via its definition in
device tree. The capability property is a bitfield in both the device tree and
`struct boot_domain`.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
Signed-off-by: Alejandro Vallejo <agarciav@amd.com>
Reviewed-by: Denis Mukhin <dmukhin@ford.com>
---
v6:
  * Reworded the commit message to reflect the fact that the
    DOMAIN_CAPS_HARDWARE is also done here.
  * Conditionalise setting CDF_iommu to DOMAIN_CAPS_HARDWARE being set.
---
 xen/arch/x86/include/asm/boot-domain.h |  3 +++
 xen/arch/x86/setup.c                   |  7 +++++--
 xen/common/domain-builder/fdt.c        | 23 +++++++++++++++++++++++
 3 files changed, 31 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/include/asm/boot-domain.h b/xen/arch/x86/include/asm/boot-domain.h
index 969c02a6ea..cb5351241a 100644
--- a/xen/arch/x86/include/asm/boot-domain.h
+++ b/xen/arch/x86/include/asm/boot-domain.h
@@ -13,6 +13,9 @@
 struct boot_domain {
     domid_t domid;
 
+    /* Bitmap. See DOMAIN_CAPS_MASK for a list */
+    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 4a3c41ad71..6a1e874b2e 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -62,6 +62,7 @@
 
 #include <xsm/xsm.h>
 
+#include <public/bootfdt.h>
 #include <public/version.h>
 #ifdef CONFIG_COMPAT
 #include <compat/platform.h>
@@ -1044,14 +1045,15 @@ static struct domain *__init create_dom0(struct boot_info *bi)
             XEN_X86_EMU_LAPIC | XEN_X86_EMU_IOAPIC | XEN_X86_EMU_VPCI;
     }
 
-    if ( iommu_enabled )
+    if ( iommu_enabled && (bd->capabilities & DOMAIN_CAPS_HARDWARE) )
         dom0_cfg.flags |= XEN_DOMCTL_CDF_iommu;
 
     if ( bd->domid == DOMID_INVALID )
         /* Create initial domain.  Not d0 for pvshim. */
         bd->domid = get_initial_domain_id();
     d = domain_create(bd->domid, &dom0_cfg,
-                      pv_shim ? 0 : CDF_privileged | CDF_hardware);
+            ((bd->capabilities & DOMAIN_CAPS_CONTROL)  ? CDF_privileged : 0) |
+            ((bd->capabilities & DOMAIN_CAPS_HARDWARE) ? CDF_hardware   : 0));
     if ( IS_ERR(d) )
         panic("Error creating d%u: %ld\n", bd->domid, PTR_ERR(d));
 
@@ -1314,6 +1316,7 @@ void asmlinkage __init noreturn __start_xen(void)
         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 = pv_shim ? 0 : DOMAIN_CAPS_MASK;
         bi->nr_domains = 1;
         bi->hyperlaunch_enabled = false;
     }
diff --git a/xen/common/domain-builder/fdt.c b/xen/common/domain-builder/fdt.c
index 02cfe8085d..232621ae46 100644
--- a/xen/common/domain-builder/fdt.c
+++ b/xen/common/domain-builder/fdt.c
@@ -7,6 +7,7 @@
 #include <xen/init.h>
 #include <xen/lib.h>
 #include <xen/libfdt/libfdt.h>
+#include <public/bootfdt.h>
 #include <xen/sizes.h>
 
 #include <asm/bootinfo.h>
@@ -313,6 +314,28 @@ static int __init fdt_process_domain_node(
             bd->max_vcpus = val;
             printk(XENLOG_INFO "  cpus: %d\n", bd->max_vcpus);
         }
+        else if ( !strncmp(prop_name, "capabilities", name_len) )
+        {
+            if ( (rc = fdt_prop_as_u32(prop, &bd->capabilities)) )
+            {
+                printk(XENLOG_ERR
+                       "  bad \"capabilities\" on domain %s\n", name);
+                return rc;
+            }
+
+            if ( bd->capabilities & ~DOMAIN_CAPS_MASK )
+            {
+                printk(XENLOG_WARNING "  unknown capabilities: %#x\n",
+                       bd->capabilities & ~DOMAIN_CAPS_MASK);
+
+                bd->capabilities &= DOMAIN_CAPS_MASK;
+            }
+
+            printk(XENLOG_INFO "  caps: %s%s%s\n",
+                   (bd->capabilities & DOMAIN_CAPS_CONTROL)  ? "c" : "",
+                   (bd->capabilities & DOMAIN_CAPS_HARDWARE) ? "h" : "",
+                   (bd->capabilities & DOMAIN_CAPS_XENSTORE) ? "x" : "");
+        }
     }
 
     fdt_for_each_subnode(node, fdt, dom_node)
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Apr 29 12:48:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 12:48:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.972491.1360840 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9kNo-0008Rk-2u; Tue, 29 Apr 2025 12:48:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 972491.1360840; Tue, 29 Apr 2025 12:48: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 1u9kNo-0008Rd-0K; Tue, 29 Apr 2025 12:48:20 +0000
Received: by outflank-mailman (input) for mailman id 972491;
 Tue, 29 Apr 2025 12:48: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=b72w=XP=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1u9kNm-0008RX-8z
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 12:48:18 +0000
Received: from mail-pf1-x432.google.com (mail-pf1-x432.google.com
 [2607:f8b0:4864:20::432])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3840605d-24f8-11f0-9eb4-5ba50f476ded;
 Tue, 29 Apr 2025 14:48:17 +0200 (CEST)
Received: by mail-pf1-x432.google.com with SMTP id
 d2e1a72fcca58-736dd9c4b40so6094936b3a.0
 for <xen-devel@lists.xenproject.org>; Tue, 29 Apr 2025 05:48:17 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 41be03b00d2f7-b15fa80f2dasm8862671a12.59.2025.04.29.05.48.14
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 29 Apr 2025 05:48: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: 3840605d-24f8-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745930895; x=1746535695; 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=64JWQR85rVF2sFxlW6E6lX1F3hvV8gab+VHsV8820Zg=;
        b=QWu/i8q7F4iSjSw+R3Uk7g3bUb6C7a7QPuJzehXHs6hG7DmdiWyQHAGA12/fCvTGap
         n12cOxsWtbKlVdAvrs22v9Fo4QEPQIJExCFXbdJ6o0jbP8i1SjWo/UPJM6dYx+kmSuTr
         Lc4lkQv6cEJR5jFMjXXZxE+CsYUJduNbjzzKc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745930895; x=1746535695;
        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=64JWQR85rVF2sFxlW6E6lX1F3hvV8gab+VHsV8820Zg=;
        b=t0id2Iuv+dm4eE/oDN9Mku1SBtgNIXuFoVur1DWz0qNc+WumKIkflsgS6h62ADc1rG
         1cstxRVEMTPA5tBP4B9y3ix2OyDlfxGS9YuLuZ38ypzF++z8wFa67VJAs94v9LCjLEJm
         MCJk3NMwDf12mlimFvFggW+pNEPDYO+/HYZuLm3JMk5yl5yBRHPEKXfQlWKPgsva/LS9
         u9jGjw5pQWe42ZyqTo3kUtXHB5dSIEq9ho3RYoLGgIMQRDVJK7sE/+RPCuDKn644um1z
         z31MImN7xrrSiav1LkhBiM6BmJYZ0gJay0VyJrucTlDR/dBdWaKBmUaDaez81lmFyi61
         UGgQ==
X-Gm-Message-State: AOJu0YwZaE0Zk2VdtPSkQ9ZnXEom6ez5xX4QhDDhseV7FShFPjI+RGu5
	mnQzRrK6aojJOKof2GtdVhN24lrhPNscy+A8FP0K3F2xSZV1mzTKB6K5Zwp7e5Vf2OZ+X1GL2mc
	S
X-Gm-Gg: ASbGncsIJRyWeFdSw5hEUhRFsDdtwrGBRo30c9Mg1B+LJpHpwdsvVPlOZ5Cs/482AHn
	rvSj957FucJ4f/XihS+Too4jIUbUjTfzR1tUnbvpZtbbHnO1oBo0VFhdTeZ5tbyjTnxbk3KBurU
	NtFHebeJqFqDWjssv6knnOujxon2I/z2Qmjns1A2tRAyqp9gEZtI3gGcDApNvLJirFPzT4NI02n
	kqNqzVfoQ69EYAgw1ilLNHpPaXnRXLYt65JYvHaVj90U8jXhXshtscdgiNMJ1o5z+4nnkKK0kHh
	kykXNNBFbnyt/qG073//ote2RItocp0ltfVm9xFcSMIhjA==
X-Google-Smtp-Source: AGHT+IFlS3ff0wBePdANwC+1H8guEfvq1DcOykobk0/WxSVJjACNKorMFaQWDh2Hj+B4th/msnTCTg==
X-Received: by 2002:a05:6a21:1583:b0:1ee:450a:8259 with SMTP id adf61e73a8af0-20951d4ee08mr4317019637.18.1745930895615;
        Tue, 29 Apr 2025 05:48:15 -0700 (PDT)
Date: Tue, 29 Apr 2025 14:48:10 +0200
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>,
	Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <JBeulich@suse.com>
Subject: Re: [PATCH TEST-ARTEFACTS] (Re)add libgcc to alpine rootfs
Message-ID: <aBDKijzZMEUopmSk@macbook.lan>
References: <20250429123643.230423-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: <20250429123643.230423-1-andrew.cooper3@citrix.com>

On Tue, Apr 29, 2025 at 01:36:43PM +0100, Andrew Cooper wrote:
> It turns out that QEMU built in staging-4.19 (only) depends on it.
> 
> But, GCC can emit libgcc calls for arbitrary reasons, so include it
> unconditionally.

Is there a fixes tag for this, or it has always been this way?

> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Acked-by: Roger Pau Monné <roger.pau@citrix.com>

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Apr 29 12:50:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 12:50:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.972504.1360851 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9kPp-0001WR-HU; Tue, 29 Apr 2025 12:50:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 972504.1360851; Tue, 29 Apr 2025 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 1u9kPp-0001WK-E6; Tue, 29 Apr 2025 12:50:25 +0000
Received: by outflank-mailman (input) for mailman id 972504;
 Tue, 29 Apr 2025 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=yPhw=XP=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u9kPo-0001WE-FL
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 12:50:24 +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 84185e2e-24f8-11f0-9eb4-5ba50f476ded;
 Tue, 29 Apr 2025 14:50:23 +0200 (CEST)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-43d0359b1fcso37465425e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 29 Apr 2025 05:50:23 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4409d2e0241sm188940335e9.37.2025.04.29.05.50.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 29 Apr 2025 05:50:22 -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: 84185e2e-24f8-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745931023; x=1746535823; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=SLGZoAC2GDBsjIi2XWp1JTPEcBHD8CD6AameulPUcFE=;
        b=B75l07Lpet6aH2zF0I1cCneXPcJ5NVQlCSYqltYV3OwSjpS6DtFJXxsmRErBtrwJwy
         iyFl+yT6gd80W83XPyeP3vtmTyo/FHciwlqSPN1o3DIn4ZYy255aV46pMN0IytadeaL8
         Vr9W6dldNtA4GcDeJ7HqKr5wMAxZnlAwyo4Qw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745931023; x=1746535823;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=SLGZoAC2GDBsjIi2XWp1JTPEcBHD8CD6AameulPUcFE=;
        b=rplWyip5eTdREhrpQsybwa7WFveBiWeouuodytbmOYZxtIRusDgVNtOqNQL1XqyzqM
         XaTF0JMVIs9OlUqpC+xXaO7hy2fCKRruorRhzIOT4584uh7QirKcgJMskqcZCjM7qXuC
         FthE4R9JXFgIYANv3lPE0/eX0gI2VJ0R87WdflbXPHO7NfxvHxvGNwWf4wDr4UdaOVef
         /w6ZWsbdzTox0wNKFygTkWE/rEz6XzxMaBlA5LPAaS8SEEWnDa8KCQk6rSzPxXSSnNgB
         D06lkoR1TsN2m0kidF5S8nM/Xw7FZVm1og3s8K1cho1J+c2Dw66A2l9gaZVn04qXRAxt
         1xdw==
X-Gm-Message-State: AOJu0YyV7ULY2Hvbvnn1TaSbKJoZLptFTtd03A0DmYCvsv5aLOk/bsWM
	wzPYP2BJDUaRL6TgncII5ZmYnxV9uCihv03RwL46JDUDE15NyAjoJYMpe9At2Xc=
X-Gm-Gg: ASbGncskILf2FExZVO0/+I6NdKruFxVxp92+Wqi9QOi1nS2snZJpl+RNxar07xty0Ox
	6RqVQBpXHeos4CiGv5H0t34kz28PFH5zokVot+9jrava4rBQflR/1xw1Mk0DMZuaPVVZ/Xoy/79
	97BJB0d0X/X2HGC3jLUnSlCGrBcifHV/axmfUArqJ4/whMmvoXVOeoGucWrqh2nLedyXvaTwZ6Z
	vTrsSzO5GBzGIF5GdOP+WVPbTxfAyP/LNid1R06Phc3u6tvr5WuXo8GhzL1qvYfiWcEVSG8jgGp
	s6LhFGt+/aWporF/M8pNa60bn1Ol1BP6T7EIyrLWxZdpJUNDFMpVZRCRJowLOb/LQqfBmN/+MGQ
	fnJa3gw==
X-Google-Smtp-Source: AGHT+IFMcpCJm59F2DuUWOTGMNvA9+uSYjikxhK6hO9JcF96PyyjnriBpmPTmQHNM0IOMEpf57B0xg==
X-Received: by 2002:a05:600c:1546:b0:43d:1bf6:15e1 with SMTP id 5b1f17b1804b1-441acadeaa5mr22889945e9.1.1745931023092;
        Tue, 29 Apr 2025 05:50:23 -0700 (PDT)
Message-ID: <0f5887d3-052a-40cb-a8cc-14c7e6838ba8@citrix.com>
Date: Tue, 29 Apr 2025 13:50:22 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH TEST-ARTEFACTS] (Re)add libgcc to alpine rootfs
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, Anthony PERARD
 <anthony.perard@vates.tech>, Jan Beulich <JBeulich@suse.com>
References: <20250429123643.230423-1-andrew.cooper3@citrix.com>
 <aBDKijzZMEUopmSk@macbook.lan>
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: <aBDKijzZMEUopmSk@macbook.lan>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 29/04/2025 1:48 pm, Roger Pau Monné wrote:
> On Tue, Apr 29, 2025 at 01:36:43PM +0100, Andrew Cooper wrote:
>> It turns out that QEMU built in staging-4.19 (only) depends on it.
>>
>> But, GCC can emit libgcc calls for arbitrary reasons, so include it
>> unconditionally.
> Is there a fixes tag for this, or it has always been this way?

Fixes: d18d7eba888e ("Shrink the rootfs substantially")

>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Acked-by: Roger Pau Monné <roger.pau@citrix.com>

Thanks.  I'll get this deployed.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Apr 29 12:52:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 12:52:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.972529.1360862 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9kRU-0002R0-Vy; Tue, 29 Apr 2025 12:52:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 972529.1360862; Tue, 29 Apr 2025 12:52: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 1u9kRU-0002Qm-Pw; Tue, 29 Apr 2025 12:52:08 +0000
Received: by outflank-mailman (input) for mailman id 972529;
 Tue, 29 Apr 2025 12:52: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=qXnC=XP=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u9kRT-0002Ps-PL
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 12:52:07 +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 bb81bee9-24f8-11f0-9ffb-bf95429c2676;
 Tue, 29 Apr 2025 14:51:56 +0200 (CEST)
Received: by mail-ed1-x529.google.com with SMTP id
 4fb4d7f45d1cf-5f63ac6ef0fso7548549a12.1
 for <xen-devel@lists.xenproject.org>; Tue, 29 Apr 2025 05:51:57 -0700 (PDT)
Received: from [10.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-5f703545234sm7335135a12.56.2025.04.29.05.51.55
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 29 Apr 2025 05:51:56 -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: bb81bee9-24f8-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745931117; x=1746535917; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Np1GRY+1XqV1BiVWzCe+dlEPeaySw3Vj33fmsezJs+k=;
        b=bnmImZ0KPufp0/5J7t6WLZCdN0b6AWSYqZGM1J1OmASUSiHwW4dVOsmTxZaVxqB0Ox
         kMYiHbaD1kfsADLY14DJwrJQACUpl+0yUIR+sfSqcZwtC2PEJlvRCrCONyYwNnD7aga9
         wv9nllHlc1bBOp9eaLMcS7687CHhIPgoW+WXdlpXOjxslefGkeH7yRA4fWVscPzCjPtx
         D7j1grxhcG3dSF9fxZlXaCHPXMuY/GVUGK9ATmKa0tsCMcw9rld3AEmyvn3UJneDo9Ph
         wSJ7KP5809iNGXiSAf0koDcAc8GeYEp3982vHmg5IqeVA3/9VQUkev+3qoL3ijSpBgKG
         W2kA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745931117; x=1746535917;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Np1GRY+1XqV1BiVWzCe+dlEPeaySw3Vj33fmsezJs+k=;
        b=b60SZZzUf0In5ANbuYGhxGxyD+PRzMvjB/Dp/R0P9/rrf8Tn+DscCmNSuxWJvyXy08
         AQtM6nFVy40jn7z8Ol+AMJhYjEoWsr2/NEuWBp5LcFDokF7MH6a6PT3FUq6E2h44DbdA
         9EP0fXIxg1KulgctFy6ObfTeTQ6e3vezrqLpda5zRJOQxCRkJul8o9CTkTe2eJfCvW1U
         KnottDIy3USn42XWzfvMc842Fxn3fr0THDGvOmDvof22/mxGkj/rNeCpQzGael95MfTF
         A37Ne+zW/WD1vKQmZxMF/1n7WrwqEhS2/an1lcZVqWA/uK2Tivp6EUH5WmwatcSGA4nN
         2Urw==
X-Forwarded-Encrypted: i=1; AJvYcCXARo/Hw48H7Se5oP2QIxX2o23Rpn9IXb7qt7dnoMXI7pZVq89hg6ooCE7mHlE4OKy2qVmbKeqZ3ks=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw6e5BJcn2cHIspHlrzAlRUcpQl6Jia9va22nLriNDDqcqEHfwk
	YXezOZH9krPOLrB23ciT/LWHyH/AryZ4PC131PRsewmSNUWapsLzMXLbSkeo4A==
X-Gm-Gg: ASbGnctcZW9OVWKZtsaCDyDJUTzMg3w2/rrdgGlqIUnjuYlZPWou7qs7mWdZY1sfRRw
	/PAsHRw0UIF5YfLJiNJ1cyDzIZ7Rcn5E26uPtOUOlwCdzfpq4IT/jl5O6HnsqjRccdN8vnoXydh
	Cgt3eh3OBOp3RuuoQ2dO5kQAxQekHTO0kvvep0TLWDPfJ/OLDGkyK6u3MIt0rPcScBREb/om6t5
	fIzRFX6O1cl3MtBcewxJtKSbKoewF2fOlfG3ZrJUzZiO6oywPtDaa+43sQzc5B2oRc+ir6MwONh
	GoJnvOsxsP4NeEQnTyG9AnbHQ3a28S4bJqLvHRQoK9dcpyCGEUnS7SbR+Ui3H8OVzQGnmlrcOhk
	TiK32nEL50vjBAg+pA92zvJI4RA==
X-Google-Smtp-Source: AGHT+IG38XggkJAAuMllwKysjA1+IecW/i7Uo625aRa6aKuLTscNYFTMSRIwngdrEYNyZjjaYohR9g==
X-Received: by 2002:a05:6402:13d5:b0:5ed:19b4:98ea with SMTP id 4fb4d7f45d1cf-5f8390bd1c6mr2771018a12.0.1745931116878;
        Tue, 29 Apr 2025 05:51:56 -0700 (PDT)
Message-ID: <57a3b2c0-d57d-46e3-b248-0e243f715423@suse.com>
Date: Tue, 29 Apr 2025 14:51:55 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 05/15] xen/x86: introduce "cpufreq=amd-cppc" xen
 cmdline
To: Penny Zheng <Penny.Zheng@amd.com>
Cc: ray.huang@amd.com, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20250414074056.3696888-1-Penny.Zheng@amd.com>
 <20250414074056.3696888-6-Penny.Zheng@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20250414074056.3696888-6-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 14.04.2025 09:40, Penny Zheng wrote:
> @@ -514,5 +515,16 @@ acpi_cpufreq_driver = {
>  
>  int __init acpi_cpufreq_register(void)
>  {
> -    return cpufreq_register_driver(&acpi_cpufreq_driver);
> +    int ret;
> +
> +    ret = cpufreq_register_driver(&acpi_cpufreq_driver);
> +    if ( ret )
> +        return ret;
> +    /*
> +     * After cpufreq driver registeration, XEN_PROCESSOR_PM_CPPC
> +     * and XEN_PROCESSOR_PM_PX shall become exclusive flags
> +     */
> +    xen_processor_pmbits &= ~XEN_PROCESSOR_PM_CPPC;
> +
> +    return ret;
>  }

Why is no similar adjustment needed in powernow_register_driver()? In principle
I would have expected that it's not each individual driver which needs to care
about this aspect, but that the framework is taking care of this.

> --- /dev/null
> +++ b/xen/arch/x86/acpi/cpufreq/amd-cppc.c
> @@ -0,0 +1,81 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +/*
> + * amd-cppc.c - AMD Processor CPPC Frequency Driver
> + *
> + * Copyright (C) 2025 Advanced Micro Devices, Inc. All Rights Reserved.
> + *
> + * Author: Penny Zheng <penny.zheng@amd.com>
> + *
> + * AMD CPPC cpufreq driver introduces a new CPU performance scaling design
> + * for AMD processors using the ACPI Collaborative Performance and Power
> + * Control (CPPC) feature which provides finer grained frequency control range.
> + */
> +
> +#include <xen/domain.h>
> +#include <xen/init.h>
> +#include <xen/param.h>
> +#include <acpi/cpufreq/cpufreq.h>
> +
> +static bool __init amd_cppc_handle_option(const char *s, const char *end)
> +{
> +    int ret;
> +
> +    ret = parse_boolean("verbose", s, end);
> +    if ( ret >= 0 )
> +    {
> +        cpufreq_verbose = ret;
> +        return true;
> +    }
> +
> +    return false;
> +}
> +
> +int __init amd_cppc_cmdline_parse(const char *s, const char *e)
> +{
> +    do
> +    {

Nit (style): Brace placement is special here, just like it is ...

> +        const char *end = strpbrk(s, ",;");
> +
> +        if ( !amd_cppc_handle_option(s, end) )
> +        {
> +            printk(XENLOG_WARNING
> +                   "cpufreq/amd-cppc: option '%.*s' not recognized\n",
> +                   (int)((end ?: e) - s), s);
> +
> +            return -EINVAL;
> +        }
> +
> +        s = end ? end + 1 : NULL;
> +    } while ( s && s < e );

... here.

> --- a/xen/arch/x86/platform_hypercall.c
> +++ b/xen/arch/x86/platform_hypercall.c
> @@ -542,6 +542,9 @@ ret_t do_platform_op(
>                  ret = -ENOSYS;
>                  break;
>              }
> +            /* Xen doesn't support mixed mode */
> +            ASSERT((xen_processor_pmbits & XEN_PROCESSOR_PM_CPPC) == 0);

Please prefer ! over "== 0" in such purely boolean contexts.

> @@ -573,6 +576,14 @@ ret_t do_platform_op(
>          }
>  
>          case XEN_PM_CPPC:
> +            if ( !(xen_processor_pmbits & XEN_PROCESSOR_PM_CPPC) )
> +            {
> +                ret = -EOPNOTSUPP;
> +                break;
> +            }

While at least you no longer use -ENOSYS here, I question this behavior,
including that for the pre-existing cases: How is the caller supposed to know
whether to invoke this sub-op? Ignoring errors is generally not a good idea,
so it would be better if the caller could blindly issue this request, getting
back success unless there really was an issue with the data provided.

> @@ -102,6 +103,9 @@ static int __init handle_cpufreq_cmdline(enum cpufreq_xen_opt option)
>      cpufreq_xen_opts[cpufreq_xen_cnt++] = option;
>      switch ( option )
>      {
> +    case CPUFREQ_amd_cppc:
> +        xen_processor_pmbits |= XEN_PROCESSOR_PM_CPPC;
> +        break;
>      case CPUFREQ_hwp:
>      case CPUFREQ_xen:
>          xen_processor_pmbits |= XEN_PROCESSOR_PM_PX;

Here and (about) everywhere else: Blank line please between non-fall-through
case blocks. I guess I'm not going to repeat this any further. There are
very tiny switch() statements where it is okay to violate this principle, but
as a rule of thumb - if in doubt, put a blank line there.

> --- a/xen/include/acpi/cpufreq/processor_perf.h
> +++ b/xen/include/acpi/cpufreq/processor_perf.h
> @@ -5,6 +5,9 @@
>  #include <public/sysctl.h>
>  #include <xen/acpi.h>
>  
> +/* ability bits */
> +#define XEN_PROCESSOR_PM_CPPC   8

This needs correlating (at least via commentary, better by build-time checking)
with the other XEN_PROCESSOR_PM_* values. Otherwise someone adding a new #define
in the public header may not (easily) notice a possible conflict. With that in
mind I also question whether 8 is actually a good choice: That's the obvious
next value to use in the public interface. SIF_PM_MASK is 8 bits wide, so a
sensible value to use here would by e.g. 0x100.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 29 13:00:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 13:00:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.972580.1360870 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9kZb-00059M-LH; Tue, 29 Apr 2025 13:00:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 972580.1360870; Tue, 29 Apr 2025 13: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 1u9kZb-00059F-Id; Tue, 29 Apr 2025 13:00:31 +0000
Received: by outflank-mailman (input) for mailman id 972580;
 Tue, 29 Apr 2025 13:00:30 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=qXnC=XP=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u9kZa-000599-98
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 13:00:30 +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 ea8dd027-24f9-11f0-9ffb-bf95429c2676;
 Tue, 29 Apr 2025 15:00:25 +0200 (CEST)
Received: by mail-ed1-x532.google.com with SMTP id
 4fb4d7f45d1cf-5f62ef3c383so11111950a12.2
 for <xen-devel@lists.xenproject.org>; Tue, 29 Apr 2025 06:00:25 -0700 (PDT)
Received: from [10.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-5f701400565sm7503921a12.26.2025.04.29.06.00.24
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 29 Apr 2025 06:00: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: ea8dd027-24f9-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745931625; x=1746536425; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=xfou+qyZv4NtEDASI5ojF0dRYalGofxQacaTzt+4o58=;
        b=VcpkCKfEoVtYVicyP7+oU1yJUZ6BFq+OwrDq+H7u87QbbLGBlECbbs9IvpCkvvlsR4
         YgUrQToR2d2DCOZlTvakGvtuXAIziqWTkvYV3zo5POvwqzkcnhx2ddd5L61nibM3bZMX
         1bc2l7vz26o+8/Efl+2tTioavMSVVFDcoTadLVVfOBtVO2tezpGrxNcMMMrPpKILd0fF
         P+vR7tWgYfTpRUZ6ah8e2sZ2vQN0bNGgEflVBQruHm1eSfFEksEj+s9gg9XXd04uhihh
         9SgZOEg0lpH/VAStF0eXx018zJSkpdD1uOPUb/oxlN/fDzrF4UrM14T1hajKAqu4vR+J
         Tp5g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745931625; x=1746536425;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=xfou+qyZv4NtEDASI5ojF0dRYalGofxQacaTzt+4o58=;
        b=SVcVQReMwnH1QJ0/Qaq2wgBHN+Ezk84CYaEFbYJRZls9Dss2N7Rz0W4OiIqUEFr1NF
         suXaEmR/HpZ88SjP5Bfp9D8UGrsB1pGlRXKVMPacVihuOPgSJcg9861NtzW7aF9ulPiV
         qaK4w7VgsyoVUVpTJMYLY7qIFq0eiJwfLbk7w/zFPqL2cnTK7sVbtoibKWC72mwzOanR
         Z2U0z9ZJWUcyDzLHqyrHwVaRxOt6EGGS9M6rZgmsx6t1jq3Xrw9453KrxmuqzkZ7KvG8
         B7FBaIuUuMnSqevrSM3OZ/c5FPcEWzJhCtSqvsLGVtrZcvpHJrRGNgXPUOqb4c9oaSKN
         Py2w==
X-Forwarded-Encrypted: i=1; AJvYcCXTtEJL/DAzjnTXnomRMvc/QoWDj5s1fLY4YmMubZW5j6xXZMmF57ooql96aDCwD/LbMnpyQB25r9o=@lists.xenproject.org
X-Gm-Message-State: AOJu0YybwomUbGVypETAMrfIZ3cVYVh0ZXHeBCES7NiUhWYtOcC6KrOS
	9yX4m66InU5BEEM10ddzBVJcqLNFWdpp6FOwLZFc5rswGjixtIZAqOTMCvjdxA==
X-Gm-Gg: ASbGncuNLcjG1LA4SIY2PFBb5PxtGPJ2GttjoZvI4fuQ0S4vBWoc93PGidtqcohzrKh
	LZa+HIFyskbEXeuilD5+MK7b1ZENp4ySOENqQqRpqTsK5ILplNvmH9o69X9FzETxNIXhsRMLwLM
	g0+SmaejUR0wLBMHX5mMvkLM/r4r1n1I/2XAR51LqHmJBdRH8G00ql+JWnobVzJbKlX2m1xXrtA
	P3Ao7sc70vnBnfqCVeoSNuq57bI/djJo2SN30XwmlM8MDdA7NMFNSvlLORdBFrhhICAdUSnH3+J
	QwSTRTewj2AjIXZTEQNla72hb7HP+DLE4/ootHI/mzHmvHhOcm1cP7rTnkPTNJ/Ea1IbkGIAFHx
	zcjCwuYVSIXWNXuCxx2TxLdF5jQ==
X-Google-Smtp-Source: AGHT+IFv/7NSMNCRuPswxiN/444MKknfqLgZjhmbi2VVUMOwCQG+7/l0SQXCd1wzNTm4RB3x7kkCBg==
X-Received: by 2002:a05:6402:5112:b0:5ed:2762:727a with SMTP id 4fb4d7f45d1cf-5f7395f1b6amr11592191a12.11.1745931625289;
        Tue, 29 Apr 2025 06:00:25 -0700 (PDT)
Message-ID: <418c4232-dfed-4aef-8b9c-7bfad2b30de0@suse.com>
Date: Tue, 29 Apr 2025 15:00:23 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 00/12] Hyperlaunch device tree for dom0
To: Alejandro Vallejo <agarciav@amd.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>, xen-devel@lists.xenproject.org
References: <20250429123629.20839-1-agarciav@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: <20250429123629.20839-1-agarciav@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 29.04.2025 14:36, Alejandro Vallejo wrote:
> Not very many changes here. Just:
> 
> v5->v6:
>   * Denis' suggestion to rename a few helpers to fdt_*
>   * Change to last patch to only pass CDF_iommu to domains with
>     DOMAIN_CAPS_HARDWARE.
> 
> I _think_ this addresses all feedback I got so far and I don't expect
> anything major remaining before commit.

That's optimistic. I for one didn't even get around looking at v5.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 29 13:10:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 13:10:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.972595.1360880 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9kjb-00085w-IO; Tue, 29 Apr 2025 13:10:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 972595.1360880; Tue, 29 Apr 2025 13:10: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 1u9kjb-00085p-Fr; Tue, 29 Apr 2025 13:10:51 +0000
Received: by outflank-mailman (input) for mailman id 972595;
 Tue, 29 Apr 2025 13:10: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=qXnC=XP=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u9kjZ-00085j-GM
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 13:10:49 +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 5ce43d65-24fb-11f0-9ffb-bf95429c2676;
 Tue, 29 Apr 2025 15:10:46 +0200 (CEST)
Received: by mail-ed1-x535.google.com with SMTP id
 4fb4d7f45d1cf-5f3f04b5dbcso9659149a12.1
 for <xen-devel@lists.xenproject.org>; Tue, 29 Apr 2025 06:10:47 -0700 (PDT)
Received: from [10.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-5f7013ff81dsm7686083a12.24.2025.04.29.06.10.45
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 29 Apr 2025 06:10: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: 5ce43d65-24fb-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745932247; x=1746537047; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=vhiXa34i5am0/ckDfFZ5pXKyzhzsKyHciVl03tIEtEU=;
        b=JrOjgdH8E0ik5o6S1Hlaos+rUE5rzmRVa+iQQ+/WSQP/ToyB7CSLV8pfLvyThD2M7H
         nLHUz5OIPFoRI+ucH9TkSQAUnAEsNHDaz/O4xmN7gcu3oM9TJr+rqBW+g9eFe7+uS5BE
         osY/Zm7mwTh3ZQxFo847r0WovKm0hPgnGbtqYb6Pfk+CFF9ZiohMj3Z9xGqFjercgGHe
         QzeFw6BUiAVeoaky00Me3BRE5Ht02M+uYj/p/1Xcc6+zPkhStaOhEYIamCZdqYPqvK5m
         fFXkAQcEhYGsk8rTOAX6XhFAKFm8WyBvtPblaAejH8zi+akwVV4DIpCh0HjQg4SxntX0
         JYIw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745932247; x=1746537047;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=vhiXa34i5am0/ckDfFZ5pXKyzhzsKyHciVl03tIEtEU=;
        b=ps7IL7AZ2mbxg4BAzngl9Ptyom+SIRAeDyp8wfvdY71bvsDnjOTZ0Ysr+2+SCyFXY3
         +rHItuAJHfoJGTkDzHde8ST2rvIvvHFIjNK4SVi7uSJE7zECg3ys3x37fYLZFo+XPXyx
         UV/cBf2l9StWDSlBNxHfeooTQvvE7QELoxpxwughugliENJsz8rVU8IFPgZLQkr3w6zY
         7vfLGurxDMK7gEyFFL2ly+D0ThHRctqN3XXENDXyvseiZqiFGGGlWPzmiIvnxrXtTkJi
         9TqXl7/ppd8CurMtektaJD+c52DAKjOm7eHnfN0JAO9tSGrTh4zTWto20S9a+H9sfIOM
         xPOw==
X-Forwarded-Encrypted: i=1; AJvYcCXIkvmqIdS/siqsDlNueDu0g6rVmUIsl+TE/VZ8xcLeLWqJ8cBy/WqW4QlzuwaasesAjhsSGYIbxJ8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyZ6miZyDmhVxU/mX/hcSrd2rEl/+UVi/SLe5XuCRDcV3i940S3
	gkgU/3hX0bfYlczU8KN/u37/0iZMiK2QVuim0K/ewxzkEOFJ4SO2yolyXF0FGw==
X-Gm-Gg: ASbGncsGgBki9RICoo9a169NYir4xJrx2gSk16Z6hBiUITrI1NMu7jmzqBywqNDWpXj
	qY3f9fyZzkghTHHd6gsY6xK2FXsd/rvjoN4YI3swwXWTowhmTxZY+Ao1K6bRi9mgT2Biqm14rgn
	YJPcAj0lLWFs9aOX6hQok8mGlv0DNhuAktjNX3Oa7GgjJcTGJdY+gfPHn8m2g/lYAdrzPoh3mGT
	gtTQWW4EHcEyklVbmyaTybzh7j24/t9yInluldIvOfiQhmByAvxjpKxWT79W3MgLyfX6MPFrQ71
	xZZ13oq58wrPdZo7iN7xGE5DWxXWLYX3A71zt3pSOGCkKfBRvpHpLCUhMXXY6hlKslmG/Uq9XEP
	j+eO6TLmRwcwJxG3cy8uDdv++Sw==
X-Google-Smtp-Source: AGHT+IEoiBKCQ5m9yKiWdqnURwOvhgutiOoLHzKtkb1zoUisSBOLaLlP74+tC1ZFfsF8gLZOYD/Pxg==
X-Received: by 2002:a05:6402:350c:b0:5f7:eb1e:7f25 with SMTP id 4fb4d7f45d1cf-5f83b0c3d7fmr2249811a12.12.1745932246616;
        Tue, 29 Apr 2025 06:10:46 -0700 (PDT)
Message-ID: <a51b8c02-c32a-42fd-a0e9-d617efbf9c36@suse.com>
Date: Tue, 29 Apr 2025 15:10:44 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 06/15] xen/cpufreq: disable px statistic info in
 amd-cppc mode
To: Penny Zheng <Penny.Zheng@amd.com>
Cc: ray.huang@amd.com, xen-devel@lists.xenproject.org
References: <20250414074056.3696888-1-Penny.Zheng@amd.com>
 <20250414074056.3696888-7-Penny.Zheng@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20250414074056.3696888-7-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 14.04.2025 09:40, Penny Zheng wrote:
> We need to bypass construction of px statistic info in
> cpufreq_statistic_init() for amd-cppc mode, as P-states is not necessary there.

Is it really "need"? What goes wrong if we went through this initialization?
For now it feels more like an optimization to me, i.e. "want". Also ...

> --- a/xen/drivers/cpufreq/utility.c
> +++ b/xen/drivers/cpufreq/utility.c
> @@ -98,6 +98,9 @@ int cpufreq_statistic_init(unsigned int cpu)
>      if ( !pmpt )
>          return -EINVAL;
>  
> +    if ( !(pmpt->init & XEN_PX_INIT) )
> +        return 0;
> +
>      spin_lock(cpufreq_statistic_lock);
>  
>      pxpt = per_cpu(cpufreq_statistic_data, cpu);

... you're specifically not bypassing the spin_lock_init(), for a good reason.
With respective clarification in the description:
Acked-by: Jan Beulich <jbeulich@suse.com>

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 29 13:23:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 13:23:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.972617.1360912 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9kvC-00031r-T5; Tue, 29 Apr 2025 13:22:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 972617.1360912; Tue, 29 Apr 2025 13: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 1u9kvC-00031k-PI; Tue, 29 Apr 2025 13:22:50 +0000
Received: by outflank-mailman (input) for mailman id 972617;
 Tue, 29 Apr 2025 13:22:49 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=PDgl=XP=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1u9kvB-00031O-8m
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 13:22:49 +0000
Received: from NAM12-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam12on20629.outbound.protection.outlook.com
 [2a01:111:f403:200a::629])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0946a494-24fd-11f0-9eb4-5ba50f476ded;
 Tue, 29 Apr 2025 15:22:46 +0200 (CEST)
Received: from SA0PR11CA0002.namprd11.prod.outlook.com (2603:10b6:806:d3::7)
 by IA1PR12MB8408.namprd12.prod.outlook.com (2603:10b6:208:3db::13) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8699.19; Tue, 29 Apr
 2025 13:22:41 +0000
Received: from SA2PEPF00001505.namprd04.prod.outlook.com
 (2603:10b6:806:d3:cafe::b1) by SA0PR11CA0002.outlook.office365.com
 (2603:10b6:806:d3::7) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.36 via Frontend Transport; Tue,
 29 Apr 2025 13:22:41 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SA2PEPF00001505.mail.protection.outlook.com (10.167.242.37) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.8699.20 via Frontend Transport; Tue, 29 Apr 2025 13:22:40 +0000
Received: from localhost (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, 29 Apr
 2025 08:22:38 -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: 0946a494-24fd-11f0-9eb4-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=mUvF3g9ufGJvtq0Eq2OFDZbCLSTJ05arwrkcGK4TzGuALbFbM/LebEgn28UNpPkdCoZXzlbGP8R3md2MPlCNdqw1uUHbG8GxOU9HQ7dMOYtUjFVeXJbI8xltrjbk88C6Pg3kjL6QkQYEz4X0kwuW+U5rc+rwsqlPy+OsKtWlFRsMdbYafstBw3M5EU1ti5VGl8zEmKO+0cX4q3tPjN+YQg7FqY1tUYixHZATamuRdZGE0v1R1xDze92xGu4gLQJlPN5Gs6prWZY+c6pERAXSxdXozcMiA8HLGTLCIRsoWSvB8Nh/KRX/zmhtldxlpYWNz4hKwNXtxsz+435YivimWA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=22cy0VuEYcw2o2Xd4cE1+/VmDi/cFSwnnE+oCMshkzM=;
 b=E/lIF3i+5SCS8zMvcshF1DkXcQP2GDdnWVfRn+VF169Tb0VKvcDcx7Tl7OiCHZTY3iXnWWS9NGxIwEl4SNuTKxhd/cJDI824i5WJk5SrNeksL819oN0CCpOV5l4sDxJJQ6SC/jFLLDRyyRqUEV+XW23c/oWF2fwtqDCucsVcnCuDHFcw8Zy7Fa6fqCFYVIJy3w0Uf5bzhBGj881qR5/kQj7mBwuCODEguIwFIJTzu1FZsddh9hEICAmvrxcX2evO9FQKemtVHdr1UghV01I3lDza7ydE4HN8pjHE257um5Ozpecd9d0GJThoaSBxFwB5/iZ32U7kNPglfUrp7d8mtw==
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=22cy0VuEYcw2o2Xd4cE1+/VmDi/cFSwnnE+oCMshkzM=;
 b=DyJN27KnxV7oOQKHFpCkX8lbrzfNzRyCtdbwxjFCZMQRc0eiPxVMgWH1ToGyxyuu/d7y6TYQwmDqZpHaIzGa8jmtgaHRqUuhb3itNY14s9dUbgJbK4JukOh/fLy4QohMpkJbCvn9W2S7/+u9kR+NLnAv8reTNYMCTQE6afs6RPo=
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
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Tue, 29 Apr 2025 14:22:35 +0100
Message-ID: <D9J5KV0WON7T.2J35KI3WGYRFQ@amd.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, "Julien
 Grall" <julien@xen.org>, =?utf-8?q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
	"Bertrand Marquis" <bertrand.marquis@arm.com>,
	<xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v6 00/12] Hyperlaunch device tree for dom0
From: Alejandro Vallejo <agarciav@amd.com>
To: Jan Beulich <jbeulich@suse.com>
X-Mailer: aerc 0.20.1
References: <20250429123629.20839-1-agarciav@amd.com>
 <418c4232-dfed-4aef-8b9c-7bfad2b30de0@suse.com>
In-Reply-To: <418c4232-dfed-4aef-8b9c-7bfad2b30de0@suse.com>
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: SA2PEPF00001505:EE_|IA1PR12MB8408:EE_
X-MS-Office365-Filtering-Correlation-Id: 95986f0e-adc2-40d5-cde1-08dd8720eb0a
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?VFIxVmRFWXJrQzRaaWJWcWQzNGtJTjNpVTdhU1Vxclh3TVBzdC9RWHlNV0Ns?=
 =?utf-8?B?QTREcTdiY3FxYVZjRjRtemtVNTNYMW1ZUUtUZzlTVGJoNTAzVmVOdXF4MGtl?=
 =?utf-8?B?Uk1oR0xkakx2UkpsTUlwbXFqdFJsUWJwaHNBem5zRlB3NFRYMTlDNVpTcTIw?=
 =?utf-8?B?Qm53UWNINWlNeHBkK3hiRG1HRENZUGlkZlJKWVN3RkxON2xodE90eFdWZWhu?=
 =?utf-8?B?N0xsNlZuK2FlVXhJMkM0L05aTzR0NXFSWnppQmpKNkhMYWQrYzNvOFdxQ280?=
 =?utf-8?B?WEhWTjQ1RmR1cWNFS245aGtZdG5KdXhOOS95enhkMjlDM0NKT0JGdjBlR1Jr?=
 =?utf-8?B?eGt4d0VmUDBscjdJU0FDS0VtWXd5YUlkeGxYdHN0d1FrUVNnR3J0YjFzWlNC?=
 =?utf-8?B?UUhWZ0EyM2JDblJoVm5Pc01ha3Uyd090WEJHbENxT01lVU1xaHpPR1QwT2px?=
 =?utf-8?B?VnorNk9sTy9vODVWUldES2pJNXhNVXgrSkNjbXdRaXlSTDcrOTBrNXFycTZL?=
 =?utf-8?B?UmJ4YWVpV0F4UURsK242L1dXZEt0LzgyYW80Nk9ob1BTUjNsUStuVjBiUUtV?=
 =?utf-8?B?b3kyY1NoZXFQRHY4ZWFMaEVTTTBadEhxR0daYk5zZDBPK0hNSVYzQ0xNMGpZ?=
 =?utf-8?B?RVZWMHp0Z2gwSVpOVFFhVGxtNHl6RXJ4OU9FbWV3WURTcFlMMk4zN3o0eStI?=
 =?utf-8?B?RzRUK2tEYUNhRzFCYzJlM1RuMXowcXdlOWdUUTg1c1FESGc5MzNBMTB2Y1Uy?=
 =?utf-8?B?RkJxQ2h2R05IQld5anhveTZCT2gxVmJybis1MHlvQTJoQ3dxWG1iSFlrcmRK?=
 =?utf-8?B?ZXk0SXBldTN0WlMxWjJWK0FqS0pTdExNNDFUMHUwWE1LZUF3VUV3b2NyUllH?=
 =?utf-8?B?QldDU3F3SHU4dXB2em9rWTdQZkppcDRwbkVodUhHUE82VnJjMXJGVzRLRzhS?=
 =?utf-8?B?Zm9QSDRBdkJqT0liMXNzdWUwVG5WcjIzaUFieUlJdjdnN1JGNXQ1UWV6Rk9K?=
 =?utf-8?B?aHZlZkxUL1RFckU0aE5zM1d3WVVvUzE1eHBFSzVmNkFKUjY4UVJDNUxQU29J?=
 =?utf-8?B?UU9IOUU1blJHOHZNNFYvc21NNXpEL0tjRitOUDZYbktqdnFVR2cxM2IvSUpm?=
 =?utf-8?B?b0JLZHFtRThqUFBFWGFLUUlLcGRxWTI2RXN5bW9mYmt0VDhQZzdMWWFDcmJH?=
 =?utf-8?B?N3JkQXhpSTB0aFhwRnFzNXFrOGZxQWZhaXgxNEw1azhhMGhGbGFXSlBrQ2N3?=
 =?utf-8?B?T284QXJ2Sm5OVzhJaEFMalVoaVloRWE4NEU4R2Y0ZFpXK2phRVRwSlVCY0lS?=
 =?utf-8?B?cDdxaHhxQ25xakhoZ2NzWjBWanZ3K3NNT3p0Z241YXp3QzlteXBYQmJsc2Vr?=
 =?utf-8?B?ckI1VnJNQTZDNXNET0srNlVkSzVyQXA0REJDTWczTWZOcDJjSno4K0FSdXZC?=
 =?utf-8?B?dUZOT25lRlFuOVErOXFxeVdxR1RxY3kvTzYyMHZEbE5zS2IzTEZvbUNlbmxQ?=
 =?utf-8?B?NjdsWVRIRXRFVWdnWWxOTjlDRHBiWlU0anRKYWN6ZnFhemQxMjE4VWs0eWpY?=
 =?utf-8?B?ek9lMnFRTGM3ajlndXoxT3JGY1ppODVGaHFjVDRHeFJYeC8zZmVqWVRINXZ3?=
 =?utf-8?B?SzlKY1Fmc0lQSSt3U0N3RWozV2VHMHZiaUkxVmlCeURDamRlUVBzQyttUURr?=
 =?utf-8?B?ekNGaHhEV0E0YVdCaVJIVlViNUdXTW9LMVVYR2RSU2hxTFdVMUF6ZlpzcTh5?=
 =?utf-8?B?NW1VMFVYUk9uYWdpUy9XcWZQNysrYmlGRnJPeVh2cVpqOFR3cTJoQWl6MnJ0?=
 =?utf-8?B?aWNKOTlaMHNWVmIxVytQTUozTXdZd0VDTU9aSzF1K2tEa0JUSm1tb3VTQTdR?=
 =?utf-8?B?R3U5Z3lEb2tJWVlZQzg0bEk1S21LRVcyY1lvMHJ3ckQ2YUhZcFZWbXYxMEFy?=
 =?utf-8?B?L2MzbnhRUFBQbUpNYUpXUis4YVkxcUd2bGVhK1Z4djhKdFZ0RE1iL05HR3NM?=
 =?utf-8?B?VFFQSUhFdkxucUJJNmpKcFVQTWY1dCtUZTBWRFBhcjN1TmNoZEg1NGV1KzdI?=
 =?utf-8?Q?6RZh78?=
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: 29 Apr 2025 13:22:40.7919
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 95986f0e-adc2-40d5-cde1-08dd8720eb0a
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:
	SA2PEPF00001505.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB8408

On Tue Apr 29, 2025 at 2:00 PM BST, Jan Beulich wrote:
> On 29.04.2025 14:36, Alejandro Vallejo wrote:
>> Not very many changes here. Just:
>>=20
>> v5->v6:
>>   * Denis' suggestion to rename a few helpers to fdt_*
>>   * Change to last patch to only pass CDF_iommu to domains with
>>     DOMAIN_CAPS_HARDWARE.
>>=20
>> I _think_ this addresses all feedback I got so far and I don't expect
>> anything major remaining before commit.
>
> That's optimistic. I for one didn't even get around looking at v5.

What can I say? I refill my glass often enough for it never to be half
empty :)

Jokes aside, I did cover most of your large-scope concerns by v5 and v6
isn't a dramatica change. I'm hopeful the bigger thorns ought to be gone
by now.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Tue Apr 29 13:37:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 13:37:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.972637.1360953 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9l9Q-0005fk-DG; Tue, 29 Apr 2025 13:37:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 972637.1360953; Tue, 29 Apr 2025 13:37: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 1u9l9Q-0005fd-94; Tue, 29 Apr 2025 13:37:32 +0000
Received: by outflank-mailman (input) for mailman id 972637;
 Tue, 29 Apr 2025 13:37: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=qXnC=XP=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u9l9P-0005fX-6H
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 13:37:31 +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 180546ba-24ff-11f0-9ffb-bf95429c2676;
 Tue, 29 Apr 2025 15:37:28 +0200 (CEST)
Received: by mail-ed1-x536.google.com with SMTP id
 4fb4d7f45d1cf-5f728aeedacso6775634a12.2
 for <xen-devel@lists.xenproject.org>; Tue, 29 Apr 2025 06:37:28 -0700 (PDT)
Received: from [10.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-ace6e41c6b1sm792909366b.14.2025.04.29.06.37.27
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 29 Apr 2025 06:37:27 -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: 180546ba-24ff-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745933848; x=1746538648; 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=zyQfqNSQSl/BRnAcsNhdDLGopnrJXni2NfGu26gWAXU=;
        b=VEDH4ea8E8470bFyw1GHOWFzShFrq90fsDHK8lMmL9r4M7TCQjVcbxjdvRAtC85V1A
         ksk56zcWAfTnsJVdOr1C4udsT1rrlUGiuUqYd6J82ui7e7G+37Y686KuwtuxQ4y2ECMg
         GxZhHjnm+dbpPF8mO2WtvAbuQo4gLZzsd2NO6gqvlSgeKguZpzauecE5JNsJhP0g6DgT
         YuaXElPD1tutmYdHODNdyM6unw1aa74DcykQL1W3Sh/QFPapxdJpPNHx190JL+8TB6p+
         9+6vk3SS4k74ipZPRTd97cNC37ZNZfhBkD0ixV/wi84Id1VhEGQjKSBYOfQw21cpT9PR
         X5JQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745933848; x=1746538648;
        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=zyQfqNSQSl/BRnAcsNhdDLGopnrJXni2NfGu26gWAXU=;
        b=ia9FnZbKjYQgS/D0CEUQAeXvcN9M6FJINgIrM6iMUPZqkxdhuPxTRQs8tT5JbGs6mH
         fYhA3StF63eWYMOR6ED/akf8abbA0ELlXZgmLAgMmRfkNjFEoOAsf5OOZ333EahqbaXd
         6RMCY9qFKKDYtf79CvymMkzzKqUrVQsIy5PweAv629w+IDeuYKFltrluQuc/k4ycFQOi
         nx7RYNNeiZzxtQkwDCcxX+CDvoWigru0/9nak+2+LQnX2Xg3/6A1Ho/AJSgT6LQ5tme+
         eKGFogF77muk2W3N1JWg8phdVgKjftNy8KRTJ664gtJ/SfPnUPxmJeWcf9czS2biQDQj
         iejw==
X-Gm-Message-State: AOJu0YxdzIZ5ELYuXuiSpfLTgWRALDr5oJ9uxxqyVCJLqmU60+uUJ39W
	t1zepHt7G69n5xgIwi7ciIkqcllb9ykgdODwu0aB1vv+s0d7/rrQAi25WBMOFZhisS6VzE3Z7sQ
	=
X-Gm-Gg: ASbGncvn2ZeAAD5QvZr0HHGpR3MIEhafkLVC2lyogHfygMhUy3MRlbgJWhw0dk9z6JH
	G2gkoHZmAOMzmRH0Bc/U3G05liY2LciuPm97IldoWLdkbzo8aNR7Hicbfrw9L82EID3cDV8XJ6A
	0zMrkaAHVqXV3u2kHuOBvy5prneauUJ2krstEjNTw+ODld7Rd9Q02k6iV60RpdBA9RQKfuV3Kxj
	rGlK82ks2bK4tgOrsPNAToqeyZfCGiZhr9q2DWjcwKabqh1P9fcMccJ6nZD1aEMqjo7poqXiRnk
	i3VQT89DHkZuCJb0WeFceR0BnAG/0RkpHc0yQCUftsONprpTh+ttE+7xRY9aKjVILSmwVBLzjnv
	ktXB3zubdS5jWVa2YZrQ85OIDlv178yVdsmZ0
X-Google-Smtp-Source: AGHT+IEXoRl/8YHd2sTFZk+w1D5JuCQ5zfzvWIdxGhcUcMbdUHpledAU/QVUMt81YGWa0g1CoMzYTw==
X-Received: by 2002:a17:907:7208:b0:acb:1b87:5399 with SMTP id a640c23a62f3a-acec4eae2b6mr368964166b.43.1745933848223;
        Tue, 29 Apr 2025 06:37:28 -0700 (PDT)
Message-ID: <17eddb04-f4ce-4d90-8619-1351eb810117@suse.com>
Date: Tue, 29 Apr 2025 15:37:26 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH] cpufreq: don't leave stale statistics pointer
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+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

Error paths of cpufreq_statistic_init() correctly free the base
structure pointer, but the per-CPU variable would still hold it, mis-
guiding e.g. cpufreq_statistic_update(). Defer installing of the pointer
there until the structure was fully populated.

Fixes: 755af07edba1 ("x86/cpufreq: don't use static array for large per-CPU data structures")
Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/xen/drivers/cpufreq/utility.c
+++ b/xen/drivers/cpufreq/utility.c
@@ -113,7 +113,6 @@ int cpufreq_statistic_init(unsigned int
         spin_unlock(cpufreq_statistic_lock);
         return -ENOMEM;
     }
-    per_cpu(cpufreq_statistic_data, cpu) = pxpt;
 
     pxpt->u.trans_pt = xzalloc_array(uint64_t, count * count);
     if (!pxpt->u.trans_pt) {
@@ -139,6 +138,8 @@ int cpufreq_statistic_init(unsigned int
     pxpt->prev_state_wall = NOW();
     pxpt->prev_idle_wall = get_cpu_idle_time(cpu);
 
+    per_cpu(cpufreq_statistic_data, cpu) = pxpt;
+
     spin_unlock(cpufreq_statistic_lock);
 
     return 0;


From xen-devel-bounces@lists.xenproject.org Tue Apr 29 13:38:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 13:38:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.972646.1360962 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9lAY-0006Aw-Kt; Tue, 29 Apr 2025 13:38:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 972646.1360962; Tue, 29 Apr 2025 13:38: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 1u9lAY-0006Ap-Hy; Tue, 29 Apr 2025 13:38:42 +0000
Received: by outflank-mailman (input) for mailman id 972646;
 Tue, 29 Apr 2025 13:38: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=qXnC=XP=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u9lAW-0006Ah-Qn
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 13:38:40 +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 42751db8-24ff-11f0-9eb4-5ba50f476ded;
 Tue, 29 Apr 2025 15:38:40 +0200 (CEST)
Received: by mail-ed1-x536.google.com with SMTP id
 4fb4d7f45d1cf-5f4d6d6aaabso9680507a12.2
 for <xen-devel@lists.xenproject.org>; Tue, 29 Apr 2025 06:38:40 -0700 (PDT)
Received: from [10.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-5f7035464f1sm7424524a12.62.2025.04.29.06.38.38
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 29 Apr 2025 06:38:38 -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: 42751db8-24ff-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745933919; x=1746538719; 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=dNs7ZTeQWTzOD/l5UZsnMJCFN6To8IIhoeLjabp9pTE=;
        b=XPMQrhzswyMw7Evp3zI+Ob7Mul5V9+ymo/qdUP5/exgy9Ic+tfNpFwonUdiMIru9O8
         xChJdFGdIyDAI4EoIS/RbiwKR8b1KPMeExU4cAV2lR+qrADGlCPECKWadg09I8fqbdwz
         TjvsNE2EfVlqAPjd6JKtVZ5kS7c4Hnl0Q43AVCSj8bvyRRs9NqH87zC8l4VE7CQhJAPM
         0sLcnxmb0e6/nhW9zNibqZYbvQClobPnb4Cp6aHawzW1tU4iBmZi9dyzFXZ/8i7MX+6A
         7nlwjPEDtqOokvCu8jjnQ+grCRW7BGf5jalcDTFqYN3KVE5zAOOF5kI819+o2tFWS8c5
         3OeA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745933919; x=1746538719;
        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=dNs7ZTeQWTzOD/l5UZsnMJCFN6To8IIhoeLjabp9pTE=;
        b=k/mOdlxXSS260rtU22EHtuPYTiBnfNNMOY6hnqu7Zo+lKfAnC208bfism3Jfz4+zqR
         YHlODxuyOVATxtsMAsM3fF/Wq/uNAsnUpjyIJubyx0PotC+FozBScaDkOO3tuWw0U9oN
         BfrwcaQ3nqZhvt8VzFZIZY/C2S0uuZlcuDcoMaxWxXiTpjXQF8h3eaaMRq3wE4ualtST
         EbHcp9Ar52CZxDKnEOlLFwdJjdiu3YLE6EbhUIj74bPSOA43EbLelH0PAIqgjrlHLGuD
         GUrr3o4nY4MRwOkceay11MB69vtDKUPeA2wb1tUlnYThuEggqeDXkDoRn2DV6Gl7Q0YL
         QVFw==
X-Gm-Message-State: AOJu0Yz8LmWmzWfam7kOqHGtnE5OFjhSftTBRqGM9v9ePuoZ2r065Zzd
	2psCB1VjYcWrATNuqQ4VoKomY55b9+oujK3JF7UYwXRPWKmS43LT0vUu/JyLAzVxC0opkolGETw
	=
X-Gm-Gg: ASbGnctaxfAnkszHuax1t7v6vGPR3rFuk3lj1npP6XajrPq4IBId7BEdf16EK1y6baF
	oaodFuyd02byHqo7Eqm+otVJusk0ZhH1MSRBRp/Vn0z8li7GohWX8x91LqpzDmGsjvVP19RGVsg
	gW6jDI+Qwd4B6treVdMJ0dtq4zEK3SqXAOJCXcfEeklIXf3TmiN7T/gyQimQqP2fn5RptCcb3mx
	jNxRpWYkvl6jjsWM7w2sK1q4VP3SKwHRRqgW+Is/a2WCNPu7MG3nFPJPm7w+jjpf5wXfIHGFnQf
	HrwYA938O1Ruzp8hNWSYKaYcc4014nFN2iQ3qa9LZEm4DEOA4FbIaak4hEg1x9e3j4XdwpOj1uL
	dPeO+xEbxYK/KoD3ZuNe9h2go+FPdaT7uMM7h
X-Google-Smtp-Source: AGHT+IEQ7+XLOGgGcIF1niBfRTTFI6l4fmVWvoHiZTFdwJmU26D0O5EY//ZNhOT43PIZ+aU+GM7qEQ==
X-Received: by 2002:a05:6402:234d:b0:5f8:36b2:dc1e with SMTP id 4fb4d7f45d1cf-5f83889e796mr3412022a12.33.1745933918952;
        Tue, 29 Apr 2025 06:38:38 -0700 (PDT)
Message-ID: <4054b780-2b42-4d56-ba3f-d56392c8ab4a@suse.com>
Date: Tue, 29 Apr 2025 15:38:37 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH] cpufreq: use existing local var in cpufreq_statistic_init()
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+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

..., which actually also helps readability (imo).

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

--- a/xen/drivers/cpufreq/utility.c
+++ b/xen/drivers/cpufreq/utility.c
@@ -130,10 +130,10 @@ int cpufreq_statistic_init(unsigned int
         return -ENOMEM;
     }
 
-    pxpt->u.total = pmpt->perf.state_count;
-    pxpt->u.usable = pmpt->perf.state_count - pmpt->perf.platform_limit;
+    pxpt->u.total = count;
+    pxpt->u.usable = count - pmpt->perf.platform_limit;
 
-    for (i=0; i < pmpt->perf.state_count; i++)
+    for ( i = 0; i < count; i++ )
         pxpt->u.pt[i].freq = pmpt->perf.states[i].core_frequency;
 
     pxpt->prev_state_wall = NOW();


From xen-devel-bounces@lists.xenproject.org Tue Apr 29 13:49:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 13:49:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.972663.1360973 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9lLI-0008ND-Ja; Tue, 29 Apr 2025 13:49:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 972663.1360973; Tue, 29 Apr 2025 13:49: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 1u9lLI-0008N6-GU; Tue, 29 Apr 2025 13:49:48 +0000
Received: by outflank-mailman (input) for mailman id 972663;
 Tue, 29 Apr 2025 13:49: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=yPhw=XP=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u9lLH-0008N0-TS
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 13:49:47 +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 cf5c6c1c-2500-11f0-9eb4-5ba50f476ded;
 Tue, 29 Apr 2025 15:49:46 +0200 (CEST)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-43cfdc2c8c9so31144485e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 29 Apr 2025 06:49:46 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4409d2a1dc3sm187956305e9.13.2025.04.29.06.49.44
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 29 Apr 2025 06:49: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: cf5c6c1c-2500-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745934585; x=1746539385; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=fHr3kWZDvYDn+wGyjsQpXgEi8ultNXxdbwxO4yNBoi8=;
        b=g3tiAZu1qCSaYTB/7ENxOxXtFjWF/x/5aROS8H5Jo94tx6PgOm+3Qg78Xoq+JV7xFz
         fr9lGpRzXruv/5gkU821tOnZdHWmPSapmxs5vk/TctB4jIJPzT8qNS0dUKz/8FziPTUA
         rCJMnCg2ikv/SgnTPvr015LuMJSfe3mVs8R+M=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745934585; x=1746539385;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=fHr3kWZDvYDn+wGyjsQpXgEi8ultNXxdbwxO4yNBoi8=;
        b=RdmNx3xftx2wfM/IsB0R7kOvOT/e+WxxAYOaU11jd8lfwqjeBJulv4Dx9UTY9NExFz
         HaGA55PaBWB3YsN8py7vRj7gTrwKCvJ7oyY3MhE9KzNNs0XsiAyU73tyXl/uyatn2WcW
         iZCLEghBRLMzAW0zRNTLX0j0DpZgPMe1dvngjUtCbXJOz+h5MvDOjeeYnlBHK4t/Ds6B
         kq32xZc6qvKS9gKXdaPFdpabdKOmj8zt8vzubmw1X7C680/Nahpko8U3TAj5QaXZws8H
         ZASnTgi97X9VteIoEHPMTEB99dIWE9b++E0/rP4HD7ScfS1TTH6RCCyugHPJsvjioX4r
         0b/w==
X-Forwarded-Encrypted: i=1; AJvYcCVwyYw2q30a23bGQdv5N3LclpP7q5iNLC4R2bJ7acsdelM69OZNLIdnpMYZkaKemx8JWzsUmTJLOjQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzpU4gvZ6YTHzYpV8v5pvd4pUa6LMwVuh4EuyyXfvhIYYvmPQ33
	78+vAzOXaqWN/Vp+QQAhhaup2X6tnpzxFm4pwsY6T0R0JMGMt48tGSF+WLoHmtg=
X-Gm-Gg: ASbGncuMBQmkdpynYfOsdFXnF7eWKSaJ0VDqTp3X8GnLn7ucvJgKD/Q37phaJlsP8hp
	fzNZ6ObWv+Ngh+mIp5lJMm4npfbvpF13s6ze84ckBdP1xP+4fEre01BQa73//L1DEQYQpPoSXFI
	4uTZVeJkaoK+O0NR4VBEeYvKLxDZu24kcUdeZwxVO/he/2TUDNGd1X2dYRrG67cTnKpEGMDoUsj
	ZK/nHwlvErvbFoGkj8j+uobennfhIzLpmq/qlbqICb/bRwFNugDFVUayBPxLJ4IdfRdrKN1bvcA
	RmgvPcD0f5eGt/4lkGJDh6QFY2i8V69gMqcvA9jesA2sWm+J9HtNTSAmyi8at0GyOnSUmOcoWEx
	oVP2ZVQ==
X-Google-Smtp-Source: AGHT+IGbhJwDN89kNonKyA6XemTWNEn8IaRN1hdVUHbV/7kAgNeJZMVqms+VqkAVJ8MxmGRdW59dgQ==
X-Received: by 2002:a05:600c:a207:b0:43c:fceb:91a with SMTP id 5b1f17b1804b1-441ad659435mr14088615e9.11.1745934585381;
        Tue, 29 Apr 2025 06:49:45 -0700 (PDT)
Message-ID: <6f9f9499-1dea-4963-9b00-41142259305c@citrix.com>
Date: Tue, 29 Apr 2025 14:49:44 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86: drop underscore-prefixed {maddr,virt} <=> page
 conversion macros
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: <09ac878a-fcbf-479a-9628-1cb08ff77a9e@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: <09ac878a-fcbf-479a-9628-1cb08ff77a9e@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 29/04/2025 9:54 am, Jan Beulich wrote:
> Unlike the ones converting to/from frame numbers, these don't have type-
> safe overrides, and they also can't gain any within our present type
> system. Unsurprisingly we also don't have any uses of the underscore-
> prefixed variants.
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Tue Apr 29 13:51:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 13:51:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.972676.1360982 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9lMZ-0001bg-Uu; Tue, 29 Apr 2025 13:51:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 972676.1360982; Tue, 29 Apr 2025 13:51: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 1u9lMZ-0001bZ-SN; Tue, 29 Apr 2025 13:51:07 +0000
Received: by outflank-mailman (input) for mailman id 972676;
 Tue, 29 Apr 2025 13:51: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=yPhw=XP=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u9lMZ-0001bT-3s
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 13:51:07 +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 ff514640-2500-11f0-9eb4-5ba50f476ded;
 Tue, 29 Apr 2025 15:51:06 +0200 (CEST)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-43690d4605dso46150355e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 29 Apr 2025 06:51:06 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-440a536a1e8sm159159465e9.28.2025.04.29.06.51.05
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 29 Apr 2025 06:51: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: ff514640-2500-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745934666; x=1746539466; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=D65MMR6FuaTv1Ek20UCMNNyQFPDGmFx1ZGmwNj4boSw=;
        b=hUXGx3/MyfOjoU7D29wW6SbR2+5pNqhY7rsWsQwmGg7DcRNMjMChvrHDVS6+qV00/T
         vmrDYqnIvEgtXoKry4Iq+iOyjkJMD3gAONN8y2Yj2PA7XDuZXR+QR6lz7DLrc8ehIr7s
         5xURteo7aKUicraT/9Kq21E6PVUm+fe8PqbAA=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745934666; x=1746539466;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=D65MMR6FuaTv1Ek20UCMNNyQFPDGmFx1ZGmwNj4boSw=;
        b=vk4UxKJZo61MPL9Rv/P4kwzz4vd3KyCDmDslNejRLkEfuxSZsNHD0alk94lwa4OFKC
         L9MDy0782NhegZuHF0MEJO8WwujNfnSKwLjK2Q8AeX5mdRtWhKsxK1npuyC70abY/1b/
         kxX3Vs02VARHJ+y6jpiqAG2n6zCPTqrC9gha0CE6hFMbXnrYEmWpTlJq/i3vRxGlnzjW
         +97vNNcOu0UWreDKMPYgqbVboRpCFSozISYe+zWv8inj7Wvoe/h3JFbdSGLfoKyatQTM
         JaajKAS1ZqQ0DJFTrqa9A296EJCojLPmAGSBY7d/tkBEVjeu1xTx32rodBsPJbGYGE2z
         Szig==
X-Forwarded-Encrypted: i=1; AJvYcCXttm7PzR2rR5zA6tMeHn7M4UYZY0K4GMNfQF/4uudBKNfNdxu1G0cIJGDrkKy1H2XhPoAsAApg114=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwaOENt2+3eIQPulm6FJyvYdsWNuPZKySstmI/m6qV04i5QTXNq
	+fGa7yKxZ2RRLLdWOm+xFcr2NY95SHX/yBQFBfls07dqGJ2djHMaNWuCwCF2KAc=
X-Gm-Gg: ASbGncsD81OWQAUAbLVRzp93I4NsyPz8PKDnBUVNYRaaiJ3/L5+BmZ9+qRn4WDn+OxL
	zZOkKhTeIOG7s2iTRNOf3JeM0kuhY81DTfpYlWBIR6L5egHuYbfrOp2UJruHchRCJtOFd8hniux
	jCjYE0+MtFUE7cFpWRnLUYFHM4cMiHtZqXV3sPwmDeHmfCM00eb2ky+pvYacR0kVYcK4DK8hCkX
	FjTy0NjjlYimqOMql6anVVY368AuYLujIbGkVDZsI2FRP7HNK3n9gEXjzxa7J3KdYAZAF0prcHJ
	ksVD2hc6EtGFufthSshZbWwrMwvGgnxHp38xOCNBjuh5lM+Emsrba9ojcs8N3Uu+NzgMBvR9y5A
	joVfFsA==
X-Google-Smtp-Source: AGHT+IF2vGYD0AceYoOk9PAQM0KK95BMXZAq6R/mGGhlVKiGCIULkBH/bpVXQYgm5d3XLeNvQIdPQw==
X-Received: by 2002:a05:6000:4029:b0:3a0:8298:143d with SMTP id ffacd0b85a97d-3a08298145emr7382437f8f.13.1745934665814;
        Tue, 29 Apr 2025 06:51:05 -0700 (PDT)
Message-ID: <1bcebbb3-0b42-4a70-a5b2-69b41e55e51e@citrix.com>
Date: Tue, 29 Apr 2025 14:51:04 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] cpufreq: don't leave stale statistics pointer
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>, Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <17eddb04-f4ce-4d90-8619-1351eb810117@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: <17eddb04-f4ce-4d90-8619-1351eb810117@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 29/04/2025 2:37 pm, Jan Beulich wrote:
> Error paths of cpufreq_statistic_init() correctly free the base
> structure pointer, but the per-CPU variable would still hold it, mis-
> guiding e.g. cpufreq_statistic_update(). Defer installing of the pointer
> there until the structure was fully populated.
>
> Fixes: 755af07edba1 ("x86/cpufreq: don't use static array for large per-CPU data structures")
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Tue Apr 29 13:51:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 13:51:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.972684.1360992 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9lNM-0002R1-6z; Tue, 29 Apr 2025 13:51:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 972684.1360992; Tue, 29 Apr 2025 13:51: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 1u9lNM-0002Qu-4B; Tue, 29 Apr 2025 13:51:56 +0000
Received: by outflank-mailman (input) for mailman id 972684;
 Tue, 29 Apr 2025 13: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=yPhw=XP=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u9lNK-0002Qg-M7
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 13:51:54 +0000
Received: from mail-wm1-x335.google.com (mail-wm1-x335.google.com
 [2a00:1450:4864:20::335])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1ae6c14c-2501-11f0-9ffb-bf95429c2676;
 Tue, 29 Apr 2025 15:51:52 +0200 (CEST)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-43cf0d787eeso68482165e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 29 Apr 2025 06:51:52 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4409d2d8842sm189068455e9.31.2025.04.29.06.51.51
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 29 Apr 2025 06:51: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: 1ae6c14c-2501-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745934712; x=1746539512; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Y2/y6+2INwKNSQJaEbtVTz5eKAdaGP+Eyy7WDmS1Iqg=;
        b=RsAQ6ssaXb3qyRnlbK0DbzDMOTXL7mBc0SGgx0HPPBz87/VAy94ac+35EBPR+QwXp4
         zYN7EkNfcYowYx10vQ/RGGvtRgNeaHaZCwgt27lBCfJ1LU/kt5NIplASopkX+eUOLJ5a
         2mhi4xyfNQiIU3fQxnStWL0ciYVjdIeYbfvx0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745934712; x=1746539512;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Y2/y6+2INwKNSQJaEbtVTz5eKAdaGP+Eyy7WDmS1Iqg=;
        b=OfkW+fmCAx8fTgRCeKzSuT/RpkNhiuIqdtWDNLIhoS6ddKqzdIFxfSEJZJTWxl64wd
         XFkRvmGsByKj8M/OW1VvfN+Ik5qRZd+21mA80Kfj9fvfrxriGnp7qskFS9rrh7+awXwV
         7lRzr9mF0YV8qZ9F7TAmjO32+WXmvEwro9gfb3ymjwNriFM9B5Vl0b3HrzUhU4n7cfib
         OhH+TTftFJeuJ8yh3/3jco6iGRyWMl6iAJlXjSGsSptcFCdKGLY8Op7gEpr84XE+wWVY
         Qqydgr/eoHaAOtgZxGf9+4l2I8ImnP2xaAVMfBycmcZNVihGctXtD/bs2t4uCbo56I2L
         N9Zg==
X-Forwarded-Encrypted: i=1; AJvYcCUlFYKfJ8Er940Pv9703qeHmFSSzCf6FdkRlrG1CHG9GRVxE6NtOklx44Vh83gns2Ne32+6avxTQ8M=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxFMklkvEaJ7FKLVPKJL4rK+OzGkzGFKZXuh8rdQ3zSETDj2n01
	DBiIyy+LtSxwLDm/FARwcCVqO1WzkwyR8wFSRZk5QUu+LZnAQr+fujWfJ04bUjWrj9VVw7AFhWQ
	j
X-Gm-Gg: ASbGncvRoVqzgg5cgkBgBJjoCqd2CqMWOFPPUZYnKkl10i2U//7CMJbUuhBTCZDQPWs
	/O/ldKkFBOD5Lr5M/JxHnFVphA0hJs9xeUTirNENnsnRPwLjFI3emtoRZ6J9P9SMJxFdBscGIzW
	3vbtr2GT9avAirBKs+fTmo7a+cS+D96gCURpbP5Elffng9ulQ0HAyr9uxZB/Olyos3w7zmFJmm3
	W+EJbGt4axPZOoTVnxWLSvAHvuDhzaCkpqBVPW+BywHUP3yHxgOBLwVBsZHFf0G9Ox/PqqBsUIO
	YEI7VBVVvvD4TWV73wSrKZTzC9aImijxuzcLU52oK9BzdFoGWHClHnKODPYGbXyarKmX5kj+FcF
	t0n8XPg==
X-Google-Smtp-Source: AGHT+IFE9u+uIgHB/+4VO4+ms62KFS3vDeYHSXIH89ZJgchqt7zf9n6D7HsxXTdzCLmrmF5VYA/9iw==
X-Received: by 2002:a05:600c:3b0a:b0:43c:f63c:babb with SMTP id 5b1f17b1804b1-441ac84b420mr28506545e9.1.1745934712130;
        Tue, 29 Apr 2025 06:51:52 -0700 (PDT)
Message-ID: <89c5128d-173a-4c54-8837-f4a23c7b5fb0@citrix.com>
Date: Tue, 29 Apr 2025 14:51:51 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] cpufreq: use existing local var in
 cpufreq_statistic_init()
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>, Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <4054b780-2b42-4d56-ba3f-d56392c8ab4a@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: <4054b780-2b42-4d56-ba3f-d56392c8ab4a@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 29/04/2025 2:38 pm, Jan Beulich wrote:
> ..., which actually also helps readability (imo).
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Tue Apr 29 13:54:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 13:54:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.972699.1361002 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9lPW-0003B3-IO; Tue, 29 Apr 2025 13:54:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 972699.1361002; Tue, 29 Apr 2025 13:54: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 1u9lPW-0003Aw-FZ; Tue, 29 Apr 2025 13:54:10 +0000
Received: by outflank-mailman (input) for mailman id 972699;
 Tue, 29 Apr 2025 13:54: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=qXnC=XP=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u9lPV-0003Aq-7t
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 13:54: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 6b92000e-2501-11f0-9eb4-5ba50f476ded;
 Tue, 29 Apr 2025 15:54:08 +0200 (CEST)
Received: by mail-ej1-x62d.google.com with SMTP id
 a640c23a62f3a-ac2a81e41e3so1079878466b.1
 for <xen-devel@lists.xenproject.org>; Tue, 29 Apr 2025 06:54:07 -0700 (PDT)
Received: from [10.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-ace6ed6affesm781606266b.130.2025.04.29.06.54.06
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 29 Apr 2025 06:54: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: 6b92000e-2501-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745934847; x=1746539647; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Jym2KC8L4FuBx1GFrNl/3YF2Ljt7pmQWFYO6FxDZRyU=;
        b=RrrX8gr+VxbsA9d5Uko8aeW4LPlGizxM3myqu+wvlcMqijby1exr5tE7AtRfi9vSvL
         1hjNJGHDVsrre6WZHYfmnKitt/1P+w3yTWCjwrdwifoMV2v6938tB+O8kDc4d30wT8SD
         D8MRWfFNezPoWlHZ1jNWqs+wE5imkE1Wi7go34Z8ecku/PywELjHrBwJtFe81w67wFGU
         dWg+4hQnQv0gMmxkqPl6Rb9o4QgX8qhZyKSGMKNvybVNdV09ycHiOyyr1gSwAVu1IrHQ
         Bxx9T3o9/OzBiXdRQeMYGx1k5aALIKvKC9NEZ8XPL2VPMmAfVc7m5v6DeUqTdXzGOIrK
         pCHw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745934847; x=1746539647;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Jym2KC8L4FuBx1GFrNl/3YF2Ljt7pmQWFYO6FxDZRyU=;
        b=oqpGMHf9gKXlbRBQCBRmamUeDoY/jfhYJSPmq7/cLYd6pg8XBAt+gkAgj7qGbkra0c
         JlQPJ0K0TWruO7f6dEorxsQUGJzZaJDwhtu0/U7scWibRg0RSngL3sm/wkyGyZXczofi
         TiGUR2oVJ7fVYNHxP4wD4r3GDCAkjWzSEpnptHHMusj/k+Uo2cbvc3PHSsZAWGEAZ0gq
         QjLaZk+Gom3xBZvQ8EpxfrjK+woElIUSpcD6fksEJWBoQ52OCdkG2SFetNBaXCz6Cl7G
         gI4/IRavAFc2FrHvI6yeYXmtbUfoNYB+KLFWjCTEe+Oombp/81vAhBD94zFUaepBClgm
         vFug==
X-Forwarded-Encrypted: i=1; AJvYcCU2QCh+8n3tPANmfGxFbhFTvdf/zdsHY9ATZumrHhEX+Jkwp+T90YJZ9hhOmgY6JgxzWOC5sEW8QiE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YygphQJqbmpB5IUaxjynYvrnlrMtNeJ669AyQm8JSLOW7Jwu4MQ
	hrKKPxfLW7ysTIs+8DEW1FU0ClTsVIddz8uzkMuh2oWE239gbC1bCuezMBqrug==
X-Gm-Gg: ASbGnctWKT/H9B7FI4atQppdxoUqGTh7XtECge4xW3CI/nIXWx0Q0CM+t/tAZpU5l5I
	lcWSOWLJCRULHhabMPoojXTCUwYhl6IfcNh7VPQlJkvbreh7HU+0V40wqw5e5d5+hwzaQeaOlkS
	ikgdgaatnJHlttx4TjE9ivxpZ3upLSxoXy/CBGo27qei7NZqMJwt7E2DzTqDro6FATzJ6GHshki
	G1aMdA3L4/ijn8Ijo5BIGth04lWjP2aQyPvzbeLcMsD/aDUps9oCWUdZuk7P0eHst4CODXxVxsa
	ewgd8ttM9n34gl8goR5NMpaDozYtR701Yca33paTpemUdIgRNHJOywuyQHrpwTHf9eblo0kv1LT
	mf98YaQTPx4E7MfEyqUKqUXE1+w==
X-Google-Smtp-Source: AGHT+IHdNW4lraAV6sHJxyoCDu+JVjpAP0bv6o4+W5N0SB8CGH/7R6sGj3UbSoI6C3AfhlCr7LrdfQ==
X-Received: by 2002:a17:907:72d3:b0:ac8:1cf7:7aa7 with SMTP id a640c23a62f3a-acec84d2cebmr264185166b.15.1745934847412;
        Tue, 29 Apr 2025 06:54:07 -0700 (PDT)
Message-ID: <4332c290-f67e-425e-bdac-20bff38c288d@suse.com>
Date: Tue, 29 Apr 2025 15:54:05 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 08/15] xen/amd: introduce amd_process_freq() to get
 processor frequency
To: Penny Zheng <Penny.Zheng@amd.com>
Cc: ray.huang@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: <20250414074056.3696888-1-Penny.Zheng@amd.com>
 <20250414074056.3696888-9-Penny.Zheng@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20250414074056.3696888-9-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 14.04.2025 09:40, Penny Zheng wrote:
> --- a/xen/arch/x86/cpu/amd.c
> +++ b/xen/arch/x86/cpu/amd.c
> @@ -57,7 +57,6 @@ bool __initdata amd_virt_spec_ctrl;
>  static bool __read_mostly fam17_c6_disabled;
>  
>  static uint64_t attr_const amd_parse_freq(unsigned char c, uint64_t value);
> -#define INVAL_FREQ_MHZ  ~(uint64_t)0
>  
>  static inline int rdmsr_amd_safe(unsigned int msr, unsigned int *lo,
>  				 unsigned int *hi)
> @@ -596,14 +595,13 @@ static uint64_t amd_parse_freq(unsigned char c, uint64_t value)
>  	return freq;
>  }
>  
> -void amd_log_freq(const struct cpuinfo_x86 *c)
> +void amd_process_freq(const struct cpuinfo_x86 *c,

Misra demands that functions only used in a single CU be static.

> +		      uint64_t *low_mhz, uint64_t *nom_mhz, uint64_t *hi_mhz)

See comments on patch 07 as to types used here.

> @@ -684,20 +682,21 @@ void amd_log_freq(const struct cpuinfo_x86 *c)
>  
>  	if (idx && idx < h &&
>  	    !rdmsr_safe(0xC0010064 + idx, val) && (val >> 63) &&
> -	    !rdmsr_safe(0xC0010064, hi) && (hi >> 63))
> -		printk("CPU%u: %lu (%lu ... %lu) MHz\n",
> -		       smp_processor_id(),
> -		       amd_parse_freq(c->x86, val),
> -		       amd_parse_freq(c->x86, lo),
> -		       amd_parse_freq(c->x86, hi));
> -	else if (h && !rdmsr_safe(0xC0010064, hi) && (hi >> 63))
> -		printk("CPU%u: %lu ... %lu MHz\n",
> -		       smp_processor_id(),
> -		       amd_parse_freq(c->x86, lo),
> -		       amd_parse_freq(c->x86, hi));
> -	else
> -		printk("CPU%u: %lu MHz\n", smp_processor_id(),
> -		       amd_parse_freq(c->x86, lo));
> +	    !rdmsr_safe(0xC0010064, hi) && (hi >> 63)) {
> +		if (nom_mhz)
> +			*nom_mhz = amd_parse_freq(c->x86, val);
> +		if (low_mhz)
> +			*low_mhz = amd_parse_freq(c->x86, lo);
> +		if (hi_mhz)
> +			*hi_mhz = amd_parse_freq(c->x86, hi);
> +	} else if (h && !rdmsr_safe(0xC0010064, hi) && (hi >> 63)) {
> +		if (low_mhz)
> +			*low_mhz = amd_parse_freq(c->x86, lo);
> +		if (hi_mhz)
> +			*hi_mhz = amd_parse_freq(c->x86, hi);
> +	} else
> +		if (low_mhz)

Why does this "else if()" extend across two lines?

> @@ -708,6 +707,29 @@ void cf_check early_init_amd(struct cpuinfo_x86 *c)
>  	ctxt_switch_levelling(NULL);
>  }
>  
> +void amd_log_freq(const struct cpuinfo_x86 *c)
> +{
> +	uint64_t low_mhz, nom_mhz, hi_mhz;
> +
> +	if (c != &boot_cpu_data &&
> +	    (!opt_cpu_info || (c->apicid & (c->x86_num_siblings - 1))))
> +		return;
> +
> +	low_mhz = nom_mhz = hi_mhz = INVAL_FREQ_MHZ;
> +	amd_process_freq(c, &low_mhz, &nom_mhz, &hi_mhz);
> +
> +	if (low_mhz != INVAL_FREQ_MHZ && nom_mhz != INVAL_FREQ_MHZ &&
> +	    hi_mhz != INVAL_FREQ_MHZ)
> +		printk("CPU%u: %lu (%lu ... %lu) MHz\n",
> +		       smp_processor_id(),
> +		       low_mhz, nom_mhz, hi_mhz);

This doesn't match the original order of frequencies logged.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 29 14:29:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 14:29:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.972719.1361029 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9lxc-0000JG-A7; Tue, 29 Apr 2025 14:29:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 972719.1361029; Tue, 29 Apr 2025 14: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 1u9lxc-0000J9-7E; Tue, 29 Apr 2025 14:29:24 +0000
Received: by outflank-mailman (input) for mailman id 972719;
 Tue, 29 Apr 2025 14: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=qXnC=XP=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u9lxZ-0000J3-WD
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 14:29: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 5611eaec-2506-11f0-9eb4-5ba50f476ded;
 Tue, 29 Apr 2025 16:29:19 +0200 (CEST)
Received: by mail-ed1-x535.google.com with SMTP id
 4fb4d7f45d1cf-5e5dce099f4so7986974a12.1
 for <xen-devel@lists.xenproject.org>; Tue, 29 Apr 2025 07:29:19 -0700 (PDT)
Received: from [10.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-5f703545234sm7442165a12.56.2025.04.29.07.29.16
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 29 Apr 2025 07:29: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: 5611eaec-2506-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745936959; x=1746541759; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=HQPUizxCMVjSZ4abLaeJiBG5OpeAbCnuqKDvdml9ALc=;
        b=F5FPgW8J5ehp8Ty1K6QzDGGEmFA2+Q8x9LjKgBjyJcFzeUhIS4+INxZd2o02nFEuS7
         RwMUG1rKZPDF0smhRJRKrle/Kxo1Up+WP062KOpH8Ctz9XFwUdmh+d/RdJgcFVZOyuy/
         k68xldpdPnKGqQk+2lWxNJjlFfB83g6vzYwwMssXRZwyb1/KEzooHNchIZqomn+yZ1Ut
         PxMcDBk09zYHRdMwqjbteqPXN/brtp+S038+rFtmnAjJ5L2zDwz/NYRTlY6SrgKVnL+4
         uBg/Bs7iXxDfRdUNl3llM3fEN3O9VjfGFTyKTjXelu6OUcGO/jyzOSdwITpaBBK76vs+
         YHOg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745936959; x=1746541759;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=HQPUizxCMVjSZ4abLaeJiBG5OpeAbCnuqKDvdml9ALc=;
        b=WtfE+GuJqYVAZqVN8maIy0ArSq54wqN2fJFkKxGxJZsdE9W/rcHlO/MeuncnK4hMzZ
         mZh88L5nuEUetId2VKaiIBA/3iBqes6FlqGjdRnzD76VrxydgFtL8dF/SyIGMuXDeOr9
         eCg+reY3ZJDIcu2jMwsOZNrMMXMlpHyhG6pjBO8F89hiOqAPDjXWZ+u8mkzkRg94XfOb
         XbNSTOigsLQbWs9x2Rc6GAxhNAHcJB5+wm89QNFJcUGwITaWeJZEUvIY0ufRrb1FXQya
         nQBDnUj/KnOn6D88oWeD/PF192Gd8k9xPmGWqHsq+v7CZ9iG27F9A6h00Os2iD1oVz/C
         KrUQ==
X-Forwarded-Encrypted: i=1; AJvYcCV2g4IanQBmrnGHgGpXiVB5oGGAV8ZBzaLId7p+cr5If5+6eA882Mysjf7MsVEIwm8IqXguuS4QGMo=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwuOg3f7y5pGz+QyEagPgAEvM1e9EzHSISJocpXpHtIU375N5Fw
	hQlefJJWHt0z1wUVd2OtpC1tHji2D8siZJyK/KI1FlMv9W7Yxl/+yFKFPJ3O5A==
X-Gm-Gg: ASbGncso0UntGg0MW3WCAAKEojrXmuMNP4XfU7wej0RAK7VORFISvqJzCCnfb0hCFUF
	5B3ZQy1SOD9uQ/oNrnWD8hon9/3r/ZIEg7VlQByQ0U8lco+SGpyypnFbDaBbM2BbC5Xhwm0i5r1
	BhLFzCN1swWEwApCF2nJasxHWwIp2WJyXwF7anOUFvye28MNK+cBwzCfSKw9Otl88MhX6PJvG+z
	OIT6RgE30Heqy9N2TbMXxTBhsQKsGrrcbE1yAfIcnxmPUUdwonrsUpJKNYfZGOWf/o/2XyBQEm0
	0e35be44ruvWTjGeZp+Jyej7yOlVh4kr+4pazgm1FyhHHNTnMo7Bwuc0raQn3aPQ58rmUcXLRxm
	fs15yrOL7+F78GwjjI1hlsr2j9g==
X-Google-Smtp-Source: AGHT+IERJ/VWgHDK6ezbJpk4gnuoV4wzVVibfZZxWKLKvs6KkaHQelnUCgFK+/OQGMoV2Zy3tX3Tww==
X-Received: by 2002:a05:6402:2745:b0:5e7:f707:d7c4 with SMTP id 4fb4d7f45d1cf-5f83889e257mr3215661a12.31.1745936958737;
        Tue, 29 Apr 2025 07:29:18 -0700 (PDT)
Message-ID: <448d6036-09ad-4505-800d-47606e8a3274@suse.com>
Date: Tue, 29 Apr 2025 16:29:16 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 09/15] xen/x86: introduce a new amd cppc driver for
 cpufreq scaling
To: Penny Zheng <Penny.Zheng@amd.com>
Cc: ray.huang@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: <20250414074056.3696888-1-Penny.Zheng@amd.com>
 <20250414074056.3696888-10-Penny.Zheng@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20250414074056.3696888-10-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 14.04.2025 09:40, Penny Zheng wrote:
> --- a/xen/arch/x86/acpi/cpufreq/amd-cppc.c
> +++ b/xen/arch/x86/acpi/cpufreq/amd-cppc.c
> @@ -14,7 +14,56 @@
>  #include <xen/domain.h>
>  #include <xen/init.h>
>  #include <xen/param.h>
> +#include <xen/percpu.h>
> +#include <xen/xvmalloc.h>
>  #include <acpi/cpufreq/cpufreq.h>
> +#include <asm/amd.h>
> +#include <asm/msr-index.h>
> +
> +#define amd_cppc_err(cpu, fmt, args...)                             \
> +    printk(XENLOG_ERR "AMD_CPPC: CPU%u error: " fmt, cpu, ## args)
> +#define amd_cppc_warn(cpu, fmt, args...)                            \
> +    printk(XENLOG_WARNING "AMD_CPPC: CPU%u warning: " fmt, cpu, ## args)
> +#define amd_cppc_verbose(cpu, fmt, args...)                         \
> +({                                                                  \
> +    if ( cpufreq_verbose )                                          \
> +        printk(XENLOG_DEBUG "AMD_CPPC: CPU%u " fmt, cpu, ## args);  \
> +})
> +
> +struct amd_cppc_drv_data
> +{
> +    const struct xen_processor_cppc *cppc_data;
> +    union {
> +        uint64_t raw;
> +        struct {
> +            unsigned int lowest_perf:8;
> +            unsigned int lowest_nonlinear_perf:8;
> +            unsigned int nominal_perf:8;
> +            unsigned int highest_perf:8;
> +            unsigned int :32;
> +        };
> +    } caps;
> +    union {
> +        uint64_t raw;
> +        struct {
> +            unsigned int max_perf:8;
> +            unsigned int min_perf:8;
> +            unsigned int des_perf:8;
> +            unsigned int epp:8;
> +            unsigned int :32;
> +        };
> +    } req;
> +
> +    int err;
> +};
> +
> +static DEFINE_PER_CPU_READ_MOSTLY(struct amd_cppc_drv_data *,
> +                                  amd_cppc_drv_data);
> +/*
> + * Core max frequency read from PstateDef as anchor point
> + * for freq-to-perf transition
> + */
> +static DEFINE_PER_CPU_READ_MOSTLY(uint64_t, amd_max_pxfreq_mhz);

Throughout here (and maybe also further down) - is the amd_ prefix really
needed everywhere? Even the cppc part of the identifiers seems excessive
in at least some of the cases.

For this last one, also once again see the type related comment on patch 07.

> @@ -51,10 +100,354 @@ int __init amd_cppc_cmdline_parse(const char *s, const char *e)
>      return 0;
>  }
>  
> +/*
> + * If CPPC lowest_freq and nominal_freq registers are exposed then we can
> + * use them to convert perf to freq and vice versa. The conversion is
> + * extrapolated as an linear function passing by the 2 points:
> + *  - (Low perf, Low freq)
> + *  - (Nominal perf, Nominal freq)
> + */
> +static int amd_cppc_khz_to_perf(const struct amd_cppc_drv_data *data,
> +                                unsigned int freq, uint8_t *perf)
> +{
> +    const struct xen_processor_cppc *cppc_data = data->cppc_data;
> +    uint64_t mul, div;
> +    int offset = 0, res;
> +
> +    if ( freq == (cppc_data->cpc.nominal_mhz * 1000) )

I'm pretty sure I commented on this before: The expression here _suggests_
that "freq" is in kHz, but that's not being made explicit anywhere.

> +    {
> +        *perf = data->caps.nominal_perf;
> +        return 0;
> +    }
> +
> +    if ( freq == (cppc_data->cpc.lowest_mhz * 1000) )
> +    {
> +        *perf = data->caps.lowest_perf;
> +        return 0;
> +    }

How likely is it that these two early return paths are taken, when the
incoming "freq" is 25 or 5 MHz granular? IOW - is it relevant to shortcut
these two cases?

> +    if ( cppc_data->cpc.lowest_mhz && cppc_data->cpc.nominal_mhz &&
> +         cppc_data->cpc.lowest_mhz < cppc_data->cpc.nominal_mhz )

Along the lines of a comment on an earlier patch, the middle part of the
condition here is redundant with the 3rd one. Also, don't you check this
relation already during init? IOW isn't it the 3rd part which can be
dropped?

> +    {
> +        mul = data->caps.nominal_perf - data->caps.lowest_perf;
> +        div = cppc_data->cpc.nominal_mhz - cppc_data->cpc.lowest_mhz;
> +
> +        /*
> +         * We don't need to convert to kHz for computing offset and can
> +         * directly use nominal_mhz and lowest_mhz as the division
> +         * will remove the frequency unit.
> +         */
> +        offset = data->caps.nominal_perf -
> +                 (mul * cppc_data->cpc.nominal_mhz) / div;
> +    }
> +    else
> +    {
> +        /* Read Processor Max Speed(MHz) as anchor point */
> +        mul = data->caps.highest_perf;
> +        div = this_cpu(amd_max_pxfreq_mhz);
> +        if ( !div || div == INVAL_FREQ_MHZ )

Seeing this - do we need INVAL_FREQ_MHZ at all? Isn't 0 good enough an indicator
of "data not available"?

> +            return -EINVAL;
> +    }
> +
> +    res = offset + (mul * freq) / (div * 1000);
> +    if ( res > UINT8_MAX )
> +    {
> +        printk_once(XENLOG_WARNING
> +                    "Perf value exceeds maximum value 255: %d\n", res);
> +        *perf = 0xff;
> +        return 0;
> +    } else if ( res < 0 )

Nit: Style. And no real need for "else" here anyway (or alternatively for the
"return 0", with an "else" added below).

> +    {
> +        printk_once(XENLOG_WARNING
> +                    "Perf value smaller than minimum value 0: %d\n", res);
> +        *perf = 0;
> +        return 0;
> +    }
> +    *perf = (uint8_t)res;

We don't normally spell out such conversions (i.e. please drop the cast).

> +    return 0;
> +}
> +
> +static int amd_get_lowest_or_nominal_freq(const struct amd_cppc_drv_data *data,

Nothing in the function looks to limit it to "nominal" or "lowest", so them
being in the identifier feels misleading.

> +                                          uint32_t cpc_mhz, uint8_t perf,
> +                                          unsigned int *freq)
> +{
> +    uint64_t mul, div, res;
> +
> +    if ( !freq )
> +        return -EINVAL;

Is this needed? It's an internal function.

> +    if ( cpc_mhz )
> +    {
> +        /* Switch to khz */
> +        *freq = cpc_mhz * 1000;
> +        return 0;
> +    }
> +
> +    /* Read Processor Max Speed(MHz) as anchor point */
> +    mul = this_cpu(amd_max_pxfreq_mhz);
> +    if ( mul == INVAL_FREQ_MHZ || !mul )
> +    {
> +        printk(XENLOG_ERR
> +               "Failed to read valid processor max frequency as anchor point: %lu\n",
> +               mul);
> +        return -EINVAL;
> +    }
> +    div = data->caps.highest_perf;
> +    res = (mul * perf * 1000) / div;

While there is a comment further up, clarifying function-wide that the result is
to be in kHz would perhaps be better.

> +    if ( res > UINT_MAX || !res )
> +    {
> +        printk(XENLOG_ERR
> +               "Frequeny exceeds maximum value UINT_MAX or being zero value: %lu\n",

Just "out of range"?

> +               res);
> +        return -EINVAL;

And then -ERANGE here?

> +    }
> +    *freq = (unsigned int)res;

See above.

> +static int amd_get_max_freq(const struct amd_cppc_drv_data *data,
> +                            unsigned int *max_freq)
> +{
> +    unsigned int nom_freq = 0, boost_ratio;
> +    int res;
> +
> +    res = amd_get_lowest_or_nominal_freq(data,
> +                                         data->cppc_data->cpc.nominal_mhz,
> +                                         data->caps.nominal_perf,
> +                                         &nom_freq);
> +    if ( res )
> +        return res;
> +
> +    boost_ratio = (unsigned int)(data->caps.highest_perf /
> +                                 data->caps.nominal_perf);

I may have seen logic ensuring nominal_perf isn't 0, so that part may be
fine. What guarantees this division to yield a positive value, though?
If it yields zero (say 0xff / 0x80), ...

> +    *max_freq = nom_freq * boost_ratio;

... zero will be reported back here. I think you want to scale the
calculations here to avoid such.

> +static void cf_check amd_cppc_init_msrs(void *info)
> +{
> +    struct cpufreq_policy *policy = info;
> +    struct amd_cppc_drv_data *data = this_cpu(amd_cppc_drv_data);
> +    uint64_t val;
> +    unsigned int min_freq = 0, nominal_freq = 0, max_freq;
> +
> +    /* Package level MSR */
> +    rdmsrl(MSR_AMD_CPPC_ENABLE, val);
> +    /*
> +     * Only when Enable bit is on, the hardware will calculate the processor’s
> +     * performance capabilities and initialize the performance level fields in
> +     * the CPPC capability registers.
> +     */
> +    if ( !(val & AMD_CPPC_ENABLE) )
> +    {
> +        val |= AMD_CPPC_ENABLE;
> +        wrmsrl(MSR_AMD_CPPC_ENABLE, val);
> +    }
> +
> +    rdmsrl(MSR_AMD_CPPC_CAP1, data->caps.raw);
> +
> +    if ( data->caps.highest_perf == 0 || data->caps.lowest_perf == 0 ||
> +         data->caps.nominal_perf == 0 || data->caps.lowest_nonlinear_perf == 0 ||
> +         data->caps.lowest_perf > data->caps.lowest_nonlinear_perf ||

Same question as asked elsewhere - where is this relation specified?

> +         data->caps.lowest_nonlinear_perf > data->caps.nominal_perf ||
> +         data->caps.nominal_perf > data->caps.highest_perf )
> +    {
> +        amd_cppc_err(policy->cpu,
> +                     "Platform malfunction, read CPPC capability highest(%u), lowest(%u), nominal(%u), lowest_nonlinear(%u) zero value\n",

The message wants shortening if at all possible, and it wants to not be
misleading (saying "zero" when the issue may be something else).

> +                     data->caps.highest_perf, data->caps.lowest_perf,
> +                     data->caps.nominal_perf, data->caps.lowest_nonlinear_perf);
> +        goto err;
> +    }
> +
> +    amd_process_freq(cpu_data + policy->cpu,

&cpu_data[policy->cpu] is generally preferred in such cases.

> +static int cf_check amd_cppc_cpufreq_cpu_init(struct cpufreq_policy *policy)
> +{
> +    unsigned int cpu = policy->cpu;
> +    struct amd_cppc_drv_data *data;
> +    const struct cpuinfo_x86 *c = cpu_data + cpu;
> +
> +    data = xvzalloc(struct amd_cppc_drv_data);
> +    if ( !data )
> +        return -ENOMEM;
> +
> +    data->cppc_data = &processor_pminfo[cpu]->cppc_data;
> +
> +    per_cpu(amd_cppc_drv_data, cpu) = data;
> +
> +    /* Feature CPPC is firstly introduced on Zen2 */
> +    if ( c->x86 < 0x17 )
> +    {
> +        printk_once("Unsupported cpu family: %x\n", c->x86);
> +        return -EOPNOTSUPP;
> +    }

With the cpu_has_cppc check in amd_cppc_register_driver(), is this check
really needed?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 29 14:33:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 14:33:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.972736.1361039 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9m1F-0002Hw-Nz; Tue, 29 Apr 2025 14:33:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 972736.1361039; Tue, 29 Apr 2025 14:33: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 1u9m1F-0002Hp-KB; Tue, 29 Apr 2025 14:33:09 +0000
Received: by outflank-mailman (input) for mailman id 972736;
 Tue, 29 Apr 2025 14:33: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=k9ft=XP=zytor.com=hpa@srs-se1.protection.inumbo.net>)
 id 1u9m1E-0002Hj-2r
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 14:33:08 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id dc383d31-2506-11f0-9ffb-bf95429c2676;
 Tue, 29 Apr 2025 16:33:05 +0200 (CEST)
Received: from [127.0.0.1] ([76.133.66.138]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53TEWCFi442559
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NO);
 Tue, 29 Apr 2025 07:32:13 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: dc383d31-2506-11f0-9ffb-bf95429c2676
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53TEWCFi442559
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745937135;
	bh=LNjYixlftM0TocmwTWxp55iaVDYvdvPlmjeF4Wk1QKQ=;
	h=Date:From:To:CC:Subject:In-Reply-To:References:From;
	b=Jdj/Z600Zm+gH8++WJ3coUVX3bxm/9kz6VzSlcTsunLE2QdkL7cc+My/6OWOPvfBO
	 3ktp4xGOb8Bi6yvo/Hv2ijFkM36AaqGcUPxWLErP4AyLU7V+MIoqT9uXMvBs/R+KOc
	 Por8iQOetV42XpxMSzzjgtqyWZEX/qdTBR73GcL2v6YWZVDTG08lWKAhAQnRcUZeq9
	 KueXqPQFQcIZca9owJdh852QSvT/UyXI+1TueFr/tWQpGYwgPkpz0VS1kXYHRBTgjr
	 n5BNPcFGo8ojEJ4rqOyIxRCjUisbmkmZyRSIXeBA12UP6KFGaD71bFXBQGqGNZTqiz
	 RBOkL2e7VGWbA==
Date: Tue, 29 Apr 2025 07:32:10 -0700
From: "H. Peter Anvin" <hpa@zytor.com>
To: Ingo Molnar <mingo@kernel.org>,
        Linus Torvalds <torvalds@linux-foundation.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Arnd Bergmann <arnd@arndb.de>,
        Arnd Bergmann <arnd@kernel.org>, Thomas Gleixner <tglx@linutronix.de>,
        Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
        Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org,
        Juergen Gross <jgross@suse.com>,
        Boris Ostrovsky <boris.ostrovsky@oracle.com>,
        Alexander Usyskin <alexander.usyskin@intel.com>,
        Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
        =?UTF-8?Q?Mateusz_Jo=C5=84czyk?= <mat.jonczyk@o2.pl>,
        Mike Rapoport <rppt@kernel.org>, Ard Biesheuvel <ardb@kernel.org>,
        Peter Zijlstra <peterz@infradead.org>, linux-kernel@vger.kernel.org,
        xen-devel@lists.xenproject.org
Subject: =?US-ASCII?Q?Re=3A_=5BPATCH=5D_bitops/32=3A_Convert_variable?=
 =?US-ASCII?Q?=5Fffs=28=29_and_fls=28=29_zero-case_handling_to_C?=
User-Agent: K-9 Mail for Android
In-Reply-To: <aBClAy837xcLnVpp@gmail.com>
References: <aAyiganPp_UsNlnZ@gmail.com> <d2b0e71c-e79b-40d6-8693-3202cd894d66@app.fastmail.com> <CAHk-=wh=TUsVv6xhtzYsWJwJggrjyOfYT3kBu+bHtoYLK0M9Xw@mail.gmail.com> <CAHk-=wgfk69H-T-vMWR33xUpVsWJLrF34d0OwUXa2sHhtpSwZg@mail.gmail.com> <e54f1943-e0ff-4f59-b24f-9b5a7a38becf@citrix.com> <CAHk-=wj0S2vWui0Y+1hpYMEhCiXKexbQ01h+Ckvww8hB29az_A@mail.gmail.com> <aA8nF0moBYOIgC5J@gmail.com> <aA8oqKUaFU-0wb-D@gmail.com> <aA8q4Ot-1zTzv_Kt@gmail.com> <CAHk-=wh5DUS+nhfTxPEEbaB9dsFib39gWatrX4NoFq_MpdOzGw@mail.gmail.com> <aBClAy837xcLnVpp@gmail.com>
Message-ID: <3A122140-5646-46D7-91A0-0A3E5B21C951@zytor.com>
MIME-Version: 1.0
Content-Type: text/plain;
 charset=utf-8
Content-Transfer-Encoding: quoted-printable

On April 29, 2025 3:08:03 AM PDT, Ingo Molnar <mingo@kernel=2Eorg> wrote:
>
>* Linus Torvalds <torvalds@linux-foundation=2Eorg> wrote:
>
>> On Mon, 28 Apr 2025 at 00:14, Ingo Molnar <mingo@kernel=2Eorg> wrote:
>> >
>> > And, just out of intellectual curiosity, I also tried to measure the
>> > code generation price of the +1 standards-quirk in the fls()/ffs()
>> > interface as well:
>> >
>> > =2E=2E=2E and unless I messed up the patch, it seems to have a surpri=
singly
>> > low impact - maybe because the compiler can amortize its cost by
>> > adjusting all dependent code mostly at build time, so the +1 doesn't
>> > end up being generated most of the time?
>>=20
>> No, I think one issue is that most users actually end up subtracting
>> one from the return value of 'ffs()', because the "bit #0 returns 1"
>> semantics of the standard ffs() function really is insane=2E
>>=20
>> It's not just that it doesn't match sane hardware, it's also that it
>> doesn't match sane *users*=2E If bit #0 is set, people want '0', so the=
y
>> typically subtract 1=2E
>>=20
>> So when you stop adding one, you aren't actually removing code -
>> you're often adding it=2E
>>=20
>> Just see how many hits you get from
>>=20
>>     git grep '\<ffs(=2E*)=2E*-=2E*1'
>>=20
>> which is obviously not a very precise pattern, but just look at the
>> output and see just *how* common that "subtract one" thing is=2E
>>=20
>> I really don't understand how anybody *ever* thought that the whole
>> "return one bigger" was a good idea for ffs()=2E
>
>Yeah=2E No argument from me that it's a badly thought out interface - I=
=20
>was just surprised that it doesn't seem to impact performance as badly=20
>as I expected=2E I have to add that a lot of work went into absorbing the=
=20
>negative effects of the ffs()/fls() interfaces:
>
>  starship:~/tip> git grep -Ee '__ffs\(|__fls\(' | wc -l
>  1055
>
>So it impacts code quality negatively, which is arguably the worse side=
=20
>effect=2E
>
>> But maybe people really were poisoned by the Pascal mindset=2E Or maybe=
=20
>> it was invented by some ancient Roman who hadn't heard of the concept=
=20
>> of zero=2E Who knows?
>
>Hey, ancient Romans didn't even have the concept of *whitespaces* and=20
>punctuation to begin with:
>
>    https://historyofinformation=2Ecom/images/Vergilius_Augusteus,_Georgi=
ca_121=2Ejpg
>
>Lazy stonemasons the lot of them=2E
>
>Romans were the worst ever coders too I suspect=2E What have the Romans=
=20
>ever done for us??
>
>	Ingo

Well, they did build the roads=2E=2E=2E =F0=9F=A4=A3

Roman numerals obviously were not a positional system, but at least in acc=
ounting they used N for zero (nulla=2E)

ROMANI=E2=80=A2ITE=E2=80=A2DOMVM


From xen-devel-bounces@lists.xenproject.org Tue Apr 29 14:39:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 14:39:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.972748.1361048 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9m6q-0002sZ-9t; Tue, 29 Apr 2025 14:38:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 972748.1361048; Tue, 29 Apr 2025 14:38: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 1u9m6q-0002sS-7N; Tue, 29 Apr 2025 14:38:56 +0000
Received: by outflank-mailman (input) for mailman id 972748;
 Tue, 29 Apr 2025 14:38: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=yPhw=XP=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u9m6o-0002sM-Oc
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 14:38:54 +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 ac57cf25-2507-11f0-9eb4-5ba50f476ded;
 Tue, 29 Apr 2025 16:38:53 +0200 (CEST)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-43cf628cb14so51181815e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 29 Apr 2025 07:38:53 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-441b0232267sm4173865e9.39.2025.04.29.07.38.52
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 29 Apr 2025 07:38:52 -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: ac57cf25-2507-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745937533; x=1746542333; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=+bH2VtO965DApheflq6WJZVHbuWGpEGuuDOfcTC4myY=;
        b=KW6Cp10ke+1KinTDAWZf8JJK7gxsoxLGPUh/g7rXY5J2MuySHlV8rnm61HVrxMIYfi
         ngqHma7zLfnSR3s9ZJ02VLuseMEbxZAQUX5R2KE2RGzqYW1DYTWt9/8aWcTbcNwmOz6c
         0F9YEl/18xksPyqyG0BdhpHlhXNR8rb2b1OCU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745937533; x=1746542333;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=+bH2VtO965DApheflq6WJZVHbuWGpEGuuDOfcTC4myY=;
        b=AJUnMKdBOmZ/K01NhzNgp/q4XcVmzfCTGofVffNwjwt2W39LoReWbsOYNiDlX5gU6v
         zg8HjUiyzh0ecH3kYbIPi4ozCXMxc3EHErKlwyRP1gNEiqPA5x/8AsfAv8L7ovOrE4c2
         +veBEHA2ZwTS/kJ69I5+IQlqiCLWf7OIwTLXA/T3ILEPXDKvZGsP1SzGRroMhqgrkEto
         jKzFnxt2fZZhp0gWa1vcLJ+V4hZeUk2PXXezUZmN9rGgBXNU5Vjipmh/Sa/cJWODLZfs
         0475pSk6DMjAJyJ7XVHVXsndERY4AV/0RYfRIPtViNfNg2XXVC3c9OAV7RwRTne+AjNT
         wl8A==
X-Forwarded-Encrypted: i=1; AJvYcCW1ooxvjVaGPYsZhY/yPitKWh9ZHeIcw1POq+G+9Srz7KP9f2pcaztn9heKrHJx3dBKL3RRlXvcCek=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxXsSFKhPEFftdeKvb1DWnufq5cmKvGSDNXtTa41OI9FZh91PHv
	8ESmJFFJ4MQDf3lcQad5uYhAB5b24ng9oHsNP2aM7J0TU11fTeGHy+7SKgqw7FU=
X-Gm-Gg: ASbGncuF9i4efjoQklHQBIUoRjqXuSXYz3lTndWTD3U9SpQ4izUwqHjK8Fzzm7KFRtl
	MMQMP4Ea56VmOVnUackvaBLnQTJTHJEE8Uh4txRhdeUBfj0bjT4M5HB/eUyI/iqBUiWJm1fxguf
	Ny8cb7+3YjZjQbgLWGHDXii5OKL7+D7fsmfAc11JmNufk6OzSWHqXNr1nmrUHAfp/0OZoPCdrhi
	YzMsroMq45dCzbL05+gj3RoENaNpGdd9zPJ3tb/nP7ux+4PuguR4XdcfXDzwFboKHVv7CR8zbdS
	RRR3fvh26gWZ0MYpHQwKBq8eoOtbOEiOqLF45OyqG/C/dm+AMfVhLEHX8gFonpB68BhUj8gXwop
	UFBXH9A==
X-Google-Smtp-Source: AGHT+IEz0M3YvmQrPHT1D/TQ+n1bkMRH0XKuCVufus5QpckGV8BdchYH4uo1PkS82FK1285Fo/Zw+Q==
X-Received: by 2002:a05:600c:4f8b:b0:439:9434:4f3b with SMTP id 5b1f17b1804b1-441acb20523mr29568085e9.8.1745937532997;
        Tue, 29 Apr 2025 07:38:52 -0700 (PDT)
Message-ID: <06d04c13-76e8-45fb-a563-e365e1f19362@citrix.com>
Date: Tue, 29 Apr 2025 15:38:51 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] bitops/32: Convert variable_ffs() and fls() zero-case
 handling to C
To: "H. Peter Anvin" <hpa@zytor.com>,
 Linus Torvalds <torvalds@linux-foundation.org>,
 Ingo Molnar <mingo@kernel.org>
Cc: Arnd Bergmann <arnd@arndb.de>, Arnd Bergmann <arnd@kernel.org>,
 Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 x86@kernel.org, Juergen Gross <jgross@suse.com>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 Alexander Usyskin <alexander.usyskin@intel.com>,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
 =?UTF-8?Q?Mateusz_Jo=C5=84czyk?= <mat.jonczyk@o2.pl>,
 Mike Rapoport <rppt@kernel.org>, Ard Biesheuvel <ardb@kernel.org>,
 Peter Zijlstra <peterz@infradead.org>, linux-kernel@vger.kernel.org,
 xen-devel@lists.xenproject.org
References: <20250425141740.734030-1-arnd@kernel.org>
 <aAyiganPp_UsNlnZ@gmail.com>
 <d2b0e71c-e79b-40d6-8693-3202cd894d66@app.fastmail.com>
 <CAHk-=wh=TUsVv6xhtzYsWJwJggrjyOfYT3kBu+bHtoYLK0M9Xw@mail.gmail.com>
 <CAHk-=wgfk69H-T-vMWR33xUpVsWJLrF34d0OwUXa2sHhtpSwZg@mail.gmail.com>
 <e54f1943-e0ff-4f59-b24f-9b5a7a38becf@citrix.com>
 <CAHk-=wj0S2vWui0Y+1hpYMEhCiXKexbQ01h+Ckvww8hB29az_A@mail.gmail.com>
 <aA8nF0moBYOIgC5J@gmail.com> <aA8oqKUaFU-0wb-D@gmail.com>
 <CAHk-=wgJfWfWa2NTiTmev+Xr=e8Uo=aFkrXujLAQBVAVN-VigQ@mail.gmail.com>
 <B364FF6D-DFCC-42A7-ACA1-6A74E27EE57E@zytor.com>
 <67be5eee-b67b-409a-8309-829f891b9944@citrix.com>
 <916BD58C-E6A7-495E-9A60-722E130AC7A7@zytor.com>
 <e5e97ff8-9670-40d1-a0fa-69504d34c4c4@citrix.com>
 <956DB0ED-F3DB-456D-8D06-6F40DBDB815A@zytor.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: <956DB0ED-F3DB-456D-8D06-6F40DBDB815A@zytor.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 29/04/2025 4:13 am, H. Peter Anvin wrote:
> On April 28, 2025 7:25:17 PM PDT, Andrew Cooper <andrew.cooper3@citrix.com> wrote:
>> On 29/04/2025 3:00 am, H. Peter Anvin wrote:
>>> On April 28, 2025 5:12:13 PM PDT, Andrew Cooper <andrew.cooper3@citrix.com> wrote:
>>>> On 28/04/2025 10:38 pm, H. Peter Anvin wrote:
>>>>> On April 28, 2025 9:14:45 AM PDT, Linus Torvalds <torvalds@linux-foundation.org> wrote:
>>>>>> On Mon, 28 Apr 2025 at 00:05, Ingo Molnar <mingo@kernel.org> wrote:
>>>>>>> And once we remove 486, I think we can do the optimization below to
>>>>>>> just assume the output doesn't get clobbered by BS*L in the zero-case,
>>>>>>> right?
>>>>>> We probably can't, because who knows what "Pentium" CPU's are out there.
>>>>>>
>>>>>> Or even if Pentium really does get it right. I doubt we have any
>>>>>> developers with an original Pentium around.
>>>>>>
>>>>>> So just leave the "we don't know what the CPU result is for zero"
>>>>>> unless we get some kind of official confirmation.
>>>>>>
>>>>>>          Linus
>>>>> If anyone knows for sure, it is probably Christian Ludloff. However, there was a *huge* tightening of the formal ISA when the i686 was introduced (family=6) and I really believe this was part of it.
>>>>>
>>>>> I also really don't trust that family=5 really means conforms to undocumented P5 behavior, e.g. for Quark.
>>>> https://www.sandpile.org/x86/flags.htm
>>>>
>>>> That's a lot of "can't even characterise the result" in the P5.
>>>>
>>>> Looking at P4 column, that is clearly what the latest SDM has
>>>> retroactively declared to be architectural.
>>>>
>>>> ~Andrew
>>> Yes, but it wasn't about flags here. 
>>>
>>> Now, question: can we just use __builtin_*() for these? I think gcc should always generate inline code for these on x86.
>> Yes it does generate inline code.  https://godbolt.org/z/M45oo5rqT
>>
>> GCC does it branchlessly, but cannot optimise based on context.
>>
>> Clang can optimise based on context, except the 0 case it seems.
>>
>> Moving to -march=i686 causes both GCC and Clang to switch to CMOV and
>> create branchless code, but is still GCC still can't optimise out the
>> CMOV based on context.
>>
>> ~Andrew
> Maybe a gcc bug report would be better than trying to hack around this in the kernel?

I tried that.  (The thread started as a question around
__builtin_constant_p() but did grow to cover __builtin_ffs().)

https://gcc.gnu.org/pipermail/gcc/2024-March/243465.html

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Apr 29 15:21:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 15:21:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.972772.1361085 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9mlm-0002LS-P1; Tue, 29 Apr 2025 15:21:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 972772.1361085; Tue, 29 Apr 2025 15:21: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 1u9mlm-0002LK-M6; Tue, 29 Apr 2025 15:21:14 +0000
Received: by outflank-mailman (input) for mailman id 972772;
 Tue, 29 Apr 2025 15:21: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=mkRs=XP=arm.com=luca.fancellu@srs-se1.protection.inumbo.net>)
 id 1u9mll-00026m-2r
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 15:21:13 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 955d2742-250d-11f0-9eb4-5ba50f476ded;
 Tue, 29 Apr 2025 17:21:12 +0200 (CEST)
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 B283A1DB5;
 Tue, 29 Apr 2025 08:21:04 -0700 (PDT)
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 96A223F673;
 Tue, 29 Apr 2025 08:21: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: 955d2742-250d-11f0-9eb4-5ba50f476ded
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 v4 4/7] arm/mpu: Provide access to the MPU region from the C code
Date: Tue, 29 Apr 2025 16:20:54 +0100
Message-Id: <20250429152057.2380536-5-luca.fancellu@arm.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250429152057.2380536-1-luca.fancellu@arm.com>
References: <20250429152057.2380536-1-luca.fancellu@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Implement some utility function in order to access the MPU regions
from the C world.

Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
---
v4 changes:
 - moved back PRBAR0_EL2/PRLAR0_EL2 to mm.c and protect
   them with CONFIG_ARM_64, changed comments, fixed typos and code
   style
 - Add PRBAR_EL2_(n) definition, to be overriden by Arm32
 - protect prepare_selector, read_protection_region,
   write_protection_region by Arm64 to ensure compilation on both
   arm32 and arm64, Arm32 will modify that later while introducing
   the arm32 bits.
v3 changes:
 - Moved PRBAR0_EL2/PRLAR0_EL2 to arm64 specific
 - Modified prepare_selector() to be easily made a NOP
   for Arm32, which can address up to 32 region without
   changing selector and it is also its maximum amount
   of MPU regions.
---
---
 xen/arch/arm/include/asm/mpu.h    |   1 +
 xen/arch/arm/include/asm/mpu/mm.h |  34 +++++++++
 xen/arch/arm/mpu/mm.c             | 117 ++++++++++++++++++++++++++++++
 3 files changed, 152 insertions(+)

diff --git a/xen/arch/arm/include/asm/mpu.h b/xen/arch/arm/include/asm/mpu.h
index 1368b2eb990f..40a86140b6cc 100644
--- a/xen/arch/arm/include/asm/mpu.h
+++ b/xen/arch/arm/include/asm/mpu.h
@@ -17,6 +17,7 @@
 #define MPU_REGION_SHIFT  6
 #define MPU_REGION_ALIGN  (_AC(1, UL) << MPU_REGION_SHIFT)
 #define MPU_REGION_MASK   (~(MPU_REGION_ALIGN - 1))
+#define MPU_REGION_RES0   (0xFFFFULL << 48)
 
 #define NUM_MPU_REGIONS_SHIFT   8
 #define NUM_MPU_REGIONS         (_AC(1, UL) << NUM_MPU_REGIONS_SHIFT)
diff --git a/xen/arch/arm/include/asm/mpu/mm.h b/xen/arch/arm/include/asm/mpu/mm.h
index 28339259c458..e2235e568e81 100644
--- a/xen/arch/arm/include/asm/mpu/mm.h
+++ b/xen/arch/arm/include/asm/mpu/mm.h
@@ -41,6 +41,40 @@ static inline struct page_info *virt_to_page(const void *v)
     return mfn_to_page(mfn);
 }
 
+/* Utility function to be used whenever MPU regions are modified */
+static inline void context_sync_mpu(void)
+{
+    /*
+     * ARM DDI 0600B.a, C1.7.1
+     * Writes to MPU registers are only guaranteed to be visible following a
+     * Context synchronization event and DSB operation.
+     */
+    dsb(sy);
+    isb();
+}
+
+/*
+ * The following API requires context_sync_mpu() after being used to modify MPU
+ * regions:
+ *  - write_protection_region
+ */
+
+/*
+ * Reads the MPU region with index 'sel' from the HW.
+ *
+ * @pr_read: mpu protection region returned by read op.
+ * @sel: mpu protection region selector
+ */
+extern void read_protection_region(pr_t *pr_read, uint8_t sel);
+
+/*
+ * Writes the MPU region with index 'sel' to the HW.
+ *
+ * @pr_write: const mpu protection region passed through write op.
+ * @sel: mpu protection region selector
+ */
+extern void write_protection_region(const pr_t *pr_write, uint8_t sel);
+
 #endif /* __ARM_MPU_MM_H__ */
 
 /*
diff --git a/xen/arch/arm/mpu/mm.c b/xen/arch/arm/mpu/mm.c
index 9eab09ff2044..40ccf99adc94 100644
--- a/xen/arch/arm/mpu/mm.c
+++ b/xen/arch/arm/mpu/mm.c
@@ -8,6 +8,8 @@
 #include <xen/sizes.h>
 #include <xen/types.h>
 #include <asm/mpu.h>
+#include <asm/mpu/mm.h>
+#include <asm/sysregs.h>
 
 struct page_info *frame_table;
 
@@ -26,6 +28,35 @@ DECLARE_BITMAP(xen_mpumap_mask, MAX_MPU_REGION_NR) \
 /* EL2 Xen MPU memory region mapping table. */
 pr_t __section(".data.page_aligned") xen_mpumap[MAX_MPU_REGION_NR];
 
+#ifdef CONFIG_ARM_64
+/*
+ * The following are needed for the case generators GENERATE_WRITE_PR_REG_CASE
+ * and GENERATE_READ_PR_REG_CASE with num==0
+ */
+#define PRBAR0_EL2 PRBAR_EL2
+#define PRLAR0_EL2 PRLAR_EL2
+
+#define PRBAR_EL2_(n)   PRBAR##n##_EL2
+#define PRLAR_EL2_(n)   PRLAR##n##_EL2
+
+#endif
+
+#define GENERATE_WRITE_PR_REG_CASE(num, pr)                                 \
+    case num:                                                               \
+    {                                                                       \
+        WRITE_SYSREG(pr->prbar.bits & ~MPU_REGION_RES0, PRBAR_EL2_(num));   \
+        WRITE_SYSREG(pr->prlar.bits & ~MPU_REGION_RES0, PRLAR_EL2_(num));   \
+        break;                                                              \
+    }
+
+#define GENERATE_READ_PR_REG_CASE(num, pr)                      \
+    case num:                                                   \
+    {                                                           \
+        pr->prbar.bits = READ_SYSREG(PRBAR_EL2_(num));          \
+        pr->prlar.bits = READ_SYSREG(PRLAR_EL2_(num));          \
+        break;                                                  \
+    }
+
 static void __init __maybe_unused build_assertions(void)
 {
     /*
@@ -36,6 +67,92 @@ static void __init __maybe_unused build_assertions(void)
     BUILD_BUG_ON(PAGE_SIZE != SZ_4K);
 }
 
+#ifdef CONFIG_ARM_64
+/*
+ * Armv8-R supports direct access and indirect access to the MPU regions through
+ * registers, indirect access involves changing the MPU region selector, issuing
+ * an isb barrier and accessing the selected region through specific registers;
+ * instead direct access involves accessing specific registers that points to
+ * a specific MPU region, without changing the selector (in some cases) and
+ * issuing barriers because of that.
+ * For Arm64 the PR{B,L}AR_ELx (for n=0) and PR{B,L}AR<n>_ELx, n=1..15, are used
+ * for the direct access to the regions selected by PRSELR_EL2.REGION<7:4>:n, so
+ * 16 regions can be directly access when the selector is multiple of 16, giving
+ * access to all the supported memory regions.
+ */
+static void prepare_selector(uint8_t *sel)
+{
+    uint8_t cur_sel = *sel;
+
+    /*
+     * {read,write}_protection_region works using the direct access to the 0..15
+     * regions, so in order to save the isb() overhead, change the PRSELR_EL2
+     * only when needed, so when the upper 4 bits of the selector will change.
+     */
+    cur_sel &= 0xF0U;
+    if ( READ_SYSREG(PRSELR_EL2) != cur_sel )
+    {
+        WRITE_SYSREG(cur_sel, PRSELR_EL2);
+        isb();
+    }
+    *sel = *sel & 0xFU;
+}
+
+void read_protection_region(pr_t *pr_read, uint8_t sel)
+{
+    prepare_selector(&sel);
+
+    switch ( sel )
+    {
+        GENERATE_READ_PR_REG_CASE(0, pr_read);
+        GENERATE_READ_PR_REG_CASE(1, pr_read);
+        GENERATE_READ_PR_REG_CASE(2, pr_read);
+        GENERATE_READ_PR_REG_CASE(3, pr_read);
+        GENERATE_READ_PR_REG_CASE(4, pr_read);
+        GENERATE_READ_PR_REG_CASE(5, pr_read);
+        GENERATE_READ_PR_REG_CASE(6, pr_read);
+        GENERATE_READ_PR_REG_CASE(7, pr_read);
+        GENERATE_READ_PR_REG_CASE(8, pr_read);
+        GENERATE_READ_PR_REG_CASE(9, pr_read);
+        GENERATE_READ_PR_REG_CASE(10, pr_read);
+        GENERATE_READ_PR_REG_CASE(11, pr_read);
+        GENERATE_READ_PR_REG_CASE(12, pr_read);
+        GENERATE_READ_PR_REG_CASE(13, pr_read);
+        GENERATE_READ_PR_REG_CASE(14, pr_read);
+        GENERATE_READ_PR_REG_CASE(15, pr_read);
+    default:
+        BUG(); /* Can't happen */
+    }
+}
+
+void write_protection_region(const pr_t *pr_write, uint8_t sel)
+{
+    prepare_selector(&sel);
+
+    switch ( sel )
+    {
+        GENERATE_WRITE_PR_REG_CASE(0, pr_write);
+        GENERATE_WRITE_PR_REG_CASE(1, pr_write);
+        GENERATE_WRITE_PR_REG_CASE(2, pr_write);
+        GENERATE_WRITE_PR_REG_CASE(3, pr_write);
+        GENERATE_WRITE_PR_REG_CASE(4, pr_write);
+        GENERATE_WRITE_PR_REG_CASE(5, pr_write);
+        GENERATE_WRITE_PR_REG_CASE(6, pr_write);
+        GENERATE_WRITE_PR_REG_CASE(7, pr_write);
+        GENERATE_WRITE_PR_REG_CASE(8, pr_write);
+        GENERATE_WRITE_PR_REG_CASE(9, pr_write);
+        GENERATE_WRITE_PR_REG_CASE(10, pr_write);
+        GENERATE_WRITE_PR_REG_CASE(11, pr_write);
+        GENERATE_WRITE_PR_REG_CASE(12, pr_write);
+        GENERATE_WRITE_PR_REG_CASE(13, pr_write);
+        GENERATE_WRITE_PR_REG_CASE(14, pr_write);
+        GENERATE_WRITE_PR_REG_CASE(15, pr_write);
+    default:
+        BUG(); /* Can't happen */
+    }
+}
+#endif
+
 void __init setup_mm(void)
 {
     BUG_ON("unimplemented");
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Tue Apr 29 15:21:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 15:21:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.972773.1361090 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9mln-0002QT-4v; Tue, 29 Apr 2025 15:21:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 972773.1361090; Tue, 29 Apr 2025 15:21: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 1u9mlm-0002Om-W2; Tue, 29 Apr 2025 15:21:14 +0000
Received: by outflank-mailman (input) for mailman id 972773;
 Tue, 29 Apr 2025 15:21: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=mkRs=XP=arm.com=luca.fancellu@srs-se1.protection.inumbo.net>)
 id 1u9mll-00026m-PA
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 15:21:13 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 960a2133-250d-11f0-9eb4-5ba50f476ded;
 Tue, 29 Apr 2025 17:21:13 +0200 (CEST)
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 0424B22FC;
 Tue, 29 Apr 2025 08:21:06 -0700 (PDT)
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 DB0EB3F673;
 Tue, 29 Apr 2025 08:21: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: 960a2133-250d-11f0-9eb4-5ba50f476ded
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 v4 5/7] arm/mpu: Introduce utility functions for the pr_t type
Date: Tue, 29 Apr 2025 16:20:55 +0100
Message-Id: <20250429152057.2380536-6-luca.fancellu@arm.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250429152057.2380536-1-luca.fancellu@arm.com>
References: <20250429152057.2380536-1-luca.fancellu@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Introduce few utility function to manipulate and handle the
pr_t type.

Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
---
v4 changes:
 - Modify comment on top of the helpers. Clarify pr_set_limit
   takes exclusive address.
   Protected common code with #ifdef Arm64 until Arm32 is ready
   with pr_t
---
 xen/arch/arm/include/asm/mpu.h | 64 ++++++++++++++++++++++++++++++++++
 1 file changed, 64 insertions(+)

diff --git a/xen/arch/arm/include/asm/mpu.h b/xen/arch/arm/include/asm/mpu.h
index 40a86140b6cc..0e0a7f05ade9 100644
--- a/xen/arch/arm/include/asm/mpu.h
+++ b/xen/arch/arm/include/asm/mpu.h
@@ -24,6 +24,70 @@
 #define NUM_MPU_REGIONS_MASK    (NUM_MPU_REGIONS - 1)
 #define MAX_MPU_REGION_NR       255
 
+#ifndef __ASSEMBLY__
+
+#ifdef CONFIG_ARM_64
+/*
+ * Set base address of MPU protection region.
+ *
+ * @pr: pointer to the protection region structure.
+ * @base: base address as base of the protection region.
+ */
+static inline void pr_set_base(pr_t *pr, paddr_t base)
+{
+    pr->prbar.reg.base = (base >> MPU_REGION_SHIFT);
+}
+
+/*
+ * Set limit address of MPU protection region.
+ *
+ * @pr: pointer to the protection region structure.
+ * @limit: exclusive address as limit of the protection region.
+ */
+static inline void pr_set_limit(pr_t *pr, paddr_t limit)
+{
+    pr->prlar.reg.limit = ((limit - 1) >> MPU_REGION_SHIFT);
+}
+
+/*
+ * Access to get base address of MPU protection region.
+ * The base address shall be zero extended.
+ *
+ * @pr: pointer to the protection region structure.
+ * @return: Base address configured for the passed protection region.
+ */
+static inline paddr_t pr_get_base(pr_t *pr)
+{
+    return (paddr_t)(pr->prbar.reg.base << MPU_REGION_SHIFT);
+}
+
+/*
+ * Access to get limit address of MPU protection region.
+ * The limit address shall be concatenated with 0x3f.
+ *
+ * @pr: pointer to the protection region structure.
+ * @return: Inclusive limit address configured for the passed protection region.
+ */
+static inline paddr_t pr_get_limit(pr_t *pr)
+{
+    return (paddr_t)((pr->prlar.reg.limit << MPU_REGION_SHIFT)
+                     | ~MPU_REGION_MASK);
+}
+
+/*
+ * Checks if the protection region is valid (enabled).
+ *
+ * @pr: pointer to the protection region structure.
+ * @return: True if the region is valid (enabled), false otherwise.
+ */
+static inline bool region_is_valid(pr_t *pr)
+{
+    return pr->prlar.reg.en;
+}
+#endif
+
+#endif /* __ASSEMBLY__ */
+
 #endif /* __ARM_MPU_H__ */
 
 /*
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Tue Apr 29 15:21:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 15:21:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.972774.1361097 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9mln-0002XA-GR; Tue, 29 Apr 2025 15:21:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 972774.1361097; Tue, 29 Apr 2025 15:21: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 1u9mln-0002Vt-Aj; Tue, 29 Apr 2025 15:21:15 +0000
Received: by outflank-mailman (input) for mailman id 972774;
 Tue, 29 Apr 2025 15:21: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=mkRs=XP=arm.com=luca.fancellu@srs-se1.protection.inumbo.net>)
 id 1u9mll-0002Ky-RN
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 15:21:13 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 92c143b9-250d-11f0-9ffb-bf95429c2676;
 Tue, 29 Apr 2025 17:21:08 +0200 (CEST)
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 5ABD81516;
 Tue, 29 Apr 2025 08:21:00 -0700 (PDT)
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 3E2133F673;
 Tue, 29 Apr 2025 08:21: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: 92c143b9-250d-11f0-9ffb-bf95429c2676
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 v4 1/7] docs/arm: Document Xen booting protocol on Armv8-R
Date: Tue, 29 Apr 2025 16:20:51 +0100
Message-Id: <20250429152057.2380536-2-luca.fancellu@arm.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250429152057.2380536-1-luca.fancellu@arm.com>
References: <20250429152057.2380536-1-luca.fancellu@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Document the requirement needed to boot Xen on Armv8-R platforms.

Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
---
v4 changes:
 - New patch
---
 docs/misc/arm/booting.txt | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/docs/misc/arm/booting.txt b/docs/misc/arm/booting.txt
index 21ae74837dcc..719af74f1e69 100644
--- a/docs/misc/arm/booting.txt
+++ b/docs/misc/arm/booting.txt
@@ -62,6 +62,14 @@ Xen relies on some settings the firmware has to configure in EL3 before starting
 
 * The bit SCR_EL3.HCE (resp. SCR.HCE for 32-bit ARM) must be set to 1.
 
+When Xen runs on Armv8-R, the highest exception level is EL2 and the only
+available state is secure (S) on Arm64 and non secure (NS) on Arm32, hence the
+above requirements need to be adjusted to this case:
+
+* Xen must be entered in S EL2 mode on Arm64 and in NS EL2 mode on Arm32.
+
+* Xen must be entered with MPU off and data cache disabled (SCTLR_EL2.M bit and
+  SCTLR_EL2.C set to 0).
 
 [1] linux/Documentation/arm/booting.rst
 Latest version: http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Documentation/arch/arm/booting.rst
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Tue Apr 29 15:21:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 15:21:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.972777.1361130 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9mlp-0003Ib-N4; Tue, 29 Apr 2025 15:21:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 972777.1361130; Tue, 29 Apr 2025 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 1u9mlp-0003H3-Fy; Tue, 29 Apr 2025 15:21:17 +0000
Received: by outflank-mailman (input) for mailman id 972777;
 Tue, 29 Apr 2025 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=mkRs=XP=arm.com=luca.fancellu@srs-se1.protection.inumbo.net>)
 id 1u9mlo-0002Ky-Js
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 15:21:16 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 96dc413d-250d-11f0-9ffb-bf95429c2676;
 Tue, 29 Apr 2025 17:21:14 +0200 (CEST)
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 474882308;
 Tue, 29 Apr 2025 08:21:07 -0700 (PDT)
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 2BCBC3F673;
 Tue, 29 Apr 2025 08:21:13 -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: 96dc413d-250d-11f0-9ffb-bf95429c2676
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 v4 6/7] arm/mpu: Provide a constructor for pr_t type
Date: Tue, 29 Apr 2025 16:20:56 +0100
Message-Id: <20250429152057.2380536-7-luca.fancellu@arm.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250429152057.2380536-1-luca.fancellu@arm.com>
References: <20250429152057.2380536-1-luca.fancellu@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Provide a function that creates a pr_t object from a memory
range and some attributes.

Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
---
v4 changes:
 - update helper comments
 - rename XN_EL2_ENABLED to PRBAR_EL2_XN_ENABLED
 - protected pr_of_xenaddr() with #ifdef Arm64 until Arm32
   can build with it
---
 xen/arch/arm/include/asm/arm64/mpu.h | 11 +++++
 xen/arch/arm/include/asm/mpu.h       |  4 ++
 xen/arch/arm/include/asm/mpu/mm.h    | 10 ++++
 xen/arch/arm/mpu/mm.c                | 68 ++++++++++++++++++++++++++++
 4 files changed, 93 insertions(+)

diff --git a/xen/arch/arm/include/asm/arm64/mpu.h b/xen/arch/arm/include/asm/arm64/mpu.h
index b27fccd77550..39233b43a5aa 100644
--- a/xen/arch/arm/include/asm/arm64/mpu.h
+++ b/xen/arch/arm/include/asm/arm64/mpu.h
@@ -3,6 +3,17 @@
 #ifndef __ARM_ARM64_MPU_H__
 #define __ARM_ARM64_MPU_H__
 
+/*
+ * Excute never.
+ * Stage 1 EL2 translation regime.
+ * XN[1] determines whether execution of the instruction fetched from the MPU
+ * memory region is permitted.
+ * Stage 2 EL1/EL0 translation regime.
+ * XN[0] determines whether execution of the instruction fetched from the MPU
+ * memory region is permitted.
+ */
+#define PRBAR_EL2_XN_ENABLED  0x2
+
 #ifndef __ASSEMBLY__
 
 /* Protection Region Base Address Register */
diff --git a/xen/arch/arm/include/asm/mpu.h b/xen/arch/arm/include/asm/mpu.h
index 0e0a7f05ade9..7b82f10d336b 100644
--- a/xen/arch/arm/include/asm/mpu.h
+++ b/xen/arch/arm/include/asm/mpu.h
@@ -24,6 +24,10 @@
 #define NUM_MPU_REGIONS_MASK    (NUM_MPU_REGIONS - 1)
 #define MAX_MPU_REGION_NR       255
 
+/* Access permission attributes. */
+/* Read/Write at EL2, No Access at EL1/EL0. */
+#define AP_RW_EL2 0x0
+
 #ifndef __ASSEMBLY__
 
 #ifdef CONFIG_ARM_64
diff --git a/xen/arch/arm/include/asm/mpu/mm.h b/xen/arch/arm/include/asm/mpu/mm.h
index e2235e568e81..296fe74c5d61 100644
--- a/xen/arch/arm/include/asm/mpu/mm.h
+++ b/xen/arch/arm/include/asm/mpu/mm.h
@@ -75,6 +75,16 @@ extern void read_protection_region(pr_t *pr_read, uint8_t sel);
  */
 extern void write_protection_region(const pr_t *pr_write, uint8_t sel);
 
+/*
+ * Creates a pr_t structure describing a protection region.
+ *
+ * @base: base address as base of the protection region.
+ * @limit: exclusive address as limit of the protection region.
+ * @attr: attribute index for the memory type.
+ * @return: pr_t structure describing a protection region.
+ */
+extern pr_t pr_of_xenaddr(paddr_t base, paddr_t limit, unsigned int attr_idx);
+
 #endif /* __ARM_MPU_MM_H__ */
 
 /*
diff --git a/xen/arch/arm/mpu/mm.c b/xen/arch/arm/mpu/mm.c
index 40ccf99adc94..2e0aeb486ff8 100644
--- a/xen/arch/arm/mpu/mm.c
+++ b/xen/arch/arm/mpu/mm.c
@@ -9,6 +9,7 @@
 #include <xen/types.h>
 #include <asm/mpu.h>
 #include <asm/mpu/mm.h>
+#include <asm/page.h>
 #include <asm/sysregs.h>
 
 struct page_info *frame_table;
@@ -151,6 +152,73 @@ void write_protection_region(const pr_t *pr_write, uint8_t sel)
         BUG(); /* Can't happen */
     }
 }
+
+pr_t pr_of_xenaddr(paddr_t base, paddr_t limit, unsigned int attr_idx)
+{
+    prbar_t prbar;
+    prlar_t prlar;
+    pr_t region;
+
+    /* Build up value for PRBAR_EL2. */
+    prbar = (prbar_t) {
+        .reg = {
+            .ap = AP_RW_EL2,      /* Read/Write at EL2, no access at EL1/EL0. */
+            .xn = PRBAR_EL2_XN_ENABLED,   /* No need to execute outside .text */
+        }};
+
+    switch ( attr_idx )
+    {
+    case MT_NORMAL_NC:
+        /*
+         * ARM ARM: Overlaying the shareability attribute (DDI
+         * 0406C.b B3-1376 to 1377)
+         *
+         * A memory region with a resultant memory type attribute of normal,
+         * and a resultant cacheability attribute of Inner non-cacheable,
+         * outer non-cacheable, must have a resultant shareability attribute
+         * of outer shareable, otherwise shareability is UNPREDICTABLE.
+         *
+         * On ARMv8 sharability is ignored and explicitly treated as outer
+         * shareable for normal inner non-cacheable, outer non-cacheable.
+         */
+        prbar.reg.sh = LPAE_SH_OUTER;
+        break;
+    case MT_DEVICE_nGnRnE:
+    case MT_DEVICE_nGnRE:
+        /*
+         * Shareability is ignored for non-normal memory, Outer is as
+         * good as anything.
+         *
+         * On ARMv8 sharability is ignored and explicitly treated as outer
+         * shareable for any device memory type.
+         */
+        prbar.reg.sh = LPAE_SH_OUTER;
+        break;
+    default:
+        /* Xen mappings are SMP coherent */
+        prbar.reg.sh = LPAE_SH_INNER;
+    }
+
+    /* Build up value for PRLAR_EL2. */
+    prlar = (prlar_t) {
+        .reg = {
+            .ns = 0,        /* Hyp mode is in secure world */
+            .ai = attr_idx,
+            .en = 1,        /* Region enabled */
+        }};
+
+    /* Build up MPU memory region. */
+    region = (pr_t) {
+        .prbar = prbar,
+        .prlar = prlar,
+    };
+
+    /* Set base address and limit address. */
+    pr_set_base(&region, base);
+    pr_set_limit(&region, limit);
+
+    return region;
+}
 #endif
 
 void __init setup_mm(void)
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Tue Apr 29 15:21:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 15:21:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.972775.1361103 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9mln-0002cT-Qm; Tue, 29 Apr 2025 15:21:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 972775.1361103; Tue, 29 Apr 2025 15:21: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 1u9mln-0002b0-Mu; Tue, 29 Apr 2025 15:21:15 +0000
Received: by outflank-mailman (input) for mailman id 972775;
 Tue, 29 Apr 2025 15: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=mkRs=XP=arm.com=luca.fancellu@srs-se1.protection.inumbo.net>)
 id 1u9mlm-0002Ky-H3
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 15:21:14 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 93b05b5b-250d-11f0-9ffb-bf95429c2676;
 Tue, 29 Apr 2025 17:21:09 +0200 (CEST)
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 08D1616F3;
 Tue, 29 Apr 2025 08:21:02 -0700 (PDT)
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 841FA3F673;
 Tue, 29 Apr 2025 08:21: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: 93b05b5b-250d-11f0-9ffb-bf95429c2676
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>,
	Penny Zheng <penny.zheng@arm.com>,
	Wei Chen <wei.chen@arm.com>
Subject: [PATCH v4 2/7] arm/mpu: Introduce MPU memory region map structure
Date: Tue, 29 Apr 2025 16:20:52 +0100
Message-Id: <20250429152057.2380536-3-luca.fancellu@arm.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250429152057.2380536-1-luca.fancellu@arm.com>
References: <20250429152057.2380536-1-luca.fancellu@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Penny Zheng <Penny.Zheng@arm.com>

Introduce pr_t typedef which is a structure having the prbar
and prlar members, each being structured as the registers of
the aarch64 armv8-r architecture.

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 in v4:
 - Fixed typos, changed name for reserved bitfields, add emacs bits
   to arm64/mpu.h.
   Now base and limit are 42 bits as we consider FEAT_LPA disabled,
   since we support max 1TB of memory.
   Moved data structure in commit that uses it
---
 xen/arch/arm/include/asm/arm64/mpu.h | 50 ++++++++++++++++++++++++++++
 xen/arch/arm/include/asm/mpu.h       |  4 +++
 2 files changed, 54 insertions(+)
 create mode 100644 xen/arch/arm/include/asm/arm64/mpu.h

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 000000000000..b27fccd77550
--- /dev/null
+++ b/xen/arch/arm/include/asm/arm64/mpu.h
@@ -0,0 +1,50 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#ifndef __ARM_ARM64_MPU_H__
+#define __ARM_ARM64_MPU_H__
+
+#ifndef __ASSEMBLY__
+
+/* Protection Region Base Address Register */
+typedef union {
+    struct __packed {
+        unsigned long xn:2;       /* Execute-Never */
+        unsigned long ap:2;       /* Access Permission */
+        unsigned long sh:2;       /* Shareability */
+        unsigned long base:42;    /* Base Address */
+        unsigned long res0:16;    /* RES0 */
+    } reg;
+    uint64_t bits;
+} prbar_t;
+
+/* Protection Region Limit Address Register */
+typedef union {
+    struct __packed {
+        unsigned long en:1;     /* Region enable */
+        unsigned long ai:3;     /* Memory Attribute Index */
+        unsigned long ns:1;     /* Not-Secure */
+        unsigned long res0:1;   /* RES0 */
+        unsigned long limit:42; /* Limit Address */
+        unsigned long res1:16;  /* RES0 */
+    } reg;
+    uint64_t bits;
+} prlar_t;
+
+/* MPU Protection Region */
+typedef struct {
+    prbar_t prbar;
+    prlar_t prlar;
+} pr_t;
+
+#endif /* __ASSEMBLY__ */
+
+#endif /* __ARM_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/mpu.h b/xen/arch/arm/include/asm/mpu.h
index d4ec4248b62b..bb83f5a5f580 100644
--- a/xen/arch/arm/include/asm/mpu.h
+++ b/xen/arch/arm/include/asm/mpu.h
@@ -6,6 +6,10 @@
 #ifndef __ARM_MPU_H__
 #define __ARM_MPU_H__
 
+#if defined(CONFIG_ARM_64)
+# include <asm/arm64/mpu.h>
+#endif
+
 #define MPU_REGION_SHIFT  6
 #define MPU_REGION_ALIGN  (_AC(1, UL) << MPU_REGION_SHIFT)
 #define MPU_REGION_MASK   (~(MPU_REGION_ALIGN - 1))
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Tue Apr 29 15:21:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 15:21:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.972776.1361125 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9mlp-0003Bl-9c; Tue, 29 Apr 2025 15:21:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 972776.1361125; Tue, 29 Apr 2025 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 1u9mlp-0003Ad-1P; Tue, 29 Apr 2025 15:21:17 +0000
Received: by outflank-mailman (input) for mailman id 972776;
 Tue, 29 Apr 2025 15:21: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=mkRs=XP=arm.com=luca.fancellu@srs-se1.protection.inumbo.net>)
 id 1u9mln-0002Ky-HP
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 15:21:15 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 948b960a-250d-11f0-9ffb-bf95429c2676;
 Tue, 29 Apr 2025 17:21:10 +0200 (CEST)
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 6DDE61BC0;
 Tue, 29 Apr 2025 08:21:03 -0700 (PDT)
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 324413F673;
 Tue, 29 Apr 2025 08:21: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: 948b960a-250d-11f0-9ffb-bf95429c2676
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 v4 3/7] arm/mpu: Provide and populate MPU C data structures
Date: Tue, 29 Apr 2025 16:20:53 +0100
Message-Id: <20250429152057.2380536-4-luca.fancellu@arm.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250429152057.2380536-1-luca.fancellu@arm.com>
References: <20250429152057.2380536-1-luca.fancellu@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Provide some data structure in the C world to track the MPU
status, these structures will be filled at boot by the assembly
early code with the boot MPU regions and afterwards they will be
used at runtime.

Provide methods to update a bitmap created with DECLARE_BITMAP
from the assembly code for both Arm32 and Arm64.

Modify Arm64 assembly boot code to reset any unused MPU region,
initialise 'max_xen_mpumap' with the number of supported MPU
regions and modify the common asm macro 'prepare_xen_region' to
load into xen_mpumap the MPU status and set/clear the bitmap
'xen_mpumap_mask' used to track the enabled regions.

Changed parameters name from 'base', 'limit' to 'tmp1' and 'tmp2'
in order to use them also for intermediate operations on the
MPU and the bitmap C data structures, the help on top of the macro
is enough to understand how the macro will work and this will
save some registers.

Provide a stub implementation for the pr_t type and few asm
macro for the Arm32 to prevent compilation break, they will
be implemented later.

Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
---
v4 changes:
 - new patch
---
 xen/arch/arm/arm64/mpu/head.S            | 13 +++++
 xen/arch/arm/include/asm/arm32/mpu.h     | 25 +++++++++
 xen/arch/arm/include/asm/bitmap-op.inc   | 67 ++++++++++++++++++++++
 xen/arch/arm/include/asm/mpu.h           |  5 ++
 xen/arch/arm/include/asm/mpu/mm.h        |  7 +++
 xen/arch/arm/include/asm/mpu/regions.inc | 71 ++++++++++++++++++++----
 xen/arch/arm/mpu/mm.c                    | 16 ++++++
 7 files changed, 194 insertions(+), 10 deletions(-)
 create mode 100644 xen/arch/arm/include/asm/arm32/mpu.h
 create mode 100644 xen/arch/arm/include/asm/bitmap-op.inc

diff --git a/xen/arch/arm/arm64/mpu/head.S b/xen/arch/arm/arm64/mpu/head.S
index 6d336cafbbaf..c0cac06b015f 100644
--- a/xen/arch/arm/arm64/mpu/head.S
+++ b/xen/arch/arm/arm64/mpu/head.S
@@ -40,6 +40,9 @@ FUNC(enable_boot_cpu_mm)
     mrs   x5, MPUIR_EL2
     and   x5, x5, #NUM_MPU_REGIONS_MASK
 
+    ldr   x0, =max_xen_mpumap
+    strb  w5, [x0]
+
     /* x0: region sel */
     mov   x0, xzr
     /* Xen text section. */
@@ -74,6 +77,16 @@ FUNC(enable_boot_cpu_mm)
     prepare_xen_region x0, x1, x2, x3, x4, x5, attr_prbar=REGION_DEVICE_PRBAR, attr_prlar=REGION_DEVICE_PRLAR
 #endif
 
+zero_mpu:
+    /* Reset remaining MPU regions */
+    cmp   x0, x5
+    beq   out_zero_mpu
+    mov   x1, #0
+    mov   x2, #1
+    prepare_xen_region x0, x1, x2, x3, x4, x5, attr_prlar=REGION_DISABLED_PRLAR
+    b     zero_mpu
+
+out_zero_mpu:
     b    enable_mpu
     ret
 END(enable_boot_cpu_mm)
diff --git a/xen/arch/arm/include/asm/arm32/mpu.h b/xen/arch/arm/include/asm/arm32/mpu.h
new file mode 100644
index 000000000000..1bdae4c309dc
--- /dev/null
+++ b/xen/arch/arm/include/asm/arm32/mpu.h
@@ -0,0 +1,25 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#ifndef __ARM_ARM32_MPU_H__
+#define __ARM_ARM32_MPU_H__
+
+#ifndef __ASSEMBLY__
+
+/* MPU Protection Region */
+typedef struct {
+    uint32_t prbar;
+    uint32_t prlar;
+} pr_t;
+
+#endif /* __ASSEMBLY__ */
+
+#endif /* __ARM_ARM32_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/bitmap-op.inc b/xen/arch/arm/include/asm/bitmap-op.inc
new file mode 100644
index 000000000000..e316d9417bb9
--- /dev/null
+++ b/xen/arch/arm/include/asm/bitmap-op.inc
@@ -0,0 +1,67 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+/*
+ * Sets a bit in a bitmap declared by DECLARE_BITMAP, symbol name passed through
+ * bitmap_symbol.
+ *
+ * bitmap_set_bit:      symbol of the bitmap declared by DECLARE_BITMAP
+ * bit:                 bit number to be set in the bitmap
+ * tmp1-tmp4:           temporary registers used for the computation
+ *
+ * Preserves bit.
+ * Output:
+ *  tmp1: Address of the word containing the changed bit.
+ * Clobbers: bit, tmp1, tmp2, tmp3, tmp4.
+ */
+.macro bitmap_set_bit bitmap_symbol, bit, tmp1, tmp2, tmp3, tmp4
+    adr_l   \tmp1, \bitmap_symbol
+    mov     \tmp2, #(BYTES_PER_LONG - 1)
+    mvn     \tmp2, \tmp2
+    lsr     \tmp3, \bit, #3
+    and     \tmp2, \tmp3, \tmp2
+    add     \tmp1, \tmp1, \tmp2                 // bitmap_symbol + (bit/BITS_PER_LONG)*BYTES_PER_LONG
+    and     \tmp2, \bit, #(BITS_PER_LONG - 1)   // bit offset inside word
+
+    ldr     \tmp3, [\tmp1]
+    mov     \tmp4, #1
+    lsl     \tmp4, \tmp4, \tmp2                 // (1 << offset)
+    orr     \tmp3, \tmp3, \tmp4                 // set the bit
+    str     \tmp3, [\tmp1]
+.endm
+
+/*
+ * Clears a bit in a bitmap declared by DECLARE_BITMAP, symbol name passed
+ * through bitmap_symbol.
+ *
+ * bitmap_set_bit:      symbol of the bitmap declared by DECLARE_BITMAP
+ * bit:                 bit number to be set in the bitmap
+ * tmp1-tmp4:           temporary registers used for the computation
+ *
+ * Preserves bit.
+ * Output:
+ *  tmp1: Address of the word containing the changed bit.
+ * Clobbers: bit, tmp1, tmp2, tmp3, tmp4.
+ */
+.macro bitmap_clear_bit bitmap_symbol, bit, tmp1, tmp2, tmp3, tmp4
+    adr_l   \tmp1, \bitmap_symbol
+    mov     \tmp2, #(BYTES_PER_LONG - 1)
+    mvn     \tmp2, \tmp2
+    lsr     \tmp3, \bit, #3
+    and     \tmp2, \tmp3, \tmp2
+    add     \tmp1, \tmp1, \tmp2                 // bitmap_symbol + (bit/BITS_PER_LONG)*BYTES_PER_LONG
+    and     \tmp2, \bit, #(BITS_PER_LONG - 1)   // bit offset inside word
+
+    ldr     \tmp3, [\tmp1]
+    mov     \tmp4, #1
+    lsl     \tmp4, \tmp4, \tmp2                 // (1 << offset)
+    mvn     \tmp4, \tmp4                        // ~(1 << offset)
+    and     \tmp3, \tmp3, \tmp4                 // clear the bit
+    str     \tmp3, [\tmp1]
+.endm
+
+/*
+ * Local variables:
+ * mode: ASM
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/xen/arch/arm/include/asm/mpu.h b/xen/arch/arm/include/asm/mpu.h
index bb83f5a5f580..1368b2eb990f 100644
--- a/xen/arch/arm/include/asm/mpu.h
+++ b/xen/arch/arm/include/asm/mpu.h
@@ -8,6 +8,10 @@
 
 #if defined(CONFIG_ARM_64)
 # include <asm/arm64/mpu.h>
+#elif defined(CONFIG_ARM_32)
+# include <asm/arm32/mpu.h>
+#else
+# error "unknown ARM variant"
 #endif
 
 #define MPU_REGION_SHIFT  6
@@ -17,6 +21,7 @@
 #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)
+#define MAX_MPU_REGION_NR       255
 
 #endif /* __ARM_MPU_H__ */
 
diff --git a/xen/arch/arm/include/asm/mpu/mm.h b/xen/arch/arm/include/asm/mpu/mm.h
index bfd840fa5d31..28339259c458 100644
--- a/xen/arch/arm/include/asm/mpu/mm.h
+++ b/xen/arch/arm/include/asm/mpu/mm.h
@@ -8,9 +8,16 @@
 #include <xen/page-size.h>
 #include <xen/types.h>
 #include <asm/mm.h>
+#include <asm/mpu.h>
 
 extern struct page_info *frame_table;
 
+extern uint8_t max_xen_mpumap;
+
+extern DECLARE_BITMAP(xen_mpumap_mask, MAX_MPU_REGION_NR);
+
+extern pr_t xen_mpumap[MAX_MPU_REGION_NR];
+
 #define virt_to_maddr(va) ((paddr_t)((vaddr_t)(va) & PADDR_MASK))
 
 #ifdef CONFIG_ARM_32
diff --git a/xen/arch/arm/include/asm/mpu/regions.inc b/xen/arch/arm/include/asm/mpu/regions.inc
index 47868a152662..dc0306f8c5fc 100644
--- a/xen/arch/arm/include/asm/mpu/regions.inc
+++ b/xen/arch/arm/include/asm/mpu/regions.inc
@@ -1,22 +1,50 @@
 /* SPDX-License-Identifier: GPL-2.0-only */
 
+#include <asm/bitmap-op.inc>
 #include <asm/mpu.h>
 #include <asm/sysregs.h>
 
 /* Backgroud region enable/disable */
 #define SCTLR_ELx_BR    BIT(17, UL)
 
+#define REGION_DISABLED_PRLAR   0x00    /* NS=0 ATTR=000 EN=0 */
 #define REGION_NORMAL_PRLAR     0x0f    /* NS=0 ATTR=111 EN=1 */
 #define REGION_DEVICE_PRLAR     0x09    /* NS=0 ATTR=100 EN=1 */
 
+#define PRLAR_ELx_EN            0x1
+
+#ifdef CONFIG_ARM_64
+#define XEN_MPUMAP_ENTRY_SHIFT  0x4     /* 16 byte structure */
+
+.macro store_pair reg1, reg2, dst
+        stp \reg1, \reg2, [\dst]
+.endm
+
+.macro invalidate_dcache_one reg
+        dc ivac, \reg
+.endm
+
+#else
+#define XEN_MPUMAP_ENTRY_SHIFT  0x2     /* 8 byte structure */
+
+.macro store_pair reg1, reg2, dst
+        nop
+.endm
+
+.macro invalidate_dcache_one reg
+        nop
+.endm
+
+#endif
+
 /*
  * 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
+ * tmp1:        reg storing base address
+ * tmp2:        reg storing limit address
  * prbar:       store computed PRBAR_EL2 value
  * prlar:       store computed PRLAR_EL2 value
  * maxcount:    maximum number of EL2 regions supported
@@ -28,13 +56,13 @@
  * Preserves maxcount
  * Output:
  *  sel: Next available region selector index.
- * Clobbers base, limit, prbar, prlar
+ * Clobbers tmp1, tmp2, 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
+.macro prepare_xen_region, sel, tmp1, tmp2, prbar, prlar, maxcount, attr_prbar=REGION_DATA_PRBAR, attr_prlar=REGION_NORMAL_PRLAR
     /* Check if the region is empty */
-    cmp   \base, \limit
+    cmp   \tmp1, \tmp2
     beq   1f
 
     /* Check if the number of regions exceeded the count specified in MPUIR_EL2 */
@@ -42,20 +70,43 @@
     bge   fail_insufficient_regions
 
     /* Prepare value for PRBAR_EL2 reg and preserve it in \prbar.*/
-    and   \base, \base, #MPU_REGION_MASK
+    and   \tmp1, \tmp1, #MPU_REGION_MASK
     mov   \prbar, #\attr_prbar
-    orr   \prbar, \prbar, \base
+    orr   \prbar, \prbar, \tmp1
 
     /* Limit address should be inclusive */
-    sub   \limit, \limit, #1
-    and   \limit, \limit, #MPU_REGION_MASK
+    sub   \tmp2, \tmp2, #1
+    and   \tmp2, \tmp2, #MPU_REGION_MASK
     mov   \prlar, #\attr_prlar
-    orr   \prlar, \prlar, \limit
+    orr   \prlar, \prlar, \tmp2
 
     WRITE_SYSREG_ASM(\sel, PRSELR_EL2)
     isb
     WRITE_SYSREG_ASM(\prbar, PRBAR_EL2)
     WRITE_SYSREG_ASM(\prlar, PRLAR_EL2)
+
+    /* Load pair into xen_mpumap and invalidate cache */
+    mov   \tmp1, \sel
+    lsl   \tmp1, \tmp1, #XEN_MPUMAP_ENTRY_SHIFT
+    adr_l \tmp2, xen_mpumap
+    add   \tmp2, \tmp2, \tmp1
+    store_pair \prbar, \prlar, \tmp2
+    invalidate_dcache_one \tmp2
+
+    /* Set/clear xen_mpumap_mask bitmap */
+    tst   \prlar, #PRLAR_ELx_EN
+    bne   2f
+    // Region is disabled, clear the bit in the bitmap
+    bitmap_clear_bit xen_mpumap_mask, \sel, \tmp1, \tmp2, \prbar, \prlar
+    b     3f
+
+2:
+    // Region is enabled, set the bit in the bitmap
+    bitmap_set_bit xen_mpumap_mask, \sel, \tmp1, \tmp2, \prbar, \prlar
+
+3:
+    invalidate_dcache_one \tmp1
+
     dsb   sy
     isb
 
diff --git a/xen/arch/arm/mpu/mm.c b/xen/arch/arm/mpu/mm.c
index 07c8959f4ee9..9eab09ff2044 100644
--- a/xen/arch/arm/mpu/mm.c
+++ b/xen/arch/arm/mpu/mm.c
@@ -7,9 +7,25 @@
 #include <xen/mm.h>
 #include <xen/sizes.h>
 #include <xen/types.h>
+#include <asm/mpu.h>
 
 struct page_info *frame_table;
 
+/* Maximum number of supported MPU memory regions by the EL2 MPU. */
+uint8_t __ro_after_init max_xen_mpumap;
+
+/*
+ * Bitmap xen_mpumap_mask is to record the usage of EL2 MPU memory regions.
+ * Bit 0 represents MPU memory region 0, bit 1 represents MPU memory
+ * region 1, ..., and so on.
+ * If a MPU memory region gets enabled, set the according bit to 1.
+ */
+DECLARE_BITMAP(xen_mpumap_mask, MAX_MPU_REGION_NR) \
+    __section(".data.page_aligned");
+
+/* EL2 Xen MPU memory region mapping table. */
+pr_t __section(".data.page_aligned") xen_mpumap[MAX_MPU_REGION_NR];
+
 static void __init __maybe_unused build_assertions(void)
 {
     /*
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Tue Apr 29 15:21:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 15:21:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.972771.1361075 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9mlk-00026z-I5; Tue, 29 Apr 2025 15:21:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 972771.1361075; Tue, 29 Apr 2025 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 1u9mlk-00026s-Fb; Tue, 29 Apr 2025 15:21:12 +0000
Received: by outflank-mailman (input) for mailman id 972771;
 Tue, 29 Apr 2025 15:21:10 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=mkRs=XP=arm.com=luca.fancellu@srs-se1.protection.inumbo.net>)
 id 1u9mli-00026m-Mx
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 15:21:10 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 920d59fd-250d-11f0-9eb4-5ba50f476ded;
 Tue, 29 Apr 2025 17:21:06 +0200 (CEST)
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 162141515;
 Tue, 29 Apr 2025 08:20:59 -0700 (PDT)
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 ECBB33F673;
 Tue, 29 Apr 2025 08:21:04 -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: 920d59fd-250d-11f0-9eb4-5ba50f476ded
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 v4 0/7] First chunk for Arm R82 and MPU support
Date: Tue, 29 Apr 2025 16:20:50 +0100
Message-Id: <20250429152057.2380536-1-luca.fancellu@arm.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Hi all,

This is the first chunk of work to support MPU and R82 on Xen, this serie
reaches the early boot stages just before early_fdt_map(), just to give an idea
about which stage of the boot is reached.

v4:
 - dropped setup_mpu() patch and early_fdt_map() patch (needs rework)
 - add new patches: boot protocol and early asm MPU structure update
 - general fixes listed on each patch
v3 changes:
 - stated on each patch
v2 changes for this serie:
 - rebased serie on the MPU skeleton that allow compilation
 - removed some patches already merged in the MPU skeleton

Luca Fancellu (6):
  docs/arm: Document Xen booting protocol on Armv8-R
  arm/mpu: Provide and populate MPU C data structures
  arm/mpu: Provide access to the MPU region from the C code
  arm/mpu: Introduce utility functions for the pr_t type
  arm/mpu: Provide a constructor for pr_t type
  arm/mpu: Introduce MPU memory mapping flags

Penny Zheng (1):
  arm/mpu: Introduce MPU memory region map structure

 docs/misc/arm/booting.txt                |   8 +
 xen/arch/arm/arm64/mpu/head.S            |  13 ++
 xen/arch/arm/include/asm/arm32/mpu.h     |  25 +++
 xen/arch/arm/include/asm/arm64/mpu.h     |  61 +++++++
 xen/arch/arm/include/asm/bitmap-op.inc   |  67 ++++++++
 xen/arch/arm/include/asm/mpu.h           |  78 +++++++++
 xen/arch/arm/include/asm/mpu/mm.h        |  51 ++++++
 xen/arch/arm/include/asm/mpu/regions.inc |  71 ++++++--
 xen/arch/arm/include/asm/page.h          |  25 +++
 xen/arch/arm/mpu/mm.c                    | 201 +++++++++++++++++++++++
 10 files changed, 590 insertions(+), 10 deletions(-)
 create mode 100644 xen/arch/arm/include/asm/arm32/mpu.h
 create mode 100644 xen/arch/arm/include/asm/arm64/mpu.h
 create mode 100644 xen/arch/arm/include/asm/bitmap-op.inc

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Tue Apr 29 15:21:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 15:21:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.972778.1361135 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9mlq-0003Nb-1z; Tue, 29 Apr 2025 15:21:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 972778.1361135; Tue, 29 Apr 2025 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 1u9mlp-0003Lk-Pk; Tue, 29 Apr 2025 15:21:17 +0000
Received: by outflank-mailman (input) for mailman id 972778;
 Tue, 29 Apr 2025 15:21: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=mkRs=XP=arm.com=luca.fancellu@srs-se1.protection.inumbo.net>)
 id 1u9mlo-00026m-Ix
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 15:21:16 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 97a4d1cb-250d-11f0-9eb4-5ba50f476ded;
 Tue, 29 Apr 2025 17:21:16 +0200 (CEST)
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 8B36A2309;
 Tue, 29 Apr 2025 08:21:08 -0700 (PDT)
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 700D43F673;
 Tue, 29 Apr 2025 08:21: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: 97a4d1cb-250d-11f0-9eb4-5ba50f476ded
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 v4 7/7] arm/mpu: Introduce MPU memory mapping flags
Date: Tue, 29 Apr 2025 16:20:57 +0100
Message-Id: <20250429152057.2380536-8-luca.fancellu@arm.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250429152057.2380536-1-luca.fancellu@arm.com>
References: <20250429152057.2380536-1-luca.fancellu@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Introduce the MPU memory mapping flags in asm/page.h.

Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
---
v4 changes:
 - no changes, I'm not sure how I can merge XN and Permission flags.
---
 xen/arch/arm/include/asm/page.h | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/xen/arch/arm/include/asm/page.h b/xen/arch/arm/include/asm/page.h
index 69f817d1e68a..22f7d2c6cb30 100644
--- a/xen/arch/arm/include/asm/page.h
+++ b/xen/arch/arm/include/asm/page.h
@@ -62,6 +62,7 @@
 
 #define MAIRVAL (MAIR1VAL << 32 | MAIR0VAL)
 
+#ifdef CONFIG_MMU
 /*
  * Layout of the flags used for updating the hypervisor page tables
  *
@@ -90,6 +91,30 @@
 #define _PAGE_CONTIG_BIT    8
 #define _PAGE_CONTIG        (1U << _PAGE_CONTIG_BIT)
 
+#else /* !CONFIG_MMU */
+
+/*
+ * Layout of the flags used for updating MPU memory region attributes
+ * [0:2] Memory attribute Index
+ * [3:4] Execute Never
+ * [5:6] Access Permission
+ * [7]   Region Present
+ */
+#define _PAGE_AI_BIT            0
+#define _PAGE_XN_BIT            3
+#define _PAGE_AP_BIT            5
+#define _PAGE_PRESENT_BIT       7
+#define _PAGE_AI                (7U << _PAGE_AI_BIT)
+#define _PAGE_XN                (2U << _PAGE_XN_BIT)
+#define _PAGE_RO                (2U << _PAGE_AP_BIT)
+#define _PAGE_PRESENT           (1U << _PAGE_PRESENT_BIT)
+#define PAGE_AI_MASK(x)         (((x) >> _PAGE_AI_BIT) & 0x7U)
+#define PAGE_XN_MASK(x)         (((x) >> _PAGE_XN_BIT) & 0x3U)
+#define PAGE_AP_MASK(x)         (((x) >> _PAGE_AP_BIT) & 0x3U)
+#define PAGE_RO_MASK(x)         (((x) >> _PAGE_AP_BIT) & 0x2U)
+
+#endif /* CONFIG_MMU */
+
 /*
  * _PAGE_DEVICE and _PAGE_NORMAL are convenience defines. They are not
  * meant to be used outside of this header.
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Tue Apr 29 16:02:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 16:02:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.972882.1361155 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9nPg-0003YV-AY; Tue, 29 Apr 2025 16:02:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 972882.1361155; Tue, 29 Apr 2025 16:02: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 1u9nPg-0003YO-7f; Tue, 29 Apr 2025 16:02:28 +0000
Received: by outflank-mailman (input) for mailman id 972882;
 Tue, 29 Apr 2025 16:02: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=yPhw=XP=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u9nPf-0003YI-Pd
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 16:02:27 +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 54c49e7e-2513-11f0-9ffb-bf95429c2676;
 Tue, 29 Apr 2025 18:02:20 +0200 (CEST)
Received: by mail-wr1-x435.google.com with SMTP id
 ffacd0b85a97d-39129fc51f8so4175102f8f.0
 for <xen-devel@lists.xenproject.org>; Tue, 29 Apr 2025 09:02:20 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3a073e46a54sm14584945f8f.67.2025.04.29.09.02.18
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 29 Apr 2025 09:02: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: 54c49e7e-2513-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745942540; x=1746547340; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=YXTiwudkhNYnpikHxED5t+JgvSi8b1EgQ9TieD7W0x4=;
        b=buZNPiJJGK1ZRZIIrhRb+uRuTlR0a7DoPZfAFGWmZwMmXoMIFYbF52sy4g628m+TqW
         sdoRXFCY/c/CcFtahGjtG6wh+6II3jHQs9bCMq46TPocB5sf+nmgPoAf0kQq46WQTF7A
         TUn9/5tnvTO2JzgyD4G/pTYvzKtp0JGe9KCKM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745942540; x=1746547340;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=YXTiwudkhNYnpikHxED5t+JgvSi8b1EgQ9TieD7W0x4=;
        b=a2+SoYUB1XA36HDwLgmBPWzBO59Z09/Hib1mioaqtc0JXMRhI6paBuGOFcanlySyPi
         3iVp/0VYRD/vufbY/qAf4khw5i1ZiZ/2tb/6jiiMVOHq4pZNTItI8aGv705wbVOzZdXa
         jDM95e5h4PAU1wUceOlt/P4GE3UebiNrauvoqd/oB2FvoMTRDK8cD8FazW+PVXAA3YlT
         1qPV4V8Bz8n6O1T/lsTfRuxlnkcF1j7G5SqzIEnPmACe61oLpx39l5UmkNnBaiNJT8Zy
         IT1dmF1PbK2sY/wpTjO3vKkRJvWgubI1wgR65Ymm6O8e2Cm3A/XhysjYISioS7Ll645g
         Kp7w==
X-Forwarded-Encrypted: i=1; AJvYcCViUIuDfYB3jgKR2pLm3gx5ESKgU6PJqeVb25e9wQoGQ7KfBUo7h5xgNHd8e4HelczsJOt2yWNkUW4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxHntAwAcAPX98vmYCQ/fVzB0SdpmbQjG5s8Nofdzn/hnQlrThB
	le/kMsUjENQePfadwg8sGuchGOaUZGHHfvCMqsLP+8pHJghwGAGIOCO4WROE1ZY=
X-Gm-Gg: ASbGncsGedn7XjLK9lbxbDjco7yh9Fgz3rw8cttrsY6QBnDo17OwFxKw7byEXxzHkh8
	IQKRf0u34s9xtRAopYZzFSxBtyL6mAzcjbxs5+FyPzz1lLPbILXStKIemJ14cdjknaTmHNoAduV
	p6HQBmzc3c8stv3kuklS9BHWo0oPaL4NjnI1f03/EPIXYny5JLwH5gigmDxrOHcrYXvJH6E1dMF
	y4VOM5SR4R0BDUTsJV4N22ZlUAn54seZSwl6mr+ljsWmZXnPfRA5lL9D21OC8oP6w/lgsdgZAnx
	TLA0zdtnPtYdnutKk6hm4NcSP31J90KnugLOSMc5Hfa3hcivykPf5vbJ7ER4fD47HxQ5Q+WT8lD
	avl56uQ==
X-Google-Smtp-Source: AGHT+IG+99DhsLtfLQOkrS6cGlOJdhxFS+MoUo9aQHWJieZ1YP2Hh+cqOr1NgzWXq8DSlkin7PSEiA==
X-Received: by 2002:a5d:588b:0:b0:3a0:7ed2:4681 with SMTP id ffacd0b85a97d-3a0894b0b16mr3852205f8f.49.1745942539833;
        Tue, 29 Apr 2025 09:02:19 -0700 (PDT)
Message-ID: <8d4451ee-7de7-4fc1-a231-b51871d145db@citrix.com>
Date: Tue, 29 Apr 2025 17:02:18 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] {hyper,multi}call: further limit arguments to just 5
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>,
 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>,
 Anthony PERARD <anthony.perard@vates.tech>
References: <5020c491-2037-4955-99ce-e6ba02b44aef@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: <5020c491-2037-4955-99ce-e6ba02b44aef@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 29/04/2025 9:16 am, Jan Beulich wrote:
> Multicall compat translation and hypercall continuation handling can
> also be shrunk to the processing of just (up to) 5 arguments.
>
> Take the opportunity to
> - make exceeding the limit noisy in hypercall_create_continuation(),
> - use speculation-safe array access in hypercall_create_continuation(),
> - avoid a Misra C:2012 Rule 19.1 violation in xlat_multicall_entry(),
> - further tidy xlat_multicall_entry() and __trace_multicall_call()
>   style-wise.
>
> Amends: 2f531c122e95 ("x86: limit number of hypercall parameters to 5")
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>

> ---
> hypercall_xlat_continuation() uses BUG() when encountering too large an
> argument count in release builds, but I think that's too harsh. Hence in
> hypercall_create_continuation() I'm re-using the existing error path.
> Interestingly the multicall part of hypercall_xlat_continuation() has no
> check at all which would cover release builds.

This has never been the best of code.  All we can do is improve it
moving forward.

>
> With gcc14 code size grows according to my observation, due to the loops
> in xlat_multicall_entry() and __trace_multicall_call() both being
> unrolled now.

With GCC-12, it gets marginally smaller.  The loops are unrolled and the
instruction scheduling is rather odd.

mov    0x208(%r15),%rax
mov    0x228(%r15),%rdx
mov    %eax,0x1c(%rsp)
mov    0x210(%r15),%rax
mov    %edx,0x2c(%rsp)
mov    %eax,0x20(%rsp)
mov    0x218(%r15),%rax
mov    0x1c(%rsp),%rsi
mov    %edx,0x210(%r15)
mov    %eax,0x24(%rsp)
mov    0x220(%r15),%rax
mov    %rsi,0x200(%r15)
mov    %eax,0x28(%rsp)
mov    0x24(%rsp),%rsi
mov    %rsi,0x208(%r15)

This is the interleaved copy onto the stack, and back off.

Weirdly, we're doing 8 byte loads and 4 byte stores to copy on to the
stack.  It's not wrong per say, but it's also not necessary.

Then, for the copy-off, there is an overlapping store:

mov    %edx,0x210(%r15)

and

mov    %rsi,0x208(%r15)

not to mention this:

mov    %eax,0x28(%rsp)
mov    0x24(%rsp),%rsi

using an overlapping store and wider load for the copy-off.

Anyway - it looks to function correctly, but I don't exactly feel as if
the optimiser has done a great job.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Apr 29 16:39:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 16:39:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.972896.1361165 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9nzA-0007tj-2J; Tue, 29 Apr 2025 16:39:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 972896.1361165; Tue, 29 Apr 2025 16:39: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 1u9nz9-0007tc-Uq; Tue, 29 Apr 2025 16:39:07 +0000
Received: by outflank-mailman (input) for mailman id 972896;
 Tue, 29 Apr 2025 16:39: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=qXnC=XP=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1u9nz9-0007tW-5O
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 16:39:07 +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 7498e5cb-2518-11f0-9ffb-bf95429c2676;
 Tue, 29 Apr 2025 18:39:01 +0200 (CEST)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-43cf3192f3bso59706825e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 29 Apr 2025 09:39:01 -0700 (PDT)
Received: from ?IPV6:2003:ca:b734:b42c:b0eb:5c1a:72a5:6973?
 (p200300cab734b42cb0eb5c1a72a56973.dip0.t-ipconnect.de.
 [2003:ca:b734:b42c:b0eb:5c1a:72a5:6973])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4409d2a2386sm198311705e9.14.2025.04.29.09.38.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 29 Apr 2025 09:39: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: 7498e5cb-2518-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745944741; x=1746549541; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=4VSTdKchaOnkd99iFacTwDbxuXgREURW4VGZubzZaZk=;
        b=R8JyDr09QpnLA6eeIwz8KK4wjkzFQxjWCBlzfiCtjbHuaxHK59OjBk8gv2ZG7hOs9w
         7HJ/UNcYwsQypOWjhnOxRw4O6gzZ++W13YUdv7FZUWlhX/N7Rb/R62frxZZjTmj6ckxR
         zgDZqkOwPaIsxFcgg6xml+76y33uNeNTQvYukMGedD1Z54uS38VAbrsFPtysZKis1Khu
         LF7vzMT/ikiyyAZzLlxxJ3R41qmZzAW3I0ERVKO2c8smB9VlKbtKt0LtoNBm4WwNdLMz
         u8oCzV//GpxdvmZXkLke3CXtRobIXG0v1DW+S3+X4Aj6mgs1LLndcYYuP++TNyR/zCBq
         872Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745944741; x=1746549541;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=4VSTdKchaOnkd99iFacTwDbxuXgREURW4VGZubzZaZk=;
        b=hptd7utIDvtJleq6DHigvVyp9K+bdTFw8ld4AVYdGqL9qU17tjIMaMCafzdNCUSovn
         TowPeC7xoVfiQqziI0I6B4jUcmXs5ROHftrkwlkbH6j6HqVMk1iIGuI17jn0gDwSodQC
         paw1sTlAWoPzdiG4hDFvTx5bvyhj2j0ZygZagI5GDGHJS/oFxgrFAdplyIA3rJZLw1Cg
         4QS/WQnIqdD2di3vfB+CvovLZ5Lm5W81UFUGhdhYWIzj7Z4rde4G4XGhq5y1xelEnpXq
         R/Phd8m/+8kzkEa4dEUkzSN+yr6VsZdDlySMJPHM9wQ7X17luuDDeLJyYws3U6MeGWzT
         6KcQ==
X-Forwarded-Encrypted: i=1; AJvYcCVU65g1d6/TJgKgo2COGTlud220qwN3TumVK8YmSr8obn2dBLfXIvsyXiJkidOKDtU4QHgueP+E3Cw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwMb8zmxCv2tPsoGRnW5BUsT27EV1E6n6+S+bw6CkRXjIn2mevg
	bKL97RULdIgT1XdrJlGKkbdXznmqXjjrPUg52tz8uQekNkS/4xAITXSFPsI1Uw==
X-Gm-Gg: ASbGncudIg3ojD+hoQ53Hktq9AYQx2c1uONAbPIDiWWSJ7EKQFiTVGNUTX5CI6teBg7
	Fe5wSYso3E6/evXUfPQPDC5gM0U5405NRjur3Qh8Y3ojj7hgisf0+D2vdWThUHI2CANbaWplW7E
	Bc30JL6XuJaQXwctfWqcmYhuoEdMhDt+4i/4rEa9FIJUjVPr63WXnuOUKLEKLd6qm6eK79Q/lFZ
	GLurAN+I5HFujShiBUSyCnhVxaVvp0eqW26x7f3yTVIx0K8AkWpDiZAOD9fJQVptJJ/ANnJM1YM
	v+H4AeJuunZNogS1yKWyEiCUSHC9IpRXRa217cjgchy+THSEfAQ9qRwzfrrQ5W/YqjgW68TQPlu
	w7bJeERcuYQFv+00s6h0drIJ0s1D3Uku5pF/SOXpTLh8/UZI+iLClLLF+JCUUGWU/GjH2Cg+d6w
	0=
X-Google-Smtp-Source: AGHT+IFUabUl0VmVZLUY9o9lj8+Tv6dPsRx+IEcUAsF8bkCxNHsYnz+brGsoDUCUsbywthXuGYtrTA==
X-Received: by 2002:a05:600c:4e4f:b0:43d:82c:2b23 with SMTP id 5b1f17b1804b1-441ac88ab91mr34066195e9.23.1745944740935;
        Tue, 29 Apr 2025 09:39:00 -0700 (PDT)
Message-ID: <b56cdeaa-7951-46f9-a558-d8a65bf8b237@suse.com>
Date: Tue, 29 Apr 2025 18:38:58 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 11/15] xen/x86: implement EPP support for the amd-cppc
 driver in active mode
To: Penny Zheng <Penny.Zheng@amd.com>
Cc: ray.huang@amd.com, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20250414074056.3696888-1-Penny.Zheng@amd.com>
 <20250414074056.3696888-12-Penny.Zheng@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20250414074056.3696888-12-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 14.04.2025 09:40, Penny Zheng wrote:
> --- a/docs/misc/xen-command-line.pandoc
> +++ b/docs/misc/xen-command-line.pandoc
> @@ -515,7 +515,7 @@ If set, force use of the performance counters for oprofile, rather than detectin
>  available support.
>  
>  ### cpufreq
> -> `= none | {{ <boolean> | xen } { [:[powersave|performance|ondemand|userspace][,[<maxfreq>]][,[<minfreq>]]] } [,verbose]} | dom0-kernel | hwp[:[<hdc>][,verbose]] | amd-cppc[:[verbose]]`
> +> `= none | {{ <boolean> | xen } { [:[powersave|performance|ondemand|userspace][,[<maxfreq>]][,[<minfreq>]]] } [,verbose]} | dom0-kernel | hwp[:[<hdc>][,verbose]] | amd-cppc[:[active][,verbose]]`
>  
>  > Default: `xen`
>  
> @@ -537,6 +537,12 @@ choice of `dom0-kernel` is deprecated and not supported by all Dom0 kernels.
>  * `amd-cppc` selects ACPI Collaborative Performance and Power Control (CPPC)
>    on supported AMD hardware to provide finer grained frequency control
>    mechanism. The default is disabled.
> +* `active` is to enable amd-cppc driver in active(autonomous) mode. In this
> +  mode, users could write to energy performance preference register(epp) to
> +  tell hardware if they want to bias toward performance or energy efficiency.
> +  Then built-in CPPC power algorithm will calculate the runtime workload and
> +  adjust cores frequency automatically according to the power supply, thermal,
> +  core voltage and some other hardware conditions.

This section of the cmdline doc may not be of the best quality, but may I
nevertheless ask that for this new sub-option you make explicit what the
default is (and that it's of boolean nature)?

> @@ -434,12 +464,82 @@ static int cf_check amd_cppc_cpufreq_cpu_init(struct cpufreq_policy *policy)
>  
>      amd_cppc_boost_init(policy, data);
>  
> +    return 0;
> +}
> +
> +static int cf_check amd_cppc_cpufreq_cpu_init(struct cpufreq_policy *policy)
> +{
> +    int ret;
> +
> +    ret = amd_cppc_cpufreq_init_perf(policy);
> +    if ( ret )
> +        return ret;
> +
>      amd_cppc_verbose(policy->cpu,
>                       "CPU initialized with amd-cppc passive mode\n");
>  
>      return 0;
>  }
>  
> +static int cf_check amd_cppc_epp_cpu_init(struct cpufreq_policy *policy)
> +{
> +    int ret;
> +
> +    ret = amd_cppc_cpufreq_init_perf(policy);
> +    if ( ret )
> +        return ret;
> +
> +    policy->policy = cpufreq_policy_from_governor(policy->governor);

This is the init part, which is fine. What if the governor is being changed,
though? The struct field is new, and there's no other place I can spot where
it would be adjusted.

> --- a/xen/arch/x86/include/asm/msr-index.h
> +++ b/xen/arch/x86/include/asm/msr-index.h
> @@ -242,6 +242,7 @@
>  #define MSR_AMD_CPPC_ENABLE                 0xc00102b1U
>  #define  AMD_CPPC_ENABLE                    (_AC(1, ULL) <<  0)
>  #define MSR_AMD_CPPC_REQ                    0xc00102b3U
> +#define  AMD_CPPC_EPP_MASK                  (_AC(0xff, ULL) <<  24)

Nit: Excess blank after << (there's no such issue with AMD_CPPC_ENABLE,
ftaod).

Jan


From xen-devel-bounces@lists.xenproject.org Tue Apr 29 16:45:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 16:45:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.972908.1361175 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9o5K-0001Fb-MH; Tue, 29 Apr 2025 16:45:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 972908.1361175; Tue, 29 Apr 2025 16: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 1u9o5K-0001FU-J3; Tue, 29 Apr 2025 16:45:30 +0000
Received: by outflank-mailman (input) for mailman id 972908;
 Tue, 29 Apr 2025 16: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=nK9Z=XP=linuxfoundation.org=gregkh@srs-se1.protection.inumbo.net>)
 id 1u9o5I-0001FO-SE
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 16:45:28 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 59cc58b6-2519-11f0-9eb4-5ba50f476ded;
 Tue, 29 Apr 2025 18:45:26 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 2DF546843E;
 Tue, 29 Apr 2025 16:44:59 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9323BC4CEED;
 Tue, 29 Apr 2025 16:45:24 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 59cc58b6-2519-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org;
	s=korg; t=1745945125;
	bh=eeAeEonLrNWCIiVRTIaWpy8EQ+5O3hduLc4DrEEn4PA=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=0m0phUgYrmMf0lqXM6NOo3sH81MH9VgXcCv5HcLfhuRDGNd0THSOUvCT85kQ9ED/P
	 M1jhbCGiQb/KPvQ+lu1G/HMNwW2uMFCEWfc83v7m66M3BPrRUUJZveLHreUpOMu33a
	 s4K4eEOBCJmaOGDH81x1xN/PuoKFS6ruDaASwGA4=
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: stable@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	patches@lists.linux.dev,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	xen-devel@lists.xenproject.org,
	Kees Cook <kees@kernel.org>,
	Sasha Levin <sashal@kernel.org>
Subject: [PATCH 5.4 010/179] xen/mcelog: Add __nonstring annotations for unterminated strings
Date: Tue, 29 Apr 2025 18:39:11 +0200
Message-ID: <20250429161049.810888896@linuxfoundation.org>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250429161049.383278312@linuxfoundation.org>
References: <20250429161049.383278312@linuxfoundation.org>
User-Agent: quilt/0.68
X-stable: review
X-Patchwork-Hint: ignore
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

5.4-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Kees Cook <kees@kernel.org>

[ Upstream commit 1c3dfc7c6b0f551fdca3f7c1f1e4c73be8adb17d ]

When a character array without a terminating NUL character has a static
initializer, GCC 15's -Wunterminated-string-initialization will only
warn if the array lacks the "nonstring" attribute[1]. Mark the arrays
with __nonstring to and correctly identify the char array as "not a C
string" and thereby eliminate the warning.

Link: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117178 [1]
Cc: Juergen Gross <jgross@suse.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>
Cc: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Cc: xen-devel@lists.xenproject.org
Signed-off-by: Kees Cook <kees@kernel.org>
Acked-by: Juergen Gross <jgross@suse.com>
Message-ID: <20250310222234.work.473-kees@kernel.org>
Signed-off-by: Juergen Gross <jgross@suse.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 include/xen/interface/xen-mca.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/xen/interface/xen-mca.h b/include/xen/interface/xen-mca.h
index 73a4ea714d937..5db6116cd042c 100644
--- a/include/xen/interface/xen-mca.h
+++ b/include/xen/interface/xen-mca.h
@@ -365,7 +365,7 @@ struct xen_mce {
 #define XEN_MCE_LOG_LEN 32
 
 struct xen_mce_log {
-	char signature[12]; /* "MACHINECHECK" */
+	char signature[12] __nonstring; /* "MACHINECHECK" */
 	unsigned len;	    /* = XEN_MCE_LOG_LEN */
 	unsigned next;
 	unsigned flags;
-- 
2.39.5





From xen-devel-bounces@lists.xenproject.org Tue Apr 29 17:10:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 17:10:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.972922.1361185 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9oTT-0005Vz-Ix; Tue, 29 Apr 2025 17:10:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 972922.1361185; Tue, 29 Apr 2025 17: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 1u9oTT-0005Vs-G5; Tue, 29 Apr 2025 17:10:27 +0000
Received: by outflank-mailman (input) for mailman id 972922;
 Tue, 29 Apr 2025 17:10: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=nK9Z=XP=linuxfoundation.org=gregkh@srs-se1.protection.inumbo.net>)
 id 1u9oTT-0005Vm-7n
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 17:10:27 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d4671174-251c-11f0-9ffb-bf95429c2676;
 Tue, 29 Apr 2025 19:10:21 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 41B374A2F5;
 Tue, 29 Apr 2025 17:10:17 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id CE9D2C4CEE3;
 Tue, 29 Apr 2025 17:10: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: d4671174-251c-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org;
	s=korg; t=1745946619;
	bh=ujXrskDNZHgj626E99wTkIz+7xP0UBqFdz7sY1XuAGk=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=oqEEudFz3qDRdkTCuQkShg6i9f9D0YI5z+w5aWy4xD10KCEg/KmhN9YDDV3myyCoI
	 3Y0Jh+R/eUM+PAoSoKiN/avGb+1SCxhV0JPCf06rcpiQJi635OCOjSr4coHqu2YCnh
	 KIRzFm/1tbfk0XZAhlg3/VoXrD13nqQLr0lEvE00=
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: stable@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	patches@lists.linux.dev,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	xen-devel@lists.xenproject.org,
	Kees Cook <kees@kernel.org>,
	Sasha Levin <sashal@kernel.org>
Subject: [PATCH 5.10 015/286] xen/mcelog: Add __nonstring annotations for unterminated strings
Date: Tue, 29 Apr 2025 18:38:39 +0200
Message-ID: <20250429161108.478251295@linuxfoundation.org>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250429161107.848008295@linuxfoundation.org>
References: <20250429161107.848008295@linuxfoundation.org>
User-Agent: quilt/0.68
X-stable: review
X-Patchwork-Hint: ignore
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

5.10-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Kees Cook <kees@kernel.org>

[ Upstream commit 1c3dfc7c6b0f551fdca3f7c1f1e4c73be8adb17d ]

When a character array without a terminating NUL character has a static
initializer, GCC 15's -Wunterminated-string-initialization will only
warn if the array lacks the "nonstring" attribute[1]. Mark the arrays
with __nonstring to and correctly identify the char array as "not a C
string" and thereby eliminate the warning.

Link: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117178 [1]
Cc: Juergen Gross <jgross@suse.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>
Cc: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Cc: xen-devel@lists.xenproject.org
Signed-off-by: Kees Cook <kees@kernel.org>
Acked-by: Juergen Gross <jgross@suse.com>
Message-ID: <20250310222234.work.473-kees@kernel.org>
Signed-off-by: Juergen Gross <jgross@suse.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 include/xen/interface/xen-mca.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/xen/interface/xen-mca.h b/include/xen/interface/xen-mca.h
index 7483a78d24251..20a3b320d1a58 100644
--- a/include/xen/interface/xen-mca.h
+++ b/include/xen/interface/xen-mca.h
@@ -371,7 +371,7 @@ struct xen_mce {
 #define XEN_MCE_LOG_LEN 32
 
 struct xen_mce_log {
-	char signature[12]; /* "MACHINECHECK" */
+	char signature[12] __nonstring; /* "MACHINECHECK" */
 	unsigned len;	    /* = XEN_MCE_LOG_LEN */
 	unsigned next;
 	unsigned flags;
-- 
2.39.5





From xen-devel-bounces@lists.xenproject.org Tue Apr 29 17:11:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 17:11:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.972935.1361195 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9oUE-0006Gx-08; Tue, 29 Apr 2025 17:11:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 972935.1361195; Tue, 29 Apr 2025 17:11: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 1u9oUD-0006Gq-Sm; Tue, 29 Apr 2025 17:11:13 +0000
Received: by outflank-mailman (input) for mailman id 972935;
 Tue, 29 Apr 2025 17: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=r0hc=XP=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1u9oUD-0005Vm-4T
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 17:11:13 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on20619.outbound.protection.outlook.com
 [2a01:111:f403:2415::619])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f04096da-251c-11f0-9ffb-bf95429c2676;
 Tue, 29 Apr 2025 19:11:08 +0200 (CEST)
Received: from PH8PR12MB7326.namprd12.prod.outlook.com (2603:10b6:510:216::7)
 by SA0PR12MB4399.namprd12.prod.outlook.com (2603:10b6:806:98::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.33; Tue, 29 Apr
 2025 17:11:04 +0000
Received: from PH8PR12MB7326.namprd12.prod.outlook.com
 ([fe80::6d76:9c33:d230:8264]) by PH8PR12MB7326.namprd12.prod.outlook.com
 ([fe80::6d76:9c33:d230:8264%2]) with mapi id 15.20.8678.025; Tue, 29 Apr 2025
 17:11: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: f04096da-251c-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=xa6QHLgz23AZ8lxupkoS5UYg8JVVxSWEpsAd1ZBSz2V4+oDhyySqGKLSpSDpsGRFSGGa6dxihwYXeW4I66jFfUXueNSY7PShrWVvUAHhfZ3jK3Fjn5sk9/oQ3ArawLb2UJWIGgD3V4uch3s1+1ZKtTqfeI+CgHkG+qBRhgUTtSebAxv00rKN5FvdHGTd+iWJAzsESqlk4zT1mOXgvT2QKe7VRxEFwuw1/CzaVnPwo4Q1iCqFlY9ZompQoU30w02rCC2eGJL6BOv7eiCAAKzdqsJaF8kOpIufUYcYWTgOXWjq5SndMDfsFJlcjOXlgoK29GsjV3l2kdjkzlzLtPbokw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=xd2LDbDW2HMjGdIZYsGPKnlRJMWngP020+yceTnodD8=;
 b=aXaUMhVRW+qbUqx+ZnOvzi7XFbA4yFnMg91RLEjH7FnSAVomBfQP1lB6LtFSUn8+ch/rqZMr5gAwXehB9zhMZmd1x5WiGD3H8dOGvufeKKBf8lGzQkSrkwX1KHIzqVVcoHsCRqlk7Ul8Vf9jZi64j4+VsQdhd70+TJ9RfSzF5+gISiYEliIwRG3K/V8925wk9sgAH0a66sDFKIeGddPqbCIng9Y2PIov5+DM0uTe3MayaOjCvjnXEtccx80twIP57k1HbujQT7nZQbZM0l3SmCtym7/n/0TAdpKBuwq9cNVqDY3yFCa7ytu/70IsGn2DRb3AIvtxDliPEuoAk725kw==
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=xd2LDbDW2HMjGdIZYsGPKnlRJMWngP020+yceTnodD8=;
 b=SzM5HPR/f1u5XU6qWA6kd/P1R3tbsmInYrX3saz+s5mglIoZk/IGVo2EuAceX8o3OxFup6LEjBvGGVi5c9JT7PE1i4WrqUsyCsb5liz5nsqijzxU2UYkfFj9oGHA7FW/xOtvjqn7Z1csY0uyR2A5VxVpSTYsHC8W2eve/wVXoGI=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <2186ab44-eb9a-48f2-9798-c5711349d2dc@amd.com>
Date: Tue, 29 Apr 2025 18:11:00 +0100
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 1/7] docs/arm: Document Xen booting protocol on Armv8-R
Content-Language: en-GB
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>
References: <20250429152057.2380536-1-luca.fancellu@arm.com>
 <20250429152057.2380536-2-luca.fancellu@arm.com>
From: Ayan Kumar Halder <ayankuma@amd.com>
In-Reply-To: <20250429152057.2380536-2-luca.fancellu@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: DB8PR04CA0004.eurprd04.prod.outlook.com
 (2603:10a6:10:110::14) To PH8PR12MB7326.namprd12.prod.outlook.com
 (2603:10b6:510:216::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: PH8PR12MB7326:EE_|SA0PR12MB4399:EE_
X-MS-Office365-Filtering-Correlation-Id: ef9ce136-978c-4633-d2ee-08dd8740d27f
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|366016|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?SDN6MUJ6WFpYOXJFZUt4czVBSnRsTlk1bGxZc0Jua293ck1FQ0ZrS1VLcm0y?=
 =?utf-8?B?eHhnb2c4aEV0YnVoTk56V0oxYlM0MkNUNm9rMlNtZ1hqbG8wRlhjOGI3akZh?=
 =?utf-8?B?cEcxeWtNSkptcEY1TmpQQ3BuTnhWaU9UWWNPZG5RaUhhTXVQWFJGblFJb3Fk?=
 =?utf-8?B?TGRJcGZZTWRLb0dzQ2h5UHIrUGdqTjF1YVVoM0p5ZVdjY2pxeUlkTGdtdTFo?=
 =?utf-8?B?MG5FR0FMYi8xckoxVndPd2J5Q2ZiZU5hRmI5dkxnQnJ6Yjhab2xPTXpoVzRn?=
 =?utf-8?B?U3pyV2pGMkdBZ01wWmpGcEZGRnR3SFBqWEpPT25kSFovQkhtR3djRUdmZFNB?=
 =?utf-8?B?WVg3NTRSZlZVYXVpYVNNc2d6dUk0bEk2UlQ5NFdtRkFBS3orcm1rZHY4Yys1?=
 =?utf-8?B?Zkk4S1g4YXV2Qk92YW1vcjNsR3k2Rm5MclYwSUtWZkwwYkpGNGFmZUoxKzQ1?=
 =?utf-8?B?VEhiQk9Vekd3OEI4QUpibUNsYjBMenJ2ZjkxK09UUkwyQk9PR1hISU1VK3BU?=
 =?utf-8?B?bzJHbURTOWdaVW5WWnYxQkJCWHduVGpWbW5FRkp4WVdSQXFaRWgrVE1wOGEw?=
 =?utf-8?B?WFJEbWdGWnhjMlRxcHVmdngwaEpyeEpHS05OK0hEWEdHekMrVDk3c0NDSjYw?=
 =?utf-8?B?M3grNUh3UmFpbkp1aXZ3Y2l6c0t2SXRMRkc1SlJZOWh4eHFVQlJlTkswS3Vz?=
 =?utf-8?B?U2tscWRxaVZmQmkxaWNTcGU3NEZwM2xxQ2FqL0VJZ1pmU0pveGp1N0FwMDVy?=
 =?utf-8?B?eEE0b2pUdS95dUI3SlJkTktXMXJDMjR1YldNMUNZUURJdjArN21pVWh2a1k1?=
 =?utf-8?B?WE1obkxXN2lHcUtjelhZb0xvbDNlVjRrV0h5b3pjRGlQR0FuR2c1bmw5eGt6?=
 =?utf-8?B?OUNhRlVheWlHWVVaMi9rMDRBMzBGU1NGRTRwR2NzUmcrb2VQK3lkTUVnS1BK?=
 =?utf-8?B?UWRoa0NXRWVybnR6cmZ1WWNPNVcvWldWTExZV090Z3c5ZjU3U1duNU1SQWNp?=
 =?utf-8?B?OXpWMExDYWw0Z24rWUlyOURJdXV6NVE5UFZ3TVc3QlhpeWtPMnlPSGw5bCtR?=
 =?utf-8?B?bzkxMURHbE5LRnEwV0ordm5pdytYZEkxVk1nczRIQmhCb3BZUjJ2MlhTUEJt?=
 =?utf-8?B?VXFhU0NEWDliT1pCY0xjOHpNZE5tTFdaVFlrQkk2ZFBFanJ6a0lVY28zbGgr?=
 =?utf-8?B?N0FtcGZ3R21OMDZiVXI2MjFCYjhkRDBxOUxZcHRySUNQMEIrTlNyaTZxSFpn?=
 =?utf-8?B?ajlzK0tPbjVreDJzQXAvVzdCdTNJVGFtUVhoekNZNFlsMUJqd2pzSWlETmNX?=
 =?utf-8?B?bCs0MEdIZjQ5dkNHWHBCS1ZCeUlSdU10RjJhbDJYYk9zdzV6V2lkWU1XWHR1?=
 =?utf-8?B?RFZpajBRK2daMXB0MVptUGpVb2JNWVF6NDMrWGhtQURvc25BczdxSzd5OGsy?=
 =?utf-8?B?VmxiSTlyTTR1YVc1bjVKeXNrNldqVHE1M0dHUVVSRUFxWm5lR2ltZ2JnWUtB?=
 =?utf-8?B?N3RPdS9RMGlkTldCd2hXNkg2OUN4QklIcTQvUG52Umd5M29YeVBiQkw2NEU1?=
 =?utf-8?B?bU9iN0w2emlTeWxEaUpBZVZIazBKRXFzOGx5ZGdGTlg3RkRYbXpiaEx2SU41?=
 =?utf-8?B?YmVDcGFvU2oraVJSdlRXQ1N5RUxCeGQ2c0lZblRpeVAvcnQ1Qm00d21jWjJo?=
 =?utf-8?B?RWpkdXdJZFQ1WUdTWnRxRVl5ek5xU3dSQnJUR1NVZmFLemFJZlR5WjltVmZa?=
 =?utf-8?B?YkNCcU5UMjhXZnkvYitxaS9vQm5HYW81VkdsVzEySXVnQmV6bXhMN1IyN3BC?=
 =?utf-8?B?aUo3NWVoWE1QZk1oT1R0Nkl3eTNoSEkxY0hhNTY0TDVCZkYyRktJVTZyODNQ?=
 =?utf-8?B?R1RVc2Q0K2JnUmV5WkpRZUlwa3gwSDdKOEhKOCtZQ29sVUR5djAzc0k3d3dz?=
 =?utf-8?Q?3EU0WWpLnE0=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)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?S2JUdEpsNnhJTVUrUXRyQkhlaUF6enRzQXN3c3VJTzJjK0owZmNhSHBzWXNL?=
 =?utf-8?B?MUJRY2JTRjRIZlF2bWFFVU1teWtqeXpveC9TYXZIVDZ3VXdhbmlsdHRLYnNs?=
 =?utf-8?B?Q0luNjRjaGd4OWZuRmJQZW5XeFg3NEJFN0hZdHNsWnMzNGxjV1h0TE13c3Iy?=
 =?utf-8?B?TVdVTlE4OVl3cGhXaWVOeDBEeEwzUTNRc3VkNXJuRXpmQUFNV0xMVmhMWGt3?=
 =?utf-8?B?eHB0RkxGVUNoRWN4dlk1R1VTT2REdTJ1Ry9kLzVIelNJZGlHQmFxMWxWd1Er?=
 =?utf-8?B?R2RmUXZGTlJXZENydXRXczZqYWpXdVpSL1l0SXJpZFJsUERLK1dYVXpzcmR2?=
 =?utf-8?B?ZDhTYnVOY0lTTmtBNjJDUGVXZktydlNOSVR2M1VWdXphRjBKVm9oMlFwbXpQ?=
 =?utf-8?B?dEdlUXRPOSt6Sjd1dktPeTAyL1VWR1RxSURWNTc4LzhCOFIwMXRTQ1gzRzlH?=
 =?utf-8?B?RmkyejVWMGFrNkhMQ3FhR09WZXY0cFlWMlFZaUR6TW5iOXN0RGZHY3JUWG52?=
 =?utf-8?B?a0JTOVpKVlVndjlRTDJCMDBYRWhkQ0xWNXVJakE0ZjBjNHdhU3pmWDFCN0V3?=
 =?utf-8?B?VnZnL3RLYkw3S29EV2dmSXFveDZjRlpnYWJhblNkUWF2MjQxZFlIM0xKbGNx?=
 =?utf-8?B?d3lmaUpsa29RK1lUWkt1SEJ4UmJjUFB2YUI2MWJ2QktxTkhINm50NHRkeUh3?=
 =?utf-8?B?SkdLUEFRWGxSbnF0YlhQeVJ2eTBnZ0dXYW9zSDVsbnZQMVA5S090S0JzNDBC?=
 =?utf-8?B?MUNTZFRIK2s1MzI3MDU3QzlMeWtKM0g5MmhkQzZZM3pjTi8veXBKUnF6TVMw?=
 =?utf-8?B?YklwWXljSTFRZmNoaDVUeUQwVlk4ZGRNOGd1aFVkRVZnb2pTQmR0UXJQbmlk?=
 =?utf-8?B?V3E5VTR3RExLdGNJU1FvUU5mTWVhWXFySDZqU09sQXNod2NoUFhzaFJDOGFv?=
 =?utf-8?B?dGN2TnFxaDE4VVlINzczZE05WHprVCtWT3F5T3ZVa2d0YllINFpKUUcxN3JT?=
 =?utf-8?B?NkFzWllZNFRuWS9KOHJUMTVJNUNjTCthbkd1bXVYVVpGSXE5NVJOUlVlOVRn?=
 =?utf-8?B?cW9HazMxQno0eHhaV01VQXN3ODB1SWFzb2FzOTVYbkYwKzdVSnB3c0pJZDRW?=
 =?utf-8?B?bWdjclpoT01oY25JcXZKcmdEb3dOa3djOS9obExDbVZqa1ZKMFpNeW1UaTV4?=
 =?utf-8?B?ak40dWF2UFg0UFUwcGI5Y3FDWmwrWVRZdlJXa3BNNUVXZXNmQWhnN0dpd0V2?=
 =?utf-8?B?NlRHTmRyYkIwdlVqV1JUUlFKNTZYNGlzVzVSckFqcG1zZWJiazkyVFd4VWpz?=
 =?utf-8?B?Y3orTk9PVFNxOUJwazZlUzhJODdRekFmdFFueVZZSmNIS1Rxei9Ta09wQ1Q3?=
 =?utf-8?B?elJoQTYwd1lOaER0YkJ6M084cStnaEJTZ1UySzBxZTRwU1k2ZTBFV01vZlNX?=
 =?utf-8?B?Vnd5ZDEvaDAvWkhCQXJYZ0crZ1JKS1A3MTlnNU9BeTBlZWk5Q3JNaDJuOU9u?=
 =?utf-8?B?RDJBTjBxWnN0R1hZT2lEbHFNTTNMZFJ1elpxVXJMQnJ6Qjl3RVJ0OEFqR3Jq?=
 =?utf-8?B?bTNLa042Slp0MURCWlpQVXMzeVZzODMvMnRaSmVYV3cyUm5keFkrVDVjUWlJ?=
 =?utf-8?B?VHIzUVZtQ3V0RmRXRDAxZmhES1Q2YXlMNTF0SFFneFA4USt6TmhGelVEbFRN?=
 =?utf-8?B?bXh6d1lkSWRlbnJPZlZ6VG5ZaG53aVplWW92NHg3NEQ4dFBwL0FTemYvV2M4?=
 =?utf-8?B?N0NlQ284MFZkNWxZbGhEZ0hzVUt6bDdRNmE5TGk2Q3c2cGpTQWl6TnhzdXRX?=
 =?utf-8?B?REtiYmZwQUgxTk1IK1laSjZLVERFVkFuajJLZ1pTb1lUTUVjQ2t1Mk1nakdm?=
 =?utf-8?B?OVRTYlhYNlpweUxZZEMvL0YrTFUxQU0zNXByNW1OeGJFbURBYnp0YnM0Umpx?=
 =?utf-8?B?cEFtQk00eHlaY0hiSUZUU1ZsTzhaUmxOMmUvWnZKVlJqTkNBSWpXRXBKWEFJ?=
 =?utf-8?B?SmU5b3VjOEY2SngvVE44U3hzNVBXcFJ3NnRiTC93T05PWkRCTlVyd2wzRnJy?=
 =?utf-8?B?WUVuZG1HWEZ3WkNHMnVhcGJpUXdKTjRWTkdaa21ZaFl6RW55MnB5Y1FRL2pj?=
 =?utf-8?Q?4QP1bNtZ1g7zGzzVu03OWCyQp?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ef9ce136-978c-4633-d2ee-08dd8740d27f
X-MS-Exchange-CrossTenant-AuthSource: PH8PR12MB7326.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Apr 2025 17:11:03.8712
 (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: /Hdrgfppa1aDagzHQ2AzC6oVCMWpBC7dS8d0iJ2vVIVCRLoiAnmu8Dx7ZGu81Jz7EDfRmkaA4jfsAvUVPuSDyg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR12MB4399

Hi Luca,

On 29/04/2025 16:20, Luca Fancellu 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.
>
>
> Document the requirement needed to boot Xen on Armv8-R platforms.
>
> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
Reviewed-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
> ---
> v4 changes:
>   - New patch
> ---
>   docs/misc/arm/booting.txt | 8 ++++++++
>   1 file changed, 8 insertions(+)
>
> diff --git a/docs/misc/arm/booting.txt b/docs/misc/arm/booting.txt
> index 21ae74837dcc..719af74f1e69 100644
> --- a/docs/misc/arm/booting.txt
> +++ b/docs/misc/arm/booting.txt
> @@ -62,6 +62,14 @@ Xen relies on some settings the firmware has to configure in EL3 before starting
>
>   * The bit SCR_EL3.HCE (resp. SCR.HCE for 32-bit ARM) must be set to 1.
>
> +When Xen runs on Armv8-R, the highest exception level is EL2 and the only
> +available state is secure (S) on Arm64 and non secure (NS) on Arm32, hence the
> +above requirements need to be adjusted to this case:
> +
> +* Xen must be entered in S EL2 mode on Arm64 and in NS EL2 mode on Arm32.
> +
> +* Xen must be entered with MPU off and data cache disabled (SCTLR_EL2.M bit and
> +  SCTLR_EL2.C set to 0).
>
>   [1] linux/Documentation/arm/booting.rst
>   Latest version: http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Documentation/arch/arm/booting.rst
> --
> 2.34.1
>
- Ayan


From xen-devel-bounces@lists.xenproject.org Tue Apr 29 17:16:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 17:16:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.972951.1361205 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9oZV-0006ub-KV; Tue, 29 Apr 2025 17:16:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 972951.1361205; Tue, 29 Apr 2025 17:16:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9oZV-0006uU-Fu; Tue, 29 Apr 2025 17:16:41 +0000
Received: by outflank-mailman (input) for mailman id 972951;
 Tue, 29 Apr 2025 17:16: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=r0hc=XP=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1u9oZU-0006uO-GU
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 17:16:40 +0000
Received: from NAM10-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam10on20607.outbound.protection.outlook.com
 [2a01:111:f403:2413::607])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b5642e4c-251d-11f0-9eb4-5ba50f476ded;
 Tue, 29 Apr 2025 19:16:38 +0200 (CEST)
Received: from PH8PR12MB7326.namprd12.prod.outlook.com (2603:10b6:510:216::7)
 by CH2PR12MB4230.namprd12.prod.outlook.com (2603:10b6:610:aa::23)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8699.19; Tue, 29 Apr
 2025 17:16:33 +0000
Received: from PH8PR12MB7326.namprd12.prod.outlook.com
 ([fe80::6d76:9c33:d230:8264]) by PH8PR12MB7326.namprd12.prod.outlook.com
 ([fe80::6d76:9c33:d230:8264%2]) with mapi id 15.20.8678.025; Tue, 29 Apr 2025
 17:16: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: b5642e4c-251d-11f0-9eb4-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=AjXqffX47x0cR9/0zhqO8xF0WDxsz504TyIr4P45dI0IUKquo56+zVagrwmQWX9URN58tIqKPZYQ5pugSjjK6TFk8/WljvVyt0iLNhXEKfILd+WgtMXiLrpLJFMq316SLAL+K8QG+HVsKTHGqvNkC2VtweMgc7rLEYPovdjToxbJEx0cSZKxvvv9tkqOaLq/oyWPDsPslL5xmXK7HF5r5BIYcHSrHAchnkFuclRYP/GqqCfTbjdBmQqlg38K/cwgdSQ3Ky//H++CBaU1zuKR60C43BqPcvEhW26aB8jDQJdtteWI/1WF3z/rHDJaOaPmDRVuR3YDY1uLe9SB4/0sTQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=63kJw4oF/LT199qHv25YNJCi12qShmLJayBJ08PrzUE=;
 b=E47Kf+O0W20RJtNhyyh3omxZo8yjgsow0Fj67/sAqNHVXDPsEY0bekyZqAiNa6eO9mjEMsRltV4qGyEuowJJBGIjdpG+6K6hJiAvDhyk9QPQJaFO1BqUDIukfnkooQwaBZeX11QsGGFPSXG8YRPFN+9F9phv9tThUx8gxWeiVKKbD7jPK3wCyADa0I0C0ikZgmA8t6oi7TOkL8VtBQcbM6U8xWXZUNPqsteKlhR/FvMDdIixyR7nxvCqwFY30jcaU+WGrraR83YDv2QErEf8V10P8XdonD0jqxDyIrfbUw7AdxqkthIo84jX3T2YYiT/frOfRPbuwimQJN2LhetgaA==
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=63kJw4oF/LT199qHv25YNJCi12qShmLJayBJ08PrzUE=;
 b=Mo3LrtGv1zPJKc6+dDSmvYHPeJa+WdUILzVVBSIg/seuKBgnr0ItRvCsKnQAWuEdwkoP98tKAal2ul1IMqHP2ji16VImglwlb9bQVYfAPnBJFxZBc54BwIVCgyjG1OdLYWMyOBkqMpadxCjEckhYaBadRTGXDFc5dp5rSTSGCwM=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <2cfb5c97-4885-4a24-b77c-5953d9cb6245@amd.com>
Date: Tue, 29 Apr 2025 18:16:29 +0100
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 6/7] arm/mpu: Provide a constructor for pr_t type
Content-Language: en-GB
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>
References: <20250429152057.2380536-1-luca.fancellu@arm.com>
 <20250429152057.2380536-7-luca.fancellu@arm.com>
From: Ayan Kumar Halder <ayankuma@amd.com>
In-Reply-To: <20250429152057.2380536-7-luca.fancellu@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO4P123CA0358.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:18d::21) To PH8PR12MB7326.namprd12.prod.outlook.com
 (2603:10b6:510:216::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: PH8PR12MB7326:EE_|CH2PR12MB4230:EE_
X-MS-Office365-Filtering-Correlation-Id: 8e124d2a-f40d-45c4-3d48-08dd874196dc
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?ZW8zWHI5TDJBNk91SG9oTzdGVGNqWHdVOGdTVlM3ckpmbzBqWG9STllmdGlm?=
 =?utf-8?B?VmRtNkFueXRNaWhmdlNmanQzTUlRenUyVkFoT2ltdFdnOGxCL0xuU09PR0di?=
 =?utf-8?B?UDRQT3psZGd3ZmptYWU1dTdETHZQbEFSSUkyeWhOZmQzb1FuVmZ6Qzd6Qktu?=
 =?utf-8?B?YXg3eklWeXlSUzVXZklCREhWZ0M1NnJZU05Jc0pXRHFCYllaUHc4TlJQU0Fu?=
 =?utf-8?B?bk1lajRvQWVzVjNkS0VzMUFnQ3VOSUdwVU5wZzVsZEZ0Q0NWQXEzd2lZeFJI?=
 =?utf-8?B?azRPVU1vWC80ZHpmOXFCa3IwZW9YQUF1RW5OY0RvYXJuNDBETlEweVNUMzRF?=
 =?utf-8?B?dUZsVWZGZW9XcGRkbjcwZDhqWkpacHNyQ2o2MU05TXA1VjJZVittVm1TWUlL?=
 =?utf-8?B?bGxCTm9sUWMwM3FoWXJRYXJPNUFnRXNDRURReENMZHdDNmNVWVpIOTU3dVlY?=
 =?utf-8?B?azkxNit2M2toS01oK09aZGMzNXJrYlRwaHRmN3FtYW54NTFUcjhiZFlUMFFn?=
 =?utf-8?B?UmxnU2RmN3VvYndGRnJTV3FKbU1ZcUQrVmRhWTNPUXVUTi9kZklxU3RpRldT?=
 =?utf-8?B?S1FNTWNVeldBbEp4VlUyQ2N2Zkl1Nzdra0dXeGo3ell5S0VNT3hPc251NGlV?=
 =?utf-8?B?dzI0WUhoOTErd2pPQUxNSWFBSE53YjRUcGZkbHBrMkNkOEI2Q2l1ckZOZnlR?=
 =?utf-8?B?R09TY1RCbGVsU0k0WFRnczc2VzhDSjY0OURSaHNIYldhbjJyQTFLald3STVJ?=
 =?utf-8?B?cmtJN2FMMEd5MVBWU1VMV3BRNGpnZ2RBemcvSmhRcVZTeHNuZ1k2VjA1UCtH?=
 =?utf-8?B?L3Y0N0NKQUgvdG1tbXdIbEdDUElndldoOW5xR0lRdEV6cTUyU2hnRnJSaW85?=
 =?utf-8?B?ZkpXQ0ZZMXd3NHVWVVdIbDlaOEh2ckowWktSZUU3d085OFI3UXZlQkRRZThR?=
 =?utf-8?B?R1paNGVDV3VPaVhUVTlEdXBiNkRwRGwxS3hKSGpHRUlSRjM0UHp1QlZaNHY4?=
 =?utf-8?B?Y1NTbm85UzVVcEtYSGhGYVN2azlpN3lsemFlY1R5VmpoVm1qTXZsMUpBWWFz?=
 =?utf-8?B?ZEUxRDdaeVdtMFA5U1ZqYzZJeVdsTThyVDZqNVI2a01wOFgrWkxramRha0tt?=
 =?utf-8?B?OWJQS0U5ZHRmNXY3cFVJcFUzZlRyc050VkQ5ais4emsxbm9MYyt0S29lWWtj?=
 =?utf-8?B?RmZwZjl1L3E3d1ZYZGF3VlJPalVYalFQZTVxei9MZkFlUFYwbnJERFdCYzNC?=
 =?utf-8?B?ajdOR1N3TEpJVkxuamYyZGtzaEZwWTN4ZFRST2gzNEx1ek5oVlRCKzBBcHdn?=
 =?utf-8?B?K09pL09YN0dMYXliTmtBV0pra1BhWjRsY3plSUlIa2tqaEcxRTQ2R3ZnRzhx?=
 =?utf-8?B?eHlOdkFnMnJsUTNGYXhHdjRpUHBxZU5WYmkyRExuS25uamwwTU9nY2pQaGVr?=
 =?utf-8?B?aWg3Q2lhVW56bGtCeFpnSko2cWlKQ2l6NitwRVkxUHY0ZVFYMzdFamRCdStT?=
 =?utf-8?B?NTY2bFZ4TUVNaUNMbVNRQ0grVXQ2SkdGbHF3YVJyVjJvNVMzc2t4a21sOWFK?=
 =?utf-8?B?TGtDSXpoZzB2NUJ2ckpSRWlLem9JMVVra3U3QjdTT1lkRVEvanFWdEI3TUNa?=
 =?utf-8?B?blN5V1BuRFlBN0xkR2hNZm9pV0lWR081TVJzN3VSWEg4Y3RiS1JBSWVMR2lv?=
 =?utf-8?B?RnZtRDN6dnBJdzBPSXNYaWlTTm5BM2V0TFFvSHFsMUxWSkYxeVRXUitKQUFq?=
 =?utf-8?B?UlRLQ1Y1Ym9iMDlFc0tpMlZWdlpNdHdPZnFzSUt4N2VOczR4MnlxZWRJamdv?=
 =?utf-8?B?QThHVTB1cGNhdUZ2Ti94V1B4VkR3QjRkSjdxUU55OHJnR0k3TU9VVy8zK1VP?=
 =?utf-8?B?ZktkZ0t6Y2diaXlydFFIMlN0K1YxU256d0I0UTVxSCtlZFVTUjZ3QmpvMnZK?=
 =?utf-8?Q?88Vse9Adw0I=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)(366016)(376014)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?QjFSTlZsYTRFWGVLc3ZqZFZnSmZ2T1ZDZjNIM1BiUVl0MFBxbWJBZ2x6b3hS?=
 =?utf-8?B?eDFpdGRWYVhpZFBiZzRPaEJqc0JUZUM4OU1hSkVUTzJhR1JtRWp5cEZ0bEZj?=
 =?utf-8?B?c2JHY2V3RmRBY0hLVFVENWxBT0t4WFkvTlI3ejFpb3dWV2pwU2wwOEowOS9T?=
 =?utf-8?B?Y3BXSkFZNkFRMjBGQUF5Qk1PTkFaWlVJMlZPVHpmODgyQUxLVzVvZTRQbXM2?=
 =?utf-8?B?WnhaZjJmeERLbnNmYkFZZENwN0o4bEdrQ0VhRzc2L2ZLNElnbmFaS21RR1lP?=
 =?utf-8?B?c0xHN3JkTktNTXd3Q0IvV01IZ1B4WkhaclNxTWEydjNoN0gvYkxVdkNucUl5?=
 =?utf-8?B?eUhTL3VtcjhrZS9YSkJ4aVpqVUhZT0JWcVRCQzIxbnl6OThqenpVbHR2a3ZD?=
 =?utf-8?B?MG83SVFya1FJNnB2aWFrSGVvR2Nvby9VUVF5SDROSVlYOG5hY05TSmJmZDd6?=
 =?utf-8?B?TGUxOE0zMG9nWVN3USszYTJMNVJYM044dERKRjNuTzRvS21obmpGN0RhaEM4?=
 =?utf-8?B?dGJlKzUrNnJ4R0RpQmZmcFVqS1lhVDdZY1hRMS8zeFd0YmpJalA5RklRTnU4?=
 =?utf-8?B?bTl3bGI3WWFzZWwzaTJBZFkrNEhVWDZjYzJYVzBkdStiTStjOGk3aTBmSVND?=
 =?utf-8?B?R1ZETEp3QTNQUUwzM25UN21yVTZwTUtmWXJPNERuY0tWeFhEMUtwcDlwZTAy?=
 =?utf-8?B?YkQ2WUY2UHRpdFZPckZ4SEx2MmdhdUE2ejltZTBRaVBnWGxxaUc2UUlueExJ?=
 =?utf-8?B?Mllka1RXeGQxME4xc1Uwa09ZSDBIS2U0Vno3OFc0OU5yQ1d5Rk1ldWlsckV1?=
 =?utf-8?B?cHZ6SFdSbVVuM0pndmVoWGFxUGZqanZkVVQ1REtSTXlKR0M5SS9GZ3JXQjcz?=
 =?utf-8?B?L0UyeDFKS254K0pFd1FJK3hJNFVPRWNDUVhmZ1FWL0pGYXlFRnRsa0xGb3ZC?=
 =?utf-8?B?N0UyZ0hyU0FkVkRHQmE0a09zQ0RVUzhJU2huRTFPZnA1RjlBQTBOUWpnRHQw?=
 =?utf-8?B?OGtiLzZMK1QyVUFFYld6Y1BUeWVqVDcrUEY0TVBCZ1plYWUvbFM5SHVybjRY?=
 =?utf-8?B?Qm96TUxwVUVDVmQ2OWZuMlFUZ3FmN3dxeEwxZVNIVEdPN3dVOFZnc3UyWmtj?=
 =?utf-8?B?OGlMbk1YcFE0UGQvSDZYTXQzaFBFRE4yQmJkRDI5QW53b01rY0Nna25VZmo2?=
 =?utf-8?B?bXRMZzZtN1ZRSGZsUTF1WFBHZE1wc1JkZnVrem1LUHIyTEFTZUhnUmtoeGRP?=
 =?utf-8?B?TUV5bVJwZ3MwWlIvNUlSVjZ4RW1CNDhiaCt2Z0hBem9XVktLTUJuay9KV2FX?=
 =?utf-8?B?NmpvUG5ncHN1cFRHVGZXK3hDRHNnZC9Ud2ZFcTBWeTJRWEFRbk5mbmFPQ0hr?=
 =?utf-8?B?QTBJUjhwSjk1UGRBV2JzL0pHVGVyZEJXNG9WSFlYYklIWERiV3lESENPRzlx?=
 =?utf-8?B?bjFQaENJdTc5MHp3bVpJdmJBc1pzQlhhcVBXYmxYQ0I2VG1BRDVORzhnOGlz?=
 =?utf-8?B?MXNxNlFhUHcxK3RCY3lwUjd4ZUxjWHpyV0NrSDVBZ05Dc3BHSnFBa1hxNnla?=
 =?utf-8?B?Q0l2OU1GYzhyVHYzbytMY3BQM1hmVFBtQnNZY2g3d1g3aDEwdFdpaFlUUmty?=
 =?utf-8?B?aFZPTWRjMEFBbndpalJGMzVXTWd6VjJmWmhhaTdBUUZJYjlZNWE5Y0MxNXFs?=
 =?utf-8?B?TFNySnV2cTBzOW43aERnNXRtNW5VVmRldFk3bmZkUnIzbkszZlpvbmxqNnN5?=
 =?utf-8?B?YVJocDhROTlCekZldWNnczlMV0ZCTjh0VkxOQ2JZZHdzZGNJbEp1R2U3bHpV?=
 =?utf-8?B?d0g2R1NISW9JcmU3bkQ3bUVZQlVubWFFM1U2ZU1VNks1MFR2bk01OWc0R1lm?=
 =?utf-8?B?YnU4K1pOZkZZY3Z5Y0NnbWhUNUNLa29hOWt2c21lQ1VtMDNmZjZjMkdycFRR?=
 =?utf-8?B?ODQ5OTZqRFFwVVBQN0c5R25tb1JzanhEdDdEUlV3WGJQVTNVTHltb2tCN2NP?=
 =?utf-8?B?UlNnTEJpeU5oZm1MWXB1LytTOENjcVhheTdaak51TWNCQUErem1idlZNd1pr?=
 =?utf-8?B?TGE5VGtyYXZDTjdnUjl3UldiZFh6YllJNWFwSE0rT2RRWXlRZEQra2UxRm9X?=
 =?utf-8?Q?OkGMEVtLc75niZE5Kc2UVTY2v?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 8e124d2a-f40d-45c4-3d48-08dd874196dc
X-MS-Exchange-CrossTenant-AuthSource: PH8PR12MB7326.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Apr 2025 17:16:33.2746
 (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: VQ40iga/nglg9y0sZoudsXgsaex25HIW0LME0xzk7w/8rtM31buiySoz03CR2JwXHYzbhfW/Gh4oglwFLAEbHA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR12MB4230

Hi Luca,

On 29/04/2025 16:20, Luca Fancellu 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.
>
>
> Provide a function that creates a pr_t object from a memory
> range and some attributes.
>
> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
> ---
> v4 changes:
>   - update helper comments
>   - rename XN_EL2_ENABLED to PRBAR_EL2_XN_ENABLED
>   - protected pr_of_xenaddr() with #ifdef Arm64 until Arm32
>     can build with it
> ---
>   xen/arch/arm/include/asm/arm64/mpu.h | 11 +++++
>   xen/arch/arm/include/asm/mpu.h       |  4 ++
>   xen/arch/arm/include/asm/mpu/mm.h    | 10 ++++
>   xen/arch/arm/mpu/mm.c                | 68 ++++++++++++++++++++++++++++
>   4 files changed, 93 insertions(+)
>
> diff --git a/xen/arch/arm/include/asm/arm64/mpu.h b/xen/arch/arm/include/asm/arm64/mpu.h
> index b27fccd77550..39233b43a5aa 100644
> --- a/xen/arch/arm/include/asm/arm64/mpu.h
> +++ b/xen/arch/arm/include/asm/arm64/mpu.h
> @@ -3,6 +3,17 @@
>   #ifndef __ARM_ARM64_MPU_H__
>   #define __ARM_ARM64_MPU_H__
>
> +/*
> + * Excute never.
> + * Stage 1 EL2 translation regime.
> + * XN[1] determines whether execution of the instruction fetched from the MPU
> + * memory region is permitted.
> + * Stage 2 EL1/EL0 translation regime.
> + * XN[0] determines whether execution of the instruction fetched from the MPU
> + * memory region is permitted.
> + */
> +#define PRBAR_EL2_XN_ENABLED  0x2
> +
>   #ifndef __ASSEMBLY__
>
>   /* Protection Region Base Address Register */
> diff --git a/xen/arch/arm/include/asm/mpu.h b/xen/arch/arm/include/asm/mpu.h
> index 0e0a7f05ade9..7b82f10d336b 100644
> --- a/xen/arch/arm/include/asm/mpu.h
> +++ b/xen/arch/arm/include/asm/mpu.h
> @@ -24,6 +24,10 @@
>   #define NUM_MPU_REGIONS_MASK    (NUM_MPU_REGIONS - 1)
>   #define MAX_MPU_REGION_NR       255
>
> +/* Access permission attributes. */
> +/* Read/Write at EL2, No Access at EL1/EL0. */
> +#define AP_RW_EL2 0x0
> +
>   #ifndef __ASSEMBLY__
>
>   #ifdef CONFIG_ARM_64
> diff --git a/xen/arch/arm/include/asm/mpu/mm.h b/xen/arch/arm/include/asm/mpu/mm.h
> index e2235e568e81..296fe74c5d61 100644
> --- a/xen/arch/arm/include/asm/mpu/mm.h
> +++ b/xen/arch/arm/include/asm/mpu/mm.h
> @@ -75,6 +75,16 @@ extern void read_protection_region(pr_t *pr_read, uint8_t sel);
>    */
>   extern void write_protection_region(const pr_t *pr_write, uint8_t sel);
>
> +/*
> + * Creates a pr_t structure describing a protection region.
> + *
> + * @base: base address as base of the protection region.
> + * @limit: exclusive address as limit of the protection region.
> + * @attr: attribute index for the memory type.
> + * @return: pr_t structure describing a protection region.
> + */
> +extern pr_t pr_of_xenaddr(paddr_t base, paddr_t limit, unsigned int attr_idx);
> +
>   #endif /* __ARM_MPU_MM_H__ */
>
>   /*
> diff --git a/xen/arch/arm/mpu/mm.c b/xen/arch/arm/mpu/mm.c
> index 40ccf99adc94..2e0aeb486ff8 100644
> --- a/xen/arch/arm/mpu/mm.c
> +++ b/xen/arch/arm/mpu/mm.c
> @@ -9,6 +9,7 @@
>   #include <xen/types.h>
>   #include <asm/mpu.h>
>   #include <asm/mpu/mm.h>
> +#include <asm/page.h>
>   #include <asm/sysregs.h>
>
>   struct page_info *frame_table;
> @@ -151,6 +152,73 @@ void write_protection_region(const pr_t *pr_write, uint8_t sel)
>           BUG(); /* Can't happen */
>       }
>   }
> +
> +pr_t pr_of_xenaddr(paddr_t base, paddr_t limit, unsigned int attr_idx)
> +{
> +    prbar_t prbar;
> +    prlar_t prlar;
> +    pr_t region;
> +
> +    /* Build up value for PRBAR_EL2. */
> +    prbar = (prbar_t) {
> +        .reg = {
> +            .ap = AP_RW_EL2,      /* Read/Write at EL2, no access at EL1/EL0. */
> +            .xn = PRBAR_EL2_XN_ENABLED,   /* No need to execute outside .text */
> +        }};
> +
> +    switch ( attr_idx )
> +    {
> +    case MT_NORMAL_NC:
> +        /*
> +         * ARM ARM: Overlaying the shareability attribute (DDI
> +         * 0406C.b B3-1376 to 1377)
> +         *
> +         * A memory region with a resultant memory type attribute of normal,
> +         * and a resultant cacheability attribute of Inner non-cacheable,
> +         * outer non-cacheable, must have a resultant shareability attribute
> +         * of outer shareable, otherwise shareability is UNPREDICTABLE.
> +         *
> +         * On ARMv8 sharability is ignored and explicitly treated as outer
> +         * shareable for normal inner non-cacheable, outer non-cacheable.
> +         */
> +        prbar.reg.sh = LPAE_SH_OUTER;
> +        break;
> +    case MT_DEVICE_nGnRnE:
> +    case MT_DEVICE_nGnRE:
> +        /*
> +         * Shareability is ignored for non-normal memory, Outer is as
> +         * good as anything.
> +         *
> +         * On ARMv8 sharability is ignored and explicitly treated as outer
> +         * shareable for any device memory type.
> +         */
> +        prbar.reg.sh = LPAE_SH_OUTER;
> +        break;
> +    default:
> +        /* Xen mappings are SMP coherent */
> +        prbar.reg.sh = LPAE_SH_INNER;
> +    }
> +
> +    /* Build up value for PRLAR_EL2. */
> +    prlar = (prlar_t) {
> +        .reg = {
#ifdef CONFIG_ARM_64
> +            .ns = 0,        /* Hyp mode is in secure world */
#endif
> +            .ai = attr_idx,
> +            .en = 1,        /* Region enabled */
> +        }};
> +
> +    /* Build up MPU memory region. */
> +    region = (pr_t) {
> +        .prbar = prbar,
> +        .prlar = prlar,
> +    };
> +
> +    /* Set base address and limit address. */
> +    pr_set_base(&region, base);
> +    pr_set_limit(&region, limit);
> +
> +    return region;
> +}
>   #endif
>
>   void __init setup_mm(void)
> --
> 2.34.1
>
>
- Ayan


From xen-devel-bounces@lists.xenproject.org Tue Apr 29 17:28:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 17:28:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.972963.1361214 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9okQ-0000Sj-HR; Tue, 29 Apr 2025 17:27:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 972963.1361214; Tue, 29 Apr 2025 17:27:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9okQ-0000Sc-Ev; Tue, 29 Apr 2025 17:27:58 +0000
Received: by outflank-mailman (input) for mailman id 972963;
 Tue, 29 Apr 2025 17:27:57 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=TYgR=XP=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1u9okO-0000SW-RH
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 17:27:57 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 47dffcd4-251f-11f0-9ffb-bf95429c2676;
 Tue, 29 Apr 2025 19:27:54 +0200 (CEST)
Received: from [192.168.7.202] ([71.202.166.45]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53THR949509822
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NO);
 Tue, 29 Apr 2025 10:27:09 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 47dffcd4-251f-11f0-9ffb-bf95429c2676
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53THR949509822
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745947632;
	bh=bi2Aevh2QzYHJjU5ZT4PV0lJuEojRhQww5I9NeYJf50=;
	h=Date:Subject:To:Cc:References:From:In-Reply-To:From;
	b=dl5+1MRV352QgdzCN55c3h5YzJsglVUunIeznoTZvR86tIRDHDduoKYAilNdy8UVy
	 OEGai/Yt9OZDvSPgIzIhkxcj5ShG9kvXTjGlJ2zesdY1/FbO18R7e2/VTEIl7GKjaO
	 xK07wa+p3OMX38teq7q76S09I4+Yz7Pt2REmAngLro9casDIXZcpeegj2EJx1I2ig2
	 0/6ceuNx+bbiqR41148AXDkYgIeIfISQrjLKScf+66Hnx0A5RHGDmj07zcwLcWBYtD
	 nuOvbzvclQP9Rcm7KE8EOSlR4rY0H6lR8tUdU/bUWP3YHocv+vO11bc0h3sHbn5MNb
	 tpVmjIEc6McWQ==
Message-ID: <7df3c16b-9353-4f30-a13b-1f0eb8563e69@zytor.com>
Date: Tue, 29 Apr 2025 10:27:09 -0700
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 01/15] x86/msr: Add missing includes of <asm/msr.h>
To: =?UTF-8?Q?Ilpo_J=C3=A4rvinen?= <ilpo.jarvinen@linux.intel.com>
Cc: LKML <linux-kernel@vger.kernel.org>, kvm@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
        linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
        Netdev <netdev@vger.kernel.org>, platform-driver-x86@vger.kernel.org,
        tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        acme@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com,
        peterz@infradead.org, namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com,
        dapeng1.mi@linux.intel.com
References: <20250427092027.1598740-1-xin@zytor.com>
 <20250427092027.1598740-2-xin@zytor.com>
 <a1917b37-e41e-d303-749b-4007cda01605@linux.intel.com>
Content-Language: en-US
From: Xin Li <xin@zytor.com>
Autocrypt: addr=xin@zytor.com; keydata=
 xsDNBGUPz1cBDACS/9yOJGojBFPxFt0OfTWuMl0uSgpwk37uRrFPTTLw4BaxhlFL0bjs6q+0
 2OfG34R+a0ZCuj5c9vggUMoOLdDyA7yPVAJU0OX6lqpg6z/kyQg3t4jvajG6aCgwSDx5Kzg5
 Rj3AXl8k2wb0jdqRB4RvaOPFiHNGgXCs5Pkux/qr0laeFIpzMKMootGa4kfURgPhRzUaM1vy
 bsMsL8vpJtGUmitrSqe5dVNBH00whLtPFM7IbzKURPUOkRRiusFAsw0a1ztCgoFczq6VfAVu
 raTye0L/VXwZd+aGi401V2tLsAHxxckRi9p3mc0jExPc60joK+aZPy6amwSCy5kAJ/AboYtY
 VmKIGKx1yx8POy6m+1lZ8C0q9b8eJ8kWPAR78PgT37FQWKYS1uAroG2wLdK7FiIEpPhCD+zH
 wlslo2ETbdKjrLIPNehQCOWrT32k8vFNEMLP5G/mmjfNj5sEf3IOKgMTMVl9AFjsINLHcxEQ
 6T8nGbX/n3msP6A36FDfdSEAEQEAAc0WWGluIExpIDx4aW5Aenl0b3IuY29tPsLBDQQTAQgA
 NxYhBIUq/WFSDTiOvUIqv2u9DlcdrjdRBQJlD89XBQkFo5qAAhsDBAsJCAcFFQgJCgsFFgID
 AQAACgkQa70OVx2uN1HUpgv/cM2fsFCQodLArMTX5nt9yqAWgA5t1srri6EgS8W3F+3Kitge
 tYTBKu6j5BXuXaX3vyfCm+zajDJN77JHuYnpcKKr13VcZi1Swv6Jx1u0II8DOmoDYLb1Q2ZW
 v83W55fOWJ2g72x/UjVJBQ0sVjAngazU3ckc0TeNQlkcpSVGa/qBIHLfZraWtdrNAQT4A1fa
 sWGuJrChBFhtKbYXbUCu9AoYmmbQnsx2EWoJy3h7OjtfFapJbPZql+no5AJ3Mk9eE5oWyLH+
 QWqtOeJM7kKvn/dBudokFSNhDUw06e7EoVPSJyUIMbYtUO7g2+Atu44G/EPP0yV0J4lRO6EA
 wYRXff7+I1jIWEHpj5EFVYO6SmBg7zF2illHEW31JAPtdDLDHYcZDfS41caEKOQIPsdzQkaQ
 oW2hchcjcMPAfyhhRzUpVHLPxLCetP8vrVhTvnaZUo0xaVYb3+wjP+D5j/3+hwblu2agPsaE
 vgVbZ8Fx3TUxUPCAdr/p73DGg57oHjgezsDNBGUPz1gBDAD4Mg7hMFRQqlzotcNSxatlAQNL
 MadLfUTFz8wUUa21LPLrHBkUwm8RujehJrzcVbPYwPXIO0uyL/F///CogMNx7Iwo6by43KOy
 g89wVFhyy237EY76j1lVfLzcMYmjBoTH95fJC/lVb5Whxil6KjSN/R/y3jfG1dPXfwAuZ/4N
 cMoOslWkfZKJeEut5aZTRepKKF54T5r49H9F7OFLyxrC/uI9UDttWqMxcWyCkHh0v1Di8176
 jjYRNTrGEfYfGxSp+3jYL3PoNceIMkqM9haXjjGl0W1B4BidK1LVYBNov0rTEzyr0a1riUrp
 Qk+6z/LHxCM9lFFXnqH7KWeToTOPQebD2B/Ah5CZlft41i8L6LOF/LCuDBuYlu/fI2nuCc8d
 m4wwtkou1Y/kIwbEsE/6RQwRXUZhzO6llfoN96Fczr/RwvPIK5SVMixqWq4QGFAyK0m/1ap4
 bhIRrdCLVQcgU4glo17vqfEaRcTW5SgX+pGs4KIPPBE5J/ABD6pBnUUAEQEAAcLA/AQYAQgA
 JhYhBIUq/WFSDTiOvUIqv2u9DlcdrjdRBQJlD89ZBQkFo5qAAhsMAAoJEGu9DlcdrjdR4C0L
 /RcjolEjoZW8VsyxWtXazQPnaRvzZ4vhmGOsCPr2BPtMlSwDzTlri8BBG1/3t/DNK4JLuwEj
 OAIE3fkkm+UG4Kjud6aNeraDI52DRVCSx6xff3bjmJsJJMb12mWglN6LjdF6K+PE+OTJUh2F
 dOhslN5C2kgl0dvUuevwMgQF3IljLmi/6APKYJHjkJpu1E6luZec/lRbetHuNFtbh3xgFIJx
 2RpgVDP4xB3f8r0I+y6ua+p7fgOjDLyoFjubRGed0Be45JJQEn7A3CSb6Xu7NYobnxfkwAGZ
 Q81a2XtvNS7Aj6NWVoOQB5KbM4yosO5+Me1V1SkX2jlnn26JPEvbV3KRFcwV5RnDxm4OQTSk
 PYbAkjBbm+tuJ/Sm+5Yp5T/BnKz21FoCS8uvTiziHj2H7Cuekn6F8EYhegONm+RVg3vikOpn
 gao85i4HwQTK9/D1wgJIQkdwWXVMZ6q/OALaBp82vQ2U9sjTyFXgDjglgh00VRAHP7u1Rcu4
 l75w1xInsg==
In-Reply-To: <a1917b37-e41e-d303-749b-4007cda01605@linux.intel.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 4/29/2025 2:45 AM, Ilpo Järvinen wrote:
> On Sun, 27 Apr 2025, Xin Li (Intel) wrote:
> 
>> For some reason, there are some TSC-related functions in the MSR
>> header even though there is a tsc.h header.
>>
>> To facilitate the relocation of rdtsc{,_ordered}() from <asm/msr.h>
>> to <asm/tsc.h> and to eventually eliminate the inclusion of
>> <asm/msr.h> in <asm/tsc.h>, add <asm/msr.h> to the source files that
>> reference definitions from <asm/msr.h>.
>>
>> Signed-off-by: Xin Li (Intel) <xin@zytor.com>
>> Acked-by: Dave Hansen <dave.hansen@linux.intel.com>
>> Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
>> ---
>>
>> Change in v4:
>> *) Add missing includes in a different patch (Ilpo Järvinen).
>> *) Add all necessary direct inclusions for msr.h (Ilpo Järvinen).
>>
>> Change in v3:
>> * Add a problem statement to the changelog (Dave Hansen).
>> ---
>>   arch/x86/events/msr.c                                         | 3 +++
>>   arch/x86/events/perf_event.h                                  | 1 +
>>   arch/x86/events/probe.c                                       | 2 ++
> 
> Under arch/x86/events/ a few files seem to be missing the include?
> 
>>   arch/x86/hyperv/ivm.c                                         | 1 +
> 
> Also under hyperv/ not all files are covered but I'm a bit hesitant to
> suggest a change there since I'm not sure if they (hypervisors) do
> something special w.r.t. msr.
> 
>>   arch/x86/include/asm/fred.h                                   | 1 +
>>   arch/x86/include/asm/microcode.h                              | 2 ++
>>   arch/x86/include/asm/mshyperv.h                               | 1 +
>>   arch/x86/include/asm/msr.h                                    | 1 +
>>   arch/x86/include/asm/suspend_32.h                             | 1 +
>>   arch/x86/include/asm/suspend_64.h                             | 1 +
>>   arch/x86/include/asm/switch_to.h                              | 2 ++
> 
> arch/x86/kernel/acpi/ ?
> acrh/x86/kernel/cet.c ?
> ...
> 
> There seem to be quite many under arch/x86/ that still don't have it, I
> didn't list them all as there were so many after this point.
> 
> But that's up to x86 maintainers how throughout they want you to be.
> 
> This command may be helpful to exclude the files which already have the
> include so you can focus on the ones that may still be missing it:
> 
> git grep -l -e rdmsr -e wrmsr | grep -v -f <(git grep -l -e 'asm/msr\.h')
> 
>>   arch/x86/kernel/cpu/resctrl/pseudo_lock.c                     | 1 +
>>   arch/x86/kernel/fpu/xstate.h                                  | 1 +
>>   arch/x86/kernel/hpet.c                                        | 1 +
>>   arch/x86/kernel/process_64.c                                  | 1 +
>>   arch/x86/kernel/trace_clock.c                                 | 2 +-
>>   arch/x86/kernel/tsc_sync.c                                    | 1 +
>>   arch/x86/lib/kaslr.c                                          | 2 +-
>>   arch/x86/mm/mem_encrypt_identity.c                            | 1 +
>>   arch/x86/realmode/init.c                                      | 1 +
>>   drivers/acpi/acpi_extlog.c                                    | 1 +
>>   drivers/acpi/processor_perflib.c                              | 1 +
>>   drivers/acpi/processor_throttling.c                           | 3 ++-
>>   drivers/char/agp/nvidia-agp.c                                 | 1 +
>>   drivers/cpufreq/amd-pstate-ut.c                               | 2 ++
>>   drivers/crypto/ccp/sev-dev.c                                  | 1 +
>>   drivers/edac/amd64_edac.c                                     | 1 +
>>   drivers/edac/ie31200_edac.c                                   | 1 +
>>   drivers/edac/mce_amd.c                                        | 1 +
>>   drivers/hwmon/hwmon-vid.c                                     | 4 ++++
>>   drivers/idle/intel_idle.c                                     | 1 +
>>   drivers/misc/cs5535-mfgpt.c                                   | 1 +
>>   drivers/net/vmxnet3/vmxnet3_drv.c                             | 4 ++++
>>   drivers/platform/x86/intel/ifs/core.c                         | 1 +
>>   drivers/platform/x86/intel/ifs/load.c                         | 1 +
>>   drivers/platform/x86/intel/ifs/runtest.c                      | 1 +
>>   drivers/platform/x86/intel/pmc/cnp.c                          | 1 +
>>   drivers/platform/x86/intel/speed_select_if/isst_if_common.c   | 1 +
>>   drivers/platform/x86/intel/speed_select_if/isst_if_mbox_msr.c | 1 +
>>   drivers/platform/x86/intel/speed_select_if/isst_tpmi_core.c   | 1 +
>>   drivers/platform/x86/intel/turbo_max_3.c                      | 1 +
>>   .../platform/x86/intel/uncore-frequency/uncore-frequency.c    | 1 +
>>   drivers/powercap/intel_rapl_common.c                          | 1 +
>>   drivers/powercap/intel_rapl_msr.c                             | 1 +
>>   .../thermal/intel/int340x_thermal/processor_thermal_device.c  | 1 +
>>   drivers/thermal/intel/intel_tcc_cooling.c                     | 1 +
>>   drivers/thermal/intel/x86_pkg_temp_thermal.c                  | 1 +
>>   drivers/video/fbdev/geode/display_gx.c                        | 1 +
>>   drivers/video/fbdev/geode/gxfb_core.c                         | 1 +
>>   drivers/video/fbdev/geode/lxfb_ops.c                          | 1 +
> 
> Under drivers/ this looked pretty complete. Nice work.
> 
> Acked-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com> # for pdx86

Thanks a lot!


> 
> I also noticed these files might not need to include msr.h:
> 
> drivers/cpufreq/elanfreq.c
> drivers/cpufreq/sc520_freq.c
> drivers/accel/habanalabs/common/habanalabs_ioctl.c
> 
> ...so if you want, you may consider optionally adding a cleanup patch to
> remove the include from them.
> 
>> --- a/drivers/video/fbdev/geode/gxfb_core.c
>> +++ b/drivers/video/fbdev/geode/gxfb_core.c
>> @@ -30,6 +30,7 @@
>>   #include <linux/cs5535.h>
>>   
>>   #include <asm/olpc.h>
>> +#include <asm/msr.h>
> 
> In wrong order.
>>   
>>   #include "gxfb.h"
> 

I am more than happy to send v4A to address all your comments.


From xen-devel-bounces@lists.xenproject.org Tue Apr 29 17:41:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 17:41:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.972980.1361225 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9oxH-0003Zi-Lf; Tue, 29 Apr 2025 17:41:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 972980.1361225; Tue, 29 Apr 2025 17:41: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 1u9oxH-0003Zb-Hq; Tue, 29 Apr 2025 17:41:15 +0000
Received: by outflank-mailman (input) for mailman id 972980;
 Tue, 29 Apr 2025 17:41: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=nK9Z=XP=linuxfoundation.org=gregkh@srs-se1.protection.inumbo.net>)
 id 1u9oxF-0003Xy-Pk
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 17:41:13 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1ffad625-2521-11f0-9ffb-bf95429c2676;
 Tue, 29 Apr 2025 19:41:06 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 06DC344747;
 Tue, 29 Apr 2025 17:41:02 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id A93E2C4CEE9;
 Tue, 29 Apr 2025 17:41:03 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1ffad625-2521-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org;
	s=korg; t=1745948464;
	bh=BOK0QXSoho3dbFB9Mjjl/1owMmFzongpvyKigN7MaJs=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=mBsDac/DipxLJve5APZFVfL+IiziCQ26urXPLdEsvZxBq/RZwtlNo7jcAh9IV4dJm
	 8VKR8KsCLqS+MSN+TOerTVA1cCWrUy/YFfCetFw7XUMjuHEF27LcF+z0dUlTYNVy1s
	 x7PtEF757Vgp2cDeh+M7ZiZXpQsMM7YmCkzycmF4=
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: stable@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	patches@lists.linux.dev,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	xen-devel@lists.xenproject.org,
	Kees Cook <kees@kernel.org>,
	Sasha Levin <sashal@kernel.org>
Subject: [PATCH 5.15 016/373] xen/mcelog: Add __nonstring annotations for unterminated strings
Date: Tue, 29 Apr 2025 18:38:13 +0200
Message-ID: <20250429161123.800570162@linuxfoundation.org>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250429161123.119104857@linuxfoundation.org>
References: <20250429161123.119104857@linuxfoundation.org>
User-Agent: quilt/0.68
X-stable: review
X-Patchwork-Hint: ignore
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

5.15-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Kees Cook <kees@kernel.org>

[ Upstream commit 1c3dfc7c6b0f551fdca3f7c1f1e4c73be8adb17d ]

When a character array without a terminating NUL character has a static
initializer, GCC 15's -Wunterminated-string-initialization will only
warn if the array lacks the "nonstring" attribute[1]. Mark the arrays
with __nonstring to and correctly identify the char array as "not a C
string" and thereby eliminate the warning.

Link: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117178 [1]
Cc: Juergen Gross <jgross@suse.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>
Cc: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Cc: xen-devel@lists.xenproject.org
Signed-off-by: Kees Cook <kees@kernel.org>
Acked-by: Juergen Gross <jgross@suse.com>
Message-ID: <20250310222234.work.473-kees@kernel.org>
Signed-off-by: Juergen Gross <jgross@suse.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 include/xen/interface/xen-mca.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/xen/interface/xen-mca.h b/include/xen/interface/xen-mca.h
index 7483a78d24251..20a3b320d1a58 100644
--- a/include/xen/interface/xen-mca.h
+++ b/include/xen/interface/xen-mca.h
@@ -371,7 +371,7 @@ struct xen_mce {
 #define XEN_MCE_LOG_LEN 32
 
 struct xen_mce_log {
-	char signature[12]; /* "MACHINECHECK" */
+	char signature[12] __nonstring; /* "MACHINECHECK" */
 	unsigned len;	    /* = XEN_MCE_LOG_LEN */
 	unsigned next;
 	unsigned flags;
-- 
2.39.5





From xen-devel-bounces@lists.xenproject.org Tue Apr 29 18:05:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 18:05:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.972998.1361241 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9pKy-0007FW-No; Tue, 29 Apr 2025 18:05:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 972998.1361241; Tue, 29 Apr 2025 18:05: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 1u9pKy-0007FP-JO; Tue, 29 Apr 2025 18:05:44 +0000
Received: by outflank-mailman (input) for mailman id 972998;
 Tue, 29 Apr 2025 18:05: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=rc0E=XP=linuxfoundation.org=torvalds@srs-se1.protection.inumbo.net>)
 id 1u9pKx-0007FJ-6Y
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 18:05: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 8dfb3f55-2524-11f0-9ffb-bf95429c2676;
 Tue, 29 Apr 2025 20:05:38 +0200 (CEST)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-ace94273f0dso624907766b.3
 for <xen-devel@lists.xenproject.org>; Tue, 29 Apr 2025 11:05:38 -0700 (PDT)
Received: from mail-ej1-f44.google.com (mail-ej1-f44.google.com.
 [209.85.218.44]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-ace6ecf9a27sm822737466b.109.2025.04.29.11.05.36
 for <xen-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 29 Apr 2025 11:05:36 -0700 (PDT)
Received: by mail-ej1-f44.google.com with SMTP id
 a640c23a62f3a-ace94273f0dso624899166b.3
 for <xen-devel@lists.xenproject.org>; Tue, 29 Apr 2025 11:05:36 -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: 8dfb3f55-2524-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linux-foundation.org; s=google; t=1745949937; x=1746554737; darn=lists.xenproject.org;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:from:to:cc:subject:date:message-id:reply-to;
        bh=Mga3Rq70LqXw/l3aYagru3Xh65JFPJSy1XpGB2clVXE=;
        b=iAEL9Cs4ZMvjKBFFN90HlnpfJykFmSVoK0vQtYGf0amEuoSellaPdgVlD4H6+ScrjI
         wlsBFAVFr47C+OKa4AFkA/SKS9TM8twlCkZnQdllrInqbLO7w+yqsf8bN36UXTxkmjyu
         /1Rl+vke85OrSeP2ZAJNDaYwyn1gR3IFkRw1o=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745949937; x=1746554737;
        h=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=Mga3Rq70LqXw/l3aYagru3Xh65JFPJSy1XpGB2clVXE=;
        b=c3JflFFh7cQsNMbAFDKpLcaBgwQHwLOo/VWemHYcHrhnS/AN7hR2m+QG4A3xhDFbWs
         ohRRXrEVFK6Kh1ZYnjDMaYIny7o9M0fE9YjNK3jF2U7wdRu5RHCEzXA7q+2wDZUhG47h
         T4bzt2S+joRAnoyV8wsAcNSgYh+1N9lAuFmvhWu/V/Fo7wjyPbHazhTefhi5/G7MWSop
         piZMxrELW2JSEf+1MXHBzT2g0hXAnF6R6Bo5kmi51BZ96IcnfXbO7/G1UedQnUHYSp1w
         zUsiJgdJJNMr1mf52WuVJwlrtQo4Ku5PS/l/MctXN4pf8jTnuJfwey73m3+PmSl7zC2M
         7C9Q==
X-Forwarded-Encrypted: i=1; AJvYcCUNUqoLMFfgFJ52HdV3AiPN3fZ3eY3KS2KbeZkADRpkwoGavY38tMdAeD3oa6DLl++C+TtXXs2BK8Y=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwmGDoESBOlUpfeqBSw5isSEM6RBGqv4O5yg0UW9PtY8wYLikKE
	K5HjH7OM1EwqRrNZInRozXphaD/158CcvnNnSQnUtrVaBnxRR+kN7z1mhY+T5r9PwM4cMMzwzRb
	ih0iCXA==
X-Gm-Gg: ASbGncvw4xFiOndzvFYNATVnQWfyYFGLZBugpRO45dMgKuTkWRXYttc8oFWVNU8u9Lr
	jmn+D0111So/SuRXfKtbqH6qTHOJUNyJ8wfpQZWFg7qAH5rNmpBybLr2Ceguii2TRqtMIJHLdMT
	LSy8VM+4lqY3DocXeeTaFqG21k7JIw0EOJowxILzAXUAj+SKJr1j/of4c2HiYGzJBUh+VC90Rxn
	IAPRVUjRAZzipsSiXAgjDBnq4juSubTCSmPfZk0ToCg1T+iz5+ylQIE+nQmp7hzAfsP/cPolU2U
	+CepeAWD0KTYRBe5EnWADWLaCM2KJ+IaJJvsmZlKWdmw9/VOfVfypljhPs3Kfdt3wGFTZT/yNwI
	a0MPGgud1VIJApEabxcXXFBZm2w==
X-Google-Smtp-Source: AGHT+IFXQ7xryeTBYT/nWuOK/FkaO0GrW2KqG0+JE9aaEUo6HLPzg8A+qsoOikMe8dsuTp6BXlkmaw==
X-Received: by 2002:a17:907:9405:b0:ac7:3a23:569c with SMTP id a640c23a62f3a-acedc56c9e1mr32083766b.1.1745949937171;
        Tue, 29 Apr 2025 11:05:37 -0700 (PDT)
X-Forwarded-Encrypted: i=1; AJvYcCUk6RlNCuUIiHllBaxVoKh7x7xbYlxOKl6EBRq1gKIsV7HjgspxHdvsJc3N7niLyE72hiyouPnfKWc=@lists.xenproject.org
X-Received: by 2002:a17:907:60d3:b0:ace:c2d1:9761 with SMTP id
 a640c23a62f3a-acedc623882mr34288966b.27.1745949935745; Tue, 29 Apr 2025
 11:05:35 -0700 (PDT)
MIME-Version: 1.0
References: <20250425141740.734030-1-arnd@kernel.org> <aAyiganPp_UsNlnZ@gmail.com>
 <d2b0e71c-e79b-40d6-8693-3202cd894d66@app.fastmail.com> <CAHk-=wh=TUsVv6xhtzYsWJwJggrjyOfYT3kBu+bHtoYLK0M9Xw@mail.gmail.com>
 <CAHk-=wgfk69H-T-vMWR33xUpVsWJLrF34d0OwUXa2sHhtpSwZg@mail.gmail.com>
 <e54f1943-e0ff-4f59-b24f-9b5a7a38becf@citrix.com> <CAHk-=wj0S2vWui0Y+1hpYMEhCiXKexbQ01h+Ckvww8hB29az_A@mail.gmail.com>
 <aA8nF0moBYOIgC5J@gmail.com> <aA8oqKUaFU-0wb-D@gmail.com> <CAHk-=wgJfWfWa2NTiTmev+Xr=e8Uo=aFkrXujLAQBVAVN-VigQ@mail.gmail.com>
 <B364FF6D-DFCC-42A7-ACA1-6A74E27EE57E@zytor.com> <67be5eee-b67b-409a-8309-829f891b9944@citrix.com>
 <916BD58C-E6A7-495E-9A60-722E130AC7A7@zytor.com> <e5e97ff8-9670-40d1-a0fa-69504d34c4c4@citrix.com>
 <956DB0ED-F3DB-456D-8D06-6F40DBDB815A@zytor.com> <06d04c13-76e8-45fb-a563-e365e1f19362@citrix.com>
In-Reply-To: <06d04c13-76e8-45fb-a563-e365e1f19362@citrix.com>
From: Linus Torvalds <torvalds@linux-foundation.org>
Date: Tue, 29 Apr 2025 11:05:18 -0700
X-Gmail-Original-Message-ID: <CAHk-=wig1E4B-e1_6=it1LfVQ64DJsVgO6f6Ytnbzm2qChbAdw@mail.gmail.com>
X-Gm-Features: ATxdqUFTY5mdGhFc4ArUUSgC4AOenPGa8voKgtO-ChPuKuk16Y4sxjRuZZC2Fww
Message-ID: <CAHk-=wig1E4B-e1_6=it1LfVQ64DJsVgO6f6Ytnbzm2qChbAdw@mail.gmail.com>
Subject: Re: [PATCH] bitops/32: Convert variable_ffs() and fls() zero-case
 handling to C
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@kernel.org>, Arnd Bergmann <arnd@arndb.de>, 
	Arnd Bergmann <arnd@kernel.org>, Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>, 
	Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, 
	Juergen Gross <jgross@suse.com>, Boris Ostrovsky <boris.ostrovsky@oracle.com>, 
	Alexander Usyskin <alexander.usyskin@intel.com>, 
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>, =?UTF-8?Q?Mateusz_Jo=C5=84czyk?= <mat.jonczyk@o2.pl>, 
	Mike Rapoport <rppt@kernel.org>, Ard Biesheuvel <ardb@kernel.org>, Peter Zijlstra <peterz@infradead.org>, 
	linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"

On Tue, 29 Apr 2025 at 07:38, Andrew Cooper <andrew.cooper3@citrix.com> wrote:
>
> I tried that.  (The thread started as a question around
> __builtin_constant_p() but did grow to cover __builtin_ffs().)

Maybe we could do something like

   #define ffs(x) \
        (statically_true((x) != 0) ? __ffs(x)+1 : __builtin_ffs(x))

which uses our "statically_true()" helper that is actually fairly good
at the whole "let the compiler tell us that it knows that value cannot
be zero"

I didn't check what code that generated, but I've seen gcc do well on
that statically_true() thing in the past.

Then we can just remove our current variable_ffs() thing entirely,
because we now depend on our (good) __ffs() and the builtin being
"good enough" for the bad case.

(And do the same thing for fls() too, of course)

               Linus


From xen-devel-bounces@lists.xenproject.org Tue Apr 29 19:14:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 19:14:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.973011.1361249 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9qOp-0008NC-Er; Tue, 29 Apr 2025 19:13:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 973011.1361249; Tue, 29 Apr 2025 19: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 1u9qOp-0008N5-C0; Tue, 29 Apr 2025 19:13:47 +0000
Received: by outflank-mailman (input) for mailman id 973011;
 Tue, 29 Apr 2025 19: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=yPhw=XP=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u9qOn-0008Mw-K8
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 19:13:45 +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 0ed1ec03-252e-11f0-9ffb-bf95429c2676;
 Tue, 29 Apr 2025 21:13:39 +0200 (CEST)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-43cfe574976so45061765e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 29 Apr 2025 12:13:39 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3a073cbf030sm14702049f8f.46.2025.04.29.12.13.38
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 29 Apr 2025 12:13:38 -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: 0ed1ec03-252e-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745954019; x=1746558819; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=UX6tO0/f8tzM35VSZEpfCuQP+GztRd/ihEJf8UXpFmQ=;
        b=bRHOcZdxoE10EC7Rp7wN5NaUNXO0DPv/BFLKbPRn9BchjKJzNDxu+qxbX26uevGbgy
         BzI1N3mKwIluEsRXC3LSP2cLPH7S3/Bt+LYUEY7+AVG9K+VE2QEJZ65bQjkPWtnpqE9L
         JPlidJzSIt+vg3qhSrg8fET5x5bnPuNbrGVVg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745954019; x=1746558819;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=UX6tO0/f8tzM35VSZEpfCuQP+GztRd/ihEJf8UXpFmQ=;
        b=lyVf/NXipL0XnUNf0s5cz0OuKE+FVoz3/74nD9QoMpiPNDzjrTgK2GorJc7ftJnYTs
         T9k8vFpUsAAxCWHvJc2owZP5VTax8VWEIdE7Ayzea46sBEDo9StRVDeJ5V7+Hrn+IMzZ
         8lkB1+foynum+2kt9x7iYMnEeSUhk9QSU+tq7OIIDBGwzr/xornGpBul9T+kXaJlf12N
         fA54lIWTv1beMABaHK9Sv+VHveRRPCQg9S3v0yu45yWcn9YUwvO+qz9AzJ2fSGFNIG4U
         e5E21gTcWJLSPjpcrktlnpuJ35IMCO6wCbhS/QxwUiJad27XBa/szXydLNpkJXxz5uy6
         FYfA==
X-Forwarded-Encrypted: i=1; AJvYcCXRcZftVT94L+HuqNI23tVxv1WtbSI5IQQFEl9XzAxTJgYVf+1lB7HuD/gzY8dtbuoIMFAad90R9J4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzCrUqvH0j0/kEVeUKFH0eDSdYRWTGytMwQTeURwcFBqpVB8V2F
	b0H2FocUtTMTZUTghZOmogNs3qzI+ucklxFOb/ZZAXc3FY7+ohZMKh0k9u1izPE=
X-Gm-Gg: ASbGncvRqzBbpiogUp7zw2wY/ewyxkADaFLniiGfhVFvqv/72AtMQKnlgDXHHpaoutz
	ZpFj3z3XHGwAIAOQLEMY9awq0sNszhYyp1PP+DwpZaxCNPB2XztV8CMfmV6eiLMdi/dwjxN3khE
	yeRa8zE6PxJS5YgNp/mSVNdyAYSMsq621A3CVL6+3DNWQBBl5OQt2JadyB5OuA0Li13kAC0hmAV
	eFdBE1YnxfxWaYfYUADvn8wgZsD4DmzoiKYurigZPaXSh8+IkstcEOu3AagEDD6oMxwyn7UcPAq
	No0AKtzZrFay2RaW9RjpwYnI0IDsqzdA4bWUlRhkzcc/S9sDf2oPokZD1JQQk2fEmHG9as2dPIp
	51aSgJg==
X-Google-Smtp-Source: AGHT+IHx8NsqmGZdCp+0xXgpqGC9ZFTWYMoD2+M6VSNKH0/6Nh2g1o/zmEoF1Kr5VT2M349EDM3B0A==
X-Received: by 2002:a05:6000:1446:b0:397:5de8:6937 with SMTP id ffacd0b85a97d-3a08f7c9a56mr417279f8f.41.1745954019072;
        Tue, 29 Apr 2025 12:13:39 -0700 (PDT)
Message-ID: <81ed8b53-1a40-4777-ab87-4f4abe032dbc@citrix.com>
Date: Tue, 29 Apr 2025 20:13:37 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] bitops/32: Convert variable_ffs() and fls() zero-case
 handling to C
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: "H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@kernel.org>,
 Arnd Bergmann <arnd@arndb.de>, Arnd Bergmann <arnd@kernel.org>,
 Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 x86@kernel.org, Juergen Gross <jgross@suse.com>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 Alexander Usyskin <alexander.usyskin@intel.com>,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
 =?UTF-8?Q?Mateusz_Jo=C5=84czyk?= <mat.jonczyk@o2.pl>,
 Mike Rapoport <rppt@kernel.org>, Ard Biesheuvel <ardb@kernel.org>,
 Peter Zijlstra <peterz@infradead.org>, linux-kernel@vger.kernel.org,
 xen-devel@lists.xenproject.org
References: <20250425141740.734030-1-arnd@kernel.org>
 <aAyiganPp_UsNlnZ@gmail.com>
 <d2b0e71c-e79b-40d6-8693-3202cd894d66@app.fastmail.com>
 <CAHk-=wh=TUsVv6xhtzYsWJwJggrjyOfYT3kBu+bHtoYLK0M9Xw@mail.gmail.com>
 <CAHk-=wgfk69H-T-vMWR33xUpVsWJLrF34d0OwUXa2sHhtpSwZg@mail.gmail.com>
 <e54f1943-e0ff-4f59-b24f-9b5a7a38becf@citrix.com>
 <CAHk-=wj0S2vWui0Y+1hpYMEhCiXKexbQ01h+Ckvww8hB29az_A@mail.gmail.com>
 <aA8nF0moBYOIgC5J@gmail.com> <aA8oqKUaFU-0wb-D@gmail.com>
 <CAHk-=wgJfWfWa2NTiTmev+Xr=e8Uo=aFkrXujLAQBVAVN-VigQ@mail.gmail.com>
 <B364FF6D-DFCC-42A7-ACA1-6A74E27EE57E@zytor.com>
 <67be5eee-b67b-409a-8309-829f891b9944@citrix.com>
 <916BD58C-E6A7-495E-9A60-722E130AC7A7@zytor.com>
 <e5e97ff8-9670-40d1-a0fa-69504d34c4c4@citrix.com>
 <956DB0ED-F3DB-456D-8D06-6F40DBDB815A@zytor.com>
 <06d04c13-76e8-45fb-a563-e365e1f19362@citrix.com>
 <CAHk-=wig1E4B-e1_6=it1LfVQ64DJsVgO6f6Ytnbzm2qChbAdw@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: <CAHk-=wig1E4B-e1_6=it1LfVQ64DJsVgO6f6Ytnbzm2qChbAdw@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 29/04/2025 7:05 pm, Linus Torvalds wrote:
> On Tue, 29 Apr 2025 at 07:38, Andrew Cooper <andrew.cooper3@citrix.com> wrote:
>> I tried that.  (The thread started as a question around
>> __builtin_constant_p() but did grow to cover __builtin_ffs().)
> Maybe we could do something like
>
>    #define ffs(x) \
>         (statically_true((x) != 0) ? __ffs(x)+1 : __builtin_ffs(x))
>
> which uses our "statically_true()" helper that is actually fairly good
> at the whole "let the compiler tell us that it knows that value cannot
> be zero"
>
> I didn't check what code that generated, but I've seen gcc do well on
> that statically_true() thing in the past.
>
> Then we can just remove our current variable_ffs() thing entirely,
> because we now depend on our (good) __ffs() and the builtin being
> "good enough" for the bad case.

That would improve code generation for 32bit, but generally regress 64bit.

Preloading the destination register with -1 is better than the CMOV form
emitted by the builtin; BSF's habit of conditionally not writing the
destination register *is* a CMOV of sorts.


When I cleaned this up in Xen, there were several factors where I
thought improvements could be made.

Having both ffs() and __ffs(), where the latter is undefined in a common
case, is a trap waiting for an unwary programmer.  I have no particular
love for ffs() being off-by-one from normal, but is well defined for all
inputs.

Also, leaving the constant folding to the arch-optimised form means that
it often gets forgotten.  Therefore, I rearranged everything to have
this be common:

static always_inline attr_const unsigned int ffs(unsigned int x)
{
    if ( __builtin_constant_p(x) )
        return __builtin_ffs(x);

#ifdef arch_ffs
    return arch_ffs(x);
#else
    return generic_ffsl(x);
#endif
}

with most architectures implementing arch_ffs as:

#define arch_ffs(x) ((x) ? 1 + __builtin_ctz(x) : 0)

and x86 as:

static always_inline unsigned int arch_ffs(unsigned int x)
{
    unsigned int r;

    if ( __builtin_constant_p(x > 0) && x > 0 )
    {
        /*
         * A common code pattern is:
         *
         *     while ( bits )
         *     {
         *         bit = ffs(bits);
         *         ...
         *
         * and the optimiser really can work with the knowledge of x being
         * non-zero without knowing it's exact value, in which case we don't
         * need to compensate for BSF's corner cases.  Otherwise...
         */
        asm ( "bsf %[val], %[res]"
              : [res] "=r" (r)
              : [val] "rm" (x) );
    }
    else
    {
        /*
         * ... the AMD manual states that BSF won't modify the destination
         * register if x=0.  The Intel manual states that the result is
         * undefined, but the architects have said that the register is
         * written back with it's old value (zero extended as normal).
         */
        asm ( "bsf %[val], %[res]"
              : [res] "=r" (r)
              : [val] "rm" (x), "[res]" (-1) );
    }

    return r + 1;
}
#define arch_ffs arch_ffs

and finally, providing compatibility for the other forms as:

#define __ffs(x) (ffs(x) - 1)


The end result is fewer APIs to implement in arch-specific code, and the
removal of undefined behaviour.

That said, I don't envy anyone wanting to try and untangle this in
Linux, even if consensus were to agree on it as an approach.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Apr 29 19:40:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 19:40:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.973025.1361259 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9qoK-00041F-Ee; Tue, 29 Apr 2025 19:40:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 973025.1361259; Tue, 29 Apr 2025 19:40: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 1u9qoK-000418-Bs; Tue, 29 Apr 2025 19:40:08 +0000
Received: by outflank-mailman (input) for mailman id 973025;
 Tue, 29 Apr 2025 19:40: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=mkRs=XP=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1u9qoH-0003qG-Ue
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 19:40:06 +0000
Received: from AM0PR83CU005.outbound.protection.outlook.com
 (mail-westeuropeazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c201::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bcaa4a00-2531-11f0-9ffb-bf95429c2676;
 Tue, 29 Apr 2025 21:39:59 +0200 (CEST)
Received: from PAZP264CA0250.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:239::9)
 by AS2PR08MB9295.eurprd08.prod.outlook.com (2603:10a6:20b:599::6) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.33; Tue, 29 Apr
 2025 19:39:56 +0000
Received: from AMS0EPF000001A2.eurprd05.prod.outlook.com
 (2603:10a6:102:239:cafe::88) by PAZP264CA0250.outlook.office365.com
 (2603:10a6:102:239::9) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.40 via Frontend Transport; Tue,
 29 Apr 2025 19:39:56 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AMS0EPF000001A2.mail.protection.outlook.com (10.167.16.235) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8699.20
 via Frontend Transport; Tue, 29 Apr 2025 19:39:55 +0000
Received: from DB7PR08MB2987.eurprd08.prod.outlook.com (2603:10a6:5:1c::25) by
 DB9PR08MB6329.eurprd08.prod.outlook.com (2603:10a6:10:25a::15) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.8678.33; Tue, 29 Apr 2025 19:39:23 +0000
Received: from DB7PR08MB2987.eurprd08.prod.outlook.com
 ([fe80::d53f:b16d:70a5:8668]) by DB7PR08MB2987.eurprd08.prod.outlook.com
 ([fe80::d53f:b16d:70a5:8668%5]) with mapi id 15.20.8678.028; Tue, 29 Apr 2025
 19:39: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: bcaa4a00-2531-11f0-9ffb-bf95429c2676
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=Jrr9k2FP3VoAJGecmLbe7lmZFLQTLGDwCffw2b+bTDssmGAnifvYAug0HFde/b2uzgrJKcfSjUDXOiHrKftNa/KnO7ScgqtKFhmgtNc10DP4B9hZBliEdftjTrBOlc286wH4T2EGUD/Jqtr5Mrnnm19P6iuNwFx1Mwg+EfTnMboJAWh7nrmT0r/RU+bcVAALiVE4gPF/P/WNywe1nSkajjFOsaJ7hfamDQKON4ivi558yJLjeoFXaN+yc2XpbNginqtRh0WiGVXGjGQ3I+1tI/dl7HPcE6xEsPLDAGsVJ1LqGZGmK66++vt/L9P2lKq3AdQpGWjQn73EDuCox0xYMQ==
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=SCk0Z7ugaxLv4T8YXG0YTf0mv/e6tWxSOBRP9hzOzkw=;
 b=JZ+I0Bnl6YC6UM0yMjwydjQjN4pfIWYcZFXshRQW5rpXYOaUiMEHpqdeRxK05Y+pslboCZ59PW9WGKMb39VJ9t9mUHkkIBL1iWvicnqcunf5Q6yB3B3z09j2/Z0UJ44ZaSfgxIXeZb/mzY07No/aQ5jB69NGiccvAfUwZTHY5DLBB32xv18EActARNRs/EUwjf1OqE5xmeuJyIFPswg8eWzSEGy66Wfd34mSQjwqAi7o/2MTY/ynhrpi3WaKiHTM86Z55q5r4HlNn7bEtAUA/GB5Y87Np6z8amqL2pm624FkQn2TeT64O3p/SGK+2H37IaQHapoLVHoe0RXWJ2uYiw==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=amd.com smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=SCk0Z7ugaxLv4T8YXG0YTf0mv/e6tWxSOBRP9hzOzkw=;
 b=N1nsvPa4OvKWtbKQpSjgEXn5Fnx/aBiLm8EynTPt2WToq24CoNTv1MBtJMdqT0ZToxWELMNaEdSejcSmNQLKCwXcdY44RQ5axoBze70Wv93qsph2ewNjeyu5F7YVFlzXOeB/HyCmYFR5kkru84RrExLZe1WfjGLeKz6Xs+jDJ2Y=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=SsLJVF2kJaAT8F2ZeuoGQSwm9TLTXRuIjzLkeeqWe07DhWHXfgx2hi8xxDiKMAfOpN2lYzpuABBukF/qDoe7Elf1kxyYj3vFFsWU+JmpiQe67HIZroDOtnPxudccfAJjJltBNOcCUSOJyDWf7sOxIxThcXKPVWMTB69zSgLs2nYgAfkGoGJIJS/BAQshMo8j7bw9yQr5aoF6g4HaHPcQwWksjpKqb1gyv5oyMuKUJlbJ8uC2BsEO3NnHL9I/pozResGm+6iWjTg2p/zQlZKAi96kC0vgYCtMg1HDPH5IB1S7eI8TgZWMVlVYqLwCn9Ofs570ZfQgic0Fxmqsp7dvyQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=SCk0Z7ugaxLv4T8YXG0YTf0mv/e6tWxSOBRP9hzOzkw=;
 b=ccelM40GVlvGy56Ca7wpecdaCkcuuV32DuiplbNx2FPAsTraXRIgwoNpq0BOgySw873GASLWI3LTp1Q6A0rlbM8UqJ+BFYFmMSH/qPMsvGMWT5MGO0a3SFCtDdpkswuNfm3mptZ6pCCVfuP0z+nXLbt1trO+430qa+q6RghacK+btbRV5FeAl1GQ114t+uBt3QyVF4stF20gXP5IDQ+9YFKpbqJYONc+SQNaC4iUNNbl/0iNSta47SumWUWctEGFEnvMNDS2PiVrR9xGX/uOS0GqCocKdZ/22FqvCAhgk1MmJqkRSp4XFu27qR0imtb8klo28Xsajeo8wVbls7EDQA==
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=SCk0Z7ugaxLv4T8YXG0YTf0mv/e6tWxSOBRP9hzOzkw=;
 b=N1nsvPa4OvKWtbKQpSjgEXn5Fnx/aBiLm8EynTPt2WToq24CoNTv1MBtJMdqT0ZToxWELMNaEdSejcSmNQLKCwXcdY44RQ5axoBze70Wv93qsph2ewNjeyu5F7YVFlzXOeB/HyCmYFR5kkru84RrExLZe1WfjGLeKz6Xs+jDJ2Y=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Ayan Kumar Halder <ayankuma@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 v4 6/7] arm/mpu: Provide a constructor for pr_t type
Thread-Topic: [PATCH v4 6/7] arm/mpu: Provide a constructor for pr_t type
Thread-Index: AQHbuRpqbs0x64sbw06OBQfYV4WEtLO64q+AgAAnyAA=
Date: Tue, 29 Apr 2025 19:39:23 +0000
Message-ID: <D6D8F69B-B1A6-4304-9153-CB22A7907B78@arm.com>
References: <20250429152057.2380536-1-luca.fancellu@arm.com>
 <20250429152057.2380536-7-luca.fancellu@arm.com>
 <2cfb5c97-4885-4a24-b77c-5953d9cb6245@amd.com>
In-Reply-To: <2cfb5c97-4885-4a24-b77c-5953d9cb6245@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.400.131.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DB7PR08MB2987:EE_|DB9PR08MB6329:EE_|AMS0EPF000001A2:EE_|AS2PR08MB9295:EE_
X-MS-Office365-Filtering-Correlation-Id: c99c9e67-6d21-4b50-377e-08dd87559e80
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:
 =?us-ascii?Q?2xZ+9JCw++ISDmMc+yX2uK6jyLWYfJAxprf7qIE+D0RnXIQJE7xM9eKnsZm0?=
 =?us-ascii?Q?ptFpt7FrnUFwIdy6bOJM0ioD4I6QOuBHxIttvq/mTic6ozInIfIDJO+WOSNt?=
 =?us-ascii?Q?yiDoqecc8AAf/+OtPImf3pAKn2VtKl4bMA+b8cPdapbo6mONjFahl67msiXM?=
 =?us-ascii?Q?R8OhxoAzcNaM/cfK/YSSoYHZWJhuWXL6NB4dCki93ECgokJJnA/FCnRP+7ga?=
 =?us-ascii?Q?sxFYdmlcgVF2KHr8TvCTZbPwACKFukV8tkogLv0qAsXQY/7D8Hn19/bLgmbM?=
 =?us-ascii?Q?aVSxZupHaPER9HtzcyrmP+DIfVpb72sEkTE7QHjAer7kDduxCLh7WyDFAJSg?=
 =?us-ascii?Q?rRLy6iQf+pu6Dox0f4J5RY4HzJN1po5V5eaJ8xGutgvWC4BiWNod3+C1awNA?=
 =?us-ascii?Q?Fm8NuGvjyG562b6FvlyUT5eTEVmeQrM5mvIns9AiONhxCP/wiEdVSyhjc4cc?=
 =?us-ascii?Q?+2ekabK63AAYrdyAJD5Y9iqj0x1f+kUme4IQs9+kfsDGIg8kxMNlCqOjrOXE?=
 =?us-ascii?Q?fP5+qNR+OmqnSJxwlo3r25ytaYOrWqrwe0adtFqffnUVdth6J+YXJINdlvuE?=
 =?us-ascii?Q?eD+zaPicTsPzIjFUdhzTD7eM/Lp9FFOy3fR9LK3gv1uP7QABtcbDwYmO5fdg?=
 =?us-ascii?Q?BNCeSfAlOVLMfoSYVfpeq1R/Jo79VjzkHmEn2D/z9OspR+zIR5yeocWuk6sE?=
 =?us-ascii?Q?SVunKo0tQDbRRtoPabuf8p8+/ec+KJWP9mQE6/g1elvJaflMDLVrDelOCfBh?=
 =?us-ascii?Q?R5CqzNn6qIfBxMMNowzkcHyrAJN7+TtQa5ebbek5Scd361GyklHluKmeXieb?=
 =?us-ascii?Q?hbdr/tU5NygG/q3wrROW6oOslDyKSpvvcdA5An7h5wfJmY2n4xF8151g+N4R?=
 =?us-ascii?Q?yOeNGglZxCtPj1/GnYyoSd7GOi2xNKIdsMEIC2Q5FkiLvCQ+47MZcALxZdmN?=
 =?us-ascii?Q?/nIpBmH06cVPECu7NPtN20BiNxHVLxg3gTZnCKseg7eSumZSLoARgmIF6WUT?=
 =?us-ascii?Q?DHLW2NbPRtKiJC8m+An3ZYhwZW+5IHE7dzlqMuUGMDw/8ovpoB1T0MOv4Y4I?=
 =?us-ascii?Q?zqt5YuVbw5iqLENjK1zoeDE4UYJ2qCvDYwj5VPc38j70w02nxDW/FjExcGrW?=
 =?us-ascii?Q?ny7xU6Qfic/mdjpVaIYHPpwsvBsECZr4njnYyJpnQ+BHvlU/b2KenqxAUhlQ?=
 =?us-ascii?Q?8diNXsYKxn3byAFXxOS+i+FHdqmKoSfuPjvVpWkqm9f8MiFuhLHg8qj51mRi?=
 =?us-ascii?Q?wNf85qMzvGW0Zg5iFM+5jbrDf7cdfZi1UiKJx/atBfY3BdmoFH1102G5LNEO?=
 =?us-ascii?Q?L4n7vMXqaE/sD2EuooB1vv6A8gV0pnJFDzJOybNpdfhcOL00BCFGsoH2GK3Q?=
 =?us-ascii?Q?lsYT+C/Avu9mPzTExmP+Om8+6am3uwboGuXf0OnV2nqcYIki8xGzFSy14WO0?=
 =?us-ascii?Q?eK+5YMiLCPpa+rlNmA3o2bZNuY56XwW5u4R5YTMCUiVm8UFXKlOzkw=3D=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB7PR08MB2987.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(38070700018);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-ID: <2B75BD8BEF1401409C7267AE87CE20EB@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB6329
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AMS0EPF000001A2.eurprd05.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	6c077a7a-1564-431f-90d1-08dd87558b0d
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|14060799003|82310400026|376014|36860700013|35042699022;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?e64Uhy8wVGU9jn+nnjYcWTQ3iutPJzGdlZE2dLDuAXFzbBNciDnO5eSc0dpO?=
 =?us-ascii?Q?sOwgU6UjHgyQpk73gLK0OZcy3y41MjD4wzACw/dnmdZwLEWMQRow0YvFTs9X?=
 =?us-ascii?Q?I6QIvH65S/ydQE0t89SdBOPq3NR9XeAyFlKL9UYC/uB9iP0kkmgICc3J0iby?=
 =?us-ascii?Q?aMkqHA/2y1mg4uMV40RCwRVqrhL1IJUEeJQL+y6f0LzAGSuIxRizOHsLxr7Y?=
 =?us-ascii?Q?m2PjfaxxnI9JaHBWL5Wo0Es0nzoHk6Az2HR7IuZeQD9DaApvO4ktCkFfDH3Y?=
 =?us-ascii?Q?MFJx87EhH9Ihr6GMXx4PtllkVND6umMs9DDISo3er+ppLrTLyn6OY3btBpU8?=
 =?us-ascii?Q?Bot0nMMTtTra81Jg4zITuRn4BgrXRmPb0qW/h1N8cDDgn/N7z73fyJRQbN4x?=
 =?us-ascii?Q?eEM016MxVvuenN4b+5RNFZ77+o9+BpMZVShWUpTSwQrPjtPYEOjGnbg7P6wq?=
 =?us-ascii?Q?Ytv8pn7mT9MR0zmVlxvJIk9TPv0R96VLQ7+nRwe23mZTfsGgLA06626SceEa?=
 =?us-ascii?Q?wzTlPhGnHBN2Yy2ajtYjHMwqodVLTaV3qsdd0h88O3QGkySDziP0coG9IKwQ?=
 =?us-ascii?Q?AAKPBMraekkPMH1wmLs8zv0jURS4pt7fhTX+GJRAGoinPYGDCg51lG8ts+IS?=
 =?us-ascii?Q?gSthyidAIe0Cenr368iKVGmPfCRFWIoP0/AszRF0i6d5bSHi+AkOTSyttqJY?=
 =?us-ascii?Q?wCrNIFclAw96BnN3uBqf1L/OipmJN22k+Z72Cs53t/yGYvYbOqVjgtAxsg5J?=
 =?us-ascii?Q?017Gx2Qh6CuCgHpWI4EK2WQk2A85PpD2Opp2dejcJVqrVEh6Zyq2RMBxG3uM?=
 =?us-ascii?Q?LIIAbNS+E1MV++6RmwdLaccbOyTe5ASaENxLdxtf2m3kWkXG8tpDeui5eT/A?=
 =?us-ascii?Q?pYdfXYwB/CAPdSuW+ehmxeHvH5A4HmXYlrhohSu1Q3BD1HdL7lacrwyksr2b?=
 =?us-ascii?Q?CTi2SaWsvHBSmbMQrtVTBjPksojg2Fv5shVrqBAiPGR99eJmpoqLrHK8UdZG?=
 =?us-ascii?Q?TjZZK+5J7rus+vGxKTap79dIyFNxk+EibbHZYIY7o4fdO1EOw7J0Z7m0wgrz?=
 =?us-ascii?Q?DGIdaVxximxZacwXVVUT4/6Iec0lhDX0raggAzboDtPn4PjZ5xuCRsmeccg2?=
 =?us-ascii?Q?jYV8YVClKdjM+pRvFa44euM3Beyt8uIX6ktHKOH/310VfPbWQZ9Fkf6apDD9?=
 =?us-ascii?Q?5tbwjHiqdAhrr5qvom+aSOa46zODtudlM7upIRsD7ZBS3YqrnmsrhLC1IFuQ?=
 =?us-ascii?Q?pb9llP0lziq0HS+rhpBu1YuEC8e/jP1rtweairBqpilQ5Lg0zywYM0+7XCpS?=
 =?us-ascii?Q?YWtGgFyQsUFmK0pcfCC7nwJ9JZh018FbAbeOGrTNGAMWVN3MAlhVlHKfoQwm?=
 =?us-ascii?Q?caKZso3Vf2m/T2tpA0wg1/SalfhgWAGAWroSrqJxskrtk07UXpJrG8ThxeHu?=
 =?us-ascii?Q?uq9NdYjbjlcDfxhCQgMq2MWPq/wope70eJJVj7G8y3HkQi5VtAxdV3hvMpZd?=
 =?us-ascii?Q?GlQbpreozxoqzQtvdJ4bj1pg3WFDw8tfpJuy?=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(14060799003)(82310400026)(376014)(36860700013)(35042699022);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Apr 2025 19:39:55.6788
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: c99c9e67-6d21-4b50-377e-08dd87559e80
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AMS0EPF000001A2.eurprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR08MB9295

Hi Ayan,

>> diff --git a/xen/arch/arm/mpu/mm.c b/xen/arch/arm/mpu/mm.c
>> index 40ccf99adc94..2e0aeb486ff8 100644
>> --- a/xen/arch/arm/mpu/mm.c
>> +++ b/xen/arch/arm/mpu/mm.c
>> @@ -9,6 +9,7 @@
>>  #include <xen/types.h>
>>  #include <asm/mpu.h>
>>  #include <asm/mpu/mm.h>
>> +#include <asm/page.h>
>>  #include <asm/sysregs.h>
>>=20
>>  struct page_info *frame_table;
>> @@ -151,6 +152,73 @@ void write_protection_region(const pr_t *pr_write, =
uint8_t sel)
>>          BUG(); /* Can't happen */
>>      }
>>  }
>> +
>> +pr_t pr_of_xenaddr(paddr_t base, paddr_t limit, unsigned int attr_idx)
>> +{
>> +    prbar_t prbar;
>> +    prlar_t prlar;
>> +    pr_t region;
>> +
>> +    /* Build up value for PRBAR_EL2. */
>> +    prbar =3D (prbar_t) {
>> +        .reg =3D {
>> +            .ap =3D AP_RW_EL2,      /* Read/Write at EL2, no access at =
EL1/EL0. */
>> +            .xn =3D PRBAR_EL2_XN_ENABLED,   /* No need to execute outsi=
de .text */
>> +        }};
>> +
>> +    switch ( attr_idx )
>> +    {
>> +    case MT_NORMAL_NC:
>> +        /*
>> +         * ARM ARM: Overlaying the shareability attribute (DDI
>> +         * 0406C.b B3-1376 to 1377)
>> +         *
>> +         * A memory region with a resultant memory type attribute of no=
rmal,
>> +         * and a resultant cacheability attribute of Inner non-cacheabl=
e,
>> +         * outer non-cacheable, must have a resultant shareability attr=
ibute
>> +         * of outer shareable, otherwise shareability is UNPREDICTABLE.
>> +         *
>> +         * On ARMv8 sharability is ignored and explicitly treated as ou=
ter
>> +         * shareable for normal inner non-cacheable, outer non-cacheabl=
e.
>> +         */
>> +        prbar.reg.sh =3D LPAE_SH_OUTER;
>> +        break;
>> +    case MT_DEVICE_nGnRnE:
>> +    case MT_DEVICE_nGnRE:
>> +        /*
>> +         * Shareability is ignored for non-normal memory, Outer is as
>> +         * good as anything.
>> +         *
>> +         * On ARMv8 sharability is ignored and explicitly treated as ou=
ter
>> +         * shareable for any device memory type.
>> +         */
>> +        prbar.reg.sh =3D LPAE_SH_OUTER;
>> +        break;
>> +    default:
>> +        /* Xen mappings are SMP coherent */
>> +        prbar.reg.sh =3D LPAE_SH_INNER;
>> +    }
>> +
>> +    /* Build up value for PRLAR_EL2. */
>> +    prlar =3D (prlar_t) {
>> +        .reg =3D {
> #ifdef CONFIG_ARM_64
>> +            .ns =3D 0,        /* Hyp mode is in secure world */
> #endif

yes this part will be introduced by you together with the pr_t definition,
in this patch the overall pr_of_xenaddr is protected by CONFIG_ARM_64

Cheers,
Luca




From xen-devel-bounces@lists.xenproject.org Tue Apr 29 20:13:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 20:13:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.973045.1361271 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9rKK-0000PF-UG; Tue, 29 Apr 2025 20:13:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 973045.1361271; Tue, 29 Apr 2025 20:13:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9rKK-0000P8-Q4; Tue, 29 Apr 2025 20:13:12 +0000
Received: by outflank-mailman (input) for mailman id 973045;
 Tue, 29 Apr 2025 20:13: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=rc0E=XP=linuxfoundation.org=torvalds@srs-se1.protection.inumbo.net>)
 id 1u9rKJ-0000P2-IT
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 20:13:11 +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 5e9af3db-2536-11f0-9eb4-5ba50f476ded;
 Tue, 29 Apr 2025 22:13:09 +0200 (CEST)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-ac2bdea5a38so952173666b.0
 for <xen-devel@lists.xenproject.org>; Tue, 29 Apr 2025 13:13:09 -0700 (PDT)
Received: from mail-ej1-f45.google.com (mail-ej1-f45.google.com.
 [209.85.218.45]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-ace6ecfa347sm847784266b.91.2025.04.29.13.13.06
 for <xen-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 29 Apr 2025 13:13:06 -0700 (PDT)
Received: by mail-ej1-f45.google.com with SMTP id
 a640c23a62f3a-ac25d2b2354so978238266b.1
 for <xen-devel@lists.xenproject.org>; Tue, 29 Apr 2025 13:13: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: 5e9af3db-2536-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linux-foundation.org; s=google; t=1745957589; x=1746562389; darn=lists.xenproject.org;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:from:to:cc:subject:date:message-id:reply-to;
        bh=GD6DJTcwCWd1erihJG2XGCn33fsN6axQdQziR16yUsw=;
        b=HjeMKqRO3oYkbRRsgrZsqMvQ/YRtKEq4gf09PS+oYaDEyHu9gjyrF48p05xbvwITCR
         7uqQ+71FLqv2IpYm9STdudMdk+kUzBpatjhTMGv9lYewZgWqBS+riy2MVNG1eK2RRTyc
         +BuzboHgKrbQ80coZ0aaNA3VbAN0Gofoel5D4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745957589; x=1746562389;
        h=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=GD6DJTcwCWd1erihJG2XGCn33fsN6axQdQziR16yUsw=;
        b=FVdHI2UUr+WHCslJrXYISDeuHFSq7RcqgG8YbYYfJPZzud+qgN2vIa5esAEKrwu/MN
         V3Yxbg2pYDGmdtbcoNWBiYwEdKFWgNv/GWB+issy8bZ58Mhllbr8CBbVyH5Qf4zJrzZG
         +/yvW3Jv/XKt6qQFWbGtpzVt+XvNlD+ST03AEBd7x4vZeMpN41BMDzzo+62Q/UVeW4QG
         O5swoN4ycCHN8LNawfj0upZPPLFCOuN+zIUtaS/RHNm6q7ZvBoblZeozlRU6p5pHYxkg
         87PJcQ0LpEoZ8buWDtJ9zMJkH5kvCSi+Y7aNtFRhNROgvIaCaDADlQsPzUG68Wb+sUqp
         OitA==
X-Forwarded-Encrypted: i=1; AJvYcCXkE8AVweexwv8LabIpyF9XYbV6lmLnJh6iVfvwEJweNaOQEn5nGjLvSvHQVTqQkySNWJDuFUoeuLY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzYuGBzX2HlGltArcVJTlY0+68W7WgEJO/S7jp6lVhnjBs3+TI2
	XjFfXfOwd3xtnPH693KBCXSwJrjiGxhyN0pS/5btDAZIqCJHgyASM5vRP63XIc8vfha8aK960eH
	gQPw=
X-Gm-Gg: ASbGncvvu+swpurV2qyKA8XHorrge2GvjwLlIzYrw7ARWs/U2LCfsc0iOwlld0t7F5g
	lY2OJ61h8ZDeFzNFTxdnlPzyVbgLO7vi+Vp18qjsZaMHFHNELOHmL0KIt6rI9LHwZQe34pQhvm9
	sNumRDKeTkx93l+JPsV9pHcTE34ODCycAPLTL1fDy7hM1cMl9hhXNBeR8yzqck3aTWyR07tgb42
	GmfJGQxsCP4uzBmr8lrI55DXorepMY296MuTOlo31q7BykLn4zH+vTwW5mLcoloWJUKIyMFRZSF
	togq7Ks52crqslGhw8upNymk9qPFzj1ZKHhnRTlfiDFgT18nX/e2KmtOo6sJJ2ZuxvFqZ+aWjel
	v+kwe3cXVpLeiL5Fp9qYOWHn7qA==
X-Google-Smtp-Source: AGHT+IHl6krutDBYAFQQtbqvG/ZowWWUBcufRCJn/BIelXiA3BC2SE3i9g5gr8ty/8yP6QkBO9+szg==
X-Received: by 2002:a17:907:7e96:b0:aca:96a7:d373 with SMTP id a640c23a62f3a-acedc766b7bmr67732666b.57.1745957588793;
        Tue, 29 Apr 2025 13:13:08 -0700 (PDT)
X-Forwarded-Encrypted: i=1; AJvYcCU/TT8AWc1C9buJ/zcUdRisB50HcQAC1q6I2qrv2iRWbYicXyMwlZDwGmYRFOGiE2U7GnT3z6uMtII=@lists.xenproject.org
X-Received: by 2002:a17:907:6d1c:b0:acb:ba0f:4b12 with SMTP id
 a640c23a62f3a-acedc66e49amr67356066b.36.1745957586006; Tue, 29 Apr 2025
 13:13:06 -0700 (PDT)
MIME-Version: 1.0
References: <20250425141740.734030-1-arnd@kernel.org> <aAyiganPp_UsNlnZ@gmail.com>
 <d2b0e71c-e79b-40d6-8693-3202cd894d66@app.fastmail.com> <CAHk-=wh=TUsVv6xhtzYsWJwJggrjyOfYT3kBu+bHtoYLK0M9Xw@mail.gmail.com>
 <CAHk-=wgfk69H-T-vMWR33xUpVsWJLrF34d0OwUXa2sHhtpSwZg@mail.gmail.com>
 <e54f1943-e0ff-4f59-b24f-9b5a7a38becf@citrix.com> <CAHk-=wj0S2vWui0Y+1hpYMEhCiXKexbQ01h+Ckvww8hB29az_A@mail.gmail.com>
 <aA8nF0moBYOIgC5J@gmail.com> <aA8oqKUaFU-0wb-D@gmail.com> <CAHk-=wgJfWfWa2NTiTmev+Xr=e8Uo=aFkrXujLAQBVAVN-VigQ@mail.gmail.com>
 <B364FF6D-DFCC-42A7-ACA1-6A74E27EE57E@zytor.com> <67be5eee-b67b-409a-8309-829f891b9944@citrix.com>
 <916BD58C-E6A7-495E-9A60-722E130AC7A7@zytor.com> <e5e97ff8-9670-40d1-a0fa-69504d34c4c4@citrix.com>
 <956DB0ED-F3DB-456D-8D06-6F40DBDB815A@zytor.com> <06d04c13-76e8-45fb-a563-e365e1f19362@citrix.com>
 <CAHk-=wig1E4B-e1_6=it1LfVQ64DJsVgO6f6Ytnbzm2qChbAdw@mail.gmail.com> <81ed8b53-1a40-4777-ab87-4f4abe032dbc@citrix.com>
In-Reply-To: <81ed8b53-1a40-4777-ab87-4f4abe032dbc@citrix.com>
From: Linus Torvalds <torvalds@linux-foundation.org>
Date: Tue, 29 Apr 2025 13:12:48 -0700
X-Gmail-Original-Message-ID: <CAHk-=wiAPQFf-RUr=8ra1sYdfGPGLb4QbV8THE9zY3n820L94g@mail.gmail.com>
X-Gm-Features: ATxdqUGerTZyFJ8KMx9SH7AYZ47WuJ2Hfngvi8M9Z27cjt3IrNr0gN037dkObQQ
Message-ID: <CAHk-=wiAPQFf-RUr=8ra1sYdfGPGLb4QbV8THE9zY3n820L94g@mail.gmail.com>
Subject: Re: [PATCH] bitops/32: Convert variable_ffs() and fls() zero-case
 handling to C
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@kernel.org>, Arnd Bergmann <arnd@arndb.de>, 
	Arnd Bergmann <arnd@kernel.org>, Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>, 
	Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, 
	Juergen Gross <jgross@suse.com>, Boris Ostrovsky <boris.ostrovsky@oracle.com>, 
	Alexander Usyskin <alexander.usyskin@intel.com>, 
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>, =?UTF-8?Q?Mateusz_Jo=C5=84czyk?= <mat.jonczyk@o2.pl>, 
	Mike Rapoport <rppt@kernel.org>, Ard Biesheuvel <ardb@kernel.org>, Peter Zijlstra <peterz@infradead.org>, 
	linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"

On Tue, 29 Apr 2025 at 12:13, Andrew Cooper <andrew.cooper3@citrix.com> wrote:
>
> That would improve code generation for 32bit, but generally regress 64bit.
>
> Preloading the destination register with -1 is better than the CMOV form
> emitted by the builtin; BSF's habit of conditionally not writing the
> destination register *is* a CMOV of sorts.

Right you are. So we'd need to do this just for the x86-32 case. Oh
well. Ugly, but still prettier than what we have now, I guess.

         Linus


From xen-devel-bounces@lists.xenproject.org Tue Apr 29 21:24:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 21:24:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.973062.1361280 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9sRQ-0001Lu-UV; Tue, 29 Apr 2025 21:24:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 973062.1361280; Tue, 29 Apr 2025 21:24: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 1u9sRQ-0001Ln-Rl; Tue, 29 Apr 2025 21:24:36 +0000
Received: by outflank-mailman (input) for mailman id 973062;
 Tue, 29 Apr 2025 21:24:36 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=k9ft=XP=zytor.com=hpa@srs-se1.protection.inumbo.net>)
 id 1u9sRP-0001Lh-PH
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 21:24:36 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5734d4fe-2540-11f0-9eb4-5ba50f476ded;
 Tue, 29 Apr 2025 23:24:34 +0200 (CEST)
Received: from [127.0.0.1] ([76.133.66.138]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53TLNv1g590765
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NO);
 Tue, 29 Apr 2025 14:23:57 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5734d4fe-2540-11f0-9eb4-5ba50f476ded
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53TLNv1g590765
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745961839;
	bh=2hgQCzTKdk3Uvsh9HzNYV15KO5LcgVYjpcYF/N1EC2Q=;
	h=Date:From:To:CC:Subject:In-Reply-To:References:From;
	b=GptDAUiLFSnvECxP4g2SMKvBGxA/OShf8WbZxWytwNlTEPozS2ivnt9iZK9CrUTrD
	 t2xISx5INb4yjLaOHjzcwO7j2Va8jx0/MissykANuNam6/GjB/bHsvuGPKrYh5OK7o
	 0MX2EPbPwQEWTRpHVlh58K7nrHSoZcRRb0OAZdUWWAN3dcndRRcSncMy8P/EYBGruz
	 7uty6+xNekNcvRQW8ZCcVioIqF+GynDEbxxGv+3MknxDzuK1hIZr1AJbjiBcF3+FRP
	 b05f+iVcFe+nuNYd0YIRSo2QSiZKNXzx6qQATnijyI1SAon1JQVCRZSgvKzwMrX3T5
	 8BFFrUDnZ7hMA==
Date: Tue, 29 Apr 2025 14:23:55 -0700
From: "H. Peter Anvin" <hpa@zytor.com>
To: Linus Torvalds <torvalds@linux-foundation.org>,
        Andrew Cooper <andrew.cooper3@citrix.com>
CC: Ingo Molnar <mingo@kernel.org>, Arnd Bergmann <arnd@arndb.de>,
        Arnd Bergmann <arnd@kernel.org>, Thomas Gleixner <tglx@linutronix.de>,
        Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
        Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org,
        Juergen Gross <jgross@suse.com>,
        Boris Ostrovsky <boris.ostrovsky@oracle.com>,
        Alexander Usyskin <alexander.usyskin@intel.com>,
        Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
        =?UTF-8?Q?Mateusz_Jo=C5=84czyk?= <mat.jonczyk@o2.pl>,
        Mike Rapoport <rppt@kernel.org>, Ard Biesheuvel <ardb@kernel.org>,
        Peter Zijlstra <peterz@infradead.org>, linux-kernel@vger.kernel.org,
        xen-devel@lists.xenproject.org
Subject: =?US-ASCII?Q?Re=3A_=5BPATCH=5D_bitops/32=3A_Convert_variable?=
 =?US-ASCII?Q?=5Fffs=28=29_and_fls=28=29_zero-case_handling_to_C?=
User-Agent: K-9 Mail for Android
In-Reply-To: <CAHk-=wiAPQFf-RUr=8ra1sYdfGPGLb4QbV8THE9zY3n820L94g@mail.gmail.com>
References: <20250425141740.734030-1-arnd@kernel.org> <d2b0e71c-e79b-40d6-8693-3202cd894d66@app.fastmail.com> <CAHk-=wh=TUsVv6xhtzYsWJwJggrjyOfYT3kBu+bHtoYLK0M9Xw@mail.gmail.com> <CAHk-=wgfk69H-T-vMWR33xUpVsWJLrF34d0OwUXa2sHhtpSwZg@mail.gmail.com> <e54f1943-e0ff-4f59-b24f-9b5a7a38becf@citrix.com> <CAHk-=wj0S2vWui0Y+1hpYMEhCiXKexbQ01h+Ckvww8hB29az_A@mail.gmail.com> <aA8nF0moBYOIgC5J@gmail.com> <aA8oqKUaFU-0wb-D@gmail.com> <CAHk-=wgJfWfWa2NTiTmev+Xr=e8Uo=aFkrXujLAQBVAVN-VigQ@mail.gmail.com> <B364FF6D-DFCC-42A7-ACA1-6A74E27EE57E@zytor.com> <67be5eee-b67b-409a-8309-829f891b9944@citrix.com> <916BD58C-E6A7-495E-9A60-722E130AC7A7@zytor.com> <e5e97ff8-9670-40d1-a0fa-69504d34c4c4@citrix.com> <956DB0ED-F3DB-456D-8D06-6F40DBDB815A@zytor.com> <06d04c13-76e8-45fb-a563-e365e1f19362@citrix.com> <CAHk-=wig1E4B-e1_6=it1LfVQ64DJsVgO6f6Ytnbzm2qChbAdw@mail.gmail.com> <81ed8b53-1a40-4777-ab87-4f4abe032dbc@citrix.com> <CAHk-=wiAPQFf-RUr=8ra1sYdfGPGLb4QbV8THE9zY3n820L94g@mail.gmail.com>
Message-ID: <72078B8D-F03E-4783-8AC2-A36464A4B6A1@zytor.com>
MIME-Version: 1.0
Content-Type: text/plain;
 charset=utf-8
Content-Transfer-Encoding: quoted-printable

On April 29, 2025 1:12:48 PM PDT, Linus Torvalds <torvalds@linux-foundation=
=2Eorg> wrote:
>On Tue, 29 Apr 2025 at 12:13, Andrew Cooper <andrew=2Ecooper3@citrix=2Eco=
m> wrote:
>>
>> That would improve code generation for 32bit, but generally regress 64b=
it=2E
>>
>> Preloading the destination register with -1 is better than the CMOV for=
m
>> emitted by the builtin; BSF's habit of conditionally not writing the
>> destination register *is* a CMOV of sorts=2E
>
>Right you are=2E So we'd need to do this just for the x86-32 case=2E Oh
>well=2E Ugly, but still prettier than what we have now, I guess=2E
>
>         Linus

Could you file a gcc bug? Gcc shouldn't generate worse code than inline as=
m =2E=2E=2E


From xen-devel-bounces@lists.xenproject.org Tue Apr 29 21:52:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 21:52:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.973074.1361290 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9ssH-0005bx-Rw; Tue, 29 Apr 2025 21:52:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 973074.1361290; Tue, 29 Apr 2025 21:52:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9ssH-0005bq-P4; Tue, 29 Apr 2025 21:52:21 +0000
Received: by outflank-mailman (input) for mailman id 973074;
 Tue, 29 Apr 2025 21:52: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=ZtOk=XP=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u9ssG-0005bg-ML
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 21:52:20 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org
 [2600:3c0a:e001:78e:0:1991:8:25])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 37f385cf-2544-11f0-9eb4-5ba50f476ded;
 Tue, 29 Apr 2025 23:52:19 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 8EA964AA42;
 Tue, 29 Apr 2025 21:52:14 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 97749C4CEE3;
 Tue, 29 Apr 2025 21:52:15 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 37f385cf-2544-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1745963536;
	bh=eFANkW49h87SVxM1Q7mVloY3PW0u5y38ALV1rvbouD8=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=J/C34LBbZX6qg82VeGtQw8kcGg6EZOGI6mnHjBYZZJ5a6EziHFY2JFyffIA07PV3K
	 tzVRzaLmNSWDcUVEhU95f6QRMmxvbs+kYjztbV0QRvOy9yniHeebTxtyY4yx1IKiMH
	 4qHX1euAwVRwj5zoywXv5cS5GbEXuZAq+qVxk2d5W92gFUGgkeP50p1NCtD8tsCmGX
	 Lr/YjDfspLZUcoinxdmtyTi/eMdjADUWXbwKQ3cnl1h9eZDX121N9ZFO5iaK3uA+eu
	 iX6e0kT13O5A6yMDNY8TaCrB8w82Qqg0opXn0CGuXqkCLvJ+R/53Jujdi71xi0TGFD
	 cHxwoMPVKK7Nw==
Date: Tue, 29 Apr 2025 14:52:14 -0700 (PDT)
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>, 
    "Ragiadakou, Xenia" <Xenia.Ragiadakou@amd.com>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    jason.andryuk@amd.com, agarciav@amd.com, xen-devel@lists.xenproject.org
Subject: Re: [PATCH] xen/x86: allow Dom0 PVH to call XENMEM_exchange
In-Reply-To: <06b66971-d8db-456f-8e83-a20ff7df8f5e@suse.com>
Message-ID: <alpine.DEB.2.22.394.2504291425320.3879245@ubuntu-linux-20-04-desktop>
References: <alpine.DEB.2.22.394.2504251314050.785180@ubuntu-linux-20-04-desktop> <19d9aec4-c21a-47a9-9c58-6bfcadbd22e0@suse.com> <alpine.DEB.2.22.394.2504281242240.785180@ubuntu-linux-20-04-desktop> <06b66971-d8db-456f-8e83-a20ff7df8f5e@suse.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Tue, 29 Apr 2025, Jan Beulich wrote:
> On 28.04.2025 22:00, Stefano Stabellini wrote:
> > On Mon, 28 Apr 2025, Jan Beulich wrote:
> >> On 25.04.2025 22:19, Stefano Stabellini wrote:
> >>> From: Xenia Ragiadakou <Xenia.Ragiadakou@amd.com>
> >>>
> >>> Dom0 PVH might need XENMEM_exchange when passing contiguous memory
> >>> addresses to firmware or co-processors not behind an IOMMU.
> >>
> >> I definitely don't understand the firmware part: It's subject to the
> >> same transparent P2M translations as the rest of the VM; it's just
> >> another piece of software running there.
> >>
> >> "Co-processors not behind an IOMMU" is also interesting; a more
> >> concrete scenario might be nice, yet I realize you may be limited in
> >> what you're allowed to say.
> > 
> > Sure. On AMD x86 platforms there is a co-processor called PSP running
> > TEE firmware. The PSP is not behind an IOMMU. Dom0 needs occasionally to
> > pass addresses to it.  See drivers/tee/amdtee/ and
> > include/linux/psp-tee.h in Linux.
> > 
> > This is not a new problem. On ARM we have been dealing with this kind of
> > issues for more than a decade and it is the reason why originally the
> > decision was to run Dom0 1:1 mapped on ARM. I am not suggesting to map
> > Dom0 PVH 1:1; I am only providing context and highlighting that we
> > have been lucky on x86 :-)
> > 
> > 
> >>> XENMEM_exchange was blocked for HVM/PVH DomUs, and accidentally it
> >>> impacted Dom0 PVH as well.
> >>
> >> This wasn't accidental at all, I don't think.
> > 
> > You as the original author of the patch (fae7d5be8bb) in question would
> > surely know better. But the way the commit message was written was
> > pointing toward a Dom0/DeviceModel problem:
> > 
> > "The operation's success can't be controlled by the guest, as the device
> > model may have an active mapping of the page."
> 
> It's the problem mentioned at the bottom: MFNs (in principle) are entirely
> meaningless to HVM and PVH domains. With, as you point out there, an
> apparently important exception.
> 
> >>> --- a/xen/arch/x86/mm.c
> >>> +++ b/xen/arch/x86/mm.c
> >>> @@ -4401,7 +4401,7 @@ int steal_page(
> >>>      const struct domain *owner;
> >>>      int rc;
> >>>  
> >>> -    if ( paging_mode_external(d) )
> >>> +    if ( paging_mode_external(d) && !is_hardware_domain(d) )
> >>>          return -EOPNOTSUPP;
> >>>  
> >>>      /* Grab a reference to make sure the page doesn't change under our feet */
> >>
> >> Is this (in particular the code following below here) a safe thing to do
> >> when we don't properly refcount page references from the P2M, yet? It's
> >> Dom0, yes, but even there I might see potential security implications (as
> >> top violating privacy of a guest).
> > 
> > I don't think I am following, could you please elaborate more? The
> > change I am proposing is to allow Dom0 to share its own pages to the
> > co-processor. DomUs are not in the picture. I would be happy to add
> > further restriction to that effect. Is there something else you have in
> > mind?
> 
> Once "shared" with the PSP, how would Xen know that this sharing has stopped?
> Without knowing, how could it safely give the same page to a DomU later on?
> ("Safely" in both directions: Without compromising privacy of the DomU and
> without compromising host safety / security.)

Why would Xen later assign the same page to a DomU? The page comes
from the hardware domain, which, as of today, cannot be destroyed. BTW I
realize it is a bit different, but we have been doing the same thing
with Dom0 1:1 mapped on ARM since the start of the project.

Additionally, the TEE is considered a more trusted component in the
system than the hypervisor.


> >> Furthermore cleanup_page_mappings() (called later in the function) has a
> >> PV-only aspect which would apparently need widening to PVH Dom0 then,
> >> too.
> > 
> > You are referring to:
> > 
> >         if ( d && unlikely(need_iommu_pt_sync(d)) && is_pv_domain(d) )
> >             rc = iommu_legacy_unmap(d, _dfn(mfn), 1u << PAGE_ORDER_4K);
> > 
> > is that correct?
> 
> Yes, that's what immediately caught my eye. I didn't look carefully whether
> there might be more.
> 
> >>> --- a/xen/common/memory.c
> >>> +++ b/xen/common/memory.c
> >>> @@ -794,7 +794,7 @@ static long memory_exchange(XEN_GUEST_HANDLE_PARAM(xen_memory_exchange_t) arg)
> >>>              rc = guest_physmap_add_page(d, _gfn(gpfn), mfn,
> >>>                                          exch.out.extent_order) ?: rc;
> >>>  
> >>> -            if ( !paging_mode_translate(d) &&
> >>> +            if ( (!paging_mode_translate(d) || is_hardware_domain(d)) &&
> >>>                   __copy_mfn_to_guest_offset(exch.out.extent_start,
> >>>                                              (i << out_chunk_order) + j,
> >>>                                              mfn) )
> >>
> >> Wait, no: A PVH domain (Dom0 or not) can't very well make use of MFNs, can
> >> it?
> > 
> > One way or another Dom0 PVH needs to know the MFN to pass it to the
> > co-processor.
> 
> I see. That's pretty odd, though. I'm then further concerned of the order of
> the chunks. At present we're rather lax, in permitting PVH and PV Dom0 the
> same upper bound. With both CPU and I/O side translation there is, in
> principle, no reason to permit any kind of contiguity. Of course there's a
> performance aspect, but that hardly matters in the specific case here. Yet at
> the same time, once we expose MFNs, contiguity will start mattering as soon
> as any piece of memory needs to be larger than PAGE_SIZE. Which means it will
> make tightening of the presently lax handling prone to regressions in this
> new behavior you're introducing. What chunk size does the PSP driver require?

I don't know. The memory returned by XENMEM_exchange is contiguous,
right? Are you worried that Xen cannot allocate the requested amount of
memory contiguously? We have been using this patch for months now and it
has been working correctly to this day.


> One further thought here: Is it really the hardware domain which is most
> logical to drive the PSP? Interaction is (just guessing) perhaps needed
> primarily when creating / managing guests? Then having the control domain
> talk to a driver in the hardware domain would make the overall picture more
> complicated.

On AMD the interactions are more related to access to hardware or
controlling other peripherals so it is a good fit for the hardware
domain.


From xen-devel-bounces@lists.xenproject.org Tue Apr 29 21:53:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 21:53:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.973086.1361300 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9sto-00067j-5u; Tue, 29 Apr 2025 21:53:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 973086.1361300; Tue, 29 Apr 2025 21: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 1u9sto-00067c-2k; Tue, 29 Apr 2025 21:53:56 +0000
Received: by outflank-mailman (input) for mailman id 973086;
 Tue, 29 Apr 2025 21:53: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=rc0E=XP=linuxfoundation.org=torvalds@srs-se1.protection.inumbo.net>)
 id 1u9stm-00067W-NE
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 21:53:54 +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 70dd8bf8-2544-11f0-9eb4-5ba50f476ded;
 Tue, 29 Apr 2025 23:53:53 +0200 (CEST)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-ac2aeada833so61388166b.0
 for <xen-devel@lists.xenproject.org>; Tue, 29 Apr 2025 14:53:53 -0700 (PDT)
Received: from mail-ed1-f46.google.com (mail-ed1-f46.google.com.
 [209.85.208.46]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-ace6ecf77dasm830922066b.87.2025.04.29.14.53.48
 for <xen-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 29 Apr 2025 14:53:48 -0700 (PDT)
Received: by mail-ed1-f46.google.com with SMTP id
 4fb4d7f45d1cf-5efe8d9eb1eso515374a12.0
 for <xen-devel@lists.xenproject.org>; Tue, 29 Apr 2025 14:53: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: 70dd8bf8-2544-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linux-foundation.org; s=google; t=1745963632; x=1746568432; darn=lists.xenproject.org;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:from:to:cc:subject:date:message-id:reply-to;
        bh=fqNEBXZSbJGWmL1W/E0BdQ0WH7FE/Nb9rr17rLaU2hw=;
        b=Qk5mAu+2sgkr5r/GaCC2+UTX8dY5l1FUD3dOcZmbHqQ6i0j/j4uNDHx9wQ0wSmKfRJ
         azem3+80qGfPxatTZ0WI7vlIQvNa2sNIrCQK3DR1fTKZGqy6SVetNkZyFna++6yTYZeK
         Y76TaQzMuOTXJSVyQ+YWObJ0ZKK+c01X+wd+g=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745963632; x=1746568432;
        h=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=fqNEBXZSbJGWmL1W/E0BdQ0WH7FE/Nb9rr17rLaU2hw=;
        b=u0EXz81lEVXZo7BYMhDSyIMMG5/ailvafd7j+H9Bk+9JML23SU9iHIK7AbEH345vfF
         n6dWSQI/aIyYmM/n3a1isxygNvRQJVgR4x2bKH0MPfpz3cLYHFiO7qRR0vgDT0+Lc6MD
         q0JwYO87Hs5cDajLbpCKtglbus+A9j2uqPJSDShmUnScGoD1D3clOkyBkD7vZniYphXu
         jQtwFl2gi+ikUK2v3HwKu7jecQhShYgo1EKW8tWLtRQzVosJBhneuqHCmuBTKhDsXQW/
         OBipB/YO1sNJV5/5MJ/PmEzjjC2TeI8OExrgkRA/BFK6DKuCS7HFyVoXeHxakayJemlT
         iJHQ==
X-Forwarded-Encrypted: i=1; AJvYcCWwMWkEgPJx9oOqkDl+upCyIwyIz1JyhyM52kxGo0No8CY3xh7lV1kadw9J17SXwo8T7hgmkWaOkkY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxwP4ch1A2QkvqaaHjnvrUZZnQyIDDA2Fx7zurtj59plQsmdSDr
	xoSNsJiifc8/5lRnbnNZSZHgT9NxHW4FISZFlm7SmP8QBxKki9sDzYF31zhvusxkcUYD5vxJk9e
	4wViP5Q==
X-Gm-Gg: ASbGncsTNisWD9hvRo8djZlurVf+IOamd2IS1EkCj7VTEdM0up5P5n/BFp5Y2Fd5rBn
	2cy9ZiQSsBHQAFXDHKOVgtzoEDz/uG4X0aAcs3yaA5hmdUA04a59gGTFFJ/mhKRvxUqDNtLS8Uv
	g+EpICU8B0EMxqXoGhTRj8/xdOHppkN2nVptfcXrEVxNtsYGal/vWuK0nOG8f6guOCo6RwEiF1G
	0VVrRkFJANnBTbR1lSAeLhSTPdYfIaQ6gjextu6ePYe1AanLn7RWlc1nUak1pvumi7OooIc1qZS
	g9HQSZGLNDKWhvlwMU7qHsDQXNO6LSiuglf11ehIhnNY4FNO3crDrI8m+JZzyEbUya1KcwNj939
	jS6vItUGxEuP9cjw=
X-Google-Smtp-Source: AGHT+IFcYEVpsnoW3AHg048dbXOtQMMVtUexVJfIGmk8SX0OFHq3lQt58qNfDRk+qNyOSgy0dKXZbQ==
X-Received: by 2002:a17:906:6a1e:b0:ace:8176:9870 with SMTP id a640c23a62f3a-acedf68d357mr37655466b.9.1745963632260;
        Tue, 29 Apr 2025 14:53:52 -0700 (PDT)
X-Forwarded-Encrypted: i=1; AJvYcCVeITs4JVCTXjihqqyhmHjQ5hLrPypjRVXS2ZMglgPJIqrEkOiVjXeILhefQmQhFSz9rnev7eU3XWk=@lists.xenproject.org
X-Received: by 2002:a05:6402:90e:b0:5f8:3a9f:fdca with SMTP id
 4fb4d7f45d1cf-5f89f7689ddmr371432a12.9.1745963628390; Tue, 29 Apr 2025
 14:53:48 -0700 (PDT)
MIME-Version: 1.0
References: <20250425141740.734030-1-arnd@kernel.org> <d2b0e71c-e79b-40d6-8693-3202cd894d66@app.fastmail.com>
 <CAHk-=wh=TUsVv6xhtzYsWJwJggrjyOfYT3kBu+bHtoYLK0M9Xw@mail.gmail.com>
 <CAHk-=wgfk69H-T-vMWR33xUpVsWJLrF34d0OwUXa2sHhtpSwZg@mail.gmail.com>
 <e54f1943-e0ff-4f59-b24f-9b5a7a38becf@citrix.com> <CAHk-=wj0S2vWui0Y+1hpYMEhCiXKexbQ01h+Ckvww8hB29az_A@mail.gmail.com>
 <aA8nF0moBYOIgC5J@gmail.com> <aA8oqKUaFU-0wb-D@gmail.com> <CAHk-=wgJfWfWa2NTiTmev+Xr=e8Uo=aFkrXujLAQBVAVN-VigQ@mail.gmail.com>
 <B364FF6D-DFCC-42A7-ACA1-6A74E27EE57E@zytor.com> <67be5eee-b67b-409a-8309-829f891b9944@citrix.com>
 <916BD58C-E6A7-495E-9A60-722E130AC7A7@zytor.com> <e5e97ff8-9670-40d1-a0fa-69504d34c4c4@citrix.com>
 <956DB0ED-F3DB-456D-8D06-6F40DBDB815A@zytor.com> <06d04c13-76e8-45fb-a563-e365e1f19362@citrix.com>
 <CAHk-=wig1E4B-e1_6=it1LfVQ64DJsVgO6f6Ytnbzm2qChbAdw@mail.gmail.com>
 <81ed8b53-1a40-4777-ab87-4f4abe032dbc@citrix.com> <CAHk-=wiAPQFf-RUr=8ra1sYdfGPGLb4QbV8THE9zY3n820L94g@mail.gmail.com>
 <72078B8D-F03E-4783-8AC2-A36464A4B6A1@zytor.com>
In-Reply-To: <72078B8D-F03E-4783-8AC2-A36464A4B6A1@zytor.com>
From: Linus Torvalds <torvalds@linux-foundation.org>
Date: Tue, 29 Apr 2025 14:53:31 -0700
X-Gmail-Original-Message-ID: <CAHk-=wi=nuDW6yCXSA-dEztZhXNuzLOaH--s_V7GOAE7n6RsRw@mail.gmail.com>
X-Gm-Features: ATxdqUF2WEWyDNEqWzlgzyXTf4abegFsgsXzBlk2KHwHm9gaQxxnui60dOXB01E
Message-ID: <CAHk-=wi=nuDW6yCXSA-dEztZhXNuzLOaH--s_V7GOAE7n6RsRw@mail.gmail.com>
Subject: Re: [PATCH] bitops/32: Convert variable_ffs() and fls() zero-case
 handling to C
To: "H. Peter Anvin" <hpa@zytor.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Ingo Molnar <mingo@kernel.org>, 
	Arnd Bergmann <arnd@arndb.de>, Arnd Bergmann <arnd@kernel.org>, Thomas Gleixner <tglx@linutronix.de>, 
	Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>, 
	Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, 
	Juergen Gross <jgross@suse.com>, Boris Ostrovsky <boris.ostrovsky@oracle.com>, 
	Alexander Usyskin <alexander.usyskin@intel.com>, 
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>, =?UTF-8?Q?Mateusz_Jo=C5=84czyk?= <mat.jonczyk@o2.pl>, 
	Mike Rapoport <rppt@kernel.org>, Ard Biesheuvel <ardb@kernel.org>, Peter Zijlstra <peterz@infradead.org>, 
	linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org
Content-Type: multipart/mixed; boundary="000000000000dcb6610633f1d539"

--000000000000dcb6610633f1d539
Content-Type: text/plain; charset="UTF-8"

On Tue, 29 Apr 2025 at 14:24, H. Peter Anvin <hpa@zytor.com> wrote:
>
> Could you file a gcc bug? Gcc shouldn't generate worse code than inline asm ...

Honestly, I've given up on that idea.

That's basically what the bug report I reported about clts was - gcc
generating worse code than inline asm.

But why would we use gcc builtins at all if we have inline asm that is
better than what som eversions of gcc generates? The inline asm works
for all versions.

Anyway, attached is a test file that seems to generate basically
"optimal" code. It's not a kernel patch, but a standalone C file for
testing with a couple of stupid test-cases to make sure that it gets
the constant argument case right, and that it optimizes the "I know
it's not zero" case.

That is why it also uses that "#if __SIZEOF_LONG__ == 4" instead of
something like CONFIG_64BIT.

So it's a proof-of-concept thing, and it does seem to be fairly simple.

The "important" parts are just the

  #define variable_ffs(x) \
        (statically_true((x)!=0) ? __ffs(x)+1 : do_variable_ffs(x))
  #define constant_ffs(x) __builtin_ffs(x)
  #define ffs(x) \
        (__builtin_constant_p(x) ? constant_ffs(x) : variable_ffs(x))

lines which end up picking the right choice. The rest is either the
"reimplement the kernel infrastructure for testing" or the trivial
do_variable_ffs() thing.

I just did

    gcc -m32 -O2 -S -fomit-frame-pointer t.c

(with, and without that -m32) and looked at the result to see that it
looks sane. No *actual* testing.


                Linus

--000000000000dcb6610633f1d539
Content-Type: text/x-csrc; charset="US-ASCII"; name="t.c"
Content-Disposition: attachment; filename="t.c"
Content-Transfer-Encoding: base64
Content-ID: <f_ma31mmgj0>
X-Attachment-Id: f_ma31mmgj0

c3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgX19mZnModW5zaWduZWQgaW50IHgpCnsKCXVuc2ln
bmVkIGludCByZXQ7Cglhc20oInJlcCBic2ZsICUxLCUwIgoJCToiPXIiIChyZXQpCgkJOiJybSIg
KHgpKTsKCXJldHVybiByZXQ7Cn0KI2RlZmluZSBzdGF0aWNhbGx5X3RydWUoeCkgKF9fYnVpbHRp
bl9jb25zdGFudF9wKHgpICYmICh4KSkKCnN0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IGRvX3Zh
cmlhYmxlX2Zmcyh1bnNpZ25lZCBpbnQgeCkKewojaWYgX19TSVpFT0ZfTE9OR19fID09IDQKCXJl
dHVybiBfX2J1aWx0aW5fZmZzKHgpOwojZWxzZQoJdW5zaWduZWQgaW50IHJldDsKCWFzbSgicmVw
IGJzZmwgJTEsJTAiCgkJOiI9ciIgKHJldCkKCQk6InJtIiAoeCksICIwIiAoLTEpKTsKCXJldHVy
biByZXQrMTsKI2VuZGlmCn0KCiNkZWZpbmUgdmFyaWFibGVfZmZzKHgpIChzdGF0aWNhbGx5X3Ry
dWUoKHgpIT0wKSA/IF9fZmZzKHgpKzEgOiBkb192YXJpYWJsZV9mZnMoeCkpCiNkZWZpbmUgY29u
c3RhbnRfZmZzKHgpIF9fYnVpbHRpbl9mZnMoeCkKCiNkZWZpbmUgZmZzKHgpIChfX2J1aWx0aW5f
Y29uc3RhbnRfcCh4KSA/IGNvbnN0YW50X2Zmcyh4KSA6IHZhcmlhYmxlX2Zmcyh4KSkKCnVuc2ln
bmVkIGludCBteWZmcyh1bnNpZ25lZCBpbnQgeCkgeyByZXR1cm4gZmZzKHgpOyB9CnVuc2lnbmVk
IGludCBmZnM1KHZvaWQpIHsgcmV0dXJuIGZmcyg1KTsgfQp1bnNpZ25lZCBpbnQgYWRkZmZzKGlu
dCB4KQp7Cgl1bnNpZ25lZCBpbnQgc3VtID0gMDsKCXdoaWxlICh4KSB7CgkJc3VtICs9IGZmcyh4
KTsKCQl4LS07Cgl9CglyZXR1cm4gc3VtOwp9Cg==
--000000000000dcb6610633f1d539--


From xen-devel-bounces@lists.xenproject.org Tue Apr 29 22:00:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 22:00:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.973104.1361311 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9szh-0006xb-Tz; Tue, 29 Apr 2025 22:00:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 973104.1361311; Tue, 29 Apr 2025 22:00: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 1u9szh-0006x9-PR; Tue, 29 Apr 2025 22:00:01 +0000
Received: by outflank-mailman (input) for mailman id 973104;
 Tue, 29 Apr 2025 22: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=yPhw=XP=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u9szg-0006mc-3M
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 22:00:00 +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 487da98c-2545-11f0-9ffb-bf95429c2676;
 Tue, 29 Apr 2025 23:59:54 +0200 (CEST)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-43d2d952eb1so43343105e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 29 Apr 2025 14:59:54 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3a073c8d769sm15337488f8f.12.2025.04.29.14.59.53
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 29 Apr 2025 14:59:53 -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: 487da98c-2545-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745963994; x=1746568794; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=6dzUUs9PHGNaWyx7sMbE5O+dXkRC6SHo7Jar916xxOA=;
        b=XmRQjs63jVkUBrQUibDScAKiVXk4BjZ07BS46Fh/5hjzOWnbxjWHNU/C2LS40bITt9
         4Fv4yRFMU7ML7uFLAwcayYwjGCNbO4R9ysqykto6CGbbT9i+PjYJh+oALSwNwrqPnfBz
         Ud7GMBN7EEWTXk4+Q3JVQQyVKOF/u8FqnEr4o=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745963994; x=1746568794;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=6dzUUs9PHGNaWyx7sMbE5O+dXkRC6SHo7Jar916xxOA=;
        b=xAjUO6e6Za5M/muGIzf4+csUBWLZezgvIoiq9fLFNuQOtFCNbtt9M26+1M1AP9eY9d
         0u73eM9H9/oSMwZ4jGnjOzTM/XzrDd8MD9KQ3CXag2NTIt3fg/hJlCHqbNuWkNqXfHkj
         GREBcYB42NmNLtIjb3nBFENZ50pwEuD85wk8CVC9zkm7VN8YtD6x5HOalHJTfcvlbk0l
         GIo2I9qBEHDumRN8KuSXvXEvE6+ufr5FC/caOJoZKoM4eicjfjO2hDdAuanPAHJX6UUx
         V2aHxOyR+Rv2Af+PF3UuDc8dmxE21OuhuQedGIhDWkoIhLGIDTIjuv42jdfthHse8/XD
         QOXQ==
X-Forwarded-Encrypted: i=1; AJvYcCWJL2I+2aEjGGFfH3GAJJ7NQC5AFdKBs+L65HbQw4J1AtD4EcyBy8jLK6YuxzCdg4GCAvDvwC9vTQQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzqQ0neYvDza0tIKXKtPuGapq1dHijLVQ/bl71WRzJM+RwelL3M
	ZXuRqZf1vt96+TN44lmaqEpkE23eAmtq2zhJ7P63/2Hnzlnnkmr5jHtJvmXcOHI=
X-Gm-Gg: ASbGncv2/cvASeQBrle8bxJQHFBfuP6cj2jV1bSqQEeEUe1j9AKVFK9pFU31wlUz2pL
	DcpdUtDqjapAb2lBRYMe5M2BWrbm6jWHoNTSO76l2P6qSO1VhNMgUd585Q8VkPUCoQZai7dRjhA
	fkklHLkD8x6dr00OiVDaPeWCgTLVakk0EXEszFDTglenossoxiryq4R2+mXM9Rr/nRhsvqYiokG
	92EqzmpMUlg9P+uAUrnDmjlirQGYg7fLfsRFU9smcDI4LokMuyrm0tPluoCn+vpNzp6fpw155+d
	qSPlKvDRymbykN4LGiH5FZZywnYmq758GaPdv4ZJwykVvso8VgSX4TVDVPUvWV8uxzhTEsNEiRh
	X5Rn8BqrLs2UrTt0P
X-Google-Smtp-Source: AGHT+IHY4cy7uLjQEgNWyNiMXezrWzP1fls3JqJAD5jOL0ln9GwzkgsvNYrkR6Xino4KLtyzyycz0g==
X-Received: by 2002:a05:600c:4f8b:b0:43c:e2dd:98ea with SMTP id 5b1f17b1804b1-441b1f5b98emr5409965e9.22.1745963994347;
        Tue, 29 Apr 2025 14:59:54 -0700 (PDT)
Message-ID: <565ac06a-005f-4b77-930e-d63285c025b9@citrix.com>
Date: Tue, 29 Apr 2025 22:59:52 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] bitops/32: Convert variable_ffs() and fls() zero-case
 handling to C
To: Linus Torvalds <torvalds@linux-foundation.org>,
 "H. Peter Anvin" <hpa@zytor.com>
Cc: Ingo Molnar <mingo@kernel.org>, Arnd Bergmann <arnd@arndb.de>,
 Arnd Bergmann <arnd@kernel.org>, Thomas Gleixner <tglx@linutronix.de>,
 Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
 Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org,
 Juergen Gross <jgross@suse.com>, Boris Ostrovsky
 <boris.ostrovsky@oracle.com>, Alexander Usyskin
 <alexander.usyskin@intel.com>,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
 =?UTF-8?Q?Mateusz_Jo=C5=84czyk?= <mat.jonczyk@o2.pl>,
 Mike Rapoport <rppt@kernel.org>, Ard Biesheuvel <ardb@kernel.org>,
 Peter Zijlstra <peterz@infradead.org>, linux-kernel@vger.kernel.org,
 xen-devel@lists.xenproject.org
References: <20250425141740.734030-1-arnd@kernel.org>
 <CAHk-=wgfk69H-T-vMWR33xUpVsWJLrF34d0OwUXa2sHhtpSwZg@mail.gmail.com>
 <e54f1943-e0ff-4f59-b24f-9b5a7a38becf@citrix.com>
 <CAHk-=wj0S2vWui0Y+1hpYMEhCiXKexbQ01h+Ckvww8hB29az_A@mail.gmail.com>
 <aA8nF0moBYOIgC5J@gmail.com> <aA8oqKUaFU-0wb-D@gmail.com>
 <CAHk-=wgJfWfWa2NTiTmev+Xr=e8Uo=aFkrXujLAQBVAVN-VigQ@mail.gmail.com>
 <B364FF6D-DFCC-42A7-ACA1-6A74E27EE57E@zytor.com>
 <67be5eee-b67b-409a-8309-829f891b9944@citrix.com>
 <916BD58C-E6A7-495E-9A60-722E130AC7A7@zytor.com>
 <e5e97ff8-9670-40d1-a0fa-69504d34c4c4@citrix.com>
 <956DB0ED-F3DB-456D-8D06-6F40DBDB815A@zytor.com>
 <06d04c13-76e8-45fb-a563-e365e1f19362@citrix.com>
 <CAHk-=wig1E4B-e1_6=it1LfVQ64DJsVgO6f6Ytnbzm2qChbAdw@mail.gmail.com>
 <81ed8b53-1a40-4777-ab87-4f4abe032dbc@citrix.com>
 <CAHk-=wiAPQFf-RUr=8ra1sYdfGPGLb4QbV8THE9zY3n820L94g@mail.gmail.com>
 <72078B8D-F03E-4783-8AC2-A36464A4B6A1@zytor.com>
 <CAHk-=wi=nuDW6yCXSA-dEztZhXNuzLOaH--s_V7GOAE7n6RsRw@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: <CAHk-=wi=nuDW6yCXSA-dEztZhXNuzLOaH--s_V7GOAE7n6RsRw@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 29/04/2025 10:53 pm, Linus Torvalds wrote:
> I just did
>
>     gcc -m32 -O2 -S -fomit-frame-pointer t.c
>
> (with, and without that -m32) and looked at the result to see that it
> looks sane. No *actual* testing.

do_variable_ffs() doesn't quite work.

REP BSF is LZCNT, and unconditionally writes it's output operand, and
defeats the attempt to preload with -1.

Drop the REP prefix, and it should work as intended.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Apr 29 22:00:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 22:00:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.973113.1361320 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9t0Z-0008Ve-5F; Tue, 29 Apr 2025 22:00:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 973113.1361320; Tue, 29 Apr 2025 22:00: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 1u9t0Z-0008VX-2I; Tue, 29 Apr 2025 22:00:55 +0000
Received: by outflank-mailman (input) for mailman id 973113;
 Tue, 29 Apr 2025 22:00: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=ZtOk=XP=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u9t0Y-0008VP-N7
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 22:00:54 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6a6bb585-2545-11f0-9ffb-bf95429c2676;
 Wed, 30 Apr 2025 00:00:52 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id ADEA568469;
 Tue, 29 Apr 2025 22:00:24 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3FD75C4CEE3;
 Tue, 29 Apr 2025 22:00: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: 6a6bb585-2545-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1745964050;
	bh=kW7neW6mweBNqD07JGgHLzn6OAfv3U4car/KoHOeMFo=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=JhgXn15uDRyP/FeES6ZYgcIPbu4807rc1cfWEcTsrl035P5LWL6vaOHBpNWKePg2V
	 +zZ+2FujiqazI0bOLhKZLqSBCzYGeKtCIHeNu3EPElV0Xo7BPcHDEmB7vXgxR/1ckG
	 C868Jyg0OBIXBk/Z6F44NAeCzbfZwoqqxwv6yb7doUUeJd9gzjVeA5Fg3DCyXgrmK8
	 n36Td61D4IpkEjr/IigiOCA238BSOlNpNldIINzO+dfo3tbJPohTxl+0nxsrek9/oQ
	 K1xMGnsgjL74brpz8OYpsZjxh/L7nb6wxpYpe8PdZb9c2l6XPSOSAYp9U0/LPHVgSK
	 c32vy7MQJj7rw==
Date: Tue, 29 Apr 2025 15:00:47 -0700 (PDT)
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>, victorm.lira@amd.com, 
    Federico Serafini <federico.serafini@bugseng.com>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    Anthony PERARD <anthony.perard@vates.tech>, 
    Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Nicola Vetrini <nicola.vetrini@bugseng.com>, 
    Bertrand Marquis <bertrand.marquis@arm.com>, 
    xen-devel@lists.xenproject.org
Subject: Re: [PATCH v1 1/2] xen/page_alloc: address violation of Rule 14.3
In-Reply-To: <f2b6396c-c933-4fb9-ba4b-c90170540955@suse.com>
Message-ID: <alpine.DEB.2.22.394.2504291456430.3879245@ubuntu-linux-20-04-desktop>
References: <5f2e316aae4667d1fe851e68552eb881c4d5a015.1745625477.git.victorm.lira@amd.com> <3146fbf3-2ff1-48a4-b05b-37477a9a5cc5@suse.com> <alpine.DEB.2.22.394.2504281551530.785180@ubuntu-linux-20-04-desktop> <f2b6396c-c933-4fb9-ba4b-c90170540955@suse.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Tue, 29 Apr 2025, Jan Beulich wrote:
> On 29.04.2025 01:21, Stefano Stabellini wrote:
> > On Mon, 28 Apr 2025, Jan Beulich wrote:
> >> On 26.04.2025 02:00, victorm.lira@amd.com wrote:
> >>> From: Federico Serafini <federico.serafini@bugseng.com>
> >>>
> >>> MISRA C Rule 14.3 states that "Controlling expressions shall not be
> >>> invariant".
> >>>
> >>> Add a SAF comment to deviate the rule for build configurations without
> >>> CONFIG_LLC_COLORING enabled.
> >>
> >> I was surprised by this supposedly being the only violation. And indeed it
> >> wasn't very hard to find more. For example, we have a number of
> >> "while ( num_online_cpus() > 1 && ... )", which become compile-time
> >> constant (false) when NR_CPUS=1.
> > 
> > Uhm, I did run a special scan for this and I can confirm no other
> > violations are detected.
> 
> Because of it being only one single configuration that's being scanned. I did
> point out before that this is a problem for anyone wanting to certify the
> hypervisor in a (perhaps just slightly) different configuration.
>
> >>> --- a/xen/common/page_alloc.c
> >>> +++ b/xen/common/page_alloc.c
> >>> @@ -2038,6 +2038,7 @@ static struct page_info *alloc_color_heap_page(unsigned int memflags,
> >>>
> >>>      spin_lock(&heap_lock);
> >>>
> >>> +    /* SAF-14-safe MISRA C R14.3 condition always false without LLC_COLORING */
> >>>      for ( i = 0; i < domain_num_llc_colors(d); i++ )
> >>>      {
> >>>          unsigned long free = free_colored_pages[domain_llc_color(d, i)];
> >>
> >> Hmm, this way the deviation applies even when LLC_COLORING=y.
> > 
> > Yes but in the LLC_COLORING=y case it is harmless. Do you have something
> > else in mind?
> 
> What if, perhaps by mistake, domain_num_llc_colors() becomes constant 0 in
> yet another configuration? (I don't expect this would work, but in principle
> the comment ought to be inside an #ifdef.)
> 
> >> As to the comment wording - looks like we're pretty inconsistent with that
> >> right now. I, for one, don't think the Misra rule needs (re)stating there;
> >> the SAF index points at all the data that's needed if one cares about the
> >> specifics of the deviation.
> > 
> > Do you prefer:
> > 
> > /* SAF-14-safe */
> 
> That's too short. All I'm asking for is to drop the (imprecise) rule
> reference. Noticing only now: It being imprecise may make the comment go
> stale if we move to a newer Misra spec, as the rule number may be different
> then.

I read all your comments to this patch and suggestions, while some of
them are good, I think this patch is better left as it is.

So I'll give my Reviewed-by. If you disagree it should go in as is, I'd
ask a third Maintainer to voice their opinion.

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


From xen-devel-bounces@lists.xenproject.org Tue Apr 29 22:02:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 22:02:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.973125.1361329 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9t1x-0000kE-FM; Tue, 29 Apr 2025 22:02:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 973125.1361329; Tue, 29 Apr 2025 22:02:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9t1x-0000k7-Ce; Tue, 29 Apr 2025 22:02:21 +0000
Received: by outflank-mailman (input) for mailman id 973125;
 Tue, 29 Apr 2025 22:02: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=ZtOk=XP=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u9t1w-0000jt-FQ
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 22:02:20 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9d5efef8-2545-11f0-9ffb-bf95429c2676;
 Wed, 30 Apr 2025 00:02:18 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 56F0E44D92;
 Tue, 29 Apr 2025 22:02:14 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id E6483C4CEE3;
 Tue, 29 Apr 2025 22:02: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: 9d5efef8-2545-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1745964136;
	bh=VUoDaZd4v0Iy7dkGxv9a7twIhTm0wla375sylnetC7A=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=WZXu0GdlUWFxESqAHJAGWxH4dKT4HlIALdTzwT+SDFCvoQkl3N9LcTr6a0b1+EOGD
	 wyXSGz9iLS5YkKgKzI3pLDtX0Sh35spdr6K06nJU4NKNZpsVGnnSy6caZTJn0XljBx
	 fWRNGx/Pi9P9TknVcv7kw6Z/e0y1ijQzvmyi1+hE5pDfeaBfWaxvqebIzf0xx2BaNG
	 7yIpTxd7vDaVZxwPxTZXZ0G4xDP5fpeb//oC+nr5NU3WPfM0MvVCHVdyF8LfglE9QF
	 yU+/HTWJixpM8LexYgfsTSZxho3x8gQBMVjl6gJiJRoNn9cSZa6IHL3zeootebHAt6
	 NHiMY0BieWUZw==
Date: Tue, 29 Apr 2025 15:02:13 -0700 (PDT)
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>, victorm.lira@amd.com, 
    Nicola Vetrini <nicola.vetrini@bugseng.com>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    Anthony PERARD <anthony.perard@vates.tech>, 
    Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Federico Serafini <federico.serafini@bugseng.com>, 
    Bertrand Marquis <bertrand.marquis@arm.com>, 
    xen-devel@lists.xenproject.org
Subject: Re: [PATCH v1 2/3] compat: address violations of MISRA C Rule 19.1
In-Reply-To: <dc55282f-f9a1-470b-8126-ca347d44efbc@suse.com>
Message-ID: <alpine.DEB.2.22.394.2504291501490.3879245@ubuntu-linux-20-04-desktop>
References: <c694069696dd428bc1719e36c378a573b03f74b9.1745624090.git.victorm.lira@amd.com> <74b0420ab20fc0204db14c0a1a4a68ed48b25a38.1745624090.git.victorm.lira@amd.com> <cb1f8a8f-8834-4610-baab-c53bf5928b0c@suse.com> <alpine.DEB.2.22.394.2504281614020.785180@ubuntu-linux-20-04-desktop>
 <dc55282f-f9a1-470b-8126-ca347d44efbc@suse.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Tue, 29 Apr 2025, Jan Beulich wrote:
> On 29.04.2025 01:21, Stefano Stabellini wrote:
> > On Mon, 28 Apr 2025, Jan Beulich wrote:
> >> On 26.04.2025 01:42, victorm.lira@amd.com wrote:
> >>> From: Nicola Vetrini <nicola.vetrini@bugseng.com>
> >>>
> >>> Rule 19.1 states: "An object shall not be assigned or copied
> >>> to an overlapping object". Since the "call" and "compat_call" are
> >>> fields of the same union, reading from one member and writing to
> >>> the other violates the rule, while not causing Undefined Behavior
> >>> due to their relative sizes. However, a dummy variable is used to
> >>> address the violation and prevent the future possibility of
> >>> incurring in UB.
> >>
> >> If there is such a concern, ...
> >>
> >>> --- a/xen/common/compat/multicall.c
> >>> +++ b/xen/common/compat/multicall.c
> >>> @@ -15,8 +15,13 @@ typedef int ret_t;
> >>>  static inline void xlat_multicall_entry(struct mc_state *mcs)
> >>>  {
> >>>      int i;
> >>> +    xen_ulong_t arg;
> >>> +
> >>>      for (i=0; i<6; i++)
> >>> -        mcs->compat_call.args[i] = mcs->call.args[i];
> >>> +    {
> >>> +        arg = mcs->call.args[i];
> >>> +        mcs->compat_call.args[i] = arg;
> >>> +    }
> >>>  }
> >>
> >> ... wouldn't it be of concern as well that the alternating parts of
> >> the union are still accessed in a flip-flop manner? IOW we continue to
> >> rely on the relative placement properties of the individual array
> >> elements. To eliminate such a concern, I think the resulting code would
> >> also want to be correct if iteration was swapped to work downwards.
> >>
> >> Also the scope of the temporary could certainly be the loop body rather
> >> than the entire function.
> > 
> > Wouldn't be safer to do this then?
> > 
> > static inline void xlat_multicall_entry(struct mc_state *mcs)
> > {
> >     int i;
> >     xen_ulong_t args[6];
> > 
> >     for ( i = 0; i < 6; i++ )
> >     {
> >         args[i] = mcs->call.args[i];
> >     }
> >     for ( i = 0; i < 6; i++ )
> >     {
> >         mcs->compat_call.args[i] = args[i];
> >     }
> > }
> > 
> > If you have any specific suggestions I think C code would be easier to
> > understand than English.
> 
> Kind of the above, yes, with the further remark below also taken care of.
> So ...
> 
> >> I also don't think it needs to be xen_ulong_t,
> >> but maybe using unsigned int instead wouldn't make a difference in
> >> generated code.
> > 
> > Keeping the same type as mcs->call.args[i] would seem more obviously
> > correct? Not to mention that unsigned long is what we defined as
> > register type? If we really want to avoid xen_ulong_t, then it should
> > be uintptr_t?
> > 
> > We should stick to one type to be used as register type. On ARM, we
> > defined register_t.
> 
> ... with both taken into account e.g.:
> 
>     typeof(mcs->compat_call.args[0]) args[ARRAY_SIZE(mcs->call.args)];
> 
>     for ( i = 0; i < ARRAY_SIZE(args); i++ )
>         args[i] = mcs->call.args[i];
> 
>     memcpy(mcs->compat_call.args, args, sizeof(args));
> 
> Of course there are variations possible. There also may want to be a
> BUILD_BUG_ON() to "document" both array sizes match, even if the compat
> form is auto-generated from the native one.
> 
> Tangential: As of 2f531c122e95 ("x86: limit number of hypercall parameters
> to 5") it's kind of bogus that we process 6 array elements here. This even
> extends to an assertion in hypercall_xlat_continuation() and to some of
> the handling in hypercall_create_continuation(). I guess I will want to
> make a patch there, which of course I could make cover the Misra aspect
> here as well.

Please do, that would be much appreciated. Thank you! Also thanks for
2f531c122e95.


From xen-devel-bounces@lists.xenproject.org Tue Apr 29 22:05:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 22:05:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.973139.1361340 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9t4S-0001IE-RW; Tue, 29 Apr 2025 22:04:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 973139.1361340; Tue, 29 Apr 2025 22: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 1u9t4S-0001I7-Of; Tue, 29 Apr 2025 22:04:56 +0000
Received: by outflank-mailman (input) for mailman id 973139;
 Tue, 29 Apr 2025 22: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=rc0E=XP=linuxfoundation.org=torvalds@srs-se1.protection.inumbo.net>)
 id 1u9t4R-0001Hz-Ad
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 22:04: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 f88c8da8-2545-11f0-9ffb-bf95429c2676;
 Wed, 30 Apr 2025 00:04:50 +0200 (CEST)
Received: by mail-ej1-x62b.google.com with SMTP id
 a640c23a62f3a-ac3b12e8518so1112590766b.0
 for <xen-devel@lists.xenproject.org>; Tue, 29 Apr 2025 15:04:50 -0700 (PDT)
Received: from mail-ej1-f47.google.com (mail-ej1-f47.google.com.
 [209.85.218.47]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-ace6e587f2csm836726266b.77.2025.04.29.15.04.47
 for <xen-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 29 Apr 2025 15:04:47 -0700 (PDT)
Received: by mail-ej1-f47.google.com with SMTP id
 a640c23a62f3a-ac339f53df9so1268839466b.1
 for <xen-devel@lists.xenproject.org>; Tue, 29 Apr 2025 15:04: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: f88c8da8-2545-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linux-foundation.org; s=google; t=1745964289; x=1746569089; darn=lists.xenproject.org;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:from:to:cc:subject:date:message-id:reply-to;
        bh=+FkXn5f7fGyaodgP6TJybZs8fgnt4L8M65LDm06LK3Y=;
        b=XxncL4H+aNLrWDCHuBzBYFjlsEUvuMt8VhB4Dnsyry92SH1vWzSsVhtvTytuhJAIcS
         +FfKev+EliukayCUcdbRwxBJY7crUz9xmJeJ6QU5fH6vItJHXEbv18vywdx+lbhPDB5L
         IZcts1kQ2bUvB/W76mesN1y32boGt3Ke22lBg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745964289; x=1746569089;
        h=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=+FkXn5f7fGyaodgP6TJybZs8fgnt4L8M65LDm06LK3Y=;
        b=PKw+QzT+sixQtDnWdhZvWVrGAkts0gP/qAd6atkG0ajfjCgmKMKfe3MSVBkGf4iYfv
         5Xc7GVOPC4tx7qDu3qQuyd0UaRb4XkvPtQeKaAQnUKvUfMCzabKtQ9O8CqbiLSIOzKOF
         e4eKbi2OCfXmZqTykMse7114lCVW0YJ/USqz/yPpSn3Z+qQiL/ZsQqY9eyhz/XxdfUcE
         XjmmHL+8KOQqUXgjZlCr1t60BmA7x+m3uhfBDkHZKzRf7LB14sk7TNnoDYHG+1XUmTsM
         F5L/uREje7v1lPWRBO382HDldzvJ8+1t/jytubX7pEZti6gsWQlP5zDV8e2VE44H+YyF
         zwdg==
X-Forwarded-Encrypted: i=1; AJvYcCUZt5SPntbU8BXs2AzZWtX3ml8W713pVyr3RCAWzOXrUsbFAVAOOYW/kkXKXspb0tTQbZWqNBFwe6k=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzjOrUt/93Z1wi+zwD/YFt6PgJ9nVis6PTvqiXbqjCxINBW8qNT
	wpufEx74aoUKDXqPXAJAosM7gwa6WZSJrSJwlGu4oXZHx4vi0+XF9VGhDUrO8j/XtcFqo7JMWep
	wDP5kpg==
X-Gm-Gg: ASbGnctUdlAZT9zO0zPQ+ZhrGyrqE15SvvkN5kDAMTmaHMm6fn8AcjhbbS/a6YraNA+
	RX2o6BW0VvTRW5t0H1WbQDY6+uyO/CWfXglnGseYH6+VaCrRkZvOoMtqb61ZmFvfwHEDW9vzjAX
	jDCfqXJ3dGYrQv4xMkX9+T6UYlwG0B0WwpPdSlsbt5RP/NX+8lN8H+xNZQPcZq9pMSU9vCZ/ABW
	7A9djN3qG7Z6RcYa3Z2qaLAfyMqgfe1n7WLt3kb+5Owpzv28s7UQW4yHw9ZTbEYRK6FJGsfQrxo
	4cj7gMy6h+eCfWmD1oUZ42+X5zF4EU8HAJQe3fpa+t/cM/h5Kn49Msj7HM+HiIdJDmM8vpLEKMh
	OAdwU43BkUiC0RCd3701OdIyzbA==
X-Google-Smtp-Source: AGHT+IG1AFWhCvX7y/z71M+0FrHvIB3trWiHO9KTa+nrHaTXAz+JungcnZN5t8MQCSY7H1J7SGD3sg==
X-Received: by 2002:a17:907:d91:b0:acb:b267:436b with SMTP id a640c23a62f3a-acee21ec1ccmr18411566b.25.1745964289537;
        Tue, 29 Apr 2025 15:04:49 -0700 (PDT)
X-Forwarded-Encrypted: i=1; AJvYcCWiIw8JBlUNRaUSIR3fTxCFW0K13yqgyIBEmjwck/CUAbYk8eWiUmfs8D8gNIFNDI79ZPtdrjnDVAM=@lists.xenproject.org
X-Received: by 2002:a17:906:4fc3:b0:ac2:a4ec:46c2 with SMTP id
 a640c23a62f3a-acee260f345mr11952766b.49.1745964287066; Tue, 29 Apr 2025
 15:04:47 -0700 (PDT)
MIME-Version: 1.0
References: <20250425141740.734030-1-arnd@kernel.org> <CAHk-=wgfk69H-T-vMWR33xUpVsWJLrF34d0OwUXa2sHhtpSwZg@mail.gmail.com>
 <e54f1943-e0ff-4f59-b24f-9b5a7a38becf@citrix.com> <CAHk-=wj0S2vWui0Y+1hpYMEhCiXKexbQ01h+Ckvww8hB29az_A@mail.gmail.com>
 <aA8nF0moBYOIgC5J@gmail.com> <aA8oqKUaFU-0wb-D@gmail.com> <CAHk-=wgJfWfWa2NTiTmev+Xr=e8Uo=aFkrXujLAQBVAVN-VigQ@mail.gmail.com>
 <B364FF6D-DFCC-42A7-ACA1-6A74E27EE57E@zytor.com> <67be5eee-b67b-409a-8309-829f891b9944@citrix.com>
 <916BD58C-E6A7-495E-9A60-722E130AC7A7@zytor.com> <e5e97ff8-9670-40d1-a0fa-69504d34c4c4@citrix.com>
 <956DB0ED-F3DB-456D-8D06-6F40DBDB815A@zytor.com> <06d04c13-76e8-45fb-a563-e365e1f19362@citrix.com>
 <CAHk-=wig1E4B-e1_6=it1LfVQ64DJsVgO6f6Ytnbzm2qChbAdw@mail.gmail.com>
 <81ed8b53-1a40-4777-ab87-4f4abe032dbc@citrix.com> <CAHk-=wiAPQFf-RUr=8ra1sYdfGPGLb4QbV8THE9zY3n820L94g@mail.gmail.com>
 <72078B8D-F03E-4783-8AC2-A36464A4B6A1@zytor.com> <CAHk-=wi=nuDW6yCXSA-dEztZhXNuzLOaH--s_V7GOAE7n6RsRw@mail.gmail.com>
 <565ac06a-005f-4b77-930e-d63285c025b9@citrix.com>
In-Reply-To: <565ac06a-005f-4b77-930e-d63285c025b9@citrix.com>
From: Linus Torvalds <torvalds@linux-foundation.org>
Date: Tue, 29 Apr 2025 15:04:30 -0700
X-Gmail-Original-Message-ID: <CAHk-=wiMN7eMYE=SiA07f2aFFeuEV0YJ-ewoW4rJ3yQfbviuJA@mail.gmail.com>
X-Gm-Features: ATxdqUEynECRHmJIlVNEBwYKhXX-8mTK6BavCcTzrr-kqqOzz7SzQVGFOa2_KmI
Message-ID: <CAHk-=wiMN7eMYE=SiA07f2aFFeuEV0YJ-ewoW4rJ3yQfbviuJA@mail.gmail.com>
Subject: Re: [PATCH] bitops/32: Convert variable_ffs() and fls() zero-case
 handling to C
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@kernel.org>, Arnd Bergmann <arnd@arndb.de>, 
	Arnd Bergmann <arnd@kernel.org>, Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>, 
	Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, 
	Juergen Gross <jgross@suse.com>, Boris Ostrovsky <boris.ostrovsky@oracle.com>, 
	Alexander Usyskin <alexander.usyskin@intel.com>, 
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>, =?UTF-8?Q?Mateusz_Jo=C5=84czyk?= <mat.jonczyk@o2.pl>, 
	Mike Rapoport <rppt@kernel.org>, Ard Biesheuvel <ardb@kernel.org>, Peter Zijlstra <peterz@infradead.org>, 
	linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"

On Tue, 29 Apr 2025 at 14:59, Andrew Cooper <andrew.cooper3@citrix.com> wrote:
>
> do_variable_ffs() doesn't quite work.
>
> REP BSF is LZCNT, and unconditionally writes it's output operand, and
> defeats the attempt to preload with -1.
>
> Drop the REP prefix, and it should work as intended.

Bah. That's what I get for just doing it blindly without actually
looking at the kernel source. I just copied the __ffs() thing - and
there the 'rep' is not for the zero case - which we don't care about -
but because lzcnt performs better on newer CPUs.

So you're obviously right.

            Linus


From xen-devel-bounces@lists.xenproject.org Tue Apr 29 22:11:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 22:11:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.973152.1361349 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9tAh-00033D-HO; Tue, 29 Apr 2025 22:11:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 973152.1361349; Tue, 29 Apr 2025 22: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 1u9tAh-000336-Dl; Tue, 29 Apr 2025 22:11:23 +0000
Received: by outflank-mailman (input) for mailman id 973152;
 Tue, 29 Apr 2025 22:11: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=k9ft=XP=zytor.com=hpa@srs-se1.protection.inumbo.net>)
 id 1u9tAf-000330-HG
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 22:11:21 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d7ec6c96-2546-11f0-9ffb-bf95429c2676;
 Wed, 30 Apr 2025 00:11:07 +0200 (CEST)
Received: from [127.0.0.1] ([76.133.66.138]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53TMAU8h607259
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NO);
 Tue, 29 Apr 2025 15:10:31 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d7ec6c96-2546-11f0-9ffb-bf95429c2676
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53TMAU8h607259
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1745964632;
	bh=79WW/6GCYUlxzkcwU8Me7t87railGlC3HuM0E/D7/IM=;
	h=Date:From:To:CC:Subject:In-Reply-To:References:From;
	b=Xjw5H3EmU1OOsdeN6B7NCthuT7/JRKqee6lbs8tDXyZO9l1JGIjb2HPeYmZP9ormv
	 mll2/szrCJYckCbt9XRseZYa4/tRSJJLNfKDlY7G248v0b6xAeRgcbWu7x1u1qAteG
	 bxEGtWLwMllizT6/3fDQYYIZiPEm452XikBN7hJMlMJYeOcecQaTlPZ2VeypVhxIac
	 WUkrsKg9fV/v2LN+znAZmv4KAid1hh8rTgEV5ndZRjFduvDIghwiij3Ol+QFIA8Kv0
	 KrYnaw9cAROWzzu1/J7HOn+wIDic3+LnQSPTjjWNp2ynXfiTMJ1/29ADy0dVKp/Til
	 Yvf0M+in91uVA==
Date: Tue, 29 Apr 2025 15:10:29 -0700
From: "H. Peter Anvin" <hpa@zytor.com>
To: Linus Torvalds <torvalds@linux-foundation.org>,
        Andrew Cooper <andrew.cooper3@citrix.com>
CC: Ingo Molnar <mingo@kernel.org>, Arnd Bergmann <arnd@arndb.de>,
        Arnd Bergmann <arnd@kernel.org>, Thomas Gleixner <tglx@linutronix.de>,
        Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
        Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org,
        Juergen Gross <jgross@suse.com>,
        Boris Ostrovsky <boris.ostrovsky@oracle.com>,
        Alexander Usyskin <alexander.usyskin@intel.com>,
        Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
        =?UTF-8?Q?Mateusz_Jo=C5=84czyk?= <mat.jonczyk@o2.pl>,
        Mike Rapoport <rppt@kernel.org>, Ard Biesheuvel <ardb@kernel.org>,
        Peter Zijlstra <peterz@infradead.org>, linux-kernel@vger.kernel.org,
        xen-devel@lists.xenproject.org
Subject: =?US-ASCII?Q?Re=3A_=5BPATCH=5D_bitops/32=3A_Convert_variable?=
 =?US-ASCII?Q?=5Fffs=28=29_and_fls=28=29_zero-case_handling_to_C?=
User-Agent: K-9 Mail for Android
In-Reply-To: <CAHk-=wiMN7eMYE=SiA07f2aFFeuEV0YJ-ewoW4rJ3yQfbviuJA@mail.gmail.com>
References: <20250425141740.734030-1-arnd@kernel.org> <CAHk-=wj0S2vWui0Y+1hpYMEhCiXKexbQ01h+Ckvww8hB29az_A@mail.gmail.com> <aA8nF0moBYOIgC5J@gmail.com> <aA8oqKUaFU-0wb-D@gmail.com> <CAHk-=wgJfWfWa2NTiTmev+Xr=e8Uo=aFkrXujLAQBVAVN-VigQ@mail.gmail.com> <B364FF6D-DFCC-42A7-ACA1-6A74E27EE57E@zytor.com> <67be5eee-b67b-409a-8309-829f891b9944@citrix.com> <916BD58C-E6A7-495E-9A60-722E130AC7A7@zytor.com> <e5e97ff8-9670-40d1-a0fa-69504d34c4c4@citrix.com> <956DB0ED-F3DB-456D-8D06-6F40DBDB815A@zytor.com> <06d04c13-76e8-45fb-a563-e365e1f19362@citrix.com> <CAHk-=wig1E4B-e1_6=it1LfVQ64DJsVgO6f6Ytnbzm2qChbAdw@mail.gmail.com> <81ed8b53-1a40-4777-ab87-4f4abe032dbc@citrix.com> <CAHk-=wiAPQFf-RUr=8ra1sYdfGPGLb4QbV8THE9zY3n820L94g@mail.gmail.com> <72078B8D-F03E-4783-8AC2-A36464A4B6A1@zytor.com> <CAHk-=wi=nuDW6yCXSA-dEztZhXNuzLOaH--s_V7GOAE7n6RsRw@mail.gmail.com> <565ac06a-005f-4b77-930e-d63285c025b9@citrix.com> <CAHk-=wiMN7eMYE=SiA07f2aFFeuEV0YJ-ewoW4rJ3yQfbviuJA@mail.gmail.com>
Message-ID: <D843E4F2-0983-4D67-B346-A77134608196@zytor.com>
MIME-Version: 1.0
Content-Type: text/plain;
 charset=utf-8
Content-Transfer-Encoding: quoted-printable

On April 29, 2025 3:04:30 PM PDT, Linus Torvalds <torvalds@linux-foundation=
=2Eorg> wrote:
>On Tue, 29 Apr 2025 at 14:59, Andrew Cooper <andrew=2Ecooper3@citrix=2Eco=
m> wrote:
>>
>> do_variable_ffs() doesn't quite work=2E
>>
>> REP BSF is LZCNT, and unconditionally writes it's output operand, and
>> defeats the attempt to preload with -1=2E
>>
>> Drop the REP prefix, and it should work as intended=2E
>
>Bah=2E That's what I get for just doing it blindly without actually
>looking at the kernel source=2E I just copied the __ffs() thing - and
>there the 'rep' is not for the zero case - which we don't care about -
>but because lzcnt performs better on newer CPUs=2E
>
>So you're obviously right=2E
>
>            Linus

Yeah, the encoding of lzcnt was a real mistake, because the outputs are di=
fferent (so you still need instruction-specific postprocessing=2E)


From xen-devel-bounces@lists.xenproject.org Tue Apr 29 22:22:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 22:22:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.973171.1361361 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9tLL-0005Li-Iq; Tue, 29 Apr 2025 22:22:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 973171.1361361; Tue, 29 Apr 2025 22:22: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 1u9tLL-0005Lb-Es; Tue, 29 Apr 2025 22:22:23 +0000
Received: by outflank-mailman (input) for mailman id 973171;
 Tue, 29 Apr 2025 22:22: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=yPhw=XP=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1u9tLK-0005LV-2t
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 22:22:22 +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 6a513a38-2548-11f0-9eb4-5ba50f476ded;
 Wed, 30 Apr 2025 00:22:20 +0200 (CEST)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-43cfebc343dso45393095e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 29 Apr 2025 15:22:20 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-441b2ba48b0sm1715855e9.10.2025.04.29.15.22.18
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 29 Apr 2025 15:22: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: 6a513a38-2548-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745965339; x=1746570139; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=fTKkUgDxt9wIwMolenpn+6qEdHQEp8p09AKod6Ezkn0=;
        b=tO312eXdEp8asv4N/KrhJjSRXqfNUw3jRSLKXZE1tPXSPsEpMH8LU8ph9bSaFpa1A1
         3etiSA58grfhWzmXQE/9jQcgHporfBAZwtqXzzcxImNtnrXwp8Pi0YKWm9P+Gp/7c/rB
         5J3LIJdCmFKSYyOTck2Jvz2QtoIQPZx/P1N5w=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745965339; x=1746570139;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=fTKkUgDxt9wIwMolenpn+6qEdHQEp8p09AKod6Ezkn0=;
        b=nDPCQEvlwcCHyitdHgsxxRpJmJ9aD1RMEHh8clR/gOT68xKOHyI1iRAhNkVZjDg/j+
         hb7DGWe1trGw/Ej9wr2Eow4pzWuVq+sSgtSBZy2hfPr3p2NGJk5mAEnyTTkyvN0OPPqF
         rf0dvD4zx4fB2gLBztcy49AjfxonGFn0c8kOCa4QNyQehNCD+ixZ7+JBJANldb10Jrbi
         mRrmlB/RBVjkOE1mxMdAgijXKFDcNoB5XYGb8Jnt3ohuQmhu4JwSj+7I4IwuW7ujg3K2
         dgQ4AmbYY8s8q5OId2UtQZ65jNAMGEiS5MR9kZt2DcQWJdO4Pui0ehPnGI/TWX9nDdTX
         dXAQ==
X-Forwarded-Encrypted: i=1; AJvYcCXDlx3Kw6P+mh/AX2kFSKp2xELwQeUf/jpKnk/xLk2fAdvJuCO7QotZ9mdB8GaBxM737+8FtDz4pQc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzKFXk4eq+y4n3YlNZMVZqd4jrjBc0gvBeOLfgKS4ZQDFvJexJ9
	kSWd6ak2gmnQnSHRZ8nYNcG0YkmyAmncUTN2tNz0yuSpZ24Z2OQwQVDXKZI8UkQ=
X-Gm-Gg: ASbGncvTrb+D7n/+ffkj2yyuCnxYEFFDirNcSnbzp/i1nhcwX13iKNCZiRlTMlXyeVI
	199v3276si8hRLUgJMFJecDIh4hIlg68aPGR3qawbvkDgNtBjfH+pplnmBkv7xVdEEqOewyjrVP
	Vi//+r6MH9uQzw6a8kVylwv8iJxqa2FUoxdTeLycHPF6MWPZhVWrsXqcffN2ILaOJn7hKfiqNY2
	hkm5eoiR6pVN7LqGjj0uM2ecnTKVJIJdn01Qpc40Y1hgoKp5oPJJCdN0FaOEPpGlpZQ+u2iibLC
	ehQPp3uSU5QsR9XPc3nlEeT9uMYviBg/ZO7GKdHgM8sPG4MJroQq+jLLxQoSDegEgZS7K1VWDeZ
	kYlJG5Q==
X-Google-Smtp-Source: AGHT+IFsVJ0IWld4MsfXHqlyT8E1bTztNwNDAoknj/kqVrMo6crnC+YordlPvb6QVow4T3K8s9IKTw==
X-Received: by 2002:a05:600c:4e09:b0:43d:2313:7b49 with SMTP id 5b1f17b1804b1-441b1f35b4amr7287325e9.12.1745965339628;
        Tue, 29 Apr 2025 15:22:19 -0700 (PDT)
Message-ID: <7e0c2b99-00c1-4e64-ac68-50ba7500fd20@citrix.com>
Date: Tue, 29 Apr 2025 23:22:18 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] bitops/32: Convert variable_ffs() and fls() zero-case
 handling to C
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: "H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@kernel.org>,
 Arnd Bergmann <arnd@arndb.de>, Arnd Bergmann <arnd@kernel.org>,
 Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 x86@kernel.org, Juergen Gross <jgross@suse.com>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 Alexander Usyskin <alexander.usyskin@intel.com>,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
 =?UTF-8?Q?Mateusz_Jo=C5=84czyk?= <mat.jonczyk@o2.pl>,
 Mike Rapoport <rppt@kernel.org>, Ard Biesheuvel <ardb@kernel.org>,
 Peter Zijlstra <peterz@infradead.org>, linux-kernel@vger.kernel.org,
 xen-devel@lists.xenproject.org
References: <20250425141740.734030-1-arnd@kernel.org>
 <CAHk-=wj0S2vWui0Y+1hpYMEhCiXKexbQ01h+Ckvww8hB29az_A@mail.gmail.com>
 <aA8nF0moBYOIgC5J@gmail.com> <aA8oqKUaFU-0wb-D@gmail.com>
 <CAHk-=wgJfWfWa2NTiTmev+Xr=e8Uo=aFkrXujLAQBVAVN-VigQ@mail.gmail.com>
 <B364FF6D-DFCC-42A7-ACA1-6A74E27EE57E@zytor.com>
 <67be5eee-b67b-409a-8309-829f891b9944@citrix.com>
 <916BD58C-E6A7-495E-9A60-722E130AC7A7@zytor.com>
 <e5e97ff8-9670-40d1-a0fa-69504d34c4c4@citrix.com>
 <956DB0ED-F3DB-456D-8D06-6F40DBDB815A@zytor.com>
 <06d04c13-76e8-45fb-a563-e365e1f19362@citrix.com>
 <CAHk-=wig1E4B-e1_6=it1LfVQ64DJsVgO6f6Ytnbzm2qChbAdw@mail.gmail.com>
 <81ed8b53-1a40-4777-ab87-4f4abe032dbc@citrix.com>
 <CAHk-=wiAPQFf-RUr=8ra1sYdfGPGLb4QbV8THE9zY3n820L94g@mail.gmail.com>
 <72078B8D-F03E-4783-8AC2-A36464A4B6A1@zytor.com>
 <CAHk-=wi=nuDW6yCXSA-dEztZhXNuzLOaH--s_V7GOAE7n6RsRw@mail.gmail.com>
 <565ac06a-005f-4b77-930e-d63285c025b9@citrix.com>
 <CAHk-=wiMN7eMYE=SiA07f2aFFeuEV0YJ-ewoW4rJ3yQfbviuJA@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: <CAHk-=wiMN7eMYE=SiA07f2aFFeuEV0YJ-ewoW4rJ3yQfbviuJA@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 29/04/2025 11:04 pm, Linus Torvalds wrote:
> On Tue, 29 Apr 2025 at 14:59, Andrew Cooper <andrew.cooper3@citrix.com> wrote:
>> do_variable_ffs() doesn't quite work.
>>
>> REP BSF is LZCNT, and unconditionally writes it's output operand, and
>> defeats the attempt to preload with -1.
>>
>> Drop the REP prefix, and it should work as intended.
> Bah. That's what I get for just doing it blindly without actually
> looking at the kernel source. I just copied the __ffs() thing - and
> there the 'rep' is not for the zero case - which we don't care about -
> but because lzcnt performs better on newer CPUs.

Oh, I didn't realise there was also a perf difference too, but Agner Fog
agrees.

Apparently in Zen4, BSF and friends have become a single uop with a
sensible latency.  Previously they were 6-8 uops with a latency to match.

Intel appear to have have had them as a single uop since SandyBridge, so
quite a long time now.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Apr 29 22:35:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 22:35:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.973183.1361370 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9tXV-0007Kw-Kk; Tue, 29 Apr 2025 22:34:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 973183.1361370; Tue, 29 Apr 2025 22:34: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 1u9tXV-0007Kp-H7; Tue, 29 Apr 2025 22:34:57 +0000
Received: by outflank-mailman (input) for mailman id 973183;
 Tue, 29 Apr 2025 22: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=rc0E=XP=linuxfoundation.org=torvalds@srs-se1.protection.inumbo.net>)
 id 1u9tXU-0007Kj-H2
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 22:34:56 +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 28e6d1c0-254a-11f0-9ffb-bf95429c2676;
 Wed, 30 Apr 2025 00:34:49 +0200 (CEST)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-acb615228a4so66051266b.0
 for <xen-devel@lists.xenproject.org>; Tue, 29 Apr 2025 15:34:49 -0700 (PDT)
Received: from mail-ed1-f44.google.com (mail-ed1-f44.google.com.
 [209.85.208.44]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-ace6ed701f9sm842797766b.139.2025.04.29.15.34.47
 for <xen-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 29 Apr 2025 15:34:47 -0700 (PDT)
Received: by mail-ed1-f44.google.com with SMTP id
 4fb4d7f45d1cf-5efe8d9eb1eso563897a12.0
 for <xen-devel@lists.xenproject.org>; Tue, 29 Apr 2025 15:34: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: 28e6d1c0-254a-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linux-foundation.org; s=google; t=1745966088; x=1746570888; darn=lists.xenproject.org;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:from:to:cc:subject:date:message-id:reply-to;
        bh=Oc5Kg3k3xlsA9pOUU6bgWUdMQMuuSGtxKsnW3LcmO1M=;
        b=fNo2daedeiRKbiYe2DMijIX18AufzYfv6BaVwOzu4EGSaM5XMJdVMIeKJ0/PYkT4LF
         gFlJIVYujWJMQslCTCpQyuMsWK9eFl/O2mN7IK3BhNIRLjrtyV73uiKKnf9br+Hivvrq
         xdLjo19SfpKH9Rzg+2zRb1iLWLjhbDcaG5Q5U=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745966088; x=1746570888;
        h=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=Oc5Kg3k3xlsA9pOUU6bgWUdMQMuuSGtxKsnW3LcmO1M=;
        b=I6covf4trEetRViqWjjSJXU3sOhXyncfbNhs7srAhKWvgWBezxyhkKWWXDOKCXGnHc
         4WGRbGroEh6XiyUgA0VYWOJ8X/8jiWZznZagQh/mNCqtGZX5zAZ+RkJUEcnM08kx0iUj
         ASfaHdgQu0ogO/cfcY1N+6bH2smXzE2LNfDkb94+WNwCyv0QeHWM7scfVAOjepp4c39L
         s6q3Qodc9B6toDRHkubih+4bieJIQ4FuyVA1vhpBnObsdO8SS/GHK2rvhubFpucXA7Fe
         wJu0EFJU5hyccAT+wOexCppMcAh+4ryhQ1R7c5dmeSl06T4nKnv0Z244AJhbtLsY5Ny6
         RO8w==
X-Forwarded-Encrypted: i=1; AJvYcCUWggGxkGyXusOO+LxogXHLdQZf98Mq+bSbkkY7h0Z+ZpMgZEe1C8hvJzzs7/T48LoLxLGPaD0CPcc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzhxorJw6dpaTGRzNa97oA2t9CckWixWjfr3TvWKqrY+YYGLchv
	HU5Cx1yomVxaZLUsn2lxv8koyPMP9rrPM0PcTlGj9TLKTX275VlMqSFevaq3MDO99ajUS2mC6iv
	t7AocJA==
X-Gm-Gg: ASbGncvuVwJID+Rgdc2wsz+Zy7HdsmzXsYiTosHqVMQ2bhvaFWnl3dj6N0cRfpndnvJ
	O+IgMflqQzeKlM6nBb2z8uMB20zLAcWgKUUyrS0vIp4KjEDlGKOZAziFgPzZ3ks2MS4tNLHHt7z
	RuGcYPciocQJmqrYqgGyFZn6buMta1jUkOIP/eHt0lXX2cH3PyJHjJF7Iayv5Q7fO45bC2n463i
	IDtezUfqdFDCX9p7HsMJljGLU2PpveYjrenIn/9p0wWBT2sNOcASHGyg7mS1GxOKkeOjKYvtl7r
	R6eWlYr2WHRl/mHDZP9v1TVQbb5fcWYDdEOyX4qJ8eagycyGIjkeHigItB0G7yP8vlExxNENPZp
	LZlvLoificjeUBWI=
X-Google-Smtp-Source: AGHT+IE38+YtziS7gWG67JrO4RNQVQ4vPMQuDq4SMEpt9UOkJsJh+r0sh3uIE+R8KyXhdqkQn+w7JQ==
X-Received: by 2002:a17:906:6a1e:b0:ace:8176:9870 with SMTP id a640c23a62f3a-acedf68d357mr47492266b.9.1745966088575;
        Tue, 29 Apr 2025 15:34:48 -0700 (PDT)
X-Forwarded-Encrypted: i=1; AJvYcCWgyHKdgCIn/1odd0Rw+KNhK9rfR0HwO6gVAZ7mAikTR9BNZRGJ9ooQPdp/csHC/55Ic91psb334C4=@lists.xenproject.org
X-Received: by 2002:a05:6402:3488:b0:5f6:4a5b:930d with SMTP id
 4fb4d7f45d1cf-5f89fe51d37mr514981a12.11.1745966086672; Tue, 29 Apr 2025
 15:34:46 -0700 (PDT)
MIME-Version: 1.0
References: <20250425141740.734030-1-arnd@kernel.org> <CAHk-=wj0S2vWui0Y+1hpYMEhCiXKexbQ01h+Ckvww8hB29az_A@mail.gmail.com>
 <aA8nF0moBYOIgC5J@gmail.com> <aA8oqKUaFU-0wb-D@gmail.com> <CAHk-=wgJfWfWa2NTiTmev+Xr=e8Uo=aFkrXujLAQBVAVN-VigQ@mail.gmail.com>
 <B364FF6D-DFCC-42A7-ACA1-6A74E27EE57E@zytor.com> <67be5eee-b67b-409a-8309-829f891b9944@citrix.com>
 <916BD58C-E6A7-495E-9A60-722E130AC7A7@zytor.com> <e5e97ff8-9670-40d1-a0fa-69504d34c4c4@citrix.com>
 <956DB0ED-F3DB-456D-8D06-6F40DBDB815A@zytor.com> <06d04c13-76e8-45fb-a563-e365e1f19362@citrix.com>
 <CAHk-=wig1E4B-e1_6=it1LfVQ64DJsVgO6f6Ytnbzm2qChbAdw@mail.gmail.com>
 <81ed8b53-1a40-4777-ab87-4f4abe032dbc@citrix.com> <CAHk-=wiAPQFf-RUr=8ra1sYdfGPGLb4QbV8THE9zY3n820L94g@mail.gmail.com>
 <72078B8D-F03E-4783-8AC2-A36464A4B6A1@zytor.com> <CAHk-=wi=nuDW6yCXSA-dEztZhXNuzLOaH--s_V7GOAE7n6RsRw@mail.gmail.com>
 <565ac06a-005f-4b77-930e-d63285c025b9@citrix.com> <CAHk-=wiMN7eMYE=SiA07f2aFFeuEV0YJ-ewoW4rJ3yQfbviuJA@mail.gmail.com>
 <7e0c2b99-00c1-4e64-ac68-50ba7500fd20@citrix.com>
In-Reply-To: <7e0c2b99-00c1-4e64-ac68-50ba7500fd20@citrix.com>
From: Linus Torvalds <torvalds@linux-foundation.org>
Date: Tue, 29 Apr 2025 15:34:30 -0700
X-Gmail-Original-Message-ID: <CAHk-=wjpUbDYw5O+zXWMq8yq91zaZFLUgZJ0Y1PU1g-OCiftrQ@mail.gmail.com>
X-Gm-Features: ATxdqUG9ooiLW1FjokHyuPv-6NWWppXUVmXsmKprDfDV5sYeskxfWUGa3Yy8OuE
Message-ID: <CAHk-=wjpUbDYw5O+zXWMq8yq91zaZFLUgZJ0Y1PU1g-OCiftrQ@mail.gmail.com>
Subject: Re: [PATCH] bitops/32: Convert variable_ffs() and fls() zero-case
 handling to C
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@kernel.org>, Arnd Bergmann <arnd@arndb.de>, 
	Arnd Bergmann <arnd@kernel.org>, Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>, 
	Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, 
	Juergen Gross <jgross@suse.com>, Boris Ostrovsky <boris.ostrovsky@oracle.com>, 
	Alexander Usyskin <alexander.usyskin@intel.com>, 
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>, =?UTF-8?Q?Mateusz_Jo=C5=84czyk?= <mat.jonczyk@o2.pl>, 
	Mike Rapoport <rppt@kernel.org>, Ard Biesheuvel <ardb@kernel.org>, Peter Zijlstra <peterz@infradead.org>, 
	linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"

On Tue, 29 Apr 2025 at 15:22, Andrew Cooper <andrew.cooper3@citrix.com> wrote:
>
> Oh, I didn't realise there was also a perf difference too, but Agner Fog
> agrees.

The perf difference is exactly because of the issue where the non-rep
one acts as a cmov, and has basically two inputs (the bits to test in
the source, and the old value of the result register)

I guess it's not "fundamental", but lzcnt is basically a bit simpler
for hardware to implement, and the non-rep legacy bsf instruction
basically has a dependency on the previous value of the result
register.

So even when it's a single uop for both cases, that single uop can be
slower for the bsf because of the (typically false) dependency and
extra pressure on the rename registers.

       Linus


From xen-devel-bounces@lists.xenproject.org Tue Apr 29 22:54:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 22:54:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.973198.1361380 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9tqe-0002F2-60; Tue, 29 Apr 2025 22:54:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 973198.1361380; Tue, 29 Apr 2025 22:54: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 1u9tqe-0002Ev-2w; Tue, 29 Apr 2025 22:54:44 +0000
Received: by outflank-mailman (input) for mailman id 973198;
 Tue, 29 Apr 2025 22:54: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=ZtOk=XP=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u9tqc-0002EW-RY
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 22:54:42 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ec967e5e-254c-11f0-9ffb-bf95429c2676;
 Wed, 30 Apr 2025 00:54:37 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 5E56C6845A;
 Tue, 29 Apr 2025 22:54:09 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id DADFAC4CEE3;
 Tue, 29 Apr 2025 22:54:33 +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: ec967e5e-254c-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1745967275;
	bh=wxZWgGDB6M8IdPxS2NHBjXsDACkYjxaL/bwOLpyMmF0=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=mWlQAo0rYOUfkMejQYtIzH+hzJL9sXWZxYLWTW7c9my6FXVrcx5oZ3hltSjNIS6XS
	 PGfkzBmEkH8theY6Zsc1golnDvNGVwMZYBTxGsgHN6ynVRSWJM8aIAKP4Ldq4qw7aO
	 OGA0970fLrm5ZUhZYPv1VdpGgICotsWASsJGIu2NNLiox5BluUKPue7L/htYq2DAC1
	 tX3a55Nl8bQ1cCJq/rGN8vlcHW/f7hkId56RsSmSYqRjy3wCmSIEHHlpM2k/CZdlOM
	 bkqRVVbFltNJ9jRkCHIyUzCvBIen4i9HjHaKaN2MJfnUO5NzfzOf5Lu4KiaBHeH/PN
	 2+s8V9rs76gGQ==
Date: Tue, 29 Apr 2025 15:54:32 -0700 (PDT)
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>, victorm.lira@amd.com, 
    Nicola Vetrini <nicola.vetrini@bugseng.com>, 
    Federico Serafini <federico.serafini@bugseng.com>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    Anthony PERARD <anthony.perard@vates.tech>, 
    Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Bertrand Marquis <bertrand.marquis@arm.com>, 
    xen-devel@lists.xenproject.org
Subject: Re: [PATCH v1 1/3] x86: x86_emulate: address violations of MISRA C
 Rule 19.1
In-Reply-To: <350d447e-7316-4d54-8468-68f78675cc8d@suse.com>
Message-ID: <alpine.DEB.2.22.394.2504291510120.3879245@ubuntu-linux-20-04-desktop>
References: <c694069696dd428bc1719e36c378a573b03f74b9.1745624090.git.victorm.lira@amd.com> <914e3157-736a-4890-9c91-e93fcc260bb0@suse.com> <alpine.DEB.2.22.394.2504281625240.785180@ubuntu-linux-20-04-desktop> <350d447e-7316-4d54-8468-68f78675cc8d@suse.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Tue, 29 Apr 2025, Jan Beulich wrote:
> On 29.04.2025 03:27, Stefano Stabellini wrote:
> > On Mon, 28 Apr 2025, Jan Beulich wrote:
> >> On 26.04.2025 01:42, victorm.lira@amd.com wrote:
> >>> From: Nicola Vetrini <nicola.vetrini@bugseng.com>
> >>>
> >>> Rule 19.1 states: "An object shall not be assigned or copied
> >>> to an overlapping object". Since the "call" and "compat_call" are
> >>
> >> Was this taken from patch 2 without editing?
> >>
> >>> --- a/xen/arch/x86/x86_emulate/x86_emulate.c
> >>> +++ b/xen/arch/x86/x86_emulate/x86_emulate.c
> >>> @@ -526,9 +526,19 @@ static inline void put_loop_count(
> >>>           */                                                             \
> >>>          if ( !amd_like(ctxt) && mode_64bit() && ad_bytes == 4 )         \
> >>>          {                                                               \
> >>> +            uint64_t tmp;                                               \
> >>> +                                                                        \
> >>>              _regs.r(cx) = 0;                                            \
> >>> -            if ( extend_si ) _regs.r(si) = _regs.esi;                   \
> >>> -            if ( extend_di ) _regs.r(di) = _regs.edi;                   \
> >>> +            if ( extend_si )                                            \
> >>> +            {                                                           \
> >>> +                tmp = _regs.esi;                                        \
> >>> +                _regs.r(si) = tmp;                                      \
> >>> +            }                                                           \
> >>> +            if ( extend_di )                                            \
> >>> +            {                                                           \
> >>> +                tmp = _regs.edi;                                        \
> >>> +                _regs.r(di) = tmp;                                      \
> >>> +            }                                                           \
> >>
> >> See commit 7225f13aef03 for how we chose to address similar issues elsewhere
> >> in the emulator. I think we want to be consistent there. This will then also
> >> eliminate ...
> >>
> >>> @@ -2029,7 +2039,12 @@ x86_emulate(
> >>>          switch ( op_bytes )
> >>>          {
> >>>          case 2: _regs.ax = (int8_t)_regs.ax; break; /* cbw */
> >>> -        case 4: _regs.r(ax) = (uint32_t)(int16_t)_regs.ax; break; /* cwde */
> >>> +        case 4:
> >>> +            {
> >>> +                uint32_t tmp = (uint32_t)(int16_t)_regs.ax;
> >>> +                _regs.r(ax) = tmp;
> >>> +                break; /* cwde */
> >>> +            }
> >>
> >> ... the odd brace placement here, as well as the inconsistency in the types
> >> you used for the temporary variables (both really could have been unsigned
> >> int; no need for a fixed-width type).
> > 
> > Is this what you have in mind?
> 
> No, and that's also not what the referenced commit did in a similar situation.
> 
> > --- a/xen/arch/x86/x86_emulate/x86_emulate.c
> > +++ b/xen/arch/x86/x86_emulate/x86_emulate.c
> > @@ -527,8 +527,8 @@ static inline void put_loop_count(
> >          if ( !amd_like(ctxt) && mode_64bit() && ad_bytes == 4 )         \
> >          {                                                               \
> >              _regs.r(cx) = 0;                                            \
> > -            if ( extend_si ) _regs.r(si) = _regs.esi;                   \
> > -            if ( extend_di ) _regs.r(di) = _regs.edi;                   \
> > +            if ( extend_si ) _regs.r(si) = (uint64_t)_regs.esi;         \
> > +            if ( extend_di ) _regs.r(di) = (uint64_t)_regs.edi;         \
> 
>             if ( extend_si ) _regs.r(si) = (uint32_t)_regs.r(si);       \
>             if ( extend_di ) _regs.r(di) = (uint32_t)_regs.r(di);       \
> 
> After all what the rule requires is that we use _the same_ field on both sides.

I see, thanks Jan. Yes I did try this version and worked as expected.


diff --git a/xen/arch/x86/x86_emulate/x86_emulate.c b/xen/arch/x86/x86_emulate/x86_emulate.c
index 8e14ebb35b..bee0332bdf 100644
--- a/xen/arch/x86/x86_emulate/x86_emulate.c
+++ b/xen/arch/x86/x86_emulate/x86_emulate.c
@@ -527,8 +527,8 @@ static inline void put_loop_count(
         if ( !amd_like(ctxt) && mode_64bit() && ad_bytes == 4 )         \
         {                                                               \
             _regs.r(cx) = 0;                                            \
-            if ( extend_si ) _regs.r(si) = _regs.esi;                   \
-            if ( extend_di ) _regs.r(di) = _regs.edi;                   \
+            if ( extend_si ) _regs.r(si) = (uint32_t)_regs.r(si);        \
+            if ( extend_di ) _regs.r(di) = (uint32_t)_regs.r(di);        \
         }                                                               \
         goto complete_insn;                                             \
     }                                                                   \
@@ -2029,7 +2029,7 @@ x86_emulate(
         switch ( op_bytes )
         {
         case 2: _regs.ax = (int8_t)_regs.ax; break; /* cbw */
-        case 4: _regs.r(ax) = (uint32_t)(int16_t)_regs.ax; break; /* cwde */
+        case 4: _regs.r(ax) = (int16_t)_regs.r(ax); break; /* cwde */
         case 8: _regs.r(ax) = (int32_t)_regs.r(ax); break; /* cdqe */
         }
         break;


From xen-devel-bounces@lists.xenproject.org Tue Apr 29 23:06:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 23:06:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.973211.1361391 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9u1Y-00047x-5T; Tue, 29 Apr 2025 23:06:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 973211.1361391; Tue, 29 Apr 2025 23: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 1u9u1Y-00047q-1f; Tue, 29 Apr 2025 23:06:00 +0000
Received: by outflank-mailman (input) for mailman id 973211;
 Tue, 29 Apr 2025 23: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=ZtOk=XP=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u9u1W-00047k-C1
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 23:05:58 +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 81060cc2-254e-11f0-9ffb-bf95429c2676;
 Wed, 30 Apr 2025 01:05:56 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 02E3D5C3E76;
 Tue, 29 Apr 2025 23:03:37 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5BBE3C4CEE3;
 Tue, 29 Apr 2025 23:05:51 +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: 81060cc2-254e-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1745967953;
	bh=VqWYX0Ufeo293T3v2UtbGlHxnyXxQxwmWNnnbxBhxSw=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=oxle5jdsm5FSB8XJ+wFS/3lRrRPGXFNZWcHQMepnriGE4LvaoceKBnIVmyF7u+Nt8
	 KKxwyHKg7Tp0cXfiBRebh1ZHlNNfwZAXUHvCfFzRmuzGOwUcXuUPH9cDqWdF6j6Sur
	 tEL/cqEpLYx2QUm8fA6ipVZW+5aXqiLQgEDzDqKMugtvZomNdmyBxZwy1NL9BvT0Ef
	 2xsUQcfdOdyLwRPNKoAEQ857nqd0K5lRZ32o/oAQ0PUq49a2kMN6qckG9fmVoJmERr
	 ULr1uIIluf3rTDE4up6VRr8vG4aSkdvVK/dgiWwrMW0smFmarhjNVT5L69HPApGBOG
	 Gw4fC+XD0Ghig==
Date: Tue, 29 Apr 2025 16:05:49 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Mykyta Poturai <Mykyta_Poturai@epam.com>
cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    Oleksandr Tyshchenko <Oleksandr_Tyshchenko@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>, 
    Jan Beulich <jbeulich@suse.com>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Stewart Hildebrand <stewart.hildebrand@amd.com>
Subject: Re: [PATCH v10 1/7] iommu/arm: Introduce iommu_add_dt_pci_sideband_ids
 API
In-Reply-To: <8110a8fd8648b1e40a47c51d68bf5cab5a46468d.1745918678.git.mykyta_poturai@epam.com>
Message-ID: <alpine.DEB.2.22.394.2504291605380.3879245@ubuntu-linux-20-04-desktop>
References: <cover.1745918678.git.mykyta_poturai@epam.com> <8110a8fd8648b1e40a47c51d68bf5cab5a46468d.1745918678.git.mykyta_poturai@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, 29 Apr 2025, Mykyta Poturai wrote:
> From: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
> 
> The main purpose of this patch is to add a way to register PCI device
> (which is behind the IOMMU) using the generic PCI-IOMMU DT bindings [1]
> before assigning that device to a domain.
> 
> This behaves similarly to the existing iommu_add_dt_device API, except it
> handles PCI devices, and it is to be invoked from the add_device hook in the
> SMMU driver.
> 
> The function dt_map_id to translate an ID through a downstream mapping
> (which is also suitable for mapping Requester ID) was borrowed from Linux
> (v5.10-rc6) and updated according to the Xen code base.
> 
> [1] https://www.kernel.org/doc/Documentation/devicetree/bindings/pci/pci-iommu.txt
> 
> Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
> Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
> Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>

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



From xen-devel-bounces@lists.xenproject.org Tue Apr 29 23:12:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 23:12:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.973227.1361399 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9u8B-00063k-T9; Tue, 29 Apr 2025 23:12:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 973227.1361399; Tue, 29 Apr 2025 23:12: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 1u9u8B-00063d-QC; Tue, 29 Apr 2025 23:12:51 +0000
Received: by outflank-mailman (input) for mailman id 973227;
 Tue, 29 Apr 2025 23: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=ZtOk=XP=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u9u8A-00063S-B0
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 23:12:50 +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 76c799c1-254f-11f0-9ffb-bf95429c2676;
 Wed, 30 Apr 2025 01:12:48 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by nyc.source.kernel.org (Postfix) with ESMTP id 184FCA4C04A;
 Tue, 29 Apr 2025 23:07:19 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id E4AF1C4CEE3;
 Tue, 29 Apr 2025 23:12: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: 76c799c1-254f-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1745968366;
	bh=lB5cTif5TQdkbc64cH8l2YlDgJrfXWZTan94o3RAqQw=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=EjITA2/t2QeeDRr77wAneTdent+I3DYHvxln52uajvi+QY/HhS6zrs2KAAmuD2mJr
	 6ax+arbB/kXFACpTiD8b5bzDg28+fwYaNyFmGR+pPKMK3z3JWMCubmhMgDmTzo0y9a
	 bKXStF62c0IPkk2Sud1f975CrXhvA9PkbpZuLL0CyARuaP7pZIA3RUrnNUD+2q2f4o
	 P0/0yiD/QShhj/K61CLjBK7hPrNn/ASSvoo/vT65T5a+2Ti6hHOWIbTeVvooI5cill
	 82P0JovzynkN1E43sv/4ghifQfHEpi5ZnjOH+QdTrlXkW0u3rDlNfW8ZaM/MzSIRGo
	 xA6xFbWniIV/Q==
Date: Tue, 29 Apr 2025 16:12:43 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Mykyta Poturai <Mykyta_Poturai@epam.com>
cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>, 
    Julien Grall <julien@xen.org>, Rahul Singh <rahul.singh@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>, 
    Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>, 
    Stewart Hildebrand <stewart.hildebrand@amd.com>
Subject: Re: [PATCH v10 3/7] xen/arm: smmuv2: Add PCI devices support for
 SMMUv2
In-Reply-To: <4874d41630f6bb3e7b688bfa332004558bb543b9.1745918678.git.mykyta_poturai@epam.com>
Message-ID: <alpine.DEB.2.22.394.2504291611440.3879245@ubuntu-linux-20-04-desktop>
References: <cover.1745918678.git.mykyta_poturai@epam.com> <4874d41630f6bb3e7b688bfa332004558bb543b9.1745918678.git.mykyta_poturai@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, 29 Apr 2025, Mykyta Poturai wrote:
> From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
> 
> Implement support for PCI devices in the SMMU driver. Make arm_smmu_master
> structure to hold a pointer to the device to allow it to hold PCI devices.
> Trigger iommu-map parsing when new PCI device is added. Add checks to
> assign/deassign functions to ensure PCI devices are handled correctly.
> Implement basic quarantining.
> 
> All pci devices are automatically assigned to hardware domain if it exists
> to ensure it can probe them.
> 
> TODO:
> Implement scratch page quarantining support.
> 
> Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
> Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
> Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
> Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
> ---
> v9->v10:
> * remove unused code
> * return on error in arm_smmu_dt_add_device_generic
> 
> v8->v9:
> * no change
> 
> v7->v8:
> * no change
> 
> v6->v7:
> * use d->pci_lock in arm_smmu_assign_dev()
> * remove !is_hardware_domain and pdev->domain == d checks in assign to
>   support future dom0less use case when dom0 is using vPCI
> * remove stale todo in dev_get_dev_node
> * don't print ""
> * remove redundant dt_device_is_protected check
> * remove assign/deassing prints
> * change assign logic to remove reassign reimplementation
> * check if pdev->domain exists before assigning to it
> * explain pdev->devfn check
> * make reassign check stricter and update comment
> 
> v5->v6:
> * check for hardware_domain == NULL (dom0less test case)
> * locking: assign pdev->domain before list_add()
> 
> v4->v5:
> * assign device to pdev->domain (usually dom0) by default in add_device() hook
> * deassign from hwdom
> * rebase on top of ("dynamic node programming using overlay dtbo") series
> * remove TODO in comment about device prints
> * add TODO regarding locking
> * fixup after dropping ("xen/arm: Move is_protected flag to struct device")
> 
> v3->v4:
> * add new device_is_protected check in add_device hook to match SMMUv3 and
>   IPMMU-VMSA drivers
> 
> v2->v3:
> * invoke iommu_add_pci_sideband_ids() from add_device hook
> 
> v1->v2:
> * ignore add_device/assign_device/reassign_device calls for phantom functions
>   (i.e. devfn != pdev->devfn)
> 
> downstream->v1:
> * wrap unused function in #ifdef 0
> * remove the remove_device() stub since it was submitted separately to the list
>   [XEN][PATCH v6 12/19] xen/smmu: Add remove_device callback for smmu_iommu ops
>   https://lists.xenproject.org/archives/html/xen-devel/2023-05/msg00204.html
> * arm_smmu_(de)assign_dev: return error instead of crashing system
> * update condition in arm_smmu_reassign_dev
> * style fixup
> * add && !is_hardware_domain(d) into condition in arm_smmu_assign_dev()
> 
> (cherry picked from commit 0c11a7f65f044c26d87d1e27ac6283ef1f9cfb7a from
>  the downstream branch spider-master from
>  https://github.com/xen-troops/xen.git)
> ---
>  xen/drivers/passthrough/arm/smmu.c | 224 ++++++++++++++++++-----------
>  1 file changed, 143 insertions(+), 81 deletions(-)
> 
> diff --git a/xen/drivers/passthrough/arm/smmu.c b/xen/drivers/passthrough/arm/smmu.c
> index 0f8d47dc98..b9f2a33815 100644
> --- a/xen/drivers/passthrough/arm/smmu.c
> +++ b/xen/drivers/passthrough/arm/smmu.c
> @@ -120,11 +120,21 @@ enum irqreturn {
>  
>  typedef enum irqreturn irqreturn_t;
>  
> -/* Device logger functions
> - * TODO: Handle PCI
> - */
> -#define dev_print(dev, lvl, fmt, ...)						\
> -	 printk(lvl "smmu: %s: " fmt, dt_node_full_name(dev_to_dt(dev)), ## __VA_ARGS__)
> +/* Device logger functions */
> +#ifndef CONFIG_HAS_PCI
> +#define dev_print(dev, lvl, fmt, ...)    \
> +    printk(lvl "smmu: %s: " fmt, dev_name(dev), ## __VA_ARGS__)
> +#else
> +#define dev_print(dev, lvl, fmt, ...) ({                                \
> +    if ( !dev_is_pci((dev)) )                                           \
> +        printk(lvl "smmu: %s: " fmt, dev_name((dev)), ## __VA_ARGS__);  \
> +    else                                                                \
> +    {                                                                   \
> +        struct pci_dev *pdev = dev_to_pci((dev));                       \
> +        printk(lvl "smmu: %pp: " fmt, &pdev->sbdf, ## __VA_ARGS__);     \
> +    }                                                                   \
> +})
> +#endif
>  
>  #define dev_dbg(dev, fmt, ...) dev_print(dev, XENLOG_DEBUG, fmt, ## __VA_ARGS__)
>  #define dev_notice(dev, fmt, ...) dev_print(dev, XENLOG_INFO, fmt, ## __VA_ARGS__)
> @@ -172,20 +182,6 @@ static void __iomem *devm_ioremap_resource(struct device *dev,
>  #define IOMMU_FAULT_READ	0
>  #define IOMMU_FAULT_WRITE	1
>  
> -/*
> - * Xen: PCI functions
> - * TODO: It should be implemented when PCI will be supported
> - */
> -#define to_pci_dev(dev)	(NULL)
> -static inline int pci_for_each_dma_alias(struct pci_dev *pdev,
> -					 int (*fn) (struct pci_dev *pdev,
> -						    u16 alias, void *data),
> -					 void *data)
> -{
> -	BUG();
> -	return 0;
> -}
> -
>  /* Xen: misc */
>  #define PHYS_MASK_SHIFT		PADDR_BITS
>  
> @@ -619,7 +615,7 @@ struct arm_smmu_master_cfg {
>  	for (i = 0; idx = (cfg)->smendx[i], (i) < (num); ++(i))
>  
>  struct arm_smmu_master {
> -	struct device_node		*of_node;
> +	struct device			*dev;
>  	struct rb_node			node;
>  	struct arm_smmu_master_cfg	cfg;
>  };
> @@ -711,7 +707,7 @@ arm_smmu_get_fwspec(struct arm_smmu_master_cfg *cfg)
>  {
>  	struct arm_smmu_master *master = container_of(cfg,
>  			                                      struct arm_smmu_master, cfg);
> -	return dev_iommu_fwspec_get(&master->of_node->dev);
> +	return dev_iommu_fwspec_get(master->dev);
>  }
>  
>  static void parse_driver_options(struct arm_smmu_device *smmu)
> @@ -730,21 +726,11 @@ static void parse_driver_options(struct arm_smmu_device *smmu)
>  
>  static struct device_node *dev_get_dev_node(struct device *dev)
>  {
> -#if 0 /* Xen: TODO: Add support for PCI */
> -	if (dev_is_pci(dev)) {
> -		struct pci_bus *bus = to_pci_dev(dev)->bus;
> -
> -		while (!pci_is_root_bus(bus))
> -			bus = bus->parent;
> -		return bus->bridge->parent->of_node;
> -	}
> -#endif
> -
>  	return dev->of_node;
>  }
>  
>  static struct arm_smmu_master *find_smmu_master(struct arm_smmu_device *smmu,
> -						struct device_node *dev_node)
> +						struct device *dev)
>  {
>  	struct rb_node *node = smmu->masters.rb_node;
>  
> @@ -753,9 +739,9 @@ static struct arm_smmu_master *find_smmu_master(struct arm_smmu_device *smmu,
>  
>  		master = container_of(node, struct arm_smmu_master, node);
>  
> -		if (dev_node < master->of_node)
> +		if (dev < master->dev)
>  			node = node->rb_left;
> -		else if (dev_node > master->of_node)
> +		else if (dev > master->dev)
>  			node = node->rb_right;
>  		else
>  			return master;
> @@ -790,9 +776,9 @@ static int insert_smmu_master(struct arm_smmu_device *smmu,
>  			= container_of(*new, struct arm_smmu_master, node);
>  
>  		parent = *new;
> -		if (master->of_node < this->of_node)
> +		if (master->dev < this->dev)
>  			new = &((*new)->rb_left);
> -		else if (master->of_node > this->of_node)
> +		else if (master->dev > this->dev)
>  			new = &((*new)->rb_right);
>  		else
>  			return -EEXIST;
> @@ -824,28 +810,30 @@ static int arm_smmu_dt_add_device_legacy(struct arm_smmu_device *smmu,
>  	struct arm_smmu_master *master;
>  	struct device_node *dev_node = dev_get_dev_node(dev);
>  
> -	master = find_smmu_master(smmu, dev_node);
> +	master = find_smmu_master(smmu, dev);
>  	if (master) {
>  		dev_err(dev,
> -			"rejecting multiple registrations for master device %s\n",
> -			dev_node->name);
> +			"rejecting multiple registrations for master device\n");
>  		return -EBUSY;
>  	}
>  
>  	master = devm_kzalloc(dev, sizeof(*master), GFP_KERNEL);
>  	if (!master)
>  		return -ENOMEM;
> -	master->of_node = dev_node;
> +	master->dev = dev;
>  
> -	/* Xen: Let Xen know that the device is protected by an SMMU */
> -	dt_device_set_protected(dev_node);
> +	if ( !dev_is_pci(dev) )
> +	{
> +		/* Xen: Let Xen know that the device is protected by an SMMU */
> +		dt_device_set_protected(dev_node);
> +	}
>  
>  	for (i = 0; i < fwspec->num_ids; ++i) {
>  		if (!(smmu->features & ARM_SMMU_FEAT_STREAM_MATCH) &&
>  		     (fwspec->ids[i] >= smmu->num_mapping_groups)) {
>  			dev_err(dev,
> -				"stream ID for master device %s greater than maximum allowed (%d)\n",
> -				dev_node->name, smmu->num_mapping_groups);
> +				"SMMU stream ID %d is greater than maximum allowed (%d)\n",
> +				fwspec->ids[i], smmu->num_mapping_groups);
>  			return -ERANGE;
>  		}
>  		master->cfg.smendx[i] = INVALID_SMENDX;
> @@ -860,7 +848,7 @@ static int arm_smmu_dt_remove_device_legacy(struct arm_smmu_device *smmu,
>  	struct device_node *dev_node = dev_get_dev_node(dev);
>  	int ret;
>  
> -	master = find_smmu_master(smmu, dev_node);
> +	master = find_smmu_master(smmu, dev);
>  	if (master == NULL) {
>  		dev_err(dev,
>  			"No registrations found for master device %s\n",
> @@ -872,8 +860,9 @@ static int arm_smmu_dt_remove_device_legacy(struct arm_smmu_device *smmu,
>  	if (ret)
>  		return ret;
>  
> -	/* Protected by dt_host_lock and dtdevs_lock as caller holds these locks. */
> -	dev_node->is_protected = false;
> +	if ( !dev_is_pci(dev) )
> +		/* Protected by dt_host_lock and dtdevs_lock as caller holds these locks. */
> +		dev_node->is_protected = false;
>  
>  	kfree(master);
>  	return 0;
> @@ -902,6 +891,12 @@ static int register_smmu_master(struct arm_smmu_device *smmu,
>  					     fwspec);
>  }
>  
> +/* Forward declaration */
> +static int arm_smmu_assign_dev(struct domain *d, u8 devfn,
> +			       struct device *dev, u32 flag);
> +static int arm_smmu_deassign_dev(struct domain *d, uint8_t devfn,
> +				 struct device *dev);
> +
>  /*
>   * The driver which supports generic IOMMU DT bindings must have this
>   * callback implemented.
> @@ -926,6 +921,25 @@ static int arm_smmu_dt_add_device_generic(u8 devfn, struct device *dev)
>  {
>  	struct arm_smmu_device *smmu;
>  	struct iommu_fwspec *fwspec;
> +	int ret;
> +
> +#ifdef CONFIG_HAS_PCI
> +	if ( dev_is_pci(dev) )
> +	{
> +		struct pci_dev *pdev = dev_to_pci(dev);
> +		int ret;
> +
> +		/* Ignore calls for phantom functions */
> +		if ( devfn != pdev->devfn )
> +			return 0;
> +
> +		ret = iommu_add_pci_sideband_ids(pdev);
> +		if ( ret < 0 ) {
> +			iommu_fwspec_free(dev);
> +			return ret;
> +		}
> +	}
> +#endif
>  
>  	fwspec = dev_iommu_fwspec_get(dev);
>  	if (fwspec == NULL)
> @@ -935,7 +949,25 @@ static int arm_smmu_dt_add_device_generic(u8 devfn, struct device *dev)
>  	if (smmu == NULL)
>  		return -ENXIO;
>  
> -	return arm_smmu_dt_add_device_legacy(smmu, dev, fwspec);
> +	ret = arm_smmu_dt_add_device_legacy(smmu, dev, fwspec);
> +	if ( ret )
> +		return ret;
> +
> +#ifdef CONFIG_HAS_PCI
> +	if ( dev_is_pci(dev) )
> +	{
> +		struct pci_dev *pdev = dev_to_pci(dev);
> +
> +		/*
> +		 * During PHYSDEVOP_pci_device_add, Xen does not assign the
> +		 * device, so we must do it here.
> +		 */
> +		if ( pdev->domain )
> +			ret = arm_smmu_assign_dev(pdev->domain, devfn, dev, 0);
> +	}
> +#endif
> +
> +	return ret;
>  }
>  
>  static int arm_smmu_dt_xlate_generic(struct device *dev,
> @@ -958,11 +990,10 @@ static struct arm_smmu_device *find_smmu_for_device(struct device *dev)
>  {
>  	struct arm_smmu_device *smmu;
>  	struct arm_smmu_master *master = NULL;
> -	struct device_node *dev_node = dev_get_dev_node(dev);
>  
>  	spin_lock(&arm_smmu_devices_lock);
>  	list_for_each_entry(smmu, &arm_smmu_devices, list) {
> -		master = find_smmu_master(smmu, dev_node);
> +		master = find_smmu_master(smmu, dev);
>  		if (master)
>  			break;
>  	}
> @@ -2054,6 +2085,7 @@ static bool arm_smmu_capable(enum iommu_cap cap)
>  }
>  #endif
>  
> +#if 0 /* Not used */
>  static int __arm_smmu_get_pci_sid(struct pci_dev *pdev, u16 alias, void *data)
>  {
>  	*((u16 *)data) = alias;
> @@ -2064,6 +2096,7 @@ static void __arm_smmu_release_pci_iommudata(void *data)
>  {
>  	kfree(data);
>  }
> +#endif

This #if 0 escaped. Please remove it too.


>  static int arm_smmu_add_device(struct device *dev)
>  {
> @@ -2071,40 +2104,15 @@ static int arm_smmu_add_device(struct device *dev)
>  	struct arm_smmu_master_cfg *cfg;
>  	struct iommu_group *group;
>  	void (*releasefn)(void *data) = NULL;
> -	int ret;
>  
>  	smmu = find_smmu_for_device(dev);
>  	if (!smmu)
>  		return -ENODEV;
>  
> -	if (dev_is_pci(dev)) {
> -		struct pci_dev *pdev = to_pci_dev(dev);
> -		struct iommu_fwspec *fwspec;
> -
> -		cfg = kzalloc(sizeof(*cfg), GFP_KERNEL);
> -		if (!cfg) {
> -			return -ENOMEM;
> -		}
> -
> -		ret = iommu_fwspec_init(dev, smmu->dev);
> -		if (ret) {
> -			kfree(cfg);
> -			return ret;
> -		}
> -		fwspec = dev_iommu_fwspec_get(dev);
> -
> -		/*
> -		 * Assume Stream ID == Requester ID for now.
> -		 * We need a way to describe the ID mappings in FDT.
> -		 */
> -		pci_for_each_dma_alias(pdev, __arm_smmu_get_pci_sid,
> -				       &fwspec->ids[0]);
> -		releasefn = __arm_smmu_release_pci_iommudata;
> -		cfg->smmu = smmu;
> -	} else {
> +	{

This block looks strange now, please either remove the block or add an
else, if (!smmu) ... else


>  		struct arm_smmu_master *master;
>  
> -		master = find_smmu_master(smmu, dev->of_node);
> +		master = find_smmu_master(smmu, dev);
>  		if (!master) {
>  			return -ENODEV;
>  		}
> @@ -2772,6 +2780,42 @@ static int arm_smmu_assign_dev(struct domain *d, u8 devfn,
>  			return -ENOMEM;
>  	}
>  
> +#ifdef CONFIG_HAS_PCI
> +	if ( dev_is_pci(dev) )
> +	{
> +		struct pci_dev *pdev = dev_to_pci(dev);
> +
> +		/* Ignore calls for phantom functions */
> +		if ( devfn != pdev->devfn )
> +			return 0;
> +
> +		ASSERT(pcidevs_locked());
> +
> +		write_lock(&pdev->domain->pci_lock);
> +		list_del(&pdev->domain_list);
> +		write_unlock(&pdev->domain->pci_lock);
> +
> +		pdev->domain = d;
> +
> +		write_lock(&d->pci_lock);
> +		list_add(&pdev->domain_list, &d->pdev_list);
> +		write_unlock(&d->pci_lock);
> +
> +		/* dom_io is used as a sentinel for quarantined devices */
> +		if ( d == dom_io )
> +		{
> +			struct iommu_domain *domain = dev_iommu_domain(dev);
> +			if ( !iommu_quarantine )
> +				return 0;
> +
> +			if ( domain && domain->priv )
> +				arm_smmu_deassign_dev(domain->priv->cfg.domain, devfn, dev);
> +
> +			return 0;
> +		}
> +	}
> +#endif
> +
>  	if (!dev_iommu_group(dev)) {
>  		ret = arm_smmu_add_device(dev);
>  		if (ret)
> @@ -2821,11 +2865,27 @@ out:
>  	return ret;
>  }
>  
> -static int arm_smmu_deassign_dev(struct domain *d, struct device *dev)
> +static int arm_smmu_deassign_dev(struct domain *d, uint8_t devfn,
> +				 struct device *dev)
>  {
>  	struct iommu_domain *domain = dev_iommu_domain(dev);
>  	struct arm_smmu_xen_domain *xen_domain;
>  
> +#ifdef CONFIG_HAS_PCI
> +	if ( dev_is_pci(dev) )
> +	{
> +		struct pci_dev *pdev = dev_to_pci(dev);
> +
> +		/* Ignore calls for phantom functions */
> +		if ( devfn != pdev->devfn )
> +			return 0;
> +
> +		/* dom_io is used as a sentinel for quarantined devices */
> +		if ( d == dom_io )
> +			return 0;
> +	}
> +#endif
> +
>  	xen_domain = dom_iommu(d)->arch.priv;
>  
>  	if (!domain || domain->priv->cfg.domain != d) {
> @@ -2852,14 +2912,16 @@ static int arm_smmu_reassign_dev(struct domain *s, struct domain *t,
>  {
>  	int ret = 0;
>  
> -	/* Don't allow remapping on other domain than hwdom */
> -	if ( t && !is_hardware_domain(t) )
> +	/* Don't allow remapping on other domain than hwdom
> +	 * or dom_io for PCI devices
> +	 */
> +	if ( t && !is_hardware_domain(t) && (t != dom_io || !dev_is_pci(dev)) )
>  		return -EPERM;
>  
>  	if (t == s)
>  		return 0;
>  
> -	ret = arm_smmu_deassign_dev(s, dev);
> +	ret = arm_smmu_deassign_dev(s, devfn, dev);
>  	if (ret)
>  		return ret;
>  
> -- 
> 2.34.1
> 


From xen-devel-bounces@lists.xenproject.org Tue Apr 29 23:18:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 29 Apr 2025 23:18:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.973239.1361410 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9uE0-0006eA-H0; Tue, 29 Apr 2025 23:18:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 973239.1361410; Tue, 29 Apr 2025 23:18: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 1u9uE0-0006e3-Dw; Tue, 29 Apr 2025 23:18:52 +0000
Received: by outflank-mailman (input) for mailman id 973239;
 Tue, 29 Apr 2025 23:18: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=ZtOk=XP=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1u9uDz-0006dx-Dy
 for xen-devel@lists.xenproject.org; Tue, 29 Apr 2025 23:18:51 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org
 [2600:3c0a:e001:78e:0:1991:8:25])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4e79fa5b-2550-11f0-9eb4-5ba50f476ded;
 Wed, 30 Apr 2025 01:18:50 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 4B3BD4A8BD;
 Tue, 29 Apr 2025 23:18:46 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 18D09C4CEE3;
 Tue, 29 Apr 2025 23:18:46 +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: 4e79fa5b-2550-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1745968728;
	bh=U6BueKjq2zk7F4nJquL2yI7DyCitzxGc4GFuZgnRae8=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=RPxnu1WrHrapbni0IWkS48jRBHcaCxBNEZs0rvgJZE/i0SAFcQdxDrWIY3FV3LZo+
	 TIEV6uTa7VBrM6880bMZeslkAwfh51MTt4NTagzGSS/q5nPA2n02CuiWIDyjkvXeD4
	 nbxq2Njst/hfnzUlm8An/Yq3e0p8YomLMpsIaakbFhxkerHO0G3nlHibLe8wybZoRr
	 cH+7mOByydW0sJolF7AWDB1bm+kyF6ieK+c/jaVizlHrF7mBbM9nD1oxLk0PDIKeRp
	 x+x2m/fm9mITGyDznx3aYQduMSFkqvtwsBeDX0kJDKPtrrdDDyqnCoTdEWyHTyvxlj
	 K1g/kgO9GmMcA==
Date: Tue, 29 Apr 2025 16:18:45 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Mykyta Poturai <Mykyta_Poturai@epam.com>
cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    Rahul Singh <rahul.singh@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>, 
    Stewart Hildebrand <stewart.hildebrand@amd.com>
Subject: Re: [PATCH v10 7/7] xen/arm: Map ITS doorbell register to IOMMU page
 tables
In-Reply-To: <c425567d767e30a7750c0f93cb618d3e3381e039.1745918678.git.mykyta_poturai@epam.com>
Message-ID: <alpine.DEB.2.22.394.2504291618340.3879245@ubuntu-linux-20-04-desktop>
References: <cover.1745918678.git.mykyta_poturai@epam.com> <c425567d767e30a7750c0f93cb618d3e3381e039.1745918678.git.mykyta_poturai@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, 29 Apr 2025, Mykyta Poturai wrote:
> From: Rahul Singh <rahul.singh@arm.com>
> 
> When ITS is enabled and PCI devices that are behind an SMMU generate an
> MSI interrupt, SMMU fault will be observed as there is currently no
> mapping in p2m table for the ITS translation register (GITS_TRANSLATER).
> 
> A mapping is required in the iommu page tables so that the device can
> generate the MSI interrupt writing to the GITS_TRANSLATER register.
> 
> The GITS_TRANSLATER register is a 32-bit register, and there is nothing
> else in a page containing it, so map that page.
> 
> Add new host_addr parameter to vgic_v3_its_init_virtual to prepare the
> foundation for DomU MSI support where guest doorbell address can differ
> for the host's. Note that the 1:1 check in arm_iommu_map_page remains
> for now, as virtual ITSes are currently only created for hwdom where the
> doorbell mapping is always 1:1.
> 
> Signed-off-by: Rahul Singh <rahul.singh@arm.com>
> Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
> Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>

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



From xen-devel-bounces@lists.xenproject.org Wed Apr 30 00:46:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 30 Apr 2025 00:46:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.973258.1361421 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9vaZ-0002g8-RP; Wed, 30 Apr 2025 00:46:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 973258.1361421; Wed, 30 Apr 2025 00: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 1u9vaZ-0002g1-My; Wed, 30 Apr 2025 00:46:15 +0000
Received: by outflank-mailman (input) for mailman id 973258;
 Wed, 30 Apr 2025 00: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=7NA2=XQ=gmail.com=demiobenour@srs-se1.protection.inumbo.net>)
 id 1u9vaY-0002fv-5H
 for xen-devel@lists.xenproject.org; Wed, 30 Apr 2025 00:46:14 +0000
Received: from mail-yb1-xb2a.google.com (mail-yb1-xb2a.google.com
 [2607:f8b0:4864:20::b2a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 825371f6-255c-11f0-9ffb-bf95429c2676;
 Wed, 30 Apr 2025 02:46:10 +0200 (CEST)
Received: by mail-yb1-xb2a.google.com with SMTP id
 3f1490d57ef6-e573136107bso5913233276.3
 for <xen-devel@lists.xenproject.org>; Tue, 29 Apr 2025 17:46:10 -0700 (PDT)
Received: from [10.138.7.94] ([45.134.140.51])
 by smtp.gmail.com with ESMTPSA id
 3f1490d57ef6-e74152220ddsm81840276.56.2025.04.29.17.46.08
 for <xen-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 29 Apr 2025 17:46: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: 825371f6-255c-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1745973970; x=1746578770; darn=lists.xenproject.org;
        h=autocrypt:subject:from:to:content-language:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=QxWf3TbB4fH0i1AUZB2U3dMpax4IuulXPsa6eK6/0q0=;
        b=AJIy+GlelYzyESMM51SX9Unbl83oSB0bEPgYyTaXFRCxw5GZ5yeX8/ZXDux6wMNXKV
         Vhirha03rJRGlBRjN/0LAXdk9pQPmfLl/Ni8xe4rFa79q3HUFqP5aNzto158uwpNvd2O
         i9Si43XQdU8r7rg3gRMwGdjtSvkMIf2KxmvnpJ/4eklON0zAMNhnLkXIwLTbVJOVl2Vs
         ccv/4PiNPVju4/YGBdBxDNy0mPLngvmyuvDxKPzYp9Ou674flR4ZIgTSt7yFjl77jLWu
         9S9iEEFVqX/dr1kJOCapXz621Bnnr1rNYaoN+jKoPMAa0bYdqvQZRfBSFYkgHqRr+BJP
         xdqg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745973970; x=1746578770;
        h=autocrypt:subject:from:to:content-language:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=QxWf3TbB4fH0i1AUZB2U3dMpax4IuulXPsa6eK6/0q0=;
        b=hEJqjYFgKVyqxs1vhe5SWbK5dgEiTp2z9uJWAQiFNllzh4yKeYmpSyvZhuO3Y42wsK
         yZqxb3lE9CESSe/16nOqSrt6vKQo2x0n7+O1x6aV+9uaB+MEjaPYF1KS7WXibpWvzxzb
         rvbOrynZ+S6fxAQGiM1dvMS0UWrRw4LCoUNZUn2ue2SKfC+bXsdewAi4JHZyLfkKidRV
         24Z5lsGUaSoe+gkHodiWRmD6b5iUmFrOpE8x0Qr+dggLWytoK6K/NDmlAzucgSDSq4GB
         Ki6UPubiQ2fI/8NG8JPJ6RpC+QtrUm5tJ+L+7XtUDK+qJeluyV9NYN/dgq+pMhh4kKBV
         IdHg==
X-Gm-Message-State: AOJu0YxREzhS3lGj2GGLHVpZNKh+G5ikPphXHoKtzattjcUn35kvierc
	LwGRPiyf1Z1KPXpYjK5sJBnO1fW/GOd7sv6cfFGFVgoEWnDWweYs8LW+nA==
X-Gm-Gg: ASbGnctV9XGy7BumZ32ZGtPOS9JUte3Zx+4AcfS4JupqCzcnovRiQpf73ZAiXU63Cwx
	KA+/GTomoMDKrn+0m/huFGGzxnp3FTRn/9XRLaCKScc8BwjWnRFztve4Dyb+FzIW5K5AyKOipjD
	rMRCgELnkLCZi08XPlOOQkf+1fIIUdnX5laiKNUac1KolIg0haWXxjWqG6OZ+RcYAwBVJSVfbG5
	a3x+mxs5f/mJYpcCCsRyQu9z4ZT+jJ4WYfqXNVPr/7/W1JZPf7rbBhBh7jwZcw5RWo2UA0JZGeH
	YL4H04ji8PO3ZtsJJRz6YWDkLUdgILv6Ossv79yz0PSE
X-Google-Smtp-Source: AGHT+IHuYz3dwsfYrk80cOfwXR0VGJhpDN83FywfLQqUxuANTq2d0n3UU4YSsWnCP88CLooVRoupcA==
X-Received: by 2002:a05:690c:6e01:b0:6fd:3d37:99ce with SMTP id 00721157ae682-708abdab6a1mr22392287b3.17.1745973969653;
        Tue, 29 Apr 2025 17:46:09 -0700 (PDT)
Message-ID: <f8337ed6-d192-4a1e-8026-80a72fea836f@gmail.com>
Date: Tue, 29 Apr 2025 20:46:37 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: Xen developer discussion <xen-devel@lists.xenproject.org>
From: Demi Marie Obenour <demiobenour@gmail.com>
Subject: Non-PCI device passthrough on Arm: status?
Autocrypt: addr=demiobenour@gmail.com; keydata=
 xsFNBFp+A0oBEADffj6anl9/BHhUSxGTICeVl2tob7hPDdhHNgPR4C8xlYt5q49yB+l2nipd
 aq+4Gk6FZfqC825TKl7eRpUjMriwle4r3R0ydSIGcy4M6eb0IcxmuPYfbWpr/si88QKgyGSV
 Z7GeNW1UnzTdhYHuFlk8dBSmB1fzhEYEk0RcJqg4AKoq6/3/UorR+FaSuVwT7rqzGrTlscnT
 DlPWgRzrQ3jssesI7sZLm82E3pJSgaUoCdCOlL7MMPCJwI8JpPlBedRpe9tfVyfu3euTPLPx
 wcV3L/cfWPGSL4PofBtB8NUU6QwYiQ9Hzx4xOyn67zW73/G0Q2vPPRst8LBDqlxLjbtx/WLR
 6h3nBc3eyuZ+q62HS1pJ5EvUT1vjyJ1ySrqtUXWQ4XlZyoEFUfpJxJoN0A9HCxmHGVckzTRl
 5FMWo8TCniHynNXsBtDQbabt7aNEOaAJdE7to0AH3T/Bvwzcp0ZJtBk0EM6YeMLtotUut7h2
 Bkg1b//r6bTBswMBXVJ5H44Qf0+eKeUg7whSC9qpYOzzrm7+0r9F5u3qF8ZTx55TJc2g656C
 9a1P1MYVysLvkLvS4H+crmxA/i08Tc1h+x9RRvqba4lSzZ6/Tmt60DPM5Sc4R0nSm9BBff0N
 m0bSNRS8InXdO1Aq3362QKX2NOwcL5YaStwODNyZUqF7izjK4QARAQABzTxEZW1pIE1hcmll
 IE9iZW5vdXIgKGxvdmVyIG9mIGNvZGluZykgPGRlbWlvYmVub3VyQGdtYWlsLmNvbT7CwXgE
 EwECACIFAlp+A0oCGwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJELKItV//nCLBhr8Q
 AK/xrb4wyi71xII2hkFBpT59ObLN+32FQT7R3lbZRjVFjc6yMUjOb1H/hJVxx+yo5gsSj5LS
 9AwggioUSrcUKldfA/PKKai2mzTlUDxTcF3vKx6iMXKA6AqwAw4B57ZEJoMM6egm57TV19kz
 PMc879NV2nc6+elaKl+/kbVeD3qvBuEwsTe2Do3HAAdrfUG/j9erwIk6gha/Hp9yZlCnPTX+
 VK+xifQqt8RtMqS5R/S8z0msJMI/ajNU03kFjOpqrYziv6OZLJ5cuKb3bZU5aoaRQRDzkFIR
 6aqtFLTohTo20QywXwRa39uFaOT/0YMpNyel0kdOszFOykTEGI2u+kja35g9TkH90kkBTG+a
 EWttIht0Hy6YFmwjcAxisSakBuHnHuMSOiyRQLu43ej2+mDWgItLZ48Mu0C3IG1seeQDjEYP
 tqvyZ6bGkf2Vj+L6wLoLLIhRZxQOedqArIk/Sb2SzQYuxN44IDRt+3ZcDqsPppoKcxSyd1Ny
 2tpvjYJXlfKmOYLhTWs8nwlAlSHX/c/jz/ywwf7eSvGknToo1Y0VpRtoxMaKW1nvH0OeCSVJ
 itfRP7YbiRVc2aNqWPCSgtqHAuVraBRbAFLKh9d2rKFB3BmynTUpc1BQLJP8+D5oNyb8Ts4x
 Xd3iV/uD8JLGJfYZIR7oGWFLP4uZ3tkneDfYzsFNBFp+A0oBEAC9ynZI9LU+uJkMeEJeJyQ/
 8VFkCJQPQZEsIGzOTlPnwvVna0AS86n2Z+rK7R/usYs5iJCZ55/JISWd8xD57ue0eB47bcJv
 VqGlObI2DEG8TwaW0O0duRhDgzMEL4t1KdRAepIESBEA/iPpI4gfUbVEIEQuqdqQyO4GAe+M
 kD0Hy5JH/0qgFmbaSegNTdQg5iqYjRZ3ttiswalql1/iSyv1WYeC1OAs+2BLOAT2NEggSiVO
 txEfgewsQtCWi8H1SoirakIfo45Hz0tk/Ad9ZWh2PvOGt97Ka85o4TLJxgJJqGEnqcFUZnJJ
 riwoaRIS8N2C8/nEM53jb1sH0gYddMU3QxY7dYNLIUrRKQeNkF30dK7V6JRH7pleRlf+wQcN
 fRAIUrNlatj9TxwivQrKnC9aIFFHEy/0mAgtrQShcMRmMgVlRoOA5B8RTulRLCmkafvwuhs6
 dCxN0GNAORIVVFxjx9Vn7OqYPgwiofZ6SbEl0hgPyWBQvE85klFLZLoj7p+joDY1XNQztmfA
 rnJ9x+YV4igjWImINAZSlmEcYtd+xy3Li/8oeYDAqrsnrOjb+WvGhCykJk4urBog2LNtcyCj
 kTs7F+WeXGUo0NDhbd3Z6AyFfqeF7uJ3D5hlpX2nI9no/ugPrrTVoVZAgrrnNz0iZG2DVx46
 x913pVKHl5mlYQARAQABwsFfBBgBAgAJBQJafgNKAhsMAAoJELKItV//nCLBwNIP/AiIHE8b
 oIqReFQyaMzxq6lE4YZCZNj65B/nkDOvodSiwfwjjVVE2V3iEzxMHbgyTCGA67+Bo/d5aQGj
 gn0TPtsGzelyQHipaUzEyrsceUGWYoKXYyVWKEfyh0cDfnd9diAm3VeNqchtcMpoehETH8fr
 RHnJdBcjf112PzQSdKC6kqU0Q196c4Vp5HDOQfNiDnTf7gZSj0BraHOByy9LEDCLhQiCmr+2
 E0rW4tBtDAn2HkT9uf32ZGqJCn1O+2uVfFhGu6vPE5qkqrbSE8TG+03H8ecU2q50zgHWPdHM
 OBvy3EhzfAh2VmOSTcRK+tSUe/u3wdLRDPwv/DTzGI36Kgky9MsDC5gpIwNbOJP2G/q1wT1o
 Gkw4IXfWv2ufWiXqJ+k7HEi2N1sree7Dy9KBCqb+ca1vFhYPDJfhP75I/VnzHVssZ/rYZ9+5
 1yDoUABoNdJNSGUYl+Yh9Pw9pE3Kt4EFzUlFZWbE4xKL/NPno+z4J9aWemLLszcYz/u3XnbO
 vUSQHSrmfOzX3cV4yfmjM5lewgSstoxGyTx2M8enslgdXhPthZlDnTnOT+C+OTsh8+m5tos8
 HQjaPM01MKBiAqdPgksm1wu2DrrwUi6ChRVTUBcj6+/9IJ81H2P2gJk3Ls3AVIxIffLoY34E
 +MYSfkEjBz0E8CLOcAw7JIwAaeBT
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------MGWgr6kJVAM47Fs84d56pYbd"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------MGWgr6kJVAM47Fs84d56pYbd
Content-Type: multipart/mixed; boundary="------------90YvFx0oUq0VWspGjG0QJQ7T";
 protected-headers="v1"
From: Demi Marie Obenour <demiobenour@gmail.com>
To: Xen developer discussion <xen-devel@lists.xenproject.org>
Message-ID: <f8337ed6-d192-4a1e-8026-80a72fea836f@gmail.com>
Subject: Non-PCI device passthrough on Arm: status?

--------------90YvFx0oUq0VWspGjG0QJQ7T
Content-Type: multipart/mixed; boundary="------------NN8RZqe966aC4VCVLXCCj8Ae"

--------------NN8RZqe966aC4VCVLXCCj8Ae
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

I noticed that non-PCI device passthrough on Arm is not
security supported.  Is this just because the code has not
been sufficiently tested yet, or is it because there is
some fundamental problem with the code or with the hardware
features it uses?
--=20
Sincerely,
Demi Marie Obenour (she/her/hers)

--------------NN8RZqe966aC4VCVLXCCj8Ae
Content-Type: application/pgp-keys; name="OpenPGP_0xB288B55FFF9C22C1.asc"
Content-Disposition: attachment; filename="OpenPGP_0xB288B55FFF9C22C1.asc"
Content-Description: OpenPGP public key
Content-Transfer-Encoding: quoted-printable

-----BEGIN PGP PUBLIC KEY BLOCK-----

xsFNBFp+A0oBEADffj6anl9/BHhUSxGTICeVl2tob7hPDdhHNgPR4C8xlYt5q49y
B+l2nipdaq+4Gk6FZfqC825TKl7eRpUjMriwle4r3R0ydSIGcy4M6eb0IcxmuPYf
bWpr/si88QKgyGSVZ7GeNW1UnzTdhYHuFlk8dBSmB1fzhEYEk0RcJqg4AKoq6/3/
UorR+FaSuVwT7rqzGrTlscnTDlPWgRzrQ3jssesI7sZLm82E3pJSgaUoCdCOlL7M
MPCJwI8JpPlBedRpe9tfVyfu3euTPLPxwcV3L/cfWPGSL4PofBtB8NUU6QwYiQ9H
zx4xOyn67zW73/G0Q2vPPRst8LBDqlxLjbtx/WLR6h3nBc3eyuZ+q62HS1pJ5EvU
T1vjyJ1ySrqtUXWQ4XlZyoEFUfpJxJoN0A9HCxmHGVckzTRl5FMWo8TCniHynNXs
BtDQbabt7aNEOaAJdE7to0AH3T/Bvwzcp0ZJtBk0EM6YeMLtotUut7h2Bkg1b//r
6bTBswMBXVJ5H44Qf0+eKeUg7whSC9qpYOzzrm7+0r9F5u3qF8ZTx55TJc2g656C
9a1P1MYVysLvkLvS4H+crmxA/i08Tc1h+x9RRvqba4lSzZ6/Tmt60DPM5Sc4R0nS
m9BBff0Nm0bSNRS8InXdO1Aq3362QKX2NOwcL5YaStwODNyZUqF7izjK4QARAQAB
zTxEZW1pIE9iZW5vdXIgKElUTCBFbWFpbCBLZXkpIDxhdGhlbmFAaW52aXNpYmxl
dGhpbmdzbGFiLmNvbT7CwY4EEwEIADgWIQR2h02fEza6IlkHHHGyiLVf/5wiwQUC
X6YJvQIbAwULCQgHAgYVCgkICwIEFgIDAQIeAQIXgAAKCRCyiLVf/5wiwWRhD/0Y
R+YYC5Kduv/2LBgQJIygMsFiRHbR4+tWXuTFqgrxxFSlMktZ6gQrQCWe38WnOXkB
oY6n/5lSJdfnuGd2UagZ/9dkaGMUkqt+5WshLFly4BnP7pSsWReKgMP7etRTwn3S
zk1OwFx2lzY1EnnconPLfPBc6rWG2moA6l0WX+3WNR1B1ndqpl2hPSjT2jUCBWDV
rGOUSX7r5f1WgtBeNYnEXPBCUUM51pFGESmfHIXQrqFDA7nBNiIVFDJTmQzuEqIy
Jl67pKNgooij5mKzRhFKHfjLRAH4mmWZlB9UjDStAfFBAoDFHwd1HL5VQCNQdqEc
/9lZDApqWuCPadZN+pGouqLysesIYsNxUhJ7dtWOWHl0vs7/3qkWmWun/2uOJMQh
ra2u8nA9g91FbOobWqjrDd6x3ZJoGQf4zLqjmn/P514gb697788e573WN/MpQ5XI
Fl7aM2d6/GJiq6LC9T2gSUW4rbPBiqOCeiUx7Kd/sVm41p9TOA7fEG4bYddCfDsN
xaQJH6VRK3NOuBUGeL+iQEVF5Xs6Yp+U+jwvv2M5Lel3EqAYo5xXTx4ls0xaxDCu
fudcAh8CMMqx3fguSb7Mi31WlnZpk0fDuWQVNKyDP7lYpwc4nCCGNKCj622ZSocH
AcQmX28L8pJdLYacv9pU3jPy4fHcQYvmTavTqowGnM08RGVtaSBNYXJpZSBPYmVu
b3VyIChsb3ZlciBvZiBjb2RpbmcpIDxkZW1pb2Jlbm91ckBnbWFpbC5jb20+wsF4
BBMBAgAiBQJafgNKAhsDBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRCyiLVf
/5wiwYa/EACv8a2+MMou9cSCNoZBQaU+fTmyzft9hUE+0d5W2UY1RY3OsjFIzm9R
/4SVccfsqOYLEo+S0vQMIIIqFEq3FCpXXwPzyimotps05VA8U3Bd7yseojFygOgK
sAMOAee2RCaDDOnoJue01dfZMzzHPO/TVdp3OvnpWipfv5G1Xg96rwbhMLE3tg6N
xwAHa31Bv4/Xq8CJOoIWvx6fcmZQpz01/lSvsYn0KrfEbTKkuUf0vM9JrCTCP2oz
VNN5BYzqaq2M4r+jmSyeXLim922VOWqGkUEQ85BSEemqrRS06IU6NtEMsF8EWt/b
hWjk/9GDKTcnpdJHTrMxTspExBiNrvpI2t+YPU5B/dJJAUxvmhFrbSIbdB8umBZs
I3AMYrEmpAbh5x7jEjoskUC7uN3o9vpg1oCLS2ePDLtAtyBtbHnkA4xGD7ar8mem
xpH9lY/i+sC6CyyIUWcUDnnagKyJP0m9ks0GLsTeOCA0bft2XA6rD6aaCnMUsndT
ctrab42CV5XypjmC4U1rPJ8JQJUh1/3P48/8sMH+3krxpJ06KNWNFaUbaMTGiltZ
7x9DngklSYrX0T+2G4kVXNmjaljwkoLahwLla2gUWwBSyofXdqyhQdwZsp01KXNQ
UCyT/Pg+aDcm/E7OMV3d4lf7g/CSxiX2GSEe6BlhSz+Lmd7ZJ3g32M1ARGVtaSBN
YXJpZSBPYmVub3VyIChJVEwgRW1haWwgS2V5KSA8ZGVtaUBpbnZpc2libGV0aGlu
Z3NsYWIuY29tPsLBjgQTAQgAOBYhBHaHTZ8TNroiWQcccbKItV//nCLBBQJgOEV+
AhsDBQsJCAcCBhUKCQgLAgQWAgMBAh4BAheAAAoJELKItV//nCLBKwoP/1WSnFdv
SAD0g7fD0WlF+oi7ISFT7oqJnchFLOwVHK4Jg0e4hGn1ekWsF3Ha5tFLh4V/7UUu
obYJpTfBAA2CckspYBqLtKGjFxcaqjjpO1I2W/jeNELVtSYuCOZICjdNGw2Hl9yH
KRZiBkqc9u8lQcHDZKq4LIpVJj6ZQV/nxttDX90ax2No1nLLQXFbr5wb465LAPpU
lXwunYDij7xJGye+VUASQh9datye6orZYuJvNo8Tr3mAQxxkfR46LzWgxFCPEAZJ
5P56Nc0IMHdJZj0Uc9+1jxERhOGppp5jlLgYGK7faGB/jTV6LaRQ4Ad+xiqokDWp
mUOZsmA+bMbtPfYjDZBz5mlyHcIRKIFpE1l3Y8F7PhJuzzMUKkJi90CYakCV4x/a
Zs4pzk5E96c2VQx01RIEJ7fzHF7lwFdtfTS4YsLtAbQFsKayqwkGcVv2B1AHeqdo
TMX+cgDvjd1ZganGlWA8Sv9RkNSMchn1hMuTwERTyFTr2dKPnQdA1F480+jUap41
ClXgn227WkCIMrNhQGNyJsnwyzi5wS8rBVRQ3BOTMyvGM07j3axUOYaejEpg7wKi
wTPZGLGH1sz5GljD/916v5+v2xLbOo5606j9dWf5/tAhbPuqrQgWv41wuKDi+dDD
EKkODF7DHes8No+QcHTDyETMn1RYm7t0RKR4zsFNBFp+A0oBEAC9ynZI9LU+uJkM
eEJeJyQ/8VFkCJQPQZEsIGzOTlPnwvVna0AS86n2Z+rK7R/usYs5iJCZ55/JISWd
8xD57ue0eB47bcJvVqGlObI2DEG8TwaW0O0duRhDgzMEL4t1KdRAepIESBEA/iPp
I4gfUbVEIEQuqdqQyO4GAe+MkD0Hy5JH/0qgFmbaSegNTdQg5iqYjRZ3ttiswalq
l1/iSyv1WYeC1OAs+2BLOAT2NEggSiVOtxEfgewsQtCWi8H1SoirakIfo45Hz0tk
/Ad9ZWh2PvOGt97Ka85o4TLJxgJJqGEnqcFUZnJJriwoaRIS8N2C8/nEM53jb1sH
0gYddMU3QxY7dYNLIUrRKQeNkF30dK7V6JRH7pleRlf+wQcNfRAIUrNlatj9Txwi
vQrKnC9aIFFHEy/0mAgtrQShcMRmMgVlRoOA5B8RTulRLCmkafvwuhs6dCxN0GNA
ORIVVFxjx9Vn7OqYPgwiofZ6SbEl0hgPyWBQvE85klFLZLoj7p+joDY1XNQztmfA
rnJ9x+YV4igjWImINAZSlmEcYtd+xy3Li/8oeYDAqrsnrOjb+WvGhCykJk4urBog
2LNtcyCjkTs7F+WeXGUo0NDhbd3Z6AyFfqeF7uJ3D5hlpX2nI9no/ugPrrTVoVZA
grrnNz0iZG2DVx46x913pVKHl5mlYQARAQABwsFfBBgBAgAJBQJafgNKAhsMAAoJ
ELKItV//nCLBwNIP/AiIHE8boIqReFQyaMzxq6lE4YZCZNj65B/nkDOvodSiwfwj
jVVE2V3iEzxMHbgyTCGA67+Bo/d5aQGjgn0TPtsGzelyQHipaUzEyrsceUGWYoKX
YyVWKEfyh0cDfnd9diAm3VeNqchtcMpoehETH8frRHnJdBcjf112PzQSdKC6kqU0
Q196c4Vp5HDOQfNiDnTf7gZSj0BraHOByy9LEDCLhQiCmr+2E0rW4tBtDAn2HkT9
uf32ZGqJCn1O+2uVfFhGu6vPE5qkqrbSE8TG+03H8ecU2q50zgHWPdHMOBvy3Ehz
fAh2VmOSTcRK+tSUe/u3wdLRDPwv/DTzGI36Kgky9MsDC5gpIwNbOJP2G/q1wT1o
Gkw4IXfWv2ufWiXqJ+k7HEi2N1sree7Dy9KBCqb+ca1vFhYPDJfhP75I/VnzHVss
Z/rYZ9+51yDoUABoNdJNSGUYl+Yh9Pw9pE3Kt4EFzUlFZWbE4xKL/NPno+z4J9aW
emLLszcYz/u3XnbOvUSQHSrmfOzX3cV4yfmjM5lewgSstoxGyTx2M8enslgdXhPt
hZlDnTnOT+C+OTsh8+m5tos8HQjaPM01MKBiAqdPgksm1wu2DrrwUi6ChRVTUBcj
6+/9IJ81H2P2gJk3Ls3AVIxIffLoY34E+MYSfkEjBz0E8CLOcAw7JIwAaeBTzsFN
BGbyLVgBEACqClxh50hmBepTSVlan6EBq3OAoxhrAhWZYEwN78k+ENhK68KhqC5R
IsHzlL7QHW1gmfVBQZ63GnWiraM6wOJqFTL4ZWvRslga9u28FJ5XyK860mZLgYhK
9BzoUk4s+dat9jVUbq6LpQ1Ot5I9vrdzo2p1jtQ8h9WCIiFxSYy8s8pZ3hHh5T64
GIj1m/kY7lG3VIdUgoNiREGf/iOMjUFjwwE9ZoJ26j9p7p1U+TkKeF6wgswEB1T3
J8KCAtvmRtqJDq558IU5jhg5fgN+xHB8cgvUWulgK9FIF9oFxcuxtaf/juhHWKMO
RtL0bHfNdXoBdpUDZE+mLBUAxF6KSsRrvx6AQyJs7VjgXJDtQVWvH0PUmTrEswgb
49nNU+dLLZQAZagxqnZ9Dp5l6GqaGZCHERJcLmdY/EmMzSf5YazJ6c0vO8rdW27M
kn73qcWAplQn5mOXaqbfzWkAUPyUXppuRHfrjxTDz3GyJJVOeMmMrTxH4uCaGpOX
Z8tN6829J1roGw4oKDRUQsaBAeEDqizXMPRc+6U9vI5FXzbAsb+8lKW65G7JWHym
YPOGUt2hK4DdTA1PmVo0DxH00eWWeKxqvmGyX+Dhcg+5e191rPsMRGsDlH6KihI6
+3JIuc0y6ngdjcp6aalbuvPIGFrCRx3tnRtNc7He6cBWQoH9RPwluwARAQABwsOs
BBgBCgAgFiEEdodNnxM2uiJZBxxxsoi1X/+cIsEFAmbyLVgCGwICQAkQsoi1X/+c
IsHBdCAEGQEKAB0WIQSilC2pUlbVp66j3+yzNoc6synyUwUCZvItWAAKCRCzNoc6
synyU85gD/0T1QDtPhovkGwoqv4jUbEMMvpeYQf+oWgm/TjWPeLwdjl7AtY0G9Ml
ZoyGniYkoHi37Gnn/ShLT3B5vtyI58ap2+SSa8SnGftdAKRLiWFWCiAEklm9FRk8
N3hwxhmSFF1KR/AIDS4g+HIsZn7YEMubBSgLlZZ9zHl4O4vwuXlREBEW97iL/FSt
VownU2V39t7PtFvGZNk+DJH7eLO3jmNRYB0PL4JOyyda3NH/J92iwrFmjFWWmmWb
/Xz8l9DIs+Z59pRCVTTwbBEZhcUc7rVMCcIYL+q1WxBG2e6lMn15OQJ5WfiE6E0I
sGirAEDnXWx92JNGx5l+mMpdpsWhBZ5iGTtttZesibNkQfd48/eCgFi4cxJUC4PT
UQwfD9AMgzwSTGJrkI5XGy+XqxwOjL8UA0iIrtTpMh49zw46uV6kwFQCgkf32jZM
OLwLTNSzclbnA7GRd8tKwezQ/XqeK3dal2n+cOr+o+Eka7yGmGWNUqFbIe8cjj9T
JeF3mgOCmZOwMI+wIcQYRSf+e5VTMO6TNWH5BI3vqeHSt7HkYuPlHT0pGum88d4a
pWqhulH4rUhEMtirX1hYx8Q4HlUOQqLtxzmwOYWkhl1C+yPObAvUDNiHCLf9w28n
uihgEkzHt9J4VKYulyJM9fe3ENcyU6rpXD7iANQqcr87ogKXFxknZ97uEACvSucc
RbnnAgRqZ7GDzgoBerJ2zrmhLkeREZ08iz1zze1JgyW3HEwdr2UbyAuqvSADCSUU
GN0vtQHsPzWl8onRc7lOPqPDF8OO+UfN9NAfA4wl3QyChD1GXl9rwKQOkbvdlYFV
UFx9u86LNi4ssTmU8p9NtHIGpz1SYMVYNoYy9NU7EVqypGMguDCL7gJt6GUmA0sw
p+YCroXiwL2BJ7RwRqTpgQuFL1gShkA17D5jK4mDPEetq1d8kz9rQYvAR/sTKBsR
ImC3xSfn8zpWoNTTB6lnwyP5Ng1bu6esS7+SpYprFTe7ZqGZF6xhvBPf1Ldi9UAm
U2xPN1/eeWxEa2kusidmFKPmN8lcT4miiAvwGxEnY7Oww9CgZlUB+LP4dl5VPjEt
sFeAhrgxLdpVTjPRRwTd9VQF3/XYl83j5wySIQKIPXgT3sG3ngAhDhC8I8GpM36r
8WJJ3x2yVzyJUbBPO0GBhWE2xPNIfhxVoU4cGGhpFqz7dPKSTRDGq++MrFgKKGpI
ZwT3CPTSSKc7ySndEXWkOYArDIdtyxdE1p5/c3aoz4utzUU7NDHQ+vVIwlnZSMiZ
jek2IJP3SZ+COOIHCVxpUaZ4lnzWT4eDqABhMLpIzw6NmGfg+kLBJhouqz81WITr
EtJuZYM5blWncBOJCoWMnBEcTEo/viU3GgcVRw=3D=3D
=3Dx94R
-----END PGP PUBLIC KEY BLOCK-----

--------------NN8RZqe966aC4VCVLXCCj8Ae--

--------------90YvFx0oUq0VWspGjG0QJQ7T--

--------------MGWgr6kJVAM47Fs84d56pYbd
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature.asc"

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

iQIzBAEBCAAdFiEEopQtqVJW1aeuo9/sszaHOrMp8lMFAmgRcvgACgkQszaHOrMp
8lNPAg/7B2hAqHIBLs+dXMkk6rNNz+wiDFVad1kvxTifFBT1l2Us715sG+8b2GYq
ONBLB4FaObjG9FyiXeNg9//FhioR4rWwcJ76td7wkhSezQUUp0pqtmxDzOnn4yb2
du03Q7jLpC1MMK2WLp4pA6o+59W+uPWYnj72vHjewQp3lObgazRRdlWzoRJvcP2a
5AqBexjNpwHFYgHODjJARdhCTZGdgVC2AqMyqSW3HS3mbOca8TOyMudIjG3vFir9
1W0YJ1J6fZbIDuSvhn6iOp/W1WxJfzts6NctZCDXw115stIX3qCAguSzEVqUtu0m
6HfqCB3U1d9VDgMNjibxFQF2yCAM8P9HN/TehZppFBw1f+cc+LrOe5/rNTFMCi58
MxHBetiQxaA0X27wkXWt82L4sEqxeeI5cpQCeIxzJIammoZWZzU9VLY/Nj8T4oFY
lv1NvHLYTRkPLmmZrNUplW6qqfvINJ3aDCAmArDrIq8Yc3WLaDrSdxr8X9Rq3uEX
dSa79o+D4DGz1JMd4IQ9T62jLNLl0iH102qlXAntCdMsMKyysouT1AziAlyNa0/h
vMgP6WZKbiSxeRj1gzdXEQla5Ge6xEN3DxWAMv35vdFqI8p2klMxVSgbSy/oE3Fg
uumCwl0cija1WjliW8vJUBoboVniy96cyM0CYPF0+Ll5CA5bl34=
=CTkG
-----END PGP SIGNATURE-----

--------------MGWgr6kJVAM47Fs84d56pYbd--


From xen-devel-bounces@lists.xenproject.org Wed Apr 30 01:00:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 30 Apr 2025 01:00:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.973273.1361429 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9vns-0004af-0K; Wed, 30 Apr 2025 01:00:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 973273.1361429; Wed, 30 Apr 2025 00:59: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 1u9vnr-0004aY-U0; Wed, 30 Apr 2025 00:59:59 +0000
Received: by outflank-mailman (input) for mailman id 973273;
 Wed, 30 Apr 2025 00:59:59 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=JBcp=XQ=gmail.com=jandryuk@srs-se1.protection.inumbo.net>)
 id 1u9vnr-0004aS-6T
 for xen-devel@lists.xenproject.org; Wed, 30 Apr 2025 00:59:59 +0000
Received: from mail-yw1-x112f.google.com (mail-yw1-x112f.google.com
 [2607:f8b0:4864:20::112f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6f0c7f9f-255e-11f0-9eb4-5ba50f476ded;
 Wed, 30 Apr 2025 02:59:57 +0200 (CEST)
Received: by mail-yw1-x112f.google.com with SMTP id
 00721157ae682-707d3c12574so3608677b3.1
 for <xen-devel@lists.xenproject.org>; Tue, 29 Apr 2025 17:59:57 -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: 6f0c7f9f-255e-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1745974796; x=1746579596; 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=acOH5nfbZ+d3+OyynxWnsBin2PkLpg8dVfdF6VR2ZxA=;
        b=FpxItR3Jlyp2eNBX0uKx65pELgj3gbwQ/U5vv67yejLiIRgvZZFa05gcE67dJNPgVe
         XISZT2Ogee4tTEHp0XlNJnHFqhMCpjGLolFaBbTL9CW8zEvCjTN13+103wIiDStkz6eE
         6QtMLrxKCUJLs/JlpZ/7fgPGjFytN2J9FAYZEphuIl37iPD5cs00O99SPBF2hRNqZw0o
         w4QXx9/FcdTNOci/jgZ8Bacb/0vn/L0Ite7dhktRKTPENOzoy6SMfW6IxRuNb9Gixj3y
         IIvTJfDBNuHguXCVTFcN//93DpkilAiwhnnw4fUxDNV8pDIsJ7ohcwY61Xj4bNV1inE9
         VGvg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745974796; x=1746579596;
        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=acOH5nfbZ+d3+OyynxWnsBin2PkLpg8dVfdF6VR2ZxA=;
        b=C4j0xU5fYbEaQIs1OQF3uDN9Nm6bjf+5GFC8OmB9jNjglv24nNnUd2DhnkhqdFm3Jj
         HIdraONmSqxLXqUjl8+oW/KeYavPQGLWhUO31gcnzl0oolGf+eWVxHJrlgnxEPJXTIH8
         F0ZFZlfim1eRhK1wIicp9qd4Og7uX+gX5oX0VKwzvq/jVfN3IrASqNZZAKlWrgUFXUW5
         Zmn5QhI2KHVO8cRxpYugetpkVvkK8xz1OqN68YGhi0csWRfz5aTS3i9GitH59uCJ9hKO
         mLKTFSk2ZjrcvOUQaqA3z0bPPjLG/ounlUm4haQfkN6rcF16Ei5S6ICJQpq6ir+vUQWa
         XRCg==
X-Forwarded-Encrypted: i=1; AJvYcCVoXpvuiQZ1dsRFrxIVuCJRuuIl9qdpkeQkVkPgRKgOgRYhBCiQaLHjo4my1294+ySkCFKdheIKUoA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyzKMBdFOPuMXLX9RwFhwBiQR+8RvmgAHivp68AWio3sPFm9BKk
	3S0FNEunF72A3yX7pjTSRcSU1/9t98ne4TvS7bUF3JHyoDORrj4EnLFT/0VAqz8higTiDUFdNqV
	B1dfNMrKTKbniZyu46HOtAB3YAnXlwDNj
X-Gm-Gg: ASbGncsY7VutucfsQwdwag7jy9W4HM8ANCUzWA1hWsyqrt9Mh51Ryc0EQ8B55IW+Ody
	ENme00YE51xelzPVW5c42yBY6YT4RcKY8iWbRWg+LjJ1YRzpySBwFjPt/I+tlAFRc7FE/2zIPyk
	PyleBfIrDH89NK7aXj3SVG8NwTCRsnyg==
X-Google-Smtp-Source: AGHT+IHnLrZmkSmjRrOPN6hq9H6IGVw9X2TtGhUvckF3sgIARHuGKzAdUJ11nvZxmrrSMWH/4LBeBvsNfFdUlqK1qRE=
X-Received: by 2002:a05:690c:748a:b0:708:7099:c544 with SMTP id
 00721157ae682-708ad0a1d07mr12938207b3.8.1745974796230; Tue, 29 Apr 2025
 17:59:56 -0700 (PDT)
MIME-Version: 1.0
References: <ZO0WrR5J0xuwDIxW@mail-itl> <ZTUuRj6e5x5xFVqb@mail-itl>
 <ZgGjf3hpLHXXtb8z@mail-itl> <0f8c0e27-e60d-4e64-bc8a-6cb407c67ab2@xen.org>
 <ZlpTwbmDjNLkCNgH@mail-itl> <aAjgGKRAW95BnTiK@mail-itl>
In-Reply-To: <aAjgGKRAW95BnTiK@mail-itl>
From: Jason Andryuk <jandryuk@gmail.com>
Date: Tue, 29 Apr 2025 20:59:45 -0400
X-Gm-Features: ATxdqUF_jNDd0mbtrCs0Oy_iFD5PTwFKJLBa-4O38Q5Cb4cRi8GuUKEKNGdjwRg
Message-ID: <CAKf6xpu7=2O96XK88WL02c-4po3qX-4P4i=2JbD2=o2JcM+_EQ@mail.gmail.com>
Subject: Re: NULL pointer dereference in xenbus_thread->...
To: =?UTF-8?Q?Marek_Marczykowski=2DG=C3=B3recki?= <marmarek@invisiblethingslab.com>
Cc: Julien Grall <julien@xen.org>, xen-devel <xen-devel@lists.xenproject.org>, 
	Juergen Gross <jgross@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Marek,

On Wed, Apr 23, 2025 at 8:42=E2=80=AFAM Marek Marczykowski-G=C3=B3recki
<marmarek@invisiblethingslab.com> wrote:
>
> On Sat, Jun 01, 2024 at 12:48:33AM +0200, Marek Marczykowski-G=C3=B3recki=
 wrote:
> > On Tue, Mar 26, 2024 at 11:00:50AM +0000, Julien Grall wrote:
> > > Hi Marek,
> > >
> > > +Juergen for visibility
> > >
> > > When sending a bug report, I would suggest to CC relevant people as
> > > otherwise it can get lost (not may people monitors Xen devel if they =
are not
> > > CCed).
> > >
> > > Cheers,
> > >
> > > On 25/03/2024 16:17, Marek Marczykowski-G=C3=B3recki wrote:
> > > > On Sun, Oct 22, 2023 at 04:14:30PM +0200, Marek Marczykowski-G=C3=
=B3recki wrote:
> > > > > On Mon, Aug 28, 2023 at 11:50:36PM +0200, Marek Marczykowski-G=C3=
=B3recki wrote:
> > > > > > Hi,
> > > > > >
> > > > > > I've noticed in Qubes's CI failure like this:
> > > > > >
> > > > > > [  871.271292] BUG: kernel NULL pointer dereference, address: 0=
000000000000000
> > > > > > [  871.275290] #PF: supervisor read access in kernel mode
> > > > > > [  871.277282] #PF: error_code(0x0000) - not-present page
> > > > > > [  871.279182] PGD 106fdb067 P4D 106fdb067 PUD 106fdc067 PMD 0
> > > > > > [  871.281071] Oops: 0000 [#1] PREEMPT SMP NOPTI
> > > > > > [  871.282698] CPU: 1 PID: 28 Comm: xenbus Not tainted 6.1.43-1=
.qubes.fc37.x86_64 #1
> > > > > > [  871.285222] Hardware name: QEMU Standard PC (i440FX + PIIX, =
1996), BIOS rel-1.16.0-0-gd239552-rebuilt.opensuse.org 04/01/2014
> > > > > > [  871.288883] RIP: e030:__wake_up_common+0x4c/0x180
> > > > > > [  871.292838] Code: 24 0c 89 4c 24 08 4d 85 c9 74 0a 41 f6 01 =
04 0f 85 a3 00 00 00 48 8b 43 08 4c 8d 40 e8 48 83 c3 08 49 8d 40 18 48 39 =
c3 74 5b <49> 8b 40 18 31 ed 4c 8d 70 e8 45 8b 28 41 f6 c5 04 75 5f 49 8b 4=
0
> > > > > > [  871.299776] RSP: e02b:ffffc900400f7e10 EFLAGS: 00010082
> > > > > > [  871.301656] RAX: 0000000000000000 RBX: ffff88810541ce98 RCX:=
 0000000000000000
> > > > > > [  871.304255] RDX: 0000000000000001 RSI: 0000000000000003 RDI:=
 ffff88810541ce90
> > > > > > [  871.306714] RBP: ffffc900400f0280 R08: ffffffffffffffe8 R09:=
 ffffc900400f7e68
> > > > > > [  871.309937] R10: 0000000000007ff0 R11: ffff888100ad3000 R12:=
 ffffc900400f7e68
> > > > > > [  871.312326] R13: 0000000000000000 R14: 0000000000000000 R15:=
 0000000000000000
> > > > > > [  871.314647] FS:  0000000000000000(0000) GS:ffff88813ff00000(=
0000) knlGS:0000000000000000
> > > > > > [  871.317677] CS:  10000e030 DS: 0000 ES: 0000 CR0: 0000000080=
050033
> > > > > > [  871.319644] CR2: 0000000000000000 CR3: 00000001067fe000 CR4:=
 0000000000040660
> > > > > > [  871.321973] Call Trace:
> > > > > > [  871.322782]  <TASK>
> > > > > > [  871.323494]  ? show_trace_log_lvl+0x1d3/0x2ef
> > > > > > [  871.324901]  ? show_trace_log_lvl+0x1d3/0x2ef
> > > > > > [  871.326310]  ? show_trace_log_lvl+0x1d3/0x2ef
> > > > > > [  871.327721]  ? __wake_up_common_lock+0x82/0xd0
> > > > > > [  871.329147]  ? __die_body.cold+0x8/0xd
> > > > > > [  871.330378]  ? page_fault_oops+0x163/0x1a0
> > > > > > [  871.331691]  ? exc_page_fault+0x70/0x170
> > > > > > [  871.332946]  ? asm_exc_page_fault+0x22/0x30
> > > > > > [  871.334454]  ? __wake_up_common+0x4c/0x180
> > > > > > [  871.335777]  __wake_up_common_lock+0x82/0xd0
> > > > > > [  871.337183]  ? process_writes+0x240/0x240
> > > > > > [  871.338461]  process_msg+0x18e/0x2f0
> > > > > > [  871.339627]  xenbus_thread+0x165/0x1c0
> > > > > > [  871.340830]  ? cpuusage_read+0x10/0x10
> > > > > > [  871.342032]  kthread+0xe9/0x110
> > > > > > [  871.343317]  ? kthread_complete_and_exit+0x20/0x20
> > > > > > [  871.345020]  ret_from_fork+0x22/0x30
> > > > > > [  871.346239]  </TASK>
> > > > > > [  871.347060] Modules linked in: snd_hda_codec_generic ledtrig=
_audio snd_hda_intel snd_intel_dspcfg snd_intel_sdw_acpi snd_hda_codec snd_=
hda_core snd_hwdep snd_seq snd_seq_device joydev snd_pcm intel_rapl_msr ppd=
ev intel_rapl_common snd_timer pcspkr e1000e snd soundcore i2c_piix4 parpor=
t_pc parport loop fuse xenfs dm_crypt crct10dif_pclmul crc32_pclmul crc32c_=
intel polyval_clmulni polyval_generic floppy ghash_clmulni_intel sha512_sss=
e3 serio_raw virtio_scsi virtio_console bochs xhci_pci xhci_pci_renesas xhc=
i_hcd qemu_fw_cfg drm_vram_helper drm_ttm_helper ttm ata_generic pata_acpi =
xen_privcmd xen_pciback xen_blkback xen_gntalloc xen_gntdev xen_evtchn scsi=
_dh_rdac scsi_dh_emc scsi_dh_alua uinput dm_multipath
> > > > > > [  871.368892] CR2: 0000000000000000
> > > > > > [  871.370160] ---[ end trace 0000000000000000 ]---
> > > > > > [  871.371719] RIP: e030:__wake_up_common+0x4c/0x180
> > > > > > [  871.373273] Code: 24 0c 89 4c 24 08 4d 85 c9 74 0a 41 f6 01 =
04 0f 85 a3 00 00 00 48 8b 43 08 4c 8d 40 e8 48 83 c3 08 49 8d 40 18 48 39 =
c3 74 5b <49> 8b 40 18 31 ed 4c 8d 70 e8 45 8b 28 41 f6 c5 04 75 5f 49 8b 4=
0
> > > > > > [  871.379866] RSP: e02b:ffffc900400f7e10 EFLAGS: 00010082
> > > > > > [  871.381689] RAX: 0000000000000000 RBX: ffff88810541ce98 RCX:=
 0000000000000000
> > > > > > [  871.383971] RDX: 0000000000000001 RSI: 0000000000000003 RDI:=
 ffff88810541ce90
> > > > > > [  871.386235] RBP: ffffc900400f0280 R08: ffffffffffffffe8 R09:=
 ffffc900400f7e68
> > > > > > [  871.388521] R10: 0000000000007ff0 R11: ffff888100ad3000 R12:=
 ffffc900400f7e68
> > > > > > [  871.390789] R13: 0000000000000000 R14: 0000000000000000 R15:=
 0000000000000000
> > > > > > [  871.393101] FS:  0000000000000000(0000) GS:ffff88813ff00000(=
0000) knlGS:0000000000000000
> > > > > > [  871.395671] CS:  10000e030 DS: 0000 ES: 0000 CR0: 0000000080=
050033
> > > > > > [  871.397863] CR2: 0000000000000000 CR3: 00000001067fe000 CR4:=
 0000000000040660
> > > > > > [  871.400441] Kernel panic - not syncing: Fatal exception
> > > > > > [  871.402171] Kernel Offset: disabled
> > > > > > (XEN) Hardware Dom0 crashed: rebooting machine in 5 seconds.
> > > > > >
> > > > > > It isn't the first time I see similar crash, but I can't really
> > > > > > reproduce it reliably. Restarted test usually passes.
> > > > > > Note this is Xen nested in KVM, so it could very well be some o=
ddity
> > > > > > about nested virt, although looking at the stack trace, it's un=
likely
> > > > > > and more likely some race condition hit only on slower system.
> > > > >
> > > > > Recently I've got the same crash on a real system in domU too. An=
d also
> > > > > on nested on newer kernel 6.1.57 (here it happened in dom0). So, =
this is
> > > > > still an issue and affects not only nested case :/
> > > > >
> > > > > > Unfortunately I don't have symbols for this kernel handy, but t=
here is a
> > > > > > single wake_up() call in process_writes(), so it shouldn't be a=
n issue.
> > > > > >
> > > > > > Any ideas?
> > > > > >
> > > > > > Full log at https://openqa.qubes-os.org/tests/80779/logfile?fil=
ename=3Dserial0.txt
> > > > >
> > > > > More links at https://github.com/QubesOS/qubes-issues/issues/8638=
,
> > > > > including more recent stack trace.
> > > >
> > > > Happens on 6.1.75 too (new stack trace I've added to the issue abov=
e,
> > > > but it's pretty similar).
> >
> > Recently I've got a report from another user about similar issue, on
> > 6.6.29 this time. I also still encounter this issue once a month or so,
> > but the user claims they get it much more often:
> > https://github.com/QubesOS/qubes-issues/issues/8638#issuecomment-213541=
9896
> > The extra conditions reported by the user are:
> > - old AMD system (KGPE-D16 with Opteron 6282 SE) requiring
> >   `spec-ctrl=3Dibpb-entry=3Dno-pv` to remain usable
> > - Whonix domU, which has a bunch of sysctl parameters changed, listed
> >   at:
> >   - https://github.com/Kicksecure/security-misc
> >   - https://github.com/Kicksecure/security-misc/blob/master/usr/lib/sys=
ctl.d/990-security-misc.conf
> >   (unsure which are relevant, maybe `vm.swappiness=3D1`?)
>
> I've got some more report confirming it's still happening on Linux
> 6.12.18. Is there anything I can do to help fixing this? Maybe ask users
> to enable some extra logging?

Have you been able to capture a crash with debug symbols and run it
through scripts/decode_stacktrace.sh?

I'm curious what process_msg+0x18e/0x2f0 is.  process_writes() has a
direct call to wake_up(), but process_msg() calling req->cb(req) may
be xs_wake_up() which is a thin wrapper over wake_up().

They make me wonder if req has been free()ed and at least partially
zero-ed, but it still has wake_up() called.  The call stack here is
reminiscent of the one here
https://lore.kernel.org/xen-devel/Z_lJTyVipJJEpWg2@mail-itl/ and the
unexpected value there is 0.

I haven't actually figured out a scenario where req would be kfree()ed
early.  But the handling of kfree(req) being split between
process_msg/writes() and xs_wait_for_reply() makes me a little uneasy.

Regards,
Jason


From xen-devel-bounces@lists.xenproject.org Wed Apr 30 02:17:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 30 Apr 2025 02:17:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.973286.1361440 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9x0i-0006os-10; Wed, 30 Apr 2025 02:17:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 973286.1361440; Wed, 30 Apr 2025 02: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 1u9x0h-0006ol-UG; Wed, 30 Apr 2025 02:17:19 +0000
Received: by outflank-mailman (input) for mailman id 973286;
 Wed, 30 Apr 2025 02:17: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=mYFu=XQ=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1u9x0g-0006of-Jz
 for xen-devel@lists.xenproject.org; Wed, 30 Apr 2025 02:17:18 +0000
Received: from EUR05-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur05on20609.outbound.protection.outlook.com
 [2a01:111:f403:2613::609])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3c568720-2569-11f0-9eb4-5ba50f476ded;
 Wed, 30 Apr 2025 04:17:16 +0200 (CEST)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by DB9PR03MB7290.eurprd03.prod.outlook.com
 (2603:10a6:10:222::7) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.29; Wed, 30 Apr
 2025 02:17:14 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e%3]) with mapi id 15.20.8678.028; Wed, 30 Apr 2025
 02:17: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: 3c568720-2569-11f0-9eb4-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=qL+CrOB6mqXP1vydzuu2QJznC0YQYguisndu57db/ZmAftcAPwz2tXzujHOYBzRTFwlUFE/P6balGGfffE9DNgfOcg6AThUwAQtSRDJJ3FD7tNlkNZhSuX58UQ9M+XBxknH2SqTvm5UjEm+KL65OgT53rd69HHDcZK4+L9zyrg8GGXU8oT5SBfacgRi3ESVvqw1uLGdY4F7SHB3RLw1MamlqqPLo+Fo9CSCGWt3RA+fM3sS28piicUCMzXePVIWgt5SFRiyq/MGNLN6XuWW92YkrpCrdCKIu5ovfO6GD4W3CApRMOUnPf388Glb4xjMwQhfsMrF9FQexYSrlAg5D1g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=qlWiEDl3v0ISJea4AfslNIvfr6IR2IR3TkfekhZFVsQ=;
 b=IK1nUCksUdamNwSJHySeIdjFwcsXIJ+owXEjR5WLnLynPpGsGSNWplnMk3b2GHujxJR3Xhl1If4QllfpVFUmX/CL6uf+5Hd0irmHtAqYlG6RCaR9DwrDWrfwIxEzyTEw8/5sx52Nr3g2BJt2yBuxWbUPYi0UXOoiLo5e0nJJper9OuSNpVI7/LixdQ6ZktOGWNlD7dG0Pi3vUHx4ffZViEFd14pBuMJGSBWcoDRbxypzMQeezHaVsR+LOJArypO/lc52XqYWzPrZFAMrKt9ll+iY/ianTEKVptQezGHPkZtJPoB1eFRjIu6/6LY9rXnEPTQi8ZVvRDyxKHrDUvoMpQ==
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=qlWiEDl3v0ISJea4AfslNIvfr6IR2IR3TkfekhZFVsQ=;
 b=dNOifEFuaHcAB1RYjUzp7tI+OAdWgeLDHvzVDtmQfjgCnvGQshKs4Z5/oFsFVSunMRxH3AEQor6tnn+2d9eOvmbma0D3jGKOhdzmAvAsl2ENxjFs00qu8epZ0kXTRXZMbiDT8o0bDV3oPYJ2dHjLLKOlNGNUnY9K/XiRZx3KQBdHNV77g4zKIfStix67LrK8FtqHZa1AyMmn66fTV7jqPQbOs/gXonXs37D04sHWQUI6/JtS547XtCQKgKXeo0qPj6skWif8PxylFsTu3omaeVupMvdKNF+Wz+yNP784Xc22RKwtZZZtaNtAXrv1IoFhkBdaLNYfqNlbCzUDXymUaQ==
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>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Jan Beulich
	<jbeulich@suse.com>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>, Bertrand
 Marquis <bertrand.marquis@arm.com>, Dario Faggioli <dfaggioli@suse.com>,
	Juergen Gross <jgross@suse.com>, George Dunlap <gwd@xenproject.org>
Subject: Re: [RFC PATCH v2] xen: add libafl-qemu fuzzer support
Thread-Topic: [RFC PATCH v2] xen: add libafl-qemu fuzzer support
Thread-Index: AQHblUI7lWJ91U/YVk+TK2sT0KKY9g==
Date: Wed, 30 Apr 2025 02:17:13 +0000
Message-ID: <87cycue6l3.fsf@epam.com>
References: <20250315003544.1101488-1-volodymyr_babchuk@epam.com>
	<5d519ffd-8747-4367-b92f-01c20a483e72@xen.org>
In-Reply-To: <5d519ffd-8747-4367-b92f-01c20a483e72@xen.org> (Julien Grall's
	message of "Fri, 21 Mar 2025 23:31:24 +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_|DB9PR03MB7290:EE_
x-ms-office365-filtering-correlation-id: e76e3a7b-5627-4964-e6e8-08dd878d1f10
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|366016|376014|7416014|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?u22AOjNNWQ2+xNWuMweXGqU5yFomvqLQ/5YZ8KjYB9Pd+m8ZkS9cqH43mR?=
 =?iso-8859-1?Q?HbuumFU/uPdPQ+iUXthZ8t+hOAcF4LN+ehwtXvOKOpvWESCY6TdyA9SpMU?=
 =?iso-8859-1?Q?CADoa951ElsTDKJBchSU8TFQmZRSiUqNXTs6UUYxQAh0SSSCUrzwQVr7Ka?=
 =?iso-8859-1?Q?jjaZRJC/sDnDimOoITiLYU53iQewPOLU8A3mvbp96V0kHhJE31tjD3qch7?=
 =?iso-8859-1?Q?HnEtTm+M1KqhWgOp2GeL1hK4ODtQ9uoOMM8tVf89DZDnPMfyymVZQ+0TCl?=
 =?iso-8859-1?Q?zsU6lpq7RN8TU2MD6qz9bPjAlc3zB0HSKUUI1n1WvqskPfJD1jSY13ipBp?=
 =?iso-8859-1?Q?YAaBvAWFIjIGVSYmDDlvUJrttm/cjcAO+jv4Zxy59BmB1gf0HcvLc/jlJG?=
 =?iso-8859-1?Q?uykpN+F8VT1bFcWHh9DyzOZUA+oe5RqK7ioo0aduUO9z2k0558d3NtRFyB?=
 =?iso-8859-1?Q?uIDSJE7emATKe+FV/SRs4phWthxHemkDY/TEehrV9NBVfh3CUDr2vOZNRe?=
 =?iso-8859-1?Q?GDQvhhaSo+Fc2pyMaVv6epok4j9gLAR+emkPrPUbLBZnQl+qvu4R6/ScEq?=
 =?iso-8859-1?Q?n/XugHHlg7DWm5KH2yz2ZpYAjMNQdXjIBqKNMZ+7tzUiMf02FDuvtE3Xdd?=
 =?iso-8859-1?Q?EOebHCwXgcIYPbfIvvjkkhGhyA4tLeMWHoKeRKuWzaO4j/yA2f/S6Sz2Dz?=
 =?iso-8859-1?Q?3aYSJBV/DLtiAtop1q1hKYf/Jzga5VIKaICM2hiuDxGRlkEXCKRNlWhSsG?=
 =?iso-8859-1?Q?/2ZlHKxDe4CFkQWBX86CZAGHALcuF/tG0mwnhBwf8UXTkkaOUG89GiXzxy?=
 =?iso-8859-1?Q?bCLnLHA04hhYfQfmvyT5YzJuJzTMbS5mXNDGHNx/QVd0LkB/y6JBjjzcrU?=
 =?iso-8859-1?Q?fnuAlO/RA+ometorsZq78MpVqswywdMdPDNr8CSgZQpz9uE53mo6+a0Zn5?=
 =?iso-8859-1?Q?Y9OSwgPkw7jT4i7DbkNM2bUIyq7AtvaURfmjmQueYdQkB1O1xpWFk43RPm?=
 =?iso-8859-1?Q?10eXLtY9QIbkkgjiQcuFKhHSc+OQJaxnnFPm+jq5FQpkUI+KbMOnQZg7aS?=
 =?iso-8859-1?Q?SyZkN8wLDCrzxvQpmGWrY8JZP7E6n8/bz751OUKEtj2jN+CpNAZq8PQEj4?=
 =?iso-8859-1?Q?+YTTxAN81P7/XQMnlUTp5+dgmm0lG7k8BaadN3b2b7+YkhM8XoFki41Ama?=
 =?iso-8859-1?Q?bF343vYoJJ1uIQiTnx+8JS5rVyreC8IUxYetLrjDOIUCFitAKzg+NKR6wD?=
 =?iso-8859-1?Q?9CTsClCVC16ztYy4KFi44ay5IZOd75qrRovG1dEwDodfMmEGfUyD1cfB8N?=
 =?iso-8859-1?Q?aQsh7G9BEbvCQL25vSLdBZ4+GPPFiNTecdji1673OfcNScedBe3cqGjbJF?=
 =?iso-8859-1?Q?sjBaP9C7LFAZSPQKNG29r9YlNbaXYUe/kyoB4fOwabXyv9zxH6MJKcItkw?=
 =?iso-8859-1?Q?T98JiJ4w+lCtoVpthNNj1rfsJ3lpKlCWf2ZAfias9gYlyQP1KB63n+msv9?=
 =?iso-8859-1?Q?VK/+PpXQlAY+aNNgToQJqnzYbYF5XV+tL88zMvD5tyKruaYCDXpAv7x/dH?=
 =?iso-8859-1?Q?SJZFMBo=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)(7416014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?BzwxegM//GbWTUhUwLUSFI9vniUtKGFFItP3SlYgFFus59pe3P3n9U3Lc8?=
 =?iso-8859-1?Q?DAmT0xYrWah7zB/VEJDXgD55WpkAMKh1GCkMiTQdRhE0vUWrc+zWN2tqsN?=
 =?iso-8859-1?Q?IraCelUejModtoVSYVeVUYo53Mcvs1+qrNjMWHA8MfXhvGSQrL+Y1Te7/U?=
 =?iso-8859-1?Q?PvlF5N/M+svgTV/lH/khFqhVUN64Pf8w85hRcIX6ZkA9kdw3L2kvuhx7CI?=
 =?iso-8859-1?Q?rlNubDuiPYT7lkTAEyCmpy6Vxo0x4wAUEQ2iN9BqrKCd2Swl4MK/tqJHK6?=
 =?iso-8859-1?Q?dH3yiyrmleyoU7SA/kt4BzJBAryPbpnu6Xa9PrUitF0gxXuL3/6LGMp6+1?=
 =?iso-8859-1?Q?+tW92KBTG6MAEJjx2yqULVay9IdsXtTJroIC9XA76NU6YE00rVob6ylEK4?=
 =?iso-8859-1?Q?jTRUhjIqIfgRJ3Tzl3giQibyybIraBTNbMShluyOxaAD9dr4BJh4O1DYPx?=
 =?iso-8859-1?Q?ZnfzSzoMmsiT10HAgc2ekFwicZL2coqs7KZJkGRmqw0+JSSeEdqPMNjhRa?=
 =?iso-8859-1?Q?sugBxNbljJgU3tmBlV1KrqYSbuwSrzi/zC5mdHrMDTM5muwKd10R/d4ECK?=
 =?iso-8859-1?Q?EzDf3aoD5eBdCIoQ1C0KcH+5jzeKKqKhqvZP8XcWrIHR/ju0vMSvAV2Dv7?=
 =?iso-8859-1?Q?iGtcJaiGsy4/k2b/DMLsCpukX9uHyB6e+7HvP+LjtEDE6Er/dz7kse7sKV?=
 =?iso-8859-1?Q?uZcHpcBQ9mfSdi9QZpTCLhk6Igpz33UlBoPXo3iZi3l4iOhtwEfvU4WpkL?=
 =?iso-8859-1?Q?VkDe1Pp8n9vJYhjTLjCq+SUGUwObzXy3+F9NpgIKc/12O2eoxB4Ex9OAYA?=
 =?iso-8859-1?Q?KRFBymjkbFIXU66Z3v1yThjWeDKihlVJZrZUG93VfqVQ8TxCEBxEcWXNIG?=
 =?iso-8859-1?Q?imdXApCySCKKfrBLLWLbyr0DgY+5XlaiKS/SpyNTqB+MwFuwBeLESyWIvZ?=
 =?iso-8859-1?Q?DJrdwE6DWKjIOOSun91M1vrdn37nSswOSdI826pYffyQQpKgQZ/7h4IuqL?=
 =?iso-8859-1?Q?NxR41Xdb/e8JG9d4z3YxtanuVIhu0CGaAEtL0BHu3vsgO67yVpvj5PfDGl?=
 =?iso-8859-1?Q?aJ+epVjMZpucaqny7DFQ+bSsKAMa9qiGKAqoMnslrIKkZyJA41BDMp+TeM?=
 =?iso-8859-1?Q?tBgJ8Kjn7Dgsh6fOyMpiihU9p2QNq8cFsMgJh8bTRWVM69yYrEhFu/QlLX?=
 =?iso-8859-1?Q?p5xC3EiDolFPrGhz1DPtfoNQYu/sW7v/+KZ9wTJwm1lWxLV8DowkBM6U8g?=
 =?iso-8859-1?Q?IIuVFgmcNbDZXJRyLl0TBSoGqaY6SHM5MJr0SywxTu1xymo8FTZRUZTvIS?=
 =?iso-8859-1?Q?jRY8u4lvOpR7PDcVP/hj4QEfbLC4mDeoIWVqBlHcry/s3OhWNC59K/rQ82?=
 =?iso-8859-1?Q?KQbg7iVMofdqftn+5V0pPZhOhaB4YGp7hGyu0OJDC5JFuJ4kpMG65MyFuL?=
 =?iso-8859-1?Q?Qg+Q0ntCRHFQAnQLbIUCkg6FIg8XTz/OgYfhC8oY/xmNtlZLwZC5HLObkJ?=
 =?iso-8859-1?Q?ZkMn98OcimG20utyYpV/qGivDpLgrGdZSuFjqQgwyBLh0CXCCT5JhV/m2K?=
 =?iso-8859-1?Q?FM0Yh17Sq9b8rD7HKnfZWgCaJjGwYl1M2aysSQJOmXuIgs2X7X02Q42bbI?=
 =?iso-8859-1?Q?qCm+2afBdMDn81R2T9TvvPO5fYU2JWhDBSRXZNdZcryHy8xiRSYhsyAg?=
 =?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: e76e3a7b-5627-4964-e6e8-08dd878d1f10
X-MS-Exchange-CrossTenant-originalarrivaltime: 30 Apr 2025 02:17:13.7371
 (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: woOxFXPjkJeSoBXFDbc7LIhLf2xAXqpiAbz7LXzpMsLm2fWOFzD0XlYjzTAWgxuyUj5Ml+PYb4Sqxzx5sDEGc6MedrV2b1JTCsVu5XrHs88=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR03MB7290


Hi Julien,

Julien Grall <julien@xen.org> writes:

[...]

>> diff --git a/xen/arch/arm/include/asm/libafl_qemu.h b/xen/arch/arm/inclu=
de/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
>
> Is this defined by libafl or an internal decision?

It is defined by libafl

>
> [...]
>
>> 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 @@
>
> Missing license. Also, is this file taken from somewhere?
>

I add MIT license, as libafl is dual licensed under Apache-2 and
MIT. This file is based on libafl_qemu [1]

>> +#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
>
> No-one seems to use STATIC_CHECKS? Is this intended?

I used this file as is... But I'll rework this part.

>> +
>> +#define LIBAFL_SYNC_EXIT_OPCODE 0x66f23a0f
>> +#define LIBAFL_BACKDOOR_OPCODE 0x44f23a0f
>
> Are the opcode valid for arm32? If not, they should be protected with
> #ifdef CONFIG_ARM_64.
>

It is valid even for x86_64. They use the same opcode for x86_64, arm,
aarch64 and riscv.

[...]

>> +
>> +#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"						\
>
> Can we store the action directly in x0 (same for the other argunments
> below)? This would avoid to clobber two registers (See smccc.h as an
> example).

Yes, this part bothers me also. I'll try to rework it to be more
efficient.


[...]

>> +
>> +libafl_word libafl_qemu_start_virt(void       *buf_vaddr,
>> +                                            libafl_word max_len) {
>
> What coding style is this file meant to use?

Well, LibAFL people is very lax in their coding style. I copied this
file as is, but probably it should be tidied up and minimized.


[...]

>> +void lqprintf(const char *fmt, ...) {
>
> I am not sure I understand the value of lqprinf(). Why can't we use
> the console? When is this meant to be used?

This is alternative way to output something. It skips all the
abstractions around console and outputs straight to stdout. At least,
this is a nice way to check that communication with the fuzzer is
working.

>> +  va_list args;
>> +  int res;
>> +  va_start(args, fmt);
>> +  res =3D vsnprintf(_lqprintf_buffer, LIBAFL_QEMU_PRINTF_MAX_SIZE, fmt,=
 args);
>> +  va_end(args);
>
> What if lqprintf() is called concurrently?
>

I'll add a spinlock.

[...]

>>     void call_psci_cpu_off(void)
>>   {
>> +#ifdef CONFIG_LIBAFL_QEMU_FUZZER_PASS_BLOCKING
>> +    libafl_qemu_end(LIBAFL_QEMU_END_OK);
>> +#endif
>
> I am a bit confused with this call. For a first, this cannot be
> reached from a VM (or even dom0). Then, even if it is reached,
> shouldn't we allow the test continue while other pCPUs are running?

Yes, looks like this particular call is not accessible by a dom0. I'll
remove it.

> That said, the call to QEMU is not PSCI related. So shouldn't this be
> called from the callers (same applies to all the changes in PSCI)?

Purpose of fuzzing to cover as much code paths as possible. So it is
natural to put this as late as possible. I also reworked changes to
sched/core.c in accordance to this. I.e. moved fuzzer_on_block() calls
as late as possible.

>
>> +
>>       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 9043414290..55eb132568 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
>
> This Kconfig is only defined on Arm but you are using in common
> code. Even if this can't be supported right now, shouldn't this be
> defined in common code?

Yes, I am going to move it to the common code, but will it be fine to
have "depends on ARM_64" in the global ./Kconfig.debug for a time being?

>
>> +#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 *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 think this and all the changes in sched/core need a comment
> explaning why we want to stop the fuzzing.

I introduced fuzzer_on_block() function and put the following comment
for it:

/*
 * Conditional success
 *
 * Sometimes a fuzzer might make Xen to do something that prevents
 * from returning to the caller: reboot or turn off the machine, block
 * calling vCPU, crash a domain, etc. Depending on fuzzing goal this
 * may be a valid behavior, but as control is not returned to the
 * fuzzing harness, it can't tell the fuzzer about success, so we need
 * to do this ourselves.
 */

Will it be enough? Or do you want to have a comment before each call to fuz=
zer_on_block()?


[1] https://github.com/AFLplusplus/LibAFL/blob/main/libafl_qemu/runtime/lib=
afl_qemu_defs.h

--=20
WBR, Volodymyr=


From xen-devel-bounces@lists.xenproject.org Wed Apr 30 04:21:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 30 Apr 2025 04:21:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.973302.1361450 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1u9ywT-0006Ql-PB; Wed, 30 Apr 2025 04:21:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 973302.1361450; Wed, 30 Apr 2025 04: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 1u9ywT-0006Qe-MQ; Wed, 30 Apr 2025 04:21:05 +0000
Received: by outflank-mailman (input) for mailman id 973302;
 Wed, 30 Apr 2025 04:21: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=DO++=XQ=outlook.com=mhklinux@srs-se1.protection.inumbo.net>)
 id 1u9ywS-0006QY-Fl
 for xen-devel@lists.xenproject.org; Wed, 30 Apr 2025 04:21:04 +0000
Received: from SJ2PR03CU002.outbound.protection.outlook.com
 (mail-westusazolkn190130001.outbound.protection.outlook.com
 [2a01:111:f403:d000::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 84e025b4-257a-11f0-9eb4-5ba50f476ded;
 Wed, 30 Apr 2025 06:21:01 +0200 (CEST)
Received: from SN6PR02MB4157.namprd02.prod.outlook.com (2603:10b6:805:33::23)
 by CY8PR02MB9428.namprd02.prod.outlook.com (2603:10b6:930:75::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8699.18; Wed, 30 Apr
 2025 04:20:54 +0000
Received: from SN6PR02MB4157.namprd02.prod.outlook.com
 ([fe80::cedd:1e64:8f61:b9df]) by SN6PR02MB4157.namprd02.prod.outlook.com
 ([fe80::cedd:1e64:8f61:b9df%3]) with mapi id 15.20.8699.008; Wed, 30 Apr 2025
 04:20:54 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 84e025b4-257a-11f0-9eb4-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ga/E4WGXqv5N4wpBc8DzychM63nQINi3PIZyQhvHEa/DI9rN/3dze5jz+be4ovRww5u7oV93YGi2/72Sz/v4GhJuYuG1Yxdk4vg9qGfOiAJqSGv/tamywScYyFaAyAJWWWe8+xE6gh3JhEuyB/RAWWoNz4GcxeGJbcqFOoWCtiHoWR5FJNXKbUafO9rUf/3A8r4Vdm4QujcxJOkUgMP2OSAmV2PB24uvvXFAhFeQBTojWVg0lfJ2MpNVv0YCPU/e+ngshY7cjd6AfzrRQ2enHaZ2y787IrXA8/gCVQzkOe/DPXoT3zyW0/8YYGnLZQn84Ltm8sJeYXJ7ZNYjJSHMmQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=dvK2r+/hEf2JsEW/4ID2HtZg7/lC0WNw/mRBGzmJ9UI=;
 b=HHSaZX2FdcEfRpDkg+44rRHuksrqoKqCQVU4akcJXqYupuuu8NeIAFCo2x5WDP3sMG7XuM+RBx2rk2fLzoVMmsiIBqrp/spZE0PkZbXctGsadAUn2YF/9xJVKY1YoOKmKqcBVVXfdAvtwpE0q1cqA19VUz7YK3ag+gUktPqn9wty8CXZc18Sr5rrwmKY2Mw3miOv7gv2w6rdwQaRP4v0ENP6V8K14QrSUHw1c1fhfla4r5seHFMMzHpV9BO7MrF7kKCU0eTexEdv5wQBlQY7HJNaznSaVG6bSTr/KtcfM6ijohzADpOx7p0t2Rebew4kXdk1Wj1yyKuS676JLToDYw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none;
 dkim=none; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=dvK2r+/hEf2JsEW/4ID2HtZg7/lC0WNw/mRBGzmJ9UI=;
 b=s1LPyTtzZMFRmWOY43AU9AHEdyANDTA2OH+M60JwjcHqAulz897g+WPHljm3SWLHlWD0DeZ5K/wncSS2kUtNYtjYI2ugYq/CuppAJUqbqXrzy7m/33EwkwATwHm2p+Lz3HYtKIiq1yS36yn4b88GL3g7aM049VGivZpb0IF7vU++ten7/7aB4rSvR5cL8pQCx/Dxr7HN51+xw2+ZXyxdXG+AP5pnM5c7hbL65j9yvB1nzOe9k3GFGXCUhfb+eNaJgoHWL7Rf6SiZ7QeLfJqoiGEuB/xAPexGd4Etmzysf292N3/HpjnSVN1EZW/J0jj5R54qnZ9vY85UJW0PkZh2Xw==
From: Michael Kelley <mhklinux@outlook.com>
To: =?iso-8859-1?Q?Ilpo_J=E4rvinen?= <ilpo.jarvinen@linux.intel.com>, "Xin Li
 (Intel)" <xin@zytor.com>
CC: LKML <linux-kernel@vger.kernel.org>, "kvm@vger.kernel.org"
	<kvm@vger.kernel.org>, "linux-perf-users@vger.kernel.org"
	<linux-perf-users@vger.kernel.org>, "linux-hyperv@vger.kernel.org"
	<linux-hyperv@vger.kernel.org>, "virtualization@lists.linux.dev"
	<virtualization@lists.linux.dev>, "linux-pm@vger.kernel.org"
	<linux-pm@vger.kernel.org>, "linux-edac@vger.kernel.org"
	<linux-edac@vger.kernel.org>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>, "linux-acpi@vger.kernel.org"
	<linux-acpi@vger.kernel.org>, "linux-hwmon@vger.kernel.org"
	<linux-hwmon@vger.kernel.org>, Netdev <netdev@vger.kernel.org>,
	"platform-driver-x86@vger.kernel.org" <platform-driver-x86@vger.kernel.org>,
	"tglx@linutronix.de" <tglx@linutronix.de>, "mingo@redhat.com"
	<mingo@redhat.com>, "bp@alien8.de" <bp@alien8.de>,
	"dave.hansen@linux.intel.com" <dave.hansen@linux.intel.com>, "x86@kernel.org"
	<x86@kernel.org>, "hpa@zytor.com" <hpa@zytor.com>, "acme@kernel.org"
	<acme@kernel.org>, "jgross@suse.com" <jgross@suse.com>,
	"andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
	"peterz@infradead.org" <peterz@infradead.org>, "namhyung@kernel.org"
	<namhyung@kernel.org>, "mark.rutland@arm.com" <mark.rutland@arm.com>,
	"alexander.shishkin@linux.intel.com" <alexander.shishkin@linux.intel.com>,
	"jolsa@kernel.org" <jolsa@kernel.org>, "irogers@google.com"
	<irogers@google.com>, "adrian.hunter@intel.com" <adrian.hunter@intel.com>,
	"kan.liang@linux.intel.com" <kan.liang@linux.intel.com>, "wei.liu@kernel.org"
	<wei.liu@kernel.org>, "ajay.kaher@broadcom.com" <ajay.kaher@broadcom.com>,
	"bcm-kernel-feedback-list@broadcom.com"
	<bcm-kernel-feedback-list@broadcom.com>, "tony.luck@intel.com"
	<tony.luck@intel.com>, "pbonzini@redhat.com" <pbonzini@redhat.com>,
	"vkuznets@redhat.com" <vkuznets@redhat.com>, "seanjc@google.com"
	<seanjc@google.com>, "luto@kernel.org" <luto@kernel.org>,
	"boris.ostrovsky@oracle.com" <boris.ostrovsky@oracle.com>,
	"kys@microsoft.com" <kys@microsoft.com>, "haiyangz@microsoft.com"
	<haiyangz@microsoft.com>, "decui@microsoft.com" <decui@microsoft.com>,
	"dapeng1.mi@linux.intel.com" <dapeng1.mi@linux.intel.com>
Subject: RE: [PATCH v4 01/15] x86/msr: Add missing includes of <asm/msr.h>
Thread-Topic: [PATCH v4 01/15] x86/msr: Add missing includes of <asm/msr.h>
Thread-Index: AQHbt1dCxRX1SSJBLkyUN2kSfV4ndLO6aEuAgAE1BbA=
Date: Wed, 30 Apr 2025 04:20:53 +0000
Message-ID:
 <SN6PR02MB4157EA2E3B827141588DA310D4832@SN6PR02MB4157.namprd02.prod.outlook.com>
References: <20250427092027.1598740-1-xin@zytor.com>
 <20250427092027.1598740-2-xin@zytor.com>
 <a1917b37-e41e-d303-749b-4007cda01605@linux.intel.com>
In-Reply-To: <a1917b37-e41e-d303-749b-4007cda01605@linux.intel.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: SN6PR02MB4157:EE_|CY8PR02MB9428:EE_
x-ms-office365-filtering-correlation-id: 3d0d210a-0c2d-4037-26cd-08dd879e65cb
x-ms-exchange-slblob-mailprops:
 70qbaZjg4mvbis83qL2U5WvEmRMBS6Og9W/3014Us/uuwmhN2UMLRJLUTlmuqN5h9ehr8uc6w6voiES8QxIGpN0rfCSOM9sOOHGLjemzx5vQcTGO902AiVqPz2A3JQjnNpxe+TmFCiX45epvb1/3E/S3dfmB2IMc6Sb5ndzUEmhxssKtmEvp14NWRaHnFrw0WfyKXLFWZHE9acl4TNTQEsEu2HU3f0UKjU/UX+YJwX4k3uWTUqE0DZHWP69nVlSBLjWeBqPlZ6K1qpn77jaYLfB3Bz0dHAjXzcVxdtqb6xdBDnbSc0yNWRaBrkzWWu+H254LnHV+pHFD/oi59WsjdoBkyG6V20uf+TedjnyD3uFNl6uy6HCeWUb3GCb+Lb9FedlS9/k31aK78fViFEM9TLpwgQO5hAzNa+K5Web9rzREs0PzO5c6XoOeyaNpFknp3pT136KOQpfNix+EqD3O/JhBn7qKAgHbmirv3yzuoEtWGcn68EyMRjFfsGfLhZfEkseUv0Az7QRsqcwv3Q9HNGBWa3Xw5TjT7IVQn6byPyF/rDDHJXJb+Mwu4mQKJbokv5eZrLVW2qFYwPw7+8vJGo55OGPMzuDsYDZBugm826HQBw+0h8GCwcvrySV2YrD8kcpgITqSZ7kSsqNgyf9Jnbw4iT7xLfzQeVeRqwCe6RH/9SRKDXNJ4nD+ryVAdkLeYUb7GEDe/R3Z7K5AeleYFv+p4EhZtZdU3bI6e82Z4MHFIA+tdk5pzQ==
x-microsoft-antispam:
 BCL:0;ARA:14566002|12121999004|19110799003|461199028|15080799006|8062599003|7072599006|8060799006|102099032|3412199025|440099028|19111999003|21061999003|12071999003;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?sAHcTpNlk86YDWmdOjpjnVGfqswYWqUmVVV01MSP5d+6CLugqu9DDRrRpW?=
 =?iso-8859-1?Q?uZZA1rl6GPfrNusZXaarGueIpwi8Q5ayKtp626EpHtCKvNCh/z9omy7Ip1?=
 =?iso-8859-1?Q?dNi9Vl1FcWAtvxkWHSdNEE7Hfxv/zNDKmPnqFIaBWnb/8w/M+Fo8/DhAkD?=
 =?iso-8859-1?Q?x1kOGshNgwS6F7jQSuf9Pa6AIACpt8WCaHG0f8XKmVWymesSmiBRtrbPmX?=
 =?iso-8859-1?Q?pjRhOfEe7fvI4MbaaeYiDrXKKltX9xDawlEiP2muaG4tDot/vad4XOzDV5?=
 =?iso-8859-1?Q?oDxyzf5WbsSzQeTrF9DR//PpQaO0MC6cX1Y0WDZ07zGJoAe1cCs8tiixaI?=
 =?iso-8859-1?Q?WgmHuWq+o2li88q4iq+9jlPtL3AEJCJMERnHfaHoPV6NY0awa6rwtI8DYp?=
 =?iso-8859-1?Q?wVmiG0VKOYaiVszrc1JHCnb2wUZAORWUwRsJBANUc7z945TjgjkIx6fNRx?=
 =?iso-8859-1?Q?PyRkALMTUxKeqcnJM7Jy/VymuYrnNoPHNm6h59YFI28VA69J36aUTug/Y1?=
 =?iso-8859-1?Q?hbDJKl9jFRUm6WrQbFvZN6omiAVR8PpCUWRljjjhgLCVIo5ta0QcDlPXjs?=
 =?iso-8859-1?Q?rsfmnL1o6skGx0vaa06y33p25QviLyrlqdev616BmETRtJ1YiGTwuD4GSo?=
 =?iso-8859-1?Q?LaueymHkPhouAVIGnKzPyS9hqFmkql7N53RaaAM5lJkf9xtQpExfrmq5zd?=
 =?iso-8859-1?Q?1jeqo+wfO83sVMoF7ha+nOa34GqzbtcJa2sEckN/90lbL5fRzgK/CsADRi?=
 =?iso-8859-1?Q?vHaMVScui45ypd0/T+g+xcnRqNdiJNhsC4E5Qz2EDI7+66pyxiTXigV2ds?=
 =?iso-8859-1?Q?w6FNILVJljSPTqKp/8NoUgVtHYPs7DzFYWyoH8PultihFHpn9giSm+ddPP?=
 =?iso-8859-1?Q?s4sst1NTjetFCCwqpp+GtZ8XOQ31E3s9GKHbN1lcGDhleXtsAMvPpw9fp+?=
 =?iso-8859-1?Q?84PamiJ43E7lAfpHbeSbwtZ78XHQh2a1aBRb1DfP9WtmymvkZ+5hiQ+Jtt?=
 =?iso-8859-1?Q?exCggCOz3vT5JSUMvjl9vC9i5WgIh+VrOo4/bWg/4zeaXIJBUa7u+Txtk8?=
 =?iso-8859-1?Q?3Ct8MUCtP3mg0j0gqB6TTFxY3IZHSrJ+uDIuepJd+8BqnErUTzv2cdODhU?=
 =?iso-8859-1?Q?AxL+0XrpyWwdc3zBYWl1cu/OmIkj8gdyAh2cKKG1ljZFKy0eefh/nD9N2Y?=
 =?iso-8859-1?Q?WBq1xgdNiTFaecZQGenBafpOQalkmcrrn8IkFuPwY3Ct0rvfhqzrSxVw3v?=
 =?iso-8859-1?Q?hscSj88xP6N7FqaOLiwt1fWf9jRQTG9RH0QKSkH4Q=3D?=
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?46i1sKkGUf2Kl0zhlolABqRmtZzPSJWRjAt3BFRy8ECcgF+mQjobIr8cFQ?=
 =?iso-8859-1?Q?+xL9oK/IIbRvPY+mKZFTmaj2v7xwVnxmp5FLnoEHtjFro3dm6V664MBU+3?=
 =?iso-8859-1?Q?+wPEZkUsza3xlJCNL9TMoEJDpLke0A+mmjcDkB4kRERzec3xK39migWixJ?=
 =?iso-8859-1?Q?pg5WLKFxzHTPGcw1w3nXH9OHxmF3MHrXV2GSMo5xDw+ZR674xPhR3HKi+3?=
 =?iso-8859-1?Q?byXeWGntA73Y90gvA/KzHl27/g3QhxIbumHYJx02+nRDrPELJs5pOgfKhg?=
 =?iso-8859-1?Q?8as9Bh0H2ZTBKlto5EOzn9Sj+k9RlFIvp2h+TdByzwptC7+7jFk2Mmx9hf?=
 =?iso-8859-1?Q?ahypKdmrVptvlkMPgCJyizYP5ZAqlk3abvjfVjqDqlb6jZneUcJcyEByX9?=
 =?iso-8859-1?Q?1Pb+zpJtWKqj2u7rSUjduaK4jqrfZ/a2iY5G28cGyaUlHkIwZmU2kj/gYq?=
 =?iso-8859-1?Q?CEbNY10bJ8JbiO1eRntgpbuCj/c2VX5g+p6o6S5kvJ2iZ1TKI+8rTXyYEw?=
 =?iso-8859-1?Q?sfgLmQWoIhX/O/4kPtMMUS0GqX8pdwPHqalj3PlCd2XwMLG2Un7beBj5u6?=
 =?iso-8859-1?Q?fVNgjaQy/9+r1Nrkaqoh8nTd4pi3Y71sGpRLDhBN9tfZ9DHynMkc9gLNXV?=
 =?iso-8859-1?Q?ZLoTxKuHu2PCJuvV73F7LJNO1AN9ctVA66T9Y5CZv37eA0wxjOnJAXy9L9?=
 =?iso-8859-1?Q?+X2JXWnztCyw8Oau0IG/Db/UMzkXXXQ0ChVqnz40TvV/MlvlzKHhgegih3?=
 =?iso-8859-1?Q?qjTKwx2HkgXvMOHanw5rUpwOiTDWV0uyc+kAoOeUmZu68Uri9XOPO7XVd4?=
 =?iso-8859-1?Q?MF1FFTnKeanbFYR7K0SEvJr7gOTHl6rF0n4hb4A7olHugY6esyZjj//LmC?=
 =?iso-8859-1?Q?WuRnkqxBF7voOdjtfGN/YqMqHJ8m50DqyqoTnWtFNE05mxqFNmW/oxghUb?=
 =?iso-8859-1?Q?/IbP705YFTxIZyHYnEw+ClfPc9B+HvOSxdAVPVGbiZwWqp16xrAN9fxEe4?=
 =?iso-8859-1?Q?Z1cSzpkkI4v4KfI53O1bcxI7Nx/8xDZZVf7wE6+D2s4FGibs3bQMknxKaf?=
 =?iso-8859-1?Q?N4jVzDAQb32d4v0nmFp+Pj7NVGYtGk391AOzFilb844Vu9pgakBFAiHVjK?=
 =?iso-8859-1?Q?vxivww+0PJrUeh/POy7j7pEyrr/rYsJvl/6omeOiM9K79pBUxEHyBXaW4m?=
 =?iso-8859-1?Q?PEGHpafia27LjTH2/m1MbQ3fyjNt7F+AkithQGsohmUxpLpSmgPdAmdaw5?=
 =?iso-8859-1?Q?D7NbEddypJrHYEzE0DKSxbU0+RQIMRlu4i+2edvB0=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: SN6PR02MB4157.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000
X-MS-Exchange-CrossTenant-Network-Message-Id: 3d0d210a-0c2d-4037-26cd-08dd879e65cb
X-MS-Exchange-CrossTenant-originalarrivaltime: 30 Apr 2025 04:20:53.8258
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa
X-MS-Exchange-CrossTenant-rms-persistedconsumerorg: 00000000-0000-0000-0000-000000000000
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR02MB9428

From: Ilpo J=E4rvinen <ilpo.jarvinen@linux.intel.com> Sent: Tuesday, April =
29, 2025 2:46 AM
>=20
> On Sun, 27 Apr 2025, Xin Li (Intel) wrote:
>=20
> > For some reason, there are some TSC-related functions in the MSR
> > header even though there is a tsc.h header.
> >
> > To facilitate the relocation of rdtsc{,_ordered}() from <asm/msr.h>
> > to <asm/tsc.h> and to eventually eliminate the inclusion of
> > <asm/msr.h> in <asm/tsc.h>, add <asm/msr.h> to the source files that
> > reference definitions from <asm/msr.h>.
> >
> > Signed-off-by: Xin Li (Intel) <xin@zytor.com>
> > Acked-by: Dave Hansen <dave.hansen@linux.intel.com>
> > Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
> > ---
> >
> > Change in v4:
> > *) Add missing includes in a different patch (Ilpo J=E4rvinen).
> > *) Add all necessary direct inclusions for msr.h (Ilpo J=E4rvinen).
> >
> > Change in v3:
> > * Add a problem statement to the changelog (Dave Hansen).
> > ---
> >  arch/x86/events/msr.c                                         | 3 +++
> >  arch/x86/events/perf_event.h                                  | 1 +
> >  arch/x86/events/probe.c                                       | 2 ++
>=20
> Under arch/x86/events/ a few files seem to be missing the include?
>=20
> >  arch/x86/hyperv/ivm.c                                         | 1 +
>=20
> Also under hyperv/ not all files are covered but I'm a bit hesitant to
> suggest a change there since I'm not sure if they (hypervisors) do
> something special w.r.t. msr.

I've worked on the Hyper-V code in Linux for 8 years or so, first as
a Microsoft employee, and more recently as a retiree. :-) I'm not
aware of anything special w.r.t. MSR access for Hyper-V guests.
All the normal Linux code for accessing MSRs just works. Hyper-V
*does* provide a set of synthetic MSRs that are unique to
Hyper-V, but they are also accessed using normal Linux code. Of
course, at runtime the access to these synthetic MSRs always
traps to the hypervisor.

I'm planning to apply Xin Li's patch set and make sure nothing
breaks for Hyper-V guests, and particularly when running as an
SEV-SNP or TDX guest. Hopefully I can do that by early next week
at the latest.

Michael

>=20
> >  arch/x86/include/asm/fred.h                                   | 1 +
> >  arch/x86/include/asm/microcode.h                              | 2 ++
> >  arch/x86/include/asm/mshyperv.h                               | 1 +
> >  arch/x86/include/asm/msr.h                                    | 1 +
> >  arch/x86/include/asm/suspend_32.h                             | 1 +
> >  arch/x86/include/asm/suspend_64.h                             | 1 +
> >  arch/x86/include/asm/switch_to.h                              | 2 ++
>=20
> arch/x86/kernel/acpi/ ?
> acrh/x86/kernel/cet.c ?
> ...
>=20
> There seem to be quite many under arch/x86/ that still don't have it, I
> didn't list them all as there were so many after this point.
>=20
> But that's up to x86 maintainers how throughout they want you to be.
>=20
> This command may be helpful to exclude the files which already have the
> include so you can focus on the ones that may still be missing it:
>=20
> git grep -l -e rdmsr -e wrmsr | grep -v -f <(git grep -l -e 'asm/msr\.h')
>=20
> >  arch/x86/kernel/cpu/resctrl/pseudo_lock.c                     | 1 +
> >  arch/x86/kernel/fpu/xstate.h                                  | 1 +
> >  arch/x86/kernel/hpet.c                                        | 1 +
> >  arch/x86/kernel/process_64.c                                  | 1 +
> >  arch/x86/kernel/trace_clock.c                                 | 2 +-
> >  arch/x86/kernel/tsc_sync.c                                    | 1 +
> >  arch/x86/lib/kaslr.c                                          | 2 +-
> >  arch/x86/mm/mem_encrypt_identity.c                            | 1 +
> >  arch/x86/realmode/init.c                                      | 1 +
> >  drivers/acpi/acpi_extlog.c                                    | 1 +
> >  drivers/acpi/processor_perflib.c                              | 1 +
> >  drivers/acpi/processor_throttling.c                           | 3 ++-
> >  drivers/char/agp/nvidia-agp.c                                 | 1 +
> >  drivers/cpufreq/amd-pstate-ut.c                               | 2 ++
> >  drivers/crypto/ccp/sev-dev.c                                  | 1 +
> >  drivers/edac/amd64_edac.c                                     | 1 +
> >  drivers/edac/ie31200_edac.c                                   | 1 +
> >  drivers/edac/mce_amd.c                                        | 1 +
> >  drivers/hwmon/hwmon-vid.c                                     | 4 ++++
> >  drivers/idle/intel_idle.c                                     | 1 +
> >  drivers/misc/cs5535-mfgpt.c                                   | 1 +
> >  drivers/net/vmxnet3/vmxnet3_drv.c                             | 4 ++++
> >  drivers/platform/x86/intel/ifs/core.c                         | 1 +
> >  drivers/platform/x86/intel/ifs/load.c                         | 1 +
> >  drivers/platform/x86/intel/ifs/runtest.c                      | 1 +
> >  drivers/platform/x86/intel/pmc/cnp.c                          | 1 +
> >  drivers/platform/x86/intel/speed_select_if/isst_if_common.c   | 1 +
> >  drivers/platform/x86/intel/speed_select_if/isst_if_mbox_msr.c | 1 +
> >  drivers/platform/x86/intel/speed_select_if/isst_tpmi_core.c   | 1 +
> >  drivers/platform/x86/intel/turbo_max_3.c                      | 1 +
> >  .../platform/x86/intel/uncore-frequency/uncore-frequency.c    | 1 +
> >  drivers/powercap/intel_rapl_common.c                          | 1 +
> >  drivers/powercap/intel_rapl_msr.c                             | 1 +
> >  .../thermal/intel/int340x_thermal/processor_thermal_device.c  | 1 +
> >  drivers/thermal/intel/intel_tcc_cooling.c                     | 1 +
> >  drivers/thermal/intel/x86_pkg_temp_thermal.c                  | 1 +
> >  drivers/video/fbdev/geode/display_gx.c                        | 1 +
> >  drivers/video/fbdev/geode/gxfb_core.c                         | 1 +
> >  drivers/video/fbdev/geode/lxfb_ops.c                          | 1 +
>=20
> Under drivers/ this looked pretty complete. Nice work.
>=20
> Acked-by: Ilpo J=E4rvinen <ilpo.jarvinen@linux.intel.com> # for pdx86
>=20
> I also noticed these files might not need to include msr.h:
>=20
> drivers/cpufreq/elanfreq.c
> drivers/cpufreq/sc520_freq.c
> drivers/accel/habanalabs/common/habanalabs_ioctl.c
>=20
> ...so if you want, you may consider optionally adding a cleanup patch to
> remove the include from them.
>=20
> > --- a/drivers/video/fbdev/geode/gxfb_core.c
> > +++ b/drivers/video/fbdev/geode/gxfb_core.c
> > @@ -30,6 +30,7 @@
> >  #include <linux/cs5535.h>
> >
> >  #include <asm/olpc.h>
> > +#include <asm/msr.h>
>=20
> In wrong order.
> >
> >  #include "gxfb.h"
>=20
> --
>  i.


From xen-devel-bounces@lists.xenproject.org Wed Apr 30 06:08:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 30 Apr 2025 06:08:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.973314.1361460 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uA0cC-00033q-5U; Wed, 30 Apr 2025 06:08:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 973314.1361460; Wed, 30 Apr 2025 06:08:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uA0cC-00033j-2K; Wed, 30 Apr 2025 06:08:16 +0000
Received: by outflank-mailman (input) for mailman id 973314;
 Wed, 30 Apr 2025 06:08:14 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=BSD2=XQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uA0cA-00033d-5w
 for xen-devel@lists.xenproject.org; Wed, 30 Apr 2025 06:08:14 +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 7c7ee91e-2589-11f0-9ffb-bf95429c2676;
 Wed, 30 Apr 2025 08:08:08 +0200 (CEST)
Received: by mail-ej1-x62b.google.com with SMTP id
 a640c23a62f3a-ac2ab99e16eso1492521566b.0
 for <xen-devel@lists.xenproject.org>; Tue, 29 Apr 2025 23:08:07 -0700 (PDT)
Received: from [10.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-ace6e41b80fsm879602466b.9.2025.04.29.23.08.06
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 29 Apr 2025 23:08: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: 7c7ee91e-2589-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745993287; x=1746598087; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=mQZVuljIUcHxMiVEORoKzitdgT4s298uHQ8Ty6t2KTA=;
        b=PkejfPkFBgY1h3HtOcz2fVzGiZZcMn4Z2vazHSPTtWSxw8Y8Um+/dzLas8MclUnd7Q
         Y+w/UJYVK86hdryYEABB80AeUOuxE2aqnbqZrnaKz0AkmYJDlH4n9j6W3xyY9TthXvf6
         WCKznErTjuj7FV6RXxIHlsgTZdaxO4It9/niuQqJIrgTZdZm4u78YzgYp53+P20VRGcH
         DuKWobTmDVCrTWbnyZUMNElCXdQk3DqHYc6bNIJ3rEFm08kC4eAigfnnOatNS0tgPbK5
         fEJvngtPjDlNYgOOw4P5p/VW0xJAhDolrCCFt9K9H1ASXNz24KV9yVURMb498SiukVfe
         F+iw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745993287; x=1746598087;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=mQZVuljIUcHxMiVEORoKzitdgT4s298uHQ8Ty6t2KTA=;
        b=nWE8pP1yKb9FuTOI3Bs4m1s3ixAMJxnzrxXsPoUwmyOeicHNfbIIFC/WRCY9pDpWNe
         FW/xDOvaix5txLdx5dfiSfdiZ3qC/i3dvGJrarqcD/4/dFBGjltAU8kH1lXrTpklem8w
         J7lwcCQ9eTzn8C4Tc6WDXR9Re3XhNbQtQSMkFEUYPJqGKL7AdpBy0YvCu0qCDt8NUQvH
         hYDEhvXUoxezpcmEm5QUMIiByI+SEFPCkC3vGzOKzgqCXCiSL6GtEly1ZVwldZVuUJrs
         0PJ+xs0VUaMmKmMwjmezM7xyAjEgwW1Ao5c4gwJyJAcHQpS9RnN90e1eUAuqhYnYzp60
         K2ng==
X-Forwarded-Encrypted: i=1; AJvYcCXtmc9vzvaW6pCJQjxlx5BrlBK9+lhCLrrntDA/X3B7lqZBPtwsCr+2y423dEoEuuqbMdoVIK3aLIw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwYiL6kK+v6mqBWj9ypTf+/BXD0exWOHavnpV5WGGObErgRtpcw
	lZR/k7mU2xO+vEkkTuKGVCyjOmB8pvFNy+wscGRzAsU+aFjQjtL9jRlifZipAQ==
X-Gm-Gg: ASbGncuIlwTguqPeyFNMoRDv4TG108xd77+BdyNMKPmSM7+SJA7VONUHb+V82drcGWp
	OcCm8aQ2UTUGy9J20Y3nY1DyNPq5cxxPTRwhRVGsxe5xLEJd6GynuNUBueljw+JX0wwBRt9EKIM
	bQJrfRtPoeAQVrQygvczIkmKL2YCqwufZLvXZwgIOw8p7yXc+SzC/siHUYRqlg2ilXme+qXdgQV
	4OUMQ7xXFQ0EEjLLVXG60h3D17OvZggIsfZ9d4ak6OZNmlCnpCJh00Zmn2cHA/CELQ5GG5KRea+
	aL+c4CYj5VE2iIoszs1F9x/9j+CIKsYoj7lpI8onmz1vofwevof93PLtcCSH/1gjhtqpGIyUFAC
	SFaLMP8xtJTT/StpA96y3PRHMCQ==
X-Google-Smtp-Source: AGHT+IFHkcE5qSMZaVPbjH4WX/W2U0DKY3qbqyvrzpNm2W3f+hZFGcURIVFLi+uZiss6ZSwderPwHQ==
X-Received: by 2002:a17:907:1c84:b0:acb:b966:3a7c with SMTP id a640c23a62f3a-acedc733da7mr196961466b.47.1745993287374;
        Tue, 29 Apr 2025 23:08:07 -0700 (PDT)
Message-ID: <2be0b5a8-50ee-4c3c-9299-0f065ac5aa05@suse.com>
Date: Wed, 30 Apr 2025 08:08:05 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 1/3] x86: x86_emulate: address violations of MISRA C
 Rule 19.1
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: victorm.lira@amd.com, Nicola Vetrini <nicola.vetrini@bugseng.com>,
 Federico Serafini <federico.serafini@bugseng.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>, xen-devel@lists.xenproject.org
References: <c694069696dd428bc1719e36c378a573b03f74b9.1745624090.git.victorm.lira@amd.com>
 <914e3157-736a-4890-9c91-e93fcc260bb0@suse.com>
 <alpine.DEB.2.22.394.2504281625240.785180@ubuntu-linux-20-04-desktop>
 <350d447e-7316-4d54-8468-68f78675cc8d@suse.com>
 <alpine.DEB.2.22.394.2504291510120.3879245@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.2504291510120.3879245@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 30.04.2025 00:54, Stefano Stabellini wrote:
> On Tue, 29 Apr 2025, Jan Beulich wrote:
>> On 29.04.2025 03:27, Stefano Stabellini wrote:
>>> On Mon, 28 Apr 2025, Jan Beulich wrote:
>>>> On 26.04.2025 01:42, victorm.lira@amd.com wrote:
>>>>> From: Nicola Vetrini <nicola.vetrini@bugseng.com>
>>>>>
>>>>> Rule 19.1 states: "An object shall not be assigned or copied
>>>>> to an overlapping object". Since the "call" and "compat_call" are
>>>>
>>>> Was this taken from patch 2 without editing?
>>>>
>>>>> --- a/xen/arch/x86/x86_emulate/x86_emulate.c
>>>>> +++ b/xen/arch/x86/x86_emulate/x86_emulate.c
>>>>> @@ -526,9 +526,19 @@ static inline void put_loop_count(
>>>>>           */                                                             \
>>>>>          if ( !amd_like(ctxt) && mode_64bit() && ad_bytes == 4 )         \
>>>>>          {                                                               \
>>>>> +            uint64_t tmp;                                               \
>>>>> +                                                                        \
>>>>>              _regs.r(cx) = 0;                                            \
>>>>> -            if ( extend_si ) _regs.r(si) = _regs.esi;                   \
>>>>> -            if ( extend_di ) _regs.r(di) = _regs.edi;                   \
>>>>> +            if ( extend_si )                                            \
>>>>> +            {                                                           \
>>>>> +                tmp = _regs.esi;                                        \
>>>>> +                _regs.r(si) = tmp;                                      \
>>>>> +            }                                                           \
>>>>> +            if ( extend_di )                                            \
>>>>> +            {                                                           \
>>>>> +                tmp = _regs.edi;                                        \
>>>>> +                _regs.r(di) = tmp;                                      \
>>>>> +            }                                                           \
>>>>
>>>> See commit 7225f13aef03 for how we chose to address similar issues elsewhere
>>>> in the emulator. I think we want to be consistent there. This will then also
>>>> eliminate ...
>>>>
>>>>> @@ -2029,7 +2039,12 @@ x86_emulate(
>>>>>          switch ( op_bytes )
>>>>>          {
>>>>>          case 2: _regs.ax = (int8_t)_regs.ax; break; /* cbw */
>>>>> -        case 4: _regs.r(ax) = (uint32_t)(int16_t)_regs.ax; break; /* cwde */
>>>>> +        case 4:
>>>>> +            {
>>>>> +                uint32_t tmp = (uint32_t)(int16_t)_regs.ax;
>>>>> +                _regs.r(ax) = tmp;
>>>>> +                break; /* cwde */
>>>>> +            }
>>>>
>>>> ... the odd brace placement here, as well as the inconsistency in the types
>>>> you used for the temporary variables (both really could have been unsigned
>>>> int; no need for a fixed-width type).
>>>
>>> Is this what you have in mind?
>>
>> No, and that's also not what the referenced commit did in a similar situation.
>>
>>> --- a/xen/arch/x86/x86_emulate/x86_emulate.c
>>> +++ b/xen/arch/x86/x86_emulate/x86_emulate.c
>>> @@ -527,8 +527,8 @@ static inline void put_loop_count(
>>>          if ( !amd_like(ctxt) && mode_64bit() && ad_bytes == 4 )         \
>>>          {                                                               \
>>>              _regs.r(cx) = 0;                                            \
>>> -            if ( extend_si ) _regs.r(si) = _regs.esi;                   \
>>> -            if ( extend_di ) _regs.r(di) = _regs.edi;                   \
>>> +            if ( extend_si ) _regs.r(si) = (uint64_t)_regs.esi;         \
>>> +            if ( extend_di ) _regs.r(di) = (uint64_t)_regs.edi;         \
>>
>>             if ( extend_si ) _regs.r(si) = (uint32_t)_regs.r(si);       \
>>             if ( extend_di ) _regs.r(di) = (uint32_t)_regs.r(di);       \
>>
>> After all what the rule requires is that we use _the same_ field on both sides.
> 
> I see, thanks Jan. Yes I did try this version and worked as expected.

Except that ...

> --- a/xen/arch/x86/x86_emulate/x86_emulate.c
> +++ b/xen/arch/x86/x86_emulate/x86_emulate.c
> @@ -527,8 +527,8 @@ static inline void put_loop_count(
>          if ( !amd_like(ctxt) && mode_64bit() && ad_bytes == 4 )         \
>          {                                                               \
>              _regs.r(cx) = 0;                                            \
> -            if ( extend_si ) _regs.r(si) = _regs.esi;                   \
> -            if ( extend_di ) _regs.r(di) = _regs.edi;                   \
> +            if ( extend_si ) _regs.r(si) = (uint32_t)_regs.r(si);        \
> +            if ( extend_di ) _regs.r(di) = (uint32_t)_regs.r(di);        \
>          }                                                               \
>          goto complete_insn;                                             \
>      }                                                                   \
> @@ -2029,7 +2029,7 @@ x86_emulate(
>          switch ( op_bytes )
>          {
>          case 2: _regs.ax = (int8_t)_regs.ax; break; /* cbw */
> -        case 4: _regs.r(ax) = (uint32_t)(int16_t)_regs.ax; break; /* cwde */
> +        case 4: _regs.r(ax) = (int16_t)_regs.r(ax); break; /* cwde */

... the change in casts here renders this wrong now, afaict. We'd sign-
extend from 16 to 64 bits, rather than sign-extending to 32 bits and
then zero-extending to 64.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Apr 30 06:16:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 30 Apr 2025 06:16:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.973330.1361469 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uA0kV-0004qk-2q; Wed, 30 Apr 2025 06:16:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 973330.1361469; Wed, 30 Apr 2025 06:16:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uA0kU-0004qd-W3; Wed, 30 Apr 2025 06:16:50 +0000
Received: by outflank-mailman (input) for mailman id 973330;
 Wed, 30 Apr 2025 06:16: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=BSD2=XQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uA0kS-0004qE-UL
 for xen-devel@lists.xenproject.org; Wed, 30 Apr 2025 06:16:48 +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 b2568eec-258a-11f0-9eb4-5ba50f476ded;
 Wed, 30 Apr 2025 08:16:47 +0200 (CEST)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-acbb85ce788so1343211966b.3
 for <xen-devel@lists.xenproject.org>; Tue, 29 Apr 2025 23:16:47 -0700 (PDT)
Received: from [10.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-ace6eda4901sm874417266b.162.2025.04.29.23.16.46
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 29 Apr 2025 23: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: b2568eec-258a-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745993807; x=1746598607; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=vFUKgcgVn98RqqzvpGBxxw5VMYDUI/wcwkHYyHu4Vqk=;
        b=e8B43IHYlS5wwkIS5lYKxWXTUcTckn5IWojhZspn1LeY01WMxAzyluU89EEf7mAwNP
         g7+BmBTG7UKEdw46pn9QfC8pfcBFMeUFQA92j0QIz2tDll+9sjP4e5KIN4aJItqkPKmn
         J0rY5pL/2blqHGijTbXmupiOQOZkRFvaUEwUdX8nIFMa7vOft4bJM4N1UGlOnw9usvZ5
         ccD4FEr9q6vFdnytDwN8b2tBhTL0f37zgkaIn9YkdDKYSJiS79qDZWVy0RjcvPT0CKXt
         e3kD+AYYWywB3tZaTcpiNyW8z71SXgb7P7ZoTFbKy+rf/pSG58rSN88JR/2tvnxZaNiN
         dV6Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745993807; x=1746598607;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=vFUKgcgVn98RqqzvpGBxxw5VMYDUI/wcwkHYyHu4Vqk=;
        b=Awe2fSV9kJvk8pV27QaXykIe6TsK3FHAdtYwfpdwoIDPrsgvlSwxxhvDKJy42IXW4X
         Dz7d85r1Zr2Al3bd7VglJCF1ncdTmM+q3ZCzXkQkHXeEhEwFUfPj+QwuVx620iZVapfH
         Vq8teDWyvOW/iUY8RZqmzGbKtWnTtvqOMWigMB+HUG6aP/N++aKcukbPbKOfKuPmp1Ys
         83Wb0PXbJMhkC4XcApIJ1afGLlNOFtlaFSLgsPRkt4pOz+c2Zj10km3UXePHUwLo/Lwq
         EC8M6C8QVSkKC1AGUu2o8NdNJYiew8n8P/lzWladrpE+fJUHvEgxIiqUS/+To2Rcnm1V
         4Crg==
X-Forwarded-Encrypted: i=1; AJvYcCUGv1KyTLLQKufQ389e+0rDwmXJOVByTu2Qu9G7GM4xHyBzQRxdfmiymxJkavPZ+ccs2pDV3ZK5MPk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzQR9E4QMIJ7QcY6kdoKosfQLBI/mIHrdYS0SSM1DOdY6y1eV7J
	u/B7eYt4OqD8TtEc1laMhpmGvCmn5VbYYsEwttPlGz5h6GTP2QDEuWQ4fpKOtw==
X-Gm-Gg: ASbGncscOd0HHYCEYFuCc9mIC679yjuBDYdA1277vVGecWlMLF5qKkbFScmyW1yjTQ1
	Y4rDpfUaMlKrTQQKEkvAJqERKKCqktFSaTe0lCfwWE7jlispT90Xh5M8K2XVKl2og4FB/VurdwN
	Znro5imNxtydC4HcTgutEQG1oLzw6uGse0n7scranxA0qjC+UtJssjiIqAihLQ5T4APySAkpkLV
	1WFsY4o19Ifn3yIJSzMEt1nLjM1HiabjR4mtvNPsIfjyC2i3z79rreqGWlg6VdstdG2oA/N3cg0
	tMZrFaMDl538ZhaYU8qTSZhOC28542L0sZIleVBGIpe5TdN5sjfuLPCQcD2ph9oL2Z5P4pKXUfB
	2v8kQl7yipImo6SgrsN1/ZqVTgw==
X-Google-Smtp-Source: AGHT+IFU51h7orpp+QOj7+5RduH1Z3k8AAYTEswNsrISN5DjUlf381gOrUEaQHB2l2ZefxZfZtebPQ==
X-Received: by 2002:a17:907:948e:b0:acb:b08c:76ae with SMTP id a640c23a62f3a-acedc5da450mr207919266b.16.1745993807178;
        Tue, 29 Apr 2025 23:16:47 -0700 (PDT)
Message-ID: <eb623b71-f8f5-490c-a793-9185c1ffda9a@suse.com>
Date: Wed, 30 Apr 2025 08:16:45 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 2/3] compat: address violations of MISRA C Rule 19.1
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: victorm.lira@amd.com, Nicola Vetrini <nicola.vetrini@bugseng.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Federico Serafini <federico.serafini@bugseng.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>, xen-devel@lists.xenproject.org
References: <c694069696dd428bc1719e36c378a573b03f74b9.1745624090.git.victorm.lira@amd.com>
 <74b0420ab20fc0204db14c0a1a4a68ed48b25a38.1745624090.git.victorm.lira@amd.com>
 <cb1f8a8f-8834-4610-baab-c53bf5928b0c@suse.com>
 <alpine.DEB.2.22.394.2504281614020.785180@ubuntu-linux-20-04-desktop>
 <dc55282f-f9a1-470b-8126-ca347d44efbc@suse.com>
 <alpine.DEB.2.22.394.2504291501490.3879245@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.2504291501490.3879245@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 30.04.2025 00:02, Stefano Stabellini wrote:
> On Tue, 29 Apr 2025, Jan Beulich wrote:
>> On 29.04.2025 01:21, Stefano Stabellini wrote:
>>> On Mon, 28 Apr 2025, Jan Beulich wrote:
>>>> On 26.04.2025 01:42, victorm.lira@amd.com wrote:
>>>>> From: Nicola Vetrini <nicola.vetrini@bugseng.com>
>>>>>
>>>>> Rule 19.1 states: "An object shall not be assigned or copied
>>>>> to an overlapping object". Since the "call" and "compat_call" are
>>>>> fields of the same union, reading from one member and writing to
>>>>> the other violates the rule, while not causing Undefined Behavior
>>>>> due to their relative sizes. However, a dummy variable is used to
>>>>> address the violation and prevent the future possibility of
>>>>> incurring in UB.
>>>>
>>>> If there is such a concern, ...
>>>>
>>>>> --- a/xen/common/compat/multicall.c
>>>>> +++ b/xen/common/compat/multicall.c
>>>>> @@ -15,8 +15,13 @@ typedef int ret_t;
>>>>>  static inline void xlat_multicall_entry(struct mc_state *mcs)
>>>>>  {
>>>>>      int i;
>>>>> +    xen_ulong_t arg;
>>>>> +
>>>>>      for (i=0; i<6; i++)
>>>>> -        mcs->compat_call.args[i] = mcs->call.args[i];
>>>>> +    {
>>>>> +        arg = mcs->call.args[i];
>>>>> +        mcs->compat_call.args[i] = arg;
>>>>> +    }
>>>>>  }
>>>>
>>>> ... wouldn't it be of concern as well that the alternating parts of
>>>> the union are still accessed in a flip-flop manner? IOW we continue to
>>>> rely on the relative placement properties of the individual array
>>>> elements. To eliminate such a concern, I think the resulting code would
>>>> also want to be correct if iteration was swapped to work downwards.
>>>>
>>>> Also the scope of the temporary could certainly be the loop body rather
>>>> than the entire function.
>>>
>>> Wouldn't be safer to do this then?
>>>
>>> static inline void xlat_multicall_entry(struct mc_state *mcs)
>>> {
>>>     int i;
>>>     xen_ulong_t args[6];
>>>
>>>     for ( i = 0; i < 6; i++ )
>>>     {
>>>         args[i] = mcs->call.args[i];
>>>     }
>>>     for ( i = 0; i < 6; i++ )
>>>     {
>>>         mcs->compat_call.args[i] = args[i];
>>>     }
>>> }
>>>
>>> If you have any specific suggestions I think C code would be easier to
>>> understand than English.
>>
>> Kind of the above, yes, with the further remark below also taken care of.
>> So ...
>>
>>>> I also don't think it needs to be xen_ulong_t,
>>>> but maybe using unsigned int instead wouldn't make a difference in
>>>> generated code.
>>>
>>> Keeping the same type as mcs->call.args[i] would seem more obviously
>>> correct? Not to mention that unsigned long is what we defined as
>>> register type? If we really want to avoid xen_ulong_t, then it should
>>> be uintptr_t?
>>>
>>> We should stick to one type to be used as register type. On ARM, we
>>> defined register_t.
>>
>> ... with both taken into account e.g.:
>>
>>     typeof(mcs->compat_call.args[0]) args[ARRAY_SIZE(mcs->call.args)];
>>
>>     for ( i = 0; i < ARRAY_SIZE(args); i++ )
>>         args[i] = mcs->call.args[i];
>>
>>     memcpy(mcs->compat_call.args, args, sizeof(args));
>>
>> Of course there are variations possible. There also may want to be a
>> BUILD_BUG_ON() to "document" both array sizes match, even if the compat
>> form is auto-generated from the native one.
>>
>> Tangential: As of 2f531c122e95 ("x86: limit number of hypercall parameters
>> to 5") it's kind of bogus that we process 6 array elements here. This even
>> extends to an assertion in hypercall_xlat_continuation() and to some of
>> the handling in hypercall_create_continuation(). I guess I will want to
>> make a patch there, which of course I could make cover the Misra aspect
>> here as well.
> 
> Please do, that would be much appreciated. Thank you!

I already did ["{hyper,multi}call: further limit arguments to just 5"]; all I
need there is an Arm side ack.

> Also thanks for 2f531c122e95.

I fear I don't understand this part. But it probably also doesn't matter much.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Apr 30 06:28:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 30 Apr 2025 06:28:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.973342.1361480 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uA0vI-0006h9-1a; Wed, 30 Apr 2025 06:28:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 973342.1361480; Wed, 30 Apr 2025 06:28: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 1uA0vH-0006h2-Ur; Wed, 30 Apr 2025 06:27:59 +0000
Received: by outflank-mailman (input) for mailman id 973342;
 Wed, 30 Apr 2025 06:27: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=BSD2=XQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uA0vH-0006gt-0s
 for xen-devel@lists.xenproject.org; Wed, 30 Apr 2025 06:27:59 +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 41840e7f-258c-11f0-9eb4-5ba50f476ded;
 Wed, 30 Apr 2025 08:27:57 +0200 (CEST)
Received: by mail-ed1-x531.google.com with SMTP id
 4fb4d7f45d1cf-5f62ef3c383so12548308a12.2
 for <xen-devel@lists.xenproject.org>; Tue, 29 Apr 2025 23:27:57 -0700 (PDT)
Received: from [10.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-ace6ecf9a17sm890289466b.99.2025.04.29.23.27.55
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 29 Apr 2025 23:27:56 -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: 41840e7f-258c-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745994477; x=1746599277; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=1qD8/eC/zZl2V3aqGq7id38qjUXXTHFtyhEwCHL44+k=;
        b=P/RCrkeX1+uorpIDM2hfXf7DE40YVEwiWwHPXGAjRBpJvp4VVeN/6hxySqqv7+mqFf
         iLPlQC9KE8wDhCfNyzHfUcSSdM8XlU8EjB9vFE9zM09eCKvL0TZ3kVaBNUm2wfpCy3AE
         kFuEG1K1339a0juBk/nPAXYHaq1D/I7zQ93XxowrSC9NG0Njp8mQvLws22DYVxPe5INM
         X8zH/CW2CxrtEwAiyoS6FUlZTS5YdLVqG09/49ag79dD0iJvkhKmsfaSPF7z8wjR1fKd
         i1nEKPahRr8ltm2sGOrBHXHo+FdII3GvlGHu0AWNqIL0hZbZ3WHmlNogMNFOWGUQkNZR
         1K4Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745994477; x=1746599277;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=1qD8/eC/zZl2V3aqGq7id38qjUXXTHFtyhEwCHL44+k=;
        b=REi1HjTF1kDHOWQxpZdHzzvuljoQ0MJ0d3/I2L8YZc65EEQeE4evMORyaBzOvL1WuM
         knoR73MQRHrHUIIYcLZAqiXeRq4I2mKHbnqhdHLYFKKDLEI5W8YzN31bYFctwNIrDwyb
         5iOKTSbRzIMk5ZVgzOVCyfNH2B//YSD1qLqn3Y06VY1gefj0taMg5ZU37rM55E7Wi8ci
         yKuUhxxz/fy8e58J2jnIfX8t5kJ+Owiask1P8mINehsi9pH+xg9ejRxfQNFX9t5DF6Kg
         XUQKzT2ttQKA6dckgyyi97ScVTDmhLXkwYsxSwlYJ+WhKutUohyyR/EF3bDZSoOZBkRA
         1ZzA==
X-Forwarded-Encrypted: i=1; AJvYcCWvadb5qpWp8vEWc+eQVd854EobQ4V32Bsa2uPNicndcykLkvAoI7YMqmgN4HhiMyY0Tjy5j9ypzkk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzVTvSGCM3VfOf0jlkLAuNWEcLFtVve2pi1Mj9mrZGOwdqNWhLq
	26qHMv6qYRjNAP7L/Bd30m/AfRrNiZU4aswKueDsvzPEGKiurI1W4aPJaT4nKA==
X-Gm-Gg: ASbGnctwsCUuNdNM46j+EsKnc+GCwBipIVJiB9CrNXM5/DEWsfnXPs1JfI7VXIc2yVB
	z7XSC+T7X8/LJkuC7MDCnFXbs0xJmyA9H4J1DghFKrVd60nEzKzRjLmeZnweCEODyfY7K9nMfCk
	eCEp9tbPookisVstEB7tcAeNA9GkMnTUZ6DkJ0buKy/gxNY0olWU1D9tRXJnb6QEh5ry7Qj/OPI
	LvnS4SWRVWqjQEficG5D2E3HHI5cG+UFlUC9mZsJrUepzaHVuCkTKw/RWFTnjQerUs2ySgTOmt3
	KDUt+jnN6Q4bea0fWfjIlInbw49y+SKaEcl6hOkOG04WmiGw3b+PT9Rlp4u0fgD60UAhWd4CvsH
	a3iBFBa0w8nPQxvi9zGzdTrujTA==
X-Google-Smtp-Source: AGHT+IGue4q2aECjR03a+d+yd0Vbla8JGqM9Y3b0UAPR7VsZH+oxddXv7VbITO36UZvTX5zV55WHEg==
X-Received: by 2002:a17:907:7285:b0:ac3:49f0:4d10 with SMTP id a640c23a62f3a-acee24b4576mr133689366b.38.1745994476828;
        Tue, 29 Apr 2025 23:27:56 -0700 (PDT)
Message-ID: <59bfc389-66c8-4d0f-92e3-c0079a807374@suse.com>
Date: Wed, 30 Apr 2025 08:27:55 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/x86: allow Dom0 PVH to call XENMEM_exchange
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: "Ragiadakou, Xenia" <Xenia.Ragiadakou@amd.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 jason.andryuk@amd.com, agarciav@amd.com, xen-devel@lists.xenproject.org
References: <alpine.DEB.2.22.394.2504251314050.785180@ubuntu-linux-20-04-desktop>
 <19d9aec4-c21a-47a9-9c58-6bfcadbd22e0@suse.com>
 <alpine.DEB.2.22.394.2504281242240.785180@ubuntu-linux-20-04-desktop>
 <06b66971-d8db-456f-8e83-a20ff7df8f5e@suse.com>
 <alpine.DEB.2.22.394.2504291425320.3879245@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.2504291425320.3879245@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 29.04.2025 23:52, Stefano Stabellini wrote:
> On Tue, 29 Apr 2025, Jan Beulich wrote:
>> On 28.04.2025 22:00, Stefano Stabellini wrote:
>>> On Mon, 28 Apr 2025, Jan Beulich wrote:
>>>> On 25.04.2025 22:19, Stefano Stabellini wrote:
>>>>> --- a/xen/arch/x86/mm.c
>>>>> +++ b/xen/arch/x86/mm.c
>>>>> @@ -4401,7 +4401,7 @@ int steal_page(
>>>>>      const struct domain *owner;
>>>>>      int rc;
>>>>>  
>>>>> -    if ( paging_mode_external(d) )
>>>>> +    if ( paging_mode_external(d) && !is_hardware_domain(d) )
>>>>>          return -EOPNOTSUPP;
>>>>>  
>>>>>      /* Grab a reference to make sure the page doesn't change under our feet */
>>>>
>>>> Is this (in particular the code following below here) a safe thing to do
>>>> when we don't properly refcount page references from the P2M, yet? It's
>>>> Dom0, yes, but even there I might see potential security implications (as
>>>> top violating privacy of a guest).
>>>
>>> I don't think I am following, could you please elaborate more? The
>>> change I am proposing is to allow Dom0 to share its own pages to the
>>> co-processor. DomUs are not in the picture. I would be happy to add
>>> further restriction to that effect. Is there something else you have in
>>> mind?
>>
>> Once "shared" with the PSP, how would Xen know that this sharing has stopped?
>> Without knowing, how could it safely give the same page to a DomU later on?
>> ("Safely" in both directions: Without compromising privacy of the DomU and
>> without compromising host safety / security.)
> 
> Why would Xen later assign the same page to a DomU? The page comes
> from the hardware domain, which, as of today, cannot be destroyed. BTW I
> realize it is a bit different, but we have been doing the same thing
> with Dom0 1:1 mapped on ARM since the start of the project.

The life cycle of the page within Dom0 may be such that a need arises to
move it elsewhere (balloon out, grant-transfer, and what not).

>>>>> --- a/xen/common/memory.c
>>>>> +++ b/xen/common/memory.c
>>>>> @@ -794,7 +794,7 @@ static long memory_exchange(XEN_GUEST_HANDLE_PARAM(xen_memory_exchange_t) arg)
>>>>>              rc = guest_physmap_add_page(d, _gfn(gpfn), mfn,
>>>>>                                          exch.out.extent_order) ?: rc;
>>>>>  
>>>>> -            if ( !paging_mode_translate(d) &&
>>>>> +            if ( (!paging_mode_translate(d) || is_hardware_domain(d)) &&
>>>>>                   __copy_mfn_to_guest_offset(exch.out.extent_start,
>>>>>                                              (i << out_chunk_order) + j,
>>>>>                                              mfn) )
>>>>
>>>> Wait, no: A PVH domain (Dom0 or not) can't very well make use of MFNs, can
>>>> it?
>>>
>>> One way or another Dom0 PVH needs to know the MFN to pass it to the
>>> co-processor.
>>
>> I see. That's pretty odd, though. I'm then further concerned of the order of
>> the chunks. At present we're rather lax, in permitting PVH and PV Dom0 the
>> same upper bound. With both CPU and I/O side translation there is, in
>> principle, no reason to permit any kind of contiguity. Of course there's a
>> performance aspect, but that hardly matters in the specific case here. Yet at
>> the same time, once we expose MFNs, contiguity will start mattering as soon
>> as any piece of memory needs to be larger than PAGE_SIZE. Which means it will
>> make tightening of the presently lax handling prone to regressions in this
>> new behavior you're introducing. What chunk size does the PSP driver require?
> 
> I don't know. The memory returned by XENMEM_exchange is contiguous,
> right? Are you worried that Xen cannot allocate the requested amount of
> memory contiguously?

That would be Dom0's problem then. But really for a translated guest the
exchanged chunks being contiguous shouldn't matter, correctness-wise. That is,
within Xen, rather than failing a request, we could choose to retry using
discontiguous chunks (contiguous only in GFN space). Such an (afaict)
otherwise correct change would break your use case, as it would invalidate the
MFN information passed back. (This fallback approach would similarly apply to
other related mem-ops. It's just that during domain creation the tool stack
has its own fallback, so it may not be of much use right now.)

> We have been using this patch for months now and it
> has been working correctly to this day.

Sure, that's a good data point. Yet not a proof of correctness.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Apr 30 06:37:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 30 Apr 2025 06:37:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.973357.1361489 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uA14Y-00006c-T0; Wed, 30 Apr 2025 06:37:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 973357.1361489; Wed, 30 Apr 2025 06:37:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uA14Y-00006V-QM; Wed, 30 Apr 2025 06:37:34 +0000
Received: by outflank-mailman (input) for mailman id 973357;
 Wed, 30 Apr 2025 06:37: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=5DpC=XQ=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1uA14X-00006P-Fg
 for xen-devel@lists.xenproject.org; Wed, 30 Apr 2025 06:37:33 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on2060c.outbound.protection.outlook.com
 [2a01:111:f403:2414::60c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 97204636-258d-11f0-9eb4-5ba50f476ded;
 Wed, 30 Apr 2025 08:37:31 +0200 (CEST)
Received: from DM4PR12MB5277.namprd12.prod.outlook.com (2603:10b6:5:390::7) by
 DS0PR12MB8454.namprd12.prod.outlook.com (2603:10b6:8:15e::10) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.8699.19; Wed, 30 Apr 2025 06:37:28 +0000
Received: from DM4PR12MB5277.namprd12.prod.outlook.com
 ([fe80::9ab:5367:ba51:af6e]) by DM4PR12MB5277.namprd12.prod.outlook.com
 ([fe80::9ab:5367:ba51:af6e%5]) with mapi id 15.20.8699.012; Wed, 30 Apr 2025
 06:37:28 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 97204636-258d-11f0-9eb4-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=JQ7bu0SwWIDOZA0V5T+U8gP9uhA8PZ5uqW3itf+//u6S04MS3ilcMj+BENWhJMp1QfBxuJA1InOj8XsIdOEguP9L5XLLthWINtttm119m/QNCwTX5r6SaqGIsW3y75KKTpdrXBYEdk0E+sUjA55YNqQE6eVga9NdI73glEGPj4QuulhwntAFkmSycE1lhkIepIdq8YwuWWP+gPT+dR+4INTL/bfZGOLntc2v6t7bxUZ4aQfk0cKcRR8Im8zmQrCa/JS/zNn4ZGixx5bpPdyEMsltjT7SpF2XOv4ZRd1P7C1eFTGP9DAQa7vLmsy87BL2c3hrhF7ouo+1MOPKd3JMug==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=N06sIWGoehFMse7vCDApdR4nXa+Gq8fEGZy6VY3ngcY=;
 b=Qd7EqCLD8u4GupS3QeMPf2BQrQS7L35QOIDWQXARPf67cqlyKzdKJMfq5+CT0vwhY0Oul58JSdgBaJvz75UxdnbZBZTK+e5G6gPk30bp62t1YNVT8YhD4NobEBbLcnoGAE+juJDwrZw520LKo3aDS8w8fvgOiszBpGXWN0eu/gjweb0+Hl0NoB2kAZBvKtq71onOYmIk1hNGrNXzIOaCtANpje2QLILoRSvwOpx7ZzhHTBEXAjvTvOzEktXgLkaZIOWtrfWl1KCShUb0DrMzqKG2shT8CcO4oAV7LjJKM0LAWslSlAz5xaVgmUP1o0sxyhKbrsPLJlWXbUGrlmhmcQ==
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=N06sIWGoehFMse7vCDApdR4nXa+Gq8fEGZy6VY3ngcY=;
 b=3Suw8znX04Gp80BKuQOvltLzTT4tFv10AIbeMQ02kkh4kHIV9iQQ52pgkqyJ/T7kxydVNKZKluoT2YQTCw8YClmgdgxAiekdwEwygF7vy1ShBsQO0eBoG8pYPN4utOvAlFP0lQ6OgtEQOZPGEccmbqrE/gVE16iHc+p1UK7PpcM=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <a78219d3-4872-42ff-9588-53a65a6bba74@amd.com>
Date: Wed, 30 Apr 2025 08:37:19 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 1/7] docs/arm: Document Xen booting protocol on Armv8-R
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>
References: <20250429152057.2380536-1-luca.fancellu@arm.com>
 <20250429152057.2380536-2-luca.fancellu@arm.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <20250429152057.2380536-2-luca.fancellu@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR3P281CA0098.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:a1::14) To DM4PR12MB5277.namprd12.prod.outlook.com
 (2603:10b6:5:390::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DM4PR12MB5277:EE_|DS0PR12MB8454:EE_
X-MS-Office365-Filtering-Correlation-Id: ed0307a2-6d24-4cb4-d19a-08dd87b179e2
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?cTh3TEVnVWxVa3p3VklCL20vWUJ3c0xicnVPbEV2V0h6TktYOWZXNDN5bEhR?=
 =?utf-8?B?Z1l5RkJNNDZSZCtTQVBHbVdsQ3REZ1hPOUhhVGxwY3BzWm83Vmg0UFZuTDZL?=
 =?utf-8?B?cDQ5TVhQSzBRa0FZRDYzRHo0aEszMWppTlJ3bnFIa0pxQ1hwSWIxYWVqejFz?=
 =?utf-8?B?b3Zjb1I5anRweWdGMkNWelpqQzlsWC9FQ0pKWU14dXBkSm42eXJoRlZUNzBs?=
 =?utf-8?B?NFNRQzMyUEt2WHIzbzBKNG5FMC9FZkp6NjBTei9ROHNhWVQrV2hlaVRNWVpZ?=
 =?utf-8?B?eXFPSTAxY3JFRXFqblNJcGR0NkVSTmJlUHkxcG1ML0tjNVR0dUJCUzcxaWdW?=
 =?utf-8?B?REFCY001M29WL29IRndOSXlja0N4TG1RMXNwRjhlZjI5d0ZBQW5QVnlkV3hZ?=
 =?utf-8?B?bWhJK2xBa2h3aTFBazgxRm9ldWNFMEl5aWphNytPdTZ5ZjdDZ1YxSVJBWGEv?=
 =?utf-8?B?MnUxbGZ5bDRqYUdLMXkxcGtrcXVQTkdhUTlIU1J2d3Axc1lVN2x0WlNNVzdo?=
 =?utf-8?B?NFY2NUFsTjQrMkhYNkNrcFRxd1V3QUVXcFBQTFg2RXl4QW5VZ3hoektRQ1hn?=
 =?utf-8?B?T29pVVBSUUxNVWhwNzdKMHRGc05Oem4xaW4wamdUemZHUnQ5bFJjdHJhanFZ?=
 =?utf-8?B?SXpNWEpYcytNcGx0VGRuczNWUzZtOGpTVUI0dDRjeFU0UFVxQVlQekQrRk1u?=
 =?utf-8?B?ais5eHdCeCt1RTZkZjVHd0lEWEFQUzQyUjNaRnFldWVLYk1ld3llSDJVTi9E?=
 =?utf-8?B?emRRWTNwRGdjUzRFM0FoNEVwT0FOVEttQ0lPWGpENElNa1NwMlVQakpHR3cr?=
 =?utf-8?B?Sm0rd3hXM0tFTlc3cFFNOStEVlRmRThEYWRDM1ptQ0FJbGFPcHlreW1WSER4?=
 =?utf-8?B?amQ0S2hCL0N0QVE4SGdEQkhYY3BoYWI0MGJ4MldhM0J1RjRJMzQydzAzck1R?=
 =?utf-8?B?SVhCUzU5TFNLVFJQdHpRQTZ4R1NqSDFsa3JCcURFNXZLWFg4WDcvbjMwanJt?=
 =?utf-8?B?VVBrZlVsRERpQmNQNVJQQTl3b25RcG84T292S0gzRzFGT3VHdGNlbTNOTERI?=
 =?utf-8?B?WkI2WWV6dmttaXhwL1RROUFwUkJCdUJ4T3JuakpaNDFxSndROERpMUdMeUtX?=
 =?utf-8?B?TVlsSG90c0FCSk5ZN3BpekNMMEZrRFVKZlJKak13cU4wYW10eEhGQVRuVmRo?=
 =?utf-8?B?WnI4YTB6UVYyVEM0VjZlcGtDUERUdWJhenRRSk1BLzc4YTMweGYwUGNBYXQw?=
 =?utf-8?B?ZXd5L0lvb0cwd1k3dXZlbEFQRFpUd05NVWV0QytjNUtqdmRFZ0VTNFBXM2pv?=
 =?utf-8?B?bU5ra2FpeDZsaU82YzZrcGtpN2dpT1NxYVVYd1lSWmx1N05keFl3V01EVU9B?=
 =?utf-8?B?bTY0ZXFtSGhkK0tmY0xKa1pNaEp5eWNqR1hENkJCWmF5dW9yZ2lHTWxJdmxU?=
 =?utf-8?B?OUFXSjJBVFNQd1ZyMXhqK0FOcTFkdk5mVjh6ZEwrUHFZY1N5cWcvMEMvK1Ux?=
 =?utf-8?B?M09mMDBGZG5rbWpBWFV6WUVZbWJ5L0lLVWx2RGVVdkNrbWZKZzN3K3Iwand6?=
 =?utf-8?B?TGtEdk5zcUZsWGZKdCtzTVRZYU5jN2NuZ1NJUndhZTAwV1ZFdnpyeWdrNUdu?=
 =?utf-8?B?T3NDZE1PY2RLMGNhVFB5OE1hcURrTGVuRG56R2pWdUJBRUorWmUrRzZJTkxv?=
 =?utf-8?B?Y3VNUmdvTWxiRFNjN1FXaWtXNE1FemNPL0NrQ0dpTjdSOUZ3S1QxWlBvNERH?=
 =?utf-8?B?Y2NTQ0J6WFIzN2svYlhFRUdhWW5zNHJOdEVPUHFtZ3F2Zm12UW9BaXN4WW9N?=
 =?utf-8?B?RXByRS9WbWVuUlZSbU5HbEFuT2NLUXNhK1VtczVXUCsxMWpOdUF0SytacjYr?=
 =?utf-8?B?bUJELzF0ME9ZQkZUNW40YzRGUk1VOWhGc3hKTGFEcExjcHR4VnJTcGxUSmcv?=
 =?utf-8?Q?50N+AJLl+JM=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB5277.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?NHVsREJJM215eDNOdG5lQ0dYdXVIOEhNa2c3VTVGUlVPS0NhWjdNTDFzUWxl?=
 =?utf-8?B?ODVzYkZyaHlXRDJadkZ0cUUrY3lsNUpxNXFJdTN6clpxelAzM2FTOFVsMnEy?=
 =?utf-8?B?RUNMaml0VWNXZG5KL0Q2L1lyRU51VlNoZTBibEZZSVZCbjdxdEw0WFBhTjZS?=
 =?utf-8?B?UTRGMkVZUUsxaVUwRWdDOEc1NVJKMExCbFpydTJ2bXFSbkt2ZmN5b0YyVXRP?=
 =?utf-8?B?SHdObEJFLzVycWI4MWxFQU04SmJOTkxieEhYTmNFVXE5LzJRN1BTUk9iOHVo?=
 =?utf-8?B?TzBBbnJyZEZETFgzUVFCL3EyeTRVdzY1ZWZTUFJhVVZ1Z2NWaFYxMVBjTHJx?=
 =?utf-8?B?Z0gxa3VUTWl5b0lGOGlnTWV4QmhXbVlBbWJkcDdMRFd6bkI4bHpFRFBFaTBp?=
 =?utf-8?B?cDYxdHdCd1NjR3VBMTVsbE1adThrT1Q2TDJLSStyU3ZLbU56V1ExMFhUT09U?=
 =?utf-8?B?cWFRSGFYMmhkdW5RVVpBRlJOd1VKdkZpRnR4bkFSWUR5RE8xVVpVYWFNL2Rr?=
 =?utf-8?B?bFpoQ3BjVUI3ak5LeVRFZGtaZEh1allPRTBxRENIVHovYTY1S0V0Rm45M0hL?=
 =?utf-8?B?VDk3SitPNFhFQkNQUUFJODhCdmdjNkhCa2hDQlpKWEpIZkk0ZnB3R1RDcm52?=
 =?utf-8?B?ODRCQlFyK001dUIySXVZcVRadjJUQW12dXIxeUlTVWozMEwvazIwTlhQRW92?=
 =?utf-8?B?Y2VnREIyZ2pRcEgxRzQ4OHVVWUVLYkYxVXE2cG5va3g3ZWFtWDBhazdrOHNj?=
 =?utf-8?B?QzNyZ2xWMmdQelNsSldxSksvSGtmd1RJblk0Zm1jWGMzenNrNTZZdERuZWcr?=
 =?utf-8?B?MllsZkYvK3N4RVNYcEpSVGxxWFl6NUE4WEppZzdSZW51K3dqOFVnL1JHTExN?=
 =?utf-8?B?SGwwbjVIcGYveXhoRmlKczFDZGlDRkEyUGtQTkI0b3c4RzBsZUNpMlUxL3gw?=
 =?utf-8?B?RGZpM3U1bUlXUzJkbVRhb2xCMVErTnRrZW16YVFTSUtPYk15UG9XcUdVNTg4?=
 =?utf-8?B?ZGJKMTBiNU9KQ0kvaFdzN3JMc3FiYnJGNk9mam1RWGszWUhtM0JNamh2bHpO?=
 =?utf-8?B?YXh5VHR0UjhXWk1pdTM1R2xGc1pqbnJiNitJdWo1Z1gxUmxsTnZRNkRkRTd3?=
 =?utf-8?B?SU1JdGwyTjFzbFdGYW9XYW15ZEJxRlJVNjhPWElXVlRBczZOajc1dEhkT1BP?=
 =?utf-8?B?YnZLWHdvdEdvWDEyMUhSOGhNSlNJblhrUGp1THdWcDlNN1I3a3pLVHpZV01W?=
 =?utf-8?B?TGpWRWJpTGZCdERFT1dva0hwSXVDbytmZW1jdEdCeEZWdWd1QmFiNmpBc29i?=
 =?utf-8?B?RzVQdStYaXhpbzdidkcyb2hBZzM4QnpXdjVoY3gyRXEveHRzM0Q5NFVERzdv?=
 =?utf-8?B?aDZieUNOZDRESEFDMjl2S2VEY3ZGYmU4WWtZUVF2bUErell4MkYzWlpTemlZ?=
 =?utf-8?B?WGhKK2xDVWJvRjViZUhSU2doTEFPRjYwcDc1SlVIVGlvdmtqRXcrTC9HVXVx?=
 =?utf-8?B?TTUwSEZHdDRPM3Z6K3ZJbUp1NzZIZXh2L0trVlNLOXI5VmpMdHd3cktlczZz?=
 =?utf-8?B?azlPanR5d3Y5cTBNQkQxdzMrL2Y2TzkwQjhzNHE2R2YxK1ZUZUxjVjNyMXZW?=
 =?utf-8?B?TXhDbFIrUDRiWXRlUkN5TU01Y0Fmb21jeTNCM0FEQ0hnSE1kYWk3bmNjRDFD?=
 =?utf-8?B?czVXczBnd3hDUXZza2ZHOVRxeW9EK3FXSzJWbTQ5Yi9zaTJ3RXQrT0pjaTBn?=
 =?utf-8?B?TmdYN29pRjNDQUFQelZsOC9Md2JQR3BhK3hrT1VNeDg2Q1FZcjk3SW9iemNX?=
 =?utf-8?B?YTA1elE3cFpraGg4YW43aHYzUi9QSEJoUEdaWDR0UUdNSnk3S0ljZHR5WUZj?=
 =?utf-8?B?Y1I5UklKVmxpT2N3R2FLUHdBZVY4c2x3NEVrRkRCYUFuNzA2dDdSS0dMUS9N?=
 =?utf-8?B?aGtOaWtzTWtBSzd6QzAwNWpiaWNSNVJ3UE0vT09kakpzVkh3QVFmRFlDa2to?=
 =?utf-8?B?Y1lPRkc0dkZoQUw5TDZyMU5ISVlLY1JBVnd2QVRnc0hnRmFTVFZQK1RqdE5k?=
 =?utf-8?B?NUhBN1pUWFo3cWJ4d3NFT1NDeGRidktyeHNBVmlicmdlRDQrZEJsaW1hbVpU?=
 =?utf-8?Q?O9b6vUaVq08irS64cicowBr+b?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ed0307a2-6d24-4cb4-d19a-08dd87b179e2
X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB5277.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Apr 2025 06:37:28.2719
 (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: jKKCdqutgiei2Wxn5U80HiUI3Hat6npVgdJPiJhYOtEwDZlaVVQkzhlhA8V+p5Mz
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB8454



On 29/04/2025 17:20, Luca Fancellu wrote:
> Document the requirement needed to boot Xen on Armv8-R platforms.
> 
> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
> ---
> v4 changes:
>  - New patch
> ---
>  docs/misc/arm/booting.txt | 8 ++++++++
>  1 file changed, 8 insertions(+)
> 
> diff --git a/docs/misc/arm/booting.txt b/docs/misc/arm/booting.txt
> index 21ae74837dcc..719af74f1e69 100644
> --- a/docs/misc/arm/booting.txt
> +++ b/docs/misc/arm/booting.txt
> @@ -62,6 +62,14 @@ Xen relies on some settings the firmware has to configure in EL3 before starting
>  
>  * The bit SCR_EL3.HCE (resp. SCR.HCE for 32-bit ARM) must be set to 1.
>  
> +When Xen runs on Armv8-R, the highest exception level is EL2 and the only
> +available state is secure (S) on Arm64 and non secure (NS) on Arm32, hence the
> +above requirements need to be adjusted to this case:
> +
> +* Xen must be entered in S EL2 mode on Arm64 and in NS EL2 mode on Arm32.
> +
> +* Xen must be entered with MPU off and data cache disabled (SCTLR_EL2.M bit and
> +  SCTLR_EL2.C set to 0).
>  
>  [1] linux/Documentation/arm/booting.rst
>  Latest version: http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Documentation/arch/arm/booting.rst

Is the goal of this patch to only write firmware/bootloader requirements or
accommodate booting protocol in general? Asking because in this file there is a
requirement that Xen should be loaded below 10TB which afaict does not fit Armv8-R.

Other than that:
Reviewed-by: Michal Orzel <michal.orzel@amd.com>

~Michal



From xen-devel-bounces@lists.xenproject.org Wed Apr 30 06:43:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 30 Apr 2025 06:43:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.973373.1361500 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uA19m-0001zS-Hd; Wed, 30 Apr 2025 06:42:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 973373.1361500; Wed, 30 Apr 2025 06:42: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 1uA19m-0001zL-EB; Wed, 30 Apr 2025 06:42:58 +0000
Received: by outflank-mailman (input) for mailman id 973373;
 Wed, 30 Apr 2025 06:42: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=BSD2=XQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uA19l-0001zF-II
 for xen-devel@lists.xenproject.org; Wed, 30 Apr 2025 06:42:57 +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 58c46029-258e-11f0-9ffb-bf95429c2676;
 Wed, 30 Apr 2025 08:42:55 +0200 (CEST)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-acb615228a4so117294866b.0
 for <xen-devel@lists.xenproject.org>; Tue, 29 Apr 2025 23:42:55 -0700 (PDT)
Received: from [10.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-acebe7a4ee8sm298305766b.74.2025.04.29.23.42.54
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 29 Apr 2025 23:42: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: 58c46029-258e-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1745995375; x=1746600175; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=w24C94yCtZNiYZM1uGyK1BMoOOqzTr/r96aCJiM298o=;
        b=HuF08CV8kqfon8oT6OP4tbRJwJ1lSltIT5WT86+jUEtfLTqgLVzGLpe0BLwDum+dxQ
         5XDbtm0ejVfH9CoMhmDbfkGT01wXnaBKXlK5Jp/O8XGih4PzL7QlI3dS49+73+CAytWA
         3U9CJkgHOWwQLrSG3Ya1tUvomii8X3JS2lLfgFNBR6vXdJ0EHvQW+vj/JxuERI3xconZ
         IpY593S6eAo1lN9UjXCXt92RMLfuDobmCS3cNY+lKD7WscTLN+N9qa1vDlqvRcrSsIKX
         Fq9vbFaUzR56VScdOgZQZOe6O9VTHyYzbSXgmXodwok1tWgaNONy4H7qCR1qNNSl2mWh
         xA4w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745995375; x=1746600175;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=w24C94yCtZNiYZM1uGyK1BMoOOqzTr/r96aCJiM298o=;
        b=sdqF7lt/mpRykc0uD4crAu3mTYWrwHTkM1rNRUkkr3cd2mJOKUvHmsH+ALJCyBEkjW
         eT2l+PIpTtC0WNWm7Wy+0LL5L4kELV/6NOulYvT7Ay3e+F0ci/EWribFtPJwLpWr8Q7t
         mjAEqCJnW22vnsdIFPRcD8DEpaJEDOAF2SYioJqEYJdlfPOsfGh+XzlPZu3dn/Knwewl
         PcpsnCne8eYh0EUNaNN5ja01vQV0jdNXO+G6G/ef6udVtk4uzDZk5U70Y8xW38m+aFdk
         RF4KR+YT7gzVeHmQ9FKjc+Co5U9DoCmGE/ZHe5Xmu8m8Cg9K2/eJCCicSVOY9G5eB16z
         33cw==
X-Gm-Message-State: AOJu0Ywu3gFUjY8ObbK5sbXxDXJa3/2cvlB51wu9aveyRTHJiIzBWhoM
	Gr/5VX+KLwRxOsB92PMGxaEffD1/UhO6iGIKj+ehKkOhO/Y2jKE1bHcvrmH6Tg==
X-Gm-Gg: ASbGncuTHkQ9xoSo/fc4CrTKaAL7wUeYR9/XtsATibg4VHHRDr4r/BYtLFcf4+Rm2TZ
	K7HzRqbsW7uNubTfi3nZTIlWE5MotMMpa+ABK8DFll2099SJh2JY0QajrowCjH0jVb7xWRwpYFN
	sxuoLrqLLP6CLmv8oZh8HPxpEcj8gdpGlWlSJ0XVh6zoTP5YyT3pB97gYek5V1l7VYDJgziqgRG
	IlTTgnrzj99Eq7BVzU6Uw1oVnbgE0TfalP3KFNuPCjYgxYL9VVvaMvfKVv9pzTiogfdzZYNTNgb
	SotsjB8vvJi1P3j1fx+HxjUCFa+4YxsHlLIvasSCMi3jSAr9R+TWzLqfEh76ltKGhfh/xWxQ+KI
	8x0eFDKM2B5F7ouj87JTEBbcQTQ==
X-Google-Smtp-Source: AGHT+IFPk4K7P4LQ4/KfOBrORJRrD9KHnJbHyzwcc94f7fmlgMCGYTkG70qfp+2vCUnCW0cym/1XFA==
X-Received: by 2002:a17:906:7307:b0:ac7:3441:79aa with SMTP id a640c23a62f3a-acedf6bd27bmr155803166b.13.1745995374910;
        Tue, 29 Apr 2025 23:42:54 -0700 (PDT)
Message-ID: <14fed5e0-643a-45cf-8929-461e11e7f4c3@suse.com>
Date: Wed, 30 Apr 2025 08:42:53 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH v2] xen: add libafl-qemu fuzzer support
To: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Dario Faggioli <dfaggioli@suse.com>, Juergen Gross <jgross@suse.com>,
 George Dunlap <gwd@xenproject.org>, Julien Grall <julien@xen.org>
References: <20250315003544.1101488-1-volodymyr_babchuk@epam.com>
 <5d519ffd-8747-4367-b92f-01c20a483e72@xen.org> <87cycue6l3.fsf@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: <87cycue6l3.fsf@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 30.04.2025 04:17, Volodymyr Babchuk wrote:
> Julien Grall <julien@xen.org> writes:
>>> --- /dev/null
>>> +++ b/xen/arch/arm/include/asm/libafl_qemu_defs.h
>>> @@ -0,0 +1,37 @@
>>
>> Missing license. Also, is this file taken from somewhere?
>>
> 
> I add MIT license, as libafl is dual licensed under Apache-2 and
> MIT. This file is based on libafl_qemu [1]
> 
>>> +#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
>>
>> No-one seems to use STATIC_CHECKS? Is this intended?
> 
> I used this file as is... But I'll rework this part.
> 
>>> +
>>> +#define LIBAFL_SYNC_EXIT_OPCODE 0x66f23a0f
>>> +#define LIBAFL_BACKDOOR_OPCODE 0x44f23a0f
>>
>> Are the opcode valid for arm32? If not, they should be protected with
>> #ifdef CONFIG_ARM_64.
>>
> 
> It is valid even for x86_64. They use the same opcode for x86_64, arm,
> aarch64 and riscv.

Wow. On x86-64 they rely on the (prefix-less) opcode 0f3af2 to not gain
any meaning. Somewhat similar on RISC-V, somewhere in MISC_MEM opcode
space. Pretty fragile. Not to speak of what the effect of using such an
opcode is on disassembly of surrounding code (at least for x86).

Jan


From xen-devel-bounces@lists.xenproject.org Wed Apr 30 06:50:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 30 Apr 2025 06:50:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.973385.1361510 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uA1Gw-0003Uv-7O; Wed, 30 Apr 2025 06:50:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 973385.1361510; Wed, 30 Apr 2025 06:50:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uA1Gw-0003Uo-4Z; Wed, 30 Apr 2025 06:50:22 +0000
Received: by outflank-mailman (input) for mailman id 973385;
 Wed, 30 Apr 2025 06:50:20 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=5DpC=XQ=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1uA1Gu-0003Ui-Oa
 for xen-devel@lists.xenproject.org; Wed, 30 Apr 2025 06:50:20 +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 600917ca-258f-11f0-9ffb-bf95429c2676;
 Wed, 30 Apr 2025 08:50:18 +0200 (CEST)
Received: from DM4PR12MB5277.namprd12.prod.outlook.com (2603:10b6:5:390::7) by
 DS0PR12MB6560.namprd12.prod.outlook.com (2603:10b6:8:d0::22) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.8699.19; Wed, 30 Apr 2025 06:50:14 +0000
Received: from DM4PR12MB5277.namprd12.prod.outlook.com
 ([fe80::9ab:5367:ba51:af6e]) by DM4PR12MB5277.namprd12.prod.outlook.com
 ([fe80::9ab:5367:ba51:af6e%5]) with mapi id 15.20.8699.012; Wed, 30 Apr 2025
 06:50: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: 600917ca-258f-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=b/4qxkC7cMrBqDLic32H2pcnk0ZWjNhJvfK6JKGLqQsTP9yiTEkixnyDY0GhwZyx4qeOKmRkvFM+FX2i6MdA7TDwqgrxqpn1AEC2gO6G1gGg5IjWWmoYEq6YHsbhC3gyM+SaBCd8b0AylwFtsPUAedGSSEQBTyTUikQFIS3RY9RQ4gyteiRByE9a2OGgTxnWbRVaYnDCU1+Qiqq8rHxDraezrVa3gwFiRC9gytdrfPXmRdrGl/SUxwVtMS/6CGar1g426puyAYIL08uPwhYis9hhHKrYIxxqR07Mz/nTPcydxWoMdlJm0FthI/sTYdmL3BYx45G2NzmSIvd38tIo2w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=/vFprCr29jghU6cT6aS01nLFHBdyMHqOaRktVO2FGW0=;
 b=SVZpSPKQO5lJyvBzAAYEle22nNSqP0Zp+6usghHtcOShdyugJTj/h+aSbQFarBAgsQf/yue7QssLQrwub12MuEQ3oiO2QwGkXy0EdmK60pQiNZiqPlXV6CVT0kAx2iaCGSyz45RDGw4F6bMld6W9EXNzj+LTbYNJp+WxCQtXZW44+E3222IuCw5YWO6nob2T9UsVqBamCSOM3Zbnd5kigzL+FosVLZamZkMOLTq+0ivp5aoUkr3i1urHomB0rodYUKCw+NgPTDwUbr6JKqh+z6aEb08dmmtpncVYRNE1yLqpyb5KuguEdhO0kF0vCh0glTl8sfFl4F3ukW3Lus6T5A==
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=/vFprCr29jghU6cT6aS01nLFHBdyMHqOaRktVO2FGW0=;
 b=D70jRQmKExTicY+IkGdoGL0y2G8eX/9OufZQ61aQcxXxOvyJZaNszv3TNKD4sGgXIA8NJuZJ0MZ1091Ltc2e4BLxb5cZdLNVseACJTeJQqK+2TRWmXo11zOieQ9cUWvG+pqq+9MxHRC8nvjZj2Aie8+Gn2ufBjb1lTtIMhyxCQE=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <6d168c2b-08bd-47ef-a991-8de8c01f406e@amd.com>
Date: Wed, 30 Apr 2025 08:50:10 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 2/7] arm/mpu: Introduce MPU memory region map structure
To: Luca Fancellu <luca.fancellu@arm.com>, 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>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Wei Chen <wei.chen@arm.com>
References: <20250429152057.2380536-1-luca.fancellu@arm.com>
 <20250429152057.2380536-3-luca.fancellu@arm.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <20250429152057.2380536-3-luca.fancellu@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR0P281CA0263.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:b5::6) To DM4PR12MB5277.namprd12.prod.outlook.com
 (2603:10b6:5:390::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DM4PR12MB5277:EE_|DS0PR12MB6560:EE_
X-MS-Office365-Filtering-Correlation-Id: 1f14a397-de10-4e5a-e471-08dd87b34280
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?cUtyR1dFWDV4b1VWN0tFMktHd1BxZlRxemI4UkhhT3hoNjRKM0RmempjUVFI?=
 =?utf-8?B?blB1ejlKNFU5aklPZGZrQ1RaYStQb2MyeHBsTFpqZ2N0Vm80VTBxTGIzcTkx?=
 =?utf-8?B?NUV0cjB3NTNzQ2FqcStPN0daWkhiZHRMdkc2UllBN0ZKMlNUdGl6UGVKR0Vj?=
 =?utf-8?B?eUJXNHVNeFA3MjBvaGYwdHhRamFPemxjZTF0RGNyUVl4OUtTNkNpRm0vaDhR?=
 =?utf-8?B?clZIditpZTlXQXRKM1J0R2RUTWpseStqcUR5Z25mZVJCOW5EazRQNFRGMjlh?=
 =?utf-8?B?cEtnam9XTmtGbmZUU3JxZTZaclZLdUxxSTd1S2VyM1JpS1ZSbmtSdE9GNG1Y?=
 =?utf-8?B?TkFSajF3VUhCaStieU1vVWFLdmpWeTN1L0VuR2s5TTZyMVNjcWs5bVBMUkE4?=
 =?utf-8?B?NGFQTjJoNjVFdXZXZ3I2c0lMMVJpZmxZcGRUTFM0c0hNVkJ0enZWeHJJV1VK?=
 =?utf-8?B?akpUdjJTM1ZFK283Zk1McnREWnY5OVBUdTg0QVJZd1d6UHZkelY3RWhDNGdE?=
 =?utf-8?B?ejZ6QmVzdjgrYVBiMFBWZFVNLzRyR0dQOGROd1NBUDBYS1ltOEJ6TnczUkk4?=
 =?utf-8?B?RnRRMWV1bjNNaCt3NW9CbXRuTVFPeHVpUkk1ci9zckNzK1ZieHNBRGJsRzVt?=
 =?utf-8?B?VldEVlNIeFk3bUVLaWFaNEFISDl2M0Z3VXBHUTNReU53V0tUM2FOa1ZpWlBi?=
 =?utf-8?B?VkRabENCK2FoVFFDZkRvQWxOczhZOTFZdllqNUJISnFuQVlDM1VUSE5jVm5i?=
 =?utf-8?B?TThrQUN2Y2Q3cHNoQllRS3h3MnNpd21Wa3BqSzVuTnBsRzFMU1ZzWlN2dUlL?=
 =?utf-8?B?RS8wZ3pxZ2I1TGNUWlRhYlJiVWF2bHdnUXVJNCtqUUV5czVxSnRTY3BwTVpi?=
 =?utf-8?B?Rm0xV1pQSUJUa2JDT0NhTW5lMnNhSENTTG9RSVNkcGF0eTJHSUQ2dXd5Rmdj?=
 =?utf-8?B?d1VQbVdBNitUcktyQUl5V3c0UklsWUc5VTI0RFlhbXZweFBhZXY1eVhwSVNt?=
 =?utf-8?B?Mi9meEh0QUt2TUJqUVhGaVhlZjlhU21hTWZ1MWRsWk9CcWFFa09scnY5emU5?=
 =?utf-8?B?S2xzTFB2M2NUR29HMUM5Y2xTU1gxRjRteGJIU1REYVFYclNOR2ZDQ2M4V1lO?=
 =?utf-8?B?ZjU0bzg1RVo1dUVSaW8wYkxnejk1TlJENHhwdHhSUFFLQzBTRUYxQ2tiSTFn?=
 =?utf-8?B?K1ZDbnBHQXpzeEpxYUw2aDl2d013MDk3VGlOTTNvVXFzQXllaTF3bWdDQjRp?=
 =?utf-8?B?NGtybnBBVkhtSFk1VDNuWmlxNmpjWDNPdlBrWEZ0ZFR6MnBWOXJ6bk5qVHFw?=
 =?utf-8?B?VmF1Um5ROVVXcy9iTUxzb0VXYUQrT3hOWS9namVHUEZjNDlLTWM5Zi9tcGtE?=
 =?utf-8?B?SHZ4YmlmZkEzZnBGcWd4aHNYc1BWN0RPUElKSmZySWlBNGhiNGtHd3pBWkww?=
 =?utf-8?B?N2srZklXaXA2SEhyMUU1M2ZYcVg0dGtsYVBpbzF4aEl0RDQ5ZzNYZHBDbjVy?=
 =?utf-8?B?dFdrdUFITU9pR0RDaEdBYmZqeDllcDlJNjdlOVAyd1NJQWxCNlIram53L1hH?=
 =?utf-8?B?WHBZYXVHVzZ2NElDSWhNZ0VpZEsxeXQydWczZGRmNkdGY0ZiSWMwMXkva1lh?=
 =?utf-8?B?TUNwZGpEUUowNnpycGd6OC9FNGlFWFpxZUVJd3R4UTJxRDExTVR5bHphNFMr?=
 =?utf-8?B?ZGF2NGt6NnVTU1c5aWJQSVNybEZoeTQ1d0RiWVQxUERYcW9Pemgva3lTSUJx?=
 =?utf-8?B?VlFNNjF3czBuK2Fud3V6VHNRODBsdVlEQldVNmY4ZXJJVFBpcVIxTUxqbmQz?=
 =?utf-8?B?TElUTG02bHhaemNGSncwQWV1Q2xDbmJIQ29xd29BVDNRdDZITHhWempaK2dr?=
 =?utf-8?B?VzBLdUpXTkF4dVZkQUpibzA4ellBNGFLczQ4akViWkVSdjRzaWRvSnpjcTBJ?=
 =?utf-8?Q?e4uvU8GvEio=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB5277.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?RnNvUkthVEtMb2x0S2paMXhIenZDTDRjN1YrZUVoR2o1Wmt1Tkl0c1dUTnV4?=
 =?utf-8?B?Ymw0M2tPOFlEdmxoNzhVQkc3WnRCOFhNejdleE9ta0FHeEpGb3JlU3Qvbnk5?=
 =?utf-8?B?MGdrMEV5VHoyblBzRVJvU2hGaVlnWGdiVjE4SHVVeFZXY25ubmQvVS9xdVhs?=
 =?utf-8?B?STI5ZFpCckJXQTlza05wZVo0eEFTK0M2Y2dNMFVyT0dJOGx0c2NjcXNKbXB6?=
 =?utf-8?B?OVRxWmM2RVJ0Y2RKRFRZaWhCdVN4MXVxR0VQaW8zN1krYmQwUnpvcVpWTnJC?=
 =?utf-8?B?Z1V0a3lFaUlEckVyV3N3V25rK3MxeXZIeUhHODIzZnlzd1NrWnJBY3ZTdUlu?=
 =?utf-8?B?NllHbTVXb0dqUXNKZWpJU2xpUFIxUkVWaXFBcWRGb0xya1B6c1k5WS83WVcz?=
 =?utf-8?B?VVZVT1ZFVUFlRkRKejB2RDJmTzNQMGE4NmJ0R3h4bDJMK1Y1K1BIdkI3a1BL?=
 =?utf-8?B?cGVqR1pDM1NsbEVKQnFyMUUyY2xZV00zM2tqTkkwWnBqSmk0K240NER5V1Fs?=
 =?utf-8?B?aTRDKzdEWVBxMWVoM0dVdVNIZC96V2w5dmRQRlcvRXVEWElqbG50eEZRd0x2?=
 =?utf-8?B?V3pVNmNYOUJDaE5rK2JycmU0UmpzeTc1UWxKTTlvMlpPUkZSdzlSc3Fic2k0?=
 =?utf-8?B?bWIrSDR1eXpsNW9FLzlFT3g2bVp5cGpZRGIyL2RwTm1NbWRNU2xPY0h3aHk1?=
 =?utf-8?B?a0liOVljYm5VcW00SG43TVM3dlZBMk5IWkZ3ampJUHc2bkZpUzFpWDhmUzJx?=
 =?utf-8?B?eE1Kb0twK1JmTGRJaGppWnJsQ2lhUUpSdU5aaDVsREY5TDJIeFpCM0xRaTRt?=
 =?utf-8?B?M3VUWHBvMDVvMGJrTkNZU1kyNGVwTG1oNFAyZW00aEEzc1luRTZTaVZZYWRh?=
 =?utf-8?B?U3ZITlA2Nk9WZ3JKNlVxV0VzVGIzcGZWVEhXV0JnYVIyb0h6RlNaRzlCMnFl?=
 =?utf-8?B?SldqMTc1Qm9yQTlTOHI4R1ZXaWtOVm01aDNCcGZEcGc5SkxPdS9DUEZwc28v?=
 =?utf-8?B?eXlJQVBUcHM1S3Y0ek9KbGtVUi9oL0Vkcm85TVhhTE80MHoxb2Uya0Juclc3?=
 =?utf-8?B?cDNZVWVoTFJWenFkYkRqYnVDRzBqOU04cGpSUFIxaVRPZXE3enVLbVM5RWQ4?=
 =?utf-8?B?YXRKYnpidzJ1Y0NIMC9YbHI2RkZyUUJNT3VHbEo5VGloVmRTM2xscE9KTndO?=
 =?utf-8?B?QXJBMFQzUkhjdng1LzRNWjZLSnYvcHB4S0VLR1lOSEFPVGplQnRpVCs3Z0do?=
 =?utf-8?B?N1ZWWDFtMStFV0g5bEtkMVlkZmJ5UHhUTFNlNXlqbEsrUnB4WWF2WGJybkVp?=
 =?utf-8?B?bFpib3RBQW9keHh6eTF5NllYL0ZwN0VlTkZlMnQzUEJXRWM1QWFpWnFmMTNa?=
 =?utf-8?B?THFGK1YzVk9yT3hRcm8veG1XTDd1ZXFWRGpXaG9vUmI4dFpXZkRBL1hoSkNa?=
 =?utf-8?B?eVZJK2tSek5rVm11VVlick4xWEFCNXE0RVpWczBOS2ZRbFNQbVhMc3VORmgw?=
 =?utf-8?B?U0xSaFlIa2JhYWRSZDRjV2IyOG1ENmt3NjFWdXg2NnZtMGtTZkxBZkNpRFVW?=
 =?utf-8?B?NzNLMUU2MTZDSnJaQTczeDdWS1JCTmtHRjVOL2VYejFEZGxERWlhZStJN2JI?=
 =?utf-8?B?VG9mdVRIdVFkb0xFcjhQbTVBRzVzWGNZRWhmcXVES2xHUXFXRzArb01KQTNq?=
 =?utf-8?B?eTVLUXdMQzdnYTBoSFRrZ0EzSmhPeFVrWGtLOVVZMXVTMFdscHA2MFZFdGdF?=
 =?utf-8?B?U3M1OENHeS9tWktxQ0pZWU1XZ2dNVUJGTWhmbUNnR0pZamh4c01JdWcxQXhI?=
 =?utf-8?B?OElWWkZZU3UwZ1dnbnNvWndyWmZ1dnRSZFZ5WkZ1V3BjRVEyZ3o0QmxpSm1J?=
 =?utf-8?B?Y2IwazZjeURXZ1E1aUxSZjJwOFdHL2RVaEVoa2E3dEZSdXJpT1E0VmU3b21h?=
 =?utf-8?B?VDVjSWtDUmNQdWVaVEYxTlpBeHpSN0UrS3VuUkhsM2dIamFzRlhhWWZaR2c3?=
 =?utf-8?B?WTMzWW5Hc1Z4czRzL1JRZWpCVEU3ZzJiSDk4bUplYzFnTjNUTmx1MGtVVWVX?=
 =?utf-8?B?S2cydXRuRjVCMDJVdW5RK2ZtV2crcFVEWERWMHlIeXRpbDlXOW1zQVdZTEJX?=
 =?utf-8?Q?AG9t1mrTomR/kC1EGYs9oj3+L?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 1f14a397-de10-4e5a-e471-08dd87b34280
X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB5277.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Apr 2025 06:50:14.3930
 (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: ir5m3uKQae9SByo2827tXZ4zAxApfsJRW/umS5s5I3tDNpxgYRB8OF1t3MkQDZ+s
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB6560



On 29/04/2025 17:20, Luca Fancellu wrote:
> From: Penny Zheng <Penny.Zheng@arm.com>
> 
> Introduce pr_t typedef which is a structure having the prbar
> and prlar members, each being structured as the registers of
> the aarch64 armv8-r architecture.
> 
> 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>
Reviewed-by: Michal Orzel <michal.orzel@amd.com>

~Michal



From xen-devel-bounces@lists.xenproject.org Wed Apr 30 06:56:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 30 Apr 2025 06:56:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.973401.1361537 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uA1NA-0004gY-4S; Wed, 30 Apr 2025 06:56:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 973401.1361537; Wed, 30 Apr 2025 06: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 1uA1NA-0004gR-0D; Wed, 30 Apr 2025 06:56:48 +0000
Received: by outflank-mailman (input) for mailman id 973401;
 Wed, 30 Apr 2025 06: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=IZps=XQ=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1uA1N8-0004gL-Mu
 for xen-devel@lists.xenproject.org; Wed, 30 Apr 2025 06:56:46 +0000
Received: from EUR02-DB5-obe.outbound.protection.outlook.com
 (mail-db5eur02on20610.outbound.protection.outlook.com
 [2a01:111:f403:2608::610])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 43c42cd8-2590-11f0-9ffb-bf95429c2676;
 Wed, 30 Apr 2025 08:56:39 +0200 (CEST)
Received: from AM6P193CA0130.EURP193.PROD.OUTLOOK.COM (2603:10a6:209:85::35)
 by AS8PR08MB6661.eurprd08.prod.outlook.com (2603:10a6:20b:38f::13) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8699.19; Wed, 30 Apr
 2025 06:56:35 +0000
Received: from AMS1EPF00000049.eurprd04.prod.outlook.com
 (2603:10a6:209:85:cafe::97) by AM6P193CA0130.outlook.office365.com
 (2603:10a6:209:85::35) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.41 via Frontend Transport; Wed,
 30 Apr 2025 06:56:35 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AMS1EPF00000049.mail.protection.outlook.com (10.167.16.133) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8699.20
 via Frontend Transport; Wed, 30 Apr 2025 06:56:34 +0000
Received: from DB7PR08MB2987.eurprd08.prod.outlook.com (2603:10a6:5:1c::25) by
 PAVPR08MB9038.eurprd08.prod.outlook.com (2603:10a6:102:32d::9) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.8678.33; Wed, 30 Apr 2025 06:56:01 +0000
Received: from DB7PR08MB2987.eurprd08.prod.outlook.com
 ([fe80::d53f:b16d:70a5:8668]) by DB7PR08MB2987.eurprd08.prod.outlook.com
 ([fe80::d53f:b16d:70a5:8668%5]) with mapi id 15.20.8678.028; Wed, 30 Apr 2025
 06:56: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: 43c42cd8-2590-11f0-9ffb-bf95429c2676
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=Ar1K0lsgMoeeDwFoFy08uHLp1EIYiCoYQEMNC6o38lZGdmB9Bc3ci7b/XrV2/CAXhk3iyfVRFsQrQx4WunZSaHOKSBm5Kh5wXL6RYSNs7EiBLepb+pNIwsFlMCjZO/4OaPypOr0ptOH6/FasffH9DeJ8bagNw+4zX6qpZDDqSBpMjvfOjQdCFmxnATObtA8o/P6B8d6DEqST6zu/cWIKGuCci90fXuybIBkis+3G8+/0kBoI7PDGFQWUMFIMjsvTwl1M6dbkN/xGAUox677rZ+Sa9N5dCq+rWk4lLxEpefbs9Ojogw3FPgvja8PhBxqV0ndo+jn+MrQRyxvNsY0adg==
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=4SV+kIMnUPslIWXoOI6vmVh8nATVsvSEdmSrG+f1fDc=;
 b=ltcuJktrFvTLrt72MMjc9YYcE3eRcbBYo4zWvc9VFwiaWcnYVI/SLeaH2WBfqMa4z3qwOQHduBPVM3S/R/dh5uoLPTEnMgf3aKElMAecRgm7cgPMiCxpJTxkc4+Np0jxv4y1dl3hr62h2tVtzZ0vfFIVUMTcKBFYtajOUgEaq1xX3uXWeBRiitHldCUVTBKcKzhB0OB4Kp4vur9ggIslgaOJgrf8XOsROa/9jsVDrnUlGNwrG613QcjurgkhJlxLac1F6z1eJPFE7oFJ3yEbKsnrbcVWJhnUI+/IF698nFtbt7h7m8bfGjPNNcE3fuWr2T7SDPdu6qK8/bZt0dCDwA==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=arm.com;
 dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com;
 dkim=pass (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=4SV+kIMnUPslIWXoOI6vmVh8nATVsvSEdmSrG+f1fDc=;
 b=D2bqzNDddfIPWRwOVRhZimmETvNI7lB15Ur2FHo5TzD08nzqivqK2kKhNtC03PBvVXvnbgE4MOTw/eZ1kCvgQ63OdHl9yvdyqWxqs72k/LI5HMVMHzA1EhtD2ixoBteioCKkES9Erg9fZXpWZ2ANXh6eMc0/unGCtlqqS5df3QM=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=KKtgrfgYbiJ7G8codUlLxBd2RHel0e33EjLQlPwhnks1IJFSeBjvSKnPWHAyOwR06PFnRLBKgMeH33fSVkVS4XTeHWhs8JsWDMJ6tBBowVOCqKGedJTLU6JZcwjEyAOlq+NukpozedsF3W+v7Qxsj6Se7R/eHtE9GofTo81fjZxSVVuDYnE0LMoGlF8x3p3+vPQcBCtv/vr2Ihz0ug/gOVT9907uk7jg2/TTy4J+97NuQgLpMEkTcWIj7OIuThkeBMUqZ7GE5GZ38V7mQNO6E+IrvWpamb8NJekns4ujzAbjC/ndz5HT3/1qSYbDkTinIGYrjWDcumVoxE1SJjZzBw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=4SV+kIMnUPslIWXoOI6vmVh8nATVsvSEdmSrG+f1fDc=;
 b=UX+FddLZPTCb9vV99LC5lV4TXBl6xJOHylS0VDc1rQgKOSciifpmJPLK40vIpoJKyhXTkKJJHJmT5OgKP4g9loQu+hHQnWZaid6DXvArnOpm2RmXqlqG0slDJEhT6PthUEbEocBnIrHZ4Dlfuw5j88wmUHS3QQGFLzHqmYpxQv3n3DA+dQowhbl14rbh+7CWR096x1mSIF2Kfnx6MvQSteAlmE0BpbhtNpHu30pTfOGSlZFusP2x4W/3AbPpBZILs1vg34h0XClX9ZDgIdsM4fCBivLTeOYnjvG8uCFHYNDnBBXRk/tedq2sqMHJSDMhG7TCIAUgZ6aVKTAzJrJebQ==
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=4SV+kIMnUPslIWXoOI6vmVh8nATVsvSEdmSrG+f1fDc=;
 b=D2bqzNDddfIPWRwOVRhZimmETvNI7lB15Ur2FHo5TzD08nzqivqK2kKhNtC03PBvVXvnbgE4MOTw/eZ1kCvgQ63OdHl9yvdyqWxqs72k/LI5HMVMHzA1EhtD2ixoBteioCKkES9Erg9fZXpWZ2ANXh6eMc0/unGCtlqqS5df3QM=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
	<julien@xen.org>, Bertrand Marquis <Bertrand.Marquis@arm.com>, Michal Orzel
	<michal.orzel@amd.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH v4 3/7] arm/mpu: Provide and populate MPU C data
 structures
Thread-Topic: [PATCH v4 3/7] arm/mpu: Provide and populate MPU C data
 structures
Thread-Index: AQHbuRprYh16Ok81YUq8WQ3ZmeL+z7O7x4MA
Date: Wed, 30 Apr 2025 06:56:00 +0000
Message-ID: <54913278-3076-48AE-950F-D036B830EB8F@arm.com>
References: <20250429152057.2380536-1-luca.fancellu@arm.com>
 <20250429152057.2380536-4-luca.fancellu@arm.com>
In-Reply-To: <20250429152057.2380536-4-luca.fancellu@arm.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3826.400.131.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DB7PR08MB2987:EE_|PAVPR08MB9038:EE_|AMS1EPF00000049:EE_|AS8PR08MB6661:EE_
X-MS-Office365-Filtering-Correlation-Id: 287838c5-8c7d-42f5-c1e1-08dd87b42570
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?0PPDjBMRyr44HHcPpOIzAqnfVp+h8AcWPwrdpa0i5OwZW4WrsXGinjdAswUe?=
 =?us-ascii?Q?Xwmli9poDZtM/bEqQ52q1mkviWDPRspIDxdf8I6ch/kTorWokpjSPBn0vrPu?=
 =?us-ascii?Q?x8Onu0ykRSK2oiPz5dTuZEa8syTCYiSbXrNj5QWh9zg+T7/pZUbQIxS2Io+9?=
 =?us-ascii?Q?LDD+bxhmbqA8gRfJZyWmvRPzo25NMXIia9t3at/WNuKxEr2o9cSYzl9VHdZa?=
 =?us-ascii?Q?8nemquk75RVL2qd1V1Y72/q25P+xt1ro4WNKHfAImhGPN6c8gfh14DuTa78+?=
 =?us-ascii?Q?oRDDfZa5FoF+htUXz+bDSiu7SzcqnJIbqmvVYSzTF4CKzHqX6LGcNU+U2GoE?=
 =?us-ascii?Q?dCY7U6XNUiubn4l25f3FRNJ+HRLj/MI79/TlAm3P68imv3c+HzG3yB6hPpER?=
 =?us-ascii?Q?67mUm6ww1oglJLzkskhCgYeIEnk4GJpAF4a0gNZun3ct5QoTOGhyB4K53b93?=
 =?us-ascii?Q?Bkbn2DNqdw7YKdEp/YThFN+c3DhBLcjfZ/w04YBnehAJrb26O0PtrITWl7d4?=
 =?us-ascii?Q?bXCPyB8toaoxOa923voUEMjadEE4h9OwTSQdzCqLr2f1Sma6zuI5EOuPEDsw?=
 =?us-ascii?Q?QH7pD2wsZywXFCibb10YiKvgZaIWN3YfOBm7nwWat+QSe0MtDO22+rmfzDJq?=
 =?us-ascii?Q?lShrTAk/e1UWjyJRxBi+2ACnU/aEyHPBtDeZOe4fIkMNjFjXoF/iWwF5Xz5k?=
 =?us-ascii?Q?AhLJ1TkjmbZN0pvi8xI6RBLTVz5DfIhQzE6JcLXpz2dyUsUJY1lOvwWZOE/E?=
 =?us-ascii?Q?JEyLcIUBmOLfyHwek0h/6c4xGBOPT4W0h/AcCK7SGJUPFKOuxTmFCR/lDpKC?=
 =?us-ascii?Q?8iEiwOOJBndOytNqphgZfrHniyNQyEn6hc8nhOZ3zZUgJtagnZH4wfNbJmj1?=
 =?us-ascii?Q?Ikz6LrLLUU8B1z3ej5oCupdRMwdyrKPzQsOzvVRkwH4tFiqM0JerTgRmqB/z?=
 =?us-ascii?Q?TGRmrceO45kZ9Qiy2UXjWErQS5M82W0/9sjkEGa9g5lGawlxdVYi18i44pD1?=
 =?us-ascii?Q?FQs0ck5/486Yg0Q1thTS4Tls7JnvgwaF/SUOfsKqf9kMJniwGfAOiKs39Z7P?=
 =?us-ascii?Q?8cpngayg4GTmO8fz4ESF8VJ4uUEnRHahn3JkczNwCo2Q80gQIDs/Lv3K0P8R?=
 =?us-ascii?Q?SqOw6QAskUFwwHcoFjIxv4tVTFm8ps9Z003k9qu2+MHt6RGX+8e+17rSf7yV?=
 =?us-ascii?Q?pfuyN0JNzKXFXeLJYU9EeXPNC5rf+niwoBH18XcFOeDGzDvVW93EjMQE0pM7?=
 =?us-ascii?Q?QMzuQyf6fupoRoYVyuh2CFWObOUzG3jkICY4XIJEXtEnzPhzS3gZYeEC9CMD?=
 =?us-ascii?Q?Dk7R173GGI/tOhK4aa8hp0/B5WRv8F/JgRNYRC2A0CYthd0YZHclPma0yGlE?=
 =?us-ascii?Q?OFFf1GSl4oiYX+J6isMKORcfCmJPRTl0EZJesLiagNSdc3vwTMR+L2PBUYDq?=
 =?us-ascii?Q?qoy10INMxnjpv9A/pd9sWPQR1UoYhGDuHs/Rte2nyxtD20Qrk7T2Jg=3D=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB7PR08MB2987.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: <85F336FAB5E5F949A52A304440A81CDA@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAVPR08MB9038
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AMS1EPF00000049.eurprd04.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	68c9ab8b-fd75-46e6-f3a9-08dd87b41136
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|36860700013|35042699022|14060799003|376014|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?ms8x1pQLfuzRl65QYg4a9rHB/X2kKT8rwu2QS3d06/PM/YwSdI2XfJ9WuC2j?=
 =?us-ascii?Q?PtSwEHlKJpVf8MaRn5c5EAeI8JDwHMLFV2umVVuEhUuA0cCN53Q52cbLuTEu?=
 =?us-ascii?Q?PU75SkNvZW70H1HN2SelT68P2s4mHFo2LVbW2zPBTVp+gK9gKK/+35lgmGWA?=
 =?us-ascii?Q?Af+AKzUrXMve0mpSRKa9JFiZRNB0ktHtzq1XVEP0Ca3hYa9EkqOxGgtDkYBN?=
 =?us-ascii?Q?F2leAk8PoZbALuYd1pZl6ITq+sAdoYnHMW22WJIWX0dAlxkHNfmeHJg2IJRh?=
 =?us-ascii?Q?G5ubbM6A4lBMOhZaVv1RpzQT6aNHuGCzgOwyDedg0Ttnfc/B4QefehVHNZ16?=
 =?us-ascii?Q?Fq6irJThX44AbJz8Wz48h68D/ow3iXuFB6Vyhp49Ky8xM5SP3PkQw2Nyoet4?=
 =?us-ascii?Q?KyJ1/EvCICLeZF+EPOSpEIkY7fS+Z9vWxAbgS2ICjW+1ha1hWdVvouP9gV6A?=
 =?us-ascii?Q?nLP+FtODNevgJTjuVF41hyGbbovpOZXUMSWNX9TDpNTKGWWPC3ABQh/j1CU5?=
 =?us-ascii?Q?hU8P3Ry3ahfK9qfQyF7v9sDw4rl2z3ICedKFnJr7kKp8s1/ncGpJcZ4OOPq1?=
 =?us-ascii?Q?1eL2aedsfQVvV5h2w55mU4FoCoUbBKJgRhEDana3zYNsWl7ROGo3JIoM65Ud?=
 =?us-ascii?Q?I4obIZmiXlOvM0Fm8Iym4+nOlmEvnu7a3JjZGjnSRj+W/PGMi+RxXK+3ox99?=
 =?us-ascii?Q?z11rJs1J5Kit8EeKxBTuNM0Hopy3PeMWeItBrsoVbS3lErm/Ej1URfmpyOKp?=
 =?us-ascii?Q?f67QrPuzVMDx/yU2EGmqpazs+WiPLdzPNOccCy5ug/owHhseuKA118dwq8v9?=
 =?us-ascii?Q?KrlM71iHaOW99CmToTxcFInAdELeDl6cvMT/cHCTKY168ic0HxGqk9jXejxk?=
 =?us-ascii?Q?z1pzMWBEe+ky/Bv0plJ0FAo9kX0Q/DdYuv8h82XmD/IChZJc+8P8SYTInoPp?=
 =?us-ascii?Q?1X5g1QHQLBLdILUT38rWRmBBeEqF2/uiTxavwFWvpo4XQ2t4zWeqTicNjDhu?=
 =?us-ascii?Q?bRIw5wUrRZvCAyLyb4kzYuoXznGaEFt/lT9ywq0C+yywRwB2LhXSFnn5aq3f?=
 =?us-ascii?Q?zZ32lflhRjbW6vWbCOSRHfCUhldguoURM+vNwxKPgF+ksuUzbG7F1Y5IJ3VQ?=
 =?us-ascii?Q?hqFGauWSguGJqwq2NN58Se8NyJAT3QMoOlw7mpvHIUHYxDzJp0bY2w5jU4wQ?=
 =?us-ascii?Q?L9MdxKBRi79hgAvK2XjWeaP1KFQ36huNpxt7yUobRbRGiNaCLL7GpEvwug8d?=
 =?us-ascii?Q?qvJzuolOK/Us8VYa3PnlqL68OwHgMfN6DxM5rsHgfBokFk1mBHoB3R+WkVb6?=
 =?us-ascii?Q?+/7lX40CkUKbdlLuLnod8eV/g8ldH5/ooXjKsmCsvh2XWe4MznAZeGcuSOE5?=
 =?us-ascii?Q?+KPvI86tnitYdKjnmNSyjNuFXsmm9tuZGEX2o95L5PB6Bei2ytfcFD5DW0hm?=
 =?us-ascii?Q?bI6KFdhbh3mBBopozPVWfWtIqzMnVm+x1AnKaB8AVqWkWJQg9UdSapVaVgV+?=
 =?us-ascii?Q?ulCzRoG/OSZcin/IMxKHJcPbMFZ6xsVoiGSo?=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(36860700013)(35042699022)(14060799003)(376014)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Apr 2025 06:56:34.7663
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 287838c5-8c7d-42f5-c1e1-08dd87b42570
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AMS1EPF00000049.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB6661

Hi all,

> diff --git a/xen/arch/arm/include/asm/mpu/regions.inc b/xen/arch/arm/incl=
ude/asm/mpu/regions.inc
> index 47868a152662..dc0306f8c5fc 100644
> --- a/xen/arch/arm/include/asm/mpu/regions.inc
> +++ b/xen/arch/arm/include/asm/mpu/regions.inc
> @@ -1,22 +1,50 @@
> /* SPDX-License-Identifier: GPL-2.0-only */
>=20
> +#include <asm/bitmap-op.inc>
> #include <asm/mpu.h>
> #include <asm/sysregs.h>
>=20
> /* Backgroud region enable/disable */
> #define SCTLR_ELx_BR    BIT(17, UL)
>=20
> +#define REGION_DISABLED_PRLAR   0x00    /* NS=3D0 ATTR=3D000 EN=3D0 */
> #define REGION_NORMAL_PRLAR     0x0f    /* NS=3D0 ATTR=3D111 EN=3D1 */
> #define REGION_DEVICE_PRLAR     0x09    /* NS=3D0 ATTR=3D100 EN=3D1 */
>=20
> +#define PRLAR_ELx_EN            0x1
> +
> +#ifdef CONFIG_ARM_64
> +#define XEN_MPUMAP_ENTRY_SHIFT  0x4     /* 16 byte structure */
> +
> +.macro store_pair reg1, reg2, dst
> +        stp \reg1, \reg2, [\dst]
> +.endm
> +
> +.macro invalidate_dcache_one reg
> +        dc ivac, \reg
> +.endm
> +
> +#else
> +#define XEN_MPUMAP_ENTRY_SHIFT  0x2     /* 8 byte structure */

This should be 0x3, my mistake!=20

Cheers,
Luca=


From xen-devel-bounces@lists.xenproject.org Wed Apr 30 06:59:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 30 Apr 2025 06:59:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.973416.1361546 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uA1PW-0005JB-Ir; Wed, 30 Apr 2025 06:59:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 973416.1361546; Wed, 30 Apr 2025 06: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 1uA1PW-0005J4-FI; Wed, 30 Apr 2025 06:59:14 +0000
Received: by outflank-mailman (input) for mailman id 973416;
 Wed, 30 Apr 2025 06:59: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=IZps=XQ=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1uA1PV-0005Iy-Go
 for xen-devel@lists.xenproject.org; Wed, 30 Apr 2025 06:59:13 +0000
Received: from EUR02-DB5-obe.outbound.protection.outlook.com
 (mail-db5eur02on20628.outbound.protection.outlook.com
 [2a01:111:f403:2608::628])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9e8ea8f4-2590-11f0-9eb4-5ba50f476ded;
 Wed, 30 Apr 2025 08:59:12 +0200 (CEST)
Received: from AM0PR07CA0031.eurprd07.prod.outlook.com (2603:10a6:208:ac::44)
 by DBBPR08MB6092.eurprd08.prod.outlook.com (2603:10a6:10:20e::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8699.20; Wed, 30 Apr
 2025 06:59:07 +0000
Received: from AMS0EPF00000199.eurprd05.prod.outlook.com
 (2603:10a6:208:ac:cafe::57) by AM0PR07CA0031.outlook.office365.com
 (2603:10a6:208:ac::44) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.25 via Frontend Transport; Wed,
 30 Apr 2025 06:59:07 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AMS0EPF00000199.mail.protection.outlook.com (10.167.16.245) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8699.20
 via Frontend Transport; Wed, 30 Apr 2025 06:59:05 +0000
Received: from DB7PR08MB2987.eurprd08.prod.outlook.com (2603:10a6:5:1c::25) by
 PAVPR08MB9038.eurprd08.prod.outlook.com (2603:10a6:102:32d::9) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.8678.33; Wed, 30 Apr 2025 06:58:33 +0000
Received: from DB7PR08MB2987.eurprd08.prod.outlook.com
 ([fe80::d53f:b16d:70a5:8668]) by DB7PR08MB2987.eurprd08.prod.outlook.com
 ([fe80::d53f:b16d:70a5:8668%5]) with mapi id 15.20.8678.028; Wed, 30 Apr 2025
 06:58: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: 9e8ea8f4-2590-11f0-9eb4-5ba50f476ded
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=mDHXtxvn4D2lGEfwL/1Zs7lVLWqb0OwBESBHfTyEQWRPpKV8aJ6Prpgs8TYyqs7VP4322ffRIAtY7QYCaTdq/8n2AKl0LljQ6Wb9J7QpctAwhsNSRbJauodR8njOqCjFn6QFWAl7OrHkrlS7kqPzVtA9eISdOm/0RuZaXlYiguz0coEqbSBbfAzaqUQ3N9PiG3cIRmJYSBeTww3PZ6XARQ7CaTUyvGum4f0BhMO52T8sXoBlJ5waiY/XEJC7gxFsXudAfnE3pAcC8sR2m1e7Rdznw6SgrvmvFPloTxNP5p3TXnxi+eu5PLoXUSvu/kgJ8Vg0NtES7H7gffIDTeEGSw==
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=ef58SYXk03KkxovSI4AdUOji2JJ1aaqFvyDT547p82o=;
 b=ntwHB9m1o9ToGmPwwLmlhMROaXscIYfQ3VfJ7MG2rWW3E+9OIdADX59bJ1imaMTfIiEAWv2nHdsDmIfXxIVyaJbBqjOviCs6Oy0N+bG23eZySt/SSjGT++km3CswVINAw1escqww7zWd90ANxQWbrZ9DwNEs7zEFT9MW5pCUbZaToXG8xNzH598rbbWXlPq9UpN3Jr6hd1WRfwYw5K8bk+U4royzhvgI006K4w1h9fLj/J24YEtGr2gKT2DkZ2LtWS/eDRBtPfODdFhzPe28ukf7oizaPDhCn/S9hoiHytO0Hj+u+okpOlQXFIMwe3PcWdSoW3uT6Nzg1A+URBrvVA==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=amd.com smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ef58SYXk03KkxovSI4AdUOji2JJ1aaqFvyDT547p82o=;
 b=padJq5XoJF+sSn6gFZyaIS/4sGpib4kafjWd+IO8jBMP8mD7lqVpNaOWw6JVw0l+HC6u9TyjaRXfgLDAGsc9V1pndOSC/lX63HVoWzbFyee4GYB4Oui01rhPVoVDsQndQ7HctW7jbxnLXvTT+vqmk3p7K58ripjoszOp60XhNuQ=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=vBQPIK9q6WSbGKCJKLY7TAIqUAudJGBBI61s21f1kw+rZhfXh0Lnym8gRjYvZY/+nidQ3Xelesmfaw44KnllzFHg6cinj0HpShvOIOfxprA9qK7LOve9f3BQM82OMvov+9yM12QHMZJetuFMSc4NwKNe1AtP6CzQ+zDJTgkX5lXlHXbQbwMQMzEMWaYGuI1zwJ0kM8TzE+yQJEPvKTCoRKUZJesDJ1WmUrblS09rQbccMFX4owxJsPpEj8mlfHGOyQ/PBl0rj79eSqysqmHCZTkWjeaRTmBOzr0e5P9y28NnwYdkz6Y0LUawCjHjtXBu6lAXQWmk/PvAlYMBCsU85g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ef58SYXk03KkxovSI4AdUOji2JJ1aaqFvyDT547p82o=;
 b=en2MCulMHxrg54TNLd+WZHbYw0mEYWbj/WvbEjagDEThPDpYx27N0fPSBpF3/ss+Ba8KXTfRbOWj5vRSMDgY9ZalBwijBAusQ03rW99gRxNgiY+5uWJSYuCaig/7sLZocVEYwZC0ETrKMjk88ScBLXHOCTrk5IhHO9P9kC5jlji608avJ4nQTWEA7YUyPau2gczbXKjikyCjfW/iVnmeapC46nHEjF7g/9PGpoQQ31xHwsmIOkBsgvJJoRZWB9baTERDqOxihe0Jbn9g4ZvDNoBs7YQQlgCpTCDTN0d1jN9bJt+KxYal3n7dhInJv4bU5B7QlhjMG3bRjORWfKNNzg==
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=ef58SYXk03KkxovSI4AdUOji2JJ1aaqFvyDT547p82o=;
 b=padJq5XoJF+sSn6gFZyaIS/4sGpib4kafjWd+IO8jBMP8mD7lqVpNaOWw6JVw0l+HC6u9TyjaRXfgLDAGsc9V1pndOSC/lX63HVoWzbFyee4GYB4Oui01rhPVoVDsQndQ7HctW7jbxnLXvTT+vqmk3p7K58ripjoszOp60XhNuQ=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: "Orzel, Michal" <Michal.Orzel@amd.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand
 Marquis <Bertrand.Marquis@arm.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH v4 1/7] docs/arm: Document Xen booting protocol on Armv8-R
Thread-Topic: [PATCH v4 1/7] docs/arm: Document Xen booting protocol on
 Armv8-R
Thread-Index: AQHbuRpmN9lJogKQoUiVWa6WakCsQrO7wm+AgAAFy4A=
Date: Wed, 30 Apr 2025 06:58:33 +0000
Message-ID: <BCD1B005-3231-4542-9574-A269F4DDBBF8@arm.com>
References: <20250429152057.2380536-1-luca.fancellu@arm.com>
 <20250429152057.2380536-2-luca.fancellu@arm.com>
 <a78219d3-4872-42ff-9588-53a65a6bba74@amd.com>
In-Reply-To: <a78219d3-4872-42ff-9588-53a65a6bba74@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.400.131.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DB7PR08MB2987:EE_|PAVPR08MB9038:EE_|AMS0EPF00000199:EE_|DBBPR08MB6092:EE_
X-MS-Office365-Filtering-Correlation-Id: 24ceb28b-562d-4c4b-88d6-08dd87b47f3f
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:
 =?us-ascii?Q?yt+R5xrCSojvAWjYKE/4fvebWH69WY/hTX/fyue/MfyD0RsvaojZlvMSqrkj?=
 =?us-ascii?Q?tsP9pSLIS3TyllP7lZUH7hA3RDOLIwrQspAwlC85SiVqppTLoImsGM+NYmRZ?=
 =?us-ascii?Q?F+nnvioBPdrQkV41F68JAMQ7mHAt+r6iLY7HhUtwISR9VPvEeOBSh6bpWErD?=
 =?us-ascii?Q?Jz612A3NR7mRD81rFnm2uhVBhfiwrqlZTxQYJG2xmrXcPCnzJqHZ3loWJO0U?=
 =?us-ascii?Q?4BQsEsSOeGXWLVGUEoSKbuQQN8vmWU2Pg3A6YrHNiEZHmWQtjWepQcwb5gx5?=
 =?us-ascii?Q?W/8e9kgT+GncPnuZ6HpJ7IUFz8t6x+EYe3EV0axISEPbpV4akWE5lYHSXqwT?=
 =?us-ascii?Q?erIyqJ+dYS9tJhMetS62Jud/0trW2zt9Z/eYjL4hn+vDWYWOv+gFoTWDAfOX?=
 =?us-ascii?Q?IWSk4+lU4Ro0TZP1eWZv0dyaECuVpre+yeAMxnws5CKXYiCe68/XFhKP7kdi?=
 =?us-ascii?Q?1NUy/wnAh/bBOCI6NdOe5xM0LbxXxfPTVOeClAyGjzwSkPlAwUDeF1qaU6if?=
 =?us-ascii?Q?WXEpVUnG4lGhvKlOLlvP0S6IT5MjImPQkQiY2014f5bs8DAzh4etuFrK4qFH?=
 =?us-ascii?Q?wOYYU8lUdKfxH0rRpyskVTl8I6KS0X7AgBHWAZoQihHHyYUpK8UEQes9J8H+?=
 =?us-ascii?Q?LHAlDbcxIU6k6yhTZTP7rDAOELACz6/wIM96FAsnBpXzAbOPBqir8xzJighD?=
 =?us-ascii?Q?quTqeCg7Galqb03hfglRcXmjFejL7gysqqaAEMpfVr+Cl7699ue8drCeEx1C?=
 =?us-ascii?Q?wBVWzqJ8+MotD+eaR2m938rZ58U+AtcHnOCMea2f2jmLyzG9/S1CUgGsF0b4?=
 =?us-ascii?Q?CDJ6rV1PHfMHTs7X0YzzG2IAyuLs7M3gWyn7zriO6ii6gTNLlcrXtTQUfCQ2?=
 =?us-ascii?Q?m3rVCLyiZx4KXs85Y4XcPyNLLr8HpNJ7DI7hX/m0W5F/0ywffr3Nd0PumbrV?=
 =?us-ascii?Q?zbikhLHZt6UGiZiubVT7y4Ybz3RT/VW8R+nCQdiyijwTxw/B2Wn/2easozZY?=
 =?us-ascii?Q?BrCEPyuSlW+wYQ0Pg7uGGKbKaiqTZst2LmT7IFTB5CHp/x8qjaIC8v0obGAy?=
 =?us-ascii?Q?kHQWVah44sSU+8I/6C6R2jdClQoWC1sjdwtQ0vTURBRVqVNtV5NuCgzlFv7d?=
 =?us-ascii?Q?wFusGCv30la2HQ5UctfcyerMPrKQb8UAKA2pbMuiKRN0u8RXgvPSNnDHnGe9?=
 =?us-ascii?Q?9PzNzTbyL/gyMp4PVqSaNW7xkdsK1sZ+vQR1BjfCEhB2FJ+x073V3QzG7M1B?=
 =?us-ascii?Q?1vughvadLNejlmLXYk8qqWXzsDMk5sNcdhiklJp+Y0Y4ht2/CtFRF2ctKfm8?=
 =?us-ascii?Q?9WMQ6LZ0pIRT3sZs1DdBbCkl4XAwL5Y4V2xkeQc6P8PMlWC9Q9V8QZWt8Jkp?=
 =?us-ascii?Q?UvmEPevNllOlt5hJ4NyETk3YmVxmR0B44ZHmpKjb0WGSZei/3hUV5yH8pO/X?=
 =?us-ascii?Q?+AfBlJi/8eMq3NwaEN1os6t1kLvQpnSktkOUOi4d2hRFX7/r67qM4RH3vV+x?=
 =?us-ascii?Q?/vn9u7rAX4fKisA=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB7PR08MB2987.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(38070700018);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-ID: <D66B0985DA4E8B42BB7D256707F95001@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAVPR08MB9038
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AMS0EPF00000199.eurprd05.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	f834ad66-d968-4b94-91ce-08dd87b46bf1
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|35042699022|14060799003|376014|1800799024|36860700013|82310400026|7053199007|13003099007;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?8VxwxV+1N/YILtXDf7z5K/5bALFjdxV7i4tpGWVfVPTvXcUefh5KrknXRFDv?=
 =?us-ascii?Q?pBFDyAuGwZRaGDrVMvgv8eydBhnYGQ1K6GzhvjJox6ZoRl1IG6jil7N9wA5z?=
 =?us-ascii?Q?J9MR4NS0cFm1/PSzLy+W7BxW5bYS9ky5/wJkyi9yCX1i49jceH7xRHSuTEUB?=
 =?us-ascii?Q?nRcdUKBtWzTTlU4j6QaknUMbHdg8+iJoPiCJJejhYetVcb9nnv92UUViRQYm?=
 =?us-ascii?Q?QS25LTybMLE4ObLw1bX9LlMy1UOqqVUzo3z1aNCHxWsJT2XVhrlwpXMIYAgP?=
 =?us-ascii?Q?BREQJAwmVFTWuZb3C9yo0IJ6aMoJsUSlD92A63FlQ3lfFX20Erw9/uvUY5OS?=
 =?us-ascii?Q?R2MLN+G/cuU0mL0pZ+MzIsUUAuXRaA5EQWdmf8keLSz9JPLJjm6Ui6KGTa7F?=
 =?us-ascii?Q?vvQ/JnC3POTn0fEzK28NFrVw/BvUa9YSw6sZLu/D2/jEf0P8ElXGKCEG+Whs?=
 =?us-ascii?Q?M9eaWuRMcz8cthkXoCIa5/VGkcBYZABX2dj3nBxul9egLWUfa1jcVyp9Ob50?=
 =?us-ascii?Q?5E1B63T0DqXUiHMok9ZThZANKRod2tpwISLZI1L4+t3XIIU2tUvoAz+XCouJ?=
 =?us-ascii?Q?kCVNxXwGJvsLWNNpT6ifGBcQNmDIcaKRQGCJs5F6Y3Gs8dVcb4WAKTgoBDti?=
 =?us-ascii?Q?zHldEMK8cf4n7nqx+ZwLXL/KtIDA0ox5GB/SyQ2v+NESkbjsSjXrUmfwWyy6?=
 =?us-ascii?Q?PZzch0JTxmoNX+Bf204XDFioMIMMyb9PlEIsC6rHbEB4qwJ0HgZ4q47JnQIy?=
 =?us-ascii?Q?6M7H+hq4vpDeQQ5z+7uhBiDIJe2kqcfyAHPt6qtxTIgUDHV+822aTREOYuLe?=
 =?us-ascii?Q?nO2KJKq89PlQR94DBo8SmfnhAoj6ZYqMU+gm0TV4gSYcT/Lwz2HA4n17mFXe?=
 =?us-ascii?Q?Ym0szqyikV0rdhP9hrmcleNKDBvNdVCIjGVL0hJY+SQup/aT2WYRzVIoguhn?=
 =?us-ascii?Q?bxrepwfs/7YE77aXwtjBdtY0C9RzRInBn5scoecXDedsK7OYlGgLnY++/kqV?=
 =?us-ascii?Q?qBvlohmCrp1eT7I++ddYD/gEAKZ7HgWkKkvOKg/QDagr8tVnhwBMjIF3lBCb?=
 =?us-ascii?Q?/3BWrJ3SvCC/rcp04wxzAN6N2+6Ikh4BWnfXDDG2STQ02+iorQkzMvZ6NbMZ?=
 =?us-ascii?Q?o5qjssR5hf4ATgJfJc4cBwv6Nvsa0Z618w6ai0e4LDxTgIUe848HF+fHJMui?=
 =?us-ascii?Q?n7dXSydYmRj8pq0X3RFRR06ab6/h+VIQxZMAMIYzccWGf4IKIS3vdmqrPvcv?=
 =?us-ascii?Q?eWerMfpS34H8hTdXfmr3lIEKTSO/iBtTVEsLCUwXPrLewW7W7i0DluqjkESV?=
 =?us-ascii?Q?YS8jeQp10mAtru23lDPU+xn14/4ZfWiy9V0rTJr5EUCPQZKaShRWLbFeCLME?=
 =?us-ascii?Q?GN42f1HWy97K+TCKNdUyN+AR8NXbTJSzwGD+UdzLmHPMa90NvBZafKRYvI8F?=
 =?us-ascii?Q?z0AUEWeqqORU+QxnGaFfe+fEG9/7inoC9r92EVPRtm80bg7LJsW6agbEllxP?=
 =?us-ascii?Q?T/pHGMYxc3AEVy+lW21uNEP79Eb2ZLDajBUXqZNEYxT45DU/bJThUelGiw?=
 =?us-ascii?Q?=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(35042699022)(14060799003)(376014)(1800799024)(36860700013)(82310400026)(7053199007)(13003099007);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Apr 2025 06:59:05.4389
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 24ceb28b-562d-4c4b-88d6-08dd87b47f3f
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AMS0EPF00000199.eurprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR08MB6092

Hi Michal,

> On 30 Apr 2025, at 07:37, Orzel, Michal <Michal.Orzel@amd.com> wrote:
>=20
>=20
>=20
> On 29/04/2025 17:20, Luca Fancellu wrote:
>> Document the requirement needed to boot Xen on Armv8-R platforms.
>>=20
>> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
>> ---
>> v4 changes:
>> - New patch
>> ---
>> docs/misc/arm/booting.txt | 8 ++++++++
>> 1 file changed, 8 insertions(+)
>>=20
>> diff --git a/docs/misc/arm/booting.txt b/docs/misc/arm/booting.txt
>> index 21ae74837dcc..719af74f1e69 100644
>> --- a/docs/misc/arm/booting.txt
>> +++ b/docs/misc/arm/booting.txt
>> @@ -62,6 +62,14 @@ Xen relies on some settings the firmware has to confi=
gure in EL3 before starting
>>=20
>> * The bit SCR_EL3.HCE (resp. SCR.HCE for 32-bit ARM) must be set to 1.
>>=20
>> +When Xen runs on Armv8-R, the highest exception level is EL2 and the on=
ly
>> +available state is secure (S) on Arm64 and non secure (NS) on Arm32, he=
nce the
>> +above requirements need to be adjusted to this case:
>> +
>> +* Xen must be entered in S EL2 mode on Arm64 and in NS EL2 mode on Arm3=
2.
>> +
>> +* Xen must be entered with MPU off and data cache disabled (SCTLR_EL2.M=
 bit and
>> +  SCTLR_EL2.C set to 0).
>>=20
>> [1] linux/Documentation/arm/booting.rst
>> Latest version: http://git.kernel.org/cgit/linux/kernel/git/torvalds/lin=
ux.git/tree/Documentation/arch/arm/booting.rst
>=20
> Is the goal of this patch to only write firmware/bootloader requirements =
or
> accommodate booting protocol in general? Asking because in this file ther=
e is a
> requirement that Xen should be loaded below 10TB which afaict does not fi=
t Armv8-R.

Yes you are right, but I think this still holds since we support 1TB on Arm=
v8-R at the moment?

Cheers,
Luca=


From xen-devel-bounces@lists.xenproject.org Wed Apr 30 07:04:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 30 Apr 2025 07:04:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.973429.1361556 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uA1Ut-0007Os-4e; Wed, 30 Apr 2025 07:04:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 973429.1361556; Wed, 30 Apr 2025 07:04: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 1uA1Ut-0007Ol-26; Wed, 30 Apr 2025 07:04:47 +0000
Received: by outflank-mailman (input) for mailman id 973429;
 Wed, 30 Apr 2025 07:04: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=5DpC=XQ=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1uA1Ur-0007Of-NB
 for xen-devel@lists.xenproject.org; Wed, 30 Apr 2025 07:04:45 +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 641300dd-2591-11f0-9eb4-5ba50f476ded;
 Wed, 30 Apr 2025 09:04:43 +0200 (CEST)
Received: from DM4PR12MB5277.namprd12.prod.outlook.com (2603:10b6:5:390::7) by
 SA3PR12MB9089.namprd12.prod.outlook.com (2603:10b6:806:39f::7) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.8699.19; Wed, 30 Apr 2025 07:04:39 +0000
Received: from DM4PR12MB5277.namprd12.prod.outlook.com
 ([fe80::9ab:5367:ba51:af6e]) by DM4PR12MB5277.namprd12.prod.outlook.com
 ([fe80::9ab:5367:ba51:af6e%5]) with mapi id 15.20.8699.012; Wed, 30 Apr 2025
 07:04: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: 641300dd-2591-11f0-9eb4-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=UkGjN94J6tev/O6Re/NW4zwlPiVn2A4O6nYlUkjdAhAHycPGk66QA+duVrX0+QOpDbTZ5fHj5KPb2xmVBCsNwlsKLan0oYyBXSKsN10GZmI4F4GbU5iKGxLWNasgsNTlugfwlmLkzBhZ3HUbxlrIuTAPrTZyWbj1pDMVxgb5WxltwKA9npopmDEO+ZpxmqA6JYx5B915Y3w6nt5Kk4lawckU2woUsBECnnSk48j067vQz6kXaeZKagSrv+vGdna31GDeNhCIq6XJeEtzThW5IQArMYI/Mn+BBseMYgjERHC6M6nnKsN5zA88qKZkZPd5OI/VVwMcx/rcULLq1UvB8g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=gUKJOlf1NiocCmOfa2JBkysEc805oMydbC9+AHAzmzA=;
 b=XZQLpmvZaDb2gJBCjm256472gc1iM9fjaTgABEIfAby7a6ZBbMUkPA6ldXUgw9+pBVUjhyL96AwXsJqARZdraCr3Yvnu3saZ33Qv3V9ovLYO4rDgGvJA4wWzW/sQefJv1TKWoxI4+nl7vqIy+gRZbmpIHZa/TdxS3hfrOrGupc1MMB+ZDI76/HmD9F1YRMXx8zKDliK6PWFwF5+8GOkJdEOuI4yBbdXeQHyi20uAGpSlATzgndj/bdEaR6QmQW00ZeKdrEEbqF6WYbopTZLPxM1yBM7LKbtWwwBBbw4en7ccyKoUZ1jql8nptbK3HfkJTmt/wDOHvHT00y+TrsJOGg==
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=gUKJOlf1NiocCmOfa2JBkysEc805oMydbC9+AHAzmzA=;
 b=liStCahPKJBrxUSh3xZvGKfebkYVRob7Xhuc+E1CSw+VS9unNC76prCtg0/qtPKliCOPZdoaWjPW/Cu9fJrg6vznhDC/ckeVDiVf0y+2R7/H1OYs/OZDpxNGcsBmvudNMVLarN6gBEhOygX/r0pcd7BjDdH86dYPJOv7IMHciv0=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <bc825300-1a9f-4cab-a0dc-f4f354a0cc9f@amd.com>
Date: Wed, 30 Apr 2025 09:04:16 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 1/7] docs/arm: Document Xen booting protocol on Armv8-R
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>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <20250429152057.2380536-1-luca.fancellu@arm.com>
 <20250429152057.2380536-2-luca.fancellu@arm.com>
 <a78219d3-4872-42ff-9588-53a65a6bba74@amd.com>
 <BCD1B005-3231-4542-9574-A269F4DDBBF8@arm.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <BCD1B005-3231-4542-9574-A269F4DDBBF8@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR2P281CA0082.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:9b::9) To BN9PR12MB5273.namprd12.prod.outlook.com
 (2603:10b6:408:11e::22)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DM4PR12MB5277:EE_|SA3PR12MB9089:EE_
X-MS-Office365-Filtering-Correlation-Id: 415a1a4a-0e6e-48dc-a0d8-08dd87b53b8c
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?b2dscXBLeEk4KzlPS2l2S3kyRDQ3b1pIY3JjelBTclYwZzA4NUVYanRnMysr?=
 =?utf-8?B?eTBnaGJkcVFTajBFeCtzSVBpb0owQlFJbVJqY1dra0lNRFViUTFIQVVpaUxY?=
 =?utf-8?B?RUJCSDJvWndKa3E4QjFwNHduN3pqb3FvWkdWdjlnbENCeHBqT1MxQTN5SkVl?=
 =?utf-8?B?dHNRejZkSzB4bGFXY2pVNzNpL251MkZXcnptVmdoUGtVMXBOVW5iYjJLWll5?=
 =?utf-8?B?MVlnRUliNkg2Mm5IZ2xMUmhGTDRZMEpNUWxGQ2pDNmordUlYU3pXTUtFWCtO?=
 =?utf-8?B?aG1JRTFMazdFUWtqaEU4UDhzbHJDb0loSm44WDZuUERwWmpxNmxZZmFkaWgr?=
 =?utf-8?B?NWxLYVhyVkFNdzJWUXhvbGg3VEd6UjdyYzQyNXJYRGh6aG12Zlk2bWp2QjZs?=
 =?utf-8?B?ejZyOEpxVUh6S1pjd1hLeENiaHd4dWQ3SHVlamlhNEl2dTR5WlNybXdTcGtQ?=
 =?utf-8?B?SFRoNys4cFA4WmpETXE1c2JRT2RPaERLTG8zbGE2NVVReUo1a3kvM1poc3Jj?=
 =?utf-8?B?Qy9ZWEFNb3hQamFsZFFrQ2JCS0ZQNDNXUjVNaGNTMFZQL1Y3bjdkNitITmhM?=
 =?utf-8?B?bFlreWZOZHlDQkl0UkxVbWJaYVdTb0RTMWFIQmVUb1FiMzJaZEJuVXFSZFUy?=
 =?utf-8?B?Y0lNdVRNN2lHRzJYbHpUWW1vLy9TVlVOeHZVSnVYd3JTbE5hQ2FMUEx2WHlk?=
 =?utf-8?B?dVRydmttN2hwRVpoa0ZFNXhCMzZ5Vnc3ZEJuVkVQakdTaTBCYjFPekVjbTlI?=
 =?utf-8?B?SE9weUxSNHpUZVV2R3h0L3lyT3V1OFg0REFyU25nMnFsU3FXS0NZdEZoZ3RJ?=
 =?utf-8?B?bFdPSndtZ2s0VDV6aXdyd0M5L1Z4ZElzajBMNHRYM1dQMy9tL3hENVp5NWhj?=
 =?utf-8?B?WCs5Mlg4aERmNHM3dFZoeUQvUkZzVWoreGM2Wk5SZ01Jb3Bmd2NEU0pSa0o3?=
 =?utf-8?B?UkI4NDVVWURVRzN1SHd1N2YwcXkzWlQyZTZkaTlyeHpwMEhhYW1vZFVyWHMw?=
 =?utf-8?B?aGNET2h6dm5uS2FyZkJ3UzViTUdkRVRWdmF6K3V1K1RjTi9oVjl1ZXovMVBs?=
 =?utf-8?B?OVUvMGhrOHo1RG1wcThTSjZyTUFqY3RxVlR3NzVuNStRN3B5SkhTRTloQWRF?=
 =?utf-8?B?eFcrOXUxVWZ2OFA2cG9KWWpnaEluUUl1QTFXdTNpVEtiMjBrYjNnNlNPM0Zr?=
 =?utf-8?B?cVh6NE15dEE0bTZiKzF6c0xSdE1VNndWQkxtOXVyU1pVMmIvamlkWldHOWNy?=
 =?utf-8?B?VkZ5NlFJNlNaQnRqUU9pNGlVNkZ3cE9KOU13cDZtZlZyTXBWMjJxWS9oWmZR?=
 =?utf-8?B?MXNUcmtmMTdqWFJMaWtucXJJMW15ZXNIeVEydVFscW9ndkJvYVhVelFRd1A5?=
 =?utf-8?B?SHRNV0tqbTZuVmY3U3I2VXd3MTI4Q3JMd2xReitvc1ExOXFjemdPWmdQS28w?=
 =?utf-8?B?M0N6eG9reFBjNmZJTTNmajlZYmJSdXNFL3JXYTBvbTAzTVM5WG1MazRuTHpk?=
 =?utf-8?B?REFtem5pdmFmZlJtNWxYSFFtTmFVTHBHRU13Y2NKVjMrZmZiSVNqWGR5eXY1?=
 =?utf-8?B?a2xzREQ1aHBnY2dvQVNOMVN3VWt4M1RpTms0TlFmODMvUjJ1Zk5kYm1iVHpY?=
 =?utf-8?B?V2JRQWoyTHRzR1NBdDQyMzlhcVFZNUhCN2pXT0k1QUwyVW1LNkdDNGUxOTJD?=
 =?utf-8?B?YllubW9KRncxRHliK1d6WlZwdTF1ZHN2SjZuTUI2THhmWlJhaitaN2ZGUjRT?=
 =?utf-8?B?NUVFN0J0U1IyYUVNYmJiSFROWHJaVE13a1orbFFpR0hoWjY2YW53dGFtRTZq?=
 =?utf-8?B?ajdpSDF2U1pXbWh1bmVBa2lqaXo1QlFZbmV4dmpTbXAwZHNjM29lUjNuc24y?=
 =?utf-8?B?Wnp5bUN1eEFDbVFCa1hwN09vSnZDZXVsUUtvSXA2ZmduMEJva0Y1bmcrSGlU?=
 =?utf-8?Q?aBpjPAa3URY=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB5277.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?bUJmRGQwSXcvRmVWaGRBQjR0ekJZOWNvNW4vTjc3QU5POHVZOEYxZ1lSWk91?=
 =?utf-8?B?dUc2a1lvMlhTUjhYRktDRlQ2cDAxN3ZFV0Jja2hWeTQvQzQ5MlkweWlXdytx?=
 =?utf-8?B?SFBhMmt1L2hWSERQUGhxV25WSWdxeEcyMzR6dS8zY0s0dzZHWHc2bnF0Nkk2?=
 =?utf-8?B?SERpZ1ZYTlVMNlJsdmpGMEY3YVpXRDJVQ0cyNWFsMmNod3MveG5XOWgrRXQ0?=
 =?utf-8?B?UzM0RW1EUlNCQXpaVmI4YnNJTlZJT1pIY21zL1BIMkYxa2p0cmI4cHdFS3B2?=
 =?utf-8?B?SUxWQnkwSHNOV1dwc2RqUCs5SC96Y3g3MWZtVi9yWTdYd1BVRnBWWEVEZUpE?=
 =?utf-8?B?ZHQxY01sS0xuUHlmRXByUVpHb0ttSURCUzlWMjdjZzNtS1plTWRQWWRjdXds?=
 =?utf-8?B?MkVSUlhiRkpTUUVkZ2N4UHg5eldnNzE3MnlJTDQwQWxTZ0hxMTFDYW5ZdVJL?=
 =?utf-8?B?c0ppSy9qblRSd3l6dDR6dHFZdzFZeTRUWHBZbFU1OHhhWnFBZURXbnMwcnE5?=
 =?utf-8?B?K0JJSGFRMUt4a3l4VlNBTExRVEljdFoweWJ6eHFqbGNsanJsc2UwbnV1VmVU?=
 =?utf-8?B?ZkMzSGUyVU5iY1hiNnlaMVVBNU5GYnBPcStETGRmRzdSNk9yckJGUVZKN2NW?=
 =?utf-8?B?bTRoVmw0SEkzT1Bqcjc4OE8yYWZGRGFkZ0JTVXFYcW1vdlhsZ3Z2TTliTTNs?=
 =?utf-8?B?SWQwVEd6Smo0YjVVUENUeXI4d0RmL2Q0U0pzbFJPZWIwa2RIZUxneEJjRmx6?=
 =?utf-8?B?aWl6RUFVcGlER1FOdHQ2d2FxRUtLSGY0citoZSsxWHdhUE9VY2l3REt2cjhM?=
 =?utf-8?B?aGdZc2ZvVDcyUTVuK1Y2VmVtWnhMNWh4MkVZa05GaDNCaHA2bStSOExvenk1?=
 =?utf-8?B?YTdUUndBQUxPdXN6eklCSXdUcDFhbUF1RWppNUIrWGhIalZtNjlOTkJJM0tD?=
 =?utf-8?B?c2UrMHgxdXovalhpbHB5elJORG00akJ4eFduZlJReFZacnFISnlDenVicXBt?=
 =?utf-8?B?a09pU3ZocFdGUzV3MlgrVFI1bHpyM2tucFJoekcvZlkrSGovUGtiZnBROWs5?=
 =?utf-8?B?ZTY3V1ZZRmYzbUFEekxPanN6SFkwdkdmbmpDSnRpMmxOQTVWQWdKWk9FZUpo?=
 =?utf-8?B?dnYvU1VsZExMK1drOVhYQ1B5SjNNTldhT21xcVZPVEJKSWpZSVdPVys5RUYv?=
 =?utf-8?B?REI2dk42bzVxLzFXSE4rVmhGaXlzZnJrSkdIeXIvNzVyb0hFR1hvazBGQlB4?=
 =?utf-8?B?WmJMY280NkJXOHBndkRyd0xkYWpJc050RFpnVXdoMXN6MTBIV2szYVMweVZw?=
 =?utf-8?B?MmQ5MDdRWTFZT3dvbnV3Sml1aUxWeWh5V2MrVDNvRTQ4ZjIwRnJkY1o2NUdp?=
 =?utf-8?B?NFNsYW5zNmtzYVZsb1dZdkQ5TEdvbU56T1VPZnJTNVdBb0FOK3hwejB2dWE0?=
 =?utf-8?B?cDlXMDI2RWRRQTE3NVIrTmthUktPYzhrOHk0UTc0RWl5L0VtdjYrYkxFTEY5?=
 =?utf-8?B?eWJpRGRKWHVWbkxabXkyTlVGTWNTR1BWcHZ2U3F1a0dpZEVmTjdoeWFGNmxz?=
 =?utf-8?B?YkZveHpFQ3dKbm42L2tiak1HT3VjTko2ZWhIWlVRNUc0ZHdHTnBVa3V5NlVn?=
 =?utf-8?B?d0YwSDNudGpkajd3cjUrcFZ3YzZhSlplZFJmZXNqbTZ0c01RTVRmbWNTYldy?=
 =?utf-8?B?ZC9QNHNVYkxkekY5eTZ0aXM4cms5NmdOWDRXbWtET2NxSG5hMG91OHh6MTRZ?=
 =?utf-8?B?QnNuN3dqcUhuV0M1WHVsMEdmc3dCZkRuTW5VYjArc0lXcXlZTXI0QVE3OWdP?=
 =?utf-8?B?dS9YSSthamtCNFBQVGtQYjRHOVBMN0grVkxiMnFtbWtkaTFCNEp3L2NmWmJq?=
 =?utf-8?B?NmVBT3RlZlVHdTVTVytkNXdLMTlEVzFMKzlUZm9vSzN6QTRabjJrMjhZOUJx?=
 =?utf-8?B?a3Z3ZGdNeEdWbzF0S1IwcVR0V2FDa2wyeU5qRWFjeHVHWGYrdnN6dHVIbnVy?=
 =?utf-8?B?WDVBaFZLL0wyVXVIMFVIdVlDcmNIU3dIM2ZGRlkrWmYwNVpQVEJxUWRTOXd4?=
 =?utf-8?B?em13aVd5UkRMN25YTUMwUUV2QXVCQ2ZNc0wyRXk1dEJQTVJMOVltTGNadU1n?=
 =?utf-8?Q?EuV48ihSS24rv12nEH/4i0OHP?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 415a1a4a-0e6e-48dc-a0d8-08dd87b53b8c
X-MS-Exchange-CrossTenant-AuthSource: BN9PR12MB5273.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Apr 2025 07:04:39.2390
 (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: xknouiJfuhVKPBD11S8NQb3DQcXtb0RIVc65jszpeM3pRtWrAgiqhWEdzTT1myrl
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA3PR12MB9089



On 30/04/2025 08:58, Luca Fancellu wrote:
> Hi Michal,
> 
>> On 30 Apr 2025, at 07:37, Orzel, Michal <Michal.Orzel@amd.com> wrote:
>>
>>
>>
>> On 29/04/2025 17:20, Luca Fancellu wrote:
>>> Document the requirement needed to boot Xen on Armv8-R platforms.
>>>
>>> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
>>> ---
>>> v4 changes:
>>> - New patch
>>> ---
>>> docs/misc/arm/booting.txt | 8 ++++++++
>>> 1 file changed, 8 insertions(+)
>>>
>>> diff --git a/docs/misc/arm/booting.txt b/docs/misc/arm/booting.txt
>>> index 21ae74837dcc..719af74f1e69 100644
>>> --- a/docs/misc/arm/booting.txt
>>> +++ b/docs/misc/arm/booting.txt
>>> @@ -62,6 +62,14 @@ Xen relies on some settings the firmware has to configure in EL3 before starting
>>>
>>> * The bit SCR_EL3.HCE (resp. SCR.HCE for 32-bit ARM) must be set to 1.
>>>
>>> +When Xen runs on Armv8-R, the highest exception level is EL2 and the only
>>> +available state is secure (S) on Arm64 and non secure (NS) on Arm32, hence the
>>> +above requirements need to be adjusted to this case:
>>> +
>>> +* Xen must be entered in S EL2 mode on Arm64 and in NS EL2 mode on Arm32.
>>> +
>>> +* Xen must be entered with MPU off and data cache disabled (SCTLR_EL2.M bit and
>>> +  SCTLR_EL2.C set to 0).
>>>
>>> [1] linux/Documentation/arm/booting.rst
>>> Latest version: http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Documentation/arch/arm/booting.rst
>>
>> Is the goal of this patch to only write firmware/bootloader requirements or
>> accommodate booting protocol in general? Asking because in this file there is a
>> requirement that Xen should be loaded below 10TB which afaict does not fit Armv8-R.
> 
> Yes you are right, but I think this still holds since we support 1TB on Armv8-R at the moment?
No, this value denotes max RAM size you support and not where Xen must be
loaded. On ARMv8-A, we support max 2TB of RAM but require Xen to be loaded
anywhere up to 10TB. Do we have the same limitation on ARMv8-R?

~Michal



From xen-devel-bounces@lists.xenproject.org Wed Apr 30 07:23:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 30 Apr 2025 07:23:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.973444.1361569 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uA1mN-0002Ss-L0; Wed, 30 Apr 2025 07:22:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 973444.1361569; Wed, 30 Apr 2025 07: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 1uA1mN-0002Sl-HO; Wed, 30 Apr 2025 07:22:51 +0000
Received: by outflank-mailman (input) for mailman id 973444;
 Wed, 30 Apr 2025 07:22:49 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=IZps=XQ=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1uA1mL-0002SM-NO
 for xen-devel@lists.xenproject.org; Wed, 30 Apr 2025 07:22:49 +0000
Received: from EUR03-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur03on20631.outbound.protection.outlook.com
 [2a01:111:f403:260c::631])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ea713d44-2593-11f0-9eb4-5ba50f476ded;
 Wed, 30 Apr 2025 09:22:47 +0200 (CEST)
Received: from DUZPR01CA0212.eurprd01.prod.exchangelabs.com
 (2603:10a6:10:4b4::18) by PAXPR08MB7671.eurprd08.prod.outlook.com
 (2603:10a6:102:245::12) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.33; Wed, 30 Apr
 2025 07:22:44 +0000
Received: from DB5PEPF00014B8C.eurprd02.prod.outlook.com
 (2603:10a6:10:4b4:cafe::78) by DUZPR01CA0212.outlook.office365.com
 (2603:10a6:10:4b4::18) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.41 via Frontend Transport; Wed,
 30 Apr 2025 07:22:48 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DB5PEPF00014B8C.mail.protection.outlook.com (10.167.8.200) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8699.20
 via Frontend Transport; Wed, 30 Apr 2025 07:22:42 +0000
Received: from DB7PR08MB2987.eurprd08.prod.outlook.com (2603:10a6:5:1c::25) by
 AS8PR08MB7838.eurprd08.prod.outlook.com (2603:10a6:20b:529::11) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8699.19; Wed, 30 Apr
 2025 07:22:09 +0000
Received: from DB7PR08MB2987.eurprd08.prod.outlook.com
 ([fe80::d53f:b16d:70a5:8668]) by DB7PR08MB2987.eurprd08.prod.outlook.com
 ([fe80::d53f:b16d:70a5:8668%5]) with mapi id 15.20.8678.028; Wed, 30 Apr 2025
 07:22:08 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ea713d44-2593-11f0-9eb4-5ba50f476ded
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=fwN1pdcaD/G0zG2P4mDSv6FFcSrgUPPK/SgdkvqJ9LehSzyjG/7FOOazusKY2xHGg7GF4XSeCtdFyBsiiDysJWetl0iMJbGHBiF3wHxZ+36s0hoMQMqLlvoRhFdn/Dy4obtK/gKgLSKNYC/Xy33WviPUTkggplX1QaGu4RRzOz4nGTJyHfaThwp9aij5+43zK9limc+ztlDsOBllfC5pS+zRootnzJ+s5A4pMlBXeVG27r9Ng3Aa4u31RY+eyK35CHGYZby/3hx9dVff2/3gBmy6H+kXllJvOSHfw9QbL7LqExxUJ/DNYTLrKUxMCuZU2E7gyTfxBOOdwy025P4/fA==
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=Ulub1yCInVWkIRRBQ/MXTgwVWb+nxcubYWvPPGxXHQQ=;
 b=UhhJxYUA7Tv5bYDDNaFhDII0MyV1kmTrUpm9BYSgVj5ziSwcgw8y/2xLkAQKnjprH393LgwT7gKjpun7hhc+xrb7fD+GqPVnI3XxPe9cRs9ONWv7G0joD5ript5hvLHg10s4BDz9vLG1ZoPQITXr3OMUujrayKVE0b1yMig94yOjy9AzUcmcFOxqMsUoAqgbH1RmcUb1suL6eHuNSn572cLXZbpgMN/EoJE6WWo3Qe4rlZ4qgoVEYIcxFgmh51yYNeCRs9It4zmjQOwRUtakRA38/S/KUINJoCcbZQyOjdU8vGy3uMVOWhCwdivxgBEUm1oZMbJcPWQcJQB3X4ugAQ==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=amd.com smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Ulub1yCInVWkIRRBQ/MXTgwVWb+nxcubYWvPPGxXHQQ=;
 b=Y93crCthdPLaSO72EiSlTzp/52VMbbxBDUUq7BLnPfWEXbyQx77VImQfBkijiJQ9987DnTCGSJooHCyP7/zr0R5e23YyFLMcP6wMcBN7NtX6ST/DkzEbfVTrniEpIMp4gXlPuN65/JeIT+h7JlyRAeWRViZCc3+mpGxxGJEk+LQ=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=SiU7H/Uu3/d+46+qe4UCO8xBudP81kYagckS/B+8T9/c/EueYydvnRwYAWgaMojAVOVF2VpPfKafgnQCro5+YVrj7/uwd15G3BEAkluMwcJy7bXGbA5ba9GE61B7Ks4m2OEyLScZgjaaS6j7wkgScU/TISCt1KNmTSRiEG6dc8PGmwwB0tWQ0uYdtI7vkFQ2J54OTkTO1JDbNrXjyszSlhAiC5rxih/4Ak4IjKyjEFnAqVQ/r9XZ9fph1YLi9hC6dB3s0vLe5Wbn29UKIeLmVa664KoKbfyWzIWs5sdOXsKAeC8ZJeJ0cH4zOjUYpgu1jEYjs97KOg42aRPn1YH0LA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Ulub1yCInVWkIRRBQ/MXTgwVWb+nxcubYWvPPGxXHQQ=;
 b=uXDNzfv5W59i5PhXhgvg5F4ao2Ma+OAedzg3ESnlugDDxIAZYq6w385YzG6atnCfo2E6UBMnKztkSjIcRyAqoUMHJaAf+cPUpHCyjm1dGzg1hUF4sf2CPUoAStfjKHzFNtYuvJBu1cjYhe/hk1f3Q8+5cW09I2qLXHSXDQDu/9lv0qXo40GMmsaF/tonLlnPiiMKUAvxWjfxETMpseFwtkI7iJe0i7ZmQg5Uvn8TtJKEAiWqjA6y8ALRDefmq0JZ04pPTy2VOYAgsLFv9qAsAq6qE9k6TbK88Lhhf21TeCggG+jy0U2l4n5rasbYMKKx91Rxxda32aUBagivl8SJhw==
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=Ulub1yCInVWkIRRBQ/MXTgwVWb+nxcubYWvPPGxXHQQ=;
 b=Y93crCthdPLaSO72EiSlTzp/52VMbbxBDUUq7BLnPfWEXbyQx77VImQfBkijiJQ9987DnTCGSJooHCyP7/zr0R5e23YyFLMcP6wMcBN7NtX6ST/DkzEbfVTrniEpIMp4gXlPuN65/JeIT+h7JlyRAeWRViZCc3+mpGxxGJEk+LQ=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: "Orzel, Michal" <michal.orzel@amd.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand
 Marquis <Bertrand.Marquis@arm.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH v4 1/7] docs/arm: Document Xen booting protocol on Armv8-R
Thread-Topic: [PATCH v4 1/7] docs/arm: Document Xen booting protocol on
 Armv8-R
Thread-Index: AQHbuRpmN9lJogKQoUiVWa6WakCsQrO7wm+AgAAFy4CAAAG8AIAABNmA
Date: Wed, 30 Apr 2025 07:22:08 +0000
Message-ID: <12D73845-62C1-46CD-AA15-376B230F2513@arm.com>
References: <20250429152057.2380536-1-luca.fancellu@arm.com>
 <20250429152057.2380536-2-luca.fancellu@arm.com>
 <a78219d3-4872-42ff-9588-53a65a6bba74@amd.com>
 <BCD1B005-3231-4542-9574-A269F4DDBBF8@arm.com>
 <bc825300-1a9f-4cab-a0dc-f4f354a0cc9f@amd.com>
In-Reply-To: <bc825300-1a9f-4cab-a0dc-f4f354a0cc9f@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.400.131.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DB7PR08MB2987:EE_|AS8PR08MB7838:EE_|DB5PEPF00014B8C:EE_|PAXPR08MB7671:EE_
X-MS-Office365-Filtering-Correlation-Id: 01eab462-2f58-4e5e-1d80-08dd87b7cbff
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?YXhGVlprdFhoTGVNWWM4NEt4dTdaeHNGaUtHb0t0N3UyMzVLMkR5cVV4M2dL?=
 =?utf-8?B?Tit1ZTJrRXZhc29oNzFUMFBSeHFJRm1aemdrc0gxRHZ6Skx5NU5EMWRIU2Jw?=
 =?utf-8?B?bTFoYm83SzVTaFN2QXU2Mmw0NnRORERFWnUxVDVVMGZSL24wbUpjQXJyOUZ0?=
 =?utf-8?B?WFNyVXEweHZuaHNrTDRJM1VPZ1NrVHNXOVpkZWozOFV1cmVYTmRPUFhFLzNV?=
 =?utf-8?B?TkQraHgxTEliYWp6WDcwZVFGLzJXU1BXeU9nNGMvUGQzZjhXcDdHeVpERFR3?=
 =?utf-8?B?K3lsVWJ3bG9rWDNGUlJZL2VSQzBJNlM2Y1BKbCtwSUUyeUVUTnFITEo5UExE?=
 =?utf-8?B?VERIT0JKZEY5dnBNVGZXWUcrcm50K09DbmhiS1FsZWJ3a1RIQ3c5WXNobHpq?=
 =?utf-8?B?VXF4ZStVd0lKUEMxZDhvYkQzbnRXRkp6bktVSnRtbkZMRHZrbHJNdmk1S2o2?=
 =?utf-8?B?b1FTUTBsMWJ2MVd6SmhLTDRpSVYwOE9zdnl4cFFLMi9yMVdJbzQzcWFFT2kz?=
 =?utf-8?B?RFdhK2c0cUd0eVhERkpjaVUvZ3NCUjlNS0hGRnRER3RUb2ZlTUwwM2k2blFy?=
 =?utf-8?B?ZTY1Q3dmOWt6TkFTR3BrV0RhMml0TFlvYWFTR2w0ZnBhL3hjbjV0L2tQeHYy?=
 =?utf-8?B?dXg3WHQ1OGR5ZDlIZWJJZysxOFJVcmhVMjFjaW84SC9NNHBDbUdMa2VNdFJH?=
 =?utf-8?B?YWpuakZ0cXJ2eG10YlNkVWZpNytBcVRrdk5kWStWVzlyT1h1ajRNdkRzeWQ2?=
 =?utf-8?B?aVdYZWI3Q2dIWVhTcCtIejhFSWNPbmIvNGtqN3hIRGZBcGVhMHM3MVk5Znc1?=
 =?utf-8?B?a2l1SGdtZWtRZFUySkpqVkV0ZFJIdjVzcWF0azZxb0lwaC9wZ2c4djZGYmhn?=
 =?utf-8?B?UksraldSQ085TG0yeW04QlpOb0JseUp5VzlsY2poTWQ0TjJGWkd1TzQrZXdr?=
 =?utf-8?B?NGRHT05heVovcXRzQi80SkFFcTFwa1NCR25uamZuamNHTW54VTNzYWJmMWlR?=
 =?utf-8?B?cHdBSmYwZ0VxMkdyYzd3ZU82Zkp4TkhPN1lHVC9ta3c4MWFhaG9RS0YrSFYw?=
 =?utf-8?B?WHFaUlk5SGhjWVF1N2xiSkQ1M0FDbkExTmh5bzIyYW9jVmo2OUdWTDhNS2ht?=
 =?utf-8?B?SkhCemJYblBVYmhJSXFuRUY5ZjVleFk0M2x2N09xbllkSnNWTjBJZ1lHNXJx?=
 =?utf-8?B?WnI3NVFkQ05GMjlCNWk1Y2Fja2RnazFDTUZWMGluTXFpYTdRbGtwTHdTZVhz?=
 =?utf-8?B?d3BuUlcycTNPRFE2Q0RTbHh6YXloSTRCMjN4VXdpaTFQWlRYZXZRd2xyUjFR?=
 =?utf-8?B?bUFpWk1MNjNDb0lWcVdDRkxCbGNsWTBDYTRLY3l3dVJnTWNFdjI2L25EM2tp?=
 =?utf-8?B?UC9Bd01aM0F0ZkR4OGxsWVpEYVdLYkNOZ0ZlMTNKZm02WVkwVFQ3cElvOThx?=
 =?utf-8?B?L1hTWnpSMDR5TitEQUc2T3JoODRzN216WmJ4dVMweUl1cDAvL3hmem9EM2NY?=
 =?utf-8?B?b2cwS0Vyclo2ajIrWThYSG02N2RXVk5oQitvWlR5QThOUzlnZGZ5VDlvWmRr?=
 =?utf-8?B?YWRraGNzYnl4ZTJQR2xLR3NUZ3dDMW9DR3Z0WkY2b2REUjE1Zm9Rcys2QzEy?=
 =?utf-8?B?dGR6OHMxREQyVHZTMm1WNFNnQzVIMmVRNnFZSWdSU2xvYzJOT0FZQU5SVllY?=
 =?utf-8?B?TTBDWlg5Y2JMSDNCV2ZTSjZ4UElWWmlkMmJSa3E1ZWNXTldiQ2JLQklHQWdr?=
 =?utf-8?B?VlNhMWQvdmZlNjhkYm1Dak41dmZwQTd2emM0bVlGcWZDWkNjVWxvRGVDSnlO?=
 =?utf-8?B?dUtONmx3MWZtWUNnZW52d0JiS2JTTy9HZnFKems3WVIrbTNUZkUvcjBzakFx?=
 =?utf-8?B?MHdoeHFPYTIxMjVuNjUwR2ZIamVlZzFra2ZWVG5uYjI3enFoYi9UQWsweHJ2?=
 =?utf-8?B?bXZseUlVRGVkY3RrQ1hZWlJ3K2FDNjJndTBGQmNmdGszYzN3b0Vyc0lPYkJW?=
 =?utf-8?B?MVp5WmFnaUVBPT0=?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB7PR08MB2987.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: <611CD6E4A1D1C442AFD079B88027495A@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB7838
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB5PEPF00014B8C.eurprd02.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	87d70197-74d1-4832-8600-08dd87b7b7d6
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|82310400026|1800799024|14060799003|35042699022|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?ZE1oOFVWWjFPVWEzcmRESWE2a1l2QWN2VWk1NTZSN2RINGpadEpsU05oZ28v?=
 =?utf-8?B?R200WnF1VjQwcjBqT2tkRDV0SGdYQjhwNktDdmJUb214Vm5PSkIyUmE2Wng5?=
 =?utf-8?B?bkZQdkNoRUVjWGxqRERuRG16dVZYREgyTEl2TDZKWUtlNVVPelJlTEZUTVRw?=
 =?utf-8?B?KzF0NlNtNmlnNjJPSWN0M0c1WEFFREkyYmU2UlNZN3k0dTkrUFQ1c0dXWW5U?=
 =?utf-8?B?ZklGSWM4ejY0NnBzVWN5Q1ltNmdqVmFsbFEzVm9xcWhaV2plMW5XU0hDUW41?=
 =?utf-8?B?dWJCc0V0dEY5dldKci9iVDc5dmNOUHZXcDVLdjhNbW9OT3RKc3g0ZHN1QnhQ?=
 =?utf-8?B?bUZpT2g0ZTNWRmtud2xrRllvVGJFTGRucEo2cGZhSXhwQWp0TnplL3I0M3dy?=
 =?utf-8?B?QjY0OUJuSjk2cEJiaHhTcGRlTXcwdGdNT25pNHVyYmxDcVhzRExUV3QzWHI3?=
 =?utf-8?B?L2pTczJyQno1dWxiVXhlNUtEdTBjakZOT1BhbzZDMUpEK201R2s2VmE0Y0JD?=
 =?utf-8?B?RTA4SFYzTlc5MU5KSTl4WW14bjlhR3dUbnRDek4yYisxbEwraC82MktGZGs0?=
 =?utf-8?B?aDJwS3VOeitUZ3p0blJEL2oyY2VUQStLZzZ6akRDL1R5ZXBiUE9kVHhNK2dN?=
 =?utf-8?B?bDAwTlBLNHdPK2E5VGZqb25KcTM3UEQxUUk5dkRNa242TFFWV1VpYk1hY0ZS?=
 =?utf-8?B?VTF5QzlmQ1JObElwemJCRFQvWHlKcm10Vk53Z1lLaDgxTzgwZW5HbmJ2U1Z5?=
 =?utf-8?B?MEQwQjRMZUs3QWpaMGFiaDlld0lraU96UHFvbTFwWGFxcEZVQjNVK0cyUHk5?=
 =?utf-8?B?K2YzTUhnSXl1YmRkU3RtVEI2RlpxWVRiSUpVMGFxSlh2Y2QxNDJRT3YrckJY?=
 =?utf-8?B?cGFtU2lLSno2b3ZnU3dFYUJwVzVmYVRIdnZpMHNsQjhKTWI0SGRYQUF3Yzhn?=
 =?utf-8?B?c3J0SFZHUVpTOGM0VXNvVkhRR01pa0dEa2FtTzNrT1cvZExSV0ZCVm4yN0d2?=
 =?utf-8?B?R2kyNzR1SnE2ekRxclpZc3ZabnFLSnNuQnB5dEtjTkJLdkFWMEhidXJCVVJE?=
 =?utf-8?B?VmE4OFZLNVNSY2pUTWlRNU41Wk5EN1ZraFVScXlOY0lINCtWVkhmSVVXejRm?=
 =?utf-8?B?N0RFM2tGcndtYk5vMUMrTVpzT3RvRzZMNUl4d1RlajVRNHFmL3J5UlpJdGVS?=
 =?utf-8?B?MVVCQkJzM1JDdVRWUm1laTRQRlVpUmxNVnZFR1orZWd3eGxHMnN2cEM4cHVx?=
 =?utf-8?B?ZjEvemw4WnY2MkVlSHJtWmhLaUdDREZod1d2Qm5Md1RDMEF5ckFJSHpzenpG?=
 =?utf-8?B?UUY5MkpDbDJ5OHpmbGlqZXFBa3o5T2ZzcFE2ZDRIdThPOHdiaEVlNVJ1Vzh6?=
 =?utf-8?B?ZTRmOXd3TnZZbXpqZG4xdS9qb1JKVk95SEk5Qy9DbUc0aXZ2S2J6YXNOZk4y?=
 =?utf-8?B?ZGc0ZzZJYjJha0ZtSHlyUFpKS2svNitZYUI4TjRPYURzRVA0VUlqcEpscXV1?=
 =?utf-8?B?UG9XUkdoWVBLeUFneHI4K3d6cTR1YUkxclZaMkp1UFQvaWlXTDVUWTFxaVZw?=
 =?utf-8?B?ZFZ2Z3huU0F6RHM4RVFXSDJNZTJvZ2RHZG9hdHg5N2dZZkVCTHpNU0hjeExT?=
 =?utf-8?B?cWdaaUpwUUM2UUJGYTU5UHVWZDRHODZaUlpuVUx4c0NBSDZlOS8rVmZVTlRF?=
 =?utf-8?B?K3pjUnFDUkErdXdYYUNiQUFUVXdmeVdSRHVFWFlKWThXM2FmZ0xtcGRyRG5o?=
 =?utf-8?B?NHNhbnAzbWRUT2NCS081V0RWekFFdklZbTZvR3RiMEh2L3FIUFRZbFY0SW1B?=
 =?utf-8?B?S2pvOG4wbFhHRmtyTUxxMTBOQU5tUFNiMnEremFhTDJwOURkd1dBOUxlbE1y?=
 =?utf-8?B?azUrTERXV0pvY1pmUW9jeDJkbXQ1Y0hObWZhS28yTDV1aUREenJCOStXdDNp?=
 =?utf-8?B?WUlEa2NYNTlZM3N5dmFhbExBZG9xQlU0MWJWdzIxdS91dUNKbkNtNnQ3NUM2?=
 =?utf-8?B?NjB4QzgrZWRmdHJRV2s3SUJjK2dFK0JubkVsT1VmeHhjVEFwTW5tRHJ1UjQ1?=
 =?utf-8?Q?bVS3GM?=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(82310400026)(1800799024)(14060799003)(35042699022)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Apr 2025 07:22:42.6673
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 01eab462-2f58-4e5e-1d80-08dd87b7cbff
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DB5PEPF00014B8C.eurprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR08MB7671

SGkgTWljaGFsLA0KDQo+Pj4gDQo+Pj4gSXMgdGhlIGdvYWwgb2YgdGhpcyBwYXRjaCB0byBvbmx5
IHdyaXRlIGZpcm13YXJlL2Jvb3Rsb2FkZXIgcmVxdWlyZW1lbnRzIG9yDQo+Pj4gYWNjb21tb2Rh
dGUgYm9vdGluZyBwcm90b2NvbCBpbiBnZW5lcmFsPyBBc2tpbmcgYmVjYXVzZSBpbiB0aGlzIGZp
bGUgdGhlcmUgaXMgYQ0KPj4+IHJlcXVpcmVtZW50IHRoYXQgWGVuIHNob3VsZCBiZSBsb2FkZWQg
YmVsb3cgMTBUQiB3aGljaCBhZmFpY3QgZG9lcyBub3QgZml0IEFybXY4LVIuDQo+PiANCj4+IFll
cyB5b3UgYXJlIHJpZ2h0LCBidXQgSSB0aGluayB0aGlzIHN0aWxsIGhvbGRzIHNpbmNlIHdlIHN1
cHBvcnQgMVRCIG9uIEFybXY4LVIgYXQgdGhlIG1vbWVudD8NCj4gTm8sIHRoaXMgdmFsdWUgZGVu
b3RlcyBtYXggUkFNIHNpemUgeW91IHN1cHBvcnQgYW5kIG5vdCB3aGVyZSBYZW4gbXVzdCBiZQ0K
PiBsb2FkZWQuIE9uIEFSTXY4LUEsIHdlIHN1cHBvcnQgbWF4IDJUQiBvZiBSQU0gYnV0IHJlcXVp
cmUgWGVuIHRvIGJlIGxvYWRlZA0KPiBhbnl3aGVyZSB1cCB0byAxMFRCLiBEbyB3ZSBoYXZlIHRo
ZSBzYW1lIGxpbWl0YXRpb24gb24gQVJNdjgtUj8NCg0KVWhtLCByaWdodCwgSeKAmW0gbm90IGF3
YXJlIG9mIGxpbWl0YXRpb25zDQoNCj4gDQo+IH5NaWNoYWwNCj4gDQoNCg==


From xen-devel-bounces@lists.xenproject.org Wed Apr 30 07:41:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 30 Apr 2025 07:41:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.973464.1361578 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uA24Z-0005vC-8W; Wed, 30 Apr 2025 07:41:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 973464.1361578; Wed, 30 Apr 2025 07:41: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 1uA24Z-0005v5-5Y; Wed, 30 Apr 2025 07:41:39 +0000
Received: by outflank-mailman (input) for mailman id 973464;
 Wed, 30 Apr 2025 07:41: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=qtXD=XQ=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1uA24Y-0005uz-Jo
 for xen-devel@lists.xenproject.org; Wed, 30 Apr 2025 07:41:38 +0000
Received: from mail-pf1-x42e.google.com (mail-pf1-x42e.google.com
 [2607:f8b0:4864:20::42e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 890a08c7-2596-11f0-9ffb-bf95429c2676;
 Wed, 30 Apr 2025 09:41:33 +0200 (CEST)
Received: by mail-pf1-x42e.google.com with SMTP id
 d2e1a72fcca58-736c277331eso639260b3a.1
 for <xen-devel@lists.xenproject.org>; Wed, 30 Apr 2025 00:41:33 -0700 (PDT)
Received: from localhost ([84.78.159.3]) by smtp.gmail.com with UTF8SMTPSA id
 d2e1a72fcca58-7403991f725sm1022391b3a.52.2025.04.30.00.41.30
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 30 Apr 2025 00:41:31 -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: 890a08c7-2596-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1745998892; x=1746603692; 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=UKhWCt2/Ar1AMFhBPMtsJjqBoZBft5c+tmQ1EZctz9M=;
        b=pcp5fefgdOnq8aMg6nlMl3dqgjRu0PYSWSTK4Rz4iaD1wJl6zgWVl81Kf4OTIOecsY
         5VHnG4ngjKXhRqtjESu7i0qYwO8NsTs+xrjrV9aiycox6DAZENLPmGR2Llh6m1t/kywk
         oqMt2QY7nUDLsdfzT2+/TUSUyprKydxNcDp/g=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1745998892; x=1746603692;
        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=UKhWCt2/Ar1AMFhBPMtsJjqBoZBft5c+tmQ1EZctz9M=;
        b=w7fePFYjyG7HbuRmeewyfleOPhydqqBVAvwjDpHY0cJcJ4wn8IWuEdrL5KvxFzh/U4
         brb8dl4lI5dgZkbg3vi2b/H9wTkBoQxFNeE78jV0wZu09x7Z0P8ydRSuWFqDX88uMiOZ
         9RrGildZ0g4SdHaP8tgp7R3k/qmUlkTF1wa/KX5KBpSPjzGOcIycSgsCXwzZZQR2SOLb
         LceFIFEXbrNlN4qophEfD6maPYJVViAXf7xpl0SU4JDw9CXzPTwZ89K/4D+L41X7VlDj
         laDVpebwKTVjw5QReUMxoBT4XIHSai5RspDv4lH0kgLlC5H3OLUUEYsH3cZZ4+y+z6Aw
         1EJA==
X-Forwarded-Encrypted: i=1; AJvYcCU0ixti42Rve7B5UjJWU71IFjBIBpLUeMGGoAWDbW0oYBJ92yKp9UCx5POiMyJw54K8xMBA5oatwrU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzuIntlRfcA0AtB4uxbqD6NNwXjDlxi1a5Aj6gP5mhHWLy0Rm0L
	9xb0/+4HpKU5YfHCxH/yW93F1vObCt8Q0rmLSJ2BASo8DVyJEEP7Lf3hDQAS3QU=
X-Gm-Gg: ASbGncv/pfQr1D02s5qw0OFuRbhmsgHFik5qe2R6v0W2xS+jkwFqekcburraMjIGoTl
	D8dYNfV/DNjGFbKPwHQLDm0BWz8G2Os7oW4rTK+X7a+BXH0dvMe5Yg2eWoVXdT7z6enivZxT0yp
	PZepBfEj+yDWxwjGF/tZTEPj9jd93AjP7zvyB0RQTBAtLEiiwDSrx+7PW1MWi4IhgJoJzoFVCOB
	l23mNgDiludOwqguLEQPe9mLPu+9nW/glVs80Ug4vWc8brBZXvvfUj6eUY+pJ9De/L0a1KmPuju
	mMzNTVyb1bqlfuHJGoyTjjYFlqapttJxnYNhlWmTV5NTWQ==
X-Google-Smtp-Source: AGHT+IGdw/bypFbKFPXbjR2E48Wzc2TwcjLMPoUSamvvK/g5RRw0TvulM6BoMQiJ3WLF5MmMLMyIXA==
X-Received: by 2002:a05:6a21:1585:b0:1ee:b5f4:b1d7 with SMTP id adf61e73a8af0-20a8e65a70emr2895145637.7.1745998891628;
        Wed, 30 Apr 2025 00:41:31 -0700 (PDT)
Date: Wed, 30 Apr 2025 09:41:26 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
	"Ragiadakou, Xenia" <Xenia.Ragiadakou@amd.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>, jason.andryuk@amd.com,
	agarciav@amd.com, xen-devel@lists.xenproject.org
Subject: Re: [PATCH] xen/x86: allow Dom0 PVH to call XENMEM_exchange
Message-ID: <aBHUJjQk248aLi68@macbook.lan>
References: <alpine.DEB.2.22.394.2504251314050.785180@ubuntu-linux-20-04-desktop>
 <19d9aec4-c21a-47a9-9c58-6bfcadbd22e0@suse.com>
 <alpine.DEB.2.22.394.2504281242240.785180@ubuntu-linux-20-04-desktop>
 <06b66971-d8db-456f-8e83-a20ff7df8f5e@suse.com>
 <alpine.DEB.2.22.394.2504291425320.3879245@ubuntu-linux-20-04-desktop>
 <59bfc389-66c8-4d0f-92e3-c0079a807374@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <59bfc389-66c8-4d0f-92e3-c0079a807374@suse.com>

On Wed, Apr 30, 2025 at 08:27:55AM +0200, Jan Beulich wrote:
> On 29.04.2025 23:52, Stefano Stabellini wrote:
> > On Tue, 29 Apr 2025, Jan Beulich wrote:
> >> On 28.04.2025 22:00, Stefano Stabellini wrote:
> >>> On Mon, 28 Apr 2025, Jan Beulich wrote:
> >>>> On 25.04.2025 22:19, Stefano Stabellini wrote:
> >>>>> --- a/xen/arch/x86/mm.c
> >>>>> +++ b/xen/arch/x86/mm.c
> >>>>> @@ -4401,7 +4401,7 @@ int steal_page(
> >>>>>      const struct domain *owner;
> >>>>>      int rc;
> >>>>>  
> >>>>> -    if ( paging_mode_external(d) )
> >>>>> +    if ( paging_mode_external(d) && !is_hardware_domain(d) )
> >>>>>          return -EOPNOTSUPP;
> >>>>>  
> >>>>>      /* Grab a reference to make sure the page doesn't change under our feet */
> >>>>
> >>>> Is this (in particular the code following below here) a safe thing to do
> >>>> when we don't properly refcount page references from the P2M, yet? It's
> >>>> Dom0, yes, but even there I might see potential security implications (as
> >>>> top violating privacy of a guest).
> >>>
> >>> I don't think I am following, could you please elaborate more? The
> >>> change I am proposing is to allow Dom0 to share its own pages to the
> >>> co-processor. DomUs are not in the picture. I would be happy to add
> >>> further restriction to that effect. Is there something else you have in
> >>> mind?
> >>
> >> Once "shared" with the PSP, how would Xen know that this sharing has stopped?
> >> Without knowing, how could it safely give the same page to a DomU later on?
> >> ("Safely" in both directions: Without compromising privacy of the DomU and
> >> without compromising host safety / security.)
> > 
> > Why would Xen later assign the same page to a DomU? The page comes
> > from the hardware domain, which, as of today, cannot be destroyed. BTW I
> > realize it is a bit different, but we have been doing the same thing
> > with Dom0 1:1 mapped on ARM since the start of the project.
> 
> The life cycle of the page within Dom0 may be such that a need arises to
> move it elsewhere (balloon out, grant-transfer, and what not).

I think it's up to dom0 to make sure the page is handled
appropriately, in order for it to keep it's special contiguity
properties.

If the PSP is not using the IOMMU page-tables for DMA accesses, and
the hardware domain can freely interact with it, there's no protection
from such device accessing any random MFN on the system, and hence no
refcounts or similar will protect from that.

The only protection would be Xen owning the device, and the hardware
domain using an emulated/mediated interface to communicate with it.  I
have no idea how complicated the PSP interface is, and whether it
would be feasible to trap and emulate/mediate accesses in Xen.

> >>>>> --- a/xen/common/memory.c
> >>>>> +++ b/xen/common/memory.c
> >>>>> @@ -794,7 +794,7 @@ static long memory_exchange(XEN_GUEST_HANDLE_PARAM(xen_memory_exchange_t) arg)
> >>>>>              rc = guest_physmap_add_page(d, _gfn(gpfn), mfn,
> >>>>>                                          exch.out.extent_order) ?: rc;
> >>>>>  
> >>>>> -            if ( !paging_mode_translate(d) &&
> >>>>> +            if ( (!paging_mode_translate(d) || is_hardware_domain(d)) &&
> >>>>>                   __copy_mfn_to_guest_offset(exch.out.extent_start,
> >>>>>                                              (i << out_chunk_order) + j,
> >>>>>                                              mfn) )
> >>>>
> >>>> Wait, no: A PVH domain (Dom0 or not) can't very well make use of MFNs, can
> >>>> it?
> >>>
> >>> One way or another Dom0 PVH needs to know the MFN to pass it to the
> >>> co-processor.
> >>
> >> I see. That's pretty odd, though. I'm then further concerned of the order of
> >> the chunks. At present we're rather lax, in permitting PVH and PV Dom0 the
> >> same upper bound. With both CPU and I/O side translation there is, in
> >> principle, no reason to permit any kind of contiguity. Of course there's a
> >> performance aspect, but that hardly matters in the specific case here. Yet at
> >> the same time, once we expose MFNs, contiguity will start mattering as soon
> >> as any piece of memory needs to be larger than PAGE_SIZE. Which means it will
> >> make tightening of the presently lax handling prone to regressions in this
> >> new behavior you're introducing. What chunk size does the PSP driver require?
> > 
> > I don't know. The memory returned by XENMEM_exchange is contiguous,
> > right? Are you worried that Xen cannot allocate the requested amount of
> > memory contiguously?
> 
> That would be Dom0's problem then. But really for a translated guest the
> exchanged chunks being contiguous shouldn't matter, correctness-wise. That is,
> within Xen, rather than failing a request, we could choose to retry using
> discontiguous chunks (contiguous only in GFN space). Such an (afaict)
> otherwise correct change would break your use case, as it would invalidate the
> MFN information passed back. (This fallback approach would similarly apply to
> other related mem-ops. It's just that during domain creation the tool stack
> has its own fallback, so it may not be of much use right now.)

I think the description in the public header needs to be expanded to
specify what the XENMEM_exchange does for translated guests, and
clearly write down that the underlying MFNs for the exchanged region
will be contiguous.  Possibly a new XENMEMF_ flag needs to be added to
request contiguous physical memory for the new range.

Sadly this also has the side effect of quite likely shattering
superpages for dom0 EPT/NPT, which will result in decreased dom0
performance.

We have so far avoided exposing MFNs to HVM/PVH, but I don't see much
way to avoid this if there's no option to use IOMMU or NPT page-tables
with the PSP and we don't want to intercept PSP accesses in Xen and
translate requests on the fly.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Apr 30 08:42:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 30 Apr 2025 08:42:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.973483.1361604 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uA311-0006OZ-9j; Wed, 30 Apr 2025 08:42:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 973483.1361604; Wed, 30 Apr 2025 08: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 1uA311-0006OS-6l; Wed, 30 Apr 2025 08:42:03 +0000
Received: by outflank-mailman (input) for mailman id 973483;
 Wed, 30 Apr 2025 08:42: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=1mYU=XQ=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1uA30z-0006OM-Pg
 for xen-devel@lists.xenproject.org; Wed, 30 Apr 2025 08:42:02 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f908b04b-259e-11f0-9ffb-bf95429c2676;
 Wed, 30 Apr 2025 10:41:57 +0200 (CEST)
Received: from [192.168.7.202] ([71.202.166.45]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53U8f73s812541
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NO);
 Wed, 30 Apr 2025 01:41:07 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f908b04b-259e-11f0-9ffb-bf95429c2676
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53U8f73s812541
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1746002472;
	bh=2/QHRN+D8/djEoWuIZIlllhMwAZHSg2wUWQdlu6s4Ik=;
	h=Date:Subject:To:Cc:References:From:In-Reply-To:From;
	b=RJT6OmDAoNn/cc5MacwB1vC5wQ1M64qGWRanjOVN66rVpkGlXaLeGE7PE7eD7mISD
	 /dIdmza3K+wfDZyQexgmDwpxPQNN4+/Fbw41fhxlT3K0uT/PJjyGzdwaAn+yyr9k0A
	 CWJPVsS03uahIX8JX2uLwg3Z3hye2BZ7LId8jWJUQAdh/it1N65JzEiy3LsHYL9aJT
	 C68Y5ccPbfaA9gH+J9F27HnzlVWkht45bvdBotMjohzZpoa3XaE99KXAA3Fc4+U100
	 OtHQ9EQb/i6ZeoBsZ7v43PfIbFra7Pd1cFeKQ0RpDx0DYLCFE4fbEUVwSoFN8jeJCO
	 fS0vj6MT1+Cdw==
Message-ID: <c16677bd-ee63-4032-8825-7d2789dd7555@zytor.com>
Date: Wed, 30 Apr 2025 01:41:06 -0700
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 01/15] x86/msr: Add missing includes of <asm/msr.h>
To: =?UTF-8?Q?Ilpo_J=C3=A4rvinen?= <ilpo.jarvinen@linux.intel.com>
Cc: LKML <linux-kernel@vger.kernel.org>, kvm@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
        linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
        Netdev <netdev@vger.kernel.org>, platform-driver-x86@vger.kernel.org,
        tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        acme@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com,
        peterz@infradead.org, namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com,
        dapeng1.mi@linux.intel.com
References: <20250427092027.1598740-1-xin@zytor.com>
 <20250427092027.1598740-2-xin@zytor.com>
 <a1917b37-e41e-d303-749b-4007cda01605@linux.intel.com>
Content-Language: en-US
From: Xin Li <xin@zytor.com>
Autocrypt: addr=xin@zytor.com; keydata=
 xsDNBGUPz1cBDACS/9yOJGojBFPxFt0OfTWuMl0uSgpwk37uRrFPTTLw4BaxhlFL0bjs6q+0
 2OfG34R+a0ZCuj5c9vggUMoOLdDyA7yPVAJU0OX6lqpg6z/kyQg3t4jvajG6aCgwSDx5Kzg5
 Rj3AXl8k2wb0jdqRB4RvaOPFiHNGgXCs5Pkux/qr0laeFIpzMKMootGa4kfURgPhRzUaM1vy
 bsMsL8vpJtGUmitrSqe5dVNBH00whLtPFM7IbzKURPUOkRRiusFAsw0a1ztCgoFczq6VfAVu
 raTye0L/VXwZd+aGi401V2tLsAHxxckRi9p3mc0jExPc60joK+aZPy6amwSCy5kAJ/AboYtY
 VmKIGKx1yx8POy6m+1lZ8C0q9b8eJ8kWPAR78PgT37FQWKYS1uAroG2wLdK7FiIEpPhCD+zH
 wlslo2ETbdKjrLIPNehQCOWrT32k8vFNEMLP5G/mmjfNj5sEf3IOKgMTMVl9AFjsINLHcxEQ
 6T8nGbX/n3msP6A36FDfdSEAEQEAAc0WWGluIExpIDx4aW5Aenl0b3IuY29tPsLBDQQTAQgA
 NxYhBIUq/WFSDTiOvUIqv2u9DlcdrjdRBQJlD89XBQkFo5qAAhsDBAsJCAcFFQgJCgsFFgID
 AQAACgkQa70OVx2uN1HUpgv/cM2fsFCQodLArMTX5nt9yqAWgA5t1srri6EgS8W3F+3Kitge
 tYTBKu6j5BXuXaX3vyfCm+zajDJN77JHuYnpcKKr13VcZi1Swv6Jx1u0II8DOmoDYLb1Q2ZW
 v83W55fOWJ2g72x/UjVJBQ0sVjAngazU3ckc0TeNQlkcpSVGa/qBIHLfZraWtdrNAQT4A1fa
 sWGuJrChBFhtKbYXbUCu9AoYmmbQnsx2EWoJy3h7OjtfFapJbPZql+no5AJ3Mk9eE5oWyLH+
 QWqtOeJM7kKvn/dBudokFSNhDUw06e7EoVPSJyUIMbYtUO7g2+Atu44G/EPP0yV0J4lRO6EA
 wYRXff7+I1jIWEHpj5EFVYO6SmBg7zF2illHEW31JAPtdDLDHYcZDfS41caEKOQIPsdzQkaQ
 oW2hchcjcMPAfyhhRzUpVHLPxLCetP8vrVhTvnaZUo0xaVYb3+wjP+D5j/3+hwblu2agPsaE
 vgVbZ8Fx3TUxUPCAdr/p73DGg57oHjgezsDNBGUPz1gBDAD4Mg7hMFRQqlzotcNSxatlAQNL
 MadLfUTFz8wUUa21LPLrHBkUwm8RujehJrzcVbPYwPXIO0uyL/F///CogMNx7Iwo6by43KOy
 g89wVFhyy237EY76j1lVfLzcMYmjBoTH95fJC/lVb5Whxil6KjSN/R/y3jfG1dPXfwAuZ/4N
 cMoOslWkfZKJeEut5aZTRepKKF54T5r49H9F7OFLyxrC/uI9UDttWqMxcWyCkHh0v1Di8176
 jjYRNTrGEfYfGxSp+3jYL3PoNceIMkqM9haXjjGl0W1B4BidK1LVYBNov0rTEzyr0a1riUrp
 Qk+6z/LHxCM9lFFXnqH7KWeToTOPQebD2B/Ah5CZlft41i8L6LOF/LCuDBuYlu/fI2nuCc8d
 m4wwtkou1Y/kIwbEsE/6RQwRXUZhzO6llfoN96Fczr/RwvPIK5SVMixqWq4QGFAyK0m/1ap4
 bhIRrdCLVQcgU4glo17vqfEaRcTW5SgX+pGs4KIPPBE5J/ABD6pBnUUAEQEAAcLA/AQYAQgA
 JhYhBIUq/WFSDTiOvUIqv2u9DlcdrjdRBQJlD89ZBQkFo5qAAhsMAAoJEGu9DlcdrjdR4C0L
 /RcjolEjoZW8VsyxWtXazQPnaRvzZ4vhmGOsCPr2BPtMlSwDzTlri8BBG1/3t/DNK4JLuwEj
 OAIE3fkkm+UG4Kjud6aNeraDI52DRVCSx6xff3bjmJsJJMb12mWglN6LjdF6K+PE+OTJUh2F
 dOhslN5C2kgl0dvUuevwMgQF3IljLmi/6APKYJHjkJpu1E6luZec/lRbetHuNFtbh3xgFIJx
 2RpgVDP4xB3f8r0I+y6ua+p7fgOjDLyoFjubRGed0Be45JJQEn7A3CSb6Xu7NYobnxfkwAGZ
 Q81a2XtvNS7Aj6NWVoOQB5KbM4yosO5+Me1V1SkX2jlnn26JPEvbV3KRFcwV5RnDxm4OQTSk
 PYbAkjBbm+tuJ/Sm+5Yp5T/BnKz21FoCS8uvTiziHj2H7Cuekn6F8EYhegONm+RVg3vikOpn
 gao85i4HwQTK9/D1wgJIQkdwWXVMZ6q/OALaBp82vQ2U9sjTyFXgDjglgh00VRAHP7u1Rcu4
 l75w1xInsg==
In-Reply-To: <a1917b37-e41e-d303-749b-4007cda01605@linux.intel.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 4/29/2025 2:45 AM, Ilpo Järvinen wrote:
>>   arch/x86/events/msr.c                                         | 3 +++
>>   arch/x86/events/perf_event.h                                  | 1 +
>>   arch/x86/events/probe.c                                       | 2 ++
> Under arch/x86/events/ a few files seem to be missing the include?


Most C files in arch/x86/events/ include arch/x86/events/perf_event.h,
thus they don't need to include <asm/msr.h> directly once
arch/x86/events/perf_event.h includes <asm/msr.h>, and this patch does
that.


The following files include arch/x86/events/intel/uncore.h which 
includes arch/x86/events/perf_event.h, thus no change needed:
     arch/x86/events/intel/uncore.c
     arch/x86/events/intel/uncore_discovery.c
     arch/x86/events/intel/uncore_nhmex.c
     arch/x86/events/intel/uncore_snb.c
     arch/x86/events/intel/uncore_snbep.c

The following 2 files don't include arch/x86/events/perf_event.h so they
include <asm/msr.h> directly with this patch:
     arch/x86/events/msr.c
     arch/x86/events/probe.c

arch/x86/events/amd/uncore.c doesn't include
arch/x86/events/perf_event.h but includes <asm/msr.h> already.


So we are good in this directory, but it should be a separate patch with
the above explanation then.




From xen-devel-bounces@lists.xenproject.org Wed Apr 30 09:13:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 30 Apr 2025 09:13:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.973498.1361614 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uA3V3-0002Iz-FH; Wed, 30 Apr 2025 09:13:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 973498.1361614; Wed, 30 Apr 2025 09: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 1uA3V3-0002Is-CS; Wed, 30 Apr 2025 09:13:05 +0000
Received: by outflank-mailman (input) for mailman id 973498;
 Wed, 30 Apr 2025 09:13: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=1mYU=XQ=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1uA3V2-0002Im-7z
 for xen-devel@lists.xenproject.org; Wed, 30 Apr 2025 09:13:04 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 509c2f14-25a3-11f0-9eb4-5ba50f476ded;
 Wed, 30 Apr 2025 11:13:02 +0200 (CEST)
Received: from [192.168.7.202] ([71.202.166.45]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53U9CK8G823665
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NO);
 Wed, 30 Apr 2025 02:12:20 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 509c2f14-25a3-11f0-9eb4-5ba50f476ded
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53U9CK8G823665
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1746004344;
	bh=/7rTi9HvZ6onJSTdYqzzgTETKP8TAGe+/d/qRha+9aU=;
	h=Date:Subject:To:Cc:References:From:In-Reply-To:From;
	b=AB7yHzHZAPzuuD3gLAO5sc0iXVQ+0GQF0XcAMrHLP5xDswXkqmewyho4mFI+++jqF
	 MUjpki2/cVxD8OLc2l7OexLkzHfkljDGVxdNMg55yJJaHHq61lYWVxCqkbcDlKPQUA
	 zSYweN1JtJ7V8wjKay/kfLYDENnpupYxIHInm8F/XdaI7EVCrqyb+ID3uZvWWl1lZ6
	 JjsGcIx5lBkgRJaxum2F+bKJHQvcOpilyvKrFHCwoCu7yRPQ3Cx+lli3hqR1yJzAxL
	 76HNJqHr0UMhGU5BXc72W6NjFJ4FPu6zOuAmJG9uLPuSgV47tgyG8sly9PeO8s0Rh4
	 x5a/U6REmH0ZA==
Message-ID: <d5b7edab-1872-45ff-8f2e-bcb34f6bdc23@zytor.com>
Date: Wed, 30 Apr 2025 02:12:19 -0700
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 01/15] x86/msr: Add missing includes of <asm/msr.h>
To: Michael Kelley <mhklinux@outlook.com>,
        =?UTF-8?Q?Ilpo_J=C3=A4rvinen?= <ilpo.jarvinen@linux.intel.com>
Cc: LKML <linux-kernel@vger.kernel.org>,
        "kvm@vger.kernel.org" <kvm@vger.kernel.org>,
        "linux-perf-users@vger.kernel.org" <linux-perf-users@vger.kernel.org>,
        "linux-hyperv@vger.kernel.org" <linux-hyperv@vger.kernel.org>,
        "virtualization@lists.linux.dev" <virtualization@lists.linux.dev>,
        "linux-pm@vger.kernel.org" <linux-pm@vger.kernel.org>,
        "linux-edac@vger.kernel.org" <linux-edac@vger.kernel.org>,
        "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
        "linux-acpi@vger.kernel.org" <linux-acpi@vger.kernel.org>,
        "linux-hwmon@vger.kernel.org" <linux-hwmon@vger.kernel.org>,
        Netdev <netdev@vger.kernel.org>,
        "platform-driver-x86@vger.kernel.org" <platform-driver-x86@vger.kernel.org>,
        "tglx@linutronix.de" <tglx@linutronix.de>,
        "mingo@redhat.com" <mingo@redhat.com>, "bp@alien8.de" <bp@alien8.de>,
        "dave.hansen@linux.intel.com" <dave.hansen@linux.intel.com>,
        "x86@kernel.org" <x86@kernel.org>, "hpa@zytor.com" <hpa@zytor.com>,
        "acme@kernel.org" <acme@kernel.org>,
        "jgross@suse.com" <jgross@suse.com>,
        "andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>,
        "peterz@infradead.org" <peterz@infradead.org>,
        "namhyung@kernel.org" <namhyung@kernel.org>,
        "mark.rutland@arm.com" <mark.rutland@arm.com>,
        "alexander.shishkin@linux.intel.com" <alexander.shishkin@linux.intel.com>,
        "jolsa@kernel.org" <jolsa@kernel.org>,
        "irogers@google.com" <irogers@google.com>,
        "adrian.hunter@intel.com" <adrian.hunter@intel.com>,
        "kan.liang@linux.intel.com" <kan.liang@linux.intel.com>,
        "wei.liu@kernel.org" <wei.liu@kernel.org>,
        "ajay.kaher@broadcom.com" <ajay.kaher@broadcom.com>,
        "bcm-kernel-feedback-list@broadcom.com"
 <bcm-kernel-feedback-list@broadcom.com>,
        "tony.luck@intel.com" <tony.luck@intel.com>,
        "pbonzini@redhat.com" <pbonzini@redhat.com>,
        "vkuznets@redhat.com" <vkuznets@redhat.com>,
        "seanjc@google.com" <seanjc@google.com>,
        "luto@kernel.org"
 <luto@kernel.org>,
        "boris.ostrovsky@oracle.com"
 <boris.ostrovsky@oracle.com>,
        "kys@microsoft.com" <kys@microsoft.com>,
        "haiyangz@microsoft.com" <haiyangz@microsoft.com>,
        "decui@microsoft.com" <decui@microsoft.com>,
        "dapeng1.mi@linux.intel.com" <dapeng1.mi@linux.intel.com>
References: <20250427092027.1598740-1-xin@zytor.com>
 <20250427092027.1598740-2-xin@zytor.com>
 <a1917b37-e41e-d303-749b-4007cda01605@linux.intel.com>
 <SN6PR02MB4157EA2E3B827141588DA310D4832@SN6PR02MB4157.namprd02.prod.outlook.com>
Content-Language: en-US
From: Xin Li <xin@zytor.com>
Autocrypt: addr=xin@zytor.com; keydata=
 xsDNBGUPz1cBDACS/9yOJGojBFPxFt0OfTWuMl0uSgpwk37uRrFPTTLw4BaxhlFL0bjs6q+0
 2OfG34R+a0ZCuj5c9vggUMoOLdDyA7yPVAJU0OX6lqpg6z/kyQg3t4jvajG6aCgwSDx5Kzg5
 Rj3AXl8k2wb0jdqRB4RvaOPFiHNGgXCs5Pkux/qr0laeFIpzMKMootGa4kfURgPhRzUaM1vy
 bsMsL8vpJtGUmitrSqe5dVNBH00whLtPFM7IbzKURPUOkRRiusFAsw0a1ztCgoFczq6VfAVu
 raTye0L/VXwZd+aGi401V2tLsAHxxckRi9p3mc0jExPc60joK+aZPy6amwSCy5kAJ/AboYtY
 VmKIGKx1yx8POy6m+1lZ8C0q9b8eJ8kWPAR78PgT37FQWKYS1uAroG2wLdK7FiIEpPhCD+zH
 wlslo2ETbdKjrLIPNehQCOWrT32k8vFNEMLP5G/mmjfNj5sEf3IOKgMTMVl9AFjsINLHcxEQ
 6T8nGbX/n3msP6A36FDfdSEAEQEAAc0WWGluIExpIDx4aW5Aenl0b3IuY29tPsLBDQQTAQgA
 NxYhBIUq/WFSDTiOvUIqv2u9DlcdrjdRBQJlD89XBQkFo5qAAhsDBAsJCAcFFQgJCgsFFgID
 AQAACgkQa70OVx2uN1HUpgv/cM2fsFCQodLArMTX5nt9yqAWgA5t1srri6EgS8W3F+3Kitge
 tYTBKu6j5BXuXaX3vyfCm+zajDJN77JHuYnpcKKr13VcZi1Swv6Jx1u0II8DOmoDYLb1Q2ZW
 v83W55fOWJ2g72x/UjVJBQ0sVjAngazU3ckc0TeNQlkcpSVGa/qBIHLfZraWtdrNAQT4A1fa
 sWGuJrChBFhtKbYXbUCu9AoYmmbQnsx2EWoJy3h7OjtfFapJbPZql+no5AJ3Mk9eE5oWyLH+
 QWqtOeJM7kKvn/dBudokFSNhDUw06e7EoVPSJyUIMbYtUO7g2+Atu44G/EPP0yV0J4lRO6EA
 wYRXff7+I1jIWEHpj5EFVYO6SmBg7zF2illHEW31JAPtdDLDHYcZDfS41caEKOQIPsdzQkaQ
 oW2hchcjcMPAfyhhRzUpVHLPxLCetP8vrVhTvnaZUo0xaVYb3+wjP+D5j/3+hwblu2agPsaE
 vgVbZ8Fx3TUxUPCAdr/p73DGg57oHjgezsDNBGUPz1gBDAD4Mg7hMFRQqlzotcNSxatlAQNL
 MadLfUTFz8wUUa21LPLrHBkUwm8RujehJrzcVbPYwPXIO0uyL/F///CogMNx7Iwo6by43KOy
 g89wVFhyy237EY76j1lVfLzcMYmjBoTH95fJC/lVb5Whxil6KjSN/R/y3jfG1dPXfwAuZ/4N
 cMoOslWkfZKJeEut5aZTRepKKF54T5r49H9F7OFLyxrC/uI9UDttWqMxcWyCkHh0v1Di8176
 jjYRNTrGEfYfGxSp+3jYL3PoNceIMkqM9haXjjGl0W1B4BidK1LVYBNov0rTEzyr0a1riUrp
 Qk+6z/LHxCM9lFFXnqH7KWeToTOPQebD2B/Ah5CZlft41i8L6LOF/LCuDBuYlu/fI2nuCc8d
 m4wwtkou1Y/kIwbEsE/6RQwRXUZhzO6llfoN96Fczr/RwvPIK5SVMixqWq4QGFAyK0m/1ap4
 bhIRrdCLVQcgU4glo17vqfEaRcTW5SgX+pGs4KIPPBE5J/ABD6pBnUUAEQEAAcLA/AQYAQgA
 JhYhBIUq/WFSDTiOvUIqv2u9DlcdrjdRBQJlD89ZBQkFo5qAAhsMAAoJEGu9DlcdrjdR4C0L
 /RcjolEjoZW8VsyxWtXazQPnaRvzZ4vhmGOsCPr2BPtMlSwDzTlri8BBG1/3t/DNK4JLuwEj
 OAIE3fkkm+UG4Kjud6aNeraDI52DRVCSx6xff3bjmJsJJMb12mWglN6LjdF6K+PE+OTJUh2F
 dOhslN5C2kgl0dvUuevwMgQF3IljLmi/6APKYJHjkJpu1E6luZec/lRbetHuNFtbh3xgFIJx
 2RpgVDP4xB3f8r0I+y6ua+p7fgOjDLyoFjubRGed0Be45JJQEn7A3CSb6Xu7NYobnxfkwAGZ
 Q81a2XtvNS7Aj6NWVoOQB5KbM4yosO5+Me1V1SkX2jlnn26JPEvbV3KRFcwV5RnDxm4OQTSk
 PYbAkjBbm+tuJ/Sm+5Yp5T/BnKz21FoCS8uvTiziHj2H7Cuekn6F8EYhegONm+RVg3vikOpn
 gao85i4HwQTK9/D1wgJIQkdwWXVMZ6q/OALaBp82vQ2U9sjTyFXgDjglgh00VRAHP7u1Rcu4
 l75w1xInsg==
In-Reply-To: <SN6PR02MB4157EA2E3B827141588DA310D4832@SN6PR02MB4157.namprd02.prod.outlook.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 4/29/2025 9:20 PM, Michael Kelley wrote:
>> Also under hyperv/ not all files are covered but I'm a bit hesitant to
>> suggest a change there since I'm not sure if they (hypervisors) do
>> something special w.r.t. msr.
> I've worked on the Hyper-V code in Linux for 8 years or so, first as
> a Microsoft employee, and more recently as a retiree. 🙂 I'm not
> aware of anything special w.r.t. MSR access for Hyper-V guests.
> All the normal Linux code for accessing MSRs just works. Hyper-V
> *does* provide a set of synthetic MSRs that are unique to
> Hyper-V, but they are also accessed using normal Linux code. Of
> course, at runtime the access to these synthetic MSRs always
> traps to the hypervisor.
> 
> I'm planning to apply Xin Li's patch set and make sure nothing
> breaks for Hyper-V guests, and particularly when running as an
> SEV-SNP or TDX guest. Hopefully I can do that by early next week
> at the latest.

Hi Michael, I appreciate it!


From xen-devel-bounces@lists.xenproject.org Wed Apr 30 09:17:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 30 Apr 2025 09:17:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.973510.1361624 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uA3ZI-0002sH-00; Wed, 30 Apr 2025 09:17:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 973510.1361624; Wed, 30 Apr 2025 09:17: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 1uA3ZH-0002sA-Tj; Wed, 30 Apr 2025 09:17:27 +0000
Received: by outflank-mailman (input) for mailman id 973510;
 Wed, 30 Apr 2025 09:17:26 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=9/+r=XQ=linux.intel.com=ilpo.jarvinen@srs-se1.protection.inumbo.net>)
 id 1uA3ZG-0002s4-Id
 for xen-devel@lists.xenproject.org; Wed, 30 Apr 2025 09:17:26 +0000
Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ec92f597-25a3-11f0-9eb4-5ba50f476ded;
 Wed, 30 Apr 2025 11:17:24 +0200 (CEST)
Received: from orviesa005.jf.intel.com ([10.64.159.145])
 by fmvoesa101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 30 Apr 2025 02:17:22 -0700
Received: from ijarvine-mobl1.ger.corp.intel.com (HELO localhost)
 ([10.245.245.97])
 by orviesa005-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 30 Apr 2025 02:17:10 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ec92f597-25a3-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1746004644; x=1777540644;
  h=from:date:to:cc:subject:in-reply-to:message-id:
   references:mime-version:content-id;
  bh=0MRDc7XkKAhdLo9NoWiZ7a37tKdrUj31jPMIXHPElEQ=;
  b=FmVVrpX31idIr+m1wN1XNNIjWkNf4aLWdVD/AxCrITc/5edUx6E0zNP8
   aDIYb8DZbnlk1HuNqZvJVBIEUfB1iNau/84wrUaIOFqxfwY4MhRnCC+Yg
   0XgjPd3e8V9CMTZhrBbmPEij4eQYVnsQqhqa0KqZpC2KV/BuPRZPpkid2
   NufZNOoersoL9rdQEkBBwE1TJlC/0oEv7X2bfxTgiMJNaAZ9qJFaBOITF
   h2mZSuqvzT40KyLxAyAi4yj7Hz7mw3Bl2tr4C2uuHKvPE1XznOTY3NuZk
   U360C4u8lFW8pGfAIjedX0IdhMo1gfqVtQpjfwbtb27FVl5h8M9IQsstS
   A==;
X-CSE-ConnectionGUID: 7vBytfcqSUK/SWC8unV/+A==
X-CSE-MsgGUID: FcG9NdqSQiGuWxUZSYgmtA==
X-IronPort-AV: E=McAfee;i="6700,10204,11418"; a="73044386"
X-IronPort-AV: E=Sophos;i="6.15,251,1739865600"; 
   d="scan'208";a="73044386"
X-CSE-ConnectionGUID: /a7mAvi6S1y/UJBA/L4NuA==
X-CSE-MsgGUID: NSdWhcCYRFm9Gy2+IE0YuA==
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="6.15,251,1739865600"; 
   d="scan'208";a="139249217"
From: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= <ilpo.jarvinen@linux.intel.com>
Date: Wed, 30 Apr 2025 12:17:06 +0300 (EEST)
To: Xin Li <xin@zytor.com>
cc: LKML <linux-kernel@vger.kernel.org>, kvm@vger.kernel.org, 
    linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org, 
    virtualization@lists.linux.dev, linux-pm@vger.kernel.org, 
    linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org, 
    linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org, 
    Netdev <netdev@vger.kernel.org>, platform-driver-x86@vger.kernel.org, 
    tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, 
    dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com, 
    acme@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com, 
    peterz@infradead.org, namhyung@kernel.org, mark.rutland@arm.com, 
    alexander.shishkin@linux.intel.com, jolsa@kernel.org, irogers@google.com, 
    adrian.hunter@intel.com, kan.liang@linux.intel.com, wei.liu@kernel.org, 
    ajay.kaher@broadcom.com, bcm-kernel-feedback-list@broadcom.com, 
    tony.luck@intel.com, pbonzini@redhat.com, vkuznets@redhat.com, 
    seanjc@google.com, luto@kernel.org, boris.ostrovsky@oracle.com, 
    kys@microsoft.com, haiyangz@microsoft.com, decui@microsoft.com, 
    dapeng1.mi@linux.intel.com
Subject: Re: [PATCH v4 01/15] x86/msr: Add missing includes of <asm/msr.h>
In-Reply-To: <c16677bd-ee63-4032-8825-7d2789dd7555@zytor.com>
Message-ID: <d1bf0657-1cc5-b6ec-5601-f31efefacd9a@linux.intel.com>
References: <20250427092027.1598740-1-xin@zytor.com> <20250427092027.1598740-2-xin@zytor.com> <a1917b37-e41e-d303-749b-4007cda01605@linux.intel.com> <c16677bd-ee63-4032-8825-7d2789dd7555@zytor.com>
MIME-Version: 1.0
Content-Type: multipart/mixed; BOUNDARY="8323328-830254077-1746003796=:7433"
Content-ID: <b1309532-f075-10c2-3416-1951dccf3d32@linux.intel.com>

  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

--8323328-830254077-1746003796=:7433
Content-Type: text/plain; CHARSET=ISO-8859-15
Content-Transfer-Encoding: QUOTED-PRINTABLE
Content-ID: <d13050cf-2b1d-6913-5e66-9452e1353593@linux.intel.com>

On Wed, 30 Apr 2025, Xin Li wrote:

> On 4/29/2025 2:45 AM, Ilpo J=E4rvinen wrote:
> > >   arch/x86/events/msr.c                                         | 3 +=
++
> > >   arch/x86/events/perf_event.h                                  | 1 +
> > >   arch/x86/events/probe.c                                       | 2 +=
+
> > Under arch/x86/events/ a few files seem to be missing the include?
>=20
>=20
> Most C files in arch/x86/events/ include arch/x86/events/perf_event.h,
> thus they don't need to include <asm/msr.h> directly once
> arch/x86/events/perf_event.h includes <asm/msr.h>, and this patch does
> that.
>=20
>=20
> The following files include arch/x86/events/intel/uncore.h which includes
> arch/x86/events/perf_event.h, thus no change needed:
>     arch/x86/events/intel/uncore.c
>     arch/x86/events/intel/uncore_discovery.c
>     arch/x86/events/intel/uncore_nhmex.c
>     arch/x86/events/intel/uncore_snb.c
>     arch/x86/events/intel/uncore_snbep.c
>=20
> The following 2 files don't include arch/x86/events/perf_event.h so they
> include <asm/msr.h> directly with this patch:
>     arch/x86/events/msr.c
>     arch/x86/events/probe.c
>=20
> arch/x86/events/amd/uncore.c doesn't include
> arch/x86/events/perf_event.h but includes <asm/msr.h> already.
>=20
>=20
> So we are good in this directory, but it should be a separate patch with
> the above explanation then.

Hi,

While this is not my subsystem so don't have the final say here, you had=20
to explain quite much to prove that (and reviewer would have to go through=
=20
the same places to check). Wouldn't it be much simpler for all if all=20
those .c files would just include <asm/msr.h> directly? No need to explain=
=20
anything then.

Also, similar to what you're doing for some tsc related things in this=20
series, somebody could in the future decide that hey, these static inline=
=20
functions (that use .*msr.*) belong to some other file, allowing msr.h to=
=20
be removed from arch/x86/events/perf_event.h. Again, we'd need to add=20
asm/msr.h into more .c files. This is the problem with relying on indirect=
=20
includes, they create hard to track dependencies for #includes done in .h=
=20
files. If we actively encourage to depend on indirect #include=20
dependencies like that, it makes it very hard to  _remove_ any #include=20
from a header file (as you have yourself discovered).

--=20
 i.
--8323328-830254077-1746003796=:7433--


From xen-devel-bounces@lists.xenproject.org Wed Apr 30 10:56:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 30 Apr 2025 10:56:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.973527.1361636 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uA576-0000Aa-Vu; Wed, 30 Apr 2025 10:56:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 973527.1361636; Wed, 30 Apr 2025 10:56: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 1uA576-0000AS-S4; Wed, 30 Apr 2025 10:56:28 +0000
Received: by outflank-mailman (input) for mailman id 973527;
 Wed, 30 Apr 2025 10:56:27 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=GHIQ=XQ=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1uA575-0000AM-Bk
 for xen-devel@lists.xenproject.org; Wed, 30 Apr 2025 10:56:27 +0000
Received: from fout-a1-smtp.messagingengine.com
 (fout-a1-smtp.messagingengine.com [103.168.172.144])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bcccbc7d-25b1-11f0-9ffb-bf95429c2676;
 Wed, 30 Apr 2025 12:56:16 +0200 (CEST)
Received: from phl-compute-11.internal (phl-compute-11.phl.internal
 [10.202.2.51])
 by mailfout.phl.internal (Postfix) with ESMTP id 323A31380E92;
 Wed, 30 Apr 2025 06:56:15 -0400 (EDT)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-11.internal (MEProxy); Wed, 30 Apr 2025 06:56:15 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed,
 30 Apr 2025 06:56:13 -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: bcccbc7d-25b1-11f0-9ffb-bf95429c2676
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=fm2; t=1746010575;
	 x=1746096975; bh=IAxGW6JA/FZzlRWj4x/Xypw1cEonIdLRp0X9GQQnIMI=; b=
	edDQgGlYacmIVWNicDiQDP4vkKwim3N4yJJvC+PRCyeAkTqCnYhX0DxPMXo6sHts
	Q3QMEjbWMM/VIy0JxxjTZO7eGlmd05KDIMxGEAuDoCq1GUkDNbVe66LrDtK7Ei6b
	dwScQJ/o5fpSQEB5Q86I3o0+uqGutU6zmBY9+TGR3P8RgP0FNKjmnPkDYSBlwTTc
	0veJ32RxpldgC4IpE8jsFNOSbE7k2ZK3/aVBVTcHkkuedp/M+29ZTJBWJ3wF6BUh
	GfCNUG9AVwmao2y3J74KxEsLn8D7DqbTBbrwxxz81ZaqXvxgYW/O5NP+EI8ohNlr
	IVeeZq6UXdQI2zS3GkMafg==
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=
	1746010575; x=1746096975; bh=IAxGW6JA/FZzlRWj4x/Xypw1cEonIdLRp0X
	9GQQnIMI=; b=HyYXf7Pjx8Ilc7SSZG67cGf8xM1qAdoKn63Ygdct4dLFYbl+me9
	/LxsaFigkHz/YqshRG8EfnSUsI4CxF9hXBXOkQhHJ4JDC6RENhwPniFmt2E+fDqr
	4QsufEKHKJRegpk5K1kQvjDDl77OO0waYMzrVvtNgqEoo1LbyrCwypa/qonxXNWi
	7Ud2Baf/7kEd2pzg1PEEA88Pa3wys0NHeN2p3eqGJ5lv2G6UkzKdyVapJz86IJiq
	bzqyLZxg8QgKt+CVDsBbr6WZBXBATQFkl95zRNq9qGpyV1cikRnB2WmjFk6RyxlA
	+hzRadTwSlvsi1b1jLegvZmippnzY8uqrEg==
X-ME-Sender: <xms:zgESaO37Ttxz7NMtH0GACdUnIw1dSGqLWwzNxGeBToH1Th3DtZzv_Q>
    <xme:zgESaBFOatAkEvCWlC0MzLbSP86WLvTRkOF4SwMxLjbGpdi8d69_eMAB4b0bqaAGR
    n_At_IYcV-ohA>
X-ME-Received: <xmr:zgESaG7bcuxnAFCrFBphWqqxp4zbNepellMRb_OX75gddLXwYL0XVTUNGJy_xRX91-2v20n7F-67_3axwmyn1C8IIfwX5fTiyA>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddvieeiheduucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv
    pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih
    gvnhhtshculddquddttddmnecujfgurhepfffhvfevuffkfhggtggujgesghdtreertddt
    jeenucfhrhhomhepofgrrhgvkhcuofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuc
    eomhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecu
    ggftrfgrthhtvghrnhephfettdejhfehjeekgfdvudfhtdejlefghfehieeuteegveeitd
    dvgfetveekiefhnecuffhomhgrihhnpehophgvnhhsuhhsvgdrohhrghdpqhhusggvshdq
    ohhsrdhorhhgpdhgihhthhhusgdrtghomhdpkhgvrhhnvghlrdhorhhgnecuvehluhhsth
    gvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghksehi
    nhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdpnhgspghrtghpthhtohepgedpmh
    houggvpehsmhhtphhouhhtpdhrtghpthhtohepjhgrnhgurhihuhhksehgmhgrihhlrdgt
    ohhmpdhrtghpthhtohepjhhulhhivghnseigvghnrdhorhhgpdhrtghpthhtohepgigvnh
    dquggvvhgvlheslhhishhtshdrgigvnhhprhhojhgvtghtrdhorhhgpdhrtghpthhtohep
    jhhgrhhoshhssehsuhhsvgdrtghomh
X-ME-Proxy: <xmx:zgESaP2tV9CrEiI74gpnWRFNjFx5YuNgW1OAVwnOTOe2bCsL5ozrRw>
    <xmx:zgESaBEnJoOdivdiGlHkvxNydtgh3CDiC91tTfcNIfaIjPefPAtBwQ>
    <xmx:zgESaI-E6mD0tJX_48Q_LjZ-gtuFIskid8kyc5C0FEITk2curcr8rQ>
    <xmx:zgESaGl8ZJ_Cvd8S4qFOwwb7NqBnJV72CcSYNNOEKP3FuTAYFaPd6Q>
    <xmx:zwESaMFhxJnQLEfwk0XK_iqUaWjmAWre1YPl7T-FYdFMylIRVMh-mkbh>
Feedback-ID: i1568416f:Fastmail
Date: Wed, 30 Apr 2025 12:56:11 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Jason Andryuk <jandryuk@gmail.com>
Cc: Julien Grall <julien@xen.org>,
	xen-devel <xen-devel@lists.xenproject.org>,
	Juergen Gross <jgross@suse.com>
Subject: Re: NULL pointer dereference in xenbus_thread->...
Message-ID: <aBIBy5eQPypM_UbJ@mail-itl>
References: <ZO0WrR5J0xuwDIxW@mail-itl>
 <ZTUuRj6e5x5xFVqb@mail-itl>
 <ZgGjf3hpLHXXtb8z@mail-itl>
 <0f8c0e27-e60d-4e64-bc8a-6cb407c67ab2@xen.org>
 <ZlpTwbmDjNLkCNgH@mail-itl>
 <aAjgGKRAW95BnTiK@mail-itl>
 <CAKf6xpu7=2O96XK88WL02c-4po3qX-4P4i=2JbD2=o2JcM+_EQ@mail.gmail.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="SSp5QTSPFzulJB5O"
Content-Disposition: inline
In-Reply-To: <CAKf6xpu7=2O96XK88WL02c-4po3qX-4P4i=2JbD2=o2JcM+_EQ@mail.gmail.com>


--SSp5QTSPFzulJB5O
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Wed, 30 Apr 2025 12:56:11 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Jason Andryuk <jandryuk@gmail.com>
Cc: Julien Grall <julien@xen.org>,
	xen-devel <xen-devel@lists.xenproject.org>,
	Juergen Gross <jgross@suse.com>
Subject: Re: NULL pointer dereference in xenbus_thread->...

On Tue, Apr 29, 2025 at 08:59:45PM -0400, Jason Andryuk wrote:
> Hi Marek,
>=20
> On Wed, Apr 23, 2025 at 8:42=E2=80=AFAM Marek Marczykowski-G=C3=B3recki
> <marmarek@invisiblethingslab.com> wrote:
> >
> > On Sat, Jun 01, 2024 at 12:48:33AM +0200, Marek Marczykowski-G=C3=B3rec=
ki wrote:
> > > On Tue, Mar 26, 2024 at 11:00:50AM +0000, Julien Grall wrote:
> > > > Hi Marek,
> > > >
> > > > +Juergen for visibility
> > > >
> > > > When sending a bug report, I would suggest to CC relevant people as
> > > > otherwise it can get lost (not may people monitors Xen devel if the=
y are not
> > > > CCed).
> > > >
> > > > Cheers,
> > > >
> > > > On 25/03/2024 16:17, Marek Marczykowski-G=C3=B3recki wrote:
> > > > > On Sun, Oct 22, 2023 at 04:14:30PM +0200, Marek Marczykowski-G=C3=
=B3recki wrote:
> > > > > > On Mon, Aug 28, 2023 at 11:50:36PM +0200, Marek Marczykowski-G=
=C3=B3recki wrote:
> > > > > > > Hi,
> > > > > > >
> > > > > > > I've noticed in Qubes's CI failure like this:
> > > > > > >
> > > > > > > [  871.271292] BUG: kernel NULL pointer dereference, address:=
 0000000000000000
> > > > > > > [  871.275290] #PF: supervisor read access in kernel mode
> > > > > > > [  871.277282] #PF: error_code(0x0000) - not-present page
> > > > > > > [  871.279182] PGD 106fdb067 P4D 106fdb067 PUD 106fdc067 PMD 0
> > > > > > > [  871.281071] Oops: 0000 [#1] PREEMPT SMP NOPTI
> > > > > > > [  871.282698] CPU: 1 PID: 28 Comm: xenbus Not tainted 6.1.43=
-1.qubes.fc37.x86_64 #1
> > > > > > > [  871.285222] Hardware name: QEMU Standard PC (i440FX + PIIX=
, 1996), BIOS rel-1.16.0-0-gd239552-rebuilt.opensuse.org 04/01/2014
> > > > > > > [  871.288883] RIP: e030:__wake_up_common+0x4c/0x180
> > > > > > > [  871.292838] Code: 24 0c 89 4c 24 08 4d 85 c9 74 0a 41 f6 0=
1 04 0f 85 a3 00 00 00 48 8b 43 08 4c 8d 40 e8 48 83 c3 08 49 8d 40 18 48 3=
9 c3 74 5b <49> 8b 40 18 31 ed 4c 8d 70 e8 45 8b 28 41 f6 c5 04 75 5f 49 8b=
 40
> > > > > > > [  871.299776] RSP: e02b:ffffc900400f7e10 EFLAGS: 00010082
> > > > > > > [  871.301656] RAX: 0000000000000000 RBX: ffff88810541ce98 RC=
X: 0000000000000000
> > > > > > > [  871.304255] RDX: 0000000000000001 RSI: 0000000000000003 RD=
I: ffff88810541ce90
> > > > > > > [  871.306714] RBP: ffffc900400f0280 R08: ffffffffffffffe8 R0=
9: ffffc900400f7e68
> > > > > > > [  871.309937] R10: 0000000000007ff0 R11: ffff888100ad3000 R1=
2: ffffc900400f7e68
> > > > > > > [  871.312326] R13: 0000000000000000 R14: 0000000000000000 R1=
5: 0000000000000000
> > > > > > > [  871.314647] FS:  0000000000000000(0000) GS:ffff88813ff0000=
0(0000) knlGS:0000000000000000
> > > > > > > [  871.317677] CS:  10000e030 DS: 0000 ES: 0000 CR0: 00000000=
80050033
> > > > > > > [  871.319644] CR2: 0000000000000000 CR3: 00000001067fe000 CR=
4: 0000000000040660
> > > > > > > [  871.321973] Call Trace:
> > > > > > > [  871.322782]  <TASK>
> > > > > > > [  871.323494]  ? show_trace_log_lvl+0x1d3/0x2ef
> > > > > > > [  871.324901]  ? show_trace_log_lvl+0x1d3/0x2ef
> > > > > > > [  871.326310]  ? show_trace_log_lvl+0x1d3/0x2ef
> > > > > > > [  871.327721]  ? __wake_up_common_lock+0x82/0xd0
> > > > > > > [  871.329147]  ? __die_body.cold+0x8/0xd
> > > > > > > [  871.330378]  ? page_fault_oops+0x163/0x1a0
> > > > > > > [  871.331691]  ? exc_page_fault+0x70/0x170
> > > > > > > [  871.332946]  ? asm_exc_page_fault+0x22/0x30
> > > > > > > [  871.334454]  ? __wake_up_common+0x4c/0x180
> > > > > > > [  871.335777]  __wake_up_common_lock+0x82/0xd0
> > > > > > > [  871.337183]  ? process_writes+0x240/0x240
> > > > > > > [  871.338461]  process_msg+0x18e/0x2f0
> > > > > > > [  871.339627]  xenbus_thread+0x165/0x1c0
> > > > > > > [  871.340830]  ? cpuusage_read+0x10/0x10
> > > > > > > [  871.342032]  kthread+0xe9/0x110
> > > > > > > [  871.343317]  ? kthread_complete_and_exit+0x20/0x20
> > > > > > > [  871.345020]  ret_from_fork+0x22/0x30
> > > > > > > [  871.346239]  </TASK>
> > > > > > > [  871.347060] Modules linked in: snd_hda_codec_generic ledtr=
ig_audio snd_hda_intel snd_intel_dspcfg snd_intel_sdw_acpi snd_hda_codec sn=
d_hda_core snd_hwdep snd_seq snd_seq_device joydev snd_pcm intel_rapl_msr p=
pdev intel_rapl_common snd_timer pcspkr e1000e snd soundcore i2c_piix4 parp=
ort_pc parport loop fuse xenfs dm_crypt crct10dif_pclmul crc32_pclmul crc32=
c_intel polyval_clmulni polyval_generic floppy ghash_clmulni_intel sha512_s=
sse3 serio_raw virtio_scsi virtio_console bochs xhci_pci xhci_pci_renesas x=
hci_hcd qemu_fw_cfg drm_vram_helper drm_ttm_helper ttm ata_generic pata_acp=
i xen_privcmd xen_pciback xen_blkback xen_gntalloc xen_gntdev xen_evtchn sc=
si_dh_rdac scsi_dh_emc scsi_dh_alua uinput dm_multipath
> > > > > > > [  871.368892] CR2: 0000000000000000
> > > > > > > [  871.370160] ---[ end trace 0000000000000000 ]---
> > > > > > > [  871.371719] RIP: e030:__wake_up_common+0x4c/0x180
> > > > > > > [  871.373273] Code: 24 0c 89 4c 24 08 4d 85 c9 74 0a 41 f6 0=
1 04 0f 85 a3 00 00 00 48 8b 43 08 4c 8d 40 e8 48 83 c3 08 49 8d 40 18 48 3=
9 c3 74 5b <49> 8b 40 18 31 ed 4c 8d 70 e8 45 8b 28 41 f6 c5 04 75 5f 49 8b=
 40
> > > > > > > [  871.379866] RSP: e02b:ffffc900400f7e10 EFLAGS: 00010082
> > > > > > > [  871.381689] RAX: 0000000000000000 RBX: ffff88810541ce98 RC=
X: 0000000000000000
> > > > > > > [  871.383971] RDX: 0000000000000001 RSI: 0000000000000003 RD=
I: ffff88810541ce90
> > > > > > > [  871.386235] RBP: ffffc900400f0280 R08: ffffffffffffffe8 R0=
9: ffffc900400f7e68
> > > > > > > [  871.388521] R10: 0000000000007ff0 R11: ffff888100ad3000 R1=
2: ffffc900400f7e68
> > > > > > > [  871.390789] R13: 0000000000000000 R14: 0000000000000000 R1=
5: 0000000000000000
> > > > > > > [  871.393101] FS:  0000000000000000(0000) GS:ffff88813ff0000=
0(0000) knlGS:0000000000000000
> > > > > > > [  871.395671] CS:  10000e030 DS: 0000 ES: 0000 CR0: 00000000=
80050033
> > > > > > > [  871.397863] CR2: 0000000000000000 CR3: 00000001067fe000 CR=
4: 0000000000040660
> > > > > > > [  871.400441] Kernel panic - not syncing: Fatal exception
> > > > > > > [  871.402171] Kernel Offset: disabled
> > > > > > > (XEN) Hardware Dom0 crashed: rebooting machine in 5 seconds.
> > > > > > >
> > > > > > > It isn't the first time I see similar crash, but I can't real=
ly
> > > > > > > reproduce it reliably. Restarted test usually passes.
> > > > > > > Note this is Xen nested in KVM, so it could very well be some=
 oddity
> > > > > > > about nested virt, although looking at the stack trace, it's =
unlikely
> > > > > > > and more likely some race condition hit only on slower system.
> > > > > >
> > > > > > Recently I've got the same crash on a real system in domU too. =
And also
> > > > > > on nested on newer kernel 6.1.57 (here it happened in dom0). So=
, this is
> > > > > > still an issue and affects not only nested case :/
> > > > > >
> > > > > > > Unfortunately I don't have symbols for this kernel handy, but=
 there is a
> > > > > > > single wake_up() call in process_writes(), so it shouldn't be=
 an issue.
> > > > > > >
> > > > > > > Any ideas?
> > > > > > >
> > > > > > > Full log at https://openqa.qubes-os.org/tests/80779/logfile?f=
ilename=3Dserial0.txt
> > > > > >
> > > > > > More links at https://github.com/QubesOS/qubes-issues/issues/86=
38,
> > > > > > including more recent stack trace.
> > > > >
> > > > > Happens on 6.1.75 too (new stack trace I've added to the issue ab=
ove,
> > > > > but it's pretty similar).
> > >
> > > Recently I've got a report from another user about similar issue, on
> > > 6.6.29 this time. I also still encounter this issue once a month or s=
o,
> > > but the user claims they get it much more often:
> > > https://github.com/QubesOS/qubes-issues/issues/8638#issuecomment-2135=
419896
> > > The extra conditions reported by the user are:
> > > - old AMD system (KGPE-D16 with Opteron 6282 SE) requiring
> > >   `spec-ctrl=3Dibpb-entry=3Dno-pv` to remain usable
> > > - Whonix domU, which has a bunch of sysctl parameters changed, listed
> > >   at:
> > >   - https://github.com/Kicksecure/security-misc
> > >   - https://github.com/Kicksecure/security-misc/blob/master/usr/lib/s=
ysctl.d/990-security-misc.conf
> > >   (unsure which are relevant, maybe `vm.swappiness=3D1`?)
> >
> > I've got some more report confirming it's still happening on Linux
> > 6.12.18. Is there anything I can do to help fixing this? Maybe ask users
> > to enable some extra logging?
>=20
> Have you been able to capture a crash with debug symbols and run it
> through scripts/decode_stacktrace.sh?

Not really, as I don't have debug symbols for this kernel. And I can't
reliably reproduce it myself (for me it happens about once in a
month...). I can try reproducing debug symbols, theoretically I should
have all ingredients for it.

> I'm curious what process_msg+0x18e/0x2f0 is.  process_writes() has a
> direct call to wake_up(), but process_msg() calling req->cb(req) may
> be xs_wake_up() which is a thin wrapper over wake_up().

There is a code dump in the crash message, does it help?

> They make me wonder if req has been free()ed and at least partially
> zero-ed, but it still has wake_up() called.  The call stack here is
> reminiscent of the one here
> https://lore.kernel.org/xen-devel/Z_lJTyVipJJEpWg2@mail-itl/ and the
> unexpected value there is 0.

That's interesting idea, the one above I've seen only on 6.15-rc1 (and
no latter rc). But maybe?

> I haven't actually figured out a scenario where req would be kfree()ed
> early.  But the handling of kfree(req) being split between
> process_msg/writes() and xs_wait_for_reply() makes me a little uneasy.
>=20
> Regards,
> Jason

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmgSAcsACgkQ24/THMrX
1yy2Uwf+ME/9cs7PPGHqoIIrj14uguboY4L7Bvnna9/FgSx67fHkHdjeyvU9qATr
+KXs4CqfVuXdJmyIUu4DFOW2zXP72t+UwSMpOj7DgQnYLdOfsTuoCAZdl3l7bfEH
qR17NddFANPERJ9vg1aEG82qkmU791+pSCtYPaAGXNhQn5Lhm9iovfakQfLTRghV
D/Z3l0+LFl0jMRKgjC4VkB1CbeeXuF5IoP9HLRl60jeg4oTHR+eK5vUEvQ2DKX6s
6/arOfw12xCHuroRkQcO2J54vGBb50qaJyvc7zEwEA4pt9GNHpvxCVv+Qy8UAnWO
D/IkhqtM2yT0/cgAkblVdBz99H30jQ==
=1w3k
-----END PGP SIGNATURE-----

--SSp5QTSPFzulJB5O--


From xen-devel-bounces@lists.xenproject.org Wed Apr 30 10:57:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 30 Apr 2025 10:57:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.973536.1361645 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uA58R-0000fw-9c; Wed, 30 Apr 2025 10:57:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 973536.1361645; Wed, 30 Apr 2025 10:57: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 1uA58R-0000fp-5i; Wed, 30 Apr 2025 10:57:51 +0000
Received: by outflank-mailman (input) for mailman id 973536;
 Wed, 30 Apr 2025 10:57: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=5DpC=XQ=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1uA58P-0000ff-9Z
 for xen-devel@lists.xenproject.org; Wed, 30 Apr 2025 10:57:49 +0000
Received: from NAM12-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam12on20617.outbound.protection.outlook.com
 [2a01:111:f403:200a::617])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f29279f0-25b1-11f0-9eb4-5ba50f476ded;
 Wed, 30 Apr 2025 12:57:47 +0200 (CEST)
Received: from BN9PR12MB5273.namprd12.prod.outlook.com (2603:10b6:408:11e::22)
 by DM4PR12MB6614.namprd12.prod.outlook.com (2603:10b6:8:bb::13) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8699.19; Wed, 30 Apr
 2025 10:57:42 +0000
Received: from BN9PR12MB5273.namprd12.prod.outlook.com
 ([fe80::cf66:58ab:47be:4b13]) by BN9PR12MB5273.namprd12.prod.outlook.com
 ([fe80::cf66:58ab:47be:4b13%4]) with mapi id 15.20.8699.021; Wed, 30 Apr 2025
 10:57: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: f29279f0-25b1-11f0-9eb4-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=oFZgpXH96P5k1HbeZOExbSysrLBufjkv84nRLXKA45W735Ll4mHWhduZ6omTcNNDHX49hXrhcd3s0SFuqn46wqGFyXJr2eQvA/a4dZgtt1g9h0ZLnyLNHX4NtiuimkN/Oah3bAUmsA5gxKKIzzZdDi7PMJZA1qdgDaCilsnlE1VW9JEpDOlOD4imoxFUEkU9drfzN0/yMtJgWH1QRujzFvJ6nGWN8ARFeNpGygP1ZcpAfzec3v5QG1H12JaC521yt6E9IAcomrRTZO/iUgP9xjPuK31Ydx0Rb4kFeFwUL5RPA5AxDty968OiZc3jp/cWbogchAb/iLw0OvHr5U9JzA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=zRezftm7l8oWGtq03TV0Pt9u59bR8v6qde9sytcly3E=;
 b=EFATmH0A+TZgkXN9+yFo7T3uwoROqNNBQl2ARR/OCfIOPO+sIZcn5Qil0+h7CBhKdTKvg1I+gVZbE8QtnFfqB7TVVGnRYodS61ScT/sLDZRs5BiSZuVxi609q2cvL1Nd0A7rXsCpcY/XDC0uDz6L6K8fzX2NhZuP54UKjlbV7T7fX5y5qCbZwk5ZuyL0HG6J2LK0ttioGv9UVQzGjz6hIP1+CoS7BpdlLtu+VNBnbgz2e63yNRdcBlUdQ/SAJLcg0vXurGFNDWwLbKvgqCF0aWDkQOmUS1Yq1TIFHk8ADKrtIaa//QgmxDgzdEnWVbb3DVtB3+UpNFaNgE1VdGsjTg==
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=zRezftm7l8oWGtq03TV0Pt9u59bR8v6qde9sytcly3E=;
 b=PPvgk5b8GFWoMKr5Zk5hoFmSoPXBUluc4cLi+CBnuw/vgji/hQjqJzBY1gzqXCZPYkQtT3xCBv+Y7GlZsT/ZzGRbBjI7nSVYSBdn+Ci3k2jbDYWEyy+ocE+5NBRVcfxg2gGEDikycq9ekuPL4mGsZkuJw60PEIXj3lXsr2dHil4=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
Message-ID: <7fa8309f-0f5b-4842-bb0a-8c6e1fe5c11f@amd.com>
Date: Wed, 30 Apr 2025 12:57:38 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 3/7] arm/mpu: Provide and populate MPU C data
 structures
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>
References: <20250429152057.2380536-1-luca.fancellu@arm.com>
 <20250429152057.2380536-4-luca.fancellu@arm.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <20250429152057.2380536-4-luca.fancellu@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR0P281CA0115.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:a8::14) To BN9PR12MB5273.namprd12.prod.outlook.com
 (2603:10b6:408:11e::22)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN9PR12MB5273:EE_|DM4PR12MB6614:EE_
X-MS-Office365-Filtering-Correlation-Id: 9a809740-fdeb-4321-6d35-08dd87d5d4b8
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?WGJhMUxWTVdFUHNoS00zL0dOT1hkWnkwZ2FPelhKNFpkTDNLczlTa0k1QUNk?=
 =?utf-8?B?WHlNeHdJK3h2TG1udGlXMTJLRWFuWE13OUljaGZUTk85RThqM3UrWlZrVmNs?=
 =?utf-8?B?QVI5SThWY0hibDVVOGZ0Ly9oTERjKzZBaHJSLzdYM1JMUjlDVDA1TEk5UHN2?=
 =?utf-8?B?YmwwbDN2MnJ6NlV0UUJxK0F6S2lWWDM4TnoxSTdvS0NXajNIRk5qM2VrMHY4?=
 =?utf-8?B?NkNkWDFsNXk4eTJDSGNFMkhUV2lueTJ4OUhrOUJPamdBT1A4ZEN0cVNTT09k?=
 =?utf-8?B?S2VwdWw0TERXU2Q5bUw1ZFdVWGNZQkhBazBMZlhxbm5KLzRLc0N1SU9jU28w?=
 =?utf-8?B?QU13ZXZNTUcvWWk3aTZyc2hIdE9aUDdRS25pakk2Z2VTZWdtZ01uSkwyY1h1?=
 =?utf-8?B?NjFkTlpyZjR1TklockFjUjVkSno5eHdhOTE1amcrbjIwTGpQY3EwQnVxRlFS?=
 =?utf-8?B?OEtQZzZXb3RFUVZBdTRMSUcxOFNHNWlEbVpUMG1iTmNGMDNYVTJsRUVObk4v?=
 =?utf-8?B?KytUYVB3OVZuTzVlS0dCQUxSQmRNWmwvdDBRUG5CanpPQmY2Sjg1MHhtR0V6?=
 =?utf-8?B?bENTeVoyeC9FUko5cG5zYWU3aFVaVGxkampCVWxSa3FQWEdXSVNwZEVwQXhz?=
 =?utf-8?B?YktwU0JmTFlnOU1ZYmY5eDFkeE5KZmZOOU9BZUJCbi9rVDkyd0IxaDBXTjRp?=
 =?utf-8?B?VnhJQnFvRUEza1lHWGkzcE1LWThvdUcxYWxqOXFBTUNCeWdvY1NzS2xqNDdn?=
 =?utf-8?B?TEsrOTdkY29wRUdxODRBbUp4alZtRUVBYVhvTTUrSHdwR2VJV1NWMkg2bDlI?=
 =?utf-8?B?OFlTaG43SFhHbEdPY0YzLy9YWVVtNHIwN2V2dGRLWkh3NEcrenUzQ05wV1ZC?=
 =?utf-8?B?OTB0eldMNFp4NHZOemlJcHRrQWplTVlyOVpIT2NkTXRHYVhCTmRMY3NhQlIr?=
 =?utf-8?B?bDBRTHBWYkRrUlhBMkdpeCtTeXJXcVZxdDd6ck9aOGZTNVhpaUMrMmhmOE5i?=
 =?utf-8?B?YzZ6MFVRWFFoQkVHZmdUNmV3M2F6c1pndTMrUU4rMXo5S3pZUVhoemhKblBZ?=
 =?utf-8?B?TmxYSG5aNW1iREJFanBZS2M0TG1RamtON1RwdnFST2tsRlNleC9HZlpLVUlV?=
 =?utf-8?B?M3F0enZYM3B4OFd6L0k2TWJqSEo4U3RKQUIyMlVQKzd2dzRMWXBzeklLR1hu?=
 =?utf-8?B?OFpoZDVQSFQ1RkFaVmNPSTF6UmcxUktWdGNKUjdCYnE1amFuQ2RYNDJMYUpK?=
 =?utf-8?B?UllCY21ITkh5TGRZVDB6bE1mbkRtdy9CRS9aVVltQkxDYWVqSTA1aXVkRUxM?=
 =?utf-8?B?REFGSjVudTVvZHNZVnJRZjF0RFFrU2dWc09LT1Irc3piZnFGK1JwZzBoK0wz?=
 =?utf-8?B?eXVxYWljLzRLUGFQUFl4UVRyNzNidDd5QXRINkhxZm52d1hjQ0NkaUpmVjRh?=
 =?utf-8?B?WXo3TWZLcjROM1hIOTRLVGMvNnlxM3ZMemM1WGxodDRJOUxaQXc1bythWWZG?=
 =?utf-8?B?ajdQYmcrL3g5YzdaRm5YQ20wU0ZnVVlHQ1N3TEJHRlE3cnpjbmJPQ1ppOE5Q?=
 =?utf-8?B?bm5iK1FIU1E4UVUxamtnbWZ3RVgvOFRSRjJ3akJDaGV4MjRualdMbHVELzhq?=
 =?utf-8?B?SHVsWG4rZkF5bFlDOVdVMEhQT0dmK3A1T0tIaStaYXBkUCsvVnYvL252L3BZ?=
 =?utf-8?B?US93M3NkVTluMzluZXZxMlBETndxT0t3RDY1NEN1VEZpb1B6bHBGdU1HaFlU?=
 =?utf-8?B?V0R2RkVKV0tOM0JWZzhaRExGWHF1RXhMSWIvYXZ3VENaZjg5a2l4MU9HNCs4?=
 =?utf-8?B?ZjgwWHhmcVFqQUM2S1pZMUR6bEpXWXhEVG4wSDJxc0dZdCt5Y2JtSEU1ME8y?=
 =?utf-8?B?bkVoMW11bFgzRGZHaGZCb0xMMUhuc0ZlWnlOVHdyYTVGelo1YTZtSko4bXBD?=
 =?utf-8?Q?fvTLP7Pu3eA=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN9PR12MB5273.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?bURmSlJVZFFBOVNMZjBFa0JKYVEvL295WXpKOGNKNWk2UTJMM0dFRkF4T2Ez?=
 =?utf-8?B?OGhiekVZRHh5dlEwdFJMUzQ2Vm9SZEZGWUtsMGNXaVdpYWtmbTZ5ZFU3UXdj?=
 =?utf-8?B?QW1zSEVYN2J1TUhGWGxJcklsOEFnaytDZU5mVlhWWCtGV2JWOS9RalBDVXd2?=
 =?utf-8?B?MHFwSWhIR0hwWDI4eFdzQUNUTVduNmEzZU9DZ0NOdVhuMUNRc0NtYXRZczly?=
 =?utf-8?B?Nm9ONDVmbWN5dFdMSlJRUUZFVzNmbG1tU0ZWT0cvRVFoTitKazkxQ3R4Z2tK?=
 =?utf-8?B?WHVzNWZVK3R6UzVKTE0yTnVHckVHZmZ1WjZYR1dsVnhkQkdTaDVudzBDWXVm?=
 =?utf-8?B?Tko3SXI1WkxwNTFqODdvaHhvZm4rODRuR3ZjRDlhUzNUc241ZFphV3hkUlM5?=
 =?utf-8?B?WXpoNzQ2Q2tGK3RtaWoyWjU1Ymw4Z0NXS1o2V2dhMi93L0VnQUoyWU1vbVZU?=
 =?utf-8?B?dzNEV1F3ZzZIbHp1L3VTZXI2WHF5bnI3VzZoaUoxMStRU2UxU1VTbEhKam9R?=
 =?utf-8?B?OVZDVmJFL3BYQ1luRUJ5MEtLb3FKd09HNTlURTJGRnZzZGtVNnFzZHlGS2ox?=
 =?utf-8?B?VWtyaFNoYnF6NmNQNjE3WThCWW1OakN4OXIxOHExa2FoaU1vbWRTL2dtZVA5?=
 =?utf-8?B?TEZVaXk5YmxsN3pmVEs2TW0rQ3F2dFljblRXTGpDbW1mbDZyYklNTm1raVFC?=
 =?utf-8?B?T0VHUUkwd3RKUHk3bE1Bby85Y3IwRXRLRlVhcG4yRFlmTUZ4ZEVnaW1aMGFY?=
 =?utf-8?B?UlYybW1qYmZYMzUzcjQyT1VxZ3RQSWJVSEtpTm0xWWpOamdNeXhpSCtueGlz?=
 =?utf-8?B?VEpSY05ZL0NUTEppTnZ3Y3E5alkrNnJyc2c0WHRIaGRUdHA5aWNDUlBpOUhv?=
 =?utf-8?B?NU9RQXg0ZlZzT1lvdHVuMG51WDRFTWh3bWtaRGFyNmMyeGRWMjYxZXRqeFNX?=
 =?utf-8?B?UkV0ZjNjeFdKQzNYcEhSTmhRZWkzeGZaUTFyeXhBZ1JMdm1JQ0YvZmxiNTM5?=
 =?utf-8?B?RFBGblN4QTdzZUNVMFpOVjdSd0JoV3dFSHl4Qm51ZWwzUFJwbXI2Q3dWdjNZ?=
 =?utf-8?B?dWVkT2pEK3ZsblczNU5sMk9QeWZuZjhFdi8xZUNjN25Qc0l4bS9ram1pYzJr?=
 =?utf-8?B?QXpaSjFObHFFcUoxdEZrRHB2YlZUSlpwbzRRcmVoMkF5SU1tVitZUzFKdmhp?=
 =?utf-8?B?MDNIK2o5MGFKblhrTlg5KzJkVDZOQkhZa2xGQkp5S2ttYmxUTGc4OGNVNTRo?=
 =?utf-8?B?c1UrSjEwTmIvWjEyQjBCd2pUU0J6Y0ZQajU5MnIybUJIOFhQVlF3aVJXZWht?=
 =?utf-8?B?ME81N2xZWU1FeVlJWUdsVmdkVnlDSW4zZjRiSG5DUTBSY0xJSE0yTHVuczZG?=
 =?utf-8?B?cFQxOVEwNldNakw1dXNCV1ZyQ2RpSzdPcE10bllIRHY0MGdzSFdXV3hnNVZk?=
 =?utf-8?B?R0hlTDJXNXpYRjVHc091UFZtekNZYzVGZ25Zc3NPYkR4bmdQTDJiazhHMEJH?=
 =?utf-8?B?N1haUXlNWk9rL2pWZ0dONExieGNJTHQ2dnB6dUxBRWZlOWhYWko3RzhFQkpQ?=
 =?utf-8?B?OGN0VDNOUjBOcGJ6NTA5Uitwa0ltUWpYVDJkd1hkKzFTWGxoUVcwdE1XVE5X?=
 =?utf-8?B?SG9HL0RaZm15MmN0Y0F4WXE0Ymk3TGtZYmRkMHRvMTVMZzZiTFgvU0xBV1d1?=
 =?utf-8?B?WW1CakJ5Z01YYzl0WUVoODJpdjBYeTY0YnZVMm12c1dJNm5Db00rd0thY1Nt?=
 =?utf-8?B?SmJPQlMyM0xMa3UyTk93bnNqVGYzVHI4QXhJcnJVeHEzSkZKTjNlOGo5WFJi?=
 =?utf-8?B?SkxtRTl6ZEJwcjM2MVcvNFpDeTFFSUhWeE9IdTFNV1BnNVhsUHQ5cFBlQjlw?=
 =?utf-8?B?UXV5clFpZG5iTjdHemNoYVB6UzUreVp1KzB1dUk2ejBmRzBvcU5UdXA1amty?=
 =?utf-8?B?TnVpWjJhVTZIZWdTZ2ZrWDNPb0tpNytuZU5CN0owNXI1R2RmSnFKdXR5Y28y?=
 =?utf-8?B?cHUvczZFTVoybk50WGRLc2NySjA0VlkrNGhSVHIrTXA2bHFYeDdkWFJsWUlr?=
 =?utf-8?B?aG1maHQ3clErUnN6RGIvU3ZGV2FRY3JLZWZXVHlrUmZHRVN2ZkhsMC9FMEc0?=
 =?utf-8?Q?ONSY=3D?=
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9a809740-fdeb-4321-6d35-08dd87d5d4b8
X-MS-Exchange-CrossTenant-AuthSource: BN9PR12MB5273.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Apr 2025 10:57:42.5225
 (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: Hzg96tz6N9CR2hWMG8dWlaBCyJXFVL5xpOiXZRJ2RvbHHxU48cdYpFjI1jr08o7y
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB6614



On 29/04/2025 17:20, Luca Fancellu wrote:
> Provide some data structure in the C world to track the MPU
> status, these structures will be filled at boot by the assembly
> early code with the boot MPU regions and afterwards they will be
> used at runtime.
> 
> Provide methods to update a bitmap created with DECLARE_BITMAP
> from the assembly code for both Arm32 and Arm64.
> 
> Modify Arm64 assembly boot code to reset any unused MPU region,
> initialise 'max_xen_mpumap' with the number of supported MPU
IMO this is not a good name because there's nothing there suggesting that this
variable stores the number. Maybe max_mpu_regions or max_xen_mpumap_regions.

> regions and modify the common asm macro 'prepare_xen_region' to
> load into xen_mpumap the MPU status and set/clear the bitmap
> 'xen_mpumap_mask' used to track the enabled regions.
> 
> Changed parameters name from 'base', 'limit' to 'tmp1' and 'tmp2'
> in order to use them also for intermediate operations on the
> MPU and the bitmap C data structures, the help on top of the macro
> is enough to understand how the macro will work and this will
> save some registers.
> 
> Provide a stub implementation for the pr_t type and few asm
> macro for the Arm32 to prevent compilation break, they will
> be implemented later.
> 
> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
> ---
> v4 changes:
>  - new patch
> ---
>  xen/arch/arm/arm64/mpu/head.S            | 13 +++++
>  xen/arch/arm/include/asm/arm32/mpu.h     | 25 +++++++++
>  xen/arch/arm/include/asm/bitmap-op.inc   | 67 ++++++++++++++++++++++
>  xen/arch/arm/include/asm/mpu.h           |  5 ++
>  xen/arch/arm/include/asm/mpu/mm.h        |  7 +++
>  xen/arch/arm/include/asm/mpu/regions.inc | 71 ++++++++++++++++++++----
>  xen/arch/arm/mpu/mm.c                    | 16 ++++++
>  7 files changed, 194 insertions(+), 10 deletions(-)
>  create mode 100644 xen/arch/arm/include/asm/arm32/mpu.h
>  create mode 100644 xen/arch/arm/include/asm/bitmap-op.inc
> 
> diff --git a/xen/arch/arm/arm64/mpu/head.S b/xen/arch/arm/arm64/mpu/head.S
> index 6d336cafbbaf..c0cac06b015f 100644
> --- a/xen/arch/arm/arm64/mpu/head.S
> +++ b/xen/arch/arm/arm64/mpu/head.S
> @@ -40,6 +40,9 @@ FUNC(enable_boot_cpu_mm)
>      mrs   x5, MPUIR_EL2
>      and   x5, x5, #NUM_MPU_REGIONS_MASK
>  
> +    ldr   x0, =max_xen_mpumap
> +    strb  w5, [x0]
> +
>      /* x0: region sel */
>      mov   x0, xzr
>      /* Xen text section. */
> @@ -74,6 +77,16 @@ FUNC(enable_boot_cpu_mm)
>      prepare_xen_region x0, x1, x2, x3, x4, x5, attr_prbar=REGION_DEVICE_PRBAR, attr_prlar=REGION_DEVICE_PRLAR
>  #endif
>  
> +zero_mpu:
> +    /* Reset remaining MPU regions */
> +    cmp   x0, x5
> +    beq   out_zero_mpu
> +    mov   x1, #0
> +    mov   x2, #1
Shouldn't we mark the region as emtpy (base == limit) when doing region clear?

> +    prepare_xen_region x0, x1, x2, x3, x4, x5, attr_prlar=REGION_DISABLED_PRLAR
> +    b     zero_mpu
> +
> +out_zero_mpu:
>      b    enable_mpu
>      ret
>  END(enable_boot_cpu_mm)
> diff --git a/xen/arch/arm/include/asm/arm32/mpu.h b/xen/arch/arm/include/asm/arm32/mpu.h
> new file mode 100644
> index 000000000000..1bdae4c309dc
> --- /dev/null
> +++ b/xen/arch/arm/include/asm/arm32/mpu.h
> @@ -0,0 +1,25 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +
> +#ifndef __ARM_ARM32_MPU_H__
> +#define __ARM_ARM32_MPU_H__
> +
> +#ifndef __ASSEMBLY__
> +
> +/* MPU Protection Region */
> +typedef struct {
> +    uint32_t prbar;
> +    uint32_t prlar;
> +} pr_t;
> +
> +#endif /* __ASSEMBLY__ */
> +
> +#endif /* __ARM_ARM32_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/bitmap-op.inc b/xen/arch/arm/include/asm/bitmap-op.inc
> new file mode 100644
> index 000000000000..e316d9417bb9
> --- /dev/null
> +++ b/xen/arch/arm/include/asm/bitmap-op.inc
I'll just skim through this file for now. I won't check for algorithm being correct.

> @@ -0,0 +1,67 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +
> +/*
> + * Sets a bit in a bitmap declared by DECLARE_BITMAP, symbol name passed through
> + * bitmap_symbol.
> + *
> + * bitmap_set_bit:      symbol of the bitmap declared by DECLARE_BITMAP
> + * bit:                 bit number to be set in the bitmap
> + * tmp1-tmp4:           temporary registers used for the computation
> + *
> + * Preserves bit.
Here you say it is preserved, yet...

> + * Output:
> + *  tmp1: Address of the word containing the changed bit.
> + * Clobbers: bit, tmp1, tmp2, tmp3, tmp4.
... here you list is as clobbered.

> + */
> +.macro bitmap_set_bit bitmap_symbol, bit, tmp1, tmp2, tmp3, tmp4
> +    adr_l   \tmp1, \bitmap_symbol
> +    mov     \tmp2, #(BYTES_PER_LONG - 1)
> +    mvn     \tmp2, \tmp2
> +    lsr     \tmp3, \bit, #3
> +    and     \tmp2, \tmp3, \tmp2
> +    add     \tmp1, \tmp1, \tmp2                 // bitmap_symbol + (bit/BITS_PER_LONG)*BYTES_PER_LONG
We don't use // style comments. Please use /* */

> +    and     \tmp2, \bit, #(BITS_PER_LONG - 1)   // bit offset inside word
> +
> +    ldr     \tmp3, [\tmp1]
> +    mov     \tmp4, #1
> +    lsl     \tmp4, \tmp4, \tmp2                 // (1 << offset)
> +    orr     \tmp3, \tmp3, \tmp4                 // set the bit
> +    str     \tmp3, [\tmp1]
> +.endm
> +
> +/*
> + * Clears a bit in a bitmap declared by DECLARE_BITMAP, symbol name passed
> + * through bitmap_symbol.
> + *
> + * bitmap_set_bit:      symbol of the bitmap declared by DECLARE_BITMAP
> + * bit:                 bit number to be set in the bitmap
> + * tmp1-tmp4:           temporary registers used for the computation
> + *
> + * Preserves bit.
> + * Output:
> + *  tmp1: Address of the word containing the changed bit.
> + * Clobbers: bit, tmp1, tmp2, tmp3, tmp4.
> + */
> +.macro bitmap_clear_bit bitmap_symbol, bit, tmp1, tmp2, tmp3, tmp4
> +    adr_l   \tmp1, \bitmap_symbol
> +    mov     \tmp2, #(BYTES_PER_LONG - 1)
> +    mvn     \tmp2, \tmp2
> +    lsr     \tmp3, \bit, #3
> +    and     \tmp2, \tmp3, \tmp2
> +    add     \tmp1, \tmp1, \tmp2                 // bitmap_symbol + (bit/BITS_PER_LONG)*BYTES_PER_LONG
> +    and     \tmp2, \bit, #(BITS_PER_LONG - 1)   // bit offset inside word
> +
> +    ldr     \tmp3, [\tmp1]
> +    mov     \tmp4, #1
> +    lsl     \tmp4, \tmp4, \tmp2                 // (1 << offset)
> +    mvn     \tmp4, \tmp4                        // ~(1 << offset)
> +    and     \tmp3, \tmp3, \tmp4                 // clear the bit
> +    str     \tmp3, [\tmp1]
> +.endm
> +
> +/*
> + * Local variables:
> + * mode: ASM
> + * indent-tabs-mode: nil
> + * End:
> + */
> diff --git a/xen/arch/arm/include/asm/mpu.h b/xen/arch/arm/include/asm/mpu.h
> index bb83f5a5f580..1368b2eb990f 100644
> --- a/xen/arch/arm/include/asm/mpu.h
> +++ b/xen/arch/arm/include/asm/mpu.h
> @@ -8,6 +8,10 @@
>  
>  #if defined(CONFIG_ARM_64)
>  # include <asm/arm64/mpu.h>
> +#elif defined(CONFIG_ARM_32)
> +# include <asm/arm32/mpu.h>
> +#else
> +# error "unknown ARM variant"
>  #endif
>  
>  #define MPU_REGION_SHIFT  6
> @@ -17,6 +21,7 @@
>  #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)
> +#define MAX_MPU_REGION_NR       255
Shouldn't you define it using NUM_MPU_REGIONS? It should have the same
definition as mask.

>  
>  #endif /* __ARM_MPU_H__ */
>  
> diff --git a/xen/arch/arm/include/asm/mpu/mm.h b/xen/arch/arm/include/asm/mpu/mm.h
> index bfd840fa5d31..28339259c458 100644
> --- a/xen/arch/arm/include/asm/mpu/mm.h
> +++ b/xen/arch/arm/include/asm/mpu/mm.h
> @@ -8,9 +8,16 @@
>  #include <xen/page-size.h>
>  #include <xen/types.h>
>  #include <asm/mm.h>
> +#include <asm/mpu.h>
>  
>  extern struct page_info *frame_table;
>  
> +extern uint8_t max_xen_mpumap;
> +
> +extern DECLARE_BITMAP(xen_mpumap_mask, MAX_MPU_REGION_NR);
> +
> +extern pr_t xen_mpumap[MAX_MPU_REGION_NR];
> +
>  #define virt_to_maddr(va) ((paddr_t)((vaddr_t)(va) & PADDR_MASK))
>  
>  #ifdef CONFIG_ARM_32
> diff --git a/xen/arch/arm/include/asm/mpu/regions.inc b/xen/arch/arm/include/asm/mpu/regions.inc
> index 47868a152662..dc0306f8c5fc 100644
> --- a/xen/arch/arm/include/asm/mpu/regions.inc
> +++ b/xen/arch/arm/include/asm/mpu/regions.inc
> @@ -1,22 +1,50 @@
>  /* SPDX-License-Identifier: GPL-2.0-only */
>  
> +#include <asm/bitmap-op.inc>
>  #include <asm/mpu.h>
>  #include <asm/sysregs.h>
>  
>  /* Backgroud region enable/disable */
>  #define SCTLR_ELx_BR    BIT(17, UL)
>  
> +#define REGION_DISABLED_PRLAR   0x00    /* NS=0 ATTR=000 EN=0 */
>  #define REGION_NORMAL_PRLAR     0x0f    /* NS=0 ATTR=111 EN=1 */
>  #define REGION_DEVICE_PRLAR     0x09    /* NS=0 ATTR=100 EN=1 */
>  
> +#define PRLAR_ELx_EN            0x1
> +
> +#ifdef CONFIG_ARM_64
> +#define XEN_MPUMAP_ENTRY_SHIFT  0x4     /* 16 byte structure */
> +
> +.macro store_pair reg1, reg2, dst
> +        stp \reg1, \reg2, [\dst]
Why 8 instead of 4 spaces?

> +.endm
> +
> +.macro invalidate_dcache_one reg
> +        dc ivac, \reg
> +.endm
> +
> +#else
> +#define XEN_MPUMAP_ENTRY_SHIFT  0x2     /* 8 byte structure */
> +
> +.macro store_pair reg1, reg2, dst
> +        nop
> +.endm
> +
> +.macro invalidate_dcache_one reg
> +        nop
> +.endm
> +
> +#endif
> +
>  /*
>   * 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
> + * tmp1:        reg storing base address
> + * tmp2:        reg storing limit address
I think this change is not needed. The parameters should be named base and limit
because this is what you expect caller to pass. Inside the function, you can do
whatever you want with these registers and caller does not care as long as you
mention if they are clobbered or not. Same in C world. You can reuse the
parameter for a different internal purpose inside a function.

>   * prbar:       store computed PRBAR_EL2 value
>   * prlar:       store computed PRLAR_EL2 value
>   * maxcount:    maximum number of EL2 regions supported
> @@ -28,13 +56,13 @@
>   * Preserves maxcount
>   * Output:
>   *  sel: Next available region selector index.
> - * Clobbers base, limit, prbar, prlar
> + * Clobbers tmp1, tmp2, 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
> +.macro prepare_xen_region, sel, tmp1, tmp2, prbar, prlar, maxcount, attr_prbar=REGION_DATA_PRBAR, attr_prlar=REGION_NORMAL_PRLAR
>      /* Check if the region is empty */
> -    cmp   \base, \limit
> +    cmp   \tmp1, \tmp2
>      beq   1f
>  
>      /* Check if the number of regions exceeded the count specified in MPUIR_EL2 */
> @@ -42,20 +70,43 @@
>      bge   fail_insufficient_regions
>  
>      /* Prepare value for PRBAR_EL2 reg and preserve it in \prbar.*/
> -    and   \base, \base, #MPU_REGION_MASK
> +    and   \tmp1, \tmp1, #MPU_REGION_MASK
>      mov   \prbar, #\attr_prbar
> -    orr   \prbar, \prbar, \base
> +    orr   \prbar, \prbar, \tmp1
>  
>      /* Limit address should be inclusive */
> -    sub   \limit, \limit, #1
> -    and   \limit, \limit, #MPU_REGION_MASK
> +    sub   \tmp2, \tmp2, #1
> +    and   \tmp2, \tmp2, #MPU_REGION_MASK
>      mov   \prlar, #\attr_prlar
> -    orr   \prlar, \prlar, \limit
> +    orr   \prlar, \prlar, \tmp2
>  
>      WRITE_SYSREG_ASM(\sel, PRSELR_EL2)
>      isb
>      WRITE_SYSREG_ASM(\prbar, PRBAR_EL2)
>      WRITE_SYSREG_ASM(\prlar, PRLAR_EL2)
> +
> +    /* Load pair into xen_mpumap and invalidate cache */
> +    mov   \tmp1, \sel
> +    lsl   \tmp1, \tmp1, #XEN_MPUMAP_ENTRY_SHIFT
You could get rid of these 2 extra instructions and instead do:

> +    adr_l \tmp2, xen_mpumap
> +    add   \tmp2, \tmp2, \tmp1
add \tmp2, \tmp2, \sel, lsl #XEN_MPUMAP_ENTRY_SHIFT
which combines everything in one go.

> +    store_pair \prbar, \prlar, \tmp2
> +    invalidate_dcache_one \tmp2
> +
> +    /* Set/clear xen_mpumap_mask bitmap */
> +    tst   \prlar, #PRLAR_ELx_EN
> +    bne   2f
> +    // Region is disabled, clear the bit in the bitmap
Comment style, here and elsewhere

> +    bitmap_clear_bit xen_mpumap_mask, \sel, \tmp1, \tmp2, \prbar, \prlar
> +    b     3f
> +
> +2:
> +    // Region is enabled, set the bit in the bitmap
> +    bitmap_set_bit xen_mpumap_mask, \sel, \tmp1, \tmp2, \prbar, \prlar
Wouldn't it be better to first clear the entire bitmap before setting up the
regions (i.e. all regions disabled) and then only have the set part here?

> +
> +3:
> +    invalidate_dcache_one \tmp1
> +
>      dsb   sy
>      isb
>  
> diff --git a/xen/arch/arm/mpu/mm.c b/xen/arch/arm/mpu/mm.c
> index 07c8959f4ee9..9eab09ff2044 100644
> --- a/xen/arch/arm/mpu/mm.c
> +++ b/xen/arch/arm/mpu/mm.c
> @@ -7,9 +7,25 @@
>  #include <xen/mm.h>
>  #include <xen/sizes.h>
>  #include <xen/types.h>
> +#include <asm/mpu.h>
>  
>  struct page_info *frame_table;
>  
> +/* Maximum number of supported MPU memory regions by the EL2 MPU. */
> +uint8_t __ro_after_init max_xen_mpumap;
> +
> +/*
> + * Bitmap xen_mpumap_mask is to record the usage of EL2 MPU memory regions.
> + * Bit 0 represents MPU memory region 0, bit 1 represents MPU memory
> + * region 1, ..., and so on.
> + * If a MPU memory region gets enabled, set the according bit to 1.
> + */
> +DECLARE_BITMAP(xen_mpumap_mask, MAX_MPU_REGION_NR) \
> +    __section(".data.page_aligned");
> +
> +/* EL2 Xen MPU memory region mapping table. */
> +pr_t __section(".data.page_aligned") xen_mpumap[MAX_MPU_REGION_NR];
> +
>  static void __init __maybe_unused build_assertions(void)
>  {
>      /*

~Michal



From xen-devel-bounces@lists.xenproject.org Wed Apr 30 12:19:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 30 Apr 2025 12:19:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.973562.1361655 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uA6PF-0003Jo-RY; Wed, 30 Apr 2025 12:19:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 973562.1361655; Wed, 30 Apr 2025 12:19: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 1uA6PF-0003Jh-Nh; Wed, 30 Apr 2025 12:19:17 +0000
Received: by outflank-mailman (input) for mailman id 973562;
 Wed, 30 Apr 2025 12:19: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=mYFu=XQ=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1uA6PD-0003Jb-Go
 for xen-devel@lists.xenproject.org; Wed, 30 Apr 2025 12:19:15 +0000
Received: from EUR05-DB8-obe.outbound.protection.outlook.com
 (mail-db8eur05on20622.outbound.protection.outlook.com
 [2a01:111:f403:2614::622])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5428840e-25bd-11f0-9eb4-5ba50f476ded;
 Wed, 30 Apr 2025 14:19:14 +0200 (CEST)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by PA1PR03MB10820.eurprd03.prod.outlook.com
 (2603:10a6:102:484::6) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.33; Wed, 30 Apr
 2025 12:19: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%3]) with mapi id 15.20.8678.028; Wed, 30 Apr 2025
 12:19: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: 5428840e-25bd-11f0-9eb4-5ba50f476ded
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=nQaNIrN0Bj30PMIjN7xlCIycPFPieOMhnxfz2YtWlZjiGbs4RtoDVGoGhcLNHLJkej5K0xfxawxEdA/+p5pXnP+2eQPMOd5BbIez6FY8Lz4MCrVTvar6HqVLeWAVWb5Wz+erluGCJycMBIxGHob3lAqkAaMuAjcIit+E5QqI5NtTTyMl8/Y+G2o7bkKM3h57B7Bekj+oknrrJydhfOFHiP2ZVP3sVe2MLR5D2xf7Jsk3z06UnX/j65CNioZIrV+BVeGBcPAsNPPad95cJIhEadggIC/oOKhiZBgTqSNdrENev5ssinYalmaemUqnwB6oElnfFZrEx17+YCIbOrdT1w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=6u0LZnp5OfwJNKBFY1it0+I2TAuIPUj2L9Ln1iIjojk=;
 b=aHP0P1kYFg1b/2IJ4WeAfH102zOF0d8xG3Om1GCipk09w/aSt7JlNya1jHGJJZZZiwtyb5mcf9tkT9umMj8GIHm4L5rAoG6LnBIGpQjVUQmwkWve4DCBj8CMK2fB2W1eu6NbztM/teX/BNuzvS9JVbSLhgyGYL9uIW/TSlJdbIMqezbL1RfskL6sfXnuwBsslMCRCTUGWuezF6rP2iwrJzPVlI8g7Bnl743mS3KhpubP5GW1Nyvfzu2LG6xPNbbUnDoa90Ew0+pvYQY7JWsawc2Gd7kqujAfsql9lfVV/smURNQnqmf9NBn4If6C6vLy6ftMx4s11HJBo9ytl7qaPg==
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=6u0LZnp5OfwJNKBFY1it0+I2TAuIPUj2L9Ln1iIjojk=;
 b=luIDtYupweraW3LzF1oA3/OU7BoPXBuGGCe0fDKAHMtfANJQSD3Z5NQ00QFX+I4qs8BM0oYWQqA5v2z3GgpNBMxyTqAIp42ektjFz15RTlEC2f1NDbBrdSMWGrB0OriBPT3AVnj1H/7ACNtQnt0vMy/H2LklFmusrXENYEuRXDIGwVuod2gsWo/EMYqE5nQgxbBgVLxH9JgXXlTSxzJ2yohuG23IoxT5a8RjAim6Mpms/29/bfIqlPXmY/ViyVNsPdXjPhTxb3T313hGwjHfArnNtj5K/d6mVrpT1dxk3L3BIRvb0MT3tXejMh3f8sm3QQBh58QdcgMwzK/TQlYmyg==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>,
	=?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Bertrand Marquis <bertrand.marquis@arm.com>, Dario
 Faggioli <dfaggioli@suse.com>, Juergen Gross <jgross@suse.com>, George Dunlap
	<gwd@xenproject.org>, Julien Grall <julien@xen.org>
Subject: Re: [RFC PATCH v2] xen: add libafl-qemu fuzzer support
Thread-Topic: [RFC PATCH v2] xen: add libafl-qemu fuzzer support
Thread-Index: AQHblUI7lWJ91U/YVk+TK2sT0KKY9g==
Date: Wed, 30 Apr 2025 12:19:11 +0000
Message-ID: <871pt9eta9.fsf@epam.com>
References: <20250315003544.1101488-1-volodymyr_babchuk@epam.com>
	<5d519ffd-8747-4367-b92f-01c20a483e72@xen.org>	<87cycue6l3.fsf@epam.com>
	<14fed5e0-643a-45cf-8929-461e11e7f4c3@suse.com>
In-Reply-To: <14fed5e0-643a-45cf-8929-461e11e7f4c3@suse.com> (Jan Beulich's
	message of "Wed, 30 Apr 2025 08:42:53 +0200")
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_|PA1PR03MB10820:EE_
x-ms-office365-filtering-correlation-id: 76aa9f07-3952-47d4-cad0-08dd87e136d9
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?23lJZJtZEWKRZp+gx00jf0+j2/nADom/cAriFLFWbjxM8Yjxm4ljq+kgIn?=
 =?iso-8859-1?Q?VLnNOP5Z4nV3RwW+oWWGyc1TB7wRMtyGh+Mh+aOyh3kvAwWK2g9FQBAHz7?=
 =?iso-8859-1?Q?DKvRdLK4uLZKShYdWM8QckKOjxcHig0oNo0Uw3MLooJNivCehIPuJcptAV?=
 =?iso-8859-1?Q?Wxt8rLfs4BUzpEZXHB8HICOdOiOZ++Sfv90AuYQqVpEUP6JneypSAqaDvg?=
 =?iso-8859-1?Q?5OC+2tUwQm/bRJyQc6uwpz8fS+xl+NQUCfWrjGKHUtYsiqbpidt1EakrsM?=
 =?iso-8859-1?Q?q58r11PF7F7wzB1bx5c3BVb+5DbHtBBbOY6kjBjNlzCkw49yG0WfO+4okO?=
 =?iso-8859-1?Q?T2JSjaohmSJ+foITaram8StPSiMqgBzKP6l/8tRClvDgMTdefsFDzNcbGF?=
 =?iso-8859-1?Q?B/R3nd44/YxqllwKvl+lEjsXadGbu++G7uwL52fga7uHtE2A030JEd/Gcm?=
 =?iso-8859-1?Q?zbA8rcCMW3Jng2Y/VDB2G+ZQD8tVv1f4fvcbeJhZN3bm2VijVQvEo72EEx?=
 =?iso-8859-1?Q?XpVCujBjtb6neqUnGMBlGopxC+FmAlpwtXmNfoGbQGtKp3evBffOSJy00C?=
 =?iso-8859-1?Q?YRFxit0uJn4Pv8KHgmIbX1rZ1m/F6bcbGYXqr39sycAitivv/GQ0IbovYk?=
 =?iso-8859-1?Q?O16WsbbHrcLQicPbK7XWeG9Ww+a7K0asLElIFZ0hkIcnXhULwXMtCH8hYX?=
 =?iso-8859-1?Q?yWO5i3J3maYWgU/WsdfRWIEi/EBXCKbHY4fEqmtJFRA37nPL91eGjQsuSw?=
 =?iso-8859-1?Q?D0xxvM0dHLfWPVAG7pCHClHFKN7hskNPzVIDezhh63jPNmlCPrUtKu+Xsj?=
 =?iso-8859-1?Q?zW6ztInS35S2ZXWxHcqMHX9YN0E2BnWKn5Xuorgp6NnA6br5rIHqhF7JGd?=
 =?iso-8859-1?Q?9Cp3zog68TnsilhUo5tWbcxmU1n73ndKijqC8fl5luQiUAl/qtzqBLg5x+?=
 =?iso-8859-1?Q?hozvMtFJdc/+JwqWbEz3cRXz8Y+7BFhha4rjRdIEFHiaIR/CEg8cKeZd86?=
 =?iso-8859-1?Q?zJiKk4tpWX/Kcm64cClOFDdVcnmdNjLZT7eOmHnZQQIg7ZIO1yr1HXQv5Q?=
 =?iso-8859-1?Q?G4I4VU1z3vcKxdthmMHyf0SSrvJjzthb3pOH3QfhI4xCyL+izECpoWNEr4?=
 =?iso-8859-1?Q?ZMOn1EDxZi9Dl07DlXc3rwqBoMTrzaXwgUDTlxVDDr+4bG/+L0dqW3HxOf?=
 =?iso-8859-1?Q?qNxRWhsLUXun7u6KU5Tmuaqb27LWYElv1yjpmSSLC39XtRnYzyHH1aej+B?=
 =?iso-8859-1?Q?ydSSPhSQzRaQmRuhqQlEe5rTe6MBYj0nQBqliSYl5KxPXTyeC9V7xqVEeO?=
 =?iso-8859-1?Q?xZm39iUF/bXFhFaGtnA4EWzrCNtN3lPgdOYlHFrqjZ0sMxidKkld7KSTOa?=
 =?iso-8859-1?Q?DwXoutYE2Ad0hvBO32Td/p9/rbXZRlQZsLwR4j+uBiPEHU81P4o2g22hw9?=
 =?iso-8859-1?Q?eSgGRRtuspFb5O/jR+oh3oy3Lo+Ome4jCJPhnTkUTikYcKmABuoLYJW88P?=
 =?iso-8859-1?Q?k=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)(7416014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?pK6qOlmtDAMv2H1QC3tbA56doFk/8kb50PVvSSJWqag/dQHKbTDAQS0MMO?=
 =?iso-8859-1?Q?9FIFPxOXCjjJSVNu+VN7R1axC4I5EsOxatdMpUTOIwHADua/Fhx6N/zK+Z?=
 =?iso-8859-1?Q?MT0jnhRVmWCQpEff2c/oFBMP5ooqg/ailsqfKbEvXKEcVYwpcg0ddabveM?=
 =?iso-8859-1?Q?RK0jr4Jf8ILjth3H3CFPvRQDDnuevAH8Vgk/9bTrTU2FpuB7PNSlRbI/nQ?=
 =?iso-8859-1?Q?ZrI8KWuyXIEf+vvjCJM5YljQ0w9oPFxBBVaizRRprYwOmCYdeMkdfOGmz/?=
 =?iso-8859-1?Q?LhdDIvhbMbz/MZCQ50HMU5+RSK+DKc/l9TK+0IeFdvERxkH+otPg7tOE/Y?=
 =?iso-8859-1?Q?q+gbAN+yNU0JP8xHhgkR+VcgPhk8yrHJP+KDVbsJ8ZVCalmAaxp9NtVZRk?=
 =?iso-8859-1?Q?2E5nPAgGDdf8osfdoRdEnumNRViAFI4BembnOqR4j7SkkXBlqog3tjHiEi?=
 =?iso-8859-1?Q?P2J8n3VKyCE0E/EbHp5kwnuuPxx6wr9yXiEQmzWxx4uoyVNIvnl2RRwX3a?=
 =?iso-8859-1?Q?CYRaC5c3G92Z2lPNjIkmpAzP8zvgPxm92F4kYoCAIsCM/OUcyFy34p3rSf?=
 =?iso-8859-1?Q?T9NWsfFMW3k7ito5iHyFzV5mXjKWkmBP+S4kcG9PPZo4/yMx0Wr2JnkMVv?=
 =?iso-8859-1?Q?J037gVUSR7/1SMiIx4oTAgDfNqWFxvAp82PmNqLSbFvho53YWeFxFYxvKF?=
 =?iso-8859-1?Q?u3vM4n1CgeiK9f04Gw2UXIh5sHzbUGhf8LyqeP9HkUiOFP9ahkhqoItfmH?=
 =?iso-8859-1?Q?gYh3FzU7HnOoz2Bbcf3SntMjviayfnnOfWwR1rrMytus85VzQBM+vGp6ig?=
 =?iso-8859-1?Q?tw7WkWyCCQS6tc8j2ZD2LBb72HXg+dBtkdmuPiCREesqGBOvM6x2aoXg+l?=
 =?iso-8859-1?Q?JrN7SBDJfkR/gA+WxoStzSbfRoWUXYkxssvatzH2L56EFIZcKjej7N4O1i?=
 =?iso-8859-1?Q?aKYqGcEpfXKrErs/8to+ngDYdju/aJbC4fqQo3CuKX6WBAL0fbdCYnxyWp?=
 =?iso-8859-1?Q?bNJrzgiEY4aC4jkqqjp6Ex+SpBg/2uxIebIBF8CnwHlRuuj9oLM/zap/zh?=
 =?iso-8859-1?Q?c57iJdHRsFMLFAGnvM4Au0mTKaCvKyz5vS9p3B9H+4Bi7IWnA7ayXRfF6+?=
 =?iso-8859-1?Q?5TLjQIjRgaPzn/mkmOmEtWJj/aEd1GSl8HdLPQhdYnfWGecRFB6tNneZjJ?=
 =?iso-8859-1?Q?h58iSeJW3nEgpc6xpG2ekWQ3WESINo2KJdpcXSHCTd6NSamx0ZDDnHPcyl?=
 =?iso-8859-1?Q?rNTXRcRS5/y1YQNQBvExrQpdc2wogPVZ0TnpzUxGWzoM0h6IoMI3ljjifi?=
 =?iso-8859-1?Q?HHAagbXA9ao1zIzs8h1/1NeO3YfFNK812fms9td9doQtG7XOR7kPbM6cdH?=
 =?iso-8859-1?Q?6UpbZMNN1g7iYfA3tm4SD+ltBIuPLjsYjXr6/5jtf+Lj7sBVJuWGYjdQ42?=
 =?iso-8859-1?Q?ieAq0NIczQYdIUx5A1gZhPiVY84OTv3WSQuOw/b0VqFBDzfk68QuUJe/Fr?=
 =?iso-8859-1?Q?Epw657E/WQy1SWZvrJoUgaStEbKZEs8xVSX5aYkXMhTvGQwaPFLCcpiyJi?=
 =?iso-8859-1?Q?RR4RthWNSd69dXiw4O+EU9x0OgV3tMlsf8E/CDpSwRzcxTA7XUdaZLd299?=
 =?iso-8859-1?Q?4K6UdPoozciTyfRcnHFsQqesWKgZKdeP3T9aAVX9LR1Kvj3EX9R+VLkA?=
 =?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: 76aa9f07-3952-47d4-cad0-08dd87e136d9
X-MS-Exchange-CrossTenant-originalarrivaltime: 30 Apr 2025 12:19:11.3838
 (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: AFpVzALNrrfZZg9qKmfz4ffrECRcQ/Obz6h7KI+bHDxZs30YerxZj42i0vo+4Wz42Km5zkt4L4eYvyjnVkbkpQ4LCI9oINITGmaKkEMTjhY=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA1PR03MB10820

Jan Beulich <jbeulich@suse.com> writes:

> On 30.04.2025 04:17, Volodymyr Babchuk wrote:
>> Julien Grall <julien@xen.org> writes:
>>>> --- /dev/null
>>>> +++ b/xen/arch/arm/include/asm/libafl_qemu_defs.h
>>>> @@ -0,0 +1,37 @@
>>>
>>> Missing license. Also, is this file taken from somewhere?
>>>
>>=20
>> I add MIT license, as libafl is dual licensed under Apache-2 and
>> MIT. This file is based on libafl_qemu [1]
>>=20
>>>> +#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
>>>
>>> No-one seems to use STATIC_CHECKS? Is this intended?
>>=20
>> I used this file as is... But I'll rework this part.
>>=20
>>>> +
>>>> +#define LIBAFL_SYNC_EXIT_OPCODE 0x66f23a0f
>>>> +#define LIBAFL_BACKDOOR_OPCODE 0x44f23a0f
>>>
>>> Are the opcode valid for arm32? If not, they should be protected with
>>> #ifdef CONFIG_ARM_64.
>>>
>>=20
>> It is valid even for x86_64. They use the same opcode for x86_64, arm,
>> aarch64 and riscv.
>
> Wow. On x86-64 they rely on the (prefix-less) opcode 0f3af2 to not gain
> any meaning. Somewhat similar on RISC-V, somewhere in MISC_MEM opcode
> space. Pretty fragile. Not to speak of what the effect of using such an
> opcode is on disassembly of surrounding code (at least for x86).

Yeah, they made some questionable choices, and opcode selection is one
of them. Also, the whole libafl-qemu code quality is not to the highest
standard, but there are no better alternatives.

They just hacked into TCG translator code and are looking for the their
special opcodes byte-per-byte:

[1] https://github.com/AFLplusplus/qemu-libafl-bridge/blob/main/accel/tcg/t=
ranslator.c#L184


--=20
WBR, Volodymyr=


From xen-devel-bounces@lists.xenproject.org Wed Apr 30 12:23:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 30 Apr 2025 12:23:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.973573.1361665 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uA6T9-000510-Aw; Wed, 30 Apr 2025 12:23:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 973573.1361665; Wed, 30 Apr 2025 12: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 1uA6T9-00050t-8C; Wed, 30 Apr 2025 12:23:19 +0000
Received: by outflank-mailman (input) for mailman id 973573;
 Wed, 30 Apr 2025 12:23: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=IZps=XQ=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1uA6T7-00050n-KF
 for xen-devel@lists.xenproject.org; Wed, 30 Apr 2025 12:23:17 +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 e315b120-25bd-11f0-9eb4-5ba50f476ded;
 Wed, 30 Apr 2025 14:23:14 +0200 (CEST)
Received: from PR3P193CA0032.EURP193.PROD.OUTLOOK.COM (2603:10a6:102:51::7) by
 DU2PR08MB9963.eurprd08.prod.outlook.com (2603:10a6:10:495::6) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.8678.33; Wed, 30 Apr 2025 12:23:10 +0000
Received: from AM4PEPF00025F99.EURPRD83.prod.outlook.com
 (2603:10a6:102:51:cafe::24) by PR3P193CA0032.outlook.office365.com
 (2603:10a6:102:51::7) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.36 via Frontend Transport; Wed,
 30 Apr 2025 12:23:10 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AM4PEPF00025F99.mail.protection.outlook.com (10.167.16.8) with Microsoft SMTP
 Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8722.2 via
 Frontend Transport; Wed, 30 Apr 2025 12:23:10 +0000
Received: from DB7PR08MB2987.eurprd08.prod.outlook.com (2603:10a6:5:1c::25) by
 PA6PR08MB10738.eurprd08.prod.outlook.com (2603:10a6:102:3d7::14) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8699.19; Wed, 30 Apr
 2025 12:22:37 +0000
Received: from DB7PR08MB2987.eurprd08.prod.outlook.com
 ([fe80::d53f:b16d:70a5:8668]) by DB7PR08MB2987.eurprd08.prod.outlook.com
 ([fe80::d53f:b16d:70a5:8668%5]) with mapi id 15.20.8678.028; Wed, 30 Apr 2025
 12:22: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: e315b120-25bd-11f0-9eb4-5ba50f476ded
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=tIJAehQX3Fw1F1zCX6oNRZoQIWc9/KkT5AcrvPqAay7dTDWB7tZStgiO+xH+apEgDFS82K4f2ZeKlhNWMmHVRnO0AWvJh41VcoApkEMhrEGmxBynTwk8T+GHiohPtEfCgbRJ+EDPtVBilm9hzBbiSFH2PsDdI04/mPDlNxXoys85YfylPCMUpTWdK0b9y6Ojc5HIzARbtSPoHXp9RVZSxVs3w5R4/jjyKRShvHxTbIRKQSSxwuM4K0SFNY38NWhGIqG36fJvEmRo+IJYcRGcbSH/UKaYcUAcgrBdV10+iYsWXRQ+QYjM6032Q9/VEwZJ3saTHyJYloPW8FCnXUdgPg==
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=8o9f0xo/hUkhj2cuddNrtFka2lKU2fMB/VfxM58In1c=;
 b=D9ZbDvSoQuPx65h3KObFoH2cx7zdLznvIWk0YFMss0w+0u32AzZzkbCPUOVEScLQMjdU2h6yNqL5ef1nS2o71BOiPRx5a3wZO1y73G8mdd5r6KexILZFhnBEs1SMBFiCAgsr82wJAeDUp9E1+hjaiihHjmch3AopVEXqA/bY90GOR+YkZQ3GbzB5ESjH3BobXpEdzDcAaRVM7TaVMLW6MntlGE4OZxXSufDWkLyocHghhFGuTdKNFlAHYu6DQ4966JJa5+qw3oKzaX5hUhmBHy2rmka/NCREOslcZcfdVjo7FWBtpKWJY2gxB+/Xy19En/oloNDtlVS8Ia9PS/Zrsw==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=amd.com smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=8o9f0xo/hUkhj2cuddNrtFka2lKU2fMB/VfxM58In1c=;
 b=NT8dbtUpwLRCZJfTXSSyf3SRKSkXaeQYKtmjTvnWv2kDrWHbDm+Iggus9CjqPnBQojuUF3bF4NNegYSQtR/xbrEwqBwflxTC2LEIKeNHf9mHFAPScQWLDX6lYQcFE98Z9jYDSG6QBrQM+P+BClz3Nk0OVIap5LR6RACOGPU9JOY=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129)
 smtp.mailfrom=arm.com; dkim=pass (signature was verified)
 header.d=arm.com;dmarc=pass action=none header.from=arm.com;
Received-SPF: Pass (protection.outlook.com: domain of arm.com designates
 4.158.2.129 as permitted sender) receiver=protection.outlook.com;
 client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=jer36ERGP/Xk7hIh82iBNQbxxQXMkKDbkMqmgol2zFYJmrUlPrCuPEgEdfPJ1ZW/2s6j4DC/S9ECip+anxo9Pebcprb9AZM9WrR2OU6F//riGLFaF74Ts90veioMByQjoDEdKMwz3RznotVHq39njhYY+5yVbK/t3tN1rvWrGIiYWqHxsVpumeXI9KQ5ciGfTb3HPlmvJISS7Fcm8447Yr0dMW49DG339v1Khmf+9jyR2w/XZ377XwRq/OEe2Rju2TqN4FjiK6SkJ/eztX+9cn6ukEWDcir2ZMqtXa7S99OZJjIRVMqYXMlXhKaH1YsMRkm4116PPzKeqZ/EeOiKHg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=8o9f0xo/hUkhj2cuddNrtFka2lKU2fMB/VfxM58In1c=;
 b=NjPNV6ajs1/VeXmgifEzR8ESJFXBe/Gu4WQeDRgbFDLTH4EFAz7Y3ZIvPMpOvmy7zrpSMIF+gD1AAKzPMD7mwKFUCp/bQBTAgo/mkomM5eycBbIca9kVHpT2WXbVkQqctwK6czxuh3XfyRsajIck9gNkIqO3BH98RGexMZnnxxD+RXVG2iVkBzFXheDlvOWnZo/GRbLR+qn5LRh5vAUWGN3gnzvb4ZVgbT06BY4AewesnuCrm8xpVSs+6wGzeMZ1aA6hBfcy8SRKVjrN7XY7D8qP1hHjhOqaUY/m5q8TTSre+aO07XPwR/ZwFyQVxzpvgpxlSKAiEl8Y4u3GVgseEA==
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=8o9f0xo/hUkhj2cuddNrtFka2lKU2fMB/VfxM58In1c=;
 b=NT8dbtUpwLRCZJfTXSSyf3SRKSkXaeQYKtmjTvnWv2kDrWHbDm+Iggus9CjqPnBQojuUF3bF4NNegYSQtR/xbrEwqBwflxTC2LEIKeNHf9mHFAPScQWLDX6lYQcFE98Z9jYDSG6QBrQM+P+BClz3Nk0OVIap5LR6RACOGPU9JOY=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: "Orzel, Michal" <Michal.Orzel@amd.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand
 Marquis <Bertrand.Marquis@arm.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH v4 3/7] arm/mpu: Provide and populate MPU C data
 structures
Thread-Topic: [PATCH v4 3/7] arm/mpu: Provide and populate MPU C data
 structures
Thread-Index: AQHbuRprYh16Ok81YUq8WQ3ZmeL+z7O8CyoAgAAXmgA=
Date: Wed, 30 Apr 2025 12:22:37 +0000
Message-ID: <CE38FEAB-180D-478D-99E5-855CEEB870E9@arm.com>
References: <20250429152057.2380536-1-luca.fancellu@arm.com>
 <20250429152057.2380536-4-luca.fancellu@arm.com>
 <7fa8309f-0f5b-4842-bb0a-8c6e1fe5c11f@amd.com>
In-Reply-To: <7fa8309f-0f5b-4842-bb0a-8c6e1fe5c11f@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.400.131.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DB7PR08MB2987:EE_|PA6PR08MB10738:EE_|AM4PEPF00025F99:EE_|DU2PR08MB9963:EE_
X-MS-Office365-Filtering-Correlation-Id: 1d4c79a5-10a9-4fdd-3106-08dd87e1c557
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?NW1Ub3pBNGhaNENseDNLZ2JwaDgxclR2dFlTRlBFdFFwRDUraFpURmJrSGRC?=
 =?utf-8?B?Ritrc28xUlFIVmdTM0x2eTBORkp2NU1qQktFR3VuWmJkUTI5NHh6cDQ1cGxW?=
 =?utf-8?B?c0lYeFlYaGg3V3FlVnJQSytRQlV4Q1phWnJjZlJjc29DRG1LSW1Cakw5bURn?=
 =?utf-8?B?dUhab3FRQkZROUwxSVU5bi95bmFNd3VyaytpNTFEZjNLQXZxUFJFMXN1SGp3?=
 =?utf-8?B?aTF1QVYzSjJKaGZhSVRuRUpTSTh6TGd6SjdRRUtjQnl1MVhGUENFczNXUUh4?=
 =?utf-8?B?TjdaQ0l5MEdqSWFCSE9WcytJT1ozU0NBU1F3UmtYS3pyK3RDTmRreDRId1lW?=
 =?utf-8?B?c0NpZm8yQjhSTStSWUN6MlZIMHR2c3U4Tjhubm90cXoremdPcjZERFZXeGZz?=
 =?utf-8?B?SWRnNUNmd0sycnFncHVrTVhxK2Zkd3I5Tm5MVVZWODZzbmpBeGxFSVByUHNS?=
 =?utf-8?B?MTRiWHV0MzNJWUV5ZStDOXZmUXdGS3Q1aEI4VWRlUGhXM2RXZXJtRlFzWkZQ?=
 =?utf-8?B?VEhMOTZKQlJWUHFmc3VldjF0blduVmJEUVUwK2poTUNGUXIwdWZiUU92d09u?=
 =?utf-8?B?dXJXQkZQcjJIQzM1Nm5aZ2hhRXd2THo0N2lzQXlLeTBZdWtCeXJFWGt0M1F5?=
 =?utf-8?B?Mkh4ODd1UkthNEFOdG5hK21LMGR5K1VITWZyWnVWb2V4ckFBOEo4cjhuUnhY?=
 =?utf-8?B?OEdUUFBYMG5aNG9tZTRHdS91TGRhd3h2OVkrOXU2RjY4Z3A2cEpHQTFqd0Q0?=
 =?utf-8?B?OUgwRzVIdU9aY1Rab0JWRXdqOXNDTkRnd2ZPS0xWM0ZOSkgvUWdXVVZzR2ZR?=
 =?utf-8?B?bGVjWG5tbWNhaHZRQTJZeStYYnhkRWtkREU2WnI5OWlCL0hXWVNiZS9JZW52?=
 =?utf-8?B?UEU4N3RVR0VXd2dOTlpXUzNGc2RKaVBrNkl0SFd1U2doQXZ5S2w1OFRvYnd6?=
 =?utf-8?B?c09yVDhNeHB2dXVVMWl4eDRhTm1MWElEY29CaittTDl6akhBNXNKR0Nqbnc3?=
 =?utf-8?B?TUpGY1BjU0RWVWdSd1E4VHc1Z1h5SUN6YTk1VXU2RzJuRFJvaWtXd21kSWtk?=
 =?utf-8?B?bHdBdHdmd1dzczlQT3poN1czbkUvMS9nbFlPNGRxbTJKQVh4c3lhd2JQYlhU?=
 =?utf-8?B?b1J3SmthVzNDb0lFV2gzSzRGaEd4blB1Z3NybTd2L2hpQnlWYjVpSmF4Mmpi?=
 =?utf-8?B?LzZZSkFLakoyb0xHRjg2YTRkU3JUTi9EaE9zeEFrZWt1QXc2bjNaMUx3dlQw?=
 =?utf-8?B?RUNkSUgrSlVZcGNUSFl6T2JYK1ZWb1NnSkhiZWJyT09tblRUNHk0dndWVXZk?=
 =?utf-8?B?Zmtqa0c5d1J1NW11c3BrNnZKYmY3Z3lLZlg2UmduT2s2NW9hYkc0V0k3Qmdv?=
 =?utf-8?B?TzYvVWlXSVBtRlpoL2JwcjBzUXlvWnNXQlhsNUJrUlY5ZGRXdktRMkEreDRG?=
 =?utf-8?B?c2NxK2JEMnAxMFZ1VHRyZlNqbUJ2b25tL3R1NEJtQXZXbnNnRWZPeVBvc1lV?=
 =?utf-8?B?cXJyZ1QrQ3VZM0J5MGJqejhsUTU0UCtENi9HRTFzNzBuWEdDckFJTk5TbTRB?=
 =?utf-8?B?RjlNYW1td1BxbTJQVTNhMUF6VUYzSzJ0TDJ0ZllpOElSVHhzUUpHR0d0bDdj?=
 =?utf-8?B?QmRpdGNNdllwelN6emFvTUV6ZXFLMzljU2hGdHhNMTFDZ1IrcEZzZFVMamhB?=
 =?utf-8?B?ekFXQnJnLzczKzR2WUdXMytPV2FaSk81VWo5eWg0cEtXdVFVazVzYUQ1b1Jl?=
 =?utf-8?B?cngrdGc3S1IzMGhLYU5JaUp0VVp2dlRhN2dlTWxEYjNLVUk3MlpsKzVWVUhj?=
 =?utf-8?B?ZllibitZcDlYWmlJeE9UVXFZTEpjdVJxUHNTb2dZZjJFWUdBZGxjQU55NFAr?=
 =?utf-8?B?YWFOUGlQM21IZG5YMi90Y1lROFBBc1V4V0FyVnhkK1M3Zk81V1crVFZSd0dt?=
 =?utf-8?B?NktaOTFiaEcvcDJacmozS2R3QkdXaUJZSkdrMTVrY2I0MHlRbGNWVzY0dGhP?=
 =?utf-8?B?S2Z1cHhua2h3PT0=?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB7PR08MB2987.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: <1963A213CA0FE84FA11A97BB4CBC9235@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA6PR08MB10738
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AM4PEPF00025F99.EURPRD83.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	05b64012-4365-47aa-6f03-08dd87e1b1b3
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|35042699022|82310400026|1800799024|36860700013|14060799003|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?MWZtZjNMYmpaWTJRakhZVkE1ZmZVb1pjZDduaFlKNm1Eb0ViaHEyUEVYb2hM?=
 =?utf-8?B?TDUyQmlVZ25sa2hDNkNuZ3lhUWxkdGs1b3hZc1AzZGRYVFRTM3F4a0RINXhz?=
 =?utf-8?B?aFlMNW41UjlCUTNTeDBGRUx4UnpyNnNRZ09RNWpBOVlKVWFNSFd5TkpxSzdw?=
 =?utf-8?B?enJ2NzZqdDZXODZ6STJZMUI3dkpYM0xlQ2Zqck00QTJUMndNNitmZEhzSG9H?=
 =?utf-8?B?WERMMnU0enR6amZKQ2twODQzRGhEU3F6czIwSFpwQk95aC9EN1VHcGpKb0Jk?=
 =?utf-8?B?dnh1S0t6Mk9aUWQwRmZCME1tU1lqSnVOVVUrdVZqWmh4cjVZMDJmTFpMVzdk?=
 =?utf-8?B?VnpScHdPV0dScDF3eHRlaW12T2RpUUZ3dWNlbmRQbGlJdFFSQXlHYlFBMytR?=
 =?utf-8?B?TVpPL1BCSzJDT3dmM09LSkQ0dUFKZDROcmZvckM3ZkpPa00yVlIzOWt1Wjc4?=
 =?utf-8?B?cWNJSnU4UVdBZXl0d0xWWnBENVNUOGhFLy8zRE4zOFFuRWRCZlJkclRVNGJs?=
 =?utf-8?B?Tis5R1ZZeVoxbzBhZG5ac01YSTkxTjY5ZjJreHQzSFF5TGZkRExQZFE1SHNs?=
 =?utf-8?B?Qkk1QW04ZkpMMHNKNkJEVGNSd1N4Z0Z0YlB5Z2Z4WENMN0I5UlBlUU03SzVx?=
 =?utf-8?B?Ymdvb1NqVTV4S1liMDl5RmhQTTlYVFRYSnN6N2ZkRDYxZDJDQ3B4MjFpenBy?=
 =?utf-8?B?SEh5SEFQODMvUnZTWkdRM1RibE5vaWRjUnh0SUpIQXQxMVZyVzE4U1RlVVo2?=
 =?utf-8?B?Z0ZsL0hMaFYrYU1wU1h2dFRjZVI0ckNEbTVacVBkNzl3SUpmbyt1UGN5UWQ1?=
 =?utf-8?B?ZG9PN094ckUyK3FEbEpVVmZKbFhjY0wzMmYvVUYrd1J2NHRaaWZSaWxhVlo1?=
 =?utf-8?B?MnhwdXB0M2lIcHRJVk5UazNYTkZ0TlBya2pBcFpJVXQ5NE4reWFhbUxiK1Ux?=
 =?utf-8?B?T3BENjdWbVNpQlczVGk1STd0L2wyOExsMXg2TklQbWFiaThWTUdFVGNBU3BD?=
 =?utf-8?B?TGtkV3hjQ1lkWXJWVUpqTzRQaEZtUlZPSTQwQ3VqVUhINjZJNVVpeG1Fb2Yv?=
 =?utf-8?B?NGhqTk1JY1VaejJjeHRybDI3UUJRbjB5QjB5SGZkVGJKN1hocWJGR0dnUXgw?=
 =?utf-8?B?bHViSk54aTE2WDd4eFE1ZndWd0FhUWU5WlJmdlo1MlpNRmxhNTdxNmF0UGVW?=
 =?utf-8?B?SFhnQzVZbVVrOVFoTnF1c2tIOXpXS1pDbVpvNmxYZ2pLK0swb3BRR3ZHOGZy?=
 =?utf-8?B?ZWNGUDJPN21QRjB0NTZ0WFBZSndObVE0RWEzeUJNclpxTmY4SFl4eTZaVHVk?=
 =?utf-8?B?YUxsL01OckVJeFZNZnVRdElOc0x0QmF0N3JKL250R1NOR25NWkFJT2dydFFZ?=
 =?utf-8?B?dG1hQjlQK1B6RHc2QW1YamZYOUd0M1RWMURFUnVoU3Q2VVRTa2pHbTdGN0ZP?=
 =?utf-8?B?NlJVaS9kcmxtL3ZNeFhvTUxmUlRaV0NRZzFxUjUyWU5TR3ptNmV0YVdOWGk0?=
 =?utf-8?B?NFVYZFBrbThYV0xQeHB1WG42amdWWUk3K0lwWTdxbm5Ic2Ewd3JxRFRXMkxZ?=
 =?utf-8?B?bzBFTkQrbnprdDAyTEdCNVpveVdtekg5bXZ4bzhQWGkvcGo0cHBqb2RHTHdT?=
 =?utf-8?B?UlRsREpJcjlpeklxRVdvcFBvRk9pdGpFbXRaNEdQZkZwQnptaHpMdHIxUU15?=
 =?utf-8?B?Sk4rTHc2Wk9HYThnQlBhTmp5WTZuUUROdkZHSEVvMVVjNExoTW9ZVmRFTS9s?=
 =?utf-8?B?N2M4Zis5bDcyNFo1b2RmTlZFMlBGSnpIN0d6TGxyUEVjK01XK1VVNTJiMnFV?=
 =?utf-8?B?MDI2TDBWM0pIOUJqdnZhaEdBbGhIS2NhMjB0akM2NmhuVVppVERFT3VOYXpR?=
 =?utf-8?B?Ni9pOHprSG0rVTkrRzd4VmdINDIrK1pwUmg0VVhmQ1N1OFFWaWVzbEJ3U0Ft?=
 =?utf-8?B?UGh2N2hVclF2dTdndDFKNTVnZzUySWFVSHF0WUZ5Mi8xb2l3Z0xOMkkrcnlR?=
 =?utf-8?B?THBOS2NwZ3RnczdKZ3RKVW9nMFZ1eVUwUGgrVFU5SVRYN2hGZnRTK240WEFT?=
 =?utf-8?Q?IeYlCE?=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(35042699022)(82310400026)(1800799024)(36860700013)(14060799003)(376014)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Apr 2025 12:23:10.3782
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 1d4c79a5-10a9-4fdd-3106-08dd87e1c557
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AM4PEPF00025F99.EURPRD83.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU2PR08MB9963

SGkgTWljaGFsLA0KDQo+IE9uIDMwIEFwciAyMDI1LCBhdCAxMTo1NywgT3J6ZWwsIE1pY2hhbCA8
TWljaGFsLk9yemVsQGFtZC5jb20+IHdyb3RlOg0KPiANCj4gDQo+IA0KPiBPbiAyOS8wNC8yMDI1
IDE3OjIwLCBMdWNhIEZhbmNlbGx1IHdyb3RlOg0KPj4gUHJvdmlkZSBzb21lIGRhdGEgc3RydWN0
dXJlIGluIHRoZSBDIHdvcmxkIHRvIHRyYWNrIHRoZSBNUFUNCj4+IHN0YXR1cywgdGhlc2Ugc3Ry
dWN0dXJlcyB3aWxsIGJlIGZpbGxlZCBhdCBib290IGJ5IHRoZSBhc3NlbWJseQ0KPj4gZWFybHkg
Y29kZSB3aXRoIHRoZSBib290IE1QVSByZWdpb25zIGFuZCBhZnRlcndhcmRzIHRoZXkgd2lsbCBi
ZQ0KPj4gdXNlZCBhdCBydW50aW1lLg0KPj4gDQo+PiBQcm92aWRlIG1ldGhvZHMgdG8gdXBkYXRl
IGEgYml0bWFwIGNyZWF0ZWQgd2l0aCBERUNMQVJFX0JJVE1BUA0KPj4gZnJvbSB0aGUgYXNzZW1i
bHkgY29kZSBmb3IgYm90aCBBcm0zMiBhbmQgQXJtNjQuDQo+PiANCj4+IE1vZGlmeSBBcm02NCBh
c3NlbWJseSBib290IGNvZGUgdG8gcmVzZXQgYW55IHVudXNlZCBNUFUgcmVnaW9uLA0KPj4gaW5p
dGlhbGlzZSAnbWF4X3hlbl9tcHVtYXAnIHdpdGggdGhlIG51bWJlciBvZiBzdXBwb3J0ZWQgTVBV
DQo+IElNTyB0aGlzIGlzIG5vdCBhIGdvb2QgbmFtZSBiZWNhdXNlIHRoZXJlJ3Mgbm90aGluZyB0
aGVyZSBzdWdnZXN0aW5nIHRoYXQgdGhpcw0KPiB2YXJpYWJsZSBzdG9yZXMgdGhlIG51bWJlci4g
TWF5YmUgbWF4X21wdV9yZWdpb25zIG9yIG1heF94ZW5fbXB1bWFwX3JlZ2lvbnMuDQoNCm9rIEkg
d2lsbCBjaGFuZ2UgaXQNCg0KPj4gDQo+PiAgICAgLyogeDA6IHJlZ2lvbiBzZWwgKi8NCj4+ICAg
ICBtb3YgICB4MCwgeHpyDQo+PiAgICAgLyogWGVuIHRleHQgc2VjdGlvbi4gKi8NCj4+IEBAIC03
NCw2ICs3NywxNiBAQCBGVU5DKGVuYWJsZV9ib290X2NwdV9tbSkNCj4+ICAgICBwcmVwYXJlX3hl
bl9yZWdpb24geDAsIHgxLCB4MiwgeDMsIHg0LCB4NSwgYXR0cl9wcmJhcj1SRUdJT05fREVWSUNF
X1BSQkFSLCBhdHRyX3BybGFyPVJFR0lPTl9ERVZJQ0VfUFJMQVINCj4+ICNlbmRpZg0KPj4gDQo+
PiAremVyb19tcHU6DQo+PiArICAgIC8qIFJlc2V0IHJlbWFpbmluZyBNUFUgcmVnaW9ucyAqLw0K
Pj4gKyAgICBjbXAgICB4MCwgeDUNCj4+ICsgICAgYmVxICAgb3V0X3plcm9fbXB1DQo+PiArICAg
IG1vdiAgIHgxLCAjMA0KPj4gKyAgICBtb3YgICB4MiwgIzENCj4gU2hvdWxkbid0IHdlIG1hcmsg
dGhlIHJlZ2lvbiBhcyBlbXRweSAoYmFzZSA9PSBsaW1pdCkgd2hlbiBkb2luZyByZWdpb24gY2xl
YXI/DQoNClNvIHRoZSBtYWNybyB0YWtlcyBhbiBleGNsdXNpdmUgcmFuZ2UsIGluc2lkZSBpdCB3
aWxsIGNoYW5nZSB0byBpbmNsdXNpdmUgYnkgZG9pbmcgbGltaXQtMSwNCnNvIHRoZSByZWdpb24g
d2lsbCBiZSBlbXB0eS4NCg0KPiANCj4gDQo+PiBAQCAtMCwwICsxLDY3IEBADQo+PiArLyogU1BE
WC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seSAqLw0KPj4gKw0KPj4gKy8qDQo+PiAr
ICogU2V0cyBhIGJpdCBpbiBhIGJpdG1hcCBkZWNsYXJlZCBieSBERUNMQVJFX0JJVE1BUCwgc3lt
Ym9sIG5hbWUgcGFzc2VkIHRocm91Z2gNCj4+ICsgKiBiaXRtYXBfc3ltYm9sLg0KPj4gKyAqDQo+
PiArICogYml0bWFwX3NldF9iaXQ6ICAgICAgc3ltYm9sIG9mIHRoZSBiaXRtYXAgZGVjbGFyZWQg
YnkgREVDTEFSRV9CSVRNQVANCj4+ICsgKiBiaXQ6ICAgICAgICAgICAgICAgICBiaXQgbnVtYmVy
IHRvIGJlIHNldCBpbiB0aGUgYml0bWFwDQo+PiArICogdG1wMS10bXA0OiAgICAgICAgICAgdGVt
cG9yYXJ5IHJlZ2lzdGVycyB1c2VkIGZvciB0aGUgY29tcHV0YXRpb24NCj4+ICsgKg0KPj4gKyAq
IFByZXNlcnZlcyBiaXQuDQo+IEhlcmUgeW91IHNheSBpdCBpcyBwcmVzZXJ2ZWQsIHlldC4uLg0K
PiANCj4+ICsgKiBPdXRwdXQ6DQo+PiArICogIHRtcDE6IEFkZHJlc3Mgb2YgdGhlIHdvcmQgY29u
dGFpbmluZyB0aGUgY2hhbmdlZCBiaXQuDQo+PiArICogQ2xvYmJlcnM6IGJpdCwgdG1wMSwgdG1w
MiwgdG1wMywgdG1wNC4NCj4gLi4uIGhlcmUgeW91IGxpc3QgaXMgYXMgY2xvYmJlcmVkLg0KDQpy
aWdodCwgSeKAmWxsIGZpeCB0aGF0DQoNCj4gDQo+PiArICovDQo+PiArLm1hY3JvIGJpdG1hcF9z
ZXRfYml0IGJpdG1hcF9zeW1ib2wsIGJpdCwgdG1wMSwgdG1wMiwgdG1wMywgdG1wNA0KPj4gKyAg
ICBhZHJfbCAgIFx0bXAxLCBcYml0bWFwX3N5bWJvbA0KPj4gKyAgICBtb3YgICAgIFx0bXAyLCAj
KEJZVEVTX1BFUl9MT05HIC0gMSkNCj4+ICsgICAgbXZuICAgICBcdG1wMiwgXHRtcDINCj4+ICsg
ICAgbHNyICAgICBcdG1wMywgXGJpdCwgIzMNCj4+ICsgICAgYW5kICAgICBcdG1wMiwgXHRtcDMs
IFx0bXAyDQo+PiArICAgIGFkZCAgICAgXHRtcDEsIFx0bXAxLCBcdG1wMiAgICAgICAgICAgICAg
ICAgLy8gYml0bWFwX3N5bWJvbCArIChiaXQvQklUU19QRVJfTE9ORykqQllURVNfUEVSX0xPTkcN
Cj4gV2UgZG9uJ3QgdXNlIC8vIHN0eWxlIGNvbW1lbnRzLiBQbGVhc2UgdXNlIC8qICovDQoNCnN1
cmUsIEnigJlsbCBjaGFuZ2UgaGVyZSBhbmQgaW4gdGhlIHJlc3Qgb2YgdGhlIHBhdGNoDQoNCj4+
IA0KPj4gDQo+PiAjZGVmaW5lIE1QVV9SRUdJT05fU0hJRlQgIDYNCj4+IEBAIC0xNyw2ICsyMSw3
IEBADQo+PiAjZGVmaW5lIE5VTV9NUFVfUkVHSU9OU19TSElGVCAgIDgNCj4+ICNkZWZpbmUgTlVN
X01QVV9SRUdJT05TICAgICAgICAgKF9BQygxLCBVTCkgPDwgTlVNX01QVV9SRUdJT05TX1NISUZU
KQ0KPj4gI2RlZmluZSBOVU1fTVBVX1JFR0lPTlNfTUFTSyAgICAoTlVNX01QVV9SRUdJT05TIC0g
MSkNCj4+ICsjZGVmaW5lIE1BWF9NUFVfUkVHSU9OX05SICAgICAgIDI1NQ0KPiBTaG91bGRuJ3Qg
eW91IGRlZmluZSBpdCB1c2luZyBOVU1fTVBVX1JFR0lPTlM/IEl0IHNob3VsZCBoYXZlIHRoZSBz
YW1lDQo+IGRlZmluaXRpb24gYXMgbWFzay4NCg0KTWF5YmUgSSBtaXN1bmRlcnN0b29kIHlvdXIg
Y29tbWVudCBpbiB0aGUgcHJldmlvdXMgcGF0Y2gsIG9rIEkgd2lsbCB1c2U6DQoNCiNkZWZpbmUg
TUFYX01QVV9SRUdJT05fTlIgICAgICBOVU1fTVBVX1JFR0lPTlNfTUFTSw0KDQo+PiANCj4+ICsN
Cj4+ICsubWFjcm8gc3RvcmVfcGFpciByZWcxLCByZWcyLCBkc3QNCj4+ICsgICAgICAgIHN0cCBc
cmVnMSwgXHJlZzIsIFtcZHN0XQ0KPiBXaHkgOCBpbnN0ZWFkIG9mIDQgc3BhY2VzPw0KDQpJ4oCZ
bGwgZml4IA0KDQo+PiANCj4+IC8qDQo+PiAgKiBNYWNybyB0byBwcmVwYXJlIGFuZCBzZXQgYSBF
TDIgTVBVIG1lbW9yeSByZWdpb24uDQo+PiAgKiBXZSB3aWxsIGFsc28gY3JlYXRlIGFuIGFjY29y
ZGluZyBNUFUgbWVtb3J5IHJlZ2lvbiBlbnRyeSwgd2hpY2gNCj4+ICAqIGlzIGEgc3RydWN0dXJl
IG9mIHByX3QsICBpbiB0YWJsZSBccHJtYXAuDQo+PiAgKg0KPj4gICogc2VsOiAgICAgICAgIHJl
Z2lvbiBzZWxlY3Rvcg0KPj4gLSAqIGJhc2U6ICAgICAgICByZWcgc3RvcmluZyBiYXNlIGFkZHJl
c3MNCj4+IC0gKiBsaW1pdDogICAgICAgcmVnIHN0b3JpbmcgbGltaXQgYWRkcmVzcw0KPj4gKyAq
IHRtcDE6ICAgICAgICByZWcgc3RvcmluZyBiYXNlIGFkZHJlc3MNCj4+ICsgKiB0bXAyOiAgICAg
ICAgcmVnIHN0b3JpbmcgbGltaXQgYWRkcmVzcw0KPiBJIHRoaW5rIHRoaXMgY2hhbmdlIGlzIG5v
dCBuZWVkZWQuIFRoZSBwYXJhbWV0ZXJzIHNob3VsZCBiZSBuYW1lZCBiYXNlIGFuZCBsaW1pdA0K
PiBiZWNhdXNlIHRoaXMgaXMgd2hhdCB5b3UgZXhwZWN0IGNhbGxlciB0byBwYXNzLiBJbnNpZGUg
dGhlIGZ1bmN0aW9uLCB5b3UgY2FuIGRvDQo+IHdoYXRldmVyIHlvdSB3YW50IHdpdGggdGhlc2Ug
cmVnaXN0ZXJzIGFuZCBjYWxsZXIgZG9lcyBub3QgY2FyZSBhcyBsb25nIGFzIHlvdQ0KPiBtZW50
aW9uIGlmIHRoZXkgYXJlIGNsb2JiZXJlZCBvciBub3QuIFNhbWUgaW4gQyB3b3JsZC4gWW91IGNh
biByZXVzZSB0aGUNCj4gcGFyYW1ldGVyIGZvciBhIGRpZmZlcmVudCBpbnRlcm5hbCBwdXJwb3Nl
IGluc2lkZSBhIGZ1bmN0aW9uLg0KDQpvayBJ4oCZbGwgcmV2ZXJ0IGJhY2sNCg0KPj4gDQo+PiAr
DQo+PiArICAgIC8qIExvYWQgcGFpciBpbnRvIHhlbl9tcHVtYXAgYW5kIGludmFsaWRhdGUgY2Fj
aGUgKi8NCj4+ICsgICAgbW92ICAgXHRtcDEsIFxzZWwNCj4+ICsgICAgbHNsICAgXHRtcDEsIFx0
bXAxLCAjWEVOX01QVU1BUF9FTlRSWV9TSElGVA0KPiBZb3UgY291bGQgZ2V0IHJpZCBvZiB0aGVz
ZSAyIGV4dHJhIGluc3RydWN0aW9ucyBhbmQgaW5zdGVhZCBkbzoNCj4gDQo+PiArICAgIGFkcl9s
IFx0bXAyLCB4ZW5fbXB1bWFwDQo+PiArICAgIGFkZCAgIFx0bXAyLCBcdG1wMiwgXHRtcDENCj4g
YWRkIFx0bXAyLCBcdG1wMiwgXHNlbCwgbHNsICNYRU5fTVBVTUFQX0VOVFJZX1NISUZUDQoNCnll
cCwgSeKAmWxsIHVzZSBpdA0KDQo+IHdoaWNoIGNvbWJpbmVzIGV2ZXJ5dGhpbmcgaW4gb25lIGdv
Lg0KPiANCj4+ICsgICAgc3RvcmVfcGFpciBccHJiYXIsIFxwcmxhciwgXHRtcDINCj4+ICsgICAg
aW52YWxpZGF0ZV9kY2FjaGVfb25lIFx0bXAyDQo+PiArDQo+PiArICAgIC8qIFNldC9jbGVhciB4
ZW5fbXB1bWFwX21hc2sgYml0bWFwICovDQo+PiArICAgIHRzdCAgIFxwcmxhciwgI1BSTEFSX0VM
eF9FTg0KPj4gKyAgICBibmUgICAyZg0KPj4gKyAgICAvLyBSZWdpb24gaXMgZGlzYWJsZWQsIGNs
ZWFyIHRoZSBiaXQgaW4gdGhlIGJpdG1hcA0KPiBDb21tZW50IHN0eWxlLCBoZXJlIGFuZCBlbHNl
d2hlcmUNCj4gDQo+PiArICAgIGJpdG1hcF9jbGVhcl9iaXQgeGVuX21wdW1hcF9tYXNrLCBcc2Vs
LCBcdG1wMSwgXHRtcDIsIFxwcmJhciwgXHBybGFyDQo+PiArICAgIGIgICAgIDNmDQo+PiArDQo+
PiArMjoNCj4+ICsgICAgLy8gUmVnaW9uIGlzIGVuYWJsZWQsIHNldCB0aGUgYml0IGluIHRoZSBi
aXRtYXANCj4+ICsgICAgYml0bWFwX3NldF9iaXQgeGVuX21wdW1hcF9tYXNrLCBcc2VsLCBcdG1w
MSwgXHRtcDIsIFxwcmJhciwgXHBybGFyDQo+IFdvdWxkbid0IGl0IGJlIGJldHRlciB0byBmaXJz
dCBjbGVhciB0aGUgZW50aXJlIGJpdG1hcCBiZWZvcmUgc2V0dGluZyB1cCB0aGUNCj4gcmVnaW9u
cyAoaS5lLiBhbGwgcmVnaW9ucyBkaXNhYmxlZCkgYW5kIHRoZW4gb25seSBoYXZlIHRoZSBzZXQg
cGFydCBoZXJlPw0KDQp3ZWxsIHdlIGFyZSBnb2luZyB0byBzZXQgdXAgYWxsIHJlZ2lvbiBhbnl3
YXksIGRvaW5nIHRoYXQgaGVyZSB3aWxsIHNhdmUgc29tZSB0aW1lDQpzcGVudCBvbiBiYXJyaWVy
cyBhbmQgY2FjaGUgaW52YWxpZGF0aW9uLCBtYXliZSBub3QgbXVjaCwgYnV0IHN0aWxs4oCmDQoN
CkNoZWVycywNCkx1Y2E=


From xen-devel-bounces@lists.xenproject.org Wed Apr 30 13:13:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 30 Apr 2025 13:13:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.973590.1361674 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uA7FP-0003f8-Rd; Wed, 30 Apr 2025 13:13:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 973590.1361674; Wed, 30 Apr 2025 13:13:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uA7FP-0003f1-OP; Wed, 30 Apr 2025 13:13:11 +0000
Received: by outflank-mailman (input) for mailman id 973590;
 Wed, 30 Apr 2025 13:13: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=BSD2=XQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uA7FO-0003ev-FN
 for xen-devel@lists.xenproject.org; Wed, 30 Apr 2025 13:13: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 dbfe87dd-25c4-11f0-9eb4-5ba50f476ded;
 Wed, 30 Apr 2025 15:13:08 +0200 (CEST)
Received: by mail-ed1-x531.google.com with SMTP id
 4fb4d7f45d1cf-5e61d91a087so11513427a12.0
 for <xen-devel@lists.xenproject.org>; Wed, 30 Apr 2025 06:13:08 -0700 (PDT)
Received: from [10.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-ace6ed726f6sm915060766b.158.2025.04.30.06.13.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 30 Apr 2025 06:13: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: dbfe87dd-25c4-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1746018788; x=1746623588; 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=0g7ffsEKzhLGOZhH2SP5FQKlKiAyfqXDg3g/n2QUBAs=;
        b=WSwloKzo2FfrndPhxBeflvAoIWWNHZbBytiv86UNg9snMpkhs4gb3hS8YM1GpMjTV3
         bIWpJakZBAakn6CE2v5iWc+VfEVaZTXBtXAZx+xoWhTyspIQSL8mNxcplgclTToihoj9
         YxQsmmSTftFjFYW6v7pbOsmc2sz6fuX5GG+gL5WFNlRKPzj2Ui6nxWC2Cv55lUGq9Occ
         ygYY6cfxyTrQk0skODg7lvq2TZZMUtUbgIpFyKgJ+sIpI9YLGganQ+idTIMjlbQk5ihA
         DiCl2lNGJ/DOQcep0zMSyhZwqJ5U6mjFqGs/yHvMWl1ZMxsX2tqZXylJu+4EecvCh6AM
         5Thg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1746018788; x=1746623588;
        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=0g7ffsEKzhLGOZhH2SP5FQKlKiAyfqXDg3g/n2QUBAs=;
        b=MhtYsU2OmU9aLbb8xnVCrZjqj4WlYF97fygKA9L95JdrM0aJiAnOQrNhD0arEnfAYN
         ChrbxWtTmG0QrcYntctEmERomB+wIA24E7VAwSdZVeAwDYLlGRQm6em6bs9gdG/msFcU
         LiqhqCbnNoFTQ0xO2yVV5I/bWKQgbRKfIPX8LnZeJeseMJzNeKpbAROnS+rvVwUKf0Cg
         GnhQ3mmjRKZ/o+DR2FdtLojcx8gzQ8Wbmfg6mLk+x2zU2kUmhPDQ7jjbKm6ytgnDtNNh
         zSbaDDCLMH0s/tH7bvFm/F1u2OaIg+YAO06/K0h4Tz5Kbf1eyneLbz/aLvk4BqozBbK/
         Aiug==
X-Gm-Message-State: AOJu0YyNtdhOo8csHI5f2an9NqhdQi8cjGdwbE2UaF0xwamECxRnwSxX
	sRzIH5aE43oda/S8FM9koas2etJ5DgaO/IuX70o47dtZSSIOn3tp28fOInYtPmxmPNDDzWEynhY
	=
X-Gm-Gg: ASbGncvGDcKyb9kVLDI2Bcmj8fiUk41vfldlt0W0zdL3cxZjPtl7GKAkEqhrpFli0tN
	7EwM7fgHYBZtMvwaY+VUEhPQ2Z4IfiId0g78SfJ/+Ui9rM7ake9Bcu1lr9FTNVtIBd8REBpcSvv
	hFipgIbalC7tM2FNt02qLtsxsmFHmgBGpUc/ltzxgP/Y9nfPIPdzJ44qOoFP94OnBAeZCaK/FZ3
	PdlPGBLvgibqEqJwrmWIF8yLWPZlUQ+VKy03AjoyDC4j1SWMadplf4OH6ow/tGxnaFi6iFB2eyZ
	hDAUvuY6Fm/s6gX1H5L5zOTffQ9XoUH/z/aGmI75wtGW8jY3mWNVY41uhplKvec7l3IFIGobmQl
	uj/JLVGEkkWekUB5O8iVW3eHRUw==
X-Google-Smtp-Source: AGHT+IGTtBEeMMFl48XiFu6x/uAjcUr1yvpr3CSBt+dg46LXqdhuk3+d7sbokK9GFxwHlCi0UUF5tg==
X-Received: by 2002:a17:907:3ea6:b0:ace:d91c:926 with SMTP id a640c23a62f3a-acee25ca48emr240871366b.42.1746018787909;
        Wed, 30 Apr 2025 06:13:07 -0700 (PDT)
Message-ID: <c4a71d96-b255-432e-b148-1daf1b14c77f@suse.com>
Date: Wed, 30 Apr 2025 15:13:06 +0200
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/alternatives: allow replacement code snippets to be
 re-used
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+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

In a number of cases we use ALTERNATIVE_2 with both replacement insns /
insn sequences being identical. Avoid emitting the same code twice, and
instead alias the necessary helper labels to the existing ones.

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

--- a/xen/arch/x86/include/asm/alternative-asm.h
+++ b/xen/arch/x86/include/asm/alternative-asm.h
@@ -51,6 +51,8 @@
 
 #define decl_repl(insn, nr)     .L\@_repl_s\()nr: insn; .L\@_repl_e\()nr:
 #define repl_len(nr)           (.L\@_repl_e\()nr  -     .L\@_repl_s\()nr)
+#define clone_repl(new, old)    .equiv .L\@_repl_s\()new, .L\@_repl_s\()old; \
+                                .equiv .L\@_repl_e\()new, .L\@_repl_e\()old
 
 #define as_max(a, b)           ((a) ^ (((a) ^ (b)) & -as_true((a) < (b))))
 
@@ -100,7 +102,11 @@
     .section .altinstr_replacement, "ax", @progbits
 
     decl_repl(\newinstr1, 1)
+    .ifnes "\newinstr2", "\newinstr1"
     decl_repl(\newinstr2, 2)
+    .else
+    clone_repl(2, 1)
+    .endif
 
     .popsection
 .endm


From xen-devel-bounces@lists.xenproject.org Wed Apr 30 13:55:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 30 Apr 2025 13:55:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.973604.1361685 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uA7te-0000tr-NO; Wed, 30 Apr 2025 13:54:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 973604.1361685; Wed, 30 Apr 2025 13:54: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 1uA7te-0000tk-Km; Wed, 30 Apr 2025 13:54:46 +0000
Received: by outflank-mailman (input) for mailman id 973604;
 Wed, 30 Apr 2025 13:54: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=BSD2=XQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uA7td-0000te-Qb
 for xen-devel@lists.xenproject.org; Wed, 30 Apr 2025 13:54: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 ab84cdf1-25ca-11f0-9eb4-5ba50f476ded;
 Wed, 30 Apr 2025 15:54:44 +0200 (CEST)
Received: by mail-ed1-x534.google.com with SMTP id
 4fb4d7f45d1cf-5e5e8274a74so11565303a12.1
 for <xen-devel@lists.xenproject.org>; Wed, 30 Apr 2025 06:54:44 -0700 (PDT)
Received: from [10.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-5f70354635csm8899567a12.49.2025.04.30.06.54.42
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 30 Apr 2025 06:54:43 -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: ab84cdf1-25ca-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1746021283; x=1746626083; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=qm5V+Wob99MxsSrvD1n6mOrFTNiwoxMPJz0ngQ0qeU4=;
        b=cUwbkypHQ6twLYqb+3+IA5V8rjz5iM3dtOGES91t/2gcMdPE9g1LNnVRRZ7cTOV30B
         U+xaV3ccCUl0ZFPILuNo0dSI3ZXvRkz2vPp5sFU7O0CaQIkd/X3w3rIx0WfG0A1yO98j
         xhzccJ09v+s/loeqWoRIL7Km+rdRKyW/tCYDtkDrAQ2WXVXJA2i4EXQFjxubySFVLYma
         Z0jcspUmP57KRI+r/MMddeBc/VjU3W79QYF6pTrud5WaUdvoNn1wdqVaiFYlRWIae8zJ
         8UGSjWrjzMtFFMoXiv46kc6vWi+bDrhJNT5tefKH1k8wIBVlV49ijFIgawWY431hFo+e
         CWZg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1746021283; x=1746626083;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=qm5V+Wob99MxsSrvD1n6mOrFTNiwoxMPJz0ngQ0qeU4=;
        b=oRy7Pff/Sx1MrAkkUmR+pzYBf+bFVX1Vb9BIQ9bOgD3uW3zf0RuxkHOjwl+j9aRpBx
         E0nXdIwGgPdl2SZF//wcurSjoTO1Px9RDEcKDODZ4jwrZcs0IgXec6F8sVRHBPaLERNq
         66TCFwN+9/BMxS8Bep0zIxiqOKvsjK8SXrDoJw2iyU+cAnAkUETAVcBfGqrkXjAub56E
         KKg1fOyCSAfzKp3V8XFaPMZH/T8G0QESG5gNBX1PSoOTtnjwD3NipX0rmQstT3jRlt7V
         W1Up+SflwEQzzbRdnNA9tIqfxwN+kkL83JegROLAaj6ZSIQy/R1UE9gg4aBH8q6FBNIg
         WegA==
X-Forwarded-Encrypted: i=1; AJvYcCXEYvJDN9A9y27GuWbOWIxjffl2a+lWWXzZ3pDz2GqgYEl0voeI5iS6ilFup5hap7W8FGeWNnwH0jk=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx7Fv40O5x0k84nBvAZRch5WD6mG3cbfMzPP7GPbuUe6fJ1r8gh
	3eOeDvKMMykGZrYofe9plauuUEnUYEzR8VdpjwNN8rKahIAHPgeBvr2izEAjwQ==
X-Gm-Gg: ASbGncuny/vzWRRS2/PhMATZJX70SNMOSMRc8pdmpt0MJEs/QtcVFCIzO7xA3ehfa0c
	6D5tBWoy1wgdygcQZvqOjYYXujf8UxV9bSduhTkZXW92N2W75ObHk1NyUxZH3aL/CrQCggmqyZE
	25wmgahbnIhDmeiC4seED1bJCfZ293OV5nKblKj/E8cYqR4Xr+uomcot/uf4P7azZU3KfMLNJ/y
	mv672ZWXIYXcmao9MiK5I2IOE+uSllN5TDAS8PxRvIQBxjcgH5h8McC9vwGb5FOE4pHk17VlT+d
	u8k0YNfZOzTTEO3r0j+jBAsLGwVZoDiUKm2OQoHBpStLxNKmzKB7DxTrNy1xxHxZNJ/Of8ZeDMJ
	ASskeQm4imQZTxOC+09jsEmsFyQ==
X-Google-Smtp-Source: AGHT+IFVR9ZP6CqWaG6On9gxxKoBFXs6DQAtdRRmaOtCqjeplVQkWICoQUppOpA4RLS9xGEzANl5dQ==
X-Received: by 2002:a17:907:6089:b0:ac3:8d34:1d73 with SMTP id a640c23a62f3a-acee215d48bmr244014666b.8.1746021283509;
        Wed, 30 Apr 2025 06:54:43 -0700 (PDT)
Message-ID: <63b3b016-551c-4201-a3b3-db19b27ea649@suse.com>
Date: Wed, 30 Apr 2025 15:54:42 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 12/15] tools/xenpm: Print CPPC parameters for amd-cppc
 driver
To: Penny Zheng <Penny.Zheng@amd.com>
Cc: ray.huang@amd.com, Anthony PERARD <anthony.perard@vates.tech>,
 xen-devel@lists.xenproject.org
References: <20250414074056.3696888-1-Penny.Zheng@amd.com>
 <20250414074056.3696888-13-Penny.Zheng@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20250414074056.3696888-13-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 14.04.2025 09:40, Penny Zheng wrote:
> HWP, amd-cppc, amd-cppc-epp are all the implementation
> of ACPI CPPC (Collaborative Processor Performace Control),
> so we introduce cppc_mode flag to print CPPC-related para.
> 
> And HWP and amd-cppc-epp are both governor-less driver,
> so we introduce hw_auto flag to bypass governor-related print.

But in the EPP driver you use the information which governor is active.

> --- a/tools/misc/xenpm.c
> +++ b/tools/misc/xenpm.c
> @@ -790,9 +790,18 @@ static unsigned int calculate_activity_window(const xc_cppc_para_t *cppc,
>  /* print out parameters about cpu frequency */
>  static void print_cpufreq_para(int cpuid, struct xc_get_cpufreq_para *p_cpufreq)
>  {
> -    bool hwp = strcmp(p_cpufreq->scaling_driver, XEN_HWP_DRIVER_NAME) == 0;
> +    bool cppc_mode = false, hw_auto = false;
>      int i;
>  
> +    if ( !strcmp(p_cpufreq->scaling_driver, XEN_HWP_DRIVER_NAME) ||
> +         !strcmp(p_cpufreq->scaling_driver, XEN_AMD_CPPC_DRIVER_NAME) ||
> +         !strcmp(p_cpufreq->scaling_driver, XEN_AMD_CPPC_EPP_DRIVER_NAME) )
> +        cppc_mode = true;
> +
> +    if ( !strcmp(p_cpufreq->scaling_driver, XEN_HWP_DRIVER_NAME) ||
> +         !strcmp(p_cpufreq->scaling_driver, XEN_AMD_CPPC_EPP_DRIVER_NAME) )
> +        hw_auto = true;

Please avoid doing the same strcmp()s twice. There are several ways how to, so
I'm not going to make a particular suggestion.

> @@ -800,7 +809,7 @@ static void print_cpufreq_para(int cpuid, struct xc_get_cpufreq_para *p_cpufreq)
>          printf(" %d", p_cpufreq->affected_cpus[i]);
>      printf("\n");
>  
> -    if ( hwp )
> +    if ( hw_auto )
>          printf("cpuinfo frequency    : base [%"PRIu32"] max [%"PRIu32"]\n",
>                 p_cpufreq->cpuinfo_min_freq,
>                 p_cpufreq->cpuinfo_max_freq);
> --- a/xen/drivers/acpi/pmstat.c
> +++ b/xen/drivers/acpi/pmstat.c
> @@ -201,7 +201,7 @@ static int get_cpufreq_para(struct xen_sysctl_pm_op *op)
>      pmpt = processor_pminfo[op->cpuid];
>      policy = per_cpu(cpufreq_cpu_policy, op->cpuid);
>  
> -    if ( !pmpt || !pmpt->perf.states ||
> +    if ( !pmpt || ((pmpt->init & XEN_PX_INIT) && !pmpt->perf.states) ||
>           !policy || !policy->governor )
>          return -EINVAL;

This looks questionable all on its own. Where is it that ->perf.states allocation
is being avoided? I first thought it might be patch 06 which is related, but that
doesn't look to be it. In any event further down from here there is

    for ( i = 0; i < op->u.get_para.freq_num; i++ )
        data[i] = pmpt->perf.states[i].core_frequency * 1000;

i.e. an access to the array solely based on hypercall input.

Both this and ...

> @@ -461,9 +461,10 @@ int do_pm_op(struct xen_sysctl_pm_op *op)
>      switch ( op->cmd & PM_PARA_CATEGORY_MASK )
>      {
>      case CPUFREQ_PARA:
> -        if ( !(xen_processor_pmbits & XEN_PROCESSOR_PM_PX) )
> +        if ( !(xen_processor_pmbits & (XEN_PROCESSOR_PM_PX |
> +                                       XEN_PROCESSOR_PM_CPPC)) )
>              return -ENODEV;
> -        if ( !pmpt || !(pmpt->init & XEN_PX_INIT) )
> +        if ( !pmpt || !(pmpt->init & (XEN_PX_INIT | XEN_CPPC_INIT)) )
>              return -EINVAL;
>          break;
>      }

... this hunk also look as if they would belong (partly?) in maybe patch 03?
Even more so as per the title this is solely a tool stack (xenpm) change.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Apr 30 14:16:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 30 Apr 2025 14:16:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.973616.1361695 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uA8EH-0003zU-DT; Wed, 30 Apr 2025 14:16:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 973616.1361695; Wed, 30 Apr 2025 14:16:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uA8EH-0003zN-Ad; Wed, 30 Apr 2025 14:16:05 +0000
Received: by outflank-mailman (input) for mailman id 973616;
 Wed, 30 Apr 2025 14:16: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=BSD2=XQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uA8EF-0003zH-LN
 for xen-devel@lists.xenproject.org; Wed, 30 Apr 2025 14:16:03 +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 a4c56165-25cd-11f0-9ffb-bf95429c2676;
 Wed, 30 Apr 2025 16:16:01 +0200 (CEST)
Received: by mail-ed1-x535.google.com with SMTP id
 4fb4d7f45d1cf-5f4d28d9fd8so9238727a12.3
 for <xen-devel@lists.xenproject.org>; Wed, 30 Apr 2025 07:16:01 -0700 (PDT)
Received: from [10.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-5f7035464f1sm8738257a12.62.2025.04.30.07.15.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 30 Apr 2025 07:16: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: a4c56165-25cd-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1746022561; x=1746627361; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=+9BRMKSY9c/7zbzbkB40d8yjlwDDdMMZTClJe2wodQI=;
        b=STvw3+fx97tth4WdmbeTIXItLCszLyICqBjxTHMbtyMb77203dR3nC2VDad9f9s5GK
         Q//RH7QZBw1vZO5iWi0jduvkxRyWLoJak14cw59JVwvXPFHcdISoLXKNlXnuvMUJhg+W
         nZWI/cuXSotBbi0alpKJr6VAOBuRzSVIsOJ86oNF4T2FgkuH5lty47plPylTs6mL7gO+
         VCLwnt8Su+YQghuab3/0woc5YPTpClGl566fz4Xy7DUCD8x33S6RmxgLGyJvl0K3KsdC
         vbDbT8T1RKonk+foiHkjinIzKb8FWYrFfKhDkLsZ0gAN6qGQC2sEvDAd49jlb2Vd33fB
         BB5A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1746022561; x=1746627361;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=+9BRMKSY9c/7zbzbkB40d8yjlwDDdMMZTClJe2wodQI=;
        b=aOCjdsT66ZEHSzjUP+NfN/ggI+n2gmKoe+GRxDk7/YwRyS7Ciyd88VZBTLGlVhgb2C
         9Tdfl98qc48E1heQGrEAdE8ZBjl2T5AsmkUDVFwDRpb3J5aRnUYRwXYhLEAnA/m/GhjJ
         aR4lgG3m+MEsztGf6PiHZi517BgKXT5eb0/+o4/6s4elnk2uRX0Is/qzIg6F9iRzAK18
         htMzE9YKlDS/bQl3ppVtjgiV0oTtcBecBqnZlaM6eaXK7tU30ofHLD+bif/QvSlwYY3W
         HgFa58Bgx+dTIvEUg5llqy+w/UFfr6xLx4ZwgQFNEa/U8O8IgVSMlruxW2HN+f75g/2R
         AtXQ==
X-Forwarded-Encrypted: i=1; AJvYcCXe7W8xwJ5K6xBAOewdXXfWZRLBZqPchHxQhlB13NyIlauS5bMkutx1ej7Sq9V8V9oOPZzYHK+1dNk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwWNw64Sn246ya0+qEOrItBb05wL6rqEu15AcukTrmB0AaZjElf
	yz2I9ZvBoZuGc/RWcZF7w89+pWewPI+tiGUGH+4dUmNVI1XXI5eGfksodiRxMA==
X-Gm-Gg: ASbGncvgjNjcNantCkDsucUFUpu103Y+exwiV9UC/dATgVW1omIFm9Fu3GbwoD9gZiu
	m7sOxGy6Pz3qI3Fvg6qiYMn9ZXuD+/PZinFXgab3qSkNdPveJTIqD9Sq5P19ndA8aTuTkoV+Ffs
	6kwNIFOw133XMKjfghKOX25jrvikNIfNfM6oqf5196tYMCCxlgJGxjNx1+c7Uhw1hk9q3iDhzmX
	TX0XH96Zp/mUSiSd1NzgXdWK22OYNBdWjtnYQhVnZIkTwX+kw5Cdd0AL3OBPv7+ePoyHBWjwl5f
	ViylowZn4h+8T2VHd8unfrSQeQYgCZJYxBt5Oowx7KfyjEwaSKMWkQHvDdOw/0XzpW+dRBxGm+A
	2cT/80wNTVUZHljeGPiRgivOgkScdGrf0gsjP
X-Google-Smtp-Source: AGHT+IFw73xQ7w4aVKCar5oYZ6fdYM2vRGUxG6sEgUyC0yEUF124bYzFwAbXeLb0muZcOYVJ/KoXjg==
X-Received: by 2002:a05:6402:3494:b0:5e5:b53:fd49 with SMTP id 4fb4d7f45d1cf-5f8aef17766mr2826691a12.3.1746022560666;
        Wed, 30 Apr 2025 07:16:00 -0700 (PDT)
Message-ID: <3932f6de-ea67-4cc4-95cd-a1b31b342505@suse.com>
Date: Wed, 30 Apr 2025 16:15:59 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 13/15] tools/xenpm: fix unnecessary
 scaling_available_frequencies in CPPC mode
To: Penny Zheng <Penny.Zheng@amd.com>
Cc: ray.huang@amd.com, Anthony PERARD <anthony.perard@vates.tech>,
 Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org
References: <20250414074056.3696888-1-Penny.Zheng@amd.com>
 <20250414074056.3696888-14-Penny.Zheng@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20250414074056.3696888-14-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 14.04.2025 09:40, Penny Zheng wrote:
> In `xenpm get-cpufreq-para <cpuid>`, para scaling_available_frequencies
> only has meaningful value when cpufreq driver in legacy P-states mode.
> 
> So we drop the "has_num" condition check, and mirror the ->gov_num check for
> both ->freq_num and ->cpu_num in xc_get_cpufreq_para().
> In get_cpufreq_para(), add "freq_num" check to avoid copying data to
> op->u.get_para.scaling_available_frequencies in CPPC mode.
> 
> Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>

The description doesn't clarify where the bug is that's being fixed (from
the word "fix" in the subject). If there was one, surely there would also
want to be a Fixes: tag.

> ---
>  tools/libs/ctrl/xc_pm.c   | 45 +++++++++++++++++++++------------------
>  xen/drivers/acpi/pmstat.c | 11 ++++++----
>  2 files changed, 31 insertions(+), 25 deletions(-)

xenpm is entirely untouched, unlike suggested by the subject prefix.

> --- a/tools/libs/ctrl/xc_pm.c
> +++ b/tools/libs/ctrl/xc_pm.c
> @@ -212,34 +212,39 @@ int xc_get_cpufreq_para(xc_interface *xch, int cpuid,
>      DECLARE_NAMED_HYPERCALL_BOUNCE(scaling_available_governors,
>  			 user_para->scaling_available_governors,
>  			 user_para->gov_num * CPUFREQ_NAME_LEN * sizeof(char), XC_HYPERCALL_BUFFER_BOUNCE_BOTH);
> -    bool has_num = user_para->cpu_num && user_para->freq_num;
>  
> -    if ( has_num )
> +    if ( (user_para->cpu_num && !user_para->affected_cpus) ||
> +         (user_para->freq_num && !user_para->scaling_available_frequencies) ||
> +         (user_para->gov_num && !user_para->scaling_available_governors) )
> +    {
> +        errno = EINVAL;
> +        return -1;
> +    }
> +    if ( user_para->cpu_num )
>      {
> -        if ( (!user_para->affected_cpus)                    ||
> -             (!user_para->scaling_available_frequencies)    ||
> -             (user_para->gov_num && !user_para->scaling_available_governors) )
> -        {
> -            errno = EINVAL;
> -            return -1;
> -        }
>          ret = xc_hypercall_bounce_pre(xch, affected_cpus);
>          if ( ret )
>              return ret;
> +    }
> +    if ( user_para->freq_num )
> +    {
>          ret = xc_hypercall_bounce_pre(xch, scaling_available_frequencies);
>          if ( ret )
>              goto unlock_2;
> -        if ( user_para->gov_num )
> -            ret = xc_hypercall_bounce_pre(xch, scaling_available_governors);
> -        if ( ret )
> -            goto unlock_3;
> +    }
> +    if ( user_para->gov_num )
> +        ret = xc_hypercall_bounce_pre(xch, scaling_available_governors);
> +    if ( ret )
> +        goto unlock_3;

Yes, ret is initialized to 0, so functionally this is okay. But can we please
have all three pieces be as similar as possible, to make apparent that they're
_expected_ to be similar?

> --- a/xen/drivers/acpi/pmstat.c
> +++ b/xen/drivers/acpi/pmstat.c
> @@ -228,10 +228,13 @@ static int get_cpufreq_para(struct xen_sysctl_pm_op *op)
>      ret = copy_to_guest(op->u.get_para.affected_cpus,
>                          data, op->u.get_para.cpu_num);
>  
> -    for ( i = 0; i < op->u.get_para.freq_num; i++ )
> -        data[i] = pmpt->perf.states[i].core_frequency * 1000;
> -    ret += copy_to_guest(op->u.get_para.scaling_available_frequencies,
> -                         data, op->u.get_para.freq_num);
> +    if ( op->u.get_para.freq_num )
> +    {
> +        for ( i = 0; i < op->u.get_para.freq_num; i++ )
> +            data[i] = pmpt->perf.states[i].core_frequency * 1000;
> +        ret += copy_to_guest(op->u.get_para.scaling_available_frequencies,
> +                             data, op->u.get_para.freq_num);
> +    }

What's the effect of this change? Without it, the loop will simply have zero
iterations, and zero items will be copied to the guest. (As with the previous
patch, this would better be a tools-only one anyway.)

Else the question would be why the same isn't done for cpu_num, which is
becoming optional now, too (according to the libxc change).

Jan


From xen-devel-bounces@lists.xenproject.org Wed Apr 30 14:30:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 30 Apr 2025 14:30:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.973628.1361705 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uA8Rs-0006mT-HU; Wed, 30 Apr 2025 14:30:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 973628.1361705; Wed, 30 Apr 2025 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 1uA8Rs-0006mM-Dt; Wed, 30 Apr 2025 14:30:08 +0000
Received: by outflank-mailman (input) for mailman id 973628;
 Wed, 30 Apr 2025 14:30: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=Kwm3=XQ=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1uA8Rr-0006go-AV
 for xen-devel@lists.xenproject.org; Wed, 30 Apr 2025 14:30:07 +0000
Received: from NAM10-BN7-obe.outbound.protection.outlook.com
 (mail-bn7nam10on20618.outbound.protection.outlook.com
 [2a01:111:f403:2009::618])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9ac71698-25cf-11f0-9ffb-bf95429c2676;
 Wed, 30 Apr 2025 16:30:04 +0200 (CEST)
Received: from DS7PR03CA0275.namprd03.prod.outlook.com (2603:10b6:5:3ad::10)
 by LV8PR12MB9229.namprd12.prod.outlook.com (2603:10b6:408:191::14) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.33; Wed, 30 Apr
 2025 14:29:58 +0000
Received: from CY4PEPF0000EDD3.namprd03.prod.outlook.com
 (2603:10b6:5:3ad:cafe::4f) by DS7PR03CA0275.outlook.office365.com
 (2603:10b6:5:3ad::10) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8655.36 via Frontend Transport; Wed,
 30 Apr 2025 14:29:58 +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.8699.20 via Frontend Transport; Wed, 30 Apr 2025 14:29:58 +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, 30 Apr
 2025 09:29:57 -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; Wed, 30 Apr
 2025 09:29:57 -0500
Received: from [172.25.248.240] (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, 30 Apr 2025 09:29:56 -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: 9ac71698-25cf-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=B8OiC/hs5OLtxXL5q0yFrDwVn+gB+PXb3TekhAimNRHyK5xfyVP3999yzEmFRAnKFrttKrnwcCNq9zQakvSCLBFJf2Y5C/JeduL3zJFUQqVfJDSANL3/6Xsmt9GMLowF7JfwjNQ5bmL3f/TRrR+eiSOwzn1g3d6SpJ6y6FQEWkkxa2RHo2mgSEwrLihnmCuw6tB7IguDsbzq0tNNfCEqJY6syiaQnQ1Etgp4Vw5ALdbG506ab3b5Bzg+C8FafZzGyStOU9lgsuqZs+uRwkuyUYdHe4L3bJUeG72UECZf4GWcpLP/2E+aqzhGQqycEhKGZypl/nlyNubvsQyDa/x6/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=nj4RH+eKlAWDYAxghd5E9mS1Ai32Wi5A5IgSdoR0AMg=;
 b=hUZZF2azFXkCTbqbCS9v59sisWqrmIorXm7OlBoTgSn+SsgAR0gC7HyKYtKCh02RgmQ0LtjJWmX8MQGLmdbUhivBAvqiD7eJ/KYd0FQAdQeEaCUeGgM7PyHauIYmg65WTIKfP40165nYlJnVKDk419SUd+Xe9CBZfxxmLV1MDz7vEx6wLn9dic5I2HFKy8HB0venfU0QlDVINMFEGJelgxI/6C14Efee3B1gmBt59ABYv6gEogu+Q8A2IYFXAI8lzHTpPgVo6FnNOFBzxwIuPu5K/1cHPf9bIEDLgi9dg4h9CP2WCKX1TAYEvDSljN9pO4sjzaT6s7n+FG3VxpK0gQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=invisiblethingslab.com
 smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100)
 action=none header.from=amd.com; dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=nj4RH+eKlAWDYAxghd5E9mS1Ai32Wi5A5IgSdoR0AMg=;
 b=v0McVZR9FqNJFPClKNG5XotXGjiYcUAw52D+HT65xVYOznBxwT3lSjMUGWTcVeoc6GthnCllnMwMRdE7K2JO08MPbNV++7fkzoFKkH/clj/6Jsxe5MfrCQla5FsUmjVaLJ8U5PoMc4zO3WoL8u21mWn5Sz+nZvyfzpVX7qt6yek=
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: <641aef98-5dde-4618-9fa4-7ccfa2e1989d@amd.com>
Date: Wed, 30 Apr 2025 10:29:58 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: NULL pointer dereference in xenbus_thread->...
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
	<marmarek@invisiblethingslab.com>, Jason Andryuk <jandryuk@gmail.com>
CC: Julien Grall <julien@xen.org>, xen-devel <xen-devel@lists.xenproject.org>,
	Juergen Gross <jgross@suse.com>
References: <ZO0WrR5J0xuwDIxW@mail-itl> <ZTUuRj6e5x5xFVqb@mail-itl>
 <ZgGjf3hpLHXXtb8z@mail-itl> <0f8c0e27-e60d-4e64-bc8a-6cb407c67ab2@xen.org>
 <ZlpTwbmDjNLkCNgH@mail-itl> <aAjgGKRAW95BnTiK@mail-itl>
 <CAKf6xpu7=2O96XK88WL02c-4po3qX-4P4i=2JbD2=o2JcM+_EQ@mail.gmail.com>
 <aBIBy5eQPypM_UbJ@mail-itl>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <aBIBy5eQPypM_UbJ@mail-itl>
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: CY4PEPF0000EDD3:EE_|LV8PR12MB9229:EE_
X-MS-Office365-Filtering-Correlation-Id: e7429879-f022-430f-9ee7-08dd87f37be5
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?MWVRT09zNEdwWGRoS3Jvekw2UmdSQXdRZVpsWFZUYVFkanc3aVVUS0hDVHla?=
 =?utf-8?B?T3dnMVVxTGhWajNOTjR4Qjd6SUtuUUVLbGx1dklNa2pFQ1NGMDhPM1NITWRT?=
 =?utf-8?B?ZkFtUVZ3ekFBOGZWVXFSM21nQnZ6eGtGb2ZiWDJVazlmWWJzSFcrOXZ6SWxE?=
 =?utf-8?B?NWFFV3drQ3lVZlNEN0R4MzZCTThCSWx0VWpvaTM2enc4S2dCSkdXSHlKSmp0?=
 =?utf-8?B?T1dJdzZ3UlBHV2hDNXNvT1Z6UEQxUlErL1N3a0psZysyaHovdlQ3Zzg2eUlL?=
 =?utf-8?B?VUFST0xQcVV6bEFrTHUvVWpkb25aRmRmRnlCOFp1cE9qMkxjYXRxWTJkQzk3?=
 =?utf-8?B?V29hQmpveXh4aE9JU29SUWNQZXpUZ1pBS3NzYlVBbFl2bTRSakhmM244Z2hM?=
 =?utf-8?B?aTd5VXpNb05mZitkNk9FVDBzZEdKQlR3cGliTTlsWmxLVkNPQnJMWnlJNXc0?=
 =?utf-8?B?MW5razdNRi9Ob3J1dkpUU0M1WU1FTUMrS050NXZ4aUhMcVd6THdMUURiM051?=
 =?utf-8?B?MDJ3bWFSR0greWI4bFlyTEQwWXRtbHB1WHRmZjcvTTJKREdmWitnbEltYTJL?=
 =?utf-8?B?VnVrOUVXcWlNOWZRSmVsc3lEbUFrQW9JQ3dmTU1hNmdBSURFVGxQNmRjNWpW?=
 =?utf-8?B?QTZiN0doWFNqKzVRV0RpYStIbFd2U1RsdGgwOXE5aGFrMnRuYjdtM2xJSitU?=
 =?utf-8?B?MnlBZHAreG1QYnUyeHhLbEZxemcyNTcrYTllUFIyVWpTSTJwZm9SODBzU3Iw?=
 =?utf-8?B?enBpQU9RZVMwMS9QcGdxN3FuQlpFSHZsc2c1VEp6TnVDVlQ4UnloTXloOGMw?=
 =?utf-8?B?RkI5R1RZd0VGRFNFcUZYM0pBRlJwRFppR0JiL3ppN2dFU3o1d29oeldidGha?=
 =?utf-8?B?NUdDdCsvRW9Nd05hb2dlYnp1QkM5OVpEMEJCWm9BbnlrVzM5SjhMTm1UU2Za?=
 =?utf-8?B?WStUdjNBQmtQeWh3Q3RKdWlZT1JrR3lJWk1Bd0gzeWxoSURYQjdBaFFXdnZa?=
 =?utf-8?B?a3gvR1lFVnJyNHYvZWk2NWp6S2tFbS9xYlZWNFNGamtJb3VVSlFLeXdtNFoy?=
 =?utf-8?B?YXNNNlZnWktGQzNadEdCM2RxR1UzVFV1OUhpcWdNeTlyM3A3TmxhN2QwMDBQ?=
 =?utf-8?B?c0pRNUpidXRMMWVpNkZIQTNVTms1b1FpYW5laUs3ZDRGMWxNMnJsK0ppWTVS?=
 =?utf-8?B?anI1bzZjUUVLVnNaeWdWaDNtZHJZb1U4VEM3Uk1jaHVaWDROdDVmR25EWU9j?=
 =?utf-8?B?L0pIVnpXdm5VWlhqTEJNSWl1UkRXSUs0RlFDQ1FVQmsybDJtZXlldGFJUkRQ?=
 =?utf-8?B?TzBaaFFDNHU3Zm8rV01ZMElPTVc3T2svQlpqdDBydFVITThTcWtUYzdCQnNy?=
 =?utf-8?B?enlwK0JaZElvMjAyKzFEUHFkdDhEKytuTndSU3BJeUZZMzBPZWxRbHZVVDNY?=
 =?utf-8?B?c21xNURBZDI0Mk03UUNreDVmRUxDNmFERjZaeFhoOHZIaTB5SWFXU3p1azBI?=
 =?utf-8?B?Z0JFVnQyWFd5cEVpUTNSay9wM04vUFhhSXdkaldiVUVUL0Y4VmtGZVM2c09a?=
 =?utf-8?B?UUVSMmUvbjRvNER5ZFpVc1RhdGloTWg3ZENxaDd5ejd2dHFDbHByNzI2TW1J?=
 =?utf-8?B?TDJ1S0JWclN3dVVaMWxLM3oyL2xQZUs3OXE3UzJiUEp3UWNWWnRUTU41bVJD?=
 =?utf-8?B?ejhZSDZsYUliSFRGdkxmN1lMSnArZ3BSQzJUVExKSkhaR2FUUHV2MGZYRDRw?=
 =?utf-8?B?R1NySmtCelF5ckdvT0swQmFPQ29xem1GQ1pESmxGMjM1RDBGaGxpUnJxOHBS?=
 =?utf-8?B?U0wvWXNoemdTOVBXZ1hTcWJtaXBPcExRNFdOSHdUZ3hFUW9ia1UzWGE4M2gy?=
 =?utf-8?B?d0Zpb1gyNzBPU1VxNjlPOWFpK1hRME40bHFyb0M4NzhRRFBMdDZqeTNCL3Vx?=
 =?utf-8?B?NWVVL1V2S0lXdkZPMmEvZURYOXRqalE5TmVRRWU2V1JDSnBPNFJ1aWxCellj?=
 =?utf-8?B?UDIxUzRKcGZmRDdxSHlMZ3RtRmlSTHMzUGxhZ2ZRS1g2UWtyRGFyVGRjM21m?=
 =?utf-8?B?WFhYOURkUFJBQkhZVmpPeG8zM2R0eEY1NDBIZz09?=
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: 30 Apr 2025 14:29:58.0470
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: e7429879-f022-430f-9ee7-08dd87f37be5
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: LV8PR12MB9229

On 2025-04-30 06:56, Marek Marczykowski-Górecki wrote:
> On Tue, Apr 29, 2025 at 08:59:45PM -0400, Jason Andryuk wrote:
>> Hi Marek,
>>
>> On Wed, Apr 23, 2025 at 8:42 AM Marek Marczykowski-Górecki
>> <marmarek@invisiblethingslab.com> wrote:

>>> I've got some more report confirming it's still happening on Linux
>>> 6.12.18. Is there anything I can do to help fixing this? Maybe ask users
>>> to enable some extra logging?
>>
>> Have you been able to capture a crash with debug symbols and run it
>> through scripts/decode_stacktrace.sh?
> 
> Not really, as I don't have debug symbols for this kernel. And I can't
> reliably reproduce it myself (for me it happens about once in a
> month...). I can try reproducing debug symbols, theoretically I should
> have all ingredients for it.
> 
>> I'm curious what process_msg+0x18e/0x2f0 is.  process_writes() has a
>> direct call to wake_up(), but process_msg() calling req->cb(req) may
>> be xs_wake_up() which is a thin wrapper over wake_up().
> 
> There is a code dump in the crash message, does it help?

That's a little deeper in the call chain.  If you have a vmlinux or 
bzImage with a matching stacktrace, that would work to look up the 
address in the disassembly.  So if you don't have a matching pair, maybe 
try to catch it the next time.

>> They make me wonder if req has been free()ed and at least partially
>> zero-ed, but it still has wake_up() called.  The call stack here is
>> reminiscent of the one here
>> https://lore.kernel.org/xen-devel/Z_lJTyVipJJEpWg2@mail-itl/ and the
>> unexpected value there is 0.
> 
> That's interesting idea, the one above I've seen only on 6.15-rc1 (and
> no latter rc). But maybe?

I am guessing, so I could be wrong.  NULL pointer and unexpected zero 
value are both 0 at least.  Also Whonix looks like it may use 
init_on_free=1 to zero memory at free time.

Regards,
Jason


From xen-devel-bounces@lists.xenproject.org Wed Apr 30 14:42:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 30 Apr 2025 14:42:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.973644.1361714 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uA8dg-0000J6-LS; Wed, 30 Apr 2025 14:42:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 973644.1361714; Wed, 30 Apr 2025 14:42:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uA8dg-0000Iz-IS; Wed, 30 Apr 2025 14:42:20 +0000
Received: by outflank-mailman (input) for mailman id 973644;
 Wed, 30 Apr 2025 14: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=BSD2=XQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uA8de-0000Ir-Hh
 for xen-devel@lists.xenproject.org; Wed, 30 Apr 2025 14:42:18 +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 50218721-25d1-11f0-9eb4-5ba50f476ded;
 Wed, 30 Apr 2025 16:42:17 +0200 (CEST)
Received: by mail-ej1-x62c.google.com with SMTP id
 a640c23a62f3a-ace98258d4dso720481366b.2
 for <xen-devel@lists.xenproject.org>; Wed, 30 Apr 2025 07:42:17 -0700 (PDT)
Received: from [10.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-ace6e4e7260sm925731666b.49.2025.04.30.07.42.16
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 30 Apr 2025 07:42: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: 50218721-25d1-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1746024137; x=1746628937; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=s82G59Meh2Es8PA9sIlovDL0m2tXB2aU2UzJ7xaUsZQ=;
        b=UJZi8dup3Bqe5MaYQVdbyuB5ZAGtvluB34HjcnAAGBsZMjl/nfNHVhYYfwI8osyKjX
         ufJ15cyFKq+7+lPEKThNQ5Lp05xrmcEMaZAI1Hctxgn3MFwvHC/naqq5AGHT7s+AjeUJ
         ZZHsi1FooI1FuJz1YOew4+RwdcH8rfcYSpS77y8354Qyidf9RKbp9ChdmDlolloiHXQF
         xQlOTXZdVaX4l8XAkgPRb9uGNvl9k51U8JyBHd3TMDHr5Cb/nxOMrkVgP53b2IpLdPhF
         G6iMnWmFLCRPrOC2Jew91yH0pIEFOscDfq3k3qdGrTCBftWD7AD6gHsWeAIIBOcc5sDe
         NrvA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1746024137; x=1746628937;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=s82G59Meh2Es8PA9sIlovDL0m2tXB2aU2UzJ7xaUsZQ=;
        b=M8zmsTvoeVjG2tICpHAg9ooTZzXC+bf7+v+UkJToNK7edO4zbu7QUvlgfSjE3ut/2L
         C3jvOwnG2byCBGnvW26Jwt3v0Fb5EKiLQsrHTaHnHDFDLPyoRlStf+N0SnyqHUgdT4+X
         5cWkjn+PA5UxO8N00wmJWPKI0k5DHUHBNaO5kiCOxG2vZ5XpwCJOCl/Z+E9/f9YamXFu
         uBHyP9jfUivn6TX7ZPtLN/ix6BZkMGb7a5q83UDGEa+yYdET2N1Tl6P5kiY79upVmdQK
         RJiop5dlSoUmuABWhxQbbMnUauyYSRN7NUOH/sPIi/0hAQnsX/f0rYa9q3Hi+5VVpyTf
         E9fA==
X-Forwarded-Encrypted: i=1; AJvYcCXcpFVIZQjDWvdRAo/wpeoSLgIL8vFG6tCEQveLFZTedNZQPJtoLFRGVNgD9buE/5fs+fkvDGBENvg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxUdr7C4QE2wUsSyVHQq2T2vxuJdx+IeC2ds5B4mbBMLgayYhlD
	OJoAQ4KFXrHuWOn3Q42AqxAwzqrEf3qs8cwDHUZMwaTjtJPiQlxicGkJpQQLcA==
X-Gm-Gg: ASbGncsW5SW7O+7jijPOFR8b26D8MejHw6GvrZ1Z0GspF56ez1Wf2JmnYxeKpZgmEcR
	66VwSYyXE+bT+XaYhbsTgYrQtNW8B9dsLZDr9/8NE7IVUuXwq/LOrx68CJX8u2HHwb6XD2kc0Tt
	aUHo2SeNN9Bcbq4Dl58K0ZWcbAK3yirj6WV6i7qRuqgmFIBWPkw3MYU4u2RdwNYGsbWg4fB7RDh
	reXkM0G8MTQainKGXfP4LPIovDeXaApXWcXpeIclBsZbtDNJkqhQmG6swHrtod2ntm5e2tZyWoU
	oc60uDG/Q2E/LVMbyf5j1+0IHbCbM9cTlojxoi33gSB3Xs4k3yUb0IXOLMI2ZYW+kBeMw20j4hg
	6426Chn3g0uTNYmRKBZc3SkONxA==
X-Google-Smtp-Source: AGHT+IHpQgVDIp0mFKTcOwSDFUhto1V27Ewb/VL5y74G/viYEauQPKYZBD1AboerHZPJSa1HtHH6Uw==
X-Received: by 2002:a17:907:97cd:b0:ac1:f003:be08 with SMTP id a640c23a62f3a-acedc56c265mr363203566b.12.1746024136734;
        Wed, 30 Apr 2025 07:42:16 -0700 (PDT)
Message-ID: <0bc47af9-ea09-40ba-8a81-933a10b58435@suse.com>
Date: Wed, 30 Apr 2025 16:42:15 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 14/15] tools/xenpm: remove px_cap dependency check for
 average frequency
To: Penny Zheng <Penny.Zheng@amd.com>
Cc: ray.huang@amd.com, Anthony PERARD <anthony.perard@vates.tech>,
 xen-devel@lists.xenproject.org
References: <20250414074056.3696888-1-Penny.Zheng@amd.com>
 <20250414074056.3696888-15-Penny.Zheng@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20250414074056.3696888-15-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 14.04.2025 09:40, Penny Zheng wrote:
> In `xenpm start` command, the monitor of average frequency shall
> not depend on the existence of legacy P-states, so removing "px_cap"
> dependancy check.

Well, yes, I agree there. But can you explain to me what the file scope
"avgfreq" is good for? Shouldn't we go farther and tidy things more
thoroughly? Much like show_cpufreq_by_cpuid(), we could call
get_avgfreq_by_cpuid() right before printing. (It escapes me altogether
why start_gather_func() would pre-fill the array. Unlike cxstat_start[]
and pxstat_start[] that's not incrementally or differentially used data.)

Doing that would make yet more obvious that the px_cap part of the
condition was bogus presumably from the very start. (I'm further inclined
to say that this change should also have a Fixes: tag.)

Jan


From xen-devel-bounces@lists.xenproject.org Wed Apr 30 15:02:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 30 Apr 2025 15:02:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.973656.1361724 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uA8wU-0003UM-RS; Wed, 30 Apr 2025 15:01:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 973656.1361724; Wed, 30 Apr 2025 15:01:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uA8wU-0003UF-Ov; Wed, 30 Apr 2025 15:01:46 +0000
Received: by outflank-mailman (input) for mailman id 973656;
 Wed, 30 Apr 2025 15:01:45 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=BSD2=XQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uA8wT-0003U4-8I
 for xen-devel@lists.xenproject.org; Wed, 30 Apr 2025 15:01:45 +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 062efddd-25d4-11f0-9ffb-bf95429c2676;
 Wed, 30 Apr 2025 17:01:41 +0200 (CEST)
Received: by mail-ed1-x536.google.com with SMTP id
 4fb4d7f45d1cf-5e5e22e6ed2so11921725a12.3
 for <xen-devel@lists.xenproject.org>; Wed, 30 Apr 2025 08:01:41 -0700 (PDT)
Received: from [10.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-ace6e4f8814sm951503066b.69.2025.04.30.08.01.37
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 30 Apr 2025 08:01:38 -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: 062efddd-25d4-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1746025301; x=1746630101; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=PtCad3HGP91hFCtMuVfO0UGJp2muK1CxZ/JyVbl3QwE=;
        b=Qrf+Kgefeb4kZ/sxJzGrMGICMy2yj2aNCAdcyMVq2/UxhldNSQHStBtqc42BnQhgOG
         yPuwE36SVbQcUGJuqAa7Ps+IsU5iJMNqYb8XCNMss9zM+bBESqxnmXA7Z/gD7LTjsCNQ
         W1Q1f5zD2Mg5UNSGzCa7xiPu7QMyKy0n7MA9o7EnVw7hvcgVCu9uzn/7XNhBy3Fk5YEn
         VmgJ9/U7EuKHdA7y16vKhb33Uze5Wb8szZrva0CYNJUR71U5Id4OBTx+CbPFU6dNX2fd
         noLQqpVNa6WEDx/QOiV6OJHu4RwVfzH9Gz68xytf6x+Zs9neRbyE8Xhc/pjIVD/dunZl
         w8uQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1746025301; x=1746630101;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=PtCad3HGP91hFCtMuVfO0UGJp2muK1CxZ/JyVbl3QwE=;
        b=Mtl2pYIm39/HgaVCja02rooK5iEUQ7P9gWmzl8hawJfe+c+tGXocaG/emFJEeX/wHn
         K5iRbVN+XkWE7Us6d7EJYSRlCl2eitlPkHJztmySQWkFTKhzlJLTO9AycoJ5q6EDqEnJ
         skT0qt/1FvLCyiZsUOmlXxYz5LFQzB9h3gXExRPdewt8CSpx/7eX9kQfSFnQxI7bxvBM
         QhPWbJFxX/Xdwu+McemmVw3gr79WuV32rEcUNKVH8c+PEWFQYgIL05T459BpWuvBGmOn
         88gR56RrVRZwNY4U8+Z3JgIlP20wgLQDfta0zGFSy2KCItSglFxtDBLibQEtEMHKMto5
         ZK6A==
X-Forwarded-Encrypted: i=1; AJvYcCUXrGDZi3UgTSq7V4nWgzi/H7pjF6CUsbvwtBFNZPj62w4Jrz4nevwr+MHMTnQysjLUJqzADgLaHLI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzZGMps8D8h+b9OZCx6XKe2KI+bQWxBOJw2rz6KnbyqxcRj+u5Q
	es3rElynyEbcvBH+z9DjOGsWTJ+XxcTvfN1XCHRD8K1B6EPm53y0mehrUX1lKw==
X-Gm-Gg: ASbGncuyW/1WpkzWrZdBbcrPzldHPbARU2ys84dJPyZHXoACOMEof5tSumTDXZip2om
	7xjzSg4EPjyTJBE/dhS6bfmDxsLs3WKUUTxXag04bUq7m3pKvf0ldiojxFa5Pw0qcpce3V/Juxm
	YH+ox3Kf7pGoSn+I0FD7e0bJGr9+uxF0tmvq+ha9H6tpA0S0I2k6jpSdX3a/mq6tp/lfudjcbig
	8gsjJc3290HDkptympH9bqVmCd4tqSwGzyAp6MtZmeezhhcSmW8ln6sup0khWlZrWTLf/TWNUu/
	3jlx6WJn1fsXTBA0zgF/rMUGDfFdHK5NrxgHNdjDva3PF61XYVKNIW+zw90TZK0tkTCDkiz32Y5
	0WPLX9vI8nHVFhq+pfiHOYmdsfg==
X-Google-Smtp-Source: AGHT+IFT2WYfsLVIC0xCVTZj8m6NPDx964UCiSLM1hcile9pgXPvpdbhZXNXDCEdboqMNbv4jLpn0A==
X-Received: by 2002:a17:907:7b8e:b0:ac1:ea29:4e63 with SMTP id a640c23a62f3a-acedc627312mr359204466b.26.1746025298593;
        Wed, 30 Apr 2025 08:01:38 -0700 (PDT)
Message-ID: <239e1256-a47d-44e1-a335-2199b880f5d7@suse.com>
Date: Wed, 30 Apr 2025 17:01:37 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 15/15] xen/xenpm: Adapt SET/GET_CPUFREQ_CPPC
 xen_sysctl_pm_op for amd-cppc driver
To: Penny Zheng <Penny.Zheng@amd.com>
Cc: ray.huang@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: <20250414074056.3696888-1-Penny.Zheng@amd.com>
 <20250414074056.3696888-16-Penny.Zheng@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20250414074056.3696888-16-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 14.04.2025 09:40, Penny Zheng wrote:
> Introduce helper set_amd_cppc_para and get_amd_cppc_para to
> SET/GET CPPC-related para for amd-cppc/amd-cppc-epp driver.
> 
> Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
> ---
> v1 -> v2:
> - Give the variable des_perf an initializer of 0
> - Use the strncmp()s directly in the if()
> ---
> v3 -> v4
> - refactor comments
> - remove double blank lines
> - replace amd_cppc_in_use flag with XEN_PROCESSOR_PM_CPPC
> ---
>  xen/arch/x86/acpi/cpufreq/amd-cppc.c | 121 +++++++++++++++++++++++++++
>  xen/drivers/acpi/pmstat.c            |  22 ++++-
>  xen/include/acpi/cpufreq/cpufreq.h   |   4 +
>  3 files changed, 143 insertions(+), 4 deletions(-)

Along the lines of the remark on an earlier patch: Where's the "xenpm"
change here, that the subject prefix kind of makes one expect? Doesn't
that want to be "cpufreq:" instead?

> --- a/xen/arch/x86/acpi/cpufreq/amd-cppc.c
> +++ b/xen/arch/x86/acpi/cpufreq/amd-cppc.c
> @@ -540,6 +540,127 @@ static int cf_check amd_cppc_epp_set_policy(struct cpufreq_policy *policy)
>      return 0;
>  }
>  
> +int get_amd_cppc_para(unsigned int cpu,
> +                      struct xen_cppc_para *cppc_para)
> +{
> +    const struct amd_cppc_drv_data *data = per_cpu(amd_cppc_drv_data, cpu);
> +
> +    if ( data == NULL )
> +        return -ENODATA;
> +
> +    cppc_para->features         = 0;

What's the purpose of the field when you store literal 0 into it?

> +    cppc_para->lowest           = data->caps.lowest_perf;
> +    cppc_para->lowest_nonlinear = data->caps.lowest_nonlinear_perf;
> +    cppc_para->nominal          = data->caps.nominal_perf;
> +    cppc_para->highest          = data->caps.highest_perf;
> +    cppc_para->minimum          = data->req.min_perf;
> +    cppc_para->maximum          = data->req.max_perf;
> +    cppc_para->desired          = data->req.des_perf;
> +    cppc_para->energy_perf      = data->req.epp;
> +
> +    return 0;
> +}
> +
> +int set_amd_cppc_para(const struct cpufreq_policy *policy,
> +                      const struct xen_set_cppc_para *set_cppc)
> +{
> +    unsigned int cpu = policy->cpu;
> +    struct amd_cppc_drv_data *data = per_cpu(amd_cppc_drv_data, cpu);
> +    uint8_t max_perf, min_perf, des_perf = 0, epp;
> +
> +    if ( data == NULL )
> +        return -ENOENT;
> +
> +    /* Validate all parameters - Disallow reserved bits. */
> +    if ( set_cppc->minimum > UINT8_MAX || set_cppc->maximum > UINT8_MAX ||
> +         set_cppc->desired > UINT8_MAX || set_cppc->energy_perf > UINT8_MAX )
> +        return -EINVAL;

Where is what the latter half of the comment says?

> +    /* Only allow values if params bit is set. */
> +    if ( (!(set_cppc->set_params & XEN_SYSCTL_CPPC_SET_DESIRED) &&
> +          set_cppc->desired) ||
> +         (!(set_cppc->set_params & XEN_SYSCTL_CPPC_SET_MINIMUM) &&
> +          set_cppc->minimum) ||
> +         (!(set_cppc->set_params & XEN_SYSCTL_CPPC_SET_MAXIMUM) &&
> +          set_cppc->maximum) ||
> +         (!(set_cppc->set_params & XEN_SYSCTL_CPPC_SET_ENERGY_PERF) &&
> +          set_cppc->energy_perf) )
> +        return -EINVAL;
> +
> +    /* Activity window not supported in MSR */
> +    if ( set_cppc->set_params & XEN_SYSCTL_CPPC_SET_ACT_WINDOW )
> +        return -EOPNOTSUPP;
> +
> +    /* Return if there is nothing to do. */
> +    if ( set_cppc->set_params == 0 )
> +        return 0;
> +
> +    epp = per_cpu(epp_init, cpu);
> +    /*
> +     * Apply presets:
> +     * XEN_SYSCTL_CPPC_SET_DESIRED reflects whether desired perf is set, which
> +     * is also the flag to distiguish between passive mode and active mode.
> +     * When it is set, CPPC in passive mode, only
> +     * XEN_SYSCTL_CPPC_SET_PRESET_NONE could be chosen, where min_perf =
> +     * lowest_nonlinear_perf to ensures performance in P-state range.
> +     * when it is not set, CPPC in active mode, three different profile
> +     * XEN_SYSCTL_CPPC_SET_PRESET_POWERSAVE/PERFORMANCE/BALANCE are provided,
> +     * where min_perf = lowest_perf having T-state range of performance.
> +     */

I fear I'm struggling to parse some of this, making it difficult to suggest
possible adjustments (as I can't derive what is meant to be said). Plus where's
the term T-state coming from all of the sudden?

> +    switch ( set_cppc->set_params & XEN_SYSCTL_CPPC_SET_PRESET_MASK )
> +    {
> +    case XEN_SYSCTL_CPPC_SET_PRESET_POWERSAVE:
> +        if ( set_cppc->set_params & XEN_SYSCTL_CPPC_SET_DESIRED )
> +            return -EINVAL;
> +        min_perf = data->caps.lowest_perf;
> +        /* Lower max frequency to nominal */
> +        max_perf = data->caps.nominal_perf;

This combination is still not really in line with ...

> +        epp = CPPC_ENERGY_PERF_MAX_POWERSAVE;
> +        break;
> +
> +    case XEN_SYSCTL_CPPC_SET_PRESET_PERFORMANCE:
> +        if ( set_cppc->set_params & XEN_SYSCTL_CPPC_SET_DESIRED )
> +            return -EINVAL;
> +        /* Increase idle frequency to highest */
> +        min_perf = data->caps.highest_perf;
> +        max_perf = data->caps.highest_perf;

... this. If "performance" means "always highest", why would "powersave" not
mean "always lowest"?

> +        epp = CPPC_ENERGY_PERF_MAX_PERFORMANCE;
> +        break;
> +
> +    case XEN_SYSCTL_CPPC_SET_PRESET_BALANCE:
> +        if ( set_cppc->set_params & XEN_SYSCTL_CPPC_SET_DESIRED )
> +            return -EINVAL;
> +        min_perf = data->caps.lowest_perf;
> +        max_perf = data->caps.highest_perf;
> +        epp = CPPC_ENERGY_PERF_BALANCE;
> +        break;
> +
> +    case XEN_SYSCTL_CPPC_SET_PRESET_NONE:
> +        min_perf = data->caps.lowest_nonlinear_perf;

As before: What's the significance of using the non-linear value here? I
asked to add comments for anything that's potentially unexpected to the
reader, but here there's still none.

> +        max_perf = data->caps.highest_perf;
> +        break;
> +
> +    default:
> +        return -EINVAL;
> +    }
> +
> +    /* Further customize presets if needed */
> +    if ( set_cppc->set_params & XEN_SYSCTL_CPPC_SET_MINIMUM )
> +        min_perf = set_cppc->minimum;
> +
> +    if ( set_cppc->set_params & XEN_SYSCTL_CPPC_SET_MAXIMUM )
> +        max_perf = set_cppc->maximum;
> +
> +    if ( set_cppc->set_params & XEN_SYSCTL_CPPC_SET_ENERGY_PERF )
> +        epp = set_cppc->energy_perf;
> +
> +    if ( set_cppc->set_params & XEN_SYSCTL_CPPC_SET_DESIRED )
> +        des_perf = set_cppc->desired;
> +
> +    amd_cppc_write_request(cpu, min_perf, des_perf, max_perf, epp);
> +    return 0;
> +}

Nit (as before): Blank line please ahead of the main "return" of a function.

> --- a/xen/drivers/acpi/pmstat.c
> +++ b/xen/drivers/acpi/pmstat.c
> @@ -257,7 +257,18 @@ static int get_cpufreq_para(struct xen_sysctl_pm_op *op)
>           !strncmp(op->u.get_para.scaling_driver, XEN_HWP_DRIVER_NAME,
>                    CPUFREQ_NAME_LEN) )
>          ret = get_hwp_para(policy->cpu, &op->u.get_para.u.cppc_para);
> -    else
> +    else if ( !strncmp(op->u.get_para.scaling_driver,
> +                       XEN_AMD_CPPC_DRIVER_NAME,
> +                       CPUFREQ_NAME_LEN) ||
> +              !strncmp(op->u.get_para.scaling_driver,
> +                       XEN_AMD_CPPC_EPP_DRIVER_NAME,
> +                       CPUFREQ_NAME_LEN) )

How about using e.g. strstr(..., XEN_AMD_CPPC_DRIVER_NAME) here? (It's odd
anyway that we need to resort to string comparisons here.)

> +        ret = get_amd_cppc_para(policy->cpu, &op->u.get_para.u.cppc_para);
> +
> +    if ( strncmp(op->u.get_para.scaling_driver, XEN_HWP_DRIVER_NAME,
> +                 CPUFREQ_NAME_LEN) &&
> +         strncmp(op->u.get_para.scaling_driver, XEN_AMD_CPPC_EPP_DRIVER_NAME,
> +                 CPUFREQ_NAME_LEN) )
>      {
>          if ( !(scaling_available_governors =
>                 xzalloc_array(char, gov_num * CPUFREQ_NAME_LEN)) )

Isn't it the non-EPP driver which is governor-independent?

Jan


From xen-devel-bounces@lists.xenproject.org Wed Apr 30 15:05:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 30 Apr 2025 15:05:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.973668.1361735 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uA8zp-0004Ec-AD; Wed, 30 Apr 2025 15:05:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 973668.1361735; Wed, 30 Apr 2025 15:05: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 1uA8zp-0004EV-7F; Wed, 30 Apr 2025 15:05:13 +0000
Received: by outflank-mailman (input) for mailman id 973668;
 Wed, 30 Apr 2025 15: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=BSD2=XQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uA8zo-0004EP-F8
 for xen-devel@lists.xenproject.org; Wed, 30 Apr 2025 15:05:12 +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 8320e7c6-25d4-11f0-9eb4-5ba50f476ded;
 Wed, 30 Apr 2025 17:05:11 +0200 (CEST)
Received: by mail-ej1-x632.google.com with SMTP id
 a640c23a62f3a-ace94273f0dso57633466b.3
 for <xen-devel@lists.xenproject.org>; Wed, 30 Apr 2025 08:05:11 -0700 (PDT)
Received: from [10.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-ace6e59649fsm930887666b.85.2025.04.30.08.05.09
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 30 Apr 2025 08:05: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: 8320e7c6-25d4-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1746025511; x=1746630311; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=jk9twuh30/1pOnimYpUmst5+vGSp+PKfratMRpKXvC8=;
        b=PKfVSqULHEmITTTvIVylZqPWZNXa62WHKggFT1WYB544kEYlvCsFU+8jTPusK6Jczd
         SHeCuzeBU0ZGNpHyZd2sYw3QS8Lh15ALBmsMVJj/atcMMH5X5zHcWHXpfFAgL0IYYSbc
         uK/usD9/PJT+9ptGQebDswE49J/pejOYjrxgZIPgHcP3oyl+YFz+Z42PZFQaAivQ2iPF
         MKTwe5ZeNGyH3lin5KfmnQE7PpHuHZiElARLY1vKYkEqznsXqsZE93BUiiw2WTKUvfSU
         BjuJNcL+ryZmrMtkXDFEHN6G/g/xmueAZhMqoW+BcC+8MJHAR2IV/KGHlOfmeuNwHIO2
         oUxg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1746025511; x=1746630311;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=jk9twuh30/1pOnimYpUmst5+vGSp+PKfratMRpKXvC8=;
        b=G8rrYXQXzAQ0L3VK8aEzubl31d9Mt1txAB0HpbRTRilbgNErEVe8RRwSuQglxGNFWu
         bUwpbsMAM7qZy4jK1ryt12eMKWWP4zTjD0/Aqf1gZYN7lO+X/EvCpEPfYSk+3rUT9wx8
         OeJHEsq6vcUi+gkEa8XG4gYGANL5GkcgAKqbl8Y5RPvyClvB3BZJtJYjVrPzn5lK1Qs9
         MCuZ0qbveIcKCPpeMgeX5SU2nxX0oipkPQpNjyWI0bZWEhR1h1v0PhOcAjscORAM7Fn+
         oXf24IsO285/UrLfMgofS6wLpuDr/aqtgJSD/224kUbxkPJd6hpB0bm+e30tACURP/ED
         ESkA==
X-Forwarded-Encrypted: i=1; AJvYcCUXqOrjzvrLXpJxuQVYAoQmqGUmKDf/Df6N6AXSrarcHamtvCTAW1pt9mnhd8QQuCiajm3Buym3uUQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwT4jbOkLZedsbBvvCGmAPXil6H033sPmOXNcKHN68+zA/7U6fT
	/lala6boLn3anzoQ+QfuWrbIRIis8hRIbeoJuNChwsfLRY4CQNTgJAl5+ohoCQ==
X-Gm-Gg: ASbGncuq64B9SngCYARHOE3Wu7sAL5iLM0hDIihDkZyvPLJuUqjoOPA94BVW2nPlhU2
	bNtHBSrzZ8l36LKEKt8yvan+A4V0R6j5JHA9WBleNt8KyzyvTK7P2cC26WCOI6Os25WrDs2zZfp
	nqtexNb464zMLuk3JHaiGn/brnoX5VIXtZYG9U88t3XBd7HLVKJwposkiw2rtDg7/rLReLQZsCT
	/VrcL4iOpNDp1LzyaIFIDK3TPXKJRbqOIeH20308EKH7YHwxPRKW32UUI5wtHY+cIv1as7vsSlh
	bM7hCl3IUARrgE5JTbF8gMkRXyQTmLmWyhEDTKvSWMke47y/UhJaZWQViP8gYNzdhNxRWBCo6J3
	nx7vnmI8Cm8RhvEAYazdP/0aZwQ==
X-Google-Smtp-Source: AGHT+IGtv0/2SmFkWm6b/w5jWgYa+3optGgfdx771s88Jwa5Jzj2qKyJw52Z0Sg3Bqo1tRFbXyuEVg==
X-Received: by 2002:a17:907:9801:b0:aca:dd0c:cfc8 with SMTP id a640c23a62f3a-acedc56d9b6mr354796266b.10.1746025510525;
        Wed, 30 Apr 2025 08:05:10 -0700 (PDT)
Message-ID: <9d2dbf12-802c-483f-84b0-34bb90362b41@suse.com>
Date: Wed, 30 Apr 2025 17:05:08 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 02/20] xen: introduce CONFIG_SYSCTL
To: Penny Zheng <Penny.Zheng@amd.com>
Cc: ray.huang@amd.com, Stefano Stabellini <stefano.stabellini@amd.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Sergiy Kibrik <Sergiy_Kibrik@epam.com>, xen-devel@lists.xenproject.org
References: <20250421073723.3863060-1-Penny.Zheng@amd.com>
 <20250421073723.3863060-3-Penny.Zheng@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20250421073723.3863060-3-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 21.04.2025 09:37, Penny Zheng wrote:
> From: Stefano Stabellini <stefano.stabellini@amd.com>
> 
> We introduce a new Kconfig CONFIG_SYSCTL, which shall only be disabled
> on some dom0less systems, to reduce Xen footprint.

What about the PV shim on x86? That's also relevant ...

> --- a/xen/common/Kconfig
> +++ b/xen/common/Kconfig
> @@ -581,4 +581,15 @@ config BUDDY_ALLOCATOR_SIZE
>  	  Amount of memory reserved for the buddy allocator to serve Xen heap,
>  	  working alongside the colored one.
>  
> +menu "Supported hypercall interfaces"
> +	visible if EXPERT
> +
> +config SYSCTL
> +	bool "Enable sysctl hypercall"
> +	default y
> +	help
> +	  This option shall only be disabled on some dom0less systems,
> +	  to reduce Xen footprint.

... for the help text here then.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Apr 30 15:17:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 30 Apr 2025 15:17:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.973679.1361745 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uA9BI-000674-BG; Wed, 30 Apr 2025 15:17:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 973679.1361745; Wed, 30 Apr 2025 15: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 1uA9BI-00066x-6j; Wed, 30 Apr 2025 15:17:04 +0000
Received: by outflank-mailman (input) for mailman id 973679;
 Wed, 30 Apr 2025 15: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=BSD2=XQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uA9BG-00066r-PM
 for xen-devel@lists.xenproject.org; Wed, 30 Apr 2025 15:17:02 +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 29c7818e-25d6-11f0-9ffb-bf95429c2676;
 Wed, 30 Apr 2025 17:17:00 +0200 (CEST)
Received: by mail-ej1-x62b.google.com with SMTP id
 a640c23a62f3a-ac25520a289so1182143166b.3
 for <xen-devel@lists.xenproject.org>; Wed, 30 Apr 2025 08:17:00 -0700 (PDT)
Received: from [10.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-ace6e58623fsm931994166b.78.2025.04.30.08.16.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 30 Apr 2025 08:16: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: 29c7818e-25d6-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1746026220; x=1746631020; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=S4jAUdUAzjnrqQFCW197Cj/IsxpypH/rX2sQMuB9+d8=;
        b=a1YNEIYvA8AwKSlhUXxeJTUQHkCwmdZ0VRJyQFDhsPCxTpHviUe1n6vQWO22NG79Vl
         033xqLRiVCJU2aaJCwPliCwv5oorRQK4zqihxja5U6MWAWHBF+NfIyWMpTk2lVECHl1W
         n8gXfbtoNKYAp4G877nUQ8ZNr/YQF9pYM5YpYqtURxCxY7p+3cLjQ2A8QGAzBPsZ7Yvg
         KjHKbKOgdSwrKlM28TOHE9d1tvNqpiiCvQ0GM1SOa1yKmCe1rn3hWg2eV30IkTPO33Ok
         agSy1WeYuB0roB0bMLisl0OL1+gXQN8nfKNFr69NVvVMCv1gNa9cO+WB4cnHL+VhwIXb
         o3IQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1746026220; x=1746631020;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=S4jAUdUAzjnrqQFCW197Cj/IsxpypH/rX2sQMuB9+d8=;
        b=wC2FiGuNZE05lxNdq/2ujdN/ibmtwZu19JmiHhpPZxOhrq4C1WMmxE1JBMULzG0Esd
         nnmp+c/LaGfBoxd+kbEYqVk1ty0yFg5vsO/M2HNX/xqxAOV10s55HiNA26o/RleUj2SC
         6C3GGR5A+B6yW+1taDsYUmguyfmLWSrWsZCG3HP9jWVKwRbVCZYDJC7B+76yjTSpfqaK
         ZJZyOdDb+HewXHTb/IgQq1sXng7s3OncyrkP6xDslz9KHj/V1494onfRzYR5Ulomf3qC
         maTAOch1ahZ2rI2Tn8xEzsarB79Api2gtFqk+HehQ3vEg3a5kk3ET8NAjV5Ee9gu/Nyn
         vNlA==
X-Forwarded-Encrypted: i=1; AJvYcCVj5uyF2U6gpIL2bH1uRMBNx5jJztPWJaS0hTYjoHO/8f6Owe1LrEwws8XEW3mh3/TWEuRsge9DehI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YycFQtB2Q2bpN0q/rPN2tDpvv8CrdwHo6L0A8sGjp0SQjVPEOlx
	Xux2jbx8t3GaICUeRUM6XIK+DzayTUm7p9yr2pggGNtmmML4iiLMgtDc5L2shQ==
X-Gm-Gg: ASbGncu5FxQoU8sPNBjG8LLzw631IaPLoPQTwTlZqUi0G3W0TqrjZ5/HoV+F2yaC6zL
	A3kHlJDxeGEQyDAygoqa1puw13cKog3UBuiZuGgejGUJL2Lx0jEHu82sJuPY5bO3QGpYEVP/WM7
	ho3V8EyBJ7T2/PbR2H1YcxcIX3ImZa6nVLJX0ei3MGsoovsENShyxA0vq9b+E5Hdk0cDAp9MVlH
	jpO2mW8G+W4RPt4B6DTof9dkX/KuZx7YgOLbYho/pMQsTfGlLOnU0i9Bli/Y2PAyLCndkJn2BXU
	2+51HNrCaj/FQF90JofeqP2lMsyL548GJlXklkJpFrFcBKQyJOaYvpkR3vm3n8J8nY3jgZ93VuN
	DsjEAmgPNj/5oNTGdCTPPI8IccA==
X-Google-Smtp-Source: AGHT+IHyhYqg3/ssGzcATKtsVGK7ejEoF7gOjF5eHR0uuoTyeslGe1m7dUIQwgiQPjMvBMSd8Dnwew==
X-Received: by 2002:a17:907:1c13:b0:ace:c2d4:bf85 with SMTP id a640c23a62f3a-acedc6ffb39mr434906666b.43.1746026219859;
        Wed, 30 Apr 2025 08:16:59 -0700 (PDT)
Message-ID: <7e16adfb-21d7-48e1-ab71-b66efa9553df@suse.com>
Date: Wed, 30 Apr 2025 17:16:58 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 01/20] xen/x86: remove "depends on !PV_SHIM_EXCLUSIVE"
To: Penny Zheng <Penny.Zheng@amd.com>
Cc: ray.huang@amd.com, Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20250421073723.3863060-1-Penny.Zheng@amd.com>
 <20250421073723.3863060-2-Penny.Zheng@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20250421073723.3863060-2-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 21.04.2025 09:37, Penny Zheng wrote:
> Remove all "depends on !PV_SHIM_EXCLUSIVE" (also the functionally
> equivalent "if !...") in Kconfig file, since negative dependancy will badly
> affect allyesconfig.
> This commit is based on "x86: provide an inverted Kconfig control for
> shim-exclusive mode"[1]

Recall me asking to avoid wording like "This commit" in commit messages?
Also personally I consider "is based on" ambiguous: It could also mean the
one here needs to go on top of that other one. It's not entirely clear to
me what kind of (relevant) information you're trying to convey with this
sentence. Surely you didn't really need to even look at that patch of mine
to find all the !PV_SHIM_EXCLUSIVE; that's a matter of a simply grep.

> ---
>  xen/arch/x86/Kconfig      | 4 ----
>  xen/arch/x86/hvm/Kconfig  | 1 -
>  xen/drivers/video/Kconfig | 4 ++--
>  3 files changed, 2 insertions(+), 7 deletions(-)

With the changes here, what does this mean for the in-tree shim build, or
any others using xen/arch/x86/configs/pvshim_defconfig as the basis? You
aren't altering that file, so I expect the binary produced will change
significantly (when it shouldn't, unless explicitly stated otherwise in
the description, which may be warranted for SHADOW_PAGING).

Jan


From xen-devel-bounces@lists.xenproject.org Wed Apr 30 15:20:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 30 Apr 2025 15:20:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.973695.1361754 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uA9F2-0007g9-SF; Wed, 30 Apr 2025 15:20:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 973695.1361754; Wed, 30 Apr 2025 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 1uA9F2-0007g2-Pk; Wed, 30 Apr 2025 15:20:56 +0000
Received: by outflank-mailman (input) for mailman id 973695;
 Wed, 30 Apr 2025 15:20: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=BSD2=XQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uA9F1-0007fw-Pf
 for xen-devel@lists.xenproject.org; Wed, 30 Apr 2025 15:20:55 +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 b3299102-25d6-11f0-9ffb-bf95429c2676;
 Wed, 30 Apr 2025 17:20:50 +0200 (CEST)
Received: by mail-ed1-x52f.google.com with SMTP id
 4fb4d7f45d1cf-5f4ca707e31so12396621a12.2
 for <xen-devel@lists.xenproject.org>; Wed, 30 Apr 2025 08:20:50 -0700 (PDT)
Received: from [10.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-5f7035451b3sm8950625a12.50.2025.04.30.08.20.49
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 30 Apr 2025 08:20: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: b3299102-25d6-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1746026450; x=1746631250; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=avPt6BmV/ilnauoyCSGHUreWQgspdNcKUUPQ3OCEaP8=;
        b=YZ2oeFan41fjiVSQIVnhRLB+jSJU8e4FYEGHrrnB+g9pYiH9v5QivZP/gmVyyrRP6j
         AYbjUh4AO/LQqQKLf6eS+XqdWXp0TpoiGUDilhI1tTnqvuTXIBO1LngYq3J0QAwAdSl8
         ekogkx1JREo2nHyIjU3p9sr9dpDTP0DpKfcLv1BvJ2UFLaDcQLPsoCYdxcldb55mWL/h
         JO1UT+6Z7Nl9igmZJSHSLUVvoXVKmLpB47+TYlm7L1qCccL+qzhJmg5lm9r7kZFD8h13
         xXN/x2oLWP3k8Htv3z2E2RcIfKV5xqFGixBsW6jblp7uuVID0JF2bQhBCvp8AMDRkrjT
         cEvA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1746026450; x=1746631250;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=avPt6BmV/ilnauoyCSGHUreWQgspdNcKUUPQ3OCEaP8=;
        b=jRf36Bsq1cqgXe2bI8JEnvn8uEA0IFaDOgwvqsPcHxMFJ5Pj92xLmQZynt+J8j7zZu
         2qOORZM908VpAVqulvJQPuFTxnZ9Apt0QaDGTXdg2pVP3YPtVHvwUN8/xcX/0TbP4Vn1
         6fUBofK1TxImwbPez4YsyANAPdhuFui+XHPCw+UO3Rpk5zyWCZJfZ5EbFKVMZPeUb/6S
         GitofRF/y687xWJB9FQYDlFY5c9ofQjaLbiQO66wxj58vmEZcmWPUka/4aWPxbzfe8Ym
         N9GB4dWSzOw3t/AKuwPYN2lGe6lNlHa1VJfetsAjGaRsEWPUO5HZ8s53uVE901sK+072
         foyQ==
X-Forwarded-Encrypted: i=1; AJvYcCUsai4/iilu+t9HOvjRt1rPi6zmVLLjYtO1t3uov3e/34uDQL06NRwZz++XvE3CWjivjPai8Lu6jag=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwMZQTwRN6WdIStgg9cuH9vEK5baGqhRRel+mLPflZThwltE3/r
	aHvtPJ0bkMZ6GYPFrnef44ljf875RkRUkeq0CXMpNL3IA1wGFRH3sT/2jQUFAQ==
X-Gm-Gg: ASbGncuryczDfELOQM7QP16HbuGjbIoPalXktqsfPdsqN87IVsy4RHcUMktjnUdg0Vt
	+z49/BIsJVCDYDMMlUwxEMSPycu63NWf4cUYbYCe7tXpYOgRHWZ20kEyeFSZKjnmCLjd8xoa+Ag
	CTlF2swJmeIoRrO4W5nCRfCk5GOD1E44uL1tpYfEMvxeJm477QEYoDn8RR2H+J+DNa55TlnHUlh
	RWaZpIZ+SaBFHMHnikdu27vwIUvz0mMq9lldf15o9zZqUQP3o+NZEE/ec0jaotocfkV7KWBY+Je
	V3YYpmop0OgrPFgIxXh3ruJ5fFTlpJtLQb/uI4NqhrNrhE+DlQJEfuRZFrzqYrf6eprviSC30vs
	eH+rF2CbrS/EYklMu8Zq9Rpj0VA==
X-Google-Smtp-Source: AGHT+IEDwTGarbKz/D0jb8j91R3n1B3mRF/YtghdkYxWvalqMCiR9cNsk+xnBGpLK10MEk8LpF9R2A==
X-Received: by 2002:a05:6402:1e92:b0:5dc:74fd:abf1 with SMTP id 4fb4d7f45d1cf-5f8aeffe01fmr2487569a12.15.1746026450344;
        Wed, 30 Apr 2025 08:20:50 -0700 (PDT)
Message-ID: <f4e6a0ed-c869-4ecc-a6bf-7ef445ac2db5@suse.com>
Date: Wed, 30 Apr 2025 17:20:48 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 02/20] xen: introduce CONFIG_SYSCTL
To: Penny Zheng <Penny.Zheng@amd.com>
Cc: ray.huang@amd.com, Stefano Stabellini <stefano.stabellini@amd.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Sergiy Kibrik <Sergiy_Kibrik@epam.com>, xen-devel@lists.xenproject.org
References: <20250421073723.3863060-1-Penny.Zheng@amd.com>
 <20250421073723.3863060-3-Penny.Zheng@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20250421073723.3863060-3-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 21.04.2025 09:37, Penny Zheng wrote:
> --- a/xen/common/Kconfig
> +++ b/xen/common/Kconfig
> @@ -581,4 +581,15 @@ config BUDDY_ALLOCATOR_SIZE
>  	  Amount of memory reserved for the buddy allocator to serve Xen heap,
>  	  working alongside the colored one.
>  
> +menu "Supported hypercall interfaces"
> +	visible if EXPERT
> +
> +config SYSCTL
> +	bool "Enable sysctl hypercall"
> +	default y

Oh, and - just to re-iterate what I said earlier in the context of another patch:
Imo you would better introduce the option without prompt (simply "defbool y"),
and make it user selectable only in the final patch. That'll eliminate the need
for transient "#ifdef CONFIG_SYSCTL", i.e. reduce overall code churn.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Apr 30 15:24:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 30 Apr 2025 15:24:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.973706.1361764 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uA9IP-00006g-AE; Wed, 30 Apr 2025 15:24:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 973706.1361764; Wed, 30 Apr 2025 15:24:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uA9IP-00006Z-7J; Wed, 30 Apr 2025 15:24:25 +0000
Received: by outflank-mailman (input) for mailman id 973706;
 Wed, 30 Apr 2025 15:24: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=BSD2=XQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uA9IN-00006T-J1
 for xen-devel@lists.xenproject.org; Wed, 30 Apr 2025 15:24:23 +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 30bdeaad-25d7-11f0-9ffb-bf95429c2676;
 Wed, 30 Apr 2025 17:24:21 +0200 (CEST)
Received: by mail-ej1-x62d.google.com with SMTP id
 a640c23a62f3a-acb415dd8faso1048394766b.2
 for <xen-devel@lists.xenproject.org>; Wed, 30 Apr 2025 08:24:21 -0700 (PDT)
Received: from [10.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-ace6e41bbf4sm930600166b.36.2025.04.30.08.24.20
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 30 Apr 2025 08:24:20 -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: 30bdeaad-25d7-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1746026661; x=1746631461; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=2ofXC0J8PYk8Sb9HCDI3i5FycK7giNC5O7tgldLDNhc=;
        b=DaAQOzfzEKEKb3L1tnuwDKPnn2GIjVyHuPwyh1/DspHh1S1VjgZsbM9exjLqeLpJ/2
         jiP13JBKin9o48KRDN0AMi+v07Zthy4iFzE12blaqGGKEs6WUUYWHAXZPDmWpiCvJQZa
         qsmTI35oLMseFcxEM6lvvZnhmVsmkQpDqZSqaAvGBAeigfZCaAFfspOtahvShPsLwMQp
         /jxEsQQd6gqZKs6Xj3GAB98+WHCdr4ZJhTO1RS4W4PjdAIu93LuQd91AtSqJpnM6CDMV
         1RZ5pkT3H1uk57DJUG27Lo0tWUeIg0H+5GOcPuRepXaN0Qv4vaNmGViJ71mKVSCUSW4Y
         NweQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1746026661; x=1746631461;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=2ofXC0J8PYk8Sb9HCDI3i5FycK7giNC5O7tgldLDNhc=;
        b=NIwICVnKE66mVmsEpgVAe7zeX2WbqUYTW6ioJZ3vIP565gesY+AGko3L3AdT+bquXD
         PDSPjx6SC9+y/bMbcAcGK5e+oVnBQo64AQlC2u9abTKtMsWyUO2367cM7bLVhdaJS5/M
         f3yh9ob3Dzjo3QtUdaojR/YyEH7KLemrle+HwdFfB1z5mZOlxsnKmiYyGDUEtSWvVN/y
         7Tg1UblU94Tc5Ok3qoJEi9kOcBr41hLbuTzO3VnVTELAgOQr/TwMpeT3vcaWN5pJ/oAl
         p1484+9TBi27R2Qbb9UhizMUrnrPdBnrbL+hJU9clRGuuOZhVaDZOsO16gOkzSiVvPmC
         6/Xw==
X-Forwarded-Encrypted: i=1; AJvYcCWEpWU6Zeo9LuLJ1WNxGKHgwXFz+SP9sovValy/tLB8LuidtbbDq3amOWj0k4u/pS5HtNfxX/5Mcd0=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxg2cV7KmEOLLrhNMgYVcVlhQl1cdPePeOTzhslGW7P0gwp1ecb
	OrbBwOztRtKx7Ws9gDKOFiqb9HWG235o8jLcFjcncTyWvyinP8eJHLDBPHSoWg==
X-Gm-Gg: ASbGncvf1veO+2/3BQCZ4/MLX2KfswO2YYt9ZdNeL+Ta7YVPMaLoR8Pd/gvLPTYxb2K
	TiargU12PIjjhZL3Yro5Ip3ixqUBiyAQc2loQN9e9qS0qruSzcvs35YjDqNqG3kYILe/Cuc6AxQ
	IdOMZtBR604xUqteSB3H2mZHDzmWrF/Al1UHdj/orwECjTU9hyNikJk8yccq8tnOeG9utD9dbUX
	W75r1226aPfM1OIMi4VS6lVw1w4xT/CP+cfwbC1T6DWMszqjmT16PEok9oXiQdZEKoM95cnH7QX
	2y8sSM6ASgLfPP+AePHv7tlSCtcvvefUcF38f/Y4mHsWQ2YIvtK44Rqqm33Ns3ikpvjurRgYXWn
	g02e+g58CNAHTkXrlo57G4+7D5Q==
X-Google-Smtp-Source: AGHT+IHYHzifWVxLPJgMk+GXbMQ6gZhu4IbTz8P/7WB23cTk1UTvrZNtGD0w9XvHNflYqQAimODWoQ==
X-Received: by 2002:a17:906:f5a3:b0:acb:32c5:43ff with SMTP id a640c23a62f3a-acedc04363dmr420506066b.0.1746026661091;
        Wed, 30 Apr 2025 08:24:21 -0700 (PDT)
Message-ID: <8202d9c5-7a7c-472d-becd-1b788e31e081@suse.com>
Date: Wed, 30 Apr 2025 17:24:19 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 09/20] xen/pmstat: consolidate code into pmstat.c
To: Penny Zheng <Penny.Zheng@amd.com>
Cc: ray.huang@amd.com, Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org
References: <20250421073723.3863060-1-Penny.Zheng@amd.com>
 <20250421073723.3863060-10-Penny.Zheng@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20250421073723.3863060-10-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 21.04.2025 09:37, Penny Zheng wrote:
> We move the following functions into drivers/acpi/pmstat.c, as they
> are all designed for performance statistic:
> - cpufreq_residency_update
> - cpufreq_statistic_reset
> - cpufreq_statistic_update
> - cpufreq_statistic_init
> - cpufreq_statistic_exit
> Consequently, variable "cpufreq_statistic_data" and "cpufreq_statistic_lock"
> shall become static.
> We also move out acpi_set_pdc_bits(), as it is the handler for sub-hypercall
> XEN_PM_PDC, and shall stay with the other handlers together in
> drivers/cpufreq/cpufreq.c.
> 
> Various style corrections shall be applied at the same time while moving these
> functions, including:
> - brace for if() and for() shall live at a seperate line
> - add extra space before and after bracket of if() and for()
> - use array notation
> - convert uint32_t into unsigned int
> - convert u32 into uint32_t
> 
> Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>

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

This again looks like it might be independent of earlier patches, and hence
might be able to go in right away. Please may I remind you to clarify such
aspects while submitting?

Jan


From xen-devel-bounces@lists.xenproject.org Wed Apr 30 15:27:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 30 Apr 2025 15:27:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.973717.1361775 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uA9LJ-0000gU-Nt; Wed, 30 Apr 2025 15:27:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 973717.1361775; Wed, 30 Apr 2025 15:27:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uA9LJ-0000gN-LC; Wed, 30 Apr 2025 15:27:25 +0000
Received: by outflank-mailman (input) for mailman id 973717;
 Wed, 30 Apr 2025 15:27: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=wUHs=XQ=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1uA9LI-0000gH-D9
 for xen-devel@lists.xenproject.org; Wed, 30 Apr 2025 15:27:24 +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 9d21029e-25d7-11f0-9eb4-5ba50f476ded;
 Wed, 30 Apr 2025 17:27:23 +0200 (CEST)
Received: by mail-wr1-x435.google.com with SMTP id
 ffacd0b85a97d-39c0e0bc733so6581058f8f.1
 for <xen-devel@lists.xenproject.org>; Wed, 30 Apr 2025 08:27:23 -0700 (PDT)
Received: from localhost.localdomain (host-92-26-98-202.as13285.net.
 [92.26.98.202]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3a073cc4025sm17561145f8f.56.2025.04.30.08.27.22
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 30 Apr 2025 08:27:22 -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: 9d21029e-25d7-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1746026843; x=1746631643; 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=fHFL+gOFF02sOoop/61D2SSO054EKeEYhUEzTdlfQOg=;
        b=Y5m32pp+PDG+SpGtxpbAv7Wd9eGpAUrxo82i78LtaZ8k4PTzfZglclNFjXZ+G7W7o6
         vxXtU9FKH3B36cjqWnPxdTzwtXs8y4VWaxwHNEuCv6f1TjV/LvJTaBiJNfdZdF4T/7S/
         6Eh4QLgVU9GyytiYgfmX+wUbGhXyCOrDvcnPo=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1746026843; x=1746631643;
        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=fHFL+gOFF02sOoop/61D2SSO054EKeEYhUEzTdlfQOg=;
        b=CpTtYCsdOCkWLdoKrCs8q7kwBaT9hNLcoKFBGapAkYlJcA1qmH9faRQPD9bveuCatK
         sSRMZmNaR0Q8i+nq41ScsyWS0wypYnUhcIUJ4v78FMOSCZmBl4ZRtZQYpNQImT77tohq
         ZRMFIHYG+LiQqN77l6ts5TRg+0LxPWN8ZLAb8YZfoUmOup/Nl/ndiHnNbgzQfdGr67Ax
         siOvaPohQy6Vl+6LUJhmdzEe1ikN/5XED15gT0EvbMEvVuiLTul0QTSA8MWWFc9c8PQv
         InX4T2Bk7kQbwDcnWNqNJBAAAVviskXAdrC+WycB+A75CNAvevT/qa8bpbsFlGtlbt+O
         WHZQ==
X-Gm-Message-State: AOJu0YyfQQKMrYf6+IBf1GoIFAgANMgP3VId/xrXnFgmGKl8WS2L+iwp
	BN40oNXd+4eDi58s26IjMXsowiu/Mk/lw3RVCRaUy6N2f4654NbtlRwMamfDX+pjoHGgxOWeqzZ
	u
X-Gm-Gg: ASbGncsupiZhJDAlmJgBfZnliVuor/hGK7Yg8O0mPtCXLwe2OahgggDfs7XUlA4ybxs
	H928TXcgSX9+5GfpZkeBBekhXckdUtrKyvW0kzNUxFIovgGazcNRu7CXXq8K3Zi4QAcyafLYfmN
	/XfKS6UY59WKEWxLo2puNmeCHhjJLwkUnspWRgFsiCfqxrGs7haKLg6ztBoZsdenzH88Q/j0plK
	mOdigUJMdKmxVMbSUnF+zpKUJvrJ8/pUl6krIFM5ndZ/Emfl2DGdTSdIJG/IgY0DjnnzLc2E2b1
	FRLSS/Ve++VidUv2lxT2FVYF9PRe5YMjtHoDGA6o68AUzl+pppdfGEK2gg4mTP4tHOhtjKZioSF
	REG9jTIGFmvYX8Q==
X-Google-Smtp-Source: AGHT+IFt+RqlRPrxq/mFzVLiNr/MsO3yVzKm44lbtYV7aDkbtQRhxUByCBrcUjuMqOeIru3QxPOvHg==
X-Received: by 2002:a05:6000:4202:b0:3a0:80a2:3c5d with SMTP id ffacd0b85a97d-3a08ff3775bmr2619975f8f.19.1746026842686;
        Wed, 30 Apr 2025 08:27:22 -0700 (PDT)
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/intel: Move mcu_opt_ctrl_* into __ro_after_init
Date: Wed, 30 Apr 2025 16:27:20 +0100
Message-Id: <20250430152720.602045-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

They're only modified by set_in_mcu_opt_ctrl() which is an __init function.

No functional change.

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

In principle:
  Fixes: 39a40f3835ef ("x86/spec-ctrl: Clean up MSR_MCU_OPT_CTRL handling")

seeing as __ro_after_init existed at the time, but it was tied up in a
security series and __ro_after_init was very new at the time.
---
 xen/arch/x86/cpu/intel.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/cpu/intel.c b/xen/arch/x86/cpu/intel.c
index 63f65ea5b048..12c3ff65e02f 100644
--- a/xen/arch/x86/cpu/intel.c
+++ b/xen/arch/x86/cpu/intel.c
@@ -21,8 +21,8 @@
  * MSR_MCU_OPT_CTRL is a collection of unrelated functionality, with separate
  * enablement requirements, but which want to be consistent across the system.
  */
-static uint32_t __read_mostly mcu_opt_ctrl_mask;
-static uint32_t __read_mostly mcu_opt_ctrl_val;
+static uint32_t __ro_after_init mcu_opt_ctrl_mask;
+static uint32_t __ro_after_init mcu_opt_ctrl_val;
 
 void update_mcu_opt_ctrl(void)
 {

base-commit: a1ce987411f61dbf5fe64bba0cd3d36d7cc0311f
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Wed Apr 30 15:32:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 30 Apr 2025 15:32:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.973729.1361784 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uA9Px-0002gl-8Q; Wed, 30 Apr 2025 15:32:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 973729.1361784; Wed, 30 Apr 2025 15:32: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 1uA9Px-0002ge-5Y; Wed, 30 Apr 2025 15:32:13 +0000
Received: by outflank-mailman (input) for mailman id 973729;
 Wed, 30 Apr 2025 15:32: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=BSD2=XQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uA9Pw-0002gY-2g
 for xen-devel@lists.xenproject.org; Wed, 30 Apr 2025 15:32:12 +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 48501700-25d8-11f0-9eb4-5ba50f476ded;
 Wed, 30 Apr 2025 17:32:10 +0200 (CEST)
Received: by mail-ed1-x52e.google.com with SMTP id
 4fb4d7f45d1cf-5f4d28d9fd8so9366051a12.3
 for <xen-devel@lists.xenproject.org>; Wed, 30 Apr 2025 08:32:10 -0700 (PDT)
Received: from [10.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-ace6ed6fe65sm947986566b.142.2025.04.30.08.32.09
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 30 Apr 2025 08:32: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: 48501700-25d8-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1746027130; x=1746631930; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=CkUHHEEf73XKyHxLupW24gr+zIFT+2sOflzFWZmPAKM=;
        b=SddaWXzFANqjt2R5tao3J5GPAkzCzquP9fa4VccPDg7Za02BaKzlJyUZvz+qWu+SkZ
         xss3it/+hZeTOuljDOuoCmCpVPQjzdjdF3jJr9KMfI30CAWiQxZj9388xDw57AhVhH1E
         ufrm+zbJESn5QmEhFSoBrJA7BGXkUH7yIfPlVT0HhLKpImOCGjdao1ZfgFcLt59QW7+x
         rCgZgeNE0MkqPUIKHsoNMk9WYUQSMsnzhg179ez+4Z9tNABBlhcETrr74LYKzCYXhze6
         RkX7PmE8KyAP56QCbqSa/pe3EIdJ/DXcnFDWmj6qS8D49BrOyuJKT+bbEttHkLpdc2+y
         NZSQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1746027130; x=1746631930;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=CkUHHEEf73XKyHxLupW24gr+zIFT+2sOflzFWZmPAKM=;
        b=whfJnpOpzFwH5KEUK8sKTm8lH7Mb3uhicdtWS3FNZWbMBWB2tFQ0Ra8nMDkZyNvPej
         6ueDcVP9flHazJbIlSZ5yo92J03BqOXORLN72IV3QHnBvNKSN/JpjDSSXc902rYlNZ2M
         bVwkygc+4XVviAY+dOPePmlT/ZGxxkEwDlNUOvxXNzZpLd3J2tBd6LQg5WEz7PHMrPYE
         hFLN3IVOFYLQGs6Yf6p802CfT9CwSHnl2olIjKkZn/+5Ob3vSL9WyYKLk7FMpLfjHsVa
         WK/vBz1IHjvFDoEaLv57bHVXo+paByvgaEaeKgwqQ+cwO9BitxpwGWSL/kO1ytyGbRSo
         oRfQ==
X-Forwarded-Encrypted: i=1; AJvYcCWFOdnifNICgy0LrUjvSn+77LDusGhzJRoGHI1pnpUpteHwc3T7vXNoZAP7edfckdnXJiID0TX/CM0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyE2J7cf/PnQvgoIykzDzyjRQBFmpVpX/pcW1w0viczokPv8XMC
	TYisUtHl+cdgwaHEMuPT7951KkkUXJwEBQtvwejV8CXFVoXB2s0lj/ZZ9ICWSA==
X-Gm-Gg: ASbGnctzRiDj1bnbvQJ8yKGxioLUZLZduN4sKGvhlvZATsDXLy+ME5L7UnZsRowP1B3
	C0Fk1LlAzXWYzPtgIk3FB8QySKJgl1EXHUJ51Geg/6L6ZOXS4tBaf7c5VrGW+UmoNttuWDdkurK
	4n+M4YT4GnDzhQn1RZtStMqiTH+nGyGF1Jmr7ZT7QKfQgZEYFctE0bdriyYZUQE4tnGHV0E6Fwj
	rgCaYIDBaCjC5r07f8zW9u8QeIN8ED28ZaVH2qCB/U2T1Wa1jvYBAX5eUdSIoIrEzzv6dVWOSkI
	Fcuu38/Csk/PflnpMB3RYtkPHwW9zKHbmsu/F33VhDyECtfcjoxbyrB2yNoRJU2YHxiO9Az5Nmt
	UJ1ZpyiuC+tmFm6hqYF7CoQfpdg==
X-Google-Smtp-Source: AGHT+IHVR93GWWnlBpaaJ8sh+UaEmO43bwyXFZD4sp8jCzjAwUpTO1yv4AT7rBArkrsvR8y9OcTn5A==
X-Received: by 2002:a17:906:4fcd:b0:ace:68ad:b4d8 with SMTP id a640c23a62f3a-acee25c7624mr341669966b.38.1746027130005;
        Wed, 30 Apr 2025 08:32:10 -0700 (PDT)
Message-ID: <1a6f2023-1022-4c22-9a61-4006d94d3c24@suse.com>
Date: Wed, 30 Apr 2025 17:32:08 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 10/20] xen/pmstat: introduce CONFIG_PM_OP
To: Penny Zheng <Penny.Zheng@amd.com>
Cc: ray.huang@amd.com, Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20250421073723.3863060-1-Penny.Zheng@amd.com>
 <20250421073723.3863060-11-Penny.Zheng@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20250421073723.3863060-11-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 21.04.2025 09:37, Penny Zheng wrote:
> We move the following functions into a new file drivers/acpi/pm_op.c, as
> they are all more fitting in performance controling and only called by
> do_pm_op():
>  - get_cpufreq_para()
>  - set_cpufreq_para()
>  - set_cpufreq_gov()
>  - set_cpufreq_cppc()
>  - cpufreq_driver_getavg()
>  - cpufreq_update_turbo()
>  - cpufreq_get_turbo_status()
> We introduce a new Kconfig CONFIG_PM_OP to wrap the new file.
> 
> Also, although the following helpers are only called by do_pm_op(), they have
> dependency on local variable, we wrap them with CONFIG_PM_OP in place:
>  - write_userspace_scaling_setspeed()
>  - write_ondemand_sampling_rate()
>  - write_ondemand_up_threshold()
>  - get_cpufreq_ondemand_para()
>  - cpufreq_driver.update()
>  - get_hwp_para()
> Various style corrections shall be applied at the same time while moving these
> functions, including:
>  - add extra space before and after bracket of if() and switch()
>  - fix indentation
> 
> Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
> ---
> v2 -> v3
> - new commit
> ---
>  xen/arch/x86/acpi/cpufreq/hwp.c              |   6 +
>  xen/arch/x86/acpi/cpufreq/powernow.c         |   4 +
>  xen/common/Kconfig                           |   7 +
>  xen/common/sysctl.c                          |   4 +-
>  xen/drivers/acpi/Makefile                    |   1 +
>  xen/drivers/acpi/pm_op.c                     | 409 +++++++++++++++++++
>  xen/drivers/acpi/pmstat.c                    | 357 ----------------
>  xen/drivers/cpufreq/cpufreq_misc_governors.c |   2 +
>  xen/drivers/cpufreq/cpufreq_ondemand.c       |   2 +
>  xen/drivers/cpufreq/utility.c                |  41 --
>  xen/include/acpi/cpufreq/cpufreq.h           |   3 -
>  11 files changed, 434 insertions(+), 402 deletions(-)
>  create mode 100644 xen/drivers/acpi/pm_op.c

I'm pretty sure I said "pm-op.c" in replies, maybe even moret than once. Now
you still used an underscore instead of the dash that's preferred.

> --- a/xen/common/sysctl.c
> +++ b/xen/common/sysctl.c
> @@ -181,13 +181,15 @@ long do_sysctl(XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl)
>      case XEN_SYSCTL_get_pmstat:
>          ret = do_get_pm_info(&op->u.get_pmstat);
>          break;
> +#endif
>  
> +#ifdef CONFIG_PM_OP
>      case XEN_SYSCTL_pm_op:
>          ret = do_pm_op(&op->u.pm_op);
>          if ( ret == -EAGAIN )
>              copyback = 1;
>          break;
> -#endif
> +#endif /* CONFIG_PM_OP */

Please can you be consistent here with the comment (or not) on the #endif?

> +int do_pm_op(struct xen_sysctl_pm_op *op)
> +{
> +    int ret = 0;
> +    const struct processor_pminfo *pmpt;
> +
> +    switch ( op->cmd )
> +    {
> +    case XEN_SYSCTL_pm_op_set_sched_opt_smt:
> +    {
> +        uint32_t saved_value = sched_smt_power_savings;
> +
> +        if ( op->cpuid != 0 )
> +            return -EINVAL;
> +        sched_smt_power_savings = !!op->u.set_sched_opt_smt;
> +        op->u.set_sched_opt_smt = saved_value;
> +        return 0;
> +    }
> +
> +    case XEN_SYSCTL_pm_op_get_max_cstate:
> +        BUILD_BUG_ON(XEN_SYSCTL_CX_UNLIMITED != UINT_MAX);
> +        if ( op->cpuid == 0 )
> +            op->u.get_max_cstate = acpi_get_cstate_limit();
> +        else if ( op->cpuid == 1 )
> +            op->u.get_max_cstate = acpi_get_csubstate_limit();
> +        else
> +            ret = -EINVAL;
> +        return ret;
> +
> +    case XEN_SYSCTL_pm_op_set_max_cstate:
> +        if ( op->cpuid == 0 )
> +            acpi_set_cstate_limit(op->u.set_max_cstate);
> +        else if ( op->cpuid == 1 )
> +            acpi_set_csubstate_limit(op->u.set_max_cstate);
> +        else
> +            ret = -EINVAL;
> +        return ret;
> +    }
> +
> +    if ( op->cpuid >= nr_cpu_ids || !cpu_online(op->cpuid) )
> +        return -EINVAL;
> +    pmpt = processor_pminfo[op->cpuid];
> +
> +    switch ( op->cmd & PM_PARA_CATEGORY_MASK )
> +    {
> +    case CPUFREQ_PARA:
> +        if ( !(xen_processor_pmbits & XEN_PROCESSOR_PM_PX) )
> +            return -ENODEV;
> +        if ( !pmpt || !(pmpt->perf.init & XEN_PX_INIT) )
> +            return -EINVAL;
> +        break;
> +    }
> +
> +    switch ( op->cmd )
> +    {
> +    case GET_CPUFREQ_PARA:
> +    {
> +        ret = get_cpufreq_para(op);
> +        break;
> +    }
> +
> +    case SET_CPUFREQ_GOV:
> +    {
> +        ret = set_cpufreq_gov(op);
> +        break;
> +    }
> +
> +    case SET_CPUFREQ_PARA:
> +    {
> +        ret = set_cpufreq_para(op);
> +        break;
> +    }
> +
> +    case SET_CPUFREQ_CPPC:
> +        ret = set_cpufreq_cppc(op);
> +        break;
> +
> +    case GET_CPUFREQ_AVGFREQ:
> +    {
> +        op->u.get_avgfreq = cpufreq_driver_getavg(op->cpuid, USR_GETAVG);
> +        break;
> +    }
> +
> +    case XEN_SYSCTL_pm_op_enable_turbo:
> +    {
> +        ret = cpufreq_update_turbo(op->cpuid, CPUFREQ_TURBO_ENABLED);
> +        break;
> +    }
> +
> +    case XEN_SYSCTL_pm_op_disable_turbo:
> +    {
> +        ret = cpufreq_update_turbo(op->cpuid, CPUFREQ_TURBO_DISABLED);
> +        break;
> +    }

Please can you drop all the unnecessary inner figure braces here? They hamper
readability without - imo - providing any gain at all.

With all of the adjustments:
Acked-by: Jan Beulich <jbeulich@suse.com>

Jan


From xen-devel-bounces@lists.xenproject.org Wed Apr 30 15:33:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 30 Apr 2025 15:33:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.973742.1361794 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uA9Qn-0003FX-LW; Wed, 30 Apr 2025 15:33:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 973742.1361794; Wed, 30 Apr 2025 15:33: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 1uA9Qn-0003FQ-If; Wed, 30 Apr 2025 15:33:05 +0000
Received: by outflank-mailman (input) for mailman id 973742;
 Wed, 30 Apr 2025 15:33:04 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=BSD2=XQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uA9Qm-0002zd-Jt
 for xen-devel@lists.xenproject.org; Wed, 30 Apr 2025 15:33:04 +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 6783cad9-25d8-11f0-9ffb-bf95429c2676;
 Wed, 30 Apr 2025 17:33:03 +0200 (CEST)
Received: by mail-ed1-x52b.google.com with SMTP id
 4fb4d7f45d1cf-5f728aeedacso9089183a12.2
 for <xen-devel@lists.xenproject.org>; Wed, 30 Apr 2025 08:33:03 -0700 (PDT)
Received: from [10.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-5f7013ff4e7sm8854503a12.22.2025.04.30.08.33.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 30 Apr 2025 08: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: 6783cad9-25d8-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1746027182; x=1746631982; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=NCTsPDSGYcfXO0Ph3zyQARJhIZesUwt7UeFdOU7TMa8=;
        b=BcN8vHNazPYZjMk0K4Vl+9D9avcTB1V9mWN0/FGVLL3bZiB2WzsxplzZsYnt4PLvvR
         DsCIpP7HSqFc32CBJETosuGe9LSc+Z9GQY95aJhqc0GP5dyAEogedMKsxcxB21OHuh7+
         SY64FW+HpE0NTc+2upUX41wGgTnkS1swgR67KupxiD8vvOsOUC3B2A8cXz5sRAGcruN/
         T5awYA4X5HVYaw5DHhGKayd9/zAB5cyfccRD/RIO5u4cvk+tQAg7vtsO7CuSwuCo+IFr
         b3uk3lDBuud5Iuqmw1Rs41iPmTesRSGVOWy54ZJ2dL1pj1/ANncZgCJA2IJ8CLMxD1zE
         Inqw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1746027182; x=1746631982;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=NCTsPDSGYcfXO0Ph3zyQARJhIZesUwt7UeFdOU7TMa8=;
        b=QLeY4eLzMiK74G8DpyYmHxLTQAZBMLIfLFKYO7X2VfdQMAlb2HHttM+r9DXrxrTPFW
         HBxIrE9QEAMNX7vjArFgBVcuPoQnyX0DpR4d1izxbVU+br5qFXYa2ojggwptMieMYgS/
         KsMRd5uxIW6105w6JFeQKJUsCimVSCtSKbQ8K+pdyJ8/4BevQ0AeWEmrrvF3IbIKmLjK
         1svfEyw1DT39fmcRwhoThXfhNOZTfIBpP7rPqYloL+2wdcOkP6xFOl1Pr2XzpT4CEcxQ
         DbkUOVTYFo0VncJOTzHPJCxKmlZovnTThjYD39Oxd68e+iSpmj414r70eaAjbeAQAUHX
         6iVA==
X-Forwarded-Encrypted: i=1; AJvYcCX8hvcbiYqk1w6GGYEpHO5IU3tGQVp/Bc0e+iJJcBvqVoOm38JYKoHVQ5S9ez105hWvBIXQutjteAQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxVIQ79K9LbkPo+2qVHOFeF/Yy0kKn/SICpGWezXqeDls3AUs/I
	20seFRB3RsfcNtFYTrDmHtnOgSVJyGDmC1FZ1p99byk86dk2clLicGLFUr4fCg==
X-Gm-Gg: ASbGncufLXLa0y7/kVxkvN/W9PGHsNClZwbxPWIkpFkrAkIpv361spx7ySFHQXG8N+X
	EwOhwesWAde2UaXbOfzJ1SDxUqMFgn8fa195H+qcMuP1sTJh6nimqIks28NLaBCdoEPxmvnoor0
	mPzBvZ2mhrdu/P2lbi7P2nsZntv76QPN5phCY7CfGnJwCb2lQFgaV1qKpw5p15nRXSKi2ynjskG
	WgrHRHOX/Psd5tePJgBoVjp5bS0xCwGdVgI/xmV4lLRsYdmG2DQ+Cf7hUWo0FpcJWXH0ATkEwCi
	JYfxFYjM32o+jamsegGmTXdmzKE2+/+Gyi/EzhjgmDaRT2JpcZ/J8ISGg7G/dMIFn2WPsI+4e/o
	xYRugzOFYiTMUtoXE7YO7TCODwA==
X-Google-Smtp-Source: AGHT+IGgIFcPXbVOu9t7FLeJhNsajGLQiBTun22n8N68zo4N+3C9xmevQyrRpEHMGnQtPDeWpfcWPA==
X-Received: by 2002:a05:6402:268b:b0:5f7:f55a:e5e1 with SMTP id 4fb4d7f45d1cf-5f89be21647mr2981591a12.24.1746027182495;
        Wed, 30 Apr 2025 08:33:02 -0700 (PDT)
Message-ID: <2c00e3db-1931-4e73-a40c-907dfdf314f4@suse.com>
Date: Wed, 30 Apr 2025 17:33:01 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/intel: Move mcu_opt_ctrl_* into __ro_after_init
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: <20250430152720.602045-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: <20250430152720.602045-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 30.04.2025 17:27, Andrew Cooper wrote:
> They're only modified by set_in_mcu_opt_ctrl() which is an __init function.
> 
> 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 Wed Apr 30 15:35:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 30 Apr 2025 15:35:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.973754.1361805 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uA9Sf-0003nm-11; Wed, 30 Apr 2025 15:35:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 973754.1361805; Wed, 30 Apr 2025 15:35: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 1uA9Se-0003nf-U2; Wed, 30 Apr 2025 15:35:00 +0000
Received: by outflank-mailman (input) for mailman id 973754;
 Wed, 30 Apr 2025 15:34: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=y9NI=XQ=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1uA9Sc-0003nX-Tk
 for xen-devel@lists.xenproject.org; Wed, 30 Apr 2025 15:34:59 +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 abfd80c6-25d8-11f0-9eb4-5ba50f476ded;
 Wed, 30 Apr 2025 17:34:57 +0200 (CEST)
Received: by mail-ej1-x633.google.com with SMTP id
 a640c23a62f3a-ac3fcf5ab0dso1215082866b.3
 for <xen-devel@lists.xenproject.org>; Wed, 30 Apr 2025 08:34:57 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-69-225.play-internet.pl.
 [109.243.69.225]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-acebeca80a0sm360909766b.90.2025.04.30.08.34.55
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 30 Apr 2025 08:34:56 -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: abfd80c6-25d8-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1746027297; x=1746632097; darn=lists.xenproject.org;
        h=in-reply-to:content-language:references:cc:to:from:subject
         :user-agent:mime-version:date:message-id:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ABavY/KIcAykhwbPpugvOHw/3GEOBiDZ2cLV3FkyCYk=;
        b=j91wmjUN034Q510atgEkDDT3tzY67UiM0DXZNb+qH8Kw7ocy+EGcFoWFbuPIIatJ93
         39kafo+bJnRzvRAHBtBnlkZF2LRC9WXyreKneRAXoW3xsrVuhMVwdohE4rT8nurHzsAF
         tW2gKG2hPI7/5mUdNcdKF4VUPrs2mUFLa0ApzmK1TpDewxZgLsKrfDV0i7M+GQwuhSXW
         BzOBTQ+QGJ47BWOD/o6lQe+VXTWUxppCD/FtRJhln/XNHgk1QItNIh6I8yb48HGqgAIK
         9V+MRxUwEgk1ADlSzgbNMD9lHUkjt4Mo/f7yLAlqBIC1oQiGiI09js2gJk8td19BKX3L
         jdUg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1746027297; x=1746632097;
        h=in-reply-to: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=ABavY/KIcAykhwbPpugvOHw/3GEOBiDZ2cLV3FkyCYk=;
        b=bNwnb3CQaReUOgD7vlSLeAvWM5cTGfwjh43ZMY/8S9c1LQyajZ3AagmVqlqbAxY5FV
         4iQF8vd6MpaYOUR3wIG3foChIy4fBFHgExXxRplMwk/OcN30sWSn2xLRGRlcraiJsfaI
         YtxrrzkjUk2yt4PWiLxdLQR7Uw1xZGdidMrn0hyk6bZVdO9V97c9nkXa2o/IZyIZdyMz
         Is8A1Fv128VuL32dr6CcehLAoo8kr/SP8EcNWU3Mh/qdcYVa4/bC2lTivmTc4MCNdnPU
         iPYnkb/j8KgIYZKw+IbJo8hISa/ug+DqtmJLD6TRS9iBPFqNCrTzH2tXM6hOYFGx++00
         S8NQ==
X-Forwarded-Encrypted: i=1; AJvYcCVTEoyCZe803jpGbPe9XjQ2IMPNA6LBtW9hR0h+IC0vSWLYwmwS0G9Mt/hj2LVEBvD+iV1tjAIqzIE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxRFTb2j9S7dfh06Ub0cXRCtd6Qcm5kMY9bYNFYLAEwDQtyUZXZ
	Q3nK1DWGMIDtZYrzkx2iPf6Q58tB1JMHxaAHtYZkKftRMgzYaMNl
X-Gm-Gg: ASbGncu16xIIdIhXifSPJvSPZuCjPXM4OEn4uMCiGgcRoM1W8WcnNl1JI9m86b60Nc6
	tkxLaPwY/i4Y8hXzbQH73T4our0kIvcpJHJJyQDXJJ6Xd3jgMcSGTy0dWs7ai6Tdeds58lfAhbI
	DRO0VMaC7AGMRs9aZdZtPPjrqfYg6I2kIljhg97iyWjasOmTc0QfRcAhPPlE/UmzTKnovw3/NO/
	E9LJt/7MnSrQjlwQE2DFrREzF7WHu7LxNeyK/aNTBtalrqnNBwhFT3396MZEG9QXo+NXfkJxYCS
	bhzqvO8snlEl8QpZXZDgYkXffLs+mHBJsgNCVax59/R5QRAix5WCgCUcYdSVo944TjvR4eTJR9S
	wNtcsqR5MSttPDt19
X-Google-Smtp-Source: AGHT+IH1PCoadJD5EXYOsZAaxI/TCJj50tqw18u4Tm1wbMAa/VBg3LSGchScDmVOGQpQLDtal5aC/Q==
X-Received: by 2002:a17:906:6a19:b0:ac6:fcdd:5a97 with SMTP id a640c23a62f3a-acedc72f834mr430718466b.48.1746027297001;
        Wed, 30 Apr 2025 08:34:57 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------QJBBg9o5U0y0rBXLrqNR0jkB"
Message-ID: <ee057161-6f24-44f2-a009-fec5885c6f11@gmail.com>
Date: Wed, 30 Apr 2025 17:34:55 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 13/14] xen/riscv: initialize interrupt controller
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1744126720.git.oleksii.kurochko@gmail.com>
 <cb730a1293f14dd7fd58f98f5ecda4e2523b2d90.1744126720.git.oleksii.kurochko@gmail.com>
 <bcffc56a-5518-4bcc-9124-d49a98ae727a@suse.com>
 <4851cd30-73a5-4d97-b506-850d67c285d7@gmail.com>
Content-Language: en-US
In-Reply-To: <4851cd30-73a5-4d97-b506-850d67c285d7@gmail.com>

This is a multi-part message in MIME format.
--------------QJBBg9o5U0y0rBXLrqNR0jkB
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 4/17/25 12:11 PM, Oleksii Kurochko wrote:
>
>
> On 4/15/25 5:59 PM, Jan Beulich wrote:
>> On 08.04.2025 17:57, Oleksii Kurochko wrote:
>>> Call intc_init() to do basic initialization steps for APLIC and IMISC.
>>>
>>> Signed-off-by: Oleksii Kurochko<oleksii.kurochko@gmail.com>
>> Acked-by: Jan Beulich<jbeulich@suse.com>
>> yet ...
>>
>>> --- a/xen/arch/riscv/setup.c
>>> +++ b/xen/arch/riscv/setup.c
>>> @@ -136,6 +136,8 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
>>>   
>>>       intc_preinit();
>>>   
>>> +    intc_init();
>>> +
>>>       printk("All set up\n");
>>>   
>>>       machine_halt();
>> ... this being everything here I wonder if this can't be folded with the
>> patch where the function is introduced.
> Sure, it can be folded. I will do that to reduce patch series.

I doubled checked and, at the moment, when intc_init() is introduced:
void __init intc_init(void)
{
     ASSERT(intc_hw_ops);

     if ( intc_hw_ops->init() )
         panic("Failed to initialize the interrupt controller drivers\n");
}

intc_hw_ops isn't registered as they are registered in the next two patches after
intriduction of intc_hw_ops.

~ Oleksii

--------------QJBBg9o5U0y0rBXLrqNR0jkB
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 4/17/25 12:11 PM, Oleksii Kurochko
      wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:4851cd30-73a5-4d97-b506-850d67c285d7@gmail.com">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <p><br>
      </p>
      <div class="moz-cite-prefix">On 4/15/25 5:59 PM, Jan Beulich
        wrote:<br>
      </div>
      <blockquote type="cite"
        cite="mid:bcffc56a-5518-4bcc-9124-d49a98ae727a@suse.com">
        <pre wrap="" class="moz-quote-pre">On 08.04.2025 17:57, Oleksii Kurochko wrote:
</pre>
        <blockquote type="cite">
          <pre wrap="" class="moz-quote-pre">Call intc_init() to do basic initialization steps for APLIC and IMISC.

Signed-off-by: Oleksii Kurochko <a class="moz-txt-link-rfc2396E"
          href="mailto:oleksii.kurochko@gmail.com"
          moz-do-not-send="true">&lt;oleksii.kurochko@gmail.com&gt;</a>
</pre>
        </blockquote>
        <pre wrap="" class="moz-quote-pre">Acked-by: Jan Beulich <a
        class="moz-txt-link-rfc2396E" href="mailto:jbeulich@suse.com"
        moz-do-not-send="true">&lt;jbeulich@suse.com&gt;</a>
yet ...

</pre>
        <blockquote type="cite">
          <pre wrap="" class="moz-quote-pre">--- a/xen/arch/riscv/setup.c
+++ b/xen/arch/riscv/setup.c
@@ -136,6 +136,8 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
 
     intc_preinit();
 
+    intc_init();
+
     printk("All set up\n");
 
     machine_halt();
</pre>
        </blockquote>
        <pre wrap="" class="moz-quote-pre">... this being everything here I wonder if this can't be folded with the
patch where the function is introduced.</pre>
      </blockquote>
      <pre>Sure, it can be folded. I will do that to reduce patch series.</pre>
    </blockquote>
    <pre>I doubled checked and, at the moment, when intc_init() is introduced:
void __init intc_init(void)
{
    ASSERT(intc_hw_ops);

    if ( intc_hw_ops-&gt;init() )
        panic("Failed to initialize the interrupt controller drivers\n");
}

intc_hw_ops isn't registered as they are registered in the next two patches after
intriduction of intc_hw_ops.

~ Oleksii
</pre>
    <blockquote type="cite"
      cite="mid:4851cd30-73a5-4d97-b506-850d67c285d7@gmail.com"> </blockquote>
  </body>
</html>

--------------QJBBg9o5U0y0rBXLrqNR0jkB--


From xen-devel-bounces@lists.xenproject.org Wed Apr 30 15:35:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 30 Apr 2025 15:35:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.973765.1361814 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uA9TE-0004Hf-8l; Wed, 30 Apr 2025 15:35:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 973765.1361814; Wed, 30 Apr 2025 15:35: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 1uA9TE-0004HY-5z; Wed, 30 Apr 2025 15:35:36 +0000
Received: by outflank-mailman (input) for mailman id 973765;
 Wed, 30 Apr 2025 15:35: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=BSD2=XQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uA9TC-0004CA-L3
 for xen-devel@lists.xenproject.org; Wed, 30 Apr 2025 15:35:34 +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 bf2cd32a-25d8-11f0-9ffb-bf95429c2676;
 Wed, 30 Apr 2025 17:35:30 +0200 (CEST)
Received: by mail-ed1-x52e.google.com with SMTP id
 4fb4d7f45d1cf-5e5e22e6ed2so11990295a12.3
 for <xen-devel@lists.xenproject.org>; Wed, 30 Apr 2025 08:35:30 -0700 (PDT)
Received: from [10.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-ace6edb0becsm930188666b.167.2025.04.30.08.35.28
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 30 Apr 2025 08:35:29 -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: bf2cd32a-25d8-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1746027329; x=1746632129; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=lGt5RB/CuWxG3gjCtbFUNTnvTo8j63pP6rCc1owRjsM=;
        b=ckixHHTq7OxHx04APlzVFoyhIrYQDgJmPprslTHOBtnbvpb45Fyneg1Diw3+Xg289i
         8PWpxpp4CW1g08k7Ht9vci/D+ubJxZgTWdRJf0AtXm1m8vHOZYKTy3nyldhrPnjY6yI+
         vfJnS/RC8pa2HnhcX9CEiEZ91t0wuEFPWaJk6JS+c923z9U3x+/DgYlwBsZpVKMgrgl2
         echINKtKUwnVDOx0+TV/TMSLWxRIN9Vgly+SGqLqJh1IGIqgh3uvwDTrhRYyqkPpxpT3
         vR4kC/QtRGaxnmiNZFT7yaWId/FSiiPZlwS5by418pF2rNRR3YZhMAYKtamPnJNLXmDj
         1mJA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1746027329; x=1746632129;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=lGt5RB/CuWxG3gjCtbFUNTnvTo8j63pP6rCc1owRjsM=;
        b=F17ik/LXInUleuLSz3KbAKZ2UmNLyzI7rF2j4ANWIYPu2nuhMPNstoNU2FBPd090+A
         d6IXMkf5xocp5FdS245Tm0S6ukw0qfST2G/NRl4+5U/tkkE5dWGK8+slYxIJuJNmnvSR
         TXJf65ioND5uvyyRwCKvIAr8fJR7MI02DUd5ELqhrFy7qchxm/QDiplmp8BWomKc/pTs
         cHUU/huB0vdr0xzFfhT7u0Wh2HGdV9aGfQ33pRkycHQCz7aMczzryxXn+arKaybLfAJQ
         PiXWD3cADoLVuI7+fsnPoSZQRuVHCr+pQuUrnZxuuttHG6RNw7IbG/t5n/+s9JMM9Svm
         Ybcg==
X-Gm-Message-State: AOJu0YwkEfylhux8UZTWeCcmPfOt3uHFY0lcxKA1wHLGZjqXRt54aFFL
	s3qBa+qPK0MFFu6DPtDum3IJR0FKHyPmqgPNqH7KHCEGfRmfyB+HTbscJt8v+w==
X-Gm-Gg: ASbGncuH5CntCN7ZA//6v9W074wfpy6XxMLcTu30XD3ogJOd6Y04/2lmFA1pChai/WM
	vDktehIOGCAGRDqZODtuwyvZNxDETaxb8omlxhnyFLnPgYf+SBlZPa/Gb05cTT7UXcWhifBHww1
	ruX9M8/UBPCA6bcCrpiziHfi0dylTsn12vtqgPGjeNvMLH+b0462xeP8Ql1zL8OWYatVevIL2Pf
	dMjIe7DdLemZnSVZZ7UX6dEQnwWYQgjRiyJ7Djt1nFftxeQqlTcYXncVxK+Dca+0zgvZTQZ4o5I
	gll1R7RMDxc/alfc66BogvOf7qSarD87cK1dLaiz0kL96ADPDqNUNeFCm3P4DVJsL58PGCSp8Mf
	rRuSoOHhDYOYN6PgFRRiPXN7ulA==
X-Google-Smtp-Source: AGHT+IFAQA5qed+p9F5KNLRJkfcEF8DBXe8AB05z75IZ+KIniEpjta4LKZo9WU5vwqxYvqJrBtnZ9g==
X-Received: by 2002:a17:907:728f:b0:aca:b45a:7c86 with SMTP id a640c23a62f3a-acedc579956mr359528466b.1.1746027329506;
        Wed, 30 Apr 2025 08:35:29 -0700 (PDT)
Message-ID: <5d57691b-4f77-4c1a-b504-cb6dd8405704@suse.com>
Date: Wed, 30 Apr 2025 17:35:28 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 11/20] xen/sysctl: introduce CONFIG_PM_STATS
To: Penny Zheng <Penny.Zheng@amd.com>
Cc: xen-devel@lists.xenproject.org, ray.huang@amd.com,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>
References: <20250421073723.3863060-1-Penny.Zheng@amd.com>
 <20250421073723.3863060-12-Penny.Zheng@amd.com>
 <alpine.DEB.2.22.394.2504211412370.785180@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.2504211412370.785180@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 21.04.2025 23:12, Stefano Stabellini wrote:
> On Mon, 21 Apr 2025, Penny Zheng wrote:
>> We introduce a new Kconfig CONFIG_PM_STATS for wrapping all operations
>> regarding performance management statistics.
>> The major codes reside in xen/drivers/acpi/pmstat.c, including the
>> pm-statistic-related sysctl op: do_get_pm_info().
>> CONFIG_PM_STATS also shall depend on CONFIG_SYSCTL
>>
>> Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
> 
> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>

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




From xen-devel-bounces@lists.xenproject.org Wed Apr 30 15:39:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 30 Apr 2025 15:39:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.973778.1361825 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uA9X3-0004ti-OD; Wed, 30 Apr 2025 15:39:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 973778.1361825; Wed, 30 Apr 2025 15:39:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uA9X3-0004tb-LZ; Wed, 30 Apr 2025 15:39:33 +0000
Received: by outflank-mailman (input) for mailman id 973778;
 Wed, 30 Apr 2025 15:39:32 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=BSD2=XQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uA9X2-0004tV-Hw
 for xen-devel@lists.xenproject.org; Wed, 30 Apr 2025 15:39:32 +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 4e7e2229-25d9-11f0-9ffb-bf95429c2676;
 Wed, 30 Apr 2025 17:39:30 +0200 (CEST)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-ac6e8cf9132so1475595566b.2
 for <xen-devel@lists.xenproject.org>; Wed, 30 Apr 2025 08:39:30 -0700 (PDT)
Received: from [10.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-ace6ed6aed0sm939586666b.135.2025.04.30.08.39.29
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 30 Apr 2025 08:39:29 -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: 4e7e2229-25d9-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1746027570; x=1746632370; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=tZ0FLs3fbIZrV2Du2vPVcS0e7BbfqxRd3da7bpVYfhw=;
        b=JsOlPoCB7aI5Ap2SO21IyVflqi59xwq+dggJ20p68wFRHZjUAe1zDnEcX7qwz7lS+1
         932OOsrT+nOfAZhMpBxVmrFpDlen3EEdH9ctLbYEkCcUPjHD1swW7nRyCi6ImKwvVJIm
         gnzjQtAVFwen8dj+ERbKgv/Z9I+RI5+/0qiA6EF0OnnOOd9zTH5Rl/XYSOfz7vOGf2DE
         5+orreR6RGo+bzOkYJGyTlveBUeuObMJuqC+8Z2RE/pCAxOTrCRTLoiOJ2nyvyINv2o3
         7dlpH0AhCpDsK7H1YNVM0qwnSrJ4t/O1OVMDwhy3Cl2Ggn1r4tC/CuL8WKBRV03e/QRY
         2bjA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1746027570; x=1746632370;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=tZ0FLs3fbIZrV2Du2vPVcS0e7BbfqxRd3da7bpVYfhw=;
        b=pq/rmAyn5fuBEf0GMa/O2tNkIbqHDmk46QPbDCUg0dMM142sA6lala/NQ7eCLqaHbq
         Q18fqeOKuZCJFJSO/7OngkCgSP4bdPFtkvMETEBQaRtpt/7h7x+TDE0CGKr0jWDzq/vo
         V+H3BjY/QsTY3En0GfJ6UttreIjWevKsiUmmMCBBx2MphZrI/zG84o9Bc60c1qAgxxXe
         s07qAwA1eWFictN1/1+uuf/fXkQ2FlwCU1b8DqQ30UQZnUybRgqdZdDhko1fHhLkKbhR
         +utCfaE4y5I1Lf1HzHS2f6ra5l1DxLz6AT4R6bxgqHPh2einICjc8BIorum9wK9TxOaZ
         i9uQ==
X-Forwarded-Encrypted: i=1; AJvYcCVCKysReORQM3FVvRf8fxBV+rsQRCodx15zsh5pB/d8GrQfYLD2Oel2RJjBNr9DFWHT3TLRGbfRRTU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyOyuvb+MvH9TISvf8v1IqMfVwYSfFJgyftGF8uSeddmTX3cjPi
	oNGIm5382WOmhg9ikK8Ue9GxxuIG7SFPTsjNtZ/64Xv/UQWQjhh9my4bjJdsdA==
X-Gm-Gg: ASbGnctW9PBJejuuZqThgMxjnPY0aZ+0e33ygCG+b/y7EAtBA5XBZ9L6U8V8AOO9oRL
	SQKvbD1BX0qafr9gHLIFC/cfp2W7LH4KfmtBisksHAaTNZ543J6jTbD6haObsssgl31ZeRAgreV
	9nq1p1jIs+6msc+Ia03jXT4SToU/juXdwg4qYFdEoChX4us1xAUcphJqYUQSKhy3+bDcsWeUd6o
	e82NDZyzY91yBM+P7U62ug0B1+7SArDKENMLPJ5KjEA+iFgLXnZvuYW/55LJPH1RbylZhS+EHte
	qAtOOY+t0glG75AhcNTXKVpYYSDcb3zqEMiCaRYeKJQFPnTct0jTFjFaWjONnzXiC7F899ah6KL
	U4lXxm8VNkLMjIgN0lS52xCfxNw==
X-Google-Smtp-Source: AGHT+IHtlhH+lQgTniT5lCXgwPE32Sg8vCNtLBz1cc7O/sfEzfqXpnLvaFOrqOBsQHdBewsHFLYn8w==
X-Received: by 2002:a17:907:c22:b0:aca:a35e:59fe with SMTP id a640c23a62f3a-acedc5944e2mr415156466b.1.1746027569980;
        Wed, 30 Apr 2025 08:39:29 -0700 (PDT)
Message-ID: <7f0b957d-e519-48f0-b15b-68f7880eece7@suse.com>
Date: Wed, 30 Apr 2025 17:39:28 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 13/14] xen/riscv: initialize interrupt controller
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1744126720.git.oleksii.kurochko@gmail.com>
 <cb730a1293f14dd7fd58f98f5ecda4e2523b2d90.1744126720.git.oleksii.kurochko@gmail.com>
 <bcffc56a-5518-4bcc-9124-d49a98ae727a@suse.com>
 <4851cd30-73a5-4d97-b506-850d67c285d7@gmail.com>
 <ee057161-6f24-44f2-a009-fec5885c6f11@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: <ee057161-6f24-44f2-a009-fec5885c6f11@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 30.04.2025 17:34, Oleksii Kurochko wrote:
> 
> On 4/17/25 12:11 PM, Oleksii Kurochko wrote:
>>
>>
>> On 4/15/25 5:59 PM, Jan Beulich wrote:
>>> On 08.04.2025 17:57, Oleksii Kurochko wrote:
>>>> Call intc_init() to do basic initialization steps for APLIC and IMISC.
>>>>
>>>> Signed-off-by: Oleksii Kurochko<oleksii.kurochko@gmail.com>
>>> Acked-by: Jan Beulich<jbeulich@suse.com>
>>> yet ...
>>>
>>>> --- a/xen/arch/riscv/setup.c
>>>> +++ b/xen/arch/riscv/setup.c
>>>> @@ -136,6 +136,8 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
>>>>   
>>>>       intc_preinit();
>>>>   
>>>> +    intc_init();
>>>> +
>>>>       printk("All set up\n");
>>>>   
>>>>       machine_halt();
>>> ... this being everything here I wonder if this can't be folded with the
>>> patch where the function is introduced.
>> Sure, it can be folded. I will do that to reduce patch series.
> 
> I doubled checked and, at the moment, when intc_init() is introduced:
> void __init intc_init(void)
> {
>      ASSERT(intc_hw_ops);
> 
>      if ( intc_hw_ops->init() )
>          panic("Failed to initialize the interrupt controller drivers\n");
> }
> 
> intc_hw_ops isn't registered as they are registered in the next two patches after
> intriduction of intc_hw_ops.

Which then feels wrong anyway; you're then merely leveraging that the function
has no caller, which (as said elsewhere) shouldn't be the case at the very least
for Misra's sake. So I expect some re-ordering to be necessary. Or you may want
to introduce the function empty and add the intc_hw_ops uses as intc_hw_ops is
introduced.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Apr 30 15:44:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 30 Apr 2025 15:44:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.973794.1361834 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uA9bP-0006wO-A3; Wed, 30 Apr 2025 15:44:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 973794.1361834; Wed, 30 Apr 2025 15:44: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 1uA9bP-0006wH-7T; Wed, 30 Apr 2025 15:44:03 +0000
Received: by outflank-mailman (input) for mailman id 973794;
 Wed, 30 Apr 2025 15:44: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=twA/=XQ=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1uA9bO-0006wB-Ba
 for xen-devel@lists.xenproject.org; Wed, 30 Apr 2025 15:44:02 +0000
Received: from mail-ej1-x644.google.com (mail-ej1-x644.google.com
 [2a00:1450:4864:20::644])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ef486a19-25d9-11f0-9ffb-bf95429c2676;
 Wed, 30 Apr 2025 17:44:00 +0200 (CEST)
Received: by mail-ej1-x644.google.com with SMTP id
 a640c23a62f3a-ac25d2b2354so1137340966b.1
 for <xen-devel@lists.xenproject.org>; Wed, 30 Apr 2025 08:44:00 -0700 (PDT)
Received: from ?IPV6:2003:e5:870f:e000:6c64:75fd:2c51:3fef?
 (p200300e5870fe0006c6475fd2c513fef.dip0.t-ipconnect.de.
 [2003:e5:870f:e000:6c64:75fd:2c51:3fef])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-ace86d7fc8fsm778997166b.97.2025.04.30.08.43.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 30 Apr 2025 08:43: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: ef486a19-25d9-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1746027840; x=1746632640; 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=yJCu6C0nYovaowF+R62pGVhluC7KO4nD5YOw5qJLi/4=;
        b=AjeqjoSef1TRnvI4rMXnd8v72OICjVXwQP0OPEEPy8DB6ETf+1ppvNBzLXt8yLuOIK
         m/sTBlKnjcwZ9fGz8aIqOYeB30k6O3pVsiJabtjg/cb4kIsgpqzwXG95akMo8HbicnJM
         n10sJajwMT+BZbfqaHpUXaJZmk61bnRh96feKYMwmBDMJPhcy3QED0kFdzSUv25gq+A3
         4u1BKS6Fu1tAwWmsAZ6y6zdF5gvEylaLWkZnyAV7C7b+PATnkfz9xbeRFmlHCKD/kHCr
         IFmzBB/+UyxK7f3q81CPQRz1JZ9zq/yaUNDCDSWhoeIwZ+/y/z6kIY5ZM0TE/FDnyChT
         I4aA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1746027840; x=1746632640;
        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=yJCu6C0nYovaowF+R62pGVhluC7KO4nD5YOw5qJLi/4=;
        b=ZTsUjGJs2P7GmgfbVq5R3ShQsYXexVrJB0arfc7aUlm03nTkYhM2RK4MdZaBCIzxR4
         MiBzBI/rgdtIzZaeKb9cKZuQg8lLQB0glGo1xRHq4Lxm5VUWkK0O3OqZ7EJlEFIxsAlR
         2qDLtRVIK6Cu6y2cAT7gkzb9flP+1DpbjFa4Msiwu/+smUg4yRs348aHba1A48TPR75B
         LKAG4Uch8bDH356/vKJvAx3WP5ToKSv1L9z94Dcu2KIa6bJNy7iZNR32EWK0t2jQpObY
         5mrmDUhaleL3RgeoUhJS+gKkIRqQ/RgNED4aID81ne7HtOHNvNsr3SwLuYdTvWHAhIFq
         Xo4w==
X-Forwarded-Encrypted: i=1; AJvYcCWBgL9jyfvm+6Iks1YW8nG3jxORektT4S1/22/NLZf/REHtAOrnL2EpuQ22nmS+0IqjpvB2O17AH7c=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzqHmEGuSU+Sh6sXTU7KlWoLaKQUW81dcBr09GJ7oT7umMFR36I
	ScqjwAWAHti1MoD7OKN63aZODz6iRlNcpBgsbdxV+OVP/FRXcebcZeUmFwF7AQE=
X-Gm-Gg: ASbGncuS911ekioy3ZFvxZkSempMzJnlkdDZHFh3MG4A2alQUaLUvSQBMt+NTnI6NE0
	3Xr1TaiNa1qir0Cth6KN6VJnVFyN5//6Vlqrb/bFXaaVqjrP3bCbFEiHG8cARr+N2vlZZB8ePf9
	zjcf2si7Lytmol8lg7vCWsjW4PqtyT1WmEKUgxTp6OD1lfxixx5y2m43gj7oyL+qev/yv1Zc4ME
	aPpinqYe0mPaxEVcejRg0y6Wq6QM+OfF1TJUNWdiLO/MO/xOUJtwldEmzuTJRBg0/wZLuOAh7ft
	Qwotw+sMDS9jwKvVxZuowdiBiClMj29gVpHG/Ugt+PPb2dph6wsKcsngpFRNtmevLnwafNWRE19
	Z5n2nrsrwiQFLmwbwc9krKaCbzuUfCM/41DiRSisqzwiBg8aF0WZiSIq+Is1Z/v1POQ==
X-Google-Smtp-Source: AGHT+IHqnaJ5qYnYML+c76zzPz/gKXfAiZjPZVRMGT4XNLBTH5UPAyF6BdARcJMAvlbyt7LowwHaBA==
X-Received: by 2002:a17:907:97d1:b0:aca:cac7:28e2 with SMTP id a640c23a62f3a-acedc7001a6mr389729966b.40.1746027839689;
        Wed, 30 Apr 2025 08:43:59 -0700 (PDT)
Message-ID: <ea422f7c-64fb-4b19-b953-cb3d0404222a@suse.com>
Date: Wed, 30 Apr 2025 17:43:58 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: NULL pointer dereference in xenbus_thread->...
To: Jason Andryuk <jason.andryuk@amd.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, Jason Andryuk <jandryuk@gmail.com>
Cc: Julien Grall <julien@xen.org>, xen-devel <xen-devel@lists.xenproject.org>
References: <ZO0WrR5J0xuwDIxW@mail-itl> <ZTUuRj6e5x5xFVqb@mail-itl>
 <ZgGjf3hpLHXXtb8z@mail-itl> <0f8c0e27-e60d-4e64-bc8a-6cb407c67ab2@xen.org>
 <ZlpTwbmDjNLkCNgH@mail-itl> <aAjgGKRAW95BnTiK@mail-itl>
 <CAKf6xpu7=2O96XK88WL02c-4po3qX-4P4i=2JbD2=o2JcM+_EQ@mail.gmail.com>
 <aBIBy5eQPypM_UbJ@mail-itl> <641aef98-5dde-4618-9fa4-7ccfa2e1989d@amd.com>
Content-Language: en-US
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
Autocrypt: addr=jgross@suse.com; keydata=
 xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOB
 ycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJve
 dYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJ
 NwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvx
 XP3FAp2pkW0xqG7/377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEB
 AAHNH0p1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT7CwHkEEwECACMFAlOMcK8CGwMH
 CwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRCw3p3WKL8TL8eZB/9G0juS/kDY9LhEXseh
 mE9U+iA1VsLhgDqVbsOtZ/S14LRFHczNd/Lqkn7souCSoyWsBs3/wO+OjPvxf7m+Ef+sMtr0
 G5lCWEWa9wa0IXx5HRPW/ScL+e4AVUbL7rurYMfwCzco+7TfjhMEOkC+va5gzi1KrErgNRHH
 kg3PhlnRY0Udyqx++UYkAsN4TQuEhNN32MvN0Np3WlBJOgKcuXpIElmMM5f1BBzJSKBkW0Jc
 Wy3h2Wy912vHKpPV/Xv7ZwVJ27v7KcuZcErtptDevAljxJtE7aJG6WiBzm+v9EswyWxwMCIO
 RoVBYuiocc51872tRGywc03xaQydB+9R7BHPzsBNBFOMcBYBCADLMfoA44MwGOB9YT1V4KCy
 vAfd7E0BTfaAurbG+Olacciz3yd09QOmejFZC6AnoykydyvTFLAWYcSCdISMr88COmmCbJzn
 sHAogjexXiif6ANUUlHpjxlHCCcELmZUzomNDnEOTxZFeWMTFF9Rf2k2F0Tl4E5kmsNGgtSa
 aMO0rNZoOEiD/7UfPP3dfh8JCQ1VtUUsQtT1sxos8Eb/HmriJhnaTZ7Hp3jtgTVkV0ybpgFg
 w6WMaRkrBh17mV0z2ajjmabB7SJxcouSkR0hcpNl4oM74d2/VqoW4BxxxOD1FcNCObCELfIS
 auZx+XT6s+CE7Qi/c44ibBMR7hyjdzWbABEBAAHCwF8EGAECAAkFAlOMcBYCGwwACgkQsN6d
 1ii/Ey9D+Af/WFr3q+bg/8v5tCknCtn92d5lyYTBNt7xgWzDZX8G6/pngzKyWfedArllp0Pn
 fgIXtMNV+3t8Li1Tg843EXkP7+2+CQ98MB8XvvPLYAfW8nNDV85TyVgWlldNcgdv7nn1Sq8g
 HwB2BHdIAkYce3hEoDQXt/mKlgEGsLpzJcnLKimtPXQQy9TxUaLBe9PInPd+Ohix0XOlY+Uk
 QFEx50Ki3rSDl2Zt2tnkNYKUCvTJq7jvOlaPd6d/W0tZqpyy7KVay+K4aMobDsodB3dvEAs6
 ScCnh03dDAFgIq5nsB11j3KPKdVoPlfucX2c7kGNH+LUMbzqV6beIENfNexkOfxHfw==
In-Reply-To: <641aef98-5dde-4618-9fa4-7ccfa2e1989d@amd.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------DS8JEtToRP9QUbxnK0CLOZFE"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------DS8JEtToRP9QUbxnK0CLOZFE
Content-Type: multipart/mixed; boundary="------------r8ICPxbM70FqkNfSSufVF6Lv";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Jason Andryuk <jason.andryuk@amd.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, Jason Andryuk <jandryuk@gmail.com>
Cc: Julien Grall <julien@xen.org>, xen-devel <xen-devel@lists.xenproject.org>
Message-ID: <ea422f7c-64fb-4b19-b953-cb3d0404222a@suse.com>
Subject: Re: NULL pointer dereference in xenbus_thread->...
References: <ZO0WrR5J0xuwDIxW@mail-itl> <ZTUuRj6e5x5xFVqb@mail-itl>
 <ZgGjf3hpLHXXtb8z@mail-itl> <0f8c0e27-e60d-4e64-bc8a-6cb407c67ab2@xen.org>
 <ZlpTwbmDjNLkCNgH@mail-itl> <aAjgGKRAW95BnTiK@mail-itl>
 <CAKf6xpu7=2O96XK88WL02c-4po3qX-4P4i=2JbD2=o2JcM+_EQ@mail.gmail.com>
 <aBIBy5eQPypM_UbJ@mail-itl> <641aef98-5dde-4618-9fa4-7ccfa2e1989d@amd.com>
In-Reply-To: <641aef98-5dde-4618-9fa4-7ccfa2e1989d@amd.com>

--------------r8ICPxbM70FqkNfSSufVF6Lv
Content-Type: multipart/mixed; boundary="------------00N4XbMn9GqOUPeaKko46K0D"

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

T24gMzAuMDQuMjUgMTY6MjksIEphc29uIEFuZHJ5dWsgd3JvdGU6DQo+IE9uIDIwMjUtMDQt
MzAgMDY6NTYsIE1hcmVrIE1hcmN6eWtvd3NraS1Hw7NyZWNraSB3cm90ZToNCj4+IE9uIFR1
ZSwgQXByIDI5LCAyMDI1IGF0IDA4OjU5OjQ1UE0gLTA0MDAsIEphc29uIEFuZHJ5dWsgd3Jv
dGU6DQo+Pj4gSGkgTWFyZWssDQo+Pj4NCj4+PiBPbiBXZWQsIEFwciAyMywgMjAyNSBhdCA4
OjQy4oCvQU0gTWFyZWsgTWFyY3p5a293c2tpLUfDs3JlY2tpDQo+Pj4gPG1hcm1hcmVrQGlu
dmlzaWJsZXRoaW5nc2xhYi5jb20+IHdyb3RlOg0KPiANCj4+Pj4gSSd2ZSBnb3Qgc29tZSBt
b3JlIHJlcG9ydCBjb25maXJtaW5nIGl0J3Mgc3RpbGwgaGFwcGVuaW5nIG9uIExpbnV4DQo+
Pj4+IDYuMTIuMTguIElzIHRoZXJlIGFueXRoaW5nIEkgY2FuIGRvIHRvIGhlbHAgZml4aW5n
IHRoaXM/IE1heWJlIGFzayB1c2Vycw0KPj4+PiB0byBlbmFibGUgc29tZSBleHRyYSBsb2dn
aW5nPw0KPj4+DQo+Pj4gSGF2ZSB5b3UgYmVlbiBhYmxlIHRvIGNhcHR1cmUgYSBjcmFzaCB3
aXRoIGRlYnVnIHN5bWJvbHMgYW5kIHJ1biBpdA0KPj4+IHRocm91Z2ggc2NyaXB0cy9kZWNv
ZGVfc3RhY2t0cmFjZS5zaD8NCj4+DQo+PiBOb3QgcmVhbGx5LCBhcyBJIGRvbid0IGhhdmUg
ZGVidWcgc3ltYm9scyBmb3IgdGhpcyBrZXJuZWwuIEFuZCBJIGNhbid0DQo+PiByZWxpYWJs
eSByZXByb2R1Y2UgaXQgbXlzZWxmIChmb3IgbWUgaXQgaGFwcGVucyBhYm91dCBvbmNlIGlu
IGENCj4+IG1vbnRoLi4uKS4gSSBjYW4gdHJ5IHJlcHJvZHVjaW5nIGRlYnVnIHN5bWJvbHMs
IHRoZW9yZXRpY2FsbHkgSSBzaG91bGQNCj4+IGhhdmUgYWxsIGluZ3JlZGllbnRzIGZvciBp
dC4NCj4+DQo+Pj4gSSdtIGN1cmlvdXMgd2hhdCBwcm9jZXNzX21zZysweDE4ZS8weDJmMCBp
cy7CoCBwcm9jZXNzX3dyaXRlcygpIGhhcyBhDQo+Pj4gZGlyZWN0IGNhbGwgdG8gd2FrZV91
cCgpLCBidXQgcHJvY2Vzc19tc2coKSBjYWxsaW5nIHJlcS0+Y2IocmVxKSBtYXkNCj4+PiBi
ZSB4c193YWtlX3VwKCkgd2hpY2ggaXMgYSB0aGluIHdyYXBwZXIgb3ZlciB3YWtlX3VwKCku
DQo+Pg0KPj4gVGhlcmUgaXMgYSBjb2RlIGR1bXAgaW4gdGhlIGNyYXNoIG1lc3NhZ2UsIGRv
ZXMgaXQgaGVscD8NCj4gDQo+IFRoYXQncyBhIGxpdHRsZSBkZWVwZXIgaW4gdGhlIGNhbGwg
Y2hhaW4uwqAgSWYgeW91IGhhdmUgYSB2bWxpbnV4IG9yIGJ6SW1hZ2Ugd2l0aCANCj4gYSBt
YXRjaGluZyBzdGFja3RyYWNlLCB0aGF0IHdvdWxkIHdvcmsgdG8gbG9vayB1cCB0aGUgYWRk
cmVzcyBpbiB0aGUgDQo+IGRpc2Fzc2VtYmx5LsKgIFNvIGlmIHlvdSBkb24ndCBoYXZlIGEg
bWF0Y2hpbmcgcGFpciwgbWF5YmUgdHJ5IHRvIGNhdGNoIGl0IHRoZSANCj4gbmV4dCB0aW1l
Lg0KPiANCj4+PiBUaGV5IG1ha2UgbWUgd29uZGVyIGlmIHJlcSBoYXMgYmVlbiBmcmVlKCll
ZCBhbmQgYXQgbGVhc3QgcGFydGlhbGx5DQo+Pj4gemVyby1lZCwgYnV0IGl0IHN0aWxsIGhh
cyB3YWtlX3VwKCkgY2FsbGVkLsKgIFRoZSBjYWxsIHN0YWNrIGhlcmUgaXMNCj4+PiByZW1p
bmlzY2VudCBvZiB0aGUgb25lIGhlcmUNCj4+PiBodHRwczovL2xvcmUua2VybmVsLm9yZy94
ZW4tZGV2ZWwvWl9sSlR5VmlwSkpFcFdnMkBtYWlsLWl0bC8gYW5kIHRoZQ0KPj4+IHVuZXhw
ZWN0ZWQgdmFsdWUgdGhlcmUgaXMgMC4NCj4+DQo+PiBUaGF0J3MgaW50ZXJlc3RpbmcgaWRl
YSwgdGhlIG9uZSBhYm92ZSBJJ3ZlIHNlZW4gb25seSBvbiA2LjE1LXJjMSAoYW5kDQo+PiBu
byBsYXR0ZXIgcmMpLiBCdXQgbWF5YmU/DQo+IA0KPiBJIGFtIGd1ZXNzaW5nLCBzbyBJIGNv
dWxkIGJlIHdyb25nLsKgIE5VTEwgcG9pbnRlciBhbmQgdW5leHBlY3RlZCB6ZXJvIHZhbHVl
IGFyZSANCj4gYm90aCAwIGF0IGxlYXN0LsKgIEFsc28gV2hvbml4IGxvb2tzIGxpa2UgaXQg
bWF5IHVzZSBpbml0X29uX2ZyZWU9MSB0byB6ZXJvIA0KPiBtZW1vcnkgYXQgZnJlZSB0aW1l
Lg0KDQpJIGhhdmUgbG9va2VkIGF0IHRoaXMgaXNzdWUgbXVsdGlwbGUgdGltZXMgbm93Lg0K
DQpKdXN0IHNvbWUgcmVtYXJrcyB3aGF0IElNTyBjb3VsZCBnbyB3cm9uZyAoSSBkaWRuJ3Qg
ZmluZCBhbnkgcHJvb2YgdGhhdA0KdGhpcyByZWFsbHkgaGFwcGVuZWQsIHRob3VnaCksIGlu
IGNhc2Ugc29tZW9uZSB3YW50cyB0byBkb3VibGUgY2hlY2s6DQoNClRoZSBtb3N0IHByb2Jh
Ymx5IGNhbmRpZGF0ZSBmb3Igc29tZXRoaW5nIGdvaW5nIHdyb25nIGlzIGEgdXNlLWFmdGVy
LWZyZWUNCm9mIGEgc3RydWN0IHhiX3JlcV9kYXRhIGVsZW1lbnQgKG5vcm1hbGx5IG5hbWVk
ICJyZXEiIGluIHRoZSByZWxhdGVkIGNvZGUpLg0KDQpTb21lIHdvcmRzIGFib3V0IHRoZSBu
b3QgcmVhbGx5IG9idmlvdXMgbG9ja2luZyBzY2hlbWUgdXNlZCBmb3IgdGhvc2UNCmVsZW1l
bnRzOiBBICJyZXEiIGlzIG93bmVkIGJ5IGEgdGhyZWFkIGFzIGxvbmcgYXMgaXQgaXNuJ3Qg
aW4gYW55IG9mIHRoZQ0KbGlzdHMgaXQgY2FuIGxpdmUgaW4gKHhzX3JlcGx5X2xpc3Qgb3Ig
eGJfd3JpdGVfbGlzdCkuIFB1dHRpbmcgaXQgaW50byBvbmUNCm9mIHRoZSBsaXN0cyBvciBy
ZW1vdmluZyBpdCBhZ2FpbiByZXF1aXJlcyB0byBob2xkIHRoZSB4Yl93cml0ZV9tdXRleC4N
Cg0KQSAicmVxIiBuZWVkcyB0byBiZSBpbiBhIGNlcnRhaW4gc3RhdGUgd2hlbiBlaXRoZXIg
aW4gb25lIG9mIHRoZSBsaXN0cyBvcg0Kd2hlbiBiZWluZyBvd25lZCBieSBhIHdvcmtlciB0
aHJlYWQuDQoNCkknbSB3b25kZXJpbmcgd2hldGhlciBpdCBjb3VsZCBoYXBwZW4gdGhhdCBh
IHRocmVhZCB3YWl0aW5nIGZvciBhICJyZXEiDQpjb3VsZCBiZSB3b2tlbiB1cCBhbmQgdGhl
ICJyZXEiIGlzIGJlaW5nIGZyZWVkIGJlZm9yZSB0aGUgd2FpdGluZyB0aHJlYWQNCmNhbiBy
ZWFjdC4gTm9ybWFsbHkgdGhpcyBzaG91bGRuJ3QgYmUgcG9zc2libGUsIGJ1dCAibmV2ZXIg
c2F5IG5ldmVyIi4NCldoYXQgY2F0Y2hlZCBteSBleWUgdG9kYXkgaXMgdGhlIHRlc3Qgb2Yg
cmVxLT5zdGF0ZSA9PSB4Yl9yZXFfc3RhdGVfd2FpdF9yZXBseQ0KaW4gcHJvY2Vzc19tc2co
KSBqdXN0IGFmdGVyIGRyb3BwaW5nIHRoZSB4Yl93cml0ZV9tdXRleC4gVGhpcyBsb29rcyBh
IGxpdHRsZQ0KYml0IGZpc2h5LCBidXQgT1RPSCB0aGUgcmVxdWVzdCBoYXMgYmVlbiBqdXN0
IHJlbW92ZWQgZnJvbSB0aGUgeHNfcmVwbHlfbGlzdCwNCnNvIG5vIG11dGV4IHNob3VsZCBi
ZSBuZWVkZWQgZm9yIHRoYXQgdGVzdC4NCg0KUG9zc2libGUgY2FuZGlkYXRlcyBmb3Igc3Vj
aCBhbiAiaW1wb3NzaWJsZSIgc2NlbmFyaW8gaW5jbHVkZSBhIHdyYXAgb2YNCnhzX3JlcXVl
c3RfaWQgKG5vdCB2ZXJ5IHByb2JhYmxlLCB0aG91Z2gsIGFzIGhhdmluZyA0IGJpbGxpb24g
WGVuc3RvcmUNCnJlcXVlc3RzICJpbiBmbGlnaHQiIGlzIHJhdGhlciB1bmxpa2VseSBJTUhP
KS4NCg0KDQpKdWVyZ2VuDQo=
--------------00N4XbMn9GqOUPeaKko46K0D
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-----

--------------00N4XbMn9GqOUPeaKko46K0D--

--------------r8ICPxbM70FqkNfSSufVF6Lv--

--------------DS8JEtToRP9QUbxnK0CLOZFE
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/Ey8FAmgSRT4FAwAAAAAACgkQsN6d1ii/Ey81
uQf+LHPbdWZUY7CEgDoYRYQ6cSUMu38j9YHdSZSroNplyaLJgNU05ZgH5sTa5KHfvXmeO6kOE+iV
or3SkwTa9M7n4koOn75xAfFeuzHQu6IyZasaLObaupTDp+VPy7CtZUp4bD12OzqDi/UOtV+PoEHG
Urgyrb9JUvyDK6in1glu5h+QoDeOIWAFDPpSmQRlm28dKN3nAPkGdJcXfQM/Kuu7DGoB3+lQ7Ad0
CChpBczhdnuyk+72UvXb9tHqlcSjhQEELXEHGhkM6bXVzhErZDpSM3kittu8ZRac+nrc8F/ztnqV
aX8Zho0yxvPUpfgaKXYLqjxK3Rf3wP1mL3Nw7BTdEg==
=7PlM
-----END PGP SIGNATURE-----

--------------DS8JEtToRP9QUbxnK0CLOZFE--


From xen-devel-bounces@lists.xenproject.org Wed Apr 30 15:45:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 30 Apr 2025 15:45:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.973806.1361845 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uA9cc-0007lv-J7; Wed, 30 Apr 2025 15:45:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 973806.1361845; Wed, 30 Apr 2025 15:45: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 1uA9cc-0007lo-GZ; Wed, 30 Apr 2025 15:45:18 +0000
Received: by outflank-mailman (input) for mailman id 973806;
 Wed, 30 Apr 2025 15:45: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=BSD2=XQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uA9cb-0007lg-Dg
 for xen-devel@lists.xenproject.org; Wed, 30 Apr 2025 15:45:17 +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 1c1d4e09-25da-11f0-9ffb-bf95429c2676;
 Wed, 30 Apr 2025 17:45:15 +0200 (CEST)
Received: by mail-ej1-x62c.google.com with SMTP id
 a640c23a62f3a-ac2963dc379so1113147366b.2
 for <xen-devel@lists.xenproject.org>; Wed, 30 Apr 2025 08:45:15 -0700 (PDT)
Received: from [10.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-ace6ecf9a47sm946818666b.104.2025.04.30.08.45.14
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 30 Apr 2025 08:45: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: 1c1d4e09-25da-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1746027915; x=1746632715; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=oListdUuI0zygMlwtlfFmcXK3frYsfsGysC7hkAsk4c=;
        b=gvQlfw58xtfJYA0dcyiTa3K52MBvR2JIWRCl6r/UnM6h6yvnkfpuTg3TELlPcZxgV/
         HtNTsH+qoFWmV6n2y1yGEHiCSiVjcQE00EUkkCTarkyfexFEumJEu+A1Kj1osXim5ZIK
         8WvGE7/bm+ntNSE0ePuBCqlhKomwATaCi1sGQ9WcxYPeKR15dwRjdXd3qHi0IpQjsbNI
         eC/qKlbq7CW6C9lfNz3dEp7IfI9O36XaV4NTHJlbsCRQLaCGNqxP748NA3ZYK5apOmbm
         vFYrna3uBsnnc4jO6F3zF67AyizyukQmg51pjexe5w+sKLb4pVZ8uFmMz9PpRerwRKQl
         B9Gg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1746027915; x=1746632715;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=oListdUuI0zygMlwtlfFmcXK3frYsfsGysC7hkAsk4c=;
        b=iaxj+rTUO4TBZdpK9PnmcYK0fl6qChfOEq36rBxEZIwdoI0K9GDT/lpjPqglwkjp4e
         MEXoUze2rlNTrJuN76Vp09QyxY0FpyoUNoTetCRyERMym7g1AAVnz3rQopJgS8+9VHIv
         wqF31DYm+fwW2N3EypJcPKPeuR3XZq+CEpX914NlUxzA9FV6/4JAXgE0taAg6oBe+69N
         4x6zeTO3Lqp0cTGGOA/YZN+BN7xp4I96ExNdZ0e2uUgVF1E1qCm+eUlhKz1AiI62izJ4
         mGyNJk574RM05YcWk9hwD+2EoCedv4IIdycNfB/Cw2uV2KXhX6mnCqBMZ6N7pG+TgpHj
         r6Qg==
X-Forwarded-Encrypted: i=1; AJvYcCVG9v+utIjfDBigZSzhbnpRZMX0mquXJ0ohSv2lz/mFIvHcq79fiToX6L8qJJbkbIFoppaLrsWt1vw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxoFjrIeE1LPGA8EfBkQrCNE2LiWRh1kXp9uaHfMRkiaWqa+R7e
	Ew2/B+ECIVrtkn7DiqLgvHReF+xa1HCWlHG6seDACfJmAcyZAvdE+06chkWLJQ==
X-Gm-Gg: ASbGnctvfr7I0l6ZH/iNjBfc9tt4giwD9gvjSdNRqXho/x9ecdPUySJ8QKwE4RMJdw5
	aaSv3mAD2sjo3ayYZdGuEtO68jJiWv/VRvougQOjPsn8knDyrhQLaC9uAsc2GPU/FCitK9k2P0L
	lngl1LnLNrbtoMrh9oIrP44XoejM4MMFauuogc1n3MeLXm1aw1960E8FLTAIpb8DUD+VvqNju62
	3bVgEJdcX4jB9hfHLDvDaDmIwrkayZ73Fc5ywEvw4Hs48YtKEkrQG7A/B857VKvM/IAH2ALCg6h
	OnL6vJ6YPEKyT76TsRjO/aPK7jNpJ8apfRuJtuPl2C/ySZIm3FubPdh6wzx4+39ICq3VECdxqof
	cgCg5yDsbSMq3yX9iGAeUPdi4rg==
X-Google-Smtp-Source: AGHT+IG3ogjlf+uitbI1hLfURJAk3WoxJNWZPMCebhGQImrvhNL69u0/sq13eVnFKMHDvO8qiE1EDw==
X-Received: by 2002:a17:907:1b22:b0:acb:7104:353a with SMTP id a640c23a62f3a-acee21ec86dmr257589866b.34.1746027914983;
        Wed, 30 Apr 2025 08:45:14 -0700 (PDT)
Message-ID: <c2358a47-1573-4a63-b674-b2ccb62ac582@suse.com>
Date: Wed, 30 Apr 2025 17:45:13 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 19/20] xen/sysctl: wrap around arch-specific
 arch_do_sysctl
To: Penny Zheng <Penny.Zheng@amd.com>
Cc: ray.huang@amd.com, Stefano Stabellini <sstabellini@kernel.org>,
 Julien Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Stefano Stabellini <stefano.stabellini@amd.com>,
 Sergiy Kibrik <Sergiy_Kibrik@epam.com>, xen-devel@lists.xenproject.org
References: <20250421073723.3863060-1-Penny.Zheng@amd.com>
 <20250421073723.3863060-20-Penny.Zheng@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20250421073723.3863060-20-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 21.04.2025 09:37, Penny Zheng wrote:
> --- a/xen/arch/riscv/stubs.c
> +++ b/xen/arch/riscv/stubs.c
> @@ -315,13 +315,13 @@ unsigned long raw_copy_from_guest(void *to, const void __user *from,
>  
>  /* sysctl.c */
>  
> +#ifdef CONFIG_SYSCTL
>  long arch_do_sysctl(struct xen_sysctl *sysctl,
>                      XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl)
>  {
>      BUG_ON("unimplemented");
>  }
>  
> -#ifdef CONFIG_SYSCTL
>  void arch_do_physinfo(struct xen_sysctl_physinfo *pi)
>  {
>      BUG_ON("unimplemented");

Looks like the #ifdef would better move ahead of the comment, too.
Preferably with that (and notwithstanding any changes resulting from
the comment on patch 02):
Acked-by: Jan Beulich <jbeulich@suse.com>

Jan


From xen-devel-bounces@lists.xenproject.org Wed Apr 30 15:48:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 30 Apr 2025 15:48:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.973818.1361854 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uA9fa-0008Lg-W9; Wed, 30 Apr 2025 15:48:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 973818.1361854; Wed, 30 Apr 2025 15:48: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 1uA9fa-0008LZ-TG; Wed, 30 Apr 2025 15:48:22 +0000
Received: by outflank-mailman (input) for mailman id 973818;
 Wed, 30 Apr 2025 15:48: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=BSD2=XQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uA9fZ-0008LT-QY
 for xen-devel@lists.xenproject.org; Wed, 30 Apr 2025 15:48:21 +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 8a076854-25da-11f0-9ffb-bf95429c2676;
 Wed, 30 Apr 2025 17:48:19 +0200 (CEST)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-acec5b99052so377797766b.1
 for <xen-devel@lists.xenproject.org>; Wed, 30 Apr 2025 08:48:19 -0700 (PDT)
Received: from [10.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-acec668dd9csm292319366b.96.2025.04.30.08.48.18
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 30 Apr 2025 08:48: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: 8a076854-25da-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1746028099; x=1746632899; 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=qPGXjTr94IthAvGS1pndkmacKBzQzCH2IJv4hKCEkjg=;
        b=J8kWsf1D8mVccw8mTQ/0kfnueIB4Fzj0eQFp+lrL/kg0IbEGlf9YMFND+VhHyu1Xba
         XoRP2Phiw3trMH4ePzS36FnFPjEW25FGba3UKVHu5yxTx6W3XD9JwYGcLT4m4w0JmehJ
         naFG2Fdb7d7YNoKQPCrBZfaD1J/ZaCp0t1oVSt2mL5q9P0UcFqVZ1pblF9ia0JFFnIxq
         aiZWqYREqmwXq8vDBJeDCt5e+d1RWGC092Pey0HN/SNkAdTSnLr9cMAXN65Vh8Pf7ufN
         LQdBdyLvV7G40Vwq0UFtTuNhjnf7IOnk5aqUULOKRipGxMXydFKmJ+KqK8NqcU42pHEb
         Hoyg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1746028099; x=1746632899;
        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=qPGXjTr94IthAvGS1pndkmacKBzQzCH2IJv4hKCEkjg=;
        b=Ar0gkHl7pXbG6RJfPlx/LVzqCz9c7zE6ONf9N1LGTM9VGHYbZbPp5T+VixqLVT582h
         9CphoiGzItvIswrDxsbgUfcaLRAH2pHVqiNW9Aifg8fpKwbrOiK7m3x96oPr4jq0yzc7
         D4ghhEMKa4WZ/wtJmxyznhaCYU1eqa50kXOEwsl+QNC0D+Vrf0eJ7W7TUwp3UefTZWpq
         Qt/k4m0vh7ztCgnXWvQRr0fVxKKkNH3X2iRpTl8ktu/HVJYfn9AdwCjP8YBj6GV6NxoR
         /5fAc9YbTyZl039bFpr+n+dwIoTTT3qUbJB/l2GHxMWWjT47ab0CI57A48K7cw9h7QH7
         Q0uw==
X-Forwarded-Encrypted: i=1; AJvYcCXVGHp8BOtX9hQkpHSqvRY5CzWW8VeuGVBvRwFHOTGFyESsQKqqGe1WvCGSKSq4T8xa58xHZ41UPPs=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwJyW0YoIZafNqmj2yU3i9xuN2v423HnvtzRJC74SYgSMeRJyqa
	UPWT+a40AOLaVTqZyHz5/jwf31Vw9x9zkgiyeEhLeM/fWuE/TetbCnqZ+BOXmQ==
X-Gm-Gg: ASbGncsJ1sn7enebrEf07dPpGcDDj+OK4d+tSehQUeJdL+4+4quCn7TiEEJhyxfipS/
	7bMep8Hwwkj5ooFYePK3QUrxJhyJNMOwFOj1FvuZypn7/vUoeGIOAs80zlfwwf2WBWbJDEvtL58
	GBRVCRw5TXvfuTwBqTiIbUzc4d7NpbryTHWQUa5itrX5ctTr/Jz8W2c1UpRhDlxeQSXtwK9GPXT
	M83ugMX2qnydOLGayT3NoZL9bKZ+sEbum1k74LF5lXK+WOm4SnMcAZ+7ezD9i7ASnUI4BgJoZ0F
	bgFezePMgFfdLS+47Dg2oLAw9AQ+tEAyc7ZEwuOYawJTnxkDFgf2YeH7TJwSaUdKQ1iHNKLKN4y
	yeF0ZtLVrQsLUDw3YdVRdLzPbmw==
X-Google-Smtp-Source: AGHT+IEwSCfPALaRpT0Sk5MCylOnSYRcEN6r39i/53vyyErkjdzBElH/0cMeyrqhLkH5yKdjFDN4Fw==
X-Received: by 2002:a17:906:f5a1:b0:ace:6d5b:e785 with SMTP id a640c23a62f3a-acedc700518mr335252666b.47.1746028099327;
        Wed, 30 Apr 2025 08:48:19 -0700 (PDT)
Message-ID: <f70666c1-c69a-4045-abb2-87a06e953bcc@suse.com>
Date: Wed, 30 Apr 2025 17:48:17 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 02/20] xen: introduce CONFIG_SYSCTL
From: Jan Beulich <jbeulich@suse.com>
To: Penny Zheng <Penny.Zheng@amd.com>
Cc: ray.huang@amd.com, Stefano Stabellini <stefano.stabellini@amd.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Sergiy Kibrik <Sergiy_Kibrik@epam.com>, xen-devel@lists.xenproject.org
References: <20250421073723.3863060-1-Penny.Zheng@amd.com>
 <20250421073723.3863060-3-Penny.Zheng@amd.com>
 <f4e6a0ed-c869-4ecc-a6bf-7ef445ac2db5@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: <f4e6a0ed-c869-4ecc-a6bf-7ef445ac2db5@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 30.04.2025 17:20, Jan Beulich wrote:
> On 21.04.2025 09:37, Penny Zheng wrote:
>> --- a/xen/common/Kconfig
>> +++ b/xen/common/Kconfig
>> @@ -581,4 +581,15 @@ config BUDDY_ALLOCATOR_SIZE
>>  	  Amount of memory reserved for the buddy allocator to serve Xen heap,
>>  	  working alongside the colored one.
>>  
>> +menu "Supported hypercall interfaces"
>> +	visible if EXPERT
>> +
>> +config SYSCTL
>> +	bool "Enable sysctl hypercall"
>> +	default y
> 
> Oh, and - just to re-iterate what I said earlier in the context of another patch:
> Imo you would better introduce the option without prompt (simply "defbool y"),
> and make it user selectable only in the final patch. That'll eliminate the need
> for transient "#ifdef CONFIG_SYSCTL", i.e. reduce overall code churn.

Moving further through the series I noticed that omitting the prompt here will
have an effect on the shim then - it'll be transiently (until the final patch of
the series) be built with all of the sysctl code again. I think that's tolerable
as long as in the final patch that is then being "cured" again. But it of course
needs calling out, to make people explicitly aware.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Apr 30 15:56:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 30 Apr 2025 15:56:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.973834.1361865 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uA9nI-0002FI-Qg; Wed, 30 Apr 2025 15:56:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 973834.1361865; Wed, 30 Apr 2025 15:56:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uA9nI-0002FB-Nd; Wed, 30 Apr 2025 15:56:20 +0000
Received: by outflank-mailman (input) for mailman id 973834;
 Wed, 30 Apr 2025 15:56: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=BSD2=XQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uA9nG-0002F1-Q6
 for xen-devel@lists.xenproject.org; Wed, 30 Apr 2025 15:56:18 +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 a629a90c-25db-11f0-9ffb-bf95429c2676;
 Wed, 30 Apr 2025 17:56:16 +0200 (CEST)
Received: by mail-ed1-x529.google.com with SMTP id
 4fb4d7f45d1cf-5e5deb6482cso2063599a12.1
 for <xen-devel@lists.xenproject.org>; Wed, 30 Apr 2025 08:56:16 -0700 (PDT)
Received: from [10.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-5f703831b5csm8873047a12.65.2025.04.30.08.56.15
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 30 Apr 2025 08:56: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: a629a90c-25db-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1746028576; x=1746633376; 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=LIIm9sMnJx3R9m93jDqQRNtYV1uSDut5QMkJ9c1BK44=;
        b=dH6E7zKaZ55Iwak+mjqzP5vKBx33sLVof85KGzGFx4AuSy2kRJrOV7jUzSDJE4JB34
         1gbVHi2hu+UpI8Wt2rVYF7Ca33o/oWOYB7MplIL/jUZ5QzUWUXWWn8F7oeqwzLk2xPgp
         mCQVusQZ5m9igSvHfBq/5a8eeEdwhLvefVRu4SLJv7txhe6KNgP/OrTMZEbNcHxfDOVB
         ztqgzH+L4JOOrn7Bm+j84JFi/YPdGBqlTJbScoYI5ROJZymC5bla1z02xHzMrHI9Zak9
         oC4J0tZWhQqcceuQ8NlVQiPQhG/xQVPb9J/wyTaCHTVPkOWCMcWIZHGFwW7EWz5/Mzka
         N3UA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1746028576; x=1746633376;
        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=LIIm9sMnJx3R9m93jDqQRNtYV1uSDut5QMkJ9c1BK44=;
        b=i8HvQwqdeobrF2i60pSgjdzu/ccg5GDe1L+iLs+ep9ufjGXwLbqZM4cBQlzkAhAe7F
         CD+NALRS5AZHQMmzPMjCgu2pw1qoLNUwLuiQ47IzuJqUCoitoWgsB7ciNU33z/pA5Msk
         2yltIJUNoOyaBZSCgKTCPNO7C99SPI41k1rCV0JKe9TQbAGM8xZmrx/PqpHLqKfJa1jU
         2PxXdx5ZsaA8MhVV9ebMYKbnhde6hpd4mNdpianvl+TlSBx4sgISBg3KpUEw7IMnCEs/
         We8ZP9y4fG298ZoUzVb01qAownAd5ZkAEcESpmsToTK/Lx5uODI63z6uq8u6srlrrhh6
         Gmmg==
X-Gm-Message-State: AOJu0YzSTDZfmzTgbuaJg5f7eqWnoet7/MBMBEM/pDNrIj925iQFgp+r
	3b6yZLQmNkNl6+fuWOnAsZAfflPZPKIjsfJCoDH8KRWd6KlKX61e+y82PI9MVIs9pNzszwv6VsI
	=
X-Gm-Gg: ASbGncuRMRkBbTaIT1jqXE6YmWqsNYIl3Jh+CIPuIpU/eE/kunR43KLG5hrh8umY7sY
	gduj4EL5mQ3IDEQybutpIQBtn/USpCy1BQDXgYVUvTn7pTAlWWKdaRqbnWvGOvY2PxbYYY8g/vV
	FFUtBvWimpiAvHF1lb7mgC8XXWMaASvdUMWJ4GbFtk1cXCB3afc/0qp40xT1PZt3jJNOBw4TkqT
	/BQhC/WeLrTSiBti7FSuEh+eoTIs88U/smjE6jEEOr1+nxjQzUPf5JWA+G/wG1+ituxw+TvgEEE
	nAseNC8CmYjGt01qQ6uyaYT8YKEQcgVnHZwVXVPeEI//matMIb/8oRkO0ioDaU6SPcB06gNd63R
	Iy8BovChLo0HN/vMY1QXRlKJgpPa17BSnn0r4
X-Google-Smtp-Source: AGHT+IEmQpeOYBdGfkong6yyDejetchBWKcvjhpKyytn8x9xSS3CUxAzx9Hyhtb5Joy/e5XIscxd5A==
X-Received: by 2002:a05:6402:5244:b0:5f7:2852:2010 with SMTP id 4fb4d7f45d1cf-5f89fe51a09mr3332576a12.13.1746028576108;
        Wed, 30 Apr 2025 08:56:16 -0700 (PDT)
Message-ID: <262b9929-5cbd-4bb1-ac2a-35916273cba5@suse.com>
Date: Wed, 30 Apr 2025 17:56:14 +0200
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>,
 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>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Shawn Anastasio <sanastasio@raptorengineering.com>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH] mm: move paddr_to_pdx()
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+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

There's nothing arch-specific about it.

While there, on x86 visually separate the vmap_to_*() macros from those
covered by the earlier comment.

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

--- a/xen/arch/arm/include/asm/mm.h
+++ b/xen/arch/arm/include/asm/mm.h
@@ -237,7 +237,6 @@ static inline void __iomem *ioremap_wc(p
 /* Convert between frame number and address formats.  */
 #define pfn_to_paddr(pfn) ((paddr_t)(pfn) << PAGE_SHIFT)
 #define paddr_to_pfn(pa)  ((unsigned long)((pa) >> PAGE_SHIFT))
-#define paddr_to_pdx(pa)    mfn_to_pdx(maddr_to_mfn(pa))
 #define gfn_to_gaddr(gfn)   pfn_to_paddr(gfn_x(gfn))
 #define gaddr_to_gfn(ga)    _gfn(paddr_to_pfn(ga))
 #define mfn_to_maddr(mfn)   pfn_to_paddr(mfn_x(mfn))
--- a/xen/arch/ppc/include/asm/mm.h
+++ b/xen/arch/ppc/include/asm/mm.h
@@ -13,7 +13,6 @@ void setup_initial_pagetables(void);
 
 #define pfn_to_paddr(pfn) ((paddr_t)(pfn) << PAGE_SHIFT)
 #define paddr_to_pfn(pa)  ((unsigned long)((pa) >> PAGE_SHIFT))
-#define paddr_to_pdx(pa)  mfn_to_pdx(maddr_to_mfn(pa))
 #define gfn_to_gaddr(gfn) pfn_to_paddr(gfn_x(gfn))
 #define gaddr_to_gfn(ga)  _gfn(paddr_to_pfn(ga))
 #define mfn_to_maddr(mfn) pfn_to_paddr(mfn_x(mfn))
--- a/xen/arch/riscv/include/asm/mm.h
+++ b/xen/arch/riscv/include/asm/mm.h
@@ -19,7 +19,6 @@ 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))
 
-#define paddr_to_pdx(pa)    mfn_to_pdx(maddr_to_mfn(pa))
 #define gfn_to_gaddr(gfn)   pfn_to_paddr(gfn_x(gfn))
 #define gaddr_to_gfn(ga)    _gfn(paddr_to_pfn(ga))
 #define mfn_to_maddr(mfn)   pfn_to_paddr(mfn_x(mfn))
--- a/xen/arch/x86/include/asm/page.h
+++ b/xen/arch/x86/include/asm/page.h
@@ -258,7 +258,8 @@ void scrub_page_cold(void *);
 #define mfn_to_virt(mfn)    __mfn_to_virt(mfn)
 #define pfn_to_paddr(pfn)   __pfn_to_paddr(pfn)
 #define paddr_to_pfn(pa)    __paddr_to_pfn(pa)
-#define paddr_to_pdx(pa)    pfn_to_pdx(paddr_to_pfn(pa))
+
+/* Specialized forms acting on vmap() addresses. */
 #define vmap_to_mfn(va)     xen_map_to_mfn((unsigned long)(va))
 #define vmap_to_page(va)    mfn_to_page(vmap_to_mfn(va))
 
--- a/xen/include/xen/pdx.h
+++ b/xen/include/xen/pdx.h
@@ -98,6 +98,8 @@ bool __mfn_valid(unsigned long mfn);
 #define mfn_to_pdx(mfn) pfn_to_pdx(mfn_x(mfn))
 #define pdx_to_mfn(pdx) _mfn(pdx_to_pfn(pdx))
 
+#define paddr_to_pdx(pa) pfn_to_pdx(paddr_to_pfn(pa))
+
 #ifdef CONFIG_PDX_COMPRESSION
 
 extern unsigned long pfn_pdx_bottom_mask, ma_va_bottom_mask;


From xen-devel-bounces@lists.xenproject.org Wed Apr 30 15:59:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 30 Apr 2025 15:59:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.973846.1361875 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uA9ql-0002sJ-8v; Wed, 30 Apr 2025 15:59:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 973846.1361875; Wed, 30 Apr 2025 15:59: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 1uA9ql-0002sC-5s; Wed, 30 Apr 2025 15:59:55 +0000
Received: by outflank-mailman (input) for mailman id 973846;
 Wed, 30 Apr 2025 15:59: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=BSD2=XQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uA9qk-0002rq-IJ
 for xen-devel@lists.xenproject.org; Wed, 30 Apr 2025 15:59:54 +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 2781cdd4-25dc-11f0-9eb4-5ba50f476ded;
 Wed, 30 Apr 2025 17:59:53 +0200 (CEST)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-acbb48bad09so62867266b.0
 for <xen-devel@lists.xenproject.org>; Wed, 30 Apr 2025 08:59:53 -0700 (PDT)
Received: from [10.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-ace6eda4901sm935196666b.162.2025.04.30.08.59.52
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 30 Apr 2025 08:59:52 -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: 2781cdd4-25dc-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1746028793; x=1746633593; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=UWj5FM9mLjk3pSrQ01H3MlDc5GyIEoIBb6WRU2aa4AA=;
        b=OQctR93U2J9x9xI5q0weoCSFP276tj1letsAEFpBfIOHJhNB3nMKi6sVAxoAAP2Kua
         woyMvCyZja5XgqT0enznEG5Fe2rpcfVWUiEjL+iJpTFv2R2kFnj+rFZWSYfWz2AqsZ55
         mFvSnPDqDE4D6h+AFnRen2wi32sgUtD6vcyirlQm0KYWFhv9EECNU367F12jaoWVs+g+
         VXI5MkTO53dY1tpJbLCrAwk56nfGgghm3hjh0ykeTkXwyY4UaTaIbyHXCM5OP/wpZsRY
         Aal0hSEQvwXIWsaL8/QVDkXFrfzSJXDzo+c3xxi2I0CDVYO7a3oyIxHtM180JG/2SEAq
         fzkw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1746028793; x=1746633593;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=UWj5FM9mLjk3pSrQ01H3MlDc5GyIEoIBb6WRU2aa4AA=;
        b=dma0bLKcUXM9JnPPDMMydstXdizJTh2Nj11qOKskwmYYdRVOYmTOrOqqOhi3Nenn/D
         Dsa83Xd116BBycigtIJpHIosiFYr3rRrdfuKSEcUGhf6zi+JQY+QAsBB3xfdHztHTvzs
         Tcr6OhWT+IXDAGB7Z2gppB7NCLlvUVlXED7HyIWZzpNiauSOtmH5GP3yu12OagmxI0zs
         cL1bQQLQQjsJCqzdEZ2MSO0Whc5HSNPPmwoAALK9GHyO1wizDLVwMVsgIMpp5U23znw4
         uO/Hnjb14876PmebVowHsbccVOBxx2/CfBUVLUcHxx/BA0ODYncdQwRyF5M7EIYzN4nx
         HTMA==
X-Forwarded-Encrypted: i=1; AJvYcCWGSsTybyts1X/I2h0hlmWfPMrhOxENgRSdZBlkgUKPzBUq3+5qu7FSS742AcUglvp1AXYWqjKCVIc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzCuYqZxa1J6UNLHQak/ymIiu4mGlf5Xw0ODEeeO8AIBXIBdQQ4
	J4i/jGhZsKV5rvQCmYCLgbNWH5ie9oupWK8Zyo59eFUa9nR38+Qwq/HorJpP1Q==
X-Gm-Gg: ASbGnctDsTghgO5vSmI6AX96Cy6nQzEPfpq1dnjExoW4Kx+hxvJJEllv1lFU+I7qV5l
	5plrx4BtNS4LHkWn/hGEWIMOFnKE7s1z/yI6hefocDLpxJ6BvCm8tnaGKNMIks1Ba48toegBCwC
	LTplYkTSPdDcF//ycTdLu6CeUa8C0zThucPqnjSJykSmXV2XQ7cdO2cbKy/FCoLtnc+RTgcSxCD
	QV4vUxkYuJsZad0jKf4QqmRyJ47JRCny48RfN0vIEVFW6DXHyqHz9gSVJcbjXOr5gblkrtrDGV+
	L07GGXtaj3h0l+5sZpOcBJUO5ephMc4r7quKHKOnxdwR24Ksb5dU0zJkng/LWfq+gQqDfxoj9tm
	cCGe5S9bwuHB6poGVtFreHWJ21g==
X-Google-Smtp-Source: AGHT+IHjhzikOeH6euXYDS44dghM17JUKB41cPSZTcHYuFKL6y8HwuPpiJw5PjZObNhTxOePMyADaQ==
X-Received: by 2002:a17:907:3dac:b0:ace:cae6:c85c with SMTP id a640c23a62f3a-acee24b3eb6mr308184866b.39.1746028792984;
        Wed, 30 Apr 2025 08:59:52 -0700 (PDT)
Message-ID: <238c657e-a53c-4eaa-84aa-1d3310b65723@suse.com>
Date: Wed, 30 Apr 2025 17:59:51 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH 1/4] xen: Introduce physaddr_abi CDF flag
To: Teddy Astie <teddy.astie@vates.tech>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1744981654.git.teddy.astie@vates.tech>
 <df0da6d56a9a9ca440b7bb2c7c0b71d66567e3aa.1744981654.git.teddy.astie@vates.tech>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <df0da6d56a9a9ca440b7bb2c7c0b71d66567e3aa.1744981654.git.teddy.astie@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 18.04.2025 16:18, Teddy Astie wrote:
> @@ -745,6 +747,12 @@ static int sanitise_domain_config(struct xen_domctl_createdomain *config)
>          return -EINVAL;
>      }
>  
> +    if ( physaddr_abi && !hvm )
> +    {
> +        dprintk(XENLOG_INFO, "Physical address ABI requested for non-HVM guest");
> +        return -EINVAL;
> +    }

Why this restriction?

Jan



From xen-devel-bounces@lists.xenproject.org Wed Apr 30 16:00:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 30 Apr 2025 16:00:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.973855.1361885 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uA9rO-0004oJ-G8; Wed, 30 Apr 2025 16:00:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 973855.1361885; Wed, 30 Apr 2025 16:00: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 1uA9rO-0004oC-DK; Wed, 30 Apr 2025 16:00:34 +0000
Received: by outflank-mailman (input) for mailman id 973855;
 Wed, 30 Apr 2025 16:00: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=wUHs=XQ=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1uA9rN-0002rq-ET
 for xen-devel@lists.xenproject.org; Wed, 30 Apr 2025 16:00:33 +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 3ef5091f-25dc-11f0-9eb4-5ba50f476ded;
 Wed, 30 Apr 2025 18:00:32 +0200 (CEST)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-43690d4605dso57737675e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 30 Apr 2025 09:00:32 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3a073ca5debsm17543986f8f.38.2025.04.30.09.00.31
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 30 Apr 2025 09:00:31 -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: 3ef5091f-25dc-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1746028832; x=1746633632; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=+vuJKMxrMyX9W9xFKZPwD6p4jB17G4wb6C1vz5GjM+A=;
        b=CGEWHxph0PCZHhVW9cIMZHINOsh7U5vKRuTMFYlX4xPMLU+cq4EICGUfpegbj9AzFy
         4XWYepVqM2/S97Gbksr5f03flGhLEx9UT4jD4cZ8DdhnoG9R4XD2vVhSBagSIMdFMCes
         4iTxFHokOfFHm2AIbhoZU1Q250ZevV/HbZOFc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1746028832; x=1746633632;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=+vuJKMxrMyX9W9xFKZPwD6p4jB17G4wb6C1vz5GjM+A=;
        b=QCHWeDU4V/aSnb86/jTSdzgomcvqOqCNIS5W3bnpJqTuZEimknMw2ZrVx6d1A2BB33
         h0sPiTc7S5TMAaeftaTDecVUoEeNBIkCr859eOp0ggii0IMT6X7rf5b0gUsKZRNTJCPs
         mnDci2CHtaRlhaPAr1ICTkQD/4UybaAdslBqg995vC15Rbqc/+OV4USn7wfLj3v0oX1p
         Qa81bPhfVla2LAK16R/usjYn+7za8o//JjfiiaNPByvp7BnatK/5chnAOpZSs+oXnXir
         KWHlas1T2F6D6A2n5thw5MKgmz3rT0Oe5IqWuYSyDxjX/0uJOgqJscG4G8GJho9nblFj
         fA1w==
X-Forwarded-Encrypted: i=1; AJvYcCWup2y7hYDtf/bycULvAnuSNQdd8Q3FtD7//LW64YToGvSmdHcJnyIvrJ2UK4pXgBipDnHj8sP9O1s=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxtfh8ZiUYv+gaYiaru+pOQt3lmoMeL8NcAmOyxAazNdjSM3JwV
	c6WSEx9OLz/dhBDjTywzzLW6YgKKf+IlBezL5ucopfWs1kduKNNN1Gt14WJ7il4=
X-Gm-Gg: ASbGnctrOrjvQv/xpjvOUIaGuMeRosSVJ+mIcbb4Q/fCtzQvFP7qN5Cb8caQGLrr2yv
	hQcCK7NpfYRHwl5s74W9g4D9PzYpLUvnkzTK5koFkuTQDWlgHEePaV9sKnp8uXJVQDK/2bqJsMF
	ysdMBQ+GchaaE6A+M+S32GFhz853WKC9bvT4dubIitF70R2EGy3Nn5NxhOJAsf/i38klaGD2tBz
	K1q+Ksr4jFH9wWtBLSHRtXVdHb5dhf6P6pARGrINu1QE9EeowOrjyHn/8lVLw7Lw7OHSdWFlvVX
	upYZH98GODwUZ/RH7lWDDZJESWorI1OD2kg9/i8faJlwKEaEwXGQwNoff13L4/czbgLyeT0z/OT
	g3tvPXQ==
X-Google-Smtp-Source: AGHT+IFKzQQGMKKtVSlLRyZcQveTx+dbBWUBkccda8DFrRogQIiup//Bcn0kAC6oeFy5mJ54WjiNbg==
X-Received: by 2002:a05:6000:3109:b0:38f:4d40:358 with SMTP id ffacd0b85a97d-3a08ff33057mr2832401f8f.9.1746028832307;
        Wed, 30 Apr 2025 09:00:32 -0700 (PDT)
Message-ID: <192ab217-b7f0-425d-8da4-6270d4494b37@citrix.com>
Date: Wed, 30 Apr 2025 17:00:31 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/alternatives: allow replacement code snippets to be
 re-used
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: <c4a71d96-b255-432e-b148-1daf1b14c77f@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: <c4a71d96-b255-432e-b148-1daf1b14c77f@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 30/04/2025 2:13 pm, Jan Beulich wrote:
> In a number of cases we use ALTERNATIVE_2 with both replacement insns /
> insn sequences being identical. Avoid emitting the same code twice, and
> instead alias the necessary helper labels to the existing ones.
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

On a random build, the size of .altinstr_replacement drops from 0xe47 to
0xdf8, so not too bad.

While the patch is fine, if we're adjusting the assembly ALTERNATIVE_2,
we should make the same adjustment to the C version, even if there's
nothing to benefit from it immediately.

~Andrew

P.S. it would be even nicer if we would put these in mergeable sections,
but I haven't figured out way to set the mergable unit size, which needs
to be an absolute expression.


From xen-devel-bounces@lists.xenproject.org Wed Apr 30 16:01:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 30 Apr 2025 16:01:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.973863.1361895 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uA9sV-0005Ro-OQ; Wed, 30 Apr 2025 16:01:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 973863.1361895; Wed, 30 Apr 2025 16:01: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 1uA9sV-0005Rh-Lp; Wed, 30 Apr 2025 16:01:43 +0000
Received: by outflank-mailman (input) for mailman id 973863;
 Wed, 30 Apr 2025 16:01: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=wUHs=XQ=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1uA9sV-0005Rb-0A
 for xen-devel@lists.xenproject.org; Wed, 30 Apr 2025 16:01:43 +0000
Received: from mail-wm1-x32c.google.com (mail-wm1-x32c.google.com
 [2a00:1450:4864:20::32c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 684af2db-25dc-11f0-9eb4-5ba50f476ded;
 Wed, 30 Apr 2025 18:01:42 +0200 (CEST)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-43690d4605dso57751505e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 30 Apr 2025 09:01:42 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3a073e46981sm17524777f8f.66.2025.04.30.09.01.40
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 30 Apr 2025 09:01: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: 684af2db-25dc-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1746028902; x=1746633702; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=zwT6J3kF9kG9QGANekRRZ+mMXbVygLTCWianmy3xLSA=;
        b=fsITYhJK1vLc0FGgFKumOjXkbeR9P5LgBEUgVRVEM3JQgdekNtWG6zCDvdRa05b9hi
         zMFqSlIvXE+F0/1GMhc2Stj9b+3qjaauQv30aIlaPFXMVFzsHjG4Z1EtnS62a9k423sl
         6caFkKvO060TkmvFC4UBOF+z1AZ7XMPnaua8Y=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1746028902; x=1746633702;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=zwT6J3kF9kG9QGANekRRZ+mMXbVygLTCWianmy3xLSA=;
        b=cwMDP25J4ZHvQH/lvQFUAkSP1fRhF5hcjdfQG9aNGO8N4dCRgJC6hJFvCGNqbDOLec
         z1M0rj5x12kFgVi6k7sPa8npUMg3qhMmri+AmxhFwFwbcAJEy4t2lB8kvMZa9LmXrx61
         yJs8scBVZ2ec+sjQeMCWwaqBHRpwO8OE/wsmUbYLPXzUAm9W3HMg1THTYI2ectBP/VAl
         lGLLVCleP+VAPhxcTnXO2fDuJTlLR9xTdHPvosVWL6B+uDRISwiNxI+RgsCsnauhRCYt
         YdmZMp317/GHD5f2CFcxlRtJvmSE1mApUXMBYaVBwUmxS5Bg35Y5L1CWC3iIurjw48X/
         F1Bw==
X-Forwarded-Encrypted: i=1; AJvYcCXgQ/fEbCsn/wI8cZTF6B2RvsUWCWWiRdQwmVUSM9lVJKk94wySz8nzWLtq8oSM2xmt9tF9iq9cjao=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzv+PgQvp3cDXm2sSuZi7zYYc8efrmt1eGBeyV86bVjKuBcIx3U
	616+59BEWug226t9C3OemHLbXbp5jQQYm7EtJS5+GdeBp4x/e0IYy65SEyNvj9Q=
X-Gm-Gg: ASbGncsFtTaSSS2jN/pa2rH4VEfPDln9ZGbN6NijjCbAx7F4AApNDLEEYQCDtnepVjd
	S4pTcgPUsg6go3PceZERlhIWnqPg4CYIDAgNHrA3XPWC+9tfmj5MlPBmkNcutKNEMU+/aBorYYw
	syfuEEszsxqDGP98/wNgWcuMJSVc0Mz2TXf8mc8BYQURHwn2udsV0ASCEIL/eLs92irX2Qw315i
	oO6OuBJh8zpd8Yu8JcGW1BxYRdeoEBscxdeb+jODKT5o5SdN6WSqmUK+ZAlUOYOaLAmtircFlFq
	H4ovZngrRO8NQ+BTNMOHYpblK0pw8vvvZE5HJ30xQAT0na2pdjZ+FuDjGT6JswjgK3/hogHK5a0
	Vb2T0ig==
X-Google-Smtp-Source: AGHT+IH2c4twUVYp1uv6no6/dwky8JEj9DxG651CfKDhV9r8JwRIIlV/FyIJyefgGDzCsrfBs/77Ug==
X-Received: by 2002:a05:6000:40ca:b0:3a0:833b:a1e2 with SMTP id ffacd0b85a97d-3a08ff46712mr2859290f8f.46.1746028901426;
        Wed, 30 Apr 2025 09:01:41 -0700 (PDT)
Message-ID: <8c5289c2-809b-4143-8703-aa79063dca49@citrix.com>
Date: Wed, 30 Apr 2025 17:01:40 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] mm: move paddr_to_pdx()
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>,
 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>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Shawn Anastasio <sanastasio@raptorengineering.com>
References: <262b9929-5cbd-4bb1-ac2a-35916273cba5@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: <262b9929-5cbd-4bb1-ac2a-35916273cba5@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 30/04/2025 4:56 pm, Jan Beulich wrote:
> There's nothing arch-specific about it.
>
> While there, on x86 visually separate the vmap_to_*() macros from those
> covered by the earlier comment.
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Wed Apr 30 16:05:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 30 Apr 2025 16:05:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.973883.1361904 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uA9vt-0006dd-A3; Wed, 30 Apr 2025 16:05:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 973883.1361904; Wed, 30 Apr 2025 16:05: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 1uA9vt-0006dW-6z; Wed, 30 Apr 2025 16:05:13 +0000
Received: by outflank-mailman (input) for mailman id 973883;
 Wed, 30 Apr 2025 16:05: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=BSD2=XQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uA9vr-0006dO-FF
 for xen-devel@lists.xenproject.org; Wed, 30 Apr 2025 16:05:11 +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 e3c8f364-25dc-11f0-9ffb-bf95429c2676;
 Wed, 30 Apr 2025 18:05:09 +0200 (CEST)
Received: by mail-ej1-x633.google.com with SMTP id
 a640c23a62f3a-ac3fcf5ab0dso1221158266b.3
 for <xen-devel@lists.xenproject.org>; Wed, 30 Apr 2025 09:05:09 -0700 (PDT)
Received: from [10.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-aced89270a7sm163846966b.18.2025.04.30.09.05.08
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 30 Apr 2025 09:05: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: e3c8f364-25dc-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1746029109; x=1746633909; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=JdZUkoEsfweykAhRb/6UZyp63WuM+Nh1YapjQxvZKEM=;
        b=SChhDJ03rAmbUwOasndVVqJ4ltYMqMD2t1PjmQWpJmz/vCkAsk8mC8s4E6JqiXbDfO
         oSzgKStrHoq7azQ8tZ9x8F1pcK5olHHmPkEU/LX/FcZlMo7sQkho7q0oFQR89BDmjc4B
         pQU285/D4cHAkQ3ur3Ol6zVkmlqy9qHUg3nAQ1GDVrgYyk26vFpLO5D7LbhQmZeS5y/n
         XHe9jFCqCgS1gRDAkG9bq56/ygLvUrS8Z91VQruboId/yGB4jaZDBtDv2oflV3e2k1bg
         Q38uoWPDlTncJPk0/ZqnOxSjYrx3J0QoLS3Xhb6ZRCua37oSz7aAKeG0bFNJayBX+l/M
         2m5w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1746029109; x=1746633909;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=JdZUkoEsfweykAhRb/6UZyp63WuM+Nh1YapjQxvZKEM=;
        b=gJFMTeQ5iCe2M60PkdZiS7ejyIcQVW6VbuKL9S+yeDPO7qGdcnL5yqKz+30IpzWKh9
         9STjzmS2l+UgxukiAKmT4UTxpp0IcvkWVy81zh18I99yQ2d+Tge4928Pmv3qQgJaRXOf
         Dv2iTxzPHhtt+KOnaSrQjxd+Hm0s0IaCO28mcYNjzy0o9E25MM1DjwaJRPrLBAIiScmb
         nOX1RqShtdRppZolPB+McICAhGcofbJEHWzkAVfWE5KWINRkutj+0QTRarRU2mC4LPC4
         Br0Sv+wO731VWCZPBQDElcAEyS1qE8E4pRfXyMQ6vjgzLtmLtudULVT+8Qj9sMFQw2hM
         bLBQ==
X-Forwarded-Encrypted: i=1; AJvYcCUA2bwMJoLEYVgeFd3s5zH5v4OMq9bCKrHLPmgC3gDcqXNhrTWbEFPv3GSHa91w1+X//uAqa726t78=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwujZb9MBPBzlACMlzprl+FLouaqbUCgzlFEwvb2Ozx3LV/clb+
	Tufcw/1PqR9SrmdeOLIbrj5EwuTUFsz8LtK2J6si1W1KtXvsBX6y9uMUGEG/CQ==
X-Gm-Gg: ASbGncsz7MeipR/68HD8umGmoYtLjdU1/7IjKz32/EiMPDC2WqOWKs3Ab8ux4zqBnJA
	6kTHRsYFcNJMBNrkXfnJugbKHEocESUnYUqss/ubd6E1/y+POaKW03FkxKXZVH1P+PpWzqQEGuT
	W4zUv5E4pldGkPj1pBxH4t72td1y6pns2LKivDNpqAvAZr3iwL3CQo2Gv3zpVcMdBIhxy75PK6q
	1+ybscJi6gsEIQeSnS66m959yKCCQDXlmFoUgZSQVOudJ9QzuVMSi/SaFgxVD/aO41Yg4hmZpeG
	8mh3oD7OyRZ4314ce062whRNzkK2erpWy/dDKJleHkZBDLuFX7yWaia3p5vF14mCI+9eezHHpVl
	LJGpXzEq0jCgC7GcHk+5dXmU26FEOZknGrdo3
X-Google-Smtp-Source: AGHT+IHR7JBxNM46cnnUHfhAI6VhJeaGbxm8kRnqM0aycaQ5cuaactXeCsgNmkst29kinvt20u4Yrw==
X-Received: by 2002:a17:907:7f29:b0:ace:ceb0:1089 with SMTP id a640c23a62f3a-acedc7d2c73mr411837966b.61.1746029108873;
        Wed, 30 Apr 2025 09:05:08 -0700 (PDT)
Message-ID: <efc6a402-7023-4944-b284-68313bcbf37a@suse.com>
Date: Wed, 30 Apr 2025 18:05:07 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/alternatives: allow replacement code snippets to be
 re-used
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <c4a71d96-b255-432e-b148-1daf1b14c77f@suse.com>
 <192ab217-b7f0-425d-8da4-6270d4494b37@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: <192ab217-b7f0-425d-8da4-6270d4494b37@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 30.04.2025 18:00, Andrew Cooper wrote:
> On 30/04/2025 2:13 pm, Jan Beulich wrote:
>> In a number of cases we use ALTERNATIVE_2 with both replacement insns /
>> insn sequences being identical. Avoid emitting the same code twice, and
>> instead alias the necessary helper labels to the existing ones.
>>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> 
> On a random build, the size of .altinstr_replacement drops from 0xe47 to
> 0xdf8, so not too bad.
> 
> While the patch is fine, if we're adjusting the assembly ALTERNATIVE_2,
> we should make the same adjustment to the C version, even if there's
> nothing to benefit from it immediately.

Can do, but I expect that to end up more clumsy for, as you say, no real
gain.

> P.S. it would be even nicer if we would put these in mergeable sections,
> but I haven't figured out way to set the mergable unit size, which needs
> to be an absolute expression.

Well, have you missed
https://lists.xen.org/archives/html/xen-devel/2021-11/msg01009.html then?
Yet it might still make sense to use the approach here as well, as there
are limitations to what can really be merged (by the toolchain).

Jan


From xen-devel-bounces@lists.xenproject.org Wed Apr 30 16:07:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 30 Apr 2025 16:07:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.973892.1361916 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uA9y2-0007OY-Mc; Wed, 30 Apr 2025 16:07:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 973892.1361916; Wed, 30 Apr 2025 16:07:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uA9y2-0007OR-Hx; Wed, 30 Apr 2025 16:07:26 +0000
Received: by outflank-mailman (input) for mailman id 973892;
 Wed, 30 Apr 2025 16:07: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=y9NI=XQ=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1uA9y1-0007OL-GV
 for xen-devel@lists.xenproject.org; Wed, 30 Apr 2025 16:07:25 +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 337209ba-25dd-11f0-9ffb-bf95429c2676;
 Wed, 30 Apr 2025 18:07:23 +0200 (CEST)
Received: by mail-ej1-x632.google.com with SMTP id
 a640c23a62f3a-acbb85ce788so1458794466b.3
 for <xen-devel@lists.xenproject.org>; Wed, 30 Apr 2025 09:07:23 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-69-225.play-internet.pl.
 [109.243.69.225]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-ace6e587093sm939655666b.80.2025.04.30.09.07.20
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 30 Apr 2025 09:07:21 -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: 337209ba-25dd-11f0-9ffb-bf95429c2676
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1746029242; x=1746634042; darn=lists.xenproject.org;
        h=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=K+y2n5V3Z+H0u5VklEhgPmR5FEmUnDZm4mEPVzDP2N4=;
        b=FUrvVaZp48P0iZiOqmHGIpZHuNpHsOwG6E+OXceuZkA4qHKPkhFKB934FSP15xyDRl
         d1hLfEywZ//PrwBeWLQrM8oPpYmhkHx7tjJqrX038R5AZk5byO+9YR75iSk2r9I3Ixr7
         MI92j5TTSiF6ZpPuFauLL6ieLSs1mdwpS9wKLgIuY9fi4vpzdO2DhFUQVXB/WOdVDaAo
         Nk54mrcX7XsTuSCoc3Q2MK70av3CA4TyBsGKvL9/rZ0GS2aFOrygDOXuSWC8n+RCn1hS
         k6G6UZFnRdI9EdHKBvhUfbNcNsGQo1J17Ki95hw5FLIb68DUBl4hHt6Y7Arx42zyzxXS
         YurA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1746029242; x=1746634042;
        h=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=K+y2n5V3Z+H0u5VklEhgPmR5FEmUnDZm4mEPVzDP2N4=;
        b=Be580fgAhVApCqo5rdE5LWqFQ9K4DX/AEAoOWVM3Y20pvRt4+5f2Jvm+v2FU0s/7x1
         8dfbGcfG8qIg1nB7cH4cgO27XoJ2KixczmmdSRRxUfgLAOEonGCeLiiSFMPCB1KwMLWr
         72aZBQW1mZEGSY2iWH3tJVdntNrXJ6Fs2NZG2pCYGWEFoKDUDVAbuOEFqSxM9kC7GWlW
         KsrD4desp0zFQMRDNAwIbzSXA7i/dFE6u8vcUQuIJe7Rt2ZQyByW9OV77V2UJwa9VUP8
         ublnGlz9IxDdfiTjQaG5YZ3bkKAxkjPhhgm95JBPbqLfBRoaB0A59I651G/Beo+WFEAT
         kloA==
X-Forwarded-Encrypted: i=1; AJvYcCV+Y17t023exRnMlyxnyFDntiv+20rIXEgHi0rAItOmPxVr2an0NkYQlh/lg/OjRJvM//8Zsis7zl8=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw9/1R/Zm3n1FX6NseKCaqjaKjVsblZWJirq8dK0+Cv+QRmtIYt
	Kv2xLRvmyx1OCIlolmtESCXP22YEl8AKcywtDiWMQdIBpoQZ1pYe
X-Gm-Gg: ASbGncsZI5iElm+Q+XMWANVSEAKIMvv+Zal2viZYWlZs1dHJXAH3//gazxs9lvidmUK
	GcvoUNn1Oa81I72+Wm3590HKTCb1UTEVvV7mfwns6I8dKCZHpqMgKC1Atxccc2AFRsPAqM4XO6m
	nadXKzbM3AIU1pGPyiENk5Q2ZAuhJZAsvJgnNucK0bMmUMPcUH+qdcAqSD+Bt87+SPE8yPM7wUx
	/wwikpXyK9n7zMfJvNCKW3KGHDmVsQUeDyWxA/uUVyrkwASrSif6EU22ni6AIfZCsVQ6nU9bq1c
	wLfa6WtO6t5FBUlyBJsNOr/f9LplAWFNAaJyPL/+IrGb3t7yGU48918gJjgUPFDWM5XNJeY+lho
	I3PdbHirzX1IwsSDs+kQPto3wB34=
X-Google-Smtp-Source: AGHT+IE1fp/hZD42M3o1yorc223r4We79UOVvTzzmuN3ZX8SWiN4xI2bAwvPbun6dMZZZ3EQdHEsRw==
X-Received: by 2002:a17:907:1b11:b0:ac3:8988:deda with SMTP id a640c23a62f3a-acedc6f1ab5mr423348266b.40.1746029242189;
        Wed, 30 Apr 2025 09:07:22 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------u0Es0HbyotVznTnlDoZ0oTzb"
Message-ID: <c7ca0d22-42ac-4d52-853c-90247e5402c9@gmail.com>
Date: Wed, 30 Apr 2025 18:07:20 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 10/14] xen/riscv: implementation of aplic and imsic
 operations
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Romain Caritey <Romain.Caritey@microchip.com>, xen-devel@lists.xenproject.org
References: <cover.1744126720.git.oleksii.kurochko@gmail.com>
 <74a07ed7c596bbcf581010685e01bfdfa19164f5.1744126720.git.oleksii.kurochko@gmail.com>
 <35075d73-ec3c-4e8f-b7ed-657b604904bd@suse.com>
 <9bee5d4e-cad1-4fc1-8b4c-b4a4bab4b76c@gmail.com>
 <c0bcc9e7-26a6-4a67-8f18-787364b530e4@suse.com>
 <231e9f4e-a044-49b7-b3a5-26ff2f7f9612@gmail.com>
 <d00fca13-617b-4687-9a15-131bba352ea1@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <d00fca13-617b-4687-9a15-131bba352ea1@suse.com>

This is a multi-part message in MIME format.
--------------u0Es0HbyotVznTnlDoZ0oTzb
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 4/28/25 10:54 AM, Jan Beulich wrote:
>>>>>> +    ASSERT(spin_is_locked(&desc->lock));
>>>>> If this lock (which is an IRQ-safe one) is necessarily held, ...
>>>>>
>>>>>> +    spin_lock_irqsave(&aplic.lock, flags);
>>>>> ... you can use just spin_lock() here.
>>>>>
>>>>>> +    clear_bit(_IRQ_DISABLED, &desc->status);
>>>>> Why an atomic bitop when desc is locked? (And yes, I ought to raise the same
>>>>> question on Arm code also doing so.)
>>>> I haven't thought about that. Likely non-atomic bitop could be used here.
>>> And then - does it need to be a bitop? Aiui that's what Arm uses, while x86
>>> doesn't. And I see no reason to use other than plain C operators here. If
>>> Arm was switched, presumably all the redundant (and misnamed) _IRQ_*
>>> constants could go away, with just the IRQ_* ones left.
>> The reason for a bitop in Arm is explained in this commithttps://gitlab.com/xen-project/xen/-/commit/50d8fe8fcbab2440cfeeb65c4765868398652473
>> but all the places where plain C operators were changed to bitops are actually executed under|spin_lock_irqsave(&desc->lock, flags). By quick look I found only two
>> places one in __setup_irq() but it is called by the functions which do ||spin_lock_irqsave(&desc->lock, flags) and in vgic_v2_fold_lr_state().
>> Maybe, I'm missing something.|
>> |RISC-V won't have something similar to ||vgic_v2_fold_lr_state|(), but __setup_irq() is used in a similar way. It can be added ASSERT(spin_is_lock(&desc->lock))
>> and then it will also safe to use non-bitop function.
>> Probably, it is a little bit safer to use always bitops for desc->status.
>> ||
> I question that. If any accesses outside of locked regions were needed (as the
> description of that commit suggests), then the situation would be different.

Okay, then at the moment there is no such cases and I'll use plain C operator instead of
clear/set_bit().

>
> Btw, you not wrapping lines and you adding strange | instances doesn't help
> readability of your replies.
>
>>>>> I'm uncertain about this bit setting anyway - on x86 we would only fiddle
>>>>> with it for IRQs not in use, not while enabling/disabling one.
>>> What about this part?
>> As I understand, based on Arm, code then Xen enables interrupts corresponding to devices assigned
>> to dom0/domU before booting dom0/domU, resulting in the possibility of receiving an interrupt
>> and not knowing what to do with it. So it is needed for enablement of IRQs when the guest
>> requests it and not unconditionally at boot time.
> I fear I don't understand this. The way we do things on x86 doesn't leave us
> in such a situation.

On Arm, the physical interrupts would be enabled when the interrupt is initially routed and in case guest
is booting with interrupt disabled, it could introduce a problem when guest enabled interrupts it will
already have a pending interrupt for which it isn't ready.

How is it handled the case when a device isn't quiescing at the boot time in x86?

But I just realized the way how interrupts are enabled in RISC-V for guest won't lead to such case. The interrupt
will be enabled only when guest's device driver will request that. So this setting/clearing of IRQ_DISABLED could
be dropped for RISC-V.

~ Oleksii

--------------u0Es0HbyotVznTnlDoZ0oTzb
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 4/28/25 10:54 AM, Jan Beulich wrote:</div>
    <blockquote type="cite"
      cite="mid:d00fca13-617b-4687-9a15-131bba352ea1@suse.com">
      <pre wrap="" class="moz-quote-pre">
</pre>
      <blockquote type="cite">
        <blockquote type="cite">
          <blockquote type="cite">
            <blockquote type="cite">
              <blockquote type="cite">
                <pre wrap="" class="moz-quote-pre">+    ASSERT(spin_is_locked(&amp;desc-&gt;lock));
</pre>
              </blockquote>
              <pre wrap="" class="moz-quote-pre">If this lock (which is an IRQ-safe one) is necessarily held, ...

</pre>
              <blockquote type="cite">
                <pre wrap="" class="moz-quote-pre">+    spin_lock_irqsave(&amp;aplic.lock, flags);
</pre>
              </blockquote>
              <pre wrap="" class="moz-quote-pre">... you can use just spin_lock() here.

</pre>
              <blockquote type="cite">
                <pre wrap="" class="moz-quote-pre">+    clear_bit(_IRQ_DISABLED, &amp;desc-&gt;status);
</pre>
              </blockquote>
              <pre wrap="" class="moz-quote-pre">Why an atomic bitop when desc is locked? (And yes, I ought to raise the same
question on Arm code also doing so.)
</pre>
            </blockquote>
            <pre wrap="" class="moz-quote-pre">I haven't thought about that. Likely non-atomic bitop could be used here.
</pre>
          </blockquote>
          <pre wrap="" class="moz-quote-pre">And then - does it need to be a bitop? Aiui that's what Arm uses, while x86
doesn't. And I see no reason to use other than plain C operators here. If
Arm was switched, presumably all the redundant (and misnamed) _IRQ_*
constants could go away, with just the IRQ_* ones left.
</pre>
        </blockquote>
        <pre wrap="" class="moz-quote-pre">
The reason for a bitop in Arm is explained in this commithttps://gitlab.com/xen-project/xen/-/commit/50d8fe8fcbab2440cfeeb65c4765868398652473
but all the places where plain C operators were changed to bitops are actually executed under|spin_lock_irqsave(&amp;desc-&gt;lock, flags). By quick look I found only two 
places one in __setup_irq() but it is called by the functions which do ||spin_lock_irqsave(&amp;desc-&gt;lock, flags) and in vgic_v2_fold_lr_state(). 
Maybe, I'm missing something.|
|RISC-V won't have something similar to ||vgic_v2_fold_lr_state|(), but __setup_irq() is used in a similar way. It can be added ASSERT(spin_is_lock(&amp;desc-&gt;lock))
and then it will also safe to use non-bitop function.
Probably, it is a little bit safer to use always bitops for desc-&gt;status.
||
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
I question that. If any accesses outside of locked regions were needed (as the
description of that commit suggests), then the situation would be different.</pre>
    </blockquote>
    <pre>Okay, then at the moment there is no such cases and I'll use plain C operator instead of
clear/set_bit().

</pre>
    <blockquote type="cite"
      cite="mid:d00fca13-617b-4687-9a15-131bba352ea1@suse.com">
      <pre wrap="" class="moz-quote-pre">

Btw, you not wrapping lines and you adding strange | instances doesn't help
readability of your replies.

</pre>
      <blockquote type="cite">
        <blockquote type="cite">
          <blockquote type="cite">
            <blockquote type="cite">
              <pre wrap="" class="moz-quote-pre">I'm uncertain about this bit setting anyway - on x86 we would only fiddle
with it for IRQs not in use, not while enabling/disabling one.
</pre>
            </blockquote>
          </blockquote>
          <pre wrap="" class="moz-quote-pre">What about this part?
</pre>
        </blockquote>
        <pre wrap="" class="moz-quote-pre">
As I understand, based on Arm, code then Xen enables interrupts corresponding to devices assigned
to dom0/domU before booting dom0/domU, resulting in the possibility of receiving an interrupt
and not knowing what to do with it. So it is needed for enablement of IRQs when the guest
requests it and not unconditionally at boot time.
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
I fear I don't understand this. The way we do things on x86 doesn't leave us
in such a situation.</pre>
    </blockquote>
    <pre>On Arm, the physical interrupts would be enabled when the interrupt is initially routed and in case guest
is booting with interrupt disabled, it could introduce a problem when guest enabled interrupts it will
already have a pending interrupt for which it isn't ready.

How is it handled the case when a device isn't quiescing at the boot time in x86?

But I just realized the way how interrupts are enabled in RISC-V for guest won't lead to such case. The interrupt
will be enabled only when guest's device driver will request that. So this setting/clearing of IRQ_DISABLED could
be dropped for RISC-V.

~ Oleksii</pre>
  </body>
</html>

--------------u0Es0HbyotVznTnlDoZ0oTzb--


From xen-devel-bounces@lists.xenproject.org Wed Apr 30 16:17:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 30 Apr 2025 16:17:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.973907.1361924 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uAA7c-0001JF-Gz; Wed, 30 Apr 2025 16:17:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 973907.1361924; Wed, 30 Apr 2025 16:17: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 1uAA7c-0001J8-EQ; Wed, 30 Apr 2025 16:17:20 +0000
Received: by outflank-mailman (input) for mailman id 973907;
 Wed, 30 Apr 2025 16:17: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=wUHs=XQ=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1uAA7b-0001J2-77
 for xen-devel@lists.xenproject.org; Wed, 30 Apr 2025 16:17:19 +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 964474c8-25de-11f0-9eb4-5ba50f476ded;
 Wed, 30 Apr 2025 18:17:18 +0200 (CEST)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-43d0618746bso53637095e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 30 Apr 2025 09:17:18 -0700 (PDT)
Received: from [192.168.1.183] (host-92-26-98-202.as13285.net. [92.26.98.202])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-441b2ad7688sm30578475e9.3.2025.04.30.09.17.16
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 30 Apr 2025 09:17: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: 964474c8-25de-11f0-9eb4-5ba50f476ded
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1746029838; x=1746634638; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=yT/5+n5bXAn9EIkFb8kWZsiXt5aLaUEPq3F1of4BDmM=;
        b=l3jSS/sLXzbztFTESgXBns1J747k8Yx8YhuZbRzE0NjdWiemZiDPf2TAe7QgVP/BR0
         GDLVp5rVkaGh06/e3HO0M2TVgLPu2IDYe/aYcQ6RyCQsyWfz9CFN57smY+1TMd68VmXG
         TmVdcrOYpgox49igdRhar3i9jGKHfI6qUhHuo=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1746029838; x=1746634638;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=yT/5+n5bXAn9EIkFb8kWZsiXt5aLaUEPq3F1of4BDmM=;
        b=nYDoX/fmL3xD+gnM5yEljyfqkBZcs66/VkE260aSqPR0nR6ruE8KdC5PTl+BNsboMD
         EuG9QcuVLaGv1lUJ+BZP2kohpTahv0RimkFHMpSGZf5F9N5PiQFtlz7qH6wryESuRKrX
         gjMfXoNaZhBQX7sdpqToctQ3OG5HjHVOGht/ncTQzED5slV4jae00NW2MTlUTTNFc2aX
         EgcttK9oaATFqrE1u+dId56yAxHaGpmS1ibxoeHPvbSN44LKmPmIbzcjkQSrNYiksOYs
         g06p8EzvC2VkBw/pgjYq2T3VvvpP8peLn+ki7y40fK0uMj15NMl/na9LXaKu2Zzuhw0L
         3ZfQ==
X-Forwarded-Encrypted: i=1; AJvYcCXZdEqFmXfwY4JfBqsEniiUy7i+M1l9bxJg9UU0A2jq0d8sRl/SmRZuHhCq1TEpBg9dGK7Rj/ya+z0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwwaflUbrt18sGDi4Bo1Rt1hTaiZYwKV4FSlmV1j6hU9+ZTm25g
	I7hDl0kGXPvjacUzce7T+CdvFqPu3hckQnkAvLjAOXY8TxmOVbxISYYKcf41vdk=
X-Gm-Gg: ASbGncsb5vfPcix2jDai2LvfTqCiSJiaSBYjFSa336TPCFlPNB9DM2BiSY698vTVH0n
	IL6RrJt8srn9RikFEtEnql5HW2Ob35GOwBkcKu9c5sVd2CwupoS5PolASa1yh0Lafmrmg4M4awD
	y5OJkfQ1H3cA4za7T7HmfGyourVp6bh6sdL3zEAnJd9PFg6a+o+oWi9Uvwv8AQxzlrQZCxMnT44
	aTuAxQI4RmnpCvgOhCUbqCCwOSTdftf8RFOPXaYuUMMF+MaaFNqPnMLjVU1qPsDTUKyfAZ7nJ51
	7IQAv/keo6MK67rhu7IieGP6IMBUNshP8D+lICNPzZi3QkbEW2zRh6b0q+lGJQ1hvmuPO0/1ze/
	ngTyZlA==
X-Google-Smtp-Source: AGHT+IGays4Zhk6lwB3pI3X7MTYT35f1kJwtkLh/0Hl8yVd1ryhG5Rcb260iskG6cz7pRcH3xPwabw==
X-Received: by 2002:a05:600c:1f11:b0:440:6a1a:d8a0 with SMTP id 5b1f17b1804b1-441b2634d64mr31111375e9.7.1746029837703;
        Wed, 30 Apr 2025 09:17:17 -0700 (PDT)
Message-ID: <280d8580-afcf-425f-9756-ee040a607059@citrix.com>
Date: Wed, 30 Apr 2025 17:17:02 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/alternatives: allow replacement code snippets to be
 re-used
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: <c4a71d96-b255-432e-b148-1daf1b14c77f@suse.com>
 <192ab217-b7f0-425d-8da4-6270d4494b37@citrix.com>
 <efc6a402-7023-4944-b284-68313bcbf37a@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: <efc6a402-7023-4944-b284-68313bcbf37a@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 30/04/2025 5:05 pm, Jan Beulich wrote:
> On 30.04.2025 18:00, Andrew Cooper wrote:
>> On 30/04/2025 2:13 pm, Jan Beulich wrote:
>>> In a number of cases we use ALTERNATIVE_2 with both replacement insns /
>>> insn sequences being identical. Avoid emitting the same code twice, and
>>> instead alias the necessary helper labels to the existing ones.
>>>
>>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>> On a random build, the size of .altinstr_replacement drops from 0xe47 to
>> 0xdf8, so not too bad.
>>
>> While the patch is fine, if we're adjusting the assembly ALTERNATIVE_2,
>> we should make the same adjustment to the C version, even if there's
>> nothing to benefit from it immediately.
> Can do, but I expect that to end up more clumsy for, as you say, no real
> gain.

Fine.  Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>

>
>> P.S. it would be even nicer if we would put these in mergeable sections,
>> but I haven't figured out way to set the mergable unit size, which needs
>> to be an absolute expression.
> Well, have you missed
> https://lists.xen.org/archives/html/xen-devel/2021-11/msg01009.html then?

Apparently so, yes.

~Andrew

> Yet it might still make sense to use the approach here as well, as there
> are limitations to what can really be merged (by the toolchain).
>
> Jan



From xen-devel-bounces@lists.xenproject.org Wed Apr 30 17:36:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 30 Apr 2025 17:36:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.973923.1361939 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uABLq-00050Z-4v; Wed, 30 Apr 2025 17:36:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 973923.1361939; Wed, 30 Apr 2025 17: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 1uABLq-00050S-1S; Wed, 30 Apr 2025 17:36:06 +0000
Received: by outflank-mailman (input) for mailman id 973923;
 Wed, 30 Apr 2025 17:36: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=1mYU=XQ=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1uABLo-00050L-K9
 for xen-devel@lists.xenproject.org; Wed, 30 Apr 2025 17:36:04 +0000
Received: from mail.zytor.com (unknown [2607:7c80:54:3::138])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 945412be-25e9-11f0-9ffb-bf95429c2676;
 Wed, 30 Apr 2025 19:36:00 +0200 (CEST)
Received: from [192.168.7.202] ([71.202.166.45]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 53UHYglH994677
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NO);
 Wed, 30 Apr 2025 10:34:43 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 945412be-25e9-11f0-9ffb-bf95429c2676
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 53UHYglH994677
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025042001; t=1746034492;
	bh=MVcFuH6LQX3Y3pUhS9pDt2jTv3OOuhGgVjMgZBwFQbU=;
	h=Date:Subject:To:Cc:References:From:In-Reply-To:From;
	b=YBirQRGsh/eKhYCU46jEVunfYnCZZLGJwrkUur+AVnLfZOgM2knIRNzrZbf9yWCo9
	 juTOLbfakM++FVNYbWI7VMM61OBGpjeTocu/tJJcKM4G8I/1t6+b+PzT4AnPvVbz0h
	 BbdU7/90+cjC0oKiyPmbG4DiLeYyIE6yfLjoMHDwWuBzrqeLRRM4YyYJ5f9/sXGXHU
	 egrQpYb03Y9EciKRAdv2n6yXgLPSMuEFconn56YWuD3tYuPf6WIqsEFB7eR6/ZBS7g
	 hYXTVsGSsffm09JBcLUTgarngUDGWX8wE0EpOGSInhMhUwDxstW72Csx0RoTmWX5Jv
	 fG5/w1SY9Cpug==
Message-ID: <480f6bf5-20ea-47a0-a1be-3f3cf15227b6@zytor.com>
Date: Wed, 30 Apr 2025 10:34:42 -0700
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 01/15] x86/msr: Add missing includes of <asm/msr.h>
To: =?UTF-8?Q?Ilpo_J=C3=A4rvinen?= <ilpo.jarvinen@linux.intel.com>
Cc: LKML <linux-kernel@vger.kernel.org>, kvm@vger.kernel.org,
        linux-perf-users@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, linux-pm@vger.kernel.org,
        linux-edac@vger.kernel.org, xen-devel@lists.xenproject.org,
        linux-acpi@vger.kernel.org, linux-hwmon@vger.kernel.org,
        Netdev <netdev@vger.kernel.org>, platform-driver-x86@vger.kernel.org,
        tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
        dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
        acme@kernel.org, jgross@suse.com, andrew.cooper3@citrix.com,
        peterz@infradead.org, namhyung@kernel.org, mark.rutland@arm.com,
        alexander.shishkin@linux.intel.com, jolsa@kernel.org,
        irogers@google.com, adrian.hunter@intel.com, kan.liang@linux.intel.com,
        wei.liu@kernel.org, ajay.kaher@broadcom.com,
        bcm-kernel-feedback-list@broadcom.com, tony.luck@intel.com,
        pbonzini@redhat.com, vkuznets@redhat.com, seanjc@google.com,
        luto@kernel.org, boris.ostrovsky@oracle.com, kys@microsoft.com,
        haiyangz@microsoft.com, decui@microsoft.com,
        dapeng1.mi@linux.intel.com
References: <20250427092027.1598740-1-xin@zytor.com>
 <20250427092027.1598740-2-xin@zytor.com>
 <a1917b37-e41e-d303-749b-4007cda01605@linux.intel.com>
 <c16677bd-ee63-4032-8825-7d2789dd7555@zytor.com>
 <d1bf0657-1cc5-b6ec-5601-f31efefacd9a@linux.intel.com>
Content-Language: en-US
From: Xin Li <xin@zytor.com>
Autocrypt: addr=xin@zytor.com; keydata=
 xsDNBGUPz1cBDACS/9yOJGojBFPxFt0OfTWuMl0uSgpwk37uRrFPTTLw4BaxhlFL0bjs6q+0
 2OfG34R+a0ZCuj5c9vggUMoOLdDyA7yPVAJU0OX6lqpg6z/kyQg3t4jvajG6aCgwSDx5Kzg5
 Rj3AXl8k2wb0jdqRB4RvaOPFiHNGgXCs5Pkux/qr0laeFIpzMKMootGa4kfURgPhRzUaM1vy
 bsMsL8vpJtGUmitrSqe5dVNBH00whLtPFM7IbzKURPUOkRRiusFAsw0a1ztCgoFczq6VfAVu
 raTye0L/VXwZd+aGi401V2tLsAHxxckRi9p3mc0jExPc60joK+aZPy6amwSCy5kAJ/AboYtY
 VmKIGKx1yx8POy6m+1lZ8C0q9b8eJ8kWPAR78PgT37FQWKYS1uAroG2wLdK7FiIEpPhCD+zH
 wlslo2ETbdKjrLIPNehQCOWrT32k8vFNEMLP5G/mmjfNj5sEf3IOKgMTMVl9AFjsINLHcxEQ
 6T8nGbX/n3msP6A36FDfdSEAEQEAAc0WWGluIExpIDx4aW5Aenl0b3IuY29tPsLBDQQTAQgA
 NxYhBIUq/WFSDTiOvUIqv2u9DlcdrjdRBQJlD89XBQkFo5qAAhsDBAsJCAcFFQgJCgsFFgID
 AQAACgkQa70OVx2uN1HUpgv/cM2fsFCQodLArMTX5nt9yqAWgA5t1srri6EgS8W3F+3Kitge
 tYTBKu6j5BXuXaX3vyfCm+zajDJN77JHuYnpcKKr13VcZi1Swv6Jx1u0II8DOmoDYLb1Q2ZW
 v83W55fOWJ2g72x/UjVJBQ0sVjAngazU3ckc0TeNQlkcpSVGa/qBIHLfZraWtdrNAQT4A1fa
 sWGuJrChBFhtKbYXbUCu9AoYmmbQnsx2EWoJy3h7OjtfFapJbPZql+no5AJ3Mk9eE5oWyLH+
 QWqtOeJM7kKvn/dBudokFSNhDUw06e7EoVPSJyUIMbYtUO7g2+Atu44G/EPP0yV0J4lRO6EA
 wYRXff7+I1jIWEHpj5EFVYO6SmBg7zF2illHEW31JAPtdDLDHYcZDfS41caEKOQIPsdzQkaQ
 oW2hchcjcMPAfyhhRzUpVHLPxLCetP8vrVhTvnaZUo0xaVYb3+wjP+D5j/3+hwblu2agPsaE
 vgVbZ8Fx3TUxUPCAdr/p73DGg57oHjgezsDNBGUPz1gBDAD4Mg7hMFRQqlzotcNSxatlAQNL
 MadLfUTFz8wUUa21LPLrHBkUwm8RujehJrzcVbPYwPXIO0uyL/F///CogMNx7Iwo6by43KOy
 g89wVFhyy237EY76j1lVfLzcMYmjBoTH95fJC/lVb5Whxil6KjSN/R/y3jfG1dPXfwAuZ/4N
 cMoOslWkfZKJeEut5aZTRepKKF54T5r49H9F7OFLyxrC/uI9UDttWqMxcWyCkHh0v1Di8176
 jjYRNTrGEfYfGxSp+3jYL3PoNceIMkqM9haXjjGl0W1B4BidK1LVYBNov0rTEzyr0a1riUrp
 Qk+6z/LHxCM9lFFXnqH7KWeToTOPQebD2B/Ah5CZlft41i8L6LOF/LCuDBuYlu/fI2nuCc8d
 m4wwtkou1Y/kIwbEsE/6RQwRXUZhzO6llfoN96Fczr/RwvPIK5SVMixqWq4QGFAyK0m/1ap4
 bhIRrdCLVQcgU4glo17vqfEaRcTW5SgX+pGs4KIPPBE5J/ABD6pBnUUAEQEAAcLA/AQYAQgA
 JhYhBIUq/WFSDTiOvUIqv2u9DlcdrjdRBQJlD89ZBQkFo5qAAhsMAAoJEGu9DlcdrjdR4C0L
 /RcjolEjoZW8VsyxWtXazQPnaRvzZ4vhmGOsCPr2BPtMlSwDzTlri8BBG1/3t/DNK4JLuwEj
 OAIE3fkkm+UG4Kjud6aNeraDI52DRVCSx6xff3bjmJsJJMb12mWglN6LjdF6K+PE+OTJUh2F
 dOhslN5C2kgl0dvUuevwMgQF3IljLmi/6APKYJHjkJpu1E6luZec/lRbetHuNFtbh3xgFIJx
 2RpgVDP4xB3f8r0I+y6ua+p7fgOjDLyoFjubRGed0Be45JJQEn7A3CSb6Xu7NYobnxfkwAGZ
 Q81a2XtvNS7Aj6NWVoOQB5KbM4yosO5+Me1V1SkX2jlnn26JPEvbV3KRFcwV5RnDxm4OQTSk
 PYbAkjBbm+tuJ/Sm+5Yp5T/BnKz21FoCS8uvTiziHj2H7Cuekn6F8EYhegONm+RVg3vikOpn
 gao85i4HwQTK9/D1wgJIQkdwWXVMZ6q/OALaBp82vQ2U9sjTyFXgDjglgh00VRAHP7u1Rcu4
 l75w1xInsg==
In-Reply-To: <d1bf0657-1cc5-b6ec-5601-f31efefacd9a@linux.intel.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 4/30/2025 2:17 AM, Ilpo Järvinen wrote:
> While this is not my subsystem so don't have the final say here, you had
> to explain quite much to prove that (and reviewer would have to go through
> the same places to check). Wouldn't it be much simpler for all if all
> those .c files would just include <asm/msr.h> directly? No need to explain
> anything then.
> 
> Also, similar to what you're doing for some tsc related things in this
> series, somebody could in the future decide that hey, these static inline
> functions (that use .*msr.*) belong to some other file, allowing msr.h to
> be removed from arch/x86/events/perf_event.h. Again, we'd need to add
> asm/msr.h into more .c files. This is the problem with relying on indirect
> includes, they create hard to track dependencies for #includes done in .h
> files. If we actively encourage to depend on indirect #include
> dependencies like that, it makes it very hard to_remove_ any #include
> from a header file (as you have yourself discovered).

You're right, it makes a lot of sense from maintenance point of view.


From xen-devel-bounces@lists.xenproject.org Wed Apr 30 18:56:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 30 Apr 2025 18:56:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.973936.1361953 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uACbc-0007Z4-KU; Wed, 30 Apr 2025 18:56:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 973936.1361953; Wed, 30 Apr 2025 18:56: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 1uACbc-0007Yx-He; Wed, 30 Apr 2025 18:56:28 +0000
Received: by outflank-mailman (input) for mailman id 973936;
 Wed, 30 Apr 2025 18:56:27 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=r90l=XQ=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1uACba-0007Yr-Uq
 for xen-devel@lists.xenproject.org; Wed, 30 Apr 2025 18:56:27 +0000
Received: from sender4-of-o50.zoho.com (sender4-of-o50.zoho.com
 [136.143.188.50]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id cdd42924-25f4-11f0-9ffb-bf95429c2676;
 Wed, 30 Apr 2025 20:56:21 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 1746039364140191.95765285522737;
 Wed, 30 Apr 2025 11:56:04 -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: cdd42924-25f4-11f0-9ffb-bf95429c2676
ARC-Seal: i=1; a=rsa-sha256; t=1746039367; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=BU+KqFFztoKAOVYEa4e5NM2Ox6M+fmsVLPJ62+X9wwOHRYDrNnGd8+n3Lf/pIbHj5/7GDkAzPoAsDy99zYR6ez5sIvYwtHmDqeiGbCz9tWXLuketId6T42lxuCE8UKbafawjVFGrKhmBx+I+WmV12bsWVxN068kEJZ+hH9GKpog=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1746039367; 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=v3wAS+QWKlf3sFKFaCHmypL7EoFI4skKFhk5fOrZQ10=; 
	b=Qzz2jR5iu+b6B4NMHyAd4GjoLFjwxI8OCF6MGTdO4OWEUzFprT8UZ8bpDHo4XZnFTs+fnkVv5vJs3lI1VYMunuKS+bLMyIBADJdFEqZ60l7Zq7d0Df476FyKEJAXaS9ci9B+btgZCyRhVsY4ZYBfJPleFLvPhtpUc9M3hc56uTs=
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=1746039367;
	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=v3wAS+QWKlf3sFKFaCHmypL7EoFI4skKFhk5fOrZQ10=;
	b=JfYw7AhlW11xTCkbMH//PjG8DvDidRbwvaBYZ/ML/2QQC1iBBssfXjgOojfWtAEJ
	BVVmBEdD0c4u+9ZdjWCh8k4yVRLyFO4ECICh2OXwOabfm45OR6r1l+DTHrDq2rmuJG0
	ZYd+oEVNk+aEtagiaQdaw7vDsgs4/Ggi4xqLUkuI=
Message-ID: <9021c878-9605-4d6e-95b8-ab97da186542@apertussolutions.com>
Date: Wed, 30 Apr 2025 14:56:02 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 02/12] common/hyperlaunch: introduce the domain builder
Content-Language: en-US
To: Alejandro Vallejo <agarciav@amd.com>, xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>, Andrew Cooper
 <andrew.cooper3@citrix.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Jason Andryuk <jason.andryuk@amd.com>, Denis Mukhin <dmukhin@ford.com>
References: <20250429123629.20839-1-agarciav@amd.com>
 <20250429123629.20839-3-agarciav@amd.com>
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
Autocrypt: addr=dpsmith@apertussolutions.com; keydata=
 xsJuBFYrueARCACPWL3r2bCSI6TrkIE/aRzj4ksFYPzLkJbWLZGBRlv7HQLvs6i/K4y/b4fs
 JDq5eL4e9BdfdnZm/b+K+Gweyc0Px2poDWwKVTFFRgxKWq9R7McwNnvuZ4nyXJBVn7PTEn/Z
 G7D08iZg94ZsnUdeXfgYdJrqmdiWA6iX9u84ARHUtb0K4r5WpLUMcQ8PVmnv1vVrs/3Wy/Rb
 foxebZNWxgUiSx+d02e3Ad0aEIur1SYXXv71mqKwyi/40CBSHq2jk9eF6zmEhaoFi5+MMMgX
 X0i+fcBkvmT0N88W4yCtHhHQds+RDbTPLGm8NBVJb7R5zbJmuQX7ADBVuNYIU8hx3dF3AQCm
 601w0oZJ0jGOV1vXQgHqZYJGHg5wuImhzhZJCRESIwf+PJxik7TJOgBicko1hUVOxJBZxoe0
 x+/SO6tn+s8wKlR1Yxy8gYN9ZRqV2I83JsWZbBXMG1kLzV0SAfk/wq0PAppA1VzrQ3JqXg7T
 MZ3tFgxvxkYqUP11tO2vrgys+InkZAfjBVMjqXWHokyQPpihUaW0a8mr40w9Qui6DoJj7+Gg
 DtDWDZ7Zcn2hoyrypuht88rUuh1JuGYD434Q6qwQjUDlY+4lgrUxKdMD8R7JJWt38MNlTWvy
 rMVscvZUNc7gxcmnFUn41NPSKqzp4DDRbmf37Iz/fL7i01y7IGFTXaYaF3nEACyIUTr/xxi+
 MD1FVtEtJncZNkRn7WBcVFGKMAf+NEeaeQdGYQ6mGgk++i/vJZxkrC/a9ZXme7BhWRP485U5
 sXpFoGjdpMn4VlC7TFk2qsnJi3yF0pXCKVRy1ukEls8o+4PF2JiKrtkCrWCimB6jxGPIG3lk
 3SuKVS/din3RHz+7Sr1lXWFcGYDENmPd/jTwr1A1FiHrSj+u21hnJEHi8eTa9029F1KRfocp
 ig+k0zUEKmFPDabpanI323O5Tahsy7hwf2WOQwTDLvQ+eqQu40wbb6NocmCNFjtRhNZWGKJS
 b5GrGDGu/No5U6w73adighEuNcCSNBsLyUe48CE0uTO7eAL6Vd+2k28ezi6XY4Y0mgASJslb
 NwW54LzSSM0uRGFuaWVsIFAuIFNtaXRoIDxkcHNtaXRoQGFwZXJ0dXNzb2x1dGlvbnMuY29t
 PsJ6BBMRCAAiBQJWK7ngAhsjBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRBTc6WbYpR8
 KrQ9AP94+xjtFfJ8gj5c7PVx06Zv9rcmFUqQspZ5wSEkvxOuQQEAg6qEsPYegI7iByLVzNEg
 7B7fUG7pqWIfMqFwFghYhQzOwU0EViu54BAIAL6MXXNlrJ5tRUf+KMBtVz1LJQZRt/uxWrCb
 T06nZjnbp2UcceuYNbISOVHGXTzu38r55YzpkEA8eURQf+5hjtvlrOiHxvpD+Z6WcpV6rrMB
 kcAKWiZTQihW2HoGgVB3gwG9dCh+n0X5OzliAMiGK2a5iqnIZi3o0SeW6aME94bSkTkuj6/7
 OmH9KAzK8UnlhfkoMg3tXW8L6/5CGn2VyrjbB/rcrbIR4mCQ+yCUlocuOjFCJhBd10AG1IcX
 OXUa/ux+/OAV9S5mkr5Fh3kQxYCTcTRt8RY7+of9RGBk10txi94dXiU2SjPbassvagvu/hEi
 twNHms8rpkSJIeeq0/cAAwUH/jV3tXpaYubwcL2tkk5ggL9Do+/Yo2WPzXmbp8vDiJPCvSJW
 rz2NrYkd/RoX+42DGqjfu8Y04F9XehN1zZAFmCDUqBMa4tEJ7kOT1FKJTqzNVcgeKNBGcT7q
 27+wsqbAerM4A0X/F/ctjYcKwNtXck1Bmd/T8kiw2IgyeOC+cjyTOSwKJr2gCwZXGi5g+2V8
 NhJ8n72ISPnOh5KCMoAJXmCF+SYaJ6hIIFARmnuessCIGw4ylCRIU/TiXK94soilx5aCqb1z
 ke943EIUts9CmFAHt8cNPYOPRd20pPu4VFNBuT4fv9Ys0iv0XGCEP+sos7/pgJ3gV3pCOric
 p15jV4PCYQQYEQgACQUCViu54AIbDAAKCRBTc6WbYpR8Khu7AP9NJrBUn94C/3PeNbtQlEGZ
 NV46Mx5HF0P27lH3sFpNrwD/dVdZ5PCnHQYBZ287ZxVfVr4Zuxjo5yJbRjT93Hl0vMY=
In-Reply-To: <20250429123629.20839-3-agarciav@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ZohoMailClient: External

On 4/29/25 08:36, Alejandro Vallejo wrote:
> From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
> 
> 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>
> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
> Signed-off-by: Alejandro Vallejo <agarciav@amd.com>
> Reviewed-by: Denis Mukhin <dmukhin@ford.com>
> ---
>   xen/arch/x86/include/asm/bootinfo.h |  3 ++
>   xen/arch/x86/setup.c                | 19 ++++++++----
>   xen/common/Makefile                 |  1 +
>   xen/common/domain-builder/Makefile  |  2 ++
>   xen/common/domain-builder/core.c    | 45 +++++++++++++++++++++++++++++
>   xen/common/domain-builder/fdt.c     | 39 +++++++++++++++++++++++++
>   xen/common/domain-builder/fdt.h     | 14 +++++++++
>   xen/include/xen/domain-builder.h    | 29 +++++++++++++++++++
>   8 files changed, 146 insertions(+), 6 deletions(-)
>   create mode 100644 xen/common/domain-builder/Makefile
>   create mode 100644 xen/common/domain-builder/core.c
>   create mode 100644 xen/common/domain-builder/fdt.c
>   create mode 100644 xen/common/domain-builder/fdt.h
>   create mode 100644 xen/include/xen/domain-builder.h
> 
> diff --git a/xen/arch/x86/include/asm/bootinfo.h b/xen/arch/x86/include/asm/bootinfo.h
> index 3afc214c17..82c2650fcf 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/setup.c b/xen/arch/x86/setup.c
> index 2518954124..f3b5c83a3c 100644
> --- a/xen/arch/x86/setup.c
> +++ b/xen/arch/x86/setup.c
> @@ -6,6 +6,7 @@
>   #include <xen/cpuidle.h>
>   #include <xen/dmi.h>
>   #include <xen/domain.h>
> +#include <xen/domain-builder.h>
>   #include <xen/domain_page.h>
>   #include <xen/efi.h>
>   #include <xen/err.h>
> @@ -1284,9 +1285,14 @@ 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];
> +    if ( builder_init(bi) == FDT_KIND_NONE )
> +    {
> +        /* 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];
> +        bi->hyperlaunch_enabled = false;
> +    }
>   
>       if ( pvh_boot )
>       {
> @@ -1469,8 +1475,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);
> +    bi->domains[0].kernel->headroom =
> +        bzimage_headroom(bootstrap_map_bm(bi->domains[0].kernel),
> +                         bi->domains[0].kernel->size);
>       bootstrap_unmap();
>   
>   #ifndef highmem_start
> @@ -1594,7 +1601,7 @@ void asmlinkage __init noreturn __start_xen(void)
>   #endif
>       }
>   
> -    if ( bi->mods[0].headroom && !bi->mods[0].relocated )
> +    if ( bi->domains[0].kernel->headroom && !bi->domains[0].kernel->relocated )
>           panic("Not enough memory to relocate the dom0 kernel image\n");
>       for ( i = 0; i < bi->nr_modules; ++i )
>       {
> diff --git a/xen/common/Makefile b/xen/common/Makefile
> index 98f0873056..e42af71e3f 100644
> --- a/xen/common/Makefile
> +++ b/xen/common/Makefile
> @@ -11,6 +11,7 @@ obj-$(filter-out $(CONFIG_X86),$(CONFIG_ACPI)) += device.o
>   obj-$(CONFIG_HAS_DEVICE_TREE) += device-tree/
>   obj-$(CONFIG_IOREQ_SERVER) += dm.o
>   obj-y += domain.o
> +obj-$(CONFIG_DOMAIN_BUILDER) += domain-builder/

Please don't do this, use IF_ENABLED in core.c and then hide the 
unnecessary units in domain-builder/Makefile as I originally had it. 
This allows for a much easier time incrementally converting the dom0 
construction path into a generalized domain construction path.

>   obj-y += event_2l.o
>   obj-y += event_channel.o
>   obj-$(CONFIG_EVTCHN_FIFO) += event_fifo.o
> diff --git a/xen/common/domain-builder/Makefile b/xen/common/domain-builder/Makefile
> new file mode 100644
> index 0000000000..bfd2f6267e
> --- /dev/null
> +++ b/xen/common/domain-builder/Makefile
> @@ -0,0 +1,2 @@
> +obj-y += fdt.init.o
> +obj-y += core.init.o
> diff --git a/xen/common/domain-builder/core.c b/xen/common/domain-builder/core.c
> new file mode 100644
> index 0000000000..97c92db571
> --- /dev/null
> +++ b/xen/common/domain-builder/core.c
> @@ -0,0 +1,45 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +/*
> + * Copyright (C) 2024, Apertus Solutions, LLC
> + */
> +#include <xen/bug.h>
> +#include <xen/err.h>
> +#include <xen/init.h>
> +#include <xen/kconfig.h>
> +#include <xen/domain-builder.h>
> +#include <xen/lib.h>
> +
> +#include <asm/bootinfo.h>
> +
> +#include "fdt.h"
> +
> +enum fdt_kind __init builder_init(struct boot_info *bi)
> +{
> +    enum fdt_kind kind;
> +
> +    bi->hyperlaunch_enabled = false;
> +    switch ( (kind = fdt_detect_kind(bi)) )
> +    {
> +    case FDT_KIND_NONE:
> +        /* No DT found */
> +        return kind;
> +
> +    case FDT_KIND_UNKNOWN:
> +        printk(XENLOG_DEBUG "DT found: non-hyperlaunch\n");
> +        bi->mods[0].type = BOOTMOD_FDT;
> +        return kind;
> +
> +    default:
> +        BUG();
> +    }
> +}
> +
> +/*
> + * 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/domain-builder/fdt.c b/xen/common/domain-builder/fdt.c
> new file mode 100644
> index 0000000000..4b07bd22c8
> --- /dev/null
> +++ b/xen/common/domain-builder/fdt.c
> @@ -0,0 +1,39 @@
> +/* 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 <asm/bootinfo.h>
> +#include <asm/page.h>
> +#include <asm/setup.h>
> +
> +#include "fdt.h"
> +
> +enum fdt_kind __init fdt_detect_kind(const struct boot_info *bi)
> +{
> +    enum fdt_kind kind;
> +    const void *fdt = bootstrap_map_bm(&bi->mods[HYPERLAUNCH_MODULE_IDX]);
> +
> +    if ( !fdt || fdt_check_header(fdt) < 0 )
> +        kind = FDT_KIND_NONE;
> +    else
> +        kind = FDT_KIND_UNKNOWN;
> +
> +    bootstrap_unmap();
> +
> +    return kind;
> +}
> +
> +/*
> + * 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/domain-builder/fdt.h b/xen/common/domain-builder/fdt.h
> new file mode 100644
> index 0000000000..ef897fc412
> --- /dev/null
> +++ b/xen/common/domain-builder/fdt.h
> @@ -0,0 +1,14 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +#ifndef __XEN_DOMAIN_BUILDER_FDT_H__
> +#define __XEN_DOMAIN_BUILDER_FDT_H__
> +
> +#include <xen/domain-builder.h>
> +
> +struct boot_info;
> +
> +/* hyperlaunch fdt is required to be module 0 */
> +#define HYPERLAUNCH_MODULE_IDX 0
> +
> +enum fdt_kind fdt_detect_kind(const struct boot_info *bi);
> +
> +#endif /* __XEN_DOMAIN_BUILDER_FDT_H__ */
> diff --git a/xen/include/xen/domain-builder.h b/xen/include/xen/domain-builder.h
> new file mode 100644
> index 0000000000..b9702db735
> --- /dev/null
> +++ b/xen/include/xen/domain-builder.h
> @@ -0,0 +1,29 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +#ifndef __XEN_DOMAIN_BUILDER_H__
> +#define __XEN_DOMAIN_BUILDER_H__
> +
> +struct boot_info;
> +
> +/* Return status of builder_init(). Shows which boot mechanism was detected */
> +enum fdt_kind
> +{
> +    /* FDT not found. Skipped builder. */
> +    FDT_KIND_NONE,
> +    /* Found an FDT that wasn't hyperlaunch. */
> +    FDT_KIND_UNKNOWN,
> +};
> +
> +/*
> + * Initialises `bi` if it detects a compatible FDT. Otherwise returns
> + * FDT_KIND_NONE and leaves initialisation up to the caller.
> + */
> +#if IS_ENABLED(CONFIG_DOMAIN_BUILDER)
> +enum fdt_kind builder_init(struct boot_info *bi);
> +#else
> +static inline enum fdt_kind builder_init(struct boot_info *bi)
> +{
> +    return FDT_KIND_NONE;
> +}
> +#endif /* !IS_ENABLED(CONFIG_DOMAIN_BUILDER) */
> +
> +#endif /* __XEN_DOMAIN_BUILDER_H__ */



